diff --git a/changelog.md b/changelog.md index 37a347b..dbe3f5f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,13 @@ # Changelog +## 2026-02-24 - 2.5.0 - feat(gitea-provider) +auto-paginate Gitea repository and organization listing; respect explicit page option and default perPage to 50 + +- getProjects and getGroups now auto-fetch all pages when opts.page is not provided +- When opts.page is provided, the provider respects it and does not auto-paginate +- Defaults perPage to 50 for paginated requests +- Dependency @design.estate/dees-catalog bumped from ^3.43.0 to ^3.43.3 + ## 2026-02-24 - 2.4.0 - feat(opsserver) serve embedded frontend bundle from committed ts_bundled instead of using external dist_serve directory diff --git a/package.json b/package.json index a2c0a87..138da82 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "license": "MIT", "dependencies": { "@api.global/typedrequest-interfaces": "^3.0.19", - "@design.estate/dees-catalog": "^3.43.0", + "@design.estate/dees-catalog": "^3.43.3", "@design.estate/dees-element": "^2.1.6" }, "devDependencies": { diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 80480ec..5f20a63 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/gitops', - version: '2.4.0', + version: '2.5.0', description: 'GitOps management app for Gitea and GitLab - manage secrets, browse projects, view CI pipelines, and stream build logs' } diff --git a/ts/providers/classes.giteaprovider.ts b/ts/providers/classes.giteaprovider.ts index 598657d..ae831fe 100644 --- a/ts/providers/classes.giteaprovider.ts +++ b/ts/providers/classes.giteaprovider.ts @@ -18,13 +18,45 @@ export class GiteaProvider extends BaseProvider { } async getProjects(opts?: IListOptions): Promise { - const repos = await this.client.getRepos(opts); - return repos.map((r) => this.mapProject(r)); + // If caller explicitly requests a specific page, respect it (no auto-pagination) + if (opts?.page) { + const repos = await this.client.getRepos(opts); + return repos.map((r) => this.mapProject(r)); + } + + const allRepos: plugins.giteaClient.IGiteaRepository[] = []; + const perPage = opts?.perPage || 50; + let page = 1; + + while (true) { + const repos = await this.client.getRepos({ ...opts, page, perPage }); + allRepos.push(...repos); + if (repos.length < perPage) break; + page++; + } + + return allRepos.map((r) => this.mapProject(r)); } async getGroups(opts?: IListOptions): Promise { - const orgs = await this.client.getOrgs(opts); - return orgs.map((o) => this.mapGroup(o)); + // If caller explicitly requests a specific page, respect it (no auto-pagination) + if (opts?.page) { + const orgs = await this.client.getOrgs(opts); + return orgs.map((o) => this.mapGroup(o)); + } + + const allOrgs: plugins.giteaClient.IGiteaOrganization[] = []; + const perPage = opts?.perPage || 50; + let page = 1; + + while (true) { + const orgs = await this.client.getOrgs({ ...opts, page, perPage }); + allOrgs.push(...orgs); + if (orgs.length < perPage) break; + page++; + } + + return allOrgs.map((o) => this.mapGroup(o)); } // --- Project Secrets --- diff --git a/ts_bundled/bundle.js b/ts_bundled/bundle.js index 47982cb..b4dfbe9 100644 --- a/ts_bundled/bundle.js +++ b/ts_bundled/bundle.js @@ -52457,7 +52457,7 @@ var init_dist_ts29 = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00zindex.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00zindex.js function getZIndex(category, subcategory) { const categoryObj = zIndexLayers[category]; if (typeof categoryObj === "object" && subcategory) { @@ -52467,7 +52467,7 @@ function getZIndex(category, subcategory) { } var zIndexLayers, componentZIndex, ZIndexRegistry, zIndexRegistry; var init_zindex = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00zindex.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00zindex.js"() { zIndexLayers = { // Base layer: Regular content base: { @@ -52604,10 +52604,10 @@ var init_zindex = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00theme.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00theme.js var themeDefaults, themeDefaultStyles; var init_theme = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00theme.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00theme.js"() { init_dist_ts29(); themeDefaults = { colors: { @@ -53183,18 +53183,18 @@ var init_dist_ts30 = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00plugins.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00plugins.js var init_plugins4 = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00plugins.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00plugins.js"() { init_dist_ts(); init_dist_ts30(); } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.demo.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.demo.js var demoFunc; var init_dees_contextmenu_demo = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.demo.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.demo.js"() { init_dist_ts29(); init_plugins4(); init_dees_contextmenu(); @@ -53432,10 +53432,10 @@ var init_dees_contextmenu_demo = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.js var __esDecorate3, __runInitializers4, DeesWindowLayer; var init_dees_windowlayer = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.js"() { init_dist_ts29(); init_zindex(); __esDecorate3 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { @@ -88536,10 +88536,10 @@ var require_lucide = __commonJS({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.demo.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.demo.js var lucideIcons, demoFunc2; var init_dees_icon_demo = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.demo.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.demo.js"() { init_dist_ts29(); init_dees_icon(); lucideIcons = __toESM(require_lucide(), 1); @@ -88833,7 +88833,7 @@ var init_dees_icon_demo = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.js function limitCacheSize() { if (iconCache.size > MAX_CACHE_SIZE) { const keysToDelete = Array.from(iconCache.keys()).slice(0, MAX_CACHE_SIZE / 5); @@ -88842,7 +88842,7 @@ function limitCacheSize() { } var lucideIcons2, import_lucide, __esDecorate4, __runInitializers5, faIcons2, icons4, iconCache, MAX_CACHE_SIZE, DeesIcon; var init_dees_icon = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.js"() { init_dist_ts29(); init_dist_ts28(); init_theme(); @@ -89254,10 +89254,10 @@ var init_dees_icon = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js var __esDecorate5, __runInitializers6, DeesContextmenu; var init_dees_contextmenu = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js"() { init_plugins4(); init_dees_contextmenu_demo(); init_dist_ts29(); @@ -89810,10 +89810,10 @@ var init_dist_ts_demotools = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/dees-appui-activitylog.demo.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/dees-appui-activitylog.demo.js var demoFunc3; var init_dees_appui_activitylog_demo = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/dees-appui-activitylog.demo.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/dees-appui-activitylog.demo.js"() { init_dist_ts29(); init_dist_ts_demotools(); demoFunc3 = () => { @@ -89854,10 +89854,10 @@ var init_dees_appui_activitylog_demo = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/dees-appui-activitylog.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/dees-appui-activitylog.js var __esDecorate7, __runInitializers8, DeesAppuiActivitylog; var init_dees_appui_activitylog = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/dees-appui-activitylog.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/dees-appui-activitylog.js"() { init_dist_ts29(); init_dist_ts28(); init_dees_contextmenu(); @@ -90486,47 +90486,47 @@ var init_dees_appui_activitylog = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/index.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/index.js var init_dees_appui_activitylog2 = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/index.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-activitylog/index.js"() { init_dees_appui_activitylog(); } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/tab.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/tab.js var init_tab = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/tab.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/tab.js"() { } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/appbarmenuitem.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/appbarmenuitem.js var init_appbarmenuitem = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/appbarmenuitem.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/appbarmenuitem.js"() { init_plugins4(); } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/menugroup.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/menugroup.js var init_menugroup = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/menugroup.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/menugroup.js"() { } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/appconfig.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/appconfig.js var init_appconfig = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/appconfig.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/appconfig.js"() { } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/secondarymenu.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/secondarymenu.js var init_secondarymenu = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/secondarymenu.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/secondarymenu.js"() { } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/index.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/index.js var init_interfaces4 = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/index.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/index.js"() { init_tab(); init_appbarmenuitem(); init_menugroup(); @@ -90535,10 +90535,10 @@ var init_interfaces4 = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/demo.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/demo.js var demoFunc4; var init_demo = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/demo.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/demo.js"() { init_dist_ts29(); init_dist_ts_demotools(); init_component(); @@ -90750,10 +90750,10 @@ var init_demo = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/styles.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/styles.js var appuiAppbarStyles; var init_styles = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/styles.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/styles.js"() { init_dist_ts29(); appuiAppbarStyles = [ cssManager.defaultStyles, @@ -91041,10 +91041,10 @@ var init_styles = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/template.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/template.js var renderAppuiAppbar; var init_template = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/template.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/template.js"() { init_dist_ts29(); renderAppuiAppbar = (component) => { return b2` @@ -91063,10 +91063,10 @@ var init_template = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-windowcontrols/dees-windowcontrols.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-windowcontrols/dees-windowcontrols.js var __esDecorate8, __runInitializers9, DeesWindowControls; var init_dees_windowcontrols = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-windowcontrols/dees-windowcontrols.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-utility/dees-windowcontrols/dees-windowcontrols.js"() { init_dist_ts29(); init_theme(); __esDecorate8 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { @@ -91234,10 +91234,10 @@ var init_dees_windowcontrols = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-profiledropdown/dees-appui-profiledropdown.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-profiledropdown/dees-appui-profiledropdown.js var __esDecorate9, __runInitializers10, DeesAppuiProfileDropdown; var init_dees_appui_profiledropdown = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-profiledropdown/dees-appui-profiledropdown.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-profiledropdown/dees-appui-profiledropdown.js"() { init_plugins4(); init_zindex(); init_dist_ts29(); @@ -91711,10 +91711,10 @@ var init_dees_appui_profiledropdown = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/component.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/component.js var __esDecorate10, __runInitializers11, DeesAppuiBar; var init_component = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/component.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/component.js"() { init_dist_ts29(); init_dist_ts28(); init_interfaces4(); @@ -92351,17 +92351,17 @@ var init_component = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/index.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/index.js var init_dees_appui_appbar = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/index.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-appbar/index.js"() { init_component(); } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/dees-appui-bottombar.demo.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/dees-appui-bottombar.demo.js var _a, demoFunc5; var init_dees_appui_bottombar_demo = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/dees-appui-bottombar.demo.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/dees-appui-bottombar.demo.js"() { init_dist_ts29(); init_dist_ts_demotools(); demoFunc5 = () => { @@ -92573,10 +92573,10 @@ var init_dees_appui_bottombar_demo = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/dees-appui-bottombar.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/dees-appui-bottombar.js var __esDecorate11, __runInitializers12, DeesAppuiBottombar; var init_dees_appui_bottombar = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/dees-appui-bottombar.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/dees-appui-bottombar.js"() { init_dist_ts29(); init_theme(); init_dees_icon(); @@ -92928,17 +92928,17 @@ var init_dees_appui_bottombar = __esm({ } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/index.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/index.js var init_dees_appui_bottombar2 = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/index.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-appui/dees-appui-bottombar/index.js"() { init_dees_appui_bottombar(); } }); -// node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-layout/dees-panel/dees-panel.demo.js +// node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-layout/dees-panel/dees-panel.demo.js var demoFunc6; var init_dees_panel_demo = __esm({ - "node_modules/.pnpm/@design.estate+dees-catalog@3.43.2_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-layout/dees-panel/dees-panel.demo.js"() { + "node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-layout/dees-panel/dees-panel.demo.js"() { init_dist_ts29(); demoFunc6 = () => b2` \n`;\n\n/**\n * a basic setup for elements\n * makes sure everything is in check\n */\nexport const setup = async (\n elementArg?: LitElement,\n optionsArg: IDomToolsContructorOptions = {}\n): Promise => {\n const domTools = await DomTools.setupDomTools(optionsArg);\n\n if (elementArg) {\n // lets do something with the element\n // not used right now\n }\n\n domTools.runOnce('elementBasicSetup', async () => {\n // bodyStyles\n domTools.setGlobalStyles(globalBaseStyles);\n });\n return domTools;\n};\n", "export const cssGridColumns = (amountOfColumnsArg: number, gapSizeArg: number) => {\n let returnString = ``;\n for (let i = 0; i < amountOfColumnsArg; i++) {\n returnString += ` calc((100%/${amountOfColumnsArg}) - (${\n gapSizeArg * (amountOfColumnsArg - 1)\n }px/${amountOfColumnsArg}))`;\n }\n return returnString;\n};\n", "import * as smartdelay from '@push.rocks/smartdelay';\nimport * as smartmarkdown from '@push.rocks/smartmarkdown';\nimport * as smartpromise from '@push.rocks/smartpromise';\nimport SweetScroll from 'sweet-scroll';\nimport * as smartstate from '@push.rocks/smartstate';\nimport * as smartrouter from '@push.rocks/smartrouter';\nimport * as smartrx from '@push.rocks/smartrx';\nimport * as smartstring from '@push.rocks/smartstring';\nimport * as smarturl from '@push.rocks/smarturl';\nimport * as typedrequest from '@api.global/typedrequest';\n\nexport { \n smartdelay, \n smartmarkdown, \n smartpromise, \n SweetScroll, \n smartstate, \n smartrouter,\n smartrx, \n smartstring, \n smarturl, \n typedrequest \n};\n", "export * from './domtools.colors.js';\n\nimport * as elementBasic from './domtools.elementbasic.js';\nimport * as breakpoints from './domtools.css.breakpoints.js';\nimport * as css from './domtools.css.js';\n\nexport { css, breakpoints, elementBasic };\nexport { DomTools, type IDomToolsContructorOptions } from './domtools.classes.domtools.js';\nexport { TypedRequest } from '@api.global/typedrequest';\nexport { type IWebSetupConstructorOptions } from '@push.rocks/websetup';\n\nimport * as plugins from './domtools.pluginexports.js';\nexport { plugins };\n\n// type exports\nimport type { rxjs } from '@push.rocks/smartrx';\n\nexport type {\n rxjs,\n}\n", "// pushrocks scope\nimport * as isounique from '@push.rocks/isounique';\nimport * as smartrx from '@push.rocks/smartrx';\n\nexport { isounique, smartrx };\n\n// third party scope\nimport { css, unsafeCSS, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nconst lit = {\n css,\n unsafeCSS,\n LitElement,\n property,\n};\n\nimport * as domtools from '@design.estate/dees-domtools';\n\nexport { lit, domtools };\n", "import { CSSResult, unsafeCSS } from 'lit';\nimport * as plugins from './plugins.js';\nimport * as domtools from '@design.estate/dees-domtools';\n\nexport interface IBdVarTriplet {\n cssVarName: string;\n darkValue: string;\n brightValue: string;\n}\n\nexport class CssManager {\n // STATIC\n private static instance: CssManager | null = null;\n\n /**\n * Returns the singleton instance of CssManager\n */\n public static getSingleton(): CssManager {\n if (!CssManager.instance) {\n CssManager.instance = new CssManager();\n }\n return CssManager.instance;\n }\n\n \n // INSTANCE\n public domtoolsPromise = domtools.DomTools.setupDomTools();\n public goBright: boolean = false;\n public bdVarTripletStore: IBdVarTriplet[] = [];\n\n constructor() {\n this.domtoolsPromise.then(async (domtoolsArg) => {\n domtoolsArg.themeManager.themeObservable.subscribe(async (goBrightArg) => {\n this.goBright = goBrightArg;\n await domtoolsArg.domReady.promise;\n for (const bdTripletArg of this.bdVarTripletStore) {\n document.body.style.setProperty(\n bdTripletArg.cssVarName,\n this.goBright ? bdTripletArg.brightValue : bdTripletArg.darkValue\n );\n }\n });\n });\n }\n\n public get defaultStyles() {\n return domtools.elementBasic.staticStyles;\n }\n\n public cssForDesktop(contentArg: CSSResult) {\n return unsafeCSS(domtools.breakpoints.cssForDesktop(contentArg));\n }\n\n public cssForNotebook(contentArg: CSSResult) {\n return unsafeCSS(domtools.breakpoints.cssForNotebook(contentArg));\n }\n\n public cssForTablet(contentArg: CSSResult) {\n return unsafeCSS(domtools.breakpoints.cssForTablet(contentArg));\n }\n\n public cssForPhablet(contentArg: CSSResult) {\n return unsafeCSS(domtools.breakpoints.cssForPhablet(contentArg));\n }\n\n public cssForPhone(contentArg: CSSResult) {\n return unsafeCSS(domtools.breakpoints.cssForPhone(contentArg));\n }\n\n public bdTheme(brightValueArg: string, darkValueArg: string): CSSResult {\n let returnCssVar: string;\n\n // lets determine the default value for quick page rendering.\n let defaultValue: string;\n if (domtools.DomTools.getGlobalDomToolsSync()) {\n defaultValue = domtools.DomTools.getGlobalDomToolsSync().themeManager.goBrightBoolean\n ? brightValueArg\n : darkValueArg;\n } else {\n defaultValue = darkValueArg;\n }\n\n const existingTriplet = this.bdVarTripletStore.find(\n (tripletArg) =>\n tripletArg.darkValue === darkValueArg && tripletArg.brightValue === brightValueArg\n );\n if (existingTriplet) {\n returnCssVar = existingTriplet.cssVarName;\n } else {\n const newTriplet: IBdVarTriplet = {\n cssVarName: `--${plugins.isounique.uni()}`,\n brightValue: brightValueArg,\n darkValue: darkValueArg,\n };\n this.bdVarTripletStore.push(newTriplet);\n\n this.domtoolsPromise.then(async (domtoolsArg) => {\n await domtoolsArg.domReady.promise;\n document.body.style.setProperty(newTriplet.cssVarName, defaultValue);\n });\n returnCssVar = newTriplet.cssVarName;\n }\n return plugins.lit.unsafeCSS(`var(${returnCssVar}, ${defaultValue})`);\n }\n\n public cssGridColumns = (amountOfColumnsArg: number, gapSizeArg: number): CSSResult => {\n let returnString = ``;\n for (let i = 0; i < amountOfColumnsArg; i++) {\n returnString += ` calc((100%/${amountOfColumnsArg}) - (${\n gapSizeArg * (amountOfColumnsArg - 1)\n }px/${amountOfColumnsArg}))`;\n }\n return plugins.lit.unsafeCSS(returnString);\n };\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// Any new exports need to be added to the export statement in\n// `packages/lit/src/index.all.ts`.\n\nimport {\n html as coreHtml,\n svg as coreSvg,\n mathml as coreMathml,\n TemplateResult,\n} from './lit-html.js';\n\nexport interface StaticValue {\n /** The value to interpolate as-is into the template. */\n _$litStatic$: string;\n\n /**\n * A value that can't be decoded from ordinary JSON, make it harder for\n * an attacker-controlled data that goes through JSON.parse to produce a valid\n * StaticValue.\n */\n r: typeof brand;\n}\n\n/**\n * Prevents JSON injection attacks.\n *\n * The goals of this brand:\n * 1) fast to check\n * 2) code is small on the wire\n * 3) multiple versions of Lit in a single page will all produce mutually\n * interoperable StaticValues\n * 4) normal JSON.parse (without an unusual reviver) can not produce a\n * StaticValue\n *\n * Symbols satisfy (1), (2), and (4). We use Symbol.for to satisfy (3), but\n * we don't care about the key, so we break ties via (2) and use the empty\n * string.\n */\nconst brand = Symbol.for('');\n\n/** Safely extracts the string part of a StaticValue. */\nconst unwrapStaticValue = (value: unknown): string | undefined => {\n if ((value as Partial)?.r !== brand) {\n return undefined;\n }\n return (value as Partial)?.['_$litStatic$'];\n};\n\n/**\n * Wraps a string so that it behaves like part of the static template\n * strings instead of a dynamic value.\n *\n * Users must take care to ensure that adding the static string to the template\n * results in well-formed HTML, or else templates may break unexpectedly.\n *\n * Note that this function is unsafe to use on untrusted content, as it will be\n * directly parsed into HTML. Do not pass user input to this function\n * without sanitizing it.\n *\n * Static values can be changed, but they will cause a complete re-render\n * since they effectively create a new template.\n */\nexport const unsafeStatic = (value: string): StaticValue => ({\n ['_$litStatic$']: value,\n r: brand,\n});\n\nconst textFromStatic = (value: StaticValue) => {\n if (value['_$litStatic$'] !== undefined) {\n return value['_$litStatic$'];\n } else {\n throw new Error(\n `Value passed to 'literal' function must be a 'literal' result: ${value}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`\n );\n }\n};\n\n/**\n * Tags a string literal so that it behaves like part of the static template\n * strings instead of a dynamic value.\n *\n * The only values that may be used in template expressions are other tagged\n * `literal` results or `unsafeStatic` values (note that untrusted content\n * should never be passed to `unsafeStatic`).\n *\n * Users must take care to ensure that adding the static string to the template\n * results in well-formed HTML, or else templates may break unexpectedly.\n *\n * Static values can be changed, but they will cause a complete re-render since\n * they effectively create a new template.\n */\nexport const literal = (\n strings: TemplateStringsArray,\n ...values: unknown[]\n): StaticValue => ({\n ['_$litStatic$']: values.reduce(\n (acc, v, idx) => acc + textFromStatic(v as StaticValue) + strings[idx + 1],\n strings[0]\n ) as string,\n r: brand,\n});\n\nconst stringsCache = new Map();\n\n/**\n * Wraps a lit-html template tag (`html` or `svg`) to add static value support.\n */\nexport const withStatic =\n (coreTag: typeof coreHtml | typeof coreSvg | typeof coreMathml) =>\n (strings: TemplateStringsArray, ...values: unknown[]): TemplateResult => {\n const l = values.length;\n let staticValue: string | undefined;\n let dynamicValue: unknown;\n const staticStrings: Array = [];\n const dynamicValues: Array = [];\n let i = 0;\n let hasStatics = false;\n let s: string;\n\n while (i < l) {\n s = strings[i];\n // Collect any unsafeStatic values, and their following template strings\n // so that we treat a run of template strings and unsafe static values as\n // a single template string.\n while (\n i < l &&\n ((dynamicValue = values[i]),\n (staticValue = unwrapStaticValue(dynamicValue))) !== undefined\n ) {\n s += staticValue + strings[++i];\n hasStatics = true;\n }\n // If the last value is static, we don't need to push it.\n if (i !== l) {\n dynamicValues.push(dynamicValue);\n }\n staticStrings.push(s);\n i++;\n }\n // If the last value isn't static (which would have consumed the last\n // string), then we need to add the last string.\n if (i === l) {\n staticStrings.push(strings[l]);\n }\n\n if (hasStatics) {\n const key = staticStrings.join('$$lit$$');\n strings = stringsCache.get(key)!;\n if (strings === undefined) {\n // Beware: in general this pattern is unsafe, and doing so may bypass\n // lit's security checks and allow an attacker to execute arbitrary\n // code and inject arbitrary content.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (staticStrings as any).raw = staticStrings;\n stringsCache.set(\n key,\n (strings = staticStrings as unknown as TemplateStringsArray)\n );\n }\n values = dynamicValues;\n }\n return coreTag(strings, ...values);\n };\n\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const html = withStatic(coreHtml);\n\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const svg = withStatic(coreSvg);\n\n/**\n * Interprets a template literal as MathML fragment that can efficiently render\n * to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const mathml = withStatic(coreMathml);\n", "export*from\"lit-html/static.js\";\n//# sourceMappingURL=static-html.js.map\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {Disconnectable, Part} from './lit-html.js';\n\nexport {\n AttributePart,\n BooleanAttributePart,\n ChildPart,\n ElementPart,\n EventPart,\n Part,\n PropertyPart,\n} from './lit-html.js';\n\nexport interface DirectiveClass {\n new (part: PartInfo): Directive;\n}\n\n/**\n * This utility type extracts the signature of a directive class's render()\n * method so we can use it for the type of the generated directive function.\n */\nexport type DirectiveParameters = Parameters;\n\n/**\n * A generated directive function doesn't evaluate the directive, but just\n * returns a DirectiveResult object that captures the arguments.\n */\nexport interface DirectiveResult {\n /**\n * This property needs to remain unminified.\n * @internal\n */\n ['_$litDirective$']: C;\n /** @internal */\n values: DirectiveParameters>;\n}\n\nexport const PartType = {\n ATTRIBUTE: 1,\n CHILD: 2,\n PROPERTY: 3,\n BOOLEAN_ATTRIBUTE: 4,\n EVENT: 5,\n ELEMENT: 6,\n} as const;\n\nexport type PartType = (typeof PartType)[keyof typeof PartType];\n\nexport interface ChildPartInfo {\n readonly type: typeof PartType.CHILD;\n}\n\nexport interface AttributePartInfo {\n readonly type:\n | typeof PartType.ATTRIBUTE\n | typeof PartType.PROPERTY\n | typeof PartType.BOOLEAN_ATTRIBUTE\n | typeof PartType.EVENT;\n readonly strings?: ReadonlyArray;\n readonly name: string;\n readonly tagName: string;\n}\n\nexport interface ElementPartInfo {\n readonly type: typeof PartType.ELEMENT;\n}\n\n/**\n * Information about the part a directive is bound to.\n *\n * This is useful for checking that a directive is attached to a valid part,\n * such as with directive that can only be used on attribute bindings.\n */\nexport type PartInfo = ChildPartInfo | AttributePartInfo | ElementPartInfo;\n\n/**\n * Creates a user-facing directive function from a Directive class. This\n * function has the same parameters as the directive's render() method.\n */\nexport const directive =\n (c: C) =>\n (...values: DirectiveParameters>): DirectiveResult => ({\n // This property needs to remain unminified.\n ['_$litDirective$']: c,\n values,\n });\n\n/**\n * Base class for creating custom directives. Users should extend this class,\n * implement `render` and/or `update`, and then pass their subclass to\n * `directive`.\n */\nexport abstract class Directive implements Disconnectable {\n //@internal\n __part!: Part;\n //@internal\n __attributeIndex: number | undefined;\n //@internal\n __directive?: Directive;\n\n //@internal\n _$parent!: Disconnectable;\n\n // These will only exist on the AsyncDirective subclass\n //@internal\n _$disconnectableChildren?: Set;\n // This property needs to remain unminified.\n //@internal\n ['_$notifyDirectiveConnectionChanged']?(isConnected: boolean): void;\n\n constructor(_partInfo: PartInfo) {}\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n /** @internal */\n _$initialize(\n part: Part,\n parent: Disconnectable,\n attributeIndex: number | undefined\n ) {\n this.__part = part;\n this._$parent = parent;\n this.__attributeIndex = attributeIndex;\n }\n /** @internal */\n _$resolve(part: Part, props: Array): unknown {\n return this.update(part, props);\n }\n\n abstract render(...props: Array): unknown;\n\n update(_part: Part, props: Array): unknown {\n return this.render(...props);\n }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {nothing, TemplateResult, noChange} from '../lit-html.js';\nimport {directive, Directive, PartInfo, PartType} from '../directive.js';\n\nconst HTML_RESULT = 1;\n\nexport class UnsafeHTMLDirective extends Directive {\n static directiveName = 'unsafeHTML';\n static resultType = HTML_RESULT;\n\n private _value: unknown = nothing;\n private _templateResult?: TemplateResult;\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.CHILD) {\n throw new Error(\n `${\n (this.constructor as typeof UnsafeHTMLDirective).directiveName\n }() can only be used in child bindings`\n );\n }\n }\n\n render(value: string | typeof nothing | typeof noChange | undefined | null) {\n if (value === nothing || value == null) {\n this._templateResult = undefined;\n return (this._value = value);\n }\n if (value === noChange) {\n return value;\n }\n if (typeof value != 'string') {\n throw new Error(\n `${\n (this.constructor as typeof UnsafeHTMLDirective).directiveName\n }() called with a non-string value`\n );\n }\n if (value === this._value) {\n return this._templateResult;\n }\n this._value = value;\n const strings = [value] as unknown as TemplateStringsArray;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (strings as any).raw = strings;\n // WARNING: impersonating a TemplateResult like this is extremely\n // dangerous. Third-party directives should not do this.\n return (this._templateResult = {\n // Cast to a known set of integers that satisfy ResultType so that we\n // don't have to export ResultType and possibly encourage this pattern.\n // This property needs to remain unminified.\n ['_$litType$']: (this.constructor as typeof UnsafeHTMLDirective)\n .resultType as 1 | 2,\n strings,\n values: [],\n });\n }\n}\n\n/**\n * Renders the result as HTML, rather than text.\n *\n * The values `undefined`, `null`, and `nothing`, will all result in no content\n * (empty string) being rendered.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeHTML = directive(UnsafeHTMLDirective);\n", "export*from\"lit-html/directives/unsafe-html.js\";\n//# sourceMappingURL=unsafe-html.js.map\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport type {Constructor} from './base.js';\n\n/**\n * Allow for custom element classes with private constructors\n */\ntype CustomElementClass = Omit;\n\nexport type CustomElementDecorator = {\n // legacy\n (cls: CustomElementClass): void;\n\n // standard\n (\n target: CustomElementClass,\n context: ClassDecoratorContext>\n ): void;\n};\n\n/**\n * Class decorator factory that defines the decorated class as a custom element.\n *\n * ```js\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html``;\n * }\n * }\n * ```\n * @category Decorator\n * @param tagName The tag name of the custom element to define.\n */\nexport const customElement =\n (tagName: string): CustomElementDecorator =>\n (\n classOrTarget: CustomElementClass | Constructor,\n context?: ClassDecoratorContext>\n ) => {\n if (context !== undefined) {\n context.addInitializer(() => {\n customElements.define(\n tagName,\n classOrTarget as CustomElementConstructor\n );\n });\n } else {\n customElements.define(tagName, classOrTarget as CustomElementConstructor);\n }\n };\n", "export*from\"@lit/reactive-element/decorators/custom-element.js\";\n//# sourceMappingURL=custom-element.js.map\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {property} from './property.js';\n\nexport interface StateDeclaration {\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n}\n\n/**\n * @deprecated use StateDeclaration\n */\nexport type InternalPropertyDeclaration =\n StateDeclaration;\n\n/**\n * Declares a private or protected reactive property that still triggers\n * updates to the element when it changes. It does not reflect from the\n * corresponding attribute.\n *\n * Properties declared this way must not be used from HTML or HTML templating\n * systems, they're solely for properties internal to the element. These\n * properties may be renamed by optimization tools like closure compiler.\n * @category Decorator\n */\nexport function state(options?: StateDeclaration) {\n return property({\n ...options,\n // Add both `state` and `attribute` because we found a third party\n // controller that is keying off of PropertyOptions.state to determine\n // whether a field is a private internal property or not.\n state: true,\n attribute: false,\n });\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport type {ReactiveElement} from '../reactive-element.js';\nimport type {Interface} from './base.js';\n\nexport type EventOptionsDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any>(\n value: V,\n _context: ClassMethodDecoratorContext\n ): void;\n};\n\n/**\n * Adds event listener options to a method used as an event listener in a\n * lit-html template.\n *\n * @param options An object that specifies event listener options as accepted by\n * `EventTarget#addEventListener` and `EventTarget#removeEventListener`.\n *\n * Current browsers support the `capture`, `passive`, and `once` options. See:\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters\n *\n * ```ts\n * class MyElement {\n * clicked = false;\n *\n * render() {\n * return html`\n *
\n * \n *
\n * `;\n * }\n *\n * @eventOptions({capture: true})\n * _onClick(e) {\n * this.clicked = true;\n * }\n * }\n * ```\n * @category Decorator\n */\nexport function eventOptions(\n options: AddEventListenerOptions\n): EventOptionsDecorator {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ( any>(\n protoOrValue: V,\n nameOrContext: PropertyKey | ClassMethodDecoratorContext\n ) => {\n const method =\n typeof protoOrValue === 'function'\n ? protoOrValue\n : protoOrValue[nameOrContext as keyof ReactiveElement];\n Object.assign(method, options);\n }) as EventOptionsDecorator;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Generates a public interface type that removes private and protected fields.\n * This allows accepting otherwise incompatible versions of the type (e.g. from\n * multiple copies of the same package in `node_modules`).\n */\nexport type Interface = {\n [K in keyof T]: T[K];\n};\n\nexport type Constructor = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (...args: any[]): T;\n};\n\n/**\n * Wraps up a few best practices when returning a property descriptor from a\n * decorator.\n *\n * Marks the defined property as configurable, and enumerable, and handles\n * the case where we have a busted Reflect.decorate zombiefill (e.g. in Angular\n * apps).\n *\n * @internal\n */\nexport const desc = (\n obj: object,\n name: PropertyKey | ClassAccessorDecoratorContext,\n descriptor: PropertyDescriptor\n) => {\n // For backwards compatibility, we keep them configurable and enumerable.\n descriptor.configurable = true;\n descriptor.enumerable = true;\n if (\n // We check for Reflect.decorate each time, in case the zombiefill\n // is applied via lazy loading some Angular code.\n (Reflect as typeof Reflect & {decorate?: unknown}).decorate &&\n typeof name !== 'object'\n ) {\n // If we're called as a legacy decorator, and Reflect.decorate is present\n // then we have no guarantees that the returned descriptor will be\n // defined on the class, so we must apply it directly ourselves.\n\n Object.defineProperty(obj, name, descriptor);\n }\n return descriptor;\n};\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport type {ReactiveElement} from '../reactive-element.js';\nimport {desc, type Interface} from './base.js';\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n globalThis.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += code\n ? ` See https://lit.dev/msg/${code} for more information.`\n : '';\n if (\n !globalThis.litIssuedWarnings!.has(warning) &&\n !globalThis.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n globalThis.litIssuedWarnings!.add(warning);\n }\n };\n}\n\nexport type QueryDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n , V extends Element | null>(\n value: ClassAccessorDecoratorTarget,\n context: ClassAccessorDecoratorContext\n ): ClassAccessorDecoratorResult;\n};\n\n/**\n * A property decorator that converts a class property into a getter that\n * executes a querySelector on the element's renderRoot.\n *\n * @param selector A DOMString containing one or more selectors to match.\n * @param cache An optional boolean which when true performs the DOM query only\n * once and caches the result.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n *\n * ```ts\n * class MyElement {\n * @query('#first')\n * first: HTMLDivElement;\n *\n * render() {\n * return html`\n *
\n *
\n * `;\n * }\n * }\n * ```\n * @category Decorator\n */\nexport function query(selector: string, cache?: boolean): QueryDecorator {\n return (, V extends Element | null>(\n protoOrTarget: ClassAccessorDecoratorTarget,\n nameOrContext: PropertyKey | ClassAccessorDecoratorContext,\n descriptor?: PropertyDescriptor\n ) => {\n const doQuery = (el: Interface): V => {\n const result = (el.renderRoot?.querySelector(selector) ?? null) as V;\n if (DEV_MODE && result === null && cache && !el.hasUpdated) {\n const name =\n typeof nameOrContext === 'object'\n ? nameOrContext.name\n : nameOrContext;\n issueWarning(\n '',\n `@query'd field ${JSON.stringify(String(name))} with the 'cache' ` +\n `flag set for selector '${selector}' has been accessed before ` +\n `the first update and returned null. This is expected if the ` +\n `renderRoot tree has not been provided beforehand (e.g. via ` +\n `Declarative Shadow DOM). Therefore the value hasn't been cached.`\n );\n }\n // TODO: if we want to allow users to assert that the query will never\n // return null, we need a new option and to throw here if the result\n // is null.\n return result;\n };\n if (cache) {\n // Accessors to wrap from either:\n // 1. The decorator target, in the case of standard decorators\n // 2. The property descriptor, in the case of experimental decorators\n // on auto-accessors.\n // 3. Functions that access our own cache-key property on the instance,\n // in the case of experimental decorators on fields.\n const {get, set} =\n typeof nameOrContext === 'object'\n ? protoOrTarget\n : (descriptor ??\n (() => {\n const key = DEV_MODE\n ? Symbol(`${String(nameOrContext)} (@query() cache)`)\n : Symbol();\n type WithCache = ReactiveElement & {\n [key: symbol]: Element | null;\n };\n return {\n get() {\n return (this as WithCache)[key];\n },\n set(v) {\n (this as WithCache)[key] = v;\n },\n };\n })());\n return desc(protoOrTarget, nameOrContext, {\n get(this: ReactiveElement): V {\n let result: V = get!.call(this);\n if (result === undefined) {\n result = doQuery(this);\n if (result !== null || this.hasUpdated) {\n set!.call(this, result);\n }\n }\n return result;\n },\n });\n } else {\n // This object works as the return type for both standard and\n // experimental decorators.\n return desc(protoOrTarget, nameOrContext, {\n get(this: ReactiveElement) {\n return doQuery(this);\n },\n });\n }\n }) as QueryDecorator;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport type {ReactiveElement} from '../reactive-element.js';\nimport {desc, type Interface} from './base.js';\n\nexport type QueryAllDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n , V extends NodeList>(\n value: ClassAccessorDecoratorTarget,\n context: ClassAccessorDecoratorContext\n ): ClassAccessorDecoratorResult;\n};\n\n// Shared fragment used to generate empty NodeLists when a render root is\n// undefined\nlet fragment: DocumentFragment;\n\n/**\n * A property decorator that converts a class property into a getter\n * that executes a querySelectorAll on the element's renderRoot.\n *\n * @param selector A DOMString containing one or more selectors to match.\n *\n * See:\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll\n *\n * ```ts\n * class MyElement {\n * @queryAll('div')\n * divs: NodeListOf;\n *\n * render() {\n * return html`\n *
\n *
\n * `;\n * }\n * }\n * ```\n * @category Decorator\n */\nexport function queryAll(selector: string): QueryAllDecorator {\n return ((\n obj: object,\n name: PropertyKey | ClassAccessorDecoratorContext\n ) => {\n return desc(obj, name, {\n get(this: ReactiveElement) {\n const container =\n this.renderRoot ?? (fragment ??= document.createDocumentFragment());\n return container.querySelectorAll(selector);\n },\n });\n }) as QueryAllDecorator;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport type {ReactiveElement} from '../reactive-element.js';\nimport {desc, type Interface} from './base.js';\n\nexport type QueryAsyncDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n , V extends Promise>(\n value: ClassAccessorDecoratorTarget,\n context: ClassAccessorDecoratorContext\n ): ClassAccessorDecoratorResult;\n};\n\n// Note, in the future, we may extend this decorator to support the use case\n// where the queried element may need to do work to become ready to interact\n// with (e.g. load some implementation code). If so, we might elect to\n// add a second argument defining a function that can be run to make the\n// queried element loaded/updated/ready.\n/**\n * A property decorator that converts a class property into a getter that\n * returns a promise that resolves to the result of a querySelector on the\n * element's renderRoot done after the element's `updateComplete` promise\n * resolves. When the queried property may change with element state, this\n * decorator can be used instead of requiring users to await the\n * `updateComplete` before accessing the property.\n *\n * @param selector A DOMString containing one or more selectors to match.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n *\n * ```ts\n * class MyElement {\n * @queryAsync('#first')\n * first: Promise;\n *\n * render() {\n * return html`\n *
\n *
\n * `;\n * }\n * }\n *\n * // external usage\n * async doSomethingWithFirst() {\n * (await aMyElement.first).doSomething();\n * }\n * ```\n * @category Decorator\n */\nexport function queryAsync(selector: string) {\n return ((\n obj: object,\n name: PropertyKey | ClassAccessorDecoratorContext\n ) => {\n return desc(obj, name, {\n async get(this: ReactiveElement) {\n await this.updateComplete;\n return this.renderRoot?.querySelector(selector) ?? null;\n },\n });\n }) as QueryAsyncDecorator;\n}\n", "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport type {ReactiveElement} from '../reactive-element.js';\nimport type {QueryAssignedNodesOptions} from './query-assigned-nodes.js';\nimport {desc, type Interface} from './base.js';\n\nexport type QueryAssignedElementsDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n , V extends Array>(\n value: ClassAccessorDecoratorTarget,\n context: ClassAccessorDecoratorContext\n ): ClassAccessorDecoratorResult;\n};\n\n/**\n * Options for the {@linkcode queryAssignedElements} decorator. Extends the\n * options that can be passed into\n * [HTMLSlotElement.assignedElements](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedElements).\n */\nexport interface QueryAssignedElementsOptions\n extends QueryAssignedNodesOptions {\n /**\n * CSS selector used to filter the elements returned. For example, a selector\n * of `\".item\"` will only include elements with the `item` class.\n */\n selector?: string;\n}\n\n/**\n * A property decorator that converts a class property into a getter that\n * returns the `assignedElements` of the given `slot`. Provides a declarative\n * way to use\n * [`HTMLSlotElement.assignedElements`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedElements).\n *\n * Can be passed an optional {@linkcode QueryAssignedElementsOptions} object.\n *\n * Example usage:\n * ```ts\n * class MyElement {\n * @queryAssignedElements({ slot: 'list' })\n * listItems!: Array;\n * @queryAssignedElements()\n * unnamedSlotEls!: Array;\n *\n * render() {\n * return html`\n * \n * \n * `;\n * }\n * }\n * ```\n *\n * Note, the type of this property should be annotated as `Array`.\n *\n * @category Decorator\n */\nexport function queryAssignedElements(\n options?: QueryAssignedElementsOptions\n): QueryAssignedElementsDecorator {\n return (>(\n obj: object,\n name: PropertyKey | ClassAccessorDecoratorContext\n ) => {\n const {slot, selector} = options ?? {};\n const slotSelector = `slot${slot ? `[name=${slot}]` : ':not([name])'}`;\n return desc(obj, name, {\n get(this: ReactiveElement): V {\n const slotEl =\n this.renderRoot?.querySelector(slotSelector);\n const elements = slotEl?.assignedElements(options) ?? [];\n return (\n selector === undefined\n ? elements\n : elements.filter((node) => node.matches(selector))\n ) as V;\n },\n });\n }) as QueryAssignedElementsDecorator;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport type {ReactiveElement} from '../reactive-element.js';\nimport {desc, type Interface} from './base.js';\n\n/**\n * Options for the {@linkcode queryAssignedNodes} decorator. Extends the options\n * that can be passed into [HTMLSlotElement.assignedNodes](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedNodes).\n */\nexport interface QueryAssignedNodesOptions extends AssignedNodesOptions {\n /**\n * Name of the slot to query. Leave empty for the default slot.\n */\n slot?: string;\n}\n\nexport type QueryAssignedNodesDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n , V extends Array>(\n value: ClassAccessorDecoratorTarget,\n context: ClassAccessorDecoratorContext\n ): ClassAccessorDecoratorResult;\n};\n\n/**\n * A property decorator that converts a class property into a getter that\n * returns the `assignedNodes` of the given `slot`.\n *\n * Can be passed an optional {@linkcode QueryAssignedNodesOptions} object.\n *\n * Example usage:\n * ```ts\n * class MyElement {\n * @queryAssignedNodes({slot: 'list', flatten: true})\n * listItems!: Array;\n *\n * render() {\n * return html`\n * \n * `;\n * }\n * }\n * ```\n *\n * Note the type of this property should be annotated as `Array`. Use the\n * queryAssignedElements decorator to list only elements, and optionally filter\n * the element list using a CSS selector.\n *\n * @category Decorator\n */\nexport function queryAssignedNodes(\n options?: QueryAssignedNodesOptions\n): QueryAssignedNodesDecorator {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (>(\n obj: object,\n name: PropertyKey | ClassAccessorDecoratorContext\n ) => {\n const {slot} = options ?? {};\n const slotSelector = `slot${slot ? `[name=${slot}]` : ':not([name])'}`;\n return desc(obj, name, {\n get(this: ReactiveElement): V {\n const slotEl =\n this.renderRoot?.querySelector(slotSelector);\n return (slotEl?.assignedNodes(options) ?? []) as unknown as V;\n },\n });\n }) as QueryAssignedNodesDecorator;\n}\n", "export*from\"@lit/reactive-element/decorators/custom-element.js\";export*from\"@lit/reactive-element/decorators/property.js\";export*from\"@lit/reactive-element/decorators/state.js\";export*from\"@lit/reactive-element/decorators/event-options.js\";export*from\"@lit/reactive-element/decorators/query.js\";export*from\"@lit/reactive-element/decorators/query-all.js\";export*from\"@lit/reactive-element/decorators/query-async.js\";export*from\"@lit/reactive-element/decorators/query-assigned-elements.js\";export*from\"@lit/reactive-element/decorators/query-assigned-nodes.js\";\n//# sourceMappingURL=decorators.js.map\n", "import * as plugins from './plugins.js';\n\nexport class DeesElement extends plugins.lit.LitElement {\n // INSTANCE\n @plugins.lit.property({ type: Boolean })\n public accessor goBright: boolean = false;\n\n // domtools\n public domtoolsPromise: Promise;\n\n @plugins.lit.property()\n public accessor domtools: plugins.domtools.DomTools;\n\n public rxSubscriptions: plugins.smartrx.rxjs.Subscription[] = [];\n private themeSubscription: plugins.smartrx.rxjs.Subscription;\n\n private elementDomReadyDeferred = plugins.domtools.plugins.smartpromise.defer();\n public elementDomReady = this.elementDomReadyDeferred.promise;\n\n constructor(optionsArg: plugins.domtools.IDomToolsContructorOptions = {}) {\n super();\n this.domtoolsPromise = plugins.domtools.elementBasic.setup(this, optionsArg);\n this.domtoolsPromise.then((domtoolsArg) => {\n this.domtools = domtoolsArg;\n });\n }\n\n /**\n * Called when the theme changes between bright and dark.\n * Override this method to handle theme changes.\n * @param goBright - true if switching to bright theme, false if switching to dark theme\n */\n protected themeChanged?(goBright: boolean): void;\n\n public async connectedCallback() {\n super.connectedCallback();\n const domtools = await this.domtoolsPromise;\n this.themeSubscription = domtools.themeManager.themeObservable.subscribe((goBrightArg) => {\n this.goBright = goBrightArg;\n // Call themeChanged if it's defined\n if (this.themeChanged) {\n this.themeChanged(goBrightArg);\n }\n });\n this.rxSubscriptions.push(this.themeSubscription);\n for (const startupFunction of this.startupFunctions) {\n await startupFunction();\n }\n this.dispatchEvent(new CustomEvent('deesElementConnected'));\n }\n\n public firstUpdated(_changedProperties: Map): void {\n super.firstUpdated(_changedProperties);\n this.elementDomReadyDeferred.resolve();\n }\n\n private startupFunctions: (() => void | Promise)[] = [];\n public registerStartupFunction(startupFunctionArg: () => void) {\n this.startupFunctions.push(startupFunctionArg);\n }\n\n private garbageFunctions: (() => void | Promise)[] = [];\n public registerGarbageFunction(garbageFunctionArg: () => void) {\n this.garbageFunctions.push(garbageFunctionArg);\n }\n\n public async disconnectedCallback() {\n await this.domtoolsPromise;\n super.disconnectedCallback();\n for (const subscription of this.rxSubscriptions) {\n subscription.unsubscribe();\n }\n for (const garbageFunction of this.garbageFunctions) {\n await garbageFunction();\n }\n this.dispatchEvent(new CustomEvent('deesElementDisconnected'));\n }\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {\n _$LH,\n Part,\n DirectiveParent,\n CompiledTemplateResult,\n MaybeCompiledTemplateResult,\n UncompiledTemplateResult,\n} from './lit-html.js';\nimport {\n DirectiveResult,\n DirectiveClass,\n PartInfo,\n AttributePartInfo,\n} from './directive.js';\ntype Primitive = null | undefined | boolean | number | string | symbol | bigint;\n\nconst {_ChildPart: ChildPart} = _$LH;\n\ntype ChildPart = InstanceType;\n\nconst ENABLE_SHADYDOM_NOPATCH = true;\n\nconst wrap =\n ENABLE_SHADYDOM_NOPATCH &&\n window.ShadyDOM?.inUse &&\n window.ShadyDOM?.noPatch === true\n ? window.ShadyDOM!.wrap\n : (node: Node) => node;\n\n/**\n * Tests if a value is a primitive value.\n *\n * See https://tc39.github.io/ecma262/#sec-typeof-operator\n */\nexport const isPrimitive = (value: unknown): value is Primitive =>\n value === null || (typeof value != 'object' && typeof value != 'function');\n\nexport const TemplateResultType = {\n HTML: 1,\n SVG: 2,\n MATHML: 3,\n} as const;\n\nexport type TemplateResultType =\n (typeof TemplateResultType)[keyof typeof TemplateResultType];\n\ntype IsTemplateResult = {\n (val: unknown): val is MaybeCompiledTemplateResult;\n (\n val: unknown,\n type: T\n ): val is UncompiledTemplateResult;\n};\n\n/**\n * Tests if a value is a TemplateResult or a CompiledTemplateResult.\n */\nexport const isTemplateResult: IsTemplateResult = (\n value: unknown,\n type?: TemplateResultType\n): value is UncompiledTemplateResult =>\n type === undefined\n ? // This property needs to remain unminified.\n (value as UncompiledTemplateResult)?.['_$litType$'] !== undefined\n : (value as UncompiledTemplateResult)?.['_$litType$'] === type;\n\n/**\n * Tests if a value is a CompiledTemplateResult.\n */\nexport const isCompiledTemplateResult = (\n value: unknown\n): value is CompiledTemplateResult => {\n return (value as CompiledTemplateResult)?.['_$litType$']?.h != null;\n};\n\n/**\n * Tests if a value is a DirectiveResult.\n */\nexport const isDirectiveResult = (value: unknown): value is DirectiveResult =>\n // This property needs to remain unminified.\n (value as DirectiveResult)?.['_$litDirective$'] !== undefined;\n\n/**\n * Retrieves the Directive class for a DirectiveResult\n */\nexport const getDirectiveClass = (value: unknown): DirectiveClass | undefined =>\n // This property needs to remain unminified.\n (value as DirectiveResult)?.['_$litDirective$'];\n\n/**\n * Tests whether a part has only a single-expression with no strings to\n * interpolate between.\n *\n * Only AttributePart and PropertyPart can have multiple expressions.\n * Multi-expression parts have a `strings` property and single-expression\n * parts do not.\n */\nexport const isSingleExpression = (part: PartInfo) =>\n (part as AttributePartInfo).strings === undefined;\n\nconst createMarker = () => document.createComment('');\n\n/**\n * Inserts a ChildPart into the given container ChildPart's DOM, either at the\n * end of the container ChildPart, or before the optional `refPart`.\n *\n * This does not add the part to the containerPart's committed value. That must\n * be done by callers.\n *\n * @param containerPart Part within which to add the new ChildPart\n * @param refPart Part before which to add the new ChildPart; when omitted the\n * part added to the end of the `containerPart`\n * @param part Part to insert, or undefined to create a new part\n */\nexport const insertPart = (\n containerPart: ChildPart,\n refPart?: ChildPart,\n part?: ChildPart\n): ChildPart => {\n const container = wrap(containerPart._$startNode).parentNode!;\n\n const refNode =\n refPart === undefined ? containerPart._$endNode : refPart._$startNode;\n\n if (part === undefined) {\n const startNode = wrap(container).insertBefore(createMarker(), refNode);\n const endNode = wrap(container).insertBefore(createMarker(), refNode);\n part = new ChildPart(\n startNode,\n endNode,\n containerPart,\n containerPart.options\n );\n } else {\n const endNode = wrap(part._$endNode!).nextSibling;\n const oldParent = part._$parent;\n const parentChanged = oldParent !== containerPart;\n if (parentChanged) {\n part._$reparentDisconnectables?.(containerPart);\n // Note that although `_$reparentDisconnectables` updates the part's\n // `_$parent` reference after unlinking from its current parent, that\n // method only exists if Disconnectables are present, so we need to\n // unconditionally set it here\n part._$parent = containerPart;\n // Since the _$isConnected getter is somewhat costly, only\n // read it once we know the subtree has directives that need\n // to be notified\n let newConnectionState;\n if (\n part._$notifyConnectionChanged !== undefined &&\n (newConnectionState = containerPart._$isConnected) !==\n oldParent!._$isConnected\n ) {\n part._$notifyConnectionChanged(newConnectionState);\n }\n }\n if (endNode !== refNode || parentChanged) {\n let start: Node | null = part._$startNode;\n while (start !== endNode) {\n const n: Node | null = wrap(start!).nextSibling;\n wrap(container).insertBefore(start!, refNode);\n start = n;\n }\n }\n }\n\n return part;\n};\n\n/**\n * Sets the value of a Part.\n *\n * Note that this should only be used to set/update the value of user-created\n * parts (i.e. those created using `insertPart`); it should not be used\n * by directives to set the value of the directive's container part. Directives\n * should return a value from `update`/`render` to update their part state.\n *\n * For directives that require setting their part value asynchronously, they\n * should extend `AsyncDirective` and call `this.setValue()`.\n *\n * @param part Part to set\n * @param value Value to set\n * @param index For `AttributePart`s, the index to set\n * @param directiveParent Used internally; should not be set by user\n */\nexport const setChildPartValue = (\n part: T,\n value: unknown,\n directiveParent: DirectiveParent = part\n): T => {\n part._$setValue(value, directiveParent);\n return part;\n};\n\n// A sentinel value that can never appear as a part value except when set by\n// live(). Used to force a dirty-check to fail and cause a re-render.\nconst RESET_VALUE = {};\n\n/**\n * Sets the committed value of a ChildPart directly without triggering the\n * commit stage of the part.\n *\n * This is useful in cases where a directive needs to update the part such\n * that the next update detects a value change or not. When value is omitted,\n * the next update will be guaranteed to be detected as a change.\n *\n * @param part\n * @param value\n */\nexport const setCommittedValue = (part: Part, value: unknown = RESET_VALUE) =>\n (part._$committedValue = value);\n\n/**\n * Returns the committed value of a ChildPart.\n *\n * The committed value is used for change detection and efficient updates of\n * the part. It can differ from the value set by the template or directive in\n * cases where the template value is transformed before being committed.\n *\n * - `TemplateResult`s are committed as a `TemplateInstance`\n * - Iterables are committed as `Array`\n * - All other types are committed as the template value or value returned or\n * set by a directive.\n *\n * @param part\n */\nexport const getCommittedValue = (part: ChildPart) => part._$committedValue;\n\n/**\n * Removes a ChildPart from the DOM, including any of its content and markers.\n *\n * Note: The only difference between this and clearPart() is that this also\n * removes the part's start node. This means that the ChildPart must own its\n * start node, ie it must be a marker node specifically for this part and not an\n * anchor from surrounding content.\n *\n * @param part The Part to remove\n */\nexport const removePart = (part: ChildPart) => {\n part._$clear();\n part._$startNode.remove();\n};\n\nexport const clearPart = (part: ChildPart) => {\n part._$clear();\n};\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Overview:\n *\n * This module is designed to add support for an async `setValue` API and\n * `disconnected` callback to directives with the least impact on the core\n * runtime or payload when that feature is not used.\n *\n * The strategy is to introduce a `AsyncDirective` subclass of\n * `Directive` that climbs the \"parent\" tree in its constructor to note which\n * branches of lit-html's \"logical tree\" of data structures contain such\n * directives and thus need to be crawled when a subtree is being cleared (or\n * manually disconnected) in order to run the `disconnected` callback.\n *\n * The \"nodes\" of the logical tree include Parts, TemplateInstances (for when a\n * TemplateResult is committed to a value of a ChildPart), and Directives; these\n * all implement a common interface called `DisconnectableChild`. Each has a\n * `_$parent` reference which is set during construction in the core code, and a\n * `_$disconnectableChildren` field which is initially undefined.\n *\n * The sparse tree created by means of the `AsyncDirective` constructor\n * crawling up the `_$parent` tree and placing a `_$disconnectableChildren` Set\n * on each parent that includes each child that contains a\n * `AsyncDirective` directly or transitively via its children. In order to\n * notify connection state changes and disconnect (or reconnect) a tree, the\n * `_$notifyConnectionChanged` API is patched onto ChildParts as a directive\n * climbs the parent tree, which is called by the core when clearing a part if\n * it exists. When called, that method iterates over the sparse tree of\n * Set built up by AsyncDirectives, and calls\n * `_$notifyDirectiveConnectionChanged` on any directives that are encountered\n * in that tree, running the required callbacks.\n *\n * A given \"logical tree\" of lit-html data-structures might look like this:\n *\n * ChildPart(N1) _$dC=[D2,T3]\n * ._directive\n * AsyncDirective(D2)\n * ._value // user value was TemplateResult\n * TemplateInstance(T3) _$dC=[A4,A6,N10,N12]\n * ._$parts[]\n * AttributePart(A4) _$dC=[D5]\n * ._directives[]\n * AsyncDirective(D5)\n * AttributePart(A6) _$dC=[D7,D8]\n * ._directives[]\n * AsyncDirective(D7)\n * Directive(D8) _$dC=[D9]\n * ._directive\n * AsyncDirective(D9)\n * ChildPart(N10) _$dC=[D11]\n * ._directive\n * AsyncDirective(D11)\n * ._value\n * string\n * ChildPart(N12) _$dC=[D13,N14,N16]\n * ._directive\n * AsyncDirective(D13)\n * ._value // user value was iterable\n * Array\n * ChildPart(N14) _$dC=[D15]\n * ._value\n * string\n * ChildPart(N16) _$dC=[D17,T18]\n * ._directive\n * AsyncDirective(D17)\n * ._value // user value was TemplateResult\n * TemplateInstance(T18) _$dC=[A19,A21,N25]\n * ._$parts[]\n * AttributePart(A19) _$dC=[D20]\n * ._directives[]\n * AsyncDirective(D20)\n * AttributePart(A21) _$dC=[22,23]\n * ._directives[]\n * AsyncDirective(D22)\n * Directive(D23) _$dC=[D24]\n * ._directive\n * AsyncDirective(D24)\n * ChildPart(N25) _$dC=[D26]\n * ._directive\n * AsyncDirective(D26)\n * ._value\n * string\n *\n * Example 1: The directive in ChildPart(N12) updates and returns `nothing`. The\n * ChildPart will _clear() itself, and so we need to disconnect the \"value\" of\n * the ChildPart (but not its directive). In this case, when `_clear()` calls\n * `_$notifyConnectionChanged()`, we don't iterate all of the\n * _$disconnectableChildren, rather we do a value-specific disconnection: i.e.\n * since the _value was an Array (because an iterable had been\n * committed), we iterate the array of ChildParts (N14, N16) and run\n * `setConnected` on them (which does recurse down the full tree of\n * `_$disconnectableChildren` below it, and also removes N14 and N16 from N12's\n * `_$disconnectableChildren`). Once the values have been disconnected, we then\n * check whether the ChildPart(N12)'s list of `_$disconnectableChildren` is empty\n * (and would remove it from its parent TemplateInstance(T3) if so), but since\n * it would still contain its directive D13, it stays in the disconnectable\n * tree.\n *\n * Example 2: In the course of Example 1, `setConnected` will reach\n * ChildPart(N16); in this case the entire part is being disconnected, so we\n * simply iterate all of N16's `_$disconnectableChildren` (D17,T18) and\n * recursively run `setConnected` on them. Note that we only remove children\n * from `_$disconnectableChildren` for the top-level values being disconnected\n * on a clear; doing this bookkeeping lower in the tree is wasteful since it's\n * all being thrown away.\n *\n * Example 3: If the LitElement containing the entire tree above becomes\n * disconnected, it will run `childPart.setConnected()` (which calls\n * `childPart._$notifyConnectionChanged()` if it exists); in this case, we\n * recursively run `setConnected()` over the entire tree, without removing any\n * children from `_$disconnectableChildren`, since this tree is required to\n * re-connect the tree, which does the same operation, simply passing\n * `isConnected: true` down the tree, signaling which callback to run.\n */\n\nimport {AttributePart, ChildPart, Disconnectable, Part} from './lit-html.js';\nimport {isSingleExpression} from './directive-helpers.js';\nimport {Directive, PartInfo, PartType} from './directive.js';\nexport * from './directive.js';\n\nconst DEV_MODE = true;\n\n/**\n * Recursively walks down the tree of Parts/TemplateInstances/Directives to set\n * the connected state of directives and run `disconnected`/ `reconnected`\n * callbacks.\n *\n * @return True if there were children to disconnect; false otherwise\n */\nconst notifyChildrenConnectedChanged = (\n parent: Disconnectable,\n isConnected: boolean\n): boolean => {\n const children = parent._$disconnectableChildren;\n if (children === undefined) {\n return false;\n }\n for (const obj of children) {\n // The existence of `_$notifyDirectiveConnectionChanged` is used as a \"brand\" to\n // disambiguate AsyncDirectives from other DisconnectableChildren\n // (as opposed to using an instanceof check to know when to call it); the\n // redundancy of \"Directive\" in the API name is to avoid conflicting with\n // `_$notifyConnectionChanged`, which exists `ChildParts` which are also in\n // this list\n // Disconnect Directive (and any nested directives contained within)\n // This property needs to remain unminified.\n (obj as AsyncDirective)['_$notifyDirectiveConnectionChanged']?.(\n isConnected,\n false\n );\n // Disconnect Part/TemplateInstance\n notifyChildrenConnectedChanged(obj, isConnected);\n }\n return true;\n};\n\n/**\n * Removes the given child from its parent list of disconnectable children, and\n * if the parent list becomes empty as a result, removes the parent from its\n * parent, and so forth up the tree when that causes subsequent parent lists to\n * become empty.\n */\nconst removeDisconnectableFromParent = (obj: Disconnectable) => {\n let parent, children;\n do {\n if ((parent = obj._$parent) === undefined) {\n break;\n }\n children = parent._$disconnectableChildren!;\n children.delete(obj);\n obj = parent;\n } while (children?.size === 0);\n};\n\nconst addDisconnectableToParent = (obj: Disconnectable) => {\n // Climb the parent tree, creating a sparse tree of children needing\n // disconnection\n for (let parent; (parent = obj._$parent); obj = parent) {\n let children = parent._$disconnectableChildren;\n if (children === undefined) {\n parent._$disconnectableChildren = children = new Set();\n } else if (children.has(obj)) {\n // Once we've reached a parent that already contains this child, we\n // can short-circuit\n break;\n }\n children.add(obj);\n installDisconnectAPI(parent);\n }\n};\n\n/**\n * Changes the parent reference of the ChildPart, and updates the sparse tree of\n * Disconnectable children accordingly.\n *\n * Note, this method will be patched onto ChildPart instances and called from\n * the core code when parts are moved between different parents.\n */\nfunction reparentDisconnectables(this: ChildPart, newParent: Disconnectable) {\n if (this._$disconnectableChildren !== undefined) {\n removeDisconnectableFromParent(this);\n this._$parent = newParent;\n addDisconnectableToParent(this);\n } else {\n this._$parent = newParent;\n }\n}\n\n/**\n * Sets the connected state on any directives contained within the committed\n * value of this part (i.e. within a TemplateInstance or iterable of\n * ChildParts) and runs their `disconnected`/`reconnected`s, as well as within\n * any directives stored on the ChildPart (when `valueOnly` is false).\n *\n * `isClearingValue` should be passed as `true` on a top-level part that is\n * clearing itself, and not as a result of recursively disconnecting directives\n * as part of a `clear` operation higher up the tree. This both ensures that any\n * directive on this ChildPart that produced a value that caused the clear\n * operation is not disconnected, and also serves as a performance optimization\n * to avoid needless bookkeeping when a subtree is going away; when clearing a\n * subtree, only the top-most part need to remove itself from the parent.\n *\n * `fromPartIndex` is passed only in the case of a partial `_clear` running as a\n * result of truncating an iterable.\n *\n * Note, this method will be patched onto ChildPart instances and called from the\n * core code when parts are cleared or the connection state is changed by the\n * user.\n */\nfunction notifyChildPartConnectedChanged(\n this: ChildPart,\n isConnected: boolean,\n isClearingValue = false,\n fromPartIndex = 0\n) {\n const value = this._$committedValue;\n const children = this._$disconnectableChildren;\n if (children === undefined || children.size === 0) {\n return;\n }\n if (isClearingValue) {\n if (Array.isArray(value)) {\n // Iterable case: Any ChildParts created by the iterable should be\n // disconnected and removed from this ChildPart's disconnectable\n // children (starting at `fromPartIndex` in the case of truncation)\n for (let i = fromPartIndex; i < value.length; i++) {\n notifyChildrenConnectedChanged(value[i], false);\n removeDisconnectableFromParent(value[i]);\n }\n } else if (value != null) {\n // TemplateInstance case: If the value has disconnectable children (will\n // only be in the case that it is a TemplateInstance), we disconnect it\n // and remove it from this ChildPart's disconnectable children\n notifyChildrenConnectedChanged(value as Disconnectable, false);\n removeDisconnectableFromParent(value as Disconnectable);\n }\n } else {\n notifyChildrenConnectedChanged(this, isConnected);\n }\n}\n\n/**\n * Patches disconnection API onto ChildParts.\n */\nconst installDisconnectAPI = (obj: Disconnectable) => {\n if ((obj as ChildPart).type == PartType.CHILD) {\n (obj as ChildPart)._$notifyConnectionChanged ??=\n notifyChildPartConnectedChanged;\n (obj as ChildPart)._$reparentDisconnectables ??= reparentDisconnectables;\n }\n};\n\n/**\n * An abstract `Directive` base class whose `disconnected` method will be\n * called when the part containing the directive is cleared as a result of\n * re-rendering, or when the user calls `part.setConnected(false)` on\n * a part that was previously rendered containing the directive (as happens\n * when e.g. a LitElement disconnects from the DOM).\n *\n * If `part.setConnected(true)` is subsequently called on a\n * containing part, the directive's `reconnected` method will be called prior\n * to its next `update`/`render` callbacks. When implementing `disconnected`,\n * `reconnected` should also be implemented to be compatible with reconnection.\n *\n * Note that updates may occur while the directive is disconnected. As such,\n * directives should generally check the `this.isConnected` flag during\n * render/update to determine whether it is safe to subscribe to resources\n * that may prevent garbage collection.\n */\nexport abstract class AsyncDirective extends Directive {\n // As opposed to other Disconnectables, AsyncDirectives always get notified\n // when the RootPart connection changes, so the public `isConnected`\n // is a locally stored variable initialized via its part's getter and synced\n // via `_$notifyDirectiveConnectionChanged`. This is cheaper than using\n // the _$isConnected getter, which has to look back up the tree each time.\n /**\n * The connection state for this Directive.\n */\n isConnected!: boolean;\n\n // @internal\n override _$disconnectableChildren?: Set = undefined;\n /**\n * Initialize the part with internal fields\n * @param part\n * @param parent\n * @param attributeIndex\n */\n override _$initialize(\n part: Part,\n parent: Disconnectable,\n attributeIndex: number | undefined\n ) {\n super._$initialize(part, parent, attributeIndex);\n addDisconnectableToParent(this);\n this.isConnected = part._$isConnected;\n }\n // This property needs to remain unminified.\n /**\n * Called from the core code when a directive is going away from a part (in\n * which case `shouldRemoveFromParent` should be true), and from the\n * `setChildrenConnected` helper function when recursively changing the\n * connection state of a tree (in which case `shouldRemoveFromParent` should\n * be false).\n *\n * @param isConnected\n * @param isClearingDirective - True when the directive itself is being\n * removed; false when the tree is being disconnected\n * @internal\n */\n override ['_$notifyDirectiveConnectionChanged'](\n isConnected: boolean,\n isClearingDirective = true\n ) {\n if (isConnected !== this.isConnected) {\n this.isConnected = isConnected;\n if (isConnected) {\n this.reconnected?.();\n } else {\n this.disconnected?.();\n }\n }\n if (isClearingDirective) {\n notifyChildrenConnectedChanged(this, isConnected);\n removeDisconnectableFromParent(this);\n }\n }\n\n /**\n * Sets the value of the directive's Part outside the normal `update`/`render`\n * lifecycle of a directive.\n *\n * This method should not be called synchronously from a directive's `update`\n * or `render`.\n *\n * @param directive The directive to update\n * @param value The value to set\n */\n setValue(value: unknown) {\n if (isSingleExpression(this.__part as unknown as PartInfo)) {\n this.__part._$setValue(value, this);\n } else {\n // this.__attributeIndex will be defined in this case, but\n // assert it in dev mode\n if (DEV_MODE && this.__attributeIndex === undefined) {\n throw new Error(`Expected this.__attributeIndex to be a number`);\n }\n const newValues = [...(this.__part._$committedValue as Array)];\n newValues[this.__attributeIndex!] = value;\n (this.__part as AttributePart)._$setValue(newValues, this, 0);\n }\n }\n\n /**\n * User callbacks for implementing logic to release any resources/subscriptions\n * that may have been retained by this directive. Since directives may also be\n * re-connected, `reconnected` should also be implemented to restore the\n * working state of the directive prior to the next render.\n */\n protected disconnected() {}\n protected reconnected() {}\n}\n", "export*from\"lit-html/async-directive.js\";\n//# sourceMappingURL=async-directive.js.map\n", "import { type TemplateResult, noChange } from 'lit';\nimport { AsyncDirective, directive } from 'lit/async-directive.js';\n\n/**\n * Resolves a promise and sets the value of the directive\n */\nclass ResolveDirective extends AsyncDirective {\n promise: Promise | undefined;\n hasPromiseSettled: boolean = false;\n\n render(promise: Promise) {\n if (this.promise !== promise) {\n this.promise = promise;\n\n if (this.isConnected) {\n this.handlePromise(promise);\n }\n }\n\n return noChange;\n }\n\n handlePromise(promise: Promise) {\n this.hasPromiseSettled = false;\n\n promise.then((value) => {\n if (this.promise === promise && !this.hasPromiseSettled) {\n this.setValue(value);\n this.hasPromiseSettled = true;\n }\n }).catch((error) => {\n if (this.promise === promise && !this.hasPromiseSettled) {\n this.setValue(error);\n this.hasPromiseSettled = true;\n }\n });\n }\n\n disconnected() {\n this.hasPromiseSettled = true; // prevent setting value if the promise settles after disconnection\n }\n\n reconnected() {\n if (!this.hasPromiseSettled) {\n this.handlePromise(this.promise!);\n }\n }\n}\n\nexport const resolve = directive(ResolveDirective);\nexport const resolveExec = (funcArg: () => Promise) => {\n return resolve(funcArg());\n}\n", "import { noChange } from 'lit';\nimport { AsyncDirective, directive } from 'lit/async-directive.js';\nimport { rxjs } from '@push.rocks/smartrx';\n\n/**\n * Subscribes to an observable\n */\nclass SubscribeDirective extends AsyncDirective {\n observable: rxjs.Observable | undefined;\n sub: rxjs.Subscription | null = null;\n\n render(observable: rxjs.Observable) {\n if (this.observable !== observable) {\n this.sub?.unsubscribe();\n this.observable = observable;\n\n if (this.isConnected) {\n this.subscribe(observable);\n }\n }\n\n return noChange;\n }\n\n subscribe(observable: rxjs.Observable) {\n this.sub = observable.subscribe((v: unknown) => {\n this.setValue(v);\n });\n }\n\n disconnected() {\n this.sub?.unsubscribe();\n }\n\n reconnected() {\n this.subscribe(this.observable!);\n }\n}\n\nexport const subscribe = directive(SubscribeDirective);\n", "import { type TemplateResult, noChange } from 'lit';\nimport type { DirectiveResult } from 'lit/directive.js';\nimport { AsyncDirective, directive } from 'lit/async-directive.js';\nimport { rxjs } from '@push.rocks/smartrx';\n\n/**\n * Subscribes to an observable and applies a template function to each emission.\n * @param observable - the source Observable\n * @param templateFn - function mapping each emitted value to a TemplateResult or other renderable content\n */\nclass SubscribeWithTemplateDirective extends AsyncDirective {\n private observable?: rxjs.Observable;\n private templateFn?: (value: unknown) => TemplateResult | unknown;\n private sub: rxjs.Subscription | null = null;\n\n render(\n observable: rxjs.Observable,\n templateFn: (value: unknown) => TemplateResult | unknown\n ) {\n const changed = this.observable !== observable || this.templateFn !== templateFn;\n if (changed) {\n this.sub?.unsubscribe();\n this.observable = observable;\n this.templateFn = templateFn;\n if (this.isConnected) {\n this.startSubscription();\n }\n }\n return noChange;\n }\n\n private startSubscription() {\n this.sub = this.observable!.subscribe((v: unknown) => {\n const out = this.templateFn!(v);\n this.setValue(out);\n });\n }\n\n disconnected() {\n this.sub?.unsubscribe();\n }\n\n reconnected() {\n this.startSubscription();\n }\n}\n\n/**\n * Directive that renders templates for each emission of an Observable.\n * Usage: html`${subscribeWithTemplate(myObservable, v => html`${v}`)}`\n */\n/**\n * Typed directive function signature: returns a Lit DirectiveResult.\n */\ntype SubscribeWithTemplateFn = (\n observable: rxjs.Observable,\n templateFn: (value: T) => TemplateResult | unknown\n) => DirectiveResult;\nexport const subscribeWithTemplate = directive(\n SubscribeWithTemplateDirective\n) as SubscribeWithTemplateFn;", "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// Note, this module is not included in package exports so that it's private to\n// our first-party directives. If it ends up being useful, we can open it up and\n// export it.\n\n/**\n * Helper to iterate an AsyncIterable in its own closure.\n * @param iterable The iterable to iterate\n * @param callback The callback to call for each value. If the callback returns\n * `false`, the loop will be broken.\n */\nexport const forAwaitOf = async (\n iterable: AsyncIterable,\n callback: (value: T) => Promise\n) => {\n for await (const v of iterable) {\n if ((await callback(v)) === false) {\n return;\n }\n }\n};\n\n/**\n * Holds a reference to an instance that can be disconnected and reconnected,\n * so that a closure over the ref (e.g. in a then function to a promise) does\n * not strongly hold a ref to the instance. Approximates a WeakRef but must\n * be manually connected & disconnected to the backing instance.\n */\nexport class PseudoWeakRef {\n private _ref?: T;\n constructor(ref: T) {\n this._ref = ref;\n }\n /**\n * Disassociates the ref with the backing instance.\n */\n disconnect() {\n this._ref = undefined;\n }\n /**\n * Reassociates the ref with the backing instance.\n */\n reconnect(ref: T) {\n this._ref = ref;\n }\n /**\n * Retrieves the backing instance (will be undefined when disconnected)\n */\n deref() {\n return this._ref;\n }\n}\n\n/**\n * A helper to pause and resume waiting on a condition in an async function\n */\nexport class Pauser {\n private _promise?: Promise = undefined;\n private _resolve?: () => void = undefined;\n /**\n * When paused, returns a promise to be awaited; when unpaused, returns\n * undefined. Note that in the microtask between the pauser being resumed\n * an await of this promise resolving, the pauser could be paused again,\n * hence callers should check the promise in a loop when awaiting.\n * @returns A promise to be awaited when paused or undefined\n */\n get() {\n return this._promise;\n }\n /**\n * Creates a promise to be awaited\n */\n pause() {\n this._promise ??= new Promise((resolve) => (this._resolve = resolve));\n }\n /**\n * Resolves the promise which may be awaited\n */\n resume() {\n this._resolve?.();\n this._promise = this._resolve = undefined;\n }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {Part, noChange} from '../lit-html.js';\nimport {isPrimitive} from '../directive-helpers.js';\nimport {\n directive,\n AsyncDirective,\n DirectiveResult,\n} from '../async-directive.js';\nimport {Pauser, PseudoWeakRef} from './private-async-helpers.js';\n\nconst isPromise = (x: unknown): x is Promise => {\n return !isPrimitive(x) && typeof (x as {then?: unknown}).then === 'function';\n};\n// Effectively infinity, but a SMI.\nconst _infinity = 0x3fffffff;\n\ntype UnwrapPromise = T extends Promise ? U : T;\n\nexport class UntilDirective extends AsyncDirective {\n private __lastRenderedIndex: number = _infinity;\n private __values: unknown[] = [];\n private __weakThis = new PseudoWeakRef(this);\n private __pauser = new Pauser();\n\n render(...args: Array): UnwrapPromise {\n return (args.find((x) => !isPromise(x)) ?? noChange) as UnwrapPromise;\n }\n\n override update(_part: Part, args: Array) {\n const previousValues = this.__values;\n let previousLength = previousValues.length;\n this.__values = args;\n\n const weakThis = this.__weakThis;\n const pauser = this.__pauser;\n\n // If our initial render occurs while disconnected, ensure that the pauser\n // and weakThis are in the disconnected state\n if (!this.isConnected) {\n this.disconnected();\n }\n\n for (let i = 0; i < args.length; i++) {\n // If we've rendered a higher-priority value already, stop.\n if (i > this.__lastRenderedIndex) {\n break;\n }\n\n const value = args[i];\n\n // Render non-Promise values immediately\n if (!isPromise(value)) {\n this.__lastRenderedIndex = i;\n // Since a lower-priority value will never overwrite a higher-priority\n // synchronous value, we can stop processing now.\n return value;\n }\n\n // If this is a Promise we've already handled, skip it.\n if (i < previousLength && value === previousValues[i]) {\n continue;\n }\n\n // We have a Promise that we haven't seen before, so priorities may have\n // changed. Forget what we rendered before.\n this.__lastRenderedIndex = _infinity;\n previousLength = 0;\n\n // Note, the callback avoids closing over `this` so that the directive\n // can be gc'ed before the promise resolves; instead `this` is retrieved\n // from `weakThis`, which can break the hard reference in the closure when\n // the directive disconnects\n Promise.resolve(value).then(async (result: unknown) => {\n // If we're disconnected, wait until we're (maybe) reconnected\n // The while loop here handles the case that the connection state\n // thrashes, causing the pauser to resume and then get re-paused\n while (pauser.get()) {\n await pauser.get();\n }\n // If the callback gets here and there is no `this`, it means that the\n // directive has been disconnected and garbage collected and we don't\n // need to do anything else\n const _this = weakThis.deref();\n if (_this !== undefined) {\n const index = _this.__values.indexOf(value);\n // If state.values doesn't contain the value, we've re-rendered without\n // the value, so don't render it. Then, only render if the value is\n // higher-priority than what's already been rendered.\n if (index > -1 && index < _this.__lastRenderedIndex) {\n _this.__lastRenderedIndex = index;\n _this.setValue(result);\n }\n }\n });\n }\n\n return noChange;\n }\n\n override disconnected() {\n this.__weakThis.disconnect();\n this.__pauser.pause();\n }\n\n override reconnected() {\n this.__weakThis.reconnect(this);\n this.__pauser.resume();\n }\n}\n\ninterface Until {\n >(\n ...args: T\n ): DirectiveResult>;\n}\n\n/**\n * Renders one of a series of values, including Promises, to a Part.\n *\n * Values are rendered in priority order, with the first argument having the\n * highest priority and the last argument having the lowest priority. If a\n * value is a Promise, low-priority values will be rendered until it resolves.\n *\n * The priority of values can be used to create placeholder content for async\n * data. For example, a Promise with pending content can be the first,\n * highest-priority, argument, and a non_promise loading indicator template can\n * be used as the second, lower-priority, argument. The loading indicator will\n * render immediately, and the primary content will render when the Promise\n * resolves.\n *\n * Example:\n *\n * ```js\n * const content = fetch('./content.txt').then(r => r.text());\n * html`${until(content, html`Loading...`)}`\n * ```\n */\nexport const until: Until = directive(UntilDirective);\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\n// export type {UntilDirective};\n", "export*from\"lit-html/directives/until.js\";\n//# sourceMappingURL=until.js.map\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {ChildPart, noChange} from '../lit-html.js';\nimport {\n AsyncDirective,\n directive,\n DirectiveParameters,\n} from '../async-directive.js';\nimport {Pauser, PseudoWeakRef, forAwaitOf} from './private-async-helpers.js';\n\ntype Mapper = (v: T, index?: number) => unknown;\n\nexport class AsyncReplaceDirective extends AsyncDirective {\n private __value?: AsyncIterable;\n private __weakThis = new PseudoWeakRef(this);\n private __pauser = new Pauser();\n\n // @ts-expect-error value not used, but we want a nice parameter for docs\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(value: AsyncIterable, _mapper?: Mapper) {\n return noChange;\n }\n\n override update(\n _part: ChildPart,\n [value, mapper]: DirectiveParameters\n ) {\n // If our initial render occurs while disconnected, ensure that the pauser\n // and weakThis are in the disconnected state\n if (!this.isConnected) {\n this.disconnected();\n }\n // If we've already set up this particular iterable, we don't need\n // to do anything.\n if (value === this.__value) {\n return noChange;\n }\n this.__value = value;\n let i = 0;\n const {__weakThis: weakThis, __pauser: pauser} = this;\n // Note, the callback avoids closing over `this` so that the directive\n // can be gc'ed before the promise resolves; instead `this` is retrieved\n // from `weakThis`, which can break the hard reference in the closure when\n // the directive disconnects\n forAwaitOf(value, async (v: unknown) => {\n // The while loop here handles the case that the connection state\n // thrashes, causing the pauser to resume and then get re-paused\n while (pauser.get()) {\n await pauser.get();\n }\n // If the callback gets here and there is no `this`, it means that the\n // directive has been disconnected and garbage collected and we don't\n // need to do anything else\n const _this = weakThis.deref();\n if (_this !== undefined) {\n // Check to make sure that value is the still the current value of\n // the part, and if not bail because a new value owns this part\n if (_this.__value !== value) {\n return false;\n }\n\n // As a convenience, because functional-programming-style\n // transforms of iterables and async iterables requires a library,\n // we accept a mapper function. This is especially convenient for\n // rendering a template for each item.\n if (mapper !== undefined) {\n v = mapper(v, i);\n }\n\n _this.commitValue(v, i);\n i++;\n }\n return true;\n });\n return noChange;\n }\n\n // Override point for AsyncAppend to append rather than replace\n protected commitValue(value: unknown, _index: number) {\n this.setValue(value);\n }\n\n override disconnected() {\n this.__weakThis.disconnect();\n this.__pauser.pause();\n }\n\n override reconnected() {\n this.__weakThis.reconnect(this);\n this.__pauser.resume();\n }\n}\n\n/**\n * A directive that renders the items of an async iterable[1], replacing\n * previous values with new values, so that only one value is ever rendered\n * at a time. This directive may be used in any expression type.\n *\n * Async iterables are objects with a `[Symbol.asyncIterator]` method, which\n * returns an iterator who's `next()` method returns a Promise. When a new\n * value is available, the Promise resolves and the value is rendered to the\n * Part controlled by the directive. If another value other than this\n * directive has been set on the Part, the iterable will no longer be listened\n * to and new values won't be written to the Part.\n *\n * [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of\n *\n * @param value An async iterable\n * @param mapper An optional function that maps from (value, index) to another\n * value. Useful for generating templates for each item in the iterable.\n */\nexport const asyncReplace = directive(AsyncReplaceDirective);\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {ChildPart} from '../lit-html.js';\nimport {\n directive,\n DirectiveParameters,\n PartInfo,\n PartType,\n} from '../directive.js';\nimport {AsyncReplaceDirective} from './async-replace.js';\nimport {\n clearPart,\n insertPart,\n setChildPartValue,\n} from '../directive-helpers.js';\n\nclass AsyncAppendDirective extends AsyncReplaceDirective {\n private __childPart!: ChildPart;\n\n // Override AsyncReplace to narrow the allowed part type to ChildPart only\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.CHILD) {\n throw new Error('asyncAppend can only be used in child expressions');\n }\n }\n\n // Override AsyncReplace to save the part since we need to append into it\n override update(part: ChildPart, params: DirectiveParameters) {\n this.__childPart = part;\n return super.update(part, params);\n }\n\n // Override AsyncReplace to append rather than replace\n protected override commitValue(value: unknown, index: number) {\n // When we get the first value, clear the part. This lets the\n // previous value display until we can replace it.\n if (index === 0) {\n clearPart(this.__childPart);\n }\n // Create and insert a new part and set its value to the next value\n const newPart = insertPart(this.__childPart);\n setChildPartValue(newPart, value);\n }\n}\n\n/**\n * A directive that renders the items of an async iterable[1], appending new\n * values after previous values, similar to the built-in support for iterables.\n * This directive is usable only in child expressions.\n *\n * Async iterables are objects with a [Symbol.asyncIterator] method, which\n * returns an iterator who's `next()` method returns a Promise. When a new\n * value is available, the Promise resolves and the value is appended to the\n * Part controlled by the directive. If another value other than this\n * directive has been set on the Part, the iterable will no longer be listened\n * to and new values won't be written to the Part.\n *\n * [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of\n *\n * @param value An async iterable\n * @param mapper An optional function that maps from (value, index) to another\n * value. Useful for generating templates for each item in the iterable.\n */\nexport const asyncAppend = directive(AsyncAppendDirective);\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {AsyncAppendDirective};\n", "export*from\"lit-html/directives/async-append.js\";\n//# sourceMappingURL=async-append.js.map\n", "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {nothing} from '../lit-html.js';\nimport {\n directive,\n Directive,\n ChildPart,\n DirectiveParameters,\n DirectiveResult,\n} from '../directive.js';\nimport {setCommittedValue} from '../directive-helpers.js';\n\nclass Keyed extends Directive {\n key: unknown = nothing;\n\n render(k: unknown, v: T): T {\n this.key = k;\n return v;\n }\n\n override update(part: ChildPart, [k, v]: DirectiveParameters) {\n if (k !== this.key) {\n // Clear the part before returning a value. The one-arg form of\n // setCommittedValue sets the value to a sentinel which forces a\n // commit the next render.\n setCommittedValue(part);\n this.key = k;\n }\n return v;\n }\n}\n\ninterface KeyedFunc {\n (k: unknown, v: V): DirectiveResult>;\n}\n\n/**\n * Associates a renderable value with a unique key. When the key changes, the\n * previous DOM is removed and disposed before rendering the next value, even\n * if the value - such as a template - is the same.\n *\n * This is useful for forcing re-renders of stateful components, or working\n * with code that expects new data to generate new HTML elements, such as some\n * animation techniques.\n */\nexport const keyed: KeyedFunc = directive(Keyed);\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {Keyed};\n", "export*from\"lit-html/directives/keyed.js\";\n//# sourceMappingURL=keyed.js.map\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {ChildPart, noChange} from '../lit-html.js';\nimport {directive, Directive, PartInfo, PartType} from '../directive.js';\nimport {\n insertPart,\n getCommittedValue,\n removePart,\n setCommittedValue,\n setChildPartValue,\n} from '../directive-helpers.js';\n\nexport type KeyFn = (item: T, index: number) => unknown;\nexport type ItemTemplate = (item: T, index: number) => unknown;\n\n// Helper for generating a map of array item to its index over a subset\n// of an array (used to lazily generate `newKeyToIndexMap` and\n// `oldKeyToIndexMap`)\nconst generateMap = (list: unknown[], start: number, end: number) => {\n const map = new Map();\n for (let i = start; i <= end; i++) {\n map.set(list[i], i);\n }\n return map;\n};\n\nclass RepeatDirective extends Directive {\n private _itemKeys?: unknown[];\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.CHILD) {\n throw new Error('repeat() can only be used in text expressions');\n }\n }\n\n private _getValuesAndKeys(\n items: Iterable,\n keyFnOrTemplate: KeyFn | ItemTemplate,\n template?: ItemTemplate\n ) {\n let keyFn: KeyFn | undefined;\n if (template === undefined) {\n template = keyFnOrTemplate;\n } else if (keyFnOrTemplate !== undefined) {\n keyFn = keyFnOrTemplate as KeyFn;\n }\n const keys = [];\n const values = [];\n let index = 0;\n for (const item of items) {\n keys[index] = keyFn ? keyFn(item, index) : index;\n values[index] = template!(item, index);\n index++;\n }\n return {\n values,\n keys,\n };\n }\n\n render(items: Iterable, template: ItemTemplate): Array;\n render(\n items: Iterable,\n keyFn: KeyFn | ItemTemplate,\n template: ItemTemplate\n ): Array;\n render(\n items: Iterable,\n keyFnOrTemplate: KeyFn | ItemTemplate,\n template?: ItemTemplate\n ) {\n return this._getValuesAndKeys(items, keyFnOrTemplate, template).values;\n }\n\n override update(\n containerPart: ChildPart,\n [items, keyFnOrTemplate, template]: [\n Iterable,\n KeyFn | ItemTemplate,\n ItemTemplate,\n ]\n ) {\n // Old part & key lists are retrieved from the last update (which may\n // be primed by hydration)\n const oldParts = getCommittedValue(\n containerPart\n ) as Array;\n const {values: newValues, keys: newKeys} = this._getValuesAndKeys(\n items,\n keyFnOrTemplate,\n template\n );\n\n // We check that oldParts, the committed value, is an Array as an\n // indicator that the previous value came from a repeat() call. If\n // oldParts is not an Array then this is the first render and we return\n // an array for lit-html's array handling to render, and remember the\n // keys.\n if (!Array.isArray(oldParts)) {\n this._itemKeys = newKeys;\n return newValues;\n }\n\n // In SSR hydration it's possible for oldParts to be an array but for us\n // to not have item keys because the update() hasn't run yet. We set the\n // keys to an empty array. This will cause all oldKey/newKey comparisons\n // to fail and execution to fall to the last nested brach below which\n // reuses the oldPart.\n const oldKeys = (this._itemKeys ??= []);\n\n // New part list will be built up as we go (either reused from\n // old parts or created for new keys in this update). This is\n // saved in the above cache at the end of the update.\n const newParts: ChildPart[] = [];\n\n // Maps from key to index for current and previous update; these\n // are generated lazily only when needed as a performance\n // optimization, since they are only required for multiple\n // non-contiguous changes in the list, which are less common.\n let newKeyToIndexMap!: Map;\n let oldKeyToIndexMap!: Map;\n\n // Head and tail pointers to old parts and new values\n let oldHead = 0;\n let oldTail = oldParts.length - 1;\n let newHead = 0;\n let newTail = newValues.length - 1;\n\n // Overview of O(n) reconciliation algorithm (general approach\n // based on ideas found in ivi, vue, snabbdom, etc.):\n //\n // * We start with the list of old parts and new values (and\n // arrays of their respective keys), head/tail pointers into\n // each, and we build up the new list of parts by updating\n // (and when needed, moving) old parts or creating new ones.\n // The initial scenario might look like this (for brevity of\n // the diagrams, the numbers in the array reflect keys\n // associated with the old parts or new values, although keys\n // and parts/values are actually stored in parallel arrays\n // indexed using the same head/tail pointers):\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [ , , , , , , ]\n // newKeys: [0, 2, 1, 4, 3, 7, 6] <- reflects the user's new\n // item order\n // newHead ^ ^ newTail\n //\n // * Iterate old & new lists from both sides, updating,\n // swapping, or removing parts at the head/tail locations\n // until neither head nor tail can move.\n //\n // * Example below: keys at head pointers match, so update old\n // part 0 in-place (no need to move it) and record part 0 in\n // the `newParts` list. The last thing we do is advance the\n // `oldHead` and `newHead` pointers (will be reflected in the\n // next diagram).\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [0, , , , , , ] <- heads matched: update 0\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance both oldHead\n // & newHead\n // newHead ^ ^ newTail\n //\n // * Example below: head pointers don't match, but tail\n // pointers do, so update part 6 in place (no need to move\n // it), and record part 6 in the `newParts` list. Last,\n // advance the `oldTail` and `oldHead` pointers.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [0, , , , , , 6] <- tails matched: update 6\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance both oldTail\n // & newTail\n // newHead ^ ^ newTail\n //\n // * If neither head nor tail match; next check if one of the\n // old head/tail items was removed. We first need to generate\n // the reverse map of new keys to index (`newKeyToIndexMap`),\n // which is done once lazily as a performance optimization,\n // since we only hit this case if multiple non-contiguous\n // changes were made. Note that for contiguous removal\n // anywhere in the list, the head and tails would advance\n // from either end and pass each other before we get to this\n // case and removals would be handled in the final while loop\n // without needing to generate the map.\n //\n // * Example below: The key at `oldTail` was removed (no longer\n // in the `newKeyToIndexMap`), so remove that part from the\n // DOM and advance just the `oldTail` pointer.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [0, , , , , , 6] <- 5 not in new map: remove\n // newKeys: [0, 2, 1, 4, 3, 7, 6] 5 and advance oldTail\n // newHead ^ ^ newTail\n //\n // * Once head and tail cannot move, any mismatches are due to\n // either new or moved items; if a new key is in the previous\n // \"old key to old index\" map, move the old part to the new\n // location, otherwise create and insert a new part. Note\n // that when moving an old part we null its position in the\n // oldParts array if it lies between the head and tail so we\n // know to skip it when the pointers get there.\n //\n // * Example below: neither head nor tail match, and neither\n // were removed; so find the `newHead` key in the\n // `oldKeyToIndexMap`, and move that old part's DOM into the\n // next head position (before `oldParts[oldHead]`). Last,\n // null the part in the `oldPart` array since it was\n // somewhere in the remaining oldParts still to be scanned\n // (between the head and tail pointers) so that we know to\n // skip that old part on future iterations.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, , , , , 6] <- stuck: update & move 2\n // newKeys: [0, 2, 1, 4, 3, 7, 6] into place and advance\n // newHead\n // newHead ^ ^ newTail\n //\n // * Note that for moves/insertions like the one above, a part\n // inserted at the head pointer is inserted before the\n // current `oldParts[oldHead]`, and a part inserted at the\n // tail pointer is inserted before `newParts[newTail+1]`. The\n // seeming asymmetry lies in the fact that new parts are\n // moved into place outside in, so to the right of the head\n // pointer are old parts, and to the right of the tail\n // pointer are new parts.\n //\n // * We always restart back from the top of the algorithm,\n // allowing matching and simple updates in place to\n // continue...\n //\n // * Example below: the head pointers once again match, so\n // simply update part 1 and record it in the `newParts`\n // array. Last, advance both head pointers.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, , , , 6] <- heads matched: update 1\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance both oldHead\n // & newHead\n // newHead ^ ^ newTail\n //\n // * As mentioned above, items that were moved as a result of\n // being stuck (the final else clause in the code below) are\n // marked with null, so we always advance old pointers over\n // these so we're comparing the next actual old value on\n // either end.\n //\n // * Example below: `oldHead` is null (already placed in\n // newParts), so advance `oldHead`.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6] <- old head already used:\n // newParts: [0, 2, 1, , , , 6] advance oldHead\n // newKeys: [0, 2, 1, 4, 3, 7, 6]\n // newHead ^ ^ newTail\n //\n // * Note it's not critical to mark old parts as null when they\n // are moved from head to tail or tail to head, since they\n // will be outside the pointer range and never visited again.\n //\n // * Example below: Here the old tail key matches the new head\n // key, so the part at the `oldTail` position and move its\n // DOM to the new head position (before `oldParts[oldHead]`).\n // Last, advance `oldTail` and `newHead` pointers.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, 4, , , 6] <- old tail matches new\n // newKeys: [0, 2, 1, 4, 3, 7, 6] head: update & move 4,\n // advance oldTail & newHead\n // newHead ^ ^ newTail\n //\n // * Example below: Old and new head keys match, so update the\n // old head part in place, and advance the `oldHead` and\n // `newHead` pointers.\n //\n // oldHead v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, 4, 3, ,6] <- heads match: update 3\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance oldHead &\n // newHead\n // newHead ^ ^ newTail\n //\n // * Once the new or old pointers move past each other then all\n // we have left is additions (if old list exhausted) or\n // removals (if new list exhausted). Those are handled in the\n // final while loops at the end.\n //\n // * Example below: `oldHead` exceeded `oldTail`, so we're done\n // with the main loop. Create the remaining part and insert\n // it at the new head position, and the update is complete.\n //\n // (oldHead > oldTail)\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, 4, 3, 7 ,6] <- create and insert 7\n // newKeys: [0, 2, 1, 4, 3, 7, 6]\n // newHead ^ newTail\n //\n // * Note that the order of the if/else clauses is not\n // important to the algorithm, as long as the null checks\n // come first (to ensure we're always working on valid old\n // parts) and that the final else clause comes last (since\n // that's where the expensive moves occur). The order of\n // remaining clauses is just a simple guess at which cases\n // will be most common.\n //\n // * Note, we could calculate the longest\n // increasing subsequence (LIS) of old items in new position,\n // and only move those not in the LIS set. However that costs\n // O(nlogn) time and adds a bit more code, and only helps\n // make rare types of mutations require fewer moves. The\n // above handles removes, adds, reversal, swaps, and single\n // moves of contiguous items in linear time, in the minimum\n // number of moves. As the number of multiple moves where LIS\n // might help approaches a random shuffle, the LIS\n // optimization becomes less helpful, so it seems not worth\n // the code at this point. Could reconsider if a compelling\n // case arises.\n\n while (oldHead <= oldTail && newHead <= newTail) {\n if (oldParts[oldHead] === null) {\n // `null` means old part at head has already been used\n // below; skip\n oldHead++;\n } else if (oldParts[oldTail] === null) {\n // `null` means old part at tail has already been used\n // below; skip\n oldTail--;\n } else if (oldKeys[oldHead] === newKeys[newHead]) {\n // Old head matches new head; update in place\n newParts[newHead] = setChildPartValue(\n oldParts[oldHead]!,\n newValues[newHead]\n );\n oldHead++;\n newHead++;\n } else if (oldKeys[oldTail] === newKeys[newTail]) {\n // Old tail matches new tail; update in place\n newParts[newTail] = setChildPartValue(\n oldParts[oldTail]!,\n newValues[newTail]\n );\n oldTail--;\n newTail--;\n } else if (oldKeys[oldHead] === newKeys[newTail]) {\n // Old head matches new tail; update and move to new tail\n newParts[newTail] = setChildPartValue(\n oldParts[oldHead]!,\n newValues[newTail]\n );\n insertPart(containerPart, newParts[newTail + 1], oldParts[oldHead]!);\n oldHead++;\n newTail--;\n } else if (oldKeys[oldTail] === newKeys[newHead]) {\n // Old tail matches new head; update and move to new head\n newParts[newHead] = setChildPartValue(\n oldParts[oldTail]!,\n newValues[newHead]\n );\n insertPart(containerPart, oldParts[oldHead]!, oldParts[oldTail]!);\n oldTail--;\n newHead++;\n } else {\n if (newKeyToIndexMap === undefined) {\n // Lazily generate key-to-index maps, used for removals &\n // moves below\n newKeyToIndexMap = generateMap(newKeys, newHead, newTail);\n oldKeyToIndexMap = generateMap(oldKeys, oldHead, oldTail);\n }\n if (!newKeyToIndexMap.has(oldKeys[oldHead])) {\n // Old head is no longer in new list; remove\n removePart(oldParts[oldHead]!);\n oldHead++;\n } else if (!newKeyToIndexMap.has(oldKeys[oldTail])) {\n // Old tail is no longer in new list; remove\n removePart(oldParts[oldTail]!);\n oldTail--;\n } else {\n // Any mismatches at this point are due to additions or\n // moves; see if we have an old part we can reuse and move\n // into place\n const oldIndex = oldKeyToIndexMap.get(newKeys[newHead]);\n const oldPart = oldIndex !== undefined ? oldParts[oldIndex] : null;\n if (oldPart === null) {\n // No old part for this value; create a new one and\n // insert it\n const newPart = insertPart(containerPart, oldParts[oldHead]!);\n setChildPartValue(newPart, newValues[newHead]);\n newParts[newHead] = newPart;\n } else {\n // Reuse old part\n newParts[newHead] = setChildPartValue(oldPart, newValues[newHead]);\n insertPart(containerPart, oldParts[oldHead]!, oldPart);\n // This marks the old part as having been used, so that\n // it will be skipped in the first two checks above\n oldParts[oldIndex as number] = null;\n }\n newHead++;\n }\n }\n }\n // Add parts for any remaining new values\n while (newHead <= newTail) {\n // For all remaining additions, we insert before last new\n // tail, since old pointers are no longer valid\n const newPart = insertPart(containerPart, newParts[newTail + 1]);\n setChildPartValue(newPart, newValues[newHead]);\n newParts[newHead++] = newPart;\n }\n // Remove any remaining unused old parts\n while (oldHead <= oldTail) {\n const oldPart = oldParts[oldHead++];\n if (oldPart !== null) {\n removePart(oldPart);\n }\n }\n\n // Save order of new parts for next round\n this._itemKeys = newKeys;\n // Directly set part value, bypassing it's dirty-checking\n setCommittedValue(containerPart, newParts);\n return noChange;\n }\n}\n\nexport interface RepeatDirectiveFn {\n (\n items: Iterable,\n keyFnOrTemplate: KeyFn | ItemTemplate,\n template?: ItemTemplate\n ): unknown;\n (items: Iterable, template: ItemTemplate): unknown;\n (\n items: Iterable,\n keyFn: KeyFn | ItemTemplate,\n template: ItemTemplate\n ): unknown;\n}\n\n/**\n * A directive that repeats a series of values (usually `TemplateResults`)\n * generated from an iterable, and updates those items efficiently when the\n * iterable changes based on user-provided `keys` associated with each item.\n *\n * Note that if a `keyFn` is provided, strict key-to-DOM mapping is maintained,\n * meaning previous DOM for a given key is moved into the new position if\n * needed, and DOM will never be reused with values for different keys (new DOM\n * will always be created for new keys). This is generally the most efficient\n * way to use `repeat` since it performs minimum unnecessary work for insertions\n * and removals.\n *\n * The `keyFn` takes two parameters, the item and its index, and returns a unique key value.\n *\n * ```js\n * html`\n *
    \n * ${repeat(this.items, (item) => item.id, (item, index) => {\n * return html`
  1. ${index}: ${item.name}
  2. `;\n * })}\n *
\n * `\n * ```\n *\n * **Important**: If providing a `keyFn`, keys *must* be unique for all items in a\n * given call to `repeat`. The behavior when two or more items have the same key\n * is undefined.\n *\n * If no `keyFn` is provided, this directive will perform similar to mapping\n * items to values, and DOM will be reused against potentially different items.\n */\nexport const repeat = directive(RepeatDirective) as RepeatDirectiveFn;\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {RepeatDirective};\n", "export*from\"lit-html/directives/repeat.js\";\n//# sourceMappingURL=repeat.js.map\n", "// better scoped exports\nexport * from './classes.resolvedirective.js';\nexport * from './classes.subscribedirective.js';\n\n\nexport { subscribeWithTemplate } from './classes.subscribewithtemplate.js';\n\nexport { until } from 'lit/directives/until.js';\nexport { asyncAppend } from 'lit/directives/async-append.js';\nexport { keyed } from 'lit/directives/keyed.js';\nexport { repeat } from 'lit/directives/repeat.js';", "import { CssManager } from './classes.cssmanager.js';\n\n// lit exports\nexport { html, type TemplateResult, css, unsafeCSS, render, type CSSResult } from 'lit';\n\nexport { html as static, unsafeStatic } from 'lit/static-html.js';\n\nexport { unsafeHTML } from 'lit/directives/unsafe-html.js';\n\nexport { customElement } from 'lit/decorators/custom-element.js';\n\nexport { property, state, query, queryAll, queryAsync } from 'lit/decorators.js';\n\n// domtools exports\nimport * as domtools from '@design.estate/dees-domtools';\nexport { domtools };\n\n// DeesElements exports\nexport * from './classes.dees-element.js';\n\n// directives exports\nimport * as directives from './directives/index.js';\n\nexport { directives };\n\n/**\n * a singleton instance of CssManager\n */\nexport const cssManager = CssManager.getSingleton();\n\n\n\n// type exports\nimport type { rxjs } from '@push.rocks/smartrx';\n\nexport type {\n rxjs,\n}", "/**\n * Central z-index management for consistent stacking order\n * Higher numbers appear on top of lower numbers\n */\n\nexport const zIndexLayers = {\n // Base layer: Regular content\n base: {\n content: 'auto',\n inputElements: 1,\n },\n\n // Fixed UI elements\n fixed: {\n appBar: 10,\n sideMenu: 10,\n mobileNav: 250,\n },\n\n // Overlay backdrops (semi-transparent backgrounds)\n backdrop: {\n dropdown: 1999, // Below modals but above fixed elements\n modal: 2999, // Below dropdowns on modals\n contextMenu: 3999, // Below critical overlays\n },\n\n // Interactive overlays\n overlay: {\n dropdown: 2000, // Dropdowns and select menus\n modal: 3000, // Modal dialogs\n contextMenu: 4000, // Context menus and tooltips\n toast: 5000, // Toast notifications (highest priority)\n },\n\n // Special cases for nested elements\n modalDropdown: 3500, // Dropdowns inside modals\n wysiwygMenus: 4500, // Editor formatting menus\n} as const;\n\n// Helper function to get z-index value\nexport function getZIndex(category: keyof typeof zIndexLayers, subcategory?: string): number | string {\n const categoryObj = zIndexLayers[category];\n if (typeof categoryObj === 'object' && subcategory) {\n return categoryObj[subcategory as keyof typeof categoryObj] || 'auto';\n }\n return typeof categoryObj === 'number' ? categoryObj : 'auto';\n}\n\n// Z-index assignments for components\nexport const componentZIndex = {\n 'dees-modal': zIndexLayers.overlay.modal,\n 'dees-windowlayer': zIndexLayers.overlay.dropdown,\n 'dees-contextmenu': zIndexLayers.overlay.contextMenu,\n 'dees-toast': zIndexLayers.overlay.toast,\n 'dees-appui-mainmenu': zIndexLayers.fixed.appBar,\n 'dees-mobilenavigation': zIndexLayers.fixed.mobileNav,\n 'dees-slash-menu': zIndexLayers.wysiwygMenus,\n 'dees-formatting-menu': zIndexLayers.wysiwygMenus,\n} as const;\n\n/**\n * Z-Index Registry for managing stacked elements\n * Simple incremental z-index assignment based on creation order\n */\nexport class ZIndexRegistry {\n private static instance: ZIndexRegistry;\n private activeElements = new Set();\n private elementZIndexMap = new WeakMap();\n private currentZIndex = 1000; // Starting z-index\n \n private constructor() {}\n \n public static getInstance(): ZIndexRegistry {\n if (!ZIndexRegistry.instance) {\n ZIndexRegistry.instance = new ZIndexRegistry();\n }\n return ZIndexRegistry.instance;\n }\n \n /**\n * Get the next available z-index\n * @returns The next available z-index\n */\n public getNextZIndex(): number {\n this.currentZIndex += 10;\n return this.currentZIndex;\n }\n \n /**\n * Register an element with the z-index registry\n * @param element - The HTML element to register\n * @param zIndex - The z-index assigned to this element\n */\n public register(element: HTMLElement, zIndex: number): void {\n this.activeElements.add(element);\n this.elementZIndexMap.set(element, zIndex);\n }\n \n /**\n * Unregister an element from the z-index registry\n * @param element - The HTML element to unregister\n */\n public unregister(element: HTMLElement): void {\n this.activeElements.delete(element);\n this.elementZIndexMap.delete(element);\n \n // If no more active elements, reset counter to base\n if (this.activeElements.size === 0) {\n this.currentZIndex = 1000;\n }\n }\n \n /**\n * Get the z-index for a specific element\n * @param element - The HTML element\n * @returns The z-index or undefined if not registered\n */\n public getElementZIndex(element: HTMLElement): number | undefined {\n return this.elementZIndexMap.get(element);\n }\n \n /**\n * Get count of active elements\n * @returns Number of active elements\n */\n public getActiveCount(): number {\n return this.activeElements.size;\n }\n \n /**\n * Get the current highest z-index\n * @returns The current z-index value\n */\n public getCurrentZIndex(): number {\n return this.currentZIndex;\n }\n \n /**\n * Clear all registrations (useful for testing)\n */\n public clear(): void {\n this.activeElements.clear();\n this.elementZIndexMap = new WeakMap();\n this.currentZIndex = 1000;\n }\n \n /**\n * Get all active elements in z-index order\n * @returns Array of elements sorted by z-index\n */\n public getActiveElementsInOrder(): HTMLElement[] {\n return Array.from(this.activeElements).sort((a, b) => {\n const aZ = this.elementZIndexMap.get(a) || 0;\n const bZ = this.elementZIndexMap.get(b) || 0;\n return aZ - bZ;\n });\n }\n}\n\n// Export singleton instance for convenience\nexport const zIndexRegistry = ZIndexRegistry.getInstance();", "import { css, type CSSResult } from '@design.estate/dees-element';\n\n// ============================================\n// Theme Token Type Definitions\n// ============================================\n\nexport interface IThemeColors {\n bgPrimary: string;\n bgSecondary: string;\n bgTertiary: string;\n textPrimary: string;\n textSecondary: string;\n textMuted: string;\n borderDefault: string;\n borderSubtle: string;\n borderStrong: string;\n accentPrimary: string;\n accentSuccess: string;\n accentWarning: string;\n accentError: string;\n}\n\nexport interface IThemeSpacing {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n '2xl': string;\n '3xl': string;\n}\n\nexport interface IThemeRadius {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n full: string;\n}\n\nexport interface IThemeShadows {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n}\n\nexport interface IThemeTransitions {\n fast: string;\n default: string;\n slow: string;\n slower: string;\n}\n\nexport interface IThemeControlHeights {\n sm: string;\n md: string;\n lg: string;\n xl: string;\n}\n\nexport interface ITheme {\n colors: {\n light: IThemeColors;\n dark: IThemeColors;\n };\n spacing: IThemeSpacing;\n radius: IThemeRadius;\n shadows: IThemeShadows;\n transitions: IThemeTransitions;\n controlHeights: IThemeControlHeights;\n}\n\n// ============================================\n// Default Theme Values (TypeScript Object)\n// ============================================\n\nexport const themeDefaults: ITheme = {\n colors: {\n light: {\n bgPrimary: '#ffffff',\n bgSecondary: '#fafafa',\n bgTertiary: '#f4f4f5',\n textPrimary: '#09090b',\n textSecondary: '#374151',\n textMuted: '#71717a',\n borderDefault: '#e5e7eb',\n borderSubtle: '#f4f4f5',\n borderStrong: '#d1d5db',\n accentPrimary: '#3b82f6',\n accentSuccess: '#22c55e',\n accentWarning: '#f59e0b',\n accentError: '#ef4444',\n },\n dark: {\n bgPrimary: '#09090b',\n bgSecondary: '#0a0a0a',\n bgTertiary: '#18181b',\n textPrimary: '#fafafa',\n textSecondary: '#d4d4d8',\n textMuted: '#a1a1aa',\n borderDefault: '#27272a',\n borderSubtle: '#1a1a1a',\n borderStrong: '#3f3f46',\n accentPrimary: '#3b82f6',\n accentSuccess: '#22c55e',\n accentWarning: '#f59e0b',\n accentError: '#ef4444',\n },\n },\n spacing: {\n xs: '4px',\n sm: '8px',\n md: '12px',\n lg: '16px',\n xl: '24px',\n '2xl': '32px',\n '3xl': '48px',\n },\n radius: {\n xs: '2px',\n sm: '4px',\n md: '6px',\n lg: '8px',\n xl: '12px',\n full: '999px',\n },\n shadows: {\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n sm: '0 1px 3px rgba(0, 0, 0, 0.1)',\n md: '0 2px 8px rgba(0, 0, 0, 0.15)',\n lg: '0 4px 12px rgba(0, 0, 0, 0.15)',\n },\n transitions: {\n fast: '0.1s',\n default: '0.15s',\n slow: '0.2s',\n slower: '0.3s',\n },\n controlHeights: {\n sm: '32px',\n md: '36px',\n lg: '40px',\n xl: '48px',\n },\n};\n\n// ============================================\n// CSS Block for Component Import\n// ============================================\n\n/**\n * Default theme styles to be imported into every component's static styles array.\n * Provides CSS custom properties for spacing, radius, shadows, transitions, and control heights.\n *\n * Usage:\n * ```typescript\n * import { themeDefaultStyles } from '../00theme.js';\n *\n * @customElement('my-component')\n * export class MyComponent extends DeesElement {\n * public static styles = [\n * themeDefaultStyles,\n * cssManager.defaultStyles,\n * css`...`\n * ];\n * }\n * ```\n */\nexport const themeDefaultStyles: CSSResult = css`\n :host {\n /* ========================================\n * Spacing Scale\n * ======================================== */\n --dees-spacing-xs: 4px;\n --dees-spacing-sm: 8px;\n --dees-spacing-md: 12px;\n --dees-spacing-lg: 16px;\n --dees-spacing-xl: 24px;\n --dees-spacing-2xl: 32px;\n --dees-spacing-3xl: 48px;\n\n /* ========================================\n * Border Radius Scale\n * ======================================== */\n --dees-radius-xs: 2px;\n --dees-radius-sm: 4px;\n --dees-radius-md: 6px;\n --dees-radius-lg: 8px;\n --dees-radius-xl: 12px;\n --dees-radius-full: 999px;\n\n /* ========================================\n * Shadow Elevation Scale\n * ======================================== */\n --dees-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --dees-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);\n --dees-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.15);\n --dees-shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.15);\n\n /* ========================================\n * Transition Duration Scale\n * ======================================== */\n --dees-transition-fast: 0.1s;\n --dees-transition-default: 0.15s;\n --dees-transition-slow: 0.2s;\n --dees-transition-slower: 0.3s;\n\n /* ========================================\n * Control Height Scale\n * ======================================== */\n --dees-control-height-sm: 32px;\n --dees-control-height-md: 36px;\n --dees-control-height-lg: 40px;\n --dees-control-height-xl: 48px;\n }\n`;\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2J1c2luZXNzL2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "import { finance, general } from \"../index.js\";\nimport { business } from \"../index.js\";\n\nexport type TSocialLinks = {\n type: \"facebook\" | \"twitter\" | \"linkedin\" | string;\n url: string;\n};\n\nexport type TRegistrationDetails = {\n vatId: string;\n registrationId: string;\n registrationName: string;\n};\n\ntype TContactEnvelope = {\n type: TYPE;\n name: string;\n address: business.IAddress;\n description: string;\n legalEntity?: string;\n customerNumber?: string;\n relationship?: \"customer\" | \"supplier\" | \"partner\" | \"employee\" | \"other\";\n\n email?: string;\n phone?: string;\n fax?: string;\n\n logoUrl?: string;\n website?: string;\n\n socials?: TSocialLinks[];\n\n sepaConnection?: finance.ISepaConnection;\n} & FIELDS;\n\nexport type TPerson = TContactEnvelope<\n \"person\",\n {\n surname: string;\n salutation: \"Mr\" | \"Ms\" | \"Mrs\";\n sex: \"male\" | \"female\" | \"other\";\n title: \"Doctor\" | \"Professor\";\n registrationDetails?: TRegistrationDetails;\n legalProxyFor?: {\n type: \"self\" | \"other\";\n contact?: TContact;\n };\n }\n>;\n\ntype TCompanyInCreation = {\n status: \"planned\" | \"founding\";\n};\n\ntype TCompanyActive = {\n status: \"active\";\n foundedDate: general.IDate;\n};\n\ntype TCompanyInLiquidation = {\n status: \"liquidation\";\n foundedDate: general.IDate;\n liquidationDate: general.IDate;\n};\n\ntype TCompanyClosed = {\n status: \"closed\";\n foundedDate: general.IDate;\n liquidationDate: general.IDate;\n closedDate: general.IDate;\n};\n\ntype TCompanyStatus =\n | TCompanyInCreation\n | TCompanyActive\n | TCompanyInLiquidation\n | TCompanyClosed;\n\nexport type TCompany = TContactEnvelope<\n \"company\",\n { registrationDetails: TRegistrationDetails } & TCompanyStatus\n>;\n\nexport type TContact = TPerson | TCompany;\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YWJhc2UvbW9uZ29kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0YWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YWJhc2Uvb2JqZWN0YWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0c3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YWJhc2Uvb2JqZWN0c3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZGRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kYXRhYmFzZS93cmFwcGVkZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './mongodescriptor.js';\nexport * from './objectaction.js';\nexport * from './objectstatus.js';\nexport * from './wrappeddata.js';\n", "import * as database from \"../database/index.js\";\nimport * as business from \"./index.js\";\n\n/**\n * Base type for common document properties across different document types.\n */\nexport type TDocumentEnvelope = {\n /**\n * Document type identifier\n */\n type: TYPE;\n \n /**\n * Unique identifier for the document\n */\n id: string;\n \n /**\n * Document creation/issuance date as a Unix timestamp\n */\n date: number;\n \n /**\n * Document status in its lifecycle\n */\n status: string;\n \n /**\n * Version information for the document\n */\n versionInfo: {\n /**\n * Should follow semVer format\n */\n version: string;\n \n /**\n * Type of version (draft vs final)\n */\n type: \"draft\" | \"final\";\n \n /**\n * When this version was last modified\n */\n lastModified?: number;\n \n /**\n * Version history for tracking changes\n */\n history?: {\n version: string;\n modifiedAt: number;\n modifiedBy?: string;\n changeDescription?: string;\n }[];\n };\n \n /**\n * Primary language of the document\n */\n language: string;\n \n /**\n * The text displayed at the top of the document, often a greeting or introduction\n */\n topText?: string;\n \n /**\n * The text displayed at the bottom of the document, often a signature or conclusion\n */\n bottomText?: string;\n \n /**\n * Formatting/branding information\n */\n appearance?: {\n /**\n * URL to the logo to be displayed on the document\n */\n logoUrl?: string;\n \n /**\n * Primary color for document styling\n */\n accentColor?: string;\n \n /**\n * Font family for the document\n */\n fontFamily?: string;\n };\n \n /**\n * References to PDF versions of the document\n */\n pdf?: business.IPdf;\n \n /**\n * PDF attachments are additional PDFs attached to the document\n */\n pdfAttachments?: business.IPdf[];\n \n /**\n * Track document lifecycle actions\n */\n objectActions?: database.IObjectAction[];\n} & FIELDS;", "import { finance } from '../index.js';\n\nexport interface ICheckingAccount {\n name: string;\n currency: finance.TCurrency;\n transactions?: finance.ITransaction[];\n}\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9maW5hbmNlL2N1cnJlbmN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "import { business } from '../index.js';\n\nexport interface IExpenseItem {\n description: string;\n asset?: boolean;\n accountingType?: any;\n amount: number;\n taxPercentage: number;\n}\n\nexport interface IVoucher {\n voucherFile?: any;\n date: Date;\n description: string;\n expenseItems: IExpenseItem[];\n contactRef: business.TContact;\n}\n", "import { business, finance } from '../index.js';\nimport type { TCurrency } from './currency.js';\n\n/**\n * Status of an accounting document\n * \n * draft: Document is in preparation (Entwurf)\n * issued: Document has been issued/sent (Ausgestellt)\n * paid: Document has been paid (Bezahlt)\n * canceled: Document has been canceled (Storniert)\n * refunded: Payment has been refunded (Erstattet)\n */\nexport type TAccountingDocStatus = 'draft' | 'issued' | 'paid' | 'canceled' | 'refunded';\n\n/**\n * Type of accounting document\n * \n * invoice: Standard invoice (Rechnung)\n * creditnote: Credit note (Gutschrift als Rechnungskorrektur)\n * debitnote: Debit note (Lastschrift/Belastungsanzeige)\n * self-billed-invoice: Self-billed invoice (Gutschrift im Gutschriftverfahren)\n */\nexport type TAccountingDocType = 'invoice' | 'creditnote' | 'debitnote' | 'self-billed-invoice';\n\n/**\n * Item in an accounting document\n * (Position in einer Rechnung/Gutschrift/Lastschrift)\n */\nexport type TAccountingDocItem = {\n position: number;\n name: string;\n articleNumber?: string;\n unitType: string;\n unitQuantity: number;\n unitNetPrice: number;\n vatPercentage: number;\n};\n\n/**\n * Reference to a related document\n * (Referenz zu einem zugeh\u00F6rigen Dokument)\n */\nexport type TRelatedDocument = {\n /**\n * Type of relationship\n * (Art der Beziehung)\n */\n relationType: 'corrects' | 'replaces' | 'references';\n \n /**\n * ID of the related document\n * (ID des zugeh\u00F6rigen Dokuments)\n */\n documentId: string;\n \n /**\n * Issue date of the related document\n * (Ausstellungsdatum des zugeh\u00F6rigen Dokuments)\n */\n issueDate?: number;\n};\n\n/**\n * Base type for all accounting documents (Basis-Typ f\u00FCr alle Buchungsdokumente)\n */\nexport type TAccountingDocEnvelope<\n TYPE extends TAccountingDocType,\n FIELDS,\n> = business.TLetterEnvelope<\n 'accounting-doc',\n {\n /**\n * Unique identifier of the accounting document\n * (Eindeutige Kennung des Buchungsdokuments)\n */\n accountingDocId: string;\n \n /**\n * Type of accounting document\n * (Art des Buchungsdokuments)\n */\n accountingDocType: TYPE;\n \n /**\n * Current status of the accounting document\n * (Aktueller Status des Buchungsdokuments)\n */\n accountingDocStatus: TAccountingDocStatus;\n \n /**\n * Line items of the accounting document\n * (Positionen des Buchungsdokuments)\n */\n items: TAccountingDocItem[];\n \n /**\n * Period of performance/service delivery\n * (Leistungszeitraum)\n */\n periodOfPerformance?: {\n from: number;\n to: number;\n };\n \n /**\n * Date of delivery or service completion\n * (Lieferdatum oder Leistungsdatum)\n */\n deliveryDate?: number;\n \n /**\n * Payment due in days after issue\n * (Zahlungsfrist in Tagen)\n */\n dueInDays: number;\n \n /**\n * Whether reverse charge applies (VAT liability shifted to recipient)\n * (Steuerschuldnerschaft des Leistungsempf\u00E4ngers)\n */\n reverseCharge: boolean;\n \n /**\n * Reference provided by the buyer to identify the document\n * (Referenz des K\u00E4ufers zur Identifizierung des Dokuments)\n */\n buyerReference?: string;\n \n /**\n * Electronic address information, needed for CII/XRechnung support\n * (Elektronische Adressinformationen, ben\u00F6tigt f\u00FCr CII/XRechnung)\n */\n electronicAddress?: {\n scheme: string;\n value: string;\n };\n \n /**\n * References to related documents (e.g., an invoice referenced by a credit note)\n * (Referenzen zu zugeh\u00F6rigen Dokumenten)\n */\n relatedDocuments?: TRelatedDocument[];\n \n /**\n * Result of document printing/generation\n * (Ergebnis der Dokumentenerstellung)\n */\n printResult?: {\n pdfBufferString: string;\n totalNet: number;\n totalGross: number;\n vatGroups: {\n percentage: number;\n items: TAccountingDocItem[];\n }[];\n };\n \n /**\n * Additional notes or comments\n * (Zus\u00E4tzliche Anmerkungen oder Kommentare)\n */\n notes: string[];\n \n /**\n * Payment options information\n * (Zahlungsoptionen)\n */\n paymentOptions?: finance.IPaymentOptionInfo;\n \n /**\n * Currency used in the document\n * (Verwendete W\u00E4hrung)\n */\n currency: TCurrency;\n } & FIELDS\n>;\n\n/**\n * Credit Note - document reducing amount owed\n * (Gutschrift - Dokument zur Minderung einer Forderung)\n */\nexport type TCreditNote = TAccountingDocEnvelope<'creditnote', {}>;\n\n/**\n * Debit Note - document increasing amount owed\n * (Lastschrift/Belastungsanzeige - Dokument zur Erh\u00F6hung einer Forderung)\n */\nexport type TDebitNote = TAccountingDocEnvelope<'debitnote', {}>;\n\n/**\n * Standard Invoice\n * (Standardrechnung)\n */\nexport type TInvoice = TAccountingDocEnvelope<'invoice', {}>;\n\n/**\n * Self-billed Invoice - invoice created by the buyer\n * (Gutschrift im Gutschriftverfahren - vom K\u00E4ufer erstellte Rechnung)\n */\nexport type TSelfBilledInvoice = TAccountingDocEnvelope<'self-billed-invoice', {}>;\n\n/**\n * Union type for all accounting document types\n * (Vereinigungstyp f\u00FCr alle Buchungsdokumentarten)\n */\nexport type TAccountingDoc = TCreditNote | TDebitNote | TInvoice | TSelfBilledInvoice;", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2ZpbmFuY2UvcGF5bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2twcmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2ZpbmFuY2Uvc3RvY2twcmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9maW5hbmNlL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export * from './checkingaccount.js';\nexport * from './currency.js';\nexport * from './expense.js';\nexport * from './accountingdoc.js';\nexport * from './payment.js';\nexport * from './stockprice.js';\nexport * from './transaction.js';\n", "import * as finance from \"../finance/index.js\";\nimport { type TContact } from \"./contact.js\";\n\n/**\n * Represents the type of employment contract\n */\nexport type TContractType = \n | 'full-time' \n | 'part-time' \n | 'contract' \n | 'freelance'\n | 'internship'\n | 'apprenticeship'\n | 'volunteer'\n | 'temporary'\n | 'seasonal';\n\n/**\n * Represents the work location arrangement\n */\nexport type TWorkLocationType = \n | 'on-site'\n | 'hybrid'\n | 'remote';\n\n/**\n * Represents the experience level required for the job\n */\nexport type TExperienceLevel = \n | 'entry'\n | 'mid'\n | 'senior'\n | 'executive';\n\n/**\n * Represents the status of a job posting\n */\nexport type TJobStatus = \n | 'active' \n | 'closed'\n | 'expired'\n | 'filled'\n | 'archived';\n\n/**\n * Language proficiency levels\n */\nexport type TLanguageProficiency = \n | 'basic' \n | 'intermediate' \n | 'advanced' \n | 'native';\n\n/**\n * Represents a language requirement with name and proficiency level\n */\nexport interface ILanguageRequirement {\n name: string;\n level: TLanguageProficiency;\n}\n\n/**\n * Represents salary information with structure if needed\n */\nexport interface ISalaryInfo {\n min?: number;\n max?: number;\n currency?: finance.TCurrency;\n period?: 'hourly' | 'daily' | 'weekly' | 'monthly' | 'annually';\n}\n\n/**\n * Represents a record in the job history\n */\nexport interface IJobHistory {\n timestamp: string;\n source: string;\n category?: string;\n action?: string;\n details?: string;\n}\n\n/**\n * Universal Job Interface representing a job posting\n */\nexport interface IJob {\n // Core job information\n id: string;\n title: string;\n company: string;\n description: string;\n url: string;\n \n // Location information\n location: string;\n locationType?: TWorkLocationType;\n \n // Dates\n postedDate?: string;\n \n // Compensation\n salary?: ISalaryInfo;\n \n // Classification\n contractType?: TContractType;\n category?: string;\n experienceLevel?: TExperienceLevel;\n \n // Skills and requirements\n skillTags?: string[];\n qualificationTags?: string[];\n languages?: ILanguageRequirement[];\n \n // Contact information\n from?: TContact;\n contact?: TContact;\n \n // Metadata\n source: string;\n status: TJobStatus;\n firstScrapedAt: string;\n lastScrapedAt: string;\n history: IJobHistory[];\n}", "import * as business from \"./index.js\";\nimport * as finance from \"../finance/index.js\";\n\n/**\n * Letter-specific envelope extending the base document type\n */\nexport type TLetterEnvelope = business.TDocumentEnvelope<\n TYPE,\n {\n /**\n * The incident or case ID this letter relates to\n */\n incidenceId: string;\n \n /**\n * The sender of the letter\n */\n from: business.TContact;\n \n /**\n * The recipient of the letter\n */\n to: business.TContact;\n \n /**\n * The legal contact is the contact that is responsible for the letter\n * this is often the same as the from contact, but not always\n */\n legalContact?: business.TContact;\n \n /**\n * Subject line of the letter\n */\n subject: string;\n \n /**\n * Cover sheet configuration for the letter\n */\n coverSheet?: {\n enabled: boolean;\n coverSheetText: string;\n /**\n * if true, the cover sheet will be marked as confidential\n * hinting that only authorized persons should handle the letter\n */\n confidential: boolean;\n };\n } & FIELDS\n>;\n\nexport type TLetterSimple = TLetterEnvelope<\"simple\", {}>;\n\n\nexport type TLetter = TLetterSimple | finance.TInvoice\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvYnVzaW5lc3MvcGRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2J1c2luZXNzL3Byb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './address.js';\nexport * from './contact.js';\nexport * from './document.js';\nexport * from './job.js';\nexport * from './letter.js';\nexport * from './pdf.js';\nexport * from './project.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0aW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NvZGUvY29tbWl0aW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvY29kZS9zdGF0dXNvYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './commitinfo.js';\nexport * from './statusobject.js';", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvY29udGFpbmVyL2NvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sdW1lbW91bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jb250YWluZXIvdm9sdW1lbW91bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './container.js';\nexport * from './volumemount.js';\n", "export type { IMongoDescriptor } from '../database/index.js';\n\nexport interface ICloudflareDescriptor {\n authToken: string;\n};\n\nexport interface ILetterExpressDescriptor {\n email: string,\n apiToken: string,\n}\n", "import { content } from '../index.js';\n\n/**\n * a general content article:\n * * can be news\n * * can be a productdescription,\n * * can be anything that has text with a title\n */\nexport interface IArticle {\n /**\n * the main url of an article\n */\n url?: string;\n\n /**\n * the mainimage of the article\n */\n featuredImageUrl?: string;\n\n referenceObject?: T;\n\n /**\n * the title of an article\n */\n title: string;\n\n /**\n * the Author of an article\n */\n author: content.IAuthor;\n\n /**\n * the content of an article\n */\n content: string;\n\n /**\n * a timestamp for when the article was written\n */\n timestamp: number;\n\n /**\n * the tags of an article\n */\n tags: string[];\n}\n", "import { general, content } from '../index.js';\n\n/**\n * answers the question \"Who wrote that?\"\n */\nexport interface IAuthor {\n /**\n * the first name of an author\n */\n firstName: string;\n\n /**\n * the surname of an author\n */\n surName: string;\n\n /**\n * the birthday of an author\n */\n birthday: general.IDate;\n\n /**\n * articles of an author\n */\n articles: content.IArticle[];\n}\n", "import { type IArticle } from './article.js';\n\n/**\n * a set of articles that together form a body of documentation\n */\nexport interface IDocumentationSet {\n id: string;\n creationTimestamp: number;\n articles: IArticle[];\n}\n", "export * from './article.js';\nexport * from './author.js';\nexport * from './documentationset.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2dlbmVyYWwvZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2dlbmVyYWwvdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './date.js';\nexport * from './time.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25ldHdvcmsvY2VydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "import { type ICert } from './cert.js';\n\nexport class ICnameDescriptor {\n /**\n * the original domain that is being cnamed\n */\n cnamedDomain: string;\n\n /**\n * the cname proxy domain\n * the domain that is used for the cname dns entry\n */\n cnameProxyDomain: string;\n\n /**\n * the internal target url\n */\n targetUrl: string;\n\n /**\n * a description\n */\n description: string;\n\n /**\n * the ssl certificate\n */\n sslCertificate?: ICert;\n}\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9kZXZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9kbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zY2hhbGxlbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9kbnNjaGFsbGVuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zY29udmVuaWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9uZXR3b3JrL2Ruc2NvbnZlbmllbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluZGVsZWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25ldHdvcmsvZG9tYWluZGVsZWdhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9qd3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya25vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9uZXR3b3JrL25ldHdvcmtub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25ldHdvcmsvcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJzZXByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9yZXZlcnNlcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9zc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './cert.js';\nexport * from './cname.js';\nexport * from './device.js';\nexport * from './dns.js';\nexport * from './dnschallenge.js';\nexport * from './dnsconvenience.js';\nexport * from './domaindelegation.js';\nexport * from './jwt.js';\nexport * from './networknode.js';\nexport * from './request.js';\nexport * from './reverseproxy.js';\nexport * from './ssh.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3NhYXMvcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "import { type IProduct } from './product.js';\n\nexport interface ISubscriptionPlan {\n name: string;\n unit: 'device' | 'user';\n quantity: boolean;\n availableTerms: {\n period: 'daily' | 'weekly' | 'monthly' | 'yearly';\n price: number;\n currency: 'EUR' | 'USD';\n }[];\n containedProducts: IProduct[];\n limits: any;\n}\n", "export * from './subscriptionplan.js';\nexport * from './product.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9zdG9yYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3dlYnNpdGUvbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy93ZWJzaXRlL21lbnVpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2Jsb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvd2Vic2l0ZS9saW5rYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './link.js';\nexport * from './menuitem.js';\nexport * from './linkblock.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWZlc3Qub3duLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdHlwZWZlc3Qub3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "// Business\nimport * as business from './business/index.js';\n\n// Code\nimport * as code from './code/index.js';\n\n// Container\nimport * as container from './container/index.js';\n\n// Database\nimport * as database from './database/index.js';\n\n// Descriptors \nimport * as descriptors from './descriptors/index.js';\n\n// Finance\nimport * as finance from './finance/index.js';\n\n// Content\nimport * as content from './content/index.js';\n\n// General\nimport * as general from './general/index.js';\n\n// Network\nimport * as network from './network/index.js';\n\n// SaaS\nimport * as saas from './saas/index.js';\n\n// Storage\nimport * as storage from './storage/index.js';\n\n// Website\nimport * as website from './website/index.js';\n\nexport {\n business,\n container,\n code,\n database,\n descriptors,\n finance,\n content,\n general,\n network,\n saas,\n storage,\n website,\n};\n\nimport type * as typeFest from 'type-fest';\nimport * as typeFestOwn from './typefest.own.js';\n\nexport { type typeFest, type typeFestOwn };\n", "// @push.rocks scope\nimport * as smartpromise from '@push.rocks/smartpromise';\n\nexport {\n smartpromise,\n}\n\n// @tsclass scope\nimport * as tsclass from '@tsclass/tsclass';\n\nexport {\n tsclass\n}\n", "import { html } from '@design.estate/dees-element';\nimport * as plugins from '../../00plugins.js';\n\nimport { DeesContextmenu } from '../dees-contextmenu/dees-contextmenu.js';\n\nexport const demoFunc = () => html`\n\n
\n \n
{\n DeesContextmenu.openContextMenuWithOptions(eventArg, [\n {\n name: 'File',\n iconName: 'fileText',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'New', iconName: 'filePlus', shortcut: 'Cmd+N', action: async () => console.log('New file') },\n { name: 'Open', iconName: 'folderOpen', shortcut: 'Cmd+O', action: async () => console.log('Open file') },\n { name: 'Save', iconName: 'save', shortcut: 'Cmd+S', action: async () => console.log('Save') },\n { divider: true },\n { name: 'Export as PDF', iconName: 'download', action: async () => console.log('Export PDF') },\n { name: 'Export as HTML', iconName: 'code', action: async () => console.log('Export HTML') },\n ]\n },\n {\n name: 'Edit',\n iconName: 'edit3',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Cut', iconName: 'scissors', shortcut: 'Cmd+X', action: async () => console.log('Cut') },\n { name: 'Copy', iconName: 'copy', shortcut: 'Cmd+C', action: async () => console.log('Copy') },\n { name: 'Paste', iconName: 'clipboard', shortcut: 'Cmd+V', action: async () => console.log('Paste') },\n { divider: true },\n { name: 'Find', iconName: 'search', shortcut: 'Cmd+F', action: async () => console.log('Find') },\n { name: 'Replace', iconName: 'repeat', shortcut: 'Cmd+H', action: async () => console.log('Replace') },\n ]\n },\n {\n name: 'View',\n iconName: 'eye',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Zoom In', iconName: 'zoomIn', shortcut: 'Cmd++', action: async () => console.log('Zoom in') },\n { name: 'Zoom Out', iconName: 'zoomOut', shortcut: 'Cmd+-', action: async () => console.log('Zoom out') },\n { name: 'Reset Zoom', iconName: 'maximize2', shortcut: 'Cmd+0', action: async () => console.log('Reset zoom') },\n { divider: true },\n { name: 'Full Screen', iconName: 'maximize', shortcut: 'F11', action: async () => console.log('Full screen') },\n ]\n },\n { divider: true },\n {\n name: 'Settings',\n iconName: 'settings',\n action: async () => console.log('Settings')\n },\n {\n name: 'Help',\n iconName: 'helpCircle',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Documentation', iconName: 'book', action: async () => console.log('Documentation') },\n { name: 'Keyboard Shortcuts', iconName: 'keyboard', action: async () => console.log('Shortcuts') },\n { divider: true },\n { name: 'About', iconName: 'info', action: async () => console.log('About') },\n ]\n }\n ]);\n }}>\n

Right-click anywhere in this area

\n

A context menu with nested submenus will appear

\n
\n
\n \n {\n DeesContextmenu.openContextMenuWithOptions(eventArg, [\n {\n name: 'Button Actions',\n iconName: 'mousePointer',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Click', iconName: 'mouse', action: async () => console.log('Click action') },\n { name: 'Double Click', iconName: 'zap', action: async () => console.log('Double click') },\n { name: 'Long Press', iconName: 'clock', action: async () => console.log('Long press') },\n ]\n },\n {\n name: 'Button State',\n iconName: 'toggleLeft',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Enable', iconName: 'checkCircle', action: async () => console.log('Enable') },\n { name: 'Disable', iconName: 'xCircle', action: async () => console.log('Disable') },\n { divider: true },\n { name: 'Show', iconName: 'eye', action: async () => console.log('Show') },\n { name: 'Hide', iconName: 'eyeOff', action: async () => console.log('Hide') },\n ]\n },\n { divider: true },\n {\n name: 'Disabled Action',\n iconName: 'ban',\n disabled: true,\n action: async () => console.log('This should not run'),\n },\n {\n name: 'Properties',\n iconName: 'settings',\n action: async () => console.log('Button properties'),\n },\n ]);\n }}>Right-click on this button\n \n\n \n
{\n DeesContextmenu.openContextMenuWithOptions(eventArg, [\n {\n name: 'Format',\n iconName: 'type',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Bold', iconName: 'bold', shortcut: 'Cmd+B', action: async () => console.log('Bold') },\n { name: 'Italic', iconName: 'italic', shortcut: 'Cmd+I', action: async () => console.log('Italic') },\n { name: 'Underline', iconName: 'underline', shortcut: 'Cmd+U', action: async () => console.log('Underline') },\n { divider: true },\n { name: 'Font Size', iconName: 'type', action: async () => console.log('Font size menu') },\n { name: 'Font Color', iconName: 'palette', action: async () => console.log('Font color menu') },\n ]\n },\n {\n name: 'Transform',\n iconName: 'shuffle',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'To Uppercase', iconName: 'arrowUp', action: async () => console.log('Uppercase') },\n { name: 'To Lowercase', iconName: 'arrowDown', action: async () => console.log('Lowercase') },\n { name: 'Capitalize', iconName: 'type', action: async () => console.log('Capitalize') },\n ]\n },\n { divider: true },\n {\n name: 'Delete',\n iconName: 'trash2',\n action: async () => console.log('Delete')\n }\n ]);\n }}>\n

Advanced Nested Menu Example

\n

This shows deeply nested submenus and various formatting options

\n
\n
\n \n \n {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'New Project', iconName: 'folderPlus', shortcut: 'Cmd+Shift+N', action: async () => console.log('New project') },\n { name: 'Open Project', iconName: 'folderOpen', shortcut: 'Cmd+Shift+O', action: async () => console.log('Open project') },\n { divider: true },\n { name: 'Recent Projects', iconName: 'clock', action: async () => {}, submenu: [\n { name: 'Project Alpha', action: async () => console.log('Open Alpha') },\n { name: 'Project Beta', action: async () => console.log('Open Beta') },\n { name: 'Project Gamma', action: async () => console.log('Open Gamma') },\n ]},\n ]\n },\n {\n name: 'Tools',\n iconName: 'tool',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Terminal', iconName: 'terminal', shortcut: 'Cmd+T', action: async () => console.log('Terminal') },\n { name: 'Console', iconName: 'monitor', shortcut: 'Cmd+K', action: async () => console.log('Console') },\n { divider: true },\n { name: 'Extensions', iconName: 'package', action: async () => console.log('Extensions') },\n ]\n },\n { divider: true },\n {\n name: 'Preferences',\n iconName: 'sliders',\n action: async () => console.log('Preferences'),\n },\n ]}\n >\n \n
\n`;", "import { customElement, DeesElement, domtools, type TemplateResult, html, property, type CSSResult, state, } from '@design.estate/dees-element';\nimport { zIndexLayers, zIndexRegistry } from '../../00zindex.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-windowlayer': DeesWindowLayer;\n }\n}\n\nexport interface IOptions_DeesWindowLayer {\n blur: boolean;\n}\n\n@customElement('dees-windowlayer')\nexport class DeesWindowLayer extends DeesElement {\n // STATIC\n public static demo = () => html``;\n public static demoGroups = ['Overlay'];\n\n public static async createAndShow(optionsArg?: IOptions_DeesWindowLayer) {\n const domtoolsInstance = domtools.DomTools.getGlobalDomToolsSync();\n const windowLayer = new DeesWindowLayer();\n windowLayer.options = {\n ...windowLayer.options,\n ...optionsArg,\n }\n document.body.append(windowLayer);\n await domtoolsInstance.convenience.smartdelay.delayFor(0);\n windowLayer.show();\n return windowLayer;\n }\n\n @state()\n accessor options: IOptions_DeesWindowLayer = {\n blur: false\n };\n\n @state()\n accessor backdropZIndex: number = 1000;\n\n @state()\n accessor contentZIndex: number = 1001;\n\n // INSTANCE\n @property({\n type: Boolean\n })\n accessor visible = false;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public render(): TemplateResult {\n return html`\n ${domtools.elementBasic.styles}\n \n
\n
\n
\n \n
\n `;\n }\n\n firstUpdated() {\n setTimeout(() => {\n this.visible = true;\n }, 100);\n }\n\n dispatchClicked() {\n this.dispatchEvent(new CustomEvent('clicked'));\n }\n\n public toggleVisibility () {\n this.visible = !this.visible;\n }\n \n public getContentZIndex(): number {\n return this.contentZIndex;\n }\n\n public async show() {\n const domtools = await this.domtoolsPromise;\n \n // Get z-indexes from registry\n this.backdropZIndex = zIndexRegistry.getNextZIndex();\n this.contentZIndex = zIndexRegistry.getNextZIndex();\n \n // Register this element\n zIndexRegistry.register(this, this.backdropZIndex);\n \n await domtools.convenience.smartdelay.delayFor(0);\n this.visible = true;\n }\n\n public async hide() {\n const domtools = await this.domtoolsPromise;\n await domtools.convenience.smartdelay.delayFor(0);\n this.visible = false;\n }\n\n public async destroy() {\n const domtools = await this.domtoolsPromise;\n await this.hide();\n await domtools.convenience.smartdelay.delayFor(300);\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n \n this.remove();\n }\n}\n", "/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = !0, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\nfunction _wrapRegExp() {\n _wrapRegExp = function (e, r) {\n return new BabelRegExp(e, void 0, r);\n };\n var e = RegExp.prototype,\n r = new WeakMap();\n function BabelRegExp(e, t, p) {\n var o = RegExp(e, t);\n return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype);\n }\n function buildGroups(e, t) {\n var p = r.get(t);\n return Object.keys(p).reduce(function (r, t) {\n var o = p[t];\n if (\"number\" == typeof o) r[t] = e[o];else {\n for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++;\n r[t] = e[o[i]];\n }\n return r;\n }, Object.create(null));\n }\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) {\n var t = e.exec.call(this, r);\n if (t) {\n t.groups = buildGroups(t, this);\n var p = t.indices;\n p && (p.groups = buildGroups(p, this));\n }\n return t;\n }, BabelRegExp.prototype[Symbol.replace] = function (t, p) {\n if (\"string\" == typeof p) {\n var o = r.get(this);\n return e[Symbol.replace].call(this, t, p.replace(/\\$<([^>]+)(>|$)/g, function (e, r, t) {\n if (\"\" === t) return e;\n var p = o[r];\n return Array.isArray(p) ? \"$\" + p.join(\"$\") : \"number\" == typeof p ? \"$\" + p : \"\";\n }));\n }\n if (\"function\" == typeof p) {\n var i = this;\n return e[Symbol.replace].call(this, t, function () {\n var e = arguments;\n return \"object\" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e);\n });\n }\n return e[Symbol.replace].call(this, t, p);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nvar noop = function noop() {};\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {} // eslint-disable-line no-empty\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _ht;\nvar G = /fa(k|kd|s|r|l|t|d|dr|dl|dt|b|slr|slpr|wsb|tl|ns|nds|es|gt|jr|jfr|jdr|usb|ufsb|udsb|cr|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\\-\\ ]/,\n M = /Font ?Awesome ?([567 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit|Notdog Duo|Notdog|Chisel|Etch|Graphite|Thumbprint|Jelly Fill|Jelly Duo|Jelly|Utility|Utility Fill|Utility Duo|Slab Press|Slab|Whiteboard)?.*/i;\nvar Q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n graphite: {\n \"fa-thin\": \"thin\",\n fagt: \"thin\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n },\n X = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n Z = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-graphite\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\nvar i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n h = \"etch\",\n n = \"graphite\",\n g = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n m = \"notdog\",\n e = \"notdog-duo\",\n y = \"slab\",\n p = \"slab-press\",\n s = \"thumbprint\",\n w = \"utility\",\n a = \"utility-duo\",\n x = \"utility-fill\",\n b = \"whiteboard\",\n c = \"Classic\",\n I = \"Duotone\",\n F = \"Sharp\",\n v = \"Sharp Duotone\",\n S = \"Chisel\",\n A = \"Etch\",\n P = \"Graphite\",\n j = \"Jelly\",\n B = \"Jelly Duo\",\n N = \"Jelly Fill\",\n k = \"Notdog\",\n D = \"Notdog Duo\",\n T = \"Slab\",\n C = \"Slab Press\",\n W = \"Thumbprint\",\n K = \"Utility\",\n R = \"Utility Duo\",\n L = \"Utility Fill\",\n U = \"Whiteboard\",\n dt = [i, t, d, l, f, h, n, g, o, u, m, e, y, p, s, w, a, x, b],\n ht = (_ht = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ht, i, c), t, I), d, F), l, v), f, S), h, A), n, P), g, j), o, B), u, N), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ht, m, k), e, D), y, T), p, C), s, W), w, K), a, R), x, L), b, U));\nvar yt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n graphite: {\n 100: \"fagt\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\nvar Kt = {\n \"Font Awesome 7 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 7 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 7 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 7 Duotone\": {\n 900: \"fad\",\n 400: \"fadr\",\n normal: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n \"Font Awesome 7 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 7 Sharp Duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n normal: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n \"Font Awesome 7 Jelly\": {\n 400: \"fajr\",\n normal: \"fajr\"\n },\n \"Font Awesome 7 Jelly Fill\": {\n 400: \"fajfr\",\n normal: \"fajfr\"\n },\n \"Font Awesome 7 Jelly Duo\": {\n 400: \"fajdr\",\n normal: \"fajdr\"\n },\n \"Font Awesome 7 Slab\": {\n 400: \"faslr\",\n normal: \"faslr\"\n },\n \"Font Awesome 7 Slab Press\": {\n 400: \"faslpr\",\n normal: \"faslpr\"\n },\n \"Font Awesome 7 Thumbprint\": {\n 300: \"fatl\",\n normal: \"fatl\"\n },\n \"Font Awesome 7 Notdog\": {\n 900: \"fans\",\n normal: \"fans\"\n },\n \"Font Awesome 7 Notdog Duo\": {\n 900: \"fands\",\n normal: \"fands\"\n },\n \"Font Awesome 7 Etch\": {\n 900: \"faes\",\n normal: \"faes\"\n },\n \"Font Awesome 7 Graphite\": {\n 100: \"fagt\",\n normal: \"fagt\"\n },\n \"Font Awesome 7 Chisel\": {\n 400: \"facr\",\n normal: \"facr\"\n },\n \"Font Awesome 7 Whiteboard\": {\n 600: \"fawsb\",\n normal: \"fawsb\"\n },\n \"Font Awesome 7 Utility\": {\n 600: \"fausb\",\n normal: \"fausb\"\n },\n \"Font Awesome 7 Utility Duo\": {\n 600: \"faudsb\",\n normal: \"faudsb\"\n },\n \"Font Awesome 7 Utility Fill\": {\n 600: \"faufsb\",\n normal: \"faufsb\"\n }\n };\nvar Et = new Map([[\"classic\", {\n defaultShortPrefixId: \"fas\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\", \"brands\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"duotone\", {\n defaultShortPrefixId: \"fad\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp\", {\n defaultShortPrefixId: \"fass\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp-duotone\", {\n defaultShortPrefixId: \"fasds\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"chisel\", {\n defaultShortPrefixId: \"facr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"etch\", {\n defaultShortPrefixId: \"faes\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"graphite\", {\n defaultShortPrefixId: \"fagt\",\n defaultStyleId: \"thin\",\n styleIds: [\"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 100\n }], [\"jelly\", {\n defaultShortPrefixId: \"fajr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"jelly-duo\", {\n defaultShortPrefixId: \"fajdr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"jelly-fill\", {\n defaultShortPrefixId: \"fajfr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"notdog\", {\n defaultShortPrefixId: \"fans\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"notdog-duo\", {\n defaultShortPrefixId: \"fands\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"slab\", {\n defaultShortPrefixId: \"faslr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"slab-press\", {\n defaultShortPrefixId: \"faslpr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"thumbprint\", {\n defaultShortPrefixId: \"fatl\",\n defaultStyleId: \"light\",\n styleIds: [\"light\"],\n futureStyleIds: [],\n defaultFontWeight: 300\n }], [\"utility\", {\n defaultShortPrefixId: \"fausb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"utility-duo\", {\n defaultShortPrefixId: \"faudsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"utility-fill\", {\n defaultShortPrefixId: \"faufsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"whiteboard\", {\n defaultShortPrefixId: \"fawsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }]]),\n Mt = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n graphite: {\n thin: \"fagt\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\nvar Ht = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"],\n Qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Xt = [\"kit\"];\nvar J = \"kit\",\n r = \"kit-duotone\",\n E = \"Kit\",\n _ = \"Kit Duotone\",\n ll = _defineProperty(_defineProperty({}, J, E), r, _);\nvar sl = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n};\nvar hl = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n },\n nl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\nvar ml = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\nvar _wt;\nvar t$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n f$1 = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-graphite\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\nvar h$1 = \"classic\",\n o$1 = \"duotone\",\n n$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n u$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"graphite\",\n m$1 = \"jelly\",\n a$1 = \"jelly-duo\",\n p$1 = \"jelly-fill\",\n w$1 = \"notdog\",\n e$1 = \"notdog-duo\",\n b$1 = \"slab\",\n c$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n x$1 = \"utility\",\n i$1 = \"utility-duo\",\n I$1 = \"utility-fill\",\n F$1 = \"whiteboard\",\n v$1 = \"Classic\",\n S$1 = \"Duotone\",\n A$1 = \"Sharp\",\n P$1 = \"Sharp Duotone\",\n j$1 = \"Chisel\",\n B$1 = \"Etch\",\n N$1 = \"Graphite\",\n k$1 = \"Jelly\",\n D$1 = \"Jelly Duo\",\n C$1 = \"Jelly Fill\",\n T$1 = \"Notdog\",\n L$1 = \"Notdog Duo\",\n W$1 = \"Slab\",\n R$1 = \"Slab Press\",\n K$1 = \"Thumbprint\",\n U$1 = \"Utility\",\n J$1 = \"Utility Duo\",\n E$1 = \"Utility Fill\",\n _$1 = \"Whiteboard\",\n wt$1 = (_wt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_wt, h$1, v$1), o$1, S$1), n$1, A$1), s$1, P$1), u$1, j$1), g$1, B$1), y$1, N$1), m$1, k$1), a$1, D$1), p$1, C$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_wt, w$1, T$1), e$1, L$1), b$1, W$1), c$1, R$1), r$1, K$1), x$1, U$1), i$1, J$1), I$1, E$1), F$1, _$1));\nvar G$1 = \"kit\",\n d$1 = \"kit-duotone\",\n M$1 = \"Kit\",\n O = \"Kit Duotone\",\n dl$1 = _defineProperty(_defineProperty({}, G$1, M$1), d$1, O);\nvar Hl = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n graphite: {\n \"fa-thin\": \"fagt\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n Y$1 = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n graphite: [\"fagt\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Xl = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n graphite: {\n fagt: \"fa-thin\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n V$1 = [\"fa-solid\", \"fa-regular\", \"fa-light\", \"fa-thin\", \"fa-duotone\", \"fa-brands\", \"fa-semibold\"],\n lo = [\"fa\", \"fas\", \"far\", \"fal\", \"fat\", \"fad\", \"fadr\", \"fadl\", \"fadt\", \"fab\", \"fass\", \"fasr\", \"fasl\", \"fast\", \"fasds\", \"fasdr\", \"fasdl\", \"fasdt\", \"faslr\", \"faslpr\", \"fawsb\", \"fatl\", \"fans\", \"fands\", \"faes\", \"fagt\", \"fajr\", \"fajfr\", \"fajdr\", \"facr\", \"fausb\", \"faudsb\", \"faufsb\"].concat(f$1, V$1),\n $ = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n z$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n q$1 = z$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n H$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n so = [].concat(_toConsumableArray(Object.keys(Y$1)), $, H$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY]).concat(z$1.map(function (l) {\n return \"\".concat(l, \"x\");\n })).concat(q$1.map(function (l) {\n return \"w-\".concat(l);\n }));\nvar fo = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n };\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PSEUDO_ELEMENTS = ['::before', '::after', ':before', ':after'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e$$1) {\n return false;\n }\n}();\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n}\nvar _PREFIX_TO_STYLE = _objectSpread2({}, Q);\n\n// We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n// {'fa-duotone': 'duotone'}\n_PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n}), Q[i]), Qt['kit']), Qt['kit-duotone']);\nvar PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\nvar _STYLE_TO_PREFIX = _objectSpread2({}, Mt);\n\n// We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n}), _STYLE_TO_PREFIX[i]), ml['kit']), ml['kit-duotone']);\nvar STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\nvar _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Xl);\n_PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), nl['kit']);\nvar PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\nvar _LONG_STYLE_TO_PREFIX = _objectSpread2({}, Hl);\n_LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), sl['kit']);\nvar LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\nvar ICON_SELECTION_SYNTAX_PATTERN = G;\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = M;\nvar _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, yt);\nvar FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = X;\nvar RESERVED_CLASSES = [].concat(_toConsumableArray(Xt), _toConsumableArray(so));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n if (element) {\n return element.getAttribute(attr);\n }\n}\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-search-pseudo-elements-warnings', 'searchPseudoElementsWarnings'], ['data-search-pseudo-elements-full-scan', 'searchPseudoElementsFullScan'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n var val = coerce(getAttrConfig(attr));\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\nvar _default = {\n styleDefault: 'solid',\n familyDefault: i,\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n searchPseudoElements: false,\n searchPseudoElementsWarnings: true,\n searchPseudoElementsFullScan: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\n// familyPrefix is deprecated but we must still support it if present\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n});\n\n// familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d$2 = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 'Font Awesome 7 Free';\\n --fa-font-regular: normal 400 1em/1 'Font Awesome 7 Free';\\n --fa-font-light: normal 300 1em/1 'Font Awesome 7 Pro';\\n --fa-font-thin: normal 100 1em/1 'Font Awesome 7 Pro';\\n --fa-font-duotone: normal 900 1em/1 'Font Awesome 7 Duotone';\\n --fa-font-duotone-regular: normal 400 1em/1 'Font Awesome 7 Duotone';\\n --fa-font-duotone-light: normal 300 1em/1 'Font Awesome 7 Duotone';\\n --fa-font-duotone-thin: normal 100 1em/1 'Font Awesome 7 Duotone';\\n --fa-font-brands: normal 400 1em/1 'Font Awesome 7 Brands';\\n --fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 7 Sharp';\\n --fa-font-sharp-regular: normal 400 1em/1 'Font Awesome 7 Sharp';\\n --fa-font-sharp-light: normal 300 1em/1 'Font Awesome 7 Sharp';\\n --fa-font-sharp-thin: normal 100 1em/1 'Font Awesome 7 Sharp';\\n --fa-font-sharp-duotone-solid: normal 900 1em/1 'Font Awesome 7 Sharp Duotone';\\n --fa-font-sharp-duotone-regular: normal 400 1em/1 'Font Awesome 7 Sharp Duotone';\\n --fa-font-sharp-duotone-light: normal 300 1em/1 'Font Awesome 7 Sharp Duotone';\\n --fa-font-sharp-duotone-thin: normal 100 1em/1 'Font Awesome 7 Sharp Duotone';\\n --fa-font-slab-regular: normal 400 1em/1 'Font Awesome 7 Slab';\\n --fa-font-slab-press-regular: normal 400 1em/1 'Font Awesome 7 Slab Press';\\n --fa-font-whiteboard-semibold: normal 600 1em/1 'Font Awesome 7 Whiteboard';\\n --fa-font-thumbprint-light: normal 300 1em/1 'Font Awesome 7 Thumbprint';\\n --fa-font-notdog-solid: normal 900 1em/1 'Font Awesome 7 Notdog';\\n --fa-font-notdog-duo-solid: normal 900 1em/1 'Font Awesome 7 Notdog Duo';\\n --fa-font-etch-solid: normal 900 1em/1 'Font Awesome 7 Etch';\\n --fa-font-graphite-thin: normal 100 1em/1 'Font Awesome 7 Graphite';\\n --fa-font-jelly-regular: normal 400 1em/1 'Font Awesome 7 Jelly';\\n --fa-font-jelly-fill-regular: normal 400 1em/1 'Font Awesome 7 Jelly Fill';\\n --fa-font-jelly-duo-regular: normal 400 1em/1 'Font Awesome 7 Jelly Duo';\\n --fa-font-chisel-regular: normal 400 1em/1 'Font Awesome 7 Chisel';\\n --fa-font-utility-semibold: normal 600 1em/1 'Font Awesome 7 Utility';\\n --fa-font-utility-duo-semibold: normal 600 1em/1 'Font Awesome 7 Utility Duo';\\n --fa-font-utility-fill-semibold: normal 600 1em/1 'Font Awesome 7 Utility Fill';\\n}\\n\\n.svg-inline--fa {\\n box-sizing: content-box;\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n width: var(--fa-width, 1.25em);\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285714em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left,\\n.svg-inline--fa .fa-pull-start {\\n float: inline-start;\\n margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-pull-right,\\n.svg-inline--fa .fa-pull-end {\\n float: inline-end;\\n margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: var(--fa-width, 1.25em);\\n}\\n.fa-layers .svg-inline--fa {\\n inset: 0;\\n margin: auto;\\n position: absolute;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-counter-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xs {\\n font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-sm {\\n font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-lg {\\n font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xl {\\n font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-2xl {\\n font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-width-auto {\\n --fa-width: auto;\\n}\\n\\n.fa-fw,\\n.fa-width-fixed {\\n --fa-width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-inline-start: var(--fa-li-margin, 2.5em);\\n padding-inline-start: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n/* Heads Up: Bordered Icons will not be supported in the future!\\n - This feature will be deprecated in the next major release of Font Awesome (v8)!\\n - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8.\\n*/\\n/* Notes:\\n* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size)\\n* --@{v.$css-prefix}-border-padding =\\n ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment)\\n ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon)\\n*/\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.0625em);\\n box-sizing: var(--fa-border-box-sizing, content-box);\\n padding: var(--fa-border-padding, 0.1875em 0.25em);\\n}\\n\\n.fa-pull-left,\\n.fa-pull-start {\\n float: inline-start;\\n margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right,\\n.fa-pull-end {\\n float: inline-end;\\n margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n .fa-bounce,\\n .fa-fade,\\n .fa-beat-fade,\\n .fa-flip,\\n .fa-pulse,\\n .fa-shake,\\n .fa-spin,\\n .fa-spin-pulse {\\n animation: none !important;\\n transition: none !important;\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1);\\n }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n transform: rotate(-15deg);\\n }\\n 4% {\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n transform: rotate(18deg);\\n }\\n 16% {\\n transform: rotate(-22deg);\\n }\\n 20% {\\n transform: rotate(22deg);\\n }\\n 32% {\\n transform: rotate(-12deg);\\n }\\n 36% {\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.svg-inline--fa.fa-inverse {\\n fill: var(--fa-inverse, #fff);\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n line-height: 2em;\\n position: relative;\\n vertical-align: middle;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n --fa-width: 1.25em;\\n height: 1em;\\n width: var(--fa-width);\\n}\\n.svg-inline--fa.fa-stack-2x {\\n --fa-width: 2.5em;\\n height: 2em;\\n width: var(--fa-width);\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n inset: 0;\\n margin: auto;\\n position: absolute;\\n z-index: var(--fa-stack-z-index, auto);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n}\nvar _cssInserted = false;\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w$2 = WINDOW || {};\nif (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\nif (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\nif (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w$2[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\nvar _listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', _listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\nvar loaded = false;\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', _listener);\n}\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n return result;\n};\n\n/**\n * Return hexadecimal string for a unicode character\n * Returns `null` when more than one character (not bytes!) are passed\n * For example: 'K' \u2192 '7B'\n */\nfunction toHex(unicode) {\n if (_toConsumableArray(unicode).length !== 1) return null;\n return unicode.codePointAt(0).toString(16);\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n}\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar MONO = 0x1;\nvar DUO = 0x2;\n\n// New v7 compatible matchers using the style attribute to determine layer membership\nvar modernMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\".*path.*d=\"([^\"]*)\"/, {\n d2: 2,\n d1: 3\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\"/, {\n d2: 2\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path fill=\"currentColor\".*d=\"([^\"]+)\"/, {\n d1: 1\n})]];\n\n// Old <= v6 matchers, these should rarely get used.\n//\n// Why are there so many? Over the lifecycle of version 5 and 6 we modified the\n// syntax for our source SVG files several times. These patterns match the\n// historical record and attempt to handle backwards-compatibility in rare edge\n// cases (loading version 6 SVG source files using the version 7 SVG parser)\nvar legacyMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr2: 1,\n d2: 2,\n attr1: 3,\n d1: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2,\n attr2: 3,\n d2: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr2: 1,\n d2: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n d2: 1,\n attr2: 2,\n d1: 3,\n attr1: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n d1: 1,\n attr1: 2,\n d2: 3,\n attr2: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n d1: 1,\n attr1: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n d2: 1,\n attr2: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*path d=\"([^\"]+)\"/, {\n d1: 1,\n d2: 2\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\"/, {\n d1: 1\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path style=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2\n})]];\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE);\nvar PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce(function (acc, familyId) {\n acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]);\n return acc;\n}, {});\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o$$1, style, prefix) {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n if (icon[2]) {\n var aliases = icon[2].filter(function (a$$1) {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n if (icon[2]) {\n var aliases = icon[2].filter(function (a$$1) {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n });\n\n // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c$$1) {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getFamilyId(values) {\n var family = i;\n var famProps = FAMILY_NAMES.reduce(function (acc, familyId) {\n acc[familyId] = \"\".concat(config.cssPrefix, \"-\").concat(familyId);\n return acc;\n }, {});\n dt.forEach(function (familyId) {\n if (values.includes(famProps[familyId]) || values.some(function (v$$1) {\n return PREFIXES_FOR_FAMILY[familyId].includes(v$$1);\n })) {\n family = familyId;\n }\n });\n return family;\n}\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? i : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n\n // handles the exception of passing in only a family of 'duotone' with no style\n if (family === t && !styleOrPrefix) {\n return 'fad';\n }\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n var result = prefix || defined || null;\n return result;\n}\nfunction moveNonFaClassesToRest(classNames) {\n var rest = [];\n var iconName = null;\n classNames.forEach(function (cls) {\n var result = getIconName(config.cssPrefix, cls);\n if (result) {\n iconName = result;\n } else if (cls) {\n rest.push(cls);\n }\n });\n return {\n iconName: iconName,\n rest: rest\n };\n}\nfunction sortedUniqueValues(arr) {\n return arr.sort().filter(function (value, index, arr) {\n return arr.indexOf(value) === index;\n });\n}\nvar _faCombinedClasses = lo.concat(Ht);\nfunction getCanonicalIcon(values) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var givenPrefix = null;\n var faStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n return _faCombinedClasses.includes(cls);\n }));\n var nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n return !_faCombinedClasses.includes(cls);\n }));\n var faStyles = faStyleOrFamilyClasses.filter(function (cls) {\n givenPrefix = cls;\n return !Z.includes(cls);\n });\n var _faStyles = _slicedToArray(faStyles, 1),\n _faStyles$ = _faStyles[0],\n styleFromValues = _faStyles$ === void 0 ? null : _faStyles$;\n var family = getFamilyId(faStyleOrFamilyClasses);\n var canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, {\n prefix: getCanonicalPrefix(styleFromValues, {\n family: family\n })\n });\n return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({\n values: values,\n family: family,\n styles: styles,\n config: config,\n canonical: canonical,\n givenPrefix: givenPrefix\n })), applyShimAndAlias(skipLookups, givenPrefix, canonical));\n}\nfunction applyShimAndAlias(skipLookups, givenPrefix, canonical) {\n var prefix = canonical.prefix,\n iconName = canonical.iconName;\n if (skipLookups || !prefix || !iconName) {\n return {\n prefix: prefix,\n iconName: iconName\n };\n }\n var shim = givenPrefix === 'fa' ? byOldName(iconName) : {};\n var aliasIconName = byAlias(prefix, iconName);\n iconName = shim.iconName || aliasIconName || iconName;\n prefix = shim.prefix || prefix;\n if (prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n prefix = 'fas';\n }\n return {\n prefix: prefix,\n iconName: iconName\n };\n}\nvar newCanonicalFamilies = dt.filter(function (familyId) {\n return familyId !== i || familyId !== t;\n});\nvar newCanonicalStyles = Object.keys(Xl).filter(function (key) {\n return key !== i;\n}).map(function (key) {\n return Object.keys(Xl[key]);\n}).flat();\nfunction getDefaultCanonicalPrefix(prefixOptions) {\n var values = prefixOptions.values,\n family = prefixOptions.family,\n canonical = prefixOptions.canonical,\n _prefixOptions$givenP = prefixOptions.givenPrefix,\n givenPrefix = _prefixOptions$givenP === void 0 ? '' : _prefixOptions$givenP,\n _prefixOptions$styles = prefixOptions.styles,\n styles = _prefixOptions$styles === void 0 ? {} : _prefixOptions$styles,\n _prefixOptions$config = prefixOptions.config,\n config$$1 = _prefixOptions$config === void 0 ? {} : _prefixOptions$config;\n var isDuotoneFamily = family === t;\n var valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad');\n var defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone';\n var canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone';\n if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) {\n canonical.prefix = 'fad';\n }\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n if (!canonical.prefix && newCanonicalFamilies.includes(family)) {\n var validPrefix = Object.keys(styles).find(function (key) {\n return newCanonicalStyles.includes(key);\n });\n if (validPrefix || config$$1.autoFetchSvg) {\n var defaultPrefix = Et.get(family).defaultShortPrefixId;\n canonical.prefix = defaultPrefix;\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n }\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n this.definitions = {};\n }\n return _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n\n // To keep support for older Classic styles, also add longer prefixes\n var longPrefix = PREFIX_TO_LONG_STYLE[i][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n _hooks[hook].push(hooks[hook]);\n });\n }\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args));\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return undefined;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\n// If any of these attributes are present, don't assume the icon is decorative\nfunction isLabeled(attributes) {\n var labels = ['aria-label', 'aria-labelledby', 'title', 'role'];\n return labels.some(function (label) {\n return label in attributes;\n });\n}\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n maskId = params.maskId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n if (!isLabeled(extra.attributes) && !extra.attributes['aria-hidden']) {\n content.attributes['aria-hidden'] = 'true';\n }\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2({}, extra.styles)\n });\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n class: extra.classes.join(' ')\n });\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n var styles = _objectSpread2({}, extra.styles);\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n extra = params.extra;\n var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n class: extra.classes.join(' ')\n });\n var styleString = joinStyles(extra.styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n var element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n return new Promise(function (resolve, reject) {\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\nvar p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"7.2.0\\\"\";\nvar begin = function begin(name) {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\nvar end = function end(name) {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n return comment;\n}\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n\n // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\nfunction performOperationSync(op) {\n op();\n}\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n if (!config.observeMutations) {\n return;\n }\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n treeCallback(mutationRecord.target);\n }\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback([mutationRecord.target], true);\n }\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n return acc;\n }, {});\n }\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n if (val.iconName && val.prefix) {\n return val;\n }\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\nfunction getKnownPrefixes() {\n return [].concat(_toConsumableArray(Ht), _toConsumableArray(lo));\n}\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var prefixes = config.autoFetchSvg ? getKnownPrefixes() : Z.concat(Object.keys(styles$2));\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p$$1) {\n return \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n var candidates = [];\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {\n // noop\n }\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e$$1) {\n mark();\n reject(e$$1);\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n maskId: maskId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var nextChild;\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nvar _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n}), Kt), fo), hl);\nvar FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, key) {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n}, {});\nvar FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, fontFamily) {\n var weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || _toConsumableArray(Object.entries(weights))[0][1];\n return acc;\n}, {});\n\n// Return hex value of *first* character in `content`\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n return toHex(_toConsumableArray(cleaned)[0] || '');\n}\n\n// Check if it's a secondary Duotone layer, by checking if:\n// - Unicode value in `content` is repeated\n// - Unicode value in `content` is above 0x10000\n// - The \"ss01\" font feature is enabled on the `content`\nfunction isSecondaryLayer(styles) {\n var hasStylisticSet = styles.getPropertyValue('font-feature-settings').includes('ss01');\n var content = styles.getPropertyValue('content');\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = cleaned.codePointAt(0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return isPrependTen || isDoubled || hasStylisticSet;\n}\nfunction getPrefix(fontFamily, fontWeight) {\n var fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n var fontWeightInteger = parseInt(fontWeight);\n var fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n}\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c$$1) {\n return c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family');\n var fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamilyMatch && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n var prefix = getPrefix(fontFamily, fontWeight);\n var hexValue = hexValueFromContent(_content);\n var isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n var isSecondary = isSecondaryLayer(styles);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n }\n\n // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n element.outerHTML = abstract.map(function (a$$1) {\n return toHtml(a$$1);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\nvar hasPseudoElement = function hasPseudoElement(selector) {\n return !!selector && PSEUDO_ELEMENTS.some(function (pseudoSelector) {\n return selector.includes(pseudoSelector);\n });\n};\n\n// Return selectors from all available stylesheets that have\n// pseudo-elements defined.\nvar parseCSSRuleForPseudos = function parseCSSRuleForPseudos(selectorText) {\n if (!selectorText) return [];\n var selectorSet = new Set();\n var selectors = selectorText.split(/,(?![^()]*\\))/).map(function (s$$1) {\n return s$$1.trim();\n });\n selectors = selectors.flatMap(function (selector) {\n return selector.includes('(') ? selector : selector.split(',').map(function (s$$1) {\n return s$$1.trim();\n });\n });\n var _iterator = _createForOfIteratorHelper(selectors),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var selector = _step.value;\n if (hasPseudoElement(selector)) {\n // Remove pseudo-elements from the selector\n var selectorWithoutPseudo = PSEUDO_ELEMENTS.reduce(function (acc, pseudoSelector) {\n return acc.replace(pseudoSelector, '');\n }, selector);\n if (selectorWithoutPseudo !== '' && selectorWithoutPseudo !== '*') {\n selectorSet.add(selectorWithoutPseudo);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return selectorSet;\n};\nfunction searchPseudoElements(root) {\n var useAsNodeList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!IS_DOM) return;\n var nodeList;\n if (useAsNodeList) {\n nodeList = root;\n } else if (config.searchPseudoElementsFullScan) {\n nodeList = root.querySelectorAll('*');\n } else {\n // Get elements that have pseudo elements defined in the CSS\n var selectorSet = new Set();\n var _iterator2 = _createForOfIteratorHelper(document.styleSheets),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var stylesheet = _step2.value;\n try {\n var _iterator3 = _createForOfIteratorHelper(stylesheet.cssRules),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var rule = _step3.value;\n var parsedSelectors = parseCSSRuleForPseudos(rule.selectorText);\n var _iterator4 = _createForOfIteratorHelper(parsedSelectors),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var selector = _step4.value;\n selectorSet.add(selector);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n } catch (e$$1) {\n if (config.searchPseudoElementsWarnings) {\n console.warn(\"Font Awesome: cannot parse stylesheet: \".concat(stylesheet.href, \" (\").concat(e$$1.message, \")\\nIf it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin=\\\"anonymous\\\" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.\"));\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n if (!selectorSet.size) return;\n var cleanSelectors = Array.from(selectorSet).join(', ');\n try {\n nodeList = root.querySelectorAll(cleanSelectors);\n } catch (_unused) {} // eslint-disable-line no-empty\n }\n return new Promise(function (resolve, reject) {\n var operations = toArray(nodeList).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\n }\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n return abstract;\n}\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n 'fill': 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n 'mask': \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n\n // Ring\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n return {\n tag: 'g',\n attributes: {\n class: 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n", "/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\nvar prefix = \"fab\";\nvar faSquareGithub = {\n prefix: 'fab',\n iconName: 'square-github',\n icon: [448, 512, [\"github-square\"], \"f092\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM265.8 407.7c0-1.8 0-6 .1-11.6 .1-11.4 .1-28.8 .1-43.7 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-26.6-7.5-56.6-7.5-83.2 0 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 9 .1 21.7 .1 30.6 0 4.8 .1 8.6 .1 10 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7 .6 3.9 1.9 .3 1.3-1 2.6-3 3-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7 .9 3.7 2.4 0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1 .9-1.1 2.8-.9 4.3 .6 1.3 1.3 1.8 3.3 .9 4.1-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9 1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5 .9-.9 2.4-.4 3.5 .6 1.1 1.3 1.3 2.8 .4 3.5-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6 .4-.6 1.5-.9 2.8-.4 1.3 .7 1.9 1.8 1.5 2.6-.4 .9-1.7 1.1-2.8 .4z\"]\n};\nvar faGithubSquare = faSquareGithub;\nvar faThinkPeaks = {\n prefix: 'fab',\n iconName: 'think-peaks',\n icon: [576, 512, [], \"f731\", \"M465.4 409.4l87.1-150.2-32-.3-55.1 95-206.2-353.9-236.2 407.4 32 .3 204.2-352.1 206.2 353.8zM110.1 365.3l32.1 0 117.4-202.5 203.4 349.1 32.5 .1-235.8-404.6-149.6 257.9z\"]\n};\nvar faGoogleDrive = {\n prefix: 'fab',\n iconName: 'google-drive',\n icon: [512, 512, [], \"f3aa\", \"M339 314.9L175.4 32 336.6 32 500.2 314.9 339 314.9zM201.5 338.5l-80.6 141.5 310.5 0 80.6-141.5-310.5 0zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"]\n};\nvar faAutoprefixer = {\n prefix: 'fab',\n iconName: 'autoprefixer',\n icon: [640, 512, [], \"f41c\", \"M318.4 16l-161 480 77.5 0 25.4-81.4 119.5 0 25.2 81.4 77.5 0-164.1-480zM278.1 357.9l41.2-130.4 1.5 0 40.9 130.4-83.6 0zM640 405L630 373.6 462.1 358 481.5 414.5 640 405zM177.9 358L10 373.7 0 405 158.5 414.4 177.9 358z\"]\n};\nvar faSquareViadeo = {\n prefix: 'fab',\n iconName: 'square-viadeo',\n icon: [448, 512, [\"viadeo-square\"], \"f2aa\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1l0 .4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 8.3-7.9 18-10.9 27.9-14.1 16-5.1 32.5-10.3 44.5-35.9 32.5 46.2 13.1 130.3-36.3 130.3-13.3 0-25.1-7.1-34.4-16.1z\"]\n};\nvar faViadeoSquare = faSquareViadeo;\nvar faCpanel = {\n prefix: 'fab',\n iconName: 'cpanel',\n icon: [640, 512, [], \"f388\", \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2l-37 0c-7.1 0-12.5 4.5-14.3 10.9L73.1 320 97.8 319.9c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7 19.8 0c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6l-10.3 0c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8 32 0c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28l18.6 0c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6-40 0C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320l12.4 0 7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3l-11.3 0c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8l-77.9 0-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5l57.5 0c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3l-34.9 0c-5.3 0-5.3-7.9 0-7.9l21.6 0c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2-48.4 0c-39.2 0-43.6 63.8-.7 63.8l57.5 .2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179l-18.9 0c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zM396.8 213.7l0 .1-48.3 0-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3l18.9 0c4.8 0 9.2-3 10.4-7.8l17.2-64 19.8 0c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3l19.1 0c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6l32.9 0c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3l-21.6 0c-7 0-12.6 4.6-14.2 10.8l-3.5 13 53.4 0c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8l-47.3 0c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7l66.7 0c6.8 0 12.3-4.5 14.2-10.7l5.7-21-73.3 0z\"]\n};\nvar faMendeley = {\n prefix: 'fab',\n iconName: 'mendeley',\n icon: [640, 512, [], \"f7b3\", \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4 .7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1 .1-.2 .2-.3 .4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zM320.7 306.1l-.6 0c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8l.6 0c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"]\n};\nvar faDraft2digital = {\n prefix: 'fab',\n iconName: 'draft2digital',\n icon: [512, 512, [], \"f396\", \"M496 398.1l-144-82.2 0 64.7-91.3 0c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6-76.6 87-142.8 155.7-161.1 174.8l336-.1 0 64.2 144-81.9zM385.9 371l47.1 27.2-47.1 27.2 0-54.4zM105.4 161.4a22.4 22.4 0 1 1 44.8 0 22.4 22.4 0 1 1 -44.8 0zM98.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7l-114.4 0z\"]\n};\nvar faReplyd = {\n prefix: 'fab',\n iconName: 'replyd',\n icon: [448, 512, [], \"f3e6\", \"M320 480l-192 0C57.6 480 0 422.4 0 352L0 160C0 89.6 57.6 32 128 32l192 0c70.4 0 128 57.6 128 128l0 192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6s-9.6 9-12.8 15.8l-1.1 0-4.2-18.3-28 0 0 138.9 36.1 0 0-89.7c1.5-5.4 4.4-9.8 8.7-13.2s9.8-5.1 16.2-5.1c4.6 0 9.8 1 15.6 3.1l4.8-34zM308.6 376.6c-3.2 2.4-7.7 4.8-13.7 7.1s-12.8 3.5-20.4 3.5c-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4l83.3 0c.9-4.8 1.6-9.4 2.1-13.9 .5-4.4 .7-8.6 .7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6s17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1l-51.7 0c.9-9.4 3.7-17 8.2-22.6s11.5-8.5 21-8.5c8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4-9.6-5.7-16.7-5.7c-6.7 0-12 1.9-16.1 5.7s-6.1 8.9-6.1 15.4 2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4-9.6-5.7-16.7-5.7c-6.7 0-12 1.9-16.1 5.7s-6.1 8.9-6.1 15.4c0 6.6 2 11.7 6.1 15.6z\"]\n};\nvar faEmpire = {\n prefix: 'fab',\n iconName: 'empire',\n icon: [512, 512, [], \"f1d1\", \"M295.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6l0-18.2c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM61.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C42 181 32.1 217.5 32.1 256s10 75 27.1 106.6L75 353.5c-5.3-10-9.7-20.3-13.6-31.1zM221.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6l0-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM101.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6l0-18.2C171.9 34.6 103.9 76.4 65.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zM410.7 391.1l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6l0 18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm483.8 0a235.8 235.8 0 1 0 -471.6 0 235.8 235.8 0 1 0 471.6 0zm-39-106.6L437 158.5c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C470 331 479.9 294.5 479.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8s-18.5 .8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8s18.5-1.1 27.1-2.8l-13.3-66.7z\"]\n};\nvar faAccessibleIcon = {\n prefix: 'fab',\n iconName: 'accessible-icon',\n icon: [448, 512, [62107], \"f368\", \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46C105.5 165.3 64.9 120 95 93.1l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6l-58.4 66.5 106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zM359 101.8A50.9 50.9 0 1 0 359 0 50.9 50.9 0 1 0 359 101.8zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1L57.2 260.7C36.4 287 24 320.3 24 356.4 24 487.1 174.7 557.8 275.4 478.9l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"]\n};\nvar faQuora = {\n prefix: 'fab',\n iconName: 'quora',\n icon: [448, 512, [], \"f2c4\", \"M440.7 386.7l-29.3 0c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153 .1-117.5-96.6-196.7-198.4-196.7-99.7 0-197.7 79.7-197.7 196.7 0 134.1 131.3 221.6 249 189 19.7 33.6 45.7 62.3 95.2 62.3 81.8 0 90.8-75.3 89-93.3zM297.2 329.2c-19.5-29.2-43.7-52.2-91.5-52.2-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7 0-104.4 32.5-157.9 107.5-157.9 76.2 0 108.7 53.5 108.7 157.7 .1 41.8-5.4 75.6-16.7 100.5z\"]\n};\nvar faCcJcb = {\n prefix: 'fab',\n iconName: 'cc-jcb',\n icon: [576, 512, [], \"f24b\", \"M431.5 244.3l0-32.3c41.2 0 38.5 .2 38.5 .2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2 .4-3.3 .3-38.5 .3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5l0 35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM182 192.3l-57 0c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8l0 28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2l0-28.3C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2l0-28zM544 286.5c0-18.5-16.5-30.5-38-32l0-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3l0 127.5 122.7 0c24.3 .1 42.3-12.9 42.3-33.2z\"]\n};\nvar faFedora = {\n prefix: 'fab',\n iconName: 'fedora',\n icon: [448, 512, [], \"f798\", \"M0 255.8C.1 132.2 100.3 32 224 32S448 132.3 448 256 347.8 479.9 224.1 480L50.9 480C22.8 480 .1 457.3 0 429.2l0 0 0-173.4 0 0zm342.6-63.1c0-39.7-35.6-68.5-73.2-68.5-34.9 0-65.8 26.3-70.1 59.9-.2 3.8-.4 5-.4 8.5-.1 21.1 0 42.8-.8 64.4 .9 26.1 1 52.1 0 76.6 0 27.1-19.4 45.5-44.7 45.5s-45.8-20.2-45.8-45.5c.5-27.7 22.6-45.3 48.5-46.1l.2 0 26.3-.2 0-37.3-26.3 .2c-47.1-.4-84.6 36.5-85.9 83.4 0 45.6 37.5 82.9 83 82.9 43 0 78.7-33.6 82.6-75.6l.2-53.5 32.6-.3c25.3 .2 25-37.8-.2-37.3l-32.4 .3c0-6.4 .1-12.8 .1-19.2 .1-12.7 .1-25.4-.1-38.2 .1-16.5 15.8-31.2 33.2-31.2 17.5 0 35.9 8.7 35.9 31.2 0 3.2-.1 5.1-.3 6.3-1.9 10.5 5.2 20.4 15.7 21.9 10.6 1.5 20.2-6.1 21.2-16.6 .6-4.2 .7-7.9 .7-11.6z\"]\n};\nvar faDuolingo = {\n prefix: 'fab',\n iconName: 'duolingo',\n icon: [576, 512, [], \"e812\", \"M504.3 230.5c10.4 88.5-43.4 172.1-128.2 199s-176.6-10.3-218.9-88.7c-72 3-137.4-39.8-163.2-105.5-2.6-6.6-1.9-14 1.9-19.9s10.2-9.7 17.2-10.1l96.1-6-23.8-75.9c-6.3-20-2.2-41.9 11-58.3s33.7-25 54.5-23c52.2 5 86.8 4.8 104-.6S300 16.7 339-16.9c15.9-13.7 37.7-18.5 57.8-12.7s36.1 21.3 42.4 41.4L462.8 87 543.6 37.3c6-3.7 13.4-4.3 19.9-1.6s11.3 8.3 12.9 15.2c16.2 68.2-12.4 140.3-72.1 179.5zM258.5 475.9l0 0c15.1 7.5 21.5 25.8 14.2 41s-25.4 21.9-40.7 14.9l-43.9-21c-15.1-7.5-21.5-25.8-14.2-41s25.4-21.9 40.7-14.9l43.8 21zM564.6 345.7c14.8 8.4 20 27.3 11.6 42.2l-23.9 42.4c-8.7 14.3-27.1 19.2-41.6 10.9s-19.9-26.6-12-41.4l23.9-42.4c4-7.1 10.7-12.4 18.6-14.6s16.3-1.2 23.4 2.9z\"]\n};\nvar faFirstdraft = {\n prefix: 'fab',\n iconName: 'firstdraft',\n icon: [384, 512, [], \"f3a1\", \"M384 192l-64 0 0 128-128 0 0 128-192 0 0-25.6 166.4 0 0-128 128 0 0-128 89.6 0 0 25.6zm-25.6 38.4l0 128-128 0 0 128-166.4 0 0 25.6 192 0 0-128 128 0 0-153.6-25.6 0zm25.6 192l-89.6 0 0 89.6 25.6 0 0-64 64 0 0-25.6zM0 0l0 384 128 0 0-128 128 0 0-128 128 0 0-128-384 0z\"]\n};\nvar faFreebsd = {\n prefix: 'fab',\n iconName: 'freebsd',\n icon: [448, 512, [], \"f3a4\", \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2s-39.4 .9-63.1-22.9c-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1-11 57.7 12.7 110.5 33.5 146.8 52 114.6 78.3 87.5 109.9 68.1zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"]\n};\nvar faOdysee = {\n prefix: 'fab',\n iconName: 'odysee',\n icon: [512, 512, [], \"e5c6\", \"M406.7 463c-42.3 30.8-94.4 49-150.7 49-111.1 0-205.7-70.8-241.1-169.8 2.4 1.7 5.9 3.6 7.9 4.4 16.3 7.4 40.1-5.4 62.9-28.7 6.9-6.9 14.4-12.4 22.8-17.3 18.3-11.9 37.6-20.8 58.4-27.2 0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1-11-.5-70-3-56 51.1 14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4 .8 4.6 1.1 9.9 1.4 15.5 1.1 21.2 2.3 45.6 35.3 46.4 5.3 0 10.6-.8 15.5-2l0-.1zm-95.3-23.7c-2-.5-3.5-2.5-3-5 1-2.5 3-3.5 5-3s3.5 3 3 5-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3 0 2-1 4-3 4-1.5 .5-3.5-1-4-3-.5-1.5 1-3.5 3-4zM451.8 421c37.5-44.6 60.2-102.2 60.2-165 0-67.5-26.1-128.9-68.8-174.7-.1 23.5-6.1 48.2-16.8 69.2-11.9 20.3-49 58.9-69.8 78.7-.7 .3-1.1 .9-1.5 1.4-.2 .2-.3 .4-.5 .6-5 6.9-4 16.8 3 21.8 21.3 15.8 56.4 45.6 59.4 72.8 3.5 34.9 27.9 75.6 34.2 86.2 .8 1.3 1.3 2.1 1.4 2.4 0 2.2-.4 4.3-.8 6.5l0 .1zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4-.3 1.4-.7 2.8-1 4.2-9.5 38.5-30.6 37.6-41.7 37.2-1.1 0-2-.1-2.9-.1-5.1 0-6-4-8.9-17.1-2.6-12.1-6.9-32-17.9-63.6-22.7-65.8-82.7-49.4-128.2-22.2-55.3 33.1-34.4 101.9-19.8 149.4 .7 2.2 1.4 4.4 2 6.6-4 4-13.8 7.5-26 11.9-12.1 4.3-26.6 9.5-40.3 16.9-33.9 18-70.3 49-79.8 62.6-1.3-10.7-2-21.5-2-32.5 0-141.4 114.6-256 256-256 51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4 4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5 1.5 2.5 1 5.4-1.5 6.4-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3 1.5 .5 3-.5 3-2 .5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54 44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9-61.9-4.5-64.9-42.6l0 .1zm89.6 14.9l1 0c2.5 0 5-2 5-5 2-6.9 1-14.4-2-20.8-1.5-2-4-3.5-6.4-2.5-3 1-4.5 4-3.5 6.9 2 4.5 3 9.9 1.5 14.9-.5 3 1.5 5.9 4.5 6.4l-.1 .1zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3-.2 .1-.4 .2-.6 .2l0 .1z\"]\n};\nvar faGgCircle = {\n prefix: 'fab',\n iconName: 'gg-circle',\n icon: [512, 512, [], \"f261\", \"M257.5 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM208 382.8l-125.7-125.7 125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75 125.7 125.7-125.7 125.6z\"]\n};\nvar faCloudflare = {\n prefix: 'fab',\n iconName: 'cloudflare',\n icon: [640, 512, [], \"e07d\", \"M407.9 319.9L177.1 317c-.7 0-1.4-.2-2-.5s-1.2-.8-1.6-1.4c-.4-.6-.7-1.3-.7-2s0-1.4 .2-2.1c.4-1.1 1.1-2.1 2.1-2.8s2.1-1.2 3.3-1.2l232.9-2.9c27.6-1.3 57.5-23.6 68-50.8l13.3-34.5c.4-.9 .5-1.9 .5-2.9 0-.5-.1-1.1-.2-1.6-7.4-32.2-25-61.1-50.3-82.3s-56.7-33.7-89.7-35.5-65.6 7.3-93 25.7-48 45.3-58.8 76.5c-11.3-8.5-24.9-13.3-39-13.7s-28 3.5-39.8 11.4-20.8 19.1-25.9 32.3-5.9 27.6-2.4 41.3c-52.3 1.5-94.2 44.1-94.2 96.5 0 4.7 .3 9.3 1 14 .2 1.1 .7 2.1 1.5 2.8s1.9 1.1 2.9 1.1l426.1 .1c0 0 .1 0 .1 0 1.2 0 2.3-.4 3.3-1.1s1.6-1.7 2-2.9l3.3-11.3c3.9-13.4 2.4-25.8-4.1-34.9-6-8.4-16.1-13.3-28.2-13.9zm105.9-98.8c-2.1 0-4.3 .1-6.4 .2-.8 .1-1.5 .3-2.1 .8s-1 1.1-1.3 1.8l-9.1 31.2c-3.9 13.4-2.4 25.8 4.1 34.9 6 8.4 16.1 13.3 28.2 13.9l49.2 2.9c.7 0 1.4 .2 2 .5s1.1 .8 1.5 1.4c.4 .6 .7 1.3 .8 2s0 1.5-.2 2.1c-.4 1.1-1.1 2.1-2.1 2.8s-2.1 1.2-3.3 1.2l-51.1 2.9c-27.8 1.3-57.7 23.6-68.1 50.8l-3.7 9.6c-.2 .4-.2 .8-.2 1.3s.2 .8 .4 1.2 .6 .7 .9 .9 .8 .3 1.2 .3c0 0 .1 0 .1 0l175.9 0c1 0 2-.3 2.8-.9s1.4-1.5 1.7-2.4c3.1-11.1 4.7-22.5 4.7-34 0-69.3-56.5-125.5-126.1-125.5z\"]\n};\nvar faHackerrank = {\n prefix: 'fab',\n iconName: 'hackerrank',\n icon: [512, 512, [], \"f5f7\", \"M477.9 128C463.4 103 285.5 0 256.5 0s-206.9 102.8-221.3 128-14.5 230.8 0 256 192.4 128 221.3 128 206.8-102.9 221.3-128 14.5-231 0-256zM316.5 414.2c-4 0-40.9-35.8-38-38.7 .9-.9 6.3-1.5 17.5-1.8 0-26.2 .6-68.6 .9-86.3 0-2-.4-3.4-.4-5.8l-79.9 0c0 7.1-.5 36.2 1.4 72.9 .2 4.5-1.6 6-5.7 5.9-10.1 0-20.3-.1-30.4-.1-4.1 0-5.9-1.5-5.7-6.1 .9-33.4 3-84-.2-212.7l0-3.2c-9.7-.4-16.4-1-17.3-1.8-2.9-2.9 34.5-38.7 38.5-38.7s41.2 35.8 38.3 38.7c-.9 .9-7.9 1.5-16.8 1.8l0 3.2c-2.4 25.8-2 79.6-2.6 105.4l80.3 0c0-4.6 .4-34.7-1.2-83.6-.1-3.4 1-5.2 4.2-5.2 11.1-.1 22.2-.1 33.2-.1 3.5 0 4.6 1.7 4.5 5.4-3.7 191.3-.7 177.9-.7 210.3 8.9 .4 16.8 1 17.7 1.8 2.9 2.9-33.6 38.7-37.6 38.7l0 0z\"]\n};\nvar faSkyatlas = {\n prefix: 'fab',\n iconName: 'skyatlas',\n icon: [640, 512, [], \"f216\", \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4 .1-154-59-154-144.9S67.5 149.6 152.8 149.6c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"]\n};\nvar faDeskpro = {\n prefix: 'fab',\n iconName: 'deskpro',\n icon: [448, 512, [], \"f38f\", \"M122 406.2l84 0c23.1 0 43.9-3.5 62.6-10.7 18.7-7.1 34.7-17.1 48-30.1 13.3-13.4 23.6-29.2 30.7-47.5 3.9-9.6 6.8-19.8 8.6-30.6l73.7 0c-2.5 21.3-7.7 41.3-15.5 60-11.1 27.2-26.9 50.8-47.3 70.9-20 19.6-44.2 34.8-72.6 45.4s-60 16-94.7 16l-149.8 .2 0-192.4 72.3-.2 0 118.8zM199.4 32c34.7 0 66.2 5.4 94.7 16 28.5 10.7 52.9 26.1 73.3 46.2 20.4 19.6 36.2 43.2 47.3 70.9 7.5 18.3 12.4 38.1 14.9 59.3l-73.7-.1c-1.9-10.5-4.7-20.5-8.6-29.9-7.1-18.7-17.3-34.5-30.7-47.5-13.3-13.4-29.3-23.6-48-30.8-18.6-7.1-39.5-10.7-62.7-10.7l-84 0 0 118.8-72.2 .2 0-192.3 149.7-.1z\"]\n};\nvar faResolving = {\n prefix: 'fab',\n iconName: 'resolving',\n icon: [512, 512, [], \"f3e7\", \"M289.2 278.2c46-13.3 49.6-23.5 44-43.4L322 195.5c-6.1-20.9-18.4-28.1-71.1-12.8l-188.2 54.1 28.6 98.6 197.9-57.2zM256.5 8C139.4 8 41.2 88.7 15.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2l-92.6 26.6 220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2C166 491.3 209.5 504 255.5 504 392.5 504 504 392.6 504 255.7 505 119.4 393.5 8 256.5 8zM46.3 388.6L8 256.8c0 48.5 14.3 93.4 38.3 131.8z\"]\n};\nvar faBlackberry = {\n prefix: 'fab',\n iconName: 'blackberry',\n icon: [512, 512, [], \"f37b\", \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1l-70.1 0 21-88.8 67.8 0c42.1 0 53.8 23.3 53.8 39.7zM292.2 77.2l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-25.7 70.1-49.1 .1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1l-67.8 0-21 88.8 70.1 0c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7zm-28 137.9l-67.8 0-18.7 88.8 70.1 0c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346l-67.8 0-18.7 88.8 70.1 0c56.1 0 70.1-25.7 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7z\"]\n};\nvar faStripeS = {\n prefix: 'fab',\n iconName: 'stripe-s',\n icon: [384, 512, [], \"f42a\", \"M155.6 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7l0-134.3c-47.3-18.9-94.5-26.1-141.8-26.1-115.7 0-192.8 60.4-192.8 161.4 0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5l0 128.5c49.3 21.3 102.3 32.3 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"]\n};\nvar faSquareBehance = {\n prefix: 'fab',\n iconName: 'square-behance',\n icon: [448, 512, [\"behance-square\"], \"f1b5\", \"M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4 0-19.7-11.7-27.4-30.3-27.5l-46 0 0 52.9 45.1 0zm-5.4-129.6l-39.6 0 0 44.8 42.7 0c15.1 0 25.8-6.6 25.8-22.9 0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8l62.2 0c-1.7-18.5-11.3-29.7-30.5-29.7-18.3 0-30.5 11.4-31.7 29.7zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM349.5 185l-77.8 0 0-18.9 77.8 0 0 18.9zM193.7 243.7c23.6 6.7 35 27.5 35 51.6 0 39-32.7 55.7-67.6 55.9l-93.1 0 0-192 90.5 0c32.9 0 61.4 9.3 61.4 47.5 0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4 0 1.6-.1 3.3-.2 5 0 .8-.1 1.5-.1 2.2l-100.2 0c0 22.2 11.7 35.3 34.1 35.3 11.6 0 26.5-6.2 30.2-18.1l33.7 0c-10.4 31.9-31.9 46.8-65.1 46.8-43.8 0-71.1-29.7-71.1-73 0-41.8 28.7-73.6 71.1-73.6z\"]\n};\nvar faBehanceSquare = faSquareBehance;\nvar faServicestack = {\n prefix: 'fab',\n iconName: 'servicestack',\n icon: [512, 512, [], \"f3ec\", \"M96 216c81.7 10.2 273.7 102.3 304 232L8 448c99.5-8.1 184.5-137 88-232zM128 64c32.3 35.6 47.7 83.9 46.4 133.6 82.9 33.7 207.3 123.7 233.6 250.4l96 0C463.3 231.9 230.8 79.5 128 64z\"]\n};\nvar faRocketchat = {\n prefix: 'fab',\n iconName: 'rocketchat',\n icon: [576, 512, [], \"f3e8\", \"M284.5 224.8c-6.7 0-13.3 2.1-18.9 5.8s-9.9 9.1-12.5 15.4-3.2 13.1-1.9 19.7 4.6 12.7 9.4 17.4 10.9 8 17.5 9.3 13.5 .6 19.7-2 11.5-7 15.3-12.6 5.7-12.2 5.7-18.9c0-9.1-3.7-17.8-10.1-24.2s-15.1-10-24.2-9.9zm-110.4 0c-6.7 0-13.3 2.1-18.9 5.8s-9.9 9.1-12.5 15.4-3.2 13.1-1.9 19.7 4.6 12.7 9.4 17.4 10.9 8 17.5 9.3 13.5 .6 19.7-2 11.5-7 15.3-12.6 5.7-12.2 5.7-18.9c0-9.1-3.7-17.8-10.1-24.2s-15.1-10-24.2-10l0 0zm220.9 0a34.1 34.1 0 1 0 .4 68.2 34.1 34.1 0 1 0 -.4-68.2zm153.8-55.3c-15.5-24.2-37.3-45.6-64.7-63.6-52.9-34.8-122.4-54-195.7-54-24.2 0-48.3 2.1-72 6.4-14.9-14.3-31.5-26.6-49.5-36.6-66.8-33.3-125.6-20.9-155.3-10.2-2.3 .8-4.3 2.1-5.9 3.9s-2.7 3.9-3.3 6.2-.5 4.7 .1 7.1 1.8 4.4 3.5 6.1C27 56.5 61.6 99.3 53.1 138.3 20 172.2 2 213 2 255.6 2 299 20 339.8 53.1 373.7 61.6 412.7 27 455.6 6 477.2 4.3 479 3.2 481.1 2.5 483.4s-.7 4.7-.1 7 1.7 4.5 3.3 6.2 3.6 3.1 5.9 3.9c29.7 10.7 88.5 23.1 155.3-10.2 18-10 34.7-22.3 49.5-36.6 23.8 4.3 47.9 6.4 72 6.4 73.3 0 142.8-19.2 195.7-54 27.4-18 49.1-39.4 64.7-63.6 17.3-26.9 26.1-55.9 26.1-86.1 0-31-8.8-60-26.1-86.9l0 0zM285.4 409.9c-30.2 .1-60.3-3.8-89.4-11.5l-20.1 19.4c-11.2 10.7-23.6 20-37.1 27.6-16.4 8.2-34.2 13.3-52.5 14.9 1-1.8 1.9-3.6 2.8-5.4 20.2-37.1 25.6-70.5 16.3-100.1-33-26-52.8-59.2-52.8-95.4 0-83.1 104.3-150.5 232.8-150.5s232.9 67.4 232.9 150.5c0 83.1-104.3 150.5-232.9 150.5z\"]\n};\nvar faRebel = {\n prefix: 'fab',\n iconName: 'rebel',\n icon: [512, 512, [], \"f1d0\", \"M256.9 504c-139.3 0-247.5-116.2-243.3-254.1 2.8-79.2 43.2-152.2 116.5-200.4 .3 0 1.9-.6 1.1 .8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7 .8-29.6-21.9-61.4-21.9-61.4L255.5 8 299.8 58.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4 .6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5 .8-2.8 .8-2.8 50.1 36.5 114.6 84.4 116.2 204.8 2 145.6-99.9 249.4-242.4 249.4z\"]\n};\nvar faSquareWebAwesome = {\n prefix: 'fab',\n iconName: 'square-web-awesome',\n icon: [448, 512, [], \"e683\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM235 177.6l53 46.4 52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224c-12.9-.4-23.2-11-23.2-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224 213.1 177.6c-8.9-4.1-15-13.1-15-23.6 0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"]\n};\nvar faLinktree = {\n prefix: 'fab',\n iconName: 'linktree',\n icon: [448, 512, [], \"e7d8\", \"M16 173.4l125.8 0-89.4-85.4 49.5-51 85.2 87.8 0-124.8 73.9 0 0 124.8 85.2-87.6 49.4 50.8-89.4 85.2 125.7 0 0 70.5-126.4 0 90 87.6-49.3 49.8-122.2-123-122.2 123-49.5-49.6 90-87.6-126.4 0 0-70.5zM186.9 344.8l73.9 0 0 167.2-73.9 0 0-167.2z\"]\n};\nvar faSimplybuilt = {\n prefix: 'fab',\n iconName: 'simplybuilt',\n icon: [512, 512, [], \"f215\", \"M481.6 64l-106 0C361.1 64 349 75.8 349 90.3l0 39.6-185.3 0 0-39.6c0-14.5-12-26.3-26.6-26.3l-106 0C16.5 64 4.7 75.8 4.7 90.3l0 331.4c0 14.5 11.8 26.3 26.6 26.3l450.4 0c14.8 0 26.6-11.8 26.6-26.3l0-331.4c-.2-14.5-12-26.3-26.7-26.3zM150.5 222.7a66.5 66.5 0 1 1 -.3 133.1 66.5 66.5 0 1 1 .3-133.1zm211.9 .1a66.5 66.5 0 1 1 .3 132.9 66.5 66.5 0 1 1 -.3-132.9z\"]\n};\nvar faStubber = {\n prefix: 'fab',\n iconName: 'stubber',\n icon: [448, 512, [], \"e5c7\", \"M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1 49.4 0 71.4 63.6 142.4 63.6 15.6 0 35.9-2.8 55.3-13.3l0 61.7c0 61.8-50.4 112-112.3 112L0 480 41.8 424 0 368 41.7 312 0 256.1 41.8 200.1 0 144.1 41.8 88 0 32 335.7 32C397.6 32 448 82.3 448 144.1l0 51.3c-9.2 36.3-25.9 60.6-55 60.6-49.6 0-71.6-63.5-142.4-63.5-35.9 0-95.2 14.6-114.1 101.6l0 .1z\"]\n};\nvar faApper = {\n prefix: 'fab',\n iconName: 'apper',\n icon: [640, 512, [], \"f371\", \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6l.8 0 0-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8l-38.6 0c.3-13.9 1.5-19.1 5.8-24.4 7.3-8.8 18.9-11.8 46.1-11.8 33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7l0 76.3-38.3 0 1.3-19.1-1 0c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zM137 192.3l38.3 0-1.5 20.6 .8 0c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2l-.8 0 0 70.3-39.5 0 0-169zM217.9 253c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7l38.3 0-1.5 20.6 .8 0c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2l-.8 0 0 70.3-39.5 0 0-169 .1 0zM356.7 253c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7l0 11.1-75.3 0c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9l37.5 0 0 2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3 38.3 0zm55.6-45.3l38.3 0-1.8 19.9 .7 0c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3l-35 0c.3-1.8 .3-3.3 .3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3l0 68-38.3 0 0-118.5 .1 0z\"]\n};\nvar faGoogleScholar = {\n prefix: 'fab',\n iconName: 'google-scholar',\n icon: [512, 512, [], \"e63b\", \"M390.9 298.5s0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64-.1 82.5-66.9 149.4-149.4 149.4S106.7 445.1 106.7 362.7c0-22.9 5.2-44.6 14.4-64 1.7-3.6 3.6-7.2 5.6-10.7 4.4-7.6 9.4-14.7 15-21.3 27.4-32.6 68.5-53.3 114.4-53.3 33.6 0 64.6 11.1 89.6 29.9 9.1 6.9 17.4 14.7 24.8 23.5 5.6 6.6 10.6 13.8 15 21.3 2 3.4 3.8 7 5.5 10.5l-.1-.1zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4l-94.7-77 256-202.7 256 202.7-94.7 77.1 0-.1z\"]\n};\nvar faYarn = {\n prefix: 'fab',\n iconName: 'yarn',\n icon: [512, 512, [], \"f7e3\", \"M401.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4 .1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3 .8-10.8-5.7 .8-19.2 .8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3 .8 1.4 13.7 .8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm416.7 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2 .9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4l.1 0c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4 .2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"]\n};\nvar faStackOverflow = {\n prefix: 'fab',\n iconName: 'stack-overflow',\n icon: [384, 512, [], \"f16c\", \"M291 311l-195.7-41.3-8.2 39.3 195.7 41 8.2-39zm51-87L188.5 95.7 163 126.5 316.5 254.8 342 224zm-31.2 39.7L129.5 179 112.8 215.5 294 300 310.8 263.7zM262.3 32l-32 24 119.3 160.3 32-24-119.3-160.3zm20.5 328l-200 0 0 39.7 200 0 0-39.7zm39.7 80l-279.5 0 0-120-40 0 0 160 359.5 0 0-160-40 0 0 120z\"]\n};\nvar faBluetooth = {\n prefix: 'fab',\n iconName: 'bluetooth',\n icon: [384, 512, [], \"f293\", \"M260.6 171.1l-42.9 42.9-.3-86 43.2 43.1zM217.4 390.9l43.1-43.1-42.9-42.9-.2 86zM384 259.4C384 465 312.1 512 198.9 512S0 465 0 259.4 83.4 0 196.6 0 384 53.9 384 259.4zm-158.5 0l79.4-88.6-125.1-134.3 0 176.9-73.8-73.8-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"]\n};\nvar faCreativeCommonsNcJp = {\n prefix: 'fab',\n iconName: 'creative-commons-nc-jp',\n icon: [512, 512, [], \"f4ea\", \"M255.7 8C111.6 8 8 124.8 8 256 8 392.4 119.8 504 255.7 504 385.9 504 504 403.2 504 256 504 117.2 396.5 8 255.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5-27.9 0 0 38.6 58.1 0 5.7 11.8 0 18.7-63.8 0 0 38.7 63.8 0 0 56 61.7 0 0-56 64.2 0 0-35.7 81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3l-57.6 0 0-18.7 2.9-5.6 54.7 24.3zm6.5-51.4l0-17.8-38.6 0 63-116-65.8 0-43.4 96-23-10.2-39.6-85.7-65.8 0 27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59L350.4 270z\"]\n};\nvar faReddit = {\n prefix: 'fab',\n iconName: 'reddit',\n icon: [512, 512, [], \"f1a1\", \"M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256 397.4 512 256 512L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1-10.1-7.8-22.8-12.5-36.5-12.5-33 0-59.8 26.8-59.8 59.8 0 24 14.1 44.6 34.4 54.1 2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54 0-33-26.8-59.8-59.8-59.8-13.7 0-26.3 4.6-36.4 12.4-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9 4.4 18.8 21.3 32.8 41.5 32.8l.1 .2zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6-31.4-8.8-30.4-30.5 15.4-38.3 32.1-38.3l.1-.1zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6 11.8-39.3 28.5-39.3 31.2 16.6 32.1 38.3l.1 .1zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5 18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z\"]\n};\nvar faConnectdevelop = {\n prefix: 'fab',\n iconName: 'connectdevelop',\n icon: [576, 512, [], \"f20e\", \"M550.8 241l-50.1-86.8c1.1-2.1 1.9-4.6 1.9-7.2 0-8-6.7-14.7-14.7-15L432.4 36.1c.5-1.6 1.1-3.2 1.1-4.8 0-8.6-7-15.3-15.3-15.3-4.8 0-8.8 2.1-11.8 5.6l-106.6 0c-2.7-3.5-6.7-5.6-11.5-5.6s-8.8 2.1-11.5 5.6l-106.1 0c-2.9-3.5-7-5.6-11.8-5.6-8.3 0-15.3 6.7-15.3 15.3 0 1.6 .5 3.5 1.1 4.8l-56 97.2c-5.4 2.4-9.1 7.5-9.1 13.7 0 .5 .3 1.1 .3 1.6L26.6 240.7c-7.2 1.3-12.6 7.5-12.6 15 0 7.2 5.1 13.4 12.1 15l55.2 95.4c-.5 1.6-.8 2.9-.8 4.8 0 7.2 5.1 13.4 12.1 14.7l51.7 89.7c-.5 1.6-1.1 3.5-1.1 5.4 0 8.6 7 15.3 15.3 15.3 4.8 0 8.8-2.1 11.5-5.4l106.9 0c2.7 3.2 7 5.4 11.5 5.4s8.8-2.1 11.5-5.4l107.1 0c2.7 2.9 6.7 4.8 11 4.8 8.6 0 15.3-7 15.3-15.3 0-1.6-.3-2.9-.8-4.3l51.7-90.3c7-1.3 12.1-7.5 12.1-14.7 0-1.6-.3-3.2-.8-4.8l54.9-95.4c7-1.3 12.3-7.5 12.3-15 0-7.2-5.1-13.4-11.8-14.7zm-397 209.7l-43.7-75.8 43.7 0 0 75.8zm0-83.8l-43.7 0c-.3-1.1-.8-2.1-1.3-3.2l45-47.4 0 50.6zm0-62.4l-50.4 53.3c-1.3-.5-2.7-1.3-4-1.6L43.7 259.8c.5-1.3 .5-2.7 .5-4s0-2.4-.3-3.5l52-90c2.7-.3 5.4-1.1 7.8-2.7l50.1 52 0 92.9zm0-102.3L108 154.8c1.3-2.1 2.1-4.8 2.1-7.8 0-.3-.3-.8-.3-1.1l43.9-15.8 0 72.1zm0-80.6l-43.7 15.8 43.7-75.5 0 59.7zm326.5 39.1l.8 1.3-35.4 167.1-63.8-67.2 98-101.5 .3 .3zM292.1 355.1l11.5 11.8-22.8 0 11.3-11.8zm-.3-11.3l-83.3-85.4 79.6-84.4 83 87.6-79.3 82.2zm5.4 5.9l79.3-82.2 67.5 71.3-5.9 28.1-124 0-16.9-17.1zM410.7 44.4c1.1 .5 2.1 1.1 3.5 1.3l57.9 100.7 0 .5c0 2.9 .8 5.6 2.1 7.8l-97.5 101.2-83-87.6 117.1-124zm-9.1-2.1l-113.6 120.3-57.1-60.3 166.3-60 4.3 0zm-123.5 0c2.7 2.7 6.2 4.3 10.2 4.3s7.5-1.6 10.2-4.3l75 0-148.4 53.6-50.9-53.6 103.9 0zM161.9 47.9l1.1-2.1c.9-.2 1.8-.5 2.7-.8l51.2 53.8-54.9 19.8 0-70.7zm0 79.3l60.8-22 59.7 63.2-79.6 84.1-41-42.1 0-83.3zm0 92.7l36.4 37.8-36.4 38.3 0-76.1zm0 87.9l42.1-44.5 82.8 86-17.1 17.7-107.7 0 0-59.2zm7 162.1c-1.6-1.6-3.5-2.7-5.9-3.5l-1.1-1.6 0-89.7 99.9 0-91.6 94.8-1.3 0zm129.9 0c-2.7-2.4-6.4-4.3-10.4-4.3s-7.8 1.9-10.4 4.3l-96.4 0 91.6-94.8 38.3 0 91.6 94.8-104.2 0zm120-11.8l-4.3 7.5c-1.3 .3-2.4 .8-3.5 1.3l-89.2-91.9 114.4 0-17.4 83zm12.9-22.2l12.9-60.8 22 0-34.8 60.8zm34.8-68.8l-20.4 0 4.6-21.2 17.1 18.2c-.5 .8-1.1 1.9-1.3 2.9zm66.2-107.4l-55.4 96.7c-1.3 .5-2.7 1.1-4 1.9l-20.6-22 34.6-163.9 45.8 79.3c-.3 1.3-.8 2.7-.8 4.3 0 1.3 .3 2.4 .5 3.7z\"]\n};\nvar faResearchgate = {\n prefix: 'fab',\n iconName: 'researchgate',\n icon: [448, 512, [], \"f4f8\", \"M0 32l0 448 448 0 0-448-448 0zM262.2 366.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6l0 46.4c0 23.5 6 21.2 25.8 23.9l0 8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1 .6-33.6 .8l0-8.1c15.5-2.9 22-1.3 22-23.9l0-109.4c0-22.6-6.4-21-22-23.9l0-8.1c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7l0 7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2l0-32.2c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7l0 26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8l-17.9 0 0-10.7 30.4 0c0 20.5 4.7 49.9-34 49.9zM168.6 276.1c-9.4 0-13.6-.3-20-.8l0-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"]\n};\nvar faSignalMessenger = {\n prefix: 'fab',\n iconName: 'signal-messenger',\n icon: [512, 512, [], \"e663\", \"M256 0c-13.3 0-26.3 1-39.1 3l3.7 23.7C232.1 24.9 244 24 256 24s23.9 .9 35.4 2.7L295.1 3C282.3 1 269.3 0 256 0zm60.8 7.3l-5.7 23.3c23.4 5.7 45.4 14.9 65.4 27.1l12.5-20.5c-22.1-13.4-46.4-23.6-72.2-29.9zm76.4 61.6c19.1 14 36 30.9 50.1 50.1l19.4-14.2C447 83.6 428.4 65 407.3 49.5L393.1 68.8zm81.7 54.2l-20.5 12.5c12.2 20 21.4 42 27.1 65.4l23.3-5.7c-6.3-25.8-16.5-50.1-29.9-72.2zm10.5 97.5c1.8 11.5 2.7 23.4 2.7 35.4s-.9 23.9-2.7 35.4l23.7 3.7c1.9-12.7 3-25.8 3-39.1s-1-26.3-3-39.1l-23.7 3.7zm-31 155.9l20.5 12.5c13.4-22.1 23.6-46.4 29.9-72.2l-23.3-5.7c-5.7 23.4-14.9 45.4-27.1 65.4zm8.2 30.8l-19.4-14.2c-14 19.1-30.9 36-50.1 50.1l14.2 19.4c21.1-15.5 39.8-34.1 55.2-55.2zm-86.1 47c-20 12.2-42 21.4-65.4 27.1l5.7 23.3c25.8-6.3 50.1-16.5 72.2-29.9l-12.5-20.5zM295.1 509l-3.7-23.7C279.9 487.1 268 488 256 488s-23.9-.9-35.4-2.7L216.9 509c12.7 1.9 25.8 3 39.1 3s26.3-1 39.1-3zm-94.1-27.6c-17.6-4.3-34.4-10.6-50.1-18.6l-7.8-4-32.8 7.7 5.5 23.4 24.3-5.7c17.4 8.9 35.9 15.8 55.3 20.5l5.7-23.3zM95.4 494.6L90 471.3 48.3 481c-10.4 2.4-19.7-6.9-17.3-17.3l9.7-41.6-23.4-5.5-9.7 41.6C1.2 486 26 510.8 53.8 504.4l41.6-9.7zm-50-92.9l7.7-32.8-4-7.8c-8-15.7-14.3-32.5-18.6-50.1L7.3 316.7C12 336.1 18.9 354.7 27.7 372l-5.7 24.3 23.4 5.5zM3 295.1l23.7-3.7C24.9 279.9 24 268 24 256s.9-23.9 2.7-35.4L3 216.9C1 229.7 0 242.7 0 256s1 26.3 3 39.1zm27.6-94.1c5.7-23.4 14.9-45.4 27.1-65.4L37.2 123.1c-13.4 22.1-23.6 46.4-29.9 72.2l23.3 5.7zm18.9-96.2l19.4 14.2c14-19.1 30.9-36 50.1-50.1L104.7 49.5C83.6 65 65 83.6 49.5 104.7zm86.1-47c20-12.2 42-21.4 65.4-27.1L195.2 7.3c-25.8 6.3-50.1 16.5-72.2 29.9l12.5 20.5zM256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256c0 36.4 9.4 70.7 25.8 100.5 1.6 2.9 2.1 6.2 1.4 9.4l-21.6 92.5 92.5-21.6c3.2-.7 6.5-.2 9.4 1.4 29.8 16.5 64 25.8 100.5 25.8z\"]\n};\nvar faXing = {\n prefix: 'fab',\n iconName: 'xing',\n icon: [384, 512, [], \"f168\", \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5L9.8 346c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3L26.4 134.4c-4.3-7.8 .3-14.1 8.5-14.1l65.1 0c7.3 0 13.3 4.1 18 12.2L162.7 210zM382.6 46.1l-144 253 0 .3 91.6 166.6c3.9 7.1 .2 14.1-8.5 14.1l-65.2 0c-7.6 0-13.6-4-18-12.2L146.1 299.4c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2l65.7 0c8 0 12.3 6.7 8.5 14.1z\"]\n};\nvar faSquareJs = {\n prefix: 'fab',\n iconName: 'square-js',\n icon: [448, 512, [\"js-square\"], \"f3b9\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6-39.1 0-64.4-18.6-76.7-43z\"]\n};\nvar faJsSquare = faSquareJs;\nvar faFonticons = {\n prefix: 'fab',\n iconName: 'fonticons',\n icon: [448, 512, [], \"f280\", \"M0 32l0 448 448 0 0-448-448 0zM187 172.9c-18.4 0-19 9.9-19 27.4l0 23.3c0 2.4-3.5 4.4-.6 4.4l67.4 0-11.1 37.3-55.7 0 0 112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1 0 25.1-130.7 0 0-25.7 21.3-2c5.2-.6 6.7-2.3 6.7-7.9l0-111.4c0-2.3-2.9-2.3-5.8-2.3l-22.2 0 0-37.4 28 0 0-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8l0-25.1 20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3l0-107.9c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5 80.2 0 0 151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6 0 25.1-102.6 0zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6 27.7 0 15.5-28 9.3 0 15.5 28 27.7 0 3.5 9.6-21.9 24.2z\"]\n};\nvar faUps = {\n prefix: 'fab',\n iconName: 'ups',\n icon: [384, 512, [], \"f7e0\", \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19l0-104-32.7 0 0 102.6c0 74.9 80.2 51.1 97.9 39l0-141.6-32.6 0 0 123zM4 74.8L4 295.7c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1l0-220.9C263.1 13.2 97.6 25.2 4 74.8zM362.1 295.7c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3l0-126.4c102.3-93.8 231.6-100 340.9-89.8l0 216.2zM152.5 188.3l0 212.8 32.7 0 0-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.9-104.4-65.6zm32.7 117.3l0-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4 .6 23.5-30.4 23-50.8 4.9l0 30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2 .6-20.3 30.6-20.5 48.5-2.2l0-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"]\n};\nvar faAmazonPay = {\n prefix: 'fab',\n iconName: 'amazon-pay',\n icon: [640, 512, [], \"f42c\", \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.6 20.2 83.3 35.8 127.4 46.3 20.8 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.2-6.6 111.1-21 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-3 2.7-6.2 5.2-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.5 7.9-49.6 13.8-75.1 17.6-17.6 2.7-35.4 4.3-53.2 4.8-.8 0-1.7 .2-2.5 .3l-21.1 0c-.8-.1-1.7-.2-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.8-33.7-2.5-50.4-5.3-27.4-4.5-54.3-11.5-80.4-20.9-53.7-19.4-103.1-48.9-145.6-87-1.8-1.6-3-3.8-4.4-5.7l0-2zM172 65.1l-4.3 .6c-13.8 1.7-26.8 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.4-.3-.9-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6l-11.5 0c-6.9 0-8.2 1.3-8.2 8.2l0 209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1 .1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3l0-72.4c1.1 .9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1 .5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107c-.1-.7 .1-1.3 .4-1.9s.8-1.1 1.3-1.4c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-.6-.3-1-.8-1.3-1.4s-.4-1.2-.4-1.9c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zM330.3 65.1c-1 .1-2 .3-2.9 .4-9.7 .4-19.4 1.8-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7 .1 3.3-.1 6.6 0 9.9 .1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4 .3 8.3 .2 16.6 .3 24.9 0 .5-.1 .9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.6-21.2-4.2-32-4.9-11.3-.6-22.5 .1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4 .5-.4 1-.8 1.6-1.1 .6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4 .1 10.9 .1 16.3 0 1.3 0 2.5-.5 3.4-1.4s1.4-2.1 1.5-3.3c.1-.9 .1-1.9 .1-2.8l0-106c0-4.3-.3-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9 .1-7.9 .1-11.9 .1zm35 127.7c0 .6-.1 1.2-.3 1.7s-.7 1-1.2 1.3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7 .6-11.4 .4-16.8-1.8-3-1.1-5.6-2.9-7.8-5.2s-3.7-5.1-4.6-8.1c-2-6.3-2-13.1-.1-19.4 2.5-8.3 8.4-13 16.4-15.6 8-2.4 16.5-3.2 24.8-2.2 8.4 .7 16.6 2.3 25 3.4 1.6 .2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zM625.2 322.2c-1-5-4.8-6.9-9.1-8.3-6.8-2.1-13.9-3.5-21-3.9-13.1-1.1-26.3-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 .9-2.7 2.1-3.7 3.5-.4 .6-.6 1.3-.7 1.9s0 1.4 .2 2.1c.4 1.5 2.1 1.9 3.6 1.8 .7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.9 .4 9.7 1.3 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4 .4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.8-.4 3.4-1.3 4.8-2.5 4.5-4.2 8.8-8.7 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6 .8-3.6 1.4-7.3 2.1-10.9l0-17.3zM493.1 199c-12.9-35.7-25.8-71.4-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5 .5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97 59.1 145.5 1.7 4.1 2.1 7.6 .2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5 1.3-10.2 1.7-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9 .1 5.5 2 8 7.4 8.9 5.6 1.1 11.2 1.8 16.9 2 17.1 .4 30.7-6.5 39.5-21.4 3.5-5.9 6.6-12 9.2-18.4 23.7-59.8 47.2-119.7 70.6-179.6 .7-1.8 1.3-3.6 1.6-5.5 .4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-1.7-.1-3.4 .3-4.7 1.3s-2.4 2.3-3 3.9c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"]\n};\nvar faPandora = {\n prefix: 'fab',\n iconName: 'pandora',\n icon: [384, 512, [], \"e7da\", \"M201.3 32L0 32 0 480 120.2 480c11.2 0 20.3-9.1 20.3-20.3l0-86.1 30.1 0c147.1 0 207.3-82.9 207.3-179.9 0-119.7-90.9-161.8-176.5-161.8z\"]\n};\nvar faOpenid = {\n prefix: 'fab',\n iconName: 'openid',\n icon: [448, 512, [], \"f19b\", \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2 0 246.7 82.5 187.2 191.7 173.9l0 43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103l0-340 68-33.2 0 384 .1 0zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8l0-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8 9.2 97.5z\"]\n};\nvar faVsco = {\n prefix: 'fab',\n iconName: 'vsco',\n icon: [512, 512, [], \"e7dd\", \"M357.6 256c0-27.1-10.6-52.5-29.7-71.7s-44.6-29.7-71.7-29.7l-.1 0c-27.1 0-52.6 10.6-71.7 29.7s-29.7 44.6-29.7 71.7c0 27.1 10.6 52.5 29.7 71.7 19.2 19.2 44.6 29.7 71.7 29.7l.1 0c27.1 0 52.6-10.6 71.7-29.7 19.2-19.2 29.7-44.6 29.7-71.7zM176.3 482.1c23 8.1 47 12.6 71.6 13.4l0-59.1c-17.1-.7-33.5-3.8-49-8.9l-22.6 54.6zm137-54.6c-15.5 5.1-32 8.2-49 8.9l0 59.1c24.6-.8 48.6-5.3 71.6-13.4l-22.6-54.6zM92.5 431.2c20.2 18.9 43.3 34 68.7 45l22.5-54.5c-18.3-7.9-35.1-18.8-49.8-31.9L92.5 431.2zm285.9-41.4c-14.6 13.2-31.4 24-49.8 31.9l22.5 54.5c25.4-11 48.4-26.1 68.7-45l-41.4-41.4zM145.4 378.2c13.6 12.1 29 21.9 45.8 29 18 7.6 37.1 12 56.7 12.9l0-46.8c-26.4-1.8-50.3-12.3-69.1-28.6l-33.4 33.4zm188-33.4c-18.8 16.3-42.7 26.8-69.1 28.6l0 46.8c19.6-.9 38.7-5.3 56.7-12.9 16.8-7.1 32.2-16.9 45.8-29l-33.4-33.4zM38.5 356.6c10.7 23.2 25 44.3 42.5 63.1l41.3-41.3c-12.4-13.4-22.9-28.6-30.9-45.2L38.5 356.6zm382.4-23.5c-8 16.6-18.5 31.9-30.9 45.2l41.3 41.3c17.5-18.7 31.8-39.9 42.5-63.1l-52.9-23.5zm-331-69c1.1 18.8 5.4 37.2 12.8 54.5 7.5 17.8 18 34 31.2 48.2l33.5-33.5c-16.4-18.8-26.9-42.8-28.7-69.2l-48.8 0zm283.7 0c-1.8 26.4-12.3 50.4-28.7 69.2l33.5 33.5c13.1-14.2 23.6-30.4 31.2-48.2 7.3-17.4 11.6-35.7 12.7-54.5l-48.7 0zm-357.1 0c.9 26.7 6.1 52.7 15.6 77.5L85 318.2c-6.4-17-10.3-35.1-11.3-54l-57.1 0zm422.1 0c-1 18.9-5 37.1-11.3 54l52.8 23.5c9.5-24.8 14.7-50.8 15.6-77.5l-57.1 0zM32.1 170.4c-9.5 24.8-14.7 50.8-15.6 77.5l57.1 0c1-18.9 5-37.1 11.3-54L32.1 170.4zm101.7-25.2c-13.1 14.2-23.6 30.4-31.2 48.2-7.3 17.4-11.6 35.7-12.8 54.5l48.8 0c1.8-26.4 12.3-50.4 28.7-69.2l-33.5-33.5zm211.1 33.5c16.4 18.8 26.9 42.8 28.7 69.2l48.7 0c-1.1-18.8-5.4-37.2-12.7-54.5-7.5-17.8-18-34-31.2-48.2l-33.5 33.5zm82.4 15.2c6.4 17 10.3 35.1 11.3 54l57.1 0c-.9-26.7-6.1-52.7-15.6-77.5l-52.8 23.5zM81 92.3C63.4 111 49.2 132.2 38.5 155.4l52.9 23.5c8-16.6 18.5-31.9 30.9-45.2L81 92.3zm309 41.3c12.4 13.4 22.9 28.6 30.9 45.2l52.9-23.5c-10.7-23.2-25-44.3-42.5-63.1L390 133.7zM248 91.8c-19.6 .9-38.7 5.3-56.7 12.9-16.8 7.1-32.2 16.9-45.8 29l33.4 33.4c18.8-16.3 42.7-26.8 69.1-28.6l0-46.7zm16.3 46.7c26.4 1.8 50.3 12.3 69.1 28.6l33.4-33.4c-13.6-12.1-29-21.9-45.8-29-18-7.6-37.1-12-56.7-12.9l0 46.7zM161.2 35.8c-25.4 11-48.4 26.1-68.7 45l41.4 41.4c14.7-13.2 31.4-24 49.8-31.9L161.2 35.8zM328.6 90.3c18.3 7.9 35.1 18.8 49.8 31.9l41.4-41.4c-20.2-18.9-43.3-34-68.7-45L328.6 90.3zM248 16.4c-24.6 .8-48.6 5.3-71.6 13.4l22.6 54.6c15.5-5.1 32-8.2 49-8.9l0-59.1zm16.3 59.1c17.1 .7 33.5 3.8 49 8.9l22.6-54.6c-23-8.1-47-12.6-71.6-13.4l0 59.1zM512.2 264.2l-.2 0C507.8 399 399.2 507.7 264.3 511.9l0 .1-16.3 0 0-.1C113.1 507.7 4.5 399 .2 264.1l-.2 0 0-16.3 .2 0C4.5 113 113.1 4.3 248 .1l0-.1 16.3 0 0 .1C399.2 4.3 507.8 113 512 247.9l.2 0 0 16.3z\"]\n};\nvar faGlobaleaks = {\n prefix: 'fab',\n iconName: 'globaleaks',\n icon: [448, 512, [], \"e85d\", \"M411.2 32.2c20.2 0 36.8 16.6 36.8 36.9l0 373.8c0 20.2-16.6 36.9-36.8 36.9l-94.4 0 28-79.4c3.1-8.8-1.6-18.7-10.4-21.8-1.6-.5-2.6-1-4.2-1s-3.6 0-5.2 .5c-5.2 1-9.9 5.2-11.9 10.9l-6.2 16.6 0-67.5c0-10.9-7.8-19.7-18.2-21.8l-7.2 0c-.5 0-1 0-1.6 .5-.5 0-1 .5-1.6 .5-2.6 1-5.2 2.6-7.2 4.1l0-4.1c0-5.7-2.6-10.4-5.7-14l-1-1c-1-1-2.6-2.1-4.2-2.6l0-26.5c0-5.2-4.1-9.3-9.3-9.3l-39.9 0c-6.7 0-11.4-7.3-8.3-13.5L283.1 84.1c14.5-31.1 45.6-51.4 80.4-51.9l47.7 0zm-166 0c17.6 0 30.1 16.1 28 32.2-2.6 3.6-4.7 7.8-6.2 10.9L186.6 241.5c-8.8 18.7 4.2 40 24.4 40l30.6 0 0 16.1c-7.8 3.1-13 10.9-13 19.7l0 3.6c-3.6-3.6-8.8-5.7-14.5-5.7-11.9 0-21.8 9.9-21.8 21.8l0 19.2-3.1 0c-9.3 0-17.1 7.8-17.1 17.1l0 105.9-95.4 0c-42 0-72.6-40.5-61.2-81.5 1-3.1 4.2-5.2 7.3-4.7l21.2 0c24.4 0 44.6-20.2 44.6-45.2l0-4.2c0-24.9-19.7-45.2-44.6-45.2-.5 0-1-.5-1-1l8.8-32.7c2.1-6.2-2.6-11.9-8.8-11.9l-33.2 0c-6.7 0-11.4-7.3-8.3-13.5L76.7 84.7c16.1-32.2 48.2-52.4 84-52.4l84.5 0zM133.7 144.4c-10.4 0-18.7 8.3-18.7 18.7 0 9.9 8.3 18.7 18.7 18.7 10.4 0 18.7-8.3 18.7-18.7s-8.3-18.7-18.7-18.7zm202.8 0a18.6 18.6 0 1 0 -.2 37.2 18.6 18.6 0 1 0 .2-37.2z\"]\n};\nvar faVenmo = {\n prefix: 'fab',\n iconName: 'venmo',\n icon: [640, 512, [], \"e85a\", \"M67.8 202.7c2.4 5 3.9 11 3.9 19.8 0 16.2-11.5 39.8-20.7 54.9l-9.9-79.7-41 3.9 18.8 112 46.9 0c20.5-26.9 45.8-65.3 45.8-94.8 0-9.3-1.9-16.6-6.3-23.7l-37.4 7.5zm113-7.1c-42.8 0-63.5 37-63.5 71.9 0 26.9 12.8 48.5 48.4 48.5 14 0 28.5-3 37.8-7.5l5-33.6c-13.2 6.7-23.3 9.3-33.9 9.3-9.7 0-17.1-5.2-17.1-18.3 22-.2 60-9.3 60-38.8 0-18.3-13.2-31.5-36.7-31.5l0 0zm-22.5 48.9c1.1-12.9 11-22 18.6-22 4.3 0 8 2.6 8 7.7 0 10.8-19 14.2-26.6 14.2l0 0zm150.2-48.9c-15.3 0-26.1 5.8-34.3 11.2l-.4-9.3-34.8 0-18.4 116.1 40.2 0 12.7-81.4c3.5-1.7 8.6-4.1 13.8-4.1 3.9 0 7.1 1.3 7.1 6.5 0 2.2-.7 6-.9 8l-11.2 71.1 40 0 12.3-77.5c.7-4.1 1.3-10.3 1.3-14.6 0-15.5-7.1-25.9-27.4-25.9zm183.2 0c-14.9 0-25.7 4.5-37.2 12.7-4.1-7.3-12.3-12.7-24.8-12.7-14.5 0-25.3 5.8-33.3 11.6l-1.1-9.7-34.4 0-18.4 116.1 40.2 0 12.8-81.4c3.5-1.7 8.6-4.1 13.8-4.1 3.9 0 7.1 1.3 7.1 7.1 0 1.5-.4 3.9-.6 5.8l-11.4 72.6 40 0 12.7-81.4c3.7-1.9 8.6-4.1 13.6-4.1 3.9 0 7.1 1.3 7.1 7.1 0 1.5-.4 3.9-.7 5.8l-11.4 72.6 40 0 12.3-77.5c.7-4.1 1.3-10.3 1.3-14.6 0-15.5-7.1-25.9-27.7-25.9l0 0zm102.2 0c-44.7 0-64.2 34.3-64.2 70.9 0 27.8 11.2 50 45.1 50 45.8 0 65-37.5 65-73.7 0-27.4-12.3-47.2-46-47.2zm-13.4 90c-7.1 0-10.1-6.7-10.1-17.5 0-14.2 3.2-42 19-42 7.1 0 9.5 6.5 9.5 15.9 0 14.2-3.5 43.5-18.4 43.5z\"]\n};\nvar faUbuntu = {\n prefix: 'fab',\n iconName: 'ubuntu',\n icon: [576, 512, [], \"f7df\", \"M469.2 75c0-20.1-8-39.3-22.2-53.5s-33.4-22.2-53.5-22.2-39.3 8-53.5 22.2-22.2 33.4-22.2 53.5c0 20.1 8 39.3 22.1 53.5s33.4 22.1 53.5 22.1 39.3-8 53.5-22.1 22.1-33.4 22.1-53.5l.1 0zm-315 165.7a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM57 346c18.6 46.9 51 87 93 115.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2-6.8-.9-13.3-2.1-19.5-3.4-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2l.1 .1zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2 33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6 15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6l.1 0zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3 16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7 3.6-16.7 11.1-32.3 21.8-45.5-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3 7.5 0 15 .8 22.4 2.3l-.1 0z\"]\n};\nvar faViacoin = {\n prefix: 'fab',\n iconName: 'viacoin',\n icon: [384, 512, [], \"f237\", \"M384 32l-64 0-80.7 192-94.5 0-80.8-192-64 0 48 112-48 0 0 48 68.5 0 13.8 32-82.3 0 0 48 102.8 0 89.2 208 89.2-208 102.8 0 0-48-82.3 0 13.8-32 68.5 0 0-48-48 0 48-112zM192 336l-27-64 54 0-27 64z\"]\n};\nvar faZhihu = {\n prefix: 'fab',\n iconName: 'zhihu',\n icon: [640, 512, [], \"f63f\", \"M170.5 148.1l0 217.5 23.4 0 7.7 26.4 42-26.4 49.5 0 0-217.5-122.7 0zm97.8 193.9l-27.9 0-27.9 17.5-5.1-17.5-11.9 0 0-170.3 72.8 0 0 170.3zM149.8 247.7l-52.3 0c1.7-27.1 2.2-51.6 2.2-73.5l51.2 0s2-22.6-8.6-22.3l-88.5 0c3.5-13.1 7.9-26.7 13.1-40.7 0 0-24.1 0-32.3 21.6-3.4 8.9-13.2 43.1-30.7 78.1 5.9-.6 25.4-1.2 36.8-22.2 2.1-5.9 2.5-6.7 5.1-14.5l28.9 0c0 10.5-1.2 66.9-1.7 73.4l-52.3 0c-11.7 0-15.6 23.6-15.6 23.6l65.6 0c-4.4 49.9-28 91.9-70.8 125.1 20.5 5.9 40.9-.9 51-9.9 0 0 23-20.9 35.6-69.3l54 64.9s7.9-26.9-1.2-40c-7.6-8.9-28.1-33.1-36.8-41.8L87.9 312c4.4-14 7-27.6 7.9-40.7l61.6 0s-.1-23.6-7.6-23.6l0 0zm412-1.6c20.8-25.6 45-58.6 45-58.6s-18.6-14.8-27.4-4.1c-6 8.2-36.8 48.2-36.8 48.2l19.2 14.4zM411.8 187c-9-8.2-25.9 2.1-25.9 2.1s39.5 55 41.1 57.4l19.5-13.7s-25.7-37.6-34.7-45.9l0 0 0 0zM640 258.4c-19.8 0-130.9 .9-131.1 .9l0-101c4.8 0 12.4-.4 22.8-1.2 40.9-2.4 70.1-4 87.8-4.8 0 0 12.2-27.2-.6-33.4-3.1-1.2-23.2 4.6-23.2 4.6s-165.2 16.5-232.4 18c1.6 8.8 7.6 17.1 15.8 19.6 13.3 3.5 22.7 1.7 49.2 .9 24.8-1.6 43.7-2.4 56.5-2.4l0 99.8-133.5 0s2.8 22.3 25.5 22.9l107.9 0 0 70.9c0 14-11.2 22-24.5 21.1-14.1 .1-26.1-1.1-41.7-1.8 2 4 6.3 14.4 19.3 21.8 9.9 4.8 16.2 6.6 26 6.6 29.6 0 45.7-17.3 44.9-45.3l0-73.3 122.4 0c9.7 0 8.7-23.8 8.7-23.8l0 0z\"]\n};\nvar faYandex = {\n prefix: 'fab',\n iconName: 'yandex',\n icon: [256, 512, [], \"f413\", \"M153.1 315.8L65.7 512 2 512 98 302.2C52.9 279.3 22.8 237.8 22.8 161.1 22.7 53.7 90.8 0 171.7 0l82.3 0 0 512-55.1 0 0-196.2-45.8 0zM198.9 46.5l-29.4 0c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8l29.4 0 0-223.4z\"]\n};\nvar faPixiv = {\n prefix: 'fab',\n iconName: 'pixiv',\n icon: [448, 512, [], \"e640\", \"M96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96L96 32zm77.7 217.3a60.1 60.1 0 1 0 120.3 0 60.1 60.1 0 1 0 -120.3 0zM119.1 387.8c-.3-.8-.5-1.7-.5-2.6l0-244.3c0-1.8 .7-3.6 2-4.9s3-2 4.9-2l16.9 0c1.2 0 2.3 .3 3.3 .8s1.9 1.3 2.5 2.3l14 21.8c19.7-15.6 44.5-25 71.6-25 63.6 0 115.2 51.6 115.2 115.2S297.5 364.5 233.8 364.5c-22 0-42.6-6.2-60.1-16.9l0 37.6c0 .9-.2 1.8-.5 2.6s-.9 1.6-1.5 2.2-1.4 1.1-2.2 1.5-1.7 .5-2.6 .5l-41.3 0c-.9 0-1.8-.2-2.6-.5s-1.6-.9-2.2-1.5-1.1-1.4-1.5-2.2z\"]\n};\nvar faOpenai = {\n prefix: 'fab',\n iconName: 'openai',\n icon: [512, 512, [], \"e7cf\", \"M196.4 185.8l0-48.6c0-4.1 1.5-7.2 5.1-9.2l97.8-56.3c13.3-7.7 29.2-11.3 45.6-11.3 61.4 0 100.4 47.6 100.4 98.3 0 3.6 0 7.7-.5 11.8L343.3 111.1c-6.1-3.6-12.3-3.6-18.4 0L196.4 185.8zM424.7 375.2l0-116.2c0-7.2-3.1-12.3-9.2-15.9L287 168.4 329 144.3c3.6-2 6.7-2 10.2 0L437 200.7c28.2 16.4 47.1 51.2 47.1 85 0 38.9-23 74.8-59.4 89.6l0 0zM166.2 272.8l-42-24.6c-3.6-2-5.1-5.1-5.1-9.2l0-112.6c0-54.8 42-96.3 98.8-96.3 21.5 0 41.5 7.2 58.4 20L175.4 108.5c-6.1 3.6-9.2 8.7-9.2 15.9l0 148.5 0 0zm90.4 52.2l-60.2-33.8 0-71.7 60.2-33.8 60.2 33.8 0 71.7-60.2 33.8zm38.7 155.7c-21.5 0-41.5-7.2-58.4-20l100.9-58.4c6.1-3.6 9.2-8.7 9.2-15.9l0-148.5 42.5 24.6c3.6 2 5.1 5.1 5.1 9.2l0 112.6c0 54.8-42.5 96.3-99.3 96.3l0 0zM173.8 366.5L76.1 310.2c-28.2-16.4-47.1-51.2-47.1-85 0-39.4 23.6-74.8 59.9-89.6l0 116.7c0 7.2 3.1 12.3 9.2 15.9l128 74.2-42 24.1c-3.6 2-6.7 2-10.2 0zm-5.6 84c-57.9 0-100.4-43.5-100.4-97.3 0-4.1 .5-8.2 1-12.3l100.9 58.4c6.1 3.6 12.3 3.6 18.4 0l128.5-74.2 0 48.6c0 4.1-1.5 7.2-5.1 9.2l-97.8 56.3c-13.3 7.7-29.2 11.3-45.6 11.3l0 0zm127 60.9c62 0 113.7-44 125.4-102.4 57.3-14.9 94.2-68.6 94.2-123.4 0-35.8-15.4-70.7-43-95.7 2.6-10.8 4.1-21.5 4.1-32.3 0-73.2-59.4-128-128-128-13.8 0-27.1 2-40.4 6.7-23-22.5-54.8-36.9-89.6-36.9-62 0-113.7 44-125.4 102.4-57.3 14.8-94.2 68.6-94.2 123.4 0 35.8 15.4 70.7 43 95.7-2.6 10.8-4.1 21.5-4.1 32.3 0 73.2 59.4 128 128 128 13.8 0 27.1-2 40.4-6.7 23 22.5 54.8 36.9 89.6 36.9z\"]\n};\nvar faSith = {\n prefix: 'fab',\n iconName: 'sith',\n icon: [448, 512, [], \"f512\", \"M0 32l69.7 118.8-58.9-11.5 69.8 91c-3 17-3 34.4 0 51.4l-69.8 91 58.9-11.5-69.7 118.8 118.8-69.7-11.5 58.9 91-69.8c17 3 34.5 3 51.5 0l91 69.8-11.5-58.9 118.7 69.7-69.7-118.8 58.9 11.5-69.8-91c3-17 3-34.4 0-51.4l69.8-91-58.9 11.5 69.7-118.8-118.7 69.7 11.5-58.9-91.1 69.9c-8.5-1.5-17.1-2.3-25.7-2.3s-17.2 .8-25.7 2.3L107.2 42.8 118.8 101.7 0 32zM224 380.2a124.2 124.2 0 1 1 0-248.4 124.2 124.2 0 1 1 0 248.4zm0-211.8a87.6 87.6 0 1 0 0 175.1 87.6 87.6 0 1 0 0-175.1z\"]\n};\nvar faJulia = {\n prefix: 'fab',\n iconName: 'julia',\n icon: [640, 512, [], \"e852\", \"M124 406.5c0 16.1-1.8 29.1-5.4 39s-8.8 17.6-15.5 23.1-14.7 9.1-24.1 11-19.8 2.8-31.2 2.8c-15.5 0-27.3-2.4-35.5-7.3S0 464.5 0 457.7c0-5.6 2.3-10.4 6.9-14.3s10.8-5.8 18.5-5.8c5.8 0 10.4 1.6 13.9 4.7s6.3 6.2 8.6 9.3c2.6 3.4 4.8 5.6 6.5 6.8s3.4 1.7 4.8 1.7c3.1 0 5.4-1.8 7-5.4s2.4-10.7 2.4-21.2l0-198.7 55.4-15.2 0 186.9zm78.9-181.6l0 127.9c0 3.6 .7 6.9 2.1 10s3.3 5.8 5.7 8.1 5.2 4.1 8.5 5.4 6.7 2.1 10.4 2.1c4.2 0 8.9-2.3 14.7-6.4 9.2-6.4 14.7-10.9 14.7-16.1l0-131 55.1 0 0 181.6-55.1 0 0-16.9c-7.3 6.1-15 11-23.2 14.7s-16.2 5.6-23.9 5.6c-9 0-17.4-1.5-25.1-4.5s-14.5-7-20.3-12.2-10.4-11.2-13.7-18.1c-3.3-6.9-5-14.3-5-22.2l0-127.9 55.1 0zM391.4 406.5l-54.9 0 0-254.6 54.9-15.2 0 269.8zm22.9-171.7l55.1-15.2 0 186.9-55.1 0 0-171.7zm170.3 77.9c-5.3 2.3-10.7 4.9-16.1 7.9s-10.3 6.2-14.7 9.8-8 7.3-10.8 11.4-4.1 8.2-4.1 12.6c0 3.4 .4 6.6 1.3 9.8s2.1 5.8 3.8 8.1 3.4 4.1 5.3 5.4 4 2.1 6.3 2.1c4.5 0 9.1-1.4 13.7-4.1s9.7-6.2 15.4-10.4l0-52.5zM640 406.5l-55.4 0 0-14.5c-3.1 2.6-6 5-8.9 7.1s-6.2 4.1-9.8 5.7-7.7 2.9-12.2 3.8c-4.5 .9-9.8 1.3-15.9 1.3-8.4 0-15.9-1.2-22.6-3.6-6.7-2.4-12.4-5.7-17-9.9s-8.3-9.1-10.8-14.9c-2.5-5.7-3.8-12-3.8-18.7 0-6.9 1.3-13.2 4-18.9 2.7-5.6 6.3-10.7 10.9-15.2 4.6-4.5 9.9-8.5 16.1-12.1s12.7-6.8 19.7-9.8 14.3-5.7 21.9-8.2 15.1-4.9 22.5-7.1l6-1.5 0-17.9c0-11.6-2.2-19.8-6.6-24.7s-10.4-7.3-17.8-7.3c-8.7 0-14.8 2.1-18.1 6.3s-5.1 9.3-5.1 15.2c0 3.4-.4 6.7-1.1 9.9-.7 3.2-2 6-3.7 8.5s-4.3 4.4-7.6 5.8c-3.3 1.5-7.5 2.2-12.5 2.2-7.7 0-14-2.2-18.9-6.6-4.8-4.4-7.3-10-7.3-16.8 0-6.3 2.1-12.1 6.4-17.5 4.3-5.4 10-10 17.3-13.9 7.3-3.9 15.6-6.9 25.1-9.2s19.6-3.4 30.2-3.4c13.1 0 24.3 1.2 33.7 3.5s17.2 5.7 23.3 10 10.6 9.6 13.5 15.7 4.4 13 4.4 20.6l0 136.1zM60 172.9a37.4 37.4 0 1 1 74.9 0 37.4 37.4 0 1 1 -74.9 0zM452.2 95a37.4 37.4 0 1 1 74.9 0 37.4 37.4 0 1 1 -74.9 0zm45 77.9a37.4 37.4 0 1 1 74.9 0 37.4 37.4 0 1 1 -74.9 0zm-89.9 0a37.4 37.4 0 1 1 74.9 0 37.4 37.4 0 1 1 -74.9 0z\"]\n};\nvar faNfcDirectional = {\n prefix: 'fab',\n iconName: 'nfc-directional',\n icon: [512, 512, [], \"e530\", \"M211.8 488.6c1.6 2.5 2.1 5.6 1.4 8.5-.6 2.9-2.4 5.5-4.9 7.1-2.6 1.6-5.6 2.1-8.6 1.5-61.4-13.9-115.6-49.9-152.2-101.2S-5.4 290.3 1.6 227.7c7-62.7 36.8-120.5 83.7-162.5 46.9-42 107.7-65.2 170.7-65.2 1.5 0 2.1 .3 4.3 .9 1.4 .6 1.8 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7 .5 1.4 .8 2.8 .8 4.3l0 101 24.5-25.9c1-1.1 2.2-2 3.6-2.6 1.3-.6 2.8-.9 4.3-1 1.5-.1 2.9 .2 4.3 .7s2.7 1.3 3.8 2.4c1 1 1.9 2.2 2.5 3.6 .6 1.3 1 2.8 1 4.3s-.2 3-.7 4.3c-.6 1.4-1.4 2.6-2.4 3.7l-44 46.6c-1.1 1.1-2.3 2-3.7 2.6-1.5 .6-3 .9-5.4 .9-.6 0-2.2-.3-3.6-.9s-2.7-1.5-3.7-2.6l-44.1-46.6c-2-2.2-3.1-5.1-3-8.1 0-3 1.3-6.7 3.5-7.9 2.2-2.1 5.1-3.2 8.1-3.1 3 .1 5.8 1.3 7.9 3.5l24.5 26 0-89.5c-56.4 2.8-109.8 25.8-150.5 65-40.6 39.1-65.7 91.7-70.6 147.9S34.4 348.1 67.7 393.7c32.4 45.5 82 77.5 137 89.9 2.9 .7 5.5 2.5 7.1 5zM171.4 126.1c-.8 1.3-1.9 2.4-3.1 3.2-20.5 13.9-37.2 32.6-48.8 54.5s-17.7 46.3-17.7 71.1 6.1 49.2 17.7 70.2c11.6 22.8 28.3 41.5 48.8 55.4 2.5 1.7 4.2 4.3 4.7 7.3 .6 2.9-.9 6-1.7 8.4-1.7 2.5-5.2 4.2-7.3 3.9-2.9 1.4-6 .8-8.4-.9-23.6-16-42.8-37.5-56.1-62.7-13.3-25.1-20.3-53.1-20.3-81.6 0-28.4 7-56.5 20.3-81.6 13.3-25.2 32.5-46.7 56.1-62.7 1.2-.8 2.6-1.4 4-1.8 1.5-.3 3-.3 4.5 0 1.4 .2 2.8 .8 4.1 1.6s2.3 1.9 3.2 3.1c.8 1.2 1.4 2.6 1.7 4.1s.3 3 0 4.4c-.3 1.5-.8 2.9-1.7 4.1zM340.9 383.5c.8-1.2 1.9-2.3 2.2-3.1l0-.1c21.3-14 38-32.7 49.6-54.6 11.5-21.8 17.5-46.2 17.5-70.9s-6-49.1-17.5-71c-11.6-22.7-28.3-40.5-49.6-54.5-.3-.8-1.4-1.9-2.2-3.1-.8-1.3-1.4-2.7-1.6-4.1-1.2-1.5-.3-3 0-4.4 .3-1.5 .9-2.9 1.7-4.1 .9-1.2 1.1-2.3 3.2-3.1 1.2-.8 2.6-1.3 4.1-1.6s2.9-.3 4.4 0 2.8 .9 4.1 1.8c23.4 16 42.7 37.5 55.9 62.6 13.3 25.1 19.4 53.1 19.4 81.5 0 28.5-6.1 56.5-19.4 81.6-13.2 25.1-32.5 46.6-55.9 62.6-1.3 .9-2.6 1.5-4.1 1.8s-2.9 .3-4.4 0-2.9-1.7-4.1-1.6c-2.1-.8-2.3-1.9-3.2-3.1-.8-1.2-1.4-2.6-1.7-4.1-.3-1.4-1.2-2.9 0-4.4 .2-1.4 .8-2.8 1.6-4.1zM312.3 6.3c56.2 12.7 106.4 44 142.7 88.7 30.4 37.6 49.6 83 55.3 131 5.6 48-2.4 96.7-23.2 140.3-20.9 43.6-53.6 80.5-94.5 106.3-40.9 25.7-88.2 39.4-136.6 39.4-1.5 0-2.9-.3-4.3-.9-1.4-.5-2.6-1.4-3.7-2.4-1.9-1.1-1.9-2.3-2.4-3.7-.6-1.4-.9-2.8-.9-4.3l0-99.2-24.5 26c-2.1 2.2-4.9 2.6-7.9 3.6-3 .1-5.9-1.1-8.1-4-2.2-1.2-3.5-4-3.5-7-.1-3 1-5.9 3-8.1l44.1-46.6c1.3-2.2 5.1-3.4 7.3-3.4 4 0 6.9 1.2 9.1 3.4l44 46.6c2.1 2.2 3.2 5.1 3.1 8.1s-1.4 5.8-3.5 7c-2.2 2.9-5.1 4.1-8.1 4-3-1-5.9-1.4-7.9-3.6l-24.5-25.9 0 87.5c56.4-2.8 109.8-25.8 150.5-65 40.7-40 65.8-91.7 70.7-147.9 4.8-57.1-10.8-112.3-44.1-157.9-33.3-45.6-82-77.5-137-89.9-1.5-.3-2.8-.9-4.1-1.8-1.2-.9-2.2-1.9-3-3.2-.8-1.2-2.2-2.6-1.6-4.1-.2-1.5-.2-3 .1-4.4 .4-1.4 1-2.8 1.8-4 .9-1.2 2-2.2 3.2-3 1.3-.8 2.7-1.3 4.1-1.6 1.5-.3 3-.2 4.4 .1zm40.8 249.8c0 31.4-17.5 61.1-49.3 83.5-2.1 1.5-4.8 2.3-7.4 2-2.7-.2-5.2-1.3-7-3.2l-70.1-69.8c-2.2-2.1-4.2-5-3.4-8 0-3 1.2-5.9 3.3-8 2.2-2.1 5-3.3 8-3.3s5.9 1.2 8 3.3l63.1 62.8c20.8-17.1 32.2-37.9 32.2-59.3 0-23.9-14.1-47-39.7-65.1-2.5-1.7-4.1-4.3-4.6-7.3-.5-2.9 .1-6 1.9-8.4 1.7-2.5 4.3-4.1 7.3-4.6 2.9-.5 6 .1 8.4 1.9 31.8 22.4 49.3 52.1 49.3 83.5zM216.7 341.5c-3 .5-6-.2-8.5-1.9-31.7-22.4-50.1-52.1-50.1-83.5s18.4-61.1 50.1-83.5c2.2-1.6 4.9-2.3 7.5-2.1 2.7 .3 5.1 1.4 7 3.3l70.1 69.8c2.1 2.1 3.3 5 3.3 8s-2 5.8-3.3 8c-2.1 2.1-5 3.3-7.9 3.3-3 0-6.8-1.2-8-3.3l-63.1-62.9c-20.9 17.3-32.2 38-32.2 59.4 0 23 14.1 47 39.7 65 2.4 1.8 4.1 4.4 4.6 7.4 .5 2.9-.2 5.9-1.9 8.4-1.7 2.4-4.4 4.1-7.3 4.6z\"]\n};\nvar faCreativeCommonsBy = {\n prefix: 'fab',\n iconName: 'creative-commons-by',\n icon: [512, 512, [], \"f4e7\", \"M322.9 194.4l0 101.4-28.3 0 0 120.5-77.1 0 0-120.4-28.3 0 0-101.5c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7l101.9 0c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-32.5-64.5a34.5 34.5 0 1 1 -69 .8 34.5 34.5 0 1 1 69-.8zM255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3z\"]\n};\nvar faUmbraco = {\n prefix: 'fab',\n iconName: 'umbraco',\n icon: [512, 512, [], \"f8e8\", \"M256.3 8a248 248 0 1 0 -.7 496 248 248 0 1 0 .7-496zm145 266c-.8 27.1-5.4 48.8-14 65s-23.1 27.9-43.5 35c-20.4 7.1-48.9 10.6-85.4 10.5l-4.6 0c-36.5 .1-65-3.3-85.4-10.5s-34.9-18.8-43.5-35c-8.6-16.2-13.2-37.9-14-65-.7-10.2-.7-20.5 0-30.7 .4-14.7 1.6-29.3 3.6-43.9 1.9-13.4 3.6-22.6 5.4-32 1-4.9 1.3-6.4 1.8-8.4 .3-1.1 .9-2.1 1.8-2.8s2-1.1 3.1-1.1l.7 0 32 5c1.2 .2 2.2 .8 3 1.7s1.2 2.1 1.2 3.3c0 .3 0 .5 0 .8l-1.7 8.8c-1.6 8.8-3.2 20.1-4.8 33.7-1.7 14-2.5 28.1-2.6 42.2-.2 27 2.5 46.9 8.1 59.8 2.8 6.4 7.2 12 12.6 16.4s11.9 7.4 18.7 8.8c18.8 4 38.1 5.7 57.3 5.1l10.3 0c19.2 .6 38.5-1.2 57.3-5.2 6.8-1.4 13.2-4.5 18.6-8.8s9.7-10 12.5-16.4c5.7-12.9 8.4-32.9 8.1-59.8-.1-14.1-1-28.2-2.6-42.1-1.7-13.6-3.3-24.8-4.9-33.7l-1.7-8.8c0-.3 0-.5 0-.8 0-1.2 .4-2.4 1.2-3.3s1.8-1.5 3-1.7l32-5 .8 0c1.1 0 2.2 .4 3.1 1.1s1.5 1.7 1.8 2.8c.6 2 .8 3.6 1.8 8.4 1.8 9.6 3.5 18.8 5.4 32 2 14.6 3.2 29.2 3.6 43.9 .7 10.2 .7 20.5 0 30.7l0 0z\"]\n};\nvar faHooli = {\n prefix: 'fab',\n iconName: 'hooli',\n icon: [640, 512, [], \"f427\", \"M144.5 352l38.3 .8c-13.2-4.6-26-10.2-38.3-16.8l0 16zm57.7-5.3l0 5.3-19.4 .8c36.5 12.5 69.9 14.2 94.7 7.2-19.9 .2-45.8-2.6-75.3-13.3zM611.1 231.5c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM582.1 352l57.9 0 0-110.5-57.9 0 0 110.5zm-73.7 0l57.9 0 0-195.3-57.9 27.3 0 168zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5l0-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9l0 40.4zM331.4 232.6c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1l0-20.7-22.5 10.6c-54.4-22.1-89-18.2-97.3 .1 0 0-24.9 32.8 61.8 110.8l0 73.7 57.9 0 0-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4l0-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6 0-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15l0 48.7c18 12.2 37.3 22.1 57.7 29.6l0-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9l0-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184l0 63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1L65.2 184zM291.7 304.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5l0-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9l0 40.4z\"]\n};\nvar faSquareGit = {\n prefix: 'fab',\n iconName: 'square-git',\n icon: [448, 512, [\"git-square\"], \"f1d2\", \"M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3-3.3 4.1-6.6 8.4-6.6 13.5 0 18.5 65.5 18.5 65.5-1.5 0-8.3-7.4-8.7-38.8-10.7l.1 0zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5 32.5 0 31.7-44.5 .7-44.5zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9s8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195l49.5 0 0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7 0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8 56.3 3.2 80.5 4.6 80.5 38.5 0 29.2-25.7 45.7-69.9 45.7-46 0-63.5-11.6-63.5-31.7 0-11.4 5.1-17.5 14-25.9-8.4-3.5-11.2-9.9-11.2-16.8 0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1 0-51.6 56.6-53.3 81.6-46.8l-.1 .2zM270.5 303.1l13 1.8 0 20.1-72.4 0 0-20.1c2.7-.4 5-.7 6.9-.9 9.9-1.2 10.1-1.3 10.1-6l0-74.7c0-4.4-.9-4.7-10.1-7.8-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6 52.6 0 0 105.5c0 4.1 .2 4.6 4.1 5.1l-.1 0zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2-30.2 0-41.7-12.2-41.7-40.9l0-66.6c0-.8 0-1.4-.2-1.8-.8-1.2-4.2-.7-19.6-.7l0-22.6c22.3-2.5 31.2-13.7 34-41.4l24.2 0c0 33.3-.6 38 .7 38.6 .3 .1 .7 0 1.3 0l35.8 0 0 25.4-37.8 0 0 61.6c-.2 6.3-.9 30.4 37.9 15.9l-.1 0z\"]\n};\nvar faGitSquare = faSquareGit;\nvar faOdnoklassniki = {\n prefix: 'fab',\n iconName: 'odnoklassniki',\n icon: [320, 512, [], \"f263\", \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9S255 269.2 255 269.2c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zm14.6-204.7a129.7 129.7 0 1 1 -259.4 .4 129.7 129.7 0 1 1 259.4-.4zm-193.4 .4a63.7 63.7 0 1 0 127.4-.4 63.7 63.7 0 1 0 -127.4 .4z\"]\n};\nvar faDrupal = {\n prefix: 'fab',\n iconName: 'drupal',\n icon: [384, 512, [], \"f1a9\", \"M272.3 108.1C236.5 72.5 202.5 38.4 192.4 0 182.4 38.4 148.1 72.5 112.4 108.1 58.8 161.7-1.9 222.4-1.9 313.4-4.3 420.7 80.8 509.6 188.1 512s196.2-82.8 198.5-190.1c.1-2.8 .1-5.6 0-8.5 0-91.1-60.8-151.7-114.3-205.3zM98 331.1c-5.9 7.5-11 15.6-15.2 24.2-.3 .7-.8 1.3-1.3 1.8s-1.2 .8-2 1l-1.7 0c-4.3 0-9.2-8.5-9.2-8.5-1.3-2-2.5-4.2-3.7-6.4l-.8-1.8c-11.2-25.7-1.5-62.3-1.5-62.3 4.8-17.8 12.7-34.7 23.2-49.9 6.4-9.6 13.5-18.9 21-27.7l9.2 9.2 43.5 44.4c.8 .9 1.3 2.1 1.3 3.3s-.5 2.4-1.3 3.3L114.1 312.3 98 331.1zm96.6 127.3c-12.9-.1-25.6-3.9-36.4-11s-19.4-17.1-24.6-28.9-7-24.9-5-37.7 7.6-24.7 16.2-34.4c14.2-16.9 31.5-33.5 50.3-55.3 22.3 23.8 36.9 40.1 51.2 58 1.1 1.4 2.1 2.9 3 4.4 7.8 11.1 12 24.4 12 38 0 8.8-1.7 17.4-5 25.5s-8.2 15.5-14.4 21.7-13.5 11.1-21.6 14.5-16.7 5.1-25.5 5.1l-.2 0zM320.7 351.6c-.4 1.4-1.2 2.6-2.3 3.6s-2.4 1.6-3.8 1.8l-1.3 0c-2.6-.9-4.9-2.7-6.3-5.1-11.6-17.5-24.9-33.9-39.5-49l-17.8-18.4-59.1-61.3c-12.4-11.5-24.2-23.6-35.4-36.3-.3-.5-.6-.9-.9-1.4-2-2.8-3.6-5.9-4.7-9.2l0-1.8c-.8-5-.4-10.1 1.2-15s4.4-9.2 8-12.7c11.4-11.4 23-23 33.8-34.9 12 13.3 24.8 26 37.4 38.6 25.8 24 49.1 50.5 69.6 79.1 17.3 24.5 26.7 53.8 27 83.8-.1 12.9-2.2 25.8-6 38.2z\"]\n};\nvar faBloggerB = {\n prefix: 'fab',\n iconName: 'blogger-b',\n icon: [448, 512, [], \"f37d\", \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8 .6-108.4 10-43.5 17.2-74.7 53.8-86.1 100.6-2.1 8.8-2.6 22.9-3.1 103.9-.6 101.5 .1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zM124.5 159.1c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4 .1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5 .2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zM316.3 358.9l-14.9 2.4-77.5 .9c-68.1 .8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"]\n};\nvar faInvision = {\n prefix: 'fab',\n iconName: 'invision',\n icon: [448, 512, [], \"f7b0\", \"M407.4 32L40.6 32C18.2 32 0 50.2 0 72.6L0 439.4C0 461.8 18.2 480 40.6 480l366.8 0c22.4 0 40.6-18.2 40.6-40.6l0-366.8C448 50.2 429.8 32 407.4 32zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9 .7l-25.8 103.3-45.1 0 8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3 .1-14.3 .9-14 23-104.1l-31.8 0 9.7-35.6 76.4 0c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4-32.3 0 9.7-35.6 68.8 0-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"]\n};\nvar faFacebookF = {\n prefix: 'fab',\n iconName: 'facebook-f',\n icon: [320, 512, [], \"f39e\", \"M80 299.3l0 212.7 116 0 0-212.7 86.5 0 18-97.8-104.5 0 0-34.6c0-51.7 20.3-71.5 72.7-71.5 16.3 0 29.4 .4 37 1.2l0-88.7C291.4 4 256.4 0 236.2 0 129.3 0 80 50.5 80 159.4l0 42.1-66 0 0 97.8 66 0z\"]\n};\nvar faCentos = {\n prefix: 'fab',\n iconName: 'centos',\n icon: [448, 512, [], \"f789\", \"M289.6 97.5l31.6 31.7-76.3 76.5 0-108.2 44.7 0zM127.2 129.2l76.3 76.5 0-108.2-44.7 0-31.6 31.7zm41.5-41.6l44.7 0 0 127.9 10.8 10.8 10.8-10.8 0-127.9 44.7 0-55.5-55.6-55.5 55.6zm26.2 168.1l-10.8-10.8-128.6 0 0-44.8-55.5 55.6 55.5 55.6 0-44.8 128.6 0 10.8-10.8zM274.2 235l107.9 0 0-44.8-31.6-31.7-76.3 76.5zm173.3 20.7l-55.5-55.6 0 44.8-127.7 0-10.8 10.8 10.8 10.8 127.7 0 0 44.8 55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5 15.3 0 0-15.3-90.3-90.5 31.6-31.7-79.4 0 0 78.7zM382.1 97.5l-78.5 0 31.6 31.7-90.3 90.5 0 15.3 15.3 0 90.3-90.5 31.6 31.7 0-78.7zM203.5 413.9l0-108.1-76.3 76.5 31.6 31.7 44.7 0 0-.1zM65.4 235l108.8 0-76.3-76.5-32.5 31.7 0 44.8zM382.1 335.2l-31.6 31.7-90.3-90.5-15.3 0 0 15.3 90.3 90.5-31.6 31.7 78.5 0 0-78.7zm0-58.8l-107.9 0 76.3 76.5 31.6-31.7 0-44.8zM321.2 382.2l-76.3-76.5 0 108.1 44.7 0 31.6-31.6zM97.9 352.9l76.3-76.5-108.8 0 0 44.8 32.5 31.7zm181.8 70.9l-44.7 0 0-127.9-10.8-10.8-10.8 10.8 0 127.9-44.7 0 55.5 55.6 55.5-55.6zM113.2 382.2l90.3-90.5 0-15.3-15.3 0-90.3 90.5-32.5-31.7 0 78.7 79.4 0-31.6-31.7z\"]\n};\nvar faScaleway = {\n prefix: 'fab',\n iconName: 'scaleway',\n icon: [448, 512, [], \"e859\", \"M243.4 117.3l-84.3 0c-18.5 2.1-32.7 17.5-33.4 36l0 121.9c0 8.2 3.2 15.3 8.5 20.7s12.5 8.6 20.6 8.6c16 0 29.2-13.2 29.2-29.2l0-77.4c0-12.1 10-22.1 22.1-22.1l38.1 0c8.2 0 15.3-3.2 20.6-8.6s8.5-12.8 8.5-21c0-16-13.9-28.9-29.9-28.9zM205.3 395.4l84.3 0c18.5-2.1 32.7-17.5 33.4-36l0-121.9c0-8.2-3.2-15.3-8.5-20.7s-12.5-8.6-20.6-8.6c-16 0-29.2 13.2-29.2 29.2l0 77.4c0 12.1-10 22.1-22.1 22.1l-38.1 0c-8.2 0-15.3 3.2-20.6 8.6s-8.5 12.8-8.5 21c.4 16 13.9 28.9 29.9 28.9zM104.3 0L257.6 0c101 0 182.5 81.6 182.1 182.9l0 242.8c-4.6 46-42 82.4-88.2 86.3L190 512C89.3 512 7.5 430 7.5 329.1L7.5 97c0-53.5 43.4-97 96.8-97zM381.7 182.9c0-68.5-55.9-124.4-124.2-124.4l-153 0C83.3 58.5 66.2 75.6 66.2 97l0 232.1c0 68.8 55.5 124.4 124.2 124.4l158.7 0c16.7-2.1 29.9-15 32.7-31.4l0-239.2z\"]\n};\nvar faCcAmazonPay = {\n prefix: 'fab',\n iconName: 'cc-amazon-pay',\n icon: [576, 512, [], \"f42d\", \"M124.7 201.8c.1-11.8 0-23.5 0-35.3l0-35.3c0-1.3 .4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5 .9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5 .9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8 .1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM368.5 103.9c.4 1.7 .9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4 .2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9 .9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3 .1 4.6 1.6 6.7 6.2 7.5 4.7 .8 9.4 1.6 14.2 1.7 14.3 .3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5 .6-1.5 1.1-3 1.3-4.6 .4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5 .4-.3 .8-.6 1.4-1 .5 3.2 .9 6.2 1.5 9.2 .5 2.6 2.1 4.3 4.5 4.4 4.6 .1 9.1 .1 13.7 0 2.3-.1 3.8-1.6 4-3.9 .1-.8 .1-1.6 .1-2.3l0-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1l-10 0c-.8 .1-1.6 .3-2.5 .3-8.2 .4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5 .1 2.8-.1 5.6 0 8.3 .1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4 .8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7 .3 6.9 .2 13.9 .3 20.8 0 .4-.1 .7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9 .1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9l0 175.3c0 .8 0 1.7 .1 2.5 .2 2.5 1.7 4.1 4.1 4.2 5.9 .1 11.8 .1 17.7 0 2.5 0 4-1.7 4.1-4.1 .1-.8 .1-1.7 .1-2.5l0-60.7c.9 .7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2l-7 0c-1.2 .2-2.4 .3-3.6 .5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6l-9.7 0c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6 .7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1l0 1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4 .7 0 1.4 .2 2.1 .3l17.7 0c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zM544 311.3c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2 .8-2.4 1.8-3.1 3-.6 .9-.7 2.3-.5 3.4 .3 1.3 1.7 1.6 3 1.5 .6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1 .3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7 .3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3 .8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6 .7-3 1.2-6.1 1.7-9.1 .2-4.7 .2-9.6 .2-14.5z\"]\n};\nvar faEbay = {\n prefix: 'fab',\n iconName: 'ebay',\n icon: [640, 512, [], \"f4f4\", \"M606.5 189.5l-54.8 109.9-54.9-109.9-37.5 0 10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1l33.7 0c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33l0 3.4c-12.7 0-28 .1-41.7 .4-42.4 .9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2l0-80.6-32.1 0 0 169.5c0 10.3-.6 22.9-1.1 33.1l31.5 0c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6 .3 13.3 1.1 20.2l29.8 0c-.7-8.2-1-17.5-1-26.8l0-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1 35.9 0 99.2-194.8-34 0zM244.2 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6l0 3.3zM33.2 268.1l128.8 0 0-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1l-33.1 0c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4l-94.4 0c6.9-56.6 92.1-54.7 94.4 0z\"]\n};\nvar faContao = {\n prefix: 'fab',\n iconName: 'contao',\n icon: [512, 512, [], \"f26d\", \"M45.4 305c14.4 67.1 26.4 129 68.2 175L34 480c-18.7 0-34-15.2-34-34L0 66C0 47.3 15.2 32 34 32l57.7 0c-13.8 12.6-26.1 27.2-36.9 43.6-45.4 70-27 146.8-9.4 229.4zM478 32l-90.2 0c21.4 21.4 39.2 49.5 52.7 84.1L303.4 145.4c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6l52.1 0c18.7 0 34-15.2 34-34L512 66c0-18.8-15.2-34-34-34z\"]\n};\nvar faEllo = {\n prefix: 'fab',\n iconName: 'ello',\n icon: [512, 512, [], \"f5f1\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM399.8 293.2C383.3 358.5 323.8 404.8 256 404.8S128.7 358.5 112.2 293.2c-1.6-7.4 2.5-15.7 9.9-17.4s15.7 2.5 17.4 9.9c14 52.9 62 90.1 116.6 90.1s102.5-37.2 116.6-90.1c1.7-7.4 9.9-12.4 17.4-9.9 7.4 1.7 12.4 9.9 9.9 17.4z\"]\n};\nvar faSistrix = {\n prefix: 'fab',\n iconName: 'sistrix',\n icon: [448, 512, [], \"f3ee\", \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9-91.9-.1-166.6 75.7-166.6 168.8S74.7 369.8 166.5 369.8c39.8 0 76.3-14.2 105-37.9L417.5 480 448 449zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71 294.6 129.3 294.6 200.9 237.2 330.8 166.5 330.8z\"]\n};\nvar faPeriscope = {\n prefix: 'fab',\n iconName: 'periscope',\n icon: [448, 512, [], \"f3da\", \"M370 63.6c-38.6-41-89.5-63.6-143.4-63.6-114.7 0-208.1 96.2-208.1 214.4 0 75.1 57.8 159.8 82.7 192.7 36.6 48.4 91.4 104.9 125.4 104.9 41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3 .1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8l0 .4c0 24.5 20.1 44.4 44.8 44.4s44.8-19.9 44.8-44.4c0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"]\n};\nvar faExpeditedssl = {\n prefix: 'fab',\n iconName: 'expeditedssl',\n icon: [512, 512, [], \"f23e\", \"M256 43.4a212.6 212.6 0 1 0 0 425.2 212.6 212.6 0 1 0 0-425.2zM158.6 176.3c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4l0 26.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-26.6c0-82.1-124-82.1-124 0l0 26.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-26.6 .2 0zM397.7 380c0 9.7-8 17.7-17.7 17.7l-248 0c-9.7 0-17.7-8-17.7-17.7l0-141.7c0-9.7 8-17.7 17.7-17.7l248 0c9.7 0 17.7 8 17.7 17.7l0 141.7zm-248-137.3l0 132.9c0 2.5-1.9 4.4-4.4 4.4l-8.9 0c-2.5 0-4.4-1.9-4.4-4.4l0-132.9c0-2.5 1.9-4.4 4.4-4.4l8.9 0c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4l0 31.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 17.7a230.3 230.3 0 1 1 0 460.6 230.3 230.3 0 1 1 0-460.6z\"]\n};\nvar faNapster = {\n prefix: 'fab',\n iconName: 'napster',\n icon: [512, 512, [], \"f3d2\", \"M306.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5l100.7 0zm44-199.6c20-16.9 43.6-29.2 69.6-36.2l0 161.2c0 219.4-328 217.6-328 .3l0-161.6c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zM141.5 115.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9 .1-6.3-4-13.9-8.2-20.4-11.4zM51.8 93.2l0 69.3c-58.4 36.5-58.4 121.1 .1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7 .2-158.2l0-69.2c-17.3 .5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5 .1-16.3-4.4-33.1-7-50.6-7.5zM267.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zM131.7 296.7c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zM300.8 420.1c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"]\n};\nvar faDelicious = {\n prefix: 'fab',\n iconName: 'delicious',\n icon: [448, 512, [], \"f1a5\", \"M446.6 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5l-352 0C21.6 32 .1 53.5 .1 80l0 352c0 4.1 .5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5l352 0c26.5 0 48-21.5 48-48l0-352.1c-.1-4.1-.6-8.2-1.6-12zM416.1 432c0 8.8-7.2 16-16 16l-176 0 0-192-192 0 0-176c0-8.8 7.2-16 16-16l176 0 0 192 192 0 0 176z\"]\n};\nvar faGuilded = {\n prefix: 'fab',\n iconName: 'guilded',\n icon: [448, 512, [], \"e07e\", \"M443.9 64L5 64c0 103.3 22.2 180.1 43.4 222.4 64.1 127.8 176 161.6 177.3 161.6 55.7-20.5 104.5-56.3 140.6-103.5 25.9-33.9 53.1-87.2 65.9-145.8l-259.9 0c4.1 36.4 22.2 67.9 45.1 86.9l88.6 0c-17 28.2-48.2 54.4-80.5 69.5-31.2-13.3-69.1-46.5-96.5-98.4-26.7-53.8-27.1-105.9-27.1-105.9l336.1 0c4-28.8 5.9-57.9 5.9-86.9z\"]\n};\nvar faObsidian = {\n prefix: 'fab',\n iconName: 'obsidian',\n icon: [384, 512, [], \"e879\", \"M142.3 320.3c36.1-8.2 70.3-11 101.3 .7 31.8 11.9 61.7 39.6 86.7 96-8.1 17.7-12.4 36.9-14.7 53.8-3.1 22.9-25.4 40.7-47.7 34.6-31.7-8.7-68.3-22.3-101.3-24.9-4.4-.3-50.6-3.8-50.6-3.8-1.7-.1-3.4-.4-5.1-.8 31.5-64.2 38.2-115.1 31.3-155.4zM55 219.5c22.3 14.8 49.5 37.8 64.1 73.6 16.1 39.4 17.8 95.7-21.6 176.1-1-.8-2.1-1.7-3-2.7L7.4 376.8c-9.5-9.8-12.1-24.4-6.5-36.9 .6-1.3 44.6-98.3 54.1-120.4zm264.3-91.3c4.9 6.2 7.4 14 7.4 21.9 .1 20.8 1.8 63.6 13.3 91.2 11.2 26.8 31.8 55.8 42.5 70 4.1 5.5 4.8 12.9 1.3 18.7-7.6 12.8-22.6 37.5-43.8 69.2-.3 .4-.6 .9-.8 1.3-25.2-52.2-55.9-80.7-90.4-93.6-9.6-3.6-19.5-6-29.4-7.3-17.8-45.8-23.2-79.7-22-106.4 1.2-27.4 9.2-47.8 18.2-66.3 8.9-18.1 19.8-35.9 24.9-55.7 3.2-12.5 4.2-25.8 1.7-40.9l77.1 98zM184.2 14.1c10.3-9.2 24.6-10.8 36.3-5.5 9.6 24.6 9.7 42.8 5.6 58.8-4.6 17.8-14.1 33-23.9 52.8-9.6 19.5-18.4 42-19.7 72.3-1.2 27.9 4.1 61.9 20.4 105.8-21-.6-42.5 2.6-63.7 7.4-1.7-6.4-3.8-12.4-6.1-18.2-17.3-42.2-49.9-67.9-74.1-83.3 3.1-18.7 8.2-55.4 11.6-77.5 1.2-7.6 4.9-14.6 10.7-19.8L184.2 14.1z\"]\n};\nvar faXbox = {\n prefix: 'fab',\n iconName: 'xbox',\n icon: [512, 512, [], \"f412\", \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39-27.9-18.2-34.2-25.7-34.2-40.6 0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5c-16.9-80-67.5-130.3-74.6-130.3-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8 42.4 53.3 102.2 139.4 122.9 202.3 6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43c47.7-2.5 109.7 34.5 114.3 35.4 .7 .1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"]\n};\nvar faUntappd = {\n prefix: 'fab',\n iconName: 'untappd',\n icon: [640, 512, [], \"f405\", \"M401.5 49.9C321.7 210 316.9 202.4 313.6 223.1l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.8 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4L169.1 198.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1 .6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4 .9-2.5 4.4-2.3 7.4 .1 2.8-2.3 3.6-6.5 6.1zM230.3 36.4c3.4 .9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3 .5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5 .1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6 .3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620.2 406.7L471.4 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6 .5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4L494.8 497.2c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"]\n};\nvar faGooglePlusG = {\n prefix: 'fab',\n iconName: 'google-plus-g',\n icon: [640, 512, [], \"f0d5\", \"M386.3 228.5c1.8 9.7 3.1 19.4 3.1 32 0 109.8-73.6 187.5-184.4 187.5-106.1 0-192-85.9-192-192S98.9 64 205 64c51.9 0 95.1 18.9 128.6 50.3l-52.1 50c-14.1-13.6-39-29.6-76.5-29.6-65.5 0-118.9 54.2-118.9 121.3S139.5 377.3 205 377.3c76 0 104.5-54.7 109-82.8l-109 0 0-66 181.3 0 0 0zm185.4 6.4l0-55.7-56 0 0 55.7-55.7 0 0 56 55.7 0 0 55.7 56 0 0-55.7 55.7 0 0-56-55.7 0z\"]\n};\nvar faGithubAlt = {\n prefix: 'fab',\n iconName: 'github-alt',\n icon: [512, 512, [], \"f113\", \"M202.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM496 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3l48.2 0c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"]\n};\nvar faGetPocket = {\n prefix: 'fab',\n iconName: 'get-pocket',\n icon: [448, 512, [], \"f265\", \"M407.6 64l-367 0C18.5 64 0 82.5 0 104.6L0 239.8C0 364.5 99.7 464 224.2 464 348.2 464 448 364.5 448 239.8l0-135.2C448 82.2 430.3 64 407.6 64zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0-113.7-108.9-114.9-105.1-114.9-123.2 0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3s30.7 13.8 30.7 30.7c0 17.8-2.9 15.7-114.8 123.2z\"]\n};\nvar faGlide = {\n prefix: 'fab',\n iconName: 'glide',\n icon: [448, 512, [], \"f2a5\", \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM384 267c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8 .1 4.1-1.7 4.1-3.5z\"]\n};\nvar faBity = {\n prefix: 'fab',\n iconName: 'bity',\n icon: [512, 512, [], \"f37a\", \"M86.5 67.2c95.4-89.2 246.1-91.2 343.1 3.8 14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30-112.2-33.9-175.8-149.7-147.5-261 5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8s-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0l0 71.6c0 69.3 60.7 90.9 118 90.1 57.3 .8 118-20.8 118-90.1l0-71.6c0-19.6-32.5-21.8-32.5 0z\"]\n};\nvar faWpexplorer = {\n prefix: 'fab',\n iconName: 'wpexplorer',\n icon: [512, 512, [], \"f2de\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm480 0a224 224 0 1 0 -448 0 224 224 0 1 0 448 0zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94-14.6 0-50-100-48.9 100-14 0 51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zM259.1 177.4l68.6 29.4-29.4 68.3-68.3-29.1 29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"]\n};\nvar faMegaport = {\n prefix: 'fab',\n iconName: 'megaport',\n icon: [512, 512, [], \"f5a3\", \"M222.5 209.6l0 66.2 33.5 33.5 33.3-33.3 0-66.4-33.4-33.4-33.4 33.4zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM401.1 422.4l-26.1 19.2-26-19.2 0-65.5-33.4-33.4-33.4 33.4 0 65.5-26.2 19.2-26.1-19.2 0-65.5-33.4-33.4-33.5 33.4 0 65.5-26.1 19.2-26.1-19.2 0-87 59.5-59.5 0-87.9 59.5-59.5 0-75.6 26.1-19.2 26.1 19.2 0 75.6 59.5 59.5 0 87.6 59.7 59.7 0 87.1-.1 0z\"]\n};\nvar faLeetcode = {\n prefix: 'fab',\n iconName: 'leetcode',\n icon: [448, 512, [], \"e86a\", \"M235.4 9.3C246.5-2.5 265.1-3.2 277 7.9s12.5 29.8 1.4 41.6l-43 46c21.5 3.3 42.1 11.8 59.1 25.6l74.6 60.3c12.6 10.2 14.6 28.8 4.4 41.4s-28.7 14.6-41.4 4.4l-74.6-60.3c-26.2-21.1-71.9-18.2-94.5 5.9L81 261c-21.5 23-19.1 60 5.6 84.2l91.2 89.4c24.9 24 65.6 24 90.1-.4l51.1-51c11.5-11.5 30.1-11.5 41.6 .1s11.4 30.2-.1 41.7l-51.1 51c-47.1 47.1-124 47.7-171.9 1.6l-92-90.2C-1.4 341.3-6 267.9 38 220.7L235.4 9.3zM411.7 273.2c16.2 0 29.4 13.2 29.4 29.5s-13.2 29.5-29.4 29.5l-216.9 0c-16.2 0-29.4-13.2-29.4-29.5s13.2-29.5 29.4-29.5l216.9 0z\"]\n};\nvar faMdb = {\n prefix: 'fab',\n iconName: 'mdb',\n icon: [576, 512, [], \"f8ca\", \"M17.4 160.4l-10.4 191.6 43.9 0 5.6-79.8 27.9 79.8 44.7 0 25.5-77.4 4.8 77.4 45.5 0-12.8-191.6-45.5 0-40.7 117.3-42.3-117.3-46.3 0zm281 0l-47.9 0 0 191.6 47.9 0s95 .8 94.2-95.8c-.8-94.2-94.2-95.8-94.2-95.8l0 0zm-1.2 146.5l0-102.1s46 4.3 46.8 50.6-46.8 51.5-46.8 51.5l0 0zm238.3-74.2c7.2-11.4 10-25 8-38.3-5.3-35.8-55.1-34.3-55.1-34.3l-51.9 0 0 191.6 45.5 0s87 4.8 87-63.8c0-43.1-33.5-55.1-33.5-55.1l0 0zm-51.9-31.9s13.6-1.6 16 9.6c1.4 6.7-4 12-4 12l-12 0 0-21.6zm-.1 109.5l.1-24.9 0-18.2 .1 0s41.6-4.7 41.2 22.4c-.3 25.7-41.3 20.7-41.3 20.7l0 0z\"]\n};\nvar faPage4 = {\n prefix: 'fab',\n iconName: 'page4',\n icon: [512, 512, [], \"f3d7\", \"M256 504C119 504 8 393 8 256S119 8 256 8c20.9 0 41.3 2.6 60.7 7.5L50.3 392 256 392 256 504zm0-143.6l0-213.6-149.4 213.6 149.4 0zM352 392l0 92.7c45.7-19.2 84.5-51.7 111.4-92.7L352 392zm57.4-138.2l-21.2 8.4 21.2 8.3 0-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9l0 7.7 16.2 0 0-10c0-5.9-2.3-10.6-8.2-10.6zM504 256c0 37.3-8.2 72.7-23 104.4l-129 0 0-333.1C441.3 64.8 504 153.1 504 256zM368.4 143.6l68.2 0 0-47.6-13.9 0 0 32.6-13.9 0 0-29.6-13.9 0 0 29.6-12.7 0 0-32.6-13.9 0 0 47.6 .1 0zm68.1 185.3l-26.5 0 0-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9l0 25.3 68.2 0 0-15-.1 0zm0-103l-68.2 29.7 0 12.4 68.2 29.5 0-16.6-14.4-5.7 0-26.5 14.4-5.9 0-16.9zm-4.8-68.5l-35.6 0 0 26.6 13.9 0 0-12.2 11 0c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"]\n};\nvar faTheRedYeti = {\n prefix: 'fab',\n iconName: 'the-red-yeti',\n icon: [512, 512, [], \"f69d\", \"M488.7 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9-9.1 4.4-17.6 10-25.3 16.5-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5 .5c-22-7.7-45.1-12.2-68.4-13.3-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2-1.8-.5c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27-3.3 8.1-3.5 17.1-.5 25.3 3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0l-3.7 0 33 14.3c-20.2 18.9-36.1 41.9-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8-10.9 12.2-20.2 25.8-27.8 40.3-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7 .7 3.4 1.2 5.2 0 25.5 .4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5c-1.8-11.7-4.8-23.1-8.9-34.2-1.5-4.8-3.8-9.3-6.8-13.3l0 0zM398.5 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4c-9 .5-18 .5-27 0 12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9c-1.3-5-1.8-10.1-1.7-15.2 5.4 .5 8.8 3.4 9.3 10.1 .5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8 .9-.7 14.8l-2.5 0c-1.2-8.2-4.1-16-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2l20.3-11.8zm-267.4 42l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5 .5 20.9 1.2 5.2 1.7 10.6 2.5 16 2.5l.5-1.7-8.4-35.8 13.5 29c2.8-4.4 4.8-9.2 5.9-14.3 1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3c-2.6 8.3-4.7 16.8-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5c21.9-13.5 45.5-19.4 71.3-18.9l21.1 .5c-11.8 13.5-27.8 21.9-48.5 24.8-7.7 1.4-15.6 2.4-23.4 2.9l-.2-.5-2.5-1.2c-4.8-1-9.7-.3-14 2-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7 .5 1.2c2 .2 3.9 .5 6.2 .7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4 1.2 0c6.1-8.2 15.2-13.6 25.3-15.2l0-3c6.4 .5 13 1 19.4 1.2 6.4 0 8.4 .5 5.4 1.2 7.2 4 14.1 8.6 20.7 13.5 13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6 0 9.5-1 19-3 28.3-3.5 15.9-8.9 31.3-16 46l2.5 .5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2 .2-.2 .2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.3-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1l10.6-8.4c-8.8-3-18.2-3-28.3 .5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zM368 473.1c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3 11.1 9.2 22.9 17.5 35.4 24.8 3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1 8.7 7.3 15.8 16.4 20.7 26.6-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2 .7 89.5zM483.3 258.7l-2.5 .5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2-1.2 0-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2c-31.2 4.7-63 2.5-93.2-6.4-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4L29.3 284.8 7 307.1c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2 1.2-.7 2.4-1.3 3.7-1.7 .6-3.2 .4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7 .5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6l0-.5 1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8 0-2-5.4-4.2 10.1 0 5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5c11.1 .4 22.1 1.8 33 4.2l-23.6 2.5-1.2 3 26.6 23.1c9.9 9.9 18.9 20.6 27 32-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5-8.9-12.8zm-6.1-71.3l-3.9 13-14.3-11.8 18.2-1.2zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2c8.3 1.3 16.9 .4 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7c-3.5-5.7-8.4-10.5-14.3-13.8l0 0zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6l0-4.7-1.2 .5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5 .5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6 .3 9.3-1.1 9.3-14.8l-.5 0c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2 .5 1.1 1.3 2 2.2 2.8s2 1.2 3.2 1.4l0 0zm40.1-50.1l-2.5 .5 .5 3c9.1-.5 18.1 1.5 26.1 5.9-2.5-5.5-10-14.3-28.3-14.3l.5 2.5 3.7 2.4zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7c8.4-7.2 13.7-17.3 14.8-28.3 1.7-16-1.2-29.5-8.8-41.3l13-7.6c0-.3 0-.6-.1-.9s-.2-.6-.4-.8c-2.2-.9-4.6-1.2-7-.9s-4.6 1.2-6.5 2.6c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5-1.9 7.7-2.9 15.6-2.9 23.6-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3 2.5 8.2 3.5 16.8 3 25.3-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6-3.8 .4-7.6 .2-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9 .5 .5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6-1.7 11.2-1.2 22.7 1.7 33.7 .1 .5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2 .5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6l2.5 0-11.8-7.6-7.1 .5c-5.9 1.2-12.3 4.2-19.4 8.4l3.1-6.5z\"]\n};\nvar faJira = {\n prefix: 'fab',\n iconName: 'jira',\n icon: [512, 512, [], \"f7b1\", \"M498.5 241.7c-72.9-72.7-169.4-169.9-241.5-241.7-165.5 164.9-242.5 241.7-242.5 241.7-7.9 7.9-7.9 20.7 0 28.7 132.8 132.3 61.8 61.5 242.5 241.6 379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zM257 331.7l-76-75.7 76-75.7 76 75.7-76 75.7z\"]\n};\nvar faFedex = {\n prefix: 'fab',\n iconName: 'fedex',\n icon: [640, 512, [], \"f797\", \"M586 284.5l53.3-59.9-62.4 0-21.7 24.8-22.5-24.8-118.7 0 0-16 56.1 0 0-48.1-151.2 0 0 75.5-.5 0c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14l0-24.2-54.8 0 0-26.2 60 0 0-41.1-109 0 0 184.4 49 0 0-77.5 48.9 0c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7l-42 0c-14.7 20.9-45.8 8.9-45.8-14.6l85.5 0c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6l.5 0 0 11.9 212.2 0 22.1-25 22.3 25 64.4 0-54-60.5zM139.3 267.9c6.1-26.3 41.7-25.6 46.5 0l-46.5 0zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1l-94.4 0 0-166.5 95 0 0 30.2-56.1 0 0 33.9 55.5 0 0 28.1-56.1 0 0 44.7 56.1 0 0 29.6zm-45.9-39.8l0-24.4 56.1 0 0-44 50.7 57-50.7 57 0-45.6-56.1 0zm138.6 10.3l-26.1 29.5-38.1 0 45.6-51.2-45.6-51.2 39.7 0 26.6 29.3 25.6-29.3 38.5 0-45.4 51 46 51.4-40.5 0-26.3-29.5z\"]\n};\nvar faEvernote = {\n prefix: 'fab',\n iconName: 'evernote',\n icon: [384, 512, [], \"f839\", \"M121.1 132.2c1.6 22.3-17.6 21.6-21.6 21.6-68.9 0-73.6-1-83.6 3.3-.6 .2-.7 0-.4-.4L124.1 46.4c.4-.4 .6-.2 .4 .4-4.4 10-3.4 15.1-3.4 85.4zm79 308c-14.7-37.1 13-76.9 52.5-76.6 17.5 0 22.6 23.2 7.9 31.4-6.2 3.3-24.9 1.7-25.1 19.2 0 17.1 19.7 25 31.2 24.9 6 0 11.9-1.2 17.5-3.5s10.6-5.7 14.8-9.9 7.6-9.3 9.9-14.8 3.5-11.5 3.5-17.5l0-.1c0-11.6-7.8-47.2-47.5-55.3-7.7-1.5-65-6.3-68.4-50.5-3.7 16.9-17.4 63.5-43.1 69.1-8.7 1.9-69.7 7.6-112.9-36.8 0 0-18.6-15.2-28.2-58-3.4-15.7-9.3-39.7-11.1-62 0-18 11.1-30.4 25.1-32.2 81 0 90 2.3 101-7.8 9.8-9.2 7.8-15.5 7.8-102.8 1-8.3 7.8-30.8 53.4-24.1 6 .9 31.9 4.2 37.5 30.6L290 74.8c20.4 3.7 70.9 7 80.6 57.9 22.7 121.1 8.9 238.5 7.8 238.5-16 114.4-111.1 108.9-111.1 108.9-19-.2-54.2-9.4-67.3-39.8l0 0zM281 235.4c-1 1.9-2.2 6 .9 7 14.1 4.9 39.8 6.8 45.9 5.5 3.1-.2 3.1-4.4 2.5-6.6-3.5-21.8-40.8-26.5-49.2-5.9l0 0z\"]\n};\nvar faUsb = {\n prefix: 'fab',\n iconName: 'usb',\n icon: [640, 512, [], \"f287\", \"M633.5 256c0 3.1-1.7 6.1-4.5 7.5L539.9 317c-1.4 .8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8l0-35.6-230.7 0c25.3 39.6 40.5 106.9 69.6 106.9l26.7 0 0-26.8c0-5 3.9-8.9 8.9-8.9l89.1 0c5 0 8.9 3.9 8.9 8.9l0 89.1c0 5-3.9 8.9-8.9 8.9l-89.1 0c-5 0-8.9-3.9-8.9-8.9l0-26.7-26.7 0c-75.4 0-81.1-142.5-124.7-142.5l-100.3 0c-8.1 30.6-35.9 53.5-69 53.5-39.3-.1-71.3-32.1-71.3-71.4s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4 40.1-89.1 58.1-82.1 108.9-82.1 7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6l-29.8 0c-29.1 0-44.3 67.4-69.6 106.9l302.1 0 0-35.6c0-3.3 1.7-6.1 4.5-7.8s6.4-1.4 8.9 .3L629 248.8c2.8 1.1 4.5 4.1 4.5 7.2z\"]\n};\nvar faAngrycreative = {\n prefix: 'fab',\n iconName: 'angrycreative',\n icon: [640, 512, [], \"f36e\", \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2-47.3 115.4-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8 12.9-120.1-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8-32.8 2-59.7-20.9-56.4-58.2 2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6 32.1 110.6 8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7c-6.7-12.4-14.4-16.6-26.3-15.8-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4L145 326.3c14.2-.9 27.5-2.1 28.8-16.1zM194.9 381l5.8-60c-5 13.5-14.7 21.1-27.9 26.6L194.9 381zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zM160.2 261.4l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8 .3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1 .6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"]\n};\nvar faMizuni = {\n prefix: 'fab',\n iconName: 'mizuni',\n icon: [512, 512, [], \"f3cc\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM176 359.9c-31.4 10.6-58.8 27.3-80 48.2L96 136c0-22.1 17.9-40 40-40s40 17.9 40 40l0 223.9zM296 350c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1l0-214c0-22.1 17.9-40 40-40s40 17.9 40 40l0 214zm120 57.7c-21.2-20.8-48.6-37.4-80-48L336 136c0-22.1 17.9-40 40-40s40 17.9 40 40l0 271.7z\"]\n};\nvar faItchIo = {\n prefix: 'fab',\n iconName: 'itch-io',\n icon: [512, 512, [], \"f83a\", \"M71.9 34.8C50.2 47.7 7.4 96.8 7 109.7l0 21.3c0 27.1 25.3 50.8 48.2 50.8 27.6 0 50.5-22.8 50.5-50 0 27.1 22.2 50 49.8 50s49-22.8 49-50c0 27.1 23.6 50 51.2 50l.5 0c27.6 0 51.2-22.8 51.2-50 0 27.1 21.5 50 49 50s49.8-22.8 49.8-50c0 27.1 23 50 50.5 50 23 0 48.3-23.8 48.3-50.8l0-21.3c-.4-12.9-43.2-62.1-64.9-75-67.4-2.3-114.2-2.7-184-2.7S91.1 33.1 71.9 34.8zM204.2 169.2c-22 38.4-77.9 38.7-99.8 .2-13.2 23.1-43.2 32.1-56 27.7-3.9 40.2-13.7 237.1 17.7 269.2 80 18.7 302.1 18.1 379.8 0 31.6-32.3 21.3-232 17.7-269.2-12.9 4.4-42.9-4.6-56-27.7-22 38.5-77.8 38.1-99.8-.2-7.1 12.5-23 28.9-51.8 28.9-10.4 .3-20.8-2.2-29.9-7.3s-16.7-12.6-21.9-21.6l0 0zm-41.6 53.8c16.5 0 31.1 0 49.2 19.8 29.3-3 58.9-3 88.2 0 18.2-19.7 32.8-19.7 49.2-19.7 52.3 0 65.2 77.5 83.9 144.4 17.3 62.2-5.5 63.7-34 63.7-42.1-1.6-65.5-32.2-65.5-62.8-39.3 6.4-101.9 8.8-155.6 0 0 30.6-23.3 61.2-65.5 62.8-28.4-.1-51.2-1.6-33.9-63.7 18.7-67 31.6-144.4 83.9-144.4l0-.1zM256 270.8s-44.4 40.8-52.4 55.2l29-1.2 0 25.3c0 1.5 21.3 .2 23.3 .2 11.6 .5 23.3 1 23.3-.2l0-25.3 29 1.2c-8-14.5-52.4-55.2-52.4-55.2l.1 0z\"]\n};\nvar faWindows = {\n prefix: 'fab',\n iconName: 'windows',\n icon: [448, 512, [], \"f17a\", \"M0 93.7l183.6-25.3 0 177.4-183.6 0 0-152.1zM0 418.3l183.6 25.3 0-175.2-183.6 0 0 149.9zm203.8 28l244.2 33.7 0-211.6-244.2 0 0 177.9zm0-380.6l0 180.1 244.2 0 0-213.8-244.2 33.7z\"]\n};\nvar faStumbleupon = {\n prefix: 'fab',\n iconName: 'stumbleupon',\n icon: [512, 512, [], \"f1a4\", \"M502.9 266l0 69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3l0-70.2 34.3 16 51.1-15.2 0 70.6c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338l0-72 85.9 0zM278.2 207.8l34.3 16 51.1-15.2 0-35.6c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2l0 162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6l0-68.6-86 0 0 69.7c0 62 50.3 112.3 112.4 112.3 61.6 0 112.4-49.5 112.4-110.8l0-160.3c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7l0 30.9z\"]\n};\nvar faGoogle = {\n prefix: 'fab',\n iconName: 'google',\n icon: [512, 512, [], \"f1a0\", \"M500 261.8C500 403.3 403.1 504 260 504 122.8 504 12 393.2 12 256S122.8 8 260 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9c-88.3-85.2-252.5-21.2-252.5 118.2 0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9l-140.8 0 0-85.3 236.1 0c2.3 12.7 3.9 24.9 3.9 41.4z\"]\n};\nvar faDiscord = {\n prefix: 'fab',\n iconName: 'discord',\n icon: [576, 512, [], \"f392\", \"M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1 .1s-.6 .4-.8 .8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2c-41.3 7.1-81.6 19.6-119.7 37.1-.3 .1-.6 .4-.8 .7-76.2 113.8-97.1 224.9-86.9 334.5 0 .3 .1 .5 .2 .8s.3 .4 .5 .6c44.4 32.9 94 58 146.8 74.2 .4 .1 .8 .1 1.1 0s.7-.4 .9-.7c11.3-15.4 21.4-31.8 30-48.8 .1-.2 .2-.5 .2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6 .2-.9 .3-.5 .6-.7c3.1-2.3 6.2-4.7 9.1-7.1 .3-.2 .6-.4 .9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1 .7-.2 1-.2s.7 .2 .9 .4c2.9 2.4 6 4.9 9.1 7.2 .2 .2 .4 .4 .6 .7s.2 .6 .2 .9-.1 .6-.3 .9-.4 .5-.6 .6c-14.7 8.6-30 15.9-45.9 21.8-.2 .1-.5 .2-.7 .4s-.3 .4-.4 .7-.1 .5-.1 .8 .1 .5 .2 .8c8.8 17 18.8 33.3 30 48.8 .2 .3 .6 .6 .9 .7s.8 .1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2 .2-.2 .4-.4 .5-.6s.2-.5 .2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2zm195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2z\"]\n};\nvar faHackerNews = {\n prefix: 'fab',\n iconName: 'hacker-news',\n icon: [448, 512, [], \"f1d4\", \"M0 32l0 448 448 0 0-448-448 0zM21.2 229.2l-.2 0c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4zm218 53.9l0 100.9-31.4 0 0-102.7-79.8-153.3 37.3 0c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6l34.8 0-80.8 155.1z\"]\n};\nvar faEleventy = {\n prefix: 'fab',\n iconName: 'eleventy',\n icon: [640, 512, [\"11ty\"], \"e7d6\", \"M615.3 168.5c2.3 0 4.6 .7 6.6 2.2 1.9 1.4 3.1 3.3 3.8 5 1.4 3.3 1.8 7.3 1.8 11.3 0 2.2-.3 4.9-.7 7.6l0 .4-50.9 264.9 0 0c-4 22.1-8.5 39.4-13.6 51.7-5 12.1-10.9 21.6-18.6 27l0 0c-7.5 5.3-16.9 7.7-27.6 8l-3 0c-16 0-29.3-4.2-36.9-14.8-.1-.1-.1-.1-.2-.2-.1-.2-.3-.4-.5-.6l0 0c-1.8-2.4-2.5-5.2-2.9-7.4-.5-2.8-.7-6.1-.7-9.8 0-7.3 .6-13.5 2.1-18.2 1.4-4.4 4.8-10.4 12.2-10.4l1.3 .1c.2 0 .4 .1 .5 .1 .3 .1 .6 .1 .8 .2 .6 .1 1.3 .3 2.2 .6l7.6 2.2 .1 0 7.6 2.1c.9 .2 1.7 .4 2.2 .5 .4 .1 .6 .1 .7 .1 0 0 .1 0 .2-.1 .1-.1 .4-.2 .8-.6 .9-.9 2.2-2.6 3.6-5.7 2.6-5.8 4.2-14.7 4.2-27.4 0-.7-.3-3.4-1.3-8.9-.9-5.1-2.3-12.2-4.2-21.1l-56-232.9-.1-.4 0-.3c-.4-2.7-.7-5.3-.7-7.3 0-3.7 .4-7.5 1.7-10.6 .7-1.6 1.8-3.4 3.5-4.9 1.9-1.5 4.2-2.3 6.5-2.3l34.6 0c4.6 0 8.7 1.7 11.9 5l1.3 1.5c1.2 1.6 2 3.4 2.7 5.2 .9 2.4 1.5 5.1 2 8.1l30.4 161.2 23.8-160c.8-5.8 2.2-11.4 5.1-15.1 3-3.8 7.2-5.8 12-5.8l24 0zM375.1 34.6c2.6 0 5.1 .7 7.4 2.3 2.2 1.5 3.7 3.6 4.7 5.7 1.9 4 2.5 9.1 2.5 14.5l0 111.2c0 .1 0 .2 0 .3l32.4 0c2.5 0 5 .6 7.2 2.1 2.2 1.4 3.7 3.4 4.8 5.5 2 3.9 2.6 8.8 2.6 13.9l0 15.4c0 5-.6 9.8-2.6 13.7-1.1 2-2.6 4-4.8 5.4-2.2 1.4-4.7 2-7.1 2l-32.5 0 0 145.8c0 10.8 .7 19.5 2 26.2 1.4 6.9 3.1 10.9 4.7 12.9 1.2 1.5 2.2 2.5 3.1 3.2l2.2 1.4 .1 .1 2.9 .8c1.2 .2 2.6 .3 4.3 .3l20.3 0c4.5 0 8.9 1.7 11.8 5.8 2.6 3.6 3.3 8.1 3.3 12.2l0 17.2c0 4.5-.8 9.3-3.4 13.1-3 4.2-7.5 6-12.3 6l0 0-29.1 .1c-8 0-15-.6-21.2-1.7-6.7-1.3-13.4-4.1-20.1-8.1-7.2-4.4-13-10.3-17.5-17.8-4.5-7.5-7.9-17.5-10.5-29.5-2.6-12.2-3.9-26.6-3.9-43l0-144.9-13.4 0c-2.4 0-4.9-.6-7.1-2-2.2-1.4-3.7-3.4-4.8-5.4-2-3.9-2.6-8.7-2.6-13.7l0-15.4c0-5.1 .6-10 2.6-13.9 1.1-2.1 2.6-4 4.8-5.5 2.2-1.5 4.7-2.1 7.2-2.1l13.4 0 0-.6 5.2-111.2 0-.1 .3-3.9c.5-3.8 1.3-7.4 2.7-10.3 2.1-4.2 6-7.9 11.8-7.9l28.6 0zm-268 11.7c1.8 .3 3.6 .9 5.3 2.1 2.1 1.5 3.5 3.5 4.4 5.4 1.7 3.7 2.3 8.4 2.3 13.2l0 377.8c0 6.7-.6 12.6-2.4 17.1-.9 2.3-2.3 4.7-4.4 6.5-2.3 2-5.1 3-8.1 3l-43.7 0c-3 0-5.8-1.1-8.1-3.1-2.1-1.9-3.4-4.3-4.2-6.5-1.7-4.5-2.3-10.3-2.3-17l0-315.8c-4.8 1.2-8.7 2.2-11.5 2.9-1.9 .5-3.4 .8-4.4 1.1-.5 .1-.9 .2-1.2 .3-.1 0-.3 .1-.5 .1-.1 0-.2 0-.3 .1 0 0-.2 0-.3 0 0 0-.2 0-.4 0l0 0c-.1 0-.3 0-.4 0-.1 0-.2 0-.2 0-2.2 .1-4.5-.4-6.6-1.7-2.3-1.4-3.8-3.4-4.7-5.3-1.8-3.7-2.3-8.4-2.3-13l0-27.4c0-4.4 .7-8.8 2.6-12.4 2.1-3.9 5.5-6.6 9.8-7.6l75.5-19.5c1.4-.4 2.9-.5 4.4-.5l1.8 .1zm143.8-.5c1.8 .3 3.6 .9 5.2 2.1 2.1 1.5 3.5 3.5 4.4 5.4 1.7 3.7 2.2 8.4 2.2 13.2l0 377.8c0 6.7-.6 12.6-2.4 17.1-.9 2.3-2.3 4.7-4.4 6.5-2.3 2-5.1 3-8.1 3l-43.7 0c-3 0-5.8-1.1-8.1-3.1-2.1-1.9-3.4-4.3-4.2-6.5-1.7-4.5-2.3-10.3-2.3-17l0-315.8c-4.8 1.2-8.7 2.2-11.5 2.9-1.9 .5-3.4 .8-4.4 1.1-.5 .1-.9 .2-1.2 .3-.1 0-.3 .1-.5 .1-.1 0-.2 0-.3 .1-.1 0-.2 0-.3 0 0 0-.2 0-.4 0l0 0c-.1 0-.2 0-.3 0-.1 0-.2 0-.3 0-2.2 .1-4.5-.4-6.6-1.7-2.3-1.4-3.8-3.4-4.7-5.3-1.8-3.7-2.3-8.3-2.3-13l0-27.4c0-4.4 .7-8.7 2.6-12.4 2.1-3.9 5.5-6.6 9.8-7.6l75.4-19.4c1.4-.4 2.9-.5 4.4-.5l1.8 .1z\"]\n};\nvar fa11ty = faEleventy;\nvar faTeamspeak = {\n prefix: 'fab',\n iconName: 'teamspeak',\n icon: [576, 512, [], \"f4f9\", \"M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5 0 .2-.1 .3-.1 .5-39.3 16.2-66.8 54.8-66.8 99.8 0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5 15.7-41.8 40.4-79.6 72.3-110.7 1.8-1.6 4-2.6 6.3-3.1 37.2-11.5 76.7-13.3 114.8-5.2 119.3 25.1 198.6 138.2 181.7 258.8-8.4 62.6-38.6 112.7-87.7 151.4-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3 40.7 4.2 81.4 2.1 120.1-12.5 94-35.5 149.3-102.3 162.9-202.5 4.8-52.6-5.8-105.4-30.8-152-70.4-131.9-234.2-181.6-366-111.2-2.4 1.4-4.5 3.1-6.3 5.2l.1 0zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3 53.2-1 123.2-29.2 161.8-97.1 39.7-69.9 37.6-139.9-6.3-207.8-36.5-55.3-89.8-82.4-156.6-86.6 1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5 2.1 15.7-1 30.3-13.6 41.8-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7 29.3 54.3c5.2 11.5 4.2 19.8-6.3 28.2-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7-2.5 2.4-3.8 5.9-3.1 9.4 2.1 11.5-2.1 19.8-12.5 25.1-2.1 1-4.2 5.2-5.2 7.3l0-.1zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1 24 5.2 41.8-6.3 44.9-30.3 1-8.4 5.2-14.6 12.5-17.7 7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5-1.4-3-2.4-6.2-3.1-9.4-3.1-14.6-2.1-15.7 11.5-18.8 8.4-3.1 15.7-6.3 21.9-12.5 3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7-6.4-11.7-13-23.6-15.7-37.1-2.1-9.4-1-17.7 8.4-24 5.2-4.2 8.4-9.4 8.4-16.7-.4-10.1-1.5-20.3-3.1-30.3-6.3-37.6-23-68.9-51.2-95-5.2-4.2-9.4-6.3-16.7-4.2l-35.6 12.7 6 3.6c6.3 3.7 12.2 7.3 17 12.1 30.3 26.1 41.8 61.6 45.9 100.2 1 8.4 0 16.7-7.3 21.9-8.4 5.2-10.4 12.5-7.3 20.9 4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6-12.5 3.1-14.6 7.3-10.4 20.9 .6 1.5 1.4 2.8 2.1 4.2 2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4-7.3 4.2-11.5 9.4-11.5 17.7 0 12.5-7.3 19.8-18.8 24-3.8 1-7.6 1.5-11.5 1l-34.5-2.1 .1 .2z\"]\n};\nvar faSupple = {\n prefix: 'fab',\n iconName: 'supple',\n icon: [640, 512, [], \"f3f9\", \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7 .4 15.5 .6 23.4 .6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6 .2 23.3 .5-22.5-3.2-46.3-4.9-71-4.9-134.5 .4-243.4 52.6-243.3 116.7 .1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9S118.4 281 137.2 281c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6l0 3.9 14.2 0 0-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6l0 54.4c0 11.3-7.1 17.8-17.8 17.8s-17.8-6.5-17.8-17.7l0-54.5-15.8 0 0 55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9l0-55-15.7 0zm34.4 85.4l15.8 0 0-29.5 15.5 0c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8l-39.1 0 0 13.4 7.8 0 0 72zm15.8-43l0-29.1 12.9 0c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7l-12.6 0zm57 43l15.8 0 0-29.5 15.5 0c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8l-39.1 0 0 13.4 7.8 0 0 72zm15.7-43l0-29.1 12.9 0c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7l-12.6 0zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2l37.6 0c5.8 0 8.2-2.4 8.2-8.2l0-13-14.3 0 0 5.2c0 1.7-1 2.6-2.6 2.6l-18.6 0c-1.7 0-2.6-1-2.6-2.6l0-61.2c0-5.7-2.4-8.2-8.2-8.2l-15.4 0 0 13.4 5.2 0c1.7 0 2.6 1 2.6 2.6l0 61.2-.1 0zm63.4 0c0 5.8 2.4 8.2 8.2 8.2l38.7 0c5.7 0 8.2-2.4 8.2-8.2l0-13-14.3 0 0 5.2c0 1.7-1 2.6-2.6 2.6l-19.7 0c-1.7 0-2.6-1-2.6-2.6l0-20.3 27.7 0 0-13.4-27.7 0 0-22.4 19.2 0c1.7 0 2.6 1 2.6 2.6l0 5.2 14.2 0 0-13c0-5.7-2.5-8.2-8.2-8.2l-51.6 0 0 13.4 7.8 0 0 63.9 .1 0zm58.9-76l0 5.9 1.6 0 0-5.9 2.7 0 0-1.2-7 0 0 1.2 2.7 0zm5.7-1.2l0 7.1 1.5 0 0-5.7 2.3 5.7 1.3 0 2.3-5.7 0 5.7 1.5 0 0-7.1-2.3 0-2.1 5.1-2.1-5.1-2.4 0z\"]\n};\nvar faSquareTwitter = {\n prefix: 'fab',\n iconName: 'square-twitter',\n icon: [448, 512, [\"twitter-square\"], \"f081\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM351.3 199.3c0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3 .6 10.4 .8 15.8 .8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4l0-.8c8.7 4.9 18.9 7.9 29.6 8.3-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34 .2 2.8 .2 5.7 .2 8.5z\"]\n};\nvar faTwitterSquare = faSquareTwitter;\nvar faVim = {\n prefix: 'fab',\n iconName: 'vim',\n icon: [512, 512, [], \"e88a\", \"M303.3 54.5l0-12.3 4-3.7 7.9-7.2 3.5-3.2 168 0 15.1 15.1 0 38.9-3.5 3.6-80.9 82.9 86.9 86.9-91.2 91.2 8.9 0 7.6-8.3 1-.9c1.1-.8 2.5-1.2 3.9-1.2l28.9 0 1.5 .2c1.5 .4 2.8 1.2 3.8 2.5l7.6 10.2c1.3 1.7 1.6 3.9 1 5.9l-22.3 72.5 1.2 0c2.2 0 4.2 1.1 5.5 2.9s1.5 4.1 .7 6.1L459 445c-1 2.6-3.4 4.2-6.2 4.2l-40.4 0c-2.1 0-4.1-1-5.3-2.7s-1.6-3.9-1-5.9l20-63.2-22.2 0-16.2 50.7c2.1 .1 4.1 1.1 5.3 2.9 1.2 1.8 1.4 4.2 .6 6.2l-3.3 7.9c-1 2.5-3.5 4.1-6.1 4.1l-36.8 0c-2.1 0-4.1-1-5.4-2.7s-1.6-3.9-1-5.9l10-32.1-23.9 23.8c.3 1.2 .3 2.5-.1 3.8l-2.9 8.6c-.9 2.7-3.4 4.5-6.3 4.5l-7.4 0-54.6 54.6-83.8-83.8-31.6 32.5-3.6 3.7-49.2 0-2.8-1.7c-8.8-5.1-14.8-8.5-17.9-10.3l0-129.3-58.5-58.5 2.6-2.6 55.9-56 0-99.4-12.6 0-10.8-10.8-3.6-3.6 0-40.7 3.2-3.5 7.9-8.5 3.7-3.9 166.6 0 8 8 27.4-27.4 46.4 46.4zm-251-5.6l0 30.3 9.4 7.8 18.9 0 0 347.9 11.4 10.3 38.2 0 91-93c0-.4 .1-.8 .2-1.1l2.6-10.5c.7-2.9 3.4-5 6.4-5l7.1 0 15.5-15.9-2-2c-1.8-1.8-2.4-4.5-1.5-6.9l6.9-19.3c.4-1.1 1.1-2 1.9-2.8l6.9-5.9c1.2-1 2.8-1.6 4.3-1.6l19.7 0 1.3 .2c.1 0 .1 .1 .2 .1l199.2-203.5 0-28.7-8.2-7.4-156.2 0-7.8 7.8 0 30.5 8.2 7.4 21 0-147 146.4 0-146.6 16.9 0 8.7-8.7 0-27.7-7.4-9.9-157.6 0-8 8zM227.6 352.7l14.8 0-31.8 90.9 45.3 0 3-9.6-12.5 0 31.5-91.9-47.6 0-2.6 10.5zm136.9 1l-16.4 0-10.5-10.8-35.8 0-3.3 9.8 11.8 0-30.5 89.9 38.1 0 2.9-8.6-8.8 0 20-63 37.8 0-22.3 71.6 36.8 0 3.3-7.9-8.8 0 20.3-64 36.1 0-22.7 71.9 40.4 0 3.3-8.6-10.2 0 25-81.1-7.5-10.2-28.9 0-9.5 10.5-17.4 0-9.9-10.8-23.3 0-9.8 11.2zM262.5 293.6l-6.9 19.3 5.3 5.3 21.3 0 5.6-5.6 5.9-20.3-4.6-4.6-19.7 0-6.9 5.9z\"]\n};\nvar faFontAwesome = {\n prefix: 'fab',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faWirsindhandwerk = {\n prefix: 'fab',\n iconName: 'wirsindhandwerk',\n icon: [448, 512, [\"wsh\"], \"e2d0\", \"M18.9 479.8l83.4 0 0-112-83.4 47 0 65zm329 0l82.4 0 0-65-82.4-47 0 112zm0-448l0 219.8-123.6-72.4-121.7 72.4 0-219.8-83.7 0 0 360.8 205.4-122.3 206 122.3 0-360.8-82.3 0z\"]\n};\nvar faWsh = faWirsindhandwerk;\nvar faZoom = {\n prefix: 'fab',\n iconName: 'zoom',\n icon: [640, 512, [], \"e87b\", \"M134.2 326.6l-114.4 0c-8 0-15.2-4.8-18.3-12.2S.1 298.6 5.8 292.9l79.3-79.3-56.8 0C12.7 213.6 0 201 0 185.4l105.5 0c8 0 15.2 4.8 18.3 12.2s1.4 15.9-4.3 21.6l-79.3 79.3 65.7 0c15.6 0 28.3 12.6 28.3 28.3zM640 238.3c0-30.4-24.7-55.1-55.1-55.1-16.2 0-30.9 7.1-41 18.3-10.1-11.2-24.7-18.3-41-18.3-30.4 0-55.1 24.7-55.1 55.1l0 88.3c15.6 0 28.3-12.7 28.3-28.3l0-60c0-14.8 12-26.8 26.8-26.8s26.8 12 26.8 26.8l0 60c0 15.6 12.6 28.3 28.3 28.3l0-88.3c0-14.8 12-26.8 26.8-26.8s26.8 12 26.8 26.8l0 60c0 15.6 12.6 28.3 28.3 28.3l0-88.3zM288.2 256a72.8 72.8 0 1 1 145.5 0 72.8 72.8 0 1 1 -145.5 0zm117.3 0a44.5 44.5 0 1 0 -89 0 44.5 44.5 0 1 0 89 0zm-274.1 0a72.8 72.8 0 1 1 145.5 0 72.8 72.8 0 1 1 -145.5 0zm117.3 0a44.5 44.5 0 1 0 -89 0 44.5 44.5 0 1 0 89 0z\"]\n};\nvar faConfluence = {\n prefix: 'fab',\n iconName: 'confluence',\n icon: [512, 512, [], \"f78d\", \"M2.8 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1 .1-.2 .1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8 .4 21.7-7.7 .1-.1 .1-.3 .2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3-247.9-120.6-330.8 45.7-373.1 112.6zM510.2 100.1c4.5-7.6 2.1-17.5-5.5-22.2L398.9 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2 .3-.4 .6-.6 1-67.3 112.6-81.1 95.6-280.6 .9-8.1-3.9-17.8-.4-21.7 7.7-.1 .1-.1 .3-.2 .4L22.7 141.3c-3.6 8.1 .1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"]\n};\nvar faDigg = {\n prefix: 'fab',\n iconName: 'digg',\n icon: [512, 512, [], \"f1a6\", \"M81.7 172.3l-81.7 0 0 174.4 132.7 0 0-250.7-51 0 0 76.3zm0 133.4l-30.8 0 0-92.3 30.8 0 0 92.3zM378.9 172.3l0 174.4 81.8 0 0 28.5-81.8 0 0 40.8 133.1 0 0-243.7-133.1 0zm81.8 133.4l-30.8 0 0-92.3 30.8 0 0 92.3zm-235.6 41l82.1 0 0 28.5-82.1 0 0 40.8 133.3 0 0-243.7-133.3 0 0 174.4zm51.2-133.3l30.8 0 0 92.3-30.8 0 0-92.3zM153.3 96l51.3 0 0 51-51.3 0 0-51zm0 76.3l51.3 0 0 174.4-51.3 0 0-174.4z\"]\n};\nvar faThreads = {\n prefix: 'fab',\n iconName: 'threads',\n icon: [448, 512, [], \"e618\", \"M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8 29.2 14.1 50.6 35.2 61.8 61.4 15.7 36.5 17.2 95.8-30.3 143.2-36.2 36.2-80.3 52.5-142.6 53l-.3 0c-70.2-.5-124.1-24.1-160.4-70.2-32.3-41-48.9-98.1-49.5-169.6l0-.5C17 184.3 33.6 127.2 65.9 86.2 102.2 40.1 156.2 16.5 226.4 16l.3 0c70.3 .5 124.9 24 162.3 69.9 18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4-29.2-35.8-73-54.2-130.5-54.6-57 .5-100.1 18.8-128.2 54.4-26.2 33.3-39.8 81.5-40.3 143.2 .5 61.7 14.1 109.9 40.3 143.3 28 35.6 71.2 53.9 128.2 54.4 51.4-.4 85.4-12.6 113.7-40.9 32.3-32.2 31.7-71.8 21.4-95.9-6.1-14.2-17.1-26-31.9-34.9-3.7 26.9-11.8 48.3-24.7 64.8-17.1 21.8-41.4 33.6-72.7 35.3-23.6 1.3-46.3-4.4-63.9-16-20.8-13.8-33-34.8-34.3-59.3-2.5-48.3 35.7-83 95.2-86.4 21.1-1.2 40.9-.3 59.2 2.8-2.4-14.8-7.3-26.6-14.6-35.2-10-11.7-25.6-17.7-46.2-17.8l-.7 0c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1l.8 0c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2 .1 0zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3 25.6-1.4 54.6-11.4 59.5-73.2-13.2-2.9-27.8-4.4-43.4-4.4-4.8 0-9.6 .1-14.4 .4-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z\"]\n};\nvar faWpressr = {\n prefix: 'fab',\n iconName: 'wpressr',\n icon: [512, 512, [\"rendact\"], \"f3e4\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM427.3 166.6c-15.2 34.5-30.4 69-45.6 103.5-2.4 5.5-6.9 8.2-13 8.2-23 0-46 .1-69 0-5.1 0-8.2 1.9-10.3 6.7-10.2 23.6-20.6 47-31 70.5-1.5 3.5-4.1 5.3-7.9 5.3-45.9 0-91.9 0-137.8 0-3.1 0-5.6-1.1-7.7-3.4-11.2-12.3-22.5-24.6-33.7-36.9-2.7-3-2.8-6.2-1.2-9.7 8.7-19.5 17.3-39.1 25.9-58.7 12.9-29.4 25.9-58.7 38.7-88.1 1.7-3.9 4.3-5.7 8.5-5.7 14.2 .1 28.5 0 42.7 0 6.2 0 9.2 4.8 6.7 10.6-13.6 30.8-27.2 61.6-40.7 92.3-5.7 13-11.4 26-17.1 39-3.9 9 7.1 12 11 5.6 .2-.4-1.4 4.2 30-67.7 1.4-3.1 3.4-4.4 6.8-4.4 15.2 .1 30.4 0 45.6 0 5.6 0 7.9 3.6 5.7 8.7-8.3 19-16.7 37.9-25 56.9-5 11.4 8.1 12.5 11.3 5.3 0-.1 27.9-63.3 32.2-73.2 2-4.6 5.4-6.5 10.3-6.5 26.4 .1 52.9 0 79.3 0 12.4 0 13.9-13.6 3.9-13.6-25.3 0-50.5 0-75.8 0-6.3 0-7.8-2.5-5.3-8.3 5.8-13.1 11.6-26.1 17.3-39.2 1.7-4 4.5-5.8 8.8-5.8 23.1 .1 26 0 130.8 0 6.1 0 8 2.8 5.6 8.3z\"]\n};\nvar faRendact = faWpressr;\nvar faYoast = {\n prefix: 'fab',\n iconName: 'yoast',\n icon: [448, 512, [], \"f2b1\", \"M91.3 76l186 0-7 18.9-179 0c-39.7 0-71.9 31.6-71.9 70.3l0 205.4c0 35.4 24.9 70.3 84 70.3l0 19.1-12.1 0C41.2 460 0 419.8 0 370.5L0 165.2C0 115.9 40.7 76 91.3 76zM320.4 20l66.5 0c-143.8 378.1-145.7 398.9-184.7 439.3-20.8 21.6-49.3 31.7-78.3 32.7l0-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1 .6-12.6-82.1-223.2l61.4 0 50.4 156.6 102.2-279zM448 161.5l0 298.5-214 0c6.6-9.6 10.7-16.3 12.1-19.4l182.5 0 0-279.1c0-32.5-17.1-51.9-48.2-62.9L387.1 81c41.7 13.6 60.9 43.1 60.9 80.5z\"]\n};\nvar faNimblr = {\n prefix: 'fab',\n iconName: 'nimblr',\n icon: [384, 512, [], \"f5a8\", \"M246.6 353.3a27 27 0 1 1 0-54 27 27 0 1 1 0 54zm-79.4-27a27.1 27.1 0 1 1 -54.3 0 27.1 27.1 0 1 1 54.3 0zM191.8 159C157 159 89.4 178.8 59.2 227L14 0 14 335.5C14 433.1 93.6 512 191.8 512S369.5 433 369.5 335.5 290.1 159 191.8 159zm0 308.1c-73.3 0-132.5-58.9-132.5-131.6s59.2-131.6 132.5-131.6 132.5 58.9 132.5 131.5-59.3 131.6-132.5 131.6l0 .1z\"]\n};\nvar faPixelfed = {\n prefix: 'fab',\n iconName: 'pixelfed',\n icon: [512, 512, [], \"e7db\", \"M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM235.7 311.9l47 0c44.2 0 80.1-34.9 80.1-78s-35.9-78-80.1-78l-67.8 0c-25.5 0-46.2 20.1-46.2 45l0 175.1 67-64.1z\"]\n};\nvar faYahoo = {\n prefix: 'fab',\n iconName: 'yahoo',\n icon: [512, 512, [], \"f19e\", \"M223.8 141.1l-56.7 143.2-56-143.2-96.1 0 105.8 249.1-38.6 89.8 94.2 0 140.9-338.9-93.6 0zM329.2 276.9a58.2 58.2 0 1 0 0 116.4 58.2 58.2 0 1 0 0-116.4zM394.7 32l-93 223.5 104.8 0 92.6-223.5-104.4 0z\"]\n};\nvar faBluesky = {\n prefix: 'fab',\n iconName: 'bluesky',\n icon: [576, 512, [], \"e671\", \"M407.8 294.7c-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3 61.6-9.4 37.5-1.7 21.6 5.5 3.3 13.8 0 41.9 0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7 3.3-.5 6.6-.9 10-1.4-3.3 .5-6.6 1-10 1.4-93.9 14-177.3 48.2-67.9 169.9 120.3 124.6 164.8-26.7 187.7-103.4 22.9 76.7 49.2 222.5 185.6 103.4 102.4-103.4 28.1-156-65.8-169.9-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3 64.1 7.1 133.6-15.1 153.2-80.7 5.9-19.9 15-138.9 15-155.5s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8-66.1 46.6-137.1 141.1-163.2 191.8z\"]\n};\nvar faScribd = {\n prefix: 'fab',\n iconName: 'scribd',\n icon: [384, 512, [], \"f28a\", \"M42.6 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9 .6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9 .2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4-60.8 71.8 15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"]\n};\nvar faCreativeCommonsPd = {\n prefix: 'fab',\n iconName: 'creative-commons-pd',\n icon: [512, 512, [], \"f4ec\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L305 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6L87.6 145.6c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"]\n};\nvar faEarlybirds = {\n prefix: 'fab',\n iconName: 'earlybirds',\n icon: [512, 512, [], \"f39a\", \"M329.3 47.5c1.2-13 21.3-14 36.6-8.7 .9 .3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM335.5 160a16 16 0 1 0 0 32 16 16 0 1 0 0-32zm-159.7 0a16 16 0 1 0 0 32 16 16 0 1 0 0-32zM494.3 323.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2 .3 .9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2 .8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7 .9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2 .8-10.5-25.4 21.5-42.6 66.8-73.4 .7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1 .3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3-15.3-19.4-3.4-39.9-2.4-40.4 1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1 .6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7 .6 11.6 .8 12.7 2.6 .3 .5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM223.5 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"]\n};\nvar faSymfonycasts = {\n prefix: 'fab',\n iconName: 'symfonycasts',\n icon: [576, 512, [], \"e8ab\", \"M293.8 342.5c3.4-1.5 6.8-1.5 10.2 0l54.2 22.6c2.6 .9 4.7 2.6 6.2 4.8s2.3 4.8 2.3 7.6c0 19.4-3.6 37.2-10.7 53.4-6.2 13.6-14.5 25.4-24.8 35.6-8.7 8.5-17.7 14.6-27.1 18.4-3.4 1.5-6.8 1.5-10.2 0-10.7-4.3-20.6-11.3-29.7-20.9-10-10.4-17.8-22.5-23.5-36.4-6.4-15.6-9.6-32.3-9.6-50 0-2.8 .7-5.4 2.2-7.6 1.5-2.3 3.6-3.9 6.2-4.8l54.2-22.6zM479.7 483.8a70.1 70.1 0 1 1 0-140.2 70.1 70.1 0 1 1 0 140.2zM244.6 377.6c0 15.3 2.6 29.7 7.9 43.2 4.9 12.4 11.6 23.3 20.1 32.5 8.1 8.9 16.9 15.3 26.3 19.2 9.2-3.8 17.8-10 25.7-18.7 8.7-9.2 15.4-19.9 20.3-32.2 5.5-13.7 8.2-28.4 8.2-44.1l-54.2-22.6-54.2 22.6zm235.1-20.3a56.5 56.5 0 1 0 0 113 56.5 56.5 0 1 0 0-113zm-352.8 2.3c4.1 0 7.6 1.3 10.4 3.9 2.8 2.6 4.2 5.9 4.2 9.6l0 16.4 31.1-19.2c1.5-1.1 3.2-1.7 5.1-1.7 2.4 0 4.6 .8 6.3 2.5s2.7 3.8 2.7 6.2l0 72.6c0 2.6-.9 4.8-2.7 6.5s-3.9 2.5-6.3 2.5c-1.9 0-3.6-.6-5.1-1.7l-31.1-19.2 0 16.4c0 3.8-1.4 7-4.2 9.6s-6.3 4-10.4 4l-88.2 0c-4.1 0-7.6-1.3-10.5-4s-4.2-5.8-4.2-9.6l0-81.3c0-3.8 1.4-7 4.2-9.6s6.3-3.9 10.5-3.9l88.2 0zm172 97.8c-11.3-7-20.4-16.4-27.4-28.3-7.5-12.4-11.9-26.6-13-42.4l40.4-17 0 87.6zM37.5 373.4l0 80.8c.2 .2 .6 .3 1.2 .3l88.2 0c.4 0 .7-.1 1.1-.3l0-80.8c-.2-.2-.6-.3-1.2-.3l-88.1 0c-.4 0-.8 .1-1.2 .3zm418.4 5.1c2.3-1.3 4.5-1.3 6.8 0l49.8 30.2c2.3 1.3 3.4 3.3 3.4 5.9s-1.1 4.6-3.4 5.9l-49.8 28.6c-2.3 1.3-4.5 1.3-6.8 0s-3.4-3.3-3.4-5.9l0-58.8c0-2.6 1.1-4.6 3.4-5.9zM141.5 405.5l0 16.4 31.7 19.8 0-56-31.7 19.8zM451.1 5.2c35.8-1.2 62.9 15.1 63.8 40.8 .4 10.9-5.9 32.2-27.8 33-16.3 .6-27.6-9.2-28.1-24.1-.2-5.4 1.2-10.2 4.9-15.8 3.6-7.1 4.4-7.9 4.3-11-.3-9.4-14.5-9.7-18.3-9.5-53 1.8-66.9 73.3-78.2 131.5l-5.6 30.7c30.5 4.5 52.2-1 64.2-8.8 17-11-4.8-22.4-2-35 2.8-12.8 14.4-19 23.7-19.2 12.9-.3 22.2 13.1 21.9 26.7-.5 22.6-30.4 53.6-90.2 52.3-7.3-.2-14-.7-20.2-1.4l-11.3 62.3c-3 14-6.3 29.5-10.7 45.8l204 0 .9 .1c.3 .1 .6 .1 .8 .2 2.2 .6 4 2.5 4.5 4.8 .6 2.8-1 6-3.7 7.2-.5 .2-1.1 .4-1.7 .5-.3 0-.6 0-.9 .1l-515.3 0c-.7-.1-.9 0-1.7-.2-2.5-.7-4.4-3.1-4.6-5.7-.2-2.3 1-4.6 3-5.8 .7-.5 1.6-.8 2.4-.9 .3 0 .6 0 .8-.1l48.4 0c-17.2-16.8-20-37.2-16-50.5 5.4-17.6 19.4-20.9 33-16.7 14.6 4.5 20.3 22.3 16.2 36-.5 1.5-1.2 3.9-2.8 7.2-1.7 3.8-4.8 7.1-6.2 11.5-1.5 4.9 .7 9.1 4.5 12.6l58.9 0c4.2-4 7.4-9 9.1-14.6 5.3-17-5.5-28.9-10-33.5l-21.7-23.2c-9.9-11.1-31.7-41.9-21.1-76.5 4.1-13.4 12.8-27.5 25.3-36.9 26.5-19.7 55.3-23 82.7-15.1 35.5 10.2 52.5 33.7 74.6 51.8 12.4-36.3 29.5-71.9 55.3-101.9 23.3-27.3 54.6-47.1 90.4-48.3zM229.6 121.3c-22.2-6-35.7-.9-45.2 11.2-11.3 14.3-7.5 32.8 3.3 43.7l18 19.9c22 25.5 34.1 45.3 29.6 72-2.2 13.1-8.5 25.2-17.9 35.3l54.2 0c1-5.1 2-10.4 3.1-15.8l3.6-21.9c5.9-29.4 12.4-62.2 22.3-94.8-24.1-18.1-38.5-40.7-70.9-49.5z\"]\n};\nvar faSquareOdnoklassniki = {\n prefix: 'fab',\n iconName: 'square-odnoklassniki',\n icon: [448, 512, [\"odnoklassniki-square\"], \"f264\", \"M224 137.1c-5.4-.3-10.8 .6-15.9 2.4s-9.7 4.8-13.6 8.5-7 8.2-9.2 13.2-3.2 10.3-3.2 15.7 1.1 10.8 3.2 15.7 5.3 9.5 9.2 13.2 8.6 6.6 13.6 8.5 10.5 2.7 15.9 2.4c5.4 .3 10.8-.6 15.9-2.4s9.7-4.8 13.6-8.5 7-8.2 9.2-13.2 3.2-10.3 3.2-15.7-1.1-10.8-3.2-15.7-5.3-9.5-9.2-13.2-8.6-6.6-13.6-8.5-10.5-2.7-15.9-2.4zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM224 258a81 81 0 1 1 0-162.1 81 81 0 1 1 0 162.1zm59.3 6.2c16.8-13.2 29.5-5.5 34.1 3.6 7.8 16-1.1 23.7-21.5 37-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6-12-12.2-29.5-29.7-47.7-47.9l-47.7 47.9c-17.7 17.2-46-11-28.4-28.6 3.7-3.7 7.9-7.9 12.5-12.5 10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8-20.3-13.3-29.3-20.9-21.4-37 4.6-9.1 17.3-16.8 34.1-3.6 0 0 22.7 18 59.3 18s59.3-18 59.3-18z\"]\n};\nvar faOdnoklassnikiSquare = faSquareOdnoklassniki;\nvar faMarkdown = {\n prefix: 'fab',\n iconName: 'markdown',\n icon: [640, 512, [], \"f60f\", \"M593.8 59.1l-547.6 0C20.7 59.1 0 79.8 0 105.2L0 406.7c0 25.5 20.7 46.2 46.2 46.2l547.7 0c25.5 0 46.2-20.7 46.1-46.1l0-301.6c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6l-61.5 0 0-120-61.5 76.9-61.5-76.9 0 120-61.7 0 0-209.2 61.5 0 61.5 76.9 61.5-76.9 61.5 0 0 209.2 .2 0zm135.3 3.1l-92.3-107.7 61.5 0 0-104.6 61.5 0 0 104.6 61.5 0-92.2 107.7z\"]\n};\nvar faTypo3 = {\n prefix: 'fab',\n iconName: 'typo3',\n icon: [448, 512, [], \"f42b\", \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1 0 103.5 106.8 337.5 184.1 337.5 36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"]\n};\nvar faJoomla = {\n prefix: 'fab',\n iconName: 'joomla',\n icon: [448, 512, [], \"f1aa\", \"M.6 92.1c0-33.3 26.8-60.1 59.8-60.1 30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1 .6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9-26.9-5.8-46.7-29.7-46.7-58.3zM130.1 208.5l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zM396.4 360.7c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2 0 33.3 26.8 60.1 59.8 60.1 28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"]\n};\nvar faWeixin = {\n prefix: 'fab',\n iconName: 'weixin',\n icon: [576, 512, [], \"f1d7\", \"M385.2 167.6c6.4 0 12.6 .3 18.8 1.1-16.6-78.4-100.7-136.7-196.3-136.7-107.2 0-194.7 72.8-194.7 165.4 0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zM280.7 114.7c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2 .1-14.7 14.6-24.4 29.3-24.4zM144.3 163.3c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zM343.9 294.9c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3 .1 10-9.9 19.6-24.4 19.6z\"]\n};\nvar faGrunt = {\n prefix: 'fab',\n iconName: 'grunt',\n icon: [384, 512, [], \"f3ad\", \"M61.6 189.3c-1.1 10 5.2 19.1 5.2 19.1 .7-7.5 2.2-12.8 4-16.6 .4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1l-.1 0c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zM232 233.3c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8l-.1 0c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zm-134.4 231l-29.4 0c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8 .6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zM349.5 317.3c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6 .6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1 .4-4.7 .8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2-29.5 10.4-36.9 26.3-39.1 40.7-7.6-5.4-6.7-23.1-7.2-27.6-7.5 .9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5l-8.1 9.4 12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3 .2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7 .3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7 .5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6 14.4 11.8 34.4 19.5 63.6 19.5l.2 0c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM306 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2 .8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.9 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6 .7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4 .1-6.6 .5-9 .9zM90.6 85.4c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7-3.3-4.4-3.8-10.5-4.3-16.9-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4 .3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.4 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6 .9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7 .2 .2 .4 .3 .4 .3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1 .4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5 .6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9 .7 .6 1.5 1.2 2.2 1.8l.5 .4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6 .9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7l-117 0c-4.4 0-8.3 .3-11.7 .7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM35.1 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zm111.5 50.1c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2 .9-23.1 2.9-3.3 9.5-7.2 24.6-7.2l118.8 0c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6 .9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM192.2 187.7l.2 0c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7l-29.4 0c-4.2 0-7.2 .9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"]\n};\nvar faSupportnow = {\n prefix: 'fab',\n iconName: 'supportnow',\n icon: [640, 512, [], \"e833\", \"M0 191.9l203.9-.1c1.8-.6 2.5-9.5 3.2-12.2 3.3-13.5 8.4-26.4 14.8-38.7l-160.2 0 0-48.2 234.5 0 0 39c-51.2 36.1-56.4 92.6-23.6 143.9 33.1 51.7 93.4 88.1 149.5 110.5 67.8-25.2 164.9-89.9 169.4-169.6 3.1-55.3-42.2-101.8-98.7-91.8-41.5 7.4-62.1 46.7-54.8 86.4l-48.2 0c-7.3-56.6 22.8-112.6 78.4-130.3 78.7-25.1 159.5 28 170.4 108.8 15.2 112.3-95.5 199.9-188.1 237.8-4.4 1.8-24.4 10.1-27.5 10.1l-280.3 0 0-48.2 178.5 0-38.1-28.9-23.2-22.1-198.3 0 0-48.2 163.1 0c-7.1-11.6-12.3-24.3-16.1-37.4-.7-2.5-2.1-12-3.8-12.6l-204.9-.1 0-48.2 0 0z\"]\n};\nvar faRockrms = {\n prefix: 'fab',\n iconName: 'rockrms',\n icon: [512, 512, [], \"f3e9\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM413.4 427.5l-90 0-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1l75.3 0-84.6-99.3-84.3 98.9-90 0 147.1-172.5c14.4-18.4 41.3-17.3 54.5 0L413.7 252.3c19 22.8 2 57.2-27.6 56.1-.6 0-74.2 .2-74.2 .2L413.4 427.5z\"]\n};\nvar faUnsplash = {\n prefix: 'fab',\n iconName: 'unsplash',\n icon: [448, 512, [], \"e07c\", \"M448 230.2l0 249.8-448 0 0-249.8 141.1 0 0 124.9 165.7 0 0-124.9 141.1 0zM306.9 32l-165.7 0 0 124.9 165.7 0 0-124.9z\"]\n};\nvar faSquareInstagram = {\n prefix: 'fab',\n iconName: 'square-instagram',\n icon: [448, 512, [\"instagram-square\"], \"e055\", \"M194.4 211.7a53.3 53.3 0 1 0 59.2 88.6 53.3 53.3 0 1 0 -59.2-88.6zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12-18.1-7.1-57.6-6.8-83.1-6.5-4.1 0-7.9 .1-11.2 .1s-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2 0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2 2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5 4.1 0 7.9-.1 11.2-.1s7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5 6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83 0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83-2.7-6.9-6.8-13.1-12-18.4l0 .2zm-67.1 44.5c18.1 12.1 30.6 30.9 34.9 52.2s-.2 43.5-12.3 61.6c-6 9-13.7 16.6-22.6 22.6s-19 10.1-29.6 12.2c-21.3 4.2-43.5-.2-61.6-12.3s-30.6-30.9-34.9-52.2 .2-43.5 12.2-61.6 30.9-30.6 52.2-34.9 43.5 .2 61.6 12.2l.1 0zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1 2.6-7.1 5.2-9.8 6.1-4.5 9.8-5.2 7.6-.4 11.1 1.1 6.5 3.9 8.6 7 3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2-3.9 3.2-6.2 4.2-4.8 1.5-7.3 1.5c-3.8 0-7.5-1.1-10.6-3.2l-.1 0zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM357 389c-18.7 18.7-41.4 24.6-67 25.9-26.4 1.5-105.6 1.5-132 0-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132 1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0 25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9-1.3 25.6-7.1 48.3-25.8 67l0 .1z\"]\n};\nvar faInstagramSquare = faSquareInstagram;\nvar faFirstOrderAlt = {\n prefix: 'fab',\n iconName: 'first-order-alt',\n icon: [512, 512, [], \"f50a\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 7.8a240.2 240.2 0 1 1 0 480.4 240.2 240.2 0 1 1 0-480.4zm0 20.5a219.7 219.7 0 1 0 0 439.4 219.7 219.7 0 1 0 0-439.4zm0 8.2a211.5 211.5 0 1 1 0 423 211.5 211.5 0 1 1 0-423zm186.2 260c-4.4 17.1-11.2 33.5-20.1 48.7l-74.1-35.9 61.5 54.8c-10.6 14.1-23.2 26.6-37.2 37.3l-54.8-61.6 35.9 74.3c-15.2 9-31.6 15.8-48.6 20.2l-27.3-78.5 4.8 82.9c-8.6 1.2-17.4 1.8-26.3 1.8s-17.7-.6-26.3-1.8l4.8-82.5-27.2 78c-17.1-4.5-33.4-11.3-48.7-20.2l35.9-74.3-54.9 61.6c-14-10.7-26.6-23.2-37.2-37.3l61.6-54.9-74.3 35.9C80.7 338 74 321.7 69.5 304.6l77.8-27.1-82.2 4.8c-1.2-8.6-1.8-17.3-1.8-26.2 0-9 .6-17.8 1.8-26.5l82.4 4.8-77.9-27.2c4.5-17.1 11.3-33.5 20.2-48.7l74.2 35.9-61.5-54.9c10.7-14 23.2-26.6 37.3-37.2l54.8 61.5-35.8-74.2c15.2-8.9 31.6-15.7 48.6-20.1l26.9 77.2-4.7-81.6c8.6-1.2 17.4-1.8 26.3-1.8s17.7 .6 26.3 1.8l-4.7 82.2 27-77.8c17.3 4.5 33.6 11.4 48.6 20.2l-35.8 74.1 54.7-61.5c14.1 10.7 26.6 23.2 37.2 37.2l-61.4 54.8 74.1-35.9c8.9 15.2 15.7 31.6 20.2 48.6l-77.8 27.1 82.2-4.7c1.2 8.7 1.8 17.5 1.8 26.5 0 8.9-.6 17.6-1.8 26.2l-82.1-4.7 77.7 27.1z\"]\n};\nvar faFulcrum = {\n prefix: 'fab',\n iconName: 'fulcrum',\n icon: [256, 512, [], \"f50b\", \"M63.8 164.1L28.4 207.7-7 164.1 28.4 120.6 63.8 164.1zM112.2 0l-20.5 198.2-51 57.8 51 57.8 20.5 198.2 0-211.1-41.1-44.9 41.1-44.9 0-211.1zm79.7 164.1l35.4 43.6 35.4-43.6-35.4-43.5-35.4 43.5zm-48.5 47l41.1 44.9-41.1 44.9 0 211.1 20.6-198.2 51-57.8-51-57.8-20.6-198.2 0 211.1z\"]\n};\nvar faArchLinux = {\n prefix: 'fab',\n iconName: 'arch-linux',\n icon: [576, 512, [], \"e867\", \"M288.7-7.8c-24.1 59-38.6 97.7-65.4 155 16.4 17.4 36.6 37.6 69.4 60.5-35.2-14.5-59.2-28.9-77.2-44-34.3 71.6-88.1 173.5-197.2 369.4 85.7-49.5 152.2-80 214.1-91.6-2.7-11.4-4.1-23.8-4-36.7l.1-2.7c1.4-54.9 29.9-97.2 63.8-94.4s60.2 49.8 58.8 104.7c-.3 10.3-1.4 20.2-3.4 29.4 61.2 12 127 42.4 211.6 91.2-16.7-30.7-31.6-58.3-45.8-84.7-22.4-17.4-45.7-39.9-93.3-64.4 32.7 8.5 56.3 18.3 74.5 29.3-144.5-269.1-156.2-304.8-205.8-421.1z\"]\n};\nvar faFediverse = {\n prefix: 'fab',\n iconName: 'fediverse',\n icon: [576, 512, [], \"e865\", \"M394.8 526.9a54 54 0 1 1 5.8-107.8 54 54 0 1 1 -5.8 107.8zm-50.1-80.6c-5.5 10.9-7.4 23.3-5.6 35.4L168.7 454.4c5.5-10.9 7.5-23.3 5.7-35.4l170.3 27.3zM112.7 481.6a54 54 0 1 1 5.9-107.8 54 54 0 1 1 -5.9 107.8zm257.7-61.4c-10.9 5.6-19.7 14.4-25.4 25.3l-70.6-70.9 33.6-17 62.4 62.7zM486.1 261c8.7 8.6 19.8 14.3 31.9 16.4L439.4 430.8c-8.7-8.6-19.8-14.3-31.9-16.4L486.1 261zM376.7 219.3l30.5 195.1c-12.1-1.9-24.5-.1-35.4 5.3l-32.2-206.3 37.2 6zM350.4 328.9L174.2 418.2c-2-12.1-7.6-23.2-16.2-32l186.6-94.6 5.8 37.2zm-152.7-22l-40.3 78.7c-8.7-8.6-19.8-14.3-31.9-16.3l45.6-89 26.6 26.7zM124.7 369c-12.1-1.8-24.4 .2-35.4 5.6L62.7 204.3c12.1 1.8 24.5-.1 35.4-5.6L124.7 369zm147.1-47.8l-33.6 17-139.4-139.9c10.9-5.6 19.7-14.4 25.4-25.3L271.8 321.2zm197.5-92.8c2 12.1 7.6 23.2 16.2 31.9l-89.3 45.2-5.8-37.2 78.9-40zm55.6 44.3a54 54 0 1 1 5.9-107.8 54 54 0 1 1 -5.9 107.8zM284.6 58.7c8.7 8.6 19.8 14.3 31.8 16.3l-95.3 186.1-26.6-26.7 90-175.8zM474.9 192.1c-5.5 10.9-7.5 23.3-5.7 35.3l-206.4-33.1 17.2-33.5 195 31.3zM68.7 199.6A54 54 0 1 1 74.6 91.8 54 54 0 1 1 68.7 199.6zm432-33.4c-10.9 5.6-19.7 14.4-25.4 25.3L353.5 69.3c10.9-5.6 19.7-14.4 25.4-25.3L500.6 166.2zM229.3 152.6l-17.2 33.5-87.4-14c5.4-10.9 7.4-23.3 5.5-35.4l99 15.9zm139.5 15.9l-37.2-6-13.6-87.2c12.1 1.7 24.5-.3 35.3-5.9l15.5 99.1zM267.8 26.2c2 12.1 7.6 23.2 16.2 31.9l-153.9 78c-2-12.1-7.6-23.2-16.2-31.9l153.9-78zm55.6 44.3a54 54 0 1 1 5.8-107.8 54 54 0 1 1 -5.8 107.8z\"]\n};\nvar faBraveReverse = {\n prefix: 'fab',\n iconName: 'brave-reverse',\n icon: [448, 512, [], \"e63d\", \"M298.5 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3 9.2-1.6 18.6-2.2 27.7-1.2 11.6 1.4 21.5 5.4 28.9 12.9 7.7 7.8 15.4 15.8 22.6 23.6 2.5 2.7 4.9 5.2 6.9 7.4 .7 .8 1.4 1.5 1.9 2 3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2-.1 .4-.1 .4-.5 2.1l-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9-5.6 21.6-11.2 43.2-16.4 63.4-12.9 49.9-21.4 82.7-23.4 90.9-11.1 44.5-19.9 60-48.3 80.3-24.9 17.8-76.8 53.6-86.8 60-1 .6-2 1.3-3.4 2.3-.5 .4-3.2 2.2-3.9 2.7-4.9 3.3-8.3 5.5-12.1 7.3-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3-.8-.5-3.4-2.4-3.9-2.7-1.4-1-2.5-1.7-3.4-2.3-10-6.4-61.9-42.1-86.8-60-28.4-20.4-37.2-35.8-48.3-80.3-2-8.2-10.5-41-23.3-90.5-5.3-20.6-10.9-42.2-16.5-63.8-2-7.6-3.8-14.6-5.4-20.9l-1.5-5.8-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1-9.9-24.5c-1.5-3.8-.7-8.2 2-11.2 1.2-1.3 1.8-2 2.6-2.8 2-2.2 4.4-4.7 6.9-7.4 7.3-7.7 15-15.7 22.7-23.5 7.4-7.5 17.3-11.6 28.9-12.9 9.1-1.1 18.5-.5 27.7 1.2 .5 .1 1 .2 1.5 .3l38.1-44c2-2.4 4.8-3.7 7.8-3.7l148 0zm-4.7 21.1l-138.6 0-39.1 45.1c-2.6 3-6.7 4.3-10.6 3.2-.2-.1-.7-.2-1.5-.4-1.3-.3-2.9-.6-4.5-.9-7.4-1.3-14.9-1.8-21.7-1-7.3 .9-13 3.2-16.6 6.9-7.6 7.7-15.2 15.6-22.3 23.3-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.7 170.6c.4 1.4 .5 1.9 1.2 4.8 1.6 6.3 3.5 13.3 5.4 20.9 5.6 21.6 11.2 43.2 16.4 63.4 12.9 50 21.4 82.8 23.4 91 10.1 40.1 16.4 51.3 40.2 68.3 24.6 17.6 76.3 53.2 85.9 59.3 1.2 .8 2.5 1.6 4 2.7 .6 .4 3.2 2.2 3.9 2.7 4 2.8 6.7 4.4 9.2 5.6 2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6 .7-.5 3.3-2.3 3.9-2.7 1.6-1.1 2.8-1.9 4-2.7 9.6-6.1 61.3-41.7 85.9-59.3 23.8-17.1 30.2-28.2 40.1-68.3 2.1-8.3 10.5-41.1 23.3-90.7 5.3-20.6 10.9-42.2 16.5-63.8 2-7.6 3.8-14.6 5.4-20.9 .7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1-7.2-7.6-14.7-15.5-22.3-23.3-3.7-3.7-9.3-6-16.6-6.9-6.8-.8-14.4-.3-21.7 1-1.7 .3-3.2 .6-4.5 .9-.8 .2-1.3 .3-1.5 .4-3.8 1.1-7.9-.2-10.6-3.2L293.8 21.1zM224.5 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2 1.3 6.2-1.7 8.4-44.1 34.6-48.1 38.2-9.8 9.5-13.8 9.5-9.8-5.9-13.8-9.5-45.1-36-48.1-38.2-5.1-6.2-1.7-8.4 13.9-7.5 28.3-15.2 32.5-14.1 35.4-14.1l-.2 0zm.1-230.7c.7 0 8.8 .2 20.5 4.2 12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9 54.2 66.7 54.2 81-6.8 18-13.7 25.4-36.8 39.8-40.7 43.9-11.9 10.5-7.1 21.8 11.7 25.8 3.9 40.4-21 24.4-29.4 22.8-28.4-12.2-35.7-17.1-30.5-24.3-30.5-31.8 24-20.8 28.4-23.9 24.7-14.8 25.1-19.4 .3-6-5.7-17.4-16.7-26.7-14.9-36.8 19.1-15.4 31.5-20.2 36.2-13.7 39.2-15.1 2.2-2.7-6.8-3.6-34.6-4.3-46.1-1.1-31.2 8.2-32.8 10.9-3 2.7-1.4 11.8 10.1 52.8 10.9 60.6 2.4 12.9-5.8 14.8-22.1 5.2-26.8 5.2-18.6-3.3-26.8-5.2-6.6-7-5.8-14.8 9.3-51.5 10.9-60.6 .2-9.2-1.4-11.8-21.3-7.6-32.8-10.9-37.1 .2-46.1 1.1-9.8 2.2-6.8 3.6 26.8 10.4 39.2 15.1 29.7 10 31.5 20.2-9 25.4-14.9 36.8-6.1 12.8-5.7 17.4 20.6 16.4 25.1 19.4 28.4 16.4 28.4 23.9-23.2 27-30.5 31.8-27.2 15.4-35.7 17.1-21.7-8.2-29.4-22.8-.8-29.1 3.9-40.4-3.3-17.7-7.1-21.8-33.8-36.5-40.7-43.9-13.7-11.2-13.7-25.4 54.2-81 54.2-81 45.8 8.9 51.9 8.9 19.5-5.2 31.9-9.4 20.6-4.2 20.6-4.2l-.3 0z\"]\n};\nvar faAvianex = {\n prefix: 'fab',\n iconName: 'avianex',\n icon: [512, 512, [], \"f374\", \"M453.2 32l-312 0C102.3 32 65 63.2 57.9 101.7L1.3 410.3C-5.8 448.8 20 480 59 480l312 0c38.9 0 76.2-31.2 83.3-69.7L511 101.8C518 63.2 492.2 32 453.2 32zM395 379.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9l-20.5-29.6-68.8-99.8 18.8-28.9 8.9-4.8 103.1 112.4 4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"]\n};\nvar faNs8 = {\n prefix: 'fab',\n iconName: 'ns8',\n icon: [640, 512, [], \"f3d5\", \"M104.3 269.2l26.1 0 0-26.2-26.1 0 0 26.2zM156.8 243l-.1-26.2 0-.9c-.2-10.4-4.4-20.3-11.9-27.6s-17.5-11.3-27.9-11.1-20.3 4.4-27.6 11.8-11.3 17.5-11.2 27.9l0 .2 26.4 0 0-.2c.1-3.4 1.5-6.6 3.9-9s5.7-3.7 9.1-3.7 6.7 1.3 9.1 3.7 3.8 5.6 3.9 9l0 26.2 26.3 0zm52.4 25.8c0 12-2.4 23.8-6.9 34.9s-11.3 21.1-19.7 29.6-18.5 15.2-29.6 19.7-22.9 6.9-34.9 6.9l-.6 0c-24.2 0-47.3-9.6-64.4-26.7S26.3 293 26.3 268.8l-26.3 0 0 .2c0 15.4 3.1 30.7 9 44.9s14.6 27.2 25.5 38.1 23.9 19.5 38.1 25.4 29.5 8.9 44.9 8.9l.8 0c15.4 0 30.7-3 44.9-9s27.2-14.6 38.1-25.5 19.5-23.8 25.4-38.1 8.9-29.5 8.9-44.9l0-26-26.3 0 0 26zm-157.2 0c.1 17.3 7 33.9 19.2 46.1s28.8 19.1 46.1 19.1 33.9-6.9 46.1-19.1 19.2-28.8 19.2-46.1l-26.3 0c-.2 10.2-4.4 20-11.7 27.2s-17.1 11.2-27.4 11.2-20.1-4-27.4-11.2-11.5-16.9-11.7-27.2l0-26-26.3 0 0-26.6c.3-17.3 7.4-33.8 19.7-45.8s29-18.8 46.3-18.6 33.8 7.2 45.9 19.5 18.9 28.9 18.9 46.2l0 25.3 26.3 0 0-25.3c0-24.3-9.7-47.7-26.9-64.9s-40.5-26.9-64.9-26.9-47.7 9.7-64.9 26.9-26.9 40.5-26.9 64.9l0 25.4 26.3 0 0 26zm418.4-71.2c13.7 0 24.6 6.6 30.1 18.3l.7 1.5 23.2-11.5-.6-1.4c-8-19.3-28.5-31.3-53.4-31.3-23.1 0-43.6 11.4-51 28.4-.1 26.9-.2 23.9 0 24.8 4.7 11 14.6 19.4 28.7 24.2 6.5 2 13.1 3.3 19.8 4 5.5 .7 10.6 1.4 15.8 3.1 6.4 2.1 10.5 5.3 12.8 9.8l0 9.9c-3.7 7.5-13.8 12.3-25.8 12.3-14.3 0-26-6.9-31.9-19l-.7-1.5-23 11.5 .6 1.4c7.9 19.4 29.6 32 55.3 32 23.6 0 44.6-11.4 52.3-28.4l.2-25.9-.2-.7c-4.9-11-15.2-19.6-28.9-24.2-7.7-2.7-14.3-3.6-20.7-4.4-5-.5-10-1.5-14.8-2.9-6.3-1.9-10.4-5.1-12.6-9.6l0-8.4c3.4-7.4 12.9-12.1 24.2-12.1l0 0zM287.6 311.3l26.1 0 0-68.4-26.1 0 0 68.4zM639.8 258c-2.9-6.3-8.3-12-15.4-16.7 5.6-3.8 10.1-9.1 13-15.3l.2-25.3-.2-.7c-7.4-16-26.7-26.7-48.2-26.7S548.5 184 541.1 200l-.2 25.3 .2 .7c2.9 6.1 7.4 11.4 13 15.3-7.2 4.7-12.5 10.5-15.4 16.7l-.2 28.9 .2 .7c7.6 16 27.9 26.7 50.6 26.7s43.1-10.7 50.6-26.7l.2-28.9-.2-.7zm-73.2-50.8c3.6-6.3 12.6-10.5 22.6-10.5s19 4.2 22.6 10.5l0 13.7c-3.5 6.2-12.6 10.3-22.6 10.3s-19.1-4.2-22.6-10.3l0-13.7zm47.3 72.2c-3.8 6.6-13.3 10.9-24.7 10.9-11.1 0-21-4.4-24.7-10.9l0-16.2c3.7-6.3 13.5-10.5 24.7-10.5 11.3 0 20.9 4.1 24.7 10.5l0 16.2zM376.4 266l-59.8-89.7-29 0 0 40.6 26.5 0 0 .4 62.5 94.1 25.7 0 0-135.1-25.9 0 0 89.7z\"]\n};\nvar faSquarePinterest = {\n prefix: 'fab',\n iconName: 'square-pinterest',\n icon: [448, 512, [\"pinterest-square\"], \"f0d3\", \"M384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l72.6 0-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7 3.9-16 8.5-35 13.9-57.9 0 0-7.3-14.8-7.3-36.5 0-70.7 75.5-78 75.5-25 0 13.5-5.4 31.1-11.2 49.8-3.3 10.6-6.6 21.5-9.1 32-5.7 24.5 12.3 44.4 36.4 44.4 43.7 0 77.2-46 77.2-112.4 0-58.8-42.3-99.9-102.6-99.9-69.9 0-110.9 52.4-110.9 106.6 0 21.1 8.2 43.7 18.3 56 2 2.4 2.3 4.5 1.7 7-1.1 4.7-3.1 12.9-4.7 19.2-1 4-1.8 7.3-2.1 8.6-1.1 4.5-3.5 5.5-8.2 3.3-30.6-14.3-49.8-59.1-49.8-95.1 0-77.5 56.2-148.6 162.2-148.6 85.2 0 151.4 60.7 151.4 141.8 0 84.6-53.3 152.7-127.4 152.7-24.9 0-48.3-12.9-56.3-28.2 0 0-12.3 46.9-15.3 58.4-5 19.3-17.6 42.9-27.4 59.3L384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64z\"]\n};\nvar faPinterestSquare = faSquarePinterest;\nvar faBluetoothB = {\n prefix: 'fab',\n iconName: 'bluetooth-b',\n icon: [256, 512, [], \"f294\", \"M164.9 260L257.5 156.7 111.6 0 111.6 206.3 25.4 120.2-6 151.6 102.1 260-6 368.4 25.4 399.8 111.6 313.7 114.3 512 262.8 363.4 164.9 260zm40.9-103l-50 50-.3-100.3 50.3 50.3zm-50 156l50 50-50.3 50.3 .3-100.3z\"]\n};\nvar faGripfire = {\n prefix: 'fab',\n iconName: 'gripfire',\n icon: [320, 512, [], \"f3ac\", \"M80.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4 .4 3.3 .6 6.7 .6 10 0 92.1-147.1 153.9-147.1 268.6 0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"]\n};\nvar faSquareGooglePlus = {\n prefix: 'fab',\n iconName: 'square-google-plus',\n icon: [448, 512, [\"google-plus-square\"], \"f0d4\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM64 256c0-55.3 44.7-100 100-100 27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1l-56.9 0 0-34.4 94.4 0c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6-55.3 0-100-44.7-100-100zm291 18.2l0 29-29.2 0 0-29-29 0 0-29.2 29 0 0-29 29.2 0 0 29 29 0 0 29.2-29 0z\"]\n};\nvar faGooglePlusSquare = faSquareGooglePlus;\nvar faGitee = {\n prefix: 'fab',\n iconName: 'gitee',\n icon: [512, 512, [], \"e863\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM385.6 113.8l0 0-177 0c-52.4 0-94.8 42.4-94.8 94.8l0 177c0 7 5.7 12.6 12.6 12.6l186.5 0c47.1 0 85.3-38.2 85.3-85.3l0-72.7c0-7-5.7-12.6-12.6-12.6l-145.4 0c-7 0-12.6 5.7-12.6 12.6l0 31.6c0 6.6 5.1 12.1 11.6 12.6l1 0 88.5 0c6.6 0 12.1 5.1 12.6 11.6l0 1 0 6.3c0 20.9-17 37.9-37.9 37.9l-120.1 0c-7 0-12.6-5.7-12.6-12.6l0-120.1c0-20.4 16.1-37.1 36.4-37.9l1.6 0 177 0c7 0 12.6-5.7 12.6-12.6l0-31.6c0-7-5.6-12.6-12.6-12.6z\"]\n};\nvar faXmpp = {\n prefix: 'fab',\n iconName: 'xmpp',\n icon: [576, 512, [], \"e864\", \"M0 47.2c3.5 137.1 117.1 278.6 252.9 356.7-31.5 25-67.2 44.1-106.2 53.9l0 5.4c56.4-2.3 98.1-20.1 141.3-40.7 65.7 34.6 122.2 39.9 141.4 40.7l0-5.4c-39-9.8-74.7-28.8-106.2-53.8 135.7-78.2 249.3-219.8 252.8-356.8-58.4 25.7-119.1 44.2-180.1 62.3l0 0c3.4 59-20.2 170.4-107.9 262.3-88.4-92.3-111.2-204.1-107.8-262.3l0 0C117.7 92.6 59.3 70.2 0 47.2zM93.9 97l73.6 21.8C165.4 216 226.8 358 341.3 432.2 190.5 376.9 89.9 215.7 93.9 97zm388.3 0c3.3 99-65.6 224.7-171.7 296.4-4.7-4.1-9.3-8.4-13.8-12.7 77-80.2 113.2-186.3 111.9-261.9L482.1 97zM264.5 410.5c3 1.6 5.9 3.2 8.9 4.7-12.5 6.4-25.4 12.1-38.6 17 10.3-6.7 20.2-13.9 29.7-21.7z\"]\n};\nvar faAppStore = {\n prefix: 'fab',\n iconName: 'app-store',\n icon: [512, 512, [], \"f36f\", \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5s13.1 18.1 7.5 27.9l-87.5 151.5 63.3 0c20.5 0 32 24.1 23.1 40.8l-185.5 0c-11.3 0-20.4-9.1-20.4-20.4s9.1-20.4 20.4-20.4l52 0 66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5s-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7l53.1 0c11.3 0 20.4 9.1 20.4 20.4S410.5 318 399.2 318l-29.5 0 19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM40 256a216 216 0 1 1 432 0 216 216 0 1 1 -432 0z\"]\n};\nvar faWix = {\n prefix: 'fab',\n iconName: 'wix',\n icon: [640, 512, [], \"f5cf\", \"M393.4 131.7c0 13 2.1 32.7-28.7 43.8-9.5 3.4-16 9.7-16 9.7 0-31 4.7-42.2 17.4-48.9 9.8-5.1 27.2-4.6 27.2-4.6zM277.6 167.2l-34.2 132.7-28.5-108.6c-7.7-32-20.8-48.5-48.4-48.5-27.4 0-40.7 16.2-48.4 48.5L89.5 299.9 55.3 167.2C49.7 140.5 23.9 129 0 132L65.6 379.9s21.6 1.6 32.5-4c14.2-7.2 21-12.8 29.6-46.6 7.7-30.1 29.1-118.4 31.1-124.7 4.8-14.9 11.1-13.8 15.4 0 2 6.3 23.5 94.6 31.1 124.7 8.6 33.7 15.4 39.3 29.6 46.6 10.8 5.5 32.5 4 32.5 4L332.9 132c-24.4-3.1-49.8 8.9-55.3 35.3zm115.8 5.2s-4.1 6.3-13.5 11.6c-6 3.4-11.8 5.6-18 8.6-15.1 7.3-13.2 13.9-13.2 35.2l0 152.1s16.6 2.1 27.4-3.4c13.9-7.1 17.1-14 17.3-44.8l0-150.3 0 0 0-9zm163.4 84.1L640 132.8s-35.1-6-52.5 9.8c-13.3 12.1-24.4 29.6-54.2 72.5-.5 .7-6.3 10.5-13.1 0-29.3-42.2-40.8-60.3-54.2-72.5-17.4-15.8-52.5-9.8-52.5-9.8l83.2 123.7-83 123.4s36.6 4.6 54-11.2c11.5-10.5 17.6-20.4 52.5-70.7 6.8-10.5 12.6-.8 13.1 0 29.4 42.4 39.2 58.1 53.1 70.7 17.4 15.8 53.3 11.2 53.3 11.2l-83-123.4z\"]\n};\nvar faIntercom = {\n prefix: 'fab',\n iconName: 'intercom',\n icon: [448, 512, [], \"f7af\", \"M392 32L56 32C25.1 32 0 57.1 0 88L0 424c0 30.9 25.1 56 56 56l336 0c30.9 0 56-25.1 56-56l0-336c0-30.9-25.1-56-56-56zM283.7 114.1c0-19.8 29.9-19.8 29.9 0l0 199.5c0 19.8-29.9 19.8-29.9 0l0-199.5zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0l0 216.5c0 19.8-29.9 19.8-29.9 0l0-216.5zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0l0 199.5c0 19.8-29.9 19.8-29.9 0l0-199.5zM59.7 144c0-19.8 29.9-19.8 29.9 0l0 134.3c0 19.8-29.9 19.8-29.9 0l0-134.3zM383.1 371.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0l0-134.3c0-19.8 29.9-19.8 29.9 0l0 134.3z\"]\n};\nvar faReacteurope = {\n prefix: 'fab',\n iconName: 'reacteurope',\n icon: [576, 512, [], \"f75d\", \"M250.7 211.7l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3-2 6.8zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3-1.9 6.8zm-91.3 50.5l-3.4 0c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1l0-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5l3.4 0c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1l-.2 0c-10.1 0-16.8 4.2-16.8 14.1l0 40.1c0 10.4 6.7 14.1 16.8 14.1l.2 0c10.1 0 16.8-3.8 16.8-14.1 0-9.9 1.1-13.8-3.8-13.8zm-80.7 17.4l-14.7 0 0-19.3 11.4 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-11.4 0 0-18.3 14.4 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-21.7 0c-2.4-.1-3.7 1.3-3.7 3.8l0 59.1c0 2.5 1.3 3.8 3.8 3.8l21.9 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4l0-11.9c0-10.1-6.7-14.1-16.8-14.1l-13.4 0c-2.5 0-3.8 1.3-3.8 3.8l0 59.1c0 2.5 1.3 3.8 3.8 3.8l3.4 0c2.5 0 3.8-1.3 3.8-3.8l0-22.9 5.6 0 7.4 23.5c.2 1 .8 1.8 1.6 2.4s1.8 .9 2.7 .8l3.3 0c2.8 0 4-1.8 3.2-4.4l-8.1-23.9zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1l-5.8 0 0-20.9 5.8 0c3.6 0 6.1 1.3 6.1 6.1l0 8.7zM176.1 226c-.1-.5-.2-1-.4-1.4s-.6-.8-1-1.1-.8-.6-1.3-.7-1-.2-1.5-.1l-6.9 0c-.5 0-1 0-1.4 .2s-.9 .4-1.3 .7-.7 .7-.9 1.1-.4 .9-.4 1.4l-11 59.2c-.5 2.7 .9 4.1 3.4 4.1l3 0c.5 .1 1 0 1.5-.2s.9-.4 1.3-.7 .7-.7 .9-1.2 .4-.9 .4-1.4l1.8-11.3 12.2 0 1.8 11.3c0 .5 .2 1 .4 1.4s.5 .9 .9 1.2 .8 .6 1.3 .7 1 .2 1.5 .2l3.5 0c2.6 0 3.9-1.4 3.4-4.1L176.1 226zm-12.3 39.3l4.7-29.7 4.7 29.7-9.4 0zm89.3 20.2l0-53.2 7.5 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-25.8 0c-2.5 0-3.8 1.3-3.8 3.8l0 2.1c0 2.5 1.3 3.8 3.8 3.8l7.3 0 0 53.2c0 2.5 1.3 3.8 3.8 3.8l3.4 0c2.5 0 3.8-1.3 3.8-3.8l0 0zm248-.8l-19.4 0 0-26.7 16.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-16.1 0 0-25.8 19.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-22.2 0c-.3-.1-.5-.1-.8 0s-.5 .2-.7 .4-.3 .4-.4 .7-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l22.5 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l0 0zM408 221.8l-.8 0c-10.1 0-15.3 4.7-15.3 14.1l0 40.1c0 9.3 5.2 14.1 15.3 14.1l.8 0c10.1 0 15.3-4.8 15.3-14.1l0-40.1c0-9.4-5.2-14.1-15.3-14.1l0 0zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1l0-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1l0 36.6zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3l0-9.7c0-9.4-5.2-14.1-15.3-14.1l-13.7 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l1.2 0c.3 0 .5 0 .8-.1s.5-.2 .6-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-26.9 11.6 0 10.4 27.2c.2 .5 .5 .9 .9 1.1s.9 .4 1.4 .4l1.5 0c1.4 0 2-1 1.5-2.3l-10.6-27.3zm-6.4-3.9l-10.2 0 0-28.5 10.2 0c7.5 0 10.5 3.1 10.5 11.1l0 6.4c0 7.8-3 11-10.5 11l0 0zm85.9-33.1l-13.7 0c-.3-.1-.5-.1-.8 0s-.5 .2-.7 .4-.3 .4-.4 .7-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l1.2 0c.3 0 .5 0 .8-.1s.5-.2 .6-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-26.1 10.6 0c10.1 0 15.3-4.8 15.3-14.1l0-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1l-10.2 0 0-29.2 10.2 0c7.5-.1 10.5 3.1 10.5 11l0 7.1zM259.6 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zM487.2 171.9c-11.7-4.4-23.5-8.1-35.6-11.3 19.6-78 11.6-134.7-22.3-153.9-34.5-19.4-85.9 4.3-138.2 55.2 3.4 3.3 6.8 6.7 10.2 10.2 82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8-27.8-6.4-56.1-10.7-84.6-13-71.9-100.5-140.6-142.1-182.2-142.1-30.8 0-43.8 21-47.6 27.7-18.1 32-13.3 84.2 .1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2-3.4-3.3-6.8-6.7-10.2-10.2-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3l0 0zM136 36.8c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2-31.3-1.8-62.7-1.5-93.9 .9 13-18.3 27.1-35.8 42.2-52.4-3.4-3.5-6.8-6.9-10.2-10.2-18.3 20.2-35.3 41.7-50.7 64.2-28.5 2.7-56.7 7.6-84.4 14.6-.2-1.4-24.3-82.2-1.2-123l0 0zM440.8 475.1c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2 31.3 1.8 62.7 1.5 93.9-.9-13 18.3-27.1 35.8-42.2 52.4 3.4 3.5 6.8 6.9 10.2 10.2 18.4-20.2 35.3-41.7 50.7-64.2 47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4-2.1 0-4.2-.5-6.1-1.5s-3.5-2.4-4.6-4.2l-.1 .1c-1.6 1.5-3.4 2.7-5.4 3.6 5.7 14.3 10.6 28.4 14.7 42.2-23.7 6-47.7 10.3-72 13 3.5-5.3 17.2-26.2 32.2-54.2-2.1-.8-4.2-1.9-6-3.2-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2-37.4 3.3-75 3.6-112.4 1-7.9-11.2-21.5-31.1-36.8-57.8-1-.4-2-.9-3-1.5-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6-24.3-2.3-48.4-6.2-72.2-11.7 3.9-14 8.6-28.3 14.1-42.9-3.2 0-5.4 .2-8.4-1-2.2 .8-4.6 1.1-6.9 1-4.9 13.4-9.1 26.5-12.7 39.4-159.9-42.6-140.3-123.6-1.5-164 3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3 .7-.8 1.4-1.6 2.3-2.2-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3 3.1 1.8 5.3 4.6 6.4 8 2.5-3.7 6.1-6.6 10.2-8.4 6.5-11.7 17.9-31.9 34.8-56.9 37.4-3.3 75-3.6 112.4-1 31.5 44.6 28.9 48.1 42.5 64.5 2.6-3.5 6.3-6 10.4-7.4-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2 2.5 1 4.8 2.4 6.8 4.3l.1 .1c1-1.5 2.3-2.8 3.8-3.8s3.3-1.6 5.1-1.8c4.9-13.4 9.2-26.6 12.8-39.5 11.7 3.1 23.2 6.8 34.5 11 106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114l-1.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.6 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1l0-49.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-1.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 51.5c0 9.6 5 14.1 15.1 14.1l.4 0c10.1 0 15.1-4.6 15.1-14.1l0-51.5c0-.3-.1-.5-.2-.8s-.3-.5-.5-.6-.4-.3-.7-.4-.5-.1-.8-.1zM321.8 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zm5.1-30.8l-19.4 0 0-26.7 16.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-16.1 0 0-25.8 19.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-22.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l22.5 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.6-.1-.8s-.2-.5-.4-.7-.4-.4-.7-.4-.5-.1-.8-.1l0 0zm-7.4-99.4l-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8z\"]\n};\nvar faWaze = {\n prefix: 'fab',\n iconName: 'waze',\n icon: [512, 512, [], \"f83f\", \"M502.6 201.7c14.5 85.9-30.9 167.9-113.2 208.1 13 34.1-12.4 70.2-48.3 70.2-13.2 0-26-5.1-35.6-14.2s-15.3-21.6-16-34.8c-6.4 .2-64.2 0-76.3-.6-.3 6.8-1.9 13.5-4.7 19.6s-6.9 11.7-11.9 16.3-10.8 8.2-17.2 10.5-13.2 3.4-19.9 3.1c-33.9-1.4-58-34.8-47-67.9-37.2-13.1-72.5-34.9-99.6-70.8-13-17.3-.5-41.8 20.8-41.8 46.3 0 32.2-54.2 43.2-110.3 18.4-93.9 116.8-157.1 211.7-157.1 102.5 0 197.2 70.7 214.1 169.7zM373.9 388.3c42-19.2 81.3-56.7 96.3-102.1 40.5-123.1-64.2-228-181.7-228-83.4 0-170.3 55.4-186.1 136-9.5 48.9 5 131.4-68.7 131.4 24.9 33.1 58.3 52.6 93.7 64 24.7-21.8 63.9-15.5 79.8 14.3 14.2 1 79.2 1.2 87.9 .8 3.5-6.9 8.5-12.9 14.7-17.5s13.2-7.9 20.8-9.5 15.4-1.4 22.9 .4 14.5 5.3 20.5 10.2zM205.5 187.1c0-34.7 50.8-34.7 50.8 0s-50.8 34.7-50.8 0zm116.6 0c0-34.7 50.9-34.7 50.9 0s-50.9 34.8-50.9 0zM199.5 257.8c-3.4-16.9 22.2-22.2 25.6-5.2l.1 .3c4.1 21.4 29.8 44 64.1 43.1 35.7-.9 59.3-22.2 64.1-42.8 4.5-16.1 28.6-10.4 25.5 6-5.2 22.2-31.2 62-91.5 62.9-42.6 0-80.9-27.8-87.9-64.2l0 0z\"]\n};\nvar faCreativeCommonsRemix = {\n prefix: 'fab',\n iconName: 'creative-commons-remix',\n icon: [512, 512, [], \"f4ee\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM418.1 260.4l4.9 2.2 0 70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5 0-63.8 59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7 151.9 62.9 0 61.6 49.1 20.3zm-70.4 81.5l0-43.8-.4 0 0-1.8-113.8-46.5 0 45.2 113.8 46.9 0-.4 .4 .4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1l0-43-44.3 18.6 0 43.4 44.3-19z\"]\n};\nvar faBandcamp = {\n prefix: 'fab',\n iconName: 'bandcamp',\n icon: [512, 512, [], \"f2d5\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm48.2 326.1l-181 0 84.7-156.1 181 0-84.7 156.1z\"]\n};\nvar faSquareWebAwesomeStroke = {\n prefix: 'fab',\n iconName: 'square-web-awesome-stroke',\n icon: [448, 512, [], \"e684\", \"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm235 81.6l53 46.4 52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224c-12.9-.4-23.2-11-23.2-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224 213.1 177.6c-8.9-4.1-15-13.1-15-23.6 0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"]\n};\nvar faVimeoV = {\n prefix: 'fab',\n iconName: 'vimeo-v',\n icon: [448, 512, [], \"f27d\", \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3-35.2-129.2-50.2-204.9-79.3-204.9-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"]\n};\nvar faStrava = {\n prefix: 'fab',\n iconName: 'strava',\n icon: [384, 512, [], \"f428\", \"M158.4 0L7 292 96.2 292 158.4 175.9 220.1 292 308.6 292 158.4 0zM308.6 292l-43.9 88.2-44.6-88.2-67.6 0 112.2 220 111.5-220-67.6 0z\"]\n};\nvar faUniregistry = {\n prefix: 'fab',\n iconName: 'uniregistry',\n icon: [384, 512, [], \"f404\", \"M192 480c39.5 0 76.2-11.8 106.8-32.2l-213.5 0C115.8 468.2 152.5 480 192 480zM102.9 286.9l0-12.4-102.9 0 0 12.4c0 2.5 0 5 .1 7.4l103.1 0c-.2-2.4-.3-4.9-.3-7.4zm20.5 57l-114.9 0c2.6 8.5 5.8 16.8 9.6 24.8l138.3 0c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7l-104.4 0c.9 7.6 2.2 15 3.9 22.3l109.7 0c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3l-102.9 0 0 17.3 102.9 0 0-17.3zm0-173.2l-102.9 0 0 4.9 102.9 0 0-4.9zm0-34.7l-102.9 0 0 2.5 102.9 0 0-2.5zm0 69.3l-102.9 0 0 7.4 102.9 0 0-7.4zm0 104l-102.9 0 0 14.8 102.9 0 0-14.8zm0-69.3l-102.9 0 0 9.9 102.9 0 0-9.9zm0 34.6l-102.9 0 0 12.4 102.9 0 0-12.4zM269.1 331.5l109.7 0c1.8-7.3 3.1-14.7 3.9-22.3l-104.4 0c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7l102.9 0 0-9.8-102.9 0 0 9.8zm0 37.2l102.9 0 0-12.4-102.9 0 0 12.4zm0-74.3l102.9 0 0-7.4-102.9 0 0 7.4zm0-76.7l0 2.5 102.9 0 0-2.5-102.9 0zM78.1 442.9l227.7 0c11.8-8.7 22.7-18.6 32.2-29.7l-293.1 0c9.6 11 21.4 21 33.2 29.7zm203-371.3l102.9 0 0-4.9-102.9 0 0 4.9zm0 148.5l102.9 0 0-14.8-102.9 0 0 14.8zM38.8 405.7l305.3 0c6.7-8.5 12.6-17.6 17.8-27.2L23 378.5c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1l139.4 0c3.7-8 5.8-16.2 8.5-24.8l-115 0c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4l103.1 0c.1-2.5 .2-4.9 .2-7.4l0-12.4-102.9 0 0 12.4zm0-29.7l102.9 0 0-17.3-102.9 0 0 17.3z\"]\n};\nvar faCcDinersClub = {\n prefix: 'fab',\n iconName: 'cc-diners-club',\n icon: [576, 512, [], \"f24c\", \"M239.7 79.9a175.8 175.8 0 1 0 0 351.6 175.8 175.8 0 1 0 0-351.6zM199.8 359.5c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1l0 207.9zm79.8 .3l0-208.2c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM329.7 448l-90.3 0C133.2 448 45.6 362.5 45.6 257.8 45.6 143.2 133.2 64 239.4 64l90.3 0c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"]\n};\nvar faKubernetes = {\n prefix: 'fab',\n iconName: 'kubernetes',\n icon: [512, 512, [], \"e857\", \"M256 316.1c3.5-.1 7.2 2 8.9 5.1L293 371.7c-3.6 1.2-7.3 2.3-11.2 3.1-21.4 4.9-42.7 3.4-62-3.2l27.9-50.4c1.7-3.1 4.9-5 8.2-5.1zm50.5-23.4l57.2 9.7c-8.4 23.5-24.4 43.9-45.8 57.5l-22.2-53.6c-2-4.7 .1-10.4 4.8-12.6 1.9-.9 4.1-1.3 6-.9zm-89.1 7.7c.5 2.1 .3 4.2-.5 6l-21.8 53.3c-20.5-13.2-36.9-32.9-45.7-57.1l56.7-9.6c5.1-.9 10.1 2.4 11.3 7.5zm58.8-41l-3.9 17.1-15.8 7.6-15.9-7.7-4-17.1 11-13.7 17.7 0 11 13.7zm-73.7-16.7c3.9 3.4 4.4 9.5 1.2 13.6-1.3 1.7-3.1 2.8-5 3.3l-55.3 16.2c-2.8-25.7 3.3-50.7 16.1-71.6l43.1 38.6zm150.7-38.5c6.4 10.4 11.2 22 14.1 34.6 2.9 12.4 3.6 24.8 2.4 36.8l-55.6-16c-5-1.4-8.1-6.7-6.9-11.7 .5-2.1 1.6-3.8 3.1-5.1l42.9-38.5zm-113.8 4.4c-.2 5.2-4.7 9.4-9.9 9.4-2.1 0-4.1-.7-5.7-1.8l-47.3-33.4c14.5-14.3 33.1-24.8 54.5-29.7 3.9-.9 7.8-1.6 11.7-2l-3.3 57.6zm30.8-57.6c25 3.1 48.1 14.4 65.8 31.7l-47.1 33.2c-4.2 3-10 2.3-13.3-1.8-1.3-1.7-2-3.6-2.1-5.6l-3.3-57.5zM254.5-1.3c5.9-.3 11.7 .9 17 3.4L455 89.7c4.7 2.3 8.9 5.6 12.2 9.7s5.6 8.8 6.8 13.9l45.3 196.9c1.2 5.1 1.2 10.4 0 15.5s-3.5 9.9-6.8 13.9L385.6 497.6c-3.3 4.1-7.5 7.4-12.2 9.6s-10 3.4-15.2 3.4l-203.6 0c-5.3 0-10.5-1.2-15.2-3.4s-8.9-5.5-12.2-9.6L.2 339.7c-.7-.9-1.4-1.8-2-2.8-2.6-3.9-4.3-8.3-5.1-12.9s-.7-9.3 .3-13.8L38.7 113.4c1.2-5.1 3.5-9.9 6.8-13.9s7.5-7.4 12.2-9.7L241.1 2.1c4.2-2 8.8-3.2 13.4-3.4zm1.8 67c-6.1 0-11 5.5-11 12.2 0 .1 0 .2 0 .3 0 .9-.1 2 0 2.8 .1 3.9 1 6.9 1.5 10.4 .9 7.7 1.7 14 1.2 19.9-.5 2.2-2.1 4.3-3.6 5.7l-.2 4.6c-6.6 .5-13.2 1.6-19.8 3.1-28.5 6.5-53.1 21.1-71.8 41-1.2-.8-3.3-2.3-4-2.8-2 .3-4 .9-6.5-.6-4.9-3.3-9.4-7.9-14.8-13.4-2.5-2.6-4.3-5.1-7.2-7.7-.7-.6-1.7-1.4-2.4-2-2.3-1.8-5-2.8-7.7-2.9-3.4-.1-6.6 1.2-8.8 3.9-3.8 4.7-2.5 12 2.7 16.2 .1 0 .1 .1 .2 .1 .7 .6 1.6 1.3 2.3 1.8 3.1 2.3 6 3.5 9.1 5.3 6.6 4.1 12 7.4 16.3 11.5 1.7 1.8 2 4.9 2.2 6.3l3.5 3.2c-18.8 28.4-27.6 63.4-22.4 99.1l-4.6 1.3c-1.2 1.6-2.9 4-4.7 4.7-5.6 1.8-12 2.4-19.7 3.3-3.6 .3-6.7 .1-10.5 .8-.8 .2-2 .4-2.9 .7l-.1 0-.2 .1c-6.5 1.6-10.7 7.5-9.3 13.4 1.3 5.9 7.7 9.4 14.2 8l.2 0c.1 0 .1-.1 .2-.1 .9-.2 2.1-.4 2.8-.6 3.8-1 6.5-2.5 9.8-3.8 7.3-2.6 13.3-4.8 19.2-5.6 2.4-.2 5 1.5 6.3 2.2l4.8-.8c11 34.1 34.1 61.7 63.3 79.1l-2 4.8c.7 1.9 1.5 4.4 1 6.2-2.1 5.5-5.8 11.4-9.9 17.9-2 3-4.1 5.3-5.9 8.8-.4 .8-1 2.1-1.4 3-2.8 6-.8 13 4.7 15.6 5.5 2.6 12.2-.1 15.2-6.2l0 0c.4-.9 1-2 1.4-2.8 1.6-3.6 2.1-6.6 3.2-10.1 2.9-7.3 4.5-14.9 8.5-19.7 1.1-1.3 2.9-1.8 4.8-2.3l2.5-4.5c25.5 9.8 54 12.4 82.5 5.9 6.5-1.5 12.8-3.4 18.8-5.7 .7 1.2 2 3.6 2.3 4.2 1.9 .6 3.9 .9 5.6 3.4 3 5.1 5 11.2 7.5 18.5 1.1 3.4 1.6 6.5 3.2 10.1 .4 .8 1 2 1.4 2.8 2.9 6.1 9.7 8.8 15.2 6.2 5.4-2.6 7.5-9.6 4.7-15.6-.4-.9-1-2.1-1.4-3-1.8-3.4-3.9-5.7-5.9-8.7-4.2-6.5-7.6-11.9-9.8-17.4-.9-2.8 .2-4.6 .8-6.5-.4-.5-1.3-3.2-1.8-4.4 30.4-17.9 52.8-46.6 63.3-79.6 1.4 .2 3.9 .7 4.7 .8 1.7-1.1 3.2-2.5 6.2-2.3 5.9 .8 11.9 3 19.2 5.6 3.4 1.3 6.1 2.8 9.8 3.8 .8 .2 1.9 .4 2.8 .6 .1 0 .1 0 .2 .1l.2 0c6.5 1.4 12.8-2.2 14.2-8s-2.8-11.8-9.3-13.4c-.9-.2-2.3-.6-3.2-.7-3.8-.7-6.9-.5-10.5-.8-7.7-.8-14-1.4-19.7-3.2-2.3-.9-4-3.7-4.8-4.8l-4.4-1.3c2.3-16.6 1.7-33.9-2.3-51.3-4-17.5-11.1-33.5-20.6-47.6 1.1-1 3.3-2.9 3.9-3.5 .2-2 0-4 2.1-6.2 4.3-4.1 9.8-7.4 16.3-11.5 3.1-1.8 6-3 9.1-5.3 .7-.5 1.7-1.3 2.4-1.9 5.3-4.2 6.5-11.4 2.7-16.2s-11.1-5.2-16.4-1c-.7 .6-1.8 1.4-2.4 2-2.9 2.5-4.8 5-7.2 7.7-5.4 5.5-9.9 10.1-14.8 13.4-2.1 1.2-5.3 .8-6.7 .7l-4.2 3c-23.8-25-56.2-41-91.2-44.1-.1-1.5-.2-4.1-.2-4.9-1.4-1.4-3.2-2.5-3.6-5.5-.5-5.9 .3-12.3 1.3-19.9 .5-3.6 1.4-6.6 1.5-10.4 0-.9 0-2.2 0-3.1 0-6.7-4.9-12.2-11-12.2z\"]\n};\nvar faPinterest = {\n prefix: 'fab',\n iconName: 'pinterest',\n icon: [512, 512, [], \"f0d2\", \"M504 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3 .8-3.4 5-20.3 6.9-28.1 .6-2.5 .3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2C161.5 437.2 163.5 467.4 165.6 487 73.4 450.9 8 361.1 8 256 8 119 119 8 256 8S504 119 504 256z\"]\n};\nvar faAlgolia = {\n prefix: 'fab',\n iconName: 'algolia',\n icon: [512, 512, [], \"f36c\", \"M256 0c-139.9 0-254 112.7-256 252.1-2 141.5 112.9 258.7 254.5 259.5 43.7 .3 85.9-10.4 123.3-30.7 3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3-26.1 11.1-54.5 16.8-83.7 16.4-114.4-1.5-206.9-96.6-205.1-211 1.8-112.9 94.3-204.2 207.7-204.2l207.7 0 0 369-117.8-104.7c-3.8-3.4-9.7-2.7-12.7 1.3-18.9 25-49.7 40.6-83.9 38.2-47.5-3.3-85.9-41.5-89.5-88.9-4.2-56.6 40.6-103.9 96.3-103.9 50.4 0 91.9 38.8 96.2 88 .4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4 2.2-11.8 3-24.2 2.1-36.8-4.9-72-63.3-130-135.4-134.4-82.7-5.1-151.8 59.5-154 140.6-2.1 78.9 62.6 147 141.6 148.7 33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7l0-492c0-5.4-4.4-9.7-9.7-9.7L256 0z\"]\n};\nvar faStackpath = {\n prefix: 'fab',\n iconName: 'stackpath',\n icon: [448, 512, [], \"f842\", \"M244.6 232.4c0 8.5-4.3 20.5-21.3 20.5l-19.6 0 0-41.5 19.6 0c17.1 0 21.3 12.4 21.3 21zM448 32l0 448-448 0 0-448 448 0zM151.3 287.8c0-21.2-12.1-34.5-46.7-44.8-20.6-7.4-26-10.9-26-18.6s7-14.6 20.4-14.6c14.1 0 20.8 8.4 20.8 18.4l30.7 0 .2-.6c.5-19.6-15.1-41.6-51.1-41.6-23.4 0-52.6 10.8-52.6 38.3 0 19.4 9.2 31.3 50.7 44.4 17.3 6.2 21.9 10.4 21.9 19.5 0 15.2-19.1 14.2-19.5 14.2-20.4 0-25.7-9.1-25.7-21.9l-30.8 0-.2 .6c-.7 31.3 28.4 45.2 56.6 45.2 30 0 51.1-13.6 51.1-38.3zm125.4-55.6c0-25.3-18.4-45.5-53.4-45.5l-51.8 0 0 138.2 32.2 0 0-47.4 19.6 0c30.3 0 53.4-16 53.4-45.4zM297.9 325l49.1-138.2-31.1 0-47.9 138.2 29.9 0zM404.5 186.8l-31.1 0-47.9 138.2 29.9 0 49.1-138.2z\"]\n};\nvar faOctopusDeploy = {\n prefix: 'fab',\n iconName: 'octopus-deploy',\n icon: [512, 512, [], \"e082\", \"M455.7 349.2c-45.9-39.1-36.7-77.9-16.1-128.1 35.7-87-23.5-186.9-109.6-212.8-92.9-27.9-195.7 16-230.3 108.8-8.7 23.5-12.5 48.5-11 73.5 1.7 29.5 14.7 53 24.1 80.3 17.2 50.2-28.1 92.7-66.7 117.6-46.8 30.2-36.3 39.9-8.4 41.9 23.4 1.7 44.5-4.5 65.3-15 9.2-4.6 40.7-18.9 45.1-28.6-12.2 26.6-37 72.7-21.5 102.1 19.1 36.2 67.1-31.8 76.7-45.8 8.6-12.6 43-81.3 63.6-46.9 18.9 31.4 8.6 76.4 35.7 104.6 32.9 34.2 51.2-18.3 51.4-44.2 .2-16.4-6.1-95.9 29.9-59.9 21.4 21.4 52.9 71.2 88.6 67 38.7-4.5-22.1-68-28.3-78.7 5.4 4.3 53.7 34.1 53.8 9.5 .1-18.8-30.1-34.7-42.5-45.3z\"]\n};\nvar faYammer = {\n prefix: 'fab',\n iconName: 'yammer',\n icon: [512, 512, [], \"f840\", \"M500.7 159.5c-.4-1.8-1.2-3.4-2.3-4.8s-2.5-2.6-4.1-3.5c-3.1-1.6-6.7-2-10.1-1.1l-26.4 6.6 0-.2-22.3 5.8-1.2 .3-.6-2.2c-15.5-58.3-45-111.9-86.1-156.2-2.6-2.7-6.1-4.2-9.8-4.3s-7.3 1.3-10 3.8l-102.9 102.7-199.9 0c-6.6 0-12.9 2.6-17.6 7.3S0 124.8 0 131.4l0 249C0 387 2.6 393.3 7.3 398s11 7.3 17.6 7.3L225 405.3 328.1 508c2.6 2.6 6 4 9.7 4s7.1-1.4 9.7-4c.1-.1 .2-.3 .4-.4 29.3-31.5 52.8-67.8 69.6-107.4 6.9-16.5 12.7-33.5 17.3-50.8l0 0 20.4 5.3 0-.1 28.3 7.3c.9 .2 1.7 .4 2.6 .5 1.4 .2 2.8 .2 4.1-.1 2.5-.5 4.8-1.7 6.7-3.4s3.2-4 3.8-6.5c15.2-63.4 15.2-129.6 .1-193l0 0zM337.1 24.7l0 0 0 0 0 0zM226.9 189.8l-52.6 91.3c-1 1.7-1.5 3.7-1.5 5.7l0 46.2c0 5.8-2.3 11.4-6.5 15.6s-9.7 6.4-15.6 6.4l-3.4 0c-5.8 0-11.4-2.3-15.6-6.4s-6.5-9.7-6.5-15.6l0-45.7c0-1.9-.5-3.8-1.4-5.5L72.3 189.6c-1.9-3.4-2.8-7.1-2.8-11s1.1-7.6 3-10.9 4.7-6.1 8.1-8 7.1-2.9 11-2.9l3.3 0c4 0 8 1.1 11.5 3.2s6.3 5.1 8.1 8.7l36.4 70.3 37.5-70.5c1.8-3.5 4.6-6.4 7.9-8.4s7.2-3.2 11.1-3.2 7.8 .9 11.2 2.8 6.3 4.7 8.2 8.1c2 3.3 3 7.1 3 11s-1 7.7-3 11l0 0zM337.1 24.7c35.9 40.6 61.9 89 75.8 141.3l.6 2-114.1 29.6 0-66.1c0-6.6-2.7-12.9-7.3-17.6s-11-7.3-17.6-7.3l-19.4 0 82.1-81.8zM397.6 392l0 0 0 0c-14.7 34.8-35.1 67-60.2 95.2l-82.2-81.9 19.2 0c6.6 0 12.9-2.6 17.6-7.3s7.3-11 7.3-17.6l0-66.2 114.6 29.9c-4.4 16.3-9.8 32.3-16.3 47.9l0 0zm84-52.4l0 0-50.6-13.1-131.7-34.3 0-72.5 119.7-31 4.5-1.2c29.9-7.7 49.2-12.8 58.1-15.1 12 55.1 12 112.1 0 167.2z\"]\n};\nvar faModx = {\n prefix: 'fab',\n iconName: 'modx',\n icon: [448, 512, [], \"f285\", \"M356 241.8l36.7 23.7 0 214.5-133-83.8 96.3-154.4zM440 75l-213.7 0-23 37.8 153.5 96.5 83.2-134.3zM351 217.8l-295.8-185.8 0 214.5 46 29 249.8-57.7zM97 294.2L8 437 221.7 437 346.7 236.5 97 294.2z\"]\n};\nvar faSquareThreads = {\n prefix: 'fab',\n iconName: 'square-threads',\n icon: [448, 512, [], \"e619\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9 10.4 24.3 11.4 63.9-20.2 95.4-24.2 24.1-53.5 35-95.1 35.3l-.2 0c-46.8-.3-82.8-16.1-106.9-46.8-21.5-27.3-32.6-65.4-33-113.1l0-.2c.4-47.7 11.5-85.7 33-113.1 24.2-30.7 60.2-46.5 106.9-46.8l.2 0c46.9 .3 83.3 16 108.2 46.6 12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6-19.4-23.9-48.7-36.1-87-36.4-38 .3-66.8 12.5-85.5 36.2-17.5 22.3-26.6 54.4-26.9 95.5 .3 41.1 9.4 73.3 26.9 95.5 18.7 23.8 47.4 36 85.5 36.2 34.3-.3 56.9-8.4 75.8-27.3 21.5-21.5 21.1-47.9 14.2-64-4-9.4-11.4-17.3-21.3-23.3-2.4 18-7.9 32.2-16.5 43.2-11.4 14.5-27.7 22.4-48.4 23.5-15.7 .9-30.8-2.9-42.6-10.7-13.9-9.2-22-23.2-22.9-39.5-1.7-32.2 23.8-55.3 63.5-57.6 14.1-.8 27.3-.2 39.5 1.9-1.6-9.9-4.9-17.7-9.8-23.4-6.7-7.8-17.1-11.8-30.8-11.9l-.4 0c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1l.6 0c41.8 .3 66.6 26.3 69.1 71.8 1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8-8.8-1.9-18.6-2.9-29-2.9-3.2 0-6.4 .1-9.6 .3-28.6 1.6-38.1 15.5-37.4 27.9 .9 16.7 19 24.5 36.4 23.6l-.1-.1z\"]\n};\nvar faOldRepublic = {\n prefix: 'fab',\n iconName: 'old-republic',\n icon: [512, 512, [], \"f510\", \"M243.8 10.2c7.5-.3 15-.3 22.5-.1 3.6 .1 7.2 .4 10.8 .7 4.9 .3 9.8 1 14.7 1.6 2.9 .4 5.8 1 8.7 1.5 7.9 1.3 15.7 3.3 23.4 5.4 12.2 3.5 24.2 7.9 35.8 13.2 26.6 12.2 50.9 29.2 71.6 49.9 20 20.1 36.7 43.5 48.9 69.2 1.1 2.6 2.4 5.1 3.5 7.7 2.8 6.4 5.4 13 7.6 19.6 4.1 12.3 7.3 25 9.4 37.8 .6 3.1 1 6.3 1.4 9.5 .5 3.8 .9 7.7 1.2 11.6 .8 8.3 .8 16.7 .8 25.1-.1 5-.3 9.9-.7 14.9-.2 3.4-.5 6.8-1 10.1-.4 2.7-.6 5.5-1.1 8.2-.9 5.1-1.7 10.3-2.9 15.4-4.1 18.5-10.3 36.6-18.5 53.6-15.8 32.8-38.8 62.2-67.1 85.1-17.3 14.1-36.4 25.9-56.9 34.9-6.2 2.7-12.5 5.3-18.9 7.4-3.5 1.2-7 2.4-10.6 3.4-6.6 1.9-13.3 3.6-20 5-4.7 .9-9.3 1.7-14 2.5-5.3 .7-10.5 1.4-15.8 1.7-6.7 .7-13.4 .8-20.1 .8-6.8 0-13.6-.1-20.4-.8-3.3-.2-6.6-.5-9.8-1-2.7-.4-5.5-.6-8.2-1.1-4.1-.7-8.2-1.4-12.4-2.2-4.2-.9-8.5-1.9-12.7-3-8.6-2.2-17.1-5-25.4-8.1-10.5-4.1-20.8-8.7-30.6-14.2-2.1-1.2-4.3-2.3-6.4-3.6-11.2-6.6-21.9-14.1-31.9-22.3-34.7-28.4-61.4-66.4-76.4-108.7-3.1-8.7-5.7-17.6-7.8-26.7-1.5-6.2-2.5-12.4-3.6-18.7-.4-2.3-.6-4.7-1-7.1-.6-4-.8-8-1.2-11.9-.8-9.5-.7-19-.5-28.5 .1-3.5 .3-7 .7-10.5 .3-3.2 .5-6.4 .9-9.5 .4-2.8 .7-5.6 1.2-8.4 .7-3.9 1.3-7.9 2.1-11.8 3.4-16.5 8.5-32.7 15.3-48.2 1.2-2.9 2.6-5.7 3.9-8.6 8.1-16.7 17.9-32.6 29.5-47.1 20-25.4 45.1-46.7 73.3-62.5 7.5-4.2 15.2-8 23.1-11.4 15.8-6.9 32.4-12 49.3-15.4 3.5-.7 7-1.2 10.6-1.8 2.6-.5 5.3-.7 7.9-1.1 3.5-.5 7.1-.7 10.6-1 2.5-.2 4.9-.4 7.4-.5zm8.6 24.4c-9.2 .1-18.4 1-27.6 2.2-7.3 1.1-14.5 2.6-21.7 4.3-13.9 3.5-27.5 8.3-40.5 14.4-10.5 5-20.6 10.7-30.2 17.2-4.2 2.9-8.4 5.8-12.3 9-5.1 4-10 8.2-14.7 12.6-2.5 2.2-4.8 4.7-7.2 7.1-28.2 28.8-48.4 65.4-57.5 104.7-2 8.4-3.5 17-4.4 25.6-1.1 8.9-1.4 17.9-1.4 26.8 .1 7.1 .4 14.3 1.2 21.4 .6 7.1 1.9 14.2 3.2 21.2 1.1 4.6 2 9.3 3.3 13.9 6.3 23.4 16.5 45.7 30.1 65.8 8.6 13 18.8 24.9 30 35.8 16.3 15.8 35 29 55.3 39.2 7.3 3.5 14.7 6.9 22.3 9.6 5 1.8 10.1 3.6 15.2 5 11.3 3.2 22.8 5.6 34.4 7.1 2.9 .3 5.8 .6 8.7 .9 13.8 1.1 27.7 1 41.5-.4 4.4-.6 8.9-1 13.3-1.8 3.6-.7 7.3-1.2 10.9-2.1 4.1-1 8.3-1.9 12.4-3.1 26.5-7.3 51.6-19.7 73.6-36.2 15.8-11.8 30-25.8 42.1-41.3 3.3-4 6.2-8.3 9.1-12.6 3.4-5.1 6.6-10.2 9.6-15.5 2.4-4.4 4.7-8.9 7-13.4 5.7-12.1 10.3-24.6 13.8-37.5 2.6-10 4.7-20.2 5.9-30.4 1.8-13.5 1.9-27.1 1.3-40.7-.3-3.9-.7-7.8-1-11.7-2.2-19.1-6.8-37.9-13.8-55.8-6-15.1-13.5-29.6-22.6-43.1-12.7-18.8-28.2-35.7-46-49.8-25-20-54.5-34.5-85.6-42.1-7.8-1.9-15.7-3.3-23.6-4.4-3.9-.6-7.8-.8-11.8-1.2-7.4-.6-14.8-.7-22.2-.6zM147.3 83.5c13.3-8.9 28.1-15.4 43.3-20.2-3.2 1.8-6.4 3.4-9.5 5.3-11.2 6.7-21.5 14.9-30.4 24.5-6.8 7.4-12.8 15.7-17 24.9-3.3 6.9-5.6 14.2-6.9 21.7-.9 4.8-1.3 9.8-1.2 14.8 .1 13.7 4.4 27.1 11.3 38.8 5.9 10.2 13.6 19.3 22.4 27.3 4.9 4.4 10.2 8.1 15 12.6 2.3 2.2 4.5 4.4 6.4 6.9 2.6 3.3 4.9 7 6 11.1 .9 3 .7 6.2 .7 9.3 0 4.1 0 8.2 0 12.3 .1 3.5 0 7.1 .1 10.6 .1 2.4 0 4.8 .1 7.1 .2 5.8 .1 11.5 .1 17.3 .1 2.9 0 5.8 .1 8.7 0 1.6 .1 3.3 0 4.9-.9 .1-1.8 .2-2.7 .2-11 0-21.9-2.6-32-6.9-6-2.7-11.8-5.9-17.1-9.8-5.8-4.2-11.1-9-15.8-14.3-6.5-7.2-12-15.4-16.6-23.9-1.1-2-2.2-4-3.2-6.1-1.2-2.6-2.6-5.1-3.7-7.8-4-9.7-6.6-19.9-8.1-30.3-.5-4.4-1.1-8.9-1.2-13.3-.7-15.7 .8-31.6 4.7-46.8 2.1-8.2 4.8-16.2 8.3-23.8 6.3-14.2 15.3-27.2 26.3-38.2 6.3-6.2 13.1-11.8 20.5-16.7zM322.7 63.4c2.7 .7 5.4 1.7 8.1 2.7 6.4 2.3 12.7 4.8 18.7 8 13.1 6.4 25.3 14.8 35.8 25 10.2 10 18.7 21.6 25.1 34.3 1.3 2.7 2.6 5.5 3.8 8.3 6.3 15.1 10 31.3 11.2 47.6 .4 4.5 .4 9.1 .5 13.6 .1 11.6-1.5 23.3-4.3 34.5-2 7.3-4.3 14.5-7.9 21.2-3.2 6.6-6.7 13.2-10.8 19.2-6.9 10.5-15.6 19.9-25.8 27.2-10.5 7.6-22.6 13-35.4 15.4-3.5 .7-7.1 1.1-10.7 1.2-1.8 .1-3.7 .2-5.6-.1-.3-2.1 0-4.3 0-6.5 0-3.7 .1-7.4 .1-11.2 .2-7 0-14.1 .2-21.1 0-2.4 0-4.8 0-7.1 .2-5.1 0-10.1 .1-15.2 .1-3-.2-6 .5-9 .7-2.5 1.8-4.9 3.1-7.1 4.5-7.3 11.1-13 17.7-18.3 5.4-4.2 10.5-8.8 15-13.8 7.7-8.4 14.2-17.9 18.8-28.3 2.5-5.9 4.5-12.1 5.5-18.5 .9-4.4 1.1-8.8 1-13.3 0-7.8-1.4-15.6-3.6-23.2-1.8-5.7-4.3-11.2-7.1-16.4-3.9-6.9-8.6-13.3-14-19.2-9.9-10.8-21.8-19.9-34.6-27.1-1.8-1-3.8-1.8-5.6-3zM221.9 121.9c1-1.2 2-2.3 3.1-3.4-.6 .9-1.3 1.8-2 2.7-3.1 3.9-5.5 8.3-7 13.1-.9 3.3-1.7 6.6-1.7 10-.1 2.5-.1 5.1 .3 7.6 1.1 7.6 4.3 14.9 8.8 21.1 2 2.7 4.2 5.3 6.9 7.3 1.6 1.3 3.5 2.1 5.3 3 3.1 1.7 6.3 3.2 9.1 5.5 2.7 2.1 4.6 5.3 4.4 8.8 0 73.7 0 147.3 0 221 0 1.4-.1 2.7 0 4 .1 1.5 .8 2.8 1.5 4.1 .9 1.7 1.8 3.3 3.2 4.6 .9 .8 2 1.4 3.2 1.2 1.5-.2 2.7-1.4 3.4-2.6 1-1.5 1.7-3.2 2.3-4.9 .8-2.1 .4-4.4 .5-6.6 .1-4 0-8.1 .1-12.1 0-5.9 0-11.8 .1-17.7 .1-3.6 0-7.2 .1-10.9 .2-4 0-8.1 .1-12.1 0-6 0-12 .1-18 .1-3.6 0-7.2 .1-10.9 .1-3.9 0-7.9 .1-11.8 0-6 0-12 .1-18 .2-3.9 0-7.9 .2-11.8 .3 1.4 .1 2.9 .2 4.4 .2 3.6 .4 7.2 .8 10.8 .3 3.4 .4 6.9 .9 10.3 .4 3.1 .5 6.2 1 9.3 .6 4.1 .9 8.2 1.5 12.3 1.5 9 2.8 18.1 5.1 27 1.1 4.8 2.4 9.6 4 14.3 2.5 7.9 5.7 15.7 10.3 22.6 1.7 2.6 3.9 5 6.1 7.2 .3 .2 .6 .5 .9 .7 .6 .3 1.3-.1 1.7-.6 .7-.9 1.2-1.9 1.7-2.9 4.1-7.8 8.2-15.6 12.3-23.3 .7-1.3 1.4-2.6 2.6-3.6 1.8-1.6 3.8-2.7 6-3.6 2.9-1.2 5.9-2.2 9-2.4 6.6-.6 13.1 .7 19.6 1.8 3.7 .6 7.4 1.2 11.1 1.4 3.7 .1 7.5 .1 11.2-.3 8.6-.9 17-3 24.9-6.2 5.3-2.2 10.5-4.8 15.3-7.9 11.5-7.2 21.5-16.6 30-27 1.2-1.4 2.2-2.9 3.5-4.3-1.2 3.2-2.7 6.4-4.2 9.5-1.3 2.9-2.8 5.6-4.3 8.4-5.2 9.6-11 18.9-17.8 27.5-4 5.2-8.5 10.1-13.3 14.6-6.6 6.1-14.1 11.4-22.4 14.8-8.2 3.4-17.3 4.6-26.1 3.3-3.6-.6-7-1.7-10.4-2.9-2.8-1-5.4-2.4-8-3.7-3.4-1.7-6.6-3.8-9.7-6.1 2.7 3.1 5.7 5.9 8.7 8.6 4.3 3.8 8.7 7.3 13.6 10.2 4 2.5 8.3 4.4 12.8 5.5 1.5 .4 3 .5 4.5 .6-1.3 1.1-2.6 2-4 3-9.6 6.5-20 11.9-30.7 16.4-20.9 8.7-43.2 14-65.7 15.3-4.7 .2-9.3 .4-14 .4-5-.1-10-.1-14.9-.7-11.2-.8-22.3-2.7-33.2-5.4-10.4-2.7-20.6-6.1-30.3-10.6-8.7-3.9-17.1-8.4-25-13.8-1.8-1.3-3.7-2.5-5.4-4.1 6.6-1.2 13-3.4 19-6.5 5.7-2.9 11-6.7 15.6-11.1 2.2-2.2 4.3-4.6 6.2-7.1-3.4 2.1-6.9 4.2-10.6 5.8-4.4 2.2-9.1 3.8-13.8 5-5.7 1.5-11.7 1.7-17.6 1.1-8.1-1-15.9-4.3-22.5-9-4.3-2.9-8.2-6.4-12-10.1-9.9-10.2-18.2-21.8-25.7-33.9-3.9-6.3-7.5-12.7-11.1-19.2-1-2-2.1-4.1-3.2-6.1 2.8 2.9 5.6 6 8.4 8.9 19.2 19.2 37.6 32.3 53.7 35.5 3.1 .7 6.3 .5 9.5 .8 2.8 .3 5.6 .2 8.3 .3 5 .1 10.1 0 15.2-.2 3.6-.2 7.3-.7 10.9-1.1 2.1-.2 4.1-.7 6.1-1.2 3.9-1 8.1-1 11.8 .6 4.8 1.8 8.4 5.6 11.4 9.7 2.2 3 4.1 6.2 5.7 9.6 1.2 2.4 2.5 4.8 3.6 7.3 1 2.2 2.2 4.4 3.4 6.5 .7 1 1.4 2.2 2.6 2.6 1.1-.8 1.7-1.9 2.3-3 2.1-4.2 3.4-8.6 4.9-13 2-6.6 3.8-13.3 5.2-20 2.2-9.3 3.2-18.7 4.5-28.1 .6-4 .8-8 1.3-12 .9-10.6 1.9-21.3 2.2-31.9 .1-1.9 .2-3.7 .3-5.6 0-4.3 .2-8.7 .2-13 0-2.4 0-4.8 0-7.1 0-5.1-.2-10.1-.2-15.2-.2-6.6-.7-13.2-1.3-19.8-.7-5.9-1.5-11.8-3.1-17.5-2-7.7-5.6-15-9.8-21.8-3.2-5.1-6.8-9.9-11.1-14-3.9-3.9-8.6-7.1-13.9-8.4-1.5-.4-3.1-.4-4.6-.6 .1-3 .7-5.9 1.3-8.8 1.6-7.7 3.8-15.3 6.8-22.6 1.5-4 3.4-7.9 5.4-11.7 3.4-6.6 7.6-12.8 12.5-18.5zm31.3 1.7c.4-.1 .7-.1 1.1-.2 .2 1.8 .1 3.6 .1 5.4l0 38.1c0 1.7 .1 3.5-.2 5.2-.4 0-.7 0-1.1 0-.9-3.8-1.7-7.6-2.6-11.3-.4-1.5-.6-3.1-1.1-4.6-1.7-.2-3.4-.2-5.2-.2-5.1 0-10.1 0-15.2 0-1.7 0-3.3 .1-5 0 0-.4-.3-.9 .2-1.2 1.3-.7 2.7-.9 4.1-1.4 3.4-1.1 6.9-2.2 10.3-3.3 1.4-.5 2.9-.7 4.2-1.5 0-.6 0-1.1 0-1.7-1.2-.6-2.5-.9-3.8-1.3-3.1-1-6.3-2-9.4-3-1.8-.6-3.7-1-5.4-1.8 0-.4-.1-.7-.1-1.1 5.1-.2 10.2 .1 15.3-.1 3.4-.1 6.7 .1 10.1-.1 .1-.4 .3-.8 .4-1.2 1.1-4.9 2.3-9.8 3.4-14.7zm6-.2c.4 0 .7 .1 1.1 .2 1 3.8 1.7 7.8 2.7 11.6 .4 1.4 .6 2.9 1 4.3 2.5 .2 5.1 0 7.6 0 5.2 .1 10.3 .1 15.5 .1 .8 0 1.5 0 2.3 .1 0 .4-.1 .7-.1 1.1-1.8 .8-3.8 1.2-5.7 1.9-3.7 1.2-7.5 2.4-11.2 3.6-.6 .2-1.1 .4-1.7 .6-.2 .6-.2 1.1-.1 1.7 .9 .5 1.8 .8 2.8 1.1 4.9 1.5 9.7 3.1 14.6 4.6 .4 .1 .8 .3 1.1 .5 .4 .3 .2 .8 .2 1.2-1.7 .1-3.3 0-5 0-5.2 0-10.3 0-15.5 0-1.6 0-3.2 0-4.8 .2-.5 1.7-.7 3.4-1.2 5.1-.9 3.6-1.5 7.2-2.5 10.8-.4 0-.7 0-1.1 .1-.3-1.7-.2-3.5-.2-5.2l0-38.1c0-1.8-.1-3.6 .1-5.4zm-186 45c1.1-2.2 2.1-4.4 3.4-6.5-1.8 7.6-2.9 15.3-3.6 23-.8 7.7-.8 15.5-.5 23.2 1.1 19.9 5.5 39.8 14.2 57.9 3 6 6.4 11.8 10.5 17.1 6.1 7.5 12.5 14.8 19.8 21.1 4.8 4.1 10 7.8 15.5 10.8 3.3 1.7 6.5 3.4 9.9 4.7 5 2 10.2 3.6 15.4 4.9 3.8 1 7.8 1.4 11.5 2.7 5 1.6 9.5 4.6 13 8.4 4.9 5.2 8.1 11.9 10.2 18.7 1 2.9 1.6 5.9 2.2 8.9 .2 .8 .2 1.5 .2 2.3-6.5 2.8-13.3 5.1-20.3 6.2-4.1 .8-8.3 1-12.5 1.1-10.2 .2-20.5-1.8-30.1-5.1-3.7-1.4-7.5-2.9-11-4.7-8.1-3.8-15.6-8.7-22.5-14.5-2.9-2.6-5.8-5.1-8.4-8-9.2-9.8-16.3-21.4-21.8-33.7-2.4-5.5-4.6-11.2-6.4-17-1.2-3.9-2.4-7.9-3.3-11.9-.7-2.9-1.2-5.9-1.9-8.9-.5-2.1-.7-4.3-1-6.5-.8-5.4-1.3-10.9-1.3-16.4 .1-6.2 .2-12.4 1.1-18.5 .4-2.9 .7-5.7 1.2-8.6 1-5.7 2.1-11.4 3.7-16.9 3.1-11.6 7.5-23 12.7-33.8zm363.7-6.4c1.1 1.7 1.9 3.5 2.8 5.3 2.1 4.5 4.2 8.9 6 13.5 7.6 18.8 12.3 38.8 13 59 0 1.8 .1 3.5 .1 5.3 .1 9.6-1.3 19.1-3.2 28.5-.7 3.6-1.5 7.2-2.6 10.7-4 14.7-10 29-18.4 41.8-8.2 12.6-19 23.5-31.8 31.4-5.7 3.6-11.8 6.6-18 9.2-5.8 2.2-11.7 4-17.8 5.1-6.4 1-12.9 1.5-19.4 1.2-7.9-.5-15.8-2.1-23.2-4.8-1.9-.8-3.9-1.5-5.8-2.3-.2-1.5 .2-3 .5-4.5 1.2-5.7 3-11.4 5.7-16.6 2.4-4.5 5.5-8.7 9.5-11.9 2.4-2.1 5.2-3.6 8.2-4.8 3.6-1.5 7.5-2 11.2-2.8 7.2-1.7 14.4-3.9 21.2-7 10.3-4.7 19.7-11.4 27.6-19.5 1.6-1.6 3.2-3.2 4.7-4.9 3.4-3.8 6.7-7.6 9.8-11.5 7.5-10.1 12.8-21.6 16.7-33.5 1.6-5.3 3.2-10.6 4.2-16.1 .6-2.9 1-5.8 1.5-8.7 .9-6.1 1.6-12.2 1.7-18.4 .1-6.6 .1-13.3-.5-19.9-.7-8-1.9-16-3.7-23.8z\"]\n};\nvar faSuse = {\n prefix: 'fab',\n iconName: 'suse',\n icon: [640, 512, [], \"f7d6\", \"M604.5 210a10.4 10.4 0 1 1 -11.4-17.4 10.4 10.4 0 1 1 11.4 17.4zM621 187.2a38.5 38.5 0 1 1 -75 17.6 38.5 38.5 0 1 1 75-17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4 1 3.1 2.4 7.3 5.5 8.9 .2 .1 .3 .2 .5 .2 5.7 2.1 20.3 1.7 20.3 1.7l26.8 0c2.3 0 22.4 0 21.9-2.3-2.4-10.8-14.9-12.7-24.4-18.3-8.7-5.2-17-11.1-20.8-21.3-2-5.2-.8-17.4 2.6-21.8 2.5-3.2 6.1-5.3 10-6.2 4.3-.9 8.8-.1 13.1 .3 5.3 .5 10.6 1.5 15.9 2.2 10.3 1.3 20.6 1.9 31 1.6 17.1-.5 34.2-3.2 50.4-8.7 11.3-3.8 22.4-8.9 32-16.1 10.9-8.1 8.1-7.4-3-6.2-13.3 1.4-26.6 1.6-39.9 .8-12.4-.7-24.7-2.2-35.9-7.9-8.8-4.6-16.4-9.1-23.4-16.2-1-1.1-1.7-4.2 .2-6.2 1.9-1.9 5.8-.8 7 .2 12.2 10.2 30.5 18.6 49.3 19.5 10.2 .5 20.1 .7 30.4 .3 5.1-.2 12.8-.2 17.9-.3 2.6 0 9.8 .7 11.2-2.1 .4-.8 .4-1.8 .3-2.7-1.5-40.9-4.5-86.9-47.3-106.5-31.9-14.6-79.7-37.2-99.9-46.6-4.7-2.2-10.2 1.3-10.2 6.5 0 13.6 .7 33.3 .7 51.1-9.7-9.9-26-16.1-38.4-21.8-14.1-6.5-28.7-12-43.5-16.6-29.8-9.2-60.7-14.9-91.7-18-35.2-3.5-71-1.8-105.7 5.3-56.9 12.2-113.1 39.7-155.7 79.8-26.1 24.6-46.6 59.7-48 95.2-2 50.3 12.1 77.3 38 105.2 41.3 44.4 130.2 50.6 166.2-2 16.2-23.7 19.7-55.8 8-82-11.8-26.2-38.8-45.1-67.4-46-22.2-.7-45.9 10.6-54.5 31.1-6.5 15.7-2.8 35.1 9 47.3 4.6 4.8 10.9 8.7 17.7 7.1 4-.9 7.4-3.9 8-8 .9-6-4.4-9.9-7.6-14.5-5.8-8.3-4.7-20.9 2.7-27.9 6.2-6 15.3-7.8 23.9-7.7 8 0 16.2 1.4 23.1 5.5 9.7 5.7 16.2 16.2 18.4 27.2 6.7 33-20.2 59.9-56.6 62-18.6 1.1-37.6-3.8-52.1-15.5-36.9-29.8-45.9-90.3-3.8-122.7 40-30.7 90.4-22.8 120.2-6.8 23.8 12.8 41.5 33.6 55 56.7 6.7 11.6 12.5 23.7 17.8 36.1 5.1 11.8 9.9 23.8 20.2 32.5 6.8 5.8 15.2 5.6 24.1 5.6l50.8 0c6.9 0 5.2-4.6 2.2-7.7-6.7-6.9-16.4-8.4-25.4-10.9-20.5-5.6-18.4-32.8-12.7-32.8 18.3 0 18.9 .6 34.9 .3 23.2-.3 30.2-1.7 48.3 5 9.7 3.6 19 13.1 25.1 21.7z\"]\n};\nvar faAppStoreIos = {\n prefix: 'fab',\n iconName: 'app-store-ios',\n icon: [448, 512, [], \"f370\", \"M400 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9L84 330.6c-11 0-20-9-20-20s9-20 20-20l51 0 65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6 62.1 0c20.2 0 31.5 23.7 22.7 40zm98.1 0l-29 0 19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102l52 0c11 0 20 9 20 20 0 11.1-9 20-20 20z\"]\n};\nvar faUltralyticsYolo = {\n prefix: 'fab',\n iconName: 'ultralytics-yolo',\n icon: [512, 512, [], \"e86f\", \"M383.5 10.8c61.8-.2 112.3 50.6 112.3 112.9-.2 2.7 0 0-.1 3.3l.3 .3c-1.5 89.9-53 168.4-127.4 208.5l0 52.8c0 62.6-51.1 113.5-113.7 112.9-62-.6-111.4-52.2-111.4-114.3l0-51.2c-40.7-21.9-74.5-55.2-97-95.6 23.2 16.5 51.7 26 82 25.9 78.6-.2 142.2-64 142.3-142.5 .1-62.3 50.5-112.7 112.9-112.9zm-255 225.8a112.9 112.9 0 1 1 0-225.8 112.9 112.9 0 1 1 0 225.8z\"]\n};\nvar faSquareDribbble = {\n prefix: 'fab',\n iconName: 'square-dribbble',\n icon: [448, 512, [\"dribbble-square\"], \"f397\", \"M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7 6.1 .1 62.4 .3 126.4-16.7-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4-33.6-29.8-79.3-41.1-122.6-30.6zM277.4 382c-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6 40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252l0 4.2c0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8-3.4-7.8-7.2-15.5-11.1-23.2l-.1 0zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8 17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9 4.8 9.8 8.3 17.8 12 26.8zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM224 96a160 160 0 1 1 0 320 160 160 0 1 1 0-320z\"]\n};\nvar faDribbbleSquare = faSquareDribbble;\nvar faUikit = {\n prefix: 'fab',\n iconName: 'uikit',\n icon: [448, 512, [], \"f403\", \"M443.9 128l0 256-225.9 128-218-128 0-214.3 87.6 45.1 0 117 133.5 75.5 135.8-75.5 0-151-101.1-57.6 87.6-53.1 100.5 57.9zM308.6 49.1l-84.8-49.1-88.6 54.8 86 47.3 87.4-53z\"]\n};\nvar faSuperpowers = {\n prefix: 'fab',\n iconName: 'superpowers',\n icon: [448, 512, [], \"f2dd\", \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zM368.3 264.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"]\n};\nvar faYoutube = {\n prefix: 'fab',\n iconName: 'youtube',\n icon: [576, 512, [61802], \"f167\", \"M549.7 124.1C543.5 100.4 524.9 81.8 501.4 75.5 458.9 64 288.1 64 288.1 64S117.3 64 74.7 75.5C51.2 81.8 32.7 100.4 26.4 124.1 15 167 15 256.4 15 256.4s0 89.4 11.4 132.3c6.3 23.6 24.8 41.5 48.3 47.8 42.6 11.5 213.4 11.5 213.4 11.5s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232.2 337.6l0-162.4 142.7 81.2-142.7 81.2z\"]\n};\nvar faEmber = {\n prefix: 'fab',\n iconName: 'ember',\n icon: [640, 512, [], \"f423\", \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6 .5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7 .8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5 .3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7 .3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9l1.6 0s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2 1.9 0s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zM334.7 136.1s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"]\n};\nvar faBootstrap = {\n prefix: 'fab',\n iconName: 'bootstrap',\n icon: [576, 512, [], \"f836\", \"M333.5 201.4c0-22.1-15.6-34.3-43-34.3l-50.4 0 0 71.2 42.5 0c32.8-.1 50.9-13.3 50.9-36.9zM517 188.6c-9.5-30.9-10.9-68.8-9.8-98.1 1.1-30.5-22.7-58.5-54.7-58.5L123.7 32c-32.1 0-55.8 28.1-54.7 58.5 1 29.3-.3 67.2-9.8 98.1-9.6 31-25.7 50.6-52.2 53.1l0 28.5c26.4 2.5 42.6 22.1 52.2 53.1 9.5 30.9 10.9 68.8 9.8 98.1-1.1 30.5 22.7 58.5 54.7 58.5l328.7 0c32.1 0 55.8-28.1 54.7-58.5-1-29.3 .3-67.2 9.8-98.1 9.6-31 25.7-50.6 52.1-53.1l0-28.5c-26.3-2.5-42.5-22.1-52-53.1zM300.2 375.1l-97.9 0 0-238.3 97.4 0c43.3 0 71.7 23.4 71.7 59.4 0 25.3-19.1 47.9-43.5 51.8l0 1.3c33.2 3.6 55.5 26.6 55.5 58.3 0 42.1-31.3 67.5-83.2 67.5zm-10-108.7l-50.1 0 0 78.4 52.3 0c34.2 0 52.3-13.7 52.3-39.5 0-25.7-18.6-38.9-54.5-38.9z\"]\n};\nvar faItunes = {\n prefix: 'fab',\n iconName: 'itunes',\n icon: [448, 512, [], \"f3b4\", \"M223.6 80.3a171.3 171.3 0 1 0 .2 342.5 171.3 171.3 0 1 0 -.2-342.5zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1 .5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7 .9-127 2.6-133.7 .4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6 .4 161.4-1 167.6zM345.2 32L102.8 32C45.9 32 0 77.9 0 134.8L0 377.2C0 434.1 45.9 480 102.8 480l242.4 0c57 0 102.8-45.9 102.8-102.8l0-242.4C448 77.9 402.1 32 345.2 32zM223.6 59a192.5 192.5 0 1 1 0 385 192.5 192.5 0 1 1 0-385z\"]\n};\nvar faSquareXing = {\n prefix: 'fab',\n iconName: 'square-xing',\n icon: [448, 512, [\"xing-square\"], \"f169\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1l46.6 0c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1l-46.6 0zm163.5-33.4l0 .2 65.5 119c2.8 5.1 .1 10.1-6 10.1l-46.6 0c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6 11.7-20.7 25.1-44.3 40.1-70.8 3.3-5.8 7.4-8.7 12.5-8.7l46.9 0c5.7-.1 8.8 4.7 6 10L257.3 286.8z\"]\n};\nvar faXingSquare = faSquareXing;\nvar faCss3Alt = {\n prefix: 'fab',\n iconName: 'css3-alt',\n icon: [384, 512, [], \"f38b\", \"M0 32L34.9 427.8 192 480 349.1 427.8 384 32 0 32zm313.1 80l-4.8 47.3-115.3 49.3-.3 .1 111.5 0-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9 48.9 0 3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5 0-.1-.2 .1-3.6-46.3 112.1-46.7 6.5-2.7-122.9 0-5.8-47.3 242.2 0z\"]\n};\nvar faSquarespace = {\n prefix: 'fab',\n iconName: 'squarespace',\n icon: [512, 512, [], \"f5be\", \"M186.1 343.3c-9.7 9.7-9.7 25.3 0 34.9s25.3 9.6 34.9 0L378.3 221.1c19.3-19.3 50.6-19.3 69.9 0s19.3 50.6 0 69.9L294 445.1c19.3 19.3 50.5 19.3 69.8 0l0 0 119.3-119.2c38.6-38.6 38.6-101.1 0-139.7-38.6-38.6-101.2-38.6-139.7 0L186.1 343.3zM430.7 238.5c-9.7-9.7-25.3-9.7-34.9 0L238.5 395.7c-19.3 19.3-50.5 19.3-69.8 0l0 0c-9.6-9.6-25.3-9.7-34.9 0l0 0c-9.7 9.6-9.7 25.3 0 34.9l0 0c38.6 38.6 101.1 38.6 139.7 0L430.7 273.5c9.6-9.7 9.6-25.3 0-34.9zm-262 87.3L325.9 168.7c9.6-9.6 9.6-25.3 0-34.9-9.6-9.6-25.3-9.6-34.9 0L133.7 290.9c-19.3 19.3-50.6 19.3-69.9 0l0 0c-19.3-19.3-19.3-50.5 0-69.8l0 0 154.2-154.2c-19.3-19.3-50.5-19.3-69.8 0l0 0-119.2 119.3c-38.6 38.6-38.6 101.1 0 139.7 38.6 38.6 101.1 38.6 139.7 0zM81.3 273.5c9.6 9.6 25.3 9.6 34.9 0L273.5 116.3c19.3-19.3 50.6-19.3 69.8 0l0 0c9.7 9.6 25.3 9.6 34.9 0s9.6-25.3 0-34.9c-38.6-38.6-101.1-38.6-139.7 0L81.3 238.5c-9.6 9.6-9.6 25.3 0 34.9l0 0z\"]\n};\nvar faTrello = {\n prefix: 'fab',\n iconName: 'trello',\n icon: [448, 512, [], \"f181\", \"M392.3 32L56.1 32c-31 0-56.1 25.1-56.1 56-.1 0 0-4 0 336 0 30.9 25.1 56 56 56l336.2 0c30.8-.2 55.7-25.2 55.7-56l0-336c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6l-82.7 0c-14.8 .1-26.9-11.8-27-26.6l0-254.2c0-14.8 12-26.9 26.9-26.9l82.9 0c14.8 0 26.9 12 26.9 26.9l0 254.2-.1 0zm193.1-112c0 14.8-12 26.9-26.9 26.9l-81 0c-14.8 0-26.9-12-26.9-26.9l0-142.1c0-14.8 12-26.9 26.8-26.9l81.1 0c14.8 0 26.9 12 26.9 26.9l0 142.1z\"]\n};\nvar faViadeo = {\n prefix: 'fab',\n iconName: 'viadeo',\n icon: [448, 512, [], \"f2a9\", \"M276.4 150.5l0 .7c-17.9-52.6-42.6-103.4-70.8-151.2 43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280-65.7-11.4-111.3-68.6-111.3-137.4 0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.3 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"]\n};\nvar faSearchengin = {\n prefix: 'fab',\n iconName: 'searchengin',\n icon: [448, 512, [], \"f3eb\", \"M214.6 130.3l-67.2 28.2 0-115.3-54.7 190.3 54.7-24.2 0 130.3 67.2-209.3zM131.4 33.6l-1.3 4.7-15.2 52.9C74.6 106.7 46 145.8 46 191.5 46 243.8 80.3 287.4 129.4 297l0 53.6C51.5 340.1-6 272.4-6 191.6-6 111.1 53.8 44.4 131.4 33.6zM442.8 480.8c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1l0-52.1c83.2 5.1 148.8 74.5 148.8 159.3 0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"]\n};\nvar faUnrealEngine = {\n prefix: 'fab',\n iconName: 'unreal-engine',\n icon: [512, 512, [], \"e85c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm65.5-113.7l-25.1-28.3-42.4 42.6c-24.1-.3-47.9-6.2-69.3-17.2s-40.1-26.9-54.5-46.3c4.5 1.4 9.2 2.3 13.9 2.6 6.9 .1 14.5-2.4 14.5-14.1l0-115.1c.1-3-.5-5.9-1.7-8.6s-3.1-5-5.4-6.9-5-3.1-7.9-3.7-5.9-.5-8.8 .2c-19.6 4.5-35.3 53.5-35.3 53.5-.2-22.6 4.5-45 13.8-65.6s23-39 40.1-53.8c22.5-19.5 50.1-32.2 79.6-36.7-21.4 12.2-33.5 32.1-33.5 48.9 0 26.9 16.2 23.6 21 19.7l0 155.3c.8 1.9 1.9 3.8 3.2 5.5 2.1 3 5 5.4 8.2 7s6.9 2.5 10.5 2.5c16.2 0 37.3-18.5 37.3-18.5l0-125.7c0-12.8-9.6-28.2-19.3-33.5 0 0 17.9-3.2 31.7 7.4 2.6-3.2 5.3-6.2 8.2-9.1 32.2-31.6 62.5-40.6 87.7-45.1 0 0-45.9 36.1-45.9 84.5 0 36 .9 123.8 .9 123.8 17 16.4 42.4-7.3 65.2-30.8-4.4 21.3-24 75.9-86.6 105.4z\"]\n};\nvar faPaypal = {\n prefix: 'fab',\n iconName: 'paypal',\n icon: [384, 512, [], \"f1ed\", \"M111.9 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5l-74.6 0c-7.6 0-13.1-6.6-12.1-13.9L59.3 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4 .7-69.5-7-75.3 24.2zM357.6 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9l63.5 0c8.6 0 15.7-6.3 17.4-14.9 .7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"]\n};\nvar faSquareBluesky = {\n prefix: 'fab',\n iconName: 'square-bluesky',\n icon: [448, 512, [], \"e6a3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 247.4c14.5-30 54-85.8 90.7-113.3 26.5-19.9 69.3-35.2 69.3 13.7 0 9.8-5.6 82.1-8.9 93.8-11.4 40.8-53 51.2-90 44.9 64.7 11 81.2 47.5 45.6 84-67.5 69.3-97-17.4-104.6-39.6l-.3-.9c-.9-2.6-1.4-4.1-1.8-4.1s-.9 1.5-1.8 4.1c-.1 .3-.2 .6-.3 .9-7.6 22.2-37.1 108.8-104.6 39.6-35.5-36.5-19.1-73 45.6-84-37 6.3-78.6-4.1-90-44.9-3.3-11.7-8.9-84-8.9-93.8 0-48.9 42.9-33.5 69.3-13.7 36.7 27.5 76.2 83.4 90.7 113.3z\"]\n};\nvar faDAndDBeyond = {\n prefix: 'fab',\n iconName: 'd-and-d-beyond',\n icon: [640, 512, [], \"f6ca\", \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9 .2-5.8 1.6-7.5 .6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9 .6-.3 1.3 0 .6 1.9-.2 .6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3 .1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9 .9 7.5 .2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1 .6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6 .7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4 .2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5 .5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2 0 77.2-7.4 8.2c10.4 .8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6l0-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6 .5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9 .5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8 .5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6 .3 3 .6 4.3 1.1-2.1 .8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2 .8 .2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8 .6-2.6-.2s.3-4.3 .3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3 .6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7 .2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7 .6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8 .8-1.4 1.8-2.1 2.6l0 15.7c3.5 2.6 7.1-2.9 3-7.2 1.5 .3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9 .3 5.6 1.1l0-18.4c-1.1 .5-2.2 1-2.7 1.4l-.7 .7zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25l-56.1 0 8.3 8.6 0 29.5-11.3 0 11.4 14.6 0 32.3-8.4 8.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zM38.6 278.4c20 0 29.6-.8 29.6 9.1l0 3c0 12.1-19 8.8-29.6 8.8l0-20.9zm0 59.2l0-22.6c12.2 0 32.7-2.3 32.7 8.8l0 4.5 .2 0c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1 .2 0-.2 14.1-21.2-37.2 0 0-14.9 52.4 0-14.1-21 0-.2-73.5 .2 7.4 8.2 0 77.1-7.4 8.2 81.2 0 14.1-21.2-60.1 .2 0-15.4zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3 .3-99.3zm-.3 77.5c-37.4 0-36.9-55.3 .2-55.3 36.8 .1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2-41.7 0 6.1 7.2-20.5 37.2-.3 0-21-37.2 6.4-7.2-44.9 0 44.1 65.8 .2 19.4-7.7 8.2 42.6 0-7.2-8.2-.2-19zM234.5 176.1c1.6 1.3 2.9 2.4 2.9 6.6l0 38.8c0 4.2-.8 5.3-2.7 6.4-.1 .1-7.5 4.5-7.9 4.6l35.1 0c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5 .8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6 .3-39.9-4 .1 .8 .5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3l0-34.6zm228.9 79.6l7 8.3 0 42.5-.3 0c-5.4-14.4-42.3-41.5-45.2-50.9l-31.6 0 7.4 8.5 0 76.9-7.2 8.3 39 0-7.4-8.2 0-47.4 .3 0c3.7 10.6 44.5 42.9 48.5 55.6l21.3 0 0-85.2 7.4-8.3-39.2-.1zM378.2 165.1c-32.2 0-32.8 .2-39.9-4 .1 .7 .5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6 .3-4 1.1-6.1 2.9 .1 0 2.1-1.1 7.5-.3l0-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3l.3 0c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"]\n};\nvar faMicrosoft = {\n prefix: 'fab',\n iconName: 'microsoft',\n icon: [448, 512, [], \"f3ca\", \"M0 32l214.6 0 0 214.6-214.6 0 0-214.6zm233.4 0l214.6 0 0 214.6-214.6 0 0-214.6zM0 265.4l214.6 0 0 214.6-214.6 0 0-214.6zm233.4 0l214.6 0 0 214.6-214.6 0 0-214.6z\"]\n};\nvar faFly = {\n prefix: 'fab',\n iconName: 'fly',\n icon: [320, 512, [], \"f417\", \"M165.9 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9 .3 6.7 2.8zM300 67.3c-16.3-25.7-38.6-40.6-63.3-52.1-25.5-10.7-54.6-15.4-76.6-15.2-44.1 0-71.2 13.2-81.1 17.3-53.6 27.9-84.4 69.9-82.9 141.3 7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3 .1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM154.9 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7l0 325.7zM296.8 180c-16.4 56.8-77.3 128-118.9 170.3 27.8-51.9 65.2-133.3 67.2-191.9 1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"]\n};\nvar faCcStripe = {\n prefix: 'fab',\n iconName: 'cc-stripe',\n icon: [576, 512, [], \"f1f5\", \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7l36.7 0c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1l0-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5l0 33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zM191 224.5l-27 0 0 50.5c0 20.9 22.5 14.4 27 12.6l0 28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4 0 30.8 26.9 0 0 30.3zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4l0 84.4-35.5 0 0-124.5 30.7 0 2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5l.1 0 0 32.7zm44.1 91.8l-35.7 0 0-124.5 35.7 0 0 124.5zm0-142.9l-35.7 7.6 0-28.9 35.7-7.6 0 28.9zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5 0-165.8 31.3 0 1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5l-69.5 0c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9l0 28.6c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"]\n};\nvar faWordpressSimple = {\n prefix: 'fab',\n iconName: 'wordpress-simple',\n icon: [512, 512, [], \"f411\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM33 256c0-32.3 6.9-63 19.3-90.7L158.7 456.7C84.3 420.5 33 344.2 33 256zM256 479c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2-48.8 146.3-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3 39.9-60.5 108.4-100.5 186.3-100.5 58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"]\n};\nvar faSellsy = {\n prefix: 'fab',\n iconName: 'sellsy',\n icon: [640, 512, [], \"f213\", \"M540 237.3c3.1-12.3 4.3-24.8 4.3-37.4 0-92.5-75.4-167.9-167.9-167.9-77.2 0-144.6 53-163 127.8-15.3-13.2-34.9-20.5-55.2-20.5-46.3 0-84 37.7-84 84 0 7.4 .9 15 3.1 22.4-42.9 20.2-70.8 63.7-70.8 111.2 0 68 55.5 123.2 123.2 123.2l381.2 0c67.7 0 123.2-55.2 123.2-123.2 0-56.4-38.9-106-94.1-119.5zM200.2 401.6c0 8.3-7 15.3-15.3 15.3l-30.9 0c-8.3 0-15.3-7-15.3-15.3l0-110.9c0-8.3 7-15.3 15.3-15.3l30.9 0c8.3 0 15.3 7 15.3 15.3l0 110.9zm89.5 0c0 8.3-7 15.3-15.3 15.3l-30.9 0c-8.3 0-15.3-7-15.3-15.3l0-131.5c0-8.3 7-15.3 15.3-15.3l30.9 0c8.3 0 15.3 7 15.3 15.3l0 131.5zm89.5 0c0 8.3-7 15.3-15.3 15.3l-31 0c-8.3 0-15.3-7-15.3-15.3l0-162.7c0-8.3 7-15.3 15.3-15.3l31 0c8.3 0 15.3 7 15.3 15.3l0 162.7zm87 0c0 8.3-7 15.3-15.3 15.3l-28.5 0c-8.3 0-15.3-7-15.3-15.3l0-224.6c0-8.6 7-15.6 15.3-15.6l28.5 0c8.3 0 15.3 7 15.3 15.6l0 224.6z\"]\n};\nvar faDashcube = {\n prefix: 'fab',\n iconName: 'dashcube',\n icon: [448, 512, [], \"f210\", \"M326.9 104l-216.2 0c-51.1 0-91.2 43.3-91.2 93.5l0 229.5c0 50.5 40.1 85 91.2 85l227.2 0c51.1 0 91.2-34.5 91.2-85l0-427-102.2 104zM154.2 416.5c-17.7 0-32.4-15.1-32.4-32.8l0-142.9c0-17.7 14.7-32.5 32.4-32.5l140.7 0c17.7 0 32 14.8 32 32.5l0 123.5 51.1 52.3-223.8 0 0-.1z\"]\n};\nvar faGitter = {\n prefix: 'fab',\n iconName: 'gitter',\n icon: [384, 512, [], \"f426\", \"M66.4 322.5l-50.4 0 0-322.5 50.4 0 0 322.5zM166.9 76.1l-50.4 0 0 435.9 50.4 0 0-435.9zm100.6 0l-50.4 0 0 435.9 50.4 0 0-435.9zM368 76l-50.4 0 0 247 50.4 0 0-247z\"]\n};\nvar faWolfPackBattalion = {\n prefix: 'fab',\n iconName: 'wolf-pack-battalion',\n icon: [448, 512, [], \"f514\", \"M236.2 471.5l10.6 15.8 5.3-12.3 5.3 7 0 29.9c21.1-7.9 21.1-66.9 25.5-97.2 4.6-31.9-.9-92.8 81.4-149.1-8.9-23.6-12-49.4-2.6-80 27.9 3.4 53.9 10.6 63.3 54.1l-30.3 8.4c11.1 23 17 46.8 13.2 72.1l-27.3-7-6.2 33.4-18.5-7-8.8 33.4-19.4-7 26.4 21.1 8.8-28.2 24.6 5.2 7-35.6 26.4 14.5c.2-20 7-58.1-8.8-84.5l26.4 5.3c4-22.1-2.4-39.2-7.9-56.7l22.4 9.7c-.4-25.1-29.9-56.8-61.6-58.5-20.2-1.1-56.7-25.2-54.1-51.9 2-19.9 17.4-42.6 43.1-49.7-44 36.5-9.7 67.3 5.3 73.5 4.4-11.4 17.5-69.1 0-130.2-40.4 22.9-89.7 65.1-93.2 147.8l-58 38.7-3.5 93.2 107.3-59.8 7 7-17.6 3.5-44 38.7-15.8-5.3-28.1 49.3-3.5 119.6 21.1 15.8-32.5 15.8-32.6-15.8 21.1-15.8-3.5-119.6-28.2-49.3-15.8 5.3-44-38.7-17.6-3.5 7-7 107.3 59.8-3.5-93.3-58.1-38.7c-3.5-82.8-52.7-125-93.2-147.9-17.5 61.1-4.4 118.8 0 130.2 15-6.2 49.3-37 5.3-73.5 25.7 7.1 41.1 29.8 43.1 49.7 2.6 26.7-33.9 50.8-54.1 51.9-31.7 1.7-61.2 33.4-61.6 58.5l22.4-9.7C13.4 224.7 7 241.8 11 263.9l26.4-5.3c-15.8 26.4-9.1 64.4-8.8 84.4l26.4-14.5 7 35.6 24.6-5.3 8.8 28.2 26.4-21.1-19.4 7-8.8-33.4-18.5 7-6.2-33.4-27.3 7C38 294.8 43.8 271 55 248l-30.3-8.4c9.4-43.5 35.5-50.8 63.3-54.1 9.4 30.6 6.2 56.5-2.6 80.1 82.3 56.3 76.8 117.2 81.4 149.1 4.4 30.3 4.4 89.3 25.5 97.2l0-29.8 5.3-7 5.3 12.3 10.6-15.8 11.4 21.1 11.4-21.1 0 0zm79.2-95L299.5 366c7.5-4.4 13.8-8.4 19.4-12.3-.6 7.2-.3 13.8-3.5 22.8l0 0zm28.2-49.3c-.4 10.9-.9 21.7-1.8 31.7-7.8-1.9-15.6-3.8-21.1-7 8.2-7.9 15.6-16.3 22.9-24.7l0 0zm24.6 5.3c0-13.4-2.1-24.2-5.3-33.4-5.5 9.5-11.7 18.6-18.5 27.3l23.8 6.2zm3.5-80.9c19.4 12.8 27.8 33.7 29.9 56.3-12.3-4.5-24.6-9.3-37-10.6 5.1-12 6.6-28.1 7-45.7l0 0zm-1.8-45.7c.8 14.3 1.8 28.8 1.8 42.2 19.2-8.1 29.8-9.7 44-14.1-10.6-19-27.2-25.5-45.8-28.2l0 0zM134.2 376.5L150 366c-7.5-4.4-13.8-8.4-19.4-12.3 .6 7.3 .3 13.9 3.5 22.9l0 0zM106 327.3c.4 10.9 .9 21.7 1.8 31.7 7.8-1.9 15.6-3.8 21.1-7-8.2-7.9-15.6-16.3-22.9-24.7zm-24.6 5.3c0-13.4 2-24.2 5.3-33.4 5.5 9.5 11.7 18.6 18.5 27.3l-23.8 6.2zm-3.5-80.9c-19.4 12.8-27.8 33.7-29.9 56.3 12.3-4.5 24.6-9.3 37-10.6-5-12-6.6-28.1-7-45.7l-.1 0zm1.8-45.7c-.8 14.3-1.8 28.8-1.8 42.2-19.2-8.1-29.8-9.7-44-14.1 10.6-19 27.2-25.5 45.8-28.1z\"]\n};\nvar faLastfm = {\n prefix: 'fab',\n iconName: 'lastfm',\n icon: [512, 512, [], \"f202\", \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163-86.1 0-131.8 54.5-131.8 147.2 0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"]\n};\nvar faShopware = {\n prefix: 'fab',\n iconName: 'shopware',\n icon: [512, 512, [], \"f5b5\", \"M403.5 455.4c-42.6 31.7-94.4 48.7-147.5 48.6-137.2 0-248-111-248-248 0-137.2 111-248 248-248 61.2-.1 120.2 22.6 165.7 63.5 .6 .5 .9 1.2 1.1 1.9s.1 1.5-.3 2.2-.8 1.3-1.5 1.6-1.4 .5-2.2 .4c-18.8-2.5-37.7-3.7-56.7-3.7-129.4 0-222.4 53.5-222.4 155.4 0 109 92.1 145.9 176.8 178.7 33.6 13 65.4 25.4 87 41.6 .4 .3 .8 .8 1.1 1.3s.4 1 .4 1.6-.1 1.1-.4 1.6-.6 .9-1.1 1.3l-.1 0zM503 233.1c-.1-.9-.5-1.8-1.3-2.4-51.8-43-93.6-60.5-144.5-60.5-84.1 0-80.3 52.2-80.3 53.6 0 42.6 52.1 62 112.3 84.5 31.1 11.6 63.2 23.6 92.7 39.9 .4 .2 .9 .4 1.4 .4s1 0 1.5-.2 .9-.4 1.3-.8 .6-.8 .8-1.2c14.1-36 19.5-74.8 16-113.3z\"]\n};\nvar faBlogger = {\n prefix: 'fab',\n iconName: 'blogger',\n icon: [448, 512, [], \"f37c\", \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1 .1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4 .1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8 .2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9 .7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zM447.2 420.6c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22S0 420.3 0 256.3c0-163.1 0-166.6 1.8-173.7 6.3-24.7 25.9-43.6 51.2-49.2 7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6 .2 115.8 0 164.5-.7 170.5zM361.8 235.4c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5 .4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7 .5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"]\n};\nvar faEdge = {\n prefix: 'fab',\n iconName: 'edge',\n icon: [512, 512, [], \"f282\", \"M120.1 37.4c41-25.2 87.6-38.2 134.9-37.4 168 0 257 123.8 257 219.5-.1 32.7-13 63.9-35.9 87.2-22.9 23.2-54 36.5-86.7 37-75.2 0-91.5-23.1-91.5-32 0-3.8 1.2-6.2 4.8-9.4l1-1.2 .4-1.6c10.5-11.5 15.9-26.2 15.9-41.6 0-78.7-82.2-142.7-184-142.7-37.5-.3-74.5 8.9-107.5 26.9 27-57.5 82.7-97.6 91.3-103.8 .8-.6 .3-.8 .3-.8zm15.6 318.1c-1.4 30 4.6 60 16.4 87.2 13.6 26.4 32.7 51 56.5 69.3-59.5-11.5-111.5-43.9-149.4-89.3-38.1-46.4-59.2-104.3-59.2-164.8 0-51.2 62.4-94.4 136-94.4 36.6-.6 72.4 10.9 101.8 32.7l-3.6 1.2c-51.5 17.6-98.5 90.7-98.5 158.1zM469.8 400l-.7 .1c-11.8 18.8-25.9 35.1-42.2 49.5-30.8 28-68.1 45.5-108.8 49.9-18.6 .3-36.8-3.2-53.8-11.4-25.6-10.3-47.1-30-61.6-53-14.4-23.9-21.1-51.7-19-79.6-.6-20.1 5.4-40.3 15-58.2 13.9 33.1 37.5 61.3 67.6 80.8s65.5 29.5 101.4 28.6c31 .3 62.1-6.7 90.2-20.5l1.9-.9c3.9-2.3 7.7-3.9 11.6 0 4.5 4.9 1.8 9.2-1.2 14-.2 .2-.3 .5-.4 .7z\"]\n};\nvar faIoxhost = {\n prefix: 'fab',\n iconName: 'ioxhost',\n icon: [640, 512, [], \"f208\", \"M616 160l-67.3 0C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256 72 272.4 73.6 288.5 76.7 304L24 304c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24l67.3 0c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48l52.7 0c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104L424 352c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24l-298.2 0c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104L216 160c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24l298.2 0c3.8 15.4 5.8 31.4 5.8 48zM216 232l208 0c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"]\n};\nvar faSchlix = {\n prefix: 'fab',\n iconName: 'schlix',\n icon: [448, 512, [], \"f3ea\", \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1 17.2 28.4-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zM82.4 133.2l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7-24.8 15.2zM28.4 223.1l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268L20.6 257.8 21 296 0 304.8 1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8 27.4-14.4 8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zM152.5 187.9l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"]\n};\nvar faDAndD = {\n prefix: 'fab',\n iconName: 'd-and-d',\n icon: [576, 512, [], \"f38d\", \"M82.9 98.9c-.6-17.2 2-33.8 12.7-48.2 .3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1 .7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5 .6-11.4 12.5-14.1 27.4-10.9 43.6 .2 1.3 .4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6 .1 .5 .1 1.1 .1 1.6 0 .3-.1 .5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zM552.5 222.1c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5 .9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5l-2.5 0c-.6 0-1.2 .2-1.9 .3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3 .3 .3 .7 .6 1 .9 .3-.6 .5-1.2 .9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8 .7-3.5 .9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3 .4-.4 .9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6 .2-.1 .3-.2 .4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3l0-.5c-.5-.4-1.2-.8-1.7-1.4zM317.1 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8 .9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9 .8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7 .3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3 .2-.2 .4-.3 .6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8 .6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1 .1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8 .4 4.7 .8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1 .7-52.3 .3 2.2 .4 4.3 .9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8 .1-50.9-10.6 .7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.8 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6 .2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3 .8-2.4 2.3-4.6 4-6.6 .6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2 .5-1 1.1-2 1.9-3.3 .5 4.2 .6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1 .6 .5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7 .4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6 .5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2 .4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3 .3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5 .8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8 .8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3 .6-4.5 .8-9.2 .1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6 .1-23.3 1.3-.9 .1-1.7 .3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"]\n};\nvar faVuejs = {\n prefix: 'fab',\n iconName: 'vuejs',\n icon: [448, 512, [], \"f41f\", \"M356.9 64.3l-76.9 0-56 88.6-48-88.6-176 0 224 383.7 224-383.7-91.1 0zM55.7 96.3l53.8 0 114.5 198.2 114.4-198.2 53.8 0-168.2 288.2-168.3-288.2z\"]\n};\nvar faMeta = {\n prefix: 'fab',\n iconName: 'meta',\n icon: [640, 512, [], \"e49b\", \"M640 317.9c0 91.3-39.4 148.5-110.3 148.5-62.6 0-95.8-34.6-156.9-136.6l-31.4-52.6c-8.3-12.5-14.5-24.2-21.2-35-20.1 33.8-47.1 83-47.1 83-67 116.6-104.6 141.2-156.9 141.2-72.8 0-116.2-57.3-116.2-145.9 0-143 79.8-278.1 183.9-278.1 50.2 0 93.8 24.7 144.8 89.5 37.1-50.1 78.1-89.5 130.6-89.5 99.1 0 180.7 125.7 180.7 275.5zM287.4 192.2c-42.9-62.1-70.9-80.5-104.4-80.5-61.9 0-113.8 106.1-113.8 210 0 48.5 18.5 75.7 49.6 75.7 30.2 0 49-19 103.2-103.8 0 0 24.7-39.1 65.4-101.4zM531.2 397.4c32.2 0 46.9-27.5 46.9-74.9 0-124.2-54.3-225.4-123.2-225.4-33.2 0-61.1 25.9-94.9 78 9.4 13.8 19.1 29 29.3 45.4l37.5 62.4c58.7 94.1 73.5 114.5 104.4 114.5z\"]\n};\nvar faCreativeCommonsShare = {\n prefix: 'fab',\n iconName: 'creative-commons-share',\n icon: [512, 512, [], \"f4f2\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7l0 182.5c0 7.7-6.1 13.7-13.7 13.7l-135.1 0c-7.7 0-13.7-6-13.7-13.7l0-54-54 0c-7.8 0-13.7-6-13.7-13.7l0-182.5c0-8.2 6.6-12.7 12.4-13.7l136.4 0c7.7 0 13.7 6 13.7 13.7l0 54 54 0zM167.9 300.3l40.7 0 0-101.4c0-7.4 5.8-12.6 12-13.7l55.8 0 0-40.3-108.5 0 0 155.4zm176.2-88.1l-108.5 0 0 155.4 108.5 0 0-155.4z\"]\n};\nvar faStudiovinari = {\n prefix: 'fab',\n iconName: 'studiovinari',\n icon: [512, 512, [], \"f3f8\", \"M480.7 187.7l4.2 28 0 28-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6 20.3 .7 20.3 .7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9 114.9 18.1-101.3-108 252.9 126.6-31.5-38 124.4 74.4-143.3-99 18.7 38.4-49.6-18.1-45.5-84.3 194.6 122-42.9-55.8 108 96.4 12-8.9-21-16.4 4.2-37.8 37.8-10.4 29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"]\n};\nvar faBitbucket = {\n prefix: 'fab',\n iconName: 'bitbucket',\n icon: [512, 512, [61810], \"f171\", \"M22.2 32c-2.1 0-4.2 .4-6.1 1.1s-3.7 1.9-5.2 3.4-2.7 3.2-3.5 5.1-1.3 4-1.3 6.1c0 .9 .1 1.9 .2 2.8L74.1 462.7c.8 5.1 3.4 9.7 7.3 13s8.8 5.2 14 5.2l325.7 0c3.8 .1 7.5-1.3 10.5-3.7s4.9-5.9 5.5-9.7L505 50.7c.7-4.2-.3-8.4-2.8-11.9s-6.2-5.7-10.4-6.4c-.9-.1-1.9-.2-2.8-.2L22.2 32zM308.1 329.8l-104 0-28.1-147 157.3 0-25.2 147z\"]\n};\nvar faVk = {\n prefix: 'fab',\n iconName: 'vk',\n icon: [448, 512, [], \"f189\", \"M31.5 63.5C0 95 0 145.7 0 247L0 265C0 366.3 0 417 31.5 448.5S113.7 480 215 480l17.9 0c101.4 0 152.1 0 183.5-31.5S448 366.3 448 265l0-17.9c0-101.4 0-152.1-31.5-183.5S334.3 32 233 32L215 32C113.7 32 63 32 31.5 63.5zM75.6 168.3l51.1 0c1.7 85.5 39.4 121.7 69.3 129.2l0-129.2 48.2 0 0 73.7c29.5-3.2 60.5-36.8 70.9-73.7l48.2 0c-3.9 19.2-11.8 37.3-23.1 53.3s-25.7 29.5-42.5 39.6c18.7 9.3 35.2 22.4 48.4 38.5s22.9 34.9 28.3 55l-53 0c-4.9-17.5-14.8-33.1-28.6-45s-30.7-19.4-48.7-21.6l0 66.6-5.8 0c-102.1 0-160.3-70-162.8-186.5z\"]\n};\nvar faGithub = {\n prefix: 'fab',\n iconName: 'github',\n icon: [512, 512, [], \"f09b\", \"M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM252.8 8c-138.7 0-244.8 105.3-244.8 244 0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1 100-33.2 167.8-128.1 167.8-239 0-138.7-112.5-244-251.2-244zM105.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"]\n};\nvar faCodiepie = {\n prefix: 'fab',\n iconName: 'codiepie',\n icon: [512, 512, [], \"f284\", \"M442.5 202.9c30.7 0 33.5 53.1-.3 53.1l-10.8 0 0 44.3-26.6 0 0-97.4 37.7 0zM492 352.6C449.9 444.5 370.4 504 268 504 131 504 20 393 20 256S131 8 268 8c97.4 0 172.8 53.7 218.2 138.4L300.2 255.2 492 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6C406.5 73.9 342.5 36.5 268 36.5 146.8 36.5 48.5 134.8 48.5 256S146.8 475.5 268 475.5c78.6 0 146.5-42.1 185.5-110.4z\"]\n};\nvar faPiedPiper = {\n prefix: 'fab',\n iconName: 'pied-piper',\n icon: [448, 512, [], \"f2ae\", \"M440.2 23.2c-26.7 6.8-68.1 28.5-114.6 67.5-30.9-17.5-65.8-26.7-101.4-26.7-114.9 0-208 93.1-208 208s93.1 208 208 208 208-93.1 208-208c.1-54.1-21-106.1-58.7-144.8-6.6 8.5-12.3 17.7-17 27.4 28.9 32.3 44.8 74.1 44.9 117.4 0 97.7-79.4 177.1-177.1 177.1-30.8 0-61-8.1-87.6-23.4 82.9-107.3 150.8-37.8 184.3-226.6 5.8-32.6 28-94.3 126.2-160.2 8.1-5.4 2.4-18.1-7-15.7zM109.3 406.4C89.8 389.8 74.2 369.2 63.5 346s-16.3-48.5-16.3-74c0-97.7 79.4-177.1 177.1-177.1 26.6 0 52.8 6.1 76.6 17.8-66 62.1-126.9 152.9-191.6 293.8z\"]\n};\nvar faRaspberryPi = {\n prefix: 'fab',\n iconName: 'raspberry-pi',\n icon: [448, 512, [], \"f7bb\", \"M392.5 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2 .7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6 .8-11.3-3.6-13.9 1.3-19.4 3.4-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9 .1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6 .1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8-17.3-2-22.7 10-16.5 21.2-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2 20.3 20.6 42.3 28.4 64.3 28.4l1 0c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80 59.8-5.6 78.8 22.8 14.6 64.2-9.9 80zM259.4 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7 .8 14.1 .6 23.9 .8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8 .4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2 .1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7 .9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6 .9 2.7 3.6 4.4 6.7 5.8-15.4 .9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zM225 143.9c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zM102 131.1c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8 .7 8.3 .1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6 .4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3 .4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6 .2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM58.7 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zM123.3 320.5c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM225.5 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9 .5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54s-59.2-23.8-59.4-53.4l0-.6c-.2-29.7 26.2-53.8 58.8-54s59.2 23.8 59.4 53.4l0 .6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"]\n};\nvar faCss3 = {\n prefix: 'fab',\n iconName: 'css3',\n icon: [512, 512, [], \"f13c\", \"M480 32l-64 368-223.3 80-192.7-80 19.6-94.8 82 0-8 40.6 116.4 44.4 134.1-44.4 18.8-97.1-333.4 0 16-82 333.7 0 10.5-52.7-333.4 0 16.3-82 407.4 0z\"]\n};\nvar faHubspot = {\n prefix: 'fab',\n iconName: 'hubspot',\n icon: [448, 512, [], \"f3b2\", \"M235.8 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L171.5 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8s-11.8 17.8-11.8 28.6 4.2 20.9 11.8 28.5 17.8 11.6 28.5 11.6c10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7l0-61.6c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S279.6 47 279.6 73.1c0 19.1 10.7 35.5 28.2 42.9l0 61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8 0-28.8-23.5-52.2-52.4-52.2-28.8 0-52.2 23.4-52.2 52.2 0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6L235.8 211.6zm89.5 25.6a69 69 0 1 1 0 138 69 69 0 1 1 0-138z\"]\n};\nvar faCmplid = {\n prefix: 'fab',\n iconName: 'cmplid',\n icon: [640, 512, [], \"e360\", \"M226.1 388.2c0-.7-.2-1.5-.6-2.1s-1-1.1-1.7-1.4c-.5-.2-1.1-.4-1.6-.4l-149.6 0c-3.1 0-6.2-.8-8.9-2.2s-5.1-3.5-6.9-6.1-2.9-5.5-3.3-8.6 0-6.2 1.1-9.1L81.6 255.7c2-7.2 6.2-13.5 12-18.2s12.9-7.4 20.4-7.8l148.6 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6l10.8-41.1c.4-1 .3-2-.1-2.9s-1.2-1.6-2.1-2c-.4-.2-.9-.3-1.4-.3-.1 0-.1 0-.2 0l-148.5 0c-22.2 1.2-43.4 9.2-60.8 23s-30 32.7-36.2 54.1L3.5 358.8c-3.2 8.7-4.2 18-3 27.1s4.6 17.9 9.9 25.5 12.3 13.8 20.5 18 17.3 6.5 26.5 6.6c1 0 1.9 0 2.9-.1l148.6 0c1.5-.1 2.9-.7 4-1.6s2-2.2 2.4-3.6l10.7-41.1c.2-.5 .3-.9 .3-1.4zm80.5-307c.2-.4 .3-.9 .3-1.4 0-.5-.1-1-.3-1.5s-.5-.9-.8-1.2-.8-.6-1.2-.8-1-.3-1.5-.3l-41.2 0c-1.5 .1-2.9 .6-4 1.6s-2 2.2-2.4 3.6l-21.3 80.9 51.1 0 21.4-80.9zm-126.3 287l51.1 0 32-122.6-51.1 0-32 122.6zM511.9 79.7c0-1-.5-1.9-1.2-2.6s-1.7-1.1-2.6-1.1c-.1 0-.1 0-.2 0l-41 0c-1.5 .1-2.9 .6-4.1 1.5s-2 2.2-2.5 3.6L368.9 430.6c-.2 .4-.3 .9-.3 1.3 0 1 .4 2 1.1 2.7s1.7 1.1 2.7 1.1l41.2 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6L511.5 81.2c.2-.5 .3-1 .3-1.5zM324.6 384.5l-41 0c-1.5 .1-2.9 .7-4 1.6s-2 2.2-2.4 3.6l-10.7 41.1c-.2 .4-.3 .9-.3 1.4 0 .5 .1 1 .3 1.5s.5 .9 .8 1.2 .8 .6 1.2 .8 1 .3 1.5 .3c.1 0 .2 0 .3 0l40.9 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6l10.8-41.1c.2-.6 .3-1.2 .3-1.8s-.3-1.2-.6-1.7-.8-.9-1.3-1.2-1.2-.4-1.8-.4c-.1 0-.2 0-.3 0l0 0zM636 76.1l-41 0c-1.5 .1-2.9 .6-4 1.5s-2 2.2-2.4 3.6L497.1 430.6c-.2 .4-.2 .9-.2 1.3 0 1 .4 2 1.1 2.7s1.7 1.1 2.7 1.1l41.1 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6L639.7 81.2c.2-.5 .3-1 .3-1.5-.1-1-.5-1.9-1.2-2.5s-1.6-1-2.6-1c-.1 0-.1 0-.2 0l0-.1zM371.6 225.2l10.8-41.1c.2-.4 .2-.9 .2-1.4 0-1-.4-2-1.1-2.7s-1.7-1.1-2.7-1.1l-41.3 0c-1.5 .1-2.9 .7-4 1.6s-2 2.2-2.4 3.6l-10.8 41.1c-.2 .5-.3 1-.3 1.5l0 .2c.1 1 .5 1.8 1.2 2.5s1.6 1 2.6 1c.1 0 .2 0 .3 0l41.1 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6z\"]\n};\nvar faDyalog = {\n prefix: 'fab',\n iconName: 'dyalog',\n icon: [448, 512, [], \"f399\", \"M16 32l0 119.2 64 0 0-55.2 107.2 0C300.6 96 368 176.2 368 255.9 368 332 309.4 416 187.2 416l-171.2 0 0 64 171.2 0C347.9 480 432 367.3 432 255.9 432 197.2 409.9 142.5 369.7 101.6 324.9 56 261.7 32 187.2 32L16 32z\"]\n};\nvar faElementor = {\n prefix: 'fab',\n iconName: 'elementor',\n icon: [512, 512, [], \"f430\", \"M.5 256c0 141 113.6 255 254.6 255 142 0 256-114 256-255 0-140-114-253.9-256-253.9-141 0-254.6 113.9-254.6 253.9zM192.1 150l0 213-43 0 0-213 43 0zm42 0l128 0 0 43-128 0 0-43zm128 85l0 43-128 0 0-43 128 0zm-128 85l128 0 0 43-128 0 0-43z\"]\n};\nvar faFirstOrder = {\n prefix: 'fab',\n iconName: 'first-order',\n icon: [448, 512, [], \"f2b0\", \"M13.3 229.2c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4l-.2 0zM224.4 96.6c-7.1 0-14.6 .6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3L149 306.9 98.1 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9l-29.4-61.3 44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9l-22.3 64.3 4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.8 128L443.8 384 224.4 512 5 384 5 128 224.4 0 443.8 128zm-17.1 10.3l-202.3-117.4-202.3 117.4 0 235.1 202.3 117.7 202.3-117.7 0-235.1zM224.4 37.1l187.7 109.4 0 218.9-187.7 109.5-187.7-109.5 0-218.8 187.7-109.5zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"]\n};\nvar faDribbble = {\n prefix: 'fab',\n iconName: 'dribbble',\n icon: [512, 512, [], \"f17d\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM420 122.4c29.5 36 47.4 82 47.8 132-7-1.5-77-15.7-147.5-6.8-5.8-14-11.2-26.4-18.6-41.6 78.3-32 113.8-77.5 118.3-83.5zM396.4 97.9c-3.8 5.4-35.7 48.3-111 76.5-34.7-63.8-73.2-116.2-79-124 67.2-16.2 138 1.3 190.1 47.5zM165.9 64.6c5.6 7.7 43.4 60.1 78.5 122.5-99.1 26.3-186.4 25.9-195.8 25.8 13.7-65.7 58-120.4 117.3-148.3zM44.2 256.3c0-2.2 0-4.3 .1-6.5 9.3 .2 111.9 1.5 217.7-30.1 6.1 11.9 11.9 23.9 17.2 35.9-76.6 21.6-146.2 83.5-180.5 142.3-33.8-37.6-54.5-87.2-54.5-141.6zM126 423.4c22.1-45.2 82.2-103.6 167.6-132.8 29.7 77.3 42 142.1 45.2 160.6-68.1 29-150 21.1-212.8-27.9zm248.4 8.5c-2.2-12.9-13.4-74.9-41.2-151 66.4-10.6 124.7 6.8 131.9 9.1-9.4 58.9-43.3 109.8-90.8 142z\"]\n};\nvar faLinkedin = {\n prefix: 'fab',\n iconName: 'linkedin',\n icon: [448, 512, [], \"f08c\", \"M416 32L31.9 32C14.3 32 0 46.5 0 64.3L0 447.7C0 465.5 14.3 480 31.9 480L416 480c17.6 0 32-14.5 32-32.3l0-383.4C448 46.5 433.6 32 416 32zM135.4 416l-66.4 0 0-213.8 66.5 0 0 213.8-.1 0zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77zM384.3 416l-66.4 0 0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2z\"]\n};\nvar faCcPaypal = {\n prefix: 'fab',\n iconName: 'cc-paypal',\n icon: [576, 512, [], \"f1f4\", \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7l-4.7 0c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0l-4.5 0c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28l-40 0c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4l19 0c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.2 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM253 322.1l63.7-92.6c.5-.5 .5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5l-19.2 0c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4l-18.7 0c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2l19.2 0c1.8-.1 3.5-1.1 4.5-2.6zM412.3 215.4c0-21-16.2-28-34.7-28l-39.7 0c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4l20.5 0c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.3 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM544 190.9c0-2-1.5-3.5-3.2-3.5l-18.5 0c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3 .5c0 1.8 1.5 3.5 3.5 3.5l16.5 0c2.5 0 5-2.9 5.2-5.7l16.2-101.2 0-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5 .1-9.8-6.9-15.5-16.2-15.5z\"]\n};\nvar faDhl = {\n prefix: 'fab',\n iconName: 'dhl',\n icon: [640, 512, [], \"f790\", \"M238 301.2l58.7 0 22.3-30.2-58.7 0-22.3 30.2zM0 282.9l0 6.4 81.8 0 4.7-6.4-86.5 0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1s2.8-5.9-2.8-5.9l-51 0-41.1 55.8 100.1 0c33.1 0 51.5-22.5 57.2-30.3l-68.2 0zm317.5-6.9l39.3-53.4-62.2 0-39.3 53.4 62.2 0zM95.3 271l-95.3 0 0 6.4 90.6 0 4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5l45.6 0s7.3-10 13.5-18.4c8.4-11.4 .7-35-29.2-35l-117.9 0-20.4 27.8 111.4 0c5.6 0 5.5 2.2 2.7 5.9zM0 301.2l73.1 0 4.7-6.4-77.8 0 0 6.4zm323 0l58.7 0 22.3-30.2-58.7 0c-.1 0-22.3 30.2-22.3 30.2zm222 .1l95 0 0-6.4-90.3 0-4.7 6.4zM567.3 271l-4.7 6.4 77.4 0 0-6.4-72.7 0zm-13.5 18.3l86.2 0 0-6.4-81.5 0-4.7 6.4zM389.6 210.7l-22.5 30.6-26.2 0 22.5-30.6-58.7 0-39.3 53.4 143.6 0 39.3-53.4-58.7 0zM423.1 271s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6l94.3 0 22.3-30.3-133.4 0z\"]\n};\nvar faTex = {\n prefix: 'fab',\n iconName: 'tex',\n icon: [640, 512, [], \"e7ff\", \"M620.8 95.4c-30.8 .4-42.1 16.6-47.7 24.5l-.1 .1-55.7 80.5 82.8 121.1c7.5 10.6 11.3 12.5 35.4 12.5l0 9.1c-9.1-.7-28-.7-37.7-.7-12.4 0-30.8 0-42.9 .7l0-9.1c13.2-.8 16.6-7.3 16.6-10.2 0-1.1 0-2.3-3-6.4l-65.5-96.3-60.2 87.9c-1.9 2.7-3.8 5.4-3.8 10.2 0 6.1 3.4 13.6 15 14.7l0 9.1c-9.4-.7-27.1-.7-37.2-.7l-2.8 0-11.7 82.6-195.9 0 0-9.1c26.7 0 30.9 0 30.9-16.9l0-203.2c0-16.9-4.3-16.9-30.9-16.9l0-10.3 19.8 0c-4.8-61.1-10.8-71.7-68-71.8l-20.7 0c-6.8 1.5-6.8 6.1-6.8 14.4l0 205c0 13.6 1.1 17.8 32.4 17.8l10.5 0 0 9.1-.4 0c-17.9-.3-36.7-.7-54.9-.7s-36.9 .3-54.8 .7l-.6 0 0-9.1 10.7 0c31.7 0 32.8-4.1 32.8-17.8l0-205c0-8.7 0-13.2-7.2-14.3l-20.8 0c-58.4 0-63.7 10.9-68.6 73.3l-6.8 0 6.3-83.3 217.5 0 6.1 81.8 164.1 0 9 83.3-6.8 0c-5.3-49.8-12.1-73-70.3-73l-51.5 0c-15 0-15.8 1.9-15.8 14.6l0 93.3 35.5 0c35.5 0 38.9-12.8 38.9-44l6 0 0 97.9-6 0c0-31.8-3.4-44.8-38.9-44.8l-35.5 0 0 105.2c0 13 .7 14.8 15.8 14.8l52.2 0c61.1 0 69.9-25.8 77.4-73.6-7.7 0-16.3 .2-22.2 .7l0-9.1c7.2 0 31.7-.4 47.8-23.8l65.5-95.7-72.7-106.7c-8.3-11.7-15.1-12.5-35.8-12.5l0-9.1c9.1 .7 27.9 .7 37.7 .7 12.4 0 30.8 0 42.9-.7l0 9.1c-12.5 .4-16.6 6.8-16.6 10.2 0 1.1 .4 2.3 3 6.4l55.7 81.6 49.7-72.1c2.7-3.7 4.5-6.8 4.5-11.3 0-6.1-3-13.6-15-14.8l0-9.1c9.4 .7 24.8 .7 37.2 .7 9 0 23.3 0 32-.7l0 9.1z\"]\n};\nvar faClaude = {\n prefix: 'fab',\n iconName: 'claude',\n icon: [512, 512, [], \"e861\", \"M100.4 340.5l100.7-56.5 1.7-4.9-1.7-2.7-4.9 0-16.8-1-57.5-1.6-49.9-2.1-48.3-2.6-12.2-2.6-11.4-15 1.2-7.5 10.2-6.9 14.7 1.3c18.9 1.3 45.9 3.1 81 5.6l35.2 2.1 52.2 5.4 8.3 0 1.2-3.4-2.8-2.1-2.2-2.1-50.3-34.1-54.4-36-28.5-20.7-15.4-10.5-7.8-9.8-3.4-21.5 14-15.4 18.8 1.3 4.8 1.3 19 14.7 40.7 31.5 53.1 39.1 7.8 6.5 3.1-2.2 .4-1.6-3.5-5.8-28.9-52.2-30.8-53.1-13.7-22-3.6-13.2c-1.3-5.4-2.2-10-2.2-15.5l15.9-21.6 8.8-2.8 21.2 2.8 8.9 7.8 13.2 30.2 21.4 47.5 33.2 64.6 9.7 19.2 5.2 17.8 1.9 5.4 3.4 0 0-3.1 2.7-36.4 5-44.7 4.9-57.5 1.7-16.2 8-19.4 15.9-10.5 12.4 5.9 10.2 14.7-1.4 9.5-6.1 39.5-11.9 61.9-7.8 41.5 4.5 0 5.2-5.2 21-27.8 35.2-44.1 15.5-17.5 18.1-19.3 11.6-9.2 22 0 16.2 24.1-7.3 24.9-22.7 28.7-18.8 24.4-27 36.3-16.8 29 1.6 2.3 4-.4 60.9-13 32.9-5.9 39.3-6.7 17.8 8.3 1.9 8.4-7 17.2-42 10.4-49.2 9.8-73.3 17.3-.9 .7 1 1.3 33 3.1 14.1 .8 34.6 0 64.4 4.8 16.8 11.1 10.1 13.6-1.7 10.4-25.9 13.2c-15.5-3.7-54.4-12.9-116.6-27.7l-28-7-3.9 0 0 2.3 23.3 22.8 42.7 38.6 53.5 49.8 2.7 12.3-6.9 9.7-7.3-1-47-35.4-18.1-15.9-41.1-34.6-2.7 0 0 3.6 9.5 13.9 50 75.2 2.6 23-3.6 7.5-13 4.5-14.2-2.6-29.3-41.1-30.2-46.3-24.4-41.5-3 1.7-14.4 154.8-6.7 7.9-15.5 5.9-13-9.8-6.9-15.9 6.9-31.5 8.3-41.1 6.7-32.7 6.1-40.6 3.6-13.5-.2-.9-3 .4-30.6 42-46.5 62.9-36.8 39.4-8.8 3.5-15.3-7.9 1.4-14.1 8.5-12.6 50.9-64.8 30.7-40.2 19.8-23.2-.1-3.4-1.2 0-135.3 87.8-24.1 3.1-10.4-9.7 1.3-15.9 4.9-5.2 40.7-28-.1 .1 0 .1z\"]\n};\nvar faShopify = {\n prefix: 'fab',\n iconName: 'shopify',\n icon: [448, 512, [], \"e057\", \"M388.5 104.1c-.2-1.1-.7-2.1-1.5-2.8s-1.8-1.2-2.9-1.2c-2 0-37.2-.8-37.2-.8s-21.6-20.8-29.6-28.8l0 432.7 125.7-31.2s-54-365.5-54.4-367.9zM288.9 70.5c-1.9-6.1-4.3-11.9-7.2-17.6-10.4-20-26-30.9-44.4-30.9-1.3 0-2.7 .1-4 .4-.4-.8-1.2-1.2-1.6-2-8-8.8-18.4-12.8-30.8-12.4-24 .8-48 18-67.2 48.8-13.6 21.6-24 48.8-26.8 70.1-27.6 8.4-46.8 14.4-47.2 14.8-14 4.4-14.4 4.8-16 18-1.2 10-38 291.8-38 291.8l302.6 52.5 0-438.3c-1.5 .1-2.9 .2-4.4 .4 0 0-5.6 1.6-14.8 4.4zM233.6 87.7c-16 4.8-33.6 10.4-50.8 15.6 4.8-18.8 14.4-37.6 25.6-50 4.4-4.4 10.4-9.6 17.2-12.8 6.8 14.4 8.4 34 8 47.2zM200.8 24.4c5-.2 10 1.1 14.4 3.6-6.4 3.2-12.8 8.4-18.8 14.4-15.2 16.4-26.8 42-31.6 66.5-14.4 4.4-28.8 8.8-42 12.8 8.8-38.4 41.2-96.4 78-97.2zM154.4 244.6c1.6 25.6 69.2 31.2 73.2 91.7 2.8 47.6-25.2 80.1-65.6 82.5-48.8 3.2-75.6-25.6-75.6-25.6l10.4-44s26.8 20.4 48.4 18.8c14-.8 19.2-12.4 18.8-20.4-2-33.6-57.2-31.6-60.8-86.9-3.2-46.4 27.2-93.3 94.5-97.7 26-1.6 39.2 4.8 39.2 4.8l-15.2 57.6s-17.2-8-37.6-6.4c-29.6 2-30 20.8-29.6 25.6zM249.6 82.9c0-12-1.6-29.2-7.2-43.6 18.4 3.6 27.2 24 31.2 36.4-7.2 2-15.2 4.4-24 7.2z\"]\n};\nvar faSquareReddit = {\n prefix: 'fab',\n iconName: 'square-reddit',\n icon: [448, 512, [\"reddit-square\"], \"f1a2\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5-8.8-6.8-19.9-10.9-32-10.9-28.9 0-52.3 23.4-52.3 52.3 0 21 12.3 39 30.1 47.4 1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3 0-28.9-23.4-52.3-52.3-52.3-12 0-23 4-31.9 10.8-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7 3.9 16.5 18.7 28.7 36.3 28.7l.2-.2zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9-27.5-7.7-26.6-26.7 13.5-33.5 28.1-33.5l0-.1zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9 10.3-34.4 25-34.4 27.3 14.6 28.1 33.5l0 .1zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7 16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z\"]\n};\nvar faRedditSquare = faSquareReddit;\nvar faCreativeCommonsNc = {\n prefix: 'fab',\n iconName: 'creative-commons-nc',\n icon: [512, 512, [], \"f4e8\", \"M255.6 8C395.4 8 504 115.9 504 256 504 403.2 385.5 504 255.6 504 121.1 504 8 393.2 8 256 8 123.1 112.7 8 255.6 8zM63.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4l0 38.1-28.8 0 0-38.2c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM256.4 52.3C218 52.3 144 61 85.9 145.3l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3l0-38.1 28.8 0 0 38.1c22.7 1.2 43.4 8.9 62 23L303 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"]\n};\nvar faGalacticRepublic = {\n prefix: 'fab',\n iconName: 'galactic-republic',\n icon: [512, 512, [], \"f50c\", \"M256 8a248 248 0 1 1 0 496 248 248 0 1 1 0-496zm0 16.5a231.5 231.5 0 1 0 0 462.9 231.5 231.5 0 1 0 0-462.9zm27.6 21.8l0 24.6c30.3 4.5 59 16.3 83.6 34.5l17.4-17.4c-28.7-22.1-63.3-36.9-101-41.8zm-55.4 .1c-37.6 4.9-72.2 19.8-100.9 41.9l17.3 17.4 .1 0c24.1-17.8 52.6-30.1 83.5-34.7l0-24.5zm12.2 50.2l0 82.9c-10 2-19.4 5.9-27.7 11.4l-58.6-58.6-21.9 21.9 58.7 58.7c-5.5 8.2-9.4 17.6-11.5 27.6l-82.9 0 0 31 82.9 0c2 10 6 19.3 11.5 27.5l-58.7 58.7 21.9 21.9 58.6-58.6c8.4 5.6 17.8 9.5 27.7 11.5l0 82.9 31 0 0-82.9c10-2 19.4-6.1 27.6-11.5l58.7 58.7 21.9-21.9-58.7-58.7c5.5-8.2 9.5-17.5 11.5-27.5l82.9 0 0-31-82.9 0c-2-10-6-19.4-11.5-27.6l58.7-58.7-21.9-21.9-58.7 58.7c-8.2-5.5-17.6-9.5-27.6-11.5l0-82.9-31 0zm183.2 30.7l-17.4 17.4c18.3 24.6 30.2 53.4 34.7 83.7l24.6 0c-5-37.7-19.8-72.3-41.9-101zm-335.6 .1c-22.1 28.7-36.9 63.3-41.8 100.9l24.6 0c4.6-31 16.8-59.4 34.6-83.5L88.2 127.4zM46.3 283.7c4.9 37.6 19.7 72.2 41.8 100.9l17.4-17.4C87.7 343.1 75.6 314.6 71 283.7l-24.6 0 0 0zm394.7 0c-4.6 31-16.8 59.5-34.7 83.6l17.4 17.4c22.1-28.7 37-63.3 41.9-101l-24.6 0zM144.7 406.4l-17.4 17.4c28.7 22.1 63.3 37 101 41.9l0-24.6c-31-4.6-59.5-16.8-83.6-34.6zm222.5 0c-24.1 17.8-52.6 30.1-83.6 34.7l0 24.6c37.7-4.9 72.2-19.8 101-41.8l-17.3-17.4-.1 0z\"]\n};\nvar faFacebook = {\n prefix: 'fab',\n iconName: 'facebook',\n icon: [512, 512, [62000], \"f09a\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5l0-170.3-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 175.9C413.8 494.8 512 386.9 512 256z\"]\n};\nvar faGitlab = {\n prefix: 'fab',\n iconName: 'gitlab',\n icon: [512, 512, [], \"f296\", \"M504 204.6l-.7-1.8-69.7-181.8c-1.4-3.6-3.9-6.6-7.2-8.6-2.4-1.6-5.1-2.5-8-2.8s-5.7 .1-8.4 1.1-5.1 2.7-7.1 4.8c-1.9 2.1-3.3 4.7-4.1 7.4l-47 144-190.5 0-47.1-144c-.8-2.8-2.2-5.3-4.1-7.4-2-2.1-4.4-3.7-7.1-4.8-2.6-1-5.5-1.4-8.4-1.1s-5.6 1.2-8 2.8c-3.2 2-5.8 5.1-7.2 8.6L9.8 202.8 9 204.6c-10 26.2-11.3 55-3.5 82 7.7 26.9 24 50.7 46.4 67.6l.3 .2 .6 .4 106 79.5c38.5 29.1 66.7 50.3 84.6 63.9 3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3c17.9-13.5 46.1-34.9 84.6-63.9l106.7-79.9 .3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z\"]\n};\nvar faQq = {\n prefix: 'fab',\n iconName: 'qq',\n icon: [448, 512, [], \"f1d6\", \"M434.1 420.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.1 72.2-51 101.8 16.8 5.2 54.8 19.2 45.8 34.4-7.3 12.3-125.5 7.9-159.6 4-34.1 3.8-152.3 8.3-159.6-4-9-15.2 28.9-29.2 45.8-34.4-34.9-29.5-51.1-70.4-51.1-101.8 0 0-33.3 54.1-44.9 52.7-5.4-.6-12.4-29.6 9.3-99.7 10.3-33 22-60.5 40.1-105.8-3.1-116.9 45.2-215 160.3-215 113.7 0 163.2 96.1 160.3 215 18.1 45.2 29.9 72.9 40.1 105.8 21.8 70.1 14.7 99.1 9.3 99.7z\"]\n};\nvar faStripe = {\n prefix: 'fab',\n iconName: 'stripe',\n icon: [640, 512, [], \"f429\", \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9l0-33.8c-5.7 2.3-33.7 10.5-33.7-15.7l0-63.2 33.7 0 0-37.8-33.7 0-.1-38.5zm89.1 51.6l-2.7-13.1-38.4 0 0 153.2 44.3 0 0-103.1c10.5-13.8 28.2-11.1 33.9-9.3l0-40.8c-6-2.1-26.7-6-37.1 13.1zM346.4 124l-44.6 9.5 0 36.2 44.6-9.5 0-36.2zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4l0-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2l0 40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5l0-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9l86.9 0c.2-2.3 .6-11.6 .6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4l-45.9 0zM439.2 180.2c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11-39.1 0 0 204.8 44.4-9.4 .1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6 .1-51.6-29.3-79.7-60.5-79.7zM428.6 302.7c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4 .1 23.9-10.9 41.8-27.4 41.8zM301.9 336.4l44.6 0 0-153.2-44.6 0 0 153.2z\"]\n};\nvar faDailymotion = {\n prefix: 'fab',\n iconName: 'dailymotion',\n icon: [448, 512, [], \"e052\", \"M298.9 267c-7.4-4.2-15.8-6.3-24.4-6.2-13.2 0-24.4 4.4-33.4 13.3s-13.6 20-13.6 33.4c0 14.1 4.4 25.6 13.3 34.6s20 13.4 33.4 13.4c13.7 0 25-4.6 34.1-13.8S322 321.1 322 307.5c0-8.2-2.1-16.3-6.1-23.5-4-7.1-9.8-13-17-17zM0 32l0 448 448 0 0-448-448 0zM374.7 405.3l-53.1 0 0-23.9-.7 0c-10.5 17.5-29.1 26.2-55.8 26.2-18.4 0-34.7-4.4-48.9-13.1-14.1-8.6-25.5-21-32.9-35.8-7.7-15.1-11.6-32.1-11.6-50.9 0-18.4 3.9-35.1 11.8-50.2 7.5-14.7 18.9-27.1 32.9-35.8 14.1-8.7 30-13.1 47.7-13.1 10.2-.1 20.2 1.6 29.7 5.2 8.9 3.5 17.2 9.1 25 17l0-77.9 55.8-12.1 0 264.4z\"]\n};\nvar faSteam = {\n prefix: 'fab',\n iconName: 'steam',\n icon: [512, 512, [], \"f1b6\", \"M504 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5l0 1.2-59.2 85.7c-15.5-.9-30.7 3.4-43.5 12.1L8 236.1C18.2 108.4 125.1 8 255.6 8 392.8 8 504 119 504 256zM163.7 384.3l-30.5-12.6c5.6 11.6 15.3 20.8 27.2 25.8 26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3 .1-40.3S214 305.6 201 300.2c-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zM337.5 129.8a62.3 62.3 0 1 1 0 124.6 62.3 62.3 0 1 1 0-124.6zm.1 109a46.8 46.8 0 1 0 0-93.6 46.8 46.8 0 1 0 0 93.6z\"]\n};\nvar faVenmoV = {\n prefix: 'fab',\n iconName: 'venmo-v',\n icon: [512, 512, [], \"e85b\", \"M466.5 14.8c17.4 28.7 25.3 58.2 25.3 95.5 0 119-101.9 273.5-184.7 382.1l-188.9 0-75.8-451.5 165.4-15.7 40.1 321.3c37.4-60.8 83.6-156.3 83.6-221.4 0-35.6-6.1-59.9-15.7-79.9L466.5 14.8z\"]\n};\nvar faSnapchat = {\n prefix: 'fab',\n iconName: 'snapchat',\n icon: [512, 512, [62124, \"snapchat-ghost\"], \"f2ab\", \"M497.1 366.6c-3.4-9.2-9.8-14.1-17.1-18.2-1.4-.8-2.6-1.5-3.7-1.9-2.2-1.1-4.4-2.2-6.6-3.4-22.8-12.1-40.6-27.3-53-45.4-3.5-5.1-6.6-10.5-9.1-16.1-1.1-3-1-4.7-.2-6.3 .8-1.2 1.7-2.2 2.9-3 3.9-2.6 8-5.2 10.7-7 4.9-3.2 8.8-5.7 11.2-7.4 9.4-6.5 15.9-13.5 20-21.3 2.9-5.4 4.5-11.3 4.9-17.4s-.6-12.2-2.8-17.8c-6.2-16.3-21.6-26.4-40.3-26.4-3.9 0-7.9 .4-11.7 1.2-1 .2-2.1 .5-3.1 .7 .2-11.2-.1-22.9-1.1-34.5-3.5-40.8-17.8-62.1-32.7-79.2-9.5-10.7-20.7-19.7-33.2-26.7-22.6-12.9-48.2-19.4-76.1-19.4s-53.4 6.5-76 19.4c-12.5 7-23.7 16.1-33.3 26.8-14.9 17-29.2 38.4-32.7 79.2-1 11.6-1.2 23.4-1.1 34.5-1-.3-2-.5-3.1-.7-3.9-.8-7.8-1.2-11.7-1.2-18.7 0-34.1 10.1-40.3 26.4-2.2 5.7-3.2 11.8-2.8 17.8s2 12 4.9 17.4c4.1 7.8 10.7 14.7 20 21.3 2.5 1.7 6.4 4.2 11.2 7.4 2.6 1.7 6.5 4.2 10.3 6.7 1.3 .9 2.4 2 3.3 3.3 .8 1.6 .8 3.4-.4 6.6-2.5 5.5-5.5 10.8-8.9 15.8-12.1 17.7-29.4 32.6-51.4 44.6-11.7 6.2-23.9 10.3-29 24.3-3.9 10.5-1.3 22.5 8.5 32.6 3.6 3.8 7.8 6.9 12.4 9.4 9.6 5.3 19.8 9.3 30.3 12.1 2.2 .6 4.3 1.5 6.1 2.7 3.6 3.1 3.1 7.9 7.8 14.8 2.4 3.6 5.4 6.7 9 9.1 10 6.9 21.3 7.4 33.2 7.8 10.8 .4 23 .9 36.9 5.5 5.8 1.9 11.8 5.6 18.7 9.9 16.7 10.3 39.6 24.3 77.8 24.3s61.3-14.1 78.1-24.4c6.9-4.2 12.9-7.9 18.5-9.8 13.9-4.6 26.2-5.1 36.9-5.5 11.9-.5 23.2-.9 33.2-7.8 4.2-2.9 7.7-6.7 10.2-11.2 3.4-5.8 3.4-9.9 6.6-12.8 1.8-1.2 3.7-2.1 5.8-2.6 10.7-2.8 21-6.9 30.8-12.2 4.9-2.6 9.3-6.1 13-10.2l.1-.2c9.2-9.9 11.5-21.5 7.8-31.8zm-34 18.3c-20.7 11.5-34.5 10.2-45.3 17.1-9.1 5.9-3.7 18.5-10.3 23.1-8.1 5.6-32.2-.4-63.2 9.9-25.6 8.5-42 32.8-88 32.8s-62-24.3-88.1-32.9c-31-10.3-55.1-4.2-63.2-9.9-6.6-4.6-1.2-17.2-10.3-23.1-10.7-6.9-24.5-5.7-45.3-17.1-13.2-7.3-5.7-11.8-1.3-13.9 75.1-36.4 87.1-92.6 87.7-96.7 .6-5 1.4-9-4.2-14.1-5.4-5-29.2-19.7-35.8-24.3-10.9-7.6-15.7-15.3-12.2-24.6 2.5-6.5 8.5-8.9 14.9-8.9 2 0 4 .2 6 .7 12 2.6 23.7 8.6 30.4 10.2 .8 .2 1.6 .3 2.5 .3 3.6 0 4.9-1.8 4.6-5.9-.8-13.1-2.6-38.7-.6-62.6 2.8-32.9 13.4-49.2 26-63.6 6.1-6.9 34.5-37 88.9-37S339 74.2 345 81.1c12.6 14.4 23.2 30.7 26 63.6 2.1 23.9 .3 49.5-.6 62.6-.3 4.3 1 5.9 4.6 5.9 .8 0 1.7-.1 2.5-.3 6.7-1.6 18.4-7.6 30.4-10.2 2-.4 4-.7 6-.7 6.4 0 12.4 2.5 14.9 8.9 3.5 9.4-1.2 17-12.2 24.6-6.6 4.6-30.4 19.3-35.8 24.3-5.6 5.1-4.8 9.1-4.2 14.2 .5 4.2 12.5 60.4 87.7 96.7 4.4 2.2 11.9 6.7-1.3 14.1z\"]\n};\nvar faSnapchatGhost = faSnapchat;\nvar faGalacticSenate = {\n prefix: 'fab',\n iconName: 'galactic-senate',\n icon: [512, 512, [], \"f50d\", \"M249.9 33.5l0 26.1c-13.6 20.6-23.9 108.6-24.5 215.3 11.7-15.6 19.1-33.3 19.1-48.2l0-16.9c0-5.3 .8-10.5 2.2-15.6 .6-2.1 1.4-4.1 2.6-5.8s3.4-3.8 6.7-3.8 5.4 2.1 6.7 3.8c1.2 1.8 2 3.7 2.6 5.8 1.4 5.1 2.2 10.3 2.2 15.6l0 16.9c0 14.9 7.4 32.6 19.1 48.2-.6-106.8-10.9-194.7-24.5-215.3l0-26.1-12.3 0zM223.5 181.3c-9.5 2.1-18.7 5.2-27.5 9.1 8.9 16.1 9.8 32.6 1.7 37.3-8 4.6-21.8-4.2-31.4-19.8-11.6 8.8-21.9 19.3-30.6 31.1 14.7 9.6 22.9 22.9 18.3 30.7-4.5 7.7-20 7.1-35.5-1-5.8 13.2-9.7 27.5-11.6 42.4 9.7 .2 18.7 2.4 26.2 6 17.8-.3 32.8-2 40.5-4.2 5.6-26.4 23-48.2 46.3-59.5 .7-25.6 1.9-49.7 3.5-72.1zm65 0c1.6 22.4 2.7 46.5 3.5 72.1 23.3 11.3 40.8 33.2 46.3 59.5 7.7 2.3 22.7 3.9 40.5 4.2 7.5-3.7 16.5-5.8 26.2-6-1.9-14.9-5.9-29.2-11.7-42.4-15.4 8.1-30.9 8.7-35.5 1-4.6-7.7 3.6-21.1 18.3-30.7-8.7-11.8-19-22.3-30.6-31.1-9.5 15.6-23.4 24.4-31.4 19.8-8.1-4.6-7.2-21.2 1.7-37.3-8.8-3.9-18-7-27.4-9.1zM256 189.9c-3.2 0-5.9 8.8-6.1 19.9l0 0 0 16.9c0 41.4-49 95-93.5 95-52 0-122.8-1.4-156.4 29.2l0 2.5c9.4 17.1 20.6 33.2 33.2 48 12.5-21.1 51.6-41 108-41.4 45.7 1 79 20.3 90.8 40.9 0 0 0 0 0 .1 7.7 2.1 15.8 3.2 24 3.2 8.2 0 16.4-1.1 24-3.2 0 0 0 0 0-.1 11.7-20.5 45.1-39.8 90.8-40.9 56.4 .4 95.5 20.3 108 41.4 12.6-14.8 23.8-30.9 33.2-48l0-2.5c-33.6-30.6-104.4-29.2-156.4-29.2-44.5 0-93.5-53.6-93.5-95l0-16.9-.1 0c-.2-11.1-2.9-19.9-6.1-19.9zm0 177.9a40.6 40.6 0 1 1 0-81.3 40.6 40.6 0 1 1 0 81.3zm0-73.6a33 33 0 1 0 0 65.9 33 33 0 1 0 0-65.9zm0 59.8a26.8 26.8 0 1 1 0-53.6 26.8 26.8 0 1 1 0 53.6zm-114.8 13c-10.2 .1-21.6 .4-30.5 1.7 .4 4.4 1.5 18.6 7.1 29.8 9.1-2.6 18.4-3.9 27.6-3.9 41.3 .9 71.5 34.4 78.3 74.5l.1 4.7c10.4 1.9 21.2 2.9 32.2 2.9 11 0 21.8-1 32.2-2.9l.1-4.7c6.8-40.1 37-73.5 78.3-74.5 9.3 0 18.5 1.3 27.6 3.9 5.6-11.1 6.7-25.3 7.1-29.8-8.9-1.3-20.3-1.6-30.5-1.7-18.8 .4-35.2 4.2-48.6 9.7-12.5 16-29.2 30-49.6 33.1-.1 0-.2 0-.3 0 0 0-.1 0-.2 .1-5.2 1.1-10.6 1.6-16.2 1.6-5.5 0-10.9-.5-16.2-1.6-.1 0-.1 0-.2-.1-.1 0-.2 0-.3 0-20.4-3-37-17-49.6-33.1-13.4-5.5-29.9-9.2-48.6-9.7z\"]\n};\nvar faPhoenixFramework = {\n prefix: 'fab',\n iconName: 'phoenix-framework',\n icon: [640, 512, [], \"f3dc\", \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4 .1-.8 .2-1.1 .3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7-111.2-16.5-128.9-163.6-252.5-173.1-44.3-3.4-99.4 8.1-136.3 35-.8 .6-1.5 1.2-2.2 1.8 .1 .2 .1 .3 .2 .5 .8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7 .3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zM272.2 415.4c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1 .2-.3 .3-.4 .5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zM447 163.4c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6 .1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2 .1-.2 2.1 .6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zM549.7 280.9c-32.4 .2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2l0-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7 .3 .2 .4 .5 .7 .9-.5 0-.7 .1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1 .2-.1 .4-.2 .6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2 .1-.3 .1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7 .4-.1 .9 0 1.5 .3-.6 .4-1.2 .9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4 .6-.8 .9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5 .1-.1 .2 0 .4 .4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7 .5-.2 .8-.4 1.1-.4 13.1 .1 26.1 .7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"]\n};\nvar faGit = {\n prefix: 'fab',\n iconName: 'git',\n icon: [512, 512, [], \"f1d3\", \"M216.3 158.4l-79.3 0c-40-10.5-130.5-7.8-130.5 74.8 0 30.1 15 51.2 35 61-25.1 23-37 33.8-37 49.2 0 11 4.5 21.1 17.9 26.8-14.3 13.4-22.4 23.1-22.4 41.4 0 32.1 28 50.8 101.6 50.8 70.8 0 111.8-26.4 111.8-73.2 0-58.7-45.2-56.5-151.6-63l13.4-21.6c27.3 7.6 118.7 10 118.7-67.9 0-18.7-7.7-31.7-15-41.1l37.4-2.8 0-34.5zM152.9 400.3c0 32.1-104.9 32.1-104.9 2.4 0-8.1 5.3-15 10.6-21.5 77.7 5.3 94.3 3.4 94.3 19.1zM102.1 265.7c-52.8 0-50.5-71.2 1.2-71.2 49.5 0 50.8 71.2-1.2 71.2zM235.4 366.2l0-32.1c26.7-3.7 27.2-2 27.2-11l0-119.5c0-8.5-2.1-7.4-27.2-16.3l4.5-32.9 84.2 0 0 168.7c0 6.5 .4 7.3 6.5 8.1l20.7 2.8 0 32.1-115.9 0zm52.5-244.3c-23.2 0-36.6-13.4-36.6-36.6s13.4-35.8 36.6-35.8c23.6 0 37 12.6 37 35.8s-13.4 36.6-37 36.6zM512 350.5c-17.5 8.5-43.1 16.3-66.3 16.3-48.4 0-66.7-19.5-66.7-65.5l0-106.5c0-5.4 1-4.1-31.7-4.1l0-36.2c35.8-4.1 50-22 54.5-66.3l38.6 0c0 65.8-1.3 61.8 3.3 61.8l57.3 0 0 40.6-60.6 0 0 97.1c0 6.9-4.9 51.4 60.6 26.8l11 35.8z\"]\n};\nvar faOptinMonster = {\n prefix: 'fab',\n iconName: 'optin-monster',\n icon: [576, 512, [], \"f23c\", \"M572.8 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7 .3-6.5 .3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6l0-2.8c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60-69.6-59.7-167.7-53.8-244.2-37.6 19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8 .9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8 .5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4 .5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2l0 19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3 .5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1 .2-3.7-.7-7.2-1.7-10.7zM499 167.4c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3 .3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1 .5-8.1 .8-11.6 .8-1.9-21.9-6.8-44-14.3-64.6 3.7 .3 8.1 .3 11.8 .3zM47.7 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1 .8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53l0 .3 12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-10.5a76.1 76.1 0 1 1 0-152.2 76.1 76.1 0 1 1 0 152.2zm115.6 22.1c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3 .3 26.6 .3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1l0 .3c18.9-.3 38.1-.3 57 0zM278.5 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8l0 .3c1.1 8.3 3.3 51.2-1.3 53.7zM172 257.9c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6 .8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zM115 461.7c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5l.3 0c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3 .3l0-.3 .3 0c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2 .8 2.2 .8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8 .3 1.9 .5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3 .9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM373.1 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM75 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zM290.9 230.9c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68.2 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM479 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5 .9-8.4-20.2-23.5-29.1-25.1z\"]\n};\nvar faJenkins = {\n prefix: 'fab',\n iconName: 'jenkins',\n icon: [448, 512, [], \"f3b6\", \"M455.4 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8 .2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2 .7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6-21.1 12.5-36.4 20.3-55.9 34.3-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8 .7 2 1.4 4.1 2.1 6l422 0c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM174.2 33.7c1.8-.5 3.4 .7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4 .7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zM69.4 127.3c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7 .3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2 .5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8 .7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1 .6-16.5zm-17.2-20c-16.8 .8-26-1.2-38.3-10.8 .2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM194.3 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3 .8 4.4-2.8 10.2-2.8 16.4zM26 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5 .7 2.3 1.4 4.7 2.2 7.2l-180.7 0 0-.1zm240.6 5.7l-.8 0c.3-.2 .5-.4 .8-.5l0 .5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3l-9.6 0zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5 .4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7l-14 0c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8l-17.4 0c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9 .8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8 .6-11.5 15.6-7.3 29 1.3 35.7 11.5l-36.3 0zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1l-27.9 0c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1 .8 5.5-2.6 18.9-3.8 25.1zM190.5 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7 .5 0 1 0 1.4 .1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm-96.8 2.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9 .9-36.6-17.1 11.9 .7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zM261.5 298.3c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zM353.7 345c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"]\n};\nvar faSlideshare = {\n prefix: 'fab',\n iconName: 'slideshare',\n icon: [512, 512, [], \"f1e7\", \"M187.9 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7 .1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3 0-198.3c0-27.4-20.6-49.7-46-49.7L76.8 0c-25.4 0-46 22.3-46 49.7l0 198.3c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72-56.3 191.7 137.4 222.3 134.3 124.1 0-.7 .3-56.6 .3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7 .3 92.8 .3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28l0-192.4c0-34.9 8.9-45.7 40.6-45.7l317.7 0c30.3 0 40.9 12.9 40.9 45.7l0 190.6-.1 0z\"]\n};\nvar faUber = {\n prefix: 'fab',\n iconName: 'uber',\n icon: [448, 512, [], \"f402\", \"M414.1 32L33.9 32C15.2 32 0 47.2 0 65.9L0 446c0 18.8 15.2 34 33.9 34L414 480c18.7 0 33.9-15.2 33.9-33.9l0-380.2C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6l94.4 0 0 20.4c0 3.7 3 6.8 6.8 6.8l67.9 0c3.7 0 6.8-3 6.8-6.8l0-67.9c0-3.7-3-6.8-6.8-6.8l-67.9 0c-3.7 0-6.8 3-6.8 6.8l0 20.4-94.4 0c7-69.4 65.4-122.2 135.1-122.2s128.1 52.8 135.1 122.2c7.5 74.5-46.9 141.1-121.5 148.6z\"]\n};\nvar faDigitalOcean = {\n prefix: 'fab',\n iconName: 'digital-ocean',\n icon: [512, 512, [], \"f391\", \"M87 481.8l73.7 0 0-73.6-73.7 0 0 73.6zM25.4 346.6l0 61.6 61.6 0 0-61.6-61.6 0zM491.6 176.9C468.6 102.7 409.2 43.6 335 20.3 164.9-32.8 8 93.7 8 255.9l95.8 0c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208l0 .3-.3 0 0 95.8c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231l0-95.3-95.6 0 0 95.6 95.3 0 0-.3 .3 0z\"]\n};\nvar faSoundcloud = {\n prefix: 'fab',\n iconName: 'soundcloud',\n icon: [640, 512, [], \"f1be\", \"M640.2 298.6c-1.3 23.1-11.5 44.8-28.4 60.5s-39.2 24.4-62.3 24.1l-218 0c-4.8 0-9.4-2-12.8-5.4s-5.3-8-5.3-12.8l0-234.8c-.2-4 .9-8 3.1-11.4s5.3-6.1 9-7.7c0 0 20.1-13.9 62.3-13.9 25.8 0 51.1 6.9 73.3 20.1 17.3 10.2 32.3 23.8 44.1 40.1s20 34.8 24.2 54.4c7.5-2.1 15.3-3.2 23.1-3.2 11.7-.1 23.3 2.2 34.2 6.7s20.5 11.3 28.7 19.7 14.6 18.3 18.9 29.3 6.3 22.6 5.9 34.3zm-354-153.5c.1-1 0-2-.3-2.9s-.8-1.8-1.5-2.6-1.5-1.3-2.4-1.7c-1.8-.8-4-.8-5.8 0-.9 .4-1.7 1-2.4 1.7s-1.2 1.6-1.5 2.6-.4 1.9-.3 2.9c-6 78.9-10.6 152.9 0 231.6 .2 1.7 1 3.3 2.3 4.5 2.6 2.4 6.8 2.4 9.4 0 1.3-1.2 2.1-2.8 2.3-4.5 11.3-79.4 6.6-152 0-231.6l.2 0zm-44 27.3c-.2-1.8-1.1-3.5-2.4-4.7s-3.1-1.9-5-1.9-3.6 .7-5 1.9-2.2 2.9-2.4 4.7c-7.9 67.9-7.9 136.5 0 204.4 .3 1.8 1.2 3.4 2.5 4.5s3.1 1.8 4.8 1.8 3.5-.6 4.8-1.8 2.2-2.8 2.5-4.5c8.8-67.8 8.8-136.5 .1-204.4l.1 0zm-44.3-6.9c-.2-1.8-1-3.4-2.3-4.6s-3-1.8-4.8-1.8-3.5 .7-4.8 1.8-2.1 2.8-2.3 4.6c-6.7 72-10.2 139.3 0 211.1 0 1.9 .7 3.7 2.1 5s3.1 2.1 5 2.1 3.7-.7 5-2.1 2.1-3.1 2.1-5c10.5-72.8 7.3-138.2 .1-211.1l-.1 0zm-44 20.6c0-1.9-.8-3.8-2.1-5.2s-3.2-2.1-5.2-2.1-3.8 .8-5.2 2.1-2.1 3.2-2.1 5.2c-8.1 63.3-8.1 127.5 0 190.8 .2 1.8 1 3.4 2.4 4.6s3.1 1.9 4.8 1.9 3.5-.7 4.8-1.9 2.2-2.8 2.4-4.6c8.8-63.3 8.9-127.5 .3-190.8l-.1 0zm-44.5 47.6c0-1.9-.8-3.8-2.1-5.1s-3.2-2.1-5.1-2.1-3.8 .8-5.1 2.1-2.1 3.2-2.1 5.1c-10.5 49.2-5.5 93.9 .4 143.6 .3 1.6 1.1 3.1 2.3 4.2s2.8 1.7 4.5 1.7 3.2-.6 4.5-1.7 2.1-2.5 2.3-4.2c6.6-50.4 11.6-94.1 .4-143.6zm-44.1-7.5c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9-3.6 .7-5 1.9-2.2 2.9-2.4 4.8c-9.3 50.2-6.2 94.4 .3 144.5 .7 7.6 13.6 7.5 14.4 0 7.2-50.9 10.5-93.8 .3-144.5l-.2 0zM20.7 250.8c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9-3.6 .7-5 1.9-2.3 2.9-2.4 4.8c-8.5 33.7-5.9 61.6 .6 95.4 .2 1.7 1 3.3 2.3 4.4s2.9 1.8 4.7 1.8 3.4-.6 4.7-1.8 2.1-2.7 2.3-4.4c7.5-34.5 11.2-61.8 .4-95.4l-.2 0z\"]\n};\nvar faSquareFigma = {\n prefix: 'fab',\n iconName: 'square-figma',\n icon: [448, 512, [], \"e7e4\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM173.7 96c-33 0-59.8 26.8-59.8 59.8 0 21 10.8 39.4 27.2 50.1-16.4 10.7-27.2 29.1-27.2 50.1s10.8 39.5 27.2 50.1c-16.4 10.7-27.2 29.1-27.2 50.1 0 33.1 27.1 59.8 60.1 59.8 33.2 0 60.6-26.9 60.6-60.3l0-55.7c10.6 9.8 24.8 15.8 40.4 15.8l1.1 0c33 0 59.8-26.8 59.8-59.8 0-21-10.8-39.5-27.2-50.1 16.4-10.7 27.2-29.1 27.2-50.1 0-33-26.8-59.8-59.8-59.8L173.7 96zm41.6 219.8l0 39.9c0 22.6-18.6 41-41.3 41-22.4 0-40.7-18.2-40.7-40.5 0-22.3 18.1-40.4 40.3-40.4l41.7 0zm0-100.3l0 80.9-41.7 0c-22.3-.1-40.3-18.2-40.3-40.5 0-22.3 18.1-40.5 40.5-40.5l41.6 0zm60.8 0c22.3 0 40.5 18.1 40.5 40.5s-18.1 40.5-40.5 40.5l-1.1 0c-22.3 0-40.4-18.1-40.4-40.5s18.1-40.5 40.4-40.5l1.1 0zm-60.8-19.3l-41.6 0c-22.3 0-40.5-18.1-40.5-40.4s18.1-40.5 40.5-40.5l41.6 0 0 80.9zm60.8-80.9c22.3 0 40.5 18.1 40.5 40.5s-18.1 40.4-40.5 40.4l-41.5 0 0-80.9 41.5 0z\"]\n};\nvar faCreativeCommonsSa = {\n prefix: 'fab',\n iconName: 'creative-commons-sa',\n icon: [512, 512, [], \"f4ef\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM145.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97l62.5 0c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8l18.2 0-49.2 49.2-49-49.2 19.4 0z\"]\n};\nvar faChrome = {\n prefix: 'fab',\n iconName: 'chrome',\n icon: [512, 512, [], \"f268\", \"M0 256c0-46.6 12.5-90.4 34.3-128.9L144.1 318.3c21.9 39.2 63.8 65.7 111.9 65.7 14.3 0 27.1-2.3 40.8-6.6L220.5 509.6C95.9 492.3 0 385.3 0 256zm365.1 65.6c12.3-19.2 18.9-42.5 18.9-65.6 0-38.2-16.8-72.5-43.3-96l152.7 0c12 29.6 18.6 62.1 18.6 96 0 141.4-114.6 255.1-256 256L365.1 321.6zM477.8 128L256 128c-62.9 0-113.7 44.1-125.5 102.7L54.2 98.5C101 38.5 174 0 256 0 350.8 0 433.5 51.5 477.8 128zM344 256a88 88 0 1 1 -176 0 88 88 0 1 1 176 0z\"]\n};\nvar faTradeFederation = {\n prefix: 'fab',\n iconName: 'trade-federation',\n icon: [512, 512, [], \"f513\", \"M256 8.8a247.2 247.2 0 1 0 0 494.4 247.2 247.2 0 1 0 0-494.4zm0 11.6a235.6 235.6 0 1 1 0 471.2 235.6 235.6 0 1 1 0-471.2zM411.1 163.1l0-46.8-193.8 0 0 81.7-155.1 0 36.7 46 117.7 0 0 196.8 48.8 0 0-195.8 83.3 0 0-47-83.3 0 0-34.8 145.7 0 0-.1zm-73.3 45.1l0 23.9-82.9 0 0 197.4-26.8 0 0-197.4-123.8 0-20.1-23.9 143.9 0 0-80.6 171.8 0 0 24.4-145 0 0 56.2 82.9 0zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1-22 9.3zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3-9.5-10.2zM312.3 264.7l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7 9.3-10.8zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17 15-17.6zM256 29.9a226.1 226.1 0 1 0 0 452.2 226.1 226.1 0 1 0 0-452.2zM350.6 196l0 51-83.3 0 0 195.7-52.7 0 0-196.8-116.7 0-40-49.9 157.4 0 0-81.6 197.8 0 0 50.7-145.7 0 0 30.9 83.2 0zM256 43.2c60.3 0 114.8 25 153.6 65.2l-199.1 0 0 81.6-157.4 0C81.1 104.8 161.4 43.2 256 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1l43.8 56.3 114.7 0 0 196.8 64.6 0 0-195.8 83.3 0 0-62.7-83.2 0 0-19.2 145.6 0 0-50.8c30.8 37 49.3 84.6 49.3 136.5 .1 117.9-95.5 213.5-213.4 213.5zM186.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1-22.7 9.3z\"]\n};\nvar faVaadin = {\n prefix: 'fab',\n iconName: 'vaadin',\n icon: [448, 512, [], \"f408\", \"M224.5 140.7C226 123.1 229.4 88 274.3 88l98.6 0c20.7 0 32.1-7.8 32.1-21.6l0-12.3c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1l0 36.5c0 42.9-21.5 62-66.8 62l-100.5 0c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1l-100.7 0C21.5 152.6 0 133.5 0 90.6L0 54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1l0 12.3C43.1 80.2 54.5 88 75.2 88l98.6 0c44.8 0 48.3 35.1 49.8 52.7l.9 0zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362 157.1 244.3c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"]\n};\nvar faDeviantart = {\n prefix: 'fab',\n iconName: 'deviantart',\n icon: [320, 512, [], \"f1bd\", \"M320 93.2l-98.2 179.1 7.4 9.5 90.8 0 0 127.7-160.9 0-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2l-92.7 0 0-93.2 93.2-179.4-7.4-9.2-85.8 0 0-127.6 156 0 13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2l97.6 0 0 93.1z\"]\n};\nvar faMedium = {\n prefix: 'fab',\n iconName: 'medium',\n icon: [448, 512, [62407, \"medium-m\"], \"f23a\", \"M369.4 32c43.4 0 78.6 35.2 78.6 78.6l0 83.8c-1.9-.1-3.8-.2-5.7-.2l-.4 0c-10 0-22.3 2.4-31.1 6.8-10 4.6-18.7 11.5-26 20.6-11.8 14.6-18.9 34.3-20.6 56.4-.1 .7-.1 1.3-.2 2s-.1 1.2-.1 1.9c-.1 1.2-.1 2.4-.1 3.6 0 1.9-.1 3.8 0 5.8 1.2 50.1 28.2 90.2 76.3 90.2 2.7 0 5.3-.1 7.9-.4l0 20.4c0 43.4-35.2 78.6-78.6 78.6L78.6 480C35.2 480 0 444.8 0 401.4L0 110.6C0 67.2 35.2 32 78.6 32l290.8 0zM82.3 138.9l.3 .1c13.2 3 19.8 7.4 19.8 23.4l0 187.2c0 16-6.7 20.4-19.9 23.4l-.3 .1 0 2.8 52.8 0 0-2.8-.3-.1c-13.2-3-19.9-7.4-19.9-23.4l0-176.3 86.1 202.5 4.9 0 88.6-208.2 0 186.6c-1.1 12.6-7.8 16.5-19.7 19.2l-.3 .1 0 2.7 91.9 0 0-2.7-.3-.1c-11.9-2.7-18.7-6.6-19.9-19.2l-.1-191.8 .1 0c0-16 6.7-20.4 19.9-23.4l.3-.1 0-2.7-72.2 0-67 157.4-67-157.4-77.8 0 0 2.7zM448 340.3c-25.1-7.4-43-35.1-41.2-67.8l0 0 41.1 0 0 67.8zm-6.4-135.6c2.3 0 4.4 .3 6.4 .9l0 57.4-40.2 0c1.5-33.6 13.6-57.9 33.8-58.3z\"]\n};\nvar faMediumM = faMedium;\nvar faOpencart = {\n prefix: 'fab',\n iconName: 'opencart',\n icon: [640, 512, [], \"f23d\", \"M331.8 440.4a45.8 45.8 0 1 1 91.5 .3 45.8 45.8 0 1 1 -91.5-.3zM169.4 394.9a45.7 45.7 0 1 0 .3 91.3 45.7 45.7 0 1 0 -.3-91.3zm291.7-270c-302.2 0-379.2-12.8-461.1-99.2 34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"]\n};\nvar faYCombinator = {\n prefix: 'fab',\n iconName: 'y-combinator',\n icon: [448, 512, [], \"f23b\", \"M448 32l0 448-448 0 0-448 448 0zM236 287.5l77.5-145.5-32.7 0-45.8 91c-4.7 9.3-9 18.3-12.8 26.8l-12.2-26.8-45.2-91-35 0 76.7 143.8 0 94.5 29.5 0 0-92.8z\"]\n};\nvar faLine = {\n prefix: 'fab',\n iconName: 'line',\n icon: [512, 512, [], \"f3c0\", \"M311 196.8l0 81.3c0 2.1-1.6 3.7-3.7 3.7l-13 0c-1.3 0-2.4-.7-3-1.5L254 230 254 278.2c0 2.1-1.6 3.7-3.7 3.7l-13 0c-2.1 0-3.7-1.6-3.7-3.7l0-81.3c0-2.1 1.6-3.7 3.7-3.7l12.9 0c1.1 0 2.4 .6 3 1.6l37.3 50.3 0-48.2c0-2.1 1.6-3.7 3.7-3.7l13 0c2.1-.1 3.8 1.6 3.8 3.5l0 .1zm-93.7-3.7l-13 0c-2.1 0-3.7 1.6-3.7 3.7l0 81.3c0 2.1 1.6 3.7 3.7 3.7l13 0c2.1 0 3.7-1.6 3.7-3.7l0-81.3c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1l-35.6 0 0-64.4c0-2.1-1.6-3.7-3.7-3.7l-13 0c-2.1 0-3.7 1.6-3.7 3.7l0 81.3c0 1 .3 1.8 1 2.5 .7 .6 1.5 1 2.5 1l52.2 0c2.1 0 3.7-1.6 3.7-3.7l0-13c0-1.9-1.6-3.7-3.5-3.7l.1 0zm193.7-68.1l-52.3 0c-1.9 0-3.7 1.6-3.7 3.7l0 81.3c0 1.9 1.6 3.7 3.7 3.7l52.2 0c2.1 0 3.7-1.6 3.7-3.7l0-13.1c0-2.1-1.6-3.7-3.7-3.7l-35.5 0 0-13.6 35.5 0c2.1 0 3.7-1.6 3.7-3.7l0-13.1c0-2.1-1.6-3.7-3.7-3.7l-35.5 0 0-13.7 35.5 0c2.1 0 3.7-1.6 3.7-3.7l0-13c-.1-1.9-1.7-3.7-3.7-3.7l.1 0zM512 93.4l0 326c-.1 51.2-42.1 92.7-93.4 92.6l-326 0C41.4 511.9-.1 469.8 0 418.6l0-326C.1 41.4 42.2-.1 93.4 0l326 0c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3S68.8 150.1 68.8 233.5c0 74.7 66.3 137.4 155.9 149.3 21.8 4.7 19.3 12.7 14.4 42.1-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1l0-.2z\"]\n};\nvar faAmilia = {\n prefix: 'fab',\n iconName: 'amilia',\n icon: [448, 512, [], \"f36d\", \"M240.2 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1l0 38.5C203.1 227.7 78.3 251 46.8 264.2 11.3 280.5 16.4 357.7 16.4 376S31.6 480 141.3 480c47.8 0 113.7-20.7 153.3-42.1l0 25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5 .3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1l0-296.6c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5l0 106.7z\"]\n};\nvar faAsymmetrik = {\n prefix: 'fab',\n iconName: 'asymmetrik',\n icon: [576, 512, [], \"f372\", \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1 .8-65.5-59.4-118.2-169.4-135-128.7-19.7-288.5 15.5-406.6 82.4 52-26.5 110.6-48.2 170.7-58.2 74.5-20.5 153-25.4 221.3-14.8 152.5 23.8 196.8 127.5 98.8 231.7-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7 101.6 0 22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1 135.5 0-32.6-53.1c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8 101.6 0-73.4-110.4c18.5-12.1 35-25.5 48.9-39.8zM329.9 389.7l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"]\n};\nvar faPhabricator = {\n prefix: 'fab',\n iconName: 'phabricator',\n icon: [512, 512, [], \"f3db\", \"M331.1 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4 .5 .2 28.9 .2 28.9l-9.1 9.1s-29.2-.9-29.7 .4L160 226.3c-.6 1.4 21 21 21 21l.1 12.9S159.4 280 160 281.4l9.5 20c.6 1.4 29.5 .5 29.5 .5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4 .6 20.7-23.5 20.7-23.5l13.1 .2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2 .9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4s-32.1-12.5-32.8-29.6 12.8-31.6 30.1-32.3c17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1 .1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM363.5 148.2a152.3 152.3 0 1 1 -215 215.6 152.3 152.3 0 1 1 215-215.6z\"]\n};\nvar faBots = {\n prefix: 'fab',\n iconName: 'bots',\n icon: [640, 512, [], \"e340\", \"M86.3 197.8c-8-.1-15.9 1.7-23.1 5.1s-13.5 8.6-18.4 14.9l0-61.9c0-2.2-.9-4.3-2.4-5.8s-3.6-2.4-5.8-2.4l-28.4 0c-2.2 0-4.3 .9-5.8 2.4S0 153.8 0 156L0 333.6c0 1.1 .2 2.1 .6 3.1s1 1.9 1.8 2.7 1.7 1.4 2.7 1.8 2.1 .6 3.1 .6l28.4 0c1.1 0 2.1-.2 3.1-.6s1.9-1 2.7-1.8 1.4-1.7 1.8-2.7 .6-2.1 .6-3.1l0-8.1c11.6 13.4 25.9 19.8 41.6 19.8 34.6 0 61.9-26.2 61.9-73.8 0-45.9-27-73.6-61.9-73.6zM71.5 305.7c-9.6 0-21.2-4.9-26.7-12.5l0-43c5.5-7.6 17.2-12.8 26.7-12.8 17.7 0 31.1 13.1 31.1 34 0 21.2-13.4 34.3-31.1 34.3zm156.4-59a17.4 17.4 0 1 0 0 34.8 17.4 17.4 0 1 0 0-34.8zm46.1-90l0-44.7c2.8-1.2 5.2-3.3 6.6-6s1.9-5.8 1.3-8.9-2.2-5.7-4.6-7.7-5.4-3-8.4-3-6.1 1.1-8.4 3-4 4.7-4.6 7.7-.1 6.1 1.3 8.9 3.8 4.8 6.6 6l0 44.7c-28 1.3-54.4 13.6-73.6 34.1s-29.5 47.7-28.8 75.8 12.3 54.7 32.4 74.3 47 30.6 75.1 30.6 55-11 75.1-30.6 31.7-46.3 32.4-74.3-9.7-55.3-28.8-75.8-45.5-32.8-73.6-34.1zm86 107.4c0 30.5-40.8 55.3-91.1 55.3s-91.1-24.7-91.1-55.3 40.8-55.3 91.1-55.3 91.1 24.7 91.1 55.3l0 0zm-50.2 17.4c3.4 0 6.8-1 9.7-2.9s5.1-4.6 6.4-7.8 1.7-6.7 1-10.1-2.3-6.5-4.8-8.9-5.5-4.1-8.9-4.8-6.9-.3-10.1 1-5.9 3.5-7.8 6.4-2.9 6.2-2.9 9.7c0 4.6 1.8 9 5.1 12.3s7.7 5.1 12.3 5.1l0 0zm270.9-31c-14.8-2.6-22.4-3.8-22.4-9.9 0-5.5 7.3-9.9 17.7-9.9 12.2 .1 24.2 3.6 34.5 10.1 1.8 1.2 4 1.6 6.2 1.1s4-1.7 5.1-3.6c.1-.1 .1-.2 .2-.3l8.6-14.9c1.1-1.9 1.4-4.1 .8-6.1s-1.9-3.9-3.7-5c-15.7-9.4-33.7-14.3-52-14.1-39 0-60.2 21.5-60.2 46.2 0 36.3 33.7 41.9 57.6 45.6 13.4 2.3 24.1 4.4 24.1 11 0 6.4-5.5 10.8-18.9 10.8-13.6 0-31-6.2-42.6-13.6-.9-.6-1.9-1-3-1.2s-2.1-.2-3.2 .1-2.1 .7-2.9 1.3-1.6 1.4-2.2 2.3c0 .1-.1 .1-.1 .2l-10.2 16.9c-1.1 1.8-1.4 4-1 6s1.7 3.9 3.5 5c15.2 10.3 37.7 16.7 59.4 16.7 40.4 0 64-19.8 64-46.5 0-38.1-35.5-43.9-59.3-48.3zm-95.9 60.8c-.5-2-1.8-3.7-3.6-4.8s-3.9-1.5-5.9-1.1c-1.4 .3-2.8 .4-4.2 .4-7.8 0-12.5-6.1-12.5-14.2l0-51.2 20.3 0c2.2 0 4.2-.9 5.8-2.4s2.4-3.6 2.4-5.8l0-22.7c0-2.2-.9-4.2-2.4-5.8s-3.6-2.4-5.8-2.4l-20.3 0 0-30.2c0-2.2-.9-4.2-2.4-5.8s-3.6-2.4-5.8-2.4l-28.2 0c-2.2 0-4.2 .9-5.8 2.4s-2.4 3.6-2.4 5.8l0 30.2-15.1 0c-1.1 0-2.1 .2-3.1 .6s-1.9 1-2.6 1.8-1.4 1.7-1.8 2.6-.6 2-.6 3.1l0 22.7c0 1.1 .2 2.1 .6 3.1s1 1.9 1.8 2.6 1.7 1.4 2.6 1.8 2 .6 3.1 .6l15.1 0 0 63.7c0 27 15.4 41.3 43.9 41.3 12.2 0 21.4-2.2 27.6-5.4 1.6-.8 2.9-2.2 3.7-3.9s.9-3.6 .5-5.4l-5-19.3z\"]\n};\nvar faVine = {\n prefix: 'fab',\n iconName: 'vine',\n icon: [384, 512, [], \"f1ca\", \"M384 254.7l0 52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8-27.1-16.3-129.9-100.6-164.1-365.6l74.5 0c18.7 159.1 64.5 240.7 114.8 301.8 27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"]\n};\nvar faMedrt = {\n prefix: 'fab',\n iconName: 'medrt',\n icon: [576, 512, [], \"f3c8\", \"M129.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9-137.6 0-249-111-249-248S127.4 8 264.9 8c20.1 0 39.6 2.4 58.2 6.9-109.6 18.3-193.4 119.3-193.4 241.1zM427.1 356.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47s108.1-184.3 46.5-272.6c-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9zm-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8zM312 224c-4.4 0-8-3.6-8-8l0-40c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8 3.6-8 8l0 40c0 4.4-3.6 8-8 8l-40 0c-4.4 0-8 3.6-8 8l0 48c0 4.4 3.6 8 8 8l40 0c4.4 0 8 3.6 8 8l0 40c0 4.4 3.6 8 8 8l48 0c4.4 0 8-3.6 8-8l0-40c0-4.4 3.6-8 8-8l40 0c4.4 0 8-3.6 8-8l0-48c0-4.4-3.6-8-8-8l-40 0z\"]\n};\nvar faOsi = {\n prefix: 'fab',\n iconName: 'osi',\n icon: [512, 512, [], \"f41a\", \"M8 266.4c2.3-135.8 97.4-232.4 213.8-248.1 138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.6-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 1.5-9.7 1-19.6-1.5-29.1s-6.9-18.4-12.9-26.1-13.6-14.1-22.2-18.8-18.1-7.5-27.9-8.3c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6 .6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4 .8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3 .6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 15.6 9 28.2 22.3 36.2 38.4s11.2 34.2 9 52c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.3 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"]\n};\nvar faGg = {\n prefix: 'fab',\n iconName: 'gg',\n icon: [512, 512, [], \"f260\", \"M179.2 230.4l102.4 102.4-102.4 102.4-179.2-179.2 179.2-179.2 44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8l-102.4 102.4 102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8 179.2-179.2-179.2-179.2z\"]\n};\nvar faBuysellads = {\n prefix: 'fab',\n iconName: 'buysellads',\n icon: [448, 512, [], \"f20d\", \"M224 150.7l42.9 160.7-85.8 0 42.9-160.7zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM382.7 405.3l-94.5-298.7-128.4 0-94.5 298.7 90.7 0 111.7-91.6 24.2 91.6 90.8 0z\"]\n};\nvar faGooglePlus = {\n prefix: 'fab',\n iconName: 'google-plus',\n icon: [512, 512, [], \"f2b3\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM185.3 380c-32.9 0-64.4-13.1-87.7-36.3s-36.3-54.8-36.3-87.7 13.1-64.4 36.3-87.7 54.8-36.3 87.7-36.3c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1S142.3 334 185.3 334c32.6 0 64.9-19.1 70.1-53.3l-70.1 0 0-42.6 116.9 0c1.3 6.8 1.9 13.8 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zM415.5 273.8l0 35.5-35.5 0 0-35.5-35.5 0 0-35.5 35.5 0 0-35.5 35.5 0 0 35.5 35.2 0 0 35.5-35.2 0z\"]\n};\nvar faScreenpal = {\n prefix: 'fab',\n iconName: 'screenpal',\n icon: [512, 512, [], \"e570\", \"M278.6 22.5a22.5 22.5 0 1 1 -45 0 22.5 22.5 0 1 1 45 0zM198.7 259a57.4 57.4 0 1 1 114.8 0 57.4 57.4 0 1 1 -114.8 0zm138.6 91c22.3-19.9 36.5-47.3 39.9-77l119.5 0c-3.5 61.4-30.4 119.2-75.2 161.4-44.7 42.2-103.9 65.8-165.4 65.8S135.4 476.6 90.7 434.4C45.9 392.2 19.1 334.4 15.5 273l119.7 0c3.4 29.7 17.6 57.1 39.9 77s51.2 30.9 81.1 30.9c29 0 58.7-11 81.1-30.9zM28.3 141.7a22.5 22.5 0 1 1 45-1.4 22.5 22.5 0 1 1 -45 1.4zm455.6-.7a22.4 22.4 0 1 1 -44.9 0 22.4 22.4 0 1 1 44.9 0zM318 95.3c-17.3 13.8-39.2 22.8-61.9 22.8s-44.6-9-61.9-22.8c-17.3-14.7-28.8-35.1-32.4-57.5 15.1-6.4 30.8-11.3 46.9-14.5 0 12.6 5 24.6 13.9 33.5s20.9 13.9 33.5 13.9 24.6-5 33.5-13.9 13.9-20.9 13.9-33.5c16.1 3.2 31.8 8.1 46.9 14.5-3.6 22.4-15.1 42.8-32.4 57.5zM82.9 231c-21.4 7.6-44.7 7.4-65.9-.6 2-16.3 5.6-32.3 10.8-47.9 5.4 3.1 11.3 5.1 17.5 6 6.2 .8 12.4 .4 18.5-1.2 6-1.7 11.6-4.4 16.6-8.2s9.1-8.5 12.2-13.9 5.1-11.4 6-17.5c.8-6.2 .4-12.5-1.2-18.5s-4.4-11.6-8.2-16.6c-3.8-4.9-8.5-9.1-13.9-12.2 10.8-12.3 22.9-23.5 36-33.3 17.6 14.3 29.5 34.5 33.6 56.8s.1 45.4-11.2 65c-11.4 19.6-29.4 34.5-50.7 42.1zm346.4 .1c-21.3-7.6-39.3-22.6-50.7-42.2-11.3-19.6-15.2-42.7-11.1-65 4.1-22.2 16-42.4 33.5-56.7 13.1 9.8 25.2 21 36 33.3-10.7 6.4-18.4 16.7-21.5 28.8-3.2 12-2.3 24.8 4.8 35.6 6.2 10.8 16.4 18.7 28.4 22s24.9 1.7 35.7-4.3c5.3 15.5 8.9 31.6 10.9 47.8-22.1 8.1-44.6 8.3-66 .7z\"]\n};\nvar faBitcoin = {\n prefix: 'fab',\n iconName: 'bitcoin',\n icon: [512, 512, [], \"f379\", \"M8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm354.3-35.3c4.9-33-20.2-50.7-54.6-62.6l11.1-44.7-27.2-6.8-10.9 43.5c-7.2-1.8-14.5-3.5-21.8-5.1l10.9-43.8-27.2-6.8-11.2 44.7c-5.9-1.3-11.7-2.7-17.4-4.1l0-.1-37.5-9.4-7.2 29.1s20.2 4.6 19.8 4.9c11 2.8 13 10 12.7 15.8l-12.7 50.9c.8 .2 1.7 .5 2.8 .9-.9-.2-1.9-.5-2.9-.7l-17.8 71.3c-1.3 3.3-4.8 8.4-12.5 6.5 .3 .4-19.8-4.9-19.8-4.9l-13.5 31.1 35.4 8.8c6.6 1.7 13 3.4 19.4 5l-11.3 45.2 27.2 6.8 11.2-44.7c7.2 2 14.4 3.8 21.7 5.6l-11.1 44.5 27.2 6.8 11.3-45.1c46.4 8.8 81.3 5.2 96-36.7 11.8-33.8-.6-53.3-25-66 17.8-4.1 31.2-15.8 34.7-39.9zm-62.2 87.2c-8.4 33.8-65.3 15.5-83.8 10.9l14.9-59.9c18.4 4.6 77.6 13.7 68.8 49zm8.4-87.7c-7.7 30.7-55 15.1-70.4 11.3l13.5-54.3c15.4 3.8 64.8 11 56.8 43z\"]\n};\nvar faSwift = {\n prefix: 'fab',\n iconName: 'swift',\n icon: [448, 512, [], \"f8e1\", \"M448 156.1c0-4.5-.1-9-.2-13.5-.1-9.9-1-19.7-2.6-29.4-1.7-9.7-4.8-19.2-9.2-28-9-17.7-23.4-32.1-41.2-41.1-8.8-4.5-18.3-7.6-28-9.2-9.7-1.6-19.6-2.5-29.4-2.6-4.5-.1-9-.2-13.5-.2L124.1 32c-4.5 0-9 .1-13.5 .2-2.4 .1-4.9 .2-7.4 .3-7.4 .3-14.8 1.1-22.1 2.3-7.3 1.3-14.4 3.3-21.2 6.1-2.3 1-4.6 2-6.8 3.1-6.6 3.4-12.8 7.5-18.4 12.3-1.9 1.6-3.7 3.3-5.4 5-7 7-12.9 15-17.4 23.8-4.4 8.8-7.6 18.3-9.2 28-1.6 9.7-2.4 19.6-2.5 29.4-.1 4.5-.2 9-.2 13.5L0 355.9c0 4.5 .1 9 .2 13.5 .1 9.9 1 19.7 2.6 29.4 1.7 9.7 4.8 19.2 9.2 28 9 17.7 23.4 32.1 41.1 41.1 8.8 4.4 18.3 7.5 28 9.2 9.7 1.6 19.6 2.5 29.4 2.6 4.5 .1 9 .2 13.5 .2l199.8 0c4.5 0 9-.1 13.5-.2 9.9-.1 19.7-1 29.4-2.6 9.7-1.7 19.2-4.8 28-9.2 17.7-9 32.1-23.4 41.1-41.2 4.4-8.8 7.6-18.3 9.2-28 1.6-9.7 2.5-19.6 2.6-29.4 .1-4.5 .2-9 .2-13.5l0-183.8c0-5.4 0-10.7 0-16zm-69.9 241c-20-38.9-57.2-29.3-76.3-19.5-1.7 1-3.5 2-5.2 3l-.4 .2c-39.5 21-92.5 22.5-145.8-.4-43.4-18.8-80.1-50.3-105.3-90.4 12.3 9.1 25.4 16.9 39.2 23.4 56.4 26.4 113 24.5 153 0-57-43.8-104.6-101-141.1-147.2-7-8.1-13.2-16.8-18.8-25.9 43.7 40 112.7 90.2 137.5 104.1-52.6-55.5-98.9-123.9-96.7-121.7 82.8 83.4 159.2 130.6 159.2 130.6 2.9 1.6 5 2.8 6.7 4 1.6-4.1 3-8.2 4.2-12.5 13.2-48.3-1.7-103.6-35.3-149.2 76.8 46.1 122.2 133.7 103.6 207.8-.4 1.7-1 3.4-1.4 5.1 38.5 47.4 28 98.2 23.1 88.6l0 0z\"]\n};\nvar faFilesPinwheel = {\n prefix: 'fab',\n iconName: 'files-pinwheel',\n icon: [512, 512, [], \"e69f\", \"M253.5 246.4L137.2 130.2c-.6-.6-1-1.3-1.4-2s-.5-1.6-.5-2.4 .2-1.6 .5-2.4 .8-1.4 1.4-2L253.6 5.1c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3 2.1 1.3 2.8 2.3 1.1 2.2 1.1 3.5l0 232.5c0 1.3-.3 2.5-1 3.6s-1.7 1.9-2.9 2.4-2.5 .6-3.7 .3-2.4-.9-3.2-1.9zm40.3-4.4l0-134.4c0-.8 .1-1.6 .5-2.4s.8-1.5 1.3-2.1 1.3-1.1 2-1.4 1.6-.5 2.4-.5l134.4 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8 .6 2.4 .3 3.6-.9 2.3-1.7 3.2L304.3 246.4c-.9 .8-2 1.4-3.2 1.6s-2.4 .1-3.5-.4-2.1-1.3-2.8-2.3-1.1-2.2-1.1-3.4l.1 .1zm30.6 35c-1.2 0-2.5-.3-3.5-1s-1.9-1.6-2.4-2.8-.6-2.4-.4-3.6 .8-2.3 1.7-3.2L404 182.2c.6-.6 1.3-1 2-1.4s1.6-.5 2.4-.5 1.6 .2 2.4 .5 1.4 .8 2 1.4l84.4 84.2c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6-1.3 2.1-2.3 2.8-2.2 1.1-3.5 1.1l-168.5 0 .1-.1zm90.7 131l-95.3-95.2c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.7 1.3-2.1 2.4-2.8 2.3-1 3.5-1l95.2 0c1.7 0 3.2 .7 4.4 1.8s1.8 2.8 1.8 4.4l0 95.3c0 1.2-.4 2.5-1.1 3.5s-1.7 1.8-2.8 2.3-2.4 .6-3.6 .3-2.3-.9-3.2-1.7zM16.8 302.1l216.9 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8 .6 2.4 .3 3.6-.8 2.3-1.7 3.2L129.7 421.2c-.6 .6-1.3 1-2 1.4s-1.6 .5-2.4 .5-1.6-.2-2.4-.5-1.4-.8-2-1.4L12.3 312.8c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.6 1.3-2.1 2.3-2.8 2.3-1 3.5-1l0-.1zM264.3 465.3c0 .8-.2 1.6-.5 2.4s-.8 1.5-1.4 2-1.3 1-2 1.4-1.6 .5-2.4 .5l-128 0c-1.2 0-2.5-.4-3.5-1.1s-1.8-1.7-2.3-2.8-.6-2.4-.3-3.6 .8-2.3 1.7-3.2l128-128c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3 2.1 1.3 2.8 2.3 1.1 2.2 1.1 3.5l0 128zm40-132.5l82.8 82.7c.6 .6 1 1.3 1.4 2s.5 1.6 .5 2.4-.2 1.6-.5 2.4-.8 1.4-1.4 2L304.3 507c-.9 .9-2 1.5-3.2 1.7s-2.5 .1-3.6-.3-2.1-1.3-2.8-2.3-1.1-2.2-1.1-3.5l0-165.4c0-1.2 .4-2.5 1.1-3.5s1.7-1.8 2.8-2.3 2.4-.6 3.6-.3 2.3 .8 3.2 1.7zM79 122.4c0-1.2 .3-2.5 1-3.5s1.7-1.8 2.8-2.3 2.4-.6 3.6-.4 2.3 .8 3.2 1.7L238.1 266.4c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6-1.3 2.1-2.3 2.8-2.2 1.1-3.5 1.1l-148.4 0c-1.7 0-3.2-.7-4.4-1.8s-1.8-2.8-1.8-4.4l0-148.4-.1-.1z\"]\n};\nvar faLaravel = {\n prefix: 'fab',\n iconName: 'laravel',\n icon: [512, 512, [], \"f3bd\", \"M504.6 115.8c-.1-.2-.2-.5-.3-.7-.1-.4-.3-.8-.5-1.2-.2-.2-.3-.5-.5-.7-.2-.3-.5-.6-.7-.9-.2-.2-.5-.4-.8-.6-.3-.2-.6-.5-.9-.7L404.6 55.5c-1.2-.7-2.6-1.1-4-1.1s-2.8 .4-4 1.1L300.3 111c-.3 .2-.6 .4-.9 .7-.3 .2-.5 .4-.8 .6-.3 .3-.5 .6-.7 .9-.2 .2-.4 .4-.5 .7-.2 .4-.4 .8-.5 1.2-.1 .2-.2 .4-.3 .7-.2 .7-.3 1.4-.3 2.1l0 105.2-80.2 46.2 0-205.9c0-.7-.1-1.4-.3-2.1-.1-.2-.2-.4-.3-.7-.1-.4-.3-.8-.5-1.2-.1-.3-.4-.5-.5-.7-.2-.3-.5-.6-.7-.9-.2-.2-.5-.4-.8-.6-.3-.2-.6-.5-.9-.7L115.8 1.1c-1.2-.7-2.6-1.1-4-1.1s-2.8 .4-4 1.1L11.5 56.5c-.3 .2-.6 .4-.9 .7-.3 .2-.5 .4-.8 .6-.3 .3-.5 .6-.7 .9-.2 .3-.4 .5-.6 .7-.2 .4-.4 .8-.5 1.2-.1 .2-.2 .4-.3 .7-.2 .7-.3 1.4-.3 2.1l0 329.7c0 1.4 .4 2.8 1.1 4s1.7 2.2 2.9 2.9L204 510.9c.4 .2 .9 .4 1.3 .5 .2 .1 .4 .2 .6 .3 1.3 .4 2.8 .4 4.1 0 .2-.1 .4-.2 .6-.2 .5-.2 1-.3 1.4-.6L404.6 400.1c1.2-.7 2.2-1.7 2.9-2.9s1.1-2.6 1.1-4l0-105.3 92.2-53.1c1.2-.7 2.2-1.7 2.9-3s1.1-2.6 1.1-4l0-109.8c0-.7-.1-1.4-.2-2.1zM111.8 17.3l80.2 46.1-80.2 46.2-80.2-46.2 80.2-46.2zm88.2 60l0 201.3c-33.2 19.1-59.9 34.5-80.2 46.2l0-201.3C153 104.4 179.7 89 200 77.3zm0 412.8L23.5 388.5 23.5 77.3c20.3 11.7 47.1 27.1 80.2 46.2l0 215.2c0 .3 .1 .6 .1 .9 0 .4 .1 .8 .2 1.2 .1 .3 .2 .6 .4 .9 .1 .3 .3 .7 .4 1 .2 .3 .4 .5 .6 .8 .2 .3 .4 .6 .7 .8 .2 .2 .5 .4 .8 .6 .3 .2 .6 .5 .9 .7l92.2 52.2 .1 92.4zm8-106.2L128 338.6c54.7-31.5 113.5-65.3 176.3-101.5l80.1 46.1C355 300 296.2 333.5 208 383.9zm184.5 4.6l-176.5 101.6 0-92.3C317.4 340 376.2 306.4 392.5 297l0 91.4zm0-119.1c-20.3-11.6-47.1-27-80.2-46.1l0-91.4c20.3 11.7 47.1 27.1 80.2 46.2l0 91.3zm8-105.3l-80.2-46.2 80.2-46.2 80.2 46.1-80.2 46.2zm8 105.3l0-91.3c33.2-19.1 60-34.5 80.3-46.2l0 91.4-80.3 46.2z\"]\n};\nvar faWpforms = {\n prefix: 'fab',\n iconName: 'wpforms',\n icon: [448, 512, [], \"f298\", \"M448 75.2l0 361.7c0 24.3-19 43.2-43.2 43.2l-361.6 0C19.3 480 0 461.4 0 436.8L0 75.2C0 51.1 18.8 32 43.2 32l361.7 0c24 0 43.1 18.8 43.1 43.2zM410.7 436.8l0-361.6c0-3-2.6-5.8-5.8-5.8l-9.3 0-110.3 74.6-61.3-49.9-61.2 49.9-110.3-74.7-9.3 0c-3.2 0-5.8 2.8-5.8 5.8l0 361.7c0 3 2.6 5.8 5.8 5.8l361.7 0c3.2 .1 5.8-2.7 5.8-5.8zM150.2 186l0 37-73.5 0 0-37 73.5 0zm0 74.4l0 37.3-73.5 0 0-37.3 73.5 0zm11.1-147.3l54-43.7-118.5 0 64.5 43.7zm210 72.9l0 37-196 0 0-37 196 0zm0 74.4l0 37.3-196 0 0-37.3 196 0zM286.7 113.1l64.5-43.7-118.4 0 53.9 43.7zM371.3 335l0 37.3-99.4 0 0-37.3 99.4 0z\"]\n};\nvar faSpeakerDeck = {\n prefix: 'fab',\n iconName: 'speaker-deck',\n icon: [512, 512, [], \"f83c\", \"M213.9 296L100 296c-26.5 0-52-10.5-70.7-29.3S0 222.5 0 196 10.5 144 29.3 125.3 73.5 96 100 96l132.8 0c10.6 0 20.8 4.2 28.3 11.7s11.7 17.7 11.7 28.3-4.2 20.8-11.7 28.3-17.7 11.7-28.3 11.7L98 176c-26.5 0-26.4 40 0 40l113.8 0c26.5 0 52 10.5 70.7 29.3s29.3 44.2 29.3 70.7-10.5 52-29.3 70.7-44.2 29.3-70.7 29.3L40 416c-10.6 0-20.8-4.2-28.3-11.7S0 386.6 0 376 4.2 355.2 11.7 347.7 29.4 336 40 336l173.9 0c26.5 0 26.5-40 0-40zM298 416c13.5-9.2 25-21 33.8-34.7s14.7-29.2 17.3-45.3l64.6 0c2.6 0 5.2-.6 7.6-1.6s4.6-2.5 6.4-4.4 3.3-4.1 4.2-6.5 1.5-5 1.4-7.6l0-120c0-2.6-.5-5.2-1.4-7.6s-2.4-4.6-4.2-6.5-4-3.3-6.4-4.4-5-1.6-7.6-1.6l-117.2 0c9.7-11.1 15-25.3 15-40s-5.3-28.9-15-40l136.9 0c43.4 0 78.6 35.8 78.6 80l0 160c0 44.2-35.2 80-78.6 80L298 416z\"]\n};\nvar faFlickr = {\n prefix: 'fab',\n iconName: 'flickr',\n icon: [448, 512, [], \"f16e\", \"M400 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM144.5 192a63.5 63.5 0 1 1 0 127 63.5 63.5 0 1 1 0-127zm159 0a63.5 63.5 0 1 1 0 127 63.5 63.5 0 1 1 0-127z\"]\n};\nvar faCcVisa = {\n prefix: 'fab',\n iconName: 'cc-visa',\n icon: [576, 512, [], \"f1f0\", \"M470.1 231.3s7.6 37.2 9.3 45l-33.4 0c3.3-8.9 16-43.5 16-43.5-.2 .3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM152.5 331.2l63.2-155.2-42.5 0-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1l-64.7 0-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135 42.5 0zm94.4 .2l25.2-155.4-40.2 0-25.1 155.4 40.1 0zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2 .2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2 .1 69.7-20.8 70-53zM528 331.4l-32.4-155.4-31.1 0c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5 42.2 0s6.9-19.2 8.4-23.3l51.6 0c1.2 5.5 4.8 23.3 4.8 23.3l37.2 0z\"]\n};\nvar faUpwork = {\n prefix: 'fab',\n iconName: 'upwork',\n icon: [640, 512, [], \"e641\", \"M493.9 295.6c-50.3 0-83.5-38.9-92.8-53.9 11.9-95.3 46.8-125.4 92.8-125.4 45.5 0 80.9 36.4 80.9 89.7s-35.4 89.7-80.9 89.7l0-.1zm0-237.8c-81.9 0-127.8 53.4-141 108.4-14.9-28-25.9-65.5-34.5-100.3l-113.2 0 0 141c0 51.1-23.3 89-68.8 89s-71.6-37.8-71.6-89l.5-141-65.3 0 0 141c0 41.1 13.3 78.4 37.6 105.1 25 27.5 59.2 41.8 98.8 41.8 78.8 0 133.8-60.4 133.8-146.9l0-94.8c8.2 31.2 27.8 91.1 65.3 143.6l-35 199.4 66.4 0 23.1-141.3c7.6 6.3 15.7 12 24.2 17 22.2 14 47.7 21.9 73.9 22.8 0 0 4 .2 6.1 .2 81.2 0 145.9-62.9 145.9-147.8S575.3 57.9 494.1 57.9l-.2-.1z\"]\n};\nvar faKakaoTalk = {\n prefix: 'fab',\n iconName: 'kakao-talk',\n icon: [576, 512, [], \"e7d7\", \"M288 2.5c159.1 0 288 101.7 288 227.1 0 125.4-128.9 227.1-288 227.1-17.5 0-34.6-1.2-51.2-3.6-16.6 11.7-112.6 79.1-121.7 80.4 0 0-3.7 1.4-6.9-.4s-2.6-6.7-2.6-6.7C106.6 519.8 130.6 437.2 135 421.9 53.9 381.8 0 310.6 0 229.5 0 104.1 128.9 2.5 288 2.5zM86.2 161.7c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3l25.9 0 0 98.7c0 8.8 7.5 15.9 16.6 15.9s16.6-7.1 16.6-15.9l0-98.7 25.9 0c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3l-85.1 0zm140.8 0c-10.8 .2-19.3 8.4-22.1 16.4L165.2 282.7c-5 15.7-.6 21.5 3.9 23.6 3.2 1.5 6.9 2.3 10.6 2.3 6.9 0 12.2-2.8 13.8-7.3l8.2-21.6 50.7 0 8.2 21.5c1.6 4.5 6.9 7.3 13.8 7.3 3.7 0 7.3-.8 10.6-2.3 4.6-2.1 9-7.9 3.9-23.6L249.2 178.1c-2.8-8-11.3-16.2-22.2-16.4zm180.9 0c-9.2 0-16.6 7.5-16.6 16.6l0 113.7c0 9.2 7.5 16.6 16.6 16.6s16.6-7.5 16.6-16.6l0-36.2 5.8-5.8 38.9 51.6c3.2 4.2 8 6.6 13.3 6.6 3.6 0 7.1-1.1 10-3.3 3.5-2.7 5.8-6.6 6.4-11s-.5-8.8-3.2-12.3l-40.9-54.2 37.9-37.8c2.6-2.6 3.9-6.2 3.7-10.1-.2-3.9-2-7.6-4.9-10.5-3.1-3.1-7.3-4.9-11.4-4.9-3.6 0-6.8 1.3-9.2 3.7l-46.3 46.4 0-35.7c0-9.2-7.5-16.6-16.6-16.6zm-91.3 0c-9.3 0-16.9 7.5-16.9 16.6l0 112.8c0 8.4 7.1 15.2 15.9 15.3l53.3 0c8.8 0 15.9-6.9 15.9-15.3s-7.2-15.2-15.9-15.2l-35.3 0 0-97.6c0-9.2-7.6-16.6-17-16.6zm-73 88.6l-33.2 0 16.6-47.1 16.6 47.1z\"]\n};\nvar faFlutter = {\n prefix: 'fab',\n iconName: 'flutter',\n icon: [448, 512, [], \"e694\", \"M429.5 236.3L291.7 374.1 429.5 512 272 512c-36.1-36.1-82.1-82.1-137.9-137.9l137.9-137.8 157.5 0zM272 0L16 256 94.8 334.8 429.5 0 272 0z\"]\n};\nvar faBuffer = {\n prefix: 'fab',\n iconName: 'buffer',\n icon: [448, 512, [], \"f837\", \"M428.2 380.7L231.7 478.5c-2.3 1-4.8 1.5-7.3 1.5s-5-.5-7.3-1.5L20.5 380.7c-4-2-4-5.3 0-7.3L67.6 350c2.3-1 4.8-1.5 7.3-1.5s5 .5 7.3 1.5l134.8 67c2.3 1 4.8 1.5 7.3 1.5s5-.5 7.3-1.5l134.8-67c2.3-1 4.8-1.5 7.3-1.5s5 .5 7.3 1.5l47.1 23.4c4 2 4 5.2 0 7.2zm0-136.5l-47.1-23.4c-2.3-1-4.8-1.5-7.3-1.5s-5 .5-7.3 1.5L231.7 287.8c-2.3 1-4.8 1.5-7.3 1.5s-5-.5-7.3-1.5L82.3 220.7c-2.3-1-4.8-1.5-7.3-1.5s-5 .5-7.3 1.5L20.5 244.1c-4 2-4 5.3 0 7.3l196.5 97.8c2.3 1 4.8 1.5 7.3 1.5s5-.5 7.3-1.5l196.5-97.8c4-2 4-5.3 0-7.3zM20.5 130.4L217 220.7c4.7 1.9 10 1.9 14.7 0l196.5-90.3c4-1.9 4-4.9 0-6.7L231.7 33.4c-4.7-1.9-10-1.9-14.7 0L20.5 123.7c-4 1.8-4 4.9 0 6.7z\"]\n};\nvar faGratipay = {\n prefix: 'fab',\n iconName: 'gratipay',\n icon: [512, 512, [], \"f184\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM374.3 233.7L257.7 391.3 141.3 233.7c-9-12.3-19.7-52 14-74.3 29-18.7 56.4-4.3 70.7 12.3 16.4 18.5 48.1 17.4 63.7 0 14.3-16.6 41.7-31 70.3-12.3 34 22.3 23.3 61.9 14.2 74.3z\"]\n};\nvar faGooglePay = {\n prefix: 'fab',\n iconName: 'google-pay',\n icon: [640, 512, [], \"e079\", \"M105.7 215l0 41.2 57.1 0c-1.2 6.6-3.6 12.9-7.2 18.5s-8.4 10.4-13.9 14.1c-9.5 6.6-21.7 10.3-36 10.3-27.6 0-50.9-18.9-59.3-44.2-4.4-13.3-4.4-27.7 0-41 8.4-25.5 31.7-44.4 59.3-44.4 7.5-.1 14.9 1.2 21.9 4s13.3 6.9 18.6 12.1L176.5 155c-19.1-18.1-44.4-28.1-70.7-27.8-19.7 .1-38.9 5.7-55.6 16.1s-30.1 25.3-38.8 43C3.9 201.2 0 217.7 0 234.4s3.9 33.2 11.3 48.1l0 .2c8.7 17.7 22.1 32.5 38.8 43s35.9 16 55.6 16c28.5 0 52.5-9.5 70-25.9 20-18.6 31.4-46.2 31.4-78.9 0-7.3-.6-14.6-1.8-21.8l-99.7 0zm389.4-4c-10.1-9.4-23.9-14.1-41.4-14.1-22.5 0-39.3 8.3-50.5 24.9L424.1 235c7.6-11.3 18.1-17 31.3-17 8.4 0 16.5 3.2 22.7 8.8 3 2.6 5.5 5.9 7.1 9.6s2.5 7.6 2.5 11.7l0 5.5c-9.1-5.1-20.6-7.8-34.6-7.8-16.4 0-29.6 3.9-39.5 11.8s-14.8 18.3-14.8 31.6c-.2 5.9 1 11.8 3.4 17.2s6 10.2 10.5 14.1c9.2 8.3 21 12.5 34.8 12.5 16.3 0 29.2-7.3 39-21.9l1 0 0 17.7 22.6 0 0-78.7c.1-16.6-4.9-29.7-15-39zm-19.2 89.3c-3.5 3.5-7.6 6.3-12.2 8.2s-9.5 2.9-14.4 2.9c-6.7 .1-13.1-2.1-18.3-6.2-2.4-1.8-4.4-4.2-5.7-6.9s-2-5.7-2-8.7c0-7 3.2-12.8 9.5-17.4s14.5-7 24.1-7c13.2-.2 23.5 2.8 30.8 8.8 0 10.1-4 18.9-11.7 26.4zm-93.7-142c-5.3-5.3-11.6-9.5-18.6-12.3s-14.4-4.2-21.9-4l-62.7 0 0 186.7 23.6 0 0-75.6 39 0c16 0 29.5-5.4 40.5-15.9 .9-.9 1.8-1.8 2.6-2.7 9.6-10.5 14.8-24.4 14.3-38.6s-6.6-27.7-16.9-37.6l0 0zm-16.6 62.2c-3 3.2-6.6 5.7-10.6 7.4s-8.4 2.5-12.7 2.3l-39.6 0 0-65.2 39.6 0c8.5 0 16.6 3.3 22.6 9.2 6.1 6.1 9.6 14.3 9.8 23s-3.1 17-9 23.3l0 0zM614.3 201l-36.5 91.7-.5 0-37.4-91.7-25.7 0 51.8 119.6-29.4 64.3 24.3 0 79-183.9-25.7 0z\"]\n};\nvar faApple = {\n prefix: 'fab',\n iconName: 'apple',\n icon: [384, 512, [], \"f179\", \"M319.1 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7-55.8 .9-115.1 44.5-115.1 133.2 0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zM262.5 104.5c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"]\n};\nvar faTumblr = {\n prefix: 'fab',\n iconName: 'tumblr',\n icon: [320, 512, [], \"f173\", \"M309.9 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6l0-144-47.5 0c-5.5 0-10-4.5-10-10l0-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1 .8-11 6.5-16.3 16.1-16.3l70.9 0c5.5 0 10 4.5 10 10l0 115.2 83 0c5.5 0 10 4.4 10 9.9l0 81.7c0 5.5-4.5 10-10 10l-83.4 0 0 133.2c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5 .9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"]\n};\nvar faPhoenixSquadron = {\n prefix: 'fab',\n iconName: 'phoenix-squadron',\n icon: [512, 512, [], \"f511\", \"M96 63.4c46.5-36.1 105.6-56.1 164.5-54.6 29.6-.4 59.1 5.4 86.9 15.3-24.1-4.6-49-6.3-73.4-2.5-42.9 5.3-83 27.2-111.8 59.2 5.7-1 10.8-3.7 16-5.9 18.1-7.9 37.5-13.3 57.2-14.8 19.7-2.1 39.6-.4 59.3 1.9-14.4 2.8-29.1 4.6-43 9.6-34.4 11.1-65.3 33.2-86.3 62.6-13.8 19.7-23.6 42.9-24.7 67.1-.4 16.5 5.2 34.8 19.8 44 11.2 6.8 24.6 9.2 37.5 6.7 15.4-2.5 30.1-8.6 43.6-16.3 11.5-6.8 22.7-14.6 32-24.3 3.8-3.2 2.5-8.4 2.6-12.8-2.1-.3-4.4-1.1-6.3 .3-11.4 6.3-23.4 11.4-35.8 15.4-20 6.2-42.2 8.5-62.1 .8 12.8 1.7 26.1 .3 37.7-5.4 20.2-9.7 36.8-25.2 54.4-38.8 27.7-21.3 57.5-39.9 88.9-55.3 25.7-12 52.9-22.8 81.6-24.1-15.6 13.7-32.1 26.5-46.8 41.4-14.5 14-27.5 29.5-40.1 45.2-3.5 4.6-9 6.9-13.6 10.2-22.4 15-40.3 35.8-51.9 60.1-9.3 19.7-14.5 41.9-11.8 63.6 1.9 13.7 8.7 27.6 20.9 34.9 12.9 8 29 8.1 43.5 5.1 32.8-7.4 61.4-28.9 81-55.8 20.4-27.5 30.5-62.2 29.2-96.3-.5-7.5-1.6-15-1.7-22.5 8 19.5 14.8 39.7 16.6 60.8 2 14.3 .7 28.8-1.6 42.9-1.9 11-5.7 21.5-7.8 32.4 20.4-22.9 34-50.9 39.3-81.1 5.6-35.5 .7-71.9-14.2-104.6 20.8 32 32.3 69.6 35.7 107.5 .5 12.7 .5 25.5 0 38.2-2.8 34.3-12.9 67.6-29.6 97.8-26.1 47.3-68 85.6-117.2 108-78.3 36.2-174.7 31.3-248-14.7-39-23.8-70.6-58-91.4-98.7-14.7-28.9-23.3-60.5-25.4-92.9l0-31.3C3.9 172 40.9 105.8 96 63.4zm222 80.3c5.5-.9 10.8-2.4 16-4.5 5-1.8 9.2-5.9 10.3-11.2-9 5-18 9.9-26.3 15.7z\"]\n};\nvar faCentercode = {\n prefix: 'fab',\n iconName: 'centercode',\n icon: [512, 512, [], \"f380\", \"M201.8 254.8a64.1 64.1 0 1 1 127.4 13.8 64.1 64.1 0 1 1 -127.4-13.8zm41.6 248.9C96.7 496-8.2 365.5 10.1 224.3 21.3 137.7 75.9 67.4 149.2 32.3 310.2-44.8 498.9 69.7 503.9 248.9 508 395.9 385.5 511.1 243.4 503.7zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"]\n};\nvar faDebian = {\n prefix: 'fab',\n iconName: 'debian',\n icon: [448, 512, [], \"e60b\", \"M380.4 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4-30-13.8-76.1-16.2-97.3-5.8 1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7-3.5 3.4 1.7 2 5.8 .9s7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17 .8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8-4.3 8.1-7.9 14.9-8.7 21.3-.3 5.1-1 11-1.7 17.3-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5 .2 .4 .4 .8 .5 1.1 1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9 4.4 .4 9.3 .9 18.7 24.2-2.7-.9-5.5-1.9-9.4-7.2-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8 1 .9 2.1 1.9 3.1 2.9-11.9-6.5 3.2 13.7 11.9 25.2 .8 1.1 1.5 2 2.2 2.9 1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2 2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3 10.7 3.7 16.6 4.7 22.7 5.8 .3 0 .6 .1 .9 .1 5.4 .8 11.2 1.8 20.8 4.5-1.1-.1-2.2-.1-3.3-.1-2.3-.1-4.7-.1-7-.1-14.4-.2-29.2-.4-42.7-5.2-96.6-25.7-184.9-139-178.4-255.6-.6-9.9-.3-20.9 0-30.7 .4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2 0-.1c.4 .4 3.4 3.4 8.8-5.8 .8-1.8 1.6-3.7 2.4-5.6 .5-1.1 .9-2.2 1.4-3.2 2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7-3.4 3.8 2.2 2.7 10 1 4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6 8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2-5.6 .8-12.3 3-11.2 3.8 7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1 3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2 .3 .5 .5 1 .7 1.4 .1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1 1.7-.7-2.7-4.7-6.4-8.2l-.1-.1c-.2-.1-.3-.3-.5-.4 32.2 17.3 67.3 54.1 78 93.5-6-11.1-5.2-5.5-4.3 .5 .6 4 1.2 8.1-.2 7.5 4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3-.4 4.3-2.8 3.9-5.2 3.5l-.1 0c-3.3-.6-6.2-1.1-1.9 12.6 2.6 3.8 3.1 2.4 3.5 1.1 .5-1.5 .9-2.7 4.7 5.2 .1 4.1 1 8.2 2.1 12.7l.1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4-1.1-.2-2.3-2.2-3.4-4.2-1.4-2.4-2.8-4.7-3.7-3.2 2.4 11.5 6.5 17.4 8 18.3-.3 .6-.6 .7-1.1 .7-.8 0-1.8 .1-1.9 5.3 .7 13.7 3.3 12.5 5.3 11.6 .6-.3 1.2-.6 1.7-.4-.6 2.5-1.6 5.1-2.7 7.9-2.8 7.1-6 15.4-3.4 26.1-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5-.3-.8-.6-1.6-.9-2.3-.6 4.4-.3 7.7-.1 10.6l0 .7c.4 5.3 .7 10-3 19.9 4.3-14.2 3.8-26.9-.2-20.8 1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8 1.7-2.9 1.3-3.6 1-4.2-.4-.8-.7-1.5 1.7-5.1-1.6 .1-5.5 3.9-10.1 8.5-3.9 3.9-8.5 8.4-12.8 11.8-37.5 30.1-82.3 34-125.6 17.8 .2-1-.2-2.1-3.1-4.1-36.8-28.2-58.5-52.1-50.9-107.5 2.1-1.6 3.6-5.8 5.3-10.8l.2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8 7.8-17.3 31.3-33.3 56.4-33.7 25.6-1.4 47.2 13.7 58.1 27.9-19.8-18.4-52.1-24-79.7-10.4-28.2 12.7-45 43.8-42.5 74.7 .3-.4 .6-.6 .9-.8l.2-.2c.6-.5 1.1-.9 1.4-3.3-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1c2.2-2.1 4.7-4.5 8.9-7.3-.3 .7-1.3 1.7-2.4 2.7-2.2 2.1-4.6 4.5-1.6 4.6 5-1.3 18.5-13.4 28.5-22.3 .6-.5 1.2-1 1.7-1.5 1.5-1.3 2.8-2.5 4-3.6l.3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6 .2-.6 .5-1.2 .7-1.8l-.4-.2-.1-.1zM248 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2-12.2-5.7-23.4-14.3-32.6-24.9 4.9 7.1 10.1 14.1 17 19.5-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5 19.8 35.5 80.5 62.3 112.3 49-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4 1.4-5.8 5.4-10.7 4.4 4.6-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5 .2-2-1.2-2.4-2.6-2.8-2.9-.8-5.9-1.6 5.6-16.1-.5 1.9-2.1 4.6-3.7 7.3l-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8l.1 0zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1-2.5 2.4-5.2 4.8-8.3 7.2-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9 .1 0zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l1 2zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3 7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.8 110.6c.4 .8 1.4 .5 2.3 .3 1.9-.5 3.6-.9-.1 7.6-.5 .3-1 .7-1.5 1-1.4 .9-2.8 1.9-3.9 3 1.9-3.8 3.5-7.4 3.2-11.9zM25.5 152.3c-.7 3.7-1.5 7.9-3.4 13.9 .2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8-.3 1.2-.5 2.5-.7 3.8l0 .1z\"]\n};\nvar faMastodon = {\n prefix: 'fab',\n iconName: 'mastodon',\n icon: [448, 512, [], \"f4f6\", \"M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.6-.9-9.3-.9-13.9 85.6 20.9 158.7 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zM357.9 304.3l-46.6 0 0-114.2c0-49.7-64-51.6-64 6.9l0 62.5-46.3 0 0-62.5c0-58.5-64-56.6-64-6.9l0 114.2-46.7 0c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175l0 0z\"]\n};\nvar faSketch = {\n prefix: 'fab',\n iconName: 'sketch',\n icon: [512, 512, [], \"f7c6\", \"M27.8 162.2l-18.5 24.9 90.5 0 6.9-130.7-78.9 105.8zM396.6 45.7L268 32 403.7 179.2 396.6 45.7zM112.5 218.3l-11.2-22-91.1 0 224.9 261.7-122.6-239.7zm2-31.2l284 0C340.6 124.3 293.3 72.9 256.6 33L114.5 187.1zm297.3 9.1l-133.9 261.8 224.8-261.7-90.9 0 0-.1zM415.7 69l-9.4-12.6 .9 17.3 6.1 113.4 90.3 0-87.9-118.1zM113.8 93.5L109.2 179.1 245 32 116.4 45.7 113.8 93.5zM401.5 196.2l-290 0c18.2 35.6 66.6 130.2 145.1 283.8L401.5 196.2z\"]\n};\nvar faWebAwesome = {\n prefix: 'fab',\n iconName: 'web-awesome',\n icon: [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52l.1 0z\"]\n};\nvar faSass = {\n prefix: 'fab',\n iconName: 'sass',\n icon: [640, 512, [], \"f41e\", \"M301.8 378.9l0 0zm249.1-87c-20.1 0-40 4.6-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.3 5.9c-2.3 6.2-4.1 12.6-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.9 77.3-42.1 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4 .8-.7 1.3-.9 1.7 .3-.5 .5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7l0 .1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4 .3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.3-35.4 189.8-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8 61.8-23.8 109.9-90.1 95.8-145.6-14.4-56.4-107.9-74.9-196.3-43.5-52.7 18.7-109.7 48.1-150.7 86.4-48.7 45.6-56.5 85.3-53.3 101.9 11.4 58.9 92.6 97.3 125.1 125.7-1.6 .9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3l0 .1s.2-.4 .7-1.2c1-1.5 1.5-2.4 1.5-2.4l0-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5 1.5 8.7 3.6 17.3 6.2 25.8 2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2 0 .1 0 .1 .1 .2-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 7.2-2.6 14-6.1 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6 1.5 8.7 3.6 17.3 6.2 25.8 2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 7.7-2.6 15-6.3 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1l0 0zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3-11.9-6.9-7.2-36.5 15.5-57.9 13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9 .8-.5 1.2-.7 1.2-.7 .9-.6 1.9-1.1 2.9-1.7 8.3 30.4 .3 57.2-19.1 78.3l0 0zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5 .1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8l0 0zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.5 1.8 7.1 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4l0 0z\"]\n};\nvar faThreema = {\n prefix: 'fab',\n iconName: 'threema',\n icon: [384, 512, [], \"e85f\", \"M87.4 445.1c18.5 0 33.5 15 33.5 33.4S105.9 512 87.4 512 54 497 54 478.5 69 445.1 87.4 445.1zm109.2 0c18.5 0 33.5 15 33.5 33.4s-15 33.5-33.5 33.5-33.4-15-33.4-33.5 15-33.4 33.4-33.4zm109.3 0c18.5 0 33.5 15 33.5 33.4s-15 33.5-33.5 33.5-33.5-15-33.5-33.5 15-33.4 33.5-33.4zM192.3 .3c109.8 0 199.2 89.3 199.2 199.1S302.2 398.5 192.4 398.5c-40.5 0-78.1-12.1-109.6-32.9l-76.5 24.5 24.8-74C7.3 283.4-6.8 243-6.8 199.4-6.8 89.7 82.5 .3 192.3 .3zm.1 93.7c-31.6 0-57.3 25.8-57.3 57.3l0 26.7-1.8 0c-10 0-18 8-18 18l0 72.3c0 10 8 18 18 18l118.1 0c10 0 18-8 18-18l.1 0 0-72.3c0-10-8.1-18-18-18l-1.8 0 0-26.7c0-31.6-25.8-57.3-57.3-57.3zm-.1 23.5c18.6 0 33.8 15.1 33.8 33.8l0 26.7-67.6 0 0-26.7c0-18.6 15.1-33.8 33.8-33.8z\"]\n};\nvar faSquareWhatsapp = {\n prefix: 'fab',\n iconName: 'square-whatsapp',\n icon: [448, 512, [\"whatsapp-square\"], \"f40c\", \"M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4l.1 0c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9-36.8-15.9-61.8-51.5-66.9-58.7-.4-.6-.7-.9-.8-1.1-2-2.6-16.2-21.5-16.2-41 0-18.4 9-27.9 13.2-32.3 .3-.3 .5-.5 .7-.8 3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6 .1l.8 0c2.3 0 5.2 0 8.1 6.8 1.2 2.9 3 7.3 4.9 11.8 3.3 8 6.7 16.3 7.3 17.6 1 2 1.7 4.3 .3 6.9-3.4 6.8-6.9 10.4-9.3 13-3.1 3.2-4.5 4.7-2.3 8.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1 2.8 1.4 4.7 2.3 5.5 3.6 .9 1.9 .9 9.9-2.4 19.1-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM148.1 393.9L64 416 86.5 333.8c-13.9-24-21.2-51.3-21.2-79.3 .1-87.4 71.2-158.5 158.6-158.5 42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5-26.6 0-52.7-6.7-75.8-19.3z\"]\n};\nvar faWhatsappSquare = faSquareWhatsapp;\nvar faSkype = {\n prefix: 'fab',\n iconName: 'skype',\n icon: [448, 512, [], \"f17e\", \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7-19-14.7-42.6-23.4-68.3-23.4-61.8 0-112 50.2-112 112 0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zM230.1 391.3c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"]\n};\nvar faAngular = {\n prefix: 'fab',\n iconName: 'angular',\n icon: [448, 512, [], \"f420\", \"M185.7 268.1l76.2 0-38.1-91.6-38.1 91.6zM223.8 32L16 106.4 47.8 382.1 223.8 480 399.8 382.1 431.6 106.4 223.8 32zM354 373.8l-48.6 0-26.2-65.4-110.6 0-26.2 65.4-48.7 0 130.1-292.3 130.2 292.3z\"]\n};\nvar faCircleZulip = {\n prefix: 'fab',\n iconName: 'circle-zulip',\n icon: [512, 512, [], \"e851\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM243.5 240c1.2-1.9-.9-4.2-2.6-2.8l-89 79.5c-9.2 7.2-15.2 19.1-15.2 32.5 0 21.9 16 39.8 35.7 39.8l167.3 0c19.6 0 35.7-17.9 35.7-39.8 0-21.9-16.1-39.7-35.7-39.8l-126.6 0c-1.9 0-3-2.3-2.1-4.1L243.5 240zM172.4 123.1c-19.6 0-35.7 17.9-35.7 39.8s16 39.8 35.7 39.8l126.6 0c1.9 0 3.1 2.2 2.2 4.1L268.5 272c-1.2 1.9 .9 4.2 2.6 2.8l89-79.5c9.2-7.2 15.2-19.1 15.2-32.5 0-21.9-16-39.7-35.7-39.8l-167.3 0z\"]\n};\nvar faOpensuse = {\n prefix: 'fab',\n iconName: 'opensuse',\n icon: [640, 512, [], \"e62b\", \"M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7-5.5 13.3-12.6 43.3-5.5 71.4 3.3 12.8 8.9 24.9 16.5 35.7 17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2 .3 27.8 24.3 42.6 41.5 42.6 5.4 0 10.7-.9 15.8-2.7 6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9 .5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14l0-.1c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3l45.9 0c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3l48.6 0c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5 .4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3 .5-76.2-25.4-81.6-28.2-.3-.4 .1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7 .8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3 .1-.1-.9-.3-.9 .7zm60.4 72.8a37.6 37.6 0 1 1 75.2 2.6 37.6 37.6 0 1 1 -75.2-2.6zm38.6-25.3c-3.6-.3-7.1 .1-10.5 1.2s-6.5 2.9-9.2 5.3-4.8 5.3-6.3 8.5-2.4 6.7-2.5 10.3 .5 7.1 1.8 10.4 3.3 6.3 5.8 8.9 5.5 4.5 8.8 5.9 6.9 2 10.4 1.9c3.6 .3 7.1-.1 10.5-1.2s6.5-2.9 9.2-5.3 4.8-5.3 6.3-8.5 2.4-6.7 2.5-10.3-.5-7.1-1.8-10.4-3.3-6.3-5.8-8.9-5.5-4.5-8.8-5.9-6.9-2-10.4-1.9zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6z\"]\n};\nvar faDropbox = {\n prefix: 'fab',\n iconName: 'dropbox',\n icon: [576, 512, [], \"f16b\", \"M288.4 116.3l-132 84.3 132 84.3-132 84.3-132.4-85.1 132.3-84.3-132.3-83.5 132.3-84.3 132.1 84.3zM155.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zM288.4 284.1l132-84.3-132-83.6 131.3-84.2 132.3 84.3-132.3 84.3 132.3 84.2-132.3 84.3-131.3-85z\"]\n};\nvar faDeezer = {\n prefix: 'fab',\n iconName: 'deezer',\n icon: [512, 512, [], \"e077\", \"M14.8 101.1C6.6 101.1 0 127.6 0 160.3s6.6 59.2 14.8 59.2 14.8-26.5 14.8-59.2-6.6-59.2-14.8-59.2zM448.7 40.9c-7.7 0-14.5 17.1-19.4 44.1-7.7-46.7-20.2-77-34.2-77-16.8 0-31.1 42.9-38 105.4-6.6-45.4-16.8-74.2-28.3-74.2-16.1 0-29.6 56.9-34.7 136.2-9.4-40.8-23.2-66.3-38.3-66.3s-28.8 25.5-38.3 66.3c-5.1-79.3-18.6-136.2-34.7-136.2-11.5 0-21.7 28.8-28.3 74.2-6.6-62.5-21.2-105.4-37.8-105.4-14 0-26.5 30.4-34.2 77-4.8-27-11.7-44.1-19.4-44.1-14.3 0-26 59.2-26 132.1S49 305.2 63.3 305.2c5.9 0 11.5-9.9 15.8-26.8 6.9 61.7 21.2 104.1 38 104.1 13 0 24.5-25.5 32.1-65.6 5.4 76.3 18.6 130.4 34.2 130.4 9.7 0 18.6-21.4 25.3-56.4 7.9 72.2 26.3 122.7 47.7 122.7s39.5-50.5 47.7-122.7c6.6 35 15.6 56.4 25.3 56.4 15.6 0 28.8-54.1 34.2-130.4 7.7 40.1 19.4 65.6 32.1 65.6 16.6 0 30.9-42.3 38-104.1 4.3 16.8 9.7 26.8 15.8 26.8 14.3 0 26-59.2 26-132.1S463 40.9 448.7 40.9zm48.5 60.2c-8.2 0-14.8 26.5-14.8 59.2s6.6 59.2 14.8 59.2 14.8-26.5 14.8-59.2-6.6-59.2-14.8-59.2z\"]\n};\nvar faCreativeCommonsSampling = {\n prefix: 'fab',\n iconName: 'creative-commons-sampling',\n icon: [512, 512, [], \"f4f0\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6s10.6 4.7 10.6 10.6c0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6l58 0 0 21.3-50.9 0-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9 .6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9 .5 6.7-5.8-87.7L255 383.9c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12L228 296.6c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6-4.9 56.7c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L157.7 272c-2 4-3.5 8.4-11.1 8.4l-51.4 0 0-21.3 44.8 0 13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6 .5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6 .6 0 10.6 .7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"]\n};\nvar faJediOrder = {\n prefix: 'fab',\n iconName: 'jedi-order',\n icon: [448, 512, [], \"f50e\", \"M398.9 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9 0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7S59.1 388.6 144.9 230.2c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7l4.1 0c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"]\n};\nvar faRProject = {\n prefix: 'fab',\n iconName: 'r-project',\n icon: [576, 512, [], \"f4f7\", \"M578.5 226.6C578.5 119.1 448.4 32 288 32S-2.5 119.1-2.5 226.6c0 95.8 103.3 175.4 239.4 191.5l0 61.9 99.1 0 0-61.5c24.3-2.7 47.6-7.4 69.4-13.9l40.1 75.4 112 0-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zM111.7 241.1c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9l-199 0 0 208.3c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3l0-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5l26.6 0c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9l0-22.1z\"]\n};\nvar faInstalod = {\n prefix: 'fab',\n iconName: 'instalod',\n icon: [512, 512, [], \"e081\", \"M153.6 480l233.7 0 115.4-204.2-298.3 57.4-50.8 146.8zM505 240.1L387.4 32 155.9 32 360.5 267.9 505 240.1zM124.6 48.8L7.5 256 123.5 461.2 225.9 165.6 124.6 48.8z\"]\n};\nvar faCanadianMapleLeaf = {\n prefix: 'fab',\n iconName: 'canadian-maple-leaf',\n icon: [512, 512, [], \"f785\", \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5-5.1-7.5-42.7-79.8-42.7-79.8s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3s-12.5 27.3-15 32.3-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167S43 226.7 45.5 234.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512l30 0s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"]\n};\nvar faEthereum = {\n prefix: 'fab',\n iconName: 'ethereum',\n icon: [320, 512, [], \"f42e\", \"M311.9 260.8L160 353.6 8 260.8 160 0 311.9 260.8zM160 383.4L8 290.6 160 512 312 290.6 160 383.4z\"]\n};\nvar faHouzz = {\n prefix: 'fab',\n iconName: 'houzz',\n icon: [448, 512, [], \"f27c\", \"M276 330.7l-104.6 0 0 149.3-154.3 0 0-448 109.5 0 0 104.5 305.1 85.6 0 257.9-155.7 0 0-149.3z\"]\n};\nvar faViber = {\n prefix: 'fab',\n iconName: 'viber',\n icon: [512, 512, [], \"f409\", \"M444.3 49.9c-12.7-11.7-64.1-49-178.7-49.5 0 0-135.1-8.1-200.9 52.3-36.6 36.6-49.5 90.3-50.9 156.8s-3.1 191.1 117 224.9l.1 0-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM458.2 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9 .4-85.7 .4-85.7l0 0C43.4 372.7 49.4 266.6 50.5 211.1s11.6-101 42.6-131.6c55.7-50.5 170.4-43 170.4-43 96.9 .4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9 .6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4 .7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5 .9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9 .1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7 .5 133 51.4 133.7 139.2zM375.2 329l0 .2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8l.2 0c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1 .8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"]\n};\nvar faKickstarter = {\n prefix: 'fab',\n iconName: 'kickstarter',\n icon: [448, 512, [\"square-kickstarter\"], \"f3bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320.8 233l-23.3 23.1 23.3 22.9c24.1 23.9 24.1 63 0 86.9s-63.4 23.9-87.6 0l-8.5-8.4c-11.3 16-29.7 26.5-50.9 26.5-34.1 0-61.9-27.5-61.9-61.4l0-133.2c0-33.8 27.7-61.4 61.9-61.4 21.1 0 39.6 10.5 50.9 26.5l8.5-8.4c24.1-23.9 63.4-23.9 87.6 0s24.1 63 0 86.9z\"]\n};\nvar faSquareKickstarter = faKickstarter;\nvar faSpotify = {\n prefix: 'fab',\n iconName: 'spotify',\n icon: [512, 512, [], \"f1bc\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM356.7 372.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"]\n};\nvar faLeanpub = {\n prefix: 'fab',\n iconName: 'leanpub',\n icon: [576, 512, [], \"f212\", \"M386.6 111.5l15.1 249-11-.3c-36.2-.8-71.6 8.8-102.7 28-31-19.2-66.4-28-102.7-28-45.6 0-82.1 10.7-123.5 27.7L93.2 129.6c28.5-11.8 61.5-18.1 92.2-18.1 41.2 0 73.8 13.2 102.7 42.5 27.7-28.3 59-41.7 98.5-42.5zM569.2 448c-25.5 0-47.5-5.2-70.5-15.6-34.3-15.6-70-25-107.9-25-39 0-74.9 12.9-102.7 40.6-27.7-27.7-63.7-40.6-102.7-40.6-37.9 0-73.6 9.3-107.9 25-22.2 9.9-44.7 15.6-69.2 15.6L7 448 49.6 98.9c39.3-22.2 87-34.9 132.3-34.9 37.1 0 75.2 7.7 106.2 29.1 31-21.4 69.2-29.1 106.2-29.1 45.3 0 93 12.6 132.3 34.9L569.2 448zm-43.4-44.7L491.8 123c-30.7-14-67.2-21.4-101-21.4-38.4 0-74.4 12.1-102.7 38.7-28.3-26.6-64.2-38.7-102.7-38.7-33.8 0-70.3 7.4-101 21.4l-34 280.2c47.2-19.5 82.9-33.5 135-33.5 37.6 0 70.8 9.6 102.7 29.6 31.8-20 65.1-29.6 102.7-29.6 52.2 0 87.8 14 135 33.5z\"]\n};\nvar faJava = {\n prefix: 'fab',\n iconName: 'java',\n icon: [384, 512, [], \"f4e4\", \"M277.8 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8 103.7-81.8 50.5-135 50.5-135 21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zM307 104.6c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9C216 188.1 195.4 169.3 307 104.6zm-6.1 270.5c-.5 1-1.2 1.8-2 2.6 128.3-33.7 81.1-118.9 19.8-97.3-3.3 1.2-6.2 3.4-8.2 6.3 3.6-1.3 7.3-2.3 11-3 31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6 .7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8zM124.5 396c-78.7 22 47.9 67.4 148.1 24.5-9.8-3.8-19.2-8.4-28.2-13.8-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.7 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9-7.8-2.8-15-7.1-21.1-12.8z\"]\n};\nvar faNfcSymbol = {\n prefix: 'fab',\n iconName: 'nfc-symbol',\n icon: [512, 512, [], \"e531\", \"M360.9 32.4c7.7-1.3 15.7 .5 21.2 5 84.1 58.7 129.9 136.3 129.9 217.7 0 83.1-45.8 160.8-129.9 219.5-4.8 4-11.7 5.9-18.6 5.3-7-.6-13.5-3.6-18.4-8.5L161.7 288.7c-5.6-5.5-8.7-13-9.6-20.9 0-7.8 4-15.3 9.5-20.9 5.6-5.5 13.1-8.7 20.9-8.7 7.9 0 15.4 3.1 20.9 8.6L368.5 411.2c54.6-44.7 84.3-99.2 84.3-156.1 0-61.6-36.9-122.2-103.9-169.3-6.4-4.5-10.8-11.4-12.1-19.1-1.4-7.7 .4-15.7 5-22.1 4.5-6.4 11.4-10.8 19.1-12.1zm-206 447.2c-7.7 1.3-15.6-.5-22.1-5-83.1-58.7-129-136.4-129-219.5 0-81.4 45.8-159 129-217.7 5.7-4 12.6-5.9 19.6-5.3 6.9 .6 13.4 3.6 18.3 8.5L354.1 223.3c5.6 5.5 8.7 13 8.7 20.9 .1 6.9-3 15.3-8.6 20.9-5.5 5.5-13 8.7-20.9 8.7-7.8 0-16.2-3.1-20.9-8.6L147.3 100.7c-54.6 45.2-84.3 99.2-84.3 154.4 0 63.4 36.9 124 103.1 171.1 7.3 4.6 11.6 11.4 13 19.2 1.3 7.7-.5 15.7-5 22.1s-11.4 10.7-19.2 12.1z\"]\n};\nvar faWodu = {\n prefix: 'fab',\n iconName: 'wodu',\n icon: [640, 512, [], \"e088\", \"M178.4 339.7l-37.3 0-28.9-116.2-.5 0-28.5 116.2-38 0-45.2-170.8 37.5 0 27 116.2 .5 0 29.7-116.2 35.2 0 29.2 117.7 .5 0 28-117.7 36.8 0-45.9 170.8zm93-127c39 0 64.1 25.8 64.1 65.3 0 39.2-25.1 65-64.1 65-38.7 0-63.9-25.8-63.9-65 0-39.5 25.1-65.3 63.9-65.3zm0 104.8c23.2 0 30.1-19.9 30.1-39.5 0-19.9-6.9-39.7-30.1-39.7-27.7 0-29.9 19.9-29.9 39.7 0 19.6 6.9 39.5 29.9 39.5zm163.7 6.5l-.5 0c-7.9 13.4-21.8 19.1-37.5 19.1-37.3 0-55.5-32-55.5-66.2 0-33.2 18.4-64.1 54.8-64.1 14.6 0 28.9 6.2 36.8 18.4l.2 0 0-62.2 34 0 0 170.8-32.3 0 0-15.8zm-29.7-85.6c-22.2 0-29.9 19.1-29.9 39.5 0 19.4 8.8 39.7 29.9 39.7 22.5 0 29.2-19.6 29.2-39.9 0-20.1-7.2-39.2-29.2-39.2zM593 339.7l-32.3 0 0-17.2-.7 0c-8.6 13.9-23.4 20.6-37.8 20.6-36.1 0-45.2-20.3-45.2-50.9l0-76.1 34 0 0 69.8c0 20.3 6 30.4 21.8 30.4 18.4 0 26.3-10.3 26.3-35.4l0-64.8 34 0 0 123.6zm9.5-36.8l37.5 0 0 36.8-37.5 0 0-36.8z\"]\n};\nvar faSquareSteam = {\n prefix: 'fab',\n iconName: 'square-steam',\n icon: [448, 512, [\"steam-square\"], \"f1b7\", \"M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2 25.2 10.5 54.1-1.4 64.6-26.5 5.1-12.1 5.1-25.5 .1-37.7-5.1-12.1-14.5-21.6-26.7-26.7-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 144.7 116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2 0-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm102.4-.1a43.9 43.9 0 1 1 -87.8 0 43.9 43.9 0 1 1 87.8 0z\"]\n};\nvar faSteamSquare = faSquareSteam;\nvar faCreativeCommonsNcEu = {\n prefix: 'fab',\n iconName: 'creative-commons-nc-eu',\n icon: [512, 512, [], \"f4e9\", \"M255.7 8C111.6 8 8 124.8 8 256 8 392.3 119.7 504 255.7 504 385.9 504 504 403.1 504 256 504 117 396.4 8 255.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1-4.7 0 0 29.5 23.3 0c0 6.2-.4 3.2-.4 19.5l-22.8 0 0 29.5 27 0c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2l90.3 0 128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zM239.6 268.1l-.5-.4 .9 .4-.4 0zm77.2-19.5l3.7 0 0-29.5-70.3 0-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1L85.5 146.4c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9L316.8 248.6z\"]\n};\nvar faNpm = {\n prefix: 'fab',\n iconName: 'npm',\n icon: [576, 512, [], \"f3d4\", \"M288 288l-32 0 0-64 32 0 0 64zM576 160l0 192-288 0 0 32-128 0 0-32-160 0 0-192 576 0zM160 192l-128 0 0 128 64 0 0-96 32 0 0 96 32 0 0-128zm160 0l-128 0 0 160 64 0 0-32 64 0 0-128zm224 0l-192 0 0 128 64 0 0-96 32 0 0 96 32 0 0-96 32 0 0 96 32 0 0-128z\"]\n};\nvar faCloudscale = {\n prefix: 'fab',\n iconName: 'cloudscale',\n icon: [448, 512, [], \"f383\", \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6-71.6 0-129.4 60.8-129.4 132.3 0 6.6 .4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zM213.7 246.5a14 14 0 1 1 20.6 19 14 14 0 1 1 -20.6-19zM224 32a224 224 0 1 0 0 448 224 224 0 1 0 0-448zm0 64a160 160 0 1 1 0 320 160 160 0 1 1 0-320z\"]\n};\nvar faThemeco = {\n prefix: 'fab',\n iconName: 'themeco',\n icon: [448, 512, [], \"f5c6\", \"M202.9 8.4c9.9-5.7 26-5.8 36-.2L430 115.9c10 5.6 18 19.4 18 30.9L448 364c0 11.4-8.1 25.3-18 31L238.8 503.7c-9.9 5.7-26 5.6-35.8-.2L17.9 395.1C8 389.3 0 375.4 0 364L0 146.7c0-11.4 8-25.4 17.9-31.1L202.9 8.4zM125.5 208.3c-15.9 0-31.9 .1-47.8 .1l0 101.4 19.1 0 0-29.8 28.7 0c49.7 0 49.6-71.7 0-71.7zM265.6 308.6l-30.7-34.6c37-7.5 34.8-65.2-10.9-65.5-16.1 0-32.2-.1-48.3-.1l0 101.6 19.1 0 0-33.9 18.4 0 29.6 33.9 22.8 0 0-1.3zm-41.6-82.3c23.3 0 23.3 32.5 0 32.5l-29.1 0 0-32.5 29.1 0zm-95.6-1.6c21.2 0 21.1 38.9 0 38.9l-32.3 0 0-38.8 32.3 0zm192.6-18.2c-68.5 0-71 105.8 0 105.8 69.5 0 69.4-105.8 0-105.8zm0 17.4c44.1 0 44.8 70.9 0 70.9s-44.4-70.9 0-70.9z\"]\n};\nvar faGooglePlay = {\n prefix: 'fab',\n iconName: 'google-play',\n icon: [448, 512, [], \"f3ab\", \"M293.6 234.3L72.9 13 353.7 174.2 293.6 234.3zM15.3 0C2.3 6.8-6.4 19.2-6.4 35.3l0 441.3c0 16.1 8.7 28.5 21.7 35.3L271.9 255.9 15.3 0zM440.5 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM72.9 499L353.7 337.8 293.6 277.7 72.9 499z\"]\n};\nvar faKorvue = {\n prefix: 'fab',\n iconName: 'korvue',\n icon: [448, 512, [], \"f42f\", \"M387.6 34l-327 0C27.9 34 1.1 60.8 1.1 93.5l0 327.1c0 32.6 26.8 59.4 59.5 59.4l327.1 0c33 0 59.5-26.8 59.5-59.5l0-327C447.1 60.8 420.3 34 387.6 34zM88.2 120.8l96 0 0 116 61.8-116 110.9 0-81.2 132-187.5 0 0-132zM250 392.9l-65.7-113.6 0 113.6-96 0 0-130.8 191.5 0 88.6 130.8-118.4 0z\"]\n};\nvar faW3c = {\n prefix: 'fab',\n iconName: 'w3c',\n icon: [640, 512, [], \"e7de\", \"M105.2 305.3l30.9-104.7c7.9-26.7 8.6-40.6 .2-68.8l-10.1-33.9 44.1 0 61 207.4 45.7-155.5c13.3-45.3 21.1-51.9 59.4-51.9l132.8 0c-24.2 42.9-49.3 85.2-73.9 127.9 2.6 .8 5.2 1.8 7.7 2.8 17.3 7.1 32.2 19.4 42 35.5 11.2 18.5 16.8 40.2 16.8 65.2 0 30.8-8.2 56.8-24.6 77.8-14.5 18.6-35 29.5-58.2 31.2 0 .3-5.2 .4-5.8 .4-39.7-.1-70.8-32.1-83.1-68.7l42.9 0c3.5 5.3 6.8 10.7 11.2 15.5 8.1 7.3 18.5 10.9 29.3 11.1 13.1 0 23.3-9.1 29.9-19.8 8.1-13.2 12.2-29 12.2-47.5 0-13.1-1.8-24.3-5.3-33.6-.9-2.3-1.9-4.5-3-6.6-1.4-2.6-2.9-5.1-4.7-7.4-10.1-13.2-29.3-19.7-47.5-19.8l-28.2 0 70.3-122-35.6 0c-43.1 0-35.9-5.4-50.4 43.3l-75.7 255.3-4.2 0-63.1-211.1-63.1 211.1-4.2 0-101-340.7 44.2 0 61 207.4zM467 335.7c.3 .6 11.3 20.3 18.3 30.3 7.1 10.1 19.8 20.9 24.8 24.6s19.1 12.5 34.3 13.9c15.2 1.5 23.3 .2 38.7-6.6 15.4-6.8 27.9-20.4 34.9-28.1 6.9-7.6 17.9-27.3 18.2-27.7l3.3 16.8c1.7 9-1 23.7-4.1 30-4.3 8.6-7.6 13.5-14 20.3-6.1 6.5-16.7 13.5-21.3 16.4-4.6 2.9-23.1 15.1-50.1 10.3s-44.7-25.9-53.9-38.2c-9.8-13.2-16.7-28.3-19-33.2-3.8-8.4-9.9-28.2-10.1-28.8zm169.7-218c3.3 20.3-.1 28.7-9.1 46l-12.7 24.2c-.3-.6-10-20.7-25.9-31.9-13.6-9.6-22.5-11.7-36.3-8.8-17.8 3.7-38 25-46.8 51.2-10.5 31.4-10.7 46.6-11 60.6-.6 22.4 2.9 35.6 2.9 35.6s-15.4-28.5-15.2-70.1c.1-29.7 4.8-56.7 18.5-83.3 12.1-23.4 30.1-37.4 46.1-39.1 16.5-1.7 29.6 6.3 39.7 14.9 10.6 9 21.3 28.8 21.3 28.8l24.9-49.8 3.6 21.8z\"]\n};\nvar faGrav = {\n prefix: 'fab',\n iconName: 'grav',\n icon: [512, 512, [], \"f2d6\", \"M302.6 210.6c4.5 4.5 4.5 12.3 0 16.8l-10 10c-4.5 4.9-12.3 4.9-17.1 0l-10.8-10.8c-4.5-4.9-4.5-12.3 0-17.1l10-10c4.5-4.5 12.3-4.5 17.1 0l10.8 11.1zm-31.2-20.3a7.7 7.7 0 1 0 -10.6-11 7.7 7.7 0 1 0 10.6 11zm-26.8 5.5a7.5 7.5 0 1 0 10.7 10.5 7.5 7.5 0 1 0 -10.7-10.5zM319.4 182c-20.5-14.9-34.9-44.6-12.3-70.3 22.3-25.7 42-17.8 61.7 .8 12.3 11.7 30.2 25.7 17.8 49.8-12.9 24.3-46.6 34.3-67.2 19.7zm49.2-45.9c-9.2-10.3-24.1 7.1-16 16.6 7.6 9.3 33.1 2.5 16-16.6zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm443.7 44c2.6-16.6-20.9-17.1-26-26.5-14-24.9-28.6-38-56.3-31.4 12-8.3 24.3-6.3 24.3-6.3 .3-6.6 0-13.4-9.7-25.7 4-12.9 .3-23.1 .3-23.1 16-8.9 27.7-25.2 30-44.6 3.7-32-19.4-61.1-51.4-64.8-22.8-2.6-45.1 7.9-56.1 26.5-23.9 41.4 1.4 73.2 23.1 84-14.9-1.4-35.4-12.3-41.4-35.4-6.8-26.5 2.9-51.4 9.2-63.4 0 0-4.5-6-8.3-9.2 0 0-14.2 0-25.4 5.5 12.3-15.7 26-14.9 26-14.9 0-6.6-.6-15.4-3.7-22.3-5.6-11.4-24.6-13.3-32.7 2.9 .1-.2 .3-.4 .4-.5-5.2 12.3-1.1 57.7 17.4 90-2.6 1.4-9.4 6.3-13.4 10.3-22.3 10-58 62.2-58 62.2-29.1 11.1-79.7 52.5-72.9 82.3 .3 3.1 1.4 5.7 3.1 7.7-2.9 2.3-5.7 5.2-8.6 8.6-12.3 14.2-5.5 36.3 18.3 25.2 16.3-7.4 30.6-20.9 37.5-31.4 0 0-5.7-5.2-16.8-4.5 28.6-6.8 35.4-9.7 47.7-9.4 8.3 4 8.3-35.4 8.3-35.4 0-15.2-2.3-32-11.5-42.8 12.9 12.6 30 33.8 28.9 62.6-.8 18.9-15.7 23.7-15.7 23.7-9.4 17.1-44.6 68-31.4 109.4 0 0-10-15.4-10.5-22.8-18 20-48 54-25.4 66.6 27.5 15.2 112.3-91.5 130.3-146.9 35.7-21.5 57.2-48.8 66-67.1 22.7 44.9 98.4 97.5 104.4 60.9z\"]\n};\nvar faAws = {\n prefix: 'fab',\n iconName: 'aws',\n icon: [640, 512, [], \"f375\", \"M180.4 203c-.7 22.6 10.6 32.7 10.9 39-.1 1.3-.6 2.5-1.3 3.6s-1.7 2-2.8 2.6l-12.8 9c-1.7 1.2-3.6 1.8-5.6 1.9-.4 0-8.2 1.8-20.5-25.6-7.5 9.4-17 16.9-27.9 22s-22.7 7.7-34.7 7.5c-16.3 .9-60.4-9.2-58.1-56.2-1.6-38.3 34.1-62.1 70.9-60 7.1 0 21.6 .4 47 6.3l0-15.6c2.7-26.5-14.7-47-44.8-43.9-2.4 0-19.4-.5-45.8 10.1-7.4 3.4-8.3 2.8-10.8 2.8-7.4 0-4.4-21.5-2.9-24.2 5.2-6.4 35.9-18.4 65.9-18.2 20.1-1.8 40.1 4.4 55.7 17.3 6.3 7.1 11.2 15.4 14.2 24.4s4.2 18.5 3.5 28l0 69.3zM94 235.4c32.4-.5 46.2-20 49.3-30.5 2.5-10.1 2.1-16.4 2.1-27.4-9.7-2.3-23.6-4.9-39.6-4.9-15.2-1.1-42.8 5.6-41.7 32.3-1.2 16.8 11.1 31.4 30 30.5zm170.9 23.1c-7.9 .7-11.5-4.9-12.7-10.4L202.4 83.4c-1-2.8-1.6-5.6-1.9-8.6-.2-1.2 .1-2.4 .8-3.4s1.8-1.6 3-1.8c.2 0-2.1 0 22.2 0 8.8-.9 11.6 6 12.6 10.4L274.9 220.8 308.1 80c.5-3.2 2.9-11.1 12.8-10.2l17.2 0c2.2-.2 11.1-.5 12.7 10.4L384.1 222.7 421 80.1c.5-2.2 2.7-11.4 12.7-10.4l19.7 0c.9-.1 6.2-.8 5.3 8.6-.4 1.8 3.4-10.7-52.8 169.9-1.1 5.5-4.8 11.1-12.7 10.4l-18.7 0c-10.9 1.2-12.5-9.7-12.7-10.7l-33.2-137.1-32.8 137c-.2 1.1-1.7 11.9-12.7 10.7l-18.3 0 0 0zm273.5 5.6c-5.9 0-33.9-.3-57.4-12.3-2.3-1-4.3-2.6-5.7-4.8s-2.1-4.6-2.1-7.1l0-10.7c0-8.5 6.2-6.9 8.8-5.9 10 4.1 16.5 7.1 28.8 9.6 36.7 7.5 52.8-2.3 56.7-4.5 13.2-7.8 14.2-25.7 5.3-34.9-10.5-8.8-15.5-9.1-53.1-21-4.6-1.3-43.7-13.6-43.8-52.4-.6-28.2 25-56.2 69.5-56 12.7 0 46.4 4.1 55.6 15.6 1.4 2.1 2 4.6 1.9 7l0 10.1c0 4.4-1.6 6.7-4.9 6.7-7.7-.9-21.4-11.2-49.2-10.8-6.9-.4-39.9 .9-38.4 25-.4 19 26.6 26.1 29.7 26.9 36.5 11 48.6 12.8 63.1 29.6 17.1 22.2 7.9 48.3 4.3 55.4-19.1 37.5-68.4 34.4-69.3 34.4zm40.2 104.9c-70 51.7-171.7 79.2-258.5 79.2-117.1 .8-230.3-42.3-317.3-120.7-6.5-5.9-.8-14 7.2-9.5 96.5 55.2 205.7 84.2 316.9 84.1 83-.4 165.1-17.3 241.6-49.5 11.8-5 21.8 7.8 10.1 16.4zm29.2-33.3c-9-11.5-59.3-5.4-81.8-2.7-6.8 .8-7.9-5.1-1.8-9.5 40.1-28.2 105.9-20.1 113.4-10.6 7.5 9.5-2.1 75.4-39.6 106.9-5.8 4.9-11.3 2.3-8.7-4.1 8.4-21.3 27.4-68.5 18.4-80z\"]\n};\nvar faGlideG = {\n prefix: 'fab',\n iconName: 'glide-g',\n icon: [448, 512, [], \"f2a6\", \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4 0-71.5-38.2-100.6-108.4-100.6-115.1 0-173.4 113.7-173.4 198.4 0 87.9 51.3 136.6 138.6 136.6 12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9 .1-52.4 51.2-52.4 79.3 0 51.9 32.8 87.9 85.5 87.9 77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zM231.8 126.8c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"]\n};\nvar faJsfiddle = {\n prefix: 'fab',\n iconName: 'jsfiddle',\n icon: [576, 512, [], \"f1cc\", \"M511.1 237.5c-4.7-2.6-5.7-5.7-6.4-10.8-2.4-16.5-3.5-33.6-9.1-49.1-35.9-100-154-143.4-246.8-91.6-27.4 15.2-49 36.4-65.5 63.9-3.2-1.5-5.5-2.7-7.8-3.7-30.1-12.4-59-10.1-85.3 9.2-25.5 18.7-36.4 44.5-32.7 76.4 .4 3-2 7.6-4.5 9.5-39.7 30-56 78.1-41.9 124.6 13.8 45.6 57.5 79.8 105.6 81.4 30.3 1 60.6 .5 91 .5 84 0 168.1 .5 252.1-.5 52.7-.6 96.1-36.9 108.2-87.3 11.5-48.1-11.1-97.3-56.8-122.6zm21.1 156.9c-18.2 22.4-42.3 35.3-71.3 35.7-56.9 .8-113.8 .2-170.7 .2 0 .7-163 .2-163.7 .2-43.9-.3-76.7-19.8-95.2-60-18.9-41.2-4-90.8 34.2-116.1 9.2-6.1 12.5-11.6 10.1-23.1-5.5-26.4 4.5-48 26.4-63 23-15.7 47.4-16.1 72-3.1 10.3 5.4 14.6 11.6 22.2-2.5 14.2-26.4 34.6-46.7 60.7-61.3 97.5-54.4 228.4 7.6 230.2 132.7 .1 8.2 2.4 12.4 9.8 15.9 57.6 26.8 74.5 96.1 35.1 144.5zm-87.8-80.5c-5.8 31.2-34.6 55.1-66.7 55.1-17 0-32.1-6.5-44.1-17.7-27.7-25.7-71.1-75-95.9-93.4-20.1-14.9-42-12.3-60.3 3.8-50 44.1 15.9 121.8 67.1 77.2 4.5-4 7.8-9.5 12.7-12.8 8.2-5.5 20.8-.9 13.2 10.6-17.4 26.3-49.3 38.2-78.9 29.3-28.9-8.7-48.8-36-48.6-70.2 1.2-22.5 12.4-43.1 35.4-56 22.6-12.6 46.4-13.1 67 2.5 50.8 38.5 75.6 81.7 107.3 101.2 24.6 15.1 54.3 7.4 68.8-17.5 28.8-49.2-34.6-105-78.9-63.5-4 3.7-6.9 8.9-11.4 11.7-11 6.8-17.3-4.1-12.8-10.4 20.7-28.6 50.5-40.4 83.3-28.2 31.4 11.7 49.1 44.4 42.8 78.2z\"]\n};\nvar faKeybase = {\n prefix: 'fab',\n iconName: 'keybase',\n icon: [448, 512, [], \"f4f5\", \"M286.2 419a18 18 0 1 0 0 36 18 18 0 1 0 0-36zM398.1 271.4c-9.5-14.6-39.4-52.4-87.3-73.7-6.1-2.7-12.2-5.1-18.4-7.3 4.1-9.9 6-20.6 5.8-31.4s-2.7-21.3-7.2-31.1-10.9-18.5-18.9-25.7-17.4-12.6-27.6-16c-12.4-4.1-23.3-6-32.4-5.8-.6-2-1.9-11 9.4-35l-22.9-13.5-5.5 7.6c-8.7 12.1-16.9 23.6-24.3 34.9-2.7-.6-5.5-1.1-8.3-1.2-41.5-2.4-39-2.3-41.1-2.3-50.6 0-50.8 52.1-50.8 45.9l-2.4 36.7c-1.6 27 19.8 50.2 47.6 51.8l8.9 .5C106 215.5 90.4 227.5 76.6 241.4 14 304.7 14 374 14 429.8l0 33.6 23.3-29.8c3.1 13.1 8 25.8 14.6 37.6 5.8 10.1 14.9 9.4 19.6 7.3 4.2-1.9 10-6.9 3.8-20.1-8-16.8-13.3-34.7-15.8-53.1l46.8-59.8-24.7 74.1c58.2-42.4 157.4-61.8 236.2-38.6 34.2 10.1 67.4 .7 84.7-23.8 .7-1 1.2-2.2 1.8-3.2 1.8 9.4 2.7 18.9 2.8 28.4 0 23.3-3.7 52.9-14.9 81.6-2.5 6.5 1.8 14.5 8.6 15.7 7.4 1.6 15.3-3.1 18.4-11.1 9.6-25.5 14.6-54.6 14.6-86.2 0-38.6-13-77.5-35.9-110.9zM142.4 128.6l-15.7-.9-1.4 21.8 13.1 .8c-.6 6.5-.5 13.1 .3 19.6l-22.4-1.3c-1.6-.1-3.2-.5-4.7-1.1s-2.8-1.6-3.9-2.8-1.9-2.6-2.5-4.1-.8-3.1-.7-4.7L107 119c1-12.2 13.9-11.3 13.3-11.3l29.1 1.7c-2.8 6.2-5.1 12.6-7 19.2zM290.8 300.8c-2.1 1.6-4.8 2.4-7.5 2.2s-5.1-1.5-6.9-3.5l-9.7-11.5-34.4 27c-1.6 1.3-3.7 1.9-5.8 1.7s-4-1.2-5.3-2.8l-15.8-18.6c-1.2-1.6-1.7-3.5-1.5-5.4s1.3-3.7 2.8-4.9l34.6-27.2-14.1-16.7-17.1 13.5c-1.6 1.2-3.5 1.8-5.5 1.6s-3.8-1.1-5.1-2.6c0 0-3.7-4.4-3.8-4.5-1.2-1.6-1.7-3.5-1.5-5.5s1.3-3.7 2.8-4.9L214 225.2s-18.5-22-18.6-22.1c-.8-1-1.3-2.1-1.7-3.3s-.4-2.5-.3-3.7 .6-2.4 1.2-3.5 1.5-2 2.5-2.8c2.1-1.7 4.8-2.4 7.4-2.2s5.1 1.5 6.9 3.6l81.1 96.3c.8 1 1.3 2.1 1.7 3.3s.4 2.5 .3 3.7-.6 2.5-1.2 3.5-1.5 2.1-2.5 2.8zM187.4 419a18 18 0 1 0 0 36 18 18 0 1 0 0-36z\"]\n};\nvar faLumonDrop = {\n prefix: 'fab',\n iconName: 'lumon-drop',\n icon: [576, 512, [], \"e7e3\", \"M480 32c53 0 96 43 96 96l0 224c0 53-43 96-96 96L96 448c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l384 0zM302.4 114.7c-9.8-16.4-20.5-16.4-29.6 0l-68.9 114c-10.7 15.6-16.4 32.8-16.4 52.5 0 50.9 44.3 94.3 100.1 94.3 55 0 100.9-43.5 100.9-94.3 0-19.7-6.6-37.8-17.2-52.5l-68.9-114z\"]\n};\nvar faForgejo = {\n prefix: 'fab',\n iconName: 'forgejo',\n icon: [320, 512, [], \"e860\", \"M261.5 1.2c34 0 61.6 27.6 61.6 61.6s-27.6 61.6-61.6 61.6c-23 0-43.1-12.7-53.7-31.4l-28.5 0c-24 0-47 9.5-64 26.5s-26.5 40-26.5 64l0 43.5c26-19.5 57.7-30.2 90.6-30.2l28.5 0c10.6-18.7 30.6-31.4 53.7-31.4 34 0 61.6 27.6 61.6 61.6s-27.6 61.6-61.6 61.6c-23 0-43.1-12.7-53.7-31.4l-28.5 0c-24 0-47 9.5-64 26.5s-26.5 40-26.5 64l0 47.8c18.7 10.6 31.4 30.6 31.4 53.6 0 34-27.6 61.6-61.6 61.6S-3 483.2-3 449.2c0-23 12.7-43.1 31.4-53.6l0-212c0-40 15.9-78.4 44.2-106.7s66.7-44.2 106.7-44.2l28.5 0c10.6-18.7 30.6-31.4 53.7-31.4zM58.6 423.9c-14 0-25.3 11.3-25.3 25.3s11.3 25.4 25.3 25.4 25.4-11.4 25.4-25.4-11.4-25.3-25.4-25.3zM261.5 201.7a25.4 25.4 0 1 0 0 50.7 25.4 25.4 0 1 0 0-50.7zm0-164.2a25.4 25.4 0 1 0 0 50.7 25.4 25.4 0 1 0 0-50.7z\"]\n};\nvar faPostgresql = {\n prefix: 'fab',\n iconName: 'postgresql',\n icon: [512, 512, [], \"e858\", \"M219.8 171.3c3.9 .5 13.1 2.7 12.3 8.5-.8 5.9-9.2 9.1-14.2 8.4-4.7-.7-13.2-6.1-12.3-12.1l.3-2.1c4.2 0 8.3-3.5 13.9-2.7zm168.1-3.4c10.8 2.6-1.1 13.5-6.8 14.3-4.3 .6-12.1-2.2-12.8-7.4-1-7.4 15.7-7.9 19.7-6.9zm-22-140.8c35.7-.3 81.3 9.4 114.3 51.7 7.2 9.2 10 24 9.7 40.9-.8 49.6-26 129.4-70.7 197.4 4.5 2.9 17.6 7.4 51.1 .5 5.6-1.2 12.7-2.2 17.6 1.6 18.2 13.9-19.6 35.1-28.4 39.2-13.2 6.2-34.8 9.5-51.2 8.7-2.1-.2-4.3-.2-6.3-.6-5.1-1.1-7.4-1-8.3-.7-1.1 .3-1.4 2.9-1.6 3.8-2.8 24.9-7.7 64.7-10.7 82-2.8 16.3-7.7 29.3-17.2 39.2-9.5 9.9-22.8 15.7-40.6 19.5-22.3 4.8-37.9-.1-48.7-9.1-10.3-8.7-15.2-20.4-18-27.4-1.8-4.5-3-11.5-4-19.8-2.3-19.8-3.3-50.4-3-83.3-24.6 22.1-55 17.2-68.2 13.9-10.5-2.6-33-16.1-17.5-28.7 11.9-9.7 30.3-5.5 42.2-15 2.4-1.9 11.4-10.6 11.4-13.5-10-.3-19.6-2.9-28.1-7.5-13.5 14.5-26.4 29.5-39.3 44.6-8.3 9.9-17.4 15.8-27.4 16.2-9.9 .4-18.7-4.6-26.1-11.8-7.3-7.1-14.1-17.2-20.4-29-19-35.5-33.2-86.1-42.3-126.4-6-26.7-9.6-49.1-10.1-59-2.2-44.3 8-74.1 26-93.2 17.9-19 42.4-26 66.1-27.4 35.6-2 71 8.5 86.6 13.8l5 1.8c15.9-10.8 36.1-17.4 61.7-17 13.2 .2 25.5 2.2 36.7 4.2 18.6-7.1 39.8-9.5 59.4-9.7zm-96 20.5c-24.7-.4-42.9 6.5-56.6 16.8-.8 .6-1.8 1-2.8 1.2-14.4 11.8-23.9 28-30.3 44.8-7.2 19.1-10 38.5-11.1 51.5 7.6-4.3 17.9-8.7 28.7-11.2 10.5-2.4 22.4-3.2 32.7 .8 10.9 4.2 19 13.3 22.2 28.1 7.5 34.7 6.7 58.2 2.7 75.9-4.8 21-16.8 39.5-21.9 60.4 3.5-.9 7.1-.6 9.8 .1l7.2 2.9c7.7 4.4 12.8 13 14 21.7 2 6 .1 14.3 0 20.6 6.7 16.3 7.2 36.1 6.7 53.3-.7 25-1 40.2 3.2 51.7 2.9 7.9 4.7 16.4 10.4 22.8 2.6 3 6.1 5.5 10.9 6.8 18.5 5.1 44-4.7 56.6-18.2 7.7-8.2 12.3-19.3 13.4-33.9 1.1-13.6 4.2-27.6 6.3-41.1l2.9-8.8c1.7-14.8 3.4-29.6 5-44.4-.4-9.1 .9-16.1 3.9-21.5 3.1-5.7 7.6-8.9 11.8-10.8 1.8-.8 3.9-1.2 5.6-2-1.6-2.4-3.6-4.6-5.3-6.8-8.2-10.4-13.3-22.3-19.7-33.8-8.5-15.2-23.8-42.2-30.1-67.5-4.1-16.4-4.9-34.5 6-47 9.8-11.2 26.9-15.5 51.9-13-3.4-10-11.4-27.5-24.8-44.7-18-23-45.7-45.9-85.7-53.1-7.3-.9-15.2-1.5-23.6-1.7zm-32.2 282c-8 .7-15.5 18.2-21.7 23.1-6.2 4.9-14.5 7.6-30 10.7-4.5 .9-7.7 1.9-9.7 2.8 22.3 15.8 58.3 3.2 72.6-16.8 1.7-2.4 2.1-6 .5-10.2-1.7-4.5-6.4-10.1-11.9-9.6zM117.6 49.2c-21.6 1.2-42 7.5-56.4 22.8-14.4 15.2-24.2 40.6-22.1 82.5 .4 8.5 3.8 30 9.8 56.6 8.9 39.8 23.7 90.3 40.6 122.2 6 11.1 17.4 33 32.8 32.3 4.4-.2 10.1-2.8 17-11 12.6-14.8 25.2-29.5 38.5-43.7-17.9-15.4-28.5-40.3-24.8-67.2 3.4-24.3 .5-48.2 1.2-72.5 .4-11.9 2.3-38.7 12.6-65.8 5.9-15.5 14.5-31.3 27.4-44.2-16.4-5.4-47.1-13.5-76.6-11.9zM405.1 328.9c-3.8 1.1-6.7 2.2-8.7 5.8-1.3 2.4-2.5 6.7-2.2 14.2 4.8 3.9 14.1 3.3 19.8 3.2 13.9-.2 29.9-3.1 39.3-7.5 7.9-3.7 14.7-8.3 19-12.2-38.2 7.7-55.4 2.1-63.2-4.8-1.3 .4-2.9 .9-3.9 1.2zM225.3 164.9c-15.4-5.9-35.4 1.8-48.9 9.4-3.6 2-6.5 4-7.9 5.2 .4 8.8 2.8 36.1-1.4 66.3-5.1 36.6 21.7 66.6 52.5 66.7 5.1-20.8 17-39.2 21.8-60.1 3.5-15.3 4.5-36.6-2.7-69.7-2.3-10.5-7.4-15.4-13.4-17.7zM370.1 42.2c-15.2-.2-28.8 1.7-39.2 3.8 26 11.8 45.6 29.7 59.6 47.6 17.4 22.2 26.3 44.1 29 55 .7 2.7 1.3 5.7 .5 8.4 .6 18.9-4 31.3-4.6 49.2-.4 12.9 2.9 28.1 3.7 44.7 .8 15.7-1 32.5-11.2 49.5 .8 1 1.6 2.1 2.4 3.1 26.8-42.2 46-88.6 56.3-128.5 5.5-21.4 8.4-40.7 8.7-56.1 .2-15.2-2-25.4-5.8-30.4-28.3-36.1-66.8-45.8-99.3-46.2zm35.6 119.5c-25.3-3.2-37.3 1.5-42.8 7.7-6 6.8-6.8 18.5-2.9 34.1 5.7 22.6 20.1 48.6 28.7 64 3.6 6.4 6.4 13.1 10 19.4 5.5-11.7 6.6-23.5 6-35.5-.7-15-4.2-30.3-3.7-45.8l.4-7.4c1.2-14.3 4.1-24.6 4.2-36.5z\"]\n};\nvar faWeebly = {\n prefix: 'fab',\n iconName: 'weebly',\n icon: [512, 512, [], \"f5cc\", \"M425.1 65.8c-39.9 0-73.3 25.7-83.7 64.3-18.2-58.1-65.5-64.3-85-64.3-19.8 0-66.8 6.3-85.3 64.3-10.4-38.6-43.4-64.3-83.7-64.3-49 0-87.5 33.9-87.5 77.2 0 29 4.2 33.3 77.2 233.5 22.4 60.6 67.8 69.4 92.7 69.4 39.2 0 70-19.5 85.9-54 15.9 34.8 46.7 54.3 85.9 54.3 25 0 70.4-9.1 92.7-69.7 76.6-208.6 77.5-205.6 77.5-227.2 .6-48.3-36-83.5-86.9-83.5zm26.3 114.8L385.9 357.1c-7.9 21.5-21.2 37.2-46.2 37.2-23.4 0-37.4-12.4-44-33.9l-39.3-117.4-1 0-39.3 117.4c-7 21.5-20.9 33.6-44 33.6-25 0-38.3-15.7-46.2-37.2L60.9 181.6c-5.4-14.8-7.9-23.9-7.9-34.5 0-16.3 15.8-29.4 38.3-29.4 18.7 0 32 11.8 36.1 29.1l44 139.8 1 0 44.7-136.8c6-19.7 16.5-32.1 39-32.1s32.9 12.1 39 32.1l44.7 136.8 1 0 44-139.8c4.1-17.2 17.4-29.1 36.1-29.1 22.2 0 38.3 13.3 38.3 35.7-.3 7.9-4.1 16-7.6 27.2z\"]\n};\nvar faDocker = {\n prefix: 'fab',\n iconName: 'docker',\n icon: [640, 512, [], \"f395\", \"M349.9 236.3l-66.1 0 0-59.4 66.1 0 0 59.4zm0-204.3l-66.1 0 0 60.7 66.1 0 0-60.7zm78.2 144.8l-66.1 0 0 59.4 66.1 0 0-59.4zM271.8 104.7l-66.1 0 0 60.1 66.1 0 0-60.1zm78.1 0l-66.1 0 0 60.1 66.1 0 0-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7l-434.7 0c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zM115.6 176.8l-66 0 0 59.4 66.1 0 0-59.4-.1 0zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm-78.1-72.1l-66.1 0 0 60.1 66.1 0 0-60.1z\"]\n};\nvar faMagento = {\n prefix: 'fab',\n iconName: 'magento',\n icon: [448, 512, [], \"f3c4\", \"M445.9 127.9l0 256.1-63.4 36.5 0-255.8-158.5-91.6-158.6 91.6 .4 255.9-63.3-36.6 0-255.9 221.9-128.1 221.5 127.9zM255.8 420.5l-31.6 18.4-31.8-18.2 0-256-63.3 36.6 .1 255.9 94.9 54.9 95.1-54.9 0-256-63.4-36.6 0 255.9z\"]\n};\nvar faTorBrowser = {\n prefix: 'fab',\n iconName: 'tor-browser',\n icon: [512, 512, [], \"e838\", \"M256.5 465.4l0-31c98.3-.3 177.9-80 177.9-178.4S354.8 77.9 256.5 77.6l0-31C372 46.8 465.4 140.5 465.4 256S372 465.2 256.5 465.4zm0-108.6c55.4-.3 100.3-45.3 100.3-100.8S312 155.5 256.5 155.2l0-31c72.6 .3 131.4 59.2 131.4 131.8S329.1 387.6 256.5 387.8l0-31zm0-155.1c29.7 .3 53.8 24.5 53.8 54.3s-24 54-53.8 54.3l0-108.6zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0z\"]\n};\nvar faGitAlt = {\n prefix: 'fab',\n iconName: 'git-alt',\n icon: [448, 512, [], \"f841\", \"M439.6 236.1L244 40.5C238.6 35 231.2 32 223.6 32s-15 3-20.4 8.4l-40.7 40.6 51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3l-46.3-46.3 0 121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56l0-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4L204.1 471.6c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4L439.6 276.9c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4z\"]\n};\nvar faFirefoxBrowser = {\n prefix: 'fab',\n iconName: 'firefox-browser',\n icon: [512, 512, [], \"e007\", \"M130.2 127.5l0 0zm351.4 45.4c-10.6-25.5-32.1-53-48.9-61.7 13.7 26.9 21.7 53.9 24.7 74 0 .1 0 .3 .1 .4-27.6-68.8-74.4-96.5-112.6-156.8-15-23.7-10.9-25.2-13.1-24.7l-.1 .1c-46.7 26-75.3 78.4-82.6 122.7-16.6 .9-32.9 5-47.9 12.1-1.4 .6-2.5 1.7-3.1 3s-.9 2.8-.6 4.3c.2 .8 .6 1.6 1.1 2.3s1.2 1.3 1.9 1.7 1.6 .7 2.4 .8 1.7 0 2.5-.3l.5-.2c15.5-7.3 32.4-11.2 49.5-11.3 62.8-.6 97.2 44 107.6 62.3-13-9.2-36.4-18.2-58.8-14.3 87.7 43.9 64.2 194.5-57.4 189.2-59.5-2.6-97.1-51-100.5-90.8 0 0 11.2-41.9 80.6-41.9 7.5 0 28.9-20.9 29.3-27-.1-2-42.5-18.9-59.1-35.2-8.8-8.7-13.1-12.9-16.8-16.1-2-1.7-4.1-3.3-6.3-4.8-5.6-19.5-5.8-40-.7-59.6-25.1 11.4-44.6 29.4-58.7 45.4l-.1 0c-9.7-12.2-9-52.6-8.4-61.1-.1-.5-7.2 3.7-8.2 4.3-8.6 6.1-16.5 12.9-23.8 20.4-16.3 16.6-44.1 50.2-55.5 101.2-4.5 20.4-6.8 44.4-6.8 52.3 0 134.7 109.2 243.9 243.9 243.9 120.6 0 223-87.2 240.4-202.6 11.6-76.7-14.7-131.1-14.7-132z\"]\n};\nvar faCloudsmith = {\n prefix: 'fab',\n iconName: 'cloudsmith',\n icon: [512, 512, [], \"f384\", \"M512 227.6L512 284.5 284.4 512 227.6 512 0 284.4 0 227.6 227.6 0 284.5 0 512 227.6zm-256 162c17.8 .5 35.6-2.6 52.2-9.1s31.8-16.2 44.6-28.7 23-27.3 29.9-43.8 10.5-34.1 10.5-52-3.6-35.5-10.5-52-17.1-31.3-29.9-43.8-28-22.2-44.6-28.7-34.4-9.6-52.2-9.1c-17.8-.5-35.6 2.6-52.2 9.1s-31.8 16.3-44.6 28.7-23 27.3-29.9 43.8-10.5 34.1-10.5 52 3.6 35.5 10.5 52 17.1 31.3 29.9 43.8 28 22.2 44.6 28.7 34.4 9.6 52.2 9.1z\"]\n};\nvar faWizardsOfTheCoast = {\n prefix: 'fab',\n iconName: 'wizards-of-the-coast',\n icon: [640, 512, [], \"f730\", \"M219.2 345.7c-1.9 1.4-11.1 8.4-.3 23.6 4.6 6.4 14.1 12.8 21.7 6.6 6.5-4.9 7.4-12.9 .3-23-5.5-7.8-14.3-12.9-21.7-7.1zm336.8 75.9c-.3 1.7-.6 1.7 .8 0 2.1-4.2 4.2-10.2 5-19.9 3.1-38.5-40.3-71.5-101.3-78-54.7-6-124.4 9.2-188.8 60.5l-.3 1.6c2.6 5 5 10.7 3.4 21.2l.8 .3c63.9-58.4 131.2-77.2 184.4-73.8 58.4 3.7 100 34 100 68.1 0 10-2.6 15.7-3.9 20.2zM392.3 240.4c.8 7.1 4.2 10.2 9.2 10.5 5.5 .3 9.4-2.6 10.5-6.6 .8-3.4 2.1-29.8 2.1-29.8S402.8 221 399.1 225c-3.7 3.7-7.3 8.4-6.8 15.5zm-50-151.1c-204.5 0-329.2 137.5-341.5 151.9-1 .5-1.3 .8 .8 1.3 60.5 16.5 155.8 81.2 196.1 202.2l1 .3c55.2-69.9 140.9-128.1 237-128.1 80.9 0 130.2 42.2 130.2 80.4 0 18.3-6.6 33.5-22.3 46.3 0 1-.2 .8 .8 .8 14.7-10.7 27.5-28.8 27.5-48.2 0-22.8-12.1-38.2-12.1-38.2 7.1 7.1 10.7 16.2 10.7 16.2 5.8-40.9 27-62.3 27-62.3-2.4-9.7-6.8-17.8-6.8-17.8 7.6 8.1 14.4 27.5 14.4 41.4 0 10.5-3.4 22.8-12.6 31.9l.3 .5c8.1-5 16.5-16.8 16.5-38 0-15.7-4.7-25.9-4.7-25.9 5.8-5.2 11.3-9.2 16-11.8 .8 3.4 2.1 9.7 2.4 14.9 0 1 .8 1.8 1 0 .8-5.8-.3-16.2-.3-16.5 6-3.1 9.7-4.5 9.7-4.5-15.7-110.3-144-196.9-291.2-196.9zM243 378.9c-11.1 9-24.2 4.1-30.6-4.2-7.4-9.6-6.8-24.1 4.2-32.5 14.8-11.4 27.1-.5 31.2 5.5 .3 .4 12.1 16.6-4.7 31.2zm2.1-136.4l9.4-17.8 11.8 71-12.6 6-24.6-28.8 14.1-26.7 3.7 4.4-1.8-8.1zm18.6 117.6l-.3-.3c2-4.1-2.5-6.6-17.5-31.7-1.3-2.4-3.1-2.9-4.4-2.6l-.3-.5c7.9-5.8 15.4-10.2 25.4-15.7l.5 .3c1.3 1.8 2.1 2.9 3.4 4.7l-.3 .5c-1-.3-2.4-.8-5.2 .3-2.1 .8-7.9 3.7-12.3 7.6l0 1.3c1.6 2.4 3.9 6.6 5.8 9.7l.3 0c10-6.3 7.6-4.5 11.5-7.9l.3 0c.5 1.8 .5 1.8 1.8 5.5l-.3 .3c-3.1 .6-4.7 .3-11.5 5.5l0 .3c9.5 17 11 16.8 12.6 16l.3 .3c-2.3 1.6-6.3 4.2-9.7 6.6zM319 327.6c-3.1 1.6-6 2.9-10 5l-.3-.3c1.3-2.6 1.2-2.7-11.8-32.5l-.3-.3c-.2 0-8.9 3.7-10 7.3l-.5 0-1-5.8 .3-.5c7.3-4.6 25.5-11.6 27.8-12.6l.5 .3 3.1 5-.3 .5c-3.5-1.8-7.4 .8-12.3 2.6l0 .3c12.3 32 12.7 30.6 14.7 30.6l0 .2zm44.8-16.5c-4.2 1-5.2 1.3-9.7 2.9l-.3-.3 .5-4.5c-1-3.4-3.1-11.5-3.7-13.6l-.3-.3c-3.4 .8-8.9 2.6-12.8 3.9l-.3 .3c.8 2.6 3.1 9.9 4.2 13.9 .8 2.4 1.8 2.9 2.9 3.1l0 .5c-3.7 1-7.1 2.6-10.2 3.9l-.3-.3c1-1.3 1-2.9 .3-5-1-3.1-8.1-23.8-9.2-27.2-.5-1.8-1.6-3.1-2.6-3.1l0-.5c3.1-1 6-2.1 10.7-3.4l.3 .3-.3 4.7c1.3 3.9 2.4 7.6 3.1 9.7l.3 0c3.9-1.3 9.4-2.9 12.8-3.9l.3-.3-2.6-9.4c-.5-1.8-1-3.4-2.6-3.9l0-.3c4.4-1 7.3-1.8 10.7-2.4l.3 .3c-1 1.3-1 2.9-.5 4.4 1.6 6.3 4.7 20.4 6.3 26.5 .5 2.6 1.8 3.4 2.6 3.9zm32.2-6.8l-.3 .3c-4.7 .5-14.1 2.4-22.5 4.2l-.3-.3 .8-4.2c-1.6-7.9-3.4-18.6-5-26.2-.3-1.8-.8-2.9-2.6-3.7l.8-.5c9.2-1.6 20.2-2.4 24.9-2.6l.3 .3c.5 2.4 .8 3.1 1.6 5.5l-.3 .3c-1.1-1.1-3.3-3.2-16.2-.8l-.3 .3c.3 1.6 1 6.6 1.6 9.9l.3 .3c9.5-1.7 4.8-.1 10.7-2.4l.3 0c0 1.6-.3 1.8-.3 5.2l-.3 0c-4.8-1-2.2-.9-10.2 0l-.3 .3c.3 2.1 1.6 9.4 2.1 12.6l.3 .3c1.2 .4 14.2-.6 16.2-4.7l.3 0c-.5 2.4-1 4.2-1.6 6zm10.7-44.5c-4.5 2.4-8.1 2.9-11 2.9-.2 0-11.4 1.1-17.5-10-6.7-10.8-1-25.2 5.5-31.7 8.8-8.1 23.4-10.1 28.5-17 8-10.3-13-22.3-29.6-5.8l-2.6-2.9 5.2-16.2c25.6-1.6 45.2-3 50 16.2 .8 3.1 0 9.4-.3 12.1 0 2.6-1.8 18.8-2.1 23-.5 4.2-.8 18.3-.8 20.7 .3 2.4 .5 4.2 1.6 5.5 1.6 1.8 5.8 1.8 5.8 1.8l-.8 4.7c-11.8-1.1-10.3-.6-20.4-1-3.2-5.1-2.2-3.3-4.2-7.9 0 0-4.2 3.9-7.3 5.5zM443.9 281c-6.4-10.6-19.8-7.2-21.7 5.5-2.6 17.1 14.3 19.8 20.7 10.2l.3 .3c-.5 1.8-1.8 6-1.8 6.3l-.5 .5c-10.3 6.9-28.5-2.5-25.7-18.6 1.9-10.9 14.4-18.9 28.8-9.9l.3 .5c0 1.1-.3 3.4-.3 5.3zm5.8-87.7l0-6.6c.7 0 19.6 3.3 27.8 7.3l-1.6 17.5s10.2-9.4 15.4-10.7c5.2-1.6 14.9 7.3 14.9 7.3l-11.3 11.3c-12.1-6.4-19.6-.1-20.7 .8-5.3 38.7-8.6 42.2 4.4 46.1l-.5 4.7c-17.6-4.3-18.5-4.5-36.9-7.3l.8-4.7c7.3 0 7.5-5.3 7.6-6.8 0 0 5-53.2 5-55.3 0-2.9-5-3.7-5-3.7zm11 114.4c-8.1-2.1-14.1-11-10.7-20.7 3.1-9.4 12.3-12.3 18.9-10.2 9.2 2.6 12.8 11.8 10.7 19.4-2.6 8.9-9.4 13.9-18.9 11.5zm42.2 9.7c-2.4-.5-7.1-2.4-8.6-2.9l0-.3 1.6-1.8c.6-8.2 .6-7.3 .3-7.6-4.8-1.8-6.7-2.4-7.1-2.4-1.3 1.8-2.9 4.5-3.7 5.5l-.8 3.4 0 .3c-1.3-.3-3.9-1.3-6-1.6l0-.3 2.6-1.8c3.4-4.7 10-14.1 13.9-20.2l0-2.1 .5-.3c2.1 .8 5.5 2.1 7.6 2.9 .5 .5 .2-1.9-1 25.1-.2 1.8 0 2.6 .8 3.9zm-4.7-89.8c11.3-18.3 30.8-16.2 34-3.4l7.6-26.2c2.3-6.2-2.8-9.9-4.5-11.3l1.8-3.7c12.2 10.4 16.4 14 22.5 20.4-25.9 73.1-30.8 80.8-24.6 84.3l-1.8 4.4c-6.4-3.3-8.9-4.4-17.8-8.6l2.1-6.8c-.3-.3-3.9 3.9-9.7 3.7-19.1-1.3-22.9-31.7-9.7-52.9zm29.3 79.3c0-5.7-6.3-7.9-7.9-5.2-1.3 2.1 1 5 2.9 8.4 1.6 2.6 2.6 6.3 1 9.4-2.6 6.3-12.4 5.3-15.4-.8 0-.7-.3 .1 1.8-4.7l.8-.3c-.6 5.7 6.1 9.6 8.4 5 1-2.1-.5-5.5-2.1-8.4-1.6-2.6-3.7-6.3-1.8-9.7 2.7-5.1 11.3-4.5 14.7 2.4l0 .5-2.4 3.4zm21.2 13.4c-2-3.3-.9-2.1-4.5-4.7l-.3 0c-2.4 4.2-5.8 10.5-8.6 16.2-1.3 2.4-1 3.4-.8 3.9l-.3 .3-5.8-4.4 .3-.3 2.1-1.3c3.1-5.8 6.6-12.1 9.2-17l0-.3c-2.6-2-1.2-1.5-6-1.8l0-.3 3.1-3.4 .3 0c3.7 2.4 10 6.8 12.3 8.9l.3 .3-1.3 3.9zM575.8 276l-2.9-2.9c.8-2.4 1.8-5 2.1-7.6 .7-9.7-11.5-11.8-11.5-5 0 5 7.9 19.4 7.9 27.8 0 10.2-5.8 15.7-13.9 16.5-8.4 .8-20.2-10.5-20.2-10.5l5-14.4 2.9 2.1c-3 17.8 17.7 20.4 13.3 5.2-1.1-4-18.7-34.2 2.1-38.2 13.6-2.4 23 16.5 23 16.5L575.8 276zm35.6-10.2c-11-30.4-60.5-127.5-192-129.6-53.4-1-94.3 15.4-132.8 38l85.6-9.2-91.4 20.7 25.1 19.6-3.9-16.5c7.5-1.7 39.1-8.5 66.8-8.9l-22.3 80.4c13.6-.7 19-9 19.6-22.8l5-1 .3 26.7c-22.5 3.2-37.3 6.7-49.5 9.9l13.1-43.2-61.5-36.7 2.4 8.1 10.2 5c6.3 18.6 19.4 56.6 20.4 58.7 2 4.3 3.2 5.8 12 4.5l1.1 5c-16.1 4.9-23.7 7.6-39 14.4l-2.4-4.7c4.4-2.9 8.7-3.9 5.5-12.8-23.7-62.5-21.5-58.1-22.8-59.4l2.4-4.4 33.5 67.3c-3.8-11.9 1.7 1.7-33-78.8l-41.9 88.5 4.7-13.9-35.9-42.2 27.8 93.5-11.8 8.4c-111.9-101.7-105.8-98.4-113.7-98.7-5.5-.3-13.6 5.5-13.6 5.5l-5-6c30.6-23.5 31.6-24.3 58.4-42.7l4.2 7.1s-5.8 4.2-7.9 7.1c-5.9 9.3 1.7 13.3 61.8 75.7l-18.8-58.9 39.8-10.2 25.7 30.6 4.4-12.3-5-24.6 13.1-3.4 .5 3.1 3.7-10.5-94.3 29.3 11.3-5-13.6-42.4 17.3-9.2 30.1 36.1 28.5-13.1c-1.4-7.5-2.5-14.5-4.7-19.6l17.3 13.9 4.7-2.1-59.2-42.7 23.1 11.5c19-6.1 25.2-7.5 32.2-9.7l2.6 11c-12.6 12.6 1.4 16.8 6.5 19.4l-13.6-61 12 28.3c4.2-1.3 7.3-2.1 7.3-2.1l2.6 8.6s-3.1 1-6.3 2.1l8.9 21 33.8-65.7-20.7 61c42.4-24.1 81.4-36.7 132-35.9 67 1 167.3 40.8 199.8 139.8 .8 2.1 0 2.6-.8 .3zm-408-113.4s1.8-.5 4.2-1.3l9.4 7.6c-.4 0-3.4-.3-11.3 2.4l-2.4-8.6zm143.8 38.5c-1.6-.6-26.5-4.8-33.3 20.7l21.7 17 11.5-37.7zM318.4 67.1c-58.4 0-106.1 12-115 14.4l0 .8c8.4 2.1 14.4 4.2 21.2 11.8l1.6 .3c6.6-1.8 49-13.9 110.2-13.9 180.2 0 301.7 116.8 301.7 223.4l0 10c0 1.3 .8 2.6 1.1 .5 .5-2.1 .8-8.6 .8-19.6 .3-83.8-96.6-227.6-321.6-227.6zM529.5 236.8c1.3-5.8 0-12.3-7.3-13.1-9.6-1.1-16.1 23.8-17 33.5-.8 5.5-1.3 14.9 6 14.9 4.7 0 9.7-.9 18.3-35.4zM468 279.7c-2.6-.8-9.4-.8-12.6 10.5-1.8 6.8 .5 13.4 6 14.7 3.7 1.1 8.9 .5 11.8-10.7 2.6-9.9-1.8-13.6-5.2-14.4zm23 21c1.8 .5 3.1 1 5.8 1.8 0-1.8 .5-8.4 .8-12.1-1 1.3-5.5 8.1-6.6 10l0 .3z\"]\n};\nvar faCreativeCommonsNd = {\n prefix: 'fab',\n iconName: 'creative-commons-nd',\n icon: [512, 512, [], \"f4eb\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm94 144.3l0 42.5-180.3 0 0-42.5 180.3 0zm0 79.8l0 42.5-180.3 0 0-42.5 180.3 0z\"]\n};\nvar faUsps = {\n prefix: 'fab',\n iconName: 'usps',\n icon: [512, 512, [], \"f7e1\", \"M428.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8l-27 0c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8 .1zM316.2 264.3c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3 196.6 0c-2.7-28.2-152.9-22.6-337.9-22.6L-5 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM62.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2L449.3 415.7 517 96 62.7 96z\"]\n};\nvar faSquareLetterboxd = {\n prefix: 'fab',\n iconName: 'square-letterboxd',\n icon: [448, 512, [], \"e62e\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5 0-13.6 3.9-26.3 10.6-37.1-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5 0 13.6-3.9 26.3-10.6 37.1 12.4 19.7 34.4 32.9 59.5 32.9 24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5 0-13.6 3.9-26.3 10.6-37.1-12.4-19.7-34.4-32.9-59.5-32.9zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5 0 13.6-3.9 26.3-10.6 37.1 12.4 19.8 34.4 32.9 59.5 32.9 38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z\"]\n};\nvar faMandalorian = {\n prefix: 'fab',\n iconName: 'mandalorian',\n icon: [384, 512, [], \"f50f\", \"M200.6 511.9c-1-3.3-1.7-15.8-1.4-24.6 .6-15.9 1-24.7 1.4-28.8 .6-6.2 2.9-20.7 3.3-21.4 .6-1 .4-27.9-.2-33.1-.3-2.6-.6-11.9-.7-20.7-.1-16.5-.5-20.1-2.7-24.8-1.1-2.3-1.2-3.8-1-11.4 .2-4.2 .1-8.5-.3-12.7-2-13-3.5-27.7-3.2-33.9s.4-7.1 2.1-9.7c3.1-4.7 6.5-14 8.6-23.3 2.3-9.9 3.9-17.2 4.6-20.7 1.1-5.1 2.6-10.1 4.4-15.1 2.3-6.2 2.5-15.4 .4-15.4-.3 0-1.4 1.2-2.4 2.7s-4.8 4.8-8.3 7.4c-8.4 6.1-11.7 9.4-12.7 12.6s-1 7.2-.2 7.8c.3 .2 1.3 2.4 2.1 4.9 1.6 5 1.9 10.3 .7 15.4-.4 1.8-1 5.5-1.5 8.2s-1 6.5-1.3 8.2c-.2 1.5-.7 3-1.5 4.3-1 1-1.1 .9-2.1-.5-.7-1.5-1.2-3.1-1.4-4.7-.2-1.7-1.6-7.1-3.1-11.9-3.3-10.9-3.5-16.2-1-21 .8-1.4 1.4-3 1.7-4.6 0-2.4-2.2-5.3-7.4-9.9-7-6.2-8.6-7.9-10.2-11.3-1.7-3.6-3.1-4.1-4.5-1.5-1.8 3-2.6 9.1-3 22l-.3 12.2 2 2.2c3.2 3.7 12.1 16.5 13.8 19.8 3.4 6.7 4.3 11.7 4.4 23.6s1 22.8 2 24.7c.4 .7 .5 1.4 .3 1.5s.4 2.1 1.3 4.3c1 2.9 1.7 5.9 2.1 9 .4 3.5 .9 7 1.7 10.4 2.2 9.6 2.8 14.1 2.4 20.1-.2 3.3-.5 11.1-.7 17.3-1.3 41.8-1.8 58-2 61.2-.1 2-.4 11.5-.6 21.1-.4 16.3-1.3 27.4-2.4 28.6-.6 .7-8.1-4.9-12.5-9.5-3.8-3.9-4-4.8-2.8-9.9 .7-3 2.3-18.3 3.3-32.6 .4-4.8 .8-10.5 1-12.7 .8-9.4 1.7-20.3 2.6-34.8 .6-8.5 1.3-16.4 1.7-17.7s.9-9.9 1.1-19.1l.4-16.8-2.3-4.3c-1.7-3.3-4.9-6.9-13.2-15.3-6-6.1-11.8-12.3-12.9-13.8l-2-2.8 .8-10.9c1.1-15.7 1.1-48.6 0-59.1l-.9-8.7-3.3-4.5c-5.9-8.1-5.8-7.7-6.2-33.3-.1-6.1-.4-11.5-.6-12.1-.8-1.9-3-2.7-8.5-3-8.9-.6-11-1.9-23.8-14.6-6.2-6-12.3-12-13.8-13.2-2.8-2.4-2.8-2-.6-9.6l1.4-4.6-1.7-3c-.8-1.4-1.6-2.8-2.6-4.1-1.3-1.5-5.5-10.9-6-13.5-.2-.7-.2-1.4-.1-2.1s.5-1.3 .9-1.8c2.2-2.9 3.4-5.7 4.5-10.7 2.3-11.2 7.7-26.1 10.6-29.2 3.2-3.5 7.7-1 9.4 5 1.3 4.8 1.4 9.8 .1 18.6-.5 3.7-.9 7.4-1 11.1 0 4 .2 4.7 2.3 7.4 3.3 4.4 7.7 7.4 15.2 10.5 1.7 .7 3.3 1.7 4.7 2.8 11.2 10.7 18.6 16.2 22.9 16.9 5.2 .8 8 4.5 10 13.4 1.3 5.7 4 11.1 5.5 11.1 1.2-.2 2.3-.7 3.3-1.4 2-1.2 2.2-1.7 2.2-4.2-.3-6-.9-11.9-2-17.8-.4-1.7-.8-4.1-.9-5.4s-.6-3.8-1-5.7c-2.6-11.2-3.6-15.5-4.1-16-1.6-2-4.1-10.2-4.9-15.9-1.6-11.1-4-14.2-12.9-17.4-4.9-1.8-9.4-4.5-13.3-7.9-1.2-1-4-3.2-6.4-5.1s-4.4-3.5-4.6-3.8c-.8-.7-1.7-1.4-2.7-2-6.2-4.2-8.8-7-11.3-12l-2.4-5c-.1-8.7-.3-17.3-.4-26l6.9-6.6c4-3.8 8.5-7.4 10.6-8.4 3.3-1.7 4.4-1.9 11.4-2 8.5-.2 10.1 0 11.7 1.6s1.4 6.4-.3 8.5c-.6 .7-1.1 1.5-1.3 2.3 0 .6-2.6 4.9-5.4 9-1.1 2.2-1.9 4.5-2.4 6.8 20.4 13.4 21.6 3.8 14.1 29l11.4 2.5c3.1-8.7 6.5-17.3 8.6-26.2 .3-7.6-12-4.2-15.4-8.7-2.3-5.9 3.1-14.2 6.1-19.2 1.6-2.3 6.6-4.7 8.8-4.1 .9 .2 4.2-.4 7.4-1.3 2.5-.8 5-1.3 7.5-1.7 2-.2 4.1-.7 6-1.3 3.7-1.1 4.5-1.2 6.3-.4 1.9 .6 3.8 1.1 5.8 1.4 2.1 .3 4.1 .9 6 1.9 1.6 .9 3.3 1.7 5 2.2 2.5 .7 3 .6 7-1.7L226 5.4 236.7 5c10.4-.4 10.8-.5 15.3-2.7L256.5 0 259 1.4c1.8 1 3.1 2.7 4.9 6 2.4 4.5 2.4 4.6 1.4 7.4-.9 2.4-.9 3.3-.1 6.4 .5 2 1.2 4 2.1 5.9 .6 1.3 1.1 2.6 1.3 4 .3 4.3 0 5.3-2.4 6.9-2.2 1.5-7 7.9-7 9.3-.2 1-.6 2-1.1 3-5 11.5-6.8 13.6-14.3 17-9.2 4.2-12.3 5.2-16.2 5.2-3.1 0-4 .2-4.5 1.3-1.2 1.4-2.5 2.7-4.1 3.7-1.8 1.2-3.3 2.9-4.4 4.8-.5 1.2-1.4 2.2-2.5 2.9-.9 .4-1.8 1-2.5 1.7-2.2 1.9-4.6 3.7-7 5.4-3.3 2.3-6.9 5-7.9 6-.7 .7-1.5 1.3-2.4 1.7-.8 .4-1.6 .9-2.1 1.6-1.3 1.4-1.5 2.1-1.1 4.6 .3 2 .8 4 1.4 5.9 1.3 3.8 1.3 7.9 0 10.6s-.9 6.7 1.4 9.6c2 2.6 2.2 4.6 .7 8.8-.8 2.9-1.1 5.9-1.1 8.9 0 4.9 .2 6.3 1.5 8.4s1.8 2.5 3.2 2.3c2-.2 2.3-1.1 4.7-12.1 2.2-10 3.7-11.9 13.8-17.1 2.9-1.5 7.5-4 10-5.4s6.8-3.7 9.4-4.9c5.9-2.6 11.2-6.6 15.2-11.7 7.1-8.8 10-16.2 12.8-33.3 .4-2.8 1.3-5.4 2.9-7.7 1.4-2.2 2.4-4.7 2.9-7.3 1-5.3 2.9-9.1 5.6-11.5 4.7-4.2 6-1.1 4.6 10.9-.5 3.9-1.1 10.3-1.4 14.4l-.6 7.4c3 2.7 5.9 5.5 8.9 8.2l.1 8.4c.1 4.6 .5 9.5 .9 10.9l.8 2.5-6.4 6.3c-8.5 8.3-12.9 13.9-16.8 21.6-1.8 3.5-3.7 7.1-4.4 8-2.2 3.1-6.5 13-8.8 20.3l-2.3 7.2-7 6.5c-3.8 3.6-8 7.2-9.2 8.2-3 2.3-4.3 5.1-4.3 10-.1 2.5 .4 5 1.6 7.3 .8 1.6 1.5 3.2 2.1 4.8 .3 1 .9 2 1.6 2.9 1.4 1.6 1.9 16.1 .8 23.2-.7 4.5-3.6 12-4.7 12-1.8 0-4.1 9.3-5.1 20.7-.2 2-.6 5.9-1 8.7s-1 10-1.4 16c-.8 12.2-.2 18.8 2 23.2 3.4 6.7 .5 12.7-11 22.8l-4 3.5 .1 5.2c.1 3 .4 6 1.1 8.9 4.6 16 4.7 16.9 4.4 37.1-.5 26.4-.3 40.3 .6 44.2 .5 2.3 .9 4.6 1.1 7 .2 2 .7 5.3 1.1 7.4 .5 2.3 .8 11 .8 22.7l0 19.1-1.8 2.6c-2.7 3.9-15.1 13.5-15.5 12.3l.1 0zm29.5-45.1c-.2-.3-.3-6.9-.3-14.6 0-14.1-.9-27.5-2.3-34.4-.4-2-.8-9.7-.9-17.1-.2-11.9-1.4-24.4-2.6-26.4-.7-1.1-3-17.7-3-21.3 0-4.2 1-6 5.3-9.1s4.9-3.1 5.5-.7c.3 1.1 1.4 5.6 2.6 10 3.9 15.1 4.1 16.3 4 21.7-.1 5.8-.1 6.1-1.7 17.7-1 7.1-1.2 12.4-1 28.4 .2 19.4-.6 35.7-2 41.3-.7 2.8-2.8 5.5-3.4 4.4l-.1 0zm-71-37.6c-.8-3.6-1.3-7.2-1.7-10.8s-1-7.2-1.7-10.8c-.5-2.1-.9-4.3-1-6.5-.3-3.2-.9-7.5-1.3-9.5-1-4.8-3.3-19.4-3.4-21.1 0-.7-.3-4-.7-7.4-.7-6.2-.8-27.7-.2-28.3 1-1 6.6 2.8 11.3 7.4l5.3 5.3-.4 6.5c-.2 3.6-.6 10.2-.8 14.8-.5 13.3-.7 8.7-1.6 28.4-.8 17.4-1.9 31.3-2.6 32-.1 .1-.2 .1-.2 .2s-.2 0-.3 0-.2 0-.3-.1-.1-.1-.2-.2l0 0zM72 162.6c21.1 12.8 17.8 14.2 28.5 17.7 13 4.3 18.9 7.1 23.2 16.9-43.7 36.1-69 57.9-76.7 70.9-31 52-6 101.6 62.8 87.2-14.2 29.2-78 28.6-98.7-4.9-24.7-40-22.1-118.3 61-187.7l0 0zm210.8 179c56.7 6.9 82.3-37.7 46.5-89.2 0 0-26.9-29.3-64.3-68 3-15.5 9.5-32.1 30.6-53.8 89.2 63.5 92 141.6 92.5 149.4 4.3 70.6-78.7 91.2-105.3 61.7l0 0z\"]\n};\nvar faSlack = {\n prefix: 'fab',\n iconName: 'slack',\n icon: [448, 512, [62447, \"slack-hash\"], \"f198\", \"M94.1 315.1c0 25.9-21.2 47.1-47.1 47.1S0 341 0 315.1 21.2 268 47.1 268l47.1 0 0 47.1zm23.7 0c0-25.9 21.2-47.1 47.1-47.1S212 289.2 212 315.1l0 117.8c0 25.9-21.2 47.1-47.1 47.1s-47.1-21.2-47.1-47.1l0-117.8zm47.1-189c-25.9 0-47.1-21.2-47.1-47.1S139 32 164.9 32 212 53.2 212 79.1l0 47.1-47.1 0zm0 23.7c25.9 0 47.1 21.2 47.1 47.1S190.8 244 164.9 244L47.1 244C21.2 244 0 222.8 0 196.9s21.2-47.1 47.1-47.1l117.8 0zm189 47.1c0-25.9 21.2-47.1 47.1-47.1S448 171 448 196.9 426.8 244 400.9 244l-47.1 0 0-47.1zm-23.7 0c0 25.9-21.2 47.1-47.1 47.1S236 222.8 236 196.9l0-117.8C236 53.2 257.2 32 283.1 32s47.1 21.2 47.1 47.1l0 117.8zm-47.1 189c25.9 0 47.1 21.2 47.1 47.1S309 480 283.1 480 236 458.8 236 432.9l0-47.1 47.1 0zm0-23.7c-25.9 0-47.1-21.2-47.1-47.1S257.2 268 283.1 268l117.8 0c25.9 0 47.1 21.2 47.1 47.1s-21.2 47.1-47.1 47.1l-117.8 0z\"]\n};\nvar faSlackHash = faSlack;\nvar faAngellist = {\n prefix: 'fab',\n iconName: 'angellist',\n icon: [384, 512, [], \"f209\", \"M315.6 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1-9.7-28.5-55.1-172.5-95.1-172.5-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7-.1 72.2 68.3 148.6 164.5 148.6 118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM280.2 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM110.8 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM108.5 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7 .1-7.7 12.7-21.1 20.4-21.1zM292.8 430.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3 .3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7 .1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"]\n};\nvar faAndroid = {\n prefix: 'fab',\n iconName: 'android',\n icon: [576, 512, [], \"f17b\", \"M420.5 253.9a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-265.1 0a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm273.7-96.5l47.9-83c.8-1.1 1.3-2.4 1.5-3.8s.2-2.7-.1-4.1-.9-2.6-1.7-3.7-1.8-2-3-2.7-2.5-1.1-3.9-1.3-2.7 0-4 .4-2.5 1.1-3.6 1.9-1.9 2-2.5 3.2l-48.5 84.1c-38.8-17.4-80.8-26.4-123.3-26.4s-84.5 9-123.3 26.4L116.2 64.4c-.6-1.2-1.5-2.3-2.5-3.2s-2.3-1.5-3.6-1.9-2.7-.5-4-.4-2.7 .6-3.9 1.3-2.2 1.6-3 2.7-1.4 2.4-1.7 3.7-.3 2.7-.1 4.1 .8 2.6 1.5 3.8l47.9 83C64.5 202.2 8.2 285.5 0 384l576 0c-8.2-98.5-64.5-181.8-146.9-226.6z\"]\n};\nvar faMeetup = {\n prefix: 'fab',\n iconName: 'meetup',\n icon: [576, 512, [], \"f2e0\", \"M131.1 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3s11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3a11.8 11.8 0 1 0 -4.9-23 11.8 11.8 0 1 0 4.9 23zM66.5 226.3a22.2 22.2 0 1 0 -24.7 36.9 22.2 22.2 0 1 0 24.7-36.9zm272-170.9a22.1 22.1 0 1 0 -22.4-38 22.1 22.1 0 1 0 22.4 38zm-191.1 58a16.9 16.9 0 1 0 -18.8-28 16.9 16.9 0 1 0 18.8 28zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8a10.1 10.1 0 1 0 -19.8 4.3 10.1 10.1 0 1 0 19.8-4.3zm-80.3-73.7a18.8 18.8 0 1 0 20.7 31.3 18.8 18.8 0 1 0 -20.7-31.3zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1 .9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9 .6-107.4 53.4-114.9 25.1-66.2 107.6-97.6 163.6-54.2 67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3 .9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3a23.3 23.3 0 1 0 26.2 38.4 23.3 23.3 0 1 0 -26.2-38.4z\"]\n};\nvar faFonticonsFi = {\n prefix: 'fab',\n iconName: 'fonticons-fi',\n icon: [384, 512, [], \"f3a2\", \"M114.4 224l92.4 0-15.2 51.2-76.4 0 0 157.8c0 8-2.8 9.2 4.4 10l59.6 5.6 0 34.4-179.2 0 0-35.2 29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8l0-155.8c0-3.2-4-3.2-8-3.2l-30.4 0 0-51.2 38.4 0 0-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4L163.6 180c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6l0 32c0 3.2-4.8 6-.8 6zM384 483l-140.8 0 0-34.4 28-3.6c7.2-.8 10.4-2.4 10.4-10l0-148c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4 110 0 0 208c0 8-3.6 8.8 4 10l21.6 3.6 0 34.4zM354 135.8l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10 38 0 21.2-38.4 12.8 0 21.2 38.4 38 0 4.8 13.2-30 33.2z\"]\n};\nvar faPalfed = {\n prefix: 'fab',\n iconName: 'palfed',\n icon: [576, 512, [], \"f3d8\", \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8 .7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zM190.4 266.1c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4 .9 74.4 2.7 100l0 .2c.2 3.4 .6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4 .2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9 .2 2.5 .4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4l30 0 22.4 217.2s0 44.3 44.7 44.3l288.9 0s44.7-.4 44.7-44.3l22.4-217.2 30 0s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4l-30.1 0c-7.3-25.6-30.2-74.3-119.4-74.3l-28 0 0-19.1s-2.7-18.4-21.1-18.4l-85.8 0S224 31.9 224 50.3l0 19.1-28.1 0s-105 4.2-120.5 74.3l-29 0S8 142.5 8 181.1z\"]\n};\nvar faWpbeginner = {\n prefix: 'fab',\n iconName: 'wpbeginner',\n icon: [512, 512, [], \"f297\", \"M463.2 322.4c56.2 64.3 4.2 157.6-91.9 157.6-39.6 0-78.8-17.7-100.1-50-6.9 .4-22.7 .4-29.6 0-21.4 32.4-60.6 50-100.1 50-95.5 0-148.3-93-91.9-157.6-79.1-131.9 31.3-290.4 206.8-290.4 175.6 0 285.9 158.6 206.8 290.4zm-339.6-83l41.5 0 0-58.1-41.5 0 0 58.1zm217.2 86.1l0-23.8c-60.5 20.9-132.4 9.2-187.6-34l.2 24.9c51.1 46.4 131.7 57.9 187.3 32.9zM190 239.4l166.1 0 0-58.1-166.1 0 0 58.1z\"]\n};\nvar faDiaspora = {\n prefix: 'fab',\n iconName: 'diaspora',\n icon: [448, 512, [], \"f791\", \"M219.7 354.6c-1.4 0-88 119.9-88.7 119.9S44.4 414 44 413.3 130.6 287.5 130.6 285.8c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1 .6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3 .4-2 1-148.6 1.7-149.6 .8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3 .8 .9 31.9 102.2 31.5 102.6-.9 .9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5l0 0z\"]\n};\nvar faProductHunt = {\n prefix: 'fab',\n iconName: 'product-hunt',\n icon: [512, 512, [], \"f288\", \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2l-70.3 0 0-74.4 70.3 0c20.5 0 37.2 16.7 37.2 37.2zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm367.9-37.2c0-47.9-38.9-86.8-86.8-86.8l-119.9 0 0 248 49.6 0 0-74.4 70.3 0c47.9 0 86.8-38.9 86.8-86.8z\"]\n};\nvar faSquareUpwork = {\n prefix: 'fab',\n iconName: 'square-upwork',\n icon: [448, 512, [], \"e67c\", \"M56 32l336 0c30.9 0 56 25.1 56 56l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32zM270.9 274.2c6.6-52.9 25.9-69.5 51.4-69.5 25.3 0 44.9 20.2 44.9 49.7s-19.7 49.7-44.9 49.7c-27.9 0-46.3-21.5-51.4-29.9zm-26.7-41.8c-8.2-15.5-14.3-36.3-19.2-55.6l-62.9 0 0 78.1c0 28.4-12.9 49.4-38.2 49.4S84.1 283.4 84.1 255l.3-78.1-36.2 0 0 78.1c0 22.8 7.4 43.5 20.9 58.2 13.9 15.2 32.8 23.2 54.8 23.2 43.7 0 74.2-33.5 74.2-81.5l0-52.5c4.6 17.3 15.4 50.5 36.2 79.7l-19.3 110.5 36.8 0 12.8-78.4c4.2 3.5 8.7 6.6 13.4 9.4 12.3 7.8 26.4 12.2 40.9 12.6l3.4 0c45.1 0 80.9-34.9 80.9-81.9s-35.9-82.2-80.9-82.2c-45.4 0-70.9 29.7-78.1 60.1l0 .2z\"]\n};\nvar faCuttlefish = {\n prefix: 'fab',\n iconName: 'cuttlefish',\n icon: [448, 512, [], \"f38c\", \"M348 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8-45.3-49.6-110.5-80.7-183-80.7-137 0-248 111-248 248S115 504 252 504c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"]\n};\nvar faMedapps = {\n prefix: 'fab',\n iconName: 'medapps',\n icon: [320, 512, [], \"f3c6\", \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7 .2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32L92 416c-21.2 0-21.2 32 0 32l136 0zm-24 64c21.2 0 21.2-32 0-32l-88 0c-21.2 0-21.2 32 0 32l88 0zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5 0-85.6-71.8-155.2-160-155.2S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6-32.6-60.4-66.1-95.6-66.1-151.7 0-67.9 57-123.2 127-123.2S287 87.3 287 155.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"]\n};\nvar faPix = {\n prefix: 'fab',\n iconName: 'pix',\n icon: [512, 512, [], \"e43a\", \"M242.4 292.5c5.4-5.4 14.7-5.4 20.1 0l77 77c14.2 14.2 33.1 22 53.1 22l15.1 0-97.1 97.1c-30.3 29.5-79.5 29.5-109.8 0l-97.5-97.4 9.3 0c20 0 38.9-7.8 53.1-22l76.7-76.7zm20.1-73.6c-6.4 5.5-14.6 5.6-20.1 0l-76.7-76.7c-14.2-15.1-33.1-22-53.1-22l-9.3 0 97.4-97.4c30.4-30.3 79.6-30.3 109.9 0l97.2 97.1-15.2 0c-20 0-38.9 7.8-53.1 22l-77 77zM112.6 142.7c13.8 0 26.5 5.6 37.1 15.4l76.7 76.7c7.2 6.3 16.6 10.8 26.1 10.8 9.4 0 18.8-4.5 26-10.8l77-77c9.8-9.7 23.3-15.3 37.1-15.3l37.7 0 58.3 58.3c30.3 30.3 30.3 79.5 0 109.8l-58.3 58.3-37.7 0c-13.8 0-27.3-5.6-37.1-15.4l-77-77c-13.9-13.9-38.2-13.9-52.1 .1l-76.7 76.6c-10.6 9.8-23.3 15.4-37.1 15.4l-31.8 0-58-58c-30.3-30.3-30.3-79.5 0-109.8l58-58.1 31.8 0z\"]\n};\nvar faSquareTumblr = {\n prefix: 'fab',\n iconName: 'square-tumblr',\n icon: [448, 512, [\"tumblr-square\"], \"f174\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9l0-90-29.7 0c-3.4 0-6.2-2.8-6.2-6.2l0-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2 .5-6.9 4.1-10.2 10-10.2l44.3 0c3.4 0 6.2 2.8 6.2 6.2l0 72 51.9 0c3.4 0 6.2 2.8 6.2 6.2l0 51.1c0 3.4-2.8 6.2-6.2 6.2l-52.1 0 0 83.3c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1-8.5 9.1-31.2 19.8-60.9 19.8z\"]\n};\nvar faTumblrSquare = faSquareTumblr;\nvar faReact = {\n prefix: 'fab',\n iconName: 'react',\n icon: [512, 512, [], \"f41b\", \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1 .9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2 .6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9-53.4 18.5-91.7 47.7-91.7 77.9 0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zM136.9 187.2c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zM115.7 320.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6 .4 19.5 .6 29.5 .6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8 .9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 301.8a45.8 45.8 0 1 0 0-91.6 45.8 45.8 0 1 0 0 91.6z\"]\n};\nvar faHuggingFace = {\n prefix: 'fab',\n iconName: 'hugging-face',\n icon: [576, 512, [], \"e869\", \"M286.8 8.2c130 0 235.4 105.8 235.4 236.3 0 17.7-1.9 35-5.6 51.7-1.4 6.5-3.1 12.8-5.1 19.1 6.5-.6 13 .6 18.7 3.5 12.6 6.5 20.2 21.7 18.2 35.7-.7 4.9-2.4 9.4-4.8 13.5 5.2 4.2 9 10.1 10.8 17.1 1.4 5.5 2.9 17.1-4.8 28.9 5.8 9.2 6.6 20.6 2.2 30.6-6.2 14.1-21.7 25.3-51.7 37.3-32.5 13-67.1 21.9-102.3 21.9-32 0-55.9-8.9-71-26.4-13 2.2-26.3 3.4-40 3.4-12.7 0-25.2-1-37.3-2.9-15.1 17.2-38.8 25.9-70.6 25.9-35.1 0-70-9-102.4-21.9-30-12-45.5-23.1-51.7-37.3-4.4-9.9-3.6-21.4 2.2-30.6-7.7-11.9-6.3-23.4-4.8-28.9 1.8-7 5.7-12.9 10.8-17.1-2.5-4.1-4.1-8.6-4.8-13.5-1.5-10.4 2-20.7 9.7-29.2 6.1-6.7 15.1-10.3 24.2-10.2-1.9-6.1-3.6-12.4-5-18.7-3.7-16.7-5.7-34-5.7-51.8 0-130.5 105.4-236.3 235.4-236.3zM117.5 311c-13-8.2-22.1-3.6-19 13.4s57.2 58.2 52 67.2c-5.2 8.8-23.5-10.1-23.8-10.5 0 0-58.2-53.1-70.8-39.3-12.6 13.8 9.6 25.4 41.3 44.7s34.2 24.4 29.7 31.7-74.5-52-81.1-26.8c-6.5 25.1 71.4 32.4 66.7 49.8-4.8 17.4-54.9-32.8-65.2-13.3-10.3 19.6 70.8 42.6 71.4 42.7 26.2 6.8 92.6 21.3 115.9-12.9 16.7-24.6 15.6-43.1-7.4-66.1s-36.3-56.7-36.3-56.7c0-.2-5-19.5-16.3-17.8-11.4 1.8-19.7 31 4.1 48.9 23.8 17.9-4.7 30-13.9 13.3-9.2-16.8-34.2-59.9-47.1-68.2zm360.6 13.4c3.1-17-6.1-21.6-19-13.4-13 8.3-37.9 51.4-47.1 68.2s-37.7 4.6-13.9-13.3 15.4-47.1 4.1-48.9-16.3 17.8-16.3 17.8c-.1 .2-13.4 33.7-36.3 56.7-22.9 23-24.1 41.5-7.4 66.1 23.2 34.2 89.7 19.7 115.9 12.9 1.5-.4 81.6-23.3 71.4-42.7-10.3-19.5-60.4 30.6-65.3 13.3-4.8-17.3 73.2-24.6 66.7-49.8-6.6-25.1-76.6 34.1-81.1 26.8-4.5-7.3-2-12.4 29.7-31.7 31.7-19.3 54-30.9 41.3-44.7-12.7-13.8-70.8 39.3-70.8 39.3-.4 .4-18.6 19.3-23.8 10.5-5.3-8.9 48.9-50.1 52-67.2zM286.8 32.6c-116.6 0-211.1 94.9-211.1 211.9 0 17.1 2 33.8 5.8 49.7 0-.1 .1-.1 .2-.2 6.1-7.4 14.9-11.4 24.7-11.4 17.7 0 31.1 11.9 41.5 24.9 6.8-9.4 17.1-15 27.9-15 20.7 0 33.2 18.1 37.9 34.3 2.3 5.5 13.6 30.5 30.4 47.4 25.7 25.8 32.2 52.4 19.4 80.9 16 1.8 32.8 1.7 49.2-.3-12.5-28.4-6-54.9 19.6-80.6 16.9-16.9 28.1-41.9 30.5-47.4 4.7-16.2 17.2-34.3 37.9-34.3 10.9 0 21.2 5.6 27.9 15 10.4-13 23.8-24.9 41.5-24.9 8.7 0 16.6 3.1 22.5 8.9 5-22 6.4-45.8 4.1-68.7-10.8-106.9-100.7-190.3-210-190.3zm1.5 234.2c43.6 0 79-42 79-14.5 0 27.4-19.2 80.9-78.8 80.9-19.2 0-34.2-5.5-45.8-13.9-23.2-19.4-33.4-48.2-33.4-66.9 0-27.4 35.4 14.5 79 14.5zm-13.3 25c-8.2 2.4-15.5 6.8-21.5 12.6 22 12.8 50.4 12.9 71.7-1.3-5.5-4.9-12-8.7-19.1-11-5.1-1.6-10.4 15.8-16 15.8-5.2 0-10.3-17.6-15.1-16.2zM147.1 215.5a19.8 19.8 0 1 1 0-39.6 19.8 19.8 0 1 1 0 39.6zm282.4 0a19.8 19.8 0 1 1 0-39.6 19.8 19.8 0 1 1 0 39.6zm-244-55.4c7.9-14.9 26.3-20.5 41.1-12.6s20.4 26.4 12.6 41.2c-3.7 7-15.5-4.4-22.4-1.9-7.7 2.7-10.8 18.7-18.6 14.6-14.8-7.9-20.4-26.4-12.6-41.2zm164.4-12.6c14.8-7.9 33.2-2.3 41.1 12.6s2.2 33.3-12.6 41.2c-7.8 4.2-10.9-11.8-18.7-14.6-6.9-2.4-18.7 9-22.4 1.9-7.9-14.9-2.2-33.3 12.6-41.2z\"]\n};\nvar faJxl = {\n prefix: 'fab',\n iconName: 'jxl',\n icon: [448, 512, [], \"e67b\", \"M412.2 32L35.8 32C16 32 0 48 0 67.8L0 444.2C0 464 16 480 35.8 480l376.4 0c19.8 0 35.8-16 35.8-35.8l0-376.4C448 48 432 32 412.2 32zM378.6 333.7c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0zm0-113.9c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0zm0-113.9c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0z\"]\n};\nvar faSquareLinkedin = {\n prefix: 'fab',\n iconName: 'square-linkedin',\n icon: [448, 512, [], \"e7d0\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm5 170.2l66.5 0 0 213.8-66.5 0 0-213.8zm71.7-67.7a38.5 38.5 0 1 1 -77 0 38.5 38.5 0 1 1 77 0zM317.9 416l0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2-66.4 0z\"]\n};\nvar faCss = {\n prefix: 'fab',\n iconName: 'css',\n icon: [448, 512, [], \"e6a2\", \"M376.3 32L0 32 0 408.3c0 19 7.6 37.2 21 50.7s31.7 21 50.7 21l304.6 0c19 0 37.2-7.6 50.7-21s21-31.7 21-50.7l0-304.6c0-19-7.6-37.2-21-50.7s-31.7-21-50.7-21zM332.4 431.4c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.5-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-4-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L351.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.5 12.5c7.5 8.4 11.5 20.3 11.8 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4 27.4-12.3 35.7c-8.2 8.3-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-101 0c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.4-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-3.9-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L250.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.4 12.5c7.6 8.4 11.5 20.3 11.9 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4.1 27.4-12.3 35.7s-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-105.6 1.1c-8.4-7.7-12.5-19.2-12.5-34.5l0-75.4c0-15.2 4.4-26.7 13.2-34.6c8.9-7.8 20.7-11.8 35.2-11.8c14.1 0 25.2 4 33.4 12c8.3 8 12.5 20 12.5 35.9l0 6-33.1 0 0-5.8c0-6.1-1.3-10.7-4-13.6c-1.1-1.5-2.6-2.7-4.3-3.5s-3.5-1.2-5.4-1.1c-5.4 0-9.2 1.8-11.4 5.6c-2.3 5.2-3.3 10.8-3 16.4l0 65.5c0 13.7 4.8 20.6 14.4 20.8c4.5 0 7.9-1.6 10.2-4.8c2.5-4.1 3.7-8.8 3.5-13.6l0-4.9 33.1 0 0 5.1c0 10.6-2.1 19.5-6.2 26.6c-4 6.9-9.9 12.5-17.1 16c-7.7 3.7-16.1 5.5-24.6 5.3c-14.2 0-25.5-3.9-33.8-11.6z\"]\n};\nvar faHashnode = {\n prefix: 'fab',\n iconName: 'hashnode',\n icon: [512, 512, [], \"e499\", \"M35.7 171.1c-46.9 46-46.9 122.9 0 169.8L171.6 476.8c46 46.9 122.9 46.9 169.8 0L477.3 340.9c46.9-46.9 46.9-123.8 0-169.8L341.4 35.2c-46.9-46.9-123.8-46.9-169.8 0L35.7 171.1zM196 196.5a84.5 84.5 0 1 1 120 119 84.5 84.5 0 1 1 -120-119z\"]\n};\nvar faRedditAlien = {\n prefix: 'fab',\n iconName: 'reddit-alien',\n icon: [512, 512, [], \"f281\", \"M373 138.6c-25.2 0-46.3-17.5-51.9-41-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3 12.6-9.7 28.4-15.5 45.5-15.5 41.3 0 74.7 33.4 74.7 74.7 0 29.8-17.4 55.5-42.7 67.5-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4c-25.4-11.9-43-37.7-43-67.7 0-41.3 33.4-74.7 74.7-74.7 17.2 0 33 5.8 45.7 15.6 34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5 4.9-24.2 26.3-42.4 52.1-42.4 29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1 36.6-9.8 37.8-36.9-14.7-49.1-35.7-49.1l.1 0zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1 16.9 36.9 37.8 36.9 39.3-11 38-38.1l.1 0zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1 12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z\"]\n};\nvar faTiktok = {\n prefix: 'fab',\n iconName: 'tiktok',\n icon: [448, 512, [], \"e07b\", \"M448.5 209.9c-44 .1-87-13.6-122.8-39.2l0 178.7c0 33.1-10.1 65.4-29 92.6s-45.6 48-76.6 59.6-64.8 13.5-96.9 5.3-60.9-25.9-82.7-50.8-35.3-56-39-88.9 2.9-66.1 18.6-95.2 40-52.7 69.6-67.7 62.9-20.5 95.7-16l0 89.9c-15-4.7-31.1-4.6-46 .4s-27.9 14.6-37 27.3-14 28.1-13.9 43.9 5.2 31 14.5 43.7 22.4 22.1 37.4 26.9 31.1 4.8 46-.1 28-14.4 37.2-27.1 14.2-28.1 14.2-43.8l0-349.4 88 0c-.1 7.4 .6 14.9 1.9 22.2 3.1 16.3 9.4 31.9 18.7 45.7s21.3 25.6 35.2 34.6c19.9 13.1 43.2 20.1 67 20.1l0 87.4z\"]\n};\nvar faWordpress = {\n prefix: 'fab',\n iconName: 'wordpress',\n icon: [512, 512, [], \"f19a\", \"M61.7 169.4l101.5 278c-71-34.4-119.9-107.2-119.9-191.4 0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8 .9 0 1.8 .1 2.8 .2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7 .3 13.7 .3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4 46.6-139.6-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zM259.7 274.6L195.9 460.1c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9L259.7 274.6zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9c63.3-36.9 105.8-105.4 105.8-183.9 0-37-9.4-71.8-26-102.1zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm484.6 0a236.6 236.6 0 1 0 -473.2 0 236.6 236.6 0 1 0 473.2 0z\"]\n};\nvar faIdeal = {\n prefix: 'fab',\n iconName: 'ideal',\n icon: [512, 512, [], \"e013\", \"M93.8 165.5a49.1 49.1 0 1 0 0 98.1 49.1 49.1 0 1 0 0-98.1zM54.3 425.8l78.9 0 0-140.5-78.9 0 0 140.5zM205.8 214.2c0-20-10-22.5-18.7-22.5l-14 0 0 45.8 14 0c9.7 0 18.7-2.8 18.7-23.3zm201.7 46l0-91.3 22.8 0 0 68.6 33.7 0C454.6 113.1 356.8 86.2 267.8 86.2l-94.8 0 0 82.8 14 0c25.6 0 41.5 17.4 41.5 45.3 0 28.8-15.5 46-41.5 46l-14 0 0 165.6 94.8 0c144.6 0 194.9-67.2 196.7-165.6l-57.1 0zm-109.8 0l-56.2 0 0-91.2 54.4 0 0 22.7-31.7 0 0 10.6 30 0 0 22.7-30 0 0 12.5 33.5 0 0 22.7zm74.7 0l-5.2-17.7-29.7 0-5.2 17.7-23.7 0 27.5-91.3 32.3 0 27.5 91.3-23.7 0zM267.8 32L.1 32 .1 480 267.8 480c161.8 0 251-79.7 251-224.5 0-83.5-32.6-223.5-251-223.5zm0 426.9l-246.6 0 0-405.9 246.6 0c142.1 0 229.9 64.6 229.9 202.4 0 134.1-81 203.4-229.9 203.4zm83.9-264.9l-7.5 25.8 16.4 0-7.5-25.8-1.4 0z\"]\n};\nvar faPiedPiperPp = {\n prefix: 'fab',\n iconName: 'pied-piper-pp',\n icon: [448, 512, [], \"f1a7\", \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7l0-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2l0 68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6S226 95.9 185 95.9c-12 0-24.1 3.2-34.6 8.8l-45.7 0 0 206.3 51.8-10.1 0-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4 .2-9.6 .7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8l0 156.3 51.8-10.1 0-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"]\n};\nvar faUssunnah = {\n prefix: 'fab',\n iconName: 'ussunnah',\n icon: [512, 512, [], \"f407\", \"M496.9 268.1c0 63.9-25.4 125.2-70.6 170.3S319.9 509 256 509 130.8 483.5 85.7 438.4 15.1 331.9 15.1 268c0-63.9 25.4-125.2 70.6-170.4S192.2 27.1 256.1 27.1 381.3 52.4 426.5 97.6 497 204.1 497 268l-.1 .1zM39.5 268c-.6 28.8 4.5 57.5 15.1 84.3s26.4 51.2 46.6 71.8 44.2 37 70.8 48.1 55.1 16.9 83.9 16.9 57.4-5.8 83.9-16.9 50.6-27.5 70.8-48.1 36-45 46.6-71.8 15.7-55.5 15.1-84.3c.6-28.8-4.5-57.5-15.1-84.3s-26.4-51.2-46.6-71.8-44.2-37-70.8-48.1-55.1-16.9-83.9-16.9-57.4 5.8-83.9 16.9-50.6 27.5-70.8 48.1-36 45-46.6 71.8-15.7 55.5-15.1 84.3zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9-5.5-4.3-8.2-12.3-8.2-23.8l0-96.5c0-6.5-5.2-20.2-15.7-41.2 7 0 17-9.1 30-27.2l0 147.8c0 11 2.4 19.4 7 25.3 3.7 4.7 10.1 8.9 19 12.6 1.2 .4 2.6 .9 4.1 1.4 2.9 .9 6.3 2.1 10.3 3.5-1.8 2.7-8.3 4-19.9 4l.1 0zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4l-89.8 0c3.3-5.3 4.9-8.8 4.9-10.8s-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4 0-7.4 2.1-13.9 6.3-19.3l20-25.6-7.1-17.7 16.1-19.8 6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7 0 4.2 2.8 13.3 8.3 27.3l16.2 40.7 17.7 0c2.8 .4 7.7 5 14.6 13.9 1.8 2.4 4.3 5.8 7.7 10.2 1.4 1.9 2.9 3.9 4.6 6.1 1.3-2.3 2-4.6 2-7.1 0-2-1.3-6.6-4-13.4L178 304.1c-4-10.6-6.1-17.7-6.1-21.3 0-6.3 1.9-12.3 5.8-17.9 .5-.6 1-1.3 1.5-1.9 4.4-5.6 8.8-11.1 13.3-16.5-1.1 4.6-1.7 8.7-1.7 12 0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3l25.9 0-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32 13.4 0-6.1-15.8c-1.5-3.9-4-7-7.7-9.3l15.7-20.1 17.3 45.2 13.4 0-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20 22.4 58.7 26.2 0c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3l0-93.5c0-6.5-4.5-20.3-13.7-41.2 5.4 0 14.1-9.1 26.2-27.2l0 163.5c0 7.2 .6 12 1.7 14.6 1.6 3.4 5.3 6.2 11.1 8.2-3.9 5.6-8.7 8.5-14.5 8.5l-154.8 0-.1-.2zm-98-44c-2.7-6.7-4-11.7-4-15-.6 1.2-2.4 3.7-5.4 7.6-1.4 1.9-2.2 3.7-2.2 5.3 0 2.6 .8 5.7 2.2 9.3l5.6 13.9c5 0 9 0 11.9-.1l-8.2-20.9 .1-.1zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0zm-27.6 0c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0zm87 27.5c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0z\"]\n};\nvar faFortAwesomeAlt = {\n prefix: 'fab',\n iconName: 'fort-awesome-alt',\n icon: [512, 512, [], \"f3a3\", \"M208 237.4l-22.2 0c-2.1 0-3.7 1.6-3.7 3.7l0 51.7c0 2.1 1.6 3.7 3.7 3.7l22.2 0c2.1 0 3.7-1.6 3.7-3.7l0-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0l-22.2 0c-2.1 0-3.7 1.6-3.7 3.7l0 51.7c0 2.1 1.6 3.7 3.7 3.7l22.2 0c2.1 0 3.7-1.6 3.7-3.7l0-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5-27.6-19.6-59.3-33.7-93.6-40.7-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5-28.9 40.6-45.8 90.1-45.8 143.6 0 2 .1 4 .1 6 .1 .7 .1 1.3 .1 2 .1 1.3 .1 2.7 .2 4 0 .8 .1 1.5 .1 2.3 0 1.3 .1 2.5 .2 3.7 .1 .8 .1 1.6 .2 2.4 .1 1.1 .2 2.3 .3 3.5 0 .8 .1 1.6 .2 2.4 .1 1.2 .3 2.4 .4 3.6 .1 .8 .2 1.5 .3 2.3 .1 1.3 .3 2.6 .5 3.9 .1 .6 .2 1.3 .3 1.9l.9 5.7c.1 .6 .2 1.1 .3 1.7 .3 1.3 .5 2.7 .8 4 .2 .8 .3 1.6 .5 2.4 .2 1 .5 2.1 .7 3.2 .2 .9 .4 1.7 .6 2.6 .2 1 .4 2 .7 3 .2 .9 .5 1.8 .7 2.7 .3 1 .5 1.9 .8 2.9 .3 .9 .5 1.8 .8 2.7 .2 .9 .5 1.9 .8 2.8s.5 1.8 .8 2.7c.3 1 .6 1.9 .9 2.8 .6 1.6 1.1 3.3 1.7 4.9 .4 1 .7 1.9 1 2.8 .3 1 .7 2 1.1 3 .3 .8 .6 1.5 .9 2.3l1.2 3c.3 .7 .6 1.5 .9 2.2 .4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3 .7 .6 1.3 .9 2 .5 1 1 2.1 1.5 3.1 .2 .6 .5 1.1 .8 1.7 .6 1.1 1.1 2.2 1.7 3.3 .1 .2 .2 .3 .3 .5 2.2 4.1 4.4 8.2 6.8 12.2 .2 .4 .5 .8 .7 1.2 .7 1.1 1.3 2.2 2 3.3 .3 .5 .6 .9 .9 1.4 .6 1.1 1.3 2.1 2 3.2 .3 .5 .6 .9 .9 1.4 .7 1.1 1.4 2.1 2.1 3.2 .2 .4 .5 .8 .8 1.2 .7 1.1 1.5 2.2 2.3 3.3 .2 .2 .3 .5 .5 .7 37.5 51.7 94.4 88.5 160 99.4 .9 .1 1.7 .3 2.6 .4 1 .2 2.1 .4 3.1 .5s1.9 .3 2.8 .4c1 .2 2 .3 3 .4 .9 .1 1.9 .2 2.9 .3s1.9 .2 2.9 .3 2.1 .2 3.1 .3c.9 .1 1.8 .1 2.7 .2 1.1 .1 2.3 .1 3.4 .2 .8 0 1.7 .1 2.5 .1 1.3 0 2.6 .1 3.9 .1 .7 .1 1.4 .1 2.1 .1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1 .8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2 .9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5 .9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4 .2-.2 .3-.5 .5-.7 .8-1.1 1.5-2.2 2.3-3.3 .2-.4 .5-.8 .8-1.2 .7-1.1 1.4-2.1 2.1-3.2 .3-.5 .6-.9 .9-1.4 .6-1.1 1.3-2.1 2-3.2 .3-.5 .6-.9 .9-1.4 .7-1.1 1.3-2.2 2-3.3 .2-.4 .5-.8 .7-1.2 2.4-4 4.6-8.1 6.8-12.2 .1-.2 .2-.3 .3-.5 .6-1.1 1.1-2.2 1.7-3.3 .2-.6 .5-1.1 .8-1.7 .5-1 1-2.1 1.5-3.1 .3-.7 .6-1.3 .9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7 .6-1.5 .9-2.2l1.2-3c.3-.8 .6-1.5 .9-2.3 .4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9 .3-1 .6-1.9 .9-2.8s.5-1.8 .8-2.7c.2-.9 .5-1.9 .8-2.8s.6-1.8 .8-2.7c.3-1 .5-1.9 .8-2.9 .2-.9 .5-1.8 .7-2.7 .2-1 .5-2 .7-3 .2-.9 .4-1.7 .6-2.6 .2-1 .5-2.1 .7-3.2 .2-.8 .3-1.6 .5-2.4 .3-1.3 .6-2.7 .8-4 .1-.6 .2-1.1 .3-1.7l.9-5.7c.1-.6 .2-1.3 .3-1.9 .1-1.3 .3-2.6 .5-3.9 .1-.8 .2-1.5 .3-2.3 .1-1.2 .3-2.4 .4-3.6 0-.8 .1-1.6 .2-2.4 .1-1.1 .2-2.3 .3-3.5 .1-.8 .1-1.6 .2-2.4 .1 1.7 .1 .5 .2-.7 0-.8 .1-1.5 .1-2.3 .1-1.3 .2-2.7 .2-4 .1-.7 .1-1.3 .1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2l0-75.8c0-58.6-88.6-58.6-88.6 0l0 75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9l0-71.3c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 25.8 29.6 0 0-144c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-4.8 6.5-3.7 9.5-3.7l0-90.2c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5l0 3.9c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7l0 48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8l0 30.7c3 0 9.5-1.1 9.5 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 144 29.5 0 0-25.8c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 71.3z\"]\n};\nvar faBuromobelexperte = {\n prefix: 'fab',\n iconName: 'buromobelexperte',\n icon: [448, 512, [], \"f37f\", \"M0 32l0 128 128 0 0-128-128 0zM120 152l-112 0 0-112 112 0 0 112zM160 32l0 128 128 0 0-128-128 0zM280 152l-112 0 0-112 112 0 0 112zM320 32l0 128 128 0 0-128-128 0zM440 152l-112 0 0-112 112 0 0 112zM0 192l0 128 128 0 0-128-128 0zM120 312l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM280 312l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM440 312l-112 0 0-112 112 0 0 112zM0 352l0 128 128 0 0-128-128 0zM120 472l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM280 472l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0z\"]\n};\nvar faBilibili = {\n prefix: 'fab',\n iconName: 'bilibili',\n icon: [512, 512, [], \"e3d9\", \"M488.6 104.1c16.7 18.1 24.4 39.7 23.3 65.7l0 202.4c-.4 26.4-9.2 48.1-26.5 65.1-17.2 17-39.1 25.9-65.5 26.7L92 464c-26.4-.8-48.2-9.8-65.3-27.2-17.1-17.4-26-40.3-26.7-68.6L0 169.8c.8-26 9.7-47.6 26.7-65.7 17.1-16.3 38.8-25.3 65.3-26.1l29.4 0-25.4-25.8c-5.7-5.7-8.6-13-8.6-21.8s2.9-16.1 8.6-21.8 13-8.6 21.9-8.6 16.1 2.9 21.9 8.6l73.3 69.4 88 0 74.5-69.4C381.7 2.9 389.2 0 398 0s16.1 2.9 21.9 8.6c5.7 5.7 8.6 13 8.6 21.8s-2.9 16.1-8.6 21.8L394.6 78 423.9 78c26.4 .8 48 9.8 64.7 26.1zm-38.8 69.7c-.4-9.6-3.7-17.4-10.7-23.5-5.2-6.1-14-9.4-22.7-9.8l-320.4 0c-9.6 .4-17.4 3.7-23.6 9.8-6.1 6.1-9.4 13.9-9.8 23.5l0 194.4c0 9.2 3.3 17 9.8 23.5s14.4 9.8 23.6 9.8l320.4 0c9.2 0 17-3.3 23.3-9.8s9.7-14.3 10.1-23.5l0-194.4zM185.5 216.5c6.3 6.3 9.7 14.1 10.1 23.2l0 33.3c-.4 9.2-3.7 16.9-9.8 23.2-6.2 6.3-14 9.5-23.6 9.5s-17.5-3.2-23.6-9.5-9.4-14-9.8-23.2l0-33.3c.4-9.1 3.8-16.9 10.1-23.2s13.2-9.6 23.3-10c9.2 .4 17 3.7 23.3 10zm191.5 0c6.3 6.3 9.7 14.1 10.1 23.2l0 33.3c-.4 9.2-3.7 16.9-9.8 23.2s-14 9.5-23.6 9.5-17.4-3.2-23.6-9.5c-7-6.3-9.4-14-9.7-23.2l0-33.3c.3-9.1 3.7-16.9 10-23.2s14.1-9.6 23.3-10c9.2 .4 17 3.7 23.3 10z\"]\n};\nvar faNeos = {\n prefix: 'fab',\n iconName: 'neos',\n icon: [448, 512, [], \"f612\", \"M383.8 512l-95.1 0-108.2-154.5 0 91.1-86.4 63.4-97.7 0 0-482.2 40.5-29.8 108 0 123.7 176.1 0-112.7 86.4-63.4 97.7 0 0 461.5-68.9 50.5zM7.2 35.3l0 460.7 72-52.9 0-249.1 215.5 307.6 84.8 0 52.4-38.2-78.3 0-316.1-450.5-30.2 22.3zM89.7 501.9l80-58.8 0-101-79.8-114.4 0 220.9-72.6 53.3 72.3 0 0 0zM49 10.8l310.6 442.6 82.4 0 0-442.6-79.8 0 0 317.6-222.9-317.6-90.3 0zM279.4 191.6l72 102.8 0-278.5-72 53 0 122.7z\"]\n};\nvar faDev = {\n prefix: 'fab',\n iconName: 'dev',\n icon: [448, 512, [], \"f6cc\", \"M120.1 208.3c-3.9-2.9-7.8-4.3-11.6-4.3l-17.4 0 0 104.5 17.4 0c3.9 0 7.8-1.4 11.6-4.3s5.8-7.3 5.8-13.1l0-69.7c0-5.8-2-10.2-5.8-13.1zM404.1 32L43.9 32C19.7 32 .1 51.6 0 75.8L0 436.2C.1 460.4 19.7 480 43.9 480l360.2 0c24.2 0 43.8-19.6 43.9-43.8l0-360.4C447.9 51.6 428.3 32 404.1 32zM154.2 291.2c0 18.8-11.6 47.3-48.4 47.3l-46.4 0 0-165.5 47.4 0c35.4 0 47.4 28.5 47.4 47.3l0 70.9zm100.7-88.7l-53.3 0 0 38.4 32.6 0 0 29.6-32.6 0 0 38.4 53.3 0 0 29.6-62.2 0c-11.2 .3-20.4-8.5-20.7-19.7l0-125.1c-.3-11.1 8.6-20.4 19.7-20.7l63.2 0 0 29.5zM358.5 317.8c-13.2 30.7-36.8 24.6-47.4 0l-38.5-144.8 32.6 0 29.7 113.7 29.6-113.7 32.6 0-38.5 144.8z\"]\n};\nvar faHotjar = {\n prefix: 'fab',\n iconName: 'hotjar',\n icon: [512, 512, [], \"f3b1\", \"M361.8 0c0 131.6-80.7 176.8-140.2 209.4-.6 .3-1.1 .6-1.6 .9-53.8 30.2-88.7 49.8-89.6 122l-98.1 0c0-131.5 80.7-176.7 140.2-209.3 54.8-29.8 90.3-50 90.3-123l99 0zM301.3 302.6c54.8-29.8 90.3-50 90.3-123l98 0c0 131.6-80.7 176.7-140.2 209.4-54.8 29.8-90.3 50-90.3 123l-98 0c0-131.6 80.7-176.8 140.2-209.4z\"]\n};\nvar faDochub = {\n prefix: 'fab',\n iconName: 'dochub',\n icon: [448, 512, [], \"f394\", \"M413.9 160L272 160 272 19.6 413.9 160zM320 192l0 130c0 66.8-36.5 100.1-113.3 100.1l-94.7 0 0-337.3 94.7 0c12 0 23.1 .8 33.1 2.5l0-84C228.9 1.1 217.4 0 205.2 0L16 0 16 512 205.2 512C345.7 512 416 447.4 416 318.1l0-126.1-96 0z\"]\n};\nvar faVimeo = {\n prefix: 'fab',\n iconName: 'vimeo',\n icon: [448, 512, [], \"f40a\", \"M403.2 32L44.8 32C20.1 32 0 52.1 0 76.8L0 435.2C0 459.9 20.1 480 44.8 480l358.4 0c24.7 0 44.8-20.1 44.8-44.8l0-358.4C448 52.1 427.9 32 403.2 32zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2L53.4 191.3c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3 .9 49 22.5 47.1 64.7z\"]\n};\nvar faMaxcdn = {\n prefix: 'fab',\n iconName: 'maxcdn',\n icon: [512, 512, [], \"f136\", \"M461.1 442.7l-97.4 0 51.9-242.7c2.3-10.2 .9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6l-49.3 0-59.5 278-97.4 0 59.5-278-83.4 0-59.5 278-97.4 0 59.5-278-44.6-95.4 372.1 0c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9L461.1 442.7z\"]\n};\nvar faSquareFontAwesomeStroke = {\n prefix: 'fab',\n iconName: 'square-font-awesome-stroke',\n icon: [448, 512, [\"font-awesome-alt\"], \"f35c\", \"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm154 58c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2 0 1.8-.4 3.7-1.1 5.4L312 264 342.9 333.4c.8 1.7 1.1 3.5 1.1 5.4 0 7.3-5.9 13.2-13.2 13.2l-186.8 0 0 32-32 0 0-209.5c-6.1-4.8-10-12.2-10-20.5 0-14.4 11.6-26 26-26s26 11.6 26 26z\"]\n};\nvar faFontAwesomeAlt = faSquareFontAwesomeStroke;\nvar faSpeakap = {\n prefix: 'fab',\n iconName: 'speakap',\n icon: [448, 512, [], \"f3f3\", \"M64.4 391.8C-15 303.6-7.6 167.4 81.1 87.6s224.8-73 304.2 15.2 72 224.4-16.6 304.1c-18.7 16.9 64 43.1 42 52.3-82.1 34.2-253.9 35-346.2-67.5l0 0zM277.7 180.2l38.5-40.9c-9.6-8.9-32-26.8-76.2-27.6-52.3-.9-95.9 28.3-96.8 80-.2 11.3 .3 36.7 29.4 54.8 34.5 21.4 86.5 21.5 86 52.3-.4 21.3-26.4 25.8-38.6 25.6-3 0-30.2-.5-47.6-24.6l-40 42.6c28.2 27 59 32.6 83.5 33 10.2 .2 96.4 .3 97.8-81 .3-15.8-2.1-39.7-28.9-56.6-34.4-21.6-85-19.4-84.4-49.7 .4-23.3 31-25.4 37.5-25.3 .4 0 26.6 .3 39.6 17.4l0 0z\"]\n};\nvar faFantasyFlightGames = {\n prefix: 'fab',\n iconName: 'fantasy-flight-games',\n icon: [512, 512, [], \"f6dc\", \"M256 32.9L32.9 256 256 479.1 479.1 256 256 32.9zM88.3 255.8c2-2 11.9-12.3 96.5-97.5 41.4-41.8 86.2-43.8 119.8-18.7 24.6 18.4 62.1 58.9 62.1 59 .7 .7 1.1 2.9 .6 3.4-11.3 11.8-22.7 23.5-33.5 34.7-34.2-32.3-40.5-38.2-48.5-44-17.8-12.7-41.4-10.1-57 5.1-2.2 2.1-1.8 3.4 .1 5.4 2.9 2.9 28.1 28.3 35.1 35.8-11.9 11.6-23.7 23-35.7 34.7-12-12.5-24.5-25.5-36.5-38.1-21.4 21.1-41.7 41.1-61.8 61L88.3 255.8zM323.2 357.4c-35.5 35.4-78.1 38.1-107 20.5-22.1-13.5-39.4-32.1-72.9-66.8 12-12.4 23.8-24.4 35.4-36.3 33 31.9 37.1 36 44.7 42.1 18.5 14.7 42.5 13.7 59.3-1.8 3.7-3.4 3.7-3.6 .1-7.2-10.6-10.7-21.2-21.4-31.8-32.2-1.3-1.3-3-2.5-.8-4.7 10.8-10.7 21.5-21.5 32.2-32.3 .3-.3 .6-.4 1.9-1.1 12.4 12.9 24.9 25.9 37.2 38.8 21-20.7 41.2-40.7 61.3-60.4 13.7 13.4 27.1 26.6 40.9 40-20.2 20.9-81.7 82.7-100.5 101.5zM256 0L0 256 256 512 512 256 256 0zM16 256L256 16 496 256 256 496 16 256z\"]\n};\nvar faLinux = {\n prefix: 'fab',\n iconName: 'linux',\n icon: [448, 512, [], \"f17c\", \"M220.9 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5 .2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4 .2-.8 .7-.6 1.1 .3 1.3 2.3 1.1 3.4 1.7zM199 125c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6 .2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5 .1-1.3 .6-3.4 1.5-3.2 2.9 .1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72 .5-45.9 5.1-131.2-75.8-131.3-102.4-.2-76.8 103.4-77.9 135.2-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9 .6 7.9 1.2 11.8 1.2 8.1 2.5 15.7 .8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1 .6 2.3 1.4 4.6 2.5 6.7l0 .1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3 .4-8.2-4.4-17.3-15.5-29.7zM223.8 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183.1 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4 .7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4l0-.2c2.4-7.6 .6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7 .8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4 .6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1 .8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7 .4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6 .8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1 .3-.2 .7-.3 1-.5 .8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.4 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"]\n};\nvar faCottonBureau = {\n prefix: 'fab',\n iconName: 'cotton-bureau',\n icon: [512, 512, [], \"f89e\", \"M474.3 330.4C450.6 422.3 380.1 475 272.4 478.8l0-49.2c0-48 26.4-74.4 74.4-74.4 62 0 99.2-37.2 99.2-99.2 0-61.4-36.5-98.3-97.4-99.1-33-69.3-146.5-64.7-177.2 0-60.9 .8-97.4 37.7-97.4 99.1 0 62.1 37.3 99.4 99.4 99.4 48 0 74.6 26.2 74.6 74.4l0 49.2c-134.4-5-211.1-85.1-211.1-223 0-141.8 81.4-223.2 223.2-223.2 114.8 0 189.8 53.2 214.7 148.8l25.3 0C473.9 71.5 388.2 8 259.8 8 105 8 12 101.2 12 255.8 12 411.1 105.2 504.3 259.8 504 388.1 504 473.7 440.2 499.5 330.4l-25.2 0zM357 182.3c41.4 3.4 64.2 29 64.2 73.7 0 48-26.4 74.4-74.4 74.4-28.6 0-49.3-9.6-61.6-27.3 83.1-16.5 75.6-99.7 71.8-120.7zm-81.7 97.4c-2.5-10.3-16.3-87 56.2-97 2.3 10.1 16.5 87.1-56.3 97l0 0zM260 132c28.6 0 49 9.7 61.4 27.6-28.4 5.5-49.4 20.6-61.6 43.4-12.2-22.9-33.2-38-61.6-43.4 12.4-17.7 33.3-27.4 61.6-27.4l.2-.3zm-71.5 50.7c73.2 10.6 58.9 86.8 56.5 97-72.4-9.8-59-87-56.2-97l-.2 0zM173.2 330.4c-48 0-74.4-26.4-74.4-74.4 0-44.4 22.9-70 64.2-73.7-6.8 37.2-1.4 106.5 71.6 120.7-12.1 17.6-32.8 27.3-61.1 27.3l-.3 0zm53.2 12.4c14.3-7.6 26-19.3 33.6-33.5 7.8 14.5 19.3 25.5 33.8 33.5-14.4 7.6-26.1 19.4-33.6 33.8-8-14.5-19.1-26.2-33.6-33.8l-.3 0z\"]\n};\nvar faGoogleWallet = {\n prefix: 'fab',\n iconName: 'google-wallet',\n icon: [448, 512, [], \"f1ee\", \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200l-93.2 0c-6.5 0-10.5 7.5-6.5 12.7 42.2 54.3 71.7 117.8 91.7 187.3l103.5 0c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368L409 480c-12-138-68.4-265-143.2-368l-108.7 0zM408.9 43.5c-1.8-6.8-8.2-11.5-15.2-11.5l-88.3 0c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"]\n};\nvar faFoursquare = {\n prefix: 'fab',\n iconName: 'foursquare',\n icon: [384, 512, [], \"f180\", \"M331.1 3L57.9 3C20.4 3 8 31.3 8 49.1L8 482.9c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1 128.9-149.4 131.1-151.9 131.1-151.9 3.1-3.4 3.4-3.1 6.8-3.1l83.4 0c35.1 0 40.6-25.2 44.3-39.7l48.6-243C381.8 25.8 371.1 3 331.1 3zM314.8 76.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2l-106.4 0c-12 0-20.6 8.3-20.6 20.3l0 13c0 12 8.6 20.6 20.6 20.6l90.4 0c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5l-73.5 0c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9 .9-1.8 .6-1.8-.3l0-338.8c0-7.7 6.8-16.6 16.6-16.6l219 0c8.2 0 15.6 7.7 13.5 17.5z\"]\n};\nvar faShirtsinbulk = {\n prefix: 'fab',\n iconName: 'shirtsinbulk',\n icon: [448, 512, [], \"f214\", \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4-4.4 9.9zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4-4.4 9.9zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9-30.6 13.4zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4-4.4 9.6zM60.4 392.8l30.6 13.4 4.4-9.6-30.6-13.7-4.4 9.9zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9-30.6 13.4zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6-30.6 13.4zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9-30.6 13.7zM170 46.6l-33.5 0 0 10.5 33.5 0 0-10.5zm-47.2 0l-33.6 0 0 10.5 33.5 0 .1-10.5zm-47.3 0l-33.2 0 0 10.5 33.3 0-.1-10.5zm141.5 0l-33.2 0 0 10.5 33.2 0 0-10.5zm94.5 0l-33.5 0 0 10.5 33.5 0 0-10.5zm47.3 0l-33.5 0 0 10.5 33.5 0 0-10.5zm-94.6 0l-33.2 0 0 10.5 33.2 0 0-10.5zm141.5 0l-33.3 0 0 10.5 33.3 0 0-10.5zM52.8 351.1l-10.8 0 0 33.5 10.8 0 0-33.5zm70-215.9l-33.6 0 0 10.5 33.5 0 .1-10.5zm-70 10.6l22.8 0 0-10.5-33.6 0 0 33.5 10.8 0 0-23zM221.7 374.4a91.3 91.3 0 1 0 0-182.6 91.3 91.3 0 1 0 0 182.6zM173.5 263.3c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9-.9 0c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4 .9 0c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4l-10.8 0 0 33.6 10.8 0 0-33.6zM395.2 384.6l10.8 0 0-33.5-10.8 0 0 33.5zM52.8 307.9l-10.8 0 0 33.5 10.8 0 0-33.5zM0 3.7l0 406 221.7 98.6 226.3-98.6 0-406-448 0zM418.8 390.8l-196.8 85.7-192.8-85.7 0-270.1 389.7 0 0 270.1-.1 0zm0-299.3l-389.6 0 0-58.6 389.7 0 0 58.6-.1 0zM52.8 221.6l-10.8 0 0 33.5 10.8 0 0-33.5zm0 43.2l-10.8 0 0 33.5 10.8 0 0-33.5zM170 135.2l-33.5 0 0 10.5 33.5 0 0-10.5zM395.2 298.3l10.8 0 0-33.5-10.8 0 0 33.5zm0-43.2l10.8 0 0-33.5-10.8 0 0 33.5zM217 135.2l-33.2 0 0 10.5 33.2 0 0-10.5zM395.2 212l10.8 0 0-33.5-10.8 0 0 33.5zm0 129.5l10.8 0 0-33.5-10.8 0 0 33.5zm-131-206.3l-33.2 0 0 10.5 33.2 0 0-10.5zm47.3 0l-33.5 0 0 10.5 33.5 0 0-10.5zm83.7 33.6l10.8 0 0-33.5-33.5 0 0 10.5 22.8 0-.1 23zm-36.4-33.6l-33.5 0 0 10.5 33.5 0 0-10.5z\"]\n};\nvar faMintbit = {\n prefix: 'fab',\n iconName: 'mintbit',\n icon: [512, 512, [], \"e62f\", \"M73.2 512l0-73.1 292.5 0 0-73.2 73.2 0 0-146.3 73.1 0 0-219.4-219.4 0 0 73.1-146.3 0 0 73.2-73.1 0 0 292.6-73.2 0 0 73.1 73.2 0zm73.1-219.4l73.2 0 0 73.1-73.2 0 0-73.1zm73.2-73.1l73.1 0 0 73.1-73.2 0 0-73.2 .1 .1zm73.1 0l0-73.2 73.2 0 0 73.1-73.2 0 0 .1zM365.7 73.1l73.2 0 0 73.2-73.2 0 0-73.2z\"]\n};\nvar faZulip = {\n prefix: 'fab',\n iconName: 'zulip',\n icon: [448, 512, [], \"e853\", \"M424 99c0 22.6-10.1 42.6-25.5 54.8L249.3 287.7c-2.8 2.4-6.4-1.5-4.4-4.7l54.7-110.1c1.5-3.1-.5-6.9-3.6-6.9L83.8 166C50.9 166 24 135.9 24 99 24 62.1 50.9 32 83.8 32l280.4 0C397.1 32 424 62.1 424 99zM83.8 480l280.4 0c32.9 0 59.8-30.2 59.8-67s-26.9-67-59.8-67l-212.3 0c-3.1 0-5.1-3.8-3.6-6.9L203.1 229c2-3.2-1.6-7.1-4.4-4.7L49.5 358.2C34.1 370.4 24 390.4 24 413 24 449.8 50.9 480 83.8 480z\"]\n};\nvar faStaylinked = {\n prefix: 'fab',\n iconName: 'staylinked',\n icon: [448, 512, [], \"f3f5\", \"M386.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L148.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L67.2 268c-3.5-3.5-9.7-3.7-13.9-.5L7.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L215 510.7s7.4 6.8 17.3-.8L430.3 346c4-3.2 4.4-8.7 .7-12.2l-44.3-41.3zm54.5-83.4L230.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L7.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3 .4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7 .9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1 .1c-4.2 3.2-10.5 3.1-14.2-.4L113 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9 .5l160.4 159c3.7 3.5 10 3.7 14.1 .5l45.8-35.8c4.1-3.2 4.4-8.7 .7-12.2z\"]\n};\nvar faWebflow = {\n prefix: 'fab',\n iconName: 'webflow',\n icon: [640, 512, [], \"e65c\", \"M640 64l-204.2 399.2-191.8 0 85.5-165.5-3.8 0C255.1 389.3 149.9 449.5 0 463.2L0 300.1s95.9-5.7 152.3-64.9l-152.3 0 0-171.2 171.1 0 0 140.8 3.8 0 70-140.8 129.4 0 0 139.9 3.8 0 72.6-139.9 189.3 0z\"]\n};\nvar faRenren = {\n prefix: 'fab',\n iconName: 'renren',\n icon: [512, 512, [], \"f18b\", \"M214 169.1C214 279.5 153 374.5 66.4 416.5 30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5l0 156.6zM255 504c-42.9 0-83.3-11-118.5-30.4 57.2-36.1 103.4-90.7 118.5-154.6 15.5 63.9 61.7 118.5 118.8 154.7-35.1 19.3-75.5 30.3-118.8 30.3zm190.6-87.5C359 374.5 298 279.6 298 169.1l0-156.6c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"]\n};\nvar faKoFi = {\n prefix: 'fab',\n iconName: 'ko-fi',\n icon: [512, 512, [], \"e856\", \"M249.8 75c89.8 0 113 1.1 146.3 4.4 78.1 7.8 123.6 56 123.6 125.2l0 8.9c0 64.3-47.1 116.9-110.8 122.4-5 16.6-12.8 33.2-23.3 49.9-24.4 37.7-73.1 85.3-162.9 85.3l-17.7 0c-73.1 0-129.7-31.6-163.5-89.2-29.9-50.4-33.8-106.4-33.8-181.2 0-73.7 44.4-113.6 96.4-120.2 39.3-5 88.1-5.5 145.7-5.5zm0 41.6c-60.4 0-103.6 .5-136.3 5.5-46 6.7-64.3 32.7-64.3 79.2l.2 25.7c1.2 57.3 7.1 97.1 27.5 134.5 26.6 49.3 74.8 68.2 129.7 68.2l17.2 0c72 0 107-34.9 126.3-65.4 9.4-15.5 17.7-32.7 22.2-54.3l3.3-13.8 19.9 0c44.3 0 82.6-36 82.6-82l0-8.3c0-51.5-32.2-78.7-88.1-85.3-31.6-2.8-50.4-3.9-140.2-3.9zM267 169.2c38.2 0 64.8 31.6 64.8 67 0 32.7-18.3 61-42.1 83.1-15 15-39.3 30.5-55.9 40.5-4.4 2.8-10 4.4-16.7 4.4-5.5 0-10.5-1.7-15.5-4.4-16.6-10-41-25.5-56.5-40.5-21.8-20.8-39.2-46.9-41.3-77l-.2-6.1c0-35.5 25.5-67 64.3-67 22.7 0 38.8 11.6 49.3 27.7 11.6-16.1 27.2-27.7 49.9-27.7zm122.5-3.9c28.3 0 43.8 16.6 43.8 43.2s-15.5 42.7-43.8 42.7c-8.9 0-13.8-5-13.8-11.7l0-62.6c0-6.7 5-11.6 13.8-11.6z\"]\n};\nvar faRev = {\n prefix: 'fab',\n iconName: 'rev',\n icon: [448, 512, [], \"f5b2\", \"M158.7 274.9a65.6 65.6 0 1 1 131.2 0 65.6 65.6 0 1 1 -131.2 0zm270.7-5.1l-.1 0c-.7-29.3-7.7-58.2-20.5-84.6s-31.2-49.7-53.8-68.4L309.6 143c22 14.2 40.1 33.8 52.7 56.8s19.1 48.8 19.1 75.1c0 86.6-70.5 157.1-157.1 157.1S67.2 361.5 67.2 274.9c0-81.9 63-149.3 143-156.4l0 39.1 108.8-62.8-108.8-62.8 0 38.3c-106.7 7.2-191 96-191 204.6 0 111.6 89.1 202.3 200.1 205l0 .1 210.2 0 0-210.2z\"]\n};\nvar faKeycdn = {\n prefix: 'fab',\n iconName: 'keycdn',\n icon: [512, 512, [], \"f3ba\", \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5 .7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4 .3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4-26.8-.1-47.5-21.7-47.5-48.5 0-34.3 33.1-56.6 63.8-45.6zM418.7 156.9c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3 .3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2 .7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4L92 355.6c-19.3-31.6-28.9-67.7-27.8-104.7 1-44.6 18.3-87.6 47.5-121.1L86.4 103.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4 11.9-11.2 30.6-10.9 42.4 1.2zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3 .1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9 303.3 66 344.6 81.6 377.7 109.5l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5-.1-26.7 22.3-48.4 48.3-48.4zM256.7 113.4c5.5 0 10.9 .4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7 73.7 0-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1 .8-57.3 24.8-58.2 58.3z\"]\n};\nvar faHireAHelper = {\n prefix: 'fab',\n iconName: 'hire-a-helper',\n icon: [512, 512, [], \"f3b0\", \"M443.1 0L71.9 0C67.9 37.3 37.4 67.8 0 71.7L0 443.2c37.4 4.9 66 32.4 71.9 68.8l372.2 0c3-36.4 32.5-65.8 67.9-69.8l0-370.5C475.6 65.8 447 36.4 443.1 0zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8l-111.2 0c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8l0-101.2c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8l109.2 0c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4l0 101.2c0 83.4 .1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"]\n};\nvar faSquareHackerNews = {\n prefix: 'fab',\n iconName: 'square-hacker-news',\n icon: [448, 512, [\"hacker-news-square\"], \"f3af\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM21 229.2s.1-.1 .1-.2 .1-.2 .2-.2c0 .1 0 .3-.1 .4l-.2 0zM239.2 384l-31.4 0 0-102.7-79.8-153.3 37.3 0c41.5 77.7 48.1 95.8 54.1 112 1.6 4.3 3.1 8.5 5.2 13.6 3.2-7 5.1-11.9 7.1-17.3 5.9-15.3 12.8-33.2 53.5-108.3l34.8 0-80.8 155.1 0 100.9z\"]\n};\nvar faHackerNewsSquare = faSquareHackerNews;\nvar faCreativeCommonsPdAlt = {\n prefix: 'fab',\n iconName: 'creative-commons-pd-alt',\n icon: [512, 512, [], \"f4ed\", \"M255.6 8C112.7 8 8 123.1 8 256 8 394.5 121.6 504 255.6 504 385.5 504 504 403.1 504 256 504 118.1 397.4 8 255.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM324.7 186l-53.2 0 0 137.2 53.2 0c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5l-19.9 0 0-79.7 19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM211.7 186l-68.2 0 0 137.3 34.6 0 0-44.3 27 0c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3l-29.2 0 0-41.6 28.3 0c30.9 0 28.8 41.6 .9 41.6z\"]\n};\nvar faOrcid = {\n prefix: 'fab',\n iconName: 'orcid',\n icon: [512, 512, [], \"f8d2\", \"M294.7 188.2l-45.9 0 0 153.8 47.5 0c67.6 0 83.1-51.3 83.1-76.9 0-41.6-26.5-76.9-84.7-76.9zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM175.2 368.8l-29.8 0 0-207.5 29.8 0 0 207.5zM160.3 98.5a19.6 19.6 0 1 1 0 39.2 19.6 19.6 0 1 1 0-39.2zM300 369l-81 0 0-207.7 80.6 0c76.7 0 110.4 54.8 110.4 103.9 0 53.3-41.7 103.9-110 103.9z\"]\n};\nvar faBoardGameGeek = {\n prefix: 'fab',\n iconName: 'board-game-geek',\n icon: [640, 512, [\"bgg\"], \"e855\", \"M168.8 168.3l30.1-8.2-12.3 98.8 16.7 16.1-38.9 91.2-111.8 41.2-52.6-131.8 17.7-17-10.5-84.3 191.2-70.3-29.5 64.3zm180.6 16.5c11.6 0 19 7.4 19 17.9l0 31.5c0 9.7-6.3 18.9-19.5 22.1 13.1 3.1 20.5 12 20.5 21.4l0 30.9c0 11.1-7.4 18.1-19 18.1l-89.1 0 0-141.8 88 0zM298 299.8l33 0c1.5 0 2.1-1 2.1-2.1l0-26.9c0-1-.6-2.3-2.1-2.3l-33 0 0 31.3zm0-57.3l33 0c1.5 0 2.1-1.1 2.1-2.3l0-24.8c0-1-.6-2.3-2.1-2.3l-33 0 0 29.4zm204.1-27.2l-65.6 0c-1 0-2.1 1.1-2.1 2.3l0 76.1c0 1.3 1 2.1 2.1 2.1l29.7 0c1.5 0 2.3-.8 2.3-2.1l0-24-19.3 0 12.8-30 40.1 0 0 70.8c0 9.2-7.2 16.2-16.3 16.2l-71.5 0c-9.1 0-16.5-7-16.5-16.2l0-109.7c0-8.6 7.4-16 16.5-16l87.8 0 0 30.5zm132.6 0l-65.6 0c-1.1 0-2.1 1.1-2.1 2.3l0 76.1c0 1.3 1 2.1 2.1 2.1l29.6 0c1.5 0 2.3-.8 2.3-2.1l0-24-19.2 0 12.8-30 40.1 0 0 70.8c0 9.2-7.2 16.2-16.3 16.2l-71.5 0c-9.1 0-16.5-6.9-16.5-16.2l0-109.7c0-8.6 7.4-16 16.5-16l87.8 0 0 30.5z\"]\n};\nvar faBgg = faBoardGameGeek;\nvar faBehance = {\n prefix: 'fab',\n iconName: 'behance',\n icon: [576, 512, [], \"f1b4\", \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8l-167.1 0 0 354.4 171.8 0c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9l73.1 0c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2l-79 0 0-82.7zm83.3 233.7l-83.3 0 0-97.6 84.9 0c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zM519.7 128.9l-143.7 0 0-34.9 143.7 0 0 34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3l-62.2 0c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3l185.1 0c.3-4.2 .6-8.7 .6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8l-114.7 0z\"]\n};\nvar faMonero = {\n prefix: 'fab',\n iconName: 'monero',\n icon: [512, 512, [], \"f3d0\", \"M360 384l108.4 0C425 455.9 346.1 504 256 504S87 455.9 43.6 384l108.4 0 0-127.8 104 104.8 104-105 0 128zM96 336l0-208 159.4 159.4 160.6-159.4 0 208 74.8 0c8.5-25.1 13.2-52 13.2-80 0-137-111-248-248-248S8 119 8 256c0 28 4.6 54.9 13.2 80L96 336z\"]\n};\nvar faFigma = {\n prefix: 'fab',\n iconName: 'figma',\n icon: [384, 512, [], \"f799\", \"M14 95.8C14 42.9 56.9 0 109.8 0L274.2 0c52.9 0 95.8 42.9 95.8 95.8 0 33.5-17.2 63-43.2 80.1 26 17.1 43.2 46.6 43.2 80.1 0 52.9-42.9 95.8-95.8 95.8l-2.1 0c-24.8 0-47.4-9.4-64.4-24.9l0 88.3c0 53.6-44 96.8-97.4 96.8-52.8 0-96.3-42.8-96.3-95.8 0-33.5 17.2-63 43.2-80.1-26-17.1-43.2-46.6-43.2-80.1s17.2-63 43.2-80.1C31.2 158.8 14 129.3 14 95.8zm162.3 95.8l-66.5 0c-35.6 0-64.4 28.8-64.4 64.4 0 35.4 28.6 64.2 64 64.4l66.9 0 0-128.8zM207.7 256c0 35.6 28.8 64.4 64.4 64.4l2.1 0c35.6 0 64.4-28.8 64.4-64.4s-28.8-64.4-64.4-64.4l-2.1 0c-35.6 0-64.4 28.8-64.4 64.4zm-97.9 95.8l-.4 0c-35.4 .2-64 29-64 64.4s29.2 64.4 64.9 64.4c36.3 0 66-29.4 66-65.5l0-63.4-66.5 0zm0-320.4c-35.6 0-64.4 28.8-64.4 64.4s28.8 64.4 64.4 64.4l66.5 0 0-128.8-66.5 0zm97.9 128.8l66.5 0c35.6 0 64.4-28.8 64.4-64.4s-28.8-64.4-64.4-64.4l-66.5 0 0 128.8z\"]\n};\nvar faInstagram = {\n prefix: 'fab',\n iconName: 'instagram',\n icon: [448, 512, [], \"f16d\", \"M224.3 141a115 115 0 1 0 -.6 230 115 115 0 1 0 .6-230zm-.6 40.4a74.6 74.6 0 1 1 .6 149.2 74.6 74.6 0 1 1 -.6-149.2zm93.4-45.1a26.8 26.8 0 1 1 53.6 0 26.8 26.8 0 1 1 -53.6 0zm129.7 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM399 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"]\n};\nvar faPerbyte = {\n prefix: 'fab',\n iconName: 'perbyte',\n icon: [448, 512, [], \"e083\", \"M305.3 284.6l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5zM149.4 128.7l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5zM366.6 32L81.4 32c-21.6 0-42.2 8.6-57.5 23.9S0 91.8 0 113.4L0 398.6c0 21.6 8.6 42.2 23.9 57.5S59.8 480 81.4 480l285.3 0c21.6 0 42.2-8.6 57.5-23.9S448 420.2 448 398.6l0-285.3c0-21.6-8.6-42.2-23.9-57.5S388.2 32 366.6 32zm63.6 366.6c0 16.9-6.7 33-18.7 45s-28.1 18.6-45 18.7l-285.3 0c-16.9 0-33-6.7-45-18.7s-18.6-28.1-18.7-45l0-285.3c0-16.9 6.7-33 18.7-45s28.1-18.6 45-18.7l285.3 0c16.9 0 33 6.7 45 18.7s18.6 28.1 18.7 45l0 285.3zm-125-269.9l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5z\"]\n};\nvar faSquareVimeo = {\n prefix: 'fab',\n iconName: 'square-vimeo',\n icon: [448, 512, [\"vimeo-square\"], \"f194\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM318.5 309.5c-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-3.8-13.9-7.3-26.9-10.5-39-18.2-68.3-28.6-107.4-46.2-107.4-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5 29.1-26.3 55.6-50.3 73.5-51.9 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64-1.4 31.1-23.2 73.8-65.3 127.9z\"]\n};\nvar faVimeoSquare = faSquareVimeo;\nvar faPushed = {\n prefix: 'fab',\n iconName: 'pushed',\n icon: [448, 512, [], \"f3e1\", \"M415.1 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L30.6 76.9c-15.1 2.7-26 18.3-21.4 36.6L114.3 461.8c6.5 21.3 36.7 24.2 47.7 7L197.3 388 432.5 156.7c16.4-16.8 4.3-42.9-17.4-44.8zM305.7 53.6c5.1-.7 7.5 2.5 5.2 7.4l-16.8 39.9-177.4-16.3 189-31zM30.8 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7-157.9-244.3zM144.1 456.4c-2.6 4-7.9 3.1-9.4-1.2L51.6 179.7 179.3 377.3c-7 15-35.2 79.1-35.2 79.1zM416.9 141.9l-198.7 195.4 89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"]\n};\nvar faMixcloud = {\n prefix: 'fab',\n iconName: 'mixcloud',\n icon: [640, 512, [], \"f289\", \"M213 346.6l-33.2 0 0-151.5 6.2-21.6-10.7 0-38.1 173.1-61 0-38.4-173.1-10.5 0 5.9 21.6 0 151.5-33.2 0 0-181.6 65.7 0 36.6 173.1 8.5 0 36.6-173.1 65.7 0 0 181.6zm331.5-63l-86 62.1 0-38.1 72.9-51.8-72.9-51.8 0-38.1 86 62.3 9.3 0 86.3-62.3 0 38.1-73.1 51.8 73.1 51.8 0 38.1-86.3-62.1-9.3 0zM430.2 272.3l-182 0 0-33.1 182 0 0 33.1z\"]\n};\nvar faYandexInternational = {\n prefix: 'fab',\n iconName: 'yandex-international',\n icon: [320, 512, [], \"f414\", \"M129.5 512l0-166.1-111-297.9 55.8 0 81.8 229.7 94.1-277.7 51.3 0-120.7 347.8 0 164.2-51.3 0z\"]\n};\nvar faHive = {\n prefix: 'fab',\n iconName: 'hive',\n icon: [512, 512, [], \"e07f\", \"M260.4 254.9L131.5 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3-.8 .1-1.1 .3-.6 .5-.8 .8L.3 254.9c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1L129.1 478.9c.2 .3 .5 .6 .8 .8s.7 .3 1.1 .3 .8-.1 1.1-.3 .6-.5 .8-.8L260.4 257.1c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1zm39.1-25.7c.2 .3 .5 .6 .8 .8s.7 .3 1.1 .3l66.5 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8 .3-.7 .3-1.1-.1-.8-.3-1.1L259.1 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3l-66.5 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8-.3 .7-.3 1.1 .1 .8 .3 1.1L299.4 229.2zm212.3 25.7L384.9 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3l-66.6 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8-.3 .7-.3 1.1 .1 .8 .3 1.1L440.7 256 314.5 476.7c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1 .5 .6 .8 .8 .7 .3 1.1 .3l66.6 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8L511.7 257.1c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1zM366 284.9l-66.5 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8L188.8 476.7c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1 .5 .6 .8 .8 .7 .3 1.1 .3l66.5 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8L367.9 288.3c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1-.5-.6-.8-.8-.7-.3-1.1-.3z\"]\n};\nvar faCreativeCommonsZero = {\n prefix: 'fab',\n iconName: 'creative-commons-zero',\n icon: [512, 512, [], \"f4f3\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8S174.1 398.8 256 398.8 358.5 321.5 358.5 256 337.9 113.2 256 113.2zm0 53.9c3.3 0 6.4 .5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9L213.8 290.4c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"]\n};\nvar faSquareSnapchat = {\n prefix: 'fab',\n iconName: 'square-snapchat',\n icon: [448, 512, [\"snapchat-square\"], \"f2ad\", \"M384 32L64 32c-17 0-33.3 6.7-45.3 18.7S0 79 0 96L0 416c0 17 6.7 33.3 18.7 45.3S47 480 64 480l320 0c17 0 33.3-6.7 45.3-18.7S448 433 448 416l0-320c0-17-6.7-33.3-18.7-45.3S401 32 384 32zm-3.9 319.3l-.1 .1c-2.5 2.8-5.4 5.1-8.7 6.8-6.5 3.6-13.4 6.3-20.6 8.2-1.4 .4-2.7 1-3.9 1.8-2.2 1.9-2.1 4.6-4.4 8.6-1.7 3-4 5.5-6.8 7.5-6.7 4.6-14.2 4.9-22.2 5.2-7.2 .3-15.4 .6-24.7 3.7-3.8 1.2-7.8 3.7-12.4 6.5-11.3 6.9-26.7 16.4-52.3 16.4s-40.9-9.4-52.1-16.3c-4.7-2.9-8.7-5.4-12.5-6.6-9.3-3.1-17.5-3.4-24.7-3.7-8-.3-15.5-.6-22.2-5.2-2.4-1.6-4.4-3.7-6-6.1-3.2-4.6-2.9-7.8-5.3-9.9-1.3-.8-2.6-1.5-4.1-1.8-7.1-1.9-13.9-4.6-20.3-8.1-3.1-1.6-5.9-3.8-8.3-6.3-6.6-6.8-8.3-14.8-5.7-21.8 3.4-9.3 11.6-12.1 19.4-16.3 14.8-8 26.3-18.1 34.4-29.9 2.3-3.3 4.3-6.9 6-10.6 .8-2.2 .8-3.3 .2-4.4-.6-.9-1.3-1.6-2.2-2.2-2.5-1.7-5.1-3.4-6.9-4.5-3.3-2.1-5.9-3.8-7.5-5-6.3-4.4-10.6-9-13.4-14.2-1.9-3.6-3-7.6-3.3-11.6s.4-8.1 1.9-11.9c4.1-10.9 14.5-17.7 27-17.7 2.6 0 5.3 .3 7.8 .8 .7 .2 1.4 .3 2 .5-.1-7.4 .1-15.4 .7-23.1 2.4-27.3 11.9-41.6 21.9-53 6.4-7.2 13.9-13.2 22.3-17.9 15.1-8.6 32.2-13 50.9-13s35.8 4.4 50.9 13c8.3 4.7 15.9 10.8 22.2 17.9 10 11.4 19.5 25.7 21.9 53 .6 7.7 .9 15.4 .7 23.1 .7-.2 1.4-.3 2.1-.5 2.6-.6 5.2-.8 7.8-.8 12.5 0 22.8 6.8 27 17.7 1.5 3.8 2.1 7.9 1.9 11.9s-1.4 8-3.3 11.6c-2.7 5.2-7.1 9.9-13.4 14.2-1.7 1.2-4.3 2.9-7.5 5-1.8 1.2-4.5 2.9-7.2 4.7-.8 .5-1.4 1.2-1.9 2-.5 1-.5 2.2 .2 4.2 1.7 3.8 3.7 7.4 6.1 10.8 8.3 12.1 20.2 22.3 35.5 30.4 1.5 .8 3 1.5 4.4 2.3 .7 .3 1.6 .8 2.5 1.3 4.9 2.7 9.2 6 11.5 12.2 2.5 6.9 1 14.7-5.2 21.3zm-16.7-18.5c-50.3-24.3-58.3-61.9-58.7-64.7-.4-3.4-.9-6 2.8-9.5 3.6-3.3 19.5-13.2 24-16.3 7.3-5.1 10.5-10.2 8.2-16.5-1.7-4.3-5.7-6-10-6-1.3 0-2.7 .2-4 .4-8 1.7-15.8 5.8-20.4 6.9-.5 .1-1.1 .2-1.7 .2-2.4 0-3.3-1.1-3.1-4 .6-8.8 1.8-25.9 .4-41.9-1.9-22-9-32.9-17.4-42.6-4.1-4.6-23.1-24.7-59.5-24.7s-55.4 20.1-59.5 24.8c-8.4 9.7-15.5 20.6-17.4 42.6-1.4 16-.1 33.1 .4 41.9 .2 2.8-.7 4-3.1 4-.6 0-1.1-.1-1.7-.2-4.5-1.1-12.3-5.1-20.3-6.9-1.3-.3-2.6-.4-4-.4-4.3 0-8.3 1.6-10 6-2.4 6.3 .8 11.4 8.2 16.5 4.4 3.1 20.4 13 24 16.3 3.7 3.4 3.2 6.1 2.8 9.5-.4 2.8-8.4 40.4-58.7 64.7-2.9 1.4-8 4.4 .9 9.3 13.9 7.6 23.1 6.8 30.3 11.4 6.1 3.9 2.5 12.4 6.9 15.4 5.5 3.8 21.6-.3 42.3 6.6 17.4 5.7 28.1 22 59 22s41.8-16.3 58.9-22c20.8-6.9 36.9-2.8 42.3-6.6 4.4-3.1 .8-11.5 6.9-15.4 7.2-4.6 16.4-3.8 30.3-11.5 8.8-4.9 3.8-7.9 .9-9.4z\"]\n};\nvar faSnapchatSquare = faSquareSnapchat;\nvar faThemeisle = {\n prefix: 'fab',\n iconName: 'themeisle',\n icon: [512, 512, [], \"f2b2\", \"M208 88.3c0-10 6.3-21.7 17.7-21.7 11.1 0 17.7 11.7 17.7 21.7 0 10.3-6.6 21.7-17.7 21.7-11.4 0-17.7-11.4-17.7-21.7zm304 160c0 36-11.4 102.3-36.3 129.7-22.9 24.9-87.4 61.1-120.9 70.6l-1.1 .3 0 32.6c0 16.3-12.6 30.6-29.1 30.6-10 0-19.4-5.7-24.6-14.3-5.4 8.6-14.9 14.3-24.9 14.3s-19.4-5.7-24.9-14.3c-5.1 8.6-14.6 14.3-24.6 14.3-10.3 0-19.4-5.7-24.9-14.3-5.1 8.6-14.6 14.3-24.6 14.3-18.9 0-29.4-15.7-29.4-32.9-16.3 12.3-35.7 19.4-56.6 19.4-22 0-43.4-8.3-60.3-22.9 10.3-.3 20.6-2.3 30.3-5.7-20.9-5.7-39.4-18.9-52-36.3 21.4 4.6 46.2 1.7 67.1-11.1-22-22-56.6-58.9-68.6-87.4-5.7-13.4-6.9-31.4-6.9-45.7 0-49.7 20.3-160 86.3-160 10.6 0 18.9 4.9 23.1 14.9 3.7-5.4 7.7-10.5 12-15.4 2-2.6 5.7-5.4 7.1-8.3 8-12.6 11.7-21.1 21.7-34 32.3-41.1 81.7-69.4 134.9-69.4 6 0 12 .3 17.7 1.1 10.9-11.7 26-18.3 41.7-18.3 14.6 0 29.7 6 40 16.3 .9 .9 1.4 2.3 1.4 3.4 0 3.7-10.3 13.4-12.9 16.3 4.3 1.4 15.7 6.9 15.7 12 0 2.9-2.9 5.1-4.6 7.1 31.4 27.7 49.4 67.1 56.3 108 4.3-5.1 10.3-8.6 17.1-8.6 10.6 0 20.9 7.1 28.6 14 20.9 18.6 25.7 53.1 25.7 79.7zM188 89.4c0 18.3 12.6 37.1 32.3 37.1s32.3-18.9 32.3-37.1c0-18-12.6-36.9-32.3-36.9S188 71.4 188 89.4zM237.7 194c0-19.7 3.7-39.1 8.6-58.3-52 79.5-13.5 184.6 68.9 184.6 21.4 0 42.6-7.7 60-20 2-7.4 3.7-14.9 3.7-22.6 0-14.3-6.3-21.4-20.6-21.4-4.6 0-9.1 .9-13.4 1.7-63.3 12.7-107.1 3.7-107.1-64zM196.6 448.9c0-11.1-8.9-20.9-20.3-20.9s-20 9.7-20 20.9l0 32.6c0 11.1 8.6 21.1 20 21.1s20.3-9.7 20.3-21.1l0-32.6zm49.1 0c0-11.1-8.6-20.9-20-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20-10 20-21.1l0-32.6zm49.7 0c0-11.1-8.9-20.9-20.3-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20.3-9.7 20.3-21.1l0-32.6zm49.7 0c0-11.1-8.9-20.9-20.3-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20.3-10 20.3-21.1l0-32.6zM421.7 286c-30.9 59.1-90.3 102.6-158.6 102.6-96.6 0-160.6-84.6-160.6-176.6 0-16.9 2-33.4 6-49.7-20 33.7-29.7 72.6-29.7 111.4 0 60.3 24.9 121.7 71.4 160.9 5.1-9.7 14.9-16.3 26-16.3 10 0 19.4 5.7 24.6 14.3 5.4-8.6 14.6-14.3 24.9-14.3 10 0 19.4 5.7 24.6 14.3 5.4-8.6 14.9-14.3 24.9-14.3s19.4 5.7 24.9 14.3c5.1-8.6 14.6-14.3 24.6-14.3 10.9 0 20.9 6.6 25.7 16 43.4-36.3 68.6-92 71.4-148.3zm10.6-99.7c0-53.7-34.6-105.7-92.6-105.7-30.3 0-58.6 15.1-78.9 36.9-20 66.4-27.4 136.6 41.4 136.6 28.8 0 97.4-28.5 84.3 36.9 28.9-26 45.7-65.7 45.7-104.6z\"]\n};\nvar faDartLang = {\n prefix: 'fab',\n iconName: 'dart-lang',\n icon: [512, 512, [], \"e693\", \"M378.6 78.9c-2.8-.1-5.6-.2-8.5-.2l-264.1 0 143.2-72c7.4-4.4 18.8-6.7 30.4-6.7 13.5 0 29.4 9.2 37 16.8l62 62 0 .1zM107.3 96.5l262.8 0c16 0 25.4 1.4 35.4 9.3l106.5 106.4 0 208.8-79.3 .7-325.4-325.2zM96.5 373l0-262.2 323.8 323.8 .7 77.4-212.2 0-98.1-98.2C99.4 402.5 96.5 398.5 96.5 373zM78.7 105.3l0 267.7c0 3.3 .1 6.3 .2 9.1l-62-62C6.5 309.3 0 294.3 0 279.6 0 272.8 3.9 262.1 6.7 256l72-150.7z\"]\n};\nvar faDeploydog = {\n prefix: 'fab',\n iconName: 'deploydog',\n icon: [512, 512, [], \"f38e\", \"M382.2 136l51.7 0 0 239.6-51.7 0 0-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9l0-103.9zM317.5 297.8a33.2 33.2 0 1 0 66.4 1 33.2 33.2 0 1 0 -66.4-1zM188.5 136l51.7 0 0 239.6-51.7 0 0-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9l0-103.9zM123.8 297.8a33.2 33.2 0 1 0 66.4 1 33.2 33.2 0 1 0 -66.4-1zM448 96c17.5 0 32 14.4 32 32l0 256c0 17.5-14.4 32-32 32L64 416c-17.5 0-32-14.4-32-32l0-256c0-17.5 14.4-32 32-32l384 0zm0-32L64 64C28.8 64 0 92.8 0 128L0 384c0 35.2 28.8 64 64 64l384 0c35.2 0 64-28.8 64-64l0-256c0-35.2-28.8-64-64-64z\"]\n};\nvar faFlipboard = {\n prefix: 'fab',\n iconName: 'flipboard',\n icon: [448, 512, [], \"f44d\", \"M0 32l0 448 448 0 0-448-448 0zM358.4 211.2l-89.6 0 0 89.6-89.6 0 0 89.6-89.6 0 0-268.8 268.8 0 0 89.6z\"]\n};\nvar faBuyNLarge = {\n prefix: 'fab',\n iconName: 'buy-n-large',\n icon: [576, 512, [], \"f8a6\", \"M288.2 32C133.5 32 8 132.3 8 256S133.5 480 288.2 480 568.4 379.7 568.4 256 442.9 32 288.2 32zM202.8 389.2l-138.5 1.4 77.2-290.7 133.4 0c63.2 0 84.9 28.6 78 72.8-.4 2.3-.9 4.6-1.5 6.9-5.6-1.3-11.4-1.9-17.2-1.9-42.3 0-76.7 33.9-76.7 75.7 0 37.1 27.1 68 62.9 74.5-18.2 37.2-56.2 60.9-117.7 61.5zM358.2 207.1l32 0-22.2 90.3-35.4 0-11.2-35.6-7.8 35.6-37.8 0 26.6-90.3 31.3 0 15 36.8 9.4-36.8zM504.1 389.2l-197.1 0 15.8-61.2c3.8 .6 7.6 .8 11.5 .8 42.3 0 76.7-33.9 76.7-75.6 0-32.6-21-60.5-50.4-71.1l21.3-82.4 92.5 0-53 205.4 103.9 0-21.2 84.1zM211.9 269.4l-24.7 0-13.8 56.5 24.7 0c16.1 0 32.1-3.2 37.9-26.6 5.6-22.3-8-29.8-24.1-29.8zM233.2 170l-21.3 0-11.7 47.7 21.4 0c18 0 35.4-14.6 39.2-30.1 4.6-18.9-9.5-17.6-27.6-17.6z\"]\n};\nvar faWatchmanMonitoring = {\n prefix: 'fab',\n iconName: 'watchman-monitoring',\n icon: [512, 512, [], \"e087\", \"M256 16a240 240 0 1 0 0 480 240 240 0 1 0 0-480zM121.7 429.1c-51.6-40.2-84.9-102.8-84.9-173.1 0-21.7 3.2-43.3 9.6-64.1l102.9-17.9-.1 11-13.9 2s-.1 12.5-.1 19.5c0 2 .4 4 1.2 5.8s2.1 3.4 3.7 4.6l9.5 7.4-27.7 204.9zM227.4 145.9l8.5-7.6s6.9-5.4-.1-9.3c-7.2-4-39.5-34.5-39.5-34.5-5.3-5.5-8.3-7.3-15.5 0 0 0-32.3 30.5-39.5 34.5-7.1 4-.1 9.3-.1 9.3l8.5 7.6 0 4.4-73.5-19.2c39.6-56.9 105.5-94.3 180-94.3 31.3 0 62.2 6.7 90.6 19.6s53.8 31.8 74.3 55.4l-193.5 37.7 0-3.6zm34.1 329.3l-33.9-250.9 9.5-7.4c1.6-1.2 2.8-2.8 3.7-4.6s1.3-3.8 1.2-5.8c0-7-.1-19.5-.1-19.5l-13.9-2-.1-10.5 241.7 31.4c3.9 16.4 5.8 33.3 5.8 50.1 0 119.1-95.4 216.2-213.8 219.1z\"]\n};\nvar faHips = {\n prefix: 'fab',\n iconName: 'hips',\n icon: [640, 512, [], \"f452\", \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8l-40.9 0c-1.6 0-2.7 1.4-2.7 2.8l0 201.8c0 1.4 1.1 2.8 2.7 2.8l40.9 0c1.9 0 2.8-.9 2.8-2.8l0-201.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4l0-81.2c0-1.8-.9-2.7-2.8-2.7l-40.9 0C.9 77.5 0 78.4 0 80.2L0 359.4c0 1.9 .9 2.8 2.7 2.8l41 0c1.9 0 2.8-.9 2.8-2.8l0-136.1c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27l0 122.6c0 9 7.3 16.3 16.4 16.3l27.3 0c1.8 0 2.7-.9 2.7-2.8l0-136.1c0-23.4-9.3-41.8-28-55.3zM634.9 278.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4l0-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5 .4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6L580.4 286c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4 .2-4.4 2.3l0 34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3 .7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5l0 183.5c0 .8 .6 2.7 2.7 2.7l40.9 0c1.9 0 2.8-.9 2.8-2.7l0-88.8c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7 .1-60.3-48.2-108.6-108.6-108.6zm0 46.6a62.2 62.2 0 1 1 0 124.3 62.2 62.2 0 1 1 0-124.3zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"]\n};\nvar faCloudversify = {\n prefix: 'fab',\n iconName: 'cloudversify',\n icon: [640, 512, [], \"f385\", \"M160.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5l0 20.4c0 10.7-8.7 19.5-19.5 19.5l-20.2 0c-10.7 0-19.5-6-19.5-16.7l0-6.6-46.8 0c-3.8 0-10.8 4.3-10.8 11.9l0 40.4c0 6.4 5.3 11.8 11.7 11.8l48.9 0 0-.1zM388 312c-10.7 46.3 21.7 72.4 55.3 86.8-107.2 33.8-171.6-50.8-135.3-110.8-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9 30.6-15.8 103.5-8.5 133.6 40.8-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM140 208l-39.8 0c-8.9 0-16.2-7.3-16.2-16.2l0-39.6c0-8.9 7.3-16.2 16.2-16.2l39.8 0c8.9 0 16.2 7.3 16.2 16.2l0 39.6c0 8.9-7.3 16.2-16.2 16.2zM22.1 168c-5.6 0-10.1-4.5-10.1-10.1l0-27.8c0-5.6 4.5-10.1 10.1-10.1l27.7 0c5.5 0 10.1 4.5 10.1 10.1l0 27.8c0 5.6-4.5 10.1-10.1 10.1l-27.7 0zM180 142.7l0-21.4c0-5.1 4.2-9.3 9.3-9.3l21.4 0c5.1 0 9.3 4.2 9.3 9.3l0 21.4c0 5.1-4.2 9.3-9.3 9.3l-21.4 0c-5.1 0-9.3-4.2-9.3-9.3zM68 235.5l0 25c0 6.3-5.1 11.5-11.4 11.5l-25.2 0c-6.3 0-11.4-5.2-11.4-11.5l0-25c0-6.3 5.1-11.5 11.4-11.5l25.1 0c6.4 0 11.5 5.2 11.5 11.5z\"]\n};\nvar faGoodreads = {\n prefix: 'fab',\n iconName: 'goodreads',\n icon: [448, 512, [], \"f3a8\", \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32l336 0c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3l-29 0 0 40.3c-.8 .3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9 .4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2 .5-1 1.1-1.9 1.7-2.9 .2 .1 .4 .1 .6 .2 .3 3.8 .2 30.7 .1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3l-26.8 0c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"]\n};\nvar faTidal = {\n prefix: 'fab',\n iconName: 'tidal',\n icon: [640, 512, [], \"e7dc\", \"M107.2 48l-1.3 0c-32.3 33.1-65.4 65.5-98 98.5-2.6 2.8-6.1 5.1-7.9 8.6 35.6 35.4 71 71 106.6 106.4 35.4-35.3 70.7-70.8 106.1-106.1l0-1.3-73.2-73.2C128.8 69.8 117.3 59.6 107.2 48zm213.5 0l-1.3 0c-34.9 36.1-71.5 71-106.3 107.2 35.9 35.1 71 71 106.7 106.3 34.3-34.1 68.4-68.4 102.6-102.4 1.5-1.5 3.3-2.8 4.1-4.8-34.6-33.8-68.4-68.2-102.6-102.1-1.3-1.3-2.3-2.6-3.3-4.1zm213.5 0l-1.3 0c-17.2 18-35.1 35.3-52.6 53-17.9 17.7-35.4 35.7-53.5 53.3 .8 2.3 3 3.6 4.6 5.5L533.3 261.5c36.1-34.9 70.8-71.2 106.7-106.1-.5-2.2-2.6-3.5-4-5L555.8 70.2c-7.1-7.4-14.9-14.2-21.5-22.2zM319.6 261.7c-34.9 35.1-70 70-104.9 104.9-.3 .7-.7 1.7-1 2.3 24 23.7 47.7 47.5 71.5 71.3 11.8 11.3 22.8 23.5 34.9 34.4 8.4-7.4 16.4-16.4 24.7-24.3 25.5-25.3 51-51 76.5-76.3 1.8-2.2 4.3-3.6 5.5-6.3-35.4-34.9-70.5-70.2-105.6-105.4l-1.5-.7z\"]\n};\nvar faUnity = {\n prefix: 'fab',\n iconName: 'unity',\n icon: [448, 512, [], \"e049\", \"M243.6 91.6l80.1 46.8c2.9 1.6 3 6.2 0 7.8l-95.2 55.6c-2.9 1.7-6.3 1.6-9 0l-95.2-55.6c-2.9-1.6-3-6.3 0-7.8l80.1-46.8 0-91.6-204.4 119.4 0 238.8 78.4-45.8 0-93.6c-.1-3.3 3.8-5.7 6.7-3.9l95.2 55.6c2.9 1.7 4.5 4.7 4.5 7.8l0 111.2c.1 3.3-3.8 5.7-6.7 3.9L98 346.8 19.6 392.6 224 512 428.4 392.6 350 346.8 269.9 393.6c-2.8 1.7-6.8-.5-6.7-3.9l0-111.2c0-3.3 1.8-6.3 4.5-7.8L362.9 215c2.8-1.7 6.8 .5 6.7 3.9l0 93.6 78.4 45.8 0-238.8-204.4-119.4 0 91.6z\"]\n};\nvar faTencentWeibo = {\n prefix: 'fab',\n iconName: 'tencent-weibo',\n icon: [320, 512, [], \"f1d5\", \"M40.5 495.8c1.4 19.9-27.6 22.2-29.7 2.9-11.6-129.9 31.1-239.5 101.4-313.2-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM160.2 .1c-125.9 0-204.3 134.2-148.3 242.3 8.7 17.4 35.3 4.5 26.3-13.4-46.3-92.6 21-199.2 122-199.2 75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3 0-91.9-74.6-166.5-166.6-166.5z\"]\n};\nvar faFreeCodeCamp = {\n prefix: 'fab',\n iconName: 'free-code-camp',\n icon: [576, 512, [], \"f2c5\", \"M97.4 96.2c10.4-10.6 16-17.1 16-21.9 0-2.8-1.9-5.5-3.8-7.4-2.4-1.8-5.4-2.8-8.4-2.8-8.5 0-20.9 8.8-35.8 25.7-41.5 47.3-62.7 93.1-61.8 160.6S21 367.3 57.6 412.2c18.8 23.6 33.2 35.8 43.5 35.8 3.2-.3 6.1-1.6 8.4-3.8 1.9-2.8 3.8-5.6 3.8-8.4 0-5.6-3.9-12.2-13.2-20.6-44.5-42.3-67.3-97-67.5-165-.2-61.4 21.6-112.4 64.8-154zM239.6 420.1c.6 .4 .9 .6 .9 .6l-.9-.6zm93.8 .6l.2-.1c-.2 .1-.3 .2-.2 .1zm3.1-158.2c-16.2-4.2 50.4-82.9-68.1-177.2 0 0 15.5 49.4-62.8 159.6-74.3 104.4 23.5 168.7 34 175.2-6.7-4.3-47.4-35.7 9.6-128.6 11-18.3 25.5-34.9 43.5-72.2 0 0 15.9 22.4 7.6 71.1-12.5 73.6 53.8 52.5 54.8 53.5 22.8 26.8-17.7 73.5-21.6 76.6 5.5-3.7 117.7-78 33-188.1-6 6-13.8 34.2-30 30.1zM511 89.7c-14.9-16.9-27.4-25.7-35.9-25.7-3 .1-5.9 1.1-8.4 2.8-1.9 1.9-3.8 4.7-3.8 7.4 0 4.8 5.6 11.3 16 21.9 43.2 41.6 65 92.6 64.8 154.1-.2 68-23 122.6-67.5 165-9.3 8.4-13.2 14.9-13.2 20.6 0 2.7 1.9 5.6 3.8 8.4 2.3 2.2 5.2 3.6 8.4 3.8 10.3 0 24.7-12.1 43.5-35.8 36.6-44.9 53.1-94.4 54.1-161.9S552.5 137 511 89.7z\"]\n};\nvar faXTwitter = {\n prefix: 'fab',\n iconName: 'x-twitter',\n icon: [448, 512, [], \"e61b\", \"M357.2 48L427.8 48 273.6 224.2 455 464 313 464 201.7 318.6 74.5 464 3.8 464 168.7 275.5-5.2 48 140.4 48 240.9 180.9 357.2 48zM332.4 421.8l39.1 0-252.4-333.8-42 0 255.3 333.8z\"]\n};\nvar faStickerMule = {\n prefix: 'fab',\n iconName: 'sticker-mule',\n icon: [576, 512, [], \"f3f7\", \"M561.7 199.6l0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3 .5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8 .4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5 .5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5 .5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4 .5 1 1 2 1.5 3.5 .5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5 .5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5 .3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6 .5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3 .8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"]\n};\nvar faTwitch = {\n prefix: 'fab',\n iconName: 'twitch',\n icon: [448, 512, [], \"f1e8\", \"M359.4 103.5l-38.6 0 0 109.7 38.6 0 0-109.7zM253.2 103l-38.6 0 0 109.8 38.6 0 0-109.8zM89 0l-96.5 91.4 0 329.2 115.8 0 0 91.4 96.5-91.4 77.3 0 173.8-164.6 0-256-366.9 0zM417.3 237.8l-77.2 73.1-77.2 0-67.6 64 0-64-86.9 0 0-274.3 308.9 0 0 201.2z\"]\n};\nvar faKickstarterK = {\n prefix: 'fab',\n iconName: 'kickstarter-k',\n icon: [448, 512, [], \"f3bc\", \"M356.7 256.2l40.8-40.5c42.2-41.9 42.2-110.3 0-152.1s-111-41.9-153.2 0L229.3 78.4C209.6 50.3 177.1 32 140.2 32 80.5 32 32 80.2 32 139.5l0 233c0 59.4 48.5 107.5 108.2 107.5 37.1 0 69.3-18.3 89-46.4l14.9 14.7c42.2 41.9 111 41.9 153.2 0s42.2-110.3 0-152.1l-40.8-40 .1 0z\"]\n};\nvar faCriticalRole = {\n prefix: 'fab',\n iconName: 'critical-role',\n icon: [448, 512, [], \"f6c9\", \"M225.8 0c.3 .2 216.6 124.5 217.1 124.7 3 1.2 3.7 3.5 3.7 6.6-.1 83.4-.1 166.9 0 250.4 .1 1.2-.2 2.4-.8 3.4s-1.5 1.9-2.6 2.4c-21.4 12-207.9 118.3-218.9 124.6l-3 0c-79.3-45.7-218.3-125.4-218.4-125.5-.6-.3-1.1-.7-1.4-1.3s-.5-1.2-.4-1.9c0-.9 0-225.9-.1-253.1-.1-1 .2-2 .7-2.9s1.3-1.6 2.2-2C27.2 112.1 213.2 6 224.1 0l1.8 0zM215.4 20.4l-.2-.2c-64.7 36.9-129.5 73.7-194.2 110.6 0 .1 .1 .2 .1 .4L52 142.9c-7.7 6-8.3 6-10.6 5.1-.1 0-24.2-9.3-26.8-10l0 230.4c.9-1.4 64.1-110.9 64.1-111 1.6-2.8 3-1.9 9.1-1.5 1.4 .1 1.5 .2 .8 1.4-41.2 71.3-36.4 63-67.5 116.9-.8 1.4-.6 1.1 1.2 1.1l186.5 0c1.4 0 1.7-.2 1.7-1.6l0-8.9c0-1.3 2.4-.8-18.4-1-7.5-.1-14.1-3.2-21.4-12.7-7.4-9.7-14.6-19.4-21.8-29.2-2.3-3.1-3.4-2.4-16.8-2.4-1.8 0-1.8 0-1.8 1.8 .3 26.2 .2 25.3 1 32.7 .5 4.4 2.2 4.2 9.7 4.8 3.1 .3 3.9 4.1 .5 4.9-1.6 .4-31.6 .5-33.7-.1-.5-.1-1-.5-1.3-.9s-.5-1-.4-1.6 .3-1.1 .6-1.5 .9-.7 1.4-.8c3.3-.8 6.2 .8 6.7-4.4 1.3-13.7 1.2-9 1.1-79.4 0-10.8-.4-12.6-5.4-13.6-1.2-.2-3.5-.2-4.7-.6-2.9-1-2-4.8 1.8-4.8 33.7 0 46.1-1.1 56.1 4.9 7.7 4.6 12 11.5 12.5 20.4 .9 14.6-6.5 22.3-15 32.6-.2 .1-.3 .3-.4 .5s-.1 .4-.1 .6 0 .4 .1 .6 .2 .4 .4 .5c2.6 3.2 5 6.6 7.7 9.8 27.6 33.2 24.1 30.5 41.3 33.1 .9 .1 1-.4 1-1.2l0-11c0-1 .3-1.4 1.4-1.3 7.8 1.2 15.8 1.1 23.6-.3 1.1-.1 1.5 .2 1.5 1.3 0 .1 .9 26.7 .9 26.8 0 1.5 .7 1.6 1.9 1.6l186.7 0c-27.2-47-54.2-94-81.2-140.8 2.3-.7-.4 0 6.7-1.4 2-.4 2.1-.4 3.1 1.4 7.3 12.6 77.3 134 77.4 134.1l0-230.4c-1.7 .5-103.3 38.7-105.8 39.7-1.1 .4-1.5 .2-1.9-.9-.6-1.9-1.3-3.8-2.1-5.6-.3-.8-.1-1.1 .6-1.4 .1 0 95.5-35.8 103-38.8-65.4-37.6-130.6-75-196-112.6l86.8 150.4-.3 .3c-9.6-.9-10.5-1.6-11.8-3.9-1-1.7-73.5-127.7-82-142.2-9.1 14.7-83.6 146.2-85.4 146.3-2.9 .2-5.9 .1-9.2 .1 28.8-49.8 57.6-99.5 86.2-149l0 0zm51.9 129.9c1.9-.1 3.7-.4 5.5-.8 1.7-.3 2.5 .2 2.6 1.9 0 .1 .1 19.1-.9 20.5s-1.9 1.2-2.6-.2c-5-9.7 6.2-9.7-39.1-12-.7 0-1 .2-1 .9 0 .1 3.7 122 3.7 122.1 0 .9 .5 1.2 1.2 1.5 3 1.2 5.9 2.5 8.7 4 7.3 4.3 11.4 10.8 12.4 19.3 1.4 11.8-2.8 35.8-32.2 37.1-2.8 .1-28.3 1.1-34.1-23.3-4.7-19.3 8.3-32.7 19.9-36.4 .6-.1 1.2-.4 1.5-.9s.5-1.1 .5-1.7c.1-5.6 3-107.1 3.7-121.3 0-1.1-.6-1.2-1.4-1.1-32.3 .5-36.7-.3-40.2 8.5-2.4 6.2-4.1 1.3-4 .2 1.1-6 2.2-12 3.3-18 .4-2.1 1.4-2.6 3.4-1.9 5.6 2.1 6.7 1.7 37.2 1.9 1.7 0 1.8-.1 1.8-1.8 .7-27.5 .6-22.6 1-29.6 .1-.6-.1-1.2-.3-1.7s-.7-.9-1.3-1.1c-5.6-2.9-8.8-7.6-8.9-13.9-.4-14.8 17.7-21.7 27.4-11.5 6.8 7.2 5.8 18.9-2.5 24.2-.8 .4-1.4 1.1-1.8 1.8s-.6 1.6-.4 2.5c0 .6-.1-4.3 1 30 0 .9 .4 1.1 1.2 1.1 .1 0 23-.1 34.5-.4l0-.1zM68.3 141.7c19.8-4.5 32.7-.6 52.5 1.7 2.8 .3 3.7 1.2 3.6 4-.2 5-1.2 22.3-1.2 23.1 0 .5-.2 1-.5 1.4s-.7 .7-1.2 .9c-4.1 1.7-3.6-4.4-4-7.3-3.1-22.4-73.9-32.7-74.6 25.4-.3 23.9 17 53.6 54.1 50.9 27.2-2 19-20.2 24.8-20.5 .4-.1 .9 0 1.3 .1s.8 .4 1.1 .7 .5 .7 .6 1.2 .1 .9 0 1.3c-1.8 10.8-3.4 19-3.4 19.2-1.5 9.2-86.7 22.1-93.4-42.1-2.7-25.8 10.4-53.4 40.3-60.2zm80 87.7l-19.5 0c-.6 0-1.2-.1-1.6-.4s-.8-.8-1-1.4c2.4-3.8 5.9 .9 5.9-6.1-.1-25.8 .2-38 .2-40.1 0-3.4-.5-4.6-3.3-4.9-7-.7-3.1-3.4-1.1-3.4 11.8-.1 22.6-.2 30 .7 8.8 1.1 16.7 12.6 7.9 22.6-2 2.2-4 4.4-6.1 6.7 1 1.2 6.9 8.8 17.3 19.7 2.7 2.8 6.2 3.5 9.9 3.1 .6 0 1.1-.2 1.5-.6s.7-.9 .7-1.5c.3-3.4 .3 4.7 .4-40.6 0-5.6-.3-6.6-3.2-6.8-4-.4-4-2.3-.7-3.4l19.1-.1c.3 0 4.5 .5 1 3.4 0 0-.2 0-.2 0-3.6 .3-3.9 1-4 4.6-.3 43.9 .1 40.2 .4 42.8 .1 .8 .3 2.2 5.1 2.1 2.5 0 3.9 3.4 0 3.4-10.4 .1-20.7 0-31.1 .1-10.7 0-13.5-6.2-24.2-20.8-1.6-2.2-8.3-2.4-8.2-.4 .9 16.5 0 17.8 4 17.7 4.8-.1 4.7 3.6 .8 3.5l.1 0zm275-10.1c-1.2 7.1 .2 10.4-5.3 10.3-61.5-.4-47.8-.2-50.7-.3-1.2-.1-2.4-.4-3.6-.7-2.5-.6 1.5-1.2-.4-5.6-1.4-3.4-2.8-6.8-4.1-10.2-.1-.4-.4-.8-.7-1.1s-.8-.4-1.3-.4c-4.9-.2-9.7-.2-14.6 .1-.3 0-.6 .2-.9 .3s-.5 .4-.7 .7c-1.6 3.6-3.1 7.3-4.5 11-1.3 3.2 7.9 1.3 12.2 2.2 3 .6 4.5 3.7 .7 3.7l-26.4 0c-2.9 0-3.1-3.2-.7-3.2 1.2 .1 2.4-.2 3.5-.9s1.9-1.5 2.4-2.6c1.5-3 2.8-6 4.1-9.1 18.2-42.1 17.1-40.2 18.4-41.6 .2-.2 .4-.4 .7-.6s.6-.2 .8-.2 .6 .1 .8 .2 .5 .3 .7 .6c2.9 3.3 18.4 44.7 23.6 51.9 2 2.7 5.7 2 6.4 2 3.6 .1 4-1.1 4.1-4.3 .1-1.9 .1 1.2 .1-41.2 0-4.5-2.4-3.7-5.6-4.3-.3 0-2.6-.6-.1-3.1 .2-.2-.9-.2 21.7-.2 2.3 0 5.3 2.8-1.2 3.4-.4 0-.7 0-1.1 .2s-.6 .3-.9 .6-.4 .6-.6 .9-.2 .7-.1 1.1c-.1 1.6-.2 38.9 .3 41.2 .2 .7 .6 1.4 1.2 1.8s1.3 .7 2.1 .6c13.3 .4 14.9 .4 16-3.4 1.7-5.8 4.1-2.5 3.7-.2l0 .1zM318.6 283.6c-4.2 0-4.4-3.4-.6-3.4 35.9-.2 28.1 .4 37.2-.6 1.7-.2 2.4 .2 2.3 1.9-.3 3.4-.6 6.8-1 10.2-.2 2.2-3.2 2.6-3.4-.2-.4-5.3-2.2-4.5-15.6-5.1-1.6-.1-1.6 0-1.6 1.5l0 16.1c0 1.7 0 1.6 1.6 1.5 3.1-.2 10.3 .3 15.7-1.5 .5-.2 3.3-1.8 3.1 1.8 0 .2-.8 10.4-1.2 11.4-.5 1.3-1.9 1.5-2.6 .3-1.2-2 0-5.1-3.7-5.3-15.4-.9-12.9-2.5-12.9 6 0 12.3-.8 16.1 3.9 16.2 16.6 .5 14.4 0 16.4-5.7 .8-2.4 3.5-1.8 3.2 .6-.4 3.2-.8 6.4-1.2 9.6 0 .4-.2 2.4-4.7 2.4-37.2-.1-34.5-.2-35.2-.3-2.7-.5-2.2-3 .2-3.4 1.1-.2 4 .5 4.2-2.6 2.4-56.2-.1-51.3-3.9-51.3l0 0zm-.4-109.5c2.5 .6 3.1 1.8 3 4.6-.3 5.3-.3 9-.6 9.7-.7 2.2-3.1 2.1-3.3-.3-.4-4.8-3-7.8-7.6-9.1-26.3-7.7-32.8 15.5-27.2 30.2 5.9 15.4 22 15.9 28.9 13.8 5.9-1.9 5.9-6.5 6.9-7.6 1.2-1.3 2.2-1.8 3.1 1.1 0 .1 .6 11.9-6 12.7-1.6 .2-19.4 3.7-32.7-3.4-21-11.2-16.7-35.5-6.9-45.3 14-14.1 39.9-7.1 42.3-6.5l0 0zM289.8 280.1c3.3 0 3.7 3 .2 3.4-2.6 .3-5-.4-5 5.5 0 2-.2 29 .4 41.4 .1 2.3 1.2 3.5 3.4 3.7 22 1.2 15-1.7 18.8-6.3 1.8-2.2 2.8 .8 2.8 1.1 .3 13.6-4 12.4-5.2 12.4l-38.2-.2c-1.9-.2-2.1-3-.4-3.4 2-.5 4.9 .4 5.1-2.8 1-15.9 .6-44.6 .3-47.8-.3-3.8-2.8-3.3-5.7-3.7-2.5-.4-2-3.2 .3-3.2 1.4 0 18 0 23.1 0zm-31.6-57.8c.1 4.1 2.9 3.5 6 3.6 2.6 .1 2.5 3.4-.1 3.4-6.5 0-13.7 0-21.6-.1-3.8 0-3.4-3.4 0-3.4 4.5 0 3.2 1.6 3.4-45.5 0-5.1-3.3-3.5-4.7-4.2-2.6-1.2-1.4-3.1 .4-3.2 1.3 0 20.2-.4 21.2 .2s1.9 1.6-.4 2.9c-1 .5-3.9-.3-4.2 2.5 0 .2-.8 1.6-.1 43.8l0 0zM221.3 496.6c.5 .3 1 .5 1.6 .5s1.1-.2 1.6-.5c17-9.8 182-103.6 197.4-112.5-.1-.4 11.3-.2-181.5-.3-1.2 0-1.6 .4-1.5 1.6 0 .1 1.3 44.5 1.2 50.4-.1 2.6-.6 5.2-1.4 7.7-.6 1.8 .4-.5-13.5 32.2-.7 1.7-1 2.2-2-.1-4.2-10.3-8.3-20.7-12.6-31-1.5-3.4-2.2-7.1-2-10.8 .2-2.5 .8-16.1 1.5-48 0-1.9 0-2-2-2l-183 0c2.6 1.6 178.3 102.6 196 112.8l.1 0zM130.4 307.9c0 2.4 .4 2.8 2.8 3 11.5 1.2 21 3.7 25.6-7.3 6-14.5 2.7-34.4-12.5-38.8-2-.6-16-2.8-15.9 1.5 0 8 0 11.6 0 41.6zm105.8-15c0 2.1 1.1 38.7 1.1 39.1 .3 9.9-25.6 5.8-25.2-2.6 .1-2 1.4-37.4 1.1-39.4-14.1 7.4-14.4 40.2 6.4 48.8 4 1.7 8.4 1.9 12.5 .6s7.6-4 9.9-7.7c4.9-7.8 6.8-29.5-5.4-39-.1 .1-.2 .1-.4 .1l0 0zm-12.3-198c-9.8 0-9.7 14.8-.1 14.9s10.1-14.9 .1-14.9l0 0zM143.7 198.6c0 1.8 .4 2.4 2.2 2.6 13.6 1.4 12.5-11 12.2-13.4-1.7-11.2-14.4-10.2-14.4-7.8 0 4.5 0 13.7 0 18.6zM356 205l-6.1-15.8c-2.2 5.5-4.2 10.6-6.2 15.8l12.3 0z\"]\n};\nvar faSteamSymbol = {\n prefix: 'fab',\n iconName: 'steam-symbol',\n icon: [448, 512, [], \"f3f6\", \"M273.5 177.5a61 61 0 1 1 122 0 61 61 0 1 1 -122 0zm174.5 .2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358 0 250.7 97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7C220.7 114.5 271.7 64 334.2 64 397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zM410.5 177.7a76.4 76.4 0 1 0 -152.8 0 76.4 76.4 0 1 0 152.8 0z\"]\n};\nvar faMailchimp = {\n prefix: 'fab',\n iconName: 'mailchimp',\n icon: [448, 512, [], \"f59e\", \"M331 243.5c3.1-.4 6.2-.4 9.3 0 1.7-3.8 2-10.4 .5-17.6-2.2-10.7-5.3-17.1-11.5-16.1s-6.5 8.7-4.2 19.4c1.3 6 3.5 11.1 6 14.3l0 0zM277.4 252c4.5 2 7.2 3.3 8.3 2.1 1.9-1.9-3.5-9.4-12.1-13.1-5-2.1-10.4-2.8-15.8-2.2s-10.5 2.7-14.8 5.8c-3 2.2-5.8 5.2-5.4 7.1 .9 3.7 10-2.7 22.6-3.5 7-.4 12.8 1.8 17.3 3.7l0 0zm-9 5.1c-9.1 1.4-15 6.5-13.5 10.1 .9 .3 1.2 .8 5.2-.8 6-2.3 12.4-2.9 18.7-1.9 2.9 .3 4.3 .5 4.9-.5 1.5-2.2-5.7-8-15.4-6.9l0 0zm54.2 17.1c3.4-6.9-10.9-13.9-14.3-7s10.9 13.9 14.3 7l0 0zm15.7-20.5c-7.7-.1-8 15.8-.3 15.9s8-15.8 .3-16l0 0zM119.5 332.7c-1.3 .3-6 1.5-8.5-2.3-5.2-8 11.1-20.4 3-35.8-9.1-17.5-27.8-13.5-35-5.5-8.7 9.6-8.7 23.5-5 24.1 4.3 .6 4.1-6.5 7.4-11.6 .9-1.4 2.1-2.6 3.5-3.6s3-1.6 4.6-2 3.4-.4 5 0 3.3 1 4.7 1.9c11.6 7.6 1.4 17.8 2.3 28.6 1.4 16.7 18.4 16.4 21.6 9 .2-.4 .3-.8 .3-1.2s-.2-.8-.5-1.1c0 .9 .7-1.3-3.4-.4l0 0zm299.7-17.1c-3.3-11.7-2.6-9.2-6.8-20.5 2.4-3.7 15.3-24-3.1-43.3-10.4-10.9-33.9-16.5-41.1-18.5-1.5-11.4 4.6-58.7-21.5-83 20.8-21.6 33.8-45.3 33.7-65.7-.1-39.2-48.2-51-107.4-26.5l-12.5 5.3c-.1 0-22.7-22.3-23.1-22.6-67.5-58.9-278.8 175.9-211.3 232.9l14.8 12.5c-4 10.7-5.4 22.2-4.1 33.5 3.4 33.4 36 60.4 67.5 60.4 57.7 133.1 267.9 133.3 322.3 3 1.7-4.5 9.1-24.6 9.1-42.4s-10.1-25.3-16.5-25.3l0 0zm-316 48.2c-22.8-.6-47.5-21.1-49.9-45.5-6.2-61.3 74.3-75.3 84-12.3 4.5 29.6-4.7 58.5-34.1 57.8l0 0zM84.7 249.6c-15.2 3-28.5 11.5-36.7 23.5-4.9-4.1-14-12-15.6-15-13-24.8 14.2-73 33.3-100.2 47.1-67.2 120.9-118.1 155-108.9 5.5 1.6 23.9 22.9 23.9 22.9s-34.1 18.9-65.8 45.3C136.2 150 104 197.7 84.7 249.6zM323.6 350.7s-35.7 5.3-69.5-7.1c6.2-20.2 27 6.1 96.4-13.8 15.3-4.4 35.4-13 51-25.4 3.4 7.8 5.8 15.9 7.1 24.3 3.7-.7 14.2-.5 11.4 18.1-3.3 19.9-11.7 36-25.9 50.8-8.9 9.6-19.4 17.5-31.2 23.3-6.5 3.4-13.3 6.3-20.3 8.6-53.5 17.5-108.3-1.7-126-43-1.4-3.1-2.6-6.4-3.6-9.7-7.5-27.2-1.1-59.8 18.8-80.4 1.2-1.3 2.5-2.9 2.5-4.8-.2-1.7-.8-3.3-1.9-4.5-7-10.1-31.2-27.4-26.3-60.8 3.5-24 24.5-40.9 44.1-39.9l5 .3c8.5 .5 15.9 1.6 22.9 1.9 11.7 .5 22.2-1.2 34.6-11.6 4.2-3.5 7.6-6.5 13.3-7.5 2.3-.6 4.7-.7 7-.3s4.6 1.2 6.6 2.5c10 6.6 11.4 22.7 11.9 34.5 .3 6.7 1.1 23 1.4 27.6 .6 10.7 3.4 12.2 9.1 14 3.2 1 6.2 1.8 10.5 3.1 13.2 3.7 21 7.5 26 12.3 2.5 2.5 4.2 5.8 4.7 9.3 1.6 11.4-8.8 25.4-36.3 38.2-46.7 21.7-93.7 14.4-100.5 13.7-20.2-2.7-31.6 23.3-19.5 41.1 22.6 33.4 122.4 20 151.4-21.4 .7-1 .1-1.6-.7-1-41.8 28.6-97.1 38.2-128.5 26-4.8-1.8-14.7-6.4-15.9-16.7 43.6 13.5 71 .7 71 .7s2-2.8-.6-2.5zM171.7 157.5c16.7-19.4 37.4-36.2 55.8-45.6 .1-.1 .3-.1 .5-.1s.3 .1 .4 .2 .2 .3 .2 .4 0 .3-.1 .5c-1.5 2.7-4.3 8.3-5.2 12.7 0 .1 0 .3 0 .4s.2 .3 .3 .4 .3 .1 .4 .1 .3 0 .4-.1c11.5-7.8 31.5-16.2 49-17.3 .2 0 .3 0 .5 .1s.2 .2 .3 .4 .1 .3 0 .5-.1 .3-.3 .4c-2.9 2.2-5.5 4.8-7.7 7.7-.1 .1-.1 .2-.1 .4s0 .3 .1 .4 .2 .2 .3 .3 .2 .1 .4 .1c12.3 .1 29.7 4.4 41 10.7 .8 .4 .2 1.9-.6 1.7-69.5-15.9-123.1 18.5-134.5 26.8-.2 .1-.3 .1-.5 .1s-.3-.1-.5-.2-.2-.3-.2-.5 .1-.4 .2-.5l-.1 0z\"]\n};\nvar faLumon = {\n prefix: 'fab',\n iconName: 'lumon',\n icon: [640, 512, [], \"e7e2\", \"M452.5 223.5c9.8 0 16.5 6.3 16.5 16.6l0 31.8c0 10.3-6.6 16.6-16.6 16.6l-56.2 0c-9.8 0-16.5-6.3-16.5-16.6l0-31.8c0-10.3 6.7-16.6 16.5-16.6l56.3 0zm-25.7 13.1c-1.5-2.6-3.2-2.6-4.6 0l-10.7 17.6c-1.7 2.4-2.6 5.1-2.6 8.2 0 7.9 6.9 14.6 15.6 14.6 8.5 0 15.6-6.7 15.6-14.6 0-3-1-5.8-2.7-8.2l-10.7-17.6zM85.8 223.8c1 0 1.5 .6 1.5 1.5l0 50.3 64.6 0c1 0 1.6 .6 1.6 1.5l0 9.7c0 .9-.6 1.5-1.6 1.5l-78.4 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l12.3 0zm88.3 0c1 0 1.5 .6 1.5 1.5l0 45c0 4 2 5.2 5.7 5.2l46.9 0c3.8 0 5.7-1.3 5.7-5.2l0-45c0-.9 .5-1.5 1.5-1.5l12.3 0c1 0 1.6 .6 1.6 1.5l0 46c0 10.5-5.3 16.8-17.6 16.8l-54 0c-12.3 0-17.6-6.3-17.6-16.8l0-46c0-.9 .6-1.5 1.6-1.5l12.3 0zm108.2 0c1 0 1.6 .5 2.2 1.4l30.5 46.4 1.4 0 30.5-46.4c.6-.9 1.2-1.4 2.2-1.4l18 0c1 0 1.5 .6 1.5 1.5l0 61.4c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-43.8-1.1 0-28.7 43.8c-.6 .9-1.3 1.5-2.4 1.5l-10.7 0c-1 0-1.7-.6-2.3-1.5l-28.7-43.8-1.1 0 0 43.8c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l17.9 0zm214.4 0c.9 0 1.3 .4 2.2 1.1l52.7 46.3 1.3 0 0-46c0-.9 .6-1.5 1.6-1.5l12.3 0c1 0 1.6 .6 1.6 1.5l0 61.4c0 .9-.6 1.5-1.6 1.5l-14.4 0c-1 0-1.4-.4-2.3-1.1l-52.6-46.3-1.4 0 0 46c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l14.4 0zM320 114.1c87.9 0 167.7 15.7 225.5 41l2.7 1.2C587.1 173.8 640 206.5 640 256s-52.9 82.2-91.8 99.6l-2.7 1.2c-57.8 25.4-137.6 41-225.5 41-76.2 0-155.1-10.5-225.5-41-39.6-17.4-94.5-50.3-94.5-100.8s54.9-83.5 94.5-100.8c70.4-30.5 149.3-41 225.5-41zm-88.9 229c20.3 29 52.8 49.6 88.9 49.6 36.2 0 68.7-20.6 89-49.7l-177.9 .1zm-96.1 0c43.3 29.7 96.7 43.5 148.4 48-24.2-9.1-44.4-26.7-58.6-48.1l-89.9 0zm280.3-.1c-14.2 21.4-34.4 39.1-58.6 48.1 51.8-4.5 105.3-18.3 148.6-48.2l-90 0zm-337.4 .1c44.1 23.1 93.7 35.4 142.7 42.6-33.4-8.6-66.5-21.9-94.4-42.6l-48.3 0zm436.2-.2c-27.9 20.8-61.1 34.2-94.6 42.8 47.3-6.9 89.6-18.5 123.9-33.6l1.7-.8c6.1-2.7 11.9-5.5 17.4-8.4l-48.5 0zM520 173.6c10.7 8.7 19.8 18.1 27 28.2 .4 .6 .5 1.3 .1 2s-1 1-1.7 1l-1.6 0c-.6 0-1.2-.3-1.5-.8-7.9-10.9-18.2-21.1-30.6-30.4l-93.5 0c5.4 8.8 9.9 18.5 13.4 28.6 .2 .6 .1 1.2-.2 1.7s-.9 .8-1.6 .8l-1.4 0c-.8 0-1.5-.5-1.8-1.3-3.8-10.7-8.7-20.8-14.5-29.9l-184.3 .1c-5.8 9.1-10.7 19.1-14.4 29.8-.3 .8-1 1.3-1.8 1.3l-1.4 0c-.6 0-1.2-.3-1.6-.8s-.5-1.1-.2-1.7c3.5-10.2 8-19.7 13.4-28.6l-93.6 0c-12.3 9.3-22.6 19.4-30.4 30.3-.4 .5-.9 .8-1.5 .8l-1.6 0c-.7 0-1.4-.4-1.7-1s-.3-1.4 .1-2c7.6-10.5 16.7-19.9 26.8-28l-51 0c-28.9 16.6-62 43.3-63.5 79.7l44.7 0c.5 0 1 .2 1.3 .6s.6 .8 .6 1.3l0 1.3c0 1.1-.9 1.9-1.9 1.9l-44.7 0C6.8 295 40 321.7 69 338.3l50.9 0c-10.3-8.4-19.1-17.4-26.1-27l-.8-1.1c-.4-.6-.5-1.3-.1-2s1-1 1.7-1l1.6 0 .2 0c.5 .1 1 .3 1.3 .8 7.9 10.9 18.1 21 30.5 30.3l93.6 0c-5.3-8.8-9.8-18.4-13.4-28.5-.2-.6-.1-1.2 .2-1.7s.9-.8 1.6-.8l1.4 0 .2 0c.7 .1 1.4 .6 1.7 1.3 3.8 10.7 8.6 20.7 14.4 29.8l184.5-.1c5.8-9.1 10.6-19.1 14.4-29.7l.1-.1c.3-.7 1-1.1 1.7-1.1l1.4 0c.6 0 1.2 .3 1.6 .8s.5 1.2 .2 1.7c-3.5 10.1-8 19.7-13.3 28.5l93.7 0c12.3-9.3 22.5-19.4 30.3-30.2l.1-.2c.4-.4 .9-.6 1.4-.6l1.6 0c.7 0 1.4 .4 1.7 1s.3 1.4-.1 2c-7.1 10-16.1 19.3-26.7 27.9l51.1 0c28.8-16.6 61.8-43.3 63.4-79.6l-44.7 0c-1 0-1.9-.9-1.9-1.9l0-1.3c0-1.1 .9-1.9 1.9-1.9l44.7 0c-1.6-36.5-34.9-63.3-63.9-79.9l-50.9 0zM220.5 126.2c-49.1 7.1-98.7 19.5-143 42.7l48.4 0c27.9-20.8 61-34.1 94.5-42.7zm62.8-5.4c-51.8 4.5-105.2 18.3-148.6 48.1l90 0c14.2-21.4 34.4-39 58.6-48.1zm36.6-1.6c-36.2 0-68.7 20.6-89 49.7l177.9-.1c-20.3-29.1-52.7-49.6-88.9-49.6zm36.6 1.6c24.2 9.1 44.4 26.6 58.5 48l89.8 0c-43.3-29.7-96.6-43.5-148.3-48zm62.8 5.4c33.4 8.5 66.4 21.9 94.3 42.5l48.3 0c-44.1-23.1-93.6-35.4-142.6-42.5z\"]\n};\nvar faNutritionix = {\n prefix: 'fab',\n iconName: 'nutritionix',\n icon: [448, 512, [], \"f3d6\", \"M112 8.1S245.4-.1 233 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zM424 323.7c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48-22.3-37-32-83.8-32-132.3 0-48.4 17.7-94.7 40-131.7 42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM144 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM216 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM288 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM360 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM384 256c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S118.8 180.1 80 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"]\n};\nvar faCreativeCommonsSamplingPlus = {\n prefix: 'fab',\n iconName: 'creative-commons-sampling-plus',\n icon: [512, 512, [], \"f4f1\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1 .4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7-43.9 0 0 23.2 51.3 0c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2 .2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1 .1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4 50.5 0 0-23.2-58.4 .3zm-78 5.2l-21.9 0 0 21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5l0-21.9-21.9 0c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5l21.9 0 0-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5l0 21.9 21.9 0c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"]\n};\nvar faRedhat = {\n prefix: 'fab',\n iconName: 'redhat',\n icon: [512, 512, [], \"f7bc\", \"M341.5 285.6c33.7 0 82.3-6.9 82.3-47 .2-6.7 .9-1.8-20.9-96.2-4.6-19.1-8.7-27.8-42.3-44.6-26.1-13.3-82.9-35.4-99.7-35.4-15.7 0-20.2 20.2-38.9 20.2-18 0-31.3-15.1-48.1-15.1-16.1 0-26.7 11-34.8 33.6-27.5 77.6-26.3 74.3-26.1 78.3 0 24.8 97.6 106.1 228.5 106.1zM429 254.8c4.7 22 4.7 24.3 4.7 27.2 0 37.7-42.3 58.6-98 58.6-125.7 .1-235.9-73.6-235.9-122.3 0-6.8 1.4-13.5 4.1-19.7-45.2 2.3-103.8 10.3-103.8 62 0 84.7 200.6 189 359.5 189 121.8 0 152.5-55.1 152.5-98.6 0-34.2-29.6-73-82.9-96.2z\"]\n};\nvar faSquarePiedPiper = {\n prefix: 'fab',\n iconName: 'square-pied-piper',\n icon: [448, 512, [\"pied-piper-square\"], \"e01e\", \"M32.1 419l-32 60.2 .8-328C.9 85.3 54.1 32 120.1 32l327.2 0C354.3 60.9 257.4 126.2 193.4 200.6 122.8 282 82.7 338 32.1 419zm416-387S305.3 98.8 261.7 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66l328.4 0c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"]\n};\nvar faPiedPiperSquare = faSquarePiedPiper;\nvar faWhatsapp = {\n prefix: 'fab',\n iconName: 'whatsapp',\n icon: [448, 512, [], \"f232\", \"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\"]\n};\nvar faImdb = {\n prefix: 'fab',\n iconName: 'imdb',\n icon: [448, 512, [], \"f2d8\", \"M89.5 323.6l-35.6 0 0-137.4 35.6 0 0 137.4zm66.6-73.1l9.1-64.3 46.3 0 0 137.4-31 0 0-92.7-13.4 92.7-21.3 0-13-90.7-.1 90.7-31.2 0 0-137.4 46.1 0c.5 8.3 2.8 18.1 4.3 29.4l4.2 34.9zm67.6 73.1l0-137.4 26.6 0c17 0 27 .9 33 2.4 6.1 1.7 10.7 4.2 13.9 7.9 3.1 3.3 5.1 6.6 5.8 12 .9 4.4 1.4 13.1 1.4 26.2l0 48.2c0 12.3-.7 20.5-1.9 24.7-1.1 4.1-3.1 7.4-6 9.7-2.8 2.4-6.4 4.1-10.7 5-4.2 .8-10.6 1.3-19.1 1.3l-43 0zm35.5-113.9l0 89.4c5.1 0 8.3-1 9.4-2.3 1.1-2 1.8-7.6 1.8-16.7l0-53.3c0-6.2-.1-10.2-.7-12-.3-1.8-1.2-3-2.6-4.7-1.4 0-4.1-.4-7.9-.4zm57.3 113.9l0-137.4 34.1 0 0 43.9c2.9-2.4 6.1-4.9 9.5-6.6 3.6-1.5 8.8-2.4 12.8-2.4 4.8 0 8.9 .8 12.3 2.2 3.4 1.5 6 3.5 8 6.2 1.7 2.6 2.7 5.3 3.1 7.8 .4 2.6-.2 8-.2 16.2l0 38.6c0 8.2 .2 14.3-.8 18.4-1.1 4-3.8 7.6-7.8 9.6-4.1 3.9-8.9 5.3-14.6 5.3-4 0-9.2-.9-12.7-2.5-3.5-1.8-6.7-4.5-9.6-8l-2.1 8.7-32 0zm45.1-20.7c.7-1.8 1-6 1-12.5l0-35.4c0-5.6-.3-9.5-1.1-11.2-.7-1.9-3.7-2.7-5.8-2.7-2 0-3.4 .8-4.1 2.3-.6 1.5-1 5.4-1 11.6l0 36.4c0 6.1 .4 10 1.2 11.6 .6 1.7 2.1 2.5 4.1 2.5 2.2 0 4.2-.8 5.7-2.6zM418.4 32c15.7 1.2 28.7 15.2 28.7 31.9l0 384.2c0 16.4-11.9 30.4-28.2 31-.3 0-.5 .9-.8 .9L29.9 480c-.3 0-.6-.9-.8-.1-15.7-1.4-27.9-13.8-29-30.2L0 61.8C1.1 45.9 13.8 33.1 30.3 31.1l387.4 0c.2 0 .5 .9 .7 .9zM30.3 41.3C19 42 10 51 9.3 62.4l0 387.3c.4 5.4 2.7 10.5 6.4 14.3 3.8 3.9 8.8 6.3 14.2 6.7l388.2 0c11.5-1 20.6-11.6 20.6-22.6l0-384.2c0-5.7-2.1-11.3-6-15.5s-9.3-6.8-15-7.2l-387.4 0z\"]\n};\nvar faPython = {\n prefix: 'fab',\n iconName: 'python',\n icon: [448, 512, [], \"f3e2\", \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2l-40.1 0 0 47.4c0 36.8-31.2 67.8-66.8 67.8l-106.8 0c-29.2 0-53.4 25-53.4 54.3l0 101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3l0-40.7-106.7 0 0-13.6 160.2 0c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 444.7a20.4 20.4 0 1 1 0-40.7 20.4 20.4 0 1 1 0 40.7zM167.8 248.1l106.8 0c29.7 0 53.4-24.5 53.4-54.3l0-101.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8 .1-45.2 8-53.4 24.7-53.4 55.6l0 40.7 106.9 0 0 13.6-147 0c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2l36.7 0 0-48.8c0-35.3 30.5-66.4 66.8-66.4zM161.2 64.7a20.4 20.4 0 1 1 0 40.8 20.4 20.4 0 1 1 0-40.8z\"]\n};\nvar faCashApp = {\n prefix: 'fab',\n iconName: 'cash-app',\n icon: [448, 512, [], \"e7d4\", \"M440.3 96.9c-9.4-26.5-30.3-47.4-56.8-57-24.1-7.9-46.3-7.9-91.6-7.9L156 32c-44.8 0-67.2 0-91.3 7.5-26.5 9.6-47.4 30.5-57 57-7.7 24.3-7.7 46.7-7.7 91.7L0 323.8c0 45.2 0 67.4 7.5 91.5 9.6 26.5 30.5 47.4 57 57 24.3 7.7 46.7 7.7 91.6 7.7l135.7 0c45 0 67.4 0 91.6-7.7 26.5-9.6 47.4-30.5 57-57 7.7-24.3 7.7-46.7 7.7-91.5l0-135.5c0-45 0-67.4-7.7-91.5zM323.1 185.4l-25.8 21.1c-2.3 1.9-5.5 1.5-7.3-.9-13.2-16.2-33.7-25.4-56.1-25.4-25 0-40.6 10.9-40.6 26.2-.4 12.8 11.7 19.6 49.1 27.7 47.2 10 68.7 29.7 68.7 62.7 0 41.4-33.7 71.9-86.4 75.3l-5.1 24.5c-.4 2.3-2.6 4.1-5.1 4.1l-40.6 0c-3.4 0-5.8-3.2-5.1-6.4l6.4-27.3c-26-7.5-47.2-22-59.3-39.7-1.5-2.3-1.1-5.3 1.1-7l28.2-22c2.3-1.9 5.8-1.3 7.5 1.1 14.9 20.9 38 33.3 65.7 33.3 25 0 43.8-12.2 43.8-29.7 0-13.4-9.4-19.6-41.2-26.2-54.2-11.7-75.8-31.8-75.8-64.9 0-38.4 32.2-67.2 80.9-71l5.3-25.4c.4-2.3 2.6-4.1 5.1-4.1l39.9 0c3.2 0 5.8 3 5.1 6.2l-6.2 28.4c20.9 6.4 38 17.9 48.7 32.2 1.7 2.1 1.3 5.3-.9 7z\"]\n};\nvar faPinterestP = {\n prefix: 'fab',\n iconName: 'pinterest-p',\n icon: [384, 512, [], \"f231\", \"M204 6.5c-102.6 0-204 68.4-204 179.1 0 70.4 39.6 110.4 63.6 110.4 9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8 0-99.3-85.8-164.1-180-164.1z\"]\n};\nvar faWhmcs = {\n prefix: 'fab',\n iconName: 'whmcs',\n icon: [448, 512, [], \"f40d\", \"M448 161l0-21.3-28.5-8.8-2.2-10.4 20.1-20.7-10.4-19.4-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4-22.6 0-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6 .3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zM328.8 92.6a56.8 56.8 0 1 1 0 113.6 56.8 56.8 0 1 1 0-113.6zm72.3 130l46.9 14.5 0 39.9-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1 .5-40.9 53.5-14.7 5.7-19.7-38.9-39.4 20.7-35.8 53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4 22.7-6.1 11.6-52 42.4 0 11.6 45.9-22.6-5.9-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7c0 3.2-.1 9.6-.3 19.3-47.5 10.4-83.3 52.8-83.3 103.5 0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8 9.9 .1 16.6 .2 20.1 .3l1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"]\n};\nvar faJoget = {\n prefix: 'fab',\n iconName: 'joget',\n icon: [512, 512, [], \"f3b7\", \"M386.1 45C345.6 19.9 300.6 8 256.2 8 173 8 91.8 49.9 44.9 125.9-27 242.5 9.3 395.2 125.9 467.1s269.3 35.6 341.2-80.9C539 269.6 502.7 116.8 386.1 45zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zM237.1 281.9c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7-128.6 8.7-167.3 99.3-178.3 140.2-8.8-49.7-.1-102.7 28.5-149.1 61.9-100.5 193.5-131.7 294-69.8 74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3L393.5 266 440 242.6s3.6-9.5-19.1-15.5z\"]\n};\nvar faSquareYoutube = {\n prefix: 'fab',\n iconName: 'square-youtube',\n icon: [448, 512, [61798, \"youtube-square\"], \"f431\", \"M282 256.2l-95.2-54.1 0 108.2 95.2-54.1zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9-28.3 7.7-142.2 7.7-142.2 7.7s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9-7.6-28.6-7.6-88.2-7.6-88.2s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4 28.3-7.7 142.2-7.7 142.2-7.7s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z\"]\n};\nvar faYoutubeSquare = faSquareYoutube;\nvar faAtlassian = {\n prefix: 'fab',\n iconName: 'atlassian',\n icon: [512, 512, [], \"f77b\", \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7l175 0c5.8 .1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4L497 512c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6 .1z\"]\n};\nvar faPiedPiperHat = {\n prefix: 'fab',\n iconName: 'pied-piper-hat',\n icon: [640, 512, [], \"f4e5\", \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9 .6 2.8 .8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6-73.4 1.1-97.5-33.5-97.5-35.1 0-1.1 .6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3 73.6-140.3 139.2-189.4 210.6-189.4 0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"]\n};\nvar faInternetExplorer = {\n prefix: 'fab',\n iconName: 'internet-explorer',\n icon: [512, 512, [], \"f26b\", \"M483.1 159.7c10.9-24.6 21.4-60.4 21.4-87.9 0-72.7-79.6-98.4-209.7-38.6-107.6-7.2-211.2 73.7-237.1 186.5 30.9-34.9 78.3-82.3 122-101.2-54.3 48.3-100.6 109.4-135.7 173.2-20.7 37.9-44 99.2-44 145 0 98.6 92.9 86.5 180.3 42 31.4 15.4 66.6 15.6 101.7 15.6 97.1 0 184.2-54.3 216.8-146l-120.8 0c-52.5 88.6-196.8 53-196.8-47.4l328.8 0c6.4-43.6-1.7-95.7-26.9-141.2zM64.6 346.9C82.3 398 118.3 442.7 164.8 470.2 76.1 519.1-8.4 499.3 64.6 346.9zM180.5 238c2-55.2 50.3-94.9 104-94.9 53.4 0 102 39.7 104 94.9l-208 0zM365.1 50.4c21.4-10.3 48.6-22 72.6-22 31.4 0 54.3 21.7 54.3 53.7 0 20-7.4 49-14.6 67.9-26.3-42.3-66-81.6-112.3-99.6z\"]\n};\nvar faAirbnb = {\n prefix: 'fab',\n iconName: 'airbnb',\n icon: [448, 512, [], \"f834\", \"M224.5 373.1c-25.2-31.7-40.1-59.4-45-83.2-22.5-88 112.6-88 90.1 0-5.4 24.2-20.3 52-45 83.2l-.1 0zm138.2 73.2c-42.1 18.3-83.7-10.9-119.3-50.5 103.9-130.1 46.1-200-18.8-200-54.9 0-85.2 46.5-73.3 100.5 6.9 29.2 25.2 62.4 54.4 99.5-32.5 36-60.5 52.7-85.2 54.9-50 7.4-89.1-41.1-71.3-91.1 15.1-39.2 111.7-231.2 115.9-241.6 15.8-30.1 25.6-57.4 59.4-57.4 32.3 0 43.4 25.9 60.4 59.9 36 70.6 89.4 177.5 114.8 239.1 13.2 33.1-1.4 71.3-37 86.6zm47-136.1c-128.9-274.3-136-278.2-185.1-278.2-45.5 0-64.9 31.7-84.7 72.8-106.2 212.3-116.4 242.4-117.3 245-25.2 69.3 26.7 130.2 89.6 130.2 21.7 0 60.6-6.1 112.4-62.4 58.7 63.8 101.3 62.4 112.4 62.4 62.9 .1 114.9-60.9 89.6-130.2 0-3.9-16.8-38.9-16.8-39.6l0 0z\"]\n};\nvar faJs = {\n prefix: 'fab',\n iconName: 'js',\n icon: [448, 512, [], \"f3b8\", \"M0 32l0 448 448 0 0-448-448 0zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"]\n};\nvar faQuinscape = {\n prefix: 'fab',\n iconName: 'quinscape',\n icon: [512, 512, [], \"f459\", \"M313.7 474.6l-1 0c-41.9 0-82.1-16.7-111.8-46.3s-46.3-69.9-46.3-111.8 16.7-82.1 46.3-111.8 69.9-46.3 111.8-46.3c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7 0-135.1-109.5-244.6-244.6-244.6S12.1 117.5 12.1 252.6 121.6 497.2 256.6 497.2c23.8 .2 47.6-3.2 70.4-10.1-5.2-3.5-8.9-8.1-13.3-12.5zm78.3-169a99.2 99.2 0 1 0 0 198.4 99.2 99.2 0 1 0 0-198.4z\"]\n};\nvar faAdversal = {\n prefix: 'fab',\n iconName: 'adversal',\n icon: [512, 512, [], \"f36a\", \"M482.1 32L28.7 32C5.8 32 0 37.9 0 60.9L0 451.1C0 474.4 5.8 480 28.7 480l453.4 0c24.4 0 29.9-5.2 29.9-29.7l0-388.1c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4 .4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9l-394.9 0c-7.4 0-18.2 4.8-17.8-10.7 .4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5l0 291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5l0-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6 .4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1 .2-.1 .3-.1 .5zM417.4 334.1c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2 .4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zM122.6 369.4c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"]\n};\nvar faCreativeCommons = {\n prefix: 'fab',\n iconName: 'creative-commons',\n icon: [512, 512, [], \"f25e\", \"M253.8 214.9l-33.2 17.3c-9.4-19.6-25.2-19.9-27.5-19.9-22.1 0-33.2 14.6-33.2 43.8 0 23.6 9.2 43.8 33.2 43.8 14.5 0 24.6-7.1 30.6-21.3l30.6 15.5c-6.2 11.5-25.7 39-65.1 39-22.6 0-74-10.3-74-77 0-58.7 43-77.1 72.6-77.1 30.7 0 52.7 11.9 66 35.9zm143 0l-32.8 17.3c-9.5-19.8-25.7-19.9-27.9-19.9-22.1 0-33.2 14.6-33.2 43.8 0 23.5 9.2 43.8 33.2 43.8 14.4 0 24.6-7.1 30.5-21.3l31 15.5c-2.1 3.8-21.4 39-65.1 39-22.7 0-74-9.9-74-77 0-58.7 43-77.1 72.6-77.1 30.7 0 52.6 11.9 65.6 35.9zM255.6 8C112.7 8 8 123.1 8 256.1 8 394.5 121.6 504.1 255.6 504.1 385.5 504.1 504 403.2 504 256.1 504 118.2 397.4 8 255.6 8zm.9 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.4-203.3 203.7-203.3 112.5 0 202.8 89.5 202.8 203.3 0 121.7-99.7 202.8-202.8 202.8z\"]\n};\nvar faNotion = {\n prefix: 'fab',\n iconName: 'notion',\n icon: [512, 512, [], \"e7d9\", \"M94.9 100.2c14.9 12.1 20.5 11.2 48.6 9.3L407.8 93.6c5.6 0 .9-5.6-.9-6.5L362.9 55.4c-8.4-6.5-19.6-14-41.1-12.1L65.9 61.9c-9.3 .9-11.2 5.6-7.5 9.3l36.4 28.9zm15.9 61.6l0 278.1c0 14.9 7.5 20.5 24.3 19.6l290.5-16.8c16.8-.9 18.7-11.2 18.7-23.3l0-276.2c0-12.1-4.7-18.7-15-17.7L125.7 143.1c-11.2 .9-14.9 6.5-14.9 18.7zm286.7 14.9c1.9 8.4 0 16.8-8.4 17.8l-14 2.8 0 205.3c-12.2 6.5-23.4 10.3-32.7 10.3-15 0-18.7-4.7-29.9-18.7l-91.5-143.7 0 139 29 6.5s0 16.8-23.4 16.8l-64.4 3.7c-1.9-3.7 0-13.1 6.5-14.9l16.8-4.7 0-183.8-23.3-1.9c-1.9-8.4 2.8-20.5 15.9-21.5l69.1-4.7 95.3 145.6 0-128.8-24.3-2.8c-1.9-10.3 5.6-17.7 14.9-18.7l64.5-3.8zM44.4 36.7L310.6 17.1c32.7-2.8 41.1-.9 61.6 14l85 59.7c14 10.3 18.7 13.1 18.7 24.3l0 327.6c0 20.5-7.5 32.7-33.6 34.5L133.2 495.8c-19.6 .9-29-1.9-39.2-14.9L31.4 399.7c-11.2-14.9-15.9-26.1-15.9-39.2l0-291.2c0-16.8 7.5-30.8 28.9-32.7z\"]\n};\nvar faChromecast = {\n prefix: 'fab',\n iconName: 'chromecast',\n icon: [512, 512, [], \"f838\", \"M448 64L64.2 64c-23.6 0-42.7 19.1-42.7 42.7l0 63.9 42.7 0 0-63.9 383.8 0 0 298.6-149.2 0 0 42.7 149.4 0c23.6 0 42.7-19.1 42.7-42.7l0-298.6C490.9 83.1 471.6 64 448 64zM21.5 383.6l0 63.9 63.9 0c0-35.3-28.6-63.9-63.9-63.9zm0-85l0 42.4c58.9 0 106.6 48.1 106.6 107l42.7 0c.1-82.4-66.9-149.3-149.3-149.4zM213.6 448l42.7 0C255.8 318.5 151 213.7 21.5 213.4l0 42.4c106-.2 192 86.2 192.1 192.2z\"]\n};\nvar faUltralyticsHub = {\n prefix: 'fab',\n iconName: 'ultralytics-hub',\n icon: [512, 512, [], \"e86e\", \"M130.4 16c60.9 0 110.4 49.5 110.4 110.4l0 24.9c4.8-.7 9.7-1 14.6-1 88.1-.2 165.1 49 205.4 121.2-22.8-16.2-50.7-25.4-80.4-25.3-77.1 .2-139.5 62.6-139.6 139.4-.1 60.9-49.5 110.3-110.7 110.5-60.6 .2-110.2-49.5-110.2-110.5 .2-2.6 0 0 .1-3.2l0-256C20.1 65.5 69.5 16 130.4 16zM380.3 496a110.4 110.4 0 1 1 0-220.9 110.4 110.4 0 1 1 0 220.9z\"]\n};\nvar faWikipediaW = {\n prefix: 'fab',\n iconName: 'wikipedia-w',\n icon: [640, 512, [], \"f266\", \"M640 51.2l-.3 12.2c-28.1 .8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6l-13.6 0-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3 .3-15 0-15-.3-46.9-109.7-96.1-218.6-143.1-328.6-11.4-26.7-49.4-70-75.6-69.7 0-3.1-.3-10-.3-14.2l161.9 0 0 13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7l0-13.9 142.5 .3 0 13.1c-19.4 .6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4 .3-3.6 0-10.3 .3-13.6 44.4-.3 111.1-.3 123.1-.6l0 13.6C462.4 64 439.1 76 426.8 94.9L367.6 217.7c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3l0-13.9 127.8 1.1 .2 .5z\"]\n};\nvar faSitrox = {\n prefix: 'fab',\n iconName: 'sitrox',\n icon: [448, 512, [], \"e44a\", \"M212.4 0l0 0 235.6 0 0 128-384 0C64 57.6 141.8 .5 212.4 0zm24.8 192l0 0c69.9 .5 146.7 57.6 146.7 128l-173.2 0 0 0C140.9 319.6 64 262.4 64 192l173.3 0zm-1.7 320c70.7-.5 148.4-57.6 148.4-128l-384 0 0 128 235.6 0 0 0z\"]\n};\nvar faSquareGitlab = {\n prefix: 'fab',\n iconName: 'square-gitlab',\n icon: [448, 512, [\"gitlab-square\"], \"e5ae\", \"M0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8-2 1-4.4 2-6.7 2-3 0-6.8-1.8-8.3-2.8l-54.2-40.9-67.9-50.9-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6 1.6-1 3.4-1.6 5.2-1.8 1.3-.7 2.1-.4 3.4 .1 .6 .2 1.2 .5 2 .7 1 .4 1.6 .9 2.4 1.5 .6 .4 1.2 1 2.1 1.5 1.2 1.4 2.2 3 2.7 4.8l29.2 92.2 122.9 0 30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z\"]\n};\nvar faGitlabSquare = faSquareGitlab;\nvar faShoelace = {\n prefix: 'fab',\n iconName: 'shoelace',\n icon: [512, 512, [], \"e60c\", \"M405.2 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9 1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8l.2 0c3.3-1.9 6-1.8 8.2 .4 3.9 2.1 4.2 5.6 .9 10.6L457.2 322c.2 .5 .4 1 .4 1.5 .5 2.2 .3 4.4-.5 6.6-.7 1.5-1.8 2.9-3.1 4.2-1.4 1.4-2.7 2.8-4.2 4.2L431 352.2c-1.7 1.2-3.4 2.3-5.1 3.3-2.1 1.3-4.3 2.5-6.6 3.6-1 .4-1.9 .9-2.9 1.3-5.9 2.5-11.9 4.2-18.2 5-2.9 24.5-11.3 47.1-25.1 67.8-17.5 25.7-41.4 45.4-71.8 58.8-30.2 13.5-63 20.2-98.2 20.2-48.6-.5-88-11.4-118.2-32.8-35.1-25-52.6-57.9-52.6-99.1l0-5.6c1.2-28.1 9.5-54.6 24.8-79.8 15.1-24.9 37.1-41.7 66.1-50.5 14.9-4.4 29.9-6.6 45-6.6 15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5l54.1 36.3c15.1 9.8 28.8 16.5 41.2 20-2.6-25.1-11.7-46.6-27.3-64.5-15.7-18.1-35.6-31.3-59.9-39.7L257 220c-21.4-7.5-37.3-14.9-47.7-22.2-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5 23-19.3 50.6-29 82.5-29 24 0 45.6 6.9 64.7 20.8 19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7-9.8 13.2-18.5 19.9-26 19.9-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8 0-4.1 1.6-7.6 4.9-10.4 13.8-12.4 20.8-26.7 20.8-42.8 0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.6 89.9 192.6 112c0 17.8 6.9 33.9 20.6 48.3 13.6 14.2 34.6 25.4 63 33.5 39.8 11.5 70.2 31 91.3 58.3 18.7 24.2 29.1 51.3 31.3 81.4 2.2-.7 4.3-1.5 6.5-2.6l-.1 .1zM294.4 178.7c0 1.1 .6 1.6 1.8 1.6 .1 0 9.7-8.9 28.8-26.6 0-2.4-5.1 .9-15.3 10-10.2 9.2-15.3 14.2-15.3 14.9l0 .1zm8 6.4c0-1-.5-1.5-1.5-1.5-1.1 0-2.1 .5-2.9 1.6-1.9-.1-3.3 .1-4.2 .7-.4 .2-.5 .5-.5 .7 0 .7 .5 1.3 1.5 1.6l3.3 0c2.9-1.1 4.4-2.2 4.4-3.3l-.1 .2zM325 165.2c0-2.8-1.6-2.8-4.9 0-1.6 1.5-3.6 3.5-6 6.2-.8 .6-2.6 2.2-5.3 4.9-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4 .1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3l-.1-.1zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1 .1-.1zM366.9 363.9c-8-2.1-15.4-4.6-22.2-7.5-15.3-6.2-34.3-17-57-32.4l-37.4-25.3c-15.8-10.1-30.2-17.6-43.2-22.6-13.1-4.9-26-7.3-38.6-7.3l-5.5 0c-32.2 1.7-57.2 13.8-75 36.2-16.6 20.8-25 45.3-25 73.6 0 31.8 12.8 56.7 38.2 74.7 25.4 18.1 60.2 27.1 104.4 27.1 34.7 0 64-6.2 87.8-18.6 23.7-12.4 42.1-28.8 55.2-49.2 9.8-15.5 15.9-31.8 18.2-48.8l.1 .1z\"]\n};\nvar faOpenstreetmap = {\n prefix: 'fab',\n iconName: 'openstreetmap',\n icon: [512, 512, [], \"e86b\", \"M61 498.7c-7.1-1.8-10.8-4.7-29.6-23.6-22.5-22.4-23.9-24.6-23.9-36.3 0-13-3.9-8.4 67.9-80.3 72.5-72.7 68.7-69.5 81.9-69.5 6.1 0 7.6 .4 12.5 2.8l5.6 2.8c11.7-11.7 23.4-23.4 35.1-35.1l-4.4-6.9c-8.6-13.3-16.6-32.8-20.3-48.9-10.2-45.4 .8-93.3 29.8-129.7 50.1-62.8 140.1-76.7 206.6-32 36.5 24.5 60.3 62.5 67 107 1.4 9.4 1.4 31.8 0 41.8-4.9 34.6-19.7 64-44.4 88.7-12.7 12.7-23 20.1-39.2 28.2-19.3 9.7-35.7 14.3-58 16.1-31.7 2.6-66.9-6.1-93.8-23.4l-6.9-4.4c-11.7 11.7-23.4 23.4-35.1 35.1l2.8 5.6c2.5 4.9 2.8 6.4 2.8 12.5 0 13.1 3.1 9.4-69 81.5-55.6 55.5-64.1 63.7-68.4 65.7-5.5 2.5-13.9 3.4-19 2.1zM359.4 296.9c40.1-7.3 75.1-34 92.7-70.7 28-58.4 9.2-127-44.8-163.3-12.9-8.7-30.8-16-47.7-19.4-11.7-2.4-36.4-2.1-48.6 .5-18.2 3.9-34.9 11.1-49.4 21.4-8.9 6.4-23.7 21.1-29.9 29.9-34.6 49-31.5 114.1 7.7 159.3 20.1 23.2 47.8 38.4 78.6 43 10.2 1.5 31 1.2 41.5-.8zm-35.5-17.4c-13.8-2.2-25.6-5.7-35.1-10.5l-5.4-2.7 0-49.9-9.5 0c-8.2 0-19.5 1.6-27.7 4-1.1 .3-1.5 1.6-1.7 4.8l-.3 4.4-4.1-7.8c-9-17.2-12.2-30.7-12.2-51.4 0-16 1.1-23.4 5.6-36.3 2.4-6.8 8.2-18.9 10.8-22.3 1.1-1.5 1.2-1.1 1.3 3.3l0 5c18.8-.2 37.6-.3 56.4-.5 .2-4.7 .3-9.5 .5-14.2l-19 0 0-31 3.4-1.7c5.6-2.8 15.9-6.7 21.7-8.2 3-.8 6.1-1.6 6.9-1.8 1.2-.4 1.3 .1 .7 3.3-1.2 6.1-.9 23 .5 29 2.8 11.9 9.8 20.7 19.2 24.3 5.6 2.1 16.3 2.6 22.5 .9 5.9-1.6 12.5-6.4 15.9-11.5 5-7.5 6.7-14.1 7.2-27.1l.4-11.4 7 3.6c8 4.2 17.8 11.2 24.9 18 4.8 4.6 5 4.8 5 9.2l0 4.5-18.9 0 0 14.6 35 0c1.3 2.6 2.5 5.2 3.8 7.7l-9.7 0c-6.7 0-12.7 .6-19.4 1.9l-9.7 1.9 0 7.1c0 3.9 .2 7.1 .3 7.1s4.1-.8 8.7-1.7 8.7-1.7 9.1-1.7c.4 0 .8 11.3 .8 25.8l0 25.8c-6.2 .2-12.3 .3-18.5 .5-.2 4.7-.3 9.4-.5 14.2 13.5 .2 27 .3 40.4 .5-1 2.3-2 4.5-3 6.8l-10.7 .1c-9.9 .1-11.1 .2-15.6 2.5-11.8 5.8-18.1 18.9-18.3 37.9l-.1 9.3-5.8 3c-5 2.6-22.6 9-24.9 9-.5 0-.8-12-.8-30.6l0-30.6-9.4 0c-6 0-12.4 .6-17.9 1.7-12.6 2.6-11.5 1.7-11.5 9.5 0 5 .3 6.8 1.1 6.8 .6 0 4.6-.8 8.8-1.7s8-1.7 8.3-1.7 .6 11 .6 24.5l0 24.5-7.5-.1c-4.1-.1-8.5-.3-9.7-.5zm-39.4-71.6c8.9-3.9 15.6-12.9 18.3-24.4 1.6-6.9 1.7-22.6 0-30.2-2.5-12-9.6-21.1-19.3-24.8-6.9-2.6-18.4-2.6-25.3 0-9.7 3.7-16.4 12.8-19.2 25.6-1.6 7.5-1.6 21.4 0 28.9 2.6 12.5 10.5 22.3 20.6 25.6 7 2.3 18.9 2 24.9-.7zm-19.9-14.5c-3.5-3-5.2-8.9-5.8-20.6-.6-10.5 .6-21.3 2.9-26 2-4.3 5.8-6.4 10.4-6 7.4 .8 10.3 6.5 11.1 22.5 .9 16.7-1.9 28.9-7 31.3-3.9 1.8-8.6 1.3-11.6-1.2zm94.9 15.1c15-4.6 22.8-20.1 21.9-43.5-.8-19.9-7.9-32.1-21.5-37.2-5.7-2.1-18-1.8-24 .5-9.6 3.7-16.4 12.4-19.3 24.7-2 8.6-1.3 28 1.3 35.2 4 11.3 11.6 18.7 21.4 21 5.8 1.4 14.4 1 20.3-.8zm-16.7-14.2c-5-2.7-7.3-13.2-6.5-30.1 .6-12.8 1.5-16.7 4.8-20.4 4.7-5.3 13.6-3.8 16.7 2.8 3.4 7.3 4 30.1 1 40.2-1.7 5.7-5.2 8.8-10.1 8.7-2 0-4.6-.6-5.8-1.3zm-85.2 51.5c-7.3-7.6-9.9-11.4-8.4-11.9 2.9-.9 13.9-3.1 14.2-2.8 .2 .2 .2 4.9 .1 10.4l-.2 10.1-5.6-5.9zm156.4-1.2c.7-6 3.1-11.5 5.7-13.2 2.9-1.8 6.4-2.6 8-1.7 1.2 .7 .9 1.5-2.4 5.9-2.1 2.8-5.6 7-7.8 9.4l-4 4.3 .5-4.7zM438.4 161l.1-32.9 2.6 7.7c5.1 15.3 6.9 31.8 5.1 46.6-1.4 11.6-1.4 11.5-4.9 11.5l-3 0 .1-32.9zM344 106.2c-2.6-1-5.3-4.8-6.5-9-1.2-4-1.5-28.5-.4-33.5 .6-3 .9-3.2 3.8-3.2 6.2 0 18.3 2 18.7 3.1 .2 .6 .7 4.9 1 9.5 .7 9.7-.7 23.2-2.8 27.6-2.4 5.1-8.5 7.5-13.7 5.3zm-94.3-2.4c.4-.8 3.7-4.6 7.3-8.4l6.5-6.9c0 5.6 0 11.2 .1 16.8l-7.3 0c-6.7 0-7.3-.1-6.5-1.5zm34.4 341.7c-24-6.9-43.9-12.9-44.2-13.1-.5-.6 24.3-88.5 25.3-89.6 .5-.5 85.4 23.3 88.9 24.9 1.2 .6-.1 5.8-10.6 42.4-6.6 23-12.4 43.2-12.8 45s-1.4 3.2-1.9 3.1-20.7-5.8-44.7-12.7zM342.8 456c0-1.1 24.7-87.3 25.1-87.6 .9-.7 87.1-24.7 87.4-24.4 .4 .4-24.1 87.3-24.7 87.9-.4 .3-83.2 24-85.8 24.5-1.1 .2-1.9 .1-1.9-.4zM199.6 417.5c17-17.1 32.2-32.7 33.7-34.7 3.4-4.5 8.2-14.8 9.5-20.5 .5-2.4 1.1-7.1 1.2-10.5l.2-6.2 3.7-1c2-.6 3.8-.9 4-.7 .5 .5-24.3 87-25.1 87.8-.4 .3-13.6 4.3-29.4 8.8l-28.7 8.2 31-31.1zm166.9-61.6c-.2-.3-.7-2-1.2-3.7l-.9-3.2 3.2-.5c27-4.6 55.9-17.3 78.7-34.5 3.3-2.5 5.1-3.4 5.3-2.7 1.1 3.3 5.5 19.1 5.4 19.3-.7 .7-90.2 25.8-90.5 25.4zM62.9 329.8c-1-.8-23.8-77.9-25.5-86.4-.3-1.7 3-.9 43.8 10.8 42.7 12.2 44.2 12.7 44.8 14.9 .5 2 .2 2.6-2.5 4.5-1.7 1.2-15.5 14.6-30.7 29.8s-27.8 27.6-28 27.6-1.1-.5-1.8-1.1zm16.5-88.2c-23.9-6.9-43.5-12.6-43.6-12.6-.3-.2 25.3-89.3 25.9-89.8 .4-.4 89.1 24.4 90 25.2 .2 .2-5.4 20.5-12.4 45.1-11.6 40.7-12.9 44.8-14.5 44.7-1 0-21.3-5.7-45.2-12.6zm59.6 10.8c.2-.6 4.3-14.5 8.9-30.9l8.5-29.7 1.1 6.5c1.9 11.2 5.3 23.9 9.3 35.1 2.1 5.9 3.8 10.9 3.6 11s-6.7 2-14.5 4.3-14.9 4.2-15.8 4.5c-1.1 .3-1.5 .1-1.2-.7zM106 139.1c-23.9-6.9-43.7-12.8-43.9-13.2-.8-1.3-25.1-87-24.7-87.4 .5-.5 86.8 24.3 87.6 25.1 .9 1 25.8 88.2 25.1 88-.3 0-20.1-5.7-44-12.6zm43.2-34.5C136.5 60 139 68.8 137.2 62.5l34.1-9.7c18.8-5.4 34.7-9.9 35.4-10.2s-1.6 2.8-5.2 6.8c-19.1 21.3-31.5 44-39.4 71.9-1.5 5.2-2.7 10.3-2.7 11.3 0 5.9-2.3-.5-10.2-28z\"]\n};\nvar faSellcast = {\n prefix: 'fab',\n iconName: 'sellcast',\n icon: [448, 512, [], \"f2da\", \"M353.5 32L94.8 32C42.7 32 .1 74.6 .1 126.6l0 258.7C.1 437.4 42.7 480 94.8 480l258.7 0c52.1 0 94.7-42.6 94.7-94.6l0-258.8c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8 .1 .1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8 .1 .1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"]\n};\nvar faMix = {\n prefix: 'fab',\n iconName: 'mix',\n icon: [448, 512, [], \"f3cb\", \"M0 64L0 412.9c0 56.2 88 58.1 88 0l0-238.6c7.9-52.9 88-50.4 88 6.5l0 175.3c0 57.9 96 58 96 0L272 240c5.3-54.7 88-52.5 88 4.3l0 23.8c0 59.9 88 56.6 88 0L448 64 0 64z\"]\n};\nvar faCcApplePay = {\n prefix: 'fab',\n iconName: 'cc-apple-pay',\n icon: [576, 512, [], \"f416\", \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1l-24.3 0 0-54.2 24.4 0c18.4 0 28.9 9.8 28.9 27.1zM349.7 281c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9l0-7.7-23.5 1.5c-13.3 .9-20.2 5.8-20.2 14.4zM576 79l0 352c0 26.5-21.5 48-48 48L48 479c-26.5 0-48-21.5-48-48L0 79C0 52.5 21.5 31 48 31l480 0c26.5 0 48 21.5 48 48zM127.8 197.2c8.4 .7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4 .3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5 .2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8l-51.2 0 0 136.4 21.2 0 0-46.6 29.3 0c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5l19.1 0c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2l0 7.5-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4l.4 0 0 16.4 19.6 0 0-68 .1 0zM516 210.9l-21.5 0-24.9 80.6-.4 0-24.9-80.6-22.3 0 35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3l0 16.4c1.2 .4 6.5 .5 8.1 .5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"]\n};\nvar faSolana = {\n prefix: 'fab',\n iconName: 'solana',\n icon: [512, 512, [], \"e85e\", \"M510.5 385.2l-84.9 88.7c-1.8 1.9-4.1 3.5-6.6 4.5s-5.2 1.6-7.9 1.6L8.9 480c-1.9 0-3.8-.5-5.4-1.6s-2.9-2.5-3.6-4.2-1-3.6-.7-5.5 1.2-3.6 2.5-4.9l84.9-88.7c1.8-1.9 4.1-3.5 6.5-4.5s5.1-1.6 7.8-1.6l402.4 0c1.9 0 3.8 .5 5.4 1.6s2.9 2.5 3.6 4.2 1 3.6 .7 5.5-1.2 3.6-2.5 4.9zM425.7 206.6c-1.8-1.9-4.1-3.5-6.6-4.5s-5.2-1.6-7.9-1.6l-402.4 0c-1.9 0-3.8 .5-5.4 1.6s-2.9 2.5-3.6 4.2-1 3.6-.7 5.5 1.2 3.6 2.5 4.9l84.9 88.7c1.8 1.9 4.1 3.5 6.5 4.5s5.1 1.6 7.8 1.6l402.4 0c1.9 0 3.8-.5 5.4-1.6s2.9-2.5 3.6-4.2 1-3.6 .7-5.5-1.2-3.6-2.5-4.9l-84.9-88.7zM8.9 142.9l402.4 0c2.7 0 5.4-.5 7.9-1.6s4.7-2.6 6.6-4.5l84.9-88.7c1.3-1.4 2.2-3.1 2.5-4.9s.1-3.7-.7-5.5-2-3.2-3.6-4.2-3.5-1.6-5.4-1.6L101 32c-2.7 0-5.4 .5-7.8 1.6s-4.7 2.6-6.5 4.5L1.7 126.8c-1.3 1.4-2.2 3.1-2.5 4.9s-.1 3.7 .7 5.5 2 3.2 3.6 4.2 3.5 1.6 5.4 1.6z\"]\n};\nvar faTypescript = {\n prefix: 'fab',\n iconName: 'typescript',\n icon: [448, 512, [], \"e840\", \"M16.8 32l414.4 0c9.3 0 16.8 7.5 16.8 16.8l0 414.4c0 9.3-7.5 16.8-16.8 16.8L16.8 480C7.5 480 0 472.5 0 463.2L0 48.8C0 39.5 7.5 32 16.8 32zM249 270.3l0-36.7-159.4 0 0 36.7 56.9 0 0 163.6 45.3 0 0-163.6 57.2 0zm18.1 159.3c7.3 3.7 15.9 6.5 25.9 8.4s20.5 2.8 31.5 2.8c10.8 0 21-1 30.7-3.1s18.2-5.4 25.5-10.1 13.1-10.9 17.4-18.4 6.4-17 6.4-28.2c0-8.1-1.2-15.2-3.7-21.3s-5.9-11.5-10.5-16.3-10.1-9-16.5-12.8-13.7-7.3-21.7-10.7c-5.9-2.4-11.2-4.8-15.9-7.1s-8.7-4.6-11.9-7-5.8-4.9-7.6-7.5-2.7-5.7-2.7-9c0-3.1 .8-5.8 2.4-8.3s3.8-4.6 6.7-6.4 6.5-3.1 10.7-4.1 8.9-1.5 14.1-1.5c3.7 0 7.7 .3 11.9 .8s8.4 1.4 12.6 2.6 8.3 2.6 12.3 4.4 7.7 3.8 11 6.1l0-41.8c-6.8-2.6-14.3-4.5-22.4-5.8s-17.4-1.9-27.9-1.9c-10.7 0-20.8 1.1-30.4 3.4s-18 5.8-25.2 10.7-13 11-17.2 18.5-6.3 16.5-6.3 26.9c0 13.3 3.9 24.7 11.6 34.1s19.5 17.4 35.2 23.9c6.2 2.5 11.9 5 17.3 7.4s10 4.9 13.8 7.5 7 5.4 9.2 8.5 3.4 6.6 3.4 10.5c0 2.9-.7 5.6-2.1 8s-3.5 4.6-6.4 6.4-6.4 3.2-10.7 4.3-9.3 1.5-15 1.5c-9.7 0-19.4-1.7-28.9-5.1s-18.4-8.5-26.6-15.3l0 44.7z\"]\n};\nvar faBrave = {\n prefix: 'fab',\n iconName: 'brave',\n icon: [448, 512, [], \"e63c\", \"M145.6 0l157 0 44.7 50.8s39.3-10.9 57.8 7.6 33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9-7.5 5.1-15.8 10.8-23.5 10.8s-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191L21.5 122.8 9.3 93.3s15.3-16.4 33.8-34.9 57.8-7.6 57.8-7.6L145.6 0zm78.5 407.6c3.7 0 8.9-4.7 13-8.4 .6-.5 1.2-1.1 1.7-1.5 4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8-3-1.6-6.3-3.2-9.7-5-15.4-8-34.5-14.7-37.5-14.7s-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5-10.3 5.3-17.6 9.1-20.3 10.8-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5 4.1 3.7 9.3 8.4 13 8.4l-.2 0zm0-165.7c4.7 0 17.6-3 26.4-5l2-.5c7.8-1.8 7.3-6.3 6.4-13-.1-.8-.2-1.6-.3-2.4-.6-6.1-5.8-33.1-9.1-50.3-1.1-5.8-2-10.5-2.4-12.9-1.5-8.1-.6-9.4 .7-11.3 .2-.3 .5-.7 .7-1.1 1.4-2.3 16-6.2 27.9-9.5 2.5-.7 4.8-1.3 6.9-1.9 10.6-3 32.4-.6 44.2 .6 1.8 .2 3.4 .4 4.7 .5 9.6 .9 10.4 2.3 7.2 3.8-2.3 1.1-16.2 6.3-28.7 10.9-4.7 1.8-9.2 3.5-12.8 4.8-1.5 .5-3 1.1-4.5 1.7-12.5 4.6-27.2 10-28.9 19.4-1.5 8.3 5.2 19.9 11.3 30.3 1.6 2.8 3.2 5.5 4.6 8.1 6.3 11.9 6.5 13.3 6.1 18.1-.4 3.9-14.5 12.7-22.4 17.6-1.8 1.1-3.3 2.1-4.2 2.7-.8 .5-2.1 1.4-3.8 2.4-8.6 5.2-26.3 16-26.3 22.5 0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8 23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3 .5-.5 1-1 1.4-1.4l43-45.7c1.3-1.3 2.5-2.6 3.7-3.8 5.8-5.7 10.8-10.5 10.8-22.8 0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1-2.7-.9-5.4-1.9-8-2.7-13-4.3-21.8-4.4-21.8-4.4s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7-10.5 3.6-20.6 7.1-25.8 7.1-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8 1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4 4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40 8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8 32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5-1.7-1-3.1-1.9-3.8-2.4-.9-.6-2.4-1.5-4.2-2.7-7.9-4.9-22-13.7-22.4-17.6-.4-4.8-.3-6.2 6.1-18.1 1.3-2.5 2.9-5.3 4.6-8.1 6-10.4 12.8-22 11.3-30.3-1.7-9.4-16.4-14.8-28.9-19.4-1.6-.6-3.1-1.1-4.5-1.7-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9-3.2-1.5-2.3-2.8 7.2-3.8 1.3-.1 2.9-.3 4.7-.5 11.8-1.3 33.6-3.6 44.2-.6 2.1 .6 4.4 1.2 6.9 1.9 11.9 3.2 26.5 7.2 27.9 9.5 .2 .4 .5 .7 .7 1.1 1.3 1.9 2.2 3.2 .7 11.3-.4 2.4-1.3 7.1-2.4 12.9-3.3 17.2-8.5 44.2-9.1 50.3-.1 .8-.2 1.7-.3 2.4-.8 6.7-1.4 11.2 6.4 13l2 .5c8.8 2 21.8 5 26.4 5l0-.1z\"]\n};\nvar faEtsy = {\n prefix: 'fab',\n iconName: 'etsy',\n icon: [384, 512, [], \"f2d7\", \"M384 348c-1.8 10.7-13.8 110-15.5 132-117.9-4.3-219.9-4.7-368.5 0l0-25.5c45.5-8.9 60.6-8 61-35.2 1.8-72.3 3.5-244.1 0-322-1-28.5-12.1-26.8-61-36L0 35.8c73.9 2.4 255.9 8.6 363-3.8-3.5 38.2-7.8 126.5-7.8 126.5l-23.2 0C320.9 115.7 313.2 68 277.3 68l-137 0c-10.2 0-10.7 3.5-10.7 9.8l0 163.8c58 .5 88.5-2.5 88.5-2.5 29.8-1 27.6-8.5 40.7-65.3l25.8 0c-4.4 101.4-3.9 61.8-1.8 160.3L257 334c-9.2-40.1-9.1-61-39.5-61.5 0 0-21.5-2-88-2l0 139c0 26 14.3 38.3 44.3 38.3l89.3 0c63.6 0 66.6-25 98.7-99.8l22.2 0z\"]\n};\nvar faBtc = {\n prefix: 'fab',\n iconName: 'btc',\n icon: [384, 512, [], \"f15a\", \"M310.4 242.6c27.7-14.2 45.4-39.4 41.3-81.3-5.4-57.4-52.5-76.6-114.8-81.9l0-79.4-48.5 0 0 77.2c-12.6 0-25.5 .3-38.4 .6l0-77.8-48.5 0 0 79.4c-17.8 .5-38.6 .3-97.4 0l0 51.7c38.3-.7 58.4-3.1 63 21.4l0 217.4c-2.9 19.5-18.5 16.7-53.3 16.1L4 443.7c88.5 0 97.4 .3 97.4 .3l0 68 48.5 0 0-67.1c13.2 .3 26.2 .3 38.4 .3l0 66.7 48.5 0 0-68c81.3-4.4 135.6-24.9 142.9-101.5 5.7-61.4-23.3-88.9-69.3-99.9zM150.8 134.6c27.4 0 113.1-8.5 113.1 48.5 0 54.5-85.7 48.2-113.1 48.2l0-96.7zm0 251.8l0-106.5c32.8 0 133.1-9.1 133.1 53.3 0 60.2-100.4 53.3-133.1 53.3z\"]\n};\nvar faAdn = {\n prefix: 'fab',\n iconName: 'adn',\n icon: [512, 512, [], \"f170\", \"M256 167.5l64.9 98.8-129.8 0 64.9-98.8zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm396.2 82.7l-148.2-223.2-148.2 223.2 30.4 0 33.6-51.7 168.6 0 33.6 51.7 30.2 0z\"]\n};\nvar faSquareXTwitter = {\n prefix: 'fab',\n iconName: 'square-x-twitter',\n icon: [448, 512, [], \"e61a\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm297.1 84l-103.8 118.6 122.1 161.4-95.6 0-74.8-97.9-85.7 97.9-47.5 0 111-126.9-117.1-153.1 98 0 67.7 89.5 78.2-89.5 47.5 0zM323.3 367.6l-169.9-224.7-28.3 0 171.8 224.7 26.4 0z\"]\n};\nvar faSquareFontAwesome = {\n prefix: 'fab',\n iconName: 'square-font-awesome',\n icon: [448, 512, [], \"e5ad\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90 122c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2 0 1.8-.4 3.7-1.1 5.4L312 264 342.9 333.4c.7 1.7 1.1 3.5 1.1 5.4 0 7.3-5.9 13.2-13.2 13.2l-186.8 0 0 32-32 0 0-209.5c-6.1-4.8-10-12.2-10-20.5 0-14.4 11.6-26 26-26s26 11.6 26 26z\"]\n};\nvar faForumbee = {\n prefix: 'fab',\n iconName: 'forumbee',\n icon: [448, 512, [], \"f211\", \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35 239.7 35 256.4 37 272.4 40.5 149 87.5 51.9 186 5.8 309.7zM398.7 120.5c-13.7-17.5-29.7-32.7-47.8-45.3-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8-137.9 45.8-246.4 156.6-291.3 295.1 18.1 7.6 37 12.5 56.6 15.2 46.3-114.1 136.8-206.8 250.5-253.5z\"]\n};\nvar fa42Group = {\n prefix: 'fab',\n iconName: '42-group',\n icon: [640, 512, [\"innosoft\"], \"e080\", \"M320 96l0 320c21 0 41.8-4.1 61.2-12.2s37-19.8 51.9-34.7 26.6-32.5 34.7-51.9 12.2-40.2 12.2-61.2-4.1-41.8-12.2-61.2-19.8-37.1-34.7-51.9-32.5-26.6-51.9-34.7-40.2-12.2-61.2-12.2zM0 256L160 416 320 256 160 96 0 256zm480 0c0 21 4.1 41.8 12.2 61.2s19.8 37 34.7 51.9 32.5 26.6 51.9 34.7 40.2 12.2 61.2 12.2l0-320c-42.4 0-83.1 16.9-113.1 46.9S480 213.6 480 256z\"]\n};\nvar faInnosoft = fa42Group;\nvar faStumbleuponCircle = {\n prefix: 'fab',\n iconName: 'stumbleupon-circle',\n icon: [512, 512, [], \"f1a3\", \"M264 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 177.5c-9.8 0-17.8 8-17.8 17.8l0 106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9l0-46.5 57.3 0 0 45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8l0-108.4c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6l0 23.7-34.1 10.1-22.9-10.7 0-20.6c.1-9.6-7.9-17.6-17.7-17.6zM431.6 309.1c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2l0-46.8 22.9 10.7 34.1-10.1 0 47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6l0-48 57.3 0c-.1 45.9-.1 46.4-.1 46.4z\"]\n};\nvar faSymfony = {\n prefix: 'fab',\n iconName: 'symfony',\n icon: [512, 512, [], \"f83d\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM389.7 151.5c-11.5 .4-19.4-6.4-19.8-16.9-.3-9.2 6.7-13.4 6.5-18.9-.2-6.5-10.2-6.8-12.9-6.7-39.8 1.3-48.6 57-58.9 113.8 21.4 3.2 36.6-.7 45.1-6.2 12-7.7-3.3-15.7-1.4-24.6 4-18.2 32.6-19 32 5.3-.4 17.9-25.9 41.8-77.6 35.7-10.8 59.5-18.4 115-58.2 161.7-29 34.5-58.4 39.8-71.6 40.3-24.6 .9-41-12.3-41.6-29.8-.6-17 14.4-26.3 24.3-26.6 21.9-.8 30.1 25.7 14.9 34-12.1 9.7 .1 12.6 2.1 12.6 10.4-.4 17.3-5.5 22.2-9 24-20 33.2-54.9 45.4-118.3 8.2-49.7 17-78 18.2-82-16.9-12.7-27.1-28.6-49.8-34.7-15.6-4.2-25.1-.6-31.8 7.8-7.9 10-5.3 23 2.4 30.7l12.6 14c15.5 17.9 24 31.9 20.8 50.6-5.1 29.9-40.7 52.9-82.9 39.9-36-11.1-42.7-36.6-38.4-50.6 7.5-24.2 42.4-11.7 34.6 13.6-2.8 8.6-4.9 8.7-6.3 13.1-4.6 14.8 41.8 28.4 51-1.4 4.5-14.5-5.3-21.7-22.2-39.9-28.5-31.7-16-65.5 2.9-79.7 52.8-39.4 100.5 17.5 110.6 25.8 37.2-109 100.5-105.5 102.4-105.5 25.2-.8 44.2 10.6 44.8 28.6 .2 7.7-4.2 22.6-19.5 23.1z\"]\n};\nvar faSalesforce = {\n prefix: 'fab',\n iconName: 'salesforce',\n icon: [640, 512, [], \"f83b\", \"M249.4 245.6l-26.4 0c.7-5.2 3.3-14.1 13.6-14.1 6.8 0 12 3.8 12.7 14.1zM386 231.8c-.5 0-14.1-1.8-14.1 20s13.6 20 14.1 20c13 0 14.1-13.5 14.1-20 0-21.8-13.7-20-14.1-20zM142.8 255.5c-1.1 .9-2 2-2.5 3.2s-.8 2.7-.7 4c0 4.8 2.1 6.1 3.3 7 4.7 3.7 15.1 2.1 20.9 1l0-16.9c-5.3-1.1-16.7-2-20.9 1.6zM640.5 232c0 87.6-80 154.4-165.4 136.4-18.4 33-70.7 70.8-132.2 41.6-41.2 96-177.9 92.2-213.8-5.2-119.7 23.9-178.8-138.4-75.3-199.3-34.8-79.4 22.6-173.6 114.3-173.6 19.1 0 37.9 4.4 55 12.9s32 20.7 43.6 35.8c20.7-21.4 49.4-34.8 81.1-34.8 42.3 0 79 23.5 98.8 58.6 92.8-40.7 193.8 28.2 193.8 127.5zM120.9 263.8c0-11.8-11.7-15.2-17.9-17.2-5.3-2.1-13.4-3.5-13.4-8.9 0-9.5 17-6.7 25.2-2.1 0 0 1.2 .7 1.6-.5 .2-.7 2.4-6.6 2.6-7.3 .1-.3 .1-.6-.1-.8s-.4-.5-.6-.6c-12.3-7.6-40.7-8.5-40.7 12.7 0 12.5 11.5 15.4 17.9 17.2 4.7 1.6 13.2 3 13.2 8.7 0 4-3.5 7.1-9.2 7.1-6.9 0-13.5-2.2-19-6.3-.5-.2-1.4-.7-1.6 .7l-2.4 7.5c-.5 .9 .2 1.2 .2 1.4 1.8 1.4 10.3 6.6 22.8 6.6 13.2 0 21.4-7.1 21.4-18.1l0 0zm32-42.6c-10.1 0-18.7 3.2-21.4 5.2-.1 .1-.2 .2-.3 .3s-.1 .2-.1 .4 0 .3 0 .4 .1 .3 .2 .4l2.6 7.1c.1 .2 .2 .5 .5 .6s.5 .2 .7 .1c.6 0 6.8-4 16.9-4 4 0 7.1 .7 9.2 2.4 3.6 2.8 3.1 8.3 3.1 10.6-4.8-.3-19.1-3.4-29.4 3.8-2.3 1.6-4.3 3.8-5.5 6.3s-1.9 5.4-1.8 8.2c0 5.9 1.5 10.4 6.6 14.4 12.2 8.2 36.3 2 38.1 1.4 1.6-.3 3.5-.7 3.5-1.9l0-33.9c0-4.6 .3-21.6-22.8-21.6l0 .1zm46.6-21c0-.2 0-.3-.1-.5s-.1-.3-.3-.4-.2-.2-.4-.3-.3-.1-.5-.1l-9.8 0c-.2 0-.3 0-.5 .1s-.3 .1-.4 .3-.2 .2-.3 .4-.1 .3-.1 .5l0 79c0 .2 0 .3 .1 .5s.1 .3 .3 .4 .2 .2 .4 .3 .3 .1 .5 .1l9.9 0c.2 0 .3 0 .5-.1s.3-.1 .4-.3 .2-.2 .3-.4 .1-.3 .1-.5l-.1-79zm55.7 28.9c-2.1-2.3-6.8-7.5-17.6-7.5-3.5 0-14.2 .2-20.7 8.9-6.4 7.6-6.6 18.1-6.6 21.4 0 3.1 .2 14.3 7.1 21.2 2.6 2.9 9.1 8.2 22.8 8.2 10.8 0 16.5-2.3 18.6-3.8 .5-.2 .7-.7 .2-1.9l-2.3-6.8c-.1-.3-.3-.5-.6-.6s-.5-.2-.8-.1c-2.6 .9-6.3 2.8-15.3 2.8-17.4 0-16.8-14.7-16.9-16.7l37.2 0c.3 0 .5-.1 .7-.3s.4-.4 .4-.7c-.3 0 2.1-14.7-6.1-24.2l0 0zm36.7 52.7c13.2 0 21.4-7.1 21.4-18.1 0-11.8-11.7-15.2-17.9-17.2-4.1-1.7-13.4-3.4-13.4-8.9 0-3.8 3.3-6.4 8.5-6.4 5.8 .1 11.5 1.6 16.7 4.2 0 0 1.2 .7 1.6-.5 .2-.7 2.4-6.6 2.6-7.3 .1-.3 .1-.6-.1-.8s-.4-.5-.6-.6c-7.9-4.9-16.7-4.9-20.2-4.9-12 0-20.5 7.3-20.5 17.6 0 12.5 11.5 15.4 17.9 17.2 6.1 2 13.2 3.3 13.2 8.7 0 4-3.5 7.1-9.2 7.1-6.9 0-13.5-2.2-19-6.4-.1-.1-.3-.2-.5-.2s-.4 0-.5 .1-.3 .2-.4 .3-.2 .3-.2 .5l-2.3 7.5c-.5 .9 .2 1.2 .2 1.4 1.7 1.4 10.3 6.6 22.8 6.6l0 0zM357.6 224c0-.7-.2-1.2-1.2-1.2l-11.8 0c0-.1 .9-8.9 4.5-12.5 4.2-4.2 11.8-1.6 12-1.6 1.2 .5 1.4 0 1.6-.5l2.8-7.8c.7-.9 0-1.2-.2-1.4-5.1-2-17.4-2.9-24.5 4.2-5.5 5.5-7 13.9-8 19.5l-8.5 0c-.3 0-.6 .2-.8 .4s-.3 .5-.4 .8l-1.4 7.8c0 .7 .2 1.2 1.2 1.2l8.2 0c-8.5 47.9-8.7 50.2-10.3 55.5-1.1 3.6-3.3 6.9-5.9 7.8-.1 0-3.9 1.7-9.6-.2 0 0-.9-.5-1.4 .7-.2 .7-2.6 6.8-2.8 7.5s0 1.4 .5 1.4c5.1 2 13 1.8 17.9 0 6.3-2.3 9.7-7.9 11.5-12.9 2.8-7.7 2.8-9.8 11.8-59.7l12.2 0c.3 0 .6-.2 .8-.4s.3-.5 .4-.8l1.4-7.8zM411 240c-.6-1.7-5.1-18.1-25.2-18.1-15.2 0-23 10-25.2 18.1-1 3-3.2 14 0 23.5 .1 .3 4.4 18.1 25.2 18.1 15 0 22.9-9.6 25.2-18.1 3.2-9.6 1-20.5 0-23.5zm45.4-16.7c-5-1.7-16.6-1.9-22.1 5.4l0-4.5c0-.2 0-.3-.1-.5s-.1-.3-.3-.4-.2-.2-.4-.3-.3-.1-.5-.1l-9.4 0c-.2 0-.3 0-.5 .1s-.3 .1-.4 .3-.2 .2-.3 .4-.1 .3-.1 .5l0 55.3c0 .2 0 .3 .1 .5s.1 .3 .3 .4 .2 .2 .4 .3 .3 .1 .5 .1l9.6 0c.2 0 .3 0 .5-.1s.3-.1 .4-.3 .2-.2 .3-.4 .1-.3 .1-.5l0-27.8c0-2.9 .1-11.4 4.5-15.1 4.9-4.9 12-3.4 13.4-3.1 .3 0 .6-.1 .8-.3s.4-.4 .6-.7c1.2-2.6 2.2-5.3 3.1-8 .1-.3 .1-.5 0-.8s-.3-.5-.5-.6l0 0zm46.8 54.1l-2.1-7.3c-.5-1.2-1.4-.7-1.4-.7-4.2 1.8-10.1 1.9-11.3 1.9-4.6 0-17.2-1.1-17.2-19.8 0-6.2 1.8-19.8 16.5-19.8 3.9-.1 7.8 .5 11.5 1.6 0 0 .9 .5 1.2-.7 .9-2.6 1.6-4.5 2.6-7.5 .2-.9-.5-1.2-.7-1.2-11.6-3.9-22.3-2.5-27.8 0-1.6 .7-16.2 6.5-16.2 27.5 0 2.9-.6 30.1 28.9 30.1 5.3 0 10.6-1 15.5-2.8 .2-.2 .4-.4 .5-.6s.1-.5 0-.8l0 0zm53.9-39.5c-.8-3-5.4-16.2-22.3-16.2-16 0-23.5 10.1-25.6 18.6-1.2 3.8-1.7 7.8-1.7 11.8 0 25.9 18.8 29.4 29.9 29.4 10.8 0 16.5-2.3 18.6-3.8 .5-.2 .7-.7 .2-1.9l-2.4-6.8c-.1-.3-.3-.5-.6-.6s-.6-.2-.8-.1c-2.6 .9-6.3 2.8-15.3 2.8-17.4 0-16.9-14.7-16.9-16.7l37.2 0c.3 0 .5-.1 .7-.3s.4-.4 .4-.7c-.2 0 .9-7.1-1.4-15.5l0 0zm-23.3-6.4c-10.3 0-13 9-13.6 14.1l26.4 0c-.9-11.9-7.6-14.1-12.7-14.1l0 0z\"]\n};\nvar faSourcetree = {\n prefix: 'fab',\n iconName: 'sourcetree',\n icon: [448, 512, [], \"f7d3\", \"M427.4 203c0-112.1-90.9-203-203-203-112.1-.2-203 90.6-203.2 202.6-.1 43 13.5 84.8 38.7 119.6s60.9 60.6 101.8 73.8l0 101.7c0 3.8 1.5 7.4 4.2 10.1s6.3 4.2 10.1 4.2l96.4 0c3.8 0 7.4-1.5 10.1-4.2s4.2-6.3 4.2-10.1l0-101.6c40.8-13.2 76.5-39 101.7-73.7s38.9-76.5 39-119.4zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"]\n};\nvar faLinkedinIn = {\n prefix: 'fab',\n iconName: 'linkedin-in',\n icon: [448, 512, [], \"f0e1\", \"M100.3 448l-92.9 0 0-299.1 92.9 0 0 299.1zM53.8 108.1C24.1 108.1 0 83.5 0 53.8 0 39.5 5.7 25.9 15.8 15.8s23.8-15.8 38-15.8 27.9 5.7 38 15.8 15.8 23.8 15.8 38c0 29.7-24.1 54.3-53.8 54.3zM447.9 448l-92.7 0 0-145.6c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7l0 148.1-92.8 0 0-299.1 89.1 0 0 40.8 1.3 0c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3l0 164.3-.1 0z\"]\n};\nvar faHtml5 = {\n prefix: 'fab',\n iconName: 'html5',\n icon: [384, 512, [], \"f13b\", \"M0 32L34.9 427.8 191.5 480 349.1 427.8 384 32 0 32zM308.2 159.9l-183.8 0 4.1 49.4 175.6 0-13.6 148.4-97.9 27 0 .3-1.1 0-98.7-27.3-6-75.8 47.7 0 3.5 38.1 53.5 14.5 53.7-14.5 6-62.2-166.9 0-12.8-145.6 241.1 0-4.4 47.7z\"]\n};\nvar faRust = {\n prefix: 'fab',\n iconName: 'rust',\n icon: [512, 512, [], \"e07a\", \"M508.5 249.8l-21.8-13.5c-.2-2-.3-3.9-.5-5.9l18.7-17.5c.9-.9 1.6-1.9 2-3.1s.5-2.5 .2-3.7-.8-2.4-1.6-3.3-1.8-1.7-3-2.1l-24-9c-.5-1.9-1.1-3.8-1.7-5.6l15-20.8c.7-1 1.2-2.2 1.3-3.4s0-2.5-.5-3.7-1.2-2.2-2.2-2.9-2.1-1.3-3.4-1.5l-25.4-4.2c-.9-1.7-1.8-3.4-2.7-5.2l10.7-23.4c.5-1.1 .7-2.4 .6-3.6s-.5-2.4-1.2-3.5-1.6-1.9-2.8-2.5-2.4-.8-3.6-.8l-25.8 .9c-1.2-1.5-2.4-2.9-3.6-4.4L439 81.8c.3-1.2 .3-2.5-.1-3.7s-1-2.3-1.9-3.2-2-1.5-3.2-1.9-2.5-.4-3.7-.1L405 78.9c-1.4-1.2-2.9-2.4-4.4-3.6l.9-25.8c.1-1.3-.2-2.5-.8-3.6s-1.4-2.1-2.5-2.8-2.2-1.1-3.5-1.2-2.5 .1-3.7 .6L367.7 53.2c-1.7-.9-3.4-1.8-5.1-2.7l-4.2-25.4c-.2-1.2-.7-2.4-1.5-3.4s-1.8-1.7-2.9-2.2-2.4-.7-3.7-.5-2.4 .6-3.4 1.3L326 35.3c-1.9-.6-3.8-1.1-5.6-1.7l-9-24c-.4-1.2-1.2-2.2-2.1-3s-2.1-1.4-3.3-1.6-2.5-.2-3.7 .2-2.3 1.1-3.1 2L281.6 25.9c-2-.2-3.9-.4-5.9-.5L262.3 3.5c-.7-1.1-1.6-1.9-2.7-2.6s-2.3-.9-3.6-.9-2.5 .3-3.6 .9-2 1.5-2.7 2.6L236.2 25.3c-2 .2-3.9 .3-5.9 .6L212.9 7.1c-.9-.9-1.9-1.6-3.1-2s-2.5-.5-3.7-.2-2.4 .8-3.3 1.6-1.7 1.8-2.1 3l-9 24c-1.9 .6-3.8 1.1-5.7 1.7l-20.8-15c-1-.7-2.2-1.2-3.4-1.3s-2.5 0-3.7 .5-2.2 1.2-2.9 2.2-1.3 2.1-1.5 3.4l-4.2 25.4c-1.7 .9-3.4 1.8-5.2 2.7L120.9 42.6c-1.1-.5-2.4-.7-3.7-.6s-2.5 .5-3.5 1.2-1.9 1.7-2.5 2.8-.8 2.4-.8 3.6l.9 25.8c-1.5 1.2-3 2.4-4.4 3.6L81.8 73c-1.2-.3-2.5-.3-3.7 .1s-2.3 1-3.2 1.9-1.5 2-1.9 3.2-.4 2.5-.1 3.7L78.9 107c-1.2 1.4-2.4 2.9-3.6 4.4l-25.8-.9c-1.3 0-2.5 .2-3.6 .8s-2.1 1.4-2.8 2.4-1.1 2.2-1.2 3.5 .1 2.5 .6 3.6l10.7 23.4c-.9 1.7-1.8 3.4-2.7 5.2l-25.4 4.1c-1.2 .2-2.4 .7-3.4 1.5s-1.7 1.8-2.2 2.9-.7 2.4-.5 3.7 .6 2.4 1.3 3.4l15 20.8c-.6 1.9-1.1 3.8-1.7 5.7l-24 9c-1.2 .4-2.2 1.2-3 2.1s-1.4 2.1-1.6 3.3-.2 2.5 .2 3.7 1.1 2.3 2 3.1l18.7 17.5c-.2 2-.4 3.9-.6 5.9L3.5 249.8c-1.1 .7-1.9 1.6-2.6 2.7s-.9 2.3-.9 3.6 .3 2.5 .9 3.6 1.5 2 2.6 2.7l21.8 13.5c.2 2 .3 3.9 .6 5.9L7.1 299.1c-.9 .9-1.6 1.9-2 3.1s-.5 2.5-.2 3.7 .8 2.4 1.6 3.3 1.8 1.7 3 2.1l24 9c.6 1.9 1.1 3.8 1.7 5.6l-15 20.8c-.7 1-1.2 2.2-1.3 3.4s0 2.5 .5 3.7 1.2 2.2 2.2 2.9 2.1 1.3 3.4 1.5l25.4 4.2c.9 1.7 1.8 3.4 2.7 5.1L42.6 391.1c-.5 1.1-.7 2.4-.6 3.6s.5 2.5 1.2 3.5c.7 1.1 1.6 1.9 2.7 2.5s2.4 .8 3.6 .8l25.8-.9c1.2 1.5 2.4 2.9 3.6 4.4L73 430.2c-.3 1.2-.3 2.5 .1 3.7s1 2.3 1.9 3.2 2 1.5 3.2 1.9 2.5 .4 3.7 .1l25.2-5.9c1.5 1.2 2.9 2.4 4.4 3.6l-.9 25.8c0 1.3 .2 2.5 .8 3.6s1.4 2.1 2.5 2.8 2.2 1.1 3.5 1.2 2.5-.1 3.6-.6l23.4-10.7c1.7 .9 3.4 1.8 5.1 2.7l4.2 25.4c.2 1.2 .7 2.4 1.5 3.4s1.8 1.8 2.9 2.2 2.4 .7 3.7 .5 2.4-.6 3.4-1.3l20.8-15c1.9 .6 3.8 1.1 5.6 1.7l9 24c.4 1.2 1.2 2.2 2.1 3s2.1 1.4 3.3 1.6 2.5 .2 3.7-.2 2.3-1.1 3.1-2l17.5-18.7c2 .2 3.9 .4 5.9 .6l13.5 21.8c.7 1.1 1.6 1.9 2.7 2.6s2.3 .9 3.6 .9 2.5-.3 3.6-.9 2-1.5 2.7-2.6l13.5-21.8c2-.2 3.9-.3 5.9-.6l17.5 18.7c.9 .9 1.9 1.6 3.1 2s2.5 .5 3.7 .2 2.4-.8 3.3-1.6 1.7-1.8 2.1-3l9-24c1.9-.6 3.8-1.1 5.6-1.7l20.8 15c1 .7 2.2 1.2 3.4 1.3s2.5 0 3.7-.5 2.2-1.2 2.9-2.2 1.3-2.1 1.5-3.4l4.2-25.4c1.7-.9 3.4-1.8 5.1-2.7l23.4 10.7c1.1 .5 2.4 .7 3.6 .6s2.4-.5 3.5-1.2 1.9-1.6 2.5-2.8 .8-2.4 .8-3.6l-.9-25.8c1.5-1.2 2.9-2.4 4.4-3.6l25.2 5.9c1.2 .3 2.5 .3 3.7-.1s2.3-1 3.2-1.9 1.5-2 1.9-3.2 .4-2.5 .1-3.7L433.1 405c1.2-1.4 2.4-2.9 3.6-4.4l25.8 .9c1.3 .1 2.5-.2 3.6-.8s2.1-1.4 2.8-2.5c.7-1 1.1-2.2 1.2-3.5s-.1-2.5-.6-3.6l-10.7-23.4c.9-1.7 1.8-3.4 2.7-5.1l25.4-4.2c1.2-.2 2.4-.7 3.4-1.5s1.8-1.8 2.2-2.9 .7-2.4 .5-3.7-.6-2.4-1.3-3.4l-15-20.8c.6-1.9 1.1-3.8 1.7-5.6l24-9c1.2-.4 2.2-1.2 3-2.1s1.4-2.1 1.6-3.3 .2-2.5-.2-3.7-1.1-2.3-2-3.1l-18.7-17.5c.2-1.9 .4-3.9 .6-5.9l21.8-13.5c1.1-.7 1.9-1.6 2.6-2.7s.9-2.3 .9-3.6-.3-2.5-.9-3.6-1.5-2-2.6-2.7l0 0zm-151 129.1c-3.6-.8-7.4-.1-10.5 1.9s-5.3 5.2-6 8.8l-7.6 35.7c-24.6 11.1-51.3 16.8-78.3 16.7s-53.6-6.1-78.1-17.4l-7.6-35.7c-.4-1.8-1.1-3.5-2.1-5s-2.4-2.8-3.9-3.8-3.2-1.7-5-2-3.6-.3-5.4 .1l-31.5 6.8c-5.8-6-11.3-12.5-16.3-19.2l153.2 0c1.7 0 2.9-.3 2.9-1.9l0-54.2c0-1.6-1.2-1.9-2.9-1.9l-44.8 0 0-34.4 48.5 0c4.4 0 23.7 1.3 29.8 25.9 1.9 7.5 6.2 32.1 9.1 40 2.9 8.8 14.6 26.5 27.1 26.5l79 0c-5.3 7.1-11.1 13.8-17.3 20.1l-32.1-6.9zm25.8 34.5c0 3-.9 6-2.6 8.5s-4 4.5-6.8 5.6-5.8 1.5-8.8 .9-5.7-2-7.8-4.2-3.6-4.8-4.2-7.8-.3-6 .8-8.8 3.1-5.2 5.6-6.9 5.4-2.6 8.5-2.6l.4 0c4 .1 7.7 1.8 10.5 4.6s4.3 6.7 4.3 10.6l.1 0zm-225.6-.7c0 3-.9 6-2.6 8.5s-4.1 4.5-6.8 5.6-5.8 1.5-8.8 .9-5.7-2-7.8-4.2-3.6-4.8-4.2-7.8-.3-6 .9-8.8 3.1-5.2 5.6-6.8 5.4-2.6 8.5-2.6l.5 0c4 .1 7.7 1.8 10.5 4.6s4.3 6.7 4.3 10.6l.1 0zM69.6 234.2l32.8-14.6c1.7-.7 3.2-1.8 4.4-3.1s2.2-2.9 2.9-4.6 1-3.5 .9-5.3-.5-3.6-1.2-5.3l-6.8-15.2 26.6 0 0 119.7-53.6 0c-6.6-23.2-8.7-47.6-6.1-71.6zM58.3 198.1c0-2 .4-4 1.2-5.8s1.9-3.5 3.3-4.9 3.1-2.5 4.9-3.3 3.8-1.2 5.8-1.2l.5 0c3 .1 5.9 1 8.3 2.8s4.3 4.1 5.4 6.9 1.3 5.8 .7 8.8-2.1 5.6-4.3 7.7-4.9 3.5-7.8 4.1-6 .2-8.7-.9-5.1-3.1-6.8-5.6-2.5-5.4-2.5-8.4l0 0zm155.2 24.5l0-35.3 63.3 0c3.3 0 23.1 3.8 23.1 18.6 0 12.3-15.2 16.7-27.7 16.7l-58.7 0zM399 306.7c-9.8 1.1-20.6-4.1-22-10.1-5.8-32.5-15.4-39.4-30.6-51.4 18.9-12 38.5-29.6 38.5-53.3 0-25.5-17.5-41.6-29.4-49.5-16.8-11-35.3-13.2-40.3-13.2l-198.9 0c27.5-30.7 64.4-51.5 104.9-59.2l23.5 24.6c1.3 1.3 2.8 2.4 4.4 3.1s3.5 1.1 5.3 1.2 3.6-.3 5.3-.9 3.2-1.7 4.6-2.9l26.3-25c26.8 5 52.1 15.8 74.3 31.6s40.6 36.2 54.1 59.9l-18 40.6c-1.5 3.4-1.5 7.2-.2 10.6s3.9 6.2 7.3 7.7l34.6 15.3c1.1 10.8 1.2 21.7 .4 32.5l-19.3 0c-1.9 0-2.7 1.3-2.7 3.1l0 8.8c0 20.8-11.7 25.3-22 26.5zM240 60.2c0-4 1.6-7.9 4.5-10.7s6.7-4.5 10.7-4.5l.4 0c3 .1 5.9 1 8.4 2.8s4.3 4.1 5.4 6.9 1.3 5.8 .7 8.8-2.1 5.6-4.3 7.7-4.9 3.5-7.8 4-6 .2-8.7-.9-5.1-3.1-6.8-5.6-2.5-5.4-2.5-8.4zM436.8 214c-2 0-4-.4-5.8-1.2s-3.5-1.9-4.9-3.3-2.5-3.1-3.3-4.9-1.2-3.8-1.2-5.8 .4-4 1.2-5.8 1.9-3.5 3.3-4.9 3.1-2.5 4.9-3.3 3.8-1.2 5.8-1.2l.4 0c4 .1 7.9 1.7 10.7 4.6s4.4 6.8 4.3 10.8-1.7 7.9-4.6 10.7-6.8 4.4-10.8 4.3z\"]\n};\nvar faHornbill = {\n prefix: 'fab',\n iconName: 'hornbill',\n icon: [512, 512, [], \"f592\", \"M76.8 370.3c1 7.8-.4 15.8-4.1 22.8s-9.6 12.6-16.7 16.1-15.1 4.7-22.9 3.3-15-5.1-20.6-10.7-9.2-12.9-10.5-20.7 0-15.8 3.6-22.9 9.3-12.8 16.3-16.5 15-5 22.9-3.9c-78.3-111.3 52-190.5 52-190.5-5.9 43-8.2 91.2-8.2 91.2-67.3 41.5 .9 64.1 39.8 72.9 9.9 27 27.8 50.2 51.4 66.7s51.6 25.3 80.3 25.3c1.9 0 3.8-.2 5.7-.3l.1 18.9c-99.2 1.4-158.7-29.1-188.9-51.6zm108-327.7c.9-7.2-.2-14.6-3.4-21.2-3-6.2-7.6-11.5-13.4-15.3s-12.5-5.9-19.4-6.2-13.8 1.4-19.8 4.7-11.1 8.3-14.5 14.3-5.2 12.8-5 19.7 2.2 13.7 5.9 19.5 8.9 10.6 15.1 13.6 13.1 4.4 20 3.9c-22.6 29.9-53.8 89.6-52.4 190l21.8-.2c0-.9-.1-1.8-.1-2.7 0-28 8.4-55.3 24.1-78.5s37.9-41.2 63.8-51.6c8-37.7 30.7-114.3 73.8-44.3 0 0 48.1 2.4 91.2 8.2 0 0-77.8-128-187.6-54.1l0 0zM489 176.8c6.3-3 11.7-7.7 15.5-13.6s5.9-12.7 6.1-19.8-1.6-14-5.2-20-8.7-11-14.9-14.3-13.2-4.8-20.2-4.4-13.8 2.8-19.5 6.9-10.2 9.6-13 16.1-3.7 13.6-2.7 20.5c-31.7-21.9-89.8-49.1-183.4-47.7l.1 22.5c2.7-.2 5.4-.4 8.1-.4 28.1 0 55.6 8.5 78.9 24.3s41.2 38.3 51.6 64.5c39.1 9 105.1 31.6 38.5 72.5 0 0-2.3 48.1-8.2 91.2 0 0 133.4-81.2 49-194.6 6.6 .6 13.3-.6 19.3-3.5l0 0zM374.4 436.2c21.4-32.5 46.4-89.7 45.1-179.7l-19.5 .1c.1 2.1 .3 4.1 .3 6.2 0 28.6-8.8 56.5-25.1 80s-39.5 41.4-66.3 51.4c-8.9 39-31.4 106.7-72.8 39.5 0 0-48.1-2.3-91.2-8.2 0 0 79.9 131.3 191.9 51 .3 4.9 1.5 9.6 3.6 14 2.9 6.1 7.5 11.4 13.1 15.1s12.2 6 19 6.4 13.6-1.1 19.6-4.2 11.1-7.8 14.7-13.6 5.6-12.4 5.7-19.2-1.5-13.5-4.8-19.4-8.2-10.9-14.1-14.3-12.6-5.2-19.4-5.1l0-.1z\"]\n};\nvar faPhp = {\n prefix: 'fab',\n iconName: 'php',\n icon: [640, 512, [], \"f457\", \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5C148.6 407.5 16.8 335.3 16.8 256S148.7 104.5 320 104.5zm0-16.8C143.3 87.7 0 163 0 256S143.3 424.3 320 424.3 640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3l36.7 0 8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7l-70.7 0-32.7 168.7zM283.1 136.7l36.5 0-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1l-37 0c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6-36.5 0 32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3l36.8 0 8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7l-70.7 0-32.8 168.7z\"]\n};\nvar faDisqus = {\n prefix: 'fab',\n iconName: 'disqus',\n icon: [576, 512, [], \"e7d5\", \"M290.2 512c-62.6 0-119.9-22.9-164.2-60.8L17 466.1 59.1 362.2c-14.7-32.4-22.9-68.3-22.9-106.2 0-141.4 113.7-256 254-256 140.3 0 254 114.6 254 256 0 141.4-113.7 256-254 256zM428.9 255.3l0-.7C428.9 180.7 376.8 128 287 128l-97 0 0 256 95.6 0c90.5 0 143.4-54.9 143.4-128.7zM288 321.1l-28.4 0 0-130.2 28.4 0c41.7 0 69.3 23.8 69.3 64.7l0 .7c0 41.3-27.7 64.7-69.3 64.7z\"]\n};\nvar fa500px = {\n prefix: 'fab',\n iconName: '500px',\n icon: [384, 512, [], \"f26e\", \"M71.8 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2l.3 0 0-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5S151 163.3 126.3 188c-.3 .3-16 16.5-21.2 23.9l-.5 .6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8L70.2 20c0-5 3.9-10.5 10.5-10.5L322 9.5c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1l-223.2 0 0 132.9 .3 0c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zM135.1 83.5c-.5 4.2 4.6 24.5 14.6 20.6 124.8-47.5 202.8 40.4 209.4 40.4 4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM361.5 414.7c-110 109.9-299 60.8-332-104.2 0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM182.1 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6 .2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2l-17.3-17.3 18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L218.2 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L202.5 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"]\n};\nvar faAffiliatetheme = {\n prefix: 'fab',\n iconName: 'affiliatetheme',\n icon: [512, 512, [], \"f36b\", \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1 105.5 88.2 170.8 48.3 199.9 69.9s11.1 96.6-40.2 167.5zm351.2-57.3c-73.8 123.4-191.9 187.7-264.5 143.6-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9 .1-8.5-.3-16.8-1-25z\"]\n};\nvar faRedRiver = {\n prefix: 'fab',\n iconName: 'red-river',\n icon: [448, 512, [], \"f3e3\", \"M353.2 32L94.8 32C42.4 32 0 74.4 0 126.8L0 385.2C0 437.6 42.4 480 94.8 480l258.4 0c52.4 0 94.8-42.4 94.8-94.8l0-258.4C448 74.4 405.6 32 353.2 32zM144.9 200.9l0 56.3c0 27-21.9 48.9-48.9 48.9l0-154.2c0-13.2 10.7-23.9 23.9-23.9l154.2 0c0 27-21.9 48.9-48.9 48.9l-56.3 0c-12.3-.6-24.6 11.6-24 24zm176.3 72l-56.3 0c-12.3-.6-24.6 11.6-24 24l0 56.3c0 27-21.9 48.9-48.9 48.9l0-154.2c0-13.2 10.7-23.9 23.9-23.9l154.2 0c0 27-21.9 48.9-48.9 48.9z\"]\n};\nvar faTwitter = {\n prefix: 'fab',\n iconName: 'twitter',\n icon: [512, 512, [], \"f099\", \"M459.4 151.7c.3 4.5 .3 9.1 .3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103l0-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53 51.7 63.7 129.3 105.3 216.4 109.8-1.6-7.8-2.6-15.9-2.6-24 0-57.8 46.8-104.9 104.9-104.9 30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3z\"]\n};\nvar faFortAwesome = {\n prefix: 'fab',\n iconName: 'fort-awesome',\n icon: [512, 512, [], \"f286\", \"M489.5 287.9l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-178.3c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-32c0-6-8-4.6-11.7-4.6l0-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8l0-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9l0-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3l0 111.7c-3.7 0-11.7-1.4-11.7 4.6l0 32-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.3 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 178.3-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 219.5 182.9 0 0-96c0-72.6 109.7-72.6 109.7 0l0 96 182.9 0 0-219.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6l-27.4 0c-2.6 0-4.6-2-4.6-4.6l0-64c0-2.6 2-4.6 4.6-4.6l27.4 0c2.6 0 4.6 2 4.6 4.6l0 64zm146.4 0c0 2.6-2 4.6-4.6 4.6l-27.4 0c-2.6 0-4.6-2-4.6-4.6l0-64c0-2.6 2-4.6 4.6-4.6l27.4 0c2.6 0 4.6 2 4.6 4.6l0 64z\"]\n};\nvar faMixer = {\n prefix: 'fab',\n iconName: 'mixer',\n icon: [448, 512, [], \"e056\", \"M82.6 76.1c-3.8-5.1-8.7-9.4-14.2-12.5s-11.7-5.1-18.1-5.7-12.8 .1-18.8 2.2-11.6 5.3-16.3 9.6c-17.6 16.2-19 43.5-4.8 62.8l91.8 123-92.3 124.1c-14.2 19.3-13.1 46.6 4.7 62.8 4.7 4.3 10.3 7.6 16.3 9.6s12.5 2.8 18.8 2.2 12.5-2.5 18.1-5.7 10.4-7.4 14.2-12.5L210.9 262.7c1.5-2.1 2.3-4.6 2.3-7.1s-.8-5-2.3-7.1L82.6 76.1zM438.2 379.6l-92.3-124.1 91.8-123c14.2-19.2 12.8-46.6-4.7-62.8-4.7-4.3-10.3-7.6-16.3-9.6s-12.5-2.8-18.8-2.2-12.5 2.5-18.1 5.7-10.4 7.4-14.2 12.5l-128 172.1c-1.5 2.1-2.3 4.6-2.3 7.1s.8 5 2.3 7.1L366 435.9c3.8 5.1 8.7 9.4 14.2 12.5s11.7 5.1 18.1 5.7 12.8-.1 18.8-2.2 11.6-5.3 16.3-9.6c17.8-16.2 19-43.5 4.7-62.8z\"]\n};\nvar faLyft = {\n prefix: 'fab',\n iconName: 'lyft',\n icon: [512, 512, [], \"f3c3\", \"M0 81.1l77.8 0 0 208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8-17-14-24.8-37.3-24.8-59L0 81.1zM485.9 254.6l0-22 23.8 0 0-76.8-26.1 0c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7l0 179.2c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59l0-6.7 38.8 0 0-76.8-38.8 0 0-23.3c0-34.6 52.2-34.6 52.2 0l0 77.1c0 56.6 46 102.7 102.7 102.7l0-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99l0 113c0 15.4-23.8 15.4-23.8 0l0-113-76.8 0 0 132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8l0 70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8l0-178.2-77.1 0 0 .5z\"]\n};\nvar faApplePay = {\n prefix: 'fab',\n iconName: 'apple-pay',\n icon: [640, 512, [], \"f415\", \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8zm10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9 .3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1zm100.4-36.2l0 194.9 30.3 0 0-66.6 41.9 0c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64l-73.2 0zM258.5 165l34.9 0c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8l-34.8 0 0-77.4zM420.7 335.9c19 0 36.6-9.6 44.6-24.9l.6 0 0 23.4 28 0 0-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6l27.3 0c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5l0 10.8-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5 .1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1 0 11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4l53.1-149-30.8 0-35.6 115.1-.6 0-35.6-115.1-31.6 0 51.2 141.9-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5l0 23.4c1.8 .4 9.3 .7 11.6 .7z\"]\n};\nvar faArtstation = {\n prefix: 'fab',\n iconName: 'artstation',\n icon: [512, 512, [], \"f77a\", \"M2.1 377.4l43 74.3c4.3 8.5 10.8 15.7 18.9 20.7s17.4 7.6 27 7.6l285.4 0-59.2-102.6-315.1 0zM501.9 350L335.7 59.3c-4.4-8.2-10.9-15.1-18.9-20S299.7 32 290.4 32l-88.4 0 257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275.2 304.5l-115.5-200-115.5 200 231 0z\"]\n};\nvar faNodeJs = {\n prefix: 'fab',\n iconName: 'node-js',\n icon: [448, 512, [], \"f3d3\", \"M224.5 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6 .4l47.4 28.1c1.7 1 4.1 1 5.7 0L412 367.5c1.7-1 2.8-3 2.8-5l0-213.2c0-2.1-1.1-4-2.9-5.1L227.3 37.7c-1.7-1-4-1-5.7 0L37.1 144.3c-1.8 1-2.9 3-2.9 5.1l0 213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7l0-210.4c0-3 2.4-5.3 5.4-5.3l23.4 0c2.9 0 5.4 2.3 5.4 5.3l0 210.5c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6L20.6 396.1c-12-6.9-19.4-19.8-19.4-33.7l0-213.1c0-13.8 7.4-26.8 19.4-33.7L205.1 9c11.7-6.6 27.2-6.6 38.8 0L428.6 115.7c12 6.9 19.4 19.8 19.4 33.7l0 213.1c0 13.8-7.4 26.7-19.4 33.7L243.9 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zM373.6 297.9c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8 .5 2.4 2.7 4.2 5.2 4.2l24 0c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5l-23.9 0c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"]\n};\nvar faUncharted = {\n prefix: 'fab',\n iconName: 'uncharted',\n icon: [448, 512, [], \"e084\", \"M171.8 232.8c1.1 0 2.1-.3 3-.9s1.6-1.4 2-2.4c2.2-9.8 7.4-18.6 14.9-25.3 1.2-.8 1.7-2.5 1.7-4.1-.1-.7-.3-1.3-.6-1.9s-.9-1.1-1.4-1.4L74.5 128.5 149.1 85c1.5-.8 2.7-2 3.6-3.5s1.4-3.1 1.4-4.8c0-1.7-.4-3.4-1.3-4.9s-2.2-2.7-3.7-3.4L126.7 55.6c-1.5-.8-3.1-1.2-4.8-1.2s-3.3 .4-4.8 1.2L17 113.6c-1.5 .8-2.7 2-3.6 3.5s-1.4 3.1-1.4 4.8L12 237c0 1.7 .4 3.4 1.3 4.9s2.2 2.7 3.7 3.4l22.4 12.8c1.5 .9 3.2 1.3 5 1.2 2.4 .1 4.8-.8 6.6-2.5 1.8-1.9 2.8-4.4 2.9-7l0-85.3 115.9 67.9c.6 .3 1.4 .4 2.1 .4zM323.4 377.7c-1.7 .1-3.4 .5-5 1.2l-74.5 43.1 0-134.2c0-2.9-2.9-5.8-6.2-4.6-9.4 2.8-19.5 3-29 .4-.7-.2-1.5-.2-2.2-.1s-1.4 .4-2 .9-1.1 1-1.4 1.7-.5 1.4-.5 2.1l0 133.3-74.5-43.1c-1.5-.9-3.2-1.3-5-1.2-2.5 0-4.9 1-6.7 2.8s-2.8 4.2-2.8 6.7l0 26.1c0 1.7 .4 3.4 1.3 4.9s2.2 2.7 3.7 3.4l100.2 57.6c1.5 .9 3.2 1.3 5 1.2 1.7 0 3.4-.4 5-1.2l100.2-57.6c1.5-.8 2.7-2 3.6-3.5s1.4-3.1 1.4-4.8l0-26.1c-.8-4.6-5.4-9.1-10.4-9.1zM286.1 78a23 23 0 1 0 0-46 23 23 0 1 0 0 46zm63.6-10.1a23 23 0 1 0 0 46 23 23 0 1 0 0-46zm63.2 83.7a23 23 0 1 0 0-46 23 23 0 1 0 0 46zm-63.2-9.2a23 23 0 1 0 0 46 23 23 0 1 0 0-46zm-63.6 83.2c4.5 0 9-1.3 12.8-3.9s6.7-6.1 8.5-10.3 2.2-8.8 1.3-13.3-3.1-8.6-6.3-11.8-7.3-5.4-11.8-6.3-9.1-.4-13.3 1.3-7.8 4.7-10.3 8.5-3.9 8.2-3.9 12.8c0 3 .6 6 1.8 8.8s2.9 5.3 5 7.5 4.7 3.8 7.5 5 5.8 1.8 8.8 1.8l0 0zM224 262c4.5 0 9-1.4 12.8-3.9s6.7-6.1 8.5-10.3 2.2-8.8 1.3-13.3-3.1-8.6-6.3-11.8-7.3-5.4-11.8-6.3-9.1-.4-13.3 1.3-7.8 4.7-10.3 8.5-3.9 8.2-3.9 12.8c0 3 .6 6 1.7 8.8s2.8 5.3 5 7.5 4.7 3.8 7.5 5 5.8 1.8 8.8 1.8l0 0zm188.9-82.4c-4.6 0-9 1.3-12.8 3.9s-6.7 6.1-8.5 10.3-2.2 8.8-1.3 13.3 3.1 8.6 6.3 11.8 7.3 5.4 11.8 6.3 9.1 .4 13.3-1.3 7.8-4.7 10.3-8.5 3.9-8.2 3.9-12.8c0-6.1-2.4-11.9-6.7-16.3s-10.2-6.7-16.3-6.7l0 0zm0 72.3c-4.6 0-9 1.3-12.8 3.9s-6.7 6.1-8.5 10.3-2.2 8.8-1.3 13.3 3.1 8.6 6.3 11.8 7.3 5.4 11.8 6.3 9.1 .4 13.3-1.3 7.8-4.7 10.3-8.5 3.9-8.2 3.9-12.8c0-6.1-2.4-11.9-6.7-16.3s-10.2-6.7-16.3-6.7l0 0z\"]\n};\nvar faPlaystation = {\n prefix: 'fab',\n iconName: 'playstation',\n icon: [576, 512, [], \"f3df\", \"M571 372.3c-11.3 14.2-38.8 24.3-38.8 24.3l-205.1 73.6 0-54.3 150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9l-100.5 35.5 0-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9 .6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zM346.6 279.8l0-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4l0 347.9-93.8-29.8 0-414.7c39.9 7.4 98 24.9 129.2 35.4 79.5 27.3 106.4 61.3 106.4 137.8 0 74.5-46 102.8-104.5 74.6zM43.3 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8 0 54.5-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4s39.1 3.3 56.2-2.9l46.4-16.9 0 48.8c-51.6 9.3-101.4 7.3-153.9-10z\"]\n};\nvar faMicroblog = {\n prefix: 'fab',\n iconName: 'microblog',\n icon: [448, 512, [], \"e01a\", \"M399.8 362.2c29.5-34.7 47.1-78.3 47.1-125.8 0-113-99.6-204.4-222.5-204.4S2 123.5 2 236.4 101.6 440.9 224.5 440.9c27 0 53.9-4.5 79.4-13.4 1.4-.5 3-.5 4.5-.1s2.7 1.4 3.6 2.6c18.6 25.1 47.6 42.7 79.9 49.9 1.1 .2 2.3 0 3.3-.6s1.7-1.6 1.9-2.8c.1-.6 .1-1.3 0-1.9s-.4-1.2-.8-1.7c-12.3-16-18.7-35.8-18-56s8.4-39.5 21.7-54.7l-.2 .1zM330 212.4l-57.3 43.5 20.8 68.9c.4 1.3 .4 2.7-.1 4s-1.2 2.4-2.3 3.2-2.4 1.2-3.8 1.2-2.7-.4-3.8-1.2l-59.1-41-59.1 41.1c-1.1 .8-2.4 1.2-3.8 1.2s-2.7-.4-3.8-1.2-1.9-1.9-2.3-3.2-.5-2.7-.1-4l20.8-68.9-57.3-43.5c-1.1-.8-1.9-1.9-2.3-3.2s-.4-2.7 0-4 1.2-2.4 2.3-3.2 2.4-1.3 3.7-1.3l71.9-1.5 23.7-67.9c.4-1.3 1.3-2.4 2.4-3.2s2.4-1.2 3.8-1.2 2.7 .4 3.8 1.2 1.9 1.9 2.4 3.2l23.7 67.9 71.9 1.5c1.4 0 2.7 .4 3.8 1.2s1.9 1.9 2.3 3.2 .4 2.7 0 4-1.2 2.4-2.3 3.3l0 0z\"]\n};\nvar faGitkraken = {\n prefix: 'fab',\n iconName: 'gitkraken',\n icon: [576, 512, [], \"f3a6\", \"M557.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7l0-123.7c7.9-1.5 15.5-3.6 23-6.2l0 104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4l0-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9l0-14.7c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0-41.2 3-129.1 126.7-129.1 164.7l0 14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5l0 92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8l0-104c7.6 2.5 15.1 4.6 23 6.2l0 123.7c-129.8-17-230.2-128.1-230.2-262.7 0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6-11.8 31.5-18.3 65.6-18.3 101.3 0 155.1 122.6 281.6 276.3 287.8l0-145.9c6.8 .4 15 .5 23.4 0l0 145.8c153.7-6.1 276.3-132.6 276.3-287.7 0-35.7-6.5-69.8-18.3-101.4zM357.9 322.9a23.7 23.7 0 1 1 0-47.4 23.7 23.7 0 1 1 0 47.4zM218.1 275.4a23.7 23.7 0 1 1 0 47.4 23.7 23.7 0 1 1 0-47.4z\"]\n};\nvar faTelegram = {\n prefix: 'fab',\n iconName: 'telegram',\n icon: [512, 512, [62462, \"telegram-plane\"], \"f2c6\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM371 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5c-2.2 .5-37.1 23.5-104.6 69.1-9.9 6.8-18.9 10.1-26.9 9.9-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3 .6-4.5 6.7-9 18.4-13.7 72.3-31.5 120.5-52.3 144.6-62.3 68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9 2 1.7 3.2 4.1 3.5 6.7 .5 3.2 .6 6.5 .4 9.8z\"]\n};\nvar faTelegramPlane = faTelegram;\nvar faUltralytics = {\n prefix: 'fab',\n iconName: 'ultralytics',\n icon: [512, 512, [], \"e86d\", \"M391.4 39.7c65.8-.2 118.6 51.8 120.4 116.6 .7 26.4-1.5 54.1-3.8 74.1-17.2 148.6-122.4 242-252.4 242-95.4-.1-179.4-52.7-223.2-130.6 24.4 17.4 54.5 27.4 87.6 27.4 83.2 .1 151.4-67.4 151.2-150l.1-60.6c-.2-65.7 53.9-119 120.1-118.9zM119.9 100.2c66.2 0 119.9 53.3 119.9 119S186.1 338.3 119.9 338.3 0 285 0 219.3c0-65.7 53.7-119 119.9-119z\"]\n};\nvar faItunesNote = {\n prefix: 'fab',\n iconName: 'itunes-note',\n icon: [384, 512, [], \"f3b5\", \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2 .8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6 .2 344.5 1.1 326-1.8 338.5z\"]\n};\nvar faLess = {\n prefix: 'fab',\n iconName: 'less',\n icon: [640, 512, [], \"f41d\", \"M613.2 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2l-20.5 0 0 24.2 6.3 0c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3l0 1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6l0 .5-6.3 0 0 25.2 20.5 0c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6l0-27.3c-20.5-.7-27.3-12.3-27.3-23.3zM507.6 251c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zM148.7 310.4c-3.7 0-8.4-3.2-8.4-13.1l0-178.2-74.6 0c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6l0 27.3c20.5 .5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2l20.5 0 0-24.2-6.3 0c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3l0-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1l14.1 0 0 150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1 .8-4.6 .8-6.2 .8zM380.4 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9L271 301.5c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2l95.2 0c.5-3.7 1.6-11 1.6-19.4 .6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31l-56.8 0z\"]\n};\nvar faFirefox = {\n prefix: 'fab',\n iconName: 'firefox',\n icon: [512, 512, [], \"f269\", \"M503.5 241.5c-.1-1.6-.2-3.1-.2-4.7l0-.1-.4-4.7 0-.1c-1.3-13.9-3.7-27.7-7.3-41.2 0-.1 0-.1-.1-.2l-1.1-4c-.1-.2-.1-.5-.2-.6-.4-1.2-.7-2.5-1.1-3.7-.1-.2-.1-.6-.2-.8-.4-1.2-.7-2.4-1.1-3.5-.1-.4-.2-.6-.4-1-.4-1.2-.7-2.3-1.2-3.5l-.4-1.1c-.4-1.1-.8-2.3-1.2-3.4-.1-.3-.2-.7-.4-1-.5-1.1-.8-2.3-1.3-3.4-.1-.2-.2-.6-.4-.8-.5-1.2-1-2.3-1.4-3.5 0-.1-.1-.2-.1-.4-1.6-3.8-3.2-7.7-5-11.4l-.4-.7c-.5-1-.8-1.8-1.3-2.6-.2-.5-.5-1.1-.7-1.6-.4-.8-.8-1.6-1.2-2.4-.4-.6-.6-1.2-1-1.8s-.8-1.4-1.2-2.3c-.4-.6-.7-1.3-1.1-1.9s-.8-1.4-1.2-2.2c-.4-.7-.8-1.4-1.2-2-.4-.7-.8-1.3-1.2-2s-.8-1.3-1.2-2-.8-1.3-1.2-1.9-.8-1.4-1.3-2.2c-.4-.6-.8-1.2-1.2-1.8l-1.4-2.1c-.4-.6-.8-1.2-1.2-1.8-.5-.7-1.1-1.6-1.6-2.3-.4-.5-.7-1.1-1.1-1.6l-1.8-2.5c-.4-.5-.6-.8-1-1.3-1-1.3-1.8-2.5-2.8-3.7-7.2-9.4-15-18.3-23.5-26.6-5.7-6-11.8-11.5-18.3-16.7-4-3.5-8.2-6.7-12.5-9.8-7.7-5.8-16-10.8-24.6-15.1-2.4-1.3-4.8-2.5-7.2-3.7-17.7-8.6-36.3-15.2-55.4-19.6-1.9-.4-3.8-.8-5.6-1.2l-.1 0c-1-.1-1.8-.4-2.8-.5-12.5-2.4-25.2-3.7-38-4l-10.6 0c-15.3 .2-30.5 1.9-45.5 5-33.6 7.1-63.2 21.2-82.9 39-1.1 1-1.9 1.7-2.4 2.2l-.5 .5 .1 0c0 0 .1 0 .1 0s0-.1 0-.1l-.1 .1c.1-.1 .1-.1 .2-.1 14.6-8.8 34.9-16 49.4-19.6l5.9-1.4c.4-.1 .8-.1 1.2-.2 1.7-.4 3.4-.7 5.2-1.1 .2 0 .6-.1 .8-.1 64.2-11.7 132.6 7.5 180.2 53 10.3 9.8 19.3 20.8 26.9 32.8 30.4 49.2 27.5 111.1 3.8 147.6-34.4 53-111.4 71.3-159 24.8-16-15.5-25.2-36.7-25.6-59-.2-10.7 2-21.2 6.2-31 1.7-3.8 13.1-25.7 18.2-24.6-13.1-2.8-37.5 2.6-54.7 28.2-15.4 22.9-14.5 58.2-5 83.3-6-12.4-10.1-25.6-12.1-39.2-12.2-82.6 43.3-153 94.3-170.5-27.5-24-96.5-22.3-147.7 15.4-29.9 22-51.2 53.2-62.5 90.4 1.7-20.9 9.6-52.1 25.8-83.9-17.2 8.9-39 37-49.8 62.9-15.6 37.4-21 82.2-16.1 124.8 .4 3.2 .7 6.4 1.1 9.6 19.9 117.1 122 206.4 244.8 206.4 137.1 0 248.3-111.2 248.3-248.4-.1-4.5-.2-9.1-.5-13.5z\"]\n};\nvar faKaggle = {\n prefix: 'fab',\n iconName: 'kaggle',\n icon: [320, 512, [], \"f5fa\", \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5l-69.2 0c-3.5 0-7 1.8-10.5 5.3l-132.3 133.7 0-306c0-5-2.5-7.5-7.5-7.5L21.5 0C16.5 0 14 2.5 14 7.5l0 497c0 5 2.5 7.5 7.5 7.5l51.9 0c5 0 7.5-2.5 7.5-7.5l0-109 30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3l66.9 0c3.5 0 5.5-1 6-3l-1.4-7.6z\"]\n};\nvar faFacebookMessenger = {\n prefix: 'fab',\n iconName: 'facebook-messenger',\n icon: [512, 512, [], \"f39f\", \"M256.6 8c-140 0-248.6 102.3-248.6 240.6 0 72.3 29.7 134.8 78.1 177.9 8.3 7.5 6.6 11.9 8 58.2 .1 3.2 1 6.4 2.6 9.2s3.9 5.2 6.7 6.9 5.9 2.8 9.1 3 6.5-.3 9.5-1.6C174.9 479 175.6 477.2 184.6 479.6 337.8 521.8 504 423.7 504 248.6 504 110.3 396.6 8 256.6 8zM405.8 193.1l-73 115.6c-2.8 4.3-6.4 8.1-10.6 11s-9.1 4.8-14.1 5.8-10.3 .8-15.3-.4-9.7-3.4-13.8-6.4l-58.1-43.5c-2.6-1.9-5.8-3-9-3s-6.4 1.1-9 3l-78.4 59.4c-10.5 7.9-24.2-4.6-17.1-15.7l73-115.6c2.8-4.3 6.4-8.1 10.6-11s9.1-4.8 14.1-5.8 10.3-.8 15.3 .4 9.7 3.4 13.9 6.4l58.1 43.5c2.6 1.9 5.8 3 9 3s6.4-1.1 9-3l78.4-59.4c10.4-8 24.1 4.5 17.1 15.6z\"]\n};\nvar faAudible = {\n prefix: 'fab',\n iconName: 'audible',\n icon: [640, 512, [], \"f373\", \"M640 199.9l0 54-320 200-320-199.9 0-54 320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6s-135.5 36.7-172.6 92.4l.3 0c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zM225.4 290.7c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1C235.4 56.8 421.8 84.7 521.1 223.2l.7 1 48.8-30.4c-53.5-81.7-145.8-135.7-250.7-135.7-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6z\"]\n};\nvar faPatreon = {\n prefix: 'fab',\n iconName: 'patreon',\n icon: [512, 512, [], \"f3d9\", \"M490 153.8c-.1-65.4-51-119-110.7-138.3-74.2-24-172-20.5-242.9 12.9-85.8 40.5-112.8 129.3-113.8 217.8-.8 72.8 6.4 264.4 114.6 265.8 80.3 1 92.3-102.5 129.5-152.3 26.4-35.5 60.5-45.5 102.4-55.9 72-17.8 121.1-74.7 121-150l-.1 0z\"]\n};\nvar faVnv = {\n prefix: 'fab',\n iconName: 'vnv',\n icon: [640, 512, [], \"f40b\", \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192l32.8 0c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1l32.8 0c20.8 0 10.4 18.1 10.4 18.1L186.4 321.6S174.2 352 140 352l-35.1 0zm395 0c-34.1 0-46.4-30.4-46.4-30.4L397.6 210.1S387.2 192 408 192l32.8 0c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1l32.9 0c20.8 0 10.4 18.1 10.4 18.1L581.5 321.6S569.3 352 535.1 352l-35.2 0zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5S450.3 352 429.5 352l-32.8 0c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1l-32.9 0c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5S268.3 192 302.5 192l35.1 0z\"]\n};\nvar faPagelines = {\n prefix: 'fab',\n iconName: 'pagelines',\n icon: [384, 512, [], \"f18c\", \"M384.1 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4 .5 1.6 .5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"]\n};\nvar faAmazon = {\n prefix: 'fab',\n iconName: 'amazon',\n icon: [448, 512, [], \"f270\", \"M257.7 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56s-32.3-25.3-32.3-52.8l0-147.1C341.5 89 317 32 229.2 32 141.2 32 94.5 87 94.5 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8l0 40.6zM393.7 413c-7.7 10-70 67-174.5 67S34.7 408.5 10.2 379c-6.8-7.7 1-11.3 5.5-8.3 73.3 44.5 187.8 117.8 372.5 30.3 7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"]\n};\nvar faEnvira = {\n prefix: 'fab',\n iconName: 'envira',\n icon: [448, 512, [], \"f299\", \"M0 32c477.6 0 366.6 317.3 367.1 366.3l80.9 81.7-26 0-70.4-71.2C312.6 413 227.2 443.3 137.2 371.8 47 300.3 52 214.7 0 32zM79.7 78c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"]\n};\nvar faLinode = {\n prefix: 'fab',\n iconName: 'linode',\n icon: [448, 512, [], \"f2b8\", \"M366.3 186.9l-59.5 36.9-.8 36.9-29.3-19.3-39.4 24.3c2.2 55.2 2.5 59.3 2.5 59.5l-97.2 65.4-15.1-104.7 108.1-62-40.2-26-75.4 38.5-21-143.3 129-49.4-91.3-43.6-125.7 39.4 27.7 134.9 41.9 32.7-31.8 15.1 20.9 101.4 29.3 27.7-20.9 12.6 16.8 78.8 66.2 69.6c-10.8-74.8-11.7-78.6-11.7-78.8l77.9-55.3C244 365.4 242.3 367 242.3 367l.8 24.3 33.5 28.5-.8-77.1 46.9-33.5 26.8-18.4-2.5 36 25.1 17.6 6.7-74.6 58.7-43.6-71.2-39.4z\"]\n};\nvar faAccusoft = {\n prefix: 'fab',\n iconName: 'accusoft',\n icon: [640, 512, [], \"f369\", \"M322.1 252l0-1-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7 .8 0 114.5-36.6 114.5-36.6 .5-.6-.1-.1 .6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zM482.2 372.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8 .5-116.5 .6-19.2 .1-32.9-.3-19.2 16.9 7.7 9.5 234.2 299.7 239.9 306.6zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1 .2-9.6 .8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6 .2 2.5 2 2.6 4.6 3.5 2.7 .8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"]\n};\nvar faErlang = {\n prefix: 'fab',\n iconName: 'erlang',\n icon: [640, 512, [], \"f39d\", \"M87.2 53.5l-87.2 0 0 405 100.4 0c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9 .1-85.1 33.5-89.2 83.2l169.9 0c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6l.3 0-.1-.1-.2 .1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7 .5 6 .5 11.7 0 24.1l-372.4 0c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8l80.8 0 0-405-83.6 0z\"]\n};\nvar faUnison = {\n prefix: 'fab',\n iconName: 'unison',\n icon: [512, 512, [], \"e854\", \"M435.1 161.7a13.9 13.9 0 1 1 19.6-19.7 13.9 13.9 0 1 1 -19.6 19.7zM369.7 97.8c10.4 2.1 20.6 5.2 30.4 9.2 6.8 2.8 10.1 10.8 7.3 17.7-2.8 6.7-10.9 10.1-17.6 7.3-8.3-3.4-16.8-5.8-25.7-7.8-8.6-1.7-17.3-2.5-26-2.5-19.3 0-37.1-10.3-46.7-27-8.7-15.1-20.6-28.9-34.7-39.7-59.1-45.5-143.8-34.3-189.2 25-2.6 3.3-6.5 5.3-10.7 5.3-7.4 0-13.5-6.1-13.5-13.5 0-3.2 1.2-6.3 3.2-8.8 12.9-16.7 28.9-30.7 47.1-41.2 77.4-44.8 176.4-18.2 221.1 59.4 4.3 8.2 13.7 13.3 22.8 13.5 10.8 0 21.6 1 32.2 3.1zM35 270c4.6-8.2 4.6-18.2 0-26.4-21.9-36.5-27.3-82.3-16.3-123.2 1.6-5.9 6.9-10 13-10 8.7 0 15.3 8.7 13 17-9.5 35.4-3.4 71 13.7 102.9 9.3 16.5 9.3 36.7 0 53.1-8.7 15.7-14.8 32.4-17.2 50.3-9.7 73.9 42.3 141.7 116.2 151.4 7.3 1 12.6 7.9 11.6 15.2-1 7.3-7.8 12.6-15.1 11.6-21.1-2.8-41.4-9.7-59.8-20.3-75.6-43.6-104.9-145.8-59.2-221.5zM216.9 509c-7.4 2-15.1-2.4-17.1-9.8s2.5-15 9.9-16.9c8.5-2.2 17.4 4.5 17.4 13.4 0 6.2-4.2 11.6-10.2 13.3zm122.3-91c-9.5 0-18.4 5-23.2 13.2-4.9 9.4-11.7 18.2-18.7 26.2l0 0c-7.1 8-14.8 15.2-23.2 21.7-5.9 4.5-14.4 3.4-19-2.5s-3.4-14.4 2.5-18.9c7-5.4 13.5-11.5 19.4-18.1l0 0c5.9-6.6 11.1-13.8 15.5-21.6 9.7-16.7 27.5-27 46.8-27 17.8 0 35.4-3.5 51.8-10.3 68.3-28.3 101.1-108.3 73.2-176.5-.6-1.6-1-3.3-1-5 0-7.4 6.1-13.5 13.5-13.5 5.4 0 10.3 3.2 12.4 8.2 8.2 19.7 12.4 40.8 12.4 62.1 0 89.5-72.7 162.1-162.4 162.1l0 0zm-13.1-268c3.9-.4 7.9-.6 11.9-.6 59.3 0 108.2 48.7 108.2 107.8S397.3 365 338 365c-4 0-7.9-.2-11.8-.6-22.2-1.7-43.3 10.4-52.9 30.4-17.2 39.1-56.2 64.5-99.1 64.5-59.3 0-108.2-48.7-108.2-107.8 0-23.2 7.5-45.7 21.4-64.3 12.2-18.3 12.1-42.3-.4-60.5-13.6-18.5-20.9-40.8-20.9-63.7 0-59.1 48.8-107.8 108.2-107.8 42.8 0 81.8 25.4 99 64.4 9.6 20 30.7 32.1 52.9 30.4zM106.8 393.4c14.4 25.2 41.1 40.8 69.8 40.8 44.2 0 80.6-36.8 80.6-81.6s-36.4-81.6-80.6-81.6c-14.2 0-28.1 3.8-40.3 10.9-38.3 22.4-51.6 72.7-29.5 111.4zM268 298c14.4 25.2 41.1 40.8 69.8 40.8 44.2 0 80.6-36.8 80.6-81.6s-36.4-81.6-80.6-81.6c-14.2 0-28.1 3.8-40.3 10.9-38.3 22.4-51.6 72.7-29.5 111.4zm-91.2-54.6c44.2 0 80.5-36.8 80.5-81.6s-36.4-81.6-80.6-81.6-80.6 36.8-80.6 81.6c0 44.7 36.4 81.6 80.6 81.6z\"]\n};\nvar faCcDiscover = {\n prefix: 'fab',\n iconName: 'cc-discover',\n icon: [576, 512, [], \"f1f2\", \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1l-4.9 0 0 24.9 4.7 0c10.3 0 15.8-4.4 15.8-12.8zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM483.9 170.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4-19.6 0-22.2-32.8-2.2 0 0 32.8-16 0 0-82zM428 171l45.3 0 0 14-29.3 0 0 18.2 28.3 0 0 13.8-28.3 0 0 22.2 29.3 0 0 13.8-45.3 0 0-82zm-68.7 0l21.9 55.2 22.2-55.2 17.5 0-35.5 84.2-8.6 0-35-84.2 17.5 0zm-55.9 86.2a44.6 44.6 0 1 1 0-89.2 44.6 44.6 0 1 1 0 89.2zm-49.3-83.1l0 19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2l0 19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253l-23.4 0 0-82 23.4 0c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0l-16 0 0-82 16 0 0 82zM544 433c0 8.2-6.8 15-15 15l-401 0c189.6-35.6 382.7-139.2 416-160l0 145zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6l-4.2 0 0 54.2 4.2 0c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"]\n};\nvar faSafari = {\n prefix: 'fab',\n iconName: 'safari',\n icon: [512, 512, [], \"f267\", \"M274.7 274.7L237.3 237.3 166 346 274.7 274.7zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM411.8 182.8l14.8-6.1c1-.4 2-.6 3.1-.6s2.1 .2 3.1 .6 1.8 1 2.6 1.7 1.3 1.6 1.7 2.6 .6 2 .6 3.1-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.3-2.6 1.7L418 197.6c-2 .8-4.2 .8-6.1 0s-3.5-2.4-4.3-4.3-.8-4.2 0-6.1 2.4-3.5 4.3-4.3zM314.4 94l6.1-14.8c.8-2 2.4-3.5 4.3-4.3s4.2-.8 6.1 0 3.5 2.4 4.3 4.3 .8 4.2 0 6.1l-6.1 14.8c-.8 2-2.4 3.5-4.3 4.3s-4.2 .8-6.1 0c-1-.4-1.9-1-2.6-1.7s-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1zM256 60c2.1 0 4.2 .8 5.7 2.3S264 65.9 264 68l0 16c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7l0-16c0-2.1 .8-4.2 2.3-5.7S253.9 60 256 60zM181 74.9c1-.4 2-.6 3.1-.6s2.1 .2 3.1 .6 1.9 1 2.6 1.7 1.3 1.6 1.7 2.6L197.6 94c.4 1 .7 2 .7 3.1s-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.4-2.6 1.8-2 .6-3.1 .6-2.1-.2-3.1-.6-1.9-1-2.6-1.8-1.3-1.7-1.7-2.7l-6.1-14.8c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3zm-63.6 42.5c1.5-1.5 3.5-2.3 5.7-2.3s4.2 .8 5.7 2.3L140 128.7c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3l-11.3-11.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6l0 0zM60 256c0-2.1 .8-4.2 2.3-5.7S65.9 248 68 248l16 0c2.1 0 4.2 .8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3l-16 0c-2.1 0-4.2-.8-5.7-2.3S60 258.1 60 256zm40.2 73.2l-14.8 6.1c-1 .4-2 .6-3.1 .6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1 1-1.9 1.7-2.6 1.6-1.3 2.6-1.7L94 314.4c2-.8 4.2-.8 6.1 0s3.5 2.4 4.3 4.3 .8 4.2 0 6.1-2.4 3.5-4.3 4.3zm4.3-136c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1 .6-2.1-.2-3.1-.6l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1 2.4-3.5 4.3-4.3 4.2-.8 6.1 0l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1l0 0zM197.6 418l-6.1 14.8c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1 .6-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1l6.1-14.8c.4-1 1-1.9 1.7-2.7s1.6-1.4 2.6-1.8 2-.6 3.1-.6 2.1 .2 3.1 .6 1.9 1 2.6 1.8 1.3 1.7 1.7 2.6 .6 2 .6 3.1-.2 2.1-.7 3.1zM264 444c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7l0-16c0-2.1 .8-4.2 2.3-5.7s3.5-2.3 5.7-2.3 4.2 .8 5.7 2.3 2.3 3.5 2.3 5.7l0 16zm67-6.9c-1 .4-2 .6-3.1 .6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6L314.4 418c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3 4.2-.8 6.1 0 3.5 2.4 4.3 4.3l6.1 14.8c.8 2 .8 4.2 0 6.1s-2.4 3.5-4.3 4.3zm63.6-42.5c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3L372 383.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6 3.5-2.3 5.7-2.3 4.2 .8 5.7 2.3l11.3 11.3c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6l0 0zM286.2 286.2L110.3 401.7 225.8 225.8 401.7 110.3 286.2 286.2zM437.1 331c-.8 2-2.4 3.5-4.3 4.3s-4.2 .8-6.1 0l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1c.4-1 1-1.9 1.7-2.6s1.6-1.3 2.6-1.7 2-.6 3.1-.6 2.1 .2 3.1 .6l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1zm6.9-67l-16 0c-2.1 0-4.2-.8-5.7-2.3s-2.3-3.5-2.3-5.7 .8-4.2 2.3-5.7 3.5-2.3 5.7-2.3l16 0c2.1 0 4.2 .8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3z\"]\n};\nvar faSpaceAwesome = {\n prefix: 'fab',\n iconName: 'space-awesome',\n icon: [512, 512, [], \"e5ac\", \"M96 256l32 0 0 256-128 0 0-160 32 0 0-32 32 0 0-32 32 0 0-32zm416 96l0 160-128 0 0-256 32 0 0 32 32 0 0 32 32 0 0 32 32 0zM320 64l32 0 0 384-32 0 0-32-128 0 0 32-32 0 0-384 32 0 0-32 32 0 0-32 64 0 0 32 32 0 0 32zm-32 64l-64 0 0 64 64 0 0-64z\"]\n};\nvar faNode = {\n prefix: 'fab',\n iconName: 'node',\n icon: [640, 512, [], \"f419\", \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4 .1l14.8 8.8c.5 .3 1.3 .3 1.8 0L375 408c.5-.3 .9-.9 .9-1.6l0-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6 .3-.9 1-.9 1.6l0 66.7c0 .6 .4 1.2 .9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8l0-65.9c0-.9 .7-1.7 1.7-1.7l7.3 0c.9 0 1.7 .7 1.7 1.7l0 65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5l0-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5l0 66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zM363 386.2c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6 .2 .8 .8 1.3 1.6 1.3l7.5 0c.5 0 .9-.2 1.2-.5 .3-.4 .5-.8 .4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4l-7.5 0c-.9 0-1.7 .7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3s4.2 9.4 9.3 9.4c5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2l-2.6 0c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1l-2.2 0 0 5-2.4 0 0-12.5 4.3 0c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7 .1 1.8 1.2 2.1 2.8 .1 1 .3 2.7 .6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7l-2 0 0 3.5 1.9 0c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4L72.3 149.3c-1-.6-2.2-.9-3.4-1l-.6 0c-1.2 0-2.3 .4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3 .7 2.5 1.8 3.2s2.5 .7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4l0-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1s2.6 .3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4l0 44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1 .7 2.6 .7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3l0 176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4l0-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2l0-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6 .3-.9 .9-.9 1.6l0 24.3c0 .7 .4 1.3 .9 1.6l21 12.1c.6 .3 1.3 .3 1.8 0l21-12.1c.6-.3 .9-.9 .9-1.6l0-24.3 .1 0zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4l0-17.1c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4l0 70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2l0-22.2c0-1.3 .7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0L592.1 213c1.1 .7 1.9 1.9 1.9 3.2l0 17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4 .3-.7 .7-.7 1.2l0 13.6c0 .5 .3 1 .7 1.2l11.8 6.8c.4 .3 1 .3 1.4 0L584 235c.4-.3 .7-.7 .7-1.2l0-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zM304.8 262.5l0-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4l0 70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7 .1-.5 .2-1.1 .2-1.7zM230.5 137.6l-.8 .5 1.1 0-.3-.5zm76.2 130.2l-.4-.7 0 .9 .4-.2z\"]\n};\nvar faCodepen = {\n prefix: 'fab',\n iconName: 'codepen',\n icon: [512, 512, [], \"f1cb\", \"M502.3 159.7l-234-156c-8-4.9-16.5-5-24.6 0l-234 156c-6 4-9.7 11.1-9.7 18.3L0 334c0 7.1 3.7 14.3 9.7 18.3l234 156c8 4.9 16.5 5 24.6 0l234-156c6-4 9.7-11.1 9.7-18.3l0-156c0-7.1-3.7-14.3-9.7-18.3zM278 63.1l172.3 114.9-76.9 51.4-95.4-63.7 0-102.6zm-44 0L234 165.7 138.6 229.4 61.7 178 234 63.1zM44 219.1L99.1 256 44 292.8 44 219.1zM234 448.8L61.7 334 138.6 282.6 234 346.3 234 448.8zM256 308l-77.7-52 77.7-52 77.7 52-77.7 52zm22 140.9l0-102.6 95.4-63.7 76.9 51.4-172.3 114.9zm190-156l-55.1-36.9 55.1-36.9 0 73.7z\"]\n};\nvar faRavelry = {\n prefix: 'fab',\n iconName: 'ravelry',\n icon: [512, 512, [], \"f2d9\", \"M498.6 234.2c-1.2-10.3-1.7-20.8-3.7-31-2.5-12.4-5.7-24.6-9.6-36.6-6.8-20.9-17.2-40.3-30.9-57.5-5.9-7.6-12.1-14.8-18.8-21.7-14.1-14-30-26.1-47.1-36.1-17.8-10.6-36.8-18.9-56.7-24.7-11-3.1-22.3-5.4-33.5-7.6-6.8-1.3-13.7-1.7-20.6-2.5-.3 0-.6-.4-.9-.6-10.8 0-21.5 0-32.3 0-2.4 .4-4.8 .9-7.2 1.2-11.6 1.2-23.1 3.6-34.3 7.1-13.8 4.1-27.1 9.6-39.8 16.4-13.3 7-26.1 15.1-38.1 24.2-6.2 4.6-12.3 9.4-18 14.5-10.2 9.2-20.4 18.4-29.9 28.3-12.8 13.3-24.1 28.1-33.6 44-8.6 14-15.5 29-20.5 44.6-7.2 22.7-10.3 46.6-9.2 70.3 .6 13.5 2 26.9 4.4 40.2 3.4 18.4 9 36.3 16.7 53.3 13.6 29.2 32.1 51.5 50.4 67.9 12.8 11.6 26.8 21.9 41.8 30.6 17.7 10.4 36.4 18.9 55.9 25.3 13.3 4.3 26.9 7.6 40.6 9.8 6.1 1 12.3 1.3 18.4 1.9 .4 .1 .8 .3 1.2 .6l32.3 0c2.5-.4 5-.9 7.5-1.1 16.3-1.3 32.1-5.3 47.5-10.7 17.2-5.9 33.7-13.9 49-23.8 9.7-6.4 19.4-13.1 28.7-20.1 5.8-4.3 11-9.5 16.3-14.5 4-3.7 7.8-7.6 11.5-11.5 12-12.7 22.6-26.6 31.4-41.6 9.5-16 17.4-32.9 22.3-50.9 2.9-10.4 4.9-21 7-31.7 1-5.3 1.3-10.7 1.9-16.1 0-.3 .4-.6 .6-.9l0-37.1c-.2-.6-.4-1.2-.6-1.8zm-161.1-1.2s-16.6-3-28.5-3c-27.2 0-33.6 14.9-33.6 37l0 93.7-73.5 0 0-190.7 73.5 0 0 31.9c8.9-26.8 26.8-36.2 62-36.2l0 67.3z\"]\n};\nvar faAlipay = {\n prefix: 'fab',\n iconName: 'alipay',\n icon: [448, 512, [], \"f642\", \"M377.7 32L70.3 32C31.4 32 0 63.4 0 102.3L0 409.7C0 448.6 31.4 480 70.3 480l307.5 0c38.5 0 69.8-31.1 70.3-69.6-46-25.6-110.6-60.3-171.6-88.4-32.1 44-84.1 81-148.6 81-70.6 0-93.7-45.3-97-76.4-4-39 14.9-81.5 99.5-81.5 35.4 0 79.4 10.2 127.1 25 16.5-30.1 26.5-60.3 26.5-60.3l-178.2 0 0-16.7 92.1 0 0-31.2-109.4 0 0-19 109.4 0 0-50.4 50.9 0 0 50.4 109.4 0 0 19-109.4 0 0 31.2 88.8 0s-15.2 46.6-38.3 90.9c48.9 16.7 100 36 148.6 52.7l0-234.4c.2-38.7-31.2-70.3-69.9-70.3zM47.3 323c1 20.2 10.2 53.7 69.9 53.7 52.1 0 92.6-39.7 117.9-72.9-44.6-18.7-84.5-31.4-109.4-31.4-67.4 0-79.4 33.1-78.4 50.6z\"]\n};\nvar faCcAmex = {\n prefix: 'fab',\n iconName: 'cc-amex',\n icon: [576, 512, [], \"f1f3\", \"M0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-1.1-61.7 0-31.9-35.1-31.9 35.1-203.7 0 0-163.8-65.8 0 81.7-184.7 78.6 0 28.1 63.2 0-63.2 97.2 0 16.9 47.6 17-47.6 75.5 0 0-2.4c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432zm440.4-21.7l42.2-46.3 42 46.3 51.4 0-68-72.1 68-72.1-50.6 0-42 46.7-41.5-46.7-51.4 0 67.5 72.5-67.4 71.6 0-33.1-83 0 0-22.2 80.9 0 0-32.3-80.9 0 0-22.4 83 0 0-33.1-122 0 0 143.2 171.8 0zm96.3-72l39.3 41.9 0-83.3-39.3 41.4zm-36.3-92l36.9-100.6 0 100.6 38.7 0 0-143.3-60.2 0-32.2 89.3-31.9-89.3-61.2 0 0 143.1-63.2-143.1-51.2 0-62.4 143.3 43 0 11.9-28.7 65.9 0 12 28.7 82.7 0 0-100.3 36.8 100.3 34.4 0zM282 185.4l19.5-46.9 19.4 46.9-38.9 0z\"]\n};\nvar faPiedPiperAlt = {\n prefix: 'fab',\n iconName: 'pied-piper-alt',\n icon: [576, 512, [], \"f1a8\", \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9 27.7-5.7zM379.9 443.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7 6.1-12.6 11.8-25.8 12.4-39.9l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3 0-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3 .9 .6-.6 .3-1.4zM496.3 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9 .6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zM300.1 428.2l0 27.2 11.8-3.4-2.9-23.8-8.9 0zM231.4 277.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"]\n};\nvar faLetterboxd = {\n prefix: 'fab',\n iconName: 'letterboxd',\n icon: [640, 512, [], \"e62d\", \"M521.3 128C586.9 128 640 181.1 640 246.6S586.9 365.2 521.3 365.2c-42.5 0-79.7-22.3-100.7-55.8 11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l.8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8 11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l.8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z\"]\n};\nvar faOpera = {\n prefix: 'fab',\n iconName: 'opera',\n icon: [512, 512, [], \"f26a\", \"M321.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3-131.5-6.1-236.1-114.6-236.1-247.7 0-137 111-248 248-248l.8 0c63.1 .3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zM423.7 430.4c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"]\n};\nvar faWeibo = {\n prefix: 'fab',\n iconName: 'weibo',\n icon: [512, 512, [], \"f18a\", \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7c-106.3 0-214.8-51.4-214.8-136.3 0-44.3 28-95.4 76.3-143.7 99.7-99.7 203.2-100.9 173.6-5.7-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zM358.5 300.4c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8 .3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4 .6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"]\n};\nvar faReadme = {\n prefix: 'fab',\n iconName: 'readme',\n icon: [576, 512, [], \"f4d5\", \"M528.3 46.5l-139.8 0c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3L48 46.5C21.5 46.5 0 68 0 94.5L0 340.3c0 26.5 21.5 48 48 48l89.7 0c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75l89.7 0c26.5 0 48-21.5 48-48l0-245.7c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zM501.3 311.8c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.8c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.8-.1 0z\"]\n};\nvar faGolang = {\n prefix: 'fab',\n iconName: 'golang',\n icon: [640, 512, [], \"e40f\", \"M400.1 194.8c-10.9 2.8-19.9 4.3-29.1 7.6-7.3 1.9-14.7 3.9-23.2 6.1l-.6 .1c-4.2 1.2-4.6 1.3-8.5-3.2-4.7-5.3-8.1-8.7-14.6-11.9-19.7-9.6-38.7-6.8-56.4 4.7-21.2 13.7-32.1 34-31.8 59.2 .3 25 17.4 45.5 41.2 48.9 22 2.8 39.8-4.6 53.8-20.5 2.1-2.6 4-5.3 6.1-8.3 .8-1 1.5-2.1 2.3-3.3l-60.1 0c-6.5 0-8.1-4-5.9-9.3 4-9.7 11.5-25.9 15.9-34 .9-1.8 3.1-5.8 6.9-5.8l101.1 0c4.5-13.4 11.8-26.9 21.6-39.7 22.7-29.9 49.3-45.5 87.2-52 31.8-5.6 61.7-2.5 88.9 15.9 24.6 16.8 39.8 39.6 43.9 69.5 5.3 42.1-6.9 76.3-36.7 105.6-19.7 20.9-44.9 34-73.9 39.9-5.6 1-11.1 1.5-16.5 2-2.9 .2-5.7 .5-8.5 .8-28.3-.6-54.2-8.7-76-27.4-15.3-13.3-25.9-29.6-31.1-48.5-3.7 7.3-8 14.4-14 21.1-21.6 29.6-50.9 48-87.9 52.9-30.6 4.1-58.9-1.8-83.9-20.5-23-17.5-36.1-40.5-39.5-69.2-4.1-34 5.9-65.4 26.4-91.3 22.2-29 51.5-47.4 87.3-53.9 29.3-6.2 57.3-1.9 82.6 15.3 16.5 10.9 28.3 25.8 36.1 43.9 1.9 2.8 .6 4.4-3.1 5.3zM48.3 200.4c-1.3 0-1.6-.6-.9-1.6l6.6-8.4c.6-.9 2.2-1.5 3.4-1.5l111.3 0c1.2 0 1.5 .9 .9 1.8l-5.3 8.1c-.6 1-2.2 1.9-3.1 1.9l-112.8-.3zM1.2 229.1c-1.2 0-1.6-.7-.9-1.6l6.5-8.4c.6-.9 2.2-1.6 3.4-1.6l142.1 0c1.2 0 1.8 1 1.5 1.9l-2.5 7.5c-.3 1.2-1.5 1.9-2.8 1.9L1.2 229.1zm74.5 26.8c-.6 .9-.3 1.8 .9 1.8l68 .3c.9 0 2.2-.9 2.2-2.1l.6-7.5c0-1.3-.6-2.2-1.9-2.2l-62.3 0c-1.2 0-2.5 .9-3.1 1.9l-4.4 7.8zm501.5-18c-.2-2.6-.3-4.8-.7-7-5.6-30.8-34-48.3-63.6-41.4-29 6.5-47.7 24.9-54.5 54.2-5.6 24.3 6.2 48.9 28.6 58.9 17.2 7.5 34.3 6.6 50.8-1.9 24.6-13.6 38-32.7 39.6-59.5-.1-1.2-.1-2.3-.2-3.3z\"]\n};\nvar faStackExchange = {\n prefix: 'fab',\n iconName: 'stack-exchange',\n icon: [448, 512, [], \"f18d\", \"M18.1 332.3l412.7 0 0 22c0 37.7-29.3 68-65.3 68l-19 0-86.8 89.7 0-89.7-176.3 0c-36 0-65.3-30.3-65.3-68l0-22zm0-23.6l412.7 0 0-85-412.7 0 0 85zm0-109.4l412.7 0 0-85-412.7 0 0 85zM365.4 0L83.4 0c-36 0-65.3 30.3-65.3 67.7l0 22.3 412.7 0 0-22.3C430.7 30.3 401.4 0 365.4 0z\"]\n};\nvar faGulp = {\n prefix: 'fab',\n iconName: 'gulp',\n icon: [256, 512, [], \"f3ae\", \"M210 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zM14 137.8L27.6 263.3c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7 .9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3 .2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5 .9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9 .1-1.8 .3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6 .8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5 .6 .2 1.1 .4 1.6 .7 2.6 1.8 1.6 4.5 .3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3 .5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4 .5 3.2 1.5 1.7 2.2 1.3 4.5 .4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9 .9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2 .4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3 .5-.4 .9-.6 .6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3 .8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7 .2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3 .9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3 .2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8 .1 26.3 .4L167 65.1 228.3 .6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1 .1-57.3 60.5-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2 .8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2 .1-.3l.2-.7c-1.8 .6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7 .1 13.9-1.6 13.9-3.7z\"]\n};\nvar faYelp = {\n prefix: 'fab',\n iconName: 'yelp',\n icon: [384, 512, [], \"f1e9\", \"M42.9 240.3l99.6 48.6c19.2 9.4 16.2 37.5-4.5 42.7L30.5 358.5c-3.2 .8-6.4 .9-9.6 .3s-6.2-1.8-8.9-3.7-4.9-4.3-6.6-7.1-2.7-5.9-3.1-9.2c-3.3-28.8-.2-57.9 9-85.3 1-3.1 2.7-5.9 4.9-8.3s4.9-4.2 7.9-5.5 6.2-1.8 9.5-1.8 6.4 .9 9.3 2.3zm44 239.3c23.8 16.3 50.9 27.3 79.4 32.1 3.2 .6 6.5 .4 9.6-.4s6.1-2.3 8.6-4.4 4.6-4.6 6-7.5 2.3-6.1 2.4-9.4l3.9-110.8c.7-21.3-25.5-31.9-39.8-16.1L82.8 445.5c-2.2 2.4-3.8 5.3-4.8 8.4s-1.3 6.4-.9 9.6 1.5 6.3 3.1 9.1 3.9 5.2 6.6 7l0 0zM232.2 369.7l58.8 94c1.7 2.8 4 5.1 6.8 6.9s5.8 3 9 3.5 6.5 .3 9.7-.5 6.1-2.4 8.6-4.4c22.3-18.4 40.3-41.5 52.7-67.6 1.4-2.9 2.1-6.1 2.2-9.4s-.6-6.5-1.9-9.4-3.2-5.7-5.6-7.8-5.2-3.9-8.3-4.9L258.7 335.7c-20.3-6.5-37.8 15.8-26.5 33.9zM380.6 237.4c-11.5-26.5-28.7-50.2-50.4-69.3-2.4-2.1-5.3-3.7-8.4-4.7s-6.4-1.2-9.6-.8-6.3 1.5-9.1 3.2-5.1 4-6.9 6.7l-62 91.9c-11.9 17.7 4.7 40.6 25.2 34.7L366 268.6c3.1-.9 6-2.5 8.5-4.6s4.5-4.7 5.8-7.7 2.1-6.2 2.2-9.4-.6-6.5-1.9-9.5l0 0zM62.1 30.2c-2.8 1.4-5.4 3.3-7.4 5.7s-3.6 5.2-4.5 8.2-1.2 6.2-.9 9.3 1.3 6.1 2.9 8.9L156.3 242.6c11.7 20.2 42.6 11.9 42.6-11.4l0-208.3c0-3.1-.6-6.3-1.8-9.2s-3.1-5.5-5.4-7.6-5-3.8-8-4.8-6.1-1.4-9.3-1.2c-39 3.1-77 13.3-112.3 30.1z\"]\n};\nvar faGofore = {\n prefix: 'fab',\n iconName: 'gofore',\n icon: [448, 512, [], \"f3a7\", \"M348 319.8l-13.2 0 0 34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3c-41.8-42.3-97.1-65.6-156.1-65.6-122.7 0-220.7 100.6-220.7 224 0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zM335.9 207.3l-106.3 0 0 89 118.4 0c33.5 0 60.5 15.1 76 41.8l0-30.6c0-65.2-40.4-100.2-88.1-100.2z\"]\n};\nvar faAviato = {\n prefix: 'fab',\n iconName: 'aviato',\n icon: [640, 512, [], \"f421\", \"M107.2 283.5l-19-41.8-52.1 0-19 41.8-17.1 0 62.2-131.4 62.2 131.4-17.2 0zm-45-98.1l-19.6 42.5 39.2 0-19.6-42.5zM174.9 287.8l-62.2-131.4 17.1 0 45.1 96 45.1-96 17 0-62.1 131.4zm80.6-4.3l0-127.1 15.5 0 0 127.1-15.5 0zM464.6 167.9l0 115.6-17.3 0 0-115.6-41.2 0 0-11.5 99.6 0 0 11.5-41.1 0zM640 218.8c0 9.2-1.7 17.8-5.1 25.8s-8.2 15.1-14.2 21.1-13.1 10.8-21.1 14.2-16.6 5.1-25.8 5.1-17.8-1.7-25.8-5.1-15.1-8.2-21.1-14.2-10.8-13-14.2-21.1c-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8 8.2-15.1 14.2-21.1 13-8.4 21.1-11.9c8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1 15.1 5.8 21.1 11.9c6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3s-6.2-11.7-10.8-16.3-10-8.2-16.2-10.9-12.8-4-19.8-4-13.6 1.3-19.8 4-11.6 6.3-16.2 10.9-8.2 10-10.8 16.3-3.9 13.1-3.9 20.3c0 7.3 1.3 14 3.9 20.3s6.2 11.7 10.8 16.3 10 8.2 16.2 10.9 12.8 4 19.8 4 13.6-1.3 19.8-4 11.6-6.3 16.2-10.9 8.2-10 10.8-16.3 3.9-13.1 3.9-20.3zm-94.8 96.7l0-6.3 88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2 .3-2 .5-4.2 .6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3 23.8 0 19 41.8 17.1 0-62.2-131.4-62.2 131.4 17.1 0 19-41.8 23.6 0-1.1 26.4s-22.7 6.5-25.5 23.7c-.1 .3-.1 .7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3 .3 4.4 .6 6.5 .3 2.6 .8 5 1.4 7.2l-242.9-13.5 88.9 10 0 6.3c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4s12.4-5.6 12.4-12.4c0-6.2-4.6-11.3-10.5-12.2l0-5.8 80.3 9 0 5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2s12.4-3.4 12.4-10.2c0-6-4.3-11-9.9-12.1l0-4.9 28.4 3.2 0 23.7-5.9 0 0 13.9 5.9 0 0-6.6 5 0 0 6.6 5.9 0 0-13.8-5.9 0 0-23.2 38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1 .2-.1 12.1 4.1 0 .1-5 5.2 0 .1 5 4.1 0-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3 0 23.2-5.9 0 0 13.8 5.9 0 0-6.6 5 0 0 6.6 5.9 0 0-13.8-5.9 0 0-23.7 28.4-3.2 0 4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2s12.4-3.4 12.4-10.2c0-6-4.3-11-9.9-12.1l0-5.4 80.3-9 0 5.8c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4s12.4-5.6 12.4-12.4c-.2-6.3-4.7-11.4-10.7-12.3zM328.9 227.9l19.6-42.5 19.6 42.5-17.9 0-1.7-40.3-1.7 40.3-17.9 0z\"]\n};\nvar faPadlet = {\n prefix: 'fab',\n iconName: 'padlet',\n icon: [640, 512, [], \"e4a0\", \"M297.9 0l.1 0c7.6 .1 14.4 4.7 17.5 11.8l132 308.5 .3-.1 .2 .4-2.8 10-42.9 158c-3.7 16.2-19.7 26.3-35.8 22.6l-68.4-15.6-68.5 15.6c-16.1 3.7-32.1-6.4-35.8-22.6l-42.9-158-2.7-10 .1-.4 132.1-308.4c3-7 9.9-11.6 17.5-11.8zM160.1 322.1l131 39.1 6.9 122.5 7.9-121.5 130.6-39.3 .2-.1-131 25.1-8.6-320.2-5.2 320.2-131.8-25.8zM426 222.6l94.4-41 73.8 0-157 247.6 31.6-109-42.8-97.6zm171.5-41.2l41.4 76.2c4 7.5-3.9 15.9-11.6 12.2l-47.6-22.7 17.8-65.7zM127.3 318.5L158.7 430 1.6 154.5c-5.9-10.4 5.5-22 15.9-16.2l151.8 84.2-42.1 96z\"]\n};\nvar faEdgeLegacy = {\n prefix: 'fab',\n iconName: 'edge-legacy',\n icon: [448, 512, [], \"e078\", \"M-6 228.2l.4-.5c0 .2 0 .3-.1 .5l-.3 0zm460.6 15.5c0-44-7.8-84.5-28.8-122.4-41-73.4-113.6-113.3-198.6-113.3-139.9-.3-218.3 105.2-232.8 219.7 42.4-61.3 117.1-121.4 220.4-125 0 0 109.7 0 99.4 105l-175.8 0c6.4-37.4 18.5-59 34.3-78.9-75 34.9-121.8 96.1-120.8 188.3 .8 71.5 50.1 144.8 120.8 172 83.4 31.8 192.8 7.2 240.1-21.3l0-104.4c-80.9 56.5-270.9 60.9-272.3-67.6l314.1 0 0-52.1z\"]\n};\nvar faSquareLastfm = {\n prefix: 'fab',\n iconName: 'square-lastfm',\n icon: [448, 512, [\"lastfm-square\"], \"f203\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9-12.9-41.9-21-68.4-58-68.4-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 67.9 0 79.3 35.3 96.4 88.4 1.4 4.4 2.9 8.9 4.4 13.5 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-17.5-16.9-21.2-40-26.4-3.2-.7-6.5-1.4-9.9-2.2-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 2.2 .5 4.5 1 6.7 1.4 31.1 6.5 65.1 13.7 65.1 56.1 .1 36.7-30.7 50.6-76.1 50.6-63.4 0-85.4-28.6-97.1-64.1z\"]\n};\nvar faLastfmSquare = faSquareLastfm;\nvar faGoodreadsG = {\n prefix: 'fab',\n iconName: 'goodreads-g',\n icon: [320, 512, [], \"f3a9\", \"M10.8 403.3l2.8 0c12.7 0 25.5 0 38.2 .1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5 .1-5.8 .3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7 20.6-71.1 74.6-118.2 153.9-118.8 61.3-.4 101.5 38.7 116.2 70.3 .5 1.1 1.3 2.3 2.4 1.9l0-61.6 44.3 0c0 280.3 .1 332.2 .1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM157.1 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"]\n};\nvar faCcMastercard = {\n prefix: 'fab',\n iconName: 'cc-mastercard',\n icon: [576, 512, [], \"f1f1\", \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7s4.4-11.7 11.2-11.7c6.6 0 11.2 5.2 11.2 11.7zM172.1 398.6c-7.1 0-11.2 5.2-11.2 11.7S165 422 172.1 422c6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7l19.1 0c-.9-5.7-4.4-8.7-9.6-8.7zm107.8 .3c-6.8 0-10.9 5.2-10.9 11.7s4.1 11.7 10.9 11.7 11.2-4.9 11.2-11.7c0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3 .3 .5 .3 1.1 0 .3-.3 .5-.3 1.1-.3 .3-.3 .5-.5 .8-.3 .3-.5 .5-1.1 .5-.3 .3-.5 .3-1.1 .3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8 .3-1.1 0-.5 .3-.8 .5-1.1 .3-.3 .5-.3 .8-.5 .5-.3 .8-.3 1.1-.3 .5 0 .8 0 1.1 .3 .5 .3 .8 .3 1.1 .5s.2 .6 .5 1.1zm-2.2 1.4c.5 0 .5-.3 .8-.3 .3-.3 .3-.5 .3-.8s0-.5-.3-.8c-.3 0-.5-.3-1.1-.3l-1.6 0 0 3.5 .8 0 0-1.4 .3 0 1.1 1.4 .8 0-1.1-1.3zM576 81l0 352c0 26.5-21.5 48-48 48L48 481c-26.5 0-48-21.5-48-48L0 81C0 54.5 21.5 33 48 33l480 0c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zM288 329.4c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zM145.7 405.7c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4l0-4.4-8.2 0 0 36.7 8.2 0c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2l7.9 0c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2l8.2 0 0-23-.2 0zM190.6 392l-7.9 0 0 4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4l0 4.6 7.9 0 0-36.8zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7 .8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1l0-16.6 13.1 0 0-7.4-13.1 0 0-11.2-8.2 0 0 11.2-7.6 0 0 7.3 7.6 0 0 16.7c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4l27.5 0c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zM338.9 392c-4.6-2-11.6-1.8-15.2 4.4l0-4.4-8.2 0 0 36.7 8.2 0 0-20.7c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zM416.2 392l-8.2 0 0 4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9l0 4.6 8.2 0 0-36.8zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4l0-4.4-7.9 0 0 36.7 7.9 0 0-20.7c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9l-7.9 0 0 19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9l0 4.6 7.9 0 0-51.7zm7.6-75.1l0 4.6 .8 0 0-4.6 1.9 0 0-.8-4.6 0 0 .8 1.9 0zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1s-.8-.5-1.1-.8c-.5 0-1.1-.3-1.6-.3-.3 0-.8 .3-1.4 .3-.5 .3-.8 .5-1.1 .8-.5 .3-.8 .8-.8 1.1-.3 .5-.3 1.1-.3 1.6 0 .3 0 .8 .3 1.4 0 .3 .3 .8 .8 1.1 .3 .3 .5 .5 1.1 .8 .5 .3 1.1 .3 1.4 .3 .5 0 1.1 0 1.6-.3 .3-.3 .8-.5 1.1-.8s.5-.8 .8-1.1c.3-.6 .3-1.1 .3-1.4zm3.2-124.7l-1.4 0-1.6 3.5-1.6-3.5-1.4 0 0 5.4 .8 0 0-4.1 1.6 3.5 1.1 0 1.4-3.5 0 4.1 1.1 0 0-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4 .1 138.5-61.9 138.5-138.4z\"]\n};\nvar faDiscourse = {\n prefix: 'fab',\n iconName: 'discourse',\n icon: [448, 512, [], \"f393\", \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2C348.6 479.8 448 377.5 448 255.9S348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392 111.4 317c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"]\n};\nvar faBlackTie = {\n prefix: 'fab',\n iconName: 'black-tie',\n icon: [448, 512, [], \"f27e\", \"M0 32l0 448 448 0 0-448-448 0zM316.5 357.2l-92.5 88.7-92.5-88.7 64.5-184-64.5-86.6 184.9 0-64.4 86.6 64.5 184z\"]\n};\nvar faSquareFacebook = {\n prefix: 'fab',\n iconName: 'square-facebook',\n icon: [448, 512, [\"facebook-square\"], \"f082\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l98.2 0 0-145.8-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 145.8 129 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faFacebookSquare = faSquareFacebook;\nvar faBattleNet = {\n prefix: 'fab',\n iconName: 'battle-net',\n icon: [512, 512, [], \"f835\", \"M448.8 225.6c26.9 .2 35.6-7.4 38.9-12.4 12.5-16.3-7.1-47.6-52.8-71.3 17.8-33.6 30.1-63.7 36.3-85.3 3.4-11.8 1.1-19 .5-20.3-1.7 10.5-15.8 48.5-48.2 100-25-11.2-56.5-20.1-93.8-23.8-8.9-16.9-34.9-63.9-60.5-88.9-16.8-16.5-30.3-22.6-40.8-23.5l0 0c-13.8-1.6-22.7 5.8-27.4 11-17.2 18.5-24.3 48.9-25 84.1-7.2-12.3-17.2-24.6-28.5-25.9l-.2 0c-20.7-3.5-38.4 29.2-36 81.3-38.4 1.4-71 5.8-93 11.2-9.9 2.4-16.2 7.3-17.8 9.7 1-.4 22.4-9.2 111.6-9.2 5.2 53 29.8 101.8 26 93.2-9.7 15.4-38.2 62.4-47.3 97.7-5.9 22.9-4.4 37.6 .2 47.1 5.6 12.8 16.4 16.7 23.2 18.3 25 5.7 55.4-3.6 86.7-21.1-7.5 12.8-13.9 28.5-9.1 39.3 7.3 19.6 44.5 18.7 88.4-9.4 20.2 32.2 40.1 57.9 55.7 74.1 2.6 2.8 5.5 5.2 8.8 7.1 5.1 3.2 8.6 3.4 8.6 3.4-8.2-6.7-34-38-62.5-91.8 22.2-16 45.7-38.9 67.5-69.3 122.8 4.6 143.3-24.8 148-31.6 14.7-19.9 3.4-57.4-57.3-93.7zM371 331.8c23.8-37.7 30.3-67.8 29.4-92.3 27.9 17.6 47.2 37.6 49.1 58.8 1.1 12.9-8.1 29.1-78.5 33.5zM217.1 387.7c9.8-6.2 19.5-13.1 29.2-20.5 6.7 13.3 13.6 26.1 20.6 38.2-40.6 21.9-68.8 12.8-49.8-17.7zm215-171.3c-10.3-5.3-21.2-10.3-32.4-15 7.9-12.1 15.5-24.4 22.7-36.9 39.1 24.1 45.9 53.2 9.6 51.9zM279.4 398c-5.5-11.4-11-23.5-16.5-36.4 43.2 1.3 62.4-18.7 63.3-20.4 0 .1-25 15.6-62.5 12.2 30.6-25.6 59.1-53.7 85.1-84 8.7-10.2 17-20.6 24.9-31.1-.4-.3-1.5-3-16.5-12-51.7 60.3-102.3 98-132.8 115.9-20.6-11.2-40.8-31.8-55.7-61.5-20-39.9-30-82.4-31.6-116.1 12.3 .9 25.3 2.2 38.8 3.9-22.3 36.8-14.4 63-13.5 64.2 0-.1-1-29.2 20.1-59.6 9 52.5 24 103.8 44.7 152.8 .9-.4 1.8 .9 18.7-8.2-26.3-74.5-33.8-138.2-34-173.4 20-12.4 48.2-19.8 81.6-17.8 44.6 2.7 86.4 15.2 116.3 30.7-7.1 10.4-14.9 21.3-23.3 32.5-20.7-37.7-47.3-43.9-48.9-43.7 .1 0 25.9 14.1 41.5 47.2-37.5-13.8-76.1-24.4-115.3-31.7-13.1-2.4-26.2-4.4-39.4-6-.1 .4-1.8 1.8-2.2 20.3 77.9 14.5 136.6 39.9 167.2 57.2 .7 23.6-7 51.6-25.4 79.6-24.6 37.3-56.4 67.2-84.8 85.4zm27.4-287c-44.6-1.7-73.6 7.4-94.7 20.7 2-52.3 21.3-76.4 38.2-75.3 16.9-4.2 54.9 52.2 56.5 54.6zm-130.7 3.1c.5 12.1 1.6 24.6 3.2 37.3-14.6-.9-28.7-1.3-42.4-1.3-.1 3.2-.1-51 24.7-49.6l.1 0c5.8 1.1 10.6 6.9 14.4 13.6zm-28.1 162c20.8 39.7 43.3 60.6 65.3 72.3-46.8 24.8-77.5 20-84.9 4.5-.2-.2-11.1-15.3 19.7-76.8l0 0z\"]\n};\nvar faBimobject = {\n prefix: 'fab',\n iconName: 'bimobject',\n icon: [448, 512, [], \"f378\", \"M416 32L32 32C14.4 32 0 46.4 0 64L0 448c0 17.6 14.4 32 32 32l384 0c17.6 0 32-14.4 32-32l0-384c0-17.6-14.4-32-32-32zM352 289.4c0 49.4-11.4 82.6-103.8 82.6l-16.9 0c-44.1 0-62.4-14.9-70.4-38.8l-.9 0 0 34.8-64 0 0-232 64 0 0 74.7 1.1 0c4.6-30.5 39.7-38.8 69.7-38.8l17.3 0c92.4 0 103.8 33.1 103.8 82.5l0 35 .1 0zm-64-28.9l0 22.9c0 21.7-3.4 33.8-38.4 33.8l-45.3 0c-28.9 0-44.1-6.5-44.1-35.7l0-19c0-29.3 15.2-35.7 44.1-35.7l45.3 0c35-.2 38.4 12 38.4 33.7z\"]\n};\nvar faSvelte = {\n prefix: 'fab',\n iconName: 'svelte',\n icon: [448, 512, [], \"e868\", \"M202.1 26.4c66.8-42.6 159.3-22.7 206.1 44.3 11.1 15.5 19 33.1 23.2 51.8s4.7 37.9 1.3 56.7c-3.2 18-10.1 35.1-20.1 50.3 14.6 27.9 19.6 60 14 91-3.3 18.4-10.4 36-20.9 51.5s-24.1 28.7-39.9 38.7L248.3 485.6c-66.8 42.6-159.3 22.7-206.1-44.2-11.1-15.5-19-33.2-23.2-51.8s-4.7-37.9-1.3-56.7c3.2-18 10.1-35.1 20.1-50.3-14.7-27.9-19.6-60-14-91.1 3.3-18.4 10.4-36 20.9-51.5s24.1-28.7 39.9-38.7L202.1 26.4zM315.6 67.2c-17.9-6.6-37.4-7.6-55.9-2.8-8.4 2.3-16.5 5.8-23.8 10.5L118.5 149.7c-9.5 6-17.7 13.9-24 23.3S84 192.8 82 203.9c-2 11.3-1.7 22.9 .8 34.1s7.3 21.8 13.9 31.2c10.9 15.7 26.3 27.6 44.2 34.3s37.4 7.6 55.9 2.8c8.4-2.3 16.5-5.8 23.8-10.5l44.8-28.6c2.2-1.4 4.7-2.5 7.2-3.2 5.6-1.4 11.4-1.2 16.8 .8s10 5.6 13.3 10.3c2 2.8 3.5 6 4.2 9.4s.9 6.9 .3 10.3c-.6 3.3-1.9 6.5-3.8 9.3-1.9 2.8-4.4 5.2-7.2 7L178.8 386.1c-2.2 1.4-4.7 2.5-7.2 3.2-5.6 1.4-11.4 1.2-16.8-.8s-10-5.6-13.3-10.3c-3.6-5.1-5.3-11.2-4.7-17.4l.4-4.4-4.3-1.3c-16.5-5-32.1-12.7-45.9-22.9l-6-4.4-2.2 6.7c-1.2 3.6-2.1 7.3-2.8 11-2 11.3-1.7 22.9 .8 34.1s7.3 21.8 13.9 31.1c10.9 15.7 26.3 27.6 44.2 34.3s37.4 7.6 55.8 2.8c8.4-2.3 16.5-5.8 23.9-10.5l117.3-74.8c9.5-6 17.7-13.9 24-23.3s10.6-19.9 12.6-31c2-11.3 1.8-22.9-.8-34.1s-7.3-21.8-14-31.1c-10.9-15.7-26.3-27.6-44.2-34.3s-37.4-7.6-55.9-2.8c-8.4 2.3-16.5 5.8-23.8 10.5L185 244.8c-2.2 1.4-4.6 2.5-7.2 3.2-5.6 1.4-11.5 1.2-16.8-.8s-10-5.6-13.3-10.3c-2-2.8-3.4-6-4.2-9.4s-.9-6.9-.2-10.3c.6-3.3 1.9-6.5 3.8-9.3s4.4-5.2 7.2-7l117.4-74.8c2.2-1.4 4.7-2.5 7.2-3.2 5.6-1.4 11.4-1.1 16.8 .9s10 5.6 13.3 10.3c3.6 5.1 5.2 11.3 4.7 17.4l-.4 4.4 4.4 1.3c16.5 5 32 12.8 45.9 23l6 4.4 2.2-6.8c1.2-3.6 2.1-7.3 2.8-11 2-11.3 1.8-22.9-.8-34.1s-7.3-21.8-14-31.1c-10.9-15.7-26.3-27.6-44.2-34.3z\"]\n};\nvar faSquareDeskpro = {\n prefix: 'fab',\n iconName: 'square-deskpro',\n icon: [448, 512, [], \"e844\", \"M408.8 32C430.4 32 448 49.6 448 71.2l0 369.6c0 21.6-17.6 39.2-39.2 39.2L39.2 480C17.6 480 0 462.4 0 440.8L0 71.2C0 49.6 17.6 32 39.2 32l369.6 0zM110.9 274.1l0 114.4 89.1-.1c20.6 0 39.4-3.2 56.3-9.5s31.3-15.4 43.2-27c12.2-11.9 21.6-26 28.2-42.1 4.6-11.1 7.7-23 9.2-35.7l-43.8 0c-1.1 6.4-2.8 12.4-5.1 18.2-4.2 10.9-10.3 20.3-18.2 28.2-7.9 7.7-17.4 13.7-28.6 17.9-11.1 4.3-23.5 6.4-37.3 6.4l-50 0 0-70.6-43 .1zm0-151.4l0 114.4 43-.1 0-70.7 50 0c13.7 0 26.2 2.1 37.3 6.4 11.1 4.3 20.6 10.3 28.6 18.3 7.9 7.7 14 17.1 18.2 28.2 2.3 5.6 4 11.5 5.1 17.8l43.9 .1c-1.4-12.6-4.4-24.4-8.9-35.3-6.6-16.4-16-30.5-28.1-42.2-12.1-11.9-26.7-21.1-43.6-27.5-16.9-6.4-35.7-9.5-56.3-9.5l-89 .1z\"]\n};\nvar faTailwindCss = {\n prefix: 'fab',\n iconName: 'tailwind-css',\n icon: [640, 512, [], \"e866\", \"M320 64c-85.3 0-138.7 42.7-160 128 32-42.7 69.3-58.7 112-48 24.3 6.1 41.7 23.8 61 43.3 31.4 31.8 67.7 68.7 147 68.7 85.3 0 138.7-42.7 160-128-32 42.7-69.3 58.7-112 48-24.3-6.1-41.7-23.8-61-43.3-31.4-31.8-67.7-68.7-147-68.7zM160 256c-85.3 0-138.7 42.7-160 128 32-42.7 69.3-58.7 112-48 24.3 6.1 41.7 23.8 61 43.3 31.4 31.8 67.7 68.7 147 68.7 85.3 0 138.7-42.7 160-128-32 42.7-69.3 58.7-112 48-24.3-6.1-41.7-23.8-61-43.3-31.4-31.8-67.7-68.7-147-68.7z\"]\n};\nvar icons = {\n faSquareGithub: faSquareGithub,\n faGithubSquare: faGithubSquare,\n faThinkPeaks: faThinkPeaks,\n faGoogleDrive: faGoogleDrive,\n faAutoprefixer: faAutoprefixer,\n faSquareViadeo: faSquareViadeo,\n faViadeoSquare: faViadeoSquare,\n faCpanel: faCpanel,\n faMendeley: faMendeley,\n faDraft2digital: faDraft2digital,\n faReplyd: faReplyd,\n faEmpire: faEmpire,\n faAccessibleIcon: faAccessibleIcon,\n faQuora: faQuora,\n faCcJcb: faCcJcb,\n faFedora: faFedora,\n faDuolingo: faDuolingo,\n faFirstdraft: faFirstdraft,\n faFreebsd: faFreebsd,\n faOdysee: faOdysee,\n faGgCircle: faGgCircle,\n faCloudflare: faCloudflare,\n faHackerrank: faHackerrank,\n faSkyatlas: faSkyatlas,\n faDeskpro: faDeskpro,\n faResolving: faResolving,\n faBlackberry: faBlackberry,\n faStripeS: faStripeS,\n faSquareBehance: faSquareBehance,\n faBehanceSquare: faBehanceSquare,\n faServicestack: faServicestack,\n faRocketchat: faRocketchat,\n faRebel: faRebel,\n faSquareWebAwesome: faSquareWebAwesome,\n faLinktree: faLinktree,\n faSimplybuilt: faSimplybuilt,\n faStubber: faStubber,\n faApper: faApper,\n faGoogleScholar: faGoogleScholar,\n faYarn: faYarn,\n faStackOverflow: faStackOverflow,\n faBluetooth: faBluetooth,\n faCreativeCommonsNcJp: faCreativeCommonsNcJp,\n faReddit: faReddit,\n faConnectdevelop: faConnectdevelop,\n faResearchgate: faResearchgate,\n faSignalMessenger: faSignalMessenger,\n faXing: faXing,\n faSquareJs: faSquareJs,\n faJsSquare: faJsSquare,\n faFonticons: faFonticons,\n faUps: faUps,\n faAmazonPay: faAmazonPay,\n faPandora: faPandora,\n faOpenid: faOpenid,\n faVsco: faVsco,\n faGlobaleaks: faGlobaleaks,\n faVenmo: faVenmo,\n faUbuntu: faUbuntu,\n faViacoin: faViacoin,\n faZhihu: faZhihu,\n faYandex: faYandex,\n faPixiv: faPixiv,\n faOpenai: faOpenai,\n faSith: faSith,\n faJulia: faJulia,\n faNfcDirectional: faNfcDirectional,\n faCreativeCommonsBy: faCreativeCommonsBy,\n faUmbraco: faUmbraco,\n faHooli: faHooli,\n faSquareGit: faSquareGit,\n faGitSquare: faGitSquare,\n faOdnoklassniki: faOdnoklassniki,\n faDrupal: faDrupal,\n faBloggerB: faBloggerB,\n faInvision: faInvision,\n faFacebookF: faFacebookF,\n faCentos: faCentos,\n faScaleway: faScaleway,\n faCcAmazonPay: faCcAmazonPay,\n faEbay: faEbay,\n faContao: faContao,\n faEllo: faEllo,\n faSistrix: faSistrix,\n faPeriscope: faPeriscope,\n faExpeditedssl: faExpeditedssl,\n faNapster: faNapster,\n faDelicious: faDelicious,\n faGuilded: faGuilded,\n faObsidian: faObsidian,\n faXbox: faXbox,\n faUntappd: faUntappd,\n faGooglePlusG: faGooglePlusG,\n faGithubAlt: faGithubAlt,\n faGetPocket: faGetPocket,\n faGlide: faGlide,\n faBity: faBity,\n faWpexplorer: faWpexplorer,\n faMegaport: faMegaport,\n faLeetcode: faLeetcode,\n faMdb: faMdb,\n faPage4: faPage4,\n faTheRedYeti: faTheRedYeti,\n faJira: faJira,\n faFedex: faFedex,\n faEvernote: faEvernote,\n faUsb: faUsb,\n faAngrycreative: faAngrycreative,\n faMizuni: faMizuni,\n faItchIo: faItchIo,\n faWindows: faWindows,\n faStumbleupon: faStumbleupon,\n faGoogle: faGoogle,\n faDiscord: faDiscord,\n faHackerNews: faHackerNews,\n faEleventy: faEleventy,\n fa11ty: fa11ty,\n faTeamspeak: faTeamspeak,\n faSupple: faSupple,\n faSquareTwitter: faSquareTwitter,\n faTwitterSquare: faTwitterSquare,\n faVim: faVim,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faWirsindhandwerk: faWirsindhandwerk,\n faWsh: faWsh,\n faZoom: faZoom,\n faConfluence: faConfluence,\n faDigg: faDigg,\n faThreads: faThreads,\n faWpressr: faWpressr,\n faRendact: faRendact,\n faYoast: faYoast,\n faNimblr: faNimblr,\n faPixelfed: faPixelfed,\n faYahoo: faYahoo,\n faBluesky: faBluesky,\n faScribd: faScribd,\n faCreativeCommonsPd: faCreativeCommonsPd,\n faEarlybirds: faEarlybirds,\n faSymfonycasts: faSymfonycasts,\n faSquareOdnoklassniki: faSquareOdnoklassniki,\n faOdnoklassnikiSquare: faOdnoklassnikiSquare,\n faMarkdown: faMarkdown,\n faTypo3: faTypo3,\n faJoomla: faJoomla,\n faWeixin: faWeixin,\n faGrunt: faGrunt,\n faSupportnow: faSupportnow,\n faRockrms: faRockrms,\n faUnsplash: faUnsplash,\n faSquareInstagram: faSquareInstagram,\n faInstagramSquare: faInstagramSquare,\n faFirstOrderAlt: faFirstOrderAlt,\n faFulcrum: faFulcrum,\n faArchLinux: faArchLinux,\n faFediverse: faFediverse,\n faBraveReverse: faBraveReverse,\n faAvianex: faAvianex,\n faNs8: faNs8,\n faSquarePinterest: faSquarePinterest,\n faPinterestSquare: faPinterestSquare,\n faBluetoothB: faBluetoothB,\n faGripfire: faGripfire,\n faSquareGooglePlus: faSquareGooglePlus,\n faGooglePlusSquare: faGooglePlusSquare,\n faGitee: faGitee,\n faXmpp: faXmpp,\n faAppStore: faAppStore,\n faWix: faWix,\n faIntercom: faIntercom,\n faReacteurope: faReacteurope,\n faWaze: faWaze,\n faCreativeCommonsRemix: faCreativeCommonsRemix,\n faBandcamp: faBandcamp,\n faSquareWebAwesomeStroke: faSquareWebAwesomeStroke,\n faVimeoV: faVimeoV,\n faStrava: faStrava,\n faUniregistry: faUniregistry,\n faCcDinersClub: faCcDinersClub,\n faKubernetes: faKubernetes,\n faPinterest: faPinterest,\n faAlgolia: faAlgolia,\n faStackpath: faStackpath,\n faOctopusDeploy: faOctopusDeploy,\n faYammer: faYammer,\n faModx: faModx,\n faSquareThreads: faSquareThreads,\n faOldRepublic: faOldRepublic,\n faSuse: faSuse,\n faAppStoreIos: faAppStoreIos,\n faUltralyticsYolo: faUltralyticsYolo,\n faSquareDribbble: faSquareDribbble,\n faDribbbleSquare: faDribbbleSquare,\n faUikit: faUikit,\n faSuperpowers: faSuperpowers,\n faYoutube: faYoutube,\n faEmber: faEmber,\n faBootstrap: faBootstrap,\n faItunes: faItunes,\n faSquareXing: faSquareXing,\n faXingSquare: faXingSquare,\n faCss3Alt: faCss3Alt,\n faSquarespace: faSquarespace,\n faTrello: faTrello,\n faViadeo: faViadeo,\n faSearchengin: faSearchengin,\n faUnrealEngine: faUnrealEngine,\n faPaypal: faPaypal,\n faSquareBluesky: faSquareBluesky,\n faDAndDBeyond: faDAndDBeyond,\n faMicrosoft: faMicrosoft,\n faFly: faFly,\n faCcStripe: faCcStripe,\n faWordpressSimple: faWordpressSimple,\n faSellsy: faSellsy,\n faDashcube: faDashcube,\n faGitter: faGitter,\n faWolfPackBattalion: faWolfPackBattalion,\n faLastfm: faLastfm,\n faShopware: faShopware,\n faBlogger: faBlogger,\n faEdge: faEdge,\n faIoxhost: faIoxhost,\n faSchlix: faSchlix,\n faDAndD: faDAndD,\n faVuejs: faVuejs,\n faMeta: faMeta,\n faCreativeCommonsShare: faCreativeCommonsShare,\n faStudiovinari: faStudiovinari,\n faBitbucket: faBitbucket,\n faVk: faVk,\n faGithub: faGithub,\n faCodiepie: faCodiepie,\n faPiedPiper: faPiedPiper,\n faRaspberryPi: faRaspberryPi,\n faCss3: faCss3,\n faHubspot: faHubspot,\n faCmplid: faCmplid,\n faDyalog: faDyalog,\n faElementor: faElementor,\n faFirstOrder: faFirstOrder,\n faDribbble: faDribbble,\n faLinkedin: faLinkedin,\n faCcPaypal: faCcPaypal,\n faDhl: faDhl,\n faTex: faTex,\n faClaude: faClaude,\n faShopify: faShopify,\n faSquareReddit: faSquareReddit,\n faRedditSquare: faRedditSquare,\n faCreativeCommonsNc: faCreativeCommonsNc,\n faGalacticRepublic: faGalacticRepublic,\n faFacebook: faFacebook,\n faGitlab: faGitlab,\n faQq: faQq,\n faStripe: faStripe,\n faDailymotion: faDailymotion,\n faSteam: faSteam,\n faVenmoV: faVenmoV,\n faSnapchat: faSnapchat,\n faSnapchatGhost: faSnapchatGhost,\n faGalacticSenate: faGalacticSenate,\n faPhoenixFramework: faPhoenixFramework,\n faGit: faGit,\n faOptinMonster: faOptinMonster,\n faJenkins: faJenkins,\n faSlideshare: faSlideshare,\n faUber: faUber,\n faDigitalOcean: faDigitalOcean,\n faSoundcloud: faSoundcloud,\n faSquareFigma: faSquareFigma,\n faCreativeCommonsSa: faCreativeCommonsSa,\n faChrome: faChrome,\n faTradeFederation: faTradeFederation,\n faVaadin: faVaadin,\n faDeviantart: faDeviantart,\n faMedium: faMedium,\n faMediumM: faMediumM,\n faOpencart: faOpencart,\n faYCombinator: faYCombinator,\n faLine: faLine,\n faAmilia: faAmilia,\n faAsymmetrik: faAsymmetrik,\n faPhabricator: faPhabricator,\n faBots: faBots,\n faVine: faVine,\n faMedrt: faMedrt,\n faOsi: faOsi,\n faGg: faGg,\n faBuysellads: faBuysellads,\n faGooglePlus: faGooglePlus,\n faScreenpal: faScreenpal,\n faBitcoin: faBitcoin,\n faSwift: faSwift,\n faFilesPinwheel: faFilesPinwheel,\n faLaravel: faLaravel,\n faWpforms: faWpforms,\n faSpeakerDeck: faSpeakerDeck,\n faFlickr: faFlickr,\n faCcVisa: faCcVisa,\n faUpwork: faUpwork,\n faKakaoTalk: faKakaoTalk,\n faFlutter: faFlutter,\n faBuffer: faBuffer,\n faGratipay: faGratipay,\n faGooglePay: faGooglePay,\n faApple: faApple,\n faTumblr: faTumblr,\n faPhoenixSquadron: faPhoenixSquadron,\n faCentercode: faCentercode,\n faDebian: faDebian,\n faMastodon: faMastodon,\n faSketch: faSketch,\n faWebAwesome: faWebAwesome,\n faSass: faSass,\n faThreema: faThreema,\n faSquareWhatsapp: faSquareWhatsapp,\n faWhatsappSquare: faWhatsappSquare,\n faSkype: faSkype,\n faAngular: faAngular,\n faCircleZulip: faCircleZulip,\n faOpensuse: faOpensuse,\n faDropbox: faDropbox,\n faDeezer: faDeezer,\n faCreativeCommonsSampling: faCreativeCommonsSampling,\n faJediOrder: faJediOrder,\n faRProject: faRProject,\n faInstalod: faInstalod,\n faCanadianMapleLeaf: faCanadianMapleLeaf,\n faEthereum: faEthereum,\n faHouzz: faHouzz,\n faViber: faViber,\n faKickstarter: faKickstarter,\n faSquareKickstarter: faSquareKickstarter,\n faSpotify: faSpotify,\n faLeanpub: faLeanpub,\n faJava: faJava,\n faNfcSymbol: faNfcSymbol,\n faWodu: faWodu,\n faSquareSteam: faSquareSteam,\n faSteamSquare: faSteamSquare,\n faCreativeCommonsNcEu: faCreativeCommonsNcEu,\n faNpm: faNpm,\n faCloudscale: faCloudscale,\n faThemeco: faThemeco,\n faGooglePlay: faGooglePlay,\n faKorvue: faKorvue,\n faW3c: faW3c,\n faGrav: faGrav,\n faAws: faAws,\n faGlideG: faGlideG,\n faJsfiddle: faJsfiddle,\n faKeybase: faKeybase,\n faLumonDrop: faLumonDrop,\n faForgejo: faForgejo,\n faPostgresql: faPostgresql,\n faWeebly: faWeebly,\n faDocker: faDocker,\n faMagento: faMagento,\n faTorBrowser: faTorBrowser,\n faGitAlt: faGitAlt,\n faFirefoxBrowser: faFirefoxBrowser,\n faCloudsmith: faCloudsmith,\n faWizardsOfTheCoast: faWizardsOfTheCoast,\n faCreativeCommonsNd: faCreativeCommonsNd,\n faUsps: faUsps,\n faSquareLetterboxd: faSquareLetterboxd,\n faMandalorian: faMandalorian,\n faSlack: faSlack,\n faSlackHash: faSlackHash,\n faAngellist: faAngellist,\n faAndroid: faAndroid,\n faMeetup: faMeetup,\n faFonticonsFi: faFonticonsFi,\n faPalfed: faPalfed,\n faWpbeginner: faWpbeginner,\n faDiaspora: faDiaspora,\n faProductHunt: faProductHunt,\n faSquareUpwork: faSquareUpwork,\n faCuttlefish: faCuttlefish,\n faMedapps: faMedapps,\n faPix: faPix,\n faSquareTumblr: faSquareTumblr,\n faTumblrSquare: faTumblrSquare,\n faReact: faReact,\n faHuggingFace: faHuggingFace,\n faJxl: faJxl,\n faSquareLinkedin: faSquareLinkedin,\n faCss: faCss,\n faHashnode: faHashnode,\n faRedditAlien: faRedditAlien,\n faTiktok: faTiktok,\n faWordpress: faWordpress,\n faIdeal: faIdeal,\n faPiedPiperPp: faPiedPiperPp,\n faUssunnah: faUssunnah,\n faFortAwesomeAlt: faFortAwesomeAlt,\n faBuromobelexperte: faBuromobelexperte,\n faBilibili: faBilibili,\n faNeos: faNeos,\n faDev: faDev,\n faHotjar: faHotjar,\n faDochub: faDochub,\n faVimeo: faVimeo,\n faMaxcdn: faMaxcdn,\n faSquareFontAwesomeStroke: faSquareFontAwesomeStroke,\n faFontAwesomeAlt: faFontAwesomeAlt,\n faSpeakap: faSpeakap,\n faFantasyFlightGames: faFantasyFlightGames,\n faLinux: faLinux,\n faCottonBureau: faCottonBureau,\n faGoogleWallet: faGoogleWallet,\n faFoursquare: faFoursquare,\n faShirtsinbulk: faShirtsinbulk,\n faMintbit: faMintbit,\n faZulip: faZulip,\n faStaylinked: faStaylinked,\n faWebflow: faWebflow,\n faRenren: faRenren,\n faKoFi: faKoFi,\n faRev: faRev,\n faKeycdn: faKeycdn,\n faHireAHelper: faHireAHelper,\n faSquareHackerNews: faSquareHackerNews,\n faHackerNewsSquare: faHackerNewsSquare,\n faCreativeCommonsPdAlt: faCreativeCommonsPdAlt,\n faOrcid: faOrcid,\n faBoardGameGeek: faBoardGameGeek,\n faBgg: faBgg,\n faBehance: faBehance,\n faMonero: faMonero,\n faFigma: faFigma,\n faInstagram: faInstagram,\n faPerbyte: faPerbyte,\n faSquareVimeo: faSquareVimeo,\n faVimeoSquare: faVimeoSquare,\n faPushed: faPushed,\n faMixcloud: faMixcloud,\n faYandexInternational: faYandexInternational,\n faHive: faHive,\n faCreativeCommonsZero: faCreativeCommonsZero,\n faSquareSnapchat: faSquareSnapchat,\n faSnapchatSquare: faSnapchatSquare,\n faThemeisle: faThemeisle,\n faDartLang: faDartLang,\n faDeploydog: faDeploydog,\n faFlipboard: faFlipboard,\n faBuyNLarge: faBuyNLarge,\n faWatchmanMonitoring: faWatchmanMonitoring,\n faHips: faHips,\n faCloudversify: faCloudversify,\n faGoodreads: faGoodreads,\n faTidal: faTidal,\n faUnity: faUnity,\n faTencentWeibo: faTencentWeibo,\n faFreeCodeCamp: faFreeCodeCamp,\n faXTwitter: faXTwitter,\n faStickerMule: faStickerMule,\n faTwitch: faTwitch,\n faKickstarterK: faKickstarterK,\n faCriticalRole: faCriticalRole,\n faSteamSymbol: faSteamSymbol,\n faMailchimp: faMailchimp,\n faLumon: faLumon,\n faNutritionix: faNutritionix,\n faCreativeCommonsSamplingPlus: faCreativeCommonsSamplingPlus,\n faRedhat: faRedhat,\n faSquarePiedPiper: faSquarePiedPiper,\n faPiedPiperSquare: faPiedPiperSquare,\n faWhatsapp: faWhatsapp,\n faImdb: faImdb,\n faPython: faPython,\n faCashApp: faCashApp,\n faPinterestP: faPinterestP,\n faWhmcs: faWhmcs,\n faJoget: faJoget,\n faSquareYoutube: faSquareYoutube,\n faYoutubeSquare: faYoutubeSquare,\n faAtlassian: faAtlassian,\n faPiedPiperHat: faPiedPiperHat,\n faInternetExplorer: faInternetExplorer,\n faAirbnb: faAirbnb,\n faJs: faJs,\n faQuinscape: faQuinscape,\n faAdversal: faAdversal,\n faCreativeCommons: faCreativeCommons,\n faNotion: faNotion,\n faChromecast: faChromecast,\n faUltralyticsHub: faUltralyticsHub,\n faWikipediaW: faWikipediaW,\n faSitrox: faSitrox,\n faSquareGitlab: faSquareGitlab,\n faGitlabSquare: faGitlabSquare,\n faShoelace: faShoelace,\n faOpenstreetmap: faOpenstreetmap,\n faSellcast: faSellcast,\n faMix: faMix,\n faCcApplePay: faCcApplePay,\n faSolana: faSolana,\n faTypescript: faTypescript,\n faBrave: faBrave,\n faEtsy: faEtsy,\n faBtc: faBtc,\n faAdn: faAdn,\n faSquareXTwitter: faSquareXTwitter,\n faSquareFontAwesome: faSquareFontAwesome,\n faForumbee: faForumbee,\n fa42Group: fa42Group,\n faInnosoft: faInnosoft,\n faStumbleuponCircle: faStumbleuponCircle,\n faSymfony: faSymfony,\n faSalesforce: faSalesforce,\n faSourcetree: faSourcetree,\n faLinkedinIn: faLinkedinIn,\n faHtml5: faHtml5,\n faRust: faRust,\n faHornbill: faHornbill,\n faPhp: faPhp,\n faDisqus: faDisqus,\n fa500px: fa500px,\n faAffiliatetheme: faAffiliatetheme,\n faRedRiver: faRedRiver,\n faTwitter: faTwitter,\n faFortAwesome: faFortAwesome,\n faMixer: faMixer,\n faLyft: faLyft,\n faApplePay: faApplePay,\n faArtstation: faArtstation,\n faNodeJs: faNodeJs,\n faUncharted: faUncharted,\n faPlaystation: faPlaystation,\n faMicroblog: faMicroblog,\n faGitkraken: faGitkraken,\n faTelegram: faTelegram,\n faTelegramPlane: faTelegramPlane,\n faUltralytics: faUltralytics,\n faItunesNote: faItunesNote,\n faLess: faLess,\n faFirefox: faFirefox,\n faKaggle: faKaggle,\n faFacebookMessenger: faFacebookMessenger,\n faAudible: faAudible,\n faPatreon: faPatreon,\n faVnv: faVnv,\n faPagelines: faPagelines,\n faAmazon: faAmazon,\n faEnvira: faEnvira,\n faLinode: faLinode,\n faAccusoft: faAccusoft,\n faErlang: faErlang,\n faUnison: faUnison,\n faCcDiscover: faCcDiscover,\n faSafari: faSafari,\n faSpaceAwesome: faSpaceAwesome,\n faNode: faNode,\n faCodepen: faCodepen,\n faRavelry: faRavelry,\n faAlipay: faAlipay,\n faCcAmex: faCcAmex,\n faPiedPiperAlt: faPiedPiperAlt,\n faLetterboxd: faLetterboxd,\n faOpera: faOpera,\n faWeibo: faWeibo,\n faReadme: faReadme,\n faGolang: faGolang,\n faStackExchange: faStackExchange,\n faGulp: faGulp,\n faYelp: faYelp,\n faGofore: faGofore,\n faAviato: faAviato,\n faPadlet: faPadlet,\n faEdgeLegacy: faEdgeLegacy,\n faSquareLastfm: faSquareLastfm,\n faLastfmSquare: faLastfmSquare,\n faGoodreadsG: faGoodreadsG,\n faCcMastercard: faCcMastercard,\n faDiscourse: faDiscourse,\n faBlackTie: faBlackTie,\n faSquareFacebook: faSquareFacebook,\n faFacebookSquare: faFacebookSquare,\n faBattleNet: faBattleNet,\n faBimobject: faBimobject,\n faSvelte: faSvelte,\n faSquareDeskpro: faSquareDeskpro,\n faTailwindCss: faTailwindCss\n};\n\nexport { icons as fab, prefix, faSquareGithub, faGithubSquare, faThinkPeaks, faGoogleDrive, faAutoprefixer, faSquareViadeo, faViadeoSquare, faCpanel, faMendeley, faDraft2digital, faReplyd, faEmpire, faAccessibleIcon, faQuora, faCcJcb, faFedora, faDuolingo, faFirstdraft, faFreebsd, faOdysee, faGgCircle, faCloudflare, faHackerrank, faSkyatlas, faDeskpro, faResolving, faBlackberry, faStripeS, faSquareBehance, faBehanceSquare, faServicestack, faRocketchat, faRebel, faSquareWebAwesome, faLinktree, faSimplybuilt, faStubber, faApper, faGoogleScholar, faYarn, faStackOverflow, faBluetooth, faCreativeCommonsNcJp, faReddit, faConnectdevelop, faResearchgate, faSignalMessenger, faXing, faSquareJs, faJsSquare, faFonticons, faUps, faAmazonPay, faPandora, faOpenid, faVsco, faGlobaleaks, faVenmo, faUbuntu, faViacoin, faZhihu, faYandex, faPixiv, faOpenai, faSith, faJulia, faNfcDirectional, faCreativeCommonsBy, faUmbraco, faHooli, faSquareGit, faGitSquare, faOdnoklassniki, faDrupal, faBloggerB, faInvision, faFacebookF, faCentos, faScaleway, faCcAmazonPay, faEbay, faContao, faEllo, faSistrix, faPeriscope, faExpeditedssl, faNapster, faDelicious, faGuilded, faObsidian, faXbox, faUntappd, faGooglePlusG, faGithubAlt, faGetPocket, faGlide, faBity, faWpexplorer, faMegaport, faLeetcode, faMdb, faPage4, faTheRedYeti, faJira, faFedex, faEvernote, faUsb, faAngrycreative, faMizuni, faItchIo, faWindows, faStumbleupon, faGoogle, faDiscord, faHackerNews, faEleventy, fa11ty, faTeamspeak, faSupple, faSquareTwitter, faTwitterSquare, faVim, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faWirsindhandwerk, faWsh, faZoom, faConfluence, faDigg, faThreads, faWpressr, faRendact, faYoast, faNimblr, faPixelfed, faYahoo, faBluesky, faScribd, faCreativeCommonsPd, faEarlybirds, faSymfonycasts, faSquareOdnoklassniki, faOdnoklassnikiSquare, faMarkdown, faTypo3, faJoomla, faWeixin, faGrunt, faSupportnow, faRockrms, faUnsplash, faSquareInstagram, faInstagramSquare, faFirstOrderAlt, faFulcrum, faArchLinux, faFediverse, faBraveReverse, faAvianex, faNs8, faSquarePinterest, faPinterestSquare, faBluetoothB, faGripfire, faSquareGooglePlus, faGooglePlusSquare, faGitee, faXmpp, faAppStore, faWix, faIntercom, faReacteurope, faWaze, faCreativeCommonsRemix, faBandcamp, faSquareWebAwesomeStroke, faVimeoV, faStrava, faUniregistry, faCcDinersClub, faKubernetes, faPinterest, faAlgolia, faStackpath, faOctopusDeploy, faYammer, faModx, faSquareThreads, faOldRepublic, faSuse, faAppStoreIos, faUltralyticsYolo, faSquareDribbble, faDribbbleSquare, faUikit, faSuperpowers, faYoutube, faEmber, faBootstrap, faItunes, faSquareXing, faXingSquare, faCss3Alt, faSquarespace, faTrello, faViadeo, faSearchengin, faUnrealEngine, faPaypal, faSquareBluesky, faDAndDBeyond, faMicrosoft, faFly, faCcStripe, faWordpressSimple, faSellsy, faDashcube, faGitter, faWolfPackBattalion, faLastfm, faShopware, faBlogger, faEdge, faIoxhost, faSchlix, faDAndD, faVuejs, faMeta, faCreativeCommonsShare, faStudiovinari, faBitbucket, faVk, faGithub, faCodiepie, faPiedPiper, faRaspberryPi, faCss3, faHubspot, faCmplid, faDyalog, faElementor, faFirstOrder, faDribbble, faLinkedin, faCcPaypal, faDhl, faTex, faClaude, faShopify, faSquareReddit, faRedditSquare, faCreativeCommonsNc, faGalacticRepublic, faFacebook, faGitlab, faQq, faStripe, faDailymotion, faSteam, faVenmoV, faSnapchat, faSnapchatGhost, faGalacticSenate, faPhoenixFramework, faGit, faOptinMonster, faJenkins, faSlideshare, faUber, faDigitalOcean, faSoundcloud, faSquareFigma, faCreativeCommonsSa, faChrome, faTradeFederation, faVaadin, faDeviantart, faMedium, faMediumM, faOpencart, faYCombinator, faLine, faAmilia, faAsymmetrik, faPhabricator, faBots, faVine, faMedrt, faOsi, faGg, faBuysellads, faGooglePlus, faScreenpal, faBitcoin, faSwift, faFilesPinwheel, faLaravel, faWpforms, faSpeakerDeck, faFlickr, faCcVisa, faUpwork, faKakaoTalk, faFlutter, faBuffer, faGratipay, faGooglePay, faApple, faTumblr, faPhoenixSquadron, faCentercode, faDebian, faMastodon, faSketch, faWebAwesome, faSass, faThreema, faSquareWhatsapp, faWhatsappSquare, faSkype, faAngular, faCircleZulip, faOpensuse, faDropbox, faDeezer, faCreativeCommonsSampling, faJediOrder, faRProject, faInstalod, faCanadianMapleLeaf, faEthereum, faHouzz, faViber, faKickstarter, faSquareKickstarter, faSpotify, faLeanpub, faJava, faNfcSymbol, faWodu, faSquareSteam, faSteamSquare, faCreativeCommonsNcEu, faNpm, faCloudscale, faThemeco, faGooglePlay, faKorvue, faW3c, faGrav, faAws, faGlideG, faJsfiddle, faKeybase, faLumonDrop, faForgejo, faPostgresql, faWeebly, faDocker, faMagento, faTorBrowser, faGitAlt, faFirefoxBrowser, faCloudsmith, faWizardsOfTheCoast, faCreativeCommonsNd, faUsps, faSquareLetterboxd, faMandalorian, faSlack, faSlackHash, faAngellist, faAndroid, faMeetup, faFonticonsFi, faPalfed, faWpbeginner, faDiaspora, faProductHunt, faSquareUpwork, faCuttlefish, faMedapps, faPix, faSquareTumblr, faTumblrSquare, faReact, faHuggingFace, faJxl, faSquareLinkedin, faCss, faHashnode, faRedditAlien, faTiktok, faWordpress, faIdeal, faPiedPiperPp, faUssunnah, faFortAwesomeAlt, faBuromobelexperte, faBilibili, faNeos, faDev, faHotjar, faDochub, faVimeo, faMaxcdn, faSquareFontAwesomeStroke, faFontAwesomeAlt, faSpeakap, faFantasyFlightGames, faLinux, faCottonBureau, faGoogleWallet, faFoursquare, faShirtsinbulk, faMintbit, faZulip, faStaylinked, faWebflow, faRenren, faKoFi, faRev, faKeycdn, faHireAHelper, faSquareHackerNews, faHackerNewsSquare, faCreativeCommonsPdAlt, faOrcid, faBoardGameGeek, faBgg, faBehance, faMonero, faFigma, faInstagram, faPerbyte, faSquareVimeo, faVimeoSquare, faPushed, faMixcloud, faYandexInternational, faHive, faCreativeCommonsZero, faSquareSnapchat, faSnapchatSquare, faThemeisle, faDartLang, faDeploydog, faFlipboard, faBuyNLarge, faWatchmanMonitoring, faHips, faCloudversify, faGoodreads, faTidal, faUnity, faTencentWeibo, faFreeCodeCamp, faXTwitter, faStickerMule, faTwitch, faKickstarterK, faCriticalRole, faSteamSymbol, faMailchimp, faLumon, faNutritionix, faCreativeCommonsSamplingPlus, faRedhat, faSquarePiedPiper, faPiedPiperSquare, faWhatsapp, faImdb, faPython, faCashApp, faPinterestP, faWhmcs, faJoget, faSquareYoutube, faYoutubeSquare, faAtlassian, faPiedPiperHat, faInternetExplorer, faAirbnb, faJs, faQuinscape, faAdversal, faCreativeCommons, faNotion, faChromecast, faUltralyticsHub, faWikipediaW, faSitrox, faSquareGitlab, faGitlabSquare, faShoelace, faOpenstreetmap, faSellcast, faMix, faCcApplePay, faSolana, faTypescript, faBrave, faEtsy, faBtc, faAdn, faSquareXTwitter, faSquareFontAwesome, faForumbee, fa42Group, faInnosoft, faStumbleuponCircle, faSymfony, faSalesforce, faSourcetree, faLinkedinIn, faHtml5, faRust, faHornbill, faPhp, faDisqus, fa500px, faAffiliatetheme, faRedRiver, faTwitter, faFortAwesome, faMixer, faLyft, faApplePay, faArtstation, faNodeJs, faUncharted, faPlaystation, faMicroblog, faGitkraken, faTelegram, faTelegramPlane, faUltralytics, faItunesNote, faLess, faFirefox, faKaggle, faFacebookMessenger, faAudible, faPatreon, faVnv, faPagelines, faAmazon, faEnvira, faLinode, faAccusoft, faErlang, faUnison, faCcDiscover, faSafari, faSpaceAwesome, faNode, faCodepen, faRavelry, faAlipay, faCcAmex, faPiedPiperAlt, faLetterboxd, faOpera, faWeibo, faReadme, faGolang, faStackExchange, faGulp, faYelp, faGofore, faAviato, faPadlet, faEdgeLegacy, faSquareLastfm, faLastfmSquare, faGoodreadsG, faCcMastercard, faDiscourse, faBlackTie, faSquareFacebook, faFacebookSquare, faBattleNet, faBimobject, faSvelte, faSquareDeskpro, faTailwindCss };\n", "/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\nvar prefix = \"far\";\nvar faSquareMinus = {\n prefix: 'far',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM136 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faCalendarCheck = {\n prefix: 'far',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M328 0c13.3 0 24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24zM64 112c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 112zm230.7 65.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 374.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"]\n};\nvar faFaceKiss = {\n prefix: 'far',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm240 0l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-48a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faKiss = faFaceKiss;\nvar faPaste = {\n prefix: 'far',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M64 48l224 0c8.8 0 16 7.2 16 16l0 48 48 0 0-48c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-48-112 0c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zm176 72c0-13.3-10.7-24-24-24L104 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l105.6 0c8.8-8.6 19-15.8 30.2-21.1 .1-.9 .2-1.9 .2-2.9zM448 464l-160 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l101.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L464 448c0 8.8-7.2 16-16 16zM224 224l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160c-35.3 0-64 28.7-64 64z\"]\n};\nvar faFileClipboard = faPaste;\nvar faHandPointLeft = {\n prefix: 'far',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-176 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4 .5-3.1 .7-6.2 .7-9.4 0-20-9.2-37.9-23.6-49.7 4.9-9 7.6-19.4 7.6-30.3 0-15.1-5.3-29-14-40 8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80zm32-80l0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16 0 25.3 14.7 47.2 36 57.6-2.6 7-4 14.5-4 22.4 0 20 9.2 37.9 23.6 49.7-4.9 9-7.6 19.4-7.6 30.3 0 35.3 28.7 64 64 64l88 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-34 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z\"]\n};\nvar faFileExcel = {\n prefix: 'far',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm99.2 265.6c-8-10.6-23-12.8-33.6-4.8s-12.8 23-4.8 33.6L162 344 124.8 393.6c-8 10.6-5.8 25.6 4.8 33.6s25.6 5.8 33.6-4.8L192 384 220.8 422.4c8 10.6 23 12.8 33.6 4.8s12.8-23 4.8-33.6L222 344 259.2 294.4c8-10.6 5.8-25.6-4.8-33.6s-25.6-5.8-33.6 4.8L192 304 163.2 265.6z\"]\n};\nvar faEnvelope = {\n prefix: 'far',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M61.4 64C27.5 64 0 91.5 0 125.4 0 126.3 0 127.1 .1 128L0 128 0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256-.1 0c0-.9 .1-1.7 .1-2.6 0-33.9-27.5-61.4-61.4-61.4L61.4 64zM464 192.3L464 384c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-191.7 154.8 117.4c31.4 23.9 74.9 23.9 106.4 0L464 192.3zM48 125.4C48 118 54 112 61.4 112l389.2 0c7.4 0 13.4 6 13.4 13.4 0 4.2-2 8.2-5.3 10.7L280.2 271.5c-14.3 10.8-34.1 10.8-48.4 0L53.3 136.1c-3.3-2.5-5.3-6.5-5.3-10.7z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'far',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faTruck = {\n prefix: 'far',\n iconName: 'truck',\n icon: [576, 512, [128666, 9951], \"f0d1\", \"M64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l3.3 0c10.4-36.9 44.4-64 84.7-64s74.2 27.1 84.7 64l102.6 0c4.9-17.4 15.1-32.7 28.7-43.9L368 96c0-8.8-7.2-16-16-16L64 80zm3.3 368L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 55.4 0c17 0 33.3 6.7 45.3 18.7l40.6 40.6c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64zM416 256l112 0 0-23.4c0-4.2-1.7-8.3-4.7-11.3l-40.6-40.6c-3-3-7.1-4.7-11.3-4.7l-55.4 0 0 80zm0 48l0 32.4c2.6-.2 5.3-.4 8-.4 40.3 0 74.2 27.1 84.7 64l3.3 0c8.8 0 16-7.2 16-16l0-80-112 0zM152 464a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm272 0a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faBell = {\n prefix: 'far',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-13.3 0-24 10.7-24 24l0 9.7C118.6 45.3 56 115.4 56 200l0 14.5c0 37.7-10 74.7-29 107.3L5.1 359.2C1.8 365 0 371.5 0 378.2 0 399.1 16.9 416 37.8 416l372.4 0c20.9 0 37.8-16.9 37.8-37.8 0-6.7-1.8-13.3-5.1-19L421 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24zM392.4 368l-336.9 0 12.9-22.1C91.7 306 104 260.6 104 214.5l0-14.5c0-66.3 53.7-120 120-120s120 53.7 120 120l0 14.5c0 46.2 12.3 91.5 35.5 131.4L392.4 368zM156.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z\"]\n};\nvar faMessage = {\n prefix: 'far',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M203.7 512.9s0 0 0 0l-37.8 26.7c-7.3 5.2-16.9 5.8-24.9 1.7S128 529 128 520l0-72-32 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120.4 0-91.9 64.9zm64.3-104.1c8.1-5.7 17.8-8.8 27.7-8.8L416 400c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L96 80c-26.5 0-48 21.5-48 48l0 224c0 26.5 21.5 48 48 48l56 0c10.4 0 19.3 6.6 22.6 15.9 .9 2.5 1.4 5.2 1.4 8.1l0 49.7c32.7-23.1 63.3-44.7 91.9-64.9z\"]\n};\nvar faCommentAlt = faMessage;\nvar faFaceDizzy = {\n prefix: 'far',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faCalendarDays = {\n prefix: 'far',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zM384 432c8.8 0 16-7.2 16-16l0-64-88 0 0 80 72 0zm16-128l0-80-88 0 0 80 88 0zm-136 0l0-80-80 0 0 80 80 0zm-128 0l0-80-88 0 0 80 88 0zM48 352l0 64c0 8.8 7.2 16 16 16l72 0 0-80-88 0zm136 0l0 80 80 0 0-80-80 0zM120 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faHandPointUp = {\n prefix: 'far',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-176c0-8.8-7.2-16-16-16S64 55.2 64 64zM80 288c-17.7 0-32 14.3-32 32l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7-3.1 .5-6.2 .7-9.4 .7-20 0-37.9-9.2-49.7-23.6-9 4.9-19.4 7.6-30.3 7.6-15.1 0-29-5.3-40-14-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0zM0 320l0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2 25.3 0 47.2 14.7 57.6 36 7-2.6 14.5-4 22.4-4 20 0 37.9 9.2 49.7 23.6 9-4.9 19.4-7.6 30.3-7.6 35.3 0 64 28.7 64 64l0 88c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-34c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z\"]\n};\nvar faHandLizard = {\n prefix: 'far',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7-46.9-29.3-145.1 0c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z\"]\n};\nvar faSquareFull = {\n prefix: 'far',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M448 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l384 0zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0z\"]\n};\nvar faCirclePause = {\n prefix: 'far',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faHardDrive = {\n prefix: 'far',\n iconName: 'hard-drive',\n icon: [448, 512, [128436, \"hdd\"], \"f0a0\", \"M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l320 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm216 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faHdd = faHardDrive;\nvar faFileZipper = {\n prefix: 'far',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm0 80c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zm64 56l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faFloppyDisk = {\n prefix: 'far',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-242.7c0-4.2-1.7-8.3-4.7-11.3L320 86.6 320 176c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-96-32 0zm80 0l0 80 128 0 0-80-128 0zM0 96C0 60.7 28.7 32 64 32l242.7 0c17 0 33.3 6.7 45.3 18.7L429.3 128c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM160 320a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faSave = faFloppyDisk;\nvar faFaceGrinTongueSquint = {\n prefix: 'far',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 75.9 40.7 142.4 101.5 178.7-3.6-10.9-5.5-22.6-5.5-34.7l0-37.5c-10.2-12.6-18.3-26.9-23.8-42.4-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8-5.5 15.6-13.6 29.9-23.8 42.5l0 37.5c0 12.1-1.9 23.8-5.5 34.7 60.8-36.3 101.5-102.7 101.5-178.7zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm125.8-75.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faCamera = {\n prefix: 'far',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M193.1 32c-18.7 0-36.2 9.4-46.6 24.9L120.5 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-56.5 0-26-39.1C355.1 41.4 337.6 32 318.9 32L193.1 32zm-6.7 51.6c1.5-2.2 4-3.6 6.7-3.6l125.7 0c2.7 0 5.2 1.3 6.7 3.6l33.2 49.8c4.5 6.7 11.9 10.7 20 10.7l69.3 0c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l69.3 0c8 0 15.5-4 20-10.7l33.2-49.8zM256 384a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 272a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faCameraAlt = faCamera;\nvar faFaceGrinStars = {\n prefix: 'far',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M0 256c0-29.6 5-57.9 14.2-84.4l17.3 16.9-4.6 27c-4.2 24.4 5.6 46.2 22 59.9 9.8 105.8 98.8 188.7 207.1 188.7s197.4-82.8 207.1-188.6c16.4-13.7 26.1-35.4 22-59.9l-4.6-27 17.3-16.9c9.2 26.4 14.2 54.8 14.2 84.4 0 141.4-114.6 256-256 256S0 397.4 0 256zM256 48c-15.2 0-30 1.6-44.3 4.7L201.4 31.8C197 23 191.1 15.8 184.2 10.2 207 3.6 231.1 0 256 0s49 3.6 71.8 10.2C320.9 15.8 315 23 310.6 31.8L300.3 52.7C286 49.6 271.2 48 256 48zM372.2 302.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM353.7 53.1c5.9-11.9 22.8-11.9 28.7 0l23.3 47.2 52 7.6c13.1 1.9 18.4 18 8.9 27.3l-37.7 36.7 8.9 51.8c2.2 13.1-11.5 23-23.2 16.9L368 216 321.5 240.5c-11.7 6.2-25.5-3.8-23.2-16.9l8.9-51.8-37.7-36.7c-9.5-9.3-4.3-25.4 8.9-27.3l52-7.6 23.3-47.2zm-195.3 0l23.3 47.2 52 7.6c13.1 1.9 18.4 18 8.9 27.3l-37.7 36.7 8.9 51.8c2.2 13.1-11.5 23-23.2 16.9L144 216 97.5 240.5c-11.7 6.2-25.5-3.8-23.2-16.9l8.9-51.8-37.7-36.7c-9.5-9.3-4.3-25.4 8.9-27.3l52-7.6 23.3-47.2c5.9-11.9 22.8-11.9 28.7 0z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faEye = {\n prefix: 'far',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 80C222.8 80 169.2 109.6 128.1 147.7 89.6 183.5 63 226 49.4 256 63 286 89.6 328.5 128.1 364.3 169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256 513 226 486.4 183.5 447.9 147.7 406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1 3.3 7.9 3.3 16.7 0 24.6-14.9 35.7-46.2 87.7-93 131.1-47.1 43.7-111.8 80.6-192.6 80.6S142.5 443.2 95.4 399.4c-46.8-43.5-78.1-95.4-93-131.1-3.3-7.9-3.3-16.7 0-24.6 14.9-35.7 46.2-87.7 93-131.1zM288 336c44.2 0 80-35.8 80-80 0-29.6-16.1-55.5-40-69.3-1.4 59.7-49.6 107.9-109.3 109.3 13.8 23.9 39.7 40 69.3 40zm-79.6-88.4c2.5 .3 5 .4 7.6 .4 35.3 0 64-28.7 64-64 0-2.6-.2-5.1-.4-7.6-37.4 3.9-67.2 33.7-71.1 71.1zm45.6-115c10.8-3 22.2-4.5 33.9-4.5 8.8 0 17.5 .9 25.8 2.6 .3 .1 .5 .1 .8 .2 57.9 12.2 101.4 63.7 101.4 125.2 0 70.7-57.3 128-128 128-61.6 0-113-43.5-125.2-101.4-1.8-8.6-2.8-17.5-2.8-26.6 0-11 1.4-21.8 4-32 .2-.7 .3-1.3 .5-1.9 11.9-43.4 46.1-77.6 89.5-89.5z\"]\n};\nvar faFaceSadTear = {\n prefix: 'far',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 41.8 12.3 80.7 33.6 113.3 8.2 44.7 47.3 78.6 94.3 78.7 24.7 10.3 51.7 16 80.1 16 114.9 0 208-93.1 208-208zM288 352c-5.5 0-10.9 .6-16 1.8 0-.6 0-1.2 0-1.8 0-16.2-4-31.5-11.1-44.9 8.7-2 17.8-3.1 27.1-3.1 40.2 0 75.7 19.8 97.5 50 7.7 10.8 5.3 25.8-5.5 33.5s-25.8 5.3-33.5-5.5c-13.1-18.2-34.4-30-58.5-30zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM185.4 276.8c6.5 7.8 12.6 16.1 18.3 24.6 9 13.4 20.3 30.2 20.3 47.4 0 28.3-21.5 51.2-48 51.2s-48-22.9-48-51.2c0-17.2 11.2-34 20.3-47.4 5.7-8.5 11.9-16.7 18.3-24.6 2.4-2.9 5.7-4.8 9.4-4.8s7 1.9 9.4 4.8z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faShareFromSquare = {\n prefix: 'far',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24l0 56-48 0c-88.4 0-160 71.6-160 160 0 46.7 20.7 80.4 43.6 103.4 8.1 8.2 16.5 14.9 24.3 20.4 9.2 6.5 21.7 5.7 30.1-1.9s10.2-20 4.5-29.8c-3.6-6.3-6.5-14.9-6.5-26.7 0-36.2 29.3-65.5 65.5-65.5l46.5 0 0 56c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7zm7 97l0-22.1 78.1 78.1-78.1 78.1 0-22.1c0-13.3-10.7-24-24-24L338 192c-50.9 0-93.9 33.5-108.3 79.6-3.3-9.4-5.2-19.8-5.2-31.6 0-61.9 50.1-112 112-112l72 0c13.3 0 24-10.7 24-24zm-320-8c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faNoteSticky = {\n prefix: 'far',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M240 432L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0c8.8 0 16 7.2 16 16l0 176-88 0c-39.8 0-72 32.2-72 72l0 88zM380.1 320L288 412.1 288 344c0-13.3 10.7-24 24-24l68.1 0zM0 416c0 35.3 28.7 64 64 64l197.5 0c17 0 33.3-6.7 45.3-18.7L429.3 338.7c12-12 18.7-28.3 18.7-45.3L448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faHandBackFist = {\n prefix: 'far',\n iconName: 'hand-back-fist',\n icon: [384, 512, [\"hand-rock\"], \"f255\", \"M96 400c-17.7 0-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32L96 400zM73.2 352l64.6 0-79.5-88.3C51.7 256.3 48 246.8 48 236.9L48 204c0-16.1 11.9-29.5 27.4-31.7 11.8-1.7 20.6-11.8 20.6-23.8L96 72c0-13.3 10.7-24 24-24 7.2 0 13.6 3.1 18 8.1 4.6 5.2 11.1 8.1 18 8.1s13.4-3 18-8.1c4.4-5 10.8-8.1 18-8.1 8.5 0 15.9 4.4 20.2 11.1 6.9 10.7 20.9 14.2 32 8 3.5-1.9 7.4-3.1 11.8-3.1 10.6 0 19.7 6.9 22.8 16.6 3.8 11.7 15.9 18.7 28 16 1.7-.4 3.4-.6 5.2-.6 13.3 0 24 10.7 24 24l0 92.2c0 14.4-3.5 28.5-10.2 41.2l-52.2 98.6 54.3 0 40.3-76.2c10.4-19.6 15.8-41.5 15.8-63.6l0-92.2c0-38.4-30.1-69.8-68.1-71.9-12.9-19.3-34.9-32.1-59.9-32.1-5.7 0-11.2 .7-16.5 1.9-12.7-11.1-29.3-17.9-47.5-17.9-13.1 0-25.4 3.5-36 9.6-10.6-6.1-22.9-9.6-36-9.6-39.8 0-72 32.2-72 72l0 58.7C19.7 143 0 171.2 0 204l0 32.9c0 21.7 8 42.7 22.6 58.9L73.2 352z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faChessQueen = {\n prefix: 'far',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M325.3 90.8c9.1-4.8 20.6-3.3 28.2 4.3l39.8 39.8 3.7 3.3c9.1 7.1 20.9 10 32.4 7.7l46.4-9.3 3.5-.4c8-.4 15.8 3.2 20.6 9.8 5.5 7.6 6.1 17.6 1.6 25.8l-112.6 202.6 51.5 70.9 1.8 2.7c4 6.6 6.2 14.2 6.2 22 0 23.3-18.9 42.1-42.1 42.1l-299.8 0c-21.8 0-39.8-16.6-41.9-37.8l-.2-4.3 .1-3.3c.6-7.7 3.4-15.1 7.9-21.4l51.5-70.9-112.5-202.6c-4.5-8.2-3.9-18.3 1.6-25.8s14.9-11.2 24.1-9.4l46.4 9.3c13.1 2.6 26.7-1.5 36.1-10.9L159.5 95 163 92.2c8.6-5.8 20.1-5.6 28.5 1.1l40 32 2.8 2.1c14.4 9.6 33.5 8.9 47.2-2.1l40-32 3.8-2.5zM164.7 400l-46.6 64 276.7 0-46.6-64-183.6 0zM311.5 162.8c-30.1 24.1-72.1 25.6-103.8 4.5l-6.2-4.5-23.3-18.6-24.6 24.6c-19.8 19.8-47.7 28.9-75.1 24.8l88.1 158.5 179.8 0 88-158.5c-25.7 3.8-51.7-3.9-71.1-21l-4-3.7-24.6-24.6-23.2 18.6zM256.5 72a40 40 0 1 1 0-80 40 40 0 1 1 0 80z\"]\n};\nvar faFaceGrinTears = {\n prefix: 'far',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M504.1 353C512.9 367.2 525.3 379 539.8 387.2 495.1 462 413.4 512 320 512S144.9 462 100.2 387.2c14.6-8.2 26.9-20 35.8-34.3 34.9 66 104.2 111 184.1 111s149.2-45 184.1-111zm16.4-152.5C496.2 112.6 415.7 48 320 48S143.8 112.6 119.5 200.5c-10.6-4.8-22.7-6.8-35.4-5l-13.4 1.9C97.2 84.3 198.8 0 320 0S542.8 84.3 569.3 197.4l-13.4-1.9c-12.7-1.8-24.8 .2-35.4 5zM455.8 320c-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0 28.4-23 51.4-51.4 51.4-25.6 0-47.3-18.8-50.9-44.1L531 261.1c-1.5-10.6 7.5-19.6 18.1-18.1l46.7 6.7c25.3 3.6 44.1 25.3 44.1 50.9zm-640 0c0-25.6 18.8-47.3 44.1-50.9L90.9 243c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C98.7 333.2 77 352 51.4 352 23 352 0 329 0 300.6z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPenToSquare = {\n prefix: 'far',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z\"]\n};\nvar faEdit = faPenToSquare;\nvar faFaceGrinBeamSweat = {\n prefix: 'far',\n iconName: 'face-grin-beam-sweat',\n icon: [576, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M530.2 15.9c-8.8-10.7-18.5-20.9-29-30-3-2.6-7.4-2.6-10.4 0-10.5 9.1-20.1 19.3-29 30-14.7 17.8-29.8 40.1-29.8 64.1 0 36.4 27.6 64 64 64s64-27.6 64-64c0-24-15.2-46.3-29.8-64.1zm-132 8.9C364.8 8.9 327.4 0 288 0 146.6 0 32 114.6 32 256S146.6 512 288 512 544 397.4 544 256c0-24.4-3.4-48-9.8-70.4-11.9 4.2-24.7 6.4-38.2 6.4-3.4 0-6.8-.1-10.2-.4 6.6 20.3 10.2 41.9 10.2 64.4 0 114.9-93.1 208-208 208S80 370.9 80 256 173.1 48 288 48c34.8 0 67.5 8.5 96.3 23.6 1.4-17.4 6.9-33.1 13.8-46.8zM423.8 320c4.1-11.6-7.8-21.4-19.6-17.8-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 19.8 55.9 73.1 95.9 135.8 95.9 62.7 0 116-40.1 135.8-96zM180 208c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8zm188-28c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faClock = {\n prefix: 'far',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faFaceLaughWink = {\n prefix: 'far',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faPaperPlane = {\n prefix: 'far',\n iconName: 'paper-plane',\n icon: [576, 512, [61913], \"f1d8\", \"M290.5 287.7L491.4 86.9 359 456.3 290.5 287.7zM457.4 53L256.6 253.8 88 185.3 457.4 53zM38.1 216.8l205.8 83.6 83.6 205.8c5.3 13.1 18.1 21.7 32.3 21.7 14.7 0 27.8-9.2 32.8-23.1L570.6 8c3.5-9.8 1-20.6-6.3-28s-18.2-9.8-28-6.3L39.4 151.7c-13.9 5-23.1 18.1-23.1 32.8 0 14.2 8.6 27 21.7 32.3z\"]\n};\nvar faHeart = {\n prefix: 'far',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M378.9 80c-27.3 0-53 13.1-69 35.2l-34.4 47.6c-4.5 6.2-11.7 9.9-19.4 9.9s-14.9-3.7-19.4-9.9l-34.4-47.6c-16-22.1-41.7-35.2-69-35.2-47 0-85.1 38.1-85.1 85.1 0 49.9 32 98.4 68.1 142.3 41.1 50 91.4 94 125.9 120.3 3.2 2.4 7.9 4.2 14 4.2s10.8-1.8 14-4.2c34.5-26.3 84.8-70.4 125.9-120.3 36.2-43.9 68.1-92.4 68.1-142.3 0-47-38.1-85.1-85.1-85.1zM271 87.1c25-34.6 65.2-55.1 107.9-55.1 73.5 0 133.1 59.6 133.1 133.1 0 68.6-42.9 128.9-79.1 172.8-44.1 53.6-97.3 100.1-133.8 127.9-12.3 9.4-27.5 14.1-43.1 14.1s-30.8-4.7-43.1-14.1C176.4 438 123.2 391.5 79.1 338 42.9 294.1 0 233.7 0 165.1 0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1l15 20.7 15-20.7z\"]\n};\nvar faFontAwesome = {\n prefix: 'far',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0-48.2 108.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faClone = {\n prefix: 'far',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M288 464L64 464c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l48 0 0-48-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-48 0 0 48c0 8.8-7.2 16-16 16zM224 304c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-224 0zm-64-16c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224z\"]\n};\nvar faFolderOpen = {\n prefix: 'far',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M97.5 400l50-160 379.4 0-50 160-379.4 0zm190.7 48L477 448c21 0 39.6-13.6 45.8-33.7l50-160c9.7-30.9-13.4-62.3-45.8-62.3l-379.4 0c-21 0-39.6 13.6-45.8 33.7L80.2 294.4 80.2 96c0-8.8 7.2-16 16-16l138.7 0c3.5 0 6.8 1.1 9.6 3.2L282.9 112c13.8 10.4 30.7 16 48 16l117.3 0c8.8 0 16 7.2 16 16l48 0c0-35.3-28.7-64-64-64L330.9 80c-6.9 0-13.7-2.2-19.2-6.4L273.3 44.8C262.2 36.5 248.8 32 234.9 32L96.2 32c-35.3 0-64 28.7-64 64l0 288c0 35.3 28.7 64 64 64l192 0z\"]\n};\nvar faWindowMinimize = {\n prefix: 'far',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M0 424c0-13.3 10.7-24 24-24l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 448c-13.3 0-24-10.7-24-24z\"]\n};\nvar faStarHalf = {\n prefix: 'far',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M285.7-15.8c10.8 2.6 18.4 12.2 18.4 23.3l0 387.1c0 9-5.1 17.3-13.1 21.4L143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3L193.1 125.3 258.8-3.3c5-9.9 16.2-15 27-12.4zM256.1 107.4L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 92.2-46.9 0-272.6z\"]\n};\nvar faAlarmClock = {\n prefix: 'far',\n iconName: 'alarm-clock',\n icon: [512, 512, [9200], \"f34e\", \"M402.6 50.2c-5.4 1.7-11.3 1.8-16.2-.9-5.8-3.2-11.8-6.2-17.8-8.9-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3-4.5 10.5-18.4 9.8-24.9 .4-3.8-5.5-7.8-10.8-12-16-3.5-4.4-4.5-10.2-3.8-15.8 .2-1.9 .4-3.9 .4-5.9 0-26.1-21.2-47.2-47.2-47.2-4.9 0-9.7 .8-14.2 2.2zM32.5 132.9c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-6.1 2.8-12 5.7-17.8 8.9-4.9 2.7-10.9 2.6-16.2 .9-4.5-1.4-9.2-2.2-14.2-2.2-26.1 0-47.2 21.2-47.2 47.2 0 2 .1 4 .4 5.9 .7 5.6-.3 11.4-3.8 15.8-4.2 5.2-8.2 10.5-12 16zM432 288a176 176 0 1 0 -352 0 176 176 0 1 0 352 0zM396.5 462.5C358.1 493.4 309.2 512 256 512s-102.1-18.6-140.5-49.5L73 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l42.5-42.5C50.6 390.1 32 341.2 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 53.2-18.6 102.1-49.5 140.5L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-42.5-42.5zM280 184l0 94.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-4.5-4.5-7-10.6-7-17l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faNewspaper = {\n prefix: 'far',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM192 152c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zm152 24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM216 256l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faHospital = {\n prefix: 'far',\n iconName: 'hospital',\n icon: [576, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M176 0c-35.3 0-64 28.7-64 64l0 48-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-272c0-35.3-28.7-64-64-64l-48 0 0-48c0-35.3-28.7-64-64-64L176 0zM160 64c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 272c0 8.8-7.2 16-16 16l-176 0 0-80c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 80-176 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24l0-72zM112 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM96 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm320 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16-112c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faCircleStop = {\n prefix: 'far',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM160 192l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm48 112l0-96 96 0 0 96-96 0z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faObjectUngroup = {\n prefix: 'far',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16 .9 0 1.9 .1 2.8 .2 7.5 1.3 13.2 7.9 13.2 15.8 0 8.8-7.2 16-16 16-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0 28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16 0-.9 .1-1.9 .2-2.8 1.3-7.5 7.9-13.2 15.8-13.2 8.8 0 16 7.2 16 16zm436.7-40c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-20.7-48 0 0 20.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64-26.9 0-49.9 16.5-59.3 40l-52.7 0 0 9.6c10.7 10.9 19.1 23.9 24.6 38.4l28 0zm59.3-8a16 16 0 1 1 0-32 16 16 0 1 1 0 32zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm301.5 13c-7.5-1.3-13.2-7.9-13.2-15.8 0-8.8 7.2-16 16-16 7.9 0 14.5 5.7 15.8 13.2l0 .1c.1 .9 .2 1.8 .2 2.7 0 8.8-7.2 16-16 16-.9 0-1.9-.1-2.8-.2z\"]\n};\nvar faComment = {\n prefix: 'far',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M51.9 384.9C19.3 344.6 0 294.4 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240 397.4 480 256 480c-36.5 0-71.2-7.2-102.6-20L37 509.9c-3.7 1.6-7.5 2.1-11.5 2.1-14.1 0-25.5-11.4-25.5-25.5 0-4.3 1.1-8.5 3.1-12.2l48.8-89.4zm37.3-30.2c12.2 15.1 14.1 36.1 4.8 53.2l-18 33.1 58.5-25.1c11.8-5.1 25.2-5.2 37.1-.3 25.7 10.5 54.2 16.4 84.3 16.4 117.8 0 208-88.8 208-192S373.8 48 256 48 48 136.8 48 240c0 42.8 15.1 82.4 41.2 114.7z\"]\n};\nvar faChessPawn = {\n prefix: 'far',\n iconName: 'chess-pawn',\n icon: [384, 512, [9823], \"f443\", \"M192-32c66.3 0 120 53.7 120 120 0 27.6-9.3 52.9-24.9 73.2 9.8 3 16.9 12.1 16.9 22.8 0 13.3-10.7 24-24 24l-.6 0 24.6 160 53.6 67c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L63.4 512c-26.2 0-47.4-21.2-47.4-47.4 0-10.8 3.7-21.2 10.4-29.6l53.6-67 24.6-160-.6 0c-13.3 0-24-10.7-24-24 0-10.8 7.1-19.8 16.9-22.8-15.6-20.3-24.9-45.6-24.9-73.2 0-66.3 53.7-120 120-120zM115.9 400l-51.2 64 254.7 0-51.2-64-152.2 0zm36.2-184.7l-21 136.7 121.9 0-21-136.7-1.1-7.3-77.6 0-1.1 7.3zM192 16a72 72 0 1 0 0 144 72 72 0 1 0 0-144z\"]\n};\nvar faCalendarPlus = {\n prefix: 'far',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm104 64c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24z\"]\n};\nvar faClipboard = {\n prefix: 'far',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M232 96l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm0 48c37.1 0 67.6-28 71.6-64L320 80c8.8 0 16 7.2 16 16l0 352c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l16.4 0c4 36 34.5 64 71.6 64l80 0zM291.9 32C279 12.7 257 0 232 0L152 0c-25 0-47 12.7-59.9 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64l-28.1 0z\"]\n};\nvar faThumbsDown = {\n prefix: 'far',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M360 32l7.4 .4c35 3.6 62.5 32.2 64.4 67.7 17.8 11.8 30.1 31.4 32 53.9l.2 6c0 5.7-.7 11.2-2 16.5 10.2 11.5 16.8 26.3 17.8 42.7l.2 4.8c0 13.2-3.6 25.4-9.8 36 4.9 8.4 8.2 17.9 9.3 28l.4 8c0 37.3-28.3 67.9-64.6 71.6l-7.4 .4-109.7 0 14.1 30 3.1 7.6c12.5 35.7-1.8 75.5-34.2 95l-7.2 3.9c-37.5 17.6-81.7 3.6-102.6-31.2l-.6-.9-2.7-5-.6-1.2-30.1-64c-9.4 17.8-28 29.9-49.5 29.9l-32 0c-30.9 0-56-25.1-56-56L0 152c0-30.9 25.1-56 56-56l32 0c12.4 0 23.9 4.1 33.2 11 13.2-21.4 32-39.4 55-51.6l12.2-6.5 .7-.3 6.6-3.2 .7-.3 7.1-3c16.7-6.6 34.5-9.9 52.6-9.9L360 32zM255.9 80c-12 0-23.9 2.3-35.1 6.6l-4.7 2-5.3 2.6 0 0-12.2 6.5c-29.2 15.5-48.3 44.9-50.7 77.6l-.2 8 0 112.9 .1 4.1c.5 8.2 2.5 16.2 6 23.7l56.8 120.9 2.1 3.8c8.4 13.7 26 19.1 40.8 12.2l2.9-1.6c13-7.8 18.7-23.7 13.7-38l-1.2-3-30.2-64.2c-3.5-7.4-2.9-16.1 1.5-23.1s12-11.1 20.2-11.1l147.5 0 2.4-.1c11.3-1.1 20.3-10.1 21.4-21.4l.1-2.5c0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c4.4-3.9 7.4-9.3 8-15.3l.2-2.7c0-8.4-4.4-15.9-11.2-20.2-10.7-6.9-14.2-20.9-8-32 1.5-2.6 2.5-5.6 2.9-8.6l.2-3.2c0-10.6-6.9-19.6-16.6-22.8-11.7-3.8-18.7-15.9-16-28 .2-.9 .3-1.8 .4-2.6l.2-2.6c0-12.4-9.5-22.6-21.6-23.8L360 80 255.9 80zM56 144c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0z\"]\n};\nvar faIdBadge = {\n prefix: 'far',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-64 0c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z\"]\n};\nvar faSquareCheck = {\n prefix: 'far',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zm230.7 89.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faChessBishop = {\n prefix: 'far',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M216 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 81.8 98.1c24.7 29.6 38.2 67 38.2 105.6 0 43.7-17.4 85.7-48.3 116.6l-8.6 8.6 46.5 58.2c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L47.4 512C21.2 512 0 490.8 0 464.6 0 453.9 3.7 443.4 10.4 435l46.5-58.2-8.6-8.6C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L120 48 104 48C90.7 48 80 37.3 80 24S90.7 0 104 0L216 0zM94.4 406.8l-45.7 57.2 222.7 0-45.7-57.1-5.5-6.9-120.3 0-5.5 6.8zM156.9 78.7L75.1 176.8c-15.3 18.4-24.6 41-26.7 64.7L48 251.7c0 31 12.3 60.7 34.2 82.7l17.7 17.7 120.2 0c6.2-6.2 12.1-12.1 17.8-17.7 21.9-21.9 34.2-51.6 34.2-82.6l-.4-10.2c-1.5-17-6.7-33.3-15.2-48L209 241c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l51.8-51.8-63.7-76.5-3.1-3.8-3.1 3.8z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'far',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M512 416c0 35.3-28.5 64-63.9 64L64 480c-35.4 0-64-28.7-64-64L0 164c.1-15.5 7.8-30 20.5-38.8L206-2.7c30.1-20.7 69.8-20.7 99.9 0L491.5 125.2c12.8 8.8 20.4 23.3 20.5 38.8l0 252zM64 432l384.1 0c8.8 0 15.9-7.1 15.9-16l0-191.7-154.8 117.4c-31.4 23.9-74.9 23.9-106.4 0L48 224.3 48 416c0 8.9 7.2 16 16 16zM463.6 164.4L278.7 36.8c-13.7-9.4-31.7-9.4-45.4 0L48.4 164.4 231.8 303.5c14.3 10.8 34.1 10.8 48.4 0L463.6 164.4z\"]\n};\nvar faCircleXmark = {\n prefix: 'far',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faSquareCaretUp = {\n prefix: 'far',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faFileImage = {\n prefix: 'far',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM259.4 432l-134.8 0c-15.8 0-28.6-12.8-28.6-28.6 0-6.4 2.1-12.5 6-17.6l67.6-86.9C175 292 183.3 288 192 288s17 4 22.4 10.9L282 385.9c3.9 5 6 11.2 6 17.6 0 15.8-12.8 28.6-28.6 28.6zM112 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSquareCaretRight = {\n prefix: 'far',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faSun = {\n prefix: 'far',\n iconName: 'sun',\n icon: [576, 512, [9728], \"f185\", \"M288-32c8 0 15.4 4 19.9 10.6l58.8 87.4 103.4-20.2c7.8-1.5 15.9 .9 21.6 6.6s8.1 13.8 6.6 21.6L478 177.3 565.4 236.1C572 240.5 576 248 576 256s-4 15.4-10.6 19.9L478 334.7 498.2 438c1.5 7.8-.9 15.9-6.6 21.6s-13.8 8.1-21.6 6.6L366.7 446 307.9 533.4C303.4 540 296 544 288 544s-15.4-4-19.9-10.6L209.3 446 105.9 466.2c-7.8 1.5-15.9-.9-21.6-6.6s-8.1-13.8-6.6-21.6L98 334.7 10.6 275.9C4 271.4 0 264 0 256s4-15.4 10.6-19.9L98 177.3 77.8 73.9c-1.5-7.8 .9-15.9 6.6-21.6s13.8-8.1 21.6-6.6l103.3 20.2 58.8-87.4 1.8-2.3C274.4-29 281-32 288-32zm-47.8 138c-5.4 8-15 12-24.5 10.2l-84-16.4 16.4 84c1.8 9.5-2.2 19.1-10.2 24.5L67 256 138 303.8c8 5.4 12 15 10.2 24.5l-16.4 84 84-16.4 3.5-.4c8.3-.4 16.3 3.6 21 10.6l47.8 71 47.8-71 2.2-2.8c5.6-6.1 14-9 22.3-7.3l84 16.4-16.4-84c-1.8-9.5 2.2-19.1 10.2-24.5l71-47.8-71-47.8c-8-5.4-12-15-10.2-24.5l16.4-84-84 16.4c-9.5 1.8-19.1-2.2-24.5-10.2l-47.8-71-47.8 71zM288 376a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm0-192a72 72 0 1 0 0 144 72 72 0 1 0 0-144z\"]\n};\nvar faImage = {\n prefix: 'far',\n iconName: 'image',\n icon: [448, 512, [], \"f03e\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm128 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm136 72c8.5 0 16.4 4.5 20.7 11.8l80 136c4.4 7.4 4.4 16.6 .1 24.1S352.6 384 344 384l-240 0c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l17.2 24.6 46.5-79c4.3-7.3 12.2-11.8 20.7-11.8z\"]\n};\nvar faLightbulb = {\n prefix: 'far',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M296.5 291.1C321 265.2 336 230.4 336 192 336 112.5 271.5 48 192 48S48 112.5 48 192c0 38.4 15 73.2 39.5 99.1 21.3 22.4 44.9 54 53.3 92.9l102.4 0c8.4-39 32-70.5 53.3-92.9zm34.8 33C307.7 349 288 379.4 288 413.7l0 18.3c0 44.2-35.8 80-80 80l-32 0c-44.2 0-80-35.8-80-80l0-18.3C96 379.4 76.3 349 52.7 324.1 20 289.7 0 243.2 0 192 0 86 86 0 192 0S384 86 384 192c0 51.2-20 97.7-52.7 132.1zM144 184c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40z\"]\n};\nvar faAddressCard = {\n prefix: 'far',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faFaceMeh = {\n prefix: 'far',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faMeh = faFaceMeh;\nvar faMap = {\n prefix: 'far',\n iconName: 'map',\n icon: [512, 512, [128506, 62072], \"f279\", \"M512 48c0-8.3-4.3-16-11.3-20.4s-15.9-4.8-23.3-1.1L352.5 88.1 180 29.4c-13.7-4.7-28.7-3.8-41.9 2.3L13.8 90.3C5.4 94.2 0 102.7 0 112L0 464c0 8.2 4.2 15.9 11.1 20.3s15.6 4.9 23.1 1.4l127.3-59.9 170.7 56.9c13.7 4.6 28.5 3.7 41.6-2.5l124.4-58.5c8.4-4 13.8-12.4 13.8-21.7l0-352zM144 82.1l0 299-96 45.2 0-299 96-45.2zm48 303.3l0-301.1 128 43.5 0 300.3-128-42.7zM368 134l96-47.4 0 298.2-96 45.2 0-296z\"]\n};\nvar faHandPointDown = {\n prefix: 'far',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7-3.1-.5-6.2-.7-9.4-.7-20 0-37.9 9.2-49.7 23.6-9-4.9-19.4-7.6-30.3-7.6-15.1 0-29 5.3-40 14-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0zM0 192l0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2 25.3 0 47.2-14.7 57.6-36 7 2.6 14.5 4 22.4 4 20 0 37.9-9.2 49.7-23.6 9 4.9 19.4 7.6 30.3 7.6 35.3 0 64-28.7 64-64l0-88C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 34c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z\"]\n};\nvar faFaceMehBlank = {\n prefix: 'far',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256a256 256 0 1 1 -512 0 256 256 0 1 1 512 0zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faFaceGrinTongue = {\n prefix: 'far',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 74.1 38.8 139.2 97.1 176-.7-5.2-1.1-10.6-1.1-16l0-53.5c-10.2-12.6-18.3-26.9-23.8-42.4-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8-5.5 15.6-13.6 29.9-23.8 42.5l0 53.5c0 5.4-.4 10.8-1.1 16 58.4-36.8 97.1-101.9 97.1-176zm48 0c0 116.3-77.6 214.6-183.9 245.7-19.5 16.4-44.6 26.3-72.1 26.3s-52.6-9.9-72.1-26.3C77.6 470.6 0 372.3 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 208l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faFutbol = {\n prefix: 'far',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M387 228.3c-4.4-2.8-7.6-7-9.2-11.9s-1.4-10.2 .5-15L411.6 118c-19.9-22.4-44.6-40.5-72.4-52.7l-69.1 57.6c-4 3.3-9 5.1-14.1 5.1s-10.2-1.8-14.1-5.1L172.8 65.3c-27.8 12.2-52.5 30.3-72.4 52.7l33.4 83.4c1.9 4.8 2.1 10.1 .5 15s-4.9 9.1-9.2 11.9L49 276.2c3 30.9 12.7 59.7 27.6 85.2l89.7-6c5.2-.3 10.3 1.1 14.5 4.2s7.2 7.4 8.4 12.5l22 87.2c14.4 3.2 29.4 4.8 44.8 4.8s30.3-1.7 44.8-4.8l22-87.2c1.3-5 4.2-9.4 8.4-12.5s9.3-4.5 14.5-4.2l89.7 6c15-25.4 24.7-54.3 27.6-85.1L387 228.3zM256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zm62 221c8.4 6.1 11.9 16.9 8.7 26.8l-18.3 56.3c-3.2 9.9-12.4 16.6-22.8 16.6l-59.2 0c-10.4 0-19.6-6.7-22.8-16.6l-18.3-56.3c-3.2-9.9 .3-20.7 8.7-26.8l47.9-34.8c8.4-6.1 19.8-6.1 28.2 0L318 221z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faFaceSurprise = {\n prefix: 'far',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faFolder = {\n prefix: 'far',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 400l384 0c8.8 0 16-7.2 16-16l0-240c0-8.8-7.2-16-16-16l-149.3 0c-17.3 0-34.2-5.6-48-16L212.3 83.2c-2.8-2.1-6.1-3.2-9.6-3.2L64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16zm384 48L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faCloud = {\n prefix: 'far',\n iconName: 'cloud',\n icon: [576, 512, [9729], \"f0c2\", \"M80 192c0-88.4 71.6-160 160-160 47.1 0 89.4 20.4 118.7 52.7 10.6-3.1 21.8-4.7 33.3-4.7 66.3 0 120 53.7 120 120 0 13.2-2.1 25.9-6.1 37.8 41.6 21.1 70.1 64.3 70.1 114.2 0 70.7-57.3 128-128 128l-304 0c-79.5 0-144-64.5-144-144 0-56.8 32.9-105.9 80.7-129.4-.4-4.8-.7-9.7-.7-14.6zM240 80c-61.9 0-112 50.1-112 112 0 8.4 .9 16.6 2.7 24.5 2.7 12.1-4.3 24.3-16.1 28.1-38.7 12.4-66.6 48.7-66.6 91.4 0 53 43 96 96 96l304 0c44.2 0 80-35.8 80-80 0-37.4-25.7-68.9-60.5-77.6-7.5-1.9-13.6-7.2-16.5-14.3s-2.1-15.2 2-21.7c7-11.1 11-24.2 11-38.3 0-39.8-32.2-72-72-72-11.1 0-21.5 2.5-30.8 6.9-10.5 5-23.1 1.7-29.8-7.8-20.3-28.6-53.7-47.1-91.3-47.1z\"]\n};\nvar faCircle = {\n prefix: 'far',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faFaceGrinSquint = {\n prefix: 'far',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zm-249.6-143c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faCircleUser = {\n prefix: 'far',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6-35.6-37.3-57.5-87.9-57.5-143.6 0-114.9 93.1-208 208-208s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faRectangleList = {\n prefix: 'far',\n iconName: 'rectangle-list',\n icon: [512, 512, [\"list-alt\"], \"f022\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM160 320a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm104-56l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faListAlt = faRectangleList;\nvar faHand = {\n prefix: 'far',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M256.5 0c-25.3 0-47.2 14.7-57.6 36-7-2.6-14.5-4-22.4-4-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L107 437c48 48 113.1 75 181 75l16.5 0c1.5 0 3-.1 4.5-.4 91.7-6.2 165-79.4 171.1-171.1 .3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64-7.9 0-15.4 1.4-22.4 4-10.4-21.3-32.3-36-57.6-36zm-16 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 168c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9-3.4 69.7-59.3 125.6-129 129-.6 0-1.3 .1-1.9 .2L288 464C232.9 464 180 442.1 141 403.1L53.2 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l43.7 43.7c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-223.4c0-8.8 7.2-16 16-16 8.8 0 16 7.1 16 15.9l0 136.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z\"]\n};\nvar faHandPaper = faHand;\nvar faThumbsUp = {\n prefix: 'far',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M171.5 38.8C192.3 4 236.5-10 274 7.6l7.2 3.8C316 32.3 330 76.5 312.4 114l0 0-14.1 30 109.7 0 7.4 .4c36.3 3.7 64.6 34.4 64.6 71.6 0 13.2-3.6 25.4-9.8 36 6.1 10.6 9.7 22.8 9.8 36 0 18.3-6.9 34.8-18 47.5 1.3 5.3 2 10.8 2 16.5 0 25.1-12.9 47-32.2 59.9-1.9 35.5-29.4 64.2-64.4 67.7l-7.4 .4-104.1 0c-18 0-35.9-3.4-52.6-9.9l-7.1-3-.7-.3-6.6-3.2-.7-.3-12.2-6.5c-12.3-6.5-23.3-14.7-32.9-24.1-4.1 26.9-27.3 47.4-55.3 47.4l-32 0c-30.9 0-56-25.1-56-56L0 200c0-30.9 25.1-56 56-56l32 0c10.8 0 20.9 3.1 29.5 8.5l50.1-106.5 .6-1.2 2.7-5 .6-.9zM56 192c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0zM253.6 51c-14.8-6.9-32.3-1.6-40.7 12l-2.2 4-56.8 120.9c-3.5 7.5-5.5 15.5-6 23.7l-.1 4.2 0 112.9 .2 7.9c2.4 32.7 21.4 62.1 50.7 77.7l11.5 6.1 6.3 3.1c12.4 5.6 25.8 8.5 39.4 8.5l104.1 0 2.4-.1c12.1-1.2 21.6-11.5 21.6-23.9l-.2-2.6c-.1-.9-.2-1.7-.4-2.6-2.7-12.1 4.3-24.2 16-28 9.7-3.1 16.6-12.2 16.6-22.8 0-4.3-1.1-8.2-3.1-11.8-6.3-11.1-2.8-25.2 8-32 6.8-4.3 11.2-11.8 11.2-20.2 0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c5.1-4.5 8.2-10.9 8.2-18l-.1-2.4c-1.1-11.3-10.1-20.3-21.4-21.4l-2.4-.1-147.5 0c-8.2 0-15.8-4.2-20.2-11.1-4.4-6.9-5-15.7-1.5-23.1L269 93.6c7-15 1.4-32.7-12.5-41L253.6 51z\"]\n};\nvar faBuilding = {\n prefix: 'far',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 80 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faChessRook = {\n prefix: 'far',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M352 0c17.7 0 32 14.3 32 32l0 138.7c0 13.8-4.5 27.3-12.8 38.4l-35.2 46.9 0 112 40.8 68.1c4.7 7.8 7.2 16.7 7.2 25.8 0 27.7-22.4 50.1-50.1 50.1L50.1 512c-27.7 0-50.1-22.4-50.1-50.1 0-9.1 2.5-18 7.2-25.8L48 368 48 256 12.8 209.1C4.5 198 0 184.5 0 170.7L0 32C0 14.3 14.3 0 32 0L352 0zM48.3 460.8l-.3 1.1c0 1.2 1 2.1 2.1 2.1l283.8 0c1.2 0 2.1-1 2.1-2.1l-.3-1.1-36.5-60.8-214.4 0-36.5 60.8zM48 170.7c0 2.6 .6 5.1 1.8 7.4l1.4 2.2 0 0 35.2 46.9 9.6 12.8 0 112 192 0 0-112 9.6-12.8 35.2-46.9 0 0 1.4-2.2c1.2-2.3 1.8-4.8 1.8-7.4l0-122.7-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 122.7z\"]\n};\nvar faCircleQuestion = {\n prefix: 'far',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faFile = {\n prefix: 'far',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nvar faFaceSadCry = {\n prefix: 'far',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256 48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faCalendarMinus = {\n prefix: 'far',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm32 136l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faFaceTired = {\n prefix: 'far',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3c19 17.8 32.5 41.7 32.5 63.7 0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faTired = faFaceTired;\nvar faHandPointRight = {\n prefix: 'far',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 176 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4-.5-3.1-.7-6.2-.7-9.4 0-20 9.2-37.9 23.6-49.7-4.9-9-7.6-19.4-7.6-30.3 0-15.1 5.3-29 14-40-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80zM192 64l0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16 0 25.3-14.7 47.2-36 57.6 2.6 7 4 14.5 4 22.4 0 20-9.2 37.9-23.6 49.7 4.9 9 7.6 19.4 7.6 30.3 0 35.3-28.7 64-64 64l-88 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l34 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z\"]\n};\nvar faCircleUp = {\n prefix: 'far',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3c-6.2-6.2-16.4-6.2-22.6 0l-104 104c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l72 0 0 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-104 72 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-104-104z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faHandScissors = {\n prefix: 'far',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1-8.2-1.8C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.6-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-104 0c-35.3 0-64-28.7-64-64 0-2.8 .2-5.6 .5-8.3-19.4-11-32.5-31.8-32.5-55.7 0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.6s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11 0 8.8 7.2 16 16 16 9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6 0 8.8 7.2 16 16 16l104 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l0 0-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12L262.8 171.8 74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z\"]\n};\nvar faGem = {\n prefix: 'far',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M168.5 72l87.5 93 87.5-93-175 0zM383.9 99.1l-72.3 76.9 129 0-56.6-76.9zm50 124.9L78.1 224 256 420.3 433.9 224zM71.5 176l129 0-72.3-76.9-56.6 76.9zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"]\n};\nvar faRectangleXmark = {\n prefix: 'far',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm334.1 49.9c9.4 9.4 9.4 24.6 0 33.9l-44.1 44.1 44.1 44.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-44.1-44.1-44.1 44.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l44.1-44.1-44.1-44.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l44.1 44.1 44.1-44.1c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faTrashCan = {\n prefix: 'far',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M166.2-16c-13.3 0-25.3 8.3-30 20.8L120 48 24 48C10.7 48 0 58.7 0 72S10.7 96 24 96l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0-16.2-43.2C307.1-7.7 295.2-16 281.8-16L166.2-16zM32 144l0 304c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-304-48 0 0 304c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16l0-304-48 0zm160 72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faLifeRing = {\n prefix: 'far',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256S489.9 137.1 453.2 92.7L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0S37.7 71.6 47 81L58.8 92.7C22.1 137.1 0 193.9 0 256S22.1 374.9 58.8 419.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faCopyright = {\n prefix: 'far',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c-28.1-28.1-28.1-73.7 0-101.8s73.7-28.1 101.8 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-46.9-46.9-122.8-46.9-169.7 0s-46.9 122.8 0 169.7 122.8 46.9 169.7 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-28.1 28.1-73.7 28.1-101.8 0z\"]\n};\nvar faCircleLeft = {\n prefix: 'far',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M48 256a208 208 0 1 1 416 0 208 208 0 1 1 -416 0zm464 0a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7c-6.2 6.2-6.2 16.4 0 22.6l104 104c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-72 104 0c13.3 0 24-10.7 24-24l0-16c0-13.3-10.7-24-24-24l-104 0 0-72c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-104 104z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faCalendar = {\n prefix: 'far',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0zM48 224l0 192c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-192-352 0z\"]\n};\nvar faFaceFrownOpen = {\n prefix: 'far',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faChartBar = {\n prefix: 'far',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M48 56c0-13.3-10.7-24-24-24S0 42.7 0 56L0 400c0 44.2 35.8 80 80 80l408 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L80 432c-17.7 0-32-14.3-32-32L48 56zm104 72l208 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L152 80c-13.3 0-24 10.7-24 24s10.7 24 24 24zm0 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z\"]\n};\nvar faBarChart = faChartBar;\nvar faHouse = {\n prefix: 'far',\n iconName: 'house',\n icon: [512, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M240 6.1c9.1-8.2 22.9-8.2 32 0l232 208c9.9 8.8 10.7 24 1.8 33.9s-24 10.7-33.9 1.8l-8-7.2 0 205.3c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-205.3-8 7.2c-9.9 8.8-25 8-33.9-1.8s-8-25 1.8-33.9L240 6.1zm16 50.1L96 199.7 96 448c0 8.8 7.2 16 16 16l48 0 0-104c0-39.8 32.2-72 72-72l48 0c39.8 0 72 32.2 72 72l0 104 48 0c8.8 0 16-7.2 16-16l0-248.3-160-143.4zM208 464l96 0 0-104c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 104z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faFaceFrown = {\n prefix: 'far',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM334.7 384.6C319.7 369 293.6 352 256 352s-63.7 17-78.7 32.6c-9.2 9.6-24.4 9.9-33.9 .7s-9.9-24.4-.7-33.9c22.1-23 60-47.4 113.3-47.4s91.2 24.4 113.3 47.4c9.2 9.6 8.9 24.8-.7 33.9s-24.8 8.9-33.9-.7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFrown = faFaceFrown;\nvar faUser = {\n prefix: 'far',\n iconName: 'user',\n icon: [448, 512, [128100, 62144, 62470, \"user-alt\", \"user-large\"], \"f007\", \"M144 128a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zm208 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM48 480c0-70.7 57.3-128 128-128l96 0c70.7 0 128 57.3 128 128l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8c0-97.2-78.8-176-176-176l-96 0C78.8 304 0 382.8 0 480l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z\"]\n};\nvar faUserAlt = faUser;\nvar faUserLarge = faUser;\nvar faSnowflake = {\n prefix: 'far',\n iconName: 'snowflake',\n icon: [512, 512, [10052, 10054], \"f2dc\", \"M280.1-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 78.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l57 57 0 76.5-66.2-38.2-20.9-77.8c-3.4-12.8-16.6-20.4-29.4-17S95.2 98 98.7 110.8l8.4 31.5-67.6-39C28 96.6 13.3 100.5 6.7 112S4 138.2 15.5 144.8l67.6 39-31.5 8.4c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l77.8-20.9 66.2 38.2-66.2 38.2-77.8-20.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l31.5 8.4-67.6 39C4 373.8 .1 388.5 6.7 400s21.3 15.4 32.8 8.8l67.6-39-8.4 31.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l20.9-77.8 66.2-38.2 0 76.5-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 78.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-78.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-76.5 66.2 38.2 20.9 77.8c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-8.4-31.5 67.6 39c11.5 6.6 26.2 2.7 32.8-8.8s2.7-26.2-8.8-32.8l-67.6-39 31.5-8.4c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-77.8 20.9-66.2-38.2 66.2-38.2 77.8 20.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-31.5-8.4 67.6-39c11.5-6.6 15.4-21.3 8.8-32.8s-21.3-15.4-32.8-8.8l-67.6 39 8.4-31.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-20.9 77.8-66.2 38.2 0-76.5 57-57c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-78.1z\"]\n};\nvar faBookmark = {\n prefix: 'far',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 417.1c0 25.6-28.5 40.8-49.8 26.6L192 412.8 49.8 507.7C28.5 521.9 0 506.6 0 481.1L0 64zM64 48c-8.8 0-16 7.2-16 16l0 387.2 117.4-78.2c16.1-10.7 37.1-10.7 53.2 0L336 451.2 336 64c0-8.8-7.2-16-16-16L64 48z\"]\n};\nvar faSquareCaretLeft = {\n prefix: 'far',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faHandshake = {\n prefix: 'far',\n iconName: 'handshake',\n icon: [640, 512, [129309, 62662, \"handshake-alt\", \"handshake-simple\"], \"f2b5\", \"M598.1 75.4c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3l-74.5 54.2-9.9-6.6C465.8 71 442.6 64 418.9 64l-59.2 0-.4 0-143.6 0c-26.7 0-52.5 8.9-73.4 25.1L70.1 36.6c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5l88 64c9.6 6.9 22.7 5.9 31.1-2.4l3.9-3.9c13.5-13.5 31.8-21.1 50.9-21.1l46.3 0-91.7 91.7c-15.6 15.6-15.6 40.9 0 56.6l.8 .8C218 308 294 308 340.9 261.1l27.1-27.1 97.8 97.8c15.6 15.6 15.6 40.9 0 56.6l-9.8 9.8-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l28 28c-17.5 10.4-37.2 16.7-57.6 18.5L313 399c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-3.8 0c-36.1 0-70.7-14.3-96.2-39.8L65 279c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L160.2 442.1c34.5 34.5 81.3 53.9 130.1 53.9l51.8 0 1 1 1-1 5.7 0c48.8 0 95.6-19.4 130.1-53.9l19.9-19.9c1.2-1.2 2.3-2.3 3.4-3.5 .7-.5 1.3-1.1 1.9-1.7L609 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-53.8 53.8c-4.2-12.8-11.3-24.9-21.5-35.1L385 183c-9.4-9.4-24.6-9.4-33.9 0l-44.1 44.1c-26.5 26.5-68.5 28-96.7 4.6l98.7-98.7c13.4-13.4 31.6-21 50.6-21.1l8.5 0 .2 0 50.8 0c14.2 0 28.1 4.2 39.9 12.1L482.7 140c8.4 5.6 19.3 5.3 27.4-.6l88-64z\"]\n};\nvar faHandshakeAlt = faHandshake;\nvar faHandshakeSimple = faHandshake;\nvar faFaceSmileWink = {\n prefix: 'far',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faFaceGrinSquintTears = {\n prefix: 'far',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M403.1 403.1c67.2-67.2 78.8-168.9 34.9-248l36.7-5.2c4.5-.6 8.8-1.6 13.1-2.8 44.6 94.9 27.7 211.5-50.7 290s-195.1 95.3-290 50.7c1.2-4.2 2.1-8.6 2.8-13.1l5.2-36.7c79.1 43.9 180.8 32.3 248-34.9zM75 75c78.4-78.4 195.1-95.3 290-50.7-1.2 4.2-2.1 8.6-2.8 13.1l-5.2 36.7c-79.1-43.9-180.8-32.3-248 34.9s-78.8 168.9-34.9 248l-36.7 5.2c-4.5 .6-8.8 1.6-13.1 2.8-44.6-94.9-27.7-211.5 50.7-290zM370.9 206.5c5.8-10.9 21.1-12.4 26.4-1.3 25.6 53.5 16.2 119.6-28.2 163.9-44.3 44.3-110.3 53.7-163.8 28.2-11.1-5.3-9.6-20.6 1.3-26.4 32-17.1 64.2-40.8 93.8-70.4 29.7-29.7 53.4-61.9 70.5-94zM93.3 281.9c-1.7-8 2.9-15.9 10.6-18.4l84.6-28c5.7-1.9 12.1-.4 16.3 3.9s5.8 10.6 3.9 16.3l-28 84.6c-2.6 7.7-10.5 12.3-18.4 10.6s-13.4-9-12.7-17.1l3.9-43.1-43.1 3.9c-8.1 .7-15.5-4.7-17.1-12.7zM294.6 110.4l-3.9 43.1 43.1-3.9c8.1-.7 15.5 4.7 17.1 12.7s-2.9 15.9-10.6 18.4l-84.6 28c-5.7 1.9-12.1 .4-16.3-3.9s-5.8-10.6-3.9-16.3l28-84.6c2.6-7.7 10.5-12.3 18.4-10.6s13.4 9 12.7 17.1zM512 51.4c0 25.6-18.8 47.3-44.1 50.9L421.1 109c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C413.3 18.8 435 0 460.6 0 489 0 512 23 512 51.4zM44.1 409.7L90.9 403c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C98.7 493.2 77 512 51.4 512 23 512 0 489 0 460.6 0 435 18.8 413.3 44.1 409.7z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faFileAudio = {\n prefix: 'far',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM221.9 267.6c-4.7 10-.3 21.9 9.7 26.6 19.2 8.9 32.4 28.3 32.4 50.8s-13.2 41.9-32.4 50.8c-10 4.7-14.4 16.6-9.7 26.6s16.6 14.4 26.6 9.7C281.2 416.8 304 383.6 304 345s-22.8-71.9-55.6-87.1c-10-4.7-21.9-.3-26.6 9.7zM104 305c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24l16 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-16 0zM223.3 373c9.9-5.4 16.7-16 16.7-28.1s-6.7-22.7-16.7-28.1c-7.8-4.2-15.3 3.3-15.3 12.1l0 32c0 8.8 7.6 16.3 15.3 12.1z\"]\n};\nvar faCalendarXmark = {\n prefix: 'far',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm171.9 92.1c9.4 9.4 9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faCircleDown = {\n prefix: 'far',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3c6.2 6.2 16.4 6.2 22.6 0l104-104c4.6-4.6 5.9-11.5 3.5-17.4S366.5 256 360 256l-72 0 0-104c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24l0 104-72 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l104 104z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faFileLines = {\n prefix: 'far',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faComments = {\n prefix: 'far',\n iconName: 'comments',\n icon: [576, 512, [128490, 61670], \"f086\", \"M76.2 258.7c6.1-15.2 4-32.6-5.6-45.9-14.5-20.1-22.6-43.7-22.6-68.8 0-66.8 60.5-128 144-128s144 61.2 144 128-60.5 128-144 128c-15.9 0-31.1-2.3-45.3-6.5-10.3-3.1-21.4-2.5-31.4 1.5l-50.4 20.2 11.4-28.5zM0 144c0 35.8 11.6 69.1 31.7 96.8L1.9 315.2c-1.3 3.2-1.9 6.6-1.9 10 0 14.8 12 26.8 26.8 26.8 3.4 0 6.8-.7 10-1.9l96.3-38.5c18.6 5.5 38.4 8.4 58.9 8.4 106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144zM384 512c20.6 0 40.3-3 58.9-8.4l96.3 38.5c3.2 1.3 6.6 1.9 10 1.9 14.8 0 26.8-12 26.8-26.8 0-3.4-.7-6.8-1.9-10l-29.7-74.4c20-27.8 31.7-61.1 31.7-96.8 0-82.4-61.7-151.5-145-170.7-1.6 16.3-5.1 31.9-10.1 46.9 63.9 14.8 107.2 67.3 107.2 123.9 0 25.1-8.1 48.7-22.6 68.8-9.6 13.3-11.7 30.6-5.6 45.9l11.4 28.5-50.4-20.2c-10-4-21.1-4.5-31.4-1.5-14.2 4.2-29.4 6.5-45.3 6.5-72.2 0-127.1-45.7-140.7-101.2-15.6 3.2-31.7 5-48.1 5.2 16.4 81.9 94.7 144 188.8 144z\"]\n};\nvar faCircleCheck = {\n prefix: 'far',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm70.7 121.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L243.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faMoon = {\n prefix: 'far',\n iconName: 'moon',\n icon: [512, 512, [127769, 9214], \"f186\", \"M239.3 48.7c-107.1 8.5-191.3 98.1-191.3 207.3 0 114.9 93.1 208 208 208 33.3 0 64.7-7.8 92.6-21.7-103.4-23.4-180.6-115.8-180.6-226.3 0-65.8 27.4-125.1 71.3-167.3zM0 256c0-141.4 114.6-256 256-256 19.4 0 38.4 2.2 56.7 6.3 9.9 2.2 17.3 10.5 18.5 20.5s-4 19.8-13.1 24.4c-60.6 30.2-102.1 92.7-102.1 164.8 0 101.6 82.4 184 184 184 5 0 9.9-.2 14.8-.6 10.1-.8 19.6 4.8 23.8 14.1s2 20.1-5.3 27.1C387.3 484.8 324.8 512 256 512 114.6 512 0 397.4 0 256z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'far',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M448 112c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l384 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm88 144l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z\"]\n};\nvar faImages = {\n prefix: 'far',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 80c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16l-320 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l320 0zM160 32c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L160 32zm80 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm140.7 3.8c-4.3-7.3-12.2-11.8-20.7-11.8s-16.4 4.5-20.7 11.8l-46.5 79-17.2-24.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S191.1 320 200 320l240 0c8.6 0 16.6-4.6 20.8-12.1s4.2-16.7-.1-24.1l-80-136zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 448c0 35.3 28.7 64 64 64l360 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-296z\"]\n};\nvar faCircleRight = {\n prefix: 'far',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3c6.2-6.2 6.2-16.4 0-22.6l-104-104c-4.6-4.6-11.5-5.9-17.4-3.5S256 145.5 256 152l0 72-104 0c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24l104 0 0 72c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l104-104z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faIdCard = {\n prefix: 'far',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M48 416l0-256 480 0 0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM376 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faCirclePlay = {\n prefix: 'far',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM212.5 147.5c-7.4-4.5-16.7-4.7-24.3-.5S176 159.3 176 168l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88zM298 256l-74 45.2 0-90.4 74 45.2z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faFaceLaughBeam = {\n prefix: 'far',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faAddressBook = {\n prefix: 'far',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"]\n};\nvar faContactBook = faAddressBook;\nvar faHourglass = {\n prefix: 'far',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5l81.5 81.5-81.5 81.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5l-81.5-81.5 81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24S373.3 0 360 0L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19-224 0 0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faHeadphones = {\n prefix: 'far',\n iconName: 'headphones',\n icon: [448, 512, [127911, 62863, \"headphones-alt\", \"headphones-simple\"], \"f025\", \"M48 224c0-97.2 78.8-176 176-176s176 78.8 176 176l0 44.8c-14.1-8.2-30.5-12.8-48-12.8l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-17.5 0-33.9 4.7-48 12.8L48 224zm0 128c0-26.5 21.5-48 48-48l16 0 0 128-16 0c-26.5 0-48-21.5-48-48l0-32zm352 0l0 32c0 26.5-21.5 48-48 48l-16 0 0-128 16 0c26.5 0 48 21.5 48 48z\"]\n};\nvar faHeadphonesAlt = faHeadphones;\nvar faHeadphonesSimple = faHeadphones;\nvar faFilePowerpoint = {\n prefix: 'far',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm88 256c-13.3 0-24 10.7-24 24l0 128c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 28 0c37.6 0 68-30.4 68-68s-30.4-68-68-68l-52 0zm52 88l-28 0 0-40 28 0c11 0 20 9 20 20s-9 20-20 20z\"]\n};\nvar faWindowMaximize = {\n prefix: 'far',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M48 224l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160-416 0zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z\"]\n};\nvar faCommentDots = {\n prefix: 'far',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M0 240c0 54.4 19.3 104.6 51.9 144.9L3.1 474.3c-2 3.7-3.1 7.9-3.1 12.2 0 14.1 11.4 25.5 25.5 25.5 4 0 7.8-.6 11.5-2.1L153.4 460c31.4 12.9 66.1 20 102.6 20 141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240zM94 407.9c9.3-17.1 7.4-38.1-4.8-53.2-26.1-32.3-41.2-71.9-41.2-114.7 0-103.2 90.2-192 208-192s208 88.8 208 192-90.2 192-208 192c-30.2 0-58.7-5.9-84.3-16.4-11.9-4.9-25.3-4.8-37.1 .3L76 440.9 94 407.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCommenting = faCommentDots;\nvar faFaceGrinTongueWink = {\n prefix: 'far',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M366.9 432c.8-5.2 1.1-10.6 1.1-16l0-53.5c10.2-12.6 18.3-26.9 23.8-42.5 4.1-11.6-7.8-21.4-19.6-17.8-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 5.5 15.5 13.6 29.9 23.8 42.4l0 53.5c0 5.4 .4 10.8 1.1 16-58.4-36.8-97.1-101.9-97.1-176 0-114.9 93.1-208 208-208s208 93.1 208 208c0 74.1-38.8 139.2-97.1 176zm-38.8 69.7C434.4 470.6 512 372.3 512 256 512 114.6 397.4 0 256 0S0 114.6 0 256C0 372.3 77.6 470.6 183.9 501.7 203.4 518.1 228.5 528 256 528s52.6-9.9 72.1-26.3zM320 378.6l0 37.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM132 232c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zm228.4-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM288 208a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faHourglassHalf = {\n prefix: 'far',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5l-81.5 81.5 81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5l81.5-81.5-81.5-81.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5l-81.5-81.5-81.5 81.5zM80.8 432c-.5 4.3-.8 8.6-.8 13l0 19 224 0 0-19c0-4.4-.3-8.7-.8-13L80.8 432zM254.1 160l-124.1 0 62.1 62.1 62.1-62.1zm39.7-48C300.4 98.1 304 82.7 304 67l0-19-224 0 0 19c0 15.7 3.6 31.1 10.2 45l203.5 0z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faCreditCard = {\n prefix: 'far',\n iconName: 'credit-card',\n icon: [512, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M448 112c8.8 0 16 7.2 16 16l0 32-416 0 0-32c0-8.8 7.2-16 16-16l384 0zm16 112l0 160c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-160 416 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM80 344c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm144 0c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faHandSpock = {\n prefix: 'far',\n iconName: 'hand-spock',\n icon: [512, 512, [128406], \"f259\", \"M138.3 80.8c-9.2-33.8 10.5-68.8 44.3-78.4 34-9.6 69.4 10.2 79 44.2L291.9 153.7 305.1 84c6.6-34.7 40.1-57.5 74.8-50.9 31.4 6 53 33.9 52 64.9 10-2.6 20.8-2.8 31.5-.1 34.3 8.6 55.1 43.3 46.6 77.6L454.7 397.2C437.8 464.7 377.2 512 307.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2-51.8-131.2c-13-32.9 3.2-70.1 36-83 11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L142.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37L73.8 323.4c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104c-2.9 11.7-13.4 19.9-25.5 19.9-16.5 0-28.9-15-25.8-31.2L383.7 99c1.7-8.7-4-17.1-12.7-18.7S354 84.3 352.3 93L320.5 260c-2.2 11.6-12.4 20-24.2 20-11 0-20.7-7.3-23.7-17.9L215.4 59.6z\"]\n};\nvar faBellSlash = {\n prefix: 'far',\n iconName: 'bell-slash',\n icon: [576, 512, [128277, 61943], \"f1f6\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.8-87.8c17.5-3.3 30.8-18.7 30.8-37.1 0-6.7-1.8-13.3-5.1-19L485 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 9.7c-42.2 6-79.4 27.8-105.4 59.1L41-24.9zM192.8 126.9C214.7 98.4 249.2 80 288 80 354.3 80 408 133.7 408 200l0 14.5c0 46.2 12.3 91.5 35.5 131.4l12.9 22.1-22.6 0-241.1-241.1zM132.5 345.9c19.5-33.4 31.3-70.7 34.6-109l-46.7-46.7c-.2 3.3-.3 6.6-.3 9.9l0 14.5c0 37.7-10 74.7-29 107.3L69.1 359.2c-3.4 5.8-5.1 12.3-5.1 19 0 20.9 16.9 37.8 37.8 37.8l244.4 0-48-48-178.6 0 12.9-22.1zM220.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z\"]\n};\nvar faStar = {\n prefix: 'far',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M288.1-32c9 0 17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2s-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1zm0 76.8L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 113.3-57.6c6.8-3.5 14.9-3.5 21.8 0l113.3 57.6-19.8-125.5c-1.2-7.6 1.3-15.3 6.7-20.7l89.8-89.9-125.5-20c-7.6-1.2-14.1-6-17.6-12.8L288.1 44.8z\"]\n};\nvar faFlag = {\n prefix: 'far',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4 44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0-35.1-17.6-75.4-22-113.5-12.5L48 52 48 24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8 54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4-48.2-24.1-103.3-30.1-155.6-17.1l-68.6 17.2 0-237z\"]\n};\nvar faLemon = {\n prefix: 'far',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M368 80c-3.2 0-6.2 .4-8.9 1.3-19.1 5.5-46.1 10.7-74.3 3.3-57.4-14.9-124.6 7.4-174.7 57.5S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3-.8 2.8-1.3 5.8-1.3 8.9 0 17.7 14.3 32 32 32 3.2 0 6.2-.4 8.9-1.3 19.1-5.5 46.1-10.7 74.3-3.3 57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3 .8-2.8 1.3-5.8 1.3-8.9 0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80 0 7.7-1.1 15.2-3.1 22.3-4.6 15.8-7.1 32.9-3 48.9 20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3-7.1 2-14.6 3.1-22.3 3.1-44.2 0-80-35.8-80-80 0-7.7 1.1-15.2 3.1-22.3 4.6-15.8 7.1-32.9 3-48.9-20.1-77.6 10.9-161.5 70-220.7S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3 7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S85.2 278 89 265.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"]\n};\nvar faWindowRestore = {\n prefix: 'far',\n iconName: 'window-restore',\n icon: [576, 512, [], \"f2d2\", \"M512 80L224 80c-8.8 0-16 7.2-16 16l0 16-48 0 0-16c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-48 48 0c8.8 0 16-7.2 16-16l0-192c0-8.8-7.2-16-16-16zM368 288l-320 0 0 128c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-128zM64 160l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'far',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M464 256c0 114.9-93.1 208-208 208S48 370.9 48 256c0-3.5 .1-7.1 .3-10.6-14-13.9-29.7-33.1-39.3-56.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256S512 397.4 512 256c0-23.3-3.1-45.9-8.9-67.3-9.6 23.7-25.4 42.8-39.3 56.7 .2 3.5 .3 7 .3 10.6zM368 58.9c11.7-6 24.5-9.6 37.7-10.6-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c13.2 1 26 4.6 37.7 10.6 13.8-7.1 29.3-10.9 45.1-10.9l2.9 0c8.9 0 17.6 1.2 25.8 3.5 12.4-2.3 25.2-3.5 38.2-3.5s25.8 1.2 38.2 3.5c8.2-2.3 16.9-3.5 25.8-3.5l2.9 0c15.8 0 31.3 3.8 45.1 10.9zm4.2 243.4c-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 19.8 55.9 73.1 95.9 135.8 95.9 62.7 0 116-40.1 135.8-96 4.1-11.6-7.8-21.4-19.6-17.8zM322.9 96L320 96c-26.5 0-48 21.5-48 48 0 53.4 66.9 95.7 89 108.2 4.4 2.5 9.6 2.5 14 0 22.1-12.5 89-54.8 89-108.2 0-26.5-21.5-48-48-48l-2.9 0c-13.5 0-26.5 5.4-36 14.9l-9.1 9.1-9.1-9.1c-9.5-9.5-22.5-14.9-36-14.9zm-188 14.9c-9.5-9.5-22.5-14.9-36-14.9L96 96c-26.5 0-48 21.5-48 48 0 53.4 66.9 95.7 89 108.2 4.4 2.5 9.6 2.5 14 0 22.1-12.5 89-54.8 89-108.2 0-26.5-21.5-48-48-48l-2.9 0c-13.5 0-26.5 5.4-36 14.9l-9.1 9.1-9.1-9.1z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faFaceKissBeam = {\n prefix: 'far',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm240 16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-64-92c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faFilePdf = {\n prefix: 'far',\n iconName: 'file-pdf',\n icon: [576, 512, [], \"f1c1\", \"M208 48L96 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0 48-80 0c-35.3 0-64-28.7-64-64L32 64C32 28.7 60.7 0 96 0L229.5 0c17 0 33.3 6.7 45.3 18.7L397.3 141.3c12 12 18.7 28.3 18.7 45.3l0 149.5-48 0 0-128-88 0c-39.8 0-72-32.2-72-72l0-88zM348.1 160L256 67.9 256 136c0 13.3 10.7 24 24 24l68.1 0zM240 380l32 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-12 0 0 28c0 11-9 20-20 20s-20-9-20-20l0-128c0-11 9-20 20-20zm32 80c11 0 20-9 20-20s-9-20-20-20l-12 0 0 40 12 0zm96-80l32 0c28.7 0 52 23.3 52 52l0 64c0 28.7-23.3 52-52 52l-32 0c-11 0-20-9-20-20l0-128c0-11 9-20 20-20zm32 128c6.6 0 12-5.4 12-12l0-64c0-6.6-5.4-12-12-12l-12 0 0 88 12 0zm76-108c0-11 9-20 20-20l48 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 24 28 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-128z\"]\n};\nvar faFaceGrinWide = {\n prefix: 'far',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faFaceLaughSquint = {\n prefix: 'far',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm125.2 76.4c-6.5-14 5-28.4 20.4-28.4l220.8 0c15.4 0 26.8 14.4 20.4 28.4-22.8 49.4-72.8 83.6-130.8 83.6s-107.9-34.2-130.8-83.6zm-2.6-173.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faFaceKissWinkHeart = {\n prefix: 'far',\n iconName: 'face-kiss-wink-heart',\n icon: [640, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M386 439.5c-29.2 15.6-62.5 24.5-98 24.5-114.9 0-208-93.1-208-208S173.2 48 288 48c113.2 0 205.2 90.4 207.9 202.9 14.3 1.5 28.6 6 41.9 13.7 2 1.2 4 2.4 5.9 3.7 .2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-5.8-12.9-12-28.5-17.2-45.2zM256 288c0 8.8 7.2 16 16 16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c26.5 0 48-21.5 48-48 0-12.3-4.6-23.5-12.2-32 7.6-8.5 12.2-19.7 12.2-32 0-26.5-21.5-48-48-48l-32 0c-8.8 0-16 7.2-16 16zm-48-48a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm152-44l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faCopy = {\n prefix: 'far',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-197.5c0-17-6.7-33.3-18.7-45.3L370.7 18.7C358.7 6.7 342.5 0 325.5 0L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-48 0 0 16c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0 0-48-16 0z\"]\n};\nvar faChessKing = {\n prefix: 'far',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224-32c13.3 0 24 10.7 24 24l0 40 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 80 161.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L357.2 374.5 405.6 435c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L79.4 512c-26.2 0-47.4-21.2-47.4-47.4 0-10.8 3.7-21.2 10.4-29.6L90.8 374.5 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l161.8 0 0-80-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-40c0-13.3 10.7-24 24-24zM131.8 400l-3.6 4.4-47.6 59.6 286.6 0-47.6-59.6-3.6-4.4-184.3 0zm1.1-48.5l.3 .5 181.6 0 .3-.5 78.3-143.5-338.7 0 78.3 143.5z\"]\n};\nvar faSquarePlus = {\n prefix: 'far',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faFileCode = {\n prefix: 'far',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM170.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm80-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'far',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faMoneyBill1 = {\n prefix: 'far',\n iconName: 'money-bill-1',\n icon: [512, 512, [\"money-bill-alt\"], \"f3d1\", \"M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l288 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-288 0zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm256 16a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm-16 44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faEyeSlash = {\n prefix: 'far',\n iconName: 'eye-slash',\n icon: [576, 512, [], \"f070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM176.9 111.1c32.1-18.9 69.2-31.1 111.1-31.1 65.2 0 118.8 29.6 159.9 67.7 38.5 35.7 65.1 78.3 78.6 108.3-13.6 30-40.2 72.5-78.6 108.3-3.1 2.8-6.2 5.6-9.4 8.4L393.8 328c14-20.5 22.2-45.3 22.2-72 0-70.7-57.3-128-128-128-26.7 0-51.5 8.2-72 22.2l-39.1-39.1zm182 182l-108-108c11.1-5.8 23.7-9.1 37.1-9.1 44.2 0 80 35.8 80 80 0 13.4-3.3 26-9.1 37.1zM103.4 173.2l-34-34c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6L352.2 422c-20 6.4-41.4 10-64.2 10-65.2 0-118.8-29.6-159.9-67.7-38.5-35.7-65.1-78.3-78.6-108.3 10.4-23.1 28.6-53.6 54-82.8z\"]\n};\nvar faFileWord = {\n prefix: 'far',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm71.3 274.2c-3.2-12.9-16.2-20.7-29.1-17.5S85.5 273 88.7 285.8l32 128c2.5 10.2 11.4 17.5 21.9 18.1s20.1-5.7 23.8-15.5l25.5-68.1 25.5 68.1c3.7 9.8 13.3 16.1 23.8 15.5s19.4-7.9 21.9-18.1l32-128c3.2-12.9-4.6-25.9-17.5-29.1s-25.9 4.6-29.1 17.5l-13.3 53.2-20.9-55.8C211 262.2 202 256 192 256s-19 6.2-22.5 15.6l-20.9 55.8-13.3-53.2z\"]\n};\nvar faFaceAngry = {\n prefix: 'far',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-144c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faChessKnight = {\n prefix: 'far',\n iconName: 'chess-knight',\n icon: [448, 512, [9822], \"f441\", \"M232-32c110.5 0 200 89.5 200 200l0 127.7c0 18.9-6.1 37.1-17.2 52.2l-5.1 6.2-36.3 40.7 32.1 40.2c6.7 8.4 10.4 18.8 10.4 29.6l-.2 4.8c-2.4 23.9-22.6 42.5-47.1 42.5l-289.2 0-4.8-.2c-23.9-2.4-42.5-22.6-42.5-47.1 0-10.8 3.7-21.2 10.4-29.6l37.6-47 0-24.3c0-24.3 10.1-47.6 27.8-64.2l63.5-59.5-17.4 0-.2 .2c-20.3 20.3-49.6 28.2-77.1 21.1l-5.5-1.6c-30.9-10.3-52.3-38-54.9-70.1l-.2-6.4 0-1.4c0-19.7 7.1-38.8 19.9-53.8l76.1-88.8 0-47.1 .1-2.5C113.4-22.6 123.6-32 136-32l96 0zM80.7 464l286.6 0-38.4-48-209.9 0-38.4 48zM160 48c0 5.7-2.1 11.3-5.8 15.6L72.3 159.1C67 165.4 64 173.4 64 181.7l0 1.4 .4 5.2c1.9 11.9 10.3 21.9 21.9 25.8l4.5 1.1c10.5 1.9 21.3-1.4 29-9l7.2-7.2 3.7-3c3.9-2.6 8.5-4 13.3-4l88 0c9.8 0 18.7 6 22.3 15.2s1.3 19.6-5.9 26.3l-107.8 101c-8.1 7.6-12.7 18.1-12.7 29.2l0 4.3 205.2 0 40.7-45.8 2.3-2.8c5.1-6.8 7.8-15.2 7.8-23.7L384 168c0-83.9-68.1-152-152-152l-72 0 0 32zm32 72a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'far',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faHandPeace = {\n prefix: 'far',\n iconName: 'hand-peace',\n icon: [448, 512, [9996], \"f25b\", \"M219 1.4c-35.2-3.7-66.6 21.8-70.3 57l-6.4 60.6-17.4-49.4C113.2 36.3 76.6 18.8 43.3 30.5S-7.6 78.8 4.1 112.1L56.9 262.2C41.7 276.7 32.2 297.3 32.2 320l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-120c0-35.3-28.7-64-64-64-7.9 0-15.4 1.4-22.4 4-10.4-21.3-32.3-36-57.6-36-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4c-6.6 10.1-10.5 22.2-10.5 35.2l0 48c0 .7 0 1.4 0 2-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM79.6 85.6l54.3 154.4-21.7 0c-4 0-8 .3-11.9 .9L49.4 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM256.2 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36 5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64 0-.7 0-1.4 0-2 5.1 1.3 10.5 2 16 2 7.9 0 15.4-1.4 22.4-4zm73.6-28c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48z\"]\n};\nvar faCompass = {\n prefix: 'far',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.3 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faSquare = {\n prefix: 'far',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faFaceGrin = {\n prefix: 'far',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrin = faFaceGrin;\nvar faFaceSmile = {\n prefix: 'far',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSmile = faFaceSmile;\nvar faFaceSmileBeam = {\n prefix: 'far',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faFolderClosed = {\n prefix: 'far',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 400L64 400c-8.8 0-16-7.2-16-16l0-144 416 0 0 144c0 8.8-7.2 16-16 16zm16-208l-416 0 0-96c0-8.8 7.2-16 16-16l138.7 0c3.5 0 6.8 1.1 9.6 3.2L250.7 112c13.8 10.4 30.7 16 48 16L448 128c8.8 0 16 7.2 16 16l0 48zM64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z\"]\n};\nvar faKeyboard = {\n prefix: 'far',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z\"]\n};\nvar faFaceRollingEyes = {\n prefix: 'far',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 376c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM160 264c-22.1 0-40-17.9-40-40 0-9.5 3.3-18.1 8.8-25 3.2 14.3 16 25 31.2 25s28-10.7 31.2-25c5.5 6.8 8.8 15.5 8.8 25 0 22.1-17.9 40-40 40zm0 40a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-40c-22.1 0-40-17.9-40-40 0-9.5 3.3-18.1 8.8-25 3.2 14.3 16 25 31.2 25s28-10.7 31.2-25c5.5 6.8 8.8 15.5 8.8 25 0 22.1-17.9 40-40 40zm0 40a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faFaceGrimace = {\n prefix: 'far',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256a256 256 0 1 1 -512 0 256 256 0 1 1 512 0zM152 352c0 11.9 8.6 21.8 20 23.7l0-47.3c-11.4 1.9-20 11.8-20 23.7zm84 24l0-48-24 0 0 48 24 0zm64 0l0-48-24 0 0 48 24 0zm40-.3c11.4-1.9 20-11.8 20-23.7s-8.6-21.8-20-23.7l0 47.3zM176 288l160 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-160 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faCircleDot = {\n prefix: 'far',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm0 304a96 96 0 1 1 0-192 96 96 0 1 1 0 192z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faObjectGroup = {\n prefix: 'far',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M40 64a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm48 59.3c16-6.5 28.9-19.3 35.3-35.3l329.3 0c6.5 16 19.3 28.9 35.3 35.3l0 265.3c-16 6.5-28.9 19.3-35.3 35.3l-329.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-265.3zM512 0c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0 28.7 0 0 28.7 0 64 0 90.9 16.5 113.9 40 123.3l0 265.3c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l329.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-265.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64zM488 64a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 424a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm424 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM192 176l88 0 0 56-88 0 0-56zm-8-40c-17.7 0-32 14.3-32 32l0 72c0 17.7 14.3 32 32 32l104 0c17.7 0 32-14.3 32-32l0-72c0-17.7-14.3-32-32-32l-104 0zm72 184l0 24c0 17.7 14.3 32 32 32l104 0c17.7 0 32-14.3 32-32l0-72c0-17.7-14.3-32-32-32l-24 0c0 14.6-3.9 28.2-10.7 40l26.7 0 0 56-88 0 0-16.4c-2.6 .3-5.3 .4-8 .4l-32 0z\"]\n};\nvar faFaceFlushed = {\n prefix: 'far',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM160 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faStarHalfStroke = {\n prefix: 'far',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9zM264.1 91.8l0 284.1-100.1 50.9 19.8-125.5c1.2-7.6-1.3-15.3-6.7-20.7l-89.8-89.9 125.5-20c7.6-1.2 14.1-6 17.6-12.8l33.8-66.2zm48 284.1l0-284.1 33.8 66.2c3.5 6.8 10 11.6 17.6 12.8l125.5 20-89.8 89.9c-5.4 5.4-7.9 13.1-6.7 20.7l19.8 125.5-100.1-50.9z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faFileVideo = {\n prefix: 'far',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 288l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faFaceLaugh = {\n prefix: 'far',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faHandPointer = {\n prefix: 'far',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4 8.8 0 16 7.2 16 16 0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4 7.8 0 14.3 5.6 15.7 13 1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4 8.8 0 16 7.2 16 16l0 120c0 39.8-32.2 72-72 72l-116.6 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23L160 64zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2L328 512c66.3 0 120-53.7 120-120l0-120c0-35.3-28.7-64-64-64-4.5 0-8.8 .5-13 1.3-11.7-15.4-30.2-25.3-51-25.3-6.9 0-13.5 1.1-19.7 3.1-11.6-16.4-30.7-27.1-52.3-27.1-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"]\n};\nvar faRegistered = {\n prefix: 'far',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144c-13.3 0-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56 34.4 0 41 68.3c6.8 11.4 21.6 15 32.9 8.2s15-21.6 8.2-32.9l-30.2-50.3c24.6-11.5 41.6-36.4 41.6-65.3 0-39.8-32.2-72-72-72l-80 0zm72 96l-48 0 0-48 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0z\"]\n};\nvar icons = {\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faCalendarCheck: faCalendarCheck,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faHandPointLeft: faHandPointLeft,\n faFileExcel: faFileExcel,\n faEnvelope: faEnvelope,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faTruck: faTruck,\n faBell: faBell,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faHandPointUp: faHandPointUp,\n faHandLizard: faHandLizard,\n faSquareFull: faSquareFull,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faEye: faEye,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faChessQueen: faChessQueen,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faClock: faClock,\n faClockFour: faClockFour,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faPaperPlane: faPaperPlane,\n faHeart: faHeart,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faClone: faClone,\n faFolderOpen: faFolderOpen,\n faWindowMinimize: faWindowMinimize,\n faStarHalf: faStarHalf,\n faAlarmClock: faAlarmClock,\n faNewspaper: faNewspaper,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faObjectUngroup: faObjectUngroup,\n faComment: faComment,\n faChessPawn: faChessPawn,\n faCalendarPlus: faCalendarPlus,\n faClipboard: faClipboard,\n faThumbsDown: faThumbsDown,\n faIdBadge: faIdBadge,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faChessBishop: faChessBishop,\n faEnvelopeOpen: faEnvelopeOpen,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faFileImage: faFileImage,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faSun: faSun,\n faImage: faImage,\n faLightbulb: faLightbulb,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faMap: faMap,\n faHandPointDown: faHandPointDown,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faCloud: faCloud,\n faCircle: faCircle,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faThumbsUp: faThumbsUp,\n faBuilding: faBuilding,\n faChessRook: faChessRook,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faFile: faFile,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faCalendarMinus: faCalendarMinus,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faHandPointRight: faHandPointRight,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faHandScissors: faHandScissors,\n faGem: faGem,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faLifeRing: faLifeRing,\n faCopyright: faCopyright,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faCalendar: faCalendar,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faHouse: faHouse,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeLgAlt: faHomeLgAlt,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserLarge: faUserLarge,\n faSnowflake: faSnowflake,\n faBookmark: faBookmark,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faHandshake: faHandshake,\n faHandshakeAlt: faHandshakeAlt,\n faHandshakeSimple: faHandshakeSimple,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faFileAudio: faFileAudio,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faComments: faComments,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faMoon: faMoon,\n faClosedCaptioning: faClosedCaptioning,\n faImages: faImages,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadphonesSimple: faHeadphonesSimple,\n faFilePowerpoint: faFilePowerpoint,\n faWindowMaximize: faWindowMaximize,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faHandSpock: faHandSpock,\n faBellSlash: faBellSlash,\n faStar: faStar,\n faFlag: faFlag,\n faLemon: faLemon,\n faWindowRestore: faWindowRestore,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faFilePdf: faFilePdf,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faCopy: faCopy,\n faChessKing: faChessKing,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faFileCode: faFileCode,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faEyeSlash: faEyeSlash,\n faFileWord: faFileWord,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faChessKnight: faChessKnight,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faHandPeace: faHandPeace,\n faCompass: faCompass,\n faSquare: faSquare,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faFolderClosed: faFolderClosed,\n faKeyboard: faKeyboard,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faObjectGroup: faObjectGroup,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faFileVideo: faFileVideo,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faHandPointer: faHandPointer,\n faRegistered: faRegistered\n};\n\nexport { icons as far, prefix, faSquareMinus, faMinusSquare, faCalendarCheck, faFaceKiss, faKiss, faPaste, faFileClipboard, faHandPointLeft, faFileExcel, faEnvelope, faSquareCaretDown, faCaretSquareDown, faTruck, faBell, faMessage, faCommentAlt, faFaceDizzy, faDizzy, faCalendarDays, faCalendarAlt, faHandPointUp, faHandLizard, faSquareFull, faCirclePause, faPauseCircle, faHardDrive, faHdd, faFileZipper, faFileArchive, faFloppyDisk, faSave, faFaceGrinTongueSquint, faGrinTongueSquint, faCamera, faCameraAlt, faFaceGrinStars, faGrinStars, faEye, faFaceSadTear, faSadTear, faShareFromSquare, faShareSquare, faNoteSticky, faStickyNote, faHandBackFist, faHandRock, faChessQueen, faFaceGrinTears, faGrinTears, faPenToSquare, faEdit, faFaceGrinBeamSweat, faGrinBeamSweat, faClock, faClockFour, faFaceLaughWink, faLaughWink, faPaperPlane, faHeart, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faClone, faFolderOpen, faWindowMinimize, faStarHalf, faAlarmClock, faNewspaper, faHospital, faHospitalAlt, faHospitalWide, faCircleStop, faStopCircle, faObjectUngroup, faComment, faChessPawn, faCalendarPlus, faClipboard, faThumbsDown, faIdBadge, faSquareCheck, faCheckSquare, faChessBishop, faEnvelopeOpen, faCircleXmark, faTimesCircle, faXmarkCircle, faSquareCaretUp, faCaretSquareUp, faFileImage, faSquareCaretRight, faCaretSquareRight, faSun, faImage, faLightbulb, faAddressCard, faContactCard, faVcard, faFaceMeh, faMeh, faMap, faHandPointDown, faFaceMehBlank, faMehBlank, faFaceGrinTongue, faGrinTongue, faFutbol, faFutbolBall, faSoccerBall, faFaceSurprise, faSurprise, faFolder, faFolderBlank, faCloud, faCircle, faFaceGrinSquint, faGrinSquint, faCircleUser, faUserCircle, faRectangleList, faListAlt, faHand, faHandPaper, faThumbsUp, faBuilding, faChessRook, faCircleQuestion, faQuestionCircle, faFile, faFaceSadCry, faSadCry, faCalendarMinus, faFaceTired, faTired, faHandPointRight, faCircleUp, faArrowAltCircleUp, faHandScissors, faGem, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faTrashCan, faTrashAlt, faLifeRing, faCopyright, faCircleLeft, faArrowAltCircleLeft, faCalendar, faFaceFrownOpen, faFrownOpen, faChartBar, faBarChart, faHouse, faHome, faHomeAlt, faHomeLgAlt, faFaceFrown, faFrown, faUser, faUserAlt, faUserLarge, faSnowflake, faBookmark, faSquareCaretLeft, faCaretSquareLeft, faHandshake, faHandshakeAlt, faHandshakeSimple, faFaceSmileWink, faSmileWink, faFaceGrinSquintTears, faGrinSquintTears, faFileAudio, faCalendarXmark, faCalendarTimes, faCircleDown, faArrowAltCircleDown, faFileLines, faFileAlt, faFileText, faComments, faCircleCheck, faCheckCircle, faMoon, faClosedCaptioning, faImages, faCircleRight, faArrowAltCircleRight, faIdCard, faDriversLicense, faCirclePlay, faPlayCircle, faFaceLaughBeam, faLaughBeam, faAddressBook, faContactBook, faHourglass, faHourglassEmpty, faHeadphones, faHeadphonesAlt, faHeadphonesSimple, faFilePowerpoint, faWindowMaximize, faCommentDots, faCommenting, faFaceGrinTongueWink, faGrinTongueWink, faHourglassHalf, faHourglass2, faCreditCard, faCreditCardAlt, faHandSpock, faBellSlash, faStar, faFlag, faLemon, faWindowRestore, faFaceGrinHearts, faGrinHearts, faFaceKissBeam, faKissBeam, faFilePdf, faFaceGrinWide, faGrinAlt, faFaceLaughSquint, faLaughSquint, faFaceKissWinkHeart, faKissWinkHeart, faCopy, faChessKing, faSquarePlus, faPlusSquare, faFileCode, faFaceGrinWink, faGrinWink, faMoneyBill1, faMoneyBillAlt, faEyeSlash, faFileWord, faFaceAngry, faAngry, faChessKnight, faFaceGrinBeam, faGrinBeam, faHandPeace, faCompass, faSquare, faFaceGrin, faGrin, faFaceSmile, faSmile, faFaceSmileBeam, faSmileBeam, faFolderClosed, faKeyboard, faFaceRollingEyes, faMehRollingEyes, faFaceGrimace, faGrimace, faCircleDot, faDotCircle, faObjectGroup, faFaceFlushed, faFlushed, faStarHalfStroke, faStarHalfAlt, faFileVideo, faFaceLaugh, faLaugh, faHandPointer, faRegistered };\n", "/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\nvar prefix = \"fas\";\nvar fa0 = {\n prefix: 'fas',\n iconName: '0',\n icon: [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z\"]\n};\nvar fa1 = {\n prefix: 'fas',\n iconName: '1',\n icon: [256, 512, [], \"31\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352c0-17.7-14.3-32-32-32L32 32z\"]\n};\nvar fa2 = {\n prefix: 'fas',\n iconName: '2',\n icon: [384, 512, [], \"32\", \"M48 64c0-17.7 14.3-32 32-32l171 0c60.2 0 109 48.8 109 109 0 43.8-26.2 83.3-66.4 100.4l-139.1 59C119 315.4 96 350.2 96 388.7l0 27.3 224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32l0-59.3c0-64.2 38.4-122.2 97.5-147.3l139.1-59c16.6-7.1 27.4-23.4 27.4-41.4 0-24.9-20.2-45-45-45L80 96C62.3 96 48 81.7 48 64z\"]\n};\nvar fa3 = {\n prefix: 'fas',\n iconName: '3',\n icon: [320, 512, [], \"33\", \"M80 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l160 0c70.7 0 128 57.3 128 128 0 38.2-16.8 72.5-43.3 96 26.6 23.5 43.3 57.8 43.3 96 0 70.7-57.3 128-128 128L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L80 288z\"]\n};\nvar fa4 = {\n prefix: 'fas',\n iconName: '4',\n icon: [384, 512, [], \"34\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 288c0 35.3 28.7 64 64 64l192 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224-192 0 0-224z\"]\n};\nvar fa5 = {\n prefix: 'fas',\n iconName: '5',\n icon: [320, 512, [], \"35\", \"M0 64C0 46.3 14.3 32 32 32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0 0 112 120 0c75.1 0 136 60.9 136 136S259.1 480 184 480L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l152 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-17.7 0-32-14.3-32-32L0 64z\"]\n};\nvar fa6 = {\n prefix: 'fas',\n iconName: '6',\n icon: [384, 512, [], \"36\", \"M256 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-88 0c-48.6 0-88 39.4-88 88l0 32.2c22.9-15.3 50.4-24.2 80-24.2l48 0c79.5 0 144 64.5 144 144S287.5 480 208 480l-48 0C80.5 480 16 415.5 16 336l0-152C16 100.1 84.1 32 168 32l88 0zM80 336c0 44.2 35.8 80 80 80l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0c-44.2 0-80 35.8-80 80z\"]\n};\nvar fa7 = {\n prefix: 'fas',\n iconName: '7',\n icon: [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar fa8 = {\n prefix: 'fas',\n iconName: '8',\n icon: [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128l-32 0c-70.7 0-128 57.3-128 128 0 34.6 13.7 66 36 89-31.5 23.3-52 60.8-52 103 0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128 0-42.2-20.5-79.7-52-103 22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l48.1 0zm0-64L144 224c-35.3 0-64-28.7-64-64 0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64 0 35.3-28.6 64-64 64z\"]\n};\nvar fa9 = {\n prefix: 'fas',\n iconName: '9',\n icon: [384, 512, [], \"39\", \"M208 320c29.6 0 57.1-8.9 80-24.2l0 32.2c0 48.6-39.4 88-88 88L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l104 0c83.9 0 152-68.1 152-152l0-152.1C351.9 96.4 287.5 32 208 32l-48 0C80.5 32 16 96.5 16 176S80.5 320 160 320l48 0zm80-144c0 44.2-35.8 80-80 80l-48 0c-44.2 0-80-35.8-80-80s35.8-80 80-80l48 0c44.2 0 80 35.8 80 80z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M136 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-114.9 0c-24.9 0-45.1 20.2-45.1 45.1 0 22.5 16.5 41.5 38.7 44.7l91.6 13.1c53.8 7.7 93.7 53.7 93.7 108 0 60.3-48.9 109.1-109.1 109.1l-10.9 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-72 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l130.9 0c24.9 0 45.1-20.2 45.1-45.1 0-22.5-16.5-41.5-38.7-44.7l-91.6-13.1C55.9 273.5 16 227.4 16 173.1 16 112.9 64.9 64 125.1 64l10.9 0 0-40z\"]\n};\nvar faDollar = faDollarSign;\nvar faUsd = faDollarSign;\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [128021], \"f6d3\", \"M32 112c16.6 0 30.2 12.6 31.8 28.7l.3 6.6C65.8 163.4 79.4 176 96 176l179.1 0 140.9 60.4 0 243.6c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-131.3C296 361 268.8 368 240 368s-56-7-80-19.3L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-245.6c-37.3-13.2-64-48.6-64-90.4 0-17.7 14.3-32 32-32zM355.8-32c7.7 0 14.9 3.6 19.6 9.8L392 0 444.1 0c12.7 0 24.9 5.1 33.9 14.1L496 32 552 32c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-64 0-7 28-124.7-53.4 31.6-147.2C334.3-23.9 344.2-32 355.8-32zM448 44a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96L0 424c0 48.6 39.4 88 88 88 25.2 0 48-10.6 64-27.6 16 17 38.8 27.6 64 27.6 40.3 0 74.2-27.1 84.7-64l134.6 0c10.4 36.9 44.4 64 84.7 64 43 0 78.9-30.9 86.5-71.7 20-10.8 33.5-32 33.5-56.3l0-146.7c0-17-6.7-33.3-18.7-45.3L576 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM480 192l50.7 0 45.3 45.3 0 50.7-96 0 0-96zM88 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm392 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM216 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faRotate = {\n prefix: 'fas',\n iconName: 'rotate',\n icon: [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M480.1 192l7.9 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2S477.9 .2 471 7L419.3 58.8C375 22.1 318 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1C79.2 135.5 159.3 64 256 64 300.4 64 341.2 79 373.7 104.3L327 151c-6.9 6.9-8.9 17.2-5.2 26.2S334.3 192 344 192l136.1 0zm29.4 100.5c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-44.4 0-85.2-15-117.7-40.3L185 361c6.9-6.9 8.9-17.2 5.2-26.2S177.7 320 168 320L24 320c-13.3 0-24 10.7-24 24L0 488c0 9.7 5.8 18.5 14.8 22.2S34.1 511.8 41 505l51.8-51.8C137 489.9 194 512 256 512 385 512 491.7 416.6 509.4 292.5z\"]\n};\nvar faSyncAlt = faRotate;\nvar faSquareMinus = {\n prefix: 'fas',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm72 200l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M320 0c17.7 0 32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32zm22 161.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 331.2 137 279.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 195.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faFaceKiss = {\n prefix: 'fas',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faKiss = faFaceKiss;\nvar faKitchenSet = {\n prefix: 'fas',\n iconName: 'kitchen-set',\n icon: [576, 512, [], \"e51a\", \"M240 144a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288 64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l128 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [384, 512, [129516], \"f471\", \"M352 0c17.7 0 32 14.3 32 32 0 57.8-24.4 104.8-57.4 144.5-24.1 28.9-53.8 55.1-83.6 79.5 29.8 24.5 59.5 50.6 83.6 79.5 33 39.6 57.4 86.7 57.4 144.5 0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32S0 497.7 0 480C0 422.2 24.4 375.2 57.4 335.5 81.5 306.6 111.2 280.5 141 256 111.2 231.5 81.5 205.4 57.4 176.5 24.4 136.8 0 89.8 0 32 0 14.3 14.3 0 32 0S64 14.3 64 32l256 0c0-17.7 14.3-32 32-32zM283.5 384l-182.9 0c-8.2 10.5-15.1 21.1-20.6 32l224.2 0c-5.6-10.9-12.5-21.5-20.6-32zM238 336c-14.3-13-29.8-25.8-46-39-16.2 13.1-31.7 26-46 39l92 0zM100.5 128l182.9 0c8.2-10.5 15.1-21.1 20.6-32L79.9 96c5.6 10.9 12.5 21.5 20.6 32zM146 176c14.3 13 29.8 25.8 46 39 16.2-13.1 31.7-26 46-39l-92 0z\"]\n};\nvar faChildReaching = {\n prefix: 'fas',\n iconName: 'child-reaching',\n icon: [384, 512, [], \"e59d\", \"M256 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.3 85.4S11.6 115 21.4 129.8L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6-12.6 0-24.9-2-36.6-5.8-.9-.3-1.8-.7-2.7-.9z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-224c0-61.9 50.1-112 112-112l64 0 0-48c0-35.3-28.7-64-64-64L64 0zM248 112l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm40 48c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160z\"]\n};\nvar faFileClipboard = faPaste;\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [9732], \"f753\", \"M493.7 .9l-194.2 74.7 2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309 0 421.1 90.9 512 203 512 275.4 512 342.3 473.4 378.6 410.7L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3 74.7-194.2c.6-1.5 .9-3.2 .9-4.8 0-7.5-6-13.5-13.5-13.5-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faGears = {\n prefix: 'fas',\n iconName: 'gears',\n icon: [640, 512, [\"cogs\"], \"f085\", \"M415.9 210.5c12.2-3.3 25 2.5 30.5 13.8L465 261.9c10.3 1.4 20.4 4.2 29.9 8.1l35-23.3c10.5-7 24.4-5.6 33.3 3.3l19.2 19.2c8.9 8.9 10.3 22.9 3.3 33.3l-23.3 34.9c1.9 4.7 3.6 9.6 5 14.7 1.4 5.1 2.3 10.1 3 15.2l37.7 18.6c11.3 5.6 17.1 18.4 13.8 30.5l-7 26.2c-3.3 12.1-14.6 20.3-27.2 19.5l-42-2.7c-6.3 8.1-13.6 15.6-21.9 22l2.7 41.9c.8 12.6-7.4 24-19.5 27.2l-26.2 7c-12.2 3.3-24.9-2.5-30.5-13.8l-18.6-37.6c-10.3-1.4-20.4-4.2-29.9-8.1l-35 23.3c-10.5 7-24.4 5.6-33.3-3.3l-19.2-19.2c-8.9-8.9-10.3-22.8-3.3-33.3l23.3-35c-1.9-4.7-3.6-9.6-5-14.7s-2.3-10.2-3-15.2l-37.7-18.6c-11.3-5.6-17-18.4-13.8-30.5l7-26.2c3.3-12.1 14.6-20.3 27.2-19.5l41.9 2.7c6.3-8.1 13.6-15.6 21.9-22l-2.7-41.8c-.8-12.6 7.4-24 19.5-27.2l26.2-7zM448.4 340a44 44 0 1 0 .1 88 44 44 0 1 0 -.1-88zM224.9-45.5l26.2 7c12.1 3.3 20.3 14.7 19.5 27.2l-2.7 41.8c8.3 6.4 15.6 13.8 21.9 22l42-2.7c12.5-.8 23.9 7.4 27.2 19.5l7 26.2c3.2 12.1-2.5 24.9-13.8 30.5l-37.7 18.6c-.7 5.1-1.7 10.2-3 15.2s-3.1 10-5 14.7l23.3 35c7 10.5 5.6 24.4-3.3 33.3L307.3 262c-8.9 8.9-22.8 10.3-33.3 3.3L239 242c-9.5 3.9-19.6 6.7-29.9 8.1l-18.6 37.6c-5.6 11.3-18.4 17-30.5 13.8l-26.2-7c-12.2-3.3-20.3-14.7-19.5-27.2l2.7-41.9c-8.3-6.4-15.6-13.8-21.9-22l-42 2.7c-12.5 .8-23.9-7.4-27.2-19.5l-7-26.2c-3.2-12.1 2.5-24.9 13.8-30.5l37.7-18.6c.7-5.1 1.7-10.1 3-15.2 1.4-5.1 3-10 5-14.7L55.1 46.5c-7-10.5-5.6-24.4 3.3-33.3L77.6-6c8.9-8.9 22.8-10.3 33.3-3.3l35 23.3c9.5-3.9 19.6-6.7 29.9-8.1l18.6-37.6c5.6-11.3 18.3-17 30.5-13.8zM192.4 84a44 44 0 1 0 0 88 44 44 0 1 0 0-88z\"]\n};\nvar faCogs = faGears;\nvar faFileCirclePlus = {\n prefix: 'fas',\n iconName: 'file-circle-plus',\n icon: [576, 512, [58606], \"e494\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7C.3 33.2 0 30.7 0 28.2 0 12.6 12.6 0 28.2 0L482.4 0c16.3 0 29.6 13.2 29.6 29.6 0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7-9.3 0-17.5-6.2-20-15.2z\"]\n};\nvar faArrowTrendUp = {\n prefix: 'fas',\n iconName: 'arrow-trend-up',\n icon: [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-169.4 169.4c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z\"]\n};\nvar faHexagonNodesBolt = {\n prefix: 'fas',\n iconName: 'hexagon-nodes-bolt',\n icon: [576, 512, [], \"e69a\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56c30.7 0 55.6-24.7 56-55.2c-7.5-12.9-13.5-26.8-17.6-41.5c-4.2-4-9.1-7.3-14.4-9.9l0-98.8c2.8-1.3 5.5-2.9 8-4.7l10.5 6c5.5-15.3 13.1-29.5 22.4-42.5l-9.1-5.2c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8zM440.5 132C425 105.2 390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c.4 .3 .8 .6 1.3 .9c21.7-9.5 45.6-14.8 70.8-14.8c2 0 4 0 5.9 .1c12.1-17.3 13.8-40.6 2.6-60.1zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [320, 512, [10067, 10068, 61736], \"3f\", \"M64 160c0-53 43-96 96-96s96 43 96 96c0 42.7-27.9 78.9-66.5 91.4-28.4 9.2-61.5 35.3-61.5 76.6l0 24c0 17.7 14.3 32 32 32s32-14.3 32-32l0-24c0-1.7 .6-4.1 3.5-7.3 3-3.3 7.9-6.5 13.7-8.4 64.3-20.7 110.8-81 110.8-152.3 0-88.4-71.6-160-160-160S0 71.6 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm96 352c22.1 0 40-17.9 40-40s-17.9-40-40-40-40 17.9-40 40 17.9 40 40 40z\"]\n};\nvar faHandsBound = {\n prefix: 'fas',\n iconName: 'hands-bound',\n icon: [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 213.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352 96 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7L576 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1l0 93.9-64 0 0-93.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2S124.2 166.4 135 180l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8 64 32zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L96 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z\"]\n};\nvar faPersonWalkingLuggage = {\n prefix: 'fas',\n iconName: 'person-walking-luggage',\n icon: [512, 512, [], \"e554\", \"M264.3 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 12.3-7 23-17.2 28.4-.9 4.2-2.4 8.4-4.3 12.3l-69 138.1-.8-.4-27.7 55.3c-9.9 19.8-33.9 27.8-53.7 17.9L14.6 521c-19.8-9.9-27.8-33.9-17.9-53.7L47.3 366.3c9.9-19.8 33.9-27.8 53.7-17.9l30.7 15.3 28.3-56.6c.3-.6 .4-1.2 .4-1.8l0-16.9c0-.2 0-.3 0-.5l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L422.1 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3L448 507.5c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2L372 428.4c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L238 421.1c3.8-3.8 6.6-8.6 8.1-13.8L256.4 371z\"]\n};\nvar faFileArrowDown = {\n prefix: 'fas',\n iconName: 'file-arrow-down',\n icon: [384, 512, [\"file-download\"], \"f56d\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM175 441c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-86.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 86.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64z\"]\n};\nvar faFileDownload = faFileArrowDown;\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M40 24A56 56 0 1 1 152 24 56 56 0 1 1 40 24zm51.1 88c23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c6 8.4 15.7 13.4 26 13.4l31.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C209.8 373.3 224 401.8 224 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L70.4 348.8C46.2 330.7 32 302.2 32 272l0-100.9C32 138.5 58.5 112 91.1 112zM32 512l0-132.7c3.1 2.7 6.3 5.4 9.6 7.9L96 428 96 512c0 17.7-14.3 32-32 32s-32-14.3-32-32zm544-88l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-168 0c-7.1 0-13.8-3.1-18.4-8.6s-6.5-12.6-5.3-19.6l30.7-176.7-63.1-137.6 0 72c-5.2-1-10.5-1.6-16-1.6l-32 0 0-120c0-30.9 25.1-56 56-56L520 0c30.9 0 56 25.1 56 56l0 368zM288 336c5.5 0 10.8-.6 16-1.6L304 520c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-184 32 0z\"]\n};\nvar faLocust = {\n prefix: 'fas',\n iconName: 'locust',\n icon: [576, 512, [], \"e520\", \"M328 32c137 0 248 111 248 248l0 40-.4 8.2C571.5 368.5 537.4 400 496 400l-12.3 0 25.2 44.1c6.6 11.5 2.6 26.2-8.9 32.8s-26.2 2.6-32.7-8.9l-38.8-67.9-80.4 0-48.2 69.7c-7.5 10.9-22.5 13.6-33.4 6.1s-13.6-22.5-6.1-33.4l29.3-42.3-74.5 0-51.7 70.2c-7.9 10.7-22.9 12.9-33.6 5.1s-12.9-22.9-5.1-33.6l40.5-55-43-16.4-79.3 100.5c-8.2 10.4-23.3 12.2-33.7 4s-12.2-23.3-4-33.7l240-304 2.1-2.3c5.2-5.1 12.5-7.5 19.9-6.6 8.4 1.1 15.6 6.5 18.9 14.3l21.7 50.7 40.9-55.5 2.1-2.4c5.1-5.3 12.5-8 20-7.2 8.5 1 15.9 6.5 19.3 14.4l41.8 97.5 64.2 0c10.2 0 20 2 29 5.5-16.4-94-98.3-165.5-197-165.5l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0zM488 296a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM43.5 331.1C36.2 321.4 32 309.5 32 296.8 32 265.5 57.5 240 88.9 240l27.6 0-72.9 91.1zM225.1 240l48.2 0 1.4-1.9-16.9-39.5-32.7 41.5zm107.8 0l46.7 0-17.2-40-29.5 40z\"]\n};\nvar faRightLong = {\n prefix: 'fas',\n iconName: 'right-long',\n icon: [576, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M566.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S384 396.9 384 384l0-64-336 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48l336 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128z\"]\n};\nvar faLongArrowAltRight = faRightLong;\nvar faTruckDroplet = {\n prefix: 'fas',\n iconName: 'truck-droplet',\n icon: [576, 512, [], \"e58c\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM208 304c-39.8 0-72-32.2-72-72 0-33.2 34.5-78 55.8-102.4 8.7-10 23.8-10 32.5 0 21.2 24.4 55.8 69.1 55.8 102.4 0 48-32.2 72-72 72z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M240 24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l56 0 0-56zM66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64-208 0zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32 0 13.2-4 25.4-10.8 35.6 24.9 8.7 42.8 32.5 42.8 60.4 0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm16 168a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM88 352a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM64 424c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm232-24c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSubtract = faMinus;\nvar faArrowUpZA = {\n prefix: 'fas',\n iconName: 'arrow-up-z-a',\n icon: [512, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80zM288 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 224 320 224l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S461 32 448 32L320 32c-17.7 0-32 14.3-32 32zM412.6 273.7C407.2 262.8 396.1 256 384 256s-23.2 6.8-28.6 17.7l-80 160c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-80-160zM384 359.6l20.2 40.4-40.4 0 20.2-40.4z\"]\n};\nvar faSortAlphaUpAlt = faArrowUpZA;\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [576, 512, [], \"f131\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L424.7 358.8C458.9 324.2 480 276.6 480 224l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 39.3-15.7 74.9-41.3 100.9L356.8 291C373.6 273.7 384 250 384 224l0-128c0-53-43-96-96-96s-96 43-96 96l0 30.2-151-151zm298.3 434l-41.4-41.4c-3.3 .2-6.5 .3-9.8 .3-79.5 0-144-64.5-144-144l0-10.2-43.6-43.6c-2.8 3.9-4.4 8.7-4.4 13.8l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c9.3-1.2 18.4-3 27.3-5.4z\"]\n};\nvar faSquarePen = {\n prefix: 'fas',\n iconName: 'square-pen',\n icon: [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-23.8 23.8-71-71 23.8-23.8c15.6-15.6 40.9-15.6 56.6 0zM119.9 289l91.5-91.6 71 71-91.6 91.5c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faPenSquare = faSquarePen;\nvar faPencilSquare = faSquarePen;\nvar faHandFist = {\n prefix: 'fas',\n iconName: 'hand-fist',\n icon: [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"]\n};\nvar faFistRaised = faHandFist;\nvar faCommentSms = {\n prefix: 'fas',\n iconName: 'comment-sms',\n icon: [512, 512, [\"sms\"], \"f7cd\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM140.8 172.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6zm188.8 41.6c0-23 18.6-41.6 41.6-41.6l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6zm-98.3-33.8l24.7 41.1 24.7-41.1c3.7-6.2 11.1-9.1 18-7.2s11.7 8.2 11.7 15.4l0 102.4c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-44.6-8.7 14.5c-2.9 4.8-8.1 7.8-13.7 7.8s-10.8-3-13.7-7.8l-8.7-14.5 0 44.6c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-102.4c0-7.2 4.8-13.5 11.7-15.4s14.3 1 18 7.2z\"]\n};\nvar faSms = faCommentSms;\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64C0 28.7 28.7 0 64 0L258.7 0c17 0 33.3 6.7 45.3 18.7L365.3 80c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 256c-17.7 0-32 14.3-32 32l0 40 128 0 0-72-96 0zM64 416c0 17.7 14.3 32 32 32l48 0 0-72-80 0 0 40zm256 0l0-40-128 0 0 72 96 0c17.7 0 32-14.3 32-32zm0-128c0-17.7-14.3-32-32-32l-48 0 0 72 80 0 0-40z\"]\n};\nvar faScaleBalanced = {\n prefix: 'fas',\n iconName: 'scale-balanced',\n icon: [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3l0 294.7 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288L584.4 320 512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zM126.8 195.8L54.4 320 199.3 320 126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9S11.7 382 .9 337.1z\"]\n};\nvar faBalanceScale = faScaleBalanced;\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4l-26.1 74.6 293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 192c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-320 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 304a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAutomobile = faCar;\nvar faCropSimple = {\n prefix: 'fas',\n iconName: 'crop-simple',\n icon: [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-208 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64l-208 0 0 64 208 0 0 352z\"]\n};\nvar faCropAlt = faCropSimple;\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [448, 512, [127941], \"f5a2\", \"M224.3 128L139.7-12.9c-6.5-10.8-20.1-14.7-31.3-9.1L21.8 21.3C9.9 27.2 5.1 41.6 11 53.5L80.6 192.6c-30.1 33.9-48.3 78.5-48.3 127.4 0 106 86 192 192 192s192-86 192-192c0-48.9-18.3-93.5-48.3-127.4L437.6 53.5c5.9-11.9 1.1-26.3-10.7-32.2L340.2-22.1c-11.2-5.6-24.9-1.6-31.3 9.1L224.3 128zm30.8 142.5c1.4 2.8 4 4.7 7 5.1l50.1 7.3c7.7 1.1 10.7 10.5 5.2 16l-36.3 35.4c-2.2 2.2-3.2 5.2-2.7 8.3l8.6 49.9c1.3 7.6-6.7 13.5-13.6 9.9l-44.8-23.6c-2.7-1.4-6-1.4-8.7 0l-44.8 23.6c-6.9 3.6-14.9-2.2-13.6-9.9l8.6-49.9c.5-3-.5-6.1-2.7-8.3l-36.3-35.4c-5.6-5.4-2.5-14.8 5.2-16l50.1-7.3c3-.4 5.7-2.4 7-5.1l22.4-45.4c3.4-7 13.3-7 16.8 0l22.4 45.4z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [576, 512, [128220], \"f70e\", \"M0 112C0 70.5 31.6 36.4 72 32.4l0-.4 280 0c53 0 96 43 96 96l0 176-176 0c-39.8 0-72 32.2-72 72l0 60c0 24.3-19.7 44-44 44s-44-19.7-44-44l0-228-64 0c-26.5 0-48-21.5-48-48l0-48zM236.8 480c7.1-13.1 11.2-28.1 11.2-44l0-60c0-13.3 10.7-24 24-24l248 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-227.2 0zM80 80c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM164 266.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3L163.2 352 124 410.7c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l28-42 28 42c7.4 11 22.3 14 33.3 6.7s14-22.3 6.7-33.3L220.8 352 260 293.3c7.4-11 4.4-25.9-6.7-33.3s-25.9-4.4-33.3 6.7l-28 42-28-42z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c9.2 9.2 22.9 11.9 34.9 6.9S320 492.9 320 480l0-178.7 182.6-182.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [129345], \"f569\", \"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96 114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5 38.8 15.1 44.4 30.6 44.4 41.3 0 .8-2.7 17.2-46 35.9-38.9 16.8-96 28.1-162 28.1S132.9 260.7 94 243.9c-43.3-18.7-46-35.1-46-35.9 0-10.6 5.6-26.2 44.4-41.3 38.3-14.9 95.4-22.7 163.6-22.7 18 0 35.1 .5 51.4 1.6z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [320, 512, [128205], \"f276\", \"M192 284.4C256.1 269.9 304 212.5 304 144 304 64.5 239.5 0 160 0S16 64.5 16 144c0 68.5 47.9 125.9 112 140.4L128 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-195.6zM168 96c-30.9 0-56 25.1-56 56 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4 46.6-104 104-104 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faScaleUnbalancedFlip = {\n prefix: 'fas',\n iconName: 'scale-unbalanced-flip',\n icon: [640, 512, [\"balance-scale-right\"], \"f516\", \"M118.2 62.4C101.5 56.8 92.4 38.6 98 21.9S121.7-3.9 138.5 1.6l113 37.7c13.9-23.5 39.6-39.3 68.9-39.3 44.2 0 80 35.8 80 80 0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.7 145.2c-4.5 3.2-9.3 5.9-14.4 8.2l0 326.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.8 288L128.3 163.8 55.9 288 200.8 288zm-72.4 96c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zm382.8-92.2l-72.4 124.2 144.9 0-72.4-124.2zm126 141.3C626.4 478 574.1 512 511.2 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"]\n};\nvar faBalanceScaleRight = faScaleUnbalancedFlip;\nvar faArrowsToCircle = {\n prefix: 'fas',\n iconName: 'arrows-to-circle',\n icon: [512, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L128 82.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0-73.4-73.4C-3.1 42.1-3.1 21.9 9.4 9.4zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM502.6 54.6L429.3 128 448 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-45.3 448L384 429.3 384 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0 73.4 73.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM9.4 457.4L82.7 384 64 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64c-26.5 0-48 21.5-48 48 0 15.1 7.1 29.3 19.2 38.4l208 156c17.1 12.8 40.5 12.8 57.6 0l208-156c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48L48 64zM0 196L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-188-198.4 148.8c-34.1 25.6-81.1 25.6-115.2 0L0 196z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M120 88a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM7.7 144.5c13-17.9 38-21.8 55.9-8.8L99.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L16.5 200.3c-17.9-13-21.8-38-8.8-55.9zM97.5 329.3l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C38 438.6 36.1 417 47.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l24.3-24.3-26-37.2z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'fas',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faTent = {\n prefix: 'fas',\n iconName: 'tent',\n icon: [512, 512, [], \"e57d\", \"M26.9 206.9L3.7 444.9C1.8 463.7 16.6 480 35.5 480l172.7 0c26.5 0 48-21.5 48-48l0-129c0-8.3 6.7-15 15-15 5.5 0 10.6 3 13.2 7.9l86.1 159c8.4 15.5 24.6 25.1 42.2 25.1l64.1 0c18.9 0 33.7-16.3 31.8-35.1L485.6 207.1c-1.9-19.6-12.8-37.3-29.5-47.8L280.9 48.3c-15.7-10-35.8-9.9-51.5 .1L56.1 159.2c-16.5 10.6-27.3 28.2-29.2 47.7z\"]\n};\nvar faA = {\n prefix: 'fas',\n iconName: 'a',\n icon: [384, 512, [97], \"41\", \"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7c-93.3 224-146.7 352-160 384-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2l31.8-76.3 197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8c-13.3-32-66.7-160-160-384zM264 320l-144 0 72-172.8 72 172.8z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M128 224C128 152.2 144.3 88.4 169.5 43.4 195.1-2.4 226.6-24 256-24s60.9 21.6 86.5 67.4C367.7 88.4 384 152.2 384 224l-104 0 0 96 8 0c9.3 0 18.1 2 26 5.5l118.4-101.5-.5 0c0-78.4-17.7-150.6-47.6-204-6.1-11-12.9-21.3-20.3-30.9 86.5 35.9 147.8 115.1 147.8 218.9 0 7-3.1 13.7-8.4 18.2L347.4 360.1c3 7.4 4.6 15.4 4.6 23.9l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-64c0-8.4 1.6-16.5 4.6-23.9L8.4 226.2C3.1 221.7 0 215 0 208 0 104.2 61.3 24.9 147.8-10.9 140.5-1.4 133.7 9 127.6 20 97.7 73.4 80 145.6 80 224l-.5 0 118.4 101.5c8-3.5 16.8-5.5 26-5.5l8 0 0-96-104 0z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [640, 512, [], \"f218\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 187.2 0 0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1 177.4 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faBridgeCircleExclamation = {\n prefix: 'fas',\n iconName: 'bridge-circle-exclamation',\n icon: [576, 512, [], \"e4ca\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faCloudArrowUp = {\n prefix: 'fas',\n iconName: 'cloud-arrow-up',\n icon: [576, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM305 191c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faCloudUpload = faCloudArrowUp;\nvar faCloudUploadAlt = faCloudArrowUp;\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0 512 114.6 512 256l0 32c0 53-43 96-96 96-29.3 0-55.6-13.2-73.2-33.9-22.8 21-53.3 33.9-86.8 33.9-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1 5.7-5 13.1-8.1 21.3-8.1 17.7 0 32 14.3 32 32l0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faIndianRupeeSign = {\n prefix: 'fas',\n iconName: 'indian-rupee-sign',\n icon: [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32l264 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-76.7 0c17.7 19.8 30.1 44.6 34.7 72l42 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-42 0c-10.4 62.2-60.8 110.9-123.8 118.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c35.8 0 66.1-23.5 76.3-56L24 200c-13.3 0-24-10.7-24-24s10.7-24 24-24l164.3 0c-10.2-32.5-40.5-56-76.3-56L32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar faIndianRupee = faIndianRupeeSign;\nvar faInr = faIndianRupeeSign;\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [576, 512, [128666, 9951], \"f0d1\", \"M0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L557.3 192c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64L64 448c-35.3 0-64-28.7-64-64L0 96zM512 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM192 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faChalkboardUser = {\n prefix: 'fas',\n iconName: 'chalkboard-user',\n icon: [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M192 384c53 0 96 43 96 96 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32 0-53 43-96 96-96l96 0zM544 32c35.3 0 64 28.7 64 64l0 288c0 33.1-25.2 60.4-57.5 63.7l-6.5 .3-211.1 0c-5.1-24.2-16.3-46.1-32.1-64l51.2 0 0-32c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 32 32 0 0-288-352 0 0 57.3c-14.8-6-31-9.3-48-9.3-5.4 0-10.8 .3-16 1l0-49c0-35.3 28.7-64 64-64l352 0zM144 352a80 80 0 1 1 0-160 80 80 0 1 1 0 160z\"]\n};\nvar faChalkboardTeacher = faChalkboardUser;\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M286 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78 512c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3l59.4 0zM585.7 105.9c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5L522.1 274.9c-4.2 5.7-10.7 9.4-17.7 9.8s-14-2.2-18.9-7.3l-46.4-48c-9.2-9.5-9-24.7 .6-33.9 9.5-9.2 24.7-8.9 33.9 .6l26.5 27.4 85.6-117.7zM256.3 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [129399], \"f504\", \"M352 128c0 70.7-57.3 128-128 128-57.2 0-105.6-37.5-122-89.3-1.1 1.3-2.2 2.6-3.5 3.8-15.8 15.8-38.8 20.7-53.6 22.1-8.1 .8-14.6-5.7-13.8-13.8 1.4-14.7 6.3-37.8 22.1-53.6 5.8-5.8 12.6-10.1 19.6-13.4-7-3.2-13.8-7.6-19.6-13.4-15.8-15.8-20.7-38.8-22.1-53.6-.8-8.1 5.7-14.6 13.8-13.8 14.7 1.4 37.8 6.3 53.6 22.1 4.8 4.8 8.7 10.4 11.7 16.1 21.3-41.2 64.3-69.4 113.8-69.4 70.7 0 128 57.3 128 128zM144 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96c-8.8 0-16 7.2-16 16zm-1.4 211l67 50.2c8.5 6.4 20.3 6.4 28.8 0l67-50.2c6.5-4.9 15.2-6.2 22.6-2.8 61.4 28.2 104.1 90.2 104.1 162.1 0 16.4-13.3 29.7-29.7 29.7L45.7 512c-16.4 0-29.7-13.3-29.7-29.7 0-72 42.7-134 104.1-162.1 7.4-3.4 16.1-2.1 22.6 2.8z\"]\n};\nvar faPlantWilt = {\n prefix: 'fas',\n iconName: 'plant-wilt',\n icon: [512, 512, [], \"e5aa\", \"M344-32c66.3 0 120 53.7 120 120l0 6.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3c-40.7-36.8-66-83.7-66-111.7 0-35.6 18.7-64.7 48-76.9l0-6.2c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 424c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 38.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3C25.3 405.9 0 359 0 331.1 0 295.4 18.7 266.4 48 254.2L48 216c0-66.3 53.7-120 120-120 20.2 0 39.3 5 56 13.8L224 88c0-66.3 53.7-120 120-120z\"]\n};\nvar faWeightScale = {\n prefix: 'fas',\n iconName: 'weight-scale',\n icon: [448, 512, [\"weight\"], \"f496\", \"M116.6 192c-3-10.1-4.6-20.9-4.6-32 0-61.9 50.1-112 112-112S336 98.1 336 160c0 11.1-1.6 21.9-4.6 32l-71 0 24.6-44.3c6.4-11.6 2.3-26.2-9.3-32.6s-26.2-2.3-32.6 9.3l-37.6 67.7-88.8 0zM128 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-64 0C293.3 11.9 260 0 224 0s-69.3 11.9-96 32z\"]\n};\nvar faWeight = faWeightScale;\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [256, 512, [], \"f0da\", \"M249.3 235.8c10.2 12.6 9.5 31.1-2.2 42.8l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S64.5 396.9 64.5 384l0-256c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128 2.2 2.4z\"]\n};\nvar faFlorinSign = {\n prefix: 'fas',\n iconName: 'florin-sign',\n icon: [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0-45.1 108.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32l0 3.2C119 50 64 114.6 64 192l0 21.7c0 48.1-16.4 94.8-46.4 132.4L7.8 358.3C2.7 364.6 0 372.4 0 380.5 0 400.1 15.9 416 35.5 416l376.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C400.4 308.5 384 261.8 384 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32zM162 464c7.1 27.6 32.2 48 62 48s54.9-20.4 62-48l-124 0z\"]\n};\nvar faLariSign = {\n prefix: 'fas',\n iconName: 'lari-sign',\n icon: [384, 512, [], \"e1c8\", \"M144 0c13.3 0 24 10.7 24 24l0 41.5c7.9-1 15.9-1.5 24-1.5s16.1 .5 24 1.5L216 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 54c58.9 23.8 103.2 76 116.2 139.7 3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.7-33.2-26.4-61.8-53.4-80.2l0 81.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-101.8c-7.8-1.5-15.8-2.2-24-2.2s-16.2 .8-24 2.2L168 232c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-81.8c-33.8 23-56 61.9-56 105.8 0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 350 0 305.2 0 256 0 175.4 49.6 106.4 120 78l0-54c0-13.3 10.7-24 24-24z\"]\n};\nvar faMillSign = {\n prefix: 'fas',\n iconName: 'mill-sign',\n icon: [384, 512, [], \"e1ed\", \"M297-22.2c12.3 5 18.2 19 13.2 31.3l-29 71.3C338.8 85.1 384 133.3 384 192l0 208c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-208c0-26.5-21.5-48-48-48-6.4 0-12.5 1.2-18 3.5l-30 73.8 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-21.2-57.8 142.2c-5 12.3-19 18.2-31.3 13.2s-18.2-19-13.2-31.3L160 251.3 160 192c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 208c0 17.7-14.3 32-32 32S0 417.7 0 400L0 112c0-17.7 14.3-32 32-32 10.9 0 20.5 5.4 26.3 13.7 16-8.7 34.3-13.7 53.7-13.7 31.3 0 59.7 12.9 80 33.6 9.6-9.8 20.9-17.8 33.5-23.5L265.8-9c5-12.3 19-18.2 31.3-13.2z\"]\n};\nvar faPersonSnowboarding = {\n prefix: 'fas',\n iconName: 'person-snowboarding',\n icon: [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M424.5 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM166.4 45.5c10.2-14.4 30.2-17.9 44.6-7.7l272 192c14.4 10.2 17.9 30.2 7.7 44.6s-30.2 17.9-44.6 7.7l-92.2-65.1-62.2 53.3 32.1 26.7c18.2 15.2 28.8 37.7 28.8 61.5l0 87.8 77.5 15.2c6.2 1.2 12.6 .9 18.7-.8l41.2-11.8c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-41.2 11.8c-13.4 3.8-27.4 4.4-41.1 1.8L87.1 443.3c-17.2-3.4-33-11.8-45.3-24.1L15.5 393c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l26.2 26.2c5.6 5.6 12.8 9.4 20.6 11l64.2 12.6 0-123.7c0-27.7 12-54 32.8-72.2l69-60.4-88.2-62.3C159.6 80 156.2 60 166.4 45.5zm58.1 375.7l64 12.5 0-75.3c0-4.7-2.1-9.3-5.8-12.3l-58.2-48.5 0 123.6z\"]\n};\nvar faSnowboarding = faPersonSnowboarding;\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [\"teletype\"], \"f1e4\", \"M450.2 266.8c15.8 6.5 34.1 .3 42.6-14.6l2.4-4.2c27.9-48.9 23.6-118.8-31.3-154.5-126-82-289.6-82-415.6 0-54.9 35.7-59.3 105.7-31.3 154.5l2.4 4.2c8.5 14.9 26.7 21.1 42.6 14.6l81.9-33.7c13.9-5.7 22.4-19.9 20.9-34.9l-5.1-51c62.5-21 130.8-19.9 192.6 3.3l-4.8 47.7c-1.5 15 7 29.2 20.9 34.9l81.9 33.7zM32 352a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm96 0a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM64 416a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm352 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM256 320a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm128-32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM128 448c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faTeletype = faTty;\nvar faUsersRectangle = {\n prefix: 'fas',\n iconName: 'users-rectangle',\n icon: [576, 512, [], \"e594\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm224 72a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 152c53 0 96 43 96 96l0 24c0 13.3-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24l0-24c0-53 43-96 96-96zm96-64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 272.3c-15.2 22.8-24 50.2-24 79.7l0 24c0 8.4 1.4 16.5 4.1 24l-46.8 0C89.6 400 80 390.4 80 378.7L80 368c0-50.3 38.7-91.6 88-95.7zM427.9 400c2.7-7.5 4.1-15.6 4.1-24l0-24c0-29.5-8.8-56.9-24-79.7 49.3 4.1 88 45.3 88 95.7l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-46.8 0zM96 192a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm72 416l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMobileAndroid = faMobile;\nvar faMobilePhone = faMobile;\nvar faArrowsTurnToDots = {\n prefix: 'fas',\n iconName: 'arrows-turn-to-dots',\n icon: [448, 512, [], \"e4c1\", \"M265.4-6.6c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L285.3 64 352 64c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-66.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm-82.7 272l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L162.7 400 96 400c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 481.7 0 464l0-32c0-53 43-96 96-96l66.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM320 368a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 160a64 64 0 1 1 0-128 64 64 0 1 1 0 128z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [128, 512, [10069, 10071, 61738], \"21\", \"M64 432c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40c0-22.1 17.9-40 40-40zM64 0c26.5 0 48 21.5 48 48 0 .6 0 1.1 0 1.7l-16 304c-.9 17-15 30.3-32 30.3S33 370.7 32 353.7L16 49.7c0-.6 0-1.1 0-1.7 0-26.5 21.5-48 48-48z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [512, 512, [9962], \"f51d\", \"M280-8c0-13.3-10.7-24-24-24S232-21.3 232-8l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 48-98.6 65.8C120 186.7 112 201.6 112 217.7l0 38.3-79.8 45.6C12.3 313 0 334.2 0 357.1L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-90.9c0-23-12.3-44.2-32.2-55.6L400 256 400 217.7c0-16-8-31-21.4-39.9l-98.6-65.8 0-48 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM256 320c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128S454.7 384 384 384l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [576, 512, [], \"f54b\", \"M296 192c-21.1-12.1-42.3-24.2-72-29.3l0-140.3C257.7 13 311.4 0 352 0 448 0 576 48 576 128s-119.6 96-176 96c-48 0-76-16-104-32zM128 32l48 0 0 128-48 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zM232 320c28-16 56-32 104-32 56.4 0 176 16 176 96S384 512 288 512c-40.5 0-94.3-13-128-22.4l0-140.3c29.7-5.2 50.9-17.3 72-29.4zM64 480c-35.3 0-64-28.7-64-64s28.7-64 64-64l48 0 0 128-48 0z\"]\n};\nvar faFileCircleExclamation = {\n prefix: 'fas',\n iconName: 'file-circle-exclamation',\n icon: [576, 512, [], \"e4eb\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L72 128c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 32zM416 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faMessage = {\n prefix: 'fas',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M0 352L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120 0c-5.2 0-10.2 1.7-14.4 4.8L166.4 539.2c-4.2 3.1-9.2 4.8-14.4 4.8-13.3 0-24-10.7-24-24l0-72-32 0c-53 0-96-43-96-96z\"]\n};\nvar faCommentAlt = faMessage;\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [512, 512, [127942], \"f091\", \"M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z\"]\n};\nvar faFaceDizzy = {\n prefix: 'fas',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 304a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M256-32c13.3 0 24 10.7 24 24l0 11c8.6 2.2 16.9 5.6 24.8 10.3L311 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L345 151c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L217 279c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L73 313c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L39 169c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L103 105c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9S191.6-2.3 201 7l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24zM128 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM240 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm296 40l0 11c8.6 2.2 16.9 5.6 24.8 10.3L567 199c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L601 343c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L329 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L295 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L359 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24s24 10.7 24 24zM448 384a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faEarDeaf = {\n prefix: 'fas',\n iconName: 'ear-deaf',\n icon: [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faDeaf = faEarDeaf;\nvar faDeafness = faEarDeaf;\nvar faHardOfHearing = faEarDeaf;\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [512, 512, [\"people-arrows-left-right\"], \"e068\", \"M32 64A64 64 0 1 1 160 64 64 64 0 1 1 32 64zM0 224c0-35.3 28.7-64 64-64l64 0c3.2 0 6.4 .2 9.5 .7L93.1 205.1C65 233.2 65 278.8 93.1 306.9l56 56c3.4 3.4 7 6.4 10.9 9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-120.6C12.9 332.4 0 311.7 0 288l0-64zM352 64a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm66.9 141.1l-44.4-44.4c3.1-.5 6.3-.7 9.5-.7l64 0c35.3 0 64 28.7 64 64l0 64c0 23.7-12.9 44.4-32 55.4L480 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1c3.9-2.6 7.5-5.6 10.9-9l56-56c28.1-28.1 28.1-73.7 0-101.8zM302.8 177.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S288 321.7 288 312l0-24-64 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S224 190.3 224 200l0 24 64 0 0-24c0-9.7 5.8-18.5 14.8-22.2z\"]\n};\nvar faPeopleArrowsLeftRight = faPeopleArrows;\nvar faHandsClapping = {\n prefix: 'fas',\n iconName: 'hands-clapping',\n icon: [512, 512, [], \"e1a8\", \"M344 8l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24S344-5.3 344 8zM220 10.7l32 48c7.4 11 4.4 25.9-6.7 33.3s-25.9 4.4-33.3-6.7l-32-48c-7.4-11-4.4-25.9 6.7-33.3S212.6-.3 220 10.7zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1 48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM453.3 4c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7z\"]\n};\nvar faVirusCovidSlash = {\n prefix: 'fas',\n iconName: 'virus-covid-slash',\n icon: [576, 512, [], \"e4a9\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-83-83 11.4-11.4c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-11.3 11.3-23.8-23.8c17.9-23.5 29.9-51.7 34.1-82.3l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3l23.8-23.8 11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L440.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l11.3 11.3-23.8 23.8C370.8 97.9 342.7 85.8 312 81.6l0-33.6 16 0c13.3 0 24-10.7 24-24S341.3 0 328 0L248 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L157.9 92 169.2 80.6c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L123.9 58.1 41-24.9zM113.6 232l-33.6 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3l-23.8 23.8-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.3-11.3 23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c13.4-1.8 26.4-5.2 38.7-9.9L123.5 193.3c-4.7 12.3-8 25.2-9.9 38.7z\"]\n};\nvar faCalendarDays = {\n prefix: 'fas',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM64 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faDiamondTurnRight = {\n prefix: 'fas',\n iconName: 'diamond-turn-right',\n icon: [512, 512, [\"directions\"], \"f5eb\", \"M215 17L17 215C6.1 225.9 0 240.6 0 256s6.1 30.1 17 41L215 495c10.9 10.9 25.6 17 41 17s30.1-6.1 41-17L495 297c10.9-10.9 17-25.6 17-41s-6.1-30.1-17-41L297 17C286.1 6.1 271.4 0 256 0s-30.1 6.1-41 17zM385 257l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-78.1 0c-13.3 0-24 10.7-24 24l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40c0-39.8 32.2-72 72-72l78.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"]\n};\nvar faDirections = faDiamondTurnRight;\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0 0-208zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4-118.4 0C111.2 62.7 89.3 48 64 48 28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1 8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1 59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36 35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36l-118.4 0 0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z\"]\n};\nvar faPersonHalfDress = {\n prefix: 'fas',\n iconName: 'person-half-dress',\n icon: [384, 512, [], \"e548\", \"M143.4-3.9c9.7-16.8 27.8-28.1 48.6-28.1 30.9 0 56 25.1 56 56 0 25.4-16.9 46.8-40 53.7l0 0c-5.1 1.5-10.4 2.3-16 2.3-30.9 0-56-25.1-56-56l0 0c0-10.1 2.7-19.7 7.4-27.9zM318.3 299.1L272 236.7 272 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160 0-.4 0-238.6c36.2 4.4 69.2 23.4 91.2 53l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 113l0 399c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c22-29.6 55.1-48.6 91.2-53z\"]\n};\nvar faSquarePollHorizontal = {\n prefix: 'fas',\n iconName: 'square-poll-horizontal',\n icon: [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 152c0 13.3-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24zm72 80c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l208 0zM192 360c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24z\"]\n};\nvar faPollH = faSquarePollHorizontal;\nvar faSchoolCircleXmark = {\n prefix: 'fas',\n iconName: 'school-circle-xmark',\n icon: [640, 512, [], \"e56d\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64l238.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 76c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8-78.1-50.2-161.9 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l128 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L48 160c-26.5 0-48-21.5-48-48z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [576, 512, [\"blackboard\"], \"f51b\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-256c0-35.3-28.7-64-64-64L96 64zM480 384l-64 0 0-32c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32l0 32-160 0 0-256 384 0 0 256z\"]\n};\nvar faBlackboard = faChalkboard;\nvar faUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'up-right-from-square',\n icon: [512, 512, [\"external-link-alt\"], \"f35d\", \"M290.4 19.8C295.4 7.8 307.1 0 320 0L480 0c17.7 0 32 14.3 32 32l0 160c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L400 157.3 246.6 310.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L354.7 112 297.4 54.6c-9.2-9.2-11.9-22.9-6.9-34.9zM0 176c0-44.2 35.8-80 80-80l80 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 176z\"]\n};\nvar faExternalLinkAlt = faUpRightFromSquare;\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nvar faClover = {\n prefix: 'fas',\n iconName: 'clover',\n icon: [512, 512, [], \"e139\", \"M310.4 16C346.6 16 376 45.4 376 81.7l0 5.2c0 11.2-2.7 22.3-7.8 32.2l-2.3 4.2-20.1 33.5c-1.1 1.9-1.2 3.4-1.1 4.5 .2 1.3 .9 2.7 2.1 3.9s2.6 1.9 3.9 2.1c1.1 .2 2.6 .1 4.5-1.1l33.5-20.1 4.2-2.3c10-5.1 21-7.8 32.2-7.8l5.2 0c36.2 0 65.6 29.4 65.6 65.7 0 17.4-6.9 34.1-19.2 46.4l-1.3 1.3c-3.7 3.7-3.7 9.6 0 13.3l1.3 1.3c12.3 12.3 19.2 29 19.2 46.4 0 36.2-29.4 65.6-65.6 65.6l-5.2 0c-12.8 0-25.5-3.5-36.5-10.1l-33.5-20.1c-1.9-1.1-3.4-1.2-4.5-1.1-1.3 .2-2.7 .9-3.9 2.1s-1.9 2.6-2.1 3.9c-.2 1.1-.1 2.6 1.1 4.5l20.1 33.5c6.6 11 10.1 23.6 10.1 36.5l0 5.2c0 36.2-29.4 65.6-65.6 65.6-17.4 0-34.1-6.9-46.4-19.2l-1.3-1.3c-3.7-3.7-9.6-3.7-13.3 0l-1.3 1.3c-12.3 12.3-29 19.2-46.4 19.2-36.2 0-65.6-29.4-65.7-65.6l0-5.2c0-12.8 3.5-25.5 10.1-36.5l20.1-33.5c1.1-1.9 1.2-3.4 1.1-4.5-.2-1.3-.9-2.7-2.1-3.9s-2.6-1.9-3.9-2.1c-.5-.1-1.2-.1-1.9 0l-2.5 1-33.5 20.1c-11 6.6-23.6 10.1-36.5 10.1l-5.2 0C45.4 376 16 346.6 16 310.4 16 293 22.9 276.3 35.2 264l1.3-1.3 1.2-1.5c2.1-3.1 2.1-7.2 0-10.3l-1.2-1.5-1.3-1.3C22.9 235.8 16 219.1 16 201.7 16 165.4 45.4 136 81.7 136l5.2 0c12.8 0 25.5 3.5 36.5 10.1l33.5 20.1 2.5 1c.7 .1 1.4 .1 1.9 .1 1.3-.2 2.7-.9 3.9-2.1s1.9-2.6 2.1-3.9c.1-.5 .1-1.2-.1-1.9l-1-2.5-20.1-33.5c-6.6-11-10.1-23.6-10.1-36.5l0-5.2c0-36.2 29.4-65.7 65.7-65.7 17.4 0 34.1 6.9 46.4 19.2l1.3 1.3c3.7 3.6 9.6 3.7 13.3 0l1.3-1.3 4.8-4.4C280.5 21.3 295.1 16 310.4 16z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [512, 512, [], \"f62f\", \"M64 32C28.7 32 0 60.7 0 96l0 80c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-80c0-35.3-28.7-64-64-64L64 32zm0 272c-35.3 0-64 28.7-64 64l0 48c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-48c0-35.3-28.7-64-64-64L64 304zm80-160c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zm128 0c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM80 112c17.7 0 32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24c0-17.7 14.3-32 32-32zm320 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24zM48 384l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32zm144 48c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm128 0c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm112-16c-17.7 0-32-14.3-32-32l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32z\"]\n};\nvar faBarsStaggered = {\n prefix: 'fas',\n iconName: 'bars-staggered',\n icon: [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faReorder = faBarsStaggered;\nvar faStream = faBarsStaggered;\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [576, 512, [], \"f494\", \"M0 142.1L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-240c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32l0 240c0 17.7 14.3 32 32 32s32-14.3 32-32l0-337.9c0-27.5-17.6-52-43.8-60.7L303.2 5.1c-9.9-3.3-20.5-3.3-30.4 0L43.8 81.4C17.6 90.1 0 114.6 0 142.1zM464 256l-352 0 0 64 352 0 0-64zM112 416l352 0 0-64-352 0 0 64zm352 32l-352 0 0 64 352 0 0-64z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M0 48C0 21.5 21.5 0 48 0l96 0c26.5 0 48 21.5 48 48l0 368c0 53-43 96-96 96S0 469 0 416L0 48zM240 409.6l0-271.5 48.1-48.1c18.7-18.7 49.1-18.7 67.9 0l67.9 67.9c18.7 18.7 18.7 49.1 0 67.9L240 409.6zM205.5 512l192-192 66.6 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-258.5 0zM80 64c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 64zM64 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [512, 512, [9978], \"f6bb\", \"M344.8 52.3c11.2-13.7 9.2-33.8-4.5-45s-33.8-9.2-45 4.5l-39.2 48-39.2-48C205.6-1.9 185.4-4 171.7 7.2s-15.7 31.4-4.5 45l47.4 58-202 246.9C4.5 367.1 0 379.6 0 392.6L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-39.4c0-12.9-4.5-25.5-12.7-35.5l-202-246.9 47.4-58zM256 288l112 128-224 0 112-128z\"]\n};\nvar faPersonWalkingArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-right',\n icon: [576, 512, [], \"e552\", \"M104.5 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3L73.9 227.9c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L262.3 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8L130 347.5c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zM96.6 371c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5L55.1 534.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L96.6 371zM505.5 345c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M143.3 96c-14 0-26.5 9.2-30.6 22.6L70.4 256 224 256c17.7 0 32 14.3 32 32l64 0c0-17.7 14.3-32 32-32l153.6 0-42.3-137.4C459.2 105.2 446.8 96 432.7 96L400 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l32.7 0c42.1 0 79.4 27.5 91.8 67.8l45.4 147.5c4.1 13.2 6.1 26.9 6.1 40.7l0 96c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-32-64 0 0 32c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-96c0-13.8 2.1-27.5 6.1-40.7L51.5 99.8C63.9 59.5 101.1 32 143.3 32L176 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.7 0zM64 320l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64-128 0zm416 96c17.7 0 32-14.3 32-32l0-64-128 0 0 64c0 17.7 14.3 32 32 32l64 0z\"]\n};\nvar faCirclePause = {\n prefix: 'fas',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [512, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128l0 7.4C0 142.2 4.4 148 10.1 151.7 23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6l0 55.4 512 0 0-55.4c0-6.8-4.4-12.6-10.1-16.3-13.2-8.6-21.9-23.4-21.9-40.3s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM512 416l0-64-512 0 0 64c0 17.7 14.3 32 32 32l64 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 64 0c17.7 0 32-14.3 32-32zM160 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [127873], \"f06b\", \"M321.5 68.8C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-73.3 0 34.8-59.2zm-131 0l34.8 59.2-73.3 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zm89.6-24.3l-24.1 41-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0c-48.6 0-88 39.4-88 88 0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40 0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4zM480 272l-200 0 0 208 136 0c35.3 0 64-28.7 64-64l0-144zm-248 0l-200 0 0 144c0 35.3 28.7 64 64 64l136 0 0-208z\"]\n};\nvar faMoneyBillWheat = {\n prefix: 'fas',\n iconName: 'money-bill-wheat',\n icon: [512, 512, [], \"e52a\", \"M176-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zM56 0l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 48C42.7 48 32 37.3 32 24S42.7 0 56 0zM24 72l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 120C10.7 120 0 109.3 0 96S10.7 72 24 72zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 0c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80zM400-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 112c8.8 0 16 7.2 16 16 0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M347.5 144.8c6.5 5.4 12.5 11.3 18 17.7 8.7 10.2 23.7 14 35.1 6.9l54.1-33.8c11.2-7 14.7-21.7 6.9-32.2-15.3-20.5-33.5-38.6-54.1-53.8-10.4-7.6-24.7-4.3-31.8 6.4l-35.1 52.6c-7.8 11.6-3.8 27.3 7 36.2zM327.8 41.1c8.6-12.9 2.9-30.5-12.2-34.1-19.1-4.6-39.1-7-59.6-7s-40.4 2.4-59.6 7c-15.1 3.6-20.8 21.2-12.2 34.1l40 60c5.2 7.8 14.5 11.7 23.9 11.2 5.2-.3 10.6-.3 15.8 0 9.4 .5 18.7-3.4 23.9-11.2l40-60zM50.5 103.3c-7.9 10.5-4.3 25.3 6.9 32.2l54.1 33.8c11.4 7.1 26.3 3.3 35.1-6.9 5.5-6.4 11.5-12.3 18-17.7 10.8-8.9 14.8-24.6 7-36.2L136.4 55.9c-7.1-10.7-21.5-14-31.8-6.4-20.6 15.1-38.8 33.3-54.1 53.8zm62 141.1c.8-9.9-3.3-19.9-11.8-25.1L41 182c-12.9-8-29.9-2.3-33.6 12.5-4.9 19.7-7.5 40.3-7.5 61.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-3.9 .2-7.8 .5-11.6zm287.1 0c.3 3.8 .5 7.7 .5 11.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-21.2-2.6-41.8-7.5-61.6-3.6-14.7-20.7-20.5-33.6-12.5l-59.7 37.3c-8.4 5.3-12.6 15.2-11.8 25.1zM88 352l-64 0c-13.3 0-24 10.7-24 24L0 488c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm400 0l-64 0c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304zm-80 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272zm160 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272z\"]\n};\nvar faSuitcaseMedical = {\n prefix: 'fas',\n iconName: 'suitcase-medical',\n icon: [512, 512, [\"medkit\"], \"f0fa\", \"M192 56l0 40 128 0 0-40c0-4.4-3.6-8-8-8L200 48c-4.4 0-8 3.6-8 8zm-48 8l0-8c0-30.9 25.1-56 56-56L312 0c30.9 0 56 25.1 56 56l0 424-224 0 0-416zM96 176l0 304-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l32 0 0 80zM416 480l0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-32 0zM244 208c-8.8 0-16 7.2-16 16l0 36-36 0c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l36 0 0 36c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-36 36 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-36 0 0-36c0-8.8-7.2-16-16-16l-24 0z\"]\n};\nvar faMedkit = faSuitcaseMedical;\nvar faPersonCane = {\n prefix: 'fas',\n iconName: 'person-cane',\n icon: [448, 512, [], \"e53c\", \"M232-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM144 236.7L97.7 299.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C142 132 181.7 112 224 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L304 236.7 304 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3zM392 384c-4.4 0-8 3.6-8 8 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-4.4-3.6-8-8-8z\"]\n};\nvar faGauge = {\n prefix: 'fas',\n iconName: 'gauge',\n icon: [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faDashboard = faGauge;\nvar faGaugeMed = faGauge;\nvar faTachometerAltAverage = faGauge;\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [576, 512, [], \"f658\", \"M288 33.9L96.4 175.8 254.5 293c5.3 3.9 11.2 6.9 17.5 8.7L272 464c0 5.5 .5 10.8 1.3 16L96 480c-35.3 0-64-28.7-64-64l0-239.9c0-20.3 9.6-39.4 25.9-51.4L254.5-21c9.7-7.2 21.4-11 33.5-11s23.8 3.9 33.5 11L518.1 124.7c7.2 5.3 13.1 12 17.4 19.6-2.5-.2-5-.3-7.5-.3L436.6 144 288 33.9zM320 240c0-26.5 21.5-48 48-48l160 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-224zm80 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [129520], \"f552\", \"M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 76.1-136 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-144 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-136 0 0-76.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1L128 96zM0 416l0-96 136 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 144 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 136 0 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [9211], \"f011\", \"M288 0c0-17.7-14.3-32-32-32S224-17.7 224 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L288 0zM146.3 98.4c14.5-10.1 18-30.1 7.9-44.6s-30.1-18-44.6-7.9C43.4 92.1 0 169 0 256 0 397.4 114.6 512 256 512S512 397.4 512 256c0-87-43.4-163.9-109.7-210.1-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6c49.8 34.8 82.3 92.4 82.3 157.6 0 106-86 192-192 192S64 362 64 256c0-65.2 32.5-122.9 82.3-157.6z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [512, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M488 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400zM360 128c-13.3 0-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-13.3-10.7-24-24-24zM280 248c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zM152 320c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM48 384c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faSignal5 = faSignal;\nvar faSignalPerfect = faSignal;\nvar faArrowsSpin = {\n prefix: 'fas',\n iconName: 'arrows-spin',\n icon: [512, 512, [], \"e4bb\", \"M481.7 240.1c-17.6-1.2-32.9 12-34.2 29.7-3.3 47-23.6 89.4-54.8 121L361 359c-6.9-6.9-17.2-8.9-26.2-5.2S320 366.3 320 376l0 112c0 13.3 10.7 24 24 24l112 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-35-35c41.7-42.2 68.9-98.8 73.4-161.8 1.2-17.6-12-32.9-29.7-34.2zM39 41L74 76c-41.7 42.2-68.9 98.8-73.4 161.8-1.2 17.6 12 32.9 29.7 34.2s32.9-12 34.2-29.7c3.3-47 23.6-89.4 54.8-121L151 153c6.9 6.9 17.2 8.9 26.2 5.2S192 145.7 192 136l0-112c0-13.3-10.7-24-24-24L56 0C46.3 0 37.5 5.8 33.8 14.8S32.2 34.1 39 41zm201-10.7c-1.2 17.6 12 32.9 29.7 34.2 47 3.3 89.4 23.6 121 54.8L359 151c-6.9 6.9-8.9 17.2-5.2 26.2S366.3 192 376 192l112 0c13.3 0 24-10.7 24-24l0-112c0-9.7-5.8-18.5-14.8-22.2S477.9 32.2 471 39L436 74c-42.2-41.7-98.8-68.9-161.8-73.4-17.6-1.2-32.9 12-34.2 29.7zM41 473l35-35c42.2 41.7 98.8 68.9 161.8 73.4 17.6 1.2 32.9-12 34.2-29.7s-12-32.9-29.7-34.2c-47-3.3-89.4-23.6-121-54.8L153 361c6.9-6.9 8.9-17.2 5.2-26.2S145.7 320 136 320L24 320c-13.3 0-24 10.7-24 24L0 456c0 9.7 5.8 18.5 14.8 22.2S34.1 479.8 41 473z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [576, 512, [], \"f595\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM292.7 320c5.6 0 10.7 2.9 13.6 7.6L394.6 471c1.3 2.1 0 4.9-2.4 5.2-16.1 2.5-32.4 3.7-48.7 3.7l-38.1 0c-5.6 0-10.7-2.9-13.6-7.6l-79-128.4c-6-9.8 0-22.6 11.5-23.3 6.7-.4 13.4-.6 20.2-.6l48.3 0zM459.3 465.9c-6.4 1-12.7-1.9-16.1-7.4L374.1 346.1c-6.7-10.9 1.5-24.7 14.2-22.9 1.3 .2 2.6 .4 3.8 .6l136.4 21c27.3 4.2 47.4 27.7 47.4 55.3s-20.1 51.1-47.4 55.3l-69.2 10.6zM138.7 336c6.7-1.5 13.6 1.4 17.2 7.2l68.9 112c6.6 10.7-1.2 24.4-13.8 23.1-13-1.4-25.9-3.5-38.6-6.5L31.2 439.2C12.9 435 0 418.7 0 400s12.9-35 31.2-39.2L138.7 336z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [384, 512, [], \"f2a1\", \"M80 144a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 136c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0 56c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm248-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm56 0c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zM304 232a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0 104a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-192a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faBasketShopping = {\n prefix: 'fas',\n iconName: 'basket-shopping',\n icon: [576, 512, [\"shopping-basket\"], \"f291\", \"M288 0c6.6 0 12.9 2.7 17.4 7.5l144 152 .5 .5 78.1 0c17.7 0 32 14.3 32 32 0 14.5-9.6 26.7-22.8 30.7L491.1 429.9c-6.5 29.3-32.5 50.1-62.5 50.1l-281.3 0c-30 0-56-20.8-62.5-50.1l-46-207.2c-13.2-3.9-22.8-16.2-22.8-30.7 0-17.7 14.3-32 32-32l78.1 0 .5-.5 144-152C275.1 2.7 281.4 0 288 0zm0 58.9L192.2 160 383.8 160 288 58.9zM208 264c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112zm80-24c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm128 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112z\"]\n};\nvar faShoppingBasket = faBasketShopping;\nvar faBridge = {\n prefix: 'fas',\n iconName: 'bridge',\n icon: [512, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-94c0-38.8 26.4-72.6 64-82l0-112-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [576, 512, [128748], \"f5af\", \"M386.6 193.1L265.9 3.7c-4.8-7.6-12.6-12.8-21.4-14.3l-43.1-7.6c-10.8-1.9-20.2 7.3-18.6 18.1l24 161.6-105-18.5-33.8-61.8C64.5 74.7 58.2 70.2 51.1 69L34 66c-9.8-1.7-18.8 5.9-18.8 15.8l.6 106.3c.2 30.9 22.4 57.3 52.9 62.7l13.5 2.4 0 0 417.6 73.6c30.5 5.4 59.5-15 64.9-45.4s-15-59.5-45.4-64.9L386.6 193.1zM224 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm131.2-15.3a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M96 0C60.7 0 32 28.7 32 64s28.7 64 64 64l48 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 48 0c35.3 0 64-28.7 64-64S291.3 0 256 0L96 0zm0 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 424c0-13.3 10.7-24 24-24l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm48-160a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3 45.4-24.2 107.7-38.3 174.9-38.3s129.5 14.1 174.9 38.3c12.8-11.6 17.1-22.5 17.1-30.3 0-12.3-10.8-32-47.9-50.6-35.2-17.6-86.1-29.4-144.1-29.4s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7 33.2 12.4 75.7 20.3 122.9 20.3s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208C0 158.4 39.4 122.2 83.3 100.2 129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8-45.9 22.9-107 36.2-172.7 36.2S129.1 434.7 83.3 411.8C39.4 389.8 0 353.6 0 304l0-96z\"]\n};\nvar faAquarius = {\n prefix: 'fas',\n iconName: 'aquarius',\n icon: [576, 512, [], \"e845\", \"M401.7 291.4c9-4.5 19.6-4.5 28.6 0l128 64c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L416 355.8 302.3 412.6c-9 4.5-19.6 4.5-28.6 0L160 355.8 46.3 412.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l128-64c9-4.5 19.6-4.5 28.6 0L288 348.2 401.7 291.4zm3.4-193.5c8.2-3 17.3-2.5 25.2 1.5l128 64c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L416 163.8 302.3 220.6c-9 4.5-19.6 4.5-28.6 0L160 163.8 46.3 220.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l128-64 3.4-1.5c8.2-3 17.3-2.5 25.2 1.5l113.7 56.8 113.7-56.8 3.4-1.5z\"]\n};\nvar faShareNodes = {\n prefix: 'fas',\n iconName: 'share-nodes',\n icon: [512, 512, [\"share-alt\"], \"f1e0\", \"M384 192c53 0 96-43 96-96s-43-96-96-96-96 43-96 96c0 5.4 .5 10.8 1.3 16L159.6 184.1c-16.9-15-39.2-24.1-63.6-24.1-53 0-96 43-96 96s43 96 96 96c24.4 0 46.6-9.1 63.6-24.1L289.3 400c-.9 5.2-1.3 10.5-1.3 16 0 53 43 96 96 96s96-43 96-96-43-96-96-96c-24.4 0-46.6 9.1-63.6 24.1L190.7 272c.9-5.2 1.3-10.5 1.3-16s-.5-10.8-1.3-16l129.7-72.1c16.9 15 39.2 24.1 63.6 24.1z\"]\n};\nvar faShareAlt = faShareNodes;\nvar faPersonCircleExclamation = {\n prefix: 'fas',\n iconName: 'person-circle-exclamation',\n icon: [640, 512, [], \"e53f\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M128 32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3 13.7-22.8 22.5-48.2 25.8-74.6L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6 17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z\"]\n};\nvar faKipSign = {\n prefix: 'fas',\n iconName: 'kip-sign',\n icon: [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 168-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4 171.2 146.7c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L173.2 280 352 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L173.2 232 340.8 88.3z\"]\n};\nvar faHardDrive = {\n prefix: 'fas',\n iconName: 'hard-drive',\n icon: [448, 512, [128436, \"hdd\"], \"f0a0\", \"M64 32C28.7 32 0 60.7 0 96L0 260.1C18.1 247.4 40.2 240 64 240l320 0c23.8 0 45.9 7.4 64 20.1L448 96c0-35.3-28.7-64-64-64L64 32zM448 352c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64zM224 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faHdd = faHardDrive;\nvar faRankingStar = {\n prefix: 'fas',\n iconName: 'ranking-star',\n icon: [576, 512, [], \"e561\", \"M321.8 54.1L298.2 6.3c-3.9-8.3-16.1-8.6-20.4 0l-23.6 47.8-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-26.5 0-48 21.5-48 48l0 160c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0zM48 320c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-64 0zM416 432l0 32c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-64 0c-26.5 0-48 21.5-48 48z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm-30.5 56l61 0c9.7 0 17.5 7.8 17.5 17.5 0 4.2-1.5 8.2-4.2 11.4l-27.4 32 31 115.1 .6 0 34.6-138.5c2.2-8.7 11.1-14 19.5-10.8 61.9 23.6 105.9 83.6 105.9 153.8 0 15.1-12.3 27.4-27.4 27.4L43.4 512c-15.1 0-27.4-12.3-27.4-27.4 0-70.2 44-130.2 105.9-153.8 8.4-3.2 17.3 2.1 19.5 10.8l34.6 138.5 .6 0 31-115.1-27.4-32c-2.7-3.2-4.2-7.2-4.2-11.4 0-9.7 7.8-17.5 17.5-17.5z\"]\n};\nvar faEllipsis = {\n prefix: 'fas',\n iconName: 'ellipsis',\n icon: [448, 512, [\"ellipsis-h\"], \"f141\", \"M0 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm168 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm224-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faEllipsisH = faEllipsis;\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [576, 512, [], \"e071\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-58.6-58.6c1.1-4 1.6-8.2 1.6-12.5l0-151.2c-12.5 4.6-26.1 7.2-40.5 7.2-8.1 0-15.9-.8-23.5-2.4l0 66.4-30.2 0-137.5-137.5c2.9-3.6 5.5-7.4 7.6-11.5 11.6 22 34.7 37 61.3 37 26.8 0 49.8-15.1 61.4-37.1 11.4 22.1 34.5 37.1 60.8 37.1 45.6 0 78.4-43.7 65.6-87.5L513.8 72.3C506.8 48.4 484.9 32 460 32L116 32c-5.5 0-10.8 .8-15.9 2.3L41-24.9zM151.5 221.3L48.7 118.6 38.9 152.5c-12.8 43.7 20 87.5 65.6 87.5 18.1 0 34.7-7.1 47-18.7zM410.2 480l-128-128-154.2 0 0-66.4c-7.6 1.6-15.5 2.4-23.5 2.4-14.4 0-28-2.6-40.5-7.2L64 432c0 26.5 21.5 48 48 48l298.2 0z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [62101, 62785, \"percentage\"], \"25\", \"M192 128a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM448 384a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM438.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-384 384c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l384-384z\"]\n};\nvar faPercentage = faPercent;\nvar faFileZipper = {\n prefix: 'fas',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 72c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 48C74.7 48 64 58.7 64 72zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm64 72l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faDisplay = {\n prefix: 'fas',\n iconName: 'display',\n icon: [512, 512, [], \"e163\", \"M448 96l0 256-384 0 0-256 384 0zM64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M174.9 272c10.7 0 20.7 5.3 26.6 14.2l11.8 17.8 26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0 11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0zm278.6-12c5.6-4.9 13.9-5.3 19.9-.9s8.3 12.4 5.3 19.3L440.3 368 496 368c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.3-12.4-5.3-19.3l38.5-89.7-55.8 0c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112zM144 360a48 48 0 1 0 0 96 48 48 0 1 0 0-96zM483.8 .4c6.5-1.1 13.1 .4 18.5 4.4 6.1 4.5 9.7 11.7 9.7 19.2l0 152-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6l0-49.3-112 33.6 0 110.2-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6L304 72c0-10.6 7-20 17.1-23l160-48 2.7-.6zM188.9 0C226 0 256 30 256 67.1l0 6.1c0 56.1-75.2 112.1-110.3 135.3-10.8 7.1-24.6 7.1-35.4 0-35.1-23.1-110.3-79.2-110.3-135.3l0-6.1C0 30 30 0 67.1 0 88.2 0 108 9.9 120.7 26.8l7.3 9.8 7.3-9.8C148 9.9 167.8 0 188.9 0z\"]\n};\nvar faHeartMusicCameraBolt = faIcons;\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M0 16C0-10.5 21.5-32 48-32l160 0c26.5 0 48 21.5 48 48l0 24-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 24c0 26.5-21.5 48-48 48L48 544c-26.5 0-48-21.5-48-48L0 16z\"]\n};\nvar faMapLocationDot = {\n prefix: 'fas',\n iconName: 'map-location-dot',\n icon: [640, 512, [\"map-marked-alt\"], \"f5a0\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM512 224c-66.3 0-120 52.8-120 117.9 0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9zM472 344a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"]\n};\nvar faMapMarkedAlt = faMapLocationDot;\nvar faHeartCrack = {\n prefix: 'fas',\n iconName: 'heart-crack',\n icon: [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M133.1 32c17.3 0 34.2 3.4 49.9 9.7l54.8 85.2-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.4 60.6C319.6 42.3 348.6 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32z\"]\n};\nvar faHeartBroken = faHeartCrack;\nvar faCow = {\n prefix: 'fas',\n iconName: 'cow',\n icon: [640, 512, [128004], \"f6c8\", \"M96 224l0 192c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21 22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L144 64C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4 31.8 0 57.6-25.8 57.6-57.6L72 184c0-24.3 12.1-45.8 30.5-58.9-4.2 10.8-6.5 22.6-6.5 34.9l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6 0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [\"feed\"], \"f09e\", \"M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFeed = faRss;\nvar faMagnifyingGlass = {\n prefix: 'fas',\n iconName: 'magnifying-glass',\n icon: [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"]\n};\nvar faSearch = faMagnifyingGlass;\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [640, 512, [], \"f6c3\", \"M480 0c14.6 0 28.8 1.6 42.5 4.7 7.4 1.7 13 7.8 13.9 15.4s-3 14.9-9.8 18.3c-45.4 22.6-76.6 69.5-76.6 123.6 0 76.2 61.8 138 138 138 3.7 0 7.4-.1 11.1-.4 7.6-.6 14.7 3.6 17.8 10.6s1.5 15.1-3.9 20.4c-26 25-59.1 42.7-95.9 49.9-11.1-25.3-30.2-46.3-54.1-59.8-7.6-63.4-61.6-112.6-127.1-112.6-11.2 0-22.1 1.5-32.5 4.2-4.8-4.2-9.9-8.2-15.2-11.8-.1-2.8-.2-5.6-.2-8.4 0-106 86-192 192-192zm-.1 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96 0-47.6 34.6-87 80-94.6-.4-52.8 42.9-97.3 96-97.3 34.9 0 65.4 18.6 82.2 46.4 13-9.1 28.8-14.4 45.8-14.4 44.2 0 80 35.8 80 80 0 5.9-.6 11.7-1.9 17.2 37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faBoxesStacked = {\n prefix: 'fas',\n iconName: 'boxes-stacked',\n icon: [512, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M224 0l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 5.5-.7 10.9-2 16l-252 0c-1.3-5.1-2-10.5-2-16l0-128c0-35.3 28.7-64 64-64l32 0zm96 512c-11.2 0-21.8-2.9-31-8 9.5-16.5 15-35.6 15-56l0-128c0-20.4-5.5-39.5-15-56 9.2-5.1 19.7-8 31-8l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64l-128 0zM0 320c0-35.3 28.7-64 64-64l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 320z\"]\n};\nvar faBoxes = faBoxesStacked;\nvar faBoxesAlt = faBoxesStacked;\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [448, 512, [], \"f126\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 70.7 176 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-176 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8c-22.4 31.4-35.5 69.8-35.5 111.2 0 106 86 192 192 192 41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3c22.4-31.4 35.5-69.8 35.5-111.2 0-106-86-192-192-192-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faCancel = faBan;\nvar faJugDetergent = {\n prefix: 'fas',\n iconName: 'jug-detergent',\n icon: [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72S74.7 48 88 48l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M204.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 112 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-96 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9z\"]\n};\nvar faMailReply = faReply;\nvar faSunPlantWilt = {\n prefix: 'fas',\n iconName: 'sun-plant-wilt',\n icon: [640, 512, [], \"e57a\", \"M160 0c-5.5 0-10.6 2.8-13.5 7.4l-1.1 2.1-24.8 55.4-56.7-21.7c-5.9-2.2-12.5-.8-17 3.7S41 58 43.2 63.9l21.7 56.7-55.4 24.8C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8-21.7 56.7c-2.2 5.9-.8 12.5 3.7 17s11.1 5.9 17 3.7l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.8 21.7c5.9 2.2 12.5 .8 17-3.7s5.9-11.1 3.7-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7 .7-2.2c1.2-5.3-.4-10.9-4.3-14.8s-9.5-5.5-14.8-4.3l-2.2 .7-56.8 21.7-24.8-55.4C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm376 16l0 53.4c-14.8 7.7-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.6-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176-424 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-272c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [576, 512, [], \"e05a\", \"M408 16c0-13.3-10.7-24-24-24S360 2.7 360 16l0 23.4c-13.9 5.3-26.9 13.5-38.2 24.5L305 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-10 10-20 20-30.1 30.1L177 175c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-11 11.3-19.2 24.3-24.5 38.2L48 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l16.3 0c1.3 18.3 7.1 36.4 17.4 52.4L71 439c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l10.6-10.6c16 10.3 34.1 16.1 52.4 17.4l0 16.3c0 13.3 10.7 24 24 24s24-10.7 24-24l0-23.4c13.9-5.3 26.9-13.5 38.2-24.5L271 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c10-10 20-20 30.1-30.1L399 337c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c11-11.3 19.2-24.3 24.5-38.2l23.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16.3 0c-1.3-18.3-7.1-36.4-17.4-52.4L505 73c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L460.4 49.7c-16-10.3-34.1-16.1-52.4-17.4L408 16zM160 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM272 240a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-112a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFloppyDisk = {\n prefix: 'fas',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm32 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSave = faFloppyDisk;\nvar faToiletsPortable = {\n prefix: 'fas',\n iconName: 'toilets-portable',\n icon: [512, 512, [], \"e584\", \"M64 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16C0 28.7 28.7 0 64 0zM0 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24S0 501.3 0 488L0 128zM128 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24zM352 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16c0-35.3 28.7-64 64-64zM288 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-360zM416 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24z\"]\n};\nvar faO = {\n prefix: 'fas',\n iconName: 'o',\n icon: [448, 512, [111], \"4f\", \"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256a224 224 0 1 1 -448 0 224 224 0 1 1 448 0z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [384, 512, [128275], \"f09c\", \"M128 96c0-35.3 28.7-64 64-64 31.7 0 58 23 63.1 53.3 2.9 17.4 19.4 29.2 36.9 26.3s29.2-19.4 26.3-36.9C308.1 14.1 255.5-32 192-32 121.3-32 64 25.3 64 96l0 64c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-192 0 0-64z\"]\n};\nvar faEarListen = {\n prefix: 'fas',\n iconName: 'ear-listen',\n icon: [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M379.6 .3c-8.9 1.2-17.2 6.2-22.4 14.1-6.8 10.4-7 24.1-.4 34.6 5.6 8.9 15.5 12.7 23.8 18.5 7.5 5.2 17.6 13.2 27.7 24.2 20 21.7 39.5 54.3 39.5 100.3 0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7-13.9-15.1-27.8-26.1-38.3-33.3-11-7.6-23.5-16.6-37.6-14.7zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zM0 480a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zM240 208c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faAssistiveListeningSystems = faEarListen;\nvar faCodePullRequest = {\n prefix: 'fas',\n iconName: 'code-pull-request',\n icon: [512, 512, [], \"e13c\", \"M328 24c0-9.7-5.8-18.5-14.8-22.2S293.9 .2 287 7L231 63c-9.4 9.4-9.4 24.6 0 33.9l56 56c6.9 6.9 17.2 8.9 26.2 5.2S328 145.7 328 136l0-24 24 0c17.7 0 32 14.3 32 32l0 214.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3L448 144c0-53-43-96-96-96l-24 0 0-24zM72 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm56 73.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S16 35.8 16 80c0 32.8 19.7 61 48 73.3l0 205.3c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-205.3zM72 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm344-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0 160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [128128], \"f54c\", \"M416 427.4c58.5-44 96-111.6 96-187.4 0-132.5-114.6-240-256-240S0 107.5 0 240c0 75.8 37.5 143.4 96 187.4L96 464c0 26.5 21.5 48 48 48l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 64 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c26.5 0 48-21.5 48-48l0-36.6zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faMarsStrokeUp = {\n prefix: 'fas',\n iconName: 'mars-stroke-up',\n icon: [384, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M192 256a112 112 0 1 0 0 224 112 112 0 1 0 0-224zM16 368c0-86.3 62.1-158.1 144.1-173.1-.1-.9-.1-1.9-.1-2.9l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-61.4-28 22.4c-13.8 11-33.9 8.8-45-5s-8.8-33.9 5-45l80-64c11.7-9.3 28.3-9.3 40 0l80 64c13.8 11 16 31.2 5 45s-31.2 16-45 5l-28-22.4 0 61.4 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 1 0 1.9-.1 2.9 82 15 144.1 86.8 144.1 173.1 0 97.2-78.8 176-176 176S16 465.2 16 368z\"]\n};\nvar faMarsStrokeV = faMarsStrokeUp;\nvar faFireFlameSimple = {\n prefix: 'fas',\n iconName: 'fire-flame-simple',\n icon: [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6 0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5 0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"]\n};\nvar faBurn = faFireFlameSimple;\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [448, 512, [127794], \"f1bb\", \"M224-32c7 0 13.7 3.1 18.3 8.5l136 160c6.1 7.1 7.4 17.1 3.5 25.6S369.4 176 360 176l-24.9 0 75.2 88.5c6.1 7.1 7.4 17.1 3.5 25.6S401.4 304 392 304l-38.5 0 88.8 104.5c6.1 7.1 7.4 17.1 3.5 25.6S433.4 448 424 448l-168 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-168 0c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L94.5 304 56 304c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L112.9 176 88 176c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6l136-160C210.3-28.9 217-32 224-32z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [576, 512, [], \"f75f\", \"M176 288C96.5 288 32 223.5 32 144S96.5 0 176 0c27.2 0 52.6 7.5 74.3 20.6 20.1-13 44-20.6 69.7-20.6 47.4 0 88.7 25.7 110.9 64l1.1 0c61.9 0 112 50.1 112 112 0 60.3-47.6 109.4-107.2 111.9-22.6 20-52.3 32.1-84.8 32.1-32.5 0-62.1-12.1-84.7-32L176 288zM512 392c0 13.3-10.7 24-24 24L24 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l464 0c13.3 0 24 10.7 24 24zM88 464l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm176 0l288 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faS = {\n prefix: 'fas',\n iconName: 's',\n icon: [320, 512, [115], \"53\", \"M0 157.5C0 88.2 56.2 32 125.5 32L272 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L125.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61L210.1 230C272.9 237.9 320 291.2 320 354.5 320 423.8 263.8 480 194.5 480L48 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-31-23.1-57.2-53.9-61L109.9 282C47.1 274.1 0 220.8 0 157.5z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9-.1 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5c59.8-10.8 105.1-63.1 105.1-126 0-37-15.7-70.4-40.8-93.7-7-6.5-6.5-18.6 1-24.4 34-26.3 55.8-67.5 55.8-113.9 0-16.8-2.9-33-8.2-48-4.6-13 10.2-30 21.4-22 53.5 38 92.7 94.8 107.8 160.7 .5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6 .1 3.3 .2 6.6 .2 10 0 17.5-1.7 34.7-4.8 51.3-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9-44.5 89.5-136.9 151-243.7 151S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3-3.2-16.6-4.8-33.8-4.8-51.3 0-3.3 .1-6.7 .2-10 .1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9 15.2-66 54.3-122.8 107.8-160.7 11.3-8 26 8.9 21.4 22-5.3 15-8.2 31.2-8.2 48 0 46.3 21.9 87.5 55.8 113.9 7.5 5.8 8 17.9 1 24.4-25.1 23.4-40.8 56.7-40.8 93.7 0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"]\n};\nvar faPersonHiking = {\n prefix: 'fas',\n iconName: 'person-hiking',\n icon: [448, 512, [\"hiking\"], \"f6ec\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM128 173.6c0-34 27.6-61.6 61.6-61.6 20.3 0 39.7 8.1 54 22.4l48.2 48.2c6 6 14.1 9.4 22.6 9.4l37.5 0c5.8 0 11.3 1.6 16 4.3l0-76.3c0-13.3 10.7-24 24-24s24 10.7 24 24l0 400c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-268.3c-4.7 2.7-10.2 4.3-16 4.3l-37.5 0c-25.5 0-49.9-10.1-67.9-28.1l-6.6-6.6 0 109.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-101zm-4.8 203.7c2.3 2.3 4.7 4.4 7.1 6.5l44.9 38.5c-3.6 8.4-8.5 16.3-14.4 23.4L88.6 532.5c-11.3 13.6-31.5 15.4-45.1 4.1s-15.4-31.5-4.1-45.1l72.3-86.7c2.6-3.1 4.5-6.6 5.8-10.4l5.7-17.1zM0 160c0-35.3 28.7-64 64-64 17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96z\"]\n};\nvar faHiking = faPersonHiking;\nvar faArrowsUpToLine = {\n prefix: 'fas',\n iconName: 'arrows-up-to-line',\n icon: [448, 512, [], \"e4c2\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l384 0c17.7 0 32-14.3 32-32S433.7 0 416 0L32 0zm86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L64 237.3 64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zm256 0c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 242.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [640, 512, [9891], \"f227\", \"M288 32c0-17.7 14.3-32 32-32L448 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S0 401.2 0 304 78.8 128 176 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm160 64c-6.8 0-13.4-.4-20-1.1 23.6-18.9 43.3-42.5 57.6-69.4 43.3-15.5 74.4-56.9 74.4-105.5 0-25.2-8.3-48.5-22.4-67.2 7.1 2.1 14.6 3.2 22.4 3.2 17 0 32.7-5.3 45.7-14.3 11.7 23.6 18.3 50.2 18.3 78.3 0 97.2-78.8 176-176 176zM528 157.3L528 32c0-11.4-2.4-22.2-6.7-32L608 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-48 48z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l21.7-21.7 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 7.8-7.8c19.4-19.4 45.6-30.2 73-30.2 57 0 103.2 46.2 103.2 103.2 0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0-89 89c-9.4 9.4-24.6 9.4-33.9 0S-2.3 480.4 7 471l89-89z\"]\n};\nvar faPaintbrush = {\n prefix: 'fas',\n iconName: 'paintbrush',\n icon: [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M480.5 10.3L259.1 158c-29.1 19.4-47.6 50.9-50.6 85.3 62.3 12.8 111.4 61.9 124.3 124.3 34.5-3 65.9-21.5 85.3-50.6L565.7 95.5c6.7-10.1 10.3-21.9 10.3-34.1 0-33.9-27.5-61.4-61.4-61.4-12.1 0-24 3.6-34.1 10.3zM288 400c0-61.9-50.1-112-112-112S64 338.1 64 400c0 3.9 .2 7.8 .6 11.6 1.8 17.5-10.2 36.4-27.8 36.4L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112z\"]\n};\nvar faPaintBrush = faPaintbrush;\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [384, 512, [9906], \"f22c\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-1 0-1.9-.1-2.9z\"]\n};\nvar faSquarePhoneFlip = {\n prefix: 'fas',\n iconName: 'square-phone-flip',\n icon: [448, 512, [\"phone-square-alt\"], \"f87b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm232 96.7l2.8 .8c32.3 8.8 59.9 40.1 51.8 78.2-18.5 87.5-87.4 156.3-174.9 174.9-38.1 8.1-69.4-19.5-78.2-51.8l-.8-2.8c-2.7-9.8 2.4-20.1 11.8-24l48.7-20.3c8.3-3.4 17.8-1.1 23.5 5.9l19.3 23.6c35.1-17.4 63.4-46.6 79.6-82.4l-22.1-18c-6.9-5.7-9.3-15.2-5.9-23.5l20.3-48.7c3.9-9.4 14.2-14.4 24-11.8z\"]\n};\nvar faPhoneSquareAlt = faSquarePhoneFlip;\nvar faFaceGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm125.8-91.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zm4-352c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1 0 10.2 7.4 18.8 16.7 23 27.9 12.5 47.3 40.5 47.3 73 0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4-1.5-1.1-2.9-2.3-4.3-3.5-17-14.7-27.7-36.4-27.7-60.5 0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9-18.1 40.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7 0-107.5 85.2-195.2 191.8-199.1l.2-.1 64 0c41.7 0 83.4 12.1 117.2 25.7 1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faBowlFood = {\n prefix: 'fas',\n iconName: 'bowl-food',\n icon: [512, 512, [], \"e4c6\", \"M0 176c0-35.3 28.7-64 64-64 .5 0 1.1 0 1.6 0 7.4-36.5 39.7-64 78.4-64 15 0 29 4.1 40.9 11.2 13.3-25.7 40.1-43.2 71.1-43.2s57.8 17.6 71.1 43.2c12-7.1 26-11.2 40.9-11.2 38.7 0 71 27.5 78.4 64 .5 0 1.1 0 1.6 0 35.3 0 64 28.7 64 64 0 11.7-3.1 22.6-8.6 32L8.6 208C3.1 198.6 0 187.7 0 176zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"]\n};\nvar faSquareVirus = {\n prefix: 'fas',\n iconName: 'square-virus',\n icon: [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm160 80c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM192 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [640, 512, [127782], \"f743\", \"M254.9 448.2c4.2-12.6 17.8-19.4 30.3-15.2 12.6 4.2 19.4 17.8 15.2 30.4l-21.4 64.1c-4.2 12.6-17.8 19.4-30.4 15.2s-19.4-17.8-15.2-30.3l21.4-64.2zm120 0c4.2-12.6 17.8-19.4 30.3-15.2 12.6 4.2 19.4 17.8 15.2 30.4l-21.4 64.1c-4.2 12.6-17.8 19.4-30.4 15.2s-19.4-17.8-15.2-30.3l21.4-64.2zm120 0c4.2-12.6 17.8-19.4 30.3-15.2 12.6 4.2 19.4 17.8 15.2 30.4l-21.4 64.1c-4.2 12.6-17.8 19.4-30.4 15.2s-19.4-17.8-15.2-30.3l21.4-64.2zM448.3 128c44.2 0 80 35.8 80 80 0 7.5-1.1 14.7-3 21.5 29.8 11.6 51 40.6 51 74.5 0 44.2-35.8 80-80 80l-192 0-8.2-.4c-40.3-4.1-71.8-38.2-71.8-79.6 0-39 27.9-71.5 64.9-78.5-.5-3.1-.9-6.2-.9-9.5 0-30.9 25.1-56 56-56 12.4 0 23.9 4.1 33.2 10.9 13.4-25.5 40.1-42.9 70.8-42.9zM240.3-31.8c5.3 0 10.3 2.7 13.3 7.1l47.3 70.4 83.3-16.3c5.2-1 10.6 .7 14.3 4.4 3.8 3.8 5.4 9.2 4.4 14.4l-8.6 43.8c-11.9 5.5-22.8 12.9-32.4 21.6-5.7-1-11.7-1.5-17.7-1.5-14.3 0-28 3-40.4 8.2-16.9-15-39.2-24.2-63.6-24.2-53 0-96 43-96 96 0 30.9 14.6 58.2 37.2 75.8-3.4 11.5-5.2 23.6-5.2 36.2 0 13.2 2 25.9 5.7 37.9l-2.4-3.5-83.2 16.3c-5.2 1-10.6-.7-14.3-4.4-3.8-3.8-5.4-9.2-4.4-14.4l16.3-83.3-70.4-47.4c-4.4-3-7.1-8-7.1-13.3 0-5.3 2.6-10.3 7-13.2l70.4-47.4-16.3-83.2-.2-2c-.3-4.6 1.3-9.1 4.6-12.4 3.8-3.8 9.2-5.4 14.4-4.4l83.2 16.3 47.3-70.4 1.2-1.6c3-3.5 7.4-5.5 12.1-5.5zm0 175.8c8.6 0 16.6 2.3 23.6 6.2-9.7 11.9-16.9 25.9-20.7 41.3-15 8.1-28.2 19.2-38.8 32.3-7.5-8.5-12.2-19.6-12.2-31.8 0-26.5 21.5-48 48-48z\"]\n};\nvar faArrowRightLong = {\n prefix: 'fas',\n iconName: 'arrow-right-long',\n icon: [576, 512, [\"long-arrow-right\"], \"f178\", \"M566.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L466.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l434.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLongArrowRight = faArrowRightLong;\nvar faBuildingUn = {\n prefix: 'fas',\n iconName: 'building-un',\n icon: [512, 512, [], \"e4d9\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 272-112 0c-20.9 0-39.5 10.1-51.2 25.6-8-6-18-9.6-28.8-9.6-26.5 0-48 21.5-48 48l0 64 64 0 0 48-144 0c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM427.4 380.5c9-2.1 18.3 2.2 22.5 10.5l26.1 52.2 0-43.3c0-11 9-20 20-20s20 9 20 20l0 128c0 9.3-6.4 17.3-15.4 19.5s-18.3-2.2-22.5-10.5L452 484.7 452 528c0 11-9 20-20 20s-20-9-20-20l0-128c0-9.3 6.4-17.3 15.4-19.5zM324 400l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-11 9-20 20-20s20 9 20 20l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [448, 512, [], \"f52b\", \"M288 64l64 0 0 416c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-384c0-35.3-28.7-64-64-64l-96 0 0 0-160 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-416zM160 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0-10.4-31.2C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faCameraAlt = faCamera;\nvar faUsersRays = {\n prefix: 'fas',\n iconName: 'users-rays',\n icon: [640, 512, [], \"e593\", \"M31-33C21.7-23.6 21.7-8.4 31 1L87 57c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L65-33c-9.4-9.4-24.6-9.4-33.9 0zM609-33c-9.4-9.4-24.6-9.4-33.9 0L519 23c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L609 1c9.4-9.4 9.4-24.6 0-33.9zM65 545l56-56c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L31 511c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zm544 0c9.4-9.4 9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56 56c9.4 9.4 24.6 9.4 33.9 0zM320 208a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm0 32c-61.9 0-112 50.1-112 112l0 8c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24l0-8c0-61.9-50.1-112-112-112zm216-80a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM451.2 260.4C469.4 286.3 480 317.9 480 352l0 8c0 8.4-1.4 16.5-4.1 24l78.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-53-43-96-96-96-10 0-19.7 1.5-28.8 4.4zm-262.4 0c-9.1-2.9-18.8-4.4-28.8-4.4-53 0-96 43-96 96l0 10.7c0 11.8 9.6 21.3 21.3 21.3l78.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-8c0-34.1 10.6-65.7 28.8-91.6zM216 160a56 56 0 1 0 -112 0 56 56 0 1 0 112 0z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352l0 64c0 17.7-14.3 32-32 32S0 433.7 0 416l0-64C0 175.3 143.3 32 320 32S640 175.3 640 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64C576 210.6 461.4 96 320 96zm0 112c-79.5 0-144 64.5-144 144l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-114.9 93.1-208 208-208s208 93.1 208 208l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-79.5-64.5-144-144-144zM288 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [512, 512, [], \"f0e8\", \"M192 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-8 0 0 64 120 0c39.8 0 72 32.2 72 72l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-13.3-10.7-24-24-24l-120 0 0 80 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-80-120 0c-13.3 0-24 10.7-24 24l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-39.8 32.2-72 72-72l120 0 0-64-8 0c-17.7 0-32-14.3-32-32l0-64z\"]\n};\nvar faFaceGrinStars = {\n prefix: 'fas',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M256 512c141.4 0 256-114.6 256-256 0-24.4-3.4-48.1-9.8-70.5 18.6-36.1-2.7-83.6-46.7-90-46.9-58.3-118.9-95.5-199.5-95.5S103.4 37.3 56.5 95.5c-44 6.4-65.3 53.9-46.7 90-6.4 22.4-9.8 46-9.8 70.5 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zm-31.6-231c5.3-10.7 20.5-10.7 25.8 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4zm-198.2 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4c5.3-10.7 20.5-10.7 25.8 0z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [384, 512, [\"sort-asc\"], \"f0de\", \"M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z\"]\n};\nvar faSortAsc = faSortUp;\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6-46.8 43.5-78.1 95.4-93 131.1-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64-11.5 0-22.3-3-31.7-8.4-1 10.9-.1 22.1 2.9 33.2 13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-12.2-45.7-55.5-74.8-101.1-70.8 5.3 9.3 8.4 20.1 8.4 31.7z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [256, 512, [], \"f0d9\", \"M7.7 235.8c-10.3 12.6-9.5 31.1 2.2 42.8l128 128c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-256c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-128 128-2.2 2.4z\"]\n};\nvar faAppleWhole = {\n prefix: 'fas',\n iconName: 'apple-whole',\n icon: [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160 27.3 0 59.7 10.3 82.7 19.3 18.8 7.3 39.9 7.3 58.7 0 22.9-8.9 55.4-19.3 82.7-19.3 76.3 0 112 83.7 112 160 0 128-80 224-160 224-16.5 0-38.1-6.6-51.5-11.3-8.1-2.8-16.9-2.8-25 0-13.4 4.7-35 11.3-51.5 11.3-80 0-160-96-160-224z\"]\n};\nvar faAppleAlt = faAppleWhole;\nvar faScrollTorah = {\n prefix: 'fas',\n iconName: 'scroll-torah',\n icon: [576, 512, [\"torah\"], \"f6a0\", \"M0 48C0 21.5 21.5 0 48 0 68.9 0 86.7 13.4 93.3 32l389.5 0c6.6-18.6 24.4-32 45.3-32 26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48-20.9 0-38.7-13.4-45.3-32L93.3 480c-6.6 18.6-24.4 32-45.3 32-26.5 0-48-21.5-48-48L0 48zM177.9 301c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2c-2.6-4.2-7.2-6.8-12.2-6.8s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"]\n};\nvar faTorah = faScrollTorah;\nvar faHouseLock = {\n prefix: 'fas',\n iconName: 'house-lock',\n icon: [640, 512, [], \"e510\", \"M528 224.1c44.2 0 80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l185 171.8C440.2 195 400 244.8 400 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM272 320c-26.5 0-48 21.5-48 48l0 96 96 0 0-87.3c0-16.5 7-31.5 18.4-42.1-8.7-9-20.9-14.6-34.4-14.6l-32 0zm256-47.9c-17.7 0-32 14.3-32 32l0 47.9 64 0 0-47.9c0-17.7-14.3-32-32-32z\"]\n};\nvar faArrowsLeftRightToLine = {\n prefix: 'fas',\n iconName: 'arrows-left-right-to-line',\n icon: [576, 512, [], \"e4ba\", \"M32 96C14.3 96 0 110.3 0 128L0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM390.6 342.6l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-133.5 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 133.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0zM576 128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M136.7 5.9L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-8.7-26.1C306.9-7.2 294.7-16 280.9-16L167.1-16c-13.8 0-26 8.8-30.4 21.9zM416 144L32 144 53.1 467.1C54.7 492.4 75.7 512 101 512L347 512c25.3 0 46.3-19.6 47.9-44.9L416 144z\"]\n};\nvar faFaceSadTear = {\n prefix: 'fas',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm271 98c5.5-1.3 11.1-2 17-2 24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50-12.5 0-24.6 1.9-35.9 5.5 9.8 12.7 16.5 27.9 18.9 44.6zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM185.4 292.8c-2.4-2.9-5.7-4.8-9.4-4.8s-7 1.9-9.4 4.8c-6.5 7.8-12.6 16.1-18.3 24.6-9 13.4-20.3 30.2-20.3 47.4 0 28.3 21.5 51.2 48 51.2s48-22.9 48-51.2c0-17.2-11.2-34-20.3-47.4-5.7-8.5-11.9-16.7-18.3-24.6z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [128224, 128439], \"f1ac\", \"M160 64l0 80 64 0 0-80 146.7 0 45.3 45.3 0 34.7 64 0 0-34.7c0-17-6.7-33.3-18.7-45.3L416 18.7C404 6.7 387.7 0 370.7 0L224 0c-35.3 0-64 28.7-64 64zM32 128c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-288c0-17.7-14.3-32-32-32l-48 0zm448 64l-320 0 0 256c0 17.7 14.3 32 32 32l288 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM224 288a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm0 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM336 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM312 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM424 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM400 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faPersonCirclePlus = {\n prefix: 'fas',\n iconName: 'person-circle-plus',\n icon: [640, 512, [], \"e541\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6 0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71S136.6 486.2 95.4 441L9 345.9c-5.8-6.4-9-14.7-9-23.3 0-19.1 15.5-34.6 34.6-34.6zM256 288c-38.4 0-76.8 35.8-90.6 50.2-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faPersonCircleQuestion = {\n prefix: 'fas',\n iconName: 'person-circle-question',\n icon: [640, 512, [], \"e542\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M256 0c23.7 0 44.4 12.9 55.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0zm26.9 212.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6s-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L288.2 246.1c7.8-10.7 5.4-25.7-5.3-33.5zM136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64z\"]\n};\nvar faShareFromSquare = {\n prefix: 'fas',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M384.5 24l0 72-64 0c-79.5 0-144 64.5-144 144 0 93.4 82.8 134.8 100.6 142.6 2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8 0-8.3-5.9-15.5-12.8-20.3-8.9-6.2-19.2-18.2-19.2-40.5 0-45 36.5-81.5 81.5-81.5l30.5 0 0 72c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24zm-272 72c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6S384 14.6 384 24l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6l-40.4-34.6-40.4 34.6c-9 7.7-22.2 7.7-31.2 0l-40.4-34.6-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM104 136c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0zM80 352c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24-120c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [62764], \"3d\", \"M32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M201.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 173.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [576, 512, [], \"e075\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-88.6-88.6c1.7-12.1-2-24.8-11.3-34-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0c-31.2 31.2-84.5 9.1-84.5-35 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-9.3-9.3-22-13-34-11.3L41-24.9zM72 216c-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-21.4 12.6-37.6 29.1-45.1l-240-240C109.6 203.4 93.4 216 72 216z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [576, 512, [], \"f715\", \"M7-25c9.4-9.4 24.6-9.4 33.9 0L569 503c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9C-2.3-.4-2.3-15.6 7-25z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z\"]\n};\nvar faNoteSticky = {\n prefix: 'fas',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 213.5c0 17-6.7 33.3-18.7 45.3L322.7 461.3c-12 12-28.3 18.7-45.3 18.7L64 480zM389.5 304L296 304c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faTableColumns = {\n prefix: 'fas',\n iconName: 'table-columns',\n icon: [448, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 128 0 0-256-128 0zm320 0l-128 0 0 256 128 0 0-256z\"]\n};\nvar faColumns = faTableColumns;\nvar faPersonShelter = {\n prefix: 'fas',\n iconName: 'person-shelter',\n icon: [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32L64 178.6 256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 192l16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-33.2-61.7C329.7 245.1 294.4 224 256 224s-73.7 21.1-91.9 54.9l-33.2 61.7c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8-79.3 23.6-137.1 97.1-137.1 184.1 0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256 512 397.4 397.4 512 256 512S0 397.4 0 256c0-116 77.1-213.9 182.9-245.4 16.9-5 34.8 4.6 39.8 21.5z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [512, 512, [], \"f773\", \"M410.6 124.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm0 144c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.7-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 144c21.3-16.1 49.9-16.1 71.2 0 20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faDeleteLeft = {\n prefix: 'fas',\n iconName: 'delete-left',\n icon: [640, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM284.1 188.1c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faBackspace = faDeleteLeft;\nvar faBroomBall = {\n prefix: 'fas',\n iconName: 'broom-ball',\n icon: [576, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M496 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zM106.8 277.2c30.6-30.6 73.1-45.9 115.8-42.2L341 353.3c3.7 42.8-11.6 85.2-42.2 115.9-27.4 27.4-64.6 42.8-103.3 42.8L22.1 512c-12.2 0-22.1-9.9-22.1-22.1 0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2 0-31.5 12.5-61.8 34.8-84l8-8zm417-270c12.6-10.3 31.1-9.5 42.8 2.2s12.4 30.2 2.2 42.8l-2.2 2.4-192 192 34.8 34.7c4.2 4.2 6.6 10 6.6 16 0 12.5-10.1 22.6-22.6 22.6l-29.1 0-108.3-108.3 0-29.1c0-12.5 10.1-22.6 22.6-22.6 6 0 11.8 2.4 16 6.6l34.8 34.7 192-192 2.4-2.2z\"]\n};\nvar faQuidditch = faBroomBall;\nvar faQuidditchBroomBall = faBroomBall;\nvar faJ = {\n prefix: 'fas',\n iconName: 'j',\n icon: [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z\"]\n};\nvar faShuttleSpace = {\n prefix: 'fas',\n iconName: 'shuttle-space',\n icon: [576, 512, [\"space-shuttle\"], \"f197\", \"M0 368l0 64c0 26.5 21.5 48 48 48l50 0c40.6 0 80.4-11 115.2-31.9l133.5-80.1-93.3 0-64.9 38.9c-14 8.4-28.9 14.7-44.5 19l0-66.4c9.7-5.6 17.8-13.7 23.4-23.4l198.8 0c67.1 0 127.8-20.6 170.3-70.6 4.6-5.4 4.6-13.3 0-18.8-42.5-50.1-103.2-70.6-170.3-70.6l-198.8 0c-5.6-9.7-13.7-17.8-23.4-23.4l0-66.4c15.6 4.2 30.6 10.6 44.5 19l64.9 38.9 93.3 0-133.5-80.1C178.4 43 138.6 32 98 32L48 32C21.5 32 0 53.5 0 80L0 368zm96 0l0 64-48 0 0-64 48 0zM96 80l0 64-48 0 0-64 48 0zM416 224c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faSpaceShuttle = faShuttleSpace;\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [512, 512, [9775], \"f6ad\", \"M224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 352a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-448c53 0 96 43 96 96s-43 96-96 96-96 43-96 96 43 96 96 96C150 448 64 362 64 256S150 64 256 64zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [9209], \"f04d\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"]\n};\nvar faTrowel = {\n prefix: 'fas',\n iconName: 'trowel',\n icon: [576, 512, [], \"e589\", \"M407.9 181.4L277.3 312 342.6 377.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9s-11.5-20.8-7.9-32.2l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L232 266.7 362.6 136.1c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"]\n};\nvar faHandBackFist = {\n prefix: 'fas',\n iconName: 'hand-back-fist',\n icon: [384, 512, [\"hand-rock\"], \"f255\", \"M7.4 253.6C2.6 245.9 0 237.1 0 228l0-36c0-26.5 21.5-48 48-48l16 0 0-80c0-26.5 21.5-48 48-48 17.3 0 32.4 9.1 40.9 22.8 4.3-22.1 23.8-38.8 47.1-38.8 23.4 0 42.9 16.8 47.1 38.9 7.3-4.4 15.8-6.9 24.9-6.9 22.1 0 40.8 15 46.3 35.4 5.5-2.2 11.4-3.4 17.7-3.4 26.5 0 48 21.5 48 48l0 96.9c0 9.9-2.3 19.7-6.8 28.6l-39.6 79.1c-10.8 21.7-33 35.4-57.2 35.4L96 352c-16.5 0-31.8-8.4-40.6-22.4l-48-76zM32 480l0-48c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3L216 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [512, 512, [62769], \"3e\", \"M34.9 50.6c-7.4 16-.4 35.1 15.6 42.5L403.6 256 50.6 419c-16 7.4-23.1 26.4-15.6 42.5s26.4 23 42.5 15.6l416-192c11.3-5.2 18.6-16.6 18.6-29.1s-7.3-23.8-18.6-29.1L77.4 35c-16-7.4-35.1-.4-42.5 15.6z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-1.4-1.4-158.6 158.6c-18 18-42.4 28.1-67.9 28.1l-59 0c-8.5 0-16.6 3.4-22.6 9.4-61.7 61.7-92.8 92.8-93.3 93.3-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l16-16 0 0 77.3-77.3c6-6 9.4-14.1 9.4-22.6l0-59c0-25.5 10.1-49.9 28.1-67.9L298.7 56 297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zM344 101.3L261.3 184 328 250.7 410.7 168 344 101.3zm-128 128l-30.6 30.6c-6 6-9.4 14.1-9.4 22.6l0 53.5 53.5 0c8.5 0 16.6-3.4 22.6-9.4L282.7 296 216 229.3z\"]\n};\nvar faSeptagon = {\n prefix: 'fas',\n iconName: 'septagon',\n icon: [576, 512, [\"heptagon\"], \"e820\", \"M267.4-31.5c15.9-5.5 33.5-4.6 48.8 2.7l172.4 83 6.3 3.5c14.2 9 24.5 23.3 28.3 39.9l42.6 186.5 1.2 7.2c1.6 14.3-1.7 28.8-9.4 41.1l-4.2 5.9-119.3 149.6c-12.1 15.2-30.6 24.1-50 24.1l-191.3 0c-19.5 0-37.9-8.9-50-24.1L23.5 338.4c-12.1-15.2-16.7-35.2-12.3-54.2l42.6-186.5 2-7c5.6-15.9 17.2-29 32.6-36.4l172.4-83 6.7-2.7z\"]\n};\nvar faHeptagon = faSeptagon;\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 160l64 0c35.3 0 64 28.7 64 64l0 48c0 17.7-14.3 32-32 32l-1.8 0-11.1 99.5c-1.8 16.2-15.5 28.5-31.8 28.5l-38.7 0c-16.3 0-30-12.3-31.8-28.5l-11.1-99.5-1.8 0c-17.7 0-32-14.3-32-32l0-48c0-35.3 28.7-64 64-64zM412.4 400.2c-16.1-4.2-34.8-7.6-55.4-10.2l5.3-47.7c22.7 2.9 43.7 6.7 62.1 11.5 22.4 5.8 42.6 13.3 57.8 23.3 14.7 9.6 29.8 24.9 29.8 47s-15.1 37.4-29.8 47c-15.2 9.9-35.5 17.5-57.8 23.3-45.1 11.7-105.3 17.8-168.4 17.8s-123.3-6.1-168.4-17.8C65.2 488.4 45 480.9 29.8 471 15.1 461.4 0 446.1 0 424s15.1-37.4 29.8-47c15.2-9.9 35.5-17.5 57.8-23.3 18.5-4.8 39.5-8.6 62.1-11.5L155 390c-20.6 2.6-39.3 6.1-55.4 10.2-56.6 14.6-56.6 32.9 0 47.5 39.9 10.3 95.8 16.2 156.4 16.2s116.5-5.9 156.4-16.2c56.6-14.6 56.6-32.9 0-47.5z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [512, 512, [], \"f83e\", \"M64 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 288 96 0 0-128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-288-96 0 0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-128z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [8249], \"f104\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [576, 512, [129691], \"f54a\", \"M352.1 146.7l0-49.6c0-10.7 5.3-20.7 14.2-26.6L485.2-8.7c6.3-4.2 14.8-3.4 20.2 2l45.4 45.5c5.4 5.4 6.2 13.8 2 20.2L473.6 177.8c-5.9 8.9-15.9 14.2-26.6 14.2l-49.6 0-90.7 90.7c15 33.3 8.9 73.9-18.5 101.3L162.1 510.1c-18.7 18.7-49.1 18.7-67.9 0L34.1 449.9c-18.7-18.7-18.7-49.1 0-67.9L160.1 256c27.4-27.4 67.9-33.6 101.3-18.5l90.7-90.7z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [576, 512, [128668], \"f722\", \"M160 96l0 96 133.4 0-57.6-96-75.8 0zM96 223L96 64c0-17.7 14.3-32 32-32l107.8 0c22.5 0 43.3 11.8 54.9 31.1l77.4 128.9 64 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 48 0c26.5 0 48 21.5 48 48l0 41.5c0 14.2-6.3 27.8-17.3 36.9l-35 29.2c26.5 15.2 44.3 43.7 44.3 76.4 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-14.4 3.5-28 9.6-40l-101.2 0c-3 13.4-7.9 26-14.4 37.7 7.7 9.4 7.2 23.4-1.6 32.2l-22.6 22.6c-8.8 8.8-22.7 9.3-32.2 1.6-9.3 5.2-19.3 9.3-29.8 12.3-1.2 12.1-11.4 21.6-23.9 21.6l-32 0c-12.4 0-22.7-9.5-23.9-21.6-10.5-3-20.4-7.2-29.8-12.3-9.4 7.7-23.4 7.2-32.2-1.6L35.5 453.8c-8.8-8.8-9.3-22.7-1.6-32.2-5.2-9.3-9.3-19.3-12.3-29.8-12.1-1.2-21.6-11.4-21.6-23.9l0-32c0-12.4 9.5-22.7 21.6-23.9 3-10.5 7.2-20.4 12.3-29.8-7.7-9.4-7.2-23.4 1.6-32.2l22.6-22.6c8.8-8.8 22.7-9.3 32.2-1.6 1.9-1 3.7-2 5.7-3zm64 65a64 64 0 1 0 0 128 64 64 0 1 0 0-128zM440 424a40 40 0 1 0 80 0 40 40 0 1 0 -80 0z\"]\n};\nvar faBridgeCircleXmark = {\n prefix: 'fas',\n iconName: 'bridge-circle-xmark',\n icon: [576, 512, [], \"e4cb\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [512, 512, [], \"f493\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 352c0 53 43 96 96 96s96-43 96-96l0-352 64 0 0 352c0 53 43 96 96 96s96-43 96-96l0-352c17.7 0 32-14.3 32-32S497.7 0 480 0L32 0zM160 64l0 128-64 0 0-128 64 0zm256 0l0 128-64 0 0-128 64 0z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [576, 512, [129658], \"f0f1\", \"M32 48C32 21.5 53.5 0 80 0l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-32 0c-17.7 0-32-14.3-32-32S238.3 0 256 0l48 0c26.5 0 48 21.5 48 48l0 144c0 77.4-55 142-128 156.8l0 19.2c0 61.9 50.1 112 112 112s112-50.1 112-112l0-85.5c-37.3-13.2-64-48.7-64-90.5 0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 85.5c0 97.2-78.8 176-176 176S160 465.2 160 368l0-19.2C87 334 32 269.4 32 192L32 48zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M336 359.8c39.1-32.3 64-81.1 64-135.8 0-97.2-78.8-176-176-176S48 126.8 48 224C48 278.7 72.9 327.5 112 359.8 112.4 377.4 115.2 400.2 118.4 421.6 48 383.9 0 309.5 0 224 0 100.3 100.3 0 224 0S448 100.3 448 224c0 85.6-48 159.9-118.5 197.6 3.3-21.4 6-44.2 6.4-61.8zm-14-53.4c-8.3-12.6-19.2-21.6-30.4-27.8-2.1-1.1-4.2-2.2-6.3-3.2 11.7-13.9 18.8-31.9 18.8-51.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 19.6 7.1 37.6 18.8 51.5-2.1 1-4.2 2-6.3 3.2-11.2 6.2-22.1 15.2-30.4 27.8-18.8-22.3-30.1-51-30.1-82.4 0-70.7 57.3-128 128-128s128 57.3 128 128c0 31.4-11.3 60.2-30.1 82.4zM224 312c32.9 0 64 8.6 64 43.8 0 33-12.9 104.1-20.6 132.9-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8 0-35.1 31.1-43.8 64-43.8zm0-128a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faArrowUpRightDots = {\n prefix: 'fas',\n iconName: 'arrow-up-right-dots',\n icon: [512, 512, [], \"e4b7\", \"M96 32C78.3 32 64 46.3 64 64S78.3 96 96 96L114.7 96 9.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.3 160 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 32zM403.8 70.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM279.7 194.2a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm162.2-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zM156.2 317.8a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM70.1 403.8a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M256 80a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM5.5 185L128 384 71.8 454.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L384 384 506.5 185c3.6-5.9 5.5-12.7 5.5-19.6l0-.6c0-20.3-16.5-36.8-36.8-36.8-7.3 0-14.4 2.2-20.4 6.2l-16.9 11.3c-12.7 8.5-29.6 6.8-40.4-4l-34.1-34.1C356.1 100.1 346.2 96 336 96s-20.1 4.1-27.3 11.3l-30.1 30.1c-12.5 12.5-32.8 12.5-45.3 0l-30.1-30.1C196.1 100.1 186.2 96 176 96s-20.1 4.1-27.3 11.3l-34.1 34.1c-10.8 10.8-27.7 12.5-40.4 4L57.3 134.2c-6.1-4-13.2-6.2-20.4-6.2-20.3 0-36.8 16.5-36.8 36.8l0 .6c0 6.9 1.9 13.7 5.5 19.6z\"]\n};\nvar faAnchorCircleExclamation = {\n prefix: 'fas',\n iconName: 'anchor-circle-exclamation',\n icon: [640, 512, [], \"e4ab\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faEllipsisVertical = {\n prefix: 'fas',\n iconName: 'ellipsis-vertical',\n icon: [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 144a56 56 0 1 1 0-112 56 56 0 1 1 0 112zm0 224c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-112c0 30.9-25.1 56-56 56s-56-25.1-56-56 25.1-56 56-56 56 25.1 56 56z\"]\n};\nvar faEllipsisV = faEllipsisVertical;\nvar faHeartCircleExclamation = {\n prefix: 'fas',\n iconName: 'heart-circle-exclamation',\n icon: [576, 512, [], \"e4fe\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faBuildingCircleExclamation = {\n prefix: 'fas',\n iconName: 'building-circle-exclamation',\n icon: [576, 512, [], \"e4d3\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faPersonArrowUpFromLine = {\n prefix: 'fas',\n iconName: 'person-arrow-up-from-line',\n icon: [576, 512, [], \"e539\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM208 480l0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128 32 0zM566.6 102.6c-12.5 12.5-32.8 12.5-45.3 0L496 77.3 496 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-146.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M378.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L270.9 128 32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l196.2 0-85.3 128-110.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l68.2 0-30.8 46.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9L177.1 384 416 384c17.7 0 32-14.3 32-32s-14.3-32-32-32l-196.2 0 85.3-128 110.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-68.2 0 30.8-46.2z\"]\n};\nvar faTrainTram = {\n prefix: 'fas',\n iconName: 'train-tram',\n icon: [384, 512, [128650], \"e5b4\", \"M0 8C0-5.3 10.7-16 24-16l336 0c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-120 0 0 64 40 0c53 0 96 43 96 96l0 160c0 31.2-14.9 59-38 76.5l64.3 76c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74.6-88.1c-3.6 .4-7.3 .6-11.1 .6l-128 0c-3.8 0-7.5-.2-11.1-.6L42.3 535.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l64.3-76C46.9 411 32 383.2 32 352l0-160c0-53 43-96 96-96l40 0 0-64-120 0 0 8c0 13.3-10.7 24-24 24S0 53.3 0 40L0 8zM128 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [576, 512, [128747], \"f5b0\", \"M372 143.9L172.7 40.2c-8-4.1-17.3-4.8-25.7-1.7l-41.1 15c-10.3 3.7-13.8 16.4-7.1 25L200.3 206.4 100.1 242.8 40 206.2c-6.2-3.8-13.8-4.5-20.7-2.1L3 210.1c-9.4 3.4-13.4 14.5-8.3 23.1l53.6 91.8c15.6 26.7 48.1 38.4 77.1 27.8l12.9-4.7 0 0 398.4-145c29.1-10.6 44-42.7 33.5-71.8s-42.7-44-71.8-33.5L372 143.9zM32.2 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-512 0z\"]\n};\nvar faRightToBracket = {\n prefix: 'fas',\n iconName: 'right-to-bracket',\n icon: [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M345 273c9.4-9.4 9.4-24.6 0-33.9L201 95c-6.9-6.9-17.2-8.9-26.2-5.2S160 102.3 160 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L345 273zm7 143c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0z\"]\n};\nvar faSignInAlt = faRightToBracket;\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M384 64c0-35.3-28.7-64-64-64L125.3 0C108.3 0 92 6.7 80 18.7L18.7 80C6.7 92 0 108.3 0 125.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHouseCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-circle-exclamation',\n icon: [640, 512, [], \"e50a\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM496 444a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z\"]\n};\nvar faIls = faShekelSign;\nvar faShekel = faShekelSign;\nvar faSheqel = faShekelSign;\nvar faSheqelSign = faShekelSign;\nvar faRadio = {\n prefix: 'fas',\n iconName: 'radio',\n icon: [512, 512, [128251], \"f8d7\", \"M494.8 15c12.7-3.7 20-17.1 16.3-29.8S494-34.8 481.3-31L51.8 94.9C42.4 97.6 33.9 102.1 26.6 108 10.5 119.7 0 138.6 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L218.5 96 494.8 15zM368 208a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM64 248c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 272c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 368c-13.3 0-24-10.7-24-24z\"]\n};\nvar faHandDots = {\n prefix: 'fas',\n iconName: 'hand-dots',\n icon: [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM200 352a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-88 24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faAllergies = faHandDots;\nvar faBookSkull = {\n prefix: 'fas',\n iconName: 'book-skull',\n icon: [448, 512, [\"book-dead\"], \"f6b7\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM272 163.2l0 12.8c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-12.8c-19.4-11.7-32-30.3-32-51.2 0-35.3 35.8-64 80-64s80 28.7 80 64c0 20.9-12.6 39.5-32 51.2zM208 112a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm74.2 95.7c4.6 10.1 .1 21.9-9.9 26.5l-47.9 21.8 47.9 21.8c10.1 4.6 14.5 16.4 9.9 26.5s-16.4 14.5-26.5 9.9L224 294 144.3 330.2c-10.1 4.6-21.9 .1-26.5-9.9s-.1-21.9 9.9-26.5l47.9-21.8-47.9-21.8c-10.1-4.6-14.5-16.4-9.9-26.5s16.4-14.5 26.5-9.9L224 250 303.7 213.8c10.1-4.6 21.9-.1 26.5 9.9z\"]\n};\nvar faBookDead = faBookSkull;\nvar faUnlockKeyhole = {\n prefix: 'fas',\n iconName: 'unlock-keyhole',\n icon: [384, 512, [\"unlock-alt\"], \"f13e\", \"M192 32c-35.3 0-64 28.7-64 64l0 64 192 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l0-64c0-70.7 57.3-128 128-128 63.5 0 116.1 46.1 126.2 106.7 2.9 17.4-8.8 33.9-26.3 36.9s-33.9-8.8-36.9-26.3C250 55.1 223.7 32 192 32zm40 328c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0z\"]\n};\nvar faUnlockAlt = faUnlockKeyhole;\nvar faFileArrowUp = {\n prefix: 'fas',\n iconName: 'file-arrow-up',\n icon: [384, 512, [\"file-upload\"], \"f574\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM209 263c-9.4-9.4-24.6-9.4-33.9 0l-64 64c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-86.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"]\n};\nvar faFileUpload = faFileArrowUp;\nvar faFaceGrinTears = {\n prefix: 'fas',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M554.8 203.4l16.3 2.3C547.7 88.4 444.2 0 320 0S92.3 88.4 68.9 205.7l16.3-2.3c37-5.3 68.6 26.4 63.4 63.4l-6.7 46.7c-4.1 29-21.6 53.2-45.8 66.8 43.7 78.5 127.6 131.7 223.8 131.7s180.1-53.1 223.8-131.7c-24.1-13.5-41.6-37.8-45.8-66.8l-6.7-46.7c-5.3-37 26.4-68.6 63.4-63.4zM470.3 326.9C447.9 388.2 389.1 432 320 432S192.1 388.2 169.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0-25.6-18.8-47.3-44.1-50.9L549.1 243c-10.6-1.5-19.6 7.5-18.1 18.1l6.7 46.7c3.6 25.3 25.3 44.1 50.9 44.1 28.4 0 51.4-23 51.4-51.4zm-640 0C0 329 23 352 51.4 352 77 352 98.7 333.2 102.3 307.9l6.7-46.7c1.5-10.6-7.5-19.6-18.1-18.1l-46.7 6.7C18.8 253.3 0 275 0 300.6z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPenToSquare = {\n prefix: 'fas',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"]\n};\nvar faEdit = faPenToSquare;\nvar faEarthEurope = {\n prefix: 'fas',\n iconName: 'earth-europe',\n icon: [512, 512, [\"globe-europe\"], \"f7a2\", \"M256.2 48c114.8 .1 207.8 93.2 207.8 208 0 22.1-3.4 43.4-9.8 63.4-2 .4-4.1 .6-6.2 .6l-2.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-50.7c0-8.8 7.2-16 16-16s16-7.2 16-16-7.2-16-16-16l-24 0c-13.3 0-24 10.7-24 24s-10.7 24-24 24l-56 0c-8.8 0-16 7.2-16 16s-7.2 16-16 16l-25.4 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l70.1-70.1c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3l-14.1 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l23.1-23.1c.8-.8 1.6-1.5 2.5-2.2zM438.4 356.1c-32.8 59.6-93.9 101.4-165.2 107.2-.7-2.3-1.1-4.8-1.1-7.3 0-13.3-10.7-24-24-24l-26.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-66.7c0-17.7 14.3-32 32-32l98.7 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 14.1 9.4 22.6 9.4l5.5 0c8.5 0 16.6 3.4 22.6 9.4l16 16c4.2 4.2 10 6.6 16 6.6 4.8 0 9.3 1.5 13 4.1zM256 512l26.2-1.3c-8.6 .9-17.3 1.3-26.2 1.3zm26.2-1.3C411.3 497.6 512 388.6 512 256 512 114.6 397.4 0 256 0l0 0C114.6 0 0 114.6 0 256 0 383.5 93.2 489.3 215.3 508.8 228.5 510.9 242.1 512 256 512zM187.3 123.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGlobeEurope = faEarthEurope;\nvar faFaceGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'face-grin-beam-sweat',\n icon: [576, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M546.2-.1c14.7 17.8 29.8 40.1 29.8 64.1 0 36.4-27.6 64-64 64s-64-27.6-64-64c0-24 15.2-46.3 29.8-64.1 8.8-10.7 18.5-20.8 29-30 3-2.6 7.4-2.6 10.4 0 10.5 9.1 20.1 19.3 29 30zM288 0c42.5 0 82.6 10.4 117.8 28.7-3.6 10.9-5.8 22.7-5.8 35.3 0 62.9 49.1 112 112 112 6.4 0 12.7-.5 18.8-1.5 8.6 25.6 13.2 53 13.2 81.5 0 141.4-114.6 256-256 256S32 397.4 32 256 146.6 0 288 0zM418.7 308.9C379.5 321.1 335.1 328 288 328s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 22.4 61.3 81.3 105.1 150.3 105.1s127.9-43.8 150.3-105.1c4.3-11.8-7.7-21.8-19.6-18.1zM208 180c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28zm132 28c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faCircleHalfStroke = {\n prefix: 'fas',\n iconName: 'circle-half-stroke',\n icon: [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faAdjust = faCircleHalfStroke;\nvar faPersonMilitaryToPerson = {\n prefix: 'fas',\n iconName: 'person-military-to-person',\n icon: [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8 0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0c-1.6 5.7-2.5 11.7-2.5 17.9 0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9S400 497.8 400 488.4l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"]\n};\nvar faTableCellsColumnLock = {\n prefix: 'fas',\n iconName: 'table-cells-column-lock',\n icon: [640, 512, [], \"e678\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 368c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faTruckFieldUn = {\n prefix: 'fas',\n iconName: 'truck-field-un',\n icon: [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 48c0 21.1 13.7 39.1 32.6 45.5-.4 3.4-.6 7-.6 10.5 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l144.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l.4 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-24.7 0-1.7-4.2-43.8-106.3c-12.3-30-41.6-49.5-74-49.5l-40.4 0C364.4 44.9 343.7 32 320 32L96 32zM384 224l0-96 31.9 0c6.5 0 12.3 3.9 14.8 9.9l35.4 86.1-82.1 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm280 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM256.6 132.9l27.4 41 0-29.9c0-11 9-20 20-20s20 9 20 20l0 96c0 8.8-5.8 16.6-14.2 19.1s-17.5-.7-22.4-8l-27.4-41 0 29.9c0 11-9 20-20 20s-20-9-20-20l0-96c0-8.8 5.8-16.6 14.2-19.1s17.5 .7 22.4 8zM132 144l0 64c0 6.6 5.4 12 12 12s12-5.4 12-12l0-64c0-11 9-20 20-20s20 9 20 20l0 64c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-64c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [128212], \"f02d\", \"M384 512L96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zM96 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zm32-232c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24 72c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faFaceLaughWink = {\n prefix: 'fas',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96l26.9 0c3.5-12.1 10.1-23.3 19.2-32.4l1.4-1.4c15-15 35.3-22.9 56.1-22.2 14.2-15.1 34.2-23.9 55.4-23.9l2 0c21.1 0 41.1 8.8 55.4 23.9 20.8-.6 41.1 7.3 56.1 22.2l1.4 1.4c9.2 9.2 15.7 20.4 19.2 32.4l26.9 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM156.5 424.3c9.5 6.3 14.2 17.7 11.9 28.8-1.8 9.2 1 18.7 7.7 25.3l1.4 1.4c6.6 6.6 16.1 9.5 25.3 7.7 11.1-2.2 22.5 2.5 28.8 11.9 5.2 7.8 14 12.5 23.3 12.5l2 0c9.4 0 18.1-4.7 23.3-12.5 6.3-9.5 17.7-14.2 28.8-11.9 9.2 1.8 18.7-1 25.3-7.7l1.4-1.4c6.6-6.6 9.5-16.1 7.7-25.3-2.2-11.1 2.5-22.5 11.9-28.8 7.8-5.2 12.5-14 12.5-23.3l0-2c0-9.4-4.7-18.1-12.5-23.3-9.5-6.3-14.2-17.7-11.9-28.8 1.8-9.2-1-18.7-7.7-25.3l-1.4-1.4c-6.6-6.6-16.1-9.5-25.3-7.7-11.1 2.2-22.5-2.5-28.8-11.9-5.2-7.8-14-12.5-23.3-12.5l-2 0c-9.4 0-18.1 4.7-23.3 12.5-6.3 9.5-17.7 14.2-28.8 11.9-9.2-1.8-18.7 1-25.3 7.7l-1.4 1.4c-6.6 6.6-9.5 16.1-7.7 25.3 2.2 11.1-2.5 22.5-11.9 28.8-7.8 5.2-12.5 14-12.5 23.3l0 2c0 9.4 4.7 18.1 12.5 23.3zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [\"area-chart\"], \"f1fe\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM240 96c6.7 0 13.1 2.8 17.7 7.8L328.8 181.3 375 135c9.4-9.4 24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17l0 112c0 13.3-10.7 24-24 24l-304 0c-13.3 0-24-10.7-24-24l0-112c0-6 2.3-11.8 6.3-16.2l88-96c4.5-5 11-7.8 17.7-7.8z\"]\n};\nvar faAreaChart = faChartArea;\nvar faRupiahSign = {\n prefix: 'fas',\n iconName: 'rupiah-sign',\n icon: [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm256-32l80 0c61.9 0 112 50.1 112 112S461.9 448 400 448l-48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M40 0C17.9 0 0 17.9 0 40L0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 128 0 0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-160 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 0zm78.6 406.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 229.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-229.5 0 9.4-9.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [128752], \"f7bf\", \"M199 7c9.4-9.4 24.6-9.4 33.9 0l89.4 89.4 55-55c12.5-12.5 32.8-12.5 45.3 0l48 48c12.5 12.5 12.5 32.8 0 45.3l-55 55 89.4 89.4c9.4 9.4 9.4 24.6 0 33.9l-96 96c-9.4 9.4-24.6 9.4-33.9 0l-89.4-89.4-15.5 15.5c11.4 24.6 17.8 52 17.8 80.9 0 31.7-7.7 61.5-21.2 87.8-4.7 9-16.7 10.3-23.8 3.1l-96.3-96.3-60 60c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l60-60-96.3-96.3c-7.2-7.2-5.9-19.2 3.1-23.8 26.3-13.6 56.2-21.2 87.8-21.2 28.9 0 56.3 6.4 80.9 17.8L192.4 226.3 103 137c-9.4-9.4-9.4-24.6 0-33.9L199 7zm17 50.9l-62.1 62.1 72.4 72.4 62.1-62.1-72.4-72.4zM392 358.1l62.1-62.1-72.4-72.4-62.1 62.1 72.4 72.4z\"]\n};\nvar faMagnifyingGlassMinus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-minus',\n icon: [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faSearchMinus = faMagnifyingGlassMinus;\nvar faPeopleGroup = {\n prefix: 'fas',\n iconName: 'people-group',\n icon: [512, 512, [], \"e533\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1C172.7 359 160 337 160 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zM96 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm16 240l0 32c0 32.5 12.1 62.1 32 84.7l0 75.3c0 1.2 0 2.5 .1 3.7-8.5 7.6-19.7 12.3-32.1 12.3l-32 0c-26.5 0-48-21.5-48-48l0-56.6C12.9 364.4 0 343.7 0 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1zM368 464l0-75.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 56.6c0 26.5-21.5 48-48 48l-32 0c-12.3 0-23.6-4.6-32.1-12.3 0-1.2 .1-2.5 .1-3.7zM416 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faSquareBinary = {\n prefix: 'fas',\n iconName: 'square-binary',\n icon: [448, 512, [], \"e69b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm144 4c-24.3 0-44 19.7-44 44l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0zm-4 44c0-2.2 1.8-4 4-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48zm140-44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0zM132 296c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20zm96 24l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0c-24.3 0-44 19.7-44 44zm44-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48c0-2.2 1.8-4 4-4z\"]\n};\nvar faMasksTheater = {\n prefix: 'fas',\n iconName: 'masks-theater',\n icon: [576, 512, [127917, \"theater-masks\"], \"f630\", \"M-5 118L23.5 279.7c14 79.5 76.3 141.8 155.8 155.8l12.7 2.2c-16.5-28.6-27.1-60.7-30.6-94.5l-24.1 4.3c-9.7 1.7-18.8-5.8-16.9-15.5 4.8-24.7 19.1-46.6 39.7-60.9l0-74.6c-1.4 .8-3 1.3-4.7 1.6l-63 11.1c-8.7 1.5-17.3-4.4-15.9-13.1 3.1-19.6 18.4-36 39.1-39.7 17.2-3 33.9 3.5 44.6 15.8l0-22.7c0-22.5 6.9-52.4 32.3-73.4 26-21.5 67.7-43.9 124.9-54.2-30.5-16.3-86.3-32-163.8-18.4-80.3 14.2-128 50.1-150.1 76.1-9 10.5-10.8 24.9-8.4 38.5zM208 138.7l0 174.8c0 80.7 50.5 152.9 126.4 180.4L362.1 504c14.1 5.1 29.6 5.1 43.7 0L433.6 494C509.5 466.4 560 394.3 560 313.5l0-174.8c0-6.9-2.1-13.8-7-18.6-22.6-22.5-78.2-56-169-56s-146.4 33.6-169 56c-4.9 4.9-7 11.7-7 18.6zm66.1 187.1c-1.4-7 7-11 12.7-6.6 26.9 20.6 60.6 32.9 97.2 32.9s70.2-12.3 97.2-32.9c5.7-4.4 14.1-.4 12.7 6.6-10.1 51.4-55.5 90.3-109.9 90.3s-99.8-38.8-109.9-90.3zm.5-101.5C281.2 205.5 299 192 320 192s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7l-64 0c-8.8 0-16.3-7.4-13.4-15.7zM480 240l-64 0c-8.8 0-16.3-7.4-13.4-15.7 6.5-18.8 24.4-32.3 45.4-32.3s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7z\"]\n};\nvar faTheaterMasks = faMasksTheater;\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [640, 512, [], \"f217\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 412.7 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM336 78.4c-13.3 0-24 10.7-24 24l0 33.6-33.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.6 0 0 33.6c0 13.3 10.7 24 24 24s24-10.7 24-24l0-33.6 33.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-33.6 0 0-33.6c0-13.3-10.7-24-24-24z\"]\n};\nvar faHandsAslInterpreting = {\n prefix: 'fas',\n iconName: 'hands-asl-interpreting',\n icon: [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l80 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7 8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20 8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5l-100.7 27.5 81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4l-101.9 84.9 23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-80 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20 22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.6-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"]\n};\nvar faAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faAslInterpreting = faHandsAslInterpreting;\nvar faHandsAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faTableCellsRowUnlock = {\n prefix: 'fas',\n iconName: 'table-cells-row-unlock',\n icon: [640, 512, [], \"e691\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48c-.1-17.6-14.4-31.9-32-31.9-17.7 0-32 14.3-32 32l0 47.9 96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80 44.2 0 79.9 35.8 80 79.9l-48 0z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M128 320L24.5 320c-24.9 0-40.2-27.1-27.4-48.5L50 183.3C58.7 168.8 74.3 160 91.2 160l95 0c76.1-128.9 189.6-135.4 265.5-124.3 12.8 1.9 22.8 11.9 24.6 24.6 11.1 75.9 4.6 189.4-124.3 265.5l0 95c0 16.9-8.8 32.5-23.3 41.2l-88.2 52.9c-21.3 12.8-48.5-2.6-48.5-27.4L192 384c0-35.3-28.7-64-64-64l-.1 0zM400 160a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faShrimp = {\n prefix: 'fas',\n iconName: 'shrimp',\n icon: [512, 512, [129424], \"e448\", \"M72 32C32.2 32 0 64.2 0 104 0 141.9 29.3 172.9 66.4 175.8 77.6 257.2 147.4 320 232 320l56 0 0-192-216 0c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111 0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6 0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faTengeSign = {\n prefix: 'fas',\n iconName: 'tenge-sign',\n icon: [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 56C0 42.7 10.7 32 24 32l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 80C10.7 80 0 69.3 0 56zM0 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256-128 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faTenge = faTengeSign;\nvar faHouseChimneyMedical = {\n prefix: 'fas',\n iconName: 'house-chimney-medical',\n icon: [512, 512, [\"clinic-medical\"], \"f7f2\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM224 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faClinicMedical = faHouseChimneyMedical;\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M73-24.9c-9.4-9.4-24.6-9.4-33.9 0S29.7-.3 39 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L321.8 224c56.6-1 102.2-47.2 102.2-104 0-57.4-46.6-104-104-104-56.8 0-103 45.6-104 102.2L73-24.9zM512 288c-17.2 0-33.7 3.4-48.7 9.6l170 170c4.2-5.4 6.7-12.2 6.7-19.6l0-32c0-70.7-57.3-128-128-128zM59.9 97.7c-21.5 12.5-35.9 35.7-35.9 62.3 0 39.8 32.2 72 72 72 26.6 0 49.8-14.4 62.3-35.9L59.9 97.7zM250.2 288C196.8 313.9 160 368.7 160 432l0 16c0 17.7 14.3 32 32 32l250.2 0-192-192zM128 288C57.3 288 0 345.3 0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [576, 512, [61913], \"f1d8\", \"M536.4-26.3c9.8-3.5 20.6-1 28 6.3s9.8 18.2 6.3 28l-178 496.9c-5 13.9-18.1 23.1-32.8 23.1-14.2 0-27-8.6-32.3-21.7l-64.2-158c-4.5-11-2.5-23.6 5.2-32.6l94.5-112.4c5.1-6.1 4.7-15-.9-20.6s-14.6-6-20.6-.9L229.2 276.1c-9.1 7.6-21.6 9.6-32.6 5.2L38.1 216.8c-13.1-5.3-21.7-18.1-21.7-32.3 0-14.7 9.2-27.8 23.1-32.8l496.9-178z\"]\n};\nvar faBookAtlas = {\n prefix: 'fas',\n iconName: 'book-atlas',\n icon: [448, 512, [\"atlas\"], \"f558\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM310.6 208L279 208c-1.4 23.1-6 44.2-12.6 61.2 22.7-12.5 39.4-34.8 44.2-61.2zm-173.1 0c4.8 26.4 21.5 48.7 44.2 61.2-6.7-17-11.2-38-12.6-61.2l-31.6 0zm76.4 55c4.5 9.6 8.2 13.8 10.2 15.5 2-1.7 5.7-5.8 10.2-15.5 6.2-13.4 11.1-32.5 12.7-55l-45.8 0c1.6 22.5 6.5 41.6 12.7 55zm-12.7-87l45.8 0c-1.6-22.5-6.5-41.6-12.7-55-4.5-9.6-8.2-13.8-10.2-15.5-2 1.7-5.7 5.8-10.2 15.5-6.2 13.4-11.1 32.5-12.7 55zm109.5 0c-4.8-26.4-21.5-48.7-44.2-61.2 6.7 17 11.2 38 12.6 61.2l31.6 0zM169 176c1.4-23.1 6-44.2 12.6-61.2-22.7 12.5-39.4 34.8-44.2 61.2l31.6 0zM96 192a128 128 0 1 1 256 0 128 128 0 1 1 -256 0z\"]\n};\nvar faAtlas = faBookAtlas;\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [448, 512, [], \"f0ce\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64l-320 0-6.5-.3C25.2 476.4 0 449.1 0 416L0 96C0 60.7 28.7 32 64 32l320 0zM64 320l0 96 128 0 0-96-128 0zm192 0l0 96 128 0 0-96-128 0zM64 256l128 0 0-96-128 0 0 96zm192 0l128 0 0-96-128 0 0 96z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1z\"]\n};\nvar faCircleChevronUp = {\n prefix: 'fas',\n iconName: 'circle-chevron-up',\n icon: [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"]\n};\nvar faChevronCircleUp = faCircleChevronUp;\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [\"battery-3\"], \"f242\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-144 0z\"]\n};\nvar faBattery3 = faBatteryHalf;\nvar faFontAwesome = {\n prefix: 'fas',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faHandcuffs = {\n prefix: 'fas',\n iconName: 'handcuffs',\n icon: [576, 512, [], \"e4f8\", \"M320-32c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zM192 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM152 96c-13.3 0-24 10.7-24 24l0 16c0 1 .1 1.9 .2 2.9-74.7 26.3-128.2 97.5-128.2 181.1 0 106 86 192 192 192s192-86 192-192c0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0zM64 320a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm448 0c0 66.9-51.3 121.8-116.6 127.5-14.3 22.8-32.4 43.1-53.4 59.9 13.5 3 27.6 4.6 42 4.6 106 0 192-86 192-192 0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0c-12.3 0-22.4 9.2-23.8 21.1 30.3 19.2 56.1 45 75.2 75.4 65.4 5.8 116.6 60.6 116.6 127.5zM384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M640 388.3c0 16.9-7.1 32.2-18.4 43.1l-35-23.3-292.7-195.1c-36.1-24.1-78.6-36.9-122-36.9l-3.9 0c-2.7 0-5.4 0-8 .1l22.2-100c5.7-25.8 28.6-44.1 55-44.1 12.2 0 24.1 4 33.8 11.3l4.7 3.5c26.3 19.7 62.4 19.7 88.6 0l4.7-3.5c9.8-7.3 21.6-11.3 33.8-11.3 26.4 0 49.3 18.3 55 44.1l33 148.5C574.5 232.3 640 302.6 640 388.3zM171.9 224c33.9 0 67.1 10 95.4 28.9L560 448 56 448c-30.9 0-56-25.1-56-56 0-92.8 75.2-168 168-168l3.9 0z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-279.8c0-18.2-19.4-29.7-35.4-21.1l-156.6 84.3 0-63.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4 128 64c0-17.7-14.3-32-32-32L32 32z\"]\n};\nvar faLinesLeaning = {\n prefix: 'fas',\n iconName: 'lines-leaning',\n icon: [384, 512, [], \"e51e\", \"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [384, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 408c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zM278.6 208c-4.8 26.4-21.5 48.7-44.2 61.2 6.7-17 11.2-38 12.6-61.2l31.6 0zm-173.1 0l31.6 0c1.4 23.1 6 44.2 12.6 61.2-22.7-12.5-39.4-34.8-44.2-61.2zm76.4 55c-6.2-13.4-11.1-32.5-12.7-55l45.8 0c-1.6 22.5-6.5 41.6-12.7 55-4.5 9.6-8.2 13.8-10.2 15.5-2-1.7-5.7-5.8-10.2-15.5zm0-142c4.5-9.6 8.2-13.8 10.2-15.5 2 1.7 5.7 5.8 10.2 15.5 6.2 13.4 11.1 32.5 12.7 55l-45.8 0c1.6-22.5 6.5-41.6 12.7-55zm96.7 55L247 176c-1.4-23.1-6-44.2-12.6-61.2 22.7 12.5 39.4 34.8 44.2 61.2zM137 176l-31.6 0c4.8-26.4 21.5-48.7 44.2-61.2-6.7 17-11.2 38-12.6 61.2zm183 16a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [8734, 9854], \"f534\", \"M0 256c0-88.4 71.6-160 160-160 50.4 0 97.8 23.7 128 64l32 42.7 32-42.7c30.2-40.3 77.6-64 128-64 88.4 0 160 71.6 160 160S568.4 416 480 416c-50.4 0-97.8-23.7-128-64l-32-42.7-32 42.7c-30.2 40.3-77.6 64-128 64-88.4 0-160-71.6-160-160zm280 0l-43.2-57.6c-18.1-24.2-46.6-38.4-76.8-38.4-53 0-96 43-96 96s43 96 96 96c30.2 0 58.7-14.2 76.8-38.4L280 256zm80 0l43.2 57.6c18.1 24.2 46.6 38.4 76.8 38.4 53 0 96-43 96-96s-43-96-96-96c-30.2 0-58.7 14.2-76.8 38.4L360 256z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M288 448l-224 0 0-224 48 0 0-64-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-64 0 0 48zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [576, 512, [9193], \"f04e\", \"M371.7 43.1C360.1 32 343 28.9 328.3 35.2S304 56 304 72l0 136.3-172.3-165.1C120.1 32 103 28.9 88.3 35.2S64 56 64 72l0 368c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9L304 303.7 304 440c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9l192-184c7.9-7.5 12.3-18 12.3-28.9s-4.5-21.3-12.3-28.9l-192-184z\"]\n};\nvar faM = {\n prefix: 'fas',\n iconName: 'm',\n icon: [448, 512, [109], \"4d\", \"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3-133.4 200.1c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 49.9 9.2 37.5 22.7 33.4z\"]\n};\nvar faRoadSpikes = {\n prefix: 'fas',\n iconName: 'road-spikes',\n icon: [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.8-26.6 49.8L64 352 64 116.8zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [512, 512, [127956], \"f6fc\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M168 56l0 40-78.1 0c-14.3 0-25.9 11.6-25.9 25.9 0 4 .9 8 2.7 11.6l33.4 66.8c-11.4 1.8-20.2 11.7-20.2 23.7 0 13.3 10.7 24 24 24l5.6 0-13.6 136-56.2 70.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l248.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L288 384 274.4 248 280 248c13.3 0 24-10.7 24-24 0-11.9-8.7-21.9-20.2-23.7l33.4-66.8c1.8-3.6 2.7-7.6 2.7-11.6 0-14.3-11.6-25.9-25.9-25.9l-78.1 0 0-40 16 0c13.3 0 24-10.7 24-24S245.3 8 232 8l-16 0 0-16c0-13.3-10.7-24-24-24S168-21.3 168-8l0 16-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0zM325.8 279.6l8.5 85.5 47.4 59.2 4.2 5.7c9.2 13.7 14.1 29.9 14.1 46.5 0 12.7-2.8 24.8-7.9 35.5l83.1 0c20.3 0 36.8-16.5 36.8-36.8 0-7.3-2.2-14.4-6.2-20.4l-25.8-38.7 0-64 13.3-13.3c12-12 18.7-28.3 18.7-45.3L512 192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 16-32 0 0-16c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 22.4-10.2 42.4-26.2 55.6z\"]\n};\nvar faTemperatureThreeQuarters = {\n prefix: 'fas',\n iconName: 'temperature-three-quarters',\n icon: [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 156.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature3 = faTemperatureThreeQuarters;\nvar faThermometer3 = faTemperatureThreeQuarters;\nvar faThermometerThreeQuarters = faTemperatureThreeQuarters;\nvar faB = {\n prefix: 'fas',\n iconName: 'b',\n icon: [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l160 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM160 224l-96 0 0-128 96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0 0-128z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M253.4 2.9C249.2 1 244.7 0 240 0s-9.2 1-13.4 2.9L38.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L253.4 2.9zM240 128c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM208 264a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faLitecoinSign = {\n prefix: 'fas',\n iconName: 'litecoin-sign',\n icon: [384, 512, [], \"e1d3\", \"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 157.9-38.6 11c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5L64 271.8 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-162.5 134.6-38.5c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5L128 203.6 128 64z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [512, 512, [], \"f6d1\", \"M224.4 8.3C244-2.8 268-2.8 287.6 8.3l176 99.7c20 11.4 32.4 32.6 32.4 55.7l0 197.4c0 23-12.4 44.3-32.4 55.7l-176 99.7c-19.6 11.1-43.6 11.1-63.1 0l-176-99.7C28.4 405.5 16 384.2 16 361.2l0-197.4c0-23 12.4-44.3 32.4-55.7l176-99.7zM102.6 155.6c-8.8-3.1-18.8 .3-23.8 8.6s-3.2 18.7 3.6 25l3.2 2.4 150.2 90.2 0 148.7c0 11 9 20 20 20 11 0 20-9 20-20l0-148.7 150.3-90.2c9.5-5.7 12.6-18 6.9-27.4s-18-12.5-27.4-6.9l-149.7 89.8-149.7-89.8-3.7-1.7z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z\"]\n};\nvar faGolfBallTee = {\n prefix: 'fas',\n iconName: 'golf-ball-tee',\n icon: [384, 512, [\"golf-ball\"], \"f450\", \"M298.5 384.1c12.1 1.2 21.5 11.5 21.5 23.9s-9.4 22.6-21.5 23.9l-2.5 .1-80 0 0 88c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-88-80 0c-13.3 0-24-10.7-24-24 0-12.4 9.4-22.6 21.5-23.9l2.5-.1 208 0 2.5 .1zM192 0c106 0 192 86 192 192 0 57.4-25.2 108.8-65.1 144L65.1 336C25.2 300.8 0 249.4 0 192 0 86 86 0 192 0zm32 240c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm64-64c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-80-16c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16z\"]\n};\nvar faGolfBall = faGolfBallTee;\nvar faHexagon = {\n prefix: 'fas',\n iconName: 'hexagon',\n icon: [576, 512, [11043], \"f312\", \"M33.5 220.3c-12.7 22.2-12.7 49.4 0 71.5l96.2 168.1c12.8 22.4 36.7 36.2 62.5 36.2l191.6 0c25.8 0 49.7-13.8 62.5-36.2l96.2-168.1c12.7-22.2 12.7-49.4 0-71.5L446.3 52.2C433.5 29.8 409.6 16 383.8 16L192.2 16c-25.8 0-49.7 13.8-62.5 36.2L33.5 220.3z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M56 225.6L32.4 296.2 32.4 96c0-35.3 28.7-64 64-64l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4l117.3 0c35.3 0 64 28.7 64 64l0 16-365.4 0c-41.3 0-78 26.4-91.1 65.6zM477.8 448L99 448c-32.8 0-55.9-32.1-45.5-63.2l48-144C108 221.2 126.4 208 147 208l378.8 0c32.8 0 55.9 32.1 45.5 63.2l-48 144c-6.5 19.6-24.9 32.8-45.5 32.8z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [512, 512, [128331], \"f66b\", \"M256 51.3L92.8 112.4 247.5 171.1c5.5 2.1 11.5 2.1 17 0L419.2 112.4 256 51.3zM0 129.3c0-20 12.4-37.9 31.1-44.9l208-78c10.9-4.1 22.8-4.1 33.7 0l208 78c18.7 7 31.1 24.9 31.1 44.9l0 36-253.2 96c-1.8 .7-3.8 .7-5.7 0l-253.2-96 0-36zm0 140l0-52.7 236.1 89.6c12.8 4.9 26.9 4.9 39.7 0l236.1-89.6 0 52.7-128 48.6 0 51.3 128-48.6 0 62.2c0 20-12.4 37.9-31.1 44.9l-208 78c-10.9 4.1-22.8 4.1-33.7 0l-208-78C12.4 420.7 0 402.7 0 382.7l0-62.2 128 48.6 0-51.3-128-48.6zM236.1 410.1c12.8 4.9 26.9 4.9 39.7 0l60.1-22.8 0-51.3-77.2 29.3c-1.8 .7-3.8 .7-5.7 0l-77.2-29.3 0 51.3 60.1 22.8z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"]\n};\nvar faSingleQuoteRight = {\n prefix: 'fas',\n iconName: 'single-quote-right',\n icon: [192, 512, [], \"e81c\", \"M64 416c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136c0 66.3-53.7 120-120 120l-8 0z\"]\n};\nvar faBottleDroplet = {\n prefix: 'fas',\n iconName: 'bottle-droplet',\n icon: [320, 512, [], \"e4c4\", \"M80 0c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 103.3c64.9 20.4 112 81 112 152.7l0 192c0 35.3-28.7 64-64 64L64 544c-35.3 0-64-28.7-64-64L0 288c0-71.6 47.1-132.3 112-152.7L112 32C94.3 32 80 17.7 80 0zm80 416c35.3 0 64-32.4 64-64 0-21.2-28.9-64.5-47.9-90.6-8.1-11.1-24.2-11.1-32.3 0-19 26.1-47.9 69.4-47.9 90.6 0 31.6 28.7 64 64 64z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M0 416c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [9002], \"f054\", \"M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 394 0 288 0 176 64 16 192 16S384 176 384 288c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2-11.2 31.6-16.9 65.1-16.9 93.5 0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8 10.1-28.5 25-54.1 43.7-71.2z\"]\n};\nvar faLandmarkDome = {\n prefix: 'fas',\n iconName: 'landmark-dome',\n icon: [512, 512, [\"landmark-alt\"], \"f752\", \"M256 0c-17.7 0-32 14.3-32 32 0 .9 0 1.8 .1 2.6-80.5 13.4-144 76.9-157.5 157.4L64 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 160-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6L448 416 448 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-2.7 0c-13.5-80.4-77-143.9-157.5-157.4 .1-.9 .1-1.7 .1-2.6 0-17.7-14.3-32-32-32zm80 256l64 0 0 160-64 0 0-160zM224 416l0-160 64 0 0 160-64 0zM112 256l64 0 0 160-64 0 0-160z\"]\n};\nvar faLandmarkAlt = faLandmarkDome;\nvar faWorm = {\n prefix: 'fas',\n iconName: 'worm',\n icon: [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96l38.4 0C407.9 0 448 40.1 448 89.6L448 376c0 75.1-60.9 136-136 136S176 451.1 176 376l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48S0 490.5 0 464L0 296c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M242.7 80L334 80c-10.7-24.6-29.5-44.9-52.9-57.6L242.7 80zm-.9-70.7C236 8.4 230 8 224 8 174.8 8 132.5 37.6 114 80l80.6 0 47.1-70.7zM224 248c66.3 0 120-53.7 120-120l-240 0c0 66.3 53.7 120 120 120zM98.7 341.8C49.3 370.2 16 423.5 16 484.6 16 499.7 28.3 512 43.4 512l151 0-95.8-170.2zm45.1-17.7l42.7 75.9 85.5 0c44.2 0 80 35.8 80 80 0 11.4-2.4 22.2-6.7 32l59.2 0c15.1 0 27.4-12.3 27.4-27.4 0-90.9-73.7-164.6-164.6-164.6l-86.9 0c-12.6 0-24.9 1.4-36.7 4.1zM213.5 448l36 64 22.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-58.5 0z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M96 157.5C96 88.2 152.2 32 221.5 32L368 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L221.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61l44.1 5.5 222 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l83.1 0C103 204.6 96 181.8 96 157.5zM349.2 336l65.5 0c.9 6.1 1.4 12.2 1.4 18.5 0 69.3-56.2 125.5-125.5 125.5L144 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-6.4-1-12.7-2.8-18.5z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M224 24c0-13.3 10.7-24 24-24 145.8 0 264 118.2 264 264 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-119.3-96.7-216-216-216-13.3 0-24-10.7-24-24zM80 96c26.5 0 48 21.5 48 48l0 224c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16 79.5 0 144 64.5 144 144S255.5 512 176 512 32 447.5 32 368l0-224c0-26.5 21.5-48 48-48zm168 0c92.8 0 168 75.2 168 168 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3-53.7-120-120-120-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm-60 240c0-28.7 23.3-52 52-52s52 23.3 52 52l0 3.8c0 11.7-3.2 23.1-9.3 33l-43.8 71.2 33.1 0c11 0 20 9 20 20s-9 20-20 20l-57.8 0c-14.5 0-26.2-11.7-26.2-26.2 0-4.9 1.3-9.6 3.9-13.8l56.7-92.1c2.2-3.6 3.4-7.8 3.4-12.1l0-3.8c0-6.6-5.4-12-12-12s-12 5.4-12 12c0 11-9 20-20 20s-20-9-20-20zm180-52c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [128763], \"f63c\", \"M363.8 96l57.6 96-133.4 0 0-96 75.8 0zM496 192L418.6 63.1C407.1 43.8 386.2 32 363.8 32L256 32c-17.7 0-32 14.3-32 32l0 128-144 0c-26.5 0-48 21.5-48 48l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32.4 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l160.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l32.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-80c0-26.5-21.5-48-48-48l-64 0zM112 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm376-40a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 32C512 140.1 435.4 230.3 333.6 251.4 325.7 193.3 299.6 141 261.1 100.5 301.2 40 369.9 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z\"]\n};\nvar faSprout = faSeedling;\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [576, 512, [9895, \"transgender-alt\"], \"f225\", \"M128-32c17.7 0 32 14.3 32 32s-14.3 32-32 32L97.9 32 136 70.1 151 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-15 15 14.2 14.2c27.9-23.8 64.2-38.2 103.8-38.2 36.7 0 70.6 12.4 97.6 33.2L466.7 32 448 32c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-84.4 84.4c13 23.1 20.4 49.9 20.4 78.3 0 77.4-55 142-128 156.8l0 35.2 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-35.2c-73-14.8-128-79.4-128-156.8 0-31.4 9-60.7 24.7-85.4l-16.7-16.7-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l15-15-38.1-38.1 0 30.1c0 17.7-14.3 32-32 32S0 113.7 0 96L0 0C0-17.7 14.3-32 32-32l96 0zM288 336a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faTransgenderAlt = faTransgender;\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M304.1 7.6c0-11.1-7.6-20.7-18.4-23.3s-21.9 2.5-27 12.4L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L291 416.1c8-4.1 13.1-12.4 13.1-21.4l0-387.1z\"]\n};\nvar faPhotoFilm = {\n prefix: 'fas',\n iconName: 'photo-film',\n icon: [640, 512, [\"photo-video\"], \"f87c\", \"M192 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224zM320 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm156.5 11.5C472.1 100.4 464.4 96 456 96s-16.1 4.4-20.5 11.5l-54 88.3-17.9-25.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S279.1 288 288 288l256 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144zM144 128l0 160c0 61.9 50.1 112 112 112l192 0 0 16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l80 0zM52 196l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0zm0 96c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0z\"]\n};\nvar faPhotoVideo = faPhotoFilm;\nvar faPictureInPicture = {\n prefix: 'fas',\n iconName: 'picture-in-picture',\n icon: [512, 512, [], \"e80b\", \"M448 32c35.3 0 64 28.7 64 64l0 112-64 0 0-112-384 0 0 320 144 0 0 64-144 0-6.5-.3c-30.1-3.1-54.1-27-57.1-57.1L0 416 0 96C0 62.9 25.2 35.6 57.5 32.3L64 32 448 32zm16 224c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48l160 0z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [320, 512, [], \"e06a\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm64 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [448, 512, [128293], \"f06d\", \"M160.5-26.4c9.3-7.8 23-7.5 31.9 .9 12.3 11.6 23.3 24.4 33.9 37.4 13.5 16.5 29.7 38.3 45.3 64.2 5.2-6.8 10-12.8 14.2-17.9 1.1-1.3 2.2-2.7 3.3-4.1 7.9-9.8 17.7-22.1 30.8-22.1 13.4 0 22.8 11.9 30.8 22.1 1.3 1.7 2.6 3.3 3.9 4.8 10.3 12.4 24 30.3 37.7 52.4 27.2 43.9 55.6 106.4 55.6 176.6 0 123.7-100.3 224-224 224S0 411.7 0 288c0-91.1 41.1-170 80.5-225 19.9-27.7 39.7-49.9 54.6-65.1 8.2-8.4 16.5-16.7 25.5-24.2zM225.7 416c25.3 0 47.7-7 68.8-21 42.1-29.4 53.4-88.2 28.1-134.4-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5-17.3-22.1-49.1-62.4-65.3-83-5.4-6.9-15.2-8-21.5-1.9-18.3 17.8-51.5 56.8-51.5 104.3 0 68.6 50.6 109.2 113.7 109.2z\"]\n};\nvar faMagnifyingGlassPlus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-plus',\n icon: [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 112c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faSearchPlus = faMagnifyingGlassPlus;\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M288 0L128 0C110.3 0 96 14.3 96 32s14.3 32 32 32L128 215.5 7.5 426.3C2.6 435 0 444.7 0 454.7 0 486.4 25.6 512 57.3 512l333.4 0c31.6 0 57.3-25.6 57.3-57.3 0-10-2.6-19.8-7.5-28.4L320 215.5 320 64c17.7 0 32-14.3 32-32S337.7 0 320 0L288 0zM192 215.5l0-151.5 64 0 0 151.5c0 11.1 2.9 22.1 8.4 31.8l41.6 72.7-164 0 41.6-72.7c5.5-9.7 8.4-20.6 8.4-31.8z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faCableCar = {\n prefix: 'fas',\n iconName: 'cable-car',\n icon: [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 24a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-96.2-193.4 55.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l224-64 0 0 224-64c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-206.6 59 0 109.9 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm80 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l56 0 0-96-56 0zm184 96l0-96-80 0 0 96 80 0zm48 0l56 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-56 0 0 96z\"]\n};\nvar faTram = faCableCar;\nvar faKitMedical = {\n prefix: 'fas',\n iconName: 'kit-medical',\n icon: [512, 512, [\"first-aid\"], \"f479\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l16 0 0-384-16 0zm64 0l0 384 256 0 0-384-256 0zM448 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-16 0 0 384 16 0zM224 184c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faFirstAid = faKitMedical;\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nvar faBurger = {\n prefix: 'fas',\n iconName: 'burger',\n icon: [512, 512, [\"hamburger\"], \"f805\", \"M48 384c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l288 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16L48 384zM32 202c0 12.2 9.9 22 22 22L458 224c12.2 0 22-9.9 22-22 0-17.2-2.6-34.4-10.8-49.5-22.2-40.8-82.3-120.5-213.2-120.5S65 111.6 42.8 152.5C34.6 167.6 32 184.8 32 202zM0 304c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 272c-17.7 0-32 14.3-32 32zM256 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM120 128a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm248-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faHamburger = faBurger;\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [640, 512, [9731, 9924], \"f7d0\", \"M403 211.7c32.2-24.9 53-63.9 53-107.7 0-75.1-60.9-136-136-136S184 28.9 184 104c0 43.9 20.8 82.9 53 107.7-32.2 16.3-59 41.8-76.8 73.1L112 264.2 112 224c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 19.6-22.5-9.7c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5c36.1 15.5 75.9 32.5 119.4 51.2-3.9 14.9-6 30.6-6 46.7 0 70 39.1 130.8 96.6 161.9 7.9 4.3 16.9 6.1 25.9 6.1l123 0c9 0 18-1.8 25.9-6.1 57.5-31.1 96.6-92 96.6-161.9 0-16.2-2.1-31.8-6-46.7 43.5-18.7 83.4-35.7 119.4-51.2 12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6l-22.5 9.7 0-19.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40.2-48.2 20.6c-17.9-31.3-44.6-56.8-76.8-73.1zM296 416a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24-120a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM292.2 159.3c-2.7-4.8-4.2-10.2-4.2-15.7 0-17.5 14.2-31.6 31.6-31.6l.8 0c17.5 0 31.6 14.2 31.6 31.6 0 5.5-1.4 10.9-4.2 15.7L327 195.8c-3.1 5.4-10.8 5.4-13.9 0l-20.9-36.6z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [512, 512, [127976], \"f594\", \"M16 24C16 10.7 26.7 0 40 0L472 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 416 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-416-8 0C26.7 48 16 37.3 16 24zm208 88l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM128 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm96 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM112 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 384l43.8 0c9.9 0 17.5-9 14-18.2-13.8-36.1-48.8-61.8-89.7-61.8s-75.9 25.7-89.7 61.8c-3.5 9.2 4.1 18.2 14 18.2l43.8 0 0 80 64 0 0-80z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [128424, 128438, 9113], \"f02f\", \"M64 64C64 28.7 92.7 0 128 0L341.5 0c17 0 33.3 6.7 45.3 18.7l42.5 42.5c12 12 18.7 28.3 18.7 45.3l0 37.5-384 0 0-80zM0 256c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 96c0 17.7-14.3 32-32 32l-32 0 0 64c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-64-32 0c-17.7 0-32-14.3-32-32l0-96zM128 416l0 32 256 0 0-96-256 0 0 64zM456 272a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faVolleyball = {\n prefix: 'fas',\n iconName: 'volleyball',\n icon: [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M512 258.9c-23.4 8-47.8 13.1-72.6 15.1 5.9-98.6-30.7-191.1-94.9-258.3 97.8 36 167.5 130 167.5 240.3 0 1 0 1.9 0 2.9zm-5.9 52c-5.2 23.7-13.6 46.2-24.9 66.9-94.7 52.2-214 50-308.4-13.6 21.7-31.3 49.8-58.9 83.8-80.5 79.5 41.6 168.5 49.1 249.5 27.1zM279.7 241.6c-3.7-89.7-41.7-170.5-101.3-229.7 22.3-7.1 46-11.2 70.5-11.9 92.5 55.9 150.3 160.3 142.4 273.8-38-3.2-75.9-13.7-111.6-32.3zM130.5 32.8C149.1 49.1 165.8 67.7 179.9 88.2 91.5 132.3 29.7 210.3 3.7 299.5 1.3 285.3 0 270.8 0 256 0 160.2 52.6 76.7 130.5 32.8zm73.4 97c16.3 34.5 26.1 72.6 27.9 112.8-75.8 48-126.8 121.3-148.3 202.5-17.6-16.1-33-34.6-45.5-55 2.1-108.1 63.7-210.4 165.9-260.3zM256 512c-47.7 0-92.3-13-130.5-35.7 4.8-24.3 12.6-48 23.2-70.4 82.4 54.4 180.8 68.9 271 47-44.4 37-101.5 59.2-163.7 59.2z\"]\n};\nvar faVolleyballBall = faVolleyball;\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [320, 512, [128678], \"f637\", \"M64-32C28.7-32 0-3.3 0 32L0 384c0 88.4 71.6 160 160 160s160-71.6 160-160l0-352c0-35.3-28.7-64-64-64L64-32zm96 392c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-104a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zM160 152a56 56 0 1 1 0-112 56 56 0 1 1 0 112z\"]\n};\nvar faPlaneCircleCheck = {\n prefix: 'fas',\n iconName: 'plane-circle-check',\n icon: [640, 512, [], \"e555\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M320 16a104 104 0 1 1 0 208 104 104 0 1 1 0-208zM96 88a72 72 0 1 1 0 144 72 72 0 1 1 0-144zM0 416c0-70.7 57.3-128 128-128 12.8 0 25.2 1.9 36.9 5.4-32.9 36.8-52.9 85.4-52.9 138.6l0 16c0 11.4 2.4 22.2 6.7 32L32 480c-17.7 0-32-14.3-32-32l0-32zm521.3 64c4.3-9.8 6.7-20.6 6.7-32l0-16c0-53.2-20-101.8-52.9-138.6 11.7-3.5 24.1-5.4 36.9-5.4 70.7 0 128 57.3 128 128l0 32c0 17.7-14.3 32-32 32l-86.7 0zM472 160a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 432c0-88.4 71.6-160 160-160s160 71.6 160 160l0 16c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [576, 512, [], \"f0a3\", \"M239.2-8c-6.1-6.2-15-8.7-23.4-6.4S200.9-5.6 198.8 2.8L183.5 63c-1.1 4.4-5.6 7-9.9 5.7L113.8 51.9c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l16.9 59.8c1.2 4.3-1.4 8.8-5.7 9.9L35.1 166.5c-8.4 2.1-15 8.7-17.3 17.1s.2 17.3 6.4 23.4l44.5 43.3c3.2 3.1 3.2 8.3 0 11.5L24.3 305.1c-6.2 6.1-8.7 15-6.4 23.4s8.9 14.9 17.3 17.1l60.2 15.3c4.4 1.1 7 5.6 5.7 9.9L84.2 430.5c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l59.8-16.9c4.3-1.2 8.8 1.4 9.9 5.7l15.3 60.2c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l43.3-44.5c3.1-3.2 8.3-3.2 11.5 0L337.3 520c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3L393.1 449c1.1-4.4 5.6-7 9.9-5.7l59.8 16.9c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-16.9-59.8c-1.2-4.3 1.4-8.8 5.7-9.9l60.2-15.3c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-44.5-43.3c-3.2-3.1-3.2-8.3 0-11.5l44.5-43.3c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-60.2-15.3c-4.4-1.1-7-5.6-5.7-9.9l16.9-59.8c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1L403 68.8c-4.3 1.2-8.8-1.4-9.9-5.7L377.8 2.8c-2.1-8.4-8.7-15-17.1-17.3s-17.3 .2-23.4 6.4L294 36.5c-3.1 3.2-8.3 3.2-11.5 0L239.2-8z\"]\n};\nvar faAlarmClock = {\n prefix: 'fas',\n iconName: 'alarm-clock',\n icon: [512, 512, [9200], \"f34e\", \"M504.4 132.5c-4.5 10.5-18.4 9.8-24.9 .4-27.8-40-66.1-72.2-111-92.6-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3zm-471.9 .4c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-44.8 20.4-83.1 52.6-111 92.6zM390.2 467.4C352.8 495.4 306.3 512 256 512s-96.8-16.6-134.1-44.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l35.2-35.2C48.6 384.8 32 338.3 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 50.3-16.6 96.8-44.6 134.2l35.2 35.2c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-35.2-35.2zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l56 56c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-94.1z\"]\n};\nvar faHelicopterSymbol = {\n prefix: 'fas',\n iconName: 'helicopter-symbol',\n icon: [512, 512, [], \"e502\", \"M445.4 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.4 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.2 368.4 66.7 288L2 288zm0-64l64.7 0C80.2 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z\"]\n};\nvar faHouseChimneyCrack = {\n prefix: 'fas',\n iconName: 'house-chimney-crack',\n icon: [512, 512, [\"house-damage\"], \"f6f1\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-105.6 0-38.4-64 80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L218.6 263.2c-14.6-11.5-33.8 7-22.8 22L256 368 170.5 439.2c-6.1 5-7.5 13.8-3.5 20.5l31.3 52.2-86.4 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208z\"]\n};\nvar faHouseDamage = faHouseChimneyCrack;\nvar faPersonMilitaryPointing = {\n prefix: 'fas',\n iconName: 'person-military-pointing',\n icon: [512, 512, [], \"e54a\", \"M214.9 14.1C202 15.2 192 26 192 39 192 52.8 203.2 64 217 64l151 0c8.8 0 16-7.2 16-16l0-30.6C384 8 376 .7 366.7 1.4L214.9 14.1zM208 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L209.6 96c-1 5.2-1.6 10.5-1.6 16zM40 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4 162.8-162.8c-13.3-4.3-27.3-6.5-41.6-6.5L40 224zm345.7 20.9l-171.1 171.1 169.4 0 0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L430.3 290.8c-11.2-19-26.6-34.5-44.6-45.9zM192 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 205.8c-14.8 9.8-31.8 17.7-49.5 24-47 16.8-108.7 26.2-174.5 26.2S96.4 246.5 49.5 229.8c-17.6-6.3-34.7-14.2-49.5-24L0 288c0 44.2 100.3 80 224 80s224-35.8 224-80l0-82.2zm0-77.8l0-48C448 35.8 347.7 0 224 0S0 35.8 0 80l0 48c0 44.2 100.3 80 224 80s224-35.8 224-80zM398.5 389.8C351.6 406.5 289.9 416 224 416S96.4 406.5 49.5 389.8c-17.6-6.3-34.7-14.2-49.5-24L0 432c0 44.2 100.3 80 224 80s224-35.8 224-80l0-66.2c-14.8 9.8-31.8 17.7-49.5 24z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M0 416L0 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 288c0 13.3 10.7 24 24 24s24-10.7 24-24L96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM160 128l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zm24 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0zm-24-72c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0c-13.3 0-24 10.7-24 24zM360 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm1.6 68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm152 0c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm121.8 68.2l30.2-68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16z\"]\n};\nvar faMaximize = {\n prefix: 'fas',\n iconName: 'maximize',\n icon: [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32L24 32C10.7 32 0 42.7 0 56L0 200c0 9.7 5.8 18.5 14.8 22.2S34.1 223.8 41 217l40-40 79 79-79 79-40-40c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312L0 456c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2S270.3 480 280 480l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2S448 209.7 448 200l0-144c0-13.3-10.7-24-24-24L280 32c-9.7 0-18.5 5.8-22.2 14.8S256.2 66.1 263 73l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"]\n};\nvar faExpandArrowsAlt = faMaximize;\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M477.9 75.5c4.5-11.8 1.7-25.2-7.2-34.1s-22.3-11.8-34.1-7.2l-416 160C7.9 199-.3 211.2 0 224.7s9.1 25.4 21.9 29.6l176.8 58.9 58.9 176.8c4.3 12.8 16.1 21.6 29.6 21.9s25.7-7.9 30.6-20.5l160-416z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [576, 512, [127961], \"f64f\", \"M320 0c-35.3 0-64 28.7-64 64l0 32-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72C96 10.7 85.3 0 72 0S48 10.7 48 24l0 74c-27.6 7.1-48 32.2-48 62L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-64 0 0-128c0-35.3-28.7-64-64-64L320 0zm64 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm-16 80c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm112-16c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM128 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zm280 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 48-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0 0 48-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-48 80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0 0-48 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-16z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [512, 512, [127958], \"f5ca\", \"M497.5 341.1c-5.9 16.7-25.3 23-41.1 15.1l-178.2-89.1-1.6 3.2-88.8 177.7 292.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l84.2 0 103.2-206.3 1.6-3.2-165.4-82.7c-15.8-7.9-22.4-27.3-12.5-42 45.9-68.6 124.1-113.8 212.9-113.8 141.4 0 256 114.6 256 256 0 29.8-5.1 58.5-14.5 85.1z\"]\n};\nvar faArrowRightToBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-to-bracket',\n icon: [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignIn = faArrowRightToBracket;\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [448, 512, [], \"f590\", \"M224 64c-79 0-144.7 57.3-157.7 132.7 9.3-3 19.3-4.7 29.7-4.7l16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0c-53 0-96-43-96-96l0-64C0 100.3 100.3 0 224 0S448 100.3 448 224l0 168.1c0 66.3-53.8 120-120.1 120l-87.9-.1-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 0 40 0c39.8 0 72-32.2 72-72l0-20.9c-14.1 8.2-30.5 12.8-48 12.8l-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l16 0c10.4 0 20.3 1.6 29.7 4.7-13-75.3-78.6-132.7-157.7-132.7z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0 316.5 0 341.6 18.7 349.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2 0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6-14.8 0-29.3-5.1-40.9-14.3l-55.3-44.3c-4.5-3.6-9.3-6.7-14.5-9.2-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9c-34.6 6.3-66.4-20.3-66.4-55.4 0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1 0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9 0 110.5 30.1 85.1 63 90.7l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"]\n};\nvar faUpLong = {\n prefix: 'fas',\n iconName: 'up-long',\n icon: [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M137.4-22.6c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S300.9 160 288 160l-64 0 0 336c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-336-64 0c-12.9 0-24.6-7.8-29.6-19.8S.2 114.5 9.4 105.4l128-128z\"]\n};\nvar faLongArrowAltUp = faUpLong;\nvar faHexagonNodes = {\n prefix: 'fas',\n iconName: 'hexagon-nodes',\n icon: [448, 512, [], \"e699\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56s56-25.1 56-56c0-22.3-13.1-41.6-32-50.6l0-98.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-1.6 20.8 8.6 41.6 27.8 52.8c26.8 15.5 61 6.3 76.5-20.5s6.3-61-20.5-76.5c-1.3-.8-2.7-1.5-4-2.1l0-90.8c1.4-.6 2.7-1.3 4-2.1c26.8-15.5 36-49.7 20.5-76.5S390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c2.6 1.8 5.2 3.3 8 4.7l0 90.8c-2.8 1.3-5.5 2.9-8 4.6l-80.1-45.8c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [576, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M128 64c0-35.3 28.7-64 64-64L384 0c35.3 0 64 28.7 64 64l0 64 64 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l64 0 0-64zM272 352c-17.7 0-32 14.3-32 32l0 80 96 0 0-80c0-17.7-14.3-32-32-32l-32 0zM128 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM112 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM512 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faPersonHarassing = {\n prefix: 'fas',\n iconName: 'person-harassing',\n icon: [576, 512, [], \"e549\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l28.1-56.3 54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3 36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"]\n};\nvar faMoneyBillTrendUp = {\n prefix: 'fas',\n iconName: 'money-bill-trend-up',\n icon: [512, 512, [], \"e529\", \"M480 8c0-13.3-10.7-24-24-24L354.2-16c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.9 0-111.3 111.3-95.1-81.5c-9-7.7-22.2-7.7-31.2 0l-112 96c-10.1 8.6-11.2 23.8-2.6 33.8s23.8 11.2 33.8 2.6l96.4-82.6 96.4 82.6c9.5 8.2 23.7 7.6 32.6-1.3l127-127 0 43.9c0 13.3 10.7 24 24 24s24-10.7 24-24L480 8zM48 256c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48L48 256zm47.3 56c-3.4 20.1-19.2 36-39.4 39.4-4.4 .7-8-2.9-8-7.3l0-32c0-4.4 3.6-8 8-8l32 0c4.4 0 8.1 3.6 7.3 8zm0 144.1c.7 4.4-2.9 8-7.3 8l-32 0c-4.4 0-8-3.6-8-8l0-32c0-4.4 3.6-8.1 8-7.3 20.1 3.4 36 19.2 39.4 39.4zM456 416.7c4.4-.7 8 2.9 8 7.3l0 32c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8.1-3.6-7.3-8 3.4-20.1 19.2-36 39.4-39.4zM416.7 312c-.7-4.4 2.9-8 7.3-8l32 0c4.4 0 8 3.6 8 8l0 32c0 4.4-3.6 8.1-8 7.3-20.1-3.4-36-19.2-39.4-39.4zM192 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faPenRuler = {\n prefix: 'fas',\n iconName: 'pen-ruler',\n icon: [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM58.9 315.1L274.1 100 412 237.9 196.9 453.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7zM225.4 80.8L80.8 225.4 11.7 156.3c-15.6-15.6-15.6-40.9 0-56.6l88-88c15.6-15.6 40.9-15.6 56.6 0l5.9 5.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 34.9 34.9zM431.2 286.6l34.9 34.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 5.9 5.9c15.6 15.6 15.6 40.9 0 56.6l-88 88c-15.6 15.6-40.9 15.6-56.6 0l-69.1-69.1 144.6-144.6z\"]\n};\nvar faPencilRuler = faPenRuler;\nvar faRepeat = {\n prefix: 'fas',\n iconName: 'repeat',\n icon: [512, 512, [128257], \"f363\", \"M470.6 118.6c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S352 19.1 352 32l0 32-160 0C86 64 0 150 0 256 0 273.7 14.3 288 32 288s32-14.3 32-32c0-70.7 57.3-128 128-128l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64zM41.4 393.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S160 492.9 160 480l0-32 160 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [129460], \"f5d7\", \"M197.4 160c-3.9 0-7.2-2.8-8.1-6.6-10.2-42.1-48.1-73.4-93.3-73.4-53 0-96 43-96 96 0 29.1 12.9 55.1 33.3 72.7 4.3 3.7 4.3 10.8 0 14.5-20.4 17.6-33.3 43.7-33.3 72.7 0 53 43 96 96 96 45.2 0 83.1-31.3 93.3-73.4 .9-3.8 4.2-6.6 8.1-6.6l245.1 0c3.9 0 7.2 2.8 8.1 6.6 10.2 42.1 48.1 73.4 93.3 73.4 53 0 96-43 96-96 0-29.1-12.9-55.1-33.3-72.7-4.3-3.7-4.3-10.8 0-14.5 20.4-17.6 33.3-43.7 33.3-72.7 0-53-43-96-96-96-45.2 0-83.1 31.3-93.3 73.4-.9 3.8-4.2 6.6-8.1 6.6l-245.1 0z\"]\n};\nvar faFireFlameCurved = {\n prefix: 'fas',\n iconName: 'fire-flame-curved',\n icon: [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0 198.4 0 208 9.6 208 21.3l0 22.1c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7 384 434 306 512 209.7 512L192 512C86 512 0 426 0 320l0-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6 12.5 0 22.6 10.1 22.6 22.6L96 288c0 35.3 28.7 64 64 64s64-28.7 64-64l0-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7 0-27.7 9-54.8 25.6-76.9z\"]\n};\nvar faFireAlt = faFireFlameCurved;\nvar faBusSimple = {\n prefix: 'fas',\n iconName: 'bus-simple',\n icon: [448, 512, [\"bus-alt\"], \"f55e\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-96zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBusAlt = faBusSimple;\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [640, 512, [9892], \"f228\", \"M480-64c-17.7 0-32 14.3-32 32S462.3 0 480 0L530.7 0 474 56.7c-26.3-15.7-57.1-24.7-90-24.7-35.4 0-68.4 10.5-96 28.5-27.6-18-60.6-28.5-96-28.5-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c23.3-4.3 44.9-13.1 64-25.6 27.6 18 60.6 28.5 96 28.5 97.2 0 176-78.8 176-176 0-41.1-14.1-79-37.8-109L576 45.3 576 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L480-64zM336 309.2c20.2-28.6 32-63.5 32-101.2s-11.8-72.6-32-101.2c14.6-6.9 30.8-10.8 48-10.8 61.9 0 112 50.1 112 112S445.9 320 384 320c-17.2 0-33.5-3.9-48-10.8zM288 150.3c10.2 16.9 16 36.6 16 57.7s-5.8 40.9-16 57.7c-10.2-16.9-16-36.6-16-57.7s5.8-40.9 16-57.7zm-48-43.5c-20.2 28.6-32 63.5-32 101.2s11.8 72.6 32 101.2c-14.5 6.9-30.8 10.8-48 10.8-61.9 0-112-50.1-112-112S130.1 96 192 96c17.2 0 33.5 3.9 48 10.8z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M0 56C0 25.1 25.1 0 56 0L437.6 0c21.3 0 36.6 20.3 30.8 40.8L457.1 80 344 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0-9.1-96-62.9 0c-30.9 0-56-25.1-56-56L0 56zM114.3 192L100.6 48 56 48c-4.4 0-8 3.6-8 8l0 128c0 4.4 3.6 8 8 8l58.3 0zM136 384l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faU = {\n prefix: 'fas',\n iconName: 'u',\n icon: [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [\"mail-forward\"], \"f064\", \"M307.8 18.4c-12 5-19.8 16.6-19.8 29.6l0 80-112 0c-97.2 0-176 78.8-176 176 0 113.3 81.5 163.9 100.2 174.1 2.5 1.4 5.3 1.9 8.1 1.9 10.9 0 19.7-8.9 19.7-19.7 0-7.5-4.3-14.4-9.8-19.5-9.4-8.8-22.2-26.4-22.2-56.7 0-53 43-96 96-96l96 0 0 80c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-9.2-9.2-22.9-11.9-34.9-6.9z\"]\n};\nvar faMailForward = faShare;\nvar faPhoneFlip = {\n prefix: 'fas',\n iconName: 'phone-flip',\n icon: [512, 512, [128381, \"phone-alt\"], \"f879\", \"M351.8 25c7.8-18.8 28.4-28.9 48.1-23.5l5.5 1.5c64.6 17.6 119.8 80.2 103.7 156.4-37.1 175-174.8 312.7-349.8 349.8-76.3 16.2-138.8-39.1-156.4-103.7l-1.5-5.5c-5.4-19.7 4.7-40.3 23.5-48.1l97.3-40.5c16.5-6.9 35.6-2.1 47 11.8l38.6 47.2c70.3-34.9 126.8-93.3 159.3-164.9l-44.1-36.1c-13.9-11.3-18.6-30.4-11.8-47L351.8 25z\"]\n};\nvar faPhoneAlt = faPhoneFlip;\nvar faToiletPortable = {\n prefix: 'fas',\n iconName: 'toilet-portable',\n icon: [320, 512, [], \"e583\", \"M0 64l0 16 320 0 0-16c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64zm24 64L0 128 0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-360-296 0zm224 96l24 0 0 96-24 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"]\n};\nvar faPersonPregnant = {\n prefix: 'fas',\n iconName: 'person-pregnant',\n icon: [384, 512, [], \"e31e\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm80 321.2c8.6-4.5 16.8-10 24.3-16.5l4-3.4c22.6-19.4 35.7-47.7 35.7-77.6 0-35.9-18.8-69.1-49.6-87.6l-30.4-18.2 0-1.8c0-46.5-37.7-84.1-84.1-84.1-28.1 0-54.4 14.1-70 37.5L21.4 270.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9l29-43.5-30.5 113.5c-2.6 9.6-.6 19.9 5.5 27.8S94 416 104 416l8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-110.8z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [512, 512, [62774], \"3c\", \"M477.1 50.6c7.4 16 .4 35.1-15.6 42.5L108.4 256 461.4 419c16 7.4 23 26.4 15.6 42.5s-26.4 23-42.5 15.6l-416-192C7.3 279.8 0 268.5 0 256S7.3 232.2 18.6 227l416-192c16-7.4 35.1-.4 42.5 15.6z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [576, 512, [], \"f12b\", \"M544 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16C449.9 27.3 443.5 46.5 451.4 62.3 457 73.5 468.3 80 480 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64z\"]\n};\nvar faCircleStop = {\n prefix: 'fas',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faArrowsUpDown = {\n prefix: 'fas',\n iconName: 'arrows-up-down',\n icon: [256, 512, [\"arrows-v\"], \"f07d\", \"M150.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 77.3 96 434.7 54.6 393.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-41.4 41.4 0-357.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faArrowsV = faArrowsUpDown;\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [512, 512, [\"poo-bolt\"], \"f75a\", \"M268.9-31.8c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1 0 21.7-8.5 37.2-21.9 47.6-13.9 10.8-34.1 17-58.1 17l-24 0c-48.6 0-88 39.4-88 88 0 14.8 3.7 28.8 10.2 41.1-42 6.6-74.2 43-74.2 86.9 0 46.6 36.2 84.7 81.9 87.8 3.1-12.4 9.9-23.8 19.6-32.5L242.7 225c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7l-12.7 42.4c28.8 1.2 52.7 21.1 59.8 47.9l26.2 0c48.6 0 88-39.4 88-88 0-43.9-32.1-80.3-74.2-86.9 6.5-12.3 10.2-26.2 10.2-41.1 0-48.6-39.4-88-88-88l-9.4 0c.9-5.4 1.4-10.9 1.4-16.6 0-48.7-36.1-88.9-83.1-95.2zM144.6 416l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L346.5 412.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L133.5 387.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"]\n};\nvar faPooBolt = faPooStorm;\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [576, 512, [], \"f4e2\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-153-153 0-222.2c0-35.3-28.7-64-64-64L129.8 64 41-24.9zM32 128l0 256c0 35.3 28.7 64 64 64l256 0c7.8 0 15.3-1.4 22.2-4L36 105.8c-2.6 6.9-4 14.4-4 22.2zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"]\n};\nvar faSquareXmark = {\n prefix: 'fas',\n iconName: 'square-xmark',\n icon: [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm71 135c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesSquare = faSquareXmark;\nvar faXmarkSquare = faSquareXmark;\nvar faHandHoldingDroplet = {\n prefix: 'fas',\n iconName: 'hand-holding-droplet',\n icon: [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6L209.2 103C198 119.3 192 138.6 192 158.3l0 1.7c0 53 43 96 96 96s96-43 96-96l0-1.7c0-19.8-6-39-17.2-55.3L300.5 6.6C297.7 2.5 293 0 288 0s-9.7 2.5-12.5 6.6zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faHandHoldingWater = faHandHoldingDroplet;\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.7 28.1 21.9 33.6S-3.9 57.4 1.7 74.1L56.9 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288 279 288 321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288 480 288c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.9 0 55.3-165.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-62 186.1-54.6 0-45.9-183.8C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L179 240 124.4 240 62.4 53.9zm78 234.1l26.6 0-11.4 45.6-15.2-45.6zM245 240l11-44.1 11 44.1-22 0zm100 48l26.6 0-15.2 45.6-11.4-45.6z\"]\n};\nvar faKrw = faWonSign;\nvar faWon = faWonSign;\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zM544 279.4c-9.7-5.6-17.8-13.7-23.4-23.4l-29.2 0c-5.3-17.7-14.8-33.5-27.4-46.4l0-17.6 56.6 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-24.6 64 0 0 24.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M512 240c0 132.5-114.6 240-256 240-37.1 0-72.3-7.4-104.1-20.7L33.5 510.1c-9.4 4-20.2 1.7-27.1-5.8S-2 485.8 2.8 476.8l48.8-92.2C19.2 344.3 0 294.3 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240z\"]\n};\nvar faHillAvalanche = {\n prefix: 'fas',\n iconName: 'hill-avalanche',\n icon: [576, 512, [], \"e507\", \"M440.1 401.9c34.2 23.1 81.1 19.5 111.4-10.8 34.4-34.4 34.4-90.1 0-124.5-27.8-27.8-69.5-33.1-102.6-16-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3 15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7c22.3-14.2 37.1-39.1 37.1-67.5 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-27.3 0-51.5 13.7-65.9 34.6-5.8-20-24.2-34.6-46.1-34.6-26.5 0-48 21.5-48 48 0 4 .5 7.9 1.4 11.6L440.1 401.9zM480.4 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.7 87C43.5 61.8 .4 79.7 .4 115.3L.4 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.7 87z\"]\n};\nvar faArrowsToEye = {\n prefix: 'fas',\n iconName: 'arrows-to-eye',\n icon: [640, 512, [], \"e4bf\", \"M176 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 38.1-63-63c-9.4-9.4-24.6-9.4-33.9 0S21.7 55.6 31 65l63 63-38.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24l0-96zm0 400l0-96c0-13.3-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l38.1 0-63 63c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l63-63 0 38.1c0 13.3 10.7 24 24 24s24-10.7 24-24zm312 24c13.3 0 24-10.7 24-24l0-38.1 63 63c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 38.1 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24l0 96c0 13.3 10.7 24 24 24zM464 56l0 96c0 13.3 10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-38.1 0 63-63c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-63 63 0-38.1c0-13.3-10.7-24-24-24s-24 10.7-24 24zM320 120c-57.3 0-99.4 34-125.6 64.3-20 23.1-32.4 45.8-37.6 56.1-2.5 5-4.9 9.7-4.9 15.6s2.3 10.6 4.9 15.6c5.2 10.3 17.6 33 37.6 56.1 26.2 30.3 68.2 64.3 125.6 64.3s99.4-34 125.6-64.3c20-23.1 32.4-45.8 37.6-56.1 2.5-5 4.9-9.7 4.9-15.6s-2.3-10.6-4.9-15.6c-5.2-10.3-17.6-33-37.6-56.1-26.2-30.3-68.2-64.3-125.6-64.3zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M128 160l0-96c0-35.3 28.7-64 64-64L296.4 0c24.2 0 46.4 13.7 57.2 35.4l87.6 175.1c4.4 8.9 6.8 18.7 6.8 28.6l0 56.9 80 0 0-80c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40l0 208c0 22.1 17.9 40 40 40 13.3 0 24 10.7 24 24s-10.7 24-24 24c-48.6 0-88-39.4-88-88l0-80-63 0c9.5 16.5 15 35.6 15 56 0 61.9-50.1 112-112 112l-224 0c-61.9 0-112-50.1-112-112 0-30.5 12.2-58.2 32-78.4L64 224c0-35.3 28.7-64 64-64zm91.7 34.9l43.6 29.1 113.2 0-80-160-104.4 0 0 108.8 27.7 22.1zM416 400c0-26.5-21.5-48-48-48l-224 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l224 0c26.5 0 48-21.5 48-48zm-280 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm216-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM232 400a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faChartGantt = {\n prefix: 'fas',\n iconName: 'chart-gantt',\n icon: [512, 512, [], \"e0e4\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm64 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0zM384 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [\"video-camera\"], \"f03d\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L96 64zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"]\n};\nvar faVideoCamera = faVideo;\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [384, 512, [9823], \"f443\", \"M192-32c66.3 0 120 53.7 120 120 0 27-8.9 51.9-24 72 17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 26.7 160 56.2 70.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L51.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L80 384 106.7 224 96 224c-17.7 0-32-14.3-32-32s14.3-32 32-32c-15.1-20.1-24-45-24-72 0-66.3 53.7-120 120-120z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [576, 512, [128333], \"f69b\", \"M16 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32-128 0 0-32zm0 368l0-288 128 0 126.2-84.2c10.7-7.2 24.8-7.2 35.5 0l126.2 84.2 128 0 0 288c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64zM560 112l-128 0 0-32c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32zM224 384l0 80 128 0 0-80c0-35.3-28.7-64-64-64s-64 28.7-64 64zm64-152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faBuildingCircleCheck = {\n prefix: 'fas',\n iconName: 'building-circle-check',\n icon: [576, 512, [], \"e4d2\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm96 192c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faWheelchairMove = {\n prefix: 'fas',\n iconName: 'wheelchair-move',\n icon: [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M312 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM205.4 124.1c-6.4-5.2-15.6-4.7-21.4 1.1l-33.4 33.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L138.8 80c29-29 75.2-31.4 107-5.5l81.3 66c21.4 17.4 23.8 49.2 5.2 69.5l-41.8 46 98 0c30.3 0 53 27.7 47.1 57.4L407.4 454.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L369 320 316.8 320c2.1 10.3 3.2 21 3.2 32 0 88.4-71.6 160-160 160S0 440.4 0 352 71.6 192 160 192c6 0 11.9 .3 17.8 1l50.4-50.4-22.7-18.5zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faWheelchairAlt = faWheelchairMove;\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [576, 512, [], \"f505\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l251.5 0C261 469.4 240 414.5 240 356.4l0-31.1c0-7.3 1-14.5 2.9-21.3l-48.6 0zm251 184.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l32 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM288 160c0 35.3-28.7 64-64 64l-96 0 0-128 96 0c35.3 0 64 28.7 64 64zM128 416l0-128 128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0z\"]\n};\nvar faHeartPulse = {\n prefix: 'fas',\n iconName: 'heart-pulse',\n icon: [512, 512, [\"heartbeat\"], \"f21e\", \"M256 107.9L241 87.1C216 52.5 175.9 32 133.1 32 59.6 32 0 91.6 0 165.1l0 2.6c0 23.6 6.2 48 16.6 72.3l106 0c3.2 0 6.1-1.9 7.4-4.9l31.8-76.3c3.7-8.8 12.3-14.6 21.8-14.8s18.3 5.4 22.2 14.1l51.3 113.9 41.4-82.8c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3l23.2 46.3c1.4 2.7 4.1 4.4 7.2 4.4l123.6 0c10.5-24.3 16.6-48.7 16.6-72.3l0-2.6C512 91.6 452.4 32 378.9 32 336.2 32 296 52.5 271 87.1l-15 20.7zM469.6 288l-97.8 0c-21.2 0-40.6-12-50.1-31l-1.7-3.4-42.5 85.1c-4.1 8.3-12.7 13.5-22 13.3s-17.6-5.7-21.4-14.1l-49.3-109.5-10.5 25.2c-8.7 20.9-29.1 34.5-51.7 34.5l-80.2 0c47.2 73.8 123 141.7 170.4 177.9 12.4 9.4 27.6 14.1 43.1 14.1s30.8-4.6 43.1-14.1C346.6 429.7 422.4 361.8 469.6 288z\"]\n};\nvar faHeartbeat = faHeartPulse;\nvar faSquareRootVariable = {\n prefix: 'fas',\n iconName: 'square-root-variable',\n icon: [576, 512, [\"square-root-alt\"], \"f698\", \"M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8 84.4-289.5zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0l41.4 41.4 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l41.4-41.4-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faSquareRootAlt = faSquareRootVariable;\nvar faHandsBubbles = {\n prefix: 'fas',\n iconName: 'hands-bubbles',\n icon: [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM128 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM0 160l.1 72.6c0 44.8 17.6 87.1 47.9 118.4 .3-77 40.1-148.4 105.4-189.3l1.9-1.2c-2.5-3.7-2.8-8.6-.4-12.7l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S182 5 175.4 16.5l-68 117.8 0 0 0 0-43.3 75 0-49.3c0-17.7-14.4-32-32-32S0 142.4 0 160zm213.6-35.9c14.1-8.8 29.8-12.7 45.2-12.1l36.5-63.3c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-67.1 116.2 27-16.9zm86.5-35.7l-16.4 28.4c15.1 5.5 28.6 15.6 38.3 29.7l19.7-34.2c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-12.5 21.7c2 8.6 2.5 17.5 1.7 26.1l4.3 0 0 0 34.4 0 13.7-23.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM283.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C127.3 234.7 96 291.2 96 352l0 8c0 8.9 .8 17.6 2.2 26.1 35.4 8.2 61.8 40 61.8 77.9 0 6.3-.7 12.5-2.1 18.4 25.2 18.6 56.4 29.6 90.1 29.6l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0 0 0 0 0-93.2 0 46.2-28.9c15-9.4 19.5-29.1 10.2-44.1z\"]\n};\nvar faHandsWash = faHandsBubbles;\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M408.8 0c-27.4 0-53.6 10.9-73 30.2L318.1 48 305 34.9c-28.1-28.1-73.7-28.1-101.8 0L103 135c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L237.1 68.9c9.4-9.4 24.6-9.4 33.9 0L284.1 81.9 184 182.1 329.9 328 481.8 176.2c19.4-19.4 30.2-45.6 30.2-73 0-57-46.2-103.2-103.2-103.2zM102.4 263.7c-49.9 49.9-83.3 114-95.5 183.5L.4 483.8C-1 491.6 1.5 499.4 7 505s13.4 8 21.1 6.7l36.7-6.5c69.5-12.3 133.6-45.6 183.5-95.5L296 361.9 150.1 216 102.4 263.7z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M320 32l-8.6 0C300.4 12.9 279.7 0 256 0L128 0C104.3 0 83.6 12.9 72.6 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64zM136 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [512, 512, [], \"f67f\", \"M160 79l0 81-44.8 33.6C103.1 202.7 96 216.9 96 232l0 40-60.6 30.3C13.7 313.2 0 335.3 0 359.6L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-88.4c0-24.2-13.7-46.4-35.4-57.2L416 272 416 232c0-15.1-7.1-29.3-19.2-38.4L352 160 352 79c0-9.5-4.2-18.5-11.5-24.6L271.4-3.2c-8.9-7.4-21.8-7.4-30.7 0L171.5 54.4C164.2 60.5 160 69.5 160 79zm96 241c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1 15.8 23.5 36.7 63.7 49.2 109 7.3 26.4 11.8 55.3 10.3 84 11.6-8.9 23.7-16.7 35.9-23.7 41-23.3 84.4-36.9 112.2-42.5 5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7-9.1 15.9-19.9 31.7-32.5 46.3 27.9 6.6 52.5 17.2 67.3 25.4 5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.2c1.5 6.1-.6 12.5-5.5 16.4s-11.6 4.6-17.2 1.8L280 417.2 280 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.8s-7-10.3-5.5-16.4l8.3-33.2c-22.2 2.6-45 0-65.2-4.6-28.9-6.6-54.5-17.6-69.8-26.1-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14l6.2-3.3c15-7.6 36.8-16.4 61.1-22.2-12.5-14.5-23.3-30.4-32.4-46.2-23.4-40.8-37.1-84-42.7-111.7-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5 12.2 6.9 24.3 14.8 35.8 23.7-1.4-28.7 3.1-57.6 10.3-84 12.5-45.3 33.4-85.5 49.2-109l1.2-1.6C246.9 2 251.3 0 256 0z\"]\n};\nvar faPeopleRoof = {\n prefix: 'fas',\n iconName: 'people-roof',\n icon: [576, 512, [], \"e537\", \"M302.3-12.6c-9-4.5-19.6-4.5-28.6 0l-256 128C1.9 123.3-4.5 142.5 3.4 158.3s27.1 22.2 42.9 14.3L288 51.8 529.7 172.6c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-256-128zM288 272a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 48c-53 0-96 43-96 96l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-53-43-96-96-96zM160 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm352 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM112 336c-44.2 0-80 35.8-80 80l0 33.1c0 17 13.8 30.9 30.9 30.9l87.8 0c-4.3-9.8-6.7-20.6-6.7-32l0-48c0-18.4 3.5-36 9.8-52.2-12.2-7.5-26.5-11.8-41.8-11.8zM425.4 480l87.8 0c17 0 30.9-13.8 30.9-30.9l0-33.1c0-44.2-35.8-80-80-80-15.3 0-29.6 4.3-41.8 11.8 6.3 16.2 9.8 33.8 9.8 52.2l0 48c0 11.4-2.4 22.2-6.7 32z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M236.5 29.4L224 48c-20 30-53.6 48-89.7 48L68 96c-37.5 0-67.9 30.4-67.9 67.9 0 18 7.2 35.2 19.9 47.9l27 27c11 11 17.2 25.9 17.2 41.5 0 15.8-6.4 30.9-17.7 42L33.4 335.1c-11.1 10.8-17.3 25.7-17.3 41.2 0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6 32.8 0 64.2 14.6 85.2 39.8l30.5 36.6c10.4 12.4 25.7 19.6 41.9 19.6 30.1 0 54.5-24.4 54.5-54.5l0-51.2c0-41.4 25.4-78.5 64-93.5l22.2-8.6c25.2-9.8 41.8-34.1 41.8-61.1 0-26.4-15.9-50.3-40.3-60.5L429 164.8c-33.2-13.9-57.6-43-65.5-78.1l-7.9-35.2c-6.8-30.1-33.5-51.5-64.3-51.5-22 0-42.6 11-54.8 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBookBible = {\n prefix: 'fas',\n iconName: 'book-bible',\n icon: [448, 512, [\"bible\"], \"f647\", \"M96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 512zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zM192 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-112 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBible = faBookBible;\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [512, 512, [9794], \"f222\", \"M320 32c0-17.7 14.3-32 32-32L480 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S32 401.2 32 304 110.8 128 208 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM208 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96l0 240 64 0 0-240 384 0 0 240 64 0 0-240c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2 0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8 0-10.6-8.6-19.2-19.2-19.2L19.2 384z\"]\n};\nvar faUserXmark = {\n prefix: 'fas',\n iconName: 'user-xmark',\n icon: [576, 512, [\"user-times\"], \"f235\", \"M254.1 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L46.1 512c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3l59.4 0zM530.3 108.1c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9zM224.4 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"]\n};\nvar faUserTimes = faUserXmark;\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [448, 512, [], \"f74d\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 61.9-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 400 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zm80 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2-26.5 0-48 21.5-48 48l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-96c0-26.5-21.5-48-48-48-12.4 0-23.6 4.7-32.1 12.3-1.9-24.8-22.6-44.3-47.9-44.3-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160 397.3 160 502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2-11.1 13.9-19.4 30.3-23.9 48.1-4.4 17.1 10.4 31.7 28.1 31.7l192 0c17.7 0 32.4-14.6 28.1-31.7-4.5-17.8-12.8-34.1-23.9-48.1 80.5-28.6 123.9-93.7 123.9-176.2 17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [512, 512, [], \"e061\", \"M96 512l64 0c53 0 96-43 96-96l0-80c0-8.8 7.2-16 16-16l1 0c26 0 47-21 47-47 0-11-3.9-21.6-10.9-30.1L273.3 200C271.4 197.6 270.1 194.7 269.7 191.7 254 83.3 160.7 0 48 0 40.4 0 32.9 .4 25.4 1.1 10.5 2.6 0 15.9 0 30.9L0 480c0 17.7 14.3 32 32 32l64 0zm16-320a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm63.1 237.2l-41.5-3.5c-12.2-1-21.6-11.2-21.6-23.4 0-10.8 7.3-20.2 17.8-22.8l40.4-10.1c19.2-4.8 37.8 9.7 37.8 29.5 0 17.8-15.2 31.8-32.9 30.3zM480 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40 24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-64 48a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm128 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM480 504a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40-72a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faPlaneLock = {\n prefix: 'fas',\n iconName: 'plane-lock',\n icon: [640, 512, [], \"e558\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 82.1 75.2C409.7 248.1 400 274.9 400 304l0 24.4c-7.3 6.6-13.6 14.2-18.7 22.7l-37.3-12.4 0 99.7 24 19.2 0 38.3c0 13.5 2.8 26.4 7.8 38.1L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM560 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [\"battery-4\"], \"f241\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l224 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-224 0z\"]\n};\nvar faBattery4 = faBatteryThreeQuarters;\nvar faFrancSign = {\n prefix: 'fas',\n iconName: 'franc-sign',\n icon: [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64l0 256-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"]\n};\nvar faFilterCircleDollar = {\n prefix: 'fas',\n iconName: 'filter-circle-dollar',\n icon: [576, 512, [\"funnel-dollar\"], \"f662\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM416 320c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-45.8 0c-5.6 0-10.2 4.6-10.2 10.2 0 4.9 3.5 9.1 8.3 10l45 8.2c20 3.6 34.6 21.1 34.6 41.5 0 23.3-18.9 42.2-42.2 42.2l-5.8 0 0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l53.8 0c5.6 0 10.2-4.6 10.2-10.2 0-4.9-3.5-9.1-8.3-10l-45-8.2c-20-3.6-34.6-21.1-34.6-41.5 0-22.6 17.7-41 40-42.1l0-8.1z\"]\n};\nvar faFunnelDollar = faFilterCircleDollar;\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M512 240.2l0 15.8-512 0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7 115 0 208.2 93.2 208.2 208.2zm0 63.8l0 112c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-112 512 0z\"]\n};\nvar faCircleH = {\n prefix: 'fas',\n iconName: 'circle-h',\n icon: [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm96-344l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHospitalSymbol = faCircleH;\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [576, 512, [127979], \"f549\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zM224 376l0 88 128 0 0-88c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zm-112 8c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM288 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faTornado = {\n prefix: 'fas',\n iconName: 'tornado',\n icon: [448, 512, [127786], \"f76f\", \"M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16 0-12.5-10.1-22.6-22.6-22.6L32 0C14.3 0 0 14.3 0 32zM355.7 144l-336 0c12.4 29.7 30.2 56.8 52.7 80l339.6 0-47.2-62.9c-3.9-5.2-7-11-9.2-17.1zM242.6 334.7c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1 0-17.1-2.9-34-8.6-49.9L136 272 242.6 334.7zM294.3 400c5.3 17 6.5 35.2 3.6 53l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4 5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c8.5-8.5 15.8-17.8 21.9-27.9l-131.8 0z\"]\n};\nvar faJetFighter = {\n prefix: 'fas',\n iconName: 'jet-fighter',\n icon: [576, 512, [\"fighter-jet\"], \"f0fb\", \"M496.2 206.8c-10.7-4.5-22.2-6.8-33.8-6.8L362 200 248 48 296 48c13.3 0 24-10.7 24-24S309.3 0 296 0L152 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0 152-54.4 0-52.8-66c-3-3.8-7.6-6-12.5-6L16 128c-8.8 0-16 7.2-16 16l0 88 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 88c0 8.8 7.2 16 16 16l24.3 0c4.9 0 9.5-2.2 12.5-6l52.8-66 54.4 0 0 152-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 114-152 100.4 0c11.6 0 23.1-2.3 33.8-6.8l65-27.1c8.9-3.7 14.8-12.5 14.8-22.2s-5.8-18.4-14.8-22.2l-65-27.1z\"]\n};\nvar faFighterJet = faJetFighter;\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M384 32c26.5 0 48 21.5 48 48 0 6.3-1.3 12.2-3.4 17.7 20.4 5.5 35.4 24.1 35.4 46.3 0 9.1-2.6 17.6-7 24.9 22.2 4.2 39 23.7 39 47.1 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 26.5-21.5 48-48 48l-160 0 28.2 70.4c2.5 6.3 3.8 13.1 3.8 19.9l0 4.2c0 27.3-22.1 49.4-49.4 49.4-18.7 0-35.8-10.6-44.2-27.3L170.1 356.3c-6.7-13.3-10.1-28-10.1-42.9l0-186.6c0-19.4 8.9-37.8 24-50l12.2-9.7C224.6 44.4 259.8 32 296.1 32L384 32zM80 96c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l48 0z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [576, 512, [129529], \"f51a\", \"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6-12.5 0-22.6 10.1-22.6 22.6l0 29.1 108.3 108.3 29.1 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8c-22.3 22.3-34.8 52.5-34.8 84 0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9 0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8 30.6-30.6 45.9-73.1 42.3-115.8z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [384, 512, [\"arrow-right-to-file\"], \"f56f\", \"M64 0C28.7 0 0 28.7 0 64l0 240 182.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-182.1 0 0 96c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"]\n};\nvar faArrowRightToFile = faFileImport;\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [512, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M63.9 14.4C63.1 6.2 56.2 0 48 0s-15.1 6.2-16 14.3L17.9 149.7c-1.3 6-1.9 12.1-1.9 18.2 0 45.9 35.1 83.6 80 87.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7 0-6.1-.6-12.2-1.9-18.2L223.9 14.3C223.1 6.2 216.2 0 208 0s-15.1 6.2-15.9 14.4L178.5 149.9c-.6 5.7-5.4 10.1-11.1 10.1-5.8 0-10.6-4.4-11.2-10.2L143.9 14.6C143.2 6.3 136.3 0 128 0s-15.2 6.3-15.9 14.6L99.8 149.8c-.5 5.8-5.4 10.2-11.2 10.2-5.8 0-10.6-4.4-11.1-10.1L63.9 14.4zM448 0C432 0 320 32 320 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448c0-17.7-14.3-32-32-32z\"]\n};\nvar faCutlery = faUtensils;\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 352l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM152 64l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [512, 512, [128375], \"f717\", \"M369.3-31c11.9-3.5 24.4 2.7 29 13.9l.8 2.3 40 136c2.5 8.4 .1 17.5-6.1 23.7l-64.1 64.1 76.4-20.8 19.9-59.8 .9-2.3c5-11.1 17.7-16.8 29.5-12.9 11.8 3.9 18.5 16.1 15.8 28l-.7 2.4-24 72c-2.5 7.6-8.7 13.4-16.5 15.6l-91.1 24.8 91.1 24.8c7.7 2.1 13.9 8 16.5 15.6l24 72 .7 2.4c2.7 11.9-4.1 24.1-15.8 28-11.8 3.9-24.5-1.8-29.5-12.9l-.9-2.3-19.9-59.8-76.4-20.8 64.1 64.1c6.1 6.1 8.5 15.1 6.2 23.4l-40 144-.8 2.3c-4.4 11.3-16.8 17.7-28.8 14.4-12-3.3-19.3-15.2-17.2-27.2l.5-2.4 36.2-130.5-37.2-37.2C351 406 308.4 448 256 448s-95-42-96-94.1l-37 37 36 122.3 .6 2.4c2.2 11.9-4.9 23.9-16.8 27.4-11.9 3.5-24.4-2.7-29-13.9l-.8-2.3-40-136c-2.5-8.4-.1-17.5 6.1-23.8l64.1-64.1-76.4 20.8-19.9 59.8-.9 2.3c-5 11.1-17.7 16.8-29.5 12.9s-18.5-16.1-15.8-28l.7-2.4 24-72c2.5-7.6 8.7-13.4 16.5-15.6l91.1-24.8-91.1-24.8c-7.7-2.1-13.9-8-16.5-15.6l-24-72-.7-2.4c-2.7-11.9 4.1-24.1 15.8-28s24.5 1.8 29.5 12.9l.9 2.3 19.9 59.8 76.4 20.8-64.1-64.1c-6.2-6.2-8.5-15.3-6.1-23.7l40-136 .8-2.3c4.6-11.3 17.1-17.4 29-13.9 11.9 3.5 19 15.5 16.8 27.4l-.6 2.4-36 122.3 53 53c1-43.3 36.4-78.1 79.9-78.1s78.9 34.8 79.9 78.2l53.1-53.1-36-122.3-.6-2.4c-2.2-12 4.9-23.9 16.8-27.4z\"]\n};\nvar faMobileRetro = {\n prefix: 'fas',\n iconName: 'mobile-retro',\n icon: [384, 512, [], \"e527\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm80 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm8 192a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zM168 40c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"]\n};\nvar faSignsPost = {\n prefix: 'fas',\n iconName: 'signs-post',\n icon: [512, 512, [\"map-signs\"], \"f277\", \"M256.4 0c-17.7 0-32 14.3-32 32l0 32-160 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 0 64-153.4 0c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7l153.4 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0 0-64 153.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7l-153.4 0 0-32c0-17.7-14.3-32-32-32z\"]\n};\nvar faMapSigns = faSignsPost;\nvar faGroupArrowsRotate = {\n prefix: 'fas',\n iconName: 'group-arrows-rotate',\n icon: [512, 512, [], \"e4f6\", \"M37.6 122.3c-11.5 18.7-20.6 39-27 60.5-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c18.4-61.9 67.3-110.8 129.2-129.2 16.9-5 26.6-22.9 21.5-39.8S199.8 5.6 182.9 10.6C161.4 17 141.1 26.1 122.3 37.6 112.3 15.4 89.9 0 64 0 28.7 0 0 28.7 0 64 0 89.9 15.4 112.3 37.6 122.3zm436.7 0c22.2-10 37.6-32.4 37.6-58.3 0-35.3-28.7-64-64-64-25.9 0-48.3 15.4-58.3 37.6-18.7-11.5-39-20.6-60.5-27-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c61.9 18.4 110.8 67.3 129.2 129.2 5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.5zM512 448c0-25.9-15.4-48.3-37.6-58.3 11.5-18.7 20.6-39 27-60.5 5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-18.4 61.9-67.3 110.8-129.2 129.2-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.5-27 10 22.2 32.4 37.6 58.3 37.6 35.3 0 64-28.7 64-64zM37.6 389.7c-22.2 10-37.6 32.4-37.6 58.3 0 35.3 28.7 64 64 64 25.9 0 48.3-15.4 58.3-37.6 18.7 11.5 39 20.6 60.5 27 16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-61.9-18.4-110.8-67.3-129.2-129.2-5-16.9-22.9-26.6-39.8-21.5S5.6 312.2 10.6 329.1c6.4 21.5 15.5 41.8 27 60.5zM256 192c15.6 0 30 5.6 41.1 14.9l-15.3 15.3c-6.6 6.6-1.9 17.8 7.4 17.8l60.5 0c5.7 0 10.4-4.7 10.4-10.4l0-60.5c0-9.3-11.2-13.9-17.8-7.4l-11.2 11.2c-19.8-17.9-46.2-28.9-75.1-28.9-43.6 0-81.3 24.9-99.8 61.1-6 11.8-1.4 26.3 10.4 32.3s26.3 1.4 32.3-10.4c10.6-20.8 32.2-34.9 57-34.9zm58.6 93.1c-10.6 20.8-32.2 34.9-57 34.9-15.7 0-30-5.6-41.1-14.9l15.3-15.3c6.6-6.6 1.9-17.8-7.4-17.8L164 272c-5.7 0-10.4 4.7-10.4 10.4l0 60.5c0 9.3 11.2 13.9 17.8 7.4l11.2-11.2c19.8 17.9 46.2 28.9 75.1 28.9 43.6 0 81.3-24.9 99.8-61.1 6-11.8 1.4-26.3-10.4-32.3s-26.3-1.4-32.3 10.4z\"]\n};\nvar faArrowsSplitUpAndLeft = {\n prefix: 'fas',\n iconName: 'arrows-split-up-and-left',\n icon: [512, 512, [], \"e4bc\", \"M342.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l41.4-41.4 0 195.9c-18.8-10.9-40.7-17.1-64-17.1l-114.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 320 224 320c35.3 0 64 28.7 64 64 0 70.7 57.3 128 128 128l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-35.3 0-64-28.7-64-64l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M309.7 71.6l-64.4 64.4 33.4 33.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-33.4-33.4-96.4 96.4c-2.9 2.9-5.1 6.5-6.3 10.3l321.5 0 53.7-53.7c4.9-4.9 7.6-11.5 7.6-18.3s-2.7-13.5-7.6-18.3L346.3 71.6C341.5 66.7 334.9 64 328 64s-13.5 2.7-18.3 7.6zM58.3 232.4l96.4-96.4-49.4-49.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L200 90.7 264.4 26.3C281.3 9.5 304.1 0 328 0s46.7 9.5 63.6 26.3L517.7 152.4C534.5 169.3 544 192.1 544 216s-9.5 46.7-26.3 63.6L311.6 485.7C294.7 502.5 271.9 512 248 512s-46.7-9.5-63.6-26.3L58.3 359.6C41.5 342.7 32 319.9 32 296s9.5-46.7 26.3-63.6zM512 544c-35.3 0-64-28.7-64-64 0-25.2 32.6-79.6 51.2-108.7 6-9.4 19.5-9.4 25.5 0 18.7 29.1 51.2 83.5 51.2 108.7 0 35.3-28.7 64-64 64z\"]\n};\nvar faShieldHeart = {\n prefix: 'fas',\n iconName: 'shield-heart',\n icon: [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM249.6 183.5l6.4 8.5 6.4-8.5c11.1-14.8 28.5-23.5 46.9-23.5 32.4 0 58.7 26.3 58.7 58.7l0 5.3c0 49.1-65.8 98.1-96.5 118.3-9.5 6.2-21.5 6.2-30.9 0-30.7-20.2-96.5-69.3-96.5-118.3l0-5.3c0-32.4 26.3-58.7 58.7-58.7 18.5 0 35.9 8.7 46.9 23.5z\"]\n};\nvar faPersonSkiingNordic = {\n prefix: 'fas',\n iconName: 'person-skiing-nordic',\n icon: [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M424.8 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm99.8 193.7c7.6 15.2 1.9 33.6-12.6 42l0 180.3-32 0 0-164.2-10.1 5c-27.4 13.7-60.7 6.1-79.4-18.2l-19.6-25.5-39.5 68.8 24.8 12.4c29.5 14.7 42.9 49.5 31.1 80.2l-28.2 73.4 149.4 0c7.9 0 15.6-2.3 22.2-6.7l7.9-5.3c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-7.9 5.3C543 506.9 526 512 508.6 512l-189.1 0c-.5 0-1 0-1.5 0L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l88 0c0-8.2 3.1-16.4 9.4-22.6l74.1-74.1 10.2-35.9c11.3 18.3 27.7 33.8 48.4 44.2l4.8 2.4-1.9 6.8c-3 10.5-8.6 20-16.3 27.7l-51.5 51.5 101.3 0 37.1-96.4-55.6-27.8C230.4 319 215.3 267 239.3 227.1l37.7-62.7-27.7-7.7c-9-2.5-18.1 3.2-20 12.3l-5.9 29.3c-3.1 15.6-17.1 26.3-32.5 25.7l-130 208-37.7 0 140.6-225c-3.4-6.3-4.6-13.8-3.1-21.3l5.9-29.3c9.1-45.6 55.1-73.8 99.9-61.4l32.5 9c46.7 13 88 40.8 117.6 79.3l24.9 32.3 40.4-20.2c15.8-7.9 35-1.5 42.9 14.3z\"]\n};\nvar faSkiingNordic = faPersonSkiingNordic;\nvar faSquareCheck = {\n prefix: 'fas',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM342 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 315.2 137 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3 3.5 0 6.9 1.4 9.4 3.9l14.9 14.9c-3.6 9.1-5.5 18.9-5.5 29.2 0 19.9 7.2 38 19.2 52-5.3 9.2-4 21.1 3.8 29 9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9-7.8-7.9-19.8-9.1-29-3.8-14-12-32.1-19.2-52-19.2-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0 66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 48c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-48c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3z\"]\n};\nvar faBathtub = faBath;\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M64 384L48.3 368.3C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L106.7 64 96 64C78.3 64 64 49.7 64 32S78.3 0 96 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 47.6 57.1-85.9 85.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l82.3-82.3c18.7 27.3 28.7 59.7 28.7 93 0 43.7-17.4 85.7-48.3 116.6L256 384 312.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L35.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L64 384z\"]\n};\nvar faPrescriptionBottleMedical = {\n prefix: 'fas',\n iconName: 'prescription-bottle-medical',\n icon: [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zM160 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPrescriptionBottleAlt = faPrescriptionBottleMedical;\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [512, 512, [58055, \"vector-polygon\"], \"f5ee\", \"M64 0c23.7 0 44.4 12.9 55.4 32l273.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 34-26.5 61.8-60 63.9l-2.1 2.9-71.5 99.1c3.6 8 5.6 16.9 5.6 26.2s-2 18.2-5.6 26.2l2.2 3.1 69.3 96 2.1 2.9c33.5 2.1 60 29.9 60 63.9 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-273.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0zM394.2 413.4l-65.5-90.6-2.2-3.1c-2.1 .2-4.3 .3-6.5 .3-35.3 0-64-28.7-64-64s28.7-64 64-64c2.2 0 4.4 .1 6.5 .3l67.7-93.7c-.6-.9-1.1-1.7-1.6-2.6L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l273.1 0c.5-.9 1.1-1.8 1.6-2.6z\"]\n};\nvar faVectorPolygon = faDrawPolygon;\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3l0 95.7-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7S17 513.4 34.7 511.9l8-.7c34.1-2.8 64.2-18.9 85.4-42.9 21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7c-34.1 2.8-64.2 18.9-85.4 42.9-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"]\n};\nvar faHeartCirclePlus = {\n prefix: 'fas',\n iconName: 'heart-circle-plus',\n icon: [576, 512, [], \"e500\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"]\n};\nvar faShieldDog = {\n prefix: 'fas',\n iconName: 'shield-dog',\n icon: [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8 35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7l7.2 14.3 64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4 0-2.8 .6-5.5 1.9-8l15-30zM160 160l48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M21.9 94.4C5.1 88.8-3.9 70.6 1.7 53.9S25.4 28.1 42.1 33.6l384 128C439.2 166 448 178.2 448 192s-8.8 26-21.9 30.4l-384 128c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5L314.8 192 21.9 94.4zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M64.4 175.8L256 33.9 447.6 175.8 289.5 293c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64.4 175.8zM256-32c-12.1 0-23.8 3.9-33.5 11L25.9 124.7C9.6 136.8 0 155.8 0 176.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5-21c-9.7-7.2-21.4-11-33.5-11z\"]\n};\nvar faMound = {\n prefix: 'fas',\n iconName: 'mound',\n icon: [512, 512, [], \"e52d\", \"M112.4 179.2C142 127.7 196.8 96 256.2 96s114.2 31.7 143.9 83.2L508.7 368c12.3 21.3-3.1 48-27.7 48L31.5 416c-24.6 0-40-26.6-27.7-48L112.4 179.2z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M144 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM263.8 320c15.3-22.9 24.2-50.4 24.2-80 0-79.5-64.5-144-144-144S0 160.5 0 240 64.5 384 144 384l352 0c79.5 0 144-64.5 144-144S575.5 96 496 96 352 160.5 352 240c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M200 464l0-170.1c0-3.9-.5-7.8-1.4-11.6L144.4 65.4C162.1 77.2 188.2 88 224 88s61.9-10.8 79.6-22.6L249.4 282.3c-1 3.8-1.4 7.7-1.4 11.6L248 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6L384 48c0-26.5-21.5-48-48-48l-3.5 0c-.3 0-.6 0-1 0-.6 0-1.2 0-1.8 0-18.8 0-34.1 9.7-44.1 18.8-9.3 8.4-28.5 21.2-61.7 21.2s-52.4-12.8-61.7-21.2c-10-9.1-25.3-18.8-44.1-18.8-.6 0-1.2 0-1.8 0-.3 0-.6 0-1 0L112 0C85.5 0 64 21.5 64 48l0 97.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm96 96l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 48 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-35.3-28.7-64-64-64l-16 0c-35.3 0-64 28.7-64 64zm48 32l0-32c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 32-48 0zm152-96c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24l48 0c39.8 0 72-32.2 72-72l0-48c0-39.8-32.2-72-72-72l-48 0zm48 144l-24 0 0-96 24 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24z\"]\n};\nvar faW = {\n prefix: 'fas',\n iconName: 'w',\n icon: [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7L172.2 346.7 257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23L403.8 346.7 514 52.8c6.2-16.5 24.6-24.9 41.2-18.7S580.2 58.7 574 75.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2l-101.6 101.6-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 101.6-101.6c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4-26.6 39.9c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4l39.9-26.6 42.4 0c21.2 0 41.6-8.4 56.6-23.4l109.4-109.4-45.3-45.3-109.4 109.4c-3 3-7.1 4.7-11.3 4.7l-36.1 0 0-36.1c0-4.2 1.7-8.3 4.7-11.3l109.4-109.4-45.3-45.3-109.4 109.4z\"]\n};\nvar faEyeDropperEmpty = faEyeDropper;\nvar faEyedropper = faEyeDropper;\nvar faCircleXmark = {\n prefix: 'fas',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M32 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zm408 16c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM112 136l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm176-24c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM264 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"]\n};\nvar faTurkishLiraSign = {\n prefix: 'fas',\n iconName: 'turkish-lira-sign',\n icon: [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M160 32c17.7 0 32 14.3 32 32l0 43.6 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 46.1 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 162.5 72 0c53 0 96-43 96-96 0-17.7 14.3-32 32-32s32 14.3 32 32c0 88.4-71.6 160-160 160l-104 0c-17.7 0-32-14.3-32-32l0-176.2-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-46.1-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-61.9c0-17.7 14.3-32 32-32z\"]\n};\nvar faTry = faTurkishLiraSign;\nvar faTurkishLira = faTurkishLiraSign;\nvar faVolcano = {\n prefix: 'fas',\n iconName: 'volcano',\n icon: [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15 11.2-18.6 31.6-31 54.8-31s43.6 12.4 54.8 31c11.1-9.4 25.5-15 41.2-15 35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8 19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9 11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4 4.7-3.5zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7 0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8 0 447.1 4.7 434.7 13.2 425.2l150.2-169z\"]\n};\nvar faWandSparkles = {\n prefix: 'fas',\n iconName: 'wand-sparkles',\n icon: [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9c-6.3 7.1-15.3 11.1-24.8 11.1-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7c-6.2-6.2-9.7-14.7-9.7-23.5 0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96zM48 184c0-13.3-10.7-24-24-24S0 170.7 0 184l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c94.7-11.8 168-92.6 168-190.5l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 79.5-64.5 144-144 144S48 303.5 48 224l0-40z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [576, 512, [128081], \"f521\", \"M313 87.2c9.2-7.3 15-18.6 15-31.2 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 12.6 5.9 23.9 15 31.2L194.6 194.8c-10 15.7-31.3 19.6-46.2 8.4L88.9 158.7c4.5-6.4 7.1-14.3 7.1-22.7 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 21.8 17.5 39.6 39.2 40L87.8 393.5c4.7 31.3 31.6 54.5 63.3 54.5l273.8 0c31.7 0 58.6-23.2 63.3-54.5L520.8 176c21.7-.4 39.2-18.2 39.2-40 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 8.4 2.6 16.3 7.1 22.7l-59.4 44.6c-14.9 11.2-36.2 7.3-46.2-8.4L313 87.2z\"]\n};\nvar faTentArrowTurnLeft = {\n prefix: 'fas',\n iconName: 'tent-arrow-turn-left',\n icon: [512, 512, [], \"e580\", \"M-.5 113l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 350.1 0c22.1 0 40 17.9 40 40l0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24c0-48.6-39.4-88-88-88l-350.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9S80.9-2.3 71.5 7L-.5 79c-9.4 9.4-9.4 24.6 0 33.9zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"]\n};\nvar faTruckFast = {\n prefix: 'fas',\n iconName: 'truck-fast',\n icon: [640, 512, [\"shipping-fast\"], \"f48b\", \"M64 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L621.3 192c12 12 18.7 28.3 18.7 45.3L640 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-3.3 0c-35.3 0-64-28.7-64-64l0-48-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 144c-13.3 0-24-10.7-24-24S10.7 96 24 96l40 0zM576 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM256 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faShippingFast = faTruckFast;\nvar faUserPen = {\n prefix: 'fas',\n iconName: 'user-pen',\n icon: [640, 512, [\"user-edit\"], \"f4ff\", \"M256.1 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56c-98.5 0-178.3 79.8-178.3 178.3 0 16.4 13.3 29.7 29.7 29.7l196.5 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l67.3-67.3c-28-18.3-61.4-28.9-97.4-28.9l-59.4 0zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"]\n};\nvar faUserEdit = faUserPen;\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [576, 512, [], \"f4fd\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c3.9 0 7.9 .1 11.8 .4-16.2 28.2-25.5 60.8-25.5 95.6 0 41.8 13.4 80.5 36 112L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [128703], \"f2cc\", \"M64 131.9c0-19.8 16.1-35.9 35.9-35.9 9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32 44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faSquareCaretUp = {\n prefix: 'fas',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faMapLocation = {\n prefix: 'fas',\n iconName: 'map-location',\n icon: [640, 512, [\"map-marked\"], \"f59f\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM392 341.9c0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9S392 276.8 392 341.9z\"]\n};\nvar faMapMarked = faMapLocation;\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1c15-17.2 36.7-27.1 59.6-27.1 43.6 0 79 35.4 79 79 0 22.8-9.9 44.6-27.1 59.6L283.7 313.8 273 303 209 239 198.2 228.3 373.5 27.1zM161.1 259C162 260 188 286 239 337l13.9 13.9-17.1 74.2c-3.9 17.1-16.9 30.7-33.8 35.4l-169.8 47.5 92.3-92.3c1.2 .1 2.3 .2 3.5 .2 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 1.2 .1 2.4 .2 3.5L3.9 479.8 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8L161.1 259z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [448, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M73.3 192C100.8 99.5 186.5 32 288 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-65.6 0-122 39.5-146.7 96L272 192c13.3 0 24 10.7 24 24s-10.7 24-24 24l-143.2 0c-.5 5.3-.8 10.6-.8 16s.3 10.7 .8 16L272 272c13.3 0 24 10.7 24 24s-10.7 24-24 24l-130.7 0c24.7 56.5 81.1 96 146.7 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-101.5 0-187.2-67.5-214.7-160L40 320c-13.3 0-24-10.7-24-24s10.7-24 24-24l24.6 0c-.7-10.5-.7-21.5 0-32L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l33.3 0z\"]\n};\nvar faEur = faEuroSign;\nvar faEuro = faEuroSign;\nvar faHouseCircleXmark = {\n prefix: 'fas',\n iconName: 'house-circle-xmark',\n icon: [640, 512, [], \"e50b\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.2 47.2-175.9 114.8-5-1.8-10.5-2.8-16.1-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 90.9 0c6.1 17.3 14.6 33.4 25.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM555.3 340.7c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [8356], \"f195\", \"M84.9 256l-28.4 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11.6 0C53.2 124.7 116.8 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-53.8 0-90.1 52.9-73.5 102l162.4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-145.1 0c2.3 10.6 3.6 21.3 3.9 32l141.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L150 336c-4.8 18.6-12.6 36.5-23.6 52.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c3.7-5.6 6.9-11.4 9.4-17.4l-26 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l34.8 0c-.5-10.8-2.6-21.6-6.4-32z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M74.9 46.7c-9.6-14.9-29.4-19.2-44.2-9.6S11.5 66.4 21.1 81.3L143.7 272 88 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 32-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-32 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-55.7 0 122.6-190.7c9.6-14.9 5.3-34.7-9.6-44.2s-34.7-5.3-44.2 9.6L192 228.8 74.9 46.7z\"]\n};\nvar faCny = faYenSign;\nvar faJpy = faYenSign;\nvar faRmb = faYenSign;\nvar faYen = faYenSign;\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M560.3 237.2c10.4 11.8 28.3 14.4 41.8 5.5 14.7-9.8 18.7-29.7 8.9-44.4l-48-72c-2.8-4.2-6.6-7.7-11.1-10.2L351.4 4.7c-19.3-10.7-42.8-10.7-62.2 0L88.8 116c-5.4 3-9.7 7.4-12.6 12.8L27.7 218.7c-12.6 23.4-3.8 52.5 19.6 65.1l33 17.7 0 53.3c0 23 12.4 44.3 32.4 55.7l176 99.7c19.6 11.1 43.5 11.1 63.1 0l176-99.7c20.1-11.4 32.4-32.6 32.4-55.7l0-117.5zm-240-9.8L170.2 144 320.3 60.6 470.4 144 320.3 227.4zm-41.5 50.2l-21.3 46.2-165.8-88.8 25.4-47.2 161.7 89.8z\"]\n};\nvar faTruckField = {\n prefix: 'fas',\n iconName: 'truck-field',\n icon: [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l40.4 0c32.4 0 61.6 19.6 74 49.5l43.8 106.3 1.7 4.2 24.7 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8l-144.7 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-3.6 .2-7.1 .6-10.5-19-6.4-32.6-24.4-32.6-45.5l0-48c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zm352 32l0 96 82.1 0-35.4-86.1c-2.5-6-8.3-9.9-14.8-9.9L384 128zM192 392a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm280 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faLocationPinLock = {\n prefix: 'fas',\n iconName: 'location-pin-lock',\n icon: [512, 512, [], \"e51f\", \"M0 188.6C0 84.4 86 0 192 0 294.1 0 377.6 78.3 383.6 177 320.7 185.1 272 238.8 272 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 75.7c-9.9 11.6-18.9 21.7-26.4 29.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm240 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM288 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faPersonPraying = {\n prefix: 'fas',\n iconName: 'person-praying',\n icon: [384, 512, [128720, \"pray\"], \"f683\", \"M320 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM200.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36c-15.6-21.5-40.6-34.2-67.2-34.2-30.9 0-59.2 17.1-73.6 44.4L47.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L126.6 432 40 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7l-116.1-85.8 45-90z\"]\n};\nvar faPray = faPersonPraying;\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32 0c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zm0 128c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM96 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faSackDollar = {\n prefix: 'fas',\n iconName: 'sack-dollar',\n icon: [512, 512, [128176], \"f81d\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM260 224c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L216 384c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"]\n};\nvar faMountainSun = {\n prefix: 'fas',\n iconName: 'mountain-sun',\n icon: [576, 512, [], \"e52f\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4zM496.5 160a80 80 0 1 1 0-160 80 80 0 1 1 0 160z\"]\n};\nvar faArrowUpWideShort = {\n prefix: 'fas',\n iconName: 'arrow-up-wide-short',\n icon: [576, 512, [\"sort-amount-up\"], \"f161\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSortAmountUp = faArrowUpWideShort;\nvar faUsersLine = {\n prefix: 'fas',\n iconName: 'users-line',\n icon: [576, 512, [], \"e592\", \"M224 128a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 336c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8zM392 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0c-18.2 26-28.8 57.5-28.8 91.6l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 368 32 358.4 32 346.7L32 336c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM0 440c0-13.3 10.7-24 24-24l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 464c-13.3 0-24-10.7-24-24z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [512, 512, [10017], \"f69a\", \"M415.9 311.9l-27.8 48.1 55.7 0-27.8-48.1zM383.6 256l-60.2-104-134.8 0-60.2 104 60.2 104 134.8 0 60.2-104zm64.7 0l58.4 100.9c3.5 6 5.3 12.8 5.3 19.7 0 21.7-17.6 39.4-39.4 39.4l-117 0-61.3 105.8C286.5 535.6 271.8 544 256 544s-30.5-8.4-38.4-22.2l-61.3-105.8-117 0c-21.7 0-39.4-17.6-39.4-39.4 0-6.9 1.8-13.7 5.3-19.7L63.7 256 5.3 155.1C1.8 149.1 0 142.3 0 135.4 0 113.6 17.6 96 39.4 96l117 0 61.3-105.8C225.5-23.6 240.2-32 256-32s30.5 8.4 38.4 22.2l61.3 105.8 117 0c21.7 0 39.4 17.6 39.4 39.4 0 6.9-1.8 13.7-5.3 19.7L448.3 256zM388.1 152l27.8 48.1 27.8-48.1-55.7 0zM291 96l-35-60.4-35 60.4 70 0zM123.9 152l-55.7 0 27.8 48.1 27.8-48.1zM96.1 311.9l-27.8 48.1 55.7 0-27.8-48.1zM221 416l35 60.4 35-60.4-70 0z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [512, 512, [], \"f481\", \"M96 352c0 35.3 28.7 64 64 64l181.5 0c17 0 33.3-6.7 45.3-18.7L493.3 290.7c12-12 18.7-28.3 18.7-45.3L512 64c0-35.3-28.7-64-64-64L160 0C124.7 0 96 28.7 96 64l0 288zM288 112l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 448c0 35.3 28.7 64 64 64l264 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-328z\"]\n};\nvar faAustralSign = {\n prefix: 'fas',\n iconName: 'austral-sign',\n icon: [448, 512, [], \"e0a9\", \"M266.5 240l-85 0 42.5-106.4 42.5 106.4zm68.9 0L262.9 58.3C256.5 42.4 241.1 32 224 32s-32.5 10.4-38.9 26.3L112.6 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l61.4 0-19.2 48-42.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l23.1 0-20.8 52.1c-6.6 16.4 1.4 35 17.9 41.6s35-1.4 41.6-17.9l30.3-75.9 200 0 30.3 75.9c6.6 16.4 25.2 24.4 41.6 17.9s24.4-25.2 17.9-41.6L392.9 384 416 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-42.3 0-19.2-48 61.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80.6 0zm-49.7 48l19.2 48-161.6 0 19.2-48 123.3 0z\"]\n};\nvar faClipboardUser = {\n prefix: 'fas',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 344a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM98.3 413c-12.9 15.6 2.2 35 22.4 35l142.5 0c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM92.6 448l198.8 0c15.8 0 28.6-12.8 28.6-28.6 0-7.3-2.8-14.4-7.9-19.7L215.3 297.9c-6-6.3-14.4-9.9-23.2-9.9l-.3 0c-8.8 0-17.1 3.6-23.2 9.9L71.9 399.7C66.8 405 64 412.1 64 419.4 64 435.2 76.8 448 92.6 448z\"]\n};\nvar faSquareCaretRight = {\n prefix: 'fas',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L306.7 64 28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1l278.6-278.6 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zM205.3 256l146.7-146.7 50.7 50.7-96 96-101.5 0z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [576, 512, [128641], \"f533\", \"M176 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0 0 48-220.8 0-32.8-39.4C69.9 83.2 63.1 80 56 80L24 80C15.7 80 8 84.3 3.6 91.4s-4.8 15.9-1.1 23.4l48 96C54.6 218.9 62.9 224 72 224l107.8 0 104 143.1c15.1 20.7 39.1 32.9 64.7 32.9l75.5 0c75.1 0 136-60.9 136-136S499.1 128 424 128l-48 0 0-48 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L176 32zM376 192l48 0c39.8 0 72 32.2 72 72s-32.2 72-72 72l-48 0 0-144zM552 416c-13.3 0-24 10.7-24 24 0 4.4-3.6 8-8 8l-272 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3 0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3 0 15.9-6 31.2-16.8 42.9L352 384zM32 464c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 16c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-59.5-25.8-28.3c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l71.7 78.8c9.4 10.3 14.6 23.7 14.6 37.7L512 376c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 161.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z\"]\n};\nvar faEnvelopeCircleCheck = {\n prefix: 'fas',\n iconName: 'envelope-circle-check',\n icon: [640, 512, [], \"e4e8\", \"M64 112c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 81.4c-24.4-11.2-51.4-17.4-80-17.4-87.7 0-161.7 58.8-184.7 139.2-7.1-1.3-14.1-4.2-20.1-8.8l-208-156C71.1 141.3 64 127.1 64 112zM304 368c0 28.6 6.2 55.6 17.4 80L128 448c-35.3 0-64-28.7-64-64l0-188 198.4 148.8c12.6 9.4 26.9 15.4 41.7 17.9 0 1.8-.1 3.5-.1 5.3zm48 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faPersonSkating = {\n prefix: 'fas',\n iconName: 'person-skating',\n icon: [512, 512, [\"skating\"], \"f7c5\", \"M368 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM128 128c0-17.7 14.3-32 32-32l150.1 0c49.9 0 74.9 60.3 39.6 95.6l-63.9 63.9 69.8 31c17.3 7.7 28.5 24.9 28.5 43.9l0 85.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-75.2-82.4-36.6c-41-18.2-51-72-19.3-103.7l40.4-40.4-98.7 0c-17.7 0-32-14.3-32-32zM89.4 361.4l75.9-75.9c7.7 19.7 21.6 37.3 41 49.6l-71.6 71.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm346.5 87.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM143.2 486.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L12.7 419.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"]\n};\nvar faSkating = faPersonSkating;\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [576, 512, [9728], \"f185\", \"M288-32c8.4 0 16.3 4.4 20.6 11.7L364.1 72.3 468.9 46c8.2-2 16.9 .4 22.8 6.3S500 67 498 75.1l-26.3 104.7 92.7 55.5c7.2 4.3 11.7 12.2 11.7 20.6s-4.4 16.3-11.7 20.6L471.7 332.1 498 436.8c2 8.2-.4 16.9-6.3 22.8S477 468 468.9 466l-104.7-26.3-55.5 92.7c-4.3 7.2-12.2 11.7-20.6 11.7s-16.3-4.4-20.6-11.7L211.9 439.7 107.2 466c-8.2 2-16.8-.4-22.8-6.3S76 445 78 436.8l26.2-104.7-92.6-55.5C4.4 272.2 0 264.4 0 256s4.4-16.3 11.7-20.6L104.3 179.9 78 75.1c-2-8.2 .3-16.8 6.3-22.8S99 44 107.2 46l104.7 26.2 55.5-92.6 1.8-2.6c4.5-5.7 11.4-9.1 18.8-9.1zm0 144a144 144 0 1 0 0 288 144 144 0 1 0 0-288zm0 240a96 96 0 1 1 0-192 96 96 0 1 1 0 192z\"]\n};\nvar faBaseball = {\n prefix: 'fas',\n iconName: 'baseball',\n icon: [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M232.4 1.1c-122.2 11.4-219.5 108.7-230.9 230.9 16.2-.1 32-1.8 47.2-5 13-2.7 25.7 5.5 28.4 18.5s-5.5 25.7-18.5 28.4c-18.4 3.9-37.6 6-57.1 6.1 11.4 122.2 108.7 219.5 230.9 230.9 .1-19.5 2.2-38.7 6.1-57.1 2.7-13 15.5-21.3 28.4-18.5s21.3 15.5 18.5 28.4c-3.2 15.2-4.9 31-5 47.2 122.2-11.4 219.5-108.7 230.9-230.9-16.2 .1-32 1.8-47.2 5-13 2.7-25.7-5.5-28.4-18.5s5.5-25.7 18.5-28.4c18.4-3.9 37.6-6 57.1-6.1-11.4-122.2-108.7-219.5-230.9-230.9-.1 19.5-2.2 38.7-6.1 57.1-2.7 13-15.5 21.3-28.4 18.5s-21.3-15.5-18.5-28.4c3.2-15.2 4.9-31 5-47.2zm2.8 151.4c-21.4 32.9-49.5 60.9-82.3 82.3-11.1 7.2-26 4.1-33.2-7s-4.1-26 7-33.2c27.2-17.7 50.5-41 68.3-68.3 7.2-11.1 22.1-14.3 33.2-7s14.3 22.1 7 33.2zM393.1 284.2c7.2 11.1 4.1 26-7 33.2-27.2 17.7-50.5 41-68.3 68.3-7.2 11.1-22.1 14.3-33.2 7s-14.3-22.1-7-33.2c21.4-32.9 49.5-60.9 82.3-82.3 11.1-7.2 26-4.1 33.2 7z\"]\n};\nvar faBaseballBall = faBaseball;\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [448, 512, [], \"f03e\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM272 224c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7 .5 24.3S368.7 416 360 416L88 416c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z\"]\n};\nvar faNotdef = {\n prefix: 'fas',\n iconName: 'notdef',\n icon: [384, 512, [], \"e1fe\", \"M64 390.3L153.5 256 64 121.7 64 390.3zM102.5 448L281.5 448 192 313.7 102.5 448zm128-192L320 390.3 320 121.7 230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"]\n};\nvar faBasketball = {\n prefix: 'fas',\n iconName: 'basketball',\n icon: [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M92.7 58.8l78.4 78.4c18.2-25 28.9-55.9 28.9-89.2 0-14.1-1.9-27.7-5.5-40.6-38 9.4-72.6 27.2-101.8 51.4zM58.8 92.7c-24.2 29.2-42 63.8-51.4 101.8 12.9 3.6 26.5 5.5 40.6 5.5 33.3 0 64.1-10.7 89.2-28.9L58.8 92.7zM256 0c-4.6 0-9.2 .1-13.7 .4 3.7 15.3 5.7 31.2 5.7 47.6 0 46.6-15.9 89.4-42.6 123.4L256 222.1 419.3 58.8C374.9 22.1 318.1 0 256 0zM48 248c-16.4 0-32.4-2-47.6-5.7-.2 4.5-.4 9.1-.4 13.7 0 62.1 22.1 118.9 58.8 163.3L222.1 256 171.4 205.4C137.4 232.1 94.6 248 48 248zm463.6 21.7c.2-4.5 .4-9.1 .4-13.7 0-62.1-22.1-118.9-58.8-163.3L289.9 256 340.6 306.6c34-26.7 76.9-42.6 123.4-42.6 16.4 0 32.4 2 47.6 5.7zm-7.1 47.8c-12.9-3.6-26.5-5.5-40.6-5.5-33.3 0-64.1 10.7-89.2 28.9l78.4 78.4c24.2-29.2 42-63.8 51.4-101.8zM340.9 374.8c-18.2 25-28.9 55.9-28.9 89.2 0 14.1 1.9 27.7 5.5 40.6 38-9.4 72.6-27.2 101.8-51.4l-78.4-78.4zm-34.3-34.3L256 289.9 92.7 453.2c44.3 36.7 101.2 58.8 163.3 58.8 4.6 0 9.2-.1 13.7-.4-3.7-15.3-5.7-31.2-5.7-47.6 0-46.6 15.9-89.4 42.6-123.4z\"]\n};\nvar faBasketballBall = faBasketball;\nvar faPencil = {\n prefix: 'fas',\n iconName: 'pencil',\n icon: [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M36.4 353.2c4.1-14.6 11.8-27.9 22.6-38.7l181.2-181.2 33.9-33.9c16.6 16.6 51.3 51.3 104 104l33.9 33.9-33.9 33.9-181.2 181.2c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 510.6c-8.3 2.3-17.3 0-23.4-6.2S-1.4 489.3 .9 481L36.4 353.2zm55.6-3.7c-4.4 4.7-7.6 10.4-9.3 16.6l-24.1 86.9 86.9-24.1c6.4-1.8 12.2-5.1 17-9.7L91.9 349.5zm354-146.1c-16.6-16.6-51.3-51.3-104-104L308 65.5C334.5 39 349.4 24.1 352.9 20.6 366.4 7 384.8-.6 404-.6S441.6 7 455.1 20.6l35.7 35.7C504.4 69.9 512 88.3 512 107.4s-7.6 37.6-21.2 51.1c-3.5 3.5-18.4 18.4-44.9 44.9z\"]\n};\nvar faPencilAlt = faPencil;\nvar faPersonWalkingArrowLoopLeft = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-loop-left',\n icon: [640, 512, [], \"e551\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM359 335c-9.4 9.4-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 102.1 0c1.2 0 2.4-.1 3.5-.3 56.1-3.9 100.5-50.6 100.5-107.7 0-59.6-48.4-108-108-108l-92 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l92 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-98.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-72 72z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAnglesDown = {\n prefix: 'fas',\n iconName: 'angles-down',\n icon: [384, 512, [\"angle-double-down\"], \"f103\", \"M214.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 402.7 329.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 210.7 329.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faAngleDoubleDown = faAnglesDown;\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [576, 512, [128137], \"f48e\", \"M497.5-17c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-46.1 46.1-63-63c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l7 7-78.1 78.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-46.1 46.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-37.7 37.7c-10.5 10.5-16.4 24.7-16.4 39.6l0 88.8-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 88.8 0c14.9 0 29.1-5.9 39.6-16.4l229.7-229.7 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 46.1-46.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"]\n};\nvar faWheatAwn = {\n prefix: 'fas',\n iconName: 'wheat-awn',\n icon: [576, 512, [\"wheat-alt\"], \"e2cd\", \"M79.7 234.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0L134.1 444.3 49.4 529c-9.4 9.4-24.5 9.4-33.9 0-9.4-9.4-9.4-24.6 0-33.9l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zm104-104c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM495.2 15c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.2L529.2 49 414.7 163.4c7.7 1 15.2 3 22.5 5.9L495.5 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-58.3 58.3c2.8 7.1 4.7 14.5 5.7 22.1L495.2 15z\"]\n};\nvar faWheatAlt = faWheatAwn;\nvar faPlaneUp = {\n prefix: 'fas',\n iconName: 'plane-up',\n icon: [512, 512, [], \"e22d\", \"M200 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 173.6 159.2c6.6 6.1 10.4 14.6 10.4 23.6l0 43.7c0 10.9-10.7 18.6-21.1 15.2l-162.9-54.3 0 99.7 66 52.8c3.8 3 6 7.6 6 12.5l0 19.8c0 10.4-9.8 18-19.9 15.5L256 512 147.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C26.7 396.4 16 388.7 16 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L200 151.3 200 24z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96 256 43 256 96-114.6 96-256 96zM0 352L0 242.7c16.9 12.3 37 22.2 58.1 30.1 53 19.9 123 31.2 197.9 31.2s144.9-11.3 197.9-31.2c21.2-7.9 41.2-17.8 58.1-30.1L512 352c0 53-114.6 96-256 96S0 405 0 352z\"]\n};\nvar faCircleArrowLeft = {\n prefix: 'fas',\n iconName: 'circle-arrow-left',\n icon: [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM135 239l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-39 39 150.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-150.1 0 39 39c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faArrowCircleLeft = faCircleArrowLeft;\nvar faPlugCircleBolt = {\n prefix: 'fas',\n iconName: 'plug-circle-bolt',\n icon: [640, 512, [], \"e55b\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S433.2 416 440 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S558.8 384 552 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M80 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C44.4 156.9 83.6 128 128 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faAnchorLock = {\n prefix: 'fas',\n iconName: 'anchor-lock',\n icon: [640, 512, [], \"e4ad\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 28.3 0 55.4-5.7 80-15.9l0-.2 0-72.2c-14.4 9.6-30.6 16.7-48 20.7l0-257.9c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm272 304.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416.5 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faTimeline = {\n prefix: 'fas',\n iconName: 'timeline',\n icon: [576, 512, [], \"e29c\", \"M160 169.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3l0 54.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 0 54.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-256 0 0-54.7z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M292.9 384c7.3-22.3 21.9-42.5 38.4-59.9 32.7-34.4 52.7-80.9 52.7-132.1 0-106-86-192-192-192S0 86 0 192c0 51.2 20 97.7 52.7 132.1 16.5 17.4 31.2 37.6 38.4 59.9l201.7 0zM288 432l-192 0 0 16c0 44.2 35.8 80 80 80l32 0c44.2 0 80-35.8 80-80l0-16zM184 112c-39.8 0-72 32.2-72 72 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3 53.7-120 120-120 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faCircleArrowRight = {\n prefix: 'fas',\n iconName: 'circle-arrow-right',\n icon: [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm41-159c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39-150.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l150.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80z\"]\n};\nvar faArrowCircleRight = faCircleArrowRight;\nvar faMarsAndVenus = {\n prefix: 'fas',\n iconName: 'mars-and-venus',\n icon: [512, 512, [9893], \"f224\", \"M368 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7-63 63c19.5 28.4 31 62.7 31 99.8 0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-81.9-15-144-86.8-144-173.1 0-97.2 78.8-176 176-176 37 0 71.4 11.4 99.8 31l63-63-34.7 0zM352 208a112 112 0 1 0 -224 0 112 112 0 1 0 224 0z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [576, 512, [], \"f6ff\", \"M248 88l80 0 0 48-80 0 0-48zm-8-56c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l16 0 0 32-224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 192 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-32 16 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-96 0zM448 376l8 0 0 48-80 0 0-48 72 0zm-256 0l8 0 0 48-80 0 0-48 72 0z\"]\n};\nvar faBuildingShield = {\n prefix: 'fas',\n iconName: 'building-shield',\n icon: [576, 512, [], \"e4d8\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0c-12.5-14.7-23.2-30.8-31.8-48l-89.5 0 0-80c0-17.7 14.3-32 32-32l32 0 0-26.7c0-18.1 6.1-35.2 16.6-48.8-.4-1.4-.6-2.9-.6-4.5l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 1 86.7-28.9c3.1-1 6.2-1.8 9.3-2.5L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM445.3 488.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [576, 512, [], \"f121\", \"M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faFeatherPointed = {\n prefix: 'fas',\n iconName: 'feather-pointed',\n icon: [512, 512, [\"feather-alt\"], \"f56b\", \"M475.3 .1c9.9-.8 19.6 3 26.6 10s10.8 16.7 10 26.6c-4 49.3-17.4 126.2-46.3 199.7-1.8 4.5-5.5 7.9-10.2 9.3L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l38.6 0c12 0 19.7 12.8 13.5 23.1-4 6.7-8.3 13.2-12.7 19.6-2 2.9-5 5-8.4 6.1L310.5 366c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l16 0c14.6 0 21 17.4 8.8 25.4-68 45-137.7 43.3-182.4 31.3-12.7-3.4-24-9.9-34.4-17.9L48 496c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32l80-80 .5 .5c.7-1.3 1.6-2.5 2.7-3.6L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L89.7 326.2c-8.9 8.9-24 4.4-25-8.2-4.3-53.2 9.3-123.1 72.6-186.4 91.1-91.1 254.2-124.7 337.9-131.5z\"]\n};\nvar faFeatherAlt = faFeatherPointed;\nvar faFileCircleQuestion = {\n prefix: 'fas',\n iconName: 'file-circle-question',\n icon: [576, 512, [], \"e4ef\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 32.4-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72.5 0c4.2 36 34.8 64 72 64 26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8S405.7 320 416 320l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM616 416c13.3 0 24-10.7 24-24s-10.7-24-24-24l-292.9 0c-6.5 16.3-13.7 32.3-21.6 48L616 416z\"]\n};\nvar faEarthAmericas = {\n prefix: 'fas',\n iconName: 'earth-americas',\n icon: [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M55.7 199.7l30.9 30.9c6 6 14.1 9.4 22.6 9.4l21.5 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 9.4 14.1 9.4 22.6l0 37.5c0 8.5 3.4 16.6 9.4 22.6l13.3 13.3c6 6 9.4 14.1 9.4 22.6l0 18.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-2.7c0-8.5 3.4-16.6 9.4-22.6l45.3-45.3c6-6 9.4-14.1 9.4-22.6l0-34.7c0-17.7-14.3-32-32-32l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l34.7 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-19.7-19.7C242 130 240 125.1 240 120s2-10 5.7-13.7l17.3-17.3c5.8-5.8 9.1-13.7 9.1-21.9 0-7.2-2.4-13.7-6.4-18.9-3.2-.1-6.4-.2-9.6-.2-95.4 0-175.7 64.2-200.3 151.7zM464 256c0-34.6-8.4-67.2-23.4-95.8-6.4 .9-12.7 3.9-17.9 9.1l-13.4 13.4c-6 6-9.4 14.1-9.4 22.6l0 34.7c0 17.7 14.3 32 32 32l24.1 0c2.5 0 5-.3 7.3-.8 .4-5 .5-10.1 .5-15.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faEarth = faEarthAmericas;\nvar faEarthAmerica = faEarthAmericas;\nvar faGlobeAmericas = faEarthAmericas;\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [640, 512, [129365], \"f787\", \"M453.1-36.7L440.9-24.6c-31.2 31.2-31.2 81.9 0 113.1 15.6 15.6 31.2 31.2 46.9 46.9 31.2 31.2 81.9 31.2 113.1 0l12.1-12.1c6.2-6.2 6.2-16.4 0-22.6L600.9 88.6c-31.2-31.2-81.9-31.2-113.1 0 31.2-31.2 31.2-81.9 0-113.1L475.7-36.7c-6.2-6.2-16.4-6.2-22.6 0zM331.6 96c-45.2 0-87.1 20.4-115 54.3L273.3 207c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L191.6 193.2 67.2 466.8c-5.5 12.1-2.9 26.4 6.5 35.9s23.7 12 35.9 6.5l141.6-64.4-43.8-43.8c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.5 56.5 95.3-43.3c53.1-24.1 87.2-77.1 87.2-135.5 0-82.2-66.6-148.8-148.8-148.8z\"]\n};\nvar faTemperatureFull = {\n prefix: 'fas',\n iconName: 'temperature-full',\n icon: [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 212.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature4 = faTemperatureFull;\nvar faThermometer4 = faTemperatureFull;\nvar faThermometerFull = faTemperatureFull;\nvar faTableCellsRowLock = {\n prefix: 'fas',\n iconName: 'table-cells-row-lock',\n icon: [640, 512, [], \"e67a\", \"M256 288l0-64 153.3 0c17.1-42.2 56-73.2 102.7-79l0-49c0-35.3-28.7-64-64-64L128 32C92.7 32 64 60.7 64 96l0 320c0 35.3 28.7 64 64 64l241.3 0c-.9-5.2-1.3-10.6-1.3-16.1l0-47.9-112 0 0-64 113.3 0c3.7-22 14.8-41.4 30.7-55.6l0-8.4-144 0zm0-192l192 0 0 64-192 0 0-64zM560 272.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416 368l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faBoltLightning = {\n prefix: 'fas',\n iconName: 'bolt-lightning',\n icon: [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28L228.9 0c15 0 27.1 12.1 27.1 27.1 0 3.2-.6 6.5-1.7 9.5L208 160 347.3 160c20.2 0 36.7 16.4 36.7 36.7 0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7l-2.9 0c-15.7 0-28.5-12.8-28.5-28.5 0-2.3 .3-4.6 .9-6.9L176 288 32 288c-17.7 0-32-14.3-32-32z\"]\n};\nvar faCloudShowersWater = {\n prefix: 'fas',\n iconName: 'cloud-showers-water',\n icon: [512, 512, [], \"e4e4\", \"M279.2 55.7C263.9 22.8 230.6 0 192 0 139 0 96 43 96 96 60.7 96 32 124.7 32 160s28.7 64 64 64l320 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-1.6 0c-7.4-36.5-39.7-64-78.4-64-22.2 0-42.3 9.1-56.8 23.7zM410.6 476.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zM100.1 303.6c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64C29 365 35.8 378.6 48.4 382.8s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm112 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64z\"]\n};\nvar faArrowUpLong = {\n prefix: 'fas',\n iconName: 'arrow-up-long',\n icon: [320, 512, [\"long-arrow-up\"], \"f176\", \"M182.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 77.3 128 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-434.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"]\n};\nvar faLongArrowUp = faArrowUpLong;\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm240-48l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [8250], \"f105\", \"M247.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L179.2 256 41.9 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"]\n};\nvar faFaceMeh = {\n prefix: 'fas',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM176 320l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMeh = faFaceMeh;\nvar faArrowUpFromGroundWater = {\n prefix: 'fas',\n iconName: 'arrow-up-from-ground-water',\n icon: [640, 512, [], \"e4b5\", \"M303 7c9.4-9.4 24.6-9.4 33.9 0l88 88c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47 0 278.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-278.1-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L303 7zM240 192l0 163.1c-10.6-2.2-21.3-3.2-32-3.1-32.5 .2-64.9 10.7-92.3 31.4-8.8 6.6-15.9 10.9-21.7 13.5l-.8 .4c-3.7 1.7-6.4 2.9-9.8 .3-6-4.5-12.6-8-19.3-10.4L64 240c0-26.5 21.5-48 48-48l128 0zm336 48l0 155.2c-1.1 .8-2.2 1.5-3.3 2.4-4.1 3.1-8.3 .8-12.6-1.5-.6-.3-1.2-.6-1.8-1-5.2-2.7-11.1-6.6-18-11.7-28.1-21.1-61.3-31.6-94.4-31.4-15.5 .1-31 2.5-46 7.3l0-167.3 128 0c26.5 0 48 21.5 48 48zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [512, 512, [128506, 62072], \"f279\", \"M512 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L349.5 77.5 170.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C6.8 88.8 0 99.9 0 112L0 464c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 179.4 59.8c8.1 2.7 16.8 2.1 24.4-1.7l128-64c10.8-5.4 17.7-16.5 17.7-28.6l0-352zM192 376.9l0-284.5 128 42.7 0 284.5-128-42.7z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M285.7 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3 48 383.8 127.8 304 226.3 304l59.4 0zM528 80c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24zM256 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [384, 512, [9792], \"f221\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64c0-1 0-1.9-.1-2.9z\"]\n};\nvar faDiagramSuccessor = {\n prefix: 'fas',\n iconName: 'diagram-successor',\n icon: [448, 512, [], \"e47a\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 480L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM160 160l0-64-96 0 0 64 96 0z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [576, 512, [], \"e062\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l25-25 0-447.2c0-15 10.5-28.3 25.4-29.8 7.4-.7 14.9-1.1 22.6-1.1 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l2.2 2.6 227.5-227.5zM133.8 512L288 357.8 288 416c0 53-43 96-96 96l-58.2 0zM176 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm336 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88 72a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-64 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm128 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faDiagramProject = {\n prefix: 'fas',\n iconName: 'diagram-project',\n icon: [512, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 128 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-128 0 0 16c0 7.3-1.7 14.3-4.6 20.5l68.6 91.5 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-7.3 1.7-14.3 4.6-20.5L128 224 48 224c-26.5 0-48-21.5-48-48L0 80z\"]\n};\nvar faProjectDiagram = faDiagramProject;\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [512, 512, [], \"f120\", \"M9.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 256 9.4 118.6zM224 384l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faHouseFire = {\n prefix: 'fas',\n iconName: 'house-fire',\n icon: [640, 512, [], \"e50c\", \"M448 192c14.1 .4 23.8 11.4 32.7 21.7 2 2.3 4 4.6 6 6.7l19 19.9 12.2-13.8c5.4-6.1 13.3-8.9 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.2 26.2 88.2 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.1 5.7-5.2 13.1-7.7 20.3-7.5zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l147.5 137c-19.2-4.3-40 .5-55.5 14.4-36.4 32.6-67.7 69.8-90.3 106.4-10.3 16.6-19.7 34.9-26.8 53.7L272 320c-26.5 0-48 21.5-48 48l0 96 64.6 0c7.3 17.2 16.8 33.4 28.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM489.3 343.7c-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.7 51.9-54.7 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-36.5-37-73-54.7-88.4z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176S512 64 288 64zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faHurricane = {\n prefix: 'fas',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6 184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5 100.3 14.9 177.3 101.3 177.3 205.7 0 103.6-75.7 189.5-174.9 205.4-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3C192 421.9 185.5 415 177.3 413.7 77 398.9 0 312.4 0 208zm288 48a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faEarthAfrica = {\n prefix: 'fas',\n iconName: 'earth-africa',\n icon: [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M447.6 175c-31.6-74.6-105.5-127-191.6-127-22.1 0-43.4 3.5-63.4 9.8-.4 2-.6 4.1-.6 6.2l0 73.4c0 12.5 10.1 22.6 22.6 22.6 6 0 11.8-2.4 16-6.6l16-16c6-6 14.1-9.4 22.6-9.4l5.5 0c28.5 0 42.8 34.5 22.6 54.6-6 6-14.1 9.4-22.6 9.4l-61.5 0c-8.5 0-16.6 3.4-22.6 9.4l-21.3 21.3c-6 6-9.4 14.1-9.4 22.6l0 42.7c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32l0 32c0 17.7 14.3 32 32 32l2.7 0c8.5 0 16.6-3.4 22.6-9.4l29.3-29.3c6-6 9.4-14.1 9.4-22.6l0-18.7c0-8.8 7.2-16 16-16s16-7.2 16-16l0-34.7c0-8.5-3.4-16.6-9.4-22.6l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l45 0c12.4 0 22.7-7.1 28-17zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faGlobeAfrica = faEarthAfrica;\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 10.3 134.1c37.1 21.2 65.8 56.4 78.2 99.7l3.8 13.4c2.8 9.7 .8 20-5.2 28.1S362 352 352 352L32 352c-10 0-19.5-4.7-25.5-12.7s-8-18.4-5.2-28.1L5 297.8c12.4-43.3 41-78.5 78.2-99.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 400l64 0 0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-112z\"]\n};\nvar faThumbTack = faThumbtack;\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6 13.2 0 25.4 4 35.6 10.8 8.7-24.9 32.5-42.8 60.4-42.8 11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z\"]\n};\nvar faFaceMehBlank = {\n prefix: 'fas',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm208-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faTemperatureEmpty = {\n prefix: 'fas',\n iconName: 'temperature-empty',\n icon: [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M64 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S16 447.5 16 368c0-42.6 18.5-81 48-107.3L64 96zm96 336c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faTemperature0 = faTemperatureEmpty;\nvar faThermometer0 = faTemperatureEmpty;\nvar faThermometerEmpty = faTemperatureEmpty;\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM288 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM288 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm0-384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM416 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [576, 512, [], \"f591\", \"M315 315L473.4 99.9 444.1 70.6 229 229 315 315zm-187 5l0 0 0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0 457.6 0 468.5 4.5 476.6 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5 0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5l-71.7 0-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l51.7-51.7 70.6 70.6-19.7 19.7c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [512, 512, [], \"f53a\", \"M0 419.6L0 109.5c0-23.2 24.1-38.6 46.3-32 87.7 26.2 149.7 5.5 212.1-15.3 64.5-21.5 129.4-43.1 223.3-13.1 18.5 5.9 30.3 23.8 30.3 43.3l0 310.1c0 23.2-24.1 38.6-46.2 32-87.7-26.2-149.8-5.5-212.1 15.3-64.5 21.5-129.4 43.1-223.3 13.1-18.5-5.9-30.3-23.8-30.3-43.3zM336 256c0-53-35.8-96-80-96s-80 43-80 96 35.8 96 80 96 80-43 80-96zM120 413.6c4.4 0 7.9-3.8 7.2-8.1-4.6-27.8-27-49.5-55.2-53-4.4-.5-8 3.1-8 7.5l0 39.9c0 3.6 2.4 6.8 6 7.7 17.9 4.2 34.3 6.1 50 6.1zm318.5-51.1c5 .8 9.5-3 9.5-8l0-42.6c0-4.4-3.6-8.1-8-7.5-25.2 3.1-45.9 20.9-53.2 44.6-1.4 4.7 2.3 9.1 7.2 9.2 14.2 .4 29 1.7 44.4 4.3zM448 152l0-39.9c0-3.6-2.5-6.8-6-7.7-17.9-4.2-34.3-6.1-50-6.1-4.4 0-7.9 3.8-7.2 8.1 4.6 27.8 27 49.5 55.2 53 4.4 .5 8-3.1 8-7.5zM125.2 162.9c1.4-4.7-2.3-9.1-7.2-9.2-14.2-.4-29-1.7-44.4-4.3-5-.8-9.5 3-9.5 8L64 200c0 4.4 3.6 8.1 8 7.5 25.2-3.1 45.9-20.9 53.2-44.6z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [576, 512, [], \"e072\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-94.5-94.5c40.2-23 69.5-96.9 69.5-184.6 0-106-43-192-96-192s-96 86-96 192c0 24.1 2.2 47.2 6.3 68.4L304 238.2 304 224c0-58.9 11.8-114.5 33.2-157.2 5.9-11.7 13.1-23.7 21.9-34.8L128 32c-8.3 0-16.4 2.1-24.1 6.1l-63-63zM32 224l0 264c0 30.9 25.1 56 56 56l160 0c30.9 0 56-25.1 56-56l0-114.2-256-256C37.9 148.2 32 184.7 32 224zm416 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"]\n};\nvar faFileShield = {\n prefix: 'fas',\n iconName: 'file-shield',\n icon: [576, 512, [], \"e4f0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0C261 469.4 240 414.5 240 356.4l0-31.1c0-34.4 22-65 54.7-75.9l112-37.3c3.1-1 6.2-1.8 9.3-2.5l0-39.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zm87.8 312.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M40 32C17.9 32 0 49.9 0 72l0 56c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 32zM438.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-229.5 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 229.5-9.4-9.4z\"]\n};\nvar faFaceGrinTongue = {\n prefix: 'fas',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 240l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [640, 512, [], \"f573\", \"M64.1 64c0-35.3 28.7-64 64-64L277.6 0c17 0 33.3 6.7 45.3 18.7L429.3 125.3c12 12 18.7 28.3 18.7 45.3l0 97.5-132 132-42.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4-11.3 0-21.9 5.1-28.9 13.9L133.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l31.5 0c-.9 3.1-1.7 6.3-2.3 9.5l-10.9 54.5-146.2 0c-35.3 0-64-28.7-64-64l0-384zm208-5.5l0 93.5c0 13.3 10.7 24 24 24l93.5 0-117.5-117.5zm60.2 408.4c2.5-12.4 8.6-23.8 17.5-32.7l118.9-118.9 80 80-118.9 118.9c-8.9 8.9-20.3 15-32.7 17.5l-59.6 11.9c-.9 .2-1.9 .3-2.9 .3-8 0-14.6-6.5-14.6-14.6 0-1 .1-1.9 .3-2.9l11.9-59.6zm267.8-123l-28.8 28.8-80-80 28.8-28.8c22.1-22.1 57.9-22.1 80 0s22.1 57.9 0 80z\"]\n};\nvar faBuildingWheat = {\n prefix: 'fas',\n iconName: 'building-wheat',\n icon: [640, 512, [], \"e4db\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l249.3 0c-6-14.8-9.3-31-9.3-48 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-25.2 14.5-46.9 35.6-57.4-2.4-7.1-3.6-14.7-3.6-22.6l0-32C368 96.7 388 70.1 415.9 60.1 413.9 26.6 386 0 352 0L96 0zM208 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM128 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm352 0l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16zm16 128c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zm0 112c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zM496 528c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zm-16-96c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0zm16-128c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zM512 64c-13.3 0-24 10.7-24 24l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-13.3-10.7-24-24-24zm96 64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM440 104c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24z\"]\n};\nvar faPlugCircleMinus = {\n prefix: 'fas',\n iconName: 'plug-circle-minus',\n icon: [640, 512, [], \"e55e\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faCirclePlus = {\n prefix: 'fas',\n iconName: 'circle-plus',\n icon: [512, 512, [\"plus-circle\"], \"f055\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusCircle = faCirclePlus;\nvar faBrazilianRealSign = {\n prefix: 'fas',\n iconName: 'brazilian-real-sign',\n icon: [512, 512, [], \"e46c\", \"M400 16c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48.9 0c-26 0-47.1 21.1-47.1 47.1 0 22.5 15.9 41.8 37.9 46.2l32.8 6.6c51.9 10.4 89.3 56 89.3 109 0 50.6-33.8 93.3-80 106.7l0 20.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.9 0c26 0 47.1-21.1 47.1-47.1 0-22.5-15.9-41.8-37.9-46.2l-32.8-6.6c-51.9-10.4-89.3-56-89.3-109 0-50.6 33.8-93.2 80-106.7L368 48c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [9770], \"f699\", \"M0 256c0-141.4 114.6-256 256-256 33 0 64.6 6.3 93.6 17.7 7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5 7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512 114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"]\n};\nvar faFaceSurprise = {\n prefix: 'fas',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM248 88c-8.8 0-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0zM416 304a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faArrowDownUpLock = {\n prefix: 'fas',\n iconName: 'arrow-down-up-lock',\n icon: [576, 512, [], \"e4b0\", \"M262.6 422.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l25.4 25.4 0-114.7-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l256 0 0-114.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-25.4-25.4 0 94.8c-25.3 20.3-42.8 50.1-47 83.9l-145 0 0 114.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM192 32l0 144-64 0 0-144c0-17.7 14.3-32 32-32s32 14.3 32 32zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [512, 512, [], \"f7aa\", \"M256.2 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM277 383.8c1 .1 2.1 .2 3.2 .2 39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.9 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7 4.2 9.7 5.8 20.8 3.7 32.3l-6.3 34.8c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.8 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32c0 34.6-28.1 62.7-62.7 62.7-16.4 0-27.9 16-22.8 31.6L15 396.4c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.4 489.4 22.8 505.8 40.7 501l19.4-5.3c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7 16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5l-19.4 5.3c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384.2 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [640, 512, [9890], \"f226\", \"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144.1 173.1 .1 1 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-82-15-144.1-86.8-144.1-173.1 0-97.2 78.8-176 176-176S368 78.8 368 176zM357.5 327c14.4-15.8 26.6-33.7 36.1-53.1 16.1 9 34.7 14.1 54.5 14.1 61.9 0 112-50.1 112-112S509.9 64 448 64c-19.8 0-38.3 5.1-54.5 14.1-9.5-19.4-21.6-37.3-36.1-53.1 26.4-15.9 57.4-25 90.5-25 97.2 0 176 78.8 176 176 0 86.3-62.1 158.1-144.1 173.1 .1 .9 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-21.1-3.9-40.9-11.5-58.6-22.2z\"]\n};\nvar faClipboardQuestion = {\n prefix: 'fas',\n iconName: 'clipboard-question',\n icon: [384, 512, [], \"e4e3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 248c16.1 0 29.2 13.1 29.2 29.2 0 8.7-3.1 13.9-6.9 17.7-4.5 4.4-10.7 7.5-16.8 9.5-14.9 5-29.5 19.3-29.5 39.5 0 13.3 10.7 24 24 24 11.5 0 21.2-8.1 23.5-19 19.2-7.1 53.7-26.3 53.7-71.8 0-42.6-34.6-77.2-77.2-77.2s-77.2 34.6-77.2 77.2c0 13.3 10.7 24 24 24s24-10.7 24-24c0-16.1 13.1-29.2 29.2-29.2zm28 168c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [127789], \"f80f\", \"M288 0c-20.5 0-40.1 8.1-54.6 22.6L22.6 233.4C8.1 247.9 0 267.5 0 288 0 300.2 2.9 312.1 8.2 322.7L322.7 8.2C312.1 2.9 300.2 0 288 0zM224 512c20.5 0 40.1-8.1 54.6-22.6L489.4 278.6c14.5-14.5 22.6-34.1 22.6-54.6 0-12.2-2.9-24.1-8.2-34.7L189.3 503.8c10.7 5.4 22.6 8.2 34.7 8.2zM456.6 168.6c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-288 288c-31.2 31.2-31.2 81.9 0 113.1s81.9 31.2 113.1 0l288-288z\"]\n};\nvar faArrowUpFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-up-from-bracket',\n icon: [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [128300], \"f610\", \"M176 0c-26.5 0-48 21.5-48 48l0 208c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64 32 0c70.7 0 128 57.3 128 128S390.7 448 320 448L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16.9 0c30.4-34 48.9-78.8 48.9-128 0-106-86-192-192-192l-32 0 0-80c0-26.5-21.5-48-48-48L176 0zM120 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [576, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-51.6-30.5-96.1-74.5-116.3 6.7-13.1 10.5-28 10.5-43.7 0-53-43-96-96-96-17.7 0-34.2 4.8-48.4 13.1-24.1-45.8-72.2-77.1-127.6-77.1-79.5 0-144 64.5-144 144 0 8 .7 15.9 1.9 23.5-56.9 19.2-97.9 73.1-97.9 136.5z\"]\n};\nvar faBaseballBatBall = {\n prefix: 'fas',\n iconName: 'baseball-bat-ball',\n icon: [576, 512, [], \"f432\", \"M464.1 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm8.4-576c15.1 0 29.7 5.8 40.7 16.2l47.2 44.8c12.6 12 19.1 29 17.5 46.3-1.2 13.3-7 25.8-16.5 35.2L363.1 309c-7.3 7.3-15.7 13.4-25 18L206 393c-9.2 4.6-17.7 10.7-25 18l-92 92 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7l-1.8-1.7-48-48-1.7-1.8c-7.7-9.4-7.1-23.3 1.7-32.1s22.7-9.3 32.1-1.7l1.8 1.7 92-92c7.3-7.3 13.4-15.7 18-25l66.1-132.1c4.6-9.2 10.7-17.7 18-25L430.8-14.7C441.9-25.8 456.9-32 472.5-32z\"]\n};\nvar faCarRear = {\n prefix: 'fas',\n iconName: 'car-rear',\n icon: [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4l26.1 74.6-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 96c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-40.6c19.1-11.1 32-31.7 32-55.4l0-96c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 288l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faCarAlt = faCarRear;\nvar faThumbtackSlash = {\n prefix: 'fas',\n iconName: 'thumbtack-slash',\n icon: [576, 512, [\"thumb-tack-slash\"], \"e68f\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L417.8 352 448 352c10 0 19.5-4.7 25.5-12.7s8-18.4 5.2-28.1L475 297.8c-12.4-43.3-41-78.5-78.2-99.7L386.5 64 416 64c17.7 0 32-14.3 32-32S433.7 0 416 0L160 0c-7.4 0-14.1 2.5-19.5 6.6L190.1 56.3 185.3 119.4 41-24.9zM282.2 352L149.7 219.6c-22.7 20.5-39.8 47.4-48.7 78.3l-3.8 13.4c-2.8 9.7-.8 20 5.2 28.1S118 352 128 352l154.2 0zM256 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112-64 0 0 112z\"]\n};\nvar faThumbTackSlash = faThumbtackSlash;\nvar faPlusMinus = {\n prefix: 'fas',\n iconName: 'plus-minus',\n icon: [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-128zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHouseCircleCheck = {\n prefix: 'fas',\n iconName: 'house-circle-check',\n icon: [640, 512, [], \"e509\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM553.4 339.1c-7.1-5.2-17.1-3.6-22.3 3.5l-53 72.8-26.7-26.8c-6.2-6.2-16.4-6.2-22.6 0-6.2 6.2-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.7s8.9-2.8 11.7-6.6l64-88c5.2-7.1 3.6-17.1-3.5-22.3z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z\"]\n};\nvar faLibra = {\n prefix: 'fas',\n iconName: 'libra',\n icon: [512, 512, [], \"e84b\", \"M480 384c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l448 0zM256 32c97.2 0 176 78.8 176 176 0 16.6-2.4 32.7-6.7 48l54.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-104.2 0c-11.8 0-22.7-6.5-28.2-16.9s-4.9-23.1 1.6-32.9c11.9-17.8 18.8-39.1 18.8-62.2 0-61.9-50.1-112-112-112S144 146.1 144 208c0 23.1 6.9 44.4 18.8 62.2 6.6 9.8 7.2 22.5 1.6 32.9S148.1 320 136.2 320L32 320c-17.7 0-32-14.3-32-32s14.3-32 32-32l54.8 0c-4.3-15.3-6.8-31.4-6.8-48 0-97.2 78.8-176 176-176z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faMobileVibrate = {\n prefix: 'fas',\n iconName: 'mobile-vibrate',\n icon: [576, 512, [], \"e816\", \"M384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-384c0-35.3 28.7-64 64-64L384 0zM248 416c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM48.8 133.4c9.4-7.7 23.3-7.1 32.1 1.7 9.4 9.4 9.4 24.6 0 33.9l-31 31 25.4 25.4 2.9 3.2c6.3 7.7 9.8 17.4 9.8 27.4 0 11.5-4.6 22.5-12.7 30.6l-25.4 25.4 31 31 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7L47 377 12.7 342.6C5.6 335.5 1.2 326.2 .2 316.3L0 312 .2 307.7c1-9.9 5.4-19.2 12.5-26.3L38.1 256 12.7 230.6C5.6 223.5 1.2 214.2 .2 204.3L0 200 .2 195.7c1-9.9 5.4-19.2 12.5-26.3L47 135 48.8 133.4zM495 135c8.8-8.8 22.7-9.3 32.1-1.7l1.8 1.7 34.3 34.3c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-25.4 25.4 25.4 25.4c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-34.3 34.3-1.8 1.7c-9.4 7.7-23.3 7.1-32.1-1.7s-9.3-22.7-1.7-32.1l1.7-1.8 31-31-25.4-25.4c-8.1-8.1-12.7-19.1-12.7-30.6 0-10 3.5-19.7 9.8-27.4l2.9-3.2 25.4-25.4-31-31c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faFaceGrinSquint = {\n prefix: 'fas',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM122.6 143.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faUsersBetweenLines = {\n prefix: 'fas',\n iconName: 'users-between-lines',\n icon: [576, 512, [], \"e591\", \"M24 16l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 64C10.7 64 0 53.3 0 40S10.7 16 24 16zm0 448l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM392 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0C138.6 318.3 128 349.9 128 384l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 416 32 406.4 32 394.7L32 384c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm152-16a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 384c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8z\"]\n};\nvar faHouseMedicalCircleXmark = {\n prefix: 'fas',\n iconName: 'house-medical-circle-xmark',\n icon: [640, 512, [], \"e513\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"]\n};\nvar faTableList = {\n prefix: 'fas',\n iconName: 'table-list',\n icon: [448, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 224l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 352l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64z\"]\n};\nvar faThList = faTableList;\nvar faFlaskVial = {\n prefix: 'fas',\n iconName: 'flask-vial',\n icon: [640, 512, [], \"e4f3\", \"M184.6 411.5c-3.1 7.3-5.4 14.9-6.8 22.6-14.5 8.8-31.5 13.9-49.8 13.9-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 255.6-39.4 91.9zM96 64l0 128 64 0 0-128-64 0zM352 0L512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.4 91.3 213c2.3 5.4 3.8 11.1 4.4 17l.3 .6-.3 0c.2 1.8 .3 3.6 .3 5.4 0 32.3-26.2 58.6-58.6 58.6l-266.9 0c-32.3 0-58.6-26.2-58.6-58.6 0-1.8 .1-3.6 .3-5.4l-.3 0 .3-.6c.6-5.8 2.1-11.6 4.4-17L320 217.4 320 64c-17.7 0-32-14.3-32-32S302.3 0 320 0l32 0zM453.2 242.6c-3.4-8-5.2-16.5-5.2-25.2l0-153.4-64 0 0 153.4c0 8.7-1.8 17.2-5.2 25.2l-33.2 77.4 140.7 0-33.2-77.4z\"]\n};\nvar faCircleExclamation = {\n prefix: 'fas',\n iconName: 'circle-exclamation',\n icon: [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"]\n};\nvar faExclamationCircle = faCircleExclamation;\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32l0 32-8.9 0c-42 0-79.1 27.3-91.6 67.4l-23 73.5C14.5 219.1 0 243.9 0 272L0 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 320 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-176c0-28.1-14.5-52.9-36.4-67.1l-23-73.5C440.1 91.3 402.9 64 360.9 64l-8.9 0 0-32c0-17.7-14.3-32-32-32L192 0zM151.1 128l209.9 0c14 0 26.4 9.1 30.5 22.5l13 41.5-296.9 0 13-41.5c4.2-13.4 16.5-22.5 30.5-22.5zM96 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCab = faTaxi;\nvar faTextSlash = {\n prefix: 'fas',\n iconName: 'text-slash',\n icon: [576, 512, [\"remove-format\"], \"f87d\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L322.7 256.9 368.2 96 471 96 465 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C545.6 61.3 522.7 32 491.5 32l-319 0c-19.8 0-37.3 12.1-44.5 30.1l-87-87zM180.4 114.5l4.6-18.5 116.7 0-30.8 109-90.5-90.5zM241 310.8L211.3 416 160 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 15.1-53.3-51.9-51.9z\"]\n};\nvar faRemoveFormat = faTextSlash;\nvar faPeoplePulling = {\n prefix: 'fas',\n iconName: 'people-pulling',\n icon: [576, 512, [], \"e535\", \"M80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32 9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8l-20.5-122.7 15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7 8.6 3.6 18 3.1 25.9-.7 3.4-1.6 6.6-3.9 9.3-6.7 3.1-3.2 5.5-7 7.1-11.4 .1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-21.4-10.7-15.3-36.8c-17.1-41.1-57.3-67.9-101.9-67.9-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [576, 512, [9194], \"f04a\", \"M204.3 43.1C215.9 32 233 28.9 247.7 35.2S272 56 272 72l0 136.3 172.3-165.1C455.9 32 473 28.9 487.7 35.2S512 56 512 72l0 368c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9L272 303.7 272 440c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9l-192-184C4.5 277.3 0 266.9 0 256s4.5-21.3 12.3-28.9l192-184z\"]\n};\nvar faCarBurst = {\n prefix: 'fas',\n iconName: 'car-burst',\n icon: [640, 512, [\"car-crash\"], \"f5e1\", \"M232 16.1l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24zM32 168.1l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM281.5 70.6c9.4 9.4 24.6 9.4 33.9 0l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L281.5 36.6c-9.4 9.4-9.4 24.6 0 33.9zm-181 215l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352.9 175.4L505 216.2c6.4 1.7 11.1 7.3 11.8 13.9l7.2 74-231.5-62 43.2-60.5c3.9-5.4 10.7-7.9 17.2-6.2zM223.6 228.5l-2.1 2.9c-21.7 5.5-39.9 22.3-46.1 45.5-4.1 15.5-12.4 46.4-24.8 92.7l-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 278.2 74.5-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6 4.1-15.5 12.4-46.4 24.8-92.7l8.3-30.9c6.2-23.2-1.1-46.8-17.2-62.5l-.3-3.6-10-103c-3.2-33.2-26.7-60.9-58.9-69.5L369.5 113.6c-32.2-8.6-66.4 3.6-85.8 30.8l-60.2 84.2zm48.7 57.8a32 32 0 1 1 -16.6 61.8 32 32 0 1 1 16.6-61.8zm208.1 88.9a32 32 0 1 1 61.8 16.6 32 32 0 1 1 -61.8-16.6z\"]\n};\nvar faCarCrash = faCarBurst;\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [576, 512, [128279, \"chain\"], \"f0c1\", \"M419.5 96c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2 86.4 0 156.5 70 156.5 156.5 0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1c-29.3 29.3-69.1 45.8-110.6 45.8-86.4 0-156.5-70-156.5-156.5 0-1.5 0-3 .1-4.5 .5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9c0 .9 0 1.8 0 2.6 0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zM275.2 173.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1L91.1 258.2c-17.3 17.3-27.1 40.9-27.1 65.4 0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9 0 1.3 0 2.6 0 3.9-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8c0-.8 0-1.5 0-2.3 0-33.7-18-63.3-44.8-79.6z\"]\n};\nvar faChain = faLink;\nvar faBackwardStep = {\n prefix: 'fas',\n iconName: 'backward-step',\n icon: [384, 512, [\"step-backward\"], \"f048\", \"M363 36.8c-12.9-7-28.7-6.3-41 1.8L64 208.1 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144.1 258 169.6c12.3 8.1 28 8.8 41 1.8s21-20.5 21-35.2l0-368c0-14.7-8.1-28.2-21-35.2z\"]\n};\nvar faStepBackward = faBackwardStep;\nvar faX = {\n prefix: 'fas',\n iconName: 'x',\n icon: [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"]\n};\nvar faCircleUser = {\n prefix: 'fas',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2 35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faRectangleList = {\n prefix: 'fas',\n iconName: 'rectangle-list',\n icon: [512, 512, [\"list-alt\"], \"f022\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm96 256a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm120-56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faListAlt = faRectangleList;\nvar faHand = {\n prefix: 'fas',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z\"]\n};\nvar faHandPaper = faHand;\nvar faCancer = {\n prefix: 'fas',\n iconName: 'cancer',\n icon: [512, 512, [], \"e847\", \"M408 152c57.4 0 104 46.6 104 104 0 141.4-114.6 256-256 256-54.3 0-104.8-17-146.3-45.9-14.5-10.1-18-30.1-7.9-44.6s30.1-18 44.6-7.9c31.1 21.7 68.9 34.4 109.7 34.4 67.9 0 127.5-35.3 161.7-88.5-3.2 .3-6.4 .5-9.7 .5-57.4 0-104-46.6-104-104s46.6-104 104-104zM256 0c54.3 0 104.8 17 146.3 45.9 14.5 10.1 18 30.1 7.9 44.6s-30.1 18-44.6 7.9c-31.1-21.7-68.9-34.4-109.7-34.4-67.9 0-127.5 35.2-161.7 88.4 3.2-.3 6.4-.4 9.7-.4 57.4 0 104 46.6 104 104S161.4 360 104 360 0 313.4 0 256C0 254.1 0 252.2 .1 250.4 3.1 111.6 116.5 0 256 0zM104 216a40 40 0 1 0 0 80 40 40 0 1 0 0-80zm304 0a40 40 0 1 0 0 80 40 40 0 1 0 0-80z\"]\n};\nvar faVanShuttle = {\n prefix: 'fas',\n iconName: 'van-shuttle',\n icon: [576, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 64C28.7 64 0 92.7 0 128L0 336c0 35.3 28.7 64 64 64l.4 0c4 44.9 41.7 80 87.6 80s83.6-35.1 87.6-80l104.7 0c4 44.9 41.7 80 87.6 80 46.1 0 83.9-35.4 87.7-80.5 31.7-3.8 56.3-30.8 56.3-63.5l0-101.3c0-13.8-4.5-27.3-12.8-38.4l-80-106.7C471.1 73.5 452.1 64 432 64L64 64zM504 224l-120 0 0-96 48 0 72 96zM64 224l0-96 96 0 0 96-96 0zm160 0l0-96 96 0 0 96-96 0zM392 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faShuttleVan = faVanShuttle;\nvar faStairs = {\n prefix: 'fas',\n iconName: 'stairs',\n icon: [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M0 464L0 316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5c21.4-7.6 43.8 8.3 43.8 30.9 0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0c-6.3 0-12.5-.5-18.6-1.5-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2-4.4-7.7-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4 0 20.3-16.5 36.8-36.8 36.8L48 512c-26.5 0-48-21.5-48-48zM328 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faVault = {\n prefix: 'fas',\n iconName: 'vault',\n icon: [512, 512, [], \"e2c5\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l256 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM256 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM64 256a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm384-48c0 17.8-9.7 33.3-24 41.6l0 78.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-78.4c-14.3-8.3-24-23.8-24-41.6 0-26.5 21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faClosedCaptioningSlash = {\n prefix: 'fas',\n iconName: 'closed-captioning-slash',\n icon: [576, 512, [], \"e135\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0L129.8 64 480 64c35.3 0 64 28.7 64 64l0 256c0 25.5-14.9 47.4-36.4 57.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zm345 311l0-70.2c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 22.2 48 48zm61.5 61.5c20.2-8.4 34.5-28.4 34.5-51.7 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-22.2 0 43.7 43.7zM130.3 200.1c-1.5 5-2.3 10.4-2.3 15.9l0 80c0 30.9 25.1 56 56 56l32 0c18.1 0 34.1-8.5 44.4-21.8L378.2 448 96 448c-35.3 0-64-28.7-64-64l0-256c0-7.8 1.4-15.3 4-22.2l94.3 94.3zm93.8 93.8c-.1 .7-.1 1.4-.1 2.1 0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-50.2 48.1 48.1z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4 0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5 47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4-47.1 19.9-55 39.9-55 49.8s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5 0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8c-.9 4.3-1.4 8.7-1.4 13.2 0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2-19.8-1.8-40.8-2.8-62.6-2.8s-42.8 1-62.6 2.8z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M80 160c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 192c0-17.7 14.3-32 32-32l48 0zM270.6 16C297.9 16 320 38.1 320 65.4l0 4.2c0 6.8-1.3 13.6-3.8 19.9L288 160 448 160c26.5 0 48 21.5 48 48 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 23.4-16.8 42.9-39 47.1 4.4 7.3 7 15.8 7 24.9 0 22.2-15 40.8-35.4 46.3 2.2 5.5 3.4 11.5 3.4 17.7 0 26.5-21.5 48-48 48l-87.9 0c-36.3 0-71.6-12.4-99.9-35.1L184 435.2c-15.2-12.1-24-30.5-24-50l0-186.6c0-14.9 3.5-29.6 10.1-42.9L226.3 43.3C234.7 26.6 251.8 16 270.6 16z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47 12.6-16.2 20.1-36.6 20.1-58.8 0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8 10.7 13.8 19.9 29.6 19.9 47 0 29.9-24.3 54.2-54.2 54.2L112 256c-61.9 0-112 50.1-112 112 0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM56 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L56 464z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32S96 81.7 96 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64-192 0c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32z\"]\n};\nvar faChildren = {\n prefix: 'fas',\n iconName: 'children',\n icon: [640, 512, [], \"e4e1\", \"M160.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-72 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L86.7 285.5 58 323.3c-10.7 14.1-30.8 16.8-44.8 6.2S-3.7 298.7 7 284.7L65.9 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47L314 284.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.7-37.8 31.1 93.4c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5-12.9 20.5c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.6 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10l-12.9-20.5 0 179.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7 262.6 153.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l73.4-73.4 57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLineChart = faChartLine;\nvar faSquareEnvelope = {\n prefix: 'fas',\n iconName: 'square-envelope',\n icon: [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM209.1 267.9L108.4 207.4c-7.7-4.6-12.4-12.9-12.4-21.9 0-14.1 11.4-25.5 25.5-25.5l204.9 0c14.1 0 25.5 11.4 25.5 25.5 0 9-4.7 17.3-12.4 21.9L238.9 267.9c-4.5 2.7-9.6 4.1-14.9 4.1s-10.4-1.4-14.9-4.1zM352 237.3l0 82.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-82.7 96.7 58C202.1 301 213 304 224 304s21.9-3 31.3-8.7l96.7-58z\"]\n};\nvar faEnvelopeSquare = faSquareEnvelope;\nvar faBanSmoking = {\n prefix: 'fas',\n iconName: 'ban-smoking',\n icon: [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8l79.2 79.2-50.7 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l146.7 0 92.5 92.5c-31.4 22.4-69.8 35.5-111.2 35.5-106 0-192-86-192-192 0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l18.7 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L269.3 224 144.8 99.5c31.4-22.4 69.8-35.5 111.2-35.5 106 0 192 86 192 192 0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16z\"]\n};\nvar faSmokingBan = faBanSmoking;\nvar faTruckFront = {\n prefix: 'fas',\n iconName: 'truck-front',\n icon: [448, 512, [], \"e2b7\", \"M0 112C0 67.8 35.8 32 80 32l288 0c44.2 0 80 35.8 80 80l0 256c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 112zm96 80l0 64 256 0 0-64c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32zm32 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm224 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [512, 512, [], \"f140\", \"M448 256a192 192 0 1 0 -384 0 192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faArrowLeftLong = {\n prefix: 'fas',\n iconName: 'arrow-left-long',\n icon: [576, 512, [\"long-arrow-left\"], \"f177\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 544 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-434.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"]\n};\nvar faLongArrowLeft = faArrowLeftLong;\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M0 32L0 133.5c0 17 6.7 33.3 18.7 45.3L64 224 64 384 7.8 454.3C2.7 460.6 0 468.4 0 476.5 0 496.1 15.9 512 35.5 512l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-56.2-70.3 0-160 45.3-45.3c12-12 18.7-28.3 18.7-45.3L384 32c0-17.7-14.3-32-32-32L320 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32c0-17.7-14.3-32-32-32L176 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32C96 14.3 81.7 0 64 0L32 0C14.3 0 0 14.3 0 32z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M151.4 13.2c10.2 5.8 14.5 18.4 10 29.3L138.2 98.8c-3.9 9.6-13.7 15.4-24 14.4l-20.2-2C78.7 152.9 78 198.9 91.9 241.1l22.4-2.2c10.3-1 20 4.8 24 14.4l23.2 56.3c4.5 10.9 .2 23.4-10 29.3l-2.9 1.6c-33.6 19.2-81.7 16.2-106.2-21.6-56.3-86.6-56.3-199.1 0-285.7 24.6-37.7 72.7-40.7 106.2-21.6l2.9 1.6zM224 336L193.7 17.5C192.8 8.1 200.2 0 209.6 0l324 0c21.3 0 36.6 20.3 30.8 40.8L553.1 80 440 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0zm8 48l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faArrowTurnUp = {\n prefix: 'fas',\n iconName: 'arrow-turn-up',\n icon: [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"]\n};\nvar faLevelUp = faArrowTurnUp;\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [128690], \"f206\", \"M331.7 43.3C336 36.3 343.7 32 352 32l104 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-65.6 0 72.2 148.4c10.7-2.9 21.9-4.4 33.4-4.4 70.7 0 128 57.3 128 128s-57.3 128-128 128-128-57.3-128-128c0-42 20.2-79.2 51.4-102.6l-20.4-41.9-73.5 147c-2.3 4.8-6.3 8.8-11.4 11.2-.6 .3-1.2 .5-1.8 .7-2.9 1.1-5.9 1.6-8.9 1.5L271 368c-7.9 63.1-61.7 112-127 112-70.7 0-128-57.3-128-128S73.3 224 144 224c10.8 0 21.2 1.3 31.2 3.8l28.5-56.9-11.5-26.9-40.2 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c9.6 0 18.3 5.7 22.1 14.5l14.3 33.5 123.7 0-37.7-77.5c-3.6-7.4-3.2-16.2 1.2-23.2zM228.5 228.7l-45.6 91.3 84.8 0-39.1-91.3zM305.7 287l47.5-95-88.2 0 40.7 95zm168.7 75.5l-29.7-61c-12.8 13-20.7 30.8-20.7 50.5 0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72c-2.7 0-5.5 .2-8.1 .5l29.7 61c5.8 11.9 .8 26.3-11.1 32.1s-26.3 .8-32.1-11.1zM149.2 368c-20.2 0-33.4-21.3-24.3-39.4l24.2-48.5c-1.7-.1-3.4-.2-5.1-.2-39.8 0-72 32.2-72 72s32.2 72 72 72c34.3 0 62.9-23.9 70.2-56l-65 0z\"]\n};\nvar faCircleArrowDown = {\n prefix: 'fas',\n iconName: 'circle-arrow-down',\n icon: [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM239 377l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l39 39 0-150.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 150.1 39-39c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0z\"]\n};\nvar faArrowCircleDown = faCircleArrowDown;\nvar faGear = {\n prefix: 'fas',\n iconName: 'gear',\n icon: [512, 512, [9881, \"cog\"], \"f013\", \"M195.1 9.5C198.1-5.3 211.2-16 226.4-16l59.8 0c15.2 0 28.3 10.7 31.3 25.5L332 79.5c14.1 6 27.3 13.7 39.3 22.8l67.8-22.5c14.4-4.8 30.2 1.2 37.8 14.4l29.9 51.8c7.6 13.2 4.9 29.8-6.5 39.9L447 233.3c.9 7.4 1.3 15 1.3 22.7s-.5 15.3-1.3 22.7l53.4 47.5c11.4 10.1 14 26.8 6.5 39.9l-29.9 51.8c-7.6 13.1-23.4 19.2-37.8 14.4l-67.8-22.5c-12.1 9.1-25.3 16.7-39.3 22.8l-14.4 69.9c-3.1 14.9-16.2 25.5-31.3 25.5l-59.8 0c-15.2 0-28.3-10.7-31.3-25.5l-14.4-69.9c-14.1-6-27.2-13.7-39.3-22.8L73.5 432.3c-14.4 4.8-30.2-1.2-37.8-14.4L5.8 366.1c-7.6-13.2-4.9-29.8 6.5-39.9l53.4-47.5c-.9-7.4-1.3-15-1.3-22.7s.5-15.3 1.3-22.7L12.3 185.8c-11.4-10.1-14-26.8-6.5-39.9L35.7 94.1c7.6-13.2 23.4-19.2 37.8-14.4l67.8 22.5c12.1-9.1 25.3-16.7 39.3-22.8L195.1 9.5zM256.3 336a80 80 0 1 0 -.6-160 80 80 0 1 0 .6 160z\"]\n};\nvar faCog = faGear;\nvar faMarsAndVenusBurst = {\n prefix: 'fas',\n iconName: 'mars-and-venus-burst',\n icon: [640, 512, [], \"e523\", \"M464-32c0 17.7 14.3 32 32 32l34.7 0-63 63c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-37-11.4-71.4-31-99.8l63-63 0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112c0-17.7-14.3-32-32-32L496-64c-17.7 0-32 14.3-32 32zM368 96a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM190.9-21.9C188.4-28 182.6-32 176-32s-12.4 4-14.9 10.1l-29.4 74-76.2-23.1c-6.3-1.9-13.1 .2-17.2 5.3S33.8 46.5 37 52.2l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2-5.6 79.4c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L152.1 268c-5.3-19.1-8.1-39.2-8.1-60 0-65.4 28-124.2 72.6-165.1L190.9-21.9z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5 23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6 6.6 0 13.1-1.5 19.1-4.5 9.3-4.7 16.4-8.2 21.2-10.6L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4l-12.9-6.4-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-64c0-23.7 12.9-44.4 32-55.4 9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48 8.8 0 16 7.2 16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1 0 0c0 123.7-100.3 224-224 224l-160.6 0C132 480 32 380 32 256.6l0-39.8c-10.1-14.6-16-32.3-16-51.4l0-21.4 0-1.4C6.7 139.3 0 130.5 0 120 0 106.7 10.7 96 24 96l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24 0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3 12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3-5.1 .9-10.3 1.3-15.6 1.3-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nvar faCircleChevronLeft = {\n prefix: 'fas',\n iconName: 'circle-chevron-left',\n icon: [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"]\n};\nvar faChevronCircleLeft = faCircleChevronLeft;\nvar faCircleQuestion = {\n prefix: 'fas',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-336c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faWalkieTalkie = {\n prefix: 'fas',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", \"M88-32c13.3 0 24 10.7 24 24l0 72 48 0c0-17.7 14.3-32 32-32s32 14.3 32 32l32 0c0-17.7 14.3-32 32-32s32 14.3 32 32l16 0c26.5 0 48 21.5 48 48l0 160.9c0 9.9-2.3 19.7-6.8 28.6l-20.2 40.4c-3.3 6.7-5.1 14-5.1 21.5l0 84.7c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-84.7c0-7.5-1.7-14.8-5.1-21.5L6.8 301.5C2.3 292.6 0 282.8 0 272.9L0 112C0 85.5 21.5 64 48 64l16 0 0-72c0-13.3 10.7-24 24-24zm32 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faUserGroup = {\n prefix: 'fas',\n iconName: 'user-group',\n icon: [576, 512, [128101, \"user-friends\"], \"f500\", \"M64 128a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM0 464c0-97.2 78.8-176 176-176s176 78.8 176 176l0 6c0 23.2-18.8 42-42 42L42 512c-23.2 0-42-18.8-42-42l0-6zM432 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240c79.5 0 144 64.5 144 144l0 22.4c0 23-18.6 41.6-41.6 41.6l-144.8 0c6.6-12.5 10.4-26.8 10.4-42l0-6c0-51.5-17.4-98.9-46.5-136.7 22.6-14.7 49.6-23.3 78.5-23.3z\"]\n};\nvar faUserFriends = faUserGroup;\nvar faHouseChimney = {\n prefix: 'fas',\n iconName: 'house-chimney',\n icon: [512, 512, [63499, \"home-lg\"], \"e3af\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM240 320c-26.5 0-48 21.5-48 48l0 96 128 0 0-96c0-26.5-21.5-48-48-48l-32 0z\"]\n};\nvar faHomeLg = faHouseChimney;\nvar faRightFromBracket = {\n prefix: 'fas',\n iconName: 'right-from-bracket',\n icon: [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M505 273c9.4-9.4 9.4-24.6 0-33.9L361 95c-6.9-6.9-17.2-8.9-26.2-5.2S320 102.3 320 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L505 273zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"]\n};\nvar faSignOutAlt = faRightFromBracket;\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [576, 512, [], \"e069\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-183.4-183.4 7.1-7.7 127.3 0c30.9 0 56-25.1 56-56s-25.1-56-56-56L392.7 200 233.5 26.4C227.5 19.8 218.9 16 209.9 16l-43.7 0c-10.9 0-18.6 10.7-15.2 21.1L175.1 109.2 41-24.9zM130.2 200l-24.6 0-52.8-66c-3-3.8-7.6-6-12.5-6l-19.8 0c-10.4 0-18 9.8-15.5 19.9L32 256 5 364.1C2.4 374.2 10.1 384 20.5 384l19.8 0c4.9 0 9.5-2.2 12.5-6l52.8-66 99.7 0-54.3 162.9c-3.5 10.4 4.3 21.1 15.2 21.1l43.7 0c9 0 17.5-3.8 23.6-10.4L320.7 390.5 130.2 200z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm6.8 79.6l-32 96C66.6 508.2 53 515 40.4 510.8S21 493 25.2 480.4l32-96C61.4 371.8 75 365 87.6 369.2S107 387 102.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S141 493 145.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S227 387 222.8 399.6zm112 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S253 493 257.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S339 387 334.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S373 493 377.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S459 387 454.8 399.6z\"]\n};\nvar faPersonFalling = {\n prefix: 'fas',\n iconName: 'person-falling',\n icon: [512, 512, [], \"e546\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 5.4c0 45-23.6 86.6-62.1 109.8l-4.6 2.8C131.4 184.7 96 247.1 96 314.6L96 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-69.4c0-16.7 3.3-33 9.4-48L359.2 500.2c11.1 13.7 31.3 15.8 45 4.7s15.8-31.3 4.7-45L295.2 320 400 320 438.4 371.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C437.3 263.1 423.1 256 408 256l-89 0-62.9-75.5c40.3-36 63.9-87.9 63.9-143.1l0-5.4zM104 144a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faTurnDown = {\n prefix: 'fas',\n iconName: 'turn-down',\n icon: [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S332.9 320 320 320l-64 0 0-160C256 71.6 184.4 0 96 0L32 0C14.3 0 0 14.3 0 32L0 96c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 160-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"]\n};\nvar faLevelDownAlt = faTurnDown;\nvar faUpRightAndDownLeftFromCenter = {\n prefix: 'fas',\n iconName: 'up-right-and-down-left-from-center',\n icon: [512, 512, [\"expand-alt\"], \"f424\", \"M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2S34.1 320.2 41 327l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S177.7 512 168 512z\"]\n};\nvar faExpandAlt = faUpRightAndDownLeftFromCenter;\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M256.1 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.4 304l59.4 0c6.7 0 13.2 .4 19.7 1.1-.9 4.9-1.4 9.9-1.4 15l0 92.1c0 25.5 10.1 49.9 28.1 67.9l31.9 31.9-286.3 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zM352.1 412.2l0-92.1c0-17.7 14.3-32 32-32l92.1 0c12.7 0 24.9 5.1 33.9 14.1l96 96c18.7 18.7 18.7 49.1 0 67.9l-76.1 76.1c-18.7 18.7-49.1 18.7-67.9 0l-96-96c-9-9-14.1-21.2-14.1-33.9zm104-44.2a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.2c-19.2 5.4-34.7 20.4-40.4 40.3l-6.5 22.7-22.7 6.5c-25.2 7.2-42.5 30.2-42.5 56.4 0 22.1 12.4 42 31.4 51.9-27.5 17.8-60.2 28.1-95.4 28.1l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6l-7.3 25.4-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7l25.4 7.3 7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6l7.3-25.4 25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7l-25.4-7.3-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456 570.2 504.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456 487.7 442.2c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408 549.8 359.7c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"]\n};\nvar faArrowsToDot = {\n prefix: 'fas',\n iconName: 'arrows-to-dot',\n icon: [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9S179.1 64 192 64l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9S332.9 448 320 448l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S64 332.9 64 320l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9S448 179.1 448 192l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFaceSadCry = {\n prefix: 'fas',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 171.7C44.4 421.6 0 344 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 88-44.4 165.6-112 211.7L400 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 197.4zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faDongSign = {\n prefix: 'fas',\n iconName: 'dong-sign',\n icon: [384, 512, [], \"e169\", \"M288-16c-17.7 0-32 14.3-32 32l0 32-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 72.2c-22.9-15.3-50.4-24.2-80-24.2-79.5 0-144 64.5-144 144S96.5 432 176 432c30 0 57.8-9.1 80.8-24.8 3.3 14.2 16 24.8 31.2 24.8 17.7 0 32-14.3 32-32l0-304 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-32c0-17.7-14.3-32-32-32zM96 288a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464z\"]\n};\nvar faPeopleLine = {\n prefix: 'fas',\n iconName: 'people-line',\n icon: [576, 512, [], \"e534\", \"M288 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 44.1-128 0 0-44.1C204.7 359 192 337 192 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zm16 104l0-27.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 40.6-112 0zM64 375.4C44.9 364.4 32 343.7 32 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1l0 32c0 32.5 12.1 62.1 32 84.7l0 27.3-112 0 0-40.6zM128 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm320 0a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM24 464l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSquareRss = {\n prefix: 'fas',\n iconName: 'square-rss',\n icon: [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24 137 0 248 111 248 248 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24 83.9 0 152 68.1 152 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faRssSquare = faSquareRss;\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm24 264c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faChartDiagram = {\n prefix: 'fas',\n iconName: 'chart-diagram',\n icon: [512, 512, [], \"e695\", \"M80 32C53.5 32 32 53.5 32 80s21.5 48 48 48l152 0 0 40-48 48-72 0c-39.8 0-72 32.2-72 72l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-13.3 10.7-24 24-24l72 0 48 48 0 40-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-40 48-48 72 0c13.3 0 24 10.7 24 24l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-39.8-32.2-72-72-72l-72 0-48-48 0-40 152 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L80 32z\"]\n};\nvar faFaceTired = {\n prefix: 'fas',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4 6.2 11.7 10.3 24.4 10.3 35.9 0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8S128 405.2 128 400c0-11.6 4.2-24.2 10.3-35.9 6.3-12 15.3-24.3 26.4-35.4zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faTired = faFaceTired;\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32 0 13.2 4 25.4 10.8 35.6-24.9 8.7-42.8 32.5-42.8 60.4 0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [384, 512, [8593], \"f062\", \"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 105.4 105.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"]\n};\nvar faCubesStacked = {\n prefix: 'fas',\n iconName: 'cubes-stacked',\n icon: [512, 512, [], \"e4e6\", \"M192 32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64zm32 352l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM320 192l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm-182.6-3.9c12.5-12.5 32.8-12.5 45.3 0l45.3 45.3c12.5 12.5 12.5 32.8 0 45.3l-45.3 45.3c-12.5 12.5-32.8 12.5-45.3 0L92.1 278.6c-12.5-12.5-12.5-32.8 0-45.3l45.3-45.3zM32 384l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"]\n};\nvar faChildCombatant = {\n prefix: 'fas',\n iconName: 'child-combatant',\n icon: [576, 512, [\"child-rifle\"], \"e4e0\", \"M176.5 128a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-16 352l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192.2 20.9 33.2c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-39.9-63.3C266.8 184 223.3 160 176.5 160S86.2 184 61.3 223.6L21.4 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10l20.9-33.2 0 192.2c0 17.7 14.3 32 32 32s32-14.3 32-32zM448.5 0l-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7l0-116.3c0-8.8-7.2-16-16-16z\"]\n};\nvar faChildRifle = faChildCombatant;\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M200 293.9L200 464c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 48C64 21.5 85.5 0 112 0l3.5 0c.3 0 .6 0 1 0 .6 0 1.2 0 1.8 0 18.8 0 34.1 9.7 44.1 18.8 9.3 8.4 28.5 21.2 61.7 21.2s52.4-12.8 61.7-21.2c10-9.1 25.3-18.8 44.1-18.8 .6 0 1.2 0 1.8 0 .3 0 .6 0 1 0L336 0c26.5 0 48 21.5 48 48l0 97.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-104 0c-26.5 0-48-21.5-48-48l0-170.1c0-3.9 .5-7.8 1.4-11.6L303.6 65.4C285.9 77.2 259.8 88 224 88s-61.9-10.8-79.6-22.6l54.2 216.8c1 3.8 1.4 7.7 1.4 11.6zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305 111.5 320.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288 128.5 272.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 40c0 8.8 7.2 16 16 16l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faMartiniGlassEmpty = {\n prefix: 'fas',\n iconName: 'martini-glass-empty',\n icon: [512, 512, [\"glass-martini\"], \"f000\", \"M32 32C19.1 32 7.4 39.8 2.4 51.8S.2 77.5 9.4 86.6l214.6 214.6 0 146.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-146.7 214.6-214.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 32 480 32L32 32zM256 242.7L109.3 96 402.7 96 256 242.7z\"]\n};\nvar faGlassMartini = faMartiniGlassEmpty;\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [448, 512, [129522], \"f076\", \"M0 176L0 288C0 411.7 100.3 512 224 512S448 411.7 448 288l0-112-128 0 0 112c0 53-43 96-96 96s-96-43-96-96l0-112-128 0zm0-48l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z\"]\n};\nvar faRoadBarrier = {\n prefix: 'fas',\n iconName: 'road-barrier',\n icon: [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 266.3 149.2 96 64 96 64 64c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3zM362.8 288l74.3 0 5.4-10.7 90.6-181.3-74.3 0-5.4 10.7-90.6 181.3zM202.8 96l-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7-85.2 170.3z\"]\n};\nvar faCompassDrafting = {\n prefix: 'fas',\n iconName: 'compass-drafting',\n icon: [512, 512, [\"drafting-compass\"], \"f568\", \"M99.3 256.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2 0-53 43-96 96-96s96 43 96 96c0 14.3-3.1 27.9-8.8 40.2l44.4 76.7c-23.1 26-53.7 45.1-88.4 53.8L256 191.9 187.9 309.5c21.5 6.8 44.3 10.5 68.1 10.5 70.7 0 133.8-32.7 174.9-84 11.1-13.8 31.2-16 45-5s16 31.2 5 45c-52.7 65.8-133.9 108-224.8 108-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7c-12.8-11.2-24.6-23.5-35.3-36.8-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1zM381.1 407.9c32.5-13 62.4-31 88.9-52.9l35.6 61.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9l-32.3-55.8zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faDraftingCompass = faCompassDrafting;\nvar faSquarePersonConfined = {\n prefix: 'fas',\n iconName: 'square-person-confined',\n icon: [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9-17.5 0-34.3-6.9-46.6-19.3l-54.7-54.7-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9l41.4 41.4 0-58.7z\"]\n};\nvar faPlateWheat = {\n prefix: 'fas',\n iconName: 'plate-wheat',\n icon: [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S42.7 64 56 64zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6-6.3 50.2-44.4 89.4-92.6 98.4l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z\"]\n};\nvar faSignHanging = {\n prefix: 'fas',\n iconName: 'sign-hanging',\n icon: [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zM208 176l240 0c17.7 0 32 14.3 32 32l0 144c0 17.7-14.3 32-32 32l-240 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32z\"]\n};\nvar faSign = faSignHanging;\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [\"battery-car\"], \"f5df\", \"M80 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l16 0zM392 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM64 240c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 216c-13.3 0-24 10.7-24 24z\"]\n};\nvar faBatteryCar = faCarBattery;\nvar faShirt = {\n prefix: 'fas',\n iconName: 'shirt',\n icon: [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M320.2 112c44.2 0 80-35.8 80-80l53.5 0c17 0 33.3 6.7 45.3 18.7L617.6 169.4c12.5 12.5 12.5 32.8 0 45.3l-50.7 50.7c-12.5 12.5-32.8 12.5-45.3 0l-41.4-41.4 0 224c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-224-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0L22.9 214.6c-12.5-12.5-12.5-32.8 0-45.3L141.5 50.7c12-12 28.3-18.7 45.3-18.7l53.5 0c0 44.2 35.8 80 80 80z\"]\n};\nvar faTShirt = faShirt;\nvar faTshirt = faShirt;\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [182], \"f1dd\", \"M160 0L416 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-416-48 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160-48 0C71.6 320 0 248.4 0 160S71.6 0 160 0z\"]\n};\nvar faEnvelopesBulk = {\n prefix: 'fas',\n iconName: 'envelopes-bulk',\n icon: [576, 512, [\"mail-bulk\"], \"f674\", \"M112 0C85.5 0 64 21.5 64 48l0 160 80 0 0-32c0-53 43-96 96-96l208 0 0-32c0-26.5-21.5-48-48-48L112 0zM240 128c-26.5 0-48 21.5-48 48l0 32 80 0c53 0 96 43 96 96l0 112 160 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-288 0zm200 64l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zM48 256c-26.5 0-48 21.5-48 48l0 10.4 156.6 86.2c1.1 .6 2.2 .9 3.4 .9s2.4-.3 3.4-.9L320 314.4 320 304c0-26.5-21.5-48-48-48L48 256zM320 369.2L186.6 442.6c-8.1 4.5-17.3 6.8-26.6 6.8s-18.4-2.4-26.6-6.8L0 369.2 0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-94.8z\"]\n};\nvar faMailBulk = faEnvelopesBulk;\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6-11 11-18 24.6-21.4 39.6-3.7 16.6-19.1 30.7-36.1 31.6-25.6 1.3-49.3 10.7-67.3 28.6-44.8 44.8-36.4 125.8 18.7 180.9S183.6 528 228.4 483.2c17.9-17.9 27.4-41.7 28.6-67.3 .9-17 15-32.3 31.6-36.1 15-3.4 28.6-10.5 39.6-21.4 31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [129523], \"f0f2\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 424 224 0 0-424c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM416 96l0 384 32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0zM96 480l0-384-32 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0z\"]\n};\nvar faCircleUp = {\n prefix: 'fas',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3l104 104c4.6 4.6 5.9 11.5 3.5 17.4S366.5 256 360 256l-56 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-56 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l104-104c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faF = {\n prefix: 'fas',\n iconName: 'f',\n icon: [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faXmarksLines = {\n prefix: 'fas',\n iconName: 'xmarks-lines',\n icon: [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faEarthOceania = {\n prefix: 'fas',\n iconName: 'earth-oceania',\n icon: [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 150.6c0-12.5 10.1-22.6 22.6-22.6l41.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16zM432 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM411.3 379.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM224 432c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-96-80c-17.7 0-32-14.3-32-32l0-18.7c0-8.5 3.4-16.6 9.4-22.6l48-48c4.2-4.2 10-6.6 16-6.6l6.6 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16 7.2-16 16-16l6.6 0c6 0 11.8 2.4 16 6.6l48 48c6 6 9.4 14.1 9.4 22.6l0 50.7c0 17.7-14.3 32-32 32l-50.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L128 352z\"]\n};\nvar faGlobeOceania = faEarthOceania;\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [576, 512, [], \"f4b3\", \"M41-25C31.6-34.3 16.4-34.3 7-25S-2.3-.4 7 9L535 537c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.6-96.6c44.4-43.2 71.6-101.8 71.6-166.5 0-132.5-114.6-240-256-240-63 0-120.8 21.4-165.4 56.8L41-25zm19.4 155C42.2 163 32 200.3 32 239.9 32 294.2 51.2 344.2 83.6 384.4L34.8 476.7c-4.8 9-3.3 20 3.6 27.5S56.1 514 65.5 510l118.4-50.7c31.8 13.3 67.1 20.7 104.1 20.7 36.4 0 70.9-7.1 102.3-19.9L60.3 130.1z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [9654], \"f04b\", \"M91.2 36.9c-12.4-6.8-27.4-6.5-39.6 .7S32 57.9 32 72l0 368c0 14.1 7.5 27.2 19.6 34.4s27.2 7.5 39.6 .7l336-184c12.8-7 20.8-20.5 20.8-35.1s-8-28.1-20.8-35.1l-336-184z\"]\n};\nvar faVialCircleCheck = {\n prefix: 'fas',\n iconName: 'vial-circle-check',\n icon: [512, 512, [], \"e596\", \"M32 32C32 14.3 46.3 0 64 0L288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 161.4c-66.1 30.3-112 97.1-112 174.6 0 39.7 12 76.6 32.7 107.2-10.3 3.1-21.3 4.8-32.7 4.8-61.9 0-112-50.1-112-112L64 64C46.3 64 32 49.7 32 32zm96 32l0 128 96 0 0-128-96 0zm96 336a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faBridgeCircleCheck = {\n prefix: 'fas',\n iconName: 'bridge-circle-check',\n icon: [576, 512, [], \"e4c9\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faCediSign = {\n prefix: 'fas',\n iconName: 'cedi-sign',\n icon: [384, 512, [], \"e0df\", \"M232 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 26.5C88.8 73.9 16 156.4 16 256S88.8 438.1 184 453.5l0 26.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24.6c46.8-3.7 89.1-23.6 121.3-53.9 12.9-12.1 13.4-32.4 1.3-45.2s-32.4-13.4-45.2-1.3c-20.7 19.6-47.6 32.7-77.3 36.2l0-270.1c29.8 3.5 56.6 16.6 77.3 36.2 12.9 12.1 33.1 11.5 45.2-1.3s11.5-33.1-1.3-45.2C321.1 80.2 278.8 60.3 232 56.6L232 32zm-48 91.8l0 264.4C124.3 373.8 80 320.1 80 256s44.3-117.8 104-132.2z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [512, 512, [129513], \"f12e\", \"M224 0c35.3 0 64 21.5 64 48 0 10.4-4.4 20-12 27.9-6.6 6.9-12 15.3-12 24.9 0 15 12.2 27.2 27.2 27.2l44.8 0c26.5 0 48 21.5 48 48l0 44.8c0 15 12.2 27.2 27.2 27.2 9.5 0 18-5.4 24.9-12 7.9-7.5 17.5-12 27.9-12 26.5 0 48 28.7 48 64s-21.5 64-48 64c-10.4 0-20.1-4.4-27.9-12-6.9-6.6-15.3-12-24.9-12-15 0-27.2 12.2-27.2 27.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2 0-9.2 5.8-17.3 13.2-22.8 11.6-8.7 18.8-20.7 18.8-34 0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34 7.4 5.5 13.2 13.5 13.2 22.8 0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2c0-12.8 10.4-23.2 23.2-23.2 9.2 0 17.3 5.8 22.8 13.2 8.7 11.6 20.7 18.8 34 18.8 26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8-5.5 7.4-13.5 13.2-22.8 13.2-12.8 0-23.2-10.4-23.2-23.2L0 176c0-26.5 21.5-48 48-48l108.8 0c15 0 27.2-12.2 27.2-27.2 0-9.5-5.4-18-12-24.9-7.5-7.9-12-17.5-12-27.9 0-26.5 28.7-48 64-48z\"]\n};\nvar faHelmetUn = {\n prefix: 'fas',\n iconName: 'helmet-un',\n icon: [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0 107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384l127.3 0 128.6 121.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5 0-174.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7 32.4-55.5 45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faGlassWater = {\n prefix: 'fas',\n iconName: 'glass-water',\n icon: [384, 512, [], \"e4f4\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5l-6.6-92.5 251.3 0-6.6 92.5-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0-20.9-10.4-45.5-10.4-66.4 0-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"]\n};\nvar faHeartCircleBolt = {\n prefix: 'fas',\n iconName: 'heart-circle-bolt',\n icon: [576, 512, [], \"e4fc\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S369.2 416 376 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S494.8 384 488 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [320, 512, [], \"e06b\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zM224 344c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9 3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C187 263.1 224 311.5 224 344z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32 0 25.3 19.5 46 44.3 47.9-7.7 8.5-12.3 19.8-12.3 32.1 0 26.5 21.5 48 48 48l96 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3-22.8-22.8-53.6-35.6-85.8-35.6L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4l-67.1-21.4 0 .1-204-64.1C62.9 59.2 40.5 70.9 33.9 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [\"dolly-box\"], \"f472\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l72.9 0 92.1 276.2c-22.5 17.6-37 45-37 75.8 0 53 43 96 96 96 52.4 0 95.1-42 96-94.3l202.1-67.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2L331.8 357c-17.2-22.1-43.9-36.5-74-37L165.7 43.8C156.9 17.6 132.5 0 104.9 0L32 0zM208 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM280.5 89.3c-25.2 8.2-39 35.3-30.8 60.5l39.6 121.7c8.2 25.2 35.3 39 60.5 30.8l121.7-39.6c25.2-8.2 39-35.3 30.8-60.5L462.8 80.5c-8.2-25.2-35.3-39-60.5-30.8L280.5 89.3z\"]\n};\nvar faDollyBox = faDolly;\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [512, 512, [128206], \"f0c6\", \"M224.6 12.8c56.2-56.2 147.4-56.2 203.6 0s56.2 147.4 0 203.6l-164 164c-34.4 34.4-90.1 34.4-124.5 0s-34.4-90.1 0-124.5L292.5 103.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L185 301.3c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l164-164c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-164 164c-53.1 53.1-53.1 139.2 0 192.3s139.2 53.1 192.3 0L428.3 284.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L343.4 459.6c-78.1 78.1-204.7 78.1-282.8 0s-78.1-204.7 0-282.8l164-164z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3 1-2.8 3.8-4.7 6.8-4.7 1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1c1.4-1.3 3.2-2.1 5.2-2.1 3 0 5.8 1.8 6.8 4.7 2.4 6.5 6.2 18.4 6.2 27.3 0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8l219.2 0 32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7 0 190.6 4.1 178.9 11.7 169.4L87.6 74.6C78.1 67.4 64 53.2 64 32zM544 352l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-128 352 0zM256 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm248-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM368 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faSquareArrowUpRight = {\n prefix: 'fas',\n iconName: 'square-arrow-up-right',\n icon: [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM272 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l54.1 0-103 103c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l103-103 0 54.1z\"]\n};\nvar faExternalLinkSquare = faSquareArrowUpRight;\nvar faFerry = {\n prefix: 'fas',\n iconName: 'ferry',\n icon: [640, 512, [], \"e4ea\", \"M224 32c0-17.7 14.3-32 32-32L384 0c17.7 0 32 14.3 32 32l0 32 48 0c44.2 0 80 35.8 80 80l0 128-.1 0c.1 .7 .1 1.3 .1 2 0 30.2-7.6 59.8-22 86.3l-12.7 23.3-.6 1c-22.3-11.3-46.5-16.8-70.8-16.7-32.5 .2-64.9 10.7-92.4 31.4-22.1 16.6-29.1 16.6-51.2 0-28.1-21.1-61.3-31.6-94.4-31.4-23.6 .2-47.1 5.7-68.7 16.7l-.6-1-12.7-23.3c-14.4-26.5-22-56.2-22-86.3 0-.7 0-1.4 .1-2l-.1 0 0-128c0-44.2 35.8-80 80-80l48 0 0-32zM160 256l320 0 0-112c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16l0 112zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMosquito = {\n prefix: 'fas',\n iconName: 'mosquito',\n icon: [576, 512, [], \"e52b\", \"M178.5 495.2c-7.5 9.6-21 12.1-31.3 5.3S133.5 480 138.9 469l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.8-38.3-2.4-2.4c-5.3-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.3-2.1c-5.8-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8c0-11.8 6.5-22.1 16-27.7l0-60.5 .3-3.3c1.5-7.3 8-12.7 15.7-12.7s14.2 5.5 15.7 12.7l.3 3.2 0 60.5c9.6 5.5 16 15.8 16 27.7l0 28.9 53.4-45.8-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 46.6-37.8 84.4-84.4 84.4l-8.1 0c-22.8 0-44.9-8.5-61.9-23.8l-66.1-59.5 39.2 52.2c2.4 3.2 4 7 4.6 10.9l.3 4 0 41 36.2 58 1.2 2.1c5.4 11 2 24.7-8.3 31.5s-23.8 4.4-31.3-5.3l-1.4-2-40-64-1.6-3.1c-1.4-3.1-2.1-6.6-2.1-10.1l0-39.8-32.4-43.1 0 74.7c0 17.7-14.3 32-32 32-17.7 0-32-14.3-32-32l0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2z\"]\n};\nvar faBuildingCircleArrowRight = {\n prefix: 'fas',\n iconName: 'building-circle-arrow-right',\n icon: [576, 512, [], \"e4d1\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 144.7c-35.7 2.9-68.5 15.6-96 35.4l0-4c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l4 0c-13.8 19.2-24.1 41-30.1 64.5-1.9-.4-3.9-.5-5.9-.5l-32 0c-17.7 0-32 14.3-32 32l0 80 74.9 0c6.1 17.3 14.6 33.4 25.1 48L96 512c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6l28.7 28.7-89.4 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"]\n};\nvar faLeftRight = {\n prefix: 'fas',\n iconName: 'left-right',\n icon: [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M502.6 406.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 492.9 352 480l0-64-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zM9.4 150.6c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 19.1 160 32l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96z\"]\n};\nvar faArrowsAltH = faLeftRight;\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M296 40c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-15.6-15.6-40.9-15.6-56.6 0s-15.6 40.9 0 56.6c31.2 31.2 9.1 84.5-35 84.5-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-44.1 53.3-66.1 84.5-35 15.6 15.6 40.9 15.6 56.6 0s15.6-40.9 0-56.6c-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0C349.3 106.1 296 84.1 296 40zM160 224a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5L210.5 179.8 63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8l-147.2-12.3 57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4-15.5 13.2-26.4 31.6-26.4 54.6 0 46.9 14.3 84.1 37 112.5 14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8S85.7 512 96 512l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8 22.7-28.4 37-65.5 37-112.5 0-23.1-10.9-41.5-26.4-54.6-1.8-1.5-3.7-3-5.6-4.4l0-148.9 8 0c13.3 0 24-10.7 24-24S437.3 0 424 0L24 0zM96 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zM224 288c-88.4 0-160-14.3-160-32s71.6-32 160-32 160 14.3 160 32-71.6 32-160 32z\"]\n};\nvar faSingleQuoteLeft = {\n prefix: 'fas',\n iconName: 'single-quote-left',\n icon: [192, 512, [], \"e81b\", \"M128 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216C0 149.7 53.7 96 120 96l8 0z\"]\n};\nvar faMoneyBills = {\n prefix: 'fas',\n iconName: 'money-bills',\n icon: [576, 512, [], \"e1f3\", \"M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zm176 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM160 152l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 112c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM504 159.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM512 264l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 416c0 35.3 28.7 64 64 64l392 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 432c-8.8 0-16-7.2-16-16l0-264z\"]\n};\nvar faTabletButton = {\n prefix: 'fas',\n iconName: 'tablet-button',\n icon: [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faRectangleXmark = {\n prefix: 'fas',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [576, 512, [128295], \"f0ad\", \"M509.4 98.6c7.6-7.6 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 88.4-71.6 160-160 160-17.5 0-34.4-2.8-50.2-8L146.9 498.9c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8L232 210.2c-5.2-15.8-8-32.6-8-50.2 0-88.4 71.6-160 160-160 20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1l-88.7 88.7c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l88.7-88.7z\"]\n};\nvar faTrashCan = {\n prefix: 'fas',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M136.7 5.9C141.1-7.2 153.3-16 167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm88 64c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faTableCells = {\n prefix: 'fas',\n iconName: 'table-cells',\n icon: [448, 512, [\"th\"], \"f00a\", \"M384 96l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zM256 288l-64 0 0-64 64 0 0 64zm-64 64l64 0 0 64-64 0 0-64zm-64-64l-64 0 0-64 64 0 0 64zM64 352l64 0 0 64-64 0 0-64zm0-192l0-64 64 0 0 64-64 0zm128 0l0-64 64 0 0 64-64 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faTh = faTableCells;\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [384, 512, [127895], \"f4d6\", \"M235.1 0c33.4 0 64.5 17.4 81.9 45.9 1.2 2 13 21.3 35.3 57.8 21.1 34.5 18.3 78.5-7 110L278.3 297.7 364.5 406c5.5 6.9 4.4 16.9-2.5 22.5l-80 64c-6.9 5.5-17 4.4-22.5-2.5L38.6 213.8C13.3 182.3 10.5 138.3 31.6 103.8 54 67.2 65.7 47.9 67 45.9 84.4 17.4 115.4 0 148.9 0l86.3 0zM192 189.2l48.6-61.2-97.3 0 48.6 61.2zM75 336.2l86.2 107.8-36.8 46c-5.5 6.9-15.6 8-22.5 2.5l-80-64c-6.9-5.5-8-15.6-2.5-22.5L75 336.2z\"]\n};\nvar faLandmarkFlag = {\n prefix: 'fas',\n iconName: 'landmark-flag',\n icon: [512, 512, [], \"e51c\", \"M352-32L240-32c-8.8 0-16 7.2-16 16l0 144-176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 224-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-224 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0 0-64 80 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm48 224l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0z\"]\n};\nvar faUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'up-down-left-right',\n icon: [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S179.1 128 192 128l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S128 332.9 128 320l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S332.9 384 320 384l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S384 179.1 384 192l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faArrowsAlt = faUpDownLeftRight;\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [128663], \"f5e4\", \"M147 106.7l-29.8 85.3 122.9 0 0-96-77.9 0c-6.8 0-12.9 4.3-15.1 10.7zM48.6 193.9L86.5 85.6C97.8 53.5 128.1 32 162.1 32L360 32c25.2 0 48.9 11.9 64 32l96.2 128.3C587.1 196.5 640 252.1 640 320l0 16c0 35.3-28.7 64-64 64l-16.4 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-144.7 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-.4 0c-35.3 0-64-28.7-64-64l0-80c0-30.1 20.7-55.3 48.6-62.1zM440 192l-67.2-89.6c-3-4-7.8-6.4-12.8-6.4l-72 0 0 96 152 0zM152 432a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm360-40a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"]\n};\nvar faTrashArrowUp = {\n prefix: 'fas',\n iconName: 'trash-arrow-up',\n icon: [448, 512, [\"trash-restore\"], \"f829\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0-21.1 323.1C393.3 492.4 372.3 512 347 512L101 512c-25.3 0-46.3-19.6-47.9-44.9L32 144zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTrashRestore = faTrashArrowUp;\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3S491.8 142.1 458 98.7c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256S20.2 369.9 54 413.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c28.1 28.1 73.7 28.1 101.8 0 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-46.9 46.9-122.8 46.9-169.7 0s-46.9-122.8 0-169.7 122.8-46.9 169.7 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-28.1-28.1-73.7-28.1-101.8 0s-28.1 73.7 0 101.8z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 192c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 22.5 0 58.4 55-33.4 31.6c-9.6 9.1-10.1 24.3-.9 33.9s24.3 10.1 33.9 .9l35.4-33.5 35.6 33.5c9.7 9.1 24.8 8.6 33.9-1s8.6-24.8-1-33.9l-33.6-31.6 33.6-31.8c9.6-9.1 10.1-24.3 .9-33.9s-24.3-10.1-33.9-.9l-35.7 33.7-40.9-38.5c12.9-11.7 21.1-28.6 21.1-47.5 0-35.3-28.7-64-64-64l-56 0zm32 80l-8 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-24 0z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [576, 512, [], \"f12d\", \"M178.5 416l123 0 65.3-65.3-173.5-173.5-126.7 126.7 112 112zM224 480l-45.5 0c-17 0-33.3-6.7-45.3-18.7L17 345C6.1 334.1 0 319.4 0 304s6.1-30.1 17-41L263 17C273.9 6.1 288.6 0 304 0s30.1 6.1 41 17L527 199c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41l-135 135 120 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM288 437l0 11-192 0 0-11c0-25.5 10.1-49.9 28.1-67.9l67.9-67.9 67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"]\n};\nvar faHourglass1 = faHourglassStart;\nvar faCircleLeft = {\n prefix: 'fas',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7l104-104c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 56 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 56c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-104-104c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faCruzeiroSign = {\n prefix: 'fas',\n iconName: 'cruzeiro-sign',\n icon: [448, 512, [], \"e152\", \"M240 96c-88.4 0-160 71.6-160 160 0 71.6 47.1 132.3 112 152.7L192 256c0-13.3 10.7-24 24-24 12.8 0 23.3 10.1 24 22.7 15.5-9.5 33.5-14.7 52.3-14.7l11.8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11.8 0c-18.8 0-36.1 10-45.4 26.3-4.5 7.9-6.9 16.8-6.9 25.9l0 75.8c42.5 0 81.1-16.6 109.8-43.6 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C353.7 456.8 299.5 480 240 480 116.3 480 16 379.7 16 256S116.3 32 240 32c59.5 0 113.7 23.2 153.7 61.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3C321.1 112.6 282.5 96 240 96z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [576, 512, [128684], \"f48d\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM320 448l96 0 0-32-96 0 0 32zM0 416c0-35.3 28.7-64 64-64l384 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm576-40l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faSquarePollVertical = {\n prefix: 'fas',\n iconName: 'square-poll-vertical',\n icon: [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 192c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zm184 88c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48zM224 128c13.3 0 24 10.7 24 24l0 208c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24z\"]\n};\nvar faPoll = faSquarePollVertical;\nvar faPersonCircleMinus = {\n prefix: 'fas',\n iconName: 'person-circle-minus',\n icon: [640, 512, [], \"e540\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [9763], \"f780\", \"M260 12.6c0-8.3-7.6-14.5-15.5-12.1-60.9 18.8-105.1 75.8-105.1 143.1 0 25.1 6.1 48.7 17 69.5-21 1.8-42 8.2-61.5 19.5-57.9 33.6-84.8 100.2-70.9 162.5 1.9 8.4 11.4 12 18.9 7.6 5-2.9 7.6-8.6 7.1-14.4-.3-3.3-.4-6.6-.4-10.1 0-123.5 184.4-123.5 184.4 0 0 88.4-94.5 113.6-148.2 75.4-4.5-3.2-10.5-3.9-15.3-1.1-7 4.1-8.6 13.6-2.7 19.1 46.6 43.8 118 53.9 176.1 20.2 17.9-10.4 32.8-23.9 44.5-39.4 11.7 15.6 26.6 29.1 44.5 39.4 58.1 33.7 129.5 23.6 176.1-20.2 5.9-5.5 4.3-15.1-2.7-19.1-4.8-2.8-10.8-2.1-15.3 1.1-53.7 38.2-148.2 13-148.2-75.4 0-123.5 184.4-123.5 184.4 0 0 3.4-.1 6.8-.4 10.1-.5 5.8 2.1 11.5 7.1 14.4 7.4 4.3 17 .8 18.9-7.6 13.9-62.2-13-128.9-70.9-162.5-19.5-11.3-40.4-17.7-61.5-19.5 10.9-20.8 17-44.4 17-69.5 0-67.3-44.2-124.3-105.1-143.1-7.9-2.4-15.5 3.8-15.5 12.1 0 5.9 4 11 9.5 13.2 83.4 33.6 70.8 178.4-37.8 178.4S167.1 59.4 250.5 25.8c5.5-2.2 9.5-7.3 9.5-13.2zM248.4 288a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM435 317.7c-16.2 0-31.4 5.5-42.1 15-10.1 9.1-18.1 23.4-18.1 45.6 0 21.1 7.2 35 16.5 44.1 32.2-24.6 55.5-60.5 63.9-101.8-6.3-1.9-13.2-3-20.2-3zM202 378.3c0-22.3-8-36.6-18.1-45.6-10.7-9.6-25.9-15-42.1-15-7 0-13.9 1-20.2 3 8.4 41.3 31.6 77.2 63.9 101.8 9.4-9.1 16.5-23.1 16.5-44.2zm41.2-224.3c9 10.2 23.2 18.2 45.2 18.2s36.2-8 45.2-18.2c6.7-7.6 11.5-17.5 13.6-28.4-18.3-6.8-38.2-10.5-58.8-10.5s-40.5 3.7-58.8 10.5c2.2 10.9 6.9 20.8 13.6 28.5z\"]\n};\nvar faBellConcierge = {\n prefix: 'fas',\n iconName: 'bell-concierge',\n icon: [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C124.8 156.7 40.2 243.7 32.6 352l446.9 0C471.8 243.7 387.2 156.7 280 145.3l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z\"]\n};\nvar faConciergeBell = faBellConcierge;\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M48 384c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48l24 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 24 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 384z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [128014], \"f6f0\", \"M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26 20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16S568.8 0 560 0L448 0C377.3 0 320 57.3 320 128l-171.2 0C118.1 128 91.2 144.3 76.3 168.8 33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5 1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7 0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7l0 0 0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z\"]\n};\nvar faHandsHoldingChild = {\n prefix: 'fas',\n iconName: 'hands-holding-child',\n icon: [640, 512, [], \"e4fa\", \"M320-32a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40zM384.5 149l-19.8-16.7 11.1 88.8c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8-19.8 16.7c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 72.8 295.3 64 320 64s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0-133.3 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0 133.3-320-64 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [9772], \"f66d\", \"M240.7 8c8.9-7.4 21.8-7.4 30.7 0l37.8 31.5c8.7 7.3 11.1 19.6 6 29.6-1.2 2.4-2.8 5.5-4.6 9.2 34.2 19.2 57.3 55.8 57.3 97.8s-23.1 78.6-57.3 97.8c1.8 3.7 3.3 6.8 4.6 9.2 5.1 10 2.7 22.3-6 29.6l-37.2 31 0 19.8c22.9-15.7 48.4-33.3 76.7-52.7 42.8-29.4 68.4-78 68.4-130l0-11.1c0-23.9-7.1-47.3-20.4-67.2-5.1-7.7-4.6-17.8 1.7-24.6 6.6-7.1 17.2-8.1 25.2-2.8 27.5 18.1 89.4 67.5 89.4 149.1 0 46.5-20.2 88.6-41.8 120.4-21.6 32-45.6 55-55.3 63.8-7.8 7.1-19 7.9-27.6 3l-70.8-40.3-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21l-40.2-27.6 0 28.9c9.6 5.5 16 15.9 16 27.7 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7c-1.8 11.4-11.8 20.1-23.7 20.1-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-70.8 40.3c-8.7 4.9-19.8 4.1-27.6-3-9.7-8.8-33.7-31.9-55.3-63.8-21.5-31.8-41.8-73.9-41.8-120.4 0-81.7 61.9-131.1 89.4-149.1 8.1-5.3 18.6-4.3 25.2 2.8 6.4 6.9 6.8 17 1.7 24.6-13.3 19.9-20.4 43.3-20.4 67.2l0 11.1c0 51.9 25.6 100.6 68.4 130 28.4 19.6 53.7 36.9 75.6 52l0-19.1-37.2-31c-8.7-7.3-11.1-19.6-6-29.6 1.2-2.4 2.8-5.5 4.6-9.2-34.2-19.2-57.3-55.8-57.3-97.8s23.1-78.6 57.3-97.8c-1.8-3.7-3.3-6.8-4.6-9.2-5.1-10-2.7-22.3 6-29.6L240.7 8zM220.3 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1c6.8-19.2 11.8-38.4 11.8-53.1s-4.9-33.9-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1c-6.8 19.2-11.8 38.4-11.8 53.1s4.9 33.9 11.8 53.1z\"]\n};\nvar faFaceFrownOpen = {\n prefix: 'fas',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [448, 512, [10003, 10004], \"f00c\", \"M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M64 64C64 28.7 92.7 0 128 0L288 0c35.3 0 64 28.7 64 64l0 224c44.2 0 80 35.8 80 80l0 12c0 11 9 20 20 20s20-9 20-20l0-127.7c-32.5-10.2-56-40.5-56-76.3l0-32c0-8.8 7.2-16 16-16l16 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 32 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 16 0c8.8 0 16 7.2 16 16l0 32c0 35.8-23.5 66.1-56 76.3L520 380c0 37.6-30.4 68-68 68s-68-30.4-68-68l0-12c0-17.7-14.3-32-32-32l0 129.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L72 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L64 64zm82.7 125.7l39 0-20.9 66.9c-2.4 7.6 3.3 15.4 11.3 15.4 2.9 0 5.6-1 7.8-2.9l94.6-82c3.1-2.7 4.9-6.6 4.9-10.7 0-7.8-6.3-14.1-14.1-14.1l-39 0 20.9-66.9c2.4-7.6-3.3-15.4-11.3-15.4-2.9 0-5.6 1-7.8 2.9l-94.6 82c-3.1 2.7-4.9 6.6-4.9 10.7 0 7.8 6.3 14.1 14.1 14.1z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [576, 512, [], \"f502\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c29.7 0 57.7 7.3 82.3 20.1l0 4.3c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zm301.7 .1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faMobileScreenButton = {\n prefix: 'fas',\n iconName: 'mobile-screen-button',\n icon: [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm64 0l0 304 224 0 0-304-224 0zM192 472c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faMobileAlt = faMobileScreenButton;\nvar faAnchorCircleCheck = {\n prefix: 'fas',\n iconName: 'anchor-circle-check',\n icon: [640, 512, [], \"e4aa\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 0c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3L80 307.9c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faPersonWalkingWithCane = {\n prefix: 'fas',\n iconName: 'person-walking-with-cane',\n icon: [576, 512, [\"blind\"], \"f29d\", \"M224-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM160 205.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l34.4-34.4c23.2-23.2 54.6-36.2 87.3-36.2 36.1 0 70.3 15.8 93.8 43.1l68.6 80c11.5 13.4 9.9 33.6-3.5 45.1s-33.6 9.9-45.1-3.5l-55.7-65 0 118.6 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L160.1 371zm233.5-62.2c10.6-8 25.6-5.8 33.6 4.8l144 192c8 10.6 5.8 25.6-4.8 33.6s-25.6 5.8-33.6-4.8l-144-192c-8-10.6-5.8-25.6 4.8-33.6z\"]\n};\nvar faBlind = faPersonWalkingWithCane;\nvar faFileWaveform = {\n prefix: 'fas',\n iconName: 'file-waveform',\n icon: [384, 512, [\"file-medical-alt\"], \"f478\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-96 60.3 0 48.8 62.7c5.1 6.6 13.3 10 21.6 9.1s15.5-6.1 19.1-13.6l42.9-91.2 9.9 19.8c4.1 8.1 12.4 13.3 21.5 13.3l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-57.2 0-25.4-50.7c-4.1-8.2-12.6-13.4-21.8-13.3s-17.5 5.5-21.4 13.8l-47.3 100.6-32-41.1C86.4 307.4 79.4 304 72 304L0 304 0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5z\"]\n};\nvar faFileMedicalAlt = faFileWaveform;\nvar faHouseCrack = {\n prefix: 'fas',\n iconName: 'house-crack',\n icon: [512, 512, [], \"e3b1\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l86.4 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L256 368 195.8 285.2c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L256 448 294.4 512 400 512c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M64 400l85.7-208.2c17-41.3 47.8-75.3 87.2-96.3L383.8 17.2c12.3-6.6 26.5 4.7 23 18.2L369.6 177.8c-1.1 4.1-1.6 8.3-1.6 12.6 0 6.3 1.2 12.6 3.6 18.5l76.4 191.1-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 260.4 230.9 256 224 256s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 323 144 329.1 144 336s4.4 13 10.9 15.2l40.4 13.5 11.8 35.4-143.1 0zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faUserDoctor = {\n prefix: 'fas',\n iconName: 'user-doctor',\n icon: [448, 512, [\"user-md\"], \"f0f0\", \"M224 8a120 120 0 1 0 0 240 120 120 0 1 0 0-240zm60 312.8c-5.4-.5-11-.8-16.6-.8l-86.9 0c-5.6 0-11.1 .3-16.6 .8l0 67.5c16.5 7.6 28 24.3 28 43.6 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-19.4 11.5-36.1 28-43.6l0-58.4C61 353 16 413.6 16 484.6 16 499.7 28.3 512 43.4 512l361.1 0c15.1 0 27.4-12.3 27.4-27.4 0-71-45-131.5-108-154.6l0 37.4c23.3 8.2 40 30.5 40 56.6l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-11-9-20-20-20s-20 9-20 20l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-26.1 16.7-48.3 40-56.6l0-46.6z\"]\n};\nvar faUserMd = faUserDoctor;\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 80l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 112l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarChart = faChartBar;\nvar faSprayCanSparkles = {\n prefix: 'fas',\n iconName: 'spray-can-sparkles',\n icon: [576, 512, [\"air-freshener\"], \"f5d0\", \"M160 32l0 80 128 0 0-80c0-17.7-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32zm0 128c-53 0-96 43-96 96l0 208c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96l-128 0zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM448 48c0-1.4-1-3-2.2-3.6L416 32 403.6 2.2C403 1 401.4 0 400 0s-3 1-3.6 2.2L384 32 354.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L384 64 396.4 93.8C397 95 398.6 96 400 96s3-1 3.6-2.2L416 64 445.8 51.6C447 51 448 49.4 448 48zm76.4 45.8C525 95 526.6 96 528 96s3-1 3.6-2.2L544 64 573.8 51.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 32 531.6 2.2C531 1 529.4 0 528 0s-3 1-3.6 2.2L512 32 482.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 64 524.4 93.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L512 224 482.2 236.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 256 524.4 285.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L544 256 573.8 243.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 224 531.6 194.2zM512 144c0-1.4-1-3-2.2-3.6L480 128 467.6 98.2C467 97 465.4 96 464 96s-3 1-3.6 2.2L448 128 418.2 140.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L448 160 460.4 189.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 160 509.8 147.6c1.2-.6 2.2-2.2 2.2-3.6z\"]\n};\nvar faAirFreshener = faSprayCanSparkles;\nvar faBahtSign = {\n prefix: 'fas',\n iconName: 'baht-sign',\n icon: [320, 512, [], \"e0ac\", \"M136 0c-13.3 0-24 10.7-24 24l0 40-74.4 0C16.8 64 0 80.8 0 101.6L0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 48 0c61.9 0 112-50.1 112-112 0-40.1-21.1-75.3-52.7-95.1 13.1-18.3 20.7-40.7 20.7-64.9 0-61.9-50.1-112-112-112l-16 0 0-40c0-13.3-10.7-24-24-24zM112 128l0 96-48 0 0-96 48 0zm48 96l0-96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0zm-48 64l0 96-48 0 0-96 48 0zm48 96l0-96 48 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-48 0z\"]\n};\nvar faTemperatureArrowUp = {\n prefix: 'fas',\n iconName: 'temperature-arrow-up',\n icon: [512, 512, [\"temperature-up\"], \"e040\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-212.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 9.4l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-9.4-9.4 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-178.7-9.4 9.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c6-6 14.1-9.4 22.6-9.4s16.6 3.4 22.6 9.4z\"]\n};\nvar faTemperatureUp = faTemperatureArrowUp;\nvar faWebAwesome = {\n prefix: 'fas',\n iconName: 'web-awesome',\n icon: [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52z\"]\n};\nvar faNonBinary = {\n prefix: 'fas',\n iconName: 'non-binary',\n icon: [384, 512, [], \"e807\", \"M192 544c-97.2 0-176-78.8-176-176 0-86.3 62.1-158 144-173l0-47.2-49.7 24.8-3 1.3c-15.2 5.7-32.5-.8-39.9-15.7-7.4-14.8-2.2-32.6 11.5-41.3l2.8-1.6 38.8-19.4-38.8-19.4c-15.8-7.9-22.2-27.1-14.3-42.9 7.4-14.8 24.8-21.4 40-15.6l3 1.3 49.7 24.8 0-44.2c0-17.7 14.3-32 32-32s32 14.3 32 32l0 44.2 49.7-24.8 3-1.3c15.2-5.8 32.5 .8 39.9 15.6s2.2 32.7-11.5 41.3l-2.8 1.6-38.7 19.4 38.7 19.3c15.8 7.9 22.2 27.1 14.3 42.9-7.4 14.8-24.7 21.4-39.9 15.6l-3-1.3-49.7-24.8 0 47.2c81.9 15.1 144 86.8 144 173 0 97.2-78.8 176-176 176zm0-64a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faN = {\n prefix: 'fas',\n iconName: 'n',\n icon: [384, 512, [110], \"4e\", \"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 50.5 8.4 38.5 21.1 33.9z\"]\n};\nvar faArrowsUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-up-down-left-right',\n icon: [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 114.7-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 114.7 0 0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-114.7 114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-114.7 0 0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faArrows = faArrowsUpDownLeftRight;\nvar faHouse = {\n prefix: 'fas',\n iconName: 'house',\n icon: [512, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM240 320l32 0c26.5 0 48 21.5 48 48l0 96-128 0 0-96c0-26.5 21.5-48 48-48z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm0 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM48 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm368 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zM75 75A48 48 0 1 1 142.9 142.9 48 48 0 1 1 75 75zM437 369.1A48 48 0 1 1 369.1 437 48 48 0 1 1 437 369.1z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [576, 512, [\"legal\"], \"f0e3\", \"M169.6 153.4l-18.7-18.7c-12.5-12.5-12.5-32.8 0-45.3L265.6-25.4c12.5-12.5 32.8-12.5 45.3 0L329.6-6.6c12.5 12.5 12.5 32.8 0 45.3L214.9 153.4c-12.5 12.5-32.8 12.5-45.3 0zM276 211.7l-31.4-31.4 112-112 119.4 119.4-112 112-31.4-31.4-232 232c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l232-232zM390.9 374.6c-12.5-12.5-12.5-32.8 0-45.3L505.6 214.6c12.5-12.5 32.8-12.5 45.3 0l18.7 18.7c12.5 12.5 12.5 32.8 0 45.3L454.9 393.4c-12.5 12.5-32.8 12.5-45.3 0l-18.7-18.7z\"]\n};\nvar faLegal = faGavel;\nvar faTicketSimple = {\n prefix: 'fas',\n iconName: 'ticket-simple',\n icon: [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6-18.8 6.5-32.3 24.4-32.3 45.4s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64C0 311.2 7.4 304.3 15.7 301.4 34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z\"]\n};\nvar faTicketAlt = faTicketSimple;\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [128330], \"f4ba\", \"M496 64c13.2 0 20.7 15.1 12.8 25.6L480 128 480 304c0 79.5-64.5 144-144 144l-112 0-46.3 46.3c-10.4 10.4-26.5 12.4-39.1 4.8L41.5 440.9c-17-10.2-15-35.5 3.4-42.9L160 352C23.8 311.1 7.5 169.8 22 95.7 25.6 77.9 45.3 71.4 61.3 80.2L320 224 320 144c0-44.2 35.8-80 80-80l96 0zm-96 56a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM182.5-9.6c12.4-13.7 33.3-8.9 42.5 7.1l56.4 98.3c-5.8 14.4-9.2 30.1-9.4 46.5L138.1 68c10.1-31.6 27-58.4 44.4-77.6z\"]\n};\nvar faTarpDroplet = {\n prefix: 'fas',\n iconName: 'tarp-droplet',\n icon: [512, 512, [], \"e57c\", \"M256 160c35.3 0 64-26.9 64-60 0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60zM368 96c0 61.9-50.1 112-112 112S144 157.9 144 96c0-11.1 1.6-21.9 4.6-32L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l277.5 0c17 0 33.3-6.7 45.3-18.7L493.3 322.7c12-12 18.7-28.3 18.7-45.3L512 128c0-35.3-28.7-64-64-64l-84.6 0c3 10.1 4.6 20.9 4.6 32zm85.5 176L336 389.5 336 296c0-13.3 10.7-24 24-24l93.5 0zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faTreeCity = {\n prefix: 'fas',\n iconName: 'tree-city',\n icon: [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM528 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 480l0-160-16 0c-44.2 0-80-35.8-80-80 0-26.7 13.1-50.3 33.2-64.9-.8-4.9-1.2-10-1.2-15.1 0-53 43-96 96-96s96 43 96 96l0 96c0 35.3-28.7 64-64 64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faTurnUp = {\n prefix: 'fas',\n iconName: 'turn-up',\n icon: [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M169.4 9.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S332.9 192 320 192l-64 0 0 160c0 88.4-71.6 160-160 160l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32-14.3 32-32l0-160-64 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128z\"]\n};\nvar faLevelUpAlt = faTurnUp;\nvar faTemperatureQuarter = {\n prefix: 'fas',\n iconName: 'temperature-quarter',\n icon: [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-28.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 28.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature1 = faTemperatureQuarter;\nvar faThermometer1 = faTemperatureQuarter;\nvar faThermometerQuarter = faTemperatureQuarter;\nvar faSliders = {\n prefix: 'fas',\n iconName: 'sliders',\n icon: [512, 512, [\"sliders-h\"], \"f1de\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 224zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384z\"]\n};\nvar faSlidersH = faSliders;\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [576, 512, [128332], \"f678\", \"M174.8 224l226.4 0c43.5 0 78.8-35.3 78.8-78.8 0-25.5-12.3-49.4-33.1-64.2L297.3-25.4c-5.6-3.9-13-3.9-18.5 0L129.1 81C108.3 95.8 96 119.7 96 145.2 96 188.7 131.3 224 174.8 224zM512 512c35.3 0 64-28.7 64-64l0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-448 0 0-48c0-17.7-14.3-32-32-32S0 206.3 0 224L0 448c0 35.3 28.7 64 64 64l448 0zM240 384c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80-96 0 0-80z\"]\n};\nvar faH = {\n prefix: 'fas',\n iconName: 'h',\n icon: [384, 512, [104], \"48\", \"M320 288l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-256 0 0-160c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 256 0z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M48 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM0 192c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 256 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-224-32 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faPersonWalking = {\n prefix: 'fas',\n iconName: 'person-walking',\n icon: [384, 512, [128694, \"walking\"], \"f554\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM105.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L60.1 182.6C42.1 200.6 32 225 32 250.5L32 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zm12.4 179.4c-1.5 5.2-4.3 10-8.1 13.8L41.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8l-10.4 36.2z\"]\n};\nvar faWalking = faPersonWalking;\nvar faArrowTurnDown = {\n prefix: 'fas',\n iconName: 'arrow-turn-down',\n icon: [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"]\n};\nvar faLevelDown = faArrowTurnDown;\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [512, 512, [128739], \"f018\", \"M223.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L1.4 420.5C-6.1 450.7 16.8 480 48 480l175.9 0 0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 176.1 0c31.2 0 54.1-29.3 46.6-59.5L426.5 80.6C419.4 52.1 393.8 32 364.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSpiral = {\n prefix: 'fas',\n iconName: 'spiral',\n icon: [512, 512, [], \"e80a\", \"M115.5 7.4c13.6-11.3 33.8-9.5 45.1 4.1s9.5 33.8-4.1 45.1C100.2 103.5 64 175.2 64 256 64 362 150 448 256 448s192-86 192-192c0-75.1-60.9-136-136-136S176 180.9 176 256c0 44.2 35.8 80 80 80s80-35.8 80-80c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-48.6 39.4-88 88-88s88 39.4 88 88c0 79.5-64.5 144-144 144S112 335.5 112 256c0-110.5 89.5-200 200-200s200 89.5 200 200c0 141.4-114.6 256-256 256S0 397.4 0 256C0 155.8 45 66.1 115.5 7.4z\"]\n};\nvar faFaceFrown = {\n prefix: 'fas',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm90.6-113.9c-20.4-28-53.4-46.1-90.6-46.1s-70.2 18.1-90.6 46.1c-7.8 10.7-22.8 13.1-33.5 5.3s-13.1-22.8-5.3-33.5C155.7 330 202.8 304 256 304s100.3 26 129.4 65.9c7.8 10.7 5.4 25.7-5.3 33.5s-25.7 5.4-33.5-5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFrown = faFaceFrown;\nvar faWineGlassEmpty = {\n prefix: 'fas',\n iconName: 'wine-glass-empty',\n icon: [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C48.7 0 35.6 10.8 32.6 25.7L3.2 173C1.1 183.5 0 194.2 0 205l0 3c0 77.4 55 142 128 156.8l0 115.2-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-115.2C265 350 320 285.4 320 208l0-3c0-10.7-1.1-21.4-3.2-32L287.4 25.7C284.4 10.8 271.3 0 256 0L64 0zm1.9 185.6L90.2 64 229.8 64 254.1 185.6c1.3 6.4 1.9 12.9 1.9 19.4l0 3c0 53-43 96-96 96s-96-43-96-96l0-3c0-6.5 .6-13 1.9-19.4z\"]\n};\nvar faWineGlassAlt = faWineGlassEmpty;\nvar faClapperboard = {\n prefix: 'fas',\n iconName: 'clapperboard',\n icon: [512, 512, [], \"e131\", \"M448 64c2 0 3.9 .1 5.8 .3l-95.7 95.7 67.9 0 72-72c8.8 11 14 24.9 14 40l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l70.1 0-96 96 67.9 0 95-95 1-1 92.1 0-96 96 67.9 0 95-95 1-1 86.1 0z\"]\n};\nvar faForwardStep = {\n prefix: 'fas',\n iconName: 'forward-step',\n icon: [384, 512, [\"step-forward\"], \"f051\", \"M21 36.8c12.9-7 28.7-6.3 41 1.8L320 208.1 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144.1-258 169.6c-12.3 8.1-28 8.8-41 1.8S0 454.7 0 440L0 72C0 57.3 8.1 43.8 21 36.8z\"]\n};\nvar faStepForward = faForwardStep;\nvar faSquareUpRight = {\n prefix: 'fas',\n iconName: 'square-up-right',\n icon: [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM168 160c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l35 35-67 67c-9.4 9.4-9.4 24.6 0 33.9l24 24c9.4 9.4 24.6 9.4 33.9 0l67-67 35 35c6.9 6.9 17.2 8.9 26.2 5.2S320 321.7 320 312l0-128c0-13.3-10.7-24-24-24l-128 0z\"]\n};\nvar faExternalLinkSquareAlt = faSquareUpRight;\nvar faBookJournalWhills = {\n prefix: 'fas',\n iconName: 'book-journal-whills',\n icon: [448, 512, [\"journal-whills\"], \"f66a\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM274.1 99.2c2.6-2.6 6.7-3.1 9.9-1.1 32.1 20 53.4 55.6 53.4 96.2 0 62.6-50.7 113.3-113.3 113.3S110.7 256.9 110.7 194.3c0-40.6 21.4-76.2 53.4-96.2 3.1-2 7.2-1.5 9.9 1.1s3.1 6.7 1.2 9.8c-5.2 8.6-8.2 18.7-8.2 29.5 0 15.1 5.9 28.8 15.5 39.1 2.5 2.7 2.9 6.7 .9 9.7-4.7 7.4-7.4 16.1-7.4 25.5 0 21.6 14.3 39.9 34 45.9l1-24.8c-7.1-4.4-11.8-12.2-11.8-21.1 0-9.6 5.5-18 13.5-22.1l3.3-81.8c.2-4.3 3.7-7.7 8-7.7s7.8 3.4 8 7.7l3.3 81.8c8 4.1 13.5 12.4 13.5 22.1 0 8.9-4.7 16.7-11.8 21.1l1 24.8c19.6-6 33.9-24.1 34-45.6l0-.6c-.1-9.3-2.7-17.9-7.4-25.2-1.9-3.1-1.6-7.1 .9-9.7 9.6-10.2 15.5-23.9 15.5-39.1 0-10.8-3-20.9-8.2-29.5-1.9-3.2-1.4-7.2 1.2-9.8z\"]\n};\nvar faJournalWhills = faBookJournalWhills;\nvar faChampagneGlasses = {\n prefix: 'fas',\n iconName: 'champagne-glasses',\n icon: [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M155.6 17.3C163 3 179.9-3.6 195 1.9l125 45.6 125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6l31.3 86.2 41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41c-47.4 17.3-94.8 34.5-142.2 51.8-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-33.9-130-95.2l-14.6-64.7-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6.1 25.2 24.4 19.1 41s-24.4 25.2-41 19.1c-47.4-17.3-94.8-34.6-142.2-51.8-16.6-6.1-25.2-24.4-19.1-41S26.3 392 42.9 398l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8 89.2 32.5 13.1-57.9-75.1-27.4zm240.9 0l-75.1 27.4 13.1 57.9 89.2-32.5-27.2-52.8z\"]\n};\nvar faGlassCheers = faChampagneGlasses;\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M132.3 64L106.7 192 24 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L26.5 80.4C29.8 70.6 39 64 49.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM312 64l82.7 0 25.6 128-108.3 0 0-128zm131.7 0l83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1c0 13.3-10.7 24-24 24l-82.7 0-25.6-128zM25.7 240l524.7 0c-.4 2.1-13.3 73.4-38.9 213.7-3 16.3-17.9 27.6-34.4 26.1S448 464.6 448 448l0-16-320 0 0 16c0 16.6-12.6 30.4-29.1 31.9S67.5 470 64.5 453.7C39 313.3 26 242.1 25.7 240z\"]\n};\nvar faHeartCircleXmark = {\n prefix: 'fas',\n iconName: 'heart-circle-xmark',\n icon: [576, 512, [], \"e501\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faComputer = {\n prefix: 'fas',\n iconName: 'computer',\n icon: [576, 512, [], \"e4e5\", \"M348.8 32C340.7 46.1 336 62.5 336 80l0 16-272 0 0 224 272 0 0 64-272 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l284.8 0zM336 432c0 17.5 4.7 33.9 12.8 48L120 480c-13.3 0-24-10.7-24-24s10.7-24 24-24l216 0zM432 32l96 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm24 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm56 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faWandMagic = {\n prefix: 'fas',\n iconName: 'wand-magic',\n icon: [512, 512, [\"magic\"], \"f0d0\", \"M398.5 12.2l-88.2 88.2 101.3 101.3 88.2-88.2C507.6 105.6 512 95 512 84s-4.4-21.6-12.2-29.5L457.5 12.2C449.6 4.4 439 0 428 0s-21.6 4.4-29.5 12.2zM276.4 134.3L12.2 398.5C4.4 406.4 0 417 0 428s4.4 21.6 12.2 29.5l42.3 42.3C62.4 507.6 73 512 84 512s21.6-4.4 29.5-12.2L377.7 235.6 276.4 134.3z\"]\n};\nvar faMagic = faWandMagic;\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [512, 512, [129504], \"f5dc\", \"M120 56c0-30.9 25.1-56 56-56l24 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-32 0c-29.8 0-54.9-20.4-62-48-.7 0-1.3 0-2 0-44.2 0-80-35.8-80-80 0-18 6-34.6 16-48-19.4-14.6-32-37.8-32-64 0-30.9 17.6-57.8 43.2-71.1-7.1-12-11.2-26-11.2-40.9 0-44.2 35.8-80 80-80l0-24zm272 0l0 24c44.2 0 80 35.8 80 80 0 15-4.1 29-11.2 40.9 25.7 13.3 43.2 40.1 43.2 71.1 0 26.2-12.6 49.4-32 64 10 13.4 16 30 16 48 0 44.2-35.8 80-80 80-.7 0-1.3 0-2 0-7.1 27.6-32.2 48-62 48l-32 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32l24 0c30.9 0 56 25.1 56 56z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zm80 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faHouseMedicalCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-medical-circle-exclamation',\n icon: [640, 512, [], \"e512\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faCodeCommit = {\n prefix: 'fas',\n iconName: 'code-commit',\n icon: [576, 512, [], \"f386\", \"M288 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C430 361 365.4 416 288 416S146 361 131.2 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l99.2 0C146 151 210.6 96 288 96s142 55 156.8 128l99.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-99.2 0z\"]\n};\nvar faPersonBreastfeeding = {\n prefix: 'fas',\n iconName: 'person-breastfeeding',\n icon: [448, 512, [], \"e53a\", \"M224 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7-4.9-2.8-9.2-6.4-12.6-10.6-4.6-5.4-7.8-11.7-9.6-18.4-3.3-12-1.9-25.2 4.8-36.6 .6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4 2.9 6.7 4.3 13.8 4 20.8-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"]\n};\nvar faPersonRays = {\n prefix: 'fas',\n iconName: 'person-rays',\n icon: [512, 512, [], \"e54d\", \"M312.5 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C338.5 132 298.8 112 256.5 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l46.3-62.4 0 275.3c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM7.5 7c-9.4 9.4-9.4 24.6 0 33.9l80 80c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41.5 7C32.1-2.3 16.9-2.3 7.5 7zm464 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7.5 505c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9zm464 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l80 80z\"]\n};\nvar faManatSign = {\n prefix: 'fas',\n iconName: 'manat-sign',\n icon: [384, 512, [], \"e1d5\", \"M192 32c-13.3 0-24 10.7-24 24l0 41.5C73.3 109.3 0 190.1 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-62.5 44.8-114.5 104-125.8L168 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-293.8c59.2 11.2 104 63.3 104 125.8l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-97.9-73.3-178.7-168-190.5L216 56c0-13.3-10.7-24-24-24z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [384, 512, [\"unsorted\"], \"f0dc\", \"M2.4 204.2c5 12 16.6 19.8 29.6 19.8l320 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-9.2 9.2-11.9 22.9-6.9 34.9zm0 103.5c-5 12-2.2 25.7 6.9 34.9l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288c-12.9 0-24.6 7.8-29.6 19.8z\"]\n};\nvar faUnsorted = faSort;\nvar faCircleRadiation = {\n prefix: 'fas',\n iconName: 'circle-radiation',\n icon: [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm80 0l64.3 0c8.7 0 15.7-7.1 17.3-15.6 4.4-24.4 18.1-45.5 37.2-59.7 7.4-5.5 10.6-15.6 6-23.6l-32.5-56.3c-4.3-7.5-13.9-10.3-21.2-5.5-48.2 31.5-81.3 84.2-86.3 144.8-.7 8.8 6.5 16 15.3 16zm137.9 89.8c-8.5-3.7-18.8-1.4-23.5 6.6l-31 53.8c-4.3 7.5-1.9 17.2 5.8 21.1 26.1 13.2 55.5 20.7 86.8 20.7s60.7-7.5 86.8-20.7c7.7-3.9 10.1-13.6 5.8-21.1l-31-53.8c-4.6-8-15-10.3-23.5-6.6-11.7 5-24.5 7.8-38.1 7.8s-26.4-2.8-38.1-7.8zM350.4 240.4c1.6 8.6 8.5 15.6 17.3 15.6l64.3 0c8.8 0 16.1-7.2 15.3-16-5-60.6-38.1-113.2-86.3-144.8-7.3-4.8-16.8-2-21.2 5.5L307.3 157c-4.6 8-1.4 18.1 6 23.6 19.1 14.2 32.7 35.4 37.2 59.7zM256 305.7a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faRadiationAlt = faCircleRadiation;\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32 14.3 32 32 32 32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-40c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 40-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-40c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 40-64 0 0-192z\"]\n};\nvar faArrowUpFromWaterPump = {\n prefix: 'fas',\n iconName: 'arrow-up-from-water-pump',\n icon: [640, 512, [], \"e4b6\", \"M144 32c-26.5 0-48 21.5-48 48l0 176-16 0c-26.5 0-48 21.5-48 48l0 79.6c17.6-2 36 2.5 51.3 14 3.4 2.6 6.1 1.4 9.8-.3l.8-.4c5.7-2.6 12.9-6.9 21.7-13.5 27.5-20.7 59.9-31.2 92.3-31.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 10.7-8.1 22.9-12.7 35.3-14.1l0-79.5c0-26.5-21.5-48-48-48l-56 0 0-142.1 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L497 39c-9.4-9.4-24.6-9.4-33.9 0l-88 88c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 0 142.1-136 0 0-176c0-26.5-21.5-48-48-48L144 32zM474.6 476.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0z\"]\n};\nvar faMicrophoneLinesSlash = {\n prefix: 'fas',\n iconName: 'microphone-lines-slash',\n icon: [576, 512, [\"microphone-alt-slash\"], \"f539\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0l151 151 0-30.2c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L328 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-1.9 22.9-11.8 43.4-26.9 59l33.9 33.9c25.5-26 41.3-61.6 41.3-100.9l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 52.6-21.1 100.2-55.3 134.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM297.8 367.7l41.4 41.4c-8.8 2.4-17.9 4.3-27.3 5.4l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C169.3 402.7 96 321.9 96 224l0-40c0-5.1 1.6-9.9 4.4-13.8l43.6 43.6 0 10.2c0 79.5 64.5 144 144 144 3.3 0 6.6-.1 9.8-.3z\"]\n};\nvar faMicrophoneAltSlash = faMicrophoneLinesSlash;\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [448, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [128100, 62144, 62470, \"user-alt\", \"user-large\"], \"f007\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-59.4 0z\"]\n};\nvar faUserAlt = faUser;\nvar faUserLarge = faUser;\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [512, 512, [10052, 10054], \"f2dc\", \"M288.2 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 62.1-15-15c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l49 49 0 70.6-61.2-35.3-17.9-66.9c-3.4-12.8-16.6-20.4-29.4-17S95.3 98 98.7 110.8l5.5 20.5-53.7-31C35.2 91.5 15.6 96.7 6.8 112s-3.6 34.9 11.7 43.7l53.7 31-20.5 5.5c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l66.9-17.9 61.2 35.3-61.2 35.3-66.9-17.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l20.5 5.5-53.7 31C3.2 365.1-2 384.7 6.8 400s28.4 20.6 43.7 11.7l53.7-31-5.5 20.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l17.9-66.9 61.2-35.3 0 70.6-49 49c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l15-15 0 62.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-62.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-70.6 61.2 35.3 17.9 66.9c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-5.5-20.5 53.7 31c15.3 8.8 34.9 3.6 43.7-11.7s3.6-34.9-11.7-43.7l-53.7-31 20.5-5.5c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-66.9 17.9-61.2-35.3 61.2-35.3 66.9 17.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-20.5-5.5 53.7-31c15.3-8.8 20.6-28.4 11.7-43.7s-28.4-20.5-43.7-11.7l-53.7 31 5.5-20.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-17.9 66.9-61.2 35.3 0-70.6 49-49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-15 15 0-62.1z\"]\n};\nvar faTaurus = {\n prefix: 'fas',\n iconName: 'taurus',\n icon: [384, 512, [], \"e84f\", \"M336-16c17.7 0 32 14.3 32 32 0 58.5-28.6 110.3-72.5 142.3 53.2 34.1 88.5 93.8 88.5 161.7 0 106-86 192-192 192S0 426 0 320C0 252.1 35.3 192.4 88.5 158.3 44.6 126.3 16 74.5 16 16 16-1.7 30.3-16 48-16S80-1.7 80 16c0 61.9 50.1 112 112 112S304 77.9 304 16c0-17.7 14.3-32 32-32zM192 192a128 128 0 1 0 0 256 128 128 0 1 0 0-256z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [128369, 9760], \"f714\", \"M384 144C384 64.5 312.4 0 224 0S64 64.5 64 144c0 47.1 25.1 88.9 64 115.2l0 28.8c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-28.8c38.9-26.3 64-68.1 64-115.2zM160 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM445.5 339.7c-6.8-16.3-25.5-24-41.8-17.2L224 397.3 44.3 322.5c-16.3-6.8-35 .9-41.8 17.2s.9 35 17.2 41.8L140.8 432 19.7 482.5C3.4 489.3-4.3 508 2.5 524.3s25.5 24 41.8 17.2L224 466.7 403.7 541.5c16.3 6.8 35-.9 41.8-17.2s-.9-35-17.2-41.8L307.2 432 428.3 381.5c16.3-6.8 24-25.5 17.2-41.8z\"]\n};\nvar faPesoSign = {\n prefix: 'fas',\n iconName: 'peso-sign',\n icon: [448, 512, [], \"e222\", \"M112 32C94.3 32 80 46.3 80 64l0 64-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c65.6 0 122-39.5 146.7-96l37.3 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.8 0c.5-5.3 .8-10.6 .8-16s-.3-10.7-.8-16l24.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-37.3 0C362 71.5 305.6 32 240 32L112 32zm199.6 96l-167.6 0 0-32 96 0c28.4 0 54 12.4 71.6 32zM144 176l190.7 0c.9 5.2 1.3 10.5 1.3 16s-.5 10.8-1.3 16l-190.7 0 0-32zm167.6 80c-17.6 19.6-43.1 32-71.6 32l-96 0 0-32 167.6 0z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [320, 512, [127863], \"f4e3\", \"M32.6 25.7C35.6 10.8 48.7 0 64 0L256 0c15.3 0 28.4 10.8 31.4 25.7L316.8 173c2.1 10.5 3.2 21.2 3.2 32l0 3c0 77.4-55 142-128 156.8l0 115.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-115.2C55 350 0 285.4 0 208l0-3c0-10.7 1.1-21.4 3.2-32L32.6 25.7zM77.4 128l165.1 0-12.8-64-139.5 0-12.8 64z\"]\n};\nvar faTemperatureHalf = {\n prefix: 'fas',\n iconName: 'temperature-half',\n icon: [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-92.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 92.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature2 = faTemperatureHalf;\nvar faThermometer2 = faTemperatureHalf;\nvar faThermometerHalf = faTemperatureHalf;\nvar faTicket = {\n prefix: 'fas',\n iconName: 'ticket',\n icon: [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128l0 64C0 200.8 7.4 207.7 15.7 210.6 34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6-18.8-6.5-32.3-24.4-32.3-45.4s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zM416 336l0-160-256 0 0 160 256 0zM112 160c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32l0-192z\"]\n};\nvar faWheatAwnCircleExclamation = {\n prefix: 'fas',\n iconName: 'wheat-awn-circle-exclamation',\n icon: [640, 512, [], \"e598\", \"M496 576a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM81 529c-9.4 9.3-24.5 9.3-33.9 0-9.4-9.4-9.4-24.6 0-33.9L81 529zm30.2-294.4c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 31.7-7.7 66.2 1 90.6 25.3l12 12c-.8 7-1.2 14.2-1.2 21.4 0 20 3 39.3 8.7 57.4-36.8 21.8-85 17-116.6-14.7L165.6 444.3 81 529C69.7 517.7 58.4 506.3 47 495l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM496 476a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16zM215.2 130.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 24.2-5.9 50.1-2.1 71.9 10.8-32.2 24.9-56.2 59.8-67.4 100.1-3.8-2.8-7.5-6-11-9.5l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM526.7 15c9.4-9.4 24.6-9.4 33.9 0 8.8 8.8 9.3 22.7 1.7 32.1L560.6 49 446.2 163.4c7.7 1 15.3 3 22.5 5.9L527 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c3.2 3.2 4.7 7.4 4.7 11.6-17.7-5.4-36.5-8.3-55.9-8.3-34.2 0-66.3 8.9-94.1 24.6l-92.7-92.7c-37.5-37.5-37.5-98.3 0-135.8l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1L465 49 406.7 107.3c2.8 7.1 4.7 14.5 5.8 22.1L526.7 15z\"]\n};\nvar faArrowsTurnRight = {\n prefix: 'fas',\n iconName: 'arrows-turn-right',\n icon: [448, 512, [], \"e4c0\", \"M313.4-6.6c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 128 128 128c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32S0 241.7 0 224l0-32C0 121.3 57.3 64 128 64l210.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 384 96 384c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 465.7 0 448l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [448, 512, [], \"f786\", \"M421.8 39.6C452 85.2 456.5 142.9 435.1 192l-165.4 0 41.4-41.4c.8-.8 1.5-1.6 2.2-2.4L421.8 39.6zM268 102.9c-.8 .7-1.6 1.4-2.4 2.2l-28.1 28.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5L175 14.6C229.9-40.2 314.5-46.7 376.5-5.6L268 102.9zM125.7 336l80-80 181 0-82.5 82.5 0-2.5-178.5 0zm117 64L141.4 501.3c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5l10.7-10.7 181 0z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M136 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM117.9 197.6l12.6 63c-38.6 12.4-66.5 48.7-66.5 91.4 0 53 43 96 96 96 35.6 0 66.7-19.4 83.3-48.2 2.3 .1 4.6 .2 7 .2l4.1 0c1 0 2.1 0 3.1 0l55.2 0c-20.4 64.9-81 112-152.7 112-88.4 0-160-71.6-160-160 0-73.8 50-135.9 117.9-154.4zm148.6-28.1l23.7 118.5 60.5 0c33.3 0 63.2 20.7 74.9 51.9l25.5 68 18.7-6.2c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5l-48 16c-16.3 5.4-34-3-40.1-19.1l-36.3-96.9c-2.3-6.2-8.3-10.4-15-10.4l-86.1 0c-.4 0-.8 0-1.3 0l-13.1 0c-30.5 0-56.8-21.5-62.8-51.4L165.3 189.7c-6.4-31.9 18-61.7 50.6-61.7 24.6 0 45.8 17.4 50.6 41.5z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M120 32c-48.6 0-88 39.4-88 88l0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-168c0-48.6-39.4-88-88-88l-16 0zm40 128l-64 0 0-40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 40zM304 32c-17.7 0-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32l72 0c48.6 0 88-39.4 88-88 0-23.6-9.3-45-24.4-60.8 10.3-14.4 16.4-32.1 16.4-51.2 0-48.6-39.4-88-88-88l-64 0zm64 112l-32 0 0-48 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zM336 256l0-48 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0zm233 84c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-105.7 132.1-38.7-38.7c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.4 6.4 15.3 9.8 24.4 9.3s17.5-4.9 23.2-12L569 340z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [320, 512, [], \"f026\", \"M96 352l-48 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l48 0 134.1-119.2c6.4-5.7 14.6-8.8 23.1-8.8 19.2 0 34.8 15.6 34.8 34.8l0 378.4c0 19.2-15.6 34.8-34.8 34.8-8.5 0-16.7-3.1-23.1-8.8L96 352z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [576, 512, [129729], \"f604\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 141.9-32 19.2 0-116.7c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 22 0 43.7-5.1 63.4-15l5-2.5c37.4-18.7 61-56.9 61-98.8l0-128 64-38.4 64 38.4 0 128c0 41.8 23.6 80.1 61 98.8l5 2.5c19.7 9.8 41.4 15 63.4 15 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 118.2-32-19.2 0-141.9z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M64 0C28.7 0 0 28.7 0 64L0 480c0 11.5 6.2 22.2 16.2 27.8s22.3 5.5 32.2-.4L192 421.3 335.5 507.4c9.9 5.9 22.2 6.1 32.2 .4S384 491.5 384 480l0-416c0-35.3-28.7-64-64-64L64 0z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [448, 512, [], \"f02a\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64c0-17.7-14.3-32-32-32zm88 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24zm72 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32zm208-8l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24zm-96 0l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M0 72C0 58.8 10.7 48 24 48l48 0c13.3 0 24 10.7 24 24l0 104 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-80-24 0C10.7 96 0 85.3 0 72zM30.4 301.2C41.8 292.6 55.7 288 70 288l4.9 0c33.7 0 61.1 27.4 61.1 61.1 0 19.6-9.4 37.9-25.2 49.4l-24 17.5 33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-90.7 0C13.1 464 0 450.9 0 434.7 0 425.3 4.5 416.5 12.1 411l70.5-51.3c3.4-2.5 5.4-6.4 5.4-10.6 0-7.2-5.9-13.1-13.1-13.1L70 336c-3.9 0-7.7 1.3-10.8 3.6L38.4 355.2c-10.6 8-25.6 5.8-33.6-4.8S-1 324.8 9.6 316.8l20.8-15.6zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faList12 = faListOl;\nvar faListNumeric = faListOl;\nvar faFileCircleXmark = {\n prefix: 'fas',\n iconName: 'file-circle-xmark',\n icon: [576, 512, [], \"e5a1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [576, 512, [], \"f4db\", \"M412.8 416c41.5-40.7 67.2-97.3 67.2-160 0-123.7-100.3-224-224-224S32 132.3 32 256 132.3 480 256 480l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-131.2 0zM256 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm48 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [576, 512, [128163], \"f1e2\", \"M480-16c6.9 0 13 4.4 15.2 10.9l13.5 40.4 40.4 13.5C555.6 51 560 57.1 560 64s-4.4 13-10.9 15.2l-40.4 13.5-13.5 40.4C493 139.6 486.9 144 480 144s-13-4.4-15.2-10.9l-13.5-40.4-40.4-13.5C404.4 77 400 70.9 400 64s4.4-13 10.9-15.2l40.4-13.5 13.5-40.4C467-11.6 473.1-16 480-16zM321.4 97.4c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-10.9 10.9c7.9 22 12.2 45.7 12.2 70.5 0 114.9-93.1 208-208 208S32 418.9 32 304 125.1 96 240 96c24.7 0 48.5 4.3 70.5 12.3l10.9-10.9zM144 304c0-53 43-96 96-96 13.3 0 24-10.7 24-24s-10.7-24-24-24c-79.5 0-144 64.5-144 144 0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faScaleUnbalanced = {\n prefix: 'fas',\n iconName: 'scale-unbalanced',\n icon: [640, 512, [\"balance-scale-left\"], \"f515\", \"M519.8 62.4c16.8-5.6 25.8-23.7 20.2-40.5S516.3-3.9 499.6 1.6l-113 37.7c-13.9-23.5-39.6-39.3-68.9-39.3-44.2 0-80 35.8-80 80 0 3 .2 5.9 .5 8.8L115.6 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2l0 326.7c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM437.3 288l72.4-124.2 72.4 124.2-144.9 0zm72.4 96c62.9 0 115.2-34 126-78.9 2.6-11-1-22.3-6.7-32.1L533.8 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L390.4 273.1c-5.7 9.8-9.3 21.1-6.7 32.1 10.8 44.8 63.1 78.9 126 78.9zM126.8 291.8l72.4 124.2-144.9 0 72.4-124.2zM.9 433.1C11.7 478 64 512 126.8 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L150.9 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L7.6 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"]\n};\nvar faBalanceScaleLeft = faScaleUnbalanced;\nvar faSquareCaretLeft = {\n prefix: 'fas',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [576, 512, [128207], \"f545\", \"M209.1 516.2c-18.7 18.7-49.1 18.7-67.9 0L28.1 403.1c-18.7-18.7-18.7-49.1 0-67.9l17-17 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 17-17c18.7-18.7 49.1-18.7 67.9 0L548.5 108.9c18.7 18.7 18.7 49.1 0 67.9L209.1 516.2z\"]\n};\nvar faI = {\n prefix: 'fas',\n iconName: 'i',\n icon: [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faVolumeXmark = {\n prefix: 'fas',\n iconName: 'volume-xmark',\n icon: [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM367 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faVolumeMute = faVolumeXmark;\nvar faVolumeTimes = faVolumeXmark;\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-272-448 0 0 272z\"]\n};\nvar faPersonDigging = {\n prefix: 'fas',\n iconName: 'person-digging',\n icon: [576, 512, [\"digging\"], \"f85e\", \"M208 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM10.5 181.3c5.9-11.9 20.3-16.7 32.2-10.7l24.6 12.3 12.2-20.4c18.9-31.5 53.2-50.5 89.6-50.5 46.2 0 87.7 30.5 100.5 75.4l32.2 112.7 92.9 46.4 25.8-43c5.8-9.6 16.2-15.5 27.4-15.5s21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S555.5 512 544 512l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2L370 387.8 21.3 213.5c-11.9-5.9-16.7-20.3-10.7-32.2zM94.3 307.4l112 56c10.8 5.4 17.7 16.5 17.7 28.6l0 88c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-68.2-61.3-30.7-36.3 109c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.7 469.9l48-144c2.9-8.8 9.5-15.9 18.1-19.4s18.3-3.2 26.6 .9z\"]\n};\nvar faDigging = faPersonDigging;\nvar faGaugeHigh = {\n prefix: 'fas',\n iconName: 'gauge-high',\n icon: [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64 0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faTachometerAlt = faGaugeHigh;\nvar faTachometerAltFast = faGaugeHigh;\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [384, 512, [], \"f22d\", \"M192 128a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 320a192 192 0 1 0 0-384 192 192 0 1 0 0 384z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [9925], \"f6c4\", \"M208.3 192c43.1 0 80.5 24.4 99.2 60.1 14.7-17.2 36.4-28.1 60.8-28.1 44.2 0 80 35.8 80 80 0 5.5-.6 10.9-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96l-320 0c-53 0-96-43-96-96 0-42.5 27.7-78.5 66-91.2-1.3-6.8-2-13.7-2-20.8 0-61.9 50.1-112 112-112zm192-223.8c5.3 0 10.3 2.7 13.3 7.1l47.3 70.4 83.3-16.3c5.2-1 10.6 .7 14.3 4.4 3.8 3.8 5.4 9.2 4.4 14.4l-16.3 83.3 70.4 47.3c4.4 3 7.1 8 7.1 13.3 0 5.3-2.6 10.3-7 13.2l-70.4 47.3 14.5 74.2c-17.2-21.7-40.4-38.4-67.2-47.3-2.5-12.7-6.9-24.6-12.8-35.7 9.6-14.9 15.2-32.7 15.2-51.7 0-53-43-96-96-96-47.9 0-87.6 35.1-94.8 80.9-20.9-16-45.9-27-73.1-31.1l21.5-14.5-16.3-83.2-.3-2c-.3-4.6 1.3-9.1 4.6-12.4 3.8-3.8 9.2-5.4 14.4-4.4l83.3 16.3 47.3-70.4 1.2-1.6c3-3.5 7.4-5.5 12.1-5.5zm0 175.8c26.5 0 48 21.5 48 48 0 3.8-.5 7.6-1.4 11.1-21.7-16.9-48.9-27.1-78.6-27.1-4.6 0-9.1 .2-13.5 .7 6.4-19 24.3-32.7 45.5-32.7z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [512, 512, [8594], \"f061\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [576, 512, [129309, 62662, \"handshake-alt\", \"handshake-simple\"], \"f2b5\", \"M268.9 85.2L152.3 214.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 182.7L223.4 64 183.8 64c-25.5 0-49.9 10.1-67.9 28.1L112 96 0 32 0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 441c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"]\n};\nvar faHandshakeAlt = faHandshake;\nvar faHandshakeSimple = faHandshake;\nvar faPersonSkiing = {\n prefix: 'fas',\n iconName: 'person-skiing',\n icon: [576, 512, [9975, \"skiing\"], \"f7c9\", \"M416 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM2.7 300.9c6.1-11.8 20.6-16.3 32.4-10.2l197.8 102.7 62.3-87.2-82-92.2c-11-12.4-16.2-27.5-16.2-42.4l111.6 53.4 42.9 48.2c14.9 16.7 16.2 41.6 3.2 59.8l-64.4 90.2 128.3 66.6c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 333.3C1.2 327.2-3.4 312.7 2.7 300.9zM103 49.6l18 8.7 8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 17 84.8 41 .4-.2 76.1-33.8c31.3-13.9 67.9-.7 83.2 29.9l28.9 57.8 68.7 27.5c16.4 6.6 24.4 25.2 17.8 41.6s-25.2 24.4-41.6 17.8L393.8 224c-10.9-4.4-19.8-12.6-25.1-23.1l-11.5-23.1c-16.4 9.4-25.9 14.8-28.5 16.3l-7.6-3.7-185.6-89.6-9.2 18.3c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-17.9-17.6-8.5C81.1 74.6 77.8 65 81.6 57S95 45.7 103 49.6z\"]\n};\nvar faSkiing = faPersonSkiing;\nvar faBridgeWater = {\n prefix: 'fas',\n iconName: 'bridge-water',\n icon: [640, 512, [], \"e4ce\", \"M64 64l512 0 0 112c-37.6 9.4-64 43.2-64 82l0 76.4c-21-9.7-43.5-14.5-66-14.4-10 .1-20.1 1.1-30 3.1l0-35.1c0-53-43-96-96-96s-96 43-96 96l0 32.7c-5.3-.5-10.7-.8-16-.7-27.7 .2-55.4 7.8-80 23l0-85c0-38.8-26.4-72.6-64-82L64 64zM403.4 444.1C379.1 462.3 351.1 480 320 480s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faBuildingNgo = {\n prefix: 'fas',\n iconName: 'building-ngo',\n icon: [576, 512, [], \"e4d7\", \"M128 0C92.7 0 64 28.7 64 64l0 384c0 35.3 28.7 64 64 64l48 0 0-112c0-35.3 28.7-64 64-64l208 0 0-272c0-35.3-28.7-64-64-64L128 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM304 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM520 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-80c0-24.3-19.7-44-44-44l-16 0zm-4 44c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 80c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80zm-168 0l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-24c0-11-9-20-20-20l-8 0c-11 0-20 9-20 20 0 6.5 3.1 12.4 8 16l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l20.4 0c1.9 9.1 9.9 16 19.6 16 11 0 20-9 20-20 0-19.9-16.1-36-36-36l-24 0c-24.3 0-44 19.7-44 44zm-90.1-32.9c-4.1-8.3-13.5-12.7-22.5-10.5S220 390.7 220 400l0 128c0 11 9 20 20 20s20-9 20-20l0-43.3 26.1 52.2c4.1 8.3 13.5 12.7 22.5 10.5S324 537.3 324 528l0-128c0-11-9-20-20-20s-20 9-20 20l0 43.3-26.1-52.2z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.8l0 126.2-271.5 0c51.7-77.2 139.6-128 239.5-128 10.8 0 21.5 .6 32 1.8zM368 160l0-116.7c66 19 122.2 61 159.5 116.7L368 160zM22.6 208l73.4 0 0 112-96 0c0-39.7 8-77.6 22.6-112zM176 320l-32 0 0-112 288 0 0 112-32 0 0 48 176 0 0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64 176 0 0-48zm304 0l0-112 73.4 0C568 242.4 576 280.3 576 320l-96 0zM288 288c-35.3 0-64 28.7-64 64l0 80 128 0 0-80c0-35.3-28.7-64-64-64z\"]\n};\nvar faCircleDollarToSlot = {\n prefix: 'fas',\n iconName: 'circle-dollar-to-slot',\n icon: [576, 512, [\"donate\"], \"f4b9\", \"M96 224a192 192 0 1 1 384 0 192 192 0 1 1 -384 0zm176-92l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L248 272c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20zM48 344l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 344c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faDonate = faCircleDollarToSlot;\nvar faY = {\n prefix: 'fas',\n iconName: 'y',\n icon: [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7 154-215.7c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"]\n};\nvar faFaceSmileWink = {\n prefix: 'fas',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFaceGrinSquintTears = {\n prefix: 'fas',\n iconName: 'face-grin-squint-tears',\n icon: [576, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M560 35.4c0 25.6-18.8 47.3-44.1 50.9L469.1 93c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C461.3 2.8 483-16 508.6-16 537-16 560 7 560 35.4zM403.5 68.1c-6 42.2 30.2 78.4 72.4 72.4l37.8-5.4C565.7 232 550.8 355.3 469 437s-205 96.6-301.9 44.7l5.4-37.8c6-42.2-30.2-78.4-72.4-72.4l-37.8 5.4C10.3 280 25.2 156.7 107 75S312-21.7 408.9 30.3l-5.4 37.8zM417.8 201c-19.1 36.4-45.6 72.7-78.9 106s-69.6 59.8-106 78.9c-11.1 5.8-12.4 21.4-1.1 26.6 59.2 27.5 131.8 16.8 180.6-32s59.5-121.4 32-180.6c-5.3-11.3-20.8-10-26.6 1.1zM113.9 270.6c1.7 8 9 13.4 17.1 12.7l43.1-3.9-3.9 43.1c-.7 8.1 4.7 15.5 12.7 17.1s15.9-2.9 18.4-10.6l28-84.6c1.9-5.7 .4-12.1-3.9-16.3s-10.6-5.8-16.3-3.9l-84.6 28c-7.7 2.6-12.3 10.5-10.6 18.5zM315.2 99.1c.7-8.1-4.7-15.5-12.7-17.1s-15.9 2.9-18.5 10.6l-28 84.6c-1.9 5.7-.4 12.1 3.9 16.3s10.6 5.8 16.3 3.9l84.6-28c7.7-2.6 12.3-10.5 10.6-18.4s-9-13.4-17.1-12.7l-43.1 3.9 3.9-43.1zM60.1 425.7l46.7-6.7c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C114.7 509.2 93 528 67.4 528 39 528 16 505 16 476.6 16 451 34.8 429.3 60.1 425.7z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zm53.8 185.2c-9.1-6.3-21.5-4.1-27.8 5s-4.1 21.5 5 27.8c23.9 16.7 39.4 44.3 39.4 75.5s-15.6 58.9-39.4 75.5c-9.1 6.3-11.3 18.8-5 27.8s18.8 11.3 27.8 5c34.1-23.8 56.6-63.5 56.6-108.3S296 267.5 261.8 243.7zM80 312c-8.8 0-16 7.2-16 16l0 48c0 8.8 7.2 16 16 16l24 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-24 0zm128 72.2c0 10.7 10.5 18.2 18.9 11.6 12.9-10.3 21.1-26.1 21.1-43.8s-8.2-33.5-21.1-43.8c-8.4-6.7-18.9 .9-18.9 11.6l0 64.5z\"]\n};\nvar faArrowsDownToLine = {\n prefix: 'fas',\n iconName: 'arrows-down-to-line',\n icon: [512, 512, [], \"e4b8\", \"M214.6 310.6l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 274.7 96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm256 0l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-242.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512z\"]\n};\nvar faG = {\n prefix: 'fas',\n iconName: 'g',\n icon: [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6-9.5 115-105.8 205.4-223.2 205.4-123.7 0-224-100.3-224-224S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57 13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [576, 512, [], \"f6a7\", \"M273.6-3.2c8.5-6.4 20.3-6.4 28.8 0L443.2 102.4c8.3 6.2 18.4 9.6 28.8 9.6 13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 48 58.7 64 13.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 48 24.4 32 15.6 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l22.1 0 17.9-32 0-48-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.3 0 58.7-64 0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24c10.4 0 20.5-3.4 28.8-9.6L273.6-3.2zM128 368l320 0 0-48-320 0 0 48zM384 160l-192 0 0 48 192 0 0-48z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [448, 512, [127937], \"f11e\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 384 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5-64 13.9 0 65.5 48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6l-25.3 5.5 0-75.2-64 16 0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"]\n};\nvar faGaugeSimple = {\n prefix: 'fas',\n iconName: 'gauge-simple',\n icon: [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGaugeSimpleMed = faGaugeSimple;\nvar faTachometerAverage = faGaugeSimple;\nvar faRightLeft = {\n prefix: 'fas',\n iconName: 'right-left',\n icon: [512, 512, [\"exchange-alt\"], \"f362\", \"M502.6 150.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 236.9 352 224l0-64-320 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 275.1 160 288l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9z\"]\n};\nvar faExchangeAlt = faRightLeft;\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [512, 512, [], \"f484\", \"M64 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM176 368c0-48.7 18.1-93.2 48-127l0-129C224 50.1 173.9 0 112 0S0 50.1 0 112L0 400c0 61.9 50.1 112 112 112 37.3 0 70.3-18.2 90.7-46.3-17-28.6-26.7-62-26.7-97.7zm64.7 67.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 264c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM297.9 472c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4-4.6-8.7-16.3-9.7-23.3-2.7L297.9 472z\"]\n};\nvar faExplosion = {\n prefix: 'fas',\n iconName: 'explosion',\n icon: [512, 512, [], \"e4e9\", \"M256-32c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zm0 160c12.4 0 22.7 9.4 23.9 21.7L293.4 291.6 467.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L372.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0-75.5-52.3C.6 357-2.8 344.1 2.4 333.5s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.6 9.4-11.3L75.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L214 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7zM32 464l456 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0z\"]\n};\nvar faArrowsDownToPeople = {\n prefix: 'fas',\n iconName: 'arrows-down-to-people',\n icon: [512, 512, [], \"e4b9\", \"M113 153c-9.4 9.4-24.6 9.4-33.9 0L15 89C5.7 79.6 5.7 64.4 15 55S39.6 45.7 49 55L72 78.1 72-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zm320 0c-9.4 9.4-24.6 9.4-33.9 0L335 89c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23 0-86.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zM256 192a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 160c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32c0-53 43-96 96-96zM32 288a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm352 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM80 368c15.3 0 29.6 4.3 41.8 11.8-6.3 16.2-9.8 33.8-9.8 52.2l0 48c0 11.4 2.4 22.2 6.7 32l-87.8 0C13.8 512 0 498.2 0 481.1L0 448c0-44.2 35.8-80 80-80zM393.3 512c4.3-9.8 6.7-20.6 6.7-32l0-48c0-18.4-3.5-36-9.8-52.2 12.2-7.5 26.5-11.8 41.8-11.8 44.2 0 80 35.8 80 80l0 33.1c0 17-13.8 30.9-30.9 30.9l-87.8 0z\"]\n};\nvar faUsersViewfinder = {\n prefix: 'fas',\n iconName: 'users-viewfinder',\n icon: [576, 512, [], \"e595\", \"M64 0C28.7 0 0 28.7 0 64l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24S149.3 0 136 0L64 0zM440 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-35.3-28.7-64-64-64L440 0zM48 376c0-13.3-10.7-24-24-24S0 362.7 0 376l0 72c0 35.3 28.7 64 64 64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0c-8.8 0-16-7.2-16-16l0-72zm528 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72c0 8.8-7.2 16-16 16l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c35.3 0 64-28.7 64-64l0-72zM288 216a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 40c-53 0-96 43-96 96l0 24c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-24c0-53-43-96-96-96zm192-64a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM168 272.3c-49.3 4.1-88 45.3-88 95.7l0 10.7c0 11.8 9.6 21.3 21.3 21.3l46.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-24c0-29.5 8.8-56.9 24-79.7zM427.9 400l46.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-50.3-38.7-91.6-88-95.7 15.2 22.8 24 50.2 24 79.7l0 24c0 8.4-1.4 16.5-4.1 24zM192 192a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faCarOn = {\n prefix: 'fas',\n iconName: 'car-on',\n icon: [448, 512, [], \"e4dd\", \"M248-8c0-13.3-10.7-24-24-24S200-21.3 200-8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM145.3 208l157.5 0c6.7 0 12.6 4.1 15 10.4l26.1 69.6-239.6 0 26.1-69.6c2.3-6.2 8.3-10.4 15-10.4zM34 292.8l-1.3 3.4C13.2 307.1 0 328 0 352L0 480c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 288 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-128c0-24-13.2-44.9-32.8-55.9l-1.3-3.4-36.3-96.9c-11.7-31.2-41.6-51.9-74.9-51.9l-157.5 0c-33.3 0-63.2 20.7-74.9 51.9L34 292.8zM96 336a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm224 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM7 7C-2.3 16.4-2.3 31.6 7 41L55 89c9.4 9.4 24.6 9.4 33.9 0S98.3 64.4 89 55L41 7C31.6-2.3 16.4-2.3 7 7zM407 7L359 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9S416.4-2.3 407 7z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l0 160c0 41.8 26.7 77.4 64 90.5l0 69.5-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l504 0c44.2 0 80-35.8 80-80l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 17.7-14.3 32-32 32l-80 0 0-64c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 32c0 35.3-28.7 64-64 64l-48.9 0c-48.5 0-92.8-27.4-114.5-70.8l-25.2-50.5C237.7 59.4 193.4 32 144.9 32L64 32zM432 416l-256 0 0-64 256 0 0 64z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112 256 0 0-112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 16 16 0c26.5 0 48 21.5 48 48l0 48c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48c0 26.5-21.5 48-48 48l-16 0 0 16c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-112-256 0 0 112c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-16-16 0c-26.5 0-48-21.5-48-48l0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-48c0-26.5 21.5-48 48-48l16 0 0-16z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [\"carriage-baby\"], \"f77d\", \"M64 208l0 80c0 53 43 96 96 96l192 0c53 0 96-43 96-96l0-112 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24l0 56-336 0zm.2-48l223.8 0 0-128c0-17.7-14.3-32-32-32L232 0C141.9 0 68.4 70.9 64.2 160zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm288 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faCarriageBaby = faBabyCarriage;\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1S576 471 576 464l0-240c0-70.7-57.3-128-128-128l-55.7 0C355.9 96 322.4 78.4 291.2 59.6 262.3 42.1 228.3 32 192 32 86 32 0 118 0 224 0 295.1 38.6 357.1 96 390.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6 5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faCalendarXmark = {\n prefix: 'fas',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM291.9 220.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faCircleDown = {\n prefix: 'fas',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3l-104-104c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l56 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 56 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-104 104c-6.2 6.2-16.4 6.2-22.6 0z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM160 280l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faXmark = {\n prefix: 'fas',\n iconName: 'xmark',\n icon: [384, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z\"]\n};\nvar faClose = faXmark;\nvar faMultiply = faXmark;\nvar faRemove = faXmark;\nvar faTimes = faXmark;\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M256 0c11.2 0 21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S363.5 224 352 224l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2l96-160C234.3 5.9 244.8 0 256 0zM128 272a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm200 16l112 0c22.1 0 40 17.9 40 40l0 112c0 22.1-17.9 40-40 40l-112 0c-22.1 0-40-17.9-40-40l0-112c0-22.1 17.9-40 40-40z\"]\n};\nvar faTriangleCircleSquare = faShapes;\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M384 96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-70.7-57.3-128-128-128S320 25.3 320 96l0 64-160 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-32 0 0-64z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [576, 512, [127798], \"f816\", \"M545 65c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L478.9 63.2C452.3 43.6 419.5 32 384 32 348.9 32 316.5 43.3 290.1 62.4 274.1 74.1 284.2 96 304 96l24 0c13.3 0 24 10.7 24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24 10.7 24 24l0 24c0 19.8 21.9 29.9 33.6 13.9 19.1-26.4 30.4-58.8 30.4-93.9 0-35.5-11.6-68.3-31.2-94.9L545 65zM270 135.5l-159.6 228C101.3 376.4 86.7 384 71 384l-7 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l27.1 0c65.7 0 129.7-20.2 183.5-57.8L440.5 306.1C435 295.9 432 284.2 432 272l-56 0c-39.8 0-72-32.2-72-72l0-56c-12.2 0-23.9-3-34-8.5z\"]\n};\nvar faDropletSlash = {\n prefix: 'fas',\n iconName: 'droplet-slash',\n icon: [576, 512, [\"tint-slash\"], \"f5c7\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L463.6 397.8c10.5-23.8 16.4-50.1 16.4-77.8 0-91.2-130.2-274.1-166.6-323.5-5.9-8-15.2-12.5-25.2-12.5l-.4 0c-10 0-19.3 4.5-25.2 12.5-15.6 21.2-48.5 66.9-80.9 119.4L41-24.9zm92 227.7c-21.6 43.8-37 85.9-37 117.2 0 106 86 192 192 192 43.4 0 83.4-14.4 115.5-38.6L133 202.8z\"]\n};\nvar faTintSlash = faDropletSlash;\nvar faDroplet = {\n prefix: 'fas',\n iconName: 'droplet',\n icon: [384, 512, [128167, \"tint\"], \"f043\", \"M192 512C86 512 0 426 0 320 0 228.8 130.2 45.9 166.6-3.5 172.5-11.5 181.8-16 191.8-16l.4 0c10 0 19.3 4.5 25.2 12.5 36.4 49.4 166.6 232.3 166.6 323.5 0 106-86 192-192 192zM112 312c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 75.1 60.9 136 136 136 13.3 0 24-10.7 24-24s-10.7-24-24-24c-48.6 0-88-39.4-88-88z\"]\n};\nvar faTint = faDroplet;\nvar faFileLines = {\n prefix: 'fas',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM120 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M192 320c106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144c0 39.6 14.3 76.2 38.4 105.6L2.8 316.8C-2.1 326.1-.4 337.5 7 345s18.9 9.2 28.2 4.2L116.8 306c23.1 9 48.5 14 75.2 14zm3.2 48c16.4 81.9 94.7 144 188.8 144 26.7 0 52.1-5 75.2-14l81.6 43.2c9.3 4.9 20.7 3.2 28.2-4.2s9.2-18.9 4.2-28.2l-35.6-67.2c24.1-29.4 38.4-66 38.4-105.6 0-82.4-61.7-151.5-145-170.7-11.5 115.8-115.8 201.2-235.8 202.7zM196 32c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"]\n};\nvar faMagnifyingGlassLocation = {\n prefix: 'fas',\n iconName: 'magnifying-glass-location',\n icon: [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6 6 7.3 16.8 7.3 22.7 0 22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faSearchLocation = faMagnifyingGlassLocation;\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM64 384l0-64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 416c-17.7 0-32-14.3-32-32zM88 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S74.7 64 88 64zm0 96l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faPentagon = {\n prefix: 'fas',\n iconName: 'pentagon',\n icon: [576, 512, [], \"e790\", \"M316.4-3.1c-16.8-12.2-39.6-12.2-56.4 0L35.3 160.2c-16.8 12.2-23.9 33.9-17.4 53.7l85.8 264.1c6.4 19.8 24.9 33.2 45.7 33.2l277.7 0c20.8 0 39.2-13.4 45.7-33.2l85.8-264.1c6.4-19.8-.6-41.4-17.4-53.7L316.4-3.1z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64-544 0 0-64zm152-32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm232 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM280 160a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 288l416 0 0 112c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 96c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-160 128 0z\"]\n};\nvar faShop = {\n prefix: 'fas',\n iconName: 'shop',\n icon: [576, 512, [\"store-alt\"], \"f54f\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l56.8 113.7c3.6 7.2 5.5 15.1 5.5 23.2 0 27.3-21.2 49.7-48 51.6L512 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-96 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0z\"]\n};\nvar faStoreAlt = faShop;\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [448, 512, [127902, 62368, \"film-alt\", \"film-simple\"], \"f008\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0z\"]\n};\nvar faFilmAlt = faFilm;\nvar faFilmSimple = faFilm;\nvar faBuildingCircleXmark = {\n prefix: 'fas',\n iconName: 'building-circle-xmark',\n icon: [576, 512, [], \"e4d4\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L454.6 400z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [128490, 61670], \"f086\", \"M384 144c0 97.2-86 176-192 176-26.7 0-52.1-5-75.2-14L35.2 349.2c-9.3 4.9-20.7 3.2-28.2-4.2s-9.2-18.9-4.2-28.2l35.6-67.2C14.3 220.2 0 183.6 0 144 0 46.8 86-32 192-32S384 46.8 384 144zm0 368c-94.1 0-172.4-62.1-188.8-144 120-1.5 224.3-86.9 235.8-202.7 83.3 19.2 145 88.3 145 170.7 0 39.6-14.3 76.2-38.4 105.6l35.6 67.2c4.9 9.3 3.2 20.7-4.2 28.2s-18.9 9.2-28.2 4.2L459.2 498c-23.1 9-48.5 14-75.2 14z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [576, 512, [], \"f02c\", \"M401.2 39.1L549.4 189.4c27.7 28.1 27.7 73.1 0 101.2L393 448.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L515.3 256.8c9.2-9.3 9.2-24.4 0-33.7L367 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM32.1 229.5L32.1 96c0-35.3 28.7-64 64-64l133.5 0c17 0 33.3 6.7 45.3 18.7l144 144c25 25 25 65.5 0 90.5L285.4 418.7c-25 25-65.5 25-90.5 0l-144-144c-12-12-18.7-28.3-18.7-45.3zm144-85.5a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faGun = {\n prefix: 'fas',\n iconName: 'gun',\n icon: [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8-448 0C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352 321.4 352c23.7 0 44.8-14.9 52.7-37.2l26.7-74.8 31.1 0c8.5 0 16.6-3.4 22.6-9.4l22.6-22.6 66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304l-92.5 0 16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faCircleCheck = {\n prefix: 'fas',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM374 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L221.1 315.2 169 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.8 7.5 18.8 7s13.4-4.1 17.5-9.8L379.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faScorpio = {\n prefix: 'fas',\n iconName: 'scorpio',\n icon: [640, 512, [], \"e84e\", \"M368 32c61.9 0 112 50.1 112 112l0 289.7c0 7.9 6.4 14.3 14.3 14.3 3.9 0 7.6-1.6 10.2-4.3l40.1-41.1-9.7-9.7c-6.9-6.9-8.9-17.2-5.2-26.2S542.3 352 552 352l64 0 2.5 .1c12.1 1.2 21.5 11.5 21.5 23.9l0 64-.3 3.6c-1.2 8.2-6.7 15.3-14.5 18.6-9 3.7-19.3 1.6-26.2-5.2l-9.1-9.1-39.6 40.6c-14.7 15.1-34.9 23.6-56 23.6-43.3 0-78.3-35.1-78.3-78.3L416 144c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-304c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 94.2 32 80.6 32 64 32 46.3 46.3 32 64 32 91 32 115.3 43.1 132.7 61 152.6 43 179 32 208 32 239.3 32 267.7 44.9 288 65.7 308.3 44.9 336.6 32 368 32z\"]\n};\nvar faIdCardClip = {\n prefix: 'fas',\n iconName: 'id-card-clip',\n icon: [576, 512, [\"id-card-alt\"], \"f47f\", \"M256-32l64 0c17.7 0 32 14.3 32 32l0 64-128 0 0-64c0-17.7 14.3-32 32-32zM64 32l112 0 0 32c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-32 112 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM176 400c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM288 280a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faIdCardAlt = faIdCardClip;\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [127769, 9214], \"f186\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512c68.8 0 131.3-27.2 177.3-71.4 7.3-7 9.4-17.9 5.3-27.1s-13.7-14.9-23.8-14.1c-4.9 .4-9.8 .6-14.8 .6-101.6 0-184-82.4-184-184 0-72.1 41.5-134.6 102.1-164.8 9.1-4.5 14.3-14.3 13.1-24.4S322.6 8.5 312.7 6.3C294.4 2.2 275.4 0 256 0z\"]\n};\nvar faOilWell = {\n prefix: 'fas',\n iconName: 'oil-well',\n icon: [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4-108.2 28.1-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39-132.2 34.3 0-38.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0-61.4-175.4-62.2 16.1 22.1 63.2-66.6 0 19.9-56.9-74.6 19.3-46.7 133.5-41.3 0 0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l16.8-48 100.2 0 16.8 48-133.8 0z\"]\n};\nvar faTachographDigital = {\n prefix: 'fas',\n iconName: 'tachograph-digital',\n icon: [576, 512, [\"digital-tachograph\"], \"f566\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 32c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l136 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 352zm256 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zM496 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM88 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm104-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faDigitalTachograph = faTachographDigital;\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM184 400l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faTabletAndroid = faTablet;\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [448, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M112 32C94.3 32 80 46.3 80 64l0 208-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 48-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-152 0 0-48 112 0c79.5 0 144-64.5 144-144S335.5 32 256 32L112 32zM256 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faRouble = faRubleSign;\nvar faRub = faRubleSign;\nvar faRuble = faRubleSign;\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm152 80l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [128394], \"f304\", \"M352.9 21.2L308 66.1 445.9 204 490.8 159.1C504.4 145.6 512 127.2 512 108s-7.6-37.6-21.2-51.1L455.1 21.2C441.6 7.6 423.2 0 404 0s-37.6 7.6-51.1 21.2zM274.1 100L58.9 315.1c-10.7 10.7-18.5 24.1-22.6 38.7L.9 481.6c-2.3 8.3 0 17.3 6.2 23.4s15.1 8.5 23.4 6.2l127.8-35.5c14.6-4.1 27.9-11.8 38.7-22.6L412 237.9 274.1 100z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M520 200c30.9 0 56 25.1 56 56s-25.1 56-56 56l-127.3 0-159.2 173.6c-6.1 6.6-14.6 10.4-23.6 10.4l-43.7 0c-10.9 0-18.6-10.7-15.2-21.1l54.3-162.9-99.7 0-52.8 66c-3 3.8-7.6 6-12.5 6l-19.8 0c-10.4 0-18-9.8-15.5-19.9L32 256 5 147.9C2.4 137.8 10.1 128 20.5 128l19.8 0c4.9 0 9.5 2.2 12.5 6l52.8 66 99.7 0-54.3-162.9C147.6 26.7 155.3 16 166.2 16l43.7 0c9 0 17.5 3.8 23.6 10.4L392.7 200 520 200z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M96 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64L96 96zM24 128c13.3 0 24 10.7 24 24l0 296c0 8.8 7.2 16 16 16l360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L64 512c-35.3 0-64-28.7-64-64L0 152c0-13.3 10.7-24 24-24zm168 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm196.5 11.5c-4.4-7.1-12.1-11.5-20.5-11.5s-16.1 4.4-20.5 11.5l-56.3 92.1-24.5-30.6c-4.6-5.7-11.4-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S174.8 352 184 352l272 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144z\"]\n};\nvar faMobileScreen = {\n prefix: 'fas',\n iconName: 'mobile-screen',\n icon: [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM128 440c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24zM304 64l-224 0 0 304 224 0 0-304z\"]\n};\nvar faMobileAndroidAlt = faMobileScreen;\nvar faGuaraniSign = {\n prefix: 'fas',\n iconName: 'guarani-sign',\n icon: [384, 512, [], \"e19a\", \"M192 0c-13.3 0-24 10.7-24 24l0 41.5C73.3 77.3 0 158.1 0 256S73.3 434.7 168 446.5l0 41.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-41.5c94.7-11.8 168-92.6 168-190.5 0-17.7-14.3-32-32-32l-136 0 0-93.8c25.3 4.8 47.9 17 65.6 34.3 12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C297.2 90.2 258.8 70.8 216 65.5L216 24c0-13.3-10.7-24-24-24zM168 130.2l0 251.5C108.8 370.5 64 318.5 64 256s44.8-114.5 104-125.8zm48 251.5l0-93.8 100 0c-12.3 47.6-51.2 84.5-100 93.8z\"]\n};\nvar faBagShopping = {\n prefix: 'fas',\n iconName: 'bag-shopping',\n icon: [448, 512, [\"shopping-bag\"], \"f290\", \"M160 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48c0-61.9-50.1-112-112-112S112 18.1 112 80l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faShoppingBag = faBagShopping;\nvar faCircleRight = {\n prefix: 'fas',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3l-104 104c-4.6 4.6-11.5 5.9-17.4 3.5S256 366.5 256 360l0-56-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-56c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l104 104c6.2 6.2 6.2 16.4 0 22.6z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [576, 512, [\"volume-control-phone\"], \"f2a0\", \"M344-32c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM320 88c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24zM144.1 1.4c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c32.5 71.6 89 130 159.3 164.9L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5C523.4 470.1 460.9 525.3 384.6 509.2 209.6 472.1 71.9 334.4 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5z\"]\n};\nvar faVolumeControlPhone = faPhoneVolume;\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M284-1.3c-17.3-10-38.7-10-56 0L143.8 47.3c-17.3 10-28 28.5-28 48.5l0 101.9-88.3 51c-17.3 10-28 28.5-28 48.5l0 97.3c0 20 10.7 38.5 28 48.5l84.3 48.6c17.3 10 38.7 10 56 0l88.3-51 88.3 51c17.3 10 38.7 10 56 0L484.5 443c17.3-10 28-28.5 28-48.5l0-97.3c0-20-10.7-38.5-28-48.5l-88.3-51 0-101.9c0-20-10.7-38.5-28-48.5L284-1.3zM232 292.6l0 106.5-88.3 51c-1.2 .7-2.6 1.1-4 1.1l0-105.3 92.3-53.3zm231.4 .6c.7 1.2 1.1 2.6 1.1 4l0 97.3c0 2.9-1.5 5.5-4 6.9l-84.3 48.6c-1.2 .7-2.6 1.1-4 1.1l0-105.3 91.2-52.6zM348.3 95.8l0 101.9-92.3 53.3 0-106.5 91.2-52.6c.7 1.2 1.1 2.6 1.1 4z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [128222, 128379], \"f095\", \"M160.2 25C152.3 6.1 131.7-3.9 112.1 1.4l-5.5 1.5c-64.6 17.6-119.8 80.2-103.7 156.4 37.1 175 174.8 312.7 349.8 349.8 76.3 16.2 138.8-39.1 156.4-103.7l1.5-5.5c5.4-19.7-4.7-40.3-23.5-48.1l-97.3-40.5c-16.5-6.9-35.6-2.1-47 11.8l-38.6 47.2C233.9 335.4 177.3 277 144.8 205.3L189 169.3c13.9-11.3 18.6-30.4 11.8-47L160.2 25z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [448, 512, [9961], \"f6a1\", \"M0 96L0 28.5C0 21.6 5.6 16 12.5 16 14.8 16 17 16.6 19 17.8L58 41.2C82.9 56.1 111.3 64 140.3 64l167.4 0c29 0 57.5-7.9 82.3-22.8l39-23.4c1.9-1.2 4.2-1.8 6.4-1.8 6.9 0 12.5 5.6 12.5 12.5L448 96c0 35.3-28.7 64-64 64l0 64 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-192 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-64C28.7 160 0 131.3 0 96zM128 224l64 0 0-64-64 0 0 64zm128 0l64 0 0-64-64 0 0 64z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [129363], \"f7e5\", \"M557 96.7c14.4 14.4 12.4 38.4-4.3 50.2l-64.6 45.7c-43.7 30.9-79.2 71.9-103.4 119.6l-25.3 49.8c-25.1 49.3-62.1 91.5-107.8 122.6l-74.1 50.6c-13.1 8.9-30.7 7.3-41.8-3.9l-44.9-44.9 86.5-66.5c42.3-32.5 76.7-74.3 100.6-122l24.5-49.1c24.5-49 61.8-90.6 107.9-120.2l108.7-69.9 38 38zM484.2 23.9L384.3 88.2c-53.4 34.3-96.5 82.4-124.9 139.1l-24.5 49.1c-20.6 41.3-50.3 77.3-86.9 105.4l-91.4 70.3-36.9-36.9c-14.4-14.4-12.4-38.4 4.3-50.2l64.6-45.7c43.7-30.9 79.2-71.9 103.4-119.6l25.3-49.8C242.3 100.8 279.3 58.6 325 27.4l74.1-50.6c13.1-8.9 30.6-7.3 41.8 3.9l43.3 43.3z\"]\n};\nvar faPersonFallingBurst = {\n prefix: 'fas',\n iconName: 'person-falling-burst',\n icon: [576, 512, [], \"e547\", \"M256 0c17.7 0 32 14.3 32 32l0 5.4c0 55.2-23.7 107-63.9 143.1l62.9 75.5 89 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L368 320 263.2 320 376.8 459.8c11.1 13.7 9.1 33.9-4.7 45s-33.9 9.1-45-4.7L137.4 266.6c-6.1 15-9.4 31.3-9.4 48l0 69.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-69.4c0-67.4 35.4-129.9 93.2-164.6l4.6-2.8C200.4 124 224 82.4 224 37.4l0-5.4c0-17.7 14.3-32 32-32zM16 88A56 56 0 1 1 128 88 56 56 0 1 1 16 88zm376-7.9c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48zm104 152c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0zm-54.5-97.5c-9.4-9.4-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136z\"]\n};\nvar faQuoteRightAlt = faQuoteRight;\nvar faHouseMedicalFlag = {\n prefix: 'fas',\n iconName: 'house-medical-flag',\n icon: [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM267.5 59.1L400 186.9 400 503.4c-9.4 5.4-20.3 8.6-32 8.6l-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0C12.6 304 0 291.4 0 275.9 0 268.3 3.1 261 8.6 255.7L212.5 59.1C219.9 52 229.7 48 240 48s20.1 4 27.5 11.1zM204.8 256.8l0 44-44 0c-9.7 0-17.6 7.9-17.6 17.6l0 35.2c0 9.7 7.9 17.6 17.6 17.6l44 0 0 44c0 9.7 7.9 17.6 17.6 17.6l35.2 0c9.7 0 17.6-7.9 17.6-17.6l0-44 44 0c9.7 0 17.6-7.9 17.6-17.6l0-35.2c0-9.7-7.9-17.6-17.6-17.6l-44 0 0-44c0-9.7-7.9-17.6-17.6-17.6l-35.2 0c-9.7 0-17.6 7.9-17.6 17.6z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7 202.2 220.9C251.4 209.1 288 164.8 288 112 288 50.1 237.9 0 176 0L32 0zM176 160l-112 0 0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBuildingLock = {\n prefix: 'fas',\n iconName: 'building-lock',\n icon: [576, 512, [], \"e4d6\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L96 512c-35.3 0-64-28.7-64-64L32 64zM176 384l0 80 80 0 0-64.1c0-13.7 1.9-27 5.5-39.6-5.7-5.2-13.2-8.3-21.5-8.3l-32 0c-17.7 0-32 14.3-32 32zM307 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm352 80.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64L0 96zm0 48l576 0 0 272c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 144zM247.3 416c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29-12.9 15.6 2.2 35 22.4 35l142.5 0zM176 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM360 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faCirclePlay = {\n prefix: 'fas',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faFaceLaughBeam = {\n prefix: 'fas',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM176 164c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [512, 512, [], \"f06c\", \"M471.3 6.7C477.7 .6 487-1.6 495.6 1.2 505.4 4.5 512 13.7 512 24l0 186.9c0 131.2-108.1 237.1-238.8 237.1-77 0-143.4-49.5-167.5-118.7-35.4 30.8-57.7 76.1-57.7 126.7 0 13.3-10.7 24-24 24S0 469.3 0 456C0 381.1 38.2 315.1 96.1 276.3 131.4 252.7 173.5 240 216 240l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-39.7 0-77.3 8.8-111 24.5 23.3-70 89.2-120.5 167-120.5 66.4 0 115.8-22.1 148.7-44 19.2-12.8 35.5-28.1 50.7-45.3z\"]\n};\nvar faHouseChimneyUser = {\n prefix: 'fas',\n iconName: 'house-chimney-user',\n icon: [512, 512, [], \"e065\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM312 256a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM144 432c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80z\"]\n};\nvar faRotateRight = {\n prefix: 'fas',\n iconName: 'rotate-right',\n icon: [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M488 192l-144 0c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l46.7-46.7c-75.3-58.6-184.3-53.3-253.5 15.9-75 75-75 196.5 0 271.5s196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c94.3-94.3 243.7-99.6 344.3-16.2L471 7c6.9-6.9 17.2-8.9 26.2-5.2S512 14.3 512 24l0 144c0 13.3-10.7 24-24 24z\"]\n};\nvar faRedoAlt = faRotateRight;\nvar faRotateForward = faRotateRight;\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [129463], \"f5c9\", \"M145 5.7L224 32 303 5.7C314.3 1.9 326 0 337.9 0 398.7 0 448 49.3 448 110.1l0 68.5c0 29.4-9.5 58.1-27.2 81.6l-1.1 1.5c-12.9 17.2-21.3 37.4-24.3 58.7L373.7 471.9c-3.3 23-23 40.1-46.2 40.1-22.8 0-42.3-16.5-46-39L261.3 351.6c-3-18.2-18.8-31.6-37.3-31.6s-34.2 13.4-37.3 31.6L166.5 473c-3.8 22.5-23.2 39-46 39-23.2 0-42.9-17.1-46.2-40.1L52.6 320.5c-3-21.3-11.4-41.5-24.3-58.7l-1.1-1.5C9.5 236.7 0 208.1 0 178.7l0-68.5C0 49.3 49.3 0 110.1 0 122 0 133.7 1.9 145 5.7z\"]\n};\nvar faHouseChimneyWindow = {\n prefix: 'fas',\n iconName: 'house-chimney-window',\n icon: [512, 512, [], \"e00d\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM216 224c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [127949], \"f21c\", \"M280 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l56.6 0 22.5 48.7-95.1 71.3c-33.4-25.1-75-40-120-40l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c78.5 0 143.2 59.6 151.2 136l-25.4 0c-11.2-59.2-63.3-104-125.8-104-70.7 0-128 57.3-128 128S73.3 480 144 480c62.5 0 114.5-44.8 125.8-104l50.2 0c13.3 0 24-10.7 24-24l0-22.5c0-45.1 25.7-85.4 65.5-107.7l12.1 26.1c-32.4 23.2-53.5 61.2-53.5 104.1 0 70.7 57.3 128 128 128s128-57.3 128-128-57.3-128-128-128c-10.7 0-21 1.3-30.9 3.8L433.8 160 488 160c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-53.3 0c-6.9 0-13.7 2.2-19.2 6.4l-17.1 12.8-24.6-53.3C369.9 21.4 361.4 16 352 16l-72 0zM445.8 300.4l28.4 61.6c5.6 12 19.8 17.3 31.8 11.7s17.3-19.8 11.7-31.8l-28.5-61.6c2.2-.2 4.4-.3 6.7-.3 39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72c0-20.2 8.3-38.5 21.8-51.6zM144 424c-39.8 0-72-32.2-72-72s32.2-72 72-72c31.3 0 58 20 67.9 48L144 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.9 0c-9.9 28-36.6 48-67.9 48z\"]\n};\nvar faBackwardFast = {\n prefix: 'fas',\n iconName: 'backward-fast',\n icon: [512, 512, [9198, \"fast-backward\"], \"f049\", \"M492.2 477.6c-12 5-25.7 2.2-34.9-6.9L288 301.3 288 448c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L64 301.3 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32S64 46.3 64 64L64 210.7 233.4 41.4c9.2-9.2 22.9-11.9 34.9-6.9S288 51.1 288 64l0 146.7 169.4-169.4c9.2-9.2 22.9-11.9 34.9-6.9S512 51.1 512 64l0 384c0 12.9-7.8 24.6-19.8 29.6z\"]\n};\nvar faFastBackward = faBackwardFast;\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zm0 128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 320c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faContactBook = faAddressBook;\nvar faSailboat = {\n prefix: 'fas',\n iconName: 'sailboat',\n icon: [512, 512, [], \"e445\", \"M240 35.9l0 348.1-224 0c-8.8 0-16 7.2-16 16 0 61.9 50.1 112 112 112l288 0c61.9 0 112-50.1 112-112 0-8.8-7.2-16-16-16l-208 0 0-48 161.7 0c12.9 0 20.5-14.4 13.2-25L269.2 26.9c-8.9-13-29.2-6.7-29.2 9zM192 320l0-184.2c0-16.1-21-22.1-29.6-8.5L47.3 311.5c-6.7 10.7 1 24.5 13.6 24.5L176 336c8.8 0 16-7.2 16-16z\"]\n};\nvar faBookBookmark = {\n prefix: 'fas',\n iconName: 'book-bookmark',\n icon: [448, 512, [], \"e0bb\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48l-48 0 0 169.4c0 12.5-10.1 22.6-22.6 22.6-6 0-11.8-2.4-16-6.6L272 144 230.6 185.4c-4.2 4.2-10 6.6-16 6.6-12.5 0-22.6-10.1-22.6-22.6L192 0 96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faMagnifyingGlassArrowRight = {\n prefix: 'fas',\n iconName: 'magnifying-glass-arrow-right',\n icon: [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM305 225c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"]\n};\nvar faMicrophoneLines = {\n prefix: 'fas',\n iconName: 'microphone-lines',\n icon: [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L232 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-4.1 49.3-45.3 88-95.7 88-53 0-96-43-96-96L96 96zM24 160c13.3 0 24 10.7 24 24l0 40c0 79.5 64.5 144 144 144s144-64.5 144-144l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 97.9-73.3 178.7-168 190.5l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C73.3 402.7 0 321.9 0 224l0-40c0-13.3 10.7-24 24-24z\"]\n};\nvar faMicrophoneAlt = faMicrophoneLines;\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [\"mail-reply-all\"], \"f122\", \"M332.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 48 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-32 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9zM205.6 23.1c9.4 9.4 9.4 24.6 0 33.9L54.6 208 205.6 358.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L10 231.2c-6.4-6-10-14.4-10-23.2s3.6-17.2 10-23.2L171.6 23.1c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faMailReplyAll = faReplyAll;\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2S339 397 334.8 384.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [512, 512, [129531, 63263, \"toilet-paper-alt\", \"toilet-paper-blank\"], \"f71e\", \"M327.1 32c-8.8 11.1-16 23.1-21.9 34.8-21.4 42.7-33.2 98.4-33.2 157.2l0 264c0 30.9-25.1 56-56 56L56 544c-30.9 0-56-25.1-56-56L0 224C0 118 43 32 96 32l231.1 0zM416 416c-53 0-96-86-96-192s43-192 96-192 96 86 96 192-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64-32 28.7-32 64 14.3 64 32 64z\"]\n};\nvar faToiletPaperAlt = faToiletPaper;\nvar faToiletPaperBlank = faToiletPaper;\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [576, 512, [], \"f729\", \"M512 96L64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l117.5 0c17 0 33.3-6.7 45.3-18.7l33.9-33.9c7.2-7.2 17.1-11.3 27.3-11.3s20.1 4.1 27.3 11.3l33.9 33.9c12 12 28.3 18.7 45.3 18.7L512 416c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64zM80 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm352-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L112.5 72C293.3 72.3 439.7 218.7 440 399.5l36.4-9.7c20.8-5.5 36.3-24.7 34.7-47.5-12.6-182.8-158.6-328.8-341.4-341.4zm222 411.5c.2-4.1 .3-8.2 .3-12.4 0-154.6-125.4-280-280-280-4.1 0-8.3 .1-12.4 .3L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1l371.6-99.1zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [576, 512, [], \"f5bd\", \"M192 0l64 0c17.7 0 32 14.3 32 32l0 80-128 0 0-80c0-17.7 14.3-32 32-32zM64 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48l-224 0c-26.5 0-48-21.5-48-48l0-208zm240 80a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM320 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM512 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faVolumeLow = {\n prefix: 'fas',\n iconName: 'volume-low',\n icon: [448, 512, [128264, \"volume-down\"], \"f027\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM380.6 181.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C361.1 227.6 368 241 368 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C402.1 312.9 416 286.1 416 256s-13.9-56.9-35.5-74.5z\"]\n};\nvar faVolumeDown = faVolumeLow;\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z\"]\n};\nvar faPerson = {\n prefix: 'fas',\n iconName: 'person',\n icon: [384, 512, [129485, \"male\"], \"f183\", \"M248 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C274 132 234.3 112 192 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3z\"]\n};\nvar faMale = faPerson;\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1l-67.9 67.9 67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1l67.9-67.9-67.9-67.9C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9l67.9 67.9 67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11-192 0zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9l-67.9-67.9-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8 4.7 9.2 4.7 20.1 0 29.3-14.1 27.4-41.9 66.8-81 99.8-39.2 33.1-92 61.5-155.5 61.5s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9s-12.4-26-5.3-38.6L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2-4.6-1.1-9.5-1.8-14.5-1.8-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12 0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1 11.9-1.2 16.4-15.5 10.8-26-8.5-15.8-13.3-33.8-13.3-53 0-61.9 50.1-112 112-112 8 0 15.7 .8 23.2 2.4 11.7 2.5 24.1-5.9 22-17.6-14.7-82.3-86.7-144.8-173.2-144.8-97.2 0-176 78.8-176 176l0 89.2z\"]\n};\nvar faChartSimple = {\n prefix: 'fas',\n iconName: 'chart-simple',\n icon: [512, 512, [], \"e473\", \"M192 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM432 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [9883], \"f5d2\", \"M224 398.8c-11.8 5.1-23.4 9.7-34.9 13.5 16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM414 256c33 45.2 44.3 90.9 23.6 128-20.2 36.3-62.5 49.3-115.2 43.2-22 52.1-55.7 84.8-98.4 84.8s-76.4-32.7-98.4-84.8C72.9 433.3 30.6 420.3 10.4 384-10.3 346.9 1 301.2 34 256 1 210.8-10.3 165.1 10.4 128 30.6 91.7 72.9 78.7 125.6 84.8 147.6 32.7 181.2 0 224 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2 20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2 31.8 1.4 38.6-8.7 40.2-11.7 2.3-4.2 7-17.9-11.9-48.1-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2 7.6 6.1 14.8 12.3 21.6 18.6 18.9-30.2 14.2-44 11.9-48.1-1.6-2.9-8.4-13-40.2-11.7zM258.9 99.7C242.1 65.9 227.9 64 224 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5 11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2-31.8-1.4-38.6 8.7-40.2 11.7-2.3 4.2-7 17.9 11.9 48.1 6.8-6.3 14-12.5 21.6-18.6zM78.2 304.8c-18.9 30.2-14.2 44-11.9 48.1 1.6 2.9 8.4 13 40.2 11.7-2.8-13.1-5-26.9-6.7-41.2-7.6-6.1-14.8-12.3-21.6-18.6zM304 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faP = {\n prefix: 'fas',\n iconName: 'p',\n icon: [320, 512, [112], \"50\", \"M0 64C0 46.3 14.3 32 32 32l128 0c88.4 0 160 71.6 160 160S248.4 352 160 352l-96 0 0 96c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96l-96 0 0 192z\"]\n};\nvar faJetFighterUp = {\n prefix: 'fas',\n iconName: 'jet-fighter-up',\n icon: [512, 512, [], \"e518\", \"M206.8 47.8C202.3 58.5 200 70 200 81.6l0 100.4-152 114 0-48c0-13.3-10.7-24-24-24S0 234.7 0 248L0 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 152 0 0 54.4-66 52.8c-3.8 3-6 7.6-6 12.5l0 24.3c0 8.8 7.2 16 16 16l88 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 88 0c8.8 0 16-7.2 16-16l0-24.3c0-4.9-2.2-9.5-6-12.5l-66-52.8 0-54.4 152 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48-152-114 0-100.4c0-11.6-2.3-23.1-6.8-33.8l-27.1-65C274.4-26.2 265.7-32 256-32s-18.4 5.8-22.2 14.8l-27.1 65z\"]\n};\nvar faPlugCircleXmark = {\n prefix: 'fas',\n iconName: 'plug-circle-xmark',\n icon: [640, 512, [], \"e560\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faSheetPlastic = {\n prefix: 'fas',\n iconName: 'sheet-plastic',\n icon: [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64l149.5 0c17 0 33.3-6.7 45.3-18.7L365.3 386.7c12-12 18.7-28.3 18.7-45.3L384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zm208 5.5l0-93.5c0-13.3 10.7-24 24-24l93.5 0-117.5 117.5zM153 105l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zm96 32L137 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L215 103c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faV = {\n prefix: 'fas',\n iconName: 'v',\n icon: [384, 512, [118], \"56\", \"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"]\n};\nvar faListSquares = faList;\nvar faPisces = {\n prefix: 'fas',\n iconName: 'pisces',\n icon: [448, 512, [], \"e84c\", \"M40.4 10.4c11.9-13 32.2-13.9 45.2-2 2.9 2.7 28.3 26.7 53.6 67.8 22.3 36.2 45 86.6 51.1 147.8l67.3 0c6.1-61.1 28.8-111.6 51.1-147.8 25.3-41.1 50.7-65.1 53.6-67.8 13-11.9 33.3-11.1 45.2 2 11.9 13 11 33.3-2 45.2-1.4 1.3-22 21.1-42.4 54.2-17.9 29.1-35.4 68-41.2 114.2l94 0 3.3 .2c16.1 1.6 28.7 15.3 28.7 31.8s-12.6 30.2-28.7 31.8l-3.3 .2-94 0c5.8 46.2 23.3 85.1 41.2 114.2 20.4 33.1 41 52.9 42.4 54.2 13 11.9 13.9 32.2 2 45.2-11.9 13-32.2 13.9-45.2 2-2.9-2.7-28.3-26.7-53.6-67.8-22.3-36.2-45-86.6-51.1-147.8l-67.3 0c-6.1 61.1-28.8 111.6-51.1 147.8-25.3 41.1-50.7 65.1-53.6 67.8-13 11.9-33.3 11.1-45.2-2-11.9-13-11-33.3 2-45.2 1.4-1.3 22-21.1 42.4-54.2 17.9-29.1 35.4-68 41.2-114.2l-94 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l94 0c-5.8-46.2-23.3-85.1-41.2-114.2-20.4-33.1-41-52.9-42.4-54.2-13-11.9-13.9-32.2-2-45.2z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [576, 512, [], \"f5ba\", \"M121.8 32c-30 0-56 20.8-62.5 50.1L9.6 306.1C.7 346.1 31.1 384 72 384l184.1 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 184.1 0c40.9 0 71.4-37.9 62.5-77.9l-49.8-224C510.4 52.8 484.5 32 454.5 32L121.8 32zM245.6 96l85.2 0 7.3 88-99.8 0 7.3-88zm-55.5 88l-87.8 0 19.6-88 75.6 0-7.3 88zM91.6 232l94.5 0-7.3 88-106.7 0 19.6-88zm142.6 0l107.8 0 7.3 88-122.5 0 7.3-88zm156 0l94.5 0 19.6 88-106.7 0-7.3-88zM474 184l-87.8 0-7.3-88 75.6 0 19.6 88z\"]\n};\nvar faLandMineOn = {\n prefix: 'fas',\n iconName: 'land-mine-on',\n icon: [576, 512, [], \"e51b\", \"M312 0l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24L264 0c0-13.3 10.7-24 24-24s24 10.7 24 24zM160 288c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l80 0 0-32zM12 114.7c7.4-11 22.3-14 33.3-6.7l96 64c11 7.4 14 22.3 6.7 33.3s-22.3 14-33.3 6.7l-96-64c-11-7.4-14-22.3-6.7-33.3zM530.7 108c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-96 64c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l96-64z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [448, 512, [127911, 62863, \"headphones-alt\", \"headphones-simple\"], \"f025\", \"M64 224c0-88.4 71.6-160 160-160s160 71.6 160 160l0 37.5c-10-3.5-20.8-5.5-32-5.5l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-11.2 0-22 1.9-32 5.5L64 224z\"]\n};\nvar faHeadphonesAlt = faHeadphones;\nvar faHeadphonesSimple = faHeadphones;\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [448, 512, [128653], \"f207\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 176c0-17.7 14.3-32 32-32l104 0 0 112-104 0c-17.7 0-32-14.3-32-32l0-48zm184 80l0-112 104 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-104 0zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM152 72c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM152 256c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 24 0c39.8 0 72-32.2 72-72s-32.2-72-72-72l-48 0zm48 96l-24 0 0-48 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-136z\"]\n};\nvar faQuoteLeftAlt = faQuoteLeft;\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"]\n};\nvar faEarthAsia = {\n prefix: 'fas',\n iconName: 'earth-asia',\n icon: [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M50 284.8c4.2 2.1 9 3.2 14 3.2l50.7 0c8.5 0 16.6 3.4 22.6 9.4l13.3 13.3c6 6 14.1 9.4 22.6 9.4l18.7 0c17.7 0 32-14.3 32-32l0-40c0-13.3 10.7-24 24-24s24-10.7 24-24l0-42.7c0-8.5 3.4-16.6 9.4-22.6l13.3-13.3c6-6 9.4-14.1 9.4-22.6L304 57c0-1.2-.1-2.3-.2-3.5-15.4-3.6-31.4-5.5-47.8-5.5-114.9 0-208 93.1-208 208 0 9.8 .7 19.4 2 28.8zm403.3 37.3c-3.2-1.4-6.7-2.1-10.5-2.1L432 320c-8.8 0-16-7.2-16-16s-7.2-16-16-16l-34.7 0c-8.5 0-16.6 3.4-22.6 9.4l-45.3 45.3c-6 6-9.4 14.1-9.4 22.6l0 18.7c0 17.7 14.3 32 32 32l18.7 0c8.5 0 16.6 3.4 22.6 9.4 2.2 2.2 4.7 4.1 7.3 5.5 39.3-25.4 69.5-63.6 84.6-108.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM128 368c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM272 256c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm48-112l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faGlobeAsia = faEarthAsia;\nvar faCentSign = {\n prefix: 'fas',\n iconName: 'cent-sign',\n icon: [384, 512, [], \"e3f5\", \"M208 0c17.7 0 32 14.3 32 32l0 25.4c43.6 5.2 83 24.5 113.3 53.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-24.4-23-57.2-37.1-93.3-37.1-75.1 0-136 60.9-136 136s60.9 136 136 136c36.2 0 69-14.1 93.3-37.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C323 430.1 283.6 449.4 240 454.6l0 25.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-28C84.7 433.5 16 352.8 16 256S84.7 78.5 176 60l0-28c0-17.7 14.3-32 32-32z\"]\n};\nvar faShieldCat = {\n prefix: 'fas',\n iconName: 'shield-cat',\n icon: [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faSchoolCircleCheck = {\n prefix: 'fas',\n iconName: 'school-circle-check',\n icon: [640, 512, [], \"e56b\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faMartiniGlass = {\n prefix: 'fas',\n iconName: 'martini-glass',\n icon: [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M2.4 51.8C7.4 39.8 19.1 32 32 32l448 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L288 301.3 288 448 352 448c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-146.7-214.6-214.6C.2 77.5-2.5 63.7 2.4 51.8zM354.7 144l48-48-293.5 0 48 48 197.5 0z\"]\n};\nvar faGlassMartiniAlt = faMartiniGlass;\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [448, 512, [128268], \"f1e6\", \"M128-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 95.1-69.2 174.1-160 189.3l0 66.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C101.2 398.1 32 319.1 32 224l0-64c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0 0-96c0-17.7 14.3-32 32-32z\"]\n};\nvar faPanorama = {\n prefix: 'fas',\n iconName: 'panorama',\n icon: [576, 512, [], \"e209\", \"M43.9 48C19.7 48 0 67.7 0 91.9L0 420.1c0 24.3 19.7 43.9 43.9 43.9 5.5 0 10.7-1 15.7-2.9 12.9-4.9 103.4-37.1 228.4-37.1s215.5 32.3 228.4 37.1c5 1.9 10.2 2.9 15.7 2.9 24.3 0 43.9-19.7 43.9-43.9l0-328.2c0-24.3-19.7-43.9-43.9-43.9-5.5 0-10.7 1-15.7 2.9-12.9 4.9-103.4 37.1-228.4 37.1S72.5 55.7 59.6 50.9C54.6 49 49.4 48 43.9 48zM72 176a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm264.1-16c7.5 0 14.6 3.6 19.1 9.6L479.7 336.2c5.9 7.9 6.4 18.5 1.3 26.9s-14.8 12.8-24.5 11.1c-45.8-7.8-103.3-14.2-168.4-14.2-65.6 0-123.4 6.5-169.3 14.4-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L165.3 249c4.6-5.7 11.5-9 18.7-9s14.2 3.3 18.7 9l27.5 34.4 86.7-113.9c4.6-6 11.7-9.5 19.2-9.5z\"]\n};\nvar faClockRotateLeft = {\n prefix: 'fas',\n iconName: 'clock-rotate-left',\n icon: [576, 512, [\"history\"], \"f1da\", \"M288 64c106 0 192 86 192 192S394 448 288 448c-65.2 0-122.9-32.5-157.6-82.3-10.1-14.5-30.1-18-44.6-7.9s-18 30.1-7.9 44.6C124.1 468.6 201 512 288 512 429.4 512 544 397.4 544 256S429.4 0 288 0C202.3 0 126.5 42.1 80 106.7L80 80c0-17.7-14.3-32-32-32S16 62.3 16 80l0 112c0 17.7 14.3 32 32 32l24.6 0c.5 0 1 0 1.5 0l86 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-38.3 0C154.9 102.6 217 64 288 64zm24 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1z\"]\n};\nvar faHistory = faClockRotateLeft;\nvar faJarWheat = {\n prefix: 'fas',\n iconName: 'jar-wheat',\n icon: [320, 512, [], \"e517\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm112 32l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7z\"]\n};\nvar faCloudArrowDown = {\n prefix: 'fas',\n iconName: 'cloud-arrow-down',\n icon: [576, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM377 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72z\"]\n};\nvar faCloudDownload = faCloudArrowDown;\nvar faCloudDownloadAlt = faCloudArrowDown;\nvar faTruckRampBox = {\n prefix: 'fas',\n iconName: 'truck-ramp-box',\n icon: [576, 512, [\"truck-loading\"], \"f4de\", \"M400 32c-44.2 0-80 35.8-80 80l0 248.2-297.2 89.2C5.9 454.4-3.7 472.3 1.4 489.2s22.9 26.5 39.8 21.5l315.5-94.6 43.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88l0-392-176 0zM528 424c0 22.1-17.9 40-40 40s-40-17.9-40-40 17.9-40 40-40c22.1 0 39.9 17.9 40 39.9l0 .1zM51.9 149.5C18.1 159.8-.9 195.6 9.4 229.4l28.1 91.8C47.8 355 83.6 374 117.4 363.7l91.8-28.1c33.8-10.3 52.8-46.1 42.5-79.9l-28.1-91.8c-10.3-33.8-46.1-52.8-79.9-42.5L51.9 149.5z\"]\n};\nvar faTruckLoading = faTruckRampBox;\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [384, 512, [8964], \"f107\", \"M169.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 306.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faPlugCircleCheck = {\n prefix: 'fas',\n iconName: 'plug-circle-check',\n icon: [640, 512, [], \"e55c\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm24 64l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 176c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faHandsHoldingCircle = {\n prefix: 'fas',\n iconName: 'hands-holding-circle',\n icon: [640, 512, [], \"e4fb\", \"M320 0a128 128 0 1 1 0 256 128 128 0 1 1 0-256zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faLocationPin = {\n prefix: 'fas',\n iconName: 'location-pin',\n icon: [384, 512, [\"map-marker\"], \"f041\", \"M192 0C86 0 0 84.4 0 188.6 0 307.9 120.2 450.9 170.4 505.4 182.2 518.2 201.8 518.2 213.6 505.4 263.8 450.9 384 307.9 384 188.6 384 84.4 298 0 192 0z\"]\n};\nvar faMapMarker = faLocationPin;\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [512, 512, [], \"f436\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faCartFlatbed = {\n prefix: 'fas',\n iconName: 'cart-flatbed',\n icon: [576, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 39.8 29.1 72.8 67.1 79-2 5.3-3.1 11-3.1 17 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l34.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-400 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM224 64c-26.5 0-48 21.5-48 48l0 176c0 26.5 21.5 48 48 48l240 0c26.5 0 48-21.5 48-48l0-176c0-26.5-21.5-48-48-48L224 64z\"]\n};\nvar faDollyFlatbed = faCartFlatbed;\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [512, 512, [\"home-user\"], \"e1b0\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM144 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHomeUser = faHouseUser;\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [128123], \"f6e2\", \"M40.1 467.1l-11.2 9C25.7 478.6 21.8 480 17.8 480 8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCommentNodes = {\n prefix: 'fas',\n iconName: 'comment-nodes',\n icon: [640, 512, [], \"e696\", \"M480 208C503.7 208 525.6 215.3 543.7 227.9 536.9 100.9 425 0 288 0 146.6 0 32 107.5 32 240 32 294.3 51.2 344.3 83.6 384.5L34.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7c27.2 11.4 56.9 18.4 88.1 20.2 .1-18.9 4.9-38 15-55.5 17.1-29.7 45.8-48.5 77-54.2l9.2-16c-3.4-10.7-5.2-22-5.2-33.8 0-61.9 50.1-112 112-112zM328.6 448c-17.7 30.6-7.2 69.7 23.4 87.4s69.7 7.2 87.4-23.4c1.5-2.6 2.8-5.3 3.9-8l73.3 0c1.1 2.7 2.4 5.4 3.9 8 17.7 30.6 56.8 41.1 87.4 23.4s41.1-56.8 23.4-87.4c-13.4-23.2-39.1-34.8-64-31.4l-17.6-30.7c-11 11.7-25 20.6-40.6 25.6l16.5 28.9c-3.8 4.8-6.8 10-9 15.6l-73.4 0c-2.2-5.6-5.3-10.8-9-15.6l33-57.7c4.1 .8 8.4 1.3 12.8 1.3 35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64c0 13.4 4.1 25.8 11.2 36.1l-34.6 60.5c-25-3.4-50.6 8.3-64 31.4z\"]\n};\nvar faPersonArrowDownToLine = {\n prefix: 'fas',\n iconName: 'person-arrow-down-to-line',\n icon: [576, 512, [], \"e538\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 480l32 0 0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128zM566.6 166.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L432 146.7 432 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 146.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faPlugCirclePlus = {\n prefix: 'fas',\n iconName: 'plug-circle-plus',\n icon: [640, 512, [], \"e55f\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"]\n};\nvar faPersonSwimming = {\n prefix: 'fas',\n iconName: 'person-swimming',\n icon: [640, 512, [127946, \"swimmer\"], \"f5c4\", \"M552 152a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM293.4 198.2l-88.6 73.9c1.1 0 2.2-.1 3.3-.1 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 4.8 0 9.7 .2 14.5 .6-8.3-30-24.3-57.7-46.8-80.2-18.4-18.4-40.6-32.7-65-41.8l-68.6-25.7c-27.4-10.3-58-7.5-83.1 7.6l-53.5 32.1c-15.2 9.1-20.1 28.7-11 43.9s28.7 20.1 43.9 11L230 187.3c8.4-5 18.6-5.9 27.7-2.5l35.7 13.4zm110 181.9c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 386.3 17.6 394.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faSwimmer = faPersonSwimming;\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCommenting = faCommentDots;\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [576, 512, [\"pie-chart\"], \"f200\", \"M512.4 240l-176 0c-17.7 0-32-14.3-32-32l0-176c0-17.7 14.4-32.2 31.9-29.9 107 14.2 191.8 99 206 206 2.3 17.5-12.2 31.9-29.9 31.9zM222.6 37.2c18.1-3.8 33.8 11 33.8 29.5l0 197.3c0 5.6 2 11 5.5 15.3L394 438.7c11.7 14.1 9.2 35.4-6.9 44.1-34.1 18.6-73.2 29.2-114.7 29.2-132.5 0-240-107.5-240-240 0-115.5 81.5-211.9 190.2-234.8zM477.8 288l64 0c18.5 0 33.3 15.7 29.5 33.8-10.2 48.4-35 91.4-69.6 124.2-12.3 11.7-31.6 9.2-42.4-3.9L374.9 340.4c-17.3-20.9-2.4-52.4 24.6-52.4l78.2 0z\"]\n};\nvar faPieChart = faChartPie;\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9 0 21.8-11.7 41.9-30.7 52.7l-144.5 82.1 92.5 92.5 50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2 27.9-18.5 65.9-15.4 90.5 9.2 24.7 24.7 27.7 62.9 9 90.9-2.6 3.8-5.6 7.5-9 10.9L261.8 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480C28.7 480 0 451.3 0 416 0 249.6 127 112.9 289.3 97.5 296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [320, 512, [], \"f72f\", \"M80-32c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32 0 11.8-6.4 22.2-16 27.7l0 145.6c56.5 24.7 96 81.1 96 146.7l0 224c0 35.3-28.7 64-64 64L64 576c-35.3 0-64-28.7-64-64L0 288c0-65.6 39.5-122 96-146.7L96-4.3C86.4-9.8 80-20.2 80-32zM96 288c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 288z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [512, 512, [], \"f01c\", \"M91.8 32C59.9 32 32.9 55.4 28.4 86.9L.6 281.2c-.4 3-.6 6-.6 9.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-125.7c0-3-.2-6.1-.6-9.1L483.6 86.9C479.1 55.4 452.1 32 420.2 32L91.8 32zm0 64l328.5 0 27.4 192-59.9 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L64.3 288 91.8 96z\"]\n};\nvar faSquareH = {\n prefix: 'fas',\n iconName: 'square-h',\n icon: [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320 168l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHSquare = faSquareH;\nvar faHouseMedical = {\n prefix: 'fas',\n iconName: 'house-medical',\n icon: [512, 512, [], \"e3b2\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM224 248c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faCircleChevronRight = {\n prefix: 'fas',\n iconName: 'circle-chevron-right',\n icon: [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"]\n};\nvar faChevronCircleRight = faCircleChevronRight;\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [576, 512, [], \"f6dd\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM264 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-8c0-11-9-20-20-20s-20 9-20 20l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-24.3-19.7-44-44-44l-16 0zm136 0c-28.7 0-52 23.3-52 52s23.3 52 52 52c6.6 0 12 5.4 12 12s-5.4 12-12 12l-32 0c-11 0-20 9-20 20s9 20 20 20l32 0c28.7 0 52-23.3 52-52s-23.3-52-52-52c-6.6 0-12-5.4-12-12s5.4-12 12-12l24 0c11 0 20-9 20-20s-9-20-20-20l-24 0zm96 0c-11 0-20 9-20 20l0 31.6c0 35.5 10.5 70.3 30.2 99.8l5.1 7.7c3.7 5.6 10 8.9 16.6 8.9s12.9-3.3 16.6-8.9l5.1-7.7c19.7-29.6 30.2-64.3 30.2-99.8l0-31.6c0-11-9-20-20-20s-20 9-20 20l0 31.6c0 19.6-4.1 38.9-12 56.7-7.9-17.8-12-37.1-12-56.7l0-31.6c0-11-9-20-20-20z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M182.2 76.1L130.8 307.5C145.5 324.9 167.4 336 192 336l256 0c24.6 0 46.5-11.1 61.2-28.5L457.8 76.1c-5.7-25.8-28.6-44.1-55-44.1-12.2 0-24.1 4-33.8 11.3l-4.7 3.5c-26.3 19.7-62.4 19.7-88.6 0L271 43.3c-9.8-7.3-21.6-11.3-33.8-11.3-26.4 0-49.3 18.3-55 44.1zM64 256c0-17.7-14.3-32-32-32S0 238.3 0 256C0 362 86 448 192 448l256 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-256 0c-70.7 0-128-57.3-128-128z\"]\n};\nvar faFaceGrinTongueWink = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M152.2 490.1C62.5 450.2 0 360.4 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 104.4-62.5 194.2-152.2 234.1 5.3-13 8.2-27.2 8.2-42.1l0-61.7c16.9-16.5 30.1-36.7 38.3-59.3 4.3-11.8-7.7-21.8-19.6-18.1-39.2 12.2-83.7 19.1-130.7 19.1s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 8.3 22.6 21.5 42.8 38.3 59.3l0 61.7c0 14.9 2.9 29.1 8.2 42.1zM152 212l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm184 60a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faL = {\n prefix: 'fas',\n iconName: 'l',\n icon: [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z\"]\n};\nvar faArrowDownShortWide = {\n prefix: 'fas',\n iconName: 'arrow-down-short-wide',\n icon: [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSortAmountDesc = faArrowDownShortWide;\nvar faSortAmountDownAlt = faArrowDownShortWide;\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9l67.9-67.9 67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9L112 384z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faSpoon = {\n prefix: 'fas',\n iconName: 'spoon',\n icon: [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8 0-80.2 96-160.2 192-160.2 53 0 96 43 96 96 0 96-80 192-160.2 192-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"]\n};\nvar faUtensilSpoon = faSpoon;\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [512, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M0 128l0 32 512 0 0-32c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128zm0 80L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-176-512 0zM64 360c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm144 0c0-13.3 10.7-24 24-24l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 88c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64C74.7 64 64 74.7 64 88zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm112 76l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L152 400c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20z\"]\n};\nvar faSpaghettiMonsterFlying = {\n prefix: 'fas',\n iconName: 'spaghetti-monster-flying',\n icon: [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3c-10-11.3-16-26.1-16-42.3 0-35.3 28.7-64 64-64s64 28.7 64 64-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4 7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4 10.7 11.7 16.1 13.4 19.4 13.4 2.5 0 4.3-.6 7.1-3.3 3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7 9.7-9.3 22.9-16.7 40.4-16.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7-9.7 9.3-22.9 16.7-40.4 16.7-18.5 0-32.9-8.5-44.3-18.6-3.1 4-6.6 8.3-10.5 12.7 1.4 4.3 2.8 8.5 4 12.5 .9 3 1.8 5.8 2.6 8.6 3 9.8 5.5 18.2 8.6 25.9 3.9 9.8 7.4 15.4 10.8 18.5 2.6 2.4 5.9 4.3 12.8 4.3 8.7 0 16.9-4.2 33.7-13.2 15-8 35.7-18.8 62.3-18.8 13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2-1 .6-2.1 1.1-3.2 1.7-13.1 7.1-31.6 17.1-53.1 17.1-18.4 0-33.6-6.1-45.5-17.2-11.1-10.3-17.9-23.7-22.7-36-3.6-9-6.7-19.1-9.5-28.5-16.4 12.3-36.1 23.6-58.9 31.3 3.6 10.8 8.4 23.5 14.4 36.2 7.5 15.9 16.2 30.4 25.8 40.5 9.6 10.2 17.7 13.7 24.5 13.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8-14.5-15.4-25.7-34.9-34.2-53-8-17-14.1-33.8-18.3-46.9-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9-8.5 18.1-19.8 37.6-34.2 53-14.4 15.3-34.3 28.8-59.5 28.8-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7 9.5-10.1 18.3-24.6 25.8-40.5 5.9-12.6 10.7-25.4 14.4-36.2-22.8-7.7-42.5-19-58.9-31.3-2.9 9.4-6 19.5-9.5 28.5-4.8 12.2-11.6 25.6-22.7 36-11.9 11.1-27.1 17.2-45.5 17.2-13.1 0-24.5-4.1-33.8-8.9-7.9-4-15.7-9.2-22.1-13.5l0 0-2.4-1.6c-15.3-10.2-25.8-16-37.7-16-13.3 0-24-10.7-24-24s10.7-24 24-24c28.1 0 49.6 14.2 64.3 24l2.4 1.6c6.9 4.6 12.1 8.1 17.2 10.7 5.5 2.8 9.1 3.6 12 3.6 6.8 0 10.2-1.9 12.8-4.3 3.4-3.2 7-8.8 10.8-18.5 3-7.7 5.6-16.1 8.6-25.9 .8-2.7 1.7-5.6 2.6-8.6 1.2-4 2.6-8.2 4-12.5-3.9-4.5-7.4-8.8-10.5-12.7-11.4 10.1-25.9 18.6-44.3 18.6-17.5 0-30.7-7.4-40.4-16.7-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4-2.8-2.7-4.6-3.3-7.1-3.3-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7 8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4 2.8 2.7 4.6 3.3 7.1 3.3 3.3 0 8.7-1.7 19.4-13.4 5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24 13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faPastafarianism = faSpaghettiMonsterFlying;\nvar faMartiniGlassCitrus = {\n prefix: 'fas',\n iconName: 'martini-glass-citrus',\n icon: [640, 512, [\"cocktail\"], \"f561\", \"M576 80c0-44.2-35.8-80-80-80-18 0-34.6 6-48 16l-81 0c23.6-47.4 72.5-80 129-80 79.5 0 144 64.5 144 144S575.5 224 496 224c-6.5 0-13-.4-19.3-1.3l64-74.7c1.1-1.3 2.2-2.7 3.3-4.1 19.4-14.6 32-37.8 32-64zM66.9 82.6C72.2 71.3 83.5 64 96 64l384 0c12.5 0 23.8 7.3 29.1 18.6s3.4 24.7-4.8 34.2l-184.3 215 0 116.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-116.2-184.3-215c-8.1-9.5-10-22.8-4.8-34.2zM165.6 128L288 270.8 410.4 128 165.6 128z\"]\n};\nvar faCocktail = faMartiniGlassCitrus;\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [512, 512, [128226, 128363], \"f0a1\", \"M461.2 18.9C472.7 24 480 35.4 480 48l0 416c0 12.6-7.3 24-18.8 29.1s-24.8 3.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0 95.7c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96C57.3 384 0 326.7 0 256S57.3 128 128 128l84.5 0c61.8-.2 121.4-22.7 167.9-63.3l46.6-40.7c9.4-8.3 22.9-10.2 34.3-5.1zM224 320l0 .2c70.3 2.7 137.8 28.5 192 73.4l0-275.3c-54.2 44.9-121.7 70.7-192 73.4L224 320z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M103.9 32l161 0c13.8 0 26 8.8 30.4 21.9l17.4 52.2c4.4 13.1 16.6 21.9 30.4 21.9l60.5 0c21.8 0 37.3 21.4 30.4 42.1L384 320 128 320 72.7 70.9C68.2 51 83.4 32 103.9 32zM48 256l16.6 0 16.5 74.4C86 352.4 105.5 368 128 368l256 0c20.7 0 39-13.2 45.5-32.8l26.4-79.2 8.1 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 304c0-26.5 21.5-48 48-48z\"]\n};\nvar faMattressPillow = {\n prefix: 'fas',\n iconName: 'mattress-pillow',\n icon: [576, 512, [], \"e525\", \"M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm48 384l208 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-208 0 0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [9001], \"f053\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M448 0c-68.6 0-127.1 43.1-149.8 103.8 17.1 14.1 29.6 33.5 34.9 55.8 39.9 21.7 66.9 63.9 66.9 112.5 0 13.5-2.1 26.5-5.9 38.7 16.9 6 35 9.3 53.9 9.3 43 0 82.1-17 110.8-44.6 4.6-4.4 5.9-11.2 3.3-17s-8.6-9.3-14.9-8.8c-3 .2-6.1 .4-9.2 .4-63.5 0-115-51.5-115-115 0-45.1 26-84.2 63.8-103 5.7-2.8 9-8.9 8.2-15.2S489.6 5.3 483.4 3.9C472 1.4 460.2 0 448 0zM272 352c44.2 0 80-35.8 80-80 0-39-27.9-71.5-64.8-78.6 .5-3.1 .8-6.2 .8-9.4 0-30.9-25.1-56-56-56-12.4 0-23.9 4-33.1 10.8-13.4-25.5-40.1-42.8-70.9-42.8-44.2 0-80 35.8-80 80 0 7.4 1 14.6 2.9 21.5-29.8 11.6-50.9 40.6-50.9 74.5 0 44.2 35.8 80 80 80l192 0zM69 401.1c-12.6-4.2-26.2 2.6-30.4 15.2L17.2 480.4C13 493 19.8 506.6 32.4 510.8s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z\"]\n};\nvar faArrowDown19 = {\n prefix: 'fas',\n iconName: 'arrow-down-1-9',\n icon: [512, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M418.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM365.1 430.6l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 336a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM150.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96z\"]\n};\nvar faSortNumericAsc = faArrowDown19;\nvar faSortNumericDown = faArrowDown19;\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [128406], \"f259\", \"M214.9 23.7C210.3 6.6 192.8-3.5 175.7 1.1s-27.2 22.1-22.6 39.2L206 237.8c2.5 9.2-4.5 18.2-14 18.2-6.4 0-12-4.2-13.9-10.3L134.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.1 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L411.5 247.1c-1.6 5.3-6.4 8.9-12 8.9-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L323.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"]\n};\nvar faWandMagicSparkles = {\n prefix: 'fas',\n iconName: 'wand-magic-sparkles',\n icon: [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M263.4-27L278.2 9.8 315 24.6c3 1.2 5 4.2 5 7.4s-2 6.2-5 7.4L278.2 54.2 263.4 91c-1.2 3-4.2 5-7.4 5s-6.2-2-7.4-5L233.8 54.2 197 39.4c-3-1.2-5-4.2-5-7.4s2-6.2 5-7.4L233.8 9.8 248.6-27c1.2-3 4.2-5 7.4-5s6.2 2 7.4 5zM110.7 41.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7L59.8 164.2 9.7 142.7C3.8 140.2 0 134.4 0 128s3.8-12.2 9.7-14.7L59.8 91.8 81.3 41.7C83.8 35.8 89.6 32 96 32s12.2 3.8 14.7 9.7zM464 304c6.4 0 12.2 3.8 14.7 9.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7l-21.5-50.1-50.1-21.5c-5.9-2.5-9.7-8.3-9.7-14.7s3.8-12.2 9.7-14.7l50.1-21.5 21.5-50.1c2.5-5.9 8.3-9.7 14.7-9.7zM460 0c11 0 21.6 4.4 29.5 12.2l42.3 42.3C539.6 62.4 544 73 544 84s-4.4 21.6-12.2 29.5l-88.2 88.2-101.3-101.3 88.2-88.2C438.4 4.4 449 0 460 0zM44.2 398.5L308.4 134.3 409.7 235.6 145.5 499.8C137.6 507.6 127 512 116 512s-21.6-4.4-29.5-12.2L44.2 457.5C36.4 449.6 32 439 32 428s4.4-21.6 12.2-29.5z\"]\n};\nvar faMagicWandSparkles = faWandMagicSparkles;\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM217.6 153.6c0-10.6 8.6-19.2 19.2-19.2l38.4 0c10.6 0 19.2 8.6 19.2 19.2l0 48 48 0c10.6 0 19.2 8.6 19.2 19.2l0 38.4c0 10.6-8.6 19.2-19.2 19.2l-48 0 0 48c0 10.6-8.6 19.2-19.2 19.2l-38.4 0c-10.6 0-19.2-8.6-19.2-19.2l0-48-48 0c-10.6 0-19.2-8.6-19.2-19.2l0-38.4c0-10.6 8.6-19.2 19.2-19.2l48 0 0-48z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [576, 512, [128277, 61943], \"f1f6\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.5-87.5c17.2-2.4 30.5-17.3 30.5-35.2 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C464.4 308.5 448 261.8 448 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 3.2c-38.6 7.8-72.2 29.6-95.2 59.7L41-24.9zm87 238.5c0 48.1-16.4 94.8-46.4 132.4l-9.8 12.2c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l235.3 0-206.9-206.9 0 4.5zM288 512c29.8 0 54.9-20.4 62-48l-124 0c7.1 27.6 32.2 48 62 48z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [576, 512, [57439, \"handshake-alt-slash\", \"handshake-simple-slash\"], \"e060\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-288-288 14.2-14.2c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1l-55.8 62.1-34-34 44.3-49.2-39.7 0c-15.3 0-30.1 3.6-43.5 10.4L41-24.9zM0 69.8L0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c22.2 0 43.8-5.8 62.8-16.4L0 69.8z\"]\n};\nvar faHandshakeAltSlash = faHandshakeSlash;\nvar faHandshakeSimpleSlash = faHandshakeSlash;\nvar faBottleWater = {\n prefix: 'fas',\n iconName: 'bottle-water',\n icon: [320, 512, [], \"e4c5\", \"M112-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0C94.3 32 80 17.7 80 0s14.3-32 32-32zM16 144c0-35.3 28.7-64 64-64l160 0c35.3 0 64 28.7 64 64 0 24.1-13.3 45.1-33 56 19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56 0 35.3-28.7 64-64 64L80 544c-35.3 0-64-28.7-64-64 0-24.1 13.3-45.1 33-56-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [512, 512, [], \"f6cf\", \"M224.4-8.2c19.6-11.1 43.6-11.1 63.1 0l192 108.8c20 11.4 32.4 32.6 32.4 55.7l0 215.6c0 23-12.4 44.3-32.4 55.7l-192 108.8c-19.6 11.1-43.6 11.1-63.1 0L32.4 427.5C12.4 416.1 0 394.8 0 371.8L0 156.2c0-23 12.4-44.3 32.4-55.7L224.4-8.2zm52 73.2C267 49.8 245 49.8 235.6 65l-76.6 123.7-85.4-46.3-3.8-1.6c-8.9-2.7-18.8 1.1-23.4 9.6s-2.4 18.9 4.7 24.8l3.3 2.3 83.4 45.2-74.6 120.6C55.3 356.2 61 373 75 378.4l161 61.9 0 39.7c0 11 9 20 20 20s20-9 20-20l0-39.7 161-61.9c14-5.4 19.7-22.2 11.8-35l-74.7-120.6 83.4-45.2c9.7-5.3 13.3-17.4 8.1-27.1s-17.4-13.3-27.1-8.1L353 188.7 276.4 65zm-47 329.9l-122-46.9 54.5-88.1 67.5 135zM404.6 348l-122 46.9 67.5-135 54.5 88.1zM319.3 232L256 358.6 192.7 232 319.3 232zM308 192l-104.1 0 52-84 52 84z\"]\n};\nvar faArrowDownZA = {\n prefix: 'fas',\n iconName: 'arrow-down-z-a',\n icon: [512, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM288 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 160 448 160c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L370.8 96 320 96c-17.7 0-32-14.3-32-32zM412.6 273.7l80 160c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l80-160c5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 359.6l-20.2 40.4 40.4 0-20.2-40.4z\"]\n};\nvar faSortAlphaDesc = faArrowDownZA;\nvar faSortAlphaDownAlt = faArrowDownZA;\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48l0 208 384 0 0-208c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 304l0 16c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-16-384 0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faPersonWalkingDashedLineArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-dashed-line-arrow-right',\n icon: [640, 512, [], \"e553\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM432 8c0-13.3-10.7-24-24-24S384-5.3 384 8l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zm0 128c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM408 320c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM609 273c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"]\n};\nvar faArrowUpShortWide = {\n prefix: 'fas',\n iconName: 'arrow-up-short-wide',\n icon: [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faSortAmountUpAlt = faArrowUpShortWide;\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [\"grid-vertical\"], \"f58e\", \"M128 40c0-22.1-17.9-40-40-40L40 0C17.9 0 0 17.9 0 40L0 88c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM0 424l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 40c0-22.1-17.9-40-40-40L232 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM192 232l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 424c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z\"]\n};\nvar faGridVertical = faGripVertical;\nvar faCarTunnel = {\n prefix: 'fas',\n iconName: 'car-tunnel',\n icon: [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-113.1c0-13.5 3.1-26.8 9-38.9l39.7-80.8c9.4-19.1 28.9-31.3 50.2-31.3L317 224c21.3 0 40.8 12.1 50.2 31.3L407 336c5.9 12.1 9 25.4 9 38.9L416 488c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-24-192 0 0 24c0 9.6-4.2 18.1-10.8 24l213.7 0zm-175-235.5l-29.3 59.5 194.9 0-29.3-59.5c-1.3-2.7-4.1-4.5-7.2-4.5L195 272c-3 0-5.8 1.7-7.2 4.5zM176 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm184-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faChartColumn = {\n prefix: 'fas',\n iconName: 'chart-column',\n icon: [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM144 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm144-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm80 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM512 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCapricorn = {\n prefix: 'fas',\n iconName: 'capricorn',\n icon: [576, 512, [], \"e848\", \"M240 32c79.5 0 144 64.5 144 144l0 65.2c18.8-10.9 40.7-17.2 64-17.2 70.7 0 128 57.3 128 128S518.7 480 448 480c-35.8 0-68.2-14.7-91.4-38.4-28.8 42.5-77.4 70.4-132.6 70.4-17.7 0-32-14.3-32-32s14.3-32 32-32c53 0 96-43 96-96l0-176c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 208c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-35.3-28.7-64-64-64-17.7 0-32-14.3-32-32S14.3 32 32 32C72.6 32 108.8 51 132.2 80.5 158.6 50.7 197.1 32 240 32zM448 288a64 64 0 1 0 0 128 64 64 0 1 0 0-128z\"]\n};\nvar faTruckArrowRight = {\n prefix: 'fas',\n iconName: 'truck-arrow-right',\n icon: [576, 512, [], \"e58b\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM305 225l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [576, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 96l0 240 448 0 0-240-448 0zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64L64 400c-35.3 0-64-28.7-64-64L0 96zM160 448l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faTelevision = faTv;\nvar faTvAlt = faTv;\nvar faSection = {\n prefix: 'fas',\n iconName: 'section',\n icon: [256, 512, [], \"e447\", \"M110 0C49.2 0 0 49.2 0 110 0 133.7 7.6 155.8 20.5 174 7.6 192 0 214.1 0 238 0 291.7 38.9 337.6 91.9 346.4l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 25.4-20.6 46-46 46l-98 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l98 0c60.7 0 110-49.2 110-110 0-23.7-7.6-45.9-20.5-64 12.9-18 20.5-40.1 20.5-64 0-53.8-38.9-99.6-91.9-108.5l-61.7-10.3C80.2 151.6 64 132.4 64 110 64 84.6 84.6 64 110 64l98 0c17.7 0 32-14.3 32-32S225.7 0 208 0L110 0zm74.7 299.1c-6.5-2.4-13.4-4.3-20.5-5.5l-61.7-10.3c-22.2-3.7-38.4-22.9-38.4-45.3 0-9.2 2.7-17.8 7.4-25 6.5 2.4 13.4 4.3 20.5 5.5l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 9.2-2.7 17.8-7.4 25z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [512, 512, [9774], \"f67c\", \"M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8 224 66.7c-90.8 15.2-160 94.2-160 189.3 0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5l-94.3-77.1 0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1 0-95.1-69.2-174.1-160-189.3l0 174.2 134.8 110.3zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-121.6 62.7-18.8c41.9-12.6 87.1-8.7 126.2 10.9 42.7 21.4 92.5 24 137.2 7.2l37.1-13.9c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-11.8 5.9c-44.9 22.5-97.8 22.5-142.8 0-36.4-18.2-78.3-21.8-117.2-10.1L64 54.4 64 32z\"]\n};\nvar faTriangleExclamation = {\n prefix: 'fas',\n iconName: 'triangle-exclamation',\n icon: [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"]\n};\nvar faExclamationTriangle = faTriangleExclamation;\nvar faWarning = faTriangleExclamation;\nvar faSchoolCircleExclamation = {\n prefix: 'fas',\n iconName: 'school-circle-exclamation',\n icon: [640, 512, [], \"e56c\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [576, 512, [127891, \"mortar-board\"], \"f19d\", \"M48 195.8l209.2 86.1c9.8 4 20.2 6.1 30.8 6.1s21-2.1 30.8-6.1l242.4-99.8c9-3.7 14.8-12.4 14.8-22.1s-5.8-18.4-14.8-22.1L318.8 38.1C309 34.1 298.6 32 288 32s-21 2.1-30.8 6.1L14.8 137.9C5.8 141.6 0 150.3 0 160L0 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-260.2zm48 71.7L96 384c0 53 86 96 192 96s192-43 192-96l0-116.6-142.9 58.9c-15.6 6.4-32.2 9.7-49.1 9.7s-33.5-3.3-49.1-9.7L96 267.4z\"]\n};\nvar faMortarBoard = faGraduationCap;\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [512, 512, [], \"f54e\", \"M30.7 72.3C37.6 48.4 59.5 32 84.4 32l344 0c24.9 0 46.8 16.4 53.8 40.3l23.4 80.2c12.8 43.7-20.1 87.5-65.6 87.5-26.3 0-49.4-14.9-60.8-37.1-11.6 21.9-34.6 37.1-61.4 37.1-26.6 0-49.7-15-61.3-37-11.6 22-34.7 37-61.3 37-26.8 0-49.8-15.1-61.4-37.1-11.4 22.1-34.5 37.1-60.8 37.1-45.6 0-78.4-43.7-65.6-87.5L30.7 72.3zM96.4 352l320 0 0-66.4c7.6 1.6 15.5 2.4 23.5 2.4 14.3 0 28-2.6 40.5-7.2l0 151.2c0 26.5-21.5 48-48 48l-352 0c-26.5 0-48-21.5-48-48l0-151.2c12.5 4.6 26.1 7.2 40.5 7.2 8.1 0 15.9-.8 23.5-2.4l0 66.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M224 336c74.6 0 138.4-46.4 164-112l4 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-4 0C362.4 30.4 298.6-16 224-16S85.6 30.4 60 96l-4 0c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l4 0c25.6 65.6 89.4 112 164 112zM208 80l32 0c53 0 96 43 96 96s-43 96-96 96l-32 0c-53 0-96-43-96-96s43-96 96-96zM16 484.6C16 499.7 28.3 512 43.4 512l52.6 0 0-48c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 48 52.6 0c15.1 0 27.4-12.3 27.4-27.4 0-59.8-31.9-112.2-79.6-141-36.4 25.5-80.6 40.4-128.4 40.4s-92-14.9-128.4-40.4C47.9 372.4 16 424.8 16 484.6zM183.3 141.5c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6-6-21.2zM152 488l0 24 48 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24zm120-24c-13.3 0-24 10.7-24 24l0 24 48 0 0-24c0-13.3-10.7-24-24-24z\"]\n};\nvar faBuildingFlag = {\n prefix: 'fas',\n iconName: 'building-flag',\n icon: [640, 512, [], \"e4d5\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 0c-17.7 0-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L496 32c0-17.7-14.3-32-32-32z\"]\n};\nvar faMugSaucer = {\n prefix: 'fas',\n iconName: 'mug-saucer',\n icon: [576, 512, [\"coffee\"], \"f0f4\", \"M64 64c0-17.7 14.3-32 32-32l352 0c70.7 0 128 57.3 128 128S518.7 288 448 288c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 64zm448 96c0-35.3-28.7-64-64-64l0 128c35.3 0 64-28.7 64-64zM64 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCoffee = faMugSaucer;\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64-6.6 0-13 1-19 2.9-22.5 7-48.1 14.9-71 9-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71-1.9 6-2.9 12.4-2.9 19 0 35.3 28.7 64 64 64 6.6 0 13-1 19.1-2.9 22.5-7 48.1-14.9 71-9 75.2 19.1 156.4-11 213.7-68.3S455.2 261.2 436.1 186c-5.8-22.9 2-48.4 9-71 1.9-6 2.9-12.4 2.9-19.1zM222.7 143c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S61.2 254 65 241.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M32 96c0-35.3 28.7-64 64-64l320 0c70.7 0 128 57.3 128 128l0 192 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zM352 352l64 0c17.7 0 32-14.3 32-32l0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 160c0 17.7 14.3 32 32 32zM160 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 336a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faQ = {\n prefix: 'fas',\n iconName: 'q',\n icon: [448, 512, [113], \"51\", \"M64 256c0 88.4 71.6 160 160 160 28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1c20.4-26.8 32.5-60.3 32.5-96.6 0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480 100.3 480 0 379.7 0 256S100.3 32 224 32 448 132.3 448 256c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [384, 512, [128274], \"f023\", \"M128 96l0 64 128 0 0-64c0-35.3-28.7-64-64-64s-64 28.7-64 64zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l16 0c44.2 0 80 35.8 80 80l0 96c0 44.2-35.8 80-80 80l-160 0c-8.8 0-16 7.2-16 16l0 18.7c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-18.7c0-44.2 35.8-80 80-80l160 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-16 0c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nvar faVolumeHigh = {\n prefix: 'fas',\n iconName: 'volume-high',\n icon: [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C557.5 113.8 592 180.8 592 256s-34.5 142.2-88.7 186.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C598.5 426.7 640 346.2 640 256S598.5 85.2 533.6 32.5zM473.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C475.3 170.7 496 210.9 496 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C393.1 227.6 400 241 400 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C434.1 312.9 448 286.1 448 256s-13.9-56.9-35.4-74.5zM80 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L128 160 80 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48z\"]\n};\nvar faVolumeUp = faVolumeHigh;\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M512 384c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240zM256 160c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [384, 512, [9791], \"f223\", \"M117-4C106-17.8 85.8-20 72.1-9s-16 31.2-5 45C74.9 45.7 83.7 54.5 93.5 62.1 46.7 93.7 16 147.3 16 208 16 294.3 78.1 366.1 160 381.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-60.7-30.7-114.3-77.5-145.9 9.8-7.7 18.7-16.4 26.4-26.1 11.1-13.8 8.8-33.9-5-45S278-17.8 267-4c-17.6 22-44.7 36-75 36S134.7 18 117-4zm75 324c-61.9 0-112-50.1-112-112S130.1 96 192 96 304 146.1 304 208c0 61.8-50.1 112-111.9 112l-.1 0z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [9875], \"f13d\", \"M288 64a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM192 96c0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 257.9c62.9-14.3 110.2-69.7 111.9-136.5l-16.1 14.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3L496 307.9C493.9 421 401.6 512 288 512S82.1 421 80 307.9L63.8 322.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3l-16.1-14.1c1.8 66.8 49.1 122.2 111.9 136.5l0-257.9c-37.3-13.2-64-48.7-64-90.5z\"]\n};\nvar faSquareParking = {\n prefix: 'fas',\n iconName: 'square-parking',\n icon: [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-184c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z\"]\n};\nvar faParking = faSquareParking;\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [128334], \"f6e6\", \"M314.2 3.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104 8 117.3 18.7 128 32 128s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176-192 0c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32S0 174.3 0 192l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z\"]\n};\nvar faRotateLeft = {\n prefix: 'fas',\n iconName: 'rotate-left',\n icon: [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M24 192l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-46.7-46.7c75.3-58.6 184.3-53.3 253.5 15.9 75 75 75 196.5 0 271.5s-196.5 75-271.5 0c-10.2-10.2-19-21.3-26.4-33-9.5-14.9-29.3-19.3-44.2-9.8s-19.3 29.3-9.8 44.2C49.7 408.7 61.4 423.5 75 437 175 537 337 537 437 437S537 175 437 75C342.8-19.3 193.3-24.7 92.7 58.8L41 7C34.1 .2 23.8-1.9 14.8 1.8S0 14.3 0 24L0 168c0 13.3 10.7 24 24 24z\"]\n};\nvar faRotateBack = faRotateLeft;\nvar faRotateBackward = faRotateLeft;\nvar faUndoAlt = faRotateLeft;\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 320 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-320-16 0C14.3 96 0 81.7 0 64z\"]\n};\nvar faHeader = faHeading;\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [576, 512, [], \"f05b\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM131.2 288c12.7 62.7 62.1 112.1 124.8 124.8l0-12.8c0-17.7 14.3-32 32-32s32 14.3 32 32l0 12.8c62.7-12.7 112.1-62.1 124.8-124.8L432 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l12.8 0C432.1 161.3 382.7 111.9 320 99.2l0 12.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-12.8C193.3 111.9 143.9 161.3 131.2 224l12.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-12.8 0zM288 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCircleNodes = {\n prefix: 'fas',\n iconName: 'circle-nodes',\n icon: [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9 0-44.2-35.8-80-80-80-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128 35.8 128 0 163.8 0 208s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [576, 512, [], \"f2d2\", \"M512 96L160 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-64 48 0 0-192zM0 224c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224zm64 40c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 240c-13.3 0-24 10.7-24 24z\"]\n};\nvar faR = {\n prefix: 'fas',\n iconName: 'r',\n icon: [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0 102.4 146.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176 320 96.5 255.5 32 176 32L32 32zM176 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faFilterCircleXmark = {\n prefix: 'fas',\n iconName: 'filter-circle-xmark',\n icon: [576, 512, [], \"e17b\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 136c26.5 0 48 21.5 48 48l0 80c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-48 0 0-224-32 0 0-128-48 0 0 128 32 0 0 224-224 0 0-224 32 0 0-128-48 0 0 128-32 0 0 224-48 0c-26.5 0-48-21.5-48-48L0 336c0-26.5 21.5-48 48-48l0-80c0-26.5 21.5-48 48-48L96 24c0-13.3 10.7-24 24-24zM256 208c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zM208 400l0 64 96 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48zM256 96c-17.7 0-32 14.3-32 32l0 32 64 0 0-32c0-17.7-14.3-32-32-32z\"]\n};\nvar faHeartCircleMinus = {\n prefix: 'fas',\n iconName: 'heart-circle-minus',\n icon: [576, 512, [], \"e4ff\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [512, 512, [], \"f621\", \"M208.5 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7l-122 70.4 122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7l-122-70.4 0 140.9c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9-122 70.4c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7l122-70.4-122-70.4c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7c8.8-15.3 28.4-20.5 43.7-11.7l122 70.4 0-140.9z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [\"briefcase-clock\"], \"f64a\", \"M264 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0c-35.3 0-64 28.7-64 64l0 96 305 0c33.8-29.9 78.3-48 127-48 28.6 0 55.6 6.2 80 17.4l0-65.4c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L264 0c-30.9 0-56 25.1-56 56zm80 296c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l193.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-16.6 2.1-32.7 6-48l-22 0zm352 48a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 320c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z\"]\n};\nvar faBriefcaseClock = faBusinessTime;\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [512, 512, [129519], \"f134\", \"M512 32c0-9.6-4.3-18.7-11.7-24.7S483.1-1.3 473.7 .6l-160 32C301.5 35.1 292 44.3 289 56l-65 0 0-24c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32l0 28.4c-55.3 12.3-101.3 49.5-125.5 99.1-5.8 11.9-.9 26.3 11.1 32.1s26.3 .9 32.1-11.1C62 146.9 91.8 121.1 128 110l0 28.8c-37.8 18-64 56.5-64 101.2l0 128 224 0 0-128c0-44.7-26.2-83.2-64-101.2l0-34.8 65 0c3 11.7 12.5 20.9 24.7 23.4l160 32c9.4 1.9 19.1-.6 26.6-6.6S512 137.6 512 128l0-96zM288 448l0-32-224 0 0 32c0 35.3 28.7 64 64 64l96 0c35.3 0 64-28.7 64-64z\"]\n};\nvar faArrowDownLong = {\n prefix: 'fas',\n iconName: 'arrow-down-long',\n icon: [320, 512, [\"long-arrow-down\"], \"f175\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 434.7 192 0c0-17.7-14.3-32-32-32S128-17.7 128 0l0 434.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"]\n};\nvar faLongArrowDown = faArrowDownLong;\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M285.7 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3 48 383.8 127.8 304 226.3 304l59.4 0zM256 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm344-96c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [512, 512, [], \"f53c\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM96 312c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zm24-136c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z\"]\n};\nvar faHouseLaptop = {\n prefix: 'fas',\n iconName: 'house-laptop',\n icon: [640, 512, [\"laptop-house\"], \"e066\", \"M448 240l19.9 0c15.5 0 28.1-12.6 28.1-28.1 0-7.6-3.1-14.9-8.6-20.2L283.5-4.9C276.1-12 266.3-16 256-16s-20.1 4-27.5 11.1L24.6 191.7C19.1 197 16 204.3 16 211.9 16 227.4 28.6 240 44.1 240l19.9 0 0 144c0 35.3 28.7 64 64 64l85.7 0c7.4-6.6 16.4-11.4 26.3-14l0-130c0-5.5 .7-10.9 2-16l-10 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24 144 0zM352 352l160 0 0 128-160 0 0-128zm-64-32l0 160-32 0c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l288 0c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16l-32 0 0-160c0-17.7-14.3-32-32-32l-224 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faLaptopHouse = faHouseLaptop;\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [448, 512, [], \"f019\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 242.7 256 32zM64 320c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-46.9 0-56.6 56.6c-31.2 31.2-81.9 31.2-113.1 0L110.9 320 64 320zm304 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faSagittarius = {\n prefix: 'fas',\n iconName: 'sagittarius',\n icon: [448, 512, [], \"e84d\", \"M416 32c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.8-146.8 146.8 41.4 41.4c12.5 12.5 12.5 32.8 0 45.2s-32.8 12.5-45.3 0L192 333.3 54.6 470.6c-12.5 12.5-32.8 12.5-45.2 0s-12.5-32.8 0-45.2L146.8 288 105.4 246.6c-12.5-12.5-12.5-32.8 0-45.2s32.8-12.5 45.2 0L192 242.8 338.8 96 256 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M144 272C144 224.7 109.8 185.4 64.8 177.5 72 113.6 126.2 64 192 64l256 0c65.8 0 120 49.6 127.2 113.5-45 8-79.2 47.2-79.2 94.5l0 32-352 0 0-32zM0 384L0 272c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 448 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64z\"]\n};\nvar faRoadLock = {\n prefix: 'fas',\n iconName: 'road-lock',\n icon: [576, 512, [], \"e567\", \"M256 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L33.4 420.5C25.9 450.7 48.8 480 80 480l175.9 0 0-64c0-17.7 14.3-32 32-32 6.1 0 11.8 1.7 16.7 4.7 2.8-23.9 14.3-45.1 31.4-60.3l0-24.4c0-70.7 57.3-128 128-128 6.2 0 12.4 .4 18.4 1.3L458.5 80.6C451.4 52.1 425.8 32 396.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 80.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM352 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faScissors = {\n prefix: 'fas',\n iconName: 'scissors',\n icon: [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6-28.3-28.3-74.1-28.3-102.4 0L256 192 216.5 152.5c4.9-12.6 7.5-26.2 7.5-40.5 0-61.9-50.1-112-112-112S0 50.1 0 112 50.1 224 112 224c14.3 0 27.9-2.7 40.5-7.5L192 256zm97.9 97.9L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0 7.1-7.1 7.1-18.5 0-25.6l-145.3-145.3-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCut = faScissors;\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [576, 512, [], \"f188\", \"M192 96c0-53 43-96 96-96s96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6zm345.6 12.8c10.6 14.1 7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 2.6-.1 5.3-.2 7.9l83.4 62.5c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4l-63.1-47.3c-23.2 44.2-66.5 76.2-117.7 83.9L312 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 230.2c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c2.5-10.4 6.5-20.2 11.8-29.1L44.8 153.6c-14.1-10.6-17-30.7-6.4-44.8s30.7-17 44.8-6.4L192 184c12.3-5.1 25.8-8 40-8l112 0c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4z\"]\n};\nvar faArrowRightFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-from-bracket',\n icon: [512, 512, [\"sign-out\"], \"f08b\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0zM502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignOut = faArrowRightFromBracket;\nvar faHandHoldingHand = {\n prefix: 'fas',\n iconName: 'hand-holding-hand',\n icon: [576, 512, [], \"e4f7\", \"M466.8 186.5l42.5-42.5 34.7 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L223.6 16c-29 0-57.3 9.3-80.7 26.5L16.3 135.8c-17.8 13.1-21.6 38.1-8.5 55.9s38.1 21.6 55.9 8.5L183.4 112 296 112c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l152.2 0c33.9 0 66.5-13.5 90.5-37.5zm-357.5 139L66.7 368 32 368c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 400 280 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3-33.9-33.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm67.9 67.9l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zM278.6 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm22.6-67.9l-45.3 45.3-45.3-45.3 45.3-45.3 45.3 45.3z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [320, 512, [], \"f1ae\", \"M96 64A64 64 0 1 1 224 64 64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L80 287.8 59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16 0-79.5-64.5-144-144-144S48 64.5 48 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l288 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM64 304L169.2 529.5c4.1 8.8 13 14.5 22.8 14.5s18.6-5.7 22.8-14.5L320 304 64 304z\"]\n};\nvar faComputerMouse = {\n prefix: 'fas',\n iconName: 'computer-mouse',\n icon: [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192l168 0 0-192-8 0C71.6 0 0 71.6 0 160l0 32zm0 48L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-112-384 0zm384-48l0-32C384 71.6 312.4 0 224 0l-8 0 0 192 168 0z\"]\n};\nvar faMouse = faComputerMouse;\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M192 64c0-17.7 14.3-32 32-32s32 14.3 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 64 18.7 0c8.5 0 16.6 3.4 22.6 9.4l22.6 22.6 32 0c88.4 0 160 71.6 160 160 0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-64-96 0c-17.7 0-32-14.3-32-32S78.3 64 96 64l96 0z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [448, 512, [], \"f559\", \"M245.9-25.9c-13.4-8.2-30.3-8.2-43.7 0-24.4 14.9-39.5 18.9-68.1 18.3-15.7-.4-30.3 8.1-37.9 21.9-13.7 25.1-24.8 36.2-49.9 49.9-13.8 7.5-22.2 22.2-21.9 37.9 .7 28.6-3.4 43.7-18.3 68.1-8.2 13.4-8.2 30.3 0 43.7 14.9 24.4 18.9 39.5 18.3 68.1-.4 15.7 8.1 30.3 21.9 37.9 22.1 12.1 33.3 22.1 45.1 41.5L42.7 458.5c-5.9 11.9-1.1 26.3 10.7 32.2l86 43c11.5 5.7 25.5 1.4 31.7-9.8l52.8-95.1 52.8 95.1c6.2 11.2 20.2 15.6 31.7 9.8l86-43c11.9-5.9 16.7-20.3 10.7-32.2l-48.6-97.2c11.7-19.4 23-29.4 45.1-41.5 13.8-7.5 22.2-22.2 21.9-37.9-.7-28.6 3.4-43.7 18.3-68.1 8.2-13.4 8.2-30.3 0-43.7-14.9-24.4-18.9-39.5-18.3-68.1 .4-15.7-8.1-30.3-21.9-37.9-25.1-13.7-36.2-24.8-49.9-49.9-7.5-13.8-22.2-22.2-37.9-21.9-28.6 .7-43.7-3.4-68.1-18.3zM224 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faPersonDrowning = {\n prefix: 'fas',\n iconName: 'person-drowning',\n icon: [640, 512, [], \"e545\", \"M264 88a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM133.9 65.6c16.8-5.6 34.9 3.5 40.5 20.2l10.9 32.8c9.4 28.3 33.2 49.5 62.5 55.6 5.6 1.2 11.3 1.8 17.1 1.8l88 0c17.2 0 34.3-2.8 50.6-8.2l114.4-38.1c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L423.7 228.5c-8.4 2.8-17 5.1-25.7 6.9l-26.5 88.3c-6.1 3.4-12.1 7.3-17.9 11.7-22.1 16.6-29.1 16.6-51.2 0-26.2-19.7-56.9-30.2-87.8-31.3l20.2-67.2c-51.5-10.7-93.5-48.1-110.2-98l-10.9-32.8c-5.6-16.8 3.5-34.9 20.2-40.5zM403.4 412.1C379.1 430.3 351.1 448 320 448s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faCameraRotate = {\n prefix: 'fas',\n iconName: 'camera-rotate',\n icon: [512, 512, [], \"e0d8\", \"M138.7 96l10.4-31.2C155.6 45.2 173.9 32 194.6 32l122.8 0c20.7 0 39 13.2 45.5 32.8L373.3 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l74.7 0zM96 305.9c0 3.9 1.4 7.7 4 10.6l48 54c6.4 7.2 17.6 7.2 23.9 0l48-54c2.6-2.9 4-6.7 4-10.6l0-1.9c0-8.8-7.2-16-16-16l-24 0c0-39.8 32.2-72 72-72 4.4 0 8.7 .4 12.9 1.2l34.9-39.3c-14.6-6.4-30.8-9.9-47.8-9.9-66.3 0-120 53.7-120 120l-24 0c-8.8 0-16 7.2-16 16l0 1.9zm196-46.5c-2.6 2.9-4 6.7-4 10.6l0 1.9c0 8.8 7.2 16 16 16l24 0c0 39.8-32.2 72-72 72-4.4 0-8.7-.4-12.9-1.2l-34.9 39.3c14.7 6.4 30.8 9.9 47.8 9.9 66.3 0 120-53.7 120-120l24 0c8.8 0 16-7.2 16-16l0-1.9c0-3.9-1.4-7.7-4-10.6l-48-54c-6.4-7.2-17.6-7.2-23.9 0l-48 54z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'fas',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256 0-23.3-3.1-45.9-8.9-67.3 5.5-13.5 8.9-28.4 8.9-44.7 0-53-43-96-96-96l-2.9 0c-2.5 0-5 .1-7.4 .3-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c-2.5-.2-4.9-.3-7.4-.3L96 48c-53 0-96 43-96 96 0 16.3 3.5 31.2 8.9 44.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM322.9 96c13.5 0 26.5 5.4 36 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0zm-188 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0c13.5 0 26.5 5.4 36 14.9z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faFileFragment = {\n prefix: 'fas',\n iconName: 'file-fragment',\n icon: [384, 512, [], \"e697\", \"M64 0C28.7 0 0 28.7 0 64l0 240 128 0c44.2 0 80 35.8 80 80l0 128 112 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM32 352c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0z\"]\n};\nvar faPersonMilitaryRifle = {\n prefix: 'fas',\n iconName: 'person-military-rifle',\n icon: [448, 512, [], \"e54b\", \"M128 39c0-13 10-23.8 22.9-24.9L302.7 1.4C312 .7 320 8 320 17.4L320 48c0 8.8-7.2 16-16 16L153 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L320 369.7 320 480c0 1.3-.1 2.5-.2 3.8L145.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L389.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l27.7 16c7.7 4.4 10.3 14.2 5.9 21.9l-55.5 96.1 1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L360.7 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM288 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1S-5.7 438.7 5.6 419.7L81.7 290.8c9.4-15.8 21.7-29.3 36-40L299.1 510c-3.5 1.3-7.2 2-11.1 2zM264 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192S490 64 384 64L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [576, 512, [], \"e067\", \"M288 0c-17.7 0-32 14.3-32 32l0 151.3c9.6-4.8 20.5-7.5 32-7.5s22.4 2.7 32 7.5L320 32c0-17.7-14.3-32-32-32zM450.1 451c8 18.3 8.1 39.2 .2 57.5 10.2 2.3 20.6 3.5 31.2 3.5 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 139.9c1.2 2.2 2.2 4.6 3.1 6.9 26.4-11.6 58.3-6.6 79.9 15s26.6 53.6 15 79.9C477 327.2 496 353.3 496 383.8s-19 56.7-45.9 67.1zM220.9 221.8c.9-2.4 2-4.7 3.1-6.9l0-138.5c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 10.5 0 21-1.2 31.2-3.5-7.9-18.3-7.8-39.3 .2-57.5-26.9-10.4-45.9-36.6-45.9-67.1s19-56.7 45.9-67.1c-11.6-26.4-6.6-58.3 15-79.9s53.6-26.6 79.9-15zM152 408c28.8 0 43.2 34.8 22.9 55.2-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-20.4-20.4-5.9-55.2 22.9-55.2 13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-20.4 20.4-55.2 5.9-55.2-22.9 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-80a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faTableTennisPaddleBall = {\n prefix: 'fas',\n iconName: 'table-tennis-paddle-ball',\n icon: [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M97 127l67.4-67.4c38.2-38.2 90-59.6 144-59.6 112.5 0 203.7 91.2 203.7 203.6 0 46.4-15.8 91.1-44.5 127-23.6-16.8-52.4-26.7-83.5-26.7-31.1 0-59.9 9.9-83.4 26.6L97 127zM240 448c0 9.7 1 19.1 2.8 28.2-19.8-5.2-38-15.5-52.7-30.2-12.2-12.2-31.9-12.2-44.1 0L96.6 495.4c-10.6 10.6-25 16.6-40 16.6-31.2 0-56.6-25.3-56.6-56.6 0-15 6-29.4 16.6-40l49.4-49.4c12.2-12.2 12.2-31.9 0-44.1-21.7-21.7-33.9-51.2-33.9-81.9 0-29.4 11.1-57.6 31.1-79L266.6 364.6C249.9 388.1 240 416.9 240 448zm144-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faPingPongPaddleBall = faTableTennisPaddleBall;\nvar faTableTennis = faTableTennisPaddleBall;\nvar faBoxesPacking = {\n prefix: 'fas',\n iconName: 'boxes-packing',\n icon: [576, 512, [], \"e4c7\", \"M208 0l80 0 0 56c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-56 80 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-108.8 0c8.2-14.1 12.8-30.5 12.8-48l0-160c10-13.4 16-30 16-48l0-32c0-44.2-35.8-80-80-80l-176 0 0-96c0-26.5 21.5-48 48-48zM32 336l320 0 0 128c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-128zM48 192l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z\"]\n};\nvar faPersonChalkboard = {\n prefix: 'fas',\n iconName: 'person-chalkboard',\n icon: [640, 512, [], \"e53d\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM176 512l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-48 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 64-122.7 0c-45.6 0-88.5 21.6-115.6 58.2L14.3 260.9c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faArrowRightArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-right-arrow-left',\n icon: [512, 512, [8644, \"exchange\"], \"f0ec\", \"M502.6 150.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L402.7 160 32 160c-17.7 0-32-14.3-32-32S14.3 96 32 96l370.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 352 480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-370.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faExchange = faArrowRightArrowLeft;\nvar faFootball = {\n prefix: 'fas',\n iconName: 'football',\n icon: [512, 512, [127944, \"football-ball\"], \"f44e\", \"M261.1 22.6c-89 18-150.5 63.4-190 123.9-23.3 35.6-38.1 75.3-46.7 115.5L251.9 489.4c89-18 150.5-63.4 190.1-123.9 23.3-35.6 38.1-75.3 46.7-115.5L261.1 22.6zm236 168.1c3.2-42.3 .7-83.3-4.8-118.7-4.4-27.8-26.8-48-53.1-51.6-43-5.9-82.2-7.5-117.8-5.4L497.1 190.6zM191.7 497.1L15.9 321.4c-3.2 42.3-.7 83.3 4.8 118.7 4.4 27.8 26.8 48 53.1 51.6 43 5.9 82.2 7.5 117.8 5.4zM271.5 143c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faFootballBall = faFootball;\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [576, 512, [], \"f63b\", \"M336 96l48 64-128 0 0-64 80 0zm128 64L387.2 57.6C375.1 41.5 356.1 32 336 32L224 32c-17.7 0-32 14.3-32 32l0 96-144 0c-26.5 0-48 21.5-48 48l0 64c0 18.1 10.1 33.9 24.9 42.1-.5 5.7 1.1 11.6 4.7 16.4-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.3 31.3l11.3 11.3c8.6 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.7-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.3-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 2.4-3.2 3.9-6.8 4.5-10.5l114.2 0c.6 3.7 2.1 7.3 4.5 10.5-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.2 31.3l11.3 11.3c8.5 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.8-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.2-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 3.6-4.8 5.2-10.7 4.7-16.4 14.8-8.2 24.9-23.9 24.9-42.1l0-64c0-26.5-21.5-48-48-48l-64 0zM128 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [448, 512, [10033, 61545], \"2a\", \"M224 0c17.7 0 32 14.3 32 32l0 168.6 144-83.1c15.3-8.8 34.9-3.6 43.7 11.7s3.6 34.9-11.7 43.7L288 256 432 339.1c15.3 8.8 20.6 28.4 11.7 43.7s-28.4 20.6-43.7 11.7L256 311.4 256 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-168.6-144 83.1c-15.3 8.8-34.9 3.6-43.7-11.7S.7 348 16 339.1L160 256 16 172.9C.7 164-4.5 144.5 4.3 129.1S32.7 108.6 48 117.4L192 200.6 192 32c0-17.7 14.3-32 32-32z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l304 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-304 0z\"]\n};\nvar faBattery = faBatteryFull;\nvar faBattery5 = faBatteryFull;\nvar faChildDress = {\n prefix: 'fas',\n iconName: 'child-dress',\n icon: [320, 512, [], \"e59c\", \"M224 64A64 64 0 1 0 96 64 64 64 0 1 0 224 64zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.7 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2L86.2 285.5 55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z\"]\n};\nvar faFaceKissBeam = {\n prefix: 'fas',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faTrashCanArrowUp = {\n prefix: 'fas',\n iconName: 'trash-can-arrow-up',\n icon: [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTrashRestoreAlt = faTrashCanArrowUp;\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [512, 512, [], \"f031\", \"M285.1 50.7C279.9 39.3 268.5 32 256 32s-23.9 7.3-29.1 18.7L59.5 416 48 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-6.1 0 22-48 208.3 0 22 48-6.1 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0-167.4-365.3zM330.8 304L181.2 304 256 140.8 330.8 304z\"]\n};\nvar faBoreHole = {\n prefix: 'fas',\n iconName: 'bore-hole',\n icon: [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32l0 232.6c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM0 384l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-272c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48l0 144c0 61.9-50.1 112-112 112S144 381.9 144 320l0-144c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48L0 384z\"]\n};\nvar faVirusCovid = {\n prefix: 'fas',\n iconName: 'virus-covid',\n icon: [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-11.3-11.3-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3l23.8 23.8 11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l11.3-11.3-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1l-23.8 23.8 11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l11.3 11.3 23.8-23.8C97.9 338.8 85.8 310.7 81.6 280l-33.6 0 0 16c0 13.3-10.7 24-24 24S0 309.3 0 296l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92 149.7 115.7c23.5-17.9 51.7-29.9 82.3-34.1l0-33.6-16 0c-13.3 0-24-10.7-24-24zm32 200a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [576, 512, [], \"f1c1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM240 380c-11 0-20 9-20 20l0 128c0 11 9 20 20 20s20-9 20-20l0-28 12 0c33.1 0 60-26.9 60-60s-26.9-60-60-60l-32 0zm32 80l-12 0 0-40 12 0c11 0 20 9 20 20s-9 20-20 20zm96-80c-11 0-20 9-20 20l0 128c0 11 9 20 20 20l32 0c28.7 0 52-23.3 52-52l0-64c0-28.7-23.3-52-52-52l-32 0zm20 128l0-88 12 0c6.6 0 12 5.4 12 12l0 64c0 6.6-5.4 12-12 12l-12 0zm88-108l0 128c0 11 9 20 20 20s20-9 20-20l0-44 28 0c11 0 20-9 20-20s-9-20-20-20l-28 0 0-24 28 0c11 0 20-9 20-20s-9-20-20-20l-48 0c-11 0-20 9-20 20z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [576, 512, [], \"f1ab\", \"M160 0c17.7 0 32 14.3 32 32l0 32 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-9.6 0-8.4 23.1c-16.4 45.2-41.1 86.5-72.2 122 14.2 8.8 29 16.6 44.4 23.5l50.4 22.4 62.2-140c5.1-11.6 16.6-19 29.2-19s24.1 7.4 29.2 19l128 288c7.2 16.2-.1 35.1-16.2 42.2s-35.1-.1-42.2-16.2l-20-45-157.5 0-20 45c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l39.8-89.5-50.4-22.4c-23-10.2-45-22.4-65.8-36.4-21.3 17.2-44.6 32.2-69.5 44.7L78.3 380.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l34.5-17.3c16.3-8.2 31.8-17.7 46.4-28.3-13.8-12.7-26.8-26.4-38.9-40.9L81.6 224.7c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l10.2 12.2c11.5 13.9 24.1 26.8 37.4 38.7 27.5-30.4 49.2-66.1 63.5-105.4l.5-1.2-210.3 0C14.3 128 0 113.7 0 96S14.3 64 32 64l96 0 0-32c0-17.7 14.3-32 32-32zM416 270.8L365.7 384 466.3 384 416 270.8z\"]\n};\nvar faShieldHalved = {\n prefix: 'fas',\n iconName: 'shield-halved',\n icon: [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0zm0 66.8l0 378.1c138-66.8 175.1-214.8 176-303.4l-176-74.6 0 0z\"]\n};\nvar faShieldAlt = faShieldHalved;\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M140.3 135.2c12.6-10.3 31.1-9.5 42.8 2.2l128 128c9.2 9.2 11.9 22.9 6.9 34.9S301.4 320 288.5 320l-256 0c-12.9 0-24.6-7.8-29.6-19.8S.7 274.5 9.9 265.4l128-128 2.4-2.2z\"]\n};\nvar faFilePen = {\n prefix: 'fas',\n iconName: 'file-pen',\n icon: [640, 512, [128221, \"file-edit\"], \"f31c\", \"M128.1 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l146.2 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l132.2-132.2 0-97.5c0-17-6.7-33.3-18.7-45.3L322.8 18.7C310.8 6.7 294.5 0 277.6 0L128.1 0zM389.6 176l-93.5 0c-13.3 0-24-10.7-24-24l0-93.5 117.5 117.5zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"]\n};\nvar faFileEdit = faFilePen;\nvar faPersonBiking = {\n prefix: 'fas',\n iconName: 'person-biking',\n icon: [576, 512, [128692, \"biking\"], \"f84a\", \"M368 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L256 305.1 256 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L263 232.9 323.3 184.4 364 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM112 512a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm352 0a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faBiking = faPersonBiking;\nvar faBookOpenReader = {\n prefix: 'fas',\n iconName: 'book-open-reader',\n icon: [512, 512, [\"book-reader\"], \"f5da\", \"M256 152a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm0 298.7l0-149.3c16.3-6.8 32.9-13.7 49.7-20.7 39-16.2 80.8-24.6 123.1-24.6l19.2 0 0 160-19.2 0c-59.1 0-117.7 11.7-172.3 34.5l-.5 .2zM256 232l-25.1-10.5C184.1 202 133.9 192 83.2 192L48 192c-26.5 0-48 21.5-48 48L0 432c0 26.5 21.5 48 48 48l35.2 0c50.7 0 100.9 10 147.7 29.5l12.8 5.3c7.9 3.3 16.7 3.3 24.6 0l12.8-5.3c46.8-19.5 97-29.5 147.7-29.5l35.2 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-35.2 0c-50.7 0-100.9 10-147.7 29.5L256 232z\"]\n};\nvar faBookReader = faBookOpenReader;\nvar faGlassWaterDroplet = {\n prefix: 'fas',\n iconName: 'glass-water-droplet',\n icon: [384, 512, [], \"e4f5\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64 317.6 64 301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60s64-26.9 64-60z\"]\n};\nvar faTowerBroadcast = {\n prefix: 'fas',\n iconName: 'tower-broadcast',\n icon: [576, 512, [\"broadcast-tower\"], \"f519\", \"M87.9 11.5c-11.3-6.9-26.1-3.2-33 8.1-24.8 41-39 89.1-39 140.4s14.2 99.4 39 140.4c6.9 11.3 21.6 15 33 8.1s15-21.6 8.1-33C75.7 241.9 64 202.3 64 160S75.7 78.1 96.1 44.4c6.9-11.3 3.2-26.1-8.1-33zm400.1 0c-11.3 6.9-15 21.6-8.1 33 20.4 33.7 32.1 73.3 32.1 115.6s-11.7 81.9-32.1 115.6c-6.9 11.3-3.2 26.1 8.1 33s26.1 3.2 33-8.1c24.8-41 39-89.1 39-140.4S545.8 60.6 521 19.6c-6.9-11.3-21.6-15-33-8.1zM320 215.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.7 12.9 44.4 32 55.4L256 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-264.6zM180.2 91c7.2-11.2 3.9-26-7.2-33.2s-26-3.9-33.2 7.2c-17.6 27.4-27.8 60-27.8 95s10.2 67.6 27.8 95c7.2 11.2 22 14.4 33.2 7.2s14.4-22 7.2-33.2c-12.8-19.9-20.2-43.6-20.2-69s7.4-49.1 20.2-69zM436.2 65c-7.2-11.2-22-14.4-33.2-7.2s-14.4 22-7.2 33.2c12.8 19.9 20.2 43.6 20.2 69s-7.4 49.1-20.2 69c-7.2 11.2-3.9 26 7.2 33.2s26 3.9 33.2-7.2c17.6-27.4 27.8-60 27.8-95s-10.2-67.6-27.8-95z\"]\n};\nvar faBroadcastTower = faTowerBroadcast;\nvar faMinimize = {\n prefix: 'fas',\n iconName: 'minimize',\n icon: [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2S322.1 32.2 329 39l40 40 73.4-73.4C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143 473 183c6.9 6.9 8.9 17.2 5.2 26.2S465.7 224 456 224zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433 329 473c-6.9 6.9-17.2 8.9-26.2 5.2S288 465.7 288 456l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40-73.4 73.4C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2S46.3 288 56 288l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8S32.2 189.9 39 183L79 143 5.7 69.7C2 66 0 61.1 0 56S2 46 5.7 42.3L42.3 5.7C46 2 50.9 0 56 0S66 2 69.7 5.7L143 79 183 39c6.9-6.9 17.2-8.9 26.2-5.2S224 46.3 224 56l0 144c0 13.3-10.7 24-24 24L56 224z\"]\n};\nvar faCompressArrowsAlt = faMinimize;\nvar faArrowRightToCity = {\n prefix: 'fas',\n iconName: 'arrow-right-to-city',\n icon: [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 80 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM153 167l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [512, 512, [], \"f7ec\", \"M64 432l0-176c-35.3 0-64-28.7-64-64 0-216.5 512-216.5 512 0 0 35.3-28.7 64-64 64l0 176c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [512, 512, [127760], \"f0ac\", \"M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M448 448L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64zM184 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faMaskFace = {\n prefix: 'fas',\n iconName: 'mask-face',\n icon: [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1L64 128c-35.3 0-64 28.7-64 64l0 78.7c0 62.6 45.2 116 107 126.3l97.9 16.3c33 22 72.6 34.7 115.1 34.7s82.2-12.8 115.1-34.7L533 396.9c61.7-10.3 107-63.7 107-126.3l0-78.7c0-35.3-28.7-64-64-64l-89.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM135.9 336.9l-18.4-3.1C86.6 328.7 64 302 64 270.7l0-78.7 48 0 0 48c0 35 8.6 67.9 23.9 96.9zm386.6-3.1l-18.4 3.1C519.4 307.9 528 275 528 240l0-48 48 0 0 78.7c0 31.3-22.6 58-53.5 63.1zM192 232c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm56 56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [512, 512, [], \"f55c\", \"M448.5 384c0 41.5-13.1 79.9-35.5 111.3-7.9 11.1-21.2 16.7-34.8 16.7l-243.3 0c-13.7 0-26.9-5.6-34.8-16.7-22.4-31.4-35.5-69.8-35.5-111.3 0-71.1 38.6-133.1 96-166.3l0-153.7c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.7c14.2 8.2 27.2 18.2 38.8 29.6l39.3-39.3-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16 16 32 32 48 48 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3c17.3 28.9 27.3 62.6 27.3 98.8zM288.5 64l-64 0 0 190.6-32 18.5c-19.5 11.3-35.7 27.5-46.9 46.9l221.8 0c-11.2-19.4-27.4-35.6-46.9-46.9l-32-18.5 0-190.6z\"]\n};\nvar faRoadBridge = {\n prefix: 'fas',\n iconName: 'road-bridge',\n icon: [576, 512, [], \"e563\", \"M32 32l208 0 0 64-24 0 0 64 24 0 0 129.3c-45.4 7.6-80 47.1-80 94.7l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64S14.3 32 32 32zM88 96l0 64 80 0 0-64-80 0zM336 32l72 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 72 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-72 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-72 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm96 160c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24z\"]\n};\nvar faArrowUp91 = {\n prefix: 'fas',\n iconName: 'arrow-up-9-1',\n icon: [512, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM365.1 206.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 112a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm42.7 182c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26z\"]\n};\nvar faSortNumericUpAlt = faArrowUp91;\nvar faMountainCity = {\n prefix: 'fas',\n iconName: 'mountain-city',\n icon: [640, 512, [], \"e52e\", \"M256.3 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-77.8 0c4-15.4 2.4-32.6-6.7-48.2L354.6 256 368.3 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-6.1 0-11.4 3.4-14.1 8.5l-42.6-73c-6-10.2-14.1-18-23.3-23.3l0-56.2zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm160 96l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm-272-64.7l-65.1 111.6 33.1 33.1 48-48 40.4 0-56.4-96.7zm-27.6-47.9c12.3-21.2 42.9-21.2 55.3 0L420.3 463.9c12.4 21.3-2.9 48.1-27.6 48.1L56 512c-24.7 0-40.1-26.8-27.6-48.1L196.7 175.4z\"]\n};\nvar faArrowDown91 = {\n prefix: 'fas',\n iconName: 'arrow-down-9-1',\n icon: [512, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm134.5-184l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 112a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-5.3 182c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4z\"]\n};\nvar faSortNumericDesc = faArrowDown91;\nvar faSortNumericDownAlt = faArrowDown91;\nvar faFaceGrinWide = {\n prefix: 'fas',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7 46.9 6.3 83.1 46.5 83.1 95.1 0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64 0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72 0 23.2-11 43.8-28 57 34.1 5.7 60 35.3 60 71 0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72 0-35.7 25.9-65.3 60-71-17-13.2-28-33.8-28-57 0-39.8 32.2-72 72-72l13.7 0c-13.3-11.7-21.7-28.9-21.7-48 0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80 0-9.2-1.5-17.9-4.3-26.1-1.8-5.2-.8-11.1 2.8-15.4z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10.1 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.6 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [\"battery-2\"], \"f243\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-64 0z\"]\n};\nvar faBattery2 = faBatteryQuarter;\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1-5.9 6.2-11.8 11.8-17.4 16.7-5.6-4.9-11.5-10.5-17.4-16.7-25.9-27.5-46.6-62.6-46.6-104.1zM160 0C89.3 0 32 57.3 32 128 32 180.4 53.5 223.5 78.8 256L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0C266.5 223.5 288 180.4 288 128 288 57.3 230.7 0 160 0z\"]\n};\nvar faDiamond = {\n prefix: 'fas',\n iconName: 'diamond',\n icon: [512, 512, [9830], \"f219\", \"M17 215L215 17C225.9 6.1 240.6 0 256 0s30.1 6.1 41 17L495 215c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L297 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17L17 297C6.1 286.1 0 271.4 0 256s6.1-30.1 17-41z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [576, 512, [], \"f12c\", \"M96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64zM544 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9 5.6 11.2 16.9 17.7 28.6 17.7l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm285.1-32l34.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1 0 5.7 3.7 10.7 9.1 12.5l49.4 15.9c31.9 10.3 53.5 39.9 53.5 73.4 0 42.6-34.5 77.1-77.1 77.1L320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l50.9 0c7.2 0 13.1-5.9 13.1-13.1 0-5.7-3.7-10.7-9.1-12.5l-49.4-15.9c-31.9-10.3-53.5-39.9-53.5-73.4 0-42.6 34.5-77.1 77.1-77.1z\"]\n};\nvar faRupee = faRupeeSign;\nvar faPersonRifle = {\n prefix: 'fas',\n iconName: 'person-rifle',\n icon: [512, 512, [], \"e54e\", \"M416 0L384 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7L432 16c0-8.8-7.2-16-16-16zM224 208C118 208 32 294 32 400l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-32.5 12.1-62.1 32-84.7l0 196.7 160 0 0-293.1c-20-7.1-41.6-10.9-64-10.9zM280 88a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"]\n};\nvar faD = {\n prefix: 'fas',\n iconName: 'd',\n icon: [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32l128 0c123.7 0 224 100.3 224 224S283.7 480 160 480L32 480c-17.7 0-32-14.3-32-32L0 64zM64 96l0 320 96 0c88.4 0 160-71.6 160-160S248.4 96 160 96L64 96z\"]\n};\nvar faSquareNfi = {\n prefix: 'fas',\n iconName: 'square-nfi',\n icon: [448, 512, [], \"e576\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM93 172.3l35 63 0-51.4c0-13.3 10.7-24 24-24s24 10.7 24 24l0 144c0 10.9-7.4 20.5-18 23.2s-21.7-2-27-11.6l-35-63 0 51.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-10.9 7.4-20.5 18-23.2s21.7 2 27 11.6zM208 184c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 32 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144zm192 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [512, 512, [], \"f62e\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM144 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm128 0l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM80 176c-17.7 0-32 14.3-32 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32zm320 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32zM48 336c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16zm144 48c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm128 0c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm112-16c17.7 0 32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16c0 17.7 14.3 32 32 32z\"]\n};\nvar faMagnifyingGlassDollar = {\n prefix: 'fas',\n iconName: 'magnifying-glass-dollar',\n icon: [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM212 96c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L168 256c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"]\n};\nvar faSearchDollar = faMagnifyingGlassDollar;\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M164.3 64L138.7 192 56 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L58.5 80.4C61.8 70.6 71 64 81.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM344 64l82.7 0 16 80c-14.7 .2-29.3 5.5-40.9 15.9-11.5 10.3-22.5 21-32.8 32.1l-24.9 0 0-128zM96 240l233.2 0c-6.4 8.8-12.3 17.6-17.7 26.3-21.4 34.7-39.5 76.1-39.5 115.8 0 17.1 2.1 33.8 6 49.9l-120.4 0 1.9 10.3c3.2 17.4-8.4 34-25.8 37.2s-34-8.4-37.2-25.8C71 313.3 58 242.1 57.7 240L96 240zm512-72c0 11-7.4 20.3-17.5 23.1-.9-.8-1.7-1.6-2.6-2.4-21.8-20-54.3-21.8-78-5.5-4.2-4.3-8.5-8.5-12.9-12.6l-21.3-106.6 83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1zM505.7 240.3L518 226.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM544 432.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [448, 512, [], \"f093\", \"M256 109.3L256 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-210.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 109.3zM224 400c44.2 0 80-35.8 80-80l80 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64l80 0c0 44.2 35.8 80 80 80zm144 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [576, 512, [62714, \"user-alt-slash\", \"user-large-slash\"], \"f506\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L311.5 245.7c55-10.9 96.5-59.5 96.5-117.7 0-66.3-53.7-120-120-120-58.2 0-106.8 41.5-117.7 96.5L41-24.9zM235.6 305.4C147.9 316.6 80 391.5 80 482.3 80 498.7 93.3 512 109.7 512l332.5 0-206.6-206.6z\"]\n};\nvar faUserAltSlash = faUserSlash;\nvar faUserLargeSlash = faUserSlash;\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [512, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 105.4-105.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faVialVirus = {\n prefix: 'fas',\n iconName: 'vial-virus',\n icon: [576, 512, [], \"e597\", \"M64 32C64 14.3 78.3 0 96 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 151.7c-18.5 0-37 7-51.1 21.1-21.6 21.6-26.6 53.6-15 79.9-26.9 10.4-45.9 36.6-45.9 67.1s19 56.7 45.9 67.1c-7.3 16.5-8 35.2-2.3 52.2-13.4 5.7-28.2 8.8-43.6 8.8-61.9 0-112-50.1-112-112L96 64C78.3 64 64 49.7 64 32zm96 32l0 128 96 0 0-128-96 0zM280 408c-13.3 0-24-10.7-24-24s10.7-24 24-24c28.8 0 43.2-34.8 22.9-55.2-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.4 20.4 55.2 5.9 55.2-22.9 0-13.3 10.7-24 24-24s24 10.7 24 24c0 28.8 34.8 43.2 55.2 22.9 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.4 20.4-5.9 55.2 22.9 55.2 13.3 0 24 10.7 24 24s-10.7 24-24 24c-28.8 0-43.2 34.8-22.9 55.2 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.4-20.4-55.2-5.9-55.2 22.9 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-28.8-34.8-43.2-55.2-22.9-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.4-20.4 5.9-55.2-22.9-55.2zm104-32a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [384, 512, [], \"f560\", \"M249.9 66.8c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-106 145.7-37.5-37.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l128-176zm128 136c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-170 233.7-69.5-69.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l192-264z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M234.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5 .3-86.2 32.6-96.8 70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3-14.3-70.1 10.2-84.1 59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2-25.8 0-46.7-20.9-46.7-46.7l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3 29.1 51.7 10.2 84.1-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5 46.9 53.9 32.6 96.8-52.1 69.1-84.4 58.5z\"]\n};\nvar faHelmetSafety = {\n prefix: 'fas',\n iconName: 'helmet-safety',\n icon: [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M352 264l0-200c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 200c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-185.9C90 109.8 32 191.8 32 288l0 64 512 0 0-64c-1-95.2-58.4-177.7-144-209.8L400 264c0 13.3-10.7 24-24 24s-24-10.7-24-24zM40 400c-22.1 0-40 17.9-40 40s17.9 40 40 40l496 0c22.1 0 40-17.9 40-40s-17.9-40-40-40L40 400z\"]\n};\nvar faHardHat = faHelmetSafety;\nvar faHatHard = faHelmetSafety;\nvar faE = {\n prefix: 'fas',\n iconName: 'e',\n icon: [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faFaceLaughSquint = {\n prefix: 'fas',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM107.7 332.1C102 318 113.4 304 128.6 304l254.9 0c15.2 0 26.6 14 20.9 28.1-23.8 58.6-81.2 99.9-148.3 99.9s-124.6-41.3-148.3-99.9zm15-188.8c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faDownLeftAndUpRightToCenter = {\n prefix: 'fas',\n iconName: 'down-left-and-up-right-to-center',\n icon: [512, 512, [\"compress-alt\"], \"f422\", \"M439.5 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S450.2 240 440.5 240l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87zM72.5 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S62.8 272 72.5 272z\"]\n};\nvar faCompressAlt = faDownLeftAndUpRightToCenter;\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [576, 512, [], \"f79c\", \"M202-30.6c12.5 4.4 19 18.1 14.6 30.6l-8.2 23.1 25.4-18.5c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5L233.8 64 272 64c26.5 0 48 21.5 48 48l0 2.1c-54.7 10.4-96 58.4-96 116l0 1.9c0 8.9 1 17.5 2.8 25.9-11.9 17.8-18.8 39.1-18.8 62.1l0 128c0 23.8 7.4 45.9 20.1 64L48 512c-26.5 0-48-21.5-48-48L0 112C0 85.5 21.5 64 48 64l38.2 0-28.3-20.6C47.2 35.6 44.8 20.6 52.6 9.9S75.4-3.2 86.1 4.6l27.4 20-8.3-25C101-13 107.8-26.6 120.4-30.8s26.2 2.6 30.4 15.2l9.9 29.8 10.7-30.2c4.4-12.5 18.1-19 30.6-14.6zM489.9 208c-7.5 0-14.5 3.8-18.6 10.1L446.9 256 488 256c13.3 0 24-10.7 24-24l0-1.9c0-12.2-9.9-22.1-22.1-22.1zM385.1 256l-24.4-37.9c-4.1-6.3-11.1-10.1-18.6-10.1-12.2 0-22.1 9.9-22.1 22.1l0 1.9c0 13.3 10.7 24 24 24l41.1 0zM281.9 268.5c-6.3-10.7-9.9-23.2-9.9-36.5l0-1.9c0-38.7 31.4-70.1 70.1-70.1 23.8 0 46 12.1 58.9 32.1l15 23.2 15-23.2c12.9-20 35.1-32.1 58.9-32.1 38.7 0 70.1 31.4 70.1 70.1l0 1.9c0 13.3-3.6 25.8-9.9 36.5 15.7 11.7 25.9 30.4 25.9 51.5l0 128c0 35.3-28.7 64-64 64l-72 0 0-208-48 0 0 208-72 0c-35.3 0-64-28.7-64-64l0-128c0-21.1 10.2-39.8 25.9-51.5z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [576, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32l0 224 224 0 0-128c0-17.7 14.3-32 32-32l160 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32zm80 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faMoneyBillTransfer = {\n prefix: 'fas',\n iconName: 'money-bill-transfer',\n icon: [640, 512, [], \"e528\", \"M31 105c-9.4-9.4-9.4-24.6 0-33.9L103-1c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 67.7 0 0 0 338.3 0c35.3 0 64 28.7 64 64l0 178.2-5.1-5.1c-28.1-28.1-73.7-28.1-101.8 0-27.2 27.2-28.1 70.6-2.8 98.9l67.7 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-406.1 0c-35.3 0-64-28.7-64-64l0-178.2 5.1 5.1c28.1 28.1 73.7 28.1 101.8 0 27.2-27.2 28.1-70.6 2.8-98.9l-67.7 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L31 105zM416 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm88-64.5c4.4 .5 8-3.1 8-7.5l0-48c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8.1 3.6-7.5 8 3.6 29 26.6 51.9 55.5 55.5zm-368 129c-4.4-.5-8 3.1-8 7.5l0 48c0 4.4 3.6 8 8 8l48 0c4.4 0 8.1-3.6 7.5-8-3.6-29-26.6-51.9-55.5-55.5z\"]\n};\nvar faPersonRunning = {\n prefix: 'fas',\n iconName: 'person-running',\n icon: [448, 512, [127939, \"running\"], \"f70c\", \"M256.5-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.6 176c-3.3 0-6.2 2-7.4 5L94.2 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.7 129.9 94.1 112 123.6 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.7 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.9 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45l82.4-67.9c4.5-3.7 7.8-8.5 9.8-13.9L115.6 357z\"]\n};\nvar faRunning = faPersonRunning;\nvar faCircleChevronDown = {\n prefix: 'fas',\n iconName: 'circle-chevron-down',\n icon: [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"]\n};\nvar faChevronCircleDown = faCircleChevronDown;\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M96 44.9c0-12.7 7.5-24.2 19.2-29.3l96-42c8.2-3.6 17.5-3.6 25.7 0l96 42C344.5 20.7 352 32.2 352 44.9l0 99.1c0 70.7-57.3 128-128 128S96 214.7 96 144l0-99.1zM304 128l-111.6 0-.4 0-48 0 0 16c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16zM208 16l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8L216 8c-4.4 0-8 3.6-8 8zM142.6 323c-6.5-4.9-15.2-6.2-22.6-2.8-61.4 28.2-104.1 90.2-104.1 162.1 0 16.4 13.3 29.7 29.7 29.7l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-67 50.2c-8.5 6.4-20.3 6.4-28.8 0l-67-50.2z\"]\n};\nvar faFaceKissWinkHeart = {\n prefix: 'fas',\n iconName: 'face-kiss-wink-heart',\n icon: [640, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M543.7 268.3c.2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-7.6-17.1-16.1-38.8-21.8-61.7-7.7-30.5-14.1-76.2 8.2-114.7l2.7-4.6c29.5-51 94.7-68.5 145.7-39 2 1.2 4 2.4 5.9 3.7zM240 304c0-8.8 7.2-16 16-16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16zM208 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm152 20c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M296 64c6.9 0 13.5 2.7 18.3 7.6L440.4 197.7c4.9 4.9 7.6 11.5 7.6 18.3s-2.7 13.5-7.6 18.3L386.7 288 65.3 288c1.3-3.9 3.4-7.4 6.3-10.3l96.4-96.4 33.4 33.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136 277.7 71.6c4.9-4.9 11.5-7.6 18.3-7.6zM122.7 136L26.3 232.4C9.5 249.3 0 272.1 0 296s9.5 46.7 26.3 63.6L152.4 485.7C169.3 502.5 192.1 512 216 512s46.7-9.5 63.6-26.3L485.7 279.6C502.5 262.7 512 239.9 512 216s-9.5-46.7-26.3-63.6L359.6 26.3C342.7 9.5 319.9 0 296 0s-46.7 9.5-63.6 26.3L168 90.7 118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L122.7 136z\"]\n};\nvar faMoneyBill1Wave = {\n prefix: 'fas',\n iconName: 'money-bill-1-wave',\n icon: [512, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 109.5L0 419.6c0 19.4 11.8 37.3 30.3 43.3 94 30 158.8 8.4 223.3-13.1 62.4-20.8 124.4-41.5 212.1-15.3 22.2 6.6 46.2-8.8 46.2-32l0-310.1c0-19.4-11.8-37.3-30.3-43.3-94-30-158.8-8.4-223.3 13.1-62.4 20.8-124.4 41.5-212.1 15.3-22.2-6.6-46.3 8.8-46.3 32zM256 368c-53 0-96-50.1-96-112s43-112 96-112 96 50.1 96 112-43 112-96 112zM127.1 405.5c.7 4.4-2.8 8.1-7.2 8.1-15.7 0-32.1-1.8-50-6.1-3.5-.8-6-4-6-7.7L64 360c0-4.4 3.6-8.1 8-7.5 28.1 3.5 50.6 25.2 55.2 53zM448 354.6c0 5-4.6 8.8-9.5 8-15.4-2.5-30.2-3.9-44.4-4.3-4.9-.1-8.7-4.5-7.2-9.2 7.3-23.7 28-41.4 53.2-44.6 4.4-.5 8 3.1 8 7.5l0 42.6zm-8-195.1c-28.1-3.5-50.6-25.2-55.2-53-.7-4.4 2.8-8.1 7.2-8.1 15.7 0 32.1 1.8 50 6.1 3.5 .8 6 4 6 7.7l0 39.9c0 4.4-3.6 8.1-8 7.5zm-322.1-5.8c4.9 .1 8.7 4.5 7.2 9.2-7.3 23.7-28 41.4-53.2 44.6-4.4 .5-8-3.1-8-7.5l0-42.6c0-5 4.6-8.8 9.5-8 15.4 2.5 30.2 3.9 44.4 4.3zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"]\n};\nvar faMoneyBillWaveAlt = faMoneyBill1Wave;\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [127963], \"f66f\", \"M238.7 5.1c10.5-6.8 24.1-6.8 34.6 0l224 144c11.9 7.7 17.4 22.3 13.4 35.9s-16.5 23-30.7 23l-32 0 0 208 51.2 38.4c8.1 6 12.8 15.5 12.8 25.6 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32 0-10.1 4.7-19.6 12.8-25.6l51.2-38.4 0 0 0-208-32 0c-14.2 0-26.7-9.4-30.7-23s1.5-28.3 13.4-35.9l224-144zM336 208l0 208 64 0 0-208-64 0zM224 416l64 0 0-208-64 0 0 208zM112 208l0 208 64 0 0-208-64 0z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [127925], \"f001\", \"M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM192 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faShuffle = {\n prefix: 'fas',\n iconName: 'shuffle',\n icon: [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S384 204.9 384 192l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8l-32.4 43.2-40-53.3 21.2-28.3C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM154 296l40 53.3-21.2 28.3C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L154 296zM438.6 470.6c-9.2 9.2-22.9 11.9-34.9 6.9S384 460.9 384 448l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"]\n};\nvar faRandom = faShuffle;\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [384, 512, [], \"f0cd\", \"M0 32C0 14.3 14.3 0 32 0L96 0c17.7 0 32 14.3 32 32S113.7 64 96 64l0 160c0 53 43 96 96 96s96-43 96-96l0-160c-17.7 0-32-14.3-32-32S270.3 0 288 0l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 160c0 88.4-71.6 160-160 160S32 312.4 32 224L32 64C14.3 64 0 49.7 0 32zM0 480c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z\"]\n};\nvar faBuildingUser = {\n prefix: 'fas',\n iconName: 'building-user',\n icon: [640, 512, [], \"e4da\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM339 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM176 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm240 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [129302], \"f544\", \"M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-160z\"]\n};\nvar faAdd = faPlus;\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-200.6c0-17.4-7.1-34.1-19.7-46.2L370.6 17.8C358.7 6.4 342.8 0 326.3 0L192 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-64 0 0 16-192 0 0-256 16 0 0-64-16 0z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224-32c17.7 0 32 14.3 32 32l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64 153.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L352 384 408.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L67.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L96 384 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l153.8 0 0-64-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-32c0-17.7 14.3-32 32-32z\"]\n};\nvar faHouseFloodWater = {\n prefix: 'fas',\n iconName: 'house-flood-water',\n icon: [640, 512, [], \"e50e\", \"M496 208l4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L348 10.5C340.3 3.7 330.3 0 320 0s-20.3 3.7-28 10.5L121.4 159.8c-6 5.2-9.4 12.8-9.4 20.7 0 15.2 12.3 27.5 27.5 27.5l4.5 0 0 94.4c20.3-9.4 42.1-14.2 64-14.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 16.9-.1 33.8 2.6 50 8l0-88zm-224-8c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM474.6 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 418.3 17.6 426.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 514.3 17.6 522.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faBitcoinSign = {\n prefix: 'fas',\n iconName: 'bitcoin-sign',\n icon: [320, 512, [], \"e0b4\", \"M64 24C64 10.7 74.7 0 88 0s24 10.7 24 24l0 40 32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 41.1c54.3 7.8 96 54.4 96 110.9 0 24.2-7.7 46.6-20.7 64.9 31.7 19.8 52.7 55 52.7 95.1 0 61.9-50.1 112-112 112l-16 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-32 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-22.3 0C18.7 448 0 429.3 0 406.3L0 101.6C0 80.8 16.8 64 37.6 64L64 64 64 24zm0 200l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-112 0 0 96zm112 64l-112 0 0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [448, 512, [128230], \"f466\", \"M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z\"]\n};\nvar faSquarePlus = {\n prefix: 'fas',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faArrowsLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-left-right',\n icon: [576, 512, [\"arrows-h\"], \"f07e\", \"M470.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l41.4 41.4-357.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-41.4-41.4 357.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faArrowsH = faArrowsLeftRight;\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M160 144c0-79.5 64.5-144 144-144 8.8 0 16 7.2 16 16l0 152.2c15-5.3 31.2-8.2 48-8.2 79.5 0 144 64.5 144 144 0 8.8-7.2 16-16 16l-152.2 0c5.3 15 8.2 31.2 8.2 48 0 79.5-64.5 144-144 144-8.8 0-16-7.2-16-16l0-152.2c-15 5.3-31.2 8.2-48 8.2-79.5 0-144-64.5-144-144 0-8.8 7.2-16 16-16l152.2 0c-5.3-15-8.2-31.2-8.2-48zm96 144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M456.5 0c-48.6 0-88 39.4-88 88l0 36-355.2 266.4C-.8 401-3.7 421 6.9 435.2s30.6 17 44.8 6.4l76.8-57.6 131.3 0 46.6 113.1 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-39.1-94.9 40.9 0c1.1 0 2.2 0 3.2 0l46.6 113.2 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-42-102C485.3 354.1 544.5 280 544.5 192l0-72 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4-7.1-28.5-32.7-48.5-62.1-48.5l-50.1 0C508.2 12.5 483.8 0 456.5 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faFileCircleCheck = {\n prefix: 'fas',\n iconName: 'file-circle-check',\n icon: [576, 512, [], \"e5a0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faLinkSlash = {\n prefix: 'fas',\n iconName: 'link-slash',\n icon: [576, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-122-122c4.2-3.4 8.3-7.1 12.1-10.9l71.1-71.1c29.3-29.3 45.8-69.1 45.8-110.6 0-86.4-70-156.5-156.5-156.5-37.3 0-73.1 13.3-101.3 37.2 20.3 10.1 38.7 23.5 54.5 39.5 14.1-8.3 30.2-12.7 46.8-12.7 51.1 0 92.5 41.4 92.5 92.5 0 24.5-9.7 48-27.1 65.4l-71.1 71.1c-3.9 3.9-8.1 7.4-12.6 10.5l-47.5-47.5c16.5-.9 29.7-14.4 30.2-31.1 0-1.3 0-2.6 0-3.9 0-86.3-69.9-156.9-156.5-156.9-19.2 0-37.9 3.5-55.5 10.2L41-24.9zM225.9 160c.6 0 1.1 0 1.7 0 15.1 0 29.5 3.7 42.1 10.2 1.8 1.2 3.6 2.3 5.5 3.1 26.8 16.3 44.8 45.9 44.8 79.6 0 .4 0 .8 0 1.2L225.9 160zM346.2 416L192 261.8c1.2 84.6 69.6 152.9 154.1 154.1zM139.7 209.5l-45.3-45.3-48.6 48.6c-29.3 29.3-45.8 69.1-45.8 110.6 0 86.4 70 156.5 156.5 156.5 37.2 0 73.1-13.3 101.3-37.2-20.3-10.1-38.8-23.5-54.6-39.5-14 8.2-30.1 12.6-46.7 12.6-51.1 0-92.5-41.4-92.5-92.5 0-24.5 9.7-48 27.1-65.4l48.6-48.6z\"]\n};\nvar faChainBroken = faLinkSlash;\nvar faChainSlash = faLinkSlash;\nvar faUnlink = faLinkSlash;\nvar faArrowRotateRight = {\n prefix: 'fas',\n iconName: 'arrow-rotate-right',\n icon: [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M436.7 74.7L448 85.4 448 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l47.9 0-7.6-7.2c-.2-.2-.4-.4-.6-.6-75-75-196.5-75-271.5 0s-75 196.5 0 271.5 196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c99.9-99.9 261.7-100 361.7-.3z\"]\n};\nvar faArrowRightRotate = faArrowRotateRight;\nvar faArrowRotateForward = faArrowRotateRight;\nvar faRedo = faArrowRotateRight;\nvar faPenClip = {\n prefix: 'fas',\n iconName: 'pen-clip',\n icon: [512, 512, [\"pen-alt\"], \"f305\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM274.1 100l0 0 137.9 137.9-215.1 215.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7L240.1 133.9 223 116.9c-9.4-9.4-24.6-9.4-33.9 0L89 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L155.1 82.9c28.1-28.1 73.7-28.1 101.8 0L274.1 100z\"]\n};\nvar faPenAlt = faPenClip;\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [448, 512, [128682], \"f52a\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM320 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faArrowDownWideShort = {\n prefix: 'fas',\n iconName: 'arrow-down-wide-short',\n icon: [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z\"]\n};\nvar faSortAmountAsc = faArrowDownWideShort;\nvar faSortAmountDown = faArrowDownWideShort;\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192l-256 0c-12.9 0-24.6 7.8-29.6 19.8S.7 237.5 9.9 246.6l128 128 2.4 2.2z\"]\n};\nvar faK = {\n prefix: 'fas',\n iconName: 'k',\n icon: [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7C143.4 167.2 76.4 236.3 64 249L64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"]\n};\nvar faCheckToSlot = {\n prefix: 'fas',\n iconName: 'check-to-slot',\n icon: [576, 512, [\"vote-yea\"], \"f772\", \"M552 288c13.3 0 24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 312c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24zM416 32c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64L96 96c0-35.3 28.7-64 64-64l256 0zm-37.1 84.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6-9.5 9.2-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L384.2 150.1c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faVoteYea = faCheckToSlot;\nvar faFishFins = {\n prefix: 'fas',\n iconName: 'fish-fins',\n icon: [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9s-12.4 26-5.3 38.6L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3 15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8 39.2-29.4 67.2-64.7 81.6-89.5 5.8-9.9 5.8-22.2 0-32.1-14.4-24.8-42.5-60.1-81.6-89.5-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32S96 46.3 96 64l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z\"]\n};\nvar faArrowUpAZ = {\n prefix: 'fas',\n iconName: 'arrow-up-a-z',\n icon: [512, 512, [\"sort-alpha-up\"], \"f15e\", \"M412.6 49.7C407.2 38.8 396.1 32 384 32s-23.2 6.8-28.6 17.7c-50.7 101.3-77.3 154.7-80 160-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9c-2.7-5.3-29.3-58.7-80-160zM384 135.6l20.2 40.4-40.4 0 20.2-40.4zM288 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 480 320 480l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S460.9 288 448 288l-128 0c-17.7 0-32 14.3-32 32zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80z\"]\n};\nvar faSortAlphaUp = faArrowUpAZ;\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M241.3-13c-11.4-2.3-23.1-2.3-34.5 0L19.3 24.5C8.1 26.7 0 36.6 0 48 0 58.3 6.5 67.3 16 70.6L16 144 .3 222.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6l34.9 0c8 0 14.6-6.5 14.6-14.6 0-1-.1-1.9-.3-2.9L48 144 48 77.3 96 86.9 96 144c0 70.7 57.3 128 128 128s128-57.3 128-128l0-57.1 76.7-15.3C439.9 69.3 448 59.4 448 48s-8.1-21.3-19.3-23.5L241.3-13zM224 224c-44.2 0-80-35.8-80-80l160 0c0 44.2-35.8 80-80 80zM120.1 320.1C58.7 348.3 16 410.3 16 482.3 16 498.7 29.3 512 45.7 512l154.3 0 0-146-57.4-43c-6.5-4.9-15.2-6.2-22.6-2.8zM248 512l154.3 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-57.4 43 0 146z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM154.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm112-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [129532], \"e06e\", \"M208-32a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM320 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 160l112 0c0 23.8 7.4 45.9 20.1 64L160 224c-53 0-96 43-96 96s43 96 96 96l192 0c53 0 96-43 96-96 0-35.1-18.9-65.9-47-82.6 19-19.8 30.7-46.6 31-76.1 45.4 7.6 80 47.1 80 94.7l0 128c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 256c0-53 43-96 96-96zm64 112l192 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48s21.5-48 48-48z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [9842, 9850, 9851], \"f1b8\", \"M152.3 60C198.5-20 314-20 360.2 60l37.3 64.6 27.7-16c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3L436.9 223c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l27.7-16-37.3-64.6c-21.6-37.3-75.4-37.3-97 0l-5.3 9.1c-8.8 15.3-28.4 20.5-43.7 11.7S138.2 84.5 147 69.1l5.3-9.1zM449.7 279.1c15.3-8.8 34.9-3.6 43.7 11.7l5.3 9.1c46.2 80-11.5 180-103.9 180l-74.6 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 74.6 0c43.1 0 70.1-46.7 48.5-84l-5.3-9.1c-8.8-15.3-3.6-34.9 11.7-43.7zM51 235.4l-27.7-16c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20L116.5 152c12.8-3.4 26 4.2 29.4 17l23.4 87.4c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-27.7-16-37.3 64.6c-21.6 37.3 5.4 84 48.5 84l10.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.6 0C25.3 480-32.4 380 13.8 300L51 235.4z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'fas',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM328 196c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faWaterLadder = {\n prefix: 'fas',\n iconName: 'water-ladder',\n icon: [640, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M374.5 405.7c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.8 25.7-4.8 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0-24.2 18.3-52.3 35.9-83.4 35.9s-59.1-17.7-83.3-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.6-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3zM511.8 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.8 14.2-31.8 31.8l0 211.8c-23.1-5.1-44.9-4.4-64-.4l0-51.2-192 0 0 48.7c-5.3-.5-10.7-.8-16-.7-16.2 .1-32.4 2.7-48 8l0-216.2c0-52.9 42.9-95.8 95.7-95.8 48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.7 14.2-31.7 31.8l0 96.2 192 0 0-96.2C416 74.9 458.9 32 511.8 32z\"]\n};\nvar faLadderWater = faWaterLadder;\nvar faSwimmingPool = faWaterLadder;\nvar faGemini = {\n prefix: 'fas',\n iconName: 'gemini',\n icon: [448, 512, [], \"e849\", \"M395.4 8c13.2-11.7 33.3-10.5 45.1 2.7 11.7 13.2 10.5 33.4-2.7 45.2-2.7 2.4-23.1 19.8-58.3 36.8-8.2 4-17.2 7.9-27 11.6l0 303.2c9.8 3.8 18.8 7.6 27 11.6 18.2 8.8 32.4 17.7 42.2 24.5 3 2.1 5.5 4.1 7.7 5.7 1.2 .9 2.3 1.6 3.2 2.4 .2 .1 .3 .2 .5 .4 1.3 1.1 2.4 2 3.2 2.6 .4 .3 .7 .6 .9 .8 .1 .1 .3 .2 .3 .3 0 0 .1 .1 .1 .1l.1 0 0 0 0 0c3.3 2.9 5.9 6.4 7.7 10.2 5.4 11.3 3.8 25.1-5 35-.3 .4-.7 .7-1.1 1.1-11.9 12.2-31.2 13.1-44 1.7-.3-.3-1.5-1.3-3.5-2.8-.4-.3-.9-.7-1.5-1.1-1.9-1.4-4.2-3.1-7.1-5.1-2.2-1.5-4.7-3.1-7.4-4.8-6.6-4.1-14.8-8.8-24.4-13.5-7.4-3.6-15.6-7.2-24.7-10.5-13.6-5.1-29-9.6-46.1-12.9-5.7-1.1-11.6-2.1-17.7-2.8-12.1-1.6-25-2.5-38.6-2.5-54.2 0-97.4 14.4-127 28.8-3.4 1.6-6.5 3.3-9.5 4.9-5.1 2.8-9.7 5.4-13.8 7.9-3.3 2.1-6.3 4-8.9 5.7-1.7 1.2-3.2 2.3-4.6 3.3-1.9 1.4-3.5 2.5-4.6 3.4-1.4 1.1-2.2 1.8-2.5 2-13.2 11.7-33.3 10.5-45.1-2.8-2.2-2.5-4-5.2-5.2-8.1s-2.1-5.9-2.5-8.9c-1.4-10.2 2.2-20.8 10.4-28.2 .2-.2 .6-.5 1.2-1 .1-.1 .2-.2 .3-.3l3.2-2.6c1.7-1.3 3.7-2.8 6.2-4.6 1.6-1.2 3.3-2.5 5.2-3.8 9.8-6.8 24-15.7 42.2-24.5 8.2-4 17.2-7.9 27-11.6l0-303.2C86.7 100.6 77.7 96.7 69.5 92.8 34.3 75.7 14 58.3 11.3 55.9-1.9 44.2-3.1 24 8.6 10.7 20.3-2.5 40.5-3.7 53.7 8 55.1 9.2 70.7 22.2 97.5 35.2 127.1 49.6 170.3 64 224.5 64s97.4-14.4 127-28.8c26.8-13 42.4-26 43.8-27.2zM288.5 122.3c-19.7 3.5-41 5.7-64 5.7s-44.3-2.2-64-5.7l0 267.4c12.6-2.3 25.9-4 39.9-4.9 7.8-.5 15.8-.8 24-.8 23 0 44.4 2.2 64 5.7l0-267.4z\"]\n};\nvar faTowerCell = {\n prefix: 'fas',\n iconName: 'tower-cell',\n icon: [576, 512, [], \"e585\", \"M59.6 9.8C47.3 4.8 33.3 10.7 28.4 23 15.2 55.5 8 90.9 8 128s7.2 72.5 20.4 105c5 12.3 19 18.2 31.3 13.2s18.2-19 13.2-31.3C62 188.2 56 158.8 56 128s6-60.2 16.9-87c5-12.3-1-26.3-13.2-31.3zm456.8 0c-12.3 5-18.2 19-13.2 31.3 10.9 26.8 16.9 56.2 16.9 87s-6 60.2-16.9 87c-5 12.3 1 26.3 13.2 31.3s26.3-1 31.3-13.2c13.1-32.5 20.4-67.9 20.4-105s-7.2-72.5-20.4-105c-5-12.3-19-18.2-31.3-13.2zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9l20.6-45.2 220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM376.5 400l-177 0 21.8-48 133.3 0 21.8 48zM288 205.3l44.8 98.7-89.7 0 44.8-98.7zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"]\n};\nvar faColonSign = {\n prefix: 'fas',\n iconName: 'colon-sign',\n icon: [384, 512, [], \"e140\", \"M213.8 8.7c12.9 3.2 20.7 16.2 17.5 29.1l-4.6 18.5c15.4 .8 30.4 3.4 44.7 7.5l9.4-37.6C283.9 13.3 297 5.5 309.8 8.7S330.5 25 327.3 37.8L316 82.8c13.5 7.8 26 17.1 37.2 27.8 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-3.1-2.9-6.4-5.8-9.8-8.4L239.2 390c26.9-4.6 51.1-17.1 70.1-35.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2c-34.3 32.3-80 52.8-130.5 54.4l-7.5 29.9c-3.2 12.9-16.2 20.7-29.1 17.5s-20.7-16.2-17.5-29.1l5.6-22.5c-15-3.2-29.4-8-42.9-14.4l-12.1 48.5c-3.2 12.9-16.2 20.7-29.1 17.5S69.5 487 72.7 474.2l16-63.9C44.3 373.6 16 318.1 16 256 16 159.2 84.8 78.4 176.3 60l8.4-33.8C187.9 13.3 201 5.5 213.8 8.7zM158 132.9c-46.1 21.8-78 68.7-78 123.1 0 30.5 10 58.6 26.9 81.3L158 132.9zM147.4 373.4c13 7.6 27.3 13.1 42.5 16.1l65.9-263.6c-12.6-3.8-25.9-5.9-39.8-5.9-1.8 0-3.5 0-5.3 .1L147.4 373.4z\"]\n};\nvar faLaptopFile = {\n prefix: 'fas',\n iconName: 'laptop-file',\n icon: [576, 512, [], \"e51d\", \"M64 64C64 28.7 92.7 0 128 0L416 0c35.3 0 64 28.7 64 64l0 48-64 0 0-48-288 0 0 192 112 0 0 96-163.2 0C34.4 352 0 317.6 0 275.2 0 264.6 8.6 256 19.2 256L64 256 64 64zM529.9 257.9c9 9 14.1 21.2 14.1 33.9L544 464c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-256c0-26.5 21.5-48 48-48l76.1 0c12.7 0 24.9 5.1 33.9 14.1 20 20 47.9 47.9 83.9 83.9zM416 272c0 8.8 7.2 16 16 16l60.1 0-76.1-76.1 0 60.1z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [576, 512, [\"haykal\"], \"f666\", \"M288.4-8c13.2 0 25 8.1 29.8 20.4l31.9 82 77.2-42.3c11.6-6.3 25.8-4.9 35.9 3.5s14 22.3 9.7 34.8l-28.2 83.3 86.3 17.2c12.9 2.6 23 12.8 25.3 25.8s-3.6 26.1-14.9 32.9l-75.2 45.7 55 68.6c8.3 10.3 9.3 24.6 2.7 36s-19.5 17.6-32.6 15.6l-87-13.3-2 88c-.3 13.2-8.6 24.8-21 29.4s-26.3 1-35-9l-58-66.1-58 66.1c-8.7 9.9-22.6 13.5-35 9s-20.8-16.2-21-29.4l-2-88-87 13.3c-13 2-26-4.2-32.6-15.6s-5.5-25.7 2.7-36l55-68.6-75.2-45.7c-11.3-6.8-17.2-19.9-14.9-32.9s12.3-23.2 25.3-25.8l86.3-17.2-28.2-83.3c-4.2-12.5-.4-26.3 9.7-34.8s24.4-9.9 35.9-3.5l77.1 42.3 31.9-82C263.3 .1 275.2-8 288.4-8zm0 120.2L273 151.6c-3.3 8.6-10.2 15.3-18.9 18.5s-18.2 2.4-26.3-2l-37-20.3 13.6 40c3 8.7 2 18.3-2.6 26.3s-12.4 13.6-21.5 15.4l-41.4 8.3 36.1 21.9c7.9 4.8 13.3 12.7 14.9 21.8s-.8 18.4-6.5 25.6l-26.4 33 41.8-6.4c9.1-1.4 18.4 1.2 25.4 7.1s11.2 14.6 11.4 23.8l.9 42.2 27.9-31.8c6.1-6.9 14.8-10.9 24.1-10.9s18 4 24.1 10.9l27.9 31.8 .9-42.2c.2-9.2 4.4-17.9 11.4-23.8s16.3-8.5 25.4-7.1l41.8 6.4-26.4-33c-5.8-7.2-8.2-16.5-6.6-25.6s7-17 14.9-21.8l36.1-21.9-41.4-8.3c-9-1.8-16.9-7.4-21.5-15.4s-5.5-17.6-2.6-26.3l13.6-40-37 20.3c-8.1 4.4-17.7 5.2-26.3 2s-15.5-9.9-18.9-18.5l-15.3-39.4z\"]\n};\nvar faHaykal = faBahai;\nvar faMoneyBill1 = {\n prefix: 'fas',\n iconName: 'money-bill-1',\n icon: [512, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 80a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM64 184l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 144c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM440 191.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM448 328l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faCloudBolt = {\n prefix: 'fas',\n iconName: 'cloud-bolt',\n icon: [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96l38.6 0 124.1-111c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7L354.1 320 416 320c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM160.6 400l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L362.5 396.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L149.5 371.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"]\n};\nvar faThunderstorm = faCloudBolt;\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M0 224L0 416c0 17.7 14.3 32 32 32l32 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 32 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHryvniaSign = {\n prefix: 'fas',\n iconName: 'hryvnia-sign',\n icon: [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M336 149.4C336 77 268.5 23.5 198 40.1L93.2 64.9C76 68.9 65.4 86.2 69.4 103.4s21.3 27.9 38.5 23.8l104.8-24.7c30.3-7.1 59.3 15.8 59.3 46.9 0 17.6-9.6 33.8-25 42.3l-.7 .4-222.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32.4 0c5.5-13.3 8.4-27.8 8.4-42.6zM360 272L24 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.3 0c-6.1 13.4-9.3 28.1-9.3 43.3 0 64.1 56.9 113.4 120.4 104.2l137.9-19.9c17.5-2.5 29.6-18.7 27.1-36.2s-18.8-29.6-36.2-27.1L159.2 404.2c-24.9 3.6-47.2-15.7-47.2-40.9 0-15.1 8.2-28.9 21.4-36.2l13-7.1 213.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24z\"]\n};\nvar faHryvnia = faHryvniaSign;\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [576, 512, [], \"f070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM325.3 395.1c-11.9 3.2-24.4 4.9-37.3 4.9-79.5 0-144-64.5-144-144 0-12.9 1.7-25.4 4.9-37.3L69.4 139.2c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6l-64.2-64.2z\"]\n};\nvar faCartFlatbedSuitcase = {\n prefix: 'fas',\n iconName: 'cart-flatbed-suitcase',\n icon: [576, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-6 1.1-11.7 3.1-17-38.1-6.2-67.1-39.2-67.1-79L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM176 144c0-26.5 21.5-48 48-48l32 0 0-24c0-30.9 25.1-56 56-56l64 0c30.9 0 56 25.1 56 56l0 24 32 0c26.5 0 48 21.5 48 48l0 144c0 26.5-21.5 48-48 48l-240 0c-26.5 0-48-21.5-48-48l0-144zM384 96l0-24c0-4.4-3.6-8-8-8l-64 0c-4.4 0-8 3.6-8 8l0 24 80 0z\"]\n};\nvar faLuggageCart = faCartFlatbedSuitcase;\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [576, 512, [], \"f7b9\", \"M446.2 34.5c-14.2-10.1-33.5-4.6-42.2 10.5L331.6 170.3c31.3 15.8 52.8 48.3 52.8 85.7l144 0c17.7 0 32.2-14.4 30.1-31.9-9.1-78.1-51.4-146.1-112.3-189.6zM172.7 44.9C164 29.8 144.7 24.3 130.5 34.5 69.6 77.9 27.3 145.9 18.2 224.1 16.1 241.6 30.7 256 48.3 256l144 0c0-37.5 21.5-69.9 52.8-85.7L172.7 44.9zm-9.4 416.8c-8.7 15.1-3.8 34.5 12 41.8 34.4 15.7 72.7 24.5 113 24.5s78.6-8.8 113-24.5c15.8-7.2 20.7-26.7 12-41.8L341 336.3c-15.1 9.9-33.2 15.7-52.6 15.7s-37.5-5.8-52.6-15.7L163.3 461.7zM288.3 304a48 48 0 1 0 -.7-96 48 48 0 1 0 .7 96z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM135.4 274.8c-2.9-12.9-15.7-21.1-28.6-18.2s-21.1 15.7-18.2 28.6l32 144c2.3 10.5 11.4 18.2 22.2 18.8s20.6-6.1 24-16.4l25.2-75.7 25.2 75.7c3.4 10.2 13.2 16.9 24 16.4s19.9-8.2 22.2-18.8l32-144c2.9-12.9-5.3-25.8-18.2-28.6s-25.8 5.3-28.6 18.2l-13.2 59.4-20.6-61.8c-3.3-9.8-12.4-16.4-22.8-16.4s-19.5 6.6-22.8 16.4l-20.6 61.8-13.2-59.4z\"]\n};\nvar faBedPulse = {\n prefix: 'fas',\n iconName: 'bed-pulse',\n icon: [640, 512, [\"procedures\"], \"f487\", \"M531.2-22.4L572 32 616 32c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0c-7.6 0-14.7-3.6-19.2-9.6l-24.1-32.1-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L387.2 80 344 80c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5c3.6-7.6 10.9-12.8 19.3-13.7s16.6 2.7 21.6 9.5zM320 160c0-17.7 14.3-32 32-32l9.5 0 26.6 39.9c14.4 21.6 39.3 33.8 65.2 31.9s48.8-17.6 59.8-41.1L527 129.2c45.9 7.2 81 46.9 81 94.8l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 224 224 0 0-128zM144 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faProcedures = faBedPulse;\nvar faTents = {\n prefix: 'fas',\n iconName: 'tents',\n icon: [576, 512, [], \"e582\", \"M539.9 352l-95.6 0-8.4-66.1c-2.9-23.2-15.9-43.9-35.4-56.8L252.2 131.5c-18-11.9-39.7-15.7-60.1-11.5 2.5-4.3 5.9-7.9 10.1-10.7L350.6 11.6c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36zM4.8 476l23.3-184c1.2-9.3 6.3-17.6 14.2-22.7l148.4-97.7c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36l-49.7 0c-11.2 0-21.5-5.8-27.3-15.4l-77-126.7c-1.7-2.8-4.8-4.6-8.1-4.6-5.3 0-9.5 4.3-9.5 9.5l0 105.2c0 17.7-14.3 32-32 32L36.5 512c-19.3 0-34.2-16.9-31.7-36z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [576, 512, [9749], \"f7b6\", \"M152-16c-13.3 0-24 10.7-24 24 0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C183.5 31.7 176 24.1 176 8 176-5.3 165.3-16 152-16zM96 192c-17.7 0-32 14.3-32 32l0 192c0 53 43 96 96 96l192 0c41.8 0 77.4-26.7 90.5-64l5.5 0c70.7 0 128-57.3 128-128S518.7 192 448 192L96 192zM448 384l0-128c35.3 0 64 28.7 64 64s-28.7 64-64 64zM288 8c0-13.3-10.7-24-24-24S240-5.3 240 8c0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C295.5 31.7 288 24.1 288 8z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [448, 512, [9889, \"zap\"], \"f0e7\", \"M338.8-9.9c11.9 8.6 16.3 24.2 10.9 37.8L271.3 224 416 224c13.5 0 25.5 8.4 30.1 21.1s.7 26.9-9.6 35.5l-288 240c-11.3 9.4-27.4 9.9-39.3 1.3s-16.3-24.2-10.9-37.8L176.7 288 32 288c-13.5 0-25.5-8.4-30.1-21.1s-.7-26.9 9.6-35.5l288-240c11.3-9.4 27.4-9.9 39.3-1.3z\"]\n};\nvar faZap = faBolt;\nvar faJar = {\n prefix: 'fas',\n iconName: 'jar',\n icon: [320, 512, [], \"e516\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm96 64c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 192z\"]\n};\nvar faTruckPlane = {\n prefix: 'fas',\n iconName: 'truck-plane',\n icon: [640, 512, [], \"e58f\", \"M144 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 320c0 32.5 12.1 62.1 32 84.7l0 27.3c0 7.1 .9 14.1 2.7 20.7L192 480 83.9 507C73.8 509.6 64 501.9 64 491.5l0-19.8c0-4.9 2.2-9.5 6-12.5l74-59.2 0-57.6-122.1 48.8C11.4 395.4 0 387.7 0 376.4l0-44c0-8 3-15.6 8.3-21.5L144 161.6 144 48zm224 80l192 0c44.2 0 80 35.8 80 80l0 160c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c-19.4-14.6-32-37.8-32-64l0-160c0-44.2 35.8-80 80-80zm0 176l192 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32l0 32zm0 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M279.6 31C265.5 11.5 242.9 0 218.9 0 177.5 0 144 33.5 144 74.9l0 2.4c0 64.4 82 133.4 122.2 163.3 13 9.7 30.5 9.7 43.5 0 40.2-30 122.2-98.9 122.2-163.3l0-2.4c0-41.4-33.5-74.9-74.9-74.9-24 0-46.6 11.5-60.7 31L288 42.7 279.6 31zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faArrowRotateLeft = {\n prefix: 'fas',\n iconName: 'arrow-rotate-left',\n icon: [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M256 64c-56.8 0-107.9 24.7-143.1 64l47.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 192c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l0 54.7C110.9 33.6 179.5 0 256 0 397.4 0 512 114.6 512 256S397.4 512 256 512c-87 0-163.9-43.4-210.1-109.7-10.1-14.5-6.6-34.4 7.9-44.6s34.4-6.6 44.6 7.9c34.8 49.8 92.4 82.3 157.6 82.3 106 0 192-86 192-192S362 64 256 64z\"]\n};\nvar faArrowLeftRotate = faArrowRotateLeft;\nvar faArrowRotateBack = faArrowRotateLeft;\nvar faArrowRotateBackward = faArrowRotateLeft;\nvar faUndo = faArrowRotateLeft;\nvar faFaceAngry = {\n prefix: 'fas',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM256 368c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faBurst = {\n prefix: 'fas',\n iconName: 'burst',\n icon: [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7S-2.3 28 4.2 37.6l112 163.3-99.6 32.3C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4-52.9 100.6c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1l-52.9-100.6 103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8l-106.5-34.5 25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7-34.5-106.5C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6L200.9 116.2 37.6 4.2z\"]\n};\nvar faZ = {\n prefix: 'fas',\n iconName: 'z',\n icon: [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar faBandage = {\n prefix: 'fas',\n iconName: 'bandage',\n icon: [576, 512, [129657, \"band-aid\"], \"f462\", \"M464 416l48 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-48 0 0 320zM416 96l-256 0 0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l48 0 0-320-48 0zM216 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM216 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faBandAid = faBandage;\nvar faPlaneCircleExclamation = {\n prefix: 'fas',\n iconName: 'plane-circle-exclamation',\n icon: [640, 512, [], \"e556\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faBusSide = {\n prefix: 'fas',\n iconName: 'bus-side',\n icon: [640, 512, [], \"e81d\", \"M480 0c88.4 0 160 71.6 160 160l0 224c0 35.3-28.7 64-64 64l-5.6 0c-13.2 37.3-48.6 64-90.4 64s-77.3-26.7-90.4-64l-139.1 0c-13.2 37.3-48.7 64-90.4 64s-77.2-26.7-90.4-64L64 448c-35.3 0-64-28.7-64-64L0 96C0 43 43 0 96 0L480 0zM160 368a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm320 0a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm0-304c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128c0-53-43-96-96-96zM248 224l104 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-104 0 0 160zM96 64C78.3 64 64 78.3 64 96l0 96c0 17.7 14.3 32 32 32l104 0 0-160-104 0z\"]\n};\nvar faBugs = {\n prefix: 'fas',\n iconName: 'bugs',\n icon: [576, 512, [], \"e4d0\", \"M447.5 174.6c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7c26.7 13.5 46.3 39.1 51.4 69.6l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L296 432c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0c5.1-30.5 24.7-56.1 51.4-69.6l-22.9-26.7c-8.6-10.1-7.5-25.2 2.6-33.8s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8zm-256-192c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7C230 55.9 249.5 81.5 254.7 112l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0C70.5 81.5 90 55.9 116.7 42.4L93.8 15.6C85.2 5.6 86.3-9.6 96.4-18.2s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8z\"]\n};\nvar faBeerMugEmpty = {\n prefix: 'fas',\n iconName: 'beer-mug-empty',\n icon: [576, 512, [\"beer\"], \"f0fc\", \"M64 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 16 64 0c35.3 0 64 28.7 64 64l0 108.2c0 24.2-13.7 46.4-35.4 57.2L448 371.8 448 384c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 80zM448 300.2l64-32 0-108.2-64 0 0 140.2zM192 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208z\"]\n};\nvar faBeer = faBeerMugEmpty;\nvar faPersonCircleCheck = {\n prefix: 'fas',\n iconName: 'person-circle-check',\n icon: [640, 512, [], \"e53e\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faStapler = {\n prefix: 'fas',\n iconName: 'stapler',\n icon: [640, 512, [], \"e5af\", \"M640 299.3L640 432c0 26.5-21.5 48-48 48L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48-352 0c-17.7 0-32-14.3-32-32l0-116.6-30.2-5.4c-19.6-3.5-33.8-20.5-33.8-40.4 0-8.9 2.9-17.5 8.2-24.6l35.6-47.5c32.8-43.8 84.4-69.6 139.1-69.6 27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16-320-57.1 0 73.1 320 0z\"]\n};\nvar faHouseMedicalCircleCheck = {\n prefix: 'fas',\n iconName: 'house-medical-circle-check',\n icon: [640, 512, [], \"e511\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faNairaSign = {\n prefix: 'fas',\n iconName: 'naira-sign',\n icon: [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 89.5 0 107.8 161.8c7.8 11.7 22.4 17 35.9 12.9S384 462.1 384 448l0-144 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0-139.8-209.7zM294.5 304l25.5 0 0 38.3-25.5-38.3zM185.5 256l-57.5 0 0-86.3 57.5 86.3z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [576, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M288 96c-90.9 0-173.2 36-233.7 94.6-12.7 12.3-33 12-45.2-.7s-12-33 .7-45.2C81.7 74.9 179.9 32 288 32S494.3 74.9 566.3 144.7c12.7 12.3 13 32.6 .7 45.2s-32.6 13-45.2 .7C461.2 132 378.9 96 288 96zM240 432a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 326.2c-11.7 13.3-31.9 14.5-45.2 2.8s-14.5-31.9-2.8-45.2C161 237.4 221.1 208 288 208s127 29.4 168 75.8c11.7 13.3 10.4 33.5-2.8 45.2s-33.5 10.4-45.2-2.8C378.6 292.9 335.8 272 288 272s-90.6 20.9-120 54.2z\"]\n};\nvar faWifi3 = faWifi;\nvar faWifiStrong = faWifi;\nvar faMoneyCheckDollar = {\n prefix: 'fas',\n iconName: 'money-check-dollar',\n icon: [512, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM296 288l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm-24-88c0-13.3 10.7-24 24-24l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24zM148 144c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7C94.5 268 76 246.1 76 220.5 76 191.7 99.2 168.3 128 168l0-4c0-11 9-20 20-20z\"]\n};\nvar faMoneyCheckAlt = faMoneyCheckDollar;\nvar faEyeLowVision = {\n prefix: 'fas',\n iconName: 'eye-low-vision',\n icon: [576, 512, [\"low-vision\"], \"f2a8\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM88 157.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L328.2 466c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L88 157.9zM45.7 251.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L181.9 455.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L45.7 251.3z\"]\n};\nvar faLowVision = faEyeLowVision;\nvar faCircleArrowUp = {\n prefix: 'fas',\n iconName: 'circle-arrow-up',\n icon: [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm17-377l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-39-39 0 150.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-150.1-39 39c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faArrowCircleUp = faCircleArrowUp;\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [128247], \"f083\", \"M0 416l0-208 136.2 0c13.5-20.2 32-36.8 53.7-48L0 160 0 125.7c0-35.3 28.7-64 64-64l.1 0C65.3 45.1 79.1 32 96 32l32 0c16.9 0 30.7 13.1 31.9 29.7l32.1 0 51.2-23.8c8.4-3.9 17.6-6 26.9-6L448 32c35.3 0 64 28.7 64 64l0 64-190 0c21.7 11.2 40.2 27.8 53.7 48l136.2 0 0 208c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM256 192a96.1 96.1 0 1 0 0 192.1 96.1 96.1 0 1 0 0-192.1z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zm-64 0l0 288c0 61.9 50.1 112 112 112s112-50.1 112-112l0-105.8 116.3 169.5c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 145.3c-35.5-51.7-105.3-64.3-156-28.1-5.6 4-10.7 8.4-15.3 13.1l0-18.3C256 50.1 205.9 0 144 0S32 50.1 32 112zM296.6 240.2c-16-23.3-10-55.3 11.9-71 21.2-15.1 50.5-10.3 66 12.2l67 97.6-79.9 55.9-65-94.8z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1 0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64 0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72 0 23.2 11 43.8 28 57-34.1 5.7-60 35.3-60 71 0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72 0-35.7-25.9-65.3-60-71 17-13.2 28-33.8 28-57 0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48 0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32 0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7 0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z\"]\n};\nvar faVolume = {\n prefix: 'fas',\n iconName: 'volume',\n icon: [512, 512, [128265, \"volume-medium\"], \"f6a8\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM441.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C443.3 170.7 464 210.9 464 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C361.1 227.6 368 241 368 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C402.1 312.9 416 286.1 416 256s-13.9-56.9-35.5-74.5z\"]\n};\nvar faVolumeMedium = faVolume;\nvar faElevator = {\n prefix: 'fas',\n iconName: 'elevator',\n icon: [512, 512, [], \"e16d\", \"M292.7-4.7l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5-32 432-32L304-32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4zm-160-22.6l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4S73.5 64 80 64l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [127991], \"f02b\", \"M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFileCircleMinus = {\n prefix: 'fas',\n iconName: 'file-circle-minus',\n icon: [576, 512, [], \"e4ed\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"]\n};\nvar faDownLong = {\n prefix: 'fas',\n iconName: 'down-long',\n icon: [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S300.9 352 288 352l-64 0 0-336c0-26.5-21.5-48-48-48l-32 0c-26.5 0-48 21.5-48 48l0 336-64 0c-12.9 0-24.6 7.8-29.6 19.8S.2 397.5 9.4 406.6l128 128z\"]\n};\nvar faLongArrowAltDown = faDownLong;\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [512, 512, [128191, 128192, 128440], \"f51f\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zm-56-16c0-32.4 16.3-66.6 42.8-93.2S207.6 104 240 104c13.3 0 24-10.7 24-24s-10.7-24-24-24c-47.9 0-93.7 23.5-127.1 56.9S56 192.1 56 240c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M144 24c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zM320 96l-32 0 0-72c0-30.9-25.1-56-56-56l-80 0C121.1-32 96-6.9 96 24l0 72-32 0C28.7 96 0 124.7 0 160L0 448c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64zM120 208l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faBookQuran = {\n prefix: 'fas',\n iconName: 'book-quran',\n icon: [448, 512, [\"quran\"], \"f687\", \"M64 512l288 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L48 0C21.5 0 0 21.5 0 48L0 336c0 20.9 13.4 38.7 32 45.3L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0zM352 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0 0-64 256 0zM273.1 144.4c2.5-6.1 11.2-6.1 13.7 0l10.3 24.8 26.8 2.1c6.6 .5 9.2 8.7 4.2 13L307.8 201.9 314 228c1.5 6.4-5.5 11.5-11.1 8.1l-22.9-14-22.9 14c-5.6 3.4-12.6-1.6-11.1-8.1l6.2-26.1-20.4-17.5c-5-4.3-2.3-12.5 4.2-13l26.8-2.1 10.3-24.8zM100 192c0-68.5 55.5-124 124-124 23.8 0 46.1 6.7 65 18.4 4.8 2.9 6.9 8.8 5 14.1s-7.1 8.6-12.7 8c-3.1-.3-6.2-.5-9.4-.5-46.4 0-84 37.6-84 84s37.6 84 84 84c3.2 0 6.3-.2 9.4-.5 5.6-.6 10.8 2.7 12.7 8s-.3 11.2-5 14.1c-18.9 11.7-41.2 18.4-65 18.4-68.5 0-124-55.5-124-124z\"]\n};\nvar faQuran = faBookQuran;\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [576, 512, [], \"f3dd\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L141.5 368.6C89.2 310.5 51.6 238.8 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c12.9 28.5 29.6 54.8 49.5 78.5L535-24.9zm-150.4 534c-63-13.4-121.3-39.8-171.7-76.3L297.8 348c12.2 8.2 25 15.6 38.3 22.2L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5c-17.6 64.6-80.2 119.8-156.4 103.7z\"]\n};\nvar faRoadCircleCheck = {\n prefix: 'fas',\n iconName: 'road-circle-check',\n icon: [640, 512, [], \"e564\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faShopLock = {\n prefix: 'fas',\n iconName: 'shop-lock',\n icon: [640, 512, [], \"e4a5\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l55.6 111.1c-8.2-1.6-16.6-2.5-25.2-2.5-53.7 0-99.7 33.1-118.7 80l-57.3 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faImagePortrait = {\n prefix: 'fas',\n iconName: 'image-portrait',\n icon: [384, 512, [\"portrait\"], \"f3e0\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 368c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM192 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faPortrait = faImagePortrait;\nvar faBridgeLock = {\n prefix: 'fas',\n iconName: 'bridge-lock',\n icon: [576, 512, [], \"e4cc\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0 0 32.2c13.8 .6 27.2 2.8 40 6.4l0 50.7c-14.8-6-31-9.3-48-9.3-70.7 0-128 57.3-128 128l0 24.4c-.4 .3-.7 .6-1.1 1-17.3-25-46.2-41.3-78.9-41.3-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64zm424 68.6l0-36.6-80 0 0 64 18.8 0c18.2-12.8 38.9-22.2 61.2-27.4zM216 96l0 64 80 0 0-64-80 0zm-48 0l-80 0 0 64 80 0 0-64zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [640, 512, [128296], \"f6e3\", \"M246.9 18.3L271 3.8c21.6-13 46.3-19.8 71.5-19.8 36.8 0 72.2 14.6 98.2 40.7l63.9 63.9c15 15 23.4 35.4 23.4 56.6l0 30.9 19.7 19.7 0 0c15.6-15.6 40.9-15.6 56.6 0s15.6 40.9 0 56.6l-64 64c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L464 240 433.1 240c-21.2 0-41.6-8.4-56.6-23.4l-49.1-49.1c-15-15-23.4-35.4-23.4-56.6l0-12.7c0-11.2-5.9-21.7-15.5-27.4l-41.6-25c-10.4-6.2-10.4-21.2 0-27.4zM50.7 402.7l222.1-222.1 90.5 90.5-222.1 222.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5z\"]\n};\nvar faArrowUp19 = {\n prefix: 'fas',\n iconName: 'arrow-up-1-9',\n icon: [512, 512, [\"sort-numeric-up\"], \"f163\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM418.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM365.1 430.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 336a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faSortNumericUp = faArrowUp19;\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [9822], \"f441\", \"M192-32c106 0 192 86 192 192l0 133.5c0 17-6.8 33.2-18.7 45.2L320 384 370.8 434.7c8.5 8.5 13.2 20 13.2 32 0 25-20.3 45.2-45.2 45.3L45.3 512c-25 0-45.2-20.3-45.2-45.3 0-12 4.8-23.5 13.2-32L64 384 64 349.4c0-18.7 8.2-36.4 22.3-48.6l89.7-76.8-48 0-12.1 12.1c-12.7 12.7-30 19.9-48 19.9-37.5 0-67.9-30.4-67.9-67.9l0-8.7c0-22.8 8.2-44.9 23.1-62.3L96 32 96 0c0-17.7 14.3-32 32-32l64 0zM160 72a24 24 0 1 0 0 48 24 24 0 1 0 0-48z\"]\n};\nvar faHouseFloodWaterCircleArrowRight = {\n prefix: 'fas',\n iconName: 'house-flood-water-circle-arrow-right',\n icon: [640, 512, [], \"e50f\", \"M288.5 112a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM141.2 44.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l28.7-28.7-89.4 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0-28.7-28.7c-6.2-6.2-6.2-16.4 0-22.6zM336.5 112c0 71.1-38.6 133.1-96 166.3l0 12.8c22.1 4.5 43.4 13.9 62.4 28.2 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 6-4.5 12.6-8 19.3-10.4l0-115.2 4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L444.5 10.5C436.8 3.7 426.8 0 416.5 0s-20.3 3.7-28 10.5L329.9 61.8c4.3 16 6.6 32.8 6.6 50.2zm32 88c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM475.1 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 391.8 266 373.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 487.8 266 469.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faArrowUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'arrow-up-right-from-square',\n icon: [512, 512, [\"external-link\"], \"f08e\", \"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0-201.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 80c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 96z\"]\n};\nvar faExternalLink = faArrowUpRightFromSquare;\nvar faArrowDownUpAcrossLine = {\n prefix: 'fas',\n iconName: 'arrow-down-up-across-line',\n icon: [512, 512, [], \"e4af\", \"M265.4 105.4l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4 0 114.7 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 114.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 402.7 96 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-114.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zM416 336l0 144c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144 64 0zM96 176L96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 144-64 0z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'fas',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faRectangleAd = {\n prefix: 'fas',\n iconName: 'rectangle-ad',\n icon: [512, 512, [\"ad\"], \"f641\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM416 184l0 144c0 13.3-10.7 24-24 24-7.1 0-13.5-3.1-17.9-8-10.2 5.1-21.8 8-34.1 8-42 0-76-34-76-76s34-76 76-76c9.9 0 19.3 1.9 28 5.3l0-21.3c0-13.3 10.7-24 24-24s24 10.7 24 24zm-48 92a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM160 208c-8.8 0-16 7.2-16 16l0 32 48 0 0-32c0-8.8-7.2-16-16-16l-16 0zm32 96l-48 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-35.3 28.7-64 64-64l16 0c35.3 0 64 28.7 64 64l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24z\"]\n};\nvar faAd = faRectangleAd;\nvar faBookTanakh = {\n prefix: 'fas',\n iconName: 'book-tanakh',\n icon: [448, 512, [\"tanakh\"], \"f827\", \"M352 512L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-66.7C13.4 374.7 0 356.9 0 336L0 48C0 21.5 21.5 0 48 0L352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96zm32-96c0-17.7-14.3-32-32-32l-256 0 0 64 256 0c17.7 0 32-14.3 32-32zM113.9 229c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2C233.6 66.6 229 64 224 64s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"]\n};\nvar faTanakh = faBookTanakh;\nvar faHotTubPerson = {\n prefix: 'fas',\n iconName: 'hot-tub-person',\n icon: [448, 512, [\"hot-tub\"], \"f593\", \"M240 40c0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C203.5 93.1 192 67.2 192 40 192 26.7 202.7 16 216 16s24 10.7 24 24zM0 336l0-80c0-35.3 28.7-64 64-64l19.7 0c8.1 0 16.2 1.6 23.8 4.6l137.1 54.8c7.6 3 15.6 4.6 23.8 4.6L384 256c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 336zm96-16c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zm152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zm104-24c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zM328 16c13.3 0 24 10.7 24 24 0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C315.5 93.1 304 67.2 304 40 304 26.7 314.7 16 328 16zM64 40a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faHotTub = faHotTubPerson;\nvar faFileHalfDashed = {\n prefix: 'fas',\n iconName: 'file-half-dashed',\n icon: [384, 512, [], \"e698\", \"M64 0C28.7 0 0 28.7 0 64l0 256 384 0 0-149.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM0 352l0 64 64 0 0-64-64 0zM64 512l0-64-64 0c0 35.3 28.7 64 64 64zm32 0l80 0 0-64-80 0 0 64zm112 0l80 0 0-64-80 0 0 64zm112 0c35.3 0 64-28.7 64-64l-64 0 0 64zm64-160l-64 0 0 64 64 0 0-64z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [\"dedent\"], \"f03b\", \"M.4 64c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0C14.8 96 .4 81.7 .4 64zm192 128c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM.4 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32zM.7 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.7 268.6z\"]\n};\nvar faDedent = faOutdent;\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [9996], \"f25b\", \"M192 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM61.3 51.2L143.9 240 74.1 240 2.7 76.8C-4.4 60.6 3 41.8 19.2 34.7S54.2 35 61.3 51.2zm27 221.3l-.2-.5 95.9 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L69.5 453.5C45.5 429.5 32 396.9 32 363l0-27c0-32.7 24.6-59.7 56.3-63.5z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M329.7 448c-5.1 0-9.7 3.7-9.7 8.8l0 7.2c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-63.6c0-12.6-5.1-24.5-13.1-34.2-31.8-38.7-50.9-88.2-50.9-142.2 0-123.7 100.3-224 224-224 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l35.8 42.9c7 8.4 10.9 19.1 10.9 30.1 0 25.9-21 47-47 47l-1 0c-8.8 0-16 7.2-16 16l0 48c0 35.3-28.7 64-64 64l-38.3 0zM224 64c-13.3 0-24 10.7-24 24 0 22.9-27.7 34.4-43.9 18.2-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c16.2 16.2 4.7 43.9-18.2 43.9-13.3 0-24 10.7-24 24s10.7 24 24 24c22.9 0 34.4 27.7 18.2 43.9-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c16.2-16.2 43.9-4.7 43.9 18.2 0 13.3 10.7 24 24 24s24-10.7 24-24c0-22.9 27.7-34.4 43.9-18.2 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-16.2-16.2-4.7-43.9 18.2-43.9 13.3 0 24-10.7 24-24s-10.7-24-24-24c-22.9 0-34.4-27.7-18.2-43.9 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-16.2 16.2-43.9 4.7-43.9-18.2 0-13.3-10.7-24-24-24zm-32 88a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [10001], \"f5ad\", \"M368.5 18.3l-50.1 50.1 125.3 125.3 50.1-50.1c21.9-21.9 21.9-57.3 0-79.2L447.7 18.3c-21.9-21.9-57.3-21.9-79.2 0zM279.3 97.2l-.5 .1-144.1 43.2c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-2.9 8.7-1.9 18.2 2.5 26L161.7 316.4c-1.1-4-1.6-8.1-1.6-12.4 0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48c-4.3 0-8.5-.6-12.4-1.6L40.3 505.7c7.8 4.4 17.2 5.4 26 2.5l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 .1-.5-135.5-135.5z\"]\n};\nvar faTentArrowsDown = {\n prefix: 'fas',\n iconName: 'tent-arrows-down',\n icon: [512, 512, [], \"e581\", \"M185.5 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zm248 72l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"]\n};\nvar faForwardFast = {\n prefix: 'fas',\n iconName: 'forward-fast',\n icon: [512, 512, [9197, \"fast-forward\"], \"f050\", \"M19.8 477.6c12 5 25.7 2.2 34.9-6.9L224 301.3 224 448c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9L448 301.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 146.7-169.4-169.4c-9.2-9.2-22.9-11.9-34.9-6.9S224 51.1 224 64L224 210.7 54.6 41.4c-9.2-9.2-22.9-11.9-34.9-6.9S0 51.1 0 64L0 448c0 12.9 7.8 24.6 19.8 29.6z\"]\n};\nvar faFastForward = faForwardFast;\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 176 64 176 128 338.7 128 128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-162.7 0 210.7-210.7 0 306.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z\"]\n};\nvar faWhiskeyGlass = {\n prefix: 'fas',\n iconName: 'whiskey-glass',\n icon: [448, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32C14.3 32 0 46.3 0 64L0 352c0 70.7 57.3 128 128 128l192 0c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32L32 32zM64 256l0-160 320 0 0 160-320 0z\"]\n};\nvar faGlassWhiskey = faWhiskeyGlass;\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"]\n};\nvar faFaceGrin = {\n prefix: 'fas',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrin = faFaceGrin;\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 64C74.7 64 64 74.7 64 88s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm70.3 160c-11.3 0-21.9 5.1-28.9 13.9L69.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [384, 512, [8963], \"f106\", \"M169.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L192 205.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"]\n};\nvar faFaceSmile = {\n prefix: 'fas',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSmile = faFaceSmile;\nvar faPersonDressBurst = {\n prefix: 'fas',\n iconName: 'person-dress-burst',\n icon: [640, 512, [], \"e544\", \"M208 40.1c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24zM8 144.1c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm92.5 141.4l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM246.2 384l25.8 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 25.8 0c10.9 0 18.6-10.7 15.2-21.1l-43-129 48.3 65.1c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C434 132 394.3 112 352 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l48.3-65.1-43 129c-3.5 10.4 4.3 21.1 15.2 21.1z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [10135, 247], \"f529\", \"M224 48a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM168 408a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z\"]\n};\nvar faCodeFork = {\n prefix: 'fas',\n iconName: 'code-fork',\n icon: [448, 512, [], \"e13b\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 22.7c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-32 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-32 0C98.1 288 48 237.9 48 176l0-22.7C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHouseFlag = {\n prefix: 'fas',\n iconName: 'house-flag',\n icon: [640, 512, [], \"e50d\", \"M472 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM283.5 59.1l100.5 96.9 0 356-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L228.5 59.1C235.9 52 245.7 48 256 48s20.1 4 27.5 11.1zM232 256c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"]\n};\nvar faBuildingColumns = {\n prefix: 'fas',\n iconName: 'building-columns',\n icon: [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M271.9 20.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128c-12.6 7.2-18.8 22-15.1 36S17.5 208 32 208l32 0 0 208 0 0-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-208 32 0c14.5 0 27.2-9.8 30.9-23.8s-2.5-28.8-15.1-36l-224-128zM400 208l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zM256 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBank = faBuildingColumns;\nvar faInstitution = faBuildingColumns;\nvar faMuseum = faBuildingColumns;\nvar faUniversity = faBuildingColumns;\nvar faRug = {\n prefix: 'fas',\n iconName: 'rug',\n icon: [576, 512, [], \"e569\", \"M24 64l56 0 0 384-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm104 0l320 0 0 384-320 0 0-384zM576 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0-384 56 0c13.3 0 24 10.7 24 24z\"]\n};\nvar faCodeMerge = {\n prefix: 'fas',\n iconName: 'code-merge',\n icon: [448, 512, [], \"f387\", \"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2 0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432 0 476.2 35.8 512 80 512s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48 44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faHouseTsunami = {\n prefix: 'fas',\n iconName: 'house-tsunami',\n icon: [640, 512, [], \"e515\", \"M288 16C155.5 16 48 123.5 48 256S155.5 496 288 496c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1l-.1 0C128.9 543.9 0 415 0 256 0 96.9 128.9-32 288-32 301.3-32 312-21.3 312-8s-10.7 24-24 24zm44.8 166.4l96-72c11.4-8.5 27.1-8.5 38.5 0l95.5 72c8 6 12.7 15.5 12.7 25.5l.3 121.5c-2.2 1.3-4.3 2.6-6.4 4.2-4.3 3.1-8.7 .8-13.2-1.5l-1.2-.6-.7-.3c-5.4-2.7-11.7-6.6-18.9-11.7-29.5-21.1-64.3-31.6-99.1-31.4-34.1 .2-68.1 10.7-97 31.4-7.8 5.6-13.8 9.3-19.3 11.2L320 208c0-10.1 4.7-19.6 12.8-25.6zm54.6 229.7c-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1-106 0-192-86-192-192S182 64 288 64c13.3 0 24 10.7 24 24s-10.7 24-24 24c-79.5 0-144 64.5-144 144s64.5 144 144 144c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMagnifyingGlassChart = {\n prefix: 'fas',\n iconName: 'magnifying-glass-chart',\n icon: [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [512, 512, [], \"f0e9\", \"M256-32c17.7 0 32 14.3 32 32l0 2c126.3 15.7 224 123.5 224 254 0 3.8-.1 7.5-.2 11.3-.3 6.9-5 12.8-11.7 14.7s-13.8-.7-17.6-6.5c-14.4-21.4-38.8-35.5-66.5-35.5-29.3 0-54.9 15.7-68.9 39.3-2.7 4.6-7.6 7.6-13 7.8s-10.5-2.2-13.7-6.5c-14.6-19.8-38-32.6-64.5-32.6s-49.9 12.8-64.5 32.6c-3.2 4.3-8.3 6.8-13.7 6.5s-10.2-3.2-13-7.8c-14-23.6-39.6-39.3-68.9-39.3-27.7 0-52.1 14.1-66.5 35.5-3.9 5.7-11 8.4-17.6 6.5S.5 274.2 .2 267.3C.1 263.5 0 259.8 0 256 0 125.5 97.7 17.7 224 2l0-2c0-17.7 14.3-32 32-32zm32 360l0 102.6c0 45-36.5 81.4-81.4 81.4-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6 9.6 0 17.4-7.8 17.4-17.4L224 328c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faHillRockslide = {\n prefix: 'fas',\n iconName: 'hill-rockslide',\n icon: [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [128373], \"f21b\", \"M171-16c-36.4 0-57.8 58.3-68.3 112L72 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32c0 17 3.3 33.2 9.3 48l-9.3 0 0 0-20.5 0c-15.2 0-27.5 12.3-27.5 27.5 0 3 .5 5.9 1.4 8.7l28.9 86.6C40.2 379.6 16 428.1 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-54.2-24.2-102.7-62.3-135.4l28.9-86.6c.9-2.8 1.4-5.7 1.4-8.7 0-15.2-12.3-27.5-27.5-27.5l-20.5 0 0 0-9.3 0c6-14.8 9.3-31 9.3-48l0-32 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-30.7 0c-10.4-53.7-31.9-112-68.3-112-9.6 0-19 3.9-27.5 8.2-8.2 4.1-18.4 7.8-25.5 7.8s-17.3-3.7-25.5-7.8C190-12.1 180.6-16 171-16zm93.7 484.4l-24.8-70.9 27.9-32.5c2.7-3.2 4.2-7.2 4.2-11.4 0-9.7-7.8-17.5-17.5-17.5l-61 0c-9.7 0-17.5 7.8-17.5 17.5 0 4.2 1.5 8.2 4.2 11.4l27.9 32.5-24.8 70.9-57-180.4 35.7 0c18.4 10.2 39.5 16 62 16s43.6-5.8 62-16l35.7 0-57 180.4zM224 256c-34.7 0-64.2-22.1-75.3-53 5.7 3.2 12.3 5 19.3 5l12.4 0c16.5 0 31.1-10.6 36.3-26.2 2.3-7 12.2-7 14.5 0 5.2 15.6 19.9 26.2 36.3 26.2l12.4 0c7 0 13.6-1.8 19.3-5-11.1 30.9-40.6 53-75.3 53z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [128188], \"f0b1\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160l0 96 512 0 0-96c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM512 304l-192 0 0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-112z\"]\n};\nvar faTrowelBricks = {\n prefix: 'fas',\n iconName: 'trowel-bricks',\n icon: [512, 512, [], \"e58a\", \"M224 32c0-11.5-6.2-22.2-16.2-27.8s-22.3-5.5-32.2 .4l-160 96C5.9 106.3 0 116.8 0 128s5.9 21.7 15.5 27.4l160 96c9.9 5.9 22.2 6.1 32.2 .4S224 235.5 224 224l0-64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-64zm96 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0zM0 416l0 64c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32zm224-32c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-256 0z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [129510], \"f696\", \"M252.8 0L176 0c-26.5 0-48 21.5-48 48l0 16 112 0 0-16c0-17.5 4.7-33.9 12.8-48zM128 112l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 15.4 0 30.5-3.7 44-10.7-17.6-23.9-28-53.4-28-85.3 0-45.3 21.3-88 57.6-115.2l64-48c4-3 6.4-7.8 6.4-12.8l0-128-112 0zm160 0l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 20.8 0 41-6.7 57.6-19.2l115.2-86.4C461 382.2 480 344.3 480 304l0-192-192 0zM480 64l0-16c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 16 192 0z\"]\n};\nvar faT = {\n prefix: 'fas',\n iconName: 't',\n icon: [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm16 48l0 160 160 0 0-160-160 0z\"]\n};\nvar faTruckMedical = {\n prefix: 'fas',\n iconName: 'truck-medical',\n icon: [576, 512, [128657, \"ambulance\"], \"f0f9\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM176 136c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faAmbulance = faTruckMedical;\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [576, 512, [128329], \"f679\", \"M388.7 4.7c6.2-6.2 16.4-6.2 22.6 0l16 16c6.2 6.2 6.2 16.4 0 22.6l-16 16c-6.2 6.2-16.4 6.2-22.6 0l-16-16c-6.2-6.2-6.2-16.4 0-22.6l16-16zM176 160c-10.8 0-20.8 3.6-28.8 9.6-14.1 10.6-34.2 7.8-44.8-6.4s-7.8-34.2 6.4-44.8c18.7-14.1 42-22.4 67.2-22.4 61.9 0 112 50.1 112 112 0 17.2-3.9 33.5-10.8 48l49.7 0c12.7 0 24.9-5 33.9-14.1l20.7-20.7c18.7-18.7 44.1-29.3 70.6-29.3 55.2 0 99.9 44.7 99.9 99.9l0 96.1c0 55.2-44.8 100-100 100S352 443.2 352 388l0-4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 4c0 19.9 16.1 36 36 36s36-16.1 36-36l0-96.1c0-19.8-16.1-35.9-35.9-35.9-9.5 0-18.6 3.8-25.4 10.5l-20.7 20.7c-21 21-49.4 32.8-79.1 32.8l-26.8 0c12.6 19.6 19.9 42.8 19.9 68 0 75.2-65 132-140 132S40 463.2 40 388c0-17.7 14.3-32 32-32s32 14.3 32 32c0 35.3 31.7 68 76 68s76-32.7 76-68-31.7-68-76-68l-20 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0c26.5 0 48-21.5 48-48s-21.5-48-48-48zM337.1 60.1c-11-13.8-31.1-16.2-45-5.2s-16.2 31.1-5.2 45C312.6 132.2 354.4 152 400 152s87.4-19.8 113.1-52.1c11-13.8 8.7-34-5.2-45s-34-8.7-45 5.2C450.3 76 427.5 88 400 88s-50.3-12-62.9-27.9z\"]\n};\nvar faMosquitoNet = {\n prefix: 'fas',\n iconName: 'mosquito-net',\n icon: [640, 512, [], \"e52c\", \"M576 352c13.3 0 24 10.7 24 24l0 16 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 48 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 16-.1 2.5C598.6 566.6 588.4 576 576 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-48 0 0 16-.1 2.5C502.6 566.6 492.4 576 480 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-48-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 48 0 0-16c0-13.3 10.7-24 24-24zM429.9 16.3c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 3.9-.4 7.7-.9 11.5-7.3-3.5-15.3-5.8-23.8-6.7L576 304c-18.5 0-35.3 7-48 18.4-11-9.9-25.1-16.5-40.6-18.1L480 304c-30.3 0-56.1 18.7-66.8 45.2-12.5 5-23.2 13.4-31.1 24l-30.2-40.1 0 74.7c0 17.7-14.3 32-32 32-16.6 0-30.2-12.6-31.8-28.7l-.2-3.3 0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2c-7.5 9.6-21 12.1-31.3 5.3-10.3-6.8-13.7-20.5-8.3-31.5l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.7-38.3-2.4-2.4c-5.2-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.2-2.1c-5.7-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8 .2-3.2c1.1-10.4 7.2-19.4 15.8-24.4l0-60.5 .3-3.2c1.5-7.3 8-12.7 15.7-12.8 7.7 0 14.2 5.5 15.7 12.8l.3 3.2 0 60.5c8.7 5 14.8 14 15.8 24.4l.2 3.2 0 28.9 53.4-45.7-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2zM504 488l48 0 0-48-48 0 0 48z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-64z\"]\n};\nvar faUsersGear = {\n prefix: 'fas',\n iconName: 'users-gear',\n icon: [640, 512, [\"users-cog\"], \"f509\", \"M320 224a104 104 0 1 0 0-208 104 104 0 1 0 0 208zM96 232a72 72 0 1 0 0-144 72 72 0 1 0 0 144zM0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4-70.7 0-128 57.3-128 128zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zM160 432l0 16c0 17.7 14.3 32 32 32l156.8 0c-7.1-21.6-6.3-44.4 10.7-64-14-16.2-20.5-39.7-11.4-63.3 6.6-17.1 15.9-33.1 27.4-47.3 5.4-6.6 11.6-11.7 18.3-15.4-22.1-11.5-47.2-18-73.8-18-88.4 0-160 71.6-160 160zm464.6-44.1c6.3-3.6 9.5-11.1 6.8-18-4.8-12.4-11.5-24.1-19.9-34.4-4.6-5.7-12.7-6.7-19-3-21.8 12.6-48.6-2.8-48.6-28.1 0-7.3-4.9-13.8-12.1-14.9-12.9-2-26.8-2-39.7 0-7.2 1.1-12.1 7.6-12.1 14.9 0 25.2-26.8 40.7-48.6 28.1-6.3-3.6-14.4-2.6-19 3-8.4 10.3-15.1 22-19.9 34.4-2.6 6.8 .5 14.3 6.8 17.9 21.9 12.6 21.9 43.5 0 56.2-6.3 3.6-9.5 11.1-6.8 17.9 4.8 12.4 11.5 24.1 19.9 34.4 4.6 5.7 12.7 6.7 19 3 21.8-12.6 48.6 2.9 48.6 28.1 0 7.3 4.9 13.8 12.1 14.9 12.9 2 26.8 2 39.7 0 7.2-1.1 12.1-7.6 12.1-14.9 0-25.2 26.8-40.7 48.6-28.1 6.3 3.6 14.4 2.6 19-3 8.4-10.3 15.1-22 19.9-34.4 2.6-6.8-.5-14.3-6.8-17.9-21.9-12.6-21.9-43.5 0-56.2zM472 416a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"]\n};\nvar faUsersCog = faUsersGear;\nvar faRoadCircleExclamation = {\n prefix: 'fas',\n iconName: 'road-circle-exclamation',\n icon: [640, 512, [], \"e565\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [384, 512, [9208], \"f04c\", \"M48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 32zm224 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0z\"]\n};\nvar faStaffSnake = {\n prefix: 'fas',\n iconName: 'staff-snake',\n icon: [448, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M192 32l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 64 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-64 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 192 32 0c53 0 96 43 96 96 0 47.6-34.6 87.1-80 94.7l0-67c9.6-5.5 16-15.9 16-27.7 0-17.7-14.3-32-32-32l-32 0 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64-32 0c-53 0-96-43-96-96 0-47.6 34.6-87.1 80-94.7l0 67c-9.6 5.5-16 15.9-16 27.7 0 17.7 14.3 32 32 32l32 0 0-192-72.6 0c-11.1 19.1-31.7 32-55.4 32l-16 0C21.5 128 0 106.5 0 80S21.5 32 48 32l144 0z\"]\n};\nvar faRodAsclepius = faStaffSnake;\nvar faRodSnake = faStaffSnake;\nvar faStaffAesculapius = faStaffSnake;\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M288-32a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM48 304c0-70.1 47-131.4 117.1-164.9 25.3 41.3 70.9 68.9 122.9 68.9 55.7 0 104.1-31.7 128-78 15.8-11.3 35.1-18 56-18l19.5 0c10.4 0 18 9.8 15.5 19.9l-17.1 68.3c9.9 12.4 18.2 25.7 24.4 39.8l21.7 0c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24l-40 0c-16.5 22-38.5 39.6-64 50.7l0 29.3c0 17.7-14.3 32-32 32l-33 0c-14.3 0-26.8-9.5-30.8-23.2l-7.1-24.8-82.3 0-7.1 24.8C235.8 502.5 223.3 512 209 512l-33 0c-17.7 0-32-14.3-32-32l0-29.3C87.5 426 48 369.6 48 304zm376 16a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M209-33c-9.4-9.4-24.6-9.4-33.9 0L95 47c-4.1 4.1-6.5 9.4-7 15.1L58.4 448 48 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.4 0-29.7-385.8c-.4-5.7-2.9-11.1-7-15.1L209-33zM128 296c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faAnglesRight = {\n prefix: 'fas',\n iconName: 'angles-right',\n icon: [448, 512, [187, \"angle-double-right\"], \"f101\", \"M439.1 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L371.2 256 233.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L179.2 256 41.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faAngleDoubleRight = faAnglesRight;\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [512, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32L96 320c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z\"]\n};\nvar faDesktopAlt = faDesktop;\nvar faPlaneCircleXmark = {\n prefix: 'fas',\n iconName: 'plane-circle-xmark',\n icon: [640, 512, [], \"e557\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [576, 512, [], \"f079\", \"M118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l32 0 0 224c0 53 43 96 96 96l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0c-17.7 0-32-14.3-32-32l0-224 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64zM457.4 470.6c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S556.9 352 544 352l-32 0 0-224c0-53-43-96-96-96L288 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32l0 224-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64z\"]\n};\nvar faUserGear = {\n prefix: 'fas',\n iconName: 'user-gear',\n icon: [640, 512, [\"user-cog\"], \"f4fe\", \"M256.5 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.7 304l59.4 0 1.5 0c-12.9 26.8-7.8 58.2 11.5 79.5-20.2 22.3-24.8 55.8-9.4 83.4l22.5 40.4c.9 1.6 1.9 3.2 2.9 4.7l-237 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zm205.9-56.4c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 6.1c0 18.9 24.1 32.8 40.5 23.4l5-2.9c11.6-6.7 26.5-2.6 33 9.1l22.4 40.2c6.2 11.2 2.6 25.2-8.2 32l-4.7 2.9c-16.2 10.1-16.2 39.9 0 50.1l4.6 2.9c10.8 6.8 14.5 20.8 8.3 32L607 483.8c-6.5 11.7-21.4 15.9-33 9.1l-4.9-2.9c-16.4-9.5-40.5 4.5-40.5 23.4l0 6.1c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-5.9c0-19-24.2-33-40.7-23.5l-4.8 2.8c-11.6 6.7-26.4 2.6-33-9.1l-22.6-40.4c-6.2-11.2-2.6-25.3 8.3-32.1l4.4-2.7c16.3-10.1 16.3-40.1 0-50.2l-4.5-2.8c-10.9-6.8-14.5-20.9-8.3-32.1l22.5-40.3c6.5-11.7 21.4-15.8 32.9-9.1l4.8 2.8c16.5 9.5 40.7-4.5 40.7-23.5l0-5.9zm99.9 136.2a52 52 0 1 0 -104 0 52 52 0 1 0 104 0z\"]\n};\nvar faUserCog = faUserGear;\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224l-128 0 0-128 128 0 0 128zM64 288l128 0 0 128-128 0 0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M128 96l0-16c0-44.2 86-80 192-80S512 35.8 512 80l0 16c0 30.6-41.3 57.2-102 70.7-2.4-2.8-4.9-5.5-7.4-8-15.5-15.3-35.5-26.9-56.4-35.5-41.9-17.5-96.5-27.1-154.2-27.1-21.9 0-43.3 1.4-63.8 4.1-.2-1.3-.2-2.7-.2-4.1zM432 353l0-46.2c15.1-3.9 29.3-8.5 42.2-13.9 13.2-5.5 26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zm0-96l0-33c0-4.5-.4-8.8-1-13 15.5-3.9 30-8.6 43.2-14.2s26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zM0 240l0-16c0-44.2 86-80 192-80s192 35.8 192 80l0 16c0 44.2-86 80-192 80S0 284.2 0 240zm384 96c0 44.2-86 80-192 80S0 380.2 0 336l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3l0 15.4zm0 80.6l0 15.4c0 44.2-86 80-192 80S0 476.2 0 432l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [576, 512, [9894], \"f229\", \"M416-32c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0-58.7 58.7-17.4-17.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l17.4 17.4-23 23c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176c0-37-11.4-71.4-31-99.8l23-23 17.4 17.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L453.3 136 512 77.3 512 128c0 17.7 14.3 32 32 32s32-14.3 32-32L576 0c0-17.7-14.3-32-32-32L416-32zM128 304a112 112 0 1 1 224 0 112 112 0 1 1 -224 0z\"]\n};\nvar faHandshakeAngle = {\n prefix: 'fas',\n iconName: 'handshake-angle',\n icon: [576, 512, [\"hands-helping\"], \"f4c4\", \"M268.9 53.2L152.3 182.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 344 576 288 576 0 464 64 440.2 48.1C424.4 37.6 405.9 32 386.9 32l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 150.7L223.4 32 183.8 32c-25.5 0-49.9 10.1-67.9 28.1L0 192 0 544 144 408 156.4 418.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 409c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"]\n};\nvar faHandsHelping = faHandshakeAngle;\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [384, 512, [8595], \"f063\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7-105.4-105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faLocationDot = {\n prefix: 'fas',\n iconName: 'location-dot',\n icon: [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M0 188.6C0 84.4 86 0 192 0S384 84.4 384 188.6c0 119.3-120.2 262.3-170.4 316.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nvar faMapMarkerAlt = faLocationDot;\nvar faPlugCircleExclamation = {\n prefix: 'fas',\n iconName: 'plug-circle-exclamation',\n icon: [640, 512, [], \"e55d\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9-.9-5.3-5.3-9.3-10.6-10.1-51.5-8.2-92.8-47.1-104.5-97.4-1.8-7.6-8-13.4-15.7-14.6-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faScrewdriverWrench = {\n prefix: 'fas',\n iconName: 'screwdriver-wrench',\n icon: [576, 512, [\"tools\"], \"f7d9\", \"M70.8-6.7c5.4-5.4 13.8-6.2 20.2-2L209.9 70.5c8.9 5.9 14.2 15.9 14.2 26.6l0 49.6 90.8 90.8c33.3-15 73.9-8.9 101.2 18.5L542.2 382.1c18.7 18.7 18.7 49.1 0 67.9l-60.1 60.1c-18.7 18.7-49.1 18.7-67.9 0L288.1 384c-27.4-27.4-33.5-67.9-18.5-101.2l-90.8-90.8-49.6 0c-10.7 0-20.7-5.3-26.6-14.2L23.4 58.9c-4.2-6.3-3.4-14.8 2-20.2L70.8-6.7zm145 303.5c-6.3 36.9 2.3 75.9 26.2 107.2l-94.9 95c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8l135.4-135.5 35.2 35.1zM384.1 0c20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1L388.8 91.3c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l56.7-56.7c7.6-7.5 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 43.2-17.2 82.3-45 111.1l-49.1-49.1c-33.1-33-78.5-45.7-121.1-38.4l-56.8-56.8 0-29.7-.2-5c-.8-12.4-4.4-24.3-10.5-34.9 29.4-35 73.4-57.2 122.7-57.3z\"]\n};\nvar faTools = faScrewdriverWrench;\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faNavicon = faBars;\nvar faHandsPraying = {\n prefix: 'fas',\n iconName: 'hands-praying',\n icon: [640, 512, [\"praying-hands\"], \"f684\", \"M224 296c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112.6 88.2-119.7c13.1-17.8 9.3-42.8-8.5-55.9s-42.8-9.3-55.9 8.5L106.5 142.9C89.3 166.2 80 194.5 80 223.6l0 110.7-58.1 19.4C8.8 358 0 370.2 0 384l0 96c0 10 4.7 19.5 12.7 25.5s18.4 8 28.1 5.2l154.4-44.1c55-15.7 92.8-65.9 92.8-123.1L288 224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 72zm192 0l0-72c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 119.6c0 57.2 37.9 107.4 92.8 123.1l154.4 44.1c9.7 2.8 20 .8 28.1-5.2S640 490 640 480l0-96c0-13.8-8.8-26-21.9-30.4l-58.1-19.4 0-110.7c0-29-9.3-57.3-26.5-80.7L440.2 16.3C427.1-1.5 402.1-5.3 384.3 7.8s-21.6 38.1-8.5 55.9L464 183.4 464 296c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPrayingHands = faHandsPraying;\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M192 0c17.7 0 32 14.3 32 32 0 30.5 36.9 45.8 58.5 24.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-21.6 21.6-6.3 58.5 24.2 58.5 17.7 0 32 14.3 32 32s-14.3 32-32 32c-30.5 0-45.8 36.9-24.2 58.5 12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0c-21.6-21.6-58.5-6.3-58.5 24.2 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-30.5-36.9-45.8-58.5-24.2-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3C77.8 260.9 62.5 224 32 224 14.3 224 0 209.7 0 192s14.3-32 32-32c30.5 0 45.8-36.9 24.2-58.5-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0C123.1 77.8 160 62.5 160 32 160 14.3 174.3 0 192 0zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm248 40c0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24s24 10.7 24 24zM504 384a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faSchoolFlag = {\n prefix: 'fas',\n iconName: 'school-flag',\n icon: [576, 512, [], \"e56e\", \"M256-8c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-72 0 0 19.2 128 76.8 64 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 128-76.8 0-91.2zM240 384l0 80 96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48zM112 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm-224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [8482], \"f25c\", \"M346.6 110.2c-7.8-11.7-22.4-17-35.9-12.9S288 113.9 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-150.3 69.4 104.1c5.9 8.9 15.9 14.2 26.6 14.2s20.7-5.3 26.6-14.2L544 233.7 544 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-14.1-9.2-26.5-22.7-30.6s-28.1 1.1-35.9 12.9L448 262.3 346.6 110.2zM32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96z\"]\n};\nvar faFireBurner = {\n prefix: 'fas',\n iconName: 'fire-burner',\n icon: [512, 512, [], \"e4f1\", \"M281.7 48.3L294 34.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM320 240.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64zM92.8 320c37.7 48.3 96.1 80 163.2 80 66.5 0 125.1-31.7 163-80l45 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l44.8 0zM456 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faFaceSmileBeam = {\n prefix: 'fas',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faTentArrowLeftRight = {\n prefix: 'fas',\n iconName: 'tent-arrow-left-right',\n icon: [512, 512, [], \"e57f\", \"M-.5 113c-9.4-9.4-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 310.1 0 54.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0-.1 0-262 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72zM37.1 476L60.3 292.6c1.2-9.7 6.8-18.3 15.1-23.3L238.8 170c10.2-6.2 22.9-6.2 33.1-.1l165.5 99.4c8.4 5 14 13.7 15.3 23.4L475.9 476c2.4 19.1-12.5 36-31.7 36l-71.9 0c-12.1 0-23.2-6.8-28.6-17.7L275.4 357.9c-1.8-3.6-5.5-5.9-9.5-5.9-5.9 0-10.6 4.7-10.6 10.6l0 117.4c0 17.7-14.3 32-32 32L68.8 512c-19.3 0-34.2-16.9-31.7-36z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M512 96c0 50.2-59.1 125.1-84.6 155-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8 6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96 0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8-25.2-27.4-85-97.9-85-148.4 0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAnglesUp = {\n prefix: 'fas',\n iconName: 'angles-up',\n icon: [384, 512, [\"angle-double-up\"], \"f102\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 329.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faAngleDoubleUp = faAnglesUp;\nvar faBucket = {\n prefix: 'fas',\n iconName: 'bucket',\n icon: [448, 512, [], \"e4cf\", \"M443.7 208c2.7 4.7 4.3 10.2 4.3 16 0 17.7-14.3 32-32 32l-5.1 0-22.4 213c-2.6 24.4-23.2 43-47.8 43l-233.6 0c-24.6 0-45.2-18.5-47.8-43L37.1 256 32 256c-17.7 0-32-14.3-32-32 0-5.8 1.6-11.3 4.3-16l439.4 0zM224-16c79.5 0 144 64.5 144 144l0 32-48 0 0-32c0-53-43-96-96-96s-96 43-96 96l0 32-48 0 0-32C80 48.5 144.5-16 224-16z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M426.1 94.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-384 128C8.8 166 0 178.2 0 192s8.8 26 21.9 30.4l384 128c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L133.2 192 426.1 94.4zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"]\n};\nvar faFolderClosed = {\n prefix: 'fas',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 448L64 448c-35.3 0-64-28.7-64-64l0-176 512 0 0 176c0 35.3-28.7 64-64 64zm64-288L0 160 0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 16z\"]\n};\nvar faPersonThroughWindow = {\n prefix: 'fas',\n iconName: 'person-through-window',\n icon: [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4-60.5 24.2-100.1 82.7-100.1 147.9l0 73.8-64 0 0-320zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4 44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-26.6 0 42.7 64 150.9 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4l-84.2-126.2 74.6 0 40 48zm-159.5 0l-73.5 0 0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faSchoolLock = {\n prefix: 'fas',\n iconName: 'school-lock',\n icon: [640, 512, [], \"e56f\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c33 0 60.2 25 63.6 57.2-14.7-5.9-30.8-9.2-47.6-9.2-70.7 0-128 57.3-128 128l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L64 512c-35.3 0-64-28.7-64-64L0 192zM332.3 341.5c-6-3.5-12.9-5.5-20.3-5.5l-48 0c-22.1 0-40 17.9-40 40l0 88 96 0 0-64.1c0-20.8 4.4-40.5 12.3-58.4zM112 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm224-48a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM560 352l0-47.9c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0zm-112 2.7l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3z\"]\n};\nvar faPersonBurst = {\n prefix: 'fas',\n iconName: 'person-burst',\n icon: [640, 512, [], \"e53b\", \"M204 40.1c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24zM4 144.1c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM96.5 285.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L96.5 285.5zM62.6 2.7c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L62.6 36.6c-9.4-9.4-9.4-24.6 0-33.9zM352.4-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM478.7 299.1l-46.3-62.4 0 275.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c25.2-33.9 65-53.9 107.2-53.9s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6z\"]\n};\nvar faLeftLong = {\n prefix: 'fas',\n iconName: 'left-long',\n icon: [576, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9S192 115.1 192 128l0 64 336 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-336 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"]\n};\nvar faLongArrowAltLeft = faLeftLong;\nvar faLocationCrosshairs = {\n prefix: 'fas',\n iconName: 'location-crosshairs',\n icon: [576, 512, [\"location\"], \"f601\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM128 256a160 160 0 1 0 320 0 160 160 0 1 0 -320 0zm160-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faLocation = faLocationCrosshairs;\nvar faPersonDotsFromLine = {\n prefix: 'fas',\n iconName: 'person-dots-from-line',\n icon: [512, 512, [\"diagnoses\"], \"f470\", \"M184 72a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 299.3c-19.9 22.6-32 52.2-32 84.7l0 32-64 0 0-32c0-106 86-192 192-192s192 86 192 192l0 32-64 0 0-32c0-32.5-12.1-62.1-32-84.7l0 116.7-192 0 0-116.7zM232 384a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88-104a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM24 464l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM64 184a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm424 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faDiagnoses = faPersonDotsFromLine;\nvar faGaugeSimpleHigh = {\n prefix: 'fas',\n iconName: 'gauge-simple-high',\n icon: [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64z\"]\n};\nvar faTachometer = faGaugeSimpleHigh;\nvar faTachometerFast = faGaugeSimpleHigh;\nvar faAnglesLeft = {\n prefix: 'fas',\n iconName: 'angles-left',\n icon: [448, 512, [171, \"angle-double-left\"], \"f100\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L269.3 256 406.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"]\n};\nvar faAngleDoubleLeft = faAnglesLeft;\nvar faUpDown = {\n prefix: 'fas',\n iconName: 'up-down',\n icon: [512, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M406.6 502.6l96-96c9.2-9.2 11.9-22.9 6.9-34.9S492.9 352 480 352l-64 0 0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 320-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l96 96c12.5 12.5 32.8 12.5 45.3 0zM150.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l64 0 0 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320 64 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-96-96z\"]\n};\nvar faArrowsAltV = faUpDown;\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [\"battery-0\"], \"f244\", \"M112 160c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16l416 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16l-416 0zM32 176c0-44.2 35.8-80 80-80l416 0c44.2 0 80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 48c0 44.2-35.8 80-80 80l-416 0c-44.2 0-80-35.8-80-80l0-224z\"]\n};\nvar faBattery0 = faBatteryEmpty;\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM176 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [9201], \"f2f2\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm80 184l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [128225], \"f7c0\", \"M232 0c154.6 0 280 125.4 280 280 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-128.1-103.9-232-232-232-13.3 0-24-10.7-24-24S218.7 0 232 0zM208 120c0-13.3 10.7-24 24-24 101.6 0 184 82.4 184 184 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-75.1-60.9-136-136-136-13.3 0-24-10.7-24-24zM26.4 142.7c8.8-17.9 32.4-19.9 46.5-5.8l128.5 128.5 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32 128.5 128.5c14.1 14.1 12 37.6-5.8 46.5-34.2 16.9-72.6 26.4-113.3 26.4-141.4 0-256-114.6-256-256 0-40.7 9.5-79.2 26.4-113.3z\"]\n};\nvar faFaceRollingEyes = {\n prefix: 'fas',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 352l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm32-128c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4zm128 64c-35.3 0-64-28.7-64-64 0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4 0 35.3-28.7 64-64 64z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faListCheck = {\n prefix: 'fas',\n iconName: 'list-check',\n icon: [512, 512, [\"tasks\"], \"f0ae\", \"M133.8 36.3c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 158 47 153L7 113C-2.3 103.6-2.3 88.4 7 79S31.6 69.7 41 79l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zm0 160c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 318 47 313L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM64 376a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faTasks = faListCheck;\nvar faSackXmark = {\n prefix: 'fas',\n iconName: 'sack-xmark',\n icon: [512, 512, [], \"e56a\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM323.9 284.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [512, 512, [62098], \"23\", \"M214.7 .7c17.3 3.7 28.3 20.7 24.6 38l-19.1 89.3 126.5 0 22-102.7C372.4 8 389.4-3 406.7 .7s28.3 20.7 24.6 38L412.2 128 480 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-27.4 128 67.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38l19.1-89.3-126.5 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38L99.8 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 27.4-128-67.8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 22-102.7C180.4 8 197.4-3 214.7 .7zM206.4 192l-27.4 128 126.5 0 27.4-128-126.5 0z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [384, 512, [128646], \"f238\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM192 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [\"arrow-right-from-file\"], \"f56e\", \"M96.5 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-96 78.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-78.1 0 0-133.5c0-17-6.7-33.3-18.7-45.3L291.2 18.7C279.2 6.7 263 0 246 0L96.5 0zM358 176l-93.5 0c-13.3 0-24-10.7-24-24L240.5 58.5 358 176zM224.5 328c0-13.3 10.7-24 24-24l104 0 0 48-104 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faArrowRightFromFile = faFileExport;\nvar faFaceGrimace = {\n prefix: 'fas',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM400 352c0 25.2-19.4 45.8-44 47.8l0-95.7c24.6 2 44 22.7 44 47.8zM276 304l40 0 0 96-40 0 0-96zm-80 96l0-96 40 0 0 96-40 0zm-40-95.8l0 95.7c-24.6-2-44-22.7-44-47.8s19.4-45.8 44-47.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faTrainSubway = {\n prefix: 'fas',\n iconName: 'train-subway',\n icon: [384, 512, [\"subway\"], \"f239\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l72 0 0-160-72 0c-17.7 0-32 14.3-32 32zM216 256l72 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-72 0 0 160zM96 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm224-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faSubway = faTrainSubway;\nvar faCircleDot = {\n prefix: 'fas',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l337.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1zm448 0c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1zM144 176c0-17.7 14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-64zM256 320l32 0c44.2 0 80-35.8 80-80l32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [128674], \"f21a\", \"M272 0c-26.5 0-48 21.5-48 48l0 16-16 0c-44.2 0-80 35.8-80 80l0 108.8-21.6 8.6c-14.8 5.9-22.5 22.4-17.4 37.5 10.4 31.3 26.8 59.3 47.7 83.1 20.1-9.2 41.7-13.9 63.3-14 33.1-.2 66.3 10.2 94.4 31.4l1.6 1.2 0-215-104 41.6 0-83.2c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 83.2-104-41.6 0 215 1.6-1.2c27.5-20.7 59.9-31.2 92.4-31.4 22.3-.1 44.6 4.5 65.3 14 20.9-23.7 37.3-51.8 47.7-83.1 5-15.2-2.6-31.6-17.4-37.5L512 252.8 512 144c0-44.2-35.8-80-80-80l-16 0 0-16c0-26.5-21.5-48-48-48L272 0zM403.4 476.1c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faC = {\n prefix: 'fas',\n iconName: 'c',\n icon: [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3 155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8 221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faSquarePhone = {\n prefix: 'fas',\n iconName: 'square-phone',\n icon: [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 96.7c9.8-2.7 20.1 2.4 24 11.8l20.3 48.7c3.4 8.3 1.1 17.8-5.9 23.5l-22.1 18c16.2 35.8 44.5 65 79.6 82.4l19.3-23.6c5.7-6.9 15.2-9.3 23.5-5.9l48.7 20.3c9.4 3.9 14.4 14.2 11.8 24l-.8 2.8c-8.8 32.3-40.1 59.9-78.2 51.8-87.5-18.5-156.3-87.4-174.9-174.9-8.1-38.1 19.5-69.4 51.8-78.2l2.8-.8z\"]\n};\nvar faPhoneSquare = faSquarePhone;\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [448, 512, [], \"f546\", \"M1 441.7C5.5 463.5 24.8 480 48 480l352 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-64 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-64-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-48c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432c0 3.3 .3 6.6 1 9.7z\"]\n};\nvar faArrowsRotate = {\n prefix: 'fas',\n iconName: 'arrows-rotate',\n icon: [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M65.9 228.5c13.3-93 93.4-164.5 190.1-164.5 53 0 101 21.5 135.8 56.2 .2 .2 .4 .4 .6 .6l7.6 7.2-47.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.4-11.3-10.7C390.5 28.6 326.5 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1zm443.5 64c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-53 0-101-21.5-135.8-56.2-.2-.2-.4-.4-.6-.6l-7.6-7.2 47.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320c-8.5 0-16.7 3.4-22.7 9.5S-.1 343.7 0 352.3l1 127c.1 17.7 14.6 31.9 32.3 31.7S65.2 496.4 65 478.7l-.4-51.5 10.7 10.1c46.3 46.1 110.2 74.7 180.7 74.7 129 0 235.7-95.4 253.4-219.5z\"]\n};\nvar faRefresh = faArrowsRotate;\nvar faSync = faArrowsRotate;\nvar faPersonDress = {\n prefix: 'fas',\n iconName: 'person-dress',\n icon: [384, 512, [\"female\"], \"f182\", \"M136 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM112 384l-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L270 234 313 362.9c3.5 10.4-4.3 21.1-15.2 21.1l-25.8 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-32 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128z\"]\n};\nvar faFemale = faPersonDress;\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [512, 512, [128214, 128366], \"f518\", \"M256 141.3l0 309.3 .5-.2C311.1 427.7 369.7 416 428.8 416l19.2 0 0-320-19.2 0c-42.2 0-84.1 8.4-123.1 24.6-16.8 7-33.4 13.9-49.7 20.7zM230.9 61.5L256 72 281.1 61.5C327.9 42 378.1 32 428.8 32L464 32c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-35.2 0c-50.7 0-100.9 10-147.7 29.5l-12.8 5.3c-7.9 3.3-16.7 3.3-24.6 0l-12.8-5.3C184.1 490 133.9 480 83.2 480L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l35.2 0c50.7 0 100.9 10 147.7 29.5z\"]\n};\nvar faFolderTree = {\n prefix: 'fas',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 392c0 30.9 25.1 56 56 56l184 0 0-48-184 0c-4.4 0-8-3.6-8-8l0-232 192 0 0-48-192 0 0-88zM336 224l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48zm0 288l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 288c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48z\"]\n};\nvar faVirgo = {\n prefix: 'fas',\n iconName: 'virgo',\n icon: [640, 512, [], \"e850\", \"M368 32c61.9 0 112 50.1 112 112l0 26.8c14.5-6.9 30.8-10.8 48-10.8 61.9 0 112 50.1 112 112S589.9 384 528 384l-48 0 0 32c0 16.6 12.6 30.2 28.7 31.8l6.6 .3c16.1 1.6 28.7 15.3 28.7 31.8 0 17.7-14.3 32-32 32-53 0-96-43-96-96l0-32-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-176c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-304c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 94.2 32 80.6 32 64 32 46.3 46.3 32 64 32 91 32 115.3 43.1 132.7 61 152.6 43 179 32 208 32 239.3 32 267.7 44.9 288 65.7 308.3 44.9 336.6 32 368 32zM528 224c-26.5 0-48 21.5-48 48l0 48 48 0c26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faBoxArchive = {\n prefix: 'fas',\n iconName: 'box-archive',\n icon: [512, 512, [\"archive\"], \"f187\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64zM32 176l448 0 0 240c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-240zm152 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faArchive = faBoxArchive;\nvar faTentArrowDownToLine = {\n prefix: 'fas',\n iconName: 'tent-arrow-down-to-line',\n icon: [576, 512, [], \"e57e\", \"M185 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1C120 2.7 109.3-8 96-8S72 2.7 72 16l0 102.1-31-31C31.6 77.7 16.4 77.7 7 87S-2.3 111.6 7 121l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zM155.8 260.6L132.1 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32 0-2.8-.4-5.5-1-8L548.2 260.7c-1.2-9.7-6.9-18.4-15.3-23.4L367.4 137.9c-10.2-6.1-22.9-6.1-33.1 .1L170.9 237.3c-8.3 5.1-13.9 13.7-15.1 23.3zM448 448l-97.1 0 0-149.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9L448 448z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M64 160l64 0 0-64-64 0 0 64zM0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 416l64 0 0-64-64 0 0 64zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zM320 96l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zM288 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm96 32c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-32 32a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4-43.3-32.5c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L464 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8 0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7l-13.3-13.3-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1 0 60.6-49.1 109.8-109.8 109.8L32.3 512c-3.3 0-6.6-.4-9.6-1.4-9.2-2.8-16.7-9.6-20.4-18.6-1.3-3.3-2.2-6.9-2.3-10.7-.2-3.7 .3-7.3 1.3-10.7 2.8-9.2 9.6-16.7 18.6-20.4 3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1 0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-102.5zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9 0 13.3 10.7 24 24 24 10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9S.1 232.8 5.4 228L130.9 116.5z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9l-67.9 67.9-67.9-67.9C106.1 124.9 96 100.4 96 75z\"]\n};\nvar faHourglass3 = faHourglassEnd;\nvar faGrip = {\n prefix: 'fas',\n iconName: 'grip',\n icon: [512, 512, [58119, \"grid-horizontal\", \"grip-horizontal\"], \"f58d\", \"M88 96c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM280 224l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm192 0l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm0 192l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zM280 288c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM88 416l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40z\"]\n};\nvar faGridHorizontal = faGrip;\nvar faGripHorizontal = faGrip;\nvar faBorderTopLeft = {\n prefix: 'fas',\n iconName: 'border-top-left',\n icon: [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C28.7 32 0 60.7 0 96L0 448zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm160 32c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM384 192a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm32 160a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBorderStyle = faBorderTopLeft;\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [\"list-dots\"], \"f0ca\", \"M48 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM48 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM96 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faListDots = faListUl;\nvar faPeopleRobbery = {\n prefix: 'fas',\n iconName: 'people-robbery',\n icon: [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6 0 191.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z\"]\n};\nvar faMobileButton = {\n prefix: 'fas',\n iconName: 'mobile-button',\n icon: [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faArrowDownAZ = {\n prefix: 'fas',\n iconName: 'arrow-down-a-z',\n icon: [512, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm182-340.9c50.7 101.3 77.3 154.7 80 160 7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9c2.7-5.3 29.3-58.7 80-160 5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 135.6l-20.2 40.4 40.4 0-20.2-40.4zM288 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 416 448 416c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l73.4-73.4-50.7 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSortAlphaAsc = faArrowDownAZ;\nvar faSortAlphaDown = faArrowDownAZ;\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [512, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm192 24c0 4.4-3.6 8.1-8 7.5-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48zM64 328c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zm8-136.5c-4.4 .5-8-3.1-8-7.5l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5zm368 129c4.4-.5 8 3.1 8 7.5l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5z\"]\n};\nvar faCircleMinus = {\n prefix: 'fas',\n iconName: 'circle-minus',\n icon: [512, 512, [\"minus-circle\"], \"f056\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM168 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusCircle = faCircleMinus;\nvar faArrowPointer = {\n prefix: 'fas',\n iconName: 'arrow-pointer',\n icon: [448, 512, [\"mouse-pointer\"], \"f245\", \"M77.3 2.5c8.1-4.1 17.9-3.2 25.1 2.3l320 239.9c8.3 6.2 11.6 17 8.4 26.8s-12.4 16.4-22.8 16.4l-152.3 0 88.9 177.7c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-88.9-177.7-91.3 121.8c-6.2 8.3-17 11.6-26.8 8.4S64 434.3 64 424L64 24c0-9.1 5.1-17.4 13.3-21.5z\"]\n};\nvar faMousePointer = faArrowPointer;\nvar faSquareShareNodes = {\n prefix: 'fas',\n iconName: 'square-share-nodes',\n icon: [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM368 160c0 35.3-28.7 64-64 64-15.4 0-29.5-5.4-40.6-14.5l-85.3 46.5 85.3 46.5c11-9.1 25.2-14.5 40.6-14.5 35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L158.5 300c-11.7 12.3-28.2 20-46.5 20-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3 0-35.3 28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faShareAltSquare = faSquareShareNodes;\nvar faTableCellsLarge = {\n prefix: 'fas',\n iconName: 'table-cells-large',\n icon: [448, 512, [\"th-large\"], \"f009\", \"M384 96l-128 0 0 128 128 0 0-128zm64 128l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 128zM64 288l0 128 128 0 0-128-128 0zm128-64l0-128-128 0 0 128 128 0zm64 64l0 128 128 0 0-128-128 0z\"]\n};\nvar faThLarge = faTableCellsLarge;\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [576, 512, [128008], \"f6be\", \"M64 96c53 0 96 43 96 96l0 85.8c29.7-44.7 77.8-76.2 133.4-84 25.6 60 85.2 102.1 154.6 102.1 10.9 0 21.6-1.1 32-3.1L480 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8-136 108.8 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-224c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 158.2 32 144.6 32 128 32 110.3 46.3 96 64 96zM533.8 3.2C544.2-5.5 560 1.9 560 15.5L560 128c0 61.9-50.1 112-112 112S336 189.9 336 128l0-112.5c0-13.6 15.8-21 26.2-12.3L416 48 480 48 533.8 3.2zM400 108a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm96 0a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-192 0z\"]\n};\nvar faCodeCompare = {\n prefix: 'fas',\n iconName: 'code-compare',\n icon: [512, 512, [], \"e13a\", \"M198.8 1.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S184 145.7 184 136l0-24-24 0c-17.7 0-32 14.3-32 32l0 214.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L64 144c0-53 43-96 96-96l24 0 0-24c0-9.7 5.8-18.5 14.8-22.2zM392 80a24 24 0 1 0 48 0 24 24 0 1 0 -48 0zm-8 73.3c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L448 368c0 53-43 96-96 96l-24 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S328 366.3 328 376l0 24 24 0c17.7 0 32-14.3 32-32l0-214.7zM72 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"]\n};\nvar faLeo = {\n prefix: 'fas',\n iconName: 'leo',\n icon: [512, 512, [], \"e84a\", \"M260 0c72.9 0 132 59.1 132 132l0 5.4-.1 1.4-23.8 270c.4 21.7 18.2 39.2 40 39.2 22.1 0 40-17.9 40-40l0-40c0-17.7 14.3-32 32-32s32 14.3 32 32l0 40c0 57.4-46.6 104-104 104S304 465.4 304 408l0-1.4 .1-1.4 23.9-270.6 0-2.6c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 4c0 3.7 .3 7.3 .8 11l29.7 193.4c.9 6.1 1.4 12.2 1.4 18.4l0 9.2c0 61.9-50.1 112-112 112S0 429.9 0 368 50.1 256 112 256c11.7 0 23 1.8 33.7 5.1L129.6 156.7c-1.1-6.8-1.6-13.8-1.6-20.7l0-4C128 59.1 187.1 0 260 0zM112 320a48 48 0 1 0 0 96 48 48 0 1 0 0-96z\"]\n};\nvar faRoadCircleXmark = {\n prefix: 'fas',\n iconName: 'road-circle-xmark',\n icon: [640, 512, [], \"e566\", \"M287.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.6 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.2c35.2-40 86.7-65.2 144.2-65.2 9 0 17.8 .6 26.4 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.5 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [576, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320zm96 64l128 0 0 64-128 0 0-64zm192 0l128 0 0 64-128 0 0-64z\"]\n};\nvar faCakeCandles = {\n prefix: 'fas',\n iconName: 'cake-candles',\n icon: [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4-10.5L61.8 31.6C58 38.1 56 45.6 56 53.2L56 56c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zm128 0L189.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zM317.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5L317.8 31.6zM128 160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.5C26.7 226.6 0 262.2 0 304l0 20.8c20.9 1.3 41.6 7.3 60.3 18l7.1 4.1c26.3 15 58.9 13.4 83.6-4.2 43.7-31.2 102.3-31.2 146 0 24.6 17.6 57.3 19.3 83.6 4.2l7.1-4.1c18.7-10.7 39.3-16.7 60.3-18l0-20.8c0-41.8-26.7-77.4-64-90.5l0-53.5c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 373c-12.7 1.2-25.1 5-36.5 11.5l-7.1 4.1c-42.6 24.3-95.4 21.7-135.3-6.8-27-19.3-63.2-19.3-90.2 0-39.9 28.5-92.7 31.2-135.3 6.8l-7.1-4.1C25.1 378 12.7 374.1 0 373l0 75c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-75z\"]\n};\nvar faBirthdayCake = faCakeCandles;\nvar faCake = faCakeCandles;\nvar faBugSlash = {\n prefix: 'fas',\n iconName: 'bug-slash',\n icon: [576, 512, [], \"e490\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0L241.8 176 344 176c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4s7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 9.5-.8 18.7-2.4 27.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM398.2 468c-23.2 22.1-53 37.2-86.2 42.2l0-128.4 86.2 86.2zM264 333.8l0 176.4c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c3.3-13.9 9.3-26.7 17.6-37.8L264 333.8zM355.6 128l-82.4 0-72.3-72.3C216.1 22.8 249.4 0 288 0 341 0 384 43 384 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4z\"]\n};\nvar faTarp = {\n prefix: 'fas',\n iconName: 'tarp',\n icon: [512, 512, [], \"e57b\", \"M448 64c35.3 0 64 28.7 64 64l0 149.5c0 17-6.7 33.3-18.7 45.3L386.7 429.3c-12 12-28.3 18.7-45.3 18.7L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l384 0zm5.5 208L360 272c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5zM96 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faDiagramPredecessor = {\n prefix: 'fas',\n iconName: 'diagram-predecessor',\n icon: [448, 512, [], \"e477\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 352l-320 0 0 64 320 0 0-64zm64 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64z\"]\n};\nvar faFaceFlushed = {\n prefix: 'fas',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM168 392c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-96a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faDiagramNext = {\n prefix: 'fas',\n iconName: 'diagram-next',\n icon: [448, 512, [], \"e476\", \"M384 224c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l128 0 0 64-32 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S294.5 288 288 288l-32 0 0-64 128 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64l-34 0c5.6 21.7-.5 45.1-16.7 61.3l-64 64c-25 25-65.5 25-90.5 0l-64-64C98.6 333.1 92.4 309.7 98 288l-34 0z\"]\n};\nvar faAnchorCircleXmark = {\n prefix: 'fas',\n iconName: 'anchor-circle-xmark',\n icon: [640, 512, [], \"e4ac\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPersonCircleXmark = {\n prefix: 'fas',\n iconName: 'person-circle-xmark',\n icon: [640, 512, [], \"e543\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M169.7 227.5c34.3 18.7 64.5 44.1 88.8 74.5 11.1 13.9 21 28.9 29.4 44.8 8.5-15.9 18.3-30.8 29.4-44.8 24.3-30.5 54.5-55.9 88.8-74.5 41.7-22.7 89.4-35.5 139.7-35.5l9.9 0c11.1 0 20.1 9 20.1 20.1 0 148-119.9 267.9-267.9 267.9l-40.2 0C119.9 480 0 360.1 0 212.1 0 201 9 192 20.1 192l9.9 0c50.4 0 98.1 12.8 139.7 35.5zM303.9 38c16.9 15.9 61.4 63.4 89 142.3-40.1 20.2-75.8 48.2-104.9 82.1-29.2-33.9-64.8-61.8-104.9-82.1 27.6-78.9 72.2-126.4 89-142.3 4.3-4.1 10-6 15.9-6s11.6 2 15.9 6z\"]\n};\nvar faAries = {\n prefix: 'fas',\n iconName: 'aries',\n icon: [512, 512, [], \"e846\", \"M401.6 0c61.3 0 110.4 50.3 110.4 111 0 29.4-11.6 57.9-32.6 78.8l-8.8 8.8c-12.5 12.5-32.8 12.5-45.2 0s-12.5-32.8 0-45.2l8.8-8.8c8.8-8.8 13.8-21 13.8-33.6 0-25.9-21.1-47-46.4-47-22.5 0-41.7 16.1-45.7 38.2L287.5 485.6c0 .1-.1 .3-.1 .4-.2 .8-.3 1.6-.5 2.3-.1 .3-.1 .5-.2 .7-.2 .6-.4 1.3-.7 1.9-.2 .5-.4 1-.6 1.5-.1 .3-.3 .6-.4 .9-1.6 3.5-3.8 6.5-6.4 9.2-2 2-4.2 3.7-6.6 5.1-.2 .1-.3 .2-.5 .3-.7 .4-1.4 .7-2.1 1-.3 .1-.6 .3-.9 .4-.5 .2-1 .4-1.5 .6-.6 .2-1.2 .5-1.9 .7-.2 .1-.5 .2-.7 .2-.8 .2-1.6 .4-2.3 .5-.2 0-.3 .1-.4 .1-.2 0-.4 0-.6 .1-.7 .1-1.3 .2-2 .2-.4 0-.8 .1-1.2 .1-.6 0-1.2 .1-1.8 .1-.6 0-1.2 0-1.8-.1-.4 0-.8-.1-1.2-.1-.7-.1-1.4-.1-2-.2-.2 0-.4 0-.6-.1-.2 0-.3-.1-.5-.1-.8-.2-1.6-.3-2.3-.5-.3-.1-.5-.1-.8-.2-.6-.2-1.3-.4-1.9-.7-.5-.2-1-.4-1.5-.6-.3-.1-.6-.3-.9-.4-.7-.3-1.4-.7-2.1-1-.2-.1-.3-.2-.5-.3-2.4-1.4-4.7-3.1-6.6-5.1-2.6-2.6-4.8-5.7-6.4-9.2-.1-.2-.2-.3-.2-.5l-.5-1.1c-.1-.3-.2-.5-.3-.8-.2-.6-.5-1.2-.7-1.9-.1-.2-.2-.5-.2-.7-.2-.8-.4-1.6-.5-2.3 0-.1-.1-.3-.1-.4L156 102.2c-4-22.1-23.2-38.2-45.7-38.2-25.3 0-46.4 21.1-46.4 47 0 12.6 5 24.8 13.8 33.6l8.8 8.8c12.5 12.5 12.5 32.8 0 45.2s-32.8 12.5-45.2 0l-8.8-8.8C11.6 168.9 0 140.3 0 111 0 50.3 49.1 0 110.4 0 163.8 0 209.6 38.3 219 91l37 207 37-207c9.4-52.6 55.2-91 108.7-91z\"]\n};\nvar faBarsProgress = {\n prefix: 'fas',\n iconName: 'bars-progress',\n icon: [448, 512, [\"tasks-alt\"], \"f828\", \"M288 160l96 0 0-64-96 0 0 64zM0 160L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 224c-26.5 0-48-21.5-48-48l0-16zM160 416l224 0 0-64-224 0 0 64zM0 416l0-80c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-16z\"]\n};\nvar faTasksAlt = faBarsProgress;\nvar faHeartCircleCheck = {\n prefix: 'fas',\n iconName: 'heart-circle-check',\n icon: [576, 512, [], \"e4fd\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faMarsStrokeRight = {\n prefix: 'fas',\n iconName: 'mars-stroke-right',\n icon: [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M320.5 256a112 112 0 1 0 -224 0 112 112 0 1 0 224 0zM208.5 80c86.3 0 158.1 62.1 173.1 144.1 1-.1 1.9-.1 2.9-.1l16 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 61.4 0-22.4-28c-11-13.8-8.8-33.9 5-45s33.9-8.8 45 5l64 80c9.3 11.7 9.3 28.3 0 40l-64 80c-11 13.8-31.2 16-45 5s-16-31.2-5-45l22.4-28-61.4 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-16 0c-1 0-1.9 0-2.9-.1-15 82-86.8 144.1-173.1 144.1-97.2 0-176-78.8-176-176s78.8-176 176-176z\"]\n};\nvar faMarsStrokeH = faMarsStrokeRight;\nvar faTowerObservation = {\n prefix: 'fas',\n iconName: 'tower-observation',\n icon: [448, 512, [], \"e586\", \"M209.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9-5.6 11.2-16.9 17.7-28.6 17.7l0 80c0 17.7-14.3 32-32 32l-13 0 32 192 45 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l45 0 32-192-13 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7-7.9-15.8-1.5-35 14.3-42.9l160-80zM310.7 448l-86.7-61.9-86.7 61.9 173.4 0zm-153-192l-3.5 21.2 69.9 49.9 69.9-49.9-3.5-21.2-132.7 0zm-12.3 73.9l-10.1 60.6 47.5-33.9-37.4-26.7zm119.9 26.7l47.5 33.9-10.1-60.6-37.4 26.7zM152 128c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faSterlingSign = {\n prefix: 'fas',\n iconName: 'sterling-sign',\n icon: [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M91.3 288l-34.8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l21.4 0C37.3 147.3 105.1 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-57.3 0-94.7 59.9-69.7 111.4 3.6 7.4 6.6 14.9 9.1 22.6l149.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-141.2 0c1 35.3-8.7 70.6-28.9 100.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c13.1-19.6 19.2-42.6 18.2-65.4z\"]\n};\nvar faGbp = faSterlingSign;\nvar faPoundSign = faSterlingSign;\nvar faFaucetDrip = {\n prefix: 'fas',\n iconName: 'faucet-drip',\n icon: [512, 512, [128688], \"e006\", \"M224 32c-17.7 0-32 14.3-32 32L96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l96 0 0 64-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 224 32 224c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32 0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4l-18.7 0 0-64 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c0-17.7-14.3-32-32-32zM436.8 455.4l-18.2 42.4c-1.8 4.1-2.7 8.6-2.7 13.1l0 1.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.2c0-4.5-.9-8.9-2.7-13.1l-18.2-42.4c-1.9-4.5-6.3-7.4-11.2-7.4s-9.2 2.9-11.2 7.4z\"]\n};\nvar faCircleInfo = {\n prefix: 'fas',\n iconName: 'circle-info',\n icon: [512, 512, [\"info-circle\"], \"f05a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faInfoCircle = faCircleInfo;\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [129718], \"f52d\", \"M352 0c41 0 80.3 16.3 109.2 45.2l5.5 5.5c29 29 45.3 68.3 45.3 109.2 0 24.1-5.7 47.6-16.2 68.8-1.9 3.7-5.3 6.5-9.3 7.7L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l32.2 0c14.3 0 21.4 17.2 11.3 27.3l-22.4 22.4c-1.9 1.9-4.2 3.2-6.7 4l-81 24.3c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2 13.2 0 18.9 15.7 7.8 22.9-41.1 26.6-89.3 41.1-139 41.1l-86 0-48 48c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L79.5 336.5c-5.7 5.7-15.5 1.7-15.5-6.4 0-67.9 27-133 75-181L242.8 45.2C271.7 16.3 311 0 352 0z\"]\n};\nvar faBowlRice = {\n prefix: 'fas',\n iconName: 'bowl-rice',\n icon: [512, 512, [], \"e2eb\", \"M176 40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 160l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 184c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM104 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM296 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM392 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 16l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faStarHalfStroke = {\n prefix: 'fas',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288.1 353.6c10 0 19.9 2.3 29 7l74.4 37.9-13-82.5c-3.2-20.2 3.5-40.7 17.9-55.2l59-59.1-82.5-13.1c-20.2-3.2-37.7-15.9-47-34.1l-38-74.4 0 273.6zM457.4 489c-7.3 5.3-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1s17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faTemperatureArrowDown = {\n prefix: 'fas',\n iconName: 'temperature-arrow-down',\n icon: [512, 512, [\"temperature-down\"], \"e03f\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 310.6c-6 6-14.1 9.4-22.6 9.4s-16.6-3.4-22.6-9.4l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-178.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64z\"]\n};\nvar faTemperatureDown = faTemperatureArrowDown;\nvar faMaskVentilator = {\n prefix: 'fas',\n iconName: 'mask-ventilator',\n icon: [640, 512, [], \"e524\", \"M152.2 192c-15.4 38.3-24.2 77.2-24.2 108.8 0 13.3 1.5 26.2 4.4 38.7l-17-3.4c-29.9-6-51.4-32.2-51.4-62.8l0-81.3 88.2 0zm32.9-64L64 128c-35.3 0-64 28.7-64 64l0 81.3c0 61 43.1 113.5 102.9 125.5l66.3 13.3c18.7 22.1 42.9 40 70.8 51.8l0-87.8c-10.1-14.2-16-31.3-16-49.7 0-49.5 43-134.4 96-134.4 52.5 0 96 84.9 96 134.4 0 18.4-5.9 35.4-16 49.6l0 87.7c27.6-11.8 51.7-29.6 70.4-51.6l66.7-13.3c59.8-12 102.9-64.5 102.9-125.5l0-81.3c0-35.3-28.7-64-64-64l-121.5 0c-34.8-54.2-82.5-96-134.5-96-52.6 0-100.2 41.8-134.9 96zm302.5 64l88.4 0 0 81.3c0 30.5-21.5 56.8-51.4 62.8l-17 3.4c2.9-12.4 4.5-25.4 4.5-38.7 0-31.6-8.9-70.5-24.4-108.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM80 304l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faArrowTrendDown = {\n prefix: 'fas',\n iconName: 'arrow-trend-down',\n icon: [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7-169.4-169.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-176 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30 0 21.3c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192 397.5 166.8c-8.9-4.4-18.7-6.8-28.6-6.8l-80.9 0 0-32 32 0zM96 208l0 86.1-48-21.3 0-64.8 48 0z\"]\n};\nvar faPeopleCarryBox = {\n prefix: 'fas',\n iconName: 'people-carry-box',\n icon: [576, 512, [\"people-carry\"], \"f4ce\", \"M64-32A56 56 0 1 1 64 80 56 56 0 1 1 64-32zM0 171.1c0-32.6 26.5-59.1 59.1-59.1 23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c5.8 8.2 15.1 13.1 25.1 13.4l0-96c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c10-.3 19.3-5.2 25.1-13.4l48.7-68.2c13.6-19.1 35.6-30.4 59.1-30.4 32.6 0 59.1 26.5 59.1 59.1L576 272c0 30.2-14.2 58.7-38.4 76.8l-76.8 57.6c-8.1 6-12.8 15.5-12.8 25.6l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-30.2 14.2-58.7 38.4-76.8l41.6-31.2 0-80.1-2.8 3.9c-18 25.2-47.1 40.2-78.1 40.2L352 288c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-120.4 0c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C177.8 373.3 192 401.8 192 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L38.4 348.8C14.2 330.7 0 302.2 0 272L0 171.1zM0 379.3c3.1 2.7 6.3 5.4 9.6 7.9L64 428 64 512c0 17.7-14.3 32-32 32S0 529.7 0 512L0 379.3zM568 24a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zm8 488c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-84 54.4-40.8c3.3-2.5 6.5-5.1 9.6-7.9L576 512z\"]\n};\nvar faPeopleCarry = faPeopleCarryBox;\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [129681], \"f6c0\", \"M152 256l0-181.8c-24.5 20.5-40 51.4-40 85.8l0 96 40 0zm48 0l48 0 0-205.4c-7.7-1.7-15.8-2.6-24-2.6s-16.3 .9-24 2.6L200 256zM296 74.2l0 181.8 40 0 0-96c0-34.4-15.5-65.2-40-85.8zM32 256l32 0 0-96C64 71.6 135.6 0 224 0S384 71.6 384 160l0 96 32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-256 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L32 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l328 0c48.6 0 88-39.4 88-88S408.6 0 360 0L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l40 0c48.6 0 88-39.4 88-88s-39.4-88-88-88L32 336c-17.7 0-32 14.3-32 32s14.3 32 32 32l136 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M445.9 193c-.1-.4-.2-.9-.2-1.3-15.7-108.4-108.9-191.7-221.7-191.7-85 0-159 47.4-196.9 117.2L283.3 288 456 288 442.9 336 336 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l98.2 0-8.7 32-89.5 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80.6 0c-6.7 19.1-24.8 32-45.3 32L288 464c-17.7 0-32-14.3-32-32l0-104.5-247.5-165C3 182.1 0 202.7 0 224 0 278 19.1 327.5 50.9 366.2 58.9 375.9 64 387.8 64 400.4L64 464c0 26.5 21.5 48 48 48l127.3 0 .7 0 131.3 0c44.9 0 83.8-31.1 93.6-74.9l33.9-150.3c3.3-14.4-.3-29.5-9.7-41L445.9 193zM288 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M512 160l-.1 72.6c0 44.8-17.6 87.1-47.9 118.4-.3-77-40.1-148.4-105.4-189.3l-1.9-1.2c2.5-3.7 2.8-8.6 .4-12.7l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S330 5 336.6 16.5l68 117.8 0 0 0 0 43.3 75 .1-49.3c0-17.7 14.4-32 32-32s32 14.4 32 32zM298.4 124.2c-14.1-8.8-29.8-12.7-45.2-12.1L216.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l67.1 116.2-27-16.9zM211.9 88.5l16.4 28.4c-15.1 5.5-28.6 15.6-38.3 29.7l-19.7-34.2c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l12.5 21.7c-2 8.6-2.5 17.5-1.7 26.1l-4.3 0 0 0-34.4 0-13.7-23.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM228.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C384.7 234.7 416 291.2 416 352l0 8c0 83.9-68.1 152-152 152L88 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L24 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0 0 0 0 0 93.2 0-46.2-28.9c-15-9.4-19.5-29.1-10.2-44.1z\"]\n};\nvar faSignLanguage = faHands;\nvar faSigning = faHands;\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [512, 512, [], \"f490\", \"M495.3 76.6c-4.6-8.7-16.3-9.7-23.3-2.7L297.9 248c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4zM240.7 211.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 40c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM144 224C79.2 224 24.4 266.8 6.3 325.6 3.4 335.1 11 344 20.9 344l246.2 0c9.9 0 17.5-8.9 14.6-18.4-.9-3-1.9-5.9-3-8.7-37.4-18.1-68-48-87-84.8-14.9-5.2-30.9-8.1-47.6-8.1zM281.7 410.4c2.9-9.5-4.7-18.4-14.6-18.4L20.9 392C11 392 3.4 400.9 6.3 410.4 24.4 469.2 79.2 512 144 512s119.6-42.8 137.7-101.6z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32 0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32l-21.8 0c-28.3 0-53.2 18.5-61.3 45.6L2.4 440.2C.8 445.4 0 450.8 0 456.2 0 487 25 512 55.8 512l400.4 0c30.8 0 55.8-25 55.8-55.8 0-5.4-.8-10.8-2.4-16l-80-266.5c-8.1-27.1-33-45.6-61.3-45.6l-21.8 0z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [512, 512, [127922], \"f522\", \"M141.4 2.3C103-8 63.5 14.8 53.3 53.2L2.5 242.7C-7.8 281.1 15 320.6 53.4 330.9l189.5 50.8c38.4 10.3 77.9-12.5 88.2-50.9l50.8-189.5c10.3-38.4-12.5-77.9-50.9-88.2L141.4 2.3zm23 205.7a32 32 0 1 1 55.4-32 32 32 0 1 1 -55.4 32zM79.2 220.3a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm185 96.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zm9-208.4a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm-121 14.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zM418 192L377.4 343.2c-17.2 64-83 102-147 84.9l-38.3-10.3 0 30.2c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L418 192z\"]\n};\nvar faShopSlash = {\n prefix: 'fas',\n iconName: 'shop-slash',\n icon: [576, 512, [\"store-alt-slash\"], \"e070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-190.3c26.8-1.9 48-24.3 48-51.6 0-8-1.9-16-5.5-23.2L497.7 67.4C486.8 45.7 464.7 32 440.4 32L135.6 32c-10.7 0-21 2.7-30.2 7.6L41-24.9zM321.8 256L448 256 448 382.2 321.8 256zM352 421.8l-64-64 0 10.2c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16l0-112 58.2 0-134.8-134.8-29.9 59.9c-3.6 7.2-5.5 15.1-5.5 23.2 0 27.3 21.2 49.7 48 51.6L64 432c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-10.2z\"]\n};\nvar faStoreAltSlash = faShopSlash;\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [384, 512, [\"sort-desc\"], \"f0dd\", \"M32 288c-12.9 0-24.6 7.8-29.6 19.8S.2 333.5 9.4 342.6l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288z\"]\n};\nvar faSortDesc = faSortDown;\nvar faPesetaSign = {\n prefix: 'fas',\n iconName: 'peseta-sign',\n icon: [448, 512, [], \"e221\", \"M112 32C94.3 32 80 46.3 80 64l0 104-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 232c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c80.2 0 146.6-59 158.2-136l25.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-25.8 0C386.6 91 320.2 32 240 32L112 32zM333 168l-189 0 0-72 96 0c44.7 0 82.3 30.6 93 72zM144 216l189 0c-10.7 41.4-48.2 72-93 72l-96 0 0-72z\"]\n};\nvar faTabletScreenButton = {\n prefix: 'fas',\n iconName: 'tablet-screen-button',\n icon: [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 432a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64l-320 0 0 288 320 0 0-288z\"]\n};\nvar faTabletAlt = faTabletScreenButton;\nvar faHandHoldingDollar = {\n prefix: 'fas',\n iconName: 'hand-holding-dollar',\n icon: [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M288-16c-13.3 0-24 10.7-24 24l0 12-1.8 0c-36.6 0-66.2 29.7-66.2 66.2 0 33.4 24.9 61.6 58 65.7l61 7.6c5.1 .6 9 5 9 10.2 0 5.7-4.6 10.2-10.2 10.2L240 180c-15.5 0-28 12.5-28 28s12.5 28 28 28l24 0 0 12c0 13.3 10.7 24 24 24s24-10.7 24-24l0-12 1.8 0c36.6 0 66.2-29.7 66.2-66.2 0-33.4-24.9-61.6-58-65.7l-61-7.6c-5.1-.6-9-5-9-10.2 0-5.7 4.6-10.2 10.2-10.2L328 76c15.5 0 28-12.5 28-28s-12.5-28-28-28l-16 0 0-12c0-13.3-10.7-24-24-24zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faHandHoldingUsd = faHandHoldingDollar;\nvar faShield = {\n prefix: 'fas',\n iconName: 'shield',\n icon: [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0z\"]\n};\nvar faShieldBlank = faShield;\nvar faFaceLaugh = {\n prefix: 'fas',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faHandsHolding = {\n prefix: 'fas',\n iconName: 'hands-holding',\n icon: [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0c-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c24.1 24.1 39.9 39.9 47.2 47.2 11 11 9.2 29.2-3.7 37.8-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 104zm480 0l0 160.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1-12.9-8.6-14.7-26.9-3.7-37.8 7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-24.1 24.1-39.9 39.9-47.2 47.2l0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"]\n};\nvar faCartShopping = {\n prefix: 'fas',\n iconName: 'cart-shopping',\n icon: [640, 512, [128722, \"shopping-cart\"], \"f07a\", \"M24-16C10.7-16 0-5.3 0 8S10.7 32 24 32l45.3 0c3.9 0 7.2 2.8 7.9 6.6l52.1 286.3c6.2 34.2 36 59.1 70.8 59.1L456 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-255.9 0c-11.6 0-21.5-8.3-23.6-19.7l-5.1-28.3 303.6 0c30.8 0 57.2-21.9 62.9-52.2L568.9 69.9C572.6 50.2 557.5 32 537.4 32l-412.7 0-.4-2c-4.8-26.6-28-46-55.1-46L24-16zM208 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faShoppingCart = faCartShopping;\nvar faOctagon = {\n prefix: 'fas',\n iconName: 'octagon',\n icon: [512, 512, [128721], \"f306\", \"M188.6 .1c-17 0-33.3 6.7-45.3 18.7L19.2 143C7.2 155 .5 171.2 .5 188.2l0 135.6c0 17 6.7 33.3 18.7 45.3L143.4 493.2c12 12 28.3 18.7 45.3 18.7l135.6 0c17 0 33.3-6.7 45.3-18.7L493.6 369c12-12 18.7-28.3 18.7-45.3l0-135.6c0-17-6.7-33.3-18.7-45.3L369.5 18.8c-12-12-28.3-18.7-45.3-18.7L188.6 .1z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2 20.6 0 38.2 13 45 31.2 8.8-9.3 21.2-15.2 35-15.2 25.3 0 46 19.5 47.9 44.3 8.5-7.7 19.8-12.3 32.1-12.3 26.5 0 48 21.5 48 48l0 112c0 70.7-57.3 128-128 128l-85.3 0c-5 0-9.9-.3-14.7-1-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7 0-322.7zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144l80 0c39.8 0 72 32.2 72 72 0 28.9-17 53.8-41.6 65.3l30.2 50.3c6.8 11.4 3.1 26.1-8.2 32.9s-26.1 3.1-32.9-8.2l-41-68.3-34.4 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24zm72 96l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0 48 48 0z\"]\n};\nvar faHouseSignal = {\n prefix: 'fas',\n iconName: 'house-signal',\n icon: [576, 512, [], \"e012\", \"M515.9 240l-19.9 0 0 144c0 35.3-28.7 64-64 64l-137 0c-24-91.7-93.5-165-183-194.3l0-13.7-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L276.5-4.9C283.9-12 293.7-16 304-16s20.1 4 27.5 11.1L535.4 191.7c5.5 5.3 8.6 12.6 8.6 20.2 0 15.5-12.6 28.1-28.1 28.1zM280 192c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0zM24 288c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 408c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24z\"]\n};\nvar faBangladeshiTakaSign = {\n prefix: 'fas',\n iconName: 'bangladeshi-taka-sign',\n icon: [384, 512, [], \"e2e6\", \"M36 32.3C18.4 30.1 2.4 42.5 .3 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8l0 31.5-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 176c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-176 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-31.5C128 80.1 92 39.2 43.9 33.2l-7.9-1z\"]\n};\nvar icons = {\n fa0: fa0,\n fa1: fa1,\n fa2: fa2,\n fa3: fa3,\n fa4: fa4,\n fa5: fa5,\n fa6: fa6,\n fa7: fa7,\n fa8: fa8,\n fa9: fa9,\n faDollarSign: faDollarSign,\n faDollar: faDollar,\n faUsd: faUsd,\n faDog: faDog,\n faTruckMoving: faTruckMoving,\n faRotate: faRotate,\n faSyncAlt: faSyncAlt,\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faAlignJustify: faAlignJustify,\n faCalendarCheck: faCalendarCheck,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faKitchenSet: faKitchenSet,\n faDna: faDna,\n faChildReaching: faChildReaching,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faMeteor: faMeteor,\n faGears: faGears,\n faCogs: faCogs,\n faFileCirclePlus: faFileCirclePlus,\n faIcicles: faIcicles,\n faArrowTrendUp: faArrowTrendUp,\n faHexagonNodesBolt: faHexagonNodesBolt,\n faQuestion: faQuestion,\n faHandsBound: faHandsBound,\n faPersonWalkingLuggage: faPersonWalkingLuggage,\n faFileArrowDown: faFileArrowDown,\n faFileDownload: faFileDownload,\n faPersonBooth: faPersonBooth,\n faLocust: faLocust,\n faRightLong: faRightLong,\n faLongArrowAltRight: faLongArrowAltRight,\n faTruckDroplet: faTruckDroplet,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandPointLeft: faHandPointLeft,\n faCalculator: faCalculator,\n faMinus: faMinus,\n faSubtract: faSubtract,\n faArrowUpZA: faArrowUpZA,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faMicrophoneSlash: faMicrophoneSlash,\n faSquarePen: faSquarePen,\n faPenSquare: faPenSquare,\n faPencilSquare: faPencilSquare,\n faHandFist: faHandFist,\n faFistRaised: faFistRaised,\n faCommentSms: faCommentSms,\n faSms: faSms,\n faSimCard: faSimCard,\n faScaleBalanced: faScaleBalanced,\n faBalanceScale: faBalanceScale,\n faCar: faCar,\n faAutomobile: faAutomobile,\n faCropSimple: faCropSimple,\n faCropAlt: faCropAlt,\n faMedal: faMedal,\n faScroll: faScroll,\n faFileExcel: faFileExcel,\n faFilter: faFilter,\n faDrum: faDrum,\n faMapPin: faMapPin,\n faScaleUnbalancedFlip: faScaleUnbalancedFlip,\n faBalanceScaleRight: faBalanceScaleRight,\n faArrowsToCircle: faArrowsToCircle,\n faEnvelope: faEnvelope,\n faBaby: faBaby,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faTent: faTent,\n faA: faA,\n faParachuteBox: faParachuteBox,\n faCartArrowDown: faCartArrowDown,\n faBridgeCircleExclamation: faBridgeCircleExclamation,\n faCloudArrowUp: faCloudArrowUp,\n faCloudUpload: faCloudUpload,\n faCloudUploadAlt: faCloudUploadAlt,\n faAt: faAt,\n faIndianRupeeSign: faIndianRupeeSign,\n faIndianRupee: faIndianRupee,\n faInr: faInr,\n faTruck: faTruck,\n faChalkboardUser: faChalkboardUser,\n faChalkboardTeacher: faChalkboardTeacher,\n faUserCheck: faUserCheck,\n faUserNinja: faUserNinja,\n faPlantWilt: faPlantWilt,\n faWeightScale: faWeightScale,\n faWeight: faWeight,\n faCaretRight: faCaretRight,\n faFlorinSign: faFlorinSign,\n faBell: faBell,\n faLariSign: faLariSign,\n faMillSign: faMillSign,\n faPersonSnowboarding: faPersonSnowboarding,\n faSnowboarding: faSnowboarding,\n faTty: faTty,\n faTeletype: faTeletype,\n faUsersRectangle: faUsersRectangle,\n faMobile: faMobile,\n faMobileAndroid: faMobileAndroid,\n faMobilePhone: faMobilePhone,\n faArrowsTurnToDots: faArrowsTurnToDots,\n faExclamation: faExclamation,\n faChurch: faChurch,\n faToggleOff: faToggleOff,\n faShoePrints: faShoePrints,\n faFileCircleExclamation: faFileCircleExclamation,\n faWallet: faWallet,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faTrophy: faTrophy,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faBacteria: faBacteria,\n faEarDeaf: faEarDeaf,\n faDeaf: faDeaf,\n faDeafness: faDeafness,\n faHardOfHearing: faHardOfHearing,\n faPeopleArrows: faPeopleArrows,\n faPeopleArrowsLeftRight: faPeopleArrowsLeftRight,\n faHandsClapping: faHandsClapping,\n faVirusCovidSlash: faVirusCovidSlash,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faDiamondTurnRight: faDiamondTurnRight,\n faDirections: faDirections,\n faHandPointUp: faHandPointUp,\n faBezierCurve: faBezierCurve,\n faPersonHalfDress: faPersonHalfDress,\n faSquarePollHorizontal: faSquarePollHorizontal,\n faPollH: faPollH,\n faSchoolCircleXmark: faSchoolCircleXmark,\n faHandLizard: faHandLizard,\n faChalkboard: faChalkboard,\n faBlackboard: faBlackboard,\n faUpRightFromSquare: faUpRightFromSquare,\n faExternalLinkAlt: faExternalLinkAlt,\n faSquareFull: faSquareFull,\n faClover: faClover,\n faTeethOpen: faTeethOpen,\n faBarsStaggered: faBarsStaggered,\n faReorder: faReorder,\n faStream: faStream,\n faWarehouse: faWarehouse,\n faSwatchbook: faSwatchbook,\n faCampground: faCampground,\n faPersonWalkingArrowRight: faPersonWalkingArrowRight,\n faGlasses: faGlasses,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faMemory: faMemory,\n faGift: faGift,\n faMoneyBillWheat: faMoneyBillWheat,\n faDungeon: faDungeon,\n faSuitcaseMedical: faSuitcaseMedical,\n faMedkit: faMedkit,\n faPersonCane: faPersonCane,\n faGauge: faGauge,\n faDashboard: faDashboard,\n faGaugeMed: faGaugeMed,\n faTachometerAltAverage: faTachometerAltAverage,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faToolbox: faToolbox,\n faPowerOff: faPowerOff,\n faSignal: faSignal,\n faSignal5: faSignal5,\n faSignalPerfect: faSignalPerfect,\n faArrowsSpin: faArrowsSpin,\n faJoint: faJoint,\n faBraille: faBraille,\n faBasketShopping: faBasketShopping,\n faShoppingBasket: faShoppingBasket,\n faBridge: faBridge,\n faPlaneArrival: faPlaneArrival,\n faCashRegister: faCashRegister,\n faRing: faRing,\n faAquarius: faAquarius,\n faShareNodes: faShareNodes,\n faShareAlt: faShareAlt,\n faPersonCircleExclamation: faPersonCircleExclamation,\n faBinoculars: faBinoculars,\n faKipSign: faKipSign,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faRankingStar: faRankingStar,\n faUserTie: faUserTie,\n faEllipsis: faEllipsis,\n faEllipsisH: faEllipsisH,\n faStoreSlash: faStoreSlash,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faDisplay: faDisplay,\n faIcons: faIcons,\n faHeartMusicCameraBolt: faHeartMusicCameraBolt,\n faRulerVertical: faRulerVertical,\n faMapLocationDot: faMapLocationDot,\n faMapMarkedAlt: faMapMarkedAlt,\n faHeartCrack: faHeartCrack,\n faHeartBroken: faHeartBroken,\n faCow: faCow,\n faRss: faRss,\n faFeed: faFeed,\n faMagnifyingGlass: faMagnifyingGlass,\n faSearch: faSearch,\n faCloudMoon: faCloudMoon,\n faBoxesStacked: faBoxesStacked,\n faBoxes: faBoxes,\n faBoxesAlt: faBoxesAlt,\n faCodeBranch: faCodeBranch,\n faBan: faBan,\n faCancel: faCancel,\n faJugDetergent: faJugDetergent,\n faReply: faReply,\n faMailReply: faMailReply,\n faSunPlantWilt: faSunPlantWilt,\n faBacterium: faBacterium,\n faRecordVinyl: faRecordVinyl,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faToiletsPortable: faToiletsPortable,\n faO: faO,\n faPalette: faPalette,\n faUnlock: faUnlock,\n faEarListen: faEarListen,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faCodePullRequest: faCodePullRequest,\n faKey: faKey,\n faSkull: faSkull,\n faMarsStrokeUp: faMarsStrokeUp,\n faMarsStrokeV: faMarsStrokeV,\n faFireFlameSimple: faFireFlameSimple,\n faBurn: faBurn,\n faTree: faTree,\n faSmog: faSmog,\n faS: faS,\n faJedi: faJedi,\n faPersonHiking: faPersonHiking,\n faHiking: faHiking,\n faArrowsUpToLine: faArrowsUpToLine,\n faMarsDouble: faMarsDouble,\n faThermometer: faThermometer,\n faPaintbrush: faPaintbrush,\n faPaintBrush: faPaintBrush,\n faNeuter: faNeuter,\n faSquarePhoneFlip: faSquarePhoneFlip,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faCommentDollar: faCommentDollar,\n faHippo: faHippo,\n faBowlFood: faBowlFood,\n faSquareVirus: faSquareVirus,\n faCloudSunRain: faCloudSunRain,\n faArrowRightLong: faArrowRightLong,\n faLongArrowRight: faLongArrowRight,\n faBuildingUn: faBuildingUn,\n faTemperatureLow: faTemperatureLow,\n faDoorOpen: faDoorOpen,\n faAlignLeft: faAlignLeft,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faUsersRays: faUsersRays,\n faRainbow: faRainbow,\n faSitemap: faSitemap,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faSortUp: faSortUp,\n faSortAsc: faSortAsc,\n faEye: faEye,\n faCaretLeft: faCaretLeft,\n faAppleWhole: faAppleWhole,\n faAppleAlt: faAppleAlt,\n faScrollTorah: faScrollTorah,\n faTorah: faTorah,\n faHouseLock: faHouseLock,\n faArrowsLeftRightToLine: faArrowsLeftRightToLine,\n faTrash: faTrash,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faFax: faFax,\n faPersonCirclePlus: faPersonCirclePlus,\n faHamsa: faHamsa,\n faPersonCircleQuestion: faPersonCircleQuestion,\n faClipboardCheck: faClipboardCheck,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faReceipt: faReceipt,\n faEquals: faEquals,\n faChevronUp: faChevronUp,\n faVirusSlash: faVirusSlash,\n faSlash: faSlash,\n faExpand: faExpand,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faTableColumns: faTableColumns,\n faColumns: faColumns,\n faPersonShelter: faPersonShelter,\n faCircleNotch: faCircleNotch,\n faWater: faWater,\n faDeleteLeft: faDeleteLeft,\n faBackspace: faBackspace,\n faBroomBall: faBroomBall,\n faQuidditch: faQuidditch,\n faQuidditchBroomBall: faQuidditchBroomBall,\n faJ: faJ,\n faShuttleSpace: faShuttleSpace,\n faSpaceShuttle: faSpaceShuttle,\n faYinYang: faYinYang,\n faStop: faStop,\n faTrowel: faTrowel,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faTemperatureHigh: faTemperatureHigh,\n faGreaterThan: faGreaterThan,\n faCrutch: faCrutch,\n faSeptagon: faSeptagon,\n faHeptagon: faHeptagon,\n faStreetView: faStreetView,\n faWaveSquare: faWaveSquare,\n faAngleLeft: faAngleLeft,\n faScrewdriver: faScrewdriver,\n faTractor: faTractor,\n faBridgeCircleXmark: faBridgeCircleXmark,\n faVials: faVials,\n faStethoscope: faStethoscope,\n faPodcast: faPodcast,\n faArrowUpRightDots: faArrowUpRightDots,\n faChessQueen: faChessQueen,\n faAnchorCircleExclamation: faAnchorCircleExclamation,\n faEllipsisVertical: faEllipsisVertical,\n faEllipsisV: faEllipsisV,\n faHeartCircleExclamation: faHeartCircleExclamation,\n faBuildingCircleExclamation: faBuildingCircleExclamation,\n faPersonArrowUpFromLine: faPersonArrowUpFromLine,\n faNotEqual: faNotEqual,\n faTrainTram: faTrainTram,\n faPlaneDeparture: faPlaneDeparture,\n faRightToBracket: faRightToBracket,\n faSignInAlt: faSignInAlt,\n faSdCard: faSdCard,\n faHouseCircleExclamation: faHouseCircleExclamation,\n faShekelSign: faShekelSign,\n faIls: faIls,\n faShekel: faShekel,\n faSheqel: faSheqel,\n faSheqelSign: faSheqelSign,\n faRadio: faRadio,\n faHandDots: faHandDots,\n faAllergies: faAllergies,\n faBookSkull: faBookSkull,\n faBookDead: faBookDead,\n faUnlockKeyhole: faUnlockKeyhole,\n faUnlockAlt: faUnlockAlt,\n faFileArrowUp: faFileArrowUp,\n faFileUpload: faFileUpload,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faEarthEurope: faEarthEurope,\n faGlobeEurope: faGlobeEurope,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faCircleHalfStroke: faCircleHalfStroke,\n faAdjust: faAdjust,\n faPersonMilitaryToPerson: faPersonMilitaryToPerson,\n faTableCellsColumnLock: faTableCellsColumnLock,\n faTruckFieldUn: faTruckFieldUn,\n faClock: faClock,\n faClockFour: faClockFour,\n faBook: faBook,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faCloudMeatball: faCloudMeatball,\n faChartArea: faChartArea,\n faAreaChart: faAreaChart,\n faRupiahSign: faRupiahSign,\n faTextWidth: faTextWidth,\n faSatellite: faSatellite,\n faMagnifyingGlassMinus: faMagnifyingGlassMinus,\n faSearchMinus: faSearchMinus,\n faPeopleGroup: faPeopleGroup,\n faSquareBinary: faSquareBinary,\n faMasksTheater: faMasksTheater,\n faTheaterMasks: faTheaterMasks,\n faCartPlus: faCartPlus,\n faHandsAslInterpreting: faHandsAslInterpreting,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAslInterpreting: faAslInterpreting,\n faHandsAmericanSignLanguageInterpreting: faHandsAmericanSignLanguageInterpreting,\n faTableCellsRowUnlock: faTableCellsRowUnlock,\n faRocket: faRocket,\n faShrimp: faShrimp,\n faTengeSign: faTengeSign,\n faTenge: faTenge,\n faHouseChimneyMedical: faHouseChimneyMedical,\n faClinicMedical: faClinicMedical,\n faUsersSlash: faUsersSlash,\n faPaperPlane: faPaperPlane,\n faBookAtlas: faBookAtlas,\n faAtlas: faAtlas,\n faTable: faTable,\n faHeart: faHeart,\n faCircleChevronUp: faCircleChevronUp,\n faChevronCircleUp: faChevronCircleUp,\n faBatteryHalf: faBatteryHalf,\n faBattery3: faBattery3,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faHandcuffs: faHandcuffs,\n faHatCowboySide: faHatCowboySide,\n faIndustry: faIndustry,\n faLinesLeaning: faLinesLeaning,\n faPassport: faPassport,\n faInfinity: faInfinity,\n faClone: faClone,\n faForward: faForward,\n faM: faM,\n faRoadSpikes: faRoadSpikes,\n faMountain: faMountain,\n faChess: faChess,\n faTemperatureThreeQuarters: faTemperatureThreeQuarters,\n faTemperature3: faTemperature3,\n faThermometer3: faThermometer3,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faB: faB,\n faShieldVirus: faShieldVirus,\n faLitecoinSign: faLitecoinSign,\n faDiceD6: faDiceD6,\n faGripLinesVertical: faGripLinesVertical,\n faGolfBallTee: faGolfBallTee,\n faGolfBall: faGolfBall,\n faHexagon: faHexagon,\n faFolderOpen: faFolderOpen,\n faKaaba: faKaaba,\n faHandHolding: faHandHolding,\n faSingleQuoteRight: faSingleQuoteRight,\n faBottleDroplet: faBottleDroplet,\n faWindowMinimize: faWindowMinimize,\n faChevronRight: faChevronRight,\n faEgg: faEgg,\n faLandmarkDome: faLandmarkDome,\n faLandmarkAlt: faLandmarkAlt,\n faWorm: faWorm,\n faUserInjured: faUserInjured,\n faStrikethrough: faStrikethrough,\n faBlog: faBlog,\n faStopwatch20: faStopwatch20,\n faTruckPickup: faTruckPickup,\n faSeedling: faSeedling,\n faSprout: faSprout,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faStarHalf: faStarHalf,\n faPhotoFilm: faPhotoFilm,\n faPhotoVideo: faPhotoVideo,\n faPictureInPicture: faPictureInPicture,\n faPumpMedical: faPumpMedical,\n faFire: faFire,\n faMagnifyingGlassPlus: faMagnifyingGlassPlus,\n faSearchPlus: faSearchPlus,\n faFlask: faFlask,\n faAlignRight: faAlignRight,\n faCableCar: faCableCar,\n faTram: faTram,\n faKitMedical: faKitMedical,\n faFirstAid: faFirstAid,\n faGripLines: faGripLines,\n faBurger: faBurger,\n faHamburger: faHamburger,\n faSnowman: faSnowman,\n faHotel: faHotel,\n faPrint: faPrint,\n faVolleyball: faVolleyball,\n faVolleyballBall: faVolleyballBall,\n faTrafficLight: faTrafficLight,\n faPlaneCircleCheck: faPlaneCircleCheck,\n faUsers: faUsers,\n faCertificate: faCertificate,\n faAlarmClock: faAlarmClock,\n faHelicopterSymbol: faHelicopterSymbol,\n faHouseChimneyCrack: faHouseChimneyCrack,\n faHouseDamage: faHouseDamage,\n faPersonMilitaryPointing: faPersonMilitaryPointing,\n faDatabase: faDatabase,\n faNewspaper: faNewspaper,\n faCloudRain: faCloudRain,\n faMaximize: faMaximize,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faLocationArrow: faLocationArrow,\n faCity: faCity,\n faXRay: faXRay,\n faUmbrellaBeach: faUmbrellaBeach,\n faArrowRightToBracket: faArrowRightToBracket,\n faSignIn: faSignIn,\n faHeadset: faHeadset,\n faSplotch: faSplotch,\n faUpLong: faUpLong,\n faLongArrowAltUp: faLongArrowAltUp,\n faHexagonNodes: faHexagonNodes,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faPersonHarassing: faPersonHarassing,\n faMoneyBillTrendUp: faMoneyBillTrendUp,\n faPenRuler: faPenRuler,\n faPencilRuler: faPencilRuler,\n faRepeat: faRepeat,\n faBone: faBone,\n faFireFlameCurved: faFireFlameCurved,\n faFireAlt: faFireAlt,\n faBusSimple: faBusSimple,\n faBusAlt: faBusAlt,\n faVenusMars: faVenusMars,\n faBlender: faBlender,\n faU: faU,\n faShare: faShare,\n faMailForward: faMailForward,\n faPhoneFlip: faPhoneFlip,\n faPhoneAlt: faPhoneAlt,\n faToiletPortable: faToiletPortable,\n faPersonPregnant: faPersonPregnant,\n faLessThan: faLessThan,\n faSuperscript: faSuperscript,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faArrowsUpDown: faArrowsUpDown,\n faArrowsV: faArrowsV,\n faPooStorm: faPooStorm,\n faPooBolt: faPooBolt,\n faVideoSlash: faVideoSlash,\n faSquareXmark: faSquareXmark,\n faTimesSquare: faTimesSquare,\n faXmarkSquare: faXmarkSquare,\n faHandHoldingDroplet: faHandHoldingDroplet,\n faHandHoldingWater: faHandHoldingWater,\n faWonSign: faWonSign,\n faKrw: faKrw,\n faWon: faWon,\n faObjectUngroup: faObjectUngroup,\n faComment: faComment,\n faHillAvalanche: faHillAvalanche,\n faArrowsToEye: faArrowsToEye,\n faSnowplow: faSnowplow,\n faChartGantt: faChartGantt,\n faVideo: faVideo,\n faVideoCamera: faVideoCamera,\n faChessPawn: faChessPawn,\n faSynagogue: faSynagogue,\n faBuildingCircleCheck: faBuildingCircleCheck,\n faCalendarPlus: faCalendarPlus,\n faWheelchairMove: faWheelchairMove,\n faWheelchairAlt: faWheelchairAlt,\n faUserShield: faUserShield,\n faBold: faBold,\n faHeartPulse: faHeartPulse,\n faHeartbeat: faHeartbeat,\n faSquareRootVariable: faSquareRootVariable,\n faSquareRootAlt: faSquareRootAlt,\n faHandsBubbles: faHandsBubbles,\n faHandsWash: faHandsWash,\n faMarker: faMarker,\n faClipboard: faClipboard,\n faPlaceOfWorship: faPlaceOfWorship,\n faCannabis: faCannabis,\n faPeopleRoof: faPeopleRoof,\n faDisease: faDisease,\n faBookBible: faBookBible,\n faBible: faBible,\n faChessBoard: faChessBoard,\n faMars: faMars,\n faLaptop: faLaptop,\n faUserXmark: faUserXmark,\n faUserTimes: faUserTimes,\n faFlagUsa: faFlagUsa,\n faHandMiddleFinger: faHandMiddleFinger,\n faMortarPestle: faMortarPestle,\n faHeadSideCough: faHeadSideCough,\n faPlaneLock: faPlaneLock,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBattery4: faBattery4,\n faFrancSign: faFrancSign,\n faFilterCircleDollar: faFilterCircleDollar,\n faFunnelDollar: faFunnelDollar,\n faCheese: faCheese,\n faCircleH: faCircleH,\n faHospitalSymbol: faHospitalSymbol,\n faSchool: faSchool,\n faDiceFive: faDiceFive,\n faTornado: faTornado,\n faJetFighter: faJetFighter,\n faFighterJet: faFighterJet,\n faThumbsDown: faThumbsDown,\n faBroom: faBroom,\n faFileImport: faFileImport,\n faArrowRightToFile: faArrowRightToFile,\n faUtensils: faUtensils,\n faCutlery: faCutlery,\n faIdBadge: faIdBadge,\n faSpider: faSpider,\n faMobileRetro: faMobileRetro,\n faSignsPost: faSignsPost,\n faMapSigns: faMapSigns,\n faGroupArrowsRotate: faGroupArrowsRotate,\n faArrowsSplitUpAndLeft: faArrowsSplitUpAndLeft,\n faFillDrip: faFillDrip,\n faShieldHeart: faShieldHeart,\n faPersonSkiingNordic: faPersonSkiingNordic,\n faSkiingNordic: faSkiingNordic,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faBath: faBath,\n faBathtub: faBathtub,\n faChessBishop: faChessBishop,\n faPrescriptionBottleMedical: faPrescriptionBottleMedical,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faDrawPolygon: faDrawPolygon,\n faVectorPolygon: faVectorPolygon,\n faICursor: faICursor,\n faHeartCirclePlus: faHeartCirclePlus,\n faShieldDog: faShieldDog,\n faGreaterThanEqual: faGreaterThanEqual,\n faEnvelopeOpen: faEnvelopeOpen,\n faMound: faMound,\n faVoicemail: faVoicemail,\n faVest: faVest,\n faAudioDescription: faAudioDescription,\n faW: faW,\n faEyeDropper: faEyeDropper,\n faEyeDropperEmpty: faEyeDropperEmpty,\n faEyedropper: faEyedropper,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faTrailer: faTrailer,\n faTurkishLiraSign: faTurkishLiraSign,\n faTry: faTry,\n faTurkishLira: faTurkishLira,\n faVolcano: faVolcano,\n faWandSparkles: faWandSparkles,\n faMicrophone: faMicrophone,\n faCrown: faCrown,\n faTentArrowTurnLeft: faTentArrowTurnLeft,\n faTruckFast: faTruckFast,\n faShippingFast: faShippingFast,\n faUserPen: faUserPen,\n faUserEdit: faUserEdit,\n faUserClock: faUserClock,\n faShower: faShower,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faMapLocation: faMapLocation,\n faMapMarked: faMapMarked,\n faPenFancy: faPenFancy,\n faEuroSign: faEuroSign,\n faEur: faEur,\n faEuro: faEuro,\n faHouseCircleXmark: faHouseCircleXmark,\n faLiraSign: faLiraSign,\n faYenSign: faYenSign,\n faCny: faCny,\n faJpy: faJpy,\n faRmb: faRmb,\n faYen: faYen,\n faBoxOpen: faBoxOpen,\n faTruckField: faTruckField,\n faLocationPinLock: faLocationPinLock,\n faPersonPraying: faPersonPraying,\n faPray: faPray,\n faClipboardList: faClipboardList,\n faSackDollar: faSackDollar,\n faMountainSun: faMountainSun,\n faArrowUpWideShort: faArrowUpWideShort,\n faSortAmountUp: faSortAmountUp,\n faUsersLine: faUsersLine,\n faStarOfDavid: faStarOfDavid,\n faNotesMedical: faNotesMedical,\n faAustralSign: faAustralSign,\n faClipboardUser: faClipboardUser,\n faFileImage: faFileImage,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faVial: faVial,\n faHelicopter: faHelicopter,\n faMitten: faMitten,\n faGasPump: faGasPump,\n faEnvelopeCircleCheck: faEnvelopeCircleCheck,\n faPersonSkating: faPersonSkating,\n faSkating: faSkating,\n faSun: faSun,\n faBaseball: faBaseball,\n faBaseballBall: faBaseballBall,\n faImage: faImage,\n faNotdef: faNotdef,\n faBasketball: faBasketball,\n faBasketballBall: faBasketballBall,\n faPencil: faPencil,\n faPencilAlt: faPencilAlt,\n faPersonWalkingArrowLoopLeft: faPersonWalkingArrowLoopLeft,\n faDiceSix: faDiceSix,\n faAnglesDown: faAnglesDown,\n faAngleDoubleDown: faAngleDoubleDown,\n faSyringe: faSyringe,\n faWheatAwn: faWheatAwn,\n faWheatAlt: faWheatAlt,\n faPlaneUp: faPlaneUp,\n faAlignCenter: faAlignCenter,\n faHockeyPuck: faHockeyPuck,\n faCircleArrowLeft: faCircleArrowLeft,\n faArrowCircleLeft: faArrowCircleLeft,\n faPlugCircleBolt: faPlugCircleBolt,\n faRestroom: faRestroom,\n faAnchorLock: faAnchorLock,\n faTimeline: faTimeline,\n faLightbulb: faLightbulb,\n faCircleArrowRight: faCircleArrowRight,\n faArrowCircleRight: faArrowCircleRight,\n faMarsAndVenus: faMarsAndVenus,\n faNetworkWired: faNetworkWired,\n faBuildingShield: faBuildingShield,\n faCode: faCode,\n faFeatherPointed: faFeatherPointed,\n faFeatherAlt: faFeatherAlt,\n faFileCircleQuestion: faFileCircleQuestion,\n faSignature: faSignature,\n faEarthAmericas: faEarthAmericas,\n faEarth: faEarth,\n faEarthAmerica: faEarthAmerica,\n faGlobeAmericas: faGlobeAmericas,\n faCarrot: faCarrot,\n faTemperatureFull: faTemperatureFull,\n faTemperature4: faTemperature4,\n faThermometer4: faThermometer4,\n faThermometerFull: faThermometerFull,\n faTableCellsRowLock: faTableCellsRowLock,\n faBoltLightning: faBoltLightning,\n faCloudShowersWater: faCloudShowersWater,\n faArrowUpLong: faArrowUpLong,\n faLongArrowUp: faLongArrowUp,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faAngleRight: faAngleRight,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faArrowUpFromGroundWater: faArrowUpFromGroundWater,\n faMap: faMap,\n faUserPlus: faUserPlus,\n faVenus: faVenus,\n faDiagramSuccessor: faDiagramSuccessor,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faDiagramProject: faDiagramProject,\n faProjectDiagram: faProjectDiagram,\n faTerminal: faTerminal,\n faHouseFire: faHouseFire,\n faMask: faMask,\n faHurricane: faHurricane,\n faEarthAfrica: faEarthAfrica,\n faGlobeAfrica: faGlobeAfrica,\n faThumbtack: faThumbtack,\n faThumbTack: faThumbTack,\n faHandPointDown: faHandPointDown,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faTemperatureEmpty: faTemperatureEmpty,\n faTemperature0: faTemperature0,\n faThermometer0: faThermometer0,\n faThermometerEmpty: faThermometerEmpty,\n faBorderNone: faBorderNone,\n faHighlighter: faHighlighter,\n faMoneyBillWave: faMoneyBillWave,\n faToiletPaperSlash: faToiletPaperSlash,\n faFileShield: faFileShield,\n faTextHeight: faTextHeight,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faFileSignature: faFileSignature,\n faBuildingWheat: faBuildingWheat,\n faPlugCircleMinus: faPlugCircleMinus,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faCirclePlus: faCirclePlus,\n faPlusCircle: faPlusCircle,\n faBrazilianRealSign: faBrazilianRealSign,\n faStarAndCrescent: faStarAndCrescent,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faHospitalUser: faHospitalUser,\n faArrowDownUpLock: faArrowDownUpLock,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faHollyBerry: faHollyBerry,\n faVenusDouble: faVenusDouble,\n faClipboardQuestion: faClipboardQuestion,\n faHotdog: faHotdog,\n faArrowUpFromBracket: faArrowUpFromBracket,\n faMicroscope: faMicroscope,\n faCloud: faCloud,\n faBaseballBatBall: faBaseballBatBall,\n faCarRear: faCarRear,\n faCarAlt: faCarAlt,\n faThumbtackSlash: faThumbtackSlash,\n faThumbTackSlash: faThumbTackSlash,\n faPlusMinus: faPlusMinus,\n faHouseCircleCheck: faHouseCircleCheck,\n faCalendarDay: faCalendarDay,\n faLibra: faLibra,\n faCircle: faCircle,\n faMobileVibrate: faMobileVibrate,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faUsersBetweenLines: faUsersBetweenLines,\n faHouseMedicalCircleXmark: faHouseMedicalCircleXmark,\n faTableList: faTableList,\n faThList: faThList,\n faFlaskVial: faFlaskVial,\n faCircleExclamation: faCircleExclamation,\n faExclamationCircle: faExclamationCircle,\n faTaxi: faTaxi,\n faCab: faCab,\n faTextSlash: faTextSlash,\n faRemoveFormat: faRemoveFormat,\n faPeoplePulling: faPeoplePulling,\n faBackward: faBackward,\n faCarBurst: faCarBurst,\n faCarCrash: faCarCrash,\n faLink: faLink,\n faChain: faChain,\n faBackwardStep: faBackwardStep,\n faStepBackward: faStepBackward,\n faX: faX,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faCancer: faCancer,\n faVanShuttle: faVanShuttle,\n faShuttleVan: faShuttleVan,\n faStairs: faStairs,\n faHorseHead: faHorseHead,\n faVault: faVault,\n faClosedCaptioningSlash: faClosedCaptioningSlash,\n faDrumSteelpan: faDrumSteelpan,\n faThumbsUp: faThumbsUp,\n faStamp: faStamp,\n faMenorah: faMenorah,\n faChildren: faChildren,\n faChartLine: faChartLine,\n faLineChart: faLineChart,\n faSquareEnvelope: faSquareEnvelope,\n faEnvelopeSquare: faEnvelopeSquare,\n faBanSmoking: faBanSmoking,\n faSmokingBan: faSmokingBan,\n faTruckFront: faTruckFront,\n faBuilding: faBuilding,\n faBullseye: faBullseye,\n faArrowLeftLong: faArrowLeftLong,\n faLongArrowLeft: faLongArrowLeft,\n faChessRook: faChessRook,\n faBlenderPhone: faBlenderPhone,\n faArrowTurnUp: faArrowTurnUp,\n faLevelUp: faLevelUp,\n faBicycle: faBicycle,\n faCircleArrowDown: faCircleArrowDown,\n faArrowCircleDown: faArrowCircleDown,\n faGear: faGear,\n faCog: faCog,\n faMarsAndVenusBurst: faMarsAndVenusBurst,\n faOtter: faOtter,\n faCircleChevronLeft: faCircleChevronLeft,\n faChevronCircleLeft: faChevronCircleLeft,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faWalkieTalkie: faWalkieTalkie,\n faUserGroup: faUserGroup,\n faUserFriends: faUserFriends,\n faHouseChimney: faHouseChimney,\n faHomeLg: faHomeLg,\n faRightFromBracket: faRightFromBracket,\n faSignOutAlt: faSignOutAlt,\n faFile: faFile,\n faPlaneSlash: faPlaneSlash,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faPersonFalling: faPersonFalling,\n faTurnDown: faTurnDown,\n faLevelDownAlt: faLevelDownAlt,\n faUpRightAndDownLeftFromCenter: faUpRightAndDownLeftFromCenter,\n faExpandAlt: faExpandAlt,\n faUserTag: faUserTag,\n faHandSparkles: faHandSparkles,\n faArrowsToDot: faArrowsToDot,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faDongSign: faDongSign,\n faPeopleLine: faPeopleLine,\n faSquareRss: faSquareRss,\n faRssSquare: faRssSquare,\n faCalendarMinus: faCalendarMinus,\n faChartDiagram: faChartDiagram,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faHandPointRight: faHandPointRight,\n faArrowUp: faArrowUp,\n faCubesStacked: faCubesStacked,\n faChildCombatant: faChildCombatant,\n faChildRifle: faChildRifle,\n faVestPatches: faVestPatches,\n faMartiniGlassEmpty: faMartiniGlassEmpty,\n faGlassMartini: faGlassMartini,\n faMagnet: faMagnet,\n faRoadBarrier: faRoadBarrier,\n faCompassDrafting: faCompassDrafting,\n faDraftingCompass: faDraftingCompass,\n faSquarePersonConfined: faSquarePersonConfined,\n faPlateWheat: faPlateWheat,\n faSignHanging: faSignHanging,\n faSign: faSign,\n faCarBattery: faCarBattery,\n faBatteryCar: faBatteryCar,\n faShirt: faShirt,\n faTShirt: faTShirt,\n faTshirt: faTshirt,\n faParagraph: faParagraph,\n faEnvelopesBulk: faEnvelopesBulk,\n faMailBulk: faMailBulk,\n faGuitar: faGuitar,\n faSuitcase: faSuitcase,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faF: faF,\n faXmarksLines: faXmarksLines,\n faEarthOceania: faEarthOceania,\n faGlobeOceania: faGlobeOceania,\n faCommentSlash: faCommentSlash,\n faPlay: faPlay,\n faVialCircleCheck: faVialCircleCheck,\n faBridgeCircleCheck: faBridgeCircleCheck,\n faCediSign: faCediSign,\n faPuzzlePiece: faPuzzlePiece,\n faHelmetUn: faHelmetUn,\n faGlassWater: faGlassWater,\n faHeartCircleBolt: faHeartCircleBolt,\n faPumpSoap: faPumpSoap,\n faHandScissors: faHandScissors,\n faDolly: faDolly,\n faDollyBox: faDollyBox,\n faPaperclip: faPaperclip,\n faDemocrat: faDemocrat,\n faSquareArrowUpRight: faSquareArrowUpRight,\n faExternalLinkSquare: faExternalLinkSquare,\n faFerry: faFerry,\n faMosquito: faMosquito,\n faBuildingCircleArrowRight: faBuildingCircleArrowRight,\n faLeftRight: faLeftRight,\n faArrowsAltH: faArrowsAltH,\n faVirus: faVirus,\n faGem: faGem,\n faToilet: faToilet,\n faSingleQuoteLeft: faSingleQuoteLeft,\n faMoneyBills: faMoneyBills,\n faTabletButton: faTabletButton,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faWrench: faWrench,\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faTableCells: faTableCells,\n faTh: faTh,\n faRibbon: faRibbon,\n faLandmarkFlag: faLandmarkFlag,\n faUpDownLeftRight: faUpDownLeftRight,\n faArrowsAlt: faArrowsAlt,\n faCarSide: faCarSide,\n faTrashArrowUp: faTrashArrowUp,\n faTrashRestore: faTrashRestore,\n faLifeRing: faLifeRing,\n faCopyright: faCopyright,\n faFilePrescription: faFilePrescription,\n faEraser: faEraser,\n faHourglassStart: faHourglassStart,\n faHourglass1: faHourglass1,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faCruzeiroSign: faCruzeiroSign,\n faSmoking: faSmoking,\n faSquarePollVertical: faSquarePollVertical,\n faPoll: faPoll,\n faPersonCircleMinus: faPersonCircleMinus,\n faBiohazard: faBiohazard,\n faBellConcierge: faBellConcierge,\n faConciergeBell: faConciergeBell,\n faRulerHorizontal: faRulerHorizontal,\n faHorse: faHorse,\n faCalendar: faCalendar,\n faHandsHoldingChild: faHandsHoldingChild,\n faItalic: faItalic,\n faKhanda: faKhanda,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faCheck: faCheck,\n faFingerprint: faFingerprint,\n faChargingStation: faChargingStation,\n faUserLock: faUserLock,\n faMobileScreenButton: faMobileScreenButton,\n faMobileAlt: faMobileAlt,\n faAnchorCircleCheck: faAnchorCircleCheck,\n faPersonWalkingWithCane: faPersonWalkingWithCane,\n faBlind: faBlind,\n faFileWaveform: faFileWaveform,\n faFileMedicalAlt: faFileMedicalAlt,\n faHouseCrack: faHouseCrack,\n faHatWizard: faHatWizard,\n faUserDoctor: faUserDoctor,\n faUserMd: faUserMd,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faSprayCanSparkles: faSprayCanSparkles,\n faAirFreshener: faAirFreshener,\n faBahtSign: faBahtSign,\n faTemperatureArrowUp: faTemperatureArrowUp,\n faTemperatureUp: faTemperatureUp,\n faWebAwesome: faWebAwesome,\n faNonBinary: faNonBinary,\n faN: faN,\n faArrowsUpDownLeftRight: faArrowsUpDownLeftRight,\n faArrows: faArrows,\n faHouse: faHouse,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeLgAlt: faHomeLgAlt,\n faSpinner: faSpinner,\n faGavel: faGavel,\n faLegal: faLegal,\n faTicketSimple: faTicketSimple,\n faTicketAlt: faTicketAlt,\n faDove: faDove,\n faTarpDroplet: faTarpDroplet,\n faTreeCity: faTreeCity,\n faTurnUp: faTurnUp,\n faLevelUpAlt: faLevelUpAlt,\n faTemperatureQuarter: faTemperatureQuarter,\n faTemperature1: faTemperature1,\n faThermometer1: faThermometer1,\n faThermometerQuarter: faThermometerQuarter,\n faSliders: faSliders,\n faSlidersH: faSlidersH,\n faMosque: faMosque,\n faH: faH,\n faInfo: faInfo,\n faPersonWalking: faPersonWalking,\n faWalking: faWalking,\n faArrowTurnDown: faArrowTurnDown,\n faLevelDown: faLevelDown,\n faRoad: faRoad,\n faSpiral: faSpiral,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faWineGlassEmpty: faWineGlassEmpty,\n faWineGlassAlt: faWineGlassAlt,\n faClapperboard: faClapperboard,\n faForwardStep: faForwardStep,\n faStepForward: faStepForward,\n faSquareUpRight: faSquareUpRight,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faBookJournalWhills: faBookJournalWhills,\n faJournalWhills: faJournalWhills,\n faChampagneGlasses: faChampagneGlasses,\n faGlassCheers: faGlassCheers,\n faDumpster: faDumpster,\n faHeartCircleXmark: faHeartCircleXmark,\n faComputer: faComputer,\n faWandMagic: faWandMagic,\n faMagic: faMagic,\n faBrain: faBrain,\n faBriefcaseMedical: faBriefcaseMedical,\n faHouseMedicalCircleExclamation: faHouseMedicalCircleExclamation,\n faCodeCommit: faCodeCommit,\n faPersonBreastfeeding: faPersonBreastfeeding,\n faPersonRays: faPersonRays,\n faManatSign: faManatSign,\n faSort: faSort,\n faUnsorted: faUnsorted,\n faCircleRadiation: faCircleRadiation,\n faRadiationAlt: faRadiationAlt,\n faLaptopCode: faLaptopCode,\n faSink: faSink,\n faArrowUpFromWaterPump: faArrowUpFromWaterPump,\n faMicrophoneLinesSlash: faMicrophoneLinesSlash,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faServer: faServer,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserLarge: faUserLarge,\n faSnowflake: faSnowflake,\n faTaurus: faTaurus,\n faSkullCrossbones: faSkullCrossbones,\n faPesoSign: faPesoSign,\n faWineGlass: faWineGlass,\n faTemperatureHalf: faTemperatureHalf,\n faTemperature2: faTemperature2,\n faThermometer2: faThermometer2,\n faThermometerHalf: faThermometerHalf,\n faTicket: faTicket,\n faWheatAwnCircleExclamation: faWheatAwnCircleExclamation,\n faArrowsTurnRight: faArrowsTurnRight,\n faCandyCane: faCandyCane,\n faWheelchair: faWheelchair,\n faSpellCheck: faSpellCheck,\n faVolumeOff: faVolumeOff,\n faLungs: faLungs,\n faBookmark: faBookmark,\n faBarcode: faBarcode,\n faListOl: faListOl,\n faList12: faList12,\n faListNumeric: faListNumeric,\n faFileCircleXmark: faFileCircleXmark,\n faCube: faCube,\n faTape: faTape,\n faBomb: faBomb,\n faScaleUnbalanced: faScaleUnbalanced,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faRuler: faRuler,\n faI: faI,\n faVolumeXmark: faVolumeXmark,\n faVolumeMute: faVolumeMute,\n faVolumeTimes: faVolumeTimes,\n faArchway: faArchway,\n faPersonDigging: faPersonDigging,\n faDigging: faDigging,\n faGaugeHigh: faGaugeHigh,\n faTachometerAlt: faTachometerAlt,\n faTachometerAltFast: faTachometerAltFast,\n faGenderless: faGenderless,\n faCloudSun: faCloudSun,\n faArrowRight: faArrowRight,\n faHandshake: faHandshake,\n faHandshakeAlt: faHandshakeAlt,\n faHandshakeSimple: faHandshakeSimple,\n faPersonSkiing: faPersonSkiing,\n faSkiing: faSkiing,\n faBridgeWater: faBridgeWater,\n faBuildingNgo: faBuildingNgo,\n faIgloo: faIgloo,\n faCircleDollarToSlot: faCircleDollarToSlot,\n faDonate: faDonate,\n faY: faY,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faDiceFour: faDiceFour,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faFileAudio: faFileAudio,\n faArrowsDownToLine: faArrowsDownToLine,\n faG: faG,\n faVihara: faVihara,\n faFlagCheckered: faFlagCheckered,\n faGaugeSimple: faGaugeSimple,\n faGaugeSimpleMed: faGaugeSimpleMed,\n faTachometerAverage: faTachometerAverage,\n faRightLeft: faRightLeft,\n faExchangeAlt: faExchangeAlt,\n faPills: faPills,\n faExplosion: faExplosion,\n faArrowsDownToPeople: faArrowsDownToPeople,\n faUsersViewfinder: faUsersViewfinder,\n faCarOn: faCarOn,\n faSleigh: faSleigh,\n faDumbbell: faDumbbell,\n faBabyCarriage: faBabyCarriage,\n faCarriageBaby: faCarriageBaby,\n faKiwiBird: faKiwiBird,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faFileMedical: faFileMedical,\n faXmark: faXmark,\n faClose: faClose,\n faMultiply: faMultiply,\n faRemove: faRemove,\n faTimes: faTimes,\n faShapes: faShapes,\n faTriangleCircleSquare: faTriangleCircleSquare,\n faDiceOne: faDiceOne,\n faLockOpen: faLockOpen,\n faPepperHot: faPepperHot,\n faDropletSlash: faDropletSlash,\n faTintSlash: faTintSlash,\n faDroplet: faDroplet,\n faTint: faTint,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faCommentsDollar: faCommentsDollar,\n faMagnifyingGlassLocation: faMagnifyingGlassLocation,\n faSearchLocation: faSearchLocation,\n faFileInvoice: faFileInvoice,\n faPentagon: faPentagon,\n faRepublican: faRepublican,\n faShop: faShop,\n faStoreAlt: faStoreAlt,\n faFilm: faFilm,\n faFilmAlt: faFilmAlt,\n faFilmSimple: faFilmSimple,\n faBuildingCircleXmark: faBuildingCircleXmark,\n faComments: faComments,\n faTags: faTags,\n faGun: faGun,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faScorpio: faScorpio,\n faIdCardClip: faIdCardClip,\n faIdCardAlt: faIdCardAlt,\n faMoon: faMoon,\n faOilWell: faOilWell,\n faTachographDigital: faTachographDigital,\n faDigitalTachograph: faDigitalTachograph,\n faTablet: faTablet,\n faTabletAndroid: faTabletAndroid,\n faRubleSign: faRubleSign,\n faRouble: faRouble,\n faRub: faRub,\n faRuble: faRuble,\n faClosedCaptioning: faClosedCaptioning,\n faPen: faPen,\n faPlane: faPlane,\n faImages: faImages,\n faMobileScreen: faMobileScreen,\n faMobileAndroidAlt: faMobileAndroidAlt,\n faGuaraniSign: faGuaraniSign,\n faBagShopping: faBagShopping,\n faShoppingBag: faShoppingBag,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faPhoneVolume: faPhoneVolume,\n faVolumeControlPhone: faVolumeControlPhone,\n faCubes: faCubes,\n faPhone: faPhone,\n faToriiGate: faToriiGate,\n faBacon: faBacon,\n faPersonFallingBurst: faPersonFallingBurst,\n faQuoteRight: faQuoteRight,\n faQuoteRightAlt: faQuoteRightAlt,\n faHouseMedicalFlag: faHouseMedicalFlag,\n faPrescription: faPrescription,\n faDiceThree: faDiceThree,\n faBuildingLock: faBuildingLock,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faLeaf: faLeaf,\n faHouseChimneyUser: faHouseChimneyUser,\n faRotateRight: faRotateRight,\n faRedoAlt: faRedoAlt,\n faRotateForward: faRotateForward,\n faTooth: faTooth,\n faHouseChimneyWindow: faHouseChimneyWindow,\n faMotorcycle: faMotorcycle,\n faBackwardFast: faBackwardFast,\n faFastBackward: faFastBackward,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faSailboat: faSailboat,\n faBookBookmark: faBookBookmark,\n faMagnifyingGlassArrowRight: faMagnifyingGlassArrowRight,\n faMicrophoneLines: faMicrophoneLines,\n faMicrophoneAlt: faMicrophoneAlt,\n faReplyAll: faReplyAll,\n faMailReplyAll: faMailReplyAll,\n faUniversalAccess: faUniversalAccess,\n faToiletPaper: faToiletPaper,\n faToiletPaperAlt: faToiletPaperAlt,\n faToiletPaperBlank: faToiletPaperBlank,\n faVrCardboard: faVrCardboard,\n faPizzaSlice: faPizzaSlice,\n faSprayCan: faSprayCan,\n faVolumeLow: faVolumeLow,\n faVolumeDown: faVolumeDown,\n faCross: faCross,\n faPerson: faPerson,\n faMale: faMale,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faFish: faFish,\n faDrumstickBite: faDrumstickBite,\n faChartSimple: faChartSimple,\n faAtom: faAtom,\n faP: faP,\n faJetFighterUp: faJetFighterUp,\n faPlugCircleXmark: faPlugCircleXmark,\n faSheetPlastic: faSheetPlastic,\n faV: faV,\n faList: faList,\n faListSquares: faListSquares,\n faPisces: faPisces,\n faSolarPanel: faSolarPanel,\n faLandMineOn: faLandMineOn,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadphonesSimple: faHeadphonesSimple,\n faBus: faBus,\n faFilePowerpoint: faFilePowerpoint,\n faQuoteLeft: faQuoteLeft,\n faQuoteLeftAlt: faQuoteLeftAlt,\n faChevronDown: faChevronDown,\n faEarthAsia: faEarthAsia,\n faGlobeAsia: faGlobeAsia,\n faCentSign: faCentSign,\n faShieldCat: faShieldCat,\n faSchoolCircleCheck: faSchoolCircleCheck,\n faMartiniGlass: faMartiniGlass,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faPlug: faPlug,\n faPanorama: faPanorama,\n faClockRotateLeft: faClockRotateLeft,\n faHistory: faHistory,\n faJarWheat: faJarWheat,\n faCloudArrowDown: faCloudArrowDown,\n faCloudDownload: faCloudDownload,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faTruckRampBox: faTruckRampBox,\n faTruckLoading: faTruckLoading,\n faAngleDown: faAngleDown,\n faPlugCircleCheck: faPlugCircleCheck,\n faWindowMaximize: faWindowMaximize,\n faHandsHoldingCircle: faHandsHoldingCircle,\n faLocationPin: faLocationPin,\n faMapMarker: faMapMarker,\n faBowlingBall: faBowlingBall,\n faCartFlatbed: faCartFlatbed,\n faDollyFlatbed: faDollyFlatbed,\n faHouseUser: faHouseUser,\n faHomeUser: faHomeUser,\n faGhost: faGhost,\n faCommentNodes: faCommentNodes,\n faPersonArrowDownToLine: faPersonArrowDownToLine,\n faPlugCirclePlus: faPlugCirclePlus,\n faPersonSwimming: faPersonSwimming,\n faSwimmer: faSwimmer,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faChartPie: faChartPie,\n faPieChart: faPieChart,\n faFrog: faFrog,\n faWineBottle: faWineBottle,\n faInbox: faInbox,\n faSquareH: faSquareH,\n faHSquare: faHSquare,\n faHouseMedical: faHouseMedical,\n faCircleChevronRight: faCircleChevronRight,\n faChevronCircleRight: faChevronCircleRight,\n faFileCsv: faFileCsv,\n faHatCowboy: faHatCowboy,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faL: faL,\n faArrowDownShortWide: faArrowDownShortWide,\n faSortAmountDesc: faSortAmountDesc,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faSpoon: faSpoon,\n faUtensilSpoon: faUtensilSpoon,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faSpaghettiMonsterFlying: faSpaghettiMonsterFlying,\n faPastafarianism: faPastafarianism,\n faMartiniGlassCitrus: faMartiniGlassCitrus,\n faCocktail: faCocktail,\n faBullhorn: faBullhorn,\n faBoxTissue: faBoxTissue,\n faMattressPillow: faMattressPillow,\n faChevronLeft: faChevronLeft,\n faCloudMoonRain: faCloudMoonRain,\n faArrowDown19: faArrowDown19,\n faSortNumericAsc: faSortNumericAsc,\n faSortNumericDown: faSortNumericDown,\n faHandSpock: faHandSpock,\n faWandMagicSparkles: faWandMagicSparkles,\n faMagicWandSparkles: faMagicWandSparkles,\n faCommentMedical: faCommentMedical,\n faBellSlash: faBellSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSimpleSlash: faHandshakeSimpleSlash,\n faBottleWater: faBottleWater,\n faDiceD20: faDiceD20,\n faArrowDownZA: faArrowDownZA,\n faSortAlphaDesc: faSortAlphaDesc,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faBrush: faBrush,\n faPersonWalkingDashedLineArrowRight: faPersonWalkingDashedLineArrowRight,\n faArrowUpShortWide: faArrowUpShortWide,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faGripVertical: faGripVertical,\n faGridVertical: faGridVertical,\n faCarTunnel: faCarTunnel,\n faChartColumn: faChartColumn,\n faCapricorn: faCapricorn,\n faTruckArrowRight: faTruckArrowRight,\n faTv: faTv,\n faTelevision: faTelevision,\n faTvAlt: faTvAlt,\n faSection: faSection,\n faPeace: faPeace,\n faStar: faStar,\n faFlag: faFlag,\n faTriangleExclamation: faTriangleExclamation,\n faExclamationTriangle: faExclamationTriangle,\n faWarning: faWarning,\n faSchoolCircleExclamation: faSchoolCircleExclamation,\n faGraduationCap: faGraduationCap,\n faMortarBoard: faMortarBoard,\n faStore: faStore,\n faUserAstronaut: faUserAstronaut,\n faBuildingFlag: faBuildingFlag,\n faMugSaucer: faMugSaucer,\n faCoffee: faCoffee,\n faLemon: faLemon,\n faCaravan: faCaravan,\n faQ: faQ,\n faLock: faLock,\n faPaintRoller: faPaintRoller,\n faVolumeHigh: faVolumeHigh,\n faVolumeUp: faVolumeUp,\n faFolderPlus: faFolderPlus,\n faMercury: faMercury,\n faAnchor: faAnchor,\n faSquareParking: faSquareParking,\n faParking: faParking,\n faHanukiah: faHanukiah,\n faRotateLeft: faRotateLeft,\n faRotateBack: faRotateBack,\n faRotateBackward: faRotateBackward,\n faUndoAlt: faUndoAlt,\n faHeading: faHeading,\n faHeader: faHeader,\n faCrosshairs: faCrosshairs,\n faCircleNodes: faCircleNodes,\n faWindowRestore: faWindowRestore,\n faR: faR,\n faFilterCircleXmark: faFilterCircleXmark,\n faGopuram: faGopuram,\n faHeartCircleMinus: faHeartCircleMinus,\n faStarOfLife: faStarOfLife,\n faBusinessTime: faBusinessTime,\n faBriefcaseClock: faBriefcaseClock,\n faFireExtinguisher: faFireExtinguisher,\n faArrowDownLong: faArrowDownLong,\n faLongArrowDown: faLongArrowDown,\n faUserMinus: faUserMinus,\n faMoneyCheck: faMoneyCheck,\n faHouseLaptop: faHouseLaptop,\n faLaptopHouse: faLaptopHouse,\n faDownload: faDownload,\n faSagittarius: faSagittarius,\n faCouch: faCouch,\n faRoadLock: faRoadLock,\n faScissors: faScissors,\n faCut: faCut,\n faBug: faBug,\n faArrowRightFromBracket: faArrowRightFromBracket,\n faSignOut: faSignOut,\n faHandHoldingHand: faHandHoldingHand,\n faStroopwafel: faStroopwafel,\n faChild: faChild,\n faIceCream: faIceCream,\n faComputerMouse: faComputerMouse,\n faMouse: faMouse,\n faFaucet: faFaucet,\n faAward: faAward,\n faPersonDrowning: faPersonDrowning,\n faCameraRotate: faCameraRotate,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faFileFragment: faFileFragment,\n faPersonMilitaryRifle: faPersonMilitaryRifle,\n faToggleOn: faToggleOn,\n faLungsVirus: faLungsVirus,\n faTableTennisPaddleBall: faTableTennisPaddleBall,\n faPingPongPaddleBall: faPingPongPaddleBall,\n faTableTennis: faTableTennis,\n faBoxesPacking: faBoxesPacking,\n faPersonChalkboard: faPersonChalkboard,\n faDiceTwo: faDiceTwo,\n faArrowRightArrowLeft: faArrowRightArrowLeft,\n faExchange: faExchange,\n faFootball: faFootball,\n faFootballBall: faFootballBall,\n faTruckMonster: faTruckMonster,\n faAsterisk: faAsterisk,\n faBatteryFull: faBatteryFull,\n faBattery: faBattery,\n faBattery5: faBattery5,\n faChildDress: faChildDress,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faTrashCanArrowUp: faTrashCanArrowUp,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faFont: faFont,\n faBoreHole: faBoreHole,\n faVirusCovid: faVirusCovid,\n faFilePdf: faFilePdf,\n faLanguage: faLanguage,\n faShieldHalved: faShieldHalved,\n faShieldAlt: faShieldAlt,\n faCaretUp: faCaretUp,\n faFilePen: faFilePen,\n faFileEdit: faFileEdit,\n faPersonBiking: faPersonBiking,\n faBiking: faBiking,\n faBookOpenReader: faBookOpenReader,\n faBookReader: faBookReader,\n faGlassWaterDroplet: faGlassWaterDroplet,\n faTowerBroadcast: faTowerBroadcast,\n faBroadcastTower: faBroadcastTower,\n faMinimize: faMinimize,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faArrowRightToCity: faArrowRightToCity,\n faLaptopMedical: faLaptopMedical,\n faBreadSlice: faBreadSlice,\n faGlobe: faGlobe,\n faFolderMinus: faFolderMinus,\n faMaskFace: faMaskFace,\n faBong: faBong,\n faRoadBridge: faRoadBridge,\n faArrowUp91: faArrowUp91,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faMountainCity: faMountainCity,\n faArrowDown91: faArrowDown91,\n faSortNumericDesc: faSortNumericDesc,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faPoop: faPoop,\n faDharmachakra: faDharmachakra,\n faBatteryQuarter: faBatteryQuarter,\n faBattery2: faBattery2,\n faAnkh: faAnkh,\n faDiamond: faDiamond,\n faSubscript: faSubscript,\n faRupeeSign: faRupeeSign,\n faRupee: faRupee,\n faPersonRifle: faPersonRifle,\n faD: faD,\n faSquareNfi: faSquareNfi,\n faTeeth: faTeeth,\n faMagnifyingGlassDollar: faMagnifyingGlassDollar,\n faSearchDollar: faSearchDollar,\n faDumpsterFire: faDumpsterFire,\n faUpload: faUpload,\n faUserSlash: faUserSlash,\n faUserAltSlash: faUserAltSlash,\n faUserLargeSlash: faUserLargeSlash,\n faArrowLeft: faArrowLeft,\n faVialVirus: faVialVirus,\n faCheckDouble: faCheckDouble,\n faPaw: faPaw,\n faHelmetSafety: faHelmetSafety,\n faHardHat: faHardHat,\n faHatHard: faHatHard,\n faE: faE,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faDownLeftAndUpRightToCenter: faDownLeftAndUpRightToCenter,\n faCompressAlt: faCompressAlt,\n faGifts: faGifts,\n faBed: faBed,\n faMoneyBillTransfer: faMoneyBillTransfer,\n faPersonRunning: faPersonRunning,\n faRunning: faRunning,\n faCircleChevronDown: faCircleChevronDown,\n faChevronCircleDown: faChevronCircleDown,\n faUserNurse: faUserNurse,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faFill: faFill,\n faMoneyBill1Wave: faMoneyBill1Wave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faLandmark: faLandmark,\n faMusic: faMusic,\n faBookMedical: faBookMedical,\n faShuffle: faShuffle,\n faRandom: faRandom,\n faUnderline: faUnderline,\n faBuildingUser: faBuildingUser,\n faRobot: faRobot,\n faPlus: faPlus,\n faAdd: faAdd,\n faCopy: faCopy,\n faChessKing: faChessKing,\n faHouseFloodWater: faHouseFloodWater,\n faBitcoinSign: faBitcoinSign,\n faBox: faBox,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faArrowsLeftRight: faArrowsLeftRight,\n faArrowsH: faArrowsH,\n faFan: faFan,\n faCrow: faCrow,\n faFileCircleCheck: faFileCircleCheck,\n faLinkSlash: faLinkSlash,\n faChainBroken: faChainBroken,\n faChainSlash: faChainSlash,\n faUnlink: faUnlink,\n faArrowRotateRight: faArrowRotateRight,\n faArrowRightRotate: faArrowRightRotate,\n faArrowRotateForward: faArrowRotateForward,\n faRedo: faRedo,\n faPenClip: faPenClip,\n faPenAlt: faPenAlt,\n faDoorClosed: faDoorClosed,\n faArrowDownWideShort: faArrowDownWideShort,\n faSortAmountAsc: faSortAmountAsc,\n faSortAmountDown: faSortAmountDown,\n faCaretDown: faCaretDown,\n faK: faK,\n faCheckToSlot: faCheckToSlot,\n faVoteYea: faVoteYea,\n faFishFins: faFishFins,\n faCompress: faCompress,\n faArrowUpAZ: faArrowUpAZ,\n faSortAlphaUp: faSortAlphaUp,\n faUserGraduate: faUserGraduate,\n faFileCode: faFileCode,\n faSoap: faSoap,\n faRecycle: faRecycle,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faWaterLadder: faWaterLadder,\n faLadderWater: faLadderWater,\n faSwimmingPool: faSwimmingPool,\n faGemini: faGemini,\n faTowerCell: faTowerCell,\n faColonSign: faColonSign,\n faLaptopFile: faLaptopFile,\n faBahai: faBahai,\n faHaykal: faHaykal,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faCloudBolt: faCloudBolt,\n faThunderstorm: faThunderstorm,\n faEthernet: faEthernet,\n faHryvniaSign: faHryvniaSign,\n faHryvnia: faHryvnia,\n faEyeSlash: faEyeSlash,\n faCartFlatbedSuitcase: faCartFlatbedSuitcase,\n faLuggageCart: faLuggageCart,\n faRadiation: faRadiation,\n faFileWord: faFileWord,\n faBedPulse: faBedPulse,\n faProcedures: faProcedures,\n faTents: faTents,\n faMugHot: faMugHot,\n faBolt: faBolt,\n faZap: faZap,\n faJar: faJar,\n faTruckPlane: faTruckPlane,\n faHandHoldingHeart: faHandHoldingHeart,\n faArrowRotateLeft: faArrowRotateLeft,\n faArrowLeftRotate: faArrowLeftRotate,\n faArrowRotateBack: faArrowRotateBack,\n faArrowRotateBackward: faArrowRotateBackward,\n faUndo: faUndo,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faBurst: faBurst,\n faZ: faZ,\n faBandage: faBandage,\n faBandAid: faBandAid,\n faPlaneCircleExclamation: faPlaneCircleExclamation,\n faBusSide: faBusSide,\n faBugs: faBugs,\n faBeerMugEmpty: faBeerMugEmpty,\n faBeer: faBeer,\n faPersonCircleCheck: faPersonCircleCheck,\n faStapler: faStapler,\n faHouseMedicalCircleCheck: faHouseMedicalCircleCheck,\n faNairaSign: faNairaSign,\n faWifi: faWifi,\n faWifi3: faWifi3,\n faWifiStrong: faWifiStrong,\n faMoneyCheckDollar: faMoneyCheckDollar,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faEyeLowVision: faEyeLowVision,\n faLowVision: faLowVision,\n faCircleArrowUp: faCircleArrowUp,\n faArrowCircleUp: faArrowCircleUp,\n faCameraRetro: faCameraRetro,\n faCapsules: faCapsules,\n faPoo: faPoo,\n faVolume: faVolume,\n faVolumeMedium: faVolumeMedium,\n faElevator: faElevator,\n faTag: faTag,\n faFileCircleMinus: faFileCircleMinus,\n faDownLong: faDownLong,\n faLongArrowAltDown: faLongArrowAltDown,\n faCompactDisc: faCompactDisc,\n faSuitcaseRolling: faSuitcaseRolling,\n faBookQuran: faBookQuran,\n faQuran: faQuran,\n faPhoneSlash: faPhoneSlash,\n faRoadCircleCheck: faRoadCircleCheck,\n faShopLock: faShopLock,\n faImagePortrait: faImagePortrait,\n faPortrait: faPortrait,\n faBridgeLock: faBridgeLock,\n faHammer: faHammer,\n faArrowUp19: faArrowUp19,\n faSortNumericUp: faSortNumericUp,\n faChessKnight: faChessKnight,\n faHouseFloodWaterCircleArrowRight: faHouseFloodWaterCircleArrowRight,\n faArrowUpRightFromSquare: faArrowUpRightFromSquare,\n faExternalLink: faExternalLink,\n faArrowDownUpAcrossLine: faArrowDownUpAcrossLine,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faRectangleAd: faRectangleAd,\n faAd: faAd,\n faBookTanakh: faBookTanakh,\n faTanakh: faTanakh,\n faHotTubPerson: faHotTubPerson,\n faHotTub: faHotTub,\n faFileHalfDashed: faFileHalfDashed,\n faOutdent: faOutdent,\n faDedent: faDedent,\n faHandPeace: faHandPeace,\n faHeadSideVirus: faHeadSideVirus,\n faCompass: faCompass,\n faPenNib: faPenNib,\n faTentArrowsDown: faTentArrowsDown,\n faForwardFast: faForwardFast,\n faFastForward: faFastForward,\n faCrop: faCrop,\n faWhiskeyGlass: faWhiskeyGlass,\n faGlassWhiskey: faGlassWhiskey,\n faSquare: faSquare,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faFileContract: faFileContract,\n faAngleUp: faAngleUp,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faPersonDressBurst: faPersonDressBurst,\n faDivide: faDivide,\n faCodeFork: faCodeFork,\n faHouseFlag: faHouseFlag,\n faBuildingColumns: faBuildingColumns,\n faBank: faBank,\n faInstitution: faInstitution,\n faMuseum: faMuseum,\n faUniversity: faUniversity,\n faRug: faRug,\n faCodeMerge: faCodeMerge,\n faHouseTsunami: faHouseTsunami,\n faMagnifyingGlassChart: faMagnifyingGlassChart,\n faUmbrella: faUmbrella,\n faHillRockslide: faHillRockslide,\n faUserSecret: faUserSecret,\n faPager: faPager,\n faBriefcase: faBriefcase,\n faTrowelBricks: faTrowelBricks,\n faSocks: faSocks,\n faT: faT,\n faMicrochip: faMicrochip,\n faTruckMedical: faTruckMedical,\n faAmbulance: faAmbulance,\n faOm: faOm,\n faMosquitoNet: faMosquitoNet,\n faPrescriptionBottle: faPrescriptionBottle,\n faUsersGear: faUsersGear,\n faUsersCog: faUsersCog,\n faRoadCircleExclamation: faRoadCircleExclamation,\n faPause: faPause,\n faStaffSnake: faStaffSnake,\n faRodAsclepius: faRodAsclepius,\n faRodSnake: faRodSnake,\n faStaffAesculapius: faStaffAesculapius,\n faPiggyBank: faPiggyBank,\n faMonument: faMonument,\n faAnglesRight: faAnglesRight,\n faAngleDoubleRight: faAngleDoubleRight,\n faDesktop: faDesktop,\n faDesktopAlt: faDesktopAlt,\n faPlaneCircleXmark: faPlaneCircleXmark,\n faRetweet: faRetweet,\n faUserGear: faUserGear,\n faUserCog: faUserCog,\n faBorderAll: faBorderAll,\n faCoins: faCoins,\n faMarsStroke: faMarsStroke,\n faHandshakeAngle: faHandshakeAngle,\n faHandsHelping: faHandsHelping,\n faArrowDown: faArrowDown,\n faLocationDot: faLocationDot,\n faMapMarkerAlt: faMapMarkerAlt,\n faPlugCircleExclamation: faPlugCircleExclamation,\n faCookieBite: faCookieBite,\n faScrewdriverWrench: faScrewdriverWrench,\n faTools: faTools,\n faIndent: faIndent,\n faBars: faBars,\n faNavicon: faNavicon,\n faHandsPraying: faHandsPraying,\n faPrayingHands: faPrayingHands,\n faViruses: faViruses,\n faSchoolFlag: faSchoolFlag,\n faTrademark: faTrademark,\n faFireBurner: faFireBurner,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faTentArrowLeftRight: faTentArrowLeftRight,\n faRoute: faRoute,\n faAnglesUp: faAnglesUp,\n faAngleDoubleUp: faAngleDoubleUp,\n faBucket: faBucket,\n faLessThanEqual: faLessThanEqual,\n faFolderClosed: faFolderClosed,\n faPersonThroughWindow: faPersonThroughWindow,\n faSchoolLock: faSchoolLock,\n faPersonBurst: faPersonBurst,\n faLeftLong: faLeftLong,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLocationCrosshairs: faLocationCrosshairs,\n faLocation: faLocation,\n faPersonDotsFromLine: faPersonDotsFromLine,\n faDiagnoses: faDiagnoses,\n faGaugeSimpleHigh: faGaugeSimpleHigh,\n faTachometer: faTachometer,\n faTachometerFast: faTachometerFast,\n faAnglesLeft: faAnglesLeft,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faUpDown: faUpDown,\n faArrowsAltV: faArrowsAltV,\n faBatteryEmpty: faBatteryEmpty,\n faBattery0: faBattery0,\n faKeyboard: faKeyboard,\n faCookie: faCookie,\n faStopwatch: faStopwatch,\n faEject: faEject,\n faSatelliteDish: faSatelliteDish,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faListCheck: faListCheck,\n faTasks: faTasks,\n faSackXmark: faSackXmark,\n faHashtag: faHashtag,\n faTrain: faTrain,\n faGamepad: faGamepad,\n faFileExport: faFileExport,\n faArrowRightFromFile: faArrowRightFromFile,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faTrainSubway: faTrainSubway,\n faSubway: faSubway,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faObjectGroup: faObjectGroup,\n faShip: faShip,\n faC: faC,\n faSquarePhone: faSquarePhone,\n faPhoneSquare: faPhoneSquare,\n faRulerCombined: faRulerCombined,\n faArrowsRotate: faArrowsRotate,\n faRefresh: faRefresh,\n faSync: faSync,\n faPersonDress: faPersonDress,\n faFemale: faFemale,\n faBookOpen: faBookOpen,\n faFolderTree: faFolderTree,\n faVirgo: faVirgo,\n faBoxArchive: faBoxArchive,\n faArchive: faArchive,\n faTentArrowDownToLine: faTentArrowDownToLine,\n faQrcode: faQrcode,\n faDragon: faDragon,\n faHourglassEnd: faHourglassEnd,\n faHourglass3: faHourglass3,\n faGrip: faGrip,\n faGridHorizontal: faGridHorizontal,\n faGripHorizontal: faGripHorizontal,\n faBorderTopLeft: faBorderTopLeft,\n faBorderStyle: faBorderStyle,\n faListUl: faListUl,\n faListDots: faListDots,\n faPeopleRobbery: faPeopleRobbery,\n faMobileButton: faMobileButton,\n faArrowDownAZ: faArrowDownAZ,\n faSortAlphaAsc: faSortAlphaAsc,\n faSortAlphaDown: faSortAlphaDown,\n faMoneyBill: faMoneyBill,\n faCircleMinus: faCircleMinus,\n faMinusCircle: faMinusCircle,\n faArrowPointer: faArrowPointer,\n faMousePointer: faMousePointer,\n faSquareShareNodes: faSquareShareNodes,\n faShareAltSquare: faShareAltSquare,\n faTableCellsLarge: faTableCellsLarge,\n faThLarge: faThLarge,\n faCat: faCat,\n faCalendarWeek: faCalendarWeek,\n faCodeCompare: faCodeCompare,\n faLeo: faLeo,\n faRoadCircleXmark: faRoadCircleXmark,\n faPallet: faPallet,\n faCakeCandles: faCakeCandles,\n faBirthdayCake: faBirthdayCake,\n faCake: faCake,\n faBugSlash: faBugSlash,\n faTarp: faTarp,\n faDiagramPredecessor: faDiagramPredecessor,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faDiagramNext: faDiagramNext,\n faAnchorCircleXmark: faAnchorCircleXmark,\n faPersonCircleXmark: faPersonCircleXmark,\n faSpa: faSpa,\n faAries: faAries,\n faBarsProgress: faBarsProgress,\n faTasksAlt: faTasksAlt,\n faHeartCircleCheck: faHeartCircleCheck,\n faMarsStrokeRight: faMarsStrokeRight,\n faMarsStrokeH: faMarsStrokeH,\n faTowerObservation: faTowerObservation,\n faSterlingSign: faSterlingSign,\n faGbp: faGbp,\n faPoundSign: faPoundSign,\n faFaucetDrip: faFaucetDrip,\n faCircleInfo: faCircleInfo,\n faInfoCircle: faInfoCircle,\n faFeather: faFeather,\n faBowlRice: faBowlRice,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faTemperatureArrowDown: faTemperatureArrowDown,\n faTemperatureDown: faTemperatureDown,\n faMaskVentilator: faMaskVentilator,\n faFileVideo: faFileVideo,\n faArrowTrendDown: faArrowTrendDown,\n faOilCan: faOilCan,\n faPeopleCarryBox: faPeopleCarryBox,\n faPeopleCarry: faPeopleCarry,\n faChair: faChair,\n faWind: faWind,\n faLayerGroup: faLayerGroup,\n faHeadSideMask: faHeadSideMask,\n faHands: faHands,\n faSignLanguage: faSignLanguage,\n faSigning: faSigning,\n faTablets: faTablets,\n faWeightHanging: faWeightHanging,\n faDice: faDice,\n faShopSlash: faShopSlash,\n faStoreAltSlash: faStoreAltSlash,\n faSortDown: faSortDown,\n faSortDesc: faSortDesc,\n faPesetaSign: faPesetaSign,\n faTabletScreenButton: faTabletScreenButton,\n faTabletAlt: faTabletAlt,\n faHandHoldingDollar: faHandHoldingDollar,\n faHandHoldingUsd: faHandHoldingUsd,\n faShield: faShield,\n faShieldBlank: faShieldBlank,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faHandsHolding: faHandsHolding,\n faCartShopping: faCartShopping,\n faShoppingCart: faShoppingCart,\n faOctagon: faOctagon,\n faHandPointer: faHandPointer,\n faRegistered: faRegistered,\n faHouseSignal: faHouseSignal,\n faBangladeshiTakaSign: faBangladeshiTakaSign\n};\n\nexport { icons as fas, prefix, fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, faDollarSign, faDollar, faUsd, faDog, faTruckMoving, faRotate, faSyncAlt, faSquareMinus, faMinusSquare, faAlignJustify, faCalendarCheck, faFaceKiss, faKiss, faKitchenSet, faDna, faChildReaching, faPaste, faFileClipboard, faMeteor, faGears, faCogs, faFileCirclePlus, faIcicles, faArrowTrendUp, faHexagonNodesBolt, faQuestion, faHandsBound, faPersonWalkingLuggage, faFileArrowDown, faFileDownload, faPersonBooth, faLocust, faRightLong, faLongArrowAltRight, faTruckDroplet, faHandHoldingMedical, faHandPointLeft, faCalculator, faMinus, faSubtract, faArrowUpZA, faSortAlphaUpAlt, faMicrophoneSlash, faSquarePen, faPenSquare, faPencilSquare, faHandFist, faFistRaised, faCommentSms, faSms, faSimCard, faScaleBalanced, faBalanceScale, faCar, faAutomobile, faCropSimple, faCropAlt, faMedal, faScroll, faFileExcel, faFilter, faDrum, faMapPin, faScaleUnbalancedFlip, faBalanceScaleRight, faArrowsToCircle, faEnvelope, faBaby, faSquareCaretDown, faCaretSquareDown, faTent, faA, faParachuteBox, faCartArrowDown, faBridgeCircleExclamation, faCloudArrowUp, faCloudUpload, faCloudUploadAlt, faAt, faIndianRupeeSign, faIndianRupee, faInr, faTruck, faChalkboardUser, faChalkboardTeacher, faUserCheck, faUserNinja, faPlantWilt, faWeightScale, faWeight, faCaretRight, faFlorinSign, faBell, faLariSign, faMillSign, faPersonSnowboarding, faSnowboarding, faTty, faTeletype, faUsersRectangle, faMobile, faMobileAndroid, faMobilePhone, faArrowsTurnToDots, faExclamation, faChurch, faToggleOff, faShoePrints, faFileCircleExclamation, faWallet, faMessage, faCommentAlt, faTrophy, faFaceDizzy, faDizzy, faBacteria, faEarDeaf, faDeaf, faDeafness, faHardOfHearing, faPeopleArrows, faPeopleArrowsLeftRight, faHandsClapping, faVirusCovidSlash, faCalendarDays, faCalendarAlt, faDiamondTurnRight, faDirections, faHandPointUp, faBezierCurve, faPersonHalfDress, faSquarePollHorizontal, faPollH, faSchoolCircleXmark, faHandLizard, faChalkboard, faBlackboard, faUpRightFromSquare, faExternalLinkAlt, faSquareFull, faClover, faTeethOpen, faBarsStaggered, faReorder, faStream, faWarehouse, faSwatchbook, faCampground, faPersonWalkingArrowRight, faGlasses, faCirclePause, faPauseCircle, faMemory, faGift, faMoneyBillWheat, faDungeon, faSuitcaseMedical, faMedkit, faPersonCane, faGauge, faDashboard, faGaugeMed, faTachometerAltAverage, faEnvelopeOpenText, faToolbox, faPowerOff, faSignal, faSignal5, faSignalPerfect, faArrowsSpin, faJoint, faBraille, faBasketShopping, faShoppingBasket, faBridge, faPlaneArrival, faCashRegister, faRing, faAquarius, faShareNodes, faShareAlt, faPersonCircleExclamation, faBinoculars, faKipSign, faHardDrive, faHdd, faRankingStar, faUserTie, faEllipsis, faEllipsisH, faStoreSlash, faPercent, faPercentage, faFileZipper, faFileArchive, faDisplay, faIcons, faHeartMusicCameraBolt, faRulerVertical, faMapLocationDot, faMapMarkedAlt, faHeartCrack, faHeartBroken, faCow, faRss, faFeed, faMagnifyingGlass, faSearch, faCloudMoon, faBoxesStacked, faBoxes, faBoxesAlt, faCodeBranch, faBan, faCancel, faJugDetergent, faReply, faMailReply, faSunPlantWilt, faBacterium, faRecordVinyl, faFloppyDisk, faSave, faToiletsPortable, faO, faPalette, faUnlock, faEarListen, faAssistiveListeningSystems, faCodePullRequest, faKey, faSkull, faMarsStrokeUp, faMarsStrokeV, faFireFlameSimple, faBurn, faTree, faSmog, faS, faJedi, faPersonHiking, faHiking, faArrowsUpToLine, faMarsDouble, faThermometer, faPaintbrush, faPaintBrush, faNeuter, faSquarePhoneFlip, faPhoneSquareAlt, faFaceGrinTongueSquint, faGrinTongueSquint, faCommentDollar, faHippo, faBowlFood, faSquareVirus, faCloudSunRain, faArrowRightLong, faLongArrowRight, faBuildingUn, faTemperatureLow, faDoorOpen, faAlignLeft, faCamera, faCameraAlt, faUsersRays, faRainbow, faSitemap, faFaceGrinStars, faGrinStars, faSortUp, faSortAsc, faEye, faCaretLeft, faAppleWhole, faAppleAlt, faScrollTorah, faTorah, faHouseLock, faArrowsLeftRightToLine, faTrash, faFaceSadTear, faSadTear, faFax, faPersonCirclePlus, faHamsa, faPersonCircleQuestion, faClipboardCheck, faShareFromSquare, faShareSquare, faReceipt, faEquals, faChevronUp, faVirusSlash, faSlash, faExpand, faNoteSticky, faStickyNote, faTableColumns, faColumns, faPersonShelter, faCircleNotch, faWater, faDeleteLeft, faBackspace, faBroomBall, faQuidditch, faQuidditchBroomBall, faJ, faShuttleSpace, faSpaceShuttle, faYinYang, faStop, faTrowel, faHandBackFist, faHandRock, faTemperatureHigh, faGreaterThan, faCrutch, faSeptagon, faHeptagon, faStreetView, faWaveSquare, faAngleLeft, faScrewdriver, faTractor, faBridgeCircleXmark, faVials, faStethoscope, faPodcast, faArrowUpRightDots, faChessQueen, faAnchorCircleExclamation, faEllipsisVertical, faEllipsisV, faHeartCircleExclamation, faBuildingCircleExclamation, faPersonArrowUpFromLine, faNotEqual, faTrainTram, faPlaneDeparture, faRightToBracket, faSignInAlt, faSdCard, faHouseCircleExclamation, faShekelSign, faIls, faShekel, faSheqel, faSheqelSign, faRadio, faHandDots, faAllergies, faBookSkull, faBookDead, faUnlockKeyhole, faUnlockAlt, faFileArrowUp, faFileUpload, faFaceGrinTears, faGrinTears, faPenToSquare, faEdit, faEarthEurope, faGlobeEurope, faFaceGrinBeamSweat, faGrinBeamSweat, faCircleHalfStroke, faAdjust, faPersonMilitaryToPerson, faTableCellsColumnLock, faTruckFieldUn, faClock, faClockFour, faBook, faFaceLaughWink, faLaughWink, faCloudMeatball, faChartArea, faAreaChart, faRupiahSign, faTextWidth, faSatellite, faMagnifyingGlassMinus, faSearchMinus, faPeopleGroup, faSquareBinary, faMasksTheater, faTheaterMasks, faCartPlus, faHandsAslInterpreting, faAmericanSignLanguageInterpreting, faAslInterpreting, faHandsAmericanSignLanguageInterpreting, faTableCellsRowUnlock, faRocket, faShrimp, faTengeSign, faTenge, faHouseChimneyMedical, faClinicMedical, faUsersSlash, faPaperPlane, faBookAtlas, faAtlas, faTable, faHeart, faCircleChevronUp, faChevronCircleUp, faBatteryHalf, faBattery3, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faHandcuffs, faHatCowboySide, faIndustry, faLinesLeaning, faPassport, faInfinity, faClone, faForward, faM, faRoadSpikes, faMountain, faChess, faTemperatureThreeQuarters, faTemperature3, faThermometer3, faThermometerThreeQuarters, faB, faShieldVirus, faLitecoinSign, faDiceD6, faGripLinesVertical, faGolfBallTee, faGolfBall, faHexagon, faFolderOpen, faKaaba, faHandHolding, faSingleQuoteRight, faBottleDroplet, faWindowMinimize, faChevronRight, faEgg, faLandmarkDome, faLandmarkAlt, faWorm, faUserInjured, faStrikethrough, faBlog, faStopwatch20, faTruckPickup, faSeedling, faSprout, faTransgender, faTransgenderAlt, faStarHalf, faPhotoFilm, faPhotoVideo, faPictureInPicture, faPumpMedical, faFire, faMagnifyingGlassPlus, faSearchPlus, faFlask, faAlignRight, faCableCar, faTram, faKitMedical, faFirstAid, faGripLines, faBurger, faHamburger, faSnowman, faHotel, faPrint, faVolleyball, faVolleyballBall, faTrafficLight, faPlaneCircleCheck, faUsers, faCertificate, faAlarmClock, faHelicopterSymbol, faHouseChimneyCrack, faHouseDamage, faPersonMilitaryPointing, faDatabase, faNewspaper, faCloudRain, faMaximize, faExpandArrowsAlt, faLocationArrow, faCity, faXRay, faUmbrellaBeach, faArrowRightToBracket, faSignIn, faHeadset, faSplotch, faUpLong, faLongArrowAltUp, faHexagonNodes, faHospital, faHospitalAlt, faHospitalWide, faPersonHarassing, faMoneyBillTrendUp, faPenRuler, faPencilRuler, faRepeat, faBone, faFireFlameCurved, faFireAlt, faBusSimple, faBusAlt, faVenusMars, faBlender, faU, faShare, faMailForward, faPhoneFlip, faPhoneAlt, faToiletPortable, faPersonPregnant, faLessThan, faSuperscript, faCircleStop, faStopCircle, faArrowsUpDown, faArrowsV, faPooStorm, faPooBolt, faVideoSlash, faSquareXmark, faTimesSquare, faXmarkSquare, faHandHoldingDroplet, faHandHoldingWater, faWonSign, faKrw, faWon, faObjectUngroup, faComment, faHillAvalanche, faArrowsToEye, faSnowplow, faChartGantt, faVideo, faVideoCamera, faChessPawn, faSynagogue, faBuildingCircleCheck, faCalendarPlus, faWheelchairMove, faWheelchairAlt, faUserShield, faBold, faHeartPulse, faHeartbeat, faSquareRootVariable, faSquareRootAlt, faHandsBubbles, faHandsWash, faMarker, faClipboard, faPlaceOfWorship, faCannabis, faPeopleRoof, faDisease, faBookBible, faBible, faChessBoard, faMars, faLaptop, faUserXmark, faUserTimes, faFlagUsa, faHandMiddleFinger, faMortarPestle, faHeadSideCough, faPlaneLock, faBatteryThreeQuarters, faBattery4, faFrancSign, faFilterCircleDollar, faFunnelDollar, faCheese, faCircleH, faHospitalSymbol, faSchool, faDiceFive, faTornado, faJetFighter, faFighterJet, faThumbsDown, faBroom, faFileImport, faArrowRightToFile, faUtensils, faCutlery, faIdBadge, faSpider, faMobileRetro, faSignsPost, faMapSigns, faGroupArrowsRotate, faArrowsSplitUpAndLeft, faFillDrip, faShieldHeart, faPersonSkiingNordic, faSkiingNordic, faSquareCheck, faCheckSquare, faBath, faBathtub, faChessBishop, faPrescriptionBottleMedical, faPrescriptionBottleAlt, faDrawPolygon, faVectorPolygon, faICursor, faHeartCirclePlus, faShieldDog, faGreaterThanEqual, faEnvelopeOpen, faMound, faVoicemail, faVest, faAudioDescription, faW, faEyeDropper, faEyeDropperEmpty, faEyedropper, faCircleXmark, faTimesCircle, faXmarkCircle, faTrailer, faTurkishLiraSign, faTry, faTurkishLira, faVolcano, faWandSparkles, faMicrophone, faCrown, faTentArrowTurnLeft, faTruckFast, faShippingFast, faUserPen, faUserEdit, faUserClock, faShower, faSquareCaretUp, faCaretSquareUp, faMapLocation, faMapMarked, faPenFancy, faEuroSign, faEur, faEuro, faHouseCircleXmark, faLiraSign, faYenSign, faCny, faJpy, faRmb, faYen, faBoxOpen, faTruckField, faLocationPinLock, faPersonPraying, faPray, faClipboardList, faSackDollar, faMountainSun, faArrowUpWideShort, faSortAmountUp, faUsersLine, faStarOfDavid, faNotesMedical, faAustralSign, faClipboardUser, faFileImage, faSquareCaretRight, faCaretSquareRight, faVial, faHelicopter, faMitten, faGasPump, faEnvelopeCircleCheck, faPersonSkating, faSkating, faSun, faBaseball, faBaseballBall, faImage, faNotdef, faBasketball, faBasketballBall, faPencil, faPencilAlt, faPersonWalkingArrowLoopLeft, faDiceSix, faAnglesDown, faAngleDoubleDown, faSyringe, faWheatAwn, faWheatAlt, faPlaneUp, faAlignCenter, faHockeyPuck, faCircleArrowLeft, faArrowCircleLeft, faPlugCircleBolt, faRestroom, faAnchorLock, faTimeline, faLightbulb, faCircleArrowRight, faArrowCircleRight, faMarsAndVenus, faNetworkWired, faBuildingShield, faCode, faFeatherPointed, faFeatherAlt, faFileCircleQuestion, faSignature, faEarthAmericas, faEarth, faEarthAmerica, faGlobeAmericas, faCarrot, faTemperatureFull, faTemperature4, faThermometer4, faThermometerFull, faTableCellsRowLock, faBoltLightning, faCloudShowersWater, faArrowUpLong, faLongArrowUp, faAddressCard, faContactCard, faVcard, faAngleRight, faFaceMeh, faMeh, faArrowUpFromGroundWater, faMap, faUserPlus, faVenus, faDiagramSuccessor, faHeadSideCoughSlash, faDiagramProject, faProjectDiagram, faTerminal, faHouseFire, faMask, faHurricane, faEarthAfrica, faGlobeAfrica, faThumbtack, faThumbTack, faHandPointDown, faFaceMehBlank, faMehBlank, faTemperatureEmpty, faTemperature0, faThermometer0, faThermometerEmpty, faBorderNone, faHighlighter, faMoneyBillWave, faToiletPaperSlash, faFileShield, faTextHeight, faFaceGrinTongue, faGrinTongue, faFileSignature, faBuildingWheat, faPlugCircleMinus, faFutbol, faFutbolBall, faSoccerBall, faCirclePlus, faPlusCircle, faBrazilianRealSign, faStarAndCrescent, faFaceSurprise, faSurprise, faHospitalUser, faArrowDownUpLock, faFolder, faFolderBlank, faHollyBerry, faVenusDouble, faClipboardQuestion, faHotdog, faArrowUpFromBracket, faMicroscope, faCloud, faBaseballBatBall, faCarRear, faCarAlt, faThumbtackSlash, faThumbTackSlash, faPlusMinus, faHouseCircleCheck, faCalendarDay, faLibra, faCircle, faMobileVibrate, faFaceGrinSquint, faGrinSquint, faUsersBetweenLines, faHouseMedicalCircleXmark, faTableList, faThList, faFlaskVial, faCircleExclamation, faExclamationCircle, faTaxi, faCab, faTextSlash, faRemoveFormat, faPeoplePulling, faBackward, faCarBurst, faCarCrash, faLink, faChain, faBackwardStep, faStepBackward, faX, faCircleUser, faUserCircle, faRectangleList, faListAlt, faHand, faHandPaper, faCancer, faVanShuttle, faShuttleVan, faStairs, faHorseHead, faVault, faClosedCaptioningSlash, faDrumSteelpan, faThumbsUp, faStamp, faMenorah, faChildren, faChartLine, faLineChart, faSquareEnvelope, faEnvelopeSquare, faBanSmoking, faSmokingBan, faTruckFront, faBuilding, faBullseye, faArrowLeftLong, faLongArrowLeft, faChessRook, faBlenderPhone, faArrowTurnUp, faLevelUp, faBicycle, faCircleArrowDown, faArrowCircleDown, faGear, faCog, faMarsAndVenusBurst, faOtter, faCircleChevronLeft, faChevronCircleLeft, faCircleQuestion, faQuestionCircle, faWalkieTalkie, faUserGroup, faUserFriends, faHouseChimney, faHomeLg, faRightFromBracket, faSignOutAlt, faFile, faPlaneSlash, faCloudShowersHeavy, faPersonFalling, faTurnDown, faLevelDownAlt, faUpRightAndDownLeftFromCenter, faExpandAlt, faUserTag, faHandSparkles, faArrowsToDot, faFaceSadCry, faSadCry, faDongSign, faPeopleLine, faSquareRss, faRssSquare, faCalendarMinus, faChartDiagram, faFaceTired, faTired, faHandPointRight, faArrowUp, faCubesStacked, faChildCombatant, faChildRifle, faVestPatches, faMartiniGlassEmpty, faGlassMartini, faMagnet, faRoadBarrier, faCompassDrafting, faDraftingCompass, faSquarePersonConfined, faPlateWheat, faSignHanging, faSign, faCarBattery, faBatteryCar, faShirt, faTShirt, faTshirt, faParagraph, faEnvelopesBulk, faMailBulk, faGuitar, faSuitcase, faCircleUp, faArrowAltCircleUp, faF, faXmarksLines, faEarthOceania, faGlobeOceania, faCommentSlash, faPlay, faVialCircleCheck, faBridgeCircleCheck, faCediSign, faPuzzlePiece, faHelmetUn, faGlassWater, faHeartCircleBolt, faPumpSoap, faHandScissors, faDolly, faDollyBox, faPaperclip, faDemocrat, faSquareArrowUpRight, faExternalLinkSquare, faFerry, faMosquito, faBuildingCircleArrowRight, faLeftRight, faArrowsAltH, faVirus, faGem, faToilet, faSingleQuoteLeft, faMoneyBills, faTabletButton, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faWrench, faTrashCan, faTrashAlt, faTableCells, faTh, faRibbon, faLandmarkFlag, faUpDownLeftRight, faArrowsAlt, faCarSide, faTrashArrowUp, faTrashRestore, faLifeRing, faCopyright, faFilePrescription, faEraser, faHourglassStart, faHourglass1, faCircleLeft, faArrowAltCircleLeft, faCruzeiroSign, faSmoking, faSquarePollVertical, faPoll, faPersonCircleMinus, faBiohazard, faBellConcierge, faConciergeBell, faRulerHorizontal, faHorse, faCalendar, faHandsHoldingChild, faItalic, faKhanda, faFaceFrownOpen, faFrownOpen, faCheck, faFingerprint, faChargingStation, faUserLock, faMobileScreenButton, faMobileAlt, faAnchorCircleCheck, faPersonWalkingWithCane, faBlind, faFileWaveform, faFileMedicalAlt, faHouseCrack, faHatWizard, faUserDoctor, faUserMd, faChartBar, faBarChart, faSprayCanSparkles, faAirFreshener, faBahtSign, faTemperatureArrowUp, faTemperatureUp, faWebAwesome, faNonBinary, faN, faArrowsUpDownLeftRight, faArrows, faHouse, faHome, faHomeAlt, faHomeLgAlt, faSpinner, faGavel, faLegal, faTicketSimple, faTicketAlt, faDove, faTarpDroplet, faTreeCity, faTurnUp, faLevelUpAlt, faTemperatureQuarter, faTemperature1, faThermometer1, faThermometerQuarter, faSliders, faSlidersH, faMosque, faH, faInfo, faPersonWalking, faWalking, faArrowTurnDown, faLevelDown, faRoad, faSpiral, faFaceFrown, faFrown, faWineGlassEmpty, faWineGlassAlt, faClapperboard, faForwardStep, faStepForward, faSquareUpRight, faExternalLinkSquareAlt, faBookJournalWhills, faJournalWhills, faChampagneGlasses, faGlassCheers, faDumpster, faHeartCircleXmark, faComputer, faWandMagic, faMagic, faBrain, faBriefcaseMedical, faHouseMedicalCircleExclamation, faCodeCommit, faPersonBreastfeeding, faPersonRays, faManatSign, faSort, faUnsorted, faCircleRadiation, faRadiationAlt, faLaptopCode, faSink, faArrowUpFromWaterPump, faMicrophoneLinesSlash, faMicrophoneAltSlash, faServer, faUser, faUserAlt, faUserLarge, faSnowflake, faTaurus, faSkullCrossbones, faPesoSign, faWineGlass, faTemperatureHalf, faTemperature2, faThermometer2, faThermometerHalf, faTicket, faWheatAwnCircleExclamation, faArrowsTurnRight, faCandyCane, faWheelchair, faSpellCheck, faVolumeOff, faLungs, faBookmark, faBarcode, faListOl, faList12, faListNumeric, faFileCircleXmark, faCube, faTape, faBomb, faScaleUnbalanced, faBalanceScaleLeft, faSquareCaretLeft, faCaretSquareLeft, faRuler, faI, faVolumeXmark, faVolumeMute, faVolumeTimes, faArchway, faPersonDigging, faDigging, faGaugeHigh, faTachometerAlt, faTachometerAltFast, faGenderless, faCloudSun, faArrowRight, faHandshake, faHandshakeAlt, faHandshakeSimple, faPersonSkiing, faSkiing, faBridgeWater, faBuildingNgo, faIgloo, faCircleDollarToSlot, faDonate, faY, faFaceSmileWink, faSmileWink, faDiceFour, faFaceGrinSquintTears, faGrinSquintTears, faFileAudio, faArrowsDownToLine, faG, faVihara, faFlagCheckered, faGaugeSimple, faGaugeSimpleMed, faTachometerAverage, faRightLeft, faExchangeAlt, faPills, faExplosion, faArrowsDownToPeople, faUsersViewfinder, faCarOn, faSleigh, faDumbbell, faBabyCarriage, faCarriageBaby, faKiwiBird, faCalendarXmark, faCalendarTimes, faCircleDown, faArrowAltCircleDown, faFileMedical, faXmark, faClose, faMultiply, faRemove, faTimes, faShapes, faTriangleCircleSquare, faDiceOne, faLockOpen, faPepperHot, faDropletSlash, faTintSlash, faDroplet, faTint, faFileLines, faFileAlt, faFileText, faCommentsDollar, faMagnifyingGlassLocation, faSearchLocation, faFileInvoice, faPentagon, faRepublican, faShop, faStoreAlt, faFilm, faFilmAlt, faFilmSimple, faBuildingCircleXmark, faComments, faTags, faGun, faCircleCheck, faCheckCircle, faScorpio, faIdCardClip, faIdCardAlt, faMoon, faOilWell, faTachographDigital, faDigitalTachograph, faTablet, faTabletAndroid, faRubleSign, faRouble, faRub, faRuble, faClosedCaptioning, faPen, faPlane, faImages, faMobileScreen, faMobileAndroidAlt, faGuaraniSign, faBagShopping, faShoppingBag, faCircleRight, faArrowAltCircleRight, faPhoneVolume, faVolumeControlPhone, faCubes, faPhone, faToriiGate, faBacon, faPersonFallingBurst, faQuoteRight, faQuoteRightAlt, faHouseMedicalFlag, faPrescription, faDiceThree, faBuildingLock, faIdCard, faDriversLicense, faCirclePlay, faPlayCircle, faFaceLaughBeam, faLaughBeam, faLeaf, faHouseChimneyUser, faRotateRight, faRedoAlt, faRotateForward, faTooth, faHouseChimneyWindow, faMotorcycle, faBackwardFast, faFastBackward, faAddressBook, faContactBook, faSailboat, faBookBookmark, faMagnifyingGlassArrowRight, faMicrophoneLines, faMicrophoneAlt, faReplyAll, faMailReplyAll, faUniversalAccess, faToiletPaper, faToiletPaperAlt, faToiletPaperBlank, faVrCardboard, faPizzaSlice, faSprayCan, faVolumeLow, faVolumeDown, faCross, faPerson, faMale, faHourglass, faHourglassEmpty, faFish, faDrumstickBite, faChartSimple, faAtom, faP, faJetFighterUp, faPlugCircleXmark, faSheetPlastic, faV, faList, faListSquares, faPisces, faSolarPanel, faLandMineOn, faHeadphones, faHeadphonesAlt, faHeadphonesSimple, faBus, faFilePowerpoint, faQuoteLeft, faQuoteLeftAlt, faChevronDown, faEarthAsia, faGlobeAsia, faCentSign, faShieldCat, faSchoolCircleCheck, faMartiniGlass, faGlassMartiniAlt, faPlug, faPanorama, faClockRotateLeft, faHistory, faJarWheat, faCloudArrowDown, faCloudDownload, faCloudDownloadAlt, faTruckRampBox, faTruckLoading, faAngleDown, faPlugCircleCheck, faWindowMaximize, faHandsHoldingCircle, faLocationPin, faMapMarker, faBowlingBall, faCartFlatbed, faDollyFlatbed, faHouseUser, faHomeUser, faGhost, faCommentNodes, faPersonArrowDownToLine, faPlugCirclePlus, faPersonSwimming, faSwimmer, faCommentDots, faCommenting, faChartPie, faPieChart, faFrog, faWineBottle, faInbox, faSquareH, faHSquare, faHouseMedical, faCircleChevronRight, faChevronCircleRight, faFileCsv, faHatCowboy, faFaceGrinTongueWink, faGrinTongueWink, faL, faArrowDownShortWide, faSortAmountDesc, faSortAmountDownAlt, faHourglassHalf, faHourglass2, faSpoon, faUtensilSpoon, faCreditCard, faCreditCardAlt, faFileInvoiceDollar, faSpaghettiMonsterFlying, faPastafarianism, faMartiniGlassCitrus, faCocktail, faBullhorn, faBoxTissue, faMattressPillow, faChevronLeft, faCloudMoonRain, faArrowDown19, faSortNumericAsc, faSortNumericDown, faHandSpock, faWandMagicSparkles, faMagicWandSparkles, faCommentMedical, faBellSlash, faHandshakeSlash, faHandshakeAltSlash, faHandshakeSimpleSlash, faBottleWater, faDiceD20, faArrowDownZA, faSortAlphaDesc, faSortAlphaDownAlt, faBrush, faPersonWalkingDashedLineArrowRight, faArrowUpShortWide, faSortAmountUpAlt, faGripVertical, faGridVertical, faCarTunnel, faChartColumn, faCapricorn, faTruckArrowRight, faTv, faTelevision, faTvAlt, faSection, faPeace, faStar, faFlag, faTriangleExclamation, faExclamationTriangle, faWarning, faSchoolCircleExclamation, faGraduationCap, faMortarBoard, faStore, faUserAstronaut, faBuildingFlag, faMugSaucer, faCoffee, faLemon, faCaravan, faQ, faLock, faPaintRoller, faVolumeHigh, faVolumeUp, faFolderPlus, faMercury, faAnchor, faSquareParking, faParking, faHanukiah, faRotateLeft, faRotateBack, faRotateBackward, faUndoAlt, faHeading, faHeader, faCrosshairs, faCircleNodes, faWindowRestore, faR, faFilterCircleXmark, faGopuram, faHeartCircleMinus, faStarOfLife, faBusinessTime, faBriefcaseClock, faFireExtinguisher, faArrowDownLong, faLongArrowDown, faUserMinus, faMoneyCheck, faHouseLaptop, faLaptopHouse, faDownload, faSagittarius, faCouch, faRoadLock, faScissors, faCut, faBug, faArrowRightFromBracket, faSignOut, faHandHoldingHand, faStroopwafel, faChild, faIceCream, faComputerMouse, faMouse, faFaucet, faAward, faPersonDrowning, faCameraRotate, faFaceGrinHearts, faGrinHearts, faFileFragment, faPersonMilitaryRifle, faToggleOn, faLungsVirus, faTableTennisPaddleBall, faPingPongPaddleBall, faTableTennis, faBoxesPacking, faPersonChalkboard, faDiceTwo, faArrowRightArrowLeft, faExchange, faFootball, faFootballBall, faTruckMonster, faAsterisk, faBatteryFull, faBattery, faBattery5, faChildDress, faFaceKissBeam, faKissBeam, faTrashCanArrowUp, faTrashRestoreAlt, faFont, faBoreHole, faVirusCovid, faFilePdf, faLanguage, faShieldHalved, faShieldAlt, faCaretUp, faFilePen, faFileEdit, faPersonBiking, faBiking, faBookOpenReader, faBookReader, faGlassWaterDroplet, faTowerBroadcast, faBroadcastTower, faMinimize, faCompressArrowsAlt, faArrowRightToCity, faLaptopMedical, faBreadSlice, faGlobe, faFolderMinus, faMaskFace, faBong, faRoadBridge, faArrowUp91, faSortNumericUpAlt, faMountainCity, faArrowDown91, faSortNumericDesc, faSortNumericDownAlt, faFaceGrinWide, faGrinAlt, faPoop, faDharmachakra, faBatteryQuarter, faBattery2, faAnkh, faDiamond, faSubscript, faRupeeSign, faRupee, faPersonRifle, faD, faSquareNfi, faTeeth, faMagnifyingGlassDollar, faSearchDollar, faDumpsterFire, faUpload, faUserSlash, faUserAltSlash, faUserLargeSlash, faArrowLeft, faVialVirus, faCheckDouble, faPaw, faHelmetSafety, faHardHat, faHatHard, faE, faFaceLaughSquint, faLaughSquint, faDownLeftAndUpRightToCenter, faCompressAlt, faGifts, faBed, faMoneyBillTransfer, faPersonRunning, faRunning, faCircleChevronDown, faChevronCircleDown, faUserNurse, faFaceKissWinkHeart, faKissWinkHeart, faFill, faMoneyBill1Wave, faMoneyBillWaveAlt, faLandmark, faMusic, faBookMedical, faShuffle, faRandom, faUnderline, faBuildingUser, faRobot, faPlus, faAdd, faCopy, faChessKing, faHouseFloodWater, faBitcoinSign, faBox, faSquarePlus, faPlusSquare, faArrowsLeftRight, faArrowsH, faFan, faCrow, faFileCircleCheck, faLinkSlash, faChainBroken, faChainSlash, faUnlink, faArrowRotateRight, faArrowRightRotate, faArrowRotateForward, faRedo, faPenClip, faPenAlt, faDoorClosed, faArrowDownWideShort, faSortAmountAsc, faSortAmountDown, faCaretDown, faK, faCheckToSlot, faVoteYea, faFishFins, faCompress, faArrowUpAZ, faSortAlphaUp, faUserGraduate, faFileCode, faSoap, faRecycle, faFaceGrinWink, faGrinWink, faWaterLadder, faLadderWater, faSwimmingPool, faGemini, faTowerCell, faColonSign, faLaptopFile, faBahai, faHaykal, faMoneyBill1, faMoneyBillAlt, faCloudBolt, faThunderstorm, faEthernet, faHryvniaSign, faHryvnia, faEyeSlash, faCartFlatbedSuitcase, faLuggageCart, faRadiation, faFileWord, faBedPulse, faProcedures, faTents, faMugHot, faBolt, faZap, faJar, faTruckPlane, faHandHoldingHeart, faArrowRotateLeft, faArrowLeftRotate, faArrowRotateBack, faArrowRotateBackward, faUndo, faFaceAngry, faAngry, faBurst, faZ, faBandage, faBandAid, faPlaneCircleExclamation, faBusSide, faBugs, faBeerMugEmpty, faBeer, faPersonCircleCheck, faStapler, faHouseMedicalCircleCheck, faNairaSign, faWifi, faWifi3, faWifiStrong, faMoneyCheckDollar, faMoneyCheckAlt, faEyeLowVision, faLowVision, faCircleArrowUp, faArrowCircleUp, faCameraRetro, faCapsules, faPoo, faVolume, faVolumeMedium, faElevator, faTag, faFileCircleMinus, faDownLong, faLongArrowAltDown, faCompactDisc, faSuitcaseRolling, faBookQuran, faQuran, faPhoneSlash, faRoadCircleCheck, faShopLock, faImagePortrait, faPortrait, faBridgeLock, faHammer, faArrowUp19, faSortNumericUp, faChessKnight, faHouseFloodWaterCircleArrowRight, faArrowUpRightFromSquare, faExternalLink, faArrowDownUpAcrossLine, faFaceGrinBeam, faGrinBeam, faRectangleAd, faAd, faBookTanakh, faTanakh, faHotTubPerson, faHotTub, faFileHalfDashed, faOutdent, faDedent, faHandPeace, faHeadSideVirus, faCompass, faPenNib, faTentArrowsDown, faForwardFast, faFastForward, faCrop, faWhiskeyGlass, faGlassWhiskey, faSquare, faFaceGrin, faGrin, faFileContract, faAngleUp, faFaceSmile, faSmile, faPersonDressBurst, faDivide, faCodeFork, faHouseFlag, faBuildingColumns, faBank, faInstitution, faMuseum, faUniversity, faRug, faCodeMerge, faHouseTsunami, faMagnifyingGlassChart, faUmbrella, faHillRockslide, faUserSecret, faPager, faBriefcase, faTrowelBricks, faSocks, faT, faMicrochip, faTruckMedical, faAmbulance, faOm, faMosquitoNet, faPrescriptionBottle, faUsersGear, faUsersCog, faRoadCircleExclamation, faPause, faStaffSnake, faRodAsclepius, faRodSnake, faStaffAesculapius, faPiggyBank, faMonument, faAnglesRight, faAngleDoubleRight, faDesktop, faDesktopAlt, faPlaneCircleXmark, faRetweet, faUserGear, faUserCog, faBorderAll, faCoins, faMarsStroke, faHandshakeAngle, faHandsHelping, faArrowDown, faLocationDot, faMapMarkerAlt, faPlugCircleExclamation, faCookieBite, faScrewdriverWrench, faTools, faIndent, faBars, faNavicon, faHandsPraying, faPrayingHands, faViruses, faSchoolFlag, faTrademark, faFireBurner, faFaceSmileBeam, faSmileBeam, faTentArrowLeftRight, faRoute, faAnglesUp, faAngleDoubleUp, faBucket, faLessThanEqual, faFolderClosed, faPersonThroughWindow, faSchoolLock, faPersonBurst, faLeftLong, faLongArrowAltLeft, faLocationCrosshairs, faLocation, faPersonDotsFromLine, faDiagnoses, faGaugeSimpleHigh, faTachometer, faTachometerFast, faAnglesLeft, faAngleDoubleLeft, faUpDown, faArrowsAltV, faBatteryEmpty, faBattery0, faKeyboard, faCookie, faStopwatch, faEject, faSatelliteDish, faFaceRollingEyes, faMehRollingEyes, faListCheck, faTasks, faSackXmark, faHashtag, faTrain, faGamepad, faFileExport, faArrowRightFromFile, faFaceGrimace, faGrimace, faTrainSubway, faSubway, faCircleDot, faDotCircle, faObjectGroup, faShip, faC, faSquarePhone, faPhoneSquare, faRulerCombined, faArrowsRotate, faRefresh, faSync, faPersonDress, faFemale, faBookOpen, faFolderTree, faVirgo, faBoxArchive, faArchive, faTentArrowDownToLine, faQrcode, faDragon, faHourglassEnd, faHourglass3, faGrip, faGridHorizontal, faGripHorizontal, faBorderTopLeft, faBorderStyle, faListUl, faListDots, faPeopleRobbery, faMobileButton, faArrowDownAZ, faSortAlphaAsc, faSortAlphaDown, faMoneyBill, faCircleMinus, faMinusCircle, faArrowPointer, faMousePointer, faSquareShareNodes, faShareAltSquare, faTableCellsLarge, faThLarge, faCat, faCalendarWeek, faCodeCompare, faLeo, faRoadCircleXmark, faPallet, faCakeCandles, faBirthdayCake, faCake, faBugSlash, faTarp, faDiagramPredecessor, faFaceFlushed, faFlushed, faDiagramNext, faAnchorCircleXmark, faPersonCircleXmark, faSpa, faAries, faBarsProgress, faTasksAlt, faHeartCircleCheck, faMarsStrokeRight, faMarsStrokeH, faTowerObservation, faSterlingSign, faGbp, faPoundSign, faFaucetDrip, faCircleInfo, faInfoCircle, faFeather, faBowlRice, faStarHalfStroke, faStarHalfAlt, faTemperatureArrowDown, faTemperatureDown, faMaskVentilator, faFileVideo, faArrowTrendDown, faOilCan, faPeopleCarryBox, faPeopleCarry, faChair, faWind, faLayerGroup, faHeadSideMask, faHands, faSignLanguage, faSigning, faTablets, faWeightHanging, faDice, faShopSlash, faStoreAltSlash, faSortDown, faSortDesc, faPesetaSign, faTabletScreenButton, faTabletAlt, faHandHoldingDollar, faHandHoldingUsd, faShield, faShieldBlank, faFaceLaugh, faLaugh, faHandsHolding, faCartShopping, faShoppingCart, faOctagon, faHandPointer, faRegistered, faHouseSignal, faBangladeshiTakaSign };\n", "import { SVGProps } from './types';\n\nconst defaultAttributes: SVGProps = {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': 2,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n};\n\nexport default defaultAttributes;\n", "import defaultAttributes from './defaultAttributes';\nimport { IconNode, SVGProps } from './types';\n\ntype CreateSVGElementParams = [tag: string, attrs: SVGProps, children?: IconNode];\n\n/**\n * Creates a new SVGElement\n * @param {string} tag - Tag name of the element\n * @param {object} attrs - Attributes of the element\n * @param {array} children - Children of the element\n * @returns {SVGElement}\n */\nconst createSVGElement = ([tag, attrs, children]: CreateSVGElementParams) => {\n const element = document.createElementNS('http://www.w3.org/2000/svg', tag);\n\n Object.keys(attrs).forEach((name) => {\n element.setAttribute(name, String(attrs[name]));\n });\n\n if (children?.length) {\n children.forEach((child) => {\n const childElement = createSVGElement(child);\n\n element.appendChild(childElement);\n });\n }\n\n return element;\n};\n\n/**\n * Creates a new HTMLElement from icon node\n * @param {array} iconNode - Icon node to be converted to an element\n * @param {object} customAttrs - Custom attributes to be added to the element\n * @returns {HTMLElement}\n */\nconst createElement = (iconNode: IconNode, customAttrs: SVGProps = {}) => {\n const tag = 'svg';\n const attrs = {\n ...defaultAttributes,\n ...customAttrs,\n };\n\n return createSVGElement([tag, attrs, iconNode]);\n};\n\nexport default createElement;\n", "/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n\n return false;\n};\n", "/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = (...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n", "/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = (string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n", "import { CamelToPascal } from '../utility-types';\nimport { toCamelCase } from './toCamelCase';\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = (string: T): CamelToPascal => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal;\n};\n", "import createElement from './createElement';\nimport defaultAttributes from './defaultAttributes';\nimport { Icons, SVGProps } from './types';\nimport { hasA11yProp, mergeClasses, toPascalCase } from '@lucide/shared';\n\nexport type CustomAttrs = { [attr: string]: any };\n\n/**\n * Get the attributes of an HTML element.\n * @param {HTMLElement} element\n * @returns {Object}\n */\nexport const getAttrs = (element: Element): Record =>\n Array.from(element.attributes).reduce>((attrs, attr) => {\n attrs[attr.name] = attr.value;\n return attrs;\n }, {});\n\n/**\n * Gets the classNames of an attributes Object.\n * @param {Object} attrs\n * @returns {Array}\n */\nexport const getClassNames = (\n attrs: Record | string,\n): string | string[] => {\n if (typeof attrs === 'string') return attrs;\n if (!attrs || !attrs.class) return '';\n if (attrs.class && typeof attrs.class === 'string') {\n return attrs.class.split(' ');\n }\n if (attrs.class && Array.isArray(attrs.class)) {\n return attrs.class;\n }\n return '';\n};\n\ninterface ReplaceElementOptions {\n nameAttr: string;\n icons: Icons;\n attrs: SVGProps;\n}\n\n/**\n * ReplaceElement, replaces the given element with the created icon.\n * @param {HTMLElement} element\n * @param {{ nameAttr: string, icons: object, attrs: object }} options: { nameAttr, icons, attrs }\n * @returns {Function}\n */\nconst replaceElement = (element: Element, { nameAttr, icons, attrs }: ReplaceElementOptions) => {\n const iconName = element.getAttribute(nameAttr);\n\n if (iconName == null) return;\n\n const ComponentName = toPascalCase(iconName);\n\n const iconNode = icons[ComponentName];\n\n if (!iconNode) {\n return console.warn(\n `${element.outerHTML} icon name was not found in the provided icons object.`,\n );\n }\n\n const elementAttrs = getAttrs(element);\n\n const ariaProps = hasA11yProp(elementAttrs) ? {} : { 'aria-hidden': 'true' };\n\n const iconAttrs = {\n ...defaultAttributes,\n 'data-lucide': iconName,\n ...ariaProps,\n ...attrs,\n ...elementAttrs,\n } satisfies SVGProps;\n\n const elementClassNames = getClassNames(elementAttrs);\n const className = getClassNames(attrs);\n\n const classNames = mergeClasses(\n 'lucide',\n `lucide-${iconName}`,\n ...elementClassNames,\n ...className,\n );\n\n if (classNames) {\n Object.assign(iconAttrs, {\n class: classNames,\n });\n }\n\n const svgElement = createElement(iconNode, iconAttrs);\n\n return element.parentNode?.replaceChild(svgElement, element);\n};\n\nexport default replaceElement;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name a-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTIgNCA0IDQtNCIgLz4KICA8cGF0aCBkPSJNMTggMTZWNyIgLz4KICA8cGF0aCBkPSJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik0zLjMwNCAxM2g2LjM5MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/a-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AArrowDown: IconNode = [\n ['path', { d: 'm14 12 4 4 4-4' }],\n ['path', { d: 'M18 16V7' }],\n ['path', { d: 'm2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16' }],\n ['path', { d: 'M3.304 13h6.392' }],\n];\n\nexport default AArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name a-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTEgNC00IDQgNCIgLz4KICA8cGF0aCBkPSJNMTggMTZWNyIgLz4KICA8cGF0aCBkPSJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik0zLjMwNCAxM2g2LjM5MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/a-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AArrowUp: IconNode = [\n ['path', { d: 'm14 11 4-4 4 4' }],\n ['path', { d: 'M18 16V7' }],\n ['path', { d: 'm2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16' }],\n ['path', { d: 'M3.304 13h6.392' }],\n];\n\nexport default AArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name a-large-small\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTYgMi41MzYtNy4zMjhhMS4wMiAxLjAyIDEgMCAxIDEuOTI4IDBMMjIgMTYiIC8+CiAgPHBhdGggZD0iTTE1LjY5NyAxNGg1LjYwNiIgLz4KICA8cGF0aCBkPSJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik0zLjMwNCAxM2g2LjM5MiIgLz4KPC9zdmc+) - https://lucide.dev/icons/a-large-small\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ALargeSmall: IconNode = [\n ['path', { d: 'm15 16 2.536-7.328a1.02 1.02 1 0 1 1.928 0L22 16' }],\n ['path', { d: 'M15.697 14h5.606' }],\n ['path', { d: 'm2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16' }],\n ['path', { d: 'M3.304 13h6.392' }],\n];\n\nexport default ALargeSmall;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name accessibility\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjQiIHI9IjEiIC8+CiAgPHBhdGggZD0ibTE4IDE5IDEtNy02IDEiIC8+CiAgPHBhdGggZD0ibTUgOCAzLTMgNS41IDMtMi4zNiAzLjUiIC8+CiAgPHBhdGggZD0iTTQuMjQgMTQuNWE1IDUgMCAwIDAgNi44OCA2IiAvPgogIDxwYXRoIGQ9Ik0xMy43NiAxNy41YTUgNSAwIDAgMC02Ljg4LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/accessibility\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Accessibility: IconNode = [\n ['circle', { cx: '16', cy: '4', r: '1' }],\n ['path', { d: 'm18 19 1-7-6 1' }],\n ['path', { d: 'm5 8 3-3 5.5 3-2.36 3.5' }],\n ['path', { d: 'M4.24 14.5a5 5 0 0 0 6.88 6' }],\n ['path', { d: 'M13.76 17.5a5 5 0 0 0-6.88-6' }],\n];\n\nexport default Accessibility;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name air-vent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTcuNWEyLjUgMi41IDAgMSAxLTQgMi4wM1YxMiIgLz4KICA8cGF0aCBkPSJNNiAxMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0yIiAvPgogIDxwYXRoIGQ9Ik02IDhoMTIiIC8+CiAgPHBhdGggZD0iTTYuNiAxNS41NzJBMiAyIDAgMSAwIDEwIDE3di01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/air-vent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AirVent: IconNode = [\n ['path', { d: 'M18 17.5a2.5 2.5 0 1 1-4 2.03V12' }],\n ['path', { d: 'M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M6 8h12' }],\n ['path', { d: 'M6.6 15.572A2 2 0 1 0 10 17v-5' }],\n];\n\nexport default AirVent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name activity\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/activity\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Activity: IconNode = [\n [\n 'path',\n {\n d: 'M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2',\n },\n ],\n];\n\nexport default Activity;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name airplay\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMSIgLz4KICA8cGF0aCBkPSJtMTIgMTUgNSA2SDdaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/airplay\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Airplay: IconNode = [\n ['path', { d: 'M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1' }],\n ['path', { d: 'm12 15 5 6H7Z' }],\n];\n\nexport default Airplay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-clock-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSI4IiAvPgogIDxwYXRoIGQ9Ik01IDMgMiA2IiAvPgogIDxwYXRoIGQ9Im0yMiA2LTMtMyIgLz4KICA8cGF0aCBkPSJNNi4zOCAxOC43IDQgMjEiIC8+CiAgPHBhdGggZD0iTTE3LjY0IDE4LjY3IDIwIDIxIiAvPgogIDxwYXRoIGQ9Im05IDEzIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/alarm-clock-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmClockCheck: IconNode = [\n ['circle', { cx: '12', cy: '13', r: '8' }],\n ['path', { d: 'M5 3 2 6' }],\n ['path', { d: 'm22 6-3-3' }],\n ['path', { d: 'M6.38 18.7 4 21' }],\n ['path', { d: 'M17.64 18.67 20 21' }],\n ['path', { d: 'm9 13 2 2 4-4' }],\n];\n\nexport default AlarmClockCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-clock-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSI4IiAvPgogIDxwYXRoIGQ9Ik01IDMgMiA2IiAvPgogIDxwYXRoIGQ9Im0yMiA2LTMtMyIgLz4KICA8cGF0aCBkPSJNNi4zOCAxOC43IDQgMjEiIC8+CiAgPHBhdGggZD0iTTE3LjY0IDE4LjY3IDIwIDIxIiAvPgogIDxwYXRoIGQ9Ik05IDEzaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/alarm-clock-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmClockMinus: IconNode = [\n ['circle', { cx: '12', cy: '13', r: '8' }],\n ['path', { d: 'M5 3 2 6' }],\n ['path', { d: 'm22 6-3-3' }],\n ['path', { d: 'M6.38 18.7 4 21' }],\n ['path', { d: 'M17.64 18.67 20 21' }],\n ['path', { d: 'M9 13h6' }],\n];\n\nexport default AlarmClockMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-clock-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNi44NyA2Ljg3YTggOCAwIDEgMCAxMS4yNiAxMS4yNiIgLz4KICA8cGF0aCBkPSJNMTkuOSAxNC4yNWE4IDggMCAwIDAtOS4xNS05LjE1IiAvPgogIDxwYXRoIGQ9Im0yMiA2LTMtMyIgLz4KICA8cGF0aCBkPSJNNi4yNiAxOC42NyA0IDIxIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTQgNCAyIDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/alarm-clock-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmClockOff: IconNode = [\n ['path', { d: 'M6.87 6.87a8 8 0 1 0 11.26 11.26' }],\n ['path', { d: 'M19.9 14.25a8 8 0 0 0-9.15-9.15' }],\n ['path', { d: 'm22 6-3-3' }],\n ['path', { d: 'M6.26 18.67 4 21' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M4 4 2 6' }],\n];\n\nexport default AlarmClockOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-clock-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSI4IiAvPgogIDxwYXRoIGQ9Ik01IDMgMiA2IiAvPgogIDxwYXRoIGQ9Im0yMiA2LTMtMyIgLz4KICA8cGF0aCBkPSJNNi4zOCAxOC43IDQgMjEiIC8+CiAgPHBhdGggZD0iTTE3LjY0IDE4LjY3IDIwIDIxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMHY2IiAvPgogIDxwYXRoIGQ9Ik05IDEzaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/alarm-clock-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmClockPlus: IconNode = [\n ['circle', { cx: '12', cy: '13', r: '8' }],\n ['path', { d: 'M5 3 2 6' }],\n ['path', { d: 'm22 6-3-3' }],\n ['path', { d: 'M6.38 18.7 4 21' }],\n ['path', { d: 'M17.64 18.67 20 21' }],\n ['path', { d: 'M12 10v6' }],\n ['path', { d: 'M9 13h6' }],\n];\n\nexport default AlarmClockPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSI4IiAvPgogIDxwYXRoIGQ9Ik0xMiA5djRsMiAyIiAvPgogIDxwYXRoIGQ9Ik01IDMgMiA2IiAvPgogIDxwYXRoIGQ9Im0yMiA2LTMtMyIgLz4KICA8cGF0aCBkPSJNNi4zOCAxOC43IDQgMjEiIC8+CiAgPHBhdGggZD0iTTE3LjY0IDE4LjY3IDIwIDIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/alarm-clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmClock: IconNode = [\n ['circle', { cx: '12', cy: '13', r: '8' }],\n ['path', { d: 'M12 9v4l2 2' }],\n ['path', { d: 'M5 3 2 6' }],\n ['path', { d: 'm22 6-3-3' }],\n ['path', { d: 'M6.38 18.7 4 21' }],\n ['path', { d: 'M17.64 18.67 20 21' }],\n];\n\nexport default AlarmClock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-smoke\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjFjMC0yLjUgMi0yLjUgMi01IiAvPgogIDxwYXRoIGQ9Ik0xNiAyMWMwLTIuNSAyLTIuNSAyLTUiIC8+CiAgPHBhdGggZD0ibTE5IDgtLjggM2ExLjI1IDEuMjUgMCAwIDEtMS4yIDFIN2ExLjI1IDEuMjUgMCAwIDEtMS4yLTFMNSA4IiAvPgogIDxwYXRoIGQ9Ik0yMSAzYTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY0YTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik02IDIxYzAtMi41IDItMi41IDItNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/alarm-smoke\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmSmoke: IconNode = [\n ['path', { d: 'M11 21c0-2.5 2-2.5 2-5' }],\n ['path', { d: 'M16 21c0-2.5 2-2.5 2-5' }],\n ['path', { d: 'm19 8-.8 3a1.25 1.25 0 0 1-1.2 1H7a1.25 1.25 0 0 1-1.2-1L5 8' }],\n ['path', { d: 'M21 3a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a1 1 0 0 1 1-1z' }],\n ['path', { d: 'M6 21c0-2.5 2-2.5 2-5' }],\n];\n\nexport default AlarmSmoke;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name album\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cG9seWxpbmUgcG9pbnRzPSIxMSAzIDExIDExIDE0IDggMTcgMTEgMTcgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/album\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Album: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['polyline', { points: '11 3 11 11 14 8 17 11 17 3' }],\n];\n\nexport default Album;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-center-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KICA8cGF0aCBkPSJNMTAgMTZ2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNCIgLz4KICA8cGF0aCBkPSJNMTAgOFY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjQiIC8+CiAgPHBhdGggZD0iTTIwIDE2djFhMiAyIDAgMCAxLTIgMmgtMmEyIDIgMCAwIDEtMi0ydi0xIiAvPgogIDxwYXRoIGQ9Ik0xNCA4VjdjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-center-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignCenterHorizontal: IconNode = [\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4' }],\n ['path', { d: 'M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4' }],\n ['path', { d: 'M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1' }],\n ['path', { d: 'M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1' }],\n];\n\nexport default AlignCenterHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-center-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KICA8cGF0aCBkPSJNOCAxMEg0YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDQiIC8+CiAgPHBhdGggZD0iTTE2IDEwaDRhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTQiIC8+CiAgPHBhdGggZD0iTTggMjBIN2EyIDIgMCAwIDEtMi0ydi0yYzAtMS4xLjktMiAyLTJoMSIgLz4KICA8cGF0aCBkPSJNMTYgMTRoMWEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMmgtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-center-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignCenterVertical: IconNode = [\n ['path', { d: 'M12 2v20' }],\n ['path', { d: 'M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4' }],\n ['path', { d: 'M16 10h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4' }],\n ['path', { d: 'M8 20H7a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2h1' }],\n ['path', { d: 'M16 14h1a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-1' }],\n];\n\nexport default AlignCenterVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-end-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNiIgeD0iNCIgeT0iMiIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iOSIgeD0iMTQiIHk9IjkiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMiAyMkgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-end-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignEndHorizontal: IconNode = [\n ['rect', { width: '6', height: '16', x: '4', y: '2', rx: '2' }],\n ['rect', { width: '6', height: '9', x: '14', y: '9', rx: '2' }],\n ['path', { d: 'M22 22H2' }],\n];\n\nexport default AlignEndHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-end-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeD0iMiIgeT0iNCIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjkiIGhlaWdodD0iNiIgeD0iOSIgeT0iMTQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMiAyMlYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-end-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignEndVertical: IconNode = [\n ['rect', { width: '16', height: '6', x: '2', y: '4', rx: '2' }],\n ['rect', { width: '9', height: '6', x: '9', y: '14', rx: '2' }],\n ['path', { d: 'M22 22V2' }],\n];\n\nexport default AlignEndVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-distribute-center\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iNCIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE0IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTcgMjJ2LTUiIC8+CiAgPHBhdGggZD0iTTE3IDdWMiIgLz4KICA8cGF0aCBkPSJNNyAyMnYtMyIgLz4KICA8cGF0aCBkPSJNNyA1VjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/align-horizontal-distribute-center\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalDistributeCenter: IconNode = [\n ['rect', { width: '6', height: '14', x: '4', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '14', y: '7', rx: '2' }],\n ['path', { d: 'M17 22v-5' }],\n ['path', { d: 'M17 7V2' }],\n ['path', { d: 'M7 22v-3' }],\n ['path', { d: 'M7 5V2' }],\n];\n\nexport default AlignHorizontalDistributeCenter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-distribute-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iNCIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE0IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTAgMnYyMCIgLz4KICA8cGF0aCBkPSJNMjAgMnYyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-horizontal-distribute-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalDistributeEnd: IconNode = [\n ['rect', { width: '6', height: '14', x: '4', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '14', y: '7', rx: '2' }],\n ['path', { d: 'M10 2v20' }],\n ['path', { d: 'M20 2v20' }],\n];\n\nexport default AlignHorizontalDistributeEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-distribute-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iNCIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE0IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNCAydjIwIiAvPgogIDxwYXRoIGQ9Ik0xNCAydjIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-horizontal-distribute-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalDistributeStart: IconNode = [\n ['rect', { width: '6', height: '14', x: '4', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '14', y: '7', rx: '2' }],\n ['path', { d: 'M4 2v20' }],\n ['path', { d: 'M14 2v20' }],\n];\n\nexport default AlignHorizontalDistributeStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-justify-center\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE2IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-horizontal-justify-center\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalJustifyCenter: IconNode = [\n ['rect', { width: '6', height: '14', x: '2', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '16', y: '7', rx: '2' }],\n ['path', { d: 'M12 2v20' }],\n];\n\nexport default AlignHorizontalJustifyCenter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-justify-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjEyIiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMjIgMnYyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-horizontal-justify-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalJustifyEnd: IconNode = [\n ['rect', { width: '6', height: '14', x: '2', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '12', y: '7', rx: '2' }],\n ['path', { d: 'M22 2v20' }],\n];\n\nexport default AlignHorizontalJustifyEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-justify-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iNiIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE2IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAydjIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-horizontal-justify-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalJustifyStart: IconNode = [\n ['rect', { width: '6', height: '14', x: '6', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '16', y: '7', rx: '2' }],\n ['path', { d: 'M2 2v20' }],\n];\n\nexport default AlignHorizontalJustifyStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-space-around\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxMCIgeD0iOSIgeT0iNyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTQgMjJWMiIgLz4KICA8cGF0aCBkPSJNMjAgMjJWMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-horizontal-space-around\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalSpaceAround: IconNode = [\n ['rect', { width: '6', height: '10', x: '9', y: '7', rx: '2' }],\n ['path', { d: 'M4 22V2' }],\n ['path', { d: 'M20 22V2' }],\n];\n\nexport default AlignHorizontalSpaceAround;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-space-between\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iMyIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE1IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMyAydjIwIiAvPgogIDxwYXRoIGQ9Ik0yMSAydjIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-horizontal-space-between\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalSpaceBetween: IconNode = [\n ['rect', { width: '6', height: '14', x: '3', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '15', y: '7', rx: '2' }],\n ['path', { d: 'M3 2v20' }],\n ['path', { d: 'M21 2v20' }],\n];\n\nexport default AlignHorizontalSpaceBetween;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-start-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNiIgeD0iNCIgeT0iNiIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iOSIgeD0iMTQiIHk9IjYiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMiAySDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/align-start-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignStartHorizontal: IconNode = [\n ['rect', { width: '6', height: '16', x: '4', y: '6', rx: '2' }],\n ['rect', { width: '6', height: '9', x: '14', y: '6', rx: '2' }],\n ['path', { d: 'M22 2H2' }],\n];\n\nexport default AlignStartHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-start-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOSIgaGVpZ2h0PSI2IiB4PSI2IiB5PSIxNCIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjYiIHg9IjYiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yIDJ2MjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/align-start-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignStartVertical: IconNode = [\n ['rect', { width: '9', height: '6', x: '6', y: '14', rx: '2' }],\n ['rect', { width: '16', height: '6', x: '6', y: '4', rx: '2' }],\n ['path', { d: 'M2 2v20' }],\n];\n\nexport default AlignStartVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-distribute-center\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdoLTMiIC8+CiAgPHBhdGggZD0iTTIyIDdoLTUiIC8+CiAgPHBhdGggZD0iTTUgMTdIMiIgLz4KICA8cGF0aCBkPSJNNyA3SDIiIC8+CiAgPHJlY3QgeD0iNSIgeT0iMTQiIHdpZHRoPSIxNCIgaGVpZ2h0PSI2IiByeD0iMiIgLz4KICA8cmVjdCB4PSI3IiB5PSI0IiB3aWR0aD0iMTAiIGhlaWdodD0iNiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/align-vertical-distribute-center\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalDistributeCenter: IconNode = [\n ['path', { d: 'M22 17h-3' }],\n ['path', { d: 'M22 7h-5' }],\n ['path', { d: 'M5 17H2' }],\n ['path', { d: 'M7 7H2' }],\n ['rect', { x: '5', y: '14', width: '14', height: '6', rx: '2' }],\n ['rect', { x: '7', y: '4', width: '10', height: '6', rx: '2' }],\n];\n\nexport default AlignVerticalDistributeCenter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-distribute-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTQiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSI0IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAyMGgyMCIgLz4KICA8cGF0aCBkPSJNMiAxMGgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-vertical-distribute-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalDistributeEnd: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '14', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '4', rx: '2' }],\n ['path', { d: 'M2 20h20' }],\n ['path', { d: 'M2 10h20' }],\n];\n\nexport default AlignVerticalDistributeEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-distribute-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTQiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSI0IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyMCIgLz4KICA8cGF0aCBkPSJNMiA0aDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-vertical-distribute-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalDistributeStart: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '14', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '4', rx: '2' }],\n ['path', { d: 'M2 14h20' }],\n ['path', { d: 'M2 4h20' }],\n];\n\nexport default AlignVerticalDistributeStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-justify-center\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTYiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSIyIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-vertical-justify-center\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalJustifyCenter: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '16', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '2', rx: '2' }],\n ['path', { d: 'M2 12h20' }],\n];\n\nexport default AlignVerticalJustifyCenter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-justify-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTIiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSIyIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAyMmgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-vertical-justify-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalJustifyEnd: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '12', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '2', rx: '2' }],\n ['path', { d: 'M2 22h20' }],\n];\n\nexport default AlignVerticalJustifyEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-justify-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTYiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSI2IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAyaDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-vertical-justify-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalJustifyStart: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '16', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '6', rx: '2' }],\n ['path', { d: 'M2 2h20' }],\n];\n\nexport default AlignVerticalJustifyStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-space-around\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iNiIgeD0iNyIgeT0iOSIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTIyIDIwSDIiIC8+CiAgPHBhdGggZD0iTTIyIDRIMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-vertical-space-around\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalSpaceAround: IconNode = [\n ['rect', { width: '10', height: '6', x: '7', y: '9', rx: '2' }],\n ['path', { d: 'M22 20H2' }],\n ['path', { d: 'M22 4H2' }],\n];\n\nexport default AlignVerticalSpaceAround;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-space-between\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTUiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSIzIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAyMWgyMCIgLz4KICA8cGF0aCBkPSJNMiAzaDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-vertical-space-between\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalSpaceBetween: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '15', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '3', rx: '2' }],\n ['path', { d: 'M2 21h20' }],\n ['path', { d: 'M2 3h20' }],\n];\n\nexport default AlignVerticalSpaceBetween;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ambulance\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTBINiIgLz4KICA8cGF0aCBkPSJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIiIC8+CiAgPHBhdGgKICAgIGQ9Ik0xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuMjhhMSAxIDAgMCAwLS42ODQtLjk0OGwtMS45MjMtLjY0MWExIDEgMCAwIDEtLjU3OC0uNTAybC0xLjUzOS0zLjA3NkExIDEgMCAwIDAgMTYuMzgyIDhIMTQiIC8+CiAgPHBhdGggZD0iTTggOHY0IiAvPgogIDxwYXRoIGQ9Ik05IDE4aDYiIC8+CiAgPGNpcmNsZSBjeD0iMTciIGN5PSIxOCIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iMTgiIHI9IjIiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/ambulance\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ambulance: IconNode = [\n ['path', { d: 'M10 10H6' }],\n ['path', { d: 'M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2' }],\n [\n 'path',\n {\n d: 'M19 18h2a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.684-.948l-1.923-.641a1 1 0 0 1-.578-.502l-1.539-3.076A1 1 0 0 0 16.382 8H14',\n },\n ],\n ['path', { d: 'M8 8v4' }],\n ['path', { d: 'M9 18h6' }],\n ['circle', { cx: '17', cy: '18', r: '2' }],\n ['circle', { cx: '7', cy: '18', r: '2' }],\n];\n\nexport default Ambulance;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ampersand\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTJoMyIgLz4KICA8cGF0aCBkPSJNMTcuNSAxMmE4IDggMCAwIDEtOCA4QTQuNSA0LjUgMCAwIDEgNSAxNS41YzAtNiA4LTQgOC04LjVhMyAzIDAgMSAwLTYgMGMwIDMgMi41IDguNSAxMiAxMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ampersand\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ampersand: IconNode = [\n ['path', { d: 'M16 12h3' }],\n [\n 'path',\n {\n d: 'M17.5 12a8 8 0 0 1-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13',\n },\n ],\n];\n\nexport default Ampersand;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ampersands\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTdjLTUtMy03LTctNy05YTIgMiAwIDAgMSA0IDBjMCAyLjUtNSAyLjUtNSA2IDAgMS43IDEuMyAzIDMgMyAyLjggMCA1LTIuMiA1LTUiIC8+CiAgPHBhdGggZD0iTTIyIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ampersands\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ampersands: IconNode = [\n [\n 'path',\n { d: 'M10 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5' },\n ],\n [\n 'path',\n { d: 'M22 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5' },\n ],\n];\n\nexport default Ampersands;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name amphora\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnY1LjYzMmMwIC40MjQtLjI3Mi43OTUtLjY1My45ODJBNiA2IDAgMCAwIDYgMTRjLjAwNiA0IDMgNyA1IDgiIC8+CiAgPHBhdGggZD0iTTEwIDVIOGEyIDIgMCAwIDAgMCA0aC42OCIgLz4KICA8cGF0aCBkPSJNMTQgMnY1LjYzMmMwIC40MjQuMjcyLjc5NS42NTIuOTgyQTYgNiAwIDAgMSAxOCAxNGMwIDQtMyA3LTUgOCIgLz4KICA8cGF0aCBkPSJNMTQgNWgyYTIgMiAwIDAgMSAwIDRoLS42OCIgLz4KICA8cGF0aCBkPSJNMTggMjJINiIgLz4KICA8cGF0aCBkPSJNOSAyaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/amphora\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Amphora: IconNode = [\n ['path', { d: 'M10 2v5.632c0 .424-.272.795-.653.982A6 6 0 0 0 6 14c.006 4 3 7 5 8' }],\n ['path', { d: 'M10 5H8a2 2 0 0 0 0 4h.68' }],\n ['path', { d: 'M14 2v5.632c0 .424.272.795.652.982A6 6 0 0 1 18 14c0 4-3 7-5 8' }],\n ['path', { d: 'M14 5h2a2 2 0 0 1 0 4h-.68' }],\n ['path', { d: 'M18 22H6' }],\n ['path', { d: 'M9 2h6' }],\n];\n\nexport default Amphora;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name anchor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnYxNiIgLz4KICA8cGF0aCBkPSJtMTkgMTMgMi0xYTkgOSAwIDAgMS0xOCAwbDIgMSIgLz4KICA8cGF0aCBkPSJNOSAxMWg2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iNCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/anchor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Anchor: IconNode = [\n ['path', { d: 'M12 6v16' }],\n ['path', { d: 'm19 13 2-1a9 9 0 0 1-18 0l2 1' }],\n ['path', { d: 'M9 11h6' }],\n ['circle', { cx: '12', cy: '4', r: '2' }],\n];\n\nexport default Anchor;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name angry\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIiAvPgogIDxwYXRoIGQ9Ik03LjUgOCAxMCA5IiAvPgogIDxwYXRoIGQ9Im0xNCA5IDIuNS0xIiAvPgogIDxwYXRoIGQ9Ik05IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTUgMTBoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/angry\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Angry: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M16 16s-1.5-2-4-2-4 2-4 2' }],\n ['path', { d: 'M7.5 8 10 9' }],\n ['path', { d: 'm14 9 2.5-1' }],\n ['path', { d: 'M9 10h.01' }],\n ['path', { d: 'M15 10h.01' }],\n];\n\nexport default Angry;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name annoyed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOCAxNWg4IiAvPgogIDxwYXRoIGQ9Ik04IDloMiIgLz4KICA8cGF0aCBkPSJNMTQgOWgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/annoyed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Annoyed: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M8 15h8' }],\n ['path', { d: 'M8 9h2' }],\n ['path', { d: 'M14 9h2' }],\n];\n\nexport default Annoyed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name antenna\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMiA3IDIiIC8+CiAgPHBhdGggZD0ibTcgMTIgNS0xMCIgLz4KICA8cGF0aCBkPSJtMTIgMTIgNS0xMCIgLz4KICA8cGF0aCBkPSJtMTcgMTIgNS0xMCIgLz4KICA8cGF0aCBkPSJNNC41IDdoMTUiIC8+CiAgPHBhdGggZD0iTTEyIDE2djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/antenna\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Antenna: IconNode = [\n ['path', { d: 'M2 12 7 2' }],\n ['path', { d: 'm7 12 5-10' }],\n ['path', { d: 'm12 12 5-10' }],\n ['path', { d: 'm17 12 5-10' }],\n ['path', { d: 'M4.5 7h15' }],\n ['path', { d: 'M12 16v6' }],\n];\n\nexport default Antenna;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name anvil\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxMEg2YTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWg0IiAvPgogIDxwYXRoIGQ9Ik03IDVhMSAxIDAgMCAxIDEtMWgxM2ExIDEgMCAwIDEgMSAxIDcgNyAwIDAgMS03IDdIOGExIDEgMCAwIDEtMS0xeiIgLz4KICA8cGF0aCBkPSJNOSAxMnY1IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMnY1IiAvPgogIDxwYXRoIGQ9Ik01IDIwYTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzIDEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/anvil\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Anvil: IconNode = [\n ['path', { d: 'M7 10H6a4 4 0 0 1-4-4 1 1 0 0 1 1-1h4' }],\n ['path', { d: 'M7 5a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1 7 7 0 0 1-7 7H8a1 1 0 0 1-1-1z' }],\n ['path', { d: 'M9 12v5' }],\n ['path', { d: 'M15 12v5' }],\n ['path', { d: 'M5 20a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3 1 1 0 0 1-1 1H6a1 1 0 0 1-1-1' }],\n];\n\nexport default Anvil;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name aperture\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTQuMzEgOCA1Ljc0IDkuOTQiIC8+CiAgPHBhdGggZD0iTTkuNjkgOGgxMS40OCIgLz4KICA8cGF0aCBkPSJtNy4zOCAxMiA1Ljc0LTkuOTQiIC8+CiAgPHBhdGggZD0iTTkuNjkgMTYgMy45NSA2LjA2IiAvPgogIDxwYXRoIGQ9Ik0xNC4zMSAxNkgyLjgzIiAvPgogIDxwYXRoIGQ9Im0xNi42MiAxMi01Ljc0IDkuOTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/aperture\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Aperture: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm14.31 8 5.74 9.94' }],\n ['path', { d: 'M9.69 8h11.48' }],\n ['path', { d: 'm7.38 12 5.74-9.94' }],\n ['path', { d: 'M9.69 16 3.95 6.06' }],\n ['path', { d: 'M14.31 16H2.83' }],\n ['path', { d: 'm16.62 12-5.74 9.94' }],\n];\n\nexport default Aperture;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name app-window-mac\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik02IDhoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMCA4aC4wMSIgLz4KICA8cGF0aCBkPSJNMTQgOGguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/app-window-mac\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AppWindowMac: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M6 8h.01' }],\n ['path', { d: 'M10 8h.01' }],\n ['path', { d: 'M14 8h.01' }],\n];\n\nexport default AppWindowMac;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name app-window\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIyIiB5PSI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMCA0djQiIC8+CiAgPHBhdGggZD0iTTIgOGgyMCIgLz4KICA8cGF0aCBkPSJNNiA0djQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/app-window\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AppWindow: IconNode = [\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2' }],\n ['path', { d: 'M10 4v4' }],\n ['path', { d: 'M2 8h20' }],\n ['path', { d: 'M6 4v4' }],\n];\n\nexport default AppWindow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name apple\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNi41MjhWM2ExIDEgMCAwIDEgMS0xaDAiIC8+CiAgPHBhdGggZD0iTTE4LjIzNyAyMUExNSAxNSAwIDAgMCAyMiAxMWE2IDYgMCAwIDAtMTAtNC40NzJBNiA2IDAgMCAwIDIgMTFhMTUuMSAxNS4xIDAgMCAwIDMuNzYzIDEwIDMgMyAwIDAgMCAzLjY0OC42NDggNS41IDUuNSAwIDAgMSA1LjE3OCAwQTMgMyAwIDAgMCAxOC4yMzcgMjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/apple\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Apple: IconNode = [\n ['path', { d: 'M12 6.528V3a1 1 0 0 1 1-1h0' }],\n [\n 'path',\n {\n d: 'M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21',\n },\n ],\n];\n\nexport default Apple;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name archive-restore\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNSIgeD0iMiIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDIiIC8+CiAgPHBhdGggZD0iTTIwIDh2MTFhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJtOSAxNSAzLTMgMyAzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnY5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/archive-restore\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArchiveRestore: IconNode = [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h2' }],\n ['path', { d: 'M20 8v11a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'm9 15 3-3 3 3' }],\n ['path', { d: 'M12 12v9' }],\n];\n\nexport default ArchiveRestore;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name archive-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNSIgeD0iMiIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCIgLz4KICA8cGF0aCBkPSJtOS41IDE3IDUtNSIgLz4KICA8cGF0aCBkPSJtOS41IDEyIDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/archive-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArchiveX: IconNode = [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8' }],\n ['path', { d: 'm9.5 17 5-5' }],\n ['path', { d: 'm9.5 12 5 5' }],\n];\n\nexport default ArchiveX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name archive\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNSIgeD0iMiIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCIgLz4KICA8cGF0aCBkPSJNMTAgMTJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/archive\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Archive: IconNode = [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8' }],\n ['path', { d: 'M10 12h4' }],\n];\n\nexport default Archive;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name armchair\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgOVY2YTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAydjMiIC8+CiAgPHBhdGggZD0iTTMgMTZhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41VjExYTIgMiAwIDAgMC00IDB6IiAvPgogIDxwYXRoIGQ9Ik01IDE4djIiIC8+CiAgPHBhdGggZD0iTTE5IDE4djIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/armchair\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Armchair: IconNode = [\n ['path', { d: 'M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3' }],\n [\n 'path',\n {\n d: 'M3 16a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z',\n },\n ],\n ['path', { d: 'M5 18v2' }],\n ['path', { d: 'M19 18v2' }],\n];\n\nexport default Armchair;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-down-dash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTFhMSAxIDAgMCAwIDEgMWgyLjkzOWExIDEgMCAwIDEgLjc1IDEuODExbC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwNyAwTDQuMzEgMTMuODFhMSAxIDAgMCAxIC43NS0xLjgxMUg4YTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTkgNGg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-big-down-dash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigDownDash: IconNode = [\n [\n 'path',\n {\n d: 'M15 11a1 1 0 0 0 1 1h2.939a1 1 0 0 1 .75 1.811l-6.835 6.836a1.207 1.207 0 0 1-1.707 0L4.31 13.81a1 1 0 0 1 .75-1.811H8a1 1 0 0 0 1-1V9a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M9 4h6' }],\n];\n\nexport default ArrowBigDownDash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTFhMSAxIDAgMCAwIDEgMWgyLjkzOWExIDEgMCAwIDEgLjc1IDEuODExbC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwNyAwTDQuMzEgMTMuODFhMSAxIDAgMCAxIC43NS0xLjgxMUg4YTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-big-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigDown: IconNode = [\n [\n 'path',\n {\n d: 'M15 11a1 1 0 0 0 1 1h2.939a1 1 0 0 1 .75 1.811l-6.835 6.836a1.207 1.207 0 0 1-1.707 0L4.31 13.81a1 1 0 0 1 .75-1.811H8a1 1 0 0 0 1-1V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1z',\n },\n ],\n];\n\nexport default ArrowBigDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-left-dash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgOWExIDEgMCAwIDEtMS0xVjUuMDYxYTEgMSAwIDAgMC0xLjgxMS0uNzVsLTYuODM1IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAwIDAgMS43MDdsNi44MzUgNi44MzVhMSAxIDAgMCAwIDEuODExLS43NVYxNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiIgLz4KICA8cGF0aCBkPSJNMjAgOXY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-big-left-dash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigLeftDash: IconNode = [\n [\n 'path',\n {\n d: 'M13 9a1 1 0 0 1-1-1V5.061a1 1 0 0 0-1.811-.75l-6.835 6.836a1.207 1.207 0 0 0 0 1.707l6.835 6.835a1 1 0 0 0 1.811-.75V16a1 1 0 0 1 1-1h2a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1z',\n },\n ],\n ['path', { d: 'M20 9v6' }],\n];\n\nexport default ArrowBigLeftDash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgOWExIDEgMCAwIDEtMS0xVjUuMDYxYTEgMSAwIDAgMC0xLjgxMS0uNzVsLTYuODM1IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAwIDAgMS43MDdsNi44MzUgNi44MzVhMSAxIDAgMCAwIDEuODExLS43NVYxNmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-big-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigLeft: IconNode = [\n [\n 'path',\n {\n d: 'M13 9a1 1 0 0 1-1-1V5.061a1 1 0 0 0-1.811-.75l-6.835 6.836a1.207 1.207 0 0 0 0 1.707l6.835 6.835a1 1 0 0 0 1.811-.75V16a1 1 0 0 1 1-1h6a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1z',\n },\n ],\n];\n\nexport default ArrowBigLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-right-dash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgOWExIDEgMCAwIDAgMS0xVjUuMDYxYTEgMSAwIDAgMSAxLjgxMS0uNzVsNi44MzYgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi44MzYgNi44MzVhMSAxIDAgMCAxLTEuODExLS43NVYxNmExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiIgLz4KICA8cGF0aCBkPSJNNCA5djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-big-right-dash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigRightDash: IconNode = [\n [\n 'path',\n {\n d: 'M11 9a1 1 0 0 0 1-1V5.061a1 1 0 0 1 1.811-.75l6.836 6.836a1.207 1.207 0 0 1 0 1.707l-6.836 6.835a1 1 0 0 1-1.811-.75V16a1 1 0 0 0-1-1H9a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z',\n },\n ],\n ['path', { d: 'M4 9v6' }],\n];\n\nexport default ArrowBigRightDash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgOWExIDEgMCAwIDAgMS0xVjUuMDYxYTEgMSAwIDAgMSAxLjgxMS0uNzVsNi44MzYgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi44MzYgNi44MzVhMSAxIDAgMCAxLTEuODExLS43NVYxNmExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-big-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigRight: IconNode = [\n [\n 'path',\n {\n d: 'M11 9a1 1 0 0 0 1-1V5.061a1 1 0 0 1 1.811-.75l6.836 6.836a1.207 1.207 0 0 1 0 1.707l-6.836 6.835a1 1 0 0 1-1.811-.75V16a1 1 0 0 0-1-1H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z',\n },\n ],\n];\n\nexport default ArrowBigRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-up-dash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxM2ExIDEgMCAwIDAtMS0xSDUuMDYxYTEgMSAwIDAgMS0uNzUtMS44MTFsNi44MzYtNi44MzVhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDcgMGw2LjgzNSA2LjgzNWExIDEgMCAwIDEtLjc1IDEuODExSDE2YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF6IiAvPgogIDxwYXRoIGQ9Ik05IDIwaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-big-up-dash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigUpDash: IconNode = [\n [\n 'path',\n {\n d: 'M9 13a1 1 0 0 0-1-1H5.061a1 1 0 0 1-.75-1.811l6.836-6.835a1.207 1.207 0 0 1 1.707 0l6.835 6.835a1 1 0 0 1-.75 1.811H16a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z',\n },\n ],\n ['path', { d: 'M9 20h6' }],\n];\n\nexport default ArrowBigUpDash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxM2ExIDEgMCAwIDAtMS0xSDUuMDYxYTEgMSAwIDAgMS0uNzUtMS44MTFsNi44MzYtNi44MzVhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDcgMGw2LjgzNSA2LjgzNWExIDEgMCAwIDEtLjc1IDEuODExSDE2YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-big-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigUp: IconNode = [\n [\n 'path',\n {\n d: 'M9 13a1 1 0 0 0-1-1H5.061a1 1 0 0 1-.75-1.811l6.836-6.835a1.207 1.207 0 0 1 1.707 0l6.835 6.835a1 1 0 0 1-.75 1.811H16a1 1 0 0 0-1 1v6a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z',\n },\n ],\n];\n\nexport default ArrowBigUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-0-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHJlY3QgeD0iMTUiIHk9IjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiIHJ5PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNyAyMHYtNmgtMiIgLz4KICA8cGF0aCBkPSJNMTUgMjBoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-0-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDown01: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['rect', { x: '15', y: '4', width: '4', height: '6', ry: '2' }],\n ['path', { d: 'M17 20v-6h-2' }],\n ['path', { d: 'M15 20h4' }],\n];\n\nexport default ArrowDown01;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-1-0\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0iTTE3IDEwVjRoLTIiIC8+CiAgPHBhdGggZD0iTTE1IDEwaDQiIC8+CiAgPHJlY3QgeD0iMTUiIHk9IjE0IiB3aWR0aD0iNCIgaGVpZ2h0PSI2IiByeT0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-1-0\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDown10: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['path', { d: 'M17 10V4h-2' }],\n ['path', { d: 'M15 10h4' }],\n ['rect', { x: '15', y: '14', width: '4', height: '6', ry: '2' }],\n];\n\nexport default ArrowDown10;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-a-z\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0iTTIwIDhoLTUiIC8+CiAgPHBhdGggZD0iTTE1IDEwVjYuNWEyLjUgMi41IDAgMCAxIDUgMFYxMCIgLz4KICA8cGF0aCBkPSJNMTUgMTRoNWwtNSA2aDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-a-z\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownAZ: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['path', { d: 'M20 8h-5' }],\n ['path', { d: 'M15 10V6.5a2.5 2.5 0 0 1 5 0V10' }],\n ['path', { d: 'M15 14h5l-5 6h5' }],\n];\n\nexport default ArrowDownAZ;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-from-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgM0g1IiAvPgogIDxwYXRoIGQ9Ik0xMiAyMVY3IiAvPgogIDxwYXRoIGQ9Im02IDE1IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-from-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownFromLine: IconNode = [\n ['path', { d: 'M19 3H5' }],\n ['path', { d: 'M12 21V7' }],\n ['path', { d: 'm6 15 6 6 6-6' }],\n];\n\nexport default ArrowDownFromLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgNyA3IDE3IiAvPgogIDxwYXRoIGQ9Ik0xNyAxN0g3VjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownLeft: IconNode = [\n ['path', { d: 'M17 7 7 17' }],\n ['path', { d: 'M17 17H7V7' }],\n];\n\nexport default ArrowDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-narrow-wide\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0iTTExIDRoNCIgLz4KICA8cGF0aCBkPSJNMTEgOGg3IiAvPgogIDxwYXRoIGQ9Ik0xMSAxMmgxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-narrow-wide\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownNarrowWide: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['path', { d: 'M11 4h4' }],\n ['path', { d: 'M11 8h7' }],\n ['path', { d: 'M11 12h10' }],\n];\n\nexport default ArrowDownNarrowWide;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyA3IDEwIDEwIiAvPgogIDxwYXRoIGQ9Ik0xNyA3djEwSDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownRight: IconNode = [\n ['path', { d: 'm7 7 10 10' }],\n ['path', { d: 'M17 7v10H7' }],\n];\n\nexport default ArrowDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-to-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxNCIgLz4KICA8cGF0aCBkPSJtMTkgOS03IDctNy03IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMjEiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-to-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownToDot: IconNode = [\n ['path', { d: 'M12 2v14' }],\n ['path', { d: 'm19 9-7 7-7-7' }],\n ['circle', { cx: '12', cy: '21', r: '1' }],\n];\n\nexport default ArrowDownToDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-to-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTdWMyIgLz4KICA8cGF0aCBkPSJtNiAxMSA2IDYgNi02IiAvPgogIDxwYXRoIGQ9Ik0xOSAyMUg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-down-to-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownToLine: IconNode = [\n ['path', { d: 'M12 17V3' }],\n ['path', { d: 'm6 11 6 6 6-6' }],\n ['path', { d: 'M19 21H5' }],\n];\n\nexport default ArrowDownToLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0ibTIxIDgtNC00LTQgNCIgLz4KICA8cGF0aCBkPSJNMTcgNHYxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownUp: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['path', { d: 'm21 8-4-4-4 4' }],\n ['path', { d: 'M17 4v16' }],\n];\n\nexport default ArrowDownUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-wide-narrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0iTTExIDRoMTAiIC8+CiAgPHBhdGggZD0iTTExIDhoNyIgLz4KICA8cGF0aCBkPSJNMTEgMTJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-wide-narrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownWideNarrow: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['path', { d: 'M11 4h10' }],\n ['path', { d: 'M11 8h7' }],\n ['path', { d: 'M11 12h4' }],\n];\n\nexport default ArrowDownWideNarrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-z-a\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE1IDRoNWwtNSA2aDUiIC8+CiAgPHBhdGggZD0iTTE1IDIwdi0zLjVhMi41IDIuNSAwIDAgMSA1IDBWMjAiIC8+CiAgPHBhdGggZD0iTTIwIDE4aC01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-down-z-a\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownZA: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M15 4h5l-5 6h5' }],\n ['path', { d: 'M15 20v-3.5a2.5 2.5 0 0 1 5 0V20' }],\n ['path', { d: 'M20 18h-5' }],\n];\n\nexport default ArrowDownZA;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KICA8cGF0aCBkPSJtMTkgMTItNyA3LTctNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDown: IconNode = [\n ['path', { d: 'M12 5v14' }],\n ['path', { d: 'm19 12-7 7-7-7' }],\n];\n\nexport default ArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-left-from-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSA2LTYgNiA2IDYiIC8+CiAgPHBhdGggZD0iTTMgMTJoMTQiIC8+CiAgPHBhdGggZD0iTTIxIDE5VjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-left-from-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowLeftFromLine: IconNode = [\n ['path', { d: 'm9 6-6 6 6 6' }],\n ['path', { d: 'M3 12h14' }],\n ['path', { d: 'M21 19V5' }],\n];\n\nexport default ArrowLeftFromLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-left-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzIDQgN2w0IDQiIC8+CiAgPHBhdGggZD0iTTQgN2gxNiIgLz4KICA8cGF0aCBkPSJtMTYgMjEgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJNMjAgMTdINCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-left-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowLeftRight: IconNode = [\n ['path', { d: 'M8 3 4 7l4 4' }],\n ['path', { d: 'M4 7h16' }],\n ['path', { d: 'm16 21 4-4-4-4' }],\n ['path', { d: 'M20 17H4' }],\n];\n\nexport default ArrowLeftRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-left-to-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxOVY1IiAvPgogIDxwYXRoIGQ9Im0xMyA2LTYgNiA2IDYiIC8+CiAgPHBhdGggZD0iTTcgMTJoMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-left-to-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowLeftToLine: IconNode = [\n ['path', { d: 'M3 19V5' }],\n ['path', { d: 'm13 6-6 6 6 6' }],\n ['path', { d: 'M7 12h14' }],\n];\n\nexport default ArrowLeftToLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTktNy03IDctNyIgLz4KICA8cGF0aCBkPSJNMTkgMTJINSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowLeft: IconNode = [\n ['path', { d: 'm12 19-7-7 7-7' }],\n ['path', { d: 'M19 12H5' }],\n];\n\nexport default ArrowLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-right-from-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1djE0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMkg3IiAvPgogIDxwYXRoIGQ9Im0xNSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right-from-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowRightFromLine: IconNode = [\n ['path', { d: 'M3 5v14' }],\n ['path', { d: 'M21 12H7' }],\n ['path', { d: 'm15 18 6-6-6-6' }],\n];\n\nexport default ArrowRightFromLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-right-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMyA0IDQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0yMCA3SDQiIC8+CiAgPHBhdGggZD0ibTggMjEtNC00IDQtNCIgLz4KICA8cGF0aCBkPSJNNCAxN2gxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-right-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowRightLeft: IconNode = [\n ['path', { d: 'm16 3 4 4-4 4' }],\n ['path', { d: 'M20 7H4' }],\n ['path', { d: 'm8 21-4-4 4-4' }],\n ['path', { d: 'M4 17h16' }],\n];\n\nexport default ArrowRightLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-right-to-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTJIMyIgLz4KICA8cGF0aCBkPSJtMTEgMTggNi02LTYtNiIgLz4KICA8cGF0aCBkPSJNMjEgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-right-to-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowRightToLine: IconNode = [\n ['path', { d: 'M17 12H3' }],\n ['path', { d: 'm11 18 6-6-6-6' }],\n ['path', { d: 'M21 5v14' }],\n];\n\nexport default ArrowRightToLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJtMTIgNSA3IDctNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowRight: IconNode = [\n ['path', { d: 'M5 12h14' }],\n ['path', { d: 'm12 5 7 7-7 7' }],\n];\n\nexport default ArrowRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-0-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjQiIGhlaWdodD0iNiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTE3IDIwdi02aC0yIiAvPgogIDxwYXRoIGQ9Ik0xNSAyMGg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up-0-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUp01: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['rect', { x: '15', y: '4', width: '4', height: '6', ry: '2' }],\n ['path', { d: 'M17 20v-6h-2' }],\n ['path', { d: 'M15 20h4' }],\n];\n\nexport default ArrowUp01;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-1-0\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTcgMTBWNGgtMiIgLz4KICA8cGF0aCBkPSJNMTUgMTBoNCIgLz4KICA8cmVjdCB4PSIxNSIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiIHJ5PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up-1-0\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUp10: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M17 10V4h-2' }],\n ['path', { d: 'M15 10h4' }],\n ['rect', { x: '15', y: '14', width: '4', height: '6', ry: '2' }],\n];\n\nexport default ArrowUp10;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-a-z\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMjAgOGgtNSIgLz4KICA8cGF0aCBkPSJNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNGg1bC01IDZoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-up-a-z\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpAZ: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M20 8h-5' }],\n ['path', { d: 'M15 10V6.5a2.5 2.5 0 0 1 5 0V10' }],\n ['path', { d: 'M15 14h5l-5 6h5' }],\n];\n\nexport default ArrowUpAZ;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMTYtNCA0LTQtNCIgLz4KICA8cGF0aCBkPSJNMTcgMjBWNCIgLz4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-up-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpDown: IconNode = [\n ['path', { d: 'm21 16-4 4-4-4' }],\n ['path', { d: 'M17 20V4' }],\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n];\n\nexport default ArrowUpDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-from-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNSA5IDctNyA3IDciIC8+CiAgPHBhdGggZD0iTTEyIDE2VjIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIyMSIgcj0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-up-from-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpFromDot: IconNode = [\n ['path', { d: 'm5 9 7-7 7 7' }],\n ['path', { d: 'M12 16V2' }],\n ['circle', { cx: '12', cy: '21', r: '1' }],\n];\n\nexport default ArrowUpFromDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-from-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggOS02LTYtNiA2IiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjE0IiAvPgogIDxwYXRoIGQ9Ik01IDIxaDE0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up-from-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpFromLine: IconNode = [\n ['path', { d: 'm18 9-6-6-6 6' }],\n ['path', { d: 'M12 3v14' }],\n ['path', { d: 'M5 21h14' }],\n];\n\nexport default ArrowUpFromLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxN1Y3aDEwIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNyA3IDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpLeft: IconNode = [\n ['path', { d: 'M7 17V7h10' }],\n ['path', { d: 'M17 17 7 7' }],\n];\n\nexport default ArrowUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-narrow-wide\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTEgMTJoNCIgLz4KICA8cGF0aCBkPSJNMTEgMTZoNyIgLz4KICA8cGF0aCBkPSJNMTEgMjBoMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-narrow-wide\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpNarrowWide: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M11 12h4' }],\n ['path', { d: 'M11 16h7' }],\n ['path', { d: 'M11 20h10' }],\n];\n\nexport default ArrowUpNarrowWide;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyA3aDEwdjEwIiAvPgogIDxwYXRoIGQ9Ik03IDE3IDE3IDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpRight: IconNode = [\n ['path', { d: 'M7 7h10v10' }],\n ['path', { d: 'M7 17 17 7' }],\n];\n\nexport default ArrowUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-to-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAzaDE0IiAvPgogIDxwYXRoIGQ9Im0xOCAxMy02LTYtNiA2IiAvPgogIDxwYXRoIGQ9Ik0xMiA3djE0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up-to-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpToLine: IconNode = [\n ['path', { d: 'M5 3h14' }],\n ['path', { d: 'm18 13-6-6-6 6' }],\n ['path', { d: 'M12 7v14' }],\n];\n\nexport default ArrowUpToLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-wide-narrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTEgMTJoMTAiIC8+CiAgPHBhdGggZD0iTTExIDE2aDciIC8+CiAgPHBhdGggZD0iTTExIDIwaDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-wide-narrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpWideNarrow: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M11 12h10' }],\n ['path', { d: 'M11 16h7' }],\n ['path', { d: 'M11 20h4' }],\n];\n\nexport default ArrowUpWideNarrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-z-a\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTUgNGg1bC01IDZoNSIgLz4KICA8cGF0aCBkPSJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCIgLz4KICA8cGF0aCBkPSJNMjAgMThoLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-z-a\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpZA: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M15 4h5l-5 6h5' }],\n ['path', { d: 'M15 20v-3.5a2.5 2.5 0 0 1 5 0V20' }],\n ['path', { d: 'M20 18h-5' }],\n];\n\nexport default ArrowUpZA;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNSAxMiA3LTcgNyA3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOVY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUp: IconNode = [\n ['path', { d: 'm5 12 7-7 7 7' }],\n ['path', { d: 'M12 19V5' }],\n];\n\nexport default ArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrows-up-from-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNCA2IDMtMyAzIDMiIC8+CiAgPHBhdGggZD0iTTcgMTdWMyIgLz4KICA8cGF0aCBkPSJtMTQgNiAzLTMgMyAzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxN1YzIiAvPgogIDxwYXRoIGQ9Ik00IDIxaDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrows-up-from-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowsUpFromLine: IconNode = [\n ['path', { d: 'm4 6 3-3 3 3' }],\n ['path', { d: 'M7 17V3' }],\n ['path', { d: 'm14 6 3-3 3 3' }],\n ['path', { d: 'M17 17V3' }],\n ['path', { d: 'M4 21h16' }],\n];\n\nexport default ArrowsUpFromLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name asterisk\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnYxMiIgLz4KICA8cGF0aCBkPSJNMTcuMTk2IDkgNi44MDQgMTUiIC8+CiAgPHBhdGggZD0ibTYuODA0IDkgMTAuMzkyIDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/asterisk\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Asterisk: IconNode = [\n ['path', { d: 'M12 6v12' }],\n ['path', { d: 'M17.196 9 6.804 15' }],\n ['path', { d: 'm6.804 9 10.392 6' }],\n];\n\nexport default Asterisk;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name at-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xNiA4djVhMyAzIDAgMCAwIDYgMHYtMWExMCAxMCAwIDEgMC00IDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/at-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AtSign: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8' }],\n];\n\nexport default AtSign;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name atom\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxwYXRoIGQ9Ik0yMC4yIDIwLjJjMi4wNC0yLjAzLjAyLTcuMzYtNC41LTExLjktNC41NC00LjUyLTkuODctNi41NC0xMS45LTQuNS0yLjA0IDIuMDMtLjAyIDcuMzYgNC41IDExLjkgNC41NCA0LjUyIDkuODcgNi41NCAxMS45IDQuNVoiIC8+CiAgPHBhdGggZD0iTTE1LjcgMTUuN2M0LjUyLTQuNTQgNi41NC05Ljg3IDQuNS0xMS45LTIuMDMtMi4wNC03LjM2LS4wMi0xMS45IDQuNS00LjUyIDQuNTQtNi41NCA5Ljg3LTQuNSAxMS45IDIuMDMgMi4wNCA3LjM2LjAyIDExLjktNC41WiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/atom\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Atom: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1' }],\n [\n 'path',\n {\n d: 'M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z',\n },\n ],\n [\n 'path',\n {\n d: 'M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z',\n },\n ],\n];\n\nexport default Atom;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name audio-lines\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMHYzIiAvPgogIDxwYXRoIGQ9Ik02IDZ2MTEiIC8+CiAgPHBhdGggZD0iTTEwIDN2MTgiIC8+CiAgPHBhdGggZD0iTTE0IDh2NyIgLz4KICA8cGF0aCBkPSJNMTggNXYxMyIgLz4KICA8cGF0aCBkPSJNMjIgMTB2MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/audio-lines\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AudioLines: IconNode = [\n ['path', { d: 'M2 10v3' }],\n ['path', { d: 'M6 6v11' }],\n ['path', { d: 'M10 3v18' }],\n ['path', { d: 'M14 8v7' }],\n ['path', { d: 'M18 5v13' }],\n ['path', { d: 'M22 10v3' }],\n];\n\nexport default AudioLines;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name audio-waveform\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxM2EyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwVjRhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwdi00YTIgMiAwIDAgMSAyLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/audio-waveform\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AudioWaveform: IconNode = [\n [\n 'path',\n {\n d: 'M2 13a2 2 0 0 0 2-2V7a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0V4a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0v-4a2 2 0 0 1 2-2',\n },\n ],\n];\n\nexport default AudioWaveform;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name award\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuNDc3IDEyLjg5IDEuNTE1IDguNTI2YS41LjUgMCAwIDEtLjgxLjQ3bC0zLjU4LTIuNjg3YTEgMSAwIDAgMC0xLjE5NyAwbC0zLjU4NiAyLjY4NmEuNS41IDAgMCAxLS44MS0uNDY5bDEuNTE0LTguNTI2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iOCIgcj0iNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/award\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Award: IconNode = [\n [\n 'path',\n {\n d: 'm15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526',\n },\n ],\n ['circle', { cx: '12', cy: '8', r: '6' }],\n];\n\nexport default Award;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name axe\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTItOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5IiAvPgogIDxwYXRoIGQ9Ik0xNSAxNS41YS41LjUgMCAwIDAgLjUuNUE2LjUgNi41IDAgMCAwIDIyIDkuNWEuNS41IDAgMCAwLS41LS41aC0xLjY3MmEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNS4wNjItNS4wNjJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw5LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDUuMDYyIDUuMDYyQTIgMiAwIDAgMSAxNSAxMy44Mjh6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/axe\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Axe: IconNode = [\n ['path', { d: 'm14 12-8.381 8.38a1 1 0 0 1-3.001-3L11 9' }],\n [\n 'path',\n {\n d: 'M15 15.5a.5.5 0 0 0 .5.5A6.5 6.5 0 0 0 22 9.5a.5.5 0 0 0-.5-.5h-1.672a2 2 0 0 1-1.414-.586l-5.062-5.062a1.205 1.205 0 0 0-1.704 0L9.352 5.648a1.205 1.205 0 0 0 0 1.704l5.062 5.062A2 2 0 0 1 15 13.828z',\n },\n ],\n];\n\nexport default Axe;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name axis-3d\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNSAxMC41IDE1IDkiIC8+CiAgPHBhdGggZD0iTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1IiAvPgogIDxwYXRoIGQ9Ik00LjI5MyAxOS43MDcgNiAxOCIgLz4KICA8cGF0aCBkPSJtOSAxNSAxLjUtMS41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/axis-3d\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Axis3d: IconNode = [\n ['path', { d: 'M13.5 10.5 15 9' }],\n ['path', { d: 'M4 4v15a1 1 0 0 0 1 1h15' }],\n ['path', { d: 'M4.293 19.707 6 18' }],\n ['path', { d: 'm9 15 1.5-1.5' }],\n];\n\nexport default Axis3d;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name backpack\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGE0IDQgMCAwIDEgNC00aDhhNCA0IDAgMCAxIDQgNHYxMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnoiIC8+CiAgPHBhdGggZD0iTTggMTBoOCIgLz4KICA8cGF0aCBkPSJNOCAxOGg4IiAvPgogIDxwYXRoIGQ9Ik04IDIydi02YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjYiIC8+CiAgPHBhdGggZD0iTTkgNlY0YTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/backpack\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Backpack: IconNode = [\n ['path', { d: 'M4 10a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z' }],\n ['path', { d: 'M8 10h8' }],\n ['path', { d: 'M8 18h8' }],\n ['path', { d: 'M8 22v-6a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v6' }],\n ['path', { d: 'M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2' }],\n];\n\nexport default Backpack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name baby\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTZjLjUuMyAxLjIuNSAyIC41czEuNS0uMiAyLS41IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEiIC8+CiAgPHBhdGggZD0iTTkgMTJoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/baby\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Baby: IconNode = [\n ['path', { d: 'M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5' }],\n ['path', { d: 'M15 12h.01' }],\n [\n 'path',\n {\n d: 'M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1',\n },\n ],\n ['path', { d: 'M9 12h.01' }],\n];\n\nexport default Baby;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSI4IiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIuMDEiIHkxPSIxNiIgeTI9IjE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/badge-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeAlert: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '12' }],\n ['line', { x1: '12', x2: '12.01', y1: '16', y2: '16' }],\n];\n\nexport default BadgeAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-cent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTEyIDd2MTAiIC8+CiAgPHBhdGggZD0iTTE1LjQgMTBhNCA0IDAgMSAwIDAgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-cent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeCent: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M12 7v10' }],\n ['path', { d: 'M15.4 10a4 4 0 1 0 0 4' }],\n];\n\nexport default BadgeCent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0ibTkgMTIgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeCheck: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default BadgeCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-indian-rupee\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTggOGg4IiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+CiAgPHBhdGggZD0ibTEzIDE3LTUtMWgxYTQgNCAwIDAgMCAwLTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-indian-rupee\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeIndianRupee: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M8 8h8' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'm13 17-5-1h1a4 4 0 0 0 0-8' }],\n];\n\nexport default BadgeIndianRupee;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-dollar-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCIgLz4KICA8cGF0aCBkPSJNMTIgMThWNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-dollar-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeDollarSign: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8' }],\n ['path', { d: 'M12 18V6' }],\n];\n\nexport default BadgeDollarSign;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-euro\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTcgMTJoNSIgLz4KICA8cGF0aCBkPSJNMTUgOS40YTQgNCAwIDEgMCAwIDUuMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-euro\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeEuro: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M7 12h5' }],\n ['path', { d: 'M15 9.4a4 4 0 1 0 0 5.2' }],\n];\n\nexport default BadgeEuro;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-info\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSIxNiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyLjAxIiB5MT0iOCIgeTI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-info\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeInfo: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['line', { x1: '12', x2: '12', y1: '16', y2: '12' }],\n ['line', { x1: '12', x2: '12.01', y1: '8', y2: '8' }],\n];\n\nexport default BadgeInfo;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-japanese-yen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0ibTkgOCAzIDN2NyIgLz4KICA8cGF0aCBkPSJtMTIgMTEgMy0zIiAvPgogIDxwYXRoIGQ9Ik05IDEyaDYiIC8+CiAgPHBhdGggZD0iTTkgMTZoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-japanese-yen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeJapaneseYen: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'm9 8 3 3v7' }],\n ['path', { d: 'm12 11 3-3' }],\n ['path', { d: 'M9 12h6' }],\n ['path', { d: 'M9 16h6' }],\n];\n\nexport default BadgeJapaneseYen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjgiIHgyPSIxNiIgeTE9IjEyIiB5Mj0iMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeMinus: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12' }],\n];\n\nexport default BadgeMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0ibTE1IDktNiA2IiAvPgogIDxwYXRoIGQ9Ik05IDloLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgePercent: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'M9 9h.01' }],\n ['path', { d: 'M15 15h.01' }],\n];\n\nexport default BadgePercent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSI4IiB5Mj0iMTYiIC8+CiAgPGxpbmUgeDE9IjgiIHgyPSIxNiIgeTE9IjEyIiB5Mj0iMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgePlus: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '16' }],\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12' }],\n];\n\nexport default BadgePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-pound-sterling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTggMTJoNCIgLz4KICA8cGF0aCBkPSJNMTAgMTZWOS41YTIuNSAyLjUgMCAwIDEgNSAwIiAvPgogIDxwYXRoIGQ9Ik04IDE2aDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-pound-sterling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgePoundSterling: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M8 12h4' }],\n ['path', { d: 'M10 16V9.5a2.5 2.5 0 0 1 5 0' }],\n ['path', { d: 'M8 16h7' }],\n];\n\nexport default BadgePoundSterling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyLjAxIiB5MT0iMTciIHkyPSIxNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeQuestionMark: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3' }],\n ['line', { x1: '12', x2: '12.01', y1: '17', y2: '17' }],\n];\n\nexport default BadgeQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-russian-ruble\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTkgMTZoNSIgLz4KICA8cGF0aCBkPSJNOSAxMmg1YTIgMiAwIDEgMCAwLTRoLTN2OSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-russian-ruble\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeRussianRuble: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M9 16h5' }],\n ['path', { d: 'M9 12h5a2 2 0 1 0 0-4h-3v9' }],\n];\n\nexport default BadgeRussianRuble;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-swiss-franc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTExIDE3VjhoNCIgLz4KICA8cGF0aCBkPSJNMTEgMTJoMyIgLz4KICA8cGF0aCBkPSJNOSAxNmg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/badge-swiss-franc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeSwissFranc: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M11 17V8h4' }],\n ['path', { d: 'M11 12h3' }],\n ['path', { d: 'M9 16h4' }],\n];\n\nexport default BadgeSwissFranc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-turkish-lira\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgN3YxMGE1IDUgMCAwIDAgNS01IiAvPgogIDxwYXRoIGQ9Im0xNSA4LTYgMyIgLz4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-turkish-lira\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeTurkishLira: IconNode = [\n ['path', { d: 'M11 7v10a5 5 0 0 0 5-5' }],\n ['path', { d: 'm15 8-6 3' }],\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76',\n },\n ],\n];\n\nexport default BadgeTurkishLira;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjE1IiB4Mj0iOSIgeTE9IjkiIHkyPSIxNSIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjE1IiB5MT0iOSIgeTI9IjE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/badge-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeX: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['line', { x1: '15', x2: '9', y1: '9', y2: '15' }],\n ['line', { x1: '9', x2: '15', y1: '9', y2: '15' }],\n];\n\nexport default BadgeX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Badge: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n];\n\nexport default Badge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name baggage-claim\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMiIgLz4KICA8cGF0aCBkPSJNMTcgMTRWNGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MTAiIC8+CiAgPHJlY3Qgd2lkdGg9IjEzIiBoZWlnaHQ9IjgiIHg9IjgiIHk9IjYiIHJ4PSIxIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMjAiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjIwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/baggage-claim\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BaggageClaim: IconNode = [\n ['path', { d: 'M22 18H6a2 2 0 0 1-2-2V7a2 2 0 0 0-2-2' }],\n ['path', { d: 'M17 14V4a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v10' }],\n ['rect', { width: '13', height: '8', x: '8', y: '6', rx: '1' }],\n ['circle', { cx: '18', cy: '20', r: '2' }],\n ['circle', { cx: '9', cy: '20', r: '2' }],\n];\n\nexport default BaggageClaim;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name balloon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZ2MWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYxIiAvPgogIDxwYXRoIGQ9Ik0xMiA2YTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTE4IDhjMCA0LTMuNSA4LTYgOHMtNi00LTYtOGE2IDYgMCAwIDEgMTIgMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/balloon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Balloon: IconNode = [\n ['path', { d: 'M12 16v1a2 2 0 0 0 2 2h1a2 2 0 0 1 2 2v1' }],\n ['path', { d: 'M12 6a2 2 0 0 1 2 2' }],\n ['path', { d: 'M18 8c0 4-3.5 8-6 8s-6-4-6-8a6 6 0 0 1 12 0' }],\n];\n\nexport default Balloon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ban: IconNode = [\n ['path', { d: 'M4.929 4.929 19.07 19.071' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Ban;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name banana\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxM2MzLjUtMiA4LTIgMTAgMmE1LjUgNS41IDAgMCAxIDggNSIgLz4KICA8cGF0aCBkPSJNNS4xNSAxNy44OWM1LjUyLTEuNTIgOC42NS02Ljg5IDctMTJDMTEuNTUgNCAxMS41IDIgMTMgMmMzLjIyIDAgNSA1LjUgNSA4IDAgNi41LTQuMiAxMi0xMC40OSAxMkM1LjExIDIyIDIgMjIgMiAyMGMwLTEuNSAxLjE0LTEuNTUgMy4xNS0yLjExWiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/banana\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Banana: IconNode = [\n ['path', { d: 'M4 13c3.5-2 8-2 10 2a5.5 5.5 0 0 1 8 5' }],\n [\n 'path',\n {\n d: 'M5.15 17.89c5.52-1.52 8.65-6.89 7-12C11.55 4 11.5 2 13 2c3.22 0 5 5.5 5 8 0 6.5-4.2 12-10.49 12C5.11 22 2 22 2 20c0-1.5 1.14-1.55 3.15-2.11Z',\n },\n ],\n];\n\nexport default Banana;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bandage\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTAuMDFoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMCAxNC4wMWguMDEiIC8+CiAgPHBhdGggZD0iTTE0IDEwLjAxaC4wMSIgLz4KICA8cGF0aCBkPSJNMTQgMTQuMDFoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xOCA2djEyIiAvPgogIDxwYXRoIGQ9Ik02IDZ2MTIiIC8+CiAgPHJlY3QgeD0iMiIgeT0iNiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjEyIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bandage\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bandage: IconNode = [\n ['path', { d: 'M10 10.01h.01' }],\n ['path', { d: 'M10 14.01h.01' }],\n ['path', { d: 'M14 10.01h.01' }],\n ['path', { d: 'M14 14.01h.01' }],\n ['path', { d: 'M18 6v12' }],\n ['path', { d: 'M6 6v12' }],\n ['rect', { x: '2', y: '6', width: '20', height: '12', rx: '2' }],\n];\n\nexport default Bandage;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name banknote-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUiIC8+CiAgPHBhdGggZD0ibTE2IDE5IDMgMyAzLTMiIC8+CiAgPHBhdGggZD0iTTE4IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTkgMTZ2NiIgLz4KICA8cGF0aCBkPSJNNiAxMmguMDEiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/banknote-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BanknoteArrowDown: IconNode = [\n ['path', { d: 'M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5' }],\n ['path', { d: 'm16 19 3 3 3-3' }],\n ['path', { d: 'M18 12h.01' }],\n ['path', { d: 'M19 16v6' }],\n ['path', { d: 'M6 12h.01' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default BanknoteArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name banknote-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUiIC8+CiAgPHBhdGggZD0iTTE4IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTkgMjJ2LTYiIC8+CiAgPHBhdGggZD0ibTIyIDE5LTMtMy0zIDMiIC8+CiAgPHBhdGggZD0iTTYgMTJoLjAxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/banknote-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BanknoteArrowUp: IconNode = [\n ['path', { d: 'M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5' }],\n ['path', { d: 'M18 12h.01' }],\n ['path', { d: 'M19 22v-6' }],\n ['path', { d: 'm22 19-3-3-3 3' }],\n ['path', { d: 'M6 12h.01' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default BanknoteArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name banknote-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUiIC8+CiAgPHBhdGggZD0ibTE3IDE3IDUgNSIgLz4KICA8cGF0aCBkPSJNMTggMTJoLjAxIiAvPgogIDxwYXRoIGQ9Im0yMiAxNy01IDUiIC8+CiAgPHBhdGggZD0iTTYgMTJoLjAxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/banknote-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BanknoteX: IconNode = [\n ['path', { d: 'M13 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5' }],\n ['path', { d: 'm17 17 5 5' }],\n ['path', { d: 'M18 12h.01' }],\n ['path', { d: 'm22 17-5 5' }],\n ['path', { d: 'M6 12h.01' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default BanknoteX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name banknote\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjYiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTYgMTJoLjAxTTE4IDEyaC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/banknote\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Banknote: IconNode = [\n ['rect', { width: '20', height: '12', x: '2', y: '6', rx: '2' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['path', { d: 'M6 12h.01M18 12h.01' }],\n];\n\nexport default Banknote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name barcode\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1djE0IiAvPgogIDxwYXRoIGQ9Ik04IDV2MTQiIC8+CiAgPHBhdGggZD0iTTEyIDV2MTQiIC8+CiAgPHBhdGggZD0iTTE3IDV2MTQiIC8+CiAgPHBhdGggZD0iTTIxIDV2MTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/barcode\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Barcode: IconNode = [\n ['path', { d: 'M3 5v14' }],\n ['path', { d: 'M8 5v14' }],\n ['path', { d: 'M12 5v14' }],\n ['path', { d: 'M17 5v14' }],\n ['path', { d: 'M21 5v14' }],\n];\n\nexport default Barcode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name barrel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgM2E0MSA0MSAwIDAgMCAwIDE4IiAvPgogIDxwYXRoIGQ9Ik0xNCAzYTQxIDQxIDAgMCAxIDAgMTgiIC8+CiAgPHBhdGggZD0iTTE3IDNhMiAyIDAgMCAxIDEuNjguOTIgMTUuMjUgMTUuMjUgMCAwIDEgMCAxNi4xNkEyIDIgMCAwIDEgMTcgMjFIN2EyIDIgMCAwIDEtMS42OC0uOTIgMTUuMjUgMTUuMjUgMCAwIDEgMC0xNi4xNkEyIDIgMCAwIDEgNyAzeiIgLz4KICA8cGF0aCBkPSJNMy44NCAxN2gxNi4zMiIgLz4KICA8cGF0aCBkPSJNMy44NCA3aDE2LjMyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/barrel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Barrel: IconNode = [\n ['path', { d: 'M10 3a41 41 0 0 0 0 18' }],\n ['path', { d: 'M14 3a41 41 0 0 1 0 18' }],\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 1.68.92 15.25 15.25 0 0 1 0 16.16A2 2 0 0 1 17 21H7a2 2 0 0 1-1.68-.92 15.25 15.25 0 0 1 0-16.16A2 2 0 0 1 7 3z',\n },\n ],\n ['path', { d: 'M3.84 17h16.32' }],\n ['path', { d: 'M3.84 7h16.32' }],\n];\n\nexport default Barrel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name baseline\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGgxNiIgLz4KICA8cGF0aCBkPSJtNiAxNiA2LTEyIDYgMTIiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/baseline\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Baseline: IconNode = [\n ['path', { d: 'M4 20h16' }],\n ['path', { d: 'm6 16 6-12 6 12' }],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default Baseline;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bath\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNCA4IDYiIC8+CiAgPHBhdGggZD0iTTE3IDE5djIiIC8+CiAgPHBhdGggZD0iTTIgMTJoMjAiIC8+CiAgPHBhdGggZD0iTTcgMTl2MiIgLz4KICA8cGF0aCBkPSJNOSA1IDcuNjIxIDMuNjIxQTIuMTIxIDIuMTIxIDAgMCAwIDQgNXYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bath\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bath: IconNode = [\n ['path', { d: 'M10 4 8 6' }],\n ['path', { d: 'M17 19v2' }],\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'M7 19v2' }],\n ['path', { d: 'M9 5 7.621 3.621A2.121 2.121 0 0 0 4 5v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5' }],\n];\n\nexport default Bath;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-charging\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgNy0zIDVoNGwtMyA1IiAvPgogIDxwYXRoIGQ9Ik0xNC44NTYgNkgxNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi45MzUiIC8+CiAgPHBhdGggZD0iTTIyIDE0di00IiAvPgogIDxwYXRoIGQ9Ik01LjE0IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMi45MzYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/battery-charging\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryCharging: IconNode = [\n ['path', { d: 'm11 7-3 5h4l-3 5' }],\n ['path', { d: 'M14.856 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.935' }],\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M5.14 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.936' }],\n];\n\nexport default BatteryCharging;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-full\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTB2NCIgLz4KICA8cGF0aCBkPSJNMTQgMTB2NCIgLz4KICA8cGF0aCBkPSJNMjIgMTR2LTQiIC8+CiAgPHBhdGggZD0iTTYgMTB2NCIgLz4KICA8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTIiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/battery-full\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryFull: IconNode = [\n ['path', { d: 'M10 10v4' }],\n ['path', { d: 'M14 10v4' }],\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M6 10v4' }],\n ['rect', { x: '2', y: '6', width: '16', height: '12', rx: '2' }],\n];\n\nexport default BatteryFull;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-low\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTR2LTQiIC8+CiAgPHBhdGggZD0iTTYgMTR2LTQiIC8+CiAgPHJlY3QgeD0iMiIgeT0iNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/battery-low\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryLow: IconNode = [\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M6 14v-4' }],\n ['rect', { x: '2', y: '6', width: '16', height: '12', rx: '2' }],\n];\n\nexport default BatteryLow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-medium\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTR2LTQiIC8+CiAgPHBhdGggZD0iTTIyIDE0di00IiAvPgogIDxwYXRoIGQ9Ik02IDE0di00IiAvPgogIDxyZWN0IHg9IjIiIHk9IjYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxMiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/battery-medium\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryMedium: IconNode = [\n ['path', { d: 'M10 14v-4' }],\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M6 14v-4' }],\n ['rect', { x: '2', y: '6', width: '16', height: '12', rx: '2' }],\n];\n\nexport default BatteryMedium;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOXY2IiAvPgogIDxwYXRoIGQ9Ik0xMi41NDMgNkgxNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMy42MDUiIC8+CiAgPHBhdGggZD0iTTIyIDE0di00IiAvPgogIDxwYXRoIGQ9Ik03IDEyaDYiIC8+CiAgPHBhdGggZD0iTTcuNjA2IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMy42MDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/battery-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryPlus: IconNode = [\n ['path', { d: 'M10 9v6' }],\n ['path', { d: 'M12.543 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.605' }],\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M7 12h6' }],\n ['path', { d: 'M7.606 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.606' }],\n];\n\nexport default BatteryPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-warning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTdoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMCA3djYiIC8+CiAgPHBhdGggZD0iTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNMjIgMTR2LTQiIC8+CiAgPHBhdGggZD0iTTYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/battery-warning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryWarning: IconNode = [\n ['path', { d: 'M10 17h.01' }],\n ['path', { d: 'M10 7v6' }],\n ['path', { d: 'M14 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M6 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2' }],\n];\n\nexport default BatteryWarning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNIDIyIDE0IEwgMjIgMTAiIC8+CiAgPHJlY3QgeD0iMiIgeT0iNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/battery\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Battery: IconNode = [\n ['path', { d: 'M 22 14 L 22 10' }],\n ['rect', { x: '2', y: '6', width: '16', height: '12', rx: '2' }],\n];\n\nexport default Battery;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name beaker\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC41IDNoMTUiIC8+CiAgPHBhdGggZD0iTTYgM3YxNmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYzIiAvPgogIDxwYXRoIGQ9Ik02IDE0aDEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/beaker\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Beaker: IconNode = [\n ['path', { d: 'M4.5 3h15' }],\n ['path', { d: 'M6 3v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V3' }],\n ['path', { d: 'M6 14h12' }],\n];\n\nexport default Beaker;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bean-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYTEzLjk2IDEzLjk2IDAgMCAwIDkuOS00LjEiIC8+CiAgPHBhdGggZD0iTTEwLjc1IDUuMDkzQTYgNiAwIDAgMSAyMiA4YzAgMi40MTEtLjYxIDQuNjgtMS42ODMgNi42NiIgLz4KICA8cGF0aCBkPSJNNS4zNDEgMTAuNjJhNCA0IDAgMCAwIDYuNDg3IDEuMjA4TTEwLjYyIDUuMzQxYTQuMDE1IDQuMDE1IDAgMCAxIDIuMDM5IDIuMDQiIC8+CiAgPGxpbmUgeDE9IjIiIHgyPSIyMiIgeTE9IjIiIHkyPSIyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bean-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BeanOff: IconNode = [\n ['path', { d: 'M9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22a13.96 13.96 0 0 0 9.9-4.1' }],\n ['path', { d: 'M10.75 5.093A6 6 0 0 1 22 8c0 2.411-.61 4.68-1.683 6.66' }],\n ['path', { d: 'M5.341 10.62a4 4 0 0 0 6.487 1.208M10.62 5.341a4.015 4.015 0 0 1 2.039 2.04' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default BeanOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bean\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMTY1IDYuNTk4QzkuOTU0IDcuNDc4IDkuNjQgOC4zNiA5IDljLS42NC42NC0xLjUyMS45NTQtMi40MDIgMS4xNjVBNiA2IDAgMCAwIDggMjJjNy43MzIgMCAxNC02LjI2OCAxNC0xNGE2IDYgMCAwIDAtMTEuODM1LTEuNDAyWiIgLz4KICA8cGF0aCBkPSJNNS4zNDEgMTAuNjJhNCA0IDAgMSAwIDUuMjc5LTUuMjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bean\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bean: IconNode = [\n [\n 'path',\n {\n d: 'M10.165 6.598C9.954 7.478 9.64 8.36 9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22c7.732 0 14-6.268 14-14a6 6 0 0 0-11.835-1.402Z',\n },\n ],\n ['path', { d: 'M5.341 10.62a4 4 0 1 0 5.279-5.28' }],\n];\n\nexport default Bean;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bed-double\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMHYtOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2OCIgLz4KICA8cGF0aCBkPSJNNCAxMFY2YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY0IiAvPgogIDxwYXRoIGQ9Ik0xMiA0djYiIC8+CiAgPHBhdGggZD0iTTIgMThoMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bed-double\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BedDouble: IconNode = [\n ['path', { d: 'M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8' }],\n ['path', { d: 'M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4' }],\n ['path', { d: 'M12 4v6' }],\n ['path', { d: 'M2 18h20' }],\n];\n\nexport default BedDouble;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bed-single\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCIgLz4KICA8cGF0aCBkPSJNNSAxMFY2YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0IiAvPgogIDxwYXRoIGQ9Ik0zIDE4aDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bed-single\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BedSingle: IconNode = [\n ['path', { d: 'M3 20v-8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v8' }],\n ['path', { d: 'M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4' }],\n ['path', { d: 'M3 18h18' }],\n];\n\nexport default BedSingle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA0djE2IiAvPgogIDxwYXRoIGQ9Ik0yIDhoMThhMiAyIDAgMCAxIDIgMnYxMCIgLz4KICA8cGF0aCBkPSJNMiAxN2gyMCIgLz4KICA8cGF0aCBkPSJNNiA4djkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bed: IconNode = [\n ['path', { d: 'M2 4v16' }],\n ['path', { d: 'M2 8h18a2 2 0 0 1 2 2v10' }],\n ['path', { d: 'M2 17h20' }],\n ['path', { d: 'M6 8v9' }],\n];\n\nexport default Bed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name beef\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuNCAxMy43QTYuNSA2LjUgMCAxIDAgNi4yOCA2LjZjLTEuMSAzLjEzLS43OCAzLjktMy4xOCA2LjA4QTMgMyAwIDAgMCA1IDE4YzQgMCA4LjQtMS44IDExLjQtNC4zIiAvPgogIDxwYXRoIGQ9Im0xOC41IDYgMi4xOSA0LjVhNi40OCA2LjQ4IDAgMCAxLTIuMjkgNy4yQzE1LjQgMjAuMiAxMSAyMiA3IDIyYTMgMyAwIDAgMS0yLjY4LTEuNjZMMi40IDE2LjUiIC8+CiAgPGNpcmNsZSBjeD0iMTIuNSIgY3k9IjguNSIgcj0iMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/beef\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Beef: IconNode = [\n [\n 'path',\n {\n d: 'M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3',\n },\n ],\n [\n 'path',\n {\n d: 'm18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5',\n },\n ],\n ['circle', { cx: '12.5', cy: '8.5', r: '2.5' }],\n];\n\nexport default Beef;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name beer-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTN2NSIgLz4KICA8cGF0aCBkPSJNMTcgMTEuNDdWOCIgLz4KICA8cGF0aCBkPSJNMTcgMTFoMWEzIDMgMCAwIDEgMi43NDUgNC4yMTEiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNNSA4djEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0ydi0zIiAvPgogIDxwYXRoIGQ9Ik03LjUzNiA3LjUzNUM2Ljc2NiA3LjY0OSA2LjE1NCA4IDUuNSA4YTIuNSAyLjUgMCAwIDEtMS43NjgtNC4yNjgiIC8+CiAgPHBhdGggZD0iTTguNzI3IDMuMjA0QzkuMzA2IDIuNzY3IDkuODg1IDIgMTEgMmMxLjU2IDAgMiAxLjUgMyAxLjVzMS43Mi0uNSAyLjUtLjVhMSAxIDAgMSAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNWEzLjE0OSAzLjE0OSAwIDAgMC0uODQyLjEyIiAvPgogIDxwYXRoIGQ9Ik05IDE0LjZWMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/beer-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BeerOff: IconNode = [\n ['path', { d: 'M13 13v5' }],\n ['path', { d: 'M17 11.47V8' }],\n ['path', { d: 'M17 11h1a3 3 0 0 1 2.745 4.211' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-3' }],\n ['path', { d: 'M7.536 7.535C6.766 7.649 6.154 8 5.5 8a2.5 2.5 0 0 1-1.768-4.268' }],\n [\n 'path',\n {\n d: 'M8.727 3.204C9.306 2.767 9.885 2 11 2c1.56 0 2 1.5 3 1.5s1.72-.5 2.5-.5a1 1 0 1 1 0 5c-.78 0-1.5-.5-2.5-.5a3.149 3.149 0 0 0-.842.12',\n },\n ],\n ['path', { d: 'M9 14.6V18' }],\n];\n\nexport default BeerOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name beer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xIiAvPgogIDxwYXRoIGQ9Ik05IDEydjYiIC8+CiAgPHBhdGggZD0iTTEzIDEydjYiIC8+CiAgPHBhdGggZD0iTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVoiIC8+CiAgPHBhdGggZD0iTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/beer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Beer: IconNode = [\n ['path', { d: 'M17 11h1a3 3 0 0 1 0 6h-1' }],\n ['path', { d: 'M9 12v6' }],\n ['path', { d: 'M13 12v6' }],\n [\n 'path',\n {\n d: 'M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z',\n },\n ],\n ['path', { d: 'M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8' }],\n];\n\nexport default Beer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0xMS42OCAyLjAwOUE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M2MtLjgyNC0uODUtMS42NzgtMS43MzEtMi4yMS0zLjM0OCIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjUiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bell-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellDot: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n [\n 'path',\n {\n d: 'M11.68 2.009A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673c-.824-.85-1.678-1.731-2.21-3.348',\n },\n ],\n ['circle', { cx: '18', cy: '5', r: '3' }],\n];\n\nexport default BellDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-electric\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguNTE4IDE3LjM0N0E3IDcgMCAwIDEgMTQgMTkiIC8+CiAgPHBhdGggZD0iTTE4LjggNEExMSAxMSAwIDAgMSAyMCA5IiAvPgogIDxwYXRoIGQ9Ik05IDloLjAxIiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMTYiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjciIC8+CiAgPHJlY3QgeD0iNCIgeT0iMTYiIHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bell-electric\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellElectric: IconNode = [\n ['path', { d: 'M18.518 17.347A7 7 0 0 1 14 19' }],\n ['path', { d: 'M18.8 4A11 11 0 0 1 20 9' }],\n ['path', { d: 'M9 9h.01' }],\n ['circle', { cx: '20', cy: '16', r: '2' }],\n ['circle', { cx: '9', cy: '9', r: '7' }],\n ['rect', { x: '4', y: '16', width: '10', height: '6', rx: '2' }],\n];\n\nexport default BellElectric;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0xNSA4aDYiIC8+CiAgPHBhdGggZD0iTTE2LjI0MyAzLjc1N0E2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0E5LjQgOS40IDAgMCAxIDE4LjY2NyAxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bell-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellMinus: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n ['path', { d: 'M15 8h6' }],\n [\n 'path',\n {\n d: 'M16.243 3.757A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673A9.4 9.4 0 0 1 18.667 12',\n },\n ],\n];\n\nexport default BellMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0xNyAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSAuMjU4LTEuNzQyIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTguNjY4IDMuMDFBNiA2IDAgMCAxIDE4IDhjMCAyLjY4Ny43NyA0LjY1MyAxLjcwNyA2LjA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bell-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellOff: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n ['path', { d: 'M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05' }],\n];\n\nexport default BellOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0xNSA4aDYiIC8+CiAgPHBhdGggZD0iTTE4IDV2NiIgLz4KICA8cGF0aCBkPSJNMjAuMDAyIDE0LjQ2NGE5IDkgMCAwIDAgLjczOC44NjNBMSAxIDAgMCAxIDIwIDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIDguNzUtNS4zMzIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bell-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellPlus: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n ['path', { d: 'M15 8h6' }],\n ['path', { d: 'M18 5v6' }],\n [\n 'path',\n {\n d: 'M20.002 14.464a9 9 0 0 0 .738.863A1 1 0 0 1 20 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 8.75-5.332',\n },\n ],\n];\n\nexport default BellPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-ring\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0yMiA4YzAtMi4zLS44LTQuMy0yLTYiIC8+CiAgPHBhdGggZD0iTTMuMjYyIDE1LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQzE5LjQxIDEzLjk1NiAxOCAxMi40OTkgMTggOEE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjYiIC8+CiAgPHBhdGggZD0iTTQgMkMyLjggMy43IDIgNS43IDIgOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bell-ring\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellRing: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n ['path', { d: 'M22 8c0-2.3-.8-4.3-2-6' }],\n [\n 'path',\n {\n d: 'M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326',\n },\n ],\n ['path', { d: 'M4 2C2.8 3.7 2 5.7 2 8' }],\n];\n\nexport default BellRing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bell\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bell: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n [\n 'path',\n {\n d: 'M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326',\n },\n ],\n];\n\nexport default Bell;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name between-horizontal-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTMiIGhlaWdodD0iNyIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0ibTIyIDE1LTMtMyAzLTMiIC8+CiAgPHJlY3Qgd2lkdGg9IjEzIiBoZWlnaHQ9IjciIHg9IjMiIHk9IjE0IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/between-horizontal-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BetweenHorizontalEnd: IconNode = [\n ['rect', { width: '13', height: '7', x: '3', y: '3', rx: '1' }],\n ['path', { d: 'm22 15-3-3 3-3' }],\n ['rect', { width: '13', height: '7', x: '3', y: '14', rx: '1' }],\n];\n\nexport default BetweenHorizontalEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name between-horizontal-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTMiIGhlaWdodD0iNyIgeD0iOCIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0ibTIgOSAzIDMtMyAzIiAvPgogIDxyZWN0IHdpZHRoPSIxMyIgaGVpZ2h0PSI3IiB4PSI4IiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/between-horizontal-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BetweenHorizontalStart: IconNode = [\n ['rect', { width: '13', height: '7', x: '8', y: '3', rx: '1' }],\n ['path', { d: 'm2 9 3 3-3 3' }],\n ['rect', { width: '13', height: '7', x: '8', y: '14', rx: '1' }],\n];\n\nexport default BetweenHorizontalStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name between-vertical-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxMyIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0ibTkgMjIgMy0zIDMgMyIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxMyIgeD0iMTQiIHk9IjMiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/between-vertical-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BetweenVerticalEnd: IconNode = [\n ['rect', { width: '7', height: '13', x: '3', y: '3', rx: '1' }],\n ['path', { d: 'm9 22 3-3 3 3' }],\n ['rect', { width: '7', height: '13', x: '14', y: '3', rx: '1' }],\n];\n\nexport default BetweenVerticalEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name between-vertical-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxMyIgeD0iMyIgeT0iOCIgcng9IjEiIC8+CiAgPHBhdGggZD0ibTE1IDItMyAzLTMtMyIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxMyIgeD0iMTQiIHk9IjgiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/between-vertical-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BetweenVerticalStart: IconNode = [\n ['rect', { width: '7', height: '13', x: '3', y: '8', rx: '1' }],\n ['path', { d: 'm15 2-3 3-3-3' }],\n ['rect', { width: '7', height: '13', x: '14', y: '8', rx: '1' }],\n];\n\nexport default BetweenVerticalStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name biceps-flexed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNDA5IDEzLjAxN0E1IDUgMCAwIDEgMjIgMTVjMCAzLjg2Ni00IDctOSA3LTQuMDc3IDAtOC4xNTMtLjgyLTEwLjM3MS0yLjQ2Mi0uNDI2LS4zMTYtLjYzMS0uODMyLS42Mi0xLjM2MkMyLjExOCAxMi43MjMgMi42MjcgMiAxMCAyYTMgMyAwIDAgMSAzIDMgMiAyIDAgMCAxLTIgMmMtMS4xMDUgMC0xLjY0LS40NDQtMi0xIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNGE1IDUgMCAwIDAtNy41ODQgMiIgLz4KICA8cGF0aCBkPSJNOS45NjQgNi44MjVDOC4wMTkgNy45NzcgOS41IDEzIDggMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/biceps-flexed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BicepsFlexed: IconNode = [\n [\n 'path',\n {\n d: 'M12.409 13.017A5 5 0 0 1 22 15c0 3.866-4 7-9 7-4.077 0-8.153-.82-10.371-2.462-.426-.316-.631-.832-.62-1.362C2.118 12.723 2.627 2 10 2a3 3 0 0 1 3 3 2 2 0 0 1-2 2c-1.105 0-1.64-.444-2-1',\n },\n ],\n ['path', { d: 'M15 14a5 5 0 0 0-7.584 2' }],\n ['path', { d: 'M9.964 6.825C8.019 7.977 9.5 13 8 15' }],\n];\n\nexport default BicepsFlexed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bike\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOC41IiBjeT0iMTcuNSIgcj0iMy41IiAvPgogIDxjaXJjbGUgY3g9IjUuNSIgY3k9IjE3LjUiIHI9IjMuNSIgLz4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjUiIHI9IjEiIC8+CiAgPHBhdGggZD0iTTEyIDE3LjVWMTRsLTMtMyA0LTMgMiAzaDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bike\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bike: IconNode = [\n ['circle', { cx: '18.5', cy: '17.5', r: '3.5' }],\n ['circle', { cx: '5.5', cy: '17.5', r: '3.5' }],\n ['circle', { cx: '15', cy: '5', r: '1' }],\n ['path', { d: 'M12 17.5V14l-3-3 4-3 2 3h2' }],\n];\n\nexport default Bike;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name binary\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiIHJ4PSIyIiAvPgogIDxyZWN0IHg9IjYiIHk9IjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik02IDIwaDQiIC8+CiAgPHBhdGggZD0iTTE0IDEwaDQiIC8+CiAgPHBhdGggZD0iTTYgMTRoMnY2IiAvPgogIDxwYXRoIGQ9Ik0xNCA0aDJ2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/binary\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Binary: IconNode = [\n ['rect', { x: '14', y: '14', width: '4', height: '6', rx: '2' }],\n ['rect', { x: '6', y: '4', width: '4', height: '6', rx: '2' }],\n ['path', { d: 'M6 20h4' }],\n ['path', { d: 'M14 10h4' }],\n ['path', { d: 'M6 14h2v6' }],\n ['path', { d: 'M14 4h2v6' }],\n];\n\nexport default Binary;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name binoculars\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTBoNCIgLz4KICA8cGF0aCBkPSJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMWEyIDIgMCAwIDAgMi0ydi0zLjg1MWMwLTEuMzktMi0yLjk2Mi0yLTQuODI5VjhhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjExYTIgMiAwIDAgMCAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0gMjIgMTYgTCAyIDE2IiAvPgogIDxwYXRoIGQ9Ik00IDIxYTIgMiAwIDAgMS0yLTJ2LTMuODUxYzAtMS4zOSAyLTIuOTYyIDItNC44MjlWOGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYxMWEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNOSA3VjRhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/binoculars\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Binoculars: IconNode = [\n ['path', { d: 'M10 10h4' }],\n ['path', { d: 'M19 7V4a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3' }],\n [\n 'path',\n {\n d: 'M20 21a2 2 0 0 0 2-2v-3.851c0-1.39-2-2.962-2-4.829V8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v11a2 2 0 0 0 2 2z',\n },\n ],\n ['path', { d: 'M 22 16 L 2 16' }],\n [\n 'path',\n {\n d: 'M4 21a2 2 0 0 1-2-2v-3.851c0-1.39 2-2.962 2-4.829V8a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M9 7V4a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v3' }],\n];\n\nexport default Binoculars;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name biohazard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjExLjkiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTYuNyAzLjRjLS45IDIuNSAwIDUuMiAyLjIgNi43QzYuNSA5IDMuNyA5LjYgMiAxMS42IiAvPgogIDxwYXRoIGQ9Im04LjkgMTAuMSAxLjQuOCIgLz4KICA8cGF0aCBkPSJNMTcuMyAzLjRjLjkgMi41IDAgNS4yLTIuMiA2LjcgMi40LTEuMiA1LjItLjYgNi45IDEuNSIgLz4KICA8cGF0aCBkPSJtMTUuMSAxMC4xLTEuNC44IiAvPgogIDxwYXRoIGQ9Ik0xNi43IDIwLjhjLTIuNi0uNC00LjYtMi42LTQuNy01LjMtLjIgMi42LTIuMSA0LjgtNC43IDUuMiIgLz4KICA8cGF0aCBkPSJNMTIgMTMuOXYxLjYiIC8+CiAgPHBhdGggZD0iTTEzLjUgNS40Yy0xLS4yLTItLjItMyAwIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNi40Yy43LS43IDEuMi0xLjYgMS41LTIuNSIgLz4KICA8cGF0aCBkPSJNNS41IDEzLjljLjMuOS44IDEuOCAxLjUgMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/biohazard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Biohazard: IconNode = [\n ['circle', { cx: '12', cy: '11.9', r: '2' }],\n ['path', { d: 'M6.7 3.4c-.9 2.5 0 5.2 2.2 6.7C6.5 9 3.7 9.6 2 11.6' }],\n ['path', { d: 'm8.9 10.1 1.4.8' }],\n ['path', { d: 'M17.3 3.4c.9 2.5 0 5.2-2.2 6.7 2.4-1.2 5.2-.6 6.9 1.5' }],\n ['path', { d: 'm15.1 10.1-1.4.8' }],\n ['path', { d: 'M16.7 20.8c-2.6-.4-4.6-2.6-4.7-5.3-.2 2.6-2.1 4.8-4.7 5.2' }],\n ['path', { d: 'M12 13.9v1.6' }],\n ['path', { d: 'M13.5 5.4c-1-.2-2-.2-3 0' }],\n ['path', { d: 'M17 16.4c.7-.7 1.2-1.6 1.5-2.5' }],\n ['path', { d: 'M5.5 13.9c.3.9.8 1.8 1.5 2.5' }],\n];\n\nexport default Biohazard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bird\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgN2guMDEiIC8+CiAgPHBhdGggZD0iTTMuNCAxOEgxMmE4IDggMCAwIDAgOC04VjdhNCA0IDAgMCAwLTcuMjgtMi4zTDIgMjAiIC8+CiAgPHBhdGggZD0ibTIwIDcgMiAuNS0yIC41IiAvPgogIDxwYXRoIGQ9Ik0xMCAxOHYzIiAvPgogIDxwYXRoIGQ9Ik0xNCAxNy43NVYyMSIgLz4KICA8cGF0aCBkPSJNNyAxOGE2IDYgMCAwIDAgMy44NC0xMC42MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bird\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bird: IconNode = [\n ['path', { d: 'M16 7h.01' }],\n ['path', { d: 'M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20' }],\n ['path', { d: 'm20 7 2 .5-2 .5' }],\n ['path', { d: 'M10 18v3' }],\n ['path', { d: 'M14 17.75V21' }],\n ['path', { d: 'M7 18a6 6 0 0 0 3.84-10.61' }],\n];\n\nexport default Bird;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name birdhouse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTh2NCIgLz4KICA8cGF0aCBkPSJtMTcgMTggMS45NTYtMTEuNDY4IiAvPgogIDxwYXRoIGQ9Im0zIDggNy44Mi01LjYxNWEyIDIgMCAwIDEgMi4zNiAwTDIxIDgiIC8+CiAgPHBhdGggZD0iTTQgMThoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTggNS4wNDQgNi41MzIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/birdhouse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Birdhouse: IconNode = [\n ['path', { d: 'M12 18v4' }],\n ['path', { d: 'm17 18 1.956-11.468' }],\n ['path', { d: 'm3 8 7.82-5.615a2 2 0 0 1 2.36 0L21 8' }],\n ['path', { d: 'M4 18h16' }],\n ['path', { d: 'M7 18 5.044 6.532' }],\n ['circle', { cx: '12', cy: '10', r: '2' }],\n];\n\nexport default Birdhouse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bitcoin\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNzY3IDE5LjA4OWM0LjkyNC44NjggNi4xNC02LjAyNSAxLjIxNi02Ljg5NG0tMS4yMTYgNi44OTRMNS44NiAxOC4wNDdtNS45MDggMS4wNDItLjM0NyAxLjk3bTEuNTYzLTguODY0YzQuOTI0Ljg2OSA2LjE0LTYuMDI1IDEuMjE1LTYuODkzbS0xLjIxNSA2Ljg5My0zLjk0LS42OTRtNS4xNTUtNi4yTDguMjkgNC4yNm01LjkwOCAxLjA0Mi4zNDgtMS45N003LjQ4IDIwLjM2NGwzLjEyNi0xNy43MjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bitcoin\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bitcoin: IconNode = [\n [\n 'path',\n {\n d: 'M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727',\n },\n ],\n];\n\nexport default Bitcoin;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name blend\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iNyIgLz4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjE1IiByPSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/blend\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Blend: IconNode = [\n ['circle', { cx: '9', cy: '9', r: '7' }],\n ['circle', { cx: '15', cy: '15', r: '7' }],\n];\n\nexport default Blend;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name blinds\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzaDE4IiAvPgogIDxwYXRoIGQ9Ik0yMCA3SDgiIC8+CiAgPHBhdGggZD0iTTIwIDExSDgiIC8+CiAgPHBhdGggZD0iTTEwIDE5aDEwIiAvPgogIDxwYXRoIGQ9Ik04IDE1aDEyIiAvPgogIDxwYXRoIGQ9Ik00IDN2MTQiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjE5IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/blinds\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Blinds: IconNode = [\n ['path', { d: 'M3 3h18' }],\n ['path', { d: 'M20 7H8' }],\n ['path', { d: 'M20 11H8' }],\n ['path', { d: 'M10 19h10' }],\n ['path', { d: 'M8 15h12' }],\n ['path', { d: 'M4 3v14' }],\n ['circle', { cx: '4', cy: '19', r: '2' }],\n];\n\nexport default Blinds;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bluetooth-connected\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3IiAvPgogIDxsaW5lIHgxPSIxOCIgeDI9IjIxIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMyIgeDI9IjYiIHkxPSIxMiIgeTI9IjEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bluetooth-connected\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BluetoothConnected: IconNode = [\n ['path', { d: 'm7 7 10 10-5 5V2l5 5L7 17' }],\n ['line', { x1: '18', x2: '21', y1: '12', y2: '12' }],\n ['line', { x1: '3', x2: '6', y1: '12', y2: '12' }],\n];\n\nexport default BluetoothConnected;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name blocks\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjJWN2ExIDEgMCAwIDAtMS0xSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTVhMSAxIDAgMCAwLTEtMUgyIiAvPgogIDxyZWN0IHg9IjE0IiB5PSIyIiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/blocks\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Blocks: IconNode = [\n [\n 'path',\n {\n d: 'M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2',\n },\n ],\n ['rect', { x: '14', y: '2', width: '8', height: '8', rx: '1' }],\n];\n\nexport default Blocks;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bluetooth-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTctNSA1VjEybC01IDUiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMTQuNSA5LjUgMTcgN2wtNS01djQuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bluetooth-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BluetoothOff: IconNode = [\n ['path', { d: 'm17 17-5 5V12l-5 5' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M14.5 9.5 17 7l-5-5v4.5' }],\n];\n\nexport default BluetoothOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bluetooth-searching\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3IiAvPgogIDxwYXRoIGQ9Ik0yMC44MyAxNC44M2E0IDQgMCAwIDAgMC01LjY2IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bluetooth-searching\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BluetoothSearching: IconNode = [\n ['path', { d: 'm7 7 10 10-5 5V2l5 5L7 17' }],\n ['path', { d: 'M20.83 14.83a4 4 0 0 0 0-5.66' }],\n ['path', { d: 'M18 12h.01' }],\n];\n\nexport default BluetoothSearching;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bold\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxMmg5YTQgNCAwIDAgMSAwIDhIN2ExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMWg3YTQgNCAwIDAgMSAwIDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bold\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bold: IconNode = [\n ['path', { d: 'M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8' }],\n];\n\nexport default Bold;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bluetooth\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bluetooth\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bluetooth: IconNode = [['path', { d: 'm7 7 10 10-5 5V2l5 5L7 17' }]];\n\nexport default Bluetooth;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bomb\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjEzIiByPSI5IiAvPgogIDxwYXRoIGQ9Ik0xNC4zNSA0LjY1IDE2LjMgMi43YTIuNDEgMi40MSAwIDAgMSAzLjQgMGwxLjYgMS42YTIuNCAyLjQgMCAwIDEgMCAzLjRsLTEuOTUgMS45NSIgLz4KICA8cGF0aCBkPSJtMjIgMi0xLjUgMS41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bomb\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bomb: IconNode = [\n ['circle', { cx: '11', cy: '13', r: '9' }],\n [\n 'path',\n { d: 'M14.35 4.65 16.3 2.7a2.41 2.41 0 0 1 3.4 0l1.6 1.6a2.4 2.4 0 0 1 0 3.4l-1.95 1.95' },\n ],\n ['path', { d: 'm22 2-1.5 1.5' }],\n];\n\nexport default Bomb;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bolt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bolt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bolt: IconNode = [\n [\n 'path',\n {\n d: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n];\n\nexport default Bolt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTBjLjctLjcgMS42OSAwIDIuNSAwYTIuNSAyLjUgMCAxIDAgMC01IC41LjUgMCAwIDEtLjUtLjUgMi41IDIuNSAwIDEgMC01IDBjMCAuODEuNyAxLjggMCAyLjVsLTcgN2MtLjcuNy0xLjY5IDAtMi41IDBhMi41IDIuNSAwIDAgMCAwIDVjLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAxIDAgNSAwYzAtLjgxLS43LTEuOCAwLTIuNVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bone: IconNode = [\n [\n 'path',\n {\n d: 'M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z',\n },\n ],\n];\n\nexport default Bone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-a\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJtOCAxMyA0LTcgNCA3IiAvPgogIDxwYXRoIGQ9Ik05LjEgMTFoNS43IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-a\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookA: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'm8 13 4-7 4 7' }],\n ['path', { d: 'M9.1 11h5.7' }],\n];\n\nexport default BookA;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiA2djMiIC8+CiAgPHBhdGggZD0iTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookAlert: IconNode = [\n ['path', { d: 'M12 13h.01' }],\n ['path', { d: 'M12 6v3' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n];\n\nexport default BookAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJtOSA5LjUgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookCheck: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'm9 9.5 2 2 4-4' }],\n];\n\nexport default BookCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-audio\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY3IiAvPgogIDxwYXRoIGQ9Ik0xNiA4djMiIC8+CiAgPHBhdGggZD0iTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIC8+CiAgPHBhdGggZD0iTTggOHYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-audio\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookAudio: IconNode = [\n ['path', { d: 'M12 6v7' }],\n ['path', { d: 'M16 8v3' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'M8 8v3' }],\n];\n\nexport default BookAudio;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-copy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA3YTIgMiAwIDAgMC0yIDJ2MTEiIC8+CiAgPHBhdGggZD0iTTUuODAzIDE4SDVhMiAyIDAgMCAwIDAgNGg5LjVhLjUuNSAwIDAgMCAuNS0uNVYyMSIgLz4KICA8cGF0aCBkPSJNOSAxNVY0YTIgMiAwIDAgMSAyLTJoOS41YS41LjUgMCAwIDEgLjUuNXYxNGEuNS41IDAgMCAxLS41LjVIMTFhMiAyIDAgMCAxIDAtNGgxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-copy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookCopy: IconNode = [\n ['path', { d: 'M5 7a2 2 0 0 0-2 2v11' }],\n ['path', { d: 'M5.803 18H5a2 2 0 0 0 0 4h9.5a.5.5 0 0 0 .5-.5V21' }],\n [\n 'path',\n { d: 'M9 15V4a2 2 0 0 1 2-2h9.5a.5.5 0 0 1 .5.5v14a.5.5 0 0 1-.5.5H11a2 2 0 0 1 0-4h10' },\n ],\n];\n\nexport default BookCopy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTdoMS41IiAvPgogIDxwYXRoIGQ9Ik0xMiAyMmgxLjUiIC8+CiAgPHBhdGggZD0iTTEyIDJoMS41IiAvPgogIDxwYXRoIGQ9Ik0xNy41IDIySDE5YTEgMSAwIDAgMCAxLTEiIC8+CiAgPHBhdGggZD0iTTE3LjUgMkgxOWExIDEgMCAwIDEgMSAxdjEuNSIgLz4KICA8cGF0aCBkPSJNMjAgMTR2M2gtMi41IiAvPgogIDxwYXRoIGQ9Ik0yMCA4LjVWMTAiIC8+CiAgPHBhdGggZD0iTTQgMTBWOC41IiAvPgogIDxwYXRoIGQ9Ik00IDE5LjVWMTQiIC8+CiAgPHBhdGggZD0iTTQgNC41QTIuNSAyLjUgMCAwIDEgNi41IDJIOCIgLz4KICA8cGF0aCBkPSJNOCAyMkg2LjVhMSAxIDAgMCAxIDAtNUg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookDashed: IconNode = [\n ['path', { d: 'M12 17h1.5' }],\n ['path', { d: 'M12 22h1.5' }],\n ['path', { d: 'M12 2h1.5' }],\n ['path', { d: 'M17.5 22H19a1 1 0 0 0 1-1' }],\n ['path', { d: 'M17.5 2H19a1 1 0 0 1 1 1v1.5' }],\n ['path', { d: 'M20 14v3h-2.5' }],\n ['path', { d: 'M20 8.5V10' }],\n ['path', { d: 'M4 10V8.5' }],\n ['path', { d: 'M4 19.5V14' }],\n ['path', { d: 'M4 4.5A2.5 2.5 0 0 1 6.5 2H8' }],\n ['path', { d: 'M8 22H6.5a1 1 0 0 1 0-5H8' }],\n];\n\nexport default BookDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNWNyIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJtOSAxMCAzIDMgMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookDown: IconNode = [\n ['path', { d: 'M12 13V7' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'm9 10 3 3 3-3' }],\n];\n\nexport default BookDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-headphones\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJNOCAxMnYtMmE0IDQgMCAwIDEgOCAwdjIiIC8+CiAgPGNpcmNsZSBjeD0iMTUiIGN5PSIxMiIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-headphones\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookHeadphones: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'M8 12v-2a4 4 0 0 1 8 0v2' }],\n ['circle', { cx: '15', cy: '12', r: '1' }],\n ['circle', { cx: '9', cy: '12', r: '1' }],\n];\n\nexport default BookHeadphones;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJNOC42MiA5LjhBMi4yNSAyLjI1IDAgMSAxIDEyIDYuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookHeart: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n [\n 'path',\n {\n d: 'M8.62 9.8A2.25 2.25 0 1 1 12 6.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z',\n },\n ],\n];\n\nexport default BookHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-image\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjAgMTMuNy0yLjEtMi4xYTIgMiAwIDAgMC0yLjggMEw5LjcgMTciIC8+CiAgPHBhdGggZD0iTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-image\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookImage: IconNode = [\n ['path', { d: 'm20 13.7-2.1-2.1a2 2 0 0 0-2.8 0L9.7 17' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['circle', { cx: '10', cy: '8', r: '2' }],\n];\n\nexport default BookImage;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMkg2LjVBMi41IDIuNSAwIDAgMCA0IDQuNXYxNSIgLz4KICA8cGF0aCBkPSJNMTcgMnY2IiAvPgogIDxwYXRoIGQ9Ik0xNyA0aDIiIC8+CiAgPHBhdGggZD0iTTIwIDE1LjJWMjFhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjEwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookKey: IconNode = [\n ['path', { d: 'M13 2H6.5A2.5 2.5 0 0 0 4 4.5v15' }],\n ['path', { d: 'M17 2v6' }],\n ['path', { d: 'M17 4h2' }],\n ['path', { d: 'M20 15.2V21a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' }],\n ['circle', { cx: '17', cy: '10', r: '2' }],\n];\n\nexport default BookKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNlY0YTIgMiAwIDEgMC00IDB2MiIgLz4KICA8cGF0aCBkPSJNMjAgMTV2NmExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiAvPgogIDxwYXRoIGQ9Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTAiIC8+CiAgPHJlY3QgeD0iMTIiIHk9IjYiIHdpZHRoPSI4IiBoZWlnaHQ9IjUiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookLock: IconNode = [\n ['path', { d: 'M18 6V4a2 2 0 1 0-4 0v2' }],\n ['path', { d: 'M20 15v6a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' }],\n ['path', { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H10' }],\n ['rect', { x: '12', y: '6', width: '8', height: '5', rx: '1' }],\n];\n\nexport default BookLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-marked\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnY4bDMtMyAzIDNWMiIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-marked\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookMarked: IconNode = [\n ['path', { d: 'M10 2v8l3-3 3 3V2' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n];\n\nexport default BookMarked;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJNOSAxMGg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookMinus: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'M9 10h6' }],\n];\n\nexport default BookMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-open-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjFWNyIgLz4KICA8cGF0aCBkPSJtMTYgMTIgMiAyIDQtNCIgLz4KICA8cGF0aCBkPSJNMjIgNlY0YTEgMSAwIDAgMC0xLTFoLTVhNCA0IDAgMCAwLTQgNCA0IDQgMCAwIDAtNC00SDNhMSAxIDAgMCAwLTEgMXYxM2ExIDEgMCAwIDAgMSAxaDZhMyAzIDAgMCAxIDMgMyAzIDMgMCAwIDEgMy0zaDZhMSAxIDAgMCAwIDEtMXYtMS4zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-open-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookOpenCheck: IconNode = [\n ['path', { d: 'M12 21V7' }],\n ['path', { d: 'm16 12 2 2 4-4' }],\n [\n 'path',\n {\n d: 'M22 6V4a1 1 0 0 0-1-1h-5a4 4 0 0 0-4 4 4 4 0 0 0-4-4H3a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h6a3 3 0 0 1 3 3 3 3 0 0 1 3-3h6a1 1 0 0 0 1-1v-1.3',\n },\n ],\n];\n\nexport default BookOpenCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-open-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3YxNCIgLz4KICA8cGF0aCBkPSJNMTYgMTJoMiIgLz4KICA8cGF0aCBkPSJNMTYgOGgyIiAvPgogIDxwYXRoIGQ9Ik0zIDE4YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDVhNCA0IDAgMCAxIDQgNCA0IDQgMCAwIDEgNC00aDVhMSAxIDAgMCAxIDEgMXYxM2ExIDEgMCAwIDEtMSAxaC02YTMgMyAwIDAgMC0zIDMgMyAzIDAgMCAwLTMtM3oiIC8+CiAgPHBhdGggZD0iTTYgMTJoMiIgLz4KICA8cGF0aCBkPSJNNiA4aDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-open-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookOpenText: IconNode = [\n ['path', { d: 'M12 7v14' }],\n ['path', { d: 'M16 12h2' }],\n ['path', { d: 'M16 8h2' }],\n [\n 'path',\n {\n d: 'M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z',\n },\n ],\n ['path', { d: 'M6 12h2' }],\n ['path', { d: 'M6 8h2' }],\n];\n\nexport default BookOpenText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3YxNCIgLz4KICA8cGF0aCBkPSJNMyAxOGExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg1YTQgNCAwIDAgMSA0IDQgNCA0IDAgMCAxIDQtNGg1YTEgMSAwIDAgMSAxIDF2MTNhMSAxIDAgMCAxLTEgMWgtNmEzIDMgMCAwIDAtMyAzIDMgMyAwIDAgMC0zLTN6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookOpen: IconNode = [\n ['path', { d: 'M12 7v14' }],\n [\n 'path',\n {\n d: 'M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z',\n },\n ],\n];\n\nexport default BookOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y2IiAvPgogIDxwYXRoIGQ9Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiAvPgogIDxwYXRoIGQ9Ik05IDEwaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookPlus: IconNode = [\n ['path', { d: 'M12 7v6' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'M9 10h6' }],\n];\n\nexport default BookPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjJINS41YTEgMSAwIDAgMSAwLTVoNC41MDEiIC8+CiAgPHBhdGggZD0ibTIxIDIyLTEuODc5LTEuODc4IiAvPgogIDxwYXRoIGQ9Ik0zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4IiAvPgogIDxjaXJjbGUgY3g9IjE3IiBjeT0iMTgiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookSearch: IconNode = [\n ['path', { d: 'M11 22H5.5a1 1 0 0 1 0-5h4.501' }],\n ['path', { d: 'm21 22-1.879-1.878' }],\n ['path', { d: 'M3 19.5v-15A2.5 2.5 0 0 1 5.5 2H18a1 1 0 0 1 1 1v8' }],\n ['circle', { cx: '17', cy: '18', r: '3' }],\n];\n\nexport default BookSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJNOCAxMWg4IiAvPgogIDxwYXRoIGQ9Ik04IDdoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookText: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'M8 11h8' }],\n ['path', { d: 'M8 7h6' }],\n];\n\nexport default BookText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-type\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNoNCIgLz4KICA8cGF0aCBkPSJNMTIgNnY3IiAvPgogIDxwYXRoIGQ9Ik0xNiA4VjZIOHYyIiAvPgogIDxwYXRoIGQ9Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-type\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookType: IconNode = [\n ['path', { d: 'M10 13h4' }],\n ['path', { d: 'M12 6v7' }],\n ['path', { d: 'M16 8V6H8v2' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n];\n\nexport default BookType;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-up-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNWNyIgLz4KICA8cGF0aCBkPSJNMTggMmgxYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAyIiAvPgogIDxwYXRoIGQ9Im05IDEwIDMtMyAzIDMiIC8+CiAgPHBhdGggZD0ibTkgNSAzLTMgMyAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-up-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookUp2: IconNode = [\n ['path', { d: 'M12 13V7' }],\n ['path', { d: 'M18 2h1a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' }],\n ['path', { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2' }],\n ['path', { d: 'm9 10 3-3 3 3' }],\n ['path', { d: 'm9 5 3-3 3 3' }],\n];\n\nexport default BookUp2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNWNyIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJtOSAxMCAzLTMgMyAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookUp: IconNode = [\n ['path', { d: 'M12 13V7' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'm9 10 3-3 3 3' }],\n];\n\nexport default BookUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTNhMyAzIDAgMSAwLTYgMCIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjgiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookUser: IconNode = [\n ['path', { d: 'M15 13a3 3 0 1 0-6 0' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['circle', { cx: '12', cy: '8', r: '2' }],\n];\n\nexport default BookUser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuNSA3LTUgNSIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJtOS41IDcgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookX: IconNode = [\n ['path', { d: 'm14.5 7-5 5' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'm9.5 7 5 5' }],\n];\n\nexport default BookX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Book: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n];\n\nexport default Book;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IiAvPgogIDxwYXRoIGQ9Im05IDEwIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bookmark-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookmarkCheck: IconNode = [\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'm9 10 2 2 4-4' }],\n];\n\nexport default BookmarkCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTBIOSIgLz4KICA8cGF0aCBkPSJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bookmark-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookmarkMinus: IconNode = [\n ['path', { d: 'M15 10H9' }],\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n];\n\nexport default BookmarkMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y2IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMEg5IiAvPgogIDxwYXRoIGQ9Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bookmark-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookmarkPlus: IconNode = [\n ['path', { d: 'M12 7v6' }],\n ['path', { d: 'M15 10H9' }],\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n];\n\nexport default BookmarkPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuNSA3LjUtNSA1IiAvPgogIDxwYXRoIGQ9Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoiIC8+CiAgPHBhdGggZD0ibTkuNSA3LjUgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bookmark-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookmarkX: IconNode = [\n ['path', { d: 'm14.5 7.5-5 5' }],\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'm9.5 7.5 5 5' }],\n];\n\nexport default BookmarkX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bookmark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bookmark: IconNode = [\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n];\n\nexport default Bookmark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name boom-box\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA5VjVhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQiIC8+CiAgPHBhdGggZD0iTTggOHYxIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djEiIC8+CiAgPHBhdGggZD0iTTE2IDh2MSIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjkiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjgiIGN5PSIxNSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/boom-box\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BoomBox: IconNode = [\n ['path', { d: 'M4 9V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4' }],\n ['path', { d: 'M8 8v1' }],\n ['path', { d: 'M12 8v1' }],\n ['path', { d: 'M16 8v1' }],\n ['rect', { width: '20', height: '12', x: '2', y: '9', rx: '2' }],\n ['circle', { cx: '8', cy: '15', r: '2' }],\n ['circle', { cx: '16', cy: '15', r: '2' }],\n];\n\nexport default BoomBox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bot-message-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNlYySDgiIC8+CiAgPHBhdGggZD0iTTE1IDExdjIiIC8+CiAgPHBhdGggZD0iTTIgMTJoMiIgLz4KICA8cGF0aCBkPSJNMjAgMTJoMiIgLz4KICA8cGF0aCBkPSJNMjAgMTZhMiAyIDAgMCAxLTIgMkg4LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgNCAyMC4yODZWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik05IDExdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot-message-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BotMessageSquare: IconNode = [\n ['path', { d: 'M12 6V2H8' }],\n ['path', { d: 'M15 11v2' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'M20 12h2' }],\n [\n 'path',\n {\n d: 'M20 16a2 2 0 0 1-2 2H8.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 4 20.286V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M9 11v2' }],\n];\n\nexport default BotMessageSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOFY0SDgiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiB4PSI0IiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05IDEzdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bot: IconNode = [\n ['path', { d: 'M12 8V4H8' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2' }],\n ['path', { d: 'M2 14h2' }],\n ['path', { d: 'M20 14h2' }],\n ['path', { d: 'M15 13v2' }],\n ['path', { d: 'M9 13v2' }],\n];\n\nexport default Bot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bot-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNjcgOEgxOGEyIDIgMCAwIDEgMiAydjQuMzMiIC8+CiAgPHBhdGggZD0iTTIgMTRoMiIgLz4KICA8cGF0aCBkPSJNMjAgMTRoMiIgLz4KICA8cGF0aCBkPSJNMjIgMjIgMiAyIiAvPgogIDxwYXRoIGQ9Ik04IDhINmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMS40MTQtLjU4NiIgLz4KICA8cGF0aCBkPSJNOSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05LjY3IDRIMTJ2Mi4zMyIgLz4KPC9zdmc+) - https://lucide.dev/icons/bot-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BotOff: IconNode = [\n ['path', { d: 'M13.67 8H18a2 2 0 0 1 2 2v4.33' }],\n ['path', { d: 'M2 14h2' }],\n ['path', { d: 'M20 14h2' }],\n ['path', { d: 'M22 22 2 2' }],\n ['path', { d: 'M8 8H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 1.414-.586' }],\n ['path', { d: 'M9 13v2' }],\n ['path', { d: 'M9.67 4H12v2.33' }],\n];\n\nexport default BotOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bottle-wine\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgM2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTYgNiAwIDAgMCAxLjIgMy42bC42LjhBNiA2IDAgMCAxIDE3IDEzdjhhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LThhNiA2IDAgMCAxIDEuMi0zLjZsLjYtLjhBNiA2IDAgMCAwIDEwIDV6IiAvPgogIDxwYXRoIGQ9Ik0xNyAxM2gtNGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bottle-wine\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BottleWine: IconNode = [\n [\n 'path',\n {\n d: 'M10 3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a6 6 0 0 0 1.2 3.6l.6.8A6 6 0 0 1 17 13v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a6 6 0 0 1 1.2-3.6l.6-.8A6 6 0 0 0 10 5z',\n },\n ],\n ['path', { d: 'M17 13h-4a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h4' }],\n];\n\nexport default BottleWine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bow-arrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2g0djQiIC8+CiAgPHBhdGggZD0iTTE4LjU3NSAxMS4wODJhMTMgMTMgMCAwIDEgMS4wNDggOS4wMjcgMS4xNyAxLjE3IDAgMCAxLTEuOTE0LjU5N0wxNCAxNyIgLz4KICA8cGF0aCBkPSJNNyAxMCAzLjI5IDYuMjlhMS4xNyAxLjE3IDAgMCAxIC42LTEuOTEgMTMgMTMgMCAwIDEgOS4wMyAxLjA1IiAvPgogIDxwYXRoIGQ9Ik03IDE0YTEuNyAxLjcgMCAwIDAtMS4yMDcuNWwtMi42NDYgMi42NDZBLjUuNSAwIDAgMCAzLjUgMThINWExIDEgMCAwIDEgMSAxdjEuNWEuNS41IDAgMCAwIC44NTQuMzU0TDkuNSAxOC4yMDdBMS43IDEuNyAwIDAgMCAxMCAxN3YtMmExIDEgMCAwIDAtMS0xeiIgLz4KICA8cGF0aCBkPSJNOS43MDcgMTQuMjkzIDIxIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bow-arrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BowArrow: IconNode = [\n ['path', { d: 'M17 3h4v4' }],\n ['path', { d: 'M18.575 11.082a13 13 0 0 1 1.048 9.027 1.17 1.17 0 0 1-1.914.597L14 17' }],\n ['path', { d: 'M7 10 3.29 6.29a1.17 1.17 0 0 1 .6-1.91 13 13 0 0 1 9.03 1.05' }],\n [\n 'path',\n {\n d: 'M7 14a1.7 1.7 0 0 0-1.207.5l-2.646 2.646A.5.5 0 0 0 3.5 18H5a1 1 0 0 1 1 1v1.5a.5.5 0 0 0 .854.354L9.5 18.207A1.7 1.7 0 0 0 10 17v-2a1 1 0 0 0-1-1z',\n },\n ],\n ['path', { d: 'M9.707 14.293 21 3' }],\n];\n\nexport default BowArrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name box\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZaIiAvPgogIDxwYXRoIGQ9Im0zLjMgNyA4LjcgNSA4LjctNSIgLz4KICA8cGF0aCBkPSJNMTIgMjJWMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/box\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Box: IconNode = [\n [\n 'path',\n {\n d: 'M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z',\n },\n ],\n ['path', { d: 'm3.3 7 8.7 5 8.7-5' }],\n ['path', { d: 'M12 22V12' }],\n];\n\nexport default Box;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name boxes\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45NyAxMi45MkEyIDIgMCAwIDAgMiAxNC42M3YzLjI0YTIgMiAwIDAgMCAuOTcgMS43MWwzIDEuOGEyIDIgMCAwIDAgMi4wNiAwTDEyIDE5di01LjVsLTUtMy00LjAzIDIuNDJaIiAvPgogIDxwYXRoIGQ9Im03IDE2LjUtNC43NC0yLjg1IiAvPgogIDxwYXRoIGQ9Im03IDE2LjUgNS0zIiAvPgogIDxwYXRoIGQ9Ik03IDE2LjV2NS4xNyIgLz4KICA8cGF0aCBkPSJNMTIgMTMuNVYxOWwzLjk3IDIuMzhhMiAyIDAgMCAwIDIuMDYgMGwzLTEuOGEyIDIgMCAwIDAgLjk3LTEuNzF2LTMuMjRhMiAyIDAgMCAwLS45Ny0xLjcxTDE3IDEwLjVsLTUgM1oiIC8+CiAgPHBhdGggZD0ibTE3IDE2LjUtNS0zIiAvPgogIDxwYXRoIGQ9Im0xNyAxNi41IDQuNzQtMi44NSIgLz4KICA8cGF0aCBkPSJNMTcgMTYuNXY1LjE3IiAvPgogIDxwYXRoIGQ9Ik03Ljk3IDQuNDJBMiAyIDAgMCAwIDcgNi4xM3Y0LjM3bDUgMyA1LTNWNi4xM2EyIDIgMCAwIDAtLjk3LTEuNzFsLTMtMS44YTIgMiAwIDAgMC0yLjA2IDBsLTMgMS44WiIgLz4KICA8cGF0aCBkPSJNMTIgOCA3LjI2IDUuMTUiIC8+CiAgPHBhdGggZD0ibTEyIDggNC43NC0yLjg1IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMy41VjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/boxes\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Boxes: IconNode = [\n [\n 'path',\n {\n d: 'M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z',\n },\n ],\n ['path', { d: 'm7 16.5-4.74-2.85' }],\n ['path', { d: 'm7 16.5 5-3' }],\n ['path', { d: 'M7 16.5v5.17' }],\n [\n 'path',\n {\n d: 'M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z',\n },\n ],\n ['path', { d: 'm17 16.5-5-3' }],\n ['path', { d: 'm17 16.5 4.74-2.85' }],\n ['path', { d: 'M17 16.5v5.17' }],\n [\n 'path',\n {\n d: 'M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z',\n },\n ],\n ['path', { d: 'M12 8 7.26 5.15' }],\n ['path', { d: 'm12 8 4.74-2.85' }],\n ['path', { d: 'M12 13.5V8' }],\n];\n\nexport default Boxes;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name braces\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzSDdhMiAyIDAgMCAwLTIgMnY1YTIgMiAwIDAgMS0yIDIgMiAyIDAgMCAxIDIgMnY1YzAgMS4xLjkgMiAyIDJoMSIgLz4KICA8cGF0aCBkPSJNMTYgMjFoMWEyIDIgMCAwIDAgMi0ydi01YzAtMS4xLjktMiAyLTJhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMC0yLTJoLTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/braces\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Braces: IconNode = [\n ['path', { d: 'M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1' }],\n ['path', { d: 'M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1' }],\n];\n\nexport default Braces;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brackets\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2gzYTEgMSAwIDAgMSAxIDF2MTZhMSAxIDAgMCAxLTEgMWgtMyIgLz4KICA8cGF0aCBkPSJNOCAyMUg1YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brackets\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Brackets: IconNode = [\n ['path', { d: 'M16 3h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-3' }],\n ['path', { d: 'M8 21H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h3' }],\n];\n\nexport default Brackets;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brain-circuit\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNWEzIDMgMCAxIDAtNS45OTcuMTI1IDQgNCAwIDAgMC0yLjUyNiA1Ljc3IDQgNCAwIDAgMCAuNTU2IDYuNTg4QTQgNCAwIDEgMCAxMiAxOFoiIC8+CiAgPHBhdGggZD0iTTkgMTNhNC41IDQuNSAwIDAgMCAzLTQiIC8+CiAgPHBhdGggZD0iTTYuMDAzIDUuMTI1QTMgMyAwIDAgMCA2LjQwMSA2LjUiIC8+CiAgPHBhdGggZD0iTTMuNDc3IDEwLjg5NmE0IDQgMCAwIDEgLjU4NS0uMzk2IiAvPgogIDxwYXRoIGQ9Ik02IDE4YTQgNCAwIDAgMS0xLjk2Ny0uNTE2IiAvPgogIDxwYXRoIGQ9Ik0xMiAxM2g0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGg2YTIgMiAwIDAgMSAyIDJ2MSIgLz4KICA8cGF0aCBkPSJNMTIgOGg4IiAvPgogIDxwYXRoIGQ9Ik0xNiA4VjVhMiAyIDAgMCAxIDItMiIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjEzIiByPSIuNSIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMiIHI9Ii41IiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMjEiIHI9Ii41IiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iOCIgcj0iLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brain-circuit\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrainCircuit: IconNode = [\n [\n 'path',\n { d: 'M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z' },\n ],\n ['path', { d: 'M9 13a4.5 4.5 0 0 0 3-4' }],\n ['path', { d: 'M6.003 5.125A3 3 0 0 0 6.401 6.5' }],\n ['path', { d: 'M3.477 10.896a4 4 0 0 1 .585-.396' }],\n ['path', { d: 'M6 18a4 4 0 0 1-1.967-.516' }],\n ['path', { d: 'M12 13h4' }],\n ['path', { d: 'M12 18h6a2 2 0 0 1 2 2v1' }],\n ['path', { d: 'M12 8h8' }],\n ['path', { d: 'M16 8V5a2 2 0 0 1 2-2' }],\n ['circle', { cx: '16', cy: '13', r: '.5' }],\n ['circle', { cx: '18', cy: '3', r: '.5' }],\n ['circle', { cx: '20', cy: '21', r: '.5' }],\n ['circle', { cx: '20', cy: '8', r: '.5' }],\n];\n\nexport default BrainCircuit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brain-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyIgLz4KICA8cGF0aCBkPSJtMTAuODUyIDkuMjI4LS4zODMtLjkyMyIgLz4KICA8cGF0aCBkPSJtMTMuMTQ4IDE0Ljc3Mi4zODIuOTI0IiAvPgogIDxwYXRoIGQ9Im0xMy41MzEgOC4zMDUtLjM4My45MjMiIC8+CiAgPHBhdGggZD0ibTE0Ljc3MiAxMC44NTIuOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE0Ljc3MiAxMy4xNDguOTIzLjM4MyIgLz4KICA8cGF0aCBkPSJNMTcuNTk4IDYuNUEzIDMgMCAxIDAgMTIgNWEzIDMgMCAwIDAtNS42My0xLjQ0NiAzIDMgMCAwIDAtLjM2OCAxLjU3MSA0IDQgMCAwIDAtMi41MjUgNS43NzEiIC8+CiAgPHBhdGggZD0iTTE3Ljk5OCA1LjEyNWE0IDQgMCAwIDEgMi41MjUgNS43NzEiIC8+CiAgPHBhdGggZD0iTTE5LjUwNSAxMC4yOTRhNCA0IDAgMCAxLTEuNSA3LjcwNiIgLz4KICA8cGF0aCBkPSJNNC4wMzIgMTcuNDgzQTQgNCAwIDAgMCAxMS40NjQgMjBjLjE4LS4zMTEuODkyLS4zMTEgMS4wNzIgMGE0IDQgMCAwIDAgNy40MzItMi41MTYiIC8+CiAgPHBhdGggZD0iTTQuNSAxMC4yOTFBNCA0IDAgMCAwIDYgMTgiIC8+CiAgPHBhdGggZD0iTTYuMDAyIDUuMTI1YTMgMyAwIDAgMCAuNCAxLjM3NSIgLz4KICA8cGF0aCBkPSJtOS4yMjggMTAuODUyLS45MjMtLjM4MyIgLz4KICA8cGF0aCBkPSJtOS4yMjggMTMuMTQ4LS45MjMuMzgzIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brain-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrainCog: IconNode = [\n ['path', { d: 'm10.852 14.772-.383.923' }],\n ['path', { d: 'm10.852 9.228-.383-.923' }],\n ['path', { d: 'm13.148 14.772.382.924' }],\n ['path', { d: 'm13.531 8.305-.383.923' }],\n ['path', { d: 'm14.772 10.852.923-.383' }],\n ['path', { d: 'm14.772 13.148.923.383' }],\n [\n 'path',\n {\n d: 'M17.598 6.5A3 3 0 1 0 12 5a3 3 0 0 0-5.63-1.446 3 3 0 0 0-.368 1.571 4 4 0 0 0-2.525 5.771',\n },\n ],\n ['path', { d: 'M17.998 5.125a4 4 0 0 1 2.525 5.771' }],\n ['path', { d: 'M19.505 10.294a4 4 0 0 1-1.5 7.706' }],\n [\n 'path',\n { d: 'M4.032 17.483A4 4 0 0 0 11.464 20c.18-.311.892-.311 1.072 0a4 4 0 0 0 7.432-2.516' },\n ],\n ['path', { d: 'M4.5 10.291A4 4 0 0 0 6 18' }],\n ['path', { d: 'M6.002 5.125a3 3 0 0 0 .4 1.375' }],\n ['path', { d: 'm9.228 10.852-.923-.383' }],\n ['path', { d: 'm9.228 13.148-.923.383' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default BrainCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brain\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMThWNSIgLz4KICA8cGF0aCBkPSJNMTUgMTNhNC4xNyA0LjE3IDAgMCAxLTMtNCA0LjE3IDQuMTcgMCAwIDEtMyA0IiAvPgogIDxwYXRoIGQ9Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDEgMC01LjU5OCAxLjUiIC8+CiAgPHBhdGggZD0iTTE3Ljk5NyA1LjEyNWE0IDQgMCAwIDEgMi41MjYgNS43NyIgLz4KICA8cGF0aCBkPSJNMTggMThhNCA0IDAgMCAwIDItNy40NjQiIC8+CiAgPHBhdGggZD0iTTE5Ljk2NyAxNy40ODNBNCA0IDAgMSAxIDEyIDE4YTQgNCAwIDEgMS03Ljk2Ny0uNTE3IiAvPgogIDxwYXRoIGQ9Ik02IDE4YTQgNCAwIDAgMS0yLTcuNDY0IiAvPgogIDxwYXRoIGQ9Ik02LjAwMyA1LjEyNWE0IDQgMCAwIDAtMi41MjYgNS43NyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/brain\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Brain: IconNode = [\n ['path', { d: 'M12 18V5' }],\n ['path', { d: 'M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4' }],\n ['path', { d: 'M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5' }],\n ['path', { d: 'M17.997 5.125a4 4 0 0 1 2.526 5.77' }],\n ['path', { d: 'M18 18a4 4 0 0 0 2-7.464' }],\n ['path', { d: 'M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517' }],\n ['path', { d: 'M6 18a4 4 0 0 1-2-7.464' }],\n ['path', { d: 'M6.003 5.125a4 4 0 0 0-2.526 5.77' }],\n];\n\nexport default Brain;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brick-wall-fire\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM3YyLjEwNyIgLz4KICA8cGF0aCBkPSJNMTcgOWMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAyMiAxN2E1IDUgMCAwIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDMTMgMTEuNSAxNiA5IDE3IDkiIC8+CiAgPHBhdGggZD0iTTIxIDguMjc0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjkzOCIgLz4KICA8cGF0aCBkPSJNMyAxNWg1LjI1MyIgLz4KICA8cGF0aCBkPSJNMyA5aDguMjI4IiAvPgogIDxwYXRoIGQ9Ik04IDE1djYiIC8+CiAgPHBhdGggZD0iTTggM3Y2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/brick-wall-fire\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrickWallFire: IconNode = [\n ['path', { d: 'M16 3v2.107' }],\n [\n 'path',\n {\n d: 'M17 9c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 22 17a5 5 0 0 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C13 11.5 16 9 17 9',\n },\n ],\n ['path', { d: 'M21 8.274V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.938' }],\n ['path', { d: 'M3 15h5.253' }],\n ['path', { d: 'M3 9h8.228' }],\n ['path', { d: 'M8 15v6' }],\n ['path', { d: 'M8 3v6' }],\n];\n\nexport default BrickWallFire;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brick-wall-shield\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOXYxLjI1OCIgLz4KICA8cGF0aCBkPSJNMTYgM3Y1LjQ2IiAvPgogIDxwYXRoIGQ9Ik0yMSA5LjExOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNS43NSIgLz4KICA8cGF0aCBkPSJNMjIgMTcuNWMwIDIuNDk5LTEuNzUgMy43NDktMy44MyA0LjQ3NGEuNS41IDAgMCAxLS4zMzUtLjAwNWMtMi4wODUtLjcyLTMuODM1LTEuOTctMy44MzUtNC40N1YxNGEuNS41IDAgMCAxIC41LS40OTljMSAwIDIuMjUtLjYgMy4xMi0xLjM2YS42LjYgMCAwIDEgLjc2LS4wMDFjLjg3NS43NjUgMi4xMiAxLjM2IDMuMTIgMS4zNmEuNS41IDAgMCAxIC41LjV6IiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDciIC8+CiAgPHBhdGggZD0iTTMgOWgxMi4xNDIiIC8+CiAgPHBhdGggZD0iTTggMTV2NiIgLz4KICA8cGF0aCBkPSJNOCAzdjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brick-wall-shield\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrickWallShield: IconNode = [\n ['path', { d: 'M12 9v1.258' }],\n ['path', { d: 'M16 3v5.46' }],\n ['path', { d: 'M21 9.118V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h5.75' }],\n [\n 'path',\n {\n d: 'M22 17.5c0 2.499-1.75 3.749-3.83 4.474a.5.5 0 0 1-.335-.005c-2.085-.72-3.835-1.97-3.835-4.47V14a.5.5 0 0 1 .5-.499c1 0 2.25-.6 3.12-1.36a.6.6 0 0 1 .76-.001c.875.765 2.12 1.36 3.12 1.36a.5.5 0 0 1 .5.5z',\n },\n ],\n ['path', { d: 'M3 15h7' }],\n ['path', { d: 'M3 9h12.142' }],\n ['path', { d: 'M8 15v6' }],\n ['path', { d: 'M8 3v6' }],\n];\n\nexport default BrickWallShield;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name briefcase-business\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIiIC8+CiAgPHBhdGggZD0iTTIyIDEzYTE4LjE1IDE4LjE1IDAgMCAxLTIwIDAiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiB4PSIyIiB5PSI2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/briefcase-business\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BriefcaseBusiness: IconNode = [\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2' }],\n ['path', { d: 'M22 13a18.15 18.15 0 0 1-20 0' }],\n ['rect', { width: '20', height: '14', x: '2', y: '6', rx: '2' }],\n];\n\nexport default BriefcaseBusiness;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brick-wall\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiA5djYiIC8+CiAgPHBhdGggZD0iTTE2IDE1djYiIC8+CiAgPHBhdGggZD0iTTE2IDN2NiIgLz4KICA8cGF0aCBkPSJNMyAxNWgxOCIgLz4KICA8cGF0aCBkPSJNMyA5aDE4IiAvPgogIDxwYXRoIGQ9Ik04IDE1djYiIC8+CiAgPHBhdGggZD0iTTggM3Y2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/brick-wall\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrickWall: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M12 9v6' }],\n ['path', { d: 'M16 15v6' }],\n ['path', { d: 'M16 3v6' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'M8 15v6' }],\n ['path', { d: 'M8 3v6' }],\n];\n\nexport default BrickWall;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name briefcase-conveyor-belt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjB2MiIgLz4KICA8cGF0aCBkPSJNMTQgMjB2MiIgLz4KICA8cGF0aCBkPSJNMTggMjB2MiIgLz4KICA8cGF0aCBkPSJNMjEgMjBIMyIgLz4KICA8cGF0aCBkPSJNNiAyMHYyIiAvPgogIDxwYXRoIGQ9Ik04IDE2VjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MTIiIC8+CiAgPHJlY3QgeD0iNCIgeT0iNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjEwIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/briefcase-conveyor-belt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BriefcaseConveyorBelt: IconNode = [\n ['path', { d: 'M10 20v2' }],\n ['path', { d: 'M14 20v2' }],\n ['path', { d: 'M18 20v2' }],\n ['path', { d: 'M21 20H3' }],\n ['path', { d: 'M6 20v2' }],\n ['path', { d: 'M8 16V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v12' }],\n ['rect', { x: '4', y: '6', width: '16', height: '10', rx: '2' }],\n];\n\nexport default BriefcaseConveyorBelt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name briefcase-medical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTF2NCIgLz4KICA8cGF0aCBkPSJNMTQgMTNoLTQiIC8+CiAgPHBhdGggZD0iTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiIgLz4KICA8cGF0aCBkPSJNMTggNnYxNCIgLz4KICA8cGF0aCBkPSJNNiA2djE0IiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iNiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/briefcase-medical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BriefcaseMedical: IconNode = [\n ['path', { d: 'M12 11v4' }],\n ['path', { d: 'M14 13h-4' }],\n ['path', { d: 'M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2' }],\n ['path', { d: 'M18 6v14' }],\n ['path', { d: 'M6 6v14' }],\n ['rect', { width: '20', height: '14', x: '2', y: '6', rx: '2' }],\n];\n\nexport default BriefcaseMedical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name briefcase\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjBWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MTYiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiB4PSIyIiB5PSI2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/briefcase\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Briefcase: IconNode = [\n ['path', { d: 'M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16' }],\n ['rect', { width: '20', height: '14', x: '2', y: '6', rx: '2' }],\n];\n\nexport default Briefcase;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bring-to-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSI4IiB5PSI4IiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNCAxMGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTE0IDIwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bring-to-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BringToFront: IconNode = [\n ['rect', { x: '8', y: '8', width: '8', height: '8', rx: '2' }],\n ['path', { d: 'M4 10a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2' }],\n ['path', { d: 'M14 20a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2' }],\n];\n\nexport default BringToFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brush-cleaning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMjItMS00IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNGExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJoLTNhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC00IDB2NWExIDEgMCAwIDEtMSAxSDZhMiAyIDAgMCAwLTIgMnYxYTEgMSAwIDAgMCAxIDEiIC8+CiAgPHBhdGggZD0iTTE5IDE0SDVsLTEuOTczIDYuNzY3QTEgMSAwIDAgMCA0IDIyaDE2YTEgMSAwIDAgMCAuOTczLTEuMjMzeiIgLz4KICA8cGF0aCBkPSJtOCAyMiAxLTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brush-cleaning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrushCleaning: IconNode = [\n ['path', { d: 'm16 22-1-4' }],\n [\n 'path',\n {\n d: 'M19 14a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2h-3a1 1 0 0 1-1-1V4a2 2 0 0 0-4 0v5a1 1 0 0 1-1 1H6a2 2 0 0 0-2 2v1a1 1 0 0 0 1 1',\n },\n ],\n ['path', { d: 'M19 14H5l-1.973 6.767A1 1 0 0 0 4 22h16a1 1 0 0 0 .973-1.233z' }],\n ['path', { d: 'm8 22 1-4' }],\n];\n\nexport default BrushCleaning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brush\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTAgMyAzIiAvPgogIDxwYXRoIGQ9Ik02LjUgMjFBMy41IDMuNSAwIDEgMCAzIDE3LjVhMi42MiAyLjYyIDAgMCAxLS43MDggMS43OTJBMSAxIDAgMCAwIDMgMjF6IiAvPgogIDxwYXRoIGQ9Ik05Ljk2OSAxNy4wMzEgMjEuMzc4IDUuNjI0YTEgMSAwIDAgMC0zLjAwMi0zLjAwMkw2Ljk2NyAxNC4wMzEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brush\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Brush: IconNode = [\n ['path', { d: 'm11 10 3 3' }],\n ['path', { d: 'M6.5 21A3.5 3.5 0 1 0 3 17.5a2.62 2.62 0 0 1-.708 1.792A1 1 0 0 0 3 21z' }],\n ['path', { d: 'M9.969 17.031 21.378 5.624a1 1 0 0 0-3.002-3.002L6.967 14.031' }],\n];\n\nexport default Brush;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bubbles\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNy4wMDEgMTUuMDg1QTEuNSAxLjUgMCAwIDEgOSAxNi41IiAvPgogIDxjaXJjbGUgY3g9IjE4LjUiIGN5PSI4LjUiIHI9IjMuNSIgLz4KICA8Y2lyY2xlIGN4PSI3LjUiIGN5PSIxNi41IiByPSI1LjUiIC8+CiAgPGNpcmNsZSBjeD0iNy41IiBjeT0iNC41IiByPSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bubbles\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bubbles: IconNode = [\n ['path', { d: 'M7.001 15.085A1.5 1.5 0 0 1 9 16.5' }],\n ['circle', { cx: '18.5', cy: '8.5', r: '3.5' }],\n ['circle', { cx: '7.5', cy: '16.5', r: '5.5' }],\n ['circle', { cx: '7.5', cy: '4.5', r: '2.5' }],\n];\n\nexport default Bubbles;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bug-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjB2LTgiIC8+CiAgPHBhdGggZD0iTTEyLjY1NiA3SDE0YTQgNCAwIDAgMSA0IDR2MS4zNDQiIC8+CiAgPHBhdGggZD0iTTE0LjEyIDMuODggMTYgMiIgLz4KICA8cGF0aCBkPSJNMTcuMTIzIDE3LjEyM0E2IDYgMCAwIDEgNiAxNHYtM2E0IDQgMCAwIDEgMS43Mi0zLjI4NyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTciIC8+CiAgPHBhdGggZD0iTTIyIDEzaC0zLjM0NCIgLz4KICA8cGF0aCBkPSJNMyAyMWE0IDQgMCAwIDEgMy44MS00IiAvPgogIDxwYXRoIGQ9Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyIgLz4KICA8cGF0aCBkPSJNNiAxM0gyIiAvPgogIDxwYXRoIGQ9Im04IDIgMS44OCAxLjg4IiAvPgogIDxwYXRoIGQ9Ik05LjcxMiA0LjA2QTMgMyAwIDAgMSAxNSA2djEuMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bug-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BugOff: IconNode = [\n ['path', { d: 'M12 20v-8' }],\n ['path', { d: 'M12.656 7H14a4 4 0 0 1 4 4v1.344' }],\n ['path', { d: 'M14.12 3.88 16 2' }],\n ['path', { d: 'M17.123 17.123A6 6 0 0 1 6 14v-3a4 4 0 0 1 1.72-3.287' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M21 5a4 4 0 0 1-3.55 3.97' }],\n ['path', { d: 'M22 13h-3.344' }],\n ['path', { d: 'M3 21a4 4 0 0 1 3.81-4' }],\n ['path', { d: 'M3 5a4 4 0 0 0 3.55 3.97' }],\n ['path', { d: 'M6 13H2' }],\n ['path', { d: 'm8 2 1.88 1.88' }],\n ['path', { d: 'M9.712 4.06A3 3 0 0 1 15 6v1.13' }],\n];\n\nexport default BugOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bug-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTkuNjU1QTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSA0LTRoNGE0IDQgMCAwIDEgNCAzLjk3IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6IiAvPgogIDxwYXRoIGQ9Ik0xNC4xMiAzLjg4IDE2IDIiIC8+CiAgPHBhdGggZD0iTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyIgLz4KICA8cGF0aCBkPSJNMyAyMWE0IDQgMCAwIDEgMy44MS00IiAvPgogIDxwYXRoIGQ9Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyIgLz4KICA8cGF0aCBkPSJNNiAxM0gyIiAvPgogIDxwYXRoIGQ9Im04IDIgMS44OCAxLjg4IiAvPgogIDxwYXRoIGQ9Ik05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bug-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BugPlay: IconNode = [\n ['path', { d: 'M10 19.655A6 6 0 0 1 6 14v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 3.97' }],\n [\n 'path',\n {\n d: 'M14 15.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z',\n },\n ],\n ['path', { d: 'M14.12 3.88 16 2' }],\n ['path', { d: 'M21 5a4 4 0 0 1-3.55 3.97' }],\n ['path', { d: 'M3 21a4 4 0 0 1 3.81-4' }],\n ['path', { d: 'M3 5a4 4 0 0 0 3.55 3.97' }],\n ['path', { d: 'M6 13H2' }],\n ['path', { d: 'm8 2 1.88 1.88' }],\n ['path', { d: 'M9 7.13V6a3 3 0 1 1 6 0v1.13' }],\n];\n\nexport default BugPlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bug\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjB2LTkiIC8+CiAgPHBhdGggZD0iTTE0IDdhNCA0IDAgMCAxIDQgNHYzYTYgNiAwIDAgMS0xMiAwdi0zYTQgNCAwIDAgMSA0LTR6IiAvPgogIDxwYXRoIGQ9Ik0xNC4xMiAzLjg4IDE2IDIiIC8+CiAgPHBhdGggZD0iTTIxIDIxYTQgNCAwIDAgMC0zLjgxLTQiIC8+CiAgPHBhdGggZD0iTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyIgLz4KICA8cGF0aCBkPSJNMjIgMTNoLTQiIC8+CiAgPHBhdGggZD0iTTMgMjFhNCA0IDAgMCAxIDMuODEtNCIgLz4KICA8cGF0aCBkPSJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTciIC8+CiAgPHBhdGggZD0iTTYgMTNIMiIgLz4KICA8cGF0aCBkPSJtOCAyIDEuODggMS44OCIgLz4KICA8cGF0aCBkPSJNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bug\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bug: IconNode = [\n ['path', { d: 'M12 20v-9' }],\n ['path', { d: 'M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z' }],\n ['path', { d: 'M14.12 3.88 16 2' }],\n ['path', { d: 'M21 21a4 4 0 0 0-3.81-4' }],\n ['path', { d: 'M21 5a4 4 0 0 1-3.55 3.97' }],\n ['path', { d: 'M22 13h-4' }],\n ['path', { d: 'M3 21a4 4 0 0 1 3.81-4' }],\n ['path', { d: 'M3 5a4 4 0 0 0 3.55 3.97' }],\n ['path', { d: 'M6 13H2' }],\n ['path', { d: 'm8 2 1.88 1.88' }],\n ['path', { d: 'M9 7.13V6a3 3 0 1 1 6 0v1.13' }],\n];\n\nexport default Bug;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name building-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJoNCIgLz4KICA8cGF0aCBkPSJNMTAgOGg0IiAvPgogIDxwYXRoIGQ9Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMiIC8+CiAgPHBhdGggZD0iTTYgMTBINGEyIDIgMCAwIDAtMiAydjdhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMmgtMiIgLz4KICA8cGF0aCBkPSJNNiAyMVY1YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/building-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Building2: IconNode = [\n ['path', { d: 'M10 12h4' }],\n ['path', { d: 'M10 8h4' }],\n ['path', { d: 'M14 21v-3a2 2 0 0 0-4 0v3' }],\n ['path', { d: 'M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2' }],\n ['path', { d: 'M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16' }],\n];\n\nexport default Building2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name building\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTYgNmguMDEiIC8+CiAgPHBhdGggZD0iTTggMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNOCA2aC4wMSIgLz4KICA8cGF0aCBkPSJNOSAyMnYtM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYzIiAvPgogIDxyZWN0IHg9IjQiIHk9IjIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIyMCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/building\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Building: IconNode = [\n ['path', { d: 'M12 10h.01' }],\n ['path', { d: 'M12 14h.01' }],\n ['path', { d: 'M12 6h.01' }],\n ['path', { d: 'M16 10h.01' }],\n ['path', { d: 'M16 14h.01' }],\n ['path', { d: 'M16 6h.01' }],\n ['path', { d: 'M8 10h.01' }],\n ['path', { d: 'M8 14h.01' }],\n ['path', { d: 'M8 6h.01' }],\n ['path', { d: 'M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3' }],\n ['rect', { x: '4', y: '2', width: '16', height: '20', rx: '2' }],\n];\n\nexport default Building;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bus-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA2IDIgNyIgLz4KICA8cGF0aCBkPSJNMTAgNmg0IiAvPgogIDxwYXRoIGQ9Im0yMiA3LTItMSIgLz4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHg9IjQiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik00IDExaDE2IiAvPgogIDxwYXRoIGQ9Ik04IDE1aC4wMSIgLz4KICA8cGF0aCBkPSJNMTYgMTVoLjAxIiAvPgogIDxwYXRoIGQ9Ik02IDE5djIiIC8+CiAgPHBhdGggZD0iTTE4IDIxdi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bus-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BusFront: IconNode = [\n ['path', { d: 'M4 6 2 7' }],\n ['path', { d: 'M10 6h4' }],\n ['path', { d: 'm22 7-2-1' }],\n ['rect', { width: '16', height: '16', x: '4', y: '3', rx: '2' }],\n ['path', { d: 'M4 11h16' }],\n ['path', { d: 'M8 15h.01' }],\n ['path', { d: 'M16 15h.01' }],\n ['path', { d: 'M6 19v2' }],\n ['path', { d: 'M18 21v-2' }],\n];\n\nexport default BusFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCA2djYiIC8+CiAgPHBhdGggZD0iTTE1IDZ2NiIgLz4KICA8cGF0aCBkPSJNMiAxMmgxOS42IiAvPgogIDxwYXRoIGQ9Ik0xOCAxOGgzcy41LTEuNy44LTIuOGMuMS0uNC4yLS44LjItMS4yIDAtLjQtLjEtLjgtLjItMS4ybC0xLjQtNUMyMC4xIDYuOCAxOS4xIDYgMTggNkg0YTIgMiAwIDAgMC0yIDJ2MTBoMyIgLz4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iMTgiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTkgMThoNSIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE4IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bus: IconNode = [\n ['path', { d: 'M8 6v6' }],\n ['path', { d: 'M15 6v6' }],\n ['path', { d: 'M2 12h19.6' }],\n [\n 'path',\n {\n d: 'M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3',\n },\n ],\n ['circle', { cx: '7', cy: '18', r: '2' }],\n ['path', { d: 'M9 18h5' }],\n ['circle', { cx: '16', cy: '18', r: '2' }],\n];\n\nexport default Bus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cable-car\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgM2guMDEiIC8+CiAgPHBhdGggZD0iTTE0IDJoLjAxIiAvPgogIDxwYXRoIGQ9Im0yIDkgMjAtNSIgLz4KICA8cGF0aCBkPSJNMTIgMTJWNi41IiAvPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxMCIgeD0iNCIgeT0iMTIiIHJ4PSIzIiAvPgogIDxwYXRoIGQ9Ik05IDEydjUiIC8+CiAgPHBhdGggZD0iTTE1IDEydjUiIC8+CiAgPHBhdGggZD0iTTQgMTdoMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cable-car\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CableCar: IconNode = [\n ['path', { d: 'M10 3h.01' }],\n ['path', { d: 'M14 2h.01' }],\n ['path', { d: 'm2 9 20-5' }],\n ['path', { d: 'M12 12V6.5' }],\n ['rect', { width: '16', height: '10', x: '4', y: '12', rx: '3' }],\n ['path', { d: 'M9 12v5' }],\n ['path', { d: 'M15 12v5' }],\n ['path', { d: 'M4 17h16' }],\n];\n\nexport default CableCar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cable\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTlhMSAxIDAgMCAxLTEtMXYtMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDIgMnYyYTEgMSAwIDAgMS0xIDF6IiAvPgogIDxwYXRoIGQ9Ik0xNyAyMXYtMiIgLz4KICA8cGF0aCBkPSJNMTkgMTRWNi41YTEgMSAwIDAgMC03IDB2MTFhMSAxIDAgMCAxLTcgMFYxMCIgLz4KICA8cGF0aCBkPSJNMjEgMjF2LTIiIC8+CiAgPHBhdGggZD0iTTMgNVYzIiAvPgogIDxwYXRoIGQ9Ik00IDEwYTIgMiAwIDAgMS0yLTJWNmExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJ6IiAvPgogIDxwYXRoIGQ9Ik03IDVWMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cable\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cable: IconNode = [\n ['path', { d: 'M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z' }],\n ['path', { d: 'M17 21v-2' }],\n ['path', { d: 'M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10' }],\n ['path', { d: 'M21 21v-2' }],\n ['path', { d: 'M3 5V3' }],\n ['path', { d: 'M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z' }],\n ['path', { d: 'M7 5V3' }],\n];\n\nexport default Cable;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cake-slice\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTNIMyIgLz4KICA8cGF0aCBkPSJNMTYgMTdIMyIgLz4KICA8cGF0aCBkPSJtNy4yIDcuOS0zLjM4OCAyLjVBMiAyIDAgMCAwIDMgMTIuMDFWMjBhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xdi04LjY1NGMwLTItMi40NC02LjAyNi02LjQ0LTguMDI2YTEgMSAwIDAgMC0xLjA4Mi4wNTdMMTAuNCA1LjYiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjciIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cake-slice\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CakeSlice: IconNode = [\n ['path', { d: 'M16 13H3' }],\n ['path', { d: 'M16 17H3' }],\n [\n 'path',\n {\n d: 'm7.2 7.9-3.388 2.5A2 2 0 0 0 3 12.01V20a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-8.654c0-2-2.44-6.026-6.44-8.026a1 1 0 0 0-1.082.057L10.4 5.6',\n },\n ],\n ['circle', { cx: '9', cy: '7', r: '2' }],\n];\n\nexport default CakeSlice;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cake\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjF2LThhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OCIgLz4KICA8cGF0aCBkPSJNNCAxNnMuNS0xIDItMSAyLjUgMiA0IDIgMi41LTIgNC0yIDIuNSAyIDQgMiAyLTEgMi0xIiAvPgogIDxwYXRoIGQ9Ik0yIDIxaDIwIiAvPgogIDxwYXRoIGQ9Ik03IDh2MyIgLz4KICA8cGF0aCBkPSJNMTIgOHYzIiAvPgogIDxwYXRoIGQ9Ik0xNyA4djMiIC8+CiAgPHBhdGggZD0iTTcgNGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDRoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNyA0aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cake\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cake: IconNode = [\n ['path', { d: 'M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8' }],\n ['path', { d: 'M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1' }],\n ['path', { d: 'M2 21h20' }],\n ['path', { d: 'M7 8v3' }],\n ['path', { d: 'M12 8v3' }],\n ['path', { d: 'M17 8v3' }],\n ['path', { d: 'M7 4h.01' }],\n ['path', { d: 'M12 4h.01' }],\n ['path', { d: 'M17 4h.01' }],\n];\n\nexport default Cake;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calculator\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHg9IjQiIHk9IjIiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSI2IiB5Mj0iNiIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIxNiIgeTE9IjE0IiB5Mj0iMTgiIC8+CiAgPHBhdGggZD0iTTE2IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTRoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calculator\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Calculator: IconNode = [\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2' }],\n ['line', { x1: '8', x2: '16', y1: '6', y2: '6' }],\n ['line', { x1: '16', x2: '16', y1: '14', y2: '18' }],\n ['path', { d: 'M16 10h.01' }],\n ['path', { d: 'M12 10h.01' }],\n ['path', { d: 'M8 10h.01' }],\n ['path', { d: 'M12 14h.01' }],\n ['path', { d: 'M8 14h.01' }],\n ['path', { d: 'M12 18h.01' }],\n ['path', { d: 'M8 18h.01' }],\n];\n\nexport default Calculator;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTRoMXY0IiAvPgogIDxwYXRoIGQ9Ik0xNiAydjQiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Calendar1: IconNode = [\n ['path', { d: 'M11 14h1v4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n ['rect', { x: '3', y: '4', width: '18', height: '18', rx: '2' }],\n];\n\nexport default Calendar1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTggNCA0IDQtNCIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0xOCAxNHY4IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMS4zNTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMzQzIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarArrowDown: IconNode = [\n ['path', { d: 'm14 18 4 4 4-4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M18 14v8' }],\n ['path', { d: 'M21 11.354V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.343' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTggNC00IDQgNCIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0xOCAyMnYtOCIgLz4KICA8cGF0aCBkPSJNMjEgMTEuMzQzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg5IiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarArrowUp: IconNode = [\n ['path', { d: 'm14 18 4-4 4 4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M18 22v-8' }],\n ['path', { d: 'M21 11.343V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h9' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-check-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cGF0aCBkPSJNMjEgMTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0ibTE2IDIwIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-check-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarCheck2: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'm16 20 2 2 4-4' }],\n];\n\nexport default CalendarCheck2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Im05IDE2IDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarCheck: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'm9 16 2 2 4-4' }],\n];\n\nexport default CalendarCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTR2Mi4ybDEuNiAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAydjQiIC8+CiAgPHBhdGggZD0iTTIxIDcuNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMy41IiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDUiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iMTYiIHI9IjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarClock: IconNode = [\n ['path', { d: 'M16 14v2.2l1.6 1' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5' }],\n ['path', { d: 'M3 10h5' }],\n ['path', { d: 'M8 2v4' }],\n ['circle', { cx: '16', cy: '16', r: '6' }],\n];\n\nexport default CalendarClock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE1LjIyOCAxOS4xNDgtLjkyMy4zODMiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cGF0aCBkPSJtMTYuNDcgMTQuMzA1LjM4Mi45MjMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAyMC43NzItLjM4My45MjQiIC8+CiAgPHBhdGggZD0ibTE5LjE0OCAxNS4yMjguMzgzLS45MjMiIC8+CiAgPHBhdGggZD0ibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQiIC8+CiAgPHBhdGggZD0ibTIwLjc3MiAxNi44NTIuOTI0LS4zODMiIC8+CiAgPHBhdGggZD0ibTIwLjc3MiAxOS4xNDguOTI0LjM4MyIgLz4KICA8cGF0aCBkPSJNMjEgMTAuNTkyVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2IiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDJ2NCIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarCog: IconNode = [\n ['path', { d: 'm15.228 16.852-.923-.383' }],\n ['path', { d: 'm15.228 19.148-.923.383' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'm16.47 14.305.382.923' }],\n ['path', { d: 'm16.852 20.772-.383.924' }],\n ['path', { d: 'm19.148 15.228.383-.923' }],\n ['path', { d: 'm19.53 21.696-.382-.924' }],\n ['path', { d: 'm20.772 16.852.924-.383' }],\n ['path', { d: 'm20.772 19.148.924.383' }],\n ['path', { d: 'M21 10.592V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default CalendarCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-days\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTRoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTggMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-days\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarDays: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 14h.01' }],\n ['path', { d: 'M12 14h.01' }],\n ['path', { d: 'M16 14h.01' }],\n ['path', { d: 'M8 18h.01' }],\n ['path', { d: 'M12 18h.01' }],\n ['path', { d: 'M16 18h.01' }],\n];\n\nexport default CalendarDays;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-fold\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAyMGEyIDIgMCAwIDAgMiAyaDEwYTIuNCAyLjQgMCAwIDAgMS43MDYtLjcwNmwzLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDIxIDE2VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ6IiAvPgogIDxwYXRoIGQ9Ik0xNSAyMnYtNWExIDEgMCAwIDEgMS0xaDUiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxwYXRoIGQ9Ik0xNiAydjQiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-fold\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarFold: IconNode = [\n [\n 'path',\n {\n d: 'M3 20a2 2 0 0 0 2 2h10a2.4 2.4 0 0 0 1.706-.706l3.588-3.588A2.4 2.4 0 0 0 21 16V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z',\n },\n ],\n ['path', { d: 'M15 22v-5a1 1 0 0 1 1-1h5' }],\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M3 10h18' }],\n];\n\nexport default CalendarFold;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMTI3IDIySDVhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjEyNSIgLz4KICA8cGF0aCBkPSJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarHeart: IconNode = [\n ['path', { d: 'M12.127 22H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.125' }],\n [\n 'path',\n {\n d: 'M14.62 18.8A2.25 2.25 0 1 1 18 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z',\n },\n ],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-minus-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik0xMCAxNmg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar-minus-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarMinus2: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M10 16h4' }],\n];\n\nexport default CalendarMinus2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTloNiIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOC41IiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarMinus: IconNode = [\n ['path', { d: 'M16 19h6' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M21 15V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC4yIDQuMkEyIDIgMCAwIDAgMyA2djE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDEuODItMS4xOCIgLz4KICA8cGF0aCBkPSJNMjEgMTUuNVY2YTIgMiAwIDAgMC0yLTJIOS41IiAvPgogIDxwYXRoIGQ9Ik0xNiAydjQiIC8+CiAgPHBhdGggZD0iTTMgMTBoNyIgLz4KICA8cGF0aCBkPSJNMjEgMTBoLTUuNSIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarOff: IconNode = [\n ['path', { d: 'M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18' }],\n ['path', { d: 'M21 15.5V6a2 2 0 0 0-2-2H9.5' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M3 10h7' }],\n ['path', { d: 'M21 10h-5.5' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default CalendarOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-plus-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik0xMCAxNmg0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar-plus-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarPlus2: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M10 16h4' }],\n ['path', { d: 'M12 14v4' }],\n];\n\nexport default CalendarPlus2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTloNiIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNnY2IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMi41OThWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSIgLz4KICA8cGF0aCBkPSJNMyAxMGgxOCIgLz4KICA8cGF0aCBkPSJNOCAydjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarPlus: IconNode = [\n ['path', { d: 'M16 19h6' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M19 16v6' }],\n ['path', { d: 'M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-range\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNiAydjQiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxwYXRoIGQ9Ik0xNyAxNGgtNiIgLz4KICA8cGF0aCBkPSJNMTMgMThINyIgLz4KICA8cGF0aCBkPSJNNyAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTE3IDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-range\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarRange: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M17 14h-6' }],\n ['path', { d: 'M13 18H7' }],\n ['path', { d: 'M7 14h.01' }],\n ['path', { d: 'M17 18h.01' }],\n];\n\nexport default CalendarRange;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMS43NVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4yNSIgLz4KICA8cGF0aCBkPSJtMjIgMjItMS44NzUtMS44NzUiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarSearch: IconNode = [\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M21 11.75V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.25' }],\n ['path', { d: 'm22 22-1.875-1.875' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default CalendarSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-sync\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTB2NGg0IiAvPgogIDxwYXRoIGQ9Im0xMSAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cGF0aCBkPSJtMjEgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41IiAvPgogIDxwYXRoIGQ9Ik0yMSAyMnYtNGgtNCIgLz4KICA8cGF0aCBkPSJNMjEgOC41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg0LjMiIC8+CiAgPHBhdGggZD0iTTMgMTBoNCIgLz4KICA8cGF0aCBkPSJNOCAydjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-sync\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarSync: IconNode = [\n ['path', { d: 'M11 10v4h4' }],\n ['path', { d: 'm11 14 1.535-1.605a5 5 0 0 1 8 1.5' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'm21 18-1.535 1.605a5 5 0 0 1-8-1.5' }],\n ['path', { d: 'M21 22v-4h-4' }],\n ['path', { d: 'M21 8.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4.3' }],\n ['path', { d: 'M3 10h4' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarSync;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-x-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cGF0aCBkPSJNMjEgMTNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0ibTE3IDIyIDUtNSIgLz4KICA8cGF0aCBkPSJtMTcgMTcgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar-x-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarX2: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'm17 22 5-5' }],\n ['path', { d: 'm17 17 5 5' }],\n];\n\nexport default CalendarX2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Im0xNCAxNC00IDQiIC8+CiAgPHBhdGggZD0ibTEwIDE0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarX: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'm14 14-4 4' }],\n ['path', { d: 'm10 14 4 4' }],\n];\n\nexport default CalendarX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Calendar: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n];\n\nexport default Calendar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendars\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNS43MjYgMjEuMDFBMiAyIDAgMCAxIDE0IDIySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgMi0yIiAvPgogIDxwYXRoIGQ9Ik0xOCAydjIiIC8+CiAgPHBhdGggZD0iTTIgMTNoMiIgLz4KICA8cGF0aCBkPSJNOCA4aDE0IiAvPgogIDxyZWN0IHg9IjgiIHk9IjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendars\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Calendars: IconNode = [\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M15.726 21.01A2 2 0 0 1 14 22H4a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2' }],\n ['path', { d: 'M18 2v2' }],\n ['path', { d: 'M2 13h2' }],\n ['path', { d: 'M8 8h14' }],\n ['rect', { x: '8', y: '3', width: '14', height: '14', rx: '2' }],\n];\n\nexport default Calendars;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name camera-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTY0IDE0LjU1OGEzIDMgMCAxIDEtNC4xMjItNC4xMjEiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgLjgxOS0uMTc1IiAvPgogIDxwYXRoIGQ9Ik05LjY5NSA0LjAyNEEyIDIgMCAwIDEgMTAuMDA0IDRoMy45OTNhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2Ny4zNDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/camera-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CameraOff: IconNode = [\n ['path', { d: 'M14.564 14.558a3 3 0 1 1-4.122-4.121' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20 20H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 .819-.175' }],\n [\n 'path',\n {\n d: 'M9.695 4.024A2 2 0 0 1 10.004 4h3.993a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v7.344',\n },\n ],\n];\n\nexport default CameraOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name camera\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuOTk3IDRhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2OWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIDEuNzU5LTEuMDQ4bC40ODktLjkwNEEyIDIgMCAwIDEgMTAuMDA0IDR6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTMiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/camera\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Camera: IconNode = [\n [\n 'path',\n {\n d: 'M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z',\n },\n ],\n ['circle', { cx: '12', cy: '13', r: '3' }],\n];\n\nexport default Camera;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name candy-cane\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNS43IDIxYTIgMiAwIDAgMS0zLjUtMmw4LjYtMTRhNiA2IDAgMCAxIDEwLjQgNiAyIDIgMCAxIDEtMy40NjQtMiAyIDIgMCAxIDAtMy40NjQtMloiIC8+CiAgPHBhdGggZD0iTTE3Ljc1IDcgMTUgMi4xIiAvPgogIDxwYXRoIGQ9Ik0xMC45IDQuOCAxMyA5IiAvPgogIDxwYXRoIGQ9Im03LjkgOS43IDIgNC40IiAvPgogIDxwYXRoIGQ9Ik00LjkgMTQuNyA3IDE4LjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/candy-cane\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CandyCane: IconNode = [\n [\n 'path',\n { d: 'M5.7 21a2 2 0 0 1-3.5-2l8.6-14a6 6 0 0 1 10.4 6 2 2 0 1 1-3.464-2 2 2 0 1 0-3.464-2Z' },\n ],\n ['path', { d: 'M17.75 7 15 2.1' }],\n ['path', { d: 'M10.9 4.8 13 9' }],\n ['path', { d: 'm7.9 9.7 2 4.4' }],\n ['path', { d: 'M4.9 14.7 7 18.9' }],\n];\n\nexport default CandyCane;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name candy-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTB2Ny45IiAvPgogIDxwYXRoIGQ9Ik0xMS44MDIgNi4xNDVhNSA1IDAgMCAxIDYuMDUzIDYuMDUzIiAvPgogIDxwYXRoIGQ9Ik0xNCA2LjF2Mi4yNDMiIC8+CiAgPHBhdGggZD0ibTE1LjUgMTUuNTcxLS45NjQuOTY0YTUgNSAwIDAgMS03LjA3MSAwIDUgNSAwIDAgMSAwLTcuMDdsLjk2NC0uOTY1IiAvPgogIDxwYXRoIGQ9Ik0xNiA3VjNhMSAxIDAgMCAxIDEuNzA3LS43MDcgMi41IDIuNSAwIDAgMCAyLjE1Mi43MTcgMSAxIDAgMCAxIDEuMTMxIDEuMTMxIDIuNSAyLjUgMCAwIDAgLjcxNyAyLjE1MkExIDEgMCAwIDEgMjEgOGgtNCIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/candy-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CandyOff: IconNode = [\n ['path', { d: 'M10 10v7.9' }],\n ['path', { d: 'M11.802 6.145a5 5 0 0 1 6.053 6.053' }],\n ['path', { d: 'M14 6.1v2.243' }],\n ['path', { d: 'm15.5 15.571-.964.964a5 5 0 0 1-7.071 0 5 5 0 0 1 0-7.07l.964-.965' }],\n [\n 'path',\n {\n d: 'M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n [\n 'path',\n {\n d: 'M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4',\n },\n ],\n];\n\nexport default CandyOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name candy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgN3YxMC45IiAvPgogIDxwYXRoIGQ9Ik0xNCA2LjFWMTciIC8+CiAgPHBhdGggZD0iTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00IiAvPgogIDxwYXRoIGQ9Ik0xNi41MzYgNy40NjVhNSA1IDAgMCAwLTcuMDcyIDBsLTIgMmE1IDUgMCAwIDAgMCA3LjA3IDUgNSAwIDAgMCA3LjA3MiAwbDItMmE1IDUgMCAwIDAgMC03LjA3IiAvPgogIDxwYXRoIGQ9Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/candy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Candy: IconNode = [\n ['path', { d: 'M10 7v10.9' }],\n ['path', { d: 'M14 6.1V17' }],\n [\n 'path',\n {\n d: 'M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4',\n },\n ],\n [\n 'path',\n {\n d: 'M16.536 7.465a5 5 0 0 0-7.072 0l-2 2a5 5 0 0 0 0 7.07 5 5 0 0 0 7.072 0l2-2a5 5 0 0 0 0-7.07',\n },\n ],\n [\n 'path',\n {\n d: 'M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4',\n },\n ],\n];\n\nexport default Candy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cannabis-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTRjMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSIgLz4KICA8cGF0aCBkPSJNMTMuOTg4IDguMzI3QzEzLjkwMiA2LjA1NCAxMy4zNjUgMy44MiAxMiAyYTkuMyA5LjMgMCAwIDAtMS40NDUgMi45IiAvPgogIDxwYXRoIGQ9Ik0xNy4zNzUgMTEuNzI1QzE4Ljg4MiAxMC41MyAyMSA3Ljg0MSAyMSA2Yy0yLjMyNCAwLTUuMDggMS4yOTYtNi42NjIgMi42ODQiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMjEuMDI0IDE1LjM3OEExNSAxNSAwIDAgMCAyMiAxNWMtLjQyNi0xLjI3OS0yLjY3LTIuNTU3LTQuMjUtMi45MDciIC8+CiAgPHBhdGggZD0iTTYuOTk1IDYuOTkyQzUuNzE0IDYuNCA0LjI5IDYgMyA2YzAgMiAyLjUgNSA0IDYtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cannabis-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CannabisOff: IconNode = [\n ['path', { d: 'M12 22v-4c1.5 1.5 3.5 3 6 3 0-1.5-.5-3.5-2-5' }],\n ['path', { d: 'M13.988 8.327C13.902 6.054 13.365 3.82 12 2a9.3 9.3 0 0 0-1.445 2.9' }],\n ['path', { d: 'M17.375 11.725C18.882 10.53 21 7.841 21 6c-2.324 0-5.08 1.296-6.662 2.684' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M21.024 15.378A15 15 0 0 0 22 15c-.426-1.279-2.67-2.557-4.25-2.907' }],\n [\n 'path',\n {\n d: 'M6.995 6.992C5.714 6.4 4.29 6 3 6c0 2 2.5 5 4 6-1.5 0-4.5 1.5-5 3 3.5 1.5 6 1 6 1-1.5 1.5-2 3.5-2 5 2.5 0 4.5-1.5 6-3',\n },\n ],\n];\n\nexport default CannabisOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cannabis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTQiIC8+CiAgPHBhdGggZD0iTTcgMTJjLTEuNSAwLTQuNSAxLjUtNSAzIDMuNSAxLjUgNiAxIDYgMS0xLjUgMS41LTIgMy41LTIgNSAyLjUgMCA0LjUtMS41IDYtMyAxLjUgMS41IDMuNSAzIDYgMyAwLTEuNS0uNS0zLjUtMi01IDAgMCAyLjUuNSA2LTEtLjUtMS41LTMuNS0zLTUtMyAxLjUtMSA0LTQgNC02LTIuNSAwLTUuNSAxLjUtNyAzIDAtMi41LS41LTUtMi03LTEuNSAyLTIgNC41LTIgNy0xLjUtMS41LTQuNS0zLTctMyAwIDIgMi41IDUgNCA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cannabis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cannabis: IconNode = [\n ['path', { d: 'M12 22v-4' }],\n [\n 'path',\n {\n d: 'M7 12c-1.5 0-4.5 1.5-5 3 3.5 1.5 6 1 6 1-1.5 1.5-2 3.5-2 5 2.5 0 4.5-1.5 6-3 1.5 1.5 3.5 3 6 3 0-1.5-.5-3.5-2-5 0 0 2.5.5 6-1-.5-1.5-3.5-3-5-3 1.5-1 4-4 4-6-2.5 0-5.5 1.5-7 3 0-2.5-.5-5-2-7-1.5 2-2 4.5-2 7-1.5-1.5-4.5-3-7-3 0 2 2.5 5 4 6',\n },\n ],\n];\n\nexport default Cannabis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name captions-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSA1SDE5YTIgMiAwIDAgMSAyIDJ2OC41IiAvPgogIDxwYXRoIGQ9Ik0xNyAxMWgtLjUiIC8+CiAgPHBhdGggZD0iTTE5IDE5SDVhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTIiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNNyAxMWg0IiAvPgogIDxwYXRoIGQ9Ik03IDE1aDIuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/captions-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CaptionsOff: IconNode = [\n ['path', { d: 'M10.5 5H19a2 2 0 0 1 2 2v8.5' }],\n ['path', { d: 'M17 11h-.5' }],\n ['path', { d: 'M19 19H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M7 11h4' }],\n ['path', { d: 'M7 15h2.5' }],\n];\n\nexport default CaptionsOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name captions\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTQiIHg9IjMiIHk9IjUiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNyAxNWg0TTE1IDE1aDJNNyAxMWgyTTEzIDExaDQiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/captions\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Captions: IconNode = [\n ['rect', { width: '18', height: '14', x: '3', y: '5', rx: '2', ry: '2' }],\n ['path', { d: 'M7 15h4M15 15h2M7 11h2M13 11h4' }],\n];\n\nexport default Captions;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name car-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCIgLz4KICA8cGF0aCBkPSJNNyAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTE3IDE0aC4wMSIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iOCIgeD0iMyIgeT0iMTAiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik01IDE4djIiIC8+CiAgPHBhdGggZD0iTTE5IDE4djIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/car-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CarFront: IconNode = [\n ['path', { d: 'm21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8' }],\n ['path', { d: 'M7 14h.01' }],\n ['path', { d: 'M17 14h.01' }],\n ['rect', { width: '18', height: '8', x: '3', y: '10', rx: '2' }],\n ['path', { d: 'M5 18v2' }],\n ['path', { d: 'M19 18v2' }],\n];\n\nexport default CarFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name car-taxi-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMmg0IiAvPgogIDxwYXRoIGQ9Im0yMSA4LTIgMi0xLjUtMy43QTIgMiAwIDAgMCAxNS42NDYgNUg4LjRhMiAyIDAgMCAwLTEuOTAzIDEuMjU3TDUgMTAgMyA4IiAvPgogIDxwYXRoIGQ9Ik03IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTcgMTRoLjAxIiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSI4IiB4PSIzIiB5PSIxMCIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTUgMTh2MiIgLz4KICA8cGF0aCBkPSJNMTkgMTh2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/car-taxi-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CarTaxiFront: IconNode = [\n ['path', { d: 'M10 2h4' }],\n ['path', { d: 'm21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8' }],\n ['path', { d: 'M7 14h.01' }],\n ['path', { d: 'M17 14h.01' }],\n ['rect', { width: '18', height: '8', x: '3', y: '10', rx: '2' }],\n ['path', { d: 'M5 18v2' }],\n ['path', { d: 'M19 18v2' }],\n];\n\nexport default CarTaxiFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name car\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTdoMmMuNiAwIDEtLjQgMS0xdi0zYzAtLjktLjctMS43LTEuNS0xLjlDMTguNyAxMC42IDE2IDEwIDE2IDEwcy0xLjMtMS40LTIuMi0yLjNjLS41LS40LTEuMS0uNy0xLjgtLjdINWMtLjYgMC0xLjEuNC0xLjQuOWwtMS40IDIuOUEzLjcgMy43IDAgMCAwIDIgMTJ2NGMwIC42LjQgMSAxIDFoMiIgLz4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iMTciIHI9IjIiIC8+CiAgPHBhdGggZD0iTTkgMTdoNiIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE3IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/car\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Car: IconNode = [\n [\n 'path',\n {\n d: 'M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2',\n },\n ],\n ['circle', { cx: '7', cy: '17', r: '2' }],\n ['path', { d: 'M9 17h6' }],\n ['circle', { cx: '17', cy: '17', r: '2' }],\n];\n\nexport default Car;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name caravan\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTlWOWE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHY4YTIgMiAwIDAgMCAyIDJoMiIgLz4KICA8cGF0aCBkPSJNMiA5aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMiIgLz4KICA8cGF0aCBkPSJNMjIgMTd2MWExIDEgMCAwIDEtMSAxSDEwdi05YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjkiIC8+CiAgPGNpcmNsZSBjeD0iOCIgY3k9IjE5IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/caravan\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Caravan: IconNode = [\n ['path', { d: 'M18 19V9a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v8a2 2 0 0 0 2 2h2' }],\n ['path', { d: 'M2 9h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2' }],\n ['path', { d: 'M22 17v1a1 1 0 0 1-1 1H10v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9' }],\n ['circle', { cx: '8', cy: '19', r: '2' }],\n];\n\nexport default Caravan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name card-sim\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTR2NCIgLz4KICA8cGF0aCBkPSJNMTQuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4NmwzLjgyOCAzLjgyOEEyIDIgMCAwIDEgMjAgNy44MjhWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNOCAxNGg4IiAvPgogIDxyZWN0IHg9IjgiIHk9IjEwIiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/card-sim\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CardSim: IconNode = [\n ['path', { d: 'M12 14v4' }],\n [\n 'path',\n {\n d: 'M14.172 2a2 2 0 0 1 1.414.586l3.828 3.828A2 2 0 0 1 20 7.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'M8 14h8' }],\n ['rect', { x: '8', y: '10', width: '8', height: '8', rx: '1' }],\n];\n\nexport default CardSim;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name carrot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4yNyAyMS43czkuODctMy41IDEyLjczLTYuMzZhNC41IDQuNSAwIDAgMC02LjM2LTYuMzdDNS43NyAxMS44NCAyLjI3IDIxLjcgMi4yNyAyMS43ek04LjY0IDE0bC0yLjA1LTIuMDRNMTUuMzQgMTVsLTIuNDYtMi40NiIgLz4KICA8cGF0aCBkPSJNMjIgOXMtMS4zMy0yLTMuNS0yQzE2Ljg2IDcgMTUgOSAxNSA5czEuMzMgMiAzLjUgMlMyMiA5IDIyIDl6IiAvPgogIDxwYXRoIGQ9Ik0xNSAycy0yIDEuMzMtMiAzLjVTMTUgOSAxNSA5czItMS44NCAyLTMuNUMxNyAzLjMzIDE1IDIgMTUgMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/carrot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Carrot: IconNode = [\n [\n 'path',\n {\n d: 'M2.27 21.7s9.87-3.5 12.73-6.36a4.5 4.5 0 0 0-6.36-6.37C5.77 11.84 2.27 21.7 2.27 21.7zM8.64 14l-2.05-2.04M15.34 15l-2.46-2.46',\n },\n ],\n ['path', { d: 'M22 9s-1.33-2-3.5-2C16.86 7 15 9 15 9s1.33 2 3.5 2S22 9 22 9z' }],\n ['path', { d: 'M15 2s-2 1.33-2 3.5S15 9 15 9s2-1.84 2-3.5C17 3.33 15 2 15 2z' }],\n];\n\nexport default Carrot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name case-lower\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOXY3IiAvPgogIDxwYXRoIGQ9Ik0xNCA2djEwIiAvPgogIDxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxMi41IiByPSIzLjUiIC8+CiAgPGNpcmNsZSBjeD0iNi41IiBjeT0iMTIuNSIgcj0iMy41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/case-lower\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CaseLower: IconNode = [\n ['path', { d: 'M10 9v7' }],\n ['path', { d: 'M14 6v10' }],\n ['circle', { cx: '17.5', cy: '12.5', r: '3.5' }],\n ['circle', { cx: '6.5', cy: '12.5', r: '3.5' }],\n];\n\nexport default CaseLower;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name case-sensitive\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik0yMiA5djciIC8+CiAgPHBhdGggZD0iTTMuMzA0IDEzaDYuMzkyIiAvPgogIDxjaXJjbGUgY3g9IjE4LjUiIGN5PSIxMi41IiByPSIzLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/case-sensitive\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CaseSensitive: IconNode = [\n ['path', { d: 'm2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16' }],\n ['path', { d: 'M22 9v7' }],\n ['path', { d: 'M3.304 13h6.392' }],\n ['circle', { cx: '18.5', cy: '12.5', r: '3.5' }],\n];\n\nexport default CaseSensitive;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name case-upper\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTFoNC41YTEgMSAwIDAgMSAwIDVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDNhMSAxIDAgMCAxIDAgNSIgLz4KICA8cGF0aCBkPSJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik0zLjMwNCAxM2g2LjM5MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/case-upper\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CaseUpper: IconNode = [\n [\n 'path',\n { d: 'M15 11h4.5a1 1 0 0 1 0 5h-4a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h3a1 1 0 0 1 0 5' },\n ],\n ['path', { d: 'm2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16' }],\n ['path', { d: 'M3.304 13h6.392' }],\n];\n\nexport default CaseUpper;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cassette-tape\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjgiIGN5PSIxMCIgcj0iMiIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iMTAiIHI9IjIiIC8+CiAgPHBhdGggZD0ibTYgMjAgLjctMi45QTEuNCAxLjQgMCAwIDEgOC4xIDE2aDcuOGExLjQgMS40IDAgMCAxIDEuNCAxbC43IDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cassette-tape\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CassetteTape: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['circle', { cx: '8', cy: '10', r: '2' }],\n ['path', { d: 'M8 12h8' }],\n ['circle', { cx: '16', cy: '10', r: '2' }],\n ['path', { d: 'm6 20 .7-2.9A1.4 1.4 0 0 1 8.1 16h7.8a1.4 1.4 0 0 1 1.4 1l.7 3' }],\n];\n\nexport default CassetteTape;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cast\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA4VjZhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJoLTYiIC8+CiAgPHBhdGggZD0iTTIgMTJhOSA5IDAgMCAxIDggOCIgLz4KICA8cGF0aCBkPSJNMiAxNmE1IDUgMCAwIDEgNCA0IiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMi4wMSIgeTE9IjIwIiB5Mj0iMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cast\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cast: IconNode = [\n ['path', { d: 'M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6' }],\n ['path', { d: 'M2 12a9 9 0 0 1 8 8' }],\n ['path', { d: 'M2 16a5 5 0 0 1 4 4' }],\n ['line', { x1: '2', x2: '2.01', y1: '20', y2: '20' }],\n];\n\nexport default Cast;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name castle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNVYzIiAvPgogIDxwYXRoIGQ9Ik0xNCA1VjMiIC8+CiAgPHBhdGggZD0iTTE1IDIxdi0zYTMgMyAwIDAgMC02IDB2MyIgLz4KICA8cGF0aCBkPSJNMTggM3Y4IiAvPgogIDxwYXRoIGQ9Ik0xOCA1SDYiIC8+CiAgPHBhdGggZD0iTTIyIDExSDIiIC8+CiAgPHBhdGggZD0iTTIyIDl2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOSIgLz4KICA8cGF0aCBkPSJNNiAzdjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/castle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Castle: IconNode = [\n ['path', { d: 'M10 5V3' }],\n ['path', { d: 'M14 5V3' }],\n ['path', { d: 'M15 21v-3a3 3 0 0 0-6 0v3' }],\n ['path', { d: 'M18 3v8' }],\n ['path', { d: 'M18 5H6' }],\n ['path', { d: 'M22 11H2' }],\n ['path', { d: 'M22 9v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9' }],\n ['path', { d: 'M6 3v8' }],\n];\n\nexport default Castle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNWMuNjcgMCAxLjM1LjA5IDIgLjI2IDEuNzgtMiA1LjAzLTIuODQgNi40Mi0yLjI2IDEuNC41OC0uNDIgNy0uNDIgNyAuNTcgMS4wNyAxIDIuMjQgMSAzLjQ0QzIxIDE3LjkgMTYuOTcgMjEgMTIgMjFzLTktMy05LTcuNTZjMC0xLjI1LjUtMi40IDEtMy40NCAwIDAtMS44OS02LjQyLS41LTcgMS4zOS0uNTggNC43Mi4yMyA2LjUgMi4yM0E5LjA0IDkuMDQgMCAwIDEgMTIgNVoiIC8+CiAgPHBhdGggZD0iTTggMTR2LjUiIC8+CiAgPHBhdGggZD0iTTE2IDE0di41IiAvPgogIDxwYXRoIGQ9Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTdsLS43NS0uNzVaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cat: IconNode = [\n [\n 'path',\n {\n d: 'M12 5c.67 0 1.35.09 2 .26 1.78-2 5.03-2.84 6.42-2.26 1.4.58-.42 7-.42 7 .57 1.07 1 2.24 1 3.44C21 17.9 16.97 21 12 21s-9-3-9-7.56c0-1.25.5-2.4 1-3.44 0 0-1.89-6.42-.5-7 1.39-.58 4.72.23 6.5 2.23A9.04 9.04 0 0 1 12 5Z',\n },\n ],\n ['path', { d: 'M8 14v.5' }],\n ['path', { d: 'M16 14v.5' }],\n ['path', { d: 'M11.25 16.25h1.5L12 17l-.75-.75Z' }],\n];\n\nexport default Cat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cctv\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuNzUgMTJoMy42MzJhMSAxIDAgMCAxIC44OTQgMS40NDdsLTIuMDM0IDQuMDY5YTEgMSAwIDAgMS0xLjcwOC4xMzRsLTIuMTI0LTIuOTciIC8+CiAgPHBhdGggZD0iTTE3LjEwNiA5LjA1M2ExIDEgMCAwIDEgLjQ0NyAxLjM0MWwtMy4xMDYgNi4yMTFhMSAxIDAgMCAxLTEuMzQyLjQ0N0wzLjYxIDEyLjNhMi45MiAyLjkyIDAgMCAxLTEuMy0zLjkxTDMuNjkgNS42YTIuOTIgMi45MiAwIDAgMSAzLjkyLTEuM3oiIC8+CiAgPHBhdGggZD0iTTIgMTloMy43NmEyIDIgMCAwIDAgMS44LTEuMUw5IDE1IiAvPgogIDxwYXRoIGQ9Ik0yIDIxdi00IiAvPgogIDxwYXRoIGQ9Ik03IDloLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cctv\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cctv: IconNode = [\n [\n 'path',\n { d: 'M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97' },\n ],\n [\n 'path',\n {\n d: 'M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z',\n },\n ],\n ['path', { d: 'M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15' }],\n ['path', { d: 'M2 21v-4' }],\n ['path', { d: 'M7 9h.01' }],\n];\n\nexport default Cctv;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-area\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTEuMjA3YS41LjUgMCAwIDEgLjE0Ni0uMzUzbDItMmEuNS41IDAgMCAxIC43MDggMGwzLjI5MiAzLjI5MmEuNS41IDAgMCAwIC43MDggMGw0LjI5Mi00LjI5MmEuNS41IDAgMCAxIC44NTQuMzUzVjE2YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-area\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartArea: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n [\n 'path',\n {\n d: 'M7 11.207a.5.5 0 0 1 .146-.353l2-2a.5.5 0 0 1 .708 0l3.292 3.292a.5.5 0 0 0 .708 0l4.292-4.292a.5.5 0 0 1 .854.353V16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z',\n },\n ],\n];\n\nexport default ChartArea;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-bar-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHJlY3QgeD0iNyIgeT0iMTMiIHdpZHRoPSI5IiBoZWlnaHQ9IjQiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjciIHk9IjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSI0IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-bar-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartBarBig: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['rect', { x: '7', y: '13', width: '9', height: '4', rx: '1' }],\n ['rect', { x: '7', y: '5', width: '12', height: '4', rx: '1' }],\n];\n\nexport default ChartBarBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-bar-decreasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTFoOCIgLz4KICA8cGF0aCBkPSJNNyAxNmgzIiAvPgogIDxwYXRoIGQ9Ik03IDZoMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-bar-decreasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartBarDecreasing: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M7 11h8' }],\n ['path', { d: 'M7 16h3' }],\n ['path', { d: 'M7 6h12' }],\n];\n\nexport default ChartBarDecreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-bar-increasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTFoOCIgLz4KICA8cGF0aCBkPSJNNyAxNmgxMiIgLz4KICA8cGF0aCBkPSJNNyA2aDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-bar-increasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartBarIncreasing: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M7 11h8' }],\n ['path', { d: 'M7 16h12' }],\n ['path', { d: 'M7 6h3' }],\n];\n\nexport default ChartBarIncreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-bar-stacked\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTN2NCIgLz4KICA8cGF0aCBkPSJNMTUgNXY0IiAvPgogIDxwYXRoIGQ9Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgLz4KICA8cmVjdCB4PSI3IiB5PSIxMyIgd2lkdGg9IjkiIGhlaWdodD0iNCIgcng9IjEiIC8+CiAgPHJlY3QgeD0iNyIgeT0iNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chart-bar-stacked\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartBarStacked: IconNode = [\n ['path', { d: 'M11 13v4' }],\n ['path', { d: 'M15 5v4' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['rect', { x: '7', y: '13', width: '9', height: '4', rx: '1' }],\n ['rect', { x: '7', y: '5', width: '12', height: '4', rx: '1' }],\n];\n\nexport default ChartBarStacked;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-candlestick\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSA1djQiIC8+CiAgPHJlY3Qgd2lkdGg9IjQiIGhlaWdodD0iNiIgeD0iNyIgeT0iOSIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTkgMTV2MiIgLz4KICA8cGF0aCBkPSJNMTcgM3YyIiAvPgogIDxyZWN0IHdpZHRoPSI0IiBoZWlnaHQ9IjgiIHg9IjE1IiB5PSI1IiByeD0iMSIgLz4KICA8cGF0aCBkPSJNMTcgMTN2MyIgLz4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-candlestick\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartCandlestick: IconNode = [\n ['path', { d: 'M9 5v4' }],\n ['rect', { width: '4', height: '6', x: '7', y: '9', rx: '1' }],\n ['path', { d: 'M9 15v2' }],\n ['path', { d: 'M17 3v2' }],\n ['rect', { width: '4', height: '8', x: '15', y: '5', rx: '1' }],\n ['path', { d: 'M17 13v3' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n];\n\nexport default ChartCandlestick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-column-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHJlY3QgeD0iMTUiIHk9IjUiIHdpZHRoPSI0IiBoZWlnaHQ9IjEyIiByeD0iMSIgLz4KICA8cmVjdCB4PSI3IiB5PSI4IiB3aWR0aD0iNCIgaGVpZ2h0PSI5IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-column-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartColumnBig: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['rect', { x: '15', y: '5', width: '4', height: '12', rx: '1' }],\n ['rect', { x: '7', y: '8', width: '4', height: '9', rx: '1' }],\n];\n\nexport default ChartColumnBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-column-decreasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTdWOSIgLz4KICA8cGF0aCBkPSJNMTggMTd2LTMiIC8+CiAgPHBhdGggZD0iTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2IiAvPgogIDxwYXRoIGQ9Ik04IDE3VjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-column-decreasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartColumnDecreasing: IconNode = [\n ['path', { d: 'M13 17V9' }],\n ['path', { d: 'M18 17v-3' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M8 17V5' }],\n];\n\nexport default ChartColumnDecreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-bar\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTZoOCIgLz4KICA8cGF0aCBkPSJNNyAxMWgxMiIgLz4KICA8cGF0aCBkPSJNNyA2aDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-bar\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartBar: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M7 16h8' }],\n ['path', { d: 'M7 11h12' }],\n ['path', { d: 'M7 6h3' }],\n];\n\nexport default ChartBar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-column-increasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTdWOSIgLz4KICA8cGF0aCBkPSJNMTggMTdWNSIgLz4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTggMTd2LTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-column-increasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartColumnIncreasing: IconNode = [\n ['path', { d: 'M13 17V9' }],\n ['path', { d: 'M18 17V5' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M8 17v-3' }],\n];\n\nexport default ChartColumnIncreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-column-stacked\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTNINyIgLz4KICA8cGF0aCBkPSJNMTkgOWgtNCIgLz4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHJlY3QgeD0iMTUiIHk9IjUiIHdpZHRoPSI0IiBoZWlnaHQ9IjEyIiByeD0iMSIgLz4KICA8cmVjdCB4PSI3IiB5PSI4IiB3aWR0aD0iNCIgaGVpZ2h0PSI5IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-column-stacked\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartColumnStacked: IconNode = [\n ['path', { d: 'M11 13H7' }],\n ['path', { d: 'M19 9h-4' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['rect', { x: '15', y: '5', width: '4', height: '12', rx: '1' }],\n ['rect', { x: '7', y: '8', width: '4', height: '9', rx: '1' }],\n];\n\nexport default ChartColumnStacked;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-column\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTE4IDE3VjkiIC8+CiAgPHBhdGggZD0iTTEzIDE3VjUiIC8+CiAgPHBhdGggZD0iTTggMTd2LTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-column\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartColumn: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M18 17V9' }],\n ['path', { d: 'M13 17V5' }],\n ['path', { d: 'M8 17v-3' }],\n];\n\nexport default ChartColumn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-gantt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNmg4IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNmg2IiAvPgogIDxwYXRoIGQ9Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgLz4KICA8cGF0aCBkPSJNOCAxMWg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chart-gantt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartGantt: IconNode = [\n ['path', { d: 'M10 6h8' }],\n ['path', { d: 'M12 16h6' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M8 11h7' }],\n];\n\nexport default ChartGantt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0ibTE5IDktNSA1LTQtNC0zIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartLine: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'm19 9-5 5-4-4-3 3' }],\n];\n\nexport default ChartLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-network\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMuMTEgNy42NjQgMS43OCAyLjY3MiIgLz4KICA8cGF0aCBkPSJtMTQuMTYyIDEyLjc4OC0zLjMyNCAxLjQyNCIgLz4KICA8cGF0aCBkPSJtMjAgNC02LjA2IDEuNTE1IiAvPgogIDxwYXRoIGQ9Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjYiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxMiIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTUiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-network\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNetwork: IconNode = [\n ['path', { d: 'm13.11 7.664 1.78 2.672' }],\n ['path', { d: 'm14.162 12.788-3.324 1.424' }],\n ['path', { d: 'm20 4-6.06 1.515' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['circle', { cx: '12', cy: '6', r: '2' }],\n ['circle', { cx: '16', cy: '12', r: '2' }],\n ['circle', { cx: '9', cy: '15', r: '2' }],\n];\n\nexport default ChartNetwork;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-no-axes-column-decreasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMVYzIiAvPgogIDxwYXRoIGQ9Ik0xMiAyMVY5IiAvPgogIDxwYXRoIGQ9Ik0xOSAyMXYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-no-axes-column-decreasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNoAxesColumnDecreasing: IconNode = [\n ['path', { d: 'M5 21V3' }],\n ['path', { d: 'M12 21V9' }],\n ['path', { d: 'M19 21v-6' }],\n];\n\nexport default ChartNoAxesColumnDecreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-no-axes-column-increasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMXYtNiIgLz4KICA8cGF0aCBkPSJNMTIgMjFWOSIgLz4KICA8cGF0aCBkPSJNMTkgMjFWMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-no-axes-column-increasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNoAxesColumnIncreasing: IconNode = [\n ['path', { d: 'M5 21v-6' }],\n ['path', { d: 'M12 21V9' }],\n ['path', { d: 'M19 21V3' }],\n];\n\nexport default ChartNoAxesColumnIncreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-no-axes-column\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMXYtNiIgLz4KICA8cGF0aCBkPSJNMTIgMjFWMyIgLz4KICA8cGF0aCBkPSJNMTkgMjFWOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-no-axes-column\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNoAxesColumn: IconNode = [\n ['path', { d: 'M5 21v-6' }],\n ['path', { d: 'M12 21V3' }],\n ['path', { d: 'M19 21V9' }],\n];\n\nexport default ChartNoAxesColumn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-no-axes-combined\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZ2NSIgLz4KICA8cGF0aCBkPSJNMTYgMTR2NyIgLz4KICA8cGF0aCBkPSJNMjAgMTB2MTEiIC8+CiAgPHBhdGggZD0ibTIyIDMtOC42NDYgOC42NDZhLjUuNSAwIDAgMS0uNzA4IDBMOS4zNTQgOC4zNTRhLjUuNSAwIDAgMC0uNzA3IDBMMiAxNSIgLz4KICA8cGF0aCBkPSJNNCAxOHYzIiAvPgogIDxwYXRoIGQ9Ik04IDE0djciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-no-axes-combined\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNoAxesCombined: IconNode = [\n ['path', { d: 'M12 16v5' }],\n ['path', { d: 'M16 14v7' }],\n ['path', { d: 'M20 10v11' }],\n ['path', { d: 'm22 3-8.646 8.646a.5.5 0 0 1-.708 0L9.354 8.354a.5.5 0 0 0-.707 0L2 15' }],\n ['path', { d: 'M4 18v3' }],\n ['path', { d: 'M8 14v7' }],\n];\n\nexport default ChartNoAxesCombined;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-no-axes-gantt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA1aDEyIiAvPgogIDxwYXRoIGQ9Ik00IDEyaDEwIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOWg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chart-no-axes-gantt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNoAxesGantt: IconNode = [\n ['path', { d: 'M6 5h12' }],\n ['path', { d: 'M4 12h10' }],\n ['path', { d: 'M12 19h8' }],\n];\n\nexport default ChartNoAxesGantt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-pie\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJjLjU1MiAwIDEuMDA1LS40NDkuOTUtLjk5OGExMCAxMCAwIDAgMC04Ljk1My04Ljk1MWMtLjU1LS4wNTUtLjk5OC4zOTgtLjk5OC45NXY4YTEgMSAwIDAgMCAxIDF6IiAvPgogIDxwYXRoIGQ9Ik0yMS4yMSAxNS44OUExMCAxMCAwIDEgMSA4IDIuODMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-pie\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartPie: IconNode = [\n [\n 'path',\n {\n d: 'M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z',\n },\n ],\n ['path', { d: 'M21.21 15.89A10 10 0 1 1 8 2.83' }],\n];\n\nexport default ChartPie;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-scatter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI3LjUiIGN5PSI3LjUiIHI9Ii41IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPGNpcmNsZSBjeD0iMTguNSIgY3k9IjUuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSIxMS41IiBjeT0iMTEuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSI3LjUiIGN5PSIxNi41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgogIDxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNC41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgogIDxwYXRoIGQ9Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-scatter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartScatter: IconNode = [\n ['circle', { cx: '7.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '18.5', cy: '5.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '11.5', cy: '11.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '7.5', cy: '16.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '17.5', cy: '14.5', r: '.5', fill: 'currentColor' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n];\n\nexport default ChartScatter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-spline\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTZjLjUtMiAxLjUtNyA0LTcgMiAwIDIgMyA0IDMgMi41IDAgNC41LTUgNS03IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chart-spline\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartSpline: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M7 16c.5-2 1.5-7 4-7 2 0 2 3 4 3 2.5 0 4.5-5 5-7' }],\n];\n\nexport default ChartSpline;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name check-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNEw5IDE1IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOUwzIDE5IiAvPgogIDxwYXRoIGQ9Ik05IDE1TDQgMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CheckLine: IconNode = [\n ['path', { d: 'M20 4L9 15' }],\n ['path', { d: 'M21 19L3 19' }],\n ['path', { d: 'M9 15L4 10' }],\n];\n\nexport default CheckLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name check-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA3IDE3bC01LTUiIC8+CiAgPHBhdGggZD0ibTIyIDEwLTcuNSA3LjVMMTMgMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CheckCheck: IconNode = [\n ['path', { d: 'M18 6 7 17l-5-5' }],\n ['path', { d: 'm22 10-7.5 7.5L13 16' }],\n];\n\nexport default CheckCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chef-hat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMjFhMSAxIDAgMCAwIDEtMXYtNS4zNWMwLS40NTcuMzE2LS44NDQuNzI3LTEuMDQxYTQgNCAwIDAgMC0yLjEzNC03LjU4OSA1IDUgMCAwIDAtOS4xODYgMCA0IDQgMCAwIDAtMi4xMzQgNy41ODhjLjQxMS4xOTguNzI3LjU4NS43MjcgMS4wNDFWMjBhMSAxIDAgMCAwIDEgMVoiIC8+CiAgPHBhdGggZD0iTTYgMTdoMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chef-hat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChefHat: IconNode = [\n [\n 'path',\n {\n d: 'M17 21a1 1 0 0 0 1-1v-5.35c0-.457.316-.844.727-1.041a4 4 0 0 0-2.134-7.589 5 5 0 0 0-9.186 0 4 4 0 0 0-2.134 7.588c.411.198.727.585.727 1.041V20a1 1 0 0 0 1 1Z',\n },\n ],\n ['path', { d: 'M6 17h12' }],\n];\n\nexport default ChefHat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cherry\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oiIC8+CiAgPHBhdGggZD0iTTEyIDE3YTUgNSAwIDAgMCAxMCAwYzAtMi43Ni0yLjUtNS01LTMtMi41LTItNSAuMjQtNSAzWiIgLz4KICA8cGF0aCBkPSJNNyAxNGMzLjIyLTIuOTEgNC4yOS04Ljc1IDUtMTIgMS42NiAyLjM4IDQuOTQgOSA1IDEyIiAvPgogIDxwYXRoIGQ9Ik0yMiA5Yy00LjI5IDAtNy4xNC0yLjMzLTEwLTcgNS43MSAwIDEwIDQuNjcgMTAgN1oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cherry\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cherry: IconNode = [\n ['path', { d: 'M2 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z' }],\n ['path', { d: 'M12 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z' }],\n ['path', { d: 'M7 14c3.22-2.91 4.29-8.75 5-12 1.66 2.38 4.94 9 5 12' }],\n ['path', { d: 'M22 9c-4.29 0-7.14-2.33-10-7 5.71 0 10 4.67 10 7Z' }],\n];\n\nexport default Cherry;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Check: IconNode = [['path', { d: 'M20 6 9 17l-5-5' }]];\n\nexport default Check;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-bishop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0iTTE1IDE4YzEuNS0uNjE1IDMtMi40NjEgMy00LjkyM0MxOCA4Ljc2OSAxNC41IDQuNDYyIDEyIDIgOS41IDQuNDYyIDYgOC43NyA2IDEzLjA3NyA2IDE1LjUzOSA3LjUgMTcuMzg1IDkgMTgiIC8+CiAgPHBhdGggZD0ibTE2IDctMi41IDIuNSIgLz4KICA8cGF0aCBkPSJNOSAyaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chess-bishop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessBishop: IconNode = [\n ['path', { d: 'M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z' }],\n [\n 'path',\n {\n d: 'M15 18c1.5-.615 3-2.461 3-4.923C18 8.769 14.5 4.462 12 2 9.5 4.462 6 8.77 6 13.077 6 15.539 7.5 17.385 9 18',\n },\n ],\n ['path', { d: 'm16 7-2.5 2.5' }],\n ['path', { d: 'M9 2h6' }],\n];\n\nexport default ChessBishop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-king\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0ibTYuNyAxOC0xLTFDNC4zNSAxNS42ODIgMyAxNC4wOSAzIDEyYTUgNSAwIDAgMSA0Ljk1LTVjMS41ODQgMCAyLjcuNDU1IDQuMDUgMS44MThDMTMuMzUgNy40NTUgMTQuNDY2IDcgMTYuMDUgN0E1IDUgMCAwIDEgMjEgMTJjMCAyLjA4Mi0xLjM1OSAzLjY3My0yLjcgNWwtMSAxIiAvPgogIDxwYXRoIGQ9Ik0xMCA0aDQiIC8+CiAgPHBhdGggZD0iTTEyIDJ2Ni44MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chess-king\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessKing: IconNode = [\n ['path', { d: 'M4 20a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z' }],\n [\n 'path',\n {\n d: 'm6.7 18-1-1C4.35 15.682 3 14.09 3 12a5 5 0 0 1 4.95-5c1.584 0 2.7.455 4.05 1.818C13.35 7.455 14.466 7 16.05 7A5 5 0 0 1 21 12c0 2.082-1.359 3.673-2.7 5l-1 1',\n },\n ],\n ['path', { d: 'M10 4h4' }],\n ['path', { d: 'M12 2v6.818' }],\n];\n\nexport default ChessKing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-pawn\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0ibTE0LjUgMTAgMS41IDgiIC8+CiAgPHBhdGggZD0iTTcgMTBoMTAiIC8+CiAgPHBhdGggZD0ibTggMTggMS41LTgiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI2IiByPSI0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chess-pawn\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessPawn: IconNode = [\n ['path', { d: 'M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z' }],\n ['path', { d: 'm14.5 10 1.5 8' }],\n ['path', { d: 'M7 10h10' }],\n ['path', { d: 'm8 18 1.5-8' }],\n ['circle', { cx: '12', cy: '6', r: '4' }],\n];\n\nexport default ChessPawn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-queen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0ibTEyLjQ3NCA1Ljk0MyAxLjU2NyA1LjM0YTEgMSAwIDAgMCAxLjc1LjMyOGwyLjYxNi0zLjQwMiIgLz4KICA8cGF0aCBkPSJtMjAgOS0zIDkiIC8+CiAgPHBhdGggZD0ibTUuNTk0IDguMjA5IDIuNjE1IDMuNDAzYTEgMSAwIDAgMCAxLjc1LS4zMjlsMS41NjctNS4zNCIgLz4KICA8cGF0aCBkPSJNNyAxOCA0IDkiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI0IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iNyIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI0IiBjeT0iNyIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chess-queen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessQueen: IconNode = [\n ['path', { d: 'M4 20a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z' }],\n ['path', { d: 'm12.474 5.943 1.567 5.34a1 1 0 0 0 1.75.328l2.616-3.402' }],\n ['path', { d: 'm20 9-3 9' }],\n ['path', { d: 'm5.594 8.209 2.615 3.403a1 1 0 0 0 1.75-.329l1.567-5.34' }],\n ['path', { d: 'M7 18 4 9' }],\n ['circle', { cx: '12', cy: '4', r: '2' }],\n ['circle', { cx: '20', cy: '7', r: '2' }],\n ['circle', { cx: '4', cy: '7', r: '2' }],\n];\n\nexport default ChessQueen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-knight\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0iTTE2LjUgMThjMS0yIDIuNS01IDIuNS05YTcgNyAwIDAgMC03LTdINi42MzVhMSAxIDAgMCAwLS43NjggMS42NEw3IDVsLTIuMzIgNS44MDJhMiAyIDAgMCAwIC45NSAyLjUyNmwyLjg3IDEuNDU2IiAvPgogIDxwYXRoIGQ9Im0xNSA1IDEuNDI1LTEuNDI1IiAvPgogIDxwYXRoIGQ9Im0xNyA4IDEuNTMtMS41MyIgLz4KICA8cGF0aCBkPSJNOS43MTMgMTIuMTg1IDcgMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chess-knight\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessKnight: IconNode = [\n ['path', { d: 'M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z' }],\n [\n 'path',\n {\n d: 'M16.5 18c1-2 2.5-5 2.5-9a7 7 0 0 0-7-7H6.635a1 1 0 0 0-.768 1.64L7 5l-2.32 5.802a2 2 0 0 0 .95 2.526l2.87 1.456',\n },\n ],\n ['path', { d: 'm15 5 1.425-1.425' }],\n ['path', { d: 'm17 8 1.53-1.53' }],\n ['path', { d: 'M9.713 12.185 7 18' }],\n];\n\nexport default ChessKnight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-rook\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0iTTEwIDJ2MiIgLz4KICA8cGF0aCBkPSJNMTQgMnYyIiAvPgogIDxwYXRoIGQ9Im0xNyAxOC0xLTkiIC8+CiAgPHBhdGggZD0iTTYgMnY1YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjIiIC8+CiAgPHBhdGggZD0iTTYgNGgxMiIgLz4KICA8cGF0aCBkPSJtNyAxOCAxLTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chess-rook\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessRook: IconNode = [\n ['path', { d: 'M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z' }],\n ['path', { d: 'M10 2v2' }],\n ['path', { d: 'M14 2v2' }],\n ['path', { d: 'm17 18-1-9' }],\n ['path', { d: 'M6 2v5a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2' }],\n ['path', { d: 'M6 4h12' }],\n ['path', { d: 'm7 18 1-9' }],\n];\n\nexport default ChessRook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronDown: IconNode = [['path', { d: 'm6 9 6 6 6-6' }]];\n\nexport default ChevronDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-first\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTgtNi02IDYtNiIgLz4KICA8cGF0aCBkPSJNNyA2djEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-first\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronFirst: IconNode = [\n ['path', { d: 'm17 18-6-6 6-6' }],\n ['path', { d: 'M7 6v12' }],\n];\n\nexport default ChevronFirst;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-last\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxOCA2LTYtNi02IiAvPgogIDxwYXRoIGQ9Ik0xNyA2djEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-last\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronLast: IconNode = [\n ['path', { d: 'm7 18 6-6-6-6' }],\n ['path', { d: 'M17 6v12' }],\n];\n\nexport default ChevronLast;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronLeft: IconNode = [['path', { d: 'm15 18-6-6 6-6' }]];\n\nexport default ChevronLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronRight: IconNode = [['path', { d: 'm9 18 6-6-6-6' }]];\n\nexport default ChevronRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTUtNi02LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronUp: IconNode = [['path', { d: 'm18 15-6-6-6 6' }]];\n\nexport default ChevronUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-down-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAyMCA1LTUgNSA1IiAvPgogIDxwYXRoIGQ9Im03IDQgNSA1IDUtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-down-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsDownUp: IconNode = [\n ['path', { d: 'm7 20 5-5 5 5' }],\n ['path', { d: 'm7 4 5 5 5-5' }],\n];\n\nexport default ChevronsDownUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyA2IDUgNSA1LTUiIC8+CiAgPHBhdGggZD0ibTcgMTMgNSA1IDUtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsDown: IconNode = [\n ['path', { d: 'm7 6 5 5 5-5' }],\n ['path', { d: 'm7 13 5 5 5-5' }],\n];\n\nexport default ChevronsDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-left-right-ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMmguMDEiIC8+CiAgPHBhdGggZD0ibTE3IDcgNSA1LTUgNSIgLz4KICA8cGF0aCBkPSJtNyA3LTUgNSA1IDUiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevrons-left-right-ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsLeftRightEllipsis: IconNode = [\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M16 12h.01' }],\n ['path', { d: 'm17 7 5 5-5 5' }],\n ['path', { d: 'm7 7-5 5 5 5' }],\n ['path', { d: 'M8 12h.01' }],\n];\n\nexport default ChevronsLeftRightEllipsis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-left-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSA3LTUgNSA1IDUiIC8+CiAgPHBhdGggZD0ibTE1IDcgNSA1LTUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-left-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsLeftRight: IconNode = [\n ['path', { d: 'm9 7-5 5 5 5' }],\n ['path', { d: 'm15 7 5 5-5 5' }],\n];\n\nexport default ChevronsLeftRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTctNS01IDUtNSIgLz4KICA8cGF0aCBkPSJtMTggMTctNS01IDUtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsLeft: IconNode = [\n ['path', { d: 'm11 17-5-5 5-5' }],\n ['path', { d: 'm18 17-5-5 5-5' }],\n];\n\nexport default ChevronsLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-right-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjAgMTctNS01IDUtNSIgLz4KICA8cGF0aCBkPSJtNCAxNyA1LTUtNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevrons-right-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsRightLeft: IconNode = [\n ['path', { d: 'm20 17-5-5 5-5' }],\n ['path', { d: 'm4 17 5-5-5-5' }],\n];\n\nexport default ChevronsRightLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNyA1LTUtNS01IiAvPgogIDxwYXRoIGQ9Im0xMyAxNyA1LTUtNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevrons-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsRight: IconNode = [\n ['path', { d: 'm6 17 5-5-5-5' }],\n ['path', { d: 'm13 17 5-5-5-5' }],\n];\n\nexport default ChevronsRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTEtNS01LTUgNSIgLz4KICA8cGF0aCBkPSJtMTcgMTgtNS01LTUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsUp: IconNode = [\n ['path', { d: 'm17 11-5-5-5 5' }],\n ['path', { d: 'm17 18-5-5-5 5' }],\n];\n\nexport default ChevronsUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chromium\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuODggMjEuOTQgMTUuNDYgMTQiIC8+CiAgPHBhdGggZD0iTTIxLjE3IDhIMTIiIC8+CiAgPHBhdGggZD0iTTMuOTUgNi4wNiA4LjU0IDE0IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chromium\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=chromium instead. This icon will be removed in v1.0\n */\nconst Chromium: IconNode = [\n ['path', { d: 'M10.88 21.94 15.46 14' }],\n ['path', { d: 'M21.17 8H12' }],\n ['path', { d: 'M3.95 6.06 8.54 14' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n];\n\nexport default Chromium;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-up-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxNSA1IDUgNS01IiAvPgogIDxwYXRoIGQ9Im03IDkgNS01IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-up-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsUpDown: IconNode = [\n ['path', { d: 'm7 15 5 5 5-5' }],\n ['path', { d: 'm7 9 5-5 5 5' }],\n];\n\nexport default ChevronsUpDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cigarette-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxMyIgLz4KICA8cGF0aCBkPSJNMTggOGMwLTIuNS0yLTIuNS0yLTUiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMjEgMTJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0uNS44NjYiIC8+CiAgPHBhdGggZD0iTTIyIDhjMC0yLjUtMi0yLjUtMi01IiAvPgogIDxwYXRoIGQ9Ik03IDEydjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cigarette-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CigaretteOff: IconNode = [\n ['path', { d: 'M12 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h13' }],\n ['path', { d: 'M18 8c0-2.5-2-2.5-2-5' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M21 12a1 1 0 0 1 1 1v2a1 1 0 0 1-.5.866' }],\n ['path', { d: 'M22 8c0-2.5-2-2.5-2-5' }],\n ['path', { d: 'M7 12v4' }],\n];\n\nexport default CigaretteOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name church\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOWg0IiAvPgogIDxwYXRoIGQ9Ik0xMiA3djUiIC8+CiAgPHBhdGggZD0iTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyIgLz4KICA8cGF0aCBkPSJtMTggOSAzLjUyIDIuMTQ3YTEgMSAwIDAgMSAuNDguODU0VjE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi02Ljk5OWExIDEgMCAwIDEgLjQ4LS44NTRMNiA5IiAvPgogIDxwYXRoIGQ9Ik02IDIxVjdhMSAxIDAgMCAxIC4zNzYtLjc4Mmw1LTMuOTk5YTEgMSAwIDAgMSAxLjI0OS4wMDFsNSA0QTEgMSAwIDAgMSAxOCA3djE0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/church\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Church: IconNode = [\n ['path', { d: 'M10 9h4' }],\n ['path', { d: 'M12 7v5' }],\n ['path', { d: 'M14 21v-3a2 2 0 0 0-4 0v3' }],\n [\n 'path',\n {\n d: 'm18 9 3.52 2.147a1 1 0 0 1 .48.854V19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-6.999a1 1 0 0 1 .48-.854L6 9',\n },\n ],\n ['path', { d: 'M6 21V7a1 1 0 0 1 .376-.782l5-3.999a1 1 0 0 1 1.249.001l5 4A1 1 0 0 1 18 7v14' }],\n];\n\nexport default Church;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cigarette\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxNCIgLz4KICA8cGF0aCBkPSJNMTggOGMwLTIuNS0yLTIuNS0yLTUiIC8+CiAgPHBhdGggZD0iTTIxIDE2YTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMSIgLz4KICA8cGF0aCBkPSJNMjIgOGMwLTIuNS0yLTIuNS0yLTUiIC8+CiAgPHBhdGggZD0iTTcgMTJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cigarette\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cigarette: IconNode = [\n ['path', { d: 'M17 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h14' }],\n ['path', { d: 'M18 8c0-2.5-2-2.5-2-5' }],\n ['path', { d: 'M21 16a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1' }],\n ['path', { d: 'M22 8c0-2.5-2-2.5-2-5' }],\n ['path', { d: 'M7 12v4' }],\n];\n\nexport default Cigarette;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjgiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMi4wMSIgeTE9IjE2IiB5Mj0iMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleAlert: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '12' }],\n ['line', { x1: '12', x2: '12.01', y1: '16', y2: '16' }],\n];\n\nexport default CircleAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgOHY4IiAvPgogIDxwYXRoIGQ9Im04IDEyIDQgNCA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowDown: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 8v8' }],\n ['path', { d: 'm8 12 4 4 4-4' }],\n];\n\nexport default CircleArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTIgOC00IDQgNCA0IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMkg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-arrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowLeft: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm12 8-4 4 4 4' }],\n ['path', { d: 'M16 12H8' }],\n];\n\nexport default CircleArrowLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-out-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMmExMCAxMCAwIDEgMSAxMCAxMCIgLz4KICA8cGF0aCBkPSJtMiAyMiAxMC0xMCIgLz4KICA8cGF0aCBkPSJNOCAyMkgydi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-arrow-out-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowOutDownLeft: IconNode = [\n ['path', { d: 'M2 12a10 10 0 1 1 10 10' }],\n ['path', { d: 'm2 22 10-10' }],\n ['path', { d: 'M8 22H2v-6' }],\n];\n\nexport default CircleArrowOutDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-out-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJhMTAgMTAgMCAxIDEgMTAtMTAiIC8+CiAgPHBhdGggZD0iTTIyIDIyIDEyIDEyIiAvPgogIDxwYXRoIGQ9Ik0yMiAxNnY2aC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-arrow-out-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowOutDownRight: IconNode = [\n ['path', { d: 'M12 22a10 10 0 1 1 10-10' }],\n ['path', { d: 'M22 22 12 12' }],\n ['path', { d: 'M22 16v6h-6' }],\n];\n\nexport default CircleArrowOutDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-out-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA4VjJoNiIgLz4KICA8cGF0aCBkPSJtMiAyIDEwIDEwIiAvPgogIDxwYXRoIGQ9Ik0xMiAyQTEwIDEwIDAgMSAxIDIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-arrow-out-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowOutUpLeft: IconNode = [\n ['path', { d: 'M2 8V2h6' }],\n ['path', { d: 'm2 2 10 10' }],\n ['path', { d: 'M12 2A10 10 0 1 1 2 12' }],\n];\n\nexport default CircleArrowOutUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-out-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTJBMTAgMTAgMCAxIDEgMTIgMiIgLz4KICA8cGF0aCBkPSJNMjIgMiAxMiAxMiIgLz4KICA8cGF0aCBkPSJNMTYgMmg2djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-arrow-out-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowOutUpRight: IconNode = [\n ['path', { d: 'M22 12A10 10 0 1 1 12 2' }],\n ['path', { d: 'M22 2 12 12' }],\n ['path', { d: 'M16 2h6v6' }],\n];\n\nexport default CircleArrowOutUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTIgMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-arrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowRight: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm12 16 4-4-4-4' }],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default CircleArrowRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTYgMTItNC00LTQgNCIgLz4KICA8cGF0aCBkPSJNMTIgMTZWOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowUp: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm16 12-4-4-4 4' }],\n ['path', { d: 'M12 16V8' }],\n];\n\nexport default CircleArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-check-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1IiAvPgogIDxwYXRoIGQ9Im05IDExIDMgM0wyMiA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-check-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleCheckBig: IconNode = [\n ['path', { d: 'M21.801 10A10 10 0 1 1 17 3.335' }],\n ['path', { d: 'm9 11 3 3L22 4' }],\n];\n\nexport default CircleCheckBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleCheck: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default CircleCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-chevron-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTYgMTAtNCA0LTQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-chevron-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleChevronDown: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm16 10-4 4-4-4' }],\n];\n\nexport default CircleChevronDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-chevron-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTQgMTYtNC00IDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-chevron-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleChevronLeft: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm14 16-4-4 4-4' }],\n];\n\nexport default CircleChevronLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-chevron-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTAgOCA0IDQtNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-chevron-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleChevronRight: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm10 8 4 4-4 4' }],\n];\n\nexport default CircleChevronRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-chevron-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtOCAxNCA0LTQgNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-chevron-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleChevronUp: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm8 14 4-4 4 4' }],\n];\n\nexport default CircleChevronUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCIgLz4KICA8cGF0aCBkPSJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAiIC8+CiAgPHBhdGggZD0iTTE3LjYwOSAzLjcyMWExMCAxMCAwIDAgMSAyLjY5IDIuNyIgLz4KICA8cGF0aCBkPSJNMi4xODIgMTMuOWExMCAxMCAwIDAgMSAwLTMuOCIgLz4KICA8cGF0aCBkPSJNMjAuMjc5IDE3LjYwOWExMCAxMCAwIDAgMS0yLjcgMi42OSIgLz4KICA8cGF0aCBkPSJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgiIC8+CiAgPHBhdGggZD0iTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5IiAvPgogIDxwYXRoIGQ9Ik02LjM5MSAyMC4yNzlhMTAgMTAgMCAwIDEtMi42OS0yLjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleDashed: IconNode = [\n ['path', { d: 'M10.1 2.182a10 10 0 0 1 3.8 0' }],\n ['path', { d: 'M13.9 21.818a10 10 0 0 1-3.8 0' }],\n ['path', { d: 'M17.609 3.721a10 10 0 0 1 2.69 2.7' }],\n ['path', { d: 'M2.182 13.9a10 10 0 0 1 0-3.8' }],\n ['path', { d: 'M20.279 17.609a10 10 0 0 1-2.7 2.69' }],\n ['path', { d: 'M21.818 10.1a10 10 0 0 1 0 3.8' }],\n ['path', { d: 'M3.721 6.391a10 10 0 0 1 2.7-2.69' }],\n ['path', { d: 'M6.391 20.279a10 10 0 0 1-2.69-2.7' }],\n];\n\nexport default CircleDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-divide\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iOCIgeDI9IjE2IiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjE2IiB5Mj0iMTYiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSI4IiB5Mj0iOCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-divide\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleDivide: IconNode = [\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12' }],\n ['line', { x1: '12', x2: '12', y1: '16', y2: '16' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '8' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CircleDivide;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-dollar-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTYgOGgtNmEyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMSAxIDAgNEg4IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOFY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-dollar-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleDollarSign: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8' }],\n ['path', { d: 'M12 18V6' }],\n];\n\nexport default CircleDollarSign;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-dot-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMSAyLjE4YTkuOTMgOS45MyAwIDAgMSAzLjggMCIgLz4KICA8cGF0aCBkPSJNMTcuNiAzLjcxYTkuOTUgOS45NSAwIDAgMSAyLjY5IDIuNyIgLz4KICA8cGF0aCBkPSJNMjEuODIgMTAuMWE5LjkzIDkuOTMgMCAwIDEgMCAzLjgiIC8+CiAgPHBhdGggZD0iTTIwLjI5IDE3LjZhOS45NSA5Ljk1IDAgMCAxLTIuNyAyLjY5IiAvPgogIDxwYXRoIGQ9Ik0xMy45IDIxLjgyYTkuOTQgOS45NCAwIDAgMS0zLjggMCIgLz4KICA8cGF0aCBkPSJNNi40IDIwLjI5YTkuOTUgOS45NSAwIDAgMS0yLjY5LTIuNyIgLz4KICA8cGF0aCBkPSJNMi4xOCAxMy45YTkuOTMgOS45MyAwIDAgMSAwLTMuOCIgLz4KICA8cGF0aCBkPSJNMy43MSA2LjRhOS45NSA5Ljk1IDAgMCAxIDIuNy0yLjY5IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-dot-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleDotDashed: IconNode = [\n ['path', { d: 'M10.1 2.18a9.93 9.93 0 0 1 3.8 0' }],\n ['path', { d: 'M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7' }],\n ['path', { d: 'M21.82 10.1a9.93 9.93 0 0 1 0 3.8' }],\n ['path', { d: 'M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69' }],\n ['path', { d: 'M13.9 21.82a9.94 9.94 0 0 1-3.8 0' }],\n ['path', { d: 'M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7' }],\n ['path', { d: 'M2.18 13.9a9.93 9.93 0 0 1 0-3.8' }],\n ['path', { d: 'M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n];\n\nexport default CircleDotDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleDot: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n];\n\nexport default CircleDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTcgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTcgMTJoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleEllipsis: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M17 12h.01' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M7 12h.01' }],\n];\n\nexport default CircleEllipsis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-equal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxMGgxMCIgLz4KICA8cGF0aCBkPSJNNyAxNGgxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-equal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleEqual: IconNode = [\n ['path', { d: 'M7 10h10' }],\n ['path', { d: 'M7 14h10' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CircleEqual;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-fading-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1IiAvPgogIDxwYXRoIGQ9Im0xNiAxMi00LTQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNlY4IiAvPgogIDxwYXRoIGQ9Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyIgLz4KICA8cGF0aCBkPSJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCIgLz4KICA8cGF0aCBkPSJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3IiAvPgogIDxwYXRoIGQ9Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-fading-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleFadingArrowUp: IconNode = [\n ['path', { d: 'M12 2a10 10 0 0 1 7.38 16.75' }],\n ['path', { d: 'm16 12-4-4-4 4' }],\n ['path', { d: 'M12 16V8' }],\n ['path', { d: 'M2.5 8.875a10 10 0 0 0-.5 3' }],\n ['path', { d: 'M2.83 16a10 10 0 0 0 2.43 3.4' }],\n ['path', { d: 'M4.636 5.235a10 10 0 0 1 .891-.857' }],\n ['path', { d: 'M8.644 21.42a10 10 0 0 0 7.631-.38' }],\n];\n\nexport default CircleFadingArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-fading-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1IiAvPgogIDxwYXRoIGQ9Ik0xMiA4djgiIC8+CiAgPHBhdGggZD0iTTE2IDEySDgiIC8+CiAgPHBhdGggZD0iTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIiAvPgogIDxwYXRoIGQ9Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40IiAvPgogIDxwYXRoIGQ9Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTciIC8+CiAgPHBhdGggZD0iTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCIgLz4KPC9zdmc+) - https://lucide.dev/icons/circle-fading-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleFadingPlus: IconNode = [\n ['path', { d: 'M12 2a10 10 0 0 1 7.38 16.75' }],\n ['path', { d: 'M12 8v8' }],\n ['path', { d: 'M16 12H8' }],\n ['path', { d: 'M2.5 8.875a10 10 0 0 0-.5 3' }],\n ['path', { d: 'M2.83 16a10 10 0 0 0 2.43 3.4' }],\n ['path', { d: 'M4.636 5.235a10 10 0 0 1 .891-.857' }],\n ['path', { d: 'M8.644 21.42a10 10 0 0 0 7.631-.38' }],\n];\n\nexport default CircleFadingPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-gauge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNiAyLjdhMTAgMTAgMCAxIDAgNS43IDUuNyIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0xMy40IDEwLjYgMTkgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-gauge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleGauge: IconNode = [\n ['path', { d: 'M15.6 2.7a10 10 0 1 0 5.7 5.7' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['path', { d: 'M13.4 10.6 19 5' }],\n];\n\nexport default CircleGauge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleMinus: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default CircleMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-parking-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNjU2IDdIMTNhMyAzIDAgMCAxIDIuOTg0IDMuMzA3IiAvPgogIDxwYXRoIGQ9Ik0xMyAxM0g5IiAvPgogIDxwYXRoIGQ9Ik0xOS4wNzEgMTkuMDcxQTEgMSAwIDAgMSA0LjkzIDQuOTMiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNOC4zNTcgMi42ODdhMTAgMTAgMCAwIDEgMTIuOTU2IDEyLjk1NiIgLz4KICA8cGF0aCBkPSJNOSAxN1Y5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-parking-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleParkingOff: IconNode = [\n ['path', { d: 'M12.656 7H13a3 3 0 0 1 2.984 3.307' }],\n ['path', { d: 'M13 13H9' }],\n ['path', { d: 'M19.071 19.071A1 1 0 0 1 4.93 4.93' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.357 2.687a10 10 0 0 1 12.956 12.956' }],\n ['path', { d: 'M9 17V9' }],\n];\n\nexport default CircleParkingOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSIgLz4KICA8cGF0aCBkPSJNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleOff: IconNode = [\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.35 2.69A10 10 0 0 1 21.3 15.65' }],\n ['path', { d: 'M19.08 19.08A10 10 0 1 1 4.92 4.92' }],\n];\n\nexport default CircleOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-parking\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-parking\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleParking: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M9 17V7h4a3 3 0 0 1 0 6H9' }],\n];\n\nexport default CircleParking;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iMTAiIHgyPSIxMCIgeTE9IjE1IiB5Mj0iOSIgLz4KICA8bGluZSB4MT0iMTQiIHgyPSIxNCIgeTE9IjE1IiB5Mj0iOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePause: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['line', { x1: '10', x2: '10', y1: '15', y2: '9' }],\n ['line', { x1: '14', x2: '14', y1: '15', y2: '9' }],\n];\n\nexport default CirclePause;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0iTTkgOWguMDEiIC8+CiAgPHBhdGggZD0iTTE1IDE1aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePercent: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'M9 9h.01' }],\n ['path', { d: 'M15 15h.01' }],\n];\n\nexport default CirclePercent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSA5LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdBMSAxIDAgMCAxIDkgMTQuOTk2eiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePlay: IconNode = [\n [\n 'path',\n {\n d: 'M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CirclePlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-pile\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxOSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxMiIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjE5IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjQiIGN5PSIxOSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI4IiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/circle-pile\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePile: IconNode = [\n ['circle', { cx: '12', cy: '19', r: '2' }],\n ['circle', { cx: '12', cy: '5', r: '2' }],\n ['circle', { cx: '16', cy: '12', r: '2' }],\n ['circle', { cx: '20', cy: '19', r: '2' }],\n ['circle', { cx: '4', cy: '19', r: '2' }],\n ['circle', { cx: '8', cy: '12', r: '2' }],\n];\n\nexport default CirclePile;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMiA4djgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePlus: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'M12 8v8' }],\n];\n\nexport default CirclePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-pound-sterling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTZWOS41YTEgMSAwIDAgMSA1IDAiIC8+CiAgPHBhdGggZD0iTTggMTJoNCIgLz4KICA8cGF0aCBkPSJNOCAxNmg3IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-pound-sterling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePoundSterling: IconNode = [\n ['path', { d: 'M10 16V9.5a1 1 0 0 1 5 0' }],\n ['path', { d: 'M8 12h4' }],\n ['path', { d: 'M8 16h7' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CirclePoundSterling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-power\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y0IiAvPgogIDxwYXRoIGQ9Ik03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-power\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePower: IconNode = [\n ['path', { d: 'M12 7v4' }],\n ['path', { d: 'M7.998 9.003a5 5 0 1 0 8-.005' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CirclePower;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleQuestionMark: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default CircleQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-slash-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMiAyIDIyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-slash-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleSlash2: IconNode = [\n ['path', { d: 'M22 2 2 22' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CircleSlash2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjE1IiB5MT0iMTUiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleSlash: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['line', { x1: '9', x2: '15', y1: '15', y2: '9' }],\n];\n\nexport default CircleSlash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-small\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-small\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleSmall: IconNode = [['circle', { cx: '12', cy: '12', r: '6' }]];\n\nexport default CircleSmall;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDUxIDcuNjE2YTEgMSAwIDAgMSAxLjkwOS4wMjRsLjczNyAxLjQ1MmExIDEgMCAwIDAgLjczNy41MzVsMS42MzQuMjU2YTEgMSAwIDAgMSAuNTg4IDEuODA2bC0xLjE3MiAxLjE2OGExIDEgMCAwIDAtLjI4Mi44NjZsLjI1OSAxLjYxM2ExIDEgMCAwIDEtMS41NDEgMS4xMzRsLTEuNDY1LS43NWExIDEgMCAwIDAtLjkxMiAwbC0xLjQ2NS43NWExIDEgMCAwIDEtMS41MzktMS4xMzNsLjI1OC0xLjYxM2ExIDEgMCAwIDAtLjI4Mi0uODY3bC0xLjE1Ni0xLjE1MmExIDEgMCAwIDEgLjU3Mi0xLjgyMmwxLjYzMy0uMjU2YTEgMSAwIDAgMCAuNzM3LS41MzV6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleStar: IconNode = [\n [\n 'path',\n {\n d: 'M11.051 7.616a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.867l-1.156-1.152a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CircleStar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-stop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-stop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleStop: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['rect', { x: '9', y: '9', width: '6', height: '6', rx: '1' }],\n];\n\nexport default CircleStop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-user-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMjBhNiA2IDAgMCAwLTEyIDAiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMCIgcj0iNCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-user-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleUserRound: IconNode = [\n ['path', { d: 'M18 20a6 6 0 0 0-12 0' }],\n ['circle', { cx: '12', cy: '10', r: '4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CircleUserRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEwIiByPSIzIiAvPgogIDxwYXRoIGQ9Ik03IDIwLjY2MlYxOWEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxLjY2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleUser: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662' }],\n];\n\nexport default CircleUser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0ibTkgOSA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleX: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'm9 9 6 6' }],\n];\n\nexport default CircleX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Circle: IconNode = [['circle', { cx: '12', cy: '12', r: '10' }]];\n\nexport default Circle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circuit-board\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMSA5aDRhMiAyIDAgMCAwIDItMlYzIiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSI5IiByPSIyIiAvPgogIDxwYXRoIGQ9Ik03IDIxdi00YTIgMiAwIDAgMSAyLTJoNCIgLz4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjE1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circuit-board\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircuitBoard: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M11 9h4a2 2 0 0 0 2-2V3' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n ['path', { d: 'M7 21v-4a2 2 0 0 1 2-2h4' }],\n ['circle', { cx: '15', cy: '15', r: '2' }],\n];\n\nexport default CircuitBoard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name citrus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuNjYgMTcuNjdhMS4wOCAxLjA4IDAgMCAxLS4wNCAxLjZBMTIgMTIgMCAwIDEgNC43MyAyLjM4YTEuMSAxLjEgMCAwIDEgMS42MS0uMDR6IiAvPgogIDxwYXRoIGQ9Ik0xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0IiAvPgogIDxwYXRoIGQ9Im0xNCAxMC01LjUgNS41IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNy44NVYxMEg2LjE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/citrus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Citrus: IconNode = [\n [\n 'path',\n { d: 'M21.66 17.67a1.08 1.08 0 0 1-.04 1.6A12 12 0 0 1 4.73 2.38a1.1 1.1 0 0 1 1.61-.04z' },\n ],\n ['path', { d: 'M19.65 15.66A8 8 0 0 1 8.35 4.34' }],\n ['path', { d: 'm14 10-5.5 5.5' }],\n ['path', { d: 'M14 17.85V10H6.15' }],\n];\n\nexport default Citrus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clapperboard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuMiA2IDMgMTFsLS45LTIuNGMtLjMtMS4xLjMtMi4yIDEuMy0yLjVsMTMuNS00YzEuMS0uMyAyLjIuMyAyLjUgMS4zWiIgLz4KICA8cGF0aCBkPSJtNi4yIDUuMyAzLjEgMy45IiAvPgogIDxwYXRoIGQ9Im0xMi40IDMuNCAzLjEgNCIgLz4KICA8cGF0aCBkPSJNMyAxMWgxOHY4YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yWiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clapperboard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clapperboard: IconNode = [\n ['path', { d: 'M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z' }],\n ['path', { d: 'm6.2 5.3 3.1 3.9' }],\n ['path', { d: 'm12.4 3.4 3.1 4' }],\n ['path', { d: 'M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z' }],\n];\n\nexport default Clapperboard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Im05IDE0IDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clipboard-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardCheck: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'm9 14 2 2 4-4' }],\n];\n\nexport default ClipboardCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTR2Mi4ybDEuNiAxIiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYuODMyIiAvPgogIDxwYXRoIGQ9Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMiIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSI2IiAvPgogIDxyZWN0IHg9IjgiIHk9IjIiIHdpZHRoPSI4IiBoZWlnaHQ9IjQiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard-clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardClock: IconNode = [\n ['path', { d: 'M16 14v2.2l1.6 1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v.832' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2' }],\n ['circle', { cx: '16', cy: '16', r: '6' }],\n ['rect', { x: '8', y: '2', width: '8', height: '4', rx: '1' }],\n];\n\nexport default ClipboardClock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-copy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnY0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNEgxMSIgLz4KICA8cGF0aCBkPSJtMTUgMTAtNCA0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clipboard-copy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardCopy: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v4' }],\n ['path', { d: 'M21 14H11' }],\n ['path', { d: 'm15 10-4 4 4 4' }],\n];\n\nexport default ClipboardCopy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-list\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMWg0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNmg0IiAvPgogIDxwYXRoIGQ9Ik04IDExaC4wMSIgLz4KICA8cGF0aCBkPSJNOCAxNmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clipboard-list\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardList: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M12 11h4' }],\n ['path', { d: 'M12 16h4' }],\n ['path', { d: 'M8 11h.01' }],\n ['path', { d: 'M8 16h.01' }],\n];\n\nexport default ClipboardList;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik05IDE0aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clipboard-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardMinus: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M9 14h6' }],\n];\n\nexport default ClipboardMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-paste\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTRoMTAiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjEuMzQ0IiAvPgogIDxwYXRoIGQ9Im0xNyAxOCA0LTQtNC00IiAvPgogIDxwYXRoIGQ9Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNzkzLTEuMTEzIiAvPgogIDxyZWN0IHg9IjgiIHk9IjIiIHdpZHRoPSI4IiBoZWlnaHQ9IjQiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard-paste\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardPaste: IconNode = [\n ['path', { d: 'M11 14h10' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v1.344' }],\n ['path', { d: 'm17 18 4-4-4-4' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113' }],\n ['rect', { x: '8', y: '2', width: '8', height: '4', rx: '1' }],\n];\n\nexport default ClipboardPaste;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-pen-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgLz4KICA8cGF0aCBkPSJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LS41IiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDEuNzMgMSIgLz4KICA8cGF0aCBkPSJNOCAxOGgxIiAvPgogIDxwYXRoIGQ9Ik0yMS4zNzggMTIuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clipboard-pen-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardPenLine: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.5' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 1.73 1' }],\n ['path', { d: 'M8 18h1' }],\n [\n 'path',\n {\n d: 'M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n];\n\nexport default ClipboardPenLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgLz4KICA8cGF0aCBkPSJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNS41IiAvPgogIDxwYXRoIGQ9Ik00IDEzLjVWNmEyIDIgMCAwIDEgMi0yaDIiIC8+CiAgPHBhdGggZD0iTTEzLjM3OCAxNS42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clipboard-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardPen: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5' }],\n ['path', { d: 'M4 13.5V6a2 2 0 0 1 2-2h2' }],\n [\n 'path',\n {\n d: 'M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n];\n\nexport default ClipboardPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik05IDE0aDYiIC8+CiAgPHBhdGggZD0iTTEyIDE3di02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardPlus: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M9 14h6' }],\n ['path', { d: 'M12 17v-6' }],\n];\n\nexport default ClipboardPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-type\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik05IDEydi0xaDZ2MSIgLz4KICA8cGF0aCBkPSJNMTEgMTdoMiIgLz4KICA8cGF0aCBkPSJNMTIgMTF2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clipboard-type\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardType: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M9 12v-1h6v1' }],\n ['path', { d: 'M11 17h2' }],\n ['path', { d: 'M12 11v6' }],\n];\n\nexport default ClipboardType;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Im0xNSAxMS02IDYiIC8+CiAgPHBhdGggZD0ibTkgMTEgNiA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardX: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'm15 11-6 6' }],\n ['path', { d: 'm9 11 6 6' }],\n];\n\nexport default ClipboardX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDItNCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock1: IconNode = [\n ['path', { d: 'M12 6v6l2-4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clipboard: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n];\n\nexport default Clipboard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-10\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bC00LTIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-10\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock10: IconNode = [\n ['path', { d: 'M12 6v6l-4-2' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock10;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-11\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bC0yLTQiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-11\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock11: IconNode = [\n ['path', { d: 'M12 6v6l-2-4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock11;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-12\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clock-12\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock12: IconNode = [\n ['path', { d: 'M12 6v6' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock12;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQtMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock2: IconNode = [\n ['path', { d: 'M12 6v6l4-2' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2aDQiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock3: IconNode = [\n ['path', { d: 'M12 6v6h4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock4: IconNode = [\n ['path', { d: 'M12 6v6l4 2' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-5\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDIgNCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-5\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock5: IconNode = [\n ['path', { d: 'M12 6v6l2 4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock5;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-6\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnYxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-6\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock6: IconNode = [\n ['path', { d: 'M12 6v10' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock6;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-7\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bC0yIDQiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-7\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock7: IconNode = [\n ['path', { d: 'M12 6v6l-2 4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock7;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-8\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bC00IDIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-8\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock8: IconNode = [\n ['path', { d: 'M12 6v6l-4 2' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock8;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-9\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2SDgiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-9\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock9: IconNode = [\n ['path', { d: 'M12 6v6H8' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock9;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDIgMSIgLz4KICA8cGF0aCBkPSJNMTIuMzM3IDIxLjk5NGExMCAxMCAwIDEgMSA5LjU4OC04Ljc2NyIgLz4KICA8cGF0aCBkPSJtMTQgMTggNCA0IDQtNCIgLz4KICA8cGF0aCBkPSJNMTggMTR2OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockArrowDown: IconNode = [\n ['path', { d: 'M12 6v6l2 1' }],\n ['path', { d: 'M12.337 21.994a10 10 0 1 1 9.588-8.767' }],\n ['path', { d: 'm14 18 4 4 4-4' }],\n ['path', { d: 'M18 14v8' }],\n];\n\nexport default ClockArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KICA8cGF0aCBkPSJNMjAgMTJ2NSIgLz4KICA8cGF0aCBkPSJNMjAgMjFoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yMS4yNSA4LjJBMTAgMTAgMCAxIDAgMTYgMjEuMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockAlert: IconNode = [\n ['path', { d: 'M12 6v6l4 2' }],\n ['path', { d: 'M20 12v5' }],\n ['path', { d: 'M20 21h.01' }],\n ['path', { d: 'M21.25 8.2A10 10 0 1 0 16 21.16' }],\n];\n\nexport default ClockAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDEuNTYuNzgiIC8+CiAgPHBhdGggZD0iTTEzLjIyNyAyMS45MjVhMTAgMTAgMCAxIDEgOC43NjctOS41ODgiIC8+CiAgPHBhdGggZD0ibTE0IDE4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTE4IDIydi04IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clock-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockArrowUp: IconNode = [\n ['path', { d: 'M12 6v6l1.56.78' }],\n ['path', { d: 'M13.227 21.925a10 10 0 1 1 8.767-9.588' }],\n ['path', { d: 'm14 18 4-4 4 4' }],\n ['path', { d: 'M18 22v-8' }],\n];\n\nexport default ClockArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KICA8cGF0aCBkPSJNMjIgMTJhMTAgMTAgMCAxIDAtMTEgOS45NSIgLz4KICA8cGF0aCBkPSJtMjIgMTYtNS41IDUuNUwxNCAxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockCheck: IconNode = [\n ['path', { d: 'M12 6v6l4 2' }],\n ['path', { d: 'M22 12a10 10 0 1 0-11 9.95' }],\n ['path', { d: 'm22 16-5.5 5.5L14 19' }],\n];\n\nexport default ClockCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-fading\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1IiAvPgogIDxwYXRoIGQ9Ik0xMiA2djZsNCAyIiAvPgogIDxwYXRoIGQ9Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyIgLz4KICA8cGF0aCBkPSJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCIgLz4KICA8cGF0aCBkPSJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3IiAvPgogIDxwYXRoIGQ9Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-fading\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockFading: IconNode = [\n ['path', { d: 'M12 2a10 10 0 0 1 7.38 16.75' }],\n ['path', { d: 'M12 6v6l4 2' }],\n ['path', { d: 'M2.5 8.875a10 10 0 0 0-.5 3' }],\n ['path', { d: 'M2.83 16a10 10 0 0 0 2.43 3.4' }],\n ['path', { d: 'M4.636 5.235a10 10 0 0 1 .891-.857' }],\n ['path', { d: 'M8.644 21.42a10 10 0 0 0 7.631-.38' }],\n];\n\nexport default ClockFading;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDMuNjQ0IDEuODIyIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOWg2IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNnY2IiAvPgogIDxwYXRoIGQ9Ik0yMS45MiAxMy4yNjdhMTAgMTAgMCAxIDAtOC42NTMgOC42NTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockPlus: IconNode = [\n ['path', { d: 'M12 6v6l3.644 1.822' }],\n ['path', { d: 'M16 19h6' }],\n ['path', { d: 'M19 16v6' }],\n ['path', { d: 'M21.92 13.267a10 10 0 1 0-8.653 8.653' }],\n];\n\nexport default ClockPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock: IconNode = [\n ['path', { d: 'M12 6v6l4 2' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name closed-caption\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOS4xN2EzIDMgMCAxIDAgMCA1LjY2IiAvPgogIDxwYXRoIGQ9Ik0xNyA5LjE3YTMgMyAwIDEgMCAwIDUuNjYiIC8+CiAgPHJlY3QgeD0iMiIgeT0iNSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/closed-caption\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClosedCaption: IconNode = [\n ['path', { d: 'M10 9.17a3 3 0 1 0 0 5.66' }],\n ['path', { d: 'M17 9.17a3 3 0 1 0 0 5.66' }],\n ['rect', { x: '2', y: '5', width: '20', height: '14', rx: '2' }],\n];\n\nexport default ClosedCaption;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJ2NCIgLz4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04LjEyOCAxNi45NDlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWExIDEgMCAwIDEgMCA5aC0xLjY0MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudAlert: IconNode = [\n ['path', { d: 'M12 12v4' }],\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M8.128 16.949A7 7 0 1 1 15.71 8h1.79a1 1 0 0 1 0 9h-1.642' }],\n];\n\nexport default CloudAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-backup\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNSA4aC0xLjc5QTcgNyAwIDEgMCAzIDEzLjYwNyIgLz4KICA8cGF0aCBkPSJNNyAxMXY0aDQiIC8+CiAgPHBhdGggZD0iTTggMTlhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjUgNC44MiA0LjgyIDAgMCAwLTMuNDEgMS40MUw3IDE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-backup\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudBackup: IconNode = [\n ['path', { d: 'M21 15.251A4.5 4.5 0 0 0 17.5 8h-1.79A7 7 0 1 0 3 13.607' }],\n ['path', { d: 'M7 11v4h4' }],\n ['path', { d: 'M8 19a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5 4.82 4.82 0 0 0-3.41 1.41L7 15' }],\n];\n\nexport default CloudBackup;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTUtNS41IDUuNUw5IDE4IiAvPgogIDxwYXRoIGQ9Ik01LjUxNiAxNi4wN0E3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMy41MDEgNy4zMjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudCheck: IconNode = [\n ['path', { d: 'm17 15-5.5 5.5L9 18' }],\n ['path', { d: 'M5.516 16.07A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 3.501 7.327' }],\n];\n\nexport default CloudCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuODUyIDE5Ljc3Mi0uMzgzLjkyNCIgLz4KICA8cGF0aCBkPSJtMTMuMTQ4IDE0LjIyOC4zODMtLjkyMyIgLz4KICA8cGF0aCBkPSJNMTMuMTQ4IDE5Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyIgLz4KICA8cGF0aCBkPSJtMTMuNTMgMjAuNjk2LS4zODItLjkyNGEzIDMgMCAxIDEtMi4yOTYtNS41NDQiIC8+CiAgPHBhdGggZD0ibTE0Ljc3MiAxNS44NTIuOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE0Ljc3MiAxOC4xNDguOTIzLjM4MyIgLz4KICA8cGF0aCBkPSJNNC4yIDE1LjFhNyA3IDAgMSAxIDkuOTMtOS44NThBNyA3IDAgMCAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjIiIC8+CiAgPHBhdGggZD0ibTkuMjI4IDE1Ljg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTkuMjI4IDE4LjE0OC0uOTIzLjM4MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudCog: IconNode = [\n ['path', { d: 'm10.852 19.772-.383.924' }],\n ['path', { d: 'm13.148 14.228.383-.923' }],\n ['path', { d: 'M13.148 19.772a3 3 0 1 0-2.296-5.544l-.383-.923' }],\n ['path', { d: 'm13.53 20.696-.382-.924a3 3 0 1 1-2.296-5.544' }],\n ['path', { d: 'm14.772 15.852.923-.383' }],\n ['path', { d: 'm14.772 18.148.923.383' }],\n ['path', { d: 'M4.2 15.1a7 7 0 1 1 9.93-9.858A7 7 0 0 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.2' }],\n ['path', { d: 'm9.228 15.852-.923-.383' }],\n ['path', { d: 'm9.228 18.148-.923.383' }],\n];\n\nexport default CloudCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-download\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2OGwtNC00IiAvPgogIDxwYXRoIGQ9Im0xMiAyMSA0LTQiIC8+CiAgPHBhdGggZD0iTTQuMzkzIDE1LjI2OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi40MzYgOC4yODQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-download\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudDownload: IconNode = [\n ['path', { d: 'M12 13v8l-4-4' }],\n ['path', { d: 'm12 21 4-4' }],\n ['path', { d: 'M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284' }],\n];\n\nexport default CloudDownload;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-drizzle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJNOCAxOXYxIiAvPgogIDxwYXRoIGQ9Ik04IDE0djEiIC8+CiAgPHBhdGggZD0iTTE2IDE5djEiIC8+CiAgPHBhdGggZD0iTTE2IDE0djEiIC8+CiAgPHBhdGggZD0iTTEyIDIxdjEiIC8+CiAgPHBhdGggZD0iTTEyIDE2djEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-drizzle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudDrizzle: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'M8 19v1' }],\n ['path', { d: 'M8 14v1' }],\n ['path', { d: 'M16 19v1' }],\n ['path', { d: 'M16 14v1' }],\n ['path', { d: 'M12 21v1' }],\n ['path', { d: 'M12 16v1' }],\n];\n\nexport default CloudDrizzle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-fog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJNMTYgMTdINyIgLz4KICA8cGF0aCBkPSJNMTcgMjFIOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-fog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudFog: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'M16 17H7' }],\n ['path', { d: 'M17 21H9' }],\n];\n\nexport default CloudFog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-hail\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJNMTYgMTR2MiIgLz4KICA8cGF0aCBkPSJNOCAxNHYyIiAvPgogIDxwYXRoIGQ9Ik0xNiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTggMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNnYyIiAvPgogIDxwYXRoIGQ9Ik0xMiAyMmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-hail\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudHail: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'M16 14v2' }],\n ['path', { d: 'M8 14v2' }],\n ['path', { d: 'M16 20h.01' }],\n ['path', { d: 'M8 20h.01' }],\n ['path', { d: 'M12 16v2' }],\n ['path', { d: 'M12 22h.01' }],\n];\n\nexport default CloudHail;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-moon-rain\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjB2MiIgLz4KICA8cGF0aCBkPSJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2IiAvPgogIDxwYXRoIGQ9Ik0zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0IiAvPgogIDxwYXRoIGQ9Ik03IDE5djIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-moon-rain\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudMoonRain: IconNode = [\n ['path', { d: 'M11 20v2' }],\n [\n 'path',\n {\n d: 'M18.376 14.512a6 6 0 0 0 3.461-4.127c.148-.625-.659-.97-1.248-.714a4 4 0 0 1-5.259-5.26c.255-.589-.09-1.395-.716-1.248a6 6 0 0 0-4.594 5.36',\n },\n ],\n ['path', { d: 'M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24' }],\n ['path', { d: 'M7 19v2' }],\n];\n\nexport default CloudMoonRain;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-lightning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxNi4zMjZBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIC41IDguOTczIiAvPgogIDxwYXRoIGQ9Im0xMyAxMi0zIDVoNGwtMyA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-lightning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudLightning: IconNode = [\n ['path', { d: 'M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973' }],\n ['path', { d: 'm13 12-3 5h4l-3 5' }],\n];\n\nexport default CloudLightning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-moon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTZhMyAzIDAgMCAxIDAgNkg3YTUgNSAwIDEgMSA0LjktNnoiIC8+CiAgPHBhdGggZD0iTTE4LjM3NiAxNC41MTJhNiA2IDAgMCAwIDMuNDYxLTQuMTI3Yy4xNDgtLjYyNS0uNjU5LS45Ny0xLjI0OC0uNzE0YTQgNCAwIDAgMS01LjI1OS01LjI2Yy4yNTUtLjU4OS0uMDktMS4zOTUtLjcxNi0xLjI0OGE2IDYgMCAwIDAtNC41OTQgNS4zNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-moon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudMoon: IconNode = [\n ['path', { d: 'M13 16a3 3 0 0 1 0 6H7a5 5 0 1 1 4.9-6z' }],\n [\n 'path',\n {\n d: 'M18.376 14.512a6 6 0 0 0 3.461-4.127c.148-.625-.659-.97-1.248-.714a4 4 0 0 1-5.259-5.26c.255-.589-.09-1.395-.716-1.248a6 6 0 0 0-4.594 5.36',\n },\n ],\n];\n\nexport default CloudMoon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuOTQgNS4yNzRBNyA3IDAgMCAxIDE1LjcxIDEwaDEuNzlhNC41IDQuNSAwIDAgMSA0LjIyMiA2LjA1NyIgLz4KICA8cGF0aCBkPSJNMTguNzk2IDE4LjgxQTQuNSA0LjUgMCAwIDEgMTcuNSAxOUg5QTcgNyAwIDAgMSA1Ljc5IDUuNzgiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudOff: IconNode = [\n ['path', { d: 'M10.94 5.274A7 7 0 0 1 15.71 10h1.79a4.5 4.5 0 0 1 4.222 6.057' }],\n ['path', { d: 'M18.796 18.81A4.5 4.5 0 0 1 17.5 19H9A7 7 0 0 1 5.79 5.78' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default CloudOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-rain-wind\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJtOS4yIDIyIDMtNyIgLz4KICA8cGF0aCBkPSJtOSAxMy0zIDciIC8+CiAgPHBhdGggZD0ibTE3IDEzLTMgNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-rain-wind\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudRainWind: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'm9.2 22 3-7' }],\n ['path', { d: 'm9 13-3 7' }],\n ['path', { d: 'm17 13-3 7' }],\n];\n\nexport default CloudRainWind;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-rain\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJNMTYgMTR2NiIgLz4KICA8cGF0aCBkPSJNOCAxNHY2IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-rain\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudRain: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'M16 14v6' }],\n ['path', { d: 'M8 14v6' }],\n ['path', { d: 'M12 16v6' }],\n];\n\nexport default CloudRain;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-snow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJNOCAxNWguMDEiIC8+CiAgPHBhdGggZD0iTTggMTloLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxN2guMDEiIC8+CiAgPHBhdGggZD0iTTEyIDIxaC4wMSIgLz4KICA8cGF0aCBkPSJNMTYgMTVoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-snow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudSnow: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'M8 15h.01' }],\n ['path', { d: 'M8 19h.01' }],\n ['path', { d: 'M12 17h.01' }],\n ['path', { d: 'M12 21h.01' }],\n ['path', { d: 'M16 15h.01' }],\n ['path', { d: 'M16 19h.01' }],\n];\n\nexport default CloudSnow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-sun-rain\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Im00LjkzIDQuOTMgMS40MSAxLjQxIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im0xOS4wNyA0LjkzLTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMTUuOTQ3IDEyLjY1YTQgNCAwIDAgMC01LjkyNS00LjEyOCIgLz4KICA8cGF0aCBkPSJNMyAyMGE1IDUgMCAxIDEgOC45LTRIMTNhMyAzIDAgMCAxIDIgNS4yNCIgLz4KICA8cGF0aCBkPSJNMTEgMjB2MiIgLz4KICA8cGF0aCBkPSJNNyAxOXYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-sun-rain\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudSunRain: IconNode = [\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41' }],\n ['path', { d: 'M20 12h2' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41' }],\n ['path', { d: 'M15.947 12.65a4 4 0 0 0-5.925-4.128' }],\n ['path', { d: 'M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24' }],\n ['path', { d: 'M11 20v2' }],\n ['path', { d: 'M7 19v2' }],\n];\n\nexport default CloudSunRain;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-sun\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Im00LjkzIDQuOTMgMS40MSAxLjQxIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im0xOS4wNyA0LjkzLTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMTUuOTQ3IDEyLjY1YTQgNCAwIDAgMC01LjkyNS00LjEyOCIgLz4KICA8cGF0aCBkPSJNMTMgMjJIN2E1IDUgMCAxIDEgNC45LTZIMTNhMyAzIDAgMCAxIDAgNloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-sun\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudSun: IconNode = [\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41' }],\n ['path', { d: 'M20 12h2' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41' }],\n ['path', { d: 'M15.947 12.65a4 4 0 0 0-5.925-4.128' }],\n ['path', { d: 'M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z' }],\n];\n\nexport default CloudSun;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-sync\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41IiAvPgogIDxwYXRoIGQ9Ik0xNyAyMnYtNGgtNCIgLz4KICA8cGF0aCBkPSJNMjAuOTk2IDE1LjI1MUE0LjUgNC41IDAgMCAwIDE3LjQ5NSA4aC0xLjc5YTcgNyAwIDEgMC0xMi43MDkgNS42MDciIC8+CiAgPHBhdGggZD0iTTcgMTB2NGg0IiAvPgogIDxwYXRoIGQ9Im03IDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-sync\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudSync: IconNode = [\n ['path', { d: 'm17 18-1.535 1.605a5 5 0 0 1-8-1.5' }],\n ['path', { d: 'M17 22v-4h-4' }],\n ['path', { d: 'M20.996 15.251A4.5 4.5 0 0 0 17.495 8h-1.79a7 7 0 1 0-12.709 5.607' }],\n ['path', { d: 'M7 10v4h4' }],\n ['path', { d: 'm7 14 1.535-1.605a5 5 0 0 1 8 1.5' }],\n];\n\nexport default CloudSync;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-upload\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2OCIgLz4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJtOCAxNyA0LTQgNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-upload\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudUpload: IconNode = [\n ['path', { d: 'M12 13v8' }],\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'm8 17 4-4 4 4' }],\n];\n\nexport default CloudUpload;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuNSAxOUg5YTcgNyAwIDEgMSA2LjcxLTloMS43OWE0LjUgNC41IDAgMSAxIDAgOVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cloud: IconNode = [['path', { d: 'M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z' }]];\n\nexport default Cloud;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloudy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuNSAxMmExIDEgMCAxIDEgMCA5SDkuMDA2YTcgNyAwIDEgMSA2LjcwMi05eiIgLz4KICA8cGF0aCBkPSJNMjEuODMyIDlBMyAzIDAgMCAwIDE5IDdoLTIuMjA3YTUuNSA1LjUgMCAwIDAtMTAuNzIuNjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloudy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cloudy: IconNode = [\n ['path', { d: 'M17.5 12a1 1 0 1 1 0 9H9.006a7 7 0 1 1 6.702-9z' }],\n ['path', { d: 'M21.832 9A3 3 0 0 0 19 7h-2.207a5.5 5.5 0 0 0-10.72.61' }],\n];\n\nexport default Cloudy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clover\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuMTcgNy44MyAyIDIyIiAvPgogIDxwYXRoIGQ9Ik00LjAyIDEyYTIuODI3IDIuODI3IDAgMSAxIDMuODEtNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiA0LjAyYTIuODI3IDIuODI3IDAgMSAxIDQuMTcgMy44MUEyLjgyNyAyLjgyNyAwIDEgMSAxOS45OCAxMmEyLjgyNyAyLjgyNyAwIDEgMS0zLjgxIDQuMTdBMi44MjcgMi44MjcgMCAxIDEgMTIgMTkuOThhMi44MjcgMi44MjcgMCAxIDEtNC4xNy0zLjgxQTEgMSAwIDEgMSA0IDEyIiAvPgogIDxwYXRoIGQ9Im03LjgzIDcuODMgOC4zNCA4LjM0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clover\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clover: IconNode = [\n ['path', { d: 'M16.17 7.83 2 22' }],\n [\n 'path',\n {\n d: 'M4.02 12a2.827 2.827 0 1 1 3.81-4.17A2.827 2.827 0 1 1 12 4.02a2.827 2.827 0 1 1 4.17 3.81A2.827 2.827 0 1 1 19.98 12a2.827 2.827 0 1 1-3.81 4.17A2.827 2.827 0 1 1 12 19.98a2.827 2.827 0 1 1-4.17-3.81A1 1 0 1 1 4 12',\n },\n ],\n ['path', { d: 'm7.83 7.83 8.34 8.34' }],\n];\n\nexport default Clover;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name club\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuMjggOS4wNWE1LjUgNS41IDAgMSAwLTEwLjU2IDBBNS41IDUuNSAwIDEgMCAxMiAxNy42NmE1LjUgNS41IDAgMSAwIDUuMjgtOC42WiIgLz4KICA8cGF0aCBkPSJNMTIgMTcuNjZMMTIgMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/club\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Club: IconNode = [\n [\n 'path',\n { d: 'M17.28 9.05a5.5 5.5 0 1 0-10.56 0A5.5 5.5 0 1 0 12 17.66a5.5 5.5 0 1 0 5.28-8.6Z' },\n ],\n ['path', { d: 'M12 17.66L12 22' }],\n];\n\nexport default Club;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name code-xml\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJtNiA4LTQgNCA0IDQiIC8+CiAgPHBhdGggZD0ibTE0LjUgNC01IDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/code-xml\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CodeXml: IconNode = [\n ['path', { d: 'm18 16 4-4-4-4' }],\n ['path', { d: 'm6 8-4 4 4 4' }],\n ['path', { d: 'm14.5 4-5 16' }],\n];\n\nexport default CodeXml;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTggNi02LTYtNiIgLz4KICA8cGF0aCBkPSJtOCA2LTYgNiA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Code: IconNode = [\n ['path', { d: 'm16 18 6-6-6-6' }],\n ['path', { d: 'm8 6-6 6 6 6' }],\n];\n\nexport default Code;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name codepen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjEyIDIgMjIgOC41IDIyIDE1LjUgMTIgMjIgMiAxNS41IDIgOC41IDEyIDIiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSIyMiIgeTI9IjE1LjUiIC8+CiAgPHBvbHlsaW5lIHBvaW50cz0iMjIgOC41IDEyIDE1LjUgMiA4LjUiIC8+CiAgPHBvbHlsaW5lIHBvaW50cz0iMiAxNS41IDEyIDguNSAyMiAxNS41IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMiIgeTI9IjguNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/codepen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=codepen instead. This icon will be removed in v1.0\n */\nconst Codepen: IconNode = [\n ['polygon', { points: '12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '15.5' }],\n ['polyline', { points: '22 8.5 12 15.5 2 8.5' }],\n ['polyline', { points: '2 15.5 12 8.5 22 15.5' }],\n ['line', { x1: '12', x2: '12', y1: '2', y2: '8.5' }],\n];\n\nexport default Codepen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name codesandbox\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjcuNSA0LjIxIDEyIDYuODEgMTYuNSA0LjIxIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjcuNSAxOS43OSA3LjUgMTQuNiAzIDEyIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjIxIDEyIDE2LjUgMTQuNiAxNi41IDE5Ljc5IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjcgNi45NiAxMiAxMi4wMSAyMC43MyA2Ljk2IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIuMDgiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/codesandbox\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=codesandbox instead. This icon will be removed in v1.0\n */\nconst Codesandbox: IconNode = [\n [\n 'path',\n {\n d: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',\n },\n ],\n ['polyline', { points: '7.5 4.21 12 6.81 16.5 4.21' }],\n ['polyline', { points: '7.5 19.79 7.5 14.6 3 12' }],\n ['polyline', { points: '21 12 16.5 14.6 16.5 19.79' }],\n ['polyline', { points: '3.27 6.96 12 12.01 20.73 6.96' }],\n ['line', { x1: '12', x2: '12', y1: '22.08', y2: '12' }],\n];\n\nexport default Codesandbox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name coffee\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNCAydjIiIC8+CiAgPHBhdGggZD0iTTE2IDhhMSAxIDAgMCAxIDEgMXY4YTQgNCAwIDAgMS00IDRIN2E0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMWgxNGE0IDQgMCAxIDEgMCA4aC0xIiAvPgogIDxwYXRoIGQ9Ik02IDJ2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/coffee\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Coffee: IconNode = [\n ['path', { d: 'M10 2v2' }],\n ['path', { d: 'M14 2v2' }],\n [\n 'path',\n {\n d: 'M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1',\n },\n ],\n ['path', { d: 'M6 2v2' }],\n];\n\nexport default Coffee;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTAuMjcgNyAzLjM0IiAvPgogIDxwYXRoIGQ9Im0xMSAxMy43My00IDYuOTMiIC8+CiAgPHBhdGggZD0iTTEyIDIydi0yIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTE0IDEyaDgiIC8+CiAgPHBhdGggZD0ibTE3IDIwLjY2LTEtMS43MyIgLz4KICA8cGF0aCBkPSJtMTcgMy4zNC0xIDEuNzMiIC8+CiAgPHBhdGggZD0iTTIgMTJoMiIgLz4KICA8cGF0aCBkPSJtMjAuNjYgMTctMS43My0xIiAvPgogIDxwYXRoIGQ9Im0yMC42NiA3LTEuNzMgMSIgLz4KICA8cGF0aCBkPSJtMy4zNCAxNyAxLjczLTEiIC8+CiAgPHBhdGggZD0ibTMuMzQgNyAxLjczIDEiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cog: IconNode = [\n ['path', { d: 'M11 10.27 7 3.34' }],\n ['path', { d: 'm11 13.73-4 6.93' }],\n ['path', { d: 'M12 22v-2' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M14 12h8' }],\n ['path', { d: 'm17 20.66-1-1.73' }],\n ['path', { d: 'm17 3.34-1 1.73' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'm20.66 17-1.73-1' }],\n ['path', { d: 'm20.66 7-1.73 1' }],\n ['path', { d: 'm3.34 17 1.73-1' }],\n ['path', { d: 'm3.34 7 1.73 1' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['circle', { cx: '12', cy: '12', r: '8' }],\n];\n\nexport default Cog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name coins\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNiIgLz4KICA8cGF0aCBkPSJNMTguMDkgMTAuMzdBNiA2IDAgMSAxIDEwLjM0IDE4IiAvPgogIDxwYXRoIGQ9Ik03IDZoMXY0IiAvPgogIDxwYXRoIGQ9Im0xNi43MSAxMy44OC43LjcxLTIuODIgMi44MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/coins\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Coins: IconNode = [\n ['circle', { cx: '8', cy: '8', r: '6' }],\n ['path', { d: 'M18.09 10.37A6 6 0 1 1 10.34 18' }],\n ['path', { d: 'M7 6h1v4' }],\n ['path', { d: 'm16.71 13.88.7.71-2.82 2.82' }],\n];\n\nexport default Coins;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name columns-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/columns-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Columns2: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M12 3v18' }],\n];\n\nexport default Columns2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name columns-3-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NS41IiAvPgogIDxwYXRoIGQ9Im0xNC4zIDE5LjYgMS0uNCIgLz4KICA8cGF0aCBkPSJNMTUgM3Y3LjUiIC8+CiAgPHBhdGggZD0ibTE1LjIgMTYuOS0uOS0uMyIgLz4KICA8cGF0aCBkPSJtMTYuNiAyMS43LjMtLjkiIC8+CiAgPHBhdGggZD0ibTE2LjggMTUuMy0uNC0xIiAvPgogIDxwYXRoIGQ9Im0xOS4xIDE1LjIuMy0uOSIgLz4KICA8cGF0aCBkPSJtMTkuNiAyMS43LS40LTEiIC8+CiAgPHBhdGggZD0ibTIwLjcgMTYuOCAxLS40IiAvPgogIDxwYXRoIGQ9Im0yMS43IDE5LjQtLjktLjMiIC8+CiAgPHBhdGggZD0iTTkgM3YxOCIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/columns-3-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Columns3Cog: IconNode = [\n ['path', { d: 'M10.5 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.5' }],\n ['path', { d: 'm14.3 19.6 1-.4' }],\n ['path', { d: 'M15 3v7.5' }],\n ['path', { d: 'm15.2 16.9-.9-.3' }],\n ['path', { d: 'm16.6 21.7.3-.9' }],\n ['path', { d: 'm16.8 15.3-.4-1' }],\n ['path', { d: 'm19.1 15.2.3-.9' }],\n ['path', { d: 'm19.6 21.7-.4-1' }],\n ['path', { d: 'm20.7 16.8 1-.4' }],\n ['path', { d: 'm21.7 19.4-.9-.3' }],\n ['path', { d: 'M9 3v18' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default Columns3Cog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name columns-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+CiAgPHBhdGggZD0iTTE1IDN2MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/columns-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Columns3: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 3v18' }],\n ['path', { d: 'M15 3v18' }],\n];\n\nexport default Columns3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name columns-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03LjUgM3YxOCIgLz4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cGF0aCBkPSJNMTYuNSAzdjE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/columns-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Columns4: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7.5 3v18' }],\n ['path', { d: 'M12 3v18' }],\n ['path', { d: 'M16.5 3v18' }],\n];\n\nexport default Columns4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name combine\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSIgLz4KICA8cGF0aCBkPSJNMTkgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSIgLz4KICA8cGF0aCBkPSJtNyAxNSAzIDMiIC8+CiAgPHBhdGggZD0ibTcgMjEgMy0zSDVhMiAyIDAgMCAxLTItMnYtMiIgLz4KICA8cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/combine\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Combine: IconNode = [\n ['path', { d: 'M14 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1' }],\n ['path', { d: 'M19 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1' }],\n ['path', { d: 'm7 15 3 3' }],\n ['path', { d: 'm7 21 3-3H5a2 2 0 0 1-2-2v-2' }],\n ['rect', { x: '14', y: '14', width: '7', height: '7', rx: '1' }],\n ['rect', { x: '3', y: '3', width: '7', height: '7', rx: '1' }],\n];\n\nexport default Combine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name command\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNnYxMmEzIDMgMCAxIDAgMy0zSDZhMyAzIDAgMSAwIDMgM1Y2YTMgMyAwIDEgMC0zIDNoMTJhMyAzIDAgMSAwLTMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/command\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Command: IconNode = [\n ['path', { d: 'M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3' }],\n];\n\nexport default Command;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name compass\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYuMjQgNy43Ni0xLjgwNCA1LjQxMWEyIDIgMCAwIDEtMS4yNjUgMS4yNjVMNy43NiAxNi4yNGwxLjgwNC01LjQxMWEyIDIgMCAwIDEgMS4yNjUtMS4yNjV6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/compass\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Compass: IconNode = [\n [\n 'path',\n {\n d: 'm16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Compass;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name component\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNTM2IDExLjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NiAyLjM3N2ExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3N2ExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6IiAvPgogIDxwYXRoIGQ9Ik0yLjI5NyAxMS4yOTNhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzcgMi4zNzdhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzdhMSAxIDAgMCAwIDAtMS40MTRMNi4wODggOC45MTZhMSAxIDAgMCAwLTEuNDE0IDB6IiAvPgogIDxwYXRoIGQ9Ik04LjkxNiAxNy45MTJhMSAxIDAgMCAwIDAgMS40MTVsMi4zNzcgMi4zNzZhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzZhMSAxIDAgMCAwIDAtMS40MTVsLTIuMzc3LTIuMzc2YTEgMSAwIDAgMC0xLjQxNCAweiIgLz4KICA8cGF0aCBkPSJNOC45MTYgNC42NzRhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzcgMi4zNzZhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzZhMSAxIDAgMCAwIDAtMS40MTRsLTIuMzc3LTIuMzc3YTEgMSAwIDAgMC0xLjQxNCAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/component\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Component: IconNode = [\n [\n 'path',\n {\n d: 'M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z',\n },\n ],\n];\n\nexport default Component;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name computer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iOCIgeD0iNSIgeT0iMiIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHg9IjIiIHk9IjE0IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNiAxOGgyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/computer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Computer: IconNode = [\n ['rect', { width: '14', height: '8', x: '5', y: '2', rx: '2' }],\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2' }],\n ['path', { d: 'M6 18h2' }],\n ['path', { d: 'M12 18h6' }],\n];\n\nexport default Computer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name concierge-bell\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAyMGExIDEgMCAwIDEtMS0xdi0xYTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFaIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNmE4IDggMCAxIDAtMTYgMCIgLz4KICA8cGF0aCBkPSJNMTIgNHY0IiAvPgogIDxwYXRoIGQ9Ik0xMCA0aDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/concierge-bell\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ConciergeBell: IconNode = [\n ['path', { d: 'M3 20a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1Z' }],\n ['path', { d: 'M20 16a8 8 0 1 0-16 0' }],\n ['path', { d: 'M12 4v4' }],\n ['path', { d: 'M10 4h4' }],\n];\n\nexport default ConciergeBell;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjAuOSAxOC41NS04LTE1Ljk4YTEgMSAwIDAgMC0xLjggMGwtOCAxNS45OCIgLz4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSIxOSIgcng9IjkiIHJ5PSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cone: IconNode = [\n ['path', { d: 'm20.9 18.55-8-15.98a1 1 0 0 0-1.8 0l-8 15.98' }],\n ['ellipse', { cx: '12', cy: '19', rx: '9', ry: '3' }],\n];\n\nexport default Cone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name contact-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNy45MTUgMjJhNiA2IDAgMCAwLTEyIDAiIC8+CiAgPHBhdGggZD0iTTggMnYyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjQiIC8+CiAgPHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/contact-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ContactRound: IconNode = [\n ['path', { d: 'M16 2v2' }],\n ['path', { d: 'M17.915 22a6 6 0 0 0-12 0' }],\n ['path', { d: 'M8 2v2' }],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['rect', { x: '3', y: '4', width: '18', height: '18', rx: '2' }],\n];\n\nexport default ContactRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name construction\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTE3IDE0djciIC8+CiAgPHBhdGggZD0iTTcgMTR2NyIgLz4KICA8cGF0aCBkPSJNMTcgM3YzIiAvPgogIDxwYXRoIGQ9Ik03IDN2MyIgLz4KICA8cGF0aCBkPSJNMTAgMTQgMi4zIDYuMyIgLz4KICA8cGF0aCBkPSJtMTQgNiA3LjcgNy43IiAvPgogIDxwYXRoIGQ9Im04IDYgOCA4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/construction\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Construction: IconNode = [\n ['rect', { x: '2', y: '6', width: '20', height: '8', rx: '1' }],\n ['path', { d: 'M17 14v7' }],\n ['path', { d: 'M7 14v7' }],\n ['path', { d: 'M17 3v3' }],\n ['path', { d: 'M7 3v3' }],\n ['path', { d: 'M10 14 2.3 6.3' }],\n ['path', { d: 'm14 6 7.7 7.7' }],\n ['path', { d: 'm8 6 8 8' }],\n];\n\nexport default Construction;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name contact\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMnYyIiAvPgogIDxwYXRoIGQ9Ik03IDIydi0yYTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjIiIC8+CiAgPHBhdGggZD0iTTggMnYyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTEiIHI9IjMiIC8+CiAgPHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/contact\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Contact: IconNode = [\n ['path', { d: 'M16 2v2' }],\n ['path', { d: 'M7 22v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M8 2v2' }],\n ['circle', { cx: '12', cy: '11', r: '3' }],\n ['rect', { x: '3', y: '4', width: '18', height: '18', rx: '2' }],\n];\n\nexport default Contact;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name container\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgNy43YzAtLjYtLjQtMS4yLS44LTEuNWwtNi4zLTMuOWExLjcyIDEuNzIgMCAwIDAtMS43IDBsLTEwLjMgNmMtLjUuMi0uOS44LS45IDEuNHY2LjZjMCAuNS40IDEuMi44IDEuNWw2LjMgMy45YTEuNzIgMS43MiAwIDAgMCAxLjcgMGwxMC4zLTZjLjUtLjMuOS0xIC45LTEuNVoiIC8+CiAgPHBhdGggZD0iTTEwIDIxLjlWMTRMMi4xIDkuMSIgLz4KICA8cGF0aCBkPSJtMTAgMTQgMTEuOS02LjkiIC8+CiAgPHBhdGggZD0iTTE0IDE5Ljh2LTguMSIgLz4KICA8cGF0aCBkPSJNMTggMTcuNVY5LjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/container\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Container: IconNode = [\n [\n 'path',\n {\n d: 'M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z',\n },\n ],\n ['path', { d: 'M10 21.9V14L2.1 9.1' }],\n ['path', { d: 'm10 14 11.9-6.9' }],\n ['path', { d: 'M14 19.8v-8.1' }],\n ['path', { d: 'M18 17.5V9.4' }],\n];\n\nexport default Container;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cookie\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTUiIC8+CiAgPHBhdGggZD0iTTguNSA4LjV2LjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNS41di4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTJ2LjAxIiAvPgogIDxwYXRoIGQ9Ik0xMSAxN3YuMDEiIC8+CiAgPHBhdGggZD0iTTcgMTR2LjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cookie\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cookie: IconNode = [\n ['path', { d: 'M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5' }],\n ['path', { d: 'M8.5 8.5v.01' }],\n ['path', { d: 'M16 15.5v.01' }],\n ['path', { d: 'M12 12v.01' }],\n ['path', { d: 'M11 17v.01' }],\n ['path', { d: 'M7 14v.01' }],\n];\n\nexport default Cookie;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name contrast\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMThhNiA2IDAgMCAwIDAtMTJ2MTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/contrast\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Contrast: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 18a6 6 0 0 0 0-12v12z' }],\n];\n\nexport default Contrast;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cooking-pot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KICA8cGF0aCBkPSJNMjAgMTJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCIgLz4KICA8cGF0aCBkPSJtNCA4IDE2LTQiIC8+CiAgPHBhdGggZD0ibTguODYgNi43OC0uNDUtMS44MWEyIDIgMCAwIDEgMS40NS0yLjQzbDEuOTQtLjQ4YTIgMiAwIDAgMSAyLjQzIDEuNDZsLjQ1IDEuOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cooking-pot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CookingPot: IconNode = [\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8' }],\n ['path', { d: 'm4 8 16-4' }],\n ['path', { d: 'm8.86 6.78-.45-1.81a2 2 0 0 1 1.45-2.43l1.94-.48a2 2 0 0 1 2.43 1.46l.45 1.8' }],\n];\n\nexport default CookingPot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTUgMiAyIDQtNCIgLz4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CopyCheck: IconNode = [\n ['path', { d: 'm12 15 2 2 4-4' }],\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default CopyCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxOCIgeTE9IjE1IiB5Mj0iMTUiIC8+CiAgPHJlY3Qgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB4PSI4IiB5PSI4IiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/copy-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CopyMinus: IconNode = [\n ['line', { x1: '12', x2: '18', y1: '15', y2: '15' }],\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default CopyMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTUiIHgyPSIxNSIgeTE9IjEyIiB5Mj0iMTgiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTgiIHkxPSIxNSIgeTI9IjE1IiAvPgogIDxyZWN0IHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgeD0iOCIgeT0iOCIgcng9IjIiIHJ5PSIyIiAvPgogIDxwYXRoIGQ9Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/copy-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CopyPlus: IconNode = [\n ['line', { x1: '15', x2: '15', y1: '12', y2: '18' }],\n ['line', { x1: '12', x2: '18', y1: '15', y2: '15' }],\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default CopyPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy-slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxOCIgeTE9IjE4IiB5Mj0iMTIiIC8+CiAgPHJlY3Qgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB4PSI4IiB5PSI4IiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/copy-slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CopySlash: IconNode = [\n ['line', { x1: '12', x2: '18', y1: '18', y2: '12' }],\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default CopySlash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxOCIgeTE9IjEyIiB5Mj0iMTgiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTgiIHkxPSIxOCIgeTI9IjEyIiAvPgogIDxyZWN0IHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgeD0iOCIgeT0iOCIgcng9IjIiIHJ5PSIyIiAvPgogIDxwYXRoIGQ9Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/copy-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CopyX: IconNode = [\n ['line', { x1: '12', x2: '18', y1: '12', y2: '18' }],\n ['line', { x1: '12', x2: '18', y1: '18', y2: '12' }],\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default CopyX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Copy: IconNode = [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default Copy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copyleft\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOS4xNyAxNC44M2E0IDQgMCAxIDAgMC01LjY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copyleft\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Copyleft: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M9.17 14.83a4 4 0 1 0 0-5.66' }],\n];\n\nexport default Copyleft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copyright\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTQuODMgMTQuODNhNCA0IDAgMSAxIDAtNS42NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/copyright\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Copyright: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M14.83 14.83a4 4 0 1 1 0-5.66' }],\n];\n\nexport default Copyright;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCIgLz4KICA8cGF0aCBkPSJtOSAxMC01IDUgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/corner-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerDownLeft: IconNode = [\n ['path', { d: 'M20 4v7a4 4 0 0 1-4 4H4' }],\n ['path', { d: 'm9 10-5 5 5 5' }],\n];\n\nexport default CornerDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTAgNSA1LTUgNSIgLz4KICA8cGF0aCBkPSJNNCA0djdhNCA0IDAgMCAwIDQgNGgxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/corner-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerDownRight: IconNode = [\n ['path', { d: 'm15 10 5 5-5 5' }],\n ['path', { d: 'M4 4v7a4 4 0 0 0 4 4h12' }],\n];\n\nexport default CornerDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-left-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTUtNSA1LTUtNSIgLz4KICA8cGF0aCBkPSJNMjAgNGgtN2E0IDQgMCAwIDAtNCA0djEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/corner-left-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerLeftDown: IconNode = [\n ['path', { d: 'm14 15-5 5-5-5' }],\n ['path', { d: 'M20 4h-7a4 4 0 0 0-4 4v12' }],\n];\n\nexport default CornerLeftDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-left-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgOSA5IDQgNCA5IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGgtN2E0IDQgMCAwIDEtNC00VjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/corner-left-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerLeftUp: IconNode = [\n ['path', { d: 'M14 9 9 4 4 9' }],\n ['path', { d: 'M20 20h-7a4 4 0 0 1-4-4V4' }],\n];\n\nexport default CornerLeftUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-right-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTUgNSA1IDUtNSIgLz4KICA8cGF0aCBkPSJNNCA0aDdhNCA0IDAgMCAxIDQgNHYxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/corner-right-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerRightDown: IconNode = [\n ['path', { d: 'm10 15 5 5 5-5' }],\n ['path', { d: 'M4 4h7a4 4 0 0 1 4 4v12' }],\n];\n\nexport default CornerRightDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-right-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgOSA1LTUgNSA1IiAvPgogIDxwYXRoIGQ9Ik00IDIwaDdhNCA0IDAgMCAwIDQtNFY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/corner-right-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerRightUp: IconNode = [\n ['path', { d: 'm10 9 5-5 5 5' }],\n ['path', { d: 'M4 20h7a4 4 0 0 0 4-4V4' }],\n];\n\nexport default CornerRightUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjB2LTdhNCA0IDAgMCAwLTQtNEg0IiAvPgogIDxwYXRoIGQ9Ik05IDE0IDQgOWw1LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/corner-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerUpLeft: IconNode = [\n ['path', { d: 'M20 20v-7a4 4 0 0 0-4-4H4' }],\n ['path', { d: 'M9 14 4 9l5-5' }],\n];\n\nexport default CornerUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTQgNS01LTUtNSIgLz4KICA8cGF0aCBkPSJNNCAyMHYtN2E0IDQgMCAwIDEgNC00aDEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/corner-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerUpRight: IconNode = [\n ['path', { d: 'm15 14 5-5-5-5' }],\n ['path', { d: 'M4 20v-7a4 4 0 0 1 4-4h12' }],\n];\n\nexport default CornerUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cpu\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjB2MiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNyAyMHYyIiAvPgogIDxwYXRoIGQ9Ik0xNyAydjIiIC8+CiAgPHBhdGggZD0iTTIgMTJoMiIgLz4KICA8cGF0aCBkPSJNMiAxN2gyIiAvPgogIDxwYXRoIGQ9Ik0yIDdoMiIgLz4KICA8cGF0aCBkPSJNMjAgMTJoMiIgLz4KICA8cGF0aCBkPSJNMjAgMTdoMiIgLz4KICA8cGF0aCBkPSJNMjAgN2gyIiAvPgogIDxwYXRoIGQ9Ik03IDIwdjIiIC8+CiAgPHBhdGggZD0iTTcgMnYyIiAvPgogIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgcng9IjIiIC8+CiAgPHJlY3QgeD0iOCIgeT0iOCIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cpu\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cpu: IconNode = [\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M17 20v2' }],\n ['path', { d: 'M17 2v2' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'M2 17h2' }],\n ['path', { d: 'M2 7h2' }],\n ['path', { d: 'M20 12h2' }],\n ['path', { d: 'M20 17h2' }],\n ['path', { d: 'M20 7h2' }],\n ['path', { d: 'M7 20v2' }],\n ['path', { d: 'M7 2v2' }],\n ['rect', { x: '4', y: '4', width: '16', height: '16', rx: '2' }],\n ['rect', { x: '8', y: '8', width: '8', height: '8', rx: '1' }],\n];\n\nexport default Cpu;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name creative-commons\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTAgOS4zYTIuOCAyLjggMCAwIDAtMy41IDEgMy4xIDMuMSAwIDAgMCAwIDMuNCAyLjcgMi43IDAgMCAwIDMuNSAxIiAvPgogIDxwYXRoIGQ9Ik0xNyA5LjNhMi44IDIuOCAwIDAgMC0zLjUgMSAzLjEgMy4xIDAgMCAwIDAgMy40IDIuNyAyLjcgMCAwIDAgMy41IDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/creative-commons\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CreativeCommons: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M10 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1' }],\n ['path', { d: 'M17 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1' }],\n];\n\nexport default CreativeCommons;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name credit-card\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjUiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIxMCIgeTI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/credit-card\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CreditCard: IconNode = [\n ['rect', { width: '20', height: '14', x: '2', y: '5', rx: '2' }],\n ['line', { x1: '2', x2: '22', y1: '10', y2: '10' }],\n];\n\nexport default CreditCard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name croissant\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMiAxOEg0Ljc3NGExLjUgMS41IDAgMCAxLTEuMzUyLS45NyAxMSAxMSAwIDAgMSAuMTMyLTYuNDg3IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMC4yVjQuNzc0YTEuNSAxLjUgMCAwIDAtLjk3LTEuMzUyIDExIDExIDAgMCAwLTYuNDg2LjEzMiIgLz4KICA8cGF0aCBkPSJNMTggNWE0IDMgMCAwIDEgNCAzIDIgMiAwIDAgMS0yIDIgMTAgMTAgMCAwIDAtNS4xMzkgMS40MiIgLz4KICA8cGF0aCBkPSJNNSAxOGEzIDQgMCAwIDAgMyA0IDIgMiAwIDAgMCAyLTIgMTAgMTAgMCAwIDEgMS40Mi01LjE0IiAvPgogIDxwYXRoIGQ9Ik04LjcwOSAyLjU1NGExMCAxMCAwIDAgMC02LjE1NSA2LjE1NSAxLjUgMS41IDAgMCAwIC42NzYgMS42MjZsOS44MDcgNS40MmEyIDIgMCAwIDAgMi43MTgtMi43MThsLTUuNDItOS44MDdhMS41IDEuNSAwIDAgMC0xLjYyNi0uNjc2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/croissant\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Croissant: IconNode = [\n ['path', { d: 'M10.2 18H4.774a1.5 1.5 0 0 1-1.352-.97 11 11 0 0 1 .132-6.487' }],\n ['path', { d: 'M18 10.2V4.774a1.5 1.5 0 0 0-.97-1.352 11 11 0 0 0-6.486.132' }],\n ['path', { d: 'M18 5a4 3 0 0 1 4 3 2 2 0 0 1-2 2 10 10 0 0 0-5.139 1.42' }],\n ['path', { d: 'M5 18a3 4 0 0 0 3 4 2 2 0 0 0 2-2 10 10 0 0 1 1.42-5.14' }],\n [\n 'path',\n {\n d: 'M8.709 2.554a10 10 0 0 0-6.155 6.155 1.5 1.5 0 0 0 .676 1.626l9.807 5.42a2 2 0 0 0 2.718-2.718l-5.42-9.807a1.5 1.5 0 0 0-1.626-.676',\n },\n ],\n];\n\nexport default Croissant;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name crop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAydjE0YTIgMiAwIDAgMCAyIDJoMTQiIC8+CiAgPHBhdGggZD0iTTE4IDIyVjhhMiAyIDAgMCAwLTItMkgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/crop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Crop: IconNode = [\n ['path', { d: 'M6 2v14a2 2 0 0 0 2 2h14' }],\n ['path', { d: 'M18 22V8a2 2 0 0 0-2-2H2' }],\n];\n\nexport default Crop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cross\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA5YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDRhMSAxIDAgMCAxIDEgMXY0YTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi00YTEgMSAwIDAgMSAxLTFoNGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTRhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMS0xIDF6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cross\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cross: IconNode = [\n [\n 'path',\n {\n d: 'M4 9a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h4a1 1 0 0 1 1 1v4a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-4a1 1 0 0 1 1-1h4a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-4a1 1 0 0 1-1-1V4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4a1 1 0 0 1-1 1z',\n },\n ],\n];\n\nexport default Cross;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name crosshair\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iMjIiIHgyPSIxOCIgeTE9IjEyIiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjYiIHgyPSIyIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjYiIHkyPSIyIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/crosshair\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Crosshair: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['line', { x1: '22', x2: '18', y1: '12', y2: '12' }],\n ['line', { x1: '6', x2: '2', y1: '12', y2: '12' }],\n ['line', { x1: '12', x2: '12', y1: '6', y2: '2' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '18' }],\n];\n\nexport default Crosshair;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name crown\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNTYyIDMuMjY2YS41LjUgMCAwIDEgLjg3NiAwTDE1LjM5IDguODdhMSAxIDAgMCAwIDEuNTE2LjI5NEwyMS4xODMgNS41YS41LjUgMCAwIDEgLjc5OC41MTlsLTIuODM0IDEwLjI0NmExIDEgMCAwIDEtLjk1Ni43MzRINS44MWExIDEgMCAwIDEtLjk1Ny0uNzM0TDIuMDIgNi4wMmEuNS41IDAgMCAxIC43OTgtLjUxOWw0LjI3NiAzLjY2NGExIDEgMCAwIDAgMS41MTYtLjI5NHoiIC8+CiAgPHBhdGggZD0iTTUgMjFoMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/crown\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Crown: IconNode = [\n [\n 'path',\n {\n d: 'M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z',\n },\n ],\n ['path', { d: 'M5 21h14' }],\n];\n\nexport default Crown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cuboid\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuMTIgNi40LTYuMDUtNC4wNmEyIDIgMCAwIDAtMi4xNy0uMDVMMi45NSA4LjQxYTIgMiAwIDAgMC0uOTUgMS43djUuODJhMiAyIDAgMCAwIC44OCAxLjY2bDYuMDUgNC4wN2EyIDIgMCAwIDAgMi4xNy4wNWw5Ljk1LTYuMTJhMiAyIDAgMCAwIC45NS0xLjdWOC4wNmEyIDIgMCAwIDAtLjg4LTEuNjZaIiAvPgogIDxwYXRoIGQ9Ik0xMCAyMnYtOEwyLjI1IDkuMTUiIC8+CiAgPHBhdGggZD0ibTEwIDE0IDExLjc3LTYuODciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cuboid\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cuboid: IconNode = [\n [\n 'path',\n {\n d: 'm21.12 6.4-6.05-4.06a2 2 0 0 0-2.17-.05L2.95 8.41a2 2 0 0 0-.95 1.7v5.82a2 2 0 0 0 .88 1.66l6.05 4.07a2 2 0 0 0 2.17.05l9.95-6.12a2 2 0 0 0 .95-1.7V8.06a2 2 0 0 0-.88-1.66Z',\n },\n ],\n ['path', { d: 'M10 22v-8L2.25 9.15' }],\n ['path', { d: 'm10 14 11.77-6.87' }],\n];\n\nexport default Cuboid;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cup-soda\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA4IDEuNzUgMTIuMjhhMiAyIDAgMCAwIDIgMS43Mmg0LjU0YTIgMiAwIDAgMCAyLTEuNzJMMTggOCIgLz4KICA8cGF0aCBkPSJNNSA4aDE0IiAvPgogIDxwYXRoIGQ9Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NyA2LjQ3IDAgMCAwIDUgMCIgLz4KICA8cGF0aCBkPSJtMTIgOCAxLTZoMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cup-soda\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CupSoda: IconNode = [\n ['path', { d: 'm6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8' }],\n ['path', { d: 'M5 8h14' }],\n ['path', { d: 'M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0' }],\n ['path', { d: 'm12 8 1-6h2' }],\n];\n\nexport default CupSoda;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cylinder\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSI1IiByeD0iOSIgcnk9IjMiIC8+CiAgPHBhdGggZD0iTTMgNXYxNGE5IDMgMCAwIDAgMTggMFY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cylinder\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cylinder: IconNode = [\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3' }],\n ['path', { d: 'M3 5v14a9 3 0 0 0 18 0V5' }],\n];\n\nexport default Cylinder;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name currency\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiAvPgogIDxsaW5lIHgxPSIzIiB4Mj0iNiIgeTE9IjMiIHkyPSI2IiAvPgogIDxsaW5lIHgxPSIyMSIgeDI9IjE4IiB5MT0iMyIgeTI9IjYiIC8+CiAgPGxpbmUgeDE9IjMiIHgyPSI2IiB5MT0iMjEiIHkyPSIxOCIgLz4KICA8bGluZSB4MT0iMjEiIHgyPSIxOCIgeTE9IjIxIiB5Mj0iMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/currency\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Currency: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '8' }],\n ['line', { x1: '3', x2: '6', y1: '3', y2: '6' }],\n ['line', { x1: '21', x2: '18', y1: '3', y2: '6' }],\n ['line', { x1: '3', x2: '6', y1: '21', y2: '18' }],\n ['line', { x1: '21', x2: '18', y1: '21', y2: '18' }],\n];\n\nexport default Currency;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name database-backup\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSI1IiByeD0iOSIgcnk9IjMiIC8+CiAgPHBhdGggZD0iTTMgMTJhOSAzIDAgMCAwIDUgMi42OSIgLz4KICA8cGF0aCBkPSJNMjEgOS4zVjUiIC8+CiAgPHBhdGggZD0iTTMgNXYxNGE5IDMgMCAwIDAgNi40NyAyLjg4IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnY0aDQiIC8+CiAgPHBhdGggZD0iTTEzIDIwYTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTIgMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/database-backup\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DatabaseBackup: IconNode = [\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3' }],\n ['path', { d: 'M3 12a9 3 0 0 0 5 2.69' }],\n ['path', { d: 'M21 9.3V5' }],\n ['path', { d: 'M3 5v14a9 3 0 0 0 6.47 2.88' }],\n ['path', { d: 'M12 12v4h4' }],\n ['path', { d: 'M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16' }],\n];\n\nexport default DatabaseBackup;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dam\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTEuMzFjMS4xNy41NiAxLjU0IDEuNjkgMy41IDEuNjkgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIiAvPgogIDxwYXRoIGQ9Ik0xMS43NSAxOGMuMzUuNSAxLjQ1IDEgMi43NSAxIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSIgLz4KICA8cGF0aCBkPSJNMiAxMGg0IiAvPgogIDxwYXRoIGQ9Ik0yIDE0aDQiIC8+CiAgPHBhdGggZD0iTTIgMThoNCIgLz4KICA8cGF0aCBkPSJNMiA2aDQiIC8+CiAgPHBhdGggZD0iTTcgM2ExIDEgMCAwIDAtMSAxdjE2YTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xTDEwIDRhMSAxIDAgMCAwLTEtMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dam\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dam: IconNode = [\n ['path', { d: 'M11 11.31c1.17.56 1.54 1.69 3.5 1.69 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1' }],\n ['path', { d: 'M11.75 18c.35.5 1.45 1 2.75 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1' }],\n ['path', { d: 'M2 10h4' }],\n ['path', { d: 'M2 14h4' }],\n ['path', { d: 'M2 18h4' }],\n ['path', { d: 'M2 6h4' }],\n ['path', { d: 'M7 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1L10 4a1 1 0 0 0-1-1z' }],\n];\n\nexport default Dam;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name database-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTEuNjkzVjUiIC8+CiAgPHBhdGggZD0ibTIyIDIyLTEuODc1LTEuODc1IiAvPgogIDxwYXRoIGQ9Ik0zIDEyYTkgMyAwIDAgMCA4LjY5NyAyLjk5OCIgLz4KICA8cGF0aCBkPSJNMyA1djE0YTkgMyAwIDAgMCA5LjI4IDIuOTk5IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+CiAgPGVsbGlwc2UgY3g9IjEyIiBjeT0iNSIgcng9IjkiIHJ5PSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/database-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DatabaseSearch: IconNode = [\n ['path', { d: 'M21 11.693V5' }],\n ['path', { d: 'm22 22-1.875-1.875' }],\n ['path', { d: 'M3 12a9 3 0 0 0 8.697 2.998' }],\n ['path', { d: 'M3 5v14a9 3 0 0 0 9.28 2.999' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3' }],\n];\n\nexport default DatabaseSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name database-zap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSI1IiByeD0iOSIgcnk9IjMiIC8+CiAgPHBhdGggZD0iTTMgNVYxOUE5IDMgMCAwIDAgMTUgMjEuODQiIC8+CiAgPHBhdGggZD0iTTIxIDVWOCIgLz4KICA8cGF0aCBkPSJNMjEgMTJMMTggMTdIMjJMMTkgMjIiIC8+CiAgPHBhdGggZD0iTTMgMTJBOSAzIDAgMCAwIDE0LjU5IDE0Ljg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/database-zap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DatabaseZap: IconNode = [\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3' }],\n ['path', { d: 'M3 5V19A9 3 0 0 0 15 21.84' }],\n ['path', { d: 'M21 5V8' }],\n ['path', { d: 'M21 12L18 17H22L19 22' }],\n ['path', { d: 'M3 12A9 3 0 0 0 14.59 14.87' }],\n];\n\nexport default DatabaseZap;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name database\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSI1IiByeD0iOSIgcnk9IjMiIC8+CiAgPHBhdGggZD0iTTMgNVYxOUE5IDMgMCAwIDAgMjEgMTlWNSIgLz4KICA8cGF0aCBkPSJNMyAxMkE5IDMgMCAwIDAgMjEgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/database\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Database: IconNode = [\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3' }],\n ['path', { d: 'M3 5V19A9 3 0 0 0 21 19V5' }],\n ['path', { d: 'M3 12A9 3 0 0 0 21 12' }],\n];\n\nexport default Database;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name decimals-arrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMgMjEtMy0zIDMtMyIgLz4KICA8cGF0aCBkPSJNMjAgMThIMTAiIC8+CiAgPHBhdGggZD0iTTMgMTFoLjAxIiAvPgogIDxyZWN0IHg9IjYiIHk9IjMiIHdpZHRoPSI1IiBoZWlnaHQ9IjgiIHJ4PSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/decimals-arrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DecimalsArrowLeft: IconNode = [\n ['path', { d: 'm13 21-3-3 3-3' }],\n ['path', { d: 'M20 18H10' }],\n ['path', { d: 'M3 11h.01' }],\n ['rect', { x: '6', y: '3', width: '5', height: '8', rx: '2.5' }],\n];\n\nexport default DecimalsArrowLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name decimals-arrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMThoMTAiIC8+CiAgPHBhdGggZD0ibTE3IDIxIDMtMy0zLTMiIC8+CiAgPHBhdGggZD0iTTMgMTFoLjAxIiAvPgogIDxyZWN0IHg9IjE1IiB5PSIzIiB3aWR0aD0iNSIgaGVpZ2h0PSI4IiByeD0iMi41IiAvPgogIDxyZWN0IHg9IjYiIHk9IjMiIHdpZHRoPSI1IiBoZWlnaHQ9IjgiIHJ4PSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/decimals-arrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DecimalsArrowRight: IconNode = [\n ['path', { d: 'M10 18h10' }],\n ['path', { d: 'm17 21 3-3-3-3' }],\n ['path', { d: 'M3 11h.01' }],\n ['rect', { x: '15', y: '3', width: '5', height: '8', rx: '2.5' }],\n ['rect', { x: '6', y: '3', width: '5', height: '8', rx: '2.5' }],\n];\n\nexport default DecimalsArrowRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name delete\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNWEyIDIgMCAwIDAtMS4zNDQuNTE5bC02LjMyOCA1Ljc0YTEgMSAwIDAgMCAwIDEuNDgxbDYuMzI4IDUuNzQxQTIgMiAwIDAgMCAxMCAxOWgxMGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMnoiIC8+CiAgPHBhdGggZD0ibTEyIDkgNiA2IiAvPgogIDxwYXRoIGQ9Im0xOCA5LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/delete\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Delete: IconNode = [\n [\n 'path',\n {\n d: 'M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z',\n },\n ],\n ['path', { d: 'm12 9 6 6' }],\n ['path', { d: 'm18 9-6 6' }],\n];\n\nexport default Delete;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dessert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMTYyIDMuMTY3QTEwIDEwIDAgMCAwIDIgMTNhMiAyIDAgMCAwIDQgMHYtMWEyIDIgMCAwIDEgNCAwdjRhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAwIDQtLjAwNiAxMCAxMCAwIDAgMC04LjE2MS05LjgyNiIgLz4KICA8cGF0aCBkPSJNMjAuODA0IDE0Ljg2OWE5IDkgMCAwIDEtMTcuNjA4IDAiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI0IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dessert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dessert: IconNode = [\n [\n 'path',\n {\n d: 'M10.162 3.167A10 10 0 0 0 2 13a2 2 0 0 0 4 0v-1a2 2 0 0 1 4 0v4a2 2 0 0 0 4 0v-4a2 2 0 0 1 4 0v1a2 2 0 0 0 4-.006 10 10 0 0 0-8.161-9.826',\n },\n ],\n ['path', { d: 'M20.804 14.869a9 9 0 0 1-17.608 0' }],\n ['circle', { cx: '12', cy: '4', r: '2' }],\n];\n\nexport default Dessert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diameter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjE5IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSIyIiAvPgogIDxwYXRoIGQ9Ik02LjQ4IDMuNjZhMTAgMTAgMCAwIDEgMTMuODYgMTMuODYiIC8+CiAgPHBhdGggZD0ibTYuNDEgNi40MSAxMS4xOCAxMS4xOCIgLz4KICA8cGF0aCBkPSJNMy42NiA2LjQ4YTEwIDEwIDAgMCAwIDEzLjg2IDEzLjg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/diameter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Diameter: IconNode = [\n ['circle', { cx: '19', cy: '19', r: '2' }],\n ['circle', { cx: '5', cy: '5', r: '2' }],\n ['path', { d: 'M6.48 3.66a10 10 0 0 1 13.86 13.86' }],\n ['path', { d: 'm6.41 6.41 11.18 11.18' }],\n ['path', { d: 'M3.66 6.48a10 10 0 0 0 13.86 13.86' }],\n];\n\nexport default Diameter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diamond-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KPC9zdmc+) - https://lucide.dev/icons/diamond-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DiamondMinus: IconNode = [\n [\n 'path',\n {\n d: 'M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z',\n },\n ],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default DiamondMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diamond-percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMFoiIC8+CiAgPHBhdGggZD0iTTkuMiA5LjJoLjAxIiAvPgogIDxwYXRoIGQ9Im0xNC41IDkuNS01IDUiIC8+CiAgPHBhdGggZD0iTTE0LjcgMTQuOGguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/diamond-percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DiamondPercent: IconNode = [\n [\n 'path',\n {\n d: 'M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0Z',\n },\n ],\n ['path', { d: 'M9.2 9.2h.01' }],\n ['path', { d: 'm14.5 9.5-5 5' }],\n ['path', { d: 'M14.7 14.8h.01' }],\n];\n\nexport default DiamondPercent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diamond-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOHY4IiAvPgogIDxwYXRoIGQ9Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweiIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/diamond-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DiamondPlus: IconNode = [\n ['path', { d: 'M12 8v8' }],\n [\n 'path',\n {\n d: 'M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z',\n },\n ],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default DiamondPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diamond\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MWwtNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/diamond\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Diamond: IconNode = [\n [\n 'path',\n {\n d: 'M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z',\n },\n ],\n];\n\nexport default Diamond;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTIgMTJoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dice-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice1: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M12 12h.01' }],\n];\n\nexport default Dice1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTUgOWguMDEiIC8+CiAgPHBhdGggZD0iTTkgMTVoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dice-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice2: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M15 9h.01' }],\n ['path', { d: 'M9 15h.01' }],\n];\n\nexport default Dice2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNOCAxNmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dice-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice3: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M16 8h.01' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M8 16h.01' }],\n];\n\nexport default Dice3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTggOGguMDEiIC8+CiAgPHBhdGggZD0iTTggMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dice-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice4: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M16 8h.01' }],\n ['path', { d: 'M8 8h.01' }],\n ['path', { d: 'M8 16h.01' }],\n ['path', { d: 'M16 16h.01' }],\n];\n\nexport default Dice4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-5\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTggOGguMDEiIC8+CiAgPHBhdGggZD0iTTggMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNmguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDEyaC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/dice-5\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice5: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M16 8h.01' }],\n ['path', { d: 'M8 8h.01' }],\n ['path', { d: 'M8 16h.01' }],\n ['path', { d: 'M16 16h.01' }],\n ['path', { d: 'M12 12h.01' }],\n];\n\nexport default Dice5;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-6\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTYgMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDhoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNOCAxNmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dice-6\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice6: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M16 8h.01' }],\n ['path', { d: 'M16 12h.01' }],\n ['path', { d: 'M16 16h.01' }],\n ['path', { d: 'M8 8h.01' }],\n ['path', { d: 'M8 12h.01' }],\n ['path', { d: 'M8 16h.01' }],\n];\n\nexport default Dice6;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dices\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjEwIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0ibTE3LjkyIDE0IDMuNS0zLjVhMi4yNCAyLjI0IDAgMCAwIDAtM2wtNS00LjkyYTIuMjQgMi4yNCAwIDAgMC0zIDBMMTAgNiIgLz4KICA8cGF0aCBkPSJNNiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTEwIDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTUgNmguMDEiIC8+CiAgPHBhdGggZD0iTTE4IDloLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dices\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dices: IconNode = [\n ['rect', { width: '12', height: '12', x: '2', y: '10', rx: '2', ry: '2' }],\n ['path', { d: 'm17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'M10 14h.01' }],\n ['path', { d: 'M15 6h.01' }],\n ['path', { d: 'M18 9h.01' }],\n];\n\nexport default Dices;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diff\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxNCIgLz4KICA8cGF0aCBkPSJNNSAxMGgxNCIgLz4KICA8cGF0aCBkPSJNNSAyMWgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/diff\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Diff: IconNode = [\n ['path', { d: 'M12 3v14' }],\n ['path', { d: 'M5 10h14' }],\n ['path', { d: 'M5 21h14' }],\n];\n\nexport default Diff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name disc-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/disc-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Disc2: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M12 12h.01' }],\n];\n\nexport default Disc2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name disc-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNNiAxMmMwLTEuNy43LTMuMiAxLjgtNC4yIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTE4IDEyYzAgMS43LS43IDMuMi0xLjggNC4yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/disc-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Disc3: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M6 12c0-1.7.7-3.2 1.8-4.2' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['path', { d: 'M18 12c0 1.7-.7 3.2-1.8 4.2' }],\n];\n\nexport default Disc3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name disc-album\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjUiIC8+CiAgPHBhdGggZD0iTTEyIDEyaC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/disc-album\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DiscAlbum: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['circle', { cx: '12', cy: '12', r: '5' }],\n ['path', { d: 'M12 12h.01' }],\n];\n\nexport default DiscAlbum;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name disc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/disc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Disc: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default Disc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name divide\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjYiIHI9IjEiIC8+CiAgPGxpbmUgeDE9IjUiIHgyPSIxOSIgeTE9IjEyIiB5Mj0iMTIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxOCIgcj0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/divide\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Divide: IconNode = [\n ['circle', { cx: '12', cy: '6', r: '1' }],\n ['line', { x1: '5', x2: '19', y1: '12', y2: '12' }],\n ['circle', { cx: '12', cy: '18', r: '1' }],\n];\n\nexport default Divide;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dna-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMmMtMS4zNSAxLjUtMi4wOTIgMy0yLjUgNC41TDE0IDgiIC8+CiAgPHBhdGggZD0ibTE3IDYtMi44OTEtMi44OTEiIC8+CiAgPHBhdGggZD0iTTIgMTVjMy4zMzMtMyA2LjY2Ny0zIDEwLTMiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJtMjAgOSAuODkxLjg5MSIgLz4KICA8cGF0aCBkPSJNMjIgOWMtMS41IDEuMzUtMyAyLjA5Mi00LjUgMi41bC0xLTEiIC8+CiAgPHBhdGggZD0iTTMuMTA5IDE0LjEwOSA0IDE1IiAvPgogIDxwYXRoIGQ9Im02LjUgMTIuNSAxIDEiIC8+CiAgPHBhdGggZD0ibTcgMTggMi44OTEgMi44OTEiIC8+CiAgPHBhdGggZD0iTTkgMjJjMS4zNS0xLjUgMi4wOTItMyAyLjUtNC41TDEwIDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dna-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DnaOff: IconNode = [\n ['path', { d: 'M15 2c-1.35 1.5-2.092 3-2.5 4.5L14 8' }],\n ['path', { d: 'm17 6-2.891-2.891' }],\n ['path', { d: 'M2 15c3.333-3 6.667-3 10-3' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'm20 9 .891.891' }],\n ['path', { d: 'M22 9c-1.5 1.35-3 2.092-4.5 2.5l-1-1' }],\n ['path', { d: 'M3.109 14.109 4 15' }],\n ['path', { d: 'm6.5 12.5 1 1' }],\n ['path', { d: 'm7 18 2.891 2.891' }],\n ['path', { d: 'M9 22c1.35-1.5 2.092-3 2.5-4.5L10 16' }],\n];\n\nexport default DnaOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dna\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTYgMS41IDEuNSIgLz4KICA8cGF0aCBkPSJtMTQgOC0xLjUtMS41IiAvPgogIDxwYXRoIGQ9Ik0xNSAyYy0xLjc5OCAxLjk5OC0yLjUxOCAzLjk5NS0yLjgwNyA1Ljk5MyIgLz4KICA8cGF0aCBkPSJtMTYuNSAxMC41IDEgMSIgLz4KICA8cGF0aCBkPSJtMTcgNi0yLjg5MS0yLjg5MSIgLz4KICA8cGF0aCBkPSJNMiAxNWM2LjY2Ny02IDEzLjMzMyAwIDIwLTYiIC8+CiAgPHBhdGggZD0ibTIwIDkgLjg5MS44OTEiIC8+CiAgPHBhdGggZD0iTTMuMTA5IDE0LjEwOSA0IDE1IiAvPgogIDxwYXRoIGQ9Im02LjUgMTIuNSAxIDEiIC8+CiAgPHBhdGggZD0ibTcgMTggMi44OTEgMi44OTEiIC8+CiAgPHBhdGggZD0iTTkgMjJjMS43OTgtMS45OTggMi41MTgtMy45OTUgMi44MDctNS45OTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dna\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dna: IconNode = [\n ['path', { d: 'm10 16 1.5 1.5' }],\n ['path', { d: 'm14 8-1.5-1.5' }],\n ['path', { d: 'M15 2c-1.798 1.998-2.518 3.995-2.807 5.993' }],\n ['path', { d: 'm16.5 10.5 1 1' }],\n ['path', { d: 'm17 6-2.891-2.891' }],\n ['path', { d: 'M2 15c6.667-6 13.333 0 20-6' }],\n ['path', { d: 'm20 9 .891.891' }],\n ['path', { d: 'M3.109 14.109 4 15' }],\n ['path', { d: 'm6.5 12.5 1 1' }],\n ['path', { d: 'm7 18 2.891 2.891' }],\n ['path', { d: 'M9 22c1.798-1.998 2.518-3.995 2.807-5.993' }],\n];\n\nexport default Dna;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMjUgMTYuMjVoMS41TDEyIDE3eiIgLz4KICA8cGF0aCBkPSJNMTYgMTR2LjUiIC8+CiAgPHBhdGggZD0iTTQuNDIgMTEuMjQ3QTEzLjE1MiAxMy4xNTIgMCAwIDAgNCAxNC41NTZDNCAxOC43MjggNy41ODIgMjEgMTIgMjFzOC0yLjI3MiA4LTYuNDQ0YTExLjcwMiAxMS43MDIgMCAwIDAtLjQ5My0zLjMwOSIgLz4KICA8cGF0aCBkPSJNOCAxNHYuNSIgLz4KICA8cGF0aCBkPSJNOC41IDguNWMtLjM4NCAxLjA1LTEuMDgzIDIuMDI4LTIuMzQ0IDIuNS0xLjkzMS43MjItMy41NzYtLjI5Ny0zLjY1Ni0xLS4xMTMtLjk5NCAxLjE3Ny02LjUzIDQtNyAxLjkyMy0uMzIxIDMuNjUxLjg0NSAzLjY1MSAyLjIzNUE3LjQ5NyA3LjQ5NyAwIDAgMSAxNCA1LjI3N2MwLTEuMzkgMS44NDQtMi41OTggMy43NjctMi4yNzcgMi44MjMuNDcgNC4xMTMgNi4wMDYgNCA3LS4wOC43MDMtMS43MjUgMS43MjItMy42NTYgMS0xLjI2MS0uNDcyLTEuODU1LTEuNDUtMi4yMzktMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dog: IconNode = [\n ['path', { d: 'M11.25 16.25h1.5L12 17z' }],\n ['path', { d: 'M16 14v.5' }],\n [\n 'path',\n {\n d: 'M4.42 11.247A13.152 13.152 0 0 0 4 14.556C4 18.728 7.582 21 12 21s8-2.272 8-6.444a11.702 11.702 0 0 0-.493-3.309',\n },\n ],\n ['path', { d: 'M8 14v.5' }],\n [\n 'path',\n {\n d: 'M8.5 8.5c-.384 1.05-1.083 2.028-2.344 2.5-1.931.722-3.576-.297-3.656-1-.113-.994 1.177-6.53 4-7 1.923-.321 3.651.845 3.651 2.235A7.497 7.497 0 0 1 14 5.277c0-1.39 1.844-2.598 3.767-2.277 2.823.47 4.113 6.006 4 7-.08.703-1.725 1.722-3.656 1-1.261-.472-1.855-1.45-2.239-2.5',\n },\n ],\n];\n\nexport default Dog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dollar-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSIyMiIgLz4KICA8cGF0aCBkPSJNMTcgNUg5LjVhMy41IDMuNSAwIDAgMCAwIDdoNWEzLjUgMy41IDAgMCAxIDAgN0g2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dollar-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DollarSign: IconNode = [\n ['line', { x1: '12', x2: '12', y1: '2', y2: '22' }],\n ['path', { d: 'M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6' }],\n];\n\nexport default DollarSign;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA4aDIwIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNiIgeD0iMiIgeT0iNCIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTYgMTZoMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dock: IconNode = [\n ['path', { d: 'M2 8h20' }],\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M6 16h12' }],\n];\n\nexport default Dock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name donut\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuNSAxMGEyLjUgMi41IDAgMCAxLTIuNC0zSDE4YTIuOTUgMi45NSAwIDAgMS0yLjYtNC40IDEwIDEwIDAgMSAwIDYuMyA3LjFjLS4zLjItLjguMy0xLjIuMyIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/donut\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Donut: IconNode = [\n [\n 'path',\n {\n d: 'M20.5 10a2.5 2.5 0 0 1-2.4-3H18a2.95 2.95 0 0 1-2.6-4.4 10 10 0 1 0 6.3 7.1c-.3.2-.8.3-1.2.3',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default Donut;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name door-closed-locked\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xOCA5VjZhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTQiIC8+CiAgPHBhdGggZD0iTTIgMjBoOCIgLz4KICA8cGF0aCBkPSJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIiAvPgogIDxyZWN0IHg9IjE0IiB5PSIxNyIgd2lkdGg9IjgiIGhlaWdodD0iNSIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/door-closed-locked\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DoorClosedLocked: IconNode = [\n ['path', { d: 'M10 12h.01' }],\n ['path', { d: 'M18 9V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14' }],\n ['path', { d: 'M2 20h8' }],\n ['path', { d: 'M20 17v-2a2 2 0 1 0-4 0v2' }],\n ['rect', { x: '14', y: '17', width: '8', height: '5', rx: '1' }],\n];\n\nexport default DoorClosedLocked;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name door-closed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xOCAyMFY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0IiAvPgogIDxwYXRoIGQ9Ik0yIDIwaDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/door-closed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DoorClosed: IconNode = [\n ['path', { d: 'M10 12h.01' }],\n ['path', { d: 'M18 20V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14' }],\n ['path', { d: 'M2 20h20' }],\n];\n\nexport default DoorClosed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name door-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjBIMiIgLz4KICA8cGF0aCBkPSJNMTEgNC41NjJ2MTYuMTU3YTEgMSAwIDAgMCAxLjI0Mi45N0wxOSAyMFY1LjU2MmEyIDIgMCAwIDAtMS41MTUtMS45NGwtNC0xQTIgMiAwIDAgMCAxMSA0LjU2MXoiIC8+CiAgPHBhdGggZD0iTTExIDRIOGEyIDIgMCAwIDAtMiAydjE0IiAvPgogIDxwYXRoIGQ9Ik0xNCAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTIyIDIwaC0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/door-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DoorOpen: IconNode = [\n ['path', { d: 'M11 20H2' }],\n [\n 'path',\n {\n d: 'M11 4.562v16.157a1 1 0 0 0 1.242.97L19 20V5.562a2 2 0 0 0-1.515-1.94l-4-1A2 2 0 0 0 11 4.561z',\n },\n ],\n ['path', { d: 'M11 4H8a2 2 0 0 0-2 2v14' }],\n ['path', { d: 'M14 12h.01' }],\n ['path', { d: 'M22 20h-3' }],\n];\n\nexport default DoorOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMi4xIiBjeT0iMTIuMSIgcj0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dot: IconNode = [['circle', { cx: '12.1', cy: '12.1', r: '1' }]];\n\nexport default Dot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name download\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTVWMyIgLz4KICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIgLz4KICA8cGF0aCBkPSJtNyAxMCA1IDUgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/download\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Download: IconNode = [\n ['path', { d: 'M12 15V3' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4' }],\n ['path', { d: 'm7 10 5 5 5-5' }],\n];\n\nexport default Download;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drafting-compass\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIuOTkgNi43NCAxLjkzIDMuNDQiIC8+CiAgPHBhdGggZD0iTTE5LjEzNiAxMmExMCAxMCAwIDAgMS0xNC4yNzEgMCIgLz4KICA8cGF0aCBkPSJtMjEgMjEtMi4xNi0zLjg0IiAvPgogIDxwYXRoIGQ9Im0zIDIxIDguMDItMTQuMjYiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/drafting-compass\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DraftingCompass: IconNode = [\n ['path', { d: 'm12.99 6.74 1.93 3.44' }],\n ['path', { d: 'M19.136 12a10 10 0 0 1-14.271 0' }],\n ['path', { d: 'm21 21-2.16-3.84' }],\n ['path', { d: 'm3 21 8.02-14.26' }],\n ['circle', { cx: '12', cy: '5', r: '2' }],\n];\n\nexport default DraftingCompass;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dribbble\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTkuMTMgNS4wOUMxNS4yMiA5LjE0IDEwIDEwLjQ0IDIuMjUgMTAuOTQiIC8+CiAgPHBhdGggZD0iTTIxLjc1IDEyLjg0Yy02LjYyLTEuNDEtMTIuMTQgMS0xNi4zOCA2LjMyIiAvPgogIDxwYXRoIGQ9Ik04LjU2IDIuNzVjNC4zNyA2IDYgOS40MiA4IDE3LjcyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dribbble\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=dribbble instead. This icon will be removed in v1.0\n */\nconst Dribbble: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M19.13 5.09C15.22 9.14 10 10.44 2.25 10.94' }],\n ['path', { d: 'M21.75 12.84c-6.62-1.41-12.14 1-16.38 6.32' }],\n ['path', { d: 'M8.56 2.75c4.37 6 6 9.42 8 17.72' }],\n];\n\nexport default Dribbble;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drama\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTFoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNCA2aC4wMSIgLz4KICA8cGF0aCBkPSJNMTggNmguMDEiIC8+CiAgPHBhdGggZD0iTTYuNSAxMy4xaC4wMSIgLz4KICA8cGF0aCBkPSJNMjIgNWMwIDktNCAxMi02IDEycy02LTMtNi0xMmMwLTIgMi0zIDYtM3M2IDEgNiAzIiAvPgogIDxwYXRoIGQ9Ik0xNy40IDkuOWMtLjguOC0yIC44LTIuOCAwIiAvPgogIDxwYXRoIGQ9Ik0xMC4xIDcuMUM5IDcuMiA3LjcgNy43IDYgOC42Yy0zLjUgMi00LjcgMy45LTMuNyA1LjYgNC41IDcuOCA5LjUgOC40IDExLjIgNy40LjktLjUgMS45LTIuMSAxLjktNC43IiAvPgogIDxwYXRoIGQ9Ik05LjEgMTYuNWMuMy0xLjEgMS40LTEuNyAyLjQtMS40IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/drama\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Drama: IconNode = [\n ['path', { d: 'M10 11h.01' }],\n ['path', { d: 'M14 6h.01' }],\n ['path', { d: 'M18 6h.01' }],\n ['path', { d: 'M6.5 13.1h.01' }],\n ['path', { d: 'M22 5c0 9-4 12-6 12s-6-3-6-12c0-2 2-3 6-3s6 1 6 3' }],\n ['path', { d: 'M17.4 9.9c-.8.8-2 .8-2.8 0' }],\n [\n 'path',\n {\n d: 'M10.1 7.1C9 7.2 7.7 7.7 6 8.6c-3.5 2-4.7 3.9-3.7 5.6 4.5 7.8 9.5 8.4 11.2 7.4.9-.5 1.9-2.1 1.9-4.7',\n },\n ],\n ['path', { d: 'M9.1 16.5c.3-1.1 1.4-1.7 2.4-1.4' }],\n];\n\nexport default Drama;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drill\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMThhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINWEzIDMgMCAwIDEtMy0zIDEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik0xMyAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMSAxIDAgMCAxIDEgMXY2YTEgMSAwIDAgMS0xIDFsLS44MSAzLjI0MmExIDEgMCAwIDEtLjk3Ljc1OEg4IiAvPgogIDxwYXRoIGQ9Ik0xNCA0aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTMiIC8+CiAgPHBhdGggZD0iTTE4IDZoNCIgLz4KICA8cGF0aCBkPSJtNSAxMC0yIDgiIC8+CiAgPHBhdGggZD0ibTcgMTggMi04IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/drill\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Drill: IconNode = [\n ['path', { d: 'M10 18a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H5a3 3 0 0 1-3-3 1 1 0 0 1 1-1z' }],\n [\n 'path',\n {\n d: 'M13 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1l-.81 3.242a1 1 0 0 1-.97.758H8',\n },\n ],\n ['path', { d: 'M14 4h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-3' }],\n ['path', { d: 'M18 6h4' }],\n ['path', { d: 'm5 10-2 8' }],\n ['path', { d: 'm7 18 2-8' }],\n];\n\nexport default Drill;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTAgNyA3IiAvPgogIDxwYXRoIGQ9Im0xMCAxNC0zIDMiIC8+CiAgPHBhdGggZD0ibTE0IDEwIDMtMyIgLz4KICA8cGF0aCBkPSJtMTQgMTQgMyAzIiAvPgogIDxwYXRoIGQ9Ik0xNC4yMDUgNC4xMzlhNCA0IDAgMSAxIDUuNDM5IDUuODYzIiAvPgogIDxwYXRoIGQ9Ik0xOS42MzcgMTRhNCA0IDAgMSAxLTUuNDMyIDUuODY4IiAvPgogIDxwYXRoIGQ9Ik00LjM2NyAxMGE0IDQgMCAxIDEgNS40MzgtNS44NjIiIC8+CiAgPHBhdGggZD0iTTkuNzk1IDE5Ljg2MmE0IDQgMCAxIDEtNS40MjktNS44NzMiIC8+CiAgPHJlY3QgeD0iMTAiIHk9IjgiIHdpZHRoPSI0IiBoZWlnaHQ9IjgiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/drone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Drone: IconNode = [\n ['path', { d: 'M10 10 7 7' }],\n ['path', { d: 'm10 14-3 3' }],\n ['path', { d: 'm14 10 3-3' }],\n ['path', { d: 'm14 14 3 3' }],\n ['path', { d: 'M14.205 4.139a4 4 0 1 1 5.439 5.863' }],\n ['path', { d: 'M19.637 14a4 4 0 1 1-5.432 5.868' }],\n ['path', { d: 'M4.367 10a4 4 0 1 1 5.438-5.862' }],\n ['path', { d: 'M9.795 19.862a4 4 0 1 1-5.429-5.873' }],\n ['rect', { x: '10', y: '8', width: '4', height: '8', rx: '1' }],\n];\n\nexport default Drone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name droplet-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguNzE1IDEzLjE4NkMxOC4yOSAxMS44NTggMTcuMzg0IDEwLjYwNyAxNiA5LjVjLTItMS42LTMuNS00LTQtNi41YTEwLjcgMTAuNyAwIDAgMS0uODg0IDIuNTg2IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTguNzk1IDguNzk3QTExIDExIDAgMCAxIDggOS41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDEzLjIyMiAzLjIwOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/droplet-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DropletOff: IconNode = [\n [\n 'path',\n {\n d: 'M18.715 13.186C18.29 11.858 17.384 10.607 16 9.5c-2-1.6-3.5-4-4-6.5a10.7 10.7 0 0 1-.884 2.586',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.795 8.797A11 11 0 0 1 8 9.5C6 11.1 5 13 5 15a7 7 0 0 0 13.222 3.208' }],\n];\n\nexport default DropletOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name droplet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJhNyA3IDAgMCAwIDctN2MwLTItMS0zLjktMy01LjVzLTMuNS00LTQtNi41Yy0uNSAyLjUtMiA0LjktNCA2LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgNyA3eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/droplet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Droplet: IconNode = [\n [\n 'path',\n {\n d: 'M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z',\n },\n ],\n];\n\nexport default Droplet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name droplets\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxNi4zYzIuMiAwIDQtMS44MyA0LTQuMDUgMC0xLjE2LS41Ny0yLjI2LTEuNzEtMy4xOVM3LjI5IDYuNzUgNyA1LjNjLS4yOSAxLjQ1LTEuMTQgMi44NC0yLjI5IDMuNzZTMyAxMS4xIDMgMTIuMjVjMCAyLjIyIDEuOCA0LjA1IDQgNC4wNXoiIC8+CiAgPHBhdGggZD0iTTEyLjU2IDYuNkExMC45NyAxMC45NyAwIDAgMCAxNCAzLjAyYy41IDIuNSAyIDQuOSA0IDYuNXMzIDMuNSAzIDUuNWE2Ljk4IDYuOTggMCAwIDEtMTEuOTEgNC45NyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/droplets\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Droplets: IconNode = [\n [\n 'path',\n {\n d: 'M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z',\n },\n ],\n [\n 'path',\n {\n d: 'M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97',\n },\n ],\n];\n\nexport default Droplets;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drum\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDggOCIgLz4KICA8cGF0aCBkPSJtMjIgMi04IDgiIC8+CiAgPGVsbGlwc2UgY3g9IjEyIiBjeT0iOSIgcng9IjEwIiByeT0iNSIgLz4KICA8cGF0aCBkPSJNNyAxMy40djcuOSIgLz4KICA8cGF0aCBkPSJNMTIgMTR2OCIgLz4KICA8cGF0aCBkPSJNMTcgMTMuNHY3LjkiIC8+CiAgPHBhdGggZD0iTTIgOXY4YTEwIDUgMCAwIDAgMjAgMFY5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/drum\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Drum: IconNode = [\n ['path', { d: 'm2 2 8 8' }],\n ['path', { d: 'm22 2-8 8' }],\n ['ellipse', { cx: '12', cy: '9', rx: '10', ry: '5' }],\n ['path', { d: 'M7 13.4v7.9' }],\n ['path', { d: 'M12 14v8' }],\n ['path', { d: 'M17 13.4v7.9' }],\n ['path', { d: 'M2 9v8a10 5 0 0 0 20 0V9' }],\n];\n\nexport default Drum;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drumstick\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNCAxNS42M2E3Ljg3NSA2IDEzNSAxIDEgNi4yMy02LjIzIDQuNSAzLjQzIDEzNSAwIDAtNi4yMyA2LjIzIiAvPgogIDxwYXRoIGQ9Im04LjI5IDEyLjcxLTIuNiAyLjZhMi41IDIuNSAwIDEgMC0xLjY1IDQuNjVBMi41IDIuNSAwIDEgMCA4LjcgMTguM2wyLjU5LTIuNTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/drumstick\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Drumstick: IconNode = [\n ['path', { d: 'M15.4 15.63a7.875 6 135 1 1 6.23-6.23 4.5 3.43 135 0 0-6.23 6.23' }],\n ['path', { d: 'm8.29 12.71-2.6 2.6a2.5 2.5 0 1 0-1.65 4.65A2.5 2.5 0 1 0 8.7 18.3l2.59-2.59' }],\n];\n\nexport default Drumstick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dumbbell\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuNTk2IDEyLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTEuNzY4LTEuNzY3YTIgMiAwIDAgMCAyLjgyOC0yLjgyOWwtMi44MjgtMi44MjhhMiAyIDAgMCAwLTIuODI5IDIuODI4bC0xLjc2Ny0xLjc2OGEyIDIgMCAxIDAtMi44MjkgMi44Mjl6IiAvPgogIDxwYXRoIGQ9Im0yLjUgMjEuNSAxLjQtMS40IiAvPgogIDxwYXRoIGQ9Im0yMC4xIDMuOSAxLjQtMS40IiAvPgogIDxwYXRoIGQ9Ik01LjM0MyAyMS40ODVhMiAyIDAgMSAwIDIuODI5LTIuODI4bDEuNzY3IDEuNzY4YTIgMiAwIDEgMCAyLjgyOS0yLjgyOWwtNi4zNjQtNi4zNjRhMiAyIDAgMSAwLTIuODI5IDIuODI5bDEuNzY4IDEuNzY3YTIgMiAwIDAgMC0yLjgyOCAyLjgyOXoiIC8+CiAgPHBhdGggZD0ibTkuNiAxNC40IDQuOC00LjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dumbbell\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dumbbell: IconNode = [\n [\n 'path',\n {\n d: 'M17.596 12.768a2 2 0 1 0 2.829-2.829l-1.768-1.767a2 2 0 0 0 2.828-2.829l-2.828-2.828a2 2 0 0 0-2.829 2.828l-1.767-1.768a2 2 0 1 0-2.829 2.829z',\n },\n ],\n ['path', { d: 'm2.5 21.5 1.4-1.4' }],\n ['path', { d: 'm20.1 3.9 1.4-1.4' }],\n [\n 'path',\n {\n d: 'M5.343 21.485a2 2 0 1 0 2.829-2.828l1.767 1.768a2 2 0 1 0 2.829-2.829l-6.364-6.364a2 2 0 1 0-2.829 2.829l1.768 1.767a2 2 0 0 0-2.828 2.829z',\n },\n ],\n ['path', { d: 'm9.6 14.4 4.8-4.8' }],\n];\n\nexport default Dumbbell;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ear-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxOC41YTMuNSAzLjUgMCAxIDAgNyAwYzAtMS41Ny45Mi0yLjUyIDIuMDQtMy40NiIgLz4KICA8cGF0aCBkPSJNNiA4LjVjMC0uNzUuMTMtMS40Ny4zNi0yLjE0IiAvPgogIDxwYXRoIGQ9Ik04LjggMy4xNUE2LjUgNi41IDAgMCAxIDE5IDguNWMwIDEuNjMtLjQ0IDIuODEtMS4wOSAzLjc2IiAvPgogIDxwYXRoIGQ9Ik0xMi41IDZBMi41IDIuNSAwIDAgMSAxNSA4LjVNMTAgMTNhMiAyIDAgMCAwIDEuODItMS4xOCIgLz4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ear-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EarOff: IconNode = [\n ['path', { d: 'M6 18.5a3.5 3.5 0 1 0 7 0c0-1.57.92-2.52 2.04-3.46' }],\n ['path', { d: 'M6 8.5c0-.75.13-1.47.36-2.14' }],\n ['path', { d: 'M8.8 3.15A6.5 6.5 0 0 1 19 8.5c0 1.63-.44 2.81-1.09 3.76' }],\n ['path', { d: 'M12.5 6A2.5 2.5 0 0 1 15 8.5M10 13a2 2 0 0 0 1.82-1.18' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default EarOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name earth-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAzLjM0VjVhMyAzIDAgMCAwIDMgMyIgLz4KICA8cGF0aCBkPSJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSIgLz4KICA8cGF0aCBkPSJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0IiAvPgogIDxwYXRoIGQ9Ik0xMiAyYTEwIDEwIDAgMSAwIDkuNTQgMTMiIC8+CiAgPHBhdGggZD0iTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iNSIgeD0iMTQiIHk9IjYiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/earth-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EarthLock: IconNode = [\n ['path', { d: 'M7 3.34V5a3 3 0 0 0 3 3' }],\n ['path', { d: 'M11 21.95V18a2 2 0 0 0-2-2 2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05' }],\n ['path', { d: 'M21.54 15H17a2 2 0 0 0-2 2v4.54' }],\n ['path', { d: 'M12 2a10 10 0 1 0 9.54 13' }],\n ['path', { d: 'M20 6V4a2 2 0 1 0-4 0v2' }],\n ['rect', { width: '8', height: '5', x: '14', y: '6', rx: '1' }],\n];\n\nexport default EarthLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ear\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA4LjVhNi41IDYuNSAwIDEgMSAxMyAwYzAgNi02IDYtNiAxMGEzLjUgMy41IDAgMSAxLTcgMCIgLz4KICA8cGF0aCBkPSJNMTUgOC41YTIuNSAyLjUgMCAwIDAtNSAwdjFhMiAyIDAgMSAxIDAgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ear\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ear: IconNode = [\n ['path', { d: 'M6 8.5a6.5 6.5 0 1 1 13 0c0 6-6 6-6 10a3.5 3.5 0 1 1-7 0' }],\n ['path', { d: 'M15 8.5a2.5 2.5 0 0 0-5 0v1a2 2 0 1 1 0 4' }],\n];\n\nexport default Ear;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name earth\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0IiAvPgogIDxwYXRoIGQ9Ik03IDMuMzRWNWEzIDMgMCAwIDAgMyAzYTIgMiAwIDAgMSAyIDJjMCAxLjEuOSAyIDIgMmEyIDIgMCAwIDAgMi0yYzAtMS4xLjktMiAyLTJoMy4xNyIgLz4KICA8cGF0aCBkPSJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/earth\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Earth: IconNode = [\n ['path', { d: 'M21.54 15H17a2 2 0 0 0-2 2v4.54' }],\n [\n 'path',\n { d: 'M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17' },\n ],\n ['path', { d: 'M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Earth;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eclipse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMmE3IDcgMCAxIDAgMTAgMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/eclipse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Eclipse: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 2a7 7 0 1 0 10 10' }],\n];\n\nexport default Eclipse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name egg-fried\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMS41IiBjeT0iMTIuNSIgcj0iMy41IiAvPgogIDxwYXRoIGQ9Ik0zIDhjMC0zLjUgMi41LTYgNi41LTYgNSAwIDQuODMgMyA3LjUgNXM1IDIgNSA2YzAgNC41LTIuNSA2LjUtNyA2LjUtMi41IDAtMi41IDIuNS02IDIuNXMtNy0yLTctNS41YzAtMyAxLjUtMyAxLjUtNUMzLjUgMTAgMyA5IDMgOFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/egg-fried\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EggFried: IconNode = [\n ['circle', { cx: '11.5', cy: '12.5', r: '3.5' }],\n [\n 'path',\n {\n d: 'M3 8c0-3.5 2.5-6 6.5-6 5 0 4.83 3 7.5 5s5 2 5 6c0 4.5-2.5 6.5-7 6.5-2.5 0-2.5 2.5-6 2.5s-7-2-7-5.5c0-3 1.5-3 1.5-5C3.5 10 3 9 3 8Z',\n },\n ],\n];\n\nexport default EggFried;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name egg-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNC4zNDdWMTRjMC02LTQtMTItOC0xMi0xLjA3OCAwLTIuMTU3LjQzNi0zLjE1NyAxLjE5IiAvPgogIDxwYXRoIGQ9Ik02LjIwNiA2LjIxQzQuODcxIDguNCA0IDExLjIgNCAxNGE4IDggMCAwIDAgMTQuNTY4IDQuNTY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/egg-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EggOff: IconNode = [\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20 14.347V14c0-6-4-12-8-12-1.078 0-2.157.436-3.157 1.19' }],\n ['path', { d: 'M6.206 6.21C4.871 8.4 4 11.2 4 14a8 8 0 0 0 14.568 4.568' }],\n];\n\nexport default EggOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name egg\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMkM4IDIgNCA4IDQgMTRhOCA4IDAgMCAwIDE2IDBjMC02LTQtMTItOC0xMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/egg\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Egg: IconNode = [['path', { d: 'M12 2C8 2 4 8 4 14a8 8 0 0 0 16 0c0-6-4-12-8-12' }]];\n\nexport default Egg;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ellipsis-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EllipsisVertical: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1' }],\n ['circle', { cx: '12', cy: '5', r: '1' }],\n ['circle', { cx: '12', cy: '19', r: '1' }],\n];\n\nexport default EllipsisVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ellipsis: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1' }],\n ['circle', { cx: '19', cy: '12', r: '1' }],\n ['circle', { cx: '5', cy: '12', r: '1' }],\n];\n\nexport default Ellipsis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name equal-approximately\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxNWE2LjUgNi41IDAgMCAxIDcgMCA2LjUgNi41IDAgMCAwIDcgMCIgLz4KICA8cGF0aCBkPSJNNSA5YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/equal-approximately\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EqualApproximately: IconNode = [\n ['path', { d: 'M5 15a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0' }],\n ['path', { d: 'M5 9a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0' }],\n];\n\nexport default EqualApproximately;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name equal-not\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNSIgeDI9IjE5IiB5MT0iOSIgeTI9IjkiIC8+CiAgPGxpbmUgeDE9IjUiIHgyPSIxOSIgeTE9IjE1IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjE5IiB4Mj0iNSIgeTE9IjUiIHkyPSIxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/equal-not\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EqualNot: IconNode = [\n ['line', { x1: '5', x2: '19', y1: '9', y2: '9' }],\n ['line', { x1: '5', x2: '19', y1: '15', y2: '15' }],\n ['line', { x1: '19', x2: '5', y1: '5', y2: '19' }],\n];\n\nexport default EqualNot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name equal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNSIgeDI9IjE5IiB5MT0iOSIgeTI9IjkiIC8+CiAgPGxpbmUgeDE9IjUiIHgyPSIxOSIgeTE9IjE1IiB5Mj0iMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/equal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Equal: IconNode = [\n ['line', { x1: '5', x2: '19', y1: '9', y2: '9' }],\n ['line', { x1: '5', x2: '19', y1: '15', y2: '15' }],\n];\n\nexport default Equal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ethernet-port\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMjAgMy0zaDJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjlhMiAyIDAgMCAwIDIgMmgybDMgM3oiIC8+CiAgPHBhdGggZD0iTTYgOHYxIiAvPgogIDxwYXRoIGQ9Ik0xMCA4djEiIC8+CiAgPHBhdGggZD0iTTE0IDh2MSIgLz4KICA8cGF0aCBkPSJNMTggOHYxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ethernet-port\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EthernetPort: IconNode = [\n [\n 'path',\n { d: 'm15 20 3-3h2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h2l3 3z' },\n ],\n ['path', { d: 'M6 8v1' }],\n ['path', { d: 'M10 8v1' }],\n ['path', { d: 'M14 8v1' }],\n ['path', { d: 'M18 8v1' }],\n];\n\nexport default EthernetPort;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eraser\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMjFIOGEyIDIgMCAwIDEtMS40Mi0uNTg3bC0zLjk5NC0zLjk5OWEyIDIgMCAwIDEgMC0yLjgyOGwxMC0xMGEyIDIgMCAwIDEgMi44MjkgMGw1Ljk5OSA2YTIgMiAwIDAgMSAwIDIuODI4TDEyLjgzNCAyMSIgLz4KICA8cGF0aCBkPSJtNS4wODIgMTEuMDkgOC44MjggOC44MjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/eraser\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Eraser: IconNode = [\n [\n 'path',\n {\n d: 'M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21',\n },\n ],\n ['path', { d: 'm5.082 11.09 8.828 8.828' }],\n];\n\nexport default Eraser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name euro\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGgxMiIgLz4KICA8cGF0aCBkPSJNNCAxNGg5IiAvPgogIDxwYXRoIGQ9Ik0xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/euro\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Euro: IconNode = [\n ['path', { d: 'M4 10h12' }],\n ['path', { d: 'M4 14h9' }],\n [\n 'path',\n { d: 'M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2' },\n ],\n];\n\nexport default Euro;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ev-charger\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTNoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAwIDQgMHYtNi45OThhMiAyIDAgMCAwLS41OS0xLjQyTDE4IDUiIC8+CiAgPHBhdGggZD0iTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYiIC8+CiAgPHBhdGggZD0iTTIgMjFoMTMiIC8+CiAgPHBhdGggZD0iTTMgN2gxMSIgLz4KICA8cGF0aCBkPSJtOSAxMS0yIDNoM2wtMiAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ev-charger\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EvCharger: IconNode = [\n ['path', { d: 'M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5' }],\n ['path', { d: 'M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16' }],\n ['path', { d: 'M2 21h13' }],\n ['path', { d: 'M3 7h11' }],\n ['path', { d: 'm9 11-2 3h3l-2 3' }],\n];\n\nexport default EvCharger;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name expand\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTUgNiA2IiAvPgogIDxwYXRoIGQ9Im0xNSA5IDYtNiIgLz4KICA8cGF0aCBkPSJNMjEgMTZ2NWgtNSIgLz4KICA8cGF0aCBkPSJNMjEgOFYzaC01IiAvPgogIDxwYXRoIGQ9Ik0zIDE2djVoNSIgLz4KICA8cGF0aCBkPSJtMyAyMSA2LTYiIC8+CiAgPHBhdGggZD0iTTMgOFYzaDUiIC8+CiAgPHBhdGggZD0iTTkgOSAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/expand\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Expand: IconNode = [\n ['path', { d: 'm15 15 6 6' }],\n ['path', { d: 'm15 9 6-6' }],\n ['path', { d: 'M21 16v5h-5' }],\n ['path', { d: 'M21 8V3h-5' }],\n ['path', { d: 'M3 16v5h5' }],\n ['path', { d: 'm3 21 6-6' }],\n ['path', { d: 'M3 8V3h5' }],\n ['path', { d: 'M9 9 3 3' }],\n];\n\nexport default Expand;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name external-link\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM2g2djYiIC8+CiAgPHBhdGggZD0iTTEwIDE0IDIxIDMiIC8+CiAgPHBhdGggZD0iTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ExternalLink: IconNode = [\n ['path', { d: 'M15 3h6v6' }],\n ['path', { d: 'M10 14 21 3' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6' }],\n];\n\nexport default ExternalLink;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eye-closed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtLjcyMi0zLjI1IiAvPgogIDxwYXRoIGQ9Ik0yIDhhMTAuNjQ1IDEwLjY0NSAwIDAgMCAyMCAwIiAvPgogIDxwYXRoIGQ9Im0yMCAxNS0xLjcyNi0yLjA1IiAvPgogIDxwYXRoIGQ9Im00IDE1IDEuNzI2LTIuMDUiIC8+CiAgPHBhdGggZD0ibTkgMTggLjcyMi0zLjI1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye-closed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EyeClosed: IconNode = [\n ['path', { d: 'm15 18-.722-3.25' }],\n ['path', { d: 'M2 8a10.645 10.645 0 0 0 20 0' }],\n ['path', { d: 'm20 15-1.726-2.05' }],\n ['path', { d: 'm4 15 1.726-2.05' }],\n ['path', { d: 'm9 18 .722-3.25' }],\n];\n\nexport default EyeClosed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eye\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Eye: IconNode = [\n [\n 'path',\n {\n d: 'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default Eye;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eye-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5IiAvPgogIDxwYXRoIGQ9Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiIgLz4KICA8cGF0aCBkPSJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EyeOff: IconNode = [\n [\n 'path',\n {\n d: 'M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49',\n },\n ],\n ['path', { d: 'M14.084 14.158a3 3 0 0 1-4.242-4.242' }],\n [\n 'path',\n {\n d: 'M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default EyeOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name facebook\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMmgtM2E1IDUgMCAwIDAtNSA1djNIN3Y0aDN2OGg0di04aDNsMS00aC00VjdhMSAxIDAgMCAxIDEtMWgzeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/facebook\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=facebook instead. This icon will be removed in v1.0\n */\nconst Facebook: IconNode = [\n ['path', { d: 'M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z' }],\n];\n\nexport default Facebook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name factory\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNmguMDEiIC8+CiAgPHBhdGggZD0iTTMgMTlhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjguNWEuNS41IDAgMCAwLS43NjktLjQyMmwtNC40NjIgMi44NDRBLjUuNSAwIDAgMSAxNSAxMC41di0yYS41LjUgMCAwIDAtLjc2OS0uNDIyTDkuNzcgMTAuOTIyQS41LjUgMCAwIDEgOSAxMC41VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ6IiAvPgogIDxwYXRoIGQ9Ik04IDE2aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/factory\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Factory: IconNode = [\n ['path', { d: 'M12 16h.01' }],\n ['path', { d: 'M16 16h.01' }],\n [\n 'path',\n {\n d: 'M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z',\n },\n ],\n ['path', { d: 'M8 16h.01' }],\n];\n\nexport default Factory;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fan\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuODI3IDE2LjM3OWE2LjA4MiA2LjA4MiAwIDAgMS04LjYxOC03LjAwMmw1LjQxMiAxLjQ1YTYuMDgyIDYuMDgyIDAgMCAxIDcuMDAyLTguNjE4bC0xLjQ1IDUuNDEyYTYuMDgyIDYuMDgyIDAgMCAxIDguNjE4IDcuMDAybC01LjQxMi0xLjQ1YTYuMDgyIDYuMDgyIDAgMCAxLTcuMDAyIDguNjE4bDEuNDUtNS40MTJaIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnYuMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/fan\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Fan: IconNode = [\n [\n 'path',\n {\n d: 'M10.827 16.379a6.082 6.082 0 0 1-8.618-7.002l5.412 1.45a6.082 6.082 0 0 1 7.002-8.618l-1.45 5.412a6.082 6.082 0 0 1 8.618 7.002l-5.412-1.45a6.082 6.082 0 0 1-7.002 8.618l1.45-5.412Z',\n },\n ],\n ['path', { d: 'M12 12v.01' }],\n];\n\nexport default Fan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fast-forward\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNmEyIDIgMCAwIDEgMy40MTQtMS40MTRsNiA2YTIgMiAwIDAgMSAwIDIuODI4bC02IDZBMiAyIDAgMCAxIDEyIDE4eiIgLz4KICA8cGF0aCBkPSJNMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMiAxOHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/fast-forward\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FastForward: IconNode = [\n ['path', { d: 'M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z' }],\n ['path', { d: 'M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z' }],\n];\n\nexport default FastForward;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name feather\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNjcgMTlhMiAyIDAgMCAwIDEuNDE2LS41ODhsNi4xNTQtNi4xNzJhNiA2IDAgMCAwLTguNDktOC40OUw1LjU4NiA5LjkxNEEyIDIgMCAwIDAgNSAxMS4zMjhWMThhMSAxIDAgMCAwIDEgMXoiIC8+CiAgPHBhdGggZD0iTTE2IDggMiAyMiIgLz4KICA8cGF0aCBkPSJNMTcuNSAxNUg5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/feather\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Feather: IconNode = [\n [\n 'path',\n {\n d: 'M12.67 19a2 2 0 0 0 1.416-.588l6.154-6.172a6 6 0 0 0-8.49-8.49L5.586 9.914A2 2 0 0 0 5 11.328V18a1 1 0 0 0 1 1z',\n },\n ],\n ['path', { d: 'M16 8 2 22' }],\n ['path', { d: 'M17.5 15H9' }],\n];\n\nexport default Feather;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fence\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAzIDIgNXYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIiAvPgogIDxwYXRoIGQ9Ik02IDhoNCIgLz4KICA8cGF0aCBkPSJNNiAxOGg0IiAvPgogIDxwYXRoIGQ9Im0xMiAzLTIgMnYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIiAvPgogIDxwYXRoIGQ9Ik0xNCA4aDQiIC8+CiAgPHBhdGggZD0iTTE0IDE4aDQiIC8+CiAgPHBhdGggZD0ibTIwIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/fence\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Fence: IconNode = [\n ['path', { d: 'M4 3 2 5v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z' }],\n ['path', { d: 'M6 8h4' }],\n ['path', { d: 'M6 18h4' }],\n ['path', { d: 'm12 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z' }],\n ['path', { d: 'M14 8h4' }],\n ['path', { d: 'M14 18h4' }],\n ['path', { d: 'm20 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z' }],\n];\n\nexport default Fence;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ferris-wheel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjQiIC8+CiAgPHBhdGggZD0ibTYuOCAxNS0zLjUgMiIgLz4KICA8cGF0aCBkPSJtMjAuNyA3LTMuNSAyIiAvPgogIDxwYXRoIGQ9Ik02LjggOSAzLjMgNyIgLz4KICA8cGF0aCBkPSJtMjAuNyAxNy0zLjUtMiIgLz4KICA8cGF0aCBkPSJtOSAyMiAzLTggMyA4IiAvPgogIDxwYXRoIGQ9Ik04IDIyaDgiIC8+CiAgPHBhdGggZD0iTTE4IDE4LjdhOSA5IDAgMSAwLTEyIDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ferris-wheel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FerrisWheel: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'm6.8 15-3.5 2' }],\n ['path', { d: 'm20.7 7-3.5 2' }],\n ['path', { d: 'M6.8 9 3.3 7' }],\n ['path', { d: 'm20.7 17-3.5-2' }],\n ['path', { d: 'm9 22 3-8 3 8' }],\n ['path', { d: 'M8 22h8' }],\n ['path', { d: 'M18 18.7a9 9 0 1 0-12 0' }],\n];\n\nexport default FerrisWheel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name figma\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA1LjVBMy41IDMuNSAwIDAgMSA4LjUgMkgxMnY3SDguNUEzLjUgMy41IDAgMCAxIDUgNS41eiIgLz4KICA8cGF0aCBkPSJNMTIgMmgzLjVhMy41IDMuNSAwIDEgMSAwIDdIMTJWMnoiIC8+CiAgPHBhdGggZD0iTTEyIDEyLjVhMy41IDMuNSAwIDEgMSA3IDAgMy41IDMuNSAwIDEgMS03IDB6IiAvPgogIDxwYXRoIGQ9Ik01IDE5LjVBMy41IDMuNSAwIDAgMSA4LjUgMTZIMTJ2My41YTMuNSAzLjUgMCAxIDEtNyAweiIgLz4KICA8cGF0aCBkPSJNNSAxMi41QTMuNSAzLjUgMCAwIDEgOC41IDlIMTJ2N0g4LjVBMy41IDMuNSAwIDAgMSA1IDEyLjV6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/figma\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=figma instead. This icon will be removed in v1.0\n */\nconst Figma: IconNode = [\n ['path', { d: 'M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z' }],\n ['path', { d: 'M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z' }],\n ['path', { d: 'M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z' }],\n ['path', { d: 'M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z' }],\n ['path', { d: 'M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z' }],\n];\n\nexport default Figma;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-archive\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTEuNSIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxMnYtMSIgLz4KICA8cGF0aCBkPSJNOCAxOHYtMiIgLz4KICA8cGF0aCBkPSJNOCA3VjYiIC8+CiAgPGNpcmNsZSBjeD0iOCIgY3k9IjIwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-archive\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileArchive: IconNode = [\n [\n 'path',\n {\n d: 'M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 12v-1' }],\n ['path', { d: 'M8 18v-2' }],\n ['path', { d: 'M8 7V6' }],\n ['circle', { cx: '8', cy: '20', r: '2' }],\n];\n\nexport default FileArchive;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-axis-3d\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtOCAxOCA0LTQiIC8+CiAgPHBhdGggZD0iTTggMTB2OGg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-axis-3d\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileAxis3d: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm8 18 4-4' }],\n ['path', { d: 'M8 10v8h8' }],\n];\n\nexport default FileAxis3d;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-badge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuMyIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtNy42OSAxNi40NzkgMS4yOSA0Ljg4YS41LjUgMCAwIDEtLjY5OC41OTFsLTEuODQzLS44NDlhMSAxIDAgMCAwLS44NzkuMDAxbC0xLjg0Ni44NWEuNS41IDAgMCAxLS42OTItLjU5M2wxLjI5LTQuODgiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjE0IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-badge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileBadge: IconNode = [\n [\n 'path',\n {\n d: 'M13 22h5a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.3',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n {\n d: 'm7.69 16.479 1.29 4.88a.5.5 0 0 1-.698.591l-1.843-.849a1 1 0 0 0-.879.001l-1.846.85a.5.5 0 0 1-.692-.593l1.29-4.88',\n },\n ],\n ['circle', { cx: '6', cy: '14', r: '3' }],\n];\n\nexport default FileBadge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-braces-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMjJoNGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTUgMTRhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMCAxIDEiIC8+CiAgPHBhdGggZD0iTTkgMjJhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTJhMSAxIDAgMCAwLTEtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-braces-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileBracesCorner: IconNode = [\n [\n 'path',\n {\n d: 'M14 22h4a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M5 14a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1 1 1 0 0 1 1 1v2a1 1 0 0 0 1 1' }],\n ['path', { d: 'M9 22a1 1 0 0 0 1-1v-2a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-2a1 1 0 0 0-1-1' }],\n];\n\nexport default FileBracesCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-box\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuOCIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTEuNyAxNC4yIDcgMTdsLTQuNy0yLjgiIC8+CiAgPHBhdGggZD0iTTMgMTMuMWEyIDIgMCAwIDAtLjk5OSAxLjc2djMuMjRhMiAyIDAgMCAwIC45NjkgMS43OEw2IDIxLjdhMiAyIDAgMCAwIDIuMDMuMDFMMTEgMTkuOWEyIDIgMCAwIDAgMS0xLjc2VjE0LjlhMiAyIDAgMCAwLS45Ny0xLjc4TDggMTEuM2EyIDIgMCAwIDAtMi4wMy0uMDF6IiAvPgogIDxwYXRoIGQ9Ik03IDE3djUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-box\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileBox: IconNode = [\n [\n 'path',\n {\n d: 'M14.5 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.8',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M11.7 14.2 7 17l-4.7-2.8' }],\n [\n 'path',\n {\n d: 'M3 13.1a2 2 0 0 0-.999 1.76v3.24a2 2 0 0 0 .969 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01z',\n },\n ],\n ['path', { d: 'M7 17v5' }],\n];\n\nexport default FileBox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-braces\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMTJhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMCAxIDEiIC8+CiAgPHBhdGggZD0iTTE0IDE4YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMC0xLTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-braces\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileBraces: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1' }],\n ['path', { d: 'M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1' }],\n];\n\nexport default FileBraces;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-chart-column-increasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxOHYtMiIgLz4KICA8cGF0aCBkPSJNMTIgMTh2LTQiIC8+CiAgPHBhdGggZD0iTTE2IDE4di02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-chart-column-increasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileChartColumnIncreasing: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 18v-2' }],\n ['path', { d: 'M12 18v-4' }],\n ['path', { d: 'M16 18v-6' }],\n];\n\nexport default FileChartColumnIncreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-chart-column\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxOHYtMSIgLz4KICA8cGF0aCBkPSJNMTIgMTh2LTYiIC8+CiAgPHBhdGggZD0iTTE2IDE4di0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-chart-column\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileChartColumn: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 18v-1' }],\n ['path', { d: 'M12 18v-6' }],\n ['path', { d: 'M16 18v-3' }],\n];\n\nexport default FileChartColumn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-chart-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtMTYgMTMtMy41IDMuNS0yLTJMOCAxNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-chart-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileChartLine: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm16 13-3.5 3.5-2-2L8 17' }],\n];\n\nexport default FileChartLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-chart-pie\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuOTQxIDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My41MTIiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTQuMDE3IDExLjUxMmE2IDYgMCAxIDAgOC40NjYgOC40NzUiIC8+CiAgPHBhdGggZD0iTTkgMTZhMSAxIDAgMCAxLTEtMXYtNGMwLS41NTIuNDUtMS4wMDguOTk1LS45MTdhNiA2IDAgMCAxIDQuOTIyIDQuOTIyYy4wOTEuNTQ0LS4zNjUuOTk1LS45MTcuOTk1eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-chart-pie\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileChartPie: IconNode = [\n [\n 'path',\n {\n d: 'M15.941 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.704l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.512',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M4.017 11.512a6 6 0 1 0 8.466 8.475' }],\n [\n 'path',\n {\n d: 'M9 16a1 1 0 0 1-1-1v-4c0-.552.45-1.008.995-.917a6 6 0 0 1 4.922 4.922c.091.544-.365.995-.917.995z',\n },\n ],\n];\n\nexport default FileChartPie;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-check-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djYiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0ibTE0IDIwIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-check-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCheckCorner: IconNode = [\n [\n 'path',\n {\n d: 'M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm14 20 2 2 4-4' }],\n];\n\nexport default FileCheckCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjJoMmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjIuODUiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTggMTR2Mi4ybDEuNiAxIiAvPgogIDxjaXJjbGUgY3g9IjgiIGN5PSIxNiIgcj0iNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileClock: IconNode = [\n [\n 'path',\n {\n d: 'M16 22h2a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v2.85',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 14v2.2l1.6 1' }],\n ['circle', { cx: '8', cy: '16', r: '6' }],\n];\n\nexport default FileClock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtOSAxNSAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCheck: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm9 15 2 2 4-4' }],\n];\n\nexport default FileCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-code-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMi4xNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMy4zNSIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtNSAxNi0zIDMgMyAzIiAvPgogIDxwYXRoIGQ9Im05IDIyIDMtMy0zLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-code-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCodeCorner: IconNode = [\n [\n 'path',\n {\n d: 'M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm5 16-3 3 3 3' }],\n ['path', { d: 'm9 22 3-3-3-3' }],\n];\n\nexport default FileCodeCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMTIuNSA4IDE1bDIgMi41IiAvPgogIDxwYXRoIGQ9Im0xNCAxMi41IDIgMi41LTIgMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCode: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 12.5 8 15l2 2.5' }],\n ['path', { d: 'm14 12.5 2 2.5-2 2.5' }],\n];\n\nexport default FileCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgOGExIDEgMCAwIDEtMS0xVjJhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4eiIgLz4KICA8cGF0aCBkPSJNMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC00LjE4MiIgLz4KICA8cGF0aCBkPSJtMy4zMDUgMTkuNTMuOTIzLS4zODIiIC8+CiAgPHBhdGggZD0iTTQgMTAuNTkyVjRhMiAyIDAgMCAxIDItMmg4IiAvPgogIDxwYXRoIGQ9Im00LjIyOCAxNi44NTItLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im01Ljg1MiAxNS4yMjgtLjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im01Ljg1MiAyMC43NzItLjM4My45MjQiIC8+CiAgPHBhdGggZD0ibTguMTQ4IDE1LjIyOC4zODMtLjkyMyIgLz4KICA8cGF0aCBkPSJtOC41MyAyMS42OTYtLjM4Mi0uOTI0IiAvPgogIDxwYXRoIGQ9Im05Ljc3MyAxNi44NTIuOTIyLS4zODMiIC8+CiAgPHBhdGggZD0ibTkuNzczIDE5LjE0OC45MjIuMzgzIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCog: IconNode = [\n ['path', { d: 'M15 8a1 1 0 0 1-1-1V2a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8z' }],\n ['path', { d: 'M20 8v12a2 2 0 0 1-2 2h-4.182' }],\n ['path', { d: 'm3.305 19.53.923-.382' }],\n ['path', { d: 'M4 10.592V4a2 2 0 0 1 2-2h8' }],\n ['path', { d: 'm4.228 16.852-.924-.383' }],\n ['path', { d: 'm5.852 15.228-.383-.923' }],\n ['path', { d: 'm5.852 20.772-.383.924' }],\n ['path', { d: 'm8.148 15.228.383-.923' }],\n ['path', { d: 'm8.53 21.696-.382-.924' }],\n ['path', { d: 'm9.773 16.852.922-.383' }],\n ['path', { d: 'm9.773 19.148.922.383' }],\n ['circle', { cx: '7', cy: '18', r: '3' }],\n];\n\nexport default FileCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-diff\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNOSAxMGg2IiAvPgogIDxwYXRoIGQ9Ik0xMiAxM1Y3IiAvPgogIDxwYXRoIGQ9Ik05IDE3aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-diff\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileDiff: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M9 10h6' }],\n ['path', { d: 'M12 13V7' }],\n ['path', { d: 'M9 17h6' }],\n];\n\nexport default FileDiff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-digit\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMTZoMnY2IiAvPgogIDxwYXRoIGQ9Ik0xMCAyMmg0IiAvPgogIDxyZWN0IHg9IjIiIHk9IjE2IiB3aWR0aD0iNCIgaGVpZ2h0PSI2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-digit\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileDigit: IconNode = [\n [\n 'path',\n {\n d: 'M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 16h2v6' }],\n ['path', { d: 'M10 22h4' }],\n ['rect', { x: '2', y: '16', width: '4', height: '6', rx: '2' }],\n];\n\nexport default FileDigit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTIgMTh2LTYiIC8+CiAgPHBhdGggZD0ibTkgMTUgMyAzIDMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileDown: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M12 18v-6' }],\n ['path', { d: 'm9 15 3 3 3-3' }],\n];\n\nexport default FileDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-exclamation-point\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTIgOXY0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxN2guMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-exclamation-point\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileExclamationPoint: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M12 9v4' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default FileExclamationPoint;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-headphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA2LjgzNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtLjM0MyIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMiAxOWEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAxLTQgMHYtNGE2IDYgMCAwIDEgMTIgMHY0YTIgMiAwIDAgMS00IDB2LTFhMiAyIDAgMCAxIDQgMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-headphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileHeadphone: IconNode = [\n [\n 'path',\n {\n d: 'M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n { d: 'M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0' },\n ],\n];\n\nexport default FileHeadphone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjciIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTMuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgNyAxNS44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YTEgMSAwIDAgMS0xLjUwNyAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileHeart: IconNode = [\n [\n 'path',\n {\n d: 'M13 22h5a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v7',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n {\n d: 'M3.62 18.8A2.25 2.25 0 1 1 7 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a1 1 0 0 1-1.507 0z',\n },\n ],\n];\n\nexport default FileHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-image\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjEyIiByPSIyIiAvPgogIDxwYXRoIGQ9Im0yMCAxNy0xLjI5Ni0xLjI5NmEyLjQxIDIuNDEgMCAwIDAtMy40MDggMEw5IDIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-image\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileImage: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['circle', { cx: '10', cy: '12', r: '2' }],\n ['path', { d: 'm20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22' }],\n];\n\nexport default FileImage;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-input\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTEiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTIgMTVoMTAiIC8+CiAgPHBhdGggZD0ibTkgMTggMy0zLTMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-input\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileInput: IconNode = [\n [\n 'path',\n {\n d: 'M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-1',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M2 15h10' }],\n ['path', { d: 'm9 18 3-3-3-3' }],\n];\n\nexport default FileInput;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNNCAxMnY2IiAvPgogIDxwYXRoIGQ9Ik00IDE0aDIiIC8+CiAgPHBhdGggZD0iTTkuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY0IiAvPgogIDxjaXJjbGUgY3g9IjQiIGN5PSIyMCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileKey: IconNode = [\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M4 12v6' }],\n ['path', { d: 'M4 14h2' }],\n [\n 'path',\n {\n d: 'M9.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v4',\n },\n ],\n ['circle', { cx: '4', cy: '20', r: '2' }],\n];\n\nexport default FileKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA5LjhWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTMiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTkgMTd2LTJhMiAyIDAgMCAwLTQgMHYyIiAvPgogIDxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjUiIHg9IjMiIHk9IjE3IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileLock: IconNode = [\n [\n 'path',\n {\n d: 'M4 9.8V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M9 17v-2a2 2 0 0 0-4 0v2' }],\n ['rect', { width: '8', height: '5', x: '3', y: '17', rx: '1' }],\n];\n\nexport default FileLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-minus-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTRWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTQgMThoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-minus-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileMinusCorner: IconNode = [\n [\n 'path',\n {\n d: 'M20 14V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M14 18h6' }],\n];\n\nexport default FileMinusCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOSAxNWg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileMinus: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M9 15h6' }],\n];\n\nexport default FileMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-music\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxMC4zNSIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAyMHYtN2wzIDEuNDc0IiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSIyMCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-music\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileMusic: IconNode = [\n [\n 'path',\n {\n d: 'M11.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v10.35',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 20v-7l3 1.474' }],\n ['circle', { cx: '6', cy: '20', r: '2' }],\n];\n\nexport default FileMusic;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-output\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC4yMjYgMjAuOTI1QTIgMiAwIDAgMCA2IDIyaDEyYTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My4xMjciIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0ibTUgMTEtMyAzIiAvPgogIDxwYXRoIGQ9Im01IDE3LTMtM2gxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-output\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileOutput: IconNode = [\n [\n 'path',\n {\n d: 'M4.226 20.925A2 2 0 0 0 6 22h12a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.127',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm5 11-3 3' }],\n ['path', { d: 'm5 17-3-3h10' }],\n];\n\nexport default FileOutput;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-pen-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTguMjI2IDUuMjI2LTIuNTItMi41MkEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtLjM1MSIgLz4KICA8cGF0aCBkPSJNMjEuMzc4IDEyLjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6IiAvPgogIDxwYXRoIGQ9Ik04IDE4aDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-pen-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FilePenLine: IconNode = [\n [\n 'path',\n {\n d: 'm18.226 5.226-2.52-2.52A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.351',\n },\n ],\n [\n 'path',\n {\n d: 'M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n ['path', { d: 'M8 18h1' }],\n];\n\nexport default FilePenLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2OS4zNCIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAuMzc4IDEyLjYyMmExIDEgMCAwIDEgMyAzLjAwM0w4LjM2IDIwLjYzN2EyIDIgMCAwIDEtLjg1NC41MDZsLTIuODY3LjgzN2EuNS41IDAgMCAxLS42Mi0uNjJsLjgzNi0yLjg2OWEyIDIgMCAwIDEgLjUwNi0uODUzeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FilePen: IconNode = [\n [\n 'path',\n {\n d: 'M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n {\n d: 'M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z',\n },\n ],\n];\n\nexport default FilePen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTUuMDMzIDEzLjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZ2LTQuNzA0YS42NDUuNjQ1IDAgMCAxIC45NjctLjU2eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FilePlay: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n {\n d: 'M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z',\n },\n ],\n];\n\nexport default FilePlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-plus-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMzUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1LjM1IiAvPgogIDxwYXRoIGQ9Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiAvPgogIDxwYXRoIGQ9Ik0xNCAxOWg2IiAvPgogIDxwYXRoIGQ9Ik0xNyAxNnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-plus-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FilePlusCorner: IconNode = [\n [\n 'path',\n {\n d: 'M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M14 19h6' }],\n ['path', { d: 'M17 16v6' }],\n];\n\nexport default FilePlusCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgogIDxwYXRoIGQ9Ik05LjEgOWEzIDMgMCAwIDEgNS44MiAxYzAgMi0zIDMtMyAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileQuestionMark: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M12 17h.01' }],\n ['path', { d: 'M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3' }],\n];\n\nexport default FileQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOSAxNWg2IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOHYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FilePlus: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M9 15h6' }],\n ['path', { d: 'M12 18v-6' }],\n];\n\nexport default FilePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-scan\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmg0LjM1IiAvPgogIDxwYXRoIGQ9Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiAvPgogIDxwYXRoIGQ9Ik0xNiAxNGEyIDIgMCAwIDAtMiAyIiAvPgogIDxwYXRoIGQ9Ik0xNiAyMmEyIDIgMCAwIDEtMi0yIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGEyIDIgMCAwIDEgMiAyIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMmEyIDIgMCAwIDAgMi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-scan\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileScan: IconNode = [\n [\n 'path',\n {\n d: 'M20 10V8a2.4 2.4 0 0 0-.706-1.704l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.35',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M16 14a2 2 0 0 0-2 2' }],\n ['path', { d: 'M16 22a2 2 0 0 1-2-2' }],\n ['path', { d: 'M20 14a2 2 0 0 1 2 2' }],\n ['path', { d: 'M20 22a2 2 0 0 0 2-2' }],\n];\n\nexport default FileScan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8Y2lyY2xlIGN4PSIxMS41IiBjeT0iMTQuNSIgcj0iMi41IiAvPgogIDxwYXRoIGQ9Ik0xMy4zIDE2LjMgMTUgMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSearch: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['circle', { cx: '11.5', cy: '14.5', r: '2.5' }],\n ['path', { d: 'M13.3 16.3 15 18' }],\n];\n\nexport default FileSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-search-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODkgMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djMuMjUiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0ibTIxIDIyLTIuODgtMi44OCIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE3IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-search-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSearchCorner: IconNode = [\n [\n 'path',\n {\n d: 'M11.1 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.589 3.588A2.4 2.4 0 0 1 20 8v3.25',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm21 22-2.88-2.88' }],\n ['circle', { cx: '16', cy: '17', r: '3' }],\n];\n\nexport default FileSearchCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-signal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxNWguMDEiIC8+CiAgPHBhdGggZD0iTTExLjUgMTMuNWEyLjUgMi41IDAgMCAxIDAgMyIgLz4KICA8cGF0aCBkPSJNMTUgMTJhNSA1IDAgMCAxIDAgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-signal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSignal: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 15h.01' }],\n ['path', { d: 'M11.5 13.5a2.5 2.5 0 0 1 0 3' }],\n ['path', { d: 'M15 12a5 5 0 0 1 0 6' }],\n];\n\nexport default FileSignal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-sliders\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMCAxMXYyIiAvPgogIDxwYXRoIGQ9Ik04IDE3aDgiIC8+CiAgPHBhdGggZD0iTTE0IDE2djIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-sliders\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSliders: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'M10 11v2' }],\n ['path', { d: 'M8 17h8' }],\n ['path', { d: 'M14 16v2' }],\n];\n\nexport default FileSliders;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-spreadsheet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxM2gyIiAvPgogIDxwYXRoIGQ9Ik0xNCAxM2gyIiAvPgogIDxwYXRoIGQ9Ik04IDE3aDIiIC8+CiAgPHBhdGggZD0iTTE0IDE3aDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-spreadsheet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSpreadsheet: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 13h2' }],\n ['path', { d: 'M14 13h2' }],\n ['path', { d: 'M8 17h2' }],\n ['path', { d: 'M14 17h2' }],\n];\n\nexport default FileSpreadsheet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-stack\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LThhMSAxIDAgMCAxIDEtMSIgLz4KICA8cGF0aCBkPSJNMTYgMTZhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTFWOGExIDEgMCAwIDEgMS0xIiAvPgogIDxwYXRoIGQ9Ik0yMSA2YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0yLTJBMiAyIDAgMCAwIDE3IDJoLTNhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-stack\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileStack: IconNode = [\n ['path', { d: 'M11 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1' }],\n ['path', { d: 'M16 16a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1' }],\n [\n 'path',\n {\n d: 'M21 6a2 2 0 0 0-.586-1.414l-2-2A2 2 0 0 0 17 2h-3a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1z',\n },\n ],\n];\n\nexport default FileStack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-symlink\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3IiAvPgogIDxwYXRoIGQ9Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiAvPgogIDxwYXRoIGQ9Im0xMCAxOCAzLTMtMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-symlink\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSymlink: IconNode = [\n [\n 'path',\n {\n d: 'M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm10 18 3-3-3-3' }],\n];\n\nexport default FileSymlink;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-terminal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtOCAxNiAyLTItMi0yIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-terminal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileTerminal: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm8 16 2-2-2-2' }],\n ['path', { d: 'M12 18h4' }],\n];\n\nexport default FileTerminal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgOUg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxM0g4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileText: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 9H8' }],\n ['path', { d: 'M16 13H8' }],\n ['path', { d: 'M16 17H8' }],\n];\n\nexport default FileText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-type-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJoNmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTMgMTZ2LTEuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41VjE2IiAvPgogIDxwYXRoIGQ9Ik02IDIyaDIiIC8+CiAgPHBhdGggZD0iTTcgMTR2OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-type-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileTypeCorner: IconNode = [\n [\n 'path',\n {\n d: 'M12 22h6a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M3 16v-1.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5V16' }],\n ['path', { d: 'M6 22h2' }],\n ['path', { d: 'M7 14v8' }],\n];\n\nexport default FileTypeCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-type\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTEgMThoMiIgLz4KICA8cGF0aCBkPSJNMTIgMTJ2NiIgLz4KICA8cGF0aCBkPSJNOSAxM3YtLjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgLjUuNXYuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-type\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileType: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M11 18h2' }],\n ['path', { d: 'M12 12v6' }],\n ['path', { d: 'M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5' }],\n];\n\nexport default FileType;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTIgMTJ2NiIgLz4KICA8cGF0aCBkPSJtMTUgMTUtMy0zLTMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileUp: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M12 12v6' }],\n ['path', { d: 'm15 15-3-3-3 3' }],\n];\n\nexport default FileUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTYgMjJhNCA0IDAgMCAwLTggMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE1IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileUser: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M16 22a4 4 0 0 0-8 0' }],\n ['circle', { cx: '12', cy: '15', r: '3' }],\n];\n\nexport default FileUser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-video-camera\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtMTAgMTcuODQzIDMuMDMzLTEuNzU1YS42NC42NCAwIDAgMSAuOTY3LjU2djQuNzA0YS42NS42NSAwIDAgMS0uOTY3LjU2TDEwIDIwLjE1NyIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI2IiB4PSIzIiB5PSIxNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-video-camera\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileVideoCamera: IconNode = [\n [\n 'path',\n {\n d: 'M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n { d: 'm10 17.843 3.033-1.755a.64.64 0 0 1 .967.56v4.704a.65.65 0 0 1-.967.56L10 20.157' },\n ],\n ['rect', { width: '7', height: '6', x: '3', y: '16', rx: '1' }],\n];\n\nexport default FileVideoCamera;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-volume\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMS41NVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMS45NSIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTIgMTVhNSA1IDAgMCAxIDAgNiIgLz4KICA8cGF0aCBkPSJNOCAxNC41MDJhLjUuNSAwIDAgMC0uODI2LS4zODFsLTEuODkzIDEuNjMxYTEgMSAwIDAgMS0uNjUxLjI0M0gzLjVhLjUuNSAwIDAgMC0uNS41MDF2My4wMDZhLjUuNSAwIDAgMCAuNS41MDFoMS4xMjlhMSAxIDAgMCAxIC42NTIuMjQzbDEuODkzIDEuNjMzYS41LjUgMCAwIDAgLjgyNi0uMzh6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-volume\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileVolume: IconNode = [\n [\n 'path',\n {\n d: 'M4 11.55V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-1.95',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M12 15a5 5 0 0 1 0 6' }],\n [\n 'path',\n {\n d: 'M8 14.502a.5.5 0 0 0-.826-.381l-1.893 1.631a1 1 0 0 1-.651.243H3.5a.5.5 0 0 0-.5.501v3.006a.5.5 0 0 0 .5.501h1.129a1 1 0 0 1 .652.243l1.893 1.633a.5.5 0 0 0 .826-.38z',\n },\n ],\n];\n\nexport default FileVolume;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-x-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1IiAvPgogIDxwYXRoIGQ9Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiAvPgogIDxwYXRoIGQ9Im0xNSAxNyA1IDUiIC8+CiAgPHBhdGggZD0ibTIwIDE3LTUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-x-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileXCorner: IconNode = [\n [\n 'path',\n {\n d: 'M11 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm15 17 5 5' }],\n ['path', { d: 'm20 17-5 5' }],\n];\n\nexport default FileXCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtMTQuNSAxMi41LTUgNSIgLz4KICA8cGF0aCBkPSJtOS41IDEyLjUgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileX: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm14.5 12.5-5 5' }],\n ['path', { d: 'm9.5 12.5 5 5' }],\n];\n\nexport default FileX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst File: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n];\n\nexport default File;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name files\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMmgtNGEyIDIgMCAwIDAtMiAydjExYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjgiIC8+CiAgPHBhdGggZD0iTTE2LjcwNiAyLjcwNkEyLjQgMi40IDAgMCAwIDE1IDJ2NWExIDEgMCAwIDAgMSAxaDVhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2eiIgLz4KICA8cGF0aCBkPSJNNSA3YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAxLjczMi0xIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/files\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Files: IconNode = [\n ['path', { d: 'M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8' }],\n ['path', { d: 'M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z' }],\n ['path', { d: 'M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1' }],\n];\n\nexport default Files;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name film\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDN2MTgiIC8+CiAgPHBhdGggZD0iTTMgNy41aDQiIC8+CiAgPHBhdGggZD0iTTMgMTJoMTgiIC8+CiAgPHBhdGggZD0iTTMgMTYuNWg0IiAvPgogIDxwYXRoIGQ9Ik0xNyAzdjE4IiAvPgogIDxwYXRoIGQ9Ik0xNyA3LjVoNCIgLz4KICA8cGF0aCBkPSJNMTcgMTYuNWg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/film\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Film: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 3v18' }],\n ['path', { d: 'M3 7.5h4' }],\n ['path', { d: 'M3 12h18' }],\n ['path', { d: 'M3 16.5h4' }],\n ['path', { d: 'M17 3v18' }],\n ['path', { d: 'M17 7.5h4' }],\n ['path', { d: 'M17 16.5h4' }],\n];\n\nexport default Film;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fingerprint-pattern\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTBhMiAyIDAgMCAwLTIgMmMwIDEuMDItLjEgMi41MS0uMjYgNCIgLz4KICA8cGF0aCBkPSJNMTQgMTMuMTJjMCAyLjM4IDAgNi4zOC0xIDguODgiIC8+CiAgPHBhdGggZD0iTTE3LjI5IDIxLjAyYy4xMi0uNi40My0yLjMuNS0zLjAyIiAvPgogIDxwYXRoIGQ9Ik0yIDEyYTEwIDEwIDAgMCAxIDE4LTYiIC8+CiAgPHBhdGggZD0iTTIgMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yMS44IDE2Yy4yLTIgLjEzMS01LjM1NCAwLTYiIC8+CiAgPHBhdGggZD0iTTUgMTkuNUM1LjUgMTggNiAxNSA2IDEyYTYgNiAwIDAgMSAuMzQtMiIgLz4KICA8cGF0aCBkPSJNOC42NSAyMmMuMjEtLjY2LjQ1LTEuMzIuNTctMiIgLz4KICA8cGF0aCBkPSJNOSA2LjhhNiA2IDAgMCAxIDkgNS4ydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/fingerprint-pattern\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FingerprintPattern: IconNode = [\n ['path', { d: 'M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4' }],\n ['path', { d: 'M14 13.12c0 2.38 0 6.38-1 8.88' }],\n ['path', { d: 'M17.29 21.02c.12-.6.43-2.3.5-3.02' }],\n ['path', { d: 'M2 12a10 10 0 0 1 18-6' }],\n ['path', { d: 'M2 16h.01' }],\n ['path', { d: 'M21.8 16c.2-2 .131-5.354 0-6' }],\n ['path', { d: 'M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2' }],\n ['path', { d: 'M8.65 22c.21-.66.45-1.32.57-2' }],\n ['path', { d: 'M9 6.8a6 6 0 0 1 9 5.2v2' }],\n];\n\nexport default FingerprintPattern;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fire-extinguisher\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNi41VjNhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMuNSIgLz4KICA8cGF0aCBkPSJNOSAxOGg4IiAvPgogIDxwYXRoIGQ9Ik0xOCAzaC0zIiAvPgogIDxwYXRoIGQ9Ik0xMSAzYTYgNiAwIDAgMC02IDZ2MTEiIC8+CiAgPHBhdGggZD0iTTUgMTNoNCIgLz4KICA8cGF0aCBkPSJNMTcgMTBhNCA0IDAgMCAwLTggMHYxMGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/fire-extinguisher\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FireExtinguisher: IconNode = [\n ['path', { d: 'M15 6.5V3a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3.5' }],\n ['path', { d: 'M9 18h8' }],\n ['path', { d: 'M18 3h-3' }],\n ['path', { d: 'M11 3a6 6 0 0 0-6 6v11' }],\n ['path', { d: 'M5 13h4' }],\n ['path', { d: 'M17 10a4 4 0 0 0-8 0v10a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2Z' }],\n];\n\nexport default FireExtinguisher;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fish-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTIuNDd2LjAzbTAtLjV2LjQ3bS0uNDc1IDUuMDU2QTYuNzQ0IDYuNzQ0IDAgMCAxIDE1IDE4Yy0zLjU2IDAtNy41Ni0yLjUzLTguNS02IC4zNDgtMS4yOCAxLjExNC0yLjQzMyAyLjEyMS0zLjM4bTMuNDQ0LTIuMDg4QTguODAyIDguODAyIDAgMCAxIDE1IDZjMy41NiAwIDYuMDYgMi41NCA3IDYtLjMwOSAxLjE0LS43ODYgMi4xNzctMS40MTMgMy4wNTgiIC8+CiAgPHBhdGggZD0iTTcgMTAuNjdDNyA4IDUuNTggNS45NyAyLjczIDUuNWMtMSAxLjUtMSA1IC4yMyA2LjUtMS4yNCAxLjUtMS4yNCA1LS4yMyA2LjVDNS41OCAxOC4wMyA3IDE2IDcgMTMuMzNtNy40OC00LjM3MkE5Ljc3IDkuNzcgMCAwIDEgMTYgNi4wN20wIDExLjg2YTkuNzcgOS43NyAwIDAgMS0xLjcyOC0zLjYxOCIgLz4KICA8cGF0aCBkPSJtMTYuMDEgMTcuOTMtLjIzIDEuNEEyIDIgMCAwIDEgMTMuOCAyMUg5LjVhNS45NiA1Ljk2IDAgMCAwIDEuNDktMy45OE04LjUzIDNoNS4yN2EyIDIgMCAwIDEgMS45OCAxLjY3bC4yMyAxLjRNMiAybDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/fish-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FishOff: IconNode = [\n [\n 'path',\n {\n d: 'M18 12.47v.03m0-.5v.47m-.475 5.056A6.744 6.744 0 0 1 15 18c-3.56 0-7.56-2.53-8.5-6 .348-1.28 1.114-2.433 2.121-3.38m3.444-2.088A8.802 8.802 0 0 1 15 6c3.56 0 6.06 2.54 7 6-.309 1.14-.786 2.177-1.413 3.058',\n },\n ],\n [\n 'path',\n {\n d: 'M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33m7.48-4.372A9.77 9.77 0 0 1 16 6.07m0 11.86a9.77 9.77 0 0 1-1.728-3.618',\n },\n ],\n [\n 'path',\n {\n d: 'm16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98M8.53 3h5.27a2 2 0 0 1 1.98 1.67l.23 1.4M2 2l20 20',\n },\n ],\n];\n\nexport default FishOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fish-symbol\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxNnM5LTE1IDIwLTRDMTEgMjMgMiA4IDIgOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/fish-symbol\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FishSymbol: IconNode = [['path', { d: 'M2 16s9-15 20-4C11 23 2 8 2 8' }]];\n\nexport default FishSymbol;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fish\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNi41IDEyYy45NC0zLjQ2IDQuOTQtNiA4LjUtNiAzLjU2IDAgNi4wNiAyLjU0IDcgNi0uOTQgMy40Ny0zLjQ0IDYtNyA2cy03LjU2LTIuNTMtOC41LTZaIiAvPgogIDxwYXRoIGQ9Ik0xOCAxMnYuNSIgLz4KICA8cGF0aCBkPSJNMTYgMTcuOTNhOS43NyA5Ljc3IDAgMCAxIDAtMTEuODYiIC8+CiAgPHBhdGggZD0iTTcgMTAuNjdDNyA4IDUuNTggNS45NyAyLjczIDUuNWMtMSAxLjUtMSA1IC4yMyA2LjUtMS4yNCAxLjUtMS4yNCA1LS4yMyA2LjVDNS41OCAxOC4wMyA3IDE2IDcgMTMuMzMiIC8+CiAgPHBhdGggZD0iTTEwLjQ2IDcuMjZDMTAuMiA1Ljg4IDkuMTcgNC4yNCA4IDNoNS44YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNCIgLz4KICA8cGF0aCBkPSJtMTYuMDEgMTcuOTMtLjIzIDEuNEEyIDIgMCAwIDEgMTMuOCAyMUg5LjVhNS45NiA1Ljk2IDAgMCAwIDEuNDktMy45OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/fish\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Fish: IconNode = [\n [\n 'path',\n {\n d: 'M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z',\n },\n ],\n ['path', { d: 'M18 12v.5' }],\n ['path', { d: 'M16 17.93a9.77 9.77 0 0 1 0-11.86' }],\n [\n 'path',\n {\n d: 'M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33',\n },\n ],\n ['path', { d: 'M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4' }],\n ['path', { d: 'm16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98' }],\n];\n\nexport default Fish;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fishing-hook\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcuNTg2IDExLjQxNC01LjkzIDUuOTNhMSAxIDAgMCAxLTgtOGwzLjEzNy0zLjEzN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy41VjEwIiAvPgogIDxwYXRoIGQ9Ik0yMC40MTQgOC41ODYgMjIgNyIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjEwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/fishing-hook\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FishingHook: IconNode = [\n ['path', { d: 'm17.586 11.414-5.93 5.93a1 1 0 0 1-8-8l3.137-3.137a.707.707 0 0 1 1.207.5V10' }],\n ['path', { d: 'M20.414 8.586 22 7' }],\n ['circle', { cx: '19', cy: '10', r: '2' }],\n];\n\nexport default FishingHook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flag-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTZjLTMgMC01LTItOC0yYTYgNiAwIDAgMC00IDEuNTI4IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTQgMjJWNCIgLz4KICA8cGF0aCBkPSJNNy42NTYgMkg4YzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTAuMzQ3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/flag-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlagOff: IconNode = [\n ['path', { d: 'M16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M4 22V4' }],\n ['path', { d: 'M7.656 2H8c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10.347' }],\n];\n\nexport default FlagOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flag-triangle-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMjJWMi44YS44LjggMCAwIDAtMS4xNy0uNzFMNS40NSA3Ljc4YS44LjggMCAwIDAgMCAxLjQ0TDE4IDE1LjUiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/flag-triangle-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlagTriangleLeft: IconNode = [\n ['path', { d: 'M18 22V2.8a.8.8 0 0 0-1.17-.71L5.45 7.78a.8.8 0 0 0 0 1.44L18 15.5' }],\n];\n\nexport default FlagTriangleLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flag-triangle-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMlYyLjhhLjguOCAwIDAgMSAxLjE3LS43MWwxMS4zOCA1LjY5YS44LjggMCAwIDEgMCAxLjQ0TDYgMTUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/flag-triangle-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlagTriangleRight: IconNode = [\n ['path', { d: 'M6 22V2.8a.8.8 0 0 1 1.17-.71l11.38 5.69a.8.8 0 0 1 0 1.44L6 15.5' }],\n];\n\nexport default FlagTriangleRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMlY0YTEgMSAwIDAgMSAuNC0uOEE2IDYgMCAwIDEgOCAyYzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTBhMSAxIDAgMCAxLS40LjhBNiA2IDAgMCAxIDE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/flag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flag: IconNode = [\n [\n 'path',\n {\n d: 'M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528',\n },\n ],\n];\n\nexport default Flag;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flame-kindling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAxNyAxMGE1IDUgMCAxIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDOCA0LjUgMTEgMiAxMiAyWiIgLz4KICA8cGF0aCBkPSJtNSAyMiAxNC00IiAvPgogIDxwYXRoIGQ9Im01IDE4IDE0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flame-kindling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlameKindling: IconNode = [\n [\n 'path',\n {\n d: 'M12 2c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 17 10a5 5 0 1 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C8 4.5 11 2 12 2Z',\n },\n ],\n ['path', { d: 'm5 22 14-4' }],\n ['path', { d: 'm5 18 14 4' }],\n];\n\nexport default FlameKindling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flame\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3ExIDQgNCA2LjV0MyA1LjVhMSAxIDAgMCAxLTE0IDAgNSA1IDAgMCAxIDEtMyAxIDEgMCAwIDAgNSAwYzAtMi0xLjUtMy0xLjUtNXEwLTIgMi41LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flame\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flame: IconNode = [\n [\n 'path',\n {\n d: 'M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4',\n },\n ],\n];\n\nexport default Flame;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flashlight-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNjUyIDZIMTgiIC8+CiAgPHBhdGggZD0iTTEyIDEzdjEiIC8+CiAgPHBhdGggZD0iTTE2IDE2djRhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0ydi04YTQgNCAwIDAgMC0uOC0yLjRsLS42LS44QTMgMyAwIDAgMSA2IDdWNiIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik03LjY0OSAySDE3YTEgMSAwIDAgMSAxIDF2NGEzIDMgMCAwIDEtLjYgMS44bC0uNi44YTQgNCAwIDAgMC0uNTUgMS4wMDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flashlight-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlashlightOff: IconNode = [\n ['path', { d: 'M11.652 6H18' }],\n ['path', { d: 'M12 13v1' }],\n [\n 'path',\n { d: 'M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V6' },\n ],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M7.649 2H17a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8a4 4 0 0 0-.55 1.007' }],\n];\n\nexport default FlashlightOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flashlight\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2MSIgLz4KICA8cGF0aCBkPSJNMTcgMmExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOEE0IDQgMCAwIDAgMTYgMTJ2OGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LThhNCA0IDAgMCAwLS44LTIuNGwtLjYtLjhBMyAzIDAgMCAxIDYgN1YzYTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik02IDZoMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flashlight\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flashlight: IconNode = [\n ['path', { d: 'M12 13v1' }],\n [\n 'path',\n {\n d: 'M17 2a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8A4 4 0 0 0 16 12v8a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V3a1 1 0 0 1 1-1z',\n },\n ],\n ['path', { d: 'M6 6h12' }],\n];\n\nexport default Flashlight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flask-conical-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnYyLjM0MyIgLz4KICA8cGF0aCBkPSJNMTQgMnY2LjM0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTEuNzU1LTIuOTZsNS4yMjctOS41NjMiIC8+CiAgPHBhdGggZD0iTTYuNDUzIDE1SDE1IiAvPgogIDxwYXRoIGQ9Ik04LjUgMmg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/flask-conical-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlaskConicalOff: IconNode = [\n ['path', { d: 'M10 2v2.343' }],\n ['path', { d: 'M14 2v6.343' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20 20a2 2 0 0 1-2 2H6a2 2 0 0 1-1.755-2.96l5.227-9.563' }],\n ['path', { d: 'M6.453 15H15' }],\n ['path', { d: 'M8.5 2h7' }],\n];\n\nexport default FlaskConicalOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flask-conical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMnY2YTIgMiAwIDAgMCAuMjQ1Ljk2bDUuNTEgMTAuMDhBMiAyIDAgMCAxIDE4IDIySDZhMiAyIDAgMCAxLTEuNzU1LTIuOTZsNS41MS0xMC4wOEEyIDIgMCAwIDAgMTAgOFYyIiAvPgogIDxwYXRoIGQ9Ik02LjQ1MyAxNWgxMS4wOTQiIC8+CiAgPHBhdGggZD0iTTguNSAyaDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flask-conical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlaskConical: IconNode = [\n [\n 'path',\n {\n d: 'M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2',\n },\n ],\n ['path', { d: 'M6.453 15h11.094' }],\n ['path', { d: 'M8.5 2h7' }],\n];\n\nexport default FlaskConical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flask-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnY2LjI5MmE3IDcgMCAxIDAgNCAwVjIiIC8+CiAgPHBhdGggZD0iTTUgMTVoMTQiIC8+CiAgPHBhdGggZD0iTTguNSAyaDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flask-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlaskRound: IconNode = [\n ['path', { d: 'M10 2v6.292a7 7 0 1 0 4 0V2' }],\n ['path', { d: 'M5 15h14' }],\n ['path', { d: 'M8.5 2h7' }],\n];\n\nexport default FlaskRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flip-horizontal-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA3IDUgNS01IDVWNyIgLz4KICA8cGF0aCBkPSJtMjEgNy01IDUgNSA1VjciIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0iTTEyIDE0djIiIC8+CiAgPHBhdGggZD0iTTEyIDh2MiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/flip-horizontal-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlipHorizontal2: IconNode = [\n ['path', { d: 'm3 7 5 5-5 5V7' }],\n ['path', { d: 'm21 7-5 5 5 5V7' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'M12 14v2' }],\n ['path', { d: 'M12 8v2' }],\n ['path', { d: 'M12 2v2' }],\n];\n\nexport default FlipHorizontal2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flip-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDMiIC8+CiAgPHBhdGggZD0iTTE2IDNoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTMiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0iTTEyIDE0djIiIC8+CiAgPHBhdGggZD0iTTEyIDh2MiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/flip-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlipHorizontal: IconNode = [\n ['path', { d: 'M8 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h3' }],\n ['path', { d: 'M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'M12 14v2' }],\n ['path', { d: 'M12 8v2' }],\n ['path', { d: 'M12 2v2' }],\n];\n\nexport default FlipHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flip-vertical-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMy01IDUtNS01aDEwIiAvPgogIDxwYXRoIGQ9Im0xNyAyMS01LTUtNSA1aDEwIiAvPgogIDxwYXRoIGQ9Ik00IDEySDIiIC8+CiAgPHBhdGggZD0iTTEwIDEySDgiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC0yIiAvPgogIDxwYXRoIGQ9Ik0yMiAxMmgtMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/flip-vertical-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlipVertical2: IconNode = [\n ['path', { d: 'm17 3-5 5-5-5h10' }],\n ['path', { d: 'm17 21-5-5-5 5h10' }],\n ['path', { d: 'M4 12H2' }],\n ['path', { d: 'M10 12H8' }],\n ['path', { d: 'M16 12h-2' }],\n ['path', { d: 'M22 12h-2' }],\n];\n\nexport default FlipVertical2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flip-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjMiIC8+CiAgPHBhdGggZD0iTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMiIC8+CiAgPHBhdGggZD0iTTQgMTJIMiIgLz4KICA8cGF0aCBkPSJNMTAgMTJIOCIgLz4KICA8cGF0aCBkPSJNMTYgMTJoLTIiIC8+CiAgPHBhdGggZD0iTTIyIDEyaC0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/flip-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlipVertical: IconNode = [\n ['path', { d: 'M21 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v3' }],\n ['path', { d: 'M21 16v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3' }],\n ['path', { d: 'M4 12H2' }],\n ['path', { d: 'M10 12H8' }],\n ['path', { d: 'M16 12h-2' }],\n ['path', { d: 'M22 12h-2' }],\n];\n\nexport default FlipVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flower-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNWEzIDMgMCAxIDEgMyAzbS0zLTNhMyAzIDAgMSAwLTMgM20zLTN2MU05IDhhMyAzIDAgMSAwIDMgM005IDhoMW01IDBhMyAzIDAgMSAxLTMgM20zLTNoLTFtLTIgM3YtMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjgiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDEwdjEyIiAvPgogIDxwYXRoIGQ9Ik0xMiAyMmM0LjIgMCA3LTEuNjY3IDctNS00LjIgMC03IDEuNjY3LTcgNVoiIC8+CiAgPHBhdGggZD0iTTEyIDIyYy00LjIgMC03LTEuNjY3LTctNSA0LjIgMCA3IDEuNjY3IDcgNVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flower-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flower2: IconNode = [\n [\n 'path',\n {\n d: 'M12 5a3 3 0 1 1 3 3m-3-3a3 3 0 1 0-3 3m3-3v1M9 8a3 3 0 1 0 3 3M9 8h1m5 0a3 3 0 1 1-3 3m3-3h-1m-2 3v-1',\n },\n ],\n ['circle', { cx: '12', cy: '8', r: '2' }],\n ['path', { d: 'M12 10v12' }],\n ['path', { d: 'M12 22c4.2 0 7-1.667 7-5-4.2 0-7 1.667-7 5Z' }],\n ['path', { d: 'M12 22c-4.2 0-7-1.667-7-5 4.2 0 7 1.667 7 5Z' }],\n];\n\nexport default Flower2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flower\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNi41QTQuNSA0LjUgMCAxIDEgNy41IDEyIDQuNSA0LjUgMCAxIDEgMTIgNy41YTQuNSA0LjUgMCAxIDEgNC41IDQuNSA0LjUgNC41IDAgMSAxLTQuNSA0LjUiIC8+CiAgPHBhdGggZD0iTTEyIDcuNVY5IiAvPgogIDxwYXRoIGQ9Ik03LjUgMTJIOSIgLz4KICA8cGF0aCBkPSJNMTYuNSAxMkgxNSIgLz4KICA8cGF0aCBkPSJNMTIgMTYuNVYxNSIgLz4KICA8cGF0aCBkPSJtOCA4IDEuODggMS44OCIgLz4KICA8cGF0aCBkPSJNMTQuMTIgOS44OCAxNiA4IiAvPgogIDxwYXRoIGQ9Im04IDE2IDEuODgtMS44OCIgLz4KICA8cGF0aCBkPSJNMTQuMTIgMTQuMTIgMTYgMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flower\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flower: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '3' }],\n [\n 'path',\n {\n d: 'M12 16.5A4.5 4.5 0 1 1 7.5 12 4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 1 1 4.5 4.5 4.5 4.5 0 1 1-4.5 4.5',\n },\n ],\n ['path', { d: 'M12 7.5V9' }],\n ['path', { d: 'M7.5 12H9' }],\n ['path', { d: 'M16.5 12H15' }],\n ['path', { d: 'M12 16.5V15' }],\n ['path', { d: 'm8 8 1.88 1.88' }],\n ['path', { d: 'M14.12 9.88 16 8' }],\n ['path', { d: 'm8 16 1.88-1.88' }],\n ['path', { d: 'M14.12 14.12 16 16' }],\n];\n\nexport default Flower;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name focus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIiIC8+CiAgPHBhdGggZD0iTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIiIC8+CiAgPHBhdGggZD0iTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/focus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Focus: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n];\n\nexport default Focus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fold-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMmg2IiAvPgogIDxwYXRoIGQ9Ik0yMiAxMmgtNiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djIiIC8+CiAgPHBhdGggZD0iTTEyIDE0djIiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0ibTE5IDktMyAzIDMgMyIgLz4KICA8cGF0aCBkPSJtNSAxNSAzLTMtMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/fold-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FoldHorizontal: IconNode = [\n ['path', { d: 'M2 12h6' }],\n ['path', { d: 'M22 12h-6' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M12 8v2' }],\n ['path', { d: 'M12 14v2' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'm19 9-3 3 3 3' }],\n ['path', { d: 'm5 15 3-3-3-3' }],\n];\n\nexport default FoldHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fold-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTYiIC8+CiAgPHBhdGggZD0iTTEyIDhWMiIgLz4KICA8cGF0aCBkPSJNNCAxMkgyIiAvPgogIDxwYXRoIGQ9Ik0xMCAxMkg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMmgtMiIgLz4KICA8cGF0aCBkPSJNMjIgMTJoLTIiIC8+CiAgPHBhdGggZD0ibTE1IDE5LTMtMy0zIDMiIC8+CiAgPHBhdGggZD0ibTE1IDUtMyAzLTMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/fold-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FoldVertical: IconNode = [\n ['path', { d: 'M12 22v-6' }],\n ['path', { d: 'M12 8V2' }],\n ['path', { d: 'M4 12H2' }],\n ['path', { d: 'M10 12H8' }],\n ['path', { d: 'M16 12h-2' }],\n ['path', { d: 'M22 12h-2' }],\n ['path', { d: 'm15 19-3-3-3 3' }],\n ['path', { d: 'm15 5-3 3-3-3' }],\n];\n\nexport default FoldVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgogIDxwYXRoIGQ9Im05IDEzIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderCheck: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'm9 13 2 2 4-4' }],\n];\n\nexport default FolderCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-archive\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjE5IiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0yMC45IDE5LjhBMiAyIDAgMCAwIDIyIDE4VjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMmg1LjEiIC8+CiAgPHBhdGggZD0iTTE1IDExdi0xIiAvPgogIDxwYXRoIGQ9Ik0xNSAxN3YtMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-archive\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderArchive: IconNode = [\n ['circle', { cx: '15', cy: '19', r: '2' }],\n [\n 'path',\n {\n d: 'M20.9 19.8A2 2 0 0 0 22 18V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h5.1',\n },\n ],\n ['path', { d: 'M15 11v-1' }],\n ['path', { d: 'M15 17v-2' }],\n];\n\nexport default FolderArchive;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTR2Mi4ybDEuNiAxIiAvPgogIDxwYXRoIGQ9Ik03IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDIiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderClock: IconNode = [\n ['path', { d: 'M16 14v2.2l1.6 1' }],\n [\n 'path',\n {\n d: 'M7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2',\n },\n ],\n ['circle', { cx: '16', cy: '16', r: '6' }],\n];\n\nexport default FolderClock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-closed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgogIDxwYXRoIGQ9Ik0yIDEwaDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-closed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderClosed: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'M2 10h20' }],\n];\n\nexport default FolderClosed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTAuNSA4IDEzbDIgMi41IiAvPgogIDxwYXRoIGQ9Im0xNCAxMC41IDIgMi41LTIgMi41IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderCode: IconNode = [\n ['path', { d: 'M10 10.5 8 13l2 2.5' }],\n ['path', { d: 'm14 10.5 2 2.5-2 2.5' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z',\n },\n ],\n];\n\nexport default FolderCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOThhMiAyIDAgMCAxIDEuNjkuOWwuNjYgMS4yQTIgMiAwIDAgMCAxMiA2aDhhMiAyIDAgMCAxIDIgMnYzLjMiIC8+CiAgPHBhdGggZD0ibTE0LjMwNSAxOS41My45MjMtLjM4MiIgLz4KICA8cGF0aCBkPSJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0IiAvPgogIDxwYXRoIGQ9Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0IiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderCog: IconNode = [\n [\n 'path',\n {\n d: 'M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3',\n },\n ],\n ['path', { d: 'm14.305 19.53.923-.382' }],\n ['path', { d: 'm15.228 16.852-.923-.383' }],\n ['path', { d: 'm16.852 15.228-.383-.923' }],\n ['path', { d: 'm16.852 20.772-.383.924' }],\n ['path', { d: 'm19.148 15.228.383-.923' }],\n ['path', { d: 'm19.53 21.696-.382-.924' }],\n ['path', { d: 'm20.772 16.852.924-.383' }],\n ['path', { d: 'm20.772 19.148.924.383' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default FolderCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderDot: IconNode = [\n [\n 'path',\n {\n d: 'M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z',\n },\n ],\n ['circle', { cx: '12', cy: '13', r: '1' }],\n];\n\nexport default FolderDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMHY2IiAvPgogIDxwYXRoIGQ9Im0xNSAxMy0zIDMtMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderDown: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'M12 10v6' }],\n ['path', { d: 'm15 13-3 3-3-3' }],\n];\n\nexport default FolderDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-git-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTlhNSA1IDAgMCAxLTUtNXY4IiAvPgogIDxwYXRoIGQ9Ik05IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2NSIgLz4KICA8Y2lyY2xlIGN4PSIxMyIgY3k9IjEyIiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMTkiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-git-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderGit2: IconNode = [\n ['path', { d: 'M18 19a5 5 0 0 1-5-5v8' }],\n [\n 'path',\n {\n d: 'M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5',\n },\n ],\n ['circle', { cx: '13', cy: '12', r: '2' }],\n ['circle', { cx: '20', cy: '19', r: '2' }],\n];\n\nexport default FolderGit2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-git\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiIC8+CiAgPHBhdGggZD0iTTE0IDEzaDMiIC8+CiAgPHBhdGggZD0iTTcgMTNoMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-git\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderGit: IconNode = [\n ['circle', { cx: '12', cy: '13', r: '2' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'M14 13h3' }],\n ['path', { d: 'M7 13h3' }],\n];\n\nexport default FolderGit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNjM4IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2My40MTciIC8+CiAgPHBhdGggZD0iTTE0LjYyIDE4LjhBMi4yNSAyLjI1IDAgMSAxIDE4IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderHeart: IconNode = [\n [\n 'path',\n {\n d: 'M10.638 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v3.417',\n },\n ],\n [\n 'path',\n {\n d: 'M14.62 18.8A2.25 2.25 0 1 1 18 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z',\n },\n ],\n];\n\nexport default FolderHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-input\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMSIgLz4KICA8cGF0aCBkPSJNMiAxM2gxMCIgLz4KICA8cGF0aCBkPSJtOSAxNiAzLTMtMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-input\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderInput: IconNode = [\n [\n 'path',\n {\n d: 'M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1',\n },\n ],\n ['path', { d: 'M2 13h10' }],\n ['path', { d: 'm9 16 3-3-3-3' }],\n];\n\nexport default FolderInput;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-kanban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiIgLz4KICA8cGF0aCBkPSJNOCAxMHY0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMHYyIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMHY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-kanban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderKanban: IconNode = [\n [\n 'path',\n {\n d: 'M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z',\n },\n ],\n ['path', { d: 'M8 10v4' }],\n ['path', { d: 'M12 10v2' }],\n ['path', { d: 'M16 10v6' }],\n];\n\nexport default FolderKanban;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxLjM2IiAvPgogIDxwYXRoIGQ9Ik0xOSAxMnY2IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNGgyIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMjAiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderKey: IconNode = [\n [\n 'path',\n {\n d: 'M13 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v1.36',\n },\n ],\n ['path', { d: 'M19 12v6' }],\n ['path', { d: 'M19 14h2' }],\n ['circle', { cx: '19', cy: '20', r: '2' }],\n];\n\nexport default FolderKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI1IiB4PSIxNCIgeT0iMTciIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0xMCAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjIuNSIgLz4KICA8cGF0aCBkPSJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderLock: IconNode = [\n ['rect', { width: '8', height: '5', x: '14', y: '17', rx: '1' }],\n [\n 'path',\n {\n d: 'M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2.5',\n },\n ],\n ['path', { d: 'M20 17v-2a2 2 0 1 0-4 0v2' }],\n];\n\nexport default FolderLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxM2g2IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderMinus: IconNode = [\n ['path', { d: 'M9 13h6' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n];\n\nexport default FolderMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-open-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNCAxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiIgLz4KICA8Y2lyY2xlIGN4PSIxNCIgY3k9IjE1IiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-open-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderOpenDot: IconNode = [\n [\n 'path',\n {\n d: 'm6 14 1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.55 6a2 2 0 0 1-1.94 1.5H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H18a2 2 0 0 1 2 2v2',\n },\n ],\n ['circle', { cx: '14', cy: '15', r: '1' }],\n];\n\nexport default FolderOpenDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderOpen: IconNode = [\n [\n 'path',\n {\n d: 'm6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2',\n },\n ],\n];\n\nexport default FolderOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-output\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA3LjVWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0xLjUiIC8+CiAgPHBhdGggZD0iTTIgMTNoMTAiIC8+CiAgPHBhdGggZD0ibTUgMTAtMyAzIDMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-output\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderOutput: IconNode = [\n [\n 'path',\n {\n d: 'M2 7.5V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-1.5',\n },\n ],\n ['path', { d: 'M2 13h10' }],\n ['path', { d: 'm5 10-3 3 3 3' }],\n];\n\nexport default FolderOutput;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMS41VjVhMiAyIDAgMCAxIDItMmgzLjljLjcgMCAxLjMuMyAxLjcuOWwuOCAxLjJjLjQuNiAxIC45IDEuNy45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtOS41IiAvPgogIDxwYXRoIGQ9Ik0xMS4zNzggMTMuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderPen: IconNode = [\n [\n 'path',\n {\n d: 'M2 11.5V5a2 2 0 0 1 2-2h3.9c.7 0 1.3.3 1.7.9l.8 1.2c.4.6 1 .9 1.7.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-9.5',\n },\n ],\n [\n 'path',\n {\n d: 'M11.378 13.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n];\n\nexport default FolderPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTB2NiIgLz4KICA8cGF0aCBkPSJNOSAxM2g2IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderPlus: IconNode = [\n ['path', { d: 'M12 10v6' }],\n ['path', { d: 'M9 13h6' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n];\n\nexport default FolderPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-root\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNXY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-root\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderRoot: IconNode = [\n [\n 'path',\n {\n d: 'M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z',\n },\n ],\n ['circle', { cx: '12', cy: '13', r: '2' }],\n ['path', { d: 'M12 15v5' }],\n];\n\nexport default FolderRoot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-search-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMS41IiBjeT0iMTIuNSIgcj0iMi41IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiIC8+CiAgPHBhdGggZD0iTTEzLjMgMTQuMyAxNSAxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-search-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderSearch2: IconNode = [\n ['circle', { cx: '11.5', cy: '12.5', r: '2.5' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'M13.3 14.3 15 16' }],\n];\n\nexport default FolderSearch2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjQuMSIgLz4KICA8cGF0aCBkPSJtMjEgMjEtMS45LTEuOSIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE3IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderSearch: IconNode = [\n [\n 'path',\n {\n d: 'M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1',\n },\n ],\n ['path', { d: 'm21 21-1.9-1.9' }],\n ['circle', { cx: '17', cy: '17', r: '3' }],\n];\n\nexport default FolderSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-symlink\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5LjM1VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDciIC8+CiAgPHBhdGggZD0ibTggMTYgMy0zLTMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-symlink\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderSymlink: IconNode = [\n [\n 'path',\n {\n d: 'M2 9.35V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7',\n },\n ],\n ['path', { d: 'm8 16 3-3-3-3' }],\n];\n\nexport default FolderSymlink;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-sync\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydi41IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMHY0aDQiIC8+CiAgPHBhdGggZD0ibTEyIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSIgLz4KICA8cGF0aCBkPSJNMjIgMjJ2LTRoLTQiIC8+CiAgPHBhdGggZD0ibTIyIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-sync\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderSync: IconNode = [\n [\n 'path',\n {\n d: 'M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v.5',\n },\n ],\n ['path', { d: 'M12 10v4h4' }],\n ['path', { d: 'm12 14 1.535-1.605a5 5 0 0 1 8 1.5' }],\n ['path', { d: 'M22 22v-4h-4' }],\n ['path', { d: 'm22 18-1.535 1.605a5 5 0 0 1-8-1.5' }],\n];\n\nexport default FolderSync;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-tree\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFoLTIuNWExIDEgMCAwIDEtLjgtLjRsLS45LTEuMkExIDEgMCAwIDAgMTUgM2gtMmExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMVoiIC8+CiAgPHBhdGggZD0iTTIwIDIxYTEgMSAwIDAgMCAxLTF2LTNhMSAxIDAgMCAwLTEtMWgtMi45YTEgMSAwIDAgMS0uODgtLjU1bC0uNDItLjg1YTEgMSAwIDAgMC0uOTItLjZIMTNhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFaIiAvPgogIDxwYXRoIGQ9Ik0zIDVhMiAyIDAgMCAwIDIgMmgzIiAvPgogIDxwYXRoIGQ9Ik0zIDN2MTNhMiAyIDAgMCAwIDIgMmgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-tree\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderTree: IconNode = [\n [\n 'path',\n {\n d: 'M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z',\n },\n ],\n [\n 'path',\n {\n d: 'M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z',\n },\n ],\n ['path', { d: 'M3 5a2 2 0 0 0 2 2h3' }],\n ['path', { d: 'M3 3v13a2 2 0 0 0 2 2h3' }],\n];\n\nexport default FolderTree;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMHY2IiAvPgogIDxwYXRoIGQ9Im05IDEzIDMtMyAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderUp: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'M12 10v6' }],\n ['path', { d: 'm9 13 3-3 3 3' }],\n];\n\nexport default FolderUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgogIDxwYXRoIGQ9Im05LjUgMTAuNSA1IDUiIC8+CiAgPHBhdGggZD0ibTE0LjUgMTAuNS01IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderX: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'm9.5 10.5 5 5' }],\n ['path', { d: 'm14.5 10.5-5 5' }],\n];\n\nexport default FolderX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Folder: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n];\n\nexport default Folder;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folders\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMkg5YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDIuNWExLjUgMS41IDAgMCAxIDEuMi42bC42LjhhMS41IDEuNSAwIDAgMCAxLjIuNnoiIC8+CiAgPHBhdGggZD0iTTMgOC4yNjhhMiAyIDAgMCAwLTEgMS43MzhWMTlhMiAyIDAgMCAwIDIgMmgxMWEyIDIgMCAwIDAgMS43MzItMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folders\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Folders: IconNode = [\n [\n 'path',\n {\n d: 'M20 5a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h2.5a1.5 1.5 0 0 1 1.2.6l.6.8a1.5 1.5 0 0 0 1.2.6z',\n },\n ],\n ['path', { d: 'M3 8.268a2 2 0 0 0-1 1.738V19a2 2 0 0 0 2 2h11a2 2 0 0 0 1.732-1' }],\n];\n\nexport default Folders;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name forklift\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJINWEyIDIgMCAwIDAtMiAydjUiIC8+CiAgPGNpcmNsZSBjeD0iMTMiIGN5PSIxOSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iMTkiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTggMTloM201LTE3djE3aDZNNiAxMlY3YzAtMS4xLjktMiAyLTJoM2w1IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/forklift\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Forklift: IconNode = [\n ['path', { d: 'M12 12H5a2 2 0 0 0-2 2v5' }],\n ['circle', { cx: '13', cy: '19', r: '2' }],\n ['circle', { cx: '5', cy: '19', r: '2' }],\n ['path', { d: 'M8 19h3m5-17v17h6M6 12V7c0-1.1.9-2 2-2h3l5 5' }],\n];\n\nexport default Forklift;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name footprints\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNnYtMi4zOEM0IDExLjUgMi45NyAxMC41IDMgOGMuMDMtMi43MiAxLjQ5LTYgNC41LTZDOS4zNyAyIDEwIDMuOCAxMCA1LjVjMCAzLjExLTIgNS42Ni0yIDguNjhWMTZhMiAyIDAgMSAxLTQgMFoiIC8+CiAgPHBhdGggZD0iTTIwIDIwdi0yLjM4YzAtMi4xMiAxLjAzLTMuMTIgMS01LjYyLS4wMy0yLjcyLTEuNDktNi00LjUtNkMxNC42MyA2IDE0IDcuOCAxNCA5LjVjMCAzLjExIDIgNS42NiAyIDguNjhWMjBhMiAyIDAgMSAwIDQgMFoiIC8+CiAgPHBhdGggZD0iTTE2IDE3aDQiIC8+CiAgPHBhdGggZD0iTTQgMTNoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/footprints\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Footprints: IconNode = [\n [\n 'path',\n {\n d: 'M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z',\n },\n ],\n [\n 'path',\n {\n d: 'M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z',\n },\n ],\n ['path', { d: 'M16 17h4' }],\n ['path', { d: 'M4 13h4' }],\n];\n\nexport default Footprints;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name form\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNGg2IiAvPgogIDxwYXRoIGQ9Ik00IDJoMTAiIC8+CiAgPHJlY3QgeD0iNCIgeT0iMTgiIHdpZHRoPSIxNiIgaGVpZ2h0PSI0IiByeD0iMSIgLz4KICA8cmVjdCB4PSI0IiB5PSI2IiB3aWR0aD0iMTYiIGhlaWdodD0iNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/form\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Form: IconNode = [\n ['path', { d: 'M4 14h6' }],\n ['path', { d: 'M4 2h10' }],\n ['rect', { x: '4', y: '18', width: '16', height: '4', rx: '1' }],\n ['rect', { x: '4', y: '6', width: '16', height: '4', rx: '1' }],\n];\n\nexport default Form;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name forward\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTcgNS01LTUtNSIgLz4KICA8cGF0aCBkPSJNNCAxOHYtMmE0IDQgMCAwIDEgNC00aDEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/forward\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Forward: IconNode = [\n ['path', { d: 'm15 17 5-5-5-5' }],\n ['path', { d: 'M4 18v-2a4 4 0 0 1 4-4h12' }],\n];\n\nexport default Forward;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name frame\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMjIiIHgyPSIyIiB5MT0iNiIgeTI9IjYiIC8+CiAgPGxpbmUgeDE9IjIyIiB4Mj0iMiIgeTE9IjE4IiB5Mj0iMTgiIC8+CiAgPGxpbmUgeDE9IjYiIHgyPSI2IiB5MT0iMiIgeTI9IjIyIiAvPgogIDxsaW5lIHgxPSIxOCIgeDI9IjE4IiB5MT0iMiIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/frame\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Frame: IconNode = [\n ['line', { x1: '22', x2: '2', y1: '6', y2: '6' }],\n ['line', { x1: '22', x2: '2', y1: '18', y2: '18' }],\n ['line', { x1: '6', x2: '6', y1: '2', y2: '22' }],\n ['line', { x1: '18', x2: '18', y1: '2', y2: '22' }],\n];\n\nexport default Frame;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name framer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxNlY5aDE0VjJINWwxNCAxNGgtN20tNyAwIDcgN3YtN20tNyAwaDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/framer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=framer instead. This icon will be removed in v1.0\n */\nconst Framer: IconNode = [['path', { d: 'M5 16V9h14V2H5l14 14h-7m-7 0 7 7v-7m-7 0h7' }]];\n\nexport default Framer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name frown\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIiAvPgogIDxsaW5lIHgxPSI5IiB4Mj0iOS4wMSIgeTE9IjkiIHkyPSI5IiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjE1LjAxIiB5MT0iOSIgeTI9IjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/frown\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Frown: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M16 16s-1.5-2-4-2-4 2-4 2' }],\n ['line', { x1: '9', x2: '9.01', y1: '9', y2: '9' }],\n ['line', { x1: '15', x2: '15.01', y1: '9', y2: '9' }],\n];\n\nexport default Frown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fuel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTNoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAwIDQgMHYtNi45OThhMiAyIDAgMCAwLS41OS0xLjQyTDE4IDUiIC8+CiAgPHBhdGggZD0iTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYiIC8+CiAgPHBhdGggZD0iTTIgMjFoMTMiIC8+CiAgPHBhdGggZD0iTTMgOWgxMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/fuel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Fuel: IconNode = [\n ['path', { d: 'M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5' }],\n ['path', { d: 'M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16' }],\n ['path', { d: 'M2 21h13' }],\n ['path', { d: 'M3 9h11' }],\n];\n\nexport default Fuel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fullscreen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI4IiB4PSI3IiB5PSI4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/fullscreen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Fullscreen: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['rect', { width: '10', height: '8', x: '7', y: '8', rx: '1' }],\n];\n\nexport default Fullscreen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name funnel-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuMzU0IDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbDEuMjE4LTEuMzQ4IiAvPgogIDxwYXRoIGQ9Ik0xNiA2aDYiIC8+CiAgPHBhdGggZD0iTTE5IDN2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/funnel-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FunnelPlus: IconNode = [\n [\n 'path',\n {\n d: 'M13.354 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l1.218-1.348',\n },\n ],\n ['path', { d: 'M16 6h6' }],\n ['path', { d: 'M19 3v6' }],\n];\n\nexport default FunnelPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name funnel-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNTMxIDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbC40MjctLjQ3MyIgLz4KICA8cGF0aCBkPSJtMTYuNSAzLjUgNSA1IiAvPgogIDxwYXRoIGQ9Im0yMS41IDMuNS01IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/funnel-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FunnelX: IconNode = [\n [\n 'path',\n {\n d: 'M12.531 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l.427-.473',\n },\n ],\n ['path', { d: 'm16.5 3.5 5 5' }],\n ['path', { d: 'm21.5 3.5-5 5' }],\n];\n\nexport default FunnelX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name funnel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjBhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFMMjEuNzQgNC42N0ExIDEgMCAwIDAgMjEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/funnel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Funnel: IconNode = [\n [\n 'path',\n {\n d: 'M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z',\n },\n ],\n];\n\nexport default Funnel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gallery-horizontal-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA3djEwIiAvPgogIDxwYXRoIGQ9Ik02IDV2MTQiIC8+CiAgPHJlY3Qgd2lkdGg9IjEyIiBoZWlnaHQ9IjE4IiB4PSIxMCIgeT0iMyIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gallery-horizontal-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GalleryHorizontalEnd: IconNode = [\n ['path', { d: 'M2 7v10' }],\n ['path', { d: 'M6 5v14' }],\n ['rect', { width: '12', height: '18', x: '10', y: '3', rx: '2' }],\n];\n\nexport default GalleryHorizontalEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gallery-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAzdjE4IiAvPgogIDxyZWN0IHdpZHRoPSIxMiIgaGVpZ2h0PSIxOCIgeD0iNiIgeT0iMyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTIyIDN2MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gallery-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GalleryHorizontal: IconNode = [\n ['path', { d: 'M2 3v18' }],\n ['rect', { width: '12', height: '18', x: '6', y: '3', rx: '2' }],\n ['path', { d: 'M22 3v18' }],\n];\n\nexport default GalleryHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gallery-thumbnails\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTQiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik00IDIxaDEiIC8+CiAgPHBhdGggZD0iTTkgMjFoMSIgLz4KICA8cGF0aCBkPSJNMTQgMjFoMSIgLz4KICA8cGF0aCBkPSJNMTkgMjFoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/gallery-thumbnails\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GalleryThumbnails: IconNode = [\n ['rect', { width: '18', height: '14', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M4 21h1' }],\n ['path', { d: 'M9 21h1' }],\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'M19 21h1' }],\n];\n\nexport default GalleryThumbnails;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gallery-vertical-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAyaDEwIiAvPgogIDxwYXRoIGQ9Ik01IDZoMTQiIC8+CiAgPHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiB4PSIzIiB5PSIxMCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gallery-vertical-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GalleryVerticalEnd: IconNode = [\n ['path', { d: 'M7 2h10' }],\n ['path', { d: 'M5 6h14' }],\n ['rect', { width: '18', height: '12', x: '3', y: '10', rx: '2' }],\n];\n\nexport default GalleryVerticalEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gallery-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAyaDE4IiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgeD0iMyIgeT0iNiIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTMgMjJoMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gallery-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GalleryVertical: IconNode = [\n ['path', { d: 'M3 2h18' }],\n ['rect', { width: '18', height: '12', x: '3', y: '6', rx: '2' }],\n ['path', { d: 'M3 22h18' }],\n];\n\nexport default GalleryVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gamepad-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNiIgeDI9IjEwIiB5MT0iMTEiIHkyPSIxMSIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjgiIHkxPSI5IiB5Mj0iMTMiIC8+CiAgPGxpbmUgeDE9IjE1IiB4Mj0iMTUuMDEiIHkxPSIxMiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIxOCIgeDI9IjE4LjAxIiB5MT0iMTAiIHkyPSIxMCIgLz4KICA8cGF0aCBkPSJNMTcuMzIgNUg2LjY4YTQgNCAwIDAgMC0zLjk3OCAzLjU5Yy0uMDA2LjA1Mi0uMDEuMTAxLS4wMTcuMTUyQzIuNjA0IDkuNDE2IDIgMTQuNDU2IDIgMTZhMyAzIDAgMCAwIDMgM2MxIDAgMS41LS41IDItMWwxLjQxNC0xLjQxNEEyIDIgMCAwIDEgOS44MjggMTZoNC4zNDRhMiAyIDAgMCAxIDEuNDE0LjU4NkwxNyAxOGMuNS41IDEgMSAyIDFhMyAzIDAgMCAwIDMtM2MwLTEuNTQ1LS42MDQtNi41ODQtLjY4NS03LjI1OC0uMDA3LS4wNS0uMDExLS4xLS4wMTctLjE1MUE0IDQgMCAwIDAgMTcuMzIgNXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gamepad-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gamepad2: IconNode = [\n ['line', { x1: '6', x2: '10', y1: '11', y2: '11' }],\n ['line', { x1: '8', x2: '8', y1: '9', y2: '13' }],\n ['line', { x1: '15', x2: '15.01', y1: '12', y2: '12' }],\n ['line', { x1: '18', x2: '18.01', y1: '10', y2: '10' }],\n [\n 'path',\n {\n d: 'M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z',\n },\n ],\n];\n\nexport default Gamepad2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gamepad-directional\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgPHBhdGgKICAgIGQ9Ik0xMS4xNDYgMTUuODU0YTEuMjA3IDEuMjA3IDAgMCAxIDEuNzA4IDBsMS41NiAxLjU2QTIgMiAwIDAgMSAxNSAxOC44MjhWMjFhMSAxIDAgMCAxLTEgMWgtNGExIDEgMCAwIDEtMS0xdi0yLjE3MmEyIDIgMCAwIDEgLjU4Ni0xLjQxNHoiIC8+CiAgPHBhdGgKICAgIGQ9Ik0xOC44MjggMTVhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTEuNTYtMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwLTEuNzA4bDEuNTYtMS41NkEyIDIgMCAwIDEgMTguODI4IDlIMjFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDF6IiAvPgogIDxwYXRoCiAgICBkPSJNNi41ODYgMTQuNDE0QTIgMiAwIDAgMSA1LjE3MiAxNUgzYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWgyLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDEuNTYgMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4eiIgLz4KICA8cGF0aAogICAgZD0iTTkgM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyLjE3MmEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA4IDBsLTEuNTYtMS41NkEyIDIgMCAwIDEgOSA1LjE3MnoiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/gamepad-directional\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GamepadDirectional: IconNode = [\n [\n 'path',\n {\n d: 'M11.146 15.854a1.207 1.207 0 0 1 1.708 0l1.56 1.56A2 2 0 0 1 15 18.828V21a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-2.172a2 2 0 0 1 .586-1.414z',\n },\n ],\n [\n 'path',\n {\n d: 'M18.828 15a2 2 0 0 1-1.414-.586l-1.56-1.56a1.207 1.207 0 0 1 0-1.708l1.56-1.56A2 2 0 0 1 18.828 9H21a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1z',\n },\n ],\n [\n 'path',\n {\n d: 'M6.586 14.414A2 2 0 0 1 5.172 15H3a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h2.172a2 2 0 0 1 1.414.586l1.56 1.56a1.207 1.207 0 0 1 0 1.708z',\n },\n ],\n [\n 'path',\n {\n d: 'M9 3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2.172a2 2 0 0 1-.586 1.414l-1.56 1.56a1.207 1.207 0 0 1-1.708 0l-1.56-1.56A2 2 0 0 1 9 5.172z',\n },\n ],\n];\n\nexport default GamepadDirectional;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gamepad\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNiIgeDI9IjEwIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjgiIHkxPSIxMCIgeTI9IjE0IiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjE1LjAxIiB5MT0iMTMiIHkyPSIxMyIgLz4KICA8bGluZSB4MT0iMTgiIHgyPSIxOC4wMSIgeTE9IjExIiB5Mj0iMTEiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjEyIiB4PSIyIiB5PSI2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/gamepad\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gamepad: IconNode = [\n ['line', { x1: '6', x2: '10', y1: '12', y2: '12' }],\n ['line', { x1: '8', x2: '8', y1: '10', y2: '14' }],\n ['line', { x1: '15', x2: '15.01', y1: '13', y2: '13' }],\n ['line', { x1: '18', x2: '18.01', y1: '11', y2: '11' }],\n ['rect', { width: '20', height: '12', x: '2', y: '6', rx: '2' }],\n];\n\nexport default Gamepad;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gauge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTQgNC00IiAvPgogIDxwYXRoIGQ9Ik0zLjM0IDE5YTEwIDEwIDAgMSAxIDE3LjMyIDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gauge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gauge: IconNode = [\n ['path', { d: 'm12 14 4-4' }],\n ['path', { d: 'M3.34 19a10 10 0 1 1 17.32 0' }],\n];\n\nexport default Gauge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gavel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM2w4LjM4NC04LjM4MSIgLz4KICA8cGF0aCBkPSJtMTYgMTYgNi02IiAvPgogIDxwYXRoIGQ9Im0yMS41IDEwLjUtOC04IiAvPgogIDxwYXRoIGQ9Im04IDggNi02IiAvPgogIDxwYXRoIGQ9Im04LjUgNy41IDggOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/gavel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gavel: IconNode = [\n ['path', { d: 'm14 13-8.381 8.38a1 1 0 0 1-3.001-3l8.384-8.381' }],\n ['path', { d: 'm16 16 6-6' }],\n ['path', { d: 'm21.5 10.5-8-8' }],\n ['path', { d: 'm8 8 6-6' }],\n ['path', { d: 'm8.5 7.5 8 8' }],\n];\n\nexport default Gavel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gem\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSAzIDggOWw0IDEzIDQtMTMtMi41LTYiIC8+CiAgPHBhdGggZD0iTTE3IDNhMiAyIDAgMCAxIDEuNi44bDMgNGEyIDIgMCAwIDEgLjAxMyAyLjM4MmwtNy45OSAxMC45ODZhMiAyIDAgMCAxLTMuMjQ3IDBsLTcuOTktMTAuOTg2QTIgMiAwIDAgMSAyLjQgNy44bDIuOTk4LTMuOTk3QTIgMiAwIDAgMSA3IDN6IiAvPgogIDxwYXRoIGQ9Ik0yIDloMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gem\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gem: IconNode = [\n ['path', { d: 'M10.5 3 8 9l4 13 4-13-2.5-6' }],\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 1.6.8l3 4a2 2 0 0 1 .013 2.382l-7.99 10.986a2 2 0 0 1-3.247 0l-7.99-10.986A2 2 0 0 1 2.4 7.8l2.998-3.997A2 2 0 0 1 7 3z',\n },\n ],\n ['path', { d: 'M2 9h20' }],\n];\n\nexport default Gem;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name georgian-lari\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNSAyMWE3LjUgNy41IDAgMSAxIDcuMzUtOSIgLz4KICA8cGF0aCBkPSJNMTMgMTJWMyIgLz4KICA8cGF0aCBkPSJNNCAyMWgxNiIgLz4KICA8cGF0aCBkPSJNOSAxMlYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/georgian-lari\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GeorgianLari: IconNode = [\n ['path', { d: 'M11.5 21a7.5 7.5 0 1 1 7.35-9' }],\n ['path', { d: 'M13 12V3' }],\n ['path', { d: 'M4 21h16' }],\n ['path', { d: 'M9 12V3' }],\n];\n\nexport default GeorgianLari;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ghost\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxMGguMDEiIC8+CiAgPHBhdGggZD0iTTE1IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMmE4IDggMCAwIDAtOCA4djEybDMtMyAyLjUgMi41TDEyIDE5bDIuNSAyLjVMMTcgMTlsMyAzVjEwYTggOCAwIDAgMC04LTh6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ghost\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ghost: IconNode = [\n ['path', { d: 'M9 10h.01' }],\n ['path', { d: 'M15 10h.01' }],\n ['path', { d: 'M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z' }],\n];\n\nexport default Ghost;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-branch-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNmE5IDkgMCAwIDAtOSA5VjMiIC8+CiAgPHBhdGggZD0iTTIxIDE4aC02IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTgiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/git-branch-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitBranchMinus: IconNode = [\n ['path', { d: 'M15 6a9 9 0 0 0-9 9V3' }],\n ['path', { d: 'M21 18h-6' }],\n ['circle', { cx: '18', cy: '6', r: '3' }],\n ['circle', { cx: '6', cy: '18', r: '3' }],\n];\n\nexport default GitBranchMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-branch-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAzdjEyIiAvPgogIDxwYXRoIGQ9Ik0xOCA5YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnoiIC8+CiAgPHBhdGggZD0iTTYgMjFhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eiIgLz4KICA8cGF0aCBkPSJNMTUgNmE5IDkgMCAwIDAtOSA5IiAvPgogIDxwYXRoIGQ9Ik0xOCAxNXY2IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOGgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-branch-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitBranchPlus: IconNode = [\n ['path', { d: 'M6 3v12' }],\n ['path', { d: 'M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' }],\n ['path', { d: 'M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' }],\n ['path', { d: 'M15 6a9 9 0 0 0-9 9' }],\n ['path', { d: 'M18 15v6' }],\n ['path', { d: 'M21 18h-6' }],\n];\n\nexport default GitBranchPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gift\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIzIiB5PSI4IiB3aWR0aD0iMTgiIGhlaWdodD0iNCIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTEyIDh2MTMiIC8+CiAgPHBhdGggZD0iTTE5IDEydjdhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJ2LTciIC8+CiAgPHBhdGggZD0iTTcuNSA4YTIuNSAyLjUgMCAwIDEgMC01QTQuOCA4IDAgMCAxIDEyIDhhNC44IDggMCAwIDEgNC41LTUgMi41IDIuNSAwIDAgMSAwIDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gift\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gift: IconNode = [\n ['rect', { x: '3', y: '8', width: '18', height: '4', rx: '1' }],\n ['path', { d: 'M12 8v13' }],\n ['path', { d: 'M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7' }],\n ['path', { d: 'M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5' }],\n];\n\nexport default Gift;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-branch\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNmE5IDkgMCAwIDAtOSA5VjMiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSI2IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-branch\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitBranch: IconNode = [\n ['path', { d: 'M15 6a9 9 0 0 0-9 9V3' }],\n ['circle', { cx: '18', cy: '6', r: '3' }],\n ['circle', { cx: '6', cy: '18', r: '3' }],\n];\n\nexport default GitBranch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-commit-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgogIDxsaW5lIHgxPSIzIiB4Mj0iOSIgeTE9IjEyIiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjE1IiB4Mj0iMjEiIHkxPSIxMiIgeTI9IjEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-commit-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitCommitHorizontal: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['line', { x1: '3', x2: '9', y1: '12', y2: '12' }],\n ['line', { x1: '15', x2: '21', y1: '12', y2: '12' }],\n];\n\nexport default GitCommitHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-commit-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3Y2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTEyIDE1djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/git-commit-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitCommitVertical: IconNode = [\n ['path', { d: 'M12 3v6' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['path', { d: 'M12 15v6' }],\n];\n\nexport default GitCommitVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-compare-arrows\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NyIgLz4KICA8cGF0aCBkPSJtMTUgOS0zLTMgMy0zIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTgiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTEyIDE4SDdhMiAyIDAgMCAxLTItMlY5IiAvPgogIDxwYXRoIGQ9Im05IDE1IDMgMy0zIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/git-compare-arrows\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitCompareArrows: IconNode = [\n ['circle', { cx: '5', cy: '6', r: '3' }],\n ['path', { d: 'M12 6h5a2 2 0 0 1 2 2v7' }],\n ['path', { d: 'm15 9-3-3 3-3' }],\n ['circle', { cx: '19', cy: '18', r: '3' }],\n ['path', { d: 'M12 18H7a2 2 0 0 1-2-2V9' }],\n ['path', { d: 'm9 15 3 3-3 3' }],\n];\n\nexport default GitCompareArrows;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-compare\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3IiAvPgogIDxwYXRoIGQ9Ik0xMSAxOEg4YTIgMiAwIDAgMS0yLTJWOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-compare\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitCompare: IconNode = [\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M13 6h3a2 2 0 0 1 2 2v7' }],\n ['path', { d: 'M11 18H8a2 2 0 0 1-2-2V9' }],\n];\n\nexport default GitCompare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-fork\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTggOXYyYzAgLjYtLjQgMS0xIDFIN2MtLjYgMC0xLS40LTEtMVY5IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-fork\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitFork: IconNode = [\n ['circle', { cx: '12', cy: '18', r: '3' }],\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['circle', { cx: '18', cy: '6', r: '3' }],\n ['path', { d: 'M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9' }],\n ['path', { d: 'M12 12v3' }],\n];\n\nexport default GitFork;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-graph\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNNSA5djYiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE4IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjE4IiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTYgMTUuN0E5IDkgMCAwIDAgMTkgOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-graph\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitGraph: IconNode = [\n ['circle', { cx: '5', cy: '6', r: '3' }],\n ['path', { d: 'M5 9v6' }],\n ['circle', { cx: '5', cy: '18', r: '3' }],\n ['path', { d: 'M12 3v18' }],\n ['circle', { cx: '19', cy: '6', r: '3' }],\n ['path', { d: 'M16 15.7A9 9 0 0 0 19 9' }],\n];\n\nexport default GitGraph;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-merge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik02IDIxVjlhOSA5IDAgMCAwIDkgOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-merge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitMerge: IconNode = [\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M6 21V9a9 9 0 0 0 9 9' }],\n];\n\nexport default GitMerge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request-arrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNNSA5djEyIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTgiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTE1IDktMy0zIDMtMyIgLz4KICA8cGF0aCBkPSJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-pull-request-arrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequestArrow: IconNode = [\n ['circle', { cx: '5', cy: '6', r: '3' }],\n ['path', { d: 'M5 9v12' }],\n ['circle', { cx: '19', cy: '18', r: '3' }],\n ['path', { d: 'm15 9-3-3 3-3' }],\n ['path', { d: 'M12 6h5a2 2 0 0 1 2 2v7' }],\n];\n\nexport default GitPullRequestArrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request-closed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNNiA5djEyIiAvPgogIDxwYXRoIGQ9Im0yMSAzLTYgNiIgLz4KICA8cGF0aCBkPSJtMjEgOS02LTYiIC8+CiAgPHBhdGggZD0iTTE4IDExLjVWMTUiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-pull-request-closed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequestClosed: IconNode = [\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M6 9v12' }],\n ['path', { d: 'm21 3-6 6' }],\n ['path', { d: 'm21 9-6-6' }],\n ['path', { d: 'M18 11.5V15' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default GitPullRequestClosed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request-create-arrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNNSA5djEyIiAvPgogIDxwYXRoIGQ9Im0xNSA5LTMtMyAzLTMiIC8+CiAgPHBhdGggZD0iTTEyIDZoNWEyIDIgMCAwIDEgMiAydjMiIC8+CiAgPHBhdGggZD0iTTE5IDE1djYiIC8+CiAgPHBhdGggZD0iTTIyIDE4aC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-pull-request-create-arrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequestCreateArrow: IconNode = [\n ['circle', { cx: '5', cy: '6', r: '3' }],\n ['path', { d: 'M5 9v12' }],\n ['path', { d: 'm15 9-3-3 3-3' }],\n ['path', { d: 'M12 6h5a2 2 0 0 1 2 2v3' }],\n ['path', { d: 'M19 15v6' }],\n ['path', { d: 'M22 18h-6' }],\n];\n\nexport default GitPullRequestCreateArrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request-create\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNNiA5djEyIiAvPgogIDxwYXRoIGQ9Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnYzIiAvPgogIDxwYXRoIGQ9Ik0xOCAxNXY2IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOGgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-pull-request-create\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequestCreate: IconNode = [\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M6 9v12' }],\n ['path', { d: 'M13 6h3a2 2 0 0 1 2 2v3' }],\n ['path', { d: 'M18 15v6' }],\n ['path', { d: 'M21 18h-6' }],\n];\n\nexport default GitPullRequestCreate;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request-draft\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xOCA2VjUiIC8+CiAgPHBhdGggZD0iTTE4IDExdi0xIiAvPgogIDxsaW5lIHgxPSI2IiB4Mj0iNiIgeTE9IjkiIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-pull-request-draft\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequestDraft: IconNode = [\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M18 6V5' }],\n ['path', { d: 'M18 11v-1' }],\n ['line', { x1: '6', x2: '6', y1: '9', y2: '21' }],\n];\n\nexport default GitPullRequestDraft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3IiAvPgogIDxsaW5lIHgxPSI2IiB4Mj0iNiIgeTE9IjkiIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-pull-request\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequest: IconNode = [\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M13 6h3a2 2 0 0 1 2 2v7' }],\n ['line', { x1: '6', x2: '6', y1: '9', y2: '21' }],\n];\n\nexport default GitPullRequest;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name github\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjJ2LTRhNC44IDQuOCAwIDAgMC0xLTMuNWMzIDAgNi0yIDYtNS41LjA4LTEuMjUtLjI3LTIuNDgtMS0zLjUuMjgtMS4xNS4yOC0yLjM1IDAtMy41IDAgMC0xIDAtMyAxLjUtMi42NC0uNS01LjM2LS41LTggMEM2IDIgNSAyIDUgMmMtLjMgMS4xNS0uMyAyLjM1IDAgMy41QTUuNDAzIDUuNDAzIDAgMCAwIDQgOWMwIDMuNSAzIDUuNSA2IDUuNS0uMzkuNDktLjY4IDEuMDUtLjg1IDEuNjUtLjE3LjYtLjIyIDEuMjMtLjE1IDEuODV2NCIgLz4KICA8cGF0aCBkPSJNOSAxOGMtNC41MSAyLTUtMi03LTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/github\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=github instead. This icon will be removed in v1.0\n */\nconst Github: IconNode = [\n [\n 'path',\n {\n d: 'M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4',\n },\n ],\n ['path', { d: 'M9 18c-4.51 2-5-2-7-2' }],\n];\n\nexport default Github;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gitlab\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgMTMuMjktMy4zMy0xMGEuNDIuNDIgMCAwIDAtLjE0LS4xOC4zOC4zOCAwIDAgMC0uMjItLjExLjM5LjM5IDAgMCAwLS4yMy4wNy40Mi40MiAwIDAgMC0uMTQuMThsLTIuMjYgNi42N0g4LjMyTDYuMSAzLjI2YS40Mi40MiAwIDAgMC0uMS0uMTguMzguMzggMCAwIDAtLjI2LS4wOC4zOS4zOSAwIDAgMC0uMjMuMDcuNDIuNDIgMCAwIDAtLjE0LjE4TDIgMTMuMjlhLjc0Ljc0IDAgMCAwIC4yNy44M0wxMiAyMWw5LjY5LTYuODhhLjcxLjcxIDAgMCAwIC4zMS0uODNaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/gitlab\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=gitlab instead. This icon will be removed in v1.0\n */\nconst Gitlab: IconNode = [\n [\n 'path',\n {\n d: 'm22 13.29-3.33-10a.42.42 0 0 0-.14-.18.38.38 0 0 0-.22-.11.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18l-2.26 6.67H8.32L6.1 3.26a.42.42 0 0 0-.1-.18.38.38 0 0 0-.26-.08.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18L2 13.29a.74.74 0 0 0 .27.83L12 21l9.69-6.88a.71.71 0 0 0 .31-.83Z',\n },\n ],\n];\n\nexport default Gitlab;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name glass-water\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNS4xMTYgNC4xMDRBMSAxIDAgMCAxIDYuMTEgM2gxMS43OGExIDEgMCAwIDEgLjk5NCAxLjEwNUwxNy4xOSAyMC4yMUEyIDIgMCAwIDEgMTUuMiAyMkg4LjhhMiAyIDAgMCAxLTItMS43OXoiIC8+CiAgPHBhdGggZD0iTTYgMTJhNSA1IDAgMCAxIDYgMCA1IDUgMCAwIDAgNiAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/glass-water\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GlassWater: IconNode = [\n [\n 'path',\n {\n d: 'M5.116 4.104A1 1 0 0 1 6.11 3h11.78a1 1 0 0 1 .994 1.105L17.19 20.21A2 2 0 0 1 15.2 22H8.8a2 2 0 0 1-2-1.79z',\n },\n ],\n ['path', { d: 'M6 12a5 5 0 0 1 6 0 5 5 0 0 0 6 0' }],\n];\n\nexport default GlassWater;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name glasses\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTUiIHI9IjQiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxNSIgcj0iNCIgLz4KICA8cGF0aCBkPSJNMTQgMTVhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAyIiAvPgogIDxwYXRoIGQ9Ik0yLjUgMTMgNSA3Yy43LTEuMyAxLjQtMiAzLTIiIC8+CiAgPHBhdGggZD0iTTIxLjUgMTMgMTkgN2MtLjctMS4zLTEuNS0yLTMtMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/glasses\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Glasses: IconNode = [\n ['circle', { cx: '6', cy: '15', r: '4' }],\n ['circle', { cx: '18', cy: '15', r: '4' }],\n ['path', { d: 'M14 15a2 2 0 0 0-2-2 2 2 0 0 0-2 2' }],\n ['path', { d: 'M2.5 13 5 7c.7-1.3 1.4-2 3-2' }],\n ['path', { d: 'M21.5 13 19 7c-.7-1.3-1.5-2-3-2' }],\n];\n\nexport default Glasses;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name globe-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNjg2IDE1QTE0LjUgMTQuNSAwIDAgMSAxMiAyMmExNC41IDE0LjUgMCAwIDEgMC0yMCAxMCAxMCAwIDEgMCA5LjU0MiAxMyIgLz4KICA8cGF0aCBkPSJNMiAxMmg4LjUiIC8+CiAgPHBhdGggZD0iTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iNSIgeD0iMTQiIHk9IjYiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/globe-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GlobeLock: IconNode = [\n ['path', { d: 'M15.686 15A14.5 14.5 0 0 1 12 22a14.5 14.5 0 0 1 0-20 10 10 0 1 0 9.542 13' }],\n ['path', { d: 'M2 12h8.5' }],\n ['path', { d: 'M20 6V4a2 2 0 1 0-4 0v2' }],\n ['rect', { width: '8', height: '5', x: '14', y: '6', rx: '1' }],\n];\n\nexport default GlobeLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name globe\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgMC0yMCIgLz4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/globe\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Globe: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20' }],\n ['path', { d: 'M2 12h20' }],\n];\n\nexport default Globe;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name globe-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMyA1IDUiIC8+CiAgPHBhdGggZD0iTTIgMTJoMjBBMTAgMTAgMCAxIDEgMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgNC0xMCIgLz4KICA8cGF0aCBkPSJtMjEgMy01IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/globe-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GlobeX: IconNode = [\n ['path', { d: 'm16 3 5 5' }],\n ['path', { d: 'M2 12h20A10 10 0 1 1 12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 4-10' }],\n ['path', { d: 'm21 3-5 5' }],\n];\n\nexport default GlobeX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name goal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNWMmw4IDQtOCA0IiAvPgogIDxwYXRoIGQ9Ik0yMC41NjEgMTAuMjIyYTkgOSAwIDEgMS0xMi41NS01LjI5IiAvPgogIDxwYXRoIGQ9Ik04LjAwMiA5Ljk5N2E1IDUgMCAxIDAgOC45IDIuMDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/goal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Goal: IconNode = [\n ['path', { d: 'M12 13V2l8 4-8 4' }],\n ['path', { d: 'M20.561 10.222a9 9 0 1 1-12.55-5.29' }],\n ['path', { d: 'M8.002 9.997a5 5 0 1 0 8.9 2.02' }],\n];\n\nexport default Goal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gpu\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMVYzIiAvPgogIDxwYXRoIGQ9Ik0yIDVoMThhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMi4yNiIgLz4KICA8cGF0aCBkPSJNNyAxN3YzYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi0zIiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iMTEiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iOCIgY3k9IjExIiByPSIyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/gpu\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gpu: IconNode = [\n ['path', { d: 'M2 21V3' }],\n ['path', { d: 'M2 5h18a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2.26' }],\n ['path', { d: 'M7 17v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3' }],\n ['circle', { cx: '16', cy: '11', r: '2' }],\n ['circle', { cx: '8', cy: '11', r: '2' }],\n];\n\nexport default Gpu;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name graduation-cap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuNDIgMTAuOTIyYTEgMSAwIDAgMC0uMDE5LTEuODM4TDEyLjgzIDUuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgOS4wOGExIDEgMCAwIDAgMCAxLjgzMmw4LjU3IDMuOTA4YTIgMiAwIDAgMCAxLjY2IDB6IiAvPgogIDxwYXRoIGQ9Ik0yMiAxMHY2IiAvPgogIDxwYXRoIGQ9Ik02IDEyLjVWMTZhNiAzIDAgMCAwIDEyIDB2LTMuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/graduation-cap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GraduationCap: IconNode = [\n [\n 'path',\n {\n d: 'M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z',\n },\n ],\n ['path', { d: 'M22 10v6' }],\n ['path', { d: 'M6 12.5V16a6 3 0 0 0 12 0v-3.5' }],\n];\n\nexport default GraduationCap;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grape\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgNVYybC01Ljg5IDUuODkiIC8+CiAgPGNpcmNsZSBjeD0iMTYuNiIgY3k9IjE1Ljg5IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjguMTEiIGN5PSI3LjQiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iMTIuMzUiIGN5PSIxMS42NSIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSIxMy45MSIgY3k9IjUuODUiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iMTguMTUiIGN5PSIxMC4wOSIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSI2LjU2IiBjeT0iMTMuMiIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSIxMC44IiBjeT0iMTcuNDQiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE5IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/grape\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grape: IconNode = [\n ['path', { d: 'M22 5V2l-5.89 5.89' }],\n ['circle', { cx: '16.6', cy: '15.89', r: '3' }],\n ['circle', { cx: '8.11', cy: '7.4', r: '3' }],\n ['circle', { cx: '12.35', cy: '11.65', r: '3' }],\n ['circle', { cx: '13.91', cy: '5.85', r: '3' }],\n ['circle', { cx: '18.15', cy: '10.09', r: '3' }],\n ['circle', { cx: '6.56', cy: '13.2', r: '3' }],\n ['circle', { cx: '10.8', cy: '17.44', r: '3' }],\n ['circle', { cx: '5', cy: '19', r: '3' }],\n];\n\nexport default Grape;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-2x2-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyIgLz4KICA8cGF0aCBkPSJtMTYgMTkgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/grid-2x2-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid2x2Check: IconNode = [\n [\n 'path',\n {\n d: 'M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3',\n },\n ],\n ['path', { d: 'm16 19 2 2 4-4' }],\n];\n\nexport default Grid2x2Check;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-2x2-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyIgLz4KICA8cGF0aCBkPSJNMTYgMTloNiIgLz4KICA8cGF0aCBkPSJNMTkgMjJ2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grid-2x2-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid2x2Plus: IconNode = [\n [\n 'path',\n {\n d: 'M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3',\n },\n ],\n ['path', { d: 'M16 19h6' }],\n ['path', { d: 'M19 22v-6' }],\n];\n\nexport default Grid2x2Plus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-2x2-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyIgLz4KICA8cGF0aCBkPSJtMTYgMTYgNSA1IiAvPgogIDxwYXRoIGQ9Im0xNiAyMSA1LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grid-2x2-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid2x2X: IconNode = [\n [\n 'path',\n {\n d: 'M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3',\n },\n ],\n ['path', { d: 'm16 16 5 5' }],\n ['path', { d: 'm16 21 5-5' }],\n];\n\nexport default Grid2x2X;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-2x2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cGF0aCBkPSJNMyAxMmgxOCIgLz4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/grid-2x2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid2x2: IconNode = [\n ['path', { d: 'M12 3v18' }],\n ['path', { d: 'M3 12h18' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default Grid2x2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-3x2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM3YxOCIgLz4KICA8cGF0aCBkPSJNMyAxMmgxOCIgLz4KICA8cGF0aCBkPSJNOSAzdjE4IiAvPgogIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grid-3x2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid3x2: IconNode = [\n ['path', { d: 'M15 3v18' }],\n ['path', { d: 'M3 12h18' }],\n ['path', { d: 'M9 3v18' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default Grid3x2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-3x3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0iTTMgMTVoMTgiIC8+CiAgPHBhdGggZD0iTTkgM3YxOCIgLz4KICA8cGF0aCBkPSJNMTUgM3YxOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/grid-3x3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid3x3: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'M9 3v18' }],\n ['path', { d: 'M15 3v18' }],\n];\n\nexport default Grid3x3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grip-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjkiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSI5IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSI5IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTUiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSIxNSIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iMTUiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grip-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GripHorizontal: IconNode = [\n ['circle', { cx: '12', cy: '9', r: '1' }],\n ['circle', { cx: '19', cy: '9', r: '1' }],\n ['circle', { cx: '5', cy: '9', r: '1' }],\n ['circle', { cx: '12', cy: '15', r: '1' }],\n ['circle', { cx: '19', cy: '15', r: '1' }],\n ['circle', { cx: '5', cy: '15', r: '1' }],\n];\n\nexport default GripHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grip-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjUiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjE5IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE1IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTUiIGN5PSI1IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE1IiBjeT0iMTkiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grip-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GripVertical: IconNode = [\n ['circle', { cx: '9', cy: '12', r: '1' }],\n ['circle', { cx: '9', cy: '5', r: '1' }],\n ['circle', { cx: '9', cy: '19', r: '1' }],\n ['circle', { cx: '15', cy: '12', r: '1' }],\n ['circle', { cx: '15', cy: '5', r: '1' }],\n ['circle', { cx: '15', cy: '19', r: '1' }],\n];\n\nexport default GripVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grip\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSI1IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSIxMiIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxOSIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjE5IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSIxOSIgcj0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/grip\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grip: IconNode = [\n ['circle', { cx: '12', cy: '5', r: '1' }],\n ['circle', { cx: '19', cy: '5', r: '1' }],\n ['circle', { cx: '5', cy: '5', r: '1' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n ['circle', { cx: '19', cy: '12', r: '1' }],\n ['circle', { cx: '5', cy: '12', r: '1' }],\n ['circle', { cx: '12', cy: '19', r: '1' }],\n ['circle', { cx: '19', cy: '19', r: '1' }],\n ['circle', { cx: '5', cy: '19', r: '1' }],\n];\n\nexport default Grip;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name group\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVjMC0xLjEuOS0yIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJjMS4xIDAgMiAuOSAyIDJ2MiIgLz4KICA8cGF0aCBkPSJNMjEgMTd2MmMwIDEuMS0uOSAyLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNNyAyMUg1Yy0xLjEgMC0yLS45LTItMnYtMiIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI1IiB4PSI3IiB5PSI3IiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI1IiB4PSIxMCIgeT0iMTIiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/group\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Group: IconNode = [\n ['path', { d: 'M3 7V5c0-1.1.9-2 2-2h2' }],\n ['path', { d: 'M17 3h2c1.1 0 2 .9 2 2v2' }],\n ['path', { d: 'M21 17v2c0 1.1-.9 2-2 2h-2' }],\n ['path', { d: 'M7 21H5c-1.1 0-2-.9-2-2v-2' }],\n ['rect', { width: '7', height: '5', x: '7', y: '7', rx: '1' }],\n ['rect', { width: '7', height: '5', x: '10', y: '12', rx: '1' }],\n];\n\nexport default Group;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name guitar\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEuOSAxMi4xIDQuNTE0LTQuNTE0IiAvPgogIDxwYXRoIGQ9Ik0yMC4xIDIuM2ExIDEgMCAwIDAtMS40IDBsLTEuMTE0IDEuMTE0QTIgMiAwIDAgMCAxNyA0LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMTcuODI4IDdoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMjEuNyA1LjNhMSAxIDAgMCAwIDAtMS40eiIgLz4KICA8cGF0aCBkPSJtNiAxNiAyIDIiIC8+CiAgPHBhdGggZD0iTTguMjMgOS44NUEzIDMgMCAwIDEgMTEgOGE1IDUgMCAwIDEgNSA1IDMgMyAwIDAgMS0xLjg1IDIuNzdsLS45Mi4zOEEyIDIgMCAwIDAgMTIgMThhNCA0IDAgMCAxLTQgNCA2IDYgMCAwIDEtNi02IDQgNCAwIDAgMSA0LTQgMiAyIDAgMCAwIDEuODUtMS4yM3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/guitar\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Guitar: IconNode = [\n ['path', { d: 'm11.9 12.1 4.514-4.514' }],\n [\n 'path',\n {\n d: 'M20.1 2.3a1 1 0 0 0-1.4 0l-1.114 1.114A2 2 0 0 0 17 4.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 17.828 7h1.344a2 2 0 0 0 1.414-.586L21.7 5.3a1 1 0 0 0 0-1.4z',\n },\n ],\n ['path', { d: 'm6 16 2 2' }],\n [\n 'path',\n {\n d: 'M8.23 9.85A3 3 0 0 1 11 8a5 5 0 0 1 5 5 3 3 0 0 1-1.85 2.77l-.92.38A2 2 0 0 0 12 18a4 4 0 0 1-4 4 6 6 0 0 1-6-6 4 4 0 0 1 4-4 2 2 0 0 0 1.85-1.23z',\n },\n ],\n];\n\nexport default Guitar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ham\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuMTQ0IDIxLjE0NEE3LjI3NCAxMC40NDUgNDUgMSAwIDIuODU2IDEwLjg1NiIgLz4KICA8cGF0aCBkPSJNMTMuMTQ0IDIxLjE0NEE3LjI3NCA0LjM2NSA0NSAwIDAgMi44NTYgMTAuODU2YTcuMjc0IDQuMzY1IDQ1IDAgMCAxMC4yODggMTAuMjg4IiAvPgogIDxwYXRoIGQ9Ik0xNi41NjUgMTAuNDM1IDE4LjYgOC40YTIuNTAxIDIuNTAxIDAgMSAwIDEuNjUtNC42NSAyLjUgMi41IDAgMSAwLTQuNjYgMS42NmwtMi4wMjQgMi4wMjUiIC8+CiAgPHBhdGggZD0ibTguNSAxNi41LTEtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ham\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ham: IconNode = [\n ['path', { d: 'M13.144 21.144A7.274 10.445 45 1 0 2.856 10.856' }],\n [\n 'path',\n { d: 'M13.144 21.144A7.274 4.365 45 0 0 2.856 10.856a7.274 4.365 45 0 0 10.288 10.288' },\n ],\n [\n 'path',\n {\n d: 'M16.565 10.435 18.6 8.4a2.501 2.501 0 1 0 1.65-4.65 2.5 2.5 0 1 0-4.66 1.66l-2.024 2.025',\n },\n ],\n ['path', { d: 'm8.5 16.5-1-1' }],\n];\n\nexport default Ham;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hamburger\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZINGEyIDIgMCAxIDEgMC00aDE2YTIgMiAwIDEgMSAwIDRoLTQuMjUiIC8+CiAgPHBhdGggZD0iTTUgMTJhMiAyIDAgMCAxLTItMiA5IDcgMCAwIDEgMTggMCAyIDIgMCAwIDEtMiAyIiAvPgogIDxwYXRoIGQ9Ik01IDE2YTIgMiAwIDAgMC0yIDIgMyAzIDAgMCAwIDMgM2gxMmEzIDMgMCAwIDAgMy0zIDIgMiAwIDAgMC0yLTJxMCAwIDAgMCIgLz4KICA8cGF0aCBkPSJtNi42NyAxMiA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hamburger\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hamburger: IconNode = [\n ['path', { d: 'M12 16H4a2 2 0 1 1 0-4h16a2 2 0 1 1 0 4h-4.25' }],\n ['path', { d: 'M5 12a2 2 0 0 1-2-2 9 7 0 0 1 18 0 2 2 0 0 1-2 2' }],\n ['path', { d: 'M5 16a2 2 0 0 0-2 2 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 2 2 0 0 0-2-2q0 0 0 0' }],\n ['path', { d: 'm6.67 12 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2' }],\n];\n\nexport default Hamburger;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hammer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTItOS4zNzMgOS4zNzNhMSAxIDAgMCAxLTMuMDAxLTNMMTIgOSIgLz4KICA8cGF0aCBkPSJtMTggMTUgNC00IiAvPgogIDxwYXRoIGQ9Im0yMS41IDExLjUtMS45MTQtMS45MTRBMiAyIDAgMCAxIDE5IDguMTcydi0uMzQ0YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0xLjY1Ny0xLjY1N0E2IDYgMCAwIDAgMTIuNTE2IDNIOWwxLjI0MyAxLjI0M0E2IDYgMCAwIDEgMTIgOC40ODVWMTBsMiAyaDEuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZMMTguNSAxNC41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hammer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hammer: IconNode = [\n ['path', { d: 'm15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9' }],\n ['path', { d: 'm18 15 4-4' }],\n [\n 'path',\n {\n d: 'm21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5',\n },\n ],\n];\n\nexport default Hammer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-coins\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTVoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTciIC8+CiAgPHBhdGggZD0ibTcgMjEgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSIgLz4KICA8cGF0aCBkPSJtMiAxNiA2IDYiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSI5IiByPSIyLjkiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjUiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hand-coins\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandCoins: IconNode = [\n ['path', { d: 'M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17' }],\n [\n 'path',\n {\n d: 'm7 21 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9',\n },\n ],\n ['path', { d: 'm2 16 6 6' }],\n ['circle', { cx: '16', cy: '9', r: '2.9' }],\n ['circle', { cx: '6', cy: '5', r: '3' }],\n];\n\nexport default HandCoins;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-fist\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMDM1IDE3LjAxMmEzIDMgMCAwIDAtMy0zbC0uMzExLS4wMDJhLjcyLjcyIDAgMCAxLS41MDUtMS4yMjlsMS4xOTUtMS4xOTVBMiAyIDAgMCAxIDEwLjgyOCAxMUgxMmEyIDIgMCAwIDAgMC00SDkuMjQzYTMgMyAwIDAgMC0yLjEyMi44NzlsLTIuNzA3IDIuNzA3QTQuODMgNC44MyAwIDAgMCAzIDE0YTggOCAwIDAgMCA4IDhoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHYyYTIgMiAwIDEgMCA0IDAiIC8+CiAgPHBhdGggZD0iTTEzLjg4OCA5LjY2MkEyIDIgMCAwIDAgMTcgOFY1QTIgMiAwIDEgMCAxMyA1IiAvPgogIDxwYXRoIGQ9Ik05IDVBMiAyIDAgMSAwIDUgNVYxMCIgLz4KICA8cGF0aCBkPSJNOSA3VjRBMiAyIDAgMSAxIDEzIDRWNy4yNjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hand-fist\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandFist: IconNode = [\n [\n 'path',\n {\n d: 'M12.035 17.012a3 3 0 0 0-3-3l-.311-.002a.72.72 0 0 1-.505-1.229l1.195-1.195A2 2 0 0 1 10.828 11H12a2 2 0 0 0 0-4H9.243a3 3 0 0 0-2.122.879l-2.707 2.707A4.83 4.83 0 0 0 3 14a8 8 0 0 0 8 8h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v2a2 2 0 1 0 4 0',\n },\n ],\n ['path', { d: 'M13.888 9.662A2 2 0 0 0 17 8V5A2 2 0 1 0 13 5' }],\n ['path', { d: 'M9 5A2 2 0 1 0 5 5V10' }],\n ['path', { d: 'M9 7V4A2 2 0 1 1 13 4V7.268' }],\n];\n\nexport default HandFist;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-grab\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTEuNVY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxLjQiIC8+CiAgPHBhdGggZD0iTTE0IDEwVjhhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjIiIC8+CiAgPHBhdGggZD0iTTEwIDkuOVY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnY1IiAvPgogIDxwYXRoIGQ9Ik02IDE0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiIgLz4KICA8cGF0aCBkPSJNMTggMTFhMiAyIDAgMSAxIDQgMHYzYTggOCAwIDAgMS04IDhoLTRhOCA4IDAgMCAxLTgtOCAyIDIgMCAxIDEgNCAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hand-grab\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandGrab: IconNode = [\n ['path', { d: 'M18 11.5V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4' }],\n ['path', { d: 'M14 10V8a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2' }],\n ['path', { d: 'M10 9.9V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v5' }],\n ['path', { d: 'M6 14a2 2 0 0 0-2-2a2 2 0 0 0-2 2' }],\n ['path', { d: 'M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-4a8 8 0 0 1-8-8 2 2 0 1 1 4 0' }],\n];\n\nexport default HandGrab;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTRoMmEyIDIgMCAwIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTYiIC8+CiAgPHBhdGggZD0ibTE0LjQ1IDEzLjM5IDUuMDUtNC42OTRDMjAuMTk2IDggMjEgNi44NSAyMSA1Ljc1YTIuNzUgMi43NSAwIDAgMC00Ljc5Ny0xLjgzNy4yNzYuMjc2IDAgMCAxLS40MDYgMEEyLjc1IDIuNzUgMCAwIDAgMTEgNS43NWMwIDEuMi44MDIgMi4yNDggMS41IDIuOTQ2TDE2IDExLjk1IiAvPgogIDxwYXRoIGQ9Im0yIDE1IDYgNiIgLz4KICA8cGF0aCBkPSJtNyAyMCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGExIDEgMCAwIDAtMi43NS0yLjkxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hand-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandHeart: IconNode = [\n ['path', { d: 'M11 14h2a2 2 0 0 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 16' }],\n [\n 'path',\n {\n d: 'm14.45 13.39 5.05-4.694C20.196 8 21 6.85 21 5.75a2.75 2.75 0 0 0-4.797-1.837.276.276 0 0 1-.406 0A2.75 2.75 0 0 0 11 5.75c0 1.2.802 2.248 1.5 2.946L16 11.95',\n },\n ],\n ['path', { d: 'm2 15 6 6' }],\n [\n 'path',\n { d: 'm7 20 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a1 1 0 0 0-2.75-2.91' },\n ],\n];\n\nexport default HandHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-helping\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTJoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTQiIC8+CiAgPHBhdGggZD0ibTcgMTggMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSIgLz4KICA8cGF0aCBkPSJtMiAxMyA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hand-helping\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandHelping: IconNode = [\n ['path', { d: 'M11 12h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 14' }],\n [\n 'path',\n {\n d: 'm7 18 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9',\n },\n ],\n ['path', { d: 'm2 13 6 6' }],\n];\n\nexport default HandHelping;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-metal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTIuNVYxMGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40IiAvPgogIDxwYXRoIGQ9Ik0xNCAxMVY5YTIgMiAwIDEgMC00IDB2MiIgLz4KICA8cGF0aCBkPSJNMTAgMTAuNVY1YTIgMiAwIDEgMC00IDB2OSIgLz4KICA8cGF0aCBkPSJtNyAxNS0xLjc2LTEuNzZhMiAyIDAgMCAwLTIuODMgMi44MmwzLjYgMy42QzcuNSAyMS4xNCA5LjIgMjIgMTIgMjJoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hand-metal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandMetal: IconNode = [\n ['path', { d: 'M18 12.5V10a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4' }],\n ['path', { d: 'M14 11V9a2 2 0 1 0-4 0v2' }],\n ['path', { d: 'M10 10.5V5a2 2 0 1 0-4 0v9' }],\n [\n 'path',\n {\n d: 'm7 15-1.76-1.76a2 2 0 0 0-2.83 2.82l3.6 3.6C7.5 21.14 9.2 22 12 22h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v5',\n },\n ],\n];\n\nexport default HandMetal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-platter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM1YyIiAvPgogIDxwYXRoIGQ9Im0xNS40IDE3LjQgMy4yLTIuOGEyIDIgMCAxIDEgMi44IDIuOWwtMy42IDMuM2MtLjcuOC0xLjcgMS4yLTIuOCAxLjJoLTRjLTEuMSAwLTIuMS0uNC0yLjgtMS4ybC0xLjMwMi0xLjQ2NEExIDEgMCAwIDAgNi4xNTEgMTlINSIgLz4KICA8cGF0aCBkPSJNMiAxNGgxMmEyIDIgMCAwIDEgMCA0aC0yIiAvPgogIDxwYXRoIGQ9Ik00IDEwaDE2IiAvPgogIDxwYXRoIGQ9Ik01IDEwYTcgNyAwIDAgMSAxNCAwIiAvPgogIDxwYXRoIGQ9Ik01IDE0djZhMSAxIDAgMCAxLTEgMUgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hand-platter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandPlatter: IconNode = [\n ['path', { d: 'M12 3V2' }],\n [\n 'path',\n {\n d: 'm15.4 17.4 3.2-2.8a2 2 0 1 1 2.8 2.9l-3.6 3.3c-.7.8-1.7 1.2-2.8 1.2h-4c-1.1 0-2.1-.4-2.8-1.2l-1.302-1.464A1 1 0 0 0 6.151 19H5',\n },\n ],\n ['path', { d: 'M2 14h12a2 2 0 0 1 0 4h-2' }],\n ['path', { d: 'M4 10h16' }],\n ['path', { d: 'M5 10a7 7 0 0 1 14 0' }],\n ['path', { d: 'M5 14v6a1 1 0 0 1-1 1H2' }],\n];\n\nexport default HandPlatter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTFWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDIiIC8+CiAgPHBhdGggZD0iTTE0IDEwVjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjIiIC8+CiAgPHBhdGggZD0iTTEwIDEwLjVWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2OCIgLz4KICA8cGF0aCBkPSJNMTggOGEyIDIgMCAxIDEgNCAwdjZhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hand\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hand: IconNode = [\n ['path', { d: 'M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2' }],\n ['path', { d: 'M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2' }],\n ['path', { d: 'M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8' }],\n [\n 'path',\n {\n d: 'M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15',\n },\n ],\n];\n\nexport default Hand;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name handbag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNDggMTguNTY2QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjk1Mi0yLjQzNGwtMi05QTIgMiAwIDAgMCAxOCA4SDZhMiAyIDAgMCAwLTEuOTUyIDEuNTY2eiIgLz4KICA8cGF0aCBkPSJNOCAxMVY2YTQgNCAwIDAgMSA4IDB2NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/handbag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Handbag: IconNode = [\n [\n 'path',\n {\n d: 'M2.048 18.566A2 2 0 0 0 4 21h16a2 2 0 0 0 1.952-2.434l-2-9A2 2 0 0 0 18 8H6a2 2 0 0 0-1.952 1.566z',\n },\n ],\n ['path', { d: 'M8 11V6a4 4 0 0 1 8 0v5' }],\n];\n\nexport default Handbag;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name handshake\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTcgMiAyYTEgMSAwIDEgMCAzLTMiIC8+CiAgPHBhdGggZD0ibTE0IDE0IDIuNSAyLjVhMSAxIDAgMSAwIDMtM2wtMy44OC0zLjg4YTMgMyAwIDAgMC00LjI0IDBsLS44OC44OGExIDEgMCAxIDEtMy0zbDIuODEtMi44MWE1Ljc5IDUuNzkgMCAwIDEgNy4wNi0uODdsLjQ3LjI4YTIgMiAwIDAgMCAxLjQyLjI1TDIxIDQiIC8+CiAgPHBhdGggZD0ibTIxIDMgMSAxMWgtMiIgLz4KICA8cGF0aCBkPSJNMyAzIDIgMTRsNi41IDYuNWExIDEgMCAxIDAgMy0zIiAvPgogIDxwYXRoIGQ9Ik0zIDRoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/handshake\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Handshake: IconNode = [\n ['path', { d: 'm11 17 2 2a1 1 0 1 0 3-3' }],\n [\n 'path',\n {\n d: 'm14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4',\n },\n ],\n ['path', { d: 'm21 3 1 11h-2' }],\n ['path', { d: 'M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3' }],\n ['path', { d: 'M3 4h8' }],\n];\n\nexport default Handshake;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hard-drive-download\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY4IiAvPgogIDxwYXRoIGQ9Im0xNiA2LTQgNC00LTQiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHg9IjIiIHk9IjE0IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTEwIDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hard-drive-download\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HardDriveDownload: IconNode = [\n ['path', { d: 'M12 2v8' }],\n ['path', { d: 'm16 6-4 4-4-4' }],\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'M10 18h.01' }],\n];\n\nexport default HardDriveDownload;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hard-drive-upload\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgNi00LTQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjgiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHg9IjIiIHk9IjE0IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTEwIDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hard-drive-upload\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HardDriveUpload: IconNode = [\n ['path', { d: 'm16 6-4-4-4 4' }],\n ['path', { d: 'M12 2v8' }],\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'M10 18h.01' }],\n];\n\nexport default HardDriveUpload;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hard-drive\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yLjIxMiAxMS41NzdhMiAyIDAgMCAwLS4yMTIuODk2VjE4YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNS41MjdhMiAyIDAgMCAwLS4yMTItLjg5NkwxOC41NSA1LjExQTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXoiIC8+CiAgPHBhdGggZD0iTTIxLjk0NiAxMi4wMTNIMi4wNTQiIC8+CiAgPHBhdGggZD0iTTYgMTZoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hard-drive\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HardDrive: IconNode = [\n ['path', { d: 'M10 16h.01' }],\n [\n 'path',\n {\n d: 'M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z',\n },\n ],\n ['path', { d: 'M21.946 12.013H2.054' }],\n ['path', { d: 'M6 16h.01' }],\n];\n\nexport default HardDrive;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hard-hat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTBWNWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY1IiAvPgogIDxwYXRoIGQ9Ik0xNCA2YTYgNiAwIDAgMSA2IDZ2MyIgLz4KICA8cGF0aCBkPSJNNCAxNXYtM2E2IDYgMCAwIDEgNi02IiAvPgogIDxyZWN0IHg9IjIiIHk9IjE1IiB3aWR0aD0iMjAiIGhlaWdodD0iNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hard-hat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HardHat: IconNode = [\n ['path', { d: 'M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5' }],\n ['path', { d: 'M14 6a6 6 0 0 1 6 6v3' }],\n ['path', { d: 'M4 15v-3a6 6 0 0 1 6-6' }],\n ['rect', { x: '2', y: '15', width: '20', height: '4', rx: '1' }],\n];\n\nexport default HardHat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iOSIgeTI9IjkiIC8+CiAgPGxpbmUgeDE9IjQiIHgyPSIyMCIgeTE9IjE1IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjEwIiB4Mj0iOCIgeTE9IjMiIHkyPSIyMSIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIxNCIgeTE9IjMiIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hash: IconNode = [\n ['line', { x1: '4', x2: '20', y1: '9', y2: '9' }],\n ['line', { x1: '4', x2: '20', y1: '15', y2: '15' }],\n ['line', { x1: '10', x2: '8', y1: '3', y2: '21' }],\n ['line', { x1: '16', x2: '14', y1: '3', y2: '21' }],\n];\n\nexport default Hash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hat-glasses\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMThhMiAyIDAgMCAwLTQgMCIgLz4KICA8cGF0aCBkPSJtMTkgMTEtMi4xMS02LjY1N2EyIDIgMCAwIDAtMi43NTItMS4xNDhsLTEuMjc2LjYxQTIgMiAwIDAgMSAxMiA0SDguNWEyIDIgMCAwIDAtMS45MjUgMS40NTZMNSAxMSIgLz4KICA8cGF0aCBkPSJNMiAxMWgyMCIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hat-glasses\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HatGlasses: IconNode = [\n ['path', { d: 'M14 18a2 2 0 0 0-4 0' }],\n [\n 'path',\n {\n d: 'm19 11-2.11-6.657a2 2 0 0 0-2.752-1.148l-1.276.61A2 2 0 0 1 12 4H8.5a2 2 0 0 0-1.925 1.456L5 11',\n },\n ],\n ['path', { d: 'M2 11h20' }],\n ['circle', { cx: '17', cy: '18', r: '3' }],\n ['circle', { cx: '7', cy: '18', r: '3' }],\n];\n\nexport default HatGlasses;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name haze\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNS4yIDYuMiAxLjQgMS40IiAvPgogIDxwYXRoIGQ9Ik0yIDEzaDIiIC8+CiAgPHBhdGggZD0iTTIwIDEzaDIiIC8+CiAgPHBhdGggZD0ibTE3LjQgNy42IDEuNC0xLjQiIC8+CiAgPHBhdGggZD0iTTIyIDE3SDIiIC8+CiAgPHBhdGggZD0iTTIyIDIxSDIiIC8+CiAgPHBhdGggZD0iTTE2IDEzYTQgNCAwIDAgMC04IDAiIC8+CiAgPHBhdGggZD0iTTEyIDVWMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/haze\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Haze: IconNode = [\n ['path', { d: 'm5.2 6.2 1.4 1.4' }],\n ['path', { d: 'M2 13h2' }],\n ['path', { d: 'M20 13h2' }],\n ['path', { d: 'm17.4 7.6 1.4-1.4' }],\n ['path', { d: 'M22 17H2' }],\n ['path', { d: 'M22 21H2' }],\n ['path', { d: 'M16 13a4 4 0 0 0-8 0' }],\n ['path', { d: 'M12 5V2.5' }],\n];\n\nexport default Haze;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hd\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJINiIgLz4KICA8cGF0aCBkPSJNMTAgMTVWOSIgLz4KICA8cGF0aCBkPSJNMTQgMTQuNWEuNS41IDAgMCAwIC41LjVoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFBMi41IDIuNSAwIDAgMCAxNS41IDloLTFhLjUuNSAwIDAgMC0uNS41eiIgLz4KICA8cGF0aCBkPSJNNiAxNVY5IiAvPgogIDxyZWN0IHg9IjIiIHk9IjUiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hd\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hd: IconNode = [\n ['path', { d: 'M10 12H6' }],\n ['path', { d: 'M10 15V9' }],\n [\n 'path',\n {\n d: 'M14 14.5a.5.5 0 0 0 .5.5h1a2.5 2.5 0 0 0 2.5-2.5v-1A2.5 2.5 0 0 0 15.5 9h-1a.5.5 0 0 0-.5.5z',\n },\n ],\n ['path', { d: 'M6 15V9' }],\n ['rect', { x: '2', y: '5', width: '20', height: '14', rx: '2' }],\n];\n\nexport default Hd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hdmi-port\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgOWExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoMWwyIDJoMTJsMi0yaDFhMSAxIDAgMCAwIDEtMVoiIC8+CiAgPHBhdGggZD0iTTcuNSAxMmg5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hdmi-port\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HdmiPort: IconNode = [\n [\n 'path',\n { d: 'M22 9a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1l2 2h12l2-2h1a1 1 0 0 0 1-1Z' },\n ],\n ['path', { d: 'M7.5 12h9' }],\n];\n\nexport default HdmiPort;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPHBhdGggZD0ibTE3IDEyIDMtMnY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heading-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading1: IconNode = [\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n ['path', { d: 'M12 18V6' }],\n ['path', { d: 'm17 12 3-2v8' }],\n];\n\nexport default Heading1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPHBhdGggZD0iTTIxIDE4aC00YzAtNCA0LTMgNC02IDAtMS41LTItMi41LTQtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heading-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading2: IconNode = [\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n ['path', { d: 'M12 18V6' }],\n ['path', { d: 'M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1' }],\n];\n\nexport default Heading2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPHBhdGggZD0iTTE3LjUgMTAuNWMxLjctMSAzLjUgMCAzLjUgMS41YTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTE3IDE3LjVjMiAxLjUgNCAuMyA0LTEuNWEyIDIgMCAwIDAtMi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heading-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading3: IconNode = [\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n ['path', { d: 'M12 18V6' }],\n ['path', { d: 'M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2' }],\n ['path', { d: 'M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2' }],\n];\n\nexport default Heading3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMThWNiIgLz4KICA8cGF0aCBkPSJNMTcgMTB2M2ExIDEgMCAwIDAgMSAxaDMiIC8+CiAgPHBhdGggZD0iTTIxIDEwdjgiIC8+CiAgPHBhdGggZD0iTTQgMTJoOCIgLz4KICA8cGF0aCBkPSJNNCAxOFY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heading-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading4: IconNode = [\n ['path', { d: 'M12 18V6' }],\n ['path', { d: 'M17 10v3a1 1 0 0 0 1 1h3' }],\n ['path', { d: 'M21 10v8' }],\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n];\n\nexport default Heading4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-5\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPHBhdGggZD0iTTE3IDEzdi0zaDQiIC8+CiAgPHBhdGggZD0iTTE3IDE3LjdjLjQuMi44LjMgMS4zLjMgMS41IDAgMi43LTEuMSAyLjctMi41UzE5LjggMTMgMTguMyAxM0gxNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heading-5\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading5: IconNode = [\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n ['path', { d: 'M12 18V6' }],\n ['path', { d: 'M17 13v-3h4' }],\n ['path', { d: 'M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17' }],\n];\n\nexport default Heading5;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-6\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSIxNiIgcj0iMiIgLz4KICA8cGF0aCBkPSJNMjAgMTBjLTIgMi0zIDMuNS0zIDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/heading-6\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading6: IconNode = [\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n ['path', { d: 'M12 18V6' }],\n ['circle', { cx: '19', cy: '16', r: '2' }],\n ['path', { d: 'M20 10c-2 2-3 3.5-3 6' }],\n];\n\nexport default Heading6;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxMmgxMiIgLz4KICA8cGF0aCBkPSJNNiAyMFY0IiAvPgogIDxwYXRoIGQ9Ik0xOCAyMFY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heading\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading: IconNode = [\n ['path', { d: 'M6 12h12' }],\n ['path', { d: 'M6 20V4' }],\n ['path', { d: 'M18 20V4' }],\n];\n\nexport default Heading;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name headphone-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTRoLTEuMzQzIiAvPgogIDxwYXRoIGQ9Ik05LjEyOCAzLjQ3QTkgOSAwIDAgMSAyMSAxMnYzLjM0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMC40MTQgMjAuNDE0QTIgMiAwIDAgMSAxOSAyMWgtMWEyIDIgMCAwIDEtMi0ydi0zIiAvPgogIDxwYXRoIGQ9Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAyLjYzNi02LjM2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/headphone-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeadphoneOff: IconNode = [\n ['path', { d: 'M21 14h-1.343' }],\n ['path', { d: 'M9.128 3.47A9 9 0 0 1 21 12v3.343' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20.414 20.414A2 2 0 0 1 19 21h-1a2 2 0 0 1-2-2v-3' }],\n ['path', { d: 'M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 2.636-6.364' }],\n];\n\nexport default HeadphoneOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name headphones\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxNGgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtN2E5IDkgMCAwIDEgMTggMHY3YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/headphones\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Headphones: IconNode = [\n [\n 'path',\n {\n d: 'M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3',\n },\n ],\n];\n\nexport default Headphones;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-crack\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNDA5IDUuODI0Yy0uNzAyLjc5Mi0xLjE1IDEuNDk2LTEuNDE1IDIuMTY2bDIuMTUzIDIuMTU2YS41LjUgMCAwIDEgMCAuNzA3bC0yLjI5MyAyLjI5M2EuNS41IDAgMCAwIDAgLjcwN0wxMiAxNSIgLz4KICA8cGF0aCBkPSJNMTMuNTA4IDIwLjMxM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ny42LjYgMCAwIDAgLjgxOC4wMDFBNS41IDUuNSAwIDAgMSAyMiA5LjVjMCAyLjI5LTEuNSA0LTMgNS41eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heart-crack\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartCrack: IconNode = [\n [\n 'path',\n {\n d: 'M12.409 5.824c-.702.792-1.15 1.496-1.415 2.166l2.153 2.156a.5.5 0 0 1 0 .707l-2.293 2.293a.5.5 0 0 0 0 .707L12 15',\n },\n ],\n [\n 'path',\n {\n d: 'M13.508 20.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.677.6.6 0 0 0 .818.001A5.5 5.5 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5z',\n },\n ],\n];\n\nexport default HeartCrack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name headset\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNnYyYTQgNCAwIDAgMS00IDRoLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/headset\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Headset: IconNode = [\n [\n 'path',\n {\n d: 'M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z',\n },\n ],\n ['path', { d: 'M21 16v2a4 4 0 0 1-4 4h-5' }],\n];\n\nexport default Headset;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-handshake\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuNDE0IDE0LjQxNEMyMSAxMi44MjggMjIgMTEuNSAyMiA5LjVhNS41IDUuNSAwIDAgMC05LjU5MS0zLjY3Ni42LjYgMCAwIDEtLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyIDkuNWMwIDIuMyAxLjUgNCAzIDUuNWw1LjUzNSA1LjM2MmEyIDIgMCAwIDAgMi44NzkuMDUyIDIuMTIgMi4xMiAwIDAgMC0uMDA0LTMgMi4xMjQgMi4xMjQgMCAxIDAgMy0zIDIuMTI0IDIuMTI0IDAgMCAwIDMuMDA0IDAgMiAyIDAgMCAwIDAtMi44MjhsLTEuODgxLTEuODgyYTIuNDEgMi40MSAwIDAgMC0zLjQwOSAwbC0xLjcxIDEuNzFhMiAyIDAgMCAxLTIuODI4IDAgMiAyIDAgMCAxIDAtMi44MjhsMi44MjMtMi43NjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/heart-handshake\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartHandshake: IconNode = [\n [\n 'path',\n {\n d: 'M19.414 14.414C21 12.828 22 11.5 22 9.5a5.5 5.5 0 0 0-9.591-3.676.6.6 0 0 1-.818.001A5.5 5.5 0 0 0 2 9.5c0 2.3 1.5 4 3 5.5l5.535 5.362a2 2 0 0 0 2.879.052 2.12 2.12 0 0 0-.004-3 2.124 2.124 0 1 0 3-3 2.124 2.124 0 0 0 3.004 0 2 2 0 0 0 0-2.828l-1.881-1.882a2.41 2.41 0 0 0-3.409 0l-1.71 1.71a2 2 0 0 1-2.828 0 2 2 0 0 1 0-2.828l2.823-2.762',\n },\n ],\n];\n\nexport default HeartHandshake;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuODc2IDE4Ljk5LTEuMzY4IDEuMzIzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjI0NCAxLjU3MiIgLz4KICA8cGF0aCBkPSJNMTUgMTVoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heart-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartMinus: IconNode = [\n [\n 'path',\n {\n d: 'm14.876 18.99-1.368 1.323a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5a5.2 5.2 0 0 1-.244 1.572',\n },\n ],\n ['path', { d: 'M15 15h6' }],\n];\n\nexport default HeartMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSA0Ljg5M2E1LjUgNS41IDAgMCAxIDEuMDkxLjkzMS41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDEuODcyLTEuMDAyIDMuMzU2LTIuMTg3IDQuNjU1IiAvPgogIDxwYXRoIGQ9Im0xNi45NjcgMTYuOTY3LTMuNDU5IDMuMzQ2YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDIuNzQ3LTQuNzYxIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/heart-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartOff: IconNode = [\n [\n 'path',\n {\n d: 'M10.5 4.893a5.5 5.5 0 0 1 1.091.931.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 1.872-1.002 3.356-2.187 4.655',\n },\n ],\n [\n 'path',\n {\n d: 'm16.967 16.967-3.459 3.346a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 2.747-4.761',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default HeartOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-pulse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSIgLz4KICA8cGF0aCBkPSJNMy4yMiAxM0g5LjVsLjUtMSAyIDQuNSAyLTcgMS41IDMuNWg1LjI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heart-pulse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartPulse: IconNode = [\n [\n 'path',\n {\n d: 'M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5',\n },\n ],\n ['path', { d: 'M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27' }],\n];\n\nexport default HeartPulse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuNDc5IDE5LjM3NC0uOTcxLjkzOWEyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWE1LjIgNS4yIDAgMCAxLS4yMTkgMS40OSIgLz4KICA8cGF0aCBkPSJNMTUgMTVoNiIgLz4KICA8cGF0aCBkPSJNMTggMTJ2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heart-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartPlus: IconNode = [\n [\n 'path',\n {\n d: 'm14.479 19.374-.971.939a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5a5.2 5.2 0 0 1-.219 1.49',\n },\n ],\n ['path', { d: 'M15 15h6' }],\n ['path', { d: 'M18 12v6' }],\n];\n\nexport default HeartPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heart: IconNode = [\n [\n 'path',\n {\n d: 'M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5',\n },\n ],\n];\n\nexport default Heart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heater\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgOGMyLTMtMi0zIDAtNiIgLz4KICA8cGF0aCBkPSJNMTUuNSA4YzItMy0yLTMgMC02IiAvPgogIDxwYXRoIGQ9Ik02IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNNiAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTEwIDE2di00IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNnYtNCIgLz4KICA8cGF0aCBkPSJNMTggMTZ2LTQiIC8+CiAgPHBhdGggZD0iTTIwIDZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMyIgLz4KICA8cGF0aCBkPSJNNSAyMHYyIiAvPgogIDxwYXRoIGQ9Ik0xOSAyMHYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heater\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heater: IconNode = [\n ['path', { d: 'M11 8c2-3-2-3 0-6' }],\n ['path', { d: 'M15.5 8c2-3-2-3 0-6' }],\n ['path', { d: 'M6 10h.01' }],\n ['path', { d: 'M6 14h.01' }],\n ['path', { d: 'M10 16v-4' }],\n ['path', { d: 'M14 16v-4' }],\n ['path', { d: 'M18 16v-4' }],\n ['path', { d: 'M20 6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3' }],\n ['path', { d: 'M5 20v2' }],\n ['path', { d: 'M19 20v2' }],\n];\n\nexport default Heater;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name helicopter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTd2NCIgLz4KICA8cGF0aCBkPSJNMTQgM3Y4YTIgMiAwIDAgMCAyIDJoNS44NjUiIC8+CiAgPHBhdGggZD0iTTE3IDE3djQiIC8+CiAgPHBhdGggZD0iTTE4IDE3YTQgNCAwIDAgMCA0LTQgOCA2IDAgMCAwLTgtNiA2IDUgMCAwIDAtNiA1djNhMiAyIDAgMCAwIDIgMnoiIC8+CiAgPHBhdGggZD0iTTIgMTB2NSIgLz4KICA8cGF0aCBkPSJNNiAzaDE2IiAvPgogIDxwYXRoIGQ9Ik03IDIxaDE0IiAvPgogIDxwYXRoIGQ9Ik04IDEzSDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/helicopter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Helicopter: IconNode = [\n ['path', { d: 'M11 17v4' }],\n ['path', { d: 'M14 3v8a2 2 0 0 0 2 2h5.865' }],\n ['path', { d: 'M17 17v4' }],\n ['path', { d: 'M18 17a4 4 0 0 0 4-4 8 6 0 0 0-8-6 6 5 0 0 0-6 5v3a2 2 0 0 0 2 2z' }],\n ['path', { d: 'M2 10v5' }],\n ['path', { d: 'M6 3h16' }],\n ['path', { d: 'M7 21h14' }],\n ['path', { d: 'M8 13H2' }],\n];\n\nexport default Helicopter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hexagon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hexagon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hexagon: IconNode = [\n [\n 'path',\n {\n d: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',\n },\n ],\n];\n\nexport default Hexagon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name highlighter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxMS02IDZ2M2g5bDMtMyIgLz4KICA8cGF0aCBkPSJtMjIgMTItNC42IDQuNmEyIDIgMCAwIDEtMi44IDBsLTUuMi01LjJhMiAyIDAgMCAxIDAtMi44TDE0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/highlighter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Highlighter: IconNode = [\n ['path', { d: 'm9 11-6 6v3h9l3-3' }],\n ['path', { d: 'm22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4' }],\n];\n\nexport default Highlighter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name history\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4IiAvPgogIDxwYXRoIGQ9Ik0zIDN2NWg1IiAvPgogIDxwYXRoIGQ9Ik0xMiA3djVsNCAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/history\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst History: IconNode = [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n ['path', { d: 'M12 7v5l4 2' }],\n];\n\nexport default History;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuODIgMTYuMTJjMS42OS42IDMuOTEuNzkgNS4xOC44NS41NS4wMyAxLS40Mi45Ny0uOTctLjA2LTEuMjctLjI2LTMuNS0uODUtNS4xOCIgLz4KICA8cGF0aCBkPSJNMTEuNSA2LjVjMS42NCAwIDUtLjM4IDYuNzEtMS4wNy41Mi0uMi41NS0uODIuMTItMS4xN0ExMCAxMCAwIDAgMCA0LjI2IDE4LjMzYy4zNS40My45Ni40IDEuMTctLjEyLjY5LTEuNzEgMS4wNy01LjA3IDEuMDctNi43MSAxLjM0LjQ1IDMuMS45IDQuODguNjJhLjg4Ljg4IDAgMCAwIC43My0uNzRjLjMtMi4xNC0uMTUtMy41LS42MS00Ljg4IiAvPgogIDxwYXRoIGQ9Ik0xNS42MiAxNi45NWMuMi44NS42MiAyLjc2LjUgNC4yOGEuNzcuNzcgMCAwIDEtLjkuNyAxNi42NCAxNi42NCAwIDAgMS00LjA4LTEuMzYiIC8+CiAgPHBhdGggZD0iTTE2LjEzIDIxLjA1YzEuNjUuNjMgMy42OC44NCA0Ljg3LjkxYS45LjkgMCAwIDAgLjk2LS45NiAxNy42OCAxNy42OCAwIDAgMC0uOS00Ljg3IiAvPgogIDxwYXRoIGQ9Ik0xNi45NCAxNS42MmMuODYuMiAyLjc3LjYyIDQuMjkuNWEuNzcuNzcgMCAwIDAgLjctLjkgMTYuNjQgMTYuNjQgMCAwIDAtMS4zNi00LjA4IiAvPgogIDxwYXRoIGQ9Ik0xNy45OSA1LjUyYTIwLjgyIDIwLjgyIDAgMCAxIDMuMTUgNC41LjguOCAwIDAgMS0uNjggMS4xM2MtMi4zMy4yLTUuMy0uMzItOC4yNy0xLjU3IiAvPgogIDxwYXRoIGQ9Ik00LjkzIDQuOTMgMyAzYS43LjcgMCAwIDEgMC0xIiAvPgogIDxwYXRoIGQ9Ik05LjU4IDEyLjE4YzEuMjQgMi45OCAxLjc3IDUuOTUgMS41NyA4LjI4YS44LjggMCAwIDEtMS4xMy42OCAyMC44MiAyMC44MiAwIDAgMS00LjUtMy4xNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hop: IconNode = [\n [\n 'path',\n { d: 'M10.82 16.12c1.69.6 3.91.79 5.18.85.55.03 1-.42.97-.97-.06-1.27-.26-3.5-.85-5.18' },\n ],\n [\n 'path',\n {\n d: 'M11.5 6.5c1.64 0 5-.38 6.71-1.07.52-.2.55-.82.12-1.17A10 10 0 0 0 4.26 18.33c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.88.88 0 0 0 .73-.74c.3-2.14-.15-3.5-.61-4.88',\n },\n ],\n [\n 'path',\n { d: 'M15.62 16.95c.2.85.62 2.76.5 4.28a.77.77 0 0 1-.9.7 16.64 16.64 0 0 1-4.08-1.36' },\n ],\n [\n 'path',\n { d: 'M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .96-.96 17.68 17.68 0 0 0-.9-4.87' },\n ],\n [\n 'path',\n { d: 'M16.94 15.62c.86.2 2.77.62 4.29.5a.77.77 0 0 0 .7-.9 16.64 16.64 0 0 0-1.36-4.08' },\n ],\n [\n 'path',\n { d: 'M17.99 5.52a20.82 20.82 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-2.33.2-5.3-.32-8.27-1.57' },\n ],\n ['path', { d: 'M4.93 4.93 3 3a.7.7 0 0 1 0-1' }],\n [\n 'path',\n {\n d: 'M9.58 12.18c1.24 2.98 1.77 5.95 1.57 8.28a.8.8 0 0 1-1.13.68 20.82 20.82 0 0 1-4.5-3.15',\n },\n ],\n];\n\nexport default Hop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hop-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuODIgMTYuMTJjMS42OS42IDMuOTEuNzkgNS4xOC44NS4yOC4wMS41My0uMDkuNy0uMjciIC8+CiAgPHBhdGggZD0iTTExLjE0IDIwLjU3Yy41Mi4yNCAyLjQ0IDEuMTIgNC4wOCAxLjM3LjQ2LjA2Ljg2LS4yNS45LS43MS4xMi0xLjUyLS4zLTMuNDMtLjUtNC4yOCIgLz4KICA8cGF0aCBkPSJNMTYuMTMgMjEuMDVjMS42NS42MyAzLjY4Ljg0IDQuODcuOTFhLjkuOSAwIDAgMCAuNy0uMjYiIC8+CiAgPHBhdGggZD0iTTE3Ljk5IDUuNTJhMjAuODMgMjAuODMgMCAwIDEgMy4xNSA0LjUuOC44IDAgMCAxLS42OCAxLjEzYy0xLjE3LjEtMi41LjAyLTMuOS0uMjUiIC8+CiAgPHBhdGggZD0iTTIwLjU3IDExLjE0Yy4yNC41MiAxLjEyIDIuNDQgMS4zNyA0LjA4LjA0LjMtLjA4LjU5LS4zMS43NSIgLz4KICA8cGF0aCBkPSJNNC45MyA0LjkzYTEwIDEwIDAgMCAwLS42NyAxMy40Yy4zNS40My45Ni40IDEuMTctLjEyLjY5LTEuNzEgMS4wNy01LjA3IDEuMDctNi43MSAxLjM0LjQ1IDMuMS45IDQuODguNjJhLjg1Ljg1IDAgMCAwIC40OC0uMjQiIC8+CiAgPHBhdGggZD0iTTUuNTIgMTcuOTljMS4wNS45NSAyLjkxIDIuNDIgNC41IDMuMTVhLjguOCAwIDAgMCAxLjEzLS42OGMuMi0yLjM0LS4zMy01LjMtMS41Ny04LjI4IiAvPgogIDxwYXRoIGQ9Ik04LjM1IDIuNjhhMTAgMTAgMCAwIDEgOS45OCAxLjU4Yy40My4zNS40Ljk2LS4xMiAxLjE3LTEuNS42LTQuMy45OC02LjA3IDEuMDUiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hop-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HopOff: IconNode = [\n ['path', { d: 'M10.82 16.12c1.69.6 3.91.79 5.18.85.28.01.53-.09.7-.27' }],\n [\n 'path',\n { d: 'M11.14 20.57c.52.24 2.44 1.12 4.08 1.37.46.06.86-.25.9-.71.12-1.52-.3-3.43-.5-4.28' },\n ],\n ['path', { d: 'M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .7-.26' }],\n [\n 'path',\n { d: 'M17.99 5.52a20.83 20.83 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-1.17.1-2.5.02-3.9-.25' },\n ],\n ['path', { d: 'M20.57 11.14c.24.52 1.12 2.44 1.37 4.08.04.3-.08.59-.31.75' }],\n [\n 'path',\n {\n d: 'M4.93 4.93a10 10 0 0 0-.67 13.4c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.85.85 0 0 0 .48-.24',\n },\n ],\n [\n 'path',\n { d: 'M5.52 17.99c1.05.95 2.91 2.42 4.5 3.15a.8.8 0 0 0 1.13-.68c.2-2.34-.33-5.3-1.57-8.28' },\n ],\n ['path', { d: 'M8.35 2.68a10 10 0 0 1 9.98 1.58c.43.35.4.96-.12 1.17-1.5.6-4.3.98-6.07 1.05' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default HopOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hospital\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y0IiAvPgogIDxwYXRoIGQ9Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMiIC8+CiAgPHBhdGggZD0iTTE0IDloLTQiIC8+CiAgPHBhdGggZD0iTTE4IDExaDJhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAyLTJoMiIgLz4KICA8cGF0aCBkPSJNMTggMjFWNWEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hospital\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hospital: IconNode = [\n ['path', { d: 'M12 7v4' }],\n ['path', { d: 'M14 21v-3a2 2 0 0 0-4 0v3' }],\n ['path', { d: 'M14 9h-4' }],\n ['path', { d: 'M18 11h2a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M18 21V5a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16' }],\n];\n\nexport default Hospital;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hotel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjJ2LTYuNTciIC8+CiAgPHBhdGggZD0iTTEyIDExaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgN2guMDEiIC8+CiAgPHBhdGggZD0iTTE0IDE1LjQzVjIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNmE1IDUgMCAwIDAtNiAwIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMWguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDdoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDExaC4wMSIgLz4KICA8cGF0aCBkPSJNOCA3aC4wMSIgLz4KICA8cmVjdCB4PSI0IiB5PSIyIiB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hotel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hotel: IconNode = [\n ['path', { d: 'M10 22v-6.57' }],\n ['path', { d: 'M12 11h.01' }],\n ['path', { d: 'M12 7h.01' }],\n ['path', { d: 'M14 15.43V22' }],\n ['path', { d: 'M15 16a5 5 0 0 0-6 0' }],\n ['path', { d: 'M16 11h.01' }],\n ['path', { d: 'M16 7h.01' }],\n ['path', { d: 'M8 11h.01' }],\n ['path', { d: 'M8 7h.01' }],\n ['rect', { x: '4', y: '2', width: '16', height: '20', rx: '2' }],\n];\n\nexport default Hotel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hourglass\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMmgxNCIgLz4KICA8cGF0aCBkPSJNNSAyaDE0IiAvPgogIDxwYXRoIGQ9Ik0xNyAyMnYtNC4xNzJhMiAyIDAgMCAwLS41ODYtMS40MTRMMTIgMTJsLTQuNDE0IDQuNDE0QTIgMiAwIDAgMCA3IDE3LjgyOFYyMiIgLz4KICA8cGF0aCBkPSJNNyAydjQuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0TDEyIDEybDQuNDE0LTQuNDE0QTIgMiAwIDAgMCAxNyA2LjE3MlYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hourglass\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hourglass: IconNode = [\n ['path', { d: 'M5 22h14' }],\n ['path', { d: 'M5 2h14' }],\n ['path', { d: 'M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22' }],\n ['path', { d: 'M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2' }],\n];\n\nexport default Hourglass;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOC42MiAxMy44QTIuMjUgMi4yNSAwIDEgMSAxMiAxMC44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6IiAvPgogIDxwYXRoIGQ9Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/house-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HouseHeart: IconNode = [\n [\n 'path',\n {\n d: 'M8.62 13.8A2.25 2.25 0 1 1 12 10.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\n },\n ],\n];\n\nexport default HouseHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house-plug\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJWOC45NjQiIC8+CiAgPHBhdGggZD0iTTE0IDEyVjguOTY0IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMmExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0ydi0yYTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik04LjUgMjFINWEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMmgtNWEyIDIgMCAwIDEtMi0ydi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/house-plug\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HousePlug: IconNode = [\n ['path', { d: 'M10 12V8.964' }],\n ['path', { d: 'M14 12V8.964' }],\n ['path', { d: 'M15 12a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2a1 1 0 0 1 1-1z' }],\n [\n 'path',\n {\n d: 'M8.5 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-2',\n },\n ],\n];\n\nexport default HousePlug;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMzUgMjFINWEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAuNzEtMS41M2w3LTZhMiAyIDAgMCAxIDIuNTggMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjIuMzUiIC8+CiAgPHBhdGggZD0iTTE0LjggMTIuNEExIDEgMCAwIDAgMTQgMTJoLTRhMSAxIDAgMCAwLTEgMXY4IiAvPgogIDxwYXRoIGQ9Ik0xNSAxOGg2IiAvPgogIDxwYXRoIGQ9Ik0xOCAxNXY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/house-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HousePlus: IconNode = [\n [\n 'path',\n {\n d: 'M12.35 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .71-1.53l7-6a2 2 0 0 1 2.58 0l7 6A2 2 0 0 1 21 10v2.35',\n },\n ],\n ['path', { d: 'M14.8 12.4A1 1 0 0 0 14 12h-4a1 1 0 0 0-1 1v8' }],\n ['path', { d: 'M15 18h6' }],\n ['path', { d: 'M18 15v6' }],\n];\n\nexport default HousePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house-wifi\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOS41IDEzLjg2NmE0IDQgMCAwIDEgNSAuMDEiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KICA8cGF0aCBkPSJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIgLz4KICA8cGF0aCBkPSJNNyAxMC43NTRhOCA4IDAgMCAxIDEwIDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/house-wifi\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HouseWifi: IconNode = [\n ['path', { d: 'M9.5 13.866a4 4 0 0 1 5 .01' }],\n ['path', { d: 'M12 17h.01' }],\n [\n 'path',\n {\n d: 'M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\n },\n ],\n ['path', { d: 'M7 10.754a8 8 0 0 1 10 0' }],\n];\n\nexport default HouseWifi;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjF2LThhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjgiIC8+CiAgPHBhdGggZD0iTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/house\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst House: IconNode = [\n ['path', { d: 'M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8' }],\n [\n 'path',\n {\n d: 'M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\n },\n ],\n];\n\nexport default House;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ice-cream-bowl\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTdjNSAwIDgtMi42OSA4LTZINGMwIDMuMzEgMyA2IDggNm0tNCA0aDhtLTQtM3YzTTUuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAiIC8+CiAgPHBhdGggZD0iTTEyLjE0IDExYTMuNSAzLjUgMCAxIDEgNi43MSAwIiAvPgogIDxwYXRoIGQ9Ik0xNS41IDYuNWEzLjUgMy41IDAgMSAwLTcgMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ice-cream-bowl\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IceCreamBowl: IconNode = [\n [\n 'path',\n { d: 'M12 17c5 0 8-2.69 8-6H4c0 3.31 3 6 8 6m-4 4h8m-4-3v3M5.14 11a3.5 3.5 0 1 1 6.71 0' },\n ],\n ['path', { d: 'M12.14 11a3.5 3.5 0 1 1 6.71 0' }],\n ['path', { d: 'M15.5 6.5a3.5 3.5 0 1 0-7 0' }],\n];\n\nexport default IceCreamBowl;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ice-cream-cone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxMSA0LjA4IDEwLjM1YTEgMSAwIDAgMCAxLjg0IDBMMTcgMTEiIC8+CiAgPHBhdGggZD0iTTE3IDdBNSA1IDAgMCAwIDcgNyIgLz4KICA8cGF0aCBkPSJNMTcgN2EyIDIgMCAwIDEgMCA0SDdhMiAyIDAgMCAxIDAtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ice-cream-cone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IceCreamCone: IconNode = [\n ['path', { d: 'm7 11 4.08 10.35a1 1 0 0 0 1.84 0L17 11' }],\n ['path', { d: 'M17 7A5 5 0 0 0 7 7' }],\n ['path', { d: 'M17 7a2 2 0 0 1 0 4H7a2 2 0 0 1 0-4' }],\n];\n\nexport default IceCreamCone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name id-card-lanyard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNSA4aC0zIiAvPgogIDxwYXRoIGQ9Im0xNSAyLTEgMmgzYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDMiIC8+CiAgPHBhdGggZD0iTTE2Ljg5OSAyMkE1IDUgMCAwIDAgNy4xIDIyIiAvPgogIDxwYXRoIGQ9Im05IDIgMyA2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTUiIHI9IjMiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/id-card-lanyard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IdCardLanyard: IconNode = [\n ['path', { d: 'M13.5 8h-3' }],\n ['path', { d: 'm15 2-1 2h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h3' }],\n ['path', { d: 'M16.899 22A5 5 0 0 0 7.1 22' }],\n ['path', { d: 'm9 2 3 6' }],\n ['circle', { cx: '12', cy: '15', r: '3' }],\n];\n\nexport default IdCardLanyard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name id-card\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTBoMiIgLz4KICA8cGF0aCBkPSJNMTYgMTRoMiIgLz4KICA8cGF0aCBkPSJNNi4xNyAxNWEzIDMgMCAwIDEgNS42NiAwIiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSIxMSIgcj0iMiIgLz4KICA8cmVjdCB4PSIyIiB5PSI1IiB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/id-card\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IdCard: IconNode = [\n ['path', { d: 'M16 10h2' }],\n ['path', { d: 'M16 14h2' }],\n ['path', { d: 'M6.17 15a3 3 0 0 1 5.66 0' }],\n ['circle', { cx: '9', cy: '11', r: '2' }],\n ['rect', { x: '2', y: '5', width: '20', height: '14', rx: '2' }],\n];\n\nexport default IdCard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxIiAvPgogIDxwYXRoIGQ9Im0xNCAxOSAzIDN2LTUuNSIgLz4KICA8cGF0aCBkPSJtMTcgMjIgMy0zIiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSI5IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/image-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImageDown: IconNode = [\n [\n 'path',\n {\n d: 'M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21',\n },\n ],\n ['path', { d: 'm14 19 3 3v-5.5' }],\n ['path', { d: 'm17 22 3-3' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n];\n\nexport default ImageDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOXYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNyIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIyMiIgeTE9IjUiIHkyPSI1IiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSI5IiByPSIyIiAvPgogIDxwYXRoIGQ9Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/image-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImageMinus: IconNode = [\n ['path', { d: 'M21 9v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7' }],\n ['line', { x1: '16', x2: '22', y1: '5', y2: '5' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21' }],\n];\n\nexport default ImageMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgogIDxwYXRoIGQ9Ik0xMC40MSAxMC40MWEyIDIgMCAxIDEtMi44My0yLjgzIiAvPgogIDxsaW5lIHgxPSIxMy41IiB4Mj0iNiIgeTE9IjEzLjUiIHkyPSIyMSIgLz4KICA8bGluZSB4MT0iMTgiIHgyPSIyMSIgeTE9IjEyIiB5Mj0iMTUiIC8+CiAgPHBhdGggZD0iTTMuNTkgMy41OUExLjk5IDEuOTkgMCAwIDAgMyA1djE0YTIgMiAwIDAgMCAyIDJoMTRjLjU1IDAgMS4wNTItLjIyIDEuNDEtLjU5IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNVY1YTIgMiAwIDAgMC0yLTJIOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImageOff: IconNode = [\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n ['path', { d: 'M10.41 10.41a2 2 0 1 1-2.83-2.83' }],\n ['line', { x1: '13.5', x2: '6', y1: '13.5', y2: '21' }],\n ['line', { x1: '18', x2: '21', y1: '12', y2: '15' }],\n ['path', { d: 'M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59' }],\n ['path', { d: 'M21 15V5a2 2 0 0 0-2-2H9' }],\n];\n\nexport default ImageOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiIgLz4KICA8cGF0aCBkPSJNMjEgMTIuMTdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYiIC8+CiAgPHBhdGggZD0ibTYgMjEgNS01IiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSI5IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/image-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImagePlay: IconNode = [\n [\n 'path',\n {\n d: 'M15 15.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z',\n },\n ],\n ['path', { d: 'M21 12.17V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6' }],\n ['path', { d: 'm6 21 5-5' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n];\n\nexport default ImagePlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNWg2IiAvPgogIDxwYXRoIGQ9Ik0xOSAydjYiIC8+CiAgPHBhdGggZD0iTTIxIDExLjVWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcuNSIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImagePlus: IconNode = [\n ['path', { d: 'M16 5h6' }],\n ['path', { d: 'M19 2v6' }],\n ['path', { d: 'M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n];\n\nexport default ImagePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxIiAvPgogIDxwYXRoIGQ9Im0xNCAxOS41IDMtMyAzIDMiIC8+CiAgPHBhdGggZD0iTTE3IDIydi01LjUiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/image-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImageUp: IconNode = [\n [\n 'path',\n {\n d: 'M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21',\n },\n ],\n ['path', { d: 'm14 19.5 3-3 3 3' }],\n ['path', { d: 'M17 22v-5.5' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n];\n\nexport default ImageUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Image: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21' }],\n];\n\nexport default Image;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-upscale\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2g1djUiIC8+CiAgPHBhdGggZD0iTTE3IDIxaDJhMiAyIDAgMCAwIDItMiIgLz4KICA8cGF0aCBkPSJNMjEgMTJ2MyIgLz4KICA8cGF0aCBkPSJtMjEgMy01IDUiIC8+CiAgPHBhdGggZD0iTTMgN1Y1YTIgMiAwIDAgMSAyLTIiIC8+CiAgPHBhdGggZD0ibTUgMjEgNC4xNDQtNC4xNDRhMS4yMSAxLjIxIDAgMCAxIDEuNzEyIDBMMTMgMTkiIC8+CiAgPHBhdGggZD0iTTkgM2gzIiAvPgogIDxyZWN0IHg9IjMiIHk9IjExIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/image-upscale\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImageUpscale: IconNode = [\n ['path', { d: 'M16 3h5v5' }],\n ['path', { d: 'M17 21h2a2 2 0 0 0 2-2' }],\n ['path', { d: 'M21 12v3' }],\n ['path', { d: 'm21 3-5 5' }],\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2' }],\n ['path', { d: 'm5 21 4.144-4.144a1.21 1.21 0 0 1 1.712 0L13 19' }],\n ['path', { d: 'M9 3h3' }],\n ['rect', { x: '3', y: '11', width: '10', height: '10', rx: '1' }],\n];\n\nexport default ImageUpscale;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name images\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgMTEtMS4yOTYtMS4yOTZhMi40IDIuNCAwIDAgMC0zLjQwOCAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik00IDhhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTIiIC8+CiAgPGNpcmNsZSBjeD0iMTMiIGN5PSI3IiByPSIxIiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPHJlY3QgeD0iOCIgeT0iMiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/images\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Images: IconNode = [\n ['path', { d: 'm22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16' }],\n ['path', { d: 'M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2' }],\n ['circle', { cx: '13', cy: '7', r: '1', fill: 'currentColor' }],\n ['rect', { x: '8', y: '2', width: '14', height: '14', rx: '2' }],\n];\n\nexport default Images;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name import\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxMiIgLz4KICA8cGF0aCBkPSJtOCAxMSA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik04IDVINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/import\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Import: IconNode = [\n ['path', { d: 'M12 3v12' }],\n ['path', { d: 'm8 11 4 4 4-4' }],\n ['path', { d: 'M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4' }],\n];\n\nexport default Import;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name inbox\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWxpbmUgcG9pbnRzPSIyMiAxMiAxNiAxMiAxNCAxNSAxMCAxNSA4IDEyIDIgMTIiIC8+CiAgPHBhdGggZD0iTTUuNDUgNS4xMSAyIDEydjZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi02bC0zLjQ1LTYuODlBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/inbox\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Inbox: IconNode = [\n ['polyline', { points: '22 12 16 12 14 15 10 15 8 12 2 12' }],\n [\n 'path',\n {\n d: 'M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z',\n },\n ],\n];\n\nexport default Inbox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name indian-rupee\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAzaDEyIiAvPgogIDxwYXRoIGQ9Ik02IDhoMTIiIC8+CiAgPHBhdGggZD0ibTYgMTMgOC41IDgiIC8+CiAgPHBhdGggZD0iTTYgMTNoMyIgLz4KICA8cGF0aCBkPSJNOSAxM2M2LjY2NyAwIDYuNjY3LTEwIDAtMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/indian-rupee\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IndianRupee: IconNode = [\n ['path', { d: 'M6 3h12' }],\n ['path', { d: 'M6 8h12' }],\n ['path', { d: 'm6 13 8.5 8' }],\n ['path', { d: 'M6 13h3' }],\n ['path', { d: 'M9 13c6.667 0 6.667-10 0-10' }],\n];\n\nexport default IndianRupee;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name infinity\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxNmM1IDAgNy04IDEyLThhNCA0IDAgMCAxIDAgOGMtNSAwLTctOC0xMi04YTQgNCAwIDEgMCAwIDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/infinity\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Infinity: IconNode = [\n ['path', { d: 'M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8' }],\n];\n\nexport default Infinity;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name info\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMTZ2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDhoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/info\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Info: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 16v-4' }],\n ['path', { d: 'M12 8h.01' }],\n];\n\nexport default Info;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name inspection-panel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDdoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNyA3aC4wMSIgLz4KICA8cGF0aCBkPSJNNyAxN2guMDEiIC8+CiAgPHBhdGggZD0iTTE3IDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/inspection-panel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst InspectionPanel: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 7h.01' }],\n ['path', { d: 'M17 7h.01' }],\n ['path', { d: 'M7 17h.01' }],\n ['path', { d: 'M17 17h.01' }],\n];\n\nexport default InspectionPanel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name instagram\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHg9IjIiIHk9IjIiIHJ4PSI1IiByeT0iNSIgLz4KICA8cGF0aCBkPSJNMTYgMTEuMzdBNCA0IDAgMSAxIDEyLjYzIDggNCA0IDAgMCAxIDE2IDExLjM3eiIgLz4KICA8bGluZSB4MT0iMTcuNSIgeDI9IjE3LjUxIiB5MT0iNi41IiB5Mj0iNi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/instagram\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=instagram instead. This icon will be removed in v1.0\n */\nconst Instagram: IconNode = [\n ['rect', { width: '20', height: '20', x: '2', y: '2', rx: '5', ry: '5' }],\n ['path', { d: 'M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z' }],\n ['line', { x1: '17.5', x2: '17.51', y1: '6.5', y2: '6.5' }],\n];\n\nexport default Instagram;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name iteration-ccw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTQgNCA0LTQgNCIgLz4KICA8cGF0aCBkPSJNMjAgMTBhOCA4IDAgMSAwLTggOGg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/iteration-ccw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IterationCcw: IconNode = [\n ['path', { d: 'm16 14 4 4-4 4' }],\n ['path', { d: 'M20 10a8 8 0 1 0-8 8h8' }],\n];\n\nexport default IterationCcw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name italic\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTkiIHgyPSIxMCIgeTE9IjQiIHkyPSI0IiAvPgogIDxsaW5lIHgxPSIxNCIgeDI9IjUiIHkxPSIyMCIgeTI9IjIwIiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjkiIHkxPSI0IiB5Mj0iMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/italic\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Italic: IconNode = [\n ['line', { x1: '19', x2: '10', y1: '4', y2: '4' }],\n ['line', { x1: '14', x2: '5', y1: '20', y2: '20' }],\n ['line', { x1: '15', x2: '9', y1: '4', y2: '20' }],\n];\n\nexport default Italic;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name iteration-cw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGE4IDggMCAxIDEgOCA4SDQiIC8+CiAgPHBhdGggZD0ibTggMjItNC00IDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/iteration-cw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IterationCw: IconNode = [\n ['path', { d: 'M4 10a8 8 0 1 1 8 8H4' }],\n ['path', { d: 'm8 22-4-4 4-4' }],\n];\n\nexport default IterationCw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name japanese-yen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOS41VjIxbTAtMTEuNUw2IDNtNiA2LjVMMTggMyIgLz4KICA8cGF0aCBkPSJNNiAxNWgxMiIgLz4KICA8cGF0aCBkPSJNNiAxMWgxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/japanese-yen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst JapaneseYen: IconNode = [\n ['path', { d: 'M12 9.5V21m0-11.5L6 3m6 6.5L18 3' }],\n ['path', { d: 'M6 15h12' }],\n ['path', { d: 'M6 11h12' }],\n];\n\nexport default JapaneseYen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name joystick\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTJaIiAvPgogIDxwYXRoIGQ9Ik02IDE1di0yIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNVY5IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iNiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/joystick\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Joystick: IconNode = [\n ['path', { d: 'M21 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2Z' }],\n ['path', { d: 'M6 15v-2' }],\n ['path', { d: 'M12 15V9' }],\n ['circle', { cx: '12', cy: '6', r: '3' }],\n];\n\nexport default Joystick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name kanban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAzdjE0IiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjgiIC8+CiAgPHBhdGggZD0iTTE5IDN2MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/kanban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Kanban: IconNode = [\n ['path', { d: 'M5 3v14' }],\n ['path', { d: 'M12 3v8' }],\n ['path', { d: 'M19 3v18' }],\n];\n\nexport default Kanban;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name kayak\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTdhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMCAyLTJ6IiAvPgogIDxwYXRoIGQ9Ik0yMC45NyAzLjYxYS40NS40NSAwIDAgMC0uNTgtLjU4QzEwLjIgNi42IDYuNiAxMC4yIDMuMDMgMjAuMzlhLjQ1LjQ1IDAgMCAwIC41OC41OEMxMy44IDE3LjQgMTcuNCAxMy44IDIwLjk3IDMuNjEiIC8+CiAgPHBhdGggZD0ibTYuNzA3IDYuNzA3IDEwLjU4NiAxMC41ODYiIC8+CiAgPHBhdGggZD0iTTcgNWEyIDIgMCAxIDAtMiAyaDFhMSAxIDAgMCAwIDEtMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/kayak\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Kayak: IconNode = [\n ['path', { d: 'M18 17a1 1 0 0 0-1 1v1a2 2 0 1 0 2-2z' }],\n [\n 'path',\n {\n d: 'M20.97 3.61a.45.45 0 0 0-.58-.58C10.2 6.6 6.6 10.2 3.03 20.39a.45.45 0 0 0 .58.58C13.8 17.4 17.4 13.8 20.97 3.61',\n },\n ],\n ['path', { d: 'm6.707 6.707 10.586 10.586' }],\n ['path', { d: 'M7 5a2 2 0 1 0-2 2h1a1 1 0 0 0 1-1z' }],\n];\n\nexport default Kayak;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name key-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41ODYgMTcuNDE0QTIgMiAwIDAgMCAyIDE4LjgyOFYyMWExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaC4xNzJhMiAyIDAgMCAwIDEuNDE0LS41ODZsLjgxNC0uODE0YTYuNSA2LjUgMCAxIDAtNC00eiIgLz4KICA8Y2lyY2xlIGN4PSIxNi41IiBjeT0iNy41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/key-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst KeyRound: IconNode = [\n [\n 'path',\n {\n d: 'M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z',\n },\n ],\n ['circle', { cx: '16.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n];\n\nexport default KeyRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name key-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNCAyLjdhMi41IDIuNSAwIDAgMSAzLjQgMGw1LjUgNS41YTIuNSAyLjUgMCAwIDEgMCAzLjRsLTMuNyAzLjdhMi41IDIuNSAwIDAgMS0zLjQgMEw4LjcgOS44YTIuNSAyLjUgMCAwIDEgMC0zLjR6IiAvPgogIDxwYXRoIGQ9Im0xNCA3IDMgMyIgLz4KICA8cGF0aCBkPSJtOS40IDEwLjYtNi44MTQgNi44MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/key-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst KeySquare: IconNode = [\n [\n 'path',\n {\n d: 'M12.4 2.7a2.5 2.5 0 0 1 3.4 0l5.5 5.5a2.5 2.5 0 0 1 0 3.4l-3.7 3.7a2.5 2.5 0 0 1-3.4 0L8.7 9.8a2.5 2.5 0 0 1 0-3.4z',\n },\n ],\n ['path', { d: 'm14 7 3 3' }],\n [\n 'path',\n {\n d: 'm9.4 10.6-6.814 6.814A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814',\n },\n ],\n];\n\nexport default KeySquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuNSA3LjUgMi4zIDIuM2ExIDEgMCAwIDAgMS40IDBsMi4xLTIuMWExIDEgMCAwIDAgMC0xLjRMMTkgNCIgLz4KICA8cGF0aCBkPSJtMjEgMi05LjYgOS42IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjE1LjUiIHI9IjUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Key: IconNode = [\n ['path', { d: 'm15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4' }],\n ['path', { d: 'm21 2-9.6 9.6' }],\n ['circle', { cx: '7.5', cy: '15.5', r: '5.5' }],\n];\n\nexport default Key;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name keyboard-music\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik02IDhoNCIgLz4KICA8cGF0aCBkPSJNMTQgOGguMDEiIC8+CiAgPHBhdGggZD0iTTE4IDhoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDIwIiAvPgogIDxwYXRoIGQ9Ik02IDEydjQiIC8+CiAgPHBhdGggZD0iTTEwIDEydjQiIC8+CiAgPHBhdGggZD0iTTE0IDEydjQiIC8+CiAgPHBhdGggZD0iTTE4IDEydjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/keyboard-music\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst KeyboardMusic: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M6 8h4' }],\n ['path', { d: 'M14 8h.01' }],\n ['path', { d: 'M18 8h.01' }],\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'M6 12v4' }],\n ['path', { d: 'M10 12v4' }],\n ['path', { d: 'M14 12v4' }],\n ['path', { d: 'M18 12v4' }],\n];\n\nexport default KeyboardMusic;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name keyboard-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNIDIwIDQgQTIgMiAwIDAgMSAyMiA2IiAvPgogIDxwYXRoIGQ9Ik0gMjIgNiBMIDIyIDE2LjQxIiAvPgogIDxwYXRoIGQ9Ik0gNyAxNiBMIDE2IDE2IiAvPgogIDxwYXRoIGQ9Ik0gOS42OSA0IEwgMjAgNCIgLz4KICA8cGF0aCBkPSJNMTQgOGguMDEiIC8+CiAgPHBhdGggZD0iTTE4IDhoLjAxIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTIiIC8+CiAgPHBhdGggZD0iTTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/keyboard-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst KeyboardOff: IconNode = [\n ['path', { d: 'M 20 4 A2 2 0 0 1 22 6' }],\n ['path', { d: 'M 22 6 L 22 16.41' }],\n ['path', { d: 'M 7 16 L 16 16' }],\n ['path', { d: 'M 9.69 4 L 20 4' }],\n ['path', { d: 'M14 8h.01' }],\n ['path', { d: 'M18 8h.01' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2' }],\n ['path', { d: 'M6 8h.01' }],\n ['path', { d: 'M8 12h.01' }],\n];\n\nexport default KeyboardOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name keyboard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTQgOGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTggOGguMDEiIC8+CiAgPHBhdGggZD0iTTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMTZoMTAiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNiIgeD0iMiIgeT0iNCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/keyboard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Keyboard: IconNode = [\n ['path', { d: 'M10 8h.01' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M14 8h.01' }],\n ['path', { d: 'M16 12h.01' }],\n ['path', { d: 'M18 8h.01' }],\n ['path', { d: 'M6 8h.01' }],\n ['path', { d: 'M7 16h10' }],\n ['path', { d: 'M8 12h.01' }],\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n];\n\nexport default Keyboard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp-ceiling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY1IiAvPgogIDxwYXRoIGQ9Ik0xNC44MjkgMTUuOTk4YTMgMyAwIDEgMS01LjY1OCAwIiAvPgogIDxwYXRoIGQ9Ik0yMC45MiAxNC42MDZBMSAxIDAgMCAxIDIwIDE2SDRhMSAxIDAgMCAxLS45Mi0xLjM5NGwzLTdBMSAxIDAgMCAxIDcgN2gxMGExIDEgMCAwIDEgLjkyLjYwNnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lamp-ceiling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LampCeiling: IconNode = [\n ['path', { d: 'M12 2v5' }],\n ['path', { d: 'M14.829 15.998a3 3 0 1 1-5.658 0' }],\n [\n 'path',\n {\n d: 'M20.92 14.606A1 1 0 0 1 20 16H4a1 1 0 0 1-.92-1.394l3-7A1 1 0 0 1 7 7h10a1 1 0 0 1 .92.606z',\n },\n ],\n];\n\nexport default LampCeiling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp-desk\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjkzIDIuMjkzYTEgMSAwIDAgMSAxLjQxNCAwbDIuNSAyLjUgNS45OTQgMS4yMjdhMSAxIDAgMCAxIC41MDYgMS42ODdsLTcgN2ExIDEgMCAwIDEtMS42ODctLjUwNmwtMS4yMjctNS45OTQtMi41LTIuNWExIDEgMCAwIDEgMC0xLjQxNHoiIC8+CiAgPHBhdGggZD0ibTE0LjIwNyA0Ljc5My0zLjQxNCAzLjQxNCIgLz4KICA8cGF0aCBkPSJNMyAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xeiIgLz4KICA8cGF0aCBkPSJtOS4wODYgNi41LTQuNzkzIDQuNzkzYTEgMSAwIDAgMC0uMTggMS4xN0w3IDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lamp-desk\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LampDesk: IconNode = [\n [\n 'path',\n {\n d: 'M10.293 2.293a1 1 0 0 1 1.414 0l2.5 2.5 5.994 1.227a1 1 0 0 1 .506 1.687l-7 7a1 1 0 0 1-1.687-.506l-1.227-5.994-2.5-2.5a1 1 0 0 1 0-1.414z',\n },\n ],\n ['path', { d: 'm14.207 4.793-3.414 3.414' }],\n ['path', { d: 'M3 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z' }],\n ['path', { d: 'm9.086 6.5-4.793 4.793a1 1 0 0 0-.18 1.17L7 18' }],\n];\n\nexport default LampDesk;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp-floor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTB2MTIiIC8+CiAgPHBhdGggZD0iTTE3LjkyOSA3LjYyOUExIDEgMCAwIDEgMTcgOUg3YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgOSAyaDZhMSAxIDAgMCAxIC45MjguNjI5eiIgLz4KICA8cGF0aCBkPSJNOSAyMmg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lamp-floor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LampFloor: IconNode = [\n ['path', { d: 'M12 10v12' }],\n [\n 'path',\n {\n d: 'M17.929 7.629A1 1 0 0 1 17 9H7a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 9 2h6a1 1 0 0 1 .928.629z',\n },\n ],\n ['path', { d: 'M9 22h6' }],\n];\n\nexport default LampFloor;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp-wall-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuOTI5IDE4LjYyOUExIDEgMCAwIDEgMTkgMjBIOWExIDEgMCAwIDEtLjkyOC0xLjM3MWwyLTVBMSAxIDAgMCAxIDExIDEzaDZhMSAxIDAgMCAxIC45MjguNjI5eiIgLz4KICA8cGF0aCBkPSJNNiAzYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik04IDZoNGEyIDIgMCAwIDEgMiAydjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lamp-wall-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LampWallDown: IconNode = [\n [\n 'path',\n {\n d: 'M19.929 18.629A1 1 0 0 1 19 20H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 13h6a1 1 0 0 1 .928.629z',\n },\n ],\n ['path', { d: 'M6 3a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z' }],\n ['path', { d: 'M8 6h4a2 2 0 0 1 2 2v5' }],\n];\n\nexport default LampWallDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp-wall-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuOTI5IDkuNjI5QTEgMSAwIDAgMSAxOSAxMUg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgNGg2YTEgMSAwIDAgMSAuOTI4LjYyOXoiIC8+CiAgPHBhdGggZD0iTTYgMTVhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik04IDE4aDRhMiAyIDAgMCAwIDItMnYtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/lamp-wall-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LampWallUp: IconNode = [\n [\n 'path',\n {\n d: 'M19.929 9.629A1 1 0 0 1 19 11H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 4h6a1 1 0 0 1 .928.629z',\n },\n ],\n ['path', { d: 'M6 15a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z' }],\n ['path', { d: 'M8 18h4a2 2 0 0 0 2-2v-5' }],\n];\n\nexport default LampWallUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJ2NiIgLz4KICA8cGF0aCBkPSJNNC4wNzcgMTAuNjE1QTEgMSAwIDAgMCA1IDEyaDE0YTEgMSAwIDAgMCAuOTIzLTEuMzg1bC0zLjA3Ny03LjM4NEEyIDIgMCAwIDAgMTUgMkg5YTIgMiAwIDAgMC0xLjg0NiAxLjIzWiIgLz4KICA8cGF0aCBkPSJNOCAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/lamp\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lamp: IconNode = [\n ['path', { d: 'M12 12v6' }],\n [\n 'path',\n {\n d: 'M4.077 10.615A1 1 0 0 0 5 12h14a1 1 0 0 0 .923-1.385l-3.077-7.384A2 2 0 0 0 15 2H9a2 2 0 0 0-1.846 1.23Z',\n },\n ],\n ['path', { d: 'M8 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1z' }],\n];\n\nexport default Lamp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name landmark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTh2LTciIC8+CiAgPHBhdGggZD0iTTExLjEyIDIuMTk4YTIgMiAwIDAgMSAxLjc2LjAwNmw3Ljg2NiAzLjg0N2MuNDc2LjIzMy4zMS45NDktLjIyLjk0OUgzLjQ3NGMtLjUzIDAtLjY5NS0uNzE2LS4yMi0uOTQ5eiIgLz4KICA8cGF0aCBkPSJNMTQgMTh2LTciIC8+CiAgPHBhdGggZD0iTTE4IDE4di03IiAvPgogIDxwYXRoIGQ9Ik0zIDIyaDE4IiAvPgogIDxwYXRoIGQ9Ik02IDE4di03IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/landmark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Landmark: IconNode = [\n ['path', { d: 'M10 18v-7' }],\n [\n 'path',\n {\n d: 'M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z',\n },\n ],\n ['path', { d: 'M14 18v-7' }],\n ['path', { d: 'M18 18v-7' }],\n ['path', { d: 'M3 22h18' }],\n ['path', { d: 'M6 18v-7' }],\n];\n\nexport default Landmark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name land-plot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgOCA2LTMtNi0zdjEwIiAvPgogIDxwYXRoIGQ9Im04IDExLjk5LTUuNSAzLjE0YTEgMSAwIDAgMCAwIDEuNzRsOC41IDQuODZhMiAyIDAgMCAwIDIgMGw4LjUtNC44NmExIDEgMCAwIDAgMC0xLjc0TDE2IDEyIiAvPgogIDxwYXRoIGQ9Im02LjQ5IDEyLjg1IDExLjAyIDYuMyIgLz4KICA8cGF0aCBkPSJNMTcuNTEgMTIuODUgNi41IDE5LjE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/land-plot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LandPlot: IconNode = [\n ['path', { d: 'm12 8 6-3-6-3v10' }],\n [\n 'path',\n {\n d: 'm8 11.99-5.5 3.14a1 1 0 0 0 0 1.74l8.5 4.86a2 2 0 0 0 2 0l8.5-4.86a1 1 0 0 0 0-1.74L16 12',\n },\n ],\n ['path', { d: 'm6.49 12.85 11.02 6.3' }],\n ['path', { d: 'M17.51 12.85 6.5 19.15' }],\n];\n\nexport default LandPlot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name languages\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNSA4IDYgNiIgLz4KICA8cGF0aCBkPSJtNCAxNCA2LTYgMi0zIiAvPgogIDxwYXRoIGQ9Ik0yIDVoMTIiIC8+CiAgPHBhdGggZD0iTTcgMmgxIiAvPgogIDxwYXRoIGQ9Im0yMiAyMi01LTEwLTUgMTAiIC8+CiAgPHBhdGggZD0iTTE0IDE4aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/languages\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Languages: IconNode = [\n ['path', { d: 'm5 8 6 6' }],\n ['path', { d: 'm4 14 6-6 2-3' }],\n ['path', { d: 'M2 5h12' }],\n ['path', { d: 'M7 2h1' }],\n ['path', { d: 'm22 22-5-10-5 10' }],\n ['path', { d: 'M14 18h6' }],\n];\n\nexport default Languages;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name laptop-minimal-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGgyMCIgLz4KICA8cGF0aCBkPSJtOSAxMCAyIDIgNC00IiAvPgogIDxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/laptop-minimal-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LaptopMinimalCheck: IconNode = [\n ['path', { d: 'M2 20h20' }],\n ['path', { d: 'm9 10 2 2 4-4' }],\n ['rect', { x: '3', y: '4', width: '18', height: '12', rx: '2' }],\n];\n\nexport default LaptopMinimalCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name laptop-minimal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIHg9IjMiIHk9IjQiIHJ4PSIyIiByeT0iMiIgLz4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMjAiIHkyPSIyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/laptop-minimal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LaptopMinimal: IconNode = [\n ['rect', { width: '18', height: '12', x: '3', y: '4', rx: '2', ry: '2' }],\n ['line', { x1: '2', x2: '22', y1: '20', y2: '20' }],\n];\n\nexport default LaptopMinimal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name laptop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNWEyIDIgMCAwIDEgMiAydjguNTI2YTIgMiAwIDAgMCAuMjEyLjg5N2wxLjA2OCAyLjEyN2ExIDEgMCAwIDEtLjkgMS40NUgzLjYyYTEgMSAwIDAgMS0uOS0xLjQ1bDEuMDY4LTIuMTI3QTIgMiAwIDAgMCA0IDE1LjUyNlY3YTIgMiAwIDAgMSAyLTJ6IiAvPgogIDxwYXRoIGQ9Ik0yMC4wNTQgMTUuOTg3SDMuOTQ2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/laptop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Laptop: IconNode = [\n [\n 'path',\n {\n d: 'M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'M20.054 15.987H3.946' }],\n];\n\nexport default Laptop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lasso-select\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAyMmE1IDUgMCAwIDEtMi00IiAvPgogIDxwYXRoIGQ9Ik03IDE2LjkzYy45Ni40MyAxLjk2Ljc0IDIuOTkuOTEiIC8+CiAgPHBhdGggZD0iTTMuMzQgMTRBNi44IDYuOCAwIDAgMSAyIDEwYzAtNC40MiA0LjQ4LTggMTAtOHMxMCAzLjU4IDEwIDhhNy4xOSA3LjE5IDAgMCAxLS4zMyAyIiAvPgogIDxwYXRoIGQ9Ik01IDE4YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHoiIC8+CiAgPHBhdGggZD0iTTE0LjMzIDIyaC0uMDlhLjM1LjM1IDAgMCAxLS4yNC0uMzJ2LTEwYS4zNC4zNCAwIDAgMSAuMzMtLjM0Yy4wOCAwIC4xNS4wMy4yMS4wOGw3LjM0IDZhLjMzLjMzIDAgMCAxLS4yMS41OWgtNC40OWwtMi41NyAzLjg1YS4zNS4zNSAwIDAgMS0uMjguMTR6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lasso-select\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LassoSelect: IconNode = [\n ['path', { d: 'M7 22a5 5 0 0 1-2-4' }],\n ['path', { d: 'M7 16.93c.96.43 1.96.74 2.99.91' }],\n [\n 'path',\n { d: 'M3.34 14A6.8 6.8 0 0 1 2 10c0-4.42 4.48-8 10-8s10 3.58 10 8a7.19 7.19 0 0 1-.33 2' },\n ],\n ['path', { d: 'M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z' }],\n [\n 'path',\n {\n d: 'M14.33 22h-.09a.35.35 0 0 1-.24-.32v-10a.34.34 0 0 1 .33-.34c.08 0 .15.03.21.08l7.34 6a.33.33 0 0 1-.21.59h-4.49l-2.57 3.85a.35.35 0 0 1-.28.14z',\n },\n ],\n];\n\nexport default LassoSelect;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lasso\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy43MDQgMTQuNDY3YTEwIDggMCAxIDEgMy4xMTUgMi4zNzUiIC8+CiAgPHBhdGggZD0iTTcgMjJhNSA1IDAgMCAxLTItMy45OTQiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE2IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lasso\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lasso: IconNode = [\n ['path', { d: 'M3.704 14.467a10 8 0 1 1 3.115 2.375' }],\n ['path', { d: 'M7 22a5 5 0 0 1-2-3.994' }],\n ['circle', { cx: '5', cy: '16', r: '2' }],\n];\n\nexport default Lasso;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name laugh\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTggMTNhNiA2IDAgMCAxLTYgNSA2IDYgMCAwIDEtNi01aDEyWiIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjkuMDEiIHkxPSI5IiB5Mj0iOSIgLz4KICA8bGluZSB4MT0iMTUiIHgyPSIxNS4wMSIgeTE9IjkiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/laugh\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Laugh: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z' }],\n ['line', { x1: '9', x2: '9.01', y1: '9', y2: '9' }],\n ['line', { x1: '15', x2: '15.01', y1: '9', y2: '9' }],\n];\n\nexport default Laugh;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layers-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTMuNzRhMiAyIDAgMCAxLTIgMEwyLjUgOC44N2ExIDEgMCAwIDEgMC0xLjc0TDExIDIuMjZhMiAyIDAgMCAxIDIgMGw4LjUgNC44N2ExIDEgMCAwIDEgMCAxLjc0eiIgLz4KICA8cGF0aCBkPSJtMjAgMTQuMjg1IDEuNS44NDVhMSAxIDAgMCAxIDAgMS43NEwxMyAyMS43NGEyIDIgMCAwIDEtMiAwbC04LjUtNC44N2ExIDEgMCAwIDEgMC0xLjc0bDEuNS0uODQ1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/layers-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Layers2: IconNode = [\n [\n 'path',\n {\n d: 'M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z',\n },\n ],\n [\n 'path',\n {\n d: 'm20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845',\n },\n ],\n];\n\nexport default Layers2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layers-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44MzF6IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN2g2IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNHY2IiAvPgogIDxwYXRoIGQ9Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4IiAvPgogIDxwYXRoIGQ9Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGwyLjExNi0uOTYyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/layers-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayersPlus: IconNode = [\n [\n 'path',\n {\n d: 'M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 .83.18 2 2 0 0 0 .83-.18l8.58-3.9a1 1 0 0 0 0-1.831z',\n },\n ],\n ['path', { d: 'M16 17h6' }],\n ['path', { d: 'M19 14v6' }],\n ['path', { d: 'M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 .825.178' }],\n ['path', { d: 'M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l2.116-.962' }],\n];\n\nexport default LayersPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layers\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAxLjY2IDBsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44M3oiIC8+CiAgPHBhdGggZD0iTTIgMTJhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxMiIgLz4KICA8cGF0aCBkPSJNMiAxN2ExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDE3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/layers\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Layers: IconNode = [\n [\n 'path',\n {\n d: 'M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z',\n },\n ],\n ['path', { d: 'M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12' }],\n ['path', { d: 'M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17' }],\n];\n\nexport default Layers;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-dashboard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI5IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI1IiB4PSIxNCIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iOSIgeD0iMTQiIHk9IjEyIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI1IiB4PSIzIiB5PSIxNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-dashboard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutDashboard: IconNode = [\n ['rect', { width: '7', height: '9', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '5', x: '14', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '9', x: '14', y: '12', rx: '1' }],\n ['rect', { width: '7', height: '5', x: '3', y: '16', rx: '1' }],\n];\n\nexport default LayoutDashboard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-grid\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIxNCIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iNyIgeD0iMTQiIHk9IjE0IiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-grid\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutGrid: IconNode = [\n ['rect', { width: '7', height: '7', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '14', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '14', y: '14', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '3', y: '14', rx: '1' }],\n];\n\nexport default LayoutGrid;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-list\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIxNCIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTE0IDRoNyIgLz4KICA8cGF0aCBkPSJNMTQgOWg3IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNWg3IiAvPgogIDxwYXRoIGQ9Ik0xNCAyMGg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/layout-list\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutList: IconNode = [\n ['rect', { width: '7', height: '7', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '3', y: '14', rx: '1' }],\n ['path', { d: 'M14 4h7' }],\n ['path', { d: 'M14 9h7' }],\n ['path', { d: 'M14 15h7' }],\n ['path', { d: 'M14 20h7' }],\n];\n\nexport default LayoutList;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-panel-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxOCIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iNyIgeD0iMTQiIHk9IjMiIHJ4PSIxIiAvPgogIDxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjciIHg9IjE0IiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-panel-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutPanelLeft: IconNode = [\n ['rect', { width: '7', height: '18', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '14', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '14', y: '14', rx: '1' }],\n];\n\nexport default LayoutPanelLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-panel-top\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iNyIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iNyIgeD0iMyIgeT0iMTQiIHJ4PSIxIiAvPgogIDxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjciIHg9IjE0IiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-panel-top\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutPanelTop: IconNode = [\n ['rect', { width: '18', height: '7', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '3', y: '14', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '14', y: '14', rx: '1' }],\n];\n\nexport default LayoutPanelTop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-template\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iNyIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjkiIGhlaWdodD0iNyIgeD0iMyIgeT0iMTQiIHJ4PSIxIiAvPgogIDxyZWN0IHdpZHRoPSI1IiBoZWlnaHQ9IjciIHg9IjE2IiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-template\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutTemplate: IconNode = [\n ['rect', { width: '18', height: '7', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '9', height: '7', x: '3', y: '14', rx: '1' }],\n ['rect', { width: '5', height: '7', x: '16', y: '14', rx: '1' }],\n];\n\nexport default LayoutTemplate;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name leaf\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjBBNyA3IDAgMCAxIDkuOCA2LjFDMTUuNSA1IDE3IDQuNDggMTkgMmMxIDIgMiA0LjE4IDIgOCAwIDUuNS00Ljc4IDEwLTEwIDEwWiIgLz4KICA8cGF0aCBkPSJNMiAyMWMwLTMgMS44NS01LjM2IDUuMDgtNkM5LjUgMTQuNTIgMTIgMTMgMTMgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/leaf\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Leaf: IconNode = [\n [\n 'path',\n { d: 'M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z' },\n ],\n ['path', { d: 'M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12' }],\n];\n\nexport default Leaf;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name leafy-green\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMmMxLjI1LS45ODcgMi4yNy0xLjk3NSAzLjktMi4yYTUuNTYgNS41NiAwIDAgMSAzLjggMS41IDQgNCAwIDAgMCA2LjE4Ny0yLjM1MyAzLjUgMy41IDAgMCAwIDMuNjktNS4xMTZBMy41IDMuNSAwIDAgMCAyMC45NSA4IDMuNSAzLjUgMCAxIDAgMTYgMy4wNWEzLjUgMy41IDAgMCAwLTUuODMxIDEuMzczIDMuNSAzLjUgMCAwIDAtNS4xMTYgMy42OSA0IDQgMCAwIDAtMi4zNDggNi4xNTVDMy40OTkgMTUuNDIgNC40MDkgMTYuNzEyIDQuMiAxOC4xIDMuOTI2IDE5Ljc0MyAzLjAxNCAyMC43MzIgMiAyMiIgLz4KICA8cGF0aCBkPSJNMiAyMiAxNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/leafy-green\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LeafyGreen: IconNode = [\n [\n 'path',\n {\n d: 'M2 22c1.25-.987 2.27-1.975 3.9-2.2a5.56 5.56 0 0 1 3.8 1.5 4 4 0 0 0 6.187-2.353 3.5 3.5 0 0 0 3.69-5.116A3.5 3.5 0 0 0 20.95 8 3.5 3.5 0 1 0 16 3.05a3.5 3.5 0 0 0-5.831 1.373 3.5 3.5 0 0 0-5.116 3.69 4 4 0 0 0-2.348 6.155C3.499 15.42 4.409 16.712 4.2 18.1 3.926 19.743 3.014 20.732 2 22',\n },\n ],\n ['path', { d: 'M2 22 17 7' }],\n];\n\nexport default LeafyGreen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lectern\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMiIC8+CiAgPHBhdGggZD0iTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zIiAvPgogIDxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjEyIiB4PSI4IiB5PSIxMCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lectern\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lectern: IconNode = [\n [\n 'path',\n {\n d: 'M16 12h3a2 2 0 0 0 1.902-1.38l1.056-3.333A1 1 0 0 0 21 6H3a1 1 0 0 0-.958 1.287l1.056 3.334A2 2 0 0 0 5 12h3',\n },\n ],\n ['path', { d: 'M18 6V3a1 1 0 0 0-1-1h-3' }],\n ['rect', { width: '8', height: '12', x: '8', y: '10', rx: '1' }],\n];\n\nexport default Lectern;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name library-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSIxOCIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTcgM3YxOCIgLz4KICA8cGF0aCBkPSJNMjAuNCAxOC45Yy4yLjUtLjEgMS4xLS42IDEuM2wtMS45LjdjLS41LjItMS4xLS4xLTEuMy0uNkwxMS4xIDUuMWMtLjItLjUuMS0xLjEuNi0xLjNsMS45LS43Yy41LS4yIDEuMS4xIDEuMy42WiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/library-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LibraryBig: IconNode = [\n ['rect', { width: '8', height: '18', x: '3', y: '3', rx: '1' }],\n ['path', { d: 'M7 3v18' }],\n [\n 'path',\n {\n d: 'M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z',\n },\n ],\n];\n\nexport default LibraryBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name library\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgNiA0IDE0IiAvPgogIDxwYXRoIGQ9Ik0xMiA2djE0IiAvPgogIDxwYXRoIGQ9Ik04IDh2MTIiIC8+CiAgPHBhdGggZD0iTTQgNHYxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/library\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Library: IconNode = [\n ['path', { d: 'm16 6 4 14' }],\n ['path', { d: 'M12 6v14' }],\n ['path', { d: 'M8 8v12' }],\n ['path', { d: 'M4 4v16' }],\n];\n\nexport default Library;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name life-buoy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtNC45MyA0LjkzIDQuMjQgNC4yNCIgLz4KICA8cGF0aCBkPSJtMTQuODMgOS4xNyA0LjI0LTQuMjQiIC8+CiAgPHBhdGggZD0ibTE0LjgzIDE0LjgzIDQuMjQgNC4yNCIgLz4KICA8cGF0aCBkPSJtOS4xNyAxNC44My00LjI0IDQuMjQiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/life-buoy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LifeBuoy: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm4.93 4.93 4.24 4.24' }],\n ['path', { d: 'm14.83 9.17 4.24-4.24' }],\n ['path', { d: 'm14.83 14.83 4.24 4.24' }],\n ['path', { d: 'm9.17 14.83-4.24 4.24' }],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n];\n\nexport default LifeBuoy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ligature\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTJoMnY4IiAvPgogIDxwYXRoIGQ9Ik0xNCAyMGg0IiAvPgogIDxwYXRoIGQ9Ik02IDEyaDQiIC8+CiAgPHBhdGggZD0iTTYgMjBoNCIgLz4KICA8cGF0aCBkPSJNOCAyMFY4YTQgNCAwIDAgMSA3LjQ2NC0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ligature\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ligature: IconNode = [\n ['path', { d: 'M14 12h2v8' }],\n ['path', { d: 'M14 20h4' }],\n ['path', { d: 'M6 12h4' }],\n ['path', { d: 'M6 20h4' }],\n ['path', { d: 'M8 20V8a4 4 0 0 1 7.464-2' }],\n];\n\nexport default Ligature;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lightbulb-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuOCAxMS4yYy44LS45IDEuMi0yIDEuMi0zLjJhNiA2IDAgMCAwLTkuMy01IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTYuMyA2LjNhNC42NyA0LjY3IDAgMCAwIDEuMiA1LjJjLjcuNyAxLjMgMS41IDEuNSAyLjUiIC8+CiAgPHBhdGggZD0iTTkgMThoNiIgLz4KICA8cGF0aCBkPSJNMTAgMjJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/lightbulb-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LightbulbOff: IconNode = [\n ['path', { d: 'M16.8 11.2c.8-.9 1.2-2 1.2-3.2a6 6 0 0 0-9.3-5' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M6.3 6.3a4.67 4.67 0 0 0 1.2 5.2c.7.7 1.3 1.5 1.5 2.5' }],\n ['path', { d: 'M9 18h6' }],\n ['path', { d: 'M10 22h4' }],\n];\n\nexport default LightbulbOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lightbulb\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTRjLjItMSAuNy0xLjcgMS41LTIuNSAxLS45IDEuNS0yLjIgMS41LTMuNUE2IDYgMCAwIDAgNiA4YzAgMSAuMiAyLjIgMS41IDMuNS43LjcgMS4zIDEuNSAxLjUgMi41IiAvPgogIDxwYXRoIGQ9Ik05IDE4aDYiIC8+CiAgPHBhdGggZD0iTTEwIDIyaDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lightbulb\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lightbulb: IconNode = [\n [\n 'path',\n {\n d: 'M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5',\n },\n ],\n ['path', { d: 'M9 18h6' }],\n ['path', { d: 'M10 22h4' }],\n];\n\nexport default Lightbulb;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name line-squiggle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAzLjVjNS0yIDcgMi41IDMgNEMxLjUgMTAgMiAxNSA1IDE2YzUgMiA5LTEwIDE0LTdzLjUgMTMuNS00IDEyYy01LTIuNS41LTExIDYtMiIgLz4KPC9zdmc+) - https://lucide.dev/icons/line-squiggle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LineSquiggle: IconNode = [\n [\n 'path',\n { d: 'M7 3.5c5-2 7 2.5 3 4C1.5 10 2 15 5 16c5 2 9-10 14-7s.5 13.5-4 12c-5-2.5.5-11 6-2' },\n ],\n];\n\nexport default LineSquiggle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name link-2-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxN0g3QTUgNSAwIDAgMSA3IDciIC8+CiAgPHBhdGggZD0iTTE1IDdoMmE1IDUgMCAwIDEgNCA4IiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTIiIHkxPSIxMiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIyIiB5Mj0iMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/link-2-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Link2Off: IconNode = [\n ['path', { d: 'M9 17H7A5 5 0 0 1 7 7' }],\n ['path', { d: 'M15 7h2a5 5 0 0 1 4 8' }],\n ['line', { x1: '8', x2: '12', y1: '12', y2: '12' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default Link2Off;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name link-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxN0g3QTUgNSAwIDAgMSA3IDdoMiIgLz4KICA8cGF0aCBkPSJNMTUgN2gyYTUgNSAwIDEgMSAwIDEwaC0yIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSIxMiIgeTI9IjEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/link-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Link2: IconNode = [\n ['path', { d: 'M9 17H7A5 5 0 0 1 7 7h2' }],\n ['path', { d: 'M15 7h2a5 5 0 1 1 0 10h-2' }],\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12' }],\n];\n\nexport default Link2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name link\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNhNSA1IDAgMCAwIDcuNTQuNTRsMy0zYTUgNSAwIDAgMC03LjA3LTcuMDdsLTEuNzIgMS43MSIgLz4KICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/link\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Link: IconNode = [\n ['path', { d: 'M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71' }],\n ['path', { d: 'M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71' }],\n];\n\nexport default Link;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name linkedin\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgOGE2IDYgMCAwIDEgNiA2djdoLTR2LTdhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAydjdoLTR2LTdhNiA2IDAgMCAxIDYtNnoiIC8+CiAgPHJlY3Qgd2lkdGg9IjQiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjkiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjQiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/linkedin\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=linkedin instead. This icon will be removed in v1.0\n */\nconst Linkedin: IconNode = [\n ['path', { d: 'M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z' }],\n ['rect', { width: '4', height: '12', x: '2', y: '9' }],\n ['circle', { cx: '4', cy: '4', r: '2' }],\n];\n\nexport default Linkedin;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxOUgzIiAvPgogIDxwYXRoIGQ9Im0xNSAxOCAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListCheck: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M16 12H3' }],\n ['path', { d: 'M11 19H3' }],\n ['path', { d: 'm15 18 2 2 4-4' }],\n];\n\nexport default ListCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-checks\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNWg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxOWg4IiAvPgogIDxwYXRoIGQ9Im0zIDE3IDIgMiA0LTQiIC8+CiAgPHBhdGggZD0ibTMgNyAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-checks\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListChecks: IconNode = [\n ['path', { d: 'M13 5h8' }],\n ['path', { d: 'M13 12h8' }],\n ['path', { d: 'M13 19h8' }],\n ['path', { d: 'm3 17 2 2 4-4' }],\n ['path', { d: 'm3 7 2 2 4-4' }],\n];\n\nexport default ListChecks;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-chevrons-down-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDgiIC8+CiAgPHBhdGggZD0iTTMgMTJoOCIgLz4KICA8cGF0aCBkPSJNMyAxOWg4IiAvPgogIDxwYXRoIGQ9Im0xNSA1IDMgMyAzLTMiIC8+CiAgPHBhdGggZD0ibTE1IDE5IDMtMyAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list-chevrons-down-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListChevronsDownUp: IconNode = [\n ['path', { d: 'M3 5h8' }],\n ['path', { d: 'M3 12h8' }],\n ['path', { d: 'M3 19h8' }],\n ['path', { d: 'm15 5 3 3 3-3' }],\n ['path', { d: 'm15 19 3-3 3 3' }],\n];\n\nexport default ListChevronsDownUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-chevrons-up-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDgiIC8+CiAgPHBhdGggZD0iTTMgMTJoOCIgLz4KICA8cGF0aCBkPSJNMyAxOWg4IiAvPgogIDxwYXRoIGQ9Im0xNSA4IDMtMyAzIDMiIC8+CiAgPHBhdGggZD0ibTE1IDE2IDMgMyAzLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list-chevrons-up-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListChevronsUpDown: IconNode = [\n ['path', { d: 'M3 5h8' }],\n ['path', { d: 'M3 12h8' }],\n ['path', { d: 'M3 19h8' }],\n ['path', { d: 'm15 8 3-3 3 3' }],\n ['path', { d: 'm15 16 3 3 3-3' }],\n];\n\nexport default ListChevronsUpDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-collapse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNWgxMSIgLz4KICA8cGF0aCBkPSJNMTAgMTJoMTEiIC8+CiAgPHBhdGggZD0iTTEwIDE5aDExIiAvPgogIDxwYXRoIGQ9Im0zIDEwIDMtMy0zLTMiIC8+CiAgPHBhdGggZD0ibTMgMjAgMy0zLTMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-collapse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListCollapse: IconNode = [\n ['path', { d: 'M10 5h11' }],\n ['path', { d: 'M10 12h11' }],\n ['path', { d: 'M10 19h11' }],\n ['path', { d: 'm3 10 3-3-3-3' }],\n ['path', { d: 'm3 20 3-3-3-3' }],\n];\n\nexport default ListCollapse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMkgzIiAvPgogIDxwYXRoIGQ9Ik05IDE5SDMiIC8+CiAgPHBhdGggZD0ibTE2IDE2LTMgMyAzIDMiIC8+CiAgPHBhdGggZD0iTTIxIDV2MTJhMiAyIDAgMCAxLTIgMmgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListEnd: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M16 12H3' }],\n ['path', { d: 'M9 19H3' }],\n ['path', { d: 'm16 16-3 3 3 3' }],\n ['path', { d: 'M21 5v12a2 2 0 0 1-2 2h-6' }],\n];\n\nexport default ListEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-filter-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNUgyIiAvPgogIDxwYXRoIGQ9Ik02IDEyaDEyIiAvPgogIDxwYXRoIGQ9Ik05IDE5aDYiIC8+CiAgPHBhdGggZD0iTTE2IDVoNiIgLz4KICA8cGF0aCBkPSJNMTkgOFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-filter-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListFilterPlus: IconNode = [\n ['path', { d: 'M12 5H2' }],\n ['path', { d: 'M6 12h12' }],\n ['path', { d: 'M9 19h6' }],\n ['path', { d: 'M16 5h6' }],\n ['path', { d: 'M19 8V2' }],\n];\n\nexport default ListFilterPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-filter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA1aDIwIiAvPgogIDxwYXRoIGQ9Ik02IDEyaDEyIiAvPgogIDxwYXRoIGQ9Ik05IDE5aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list-filter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListFilter: IconNode = [\n ['path', { d: 'M2 5h20' }],\n ['path', { d: 'M6 12h12' }],\n ['path', { d: 'M9 19h6' }],\n];\n\nexport default ListFilter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-indent-decrease\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgxMSIgLz4KICA8cGF0aCBkPSJNMjEgMTJIMTEiIC8+CiAgPHBhdGggZD0iTTIxIDE5SDExIiAvPgogIDxwYXRoIGQ9Im03IDgtNCA0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-indent-decrease\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListIndentDecrease: IconNode = [\n ['path', { d: 'M21 5H11' }],\n ['path', { d: 'M21 12H11' }],\n ['path', { d: 'M21 19H11' }],\n ['path', { d: 'm7 8-4 4 4 4' }],\n];\n\nexport default ListIndentDecrease;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-indent-increase\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgxMSIgLz4KICA8cGF0aCBkPSJNMjEgMTJIMTEiIC8+CiAgPHBhdGggZD0iTTIxIDE5SDExIiAvPgogIDxwYXRoIGQ9Im0zIDggNCA0LTQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-indent-increase\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListIndentIncrease: IconNode = [\n ['path', { d: 'M21 5H11' }],\n ['path', { d: 'M21 12H11' }],\n ['path', { d: 'M21 19H11' }],\n ['path', { d: 'm3 8 4 4-4 4' }],\n];\n\nexport default ListIndentIncrease;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListMinus: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M11 12H3' }],\n ['path', { d: 'M16 19H3' }],\n ['path', { d: 'M21 12h-6' }],\n];\n\nexport default ListMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-music\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNlY1IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTYiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list-music\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListMusic: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M11 12H3' }],\n ['path', { d: 'M11 19H3' }],\n ['path', { d: 'M21 16V5' }],\n ['circle', { cx: '18', cy: '16', r: '3' }],\n];\n\nexport default ListMusic;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-ordered\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNWgxMCIgLz4KICA8cGF0aCBkPSJNMTEgMTJoMTAiIC8+CiAgPHBhdGggZD0iTTExIDE5aDEwIiAvPgogIDxwYXRoIGQ9Ik00IDRoMXY1IiAvPgogIDxwYXRoIGQ9Ik00IDloMiIgLz4KICA8cGF0aCBkPSJNNi41IDIwSDMuNGMwLTEgMi42LTEuOTI1IDIuNi0zLjVhMS41IDEuNSAwIDAgMC0yLjYtMS4wMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-ordered\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListOrdered: IconNode = [\n ['path', { d: 'M11 5h10' }],\n ['path', { d: 'M11 12h10' }],\n ['path', { d: 'M11 19h10' }],\n ['path', { d: 'M4 4h1v5' }],\n ['path', { d: 'M4 9h2' }],\n ['path', { d: 'M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02' }],\n];\n\nexport default ListOrdered;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0xOCA5djYiIC8+CiAgPHBhdGggZD0iTTIxIDEyaC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListPlus: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M11 12H3' }],\n ['path', { d: 'M16 19H3' }],\n ['path', { d: 'M18 9v6' }],\n ['path', { d: 'M21 12h-6' }],\n];\n\nexport default ListPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-restart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik03IDEySDMiIC8+CiAgPHBhdGggZD0iTTcgMTlIMyIgLz4KICA8cGF0aCBkPSJNMTIgMThhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMSAxNCIgLz4KICA8cGF0aCBkPSJNMTEgMTB2NGg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-restart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListRestart: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M7 12H3' }],\n ['path', { d: 'M7 19H3' }],\n ['path', { d: 'M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14' }],\n ['path', { d: 'M11 10v4h4' }],\n];\n\nexport default ListRestart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDYiIC8+CiAgPHBhdGggZD0iTTMgMTJoMTMiIC8+CiAgPHBhdGggZD0iTTMgMTloMTMiIC8+CiAgPHBhdGggZD0ibTE2IDgtMy0zIDMtMyIgLz4KICA8cGF0aCBkPSJNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListStart: IconNode = [\n ['path', { d: 'M3 5h6' }],\n ['path', { d: 'M3 12h13' }],\n ['path', { d: 'M3 19h13' }],\n ['path', { d: 'm16 8-3-3 3-3' }],\n ['path', { d: 'M21 19V7a2 2 0 0 0-2-2h-6' }],\n];\n\nexport default ListStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-todo\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNWg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxOWg4IiAvPgogIDxwYXRoIGQ9Im0zIDE3IDIgMiA0LTQiIC8+CiAgPHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list-todo\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListTodo: IconNode = [\n ['path', { d: 'M13 5h8' }],\n ['path', { d: 'M13 12h8' }],\n ['path', { d: 'M13 19h8' }],\n ['path', { d: 'm3 17 2 2 4-4' }],\n ['rect', { x: '3', y: '4', width: '6', height: '6', rx: '1' }],\n];\n\nexport default ListTodo;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-tree\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCA1aDEzIiAvPgogIDxwYXRoIGQ9Ik0xMyAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxOWg4IiAvPgogIDxwYXRoIGQ9Ik0zIDEwYTIgMiAwIDAgMCAyIDJoMyIgLz4KICA8cGF0aCBkPSJNMyA1djEyYTIgMiAwIDAgMCAyIDJoMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-tree\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListTree: IconNode = [\n ['path', { d: 'M8 5h13' }],\n ['path', { d: 'M13 12h8' }],\n ['path', { d: 'M13 19h8' }],\n ['path', { d: 'M3 10a2 2 0 0 0 2 2h3' }],\n ['path', { d: 'M3 5v12a2 2 0 0 0 2 2h3' }],\n];\n\nexport default ListTree;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-video\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMCAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xMCAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMi4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-video\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListVideo: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M10 12H3' }],\n ['path', { d: 'M10 19H3' }],\n [\n 'path',\n {\n d: 'M15 12.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z',\n },\n ],\n];\n\nexport default ListVideo;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOUgzIiAvPgogIDxwYXRoIGQ9Im0xNS41IDkuNSA1IDUiIC8+CiAgPHBhdGggZD0ibTIwLjUgOS41LTUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListX: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M11 12H3' }],\n ['path', { d: 'M16 19H3' }],\n ['path', { d: 'm15.5 9.5 5 5' }],\n ['path', { d: 'm20.5 9.5-5 5' }],\n];\n\nexport default ListX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aC4wMSIgLz4KICA8cGF0aCBkPSJNMyAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTMgMTloLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDVoMTMiIC8+CiAgPHBhdGggZD0iTTggMTJoMTMiIC8+CiAgPHBhdGggZD0iTTggMTloMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst List: IconNode = [\n ['path', { d: 'M3 5h.01' }],\n ['path', { d: 'M3 12h.01' }],\n ['path', { d: 'M3 19h.01' }],\n ['path', { d: 'M8 5h13' }],\n ['path', { d: 'M8 12h13' }],\n ['path', { d: 'M8 19h13' }],\n];\n\nexport default List;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name loader-circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LoaderCircle: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56' }]];\n\nexport default LoaderCircle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name loader\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY0IiAvPgogIDxwYXRoIGQ9Im0xNi4yIDcuOCAyLjktMi45IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmg0IiAvPgogIDxwYXRoIGQ9Im0xNi4yIDE2LjIgMi45IDIuOSIgLz4KICA8cGF0aCBkPSJNMTIgMTh2NCIgLz4KICA8cGF0aCBkPSJtNC45IDE5LjEgMi45LTIuOSIgLz4KICA8cGF0aCBkPSJNMiAxMmg0IiAvPgogIDxwYXRoIGQ9Im00LjkgNC45IDIuOSAyLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/loader\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Loader: IconNode = [\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'm16.2 7.8 2.9-2.9' }],\n ['path', { d: 'M18 12h4' }],\n ['path', { d: 'm16.2 16.2 2.9 2.9' }],\n ['path', { d: 'M12 18v4' }],\n ['path', { d: 'm4.9 19.1 2.9-2.9' }],\n ['path', { d: 'M2 12h4' }],\n ['path', { d: 'm4.9 4.9 2.9 2.9' }],\n];\n\nexport default Loader;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name loader-pinwheel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTJhMSAxIDAgMCAxLTEwIDAgMSAxIDAgMCAwLTEwIDAiIC8+CiAgPHBhdGggZD0iTTcgMjAuN2ExIDEgMCAxIDEgNS04LjcgMSAxIDAgMSAwIDUtOC42IiAvPgogIDxwYXRoIGQ9Ik03IDMuM2ExIDEgMCAxIDEgNSA4LjYgMSAxIDAgMSAwIDUgOC42IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/loader-pinwheel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LoaderPinwheel: IconNode = [\n ['path', { d: 'M22 12a1 1 0 0 1-10 0 1 1 0 0 0-10 0' }],\n ['path', { d: 'M7 20.7a1 1 0 1 1 5-8.7 1 1 0 1 0 5-8.6' }],\n ['path', { d: 'M7 3.3a1 1 0 1 1 5 8.6 1 1 0 1 0 5 8.6' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default LoaderPinwheel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name locate-fixed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMiIgeDI9IjUiIHkxPSIxMiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIxOSIgeDI9IjIyIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSI1IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTkiIHkyPSIyMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI3IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/locate-fixed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LocateFixed: IconNode = [\n ['line', { x1: '2', x2: '5', y1: '12', y2: '12' }],\n ['line', { x1: '19', x2: '22', y1: '12', y2: '12' }],\n ['line', { x1: '12', x2: '12', y1: '2', y2: '5' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22' }],\n ['circle', { cx: '12', cy: '12', r: '7' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default LocateFixed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name locate-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTIgMnYzIiAvPgogIDxwYXRoIGQ9Ik0xOC44OSAxMy4yNGE3IDcgMCAwIDAtOC4xMy04LjEzIiAvPgogIDxwYXRoIGQ9Ik0xOSAxMmgzIiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDMiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNNy4wNSA3LjA1YTcgNyAwIDAgMCA5LjkgOS45IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/locate-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LocateOff: IconNode = [\n ['path', { d: 'M12 19v3' }],\n ['path', { d: 'M12 2v3' }],\n ['path', { d: 'M18.89 13.24a7 7 0 0 0-8.13-8.13' }],\n ['path', { d: 'M19 12h3' }],\n ['path', { d: 'M2 12h3' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M7.05 7.05a7 7 0 0 0 9.9 9.9' }],\n];\n\nexport default LocateOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name locate\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMiIgeDI9IjUiIHkxPSIxMiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIxOSIgeDI9IjIyIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSI1IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTkiIHkyPSIyMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/locate\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Locate: IconNode = [\n ['line', { x1: '2', x2: '5', y1: '12', y2: '12' }],\n ['line', { x1: '19', x2: '22', y1: '12', y2: '12' }],\n ['line', { x1: '12', x2: '12', y1: '2', y2: '5' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22' }],\n ['circle', { cx: '12', cy: '12', r: '7' }],\n];\n\nexport default Locate;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lock-keyhole\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE2IiByPSIxIiAvPgogIDxyZWN0IHg9IjMiIHk9IjEwIiB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDEwVjdhNSA1IDAgMCAxIDEwIDB2MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/lock-keyhole\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LockKeyhole: IconNode = [\n ['circle', { cx: '12', cy: '16', r: '1' }],\n ['rect', { x: '3', y: '10', width: '18', height: '12', rx: '2' }],\n ['path', { d: 'M7 10V7a5 5 0 0 1 10 0v3' }],\n];\n\nexport default LockKeyhole;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lock-keyhole-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE2IiByPSIxIiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgeD0iMyIgeT0iMTAiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDEwVjdhNSA1IDAgMCAxIDkuMzMtMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lock-keyhole-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LockKeyholeOpen: IconNode = [\n ['circle', { cx: '12', cy: '16', r: '1' }],\n ['rect', { width: '18', height: '12', x: '3', y: '10', rx: '2' }],\n ['path', { d: 'M7 10V7a5 5 0 0 1 9.33-2.5' }],\n];\n\nexport default LockKeyholeOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHg9IjMiIHk9IjExIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lock: IconNode = [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4' }],\n];\n\nexport default Lock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lock-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHg9IjMiIHk9IjExIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgOS45LTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lock-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LockOpen: IconNode = [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 9.9-1' }],\n];\n\nexport default LockOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name log-in\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTcgNS01LTUtNSIgLz4KICA8cGF0aCBkPSJNMTUgMTJIMyIgLz4KICA8cGF0aCBkPSJNMTUgM2g0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/log-in\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LogIn: IconNode = [\n ['path', { d: 'm10 17 5-5-5-5' }],\n ['path', { d: 'M15 12H3' }],\n ['path', { d: 'M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4' }],\n];\n\nexport default LogIn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name logs\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDEiIC8+CiAgPHBhdGggZD0iTTMgMTJoMSIgLz4KICA8cGF0aCBkPSJNMyAxOWgxIiAvPgogIDxwYXRoIGQ9Ik04IDVoMSIgLz4KICA8cGF0aCBkPSJNOCAxMmgxIiAvPgogIDxwYXRoIGQ9Ik04IDE5aDEiIC8+CiAgPHBhdGggZD0iTTEzIDVoOCIgLz4KICA8cGF0aCBkPSJNMTMgMTJoOCIgLz4KICA8cGF0aCBkPSJNMTMgMTloOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/logs\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Logs: IconNode = [\n ['path', { d: 'M3 5h1' }],\n ['path', { d: 'M3 12h1' }],\n ['path', { d: 'M3 19h1' }],\n ['path', { d: 'M8 5h1' }],\n ['path', { d: 'M8 12h1' }],\n ['path', { d: 'M8 19h1' }],\n ['path', { d: 'M13 5h8' }],\n ['path', { d: 'M13 12h8' }],\n ['path', { d: 'M13 19h8' }],\n];\n\nexport default Logs;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name log-out\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTcgNS01LTUtNSIgLz4KICA8cGF0aCBkPSJNMjEgMTJIOSIgLz4KICA8cGF0aCBkPSJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/log-out\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LogOut: IconNode = [\n ['path', { d: 'm16 17 5-5-5-5' }],\n ['path', { d: 'M21 12H9' }],\n ['path', { d: 'M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4' }],\n];\n\nexport default LogOut;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lollipop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxwYXRoIGQ9Im0yMSAyMS00LjMtNC4zIiAvPgogIDxwYXRoIGQ9Ik0xMSAxMWEyIDIgMCAwIDAgNCAwIDQgNCAwIDAgMC04IDAgNiA2IDAgMCAwIDEyIDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lollipop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lollipop: IconNode = [\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n ['path', { d: 'M11 11a2 2 0 0 0 4 0 4 4 0 0 0-8 0 6 6 0 0 0 12 0' }],\n];\n\nexport default Lollipop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name luggage\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTggMThWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxNCIgLz4KICA8cGF0aCBkPSJNMTAgMjBoNCIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjIwIiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjgiIGN5PSIyMCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/luggage\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Luggage: IconNode = [\n ['path', { d: 'M6 20a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2' }],\n ['path', { d: 'M8 18V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v14' }],\n ['path', { d: 'M10 20h4' }],\n ['circle', { cx: '16', cy: '20', r: '2' }],\n ['circle', { cx: '8', cy: '20', r: '2' }],\n];\n\nexport default Luggage;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name magnet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTUgNCA0IiAvPgogIDxwYXRoIGQ9Ik0yLjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMDI5LTYuMDI5YTEgMSAwIDEgMSAzIDNsLTYuMDI5IDYuMDI5YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjM2NS02LjM2N0ExIDEgMCAwIDAgOC43MTYgNC4yODJ6IiAvPgogIDxwYXRoIGQ9Im01IDggNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/magnet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Magnet: IconNode = [\n ['path', { d: 'm12 15 4 4' }],\n [\n 'path',\n {\n d: 'M2.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.029-6.029a1 1 0 1 1 3 3l-6.029 6.029a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.365-6.367A1 1 0 0 0 8.716 4.282z',\n },\n ],\n ['path', { d: 'm5 8 4 4' }],\n];\n\nexport default Magnet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgiIC8+CiAgPHBhdGggZD0ibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIC8+CiAgPHBhdGggZD0ibTE2IDE5IDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mail-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailCheck: IconNode = [\n ['path', { d: 'M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'm16 19 2 2 4-4' }],\n];\n\nexport default MailCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgiIC8+CiAgPHBhdGggZD0ibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIC8+CiAgPHBhdGggZD0iTTE2IDE5aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mail-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailMinus: IconNode = [\n ['path', { d: 'M22 15V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'M16 19h6' }],\n];\n\nexport default MailMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMiA4LjRjLjUuMzguOC45Ny44IDEuNnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgLjgtMS42bDgtNmEyIDIgMCAwIDEgMi40IDBsOCA2WiIgLz4KICA8cGF0aCBkPSJtMjIgMTAtOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mail-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailOpen: IconNode = [\n [\n 'path',\n {\n d: 'M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z',\n },\n ],\n ['path', { d: 'm22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10' }],\n];\n\nexport default MailOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgiIC8+CiAgPHBhdGggZD0ibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIC8+CiAgPHBhdGggZD0iTTE5IDE2djYiIC8+CiAgPHBhdGggZD0iTTE2IDE5aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mail-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailPlus: IconNode = [\n ['path', { d: 'M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'M19 16v6' }],\n ['path', { d: 'M16 19h6' }],\n];\n\nexport default MailPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTAuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMTIuNSIgLz4KICA8cGF0aCBkPSJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyIgLz4KICA8cGF0aCBkPSJNMTggMTUuMjhjLjItLjQuNS0uOC45LTFhMi4xIDIuMSAwIDAgMSAyLjYuNGMuMy40LjUuOC41IDEuMyAwIDEuMy0yIDItMiAyIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMnYuMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mail-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailQuestionMark: IconNode = [\n ['path', { d: 'M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'M18 15.28c.2-.4.5-.8.9-1a2.1 2.1 0 0 1 2.6.4c.3.4.5.8.5 1.3 0 1.3-2 2-2 2' }],\n ['path', { d: 'M20 22v.01' }],\n];\n\nexport default MailQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTIuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNy41IiAvPgogIDxwYXRoIGQ9Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3IiAvPgogIDxwYXRoIGQ9Ik0xOCAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTIyIDIyLTEuNS0xLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mail-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailSearch: IconNode = [\n ['path', { d: 'M22 12.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h7.5' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['path', { d: 'm22 22-1.5-1.5' }],\n];\n\nexport default MailSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-warning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTAuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMTIuNSIgLz4KICA8cGF0aCBkPSJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyIgLz4KICA8cGF0aCBkPSJNMjAgMTR2NCIgLz4KICA8cGF0aCBkPSJNMjAgMjJ2LjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mail-warning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailWarning: IconNode = [\n ['path', { d: 'M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'M20 14v4' }],\n ['path', { d: 'M20 22v.01' }],\n];\n\nexport default MailWarning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDciIC8+CiAgPHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mail\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mail: IconNode = [\n ['path', { d: 'm22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7' }],\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2' }],\n];\n\nexport default Mail;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDkiIC8+CiAgPHBhdGggZD0ibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIC8+CiAgPHBhdGggZD0ibTE3IDE3IDQgNCIgLz4KICA8cGF0aCBkPSJtMjEgMTctNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mail-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailX: IconNode = [\n ['path', { d: 'M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'm17 17 4 4' }],\n ['path', { d: 'm21 17-4 4' }],\n];\n\nexport default MailX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mailbox\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOS41QzIgNyA0IDUgNi41IDVIMThjMi4yIDAgNCAxLjggNCA0djhaIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjE1LDkgMTgsOSAxOCwxMSIgLz4KICA8cGF0aCBkPSJNNi41IDVDOSA1IDExIDcgMTEgOS41VjE3YTIgMiAwIDAgMS0yIDIiIC8+CiAgPGxpbmUgeDE9IjYiIHgyPSI3IiB5MT0iMTAiIHkyPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mailbox\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mailbox: IconNode = [\n ['path', { d: 'M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z' }],\n ['polyline', { points: '15,9 18,9 18,11' }],\n ['path', { d: 'M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2' }],\n ['line', { x1: '6', x2: '7', y1: '10', y2: '10' }],\n];\n\nexport default Mailbox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mails\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDEtMS43MzIiIC8+CiAgPHBhdGggZD0ibTIyIDUuNS02LjQxOSA0LjE3OWEyIDIgMCAwIDEtMi4xNjIgMEw3IDUuNSIgLz4KICA8cmVjdCB4PSI3IiB5PSIzIiB3aWR0aD0iMTUiIGhlaWdodD0iMTIiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mails\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mails: IconNode = [\n ['path', { d: 'M17 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 1-1.732' }],\n ['path', { d: 'm22 5.5-6.419 4.179a2 2 0 0 1-2.162 0L7 5.5' }],\n ['rect', { x: '7', y: '3', width: '15', height: '12', rx: '2' }],\n];\n\nexport default Mails;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxNCIgLz4KICA8cGF0aCBkPSJNMTUgNS43NjRWMTQiIC8+CiAgPHBhdGggZD0iTTIxIDE4aC02IiAvPgogIDxwYXRoIGQ9Ik05IDMuMjM2djE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/map-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapMinus: IconNode = [\n [\n 'path',\n {\n d: 'm11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V14',\n },\n ],\n ['path', { d: 'M15 5.764V14' }],\n ['path', { d: 'M21 18h-6' }],\n ['path', { d: 'M9 3.236v15' }],\n];\n\nexport default MapMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-check-inside\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxwYXRoIGQ9Im05IDEwIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-check-inside\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinCheckInside: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n },\n ],\n ['path', { d: 'm9 10 2 2 4-4' }],\n];\n\nexport default MapPinCheckInside;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMCIgcj0iMyIgLz4KICA8cGF0aCBkPSJtMTYgMTggMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/map-pin-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinCheck: IconNode = [\n [\n 'path',\n {\n d: 'M19.43 12.935c.357-.967.57-1.955.57-2.935a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32.197 32.197 0 0 0 .813-.728',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'm16 18 2 2 4-4' }],\n];\n\nexport default MapPinCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-house\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjJhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgLjQ0NS0uODMybDMtMmExIDEgMCAwIDEgMS4xMSAwbDMgMkExIDEgMCAwIDEgMjIgMTd2NGExIDEgMCAwIDEtMSAxeiIgLz4KICA8cGF0aCBkPSJNMTggMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAuNjAxLjIiIC8+CiAgPHBhdGggZD0iTTE4IDIydi0zIiAvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iMTAiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-house\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinHouse: IconNode = [\n [\n 'path',\n {\n d: 'M15 22a1 1 0 0 1-1-1v-4a1 1 0 0 1 .445-.832l3-2a1 1 0 0 1 1.11 0l3 2A1 1 0 0 1 22 17v4a1 1 0 0 1-1 1z',\n },\n ],\n ['path', { d: 'M18 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 .601.2' }],\n ['path', { d: 'M18 22v-3' }],\n ['circle', { cx: '10', cy: '10', r: '3' }],\n];\n\nexport default MapPinHouse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-minus-inside\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxwYXRoIGQ9Ik05IDEwaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-minus-inside\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinMinusInside: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n },\n ],\n ['path', { d: 'M9 10h6' }],\n];\n\nexport default MapPinMinusInside;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguOTc3IDE0QzE5LjYgMTIuNzAxIDIwIDExLjM0MyAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTE2IDE4aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinMinus: IconNode = [\n [\n 'path',\n {\n d: 'M18.977 14C19.6 12.701 20 11.343 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'M16 18h6' }],\n];\n\nexport default MapPinMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNzUgNy4wOWEzIDMgMCAwIDEgMi4xNiAyLjE2IiAvPgogIDxwYXRoIGQ9Ik0xNy4wNzIgMTcuMDcyYy0xLjYzNCAyLjE3LTMuNTI3IDMuOTEyLTQuNDcxIDQuNzI3YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxLjQzMi00LjU2OCIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik04LjQ3NSAyLjgxOEE4IDggMCAwIDEgMjAgMTBjMCAxLjE4My0uMzEgMi4zNzctLjgxIDMuNTMzIiAvPgogIDxwYXRoIGQ9Ik05LjEzIDkuMTNhMyAzIDAgMCAwIDMuNzQgMy43NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/map-pin-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinOff: IconNode = [\n ['path', { d: 'M12.75 7.09a3 3 0 0 1 2.16 2.16' }],\n [\n 'path',\n {\n d: 'M17.072 17.072c-1.634 2.17-3.527 3.912-4.471 4.727a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 1.432-4.568',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.475 2.818A8 8 0 0 1 20 10c0 1.183-.31 2.377-.81 3.533' }],\n ['path', { d: 'M9.13 9.13a3 3 0 0 0 3.74 3.74' }],\n];\n\nexport default MapPinOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuOTcgOS4zMDRBOCA4IDAgMCAwIDIgMTBjMCA0LjY5IDQuODg3IDkuNTYyIDcuMDIyIDExLjQ2OCIgLz4KICA8cGF0aCBkPSJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6IiAvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iMTAiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinPen: IconNode = [\n ['path', { d: 'M17.97 9.304A8 8 0 0 0 2 10c0 4.69 4.887 9.562 7.022 11.468' }],\n [\n 'path',\n {\n d: 'M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n ['circle', { cx: '10', cy: '10', r: '3' }],\n];\n\nexport default MapPinPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-plus-inside\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxwYXRoIGQ9Ik0xMiA3djYiIC8+CiAgPHBhdGggZD0iTTkgMTBoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/map-pin-plus-inside\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinPlusInside: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n },\n ],\n ['path', { d: 'M12 7v6' }],\n ['path', { d: 'M9 10h6' }],\n];\n\nexport default MapPinPlusInside;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuOTE0IDExLjEwNUE3LjI5OCA3LjI5OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTE2IDE4aDYiIC8+CiAgPHBhdGggZD0iTTE5IDE1djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinPlus: IconNode = [\n [\n 'path',\n {\n d: 'M19.914 11.105A7.298 7.298 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'M16 18h6' }],\n ['path', { d: 'M19 15v6' }],\n];\n\nexport default MapPinPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-x-inside\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxwYXRoIGQ9Im0xNC41IDcuNS01IDUiIC8+CiAgPHBhdGggZD0ibTkuNSA3LjUgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/map-pin-x-inside\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinXInside: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n },\n ],\n ['path', { d: 'm14.5 7.5-5 5' }],\n ['path', { d: 'm9.5 7.5 5 5' }],\n];\n\nexport default MapPinXInside;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuNzUyIDExLjkwMUE3Ljc4IDcuNzggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDE5IDE5IDAgMCAwIC4wOS0uMDc3IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTIxLjUgMTUuNS01IDUiIC8+CiAgPHBhdGggZD0ibTIxLjUgMjAuNS01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinX: IconNode = [\n [\n 'path',\n {\n d: 'M19.752 11.901A7.78 7.78 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 19 19 0 0 0 .09-.077',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'm21.5 15.5-5 5' }],\n ['path', { d: 'm21.5 20.5-5-5' }],\n];\n\nexport default MapPinX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPin: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n];\n\nexport default MapPin;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pinned\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggOGMwIDMuNjEzLTMuODY5IDcuNDI5LTUuMzkzIDguNzk1YTEgMSAwIDAgMS0xLjIxNCAwQzkuODcgMTUuNDI5IDYgMTEuNjEzIDYgOGE2IDYgMCAwIDEgMTIgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjgiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTguNzE0IDE0aC0zLjcxYTEgMSAwIDAgMC0uOTQ4LjY4M2wtMi4wMDQgNkExIDEgMCAwIDAgMyAyMmgxOGExIDEgMCAwIDAgLjk0OC0xLjMxNmwtMi02YTEgMSAwIDAgMC0uOTQ5LS42ODRoLTMuNzEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/map-pinned\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinned: IconNode = [\n [\n 'path',\n {\n d: 'M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0',\n },\n ],\n ['circle', { cx: '12', cy: '8', r: '2' }],\n [\n 'path',\n {\n d: 'M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712',\n },\n ],\n];\n\nexport default MapPinned;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxMiIgLz4KICA8cGF0aCBkPSJNMTUgNS43NjRWMTIiIC8+CiAgPHBhdGggZD0iTTE4IDE1djYiIC8+CiAgPHBhdGggZD0iTTIxIDE4aC02IiAvPgogIDxwYXRoIGQ9Ik05IDMuMjM2djE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/map-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPlus: IconNode = [\n [\n 'path',\n {\n d: 'm11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V12',\n },\n ],\n ['path', { d: 'M15 5.764V12' }],\n ['path', { d: 'M18 15v6' }],\n ['path', { d: 'M21 18h-6' }],\n ['path', { d: 'M9 3.236v15' }],\n];\n\nexport default MapPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuMTA2IDUuNTUzYTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5djEyLjc2NGExIDEgMCAwIDEtLjU1My44OTRsLTQuNTUzIDIuMjc3YTIgMiAwIDAgMS0xLjc4OCAwbC00LjIxMi0yLjEwNmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMHoiIC8+CiAgPHBhdGggZD0iTTE1IDUuNzY0djE1IiAvPgogIDxwYXRoIGQ9Ik05IDMuMjM2djE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/map\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Map: IconNode = [\n [\n 'path',\n {\n d: 'M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z',\n },\n ],\n ['path', { d: 'M15 5.764v15' }],\n ['path', { d: 'M9 3.236v15' }],\n];\n\nexport default Map;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mars-stroke\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgNiA0IDQiIC8+CiAgPHBhdGggZD0iTTE3IDNoNHY0IiAvPgogIDxwYXRoIGQ9Im0yMSAzLTcuNzUgNy43NSIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTUiIHI9IjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mars-stroke\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MarsStroke: IconNode = [\n ['path', { d: 'm14 6 4 4' }],\n ['path', { d: 'M17 3h4v4' }],\n ['path', { d: 'm21 3-7.75 7.75' }],\n ['circle', { cx: '9', cy: '15', r: '6' }],\n];\n\nexport default MarsStroke;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mars\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2g1djUiIC8+CiAgPHBhdGggZD0ibTIxIDMtNi43NSA2Ljc1IiAvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iMTQiIHI9IjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mars\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mars: IconNode = [\n ['path', { d: 'M16 3h5v5' }],\n ['path', { d: 'm21 3-6.75 6.75' }],\n ['circle', { cx: '10', cy: '14', r: '6' }],\n];\n\nexport default Mars;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name martini\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMXYxMSIgLz4KICA8cGF0aCBkPSJtMTkgMy03IDgtNy04WiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/martini\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Martini: IconNode = [\n ['path', { d: 'M8 22h8' }],\n ['path', { d: 'M12 11v11' }],\n ['path', { d: 'm19 3-7 8-7-8Z' }],\n];\n\nexport default Martini;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name maximize-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM2g2djYiIC8+CiAgPHBhdGggZD0ibTIxIDMtNyA3IiAvPgogIDxwYXRoIGQ9Im0zIDIxIDctNyIgLz4KICA8cGF0aCBkPSJNOSAyMUgzdi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/maximize-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Maximize2: IconNode = [\n ['path', { d: 'M15 3h6v6' }],\n ['path', { d: 'm21 3-7 7' }],\n ['path', { d: 'm3 21 7-7' }],\n ['path', { d: 'M9 21H3v-6' }],\n];\n\nexport default Maximize2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name maximize\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzSDVhMiAyIDAgMCAwLTIgMnYzIiAvPgogIDxwYXRoIGQ9Ik0yMSA4VjVhMiAyIDAgMCAwLTItMmgtMyIgLz4KICA8cGF0aCBkPSJNMyAxNnYzYTIgMiAwIDAgMCAyIDJoMyIgLz4KICA8cGF0aCBkPSJNMTYgMjFoM2EyIDIgMCAwIDAgMi0ydi0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/maximize\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Maximize: IconNode = [\n ['path', { d: 'M8 3H5a2 2 0 0 0-2 2v3' }],\n ['path', { d: 'M21 8V5a2 2 0 0 0-2-2h-3' }],\n ['path', { d: 'M3 16v3a2 2 0 0 0 2 2h3' }],\n ['path', { d: 'M16 21h3a2 2 0 0 0 2-2v-3' }],\n];\n\nexport default Maximize;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name medal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNy4yMSAxNSAyLjY2IDcuMTRhMiAyIDAgMCAxIC4xMy0yLjJMNC40IDIuOEEyIDIgMCAwIDEgNiAyaDEyYTIgMiAwIDAgMSAxLjYuOGwxLjYgMi4xNGEyIDIgMCAwIDEgLjE0IDIuMkwxNi43OSAxNSIgLz4KICA8cGF0aCBkPSJNMTEgMTIgNS4xMiAyLjIiIC8+CiAgPHBhdGggZD0ibTEzIDEyIDUuODgtOS44IiAvPgogIDxwYXRoIGQ9Ik04IDdoOCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE3IiByPSI1IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOHYtMmgtLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/medal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Medal: IconNode = [\n [\n 'path',\n {\n d: 'M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15',\n },\n ],\n ['path', { d: 'M11 12 5.12 2.2' }],\n ['path', { d: 'm13 12 5.88-9.8' }],\n ['path', { d: 'M8 7h8' }],\n ['circle', { cx: '12', cy: '17', r: '5' }],\n ['path', { d: 'M12 18v-2h-.5' }],\n];\n\nexport default Medal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name megaphone-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNjM2IDZBMTMgMTMgMCAwIDAgMTkuNCAzLjIgMSAxIDAgMCAxIDIxIDR2MTEuMzQ0IiAvPgogIDxwYXRoIGQ9Ik0xNC4zNzggMTQuMzU3QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMSIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik02IDE0YTEyIDEyIDAgMCAwIDIuNCA3LjIgMiAyIDAgMCAwIDMuMi0yLjRBOCA4IDAgMCAxIDEwIDE0IiAvPgogIDxwYXRoIGQ9Ik04IDh2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/megaphone-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MegaphoneOff: IconNode = [\n ['path', { d: 'M11.636 6A13 13 0 0 0 19.4 3.2 1 1 0 0 1 21 4v11.344' }],\n ['path', { d: 'M14.378 14.357A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h1' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14' }],\n ['path', { d: 'M8 8v6' }],\n];\n\nexport default MegaphoneOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name megaphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNmExMyAxMyAwIDAgMCA4LjQtMi44QTEgMSAwIDAgMSAyMSA0djEyYTEgMSAwIDAgMS0xLjYuOEExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCIgLz4KICA8cGF0aCBkPSJNOCA2djgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/megaphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Megaphone: IconNode = [\n [\n 'path',\n {\n d: 'M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14' }],\n ['path', { d: 'M8 6v8' }],\n];\n\nexport default Megaphone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name meh\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjE2IiB5MT0iMTUiIHkyPSIxNSIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjkuMDEiIHkxPSI5IiB5Mj0iOSIgLz4KICA8bGluZSB4MT0iMTUiIHgyPSIxNS4wMSIgeTE9IjkiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/meh\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Meh: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['line', { x1: '8', x2: '16', y1: '15', y2: '15' }],\n ['line', { x1: '9', x2: '9.01', y1: '9', y2: '9' }],\n ['line', { x1: '15', x2: '15.01', y1: '9', y2: '9' }],\n];\n\nexport default Meh;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name menu\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA1aDE2IiAvPgogIDxwYXRoIGQ9Ik00IDEyaDE2IiAvPgogIDxwYXRoIGQ9Ik00IDE5aDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/menu\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Menu: IconNode = [\n ['path', { d: 'M4 5h16' }],\n ['path', { d: 'M4 12h16' }],\n ['path', { d: 'M4 19h16' }],\n];\n\nexport default Menu;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name memory-stick\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJ2LTIiIC8+CiAgPHBhdGggZD0iTTEyIDE4di0yIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMnYtMiIgLz4KICA8cGF0aCBkPSJNMTYgMTh2LTIiIC8+CiAgPHBhdGggZD0iTTIgMTFoMS41IiAvPgogIDxwYXRoIGQ9Ik0yMCAxOHYtMiIgLz4KICA8cGF0aCBkPSJNMjAuNSAxMUgyMiIgLz4KICA8cGF0aCBkPSJNNCAxOHYtMiIgLz4KICA8cGF0aCBkPSJNOCAxMnYtMiIgLz4KICA8cGF0aCBkPSJNOCAxOHYtMiIgLz4KICA8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMjAiIGhlaWdodD0iMTAiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/memory-stick\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MemoryStick: IconNode = [\n ['path', { d: 'M12 12v-2' }],\n ['path', { d: 'M12 18v-2' }],\n ['path', { d: 'M16 12v-2' }],\n ['path', { d: 'M16 18v-2' }],\n ['path', { d: 'M2 11h1.5' }],\n ['path', { d: 'M20 18v-2' }],\n ['path', { d: 'M20.5 11H22' }],\n ['path', { d: 'M4 18v-2' }],\n ['path', { d: 'M8 12v-2' }],\n ['path', { d: 'M8 18v-2' }],\n ['rect', { x: '2', y: '6', width: '20', height: '10', rx: '2' }],\n];\n\nexport default MemoryStick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name merge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOCA2IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTEyIDJ2MTAuM2E0IDQgMCAwIDEtMS4xNzIgMi44NzJMNCAyMiIgLz4KICA8cGF0aCBkPSJtMjAgMjItNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/merge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Merge: IconNode = [\n ['path', { d: 'm8 6 4-4 4 4' }],\n ['path', { d: 'M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22' }],\n ['path', { d: 'm20 22-5-5' }],\n];\n\nexport default Merge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgOS0zIDMgMyAzIiAvPgogIDxwYXRoIGQ9Im0xNCAxNSAzLTMtMy0zIiAvPgogIDxwYXRoIGQ9Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-circle-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleCode: IconNode = [\n ['path', { d: 'm10 9-3 3 3 3' }],\n ['path', { d: 'm14 15 3-3-3-3' }],\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n];\n\nexport default MessageCircleCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCIgLz4KICA8cGF0aCBkPSJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAiIC8+CiAgPHBhdGggZD0iTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43IiAvPgogIDxwYXRoIGQ9Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44IiAvPgogIDxwYXRoIGQ9Ik0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSIgLz4KICA8cGF0aCBkPSJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgiIC8+CiAgPHBhdGggZD0iTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5IiAvPgogIDxwYXRoIGQ9Im02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-circle-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleDashed: IconNode = [\n ['path', { d: 'M10.1 2.182a10 10 0 0 1 3.8 0' }],\n ['path', { d: 'M13.9 21.818a10 10 0 0 1-3.8 0' }],\n ['path', { d: 'M17.609 3.72a10 10 0 0 1 2.69 2.7' }],\n ['path', { d: 'M2.182 13.9a10 10 0 0 1 0-3.8' }],\n ['path', { d: 'M20.28 17.61a10 10 0 0 1-2.7 2.69' }],\n ['path', { d: 'M21.818 10.1a10 10 0 0 1 0 3.8' }],\n ['path', { d: 'M3.721 6.391a10 10 0 0 1 2.7-2.69' }],\n ['path', { d: 'm6.163 21.117-2.906.85a1 1 0 0 1-1.236-1.169l.965-2.98' }],\n];\n\nexport default MessageCircleDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0iTTcuODI4IDEzLjA3QTMgMyAwIDAgMSAxMiA4Ljc2NGEzIDMgMCAwIDEgNS4wMDQgMi4yMjQgMyAzIDAgMCAxLS44MzIgMi4wODNsLTMuNDQ3IDMuNjJhMSAxIDAgMCAxLTEuNDUtLjAwMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleHeart: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n [\n 'path',\n {\n d: 'M7.828 13.07A3 3 0 0 1 12 8.764a3 3 0 0 1 5.004 2.224 3 3 0 0 1-.832 2.083l-3.447 3.62a1 1 0 0 1-1.45-.001z',\n },\n ],\n];\n\nexport default MessageCircleHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-more\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-circle-more\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleMore: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'M8 12h.01' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M16 12h.01' }],\n];\n\nexport default MessageCircleMore;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik00LjkzIDQuOTI5YTEwIDEwIDAgMCAwLTEuOTM4IDExLjQxMiAyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMCAwIDExLjMwMi0xLjk4OSIgLz4KICA8cGF0aCBkPSJNOC4zNSAyLjY5QTEwIDEwIDAgMCAxIDIxLjMgMTUuNjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleOff: IconNode = [\n ['path', { d: 'm2 2 20 20' }],\n [\n 'path',\n {\n d: 'M4.93 4.929a10 10 0 0 0-1.938 11.412 2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 0 0 11.302-1.989',\n },\n ],\n ['path', { d: 'M8.35 2.69A10 10 0 0 1 21.3 15.65' }],\n];\n\nexport default MessageCircleOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KICA8cGF0aCBkPSJNMTIgOHY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-circle-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCirclePlus: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'M12 8v8' }],\n];\n\nexport default MessageCirclePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0iTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxN2guMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleQuestionMark: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default MessageCircleQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-warning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0iTTEyIDh2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-circle-warning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleWarning: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'M12 8v4' }],\n ['path', { d: 'M12 16h.01' }],\n];\n\nexport default MessageCircleWarning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-reply\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0ibTEwIDE1LTMtMyAzLTMiIC8+CiAgPHBhdGggZD0iTTcgMTJoOGEyIDIgMCAwIDEgMiAydjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle-reply\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleReply: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'm10 15-3-3 3-3' }],\n ['path', { d: 'M7 12h8a2 2 0 0 1 2 2v1' }],\n];\n\nexport default MessageCircleReply;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0ibTE1IDktNiA2IiAvPgogIDxwYXRoIGQ9Im05IDkgNiA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-circle-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleX: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'm9 9 6 6' }],\n];\n\nexport default MessageCircleX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircle: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n];\n\nexport default MessageCircle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Im0xMCA4LTMgMyAzIDMiIC8+CiAgPHBhdGggZD0ibTE0IDE0IDMtMy0zLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-square-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareCode: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'm10 8-3 3 3 3' }],\n ['path', { d: 'm14 14 3-3-3-3' }],\n];\n\nexport default MessageSquareCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgM2gyIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOWgtMiIgLz4KICA8cGF0aCBkPSJNMiAxMnYtMiIgLz4KICA8cGF0aCBkPSJNMiAxNnY1LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDEuMTQ5LTEuMTQ5IiAvPgogIDxwYXRoIGQ9Ik0yMCAxOWEyIDIgMCAwIDAgMi0ydi0xIiAvPgogIDxwYXRoIGQ9Ik0yMiAxMHYyIiAvPgogIDxwYXRoIGQ9Ik0yMiA2VjVhMiAyIDAgMCAwLTItMiIgLz4KICA8cGF0aCBkPSJNNCAzYTIgMiAwIDAgMC0yIDJ2MSIgLz4KICA8cGF0aCBkPSJNOCAxOWgyIiAvPgogIDxwYXRoIGQ9Ik04IDNoMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareDashed: IconNode = [\n ['path', { d: 'M14 3h2' }],\n ['path', { d: 'M16 19h-2' }],\n ['path', { d: 'M2 12v-2' }],\n ['path', { d: 'M2 16v5.286a.71.71 0 0 0 1.212.502l1.149-1.149' }],\n ['path', { d: 'M20 19a2 2 0 0 0 2-2v-1' }],\n ['path', { d: 'M22 10v2' }],\n ['path', { d: 'M22 6V5a2 2 0 0 0-2-2' }],\n ['path', { d: 'M4 3a2 2 0 0 0-2 2v1' }],\n ['path', { d: 'M8 19h2' }],\n ['path', { d: 'M8 3h2' }],\n];\n\nexport default MessageSquareDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-diff\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0xMCAxNWg0IiAvPgogIDxwYXRoIGQ9Ik0xMCA5aDQiIC8+CiAgPHBhdGggZD0iTTEyIDd2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-diff\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareDiff: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M10 15h4' }],\n ['path', { d: 'M10 9h4' }],\n ['path', { d: 'M12 7v4' }],\n];\n\nexport default MessageSquareDiff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNyAzSDRhMiAyIDAgMCAwLTIgMnYxNi4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwyLjIwMi0yLjIwMkEyIDIgMCAwIDEgNi44MjggMTlIMjBhMiAyIDAgMCAwIDItMnYtNC43IiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iNiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareDot: IconNode = [\n [\n 'path',\n {\n d: 'M12.7 3H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H20a2 2 0 0 0 2-2v-4.7',\n },\n ],\n ['circle', { cx: '19', cy: '6', r: '3' }],\n];\n\nexport default MessageSquareDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik03LjUgOS41YzAgLjY4Ny4yNjUgMS4zODMuNjk3IDEuODQ0bDMuMDA5IDMuMjY0YTEuMTQgMS4xNCAwIDAgMCAuNDA3LjMxNCAxIDEgMCAwIDAgLjc4My0uMDA0IDEuMTQgMS4xNCAwIDAgMCAuMzk4LS4zMWwzLjAwOC0zLjI2NEEyLjc3IDIuNzcgMCAwIDAgMTYuNSA5LjUgMi41IDIuNSAwIDAgMCAxMiA4YTIuNSAyLjUgMCAwIDAtNC41IDEuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareHeart: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n [\n 'path',\n {\n d: 'M7.5 9.5c0 .687.265 1.383.697 1.844l3.009 3.264a1.14 1.14 0 0 0 .407.314 1 1 0 0 0 .783-.004 1.14 1.14 0 0 0 .398-.31l3.008-3.264A2.77 2.77 0 0 0 16.5 9.5 2.5 2.5 0 0 0 12 8a2.5 2.5 0 0 0-4.5 1.5',\n },\n ],\n];\n\nexport default MessageSquareHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNXYtMmEyIDIgMCAwIDAtNCAwdjIiIC8+CiAgPHJlY3QgeD0iMTQiIHk9IjE1IiB3aWR0aD0iOCIgaGVpZ2h0PSI1IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareLock: IconNode = [\n [\n 'path',\n {\n d: 'M22 8.5V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H10',\n },\n ],\n ['path', { d: 'M20 15v-2a2 2 0 0 0-4 0v2' }],\n ['rect', { x: '14', y: '15', width: '8', height: '5', rx: '1' }],\n];\n\nexport default MessageSquareLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-more\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMWguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDExaC4wMSIgLz4KICA8cGF0aCBkPSJNOCAxMWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-square-more\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareMore: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M12 11h.01' }],\n ['path', { d: 'M16 11h.01' }],\n ['path', { d: 'M8 11h.01' }],\n];\n\nexport default MessageSquareMore;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTlINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcuNyAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareOff: IconNode = [\n [\n 'path',\n {\n d: 'M19 19H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.7.7 0 0 1 2 21.286V5a2 2 0 0 1 1.184-1.826',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.656 3H20a2 2 0 0 1 2 2v11.344' }],\n];\n\nexport default MessageSquareOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0xMiA4djYiIC8+CiAgPHBhdGggZD0iTTkgMTFoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquarePlus: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M12 8v6' }],\n ['path', { d: 'M9 11h6' }],\n];\n\nexport default MessageSquarePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-quote\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTRhMiAyIDAgMCAwIDItMlY4aC0yIiAvPgogIDxwYXRoIGQ9Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoiIC8+CiAgPHBhdGggZD0iTTggMTRhMiAyIDAgMCAwIDItMlY4SDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-square-quote\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareQuote: IconNode = [\n ['path', { d: 'M14 14a2 2 0 0 0 2-2V8h-2' }],\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M8 14a2 2 0 0 0 2-2V8H8' }],\n];\n\nexport default MessageSquareQuote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-reply\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Im0xMCA4LTMgMyAzIDMiIC8+CiAgPHBhdGggZD0iTTE3IDE0di0xYTIgMiAwIDAgMC0yLTJINyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-reply\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareReply: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'm10 8-3 3 3 3' }],\n ['path', { d: 'M17 14v-1a2 2 0 0 0-2-2H7' }],\n];\n\nexport default MessageSquareReply;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-share\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM0g0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDIwYTIgMiAwIDAgMCAyLTJ2LTQiIC8+CiAgPHBhdGggZD0iTTE2IDNoNnY2IiAvPgogIDxwYXRoIGQ9Im0xNiA5IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-share\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareShare: IconNode = [\n [\n 'path',\n {\n d: 'M12 3H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H20a2 2 0 0 0 2-2v-4',\n },\n ],\n ['path', { d: 'M16 3h6v6' }],\n ['path', { d: 'm16 9 6-6' }],\n];\n\nexport default MessageSquareShare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik03IDExaDEwIiAvPgogIDxwYXRoIGQ9Ik03IDE1aDYiIC8+CiAgPHBhdGggZD0iTTcgN2g4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareText: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M7 11h10' }],\n ['path', { d: 'M7 15h6' }],\n ['path', { d: 'M7 7h8' }],\n];\n\nexport default MessageSquareText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-warning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNWguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDd2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-warning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareWarning: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M12 15h.01' }],\n ['path', { d: 'M12 7v4' }],\n];\n\nexport default MessageSquareWarning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Im0xNC41IDguNS01IDUiIC8+CiAgPHBhdGggZD0ibTkuNSA4LjUgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareX: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'm14.5 8.5-5 5' }],\n ['path', { d: 'm9.5 8.5 5 5' }],\n];\n\nexport default MessageSquareX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquare: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n];\n\nexport default MessageSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name messages-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0yMCA5YTIgMiAwIDAgMSAyIDJ2MTAuMjg2YS43MS43MSAwIDAgMS0xLjIxMi41MDJsLTIuMjAyLTIuMjAyQTIgMiAwIDAgMCAxNy4xNzIgMTlIMTBhMiAyIDAgMCAxLTItMnYtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/messages-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessagesSquare: IconNode = [\n [\n 'path',\n {\n d: 'M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z',\n },\n ],\n [\n 'path',\n {\n d: 'M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1',\n },\n ],\n];\n\nexport default MessagesSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mic-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMiIC8+CiAgPHBhdGggZD0iTTE2Ljk1IDE2Ljk1QTcgNyAwIDAgMSA1IDEydi0yIiAvPgogIDxwYXRoIGQ9Ik0xOC44OSAxMy4yM0E3IDcgMCAwIDAgMTkgMTJ2LTIiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNOSA5djNhMyAzIDAgMCAwIDUuMTIgMi4xMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mic-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MicOff: IconNode = [\n ['path', { d: 'M12 19v3' }],\n ['path', { d: 'M15 9.34V5a3 3 0 0 0-5.68-1.33' }],\n ['path', { d: 'M16.95 16.95A7 7 0 0 1 5 12v-2' }],\n ['path', { d: 'M18.89 13.23A7 7 0 0 0 19 12v-2' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M9 9v3a3 3 0 0 0 5.12 2.12' }],\n];\n\nexport default MicOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mic-vocal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgNy42MDEtNS45OTQgOC4xOWExIDEgMCAwIDAgLjEgMS4yOThsLjgxNy44MThhMSAxIDAgMCAwIDEuMzE0LjA4N0wxNS4wOSAxMiIgLz4KICA8cGF0aCBkPSJNMTYuNSAyMS4xNzRDMTUuNSAyMC41IDE0LjM3MiAyMCAxMyAyMGMtMi4wNTggMC0zLjkyOCAyLjM1Ni02IDItMi4wNzItLjM1Ni0yLjc3NS0zLjM2OS0xLjUtNC41IiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iNyIgcj0iNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mic-vocal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MicVocal: IconNode = [\n ['path', { d: 'm11 7.601-5.994 8.19a1 1 0 0 0 .1 1.298l.817.818a1 1 0 0 0 1.314.087L15.09 12' }],\n [\n 'path',\n {\n d: 'M16.5 21.174C15.5 20.5 14.372 20 13 20c-2.058 0-3.928 2.356-6 2-2.072-.356-2.775-3.369-1.5-4.5',\n },\n ],\n ['circle', { cx: '16', cy: '7', r: '5' }],\n];\n\nexport default MicVocal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mic\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTkgMTB2MmE3IDcgMCAwIDEtMTQgMHYtMiIgLz4KICA8cmVjdCB4PSI5IiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSIxMyIgcng9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mic: IconNode = [\n ['path', { d: 'M12 19v3' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2' }],\n ['rect', { x: '9', y: '2', width: '6', height: '13', rx: '3' }],\n];\n\nexport default Mic;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name microchip\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJoNCIgLz4KICA8cGF0aCBkPSJNMTAgMTdoNCIgLz4KICA8cGF0aCBkPSJNMTAgN2g0IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0xOCAxOGgyIiAvPgogIDxwYXRoIGQ9Ik0xOCA2aDIiIC8+CiAgPHBhdGggZD0iTTQgMTJoMiIgLz4KICA8cGF0aCBkPSJNNCAxOGgyIiAvPgogIDxwYXRoIGQ9Ik00IDZoMiIgLz4KICA8cmVjdCB4PSI2IiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/microchip\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Microchip: IconNode = [\n ['path', { d: 'M10 12h4' }],\n ['path', { d: 'M10 17h4' }],\n ['path', { d: 'M10 7h4' }],\n ['path', { d: 'M18 12h2' }],\n ['path', { d: 'M18 18h2' }],\n ['path', { d: 'M18 6h2' }],\n ['path', { d: 'M4 12h2' }],\n ['path', { d: 'M4 18h2' }],\n ['path', { d: 'M4 6h2' }],\n ['rect', { x: '6', y: '2', width: '12', height: '20', rx: '2' }],\n];\n\nexport default Microchip;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name microscope\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxOGg4IiAvPgogIDxwYXRoIGQ9Ik0zIDIyaDE4IiAvPgogIDxwYXRoIGQ9Ik0xNCAyMmE3IDcgMCAxIDAgMC0xNGgtMSIgLz4KICA8cGF0aCBkPSJNOSAxNGgyIiAvPgogIDxwYXRoIGQ9Ik05IDEyYTIgMiAwIDAgMS0yLTJWNmg2djRhMiAyIDAgMCAxLTIgMloiIC8+CiAgPHBhdGggZD0iTTEyIDZWM2ExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/microscope\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Microscope: IconNode = [\n ['path', { d: 'M6 18h8' }],\n ['path', { d: 'M3 22h18' }],\n ['path', { d: 'M14 22a7 7 0 1 0 0-14h-1' }],\n ['path', { d: 'M9 14h2' }],\n ['path', { d: 'M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z' }],\n ['path', { d: 'M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3' }],\n];\n\nexport default Microscope;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name microwave\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTUiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjciIHg9IjYiIHk9IjgiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0xOCA4djciIC8+CiAgPHBhdGggZD0iTTYgMTl2MiIgLz4KICA8cGF0aCBkPSJNMTggMTl2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/microwave\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Microwave: IconNode = [\n ['rect', { width: '20', height: '15', x: '2', y: '4', rx: '2' }],\n ['rect', { width: '8', height: '7', x: '6', y: '8', rx: '1' }],\n ['path', { d: 'M18 8v7' }],\n ['path', { d: 'M6 19v2' }],\n ['path', { d: 'M18 19v2' }],\n];\n\nexport default Microwave;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name milestone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2OCIgLz4KICA8cGF0aCBkPSJNMTIgM3YzIiAvPgogIDxwYXRoIGQ9Ik00IDZhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoMTNhMiAyIDAgMCAwIDEuMTUyLS4zNjVsMy40MjQtMi4zMTdhMSAxIDAgMCAwIDAtMS42MzVsLTMuNDI0LTIuMzE4QTIgMiAwIDAgMCAxNyA2eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/milestone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Milestone: IconNode = [\n ['path', { d: 'M12 13v8' }],\n ['path', { d: 'M12 3v3' }],\n [\n 'path',\n {\n d: 'M4 6a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h13a2 2 0 0 0 1.152-.365l3.424-2.317a1 1 0 0 0 0-1.635l-3.424-2.318A2 2 0 0 0 17 6z',\n },\n ],\n];\n\nexport default Milestone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name milk-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyaDgiIC8+CiAgPHBhdGggZD0iTTkgMnYxLjM0M00xNSAydjIuNzg5YTQgNCAwIDAgMCAuNjcyIDIuMjE5bC42NTYuOTg0YTQgNCAwIDAgMSAuNjcyIDIuMjJ2MS4xMzFNNy44IDcuOGwtLjEyOC4xOTJBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi0zIiAvPgogIDxwYXRoIGQ9Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NzIgNi40NzIgMCAwIDAgMy40MzUuNDM1IiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIyIiB5Mj0iMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/milk-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MilkOff: IconNode = [\n ['path', { d: 'M8 2h8' }],\n [\n 'path',\n {\n d: 'M9 2v1.343M15 2v2.789a4 4 0 0 0 .672 2.219l.656.984a4 4 0 0 1 .672 2.22v1.131M7.8 7.8l-.128.192A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-3',\n },\n ],\n ['path', { d: 'M7 15a6.47 6.47 0 0 1 5 0 6.472 6.472 0 0 0 3.435.435' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default MilkOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name minimize-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTAgNy03IiAvPgogIDxwYXRoIGQ9Ik0yMCAxMGgtNlY0IiAvPgogIDxwYXRoIGQ9Im0zIDIxIDctNyIgLz4KICA8cGF0aCBkPSJNNCAxNGg2djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/minimize-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Minimize2: IconNode = [\n ['path', { d: 'm14 10 7-7' }],\n ['path', { d: 'M20 10h-6V4' }],\n ['path', { d: 'm3 21 7-7' }],\n ['path', { d: 'M4 14h6v6' }],\n];\n\nexport default Minimize2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name milk\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyaDgiIC8+CiAgPHBhdGggZD0iTTkgMnYyLjc4OWE0IDQgMCAwIDEtLjY3MiAyLjIxOWwtLjY1Ni45ODRBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi05Ljc4OWE0IDQgMCAwIDAtLjY3Mi0yLjIxOWwtLjY1Ni0uOTg0QTQgNCAwIDAgMSAxNSA0Ljc4OFYyIiAvPgogIDxwYXRoIGQ9Ik03IDE1YTYuNDcyIDYuNDcyIDAgMCAxIDUgMCA2LjQ3IDYuNDcgMCAwIDAgNSAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/milk\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Milk: IconNode = [\n ['path', { d: 'M8 2h8' }],\n [\n 'path',\n {\n d: 'M9 2v2.789a4 4 0 0 1-.672 2.219l-.656.984A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-9.789a4 4 0 0 0-.672-2.219l-.656-.984A4 4 0 0 1 15 4.788V2',\n },\n ],\n ['path', { d: 'M7 15a6.472 6.472 0 0 1 5 0 6.47 6.47 0 0 0 5 0' }],\n];\n\nexport default Milk;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name minimize\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzdjNhMiAyIDAgMCAxLTIgMkgzIiAvPgogIDxwYXRoIGQ9Ik0yMSA4aC0zYTIgMiAwIDAgMS0yLTJWMyIgLz4KICA8cGF0aCBkPSJNMyAxNmgzYTIgMiAwIDAgMSAyIDJ2MyIgLz4KICA8cGF0aCBkPSJNMTYgMjF2LTNhMiAyIDAgMCAxIDItMmgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/minimize\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Minimize: IconNode = [\n ['path', { d: 'M8 3v3a2 2 0 0 1-2 2H3' }],\n ['path', { d: 'M21 8h-3a2 2 0 0 1-2-2V3' }],\n ['path', { d: 'M3 16h3a2 2 0 0 1 2 2v3' }],\n ['path', { d: 'M16 21v-3a2 2 0 0 1 2-2h3' }],\n];\n\nexport default Minimize;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Minus: IconNode = [['path', { d: 'M5 12h14' }]];\n\nexport default Minus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxMCAyIDIgNC00IiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iMyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorCheck: IconNode = [\n ['path', { d: 'm9 10 2 2 4-4' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n];\n\nexport default MonitorCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-cloud\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTNhMyAzIDAgMSAxIDIuODMtNEgxNGEyIDIgMCAwIDEgMCA0eiIgLz4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJNOCAyMWg4IiAvPgogIDxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-cloud\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorCloud: IconNode = [\n ['path', { d: 'M11 13a3 3 0 1 1 2.83-4H14a2 2 0 0 1 0 4z' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n ['rect', { x: '2', y: '3', width: '20', height: '14', rx: '2' }],\n];\n\nexport default MonitorCloud;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJtMTQuMzA1IDcuNTMuOTIzLS4zODIiIC8+CiAgPHBhdGggZD0ibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyIgLz4KICA8cGF0aCBkPSJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0IiAvPgogIDxwYXRoIGQ9Im0xOS41MyA5LjY5Ni0uMzgyLS45MjQiIC8+CiAgPHBhdGggZD0ibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyIgLz4KICA8cGF0aCBkPSJtMjAuNzcyIDcuMTQ4LjkyNC4zODMiIC8+CiAgPHBhdGggZD0iTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDciIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjYiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorCog: IconNode = [\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'm14.305 7.53.923-.382' }],\n ['path', { d: 'm15.228 4.852-.923-.383' }],\n ['path', { d: 'm16.852 3.228-.383-.924' }],\n ['path', { d: 'm16.852 8.772-.383.923' }],\n ['path', { d: 'm19.148 3.228.383-.924' }],\n ['path', { d: 'm19.53 9.696-.382-.924' }],\n ['path', { d: 'm20.772 4.852.924-.383' }],\n ['path', { d: 'm20.772 7.148.924.383' }],\n ['path', { d: 'M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7' }],\n ['path', { d: 'M8 21h8' }],\n ['circle', { cx: '18', cy: '6', r: '3' }],\n];\n\nexport default MonitorCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJNMjIgMTIuMzA3VjE1YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg4LjY5MyIgLz4KICA8cGF0aCBkPSJNOCAyMWg4IiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iNiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorDot: IconNode = [\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M22 12.307V15a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h8.693' }],\n ['path', { d: 'M8 21h8' }],\n ['circle', { cx: '19', cy: '6', r: '3' }],\n];\n\nexport default MonitorDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNWNyIgLz4KICA8cGF0aCBkPSJtMTUgMTAtMyAzLTMtMyIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxN3Y0IiAvPgogIDxwYXRoIGQ9Ik04IDIxaDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorDown: IconNode = [\n ['path', { d: 'M12 13V7' }],\n ['path', { d: 'm15 10-3 3-3-3' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n];\n\nexport default MonitorDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJNMTcgMTdINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDEuMTg0LTEuODI2IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KICA8cGF0aCBkPSJNOC42NTYgM0gyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0uMjkzIDEuMDQyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/monitor-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorOff: IconNode = [\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M17 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 1.184-1.826' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8 21h8' }],\n ['path', { d: 'M8.656 3H20a2 2 0 0 1 2 2v10a2 2 0 0 1-.293 1.042' }],\n];\n\nexport default MonitorOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNWNyIgLz4KICA8cGF0aCBkPSJNMTQgMTNWNyIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxN3Y0IiAvPgogIDxwYXRoIGQ9Ik04IDIxaDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorPause: IconNode = [\n ['path', { d: 'M10 13V7' }],\n ['path', { d: 'M14 13V7' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n];\n\nexport default MonitorPause;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMDMzIDkuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NlY3LjY0OGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KICA8cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/monitor-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorPlay: IconNode = [\n [\n 'path',\n {\n d: 'M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z',\n },\n ],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n ['rect', { x: '2', y: '3', width: '20', height: '14', rx: '2' }],\n];\n\nexport default MonitorPlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-smartphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjdhMiAyIDAgMCAwIDIgMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMCAxOXYtMy45NiAzLjE1IiAvPgogIDxwYXRoIGQ9Ik03IDE5aDUiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE2IiB5PSIxMiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-smartphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorSmartphone: IconNode = [\n ['path', { d: 'M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8' }],\n ['path', { d: 'M10 19v-3.96 3.15' }],\n ['path', { d: 'M7 19h5' }],\n ['rect', { width: '6', height: '10', x: '16', y: '12', rx: '2' }],\n];\n\nexport default MonitorSmartphone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-speaker\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNS41IDIwSDgiIC8+CiAgPHBhdGggZD0iTTE3IDloLjAxIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSIxNiIgeD0iMTIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDZINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg0IiAvPgogIDxjaXJjbGUgY3g9IjE3IiBjeT0iMTUiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-speaker\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorSpeaker: IconNode = [\n ['path', { d: 'M5.5 20H8' }],\n ['path', { d: 'M17 9h.01' }],\n ['rect', { width: '10', height: '16', x: '12', y: '4', rx: '2' }],\n ['path', { d: 'M8 6H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4' }],\n ['circle', { cx: '17', cy: '15', r: '1' }],\n];\n\nexport default MonitorSpeaker;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-stop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJNOCAyMWg4IiAvPgogIDxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgcng9IjIiIC8+CiAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-stop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorStop: IconNode = [\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n ['rect', { x: '2', y: '3', width: '20', height: '14', rx: '2' }],\n ['rect', { x: '9', y: '7', width: '6', height: '6', rx: '1' }],\n];\n\nexport default MonitorStop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxMCAzLTMgMyAzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxM1Y3IiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iMyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorUp: IconNode = [\n ['path', { d: 'm9 10 3-3 3 3' }],\n ['path', { d: 'M12 13V7' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n];\n\nexport default MonitorUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuNSAxMi41LTUtNSIgLz4KICA8cGF0aCBkPSJtOS41IDEyLjUgNS01IiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iMyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorX: IconNode = [\n ['path', { d: 'm14.5 12.5-5-5' }],\n ['path', { d: 'm9.5 12.5 5-5' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n];\n\nexport default MonitorX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSIyMSIgeTI9IjIxIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTciIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Monitor: IconNode = [\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['line', { x1: '8', x2: '16', y1: '21', y2: '21' }],\n ['line', { x1: '12', x2: '12', y1: '17', y2: '21' }],\n];\n\nexport default Monitor;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name moon-star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNWg0IiAvPgogIDxwYXRoIGQ9Ik0yMCAzdjQiIC8+CiAgPHBhdGggZD0iTTIwLjk4NSAxMi40ODZhOSA5IDAgMSAxLTkuNDczLTkuNDcyYy40MDUtLjAyMi42MTcuNDYuNDAyLjgwM2E2IDYgMCAwIDAgOC4yNjggOC4yNjhjLjM0NC0uMjE1LjgyNS0uMDA0LjgwMy40MDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/moon-star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoonStar: IconNode = [\n ['path', { d: 'M18 5h4' }],\n ['path', { d: 'M20 3v4' }],\n [\n 'path',\n {\n d: 'M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401',\n },\n ],\n];\n\nexport default MoonStar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name moon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/moon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Moon: IconNode = [\n [\n 'path',\n {\n d: 'M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401',\n },\n ],\n];\n\nexport default Moon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name motorbike\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTQtMS0zIiAvPgogIDxwYXRoIGQ9Im0zIDkgNiAyYTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMS45OSAxLjgxIiAvPgogIDxwYXRoIGQ9Ik04IDE3aDNhMSAxIDAgMCAwIDEtMSA2IDYgMCAwIDEgNi02IDEgMSAwIDAgMCAxLTF2LS43NUE1IDUgMCAwIDAgMTcgNSIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjE3IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSIxNyIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/motorbike\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Motorbike: IconNode = [\n ['path', { d: 'm18 14-1-3' }],\n ['path', { d: 'm3 9 6 2a2 2 0 0 1 2-2h2a2 2 0 0 1 1.99 1.81' }],\n ['path', { d: 'M8 17h3a1 1 0 0 0 1-1 6 6 0 0 1 6-6 1 1 0 0 0 1-1v-.75A5 5 0 0 0 17 5' }],\n ['circle', { cx: '19', cy: '17', r: '3' }],\n ['circle', { cx: '5', cy: '17', r: '3' }],\n];\n\nexport default Motorbike;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mountain-snow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3oiIC8+CiAgPHBhdGggZD0iTTQuMTQgMTUuMDhjMi42Mi0xLjU3IDUuMjQtMS40MyA3Ljg2LjQyIDIuNzQgMS45NCA1LjQ5IDIgOC4yMy4xOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mountain-snow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MountainSnow: IconNode = [\n ['path', { d: 'm8 3 4 8 5-5 5 15H2L8 3z' }],\n ['path', { d: 'M4.14 15.08c2.62-1.57 5.24-1.43 7.86.42 2.74 1.94 5.49 2 8.23.19' }],\n];\n\nexport default MountainSnow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mountain\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mountain\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mountain: IconNode = [['path', { d: 'm8 3 4 8 5-5 5 15H2L8 3z' }]];\n\nexport default Mountain;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnYuMzQzIiAvPgogIDxwYXRoIGQ9Ik0xOC4yMTggMTguMjE4QTcgNyAwIDAgMSA1IDE1VjlhNyA3IDAgMCAxIC43ODItMy4yMTgiIC8+CiAgPHBhdGggZD0iTTE5IDEzLjM0M1Y5QTcgNyAwIDAgMCA4LjU2IDIuOTAyIiAvPgogIDxwYXRoIGQ9Ik0yMiAyMiAyIDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mouse-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MouseOff: IconNode = [\n ['path', { d: 'M12 6v.343' }],\n ['path', { d: 'M18.218 18.218A7 7 0 0 1 5 15V9a7 7 0 0 1 .782-3.218' }],\n ['path', { d: 'M19 13.343V9A7 7 0 0 0 8.56 2.902' }],\n ['path', { d: 'M22 22 2 2' }],\n];\n\nexport default MouseOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-pointer-2-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuNTUgOC40NSA1LjEzOCAyLjA4N2EuNS41IDAgMCAxLS4wNjMuOTQ3bC02LjEyNCAxLjU4YTIgMiAwIDAgMC0xLjQzOCAxLjQzNWwtMS41NzkgNi4xMjZhLjUuNSAwIDAgMS0uOTQ3LjA2M0w4LjQ1IDE1LjU1MSIgLz4KICA8cGF0aCBkPSJNMjIgMiAyIDIyIiAvPgogIDxwYXRoIGQ9Im02LjgxNiAxMS41MjgtMi43NzktNi44NGEuNDk1LjQ5NSAwIDAgMSAuNjUxLS42NTFsNi44NCAyLjc3OSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mouse-pointer-2-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MousePointer2Off: IconNode = [\n [\n 'path',\n {\n d: 'm15.55 8.45 5.138 2.087a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063L8.45 15.551',\n },\n ],\n ['path', { d: 'M22 2 2 22' }],\n ['path', { d: 'm6.816 11.528-2.779-6.84a.495.495 0 0 1 .651-.651l6.84 2.779' }],\n];\n\nexport default MousePointer2Off;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-pointer-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC4wMzcgNC42ODhhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDE2IDYuNWEuNS41IDAgMCAxLS4wNjMuOTQ3bC02LjEyNCAxLjU4YTIgMiAwIDAgMC0xLjQzOCAxLjQzNWwtMS41NzkgNi4xMjZhLjUuNSAwIDAgMS0uOTQ3LjA2M3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mouse-pointer-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MousePointer2: IconNode = [\n [\n 'path',\n {\n d: 'M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z',\n },\n ],\n];\n\nexport default MousePointer2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-pointer-ban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wMzQgMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDRMOC4yMDQgNy41NDVhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjYgMy40NDNhLjUuNSAwIDAgMS0uOTQ0LjAzM3oiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iNiIgLz4KICA8cGF0aCBkPSJtMTEuOCAxMS44IDguNCA4LjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mouse-pointer-ban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MousePointerBan: IconNode = [\n [\n 'path',\n {\n d: 'M2.034 2.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.944L8.204 7.545a1 1 0 0 0-.66.66l-1.066 3.443a.5.5 0 0 1-.944.033z',\n },\n ],\n ['circle', { cx: '16', cy: '16', r: '6' }],\n ['path', { d: 'm11.8 11.8 8.4 8.4' }],\n];\n\nexport default MousePointerBan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-pointer-click\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNC4xIDEyIDYiIC8+CiAgPHBhdGggZD0ibTUuMSA4LTIuOS0uOCIgLz4KICA8cGF0aCBkPSJtNiAxMi0xLjkgMiIgLz4KICA8cGF0aCBkPSJNNy4yIDIuMiA4IDUuMSIgLz4KICA8cGF0aCBkPSJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mouse-pointer-click\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MousePointerClick: IconNode = [\n ['path', { d: 'M14 4.1 12 6' }],\n ['path', { d: 'm5.1 8-2.9-.8' }],\n ['path', { d: 'm6 12-1.9 2' }],\n ['path', { d: 'M7.2 2.2 8 5.1' }],\n [\n 'path',\n {\n d: 'M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z',\n },\n ],\n];\n\nexport default MousePointerClick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-pointer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNTg2IDEyLjU4NiAxOSAxOSIgLz4KICA8cGF0aCBkPSJNMy42ODggMy4wMzdhLjQ5Ny40OTcgMCAwIDAtLjY1MS42NTFsNi41IDE1Ljk5OWEuNTAxLjUwMSAwIDAgMCAuOTQ3LS4wNjJsMS41NjktNi4wODNhMiAyIDAgMCAxIDEuNDQ4LTEuNDc5bDYuMTI0LTEuNTc5YS41LjUgMCAwIDAgLjA2My0uOTQ3eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mouse-pointer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MousePointer: IconNode = [\n ['path', { d: 'M12.586 12.586 19 19' }],\n [\n 'path',\n {\n d: 'M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z',\n },\n ],\n];\n\nexport default MousePointer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSI1IiB5PSIyIiB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHJ4PSI3IiAvPgogIDxwYXRoIGQ9Ik0xMiA2djQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mouse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mouse: IconNode = [\n ['rect', { x: '5', y: '2', width: '14', height: '20', rx: '7' }],\n ['path', { d: 'M12 6v4' }],\n];\n\nexport default Mouse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-3d\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAzdjE2aDE2IiAvPgogIDxwYXRoIGQ9Im01IDE5IDYtNiIgLz4KICA8cGF0aCBkPSJtMiA2IDMtMyAzIDMiIC8+CiAgPHBhdGggZD0ibTE4IDE2IDMgMy0zIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/move-3d\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Move3d: IconNode = [\n ['path', { d: 'M5 3v16h16' }],\n ['path', { d: 'm5 19 6-6' }],\n ['path', { d: 'm2 6 3-3 3 3' }],\n ['path', { d: 'm18 16 3 3-3 3' }],\n];\n\nexport default Move3d;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-diagonal-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTN2NmgtNiIgLz4KICA8cGF0aCBkPSJNNSAxMVY1aDYiIC8+CiAgPHBhdGggZD0ibTUgNSAxNCAxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-diagonal-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveDiagonal2: IconNode = [\n ['path', { d: 'M19 13v6h-6' }],\n ['path', { d: 'M5 11V5h6' }],\n ['path', { d: 'm5 5 14 14' }],\n];\n\nexport default MoveDiagonal2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-diagonal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTlINXYtNiIgLz4KICA8cGF0aCBkPSJNMTMgNWg2djYiIC8+CiAgPHBhdGggZD0iTTE5IDUgNSAxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-diagonal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveDiagonal: IconNode = [\n ['path', { d: 'M11 19H5v-6' }],\n ['path', { d: 'M13 5h6v6' }],\n ['path', { d: 'M19 5 5 19' }],\n];\n\nexport default MoveDiagonal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTlINVYxMyIgLz4KICA8cGF0aCBkPSJNMTkgNUw1IDE5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/move-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveDownLeft: IconNode = [\n ['path', { d: 'M11 19H5V13' }],\n ['path', { d: 'M19 5L5 19' }],\n];\n\nexport default MoveDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTNWMTlIMTMiIC8+CiAgPHBhdGggZD0iTTUgNUwxOSAxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveDownRight: IconNode = [\n ['path', { d: 'M19 13V19H13' }],\n ['path', { d: 'M5 5L19 19' }],\n];\n\nexport default MoveDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAxOEwxMiAyMkwxNiAxOCIgLz4KICA8cGF0aCBkPSJNMTIgMlYyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveDown: IconNode = [\n ['path', { d: 'M8 18L12 22L16 18' }],\n ['path', { d: 'M12 2V22' }],\n];\n\nexport default MoveDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggOCA0IDQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDIwIiAvPgogIDxwYXRoIGQ9Im02IDgtNCA0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveHorizontal: IconNode = [\n ['path', { d: 'm18 8 4 4-4 4' }],\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'm6 8-4 4 4 4' }],\n];\n\nexport default MoveHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA4TDIgMTJMNiAxNiIgLz4KICA8cGF0aCBkPSJNMiAxMkgyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveLeft: IconNode = [\n ['path', { d: 'M6 8L2 12L6 16' }],\n ['path', { d: 'M2 12H22' }],\n];\n\nexport default MoveLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggOEwyMiAxMkwxOCAxNiIgLz4KICA8cGF0aCBkPSJNMiAxMkgyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveRight: IconNode = [\n ['path', { d: 'M18 8L22 12L18 16' }],\n ['path', { d: 'M2 12H22' }],\n];\n\nexport default MoveRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMVY1SDExIiAvPgogIDxwYXRoIGQ9Ik01IDVMMTkgMTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/move-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveUpLeft: IconNode = [\n ['path', { d: 'M5 11V5H11' }],\n ['path', { d: 'M5 5L19 19' }],\n];\n\nexport default MoveUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNUgxOVYxMSIgLz4KICA8cGF0aCBkPSJNMTkgNUw1IDE5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/move-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveUpRight: IconNode = [\n ['path', { d: 'M13 5H19V11' }],\n ['path', { d: 'M19 5L5 19' }],\n];\n\nexport default MoveUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCA2TDEyIDJMMTYgNiIgLz4KICA8cGF0aCBkPSJNMTIgMlYyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveUp: IconNode = [\n ['path', { d: 'M8 6L12 2L16 6' }],\n ['path', { d: 'M12 2V22' }],\n];\n\nexport default MoveUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KICA8cGF0aCBkPSJtOCAxOCA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Im04IDYgNC00IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveVertical: IconNode = [\n ['path', { d: 'M12 2v20' }],\n ['path', { d: 'm8 18 4 4 4-4' }],\n ['path', { d: 'm8 6 4-4 4 4' }],\n];\n\nexport default MoveVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KICA8cGF0aCBkPSJtMTUgMTktMyAzLTMtMyIgLz4KICA8cGF0aCBkPSJtMTkgOSAzIDMtMyAzIiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDIwIiAvPgogIDxwYXRoIGQ9Im01IDktMyAzIDMgMyIgLz4KICA8cGF0aCBkPSJtOSA1IDMtMyAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/move\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Move: IconNode = [\n ['path', { d: 'M12 2v20' }],\n ['path', { d: 'm15 19-3 3-3-3' }],\n ['path', { d: 'm19 9 3 3-3 3' }],\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'm5 9-3 3 3 3' }],\n ['path', { d: 'm9 5 3-3 3 3' }],\n];\n\nexport default Move;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name music-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI4IiBjeT0iMTgiIHI9IjQiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjJsNyA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/music-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Music2: IconNode = [\n ['circle', { cx: '8', cy: '18', r: '4' }],\n ['path', { d: 'M12 18V2l7 4' }],\n];\n\nexport default Music2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name music-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE4IiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xNiAxOFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/music-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Music3: IconNode = [\n ['circle', { cx: '12', cy: '18', r: '4' }],\n ['path', { d: 'M16 18V2' }],\n];\n\nexport default Music3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name music-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxOFY1bDEyLTJ2MTMiIC8+CiAgPHBhdGggZD0ibTkgOSAxMi0yIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE2IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/music-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Music4: IconNode = [\n ['path', { d: 'M9 18V5l12-2v13' }],\n ['path', { d: 'm9 9 12-2' }],\n ['circle', { cx: '6', cy: '18', r: '3' }],\n ['circle', { cx: '18', cy: '16', r: '3' }],\n];\n\nexport default Music4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name music\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxOFY1bDEyLTJ2MTMiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTYiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/music\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Music: IconNode = [\n ['path', { d: 'M9 18V5l12-2v13' }],\n ['circle', { cx: '6', cy: '18', r: '3' }],\n ['circle', { cx: '18', cy: '16', r: '3' }],\n];\n\nexport default Music;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name navigation-2-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOS4zMSA5LjMxIDUgMjFsNy00IDcgNC0xLjE3LTMuMTciIC8+CiAgPHBhdGggZD0iTTE0LjUzIDguODggMTIgMmwtMS4xNyAzLjE3IiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIyIiB5Mj0iMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/navigation-2-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Navigation2Off: IconNode = [\n ['path', { d: 'M9.31 9.31 5 21l7-4 7 4-1.17-3.17' }],\n ['path', { d: 'M14.53 8.88 12 2l-1.17 3.17' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default Navigation2Off;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name navigation-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjEyIDIgMTkgMjEgMTIgMTcgNSAyMSAxMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/navigation-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Navigation2: IconNode = [['polygon', { points: '12 2 19 21 12 17 5 21 12 2' }]];\n\nexport default Navigation2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name navigation\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjMgMTEgMjIgMiAxMyAyMSAxMSAxMyAzIDExIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/navigation\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Navigation: IconNode = [['polygon', { points: '3 11 22 2 13 21 11 13 3 11' }]];\n\nexport default Navigation;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name navigation-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOC40MyA4LjQzIDMgMTFsOCAyIDIgOCAyLjU3LTUuNDMiIC8+CiAgPHBhdGggZD0iTTE3LjM5IDExLjczIDIyIDJsLTkuNzMgNC42MSIgLz4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/navigation-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NavigationOff: IconNode = [\n ['path', { d: 'M8.43 8.43 3 11l8 2 2 8 2.57-5.43' }],\n ['path', { d: 'M17.39 11.73 22 2l-9.73 4.61' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default NavigationOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name network\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNiIgeT0iMTYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjIiIHk9IjE2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgLz4KICA8cmVjdCB4PSI5IiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgLz4KICA8cGF0aCBkPSJNNSAxNnYtM2ExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2MyIgLz4KICA8cGF0aCBkPSJNMTIgMTJWOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/network\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Network: IconNode = [\n ['rect', { x: '16', y: '16', width: '6', height: '6', rx: '1' }],\n ['rect', { x: '2', y: '16', width: '6', height: '6', rx: '1' }],\n ['rect', { x: '9', y: '2', width: '6', height: '6', rx: '1' }],\n ['path', { d: 'M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3' }],\n ['path', { d: 'M12 12V8' }],\n];\n\nexport default Network;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name newspaper\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMThoLTUiIC8+CiAgPHBhdGggZD0iTTE4IDE0aC04IiAvPgogIDxwYXRoIGQ9Ik00IDIyaDE2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDEtNCAwdi05YTIgMiAwIDAgMSAyLTJoMiIgLz4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSIxMCIgeT0iNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/newspaper\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Newspaper: IconNode = [\n ['path', { d: 'M15 18h-5' }],\n ['path', { d: 'M18 14h-8' }],\n [\n 'path',\n {\n d: 'M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2',\n },\n ],\n ['rect', { width: '8', height: '4', x: '10', y: '6', rx: '1' }],\n];\n\nexport default Newspaper;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name nfc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA4LjMyYTcuNDMgNy40MyAwIDAgMSAwIDcuMzYiIC8+CiAgPHBhdGggZD0iTTkuNDYgNi4yMWExMS43NiAxMS43NiAwIDAgMSAwIDExLjU4IiAvPgogIDxwYXRoIGQ9Ik0xMi45MSA0LjFhMTUuOTEgMTUuOTEgMCAwIDEgLjAxIDE1LjgiIC8+CiAgPHBhdGggZD0iTTE2LjM3IDJhMjAuMTYgMjAuMTYgMCAwIDEgMCAyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/nfc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Nfc: IconNode = [\n ['path', { d: 'M6 8.32a7.43 7.43 0 0 1 0 7.36' }],\n ['path', { d: 'M9.46 6.21a11.76 11.76 0 0 1 0 11.58' }],\n ['path', { d: 'M12.91 4.1a15.91 15.91 0 0 1 .01 15.8' }],\n ['path', { d: 'M16.37 2a20.16 20.16 0 0 1 0 20' }],\n];\n\nexport default Nfc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name non-binary\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxMCIgLz4KICA8cGF0aCBkPSJtOC41IDQgNyA0IiAvPgogIDxwYXRoIGQ9Im04LjUgOCA3LTQiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxNyIgcj0iNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/non-binary\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NonBinary: IconNode = [\n ['path', { d: 'M12 2v10' }],\n ['path', { d: 'm8.5 4 7 4' }],\n ['path', { d: 'm8.5 8 7-4' }],\n ['circle', { cx: '12', cy: '17', r: '5' }],\n];\n\nexport default NonBinary;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notebook-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTcuNCIgLz4KICA8cGF0aCBkPSJNMiA2aDQiIC8+CiAgPHBhdGggZD0iTTIgMTBoNCIgLz4KICA8cGF0aCBkPSJNMiAxNGg0IiAvPgogIDxwYXRoIGQ9Ik0yIDE4aDQiIC8+CiAgPHBhdGggZD0iTTIxLjM3OCA1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/notebook-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NotebookPen: IconNode = [\n ['path', { d: 'M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4' }],\n ['path', { d: 'M2 6h4' }],\n ['path', { d: 'M2 10h4' }],\n ['path', { d: 'M2 14h4' }],\n ['path', { d: 'M2 18h4' }],\n [\n 'path',\n {\n d: 'M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n];\n\nexport default NotebookPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notebook-tabs\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA2aDQiIC8+CiAgPHBhdGggZD0iTTIgMTBoNCIgLz4KICA8cGF0aCBkPSJNMiAxNGg0IiAvPgogIDxwYXRoIGQ9Ik0yIDE4aDQiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjIwIiB4PSI0IiB5PSIyIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTUgMnYyMCIgLz4KICA8cGF0aCBkPSJNMTUgN2g1IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMmg1IiAvPgogIDxwYXRoIGQ9Ik0xNSAxN2g1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/notebook-tabs\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NotebookTabs: IconNode = [\n ['path', { d: 'M2 6h4' }],\n ['path', { d: 'M2 10h4' }],\n ['path', { d: 'M2 14h4' }],\n ['path', { d: 'M2 18h4' }],\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2' }],\n ['path', { d: 'M15 2v20' }],\n ['path', { d: 'M15 7h5' }],\n ['path', { d: 'M15 12h5' }],\n ['path', { d: 'M15 17h5' }],\n];\n\nexport default NotebookTabs;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notebook-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA2aDQiIC8+CiAgPHBhdGggZD0iTTIgMTBoNCIgLz4KICA8cGF0aCBkPSJNMiAxNGg0IiAvPgogIDxwYXRoIGQ9Ik0yIDE4aDQiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjIwIiB4PSI0IiB5PSIyIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNOS41IDhoNSIgLz4KICA8cGF0aCBkPSJNOS41IDEySDE2IiAvPgogIDxwYXRoIGQ9Ik05LjUgMTZIMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/notebook-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NotebookText: IconNode = [\n ['path', { d: 'M2 6h4' }],\n ['path', { d: 'M2 10h4' }],\n ['path', { d: 'M2 14h4' }],\n ['path', { d: 'M2 18h4' }],\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2' }],\n ['path', { d: 'M9.5 8h5' }],\n ['path', { d: 'M9.5 12H16' }],\n ['path', { d: 'M9.5 16H14' }],\n];\n\nexport default NotebookText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notebook\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA2aDQiIC8+CiAgPHBhdGggZD0iTTIgMTBoNCIgLz4KICA8cGF0aCBkPSJNMiAxNGg0IiAvPgogIDxwYXRoIGQ9Ik0yIDE4aDQiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjIwIiB4PSI0IiB5PSIyIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTYgMnYyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/notebook\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Notebook: IconNode = [\n ['path', { d: 'M2 6h4' }],\n ['path', { d: 'M2 10h4' }],\n ['path', { d: 'M2 14h4' }],\n ['path', { d: 'M2 18h4' }],\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2' }],\n ['path', { d: 'M16 2v20' }],\n];\n\nexport default Notebook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notepad-text-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTEyIDJ2NCIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxOHYyYTIgMiAwIDAgMS0yIDJoLTEiIC8+CiAgPHBhdGggZD0iTTEzIDIyaC0yIiAvPgogIDxwYXRoIGQ9Ik03IDIySDZhMiAyIDAgMCAxLTItMnYtMiIgLz4KICA8cGF0aCBkPSJNNCAxNHYtMiIgLz4KICA8cGF0aCBkPSJNNCA4VjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik04IDEwaDYiIC8+CiAgPHBhdGggZD0iTTggMTRoOCIgLz4KICA8cGF0aCBkPSJNOCAxOGg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/notepad-text-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NotepadTextDashed: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M20 12v2' }],\n ['path', { d: 'M20 18v2a2 2 0 0 1-2 2h-1' }],\n ['path', { d: 'M13 22h-2' }],\n ['path', { d: 'M7 22H6a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M4 14v-2' }],\n ['path', { d: 'M4 8V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M8 10h6' }],\n ['path', { d: 'M8 14h8' }],\n ['path', { d: 'M8 18h5' }],\n];\n\nexport default NotepadTextDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notepad-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTEyIDJ2NCIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxOCIgeD0iNCIgeT0iNCIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTggMTBoNiIgLz4KICA8cGF0aCBkPSJNOCAxNGg4IiAvPgogIDxwYXRoIGQ9Ik04IDE4aDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/notepad-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NotepadText: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '16', height: '18', x: '4', y: '4', rx: '2' }],\n ['path', { d: 'M8 10h6' }],\n ['path', { d: 'M8 14h8' }],\n ['path', { d: 'M8 18h5' }],\n];\n\nexport default NotepadText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name nut\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNFYyIiAvPgogIDxwYXRoIGQ9Ik01IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MkE3LjAwMyA3LjAwMyAwIDAgMCAxOSAxNHYtNCIgLz4KICA8cGF0aCBkPSJNMTIgNEM4IDQgNC41IDYgNCA4Yy0uMjQzLjk3LS45MTkgMS45NTItMiAzIDEuMzEtLjA4MiAxLjk3Mi0uMjkgMy0xIC41NC45Mi45ODIgMS4zNTYgMiAyIDEuNDUyLS42NDcgMS45NTQtMS4wOTggMi41LTIgLjU5NS45OTUgMS4xNTEgMS40MjcgMi41IDIgMS4zMS0uNjIxIDEuODYyLTEuMDU4IDIuNS0yIC42MjkuOTc3IDEuMTYyIDEuNDIzIDIuNSAyIDEuMjA5LS41NDggMS42OC0uOTY3IDItMiAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/nut\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Nut: IconNode = [\n ['path', { d: 'M12 4V2' }],\n [\n 'path',\n {\n d: 'M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592A7.003 7.003 0 0 0 19 14v-4',\n },\n ],\n [\n 'path',\n {\n d: 'M12 4C8 4 4.5 6 4 8c-.243.97-.919 1.952-2 3 1.31-.082 1.972-.29 3-1 .54.92.982 1.356 2 2 1.452-.647 1.954-1.098 2.5-2 .595.995 1.151 1.427 2.5 2 1.31-.621 1.862-1.058 2.5-2 .629.977 1.162 1.423 2.5 2 1.209-.548 1.68-.967 2-2 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4Z',\n },\n ],\n];\n\nexport default Nut;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name nut-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNFYyIiAvPgogIDxwYXRoIGQ9Ik01IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MmE3LjAxIDcuMDEgMCAwIDAgNC4xMjUtMi45MzkiIC8+CiAgPHBhdGggZD0iTTE5IDEwdjMuMzQzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmMtMS4zNDktLjU3My0xLjkwNS0xLjAwNS0yLjUtMi0uNTQ2LjkwMi0xLjA0OCAxLjM1My0yLjUgMi0xLjAxOC0uNjQ0LTEuNDYtMS4wOC0yLTItMS4wMjguNzEtMS42OS45MTgtMyAxIDEuMDgxLTEuMDQ4IDEuNzU3LTIuMDMgMi0zIC4xOTQtLjc3Ni44NC0xLjU1MSAxLjc5LTIuMjFtMTEuNjU0IDUuOTk3Yy44ODctLjQ1NyAxLjI4LS44OTEgMS41NTYtMS43ODcgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTQtLjc0IDAtMS40NjEuMDY4LTIuMTUuMTkyIiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIyIiB5Mj0iMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/nut-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NutOff: IconNode = [\n ['path', { d: 'M12 4V2' }],\n [\n 'path',\n {\n d: 'M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592a7.01 7.01 0 0 0 4.125-2.939',\n },\n ],\n ['path', { d: 'M19 10v3.343' }],\n [\n 'path',\n {\n d: 'M12 12c-1.349-.573-1.905-1.005-2.5-2-.546.902-1.048 1.353-2.5 2-1.018-.644-1.46-1.08-2-2-1.028.71-1.69.918-3 1 1.081-1.048 1.757-2.03 2-3 .194-.776.84-1.551 1.79-2.21m11.654 5.997c.887-.457 1.28-.891 1.556-1.787 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4-.74 0-1.461.068-2.15.192',\n },\n ],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default NutOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name octagon-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djQiIC8+CiAgPHBhdGggZD0iTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/octagon-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst OctagonAlert: IconNode = [\n ['path', { d: 'M12 16h.01' }],\n ['path', { d: 'M12 8v4' }],\n [\n 'path',\n {\n d: 'M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z',\n },\n ],\n];\n\nexport default OctagonAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name octagon-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/octagon-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst OctagonMinus: IconNode = [\n [\n 'path',\n {\n d: 'M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z',\n },\n ],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default OctagonMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name octagon-pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTVWOSIgLz4KICA8cGF0aCBkPSJNMTQgMTVWOSIgLz4KICA8cGF0aCBkPSJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/octagon-pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst OctagonPause: IconNode = [\n ['path', { d: 'M10 15V9' }],\n ['path', { d: 'M14 15V9' }],\n [\n 'path',\n {\n d: 'M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z',\n },\n ],\n];\n\nexport default OctagonPause;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name octagon-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0iTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6IiAvPgogIDxwYXRoIGQ9Im05IDkgNiA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/octagon-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst OctagonX: IconNode = [\n ['path', { d: 'm15 9-6 6' }],\n [\n 'path',\n {\n d: 'M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z',\n },\n ],\n ['path', { d: 'm9 9 6 6' }],\n];\n\nexport default OctagonX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name octagon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/octagon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Octagon: IconNode = [\n [\n 'path',\n {\n d: 'M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z',\n },\n ],\n];\n\nexport default Octagon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name omega\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAyMGg0LjVhLjUuNSAwIDAgMCAuNS0uNXYtLjI4MmEuNTIuNTIgMCAwIDAtLjI0Ny0uNDM3IDggOCAwIDEgMSA4LjQ5NC0uMDAxLjUyLjUyIDAgMCAwLS4yNDcuNDM4di4yODJhLjUuNSAwIDAgMCAuNS41SDIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/omega\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Omega: IconNode = [\n [\n 'path',\n {\n d: 'M3 20h4.5a.5.5 0 0 0 .5-.5v-.282a.52.52 0 0 0-.247-.437 8 8 0 1 1 8.494-.001.52.52 0 0 0-.247.438v.282a.5.5 0 0 0 .5.5H21',\n },\n ],\n];\n\nexport default Omega;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name orbit\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuMzQxIDYuNDg0QTEwIDEwIDAgMCAxIDEwLjI2NiAyMS44NSIgLz4KICA8cGF0aCBkPSJNMy42NTkgMTcuNTE2QTEwIDEwIDAgMCAxIDEzLjc0IDIuMTUyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSI1IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSIxOSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/orbit\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Orbit: IconNode = [\n ['path', { d: 'M20.341 6.484A10 10 0 0 1 10.266 21.85' }],\n ['path', { d: 'M3.659 17.516A10 10 0 0 1 13.74 2.152' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['circle', { cx: '19', cy: '5', r: '2' }],\n ['circle', { cx: '5', cy: '19', r: '2' }],\n];\n\nexport default Orbit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name option\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzaDZsNiAxOGg2IiAvPgogIDxwYXRoIGQ9Ik0xNCAzaDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/option\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Option: IconNode = [\n ['path', { d: 'M3 3h6l6 18h6' }],\n ['path', { d: 'M14 3h7' }],\n];\n\nexport default Option;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name origami\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJWNGExIDEgMCAwIDEgMS0xaDYuMjk3YTEgMSAwIDAgMSAuNjUxIDEuNzU5bC00LjY5NiA0LjAyNSIgLz4KICA8cGF0aCBkPSJtMTIgMjEtNy40MTQtNy40MTRBMiAyIDAgMCAxIDQgMTIuMTcyVjYuNDE1YTEuMDAyIDEuMDAyIDAgMCAxIDEuNzA3LS43MDdMMjAgMjAuMDA5IiAvPgogIDxwYXRoIGQ9Im0xMi4yMTQgMy4zODEgOC40MTQgMTQuOTY2YTEgMSAwIDAgMS0uMTY3IDEuMTk5bC0xLjE2OCAxLjE2M2ExIDEgMCAwIDEtLjcwNi4yOTFINi4zNTFhMSAxIDAgMCAxLS42MjUtLjIxOUwzLjI1IDE4LjhhMSAxIDAgMCAxIC42MzEtMS43ODFsNC4xNjUuMDI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/origami\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Origami: IconNode = [\n ['path', { d: 'M12 12V4a1 1 0 0 1 1-1h6.297a1 1 0 0 1 .651 1.759l-4.696 4.025' }],\n [\n 'path',\n { d: 'm12 21-7.414-7.414A2 2 0 0 1 4 12.172V6.415a1.002 1.002 0 0 1 1.707-.707L20 20.009' },\n ],\n [\n 'path',\n {\n d: 'm12.214 3.381 8.414 14.966a1 1 0 0 1-.167 1.199l-1.168 1.163a1 1 0 0 1-.706.291H6.351a1 1 0 0 1-.625-.219L3.25 18.8a1 1 0 0 1 .631-1.781l4.165.027',\n },\n ],\n];\n\nexport default Origami;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3Y2IiAvPgogIDxwYXRoIGQ9Ik0xNi43NiAzYTIgMiAwIDAgMSAxLjggMS4xbDIuMjMgNC40NzlhMiAyIDAgMCAxIC4yMS44OTFWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOS40NzJhMiAyIDAgMCAxIC4yMTEtLjg5NEw1LjQ1IDQuMUEyIDIgMCAwIDEgNy4yNCAzeiIgLz4KICA8cGF0aCBkPSJNMy4wNTQgOS4wMTNoMTcuODkzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/package-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Package2: IconNode = [\n ['path', { d: 'M12 3v6' }],\n [\n 'path',\n {\n d: 'M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z',\n },\n ],\n ['path', { d: 'M3.054 9.013h17.893' }],\n];\n\nexport default Package2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTYgMiAyIDQtNCIgLz4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/package-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackageCheck: IconNode = [\n ['path', { d: 'm16 16 2 2 4-4' }],\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12' }],\n];\n\nexport default PackageCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTZoNiIgLz4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/package-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackageMinus: IconNode = [\n ['path', { d: 'M16 16h6' }],\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12' }],\n];\n\nexport default PackageMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTkiIC8+CiAgPHBhdGggZD0iTTE1LjE3IDIuMjFhMS42NyAxLjY3IDAgMCAxIDEuNjMgMEwyMSA0LjU3YTEuOTMgMS45MyAwIDAgMSAwIDMuMzZMOC44MiAxNC43OWExLjY1NSAxLjY1NSAwIDAgMS0xLjY0IDBMMyAxMi40M2ExLjkzIDEuOTMgMCAwIDEgMC0zLjM2eiIgLz4KICA8cGF0aCBkPSJNMjAgMTN2My44N2EyLjA2IDIuMDYgMCAwIDEtMS4xMSAxLjgzbC02IDMuMDhhMS45MyAxLjkzIDAgMCAxLTEuNzggMGwtNi0zLjA4QTIuMDYgMi4wNiAwIDAgMSA0IDE2Ljg3VjEzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMi40M2ExLjkzIDEuOTMgMCAwIDAgMC0zLjM2TDguODMgMi4yYTEuNjQgMS42NCAwIDAgMC0xLjYzIDBMMyA0LjU3YTEuOTMgMS45MyAwIDAgMCAwIDMuMzZsMTIuMTggNi44NmExLjYzNiAxLjYzNiAwIDAgMCAxLjYzIDB6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/package-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackageOpen: IconNode = [\n ['path', { d: 'M12 22v-9' }],\n [\n 'path',\n {\n d: 'M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.655 1.655 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z',\n },\n ],\n [\n 'path',\n {\n d: 'M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13',\n },\n ],\n [\n 'path',\n {\n d: 'M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.636 1.636 0 0 0 1.63 0z',\n },\n ],\n];\n\nexport default PackageOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTZoNiIgLz4KICA8cGF0aCBkPSJNMTkgMTN2NiIgLz4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/package-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackagePlus: IconNode = [\n ['path', { d: 'M16 16h6' }],\n ['path', { d: 'M19 13v6' }],\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12' }],\n];\n\nexport default PackagePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KICA8Y2lyY2xlIGN4PSIxOC41IiBjeT0iMTUuNSIgcj0iMi41IiAvPgogIDxwYXRoIGQ9Ik0yMC4yNyAxNy4yNyAyMiAxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/package-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackageSearch: IconNode = [\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12' }],\n ['circle', { cx: '18.5', cy: '15.5', r: '2.5' }],\n ['path', { d: 'M20.27 17.27 22 19' }],\n];\n\nexport default PackageSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KICA8cGF0aCBkPSJtMTcgMTMgNSA1bS01IDAgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/package-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackageX: IconNode = [\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12' }],\n ['path', { d: 'm17 13 5 5m-5 0 5-5' }],\n];\n\nexport default PackageX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjEuNzNhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M3oiIC8+CiAgPHBhdGggZD0iTTEyIDIyVjEyIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxwYXRoIGQ9Im03LjUgNC4yNyA5IDUuMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/package\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Package: IconNode = [\n [\n 'path',\n {\n d: 'M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z',\n },\n ],\n ['path', { d: 'M12 22V12' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n];\n\nexport default Package;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paint-roller\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeD0iMiIgeT0iMiIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTEwIDE2di0yYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiIgLz4KICA8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI2IiB4PSI4IiB5PSIxNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paint-roller\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PaintRoller: IconNode = [\n ['rect', { width: '16', height: '6', x: '2', y: '2', rx: '2' }],\n ['path', { d: 'M10 16v-2a2 2 0 0 1 2-2h8a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2' }],\n ['rect', { width: '4', height: '6', x: '8', y: '16', rx: '1' }],\n];\n\nexport default PaintRoller;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paint-bucket\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNyA2IDIiIC8+CiAgPHBhdGggZD0iTTE4Ljk5MiAxMkgyLjA0MSIgLz4KICA8cGF0aCBkPSJNMjEuMTQ1IDE4LjM4QTMuMzQgMy4zNCAwIDAgMSAyMCAxNi41YTMuMyAzLjMgMCAwIDEtMS4xNDUgMS44OGMtLjU3NS40Ni0uODU1IDEuMDItLjg1NSAxLjU5NUEyIDIgMCAwIDAgMjAgMjJhMiAyIDAgMCAwIDItMi4wMjVjMC0uNTgtLjI4NS0xLjEzLS44NTUtMS41OTUiIC8+CiAgPHBhdGggZD0ibTguNSA0LjUgMi4xNDgtMi4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMS43MDQgMGw3LjI5NiA3LjI5NmExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC03LjU5MiA3LjU5MmEzLjYxNSAzLjYxNSAwIDAgMS01LjExMiAwbC0zLjg4OC0zLjg4OGEzLjYxNSAzLjYxNSAwIDAgMSAwLTUuMTEyTDUuNjcgNy4zMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/paint-bucket\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PaintBucket: IconNode = [\n ['path', { d: 'M11 7 6 2' }],\n ['path', { d: 'M18.992 12H2.041' }],\n [\n 'path',\n {\n d: 'M21.145 18.38A3.34 3.34 0 0 1 20 16.5a3.3 3.3 0 0 1-1.145 1.88c-.575.46-.855 1.02-.855 1.595A2 2 0 0 0 20 22a2 2 0 0 0 2-2.025c0-.58-.285-1.13-.855-1.595',\n },\n ],\n [\n 'path',\n {\n d: 'm8.5 4.5 2.148-2.148a1.205 1.205 0 0 1 1.704 0l7.296 7.296a1.205 1.205 0 0 1 0 1.704l-7.592 7.592a3.615 3.615 0 0 1-5.112 0l-3.888-3.888a3.615 3.615 0 0 1 0-5.112L5.67 7.33',\n },\n ],\n];\n\nexport default PaintBucket;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paintbrush-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNCAydjQiIC8+CiAgPHBhdGggZD0iTTE3IDJhMSAxIDAgMCAxIDEgMXY5SDZWM2ExIDEgMCAwIDEgMS0xeiIgLz4KICA8cGF0aCBkPSJNNiAxMmExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMCAwIDIgMmgyYTEgMSAwIDAgMSAxIDF2Mi45YTIgMiAwIDEgMCA0IDBWMTdhMSAxIDAgMCAxIDEtMWgyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/paintbrush-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PaintbrushVertical: IconNode = [\n ['path', { d: 'M10 2v2' }],\n ['path', { d: 'M14 2v4' }],\n ['path', { d: 'M17 2a1 1 0 0 1 1 1v9H6V3a1 1 0 0 1 1-1z' }],\n [\n 'path',\n {\n d: 'M6 12a1 1 0 0 0-1 1v1a2 2 0 0 0 2 2h2a1 1 0 0 1 1 1v2.9a2 2 0 1 0 4 0V17a1 1 0 0 1 1-1h2a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1',\n },\n ],\n];\n\nexport default PaintbrushVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paintbrush\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuNjIyIDE3Ljg5Ny0xMC42OC0yLjkxMyIgLz4KICA8cGF0aCBkPSJNMTguMzc2IDIuNjIyYTEgMSAwIDEgMSAzLjAwMiAzLjAwMkwxNy4zNiA5LjY0M2EuNS41IDAgMCAwIDAgLjcwN2wuOTQ0Ljk0NGEyLjQxIDIuNDEgMCAwIDEgMCAzLjQwOGwtLjk0NC45NDRhLjUuNSAwIDAgMS0uNzA3IDBMOC4zNTQgNy4zNDhhLjUuNSAwIDAgMSAwLS43MDdsLjk0NC0uOTQ0YTIuNDEgMi40MSAwIDAgMSAzLjQwOCAwbC45NDQuOTQ0YS41LjUgMCAwIDAgLjcwNyAweiIgLz4KICA8cGF0aCBkPSJNOSA4Yy0xLjgwNCAyLjcxLTMuOTcgMy40Ni02LjU4MyAzLjk0OGEuNTA3LjUwNyAwIDAgMC0uMzAyLjgxOWw3LjMyIDguODgzYTEgMSAwIDAgMCAxLjE4NS4yMDRDMTIuNzM1IDIwLjQwNSAxNiAxNi43OTIgMTYgMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paintbrush\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Paintbrush: IconNode = [\n ['path', { d: 'm14.622 17.897-10.68-2.913' }],\n [\n 'path',\n {\n d: 'M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15',\n },\n ],\n];\n\nexport default Paintbrush;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name palette\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJhMSAxIDAgMCAxIDAtMjAgMTAgOSAwIDAgMSAxMCA5IDUgNSAwIDAgMS01IDVoLTIuMjVhMS43NSAxLjc1IDAgMCAwLTEuNCAyLjhsLjMuNGExLjc1IDEuNzUgMCAwIDEtMS40IDIuOHoiIC8+CiAgPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjYuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTAuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSI2LjUiIGN5PSIxMi41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/palette\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Palette: IconNode = [\n [\n 'path',\n {\n d: 'M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z',\n },\n ],\n ['circle', { cx: '13.5', cy: '6.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '17.5', cy: '10.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '6.5', cy: '12.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '8.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n];\n\nexport default Palette;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panda\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMjUgMTcuMjVoMS41TDEyIDE4eiIgLz4KICA8cGF0aCBkPSJtMTUgMTIgMiAyIiAvPgogIDxwYXRoIGQ9Ik0xOCA2LjVhLjUuNSAwIDAgMC0uNS0uNSIgLz4KICA8cGF0aCBkPSJNMjAuNjkgOS42N2E0LjUgNC41IDAgMSAwLTcuMDQtNS41IDguMzUgOC4zNSAwIDAgMC0zLjMgMCA0LjUgNC41IDAgMSAwLTcuMDQgNS41QzIuNDkgMTEuMiAyIDEyLjg4IDIgMTQuNSAyIDE5LjQ3IDYuNDggMjIgMTIgMjJzMTAtMi41MyAxMC03LjVjMC0xLjYyLS40OC0zLjMtMS4zLTQuODMiIC8+CiAgPHBhdGggZD0iTTYgNi41YS40OTUuNDk1IDAgMCAxIC41LS41IiAvPgogIDxwYXRoIGQ9Im05IDEyLTIgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panda\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Panda: IconNode = [\n ['path', { d: 'M11.25 17.25h1.5L12 18z' }],\n ['path', { d: 'm15 12 2 2' }],\n ['path', { d: 'M18 6.5a.5.5 0 0 0-.5-.5' }],\n [\n 'path',\n {\n d: 'M20.69 9.67a4.5 4.5 0 1 0-7.04-5.5 8.35 8.35 0 0 0-3.3 0 4.5 4.5 0 1 0-7.04 5.5C2.49 11.2 2 12.88 2 14.5 2 19.47 6.48 22 12 22s10-2.53 10-7.5c0-1.62-.48-3.3-1.3-4.83',\n },\n ],\n ['path', { d: 'M6 6.5a.495.495 0 0 1 .5-.5' }],\n ['path', { d: 'm9 12-2 2' }],\n];\n\nexport default Panda;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-bottom-close\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDE4IiAvPgogIDxwYXRoIGQ9Im0xNSA4LTMgMy0zLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-bottom-close\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelBottomClose: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'm15 8-3 3-3-3' }],\n];\n\nexport default PanelBottomClose;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-bottom-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNCAxNWgxIiAvPgogIDxwYXRoIGQ9Ik0xOSAxNWgyIiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDIiIC8+CiAgPHBhdGggZD0iTTkgMTVoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-bottom-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelBottomDashed: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M14 15h1' }],\n ['path', { d: 'M19 15h2' }],\n ['path', { d: 'M3 15h2' }],\n ['path', { d: 'M9 15h1' }],\n];\n\nexport default PanelBottomDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-bottom-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDE4IiAvPgogIDxwYXRoIGQ9Im05IDEwIDMtMyAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-bottom-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelBottomOpen: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'm9 10 3-3 3 3' }],\n];\n\nexport default PanelBottomOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-bottom\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panel-bottom\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelBottom: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 15h18' }],\n];\n\nexport default PanelBottom;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-left-close\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+CiAgPHBhdGggZD0ibTE2IDE1LTMtMyAzLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-left-close\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelLeftClose: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 3v18' }],\n ['path', { d: 'm16 15-3-3 3-3' }],\n];\n\nexport default PanelLeftClose;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-left-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDE0djEiIC8+CiAgPHBhdGggZD0iTTkgMTl2MiIgLz4KICA8cGF0aCBkPSJNOSAzdjIiIC8+CiAgPHBhdGggZD0iTTkgOXYxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panel-left-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelLeftDashed: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 14v1' }],\n ['path', { d: 'M9 19v2' }],\n ['path', { d: 'M9 3v2' }],\n ['path', { d: 'M9 9v1' }],\n];\n\nexport default PanelLeftDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-left-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+CiAgPHBhdGggZD0ibTE0IDkgMyAzLTMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-left-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelLeftOpen: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 3v18' }],\n ['path', { d: 'm14 9 3 3-3 3' }],\n];\n\nexport default PanelLeftOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-left-right-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTBWOSIgLz4KICA8cGF0aCBkPSJNMTUgMTV2LTEiIC8+CiAgPHBhdGggZD0iTTE1IDIxdi0yIiAvPgogIDxwYXRoIGQ9Ik0xNSA1VjMiIC8+CiAgPHBhdGggZD0iTTkgMTBWOSIgLz4KICA8cGF0aCBkPSJNOSAxNXYtMSIgLz4KICA8cGF0aCBkPSJNOSAyMXYtMiIgLz4KICA8cGF0aCBkPSJNOSA1VjMiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-left-right-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelLeftRightDashed: IconNode = [\n ['path', { d: 'M15 10V9' }],\n ['path', { d: 'M15 15v-1' }],\n ['path', { d: 'M15 21v-2' }],\n ['path', { d: 'M15 5V3' }],\n ['path', { d: 'M9 10V9' }],\n ['path', { d: 'M9 15v-1' }],\n ['path', { d: 'M9 21v-2' }],\n ['path', { d: 'M9 5V3' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default PanelLeftRightDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 3v18' }],\n];\n\nexport default PanelLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-right-close\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAzdjE4IiAvPgogIDxwYXRoIGQ9Im04IDkgMyAzLTMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-right-close\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelRightClose: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M15 3v18' }],\n ['path', { d: 'm8 9 3 3-3 3' }],\n];\n\nexport default PanelRightClose;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-right-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNHYxIiAvPgogIDxwYXRoIGQ9Ik0xNSAxOXYyIiAvPgogIDxwYXRoIGQ9Ik0xNSAzdjIiIC8+CiAgPHBhdGggZD0iTTE1IDl2MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-right-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelRightDashed: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M15 14v1' }],\n ['path', { d: 'M15 19v2' }],\n ['path', { d: 'M15 3v2' }],\n ['path', { d: 'M15 9v1' }],\n];\n\nexport default PanelRightDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-right-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAzdjE4IiAvPgogIDxwYXRoIGQ9Im0xMCAxNS0zLTMgMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panel-right-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelRightOpen: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M15 3v18' }],\n ['path', { d: 'm10 15-3-3 3-3' }],\n];\n\nexport default PanelRightOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAzdjE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panel-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelRight: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M15 3v18' }],\n];\n\nexport default PanelRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-top-bottom-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTVoMSIgLz4KICA8cGF0aCBkPSJNMTQgOWgxIiAvPgogIDxwYXRoIGQ9Ik0xOSAxNWgyIiAvPgogIDxwYXRoIGQ9Ik0xOSA5aDIiIC8+CiAgPHBhdGggZD0iTTMgMTVoMiIgLz4KICA8cGF0aCBkPSJNMyA5aDIiIC8+CiAgPHBhdGggZD0iTTkgMTVoMSIgLz4KICA8cGF0aCBkPSJNOSA5aDEiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-top-bottom-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelTopBottomDashed: IconNode = [\n ['path', { d: 'M14 15h1' }],\n ['path', { d: 'M14 9h1' }],\n ['path', { d: 'M19 15h2' }],\n ['path', { d: 'M19 9h2' }],\n ['path', { d: 'M3 15h2' }],\n ['path', { d: 'M3 9h2' }],\n ['path', { d: 'M9 15h1' }],\n ['path', { d: 'M9 9h1' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default PanelTopBottomDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-top-close\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0ibTkgMTYgMy0zIDMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-top-close\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelTopClose: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'm9 16 3-3 3 3' }],\n];\n\nexport default PanelTopClose;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-top-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNCA5aDEiIC8+CiAgPHBhdGggZD0iTTE5IDloMiIgLz4KICA8cGF0aCBkPSJNMyA5aDIiIC8+CiAgPHBhdGggZD0iTTkgOWgxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panel-top-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelTopDashed: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M14 9h1' }],\n ['path', { d: 'M19 9h2' }],\n ['path', { d: 'M3 9h2' }],\n ['path', { d: 'M9 9h1' }],\n];\n\nexport default PanelTopDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-top-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0ibTE1IDE0LTMgMy0zLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-top-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelTopOpen: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'm15 14-3 3-3-3' }],\n];\n\nexport default PanelTopOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-top\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-top\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelTop: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n];\n\nexport default PanelTop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panels-left-bottom\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+CiAgPHBhdGggZD0iTTkgMTVoMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panels-left-bottom\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelsLeftBottom: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 3v18' }],\n ['path', { d: 'M9 15h12' }],\n];\n\nexport default PanelsLeftBottom;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panels-right-bottom\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDEyIiAvPgogIDxwYXRoIGQ9Ik0xNSAzdjE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panels-right-bottom\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelsRightBottom: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 15h12' }],\n ['path', { d: 'M15 3v18' }],\n];\n\nexport default PanelsRightBottom;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panels-top-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0iTTkgMjFWOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panels-top-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelsTopLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'M9 21V9' }],\n];\n\nexport default PanelsTopLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paperclip\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgNi04LjQxNCA4LjU4NmEyIDIgMCAwIDAgMi44MjkgMi44MjlsOC40MTQtOC41ODZhNCA0IDAgMSAwLTUuNjU3LTUuNjU3bC04LjM3OSA4LjU1MWE2IDYgMCAxIDAgOC40ODUgOC40ODVsOC4zNzktOC41NTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paperclip\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Paperclip: IconNode = [\n [\n 'path',\n {\n d: 'm16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551',\n },\n ],\n];\n\nexport default Paperclip;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name parentheses\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyMXMtNC0zLTQtOSA0LTkgNC05IiAvPgogIDxwYXRoIGQ9Ik0xNiAzczQgMyA0IDktNCA5LTQgOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/parentheses\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Parentheses: IconNode = [\n ['path', { d: 'M8 21s-4-3-4-9 4-9 4-9' }],\n ['path', { d: 'M16 3s4 3 4 9-4 9-4 9' }],\n];\n\nexport default Parentheses;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name parking-meter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTVoMiIgLz4KICA8cGF0aCBkPSJNMTIgMTJ2MyIgLz4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTUuMjgyIDE5YTEgMSAwIDAgMCAuOTQ4LS42OGwyLjM3LTYuOTg4YTcgNyAwIDEgMC0xMy4yIDBsMi4zNyA2Ljk4OGExIDEgMCAwIDAgLjk0OC42OHoiIC8+CiAgPHBhdGggZD0iTTkgOWEzIDMgMCAxIDEgNiAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/parking-meter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ParkingMeter: IconNode = [\n ['path', { d: 'M11 15h2' }],\n ['path', { d: 'M12 12v3' }],\n ['path', { d: 'M12 19v3' }],\n [\n 'path',\n {\n d: 'M15.282 19a1 1 0 0 0 .948-.68l2.37-6.988a7 7 0 1 0-13.2 0l2.37 6.988a1 1 0 0 0 .948.68z',\n },\n ],\n ['path', { d: 'M9 9a3 3 0 1 1 6 0' }],\n];\n\nexport default ParkingMeter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name party-popper\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNS44IDExLjMgMiAyMmwxMC43LTMuNzkiIC8+CiAgPHBhdGggZD0iTTQgM2guMDEiIC8+CiAgPHBhdGggZD0iTTIyIDhoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNSAyaC4wMSIgLz4KICA8cGF0aCBkPSJNMjIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Im0yMiAyLTIuMjQuNzVhMi45IDIuOSAwIDAgMC0xLjk2IDMuMTJjLjEuODYtLjU3IDEuNjMtMS40NSAxLjYzaC0uMzhjLS44NiAwLTEuNi42LTEuNzYgMS40NEwxNCAxMCIgLz4KICA8cGF0aCBkPSJtMjIgMTMtLjgyLS4zM2MtLjg2LS4zNC0xLjgyLjItMS45OCAxLjExYy0uMTEuNy0uNzIgMS4yMi0xLjQzIDEuMjJIMTciIC8+CiAgPHBhdGggZD0ibTExIDIgLjMzLjgyYy4zNC44Ni0uMiAxLjgyLTEuMTEgMS45OEM5LjUyIDQuOSA5IDUuNTIgOSA2LjIzVjciIC8+CiAgPHBhdGggZD0iTTExIDEzYzEuOTMgMS45MyAyLjgzIDQuMTcgMiA1LS44My44My0zLjA3LS4wNy01LTItMS45My0xLjkzLTIuODMtNC4xNy0yLTUgLjgzLS44MyAzLjA3LjA3IDUgMloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/party-popper\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PartyPopper: IconNode = [\n ['path', { d: 'M5.8 11.3 2 22l10.7-3.79' }],\n ['path', { d: 'M4 3h.01' }],\n ['path', { d: 'M22 8h.01' }],\n ['path', { d: 'M15 2h.01' }],\n ['path', { d: 'M22 20h.01' }],\n [\n 'path',\n {\n d: 'm22 2-2.24.75a2.9 2.9 0 0 0-1.96 3.12c.1.86-.57 1.63-1.45 1.63h-.38c-.86 0-1.6.6-1.76 1.44L14 10',\n },\n ],\n ['path', { d: 'm22 13-.82-.33c-.86-.34-1.82.2-1.98 1.11c-.11.7-.72 1.22-1.43 1.22H17' }],\n ['path', { d: 'm11 2 .33.82c.34.86-.2 1.82-1.11 1.98C9.52 4.9 9 5.52 9 6.23V7' }],\n [\n 'path',\n {\n d: 'M11 13c1.93 1.93 2.83 4.17 2 5-.83.83-3.07-.07-5-2-1.93-1.93-2.83-4.17-2-5 .83-.83 3.07.07 5 2Z',\n },\n ],\n];\n\nexport default PartyPopper;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNCIgeT0iMyIgd2lkdGg9IjUiIGhlaWdodD0iMTgiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjUiIHk9IjMiIHdpZHRoPSI1IiBoZWlnaHQ9IjE4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pause: IconNode = [\n ['rect', { x: '14', y: '3', width: '5', height: '18', rx: '1' }],\n ['rect', { x: '5', y: '3', width: '5', height: '18', rx: '1' }],\n];\n\nexport default Pause;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paw-print\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjQiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSI4IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMTYiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTkgMTBhNSA1IDAgMCAxIDUgNXYzLjVhMy41IDMuNSAwIDAgMS02Ljg0IDEuMDQ1UTYuNTIgMTcuNDggNC40NiAxNi44NEEzLjUgMy41IDAgMCAxIDUuNSAxMFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paw-print\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PawPrint: IconNode = [\n ['circle', { cx: '11', cy: '4', r: '2' }],\n ['circle', { cx: '18', cy: '8', r: '2' }],\n ['circle', { cx: '20', cy: '16', r: '2' }],\n [\n 'path',\n {\n d: 'M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z',\n },\n ],\n];\n\nexport default PawPrint;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pc-case\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHg9IjUiIHk9IjIiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTkgNmg2IiAvPgogIDxwYXRoIGQ9Ik05IDEwaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pc-case\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PcCase: IconNode = [\n ['rect', { width: '14', height: '20', x: '5', y: '2', rx: '2' }],\n ['path', { d: 'M15 14h.01' }],\n ['path', { d: 'M9 6h6' }],\n ['path', { d: 'M9 10h6' }],\n];\n\nexport default PcCase;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pen-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjFoOCIgLz4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pen-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PenLine: IconNode = [\n ['path', { d: 'M13 21h8' }],\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n },\n ],\n];\n\nexport default PenLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pen-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTAtNi4xNTcgNi4xNjJhMiAyIDAgMCAwLS41LjgzM2wtMS4zMjIgNC4zNmEuNS41IDAgMCAwIC42MjIuNjI0bDQuMzU4LTEuMzIzYTIgMiAwIDAgMCAuODMtLjVMMTQgMTMuOTgyIiAvPgogIDxwYXRoIGQ9Im0xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pen-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PenOff: IconNode = [\n [\n 'path',\n {\n d: 'm10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982',\n },\n ],\n ['path', { d: 'm12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default PenOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pen-tool\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNzA3IDIxLjI5M2ExIDEgMCAwIDEtMS40MTQgMGwtMS41ODYtMS41ODZhMSAxIDAgMCAxIDAtMS40MTRsNS41ODYtNS41ODZhMSAxIDAgMCAxIDEuNDE0IDBsMS41ODYgMS41ODZhMSAxIDAgMCAxIDAgMS40MTR6IiAvPgogIDxwYXRoIGQ9Im0xOCAxMy0xLjM3NS02Ljg3NGExIDEgMCAwIDAtLjc0Ni0uNzc2TDMuMjM1IDIuMDI4YTEgMSAwIDAgMC0xLjIwNyAxLjIwN0w1LjM1IDE1Ljg3OWExIDEgMCAwIDAgLjc3Ni43NDZMMTMgMTgiIC8+CiAgPHBhdGggZD0ibTIuMyAyLjMgNy4yODYgNy4yODYiIC8+CiAgPGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pen-tool\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PenTool: IconNode = [\n [\n 'path',\n {\n d: 'M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z',\n },\n ],\n [\n 'path',\n {\n d: 'm18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18',\n },\n ],\n ['path', { d: 'm2.3 2.3 7.286 7.286' }],\n ['circle', { cx: '11', cy: '11', r: '2' }],\n];\n\nexport default PenTool;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pen: IconNode = [\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n },\n ],\n];\n\nexport default Pen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pencil-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjFoOCIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+CiAgPHBhdGggZD0iTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pencil-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PencilLine: IconNode = [\n ['path', { d: 'M13 21h8' }],\n ['path', { d: 'm15 5 4 4' }],\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n },\n ],\n];\n\nexport default PencilLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pencil-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTAtNi4xNTcgNi4xNjJhMiAyIDAgMCAwLS41LjgzM2wtMS4zMjIgNC4zNmEuNS41IDAgMCAwIC42MjIuNjI0bDQuMzU4LTEuMzIzYTIgMiAwIDAgMCAuODMtLjVMMTQgMTMuOTgyIiAvPgogIDxwYXRoIGQ9Im0xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MyIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pencil-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PencilOff: IconNode = [\n [\n 'path',\n {\n d: 'm10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982',\n },\n ],\n ['path', { d: 'm12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353' }],\n ['path', { d: 'm15 5 4 4' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default PencilOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pencil-ruler\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNyA4LjcgMi43YTIuNDEgMi40MSAwIDAgMC0zLjQgMEwyLjcgNS4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNEw3IDEzIiAvPgogIDxwYXRoIGQ9Im04IDYgMi0yIiAvPgogIDxwYXRoIGQ9Im0xOCAxNiAyLTIiIC8+CiAgPHBhdGggZD0ibTE3IDExIDQuMyA0LjNjLjk0Ljk0Ljk0IDIuNDYgMCAzLjRsLTIuNiAyLjZjLS45NC45NC0yLjQ2Ljk0LTMuNCAwTDExIDE3IiAvPgogIDxwYXRoIGQ9Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6IiAvPgogIDxwYXRoIGQ9Im0xNSA1IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pencil-ruler\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PencilRuler: IconNode = [\n ['path', { d: 'M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13' }],\n ['path', { d: 'm8 6 2-2' }],\n ['path', { d: 'm18 16 2-2' }],\n ['path', { d: 'm17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17' }],\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n },\n ],\n ['path', { d: 'm15 5 4 4' }],\n];\n\nexport default PencilRuler;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pentagon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuODMgMi4zOGEyIDIgMCAwIDEgMi4zNCAwbDggNS43NGEyIDIgMCAwIDEgLjczIDIuMjVsLTMuMDQgOS4yNmEyIDIgMCAwIDEtMS45IDEuMzdINy4wNGEyIDIgMCAwIDEtMS45LTEuMzdMMi4xIDEwLjM3YTIgMiAwIDAgMSAuNzMtMi4yNXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pentagon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pentagon: IconNode = [\n [\n 'path',\n {\n d: 'M10.83 2.38a2 2 0 0 1 2.34 0l8 5.74a2 2 0 0 1 .73 2.25l-3.04 9.26a2 2 0 0 1-1.9 1.37H7.04a2 2 0 0 1-1.9-1.37L2.1 10.37a2 2 0 0 1 .73-2.25z',\n },\n ],\n];\n\nexport default Pentagon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pencil\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pencil: IconNode = [\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n },\n ],\n ['path', { d: 'm15 5 4 4' }],\n];\n\nexport default Pencil;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTkiIHgyPSI1IiB5MT0iNSIgeTI9IjE5IiAvPgogIDxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iMi41IiAvPgogIDxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNy41IiByPSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Percent: IconNode = [\n ['line', { x1: '19', x2: '5', y1: '5', y2: '19' }],\n ['circle', { cx: '6.5', cy: '6.5', r: '2.5' }],\n ['circle', { cx: '17.5', cy: '17.5', r: '2.5' }],\n];\n\nexport default Percent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name person-standing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEiIC8+CiAgPHBhdGggZD0ibTkgMjAgMy02IDMgNiIgLz4KICA8cGF0aCBkPSJtNiA4IDYgMiA2LTIiIC8+CiAgPHBhdGggZD0iTTEyIDEwdjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/person-standing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PersonStanding: IconNode = [\n ['circle', { cx: '12', cy: '5', r: '1' }],\n ['path', { d: 'm9 20 3-6 3 6' }],\n ['path', { d: 'm6 8 6 2 6-2' }],\n ['path', { d: 'M12 10v4' }],\n];\n\nexport default PersonStanding;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name philippine-peso\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTFINCIgLz4KICA8cGF0aCBkPSJNMjAgN0g0IiAvPgogIDxwYXRoIGQ9Ik03IDIxVjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAwIDEySDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/philippine-peso\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhilippinePeso: IconNode = [\n ['path', { d: 'M20 11H4' }],\n ['path', { d: 'M20 7H4' }],\n ['path', { d: 'M7 21V4a1 1 0 0 1 1-1h4a1 1 0 0 1 0 12H7' }],\n];\n\nexport default PhilippinePeso;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-call\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMmE5IDkgMCAwIDEgOSA5IiAvPgogIDxwYXRoIGQ9Ik0xMyA2YTUgNSAwIDAgMSA1IDUiIC8+CiAgPHBhdGggZD0iTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/phone-call\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneCall: IconNode = [\n ['path', { d: 'M13 2a9 9 0 0 1 9 9' }],\n ['path', { d: 'M13 6a5 5 0 0 1 5 5' }],\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default PhoneCall;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-forwarded\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNmg4IiAvPgogIDxwYXRoIGQ9Im0xOCAyIDQgNC00IDQiIC8+CiAgPHBhdGggZD0iTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/phone-forwarded\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneForwarded: IconNode = [\n ['path', { d: 'M14 6h8' }],\n ['path', { d: 'm18 2 4 4-4 4' }],\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default PhoneForwarded;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-incoming\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMnY2aDYiIC8+CiAgPHBhdGggZD0ibTIyIDItNiA2IiAvPgogIDxwYXRoIGQ9Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/phone-incoming\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneIncoming: IconNode = [\n ['path', { d: 'M16 2v6h6' }],\n ['path', { d: 'm22 2-6 6' }],\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default PhoneIncoming;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-missed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMiA2IDYiIC8+CiAgPHBhdGggZD0ibTIyIDItNiA2IiAvPgogIDxwYXRoIGQ9Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/phone-missed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneMissed: IconNode = [\n ['path', { d: 'm16 2 6 6' }],\n ['path', { d: 'm22 2-6 6' }],\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default PhoneMissed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMSAxMy45YTE0IDE0IDAgMCAwIDMuNzMyIDIuNjY4IDEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMiAxOCAxOCAwIDAgMS0xMi43MjgtNS4yNzIiIC8+CiAgPHBhdGggZD0iTTIyIDIgMiAyMiIgLz4KICA8cGF0aCBkPSJNNC43NiAxMy41ODJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgLjI0NC40NzMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/phone-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneOff: IconNode = [\n [\n 'path',\n {\n d: 'M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272',\n },\n ],\n ['path', { d: 'M22 2 2 22' }],\n [\n 'path',\n {\n d: 'M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473',\n },\n ],\n];\n\nexport default PhoneOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-outgoing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgOCA2LTYiIC8+CiAgPHBhdGggZD0iTTIyIDhWMmgtNiIgLz4KICA8cGF0aCBkPSJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/phone-outgoing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneOutgoing: IconNode = [\n ['path', { d: 'm16 8 6-6' }],\n ['path', { d: 'M22 8V2h-6' }],\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default PhoneOutgoing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/phone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Phone: IconNode = [\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default Phone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pi\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iOSIgeDI9IjkiIHkxPSI0IiB5Mj0iMjAiIC8+CiAgPHBhdGggZD0iTTQgN2MwLTEuNyAxLjMtMyAzLTNoMTMiIC8+CiAgPHBhdGggZD0iTTE4IDIwYy0xLjcgMC0zLTEuMy0zLTNWNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pi\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pi: IconNode = [\n ['line', { x1: '9', x2: '9', y1: '4', y2: '20' }],\n ['path', { d: 'M4 7c0-1.7 1.3-3 3-3h13' }],\n ['path', { d: 'M18 20c-1.7 0-3-1.3-3-3V4' }],\n];\n\nexport default Pi;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name piano\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguNSA4Yy0xLjQgMC0yLjYtLjgtMy4yLTJBNi44NyA2Ljg3IDAgMCAwIDIgOXYxMWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTguNUMyMiA5LjYgMjAuNCA4IDE4LjUgOCIgLz4KICA8cGF0aCBkPSJNMiAxNGgyMCIgLz4KICA8cGF0aCBkPSJNNiAxNHY0IiAvPgogIDxwYXRoIGQ9Ik0xMCAxNHY0IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNHY0IiAvPgogIDxwYXRoIGQ9Ik0xOCAxNHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/piano\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Piano: IconNode = [\n [\n 'path',\n {\n d: 'M18.5 8c-1.4 0-2.6-.8-3.2-2A6.87 6.87 0 0 0 2 9v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8.5C22 9.6 20.4 8 18.5 8',\n },\n ],\n ['path', { d: 'M2 14h20' }],\n ['path', { d: 'M6 14v4' }],\n ['path', { d: 'M10 14v4' }],\n ['path', { d: 'M14 14v4' }],\n ['path', { d: 'M18 14v4' }],\n];\n\nexport default Piano;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pickaxe\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5Ljk5OSIgLz4KICA8cGF0aCBkPSJNMTUuOTczIDQuMDI3QTEzIDEzIDAgMCAwIDUuOTAyIDIuMzczYy0xLjM5OC4zNDItMS4wOTIgMi4xNTguMjc3IDIuNjAxYTE5LjkgMTkuOSAwIDAgMSA1LjgyMiAzLjAyNCIgLz4KICA8cGF0aCBkPSJNMTYuMDAxIDExLjk5OWExOS45IDE5LjkgMCAwIDEgMy4wMjQgNS44MjRjLjQ0NCAxLjM2OSAyLjI2IDEuNjc2IDIuNjAzLjI3OEExMyAxMyAwIDAgMCAyMCA4LjA2OSIgLz4KICA8cGF0aCBkPSJNMTguMzUyIDMuMzUyYTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBsLTUuMjk2IDUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw1LjI5Ni01LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwLTEuNzA0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pickaxe\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pickaxe: IconNode = [\n ['path', { d: 'm14 13-8.381 8.38a1 1 0 0 1-3.001-3L11 9.999' }],\n [\n 'path',\n {\n d: 'M15.973 4.027A13 13 0 0 0 5.902 2.373c-1.398.342-1.092 2.158.277 2.601a19.9 19.9 0 0 1 5.822 3.024',\n },\n ],\n [\n 'path',\n {\n d: 'M16.001 11.999a19.9 19.9 0 0 1 3.024 5.824c.444 1.369 2.26 1.676 2.603.278A13 13 0 0 0 20 8.069',\n },\n ],\n [\n 'path',\n {\n d: 'M18.352 3.352a1.205 1.205 0 0 0-1.704 0l-5.296 5.296a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l5.296-5.296a1.205 1.205 0 0 0 0-1.704z',\n },\n ],\n];\n\nexport default Pickaxe;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name picture-in-picture-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNCIgLz4KICA8cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iNyIgeD0iMTIiIHk9IjEzIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/picture-in-picture-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PictureInPicture2: IconNode = [\n ['path', { d: 'M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4' }],\n ['rect', { width: '10', height: '7', x: '12', y: '13', rx: '2' }],\n];\n\nexport default PictureInPicture2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name piggy-bank\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTdoM3YyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTMuMTYgMy4xNiAwIDAgMCAyLTJoMWExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFoLTFhNSA1IDAgMCAwLTItNFYzYTQgNCAwIDAgMC0zLjIgMS42bC0uMy40SDExYTYgNiAwIDAgMC02IDZ2MWE1IDUgMCAwIDAgMiA0djNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF6IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMGguMDEiIC8+CiAgPHBhdGggZD0iTTIgOHYxYTIgMiAwIDAgMCAyIDJoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/piggy-bank\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PiggyBank: IconNode = [\n [\n 'path',\n {\n d: 'M11 17h3v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a3.16 3.16 0 0 0 2-2h1a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-1a5 5 0 0 0-2-4V3a4 4 0 0 0-3.2 1.6l-.3.4H11a6 6 0 0 0-6 6v1a5 5 0 0 0 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1z',\n },\n ],\n ['path', { d: 'M16 10h.01' }],\n ['path', { d: 'M2 8v1a2 2 0 0 0 2 2h1' }],\n];\n\nexport default PiggyBank;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name picture-in-picture\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMGg2VjQiIC8+CiAgPHBhdGggZD0ibTIgNCA2IDYiIC8+CiAgPHBhdGggZD0iTTIxIDEwVjdhMiAyIDAgMCAwLTItMmgtNyIgLz4KICA8cGF0aCBkPSJNMyAxNHYyYTIgMiAwIDAgMCAyIDJoMyIgLz4KICA8cmVjdCB4PSIxMiIgeT0iMTQiIHdpZHRoPSIxMCIgaGVpZ2h0PSI3IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/picture-in-picture\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PictureInPicture: IconNode = [\n ['path', { d: 'M2 10h6V4' }],\n ['path', { d: 'm2 4 6 6' }],\n ['path', { d: 'M21 10V7a2 2 0 0 0-2-2h-7' }],\n ['path', { d: 'M3 14v2a2 2 0 0 0 2 2h3' }],\n ['rect', { x: '12', y: '14', width: '10', height: '7', rx: '1' }],\n];\n\nexport default PictureInPicture;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pilcrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgM3YxMSIgLz4KICA8cGF0aCBkPSJNMTQgOWgtM2EzIDMgMCAwIDEgMC02aDkiIC8+CiAgPHBhdGggZD0iTTE4IDN2MTEiIC8+CiAgPHBhdGggZD0iTTIyIDE4SDJsNC00IiAvPgogIDxwYXRoIGQ9Im02IDIyLTQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pilcrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PilcrowLeft: IconNode = [\n ['path', { d: 'M14 3v11' }],\n ['path', { d: 'M14 9h-3a3 3 0 0 1 0-6h9' }],\n ['path', { d: 'M18 3v11' }],\n ['path', { d: 'M22 18H2l4-4' }],\n ['path', { d: 'm6 22-4-4' }],\n];\n\nexport default PilcrowLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pilcrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgM3YxMSIgLz4KICA8cGF0aCBkPSJNMTAgOUg3YTEgMSAwIDAgMSAwLTZoOCIgLz4KICA8cGF0aCBkPSJNMTQgM3YxMSIgLz4KICA8cGF0aCBkPSJtMTggMTQgNCA0SDIiIC8+CiAgPHBhdGggZD0ibTIyIDE4LTQgNCIgLz4KPC9zdmc+) - https://lucide.dev/icons/pilcrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PilcrowRight: IconNode = [\n ['path', { d: 'M10 3v11' }],\n ['path', { d: 'M10 9H7a1 1 0 0 1 0-6h8' }],\n ['path', { d: 'M14 3v11' }],\n ['path', { d: 'm18 14 4 4H2' }],\n ['path', { d: 'm22 18-4 4' }],\n];\n\nexport default PilcrowRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pilcrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTkgNEg5LjVhNC41IDQuNSAwIDAgMCAwIDlIMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pilcrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pilcrow: IconNode = [\n ['path', { d: 'M13 4v16' }],\n ['path', { d: 'M17 4v16' }],\n ['path', { d: 'M19 4H9.5a4.5 4.5 0 0 0 0 9H13' }],\n];\n\nexport default Pilcrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pill-bottle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTFoLTRhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoNCIgLz4KICA8cGF0aCBkPSJNNiA3djEzYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjciIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjUiIHg9IjQiIHk9IjIiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pill-bottle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PillBottle: IconNode = [\n ['path', { d: 'M18 11h-4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h4' }],\n ['path', { d: 'M6 7v13a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7' }],\n ['rect', { width: '16', height: '5', x: '4', y: '2', rx: '1' }],\n];\n\nexport default PillBottle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pill\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuNSAyMC41IDEwLTEwYTQuOTUgNC45NSAwIDEgMC03LTdsLTEwIDEwYTQuOTUgNC45NSAwIDEgMCA3IDdaIiAvPgogIDxwYXRoIGQ9Im04LjUgOC41IDcgNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pill\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pill: IconNode = [\n ['path', { d: 'm10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z' }],\n ['path', { d: 'm8.5 8.5 7 7' }],\n];\n\nexport default Pill;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pin-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NSIgLz4KICA8cGF0aCBkPSJNMTUgOS4zNFY3YTEgMSAwIDAgMSAxLTEgMiAyIDAgMCAwIDAtNEg3Ljg5IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTkgOXYxLjc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNFYxNmExIDEgMCAwIDAgMSAxaDExIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pin-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PinOff: IconNode = [\n ['path', { d: 'M12 17v5' }],\n ['path', { d: 'M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11' }],\n];\n\nexport default PinOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pin\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NSIgLz4KICA8cGF0aCBkPSJNOSAxMC43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0uNzZhMiAyIDAgMCAwLTEuMTEtMS43OWwtMS43OC0uOUEyIDIgMCAwIDEgMTUgMTAuNzZWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRIOGEyIDIgMCAwIDAgMCA0IDEgMSAwIDAgMSAxIDF6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pin\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pin: IconNode = [\n ['path', { d: 'M12 17v5' }],\n [\n 'path',\n {\n d: 'M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z',\n },\n ],\n];\n\nexport default Pin;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pipette\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgOS04LjQxNCA4LjQxNEEyIDIgMCAwIDAgMyAxOC44Mjh2MS4zNDRhMiAyIDAgMCAxLS41ODYgMS40MTRBMiAyIDAgMCAxIDMuODI4IDIxaDEuMzQ0YTIgMiAwIDAgMCAxLjQxNC0uNTg2TDE1IDEyIiAvPgogIDxwYXRoIGQ9Im0xOCA5IC40LjRhMSAxIDAgMSAxLTMgM2wtMy44LTMuOGExIDEgMCAxIDEgMy0zbC40LjQgMy40LTMuNGExIDEgMCAxIDEgMyAzeiIgLz4KICA8cGF0aCBkPSJtMiAyMiAuNDE0LS40MTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pipette\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pipette: IconNode = [\n [\n 'path',\n {\n d: 'm12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12',\n },\n ],\n ['path', { d: 'm18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z' }],\n ['path', { d: 'm2 22 .414-.414' }],\n];\n\nexport default Pipette;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pizza\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTQtMSAxIiAvPgogIDxwYXRoIGQ9Im0xMy43NSAxOC4yNS0xLjI1IDEuNDIiIC8+CiAgPHBhdGggZD0iTTE3Ljc3NSA1LjY1NGExNS42OCAxNS42OCAwIDAgMC0xMi4xMjEgMTIuMTIiIC8+CiAgPHBhdGggZD0iTTE4LjggOS4zYTEgMSAwIDAgMCAyLjEgNy43IiAvPgogIDxwYXRoIGQ9Ik0yMS45NjQgMjAuNzMyYTEgMSAwIDAgMS0xLjIzMiAxLjIzMmwtMTgtNWExIDEgMCAwIDEtLjY5NS0xLjIzMkExOS42OCAxOS42OCAwIDAgMSAxNS43MzIgMi4wMzdhMSAxIDAgMCAxIDEuMjMyLjY5NXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pizza\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pizza: IconNode = [\n ['path', { d: 'm12 14-1 1' }],\n ['path', { d: 'm13.75 18.25-1.25 1.42' }],\n ['path', { d: 'M17.775 5.654a15.68 15.68 0 0 0-12.121 12.12' }],\n ['path', { d: 'M18.8 9.3a1 1 0 0 0 2.1 7.7' }],\n [\n 'path',\n {\n d: 'M21.964 20.732a1 1 0 0 1-1.232 1.232l-18-5a1 1 0 0 1-.695-1.232A19.68 19.68 0 0 1 15.732 2.037a1 1 0 0 1 1.232.695z',\n },\n ],\n];\n\nexport default Pizza;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plane-landing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMmgyMCIgLz4KICA8cGF0aCBkPSJNMy43NyAxMC43NyAyIDlsMi00LjUgMS4xLjU1Yy41NS4yOC45Ljg0LjkgMS40NXMuMzUgMS4xNy45IDEuNDVMOCA4LjVsMy02IDEuMDUuNTNhMiAyIDAgMCAxIDEuMDkgMS41MmwuNzIgNS40YTIgMiAwIDAgMCAxLjA5IDEuNTJsNC40IDIuMmMuNDIuMjIuNzguNTUgMS4wMS45NmwuNiAxLjAzYy40OS44OC0uMDYgMS45OC0xLjA2IDIuMWwtMS4xOC4xNWMtLjQ3LjA2LS45NS0uMDItMS4zNy0uMjRMNC4yOSAxMS4xNWEyIDIgMCAwIDEtLjUyLS4zOFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/plane-landing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PlaneLanding: IconNode = [\n ['path', { d: 'M2 22h20' }],\n [\n 'path',\n {\n d: 'M3.77 10.77 2 9l2-4.5 1.1.55c.55.28.9.84.9 1.45s.35 1.17.9 1.45L8 8.5l3-6 1.05.53a2 2 0 0 1 1.09 1.52l.72 5.4a2 2 0 0 0 1.09 1.52l4.4 2.2c.42.22.78.55 1.01.96l.6 1.03c.49.88-.06 1.98-1.06 2.1l-1.18.15c-.47.06-.95-.02-1.37-.24L4.29 11.15a2 2 0 0 1-.52-.38Z',\n },\n ],\n];\n\nexport default PlaneLanding;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plane-takeoff\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMmgyMCIgLz4KICA8cGF0aCBkPSJNNi4zNiAxNy40IDQgMTdsLTItNCAxLjEtLjU1YTIgMiAwIDAgMSAxLjggMGwuMTcuMWEyIDIgMCAwIDAgMS44IDBMOCAxMiA1IDZsLjktLjQ1YTIgMiAwIDAgMSAyLjA5LjJsNC4wMiAzYTIgMiAwIDAgMCAyLjEuMmw0LjE5LTIuMDZhMi40MSAyLjQxIDAgMCAxIDEuNzMtLjE3TDIxIDdhMS40IDEuNCAwIDAgMSAuODcgMS45OWwtLjM4Ljc2Yy0uMjMuNDYtLjYuODQtMS4wNyAxLjA4TDcuNTggMTcuMmEyIDIgMCAwIDEtMS4yMi4xOFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/plane-takeoff\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PlaneTakeoff: IconNode = [\n ['path', { d: 'M2 22h20' }],\n [\n 'path',\n {\n d: 'M6.36 17.4 4 17l-2-4 1.1-.55a2 2 0 0 1 1.8 0l.17.1a2 2 0 0 0 1.8 0L8 12 5 6l.9-.45a2 2 0 0 1 2.09.2l4.02 3a2 2 0 0 0 2.1.2l4.19-2.06a2.41 2.41 0 0 1 1.73-.17L21 7a1.4 1.4 0 0 1 .87 1.99l-.38.76c-.23.46-.6.84-1.07 1.08L7.58 17.2a2 2 0 0 1-1.22.18Z',\n },\n ],\n];\n\nexport default PlaneTakeoff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plane\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuOCAxOS4yIDE2IDExbDMuNS0zLjVDMjEgNiAyMS41IDQgMjEgM2MtMS0uNS0zIDAtNC41IDEuNUwxMyA4IDQuOCA2LjJjLS41LS4xLS45LjEtMS4xLjVsLS4zLjVjLS4yLjUtLjEgMSAuMyAxLjNMOSAxMmwtMiAzSDRsLTEgMSAzIDIgMiAzIDEtMXYtM2wzLTIgMy41IDUuM2MuMy40LjguNSAxLjMuM2wuNS0uMmMuNC0uMy42LS43LjUtMS4yeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plane\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Plane: IconNode = [\n [\n 'path',\n {\n d: 'M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z',\n },\n ],\n];\n\nexport default Plane;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA1YTIgMiAwIDAgMSAzLjAwOC0xLjcyOGwxMS45OTcgNi45OThhMiAyIDAgMCAxIC4wMDMgMy40NThsLTEyIDdBMiAyIDAgMCAxIDUgMTl6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Play: IconNode = [\n [\n 'path',\n { d: 'M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z' },\n ],\n];\n\nexport default Play;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plug-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAydjYiIC8+CiAgPHBhdGggZD0iTTE1IDJ2NiIgLz4KICA8cGF0aCBkPSJNMTIgMTd2NSIgLz4KICA8cGF0aCBkPSJNNSA4aDE0IiAvPgogIDxwYXRoIGQ9Ik02IDExVjhoMTJ2M2E2IDYgMCAxIDEtMTIgMFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/plug-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Plug2: IconNode = [\n ['path', { d: 'M9 2v6' }],\n ['path', { d: 'M15 2v6' }],\n ['path', { d: 'M12 17v5' }],\n ['path', { d: 'M5 8h14' }],\n ['path', { d: 'M6 11V8h12v3a6 6 0 1 1-12 0Z' }],\n];\n\nexport default Plug2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plug-zap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFoiIC8+CiAgPHBhdGggZD0ibTIgMjIgMy0zIiAvPgogIDxwYXRoIGQ9Ik03LjUgMTMuNSAxMCAxMSIgLz4KICA8cGF0aCBkPSJNMTAuNSAxNi41IDEzIDE0IiAvPgogIDxwYXRoIGQ9Im0xOCAzLTQgNGg2bC00IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/plug-zap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PlugZap: IconNode = [\n ['path', { d: 'M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z' }],\n ['path', { d: 'm2 22 3-3' }],\n ['path', { d: 'M7.5 13.5 10 11' }],\n ['path', { d: 'M10.5 16.5 13 14' }],\n ['path', { d: 'm18 3-4 4h6l-4 4' }],\n];\n\nexport default PlugZap;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plug\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTUiIC8+CiAgPHBhdGggZD0iTTE1IDhWMiIgLz4KICA8cGF0aCBkPSJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoiIC8+CiAgPHBhdGggZD0iTTkgOFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/plug\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Plug: IconNode = [\n ['path', { d: 'M12 22v-5' }],\n ['path', { d: 'M15 8V2' }],\n ['path', { d: 'M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z' }],\n ['path', { d: 'M9 8V2' }],\n];\n\nexport default Plug;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Plus: IconNode = [\n ['path', { d: 'M5 12h14' }],\n ['path', { d: 'M12 5v14' }],\n];\n\nexport default Plus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pocket-knife\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAydjFjMCAxIDIgMSAyIDJTMyA2IDMgN3MyIDEgMiAyLTIgMS0yIDIgMiAxIDIgMiIgLz4KICA8cGF0aCBkPSJNMTggNmguMDEiIC8+CiAgPHBhdGggZD0iTTYgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yMC44MyA4LjgzYTQgNCAwIDAgMC01LjY2LTUuNjZsLTEyIDEyYTQgNCAwIDEgMCA1LjY2IDUuNjZaIiAvPgogIDxwYXRoIGQ9Ik0xOCAxMS42NlYyMmE0IDQgMCAwIDAgNC00VjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pocket-knife\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PocketKnife: IconNode = [\n ['path', { d: 'M3 2v1c0 1 2 1 2 2S3 6 3 7s2 1 2 2-2 1-2 2 2 1 2 2' }],\n ['path', { d: 'M18 6h.01' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'M20.83 8.83a4 4 0 0 0-5.66-5.66l-12 12a4 4 0 1 0 5.66 5.66Z' }],\n ['path', { d: 'M18 11.66V22a4 4 0 0 0 4-4V6' }],\n];\n\nexport default PocketKnife;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name podcast\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTdhMSAxIDAgMSAwLTIgMGwuNSA0LjVhMC41IDAuNSAwIDAgMCAxIDB6IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPHBhdGggZD0iTTE2Ljg1IDE4LjU4YTkgOSAwIDEgMC05LjcgMCIgLz4KICA8cGF0aCBkPSJNOCAxNGE1IDUgMCAxIDEgOCAwIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTEiIHI9IjEiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/podcast\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Podcast: IconNode = [\n ['path', { d: 'M13 17a1 1 0 1 0-2 0l.5 4.5a0.5 0.5 0 0 0 1 0z', fill: 'currentColor' }],\n ['path', { d: 'M16.85 18.58a9 9 0 1 0-9.7 0' }],\n ['path', { d: 'M8 14a5 5 0 1 1 8 0' }],\n ['circle', { cx: '12', cy: '11', r: '1', fill: 'currentColor' }],\n];\n\nexport default Podcast;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pocket\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgM2EyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTIwIDBWNWEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJtOCAxMCA0IDQgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pocket\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=pocket instead. This icon will be removed in v1.0\n */\nconst Pocket: IconNode = [\n ['path', { d: 'M20 3a2 2 0 0 1 2 2v6a1 1 0 0 1-20 0V5a2 2 0 0 1 2-2z' }],\n ['path', { d: 'm8 10 4 4 4-4' }],\n];\n\nexport default Pocket;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pointer-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNC41VjRhMiAyIDAgMCAwLTIuNDEtMS45NTciIC8+CiAgPHBhdGggZD0iTTEzLjkgOC40YTIgMiAwIDAgMC0xLjI2LTEuMjk1IiAvPgogIDxwYXRoIGQ9Ik0yMS43IDE2LjJBOCA4IDAgMCAwIDIyIDE0di0zYTIgMiAwIDEgMC00IDB2LTFhMiAyIDAgMCAwLTMuNjMtMS4xNTgiIC8+CiAgPHBhdGggZD0ibTcgMTUtMS44LTEuOGEyIDIgMCAwIDAtMi43OSAyLjg2TDYgMTkuN2E3Ljc0IDcuNzQgMCAwIDAgNiAyLjNoMmE4IDggMCAwIDAgNS42NTctMi4zNDMiIC8+CiAgPHBhdGggZD0iTTYgNnY4IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pointer-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PointerOff: IconNode = [\n ['path', { d: 'M10 4.5V4a2 2 0 0 0-2.41-1.957' }],\n ['path', { d: 'M13.9 8.4a2 2 0 0 0-1.26-1.295' }],\n ['path', { d: 'M21.7 16.2A8 8 0 0 0 22 14v-3a2 2 0 1 0-4 0v-1a2 2 0 0 0-3.63-1.158' }],\n [\n 'path',\n { d: 'm7 15-1.8-1.8a2 2 0 0 0-2.79 2.86L6 19.7a7.74 7.74 0 0 0 6 2.3h2a8 8 0 0 0 5.657-2.343' },\n ],\n ['path', { d: 'M6 6v8' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default PointerOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pointer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTRhOCA4IDAgMCAxLTggOCIgLz4KICA8cGF0aCBkPSJNMTggMTF2LTFhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIiAvPgogIDxwYXRoIGQ9Ik0xNCAxMFY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxIiAvPgogIDxwYXRoIGQ9Ik0xMCA5LjVWNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MTAiIC8+CiAgPHBhdGggZD0iTTE4IDExYTIgMiAwIDEgMSA0IDB2M2E4IDggMCAwIDEtOCA4aC0yYy0yLjggMC00LjUtLjg2LTUuOTktMi4zNGwtMy42LTMuNmEyIDIgMCAwIDEgMi44My0yLjgyTDcgMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pointer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pointer: IconNode = [\n ['path', { d: 'M22 14a8 8 0 0 1-8 8' }],\n ['path', { d: 'M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2' }],\n ['path', { d: 'M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1' }],\n ['path', { d: 'M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10' }],\n [\n 'path',\n {\n d: 'M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15',\n },\n ],\n];\n\nexport default Pointer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name popcorn\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggOGEyIDIgMCAwIDAgMC00IDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMCAwIDQiIC8+CiAgPHBhdGggZD0iTTEwIDIyIDkgOCIgLz4KICA8cGF0aCBkPSJtMTQgMjIgMS0xNCIgLz4KICA8cGF0aCBkPSJNMjAgOGMuNSAwIC45LjQuOCAxbC0yLjYgMTJjLS4xLjUtLjcgMS0xLjIgMUg3Yy0uNiAwLTEuMS0uNC0xLjItMUwzLjIgOWMtLjEtLjYuMy0xIC44LTFaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/popcorn\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Popcorn: IconNode = [\n ['path', { d: 'M18 8a2 2 0 0 0 0-4 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0 0 4' }],\n ['path', { d: 'M10 22 9 8' }],\n ['path', { d: 'm14 22 1-14' }],\n [\n 'path',\n {\n d: 'M20 8c.5 0 .9.4.8 1l-2.6 12c-.1.5-.7 1-1.2 1H7c-.6 0-1.1-.4-1.2-1L3.2 9c-.1-.6.3-1 .8-1Z',\n },\n ],\n];\n\nexport default Popcorn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name popsicle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguNiAxNC40Yy44LS44LjgtMiAwLTIuOGwtOC4xLTguMWE0Ljk1IDQuOTUgMCAxIDAtNy4xIDcuMWw4LjEgOC4xYy45LjcgMi4xLjcgMi45LS4xWiIgLz4KICA8cGF0aCBkPSJtMjIgMjItNS41LTUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/popsicle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Popsicle: IconNode = [\n [\n 'path',\n { d: 'M18.6 14.4c.8-.8.8-2 0-2.8l-8.1-8.1a4.95 4.95 0 1 0-7.1 7.1l8.1 8.1c.9.7 2.1.7 2.9-.1Z' },\n ],\n ['path', { d: 'm22 22-5.5-5.5' }],\n];\n\nexport default Popsicle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pound-sterling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggN2MwLTUuMzMzLTgtNS4zMzMtOCAwIiAvPgogIDxwYXRoIGQ9Ik0xMCA3djE0IiAvPgogIDxwYXRoIGQ9Ik02IDIxaDEyIiAvPgogIDxwYXRoIGQ9Ik02IDEzaDEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pound-sterling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PoundSterling: IconNode = [\n ['path', { d: 'M18 7c0-5.333-8-5.333-8 0' }],\n ['path', { d: 'M10 7v14' }],\n ['path', { d: 'M6 21h12' }],\n ['path', { d: 'M6 13h10' }],\n];\n\nexport default PoundSterling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name power-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguMzYgNi42NEE5IDkgMCAwIDEgMjAuNzcgMTUiIC8+CiAgPHBhdGggZD0iTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgiIC8+CiAgPHBhdGggZD0iTTEyIDJ2NCIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/power-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PowerOff: IconNode = [\n ['path', { d: 'M18.36 6.64A9 9 0 0 1 20.77 15' }],\n ['path', { d: 'M6.16 6.16a9 9 0 1 0 12.68 12.68' }],\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default PowerOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name power\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxMCIgLz4KICA8cGF0aCBkPSJNMTguNCA2LjZhOSA5IDAgMSAxLTEyLjc3LjA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/power\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Power: IconNode = [\n ['path', { d: 'M12 2v10' }],\n ['path', { d: 'M18.4 6.6a9 9 0 1 1-12.77.04' }],\n];\n\nexport default Power;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name printer-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNSAyMkg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdi41IiAvPgogIDxwYXRoIGQ9Im0xNiAxOSAyIDIgNC00IiAvPgogIDxwYXRoIGQ9Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MiIgLz4KICA8cGF0aCBkPSJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/printer-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PrinterCheck: IconNode = [\n ['path', { d: 'M13.5 22H7a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v.5' }],\n ['path', { d: 'm16 19 2 2 4-4' }],\n ['path', { d: 'M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6' }],\n];\n\nexport default PrinterCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name presentation\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAzaDIwIiAvPgogIDxwYXRoIGQ9Ik0yMSAzdjExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjMiIC8+CiAgPHBhdGggZD0ibTcgMjEgNS01IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/presentation\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Presentation: IconNode = [\n ['path', { d: 'M2 3h20' }],\n ['path', { d: 'M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3' }],\n ['path', { d: 'm7 21 5-5 5 5' }],\n];\n\nexport default Presentation;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name printer-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNTMxIDIySDdhMSAxIDAgMCAxLTEtMXYtNmExIDEgMCAwIDEgMS0xaDYuMzc3IiAvPgogIDxwYXRoIGQ9Im0xNi41IDE2LjUgNSA1IiAvPgogIDxwYXRoIGQ9Im0xNi41IDIxLjUgNS01IiAvPgogIDxwYXRoIGQ9Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MS41IiAvPgogIDxwYXRoIGQ9Ik02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/printer-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PrinterX: IconNode = [\n ['path', { d: 'M12.531 22H7a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h6.377' }],\n ['path', { d: 'm16.5 16.5 5 5' }],\n ['path', { d: 'm16.5 21.5 5-5' }],\n ['path', { d: 'M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.5' }],\n ['path', { d: 'M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6' }],\n];\n\nexport default PrinterX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name printer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYiIC8+CiAgPHJlY3QgeD0iNiIgeT0iMTQiIHdpZHRoPSIxMiIgaGVpZ2h0PSI4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/printer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Printer: IconNode = [\n ['path', { d: 'M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6' }],\n ['rect', { x: '6', y: '14', width: '12', height: '8', rx: '1' }],\n];\n\nexport default Printer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name projector\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA3IDMgNSIgLz4KICA8cGF0aCBkPSJNOSA2VjMiIC8+CiAgPHBhdGggZD0ibTEzIDcgMi0yIiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSIxMyIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTEuODMgMTJIMjBhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMi4xNyIgLz4KICA8cGF0aCBkPSJNMTYgMTZoMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/projector\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Projector: IconNode = [\n ['path', { d: 'M5 7 3 5' }],\n ['path', { d: 'M9 6V3' }],\n ['path', { d: 'm13 7 2-2' }],\n ['circle', { cx: '9', cy: '13', r: '3' }],\n [\n 'path',\n { d: 'M11.83 12H20a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.17' },\n ],\n ['path', { d: 'M16 16h2' }],\n];\n\nexport default Projector;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name proportions\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiA5djExIiAvPgogIDxwYXRoIGQ9Ik0yIDloMTNhMiAyIDAgMCAxIDIgMnY5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/proportions\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Proportions: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M12 9v11' }],\n ['path', { d: 'M2 9h13a2 2 0 0 1 2 2v9' }],\n];\n\nexport default Proportions;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name puzzle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/puzzle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Puzzle: IconNode = [\n [\n 'path',\n {\n d: 'M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z',\n },\n ],\n];\n\nexport default Puzzle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pyramid\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41IDE2Ljg4YTEgMSAwIDAgMS0uMzItMS40M2w5LTEzLjAyYTEgMSAwIDAgMSAxLjY0IDBsOSAxMy4wMWExIDEgMCAwIDEtLjMyIDEuNDRsLTguNTEgNC44NmEyIDIgMCAwIDEtMS45OCAwWiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pyramid\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pyramid: IconNode = [\n [\n 'path',\n {\n d: 'M2.5 16.88a1 1 0 0 1-.32-1.43l9-13.02a1 1 0 0 1 1.64 0l9 13.01a1 1 0 0 1-.32 1.44l-8.51 4.86a2 2 0 0 1-1.98 0Z',\n },\n ],\n ['path', { d: 'M12 2v20' }],\n];\n\nexport default Pyramid;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name qr-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiB4PSIxNiIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjUiIGhlaWdodD0iNSIgeD0iMyIgeT0iMTYiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNmgtM2EyIDIgMCAwIDAtMiAydjMiIC8+CiAgPHBhdGggZD0iTTIxIDIxdi4wMSIgLz4KICA8cGF0aCBkPSJNMTIgN3YzYTIgMiAwIDAgMS0yIDJINyIgLz4KICA8cGF0aCBkPSJNMyAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDNoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNnYuMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaDEiIC8+CiAgPHBhdGggZD0iTTIxIDEydi4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMjF2LTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/qr-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst QrCode: IconNode = [\n ['rect', { width: '5', height: '5', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '5', height: '5', x: '16', y: '3', rx: '1' }],\n ['rect', { width: '5', height: '5', x: '3', y: '16', rx: '1' }],\n ['path', { d: 'M21 16h-3a2 2 0 0 0-2 2v3' }],\n ['path', { d: 'M21 21v.01' }],\n ['path', { d: 'M12 7v3a2 2 0 0 1-2 2H7' }],\n ['path', { d: 'M3 12h.01' }],\n ['path', { d: 'M12 3h.01' }],\n ['path', { d: 'M12 16v.01' }],\n ['path', { d: 'M16 12h1' }],\n ['path', { d: 'M21 12v.01' }],\n ['path', { d: 'M12 21v-1' }],\n];\n\nexport default QrCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name quote\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2EyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMiAxIDEgMCAwIDEgMSAxdjFhMiAyIDAgMCAxLTIgMiAxIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMSA2IDYgMCAwIDAgNi02VjVhMiAyIDAgMCAwLTItMnoiIC8+CiAgPHBhdGggZD0iTTUgM2EyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMiAxIDEgMCAwIDEgMSAxdjFhMiAyIDAgMCAxLTIgMiAxIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMSA2IDYgMCAwIDAgNi02VjVhMiAyIDAgMCAwLTItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/quote\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Quote: IconNode = [\n [\n 'path',\n {\n d: 'M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z',\n },\n ],\n [\n 'path',\n {\n d: 'M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z',\n },\n ],\n];\n\nexport default Quote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rabbit\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTZhMyAzIDAgMCAxIDIuMjQgNSIgLz4KICA8cGF0aCBkPSJNMTggMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xOCAyMWgtOGE0IDQgMCAwIDEtNC00IDcgNyAwIDAgMSA3LTdoLjJMOS42IDYuNGExIDEgMCAxIDEgMi44LTIuOEwxNS44IDdoLjJjMy4zIDAgNiAyLjcgNiA2djFhMiAyIDAgMCAxLTIgMmgtMWEzIDMgMCAwIDAtMyAzIiAvPgogIDxwYXRoIGQ9Ik0yMCA4LjU0VjRhMiAyIDAgMSAwLTQgMHYzIiAvPgogIDxwYXRoIGQ9Ik03LjYxMiAxMi41MjRhMyAzIDAgMSAwLTEuNiA0LjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rabbit\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rabbit: IconNode = [\n ['path', { d: 'M13 16a3 3 0 0 1 2.24 5' }],\n ['path', { d: 'M18 12h.01' }],\n [\n 'path',\n {\n d: 'M18 21h-8a4 4 0 0 1-4-4 7 7 0 0 1 7-7h.2L9.6 6.4a1 1 0 1 1 2.8-2.8L15.8 7h.2c3.3 0 6 2.7 6 6v1a2 2 0 0 1-2 2h-1a3 3 0 0 0-3 3',\n },\n ],\n ['path', { d: 'M20 8.54V4a2 2 0 1 0-4 0v3' }],\n ['path', { d: 'M7.612 12.524a3 3 0 1 0-1.6 4.3' }],\n];\n\nexport default Rabbit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radar\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuMDcgNC45M0ExMCAxMCAwIDAgMCA2Ljk5IDMuMzQiIC8+CiAgPHBhdGggZD0iTTQgNmguMDEiIC8+CiAgPHBhdGggZD0iTTIuMjkgOS42MkExMCAxMCAwIDEgMCAyMS4zMSA4LjM1IiAvPgogIDxwYXRoIGQ9Ik0xNi4yNCA3Ljc2QTYgNiAwIDEgMCA4LjIzIDE2LjY3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTE3Ljk5IDExLjY2QTYgNiAwIDAgMSAxNS43NyAxNi42NyIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgogIDxwYXRoIGQ9Im0xMy40MSAxMC41OSA1LjY2LTUuNjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/radar\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Radar: IconNode = [\n ['path', { d: 'M19.07 4.93A10 10 0 0 0 6.99 3.34' }],\n ['path', { d: 'M4 6h.01' }],\n ['path', { d: 'M2.29 9.62A10 10 0 1 0 21.31 8.35' }],\n ['path', { d: 'M16.24 7.76A6 6 0 1 0 8.23 16.67' }],\n ['path', { d: 'M12 18h.01' }],\n ['path', { d: 'M17.99 11.66A6 6 0 0 1 15.77 16.67' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['path', { d: 'm13.41 10.59 5.66-5.66' }],\n];\n\nexport default Radar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radiation\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNCAxNS40NjQxYTQgNCAwIDAgMS00IDBMNy41Mjc4NiAxOS43NDU5NyBBIDEgMSAwIDAgMCA3Ljk5MzAzIDIxLjE2MjExIDEwIDEwIDAgMCAwIDE2LjAwNjk3IDIxLjE2MjExIDEgMSAwIDAgMCAxNi40NzIxNCAxOS43NDU5N3oiIC8+CiAgPHBhdGggZD0iTTE2IDEyYTQgNCAwIDAgMC0yLTMuNDY0bDIuNDcyLTQuMjgyYTEgMSAwIDAgMSAxLjQ2LS4zMDUgMTAgMTAgMCAwIDEgNC4wMDYgNi45NEExIDEgMCAwIDEgMjEgMTJ6IiAvPgogIDxwYXRoIGQ9Ik04IDEyYTQgNCAwIDAgMSAyLTMuNDY0TDcuNTI4IDQuMjU0YTEgMSAwIDAgMC0xLjQ2LS4zMDUgMTAgMTAgMCAwIDAtNC4wMDYgNi45NEExIDEgMCAwIDAgMyAxMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/radiation\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Radiation: IconNode = [\n ['path', { d: 'M12 12h.01' }],\n [\n 'path',\n {\n d: 'M14 15.4641a4 4 0 0 1-4 0L7.52786 19.74597 A 1 1 0 0 0 7.99303 21.16211 10 10 0 0 0 16.00697 21.16211 1 1 0 0 0 16.47214 19.74597z',\n },\n ],\n [\n 'path',\n {\n d: 'M16 12a4 4 0 0 0-2-3.464l2.472-4.282a1 1 0 0 1 1.46-.305 10 10 0 0 1 4.006 6.94A1 1 0 0 1 21 12z',\n },\n ],\n [\n 'path',\n {\n d: 'M8 12a4 4 0 0 1 2-3.464L7.528 4.254a1 1 0 0 0-1.46-.305 10 10 0 0 0-4.006 6.94A1 1 0 0 0 3 12z',\n },\n ],\n];\n\nexport default Radiation;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/radical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Radical: IconNode = [\n [\n 'path',\n {\n d: 'M3 12h3.28a1 1 0 0 1 .948.684l2.298 7.934a.5.5 0 0 0 .96-.044L13.82 4.771A1 1 0 0 1 14.792 4H21',\n },\n ],\n];\n\nexport default Radical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radio-receiver\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxNnYyIiAvPgogIDxwYXRoIGQ9Ik0xOSAxNnYyIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiB4PSIyIiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTggMTJoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/radio-receiver\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RadioReceiver: IconNode = [\n ['path', { d: 'M5 16v2' }],\n ['path', { d: 'M19 16v2' }],\n ['rect', { width: '20', height: '8', x: '2', y: '8', rx: '2' }],\n ['path', { d: 'M18 12h.01' }],\n];\n\nexport default RadioReceiver;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radio-tower\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC45IDE2LjFDMSAxMi4yIDEgNS44IDQuOSAxLjkiIC8+CiAgPHBhdGggZD0iTTcuOCA0LjdhNi4xNCA2LjE0IDAgMCAwLS44IDcuNSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjkiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTE2LjIgNC44YzIgMiAyLjI2IDUuMTEuOCA3LjQ3IiAvPgogIDxwYXRoIGQ9Ik0xOS4xIDEuOWE5Ljk2IDkuOTYgMCAwIDEgMCAxNC4xIiAvPgogIDxwYXRoIGQ9Ik05LjUgMThoNSIgLz4KICA8cGF0aCBkPSJtOCAyMiA0LTExIDQgMTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/radio-tower\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RadioTower: IconNode = [\n ['path', { d: 'M4.9 16.1C1 12.2 1 5.8 4.9 1.9' }],\n ['path', { d: 'M7.8 4.7a6.14 6.14 0 0 0-.8 7.5' }],\n ['circle', { cx: '12', cy: '9', r: '2' }],\n ['path', { d: 'M16.2 4.8c2 2 2.26 5.11.8 7.47' }],\n ['path', { d: 'M19.1 1.9a9.96 9.96 0 0 1 0 14.1' }],\n ['path', { d: 'M9.5 18h5' }],\n ['path', { d: 'm8 22 4-11 4 11' }],\n];\n\nexport default RadioTower;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radio\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuMjQ3IDcuNzYxYTYgNiAwIDAgMSAwIDguNDc4IiAvPgogIDxwYXRoIGQ9Ik0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMCAxNC4xMzQiIC8+CiAgPHBhdGggZD0iTTQuOTI1IDE5LjA2N2ExMCAxMCAwIDAgMSAwLTE0LjEzNCIgLz4KICA8cGF0aCBkPSJNNy43NTMgMTYuMjM5YTYgNiAwIDAgMSAwLTguNDc4IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/radio\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Radio: IconNode = [\n ['path', { d: 'M16.247 7.761a6 6 0 0 1 0 8.478' }],\n ['path', { d: 'M19.075 4.933a10 10 0 0 1 0 14.134' }],\n ['path', { d: 'M4.925 19.067a10 10 0 0 1 0-14.134' }],\n ['path', { d: 'M7.753 16.239a6 6 0 0 1 0-8.478' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default Radio;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radius\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuMzQgMTcuNTJhMTAgMTAgMCAxIDAtMi44MiAyLjgyIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTkiIHI9IjIiIC8+CiAgPHBhdGggZD0ibTEzLjQxIDEzLjQxIDQuMTggNC4xOCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/radius\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Radius: IconNode = [\n ['path', { d: 'M20.34 17.52a10 10 0 1 0-2.82 2.82' }],\n ['circle', { cx: '19', cy: '19', r: '2' }],\n ['path', { d: 'm13.41 13.41 4.18 4.18' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default Radius;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rail-symbol\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxNWgxNCIgLz4KICA8cGF0aCBkPSJNNSA5aDE0IiAvPgogIDxwYXRoIGQ9Im0xNCAyMC01LTUgNi02LTUtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/rail-symbol\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=rail-symbol instead. This icon will be removed in v1.0\n */\nconst RailSymbol: IconNode = [\n ['path', { d: 'M5 15h14' }],\n ['path', { d: 'M5 9h14' }],\n ['path', { d: 'm14 20-5-5 6-6-5-5' }],\n];\n\nexport default RailSymbol;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rainbow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCIgLz4KICA8cGF0aCBkPSJNNiAxN2E2IDYgMCAwIDEgMTIgMCIgLz4KICA8cGF0aCBkPSJNMTAgMTdhMiAyIDAgMCAxIDQgMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/rainbow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rainbow: IconNode = [\n ['path', { d: 'M22 17a10 10 0 0 0-20 0' }],\n ['path', { d: 'M6 17a6 6 0 0 1 12 0' }],\n ['path', { d: 'M10 17a2 2 0 0 1 4 0' }],\n];\n\nexport default Rainbow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjJINGEyIDIgMCAwIDEgMC00aDEyIiAvPgogIDxwYXRoIGQ9Ik0xMy4yMzYgMThhMyAzIDAgMCAwLTIuMi01IiAvPgogIDxwYXRoIGQ9Ik0xNiA5aC4wMSIgLz4KICA8cGF0aCBkPSJNMTYuODIgMy45NGEzIDMgMCAxIDEgMy4yMzcgNC44NjhsMS44MTUgMi41ODdhMS41IDEuNSAwIDAgMS0xLjUgMi4xbC0yLjg3Mi0uNDUzYTMgMyAwIDAgMC0zLjUgMyIgLz4KICA8cGF0aCBkPSJNMTcgNC45ODhhMyAzIDAgMSAwLTUuMiAyLjA1MkE3IDcgMCAwIDAgNCAxNC4wMTUgNCA0IDAgMCAwIDggMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rat: IconNode = [\n ['path', { d: 'M13 22H4a2 2 0 0 1 0-4h12' }],\n ['path', { d: 'M13.236 18a3 3 0 0 0-2.2-5' }],\n ['path', { d: 'M16 9h.01' }],\n [\n 'path',\n {\n d: 'M16.82 3.94a3 3 0 1 1 3.237 4.868l1.815 2.587a1.5 1.5 0 0 1-1.5 2.1l-2.872-.453a3 3 0 0 0-3.5 3',\n },\n ],\n ['path', { d: 'M17 4.988a3 3 0 1 0-5.2 2.052A7 7 0 0 0 4 14.015 4 4 0 0 0 8 18' }],\n];\n\nexport default Rat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ratio\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHg9IjYiIHk9IjIiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxMiIgeD0iMiIgeT0iNiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ratio\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ratio: IconNode = [\n ['rect', { width: '12', height: '20', x: '6', y: '2', rx: '2' }],\n ['rect', { width: '20', height: '12', x: '2', y: '6', rx: '2' }],\n];\n\nexport default Ratio;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-cent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNMTIgNi41djExIiAvPgogIDxwYXRoIGQ9Ik0xNSA5LjRhNCA0IDAgMSAwIDAgNS4yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/receipt-cent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptCent: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M12 6.5v11' }],\n ['path', { d: 'M15 9.4a4 4 0 1 0 0 5.2' }],\n];\n\nexport default ReceiptCent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-euro\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNOCAxMmg1IiAvPgogIDxwYXRoIGQ9Ik0xNiA5LjVhNCA0IDAgMSAwIDAgNS4yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/receipt-euro\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptEuro: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M8 12h5' }],\n ['path', { d: 'M16 9.5a4 4 0 1 0 0 5.2' }],\n];\n\nexport default ReceiptEuro;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-indian-rupee\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNOCA3aDgiIC8+CiAgPHBhdGggZD0iTTEyIDE3LjUgOCAxNWgxYTQgNCAwIDAgMCAwLTgiIC8+CiAgPHBhdGggZD0iTTggMTFoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/receipt-indian-rupee\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptIndianRupee: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M8 7h8' }],\n ['path', { d: 'M12 17.5 8 15h1a4 4 0 0 0 0-8' }],\n ['path', { d: 'M8 11h8' }],\n];\n\nexport default ReceiptIndianRupee;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-japanese-yen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJtMTIgMTAgMy0zIiAvPgogIDxwYXRoIGQ9Im05IDcgMyAzdjcuNSIgLz4KICA8cGF0aCBkPSJNOSAxMWg2IiAvPgogIDxwYXRoIGQ9Ik05IDE1aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/receipt-japanese-yen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptJapaneseYen: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'm12 10 3-3' }],\n ['path', { d: 'm9 7 3 3v7.5' }],\n ['path', { d: 'M9 11h6' }],\n ['path', { d: 'M9 15h6' }],\n];\n\nexport default ReceiptJapaneseYen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-pound-sterling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNOCAxM2g1IiAvPgogIDxwYXRoIGQ9Ik0xMCAxN1Y5LjVhMi41IDIuNSAwIDAgMSA1IDAiIC8+CiAgPHBhdGggZD0iTTggMTdoNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/receipt-pound-sterling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptPoundSterling: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M8 13h5' }],\n ['path', { d: 'M10 17V9.5a2.5 2.5 0 0 1 5 0' }],\n ['path', { d: 'M8 17h7' }],\n];\n\nexport default ReceiptPoundSterling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-russian-ruble\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNOCAxNWg1IiAvPgogIDxwYXRoIGQ9Ik04IDExaDVhMiAyIDAgMSAwIDAtNGgtM3YxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/receipt-russian-ruble\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptRussianRuble: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M8 15h5' }],\n ['path', { d: 'M8 11h5a2 2 0 1 0 0-4h-3v10' }],\n];\n\nexport default ReceiptRussianRuble;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-swiss-franc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNMTAgMTdWN2g1IiAvPgogIDxwYXRoIGQ9Ik0xMCAxMWg0IiAvPgogIDxwYXRoIGQ9Ik04IDE1aDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/receipt-swiss-franc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptSwissFranc: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M10 17V7h5' }],\n ['path', { d: 'M10 11h4' }],\n ['path', { d: 'M8 15h5' }],\n];\n\nexport default ReceiptSwissFranc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTZIOCIgLz4KICA8cGF0aCBkPSJNMTQgOEg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMkg4IiAvPgogIDxwYXRoIGQ9Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/receipt-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptText: IconNode = [\n ['path', { d: 'M13 16H8' }],\n ['path', { d: 'M14 8H8' }],\n ['path', { d: 'M16 12H8' }],\n [\n 'path',\n {\n d: 'M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z',\n },\n ],\n];\n\nexport default ReceiptText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-turkish-lira\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNi41djExYTUuNSA1LjUgMCAwIDAgNS41LTUuNSIgLz4KICA8cGF0aCBkPSJtMTQgOC02IDMiIC8+CiAgPHBhdGggZD0iTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/receipt-turkish-lira\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptTurkishLira: IconNode = [\n ['path', { d: 'M10 6.5v11a5.5 5.5 0 0 0 5.5-5.5' }],\n ['path', { d: 'm14 8-6 3' }],\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1z' }],\n];\n\nexport default ReceiptTurkishLira;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNMTYgOGgtNmEyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMSAxIDAgNEg4IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNy41di0xMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/receipt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Receipt: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8' }],\n ['path', { d: 'M12 17.5v-11' }],\n];\n\nexport default Receipt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rectangle-circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNHYxNkgzYTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xeiIgLz4KICA8Y2lyY2xlIGN4PSIxNCIgY3k9IjEyIiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rectangle-circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RectangleCircle: IconNode = [\n ['path', { d: 'M14 4v16H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z' }],\n ['circle', { cx: '14', cy: '12', r: '8' }],\n];\n\nexport default RectangleCircle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rectangle-ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjYiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTE3IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNNyAxMmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rectangle-ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RectangleEllipsis: IconNode = [\n ['rect', { width: '20', height: '12', x: '2', y: '6', rx: '2' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M17 12h.01' }],\n ['path', { d: 'M7 12h.01' }],\n];\n\nexport default RectangleEllipsis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rectangle-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjYiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rectangle-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RectangleHorizontal: IconNode = [\n ['rect', { width: '20', height: '12', x: '2', y: '6', rx: '2' }],\n];\n\nexport default RectangleHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rectangle-goggles\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMS42LS44bC0xLjYtMi4xM2ExIDEgMCAwIDAtMS42IDBMOS42IDE3LjJBMiAyIDAgMCAxIDggMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rectangle-goggles\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RectangleGoggles: IconNode = [\n [\n 'path',\n {\n d: 'M20 6a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-4a2 2 0 0 1-1.6-.8l-1.6-2.13a1 1 0 0 0-1.6 0L9.6 17.2A2 2 0 0 1 8 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z',\n },\n ],\n];\n\nexport default RectangleGoggles;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rectangle-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHg9IjYiIHk9IjIiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rectangle-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RectangleVertical: IconNode = [\n ['rect', { width: '12', height: '20', x: '6', y: '2', rx: '2' }],\n];\n\nexport default RectangleVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name recycle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxOUg0LjgxNWExLjgzIDEuODMgMCAwIDEtMS41Ny0uODgxIDEuNzg1IDEuNzg1IDAgMCAxLS4wMDQtMS43ODRMNy4xOTYgOS41IiAvPgogIDxwYXRoIGQ9Ik0xMSAxOWg4LjIwM2ExLjgzIDEuODMgMCAwIDAgMS41NTYtLjg5IDEuNzg0IDEuNzg0IDAgMCAwIDAtMS43NzVsLTEuMjI2LTIuMTIiIC8+CiAgPHBhdGggZD0ibTE0IDE2LTMgMyAzIDMiIC8+CiAgPHBhdGggZD0iTTguMjkzIDEzLjU5NiA3LjE5NiA5LjUgMy4xIDEwLjU5OCIgLz4KICA8cGF0aCBkPSJtOS4zNDQgNS44MTEgMS4wOTMtMS44OTJBMS44MyAxLjgzIDAgMCAxIDExLjk4NSAzYTEuNzg0IDEuNzg0IDAgMCAxIDEuNTQ2Ljg4OGwzLjk0MyA2Ljg0MyIgLz4KICA8cGF0aCBkPSJtMTMuMzc4IDkuNjMzIDQuMDk2IDEuMDk4IDEuMDk3LTQuMDk2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/recycle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Recycle: IconNode = [\n ['path', { d: 'M7 19H4.815a1.83 1.83 0 0 1-1.57-.881 1.785 1.785 0 0 1-.004-1.784L7.196 9.5' }],\n ['path', { d: 'M11 19h8.203a1.83 1.83 0 0 0 1.556-.89 1.784 1.784 0 0 0 0-1.775l-1.226-2.12' }],\n ['path', { d: 'm14 16-3 3 3 3' }],\n ['path', { d: 'M8.293 13.596 7.196 9.5 3.1 10.598' }],\n [\n 'path',\n {\n d: 'm9.344 5.811 1.093-1.892A1.83 1.83 0 0 1 11.985 3a1.784 1.784 0 0 1 1.546.888l3.943 6.843',\n },\n ],\n ['path', { d: 'm13.378 9.633 4.096 1.098 1.097-4.096' }],\n];\n\nexport default Recycle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name redo-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE3IiByPSIxIiAvPgogIDxwYXRoIGQ9Ik0yMSA3djZoLTYiIC8+CiAgPHBhdGggZD0iTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/redo-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RedoDot: IconNode = [\n ['circle', { cx: '12', cy: '17', r: '1' }],\n ['path', { d: 'M21 7v6h-6' }],\n ['path', { d: 'M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7' }],\n];\n\nexport default RedoDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name redo-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTQgNS01LTUtNSIgLz4KICA8cGF0aCBkPSJNMjAgOUg5LjVBNS41IDUuNSAwIDAgMCA0IDE0LjVBNS41IDUuNSAwIDAgMCA5LjUgMjBIMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/redo-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Redo2: IconNode = [\n ['path', { d: 'm15 14 5-5-5-5' }],\n ['path', { d: 'M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13' }],\n];\n\nexport default Redo2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name redo\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgN3Y2aC02IiAvPgogIDxwYXRoIGQ9Ik0zIDE3YTkgOSAwIDAgMSA5LTkgOSA5IDAgMCAxIDYgMi4zbDMgMi43IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/redo\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Redo: IconNode = [\n ['path', { d: 'M21 7v6h-6' }],\n ['path', { d: 'M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7' }],\n];\n\nexport default Redo;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refresh-ccw-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMCAwLTktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCIgLz4KICA8cGF0aCBkPSJNMyAzdjVoNSIgLz4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDAgOSA5IDkuNzUgOS43NSAwIDAgMCA2Ljc0LTIuNzRMMjEgMTYiIC8+CiAgPHBhdGggZD0iTTE2IDE2aDV2NSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/refresh-ccw-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RefreshCcwDot: IconNode = [\n ['path', { d: 'M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n ['path', { d: 'M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16' }],\n ['path', { d: 'M16 16h5v5' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n];\n\nexport default RefreshCcwDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refresh-ccw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMCAwLTktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCIgLz4KICA8cGF0aCBkPSJNMyAzdjVoNSIgLz4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDAgOSA5IDkuNzUgOS43NSAwIDAgMCA2Ljc0LTIuNzRMMjEgMTYiIC8+CiAgPHBhdGggZD0iTTE2IDE2aDV2NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/refresh-ccw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RefreshCcw: IconNode = [\n ['path', { d: 'M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n ['path', { d: 'M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16' }],\n ['path', { d: 'M16 16h5v5' }],\n];\n\nexport default RefreshCcw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refresh-cw-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOEwxOC43NCA1Ljc0QTkuNzUgOS43NSAwIDAgMCAxMiAzQzExIDMgMTAuMDMgMy4xNiA5LjEzIDMuNDciIC8+CiAgPHBhdGggZD0iTTggMTZIM3Y1IiAvPgogIDxwYXRoIGQ9Ik0zIDEyQzMgOS41MSA0IDcuMjYgNS42NCA1LjY0IiAvPgogIDxwYXRoIGQ9Im0zIDE2IDIuMjYgMi4yNkE5Ljc1IDkuNzUgMCAwIDAgMTIgMjFjMi40OSAwIDQuNzQtMSA2LjM2LTIuNjQiIC8+CiAgPHBhdGggZD0iTTIxIDEyYzAgMS0uMTYgMS45Ny0uNDcgMi44NyIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMiAyMiAyIDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RefreshCwOff: IconNode = [\n ['path', { d: 'M21 8L18.74 5.74A9.75 9.75 0 0 0 12 3C11 3 10.03 3.16 9.13 3.47' }],\n ['path', { d: 'M8 16H3v5' }],\n ['path', { d: 'M3 12C3 9.51 4 7.26 5.64 5.64' }],\n ['path', { d: 'm3 16 2.26 2.26A9.75 9.75 0 0 0 12 21c2.49 0 4.74-1 6.36-2.64' }],\n ['path', { d: 'M21 12c0 1-.16 1.97-.47 2.87' }],\n ['path', { d: 'M21 3v5h-5' }],\n ['path', { d: 'M22 22 2 2' }],\n];\n\nexport default RefreshCwOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refresh-cw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiIgLz4KICA8cGF0aCBkPSJNOCAxNkgzdjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RefreshCw: IconNode = [\n ['path', { d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8' }],\n ['path', { d: 'M21 3v5h-5' }],\n ['path', { d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16' }],\n ['path', { d: 'M8 16H3v5' }],\n];\n\nexport default RefreshCw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refrigerator\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA2YTQgNCAwIDAgMSA0LTRoNmE0IDQgMCAwIDEgNCA0djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZaIiAvPgogIDxwYXRoIGQ9Ik01IDEwaDE0IiAvPgogIDxwYXRoIGQ9Ik0xNSA3djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refrigerator\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Refrigerator: IconNode = [\n ['path', { d: 'M5 6a4 4 0 0 1 4-4h6a4 4 0 0 1 4 4v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6Z' }],\n ['path', { d: 'M5 10h14' }],\n ['path', { d: 'M15 7v6' }],\n];\n\nexport default Refrigerator;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name regex\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM3YxMCIgLz4KICA8cGF0aCBkPSJtMTIuNjcgNS41IDguNjYgNSIgLz4KICA8cGF0aCBkPSJtMTIuNjcgMTAuNSA4LjY2LTUiIC8+CiAgPHBhdGggZD0iTTkgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/regex\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Regex: IconNode = [\n ['path', { d: 'M17 3v10' }],\n ['path', { d: 'm12.67 5.5 8.66 5' }],\n ['path', { d: 'm12.67 10.5 8.66-5' }],\n ['path', { d: 'M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z' }],\n];\n\nexport default Regex;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name remove-formatting\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA3VjRoMTZ2MyIgLz4KICA8cGF0aCBkPSJNNSAyMGg2IiAvPgogIDxwYXRoIGQ9Ik0xMyA0IDggMjAiIC8+CiAgPHBhdGggZD0ibTE1IDE1IDUgNSIgLz4KICA8cGF0aCBkPSJtMjAgMTUtNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/remove-formatting\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RemoveFormatting: IconNode = [\n ['path', { d: 'M4 7V4h16v3' }],\n ['path', { d: 'M5 20h6' }],\n ['path', { d: 'M13 4 8 20' }],\n ['path', { d: 'm15 15 5 5' }],\n ['path', { d: 'm20 15-5 5' }],\n];\n\nexport default RemoveFormatting;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name repeat-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiA5IDMtMyAzIDMiIC8+CiAgPHBhdGggZD0iTTEzIDE4SDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Im0yMiAxNS0zIDMtMy0zIiAvPgogIDxwYXRoIGQ9Ik0xMSA2aDZhMiAyIDAgMCAxIDIgMnYxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/repeat-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Repeat2: IconNode = [\n ['path', { d: 'm2 9 3-3 3 3' }],\n ['path', { d: 'M13 18H7a2 2 0 0 1-2-2V6' }],\n ['path', { d: 'm22 15-3 3-3-3' }],\n ['path', { d: 'M11 6h6a2 2 0 0 1 2 2v10' }],\n];\n\nexport default Repeat2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name repeat-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMiA0IDQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0zIDExdi0xYTQgNCAwIDAgMSA0LTRoMTQiIC8+CiAgPHBhdGggZD0ibTcgMjItNC00IDQtNCIgLz4KICA8cGF0aCBkPSJNMjEgMTN2MWE0IDQgMCAwIDEtNCA0SDMiIC8+CiAgPHBhdGggZD0iTTExIDEwaDF2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/repeat-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Repeat1: IconNode = [\n ['path', { d: 'm17 2 4 4-4 4' }],\n ['path', { d: 'M3 11v-1a4 4 0 0 1 4-4h14' }],\n ['path', { d: 'm7 22-4-4 4-4' }],\n ['path', { d: 'M21 13v1a4 4 0 0 1-4 4H3' }],\n ['path', { d: 'M11 10h1v4' }],\n];\n\nexport default Repeat1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name repeat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMiA0IDQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0zIDExdi0xYTQgNCAwIDAgMSA0LTRoMTQiIC8+CiAgPHBhdGggZD0ibTcgMjItNC00IDQtNCIgLz4KICA8cGF0aCBkPSJNMjEgMTN2MWE0IDQgMCAwIDEtNCA0SDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/repeat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Repeat: IconNode = [\n ['path', { d: 'm17 2 4 4-4 4' }],\n ['path', { d: 'M3 11v-1a4 4 0 0 1 4-4h14' }],\n ['path', { d: 'm7 22-4-4 4-4' }],\n ['path', { d: 'M21 13v1a4 4 0 0 1-4 4H3' }],\n];\n\nexport default Repeat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name replace-all\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEiIC8+CiAgPHBhdGggZD0iTTE0IDRhMSAxIDAgMCAxIDEtMSIgLz4KICA8cGF0aCBkPSJNMTUgMTBhMSAxIDAgMCAxLTEtMSIgLz4KICA8cGF0aCBkPSJNMTkgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEiIC8+CiAgPHBhdGggZD0iTTIxIDRhMSAxIDAgMCAwLTEtMSIgLz4KICA8cGF0aCBkPSJNMjEgOWExIDEgMCAwIDEtMSAxIiAvPgogIDxwYXRoIGQ9Im0zIDcgMyAzIDMtMyIgLz4KICA8cGF0aCBkPSJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiIgLz4KICA8cmVjdCB4PSIzIiB5PSIxNCIgd2lkdGg9IjciIGhlaWdodD0iNyIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/replace-all\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReplaceAll: IconNode = [\n ['path', { d: 'M14 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1' }],\n ['path', { d: 'M14 4a1 1 0 0 1 1-1' }],\n ['path', { d: 'M15 10a1 1 0 0 1-1-1' }],\n ['path', { d: 'M19 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1' }],\n ['path', { d: 'M21 4a1 1 0 0 0-1-1' }],\n ['path', { d: 'M21 9a1 1 0 0 1-1 1' }],\n ['path', { d: 'm3 7 3 3 3-3' }],\n ['path', { d: 'M6 10V5a2 2 0 0 1 2-2h2' }],\n ['rect', { x: '3', y: '14', width: '7', height: '7', rx: '1' }],\n];\n\nexport default ReplaceAll;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name replace\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNGExIDEgMCAwIDEgMS0xIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMGExIDEgMCAwIDEtMS0xIiAvPgogIDxwYXRoIGQ9Ik0yMSA0YTEgMSAwIDAgMC0xLTEiIC8+CiAgPHBhdGggZD0iTTIxIDlhMSAxIDAgMCAxLTEgMSIgLz4KICA8cGF0aCBkPSJtMyA3IDMgMyAzLTMiIC8+CiAgPHBhdGggZD0iTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMTQiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/replace\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Replace: IconNode = [\n ['path', { d: 'M14 4a1 1 0 0 1 1-1' }],\n ['path', { d: 'M15 10a1 1 0 0 1-1-1' }],\n ['path', { d: 'M21 4a1 1 0 0 0-1-1' }],\n ['path', { d: 'M21 9a1 1 0 0 1-1 1' }],\n ['path', { d: 'm3 7 3 3 3-3' }],\n ['path', { d: 'M6 10V5a2 2 0 0 1 2-2h2' }],\n ['rect', { x: '3', y: '14', width: '7', height: '7', rx: '1' }],\n];\n\nexport default Replace;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name reply-all\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTctNS01IDUtNSIgLz4KICA8cGF0aCBkPSJNMjIgMTh2LTJhNCA0IDAgMCAwLTQtNEg3IiAvPgogIDxwYXRoIGQ9Im03IDE3LTUtNSA1LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/reply-all\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReplyAll: IconNode = [\n ['path', { d: 'm12 17-5-5 5-5' }],\n ['path', { d: 'M22 18v-2a4 4 0 0 0-4-4H7' }],\n ['path', { d: 'm7 17-5-5 5-5' }],\n];\n\nexport default ReplyAll;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name reply\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTh2LTJhNCA0IDAgMCAwLTQtNEg0IiAvPgogIDxwYXRoIGQ9Im05IDE3LTUtNSA1LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/reply\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Reply: IconNode = [\n ['path', { d: 'M20 18v-2a4 4 0 0 0-4-4H4' }],\n ['path', { d: 'm9 17-5-5 5-5' }],\n];\n\nexport default Reply;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rewind\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNmEyIDIgMCAwIDAtMy40MTQtMS40MTRsLTYgNmEyIDIgMCAwIDAgMCAyLjgyOGw2IDZBMiAyIDAgMCAwIDEyIDE4eiIgLz4KICA8cGF0aCBkPSJNMjIgNmEyIDIgMCAwIDAtMy40MTQtMS40MTRsLTYgNmEyIDIgMCAwIDAgMCAyLjgyOGw2IDZBMiAyIDAgMCAwIDIyIDE4eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/rewind\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rewind: IconNode = [\n ['path', { d: 'M12 6a2 2 0 0 0-3.414-1.414l-6 6a2 2 0 0 0 0 2.828l6 6A2 2 0 0 0 12 18z' }],\n ['path', { d: 'M22 6a2 2 0 0 0-3.414-1.414l-6 6a2 2 0 0 0 0 2.828l6 6A2 2 0 0 0 22 18z' }],\n];\n\nexport default Rewind;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ribbon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTEuMjJDMTEgOS45OTcgMTAgOSAxMCA4YTIgMiAwIDAgMSA0IDBjMCAxLS45OTggMi4wMDItMi4wMSAzLjIyIiAvPgogIDxwYXRoIGQ9Im0xMiAxOCAyLjU3LTMuNSIgLz4KICA8cGF0aCBkPSJNNi4yNDMgOS4wMTZhNyA3IDAgMCAxIDExLjUwNy0uMDA5IiAvPgogIDxwYXRoIGQ9Ik05LjM1IDE0LjUzIDEyIDExLjIyIiAvPgogIDxwYXRoIGQ9Ik05LjM1IDE0LjUzQzcuNzI4IDEyLjI0NiA2IDEwLjIyMSA2IDdhNiA1IDAgMCAxIDEyIDBjLS4wMDUgMy4yMi0xLjc3OCA1LjIzNS0zLjQzIDcuNWwzLjU1NyA0LjUyN2ExIDEgMCAwIDEtLjIwMyAxLjQzbC0xLjg5NCAxLjM2YTEgMSAwIDAgMS0xLjM4NC0uMjE1TDEyIDE4bC0yLjY3OSAzLjU5M2ExIDEgMCAwIDEtMS4zOS4yMTNsLTEuODY1LTEuMzUzYTEgMSAwIDAgMS0uMjAzLTEuNDIyeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ribbon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ribbon: IconNode = [\n ['path', { d: 'M12 11.22C11 9.997 10 9 10 8a2 2 0 0 1 4 0c0 1-.998 2.002-2.01 3.22' }],\n ['path', { d: 'm12 18 2.57-3.5' }],\n ['path', { d: 'M6.243 9.016a7 7 0 0 1 11.507-.009' }],\n ['path', { d: 'M9.35 14.53 12 11.22' }],\n [\n 'path',\n {\n d: 'M9.35 14.53C7.728 12.246 6 10.221 6 7a6 5 0 0 1 12 0c-.005 3.22-1.778 5.235-3.43 7.5l3.557 4.527a1 1 0 0 1-.203 1.43l-1.894 1.36a1 1 0 0 1-1.384-.215L12 18l-2.679 3.593a1 1 0 0 1-1.39.213l-1.865-1.353a1 1 0 0 1-.203-1.422z',\n },\n ],\n];\n\nexport default Ribbon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rocket\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC41IDE2LjVjLTEuNSAxLjI2LTIgNS0yIDVzMy43NC0uNSA1LTJjLjcxLS44NC43LTIuMTMtLjA5LTIuOTFhMi4xOCAyLjE4IDAgMCAwLTIuOTEtLjA5eiIgLz4KICA8cGF0aCBkPSJtMTIgMTUtMy0zYTIyIDIyIDAgMCAxIDItMy45NUExMi44OCAxMi44OCAwIDAgMSAyMiAyYzAgMi43Mi0uNzggNy41LTYgMTFhMjIuMzUgMjIuMzUgMCAwIDEtNCAyeiIgLz4KICA8cGF0aCBkPSJNOSAxMkg0cy41NS0zLjAzIDItNGMxLjYyLTEuMDggNSAwIDUgMCIgLz4KICA8cGF0aCBkPSJNMTIgMTV2NXMzLjAzLS41NSA0LTJjMS4wOC0xLjYyIDAtNSAwLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rocket\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rocket: IconNode = [\n [\n 'path',\n {\n d: 'M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z',\n },\n ],\n [\n 'path',\n {\n d: 'm12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z',\n },\n ],\n ['path', { d: 'M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0' }],\n ['path', { d: 'M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5' }],\n];\n\nexport default Rocket;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rocking-chair\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWxpbmUgcG9pbnRzPSIzLjUgMiA2LjUgMTIuNSAxOCAxMi41IiAvPgogIDxsaW5lIHgxPSI5LjUiIHgyPSI1LjUiIHkxPSIxMi41IiB5Mj0iMjAiIC8+CiAgPGxpbmUgeDE9IjE1IiB4Mj0iMTguNSIgeTE9IjEyLjUiIHkyPSIyMCIgLz4KICA8cGF0aCBkPSJNMi43NSAxOGExMyAxMyAwIDAgMCAxOC41IDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rocking-chair\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RockingChair: IconNode = [\n ['polyline', { points: '3.5 2 6.5 12.5 18 12.5' }],\n ['line', { x1: '9.5', x2: '5.5', y1: '12.5', y2: '20' }],\n ['line', { x1: '15', x2: '18.5', y1: '12.5', y2: '20' }],\n ['path', { d: 'M2.75 18a13 13 0 0 0 18.5 0' }],\n];\n\nexport default RockingChair;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name roller-coaster\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxOVY1IiAvPgogIDxwYXRoIGQ9Ik0xMCAxOVY2LjgiIC8+CiAgPHBhdGggZD0iTTE0IDE5di03LjgiIC8+CiAgPHBhdGggZD0iTTE4IDV2NCIgLz4KICA8cGF0aCBkPSJNMTggMTl2LTYiIC8+CiAgPHBhdGggZD0iTTIyIDE5VjkiIC8+CiAgPHBhdGggZD0iTTIgMTlWOWE0IDQgMCAwIDEgNC00YzIgMCA0IDEuMzMgNiA0czQgNCA2IDRhNCA0IDAgMSAwLTMtNi42NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/roller-coaster\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RollerCoaster: IconNode = [\n ['path', { d: 'M6 19V5' }],\n ['path', { d: 'M10 19V6.8' }],\n ['path', { d: 'M14 19v-7.8' }],\n ['path', { d: 'M18 5v4' }],\n ['path', { d: 'M18 19v-6' }],\n ['path', { d: 'M22 19V9' }],\n ['path', { d: 'M2 19V9a4 4 0 0 1 4-4c2 0 4 1.33 6 4s4 4 6 4a4 4 0 1 0-3-6.65' }],\n];\n\nexport default RollerCoaster;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rose\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTBoLTFhNCA0IDAgMSAxIDQtNHYuNTM0IiAvPgogIDxwYXRoIGQ9Ik0xNyA2aDFhNCA0IDAgMCAxIDEuNDIgNy43NGwtMi4yOS44N2E2IDYgMCAwIDEtNS4zMzktMTAuNjhsMi4wNjktMS4zMSIgLz4KICA8cGF0aCBkPSJNNC41IDE3YzIuOC0uNSA0LjQgMCA1LjUuOHMxLjggMi4yIDIuMyAzLjdjLTIgLjQtMy41LjQtNC44LS4zLTEuMi0uNi0yLjMtMS45LTMtNC4yIiAvPgogIDxwYXRoIGQ9Ik05Ljc3IDEyQzQgMTUgMiAyMiAyIDIyIiAvPgogIDxjaXJjbGUgY3g9IjE3IiBjeT0iOCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/rose\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rose: IconNode = [\n ['path', { d: 'M17 10h-1a4 4 0 1 1 4-4v.534' }],\n ['path', { d: 'M17 6h1a4 4 0 0 1 1.42 7.74l-2.29.87a6 6 0 0 1-5.339-10.68l2.069-1.31' }],\n [\n 'path',\n { d: 'M4.5 17c2.8-.5 4.4 0 5.5.8s1.8 2.2 2.3 3.7c-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2' },\n ],\n ['path', { d: 'M9.77 12C4 15 2 22 2 22' }],\n ['circle', { cx: '17', cy: '8', r: '2' }],\n];\n\nexport default Rose;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-3d\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuNDY2IDcuNUMxNS42NDMgNC4yMzcgMTMuOTUyIDIgMTIgMiA5LjIzOSAyIDcgNi40NzcgNyAxMnMyLjIzOSAxMCA1IDEwYy4zNDIgMCAuNjc3LS4wNjkgMS0uMiIgLz4KICA8cGF0aCBkPSJtMTUuMTk0IDEzLjcwNyAzLjgxNCAxLjg2LTEuODYgMy44MTQiIC8+CiAgPHBhdGggZD0iTTE5IDE1LjU3Yy0xLjgwNC44ODUtNC4yNzQgMS40My03IDEuNDMtNS41MjMgMC0xMC0yLjIzOS0xMC01czQuNDc3LTUgMTAtNWM0LjgzOCAwIDguODczIDEuNzE4IDkuOCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rotate-3d\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rotate3d: IconNode = [\n [\n 'path',\n {\n d: 'M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2',\n },\n ],\n ['path', { d: 'm15.194 13.707 3.814 1.86-1.86 3.814' }],\n [\n 'path',\n {\n d: 'M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4',\n },\n ],\n];\n\nexport default Rotate3d;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-ccw-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y2IiAvPgogIDxwYXRoIGQ9Ik0xMiA5aDIiIC8+CiAgPHBhdGggZD0iTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc0IDkuNzQgMCAwIDAtNi43NCAyLjc0TDMgOCIgLz4KICA8cGF0aCBkPSJNMyAzdjVoNSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rotate-ccw-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCcwKey: IconNode = [\n ['path', { d: 'M12 7v6' }],\n ['path', { d: 'M12 9h2' }],\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.74 9.74 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n ['circle', { cx: '12', cy: '15', r: '2' }],\n];\n\nexport default RotateCcwKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-ccw-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgOVY3YTIgMiAwIDAgMC0yLTJoLTYiIC8+CiAgPHBhdGggZD0ibTE1IDItMyAzIDMgMyIgLz4KICA8cGF0aCBkPSJNMjAgMTN2NWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/rotate-ccw-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCcwSquare: IconNode = [\n ['path', { d: 'M20 9V7a2 2 0 0 0-2-2h-6' }],\n ['path', { d: 'm15 2-3 3 3 3' }],\n ['path', { d: 'M20 13v5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2' }],\n];\n\nexport default RotateCcwSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-ccw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4IiAvPgogIDxwYXRoIGQ9Ik0zIDN2NWg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rotate-ccw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCcw: IconNode = [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n];\n\nexport default RotateCcw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-cw-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNUg2YTIgMiAwIDAgMC0yIDJ2MyIgLz4KICA8cGF0aCBkPSJtOSA4IDMtMy0zLTMiIC8+CiAgPHBhdGggZD0iTTQgMTR2NGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rotate-cw-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCwSquare: IconNode = [\n ['path', { d: 'M12 5H6a2 2 0 0 0-2 2v3' }],\n ['path', { d: 'm9 8 3-3-3-3' }],\n ['path', { d: 'M4 14v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2' }],\n];\n\nexport default RotateCwSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-cw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTktOWMyLjUyIDAgNC45MyAxIDYuNzQgMi43NEwyMSA4IiAvPgogIDxwYXRoIGQ9Ik0yMSAzdjVoLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rotate-cw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCw: IconNode = [\n ['path', { d: 'M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8' }],\n ['path', { d: 'M21 3v5h-5' }],\n];\n\nexport default RotateCw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name route-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTkiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTkgMTloOC41Yy40IDAgLjktLjEgMS4zLS4yIiAvPgogIDxwYXRoIGQ9Ik01LjIgNS4yQTMuNSAzLjUzIDAgMCAwIDYuNSAxMkgxMiIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNS4zYTMuNSAzLjUgMCAwIDAtMy4zLTMuMyIgLz4KICA8cGF0aCBkPSJNMTUgNWgtNC4zIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iNSIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/route-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RouteOff: IconNode = [\n ['circle', { cx: '6', cy: '19', r: '3' }],\n ['path', { d: 'M9 19h8.5c.4 0 .9-.1 1.3-.2' }],\n ['path', { d: 'M5.2 5.2A3.5 3.53 0 0 0 6.5 12H12' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M21 15.3a3.5 3.5 0 0 0-3.3-3.3' }],\n ['path', { d: 'M15 5h-4.3' }],\n ['circle', { cx: '18', cy: '5', r: '3' }],\n];\n\nexport default RouteOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name route\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTkiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTkgMTloOC41YTMuNSAzLjUgMCAwIDAgMC03aC0xMWEzLjUgMy41IDAgMCAxIDAtN0gxNSIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjUiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/route\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Route: IconNode = [\n ['circle', { cx: '6', cy: '19', r: '3' }],\n ['path', { d: 'M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15' }],\n ['circle', { cx: '18', cy: '5', r: '3' }],\n];\n\nexport default Route;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name router\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iOCIgeD0iMiIgeT0iMTQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik02LjAxIDE4SDYiIC8+CiAgPHBhdGggZD0iTTEwLjAxIDE4SDEwIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMHY0IiAvPgogIDxwYXRoIGQ9Ik0xNy44NCA3LjE3YTQgNCAwIDAgMC01LjY2IDAiIC8+CiAgPHBhdGggZD0iTTIwLjY2IDQuMzRhOCA4IDAgMCAwLTExLjMxIDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/router\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Router: IconNode = [\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2' }],\n ['path', { d: 'M6.01 18H6' }],\n ['path', { d: 'M10.01 18H10' }],\n ['path', { d: 'M15 10v4' }],\n ['path', { d: 'M17.84 7.17a4 4 0 0 0-5.66 0' }],\n ['path', { d: 'M20.66 4.34a8 8 0 0 0-11.31 0' }],\n];\n\nexport default Router;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rows-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEyaDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rows-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rows2: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 12h18' }],\n];\n\nexport default Rows2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rows-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMSA5SDMiIC8+CiAgPHBhdGggZD0iTTIxIDE1SDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rows-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rows3: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M21 9H3' }],\n ['path', { d: 'M21 15H3' }],\n];\n\nexport default Rows3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rows-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMSA3LjVIMyIgLz4KICA8cGF0aCBkPSJNMjEgMTJIMyIgLz4KICA8cGF0aCBkPSJNMjEgMTYuNUgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rows-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rows4: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M21 7.5H3' }],\n ['path', { d: 'M21 12H3' }],\n ['path', { d: 'M21 16.5H3' }],\n];\n\nexport default Rows4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rss\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMWE5IDkgMCAwIDEgOSA5IiAvPgogIDxwYXRoIGQ9Ik00IDRhMTYgMTYgMCAwIDEgMTYgMTYiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE5IiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rss\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rss: IconNode = [\n ['path', { d: 'M4 11a9 9 0 0 1 9 9' }],\n ['path', { d: 'M4 4a16 16 0 0 1 16 16' }],\n ['circle', { cx: '5', cy: '19', r: '1' }],\n];\n\nexport default Rss;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ruler-dimension-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTV2LTMiIC8+CiAgPHBhdGggZD0iTTE0IDE1di0zIiAvPgogIDxwYXRoIGQ9Ik0xOCAxNXYtMyIgLz4KICA8cGF0aCBkPSJNMiA4VjQiIC8+CiAgPHBhdGggZD0iTTIyIDZIMiIgLz4KICA8cGF0aCBkPSJNMjIgOFY0IiAvPgogIDxwYXRoIGQ9Ik02IDE1di0zIiAvPgogIDxyZWN0IHg9IjIiIHk9IjEyIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ruler-dimension-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RulerDimensionLine: IconNode = [\n ['path', { d: 'M10 15v-3' }],\n ['path', { d: 'M14 15v-3' }],\n ['path', { d: 'M18 15v-3' }],\n ['path', { d: 'M2 8V4' }],\n ['path', { d: 'M22 6H2' }],\n ['path', { d: 'M22 8V4' }],\n ['path', { d: 'M6 15v-3' }],\n ['rect', { x: '2', y: '12', width: '20', height: '8', rx: '2' }],\n];\n\nexport default RulerDimensionLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name russian-ruble\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxMWg4YTQgNCAwIDAgMCAwLThIOXYxOCIgLz4KICA8cGF0aCBkPSJNNiAxNWg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/russian-ruble\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RussianRuble: IconNode = [\n ['path', { d: 'M6 11h8a4 4 0 0 0 0-8H9v18' }],\n ['path', { d: 'M6 15h8' }],\n];\n\nexport default RussianRuble;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ruler\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFoiIC8+CiAgPHBhdGggZD0ibTE0LjUgMTIuNSAyLTIiIC8+CiAgPHBhdGggZD0ibTExLjUgOS41IDItMiIgLz4KICA8cGF0aCBkPSJtOC41IDYuNSAyLTIiIC8+CiAgPHBhdGggZD0ibTE3LjUgMTUuNSAyLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ruler\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ruler: IconNode = [\n [\n 'path',\n {\n d: 'M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z',\n },\n ],\n ['path', { d: 'm14.5 12.5 2-2' }],\n ['path', { d: 'm11.5 9.5 2-2' }],\n ['path', { d: 'm8.5 6.5 2-2' }],\n ['path', { d: 'm17.5 15.5 2-2' }],\n];\n\nexport default Ruler;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name salad\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAyMWgxMCIgLz4KICA8cGF0aCBkPSJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIiAvPgogIDxwYXRoIGQ9Ik0xMS4zOCAxMmEyLjQgMi40IDAgMCAxLS40LTQuNzcgMi40IDIuNCAwIDAgMSAzLjItMi43NyAyLjQgMi40IDAgMCAxIDMuNDctLjYzIDIuNCAyLjQgMCAwIDEgMy4zNyAzLjM3IDIuNCAyLjQgMCAwIDEtMS4xIDMuNyAyLjUxIDIuNTEgMCAwIDEgLjAzIDEuMSIgLz4KICA8cGF0aCBkPSJtMTMgMTIgNC00IiAvPgogIDxwYXRoIGQ9Ik0xMC45IDcuMjVBMy45OSAzLjk5IDAgMCAwIDQgMTBjMCAuNzMuMiAxLjQxLjU0IDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/salad\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Salad: IconNode = [\n ['path', { d: 'M7 21h10' }],\n ['path', { d: 'M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z' }],\n [\n 'path',\n {\n d: 'M11.38 12a2.4 2.4 0 0 1-.4-4.77 2.4 2.4 0 0 1 3.2-2.77 2.4 2.4 0 0 1 3.47-.63 2.4 2.4 0 0 1 3.37 3.37 2.4 2.4 0 0 1-1.1 3.7 2.51 2.51 0 0 1 .03 1.1',\n },\n ],\n ['path', { d: 'm13 12 4-4' }],\n ['path', { d: 'M10.9 7.25A3.99 3.99 0 0 0 4 10c0 .73.2 1.41.54 2' }],\n];\n\nexport default Salad;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sailboat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnYxNSIgLz4KICA8cGF0aCBkPSJNNyAyMmE0IDQgMCAwIDEtNC00IDEgMSAwIDAgMSAxLTFoMTZhMSAxIDAgMCAxIDEgMSA0IDQgMCAwIDEtNCA0eiIgLz4KICA8cGF0aCBkPSJNOS4xNTkgMi40NmExIDEgMCAwIDEgMS41MjEtLjE5M2w5Ljk3NyA4Ljk4QTEgMSAwIDAgMSAyMCAxM0g0YTEgMSAwIDAgMS0uODI0LTEuNTY3eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sailboat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sailboat: IconNode = [\n ['path', { d: 'M10 2v15' }],\n ['path', { d: 'M7 22a4 4 0 0 1-4-4 1 1 0 0 1 1-1h16a1 1 0 0 1 1 1 4 4 0 0 1-4 4z' }],\n [\n 'path',\n { d: 'M9.159 2.46a1 1 0 0 1 1.521-.193l9.977 8.98A1 1 0 0 1 20 13H4a1 1 0 0 1-.824-1.567z' },\n ],\n];\n\nexport default Sailboat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sandwich\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMi4zNyAxMS4yMjMgOC4zNzItNi43NzdhMiAyIDAgMCAxIDIuNTE2IDBsOC4zNzEgNi43NzciIC8+CiAgPHBhdGggZD0iTTIxIDE1YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC01LjI1IiAvPgogIDxwYXRoIGQ9Ik0zIDE1YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDkiIC8+CiAgPHBhdGggZD0ibTYuNjcgMTUgNi4xMyA0LjZhMiAyIDAgMCAwIDIuOC0uNGwzLjE1LTQuMiIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNCIgeD0iMiIgeT0iMTEiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sandwich\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sandwich: IconNode = [\n ['path', { d: 'm2.37 11.223 8.372-6.777a2 2 0 0 1 2.516 0l8.371 6.777' }],\n ['path', { d: 'M21 15a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5.25' }],\n ['path', { d: 'M3 15a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9' }],\n ['path', { d: 'm6.67 15 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2' }],\n ['rect', { width: '20', height: '4', x: '2', y: '11', rx: '1' }],\n];\n\nexport default Sandwich;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name satellite-dish\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGE3LjMxIDcuMzEgMCAwIDAgMTAgMTBaIiAvPgogIDxwYXRoIGQ9Im05IDE1IDMtMyIgLz4KICA8cGF0aCBkPSJNMTcgMTNhNiA2IDAgMCAwLTYtNiIgLz4KICA8cGF0aCBkPSJNMjEgMTNBMTAgMTAgMCAwIDAgMTEgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/satellite-dish\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SatelliteDish: IconNode = [\n ['path', { d: 'M4 10a7.31 7.31 0 0 0 10 10Z' }],\n ['path', { d: 'm9 15 3-3' }],\n ['path', { d: 'M17 13a6 6 0 0 0-6-6' }],\n ['path', { d: 'M21 13A10 10 0 0 0 11 3' }],\n];\n\nexport default SatelliteDish;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name satellite\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMuNSA2LjUtMy4xNDgtMy4xNDhhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw2LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0TDkuNSAxMC41IiAvPgogIDxwYXRoIGQ9Ik0xNi41IDcuNSAxOSA1IiAvPgogIDxwYXRoIGQ9Im0xNy41IDEwLjUgMy4xNDggMy4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDEtMS43MDQgMEwxMy41IDE0LjUiIC8+CiAgPHBhdGggZD0iTTkgMjFhNiA2IDAgMCAwLTYtNiIgLz4KICA8cGF0aCBkPSJNOS4zNTIgMTAuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw0LjI5Ni00LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwLTEuNzA0bC0yLjI5Ni0yLjI5NmExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/satellite\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Satellite: IconNode = [\n [\n 'path',\n {\n d: 'm13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5',\n },\n ],\n ['path', { d: 'M16.5 7.5 19 5' }],\n [\n 'path',\n {\n d: 'm17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5',\n },\n ],\n ['path', { d: 'M9 21a6 6 0 0 0-6-6' }],\n [\n 'path',\n {\n d: 'M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z',\n },\n ],\n];\n\nexport default Satellite;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name saudi-riyal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjAgMTkuNS01LjUgMS4yIiAvPgogIDxwYXRoIGQ9Ik0xNC41IDR2MTEuMjJhMSAxIDAgMCAwIDEuMjQyLjk3TDIwIDE1LjIiIC8+CiAgPHBhdGggZD0ibTIuOTc4IDE5LjM1MSA1LjU0OS0xLjM2M0EyIDIgMCAwIDAgMTAgMTZWMiIgLz4KICA8cGF0aCBkPSJNMjAgMTAgNCAxMy41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/saudi-riyal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SaudiRiyal: IconNode = [\n ['path', { d: 'm20 19.5-5.5 1.2' }],\n ['path', { d: 'M14.5 4v11.22a1 1 0 0 0 1.242.97L20 15.2' }],\n ['path', { d: 'm2.978 19.351 5.549-1.363A2 2 0 0 0 10 16V2' }],\n ['path', { d: 'M20 10 4 13.5' }],\n];\n\nexport default SaudiRiyal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name save-all\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnYzYTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTggMTh2LTZhMSAxIDAgMCAwLTEtMWgtNmExIDEgMCAwIDAtMSAxdjYiIC8+CiAgPHBhdGggZD0iTTE4IDIySDRhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik04IDE4YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDkuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMi44MjggMi44MjhBMiAyIDAgMCAxIDIyIDYuODI4VjE2YTIgMiAwIDAgMS0yLjAxIDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/save-all\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SaveAll: IconNode = [\n ['path', { d: 'M10 2v3a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M18 18v-6a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v6' }],\n ['path', { d: 'M18 22H4a2 2 0 0 1-2-2V6' }],\n [\n 'path',\n {\n d: 'M8 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9.172a2 2 0 0 1 1.414.586l2.828 2.828A2 2 0 0 1 22 6.828V16a2 2 0 0 1-2.01 2z',\n },\n ],\n];\n\nexport default SaveAll;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name save-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTNIOGExIDEgMCAwIDAtMSAxdjciIC8+CiAgPHBhdGggZD0iTTE0IDhoMSIgLz4KICA8cGF0aCBkPSJNMTcgMjF2LTQiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMjAuNDEgMjAuNDFBMiAyIDAgMCAxIDE5IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAuNTktMS40MSIgLz4KICA8cGF0aCBkPSJNMjkuNSAxMS41czUgNSA0IDUiIC8+CiAgPHBhdGggZD0iTTkgM2g2LjJhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/save-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SaveOff: IconNode = [\n ['path', { d: 'M13 13H8a1 1 0 0 0-1 1v7' }],\n ['path', { d: 'M14 8h1' }],\n ['path', { d: 'M17 21v-4' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20.41 20.41A2 2 0 0 1 19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 .59-1.41' }],\n ['path', { d: 'M29.5 11.5s5 5 4 5' }],\n ['path', { d: 'M9 3h6.2a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V15' }],\n];\n\nexport default SaveOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name save\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMiAzYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTcgMjF2LTdhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDF2NyIgLz4KICA8cGF0aCBkPSJNNyAzdjRhMSAxIDAgMCAwIDEgMWg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/save\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Save: IconNode = [\n [\n 'path',\n {\n d: 'M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7' }],\n ['path', { d: 'M7 3v4a1 1 0 0 0 1 1h7' }],\n];\n\nexport default Save;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scale-3d\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA3djExYTEgMSAwIDAgMCAxIDFoMTEiIC8+CiAgPHBhdGggZD0iTTUuMjkzIDE4LjcwNyAxMSAxMyIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjE5IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/scale-3d\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scale3d: IconNode = [\n ['path', { d: 'M5 7v11a1 1 0 0 0 1 1h11' }],\n ['path', { d: 'M5.293 18.707 11 13' }],\n ['circle', { cx: '19', cy: '19', r: '2' }],\n ['circle', { cx: '5', cy: '5', r: '2' }],\n];\n\nexport default Scale3d;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scale\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cGF0aCBkPSJtMTkgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyIgLz4KICA8cGF0aCBkPSJNMyA3aDFhMTcgMTcgMCAwIDAgOC0yIDE3IDE3IDAgMCAwIDggMmgxIiAvPgogIDxwYXRoIGQ9Im01IDggMyA4YTUgNSAwIDAgMS02IDB6VjciIC8+CiAgPHBhdGggZD0iTTcgMjFoMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scale\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scale: IconNode = [\n ['path', { d: 'M12 3v18' }],\n ['path', { d: 'm19 8 3 8a5 5 0 0 1-6 0zV7' }],\n ['path', { d: 'M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1' }],\n ['path', { d: 'm5 8 3 8a5 5 0 0 1-6 0zV7' }],\n ['path', { d: 'M7 21h10' }],\n];\n\nexport default Scale;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scaling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNUg5di01IiAvPgogIDxwYXRoIGQ9Ik0xNiAzaDV2NSIgLz4KICA8cGF0aCBkPSJNMjEgMyA5IDE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/scaling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scaling: IconNode = [\n ['path', { d: 'M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7' }],\n ['path', { d: 'M14 15H9v-5' }],\n ['path', { d: 'M16 3h5v5' }],\n ['path', { d: 'M21 3 9 15' }],\n];\n\nexport default Scaling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-eye\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIC8+CiAgPHBhdGggZD0iTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/scan-eye\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanEye: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n [\n 'path',\n {\n d: 'M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0',\n },\n ],\n];\n\nexport default ScanEye;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-barcode\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik04IDd2MTAiIC8+CiAgPHBhdGggZD0iTTEyIDd2MTAiIC8+CiAgPHBhdGggZD0iTTE3IDd2MTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scan-barcode\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanBarcode: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M8 7v10' }],\n ['path', { d: 'M12 7v10' }],\n ['path', { d: 'M17 7v10' }],\n];\n\nexport default ScanBarcode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-face\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIiAvPgogIDxwYXRoIGQ9Ik05IDloLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNSA5aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/scan-face\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanFace: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M8 14s1.5 2 4 2 4-2 4-2' }],\n ['path', { d: 'M9 9h.01' }],\n ['path', { d: 'M15 9h.01' }],\n];\n\nexport default ScanFace;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiIgLz4KICA8cGF0aCBkPSJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIiAvPgogIDxwYXRoIGQ9Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDQuMTcyIDQuMzA2bC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ0OSAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/scan-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanHeart: IconNode = [\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n [\n 'path',\n { d: 'M7.828 13.07A3 3 0 0 1 12 8.764a3 3 0 0 1 4.172 4.306l-3.447 3.62a1 1 0 0 1-1.449 0z' },\n ],\n];\n\nexport default ScanHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik03IDEyaDEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/scan-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanLine: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M7 12h10' }],\n];\n\nexport default ScanLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-qr-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTJ2NGExIDEgMCAwIDEtMSAxaC00IiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNyA4VjciIC8+CiAgPHBhdGggZD0iTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik03IDE3aC4wMSIgLz4KICA8cGF0aCBkPSJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIiIC8+CiAgPHJlY3QgeD0iNyIgeT0iNyIgd2lkdGg9IjUiIGhlaWdodD0iNSIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scan-qr-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanQrCode: IconNode = [\n ['path', { d: 'M17 12v4a1 1 0 0 1-1 1h-4' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M17 8V7' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M7 17h.01' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['rect', { x: '7', y: '7', width: '5', height: '5', rx: '1' }],\n];\n\nexport default ScanQrCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTE2IDE2LTEuOS0xLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scan-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanSearch: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['path', { d: 'm16 16-1.9-1.9' }],\n];\n\nexport default ScanSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik03IDhoOCIgLz4KICA8cGF0aCBkPSJNNyAxMmgxMCIgLz4KICA8cGF0aCBkPSJNNyAxNmg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/scan-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanText: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M7 8h8' }],\n ['path', { d: 'M7 12h10' }],\n ['path', { d: 'M7 16h6' }],\n];\n\nexport default ScanText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/scan\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scan: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n];\n\nexport default Scan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name school\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIiAvPgogIDxwYXRoIGQ9Ik0xOCA1djE2IiAvPgogIDxwYXRoIGQ9Im00IDYgNy4xMDYtMy43OWEyIDIgMCAwIDEgMS43ODggMEwyMCA2IiAvPgogIDxwYXRoIGQ9Im02IDExLTMuNTIgMi4xNDdhMSAxIDAgMCAwLS40OC44NTRWMTlhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0uNDgtLjg1M0wxOCAxMSIgLz4KICA8cGF0aCBkPSJNNiA1djE2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iOSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/school\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst School: IconNode = [\n ['path', { d: 'M14 21v-3a2 2 0 0 0-4 0v3' }],\n ['path', { d: 'M18 5v16' }],\n ['path', { d: 'm4 6 7.106-3.79a2 2 0 0 1 1.788 0L20 6' }],\n [\n 'path',\n {\n d: 'm6 11-3.52 2.147a1 1 0 0 0-.48.854V19a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a1 1 0 0 0-.48-.853L18 11',\n },\n ],\n ['path', { d: 'M6 5v16' }],\n ['circle', { cx: '12', cy: '9', r: '2' }],\n];\n\nexport default School;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scissors-line-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNS40MiA5LjQyIDggMTIiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjgiIHI9IjIiIC8+CiAgPHBhdGggZD0ibTE0IDYtOC41OCA4LjU4IiAvPgogIDxjaXJjbGUgY3g9IjQiIGN5PSIxNiIgcj0iMiIgLz4KICA8cGF0aCBkPSJNMTAuOCAxNC44IDE0IDE4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMmgtMiIgLz4KICA8cGF0aCBkPSJNMjIgMTJoLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scissors-line-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScissorsLineDashed: IconNode = [\n ['path', { d: 'M5.42 9.42 8 12' }],\n ['circle', { cx: '4', cy: '8', r: '2' }],\n ['path', { d: 'm14 6-8.58 8.58' }],\n ['circle', { cx: '4', cy: '16', r: '2' }],\n ['path', { d: 'M10.8 14.8 14 18' }],\n ['path', { d: 'M16 12h-2' }],\n ['path', { d: 'M22 12h-2' }],\n];\n\nexport default ScissorsLineDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scissors\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNOC4xMiA4LjEyIDEyIDEyIiAvPgogIDxwYXRoIGQ9Ik0yMCA0IDguMTIgMTUuODgiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xNC44IDE0LjggMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scissors\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scissors: IconNode = [\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M8.12 8.12 12 12' }],\n ['path', { d: 'M20 4 8.12 15.88' }],\n ['circle', { cx: '6', cy: '18', r: '3' }],\n ['path', { d: 'M14.8 14.8 20 20' }],\n];\n\nexport default Scissors;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scooter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNGgtMy41bDIgMTEuMDUiIC8+CiAgPHBhdGggZD0iTTYuOTUgMTdoNS4xNDJjLjUyMyAwIC45NS0uNDA2IDEuMDYzLS45MTZhNi41IDYuNSAwIDAgMSA1LjM0NS01LjAwOSIgLz4KICA8Y2lyY2xlIGN4PSIxOS41IiBjeT0iMTcuNSIgcj0iMi41IiAvPgogIDxjaXJjbGUgY3g9IjQuNSIgY3k9IjE3LjUiIHI9IjIuNSIgLz4KPC9zdmc+) - https://lucide.dev/icons/scooter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scooter: IconNode = [\n ['path', { d: 'M21 4h-3.5l2 11.05' }],\n ['path', { d: 'M6.95 17h5.142c.523 0 .95-.406 1.063-.916a6.5 6.5 0 0 1 5.345-5.009' }],\n ['circle', { cx: '19.5', cy: '17.5', r: '2.5' }],\n ['circle', { cx: '4.5', cy: '17.5', r: '2.5' }],\n];\n\nexport default Scooter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name screen-share-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zIiAvPgogIDxwYXRoIGQ9Ik04IDIxaDgiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0ibTIyIDMtNSA1IiAvPgogIDxwYXRoIGQ9Im0xNyAzIDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/screen-share-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScreenShareOff: IconNode = [\n ['path', { d: 'M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3' }],\n ['path', { d: 'M8 21h8' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'm22 3-5 5' }],\n ['path', { d: 'm17 3 5 5' }],\n];\n\nexport default ScreenShareOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name screen-share\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zIiAvPgogIDxwYXRoIGQ9Ik04IDIxaDgiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0ibTE3IDggNS01IiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDV2NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/screen-share\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScreenShare: IconNode = [\n ['path', { d: 'M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3' }],\n ['path', { d: 'M8 21h8' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'm17 8 5-5' }],\n ['path', { d: 'M17 3h5v5' }],\n];\n\nexport default ScreenShare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scroll\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQiIC8+CiAgPHBhdGggZD0iTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/scroll\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scroll: IconNode = [\n ['path', { d: 'M19 17V5a2 2 0 0 0-2-2H4' }],\n [\n 'path',\n {\n d: 'M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3',\n },\n ],\n];\n\nexport default Scroll;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scroll-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTJoLTUiIC8+CiAgPHBhdGggZD0iTTE1IDhoLTUiIC8+CiAgPHBhdGggZD0iTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0IiAvPgogIDxwYXRoIGQ9Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scroll-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScrollText: IconNode = [\n ['path', { d: 'M15 12h-5' }],\n ['path', { d: 'M15 8h-5' }],\n ['path', { d: 'M19 17V5a2 2 0 0 0-2-2H4' }],\n [\n 'path',\n {\n d: 'M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3',\n },\n ],\n];\n\nexport default ScrollText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxwYXRoIGQ9Im0yMSAyMS00LjMtNC4zIiAvPgogIDxwYXRoIGQ9Ik0xMSA3djQiIC8+CiAgPHBhdGggZD0iTTExIDE1aC4wMSIgLz4KPC9zdmc+) - https://lucide.dev/icons/search-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SearchAlert: IconNode = [\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n ['path', { d: 'M11 7v4' }],\n ['path', { d: 'M11 15h.01' }],\n];\n\nexport default SearchAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOCAxMSAyIDIgNC00IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+CiAgPHBhdGggZD0ibTIxIDIxLTQuMy00LjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SearchCheck: IconNode = [\n ['path', { d: 'm8 11 2 2 4-4' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n];\n\nexport default SearchCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMgMTMuNSAyLTIuNS0yLTIuNSIgLz4KICA8cGF0aCBkPSJtMjEgMjEtNC4zLTQuMyIgLz4KICA8cGF0aCBkPSJNOSA4LjUgNyAxMWwyIDIuNSIgLz4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/search-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SearchCode: IconNode = [\n ['path', { d: 'm13 13.5 2-2.5-2-2.5' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n ['path', { d: 'M9 8.5 7 11l2 2.5' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n];\n\nexport default SearchCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search-slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMuNSA4LjUtNSA1IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+CiAgPHBhdGggZD0ibTIxIDIxLTQuMy00LjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search-slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SearchSlash: IconNode = [\n ['path', { d: 'm13.5 8.5-5 5' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n];\n\nexport default SearchSlash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMuNSA4LjUtNSA1IiAvPgogIDxwYXRoIGQ9Im04LjUgOC41IDUgNSIgLz4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxwYXRoIGQ9Im0yMSAyMS00LjMtNC4zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/search-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SearchX: IconNode = [\n ['path', { d: 'm13.5 8.5-5 5' }],\n ['path', { d: 'm8.5 8.5 5 5' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n];\n\nexport default SearchX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Search: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n];\n\nexport default Search;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name section\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNWE0IDMgMCAwIDAtOCAwYzAgNCA4IDMgOCA3YTQgMyAwIDAgMS04IDAiIC8+CiAgPHBhdGggZD0iTTggMTlhNCAzIDAgMCAwIDggMGMwLTQtOC0zLTgtN2E0IDMgMCAwIDEgOCAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/section\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Section: IconNode = [\n ['path', { d: 'M16 5a4 3 0 0 0-8 0c0 4 8 3 8 7a4 3 0 0 1-8 0' }],\n ['path', { d: 'M8 19a4 3 0 0 0 8 0c0-4-8-3-8-7a4 3 0 0 1 8 0' }],\n];\n\nexport default Section;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name send-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy43MTQgMy4wNDhhLjQ5OC40OTggMCAwIDAtLjY4My42MjdsMi44NDMgNy42MjdhMiAyIDAgMCAxIDAgMS4zOTZsLTIuODQyIDcuNjI3YS40OTguNDk4IDAgMCAwIC42ODIuNjI3bDE4LTguNWEuNS41IDAgMCAwIDAtLjkwNHoiIC8+CiAgPHBhdGggZD0iTTYgMTJoMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/send-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SendHorizontal: IconNode = [\n [\n 'path',\n {\n d: 'M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z',\n },\n ],\n ['path', { d: 'M6 12h16' }],\n];\n\nexport default SendHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name send-to-back\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIyIiAvPgogIDxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDE0djFhMiAyIDAgMCAwIDIgMmgxIiAvPgogIDxwYXRoIGQ9Ik0xNCA3aDFhMiAyIDAgMCAxIDIgMnYxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send-to-back\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SendToBack: IconNode = [\n ['rect', { x: '14', y: '14', width: '8', height: '8', rx: '2' }],\n ['rect', { x: '2', y: '2', width: '8', height: '8', rx: '2' }],\n ['path', { d: 'M7 14v1a2 2 0 0 0 2 2h1' }],\n ['path', { d: 'M14 7h1a2 2 0 0 1 2 2v1' }],\n];\n\nexport default SendToBack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name send\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6IiAvPgogIDxwYXRoIGQ9Im0yMS44NTQgMi4xNDctMTAuOTQgMTAuOTM5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Send: IconNode = [\n [\n 'path',\n {\n d: 'M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939' }],\n];\n\nexport default Send;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name separator-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cGF0aCBkPSJtMTYgMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJtOCA4LTQgNCA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/separator-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SeparatorVertical: IconNode = [\n ['path', { d: 'M12 3v18' }],\n ['path', { d: 'm16 16 4-4-4-4' }],\n ['path', { d: 'm8 8-4 4 4 4' }],\n];\n\nexport default SeparatorVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name separator-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTYtNCA0LTQtNCIgLz4KICA8cGF0aCBkPSJNMyAxMmgxOCIgLz4KICA8cGF0aCBkPSJtOCA4IDQtNCA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/separator-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SeparatorHorizontal: IconNode = [\n ['path', { d: 'm16 16-4 4-4-4' }],\n ['path', { d: 'M3 12h18' }],\n ['path', { d: 'm8 8 4-4 4 4' }],\n];\n\nexport default SeparatorHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name server-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyIgLz4KICA8cGF0aCBkPSJNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyIgLz4KICA8cGF0aCBkPSJtMTMuMTQ4IDkuMjI4LjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xMy41MyAxNS42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCIgLz4KICA8cGF0aCBkPSJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyIgLz4KICA8cGF0aCBkPSJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIiAvPgogIDxwYXRoIGQ9Ik00LjUgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtLjUiIC8+CiAgPHBhdGggZD0iTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUiIC8+CiAgPHBhdGggZD0iTTYgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik02IDZoLjAxIiAvPgogIDxwYXRoIGQ9Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIiAvPgogIDxwYXRoIGQ9Im05LjIyOCAxMy4xNDgtLjkyMy4zODMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/server-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ServerCog: IconNode = [\n ['path', { d: 'm10.852 14.772-.383.923' }],\n ['path', { d: 'M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923' }],\n ['path', { d: 'm13.148 9.228.383-.923' }],\n ['path', { d: 'm13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544' }],\n ['path', { d: 'm14.772 10.852.923-.383' }],\n ['path', { d: 'm14.772 13.148.923.383' }],\n ['path', { d: 'M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5' }],\n ['path', { d: 'M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'M6 6h.01' }],\n ['path', { d: 'm9.228 10.852-.923-.383' }],\n ['path', { d: 'm9.228 13.148-.923.383' }],\n];\n\nexport default ServerCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name server-crash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC0yIiAvPgogIDxwYXRoIGQ9Ik02IDE0SDRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC0yIiAvPgogIDxwYXRoIGQ9Ik02IDZoLjAxIiAvPgogIDxwYXRoIGQ9Ik02IDE4aC4wMSIgLz4KICA8cGF0aCBkPSJtMTMgNi00IDZoNmwtNCA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/server-crash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ServerCrash: IconNode = [\n ['path', { d: 'M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2' }],\n ['path', { d: 'M6 6h.01' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'm13 6-4 6h6l-4 6' }],\n];\n\nexport default ServerCrash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name server-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAyaDEzYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC01IiAvPgogIDxwYXRoIGQ9Ik0xMCAxMCAyLjUgMi41QzIgMiAyIDIuNSAyIDV2M2EyIDIgMCAwIDAgMiAyaDZ6IiAvPgogIDxwYXRoIGQ9Ik0yMiAxN3YtMWEyIDIgMCAwIDAtMi0yaC0xIiAvPgogIDxwYXRoIGQ9Ik00IDE0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2LjVsMS0uNS41LjUtOC04SDR6IiAvPgogIDxwYXRoIGQ9Ik02IDE4aC4wMSIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/server-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ServerOff: IconNode = [\n ['path', { d: 'M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5' }],\n ['path', { d: 'M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z' }],\n ['path', { d: 'M22 17v-1a2 2 0 0 0-2-2h-1' }],\n ['path', { d: 'M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default ServerOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name server\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iOCIgeD0iMiIgeT0iMiIgcng9IjIiIHJ5PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiB4PSIyIiB5PSIxNCIgcng9IjIiIHJ5PSIyIiAvPgogIDxsaW5lIHgxPSI2IiB4Mj0iNi4wMSIgeTE9IjYiIHkyPSI2IiAvPgogIDxsaW5lIHgxPSI2IiB4Mj0iNi4wMSIgeTE9IjE4IiB5Mj0iMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/server\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Server: IconNode = [\n ['rect', { width: '20', height: '8', x: '2', y: '2', rx: '2', ry: '2' }],\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2', ry: '2' }],\n ['line', { x1: '6', x2: '6.01', y1: '6', y2: '6' }],\n ['line', { x1: '6', x2: '6.01', y1: '18', y2: '18' }],\n];\n\nexport default Server;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name settings-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTdINSIgLz4KICA8cGF0aCBkPSJNMTkgN2gtOSIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE3IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSI3IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/settings-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Settings2: IconNode = [\n ['path', { d: 'M14 17H5' }],\n ['path', { d: 'M19 7h-9' }],\n ['circle', { cx: '17', cy: '17', r: '3' }],\n ['circle', { cx: '7', cy: '7', r: '3' }],\n];\n\nexport default Settings2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name settings\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOS42NzEgNC4xMzZhMi4zNCAyLjM0IDAgMCAxIDQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwIDMuMzE5IDEuOTE1IDIuMzQgMi4zNCAwIDAgMSAyLjMzIDQuMDMzIDIuMzQgMi4zNCAwIDAgMCAwIDMuODMxIDIuMzQgMi4zNCAwIDAgMS0yLjMzIDQuMDMzIDIuMzQgMi4zNCAwIDAgMC0zLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEtNC42NTkgMCAyLjM0IDIuMzQgMCAwIDAtMy4zMi0xLjkxNSAyLjM0IDIuMzQgMCAwIDEtMi4zMy00LjAzMyAyLjM0IDIuMzQgMCAwIDAgMC0zLjgzMUEyLjM0IDIuMzQgMCAwIDEgNi4zNSA2LjA1MWEyLjM0IDIuMzQgMCAwIDAgMy4zMTktMS45MTUiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/settings\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Settings: IconNode = [\n [\n 'path',\n {\n d: 'M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default Settings;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shapes\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOC4zIDEwYS43LjcgMCAwIDEtLjYyNi0xLjA3OUwxMS40IDNhLjcuNyAwIDAgMSAxLjE5OC0uMDQzTDE2LjMgOC45YS43LjcgMCAwIDEtLjU3MiAxLjFaIiAvPgogIDxyZWN0IHg9IjMiIHk9IjE0IiB3aWR0aD0iNyIgaGVpZ2h0PSI3IiByeD0iMSIgLz4KICA8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTcuNSIgcj0iMy41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shapes\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shapes: IconNode = [\n [\n 'path',\n {\n d: 'M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z',\n },\n ],\n ['rect', { x: '3', y: '14', width: '7', height: '7', rx: '1' }],\n ['circle', { cx: '17.5', cy: '17.5', r: '3.5' }],\n];\n\nexport default Shapes;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name share-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjUiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjEyIiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTkiIHI9IjMiIC8+CiAgPGxpbmUgeDE9IjguNTkiIHgyPSIxNS40MiIgeTE9IjEzLjUxIiB5Mj0iMTcuNDkiIC8+CiAgPGxpbmUgeDE9IjE1LjQxIiB4Mj0iOC41OSIgeTE9IjYuNTEiIHkyPSIxMC40OSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/share-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Share2: IconNode = [\n ['circle', { cx: '18', cy: '5', r: '3' }],\n ['circle', { cx: '6', cy: '12', r: '3' }],\n ['circle', { cx: '18', cy: '19', r: '3' }],\n ['line', { x1: '8.59', x2: '15.42', y1: '13.51', y2: '17.49' }],\n ['line', { x1: '15.41', x2: '8.59', y1: '6.51', y2: '10.49' }],\n];\n\nexport default Share2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name share\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxMyIgLz4KICA8cGF0aCBkPSJtMTYgNi00LTQtNCA0IiAvPgogIDxwYXRoIGQ9Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/share\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Share: IconNode = [\n ['path', { d: 'M12 2v13' }],\n ['path', { d: 'm16 6-4-4-4 4' }],\n ['path', { d: 'M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8' }],\n];\n\nexport default Share;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sheet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8bGluZSB4MT0iMyIgeDI9IjIxIiB5MT0iOSIgeTI9IjkiIC8+CiAgPGxpbmUgeDE9IjMiIHgyPSIyMSIgeTE9IjE1IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjkiIHgyPSI5IiB5MT0iOSIgeTI9IjIxIiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjE1IiB5MT0iOSIgeTI9IjIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sheet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sheet: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['line', { x1: '3', x2: '21', y1: '9', y2: '9' }],\n ['line', { x1: '3', x2: '21', y1: '15', y2: '15' }],\n ['line', { x1: '9', x2: '9', y1: '9', y2: '21' }],\n ['line', { x1: '15', x2: '15', y1: '9', y2: '21' }],\n];\n\nexport default Sheet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shell\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTFhMiAyIDAgMSAxLTQgMCA0IDQgMCAwIDEgOCAwIDYgNiAwIDAgMS0xMiAwIDggOCAwIDAgMSAxNiAwIDEwIDEwIDAgMSAxLTIwIDAgMTEuOTMgMTEuOTMgMCAwIDEgMi40Mi03LjIyIDIgMiAwIDEgMSAzLjE2IDIuNDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shell\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shell: IconNode = [\n [\n 'path',\n {\n d: 'M14 11a2 2 0 1 1-4 0 4 4 0 0 1 8 0 6 6 0 0 1-12 0 8 8 0 0 1 16 0 10 10 0 1 1-20 0 11.93 11.93 0 0 1 2.42-7.22 2 2 0 1 1 3.16 2.44',\n },\n ],\n];\n\nexport default Shell;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTEyIDh2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shield-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldAlert: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M12 8v4' }],\n ['path', { d: 'M12 16h.01' }],\n];\n\nexport default ShieldAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-ban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTQuMjQzIDUuMjEgMTQuMzkgMTIuNDcyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shield-ban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldBan: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'm4.243 5.21 14.39 12.472' }],\n];\n\nexport default ShieldBan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTkgMTIgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldCheck: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default ShieldCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldEllipsis: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M8 12h.01' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M16 12h.01' }],\n];\n\nexport default ShieldEllipsis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-half\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTEyIDIyVjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield-half\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldHalf: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M12 22V2' }],\n];\n\nexport default ShieldHalf;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTkgMTJoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldMinus: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M9 12h6' }],\n];\n\nexport default ShieldMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik01IDVhMSAxIDAgMCAwLTEgMXY3YzAgNSAzLjUgNy41IDcuNjcgOC45NGExIDEgMCAwIDAgLjY3LjAxYzIuMzUtLjgyIDQuNDgtMS45NyA1LjktMy43MSIgLz4KICA8cGF0aCBkPSJNOS4zMDkgMy42NTJBMTIuMjUyIDEyLjI1MiAwIDAgMCAxMS4yNCAyLjI4YTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY3YTkuNzg0IDkuNzg0IDAgMCAxLS4wOCAxLjI2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldOff: IconNode = [\n ['path', { d: 'm2 2 20 20' }],\n [\n 'path',\n {\n d: 'M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71',\n },\n ],\n [\n 'path',\n {\n d: 'M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264',\n },\n ],\n];\n\nexport default ShieldOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTkgMTJoNiIgLz4KICA8cGF0aCBkPSJNMTIgOXY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shield-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldPlus: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M9 12h6' }],\n ['path', { d: 'M12 9v6' }],\n];\n\nexport default ShieldPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTkuMSA5YTMgMyAwIDAgMSA1LjgyIDFjMCAyLTMgMy0zIDMiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldQuestionMark: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default ShieldQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTEiIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield-user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldUser: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M6.376 18.91a6 6 0 0 1 11.249.003' }],\n ['circle', { cx: '12', cy: '11', r: '4' }],\n];\n\nexport default ShieldUser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTE0LjUgOS41LTUgNSIgLz4KICA8cGF0aCBkPSJtOS41IDkuNSA1IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldX: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'm14.5 9.5-5 5' }],\n ['path', { d: 'm9.5 9.5 5 5' }],\n];\n\nexport default ShieldX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shield: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n];\n\nexport default Shield;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ship-wheel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjcuNSIgLz4KICA8cGF0aCBkPSJtMTkgNS01LjIzIDUuMjMiIC8+CiAgPHBhdGggZD0iTTIyIDEyaC03LjUiIC8+CiAgPHBhdGggZD0ibTE5IDE5LTUuMjMtNS4yMyIgLz4KICA8cGF0aCBkPSJNMTIgMTQuNVYyMiIgLz4KICA8cGF0aCBkPSJNMTAuMjMgMTMuNzcgNSAxOSIgLz4KICA8cGF0aCBkPSJNOS41IDEySDIiIC8+CiAgPHBhdGggZD0iTTEwLjIzIDEwLjIzIDUgNSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ship-wheel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShipWheel: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '8' }],\n ['path', { d: 'M12 2v7.5' }],\n ['path', { d: 'm19 5-5.23 5.23' }],\n ['path', { d: 'M22 12h-7.5' }],\n ['path', { d: 'm19 19-5.23-5.23' }],\n ['path', { d: 'M12 14.5V22' }],\n ['path', { d: 'M10.23 13.77 5 19' }],\n ['path', { d: 'M9.5 12H2' }],\n ['path', { d: 'M10.23 10.23 5 5' }],\n ['circle', { cx: '12', cy: '12', r: '2.5' }],\n];\n\nexport default ShipWheel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ship\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTAuMTg5VjE0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjMiIC8+CiAgPHBhdGggZD0iTTE5IDEzVjdhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2NiIgLz4KICA8cGF0aCBkPSJNMTkuMzggMjBBMTEuNiAxMS42IDAgMCAwIDIxIDE0bC04LjE4OC0zLjYzOWEyIDIgMCAwIDAtMS42MjQgMEwzIDE0YTExLjYgMTEuNiAwIDAgMCAyLjgxIDcuNzYiIC8+CiAgPHBhdGggZD0iTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDFzMS4yIDEgMi41IDFjMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ship\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ship: IconNode = [\n ['path', { d: 'M12 10.189V14' }],\n ['path', { d: 'M12 2v3' }],\n ['path', { d: 'M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6' }],\n [\n 'path',\n {\n d: 'M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76',\n },\n ],\n [\n 'path',\n {\n d: 'M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n];\n\nexport default Ship;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shirt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuMzggMy40NiAxNiAyYTQgNCAwIDAgMS04IDBMMy42MiAzLjQ2YTIgMiAwIDAgMC0xLjM0IDIuMjNsLjU4IDMuNDdhMSAxIDAgMCAwIC45OS44NEg2djEwYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjEwaDIuMTVhMSAxIDAgMCAwIC45OS0uODRsLjU4LTMuNDdhMiAyIDAgMCAwLTEuMzQtMi4yM3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shirt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shirt: IconNode = [\n [\n 'path',\n {\n d: 'M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z',\n },\n ],\n];\n\nexport default Shirt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shopping-bag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTBhNCA0IDAgMCAxLTggMCIgLz4KICA8cGF0aCBkPSJNMy4xMDMgNi4wMzRoMTcuNzk0IiAvPgogIDxwYXRoIGQ9Ik0zLjQgNS40NjdhMiAyIDAgMCAwLS40IDEuMlYyMGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNi42NjdhMiAyIDAgMCAwLS40LTEuMmwtMi0yLjY2N0EyIDIgMCAwIDAgMTcgMkg3YTIgMiAwIDAgMC0xLjYuOHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shopping-bag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShoppingBag: IconNode = [\n ['path', { d: 'M16 10a4 4 0 0 1-8 0' }],\n ['path', { d: 'M3.103 6.034h17.794' }],\n [\n 'path',\n {\n d: 'M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z',\n },\n ],\n];\n\nexport default ShoppingBag;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shopping-basket\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTEtMSA5IiAvPgogIDxwYXRoIGQ9Im0xOSAxMS00LTciIC8+CiAgPHBhdGggZD0iTTIgMTFoMjAiIC8+CiAgPHBhdGggZD0ibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQiIC8+CiAgPHBhdGggZD0iTTQuNSAxNS41aDE1IiAvPgogIDxwYXRoIGQ9Im01IDExIDQtNyIgLz4KICA8cGF0aCBkPSJtOSAxMSAxIDkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shopping-basket\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShoppingBasket: IconNode = [\n ['path', { d: 'm15 11-1 9' }],\n ['path', { d: 'm19 11-4-7' }],\n ['path', { d: 'M2 11h20' }],\n ['path', { d: 'm3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4' }],\n ['path', { d: 'M4.5 15.5h15' }],\n ['path', { d: 'm5 11 4-7' }],\n ['path', { d: 'm9 11 1 9' }],\n];\n\nexport default ShoppingBasket;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shopping-cart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI4IiBjeT0iMjEiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSIyMSIgcj0iMSIgLz4KICA8cGF0aCBkPSJNMi4wNSAyLjA1aDJsMi42NiAxMi40MmEyIDIgMCAwIDAgMiAxLjU4aDkuNzhhMiAyIDAgMCAwIDEuOTUtMS41N2wxLjY1LTcuNDNINS4xMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shopping-cart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShoppingCart: IconNode = [\n ['circle', { cx: '8', cy: '21', r: '1' }],\n ['circle', { cx: '19', cy: '21', r: '1' }],\n [\n 'path',\n { d: 'M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12' },\n ],\n];\n\nexport default ShoppingCart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shovel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuNTYgNC41NmExLjUgMS41IDAgMCAxIDAgMi4xMjJsLS40Ny40N2EzIDMgMCAwIDEtNC4yMTItLjAzIDMgMyAwIDAgMSAwLTQuMjQzbC40NC0uNDRhMS41IDEuNSAwIDAgMSAyLjEyMSAweiIgLz4KICA8cGF0aCBkPSJNMyAyMmExIDEgMCAwIDEtMS0xdi0zLjU4NmExIDEgMCAwIDEgLjI5My0uNzA3bDMuMzU1LTMuMzU1YTEuMjA1IDEuMjA1IDAgMCAxIDEuNzA0IDBsMy4yOTYgMy4yOTZhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMy4zNTUgMy4zNTVhMSAxIDAgMCAxLS43MDcuMjkzeiIgLz4KICA8cGF0aCBkPSJtOSAxNSA3Ljg3OS03Ljg3OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shovel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shovel: IconNode = [\n [\n 'path',\n {\n d: 'M21.56 4.56a1.5 1.5 0 0 1 0 2.122l-.47.47a3 3 0 0 1-4.212-.03 3 3 0 0 1 0-4.243l.44-.44a1.5 1.5 0 0 1 2.121 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M3 22a1 1 0 0 1-1-1v-3.586a1 1 0 0 1 .293-.707l3.355-3.355a1.205 1.205 0 0 1 1.704 0l3.296 3.296a1.205 1.205 0 0 1 0 1.704l-3.355 3.355a1 1 0 0 1-.707.293z',\n },\n ],\n ['path', { d: 'm9 15 7.879-7.878' }],\n];\n\nexport default Shovel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shower-head\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNCA0IDIuNSAyLjUiIC8+CiAgPHBhdGggZD0iTTEzLjUgNi41YTQuOTUgNC45NSAwIDAgMC03IDciIC8+CiAgPHBhdGggZD0iTTE1IDUgNSAxNSIgLz4KICA8cGF0aCBkPSJNMTQgMTd2LjAxIiAvPgogIDxwYXRoIGQ9Ik0xMCAxNnYuMDEiIC8+CiAgPHBhdGggZD0iTTEzIDEzdi4wMSIgLz4KICA8cGF0aCBkPSJNMTYgMTB2LjAxIiAvPgogIDxwYXRoIGQ9Ik0xMSAyMHYuMDEiIC8+CiAgPHBhdGggZD0iTTE3IDE0di4wMSIgLz4KICA8cGF0aCBkPSJNMjAgMTF2LjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shower-head\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShowerHead: IconNode = [\n ['path', { d: 'm4 4 2.5 2.5' }],\n ['path', { d: 'M13.5 6.5a4.95 4.95 0 0 0-7 7' }],\n ['path', { d: 'M15 5 5 15' }],\n ['path', { d: 'M14 17v.01' }],\n ['path', { d: 'M10 16v.01' }],\n ['path', { d: 'M13 13v.01' }],\n ['path', { d: 'M16 10v.01' }],\n ['path', { d: 'M11 20v.01' }],\n ['path', { d: 'M17 14v.01' }],\n ['path', { d: 'M20 11v.01' }],\n];\n\nexport default ShowerHead;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shredder\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxM1Y0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NSIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMjJ2LTUiIC8+CiAgPHBhdGggZD0iTTE0IDE5di0yIiAvPgogIDxwYXRoIGQ9Ik0xOCAyMHYtMyIgLz4KICA8cGF0aCBkPSJNMiAxM2gyMCIgLz4KICA8cGF0aCBkPSJNNiAyMHYtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shredder\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shredder: IconNode = [\n [\n 'path',\n { d: 'M4 13V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5' },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 22v-5' }],\n ['path', { d: 'M14 19v-2' }],\n ['path', { d: 'M18 20v-3' }],\n ['path', { d: 'M2 13h20' }],\n ['path', { d: 'M6 20v-3' }],\n];\n\nexport default Shredder;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shrimp\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMyAyMmMuNS0uNSAxLjEyLTEgMi41LTEtMS4zOCAwLTItLjUtMi41LTEiIC8+CiAgPHBhdGggZD0iTTE0IDJhMy4yOCAzLjI4IDAgMCAxLTMuMjI3IDEuNzk4bC02LjE3LS41NjFBMi4zODcgMi4zODcgMCAxIDAgNC4zODcgOEgxNS41YTEgMSAwIDAgMSAwIDEzIDEgMSAwIDAgMCAwLTVIMTJhNyA3IDAgMCAxLTctN1Y4IiAvPgogIDxwYXRoIGQ9Ik0xNCA4YTguNSA4LjUgMCAwIDEgMCA4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxNmMyIDAgNC41LTQgNC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shrimp\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shrimp: IconNode = [\n ['path', { d: 'M11 12h.01' }],\n ['path', { d: 'M13 22c.5-.5 1.12-1 2.5-1-1.38 0-2-.5-2.5-1' }],\n [\n 'path',\n {\n d: 'M14 2a3.28 3.28 0 0 1-3.227 1.798l-6.17-.561A2.387 2.387 0 1 0 4.387 8H15.5a1 1 0 0 1 0 13 1 1 0 0 0 0-5H12a7 7 0 0 1-7-7V8',\n },\n ],\n ['path', { d: 'M14 8a8.5 8.5 0 0 1 0 8' }],\n ['path', { d: 'M16 16c2 0 4.5-4 4-6' }],\n];\n\nexport default Shrimp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shrink\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTUgNiA2bS02LTZ2NC44bTAtNC44aDQuOCIgLz4KICA8cGF0aCBkPSJNOSAxOS44VjE1bTAgMEg0LjJNOSAxNWwtNiA2IiAvPgogIDxwYXRoIGQ9Ik0xNSA0LjJWOW0wIDBoNC44TTE1IDlsNi02IiAvPgogIDxwYXRoIGQ9Ik05IDQuMlY5bTAgMEg0LjJNOSA5IDMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shrink\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shrink: IconNode = [\n ['path', { d: 'm15 15 6 6m-6-6v4.8m0-4.8h4.8' }],\n ['path', { d: 'M9 19.8V15m0 0H4.2M9 15l-6 6' }],\n ['path', { d: 'M15 4.2V9m0 0h4.8M15 9l6-6' }],\n ['path', { d: 'M9 4.2V9m0 0H4.2M9 9 3 3' }],\n];\n\nexport default Shrink;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shuffle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTQgNCA0LTQgNCIgLz4KICA8cGF0aCBkPSJtMTggMiA0IDQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0yIDE4aDEuOTczYTQgNCAwIDAgMCAzLjMtMS43bDUuNDU0LTguNmE0IDQgMCAwIDEgMy4zLTEuN0gyMiIgLz4KICA8cGF0aCBkPSJNMiA2aDEuOTcyYTQgNCAwIDAgMSAzLjYgMi4yIiAvPgogIDxwYXRoIGQ9Ik0yMiAxOGgtNi4wNDFhNCA0IDAgMCAxLTMuMy0xLjhsLS4zNTktLjQ1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shuffle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shuffle: IconNode = [\n ['path', { d: 'm18 14 4 4-4 4' }],\n ['path', { d: 'm18 2 4 4-4 4' }],\n ['path', { d: 'M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22' }],\n ['path', { d: 'M2 6h1.972a4 4 0 0 1 3.6 2.2' }],\n ['path', { d: 'M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45' }],\n];\n\nexport default Shuffle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shrub\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTUuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDkuNSAxMy41IiAvPgogIDxwYXRoIGQ9Ik0xNC41IDE0LjUgMTIgMTciIC8+CiAgPHBhdGggZD0iTTE3IDguOEE2IDYgMCAwIDEgMTMuOCAyMEgxMEE2LjUgNi41IDAgMCAxIDcgOGE1IDUgMCAwIDEgMTAgMHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shrub\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shrub: IconNode = [\n ['path', { d: 'M12 22v-5.172a2 2 0 0 0-.586-1.414L9.5 13.5' }],\n ['path', { d: 'M14.5 14.5 12 17' }],\n ['path', { d: 'M17 8.8A6 6 0 0 1 13.8 20H10A6.5 6.5 0 0 1 7 8a5 5 0 0 1 10 0z' }],\n];\n\nexport default Shrub;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sigma\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggN1Y1YTEgMSAwIDAgMC0xLTFINi41YS41LjUgMCAwIDAtLjQuOGw0LjUgNmEyIDIgMCAwIDEgMCAyLjRsLTQuNSA2YS41LjUgMCAwIDAgLjQuOEgxN2ExIDEgMCAwIDAgMS0xdi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sigma\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sigma: IconNode = [\n [\n 'path',\n {\n d: 'M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2',\n },\n ],\n];\n\nexport default Sigma;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signal-high\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMjB2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDIwdi04IiAvPgogIDxwYXRoIGQ9Ik0xNyAyMFY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/signal-high\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SignalHigh: IconNode = [\n ['path', { d: 'M2 20h.01' }],\n ['path', { d: 'M7 20v-4' }],\n ['path', { d: 'M12 20v-8' }],\n ['path', { d: 'M17 20V8' }],\n];\n\nexport default SignalHigh;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signal-low\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMjB2LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/signal-low\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SignalLow: IconNode = [\n ['path', { d: 'M2 20h.01' }],\n ['path', { d: 'M7 20v-4' }],\n];\n\nexport default SignalLow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signal-medium\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMjB2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDIwdi04IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/signal-medium\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SignalMedium: IconNode = [\n ['path', { d: 'M2 20h.01' }],\n ['path', { d: 'M7 20v-4' }],\n ['path', { d: 'M12 20v-8' }],\n];\n\nexport default SignalMedium;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signal-zero\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/signal-zero\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SignalZero: IconNode = [['path', { d: 'M2 20h.01' }]];\n\nexport default SignalZero;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMjB2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDIwdi04IiAvPgogIDxwYXRoIGQ9Ik0xNyAyMFY4IiAvPgogIDxwYXRoIGQ9Ik0yMiA0djE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/signal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Signal: IconNode = [\n ['path', { d: 'M2 20h.01' }],\n ['path', { d: 'M7 20v-4' }],\n ['path', { d: 'M12 20v-8' }],\n ['path', { d: 'M17 20V8' }],\n ['path', { d: 'M22 4v16' }],\n];\n\nexport default Signal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signature\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCIgLz4KICA8cGF0aCBkPSJNMyAyMWgxOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/signature\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Signature: IconNode = [\n [\n 'path',\n {\n d: 'm21 17-2.156-1.868A.5.5 0 0 0 18 15.5v.5a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1c0-2.545-3.991-3.97-8.5-4a1 1 0 0 0 0 5c4.153 0 4.745-11.295 5.708-13.5a2.5 2.5 0 1 1 3.31 3.284',\n },\n ],\n ['path', { d: 'M3 21h18' }],\n];\n\nexport default Signature;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signpost-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOUg0TDIgN2wyLTJoNiIgLz4KICA8cGF0aCBkPSJNMTQgNWg2bDIgMi0yIDJoLTYiIC8+CiAgPHBhdGggZD0iTTEwIDIyVjRhMiAyIDAgMSAxIDQgMHYxOCIgLz4KICA8cGF0aCBkPSJNOCAyMmg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/signpost-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SignpostBig: IconNode = [\n ['path', { d: 'M10 9H4L2 7l2-2h6' }],\n ['path', { d: 'M14 5h6l2 2-2 2h-6' }],\n ['path', { d: 'M10 22V4a2 2 0 1 1 4 0v18' }],\n ['path', { d: 'M8 22h8' }],\n];\n\nexport default SignpostBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signpost\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2OCIgLz4KICA8cGF0aCBkPSJNMTIgM3YzIiAvPgogIDxwYXRoIGQ9Ik0xOCA2YTIgMiAwIDAgMSAxLjM4Ny41NmwyLjMwNyAyLjIyYTEgMSAwIDAgMSAwIDEuNDRsLTIuMzA3IDIuMjJBMiAyIDAgMCAxIDE4IDEzSDZhMiAyIDAgMCAxLTEuMzg3LS41NmwtMi4zMDYtMi4yMmExIDEgMCAwIDEgMC0xLjQ0bDIuMzA2LTIuMjJBMiAyIDAgMCAxIDYgNnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/signpost\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Signpost: IconNode = [\n ['path', { d: 'M12 13v8' }],\n ['path', { d: 'M12 3v3' }],\n [\n 'path',\n {\n d: 'M18 6a2 2 0 0 1 1.387.56l2.307 2.22a1 1 0 0 1 0 1.44l-2.307 2.22A2 2 0 0 1 18 13H6a2 2 0 0 1-1.387-.56l-2.306-2.22a1 1 0 0 1 0-1.44l2.306-2.22A2 2 0 0 1 6 6z',\n },\n ],\n];\n\nexport default Signpost;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name siren\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxOHYtNmE1IDUgMCAxIDEgMTAgMHY2IiAvPgogIDxwYXRoIGQ9Ik01IDIxYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnoiIC8+CiAgPHBhdGggZD0iTTIxIDEyaDEiIC8+CiAgPHBhdGggZD0iTTE4LjUgNC41IDE4IDUiIC8+CiAgPHBhdGggZD0iTTIgMTJoMSIgLz4KICA8cGF0aCBkPSJNMTIgMnYxIiAvPgogIDxwYXRoIGQ9Im00LjkyOSA0LjkyOS43MDcuNzA3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/siren\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Siren: IconNode = [\n ['path', { d: 'M7 18v-6a5 5 0 1 1 10 0v6' }],\n ['path', { d: 'M5 21a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2z' }],\n ['path', { d: 'M21 12h1' }],\n ['path', { d: 'M18.5 4.5 18 5' }],\n ['path', { d: 'M2 12h1' }],\n ['path', { d: 'M12 2v1' }],\n ['path', { d: 'm4.929 4.929.707.707' }],\n ['path', { d: 'M12 12v6' }],\n];\n\nexport default Siren;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name skip-back\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuOTcxIDQuMjg1QTIgMiAwIDAgMSAyMSA2djEyYTIgMiAwIDAgMS0zLjAyOSAxLjcxNWwtOS45OTctNS45OThhMiAyIDAgMCAxLS4wMDMtMy40MzJ6IiAvPgogIDxwYXRoIGQ9Ik0zIDIwVjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/skip-back\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SkipBack: IconNode = [\n [\n 'path',\n {\n d: 'M17.971 4.285A2 2 0 0 1 21 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z',\n },\n ],\n ['path', { d: 'M3 20V4' }],\n];\n\nexport default SkipBack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name skip-forward\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNHYxNiIgLz4KICA8cGF0aCBkPSJNNi4wMjkgNC4yODVBMiAyIDAgMCAwIDMgNnYxMmEyIDIgMCAwIDAgMy4wMjkgMS43MTVsOS45OTctNS45OThhMiAyIDAgMCAwIC4wMDMtMy40MzJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/skip-forward\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SkipForward: IconNode = [\n ['path', { d: 'M21 4v16' }],\n [\n 'path',\n { d: 'M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z' },\n ],\n];\n\nexport default SkipForward;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name skull\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIuNSAxNy0uNS0xLS41IDFoMXoiIC8+CiAgPHBhdGggZD0iTTE1IDIyYTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwIDEuNTYtMy4yNSA4IDggMCAxIDAtMTEuMTIgMEEyIDIgMCAwIDAgOCAyMHYxYTEgMSAwIDAgMCAxIDF6IiAvPgogIDxjaXJjbGUgY3g9IjE1IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/skull\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Skull: IconNode = [\n ['path', { d: 'm12.5 17-.5-1-.5 1h1z' }],\n [\n 'path',\n {\n d: 'M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z',\n },\n ],\n ['circle', { cx: '15', cy: '12', r: '1' }],\n ['circle', { cx: '9', cy: '12', r: '1' }],\n];\n\nexport default Skull;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name slack\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSI4IiB4PSIxMyIgeT0iMiIgcng9IjEuNSIgLz4KICA8cGF0aCBkPSJNMTkgOC41VjEwaDEuNUExLjUgMS41IDAgMSAwIDE5IDguNSIgLz4KICA8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSI4IiB4PSI4IiB5PSIxNCIgcng9IjEuNSIgLz4KICA8cGF0aCBkPSJNNSAxNS41VjE0SDMuNUExLjUgMS41IDAgMSAwIDUgMTUuNSIgLz4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSIzIiB4PSIxNCIgeT0iMTMiIHJ4PSIxLjUiIC8+CiAgPHBhdGggZD0iTTE1LjUgMTlIMTR2MS41YTEuNSAxLjUgMCAxIDAgMS41LTEuNSIgLz4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSIzIiB4PSIyIiB5PSI4IiByeD0iMS41IiAvPgogIDxwYXRoIGQ9Ik04LjUgNUgxMFYzLjVBMS41IDEuNSAwIDEgMCA4LjUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/slack\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=slack instead. This icon will be removed in v1.0\n */\nconst Slack: IconNode = [\n ['rect', { width: '3', height: '8', x: '13', y: '2', rx: '1.5' }],\n ['path', { d: 'M19 8.5V10h1.5A1.5 1.5 0 1 0 19 8.5' }],\n ['rect', { width: '3', height: '8', x: '8', y: '14', rx: '1.5' }],\n ['path', { d: 'M5 15.5V14H3.5A1.5 1.5 0 1 0 5 15.5' }],\n ['rect', { width: '8', height: '3', x: '14', y: '13', rx: '1.5' }],\n ['path', { d: 'M15.5 19H14v1.5a1.5 1.5 0 1 0 1.5-1.5' }],\n ['rect', { width: '8', height: '3', x: '2', y: '8', rx: '1.5' }],\n ['path', { d: 'M8.5 5H10V3.5A1.5 1.5 0 1 0 8.5 5' }],\n];\n\nexport default Slack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMiAyIDIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Slash: IconNode = [['path', { d: 'M22 2 2 22' }]];\n\nexport default Slash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name slice\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTYuNTg2VjE5YTEgMSAwIDAgMS0xIDFIMkwxOC4zNyAzLjYzYTEgMSAwIDEgMSAzIDNsLTkuNjYzIDkuNjYzYTEgMSAwIDAgMS0xLjQxNCAwTDggMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/slice\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Slice: IconNode = [\n [\n 'path',\n {\n d: 'M11 16.586V19a1 1 0 0 1-1 1H2L18.37 3.63a1 1 0 1 1 3 3l-9.663 9.663a1 1 0 0 1-1.414 0L8 14',\n },\n ],\n];\n\nexport default Slice;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sliders-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0xNCAzdjQiIC8+CiAgPHBhdGggZD0iTTE2IDE3djQiIC8+CiAgPHBhdGggZD0iTTIxIDEyaC05IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOWgtNSIgLz4KICA8cGF0aCBkPSJNMjEgNWgtNyIgLz4KICA8cGF0aCBkPSJNOCAxMHY0IiAvPgogIDxwYXRoIGQ9Ik04IDEySDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sliders-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SlidersHorizontal: IconNode = [\n ['path', { d: 'M10 5H3' }],\n ['path', { d: 'M12 19H3' }],\n ['path', { d: 'M14 3v4' }],\n ['path', { d: 'M16 17v4' }],\n ['path', { d: 'M21 12h-9' }],\n ['path', { d: 'M21 19h-5' }],\n ['path', { d: 'M21 5h-7' }],\n ['path', { d: 'M8 10v4' }],\n ['path', { d: 'M8 12H3' }],\n];\n\nexport default SlidersHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sliders-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOGg0IiAvPgogIDxwYXRoIGQ9Ik0xMiAyMXYtOSIgLz4KICA8cGF0aCBkPSJNMTIgOFYzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNmg0IiAvPgogIDxwYXRoIGQ9Ik0xOSAxMlYzIiAvPgogIDxwYXRoIGQ9Ik0xOSAyMXYtNSIgLz4KICA8cGF0aCBkPSJNMyAxNGg0IiAvPgogIDxwYXRoIGQ9Ik01IDEwVjMiIC8+CiAgPHBhdGggZD0iTTUgMjF2LTciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sliders-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SlidersVertical: IconNode = [\n ['path', { d: 'M10 8h4' }],\n ['path', { d: 'M12 21v-9' }],\n ['path', { d: 'M12 8V3' }],\n ['path', { d: 'M17 16h4' }],\n ['path', { d: 'M19 12V3' }],\n ['path', { d: 'M19 21v-5' }],\n ['path', { d: 'M3 14h4' }],\n ['path', { d: 'M5 10V3' }],\n ['path', { d: 'M5 21v-7' }],\n];\n\nexport default SlidersVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smartphone-charging\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHg9IjUiIHk9IjIiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTIuNjY3IDggMTAgMTJoNGwtMi42NjcgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/smartphone-charging\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SmartphoneCharging: IconNode = [\n ['rect', { width: '14', height: '20', x: '5', y: '2', rx: '2', ry: '2' }],\n ['path', { d: 'M12.667 8 10 12h4l-2.667 4' }],\n];\n\nexport default SmartphoneCharging;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smartphone-nfc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxMiIgeD0iMiIgeT0iNiIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTEzIDguMzJhNy40MyA3LjQzIDAgMCAxIDAgNy4zNiIgLz4KICA8cGF0aCBkPSJNMTYuNDYgNi4yMWExMS43NiAxMS43NiAwIDAgMSAwIDExLjU4IiAvPgogIDxwYXRoIGQ9Ik0xOS45MSA0LjFhMTUuOTEgMTUuOTEgMCAwIDEgLjAxIDE1LjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/smartphone-nfc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SmartphoneNfc: IconNode = [\n ['rect', { width: '7', height: '12', x: '2', y: '6', rx: '1' }],\n ['path', { d: 'M13 8.32a7.43 7.43 0 0 1 0 7.36' }],\n ['path', { d: 'M16.46 6.21a11.76 11.76 0 0 1 0 11.58' }],\n ['path', { d: 'M19.91 4.1a15.91 15.91 0 0 1 .01 15.8' }],\n];\n\nexport default SmartphoneNfc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smartphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHg9IjUiIHk9IjIiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTIgMThoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smartphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Smartphone: IconNode = [\n ['rect', { width: '14', height: '20', x: '5', y: '2', rx: '2', ry: '2' }],\n ['path', { d: 'M12 18h.01' }],\n];\n\nexport default Smartphone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smile-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTF2MWExMCAxMCAwIDEgMS05LTEwIiAvPgogIDxwYXRoIGQ9Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIiAvPgogIDxsaW5lIHgxPSI5IiB4Mj0iOS4wMSIgeTE9IjkiIHkyPSI5IiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjE1LjAxIiB5MT0iOSIgeTI9IjkiIC8+CiAgPHBhdGggZD0iTTE2IDVoNiIgLz4KICA8cGF0aCBkPSJNMTkgMnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smile-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SmilePlus: IconNode = [\n ['path', { d: 'M22 11v1a10 10 0 1 1-9-10' }],\n ['path', { d: 'M8 14s1.5 2 4 2 4-2 4-2' }],\n ['line', { x1: '9', x2: '9.01', y1: '9', y2: '9' }],\n ['line', { x1: '15', x2: '15.01', y1: '9', y2: '9' }],\n ['path', { d: 'M16 5h6' }],\n ['path', { d: 'M19 2v6' }],\n];\n\nexport default SmilePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smile\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjkuMDEiIHkxPSI5IiB5Mj0iOSIgLz4KICA8bGluZSB4MT0iMTUiIHgyPSIxNS4wMSIgeTE9IjkiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smile\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Smile: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M8 14s1.5 2 4 2 4-2 4-2' }],\n ['line', { x1: '9', x2: '9.01', y1: '9', y2: '9' }],\n ['line', { x1: '15', x2: '15.01', y1: '9', y2: '9' }],\n];\n\nexport default Smile;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name snail\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxM2E2IDYgMCAxIDAgMTIgMCA0IDQgMCAxIDAtOCAwIDIgMiAwIDAgMCA0IDAiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSIxMyIgcj0iOCIgLz4KICA8cGF0aCBkPSJNMiAyMWgxMmM0LjQgMCA4LTMuNiA4LThWN2EyIDIgMCAxIDAtNCAwdjYiIC8+CiAgPHBhdGggZD0iTTE4IDMgMTkuMSA1LjIiIC8+CiAgPHBhdGggZD0iTTIyIDMgMjAuOSA1LjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/snail\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Snail: IconNode = [\n ['path', { d: 'M2 13a6 6 0 1 0 12 0 4 4 0 1 0-8 0 2 2 0 0 0 4 0' }],\n ['circle', { cx: '10', cy: '13', r: '8' }],\n ['path', { d: 'M2 21h12c4.4 0 8-3.6 8-8V7a2 2 0 1 0-4 0v6' }],\n ['path', { d: 'M18 3 19.1 5.2' }],\n ['path', { d: 'M22 3 20.9 5.2' }],\n];\n\nexport default Snail;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name soap-dispenser-droplet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSAydjQiIC8+CiAgPHBhdGggZD0iTTE0IDJIN2EyIDIgMCAwIDAtMiAyIiAvPgogIDxwYXRoIGQ9Ik0xOS4yOSAxNC43NkE2LjY3IDYuNjcgMCAwIDEgMTcgMTFhNi42IDYuNiAwIDAgMS0yLjI5IDMuNzZjLTEuMTUuOTItMS43MSAyLjA0LTEuNzEgMy4xOSAwIDIuMjIgMS44IDQuMDUgNCA0LjA1czQtMS44MyA0LTQuMDVjMC0xLjE2LS41Ny0yLjI2LTEuNzEtMy4xOSIgLz4KICA8cGF0aCBkPSJNOS42MDcgMjFINmEyIDIgMCAwIDEtMi0ydi03YTIgMiAwIDAgMSAyLTJoN1Y3YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/soap-dispenser-droplet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SoapDispenserDroplet: IconNode = [\n ['path', { d: 'M10.5 2v4' }],\n ['path', { d: 'M14 2H7a2 2 0 0 0-2 2' }],\n [\n 'path',\n {\n d: 'M19.29 14.76A6.67 6.67 0 0 1 17 11a6.6 6.6 0 0 1-2.29 3.76c-1.15.92-1.71 2.04-1.71 3.19 0 2.22 1.8 4.05 4 4.05s4-1.83 4-4.05c0-1.16-.57-2.26-1.71-3.19',\n },\n ],\n ['path', { d: 'M9.607 21H6a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h7V7a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3' }],\n];\n\nexport default SoapDispenserDroplet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name snowflake\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMjAtMS4yNS0yLjVMNiAxOCIgLz4KICA8cGF0aCBkPSJNMTAgNCA4Ljc1IDYuNSA2IDYiIC8+CiAgPHBhdGggZD0ibTE0IDIwIDEuMjUtMi41TDE4IDE4IiAvPgogIDxwYXRoIGQ9Im0xNCA0IDEuMjUgMi41TDE4IDYiIC8+CiAgPHBhdGggZD0ibTE3IDIxLTMtNmgtNCIgLz4KICA8cGF0aCBkPSJtMTcgMy0zIDYgMS41IDMiIC8+CiAgPHBhdGggZD0iTTIgMTJoNi41TDEwIDkiIC8+CiAgPHBhdGggZD0ibTIwIDEwLTEuNSAyIDEuNSAyIiAvPgogIDxwYXRoIGQ9Ik0yMiAxMmgtNi41TDE0IDE1IiAvPgogIDxwYXRoIGQ9Im00IDEwIDEuNSAyTDQgMTQiIC8+CiAgPHBhdGggZD0ibTcgMjEgMy02LTEuNS0zIiAvPgogIDxwYXRoIGQ9Im03IDMgMyA2aDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/snowflake\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Snowflake: IconNode = [\n ['path', { d: 'm10 20-1.25-2.5L6 18' }],\n ['path', { d: 'M10 4 8.75 6.5 6 6' }],\n ['path', { d: 'm14 20 1.25-2.5L18 18' }],\n ['path', { d: 'm14 4 1.25 2.5L18 6' }],\n ['path', { d: 'm17 21-3-6h-4' }],\n ['path', { d: 'm17 3-3 6 1.5 3' }],\n ['path', { d: 'M2 12h6.5L10 9' }],\n ['path', { d: 'm20 10-1.5 2 1.5 2' }],\n ['path', { d: 'M22 12h-6.5L14 15' }],\n ['path', { d: 'm4 10 1.5 2L4 14' }],\n ['path', { d: 'm7 21 3-6-1.5-3' }],\n ['path', { d: 'm7 3 3 6h4' }],\n];\n\nexport default Snowflake;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sofa\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgOVY2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjMiIC8+CiAgPHBhdGggZD0iTTIgMTZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiIgLz4KICA8cGF0aCBkPSJNNCAxOHYyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxOHYyIiAvPgogIDxwYXRoIGQ9Ik0xMiA0djkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sofa\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sofa: IconNode = [\n ['path', { d: 'M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3' }],\n [\n 'path',\n {\n d: 'M2 16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z',\n },\n ],\n ['path', { d: 'M4 18v2' }],\n ['path', { d: 'M20 18v2' }],\n ['path', { d: 'M12 4v9' }],\n];\n\nexport default Sofa;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name solar-panel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMmgyIiAvPgogIDxwYXRoIGQ9Im0xNC4yOCAxNC00LjU2IDgiIC8+CiAgPHBhdGggZD0ibTIxIDIyLTEuNTU4LTRINC41NTgiIC8+CiAgPHBhdGggZD0iTTMgMTB2MiIgLz4KICA8cGF0aCBkPSJNNi4yNDUgMTUuMDRBMiAyIDAgMCAxIDggMTRoMTJhMSAxIDAgMCAxIC44NjQgMS41MDVsLTMuMTEgNS40NTdBMiAyIDAgMCAxIDE2IDIySDRhMSAxIDAgMCAxLS44NjMtMS41MDZ6IiAvPgogIDxwYXRoIGQ9Ik03IDJhNCA0IDAgMCAxLTQgNCIgLz4KICA8cGF0aCBkPSJtOC42NiA3LjY2IDEuNDEgMS40MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/solar-panel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SolarPanel: IconNode = [\n ['path', { d: 'M11 2h2' }],\n ['path', { d: 'm14.28 14-4.56 8' }],\n ['path', { d: 'm21 22-1.558-4H4.558' }],\n ['path', { d: 'M3 10v2' }],\n [\n 'path',\n {\n d: 'M6.245 15.04A2 2 0 0 1 8 14h12a1 1 0 0 1 .864 1.505l-3.11 5.457A2 2 0 0 1 16 22H4a1 1 0 0 1-.863-1.506z',\n },\n ],\n ['path', { d: 'M7 2a4 4 0 0 1-4 4' }],\n ['path', { d: 'm8.66 7.66 1.41 1.41' }],\n];\n\nexport default SolarPanel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name soup\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIiAvPgogIDxwYXRoIGQ9Ik03IDIxaDEwIiAvPgogIDxwYXRoIGQ9Ik0xOS41IDEyIDIyIDYiIC8+CiAgPHBhdGggZD0iTTE2LjI1IDNjLjI3LjEuOC41My43NSAxLjM2LS4wNi44My0uOTMgMS4yLTEgMi4wMi0uMDUuNzguMzQgMS4yNC43MyAxLjYyIiAvPgogIDxwYXRoIGQ9Ik0xMS4yNSAzYy4yNy4xLjguNTMuNzQgMS4zNi0uMDUuODMtLjkzIDEuMi0uOTggMi4wMi0uMDYuNzguMzMgMS4yNC43MiAxLjYyIiAvPgogIDxwYXRoIGQ9Ik02LjI1IDNjLjI3LjEuOC41My43NSAxLjM2LS4wNi44My0uOTMgMS4yLTEgMi4wMi0uMDUuNzguMzQgMS4yNC43NCAxLjYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/soup\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Soup: IconNode = [\n ['path', { d: 'M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z' }],\n ['path', { d: 'M7 21h10' }],\n ['path', { d: 'M19.5 12 22 6' }],\n ['path', { d: 'M16.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.73 1.62' }],\n ['path', { d: 'M11.25 3c.27.1.8.53.74 1.36-.05.83-.93 1.2-.98 2.02-.06.78.33 1.24.72 1.62' }],\n ['path', { d: 'M6.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.74 1.62' }],\n];\n\nexport default Soup;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name space\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTd2MWMwIC41LS41IDEtMSAxSDNjLS41IDAtMS0uNS0xLTF2LTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/space\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Space: IconNode = [['path', { d: 'M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1' }]];\n\nexport default Space;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spade\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTh2NCIgLz4KICA8cGF0aCBkPSJNMiAxNC40OTlhNS41IDUuNSAwIDAgMCA5LjU5MSAzLjY3NS42LjYgMCAwIDEgLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyMiAxNC41YzAtMi4yOS0xLjUtNC0zLTUuNWwtNS40OTItNS4zMTJhMiAyIDAgMCAwLTMtLjAyTDUgOC45OTljLTEuNSAxLjUtMyAzLjItMyA1LjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/spade\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Spade: IconNode = [\n ['path', { d: 'M12 18v4' }],\n [\n 'path',\n {\n d: 'M2 14.499a5.5 5.5 0 0 0 9.591 3.675.6.6 0 0 1 .818.001A5.5 5.5 0 0 0 22 14.5c0-2.29-1.5-4-3-5.5l-5.492-5.312a2 2 0 0 0-3-.02L5 8.999c-1.5 1.5-3 3.2-3 5.5',\n },\n ],\n];\n\nexport default Spade;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sparkle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sparkle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sparkle: IconNode = [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n },\n ],\n];\n\nexport default Sparkle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sparkles\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6IiAvPgogIDxwYXRoIGQ9Ik0yMCAydjQiIC8+CiAgPHBhdGggZD0iTTIyIDRoLTQiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjIwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sparkles\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sparkles: IconNode = [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n },\n ],\n ['path', { d: 'M20 2v4' }],\n ['path', { d: 'M22 4h-4' }],\n ['circle', { cx: '4', cy: '20', r: '2' }],\n];\n\nexport default Sparkles;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name speaker\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHg9IjQiIHk9IjIiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiA2aC4wMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE0IiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNGguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/speaker\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Speaker: IconNode = [\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2' }],\n ['path', { d: 'M12 6h.01' }],\n ['circle', { cx: '12', cy: '14', r: '4' }],\n ['path', { d: 'M12 14h.01' }],\n];\n\nexport default Speaker;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name speech\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOC44IDIwdi00LjFsMS45LjJhMi4zIDIuMyAwIDAgMCAyLjE2NC0yLjFWOC4zQTUuMzcgNS4zNyAwIDAgMCAyIDguMjVjMCAyLjguNjU2IDMuMDU0IDEgNC41NWE1Ljc3IDUuNzcgMCAwIDEgLjAyOSAyLjc1OEwyIDIwIiAvPgogIDxwYXRoIGQ9Ik0xOS44IDE3LjhhNy41IDcuNSAwIDAgMCAuMDAzLTEwLjYwMyIgLz4KICA8cGF0aCBkPSJNMTcgMTVhMy41IDMuNSAwIDAgMC0uMDI1LTQuOTc1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/speech\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Speech: IconNode = [\n [\n 'path',\n {\n d: 'M8.8 20v-4.1l1.9.2a2.3 2.3 0 0 0 2.164-2.1V8.3A5.37 5.37 0 0 0 2 8.25c0 2.8.656 3.054 1 4.55a5.77 5.77 0 0 1 .029 2.758L2 20',\n },\n ],\n ['path', { d: 'M19.8 17.8a7.5 7.5 0 0 0 .003-10.603' }],\n ['path', { d: 'M17 15a3.5 3.5 0 0 0-.025-4.975' }],\n];\n\nexport default Speech;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spell-check-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNiA2LTEyIDYgMTIiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KICA8cGF0aCBkPSJNNCAyMWMxLjEgMCAxLjEtMSAyLjMtMXMxLjEgMSAyLjMgMWMxLjEgMCAxLjEtMSAyLjMtMSAxLjEgMCAxLjEgMSAyLjMgMSAxLjEgMCAxLjEtMSAyLjMtMSAxLjEgMCAxLjEgMSAyLjMgMSAxLjEgMCAxLjEtMSAyLjMtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/spell-check-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SpellCheck2: IconNode = [\n ['path', { d: 'm6 16 6-12 6 12' }],\n ['path', { d: 'M8 12h8' }],\n [\n 'path',\n {\n d: 'M4 21c1.1 0 1.1-1 2.3-1s1.1 1 2.3 1c1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1',\n },\n ],\n];\n\nexport default SpellCheck2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spell-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNiA2LTEyIDYgMTIiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KICA8cGF0aCBkPSJtMTYgMjAgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/spell-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SpellCheck: IconNode = [\n ['path', { d: 'm6 16 6-12 6 12' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'm16 20 2 2 4-4' }],\n];\n\nexport default SpellCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spline-pointer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oiIC8+CiAgPHBhdGggZD0iTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjUiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE5IiByPSIyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/spline-pointer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SplinePointer: IconNode = [\n [\n 'path',\n {\n d: 'M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z',\n },\n ],\n ['path', { d: 'M5 17A12 12 0 0 1 17 5' }],\n ['circle', { cx: '19', cy: '5', r: '2' }],\n ['circle', { cx: '5', cy: '19', r: '2' }],\n];\n\nexport default SplinePointer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spline\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjUiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE5IiByPSIyIiAvPgogIDxwYXRoIGQ9Ik01IDE3QTEyIDEyIDAgMCAxIDE3IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/spline\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Spline: IconNode = [\n ['circle', { cx: '19', cy: '5', r: '2' }],\n ['circle', { cx: '5', cy: '19', r: '2' }],\n ['path', { d: 'M5 17A12 12 0 0 1 17 5' }],\n];\n\nexport default Spline;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name split\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2g1djUiIC8+CiAgPHBhdGggZD0iTTggM0gzdjUiIC8+CiAgPHBhdGggZD0iTTEyIDIydi04LjNhNCA0IDAgMCAwLTEuMTcyLTIuODcyTDMgMyIgLz4KICA8cGF0aCBkPSJtMTUgOSA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/split\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Split: IconNode = [\n ['path', { d: 'M16 3h5v5' }],\n ['path', { d: 'M8 3H3v5' }],\n ['path', { d: 'M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3' }],\n ['path', { d: 'm15 9 6-6' }],\n];\n\nexport default Split;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spool\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTMuNDQgNC40NDIgMTcuMDgyQTIgMiAwIDAgMCA0Ljk4MiAyMUgxOWEyIDIgMCAwIDAgLjU1OC0zLjkyMWwtMS4xMTUtLjMyQTIgMiAwIDAgMSAxNyAxNC44MzdWNy42NiIgLz4KICA8cGF0aCBkPSJtNyAxMC41NiAxMi41NTgtMy42NDJBMiAyIDAgMCAwIDE5LjAxOCAzSDVhMiAyIDAgMCAwLS41NTggMy45MjFsMS4xMTUuMzJBMiAyIDAgMCAxIDcgOS4xNjN2Ny4xNzgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/spool\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Spool: IconNode = [\n [\n 'path',\n {\n d: 'M17 13.44 4.442 17.082A2 2 0 0 0 4.982 21H19a2 2 0 0 0 .558-3.921l-1.115-.32A2 2 0 0 1 17 14.837V7.66',\n },\n ],\n [\n 'path',\n {\n d: 'm7 10.56 12.558-3.642A2 2 0 0 0 19.018 3H5a2 2 0 0 0-.558 3.921l1.115.32A2 2 0 0 1 7 9.163v7.178',\n },\n ],\n];\n\nexport default Spool;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spotlight\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMjk1IDE5LjU2MiAxNiAyMiIgLz4KICA8cGF0aCBkPSJtMTcgMTYgMy43NTggMi4wOTgiIC8+CiAgPHBhdGggZD0ibTE5IDEyLjUgMy4wMjYtLjU5OCIgLz4KICA8cGF0aCBkPSJNNy42MSA2LjNhMyAzIDAgMCAwLTMuOTIgMS4zbC0xLjM4IDIuNzlhMyAzIDAgMCAwIDEuMyAzLjkxbDYuODkgMy41OTdhMSAxIDAgMCAwIDEuMzQyLS40NDdsMy4xMDYtNi4yMTFhMSAxIDAgMCAwLS40NDctMS4zNDF6IiAvPgogIDxwYXRoIGQ9Ik04IDlWMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/spotlight\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Spotlight: IconNode = [\n ['path', { d: 'M15.295 19.562 16 22' }],\n ['path', { d: 'm17 16 3.758 2.098' }],\n ['path', { d: 'm19 12.5 3.026-.598' }],\n [\n 'path',\n {\n d: 'M7.61 6.3a3 3 0 0 0-3.92 1.3l-1.38 2.79a3 3 0 0 0 1.3 3.91l6.89 3.597a1 1 0 0 0 1.342-.447l3.106-6.211a1 1 0 0 0-.447-1.341z',\n },\n ],\n ['path', { d: 'M8 9V2' }],\n];\n\nexport default Spotlight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spray-can\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzaC4wMSIgLz4KICA8cGF0aCBkPSJNNyA1aC4wMSIgLz4KICA8cGF0aCBkPSJNMTEgN2guMDEiIC8+CiAgPHBhdGggZD0iTTMgN2guMDEiIC8+CiAgPHBhdGggZD0iTTcgOWguMDEiIC8+CiAgPHBhdGggZD0iTTMgMTFoLjAxIiAvPgogIDxyZWN0IHdpZHRoPSI0IiBoZWlnaHQ9IjQiIHg9IjE1IiB5PSI1IiAvPgogIDxwYXRoIGQ9Im0xOSA5IDIgMnYxMGMwIC42LS40IDEtMSAxaC02Yy0uNiAwLTEtLjQtMS0xVjExbDItMiIgLz4KICA8cGF0aCBkPSJtMTMgMTQgOC0yIiAvPgogIDxwYXRoIGQ9Im0xMyAxOSA4LTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/spray-can\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SprayCan: IconNode = [\n ['path', { d: 'M3 3h.01' }],\n ['path', { d: 'M7 5h.01' }],\n ['path', { d: 'M11 7h.01' }],\n ['path', { d: 'M3 7h.01' }],\n ['path', { d: 'M7 9h.01' }],\n ['path', { d: 'M3 11h.01' }],\n ['rect', { width: '4', height: '4', x: '15', y: '5' }],\n ['path', { d: 'm19 9 2 2v10c0 .6-.4 1-1 1h-6c-.6 0-1-.4-1-1V11l2-2' }],\n ['path', { d: 'm13 14 8-2' }],\n ['path', { d: 'm13 19 8-2' }],\n];\n\nexport default SprayCan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sprout\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgOS41MzZWN2E0IDQgMCAwIDEgNC00aDEuNWEuNS41IDAgMCAxIC41LjVWNWE0IDQgMCAwIDEtNCA0IDQgNCAwIDAgMC00IDRjMCAyIDEgMyAxIDVhNSA1IDAgMCAxLTEgMyIgLz4KICA8cGF0aCBkPSJNNCA5YTUgNSAwIDAgMSA4IDQgNSA1IDAgMCAxLTgtNCIgLz4KICA8cGF0aCBkPSJNNSAyMWgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sprout\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sprout: IconNode = [\n [\n 'path',\n {\n d: 'M14 9.536V7a4 4 0 0 1 4-4h1.5a.5.5 0 0 1 .5.5V5a4 4 0 0 1-4 4 4 4 0 0 0-4 4c0 2 1 3 1 5a5 5 0 0 1-1 3',\n },\n ],\n ['path', { d: 'M4 9a5 5 0 0 1 8 4 5 5 0 0 1-8-4' }],\n ['path', { d: 'M5 21h14' }],\n];\n\nexport default Sprout;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xNiA4LTggOCIgLz4KICA8cGF0aCBkPSJNMTYgMTZIOFY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-arrow-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowDownLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm16 8-8 8' }],\n ['path', { d: 'M16 16H8V8' }],\n];\n\nexport default SquareArrowDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-activity\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNyAxMmgtMmwtMiA1LTItMTAtMiA1SDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-activity\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareActivity: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M17 12h-2l-2 5-2-10-2 5H7' }],\n];\n\nexport default SquareActivity;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im04IDggOCA4IiAvPgogIDxwYXRoIGQ9Ik0xNiA4djhIOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-arrow-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowDownRight: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm8 8 8 8' }],\n ['path', { d: 'M16 8v8H8' }],\n];\n\nexport default SquareArrowDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djgiIC8+CiAgPHBhdGggZD0ibTggMTIgNCA0IDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowDown: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M12 8v8' }],\n ['path', { d: 'm8 12 4 4 4-4' }],\n];\n\nexport default SquareArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xMiA4LTQgNCA0IDQiIC8+CiAgPHBhdGggZD0iTTE2IDEySDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-arrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm12 8-4 4 4 4' }],\n ['path', { d: 'M16 12H8' }],\n];\n\nexport default SquareArrowLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-out-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjFoNmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2NiIgLz4KICA8cGF0aCBkPSJtMyAyMSA5LTkiIC8+CiAgPHBhdGggZD0iTTkgMjFIM3YtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-arrow-out-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowOutDownLeft: IconNode = [\n ['path', { d: 'M13 21h6a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v6' }],\n ['path', { d: 'm3 21 9-9' }],\n ['path', { d: 'M9 21H3v-6' }],\n];\n\nexport default SquareArrowOutDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-out-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTYiIC8+CiAgPHBhdGggZD0ibTMgMyA5IDkiIC8+CiAgPHBhdGggZD0iTTMgOVYzaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-arrow-out-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowOutUpLeft: IconNode = [\n ['path', { d: 'M13 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6' }],\n ['path', { d: 'm3 3 9 9' }],\n ['path', { d: 'M3 9V3h6' }],\n];\n\nexport default SquareArrowOutUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-out-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYiIC8+CiAgPHBhdGggZD0ibTIxIDIxLTktOSIgLz4KICA8cGF0aCBkPSJNMjEgMTV2NmgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-arrow-out-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowOutDownRight: IconNode = [\n ['path', { d: 'M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6' }],\n ['path', { d: 'm21 21-9-9' }],\n ['path', { d: 'M21 15v6h-6' }],\n];\n\nexport default SquareArrowOutDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-out-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNiIgLz4KICA8cGF0aCBkPSJtMjEgMy05IDkiIC8+CiAgPHBhdGggZD0iTTE1IDNoNnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-arrow-out-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowOutUpRight: IconNode = [\n ['path', { d: 'M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6' }],\n ['path', { d: 'm21 3-9 9' }],\n ['path', { d: 'M15 3h6v6' }],\n];\n\nexport default SquareArrowOutUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+CiAgPHBhdGggZD0ibTEyIDE2IDQtNC00LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-arrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowRight: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'm12 16 4-4-4-4' }],\n];\n\nexport default SquareArrowRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDE2VjhoOCIgLz4KICA8cGF0aCBkPSJNMTYgMTYgOCA4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-arrow-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowUpLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 16V8h8' }],\n ['path', { d: 'M16 16 8 8' }],\n];\n\nexport default SquareArrowUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDhoOHY4IiAvPgogIDxwYXRoIGQ9Im04IDE2IDgtOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-arrow-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowUpRight: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 8h8v8' }],\n ['path', { d: 'm8 16 8-8' }],\n];\n\nexport default SquareArrowUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xNiAxMi00LTQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNlY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowUp: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm16 12-4-4-4 4' }],\n ['path', { d: 'M12 16V8' }],\n];\n\nexport default SquareArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-asterisk\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djgiIC8+CiAgPHBhdGggZD0ibTguNSAxNCA3LTQiIC8+CiAgPHBhdGggZD0ibTguNSAxMCA3IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-asterisk\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareAsterisk: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M12 8v8' }],\n ['path', { d: 'm8.5 14 7-4' }],\n ['path', { d: 'm8.5 10 7 4' }],\n];\n\nexport default SquareAsterisk;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-bottom-dashed-scissors\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNSIgeTE9IjMiIHgyPSIxOSIgeTI9IjMiIC8+CiAgPGxpbmUgeDE9IjMiIHkxPSI1IiB4Mj0iMyIgeTI9IjE5IiAvPgogIDxsaW5lIHgxPSIyMSIgeTE9IjUiIHgyPSIyMSIgeTI9IjE5IiAvPgogIDxsaW5lIHgxPSI5IiB5MT0iMjEiIHgyPSIxMCIgeTI9IjIxIiAvPgogIDxsaW5lIHgxPSIxNCIgeTE9IjIxIiB4Mj0iMTUiIHkyPSIyMSIgLz4KICA8cGF0aCBkPSJNIDMgNSBBMiAyIDAgMCAxIDUgMyIgLz4KICA8cGF0aCBkPSJNIDE5IDMgQTIgMiAwIDAgMSAyMSA1IiAvPgogIDxwYXRoIGQ9Ik0gNSAyMSBBMiAyIDAgMCAxIDMgMTkiIC8+CiAgPHBhdGggZD0iTSAyMSAxOSBBMiAyIDAgMCAxIDE5IDIxIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjguNSIgcj0iMS41IiAvPgogIDxsaW5lIHgxPSI5LjU2MDY2IiB5MT0iOS41NjA2NiIgeDI9IjEyIiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjE3IiB5MT0iMTciIHgyPSIxNC44MiIgeTI9IjE0LjgyIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjE1LjUiIHI9IjEuNSIgLz4KICA8bGluZSB4MT0iOS41NjA2NiIgeTE9IjE0LjQzOTM0IiB4Mj0iMTciIHkyPSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-bottom-dashed-scissors\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareBottomDashedScissors: IconNode = [\n ['line', { x1: '5', y1: '3', x2: '19', y2: '3' }],\n ['line', { x1: '3', y1: '5', x2: '3', y2: '19' }],\n ['line', { x1: '21', y1: '5', x2: '21', y2: '19' }],\n ['line', { x1: '9', y1: '21', x2: '10', y2: '21' }],\n ['line', { x1: '14', y1: '21', x2: '15', y2: '21' }],\n ['path', { d: 'M 3 5 A2 2 0 0 1 5 3' }],\n ['path', { d: 'M 19 3 A2 2 0 0 1 21 5' }],\n ['path', { d: 'M 5 21 A2 2 0 0 1 3 19' }],\n ['path', { d: 'M 21 19 A2 2 0 0 1 19 21' }],\n ['circle', { cx: '8.5', cy: '8.5', r: '1.5' }],\n ['line', { x1: '9.56066', y1: '9.56066', x2: '12', y2: '12' }],\n ['line', { x1: '17', y1: '17', x2: '14.82', y2: '14.82' }],\n ['circle', { cx: '8.5', cy: '15.5', r: '1.5' }],\n ['line', { x1: '9.56066', y1: '14.43934', x2: '17', y2: '7' }],\n];\n\nexport default SquareBottomDashedScissors;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-chart-gantt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDhoNyIgLz4KICA8cGF0aCBkPSJNOCAxMmg2IiAvPgogIDxwYXRoIGQ9Ik0xMSAxNmg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-chart-gantt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareChartGantt: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 8h7' }],\n ['path', { d: 'M8 12h6' }],\n ['path', { d: 'M11 16h5' }],\n];\n\nexport default SquareChartGantt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-check-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTAuNjU2VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMi4zNDQiIC8+CiAgPHBhdGggZD0ibTkgMTEgMyAzTDIyIDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-check-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareCheckBig: IconNode = [\n ['path', { d: 'M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344' }],\n ['path', { d: 'm9 11 3 3L22 4' }],\n];\n\nexport default SquareCheckBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im05IDEyIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareCheck: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default SquareCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-chevron-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xNiAxMC00IDQtNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-chevron-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareChevronDown: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm16 10-4 4-4-4' }],\n];\n\nexport default SquareChevronDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-chevron-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xNCAxNi00LTQgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-chevron-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareChevronLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm14 16-4-4 4-4' }],\n];\n\nexport default SquareChevronLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-chevron-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xMCA4IDQgNC00IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-chevron-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareChevronRight: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm10 8 4 4-4 4' }],\n];\n\nexport default SquareChevronRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-chevron-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im04IDE0IDQtNCA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-chevron-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareChevronUp: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm8 14 4-4 4 4' }],\n];\n\nexport default SquareChevronUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed-bottom-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOS41IDggMTJsMiAyLjUiIC8+CiAgPHBhdGggZD0iTTE0IDIxaDEiIC8+CiAgPHBhdGggZD0ibTE0IDkuNSAyIDIuNS0yIDIuNSIgLz4KICA8cGF0aCBkPSJNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTkgMjFoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-dashed-bottom-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashedBottomCode: IconNode = [\n ['path', { d: 'M10 9.5 8 12l2 2.5' }],\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'm14 9.5 2 2.5-2 2.5' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2' }],\n ['path', { d: 'M9 21h1' }],\n];\n\nexport default SquareDashedBottomCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgOS0zIDMgMyAzIiAvPgogIDxwYXRoIGQ9Im0xNCAxNSAzLTMtMy0zIiAvPgogIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareCode: IconNode = [\n ['path', { d: 'm10 9-3 3 3 3' }],\n ['path', { d: 'm14 15 3-3-3-3' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default SquareCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed-bottom\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTkgMjFoMSIgLz4KICA8cGF0aCBkPSJNMTQgMjFoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-dashed-bottom\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashedBottom: IconNode = [\n ['path', { d: 'M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2' }],\n ['path', { d: 'M9 21h1' }],\n ['path', { d: 'M14 21h1' }],\n];\n\nexport default SquareDashedBottom;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed-kanban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCA3djciIC8+CiAgPHBhdGggZD0iTTEyIDd2NCIgLz4KICA8cGF0aCBkPSJNMTYgN3Y5IiAvPgogIDxwYXRoIGQ9Ik01IDNhMiAyIDAgMCAwLTIgMiIgLz4KICA8cGF0aCBkPSJNOSAzaDEiIC8+CiAgPHBhdGggZD0iTTE0IDNoMSIgLz4KICA8cGF0aCBkPSJNMTkgM2EyIDIgMCAwIDEgMiAyIiAvPgogIDxwYXRoIGQ9Ik0yMSA5djEiIC8+CiAgPHBhdGggZD0iTTIxIDE0djEiIC8+CiAgPHBhdGggZD0iTTIxIDE5YTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTE0IDIxaDEiIC8+CiAgPHBhdGggZD0iTTkgMjFoMSIgLz4KICA8cGF0aCBkPSJNNSAyMWEyIDIgMCAwIDEtMi0yIiAvPgogIDxwYXRoIGQ9Ik0zIDE0djEiIC8+CiAgPHBhdGggZD0iTTMgOXYxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-dashed-kanban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashedKanban: IconNode = [\n ['path', { d: 'M8 7v7' }],\n ['path', { d: 'M12 7v4' }],\n ['path', { d: 'M16 7v9' }],\n ['path', { d: 'M5 3a2 2 0 0 0-2 2' }],\n ['path', { d: 'M9 3h1' }],\n ['path', { d: 'M14 3h1' }],\n ['path', { d: 'M19 3a2 2 0 0 1 2 2' }],\n ['path', { d: 'M21 9v1' }],\n ['path', { d: 'M21 14v1' }],\n ['path', { d: 'M21 19a2 2 0 0 1-2 2' }],\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'M9 21h1' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2' }],\n ['path', { d: 'M3 14v1' }],\n ['path', { d: 'M3 9v1' }],\n];\n\nexport default SquareDashedKanban;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed-mouse-pointer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oiIC8+CiAgPHBhdGggZD0iTTUgM2EyIDIgMCAwIDAtMiAyIiAvPgogIDxwYXRoIGQ9Ik0xOSAzYTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTUgMjFhMiAyIDAgMCAxLTItMiIgLz4KICA8cGF0aCBkPSJNOSAzaDEiIC8+CiAgPHBhdGggZD0iTTkgMjFoMiIgLz4KICA8cGF0aCBkPSJNMTQgM2gxIiAvPgogIDxwYXRoIGQ9Ik0zIDl2MSIgLz4KICA8cGF0aCBkPSJNMjEgOXYyIiAvPgogIDxwYXRoIGQ9Ik0zIDE0djEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-dashed-mouse-pointer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashedMousePointer: IconNode = [\n [\n 'path',\n {\n d: 'M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z',\n },\n ],\n ['path', { d: 'M5 3a2 2 0 0 0-2 2' }],\n ['path', { d: 'M19 3a2 2 0 0 1 2 2' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2' }],\n ['path', { d: 'M9 3h1' }],\n ['path', { d: 'M9 21h2' }],\n ['path', { d: 'M14 3h1' }],\n ['path', { d: 'M3 9v1' }],\n ['path', { d: 'M21 9v2' }],\n ['path', { d: 'M3 14v1' }],\n];\n\nexport default SquareDashedMousePointer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAzYTIgMiAwIDAgMC0yIDIiIC8+CiAgPHBhdGggZD0iTTE5IDNhMiAyIDAgMCAxIDIgMiIgLz4KICA8cGF0aCBkPSJNMjEgMTlhMiAyIDAgMCAxLTIgMiIgLz4KICA8cGF0aCBkPSJNNSAyMWEyIDIgMCAwIDEtMi0yIiAvPgogIDxwYXRoIGQ9Ik05IDNoMSIgLz4KICA8cGF0aCBkPSJNOSAyMWgxIiAvPgogIDxwYXRoIGQ9Ik0xNCAzaDEiIC8+CiAgPHBhdGggZD0iTTE0IDIxaDEiIC8+CiAgPHBhdGggZD0iTTMgOXYxIiAvPgogIDxwYXRoIGQ9Ik0yMSA5djEiIC8+CiAgPHBhdGggZD0iTTMgMTR2MSIgLz4KICA8cGF0aCBkPSJNMjEgMTR2MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashed: IconNode = [\n ['path', { d: 'M5 3a2 2 0 0 0-2 2' }],\n ['path', { d: 'M19 3a2 2 0 0 1 2 2' }],\n ['path', { d: 'M21 19a2 2 0 0 1-2 2' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2' }],\n ['path', { d: 'M9 3h1' }],\n ['path', { d: 'M9 21h1' }],\n ['path', { d: 'M14 3h1' }],\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'M3 9v1' }],\n ['path', { d: 'M21 9v1' }],\n ['path', { d: 'M3 14v1' }],\n ['path', { d: 'M21 14v1' }],\n];\n\nexport default SquareDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed-top-solid\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMjFoMSIgLz4KICA8cGF0aCBkPSJNMjEgMTR2MSIgLz4KICA8cGF0aCBkPSJNMjEgMTlhMiAyIDAgMCAxLTIgMiIgLz4KICA8cGF0aCBkPSJNMjEgOXYxIiAvPgogIDxwYXRoIGQ9Ik0zIDE0djEiIC8+CiAgPHBhdGggZD0iTTMgNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTMgOXYxIiAvPgogIDxwYXRoIGQ9Ik01IDIxYTIgMiAwIDAgMS0yLTIiIC8+CiAgPHBhdGggZD0iTTkgMjFoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-dashed-top-solid\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashedTopSolid: IconNode = [\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'M21 14v1' }],\n ['path', { d: 'M21 19a2 2 0 0 1-2 2' }],\n ['path', { d: 'M21 9v1' }],\n ['path', { d: 'M3 14v1' }],\n ['path', { d: 'M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2' }],\n ['path', { d: 'M3 9v1' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2' }],\n ['path', { d: 'M9 21h1' }],\n];\n\nexport default SquareDashedTopSolid;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-divide\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjE2IiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjE2IiB5Mj0iMTYiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSI4IiB5Mj0iOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-divide\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDivide: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12' }],\n ['line', { x1: '12', x2: '12', y1: '16', y2: '16' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '8' }],\n];\n\nexport default SquareDivide;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDot: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n];\n\nexport default SquareDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-equal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDEwaDEwIiAvPgogIDxwYXRoIGQ9Ik03IDE0aDEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-equal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareEqual: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 10h10' }],\n ['path', { d: 'M7 14h10' }],\n];\n\nexport default SquareEqual;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-function\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNOSAxN2MyIDAgMi44LTEgMi44LTIuOFYxMGMwLTIgMS0zLjMgMy4yLTMiIC8+CiAgPHBhdGggZD0iTTkgMTEuMmg1LjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-function\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareFunction: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3' }],\n ['path', { d: 'M9 11.2h5.7' }],\n];\n\nexport default SquareFunction;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-kanban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDd2NyIgLz4KICA8cGF0aCBkPSJNMTIgN3Y0IiAvPgogIDxwYXRoIGQ9Ik0xNiA3djkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-kanban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareKanban: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 7v7' }],\n ['path', { d: 'M12 7v4' }],\n ['path', { d: 'M16 7v9' }],\n];\n\nexport default SquareKanban;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-library\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDd2MTAiIC8+CiAgPHBhdGggZD0iTTExIDd2MTAiIC8+CiAgPHBhdGggZD0ibTE1IDcgMiAxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-library\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareLibrary: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 7v10' }],\n ['path', { d: 'M11 7v10' }],\n ['path', { d: 'm15 7 2 10' }],\n];\n\nexport default SquareLibrary;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-m\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAxNlY4LjVhLjUuNSAwIDAgMSAuOS0uM2wyLjcgMy41OTlhLjUuNSAwIDAgMCAuOCAwbDIuNy0zLjZhLjUuNSAwIDAgMSAuOS4zVjE2IiAvPgogIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-m\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareM: IconNode = [\n [\n 'path',\n { d: 'M8 16V8.5a.5.5 0 0 1 .9-.3l2.7 3.599a.5.5 0 0 0 .8 0l2.7-3.6a.5.5 0 0 1 .9.3V16' },\n ],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default SquareM;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-menu\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDhoMTAiIC8+CiAgPHBhdGggZD0iTTcgMTJoMTAiIC8+CiAgPHBhdGggZD0iTTcgMTZoMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-menu\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareMenu: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 8h10' }],\n ['path', { d: 'M7 12h10' }],\n ['path', { d: 'M7 16h10' }],\n];\n\nexport default SquareMenu;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareMinus: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default SquareMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-mouse-pointer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oiIC8+CiAgPHBhdGggZD0iTTIxIDExVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-mouse-pointer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareMousePointer: IconNode = [\n [\n 'path',\n {\n d: 'M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z',\n },\n ],\n ['path', { d: 'M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6' }],\n];\n\nexport default SquareMousePointer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-parking-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy42IDMuNkEyIDIgMCAwIDEgNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLS41OSAxLjQxIiAvPgogIDxwYXRoIGQ9Ik0zIDguN1YxOWEyIDIgMCAwIDAgMiAyaDEwLjMiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMTMgMTNhMyAzIDAgMSAwIDAtNkg5djIiIC8+CiAgPHBhdGggZD0iTTkgMTd2LTIuMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-parking-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareParkingOff: IconNode = [\n ['path', { d: 'M3.6 3.6A2 2 0 0 1 5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-.59 1.41' }],\n ['path', { d: 'M3 8.7V19a2 2 0 0 0 2 2h10.3' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M13 13a3 3 0 1 0 0-6H9v2' }],\n ['path', { d: 'M9 17v-2.3' }],\n];\n\nexport default SquareParkingOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-parking\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDE3VjdoNGEzIDMgMCAwIDEgMCA2SDkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-parking\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareParking: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 17V7h4a3 3 0 0 1 0 6H9' }],\n];\n\nexport default SquareParking;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSIxMCIgeDI9IjEwIiB5MT0iMTUiIHkyPSI5IiAvPgogIDxsaW5lIHgxPSIxNCIgeDI9IjE0IiB5MT0iMTUiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePause: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['line', { x1: '10', x2: '10', y1: '15', y2: '9' }],\n ['line', { x1: '14', x2: '14', y1: '15', y2: '9' }],\n];\n\nexport default SquarePause;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03IiAvPgogIDxwYXRoIGQ9Ik0xOC4zNzUgMi42MjVhMSAxIDAgMCAxIDMgM2wtOS4wMTMgOS4wMTRhMiAyIDAgMCAxLS44NTMuNTA1bC0yLjg3My44NGEuNS41IDAgMCAxLS42Mi0uNjJsLjg0LTIuODczYTIgMiAwIDAgMSAuNTA2LS44NTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePen: IconNode = [\n ['path', { d: 'M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7' }],\n [\n 'path',\n {\n d: 'M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z',\n },\n ],\n];\n\nexport default SquarePen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-pi\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDdoMTAiIC8+CiAgPHBhdGggZD0iTTEwIDd2MTAiIC8+CiAgPHBhdGggZD0iTTE2IDE3YTIgMiAwIDAgMS0yLTJWNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-pi\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePi: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 7h10' }],\n ['path', { d: 'M10 7v10' }],\n ['path', { d: 'M16 17a2 2 0 0 1-2-2V7' }],\n];\n\nexport default SquarePi;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xNSA5LTYgNiIgLz4KICA8cGF0aCBkPSJNOSA5aC4wMSIgLz4KICA8cGF0aCBkPSJNMTUgMTVoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePercent: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'M9 9h.01' }],\n ['path', { d: 'M15 15h.01' }],\n];\n\nexport default SquarePercent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-pilcrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMkg5LjVhMi41IDIuNSAwIDAgMSAwLTVIMTciIC8+CiAgPHBhdGggZD0iTTEyIDd2MTAiIC8+CiAgPHBhdGggZD0iTTE2IDd2MTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-pilcrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePilcrow: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M12 12H9.5a2.5 2.5 0 0 1 0-5H17' }],\n ['path', { d: 'M12 7v10' }],\n ['path', { d: 'M16 7v10' }],\n];\n\nexport default SquarePilcrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDkuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N0ExIDEgMCAwIDEgOSAxNC45OTZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePlay: IconNode = [\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n [\n 'path',\n {\n d: 'M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z',\n },\n ],\n];\n\nexport default SquarePlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+CiAgPHBhdGggZD0iTTEyIDh2OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePlus: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'M12 8v8' }],\n];\n\nexport default SquarePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-power\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y0IiAvPgogIDxwYXRoIGQ9Ik03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1IiAvPgogIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-power\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePower: IconNode = [\n ['path', { d: 'M12 7v4' }],\n ['path', { d: 'M7.998 9.003a5 5 0 1 0 8-.005' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default SquarePower;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-round-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTFhOCA4IDAgMCAwLTgtOCIgLz4KICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-round-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareRoundCorner: IconNode = [\n ['path', { d: 'M21 11a8 8 0 0 0-8-8' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4' }],\n];\n\nexport default SquareRoundCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-radical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxMmgybDIgNSAyLTEwaDQiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-radical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareRadical: IconNode = [\n ['path', { d: 'M7 12h2l2 5 2-10h4' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default SquareRadical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-scissors\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjguNSIgcj0iMS41IiAvPgogIDxsaW5lIHgxPSI5LjU2MDY2IiB5MT0iOS41NjA2NiIgeDI9IjEyIiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjE3IiB5MT0iMTciIHgyPSIxNC44MiIgeTI9IjE0LjgyIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjE1LjUiIHI9IjEuNSIgLz4KICA8bGluZSB4MT0iOS41NjA2NiIgeTE9IjE0LjQzOTM0IiB4Mj0iMTciIHkyPSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-scissors\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareScissors: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['circle', { cx: '8.5', cy: '8.5', r: '1.5' }],\n ['line', { x1: '9.56066', y1: '9.56066', x2: '12', y2: '12' }],\n ['line', { x1: '17', y1: '17', x2: '14.82', y2: '14.82' }],\n ['circle', { cx: '8.5', cy: '15.5', r: '1.5' }],\n ['line', { x1: '9.56066', y1: '14.43934', x2: '17', y2: '7' }],\n];\n\nexport default SquareScissors;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-sigma\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNiA4LjlWN0g4bDQgNS00IDVoOHYtMS45IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-sigma\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareSigma: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M16 8.9V7H8l4 5-4 5h8v-1.9' }],\n];\n\nexport default SquareSigma;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI5IiB4Mj0iMTUiIHkxPSIxNSIgeTI9IjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareSlash: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['line', { x1: '9', x2: '15', y1: '15', y2: '9' }],\n];\n\nexport default SquareSlash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-split-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAxOUg1Yy0xIDAtMi0xLTItMlY3YzAtMSAxLTIgMi0yaDMiIC8+CiAgPHBhdGggZD0iTTE2IDVoM2MxIDAgMiAxIDIgMnYxMGMwIDEtMSAyLTIgMmgtMyIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjQiIHkyPSIyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-split-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareSplitHorizontal: IconNode = [\n ['path', { d: 'M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3' }],\n ['path', { d: 'M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3' }],\n ['line', { x1: '12', x2: '12', y1: '4', y2: '20' }],\n];\n\nexport default SquareSplitHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-split-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA4VjVjMC0xIDEtMiAyLTJoMTBjMSAwIDIgMSAyIDJ2MyIgLz4KICA8cGF0aCBkPSJNMTkgMTZ2M2MwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMnYtMyIgLz4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iMTIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-split-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareSplitVertical: IconNode = [\n ['path', { d: 'M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3' }],\n ['path', { d: 'M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3' }],\n ['line', { x1: '4', x2: '20', y1: '12', y2: '12' }],\n];\n\nexport default SquareSplitVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-stack\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDRjMS4xIDAgMiAuOSAyIDIiIC8+CiAgPHBhdGggZD0iTTEwIDE2Yy0xLjEgMC0yLS45LTItMnYtNGMwLTEuMS45LTIgMi0yaDRjMS4xIDAgMiAuOSAyIDIiIC8+CiAgPHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgeD0iMTQiIHk9IjE0IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-stack\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareStack: IconNode = [\n ['path', { d: 'M4 10c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2' }],\n ['path', { d: 'M10 16c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2' }],\n ['rect', { width: '8', height: '8', x: '14', y: '14', rx: '2' }],\n];\n\nexport default SquareStack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiAvPgogIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareSquare: IconNode = [\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n ['rect', { x: '8', y: '8', width: '8', height: '8', rx: '1' }],\n];\n\nexport default SquareSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDM1IDcuNjlhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareStar: IconNode = [\n [\n 'path',\n {\n d: 'M11.035 7.69a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.866l-1.156-1.153a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z',\n },\n ],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default SquareStar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-stop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-stop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareStop: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['rect', { x: '9', y: '9', width: '6', height: '6', rx: '1' }],\n];\n\nexport default SquareStop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-terminal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxMSAyLTItMi0yIiAvPgogIDxwYXRoIGQ9Ik0xMSAxM2g0IiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgeD0iMyIgeT0iMyIgcng9IjIiIHJ5PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-terminal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareTerminal: IconNode = [\n ['path', { d: 'm7 11 2-2-2-2' }],\n ['path', { d: 'M11 13h4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n];\n\nexport default SquareTerminal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-user-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMjFhNiA2IDAgMCAwLTEyIDAiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMSIgcj0iNCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-user-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareUserRound: IconNode = [\n ['path', { d: 'M18 21a6 6 0 0 0-12 0' }],\n ['circle', { cx: '12', cy: '11', r: '4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n];\n\nexport default SquareUserRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTcgMjF2LTJhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareUser: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'M7 21v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2' }],\n];\n\nexport default SquareUser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0ibTkgOSA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareX: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'm9 9 6 6' }],\n];\n\nexport default SquareX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Square: IconNode = [['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }]];\n\nexport default Square;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squares-exclude\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTJ2MmEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAwLTEgMXYzYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yaDAiIC8+CiAgPHBhdGggZD0iTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMS0xIDFoLTVhMiAyIDAgMCAwLTIgMnYyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/squares-exclude\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquaresExclude: IconNode = [\n [\n 'path',\n {\n d: 'M16 12v2a2 2 0 0 1-2 2H9a1 1 0 0 0-1 1v3a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2h0',\n },\n ],\n [\n 'path',\n {\n d: 'M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 1-1 1h-5a2 2 0 0 0-2 2v2',\n },\n ],\n];\n\nexport default SquaresExclude;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squares-intersect\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjJhMiAyIDAgMCAxLTItMiIgLz4KICA8cGF0aCBkPSJNMTQgMmEyIDIgMCAwIDEgMiAyIiAvPgogIDxwYXRoIGQ9Ik0xNiAyMmgtMiIgLz4KICA8cGF0aCBkPSJNMiAxMFY4IiAvPgogIDxwYXRoIGQ9Ik0yIDRhMiAyIDAgMCAxIDItMiIgLz4KICA8cGF0aCBkPSJNMjAgOGEyIDIgMCAwIDEgMiAyIiAvPgogIDxwYXRoIGQ9Ik0yMiAxNHYyIiAvPgogIDxwYXRoIGQ9Ik0yMiAyMGEyIDIgMCAwIDEtMiAyIiAvPgogIDxwYXRoIGQ9Ik00IDE2YTIgMiAwIDAgMS0yLTIiIC8+CiAgPHBhdGggZD0iTTggMTBhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMSAxIDF2NWEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0iTTggMmgyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/squares-intersect\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquaresIntersect: IconNode = [\n ['path', { d: 'M10 22a2 2 0 0 1-2-2' }],\n ['path', { d: 'M14 2a2 2 0 0 1 2 2' }],\n ['path', { d: 'M16 22h-2' }],\n ['path', { d: 'M2 10V8' }],\n ['path', { d: 'M2 4a2 2 0 0 1 2-2' }],\n ['path', { d: 'M20 8a2 2 0 0 1 2 2' }],\n ['path', { d: 'M22 14v2' }],\n ['path', { d: 'M22 20a2 2 0 0 1-2 2' }],\n ['path', { d: 'M4 16a2 2 0 0 1-2-2' }],\n ['path', { d: 'M8 10a2 2 0 0 1 2-2h5a1 1 0 0 1 1 1v5a2 2 0 0 1-2 2H9a1 1 0 0 1-1-1z' }],\n ['path', { d: 'M8 2h2' }],\n];\n\nexport default SquaresIntersect;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squares-subtract\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjJhMiAyIDAgMCAxLTItMiIgLz4KICA8cGF0aCBkPSJNMTYgMjJoLTIiIC8+CiAgPHBhdGggZD0iTTE2IDRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgzYTEgMSAwIDAgMCAxLTF2LTVhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMCAxLTF6IiAvPgogIDxwYXRoIGQ9Ik0yMCA4YTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTIyIDE0djIiIC8+CiAgPHBhdGggZD0iTTIyIDIwYTIgMiAwIDAgMS0yIDIiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/squares-subtract\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquaresSubtract: IconNode = [\n ['path', { d: 'M10 22a2 2 0 0 1-2-2' }],\n ['path', { d: 'M16 22h-2' }],\n [\n 'path',\n {\n d: 'M16 4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h3a1 1 0 0 0 1-1v-5a2 2 0 0 1 2-2h5a1 1 0 0 0 1-1z',\n },\n ],\n ['path', { d: 'M20 8a2 2 0 0 1 2 2' }],\n ['path', { d: 'M22 14v2' }],\n ['path', { d: 'M22 20a2 2 0 0 1-2 2' }],\n];\n\nexport default SquaresSubtract;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squares-unite\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjNhMSAxIDAgMCAwIDEgMWgzYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkgxMGEyIDIgMCAwIDEtMi0ydi0zYTEgMSAwIDAgMC0xLTF6IiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/squares-unite\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquaresUnite: IconNode = [\n [\n 'path',\n {\n d: 'M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 0 1 1h3a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-3a1 1 0 0 0-1-1z',\n },\n ],\n];\n\nexport default SquaresUnite;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squircle-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNzcgMy4wNDNhMzQgMzQgMCAwIDAtMy41NCAwIiAvPgogIDxwYXRoIGQ9Ik0xMy43NzEgMjAuOTU2YTMzIDMzIDAgMCAxLTMuNTQxLjAwMSIgLz4KICA8cGF0aCBkPSJNMjAuMTggMTcuNzRjLS41MSAxLjE1LTEuMjkgMS45My0yLjQzOSAyLjQ0IiAvPgogIDxwYXRoIGQ9Ik0yMC4xOCA2LjI1OWMtLjUxLTEuMTQ4LTEuMjkxLTEuOTI5LTIuNDQtMi40MzgiIC8+CiAgPHBhdGggZD0iTTIwLjk1NyAxMC4yM2EzMyAzMyAwIDAgMSAwIDMuNTQiIC8+CiAgPHBhdGggZD0iTTMuMDQzIDEwLjIzYTM0IDM0IDAgMCAwIC4wMDEgMy41NDEiIC8+CiAgPHBhdGggZD0iTTYuMjYgMjAuMTc5Yy0xLjE1LS41MDgtMS45My0xLjI5LTIuNDQtMi40MzgiIC8+CiAgPHBhdGggZD0iTTYuMjYgMy44MmMtMS4xNDkuNTEtMS45MyAxLjI5MS0yLjQ0IDIuNDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/squircle-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquircleDashed: IconNode = [\n ['path', { d: 'M13.77 3.043a34 34 0 0 0-3.54 0' }],\n ['path', { d: 'M13.771 20.956a33 33 0 0 1-3.541.001' }],\n ['path', { d: 'M20.18 17.74c-.51 1.15-1.29 1.93-2.439 2.44' }],\n ['path', { d: 'M20.18 6.259c-.51-1.148-1.291-1.929-2.44-2.438' }],\n ['path', { d: 'M20.957 10.23a33 33 0 0 1 0 3.54' }],\n ['path', { d: 'M3.043 10.23a34 34 0 0 0 .001 3.541' }],\n ['path', { d: 'M6.26 20.179c-1.15-.508-1.93-1.29-2.44-2.438' }],\n ['path', { d: 'M6.26 3.82c-1.149.51-1.93 1.291-2.44 2.44' }],\n];\n\nexport default SquircleDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squircle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM2M3LjIgMCA5IDEuOCA5IDlzLTEuOCA5LTkgOS05LTEuOC05LTkgMS44LTkgOS05IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/squircle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Squircle: IconNode = [\n ['path', { d: 'M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9-9-1.8-9-9 1.8-9 9-9' }],\n];\n\nexport default Squircle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squirrel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMjM2IDIyYTMgMyAwIDAgMC0yLjItNSIgLz4KICA8cGF0aCBkPSJNMTYgMjBhMyAzIDAgMCAxIDMtM2gxYTIgMiAwIDAgMCAyLTJ2LTJhNCA0IDAgMCAwLTQtNFY0IiAvPgogIDxwYXRoIGQ9Ik0xOCAxM2guMDEiIC8+CiAgPHBhdGggZD0iTTE4IDZhNCA0IDAgMCAwLTQgNCA3IDcgMCAwIDAtNyA3YzAtNSA0LTUgNC0xMC41YTQuNSA0LjUgMCAxIDAtOSAwIDIuNSAyLjUgMCAwIDAgNSAwQzcgMTAgMyAxMSAzIDE3YzAgMi44IDIuMiA1IDUgNWgxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/squirrel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Squirrel: IconNode = [\n ['path', { d: 'M15.236 22a3 3 0 0 0-2.2-5' }],\n ['path', { d: 'M16 20a3 3 0 0 1 3-3h1a2 2 0 0 0 2-2v-2a4 4 0 0 0-4-4V4' }],\n ['path', { d: 'M18 13h.01' }],\n [\n 'path',\n {\n d: 'M18 6a4 4 0 0 0-4 4 7 7 0 0 0-7 7c0-5 4-5 4-10.5a4.5 4.5 0 1 0-9 0 2.5 2.5 0 0 0 5 0C7 10 3 11 3 17c0 2.8 2.2 5 5 5h10',\n },\n ],\n];\n\nexport default Squirrel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name stamp\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTNWOC41QzE0IDcgMTUgNyAxNSA1YTMgMyAwIDAgMC02IDBjMCAyIDEgMiAxIDMuNVYxMyIgLz4KICA8cGF0aCBkPSJNMjAgMTUuNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTExQTIuNSAyLjUgMCAwIDAgNCAxNS41VjE3YTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMXoiIC8+CiAgPHBhdGggZD0iTTUgMjJoMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/stamp\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Stamp: IconNode = [\n ['path', { d: 'M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-6 0c0 2 1 2 1 3.5V13' }],\n [\n 'path',\n {\n d: 'M20 15.5a2.5 2.5 0 0 0-2.5-2.5h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1z',\n },\n ],\n ['path', { d: 'M5 22h14' }],\n];\n\nexport default Stamp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name star-half\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTguMzM4YTIuMSAyLjEgMCAwIDAtLjk4Ny4yNDRMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyIDIuMTIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWEyLjEyIDIuMTIgMCAwIDAgMS41OTctMS4xNmwyLjMwOS00LjY3OUEuNTMuNTMgMCAwIDEgMTIgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/star-half\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StarHalf: IconNode = [\n [\n 'path',\n {\n d: 'M12 18.338a2.1 2.1 0 0 0-.987.244L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16l2.309-4.679A.53.53 0 0 1 12 2',\n },\n ],\n];\n\nexport default StarHalf;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name star-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuMzQ0IDQuNjg4IDEuMTgxLTIuMzkzYS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIgMi4xMiAwIDAgMCAxLjU5NSAxLjE2bDUuMTY2Ljc1NmEuNTMuNTMgMCAwIDEgLjI5NC45MDRsLTMuMjM3IDMuMTUyIiAvPgogIDxwYXRoIGQ9Im0xNy45NDUgMTcuOTQ1LjQzIDIuNTA1YS41My41MyAwIDAgMS0uNzcxLjU2bC00LjYxOC0yLjQyOGEyLjEyIDIuMTIgMCAwIDAtMS45NzMgMEw2LjM5NiAyMS4wMWEuNTMuNTMgMCAwIDEtLjc3LS41NmwuODgxLTUuMTM5YTIuMTIgMi4xMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTggOCAwIDAgMCAuNC0uMDk5IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/star-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StarOff: IconNode = [\n [\n 'path',\n {\n d: 'm10.344 4.688 1.181-2.393a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.237 3.152',\n },\n ],\n [\n 'path',\n {\n d: 'm17.945 17.945.43 2.505a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a8 8 0 0 0 .4-.099',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default StarOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Star: IconNode = [\n [\n 'path',\n {\n d: 'M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z',\n },\n ],\n];\n\nexport default Star;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name step-back\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuOTcxIDQuMjg1QTIgMiAwIDAgMSAxNyA2djEyYTIgMiAwIDAgMS0zLjAyOSAxLjcxNWwtOS45OTctNS45OThhMiAyIDAgMCAxLS4wMDMtMy40MzJ6IiAvPgogIDxwYXRoIGQ9Ik0yMSAyMFY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/step-back\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StepBack: IconNode = [\n [\n 'path',\n {\n d: 'M13.971 4.285A2 2 0 0 1 17 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z',\n },\n ],\n ['path', { d: 'M21 20V4' }],\n];\n\nexport default StepBack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name step-forward\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMDI5IDQuMjg1QTIgMiAwIDAgMCA3IDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiIgLz4KICA8cGF0aCBkPSJNMyA0djE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/step-forward\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StepForward: IconNode = [\n [\n 'path',\n { d: 'M10.029 4.285A2 2 0 0 0 7 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z' },\n ],\n ['path', { d: 'M3 4v16' }],\n];\n\nexport default StepForward;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name stethoscope\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMnYyIiAvPgogIDxwYXRoIGQ9Ik01IDJ2MiIgLz4KICA8cGF0aCBkPSJNNSAzSDRhMiAyIDAgMCAwLTIgMnY0YTYgNiAwIDAgMCAxMiAwVjVhMiAyIDAgMCAwLTItMmgtMSIgLz4KICA8cGF0aCBkPSJNOCAxNWE2IDYgMCAwIDAgMTIgMHYtMyIgLz4KICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjEwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/stethoscope\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Stethoscope: IconNode = [\n ['path', { d: 'M11 2v2' }],\n ['path', { d: 'M5 2v2' }],\n ['path', { d: 'M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1' }],\n ['path', { d: 'M8 15a6 6 0 0 0 12 0v-3' }],\n ['circle', { cx: '20', cy: '10', r: '2' }],\n];\n\nexport default Stethoscope;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sticker\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTUgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTUgM3Y1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxM2guMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEzaC4wMSIgLz4KICA8cGF0aCBkPSJNMTAgMTZzLjggMSAyIDFjMS4zIDAgMi0xIDItMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sticker\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sticker: IconNode = [\n [\n 'path',\n {\n d: 'M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z',\n },\n ],\n ['path', { d: 'M15 3v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 13h.01' }],\n ['path', { d: 'M16 13h.01' }],\n ['path', { d: 'M10 16s.8 1 2 1c1.3 0 2-1 2-1' }],\n];\n\nexport default Sticker;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sticky-note\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTUgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTUgM3Y1YTEgMSAwIDAgMCAxIDFoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sticky-note\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StickyNote: IconNode = [\n [\n 'path',\n {\n d: 'M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z',\n },\n ],\n ['path', { d: 'M15 3v5a1 1 0 0 0 1 1h5' }],\n];\n\nexport default StickyNote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name stone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMjY0IDIuMjA1QTQgNCAwIDAgMCA2LjQyIDQuMjExbC00IDhhNCA0IDAgMCAwIDEuMzU5IDUuMTE3bDYgNGE0IDQgMCAwIDAgNC40MzggMGw2LTRhNCA0IDAgMCAwIDEuNTc2LTQuNTkybC0yLTZhNCA0IDAgMCAwLTIuNTMtMi41M3oiIC8+CiAgPHBhdGggZD0iTTExLjk5IDIyIDE0IDEybDcuODIyIDMuMTg0IiAvPgogIDxwYXRoIGQ9Ik0xNCAxMiA4LjQ3IDIuMzAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/stone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Stone: IconNode = [\n [\n 'path',\n {\n d: 'M11.264 2.205A4 4 0 0 0 6.42 4.211l-4 8a4 4 0 0 0 1.359 5.117l6 4a4 4 0 0 0 4.438 0l6-4a4 4 0 0 0 1.576-4.592l-2-6a4 4 0 0 0-2.53-2.53z',\n },\n ],\n ['path', { d: 'M11.99 22 14 12l7.822 3.184' }],\n ['path', { d: 'M14 12 8.47 2.302' }],\n];\n\nexport default Stone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name store\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUiIC8+CiAgPHBhdGggZD0iTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCIgLz4KICA8cGF0aCBkPSJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/store\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Store: IconNode = [\n ['path', { d: 'M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5' }],\n [\n 'path',\n {\n d: 'M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244',\n },\n ],\n ['path', { d: 'M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05' }],\n];\n\nexport default Store;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name stretch-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNiIgeD0iMiIgeT0iNCIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjYiIHg9IjIiIHk9IjE0IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/stretch-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StretchHorizontal: IconNode = [\n ['rect', { width: '20', height: '6', x: '2', y: '4', rx: '2' }],\n ['rect', { width: '20', height: '6', x: '2', y: '14', rx: '2' }],\n];\n\nexport default StretchHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name stretch-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgeD0iNCIgeT0iMiIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMjAiIHg9IjE0IiB5PSIyIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/stretch-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StretchVertical: IconNode = [\n ['rect', { width: '6', height: '20', x: '4', y: '2', rx: '2' }],\n ['rect', { width: '6', height: '20', x: '14', y: '2', rx: '2' }],\n];\n\nexport default StretchVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name strikethrough\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNEg5YTMgMyAwIDAgMC0yLjgzIDQiIC8+CiAgPHBhdGggZD0iTTE0IDEyYTQgNCAwIDAgMSAwIDhINiIgLz4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iMTIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/strikethrough\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Strikethrough: IconNode = [\n ['path', { d: 'M16 4H9a3 3 0 0 0-2.83 4' }],\n ['path', { d: 'M14 12a4 4 0 0 1 0 8H6' }],\n ['line', { x1: '4', x2: '20', y1: '12', y2: '12' }],\n];\n\nexport default Strikethrough;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name subscript\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNCA1IDggOCIgLz4KICA8cGF0aCBkPSJtMTIgNS04IDgiIC8+CiAgPHBhdGggZD0iTTIwIDE5aC00YzAtMS41LjQ0LTIgMS41LTIuNVMyMCAxNS4zMyAyMCAxNGMwLS40Ny0uMTctLjkzLS40OC0xLjI5YTIuMTEgMi4xMSAwIDAgMC0yLjYyLS40NGMtLjQyLjI0LS43NC42Mi0uOSAxLjA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/subscript\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Subscript: IconNode = [\n ['path', { d: 'm4 5 8 8' }],\n ['path', { d: 'm12 5-8 8' }],\n [\n 'path',\n {\n d: 'M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07',\n },\n ],\n];\n\nexport default Subscript;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun-dim\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiA0aC4wMSIgLz4KICA8cGF0aCBkPSJNMjAgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTQgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNy42NTcgNi4zNDNoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNy42NTcgMTcuNjU3aC4wMSIgLz4KICA8cGF0aCBkPSJNNi4zNDMgMTcuNjU3aC4wMSIgLz4KICA8cGF0aCBkPSJNNi4zNDMgNi4zNDNoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sun-dim\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SunDim: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M12 4h.01' }],\n ['path', { d: 'M20 12h.01' }],\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M4 12h.01' }],\n ['path', { d: 'M17.657 6.343h.01' }],\n ['path', { d: 'M17.657 17.657h.01' }],\n ['path', { d: 'M6.343 17.657h.01' }],\n ['path', { d: 'M6.343 6.343h.01' }],\n];\n\nexport default SunDim;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun-medium\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjEiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjEiIC8+CiAgPHBhdGggZD0iTTMgMTJoMSIgLz4KICA8cGF0aCBkPSJNMjAgMTJoMSIgLz4KICA8cGF0aCBkPSJtMTguMzY0IDUuNjM2LS43MDcuNzA3IiAvPgogIDxwYXRoIGQ9Im02LjM0MyAxNy42NTctLjcwNy43MDciIC8+CiAgPHBhdGggZD0ibTUuNjM2IDUuNjM2LjcwNy43MDciIC8+CiAgPHBhdGggZD0ibTE3LjY1NyAxNy42NTcuNzA3LjcwNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sun-medium\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SunMedium: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M12 3v1' }],\n ['path', { d: 'M12 20v1' }],\n ['path', { d: 'M3 12h1' }],\n ['path', { d: 'M20 12h1' }],\n ['path', { d: 'm18.364 5.636-.707.707' }],\n ['path', { d: 'm6.343 17.657-.707.707' }],\n ['path', { d: 'm5.636 5.636.707.707' }],\n ['path', { d: 'm17.657 17.657.707.707' }],\n];\n\nexport default SunMedium;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun-moon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNC44MzcgMTYuMzg1YTYgNiAwIDEgMS03LjIyMy03LjIyMmMuNjI0LS4xNDcuOTcuNjYuNzE1IDEuMjQ4YTQgNCAwIDAgMCA1LjI2IDUuMjU5Yy41ODktLjI1NSAxLjM5Ni4wOSAxLjI0OC43MTUiIC8+CiAgPHBhdGggZD0iTTE2IDEyYTQgNCAwIDAgMC00LTQiIC8+CiAgPHBhdGggZD0ibTE5IDUtMS4yNTYgMS4yNTYiIC8+CiAgPHBhdGggZD0iTTIwIDEyaDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sun-moon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SunMoon: IconNode = [\n ['path', { d: 'M12 2v2' }],\n [\n 'path',\n {\n d: 'M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715',\n },\n ],\n ['path', { d: 'M16 12a4 4 0 0 0-4-4' }],\n ['path', { d: 'm19 5-1.256 1.256' }],\n ['path', { d: 'M20 12h2' }],\n];\n\nexport default SunMoon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun-snow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjF2LTEiIC8+CiAgPHBhdGggZD0iTTEwIDRWMyIgLz4KICA8cGF0aCBkPSJNMTAgOWEzIDMgMCAwIDAgMCA2IiAvPgogIDxwYXRoIGQ9Im0xNCAyMCAxLjI1LTIuNUwxOCAxOCIgLz4KICA8cGF0aCBkPSJtMTQgNCAxLjI1IDIuNUwxOCA2IiAvPgogIDxwYXRoIGQ9Im0xNyAyMS0zLTYgMS41LTNIMjIiIC8+CiAgPHBhdGggZD0ibTE3IDMtMyA2IDEuNSAzIiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDEiIC8+CiAgPHBhdGggZD0ibTIwIDEwLTEuNSAyIDEuNSAyIiAvPgogIDxwYXRoIGQ9Im0zLjY0IDE4LjM2LjctLjciIC8+CiAgPHBhdGggZD0ibTQuMzQgNi4zNC0uNy0uNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sun-snow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SunSnow: IconNode = [\n ['path', { d: 'M10 21v-1' }],\n ['path', { d: 'M10 4V3' }],\n ['path', { d: 'M10 9a3 3 0 0 0 0 6' }],\n ['path', { d: 'm14 20 1.25-2.5L18 18' }],\n ['path', { d: 'm14 4 1.25 2.5L18 6' }],\n ['path', { d: 'm17 21-3-6 1.5-3H22' }],\n ['path', { d: 'm17 3-3 6 1.5 3' }],\n ['path', { d: 'M2 12h1' }],\n ['path', { d: 'm20 10-1.5 2 1.5 2' }],\n ['path', { d: 'm3.64 18.36.7-.7' }],\n ['path', { d: 'm4.34 6.34-.7-.7' }],\n];\n\nexport default SunSnow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0ibTQuOTMgNC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0ibTE3LjY2IDE3LjY2IDEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMiAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im02LjM0IDE3LjY2LTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJtMTkuMDcgNC45My0xLjQxIDEuNDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sun\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sun: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41' }],\n ['path', { d: 'm17.66 17.66 1.41 1.41' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'M20 12h2' }],\n ['path', { d: 'm6.34 17.66-1.41 1.41' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41' }],\n];\n\nexport default Sun;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sunrise\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY4IiAvPgogIDxwYXRoIGQ9Im00LjkzIDEwLjkzIDEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMiAxOGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxOGgyIiAvPgogIDxwYXRoIGQ9Im0xOS4wNyAxMC45My0xLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0iTTIyIDIySDIiIC8+CiAgPHBhdGggZD0ibTggNiA0LTQgNCA0IiAvPgogIDxwYXRoIGQ9Ik0xNiAxOGE0IDQgMCAwIDAtOCAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sunrise\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sunrise: IconNode = [\n ['path', { d: 'M12 2v8' }],\n ['path', { d: 'm4.93 10.93 1.41 1.41' }],\n ['path', { d: 'M2 18h2' }],\n ['path', { d: 'M20 18h2' }],\n ['path', { d: 'm19.07 10.93-1.41 1.41' }],\n ['path', { d: 'M22 22H2' }],\n ['path', { d: 'm8 6 4-4 4 4' }],\n ['path', { d: 'M16 18a4 4 0 0 0-8 0' }],\n];\n\nexport default Sunrise;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sunset\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTBWMiIgLz4KICA8cGF0aCBkPSJtNC45MyAxMC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0iTTIgMThoMiIgLz4KICA8cGF0aCBkPSJNMjAgMThoMiIgLz4KICA8cGF0aCBkPSJtMTkuMDcgMTAuOTMtMS40MSAxLjQxIiAvPgogIDxwYXRoIGQ9Ik0yMiAyMkgyIiAvPgogIDxwYXRoIGQ9Im0xNiA2LTQgNC00LTQiIC8+CiAgPHBhdGggZD0iTTE2IDE4YTQgNCAwIDAgMC04IDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sunset\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sunset: IconNode = [\n ['path', { d: 'M12 10V2' }],\n ['path', { d: 'm4.93 10.93 1.41 1.41' }],\n ['path', { d: 'M2 18h2' }],\n ['path', { d: 'M20 18h2' }],\n ['path', { d: 'm19.07 10.93-1.41 1.41' }],\n ['path', { d: 'M22 22H2' }],\n ['path', { d: 'm16 6-4 4-4-4' }],\n ['path', { d: 'M16 18a4 4 0 0 0-8 0' }],\n];\n\nexport default Sunset;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name superscript\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNCAxOSA4LTgiIC8+CiAgPHBhdGggZD0ibTEyIDE5LTgtOCIgLz4KICA8cGF0aCBkPSJNMjAgMTJoLTRjMC0xLjUuNDQyLTIgMS41LTIuNVMyMCA4LjMzNCAyMCA3LjAwMmMwLS40NzItLjE3LS45My0uNDg0LTEuMjlhMi4xMDUgMi4xMDUgMCAwIDAtMi42MTctLjQzNmMtLjQyLjIzOS0uNzM4LjYxNC0uODk5IDEuMDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/superscript\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Superscript: IconNode = [\n ['path', { d: 'm4 19 8-8' }],\n ['path', { d: 'm12 19-8-8' }],\n [\n 'path',\n {\n d: 'M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06',\n },\n ],\n];\n\nexport default Superscript;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name swatch-book\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTdhNCA0IDAgMCAxLTggMFY1YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyWiIgLz4KICA8cGF0aCBkPSJNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3IiAvPgogIDxwYXRoIGQ9Ik0gNyAxN2guMDEiIC8+CiAgPHBhdGggZD0ibTExIDggMi4zLTIuM2EyLjQgMi40IDAgMCAxIDMuNDA0LjAwNEwxOC42IDcuNmEyLjQgMi40IDAgMCAxIC4wMjYgMy40MzRMOS45IDE5LjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/swatch-book\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SwatchBook: IconNode = [\n ['path', { d: 'M11 17a4 4 0 0 1-8 0V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2Z' }],\n ['path', { d: 'M16.7 13H19a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H7' }],\n ['path', { d: 'M 7 17h.01' }],\n [\n 'path',\n { d: 'm11 8 2.3-2.3a2.4 2.4 0 0 1 3.404.004L18.6 7.6a2.4 2.4 0 0 1 .026 3.434L9.9 19.8' },\n ],\n];\n\nexport default SwatchBook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name swiss-franc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjFWM2g4IiAvPgogIDxwYXRoIGQ9Ik02IDE2aDkiIC8+CiAgPHBhdGggZD0iTTEwIDkuNWg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/swiss-franc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SwissFranc: IconNode = [\n ['path', { d: 'M10 21V3h8' }],\n ['path', { d: 'M6 16h9' }],\n ['path', { d: 'M10 9.5h7' }],\n];\n\nexport default SwissFranc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name switch-camera\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTlINGEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDItMmg1IiAvPgogIDxwYXRoIGQ9Ik0xMyA1aDdhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC01IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTE4IDIyLTMtMyAzLTMiIC8+CiAgPHBhdGggZD0ibTYgMiAzIDMtMyAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/switch-camera\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SwitchCamera: IconNode = [\n ['path', { d: 'M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5' }],\n ['path', { d: 'M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['path', { d: 'm18 22-3-3 3-3' }],\n ['path', { d: 'm6 2 3 3-3 3' }],\n];\n\nexport default SwitchCamera;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sword\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTktNi02IiAvPgogIDxwYXRoIGQ9Im01IDIxLTItMiIgLz4KICA8cGF0aCBkPSJtOCAxNi00IDQiIC8+CiAgPHBhdGggZD0iTTkuNSAxNy41IDIxIDZWM2gtM0w2LjUgMTQuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sword\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sword: IconNode = [\n ['path', { d: 'm11 19-6-6' }],\n ['path', { d: 'm5 21-2-2' }],\n ['path', { d: 'm8 16-4 4' }],\n ['path', { d: 'M9.5 17.5 21 6V3h-3L6.5 14.5' }],\n];\n\nexport default Sword;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name swords\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWxpbmUgcG9pbnRzPSIxNC41IDE3LjUgMyA2IDMgMyA2IDMgMTcuNSAxNC41IiAvPgogIDxsaW5lIHgxPSIxMyIgeDI9IjE5IiB5MT0iMTkiIHkyPSIxMyIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIyMCIgeTE9IjE2IiB5Mj0iMjAiIC8+CiAgPGxpbmUgeDE9IjE5IiB4Mj0iMjEiIHkxPSIyMSIgeTI9IjE5IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjE0LjUgNi41IDE4IDMgMjEgMyAyMSA2IDE3LjUgOS41IiAvPgogIDxsaW5lIHgxPSI1IiB4Mj0iOSIgeTE9IjE0IiB5Mj0iMTgiIC8+CiAgPGxpbmUgeDE9IjciIHgyPSI0IiB5MT0iMTciIHkyPSIyMCIgLz4KICA8bGluZSB4MT0iMyIgeDI9IjUiIHkxPSIxOSIgeTI9IjIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/swords\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Swords: IconNode = [\n ['polyline', { points: '14.5 17.5 3 6 3 3 6 3 17.5 14.5' }],\n ['line', { x1: '13', x2: '19', y1: '19', y2: '13' }],\n ['line', { x1: '16', x2: '20', y1: '16', y2: '20' }],\n ['line', { x1: '19', x2: '21', y1: '21', y2: '19' }],\n ['polyline', { points: '14.5 6.5 18 3 21 3 21 6 17.5 9.5' }],\n ['line', { x1: '5', x2: '9', y1: '14', y2: '18' }],\n ['line', { x1: '7', x2: '4', y1: '17', y2: '20' }],\n ['line', { x1: '3', x2: '5', y1: '19', y2: '21' }],\n];\n\nexport default Swords;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name syringe\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMiA0IDQiIC8+CiAgPHBhdGggZD0ibTE3IDcgMy0zIiAvPgogIDxwYXRoIGQ9Ik0xOSA5IDguNyAxOS4zYy0xIDEtMi41IDEtMy40IDBsLS42LS42Yy0xLTEtMS0yLjUgMC0zLjRMMTUgNSIgLz4KICA8cGF0aCBkPSJtOSAxMSA0IDQiIC8+CiAgPHBhdGggZD0ibTUgMTktMyAzIiAvPgogIDxwYXRoIGQ9Im0xNCA0IDYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/syringe\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Syringe: IconNode = [\n ['path', { d: 'm18 2 4 4' }],\n ['path', { d: 'm17 7 3-3' }],\n ['path', { d: 'M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5' }],\n ['path', { d: 'm9 11 4 4' }],\n ['path', { d: 'm5 19-3 3' }],\n ['path', { d: 'm14 4 6 6' }],\n];\n\nexport default Syringe;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAzSDVhMiAyIDAgMCAwLTIgMnY0bTYtNmgxMGEyIDIgMCAwIDEgMiAydjRNOSAzdjE4bTAgMGgxMGEyIDIgMCAwIDAgMi0yVjlNOSAyMUg1YTIgMiAwIDAgMS0yLTJWOW0wIDBoMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Table2: IconNode = [\n [\n 'path',\n {\n d: 'M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18',\n },\n ],\n];\n\nexport default Table2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-cells-merge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjF2LTYiIC8+CiAgPHBhdGggZD0iTTEyIDlWMyIgLz4KICA8cGF0aCBkPSJNMyAxNWgxOCIgLz4KICA8cGF0aCBkPSJNMyA5aDE4IiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgeD0iMyIgeT0iMyIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table-cells-merge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableCellsMerge: IconNode = [\n ['path', { d: 'M12 21v-6' }],\n ['path', { d: 'M12 9V3' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'M3 9h18' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n];\n\nexport default TableCellsMerge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-cells-split\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTVWOSIgLz4KICA8cGF0aCBkPSJNMyAxNWgxOCIgLz4KICA8cGF0aCBkPSJNMyA5aDE4IiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgeD0iMyIgeT0iMyIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table-cells-split\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableCellsSplit: IconNode = [\n ['path', { d: 'M12 15V9' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'M3 9h18' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n];\n\nexport default TableCellsSplit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-columns-split\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTR2MiIgLz4KICA8cGF0aCBkPSJNMTQgMjB2MiIgLz4KICA8cGF0aCBkPSJNMTQgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNCA4djIiIC8+CiAgPHBhdGggZD0iTTIgMTVoOCIgLz4KICA8cGF0aCBkPSJNMiAzaDZhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDIiIC8+CiAgPHBhdGggZD0iTTIgOWg4IiAvPgogIDxwYXRoIGQ9Ik0yMiAxNWgtNCIgLz4KICA8cGF0aCBkPSJNMjIgM2gtMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMiIgLz4KICA8cGF0aCBkPSJNMjIgOWgtNCIgLz4KICA8cGF0aCBkPSJNNSAzdjE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/table-columns-split\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableColumnsSplit: IconNode = [\n ['path', { d: 'M14 14v2' }],\n ['path', { d: 'M14 20v2' }],\n ['path', { d: 'M14 2v2' }],\n ['path', { d: 'M14 8v2' }],\n ['path', { d: 'M2 15h8' }],\n ['path', { d: 'M2 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2' }],\n ['path', { d: 'M2 9h8' }],\n ['path', { d: 'M22 15h-4' }],\n ['path', { d: 'M22 3h-2a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2' }],\n ['path', { d: 'M22 9h-4' }],\n ['path', { d: 'M5 3v18' }],\n];\n\nexport default TableColumnsSplit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-of-contents\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSA1aC4wMSIgLz4KICA8cGF0aCBkPSJNMjEgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yMSAxOWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table-of-contents\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableOfContents: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M16 12H3' }],\n ['path', { d: 'M16 19H3' }],\n ['path', { d: 'M21 5h.01' }],\n ['path', { d: 'M21 12h.01' }],\n ['path', { d: 'M21 19h.01' }],\n];\n\nexport default TableOfContents;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-properties\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM3YxOCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMSA5SDMiIC8+CiAgPHBhdGggZD0iTTIxIDE1SDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table-properties\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableProperties: IconNode = [\n ['path', { d: 'M15 3v18' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M21 9H3' }],\n ['path', { d: 'M21 15H3' }],\n];\n\nexport default TableProperties;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-rows-split\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTBoMiIgLz4KICA8cGF0aCBkPSJNMTUgMjJ2LTgiIC8+CiAgPHBhdGggZD0iTTE1IDJ2NCIgLz4KICA8cGF0aCBkPSJNMiAxMGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMGgyIiAvPgogIDxwYXRoIGQ9Ik0zIDE5aDE4IiAvPgogIDxwYXRoIGQ9Ik0zIDIydi02YTIgMiAxMzUgMCAxIDItMmgxNGEyIDIgNDUgMCAxIDIgMnY2IiAvPgogIDxwYXRoIGQ9Ik0zIDJ2MmEyIDIgNDUgMCAwIDIgMmgxNGEyIDIgMTM1IDAgMCAyLTJWMiIgLz4KICA8cGF0aCBkPSJNOCAxMGgyIiAvPgogIDxwYXRoIGQ9Ik05IDIydi04IiAvPgogIDxwYXRoIGQ9Ik05IDJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/table-rows-split\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableRowsSplit: IconNode = [\n ['path', { d: 'M14 10h2' }],\n ['path', { d: 'M15 22v-8' }],\n ['path', { d: 'M15 2v4' }],\n ['path', { d: 'M2 10h2' }],\n ['path', { d: 'M20 10h2' }],\n ['path', { d: 'M3 19h18' }],\n ['path', { d: 'M3 22v-6a2 2 135 0 1 2-2h14a2 2 45 0 1 2 2v6' }],\n ['path', { d: 'M3 2v2a2 2 45 0 0 2 2h14a2 2 135 0 0 2-2V2' }],\n ['path', { d: 'M8 10h2' }],\n ['path', { d: 'M9 22v-8' }],\n ['path', { d: 'M9 2v4' }],\n];\n\nexport default TableRowsSplit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0iTTMgMTVoMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Table: IconNode = [\n ['path', { d: 'M12 3v18' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'M3 15h18' }],\n];\n\nexport default Table;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tablet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHg9IjQiIHk9IjIiIHJ4PSIyIiByeT0iMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMi4wMSIgeTE9IjE4IiB5Mj0iMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tablet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tablet: IconNode = [\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2', ry: '2' }],\n ['line', { x1: '12', x2: '12.01', y1: '18', y2: '18' }],\n];\n\nexport default Tablet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tablet-smartphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iMTQiIHg9IjMiIHk9IjgiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik01IDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjE2YTIgMiAwIDAgMS0yIDJoLTIuNCIgLz4KICA8cGF0aCBkPSJNOCAxOGguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tablet-smartphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TabletSmartphone: IconNode = [\n ['rect', { width: '10', height: '14', x: '3', y: '8', rx: '2' }],\n ['path', { d: 'M5 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2h-2.4' }],\n ['path', { d: 'M8 18h.01' }],\n];\n\nexport default TabletSmartphone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tablets\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iNyIgcj0iNSIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE3IiByPSI1IiAvPgogIDxwYXRoIGQ9Ik0xMiAxN2gxMCIgLz4KICA8cGF0aCBkPSJtMy40NiAxMC41NCA3LjA4LTcuMDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tablets\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tablets: IconNode = [\n ['circle', { cx: '7', cy: '7', r: '5' }],\n ['circle', { cx: '17', cy: '17', r: '5' }],\n ['path', { d: 'M12 17h10' }],\n ['path', { d: 'm3.46 10.54 7.08-7.08' }],\n];\n\nexport default Tablets;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNTg2IDIuNTg2QTIgMiAwIDAgMCAxMS4xNzIgMkg0YTIgMiAwIDAgMC0yIDJ2Ny4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsOC43MDQgOC43MDRhMi40MjYgMi40MjYgMCAwIDAgMy40MiAwbDYuNTgtNi41OGEyLjQyNiAyLjQyNiAwIDAgMCAwLTMuNDJ6IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tag: IconNode = [\n [\n 'path',\n {\n d: 'M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z',\n },\n ],\n ['circle', { cx: '7.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n];\n\nexport default Tag;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tags\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4Nmw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMSAwIDMuNDA4bC00LjU5MiA0LjU5MmEyLjQgMi40IDAgMCAxLTMuNDA4IDBsLTYuNzEtNi43MUEyIDIgMCAwIDEgNiA5LjE3MlYzYTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik0yIDd2Ni4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDAgMy4xOTEuMTkzIiAvPgogIDxjaXJjbGUgY3g9IjEwLjUiIGN5PSI2LjUiIHI9Ii41IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tags\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tags: IconNode = [\n [\n 'path',\n {\n d: 'M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z',\n },\n ],\n ['path', { d: 'M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193' }],\n ['circle', { cx: '10.5', cy: '6.5', r: '.5', fill: 'currentColor' }],\n];\n\nexport default Tags;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tally-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA0djE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tally-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tally1: IconNode = [['path', { d: 'M4 4v16' }]];\n\nexport default Tally1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tally-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA0djE2IiAvPgogIDxwYXRoIGQ9Ik05IDR2MTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tally-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tally2: IconNode = [\n ['path', { d: 'M4 4v16' }],\n ['path', { d: 'M9 4v16' }],\n];\n\nexport default Tally2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tally-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA0djE2IiAvPgogIDxwYXRoIGQ9Ik05IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE0IDR2MTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tally-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tally3: IconNode = [\n ['path', { d: 'M4 4v16' }],\n ['path', { d: 'M9 4v16' }],\n ['path', { d: 'M14 4v16' }],\n];\n\nexport default Tally3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tally-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA0djE2IiAvPgogIDxwYXRoIGQ9Ik05IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE0IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE5IDR2MTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tally-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tally4: IconNode = [\n ['path', { d: 'M4 4v16' }],\n ['path', { d: 'M9 4v16' }],\n ['path', { d: 'M14 4v16' }],\n ['path', { d: 'M19 4v16' }],\n];\n\nexport default Tally4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tally-5\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA0djE2IiAvPgogIDxwYXRoIGQ9Ik05IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE0IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE5IDR2MTYiIC8+CiAgPHBhdGggZD0iTTIyIDYgMiAxOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tally-5\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tally5: IconNode = [\n ['path', { d: 'M4 4v16' }],\n ['path', { d: 'M9 4v16' }],\n ['path', { d: 'M14 4v16' }],\n ['path', { d: 'M19 4v16' }],\n ['path', { d: 'M22 6 2 18' }],\n];\n\nexport default Tally5;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tangent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjQiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTE1LjU5IDUuNDEgNS40MSAxNS41OSIgLz4KICA8Y2lyY2xlIGN4PSI0IiBjeT0iMTciIHI9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDIycy00LTktMS41LTExLjVTMjIgMTIgMjIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tangent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tangent: IconNode = [\n ['circle', { cx: '17', cy: '4', r: '2' }],\n ['path', { d: 'M15.59 5.41 5.41 15.59' }],\n ['circle', { cx: '4', cy: '17', r: '2' }],\n ['path', { d: 'M12 22s-4-9-1.5-11.5S22 12 22 12' }],\n];\n\nexport default Tangent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name target\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/target\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Target: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '12', r: '6' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default Target;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name telescope\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuMDY1IDEyLjQ5My02LjE4IDEuMzE4YS45MzQuOTM0IDAgMCAxLTEuMTA4LS43MDJsLS41MzctMi4xNWExLjA3IDEuMDcgMCAwIDEgLjY5MS0xLjI2NWwxMy41MDQtNC40NCIgLz4KICA8cGF0aCBkPSJtMTMuNTYgMTEuNzQ3IDQuMzMyLS45MjQiIC8+CiAgPHBhdGggZD0ibTE2IDIxLTMuMTA1LTYuMjEiIC8+CiAgPHBhdGggZD0iTTE2LjQ4NSA1Ljk0YTIgMiAwIDAgMSAxLjQ1NS0yLjQyNWwxLjA5LS4yNzJhMSAxIDAgMCAxIDEuMjEyLjcyN2wxLjUxNSA2LjA2YTEgMSAwIDAgMS0uNzI3IDEuMjEzbC0xLjA5LjI3MmEyIDIgMCAwIDEtMi40MjUtMS40NTV6IiAvPgogIDxwYXRoIGQ9Im02LjE1OCA4LjYzMyAxLjExNCA0LjQ1NiIgLz4KICA8cGF0aCBkPSJtOCAyMSAzLjEwNS02LjIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTMiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/telescope\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Telescope: IconNode = [\n [\n 'path',\n {\n d: 'm10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44',\n },\n ],\n ['path', { d: 'm13.56 11.747 4.332-.924' }],\n ['path', { d: 'm16 21-3.105-6.21' }],\n [\n 'path',\n {\n d: 'M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z',\n },\n ],\n ['path', { d: 'm6.158 8.633 1.114 4.456' }],\n ['path', { d: 'm8 21 3.105-6.21' }],\n ['circle', { cx: '12', cy: '13', r: '2' }],\n];\n\nexport default Telescope;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tent-tree\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI0IiBjeT0iNCIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMTQgNSAzLTMgMyAzIiAvPgogIDxwYXRoIGQ9Im0xNCAxMCAzLTMgMyAzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNFYyIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNEg3bC01IDhoMjBaIiAvPgogIDxwYXRoIGQ9Ik04IDE0djgiIC8+CiAgPHBhdGggZD0ibTkgMTQgNSA4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tent-tree\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TentTree: IconNode = [\n ['circle', { cx: '4', cy: '4', r: '2' }],\n ['path', { d: 'm14 5 3-3 3 3' }],\n ['path', { d: 'm14 10 3-3 3 3' }],\n ['path', { d: 'M17 14V2' }],\n ['path', { d: 'M17 14H7l-5 8h20Z' }],\n ['path', { d: 'M8 14v8' }],\n ['path', { d: 'm9 14 5 8' }],\n];\n\nexport default TentTree;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy41IDIxIDE0IDMiIC8+CiAgPHBhdGggZD0iTTIwLjUgMjEgMTAgMyIgLz4KICA8cGF0aCBkPSJNMTUuNSAyMSAxMiAxNWwtMy41IDYiIC8+CiAgPHBhdGggZD0iTTIgMjFoMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tent: IconNode = [\n ['path', { d: 'M3.5 21 14 3' }],\n ['path', { d: 'M20.5 21 10 3' }],\n ['path', { d: 'M15.5 21 12 15l-3.5 6' }],\n ['path', { d: 'M2 21h20' }],\n];\n\nexport default Tent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name terminal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTloOCIgLz4KICA8cGF0aCBkPSJtNCAxNyA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Terminal: IconNode = [\n ['path', { d: 'M12 19h8' }],\n ['path', { d: 'm4 17 6-6-6-6' }],\n];\n\nexport default Terminal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name test-tube-diagonal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNyA2LjgyIDIxLjE4YTIuODMgMi44MyAwIDAgMS0zLjk5LS4wMWEyLjgzIDIuODMgMCAwIDEgMC00TDE3IDMiIC8+CiAgPHBhdGggZD0ibTE2IDIgNiA2IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNkg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/test-tube-diagonal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TestTubeDiagonal: IconNode = [\n ['path', { d: 'M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3' }],\n ['path', { d: 'm16 2 6 6' }],\n ['path', { d: 'M12 16H4' }],\n];\n\nexport default TestTubeDiagonal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name test-tube\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNSAydjE3LjVjMCAxLjQtMS4xIDIuNS0yLjUgMi41Yy0xLjQgMC0yLjUtMS4xLTIuNS0yLjVWMiIgLz4KICA8cGF0aCBkPSJNOC41IDJoNyIgLz4KICA8cGF0aCBkPSJNMTQuNSAxNmgtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/test-tube\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TestTube: IconNode = [\n ['path', { d: 'M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2' }],\n ['path', { d: 'M8.5 2h7' }],\n ['path', { d: 'M14.5 16h-5' }],\n];\n\nexport default TestTube;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name test-tubes\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAydjE3LjVBMi41IDIuNSAwIDAgMSA2LjUgMjJBMi41IDIuNSAwIDAgMSA0IDE5LjVWMiIgLz4KICA8cGF0aCBkPSJNMjAgMnYxNy41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMiIgLz4KICA8cGF0aCBkPSJNMyAyaDciIC8+CiAgPHBhdGggZD0iTTE0IDJoNyIgLz4KICA8cGF0aCBkPSJNOSAxNkg0IiAvPgogIDxwYXRoIGQ9Ik0yMCAxNmgtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/test-tubes\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TestTubes: IconNode = [\n ['path', { d: 'M9 2v17.5A2.5 2.5 0 0 1 6.5 22A2.5 2.5 0 0 1 4 19.5V2' }],\n ['path', { d: 'M20 2v17.5a2.5 2.5 0 0 1-2.5 2.5a2.5 2.5 0 0 1-2.5-2.5V2' }],\n ['path', { d: 'M3 2h7' }],\n ['path', { d: 'M14 2h7' }],\n ['path', { d: 'M9 16H4' }],\n ['path', { d: 'M20 16h-5' }],\n];\n\nexport default TestTubes;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-align-center\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxMkg3IiAvPgogIDxwYXRoIGQ9Ik0xOSAxOUg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-center\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextAlignCenter: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M17 12H7' }],\n ['path', { d: 'M19 19H5' }],\n];\n\nexport default TextAlignCenter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-align-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMkg5IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOUg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextAlignEnd: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M21 12H9' }],\n ['path', { d: 'M21 19H7' }],\n];\n\nexport default TextAlignEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-align-justify\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDE4IiAvPgogIDxwYXRoIGQ9Ik0zIDEyaDE4IiAvPgogIDxwYXRoIGQ9Ik0zIDE5aDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-justify\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextAlignJustify: IconNode = [\n ['path', { d: 'M3 5h18' }],\n ['path', { d: 'M3 12h18' }],\n ['path', { d: 'M3 19h18' }],\n];\n\nexport default TextAlignJustify;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-cursor-input\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLTFhMiAyIDAgMCAxLTItMiAyIDIgMCAwIDEtMiAySDYiIC8+CiAgPHBhdGggZD0iTTEzIDhoN2EyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNyIgLz4KICA8cGF0aCBkPSJNNSAxNkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmgxIiAvPgogIDxwYXRoIGQ9Ik02IDRoMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMSAyLTJoMSIgLz4KICA8cGF0aCBkPSJNOSA2djEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-cursor-input\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextCursorInput: IconNode = [\n ['path', { d: 'M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6' }],\n ['path', { d: 'M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7' }],\n ['path', { d: 'M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1' }],\n ['path', { d: 'M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1' }],\n ['path', { d: 'M9 6v12' }],\n];\n\nexport default TextCursorInput;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-align-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxOUgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextAlignStart: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M15 12H3' }],\n ['path', { d: 'M17 19H3' }],\n];\n\nexport default TextAlignStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-cursor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMjJoLTFhNCA0IDAgMCAxLTQtNFY2YTQgNCAwIDAgMSA0LTRoMSIgLz4KICA8cGF0aCBkPSJNNyAyMmgxYTQgNCAwIDAgMCA0LTR2LTEiIC8+CiAgPHBhdGggZD0iTTcgMmgxYTQgNCAwIDAgMSA0IDR2MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/text-cursor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextCursor: IconNode = [\n ['path', { d: 'M17 22h-1a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h1' }],\n ['path', { d: 'M7 22h1a4 4 0 0 0 4-4v-1' }],\n ['path', { d: 'M7 2h1a4 4 0 0 1 4 4v1' }],\n];\n\nexport default TextCursor;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-initial\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNWg2IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMmg2IiAvPgogIDxwYXRoIGQ9Ik0zIDE5aDE4IiAvPgogIDxwYXRoIGQ9Im0zIDEyIDMuNTUzLTcuNzI0YS41LjUgMCAwIDEgLjg5NCAwTDExIDEyIiAvPgogIDxwYXRoIGQ9Ik0zLjkyIDEwaDYuMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/text-initial\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextInitial: IconNode = [\n ['path', { d: 'M15 5h6' }],\n ['path', { d: 'M15 12h6' }],\n ['path', { d: 'M3 19h18' }],\n ['path', { d: 'm3 12 3.553-7.724a.5.5 0 0 1 .894 0L11 12' }],\n ['path', { d: 'M3.92 10h6.16' }],\n];\n\nexport default TextInitial;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-quote\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgNUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMkg4IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOUg4IiAvPgogIDxwYXRoIGQ9Ik0zIDEydjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/text-quote\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextQuote: IconNode = [\n ['path', { d: 'M17 5H3' }],\n ['path', { d: 'M21 12H8' }],\n ['path', { d: 'M21 19H8' }],\n ['path', { d: 'M3 12v7' }],\n];\n\nexport default TextQuote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMCAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xMCAxOUgzIiAvPgogIDxjaXJjbGUgY3g9IjE3IiBjeT0iMTUiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTIxIDE5LTEuOS0xLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/text-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextSearch: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M10 12H3' }],\n ['path', { d: 'M10 19H3' }],\n ['circle', { cx: '17', cy: '15', r: '3' }],\n ['path', { d: 'm21 19-1.9-1.9' }],\n];\n\nexport default TextSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-select\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMjFoMSIgLz4KICA8cGF0aCBkPSJNMTQgM2gxIiAvPgogIDxwYXRoIGQ9Ik0xOSAzYTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTIxIDE0djEiIC8+CiAgPHBhdGggZD0iTTIxIDE5YTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTIxIDl2MSIgLz4KICA8cGF0aCBkPSJNMyAxNHYxIiAvPgogIDxwYXRoIGQ9Ik0zIDl2MSIgLz4KICA8cGF0aCBkPSJNNSAyMWEyIDIgMCAwIDEtMi0yIiAvPgogIDxwYXRoIGQ9Ik01IDNhMiAyIDAgMCAwLTIgMiIgLz4KICA8cGF0aCBkPSJNNyAxMmgxMCIgLz4KICA8cGF0aCBkPSJNNyAxNmg2IiAvPgogIDxwYXRoIGQ9Ik03IDhoOCIgLz4KICA8cGF0aCBkPSJNOSAyMWgxIiAvPgogIDxwYXRoIGQ9Ik05IDNoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/text-select\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextSelect: IconNode = [\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'M14 3h1' }],\n ['path', { d: 'M19 3a2 2 0 0 1 2 2' }],\n ['path', { d: 'M21 14v1' }],\n ['path', { d: 'M21 19a2 2 0 0 1-2 2' }],\n ['path', { d: 'M21 9v1' }],\n ['path', { d: 'M3 14v1' }],\n ['path', { d: 'M3 9v1' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2' }],\n ['path', { d: 'M5 3a2 2 0 0 0-2 2' }],\n ['path', { d: 'M7 12h10' }],\n ['path', { d: 'M7 16h6' }],\n ['path', { d: 'M7 8h8' }],\n ['path', { d: 'M9 21h1' }],\n ['path', { d: 'M9 3h1' }],\n];\n\nexport default TextSelect;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-wrap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTYtMyAzIDMgMyIgLz4KICA8cGF0aCBkPSJNMyAxMmgxNC41YTEgMSAwIDAgMSAwIDdIMTMiIC8+CiAgPHBhdGggZD0iTTMgMTloNiIgLz4KICA8cGF0aCBkPSJNMyA1aDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-wrap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextWrap: IconNode = [\n ['path', { d: 'm16 16-3 3 3 3' }],\n ['path', { d: 'M3 12h14.5a1 1 0 0 1 0 7H13' }],\n ['path', { d: 'M3 19h6' }],\n ['path', { d: 'M3 5h18' }],\n];\n\nexport default TextWrap;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name theater\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMHMzLTMgMy04IiAvPgogIDxwYXRoIGQ9Ik0yMiAxMHMtMy0zLTMtOCIgLz4KICA8cGF0aCBkPSJNMTAgMmMwIDQuNC0zLjYgOC04IDgiIC8+CiAgPHBhdGggZD0iTTE0IDJjMCA0LjQgMy42IDggOCA4IiAvPgogIDxwYXRoIGQ9Ik0yIDEwczIgMiAyIDUiIC8+CiAgPHBhdGggZD0iTTIyIDEwcy0yIDItMiA1IiAvPgogIDxwYXRoIGQ9Ik04IDE1aDgiIC8+CiAgPHBhdGggZD0iTTIgMjJ2LTFhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MSIgLz4KICA8cGF0aCBkPSJNMTQgMjJ2LTFhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/theater\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Theater: IconNode = [\n ['path', { d: 'M2 10s3-3 3-8' }],\n ['path', { d: 'M22 10s-3-3-3-8' }],\n ['path', { d: 'M10 2c0 4.4-3.6 8-8 8' }],\n ['path', { d: 'M14 2c0 4.4 3.6 8 8 8' }],\n ['path', { d: 'M2 10s2 2 2 5' }],\n ['path', { d: 'M22 10s-2 2-2 5' }],\n ['path', { d: 'M8 15h8' }],\n ['path', { d: 'M2 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1' }],\n ['path', { d: 'M14 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1' }],\n];\n\nexport default Theater;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thermometer-snowflake\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMjAtMS4yNS0yLjVMNiAxOCIgLz4KICA8cGF0aCBkPSJNMTAgNCA4Ljc1IDYuNSA2IDYiIC8+CiAgPHBhdGggZD0iTTEwLjU4NSAxNUgxMCIgLz4KICA8cGF0aCBkPSJNMiAxMmg2LjVMMTAgOSIgLz4KICA8cGF0aCBkPSJNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6IiAvPgogIDxwYXRoIGQ9Im00IDEwIDEuNSAyTDQgMTQiIC8+CiAgPHBhdGggZD0ibTcgMjEgMy02LTEuNS0zIiAvPgogIDxwYXRoIGQ9Im03IDMgMyA2aDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/thermometer-snowflake\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThermometerSnowflake: IconNode = [\n ['path', { d: 'm10 20-1.25-2.5L6 18' }],\n ['path', { d: 'M10 4 8.75 6.5 6 6' }],\n ['path', { d: 'M10.585 15H10' }],\n ['path', { d: 'M2 12h6.5L10 9' }],\n ['path', { d: 'M20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z' }],\n ['path', { d: 'm4 10 1.5 2L4 14' }],\n ['path', { d: 'm7 21 3-6-1.5-3' }],\n ['path', { d: 'm7 3 3 6h2' }],\n];\n\nexport default ThermometerSnowflake;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thermometer-sun\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xMiA4YTQgNCAwIDAgMC0xLjY0NSA3LjY0NyIgLz4KICA8cGF0aCBkPSJNMiAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMHoiIC8+CiAgPHBhdGggZD0ibTQuOTMgNC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0ibTYuMzQgMTcuNjYtMS40MSAxLjQxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/thermometer-sun\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThermometerSun: IconNode = [\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M12 8a4 4 0 0 0-1.645 7.647' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'M20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41' }],\n ['path', { d: 'm6.34 17.66-1.41 1.41' }],\n];\n\nexport default ThermometerSun;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thermometer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNHYxMC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/thermometer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Thermometer: IconNode = [['path', { d: 'M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z' }]];\n\nexport default Thermometer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thumbs-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxOC4xMiAxMCAxNEg0LjE3YTIgMiAwIDAgMS0xLjkyLTIuNTZsMi4zMy04QTIgMiAwIDAgMSA2LjUgMkgyMGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi43NmEyIDIgMCAwIDAtMS43OSAxLjExTDEyIDIyYTMuMTMgMy4xMyAwIDAgMS0zLTMuODhaIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/thumbs-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThumbsDown: IconNode = [\n [\n 'path',\n {\n d: 'M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z',\n },\n ],\n ['path', { d: 'M17 14V2' }],\n];\n\nexport default ThumbsDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thumbs-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNS44OCAxNCAxMGg1LjgzYTIgMiAwIDAgMSAxLjkyIDIuNTZsLTIuMzMgOEEyIDIgMCAwIDEgMTcuNSAyMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDItMmgyLjc2YTIgMiAwIDAgMCAxLjc5LTEuMTFMMTIgMmEzLjEzIDMuMTMgMCAwIDEgMyAzLjg4WiIgLz4KICA8cGF0aCBkPSJNNyAxMHYxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/thumbs-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThumbsUp: IconNode = [\n [\n 'path',\n {\n d: 'M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z',\n },\n ],\n ['path', { d: 'M7 10v12' }],\n];\n\nexport default ThumbsUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ticket-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketCheck: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default TicketCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJNOSAxMmg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ticket-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketMinus: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'M9 12h6' }],\n];\n\nexport default TicketMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDEgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMSAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJNOSA5aC4wMSIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0iTTE1IDE1aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ticket-percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketPercent: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'M9 9h.01' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'M15 15h.01' }],\n];\n\nexport default TicketPercent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJNOSAxMmg2IiAvPgogIDxwYXRoIGQ9Ik0xMiA5djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ticket-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketPlus: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'M9 12h6' }],\n ['path', { d: 'M12 9v6' }],\n];\n\nexport default TicketPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJtOS41IDE0LjUgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ticket-slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketSlash: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'm9.5 14.5 5-5' }],\n];\n\nexport default TicketSlash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJtOS41IDE0LjUgNS01IiAvPgogIDxwYXRoIGQ9Im05LjUgOS41IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ticket-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketX: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'm9.5 14.5 5-5' }],\n ['path', { d: 'm9.5 9.5 5 5' }],\n];\n\nexport default TicketX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJNMTMgNXYyIiAvPgogIDxwYXRoIGQ9Ik0xMyAxN3YyIiAvPgogIDxwYXRoIGQ9Ik0xMyAxMXYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ticket\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ticket: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'M13 5v2' }],\n ['path', { d: 'M13 17v2' }],\n ['path', { d: 'M13 11v2' }],\n];\n\nexport default Ticket;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tickets-plane\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSAxN2gxLjIyN2EyIDIgMCAwIDAgMS4zNDUtLjUyTDE4IDEyIiAvPgogIDxwYXRoIGQ9Im0xMiAxMy41IDMuNzk0LjUwNiIgLz4KICA8cGF0aCBkPSJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCIgLz4KICA8cGF0aCBkPSJNNiAxMFY4IiAvPgogIDxwYXRoIGQ9Ik02IDE0djEiIC8+CiAgPHBhdGggZD0iTTYgMTl2MiIgLz4KICA8cmVjdCB4PSIyIiB5PSI4IiB3aWR0aD0iMjAiIGhlaWdodD0iMTMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tickets-plane\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketsPlane: IconNode = [\n ['path', { d: 'M10.5 17h1.227a2 2 0 0 0 1.345-.52L18 12' }],\n ['path', { d: 'm12 13.5 3.794.506' }],\n ['path', { d: 'm3.173 8.18 11-5a2 2 0 0 1 2.647.993L18.56 8' }],\n ['path', { d: 'M6 10V8' }],\n ['path', { d: 'M6 14v1' }],\n ['path', { d: 'M6 19v2' }],\n ['rect', { x: '2', y: '8', width: '20', height: '13', rx: '2' }],\n];\n\nexport default TicketsPlane;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name timer-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMmg0IiAvPgogIDxwYXRoIGQ9Ik00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjciIC8+CiAgPHBhdGggZD0iTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnYtMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/timer-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TimerOff: IconNode = [\n ['path', { d: 'M10 2h4' }],\n ['path', { d: 'M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7' }],\n ['path', { d: 'M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M12 12v-2' }],\n];\n\nexport default TimerOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tickets\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCIgLz4KICA8cGF0aCBkPSJNNiAxMFY4IiAvPgogIDxwYXRoIGQ9Ik02IDE0djEiIC8+CiAgPHBhdGggZD0iTTYgMTl2MiIgLz4KICA8cmVjdCB4PSIyIiB5PSI4IiB3aWR0aD0iMjAiIGhlaWdodD0iMTMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tickets\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tickets: IconNode = [\n ['path', { d: 'm3.173 8.18 11-5a2 2 0 0 1 2.647.993L18.56 8' }],\n ['path', { d: 'M6 10V8' }],\n ['path', { d: 'M6 14v1' }],\n ['path', { d: 'M6 19v2' }],\n ['rect', { x: '2', y: '8', width: '20', height: '13', rx: '2' }],\n];\n\nexport default Tickets;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name timer-reset\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMmg0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNHYtNCIgLz4KICA8cGF0aCBkPSJNNCAxM2E4IDggMCAwIDEgOC03IDggOCAwIDEgMS01LjMgMTRMNCAxNy42IiAvPgogIDxwYXRoIGQ9Ik05IDE3SDR2NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/timer-reset\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TimerReset: IconNode = [\n ['path', { d: 'M10 2h4' }],\n ['path', { d: 'M12 14v-4' }],\n ['path', { d: 'M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6' }],\n ['path', { d: 'M9 17H4v5' }],\n];\n\nexport default TimerReset;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name timer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTAiIHgyPSIxNCIgeTE9IjIiIHkyPSIyIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjE1IiB5MT0iMTQiIHkyPSIxMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE0IiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/timer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Timer: IconNode = [\n ['line', { x1: '10', x2: '14', y1: '2', y2: '2' }],\n ['line', { x1: '12', x2: '15', y1: '14', y2: '11' }],\n ['circle', { cx: '12', cy: '14', r: '8' }],\n];\n\nexport default Timer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name toggle-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjMiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiB4PSIyIiB5PSI1IiByeD0iNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/toggle-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ToggleLeft: IconNode = [\n ['circle', { cx: '9', cy: '12', r: '3' }],\n ['rect', { width: '20', height: '14', x: '2', y: '5', rx: '7' }],\n];\n\nexport default ToggleLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name toggle-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjEyIiByPSIzIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iNSIgcng9IjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/toggle-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ToggleRight: IconNode = [\n ['circle', { cx: '15', cy: '12', r: '3' }],\n ['rect', { width: '20', height: '14', x: '2', y: '5', rx: '7' }],\n];\n\nexport default ToggleRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name toilet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxMmgxM2ExIDEgMCAwIDEgMSAxIDUgNSAwIDAgMS01IDVoLS41OThhLjUuNSAwIDAgMC0uNDI0Ljc2NWwxLjU0NCAyLjQ3YS41LjUgMCAwIDEtLjQyNC43NjVINS40MDJhLjUuNSAwIDAgMS0uNDI0LS43NjVMNyAxOCIgLz4KICA8cGF0aCBkPSJNOCAxOGE1IDUgMCAwIDEtNS01VjRhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2OCIgLz4KPC9zdmc+) - https://lucide.dev/icons/toilet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Toilet: IconNode = [\n [\n 'path',\n {\n d: 'M7 12h13a1 1 0 0 1 1 1 5 5 0 0 1-5 5h-.598a.5.5 0 0 0-.424.765l1.544 2.47a.5.5 0 0 1-.424.765H5.402a.5.5 0 0 1-.424-.765L7 18',\n },\n ],\n ['path', { d: 'M8 18a5 5 0 0 1-5-5V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8' }],\n];\n\nexport default Toilet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tool-case\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTVoNCIgLz4KICA8cGF0aCBkPSJtMTQuODE3IDEwLjk5NS0uOTcxLTEuNDUgMS4wMzQtMS4yMzJhMiAyIDAgMCAwLTIuMDI1LTMuMjM4bC0xLjgyLjM2NEw5LjkxIDMuODg1YTIgMiAwIDAgMC0zLjYyNS43NDhMNi4xNDEgNi41NWwtMS43MjUuNDI2YTIgMiAwIDAgMC0uMTkgMy43NTZsLjY1Ny4yNyIgLz4KICA8cGF0aCBkPSJtMTguODIyIDEwLjk5NSAyLjI2LTUuMzhhMSAxIDAgMCAwLS41NTctMS4zMThMMTYuOTU0IDIuOWExIDEgMCAwIDAtMS4yODEuNTMzbC0uOTI0IDIuMTIyIiAvPgogIDxwYXRoIGQ9Ik00IDEyLjAwNkExIDEgMCAwIDEgNC45OTQgMTFIMTlhMSAxIDAgMCAxIDEgMXY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tool-case\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ToolCase: IconNode = [\n ['path', { d: 'M10 15h4' }],\n [\n 'path',\n {\n d: 'm14.817 10.995-.971-1.45 1.034-1.232a2 2 0 0 0-2.025-3.238l-1.82.364L9.91 3.885a2 2 0 0 0-3.625.748L6.141 6.55l-1.725.426a2 2 0 0 0-.19 3.756l.657.27',\n },\n ],\n [\n 'path',\n {\n d: 'm18.822 10.995 2.26-5.38a1 1 0 0 0-.557-1.318L16.954 2.9a1 1 0 0 0-1.281.533l-.924 2.122',\n },\n ],\n ['path', { d: 'M4 12.006A1 1 0 0 1 4.994 11H19a1 1 0 0 1 1 1v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z' }],\n];\n\nexport default ToolCase;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name toolbox\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTJ2NCIgLz4KICA8cGF0aCBkPSJNMTYgNmEyIDIgMCAwIDEgMS40MTQuNTg2bDQgNEEyIDIgMCAwIDEgMjIgMTJ2N2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LTRBMiAyIDAgMCAxIDggNnoiIC8+CiAgPHBhdGggZD0iTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyMCIgLz4KICA8cGF0aCBkPSJNOCAxMnY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/toolbox\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Toolbox: IconNode = [\n ['path', { d: 'M16 12v4' }],\n [\n 'path',\n {\n d: 'M16 6a2 2 0 0 1 1.414.586l4 4A2 2 0 0 1 22 12v7a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 .586-1.414l4-4A2 2 0 0 1 8 6z',\n },\n ],\n ['path', { d: 'M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2' }],\n ['path', { d: 'M2 14h20' }],\n ['path', { d: 'M8 12v4' }],\n];\n\nexport default Toolbox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tornado\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNEgzIiAvPgogIDxwYXRoIGQ9Ik0xOCA4SDYiIC8+CiAgPHBhdGggZD0iTTE5IDEySDkiIC8+CiAgPHBhdGggZD0iTTE2IDE2aC02IiAvPgogIDxwYXRoIGQ9Ik0xMSAyMEg5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tornado\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tornado: IconNode = [\n ['path', { d: 'M21 4H3' }],\n ['path', { d: 'M18 8H6' }],\n ['path', { d: 'M19 12H9' }],\n ['path', { d: 'M16 16h-6' }],\n ['path', { d: 'M11 20H9' }],\n];\n\nexport default Tornado;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name torus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSIxMSIgcng9IjMiIHJ5PSIyIiAvPgogIDxlbGxpcHNlIGN4PSIxMiIgY3k9IjEyLjUiIHJ4PSIxMCIgcnk9IjguNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/torus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Torus: IconNode = [\n ['ellipse', { cx: '12', cy: '11', rx: '3', ry: '2' }],\n ['ellipse', { cx: '12', cy: '12.5', rx: '10', ry: '8.5' }],\n];\n\nexport default Torus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name touchpad-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjB2LTYiIC8+CiAgPHBhdGggZD0iTTE5LjY1NiAxNEgyMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgxMiIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yIiAvPgogIDxwYXRoIGQ9Ik05LjY1NiA0SDIwYTIgMiAwIDAgMSAyIDJ2MTAuMzQ0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/touchpad-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TouchpadOff: IconNode = [\n ['path', { d: 'M12 20v-6' }],\n ['path', { d: 'M19.656 14H22' }],\n ['path', { d: 'M2 14h12' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2' }],\n ['path', { d: 'M9.656 4H20a2 2 0 0 1 2 2v10.344' }],\n];\n\nexport default TouchpadOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name touchpad\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yIDE0aDIwIiAvPgogIDxwYXRoIGQ9Ik0xMiAyMHYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/touchpad\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Touchpad: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M2 14h20' }],\n ['path', { d: 'M12 20v-6' }],\n];\n\nexport default Touchpad;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tower-control\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguMiAxMi4yNyAyMCA2SDRsMS44IDYuMjdhMSAxIDAgMCAwIC45NS43M2gxMC41YTEgMSAwIDAgMCAuOTYtLjczWiIgLz4KICA8cGF0aCBkPSJNOCAxM3Y5IiAvPgogIDxwYXRoIGQ9Ik0xNiAyMnYtOSIgLz4KICA8cGF0aCBkPSJtOSA2IDEgNyIgLz4KICA8cGF0aCBkPSJtMTUgNi0xIDciIC8+CiAgPHBhdGggZD0iTTEyIDZWMiIgLz4KICA8cGF0aCBkPSJNMTMgMmgtMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tower-control\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TowerControl: IconNode = [\n ['path', { d: 'M18.2 12.27 20 6H4l1.8 6.27a1 1 0 0 0 .95.73h10.5a1 1 0 0 0 .96-.73Z' }],\n ['path', { d: 'M8 13v9' }],\n ['path', { d: 'M16 22v-9' }],\n ['path', { d: 'm9 6 1 7' }],\n ['path', { d: 'm15 6-1 7' }],\n ['path', { d: 'M12 6V2' }],\n ['path', { d: 'M13 2h-2' }],\n];\n\nexport default TowerControl;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name toy-brick\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIHg9IjMiIHk9IjgiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyIgLz4KICA8cGF0aCBkPSJNMTkgOFY1YzAtLjYtLjQtMS0xLTFoLTNhMSAxIDAgMCAwLTEgMXYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/toy-brick\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ToyBrick: IconNode = [\n ['rect', { width: '18', height: '12', x: '3', y: '8', rx: '1' }],\n ['path', { d: 'M10 8V5c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v3' }],\n ['path', { d: 'M19 8V5c0-.6-.4-1-1-1h-3a1 1 0 0 0-1 1v3' }],\n];\n\nexport default ToyBrick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tractor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTEgMTEgLjlhMSAxIDAgMCAxIC44IDEuMWwtLjY2NSA0LjE1OGExIDEgMCAwIDEtLjk4OC44NDJIMjAiIC8+CiAgPHBhdGggZD0iTTE2IDE4aC01IiAvPgogIDxwYXRoIGQ9Ik0xOCA1YTEgMSAwIDAgMC0xIDF2NS41NzMiIC8+CiAgPHBhdGggZD0iTTMgNGg4LjEyOWExIDEgMCAwIDEgLjk5Ljg2M0wxMyAxMS4yNDYiIC8+CiAgPHBhdGggZD0iTTQgMTFWNCIgLz4KICA8cGF0aCBkPSJNNyAxNWguMDEiIC8+CiAgPHBhdGggZD0iTTggMTAuMVY0IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iNyIgY3k9IjE1IiByPSI1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tractor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tractor: IconNode = [\n ['path', { d: 'm10 11 11 .9a1 1 0 0 1 .8 1.1l-.665 4.158a1 1 0 0 1-.988.842H20' }],\n ['path', { d: 'M16 18h-5' }],\n ['path', { d: 'M18 5a1 1 0 0 0-1 1v5.573' }],\n ['path', { d: 'M3 4h8.129a1 1 0 0 1 .99.863L13 11.246' }],\n ['path', { d: 'M4 11V4' }],\n ['path', { d: 'M7 15h.01' }],\n ['path', { d: 'M8 10.1V4' }],\n ['circle', { cx: '18', cy: '18', r: '2' }],\n ['circle', { cx: '7', cy: '15', r: '5' }],\n];\n\nexport default Tractor;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name traffic-cone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuMDUgMTAuOTY2YTUgMi41IDAgMCAxLTguMSAwIiAvPgogIDxwYXRoIGQ9Im0xNi45MjMgMTQuMDQ5IDQuNDggMi4wNGExIDEgMCAwIDEgLjAwMSAxLjgzMWwtOC41NzQgMy45YTIgMiAwIDAgMS0xLjY2IDBsLTguNTc0LTMuOTFhMSAxIDAgMCAxIDAtMS44M2w0LjQ4NC0yLjA0IiAvPgogIDxwYXRoIGQ9Ik0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoiIC8+CiAgPHBhdGggZD0iTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/traffic-cone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrafficCone: IconNode = [\n ['path', { d: 'M16.05 10.966a5 2.5 0 0 1-8.1 0' }],\n [\n 'path',\n {\n d: 'm16.923 14.049 4.48 2.04a1 1 0 0 1 .001 1.831l-8.574 3.9a2 2 0 0 1-1.66 0l-8.574-3.91a1 1 0 0 1 0-1.83l4.484-2.04',\n },\n ],\n ['path', { d: 'M16.949 14.14a5 2.5 0 1 1-9.9 0L10.063 3.5a2 2 0 0 1 3.874 0z' }],\n ['path', { d: 'M9.194 6.57a5 2.5 0 0 0 5.61 0' }],\n];\n\nexport default TrafficCone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name train-front-tunnel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIiAvPgogIDxwYXRoIGQ9Ik0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgiIC8+CiAgPHBhdGggZD0iTTEwIDE1aC4wMSIgLz4KICA8cGF0aCBkPSJNMTQgMTVoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoiIC8+CiAgPHBhdGggZD0ibTkgMTktMiAzIiAvPgogIDxwYXRoIGQ9Im0xNSAxOSAyIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/train-front-tunnel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrainFrontTunnel: IconNode = [\n ['path', { d: 'M2 22V12a10 10 0 1 1 20 0v10' }],\n ['path', { d: 'M15 6.8v1.4a3 2.8 0 1 1-6 0V6.8' }],\n ['path', { d: 'M10 15h.01' }],\n ['path', { d: 'M14 15h.01' }],\n ['path', { d: 'M10 19a4 4 0 0 1-4-4v-3a6 6 0 1 1 12 0v3a4 4 0 0 1-4 4Z' }],\n ['path', { d: 'm9 19-2 3' }],\n ['path', { d: 'm15 19 2 3' }],\n];\n\nexport default TrainFrontTunnel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name train-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzLjFWN2E0IDQgMCAwIDAgOCAwVjMuMSIgLz4KICA8cGF0aCBkPSJtOSAxNS0xLTEiIC8+CiAgPHBhdGggZD0ibTE1IDE1IDEtMSIgLz4KICA8cGF0aCBkPSJNOSAxOWMtMi44IDAtNS0yLjItNS01di00YTggOCAwIDAgMSAxNiAwdjRjMCAyLjgtMi4yIDUtNSA1WiIgLz4KICA8cGF0aCBkPSJtOCAxOS0yIDMiIC8+CiAgPHBhdGggZD0ibTE2IDE5IDIgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/train-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrainFront: IconNode = [\n ['path', { d: 'M8 3.1V7a4 4 0 0 0 8 0V3.1' }],\n ['path', { d: 'm9 15-1-1' }],\n ['path', { d: 'm15 15 1-1' }],\n ['path', { d: 'M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z' }],\n ['path', { d: 'm8 19-2 3' }],\n ['path', { d: 'm16 19 2 3' }],\n];\n\nexport default TrainFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name train-track\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxNyAxNyAyIiAvPgogIDxwYXRoIGQ9Im0yIDE0IDggOCIgLz4KICA8cGF0aCBkPSJtNSAxMSA4IDgiIC8+CiAgPHBhdGggZD0ibTggOCA4IDgiIC8+CiAgPHBhdGggZD0ibTExIDUgOCA4IiAvPgogIDxwYXRoIGQ9Im0xNCAyIDggOCIgLz4KICA8cGF0aCBkPSJNNyAyMiAyMiA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/train-track\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrainTrack: IconNode = [\n ['path', { d: 'M2 17 17 2' }],\n ['path', { d: 'm2 14 8 8' }],\n ['path', { d: 'm5 11 8 8' }],\n ['path', { d: 'm8 8 8 8' }],\n ['path', { d: 'm11 5 8 8' }],\n ['path', { d: 'm14 2 8 8' }],\n ['path', { d: 'M7 22 22 7' }],\n];\n\nexport default TrainTrack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tram-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHg9IjQiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik00IDExaDE2IiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjgiIC8+CiAgPHBhdGggZD0ibTggMTktMiAzIiAvPgogIDxwYXRoIGQ9Im0xOCAyMi0yLTMiIC8+CiAgPHBhdGggZD0iTTggMTVoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tram-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TramFront: IconNode = [\n ['rect', { width: '16', height: '16', x: '4', y: '3', rx: '2' }],\n ['path', { d: 'M4 11h16' }],\n ['path', { d: 'M12 3v8' }],\n ['path', { d: 'm8 19-2 3' }],\n ['path', { d: 'm18 22-2-3' }],\n ['path', { d: 'M8 15h.01' }],\n ['path', { d: 'M16 15h.01' }],\n];\n\nexport default TramFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name transgender\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZ2NiIgLz4KICA8cGF0aCBkPSJNMTQgMjBoLTQiIC8+CiAgPHBhdGggZD0iTTE4IDJoNHY0IiAvPgogIDxwYXRoIGQ9Im0yIDIgNy4xNyA3LjE3IiAvPgogIDxwYXRoIGQ9Ik0yIDUuMzU1VjJoMy4zNTciIC8+CiAgPHBhdGggZD0ibTIyIDItNy4xNyA3LjE3IiAvPgogIDxwYXRoIGQ9Ik04IDUgNSA4IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/transgender\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Transgender: IconNode = [\n ['path', { d: 'M12 16v6' }],\n ['path', { d: 'M14 20h-4' }],\n ['path', { d: 'M18 2h4v4' }],\n ['path', { d: 'm2 2 7.17 7.17' }],\n ['path', { d: 'M2 5.355V2h3.357' }],\n ['path', { d: 'm22 2-7.17 7.17' }],\n ['path', { d: 'M8 5 5 8' }],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n];\n\nexport default Transgender;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trash-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTQgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik0zIDZoMTgiIC8+CiAgPHBhdGggZD0iTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trash2: IconNode = [\n ['path', { d: 'M10 11v6' }],\n ['path', { d: 'M14 11v6' }],\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6' }],\n ['path', { d: 'M3 6h18' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2' }],\n];\n\nexport default Trash2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik0zIDZoMTgiIC8+CiAgPHBhdGggZD0iTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/trash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trash: IconNode = [\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6' }],\n ['path', { d: 'M3 6h18' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2' }],\n];\n\nexport default Trash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tree-deciduous\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAxOWE0IDQgMCAwIDEtMi4yNC03LjMyQTMuNSAzLjUgMCAwIDEgOSA2LjAzVjZhMyAzIDAgMSAxIDYgMHYuMDRhMy41IDMuNSAwIDAgMSAzLjI0IDUuNjVBNCA0IDAgMCAxIDE2IDE5WiIgLz4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tree-deciduous\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TreeDeciduous: IconNode = [\n [\n 'path',\n {\n d: 'M8 19a4 4 0 0 1-2.24-7.32A3.5 3.5 0 0 1 9 6.03V6a3 3 0 1 1 6 0v.04a3.5 3.5 0 0 1 3.24 5.65A4 4 0 0 1 16 19Z',\n },\n ],\n ['path', { d: 'M12 19v3' }],\n];\n\nexport default TreeDeciduous;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tree-palm\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgOGMwLTIuNzYtMi40Ni01LTUuNS01UzIgNS4yNCAyIDhoMmwxLTEgMSAxaDQiIC8+CiAgPHBhdGggZD0iTTEzIDcuMTRBNS44MiA1LjgyIDAgMCAxIDE2LjUgNmMzLjA0IDAgNS41IDIuMjQgNS41IDVoLTNsLTEtMS0xIDFoLTMiIC8+CiAgPHBhdGggZD0iTTUuODkgOS43MWMtMi4xNSAyLjE1LTIuMyA1LjQ3LS4zNSA3LjQzbDQuMjQtNC4yNS43LS43LjcxLS43MSAyLjEyLTIuMTJjLTEuOTUtMS45Ni01LjI3LTEuOC03LjQyLjM1IiAvPgogIDxwYXRoIGQ9Ik0xMSAxNS41Yy41IDIuNS0uMTcgNC41LTEgNi41aDRjMi01LjUtLjUtMTItMS0xNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tree-palm\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TreePalm: IconNode = [\n ['path', { d: 'M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4' }],\n ['path', { d: 'M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3' }],\n [\n 'path',\n {\n d: 'M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35',\n },\n ],\n ['path', { d: 'M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14' }],\n];\n\nexport default TreePalm;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tree-pine\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTQgMyAzLjNhMSAxIDAgMCAxLS43IDEuN0g0LjdhMSAxIDAgMCAxLS43LTEuN0w3IDE0aC0uM2ExIDEgMCAwIDEtLjctMS43TDkgOWgtLjJBMSAxIDAgMCAxIDggNy4zTDEyIDNsNCA0LjNhMSAxIDAgMCAxLS44IDEuN0gxNWwzIDMuM2ExIDEgMCAwIDEtLjcgMS43SDE3WiIgLz4KICA8cGF0aCBkPSJNMTIgMjJ2LTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tree-pine\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TreePine: IconNode = [\n [\n 'path',\n {\n d: 'm17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z',\n },\n ],\n ['path', { d: 'M12 22v-3' }],\n];\n\nexport default TreePine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trees\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiIgLz4KICA8cGF0aCBkPSJNNyAxNnY2IiAvPgogIDxwYXRoIGQ9Ik0xMyAxOXYzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trees\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trees: IconNode = [\n ['path', { d: 'M10 10v.2A3 3 0 0 1 8.9 16H5a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z' }],\n ['path', { d: 'M7 16v6' }],\n ['path', { d: 'M13 19v3' }],\n [\n 'path',\n {\n d: 'M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5',\n },\n ],\n];\n\nexport default Trees;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trello\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSI5IiB4PSI3IiB5PSI3IiAvPgogIDxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjUiIHg9IjE0IiB5PSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trello\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=trello instead. This icon will be removed in v1.0\n */\nconst Trello: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['rect', { width: '3', height: '9', x: '7', y: '7' }],\n ['rect', { width: '3', height: '5', x: '14', y: '7' }],\n];\n\nexport default Trello;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trending-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTdoNnYtNiIgLz4KICA8cGF0aCBkPSJtMjIgMTctOC41LTguNS01IDVMMiA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trending-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrendingDown: IconNode = [\n ['path', { d: 'M16 17h6v-6' }],\n ['path', { d: 'm22 17-8.5-8.5-5 5L2 7' }],\n];\n\nexport default TrendingDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trending-up-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuODI4IDE0LjgyOCAyMSAyMSIgLz4KICA8cGF0aCBkPSJNMjEgMTZ2NWgtNSIgLz4KICA8cGF0aCBkPSJtMjEgMy05IDktNC00LTYgNiIgLz4KICA8cGF0aCBkPSJNMjEgOFYzaC01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trending-up-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrendingUpDown: IconNode = [\n ['path', { d: 'M14.828 14.828 21 21' }],\n ['path', { d: 'M21 16v5h-5' }],\n ['path', { d: 'm21 3-9 9-4-4-6 6' }],\n ['path', { d: 'M21 8V3h-5' }],\n];\n\nexport default TrendingUpDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trending-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgN2g2djYiIC8+CiAgPHBhdGggZD0ibTIyIDctOC41IDguNS01LTVMMiAxNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/trending-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrendingUp: IconNode = [\n ['path', { d: 'M16 7h6v6' }],\n ['path', { d: 'm22 7-8.5 8.5-5-5L2 17' }],\n];\n\nexport default TrendingUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name triangle-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiIC8+CiAgPHBhdGggZD0iTTEyIDl2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TriangleAlert: IconNode = [\n ['path', { d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3' }],\n ['path', { d: 'M12 9v4' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default TriangleAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name triangle-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMTcgNC4xOTNhMiAyIDAgMCAxIDMuNjY2LjAxMyIgLz4KICA8cGF0aCBkPSJNMTQgMjFoMiIgLz4KICA8cGF0aCBkPSJtMTUuODc0IDcuNzQzIDEgMS43MzIiIC8+CiAgPHBhdGggZD0ibTE4Ljg0OSAxMi45NTIgMSAxLjczMiIgLz4KICA8cGF0aCBkPSJNMjEuODI0IDE4LjE4YTIgMiAwIDAgMS0xLjgzNSAyLjgyNCIgLz4KICA8cGF0aCBkPSJNNC4wMjQgMjFhMiAyIDAgMCAxLTEuODM5LTIuODM5IiAvPgogIDxwYXRoIGQ9Im01LjEzNiAxMi45NTItMSAxLjczMiIgLz4KICA8cGF0aCBkPSJNOCAyMWgyIiAvPgogIDxwYXRoIGQ9Im04LjEwMiA3Ljc0My0xIDEuNzMyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TriangleDashed: IconNode = [\n ['path', { d: 'M10.17 4.193a2 2 0 0 1 3.666.013' }],\n ['path', { d: 'M14 21h2' }],\n ['path', { d: 'm15.874 7.743 1 1.732' }],\n ['path', { d: 'm18.849 12.952 1 1.732' }],\n ['path', { d: 'M21.824 18.18a2 2 0 0 1-1.835 2.824' }],\n ['path', { d: 'M4.024 21a2 2 0 0 1-1.839-2.839' }],\n ['path', { d: 'm5.136 12.952-1 1.732' }],\n ['path', { d: 'M8 21h2' }],\n ['path', { d: 'm8.102 7.743-1 1.732' }],\n];\n\nexport default TriangleDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name triangle-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMThhMiAyIDAgMCAxLTIgMkgzYy0xLjEgMC0xLjMtLjYtLjQtMS4zTDIwLjQgNC4zYy45LS43IDEuNi0uNCAxLjYuN1oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/triangle-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TriangleRight: IconNode = [\n ['path', { d: 'M22 18a2 2 0 0 1-2 2H3c-1.1 0-1.3-.6-.4-1.3L20.4 4.3c.9-.7 1.6-.4 1.6.7Z' }],\n];\n\nexport default TriangleRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name triangle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Triangle: IconNode = [\n ['path', { d: 'M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z' }],\n];\n\nexport default Triangle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name truck-electric\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTlWN2EyIDIgMCAwIDAtMi0ySDkiIC8+CiAgPHBhdGggZD0iTTE1IDE5SDkiIC8+CiAgPHBhdGggZD0iTTE5IDE5aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MkwxOC4zIDkuMzhhMSAxIDAgMCAwLS43OC0uMzhIMTQiIC8+CiAgPHBhdGggZD0iTTIgMTN2NWExIDEgMCAwIDAgMSAxaDIiIC8+CiAgPHBhdGggZD0iTTQgMyAyLjE1IDUuMTVhLjQ5NS40OTUgMCAwIDAgLjM1Ljg2aDIuMTVhLjQ3LjQ3IDAgMCAxIC4zNS44NkwzIDkuMDIiIC8+CiAgPGNpcmNsZSBjeD0iMTciIGN5PSIxOSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iMTkiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/truck-electric\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TruckElectric: IconNode = [\n ['path', { d: 'M14 19V7a2 2 0 0 0-2-2H9' }],\n ['path', { d: 'M15 19H9' }],\n ['path', { d: 'M19 19h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 9.38a1 1 0 0 0-.78-.38H14' }],\n ['path', { d: 'M2 13v5a1 1 0 0 0 1 1h2' }],\n ['path', { d: 'M4 3 2.15 5.15a.495.495 0 0 0 .35.86h2.15a.47.47 0 0 1 .35.86L3 9.02' }],\n ['circle', { cx: '17', cy: '19', r: '2' }],\n ['circle', { cx: '7', cy: '19', r: '2' }],\n];\n\nexport default TruckElectric;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trophy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNC42NnYxLjYyNmEyIDIgMCAwIDAgLjk3NiAxLjY5NkE1IDUgMCAwIDEgMTcgMjEuOTc4IiAvPgogIDxwYXRoIGQ9Ik0xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4IiAvPgogIDxwYXRoIGQ9Ik00IDIyaDE2IiAvPgogIDxwYXRoIGQ9Ik02IDlhNiA2IDAgMCAwIDEyIDBWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXoiIC8+CiAgPHBhdGggZD0iTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trophy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trophy: IconNode = [\n ['path', { d: 'M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978' }],\n ['path', { d: 'M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978' }],\n ['path', { d: 'M18 9h1.5a1 1 0 0 0 0-5H18' }],\n ['path', { d: 'M4 22h16' }],\n ['path', { d: 'M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z' }],\n ['path', { d: 'M6 9H4.5a1 1 0 0 1 0-5H6' }],\n];\n\nexport default Trophy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name truck\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIiIC8+CiAgPHBhdGggZD0iTTE1IDE4SDkiIC8+CiAgPHBhdGggZD0iTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MjRsLTMuNDgtNC4zNUExIDEgMCAwIDAgMTcuNTIgOEgxNCIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE4IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSIxOCIgcj0iMiIgLz4KPC9zdmc+) - https://lucide.dev/icons/truck\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Truck: IconNode = [\n ['path', { d: 'M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2' }],\n ['path', { d: 'M15 18H9' }],\n [\n 'path',\n { d: 'M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14' },\n ],\n ['circle', { cx: '17', cy: '18', r: '2' }],\n ['circle', { cx: '7', cy: '18', r: '2' }],\n];\n\nexport default Truck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name turkish-lira\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNCA1IDkiIC8+CiAgPHBhdGggZD0ibTE1IDguNS0xMCA1IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmE5IDkgMCAwIDEtOSA5VjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/turkish-lira\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TurkishLira: IconNode = [\n ['path', { d: 'M15 4 5 9' }],\n ['path', { d: 'm15 8.5-10 5' }],\n ['path', { d: 'M18 12a9 9 0 0 1-9 9V3' }],\n];\n\nexport default TurkishLira;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name turntable\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTIuMDFoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xOCA4djRhOCA4IDAgMCAxLTEuMDcgNCIgLz4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjEyIiByPSI0IiAvPgogIDxyZWN0IHg9IjIiIHk9IjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/turntable\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Turntable: IconNode = [\n ['path', { d: 'M10 12.01h.01' }],\n ['path', { d: 'M18 8v4a8 8 0 0 1-1.07 4' }],\n ['circle', { cx: '10', cy: '12', r: '4' }],\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2' }],\n];\n\nexport default Turntable;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name turtle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTAgMiA0djNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhOCA4IDAgMSAwLTE2IDB2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtM2wyLTRoNFoiIC8+CiAgPHBhdGggZD0iTTQuODIgNy45IDggMTAiIC8+CiAgPHBhdGggZD0iTTE1LjE4IDcuOSAxMiAxMCIgLz4KICA8cGF0aCBkPSJNMTYuOTMgMTBIMjBhMiAyIDAgMCAxIDAgNEgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/turtle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Turtle: IconNode = [\n [\n 'path',\n {\n d: 'm12 10 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a8 8 0 1 0-16 0v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3l2-4h4Z',\n },\n ],\n ['path', { d: 'M4.82 7.9 8 10' }],\n ['path', { d: 'M15.18 7.9 12 10' }],\n ['path', { d: 'M16.93 10H20a2 2 0 0 1 0 4H2' }],\n];\n\nexport default Turtle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tv-minimal-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMDMzIDkuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NlY3LjY0OGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoiIC8+CiAgPHBhdGggZD0iTTcgMjFoMTAiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiB4PSIyIiB5PSIzIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tv-minimal-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TvMinimalPlay: IconNode = [\n [\n 'path',\n {\n d: 'M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z',\n },\n ],\n ['path', { d: 'M7 21h10' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n];\n\nexport default TvMinimalPlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tv-minimal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAyMWgxMCIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tv-minimal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TvMinimal: IconNode = [\n ['path', { d: 'M7 21h10' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n];\n\nexport default TvMinimal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tv\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMi01IDUtNS01IiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNSIgeD0iMiIgeT0iNyIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tv\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tv: IconNode = [\n ['path', { d: 'm17 2-5 5-5-5' }],\n ['rect', { width: '20', height: '15', x: '2', y: '7', rx: '2' }],\n];\n\nexport default Tv;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name twitch\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMkgzdjE2aDV2NGw0LTRoNWw0LTRWMnptLTEwIDlWN201IDRWNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/twitch\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=twitch instead. This icon will be removed in v1.0\n */\nconst Twitch: IconNode = [['path', { d: 'M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7' }]];\n\nexport default Twitch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name twitter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgNHMtLjcgMi4xLTIgMy40YzEuNiAxMC05LjQgMTcuMy0xOCAxMS42IDIuMi4xIDQuNC0uNiA2LTJDMyAxNS41LjUgOS42IDMgNWMyLjIgMi42IDUuNiA0LjEgOSA0LS45LTQuMiA0LTYuNiA3LTMuOCAxLjEgMCAzLTEuMiAzLTEuMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/twitter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=twitter instead. This icon will be removed in v1.0\n */\nconst Twitter: IconNode = [\n [\n 'path',\n {\n d: 'M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z',\n },\n ],\n];\n\nexport default Twitter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name type-outline\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTYuNWEuNS41IDAgMCAwIC41LjVoLjVhMiAyIDAgMCAxIDAgNEg5YTIgMiAwIDAgMSAwLTRoLjVhLjUuNSAwIDAgMCAuNS0uNXYtOWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVY4YTIgMiAwIDAgMS00IDBWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtNCAwdi0uNWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/type-outline\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TypeOutline: IconNode = [\n [\n 'path',\n {\n d: 'M14 16.5a.5.5 0 0 0 .5.5h.5a2 2 0 0 1 0 4H9a2 2 0 0 1 0-4h.5a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V8a2 2 0 0 1-4 0V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 1-4 0v-.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5Z',\n },\n ],\n];\n\nexport default TypeOutline;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name type\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNHYxNiIgLz4KICA8cGF0aCBkPSJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIiIC8+CiAgPHBhdGggZD0iTTkgMjBoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/type\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Type: IconNode = [\n ['path', { d: 'M12 4v16' }],\n ['path', { d: 'M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2' }],\n ['path', { d: 'M9 20h6' }],\n];\n\nexport default Type;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name umbrella-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2N2EyIDIgMCAwIDAgNCAwIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTE4LjY1NiAxM2gyLjMzNmExIDEgMCAwIDAgLjk3LTEuMjc0IDEwLjI4NCAxMC4yODQgMCAwIDAtMTIuMDctNy41MSIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik01Ljk2MSA1Ljk1N2ExMC4yOCAxMC4yOCAwIDAgMC0zLjkyMiA1Ljc2OUExIDEgMCAwIDAgMyAxM2gxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/umbrella-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UmbrellaOff: IconNode = [\n ['path', { d: 'M12 13v7a2 2 0 0 0 4 0' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M18.656 13h2.336a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-12.07-7.51' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M5.961 5.957a10.28 10.28 0 0 0-3.922 5.769A1 1 0 0 0 3 13h10' }],\n];\n\nexport default UmbrellaOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name umbrella\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2N2EyIDIgMCAwIDAgNCAwIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTIwLjk5MiAxM2ExIDEgMCAwIDAgLjk3LTEuMjc0IDEwLjI4NCAxMC4yODQgMCAwIDAtMTkuOTIzIDBBMSAxIDAgMCAwIDMgMTN6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/umbrella\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Umbrella: IconNode = [\n ['path', { d: 'M12 13v7a2 2 0 0 0 4 0' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M20.992 13a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-19.923 0A1 1 0 0 0 3 13z' }],\n];\n\nexport default Umbrella;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name underline\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA0djZhNiA2IDAgMCAwIDEyIDBWNCIgLz4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iMjAiIHkyPSIyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/underline\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Underline: IconNode = [\n ['path', { d: 'M6 4v6a6 6 0 0 0 12 0V4' }],\n ['line', { x1: '4', x2: '20', y1: '20', y2: '20' }],\n];\n\nexport default Underline;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name undo-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxNCA0IDlsNS01IiAvPgogIDxwYXRoIGQ9Ik00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/undo-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Undo2: IconNode = [\n ['path', { d: 'M9 14 4 9l5-5' }],\n ['path', { d: 'M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11' }],\n];\n\nexport default Undo2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name undo-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTdhOSA5IDAgMCAwLTE1LTYuN0wzIDEzIiAvPgogIDxwYXRoIGQ9Ik0zIDd2Nmg2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTciIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/undo-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UndoDot: IconNode = [\n ['path', { d: 'M21 17a9 9 0 0 0-15-6.7L3 13' }],\n ['path', { d: 'M3 7v6h6' }],\n ['circle', { cx: '12', cy: '17', r: '1' }],\n];\n\nexport default UndoDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name undo\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3djZoNiIgLz4KICA8cGF0aCBkPSJNMjEgMTdhOSA5IDAgMCAwLTktOSA5IDkgMCAwIDAtNiAyLjNMMyAxMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/undo\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Undo: IconNode = [\n ['path', { d: 'M3 7v6h6' }],\n ['path', { d: 'M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13' }],\n];\n\nexport default Undo;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name unfold-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTJoNiIgLz4KICA8cGF0aCBkPSJNOCAxMkgyIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTEyIDh2MiIgLz4KICA8cGF0aCBkPSJNMTIgMTR2MiIgLz4KICA8cGF0aCBkPSJNMTIgMjB2MiIgLz4KICA8cGF0aCBkPSJtMTkgMTUgMy0zLTMtMyIgLz4KICA8cGF0aCBkPSJtNSA5LTMgMyAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/unfold-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UnfoldHorizontal: IconNode = [\n ['path', { d: 'M16 12h6' }],\n ['path', { d: 'M8 12H2' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M12 8v2' }],\n ['path', { d: 'M12 14v2' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'm19 15 3-3-3-3' }],\n ['path', { d: 'm5 9-3 3 3 3' }],\n];\n\nexport default UnfoldHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name unfold-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTYiIC8+CiAgPHBhdGggZD0iTTEyIDhWMiIgLz4KICA8cGF0aCBkPSJNNCAxMkgyIiAvPgogIDxwYXRoIGQ9Ik0xMCAxMkg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMmgtMiIgLz4KICA8cGF0aCBkPSJNMjIgMTJoLTIiIC8+CiAgPHBhdGggZD0ibTE1IDE5LTMgMy0zLTMiIC8+CiAgPHBhdGggZD0ibTE1IDUtMy0zLTMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/unfold-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UnfoldVertical: IconNode = [\n ['path', { d: 'M12 22v-6' }],\n ['path', { d: 'M12 8V2' }],\n ['path', { d: 'M4 12H2' }],\n ['path', { d: 'M10 12H8' }],\n ['path', { d: 'M16 12h-2' }],\n ['path', { d: 'M22 12h-2' }],\n ['path', { d: 'm15 19-3 3-3-3' }],\n ['path', { d: 'm15 5-3-3-3 3' }],\n];\n\nexport default UnfoldVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ungroup\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI2IiB4PSI1IiB5PSI0IiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI2IiB4PSIxMSIgeT0iMTQiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ungroup\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ungroup: IconNode = [\n ['rect', { width: '8', height: '6', x: '5', y: '4', rx: '1' }],\n ['rect', { width: '8', height: '6', x: '11', y: '14', rx: '1' }],\n];\n\nexport default Ungroup;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name university\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTE4IDE2aC4wMSIgLz4KICA8cGF0aCBkPSJNMjIgN2ExIDEgMCAwIDAtMS0xaC0yYTIgMiAwIDAgMS0xLjE0My0uMzU5TDEzLjE0MyAyLjM2YTIgMiAwIDAgMC0yLjI4Ni0uMDAxTDYuMTQzIDUuNjRBMiAyIDAgMCAxIDUgNkgzYTEgMSAwIDAgMC0xIDF2MTJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yeiIgLz4KICA8cGF0aCBkPSJNNiAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTYgMTZoLjAxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/university\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst University: IconNode = [\n ['path', { d: 'M14 21v-3a2 2 0 0 0-4 0v3' }],\n ['path', { d: 'M18 12h.01' }],\n ['path', { d: 'M18 16h.01' }],\n [\n 'path',\n {\n d: 'M22 7a1 1 0 0 0-1-1h-2a2 2 0 0 1-1.143-.359L13.143 2.36a2 2 0 0 0-2.286-.001L6.143 5.64A2 2 0 0 1 5 6H3a1 1 0 0 0-1 1v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2z',\n },\n ],\n ['path', { d: 'M6 12h.01' }],\n ['path', { d: 'M6 16h.01' }],\n ['circle', { cx: '12', cy: '10', r: '2' }],\n];\n\nexport default University;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name unlink\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTguODQgMTIuMjUgMS43Mi0xLjcxaC0uMDJhNS4wMDQgNS4wMDQgMCAwIDAtLjEyLTcuMDcgNS4wMDYgNS4wMDYgMCAwIDAtNi45NSAwbC0xLjcyIDEuNzEiIC8+CiAgPHBhdGggZD0ibTUuMTcgMTEuNzUtMS43MSAxLjcxYTUuMDA0IDUuMDA0IDAgMCAwIC4xMiA3LjA3IDUuMDA2IDUuMDA2IDAgMCAwIDYuOTUgMGwxLjcxLTEuNzEiIC8+CiAgPGxpbmUgeDE9IjgiIHgyPSI4IiB5MT0iMiIgeTI9IjUiIC8+CiAgPGxpbmUgeDE9IjIiIHgyPSI1IiB5MT0iOCIgeTI9IjgiIC8+CiAgPGxpbmUgeDE9IjE2IiB4Mj0iMTYiIHkxPSIxOSIgeTI9IjIyIiAvPgogIDxsaW5lIHgxPSIxOSIgeDI9IjIyIiB5MT0iMTYiIHkyPSIxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/unlink\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Unlink: IconNode = [\n [\n 'path',\n {\n d: 'm18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71',\n },\n ],\n [\n 'path',\n { d: 'm5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71' },\n ],\n ['line', { x1: '8', x2: '8', y1: '2', y2: '5' }],\n ['line', { x1: '2', x2: '5', y1: '8', y2: '8' }],\n ['line', { x1: '16', x2: '16', y1: '19', y2: '22' }],\n ['line', { x1: '19', x2: '22', y1: '16', y2: '16' }],\n];\n\nexport default Unlink;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name unlink-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgN2gyYTUgNSAwIDAgMSAwIDEwaC0ybS02IDBIN0E1IDUgMCAwIDEgNyA3aDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/unlink-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Unlink2: IconNode = [['path', { d: 'M15 7h2a5 5 0 0 1 0 10h-2m-6 0H7A5 5 0 0 1 7 7h2' }]];\n\nexport default Unlink2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name unplug\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTkgNSAzLTMiIC8+CiAgPHBhdGggZD0ibTIgMjIgMy0zIiAvPgogIDxwYXRoIGQ9Ik02LjMgMjAuM2EyLjQgMi40IDAgMCAwIDMuNCAwTDEyIDE4bC02LTYtMi4zIDIuM2EyLjQgMi40IDAgMCAwIDAgMy40WiIgLz4KICA8cGF0aCBkPSJNNy41IDEzLjUgMTAgMTEiIC8+CiAgPHBhdGggZD0iTTEwLjUgMTYuNSAxMyAxNCIgLz4KICA8cGF0aCBkPSJtMTIgNiA2IDYgMi4zLTIuM2EyLjQgMi40IDAgMCAwIDAtMy40bC0yLjYtMi42YTIuNCAyLjQgMCAwIDAtMy40IDBaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/unplug\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Unplug: IconNode = [\n ['path', { d: 'm19 5 3-3' }],\n ['path', { d: 'm2 22 3-3' }],\n ['path', { d: 'M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z' }],\n ['path', { d: 'M7.5 13.5 10 11' }],\n ['path', { d: 'M10.5 16.5 13 14' }],\n ['path', { d: 'm12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z' }],\n];\n\nexport default Unplug;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name upload\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxMiIgLz4KICA8cGF0aCBkPSJtMTcgOC01LTUtNSA1IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/upload\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Upload: IconNode = [\n ['path', { d: 'M12 3v12' }],\n ['path', { d: 'm17 8-5-5-5 5' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4' }],\n];\n\nexport default Upload;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name usb\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjciIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjIwIiByPSIxIiAvPgogIDxwYXRoIGQ9Ik00LjcgMTkuMyAxOSA1IiAvPgogIDxwYXRoIGQ9Im0yMSAzLTMgMSAyIDJaIiAvPgogIDxwYXRoIGQ9Ik05LjI2IDcuNjggNSAxMmwyIDUiIC8+CiAgPHBhdGggZD0ibTEwIDE0IDUgMiAzLjUtMy41IiAvPgogIDxwYXRoIGQ9Im0xOCAxMiAxLTEgMSAxLTEgMVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/usb\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Usb: IconNode = [\n ['circle', { cx: '10', cy: '7', r: '1' }],\n ['circle', { cx: '4', cy: '20', r: '1' }],\n ['path', { d: 'M4.7 19.3 19 5' }],\n ['path', { d: 'm21 3-3 1 2 2Z' }],\n ['path', { d: 'M9.26 7.68 5 12l2 5' }],\n ['path', { d: 'm10 14 5 2 3.5-3.5' }],\n ['path', { d: 'm18 12 1-1 1 1-1 1Z' }],\n];\n\nexport default Usb;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTEgMiAyIDQtNCIgLz4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserCheck: IconNode = [\n ['path', { d: 'm16 11 2 2 4-4' }],\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n];\n\nexport default UserCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTVINmE0IDQgMCAwIDAtNCA0djIiIC8+CiAgPHBhdGggZD0ibTE0LjMwNSAxNi41My45MjMtLjM4MiIgLz4KICA8cGF0aCBkPSJtMTUuMjI4IDEzLjg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAxMi4yMjgtLjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xNi44NTIgMTcuNzcyLS4zODMuOTI0IiAvPgogIDxwYXRoIGQ9Im0xOS4xNDggMTIuMjI4LjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xOS41MyAxOC42OTYtLjM4Mi0uOTI0IiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTMuODUyLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTYuMTQ4LjkyNC4zODMiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxNSIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserCog: IconNode = [\n ['path', { d: 'M10 15H6a4 4 0 0 0-4 4v2' }],\n ['path', { d: 'm14.305 16.53.923-.382' }],\n ['path', { d: 'm15.228 13.852-.923-.383' }],\n ['path', { d: 'm16.852 12.228-.383-.923' }],\n ['path', { d: 'm16.852 17.772-.383.924' }],\n ['path', { d: 'm19.148 12.228.383-.923' }],\n ['path', { d: 'm19.53 18.696-.382-.924' }],\n ['path', { d: 'm20.772 13.852.924-.383' }],\n ['path', { d: 'm20.772 16.148.924.383' }],\n ['circle', { cx: '18', cy: '15', r: '3' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n];\n\nexport default UserCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTF2NiIgLz4KICA8cGF0aCBkPSJNMjAgMTNoMiIgLz4KICA8cGF0aCBkPSJNMyAyMXYtMmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDIuMDcyLjU3OCIgLz4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjciIHI9IjQiIC8+CiAgPGNpcmNsZSBjeD0iMjAiIGN5PSIxOSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserKey: IconNode = [\n ['path', { d: 'M20 11v6' }],\n ['path', { d: 'M20 13h2' }],\n ['path', { d: 'M3 21v-2a4 4 0 0 1 4-4h6a4 4 0 0 1 2.072.578' }],\n ['circle', { cx: '10', cy: '7', r: '4' }],\n ['circle', { cx: '20', cy: '19', r: '2' }],\n];\n\nexport default UserKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTZ2LTJhMiAyIDAgMCAwLTQgMHYyIiAvPgogIDxwYXRoIGQ9Ik05LjUgMTVIN2E0IDQgMCAwIDAtNCA0djIiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI3IiByPSI0IiAvPgogIDxyZWN0IHg9IjEzIiB5PSIxNiIgd2lkdGg9IjgiIGhlaWdodD0iNSIgcng9Ii44OTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserLock: IconNode = [\n ['path', { d: 'M19 16v-2a2 2 0 0 0-4 0v2' }],\n ['path', { d: 'M9.5 15H7a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '10', cy: '7', r: '4' }],\n ['rect', { x: '13', y: '16', width: '8', height: '5', rx: '.899' }],\n];\n\nexport default UserLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KICA8bGluZSB4MT0iMjIiIHgyPSIxNiIgeTE9IjExIiB5Mj0iMTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserMinus: IconNode = [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n ['line', { x1: '22', x2: '16', y1: '11', y2: '11' }],\n];\n\nexport default UserMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNSAxNUg3YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8cGF0aCBkPSJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6IiAvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iNyIgcj0iNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserPen: IconNode = [\n ['path', { d: 'M11.5 15H7a4 4 0 0 0-4 4v2' }],\n [\n 'path',\n {\n d: 'M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n ['circle', { cx: '10', cy: '7', r: '4' }],\n];\n\nexport default UserPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KICA8bGluZSB4MT0iMTkiIHgyPSIxOSIgeTE9IjgiIHkyPSIxNCIgLz4KICA8bGluZSB4MT0iMjIiIHgyPSIxNiIgeTE9IjExIiB5Mj0iMTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserPlus: IconNode = [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n ['line', { x1: '19', x2: '19', y1: '8', y2: '14' }],\n ['line', { x1: '22', x2: '16', y1: '11', y2: '11' }],\n];\n\nexport default UserPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxwYXRoIGQ9Im0xNiAxOSAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/user-round-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundCheck: IconNode = [\n ['path', { d: 'M2 21a8 8 0 0 1 13.292-6' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'm16 19 2 2 4-4' }],\n];\n\nexport default UserRoundCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuMzA1IDE5LjUzLjkyMy0uMzgyIiAvPgogIDxwYXRoIGQ9Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyIgLz4KICA8cGF0aCBkPSJtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAyMC43NzItLjM4My45MjQiIC8+CiAgPHBhdGggZD0ibTE5LjE0OCAxNS4yMjguMzgzLS45MjMiIC8+CiAgPHBhdGggZD0ibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQiIC8+CiAgPHBhdGggZD0iTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-round-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundCog: IconNode = [\n ['path', { d: 'm14.305 19.53.923-.382' }],\n ['path', { d: 'm15.228 16.852-.923-.383' }],\n ['path', { d: 'm16.852 15.228-.383-.923' }],\n ['path', { d: 'm16.852 20.772-.383.924' }],\n ['path', { d: 'm19.148 15.228.383-.923' }],\n ['path', { d: 'm19.53 21.696-.382-.924' }],\n ['path', { d: 'M2 21a8 8 0 0 1 10.434-7.62' }],\n ['path', { d: 'm20.772 16.852.924-.383' }],\n ['path', { d: 'm20.772 19.148.924.383' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default UserRoundCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTkgMTNoMiIgLz4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTIuODY4LTYuMzQ5IiAvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iOCIgcj0iNSIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjE5IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/user-round-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundKey: IconNode = [\n ['path', { d: 'M19 11v6' }],\n ['path', { d: 'M19 13h2' }],\n ['path', { d: 'M2 21a8 8 0 0 1 12.868-6.349' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['circle', { cx: '19', cy: '19', r: '2' }],\n];\n\nexport default UserRoundKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxwYXRoIGQ9Ik0yMiAxOWgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-round-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundMinus: IconNode = [\n ['path', { d: 'M2 21a8 8 0 0 1 13.292-6' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'M22 19h-6' }],\n];\n\nexport default UserRoundMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTAuODIxLTcuNDg3IiAvPgogIDxwYXRoIGQ9Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/user-round-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundPen: IconNode = [\n ['path', { d: 'M2 21a8 8 0 0 1 10.821-7.487' }],\n [\n 'path',\n {\n d: 'M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n];\n\nexport default UserRoundPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNnY2IiAvPgogIDxwYXRoIGQ9Ik0yMiAxOWgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-round-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundPlus: IconNode = [\n ['path', { d: 'M2 21a8 8 0 0 1 13.292-6' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'M19 16v6' }],\n ['path', { d: 'M22 19h-6' }],\n];\n\nexport default UserRoundPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjgiIHI9IjUiIC8+CiAgPHBhdGggZD0iTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTIyIDIyLTEuOS0xLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-round-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundSearch: IconNode = [\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'M2 21a8 8 0 0 1 10.434-7.62' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['path', { d: 'm22 22-1.9-1.9' }],\n];\n\nexport default UserRoundSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTEuODczLTciIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxwYXRoIGQ9Im0xNyAxNyA1IDUiIC8+CiAgPHBhdGggZD0ibTIyIDE3LTUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-round-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundX: IconNode = [\n ['path', { d: 'M2 21a8 8 0 0 1 11.873-7' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'm17 17 5 5' }],\n ['path', { d: 'm22 17-5 5' }],\n];\n\nexport default UserRoundX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjgiIHI9IjUiIC8+CiAgPHBhdGggZD0iTTIwIDIxYTggOCAwIDAgMC0xNiAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/user-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRound: IconNode = [\n ['circle', { cx: '12', cy: '8', r: '5' }],\n ['path', { d: 'M20 21a8 8 0 0 0-16 0' }],\n];\n\nexport default UserRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjciIHI9IjQiIC8+CiAgPHBhdGggZD0iTTEwLjMgMTVIN2E0IDQgMCAwIDAtNCA0djIiIC8+CiAgPGNpcmNsZSBjeD0iMTciIGN5PSIxNyIgcj0iMyIgLz4KICA8cGF0aCBkPSJtMjEgMjEtMS45LTEuOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserSearch: IconNode = [\n ['circle', { cx: '10', cy: '7', r: '4' }],\n ['path', { d: 'M10.3 15H7a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '17', cy: '17', r: '3' }],\n ['path', { d: 'm21 21-1.9-1.9' }],\n];\n\nexport default UserSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuMDUxIDEyLjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2NmwtMS4xNTYtMS4xNTNhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiIgLz4KICA8cGF0aCBkPSJNOCAxNUg3YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserStar: IconNode = [\n [\n 'path',\n {\n d: 'M16.051 12.616a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.866l-1.156-1.153a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z',\n },\n ],\n ['path', { d: 'M8 15H7a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '10', cy: '7', r: '4' }],\n];\n\nexport default UserStar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KICA8bGluZSB4MT0iMTciIHgyPSIyMiIgeTE9IjgiIHkyPSIxMyIgLz4KICA8bGluZSB4MT0iMjIiIHgyPSIxNyIgeTE9IjgiIHkyPSIxMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserX: IconNode = [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n ['line', { x1: '17', x2: '22', y1: '8', y2: '13' }],\n ['line', { x1: '22', x2: '17', y1: '8', y2: '13' }],\n];\n\nexport default UserX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst User: IconNode = [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '12', cy: '7', r: '4' }],\n];\n\nexport default User;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name users-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMjFhOCA4IDAgMCAwLTE2IDAiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxwYXRoIGQ9Ik0yMiAyMGMwLTMuMzctMi02LjUtNC04YTUgNSAwIDAgMC0uNDUtOC4zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/users-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UsersRound: IconNode = [\n ['path', { d: 'M18 21a8 8 0 0 0-16 0' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3' }],\n];\n\nexport default UsersRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name users\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8cGF0aCBkPSJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQiIC8+CiAgPHBhdGggZD0iTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODciIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/users\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Users: IconNode = [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }],\n ['path', { d: 'M16 3.128a4 4 0 0 1 0 7.744' }],\n ['path', { d: 'M22 21v-2a4 4 0 0 0-3-3.87' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n];\n\nexport default Users;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name utensils-crossed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMi0yLjMgMi4zYTMgMyAwIDAgMCAwIDQuMmwxLjggMS44YTMgMyAwIDAgMCA0LjIgMEwyMiA4IiAvPgogIDxwYXRoIGQ9Ik0xNSAxNSAzLjMgMy4zYTQuMiA0LjIgMCAwIDAgMCA2bDcuMyA3LjNjLjcuNyAyIC43IDIuOCAwTDE1IDE1Wm0wIDAgNyA3IiAvPgogIDxwYXRoIGQ9Im0yLjEgMjEuOCA2LjQtNi4zIiAvPgogIDxwYXRoIGQ9Im0xOSA1LTcgNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/utensils-crossed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UtensilsCrossed: IconNode = [\n ['path', { d: 'm16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8' }],\n ['path', { d: 'M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7' }],\n ['path', { d: 'm2.1 21.8 6.4-6.3' }],\n ['path', { d: 'm19 5-7 7' }],\n];\n\nexport default UtensilsCrossed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name utensils\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAydjdjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWMiIgLz4KICA8cGF0aCBkPSJNNyAydjIwIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNVYyYTUgNSAwIDAgMC01IDV2NmMwIDEuMS45IDIgMiAyaDNabTAgMHY3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/utensils\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Utensils: IconNode = [\n ['path', { d: 'M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2' }],\n ['path', { d: 'M7 2v20' }],\n ['path', { d: 'M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7' }],\n];\n\nexport default Utensils;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name utility-pole\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KICA8cGF0aCBkPSJNMiA1aDIwIiAvPgogIDxwYXRoIGQ9Ik0zIDN2MiIgLz4KICA8cGF0aCBkPSJNNyAzdjIiIC8+CiAgPHBhdGggZD0iTTE3IDN2MiIgLz4KICA8cGF0aCBkPSJNMjEgM3YyIiAvPgogIDxwYXRoIGQ9Im0xOSA1LTcgNy03LTciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/utility-pole\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UtilityPole: IconNode = [\n ['path', { d: 'M12 2v20' }],\n ['path', { d: 'M2 5h20' }],\n ['path', { d: 'M3 3v2' }],\n ['path', { d: 'M7 3v2' }],\n ['path', { d: 'M17 3v2' }],\n ['path', { d: 'M21 3v2' }],\n ['path', { d: 'm19 5-7 7-7-7' }],\n];\n\nexport default UtilityPole;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name van\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNnY1YTEgMSAwIDAgMCAxIDFoNi4xMDJhMSAxIDAgMCAxIC43MTIuMjk4bC44OTguOTFhMSAxIDAgMCAxIC4yODguNzAyVjE3YTEgMSAwIDAgMS0xIDFoLTMiIC8+CiAgPHBhdGggZD0iTTUgMThIM2ExIDEgMCAwIDEtMS0xVjhhMiAyIDAgMCAxIDItMmgxMmMxLjEgMCAyLjEuOCAyLjQgMS44bDEuMTc2IDQuMiIgLz4KICA8cGF0aCBkPSJNOSAxOGg1IiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iMTgiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iNyIgY3k9IjE4IiByPSIyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/van\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Van: IconNode = [\n [\n 'path',\n {\n d: 'M13 6v5a1 1 0 0 0 1 1h6.102a1 1 0 0 1 .712.298l.898.91a1 1 0 0 1 .288.702V17a1 1 0 0 1-1 1h-3',\n },\n ],\n ['path', { d: 'M5 18H3a1 1 0 0 1-1-1V8a2 2 0 0 1 2-2h12c1.1 0 2.1.8 2.4 1.8l1.176 4.2' }],\n ['path', { d: 'M9 18h5' }],\n ['circle', { cx: '16', cy: '18', r: '2' }],\n ['circle', { cx: '7', cy: '18', r: '2' }],\n];\n\nexport default Van;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name variable\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyMXMtNC0zLTQtOSA0LTkgNC05IiAvPgogIDxwYXRoIGQ9Ik0xNiAzczQgMyA0IDktNCA5LTQgOSIgLz4KICA8bGluZSB4MT0iMTUiIHgyPSI5IiB5MT0iOSIgeTI9IjE1IiAvPgogIDxsaW5lIHgxPSI5IiB4Mj0iMTUiIHkxPSI5IiB5Mj0iMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/variable\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Variable: IconNode = [\n ['path', { d: 'M8 21s-4-3-4-9 4-9 4-9' }],\n ['path', { d: 'M16 3s4 3 4 9-4 9-4 9' }],\n ['line', { x1: '15', x2: '9', y1: '9', y2: '15' }],\n ['line', { x1: '9', x2: '15', y1: '9', y2: '15' }],\n];\n\nexport default Variable;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vault\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8cGF0aCBkPSJtNy45IDcuOSAyLjcgMi43IiAvPgogIDxjaXJjbGUgY3g9IjE2LjUiIGN5PSI3LjUiIHI9Ii41IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPHBhdGggZD0ibTEzLjQgMTAuNiAyLjctMi43IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjE2LjUiIHI9Ii41IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPHBhdGggZD0ibTcuOSAxNi4xIDIuNy0yLjciIC8+CiAgPGNpcmNsZSBjeD0iMTYuNSIgY3k9IjE2LjUiIHI9Ii41IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPHBhdGggZD0ibTEzLjQgMTMuNCAyLjcgMi43IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/vault\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Vault: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['circle', { cx: '7.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n ['path', { d: 'm7.9 7.9 2.7 2.7' }],\n ['circle', { cx: '16.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n ['path', { d: 'm13.4 10.6 2.7-2.7' }],\n ['circle', { cx: '7.5', cy: '16.5', r: '.5', fill: 'currentColor' }],\n ['path', { d: 'm7.9 16.1 2.7-2.7' }],\n ['circle', { cx: '16.5', cy: '16.5', r: '.5', fill: 'currentColor' }],\n ['path', { d: 'm13.4 13.4 2.7 2.7' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default Vault;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vector-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuNSA3YTI0IDI0IDAgMCAxIDAgMTAiIC8+CiAgPHBhdGggZD0iTTQuNSA3YTI0IDI0IDAgMCAwIDAgMTAiIC8+CiAgPHBhdGggZD0iTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwIiAvPgogIDxwYXRoIGQ9Ik03IDQuNWEyNCAyNCAwIDAgMSAxMCAwIiAvPgogIDxyZWN0IHg9IjE3IiB5PSIxNyIgd2lkdGg9IjUiIGhlaWdodD0iNSIgcng9IjEiIC8+CiAgPHJlY3QgeD0iMTciIHk9IjIiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjIiIHk9IjE3IiB3aWR0aD0iNSIgaGVpZ2h0PSI1IiByeD0iMSIgLz4KICA8cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iNSIgaGVpZ2h0PSI1IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/vector-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VectorSquare: IconNode = [\n ['path', { d: 'M19.5 7a24 24 0 0 1 0 10' }],\n ['path', { d: 'M4.5 7a24 24 0 0 0 0 10' }],\n ['path', { d: 'M7 19.5a24 24 0 0 0 10 0' }],\n ['path', { d: 'M7 4.5a24 24 0 0 1 10 0' }],\n ['rect', { x: '17', y: '17', width: '5', height: '5', rx: '1' }],\n ['rect', { x: '17', y: '2', width: '5', height: '5', rx: '1' }],\n ['rect', { x: '2', y: '17', width: '5', height: '5', rx: '1' }],\n ['rect', { x: '2', y: '2', width: '5', height: '5', rx: '1' }],\n];\n\nexport default VectorSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vegan\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgOHE2IDAgNi02LTYgMC02IDYiIC8+CiAgPHBhdGggZD0iTTE3LjQxIDMuNTlhMTAgMTAgMCAxIDAgMyAzIiAvPgogIDxwYXRoIGQ9Ik0yIDJhMjYuNiAyNi42IDAgMCAxIDEwIDIwYy45LTYuODIgMS41LTkuNSA0LTE0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/vegan\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Vegan: IconNode = [\n ['path', { d: 'M16 8q6 0 6-6-6 0-6 6' }],\n ['path', { d: 'M17.41 3.59a10 10 0 1 0 3 3' }],\n ['path', { d: 'M2 2a26.6 26.6 0 0 1 10 20c.9-6.82 1.5-9.5 4-14' }],\n];\n\nexport default Vegan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name venetian-mask\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTFjLTEuNSAwLTIuNS41LTMgMiIgLz4KICA8cGF0aCBkPSJNNCA2YTIgMiAwIDAgMC0yIDJ2NGE1IDUgMCAwIDAgNSA1IDggOCAwIDAgMSA1IDIgOCA4IDAgMCAxIDUtMiA1IDUgMCAwIDAgNS01VjhhMiAyIDAgMCAwLTItMmgtM2E4IDggMCAwIDAtNSAyIDggOCAwIDAgMC01LTJ6IiAvPgogIDxwYXRoIGQ9Ik02IDExYzEuNSAwIDIuNS41IDMgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/venetian-mask\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VenetianMask: IconNode = [\n ['path', { d: 'M18 11c-1.5 0-2.5.5-3 2' }],\n [\n 'path',\n {\n d: 'M4 6a2 2 0 0 0-2 2v4a5 5 0 0 0 5 5 8 8 0 0 1 5 2 8 8 0 0 1 5-2 5 5 0 0 0 5-5V8a2 2 0 0 0-2-2h-3a8 8 0 0 0-5 2 8 8 0 0 0-5-2z',\n },\n ],\n ['path', { d: 'M6 11c1.5 0 2.5.5 3 2' }],\n];\n\nexport default VenetianMask;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name venus-and-mars\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjBoNCIgLz4KICA8cGF0aCBkPSJNMTIgMTZ2NiIgLz4KICA8cGF0aCBkPSJNMTcgMmg0djQiIC8+CiAgPHBhdGggZD0ibTIxIDItNS40NiA1LjQ2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTEiIHI9IjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/venus-and-mars\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VenusAndMars: IconNode = [\n ['path', { d: 'M10 20h4' }],\n ['path', { d: 'M12 16v6' }],\n ['path', { d: 'M17 2h4v4' }],\n ['path', { d: 'm21 2-5.46 5.46' }],\n ['circle', { cx: '12', cy: '11', r: '5' }],\n];\n\nexport default VenusAndMars;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name venus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTV2NyIgLz4KICA8cGF0aCBkPSJNOSAxOWg2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iOSIgcj0iNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/venus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Venus: IconNode = [\n ['path', { d: 'M12 15v7' }],\n ['path', { d: 'M9 19h6' }],\n ['circle', { cx: '12', cy: '9', r: '6' }],\n];\n\nexport default Venus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vibrate-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiA4IDIgMi0yIDIgMiAyLTIgMiIgLz4KICA8cGF0aCBkPSJtMjIgOC0yIDIgMiAyLTIgMiAyIDIiIC8+CiAgPHBhdGggZD0iTTggOHYxMGMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMXYtMiIgLz4KICA8cGF0aCBkPSJNMTYgMTAuMzRWNmMwLS41NS0uNDUtMS0xLTFoLTQuMzQiIC8+CiAgPGxpbmUgeDE9IjIiIHgyPSIyMiIgeTE9IjIiIHkyPSIyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/vibrate-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VibrateOff: IconNode = [\n ['path', { d: 'm2 8 2 2-2 2 2 2-2 2' }],\n ['path', { d: 'm22 8-2 2 2 2-2 2 2 2' }],\n ['path', { d: 'M8 8v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2' }],\n ['path', { d: 'M16 10.34V6c0-.55-.45-1-1-1h-4.34' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default VibrateOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vibrate\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiA4IDIgMi0yIDIgMiAyLTIgMiIgLz4KICA8cGF0aCBkPSJtMjIgOC0yIDIgMiAyLTIgMiAyIDIiIC8+CiAgPHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjUiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/vibrate\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Vibrate: IconNode = [\n ['path', { d: 'm2 8 2 2-2 2 2 2-2 2' }],\n ['path', { d: 'm22 8-2 2 2 2-2 2 2 2' }],\n ['rect', { width: '8', height: '14', x: '8', y: '5', rx: '1' }],\n];\n\nexport default Vibrate;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name video-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNjYgNkgxNGEyIDIgMCAwIDEgMiAydjIuNWw1LjI0OC0zLjA2MkEuNS41IDAgMCAxIDIyIDcuODd2OC4xOTYiIC8+CiAgPHBhdGggZD0iTTE2IDE2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/video-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VideoOff: IconNode = [\n ['path', { d: 'M10.66 6H14a2 2 0 0 1 2 2v2.5l5.248-3.062A.5.5 0 0 1 22 7.87v8.196' }],\n ['path', { d: 'M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default VideoOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name video\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTMgNS4yMjMgMy40ODJhLjUuNSAwIDAgMCAuNzc3LS40MTZWNy44N2EuNS41IDAgMCAwLS43NTItLjQzMkwxNiAxMC41IiAvPgogIDxyZWN0IHg9IjIiIHk9IjYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/video\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Video: IconNode = [\n ['path', { d: 'm16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5' }],\n ['rect', { x: '2', y: '6', width: '14', height: '12', rx: '2' }],\n];\n\nexport default Video;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name videotape\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yIDhoMjAiIC8+CiAgPGNpcmNsZSBjeD0iOCIgY3k9IjE0IiByPSIyIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxNCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/videotape\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Videotape: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M2 8h20' }],\n ['circle', { cx: '8', cy: '14', r: '2' }],\n ['path', { d: 'M8 12h8' }],\n ['circle', { cx: '16', cy: '14', r: '2' }],\n];\n\nexport default Videotape;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name view\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTd2MmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtMiIgLz4KICA8cGF0aCBkPSJNMjEgN1Y1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMSIgLz4KICA8cGF0aCBkPSJNMTguOTQ0IDEyLjMzYTEgMSAwIDAgMCAwLS42NiA3LjUgNy41IDAgMCAwLTEzLjg4OCAwIDEgMSAwIDAgMCAwIC42NiA3LjUgNy41IDAgMCAwIDEzLjg4OCAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/view\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst View: IconNode = [\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M21 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n [\n 'path',\n {\n d: 'M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0',\n },\n ],\n];\n\nexport default View;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name voicemail\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTIiIHI9IjQiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxMiIgcj0iNCIgLz4KICA8bGluZSB4MT0iNiIgeDI9IjE4IiB5MT0iMTYiIHkyPSIxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/voicemail\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Voicemail: IconNode = [\n ['circle', { cx: '6', cy: '12', r: '4' }],\n ['circle', { cx: '18', cy: '12', r: '4' }],\n ['line', { x1: '6', x2: '18', y1: '16', y2: '16' }],\n];\n\nexport default Voicemail;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volleyball\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMSA3LjFhMTYuNTUgMTYuNTUgMCAwIDEgMTAuOSA0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmExMi42IDEyLjYgMCAwIDEtOC43IDUiIC8+CiAgPHBhdGggZD0iTTE2LjggMTMuNmExNi41NSAxNi41NSAwIDAgMS05IDcuNSIgLz4KICA8cGF0aCBkPSJNMjAuNyAxN2ExMi44IDEyLjggMCAwIDAtOC43LTUgMTMuMyAxMy4zIDAgMCAxIDAtMTAiIC8+CiAgPHBhdGggZD0iTTYuMyAzLjhhMTYuNTUgMTYuNTUgMCAwIDAgMS45IDExLjUiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volleyball\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Volleyball: IconNode = [\n ['path', { d: 'M11.1 7.1a16.55 16.55 0 0 1 10.9 4' }],\n ['path', { d: 'M12 12a12.6 12.6 0 0 1-8.7 5' }],\n ['path', { d: 'M16.8 13.6a16.55 16.55 0 0 1-9 7.5' }],\n ['path', { d: 'M20.7 17a12.8 12.8 0 0 0-8.7-5 13.3 13.3 0 0 1 0-10' }],\n ['path', { d: 'M6.3 3.8a16.55 16.55 0 0 0 1.9 11.5' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Volleyball;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPHBhdGggZD0iTTE2IDlhNSA1IDAgMCAxIDAgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/volume-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Volume1: IconNode = [\n [\n 'path',\n {\n d: 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',\n },\n ],\n ['path', { d: 'M16 9a5 5 0 0 1 0 6' }],\n];\n\nexport default Volume1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPHBhdGggZD0iTTE2IDlhNSA1IDAgMCAxIDAgNiIgLz4KICA8cGF0aCBkPSJNMTkuMzY0IDE4LjM2NGE5IDkgMCAwIDAgMC0xMi43MjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Volume2: IconNode = [\n [\n 'path',\n {\n d: 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',\n },\n ],\n ['path', { d: 'M16 9a5 5 0 0 1 0 6' }],\n ['path', { d: 'M19.364 18.364a9 9 0 0 0 0-12.728' }],\n];\n\nexport default Volume2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgOWE1IDUgMCAwIDEgLjk1IDIuMjkzIiAvPgogIDxwYXRoIGQ9Ik0xOS4zNjQgNS42MzZhOSA5IDAgMCAxIDEuODg5IDkuOTYiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJtNyA3LS41ODcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4VjExIiAvPgogIDxwYXRoIGQ9Ik05LjgyOCA0LjE3MkEuNjg2LjY4NiAwIDAgMSAxMSA0LjY1N3YuNjg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/volume-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VolumeOff: IconNode = [\n ['path', { d: 'M16 9a5 5 0 0 1 .95 2.293' }],\n ['path', { d: 'M19.364 5.636a9 9 0 0 1 1.889 9.96' }],\n ['path', { d: 'm2 2 20 20' }],\n [\n 'path',\n {\n d: 'm7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11',\n },\n ],\n ['path', { d: 'M9.828 4.172A.686.686 0 0 1 11 4.657v.686' }],\n];\n\nexport default VolumeOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPGxpbmUgeDE9IjIyIiB4Mj0iMTYiIHkxPSI5IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjE2IiB4Mj0iMjIiIHkxPSI5IiB5Mj0iMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VolumeX: IconNode = [\n [\n 'path',\n {\n d: 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',\n },\n ],\n ['line', { x1: '22', x2: '16', y1: '9', y2: '15' }],\n ['line', { x1: '16', x2: '22', y1: '9', y2: '15' }],\n];\n\nexport default VolumeX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vote\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgogIDxwYXRoIGQ9Ik01IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1oiIC8+CiAgPHBhdGggZD0iTTIyIDE5SDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/vote\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Vote: IconNode = [\n ['path', { d: 'm9 12 2 2 4-4' }],\n ['path', { d: 'M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z' }],\n ['path', { d: 'M22 19H2' }],\n];\n\nexport default Vote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Volume: IconNode = [\n [\n 'path',\n {\n d: 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',\n },\n ],\n];\n\nexport default Volume;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wallet-cards\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDlhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAyIiAvPgogIDxwYXRoIGQ9Ik0zIDExaDNjLjggMCAxLjYuMyAyLjEuOWwxLjEuOWMxLjYgMS42IDQuMSAxLjYgNS43IDBsMS4xLS45Yy41LS41IDEuMy0uOSAyLjEtLjlIMjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wallet-cards\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WalletCards: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2' }],\n [\n 'path',\n { d: 'M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21' },\n ],\n];\n\nexport default WalletCards;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wallet-minimal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTRoLjAxIiAvPgogIDxwYXRoIGQ9Ik03IDdoMTJhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wallet-minimal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WalletMinimal: IconNode = [\n ['path', { d: 'M17 14h.01' }],\n ['path', { d: 'M7 7h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14' }],\n];\n\nexport default WalletMinimal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wallet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIiAvPgogIDxwYXRoIGQ9Ik0zIDV2MTRhMiAyIDAgMCAwIDIgMmgxNWExIDEgMCAwIDAgMS0xdi00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wallet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wallet: IconNode = [\n [\n 'path',\n {\n d: 'M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1',\n },\n ],\n ['path', { d: 'M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4' }],\n];\n\nexport default Wallet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wallpaper\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJNOCAyMWg4IiAvPgogIDxwYXRoIGQ9Im05IDE3IDYuMS02LjFhMiAyIDAgMCAxIDIuODEuMDFMMjIgMTUiIC8+CiAgPGNpcmNsZSBjeD0iOCIgY3k9IjkiIHI9IjIiIC8+CiAgPHJlY3QgeD0iMiIgeT0iMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wallpaper\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wallpaper: IconNode = [\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n ['path', { d: 'm9 17 6.1-6.1a2 2 0 0 1 2.81.01L22 15' }],\n ['circle', { cx: '8', cy: '9', r: '2' }],\n ['rect', { x: '2', y: '3', width: '20', height: '14', rx: '2' }],\n];\n\nexport default Wallpaper;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wand-sparkles\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNjQgMy42NC0xLjI4LTEuMjhhMS4yMSAxLjIxIDAgMCAwLTEuNzIgMEwyLjM2IDE4LjY0YTEuMjEgMS4yMSAwIDAgMCAwIDEuNzJsMS4yOCAxLjI4YTEuMiAxLjIgMCAwIDAgMS43MiAwTDIxLjY0IDUuMzZhMS4yIDEuMiAwIDAgMCAwLTEuNzIiIC8+CiAgPHBhdGggZD0ibTE0IDcgMyAzIiAvPgogIDxwYXRoIGQ9Ik01IDZ2NCIgLz4KICA8cGF0aCBkPSJNMTkgMTR2NCIgLz4KICA8cGF0aCBkPSJNMTAgMnYyIiAvPgogIDxwYXRoIGQ9Ik03IDhIMyIgLz4KICA8cGF0aCBkPSJNMjEgMTZoLTQiIC8+CiAgPHBhdGggZD0iTTExIDNIOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wand-sparkles\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WandSparkles: IconNode = [\n [\n 'path',\n {\n d: 'm21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72',\n },\n ],\n ['path', { d: 'm14 7 3 3' }],\n ['path', { d: 'M5 6v4' }],\n ['path', { d: 'M19 14v4' }],\n ['path', { d: 'M10 2v2' }],\n ['path', { d: 'M7 8H3' }],\n ['path', { d: 'M21 16h-4' }],\n ['path', { d: 'M11 3H9' }],\n];\n\nexport default WandSparkles;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wand\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNFYyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNnYtMiIgLz4KICA8cGF0aCBkPSJNOCA5aDIiIC8+CiAgPHBhdGggZD0iTTIwIDloMiIgLz4KICA8cGF0aCBkPSJNMTcuOCAxMS44IDE5IDEzIiAvPgogIDxwYXRoIGQ9Ik0xNSA5aC4wMSIgLz4KICA8cGF0aCBkPSJNMTcuOCA2LjIgMTkgNSIgLz4KICA8cGF0aCBkPSJtMyAyMSA5LTkiIC8+CiAgPHBhdGggZD0iTTEyLjIgNi4yIDExIDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wand\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wand: IconNode = [\n ['path', { d: 'M15 4V2' }],\n ['path', { d: 'M15 16v-2' }],\n ['path', { d: 'M8 9h2' }],\n ['path', { d: 'M20 9h2' }],\n ['path', { d: 'M17.8 11.8 19 13' }],\n ['path', { d: 'M15 9h.01' }],\n ['path', { d: 'M17.8 6.2 19 5' }],\n ['path', { d: 'm3 21 9-9' }],\n ['path', { d: 'M12.2 6.2 11 5' }],\n];\n\nexport default Wand;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name warehouse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMjFWMTBhMSAxIDAgMCAwLTEtMUg3YTEgMSAwIDAgMC0xIDF2MTEiIC8+CiAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDEuMTMyLTEuODAzbDcuOTUtMy45NzRhMiAyIDAgMCAxIDEuODM3IDBsNy45NDggMy45NzRBMiAyIDAgMCAxIDIyIDh6IiAvPgogIDxwYXRoIGQ9Ik02IDEzaDEyIiAvPgogIDxwYXRoIGQ9Ik02IDE3aDEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/warehouse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Warehouse: IconNode = [\n ['path', { d: 'M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11' }],\n [\n 'path',\n {\n d: 'M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z',\n },\n ],\n ['path', { d: 'M6 13h12' }],\n ['path', { d: 'M6 17h12' }],\n];\n\nexport default Warehouse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name washing-machine\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA2aDMiIC8+CiAgPHBhdGggZD0iTTE3IDZoLjAxIiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIyMCIgeD0iMyIgeT0iMiIgcng9IjIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMyIgcj0iNSIgLz4KICA8cGF0aCBkPSJNMTIgMThhMi41IDIuNSAwIDAgMCAwLTUgMi41IDIuNSAwIDAgMSAwLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/washing-machine\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WashingMachine: IconNode = [\n ['path', { d: 'M3 6h3' }],\n ['path', { d: 'M17 6h.01' }],\n ['rect', { width: '18', height: '20', x: '3', y: '2', rx: '2' }],\n ['circle', { cx: '12', cy: '13', r: '5' }],\n ['path', { d: 'M12 18a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 1 0-5' }],\n];\n\nexport default WashingMachine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name watch\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTB2Mi4ybDEuNiAxIiAvPgogIDxwYXRoIGQ9Im0xNi4xMyA3LjY2LS44MS00LjA1YTIgMiAwIDAgMC0yLTEuNjFoLTIuNjhhMiAyIDAgMCAwLTIgMS42MWwtLjc4IDQuMDUiIC8+CiAgPHBhdGggZD0ibTcuODggMTYuMzYuOCA0YTIgMiAwIDAgMCAyIDEuNjFoMi43MmEyIDIgMCAwIDAgMi0xLjYxbC44MS00LjA1IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/watch\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Watch: IconNode = [\n ['path', { d: 'M12 10v2.2l1.6 1' }],\n ['path', { d: 'm16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05' }],\n ['path', { d: 'm7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05' }],\n ['circle', { cx: '12', cy: '12', r: '6' }],\n];\n\nexport default Watch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name waves-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTBMMTIgMiIgLz4KICA8cGF0aCBkPSJNMTYgNkwxMiAxMEw4IDYiIC8+CiAgPHBhdGggZD0iTTIgMTVDMi42IDE1LjUgMy4yIDE2IDQuNSAxNkM3IDE2IDcgMTQgOS41IDE0QzEyLjEgMTQgMTEuOSAxNiAxNC41IDE2QzE3IDE2IDE3IDE0IDE5LjUgMTRDMjAuOCAxNCAyMS40IDE0LjUgMjIgMTUiIC8+CiAgPHBhdGggZD0iTTIgMjFDMi42IDIxLjUgMy4yIDIyIDQuNSAyMkM3IDIyIDcgMjAgOS41IDIwQzEyLjEgMjAgMTEuOSAyMiAxNC41IDIyQzE3IDIyIDE3IDIwIDE5LjUgMjBDMjAuOCAyMCAyMS40IDIwLjUgMjIgMjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/waves-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WavesArrowDown: IconNode = [\n ['path', { d: 'M12 10L12 2' }],\n ['path', { d: 'M16 6L12 10L8 6' }],\n [\n 'path',\n {\n d: 'M2 15C2.6 15.5 3.2 16 4.5 16C7 16 7 14 9.5 14C12.1 14 11.9 16 14.5 16C17 16 17 14 19.5 14C20.8 14 21.4 14.5 22 15',\n },\n ],\n [\n 'path',\n {\n d: 'M2 21C2.6 21.5 3.2 22 4.5 22C7 22 7 20 9.5 20C12.1 20 11.9 22 14.5 22C17 22 17 20 19.5 20C20.8 20 21.4 20.5 22 21',\n },\n ],\n];\n\nexport default WavesArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name waves-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY4IiAvPgogIDxwYXRoIGQ9Ik0yIDE1Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEiIC8+CiAgPHBhdGggZD0iTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSIgLz4KICA8cGF0aCBkPSJtOCA2IDQtNCA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/waves-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WavesArrowUp: IconNode = [\n ['path', { d: 'M12 2v8' }],\n [\n 'path',\n {\n d: 'M2 15c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n [\n 'path',\n {\n d: 'M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n ['path', { d: 'm8 6 4-4 4 4' }],\n];\n\nexport default WavesArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name waves-ladder\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgNWEyIDIgMCAwIDAtMiAydjExIiAvPgogIDxwYXRoIGQ9Ik0yIDE4Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEiIC8+CiAgPHBhdGggZD0iTTcgMTNoMTAiIC8+CiAgPHBhdGggZD0iTTcgOWgxMCIgLz4KICA8cGF0aCBkPSJNOSA1YTIgMiAwIDAgMC0yIDJ2MTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/waves-ladder\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WavesLadder: IconNode = [\n ['path', { d: 'M19 5a2 2 0 0 0-2 2v11' }],\n [\n 'path',\n {\n d: 'M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n ['path', { d: 'M7 13h10' }],\n ['path', { d: 'M7 9h10' }],\n ['path', { d: 'M9 5a2 2 0 0 0-2 2v11' }],\n];\n\nexport default WavesLadder;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name waves\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA2Yy42LjUgMS4yIDEgMi41IDFDNyA3IDcgNSA5LjUgNWMyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIiAvPgogIDxwYXRoIGQ9Ik0yIDEyYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEiIC8+CiAgPHBhdGggZD0iTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/waves\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Waves: IconNode = [\n [\n 'path',\n { d: 'M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1' },\n ],\n [\n 'path',\n {\n d: 'M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n [\n 'path',\n {\n d: 'M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n];\n\nexport default Waves;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name waypoints\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuNTg2IDUuNDE0LTUuMTcyIDUuMTcyIiAvPgogIDxwYXRoIGQ9Im0xOC41ODYgMTMuNDE0LTUuMTcyIDUuMTcyIiAvPgogIDxwYXRoIGQ9Ik02IDEyaDEyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMjAiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI0IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMTIiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjEyIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/waypoints\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Waypoints: IconNode = [\n ['path', { d: 'm10.586 5.414-5.172 5.172' }],\n ['path', { d: 'm18.586 13.414-5.172 5.172' }],\n ['path', { d: 'M6 12h12' }],\n ['circle', { cx: '12', cy: '20', r: '2' }],\n ['circle', { cx: '12', cy: '4', r: '2' }],\n ['circle', { cx: '20', cy: '12', r: '2' }],\n ['circle', { cx: '4', cy: '12', r: '2' }],\n];\n\nexport default Waypoints;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name webcam\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEwIiByPSI4IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTcgMjJoMTAiIC8+CiAgPHBhdGggZD0iTTEyIDIydi00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/webcam\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Webcam: IconNode = [\n ['circle', { cx: '12', cy: '10', r: '8' }],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'M7 22h10' }],\n ['path', { d: 'M12 22v-4' }],\n];\n\nexport default Webcam;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name webhook-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTdoLTVjLTEuMDktLjAyLTEuOTQuOTItMi41IDEuOUEzIDMgMCAxIDEgMi41NyAxNSIgLz4KICA8cGF0aCBkPSJNOSAzLjRhNCA0IDAgMCAxIDYuNTIuNjYiIC8+CiAgPHBhdGggZD0ibTYgMTcgMy4xLTUuOGEyLjUgMi41IDAgMCAwIC4wNTctMi4wNSIgLz4KICA8cGF0aCBkPSJNMjAuMyAyMC4zYTQgNCAwIDAgMS0yLjMuNyIgLz4KICA8cGF0aCBkPSJNMTguNiAxM2E0IDQgMCAwIDEgMy4zNTcgMy40MTQiIC8+CiAgPHBhdGggZD0ibTEyIDYgLjYgMSIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/webhook-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WebhookOff: IconNode = [\n ['path', { d: 'M17 17h-5c-1.09-.02-1.94.92-2.5 1.9A3 3 0 1 1 2.57 15' }],\n ['path', { d: 'M9 3.4a4 4 0 0 1 6.52.66' }],\n ['path', { d: 'm6 17 3.1-5.8a2.5 2.5 0 0 0 .057-2.05' }],\n ['path', { d: 'M20.3 20.3a4 4 0 0 1-2.3.7' }],\n ['path', { d: 'M18.6 13a4 4 0 0 1 3.357 3.414' }],\n ['path', { d: 'm12 6 .6 1' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default WebhookOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name webhook\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTYuOThoLTUuOTljLTEuMSAwLTEuOTUuOTQtMi40OCAxLjlBNCA0IDAgMCAxIDIgMTdjLjAxLS43LjItMS40LjU3LTIiIC8+CiAgPHBhdGggZD0ibTYgMTcgMy4xMy01Ljc4Yy41My0uOTcuMS0yLjE4LS41LTMuMWE0IDQgMCAxIDEgNi44OS00LjA2IiAvPgogIDxwYXRoIGQ9Im0xMiA2IDMuMTMgNS43M0MxNS42NiAxMi43IDE2LjkgMTMgMTggMTNhNCA0IDAgMCAxIDAgOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/webhook\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Webhook: IconNode = [\n ['path', { d: 'M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2' }],\n ['path', { d: 'm6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06' }],\n ['path', { d: 'm12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8' }],\n];\n\nexport default Webhook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name weight-tilde\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNi41IDhhMiAyIDAgMCAwLTEuOTA2IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDh6IiAvPgogIDxwYXRoIGQ9Ik03Ljk5OSAxNWEyLjUgMi41IDAgMCAxIDQgMCAyLjUgMi41IDAgMCAwIDQgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/weight-tilde\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WeightTilde: IconNode = [\n [\n 'path',\n {\n d: 'M6.5 8a2 2 0 0 0-1.906 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8z',\n },\n ],\n ['path', { d: 'M7.999 15a2.5 2.5 0 0 1 4 0 2.5 2.5 0 0 0 4 0' }],\n ['circle', { cx: '12', cy: '5', r: '3' }],\n];\n\nexport default WeightTilde;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wheat-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyMiAxMC0xMCIgLz4KICA8cGF0aCBkPSJtMTYgOC0xLjE3IDEuMTciIC8+CiAgPHBhdGggZD0iTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiIgLz4KICA8cGF0aCBkPSJtOCA4LS41My41M2EzLjUgMy41IDAgMCAwIDAgNC45NEw5IDE1bDEuNTMtMS41M2MuNTUtLjU1Ljg4LTEuMjUuOTgtMS45NyIgLz4KICA8cGF0aCBkPSJNMTAuOTEgNS4yNmMuMTUtLjI2LjM0LS41MS41Ni0uNzNMMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAuMjggNC42MiIgLz4KICA8cGF0aCBkPSJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIiAvPgogIDxwYXRoIGQ9Ik0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiIgLz4KICA8cGF0aCBkPSJtMTYgMTYtLjUzLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDkgMTVsMS41My0xLjUzYTMuNDkgMy40OSAwIDAgMSAxLjk3LS45OCIgLz4KICA8cGF0aCBkPSJNMTguNzQgMTMuMDljLjI2LS4xNS41MS0uMzQuNzMtLjU2TDIxIDExbC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMC00LjYyLS4yOCIgLz4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wheat-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WheatOff: IconNode = [\n ['path', { d: 'm2 22 10-10' }],\n ['path', { d: 'm16 8-1.17 1.17' }],\n [\n 'path',\n { d: 'M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z' },\n ],\n ['path', { d: 'm8 8-.53.53a3.5 3.5 0 0 0 0 4.94L9 15l1.53-1.53c.55-.55.88-1.25.98-1.97' }],\n ['path', { d: 'M10.91 5.26c.15-.26.34-.51.56-.73L13 3l1.53 1.53a3.5 3.5 0 0 1 .28 4.62' }],\n ['path', { d: 'M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z' }],\n [\n 'path',\n {\n d: 'M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z',\n },\n ],\n ['path', { d: 'm16 16-.53.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.49 3.49 0 0 1 1.97-.98' }],\n ['path', { d: 'M18.74 13.09c.26-.15.51-.34.73-.56L21 11l-1.53-1.53a3.5 3.5 0 0 0-4.62-.28' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default WheatOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name weight\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTYuNSA4YTIgMiAwIDAgMC0xLjkwNSAxLjQ2TDIuMSAxOC41QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjkyNS0yLjU0TDE5LjQgOS41QTIgMiAwIDAgMCAxNy40OCA4WiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/weight\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Weight: IconNode = [\n ['circle', { cx: '12', cy: '5', r: '3' }],\n [\n 'path',\n {\n d: 'M6.5 8a2 2 0 0 0-1.905 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8Z',\n },\n ],\n];\n\nexport default Weight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wheat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMiAxNiA4IiAvPgogIDxwYXRoIGQ9Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoiIC8+CiAgPHBhdGggZD0iTTcuNDcgOC41MyA5IDdsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDkgMTVsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoiIC8+CiAgPHBhdGggZD0iTTExLjQ3IDQuNTMgMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMMTMgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoiIC8+CiAgPHBhdGggZD0iTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiIgLz4KICA8cGF0aCBkPSJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoiIC8+CiAgPHBhdGggZD0iTTE1LjQ3IDEzLjQ3IDE3IDE1bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIiAvPgogIDxwYXRoIGQ9Ik0xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wheat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wheat: IconNode = [\n ['path', { d: 'M2 22 16 8' }],\n [\n 'path',\n { d: 'M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z' },\n ],\n [\n 'path',\n { d: 'M7.47 8.53 9 7l1.53 1.53a3.5 3.5 0 0 1 0 4.94L9 15l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z' },\n ],\n [\n 'path',\n { d: 'M11.47 4.53 13 3l1.53 1.53a3.5 3.5 0 0 1 0 4.94L13 11l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z' },\n ],\n ['path', { d: 'M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z' }],\n [\n 'path',\n {\n d: 'M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z',\n },\n ],\n [\n 'path',\n {\n d: 'M15.47 13.47 17 15l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z',\n },\n ],\n [\n 'path',\n {\n d: 'M19.47 9.47 21 11l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L13 11l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z',\n },\n ],\n];\n\nexport default Wheat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name whole-word\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iMTIiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTEwIDl2NiIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjEyIiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xNCA3djgiIC8+CiAgPHBhdGggZD0iTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/whole-word\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WholeWord: IconNode = [\n ['circle', { cx: '7', cy: '12', r: '3' }],\n ['path', { d: 'M10 9v6' }],\n ['circle', { cx: '17', cy: '12', r: '3' }],\n ['path', { d: 'M14 7v8' }],\n ['path', { d: 'M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1' }],\n];\n\nexport default WholeWord;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuMzA1IDE5LjUzLjkyMy0uMzgyIiAvPgogIDxwYXRoIGQ9Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyIgLz4KICA8cGF0aCBkPSJtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAyMC43NzItLjM4My45MjQiIC8+CiAgPHBhdGggZD0ibTE5LjE0OCAxNS4yMjguMzgzLS45MjMiIC8+CiAgPHBhdGggZD0ibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQiIC8+CiAgPHBhdGggZD0iTTIgNy44MmExNSAxNSAwIDAgMSAyMCAwIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMiIC8+CiAgPHBhdGggZD0iTTUgMTEuODU4YTEwIDEwIDAgMCAxIDExLjUtMS43ODUiIC8+CiAgPHBhdGggZD0iTTguNSAxNS40MjlhNSA1IDAgMCAxIDIuNDEzLTEuMzEiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wifi-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiCog: IconNode = [\n ['path', { d: 'm14.305 19.53.923-.382' }],\n ['path', { d: 'm15.228 16.852-.923-.383' }],\n ['path', { d: 'm16.852 15.228-.383-.923' }],\n ['path', { d: 'm16.852 20.772-.383.924' }],\n ['path', { d: 'm19.148 15.228.383-.923' }],\n ['path', { d: 'm19.53 21.696-.382-.924' }],\n ['path', { d: 'M2 7.82a15 15 0 0 1 20 0' }],\n ['path', { d: 'm20.772 16.852.924-.383' }],\n ['path', { d: 'm20.772 19.148.924.383' }],\n ['path', { d: 'M5 11.858a10 10 0 0 1 11.5-1.785' }],\n ['path', { d: 'M8.5 15.429a5 5 0 0 1 2.413-1.31' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default WifiCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-high\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxNCAwIiAvPgogIDxwYXRoIGQ9Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wifi-high\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiHigh: IconNode = [\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M5 12.859a10 10 0 0 1 14 0' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 7 0' }],\n];\n\nexport default WifiHigh;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-low\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wifi-low\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiLow: IconNode = [\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 7 0' }],\n];\n\nexport default WifiLow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAiIC8+CiAgPHBhdGggZD0iTTUgMTIuODU5YTEwIDEwIDAgMCAxIDUuMTctMi42OSIgLz4KICA8cGF0aCBkPSJNMTkgMTIuODU5YTEwIDEwIDAgMCAwLTIuMDA3LTEuNTIzIiAvPgogIDxwYXRoIGQ9Ik0yIDguODJhMTUgMTUgMCAwIDEgNC4xNzctMi42NDMiIC8+CiAgPHBhdGggZD0iTTIyIDguODJhMTUgMTUgMCAwIDAtMTEuMjg4LTMuNzY0IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wifi-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiOff: IconNode = [\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 7 0' }],\n ['path', { d: 'M5 12.859a10 10 0 0 1 5.17-2.69' }],\n ['path', { d: 'M19 12.859a10 10 0 0 0-2.007-1.523' }],\n ['path', { d: 'M2 8.82a15 15 0 0 1 4.177-2.643' }],\n ['path', { d: 'M22 8.82a15 15 0 0 0-11.288-3.764' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default WifiOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAiIC8+CiAgPHBhdGggZD0iTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiIgLz4KICA8cGF0aCBkPSJNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTAuNS0yLjIyMiIgLz4KICA8cGF0aCBkPSJNOC41IDE2LjQyOWE1IDUgMCAwIDEgMy0xLjQwNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wifi-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiPen: IconNode = [\n ['path', { d: 'M2 8.82a15 15 0 0 1 20 0' }],\n [\n 'path',\n {\n d: 'M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n ['path', { d: 'M5 12.859a10 10 0 0 1 10.5-2.222' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 3-1.406' }],\n];\n\nexport default WifiPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-sync\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuOTY1IDEwLjEwNXY0TDEzLjUgMTIuNWE1IDUgMCAwIDEgOCAxLjUiIC8+CiAgPHBhdGggZD0iTTExLjk2NSAxNC4xMDVoNCIgLz4KICA8cGF0aCBkPSJNMTcuOTY1IDE4LjEwNWg0TDIwLjQzIDE5LjcxYTUgNSAwIDAgMS04LTEuNSIgLz4KICA8cGF0aCBkPSJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAiIC8+CiAgPHBhdGggZD0iTTIxLjk2NSAyMi4xMDV2LTQiIC8+CiAgPHBhdGggZD0iTTUgMTIuODZhMTAgMTAgMCAwIDEgMy0yLjAzMiIgLz4KICA8cGF0aCBkPSJNOC41IDE2LjQyOWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wifi-sync\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiSync: IconNode = [\n ['path', { d: 'M11.965 10.105v4L13.5 12.5a5 5 0 0 1 8 1.5' }],\n ['path', { d: 'M11.965 14.105h4' }],\n ['path', { d: 'M17.965 18.105h4L20.43 19.71a5 5 0 0 1-8-1.5' }],\n ['path', { d: 'M2 8.82a15 15 0 0 1 20 0' }],\n ['path', { d: 'M21.965 22.105v-4' }],\n ['path', { d: 'M5 12.86a10 10 0 0 1 3-2.032' }],\n ['path', { d: 'M8.5 16.429h.01' }],\n];\n\nexport default WifiSync;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-zero\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wifi-zero\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiZero: IconNode = [['path', { d: 'M12 20h.01' }]];\n\nexport default WifiZero;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCIgLz4KICA8cGF0aCBkPSJNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTQgMCIgLz4KICA8cGF0aCBkPSJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wifi\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wifi: IconNode = [\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M2 8.82a15 15 0 0 1 20 0' }],\n ['path', { d: 'M5 12.859a10 10 0 0 1 14 0' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 7 0' }],\n];\n\nexport default Wifi;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wind-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnY4IiAvPgogIDxwYXRoIGQ9Ik0xMi44IDIxLjZBMiAyIDAgMSAwIDE0IDE4SDIiIC8+CiAgPHBhdGggZD0iTTE3LjUgMTBhMi41IDIuNSAwIDEgMSAyIDRIMiIgLz4KICA8cGF0aCBkPSJtNiA2IDQgNCA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wind-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WindArrowDown: IconNode = [\n ['path', { d: 'M10 2v8' }],\n ['path', { d: 'M12.8 21.6A2 2 0 1 0 14 18H2' }],\n ['path', { d: 'M17.5 10a2.5 2.5 0 1 1 2 4H2' }],\n ['path', { d: 'm6 6 4 4 4-4' }],\n];\n\nexport default WindArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wind\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuOCAxOS42QTIgMiAwIDEgMCAxNCAxNkgyIiAvPgogIDxwYXRoIGQ9Ik0xNy41IDhhMi41IDIuNSAwIDEgMSAyIDRIMiIgLz4KICA8cGF0aCBkPSJNOS44IDQuNEEyIDIgMCAxIDEgMTEgOEgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wind\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wind: IconNode = [\n ['path', { d: 'M12.8 19.6A2 2 0 1 0 14 16H2' }],\n ['path', { d: 'M17.5 8a2.5 2.5 0 1 1 2 4H2' }],\n ['path', { d: 'M9.8 4.4A2 2 0 1 1 11 8H2' }],\n];\n\nexport default Wind;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wine\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyMmg4IiAvPgogIDxwYXRoIGQ9Ik03IDEwaDEwIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNXY3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNWE1IDUgMCAwIDAgNS01YzAtMi0uNS00LTItOEg5Yy0xLjUgNC0yIDYtMiA4YTUgNSAwIDAgMCA1IDVaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wine\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wine: IconNode = [\n ['path', { d: 'M8 22h8' }],\n ['path', { d: 'M7 10h10' }],\n ['path', { d: 'M12 15v7' }],\n ['path', { d: 'M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z' }],\n];\n\nexport default Wine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name workflow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4PSIzIiB5PSIzIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNyAxMXY0YTIgMiAwIDAgMCAyIDJoNCIgLz4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4PSIxMyIgeT0iMTMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/workflow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Workflow: IconNode = [\n ['rect', { width: '8', height: '8', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 11v4a2 2 0 0 0 2 2h4' }],\n ['rect', { width: '8', height: '8', x: '13', y: '13', rx: '2' }],\n];\n\nexport default Workflow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wine-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyMmg4IiAvPgogIDxwYXRoIGQ9Ik03IDEwaDNtNyAwaC0xLjM0MyIgLz4KICA8cGF0aCBkPSJNMTIgMTV2NyIgLz4KICA8cGF0aCBkPSJNNy4zMDcgNy4zMDdBMTIuMzMgMTIuMzMgMCAwIDAgNyAxMGE1IDUgMCAwIDAgNy4zOTEgNC4zOTFNOC42MzggMi45ODFDOC43NSAyLjY2OCA4Ljg3MiAyLjM0IDkgMmg2YzEuNSA0IDIgNiAyIDggMCAuNDA3LS4wNS44MDktLjE0NSAxLjE5OCIgLz4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wine-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WineOff: IconNode = [\n ['path', { d: 'M8 22h8' }],\n ['path', { d: 'M7 10h3m7 0h-1.343' }],\n ['path', { d: 'M12 15v7' }],\n [\n 'path',\n {\n d: 'M7.307 7.307A12.33 12.33 0 0 0 7 10a5 5 0 0 0 7.391 4.391M8.638 2.981C8.75 2.668 8.872 2.34 9 2h6c1.5 4 2 6 2 8 0 .407-.05.809-.145 1.198',\n },\n ],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default WineOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name worm\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTkgMTItMS41IDMiIC8+CiAgPHBhdGggZD0iTTE5LjYzIDE4LjgxIDIyIDIwIiAvPgogIDxwYXRoIGQ9Ik02LjQ3IDguMjNhMS42OCAxLjY4IDAgMCAxIDIuNDQgMS45M2wtLjY0IDIuMDhhNi43NiA2Ljc2IDAgMCAwIDEwLjE2IDcuNjdsLjQyLS4yN2ExIDEgMCAxIDAtMi43My00LjIxbC0uNDIuMjdhMS43NiAxLjc2IDAgMCAxLTIuNjMtMS45OWwuNjQtMi4wOEE2LjY2IDYuNjYgMCAwIDAgMy45NCAzLjlsLS43LjRhMSAxIDAgMSAwIDIuNTUgNC4zNHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/worm\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Worm: IconNode = [\n ['path', { d: 'm19 12-1.5 3' }],\n ['path', { d: 'M19.63 18.81 22 20' }],\n [\n 'path',\n {\n d: 'M6.47 8.23a1.68 1.68 0 0 1 2.44 1.93l-.64 2.08a6.76 6.76 0 0 0 10.16 7.67l.42-.27a1 1 0 1 0-2.73-4.21l-.42.27a1.76 1.76 0 0 1-2.63-1.99l.64-2.08A6.66 6.66 0 0 0 3.94 3.9l-.7.4a1 1 0 1 0 2.55 4.34z',\n },\n ],\n];\n\nexport default Worm;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst X: IconNode = [\n ['path', { d: 'M18 6 6 18' }],\n ['path', { d: 'm6 6 12 12' }],\n];\n\nexport default X;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name youtube\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41IDE3YTI0LjEyIDI0LjEyIDAgMCAxIDAtMTAgMiAyIDAgMCAxIDEuNC0xLjQgNDkuNTYgNDkuNTYgMCAwIDEgMTYuMiAwQTIgMiAwIDAgMSAyMS41IDdhMjQuMTIgMjQuMTIgMCAwIDEgMCAxMCAyIDIgMCAwIDEtMS40IDEuNCA0OS41NSA0OS41NSAwIDAgMS0xNi4yIDBBMiAyIDAgMCAxIDIuNSAxNyIgLz4KICA8cGF0aCBkPSJtMTAgMTUgNS0zLTUtM3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/youtube\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=youtube instead. This icon will be removed in v1.0\n */\nconst Youtube: IconNode = [\n [\n 'path',\n {\n d: 'M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17',\n },\n ],\n ['path', { d: 'm10 15 5-3-5-3z' }],\n];\n\nexport default Youtube;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wrench\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuMTA2LTMuMTA1Yy4zMi0uMzIyLjg2My0uMjIuOTgzLjIxOGE2IDYgMCAwIDEtOC4yNTkgNy4wNTdsLTcuOTEgNy45MWExIDEgMCAwIDEtMi45OTktM2w3LjkxLTcuOTFhNiA2IDAgMCAxIDcuMDU3LTguMjU5Yy40MzguMTIuNTQuNjYyLjIxOS45ODR6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wrench\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wrench: IconNode = [\n [\n 'path',\n {\n d: 'M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z',\n },\n ],\n];\n\nexport default Wrench;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name zap-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNTEzIDQuODU2IDEzLjEyIDIuMTdhLjUuNSAwIDAgMSAuODYuNDZsLTEuMzc3IDQuMzE3IiAvPgogIDxwYXRoIGQ9Ik0xNS42NTYgMTBIMjBhMSAxIDAgMCAxIC43OCAxLjYzbC0xLjcyIDEuNzczIiAvPgogIDxwYXRoIGQ9Ik0xNi4yNzMgMTYuMjczIDEwLjg4IDIxLjgzYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0SDRhMSAxIDAgMCAxLS43OC0xLjYzbDQuNTA3LTQuNjQzIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/zap-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ZapOff: IconNode = [\n ['path', { d: 'M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317' }],\n ['path', { d: 'M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773' }],\n [\n 'path',\n {\n d: 'M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default ZapOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name zap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Zap: IconNode = [\n [\n 'path',\n {\n d: 'M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z',\n },\n ],\n];\n\nexport default Zap;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name zoom-out\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxsaW5lIHgxPSIyMSIgeDI9IjE2LjY1IiB5MT0iMjEiIHkyPSIxNi42NSIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjE0IiB5MT0iMTEiIHkyPSIxMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zoom-out\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ZoomOut: IconNode = [\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['line', { x1: '21', x2: '16.65', y1: '21', y2: '16.65' }],\n ['line', { x1: '8', x2: '14', y1: '11', y2: '11' }],\n];\n\nexport default ZoomOut;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name zoom-in\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxsaW5lIHgxPSIyMSIgeDI9IjE2LjY1IiB5MT0iMjEiIHkyPSIxNi42NSIgLz4KICA8bGluZSB4MT0iMTEiIHgyPSIxMSIgeTE9IjgiIHkyPSIxNCIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjE0IiB5MT0iMTEiIHkyPSIxMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zoom-in\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ZoomIn: IconNode = [\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['line', { x1: '21', x2: '16.65', y1: '21', y2: '16.65' }],\n ['line', { x1: '11', x2: '11', y1: '8', y2: '14' }],\n ['line', { x1: '8', x2: '14', y1: '11', y2: '11' }],\n];\n\nexport default ZoomIn;\n", "import replaceElement from './replaceElement';\nimport * as iconAndAliases from './iconsAndAliases';\nimport { Icons, SVGProps } from './types';\n\nexport interface CreateIconsOptions {\n icons?: Icons;\n nameAttr?: string;\n attrs?: SVGProps;\n root?: Element | Document | DocumentFragment;\n inTemplates?: boolean;\n}\n\n/**\n * Replaces all elements with matching nameAttr with the defined icons\n * @param {CreateIconsOptions} options\n */\nconst createIcons = ({\n icons = {},\n nameAttr = 'data-lucide',\n attrs = {},\n root = document,\n inTemplates,\n}: CreateIconsOptions = {}) => {\n if (!Object.values(icons).length) {\n throw new Error(\n \"Please provide an icons object.\\nIf you want to use all the icons you can import it like:\\n `import { createIcons, icons } from 'lucide';\\nlucide.createIcons({icons});`\",\n );\n }\n\n if (typeof root === 'undefined') {\n throw new Error('`createIcons()` only works in a browser environment.');\n }\n\n const elementsToReplace = Array.from(root.querySelectorAll(`[${nameAttr}]`));\n\n elementsToReplace.forEach((element) => replaceElement(element, { nameAttr, icons, attrs }));\n\n if (inTemplates) {\n const templates = Array.from(root.querySelectorAll('template'));\n\n templates.forEach((template) =>\n createIcons({\n icons,\n nameAttr,\n attrs,\n root: template.content,\n inTemplates,\n }),\n );\n }\n\n /** @todo: remove this block in v1.0 */\n if (nameAttr === 'data-lucide') {\n const deprecatedElements = root.querySelectorAll('[icon-name]');\n if (deprecatedElements.length > 0) {\n console.warn(\n '[Lucide] Some icons were found with the now deprecated icon-name attribute. These will still be replaced for backwards compatibility, but will no longer be supported in v1.0 and you should switch to data-lucide',\n );\n Array.from(deprecatedElements).forEach((element) =>\n replaceElement(element, { nameAttr: 'icon-name', icons, attrs }),\n );\n }\n }\n};\n\nexport { createIcons };\n\n/*\n Create Element function export.\n*/\nexport { default as createElement } from './createElement';\n\n/*\n Icons exports.\n*/\nexport { iconAndAliases as icons };\nexport * from './icons';\nexport * from './aliases';\n\n/*\n Types exports.\n*/\nexport * from './types';\n", "import { html } from '@design.estate/dees-element';\nimport { icons, type IconWithPrefix } from '../dees-icon/dees-icon.js';\nimport * as lucideIcons from 'lucide';\n\nexport const demoFunc = () => {\n // Group FontAwesome icons by type\n const faIcons = Object.keys(icons.fa);\n \n // Extract Lucide icons from the lucideIcons object directly\n // Log the first few keys to understand the structure\n console.log('First few Lucide keys:', Object.keys(lucideIcons).slice(0, 5));\n \n // Get all icon functions from lucideIcons (they have PascalCase names)\n const lucideIconsList = Object.keys(lucideIcons)\n .filter(key => {\n // Skip utility functions and focus on icon components (first letter is uppercase)\n const isUppercaseFirst = key[0] === key[0].toUpperCase() && key[0] !== key[0].toLowerCase();\n const isFunction = typeof lucideIcons[key] === 'function';\n const notUtility = !['createElement', 'createIcons', 'default'].includes(key);\n return isFunction && isUppercaseFirst && notUtility;\n })\n .map(pascalName => {\n // Convert PascalCase to camelCase\n return pascalName.charAt(0).toLowerCase() + pascalName.slice(1);\n });\n \n // Log how many icons we found\n console.log(`Found ${lucideIconsList.length} Lucide icons`);\n \n // If we didn't find any, try an alternative approach\n if (lucideIconsList.length === 0) {\n console.log('Trying alternative approach to find Lucide icons');\n \n // Try to get icon names from a known property if available\n if (lucideIcons.icons) {\n const iconSource = lucideIcons.icons || {};\n lucideIconsList.push(...Object.keys(iconSource));\n console.log(`Found ${lucideIconsList.length} icons via alternative method`);\n }\n }\n\n // Define the functions in TS scope instead of script tags\n const copyAllIconNames = () => {\n // Generate complete list of all icon names with prefixes\n const faIconsList = faIcons.map(name => `fa:${name}`);\n const lucideIconsListPrefixed = lucideIconsList.map(name => `lucide:${name}`);\n const allIcons = [...faIconsList, ...lucideIconsListPrefixed];\n const textToCopy = allIcons.join('\\n');\n \n navigator.clipboard.writeText(textToCopy).then(() => {\n // Show feedback\n const currentEvent = window.event as MouseEvent;\n const button = currentEvent.currentTarget as HTMLElement;\n const originalText = button.textContent;\n button.textContent = `\u2713 Copied ${allIcons.length} icon names!`;\n \n setTimeout(() => {\n button.textContent = originalText;\n }, 2000);\n });\n };\n \n const searchIcons = (event: InputEvent) => {\n const searchTerm = (event.target as HTMLInputElement).value.toLowerCase().trim();\n // Get the demo container first, then search within it\n const demoContainer = (event.target as HTMLElement).closest('.demoContainer');\n const containers = demoContainer.querySelectorAll('.iconContainer');\n \n containers.forEach(container => {\n const iconName = container.getAttribute('data-name');\n \n if (searchTerm === '') {\n container.classList.remove('hidden');\n } else if (iconName && iconName.includes(searchTerm)) {\n container.classList.remove('hidden');\n } else {\n container.classList.add('hidden');\n }\n });\n \n // Update counts - search within demoContainer\n demoContainer.querySelectorAll('.section-container').forEach(section => {\n const visibleIcons = section.querySelectorAll('.iconContainer:not(.hidden)').length;\n const countElement = section.querySelector('.icon-count');\n if (countElement) {\n const totalIconsCount = section.classList.contains('fa-section') \n ? faIcons.length \n : lucideIconsList.length;\n \n countElement.textContent = visibleIcons === totalIconsCount \n ? `${totalIconsCount} icons` \n : `${visibleIcons} of ${totalIconsCount} icons`;\n }\n });\n };\n \n const copyIconName = (iconNameToCopy: string, type: 'fa' | 'lucide') => {\n // Use the new prefix format\n const textToCopy = `${type}:${iconNameToCopy}`;\n \n navigator.clipboard.writeText(textToCopy).then(() => {\n // Find the event target\n const currentEvent = window.event as MouseEvent;\n const currentTarget = currentEvent.currentTarget as HTMLElement;\n // Show feedback\n const tooltip = currentTarget.querySelector('.copy-tooltip');\n if (tooltip) {\n tooltip.textContent = 'Copied!';\n \n setTimeout(() => {\n tooltip.textContent = 'Click to copy';\n }, 2000);\n }\n });\n };\n\n return html`\n \n \n
\n
\n \n \n
\n \n
\n New API: Use icon=\"fa:iconName\" or icon=\"lucide:iconName\" instead of iconFA. \n Click any icon to copy its new format to clipboard.\n
\n \n
\n
\n FontAwesome Icons\n ${faIcons.length} icons\n
\n
\n ${faIcons.map(\n (iconName) => {\n const prefixedName = `fa:${iconName}`;\n return html`\n
copyIconName(iconName, 'fa')}>\n \n
fa:${iconName}
\n Click to copy\n
\n `;\n }\n )}\n
\n
\n\n
\n
\n Lucide Icons\n ${lucideIconsList.length} icons\n
\n
\n ${lucideIconsList.map(\n (iconName) => {\n const prefixedName = `lucide:${iconName}`;\n return html`\n
copyIconName(iconName, 'lucide')}>\n \n
lucide:${iconName}
\n Click to copy\n
\n `;\n }\n )}\n
\n
\n
\n `;\n};\n", "import {\n DeesElement,\n html,\n property,\n customElement,\n cssManager,\n css,\n type CSSResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nimport { icon, type IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport {\n faFacebook,\n faGoogle,\n faLinkedin,\n faMedium,\n faSlackHash,\n faTwitter,\n faInstagram,\n faTiktok,\n} from '@fortawesome/free-brands-svg-icons';\n\nimport {\n faCopy as faCopyRegular,\n faCircleCheck as faCircleCheckRegular,\n faCircleXmark as faCircleXmarkRegular,\n faMessage as faMessageRegular,\n faPaste as faPasteRegular,\n faSun as faSunRegular,\n faTrashCan as faTrashCanRegular,\n} from '@fortawesome/free-regular-svg-icons';\nimport {\n faArrowRight as faArrowRightSolid,\n faArrowUpRightFromSquare as faArrowUpRightFromSquareSolid,\n faBell as faBellSolid,\n faBug as faBugSolid,\n faBuilding as faBuildingSolid,\n faCaretLeft as faCaretLeftSolid,\n faCaretRight as faCaretRightSolid,\n faCheck as faCheckSolid,\n faCircleInfo as faCircleInfoSolid,\n faCircleCheck as faCircleCheckSolid,\n faCircleXmark as faCircleXmarkSolid,\n faClockRotateLeft as faClockRotateLeftSolid,\n faCopy as faCopySolid,\n faDesktop as faDesktopSolid,\n faEye as faEyeSolid,\n faEyeSlash as faEyeSlashSolid,\n faFileInvoice as faFileInvoiceSolid,\n faFileInvoiceDollar as faFileInvoiceDollarSolid,\n faGear as faGearSolid,\n faGrip as faGripSolid,\n faMagnifyingGlass as faMagnifyingGlassSolid,\n faMessage as faMessageSolid,\n faMoneyCheckDollar as faMoneyCheckDollarSolid,\n faMugHot as faMugHotSolid,\n faMinus as faMinusSolid,\n faNetworkWired as faNetworkWiredSolid,\n faPaperclip as faPaperclipSolid,\n faPaste as faPasteSolid,\n faPenToSquare as faPenToSquareSolid,\n faPlus as faPlusSolid,\n faReceipt as faReceiptSolid,\n faRss as faRssSolid,\n faUsers as faUsersSolid,\n faShare as faShareSolid,\n faSun as faSunSolid,\n faTerminal as faTerminalSolid,\n faTrash as faTrashSolid,\n faTrashCan as faTrashCanSolid,\n faWallet as faWalletSolid,\n faXmark as faXmarkSolid,\n} from '@fortawesome/free-solid-svg-icons';\nimport { demoFunc } from './dees-icon.demo.js';\n\n// Import Lucide icons and the createElement function\nimport * as lucideIcons from 'lucide';\nimport { createElement } from 'lucide';\n\n// Collect FontAwesome icons\nconst faIcons = {\n // normal\n arrowRight: faArrowRightSolid,\n arrowUpRightFromSquare: faArrowUpRightFromSquareSolid,\n bell: faBellSolid,\n bug: faBugSolid,\n building: faBuildingSolid,\n caretLeft: faCaretLeftSolid,\n caretRight: faCaretRightSolid,\n check: faCheckSolid,\n circleInfo: faCircleInfoSolid,\n circleCheck: faCircleCheckRegular,\n circleCheckSolid: faCircleCheckSolid,\n circleXmark: faCircleXmarkRegular,\n circleXmarkSolid: faCircleXmarkSolid,\n clockRotateLeft: faClockRotateLeftSolid,\n copy: faCopyRegular,\n copySolid: faCopySolid,\n desktop: faDesktopSolid,\n eye: faEyeSolid,\n eyeSlash: faEyeSlashSolid,\n fileInvoice: faFileInvoiceSolid,\n fileInvoiceDoller: faFileInvoiceDollarSolid,\n gear: faGearSolid,\n grip: faGripSolid,\n magnifyingGlass: faMagnifyingGlassSolid,\n message: faMessageRegular,\n messageSolid: faMessageSolid,\n moneyCheckDollar: faMoneyCheckDollarSolid,\n mugHot: faMugHotSolid,\n minus: faMinusSolid,\n networkWired: faNetworkWiredSolid,\n paperclip: faPaperclipSolid,\n paste: faPasteRegular,\n pasteSolid: faPasteSolid,\n penToSquare: faPenToSquareSolid,\n plus: faPlusSolid,\n receipt: faReceiptSolid,\n rss: faRssSolid,\n share: faShareSolid,\n sun: faSunRegular,\n sunSolid: faSunSolid,\n terminal: faTerminalSolid,\n trash: faTrashSolid,\n trashSolid: faTrashSolid,\n trashCan: faTrashCanRegular,\n trashCanSolid: faTrashCanSolid,\n users: faUsersSolid,\n wallet: faWalletSolid,\n xmark: faXmarkSolid,\n // brands\n facebook: faFacebook,\n google: faGoogle,\n instagram: faInstagram,\n linkedin: faLinkedin,\n medium: faMedium,\n slack: faSlackHash,\n tiktok: faTiktok,\n twitter: faTwitter,\n};\n\n// Create a string literal type for all FA icons\ntype FAIconKey = keyof typeof faIcons;\n\n// Create union types for the icons with prefixes\nexport type IconWithPrefix = `fa:${FAIconKey}` | `lucide:${string}`;\n\n// Export only FontAwesome icons directly\nexport const icons = {\n fa: faIcons\n};\n\n// Legacy type for backward compatibility\nexport type TIconKey = FAIconKey | `lucide:${string}`;\n\n// Use a global static cache for all icons to reduce rendering\nconst iconCache = new Map();\n\n// Clear cache items occasionally to prevent memory leaks \nconst MAX_CACHE_SIZE = 500;\nfunction limitCacheSize() {\n if (iconCache.size > MAX_CACHE_SIZE) {\n // Remove oldest entries (first 20% of items)\n const keysToDelete = Array.from(iconCache.keys()).slice(0, MAX_CACHE_SIZE / 5);\n keysToDelete.forEach(key => iconCache.delete(key));\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-icon': DeesIcon;\n }\n}\n\n@customElement('dees-icon')\nexport class DeesIcon extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n /**\n * @deprecated Use the `icon` property instead with format \"fa:iconName\" or \"lucide:iconName\"\n */\n @property({\n type: String,\n converter: {\n // Convert attribute string to property (for reflected attributes)\n fromAttribute: (value: string): TIconKey => value as TIconKey,\n // Convert property to attribute (for reflection)\n toAttribute: (value: TIconKey): string => value\n }\n })\n accessor iconFA: TIconKey | undefined = undefined;\n\n /**\n * The preferred icon property. Use format \"fa:iconName\" or \"lucide:iconName\"\n * Examples: \"fa:check\", \"lucide:menu\"\n */\n @property({\n type: String,\n converter: {\n fromAttribute: (value: string): IconWithPrefix => value as IconWithPrefix,\n toAttribute: (value: IconWithPrefix): string => value\n }\n })\n accessor icon: IconWithPrefix | undefined = undefined;\n\n @property({ type: Number })\n accessor iconSize: number;\n\n @property({ type: String })\n accessor color: string = 'currentColor';\n\n @property({ type: Number })\n accessor strokeWidth: number = 2;\n\n // For tracking when we need to re-render\n private lastIcon: IconWithPrefix | TIconKey | null = null;\n private lastIconSize: number | null = null;\n private lastColor: string | null = null;\n private lastStrokeWidth: number | null = null;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n /**\n * Gets the effective icon value, supporting both the new `icon` property\n * and the legacy `iconFA` property for backward compatibility.\n * Prefers `icon` if both are set.\n */\n private getEffectiveIcon(): IconWithPrefix | TIconKey | null {\n // Prefer the new API\n if (this.icon) {\n return this.icon;\n }\n \n // Fall back to the old API\n if (this.iconFA) {\n // If iconFA is already in the proper format (lucide:name), use it directly\n if (this.iconFA.startsWith('lucide:')) {\n return this.iconFA;\n }\n \n // For FontAwesome icons with no prefix, add the prefix\n return `fa:${this.iconFA}` as IconWithPrefix;\n }\n \n return null;\n }\n \n /**\n * Parses an icon string into its type and name parts\n * @param iconStr The icon string in format \"type:name\"\n * @returns Object with type and name properties\n */\n private parseIconString(iconStr: string): { type: 'fa' | 'lucide', name: string } {\n const lowerStr = iconStr.toLowerCase();\n if (lowerStr.startsWith('fa:')) {\n return {\n type: 'fa',\n name: iconStr.substring(3) // Remove 'fa:' prefix\n };\n } else if (lowerStr.startsWith('lucide:')) {\n return {\n type: 'lucide',\n name: iconStr.substring(7) // Remove 'lucide:' prefix\n };\n } else {\n // Default to Lucide when no prefix is provided\n return {\n type: 'lucide',\n name: iconStr\n };\n }\n }\n\n private renderLucideIcon(iconName: string): string {\n // Create a cache key based on all visual properties\n const cacheKey = `lucide:${iconName}:${this.iconSize}:${this.color}:${this.strokeWidth}`;\n \n // Check if we already have this icon in the cache\n if (iconCache.has(cacheKey)) {\n return iconCache.get(cacheKey) || '';\n }\n\n try {\n // Get the Pascal case icon name (Menu instead of menu)\n const pascalCaseName = iconName.charAt(0).toUpperCase() + iconName.slice(1);\n \n // Check if the icon exists in lucideIcons\n if (!lucideIcons[pascalCaseName]) {\n console.warn(`Lucide icon '${pascalCaseName}' not found in lucideIcons object`);\n return '';\n }\n \n // Use the exact pattern from Lucide documentation\n const svgElement = createElement(lucideIcons[pascalCaseName], {\n color: this.color,\n size: this.iconSize,\n strokeWidth: this.strokeWidth\n });\n \n if (!svgElement) {\n console.warn(`createElement returned empty result for ${pascalCaseName}`);\n return '';\n }\n \n // Get the HTML\n const result = svgElement.outerHTML;\n \n // Cache the result for future use\n iconCache.set(cacheKey, result);\n limitCacheSize();\n \n return result;\n } catch (error) {\n console.error(`Error rendering Lucide icon ${iconName}:`, error);\n \n // Create a fallback SVG with the icon name\n return `\n ${iconName}\n `;\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n vertical-align: middle;\n }\n\n /* Improve rendering performance */\n #iconContainer svg {\n display: block;\n height: 100%;\n width: 100%;\n will-change: transform; /* Helps with animations */\n contain: strict; /* Performance optimization */\n }\n `,\n ];\n\n public render() {\n return html`\n ${domtools.elementBasic.styles}\n \n
\n `;\n }\n\n public updated() {\n // If size is not specified, use font size as a base\n if (!this.iconSize) {\n this.iconSize = parseInt(globalThis.getComputedStyle(this).fontSize.replace(/\\D/g,''));\n }\n \n // Get the effective icon (either from icon or iconFA property)\n const effectiveIcon = this.getEffectiveIcon();\n \n // Check if we actually need to update the icon\n // This prevents unnecessary DOM operations when properties haven't changed\n if (this.lastIcon === effectiveIcon && \n this.lastIconSize === this.iconSize && \n this.lastColor === this.color && \n this.lastStrokeWidth === this.strokeWidth) {\n return; // No visual changes - skip update\n }\n \n // Update our \"last properties\" for future change detection\n this.lastIcon = effectiveIcon;\n this.lastIconSize = this.iconSize;\n this.lastColor = this.color;\n this.lastStrokeWidth = this.strokeWidth;\n \n const container = this.shadowRoot?.querySelector('#iconContainer');\n if (!container || !effectiveIcon) return;\n\n try {\n // Parse the icon string to get type and name\n const { type, name } = this.parseIconString(effectiveIcon);\n \n if (type === 'lucide') {\n // For Lucide, use direct DOM manipulation as shown in the docs\n // This approach avoids HTML string issues\n container.innerHTML = ''; // Clear container\n \n try {\n // Convert to PascalCase\n const pascalCaseName = name.charAt(0).toUpperCase() + name.slice(1);\n \n if (lucideIcons[pascalCaseName]) {\n // Use the documented pattern from Lucide docs\n const svgElement = createElement(lucideIcons[pascalCaseName], {\n color: this.color,\n size: this.iconSize,\n strokeWidth: this.strokeWidth\n });\n \n if (svgElement) {\n // Directly append the element\n container.appendChild(svgElement);\n return; // Exit early since we've added the element\n }\n }\n \n // If we reach here, something went wrong\n throw new Error(`Could not create element for ${pascalCaseName}`);\n } catch (error) {\n console.error(`Error rendering Lucide icon:`, error);\n \n // Fall back to the string-based approach\n const iconHtml = this.renderLucideIcon(name);\n if (iconHtml) {\n container.innerHTML = iconHtml;\n }\n }\n } else {\n // Use FontAwesome rendering via HTML string\n const faIcon = icons.fa[name as FAIconKey];\n if (faIcon) {\n const iconHtml = icon(faIcon).html[0];\n container.innerHTML = iconHtml;\n } else {\n console.warn(`FontAwesome icon not found: ${name}`);\n }\n }\n } catch (error) {\n console.error(`Error updating icon ${effectiveIcon}:`, error);\n }\n }\n\n // Clean up resources when element is removed\n async disconnectedCallback() {\n super.disconnectedCallback();\n \n // Clear our references\n this.lastIcon = null;\n this.lastIconSize = null;\n this.lastColor = null;\n this.lastStrokeWidth = null;\n }\n}", "import * as plugins from '../../00plugins.js';\nimport { demoFunc } from './dees-contextmenu.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesWindowLayer } from '../dees-windowlayer/dees-windowlayer.js';\nimport { zIndexLayers } from '../../00zindex.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-contextmenu': DeesContextmenu;\n }\n}\n\n@customElement('dees-contextmenu')\nexport class DeesContextmenu extends DeesElement {\n // DEMO\n public static demo = demoFunc\n public static demoGroups = ['Overlay'];\n\n // STATIC\n // This will store all the accumulated menu items\n public static contextMenuDeactivated = false;\n public static accumulatedMenuItems: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean; submenu?: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean } | { divider: true })[] } | { divider: true })[] = [];\n\n // Add a global event listener for the right-click context menu\n public static initializeGlobalListener() {\n document.addEventListener('contextmenu', (event: MouseEvent) => {\n if (this.contextMenuDeactivated) {\n return;\n }\n event.preventDefault();\n\n // Clear previously accumulated items\n DeesContextmenu.accumulatedMenuItems = [];\n\n // Use composedPath to properly traverse shadow DOM boundaries\n const path = event.composedPath();\n \n // Traverse the composed path to accumulate menu items\n for (const element of path) {\n if ((element as any).getContextMenuItems) {\n const items = (element as any).getContextMenuItems();\n if (items && items.length > 0) {\n if (DeesContextmenu.accumulatedMenuItems.length > 0) {\n DeesContextmenu.accumulatedMenuItems.push({ divider: true });\n }\n DeesContextmenu.accumulatedMenuItems.push(...items);\n }\n }\n }\n\n // Open the context menu with the accumulated items\n DeesContextmenu.openContextMenuWithOptions(event, DeesContextmenu.accumulatedMenuItems);\n });\n }\n\n // allows opening of a contextmenu with options\n public static async openContextMenuWithOptions(eventArg: MouseEvent, menuItemsArg: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean; submenu?: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean } | { divider: true })[] } | { divider: true })[]) {\n if (this.contextMenuDeactivated) {\n return;\n }\n eventArg.preventDefault();\n eventArg.stopPropagation();\n const contextMenu = new DeesContextmenu();\n contextMenu.style.position = 'fixed';\n contextMenu.style.zIndex = String(zIndexLayers.overlay.contextMenu);\n contextMenu.style.opacity = '0';\n contextMenu.style.transform = 'scale(0.95) translateY(-10px)';\n contextMenu.menuItems = menuItemsArg;\n contextMenu.windowLayer = await DeesWindowLayer.createAndShow();\n contextMenu.windowLayer.addEventListener('click', async (event) => {\n // Check if click is on the context menu or its submenus\n const clickedElement = event.target as HTMLElement;\n const isContextMenu = clickedElement.closest('dees-contextmenu');\n if (!isContextMenu) {\n await contextMenu.destroy();\n }\n })\n document.body.append(contextMenu);\n \n // Get dimensions after adding to DOM\n await domtools.plugins.smartdelay.delayFor(0);\n const rect = contextMenu.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n \n // Calculate position\n let top = eventArg.clientY;\n let left = eventArg.clientX;\n \n // Adjust if menu would go off right edge\n if (left + rect.width > windowWidth) {\n left = windowWidth - rect.width - 10;\n }\n \n // Adjust if menu would go off bottom edge\n if (top + rect.height > windowHeight) {\n top = windowHeight - rect.height - 10;\n }\n \n // Ensure menu doesn't go off left or top edge\n if (left < 10) left = 10;\n if (top < 10) top = 10;\n \n contextMenu.style.top = `${top}px`;\n contextMenu.style.left = `${left}px`;\n contextMenu.style.transformOrigin = 'top left';\n \n // Animate in\n await domtools.plugins.smartdelay.delayFor(0);\n contextMenu.style.opacity = '1';\n contextMenu.style.transform = 'scale(1) translateY(0)';\n }\n\n // INSTANCE\n @property({\n type: Array,\n })\n accessor menuItems: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean; submenu?: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean } | { divider: true })[]; divider?: never } | { divider: true })[] = [];\n windowLayer: DeesWindowLayer;\n \n private submenu: DeesContextmenu | null = null;\n private submenuTimeout: any = null;\n private parentMenu: DeesContextmenu | null = null;\n private isDestroying: boolean = false;\n\n constructor() {\n super();\n this.tabIndex = 0;\n }\n\n /**\n * STATIC STYLES\n */\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n transition: opacity 0.2s, transform 0.2s;\n outline: none;\n }\n\n .mainbox {\n min-width: 200px;\n max-width: 280px;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n border-radius: 4px;\n box-shadow: ${cssManager.bdTheme(\n '0 4px 12px rgba(0, 0, 0, 0.15)',\n '0 4px 12px rgba(0, 0, 0, 0.3)'\n )};\n user-select: none;\n padding: 4px 0;\n font-size: 12px;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n }\n\n .menuitem {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: default;\n transition: background 0.1s;\n line-height: 1;\n position: relative;\n }\n\n .menuitem:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.08)')};\n }\n \n .menuitem.has-submenu::after {\n content: '\u203A';\n position: absolute;\n right: 8px;\n font-size: 16px;\n opacity: 0.5;\n }\n\n .menuitem:active:not(.has-submenu) {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.12)')};\n }\n \n .menuitem.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .menuitem dees-icon {\n font-size: 14px;\n opacity: 0.7;\n }\n\n .menuitem-text {\n flex: 1;\n }\n\n .menuitem-shortcut {\n font-size: 11px;\n color: ${cssManager.bdTheme('#999', '#666')};\n margin-left: auto;\n opacity: 0.7;\n }\n\n .menu-divider {\n height: 1px;\n background: ${cssManager.bdTheme('#e0e0e0', '#202020')};\n margin: 4px 0;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n ${this.menuItems.map((menuItemArg) => {\n if ('divider' in menuItemArg && menuItemArg.divider) {\n return html`
`;\n }\n \n const menuItem = menuItemArg as plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean; submenu?: any };\n const hasSubmenu = menuItem.submenu && menuItem.submenu.length > 0;\n return html`\n
!menuItem.disabled && !hasSubmenu && this.handleClick(menuItem)}\n @mouseenter=${() => this.handleMenuItemHover(menuItem, hasSubmenu)}\n @mouseleave=${() => this.handleMenuItemLeave()}\n >\n ${menuItem.iconName ? html`\n \n ` : ''}\n ${menuItem.name}\n ${menuItem.shortcut && !hasSubmenu ? html`\n ${menuItem.shortcut}\n ` : ''}\n
\n `;\n })}\n ${this.menuItems.length === 0 ? html`\n
{\n DeesContextmenu.contextMenuDeactivated = true;\n this.destroy();\n }}>\n \n Allow native context\n
\n ` : html``}\n
\n `;\n }\n\n public async firstUpdated() {\n // Focus on the menu for keyboard navigation\n this.focus();\n \n // Add keyboard event listeners\n this.addEventListener('keydown', this.handleKeydown);\n }\n \n private handleKeydown = (event: KeyboardEvent) => {\n const menuItems = Array.from(this.shadowRoot.querySelectorAll('.menuitem:not(.disabled)'));\n const currentIndex = menuItems.findIndex(item => item.matches(':hover'));\n \n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n const nextIndex = currentIndex + 1 < menuItems.length ? currentIndex + 1 : 0;\n (menuItems[nextIndex] as HTMLElement).dispatchEvent(new MouseEvent('mouseenter'));\n break;\n \n case 'ArrowUp':\n event.preventDefault();\n const prevIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : menuItems.length - 1;\n (menuItems[prevIndex] as HTMLElement).dispatchEvent(new MouseEvent('mouseenter'));\n break;\n \n case 'Enter':\n event.preventDefault();\n if (currentIndex >= 0) {\n (menuItems[currentIndex] as HTMLElement).click();\n }\n break;\n \n case 'Escape':\n event.preventDefault();\n this.destroy();\n break;\n }\n }\n\n public async handleClick(menuItem: plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean }) {\n menuItem.action();\n \n // Close all menus in the chain (this menu and all parent menus)\n await this.destroyAll();\n }\n \n private async handleMenuItemHover(menuItem: plugins.tsclass.website.IMenuItem & { submenu?: any }, hasSubmenu: boolean) {\n // Clear any existing timeout\n if (this.submenuTimeout) {\n clearTimeout(this.submenuTimeout);\n this.submenuTimeout = null;\n }\n \n // Hide any existing submenu if hovering a different item\n if (this.submenu) {\n await this.hideSubmenu();\n }\n \n // Show submenu if this item has one\n if (hasSubmenu && menuItem.submenu) {\n this.submenuTimeout = setTimeout(() => {\n this.showSubmenu(menuItem);\n }, 200); // Small delay to prevent accidental triggers\n }\n }\n \n private handleMenuItemLeave() {\n // Add a delay before hiding to allow moving to submenu\n if (this.submenuTimeout) {\n clearTimeout(this.submenuTimeout);\n }\n \n this.submenuTimeout = setTimeout(() => {\n if (this.submenu && !this.submenu.matches(':hover')) {\n this.hideSubmenu();\n }\n }, 300);\n }\n \n private async showSubmenu(menuItem: plugins.tsclass.website.IMenuItem & { submenu?: any }) {\n if (!menuItem.submenu || menuItem.submenu.length === 0) return;\n \n // Find the menu item element\n const menuItems = Array.from(this.shadowRoot.querySelectorAll('.menuitem'));\n const menuItemElement = menuItems.find(el => el.querySelector('.menuitem-text')?.textContent === menuItem.name) as HTMLElement;\n if (!menuItemElement) return;\n \n // Create submenu\n this.submenu = new DeesContextmenu();\n this.submenu.menuItems = menuItem.submenu;\n this.submenu.parentMenu = this;\n this.submenu.style.position = 'fixed';\n this.submenu.style.zIndex = String(parseInt(this.style.zIndex) + 1);\n this.submenu.style.opacity = '0';\n this.submenu.style.transform = 'scale(0.95)';\n \n // Don't create a window layer for submenus\n document.body.append(this.submenu);\n \n // Position submenu\n await domtools.plugins.smartdelay.delayFor(0);\n const itemRect = menuItemElement.getBoundingClientRect();\n const menuRect = this.getBoundingClientRect();\n const submenuRect = this.submenu.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n \n let left = menuRect.right - 4; // Slight overlap\n let top = itemRect.top;\n \n // Check if submenu would go off right edge\n if (left + submenuRect.width > windowWidth - 10) {\n // Show on left side instead\n left = menuRect.left - submenuRect.width + 4;\n }\n \n // Adjust vertical position if needed\n if (top + submenuRect.height > window.innerHeight - 10) {\n top = window.innerHeight - submenuRect.height - 10;\n }\n \n this.submenu.style.left = `${left}px`;\n this.submenu.style.top = `${top}px`;\n \n // Animate in\n await domtools.plugins.smartdelay.delayFor(0);\n this.submenu.style.opacity = '1';\n this.submenu.style.transform = 'scale(1)';\n \n // Handle submenu hover\n this.submenu.addEventListener('mouseenter', () => {\n if (this.submenuTimeout) {\n clearTimeout(this.submenuTimeout);\n this.submenuTimeout = null;\n }\n });\n \n this.submenu.addEventListener('mouseleave', () => {\n this.handleMenuItemLeave();\n });\n }\n \n private async hideSubmenu() {\n if (!this.submenu) return;\n \n await this.submenu.destroy();\n this.submenu = null;\n }\n\n public async destroy() {\n // Guard against double-destruction\n if (this.isDestroying) {\n return;\n }\n this.isDestroying = true;\n\n // Clear timeout\n if (this.submenuTimeout) {\n clearTimeout(this.submenuTimeout);\n this.submenuTimeout = null;\n }\n\n // Destroy submenu first\n if (this.submenu) {\n await this.submenu.destroy();\n this.submenu = null;\n }\n\n // Only destroy window layer if this is not a submenu\n // Don't await - let cleanup happen in background for instant visual feedback\n if (this.windowLayer && !this.parentMenu) {\n this.windowLayer.destroy();\n }\n\n this.style.opacity = '0';\n this.style.transform = 'scale(0.95) translateY(-10px)';\n await domtools.plugins.smartdelay.delayFor(100);\n\n if (this.parentElement) {\n this.parentElement.removeChild(this);\n }\n }\n \n /**\n * Destroys this menu and all parent menus in the chain\n */\n public async destroyAll() {\n // Find the root menu (top-level parent)\n let rootMenu: DeesContextmenu = this;\n while (rootMenu.parentMenu) {\n rootMenu = rootMenu.parentMenu;\n }\n\n // Destroy from the root - this will cascade through all submenus\n await rootMenu.destroy();\n }\n}\n\nDeesContextmenu.initializeGlobalListener();\n", null, null, "import { html, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport type { DeesAppuiActivitylog } from './dees-appui-activitylog.js';\n\nexport const demoFunc = () => {\n // Create the activity log element\n const activityLog = document.createElement('dees-appui-activitylog') as DeesAppuiActivitylog;\n\n // Add demo entries after the element is connected\n setTimeout(() => {\n activityLog.addMany([\n { type: 'login', user: 'John Doe', message: 'logged in from Chrome on macOS' },\n { type: 'create', user: 'John Doe', message: 'created a new project \"Frontend App\"' },\n { type: 'update', user: 'Jane Smith', message: 'updated API documentation' },\n { type: 'view', user: 'John Doe', message: 'viewed dashboard analytics' },\n { type: 'delete', user: 'Admin', message: 'removed deprecated endpoint' },\n { type: 'custom', user: 'System', message: 'scheduled backup completed', iconName: 'lucide:database' },\n { type: 'logout', user: 'Alice Brown', message: 'logged out' },\n { type: 'create', user: 'Jane Smith', message: 'created invoice #1234' },\n ]);\n\n // Subscribe to updates\n activityLog.entries$.subscribe((entries) => {\n console.log('Activity log updated:', entries.length, 'entries');\n });\n }, 100);\n\n return html`\n \n \n
\n ${activityLog}\n
\n
\n `;\n};\n", "import {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport type { IActivityEntry, IActivityLogAPI } from '../../interfaces/appconfig.js';\nimport { demoFunc } from './dees-appui-activitylog.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-appui-activitylog')\nexport class DeesAppuiActivitylog extends DeesElement implements IActivityLogAPI {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE PROPERTIES\n @state()\n accessor entries: IActivityEntry[] = [];\n\n @state()\n accessor searchQuery: string = '';\n\n @state()\n accessor filterCriteria: { user?: string; type?: IActivityEntry['type'] } = {};\n\n // RxJS Subject for reactive updates\n public entries$ = new domtools.plugins.smartrx.rxjs.Subject();\n\n // STYLES\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n /* CSS Variables aligned with secondary menu */\n --activitylog-bg: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n --activitylog-fg: ${cssManager.bdTheme('#525252', '#a3a3a3')};\n --activitylog-fg-muted: ${cssManager.bdTheme('#737373', '#737373')};\n --activitylog-fg-active: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n --activitylog-border: ${cssManager.bdTheme('#e5e5e5', '#1a1a1a')};\n --activitylog-hover: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.06)')};\n --activitylog-accent: ${cssManager.bdTheme('#78716c', '#b5a99a')};\n\n color: var(--activitylog-fg);\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n background: var(--activitylog-bg);\n font-family: 'Geist Sans', -apple-system, BlinkMacSystemFont, sans-serif;\n border-left: 1px solid var(--activitylog-border);\n cursor: default;\n overflow: hidden;\n }\n\n .maincontainer {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 280px;\n }\n\n /* Header with streaming indicator */\n .topbar {\n position: absolute;\n top: 0px;\n height: 48px;\n width: 100%;\n padding: 0px 12px;\n background: var(--activitylog-bg);\n border-bottom: 1px solid var(--activitylog-border);\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n }\n\n .topbar .heading {\n font-weight: 600;\n font-size: 14px;\n color: var(--activitylog-fg-active);\n }\n\n .live-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--activitylog-fg-muted);\n }\n\n .live-indicator .dot {\n width: 6px;\n height: 6px;\n background: ${cssManager.bdTheme('#22c55e', '#22c55e')};\n border-radius: 50%;\n animation: pulse 2s ease-in-out infinite;\n }\n\n @keyframes pulse {\n 0%, 100% { opacity: 0.5; transform: scale(0.9); }\n 50% { opacity: 1; transform: scale(1.1); }\n }\n\n /* Activity container */\n .activityContainer {\n position: absolute;\n top: 48px;\n bottom: 48px;\n width: 100%;\n padding: 8px 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n scrollbar-color: ${cssManager.bdTheme('#d4d4d4', '#333333')} transparent;\n }\n\n .activityContainer::-webkit-scrollbar {\n width: 6px;\n }\n\n .activityContainer::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .activityContainer::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('#d4d4d4', '#333333')};\n border-radius: 3px;\n }\n\n .activityContainer::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('#a3a3a3', '#525252')};\n }\n\n .empty-state {\n font-size: 13px;\n text-align: center;\n padding: 40px 16px;\n color: var(--activitylog-fg-muted);\n }\n\n /* Date separator - warm taupe styling */\n .date-separator {\n padding: 12px 12px 6px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--activitylog-accent);\n position: sticky;\n top: 0;\n z-index: 1;\n background: var(--activitylog-bg);\n }\n\n /* Activity entry - modern stacked layout */\n .activityentry {\n font-size: 12px;\n padding: 8px 12px;\n margin: 2px 4px;\n border-radius: 6px;\n transition: background 0.15s ease;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n line-height: 1.4;\n animation: fadeIn 0.2s ease-out;\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-2px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .activityentry:hover {\n background: var(--activitylog-hover);\n }\n\n .activity-icon {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.06)')};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n font-size: 13px;\n color: var(--activitylog-fg-muted);\n margin-top: 1px;\n }\n\n .activity-icon.login {\n background: ${cssManager.bdTheme('rgba(34, 197, 94, 0.08)', 'rgba(34, 197, 94, 0.12)')};\n color: ${cssManager.bdTheme('#16a34a', '#4ade80')};\n }\n\n .activity-icon.logout {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.08)', 'rgba(239, 68, 68, 0.12)')};\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n }\n\n .activity-icon.view {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.08)', 'rgba(59, 130, 246, 0.12)')};\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n\n .activity-icon.create {\n background: ${cssManager.bdTheme('rgba(168, 85, 247, 0.08)', 'rgba(168, 85, 247, 0.12)')};\n color: ${cssManager.bdTheme('#9333ea', '#c084fc')};\n }\n\n .activity-icon.update {\n background: ${cssManager.bdTheme('rgba(251, 146, 60, 0.08)', 'rgba(251, 146, 60, 0.12)')};\n color: ${cssManager.bdTheme('#ea580c', '#fb923c')};\n }\n\n .activity-icon.delete {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.08)', 'rgba(239, 68, 68, 0.12)')};\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n }\n\n .activity-icon.custom {\n background: ${cssManager.bdTheme('rgba(100, 116, 139, 0.08)', 'rgba(100, 116, 139, 0.12)')};\n color: ${cssManager.bdTheme('#475569', '#94a3b8')};\n }\n\n .activity-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .activity-header {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .activity-user {\n font-weight: 600;\n font-size: 12px;\n color: var(--activitylog-fg-active);\n }\n\n .activity-separator {\n color: var(--activitylog-fg-muted);\n font-size: 10px;\n }\n\n .timestamp {\n color: var(--activitylog-fg-muted);\n font-weight: 400;\n font-size: 11px;\n font-variant-numeric: tabular-nums;\n font-family: 'Geist Mono', monospace;\n }\n\n .activity-message {\n color: var(--activitylog-fg);\n font-size: 12px;\n line-height: 1.5;\n word-break: break-word;\n }\n\n /* Search box - refined styling */\n .searchbox {\n position: absolute;\n bottom: 0px;\n width: 100%;\n height: 48px;\n background: var(--activitylog-bg);\n border-top: 1px solid var(--activitylog-border);\n padding: 8px 12px;\n box-sizing: border-box;\n }\n\n .search-wrapper {\n position: relative;\n width: 100%;\n height: 32px;\n }\n\n .search-icon {\n position: absolute;\n left: 10px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--activitylog-fg-muted);\n font-size: 13px;\n pointer-events: none;\n transition: color 0.15s ease;\n }\n\n .searchbox input {\n color: var(--activitylog-fg-active);\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.03)', 'rgba(255, 255, 255, 0.04)')};\n width: 100%;\n height: 100%;\n border: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.08)')};\n border-radius: 6px;\n padding: 0 12px 0 34px;\n font-family: 'Geist Sans', sans-serif;\n font-size: 12px;\n transition: all 0.15s ease;\n }\n\n .searchbox input::placeholder {\n color: var(--activitylog-fg-muted);\n }\n\n .searchbox input:focus {\n outline: none;\n border-color: ${cssManager.bdTheme('rgba(0, 0, 0, 0.15)', 'rgba(255, 255, 255, 0.15)')};\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.02)', 'rgba(255, 255, 255, 0.06)')};\n }\n\n .search-wrapper:has(input:focus) .search-icon {\n color: var(--activitylog-fg);\n }\n `,\n ];\n\n // RENDER\n public render(): TemplateResult {\n const filteredEntries = this.getFilteredEntries();\n const groupedEntries = this.groupEntriesByDate(filteredEntries);\n\n return html`\n ${domtools.elementBasic.styles}\n \n
\n
\n
Activity Log
\n ${filteredEntries.length > 0\n ? html`
Live
`\n : ''}\n
\n
\n ${filteredEntries.length === 0\n ? html`
No activity entries
`\n : groupedEntries.map(\n (group) => html`\n
${group.label}
\n ${group.entries.map((entry) => this.renderActivityEntry(entry))}\n `\n )}\n
\n
\n
\n \n \n
\n
\n
\n `;\n }\n\n private renderActivityEntry(entry: IActivityEntry): TemplateResult {\n const timestamp = entry.timestamp || new Date();\n const timeStr = this.formatTime(timestamp);\n const iconName = entry.iconName || this.getIconForType(entry.type);\n\n return html`\n this.handleContextMenu(e, entry)}\n >\n
\n \n
\n
\n
\n ${entry.user}\n \u00B7\n ${timeStr}\n
\n
${entry.message}
\n
\n \n `;\n }\n\n // API METHODS\n public add(entry: IActivityEntry): void {\n const newEntry: IActivityEntry = {\n ...entry,\n id: entry.id || this.generateId(),\n timestamp: entry.timestamp || new Date(),\n };\n this.entries = [newEntry, ...this.entries];\n this.entries$.next(this.entries);\n }\n\n public addMany(entries: IActivityEntry[]): void {\n const newEntries = entries.map((entry) => ({\n ...entry,\n id: entry.id || this.generateId(),\n timestamp: entry.timestamp || new Date(),\n }));\n this.entries = [...newEntries.reverse(), ...this.entries];\n this.entries$.next(this.entries);\n }\n\n public clear(): void {\n this.entries = [];\n this.entries$.next(this.entries);\n }\n\n public getEntries(): IActivityEntry[] {\n return [...this.entries];\n }\n\n public filter(criteria: { user?: string; type?: IActivityEntry['type'] }): IActivityEntry[] {\n return this.entries.filter((entry) => {\n if (criteria.user && entry.user !== criteria.user) return false;\n if (criteria.type && entry.type !== criteria.type) return false;\n return true;\n });\n }\n\n public search(query: string): IActivityEntry[] {\n const lowerQuery = query.toLowerCase();\n return this.entries.filter(\n (entry) =>\n entry.message.toLowerCase().includes(lowerQuery) ||\n entry.user.toLowerCase().includes(lowerQuery)\n );\n }\n\n // PRIVATE HELPERS\n private generateId(): string {\n return `activity-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n }\n\n private getFilteredEntries(): IActivityEntry[] {\n let result = this.entries;\n\n if (this.searchQuery) {\n const lowerQuery = this.searchQuery.toLowerCase();\n result = result.filter(\n (entry) =>\n entry.message.toLowerCase().includes(lowerQuery) ||\n entry.user.toLowerCase().includes(lowerQuery)\n );\n }\n\n if (this.filterCriteria.user || this.filterCriteria.type) {\n result = result.filter((entry) => {\n if (this.filterCriteria.user && entry.user !== this.filterCriteria.user) return false;\n if (this.filterCriteria.type && entry.type !== this.filterCriteria.type) return false;\n return true;\n });\n }\n\n return result;\n }\n\n private groupEntriesByDate(\n entries: IActivityEntry[]\n ): Array<{ label: string; entries: IActivityEntry[] }> {\n const groups: Map = new Map();\n const today = new Date();\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n\n for (const entry of entries) {\n const date = entry.timestamp || new Date();\n let label: string;\n\n if (this.isSameDay(date, today)) {\n label = 'Today';\n } else if (this.isSameDay(date, yesterday)) {\n label = 'Yesterday';\n } else {\n label = date.toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: date.getFullYear() !== today.getFullYear() ? 'numeric' : undefined,\n });\n }\n\n if (!groups.has(label)) {\n groups.set(label, []);\n }\n groups.get(label)!.push(entry);\n }\n\n return Array.from(groups.entries()).map(([label, entries]) => ({\n label,\n entries,\n }));\n }\n\n private isSameDay(date1: Date, date2: Date): boolean {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n private formatTime(date: Date): string {\n return date.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n }\n\n private getIconForType(type: IActivityEntry['type']): string {\n const icons: Record = {\n login: 'lucide:logIn',\n logout: 'lucide:logOut',\n view: 'lucide:eye',\n create: 'lucide:plus',\n update: 'lucide:edit',\n delete: 'lucide:trash2',\n custom: 'lucide:activity',\n };\n return icons[type] || icons.custom;\n }\n\n private handleSearchInput(e: InputEvent): void {\n const target = e.target as HTMLInputElement;\n this.searchQuery = target.value;\n }\n\n private handleContextMenu(e: MouseEvent, entry: IActivityEntry): void {\n e.preventDefault();\n DeesContextmenu.openContextMenuWithOptions(e, [\n {\n name: 'Copy activity',\n iconName: 'lucide:copy',\n action: async () => {\n await navigator.clipboard.writeText(`${entry.user} ${entry.message}`);\n },\n },\n {\n name: 'Filter by user',\n iconName: 'lucide:user',\n action: async () => {\n this.filterCriteria = { user: entry.user };\n },\n },\n {\n name: 'Filter by type',\n iconName: 'lucide:filter',\n action: async () => {\n this.filterCriteria = { type: entry.type };\n },\n },\n {\n name: 'Clear filters',\n iconName: 'lucide:x',\n action: async () => {\n this.filterCriteria = {};\n this.searchQuery = '';\n },\n },\n ]);\n }\n}\n", "export * from './dees-appui-activitylog.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2ludGVyZmFjZXMvdGFiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "import * as plugins from '../00plugins.js';\n\n/**\n * Divider menu item\n */\nexport interface IAppBarMenuDivider {\n divider: true;\n}\n\n/**\n * Regular menu item\n */\nexport interface IAppBarMenuItemRegular extends plugins.tsclass.website.IMenuItem {\n id?: string;\n shortcut?: string; // e.g., \"Cmd+S\" or \"Ctrl+S\"\n submenu?: IAppBarMenuItem[];\n disabled?: boolean;\n checked?: boolean; // For checkbox menu items\n radioGroup?: string; // For radio button menu items\n}\n\n/**\n * Extended menu item interface for app bar menus\n * Can be either a regular menu item or a divider\n */\nexport type IAppBarMenuItem = IAppBarMenuItemRegular | IAppBarMenuDivider;\n\n/**\n * Interface for the menu bar configuration\n */\nexport interface IMenuBar {\n menuItems: IAppBarMenuItem[];\n onMenuSelect?: (item: IAppBarMenuItem) => void;\n}", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2ludGVyZmFjZXMvbWVudWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2ludGVyZmFjZXMvYXBwY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "/**\n * Secondary Menu Item Types\n *\n * Supports 8 item types:\n * 1. Tab - selectable, stays highlighted (existing behavior)\n * 2. Action - executes without selection (primary = blue)\n * 3. Danger Action - red styling with optional confirmation\n * 4. Filter - checkbox toggle, emits immediately\n * 5. Multi-Filter - collapsible box with multiple checkboxes\n * 6. Divider - visual separator\n * 7. Header - non-interactive label\n * 8. Link - opens URL\n */\n\n// Base properties shared by interactive items\nexport interface ISecondaryMenuItemBase {\n key: string;\n iconName?: string;\n disabled?: boolean;\n hidden?: boolean;\n}\n\n// 1. Tab - existing behavior (selectable, stays highlighted)\nexport interface ISecondaryMenuItemTab extends ISecondaryMenuItemBase {\n type?: 'tab'; // default if omitted for backward compatibility\n action: () => void;\n badge?: string | number;\n badgeVariant?: 'default' | 'success' | 'warning' | 'error';\n}\n\n// 2 & 3. Action - executes without selection\nexport interface ISecondaryMenuItemAction extends ISecondaryMenuItemBase {\n type: 'action';\n action: () => void | Promise;\n variant?: 'primary' | 'danger'; // primary = blue (default), danger = red\n confirmMessage?: string; // Shows confirmation dialog before executing\n}\n\n// 4. Single filter toggle\nexport interface ISecondaryMenuItemFilter extends ISecondaryMenuItemBase {\n type: 'filter';\n active: boolean;\n onToggle: (active: boolean) => void;\n}\n\n// 5. Multi-select filter group (collapsible)\nexport interface ISecondaryMenuItemMultiFilter extends ISecondaryMenuItemBase {\n type: 'multiFilter';\n collapsed?: boolean; // Accordion state\n options: Array<{\n key: string;\n label: string;\n checked: boolean;\n iconName?: string;\n }>;\n onChange: (selectedKeys: string[]) => void;\n}\n\n// 6. Divider\nexport interface ISecondaryMenuItemDivider {\n type: 'divider';\n}\n\n// 7. Header/Label\nexport interface ISecondaryMenuItemHeader {\n type: 'header';\n label: string;\n}\n\n// 8. External link\nexport interface ISecondaryMenuItemLink extends ISecondaryMenuItemBase {\n type: 'link';\n href: string;\n external?: boolean; // Opens in new tab (default: true if href starts with http)\n}\n\n// Union type for all secondary menu items\nexport type ISecondaryMenuItem =\n | ISecondaryMenuItemTab\n | ISecondaryMenuItemAction\n | ISecondaryMenuItemFilter\n | ISecondaryMenuItemMultiFilter\n | ISecondaryMenuItemDivider\n | ISecondaryMenuItemHeader\n | ISecondaryMenuItemLink;\n\n// Group interface for secondary menu\nexport interface ISecondaryMenuGroup {\n name: string;\n iconName?: string;\n collapsed?: boolean;\n items: ISecondaryMenuItem[];\n}\n", "export * from './tab.js';\nexport * from './appbarmenuitem.js';\nexport * from './menugroup.js';\nexport * from './appconfig.js';\nexport * from './secondarymenu.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport type { DeesAppuiBar } from './component.js';\nimport type { IAppBarMenuItem } from '../../interfaces/appbarmenuitem.js';\nimport '@design.estate/dees-wcctools/demotools';\nimport './component.js';\n\nexport const demoFunc = () => {\n // Sample menu items with various configurations\n // Note: Following standard desktop UI patterns, top-level menu items don't have icons\n // Icons are only used in dropdown menu items for better visual hierarchy\n const menuItems: IAppBarMenuItem[] = [\n {\n name: 'File',\n action: async () => {}, // No-op action for menu with submenu\n submenu: [\n { name: 'New File', shortcut: 'Cmd+N', iconName: 'file-plus', action: async () => console.log('New file') },\n { name: 'Open...', shortcut: 'Cmd+O', iconName: 'folder-open', action: async () => console.log('Open') },\n { name: 'Open Recent', action: async () => {}, submenu: [\n { name: 'project-alpha.ts', action: async () => console.log('Open recent 1') },\n { name: 'config.json', action: async () => console.log('Open recent 2') },\n { name: 'readme.md', action: async () => console.log('Open recent 3') },\n ]},\n { divider: true },\n { name: 'Save', shortcut: 'Cmd+S', iconName: 'save', action: async () => console.log('Save') },\n { name: 'Save As...', shortcut: 'Cmd+Shift+S', action: async () => console.log('Save as'), disabled: true },\n { divider: true },\n { name: 'Exit', shortcut: 'Cmd+Q', action: async () => console.log('Exit') },\n ]\n },\n {\n name: 'Edit',\n action: async () => {}, // No-op action for menu with submenu\n submenu: [\n { name: 'Undo', shortcut: 'Cmd+Z', iconName: 'undo', action: async () => console.log('Undo') },\n { name: 'Redo', shortcut: 'Cmd+Shift+Z', iconName: 'redo', action: async () => console.log('Redo') },\n { divider: true },\n { name: 'Cut', shortcut: 'Cmd+X', iconName: 'scissors', action: async () => console.log('Cut') },\n { name: 'Copy', shortcut: 'Cmd+C', iconName: 'copy', action: async () => console.log('Copy') },\n { name: 'Paste', shortcut: 'Cmd+V', iconName: 'clipboard', action: async () => console.log('Paste') },\n { divider: true },\n { name: 'Find', shortcut: 'Cmd+F', iconName: 'search', action: async () => console.log('Find') },\n { name: 'Replace', shortcut: 'Cmd+H', action: async () => console.log('Replace') },\n ]\n },\n {\n name: 'View',\n action: async () => {}, // No-op action for menu with submenu\n submenu: [\n { name: 'Toggle Fullscreen', shortcut: 'F11', iconName: 'expand', action: async () => console.log('Fullscreen') },\n { name: 'Zoom In', shortcut: 'Cmd++', iconName: 'zoom-in', action: async () => console.log('Zoom in') },\n { name: 'Zoom Out', shortcut: 'Cmd+-', iconName: 'zoom-out', action: async () => console.log('Zoom out') },\n { name: 'Reset Zoom', shortcut: 'Cmd+0', action: async () => console.log('Reset zoom') },\n { divider: true },\n { name: 'Toggle Sidebar', shortcut: 'Cmd+B', action: async () => console.log('Toggle sidebar') },\n { name: 'Toggle Terminal', shortcut: 'Cmd+J', iconName: 'terminal', action: async () => console.log('Toggle terminal') },\n ]\n },\n {\n name: 'Help',\n action: async () => {}, // No-op action for menu with submenu\n submenu: [\n { name: 'Documentation', iconName: 'book', action: async () => console.log('Documentation') },\n { name: 'Release Notes', iconName: 'file-text', action: async () => console.log('Release notes') },\n { divider: true },\n { name: 'Report Issue', iconName: 'bug', action: async () => console.log('Report issue') },\n { name: 'About', iconName: 'info', action: async () => console.log('About') },\n ]\n }\n ];\n\n return html`\n {\n const appbar = elementArg.querySelector('#appbar') as DeesAppuiBar;\n \n // Set up status toggle\n const statusButtons = elementArg.querySelectorAll('.status-toggle dees-button');\n statusButtons[0].addEventListener('click', () => {\n appbar.user = { ...appbar.user, status: 'online' };\n });\n statusButtons[1].addEventListener('click', () => {\n appbar.user = { ...appbar.user, status: 'busy' };\n });\n statusButtons[2].addEventListener('click', () => {\n appbar.user = { ...appbar.user, status: 'away' };\n });\n statusButtons[3].addEventListener('click', () => {\n appbar.user = { ...appbar.user, status: 'offline' };\n });\n \n // Set up window controls toggle\n const windowControlsButton = elementArg.querySelector('.window-controls-toggle dees-button');\n windowControlsButton.addEventListener('click', () => {\n appbar.showWindowControls = !appbar.showWindowControls;\n });\n \n // Set up breadcrumb buttons\n const breadcrumbButtons = elementArg.querySelectorAll('.breadcrumb-toggle dees-button');\n breadcrumbButtons[0].addEventListener('click', () => {\n appbar.breadcrumbs = 'Home > Documents > Projects > MyApp > src > index.ts';\n });\n breadcrumbButtons[1].addEventListener('click', () => {\n appbar.breadcrumbs = 'Dashboard';\n });\n }}>\n \n \n
\n src > components > AppBar.ts'}\n .breadcrumbSeparator=${' > '}\n .showWindowControls=${true}\n .showSearch=${true}\n .theme=${'dark'}\n .user=${{\n name: 'John Doe',\n status: 'online' as 'online' | 'offline' | 'busy' | 'away'\n }}\n @menu-select=${(e: CustomEvent) => console.log('Menu selected:', e.detail.item)}\n @breadcrumb-navigate=${(e: CustomEvent) => console.log('Breadcrumb clicked:', e.detail)}\n @search-click=${() => console.log('Search clicked')}\n @user-menu-open=${() => console.log('User menu clicked')}\n >\n \n
\n

App Bar Demo

\n

This demo shows various features of the app bar component:

\n
    \n
  • Dynamic menu items with icons, shortcuts, and submenus
  • \n
  • Breadcrumb navigation
  • \n
  • User account section with status indicator
  • \n
  • Search icon
  • \n
  • Window controls (platform-specific)
  • \n
  • Dark/light theme support
  • \n
  • Keyboard navigation (Tab, Enter, Escape)
  • \n
  • Custom events for all interactions
  • \n
\n
\n \n
\n
\n \n \n Dark\n Light\n \n
\n \n
\n \n \n Online\n Busy\n Away\n Offline\n \n
\n \n
\n \n \n Toggle\n \n
\n \n
\n \n \n Long Path\n Short Path\n \n
\n
\n
\n
\n `;\n};", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const appuiAppbarStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n /* CSS Variables for theming */\n --appbar-height: 40px;\n --appbar-font-size: 12px;\n \n display: block;\n position: relative;\n width: 100%;\n height: var(--appbar-height);\n border-bottom: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n color: ${cssManager.bdTheme('#00000080', '#ffffff80')};\n font-size: var(--appbar-font-size);\n display: grid;\n grid-template-columns: auto 1fr auto;\n -webkit-app-region: drag;\n user-select: none;\n }\n\n .menus {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 0 8px;\n cursor: default;\n }\n\n .menuItem {\n position: relative;\n line-height: 24px;\n padding: 0px 12px;\n margin: 8px 0px;\n border-radius: 4px;\n -webkit-app-region: no-drag;\n transition: all 0.2s ease;\n cursor: default;\n outline: none;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n /* Optional: Style for menu items with icons (not typically used for top-level items) */\n .menuItem dees-icon {\n font-size: 14px;\n opacity: 0.8;\n }\n\n .menuItem:hover {\n background: ${cssManager.bdTheme('#00000010', '#ffffff20')};\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .menuItem.active {\n background: ${cssManager.bdTheme('#00000020', '#ffffff30')};\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .menuItem[disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .menuItem:focus-visible {\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('#00000080', '#ffffff80')};\n }\n\n\n /* Dropdown styles */\n .dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n min-width: 200px;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n border-radius: 4px;\n box-shadow: ${cssManager.bdTheme('0 4px 12px rgba(0, 0, 0, 0.15)', '0 4px 12px rgba(0, 0, 0, 0.3)')};\n margin-top: 4px;\n z-index: 1000;\n opacity: 0;\n transform: translateY(-10px);\n transition: opacity 0.2s, transform 0.2s;\n pointer-events: none;\n }\n\n .dropdown.open {\n opacity: 1;\n transform: translateY(0);\n pointer-events: auto;\n }\n\n .dropdown-item {\n padding: 8px 16px;\n cursor: default;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: background 0.1s;\n }\n\n .dropdown-item:hover,\n .dropdown-item.focused {\n background: ${cssManager.bdTheme('#00000010', '#ffffff20')};\n }\n\n .dropdown-divider {\n height: 1px;\n background: ${cssManager.bdTheme('#e0e0e0', '#202020')};\n margin: 4px 0;\n }\n\n .dropdown-item[disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .dropdown-item .shortcut {\n margin-left: auto;\n opacity: 0.6;\n font-size: 11px;\n }\n\n /* Breadcrumbs */\n .breadcrumbs {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 0 16px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .breadcrumb-item {\n color: ${cssManager.bdTheme('#00000080', '#ffffff80')};\n cursor: default;\n transition: color 0.2s;\n }\n\n .breadcrumb-item:hover {\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .breadcrumb-separator {\n margin: 0 8px;\n opacity: 0.5;\n }\n\n /* Account section */\n .account {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 0 16px;\n gap: 12px;\n }\n\n .search-icon {\n cursor: default;\n opacity: 0.7;\n transition: opacity 0.2s;\n }\n\n .search-icon:hover {\n opacity: 1;\n }\n\n .user-info {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: default;\n padding: 4px 8px;\n border-radius: 4px;\n transition: background 0.2s;\n }\n\n .user-info:hover {\n background: ${cssManager.bdTheme('#00000010', '#ffffff20')};\n }\n\n .user-avatar {\n position: relative;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('#00000020', '#ffffff30')};\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: bold;\n }\n\n .user-avatar img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n object-fit: cover;\n }\n\n .user-status {\n position: absolute;\n bottom: -2px;\n right: -2px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n border: 2px solid ${cssManager.bdTheme('#ffffff', '#000000')};\n }\n\n .user-status.online {\n background: #4caf50;\n }\n\n .user-status.offline {\n background: #757575;\n }\n\n .user-status.busy {\n background: #f44336;\n }\n\n .user-status.away {\n background: #ff9800;\n }\n\n /* Activity log toggle button */\n .activity-toggle {\n display: flex;\n align-items: center;\n gap: 2px;\n height: 28px;\n padding: 0 8px;\n border-radius: 6px;\n cursor: default;\n -webkit-app-region: no-drag;\n color: ${cssManager.bdTheme('#00000060', '#ffffff60')};\n border: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n transition: all 0.15s ease;\n }\n\n .activity-toggle:hover {\n background: ${cssManager.bdTheme('#00000010', '#ffffff15')};\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n border-color: transparent;\n }\n\n .activity-toggle.active {\n background: ${cssManager.bdTheme('#00000015', '#ffffff20')};\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n border-color: transparent;\n }\n\n .activity-toggle dees-icon {\n font-size: 14px;\n }\n\n .activity-badge {\n position: relative;\n margin-left: 4px;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n background: ${cssManager.bdTheme('#525252', '#525252')};\n color: #fafafa;\n font-size: 10px;\n font-weight: 600;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n }\n `,\n ];\n\n", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport type { DeesAppuiBar } from './component.js';\n\nexport const renderAppuiAppbar = (component: DeesAppuiBar): TemplateResult => {\n return html`\n
\n ${component.showWindowControls ? html`` : ''}\n ${component.renderMenuItems()}\n
\n
\n ${component.renderBreadcrumbs()}\n
\n
\n ${component.renderAccountSection()}\n
\n `;\n \n};\n", "import {\n customElement,\n DeesElement,\n domtools,\n type TemplateResult,\n html,\n property,\n type CSSResult,\n state,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-windowcontrols': DeesWindowControls;\n }\n}\n\n@customElement('dees-windowcontrols')\nexport class DeesWindowControls extends DeesElement {\n // STATIC\n public static demo = () => html``;\n public static demoGroups = ['Utility'];\n\n // Instance\n @property({\n reflect: true,\n })\n accessor type: 'mac' | 'linux' | 'windows' = 'mac';\n\n @property({\n reflect: true,\n })\n accessor position: 'left' | 'right' = 'left';\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: relative;\n display: block;\n box-sizing: border-box;\n padding-left: 16px;\n padding-right: 16px;\n }\n\n .windowControls {\n height: 100%;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .windowControls div {\n width: 12px;\n height: 12px;\n display: inline-block;\n border-radius: 50%;\n margin: 0px;\n padding: 0px;\n background: #222222;\n }\n\n .windowControls div.close {\n background: #ff5f57;\n margin-right: 12px;\n }\n\n .windowControls div.toDock {\n background: #ffbd2e;\n margin-right: 12px;\n }\n\n .windowControls div.minMax {\n background: #27c93f;\n }\n\n .windowControls div:hover {\n background: #333333;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n ${(this.type === 'mac' && this.position === 'left') ||\n ((this.type === 'linux' || this.type === 'windows') && this.position === 'right')\n ? html`\n
\n
\n
\n
\n
\n `\n : html``}\n `;\n }\n}\n", "import * as plugins from '../../00plugins.js';\nimport { zIndexLayers } from '../../00zindex.js';\n\nimport {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-appui-profiledropdown')\nexport class DeesAppuiProfileDropdown extends DeesElement {\n public static demo = () => html`\n console.log('Profile') },\n { name: 'Account', iconName: 'settings', action: async () => console.log('Account') },\n { divider: true },\n { name: 'Help & Support', iconName: 'helpCircle', action: async () => console.log('Help') },\n { name: 'Keyboard Shortcuts', iconName: 'keyboard', shortcut: 'Cmd+K', action: async () => console.log('Shortcuts') },\n { divider: true },\n { name: 'Sign Out', iconName: 'logOut', action: async () => console.log('Sign out') }\n ]}\n .isOpen=${true}\n >\n `;\n public static demoGroups = ['App UI'];\n\n @property({ type: Object })\n accessor user: {\n name: string;\n email?: string;\n avatar?: string;\n status?: 'online' | 'offline' | 'busy' | 'away';\n } | undefined = undefined;\n\n @property({ type: Array })\n accessor menuItems: (plugins.tsclass.website.IMenuItem & { shortcut?: string } | { divider: true })[] = [];\n\n @property({ type: Boolean, reflect: true })\n accessor isOpen: boolean = false;\n\n @property({ type: String })\n accessor position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' = 'top-right';\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n pointer-events: none;\n }\n\n .dropdown {\n position: absolute;\n min-width: 220px;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n border-radius: 4px;\n box-shadow: ${cssManager.bdTheme(\n '0 4px 12px rgba(0, 0, 0, 0.15)',\n '0 4px 12px rgba(0, 0, 0, 0.3)'\n )};\n z-index: ${zIndexLayers.overlay.dropdown};\n opacity: 0;\n transform: scale(0.95) translateY(-10px);\n transition: opacity 0.2s, transform 0.2s;\n pointer-events: none;\n overflow: hidden;\n font-size: 12px;\n }\n\n :host([isopen]) .dropdown {\n opacity: 1;\n transform: scale(1) translateY(0);\n pointer-events: auto;\n }\n \n .backdrop {\n display: none;\n }\n\n /* Position variants */\n .dropdown.top-right {\n top: 100%;\n right: 0;\n margin-top: 4px;\n }\n\n .dropdown.top-left {\n top: 100%;\n left: 0;\n margin-top: 8px;\n }\n\n .dropdown.bottom-right {\n bottom: 100%;\n right: 0;\n margin-bottom: 8px;\n }\n\n .dropdown.bottom-left {\n bottom: 100%;\n left: 0;\n margin-bottom: 8px;\n }\n\n /* User section */\n .user-section {\n padding: 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n }\n\n .user-info {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .user-avatar {\n position: relative;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('#f0f0f0', '#1a1a1a')};\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#666', '#999')};\n overflow: hidden;\n }\n\n .user-avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .user-status {\n position: absolute;\n bottom: 0;\n right: 0;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n border: 2px solid ${cssManager.bdTheme('#ffffff', '#000000')};\n }\n\n .user-status.online {\n background: #4caf50;\n }\n\n .user-status.offline {\n background: #757575;\n }\n\n .user-status.busy {\n background: #f44336;\n }\n\n .user-status.away {\n background: #ff9800;\n }\n\n .user-details {\n flex: 1;\n min-width: 0;\n }\n\n .user-name {\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#000', '#fff')};\n line-height: 1.2;\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-email {\n font-size: 11px;\n color: ${cssManager.bdTheme('#666', '#999')};\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* Menu section */\n .menu-section {\n padding: 4px 0;\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: default;\n transition: background 0.1s;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n font-size: 12px;\n line-height: 1;\n user-select: none;\n }\n\n .menu-item:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.08)')};\n }\n\n .menu-item:active {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.12)')};\n }\n\n .menu-item dees-icon {\n font-size: 14px;\n opacity: 0.7;\n }\n\n .menu-item-text {\n flex: 1;\n }\n\n .menu-shortcut {\n font-size: 11px;\n color: ${cssManager.bdTheme('#999', '#666')};\n margin-left: auto;\n opacity: 0.7;\n }\n\n .menu-divider {\n height: 1px;\n background: ${cssManager.bdTheme('#e0e0e0', '#202020')};\n margin: 4px 0;\n }\n\n /* Backdrop for mobile */\n @media (max-width: 768px) {\n .backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n z-index: ${zIndexLayers.backdrop.dropdown};\n opacity: 0;\n transition: opacity 0.2s;\n display: none;\n }\n\n :host([isopen]) .backdrop {\n display: block;\n opacity: 1;\n pointer-events: auto;\n }\n\n .dropdown {\n position: fixed;\n top: 50%;\n left: 50%;\n right: auto;\n bottom: auto;\n transform: translate(-50%, -50%) scale(0.95);\n margin: 0;\n max-width: calc(100vw - 32px);\n max-height: calc(100vh - 32px);\n overflow-y: auto;\n overscroll-behavior: contain;\n }\n\n :host([isopen]) .dropdown {\n transform: translate(-50%, -50%) scale(1);\n }\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
this.close()}>
\n
\n ${this.user ? html`\n
\n
\n
\n ${this.user.avatar \n ? html`\"${this.user.name}\"`\n : this.getInitials(this.user.name)\n }\n ${this.user.status ? html`\n
\n ` : ''}\n
\n
\n
${this.user.name}
\n ${this.user.email ? html`\n
${this.user.email}
\n ` : ''}\n
\n
\n
\n ` : ''}\n \n
\n ${this.menuItems.map(item => this.renderMenuItem(item))}\n
\n
\n `;\n }\n\n private renderMenuItem(item: plugins.tsclass.website.IMenuItem & { shortcut?: string } | { divider: true }): TemplateResult {\n if ('divider' in item && item.divider) {\n return html`
`;\n }\n\n const menuItem = item as plugins.tsclass.website.IMenuItem & { iconName?: string; shortcut?: string };\n return html`\n
this.handleMenuClick(menuItem)}>\n ${menuItem.iconName ? html`\n \n ` : ''}\n ${menuItem.name}\n ${menuItem.shortcut ? html`\n ${menuItem.shortcut}\n ` : ''}\n
\n `;\n }\n\n private getInitials(name: string): string {\n return name\n .split(' ')\n .map(part => part[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n }\n\n private async handleMenuClick(item: plugins.tsclass.website.IMenuItem & { iconName?: string; shortcut?: string }) {\n await item.action();\n this.close();\n \n // Emit menu-select event\n this.dispatchEvent(new CustomEvent('menu-select', {\n detail: { item },\n bubbles: true,\n composed: true\n }));\n }\n\n public open() {\n this.isOpen = true;\n }\n\n public close() {\n this.isOpen = false;\n }\n\n public toggle() {\n this.isOpen = !this.isOpen;\n }\n\n // Handle clicks outside the dropdown\n async connectedCallback() {\n await super.connectedCallback();\n this.handleOutsideClick = this.handleOutsideClick.bind(this);\n document.addEventListener('click', this.handleOutsideClick);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('click', this.handleOutsideClick);\n }\n\n private handleOutsideClick(event: MouseEvent) {\n if (this.isOpen && !this.contains(event.target as Node)) {\n // Check if the click is on the parent element (which contains the profile button)\n const parentElement = this.parentElement;\n if (parentElement && parentElement.contains(event.target as Node)) {\n // Don't close if clicking within the parent element (e.g., on the profile button)\n return;\n }\n this.close();\n }\n }\n}", "import {\n DeesElement,\n type TemplateResult,\n customElement,\n property,\n state,\n html,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport * as interfaces from '../../interfaces/index.js';\nimport * as plugins from '../../00plugins.js';\nimport { demoFunc } from './demo.js';\nimport { appuiAppbarStyles } from './styles.js';\nimport { renderAppuiAppbar } from './template.js';\n\n// Import required components\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-utility/dees-windowcontrols/dees-windowcontrols.js';\nimport '../dees-appui-profiledropdown/dees-appui-profiledropdown.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-appui-appbar': DeesAppuiBar;\n }\n}\n\n@customElement('dees-appui-appbar')\nexport class DeesAppuiBar extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE PROPERTIES\n @property({ type: Array })\n accessor menuItems: interfaces.IAppBarMenuItem[] = [];\n\n @property({ type: String })\n accessor breadcrumbs: string = '';\n\n @property({ type: String })\n accessor breadcrumbSeparator: string = ' > ';\n\n @property({ type: Boolean })\n accessor showWindowControls: boolean = true;\n\n\n @property({ type: Object })\n accessor user: {\n name: string;\n email?: string;\n avatar?: string;\n status?: 'online' | 'offline' | 'busy' | 'away';\n } | undefined = undefined;\n\n @property({ type: Array })\n accessor profileMenuItems: (plugins.tsclass.website.IMenuItem & { shortcut?: string } | { divider: true })[] = [];\n\n @property({ type: Boolean })\n accessor showSearch: boolean = false;\n\n // Activity log toggle\n @property({ type: Boolean })\n accessor showActivityLogToggle: boolean = false;\n\n @property({ type: Number })\n accessor activityLogCount: number = 0;\n\n @property({ type: Boolean })\n accessor activityLogActive: boolean = false;\n\n // STATE\n @state()\n accessor activeMenu: string | null = null;\n\n @state()\n accessor openDropdowns: Set = new Set();\n\n @state()\n accessor focusedItem: string | null = null;\n\n @state()\n accessor focusedDropdownItem: number = -1;\n\n @state()\n accessor isProfileDropdownOpen: boolean = false;\n\n public static styles = appuiAppbarStyles;\n\n // INSTANCE\n public render(): TemplateResult {\n return renderAppuiAppbar(this);\n }\n\n\n\n public renderMenuItems(): TemplateResult {\n return html`\n ${this.menuItems.map((item, index) => this.renderMenuItem(item, `menu-${index}`))}\n `;\n }\n\n private renderMenuItem(item: interfaces.IAppBarMenuItem, itemId: string): TemplateResult {\n if ('divider' in item && item.divider) {\n return html`
`;\n }\n\n const menuItem = item as interfaces.IAppBarMenuItemRegular;\n const isActive = this.activeMenu === itemId;\n const hasSubmenu = menuItem.submenu && menuItem.submenu.length > 0;\n\n return html`\n this.handleMenuClick(menuItem, itemId)}\n @keydown=${(e: KeyboardEvent) => this.handleMenuKeydown(e, menuItem, itemId)}\n role=\"menuitem\"\n aria-haspopup=\"${hasSubmenu}\"\n aria-expanded=\"${isActive}\"\n >\n ${menuItem.iconName ? html`` : ''}\n ${menuItem.name}\n ${hasSubmenu ? this.renderDropdown(menuItem.submenu, itemId, isActive) : ''}\n \n `;\n }\n\n private renderDropdown(items: interfaces.IAppBarMenuItem[], parentId: string, isOpen: boolean): TemplateResult {\n return html`\n
e.stopPropagation()}\n @keydown=${(e: KeyboardEvent) => this.handleDropdownKeydown(e, items, parentId)}\n tabindex=\"${isOpen ? 0 : -1}\"\n role=\"menu\"\n >\n ${items.map((item, index) => this.renderDropdownItem(item, `${parentId}-${index}`))}\n
\n `;\n }\n\n private renderDropdownItem(item: interfaces.IAppBarMenuItem, itemId: string): TemplateResult {\n if ('divider' in item && item.divider) {\n return html`
`;\n }\n\n const menuItem = item as interfaces.IAppBarMenuItemRegular;\n const itemIndex = parseInt(itemId.split('-').pop() || '0');\n const isFocused = this.focusedDropdownItem === itemIndex;\n \n return html`\n this.handleDropdownItemClick(menuItem)}\n @mouseenter=${() => this.focusedDropdownItem = itemIndex}\n role=\"menuitem\"\n tabindex=\"${menuItem.disabled ? -1 : 0}\"\n >\n ${menuItem.iconName ? html`` : ''}\n ${menuItem.name}\n ${menuItem.shortcut ? html`${menuItem.shortcut}` : ''}\n \n `;\n }\n\n public renderBreadcrumbs(): TemplateResult {\n if (!this.breadcrumbs) {\n return html``;\n }\n\n const parts = this.breadcrumbs.split(this.breadcrumbSeparator);\n return html`\n ${parts.map((part, index) => html`\n ${index > 0 ? html`${this.breadcrumbSeparator}` : ''}\n this.handleBreadcrumbClick(part, index)}\n >\n ${part}\n \n `)}\n `;\n }\n\n public renderAccountSection(): TemplateResult {\n return html`\n ${this.showSearch ? html`\n \n ` : ''}\n ${this.user ? html`\n
\n
\n
\n ${this.user.avatar ? \n html`\"${this.user.name}\"` : \n html`${this.user.name.charAt(0).toUpperCase()}`\n }\n ${this.user.status ? html`\n
\n ` : ''}\n
\n ${this.user.name}\n
\n this.handleProfileMenuSelect(e)}\n >\n
\n ` : ''}\n ${this.showActivityLogToggle ? html`\n \n \n ${this.activityLogCount > 0 ? html`\n ${this.activityLogCount > 99 ? '99+' : this.activityLogCount}\n ` : ''}\n \n ` : ''}\n `;\n }\n\n // Event handlers\n private handleMenuClick(item: interfaces.IAppBarMenuItemRegular, itemId: string) {\n if (item.disabled) return;\n\n if (item.submenu && item.submenu.length > 0) {\n // Toggle dropdown\n if (this.activeMenu === itemId) {\n this.activeMenu = null;\n } else {\n this.activeMenu = itemId;\n }\n } else {\n // Execute action\n this.activeMenu = null;\n if (item.action) {\n item.action();\n }\n this.dispatchEvent(new CustomEvent('menu-select', { \n detail: { item },\n bubbles: true,\n composed: true \n }));\n }\n }\n\n private handleDropdownItemClick(item: interfaces.IAppBarMenuItemRegular) {\n if (item.disabled) return;\n\n this.activeMenu = null;\n if (item.action) {\n item.action();\n }\n this.dispatchEvent(new CustomEvent('menu-select', { \n detail: { item },\n bubbles: true,\n composed: true \n }));\n }\n\n private handleMenuKeydown(e: KeyboardEvent, item: interfaces.IAppBarMenuItemRegular, itemId: string) {\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n this.handleMenuClick(item, itemId);\n break;\n case 'ArrowDown':\n if (item.submenu && this.activeMenu === itemId) {\n e.preventDefault();\n // Focus first non-disabled item in dropdown\n this.focusedDropdownItem = 0;\n const firstValidItem = this.findNextValidItem(item.submenu, -1, 1);\n if (firstValidItem !== -1) {\n this.focusedDropdownItem = firstValidItem;\n // Focus the dropdown element\n setTimeout(() => {\n const dropdown = this.renderRoot.querySelector('.dropdown.open');\n if (dropdown) {\n (dropdown as HTMLElement).focus();\n }\n }, 0);\n }\n }\n break;\n case 'Escape':\n this.activeMenu = null;\n this.focusedDropdownItem = -1;\n break;\n case 'Tab':\n // Let default tab navigation work but close dropdown\n if (this.activeMenu === itemId) {\n this.activeMenu = null;\n this.focusedDropdownItem = -1;\n }\n break;\n case 'ArrowRight':\n e.preventDefault();\n this.focusNextMenuItem(itemId, 1);\n break;\n case 'ArrowLeft':\n e.preventDefault();\n this.focusNextMenuItem(itemId, -1);\n break;\n }\n }\n\n private handleBreadcrumbClick(breadcrumb: string, index: number) {\n this.dispatchEvent(new CustomEvent('breadcrumb-navigate', { \n detail: { breadcrumb, index },\n bubbles: true,\n composed: true \n }));\n }\n\n private handleSearchClick() {\n this.dispatchEvent(new CustomEvent('search-click', {\n bubbles: true,\n composed: true\n }));\n }\n\n private handleActivityToggle() {\n this.dispatchEvent(new CustomEvent('activity-toggle', {\n bubbles: true,\n composed: true\n }));\n }\n\n private handleUserClick() {\n this.isProfileDropdownOpen = !this.isProfileDropdownOpen;\n \n // Also emit the event for backward compatibility\n this.dispatchEvent(new CustomEvent('user-menu-open', { \n bubbles: true,\n composed: true \n }));\n }\n\n private handleProfileMenuSelect(e: CustomEvent) {\n this.isProfileDropdownOpen = false;\n \n // Re-emit the event\n this.dispatchEvent(new CustomEvent('profile-menu-select', { \n detail: e.detail,\n bubbles: true,\n composed: true \n }));\n }\n\n // Lifecycle\n async connectedCallback() {\n await super.connectedCallback();\n // Add global click listener to close dropdowns\n this.addEventListener('click', this.handleGlobalClick);\n document.addEventListener('click', this.handleDocumentClick);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('click', this.handleDocumentClick);\n }\n\n private handleGlobalClick = (e: Event) => {\n // Prevent closing when clicking inside\n e.stopPropagation();\n }\n\n private handleDocumentClick = () => {\n // Close all dropdowns when clicking outside\n this.activeMenu = null;\n this.focusedDropdownItem = -1;\n // Note: Profile dropdown handles its own outside clicks\n }\n\n private handleDropdownKeydown(e: KeyboardEvent, items: interfaces.IAppBarMenuItem[], _parentId: string) {\n const validItems = items.filter(item => !('divider' in item && item.divider));\n \n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n const nextIndex = this.findNextValidItem(items, this.focusedDropdownItem, 1);\n if (nextIndex !== -1) {\n this.focusedDropdownItem = nextIndex;\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n const prevIndex = this.findNextValidItem(items, this.focusedDropdownItem, -1);\n if (prevIndex !== -1) {\n this.focusedDropdownItem = prevIndex;\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (this.focusedDropdownItem !== -1) {\n const focusedItem = validItems[this.focusedDropdownItem];\n if (focusedItem && 'action' in focusedItem && !focusedItem.disabled) {\n this.handleDropdownItemClick(focusedItem as interfaces.IAppBarMenuItemRegular);\n }\n }\n break;\n case 'Home':\n e.preventDefault();\n const firstIndex = this.findNextValidItem(items, -1, 1);\n if (firstIndex !== -1) {\n this.focusedDropdownItem = firstIndex;\n }\n break;\n case 'End':\n e.preventDefault();\n const lastIndex = this.findNextValidItem(items, items.length, -1);\n if (lastIndex !== -1) {\n this.focusedDropdownItem = lastIndex;\n }\n break;\n case 'Escape':\n e.preventDefault();\n this.activeMenu = null;\n this.focusedDropdownItem = -1;\n // Return focus to menu item\n const menuItem = this.renderRoot.querySelector(`.menuItem.active`);\n if (menuItem) {\n (menuItem as HTMLElement).focus();\n }\n break;\n }\n }\n\n private findNextValidItem(items: interfaces.IAppBarMenuItem[], currentIndex: number, direction: number): number {\n let index = currentIndex + direction;\n \n while (index >= 0 && index < items.length) {\n const item = items[index];\n // Skip dividers and disabled items\n if (!('divider' in item && item.divider) && !('disabled' in item && item.disabled)) {\n return index;\n }\n index += direction;\n }\n \n return -1;\n }\n\n private focusNextMenuItem(currentItemId: string, direction: number) {\n const menuItems = Array.from(this.renderRoot.querySelectorAll('.menuItem'));\n const currentIndex = menuItems.findIndex(item => item.getAttribute('data-item-id') === currentItemId);\n \n if (currentIndex === -1) return;\n \n let nextIndex = currentIndex + direction;\n \n // Wrap around\n if (nextIndex < 0) {\n nextIndex = menuItems.length - 1;\n } else if (nextIndex >= menuItems.length) {\n nextIndex = 0;\n }\n \n // Find next non-disabled item\n let attempts = 0;\n while (attempts < menuItems.length) {\n const nextItem = menuItems[nextIndex] as HTMLElement;\n if (!nextItem.hasAttribute('disabled')) {\n nextItem.focus();\n // Close current dropdown if open\n if (this.activeMenu) {\n this.activeMenu = null;\n this.focusedDropdownItem = -1;\n }\n break;\n }\n nextIndex = (nextIndex + direction + menuItems.length) % menuItems.length;\n attempts++;\n }\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\nimport type { DeesAppuiBottombar } from './dees-appui-bottombar.js';\nimport '@design.estate/dees-wcctools/demotools';\n\nexport const demoFunc = () => {\n return html`\n \n \n
\n
\n
Bottom bar with status widgets and actions
\n
\n \n
\n
\n\n
\n
Controls
\n
\n \n \n \n \n \n \n \n
\n
\n
\n \n
\n `;\n};\n", "import {\n DeesElement,\n type TemplateResult,\n customElement,\n html,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport type {\n IBottomBarWidget,\n IBottomBarAction,\n IBottomBarAPI,\n} from '../../interfaces/appconfig.js';\nimport { demoFunc } from './dees-appui-bottombar.demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-appui-bottombar': DeesAppuiBottombar;\n }\n}\n\n@customElement('dees-appui-bottombar')\nexport class DeesAppuiBottombar extends DeesElement implements IBottomBarAPI {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE PROPERTIES\n @state()\n accessor widgets: IBottomBarWidget[] = [];\n\n @state()\n accessor actions: IBottomBarAction[] = [];\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n height: 24px;\n flex-shrink: 0;\n user-select: none;\n }\n\n .bottom-bar {\n height: 24px;\n display: flex;\n align-items: center;\n padding: 0 8px;\n gap: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 6%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n font-size: 11px;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .widget {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 6px;\n border-radius: 3px;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease;\n white-space: nowrap;\n }\n\n .widget:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};\n }\n\n .widget dees-icon {\n flex-shrink: 0;\n }\n\n .widget-separator {\n width: 1px;\n height: 14px;\n background: ${cssManager.bdTheme('hsl(0 0% 80%)', 'hsl(0 0% 20%)')};\n margin: 0 4px;\n }\n\n /* Status colors matching dees-workspace-bottombar */\n .widget.active {\n color: ${cssManager.bdTheme('hsl(210 100% 45%)', 'hsl(210 100% 60%)')};\n }\n\n .widget.success {\n color: ${cssManager.bdTheme('hsl(142 70% 35%)', 'hsl(142 70% 50%)')};\n }\n\n .widget.warning {\n color: ${cssManager.bdTheme('hsl(38 92% 45%)', 'hsl(38 92% 55%)')};\n }\n\n .widget.error {\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .spinning {\n animation: spin 1s linear infinite;\n }\n\n .spacer {\n flex: 1;\n }\n\n .action-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: 3px;\n cursor: pointer;\n transition: background 0.15s ease;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .action-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};\n }\n\n .action-button.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .action-button.disabled:hover {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n const leftWidgets = this.widgets\n .filter(w => w.position !== 'right')\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n\n const rightWidgets = this.widgets\n .filter(w => w.position === 'right')\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n\n const leftActions = this.actions.filter(a => a.position === 'left');\n const rightActions = this.actions.filter(a => a.position !== 'left');\n\n return html`\n
\n \n ${leftActions.map(action => this.renderAction(action))}\n\n \n ${leftWidgets.map((widget, index) => html`\n ${index > 0 || leftActions.length > 0 ? html`
` : ''}\n ${this.renderWidget(widget)}\n `)}\n\n
\n\n \n ${rightWidgets.map((widget, index) => html`\n ${this.renderWidget(widget)}\n ${index < rightWidgets.length - 1 || rightActions.length > 0 ? html`
` : ''}\n `)}\n\n \n ${rightActions.map(action => this.renderAction(action))}\n
\n `;\n }\n\n private renderWidget(widget: IBottomBarWidget): TemplateResult {\n const statusClass = widget.status && widget.status !== 'idle' ? widget.status : '';\n const iconName = widget.iconName\n ? (widget.iconName.startsWith('lucide:') ? widget.iconName : `lucide:${widget.iconName}`)\n : '';\n\n return html`\n widget.onClick?.()}\n @contextmenu=${(e: MouseEvent) => this.handleWidgetContextMenu(e, widget)}\n >\n ${iconName ? html`\n \n ` : ''}\n ${widget.label ? html`${widget.label}` : ''}\n \n `;\n }\n\n private renderAction(action: IBottomBarAction): TemplateResult {\n const iconName = action.iconName.startsWith('lucide:')\n ? action.iconName\n : `lucide:${action.iconName}`;\n\n return html`\n !action.disabled && action.onClick?.()}\n >\n \n \n `;\n }\n\n private async handleWidgetContextMenu(e: MouseEvent, widget: IBottomBarWidget): Promise {\n if (!widget.contextMenuItems || widget.contextMenuItems.length === 0) return;\n\n e.preventDefault();\n\n const menuItems: Parameters[1] = [];\n\n for (const item of widget.contextMenuItems) {\n if (item.divider) {\n menuItems.push({ divider: true });\n } else {\n menuItems.push({\n name: item.name,\n iconName: item.iconName,\n action: async () => { await item.action(); },\n disabled: item.disabled,\n });\n }\n }\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n // ==========================================\n // API METHODS (implements IBottomBarAPI)\n // ==========================================\n\n /**\n * Add a widget to the bottom bar\n */\n public addWidget(widget: IBottomBarWidget): void {\n // Remove existing widget with same ID if present\n this.widgets = this.widgets.filter(w => w.id !== widget.id);\n this.widgets = [...this.widgets, widget];\n }\n\n /**\n * Update an existing widget by ID\n */\n public updateWidget(id: string, update: Partial): void {\n this.widgets = this.widgets.map(w =>\n w.id === id ? { ...w, ...update } : w\n );\n }\n\n /**\n * Remove a widget by ID\n */\n public removeWidget(id: string): void {\n this.widgets = this.widgets.filter(w => w.id !== id);\n }\n\n /**\n * Get a widget by ID\n */\n public getWidget(id: string): IBottomBarWidget | undefined {\n return this.widgets.find(w => w.id === id);\n }\n\n /**\n * Clear all widgets\n */\n public clearWidgets(): void {\n this.widgets = [];\n }\n\n /**\n * Add an action button\n */\n public addAction(action: IBottomBarAction): void {\n this.actions = this.actions.filter(a => a.id !== action.id);\n this.actions = [...this.actions, action];\n }\n\n /**\n * Remove an action by ID\n */\n public removeAction(id: string): void {\n this.actions = this.actions.filter(a => a.id !== id);\n }\n\n /**\n * Clear all actions\n */\n public clearActions(): void {\n this.actions = [];\n }\n}\n", "export * from './dees-appui-bottombar.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n \n
\n
\n

Default Panels

\n \n \n

The panel component automatically follows the theme and provides consistent styling for grouped content.

\n

It's perfect for creating sections in your application with proper spacing and borders.

\n
\n \n
\n \n

Grid layouts work great with panels for creating dashboards and feature sections.

\n Learn More\n
\n \n \n

Each panel maintains consistent spacing and styling across your application.

\n Get Started\n
\n
\n \n

Panel Variants

\n \n \n

The default variant has a white background, subtle border, and minimal shadow. It's the standard choice for most content.

\n

Use variant=\"default\" or omit the variant property.

\n
\n \n \n

The outline variant removes the background color and shadow, keeping only the border.

\n

Use variant=\"outline\" for a lighter visual weight.

\n
\n \n \n

The ghost variant has no border or background by default, only showing a subtle background on hover.

\n

Use variant=\"ghost\" for the most minimal appearance.

\n
\n \n

Panel Sizes

\n \n
\n \n

Compact padding for dense layouts.

\n

Use size=\"sm\"

\n
\n \n \n

Default size with balanced spacing.

\n

Use size=\"md\" or omit.

\n
\n \n \n

Generous padding for prominent sections.

\n

Use size=\"lg\"

\n
\n
\n \n

Complex Examples

\n \n \n \n \n \n \n Create Project\n \n \n \n \n

You can nest panels to create more complex layouts:

\n \n \n

This is a nested panel with outline variant and small size.

\n
\n \n \n

This is another nested panel with ghost variant.

\n
\n
\n \n

Untitled Panels

\n \n \n

Panels work great even without a title for simple content grouping.

\n

They provide visual separation and consistent padding throughout your interface.

\n
\n \n
\n \n

Custom Content

\n

You can add your own headings and structure within untitled panels.

\n
\n \n \n

Minimal Style

\n

Ghost panels without titles create very subtle content sections.

\n
\n
\n
\n
\n`;", "import { unsafeCSS } from '@design.estate/dees-element';\n\n/**\n * Geist Sans font family - Main font for the design system\n * Already available in the environment, no need to load\n */\nexport const geistSansFont = 'Geist Sans';\n\n/**\n * Intel One Mono font family - Monospace font for code and technical content\n * Already available in the environment, no need to load\n */\nexport const intelOneMonoFont = 'Intel One Mono';\n\n/**\n * Complete font family stacks with fallbacks\n */\nexport const geistFontFamily = `'${geistSansFont}', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif`;\n\nexport const monoFontFamily = `'${intelOneMonoFont}', 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', 'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace`;\n\n/**\n * CSS-ready font family values using unsafeCSS\n * Use these in component styles\n */\nexport const cssGeistFontFamily = unsafeCSS(geistFontFamily);\nexport const cssMonoFontFamily = unsafeCSS(monoFontFamily);\n\n/**\n * Cal Sans font for headings - Display font\n * May need to be loaded separately\n */\nexport const calSansFont = 'Cal Sans';\nexport const calSansFontFamily = `'${calSansFont}', ${geistFontFamily}`;\nexport const cssCalSansFontFamily = unsafeCSS(calSansFontFamily);\n\n/**\n * Roboto Slab font for special content - Serif font\n * May need to be loaded separately\n */\nexport const robotoSlabFont = 'Roboto Slab';\nexport const robotoSlabFontFamily = `'${robotoSlabFont}', Georgia, serif`;\nexport const cssRobotoSlabFontFamily = unsafeCSS(robotoSlabFontFamily);\n\n/**\n * Base font styles that can be applied to components\n */\nexport const baseFontStyles = unsafeCSS(`\n font-family: ${geistFontFamily};\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-feature-settings: 'cv11', 'tnum', 'cv05' 1;\n`);", "import {\n customElement,\n DeesElement,\n html,\n css,\n cssManager,\n property,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { demoFunc } from './dees-panel.demo.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-panel': DeesPanel;\n }\n}\n\n@customElement('dees-panel')\nexport class DeesPanel extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n\n @property({ type: String })\n accessor title: string = '';\n\n @property({ type: String })\n accessor subtitle: string = '';\n\n @property({ type: String })\n accessor variant: 'default' | 'outline' | 'ghost' = 'default';\n\n @property({ type: String })\n accessor size: 'sm' | 'md' | 'lg' = 'md';\n\n @property({ attribute: false })\n accessor runAfterRender: ((elementArg: HTMLElement) => void | Promise) | undefined = undefined;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n font-family: ${cssGeistFontFamily};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border-radius: 6px;\n padding: 24px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n /* Variant: default */\n :host([variant=\"default\"]) {\n box-shadow: 0 1px 2px 0 hsl(0 0% 0% / 0.05);\n }\n\n /* Variant: outline */\n :host([variant=\"outline\"]) {\n background: transparent;\n box-shadow: none;\n }\n\n /* Variant: ghost */\n :host([variant=\"ghost\"]) {\n background: transparent;\n border-color: transparent;\n box-shadow: none;\n padding: 16px;\n }\n\n /* Size variations */\n :host([size=\"sm\"]) {\n padding: 16px;\n }\n\n :host([size=\"lg\"]) {\n padding: 32px;\n }\n\n .header {\n margin-bottom: 16px;\n }\n\n .header:empty {\n display: none;\n }\n\n .title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n letter-spacing: -0.025em;\n line-height: 1.5;\n }\n\n /* Title size variations */\n :host([size=\"sm\"]) .title {\n font-size: 16px;\n }\n\n :host([size=\"lg\"]) .title {\n font-size: 20px;\n }\n\n .subtitle {\n margin: 4px 0 0 0;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n letter-spacing: -0.006em;\n line-height: 1.5;\n }\n\n /* Subtitle size variations */\n :host([size=\"sm\"]) .subtitle {\n font-size: 13px;\n }\n\n :host([size=\"lg\"]) .subtitle {\n font-size: 15px;\n margin-top: 6px;\n }\n\n .content {\n color: ${cssManager.bdTheme('hsl(215.3 25% 26.7%)', 'hsl(217.9 10.6% 84.9%)')};\n font-size: 14px;\n line-height: 1.6;\n }\n\n /* Content size variations */\n :host([size=\"sm\"]) .content {\n font-size: 13px;\n }\n\n :host([size=\"lg\"]) .content {\n font-size: 15px;\n }\n\n /* Remove margins from first and last children */\n .content ::slotted(*:first-child) {\n margin-top: 0;\n }\n\n .content ::slotted(*:last-child) {\n margin-bottom: 0;\n }\n\n /* Interactive states for default variant */\n :host([variant=\"default\"]:hover) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n box-shadow: 0 4px 6px -1px hsl(0 0% 0% / 0.1), 0 2px 4px -2px hsl(0 0% 0% / 0.1);\n }\n\n /* Interactive states for outline variant */\n :host([variant=\"outline\"]:hover) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 98%)', 'hsl(0 0% 7.8%)')};\n }\n\n /* Interactive states for ghost variant */\n :host([variant=\"ghost\"]:hover) {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n }\n\n /* Focus states */\n :host(:focus-within) {\n outline: none;\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n /* Nested panels spacing */\n ::slotted(dees-panel) {\n margin-top: 16px;\n }\n\n ::slotted(dees-panel:first-child) {\n margin-top: 0;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n ${this.title ? html`

${this.title}

` : ''}\n ${this.subtitle ? html`

${this.subtitle}

` : ''}\n
\n
\n \n
\n `;\n }\n\n public async firstUpdated() {\n if (this.runAfterRender) {\n await this.runAfterRender(this);\n }\n }\n}", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { IStatsTile, ICpuCore, IPartitionData, IDiskData } from '../dees-statsgrid/dees-statsgrid.js';\n\n// Helper function to generate random CPU core data\nconst generateCpuCores = (count: number): ICpuCore[] => {\n return Array.from({ length: count }, (_, i) => ({\n id: i,\n usage: Math.round(Math.random() * 100),\n label: `${i}`,\n }));\n};\n\nexport const demoFunc = () => {\n return html`\n \n \n \n
\n \n {\n const output = document.querySelector('#action-output');\n if (output) {\n output.textContent = 'Viewing revenue details: $125,420 (+12.5%)';\n }\n }\n },\n {\n name: 'Export Data',\n iconName: 'lucide:download',\n action: async () => {\n const output = document.querySelector('#action-output');\n if (output) {\n output.textContent = 'Exporting revenue data to CSV...';\n }\n }\n }\n ]\n },\n {\n id: 'users',\n title: 'Active Users',\n value: 3847,\n type: 'number',\n icon: 'lucide:users',\n description: '324 new this week',\n actions: [\n {\n name: 'View User List',\n iconName: 'lucide:list',\n action: async () => {\n const output = document.querySelector('#action-output');\n if (output) {\n output.textContent = 'Opening user list...';\n }\n }\n }\n ]\n },\n {\n id: 'cpu',\n title: 'CPU Usage',\n value: 73,\n unit: '%',\n type: 'gauge',\n icon: 'lucide:cpu',\n gaugeOptions: {\n min: 0,\n max: 100,\n thresholds: [\n { value: 0, color: 'hsl(142.1 76.2% 36.3%)' },\n { value: 60, color: 'hsl(45.4 93.4% 47.5%)' },\n { value: 80, color: 'hsl(0 84.2% 60.2%)' }\n ]\n }\n },\n {\n id: 'storage',\n title: 'Storage Used',\n value: 65,\n type: 'percentage',\n icon: 'lucide:hard-drive',\n description: '650 GB of 1 TB',\n },\n {\n id: 'latency',\n title: 'Response Time',\n value: 142,\n unit: 'ms',\n type: 'trend',\n icon: 'lucide:activity',\n trendData: [150, 145, 148, 142, 138, 140, 135, 145, 142],\n description: 'P95'\n },\n {\n id: 'uptime',\n title: 'System Uptime',\n value: '99.95%',\n type: 'text',\n icon: 'lucide:check-circle',\n color: 'hsl(142.1 76.2% 36.3%)',\n description: 'Last 30 days'\n }\n ]}\n .gridActions=${[\n {\n name: 'Refresh',\n iconName: 'lucide:refresh-cw',\n action: async () => {\n const grid = document.querySelector('dees-statsgrid');\n if (grid) {\n grid.style.opacity = '0.5';\n setTimeout(() => {\n grid.style.opacity = '1';\n }, 300);\n }\n }\n },\n {\n name: 'Export',\n iconName: 'lucide:share',\n action: async () => {\n const output = document.querySelector('#action-output');\n if (output) {\n output.textContent = 'Exporting dashboard report...';\n }\n }\n },\n {\n name: 'Settings',\n iconName: 'lucide:settings',\n action: async () => {\n const output = document.querySelector('#action-output');\n if (output) {\n output.textContent = 'Opening dashboard settings...';\n }\n }\n }\n ]}\n .minTileWidth=${250}\n .gap=${16}\n >\n \n
\n Click on tile actions or grid actions to see the result...\n
\n
\n \n \n \n \n
\n
\n
Configuration Options
\n
\n Each tile type supports different properties:\n
    \n
  • Number: value, unit, color, description
  • \n
  • Gauge: value, unit, gaugeOptions (min, max, thresholds)
  • \n
  • Percentage: value (0-100), color, description
  • \n
  • Trend: value, unit, trendData array, description
  • \n
  • Text: value (string), color, description
  • \n
\n
\n
\n
\n
\n \n \n

Compact Layout (180px tiles)

\n \n \n

Spacious Layout (320px tiles)

\n \n
\n \n \n {\n const grid = document.querySelector('#cpu-cores-grid') as any;\n if (!grid) return;\n const tiles = grid.tiles.map((tile: any) => {\n if (tile.type === 'cpuCores' && tile.coresData) {\n return {\n ...tile,\n coresData: tile.coresData.map((core: any) => ({\n ...core,\n usage: Math.round(Math.random() * 100)\n }))\n };\n }\n return tile;\n });\n grid.tiles = tiles;\n }\n }\n ]}\n .minTileWidth=${250}\n .gap=${16}\n >\n \n\n \n {\n const grid = document.querySelector('#interactive-grid') as any;\n if (!grid) return;\n const tile = grid.tiles.find((t: any) => t.id === 'counter');\n tile.value = typeof tile.value === 'number' ? tile.value + 1 : 1;\n grid.tiles = [...grid.tiles];\n }\n },\n {\n name: 'Reset',\n iconName: 'lucide:rotate-ccw',\n action: async () => {\n const grid = document.querySelector('#interactive-grid') as any;\n if (!grid) return;\n const tile = grid.tiles.find((t: any) => t.id === 'counter');\n tile.value = 0;\n grid.tiles = [...grid.tiles];\n }\n }\n ]\n }\n ]}\n .gridActions=${[\n {\n name: 'Start Live Updates',\n iconName: 'lucide:play',\n action: async function() {\n // Toggle live updates\n if (!(window as any).liveUpdateInterval) {\n (window as any).liveUpdateInterval = setInterval(() => {\n const grid = document.querySelector('#interactive-grid') as any;\n if (grid) {\n const tiles = [...grid.tiles];\n \n // Update CPU gauge\n const cpuTile = tiles.find(t => t.id === 'live-cpu');\n cpuTile.value = Math.max(0, Math.min(100, cpuTile.value + (Math.random() * 20 - 10)));\n \n // Update requests trend\n const requestsTile = tiles.find(t => t.id === 'live-requests');\n const newValue = requestsTile.value + Math.round(Math.random() * 50 - 25);\n requestsTile.value = Math.max(800, newValue);\n requestsTile.trendData = [...requestsTile.trendData.slice(1), requestsTile.value];\n \n // Update memory percentage\n const memoryTile = tiles.find(t => t.id === 'live-memory');\n memoryTile.value = Math.max(0, Math.min(100, memoryTile.value + (Math.random() * 10 - 5)));\n \n grid.tiles = tiles;\n }\n }, 1000);\n \n this.name = 'Stop Live Updates';\n this.iconName = 'lucide:pause';\n } else {\n clearInterval((window as any).liveUpdateInterval);\n (window as any).liveUpdateInterval = null;\n this.name = 'Start Live Updates';\n this.iconName = 'lucide:play';\n }\n }\n }\n ]}\n .minTileWidth=${250}\n .gap=${16}\n >\n \n \n \n
${`const tiles: IStatsTile[] = [\n {\n id: 'revenue',\n title: 'Total Revenue',\n value: 125420,\n unit: '$',\n type: 'number',\n icon: 'lucide:dollar-sign',\n description: '+12.5% from last month',\n actions: [\n {\n name: 'View Details',\n iconName: 'lucide:trending-up',\n action: async () => {\n console.log('View revenue details');\n }\n }\n ]\n },\n {\n id: 'cpu',\n title: 'CPU Usage',\n value: 73,\n unit: '%',\n type: 'gauge',\n icon: 'lucide:cpu',\n gaugeOptions: {\n min: 0,\n max: 100,\n thresholds: [\n { value: 0, color: 'hsl(142.1 76.2% 36.3%)' },\n { value: 60, color: 'hsl(45.4 93.4% 47.5%)' },\n { value: 80, color: 'hsl(0 84.2% 60.2%)' }\n ]\n }\n }\n];\n\n// Render the stats grid\nhtml\\`\n console.log('Refresh')\n }\n ]}\n >\n\\`;`}
\n
\n\n \n \n\n
\n
\n
Partition Tile Properties
\n
\n
    \n
  • partitionData.used: Used space in bytes (auto-formatted)
  • \n
  • partitionData.total: Total capacity in bytes
  • \n
  • partitionData.filesystem: Filesystem type (ext4, xfs, ntfs)
  • \n
  • partitionData.mountPoint: Mount point path (optional)
  • \n
\n Color thresholds: Normal (<75%), Warning (75-90%), Critical (>90%)\n
\n
\n
\n
Disk Tile Properties
\n
\n
    \n
  • diskData.capacity: Total capacity in bytes
  • \n
  • diskData.model: Disk model name (optional)
  • \n
  • diskData.type: Disk type: 'ssd', 'hdd', or 'nvme'
  • \n
  • diskData.iops: Read/write IOPS (optional)
  • \n
  • diskData.health: Health percentage 0-100 (optional)
  • \n
\n Health thresholds: Good (70-100%), Warning (30-70%), Critical (<30%)\n
\n
\n
\n
\n
\n\n \n
\n `;\n};", "import {\n DeesElement,\n property,\n css,\n type CSSResult,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\n\n/**\n * Base class for all dees-input components\n * Provides unified margin system and layout mode support\n */\nexport abstract class DeesInputBase extends DeesElement {\n /**\n * Layout mode for the input component\n * - vertical: Traditional form layout (label on top)\n * - horizontal: Inline layout (label position configurable)\n * - auto: Detect from parent context\n */\n @property({ type: String })\n accessor layoutMode: 'vertical' | 'horizontal' | 'auto' = 'auto';\n\n /**\n * Position of the label relative to the input\n */\n @property({ type: String })\n accessor labelPosition: 'top' | 'left' | 'right' | 'none' = 'top';\n\n /**\n * Common properties for all inputs\n */\n @property({ type: String })\n accessor key: string;\n\n @property({ type: String })\n accessor label: string;\n\n @property({ type: Boolean })\n accessor required: boolean = false;\n\n @property({ type: Boolean })\n accessor disabled: boolean = false;\n\n @property({ type: String })\n accessor description: string;\n\n /**\n * Common styles for all input components\n */\n public static get baseStyles(): CSSResult[] {\n return [\n css`\n /* CSS Variables for consistent spacing */\n :host {\n --dees-input-spacing-unit: 8px;\n --dees-input-label-gap: var(--dees-input-spacing-unit); /* 8px */\n }\n\n /* Default block display with no margins - spacing is container-driven */\n :host {\n display: block;\n margin: 0;\n }\n\n /* Horizontal layout mode - activated by attribute */\n :host([layout-mode=\"horizontal\"]) {\n display: inline-block;\n }\n\n /* Label position variations */\n :host([label-position=\"left\"]) .input-wrapper {\n display: grid;\n grid-template-columns: auto 1fr;\n gap: var(--dees-input-label-gap);\n align-items: center;\n }\n\n :host([label-position=\"right\"]) .input-wrapper {\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--dees-input-label-gap);\n align-items: center;\n }\n\n :host([label-position=\"top\"]) .input-wrapper {\n display: block;\n }\n\n :host([label-position=\"none\"]) dees-label {\n display: none;\n }\n `,\n ];\n }\n\n /**\n * Subject for value changes that all inputs should implement\n */\n public changeSubject = new domtools.plugins.smartrx.rxjs.Subject();\n\n /**\n * Called when the element is connected to the DOM\n * Sets up layout mode detection\n */\n async connectedCallback() {\n await super.connectedCallback();\n this.detectLayoutMode();\n }\n\n /**\n * Detects the appropriate layout mode based on parent context\n */\n private detectLayoutMode() {\n if (this.layoutMode !== 'auto') {\n this.setAttribute('layout-mode', this.layoutMode);\n return;\n }\n\n // Check if parent is a form with horizontal layout\n const parentForm = this.closest('dees-form');\n if (parentForm && parentForm.hasAttribute('horizontal-layout')) {\n this.setAttribute('layout-mode', 'horizontal');\n } else {\n this.setAttribute('layout-mode', 'vertical');\n }\n }\n\n /**\n * Updates the layout mode attribute when property changes\n */\n updated(changedProperties: Map) {\n super.updated(changedProperties);\n \n if (changedProperties.has('layoutMode')) {\n this.detectLayoutMode();\n }\n\n if (changedProperties.has('labelPosition')) {\n this.setAttribute('label-position', this.labelPosition);\n }\n }\n\n /**\n * Standard method for freezing input (disabling)\n */\n public async freeze() {\n this.disabled = true;\n }\n\n /**\n * Standard method for unfreezing input (enabling)\n */\n public async unfreeze() {\n this.disabled = false;\n }\n\n /**\n * Abstract method that child classes must implement to get their value\n */\n public abstract getValue(): any;\n\n /**\n * Abstract method that child classes must implement to set their value\n */\n public abstract setValue(value: any): void;\n}", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesInputCheckbox } from '../dees-input-checkbox/dees-input-checkbox.js';\nimport '../../00group-button/dees-button/dees-button.js';\n\nexport const demoFunc = () => html`\n {\n // Get all checkboxes for demo interactions\n const checkboxes = elementArg.querySelectorAll('dees-input-checkbox');\n \n // Example of programmatic interaction\n const selectAllBtn = elementArg.querySelector('#select-all-btn');\n const clearAllBtn = elementArg.querySelector('#clear-all-btn');\n \n if (selectAllBtn && clearAllBtn) {\n selectAllBtn.addEventListener('click', () => {\n checkboxes.forEach((checkbox: DeesInputCheckbox) => {\n if (!checkbox.disabled && checkbox.key?.startsWith('feature')) {\n checkbox.value = true;\n }\n });\n });\n \n clearAllBtn.addEventListener('click', () => {\n checkboxes.forEach((checkbox: DeesInputCheckbox) => {\n if (!checkbox.disabled && checkbox.key?.startsWith('feature')) {\n checkbox.value = false;\n }\n });\n });\n }\n }}>\n \n \n
\n \n
\n \n \n \n \n \n
\n
\n \n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n
\n \n \n \n \n \n \n \n
\n
\n \n \n
\n Select All\n Clear All\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n
\n

Privacy Preferences

\n \n
\n \n \n \n \n \n \n \n
\n
\n
\n \n \n
\n {\n const output = document.querySelector('#checkbox-output');\n if (output && event.detail) {\n const isChecked = event.detail.getValue();\n output.textContent = `Feature is ${isChecked ? 'enabled' : 'disabled'}`;\n }\n }}\n >\n \n {\n const output = document.querySelector('#debug-output');\n if (output && event.detail) {\n const isChecked = event.detail.getValue();\n output.textContent = `Debug mode: ${isChecked ? 'ON' : 'OFF'}`;\n }\n }}\n >\n
\n \n
\n
Feature is disabled
\n
Debug mode: OFF
\n
\n
\n
\n
\n`;", "import {\n customElement,\n type TemplateResult,\n property,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-checkbox.demo.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-checkbox': DeesInputCheckbox;\n }\n}\n\n@customElement('dees-input-checkbox')\nexport class DeesInputCheckbox extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n\n @property({\n type: Boolean,\n })\n accessor value: boolean = false;\n\n @property({ type: Boolean })\n accessor indeterminate: boolean = false;\n\n\n constructor() {\n super();\n this.labelPosition = 'right'; // Checkboxes default to label on the right\n }\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n * {\n box-sizing: border-box;\n }\n\n :host {\n position: relative;\n cursor: default;\n font-family: ${cssGeistFontFamily};\n }\n\n .maincontainer {\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n cursor: pointer;\n user-select: none;\n transition: all 0.15s ease;\n }\n\n .checkbox {\n position: relative;\n height: 18px;\n width: 18px;\n flex-shrink: 0;\n border-radius: 4px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n transition: all 0.15s ease;\n margin-top: 1px;\n }\n\n .maincontainer:hover .checkbox {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .checkbox.selected {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n }\n\n .checkbox:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n /* Checkmark using Lucide icon style */\n .checkbox .checkmark {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n opacity: 0;\n transition: opacity 0.15s ease;\n }\n\n .checkbox.selected .checkmark {\n opacity: 1;\n }\n\n .checkbox .checkmark svg {\n width: 12px;\n height: 12px;\n stroke: white;\n stroke-width: 3;\n }\n\n /* Disabled state */\n .maincontainer.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .checkbox.disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n /* Label */\n .label-container {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n }\n\n .checkbox-label {\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n transition: color 0.15s ease;\n letter-spacing: -0.01em;\n }\n\n .maincontainer:hover .checkbox-label {\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .maincontainer.disabled:hover .checkbox-label {\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n /* Description */\n .description-text {\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n line-height: 1.5;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n
\n
\n ${this.value\n ? html`\n \n \n \n \n \n `\n : this.indeterminate\n ? html`\n \n \n \n \n \n `\n : html``}\n
\n
\n ${this.label ? html`
${this.label}
` : ''}\n ${this.description ? html`
${this.description}
` : ''}\n
\n
\n
\n `;\n }\n\n public async toggleSelected() {\n if (this.disabled) {\n return;\n }\n this.value = !this.value;\n this.dispatchEvent(\n new CustomEvent('newValue', {\n detail: this.value,\n bubbles: true,\n })\n );\n this.changeSubject.next(this);\n }\n\n public getValue(): boolean {\n return this.value;\n }\n\n public setValue(value: boolean): void {\n this.value = value;\n }\n\n public focus(): void {\n const checkboxDiv = this.shadowRoot.querySelector('.checkbox');\n if (checkboxDiv) {\n (checkboxDiv as any).focus();\n }\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.toggleSelected();\n }\n }\n}\n", "export const dark = {\n blue: '#0050b9',\n blueActive: '#0069f2',\n blueMuted: '#012452',\n text: '#ffffff',\n}\n\nexport const bright = {\n blue: '#0050b9',\n blueActive: '#0069f2',\n blueMuted: '#0069f2',\n text: '#333333',\n}", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport { DeesModal } from '../dees-modal/dees-modal.js';\n\nexport const demoFunc = () => html`\n \n \n
\n
\n

Header Buttons

\n

Modals can have optional header buttons for help and closing.

\n
\n {\n DeesModal.createAndShow({\n heading: 'With Help Button',\n showHelpButton: true,\n onHelp: async () => {\n const helpModal = await DeesModal.createAndShow({\n heading: 'Help',\n width: 'small',\n showCloseButton: true,\n showHelpButton: false,\n content: html`\n

This is the help content for the modal.

\n

You can provide context-specific help here.

\n `,\n menuOptions: [{\n name: 'Got it',\n action: async (modal) => modal.destroy()\n }],\n });\n },\n content: html`\n

This modal has a help button in the header. Click it to see help content.

\n

The close button is also visible by default.

\n `,\n menuOptions: [{\n name: 'OK',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>With Help Button
\n \n {\n DeesModal.createAndShow({\n heading: 'No Close Button',\n showCloseButton: false,\n content: html`\n

This modal has no close button in the header.

\n

You must use the action buttons or click outside to close it.

\n `,\n menuOptions: [{\n name: 'Close',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>No Close Button
\n \n {\n DeesModal.createAndShow({\n heading: 'Both Buttons',\n showHelpButton: true,\n showCloseButton: true,\n onHelp: () => alert('Help clicked!'),\n content: html`\n

This modal has both help and close buttons.

\n `,\n menuOptions: [{\n name: 'Done',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Both Buttons
\n \n {\n DeesModal.createAndShow({\n heading: 'Clean Header',\n showCloseButton: false,\n showHelpButton: false,\n content: html`\n

This modal has a clean header with no buttons.

\n `,\n menuOptions: [{\n name: 'Close',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Clean Header
\n
\n
\n \n
\n

Modal Width Variations

\n

Modals can have different widths: small, medium, large, fullscreen, or custom pixel values.

\n
\n {\n DeesModal.createAndShow({\n heading: 'Small Modal',\n width: 'small',\n content: html`\n

This is a small modal with a width of 380px. Perfect for simple confirmations or brief messages.

\n `,\n menuOptions: [{\n name: 'Cancel',\n action: async (modal) => modal.destroy()\n }, {\n name: 'OK',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Small Modal
\n \n {\n DeesModal.createAndShow({\n heading: 'Medium Modal (Default)',\n width: 'medium',\n content: html`\n \n \n \n \n \n `,\n menuOptions: [{\n name: 'Cancel',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Sign Up',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Medium Modal\n \n {\n DeesModal.createAndShow({\n heading: 'Large Modal',\n width: 'large',\n content: html`\n

Wide Content Area

\n

This large modal is 800px wide and perfect for displaying more complex content like forms with multiple columns, tables, or detailed information.

\n
\n \n \n \n \n
\n `,\n menuOptions: [{\n name: 'Cancel',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Save',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Large Modal
\n \n {\n DeesModal.createAndShow({\n heading: 'Fullscreen Editor',\n width: 'fullscreen',\n showHelpButton: true,\n onHelp: async () => {\n alert('In a real app, this would show editor documentation');\n },\n content: html`\n

Fullscreen Experience with Header Controls

\n

This modal takes up almost the entire viewport with a 20px margin on all sides. The header buttons are particularly useful in fullscreen mode.

\n

The content area can be as tall as needed and will scroll if necessary.

\n
\n Large content area\n
\n `,\n menuOptions: [{\n name: 'Save',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Cancel',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Fullscreen Modal
\n
\n
\n \n
\n

Custom Width & Constraints

\n

You can also set custom pixel widths and min/max constraints.

\n
\n {\n DeesModal.createAndShow({\n heading: 'Custom Width (700px)',\n width: 700,\n content: html`\n

This modal has a custom width of exactly 700 pixels.

\n `,\n menuOptions: [{\n name: 'Close',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Custom 700px
\n \n {\n DeesModal.createAndShow({\n heading: 'With Max Width',\n width: 'large',\n maxWidth: 600,\n content: html`\n

This modal is set to 'large' but constrained by a maxWidth of 600px.

\n `,\n menuOptions: [{\n name: 'Got it',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Max Width 600px
\n \n {\n DeesModal.createAndShow({\n heading: 'With Min Width',\n width: 300,\n minWidth: 400,\n content: html`\n

This modal width is set to 300px but has a minWidth of 400px, so it will be 400px wide.

\n `,\n menuOptions: [{\n name: 'OK',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Min Width 400px
\n
\n
\n \n
\n

Button Variations

\n

Modals can have different button configurations with proper spacing.

\n
\n {\n DeesModal.createAndShow({\n heading: 'Multiple Actions',\n content: html`\n

This modal demonstrates multiple buttons with proper spacing between them.

\n `,\n menuOptions: [{\n name: 'Delete',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Cancel',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Save Changes',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Three Buttons
\n \n {\n DeesModal.createAndShow({\n heading: 'Single Action',\n content: html`\n

Sometimes you just need one button.

\n `,\n menuOptions: [{\n name: 'Acknowledge',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Single Button
\n \n {\n DeesModal.createAndShow({\n heading: 'No Actions',\n content: html`\n

This modal has no bottom buttons. Use the X button or click outside to close.

\n

This is useful for informational modals that don't require user action.

\n `,\n menuOptions: [],\n });\n }}>No Buttons
\n \n {\n DeesModal.createAndShow({\n heading: 'Long Button Labels',\n content: html`\n

Testing button layout with longer labels.

\n `,\n menuOptions: [{\n name: 'Discard All Changes',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Save and Continue Editing',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Long Labels
\n
\n
\n \n
\n

Responsive Behavior

\n

All modals automatically become full-width on mobile devices (< 768px viewport width) for better usability.

\n {\n DeesModal.createAndShow({\n heading: 'Responsive Modal',\n width: 'large',\n showHelpButton: true,\n onHelp: () => console.log('Help requested for responsive modal'),\n content: html`\n

Resize your browser window to see how this modal adapts. On mobile viewports, it will automatically take the full width minus margins.

\n

The header buttons remain accessible at all viewport sizes.

\n `,\n menuOptions: [{\n name: 'Close',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Test Responsive
\n
\n
\n`", "import * as colors from '../../00colors.js';\nimport * as plugins from '../../00plugins.js';\nimport { zIndexLayers, zIndexRegistry } from '../../00zindex.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\n\nimport { demoFunc } from './dees-modal.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n unsafeHTML,\n state,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesWindowLayer } from '../dees-windowlayer/dees-windowlayer.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-modal': DeesModal;\n }\n}\n\n@customElement('dees-modal')\nexport class DeesModal extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Overlay'];\n\n public static async createAndShow(optionsArg: {\n heading: string;\n content: TemplateResult;\n menuOptions: plugins.tsclass.website.IMenuItem[];\n width?: 'small' | 'medium' | 'large' | 'fullscreen' | number;\n maxWidth?: number;\n minWidth?: number;\n showCloseButton?: boolean;\n showHelpButton?: boolean;\n onHelp?: () => void | Promise;\n mobileFullscreen?: boolean;\n contentPadding?: number;\n }) {\n const body = document.body;\n const modal = new DeesModal();\n modal.heading = optionsArg.heading;\n modal.content = optionsArg.content;\n modal.menuOptions = optionsArg.menuOptions;\n if (optionsArg.width) modal.width = optionsArg.width;\n if (optionsArg.maxWidth) modal.maxWidth = optionsArg.maxWidth;\n if (optionsArg.minWidth) modal.minWidth = optionsArg.minWidth;\n if (optionsArg.showCloseButton !== undefined) modal.showCloseButton = optionsArg.showCloseButton;\n if (optionsArg.showHelpButton !== undefined) modal.showHelpButton = optionsArg.showHelpButton;\n if (optionsArg.onHelp) modal.onHelp = optionsArg.onHelp;\n if (optionsArg.mobileFullscreen !== undefined) modal.mobileFullscreen = optionsArg.mobileFullscreen;\n if (optionsArg.contentPadding !== undefined) modal.contentPadding = optionsArg.contentPadding;\n modal.windowLayer = await DeesWindowLayer.createAndShow({\n blur: true,\n });\n modal.windowLayer.addEventListener('click', async () => {\n await modal.destroy();\n });\n body.append(modal.windowLayer);\n body.append(modal);\n \n // Get z-index for modal (should be above window layer)\n modal.modalZIndex = zIndexRegistry.getNextZIndex();\n zIndexRegistry.register(modal, modal.modalZIndex);\n \n return modal;\n }\n\n // INSTANCE\n\n @property({\n type: String,\n })\n accessor heading = '';\n\n @state({})\n accessor content: TemplateResult;\n\n @state({})\n accessor menuOptions: plugins.tsclass.website.IMenuItem[] = [];\n\n @property({ type: String })\n accessor width: 'small' | 'medium' | 'large' | 'fullscreen' | number = 'medium';\n\n @property({ type: Number })\n accessor maxWidth: number;\n\n @property({ type: Number })\n accessor minWidth: number;\n\n @property({ type: Boolean })\n accessor showCloseButton: boolean = true;\n\n @property({ type: Boolean })\n accessor showHelpButton: boolean = false;\n\n @property({ attribute: false })\n accessor onHelp: () => void | Promise;\n\n @property({ type: Boolean })\n accessor mobileFullscreen: boolean = false;\n\n @property({ type: Number })\n accessor contentPadding: number = 16;\n\n @state()\n accessor modalZIndex: number = 1000;\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: ${cssGeistFontFamily};\n color: ${cssManager.bdTheme('#333', '#fff')};\n will-change: transform;\n }\n .modalContainer {\n display: flex;\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100vw;\n height: 100vh;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n }\n .modal {\n will-change: transform;\n transform: translateY(0px) scale(0.95);\n opacity: 0;\n min-height: 120px;\n max-height: calc(100vh - 40px);\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border-radius: 6px;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n transition: all 0.2s ease;\n overflow: hidden;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n margin: 20px;\n display: flex;\n flex-direction: column;\n overscroll-behavior: contain;\n }\n\n /* Width variations */\n .modal.width-small {\n width: 380px;\n }\n\n .modal.width-medium {\n width: 560px;\n }\n\n .modal.width-large {\n width: 800px;\n }\n\n .modal.width-fullscreen {\n width: calc(100vw - 40px);\n height: calc(100vh - 40px);\n max-height: calc(100vh - 40px);\n }\n\n @media (max-width: 768px) {\n .modal {\n width: calc(100vw - 40px) !important;\n max-width: none !important;\n }\n \n /* Allow full height on mobile when content needs it */\n .modalContainer {\n padding: 10px;\n }\n \n .modal {\n margin: 10px;\n max-height: calc(100vh - 20px);\n }\n \n /* Full screen mode on mobile */\n .modal.mobile-fullscreen {\n width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh !important;\n margin: 0;\n border-radius: 0;\n border: none;\n }\n }\n\n .modal.show {\n opacity: 1;\n transform: translateY(0px) scale(1);\n }\n\n .modal.show.predestroy {\n opacity: 0;\n transform: translateY(10px) scale(1);\n }\n\n .modal .heading {\n height: 40px;\n min-height: 40px;\n font-family: ${cssGeistFontFamily};\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n position: relative;\n flex-shrink: 0;\n }\n\n .modal .heading .header-buttons {\n display: flex;\n align-items: center;\n gap: 4px;\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n }\n\n .modal .heading .header-button {\n width: 28px;\n height: 28px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.15s ease;\n background: transparent;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .modal .heading .header-button:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .modal .heading .header-button:active {\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n }\n\n .modal .heading .header-button dees-icon {\n width: 16px;\n height: 16px;\n display: block;\n }\n\n .modal .heading .heading-text {\n flex: 1;\n text-align: center;\n font-weight: 600;\n font-size: 14px;\n line-height: 40px;\n padding: 0 40px;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .modal .content {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n }\n .modal .bottomButtons {\n display: flex;\n flex-direction: row;\n border-top: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n justify-content: flex-end;\n gap: 8px;\n padding: 8px;\n flex-shrink: 0;\n }\n\n .modal .bottomButtons .bottomButton {\n padding: 8px 16px;\n border-radius: 4px;\n line-height: 16px;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n user-select: none;\n transition: all 0.15s ease;\n background: ${cssManager.bdTheme('#ffffff', '#27272a')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n white-space: nowrap;\n }\n\n .modal .bottomButtons .bottomButton:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#3f3f46')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#52525b')};\n }\n .modal .bottomButtons .bottomButton:active {\n background: ${cssManager.bdTheme('#e5e7eb', '#52525b')};\n }\n .modal .bottomButtons .bottomButton:last-child {\n border-right: none;\n }\n\n .modal .bottomButtons .bottomButton.primary {\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n border-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n color: #ffffff;\n }\n .modal .bottomButtons .bottomButton.primary:hover {\n background: ${cssManager.bdTheme('#2563eb', '#2563eb')};\n border-color: ${cssManager.bdTheme('#2563eb', '#2563eb')};\n }\n .modal .bottomButtons .bottomButton.primary:active {\n background: ${cssManager.bdTheme('#1d4ed8', '#1d4ed8')};\n border-color: ${cssManager.bdTheme('#1d4ed8', '#1d4ed8')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n const widthClass = typeof this.width === 'string' ? `width-${this.width}` : '';\n const customWidth = typeof this.width === 'number' ? `${this.width}px` : '';\n const maxWidthStyle = this.maxWidth ? `${this.maxWidth}px` : '';\n const minWidthStyle = this.minWidth ? `${this.minWidth}px` : '';\n const mobileFullscreenClass = this.mobileFullscreen ? 'mobile-fullscreen' : '';\n\n return html`\n \n
\n
\n
\n
${this.heading}
\n
\n ${this.showHelpButton ? html`\n
\n \n
\n ` : ''}\n ${this.showCloseButton ? html`\n
this.destroy()} title=\"Close\">\n \n
\n ` : ''}\n
\n
\n
${this.content}
\n ${this.menuOptions.length > 0 ? html`\n
\n ${this.menuOptions.map(\n (actionArg, index) => html`\n
{\n actionArg.action(this);\n }}>${actionArg.name}
\n `\n )}\n
\n ` : ''}\n
\n
\n `;\n }\n\n private windowLayer: DeesWindowLayer;\n public async firstUpdated(_changedProperties: Map) {\n super.firstUpdated(_changedProperties);\n const domtools = await this.domtoolsPromise;\n await domtools.convenience.smartdelay.delayFor(30);\n const modal = this.shadowRoot.querySelector('.modal');\n modal.classList.add('show');\n }\n\n public async handleOutsideClick(eventArg: MouseEvent) {\n eventArg.stopPropagation();\n const modalContainer = this.shadowRoot.querySelector('.modalContainer');\n if (eventArg.target === modalContainer) {\n await this.destroy();\n }\n }\n\n public async destroy() {\n const domtools = await this.domtoolsPromise;\n const modal = this.shadowRoot.querySelector('.modal');\n modal.classList.add('predestroy');\n await domtools.convenience.smartdelay.delayFor(200);\n document.body.removeChild(this);\n await this.windowLayer.destroy();\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n }\n\n private async handleHelp() {\n if (this.onHelp) {\n await this.onHelp();\n }\n }\n}\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => {\n return html`\n \n `;\n}", "import * as plugins from '../../00plugins.js';\nimport * as colors from '../../00colors.js';\n\nimport {\n customElement,\n html,\n css,\n cssManager,\n DeesElement,\n property,\n unsafeCSS,\n query,\n} from '@design.estate/dees-element';\n\nimport { demoFunc } from './dees-label.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-label')\nexport class DeesLabel extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout', 'Input'];\n\n // INSTANCE\n\n @property({\n type: String,\n reflect: true,\n })\n accessor label = '';\n\n @property({\n type: String,\n reflect: true,\n })\n accessor description: string;\n\n @property({\n type: Boolean,\n reflect: true,\n })\n accessor required: boolean = false;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n }\n\n .label {\n display: inline-block;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n font-size: 14px;\n font-weight: 500;\n line-height: 1.5;\n margin-bottom: 6px;\n cursor: default;\n user-select: none;\n letter-spacing: -0.01em;\n }\n\n .required {\n color: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 72.2% 50.6%)')};\n margin-left: 2px;\n }\n\n dees-icon {\n display: inline-block;\n font-size: 12px;\n transform: translateY(1px);\n margin-left: 4px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n cursor: help;\n }\n `,\n ];\n\n public render() {\n return html`\n ${this.label\n ? html`\n
\n ${this.label}\n ${this.required ? html`*` : ''}\n ${this.description\n ? html`\n \n \n `\n : html``}\n
\n `\n : html``}\n `;\n }\n}\n", "// Auto-generated by scripts/update-monaco-version.cjs\nexport const MONACO_VERSION = '0.55.1';\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { MONACO_VERSION } from './version.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nimport type * as monaco from 'monaco-editor';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-monaco': DeesWorkspaceMonaco;\n }\n}\n\n@customElement('dees-workspace-monaco')\nexport class DeesWorkspaceMonaco extends DeesElement {\n // DEMO\n public static demo = () => html``;\n public static demoGroups = ['Workspace'];\n\n // STATIC\n public static monacoDeferred: ReturnType;\n\n // INSTANCE\n public editorDeferred = domtools.plugins.smartpromise.defer();\n\n @property({\n type: String\n })\n accessor content = \"function hello() {\\n\\talert('Hello world!');\\n}\";\n\n @property({\n type: String\n })\n accessor language = 'typescript';\n\n @property({\n type: String\n })\n accessor filePath: string = '';\n\n @property({\n type: Object\n })\n accessor contentSubject = new domtools.plugins.smartrx.rxjs.Subject();\n\n @property({\n type: Boolean\n })\n accessor wordWrap: monaco.editor.IStandaloneEditorConstructionOptions['wordWrap'] = 'off';\n\n private monacoThemeSubscription: domtools.plugins.smartrx.rxjs.Subscription | null = null;\n private isUpdatingFromExternal: boolean = false;\n\n constructor() {\n super();\n domtools.DomTools.setupDomTools();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .mainbox {\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n #container {\n position: absolute;\n height: 100%;\n width: 100%;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n
\n
\n `;\n }\n\n public async firstUpdated(\n _changedProperties: Map\n ): Promise {\n super.firstUpdated(_changedProperties);\n const container = this.shadowRoot.getElementById('container');\n const monacoCdnBase = `https://cdn.jsdelivr.net/npm/monaco-editor@${MONACO_VERSION}`;\n\n if (!DeesWorkspaceMonaco.monacoDeferred) {\n DeesWorkspaceMonaco.monacoDeferred = domtools.plugins.smartpromise.defer();\n const scriptUrl = `${monacoCdnBase}/min/vs/loader.js`;\n const script = document.createElement('script');\n script.src = scriptUrl;\n script.onload = () => {\n DeesWorkspaceMonaco.monacoDeferred.resolve();\n };\n document.head.appendChild(script);\n }\n await DeesWorkspaceMonaco.monacoDeferred.promise;\n\n (window as any).require.config({\n paths: { vs: `${monacoCdnBase}/min/vs` },\n });\n (window as any).require(['vs/editor/editor.main'], async () => {\n // Get current theme from domtools\n const domtoolsInstance = await this.domtoolsPromise;\n const isBright = domtoolsInstance.themeManager.goBrightBoolean;\n const initialTheme = isBright ? 'vs' : 'vs-dark';\n\n const monacoInstance = (window as any).monaco as typeof monaco;\n\n // Create or get model with proper file URI for TypeScript IntelliSense\n let model: monaco.editor.ITextModel | null = null;\n if (this.filePath) {\n const uri = monacoInstance.Uri.parse(`file://${this.filePath}`);\n model = monacoInstance.editor.getModel(uri);\n if (!model) {\n model = monacoInstance.editor.createModel(this.content, this.language, uri);\n } else {\n model.setValue(this.content);\n }\n }\n\n const editor = (monacoInstance.editor as typeof monaco.editor).create(container, {\n model: model || undefined,\n value: model ? undefined : this.content,\n language: model ? undefined : this.language,\n theme: initialTheme,\n useShadowDOM: true,\n fontSize: 16,\n automaticLayout: true,\n wordWrap: this.wordWrap,\n hover: {\n enabled: true,\n delay: 300,\n sticky: true,\n above: false,\n },\n });\n\n // Subscribe to theme changes\n this.monacoThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe((goBright: boolean) => {\n const newTheme = goBright ? 'vs' : 'vs-dark';\n editor.updateOptions({ theme: newTheme });\n });\n\n this.editorDeferred.resolve(editor);\n });\n const css = await (\n await fetch(`${monacoCdnBase}/min/vs/editor/editor.main.css`)\n ).text();\n const styleElement = document.createElement('style');\n styleElement.textContent = css;\n this.shadowRoot.append(styleElement);\n\n\n // editor is setup let do the rest\n const editor = await this.editorDeferred.promise;\n editor.onDidChangeModelContent(async eventArg => {\n // Don't emit events when we're programmatically updating the content\n if (this.isUpdatingFromExternal) return;\n\n const value = editor.getValue();\n this.contentSubject.next(value);\n this.dispatchEvent(new CustomEvent('content-change', {\n detail: value,\n bubbles: true,\n composed: true,\n }));\n });\n this.contentSubject.next(editor.getValue());\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n\n const monacoInstance = (window as any).monaco as typeof monaco;\n if (!monacoInstance) return;\n\n // Handle filePath changes - switch to different model\n if (changedProperties.has('filePath') && this.filePath) {\n const editor = await this.editorDeferred.promise;\n const uri = monacoInstance.Uri.parse(`file://${this.filePath}`);\n let model = monacoInstance.editor.getModel(uri);\n\n if (!model) {\n model = monacoInstance.editor.createModel(this.content, this.language, uri);\n } else {\n // Update model content if different\n if (model.getValue() !== this.content) {\n this.isUpdatingFromExternal = true;\n model.setValue(this.content);\n this.isUpdatingFromExternal = false;\n }\n }\n\n // Switch editor to use this model\n const currentModel = editor.getModel();\n if (currentModel?.uri.toString() !== uri.toString()) {\n editor.setModel(model);\n }\n return; // filePath change handles content too\n }\n\n // Handle content changes (when no filePath or filePath unchanged)\n if (changedProperties.has('content')) {\n const editor = await this.editorDeferred.promise;\n const currentValue = editor.getValue();\n if (currentValue !== this.content) {\n this.isUpdatingFromExternal = true;\n editor.setValue(this.content);\n this.isUpdatingFromExternal = false;\n }\n }\n\n // Handle language changes\n if (changedProperties.has('language')) {\n const editor = await this.editorDeferred.promise;\n const model = editor.getModel();\n if (model) {\n monacoInstance.editor.setModelLanguage(model, this.language);\n }\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.monacoThemeSubscription) {\n this.monacoThemeSubscription.unsubscribe();\n this.monacoThemeSubscription = null;\n }\n }\n\n /**\n * Update content from external source with optional cursor preservation.\n * Use this when the file content changes externally (e.g., file changed on disk).\n * @param newContent The new content to set\n * @param preserveCursor Whether to preserve cursor/scroll position (default: true)\n */\n public async setContentExternal(\n newContent: string,\n preserveCursor: boolean = true\n ): Promise {\n const editor = await this.editorDeferred.promise;\n const currentValue = editor.getValue();\n\n if (currentValue === newContent) return;\n\n // Save cursor state if preserving\n const position = preserveCursor ? editor.getPosition() : null;\n const selections = preserveCursor ? editor.getSelections() : null;\n const scrollTop = preserveCursor ? editor.getScrollTop() : 0;\n const scrollLeft = preserveCursor ? editor.getScrollLeft() : 0;\n\n // Update content\n this.isUpdatingFromExternal = true;\n editor.setValue(newContent);\n this.isUpdatingFromExternal = false;\n\n // Restore cursor state if preserving\n if (preserveCursor) {\n if (position) {\n // Clamp position to valid range\n const model = editor.getModel();\n const lineCount = model?.getLineCount() || 1;\n const clampedLine = Math.min(position.lineNumber, lineCount);\n const lineLength = model?.getLineMaxColumn(clampedLine) || 1;\n const clampedColumn = Math.min(position.column, lineLength);\n editor.setPosition({ lineNumber: clampedLine, column: clampedColumn });\n }\n if (selections && selections.length > 0) {\n // Selections may be invalid after content change, wrap in try-catch\n try {\n editor.setSelections(selections);\n } catch {\n // Ignore invalid selections\n }\n }\n editor.setScrollPosition({ scrollTop, scrollLeft });\n }\n }\n}\n", "import { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport {\n customElement,\n type TemplateResult,\n property,\n html,\n cssManager,\n css,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-layout/dees-label/dees-label.js';\nimport '../../00group-workspace/dees-workspace-monaco/dees-workspace-monaco.js';\nimport { DeesWorkspaceMonaco } from '../../00group-workspace/dees-workspace-monaco/dees-workspace-monaco.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-code': DeesInputCode;\n }\n}\n\n// Common programming languages for the language selector\nconst LANGUAGES = [\n { key: 'typescript', label: 'TypeScript' },\n { key: 'javascript', label: 'JavaScript' },\n { key: 'json', label: 'JSON' },\n { key: 'html', label: 'HTML' },\n { key: 'css', label: 'CSS' },\n { key: 'scss', label: 'SCSS' },\n { key: 'markdown', label: 'Markdown' },\n { key: 'yaml', label: 'YAML' },\n { key: 'xml', label: 'XML' },\n { key: 'sql', label: 'SQL' },\n { key: 'python', label: 'Python' },\n { key: 'java', label: 'Java' },\n { key: 'csharp', label: 'C#' },\n { key: 'cpp', label: 'C++' },\n { key: 'go', label: 'Go' },\n { key: 'rust', label: 'Rust' },\n { key: 'shell', label: 'Shell' },\n { key: 'plaintext', label: 'Plain Text' },\n];\n\n@customElement('dees-input-code')\nexport class DeesInputCode extends DeesInputBase {\n public static demo = () => html`\n \n `;\n public static demoGroups = ['Input', 'Workspace'];\n\n // INSTANCE\n @property({ type: String })\n accessor value: string = '';\n\n @property({ type: String })\n accessor language: string = 'typescript';\n\n @property({ type: String })\n accessor height: string = '200px';\n\n @property({ type: String })\n accessor wordWrap: 'on' | 'off' = 'off';\n\n @property({ type: Boolean })\n accessor showLineNumbers: boolean = true;\n\n @state()\n accessor isLanguageDropdownOpen: boolean = false;\n\n @state()\n accessor copySuccess: boolean = false;\n\n private editorElement: DeesWorkspaceMonaco | null = null;\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n * {\n box-sizing: border-box;\n }\n\n :host {\n display: flex;\n flex-direction: column;\n min-height: 0;\n }\n\n .input-wrapper,\n :host([label-position=\"top\"]) .input-wrapper,\n :host([label-position=\"left\"]) .input-wrapper,\n :host([label-position=\"right\"]) .input-wrapper {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n }\n\n .code-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n overflow: hidden;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n }\n\n .toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n gap: 8px;\n }\n\n .toolbar-left {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .toolbar-right {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .language-selector {\n position: relative;\n }\n\n .language-button {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n font-size: 12px;\n font-weight: 500;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 12%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 20%)')};\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n transition: all 0.15s ease;\n }\n\n .language-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 15%)')};\n }\n\n .language-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 20%)')};\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n z-index: 100;\n max-height: 250px;\n overflow-y: auto;\n min-width: 140px;\n }\n\n .language-option {\n padding: 8px 12px;\n font-size: 12px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n transition: background 0.15s ease;\n }\n\n .language-option:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 15%)')};\n }\n\n .language-option.selected {\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 20%)')};\n }\n\n .toolbar-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .toolbar-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 15%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n }\n\n .toolbar-button.active {\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n }\n\n .toolbar-button.success {\n color: hsl(142.1 76.2% 36.3%);\n }\n\n .editor-wrapper {\n position: relative;\n flex: 1;\n min-height: 0;\n }\n\n dees-workspace-monaco {\n display: block;\n height: 100%;\n }\n\n .toolbar-divider {\n width: 1px;\n height: 20px;\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n margin: 0 4px;\n }\n\n :host([disabled]) .code-container {\n opacity: 0.5;\n pointer-events: none;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const currentLanguage = LANGUAGES.find(l => l.key === this.language) || LANGUAGES[0];\n\n return html`\n \n
\n \n
\n
\n
\n
\n \n ${currentLanguage.label}\n \n \n ${this.isLanguageDropdownOpen ? html`\n
\n ${LANGUAGES.map(lang => html`\n this.selectLanguage(e, lang.key)}\n >\n ${lang.label}\n
\n `)}\n
\n ` : ''}\n
\n
\n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n
\n \n
\n
\n \n `;\n }\n\n async firstUpdated() {\n this.editorElement = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (this.editorElement) {\n // Subscribe to content changes from the editor\n this.editorElement.contentSubject.subscribe((newContent: string) => {\n if (this.value !== newContent) {\n this.value = newContent;\n this.changeSubject.next(this as any);\n }\n });\n }\n }\n\n private toggleLanguageDropdown() {\n this.isLanguageDropdownOpen = !this.isLanguageDropdownOpen;\n }\n\n private handleLanguageBlur() {\n // Small delay to allow click events on dropdown items\n setTimeout(() => {\n this.isLanguageDropdownOpen = false;\n }, 150);\n }\n\n private async selectLanguage(e: Event, languageKey: string) {\n e.preventDefault();\n this.language = languageKey;\n this.isLanguageDropdownOpen = false;\n\n // Update the editor language\n if (this.editorElement) {\n this.editorElement.language = languageKey;\n const editor = await this.editorElement.editorDeferred.promise;\n const model = editor.getModel();\n if (model) {\n (window as any).monaco.editor.setModelLanguage(model, languageKey);\n }\n }\n }\n\n private toggleWordWrap() {\n this.wordWrap = this.wordWrap === 'on' ? 'off' : 'on';\n this.updateEditorOption('wordWrap', this.wordWrap);\n }\n\n private toggleLineNumbers() {\n this.showLineNumbers = !this.showLineNumbers;\n this.updateEditorOption('lineNumbers', this.showLineNumbers ? 'on' : 'off');\n }\n\n private async updateEditorOption(option: string, value: any) {\n if (this.editorElement) {\n const editor = await this.editorElement.editorDeferred.promise;\n editor.updateOptions({ [option]: value });\n }\n }\n\n private async copyCode() {\n try {\n await navigator.clipboard.writeText(this.value);\n this.copySuccess = true;\n setTimeout(() => {\n this.copySuccess = false;\n }, 2000);\n } catch (err) {\n console.error('Failed to copy code:', err);\n }\n }\n\n private handleContentChange(e: CustomEvent) {\n const newContent = e.detail;\n if (this.value !== newContent) {\n this.value = newContent;\n this.changeSubject.next(this as any);\n }\n }\n\n public async openFullscreen() {\n const currentValue = this.value;\n let modalEditorElement: DeesWorkspaceMonaco | null = null;\n\n // Modal-specific state\n let modalLanguage = this.language;\n let modalWordWrap = this.wordWrap;\n let modalShowLineNumbers = this.showLineNumbers;\n let modalLanguageDropdownOpen = false;\n let modalCopySuccess = false;\n\n // Helper to get current language label\n const getLanguageLabel = () => {\n const lang = LANGUAGES.find(l => l.key === modalLanguage);\n return lang ? lang.label : 'TypeScript';\n };\n\n // Helper to update toolbar UI\n const updateToolbarUI = (modal: DeesModal) => {\n const toolbar = modal.shadowRoot?.querySelector('.modal-toolbar');\n if (!toolbar) return;\n\n // Update language button text\n const langBtn = toolbar.querySelector('.language-button span');\n if (langBtn) langBtn.textContent = getLanguageLabel();\n\n // Update word wrap button\n const wrapBtn = toolbar.querySelector('.wrap-btn') as HTMLElement;\n if (wrapBtn) {\n wrapBtn.classList.toggle('active', modalWordWrap === 'on');\n }\n\n // Update line numbers button\n const linesBtn = toolbar.querySelector('.lines-btn') as HTMLElement;\n if (linesBtn) {\n linesBtn.classList.toggle('active', modalShowLineNumbers);\n }\n\n // Update copy button\n const copyBtn = toolbar.querySelector('.copy-btn') as HTMLElement;\n const copyIcon = copyBtn?.querySelector('dees-icon') as any;\n if (copyBtn && copyIcon) {\n copyBtn.classList.toggle('success', modalCopySuccess);\n copyIcon.icon = modalCopySuccess ? 'lucide:Check' : 'lucide:Copy';\n }\n\n // Update dropdown visibility\n const dropdown = toolbar.querySelector('.language-dropdown') as HTMLElement;\n if (dropdown) {\n dropdown.style.display = modalLanguageDropdownOpen ? 'block' : 'none';\n }\n };\n\n const modal = await DeesModal.createAndShow({\n heading: this.label || 'Code Editor',\n width: 'fullscreen',\n contentPadding: 0,\n content: html`\n \n
\n
\n
\n \n
\n ${LANGUAGES.map(lang => html`\n \n ${lang.label}\n
\n `)}\n
\n
\n
\n
\n \n \n
\n \n
\n \n
\n \n
\n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modalRef) => {\n await modalRef.destroy();\n },\n },\n {\n name: 'Save & Close',\n action: async (modalRef) => {\n // Get the editor content from the modal\n modalEditorElement = modalRef.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (modalEditorElement) {\n const editor = await modalEditorElement.editorDeferred.promise;\n const newValue = editor.getValue();\n this.setValue(newValue);\n }\n await modalRef.destroy();\n },\n },\n ],\n });\n\n // Wait for modal to render\n await new Promise(resolve => setTimeout(resolve, 100));\n modalEditorElement = modal.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n\n // Wire up toolbar event handlers\n const toolbar = modal.shadowRoot?.querySelector('.modal-toolbar');\n if (toolbar) {\n // Language button click\n const langBtn = toolbar.querySelector('.language-button');\n langBtn?.addEventListener('click', () => {\n modalLanguageDropdownOpen = !modalLanguageDropdownOpen;\n updateToolbarUI(modal);\n });\n\n // Language option clicks\n const langOptions = toolbar.querySelectorAll('.language-option');\n langOptions.forEach((option) => {\n option.addEventListener('click', async () => {\n const newLang = (option as HTMLElement).dataset.lang;\n if (newLang && modalEditorElement) {\n modalLanguage = newLang;\n modalLanguageDropdownOpen = false;\n\n // Update editor language\n const editor = await modalEditorElement.editorDeferred.promise;\n const model = editor.getModel();\n if (model) {\n (window as any).monaco.editor.setModelLanguage(model, newLang);\n }\n\n // Update selected state\n langOptions.forEach(opt => opt.classList.remove('selected'));\n option.classList.add('selected');\n\n updateToolbarUI(modal);\n }\n });\n });\n\n // Word wrap button\n const wrapBtn = toolbar.querySelector('.wrap-btn');\n wrapBtn?.addEventListener('click', async () => {\n modalWordWrap = modalWordWrap === 'on' ? 'off' : 'on';\n if (modalEditorElement) {\n const editor = await modalEditorElement.editorDeferred.promise;\n editor.updateOptions({ wordWrap: modalWordWrap });\n }\n updateToolbarUI(modal);\n });\n\n // Line numbers button\n const linesBtn = toolbar.querySelector('.lines-btn');\n linesBtn?.addEventListener('click', async () => {\n modalShowLineNumbers = !modalShowLineNumbers;\n if (modalEditorElement) {\n const editor = await modalEditorElement.editorDeferred.promise;\n editor.updateOptions({ lineNumbers: modalShowLineNumbers ? 'on' : 'off' });\n }\n updateToolbarUI(modal);\n });\n\n // Copy button\n const copyBtn = toolbar.querySelector('.copy-btn');\n copyBtn?.addEventListener('click', async () => {\n if (modalEditorElement) {\n const editor = await modalEditorElement.editorDeferred.promise;\n const content = editor.getValue();\n try {\n await navigator.clipboard.writeText(content);\n modalCopySuccess = true;\n updateToolbarUI(modal);\n setTimeout(() => {\n modalCopySuccess = false;\n updateToolbarUI(modal);\n }, 2000);\n } catch (err) {\n console.error('Failed to copy code:', err);\n }\n }\n });\n\n // Close dropdown when clicking outside\n document.addEventListener('click', (e) => {\n if (modalLanguageDropdownOpen && !langBtn?.contains(e.target as Node)) {\n modalLanguageDropdownOpen = false;\n updateToolbarUI(modal);\n }\n }, { once: true });\n }\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n if (this.editorElement) {\n this.editorElement.content = value;\n // Also update the Monaco editor directly if it's already loaded\n this.editorElement.editorDeferred.promise.then(editor => {\n if (editor.getValue() !== value) {\n editor.setValue(value);\n }\n });\n }\n this.changeSubject.next(this as any);\n }\n}\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport './component.js';\nimport type { DeesInputDatepicker } from './component.js';\n\nexport const demoFunc = () => html`\n \n \n
\n {\n // Demonstrate basic date picker functionality\n const datePicker = elementArg.querySelector('dees-input-datepicker');\n \n if (datePicker) {\n datePicker.addEventListener('change', (event: CustomEvent) => {\n console.log('Basic date selected:', (event.target as DeesInputDatepicker).value);\n });\n }\n }}>\n \n \n \n \n\n {\n // Demonstrate date and time picker\n const dateTimePicker = elementArg.querySelector('dees-input-datepicker[label=\"Event Date & Time\"]');\n const appointmentPicker = elementArg.querySelector('dees-input-datepicker[label=\"Appointment\"]');\n \n if (dateTimePicker) {\n dateTimePicker.addEventListener('change', (event: CustomEvent) => {\n const value = (event.target as DeesInputDatepicker).value;\n console.log('24h format datetime:', value);\n });\n }\n \n if (appointmentPicker) {\n appointmentPicker.addEventListener('change', (event: CustomEvent) => {\n const value = (event.target as DeesInputDatepicker).value;\n console.log('12h format datetime:', value);\n });\n }\n }}>\n \n \n \n \n \n \n\n {\n // Demonstrate timezone functionality\n const timezonePickers = elementArg.querySelectorAll('dees-input-datepicker');\n \n timezonePickers.forEach((picker) => {\n picker.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputDatepicker;\n console.log(`${target.label} value:`, target.value);\n const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;\n if (input) {\n console.log(`${target.label} formatted:`, input.value);\n }\n });\n });\n }}>\n \n \n \n \n \n \n\n {\n // Demonstrate date constraints\n const futureDatePicker = elementArg.querySelector('dees-input-datepicker');\n \n if (futureDatePicker) {\n // Show the min/max constraints in action\n futureDatePicker.addEventListener('change', (event: CustomEvent) => {\n const value = (event.target as DeesInputDatepicker).value;\n if (value) {\n const selectedDate = new Date(value);\n const today = new Date();\n const daysDiff = Math.floor((selectedDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24));\n console.log(`Selected date is ${daysDiff} days from today`);\n }\n });\n }\n }}>\n \n \n \n \n\n {\n // Demonstrate different date formats\n const formatters = {\n 'DD/MM/YYYY': 'European',\n 'MM/DD/YYYY': 'US',\n 'YYYY-MM-DD': 'ISO'\n };\n \n const datePickers = elementArg.querySelectorAll('dees-input-datepicker');\n datePickers.forEach((picker) => {\n picker.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputDatepicker;\n // Log the formatted value that's displayed in the input\n const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;\n if (input) {\n console.log(`${target.label} format:`, input.value);\n }\n });\n });\n }}>\n \n
\n \n \n \n \n \n
\n
\n
\n\n {\n // Demonstrate required field validation\n const requiredPicker = elementArg.querySelector('dees-input-datepicker[required]');\n \n if (requiredPicker) {\n // Monitor blur events for validation\n requiredPicker.addEventListener('blur', () => {\n const picker = requiredPicker as DeesInputDatepicker;\n const value = picker.getValue();\n if (!value) {\n console.log('Required date field is empty');\n }\n });\n }\n }}>\n \n \n \n \n \n \n\n {\n // Demonstrate week start customization\n const usPicker = elementArg.querySelector('dees-input-datepicker[label=\"US Calendar\"]');\n const euPicker = elementArg.querySelector('dees-input-datepicker[label=\"EU Calendar\"]');\n \n if (usPicker) {\n console.log('US Calendar starts on Sunday (0)');\n }\n if (euPicker) {\n console.log('EU Calendar starts on Monday (1)');\n }\n }}>\n \n
\n \n \n \n
\n
\n
\n\n {\n // Generate weekend dates for the current month\n const generateWeekends = () => {\n const weekends = [];\n const now = new Date();\n const year = now.getFullYear();\n const month = now.getMonth();\n \n // Get all weekends for current month\n const date = new Date(year, month, 1);\n while (date.getMonth() === month) {\n if (date.getDay() === 0 || date.getDay() === 6) {\n weekends.push(new Date(date).toISOString());\n }\n date.setDate(date.getDate() + 1);\n }\n return weekends;\n };\n \n const picker = elementArg.querySelector('dees-input-datepicker');\n if (picker) {\n picker.disabledDates = generateWeekends();\n console.log('Disabled weekend dates for current month');\n }\n }}>\n \n \n \n \n\n {\n // Generate sample events for the calendar\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear();\n \n const sampleEvents = [\n // Current week events\n {\n date: `${currentYear}-${(currentMonth + 1).toString().padStart(2, '0')}-${today.getDate().toString().padStart(2, '0')}`,\n title: \"Team Meeting\",\n type: \"info\" as const,\n count: 2\n },\n {\n date: `${currentYear}-${(currentMonth + 1).toString().padStart(2, '0')}-${(today.getDate() + 1).toString().padStart(2, '0')}`,\n title: \"Project Deadline\",\n type: \"warning\" as const\n },\n {\n date: `${currentYear}-${(currentMonth + 1).toString().padStart(2, '0')}-${(today.getDate() + 2).toString().padStart(2, '0')}`,\n title: \"Release Day\",\n type: \"success\" as const\n },\n {\n date: `${currentYear}-${(currentMonth + 1).toString().padStart(2, '0')}-${(today.getDate() + 5).toString().padStart(2, '0')}`,\n title: \"Urgent Fix Required\",\n type: \"error\" as const\n },\n // Multiple events on one day\n {\n date: `${currentYear}-${(currentMonth + 1).toString().padStart(2, '0')}-${(today.getDate() + 7).toString().padStart(2, '0')}`,\n title: \"Multiple Events Today\",\n type: \"info\" as const,\n count: 5\n },\n // Next month event\n {\n date: `${currentYear}-${(currentMonth + 2).toString().padStart(2, '0')}-15`,\n title: \"Future Planning Session\",\n type: \"info\" as const\n }\n ];\n \n const picker = elementArg.querySelector('dees-input-datepicker');\n if (picker) {\n picker.events = sampleEvents;\n console.log('Calendar events loaded:', sampleEvents);\n }\n }}>\n \n \n \n
\n Event Legend:
\n \u25CF Info | \n \u25CF Warning | \n \u25CF Success | \n \u25CF Error
\n Days with more than 3 events show a count badge\n
\n
\n
\n\n {\n // Interactive event demonstration\n const picker = elementArg.querySelector('dees-input-datepicker');\n const output = elementArg.querySelector('#event-output');\n \n if (picker && output) {\n picker.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputDatepicker;\n const value = target.value;\n if (value) {\n const date = new Date(value);\n // Get the formatted value from the input element\n const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;\n const formattedValue = input?.value || 'N/A';\n output.innerHTML = `\n Event triggered!
\n ISO Value: ${value}
\n Formatted: ${formattedValue}
\n Date object: ${date.toLocaleString()}\n `;\n } else {\n output.innerHTML = 'Date cleared';\n }\n });\n \n picker.addEventListener('blur', () => {\n console.log('Datepicker lost focus');\n });\n }\n }}>\n \n \n \n
\n Select a date to see event details...\n
\n
\n
\n
\n`;", "import { css, cssManager } from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\n\nexport const datepickerStyles = [\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: relative;\n }\n\n .input-container {\n position: relative;\n width: 100%;\n }\n\n .date-input {\n width: 100%;\n height: 40px;\n padding: 0 12px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n border-radius: 6px;\n font-size: 14px;\n line-height: 1.5;\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n cursor: pointer;\n transition: all 0.2s ease;\n outline: none;\n font-family: inherit;\n }\n\n .date-input::placeholder {\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .date-input:hover:not(:disabled) {\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n }\n\n .date-input:focus,\n .date-input.open {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')},\n 0 0 0 4px ${cssManager.bdTheme('hsl(222.2 47.4% 11.2% / 0.1)', 'hsl(210 20% 98% / 0.1)')};\n }\n\n .date-input:disabled {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Icon container using flexbox for better positioning */\n .icon-container {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 0 12px;\n pointer-events: none;\n }\n\n .icon-container > * {\n pointer-events: auto;\n }\n\n .calendar-icon {\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n pointer-events: none;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .clear-button {\n width: 20px;\n height: 20px;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n transition: opacity 0.2s ease, background-color 0.2s ease;\n padding: 0;\n flex-shrink: 0;\n }\n\n .clear-button:hover {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n }\n\n .clear-button:disabled {\n display: none;\n }\n\n /* Calendar Popup Styles */\n .calendar-popup {\n will-change: transform, opacity;\n pointer-events: none;\n transition: all 0.2s ease;\n opacity: 0;\n transform: translateY(-4px);\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n box-shadow: ${cssManager.bdTheme(\n '0 10px 15px -3px hsl(0 0% 0% / 0.1), 0 4px 6px -4px hsl(0 0% 0% / 0.1)',\n '0 10px 15px -3px hsl(0 0% 0% / 0.2), 0 4px 6px -4px hsl(0 0% 0% / 0.2)'\n )};\n border-radius: 6px;\n padding: 12px;\n position: absolute;\n user-select: none;\n margin-top: 4px;\n z-index: 50;\n left: 0;\n min-width: 280px;\n }\n\n .calendar-popup.top {\n bottom: calc(100% + 4px);\n top: auto;\n margin-top: 0;\n margin-bottom: 4px;\n transform: translateY(4px);\n }\n\n .calendar-popup.bottom {\n top: 100%;\n }\n\n .calendar-popup.show {\n pointer-events: all;\n transform: translateY(0);\n opacity: 1;\n }\n\n /* Calendar Header */\n .calendar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n gap: 8px;\n }\n\n .month-year-display {\n font-weight: 500;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n flex: 1;\n text-align: center;\n }\n\n .nav-button {\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n transition: all 0.2s ease;\n }\n\n .nav-button:hover {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n }\n\n .nav-button:active {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n /* Weekday headers */\n .weekdays {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 0;\n margin-bottom: 4px;\n }\n\n .weekday {\n text-align: center;\n font-size: 12px;\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n padding: 0 0 8px 0;\n }\n\n /* Days grid */\n .days-grid {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 2px;\n }\n\n .day {\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 6px;\n font-size: 14px;\n transition: all 0.2s ease;\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n border: none;\n width: 36px;\n height: 36px;\n background: transparent;\n }\n\n .day:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n }\n\n .day.other-month {\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n opacity: 0.5;\n }\n\n .day.today {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n font-weight: 500;\n }\n\n .day.selected {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n color: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(222.2 47.4% 11.2%)')};\n font-weight: 500;\n }\n\n .day.disabled {\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n cursor: not-allowed;\n opacity: 0.3;\n }\n\n /* Event indicators */\n .day.has-event {\n position: relative;\n }\n\n .event-indicator {\n position: absolute;\n bottom: 4px;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n gap: 2px;\n justify-content: center;\n }\n\n .event-dot {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .event-dot.info {\n background: ${cssManager.bdTheme('hsl(211 70% 52%)', 'hsl(211 70% 62%)')};\n }\n\n .event-dot.warning {\n background: ${cssManager.bdTheme('hsl(45 90% 45%)', 'hsl(45 90% 55%)')};\n }\n\n .event-dot.success {\n background: ${cssManager.bdTheme('hsl(142 69% 45%)', 'hsl(142 69% 55%)')};\n }\n\n .event-dot.error {\n background: ${cssManager.bdTheme('hsl(0 72% 51%)', 'hsl(0 72% 61%)')};\n }\n\n .event-count {\n position: absolute;\n top: 2px;\n right: 2px;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n background: ${cssManager.bdTheme('hsl(0 72% 51%)', 'hsl(0 72% 61%)')};\n color: white;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n }\n\n /* Tooltip for event details */\n .event-tooltip {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n background: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 0%)')};\n padding: 8px 12px;\n border-radius: 6px;\n font-size: 12px;\n white-space: nowrap;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 10;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n }\n\n .event-tooltip::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 4px solid transparent;\n border-top-color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n }\n\n .day.has-event:hover .event-tooltip {\n opacity: 1;\n }\n\n /* Time selector */\n .time-selector {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n .time-selector-title {\n font-size: 12px;\n font-weight: 500;\n margin-bottom: 8px;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .time-inputs {\n display: flex;\n gap: 8px;\n align-items: center;\n }\n\n .time-input {\n width: 65px;\n height: 36px;\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n border-radius: 6px;\n padding: 0 12px;\n font-size: 14px;\n text-align: center;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n transition: all 0.2s ease;\n }\n\n .time-input:hover {\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n }\n\n .time-input:focus {\n outline: none;\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(222.2 47.4% 11.2% / 0.1)', 'hsl(210 20% 98% / 0.1)')};\n }\n\n .time-separator {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .am-pm-selector {\n display: flex;\n gap: 4px;\n margin-left: 8px;\n }\n\n .am-pm-button {\n padding: 6px 12px;\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .am-pm-button.selected {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n color: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(222.2 47.4% 11.2%)')};\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n }\n\n .am-pm-button:hover:not(.selected) {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n /* Action buttons */\n .calendar-actions {\n display: flex;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n .action-button {\n flex: 1;\n height: 36px;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .today-button {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n }\n\n .today-button:hover {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n .today-button:active {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n .clear-button {\n background: transparent;\n border: 1px solid transparent;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .clear-button:hover {\n background: ${cssManager.bdTheme('hsl(0 72.2% 50.6% / 0.1)', 'hsl(0 62.8% 30.6% / 0.1)')};\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n }\n\n .clear-button:active {\n background: ${cssManager.bdTheme('hsl(0 72.2% 50.6% / 0.2)', 'hsl(0 62.8% 30.6% / 0.2)')};\n }\n\n /* Timezone selector */\n .timezone-selector {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n .timezone-selector-title {\n font-size: 12px;\n font-weight: 500;\n margin-bottom: 8px;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .timezone-select {\n width: 100%;\n height: 36px;\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n border-radius: 6px;\n padding: 0 12px;\n font-size: 14px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .timezone-select:hover {\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n }\n\n .timezone-select:focus {\n outline: none;\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(222.2 47.4% 11.2% / 0.1)', 'hsl(210 20% 98% / 0.1)')};\n }\n `,\n ];", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport type { DeesInputDatepicker } from './component.js';\n\nexport const renderDatepicker = (component: DeesInputDatepicker): TemplateResult => {\n const monthNames = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'\n ];\n\n const weekDays = component.weekStartsOn === 1 \n ? ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']\n : ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\n const days = component.getDaysInMonth();\n const isAM = component.selectedHour < 12;\n const timezones = component.getTimezones();\n\n return html`\n
\n \n
\n \n
\n ${component.value && !component.disabled ? html`\n \n ` : ''}\n \n
\n \n \n
\n \n
\n \n
\n ${monthNames[component.viewDate.getMonth()]} ${component.viewDate.getFullYear()}\n
\n \n
\n\n \n
\n ${weekDays.map(day => html`
${day}
`)}\n
\n\n \n
\n ${days.map(day => {\n const isToday = component.isToday(day);\n const isSelected = component.isSelected(day);\n const isOtherMonth = day.getMonth() !== component.viewDate.getMonth();\n const isDisabled = component.isDisabled(day);\n const dayEvents = component.getEventsForDate(day);\n const hasEvents = dayEvents.length > 0;\n const totalEventCount = dayEvents.reduce((sum, event) => sum + (event.count || 1), 0);\n\n return html`\n
!isDisabled && component.selectDate(day)}\n >\n ${day.getDate()}\n ${hasEvents ? html`\n ${totalEventCount > 3 ? html`\n
${totalEventCount}
\n ` : html`\n
\n ${dayEvents.slice(0, 3).map(event => html`\n
\n `)}\n
\n `}\n ${dayEvents[0].title ? html`\n
\n ${dayEvents[0].title}\n ${totalEventCount > 1 ? html` (+${totalEventCount - 1} more)` : ''}\n
\n ` : ''}\n ` : ''}\n
\n `;\n })}\n
\n\n \n ${component.enableTime ? html`\n
\n
Time
\n
\n 12 ? component.selectedHour - 12 : component.selectedHour).toString().padStart(2, '0')\n : component.selectedHour.toString().padStart(2, '0')}\n @input=${(e: InputEvent) => component.handleHourInput(e)}\n min=\"${component.timeFormat === '12h' ? 1 : 0}\"\n max=\"${component.timeFormat === '12h' ? 12 : 23}\"\n />\n :\n component.handleMinuteInput(e)}\n min=\"0\"\n max=\"59\"\n step=\"${component.minuteIncrement || 1}\"\n />\n ${component.timeFormat === '12h' ? html`\n
\n \n \n
\n ` : ''}\n
\n
\n ` : ''}\n\n \n ${component.enableTimezone ? html`\n
\n
Timezone
\n \n
\n ` : ''}\n\n \n
\n \n \n
\n
\n
\n
\n `;\n \n};\n", "import {\n customElement,\n type TemplateResult,\n property,\n state,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './demo.js';\nimport { datepickerStyles } from './styles.js';\nimport { renderDatepicker } from './template.js';\nimport type { IDateEvent } from './types.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-layout/dees-label/dees-label.js';\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-datepicker': DeesInputDatepicker;\n }\n}\n\n@customElement('dees-input-datepicker')\nexport class DeesInputDatepicker extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n @property({ type: String })\n accessor value: string = '';\n\n @property({ type: Boolean })\n accessor enableTime: boolean = false;\n\n @property({ type: String })\n accessor timeFormat: '24h' | '12h' = '24h';\n\n @property({ type: Number })\n accessor minuteIncrement: number = 1;\n\n @property({ type: String })\n accessor dateFormat: string = 'YYYY-MM-DD';\n\n @property({ type: String })\n accessor minDate: string = '';\n\n @property({ type: String })\n accessor maxDate: string = '';\n\n @property({ type: Array })\n accessor disabledDates: string[] = [];\n\n @property({ type: Number })\n accessor weekStartsOn: 0 | 1 = 1; // Default to Monday\n\n @property({ type: String })\n accessor placeholder: string = 'YYYY-MM-DD';\n\n @property({ type: Boolean })\n accessor enableTimezone: boolean = false;\n\n @property({ type: String })\n accessor timezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n @property({ type: Array })\n accessor events: IDateEvent[] = [];\n\n @state()\n accessor isOpened: boolean = false;\n\n @state()\n accessor opensToTop: boolean = false;\n\n @state()\n accessor selectedDate: Date | null = null;\n\n @state()\n accessor viewDate: Date = new Date();\n\n @state()\n accessor selectedHour: number = 0;\n\n @state()\n accessor selectedMinute: number = 0;\n\n public static styles = datepickerStyles;\n\n\n\n public getTimezones(): { value: string; label: string }[] {\n // Common timezones with their display names\n return [\n { value: 'UTC', label: 'UTC (Coordinated Universal Time)' },\n { value: 'America/New_York', label: 'Eastern Time (US & Canada)' },\n { value: 'America/Chicago', label: 'Central Time (US & Canada)' },\n { value: 'America/Denver', label: 'Mountain Time (US & Canada)' },\n { value: 'America/Los_Angeles', label: 'Pacific Time (US & Canada)' },\n { value: 'America/Phoenix', label: 'Arizona' },\n { value: 'America/Anchorage', label: 'Alaska' },\n { value: 'Pacific/Honolulu', label: 'Hawaii' },\n { value: 'Europe/London', label: 'London' },\n { value: 'Europe/Paris', label: 'Paris' },\n { value: 'Europe/Berlin', label: 'Berlin' },\n { value: 'Europe/Moscow', label: 'Moscow' },\n { value: 'Asia/Dubai', label: 'Dubai' },\n { value: 'Asia/Kolkata', label: 'India Standard Time' },\n { value: 'Asia/Shanghai', label: 'China Standard Time' },\n { value: 'Asia/Tokyo', label: 'Tokyo' },\n { value: 'Australia/Sydney', label: 'Sydney' },\n { value: 'Pacific/Auckland', label: 'Auckland' },\n ];\n }\n\n public render(): TemplateResult {\n return renderDatepicker(this);\n }\n\n\n\n async connectedCallback() {\n super.connectedCallback();\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n async firstUpdated() {\n // Initialize with empty value if not set\n if (!this.value) {\n this.value = '';\n }\n\n // Initialize view date and selected time\n if (this.value) {\n try {\n const date = new Date(this.value);\n if (!isNaN(date.getTime())) {\n this.selectedDate = date;\n this.viewDate = new Date(date);\n this.selectedHour = date.getHours();\n this.selectedMinute = date.getMinutes();\n }\n } catch {\n // Invalid date\n }\n } else {\n const now = new Date();\n this.viewDate = new Date(now);\n this.selectedHour = now.getHours();\n this.selectedMinute = 0;\n }\n }\n\n public formatDate(isoString: string): string {\n if (!isoString) return '';\n\n try {\n const date = new Date(isoString);\n if (isNaN(date.getTime())) return '';\n\n let formatted = this.dateFormat;\n \n // Basic date formatting\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear().toString();\n \n // Replace in correct order to avoid conflicts\n formatted = formatted.replace('YYYY', year);\n formatted = formatted.replace('YY', year.slice(-2));\n formatted = formatted.replace('MM', month);\n formatted = formatted.replace('DD', day);\n\n // Time formatting if enabled\n if (this.enableTime) {\n const hours24 = date.getHours();\n const hours12 = hours24 === 0 ? 12 : hours24 > 12 ? hours24 - 12 : hours24;\n const minutes = date.getMinutes().toString().padStart(2, '0');\n const ampm = hours24 >= 12 ? 'PM' : 'AM';\n\n if (this.timeFormat === '12h') {\n formatted += ` ${hours12}:${minutes} ${ampm}`;\n } else {\n formatted += ` ${hours24.toString().padStart(2, '0')}:${minutes}`;\n }\n }\n\n // Timezone formatting if enabled\n if (this.enableTimezone) {\n const formatter = new Intl.DateTimeFormat('en-US', {\n timeZoneName: 'short',\n timeZone: this.timezone\n });\n const parts = formatter.formatToParts(date);\n const tzPart = parts.find(part => part.type === 'timeZoneName');\n if (tzPart) {\n formatted += ` ${tzPart.value}`;\n }\n }\n\n return formatted;\n } catch {\n return '';\n }\n }\n\n private handleClickOutside = (event: MouseEvent) => {\n const path = event.composedPath();\n if (!path.includes(this)) {\n this.isOpened = false;\n document.removeEventListener('click', this.handleClickOutside);\n }\n };\n\n public async toggleCalendar(): Promise {\n if (this.disabled) return;\n\n this.isOpened = !this.isOpened;\n\n if (this.isOpened) {\n // Check available space and set position\n const inputContainer = this.shadowRoot!.querySelector('.input-container') as HTMLElement;\n const rect = inputContainer.getBoundingClientRect();\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n \n // Determine if we should open upwards (approximate height of 400px)\n this.opensToTop = spaceBelow < 400 && spaceAbove > spaceBelow;\n\n // Add click outside listener\n setTimeout(() => {\n document.addEventListener('click', this.handleClickOutside);\n }, 0);\n } else {\n document.removeEventListener('click', this.handleClickOutside);\n }\n }\n\n public getDaysInMonth(): Date[] {\n const year = this.viewDate.getFullYear();\n const month = this.viewDate.getMonth();\n const firstDay = new Date(year, month, 1);\n const lastDay = new Date(year, month + 1, 0);\n const days: Date[] = [];\n\n // Adjust for week start\n const startOffset = this.weekStartsOn === 1 \n ? (firstDay.getDay() === 0 ? 6 : firstDay.getDay() - 1)\n : firstDay.getDay();\n\n // Add days from previous month\n for (let i = startOffset; i > 0; i--) {\n days.push(new Date(year, month, 1 - i));\n }\n\n // Add days of current month\n for (let i = 1; i <= lastDay.getDate(); i++) {\n days.push(new Date(year, month, i));\n }\n\n // Add days from next month to complete the grid (6 rows)\n const remainingDays = 42 - days.length;\n for (let i = 1; i <= remainingDays; i++) {\n days.push(new Date(year, month + 1, i));\n }\n\n return days;\n }\n\n public isToday(date: Date): boolean {\n const today = new Date();\n return date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear();\n }\n\n public isSelected(date: Date): boolean {\n if (!this.selectedDate) return false;\n return date.getDate() === this.selectedDate.getDate() &&\n date.getMonth() === this.selectedDate.getMonth() &&\n date.getFullYear() === this.selectedDate.getFullYear();\n }\n\n public isDisabled(date: Date): boolean {\n // Check min date\n if (this.minDate) {\n const min = new Date(this.minDate);\n if (date < min) return true;\n }\n\n // Check max date\n if (this.maxDate) {\n const max = new Date(this.maxDate);\n if (date > max) return true;\n }\n\n // Check disabled dates\n if (this.disabledDates && this.disabledDates.length > 0) {\n return this.disabledDates.some(disabledStr => {\n try {\n const disabled = new Date(disabledStr);\n return date.getDate() === disabled.getDate() &&\n date.getMonth() === disabled.getMonth() &&\n date.getFullYear() === disabled.getFullYear();\n } catch {\n return false;\n }\n });\n }\n\n return false;\n }\n\n public getEventsForDate(date: Date): IDateEvent[] {\n if (!this.events || this.events.length === 0) return [];\n \n const dateStr = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;\n return this.events.filter(event => event.date === dateStr);\n }\n\n public selectDate(date: Date): void {\n this.selectedDate = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n this.selectedHour,\n this.selectedMinute\n );\n \n this.value = this.formatValueWithTimezone(this.selectedDate);\n this.changeSubject.next(this);\n \n if (!this.enableTime) {\n this.isOpened = false;\n }\n }\n\n public selectToday(): void {\n const today = new Date();\n this.selectedDate = today;\n this.viewDate = new Date(today);\n this.selectedHour = today.getHours();\n this.selectedMinute = today.getMinutes();\n \n this.value = this.formatValueWithTimezone(this.selectedDate);\n this.changeSubject.next(this);\n \n if (!this.enableTime) {\n this.isOpened = false;\n }\n }\n\n public clear(): void {\n this.value = '';\n this.selectedDate = null;\n this.changeSubject.next(this);\n this.isOpened = false;\n }\n\n public previousMonth(): void {\n this.viewDate = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth() - 1, 1);\n }\n\n public nextMonth(): void {\n this.viewDate = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth() + 1, 1);\n }\n\n public handleHourInput(e: InputEvent): void {\n const input = e.target as HTMLInputElement;\n let value = parseInt(input.value) || 0;\n \n if (this.timeFormat === '12h') {\n value = Math.max(1, Math.min(12, value));\n // Convert to 24h format\n if (this.selectedHour >= 12 && value !== 12) {\n this.selectedHour = value + 12;\n } else if (this.selectedHour < 12 && value === 12) {\n this.selectedHour = 0;\n } else {\n this.selectedHour = value;\n }\n } else {\n this.selectedHour = Math.max(0, Math.min(23, value));\n }\n \n this.updateSelectedDateTime();\n }\n\n public handleMinuteInput(e: InputEvent): void {\n const input = e.target as HTMLInputElement;\n let value = parseInt(input.value) || 0;\n value = Math.max(0, Math.min(59, value));\n \n if (this.minuteIncrement && this.minuteIncrement > 1) {\n value = Math.round(value / this.minuteIncrement) * this.minuteIncrement;\n }\n \n this.selectedMinute = value;\n this.updateSelectedDateTime();\n }\n\n public setAMPM(period: 'am' | 'pm'): void {\n if (period === 'am' && this.selectedHour >= 12) {\n this.selectedHour -= 12;\n } else if (period === 'pm' && this.selectedHour < 12) {\n this.selectedHour += 12;\n }\n this.updateSelectedDateTime();\n }\n\n private updateSelectedDateTime(): void {\n if (this.selectedDate) {\n this.selectedDate = new Date(\n this.selectedDate.getFullYear(),\n this.selectedDate.getMonth(),\n this.selectedDate.getDate(),\n this.selectedHour,\n this.selectedMinute\n );\n this.value = this.formatValueWithTimezone(this.selectedDate);\n this.changeSubject.next(this);\n }\n }\n\n public handleTimezoneChange(e: Event): void {\n const select = e.target as HTMLSelectElement;\n this.timezone = select.value;\n this.updateSelectedDateTime();\n }\n\n private formatValueWithTimezone(date: Date): string {\n if (!this.enableTimezone) {\n return date.toISOString();\n }\n \n // Format the date with timezone offset\n const formatter = new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n timeZone: this.timezone,\n timeZoneName: 'short'\n });\n \n const parts = formatter.formatToParts(date);\n const dateParts: any = {};\n parts.forEach(part => {\n dateParts[part.type] = part.value;\n });\n \n // Create ISO-like format with timezone\n const isoString = `${dateParts.year}-${dateParts.month}-${dateParts.day}T${dateParts.hour}:${dateParts.minute}:${dateParts.second}`;\n \n // Get timezone offset\n const tzOffset = this.getTimezoneOffset(date, this.timezone);\n return `${isoString}${tzOffset}`;\n }\n\n private getTimezoneOffset(date: Date, timezone: string): string {\n // Create a date in the target timezone\n const tzDate = new Date(date.toLocaleString('en-US', { timeZone: timezone }));\n const utcDate = new Date(date.toLocaleString('en-US', { timeZone: 'UTC' }));\n \n const offsetMinutes = (tzDate.getTime() - utcDate.getTime()) / (1000 * 60);\n const hours = Math.floor(Math.abs(offsetMinutes) / 60);\n const minutes = Math.abs(offsetMinutes) % 60;\n const sign = offsetMinutes >= 0 ? '+' : '-';\n \n return `${sign}${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;\n }\n\n public handleKeydown(e: KeyboardEvent): void {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.toggleCalendar();\n } else if (e.key === 'Escape' && this.isOpened) {\n e.preventDefault();\n this.isOpened = false;\n }\n }\n\n public clearValue(e: Event): void {\n e.stopPropagation();\n this.value = '';\n this.selectedDate = null;\n this.changeSubject.next(this);\n }\n\n public handleManualInput(e: InputEvent): void {\n const input = e.target as HTMLInputElement;\n const inputValue = input.value.trim();\n \n if (!inputValue) {\n // Clear the value if input is empty\n this.value = '';\n this.selectedDate = null;\n return;\n }\n\n const parsedDate = this.parseManualDate(inputValue);\n if (parsedDate && !isNaN(parsedDate.getTime())) {\n // Update internal state without triggering re-render of input\n this.value = parsedDate.toISOString();\n this.selectedDate = parsedDate;\n this.viewDate = new Date(parsedDate);\n this.selectedHour = parsedDate.getHours();\n this.selectedMinute = parsedDate.getMinutes();\n this.changeSubject.next(this);\n }\n }\n\n public handleInputBlur(e: FocusEvent): void {\n const input = e.target as HTMLInputElement;\n const inputValue = input.value.trim();\n \n if (!inputValue) {\n this.value = '';\n this.selectedDate = null;\n this.changeSubject.next(this);\n return;\n }\n\n const parsedDate = this.parseManualDate(inputValue);\n if (parsedDate && !isNaN(parsedDate.getTime())) {\n this.value = parsedDate.toISOString();\n this.selectedDate = parsedDate;\n this.viewDate = new Date(parsedDate);\n this.selectedHour = parsedDate.getHours();\n this.selectedMinute = parsedDate.getMinutes();\n this.changeSubject.next(this);\n // Update the input with formatted date\n input.value = this.formatDate(this.value);\n } else {\n // Revert to previous valid value on blur if parsing failed\n input.value = this.formatDate(this.value);\n }\n }\n\n private parseManualDate(input: string): Date | null {\n if (!input) return null;\n\n // Split date and time parts if present\n const parts = input.split(' ');\n let datePart = parts[0];\n let timePart = parts[1] || '';\n\n let parsedDate: Date | null = null;\n\n // Try different date formats\n // Format 1: YYYY-MM-DD (ISO-like)\n const isoMatch = datePart.match(/^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/);\n if (isoMatch) {\n const [_, year, month, day] = isoMatch;\n parsedDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n }\n\n // Format 2: DD.MM.YYYY (European)\n if (!parsedDate) {\n const euMatch = datePart.match(/^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{4})$/);\n if (euMatch) {\n const [_, day, month, year] = euMatch;\n parsedDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n }\n }\n\n // Format 3: MM/DD/YYYY (US)\n if (!parsedDate) {\n const usMatch = datePart.match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/);\n if (usMatch) {\n const [_, month, day, year] = usMatch;\n parsedDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n }\n }\n\n // If no date was parsed, return null\n if (!parsedDate || isNaN(parsedDate.getTime())) {\n return null;\n }\n\n // Parse time if present (HH:MM format)\n if (timePart) {\n const timeMatch = timePart.match(/^(\\d{1,2}):(\\d{2})$/);\n if (timeMatch) {\n const [_, hours, minutes] = timeMatch;\n parsedDate.setHours(parseInt(hours));\n parsedDate.setMinutes(parseInt(minutes));\n }\n } else if (!this.enableTime) {\n // If time is not enabled and not provided, use current time\n const now = new Date();\n parsedDate.setHours(now.getHours());\n parsedDate.setMinutes(now.getMinutes());\n parsedDate.setSeconds(0);\n parsedDate.setMilliseconds(0);\n }\n\n return parsedDate;\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n if (value) {\n try {\n const date = new Date(value);\n if (!isNaN(date.getTime())) {\n this.selectedDate = date;\n this.viewDate = new Date(date);\n this.selectedHour = date.getHours();\n this.selectedMinute = date.getMinutes();\n }\n } catch {\n // Invalid date\n }\n }\n }\n}", "export * from './component.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesInputText } from '../dees-input-text/dees-input-text.js';\n\nexport const demoFunc = () => html`\n \n \n
\n {\n // Demonstrate basic text input functionality\n const inputs = elementArg.querySelectorAll('dees-input-text');\n \n inputs.forEach((input: DeesInputText) => {\n input.addEventListener('changeSubject', (event: CustomEvent) => {\n console.log(`Input \"${input.label}\" changed to:`, input.getValue());\n });\n \n input.addEventListener('blur', () => {\n console.log(`Input \"${input.label}\" lost focus`);\n });\n });\n \n // Show password visibility toggle\n const passwordInput = elementArg.querySelector('dees-input-text[key=\"password\"]') as DeesInputText;\n if (passwordInput) {\n console.log('Password input includes visibility toggle');\n }\n }}>\n \n
\n \n\n \n\n \n
\n
\n
\n \n {\n // Demonstrate horizontal layout behavior\n const horizontalInputs = elementArg.querySelectorAll('dees-input-text');\n \n // Check that inputs are properly spaced horizontally\n horizontalInputs.forEach((input: DeesInputText) => {\n const computedStyle = window.getComputedStyle(input);\n console.log(`Horizontal input \"${input.label}\" display:`, computedStyle.display);\n });\n \n // Track value changes\n const firstNameInput = elementArg.querySelector('dees-input-text[key=\"firstName\"]');\n const lastNameInput = elementArg.querySelector('dees-input-text[key=\"lastName\"]');\n \n if (firstNameInput && lastNameInput) {\n const updateFullName = () => {\n const firstName = (firstNameInput as DeesInputText).getValue();\n const lastName = (lastNameInput as DeesInputText).getValue();\n console.log(`Full name: ${firstName} ${lastName}`);\n };\n \n firstNameInput.addEventListener('changeSubject', updateFullName);\n lastNameInput.addEventListener('changeSubject', updateFullName);\n }\n }}>\n \n
\n \n \n \n \n \n
\n
\n
\n \n {\n // Demonstrate different label positions\n const inputs = elementArg.querySelectorAll('dees-input-text');\n \n inputs.forEach((input: DeesInputText) => {\n const position = input.labelPosition;\n console.log(`Input \"${input.label}\" has label position: ${position}`);\n });\n \n // Show how label position affects layout\n const leftLabelInputs = elementArg.querySelectorAll('dees-input-text[labelPosition=\"left\"]');\n if (leftLabelInputs.length > 0) {\n console.log(`${leftLabelInputs.length} inputs have left-aligned labels for inline layout`);\n }\n }}>\n \n
\n \n\n \n\n
\n \n \n \n
\n
\n
\n
\n \n {\n // Demonstrate validation states\n const requiredInput = elementArg.querySelector('dees-input-text[required]') as DeesInputText;\n const disabledInput = elementArg.querySelector('dees-input-text[disabled]') as DeesInputText;\n const errorInput = elementArg.querySelector('dees-input-text[validationState=\"invalid\"]') as DeesInputText;\n \n if (requiredInput) {\n // Show validation on blur for empty required field\n requiredInput.addEventListener('blur', () => {\n if (!requiredInput.getValue()) {\n console.log('Required field is empty!');\n }\n });\n }\n \n if (disabledInput) {\n console.log('Disabled input cannot be edited');\n }\n \n if (errorInput) {\n console.log('Error input shows validation message:', errorInput.validationText);\n \n // Simulate fixing the error\n errorInput.addEventListener('changeSubject', () => {\n const value = errorInput.getValue();\n if (value.includes('@') && value.includes('.')) {\n errorInput.validationState = 'valid';\n errorInput.validationText = '';\n console.log('Email validation passed!');\n }\n });\n }\n }}>\n \n
\n \n\n \n\n \n
\n
\n
\n \n {\n // Track password visibility toggles\n const passwordInputs = elementArg.querySelectorAll('dees-input-text[isPasswordBool]');\n \n passwordInputs.forEach((input: DeesInputText) => {\n // Monitor for toggle button clicks within shadow DOM\n const checkToggle = () => {\n const inputEl = input.shadowRoot?.querySelector('input');\n if (inputEl) {\n console.log(`Password field \"${input.label}\" type:`, inputEl.type);\n }\n };\n \n // Use MutationObserver to detect changes\n if (input.shadowRoot) {\n const observer = new MutationObserver(checkToggle);\n const inputEl = input.shadowRoot.querySelector('input');\n if (inputEl) {\n observer.observe(inputEl, { attributes: true, attributeFilter: ['type'] });\n }\n }\n });\n }}>\n \n
\n \n\n \n
\n
\n
\n \n {\n // Set up interactive example\n const dynamicInput = elementArg.querySelector('dees-input-text');\n const output = elementArg.querySelector('#text-input-output');\n \n if (dynamicInput && output) {\n // Update output on every change\n dynamicInput.addEventListener('changeSubject', (event: CustomEvent) => {\n const value = (event.detail as DeesInputText).getValue();\n output.textContent = `Current value: \"${value}\"`;\n });\n \n // Also track focus/blur events\n dynamicInput.addEventListener('focus', () => {\n console.log('Input focused');\n });\n \n dynamicInput.addEventListener('blur', () => {\n console.log('Input blurred');\n });\n \n // Track keypress events\n let keypressCount = 0;\n dynamicInput.addEventListener('keydown', () => {\n keypressCount++;\n console.log(`Keypress count: ${keypressCount}`);\n });\n }\n }}>\n \n \n \n
\n
Current value: \"\"
\n
\n
\n
\n
\n`;", "import * as colors from '../../00colors.js';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-text.demo.js';\nimport { cssGeistFontFamily, cssMonoFontFamily } from '../../00fonts.js';\n\nimport {\n customElement,\n type TemplateResult,\n property,\n html,\n cssManager,\n css,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-text': DeesInputText;\n }\n}\n\n@customElement('dees-input-text')\nexport class DeesInputText extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @property({\n type: String,\n reflect: true,\n })\n accessor value: string = '';\n\n @property({\n type: Boolean,\n reflect: true,\n })\n accessor isPasswordBool = false;\n\n @property({\n type: Boolean,\n reflect: true,\n })\n accessor showPasswordBool = false;\n\n @property({\n type: Boolean,\n reflect: true,\n })\n accessor validationState: 'valid' | 'warn' | 'invalid';\n\n @property({\n reflect: true,\n })\n accessor validationText: string = '';\n\n @property({})\n accessor validationFunction: (value: string) => boolean;\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n * {\n box-sizing: border-box;\n }\n\n :host {\n position: relative;\n z-index: auto;\n font-family: ${cssGeistFontFamily};\n }\n\n .maincontainer {\n position: relative;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n input {\n display: flex;\n height: 40px;\n width: 100%;\n padding: 0 12px;\n font-size: 14px;\n line-height: 40px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n outline: none;\n cursor: text;\n font-family: inherit;\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n }\n\n input::placeholder {\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n input:hover:not(:disabled):not(:focus) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n input:focus {\n outline: none;\n border-color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 9% / 0.05)', 'hsl(0 0% 98% / 0.05)')};\n }\n\n input:disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Password toggle button */\n .showPassword {\n position: absolute;\n right: 1px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 38px;\n height: 38px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n transition: all 0.15s ease;\n border-radius: 0 5px 5px 0;\n }\n\n .showPassword:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n /* Validation styles */\n .validationContainer {\n margin-top: 4px;\n padding: 4px 8px;\n font-size: 12px;\n font-weight: 500;\n border-radius: 4px;\n transition: all 0.2s ease;\n overflow: hidden;\n }\n\n .validationContainer.error {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2% / 0.1)', 'hsl(0 72.2% 50.6% / 0.1)')};\n color: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 72.2% 50.6%)')};\n }\n\n .validationContainer.warn {\n background: ${cssManager.bdTheme('hsl(25 95% 53% / 0.1)', 'hsl(25 95% 63% / 0.1)')};\n color: ${cssManager.bdTheme('hsl(25 95% 53%)', 'hsl(25 95% 63%)')};\n }\n\n .validationContainer.valid {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3% / 0.1)', 'hsl(142.1 70.6% 45.3% / 0.1)')};\n color: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n }\n\n /* Error state for input */\n :host([validation-state=\"invalid\"]) input {\n border-color: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 72.2% 50.6%)')};\n }\n\n :host([validation-state=\"invalid\"]) input:focus {\n border-color: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 72.2% 50.6%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 84.2% 60.2% / 0.05)', 'hsl(0 72.2% 50.6% / 0.05)')};\n }\n\n /* Warning state for input */\n :host([validation-state=\"warn\"]) input {\n border-color: ${cssManager.bdTheme('hsl(25 95% 53%)', 'hsl(25 95% 63%)')};\n }\n\n :host([validation-state=\"warn\"]) input:focus {\n border-color: ${cssManager.bdTheme('hsl(25 95% 53%)', 'hsl(25 95% 63%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(25 95% 53% / 0.05)', 'hsl(25 95% 63% / 0.05)')};\n }\n\n /* Valid state for input */\n :host([validation-state=\"valid\"]) input {\n border-color: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n }\n\n :host([validation-state=\"valid\"]) input:focus {\n border-color: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(142.1 76.2% 36.3% / 0.05)', 'hsl(142.1 70.6% 45.3% / 0.05)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n \n
\n \n
\n \n ${this.isPasswordBool\n ? html`\n
\n \n
\n `\n : html``}\n ${this.validationText\n ? html`\n
\n ${this.validationText}\n
\n `\n : html`
`}\n
\n
\n `;\n }\n\n firstUpdated() {\n // Input event handling is already done in updateValue method\n }\n\n public async updateValue(eventArg: Event) {\n const target: any = eventArg.target;\n this.value = target.value;\n this.changeSubject.next(this);\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n }\n\n public async togglePasswordView() {\n this.showPasswordBool = !this.showPasswordBool;\n }\n\n public async focus() {\n const textInput = this.shadowRoot.querySelector('input');\n textInput.focus();\n }\n\n public async blur() {\n const textInput = this.shadowRoot.querySelector('input');\n textInput.blur();\n }\n}\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesShoppingProductcard } from '../dees-shopping-productcard/dees-shopping-productcard.js';\n\nexport const demoFunc = () => html`\n \n \n \n
\n \n
\n \n\n \n\n \n
\n
\n\n {\n const products = [\n { id: 'laptop', element: null, data: { name: 'MacBook Pro 14\"', category: 'Computers', description: 'M3 Pro chip with 18GB RAM', price: 1999, originalPrice: 2199, iconName: 'lucide:laptop' }},\n { id: 'ipad', element: null, data: { name: 'iPad Air', category: 'Tablets', description: '10.9\" Liquid Retina display', price: 599, iconName: 'lucide:tablet' }},\n { id: 'keyboard', element: null, data: { name: 'Magic Keyboard', category: 'Accessories', description: 'Wireless keyboard with Touch ID', price: 149, iconName: 'lucide:keyboard' }}\n ];\n\n const updateCartSummary = () => {\n let total = 0;\n const items = [];\n \n products.forEach(product => {\n const element = elementArg.querySelector(`#${product.id}`) as DeesShoppingProductcard;\n if (element && element.quantity > 0) {\n const subtotal = product.data.price * element.quantity;\n total += subtotal;\n items.push(`\n
\n ${product.data.name} (${element.quantity})\n $${subtotal.toFixed(2)}\n
\n `);\n }\n });\n \n const summary = elementArg.querySelector('#interactive-cart-summary');\n if (summary) {\n summary.innerHTML = `\n ${items.join('')}\n ${items.length === 0 ? '
Your cart is empty
' : ''}\n
\n Total\n $${total.toFixed(2)}\n
\n `;\n }\n };\n \n // Initial update\n setTimeout(updateCartSummary, 100);\n \n // Set up listeners\n elementArg.querySelectorAll('dees-shopping-productcard').forEach(card => {\n card.addEventListener('quantityChange', updateCartSummary);\n });\n }}>\n
\n \n\n \n\n \n
\n\n
\n

Shopping Cart

\n
\n \n
\n
\n
\n\n \n
\n {\n const output = document.querySelector('#selection-output');\n if (output) {\n const selectedCards = document.querySelectorAll('dees-shopping-productcard[selectable]');\n const selectedProducts = [];\n selectedCards.forEach((card: DeesShoppingProductcard) => {\n if (card.selected) {\n selectedProducts.push(card.productData.name);\n }\n });\n output.textContent = selectedProducts.length > 0 \n ? `Selected: ${selectedProducts.join(', ')}` \n : 'No products selected';\n }\n }}\n >\n\n {\n const output = document.querySelector('#selection-output');\n if (output) {\n const selectedCards = document.querySelectorAll('dees-shopping-productcard[selectable]');\n const selectedProducts = [];\n selectedCards.forEach((card: DeesShoppingProductcard) => {\n if (card.selected) {\n selectedProducts.push(card.productData.name);\n }\n });\n output.textContent = selectedProducts.length > 0 \n ? `Selected: ${selectedProducts.join(', ')}` \n : 'No products selected';\n }\n }}\n >\n\n {\n const output = document.querySelector('#selection-output');\n if (output) {\n const selectedCards = document.querySelectorAll('dees-shopping-productcard[selectable]');\n const selectedProducts = [];\n selectedCards.forEach((card: DeesShoppingProductcard) => {\n if (card.selected) {\n selectedProducts.push(card.productData.name);\n }\n });\n output.textContent = selectedProducts.length > 0 \n ? `Selected: ${selectedProducts.join(', ')}` \n : 'No products selected';\n }\n }}\n >\n
\n \n
\n No products selected\n
\n
\n\n \n
\n \n\n \n\n \n
\n
\n
\n
\n`;", "import {\n customElement,\n property,\n html,\n css,\n cssManager,\n type TemplateResult,\n DeesElement,\n} from '@design.estate/dees-element';\nimport { demoFunc } from './dees-shopping-productcard.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-shopping-productcard': DeesShoppingProductcard;\n }\n}\n\nexport interface IProductData {\n name: string;\n category?: string;\n description?: string;\n price: number;\n originalPrice?: number;\n currency?: string;\n inStock?: boolean;\n stockText?: string;\n imageUrl?: string;\n iconName?: string;\n}\n\n@customElement('dees-shopping-productcard')\nexport class DeesShoppingProductcard extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Simple'];\n\n @property({ type: Object })\n accessor productData: IProductData = {\n name: 'Product Name',\n price: 0,\n };\n\n @property({ type: Number })\n accessor quantity: number = 0;\n\n @property({ type: Boolean })\n accessor showQuantitySelector: boolean = true;\n\n @property({ type: Boolean })\n accessor selectable: boolean = false;\n\n @property({ type: Boolean })\n accessor selected: boolean = false;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n }\n\n .product-card {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20.2% 11.8%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n display: flex;\n flex-direction: column;\n height: 100%;\n position: relative;\n }\n\n .product-card:hover {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n box-shadow: 0 4px 6px -1px hsl(0 0% 0% / 0.1), 0 2px 4px -2px hsl(0 0% 0% / 0.1);\n }\n\n .product-card.selectable {\n cursor: pointer;\n }\n\n .product-card.selected {\n border-color: ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(217.2 91.2% 59.8% / 0.1)', 'hsl(213.1 93.9% 67.8% / 0.1)')};\n }\n\n .product-image {\n width: 100%;\n height: 180px;\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n overflow: hidden;\n }\n\n .product-image img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .product-image dees-icon {\n font-size: 48px;\n color: ${cssManager.bdTheme('hsl(215 20.2% 65.1%)', 'hsl(215 20.2% 35.1%)')};\n }\n\n .selection-checkbox {\n position: absolute;\n top: 12px;\n right: 12px;\n width: 20px;\n height: 20px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 30% 6.8%)')};\n border: 2px solid ${cssManager.bdTheme('hsl(215 20.2% 65.1%)', 'hsl(215 20.2% 35.1%)')};\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n cursor: pointer;\n }\n\n .selection-checkbox.checked {\n background: ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n border-color: ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n }\n\n .selection-checkbox dees-icon {\n color: white;\n font-size: 12px;\n opacity: 0;\n transform: scale(0);\n transition: all 0.2s ease;\n }\n\n .selection-checkbox.checked dees-icon {\n opacity: 1;\n transform: scale(1);\n }\n\n .product-content {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n }\n \n .product-header {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .product-category {\n font-size: 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n line-height: 1.3;\n }\n \n .product-name {\n font-size: 16px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n line-height: 1.4;\n }\n\n .product-description {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n line-height: 1.5;\n flex: 1;\n }\n \n .product-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding-top: 12px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .product-price {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .price-current {\n font-size: 20px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .price-original {\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-decoration: line-through;\n }\n\n .stock-status {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n margin-top: 8px;\n }\n\n .stock-status.in-stock {\n color: ${cssManager.bdTheme('hsl(142.1 70.6% 45.3%)', 'hsl(142.1 76.2% 36.3%)')};\n }\n\n .stock-status.out-of-stock {\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n }\n\n .stock-status dees-icon {\n font-size: 14px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const {\n name,\n category,\n description,\n price,\n originalPrice,\n currency = '$',\n inStock = true,\n stockText = inStock ? 'In Stock' : 'Out of Stock',\n imageUrl,\n iconName = 'lucide:package',\n } = this.productData;\n\n const formatPrice = (value: number) => {\n return `${currency}${value.toFixed(2)}`;\n };\n\n return html`\n
\n
\n ${imageUrl ? html`\n \"${name}\"\n ` : html`\n \n `}\n ${this.selectable ? html`\n
{\n e.stopPropagation();\n this.handleSelectionToggle();\n }}\n >\n \n
\n ` : ''}\n
\n
\n
\n ${category ? html`
${category}
` : ''}\n
${name}
\n
\n ${description ? html`\n
${description}
\n ` : ''}\n
\n \n ${stockText}\n
\n
\n
\n ${formatPrice(price)}\n ${originalPrice && originalPrice > price ? html`\n ${formatPrice(originalPrice)}\n ` : ''}\n
\n ${this.showQuantitySelector ? html`\n {\n this.quantity = e.detail.getValue();\n this.dispatchEvent(new CustomEvent('quantityChange', {\n detail: { \n quantity: this.quantity,\n productData: this.productData \n },\n bubbles: true,\n composed: true\n }));\n }}\n >\n ` : ''}\n
\n
\n
\n `;\n }\n\n private handleCardClick() {\n if (this.selectable) {\n this.selected = !this.selected;\n this.dispatchEvent(new CustomEvent('selectionChange', {\n detail: { \n selected: this.selected,\n productData: this.productData \n },\n bubbles: true,\n composed: true\n }));\n }\n }\n\n private handleSelectionToggle() {\n this.selected = !this.selected;\n this.dispatchEvent(new CustomEvent('selectionChange', {\n detail: { \n selected: this.selected,\n productData: this.productData \n },\n bubbles: true,\n composed: true\n }));\n }\n}", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '../../00group-simple/dees-shopping-productcard/dees-shopping-productcard.js';\n\nexport const demoFunc = () => html`\n \n \n \n
\n \n
\n \n\n \n
\n
\n \n {\n const updateCartSummary = () => {\n const card1 = elementArg.querySelector('#headphones-qty') as any;\n const card2 = elementArg.querySelector('#mouse-qty') as any;\n const card3 = elementArg.querySelector('#keyboard-qty') as any;\n \n const qty1 = card1?.quantity || 0;\n const qty2 = card2?.quantity || 0;\n const qty3 = card3?.quantity || 0;\n \n const price1 = 349.99 * qty1;\n const price2 = 99.99 * qty2;\n const price3 = 79.99 * qty3;\n const total = price1 + price2 + price3;\n \n const summary = elementArg.querySelector('#cart-summary-content');\n if (summary) {\n summary.innerHTML = `\n ${qty1 > 0 ? `
\n Sony WH-1000XM5 (${qty1})\n $${price1.toFixed(2)}\n
` : ''}\n ${qty2 > 0 ? `
\n Logitech MX Master 3S (${qty2})\n $${price2.toFixed(2)}\n
` : ''}\n ${qty3 > 0 ? `
\n Keychron K2 (${qty3})\n $${price3.toFixed(2)}\n
` : ''}\n ${total === 0 ? '
Your cart is empty
' : ''}\n
\n Total\n $${total.toFixed(2)}\n
\n `;\n }\n };\n \n // Initial update\n setTimeout(updateCartSummary, 100);\n \n // Set up listeners\n elementArg.querySelectorAll('dees-shopping-productcard').forEach(card => {\n card.addEventListener('quantityChange', updateCartSummary);\n });\n }}>\n
\n \n \n \n \n \n
\n\n
\n

Order Summary

\n
\n \n
\n
\n
\n \n \n
\n \n\n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n`;", "import { customElement, property, html, type TemplateResult, css, cssManager } from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-quantityselector.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-quantityselector': DeesInputQuantitySelector;\n }\n}\n\n@customElement('dees-input-quantityselector')\nexport class DeesInputQuantitySelector extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n\n @property({\n type: Number\n })\n accessor value: number = 1;\n\n\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n width: auto;\n user-select: none;\n }\n\n .quantity-container {\n transition: all 0.15s ease;\n font-size: 14px;\n display: inline-flex;\n align-items: center;\n background: transparent;\n height: 40px;\n padding: 0;\n min-width: 120px;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n overflow: hidden;\n }\n \n .quantity-container.disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n opacity: 0.5;\n pointer-events: none;\n }\n\n .quantity-container:hover:not(.disabled) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .quantity-container:focus-within {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .selector {\n flex: 0 0 40px;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n position: relative;\n }\n\n .selector:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .selector:active {\n background: ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 11%)')};\n }\n\n .selector.minus {\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .selector.plus {\n border-left: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .quantity {\n flex: 1;\n text-align: center;\n font-weight: 500;\n font-variant-numeric: tabular-nums;\n letter-spacing: -0.006em;\n }\n\n /* Keyboard navigation focus styles */\n .selector:focus {\n outline: none;\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n z-index: 1;\n }\n\n /* Min value state */\n .quantity-container[data-min=\"true\"] .selector.minus {\n opacity: 0.3;\n cursor: not-allowed;\n }\n\n .quantity-container[data-min=\"true\"] .selector.minus:hover {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n }\n\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n ${this.label ? html`` : ''}\n
\n
{this.decrease();}}\"\n tabindex=\"${this.disabled ? '-1' : '0'}\"\n @keydown=\"${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.decrease();\n }\n }}\"\n role=\"button\"\n aria-label=\"Decrease quantity\"\n >\u2212
\n
${this.value}
\n
{this.increase();}}\"\n tabindex=\"${this.disabled ? '-1' : '0'}\"\n @keydown=\"${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.increase();\n }\n }}\"\n role=\"button\"\n aria-label=\"Increase quantity\"\n >+
\n
\n
\n `;\n }\n\n public increase() {\n if (!this.disabled) {\n this.value++;\n this.changeSubject.next(this);\n }\n }\n\n public decrease() {\n if (!this.disabled && this.value > 0) {\n this.value--;\n this.changeSubject.next(this);\n }\n }\n\n public getValue(): number {\n return this.value;\n }\n\n public setValue(value: number): void {\n this.value = value;\n }\n}\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\n\nexport const demoFunc = () => html`\n \n \n \n
\n \n
\n \n \n \n
\n
\n \n \n
\n \n\n \n
\n
\n \n \n {\n const display = document.querySelector('#region-result');\n if (display) {\n display.textContent = 'Selected: ' + JSON.stringify(e.detail.value, null, 2);\n }\n }}\n >\n
Selected: { \"region\": \"eu-central-1\", \"latency\": 50 }
\n
\n \n \n
\n \n \n \n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n
\n \n\n \n\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n`;", "import {\n customElement,\n type TemplateResult,\n property,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-radiogroup.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-radiogroup': DeesInputRadiogroup;\n }\n}\n\ntype RadioOption = string | { option: string; key: string; payload?: any };\n\n@customElement('dees-input-radiogroup')\nexport class DeesInputRadiogroup extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n\n @property({ type: Array })\n accessor options: RadioOption[] = [];\n\n @property()\n accessor selectedOption: string = '';\n\n @property({ type: String })\n accessor direction: 'vertical' | 'horizontal' = 'vertical';\n\n @property({ type: String, reflect: true })\n accessor validationState: 'valid' | 'invalid' | 'warn' | 'pending' = null;\n\n // Form compatibility\n public get value() {\n const option = this.getOptionByKey(this.selectedOption);\n if (typeof option === 'object' && option.payload !== undefined) {\n return option.payload;\n }\n return this.selectedOption;\n }\n\n public set value(val: string | any) {\n if (typeof val === 'string') {\n this.selectedOption = val;\n } else {\n // Try to find option by payload\n const option = this.options.find(opt => \n typeof opt === 'object' && opt.payload === val\n );\n if (option && typeof option === 'object') {\n this.selectedOption = option.key;\n }\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n * {\n box-sizing: border-box;\n }\n\n :host {\n display: block;\n position: relative;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n }\n\n .maincontainer {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .maincontainer.horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 20px;\n }\n\n .radio-option {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 0;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n position: relative;\n border-radius: 4px;\n }\n\n .maincontainer.horizontal .radio-option {\n padding: 6px 20px 6px 0;\n }\n\n .radio-option:hover .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(215 20.2% 65.1%)', 'hsl(215 20.2% 35.1%)')};\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 11.8%)')};\n }\n\n .radio-option:hover .radio-label {\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n }\n\n .radio-circle {\n width: 20px;\n height: 20px;\n border-radius: 50%;\n border: 2px solid ${cssManager.bdTheme('hsl(215 20.2% 65.1%)', 'hsl(215 20.2% 35.1%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 30% 6.8%)')};\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .radio-option.selected .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n background: ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n }\n\n .radio-option.selected .radio-circle::after {\n content: '';\n position: absolute;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 30% 6.8%)')};\n transform: scale(0);\n transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .radio-option.selected .radio-circle::after {\n transform: scale(1);\n }\n\n .radio-circle:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 30% 3.9%)')},\n 0 0 0 4px ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n }\n\n .radio-label {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.3 25% 26.7%)', 'hsl(217.9 10.6% 74.9%)')};\n transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n letter-spacing: -0.006em;\n line-height: 20px;\n }\n\n .radio-option.selected .radio-label {\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n }\n\n :host([disabled]) .radio-option {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n :host([disabled]) .radio-option:hover .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(215 20.2% 65.1%)', 'hsl(215 20.2% 35.1%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 30% 6.8%)')};\n }\n\n :host([disabled]) .radio-option:hover .radio-label {\n color: ${cssManager.bdTheme('hsl(215.3 25% 26.7%)', 'hsl(217.9 10.6% 74.9%)')};\n }\n\n .label-text {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n margin-bottom: 10px;\n letter-spacing: -0.006em;\n line-height: 20px;\n }\n\n .description-text {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n margin-top: 10px;\n line-height: 1.5;\n letter-spacing: -0.003em;\n }\n\n /* Validation styles */\n :host([validationState=\"invalid\"]) .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n }\n\n :host([validationState=\"invalid\"]) .radio-option.selected .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n background: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n }\n\n :host([validationState=\"valid\"]) .radio-option.selected .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(142.1 70.6% 45.3%)', 'hsl(142.1 76.2% 36.3%)')};\n background: ${cssManager.bdTheme('hsl(142.1 70.6% 45.3%)', 'hsl(142.1 76.2% 36.3%)')};\n }\n\n :host([validationState=\"warn\"]) .radio-option.selected .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(45.4 93.4% 47.5%)', 'hsl(45.4 93.4% 47.5%)')};\n background: ${cssManager.bdTheme('hsl(45.4 93.4% 47.5%)', 'hsl(45.4 93.4% 47.5%)')};\n }\n\n /* Override base grid layout for radiogroup to prevent large gaps */\n :host([label-position=\"left\"]) .input-wrapper {\n grid-template-columns: auto auto;\n }\n\n :host([label-position=\"right\"]) .input-wrapper {\n grid-template-columns: auto auto;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n ${this.label ? html`
${this.label}
` : ''}\n
\n ${this.options.map((option) => {\n const optionKey = this.getOptionKey(option);\n const optionLabel = this.getOptionLabel(option);\n const isSelected = this.selectedOption === optionKey;\n \n return html`\n
this.selectOption(optionKey)}\"\n @keydown=\"${(e: KeyboardEvent) => this.handleKeydown(e, optionKey)}\"\n >\n
\n
${optionLabel}
\n
\n `;\n })}\n
\n ${this.description ? html`
${this.description}
` : ''}\n
\n `;\n }\n\n private getOptionKey(option: RadioOption): string {\n if (typeof option === 'string') {\n return option;\n }\n return option.key;\n }\n\n private getOptionLabel(option: RadioOption): string {\n if (typeof option === 'string') {\n return option;\n }\n return option.option;\n }\n\n private getOptionByKey(key: string): RadioOption | undefined {\n return this.options.find(opt => this.getOptionKey(opt) === key);\n }\n\n private selectOption(key: string): void {\n if (this.disabled) {\n return;\n }\n\n const oldValue = this.selectedOption;\n this.selectedOption = key;\n\n if (oldValue !== key) {\n this.dispatchEvent(new CustomEvent('change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n }));\n \n this.dispatchEvent(new CustomEvent('input', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n }));\n \n this.changeSubject.next(this);\n }\n }\n\n public getValue(): string | any {\n return this.value;\n }\n\n public setValue(val: string | any): void {\n this.value = val;\n }\n\n public async validate(): Promise {\n if (this.required && !this.selectedOption) {\n this.validationState = 'invalid';\n return false;\n }\n \n this.validationState = 'valid';\n return true;\n }\n\n public async firstUpdated() {\n // Auto-select first option if none selected and not required\n if (!this.selectedOption && this.options.length > 0 && !this.required) {\n const firstOption = this.options[0];\n this.selectedOption = this.getOptionKey(firstOption);\n }\n }\n\n private handleKeydown(event: KeyboardEvent, optionKey: string) {\n if (this.disabled) return;\n \n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.selectOption(optionKey);\n } else if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {\n event.preventDefault();\n this.focusNextOption();\n } else if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {\n event.preventDefault();\n this.focusPreviousOption();\n }\n }\n\n private focusNextOption() {\n const radioCircles = Array.from(this.shadowRoot.querySelectorAll('.radio-circle'));\n const currentIndex = radioCircles.findIndex(el => el === this.shadowRoot.activeElement);\n const nextIndex = (currentIndex + 1) % radioCircles.length;\n (radioCircles[nextIndex] as HTMLElement).focus();\n }\n\n private focusPreviousOption() {\n const radioCircles = Array.from(this.shadowRoot.querySelectorAll('.radio-circle'));\n const currentIndex = radioCircles.findIndex(el => el === this.shadowRoot.activeElement);\n const prevIndex = currentIndex <= 0 ? radioCircles.length - 1 : currentIndex - 1;\n (radioCircles[prevIndex] as HTMLElement).focus();\n }\n}", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
\n
\n

Basic Usage

\n
\n Submit Form\n \n
\n
\n\n
\n

With Icons (inherited from DeesButton)

\n
\n Submit\n Save Form\n Continue\n
\n
\n\n
\n

Button Types

\n
\n Highlighted\n Normal\n Discreet\n
\n
\n\n
\n

Sizes

\n
\n Small\n Normal\n Large\n
\n
\n\n
\n

States

\n
\n Normal\n Pending\n Success\n Error\n Disabled\n
\n
\n\n
\n

In a Form Context

\n \n \n \n Submit Form\n \n
\n
\n`;\n", "import { demoFunc } from './dees-form-submit.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n css,\n cssManager,\n property,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport type { DeesForm } from '../dees-form/dees-form.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-form-submit': DeesFormSubmit;\n }\n}\n\n@customElement('dees-form-submit')\nexport class DeesFormSubmit extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Form', 'Button'];\n\n // =============================================\n // Properties forwarded to internal dees-button\n // =============================================\n\n @property({ type: Boolean, reflect: true })\n accessor disabled = false;\n\n @property({ type: String })\n accessor text: string;\n\n @property({ type: String })\n accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';\n\n @property({ type: String, reflect: true })\n accessor type: 'default' | 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link' | 'normal' | 'highlighted' | 'discreet' | 'big' = 'default';\n\n @property({ type: String, reflect: true })\n accessor size: 'sm' | 'default' | 'lg' | 'icon' | 'small' | 'normal' | 'large' = 'default';\n\n @property({ type: String })\n accessor icon: string;\n\n @property({ type: String })\n accessor iconPosition: 'left' | 'right' = 'left';\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: inline-block;\n }\n dees-button {\n width: 100%;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n \n \n \n `;\n }\n\n public async submit() {\n if (this.disabled) {\n return;\n }\n // Walk up the DOM tree to find the nearest dees-form element\n const parentFormElement = this.closest('dees-form') as DeesForm;\n if (parentFormElement && parentFormElement.gatherAndDispatch) {\n parentFormElement.gatherAndDispatch();\n }\n }\n\n public async focus() {\n const domtools = await this.domtoolsPromise;\n if (!this.disabled) {\n await domtools.convenience.smartdelay.delayFor(0);\n this.submit();\n }\n }\n}\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport '../../00group-form/dees-form/dees-form.js';\nimport '../../00group-form/dees-form-submit/dees-form-submit.js';\n\nexport const demoFunc = () => html`\n \n \n
\n {\n // Demonstrate programmatic interaction with basic dropdowns\n const countryDropdown = elementArg.querySelector('dees-input-dropdown[label=\"Select Country\"]');\n const roleDropdown = elementArg.querySelector('dees-input-dropdown[label=\"Select Role\"]');\n \n // Log when country changes\n if (countryDropdown) {\n countryDropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n console.log('Country selected:', event.detail);\n });\n }\n \n // Log when role changes\n if (roleDropdown) {\n roleDropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n console.log('Role selected:', event.detail);\n });\n }\n }}>\n \n
\n \n\n \n
\n
\n
\n \n {\n // Demonstrate simpler dropdown without search\n const priorityDropdown = elementArg.querySelector('dees-input-dropdown');\n \n if (priorityDropdown) {\n priorityDropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n console.log(`Priority changed to: ${event.detail.option}`);\n });\n }\n }}>\n \n \n \n \n \n {\n // Demonstrate horizontal layout with multiple dropdowns\n const dropdowns = elementArg.querySelectorAll('dees-input-dropdown');\n \n // Log all changes from horizontal dropdowns\n dropdowns.forEach((dropdown) => {\n dropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n const label = dropdown.getAttribute('label');\n console.log(`${label}: ${event.detail.option}`);\n });\n });\n }}>\n \n
\n \n \n \n \n \n
\n
\n
\n \n {\n // Demonstrate state handling\n const requiredDropdown = elementArg.querySelector('dees-input-dropdown[required]');\n \n if (requiredDropdown) {\n // Show validation state changes\n requiredDropdown.addEventListener('blur', () => {\n console.log('Required dropdown lost focus');\n });\n }\n }}>\n \n
\n \n\n \n
\n
\n
\n \n
\n (Spacer to test dropdown positioning)\n
\n \n {\n // This dropdown demonstrates automatic positioning\n const dropdown = elementArg.querySelector('dees-input-dropdown');\n \n if (dropdown) {\n dropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n console.log('Bottom dropdown selected:', event.detail);\n });\n \n // Note: The dropdown automatically detects available space\n // and opens upward when near the bottom of the viewport\n }\n }}>\n \n \n \n \n\n {\n // Setup the interactive payload display\n const dropdown = elementArg.querySelector('dees-input-dropdown');\n const output = elementArg.querySelector('#selection-output');\n \n if (dropdown && output) {\n // Initialize output\n output.innerHTML = 'Select a product to see details...';\n \n // Handle dropdown changes\n dropdown.addEventListener('change', (event: CustomEvent) => {\n if (event.detail.value) {\n output.innerHTML = `\n Selected: ${event.detail.value.option}
\n Key: ${event.detail.value.key}
\n Price: $${event.detail.value.payload?.price || 'N/A'}
\n Features: ${event.detail.value.payload?.features?.join(', ') || 'N/A'}\n `;\n }\n });\n }\n }}>\n \n \n \n
\n
\n
\n\n {\n // Demonstrate form integration and validation\n const form = elementArg.querySelector('dees-form');\n const projectTypeDropdown = elementArg.querySelector('dees-input-dropdown[key=\"projectType\"]');\n const frameworkDropdown = elementArg.querySelector('dees-input-dropdown[key=\"framework\"]');\n \n if (form) {\n form.addEventListener('formData', (event: CustomEvent) => {\n console.log('Form submitted with data:', event.detail.data);\n });\n }\n \n if (projectTypeDropdown && frameworkDropdown) {\n // Filter frameworks based on project type\n projectTypeDropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n const selectedType = event.detail.key;\n console.log(`Project type changed to: ${selectedType}`);\n \n // In a real app, you could filter the framework options based on project type\n // For demo purposes, we just log the change\n });\n }\n }}>\n \n \n \n \n \n \n \n \n \n \n
\n`", "import {\n customElement,\n type TemplateResult,\n property,\n state,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-input-dropdown.demo.js';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-dropdown': DeesInputDropdown;\n }\n}\n\n@customElement('dees-input-dropdown')\nexport class DeesInputDropdown extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n\n @property()\n accessor options: { option: string; key: string; payload?: any }[] = [];\n\n @property()\n accessor selectedOption: { option: string; key: string; payload?: any } = null;\n\n // Add value property for form compatibility\n public get value() {\n return this.selectedOption;\n }\n\n public set value(val: { option: string; key: string; payload?: any }) {\n this.selectedOption = val;\n }\n\n @property({\n type: Boolean,\n })\n accessor enableSearch: boolean = true;\n\n @state()\n accessor opensToTop: boolean = false;\n\n @state()\n accessor filteredOptions: { option: string; key: string; payload?: any }[] = [];\n\n @state()\n accessor highlightedIndex: number = 0;\n\n @state()\n accessor isOpened = false;\n\n @state()\n accessor searchValue: string = '';\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n * {\n box-sizing: border-box;\n }\n\n :host {\n font-family: ${cssGeistFontFamily};\n position: relative;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n .maincontainer {\n display: block;\n position: relative;\n }\n\n .selectedBox {\n user-select: none;\n position: relative;\n width: 100%;\n height: 40px;\n line-height: 38px;\n padding: 0 40px 0 12px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n transition: all 0.15s ease;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .selectedBox:hover:not(.disabled) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .selectedBox:focus-visible {\n outline: none;\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .selectedBox.disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Dropdown arrow */\n .selectedBox::after {\n content: '';\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n width: 0;\n height: 0;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 4px solid ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n transition: transform 0.15s ease;\n }\n\n .selectedBox.open::after {\n transform: translateY(-50%) rotate(180deg);\n }\n\n .selectionBox {\n will-change: transform, opacity;\n pointer-events: none;\n transition: all 0.15s ease;\n opacity: 0;\n transform: translateY(-8px) scale(0.98);\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n box-shadow: 0 4px 6px -1px hsl(0 0% 0% / 0.1), 0 2px 4px -2px hsl(0 0% 0% / 0.1);\n min-height: 40px;\n max-height: 300px;\n overflow: hidden;\n border-radius: 6px;\n position: absolute;\n user-select: none;\n margin-top: 4px;\n z-index: 50;\n left: 0;\n right: 0;\n }\n \n .selectionBox.top {\n bottom: calc(100% + 4px);\n top: auto;\n margin-top: 0;\n margin-bottom: 4px;\n transform: translateY(8px) scale(0.98);\n }\n \n .selectionBox.bottom {\n top: 100%;\n }\n\n .selectionBox.show {\n pointer-events: all;\n transform: translateY(0) scale(1);\n opacity: 1;\n }\n\n /* Options container */\n .options-container {\n max-height: 250px;\n overflow-y: auto;\n padding: 4px;\n }\n\n /* Options */\n .option {\n transition: all 0.15s ease;\n line-height: 32px;\n padding: 0 8px;\n border-radius: 4px;\n margin: 2px 0;\n cursor: pointer;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n .option.highlighted {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n }\n\n .option:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n /* No options message */\n .no-options {\n padding: 8px;\n text-align: center;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n font-style: italic;\n }\n\n /* Search */\n .search {\n padding: 4px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n margin-bottom: 4px;\n }\n \n .search.bottom {\n border-bottom: none;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n margin-bottom: 0;\n margin-top: 4px;\n }\n \n .search input {\n display: block;\n width: 100%;\n height: 32px;\n padding: 0 8px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n color: inherit;\n font-size: 14px;\n font-family: inherit;\n outline: none;\n transition: border-color 0.15s ease;\n }\n\n .search input::placeholder {\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n }\n\n .search input:focus {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n }\n\n /* Scrollbar styling */\n .options-container::-webkit-scrollbar {\n width: 8px;\n }\n\n .options-container::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .options-container::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n }\n\n .options-container::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n \n
\n !this.disabled && this.toggleSelectionBox()}\"\n tabindex=\"${this.disabled ? '-1' : '0'}\"\n @keydown=\"${this.handleSelectedBoxKeydown}\"\n >\n ${this.selectedOption?.option || 'Select an option'}\n
\n
\n ${this.enableSearch\n ? html`\n
\n e.stopPropagation()}\"\n @keydown=\"${this.handleSearchKeydown}\"\n />\n
\n `\n : null}\n
\n ${this.filteredOptions.length === 0\n ? html`
No options found
`\n : this.filteredOptions.map((option, index) => {\n const isHighlighted = this.highlightedIndex === index;\n return html`\n this.updateSelection(option)}\"\n @mouseenter=\"${() => this.highlightedIndex = index}\"\n >\n ${option.option}\n
\n `;\n })\n }\n
\n
\n \n \n `;\n }\n\n async connectedCallback() {\n super.connectedCallback();\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n firstUpdated() {\n this.selectedOption = this.selectedOption || null;\n this.filteredOptions = this.options;\n }\n\n updated(changedProperties: Map) {\n super.updated(changedProperties);\n \n if (changedProperties.has('options')) {\n this.filteredOptions = this.options;\n }\n }\n\n public async updateSelection(selectedOption: { option: string; key: string; payload?: any }) {\n this.selectedOption = selectedOption;\n this.isOpened = false;\n this.searchValue = '';\n this.filteredOptions = this.options;\n this.highlightedIndex = 0;\n\n this.dispatchEvent(\n new CustomEvent('selectedOption', {\n detail: selectedOption,\n bubbles: true,\n })\n );\n \n this.changeSubject.next(this);\n }\n\n private handleClickOutside = (event: MouseEvent) => {\n const path = event.composedPath();\n if (!path.includes(this)) {\n this.isOpened = false;\n this.searchValue = '';\n this.filteredOptions = this.options;\n document.removeEventListener('click', this.handleClickOutside);\n }\n };\n \n public async toggleSelectionBox() {\n this.isOpened = !this.isOpened;\n \n if (this.isOpened) {\n // Check available space and set position\n const selectedBox = this.shadowRoot.querySelector('.selectedBox') as HTMLElement;\n const rect = selectedBox.getBoundingClientRect();\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n \n // Determine if we should open upwards\n this.opensToTop = spaceBelow < 300 && spaceAbove > spaceBelow;\n \n // Focus search input if present\n await this.updateComplete;\n const searchInput = this.shadowRoot.querySelector('.search input') as HTMLInputElement;\n if (searchInput) {\n searchInput.focus();\n }\n \n // Add click outside listener\n setTimeout(() => {\n document.addEventListener('click', this.handleClickOutside);\n }, 0);\n } else {\n // Cleanup\n this.searchValue = '';\n this.filteredOptions = this.options;\n document.removeEventListener('click', this.handleClickOutside);\n }\n }\n\n private handleSearch(event: Event): void {\n const searchTerm = (event.target as HTMLInputElement).value;\n this.searchValue = searchTerm;\n const searchLower = searchTerm.toLowerCase();\n this.filteredOptions = this.options.filter((option) =>\n option.option.toLowerCase().includes(searchLower)\n );\n this.highlightedIndex = 0;\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n const key = event.key;\n const maxIndex = this.filteredOptions.length - 1;\n\n if (key === 'ArrowDown') {\n event.preventDefault();\n this.highlightedIndex = this.highlightedIndex + 1 > maxIndex ? 0 : this.highlightedIndex + 1;\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n this.highlightedIndex = this.highlightedIndex - 1 < 0 ? maxIndex : this.highlightedIndex - 1;\n } else if (key === 'Enter') {\n event.preventDefault();\n if (this.filteredOptions[this.highlightedIndex]) {\n this.updateSelection(this.filteredOptions[this.highlightedIndex]);\n }\n } else if (key === 'Escape') {\n event.preventDefault();\n this.isOpened = false;\n }\n }\n\n private handleSearchKeydown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Enter') {\n this.handleKeyDown(event);\n }\n }\n\n private handleSelectedBoxKeydown(event: KeyboardEvent) {\n if (this.disabled) return;\n \n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.toggleSelectionBox();\n } else if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!this.isOpened) {\n this.toggleSelectionBox();\n }\n } else if (event.key === 'Escape') {\n event.preventDefault();\n if (this.isOpened) {\n this.isOpened = false;\n }\n }\n }\n\n public getValue(): { option: string; key: string; payload?: any } {\n return this.selectedOption;\n }\n\n public setValue(value: { option: string; key: string; payload?: any }): void {\n this.selectedOption = value;\n }\n \n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('click', this.handleClickOutside);\n }\n}", "import { css, cssManager, html } from '@design.estate/dees-element';\nimport './component.js';\nimport '../../00group-layout/dees-panel/dees-panel.js';\n\nexport const demoFunc = () => html`\n \n \n\n
\n \n
\n
\n \n\n \n
\n\n
\n \n\n \n
\n
\n \n\n \n
\n \n
\n \n\n \n\n \n\n \n\n \n\n \n
\n
\n\n
\n Good to know:\n
    \n
  • Drag & drop highlights the dropzone and supports keyboard activation.
  • \n
  • Accepted file types are summarised automatically from the accept attribute.
  • \n
  • Image uploads show live previews generated via URL.createObjectURL.
  • \n
  • File size and file-count limits surface inline validation messages.
  • \n
  • The component stays compatible with dees-form value accessors.
  • \n
\n
\n
\n \n
\n
\n`;\n", "import { css, cssManager } from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\n\nexport const fileuploadStyles = [\n cssManager.defaultStyles,\n ...DeesInputBase.baseStyles,\n css`\n :host {\n position: relative;\n display: block;\n }\n\n\n .input-wrapper {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .dropzone {\n position: relative;\n padding: 20px;\n border-radius: 12px;\n border: 1.5px dashed ${cssManager.bdTheme('hsl(215 16% 80%)', 'hsl(217 20% 25%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 12%)')};\n transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;\n cursor: pointer;\n outline: none;\n }\n\n .dropzone:focus-visible {\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 12%)')},\n 0 0 0 4px ${cssManager.bdTheme('hsl(217 91% 60% / 0.5)', 'hsl(213 93% 68% / 0.4)')};\n border-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .dropzone--active {\n border-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n box-shadow: 0 12px 32px ${cssManager.bdTheme('rgba(15, 23, 42, 0.12)', 'rgba(0, 0, 0, 0.35)')};\n background: ${cssManager.bdTheme('hsl(217 91% 60% / 0.06)', 'hsl(213 93% 68% / 0.12)')};\n }\n\n .dropzone--has-files {\n background: ${cssManager.bdTheme('hsl(0 0% 99%)', 'hsl(215 20% 11%)')};\n }\n\n .dropzone--disabled {\n opacity: 0.6;\n pointer-events: none;\n cursor: not-allowed;\n }\n\n .dropzone__body {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .dropzone__icon {\n width: 48px;\n height: 48px;\n border-radius: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n background: ${cssManager.bdTheme('hsl(217 91% 60% / 0.12)', 'hsl(213 93% 68% / 0.12)')};\n position: relative;\n flex-shrink: 0;\n }\n\n .dropzone__icon dees-icon {\n font-size: 22px;\n }\n\n .dropzone__loader {\n width: 20px;\n height: 20px;\n border-radius: 999px;\n border: 2px solid ${cssManager.bdTheme('rgba(15, 23, 42, 0.15)', 'rgba(255, 255, 255, 0.15)')};\n border-top-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n animation: loader-spin 0.6s linear infinite;\n }\n\n .dropzone__content {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n }\n\n .dropzone__headline {\n font-size: 15px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(222 47% 11%)', 'hsl(210 20% 96%)')};\n }\n\n .dropzone__subline {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(215 16% 46%)', 'hsl(215 16% 70%)')};\n }\n\n .dropzone__browse {\n appearance: none;\n border: none;\n background: none;\n padding: 0;\n margin-left: 4px;\n color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n font-weight: 600;\n cursor: pointer;\n text-decoration: none;\n }\n\n .dropzone__browse:hover {\n text-decoration: underline;\n }\n\n .dropzone__browse:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n\n .dropzone__meta {\n margin-top: 14px;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215 16% 50%)', 'hsl(215 16% 72%)')};\n }\n\n .dropzone__meta span {\n padding: 4px 10px;\n border-radius: 999px;\n background: ${cssManager.bdTheme('hsl(217 91% 95%)', 'hsl(213 93% 18%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(217 91% 90%)', 'hsl(213 93% 24%)')};\n }\n\n .file-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(217 91% 90%)', 'hsl(213 93% 24%)')};\n }\n\n .file-list__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 13px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 68%)')};\n }\n\n .file-list__clear {\n appearance: none;\n border: none;\n background: none;\n color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n cursor: pointer;\n font-weight: 500;\n font-size: 13px;\n padding: 0;\n }\n\n .file-list__clear:hover {\n text-decoration: underline;\n }\n\n .file-list__items {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .file-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n background: ${cssManager.bdTheme('hsl(0 0% 100% / 0.5)', 'hsl(215 20% 16% / 0.5)')};\n border: 1px solid ${cssManager.bdTheme('hsl(213 27% 92%)', 'hsl(217 25% 26%)')};\n border-radius: 8px;\n transition: background 0.15s ease;\n }\n\n .file-row:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 100% / 0.8)', 'hsl(215 20% 16% / 0.8)')};\n }\n\n .file-thumb {\n width: 36px;\n height: 36px;\n border-radius: 8px;\n background: ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 32% 18%)')};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .file-thumb dees-icon {\n font-size: 18px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 70%)')};\n display: block;\n width: 18px;\n height: 18px;\n line-height: 1;\n flex-shrink: 0;\n }\n\n\n .thumb-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .file-meta {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n }\n\n .file-name {\n font-weight: 600;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(222 47% 11%)', 'hsl(210 20% 96%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .file-details {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215 16% 46%)', 'hsl(215 16% 70%)')};\n }\n\n .file-size {\n font-variant-numeric: tabular-nums;\n }\n\n .file-type {\n padding: 2px 8px;\n border-radius: 999px;\n border: 1px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 32% 28%)')};\n color: ${cssManager.bdTheme('hsl(215 16% 46%)', 'hsl(215 16% 70%)')};\n text-transform: uppercase;\n letter-spacing: 0.08em;\n line-height: 1;\n }\n\n .file-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-left: auto;\n }\n\n .remove-button {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n background: transparent;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease, transform 0.15s ease, color 0.15s ease;\n color: ${cssManager.bdTheme('hsl(215 16% 52%)', 'hsl(215 16% 68%)')};\n }\n\n .remove-button:hover {\n background: ${cssManager.bdTheme('hsl(0 72% 50% / 0.08)', 'hsl(0 62% 32% / 0.15)')};\n color: ${cssManager.bdTheme('hsl(0 72% 46%)', 'hsl(0 70% 70%)')};\n }\n\n .remove-button:active {\n transform: scale(0.96);\n }\n\n .remove-button dees-icon {\n display: block;\n width: 14px;\n height: 14px;\n font-size: 14px;\n line-height: 1;\n flex-shrink: 0;\n }\n\n .validation-message {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(0 72% 40%)', 'hsl(0 70% 68%)')};\n line-height: 1.5;\n }\n\n @keyframes loader-spin {\n to {\n transform: rotate(360deg);\n }\n }\n `,\n];\n", "import { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './demo.js';\nimport { fileuploadStyles } from './styles.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-layout/dees-label/dees-label.js';\n\nimport {\n customElement,\n html,\n property,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-fileupload': DeesInputFileupload;\n }\n}\n\n@customElement('dees-input-fileupload')\nexport class DeesInputFileupload extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n @property({ attribute: false })\n accessor value: File[] = [];\n\n @state()\n accessor state: 'idle' | 'dragOver' | 'dropped' | 'uploading' | 'completed' = 'idle';\n\n @state()\n accessor isLoading: boolean = false;\n\n @property({ type: String })\n accessor buttonText: string = 'Select files';\n\n @property({ type: String })\n accessor accept: string = '';\n\n @property({ type: Boolean })\n accessor multiple: boolean = true;\n\n @property({ type: Number })\n accessor maxSize: number = 0; // 0 means no limit\n\n @property({ type: Number })\n accessor maxFiles: number = 0; // 0 means no limit\n\n @property({ type: String, reflect: true })\n accessor validationState: 'valid' | 'invalid' | 'warn' | 'pending' = null;\n\n accessor validationMessage: string = '';\n\n private previewUrlMap: WeakMap = new WeakMap();\n private dropArea: HTMLElement | null = null;\n\n public static styles = fileuploadStyles;\n\n public render(): TemplateResult {\n const acceptedSummary = this.getAcceptedSummary();\n const metaEntries: string[] = [\n this.multiple ? 'Multiple files supported' : 'Single file only',\n this.maxSize > 0 ? `Max ${this.formatFileSize(this.maxSize)}` : 'No size limit',\n ];\n\n if (acceptedSummary) {\n metaEntries.push(`Accepts ${acceptedSummary}`);\n }\n\n return html`\n
\n \n 0 ? 'dropzone--has-files' : ''}\"\n role=\"button\"\n tabindex=${this.disabled ? -1 : 0}\n aria-disabled=${this.disabled}\n aria-label=${`Select files${acceptedSummary ? ` (${acceptedSummary})` : ''}`}\n @click=${this.handleDropzoneClick}\n @keydown=${this.handleDropzoneKeydown}\n >\n \n
\n
\n ${this.isLoading\n ? html``\n : html``}\n
\n
\n ${this.buttonText || 'Select files'}\n \n Drag and drop files here or\n \n browse\n \n \n
\n
\n
\n ${metaEntries.map((entry) => html`${entry}`)}\n
\n ${this.renderFileList()}\n
\n ${this.validationMessage\n ? html`
${this.validationMessage}
`\n : html``}\n \n `;\n }\n\n private renderFileList(): TemplateResult {\n if (this.value.length === 0) {\n return html``;\n }\n\n return html`\n
\n
\n ${this.value.length} file${this.value.length === 1 ? '' : 's'} selected\n ${this.value.length > 0\n ? html``\n : html``}\n
\n
\n ${this.value.map((file) => this.renderFileRow(file))}\n
\n
\n `;\n }\n\n private renderFileRow(file: File): TemplateResult {\n const fileType = this.getFileType(file);\n const previewUrl = this.canShowPreview(file) ? this.getPreviewUrl(file) : null;\n\n return html`\n
\n
\n ${previewUrl\n ? html`${`Preview`\n : html``}\n
\n
\n
${file.name}
\n
\n ${this.formatFileSize(file.size)}\n ${fileType !== 'file' ? html`${fileType}` : html``}\n
\n
\n
\n this.removeFile(file)}\n aria-label=${`Remove ${file.name}`}\n >\n \n \n
\n
\n `;\n }\n\n private handleFileInputChange = async (event: Event) => {\n this.isLoading = false;\n const target = event.target as HTMLInputElement;\n const files = Array.from(target.files ?? []);\n if (files.length > 0) {\n await this.addFiles(files);\n }\n target.value = '';\n };\n\n private handleDropzoneClick = (event: MouseEvent) => {\n if (this.disabled) {\n return;\n }\n // Don't open file selector if clicking on the browse button or file list\n if ((event.target as HTMLElement).closest('.dropzone__browse, .file-list')) {\n return;\n }\n this.openFileSelector();\n };\n\n private handleBrowseClick = (event: MouseEvent) => {\n if (this.disabled) {\n return;\n }\n event.stopPropagation(); // Stop propagation to prevent double trigger\n this.openFileSelector();\n };\n\n private handleDropzoneKeydown = (event: KeyboardEvent) => {\n if (this.disabled) {\n return;\n }\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.openFileSelector();\n }\n };\n\n private handleClearAll = (event: MouseEvent) => {\n event.preventDefault();\n this.clearAll();\n };\n\n private handleDragEvent = async (event: DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled) {\n return;\n }\n\n if (event.type === 'dragenter' || event.type === 'dragover') {\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'copy';\n }\n this.state = 'dragOver';\n return;\n }\n\n if (event.type === 'dragleave') {\n if (!this.dropArea) {\n this.state = 'idle';\n return;\n }\n const rect = this.dropArea.getBoundingClientRect();\n const { clientX = 0, clientY = 0 } = event;\n if (clientX <= rect.left || clientX >= rect.right || clientY <= rect.top || clientY >= rect.bottom) {\n this.state = 'idle';\n }\n return;\n }\n\n if (event.type === 'drop') {\n this.state = 'idle';\n const files = Array.from(event.dataTransfer?.files ?? []);\n if (files.length > 0) {\n await this.addFiles(files);\n }\n }\n };\n\n private attachDropListeners(): void {\n if (!this.dropArea) {\n return;\n }\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\n this.dropArea!.addEventListener(eventName, this.handleDragEvent);\n });\n }\n\n private detachDropListeners(): void {\n if (!this.dropArea) {\n return;\n }\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\n this.dropArea!.removeEventListener(eventName, this.handleDragEvent);\n });\n }\n\n private rebindInteractiveElements(): void {\n const newDropArea = this.shadowRoot?.querySelector('.dropzone') as HTMLElement | null;\n\n if (newDropArea !== this.dropArea) {\n this.detachDropListeners();\n this.dropArea = newDropArea;\n this.attachDropListeners();\n }\n }\n\n public formatFileSize(bytes: number): string {\n const units = ['Bytes', 'KB', 'MB', 'GB'];\n if (bytes === 0) return '0 Bytes';\n const exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);\n const size = bytes / Math.pow(1024, exponent);\n return `${Math.round(size * 100) / 100} ${units[exponent]}`;\n }\n\n public getFileType(file: File): string {\n const type = file.type.toLowerCase();\n if (type.startsWith('image/')) return 'image';\n if (type === 'application/pdf') return 'pdf';\n if (type.includes('word') || type.includes('document')) return 'doc';\n if (type.includes('sheet') || type.includes('excel')) return 'spreadsheet';\n if (type.includes('presentation') || type.includes('powerpoint')) return 'presentation';\n if (type.startsWith('video/')) return 'video';\n if (type.startsWith('audio/')) return 'audio';\n if (type.includes('zip') || type.includes('compressed')) return 'archive';\n return 'file';\n }\n\n public getFileIcon(file: File): string {\n const fileType = this.getFileType(file);\n const iconMap: Record = {\n image: 'lucide:FileImage',\n pdf: 'lucide:FileText',\n doc: 'lucide:FileText',\n spreadsheet: 'lucide:FileSpreadsheet',\n presentation: 'lucide:FileBarChart',\n video: 'lucide:FileVideo',\n audio: 'lucide:FileAudio',\n archive: 'lucide:FileArchive',\n file: 'lucide:File',\n };\n return iconMap[fileType] ?? 'lucide:File';\n }\n\n public canShowPreview(file: File): boolean {\n return file.type.startsWith('image/') && file.size < 5 * 1024 * 1024;\n }\n\n private validateFile(file: File): boolean {\n if (this.maxSize > 0 && file.size > this.maxSize) {\n this.validationMessage = `File \"${file.name}\" exceeds the maximum size of ${this.formatFileSize(this.maxSize)}`;\n this.validationState = 'invalid';\n return false;\n }\n\n if (this.accept) {\n const acceptedTypes = this.accept\n .split(',')\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n\n if (acceptedTypes.length > 0) {\n let isAccepted = false;\n for (const acceptType of acceptedTypes) {\n if (acceptType.startsWith('.')) {\n if (file.name.toLowerCase().endsWith(acceptType.toLowerCase())) {\n isAccepted = true;\n break;\n }\n } else if (acceptType.endsWith('/*')) {\n const prefix = acceptType.slice(0, -2);\n if (file.type.startsWith(prefix)) {\n isAccepted = true;\n break;\n }\n } else if (file.type === acceptType) {\n isAccepted = true;\n break;\n }\n }\n\n if (!isAccepted) {\n this.validationMessage = `File type not accepted. Allowed: ${acceptedTypes.join(', ')}`;\n this.validationState = 'invalid';\n return false;\n }\n }\n }\n\n return true;\n }\n\n private getPreviewUrl(file: File): string {\n let url = this.previewUrlMap.get(file);\n if (!url) {\n url = URL.createObjectURL(file);\n this.previewUrlMap.set(file, url);\n }\n return url;\n }\n\n private releasePreview(file: File): void {\n const url = this.previewUrlMap.get(file);\n if (url) {\n URL.revokeObjectURL(url);\n this.previewUrlMap.delete(file);\n }\n }\n\n private getAcceptedSummary(): string | null {\n if (!this.accept) {\n return null;\n }\n\n const formatted = Array.from(\n new Set(\n this.accept\n .split(',')\n .map((token) => token.trim())\n .filter((token) => token.length > 0)\n .map((token) => this.formatAcceptToken(token))\n )\n ).filter(Boolean);\n\n if (formatted.length === 0) {\n return null;\n }\n\n if (formatted.length === 1) {\n return formatted[0];\n }\n\n if (formatted.length === 2) {\n return `${formatted[0]}, ${formatted[1]}`;\n }\n\n return `${formatted.slice(0, 2).join(', ')}\u2026`;\n }\n\n private formatAcceptToken(token: string): string {\n if (token === '*/*') {\n return 'All files';\n }\n\n if (token.endsWith('/*')) {\n const family = token.split('/')[0];\n if (!family) {\n return 'All files';\n }\n return `${family.charAt(0).toUpperCase()}${family.slice(1)} files`;\n }\n\n if (token.startsWith('.')) {\n return token.slice(1).toUpperCase();\n }\n\n if (token.includes('pdf')) return 'PDF';\n if (token.includes('zip')) return 'ZIP';\n if (token.includes('json')) return 'JSON';\n if (token.includes('msword')) return 'DOC';\n if (token.includes('wordprocessingml')) return 'DOCX';\n if (token.includes('excel')) return 'XLS';\n if (token.includes('presentation')) return 'PPT';\n\n const segments = token.split('/');\n const lastSegment = segments.pop() ?? token;\n return lastSegment.toUpperCase();\n }\n\n private attachLifecycleListeners(): void {\n this.rebindInteractiveElements();\n }\n\n public firstUpdated(changedProperties: Map) {\n super.firstUpdated(changedProperties);\n this.attachLifecycleListeners();\n }\n\n public updated(changedProperties: Map) {\n super.updated(changedProperties);\n if (changedProperties.has('value')) {\n void this.validate();\n }\n this.rebindInteractiveElements();\n }\n\n public async disconnectedCallback(): Promise {\n this.detachDropListeners();\n this.value.forEach((file) => this.releasePreview(file));\n this.previewUrlMap = new WeakMap();\n await super.disconnectedCallback();\n }\n\n public async openFileSelector() {\n if (this.disabled || this.isLoading) {\n return;\n }\n\n this.isLoading = true;\n\n // Ensure we have the latest reference to the file input\n const inputFile = this.shadowRoot?.querySelector('.file-input') as HTMLInputElement | null;\n\n if (!inputFile) {\n this.isLoading = false;\n return;\n }\n\n const handleFocus = () => {\n setTimeout(() => {\n if (!inputFile.files || inputFile.files.length === 0) {\n this.isLoading = false;\n }\n window.removeEventListener('focus', handleFocus);\n }, 300);\n };\n\n window.addEventListener('focus', handleFocus);\n\n // Click the input to open file selector\n inputFile.click();\n }\n\n public removeFile(file: File) {\n const index = this.value.indexOf(file);\n if (index > -1) {\n this.releasePreview(file);\n this.value.splice(index, 1);\n this.requestUpdate('value');\n void this.validate();\n this.changeSubject.next(this);\n }\n }\n\n public clearAll() {\n const existingFiles = [...this.value];\n this.value = [];\n existingFiles.forEach((file) => this.releasePreview(file));\n this.requestUpdate('value');\n void this.validate();\n this.changeSubject.next(this);\n this.buttonText = 'Select files';\n }\n\n public async updateValue(eventArg: Event) {\n const target = eventArg.target as HTMLInputElement;\n this.value = Array.from(target.files ?? []);\n this.changeSubject.next(this);\n }\n\n public setValue(value: File[]): void {\n this.value.forEach((file) => this.releasePreview(file));\n this.value = value;\n if (value.length > 0) {\n this.buttonText = this.multiple ? 'Add more files' : 'Replace file';\n } else {\n this.buttonText = 'Select files';\n }\n this.requestUpdate('value');\n void this.validate();\n }\n\n public getValue(): File[] {\n return this.value;\n }\n\n private async addFiles(files: File[]) {\n const filesToAdd: File[] = [];\n\n for (const file of files) {\n if (this.validateFile(file)) {\n filesToAdd.push(file);\n }\n }\n\n if (filesToAdd.length === 0) {\n this.isLoading = false;\n return;\n }\n\n if (this.maxFiles > 0) {\n const totalFiles = this.value.length + filesToAdd.length;\n if (totalFiles > this.maxFiles) {\n const allowedCount = this.maxFiles - this.value.length;\n if (allowedCount <= 0) {\n this.validationMessage = `Maximum ${this.maxFiles} files allowed`;\n this.validationState = 'invalid';\n this.isLoading = false;\n return;\n }\n filesToAdd.splice(allowedCount);\n this.validationMessage = `Only ${allowedCount} more file(s) can be added`;\n this.validationState = 'warn';\n }\n }\n\n if (!this.multiple && filesToAdd.length > 0) {\n this.value.forEach((file) => this.releasePreview(file));\n this.value = [filesToAdd[0]];\n } else {\n this.value.push(...filesToAdd);\n }\n\n this.validationMessage = '';\n this.validationState = null;\n this.requestUpdate('value');\n await this.validate();\n this.changeSubject.next(this);\n this.isLoading = false;\n\n if (this.value.length > 0) {\n this.buttonText = this.multiple ? 'Add more files' : 'Replace file';\n } else {\n this.buttonText = 'Select files';\n }\n }\n\n public async validate(): Promise {\n this.validationMessage = '';\n\n if (this.required && this.value.length === 0) {\n this.validationState = 'invalid';\n this.validationMessage = 'Please select at least one file';\n return false;\n }\n\n for (const file of this.value) {\n if (!this.validateFile(file)) {\n return false;\n }\n }\n\n this.validationState = this.value.length > 0 ? 'valid' : null;\n return true;\n }\n}\n", "export * from './component.js';\n", "/*!\n * @license\n * Copyright Sa\u0161a Jovani\u0107\n * Licensed under the Mozilla Public License, Version 2.0 or the MIT license,\n * at your option. This file may not be copied, modified, or distributed\n * except according to those terms.\n * SPDX-FileCopyrightText: Sa\u0161a Jovani\u0107\n * SPDX-License-Identifier: MIT or MPL/2.0\n */\n/**\n * Validation, extraction and creation of IBAN, BBAN, BIC/SWIFT numbers plus some other helpful stuff\n * @package Documentation\n * @author Sa\u0161a Jovani\u0107\n * @module ibantools\n * @version 4.5.1\n * @license MIT or MPL-2.0\n * @preferred\n */\n'use strict';\n/**\n * Validate IBAN\n * ```\n * // returns true\n * ibantools.isValidIBAN(\"NL91ABNA0417164300\");\n * ```\n * ```\n * // returns false\n * ibantools.isValidIBAN(\"NL92ABNA0517164300\");\n * ```\n * ```\n * // returns true\n * ibantools.isValidIBAN('CH4431999123000889012');\n * ```\n * ```\n * // returns false\n * ibantools.isValidIBAN('CH4431999123000889012', { allowQRIBAN: false });\n * ```\n */\nexport function isValidIBAN(iban, validationOptions) {\n if (validationOptions === void 0) { validationOptions = { allowQRIBAN: true }; }\n if (iban === undefined || iban === null)\n return false;\n var reg = new RegExp('^[0-9]{2}$', '');\n var countryCode = iban.slice(0, 2);\n var spec = countrySpecs[countryCode];\n if (spec === undefined || spec.bban_regexp === undefined || spec.bban_regexp === null || spec.chars === undefined)\n return false;\n return (spec.chars === iban.length &&\n reg.test(iban.slice(2, 4)) &&\n isValidBBAN(iban.slice(4), countryCode) &&\n isValidIBANChecksum(iban) &&\n (validationOptions.allowQRIBAN || !isQRIBAN(iban)));\n}\n/**\n * IBAM validation errors\n */\nexport var ValidationErrorsIBAN;\n(function (ValidationErrorsIBAN) {\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"NoIBANProvided\"] = 0] = \"NoIBANProvided\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"NoIBANCountry\"] = 1] = \"NoIBANCountry\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongBBANLength\"] = 2] = \"WrongBBANLength\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongBBANFormat\"] = 3] = \"WrongBBANFormat\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"ChecksumNotNumber\"] = 4] = \"ChecksumNotNumber\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongIBANChecksum\"] = 5] = \"WrongIBANChecksum\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongAccountBankBranchChecksum\"] = 6] = \"WrongAccountBankBranchChecksum\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"QRIBANNotAllowed\"] = 7] = \"QRIBANNotAllowed\";\n})(ValidationErrorsIBAN || (ValidationErrorsIBAN = {}));\n/**\n * validateIBAN\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateIBAN(\"NL91ABNA0417164300\");\n * ```\n * ```\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateIBAN('CH4431999123000889012');\n * ```\n * ```\n * // returns {errorCodes: [7], valid: false}\n * ibantools.validateIBAN('CH4431999123000889012', { allowQRIBAN: false });\n * ```\n */\nexport function validateIBAN(iban, validationOptions) {\n if (validationOptions === void 0) { validationOptions = { allowQRIBAN: true }; }\n var result = { errorCodes: [], valid: true };\n if (iban !== undefined && iban !== null && iban !== '') {\n var spec = countrySpecs[iban.slice(0, 2)];\n if (!spec || !(spec.bban_regexp || spec.chars)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.NoIBANCountry);\n return result;\n }\n if (spec && spec.chars && spec.chars !== iban.length) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongBBANLength);\n }\n if (spec && spec.bban_regexp && !checkFormatBBAN(iban.slice(4), spec.bban_regexp)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongBBANFormat);\n }\n if (spec && spec.bban_validation_func && !spec.bban_validation_func(iban.slice(4))) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongAccountBankBranchChecksum);\n }\n var reg = new RegExp('^[0-9]{2}$', '');\n if (!reg.test(iban.slice(2, 4))) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.ChecksumNotNumber);\n }\n if (result.errorCodes.indexOf(ValidationErrorsIBAN.WrongBBANFormat) !== -1 || !isValidIBANChecksum(iban)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongIBANChecksum);\n }\n if (!validationOptions.allowQRIBAN && isQRIBAN(iban)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.QRIBANNotAllowed);\n }\n }\n else {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.NoIBANProvided);\n }\n return result;\n}\n/**\n * Validate BBAN\n *\n * ```\n * // returns true\n * ibantools.isValidBBAN(\"ABNA0417164300\", \"NL\");\n * ```\n * ```\n * // returns false\n * ibantools.isValidBBAN(\"A7NA0517164300\", \"NL\");\n * ```\n */\nexport function isValidBBAN(bban, countryCode) {\n if (bban === undefined || bban === null || countryCode === undefined || countryCode === null)\n return false;\n var spec = countrySpecs[countryCode];\n if (spec === undefined ||\n spec === null ||\n spec.bban_regexp === undefined ||\n spec.bban_regexp === null ||\n spec.chars === undefined ||\n spec.chars === null)\n return false;\n if (spec.chars - 4 === bban.length && checkFormatBBAN(bban, spec.bban_regexp)) {\n if (spec.bban_validation_func) {\n return spec.bban_validation_func(bban.replace(/[\\s.]+/g, ''));\n }\n return true;\n }\n return false;\n}\n/**\n * Validate if country code is from a SEPA country\n * ```\n * // returns true\n * ibantools.isSEPACountry(\"NL\");\n * ```\n * ```\n * // returns false\n * ibantools.isSEPACountry(\"PK\");\n * ```\n */\nexport function isSEPACountry(countryCode) {\n if (countryCode !== undefined && countryCode !== null) {\n var spec = countrySpecs[countryCode];\n if (spec !== undefined) {\n return spec.SEPA ? spec.SEPA : false;\n }\n }\n return false;\n}\n/**\n * Check if IBAN is QR-IBAN\n * ```\n * // returns true\n * ibantools.isQRIBAN(\"CH4431999123000889012\");\n * ```\n * ```\n * // returns false\n * ibantools.isQRIBAN(\"NL92ABNA0517164300\");\n * ```\n */\nexport function isQRIBAN(iban) {\n if (iban === undefined || iban === null)\n return false;\n var countryCode = iban.slice(0, 2);\n var QRIBANCountries = ['LI', 'CH'];\n if (!QRIBANCountries.includes(countryCode))\n return false;\n var reg = new RegExp('^3[0-1]{1}[0-9]{3}$', '');\n return reg.test(iban.slice(4, 9));\n}\n/**\n * composeIBAN\n *\n * ```\n * // returns NL91ABNA0417164300\n * ibantools.composeIBAN({ countryCode: \"NL\", bban: \"ABNA0417164300\" });\n * ```\n */\nexport function composeIBAN(params) {\n var formated_bban = electronicFormatIBAN(params.bban) || '';\n if (params.countryCode === null || params.countryCode === undefined) {\n return null;\n }\n var spec = countrySpecs[params.countryCode];\n if (formated_bban !== '' &&\n spec !== undefined &&\n spec.chars &&\n spec.chars !== null &&\n spec.chars === formated_bban.length + 4 &&\n spec.bban_regexp &&\n spec.bban_regexp !== null &&\n checkFormatBBAN(formated_bban, spec.bban_regexp)) {\n var checksom = mod9710Iban(params.countryCode + '00' + formated_bban);\n return params.countryCode + ('0' + (98 - checksom)).slice(-2) + formated_bban;\n }\n return null;\n}\n/**\n * extractIBAN\n * ```\n * // returns {iban: \"NL91ABNA0417164300\", bban: \"ABNA0417164300\", countryCode: \"NL\", valid: true, accountNumber: '0417164300', bankIdentifier: 'ABNA'}\n * ibantools.extractIBAN(\"NL91 ABNA 0417 1643 00\");\n * ```\n */\nexport function extractIBAN(iban) {\n var result = {};\n var eFormatIBAN = electronicFormatIBAN(iban);\n result.iban = eFormatIBAN || iban;\n if (!!eFormatIBAN && isValidIBAN(eFormatIBAN)) {\n result.bban = eFormatIBAN.slice(4);\n result.countryCode = eFormatIBAN.slice(0, 2);\n result.valid = true;\n var spec = countrySpecs[result.countryCode];\n if (spec.account_indentifier) {\n var ac = spec.account_indentifier.split('-');\n var starting = parseInt(ac[0]);\n var ending = parseInt(ac[1]);\n result.accountNumber = result.iban.slice(starting, ending + 1);\n }\n if (spec.bank_identifier) {\n var ac = spec.bank_identifier.split('-');\n var starting = parseInt(ac[0]);\n var ending = parseInt(ac[1]);\n result.bankIdentifier = result.bban.slice(starting, ending + 1);\n }\n if (spec.branch_indentifier) {\n var ac = spec.branch_indentifier.split('-');\n var starting = parseInt(ac[0]);\n var ending = parseInt(ac[1]);\n result.branchIdentifier = result.bban.slice(starting, ending + 1);\n }\n }\n else {\n result.valid = false;\n }\n return result;\n}\n/**\n * Check BBAN format\n *\n * @ignore\n */\nfunction checkFormatBBAN(bban, bformat) {\n var reg = new RegExp(bformat, '');\n return reg.test(bban);\n}\n/**\n * Get IBAN in electronic format (no spaces)\n * IBAN validation is not performed.\n * When non-string value for IBAN is provided, returns null.\n * ```\n * // returns \"NL91ABNA0417164300\"\n * ibantools.electronicFormatIBAN(\"NL91 ABNA 0417 1643 00\");\n * ```\n */\nexport function electronicFormatIBAN(iban) {\n if (typeof iban !== 'string') {\n return null;\n }\n return iban.replace(/[-\\ ]/g, '').toUpperCase();\n}\n/**\n * Get IBAN in friendly format (separated after every 4 characters)\n * IBAN validation is not performed.\n * When non-string value for IBAN is provided, returns null.\n * ```\n * // returns \"NL91 ABNA 0417 1643 00\"\n * ibantools.friendlyFormatIBAN(\"NL91ABNA0417164300\");\n * ```\n * ```\n * // returns \"NL91-ABNA-0417-1643-00\"\n * ibantools.friendlyFormatIBAN(\"NL91ABNA0417164300\",\"-\");\n * ```\n */\nexport function friendlyFormatIBAN(iban, separator) {\n if (typeof iban !== 'string') {\n return null;\n }\n if (separator === undefined || separator === null) {\n separator = ' ';\n }\n var electronic_iban = electronicFormatIBAN(iban);\n /* istanbul ignore if */\n if (electronic_iban === null) {\n return null;\n }\n return electronic_iban.replace(/(.{4})(?!$)/g, '$1' + separator);\n}\n/**\n * Calculate checksum of IBAN and compares it with checksum provided in IBAN Registry\n *\n * @ignore\n */\nfunction isValidIBANChecksum(iban) {\n var countryCode = iban.slice(0, 2);\n var providedChecksum = parseInt(iban.slice(2, 4), 10);\n var bban = iban.slice(4);\n // Wikipedia[validating_iban] says there are a specif way to check if a IBAN is valid but\n // it. It says 'If the remainder is 1, the check digit test is passed and the\n // IBAN might be valid.'. might, MIGHT!\n // We don't want might but want yes or no. Since every BBAN is IBAN from the fifth\n // (slice(4)) we can generate the IBAN from BBAN and country code(two first characters)\n // from in the IBAN.\n // To generate the (generate the iban check digits)[generating-iban-check]\n // Move the country code to the end\n // remove the checksum from the begging\n // Add \"00\" to the end\n // modulo 97 on the amount\n // subtract remainder from 98, (98 - remainder)\n // Add a leading 0 if the remainder is less then 10 (padStart(2, \"0\")) (we skip this\n // since we compare int, not string)\n //\n // [validating_iban][https://en.wikipedia.org/wiki/International_Bank_Account_Number#Validating_the_IBAN]\n // [generating-iban-check][https://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits]\n var validationString = replaceCharaterWithCode(\"\".concat(bban).concat(countryCode, \"00\"));\n var rest = mod9710(validationString);\n return 98 - rest === providedChecksum;\n}\n/**\n * Iban contain characters and should be converted to intereger by 55 substracted\n * from there ascii value\n *\n * @ignore\n */\nfunction replaceCharaterWithCode(str) {\n // It is slower but alot more readable\n // https://jsbench.me/ttkzgsekae/1\n return str\n .split('')\n .map(function (c) {\n var code = c.charCodeAt(0);\n return code >= 65 ? (code - 55).toString() : c;\n })\n .join('');\n}\n/**\n * MOD-97-10\n *\n * @ignore\n */\nfunction mod9710Iban(iban) {\n return mod9710(replaceCharaterWithCode(iban.slice(4) + iban.slice(0, 4)));\n}\n/**\n * Returns specifications for all countries, even those who are not\n * members of IBAN registry. `IBANRegistry` field indicates if country\n * is member of not.\n *\n * ```\n * // Validating IBAN form field after user selects his country\n * // \n * $(\"#countries\").select(function() {\n * // Find country\n * let country = ibantools.getCountrySpecifications()[$(this).val()];\n * // Add country code letters to IBAN form field\n * $(\"input#iban\").value($(this).val());\n * // Add New value to \"pattern\" attribute to #iban input text field\n * $(\"input#iban\").attr(\"pattern\", $(this).val() + \"[0-9]{2}\" + country.bban_regexp.slice(1).replace(\"$\",\"\"));\n * });\n * ```\n */\nexport function getCountrySpecifications() {\n var countyMap = {};\n for (var countyCode in countrySpecs) {\n var county = countrySpecs[countyCode];\n countyMap[countyCode] = {\n chars: county.chars || null,\n bban_regexp: county.bban_regexp || null,\n IBANRegistry: county.IBANRegistry || false,\n SEPA: county.SEPA || false,\n };\n }\n return countyMap;\n}\n/**\n * Validate BIC/SWIFT\n *\n * ```\n * // returns true\n * ibantools.isValidBIC(\"ABNANL2A\");\n *\n * // returns true\n * ibantools.isValidBIC(\"NEDSZAJJXXX\");\n *\n * // returns false\n * ibantools.isValidBIC(\"ABN4NL2A\");\n *\n * // returns false\n * ibantools.isValidBIC(\"ABNA NL 2A\");\n * ```\n */\nexport function isValidBIC(bic) {\n if (!bic) {\n return false;\n }\n var reg = new RegExp('^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$', '');\n var spec = countrySpecs[bic.toUpperCase().slice(4, 6)];\n return reg.test(bic) && spec !== undefined;\n}\n/**\n * BIC validation errors\n */\nexport var ValidationErrorsBIC;\n(function (ValidationErrorsBIC) {\n ValidationErrorsBIC[ValidationErrorsBIC[\"NoBICProvided\"] = 0] = \"NoBICProvided\";\n ValidationErrorsBIC[ValidationErrorsBIC[\"NoBICCountry\"] = 1] = \"NoBICCountry\";\n ValidationErrorsBIC[ValidationErrorsBIC[\"WrongBICFormat\"] = 2] = \"WrongBICFormat\";\n})(ValidationErrorsBIC || (ValidationErrorsBIC = {}));\n/**\n * validateBIC\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateBIC(\"NEDSZAJJXXX\");\n * ```\n */\nexport function validateBIC(bic) {\n var result = { errorCodes: [], valid: true };\n if (bic !== undefined && bic !== null && bic !== '') {\n var spec = countrySpecs[bic.toUpperCase().slice(4, 6)];\n if (spec === undefined) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.NoBICCountry);\n }\n else {\n var reg = new RegExp('^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$', '');\n if (!reg.test(bic)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.WrongBICFormat);\n }\n }\n }\n else {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.NoBICProvided);\n }\n return result;\n}\n/**\n * extractBIC\n * ```\n * // returns {bankCode: \"ABNA\", countryCode: \"NL\", locationCode: \"2A\", branchCode: null, testBIC: false, valid: true}\n * ibantools.extractBIC(\"ABNANL2A\");\n * ```\n */\nexport function extractBIC(inputBic) {\n var result = {};\n var bic = inputBic.toUpperCase();\n if (isValidBIC(bic)) {\n result.bankCode = bic.slice(0, 4);\n result.countryCode = bic.slice(4, 6);\n result.locationCode = bic.slice(6, 8);\n result.testBIC = result.locationCode[1] === '0' ? true : false;\n result.branchCode = bic.length > 8 ? bic.slice(8) : null;\n result.valid = true;\n }\n else {\n result.valid = false;\n }\n return result;\n}\n/**\n * Used for Norway BBAN check\n *\n * @ignore\n */\nvar checkNorwayBBAN = function (bban) {\n var weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];\n var bbanWithoutSpacesAndPeriods = bban.replace(/[\\s.]+/g, '');\n var controlDigit = parseInt(bbanWithoutSpacesAndPeriods.charAt(10), 10);\n var bbanWithoutControlDigit = bbanWithoutSpacesAndPeriods.substring(0, 10);\n var sum = 0;\n for (var index = 0; index < 10; index++) {\n sum += parseInt(bbanWithoutControlDigit.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 11;\n return controlDigit === (remainder === 0 ? 0 : 11 - remainder);\n};\n/**\n * Used for Belgian BBAN check\n *\n * @ignore\n */\nvar checkBelgianBBAN = function (bban) {\n var stripped = bban.replace(/[\\s.]+/g, '');\n var checkingPart = parseInt(stripped.substring(0, stripped.length - 2), 10);\n var checksum = parseInt(stripped.substring(stripped.length - 2, stripped.length), 10);\n var remainder = checkingPart % 97 === 0 ? 97 : checkingPart % 97;\n return remainder === checksum;\n};\n/**\n * Mod 97/10 calculation\n *\n * @ignore\n */\nvar mod9710 = function (validationString) {\n while (validationString.length > 2) {\n // > Any computer programming language or software package that is used to compute D\n // > mod 97 directly must have the ability to handle integers of more than 30 digits.\n // > In practice, this can only be done by software that either supports\n // > arbitrary-precision arithmetic or that can handle 219-bit (unsigned) integers\n // https://en.wikipedia.org/wiki/International_Bank_Account_Number#Modulo_operation_on_IBAN\n var part = validationString.slice(0, 6);\n var partInt = parseInt(part, 10);\n if (isNaN(partInt)) {\n return NaN;\n }\n validationString = (partInt % 97) + validationString.slice(part.length);\n }\n return parseInt(validationString, 10) % 97;\n};\n/**\n * Check BBAN based on Mod97/10 calculation for countries that support it:\n * BA, ME, MK, PT, RS, SI\n *\n * @ignore\n */\nvar checkMod9710BBAN = function (bban) {\n var stripped = bban.replace(/[\\s.]+/g, '');\n var reminder = mod9710(stripped);\n return reminder === 1;\n};\n/**\n * Used for Poland BBAN check\n *\n * @ignore\n */\nvar checkPolandBBAN = function (bban) {\n var weights = [3, 9, 7, 1, 3, 9, 7];\n var controlDigit = parseInt(bban.charAt(7), 10);\n var toCheck = bban.substring(0, 7);\n var sum = 0;\n for (var index = 0; index < 7; index++) {\n sum += parseInt(toCheck.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 10;\n return controlDigit === (remainder === 0 ? 0 : 10 - remainder);\n};\n/**\n * Spain (ES) BBAN check\n *\n * @ignore\n */\nvar checkSpainBBAN = function (bban) {\n var weightsBankBranch = [4, 8, 5, 10, 9, 7, 3, 6];\n var weightsAccount = [1, 2, 4, 8, 5, 10, 9, 7, 3, 6];\n var controlBankBranch = parseInt(bban.charAt(8), 10);\n var controlAccount = parseInt(bban.charAt(9), 10);\n var bankBranch = bban.substring(0, 8);\n var account = bban.substring(10, 20);\n var sum = 0;\n for (var index = 0; index < 8; index++) {\n sum += parseInt(bankBranch.charAt(index), 10) * weightsBankBranch[index];\n }\n var remainder = sum % 11;\n if (controlBankBranch !== (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder)) {\n return false;\n }\n sum = 0;\n for (var index = 0; index < 10; index++) {\n sum += parseInt(account.charAt(index), 10) * weightsAccount[index];\n }\n remainder = sum % 11;\n return controlAccount === (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder);\n};\n/**\n * Mod 11/10 check\n *\n * @ignore\n */\nvar checkMod1110 = function (toCheck, control) {\n var nr = 10;\n for (var index = 0; index < toCheck.length; index++) {\n nr += parseInt(toCheck.charAt(index), 10);\n if (nr % 10 !== 0) {\n nr = nr % 10;\n }\n nr = nr * 2;\n nr = nr % 11;\n }\n return control === (11 - nr === 10 ? 0 : 11 - nr);\n};\n/**\n * Croatian (HR) BBAN check\n *\n * @ignore\n */\nvar checkCroatianBBAN = function (bban) {\n var controlBankBranch = parseInt(bban.charAt(6), 10);\n var controlAccount = parseInt(bban.charAt(16), 10);\n var bankBranch = bban.substring(0, 6);\n var account = bban.substring(7, 16);\n return checkMod1110(bankBranch, controlBankBranch) && checkMod1110(account, controlAccount);\n};\n/**\n * Czech (CZ) and Slowak (SK) BBAN check\n *\n * @ignore\n */\nvar checkCzechAndSlovakBBAN = function (bban) {\n var weightsPrefix = [10, 5, 8, 4, 2, 1];\n var weightsSuffix = [6, 3, 7, 9, 10, 5, 8, 4, 2, 1];\n var controlPrefix = parseInt(bban.charAt(9), 10);\n var controlSuffix = parseInt(bban.charAt(19), 10);\n var prefix = bban.substring(4, 9);\n var suffix = bban.substring(10, 19);\n var sum = 0;\n for (var index = 0; index < prefix.length; index++) {\n sum += parseInt(prefix.charAt(index), 10) * weightsPrefix[index];\n }\n var remainder = sum % 11;\n if (controlPrefix !== (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder)) {\n return false;\n }\n sum = 0;\n for (var index = 0; index < suffix.length; index++) {\n sum += parseInt(suffix.charAt(index), 10) * weightsSuffix[index];\n }\n remainder = sum % 11;\n return controlSuffix === (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder);\n};\n/**\n * Estonian (EE) BBAN check\n *\n * @ignore\n */\nvar checkEstonianBBAN = function (bban) {\n var weights = [7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7];\n var controlDigit = parseInt(bban.charAt(15), 10);\n var toCheck = bban.substring(2, 15);\n var sum = 0;\n for (var index = 0; index < toCheck.length; index++) {\n sum += parseInt(toCheck.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 10;\n return controlDigit === (remainder === 0 ? 0 : 10 - remainder);\n};\n/**\n * Check French (FR) BBAN\n * Also for Monaco (MC)\n *\n * @ignore\n */\nvar checkFrenchBBAN = function (bban) {\n var stripped = bban.replace(/[\\s.]+/g, '');\n var normalized = Array.from(stripped);\n for (var index = 0; index < stripped.length; index++) {\n var c = normalized[index].charCodeAt(0);\n if (c >= 65) {\n switch (c) {\n case 65:\n case 74:\n normalized[index] = '1';\n break;\n case 66:\n case 75:\n case 83:\n normalized[index] = '2';\n break;\n case 67:\n case 76:\n case 84:\n normalized[index] = '3';\n break;\n case 68:\n case 77:\n case 85:\n normalized[index] = '4';\n break;\n case 69:\n case 78:\n case 86:\n normalized[index] = '5';\n break;\n case 70:\n case 79:\n case 87:\n normalized[index] = '6';\n break;\n case 71:\n case 80:\n case 88:\n normalized[index] = '7';\n break;\n case 72:\n case 81:\n case 89:\n normalized[index] = '8';\n break;\n case 73:\n case 82:\n case 90:\n normalized[index] = '9';\n break;\n }\n }\n }\n var remainder = mod9710(normalized.join(''));\n return remainder === 0;\n};\n/**\n * Hungarian (HU) BBAN check\n *\n * @ignore\n */\nvar checkHungarianBBAN = function (bban) {\n var weights = [9, 7, 3, 1, 9, 7, 3, 1, 9, 7, 3, 1, 9, 7, 3];\n var controlDigitBankBranch = parseInt(bban.charAt(7), 10);\n var toCheckBankBranch = bban.substring(0, 7);\n var sum = 0;\n for (var index = 0; index < toCheckBankBranch.length; index++) {\n sum += parseInt(toCheckBankBranch.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 10;\n if (controlDigitBankBranch !== (remainder === 0 ? 0 : 10 - remainder)) {\n return false;\n }\n sum = 0;\n if (bban.endsWith('00000000')) {\n var toCheckAccount = bban.substring(8, 15);\n var controlDigitAccount = parseInt(bban.charAt(15), 10);\n for (var index = 0; index < toCheckAccount.length; index++) {\n sum += parseInt(toCheckAccount.charAt(index), 10) * weights[index];\n }\n var remainder_1 = sum % 10;\n return controlDigitAccount === (remainder_1 === 0 ? 0 : 10 - remainder_1);\n }\n else {\n var toCheckAccount = bban.substring(8, 23);\n var controlDigitAccount = parseInt(bban.charAt(23), 10);\n for (var index = 0; index < toCheckAccount.length; index++) {\n sum += parseInt(toCheckAccount.charAt(index), 10) * weights[index];\n }\n var remainder_2 = sum % 10;\n return controlDigitAccount === (remainder_2 === 0 ? 0 : 10 - remainder_2);\n }\n};\n/**\n * Set custom BBAN validation function for country.\n *\n * If `bban_validation_func` already exists for the corresponding country,\n * it will be overwritten.\n */\nexport var setCountryBBANValidation = function (country, func) {\n if (typeof countrySpecs[country] === 'undefined') {\n return false;\n }\n countrySpecs[country].bban_validation_func = func;\n return true;\n};\n/**\n * Country specifications\n */\nexport var countrySpecs = {\n AD: {\n chars: 24,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n account_indentifier: '8-24',\n },\n AE: {\n chars: 23,\n bban_regexp: '^[0-9]{3}[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-2',\n account_indentifier: '7-23',\n },\n AF: {},\n AG: {},\n AI: {},\n AL: {\n chars: 28,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$',\n IBANRegistry: true,\n branch_indentifier: '3-7',\n bank_identifier: '0-2',\n account_indentifier: '12-28',\n },\n AM: {},\n AO: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n },\n AQ: {},\n AR: {},\n AS: {},\n AT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true, bank_identifier: '0-4' },\n AU: {},\n AW: {},\n AX: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n },\n AZ: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{20}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '4-28',\n },\n BA: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n branch_indentifier: '3-5',\n bank_identifier: '0-2',\n },\n BB: {},\n BD: {},\n BE: {\n chars: 16,\n bban_regexp: '^[0-9]{12}$',\n bban_validation_func: checkBelgianBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-2',\n account_indentifier: '0-16',\n },\n BF: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n BG: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[0-9]{6}[A-Z0-9]{8}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n },\n BH: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-22',\n },\n BI: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n account_indentifier: '14-27',\n },\n BJ: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n BL: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n },\n BM: {},\n BN: {},\n BO: {},\n BQ: {},\n BR: {\n chars: 29,\n bban_regexp: '^[0-9]{23}[A-Z]{1}[A-Z0-9]{1}$',\n IBANRegistry: true,\n branch_indentifier: '8-12',\n bank_identifier: '0-7',\n account_indentifier: '17-29',\n },\n BS: {},\n BT: {},\n BV: {},\n BW: {},\n BY: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n },\n BZ: {},\n CA: {},\n CC: {},\n CD: {},\n CF: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CG: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CH: {\n chars: 21,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-4',\n },\n CI: {\n chars: 28,\n bban_regexp: '^[A-Z]{1}[0-9]{23}$',\n },\n CK: {},\n CL: {},\n CM: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CN: {},\n CO: {},\n CR: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-22',\n },\n CU: {},\n CV: { chars: 25, bban_regexp: '^[0-9]{21}$' },\n CW: {},\n CX: {},\n CY: {\n chars: 28,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '3-7',\n bank_identifier: '0-2',\n account_indentifier: '12-28',\n },\n CZ: {\n chars: 24,\n bban_regexp: '^[0-9]{20}$',\n bban_validation_func: checkCzechAndSlovakBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n },\n DE: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-7',\n account_indentifier: '13-22',\n },\n DJ: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n account_indentifier: '14-27',\n },\n DK: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '4-18',\n },\n DM: {},\n DO: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-28',\n },\n DZ: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n },\n EC: {},\n EE: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n bban_validation_func: checkEstonianBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-1',\n account_indentifier: '8-20',\n },\n EG: {\n chars: 29,\n bban_regexp: '^[0-9]{25}',\n IBANRegistry: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n account_indentifier: '17-29',\n },\n EH: {},\n ER: {},\n ES: {\n chars: 24,\n bban_validation_func: checkSpainBBAN,\n bban_regexp: '^[0-9]{20}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n account_indentifier: '14-24',\n },\n ET: {},\n FI: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-2',\n account_indentifier: '0-0',\n },\n FJ: {},\n FK: {\n chars: 18,\n bban_regexp: '^[A-Z]{2}[0-9]{12}$',\n bank_identifier: '0-1',\n account_indentifier: '6-18',\n },\n FM: {},\n FO: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '4-18',\n },\n FR: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n bban_validation_func: checkFrenchBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-4',\n branch_indentifier: '5-9',\n account_indentifier: '14-24',\n },\n GA: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n GB: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-9',\n bank_identifier: '0-3',\n },\n GD: {},\n GE: {\n chars: 22,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '6-22',\n },\n GF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n GG: {},\n GH: {},\n GI: {\n chars: 23,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{15}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '8-23',\n },\n GL: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '4-18',\n },\n GM: {},\n GN: {},\n GP: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n GQ: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n GR: {\n chars: 27,\n bban_regexp: '^[0-9]{7}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '3-6',\n bank_identifier: '0-2',\n account_indentifier: '7-27',\n },\n GS: {},\n GT: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{24}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-28',\n },\n GU: {},\n GW: {\n chars: 25,\n bban_regexp: '^[A-Z]{2}[0-9]{19}$',\n },\n GY: {},\n HK: {},\n HM: {},\n HN: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n },\n HR: {\n chars: 21,\n bban_regexp: '^[0-9]{17}$',\n bban_validation_func: checkCroatianBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-6',\n },\n HT: {},\n HU: {\n chars: 28,\n bban_regexp: '^[0-9]{24}$',\n bban_validation_func: checkHungarianBBAN,\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '3-6',\n bank_identifier: '0-2',\n },\n ID: {},\n IE: {\n chars: 22,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-9',\n bank_identifier: '0-3',\n },\n IL: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n branch_indentifier: '3-5',\n bank_identifier: '0-2',\n },\n IM: {},\n IN: {},\n IO: {},\n IQ: {\n chars: 23,\n bban_regexp: '^[A-Z]{4}[0-9]{15}$',\n IBANRegistry: true,\n branch_indentifier: '4-6',\n bank_identifier: '0-3',\n account_indentifier: '11-23',\n },\n IR: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n },\n IS: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '2-3',\n bank_identifier: '0-1',\n },\n IT: {\n chars: 27,\n bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '6-10',\n bank_identifier: '1-5',\n account_indentifier: '4-27',\n },\n JE: {},\n JM: {},\n JO: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{18}$',\n IBANRegistry: true,\n branch_indentifier: '4-7',\n bank_identifier: '4-7',\n },\n JP: {},\n KE: {},\n KG: {},\n KH: {},\n KI: {},\n KM: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n KN: {},\n KP: {},\n KR: {},\n KW: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{22}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '20-30',\n },\n KY: {},\n KZ: {\n chars: 20,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$',\n IBANRegistry: true,\n bank_identifier: '0-2',\n account_indentifier: '0-20',\n },\n LA: {},\n LB: {\n chars: 28,\n bban_regexp: '^[0-9]{4}[A-Z0-9]{20}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '14-28',\n },\n LC: {\n chars: 32,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{24}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-32',\n },\n LI: {\n chars: 21,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-4',\n },\n LK: {},\n LR: {},\n LS: {},\n LT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true, bank_identifier: '0-4' },\n LU: {\n chars: 20,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-2',\n },\n LV: {\n chars: 21,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{13}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '0-21',\n },\n LY: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n IBANRegistry: true,\n branch_indentifier: '3-5',\n bank_identifier: '0-2',\n account_indentifier: '10-25',\n },\n MA: {\n chars: 28,\n bban_regexp: '^[0-9]{24}$',\n },\n MC: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n bban_validation_func: checkFrenchBBAN,\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n },\n MD: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{2}[A-Z0-9]{18}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '6-24',\n },\n ME: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n bank_identifier: '0-2',\n account_indentifier: '4-22',\n },\n MF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n MG: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n MH: {},\n MK: {\n chars: 19,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{10}[0-9]{2}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n bank_identifier: '0-2',\n },\n ML: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n MM: {},\n MN: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-20',\n },\n MO: {},\n MP: {},\n MQ: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n MR: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n IBANRegistry: true,\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n account_indentifier: '4-27',\n },\n MS: {},\n MT: {\n chars: 31,\n bban_regexp: '^[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-8',\n bank_identifier: '0-3',\n account_indentifier: '15-31',\n },\n MU: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[0-9]{19}[A-Z]{3}$',\n IBANRegistry: true,\n branch_indentifier: '6-7',\n bank_identifier: '0-5',\n account_indentifier: '0-30',\n },\n MV: {},\n MW: {},\n MX: {},\n MY: {},\n MZ: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n },\n NA: {},\n NC: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n NE: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n NF: {},\n NG: {},\n NI: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n bank_identifier: '0-3',\n IBANRegistry: true,\n account_indentifier: '8-28',\n },\n NL: {\n chars: 18,\n bban_regexp: '^[A-Z]{4}[0-9]{10}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '8-18',\n },\n NO: {\n chars: 15,\n bban_regexp: '^[0-9]{11}$',\n bban_validation_func: checkNorwayBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '4-15',\n },\n NP: {},\n NR: {},\n NU: {},\n NZ: {},\n OM: {\n chars: 23,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: false,\n bank_identifier: '0-2',\n },\n PA: {},\n PE: {},\n PF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n PG: {},\n PH: {},\n PK: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n },\n PL: {\n chars: 28,\n bban_validation_func: checkPolandBBAN,\n bban_regexp: '^[0-9]{24}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '0-7',\n account_indentifier: '2-28',\n },\n PM: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n PN: {},\n PR: {},\n PS: {\n chars: 29,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{21}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '17-29',\n },\n PT: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n },\n PW: {},\n PY: {},\n QA: {\n chars: 29,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{21}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-29',\n },\n RE: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n RO: {\n chars: 24,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '0-24',\n },\n RS: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n bank_identifier: '0-2',\n },\n RU: {\n chars: 33,\n bban_regexp: '^[0-9]{14}[A-Z0-9]{15}$',\n IBANRegistry: true,\n branch_indentifier: '9-13',\n bank_identifier: '0-8',\n account_indentifier: '13-33',\n },\n RW: {},\n SA: {\n chars: 24,\n bban_regexp: '^[0-9]{2}[A-Z0-9]{18}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '12-24',\n },\n SB: {},\n SC: {\n chars: 31,\n bban_regexp: '^[A-Z]{4}[0-9]{20}[A-Z]{3}$',\n IBANRegistry: true,\n branch_indentifier: '6-7',\n bank_identifier: '0-5',\n account_indentifier: '12-28',\n },\n SD: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '6-18',\n },\n SE: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true, bank_identifier: '0-2' },\n SG: {},\n SH: {},\n SI: {\n chars: 19,\n bban_regexp: '^[0-9]{15}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '2-4',\n bank_identifier: '0-1',\n account_indentifier: '9-16',\n },\n SJ: {},\n SK: {\n chars: 24,\n bban_regexp: '^[0-9]{20}$',\n bban_validation_func: checkCzechAndSlovakBBAN,\n IBANRegistry: true,\n SEPA: true,\n },\n SL: {},\n SM: {\n chars: 27,\n bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '6-10',\n },\n SN: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n SO: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n branch_indentifier: '4-6',\n account_indentifier: '11-23',\n },\n SR: {},\n SS: {},\n ST: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n IBANRegistry: true,\n branch_indentifier: '4-7',\n },\n SV: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n IBANRegistry: true,\n account_indentifier: '8-28',\n },\n SX: {},\n SY: {},\n SZ: {},\n TC: {},\n TD: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n TF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n TG: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n TH: {},\n TJ: {},\n TK: {},\n TL: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n account_indentifier: '4-23',\n },\n TM: {},\n TN: {\n chars: 24,\n bban_regexp: '^[0-9]{20}$',\n IBANRegistry: true,\n branch_indentifier: '2-4',\n account_indentifier: '4-24',\n },\n TO: {},\n TR: {\n chars: 26,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{17}$',\n IBANRegistry: true,\n },\n TT: {},\n TV: {},\n TW: {},\n TZ: {},\n UA: {\n chars: 29,\n bban_regexp: '^[0-9]{6}[A-Z0-9]{19}$',\n IBANRegistry: true,\n account_indentifier: '15-29',\n },\n UG: {},\n UM: {},\n US: {},\n UY: {},\n UZ: {},\n VA: {\n chars: 22,\n bban_regexp: '^[0-9]{18}',\n IBANRegistry: true,\n SEPA: true,\n account_indentifier: '7-22',\n },\n VC: {},\n VE: {},\n VG: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$',\n IBANRegistry: true,\n account_indentifier: '8-24',\n },\n VI: {},\n VN: {},\n VU: {},\n WF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n WS: {},\n XK: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n IBANRegistry: true,\n branch_indentifier: '2-3',\n account_indentifier: '4-20',\n },\n YE: {},\n YT: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n ZA: {},\n ZM: {},\n ZW: {},\n};\n", "import { html, css } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n \n \n
\n \n
\n \n\n \n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n
\n \n\n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n`;", "import {\n customElement,\n type TemplateResult,\n state,\n html,\n property,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport * as ibantools from 'ibantools';\nimport { demoFunc } from './dees-input-iban.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-input-iban')\nexport class DeesInputIban extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @state()\n accessor enteredString: string = '';\n\n @state()\n accessor enteredIbanIsValid: boolean = false;\n\n @property({\n type: String,\n })\n accessor value = '';\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n /* IBAN input specific styles can go here */\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n \n {\n this.validateIban(eventArg);\n }}\n >\n
\n `;\n }\n\n public firstUpdated(_changedProperties: Map) {\n super.firstUpdated(_changedProperties);\n const deesInputText = this.shadowRoot.querySelector('dees-input-text') as any;\n if (deesInputText && deesInputText.changeSubject) {\n deesInputText.changeSubject.subscribe(() => {\n this.changeSubject.next(this);\n });\n }\n }\n\n public async validateIban(eventArg: InputEvent): Promise {\n const inputElement: HTMLInputElement = eventArg.target as HTMLInputElement;\n let enteredString = inputElement?.value;\n enteredString = enteredString || '';\n if (this.enteredString !== enteredString) {\n this.enteredString = ibantools.friendlyFormatIBAN(enteredString) || '';\n if (inputElement) {\n inputElement.value = this.enteredString;\n this.value = this.enteredString;\n this.changeSubject.next(this);\n }\n }\n this.enteredIbanIsValid = ibantools.isValidIBAN(this.enteredString.replace(/ /g, ''));\n const deesInputText = this.shadowRoot.querySelector('dees-input-text');\n deesInputText.validationText = `IBAN is valid: ${this.enteredIbanIsValid}`;\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n this.enteredString = ibantools.friendlyFormatIBAN(value) || '';\n }\n}\n", "import { html, css, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n \n \n
\n
\n
Multi-Option Toggle
\n
Select from multiple options with a smooth sliding indicator animation.
\n \n \n \n

\n \n \n
\n \n
\n
Boolean Toggle
\n
Simple on/off switches with customizable labels for clearer context.
\n \n \n \n

\n \n \n
\n \n
\n
Settings Grid
\n
Configuration options arranged in a responsive grid layout.
\n \n
\n \n \n \n \n \n \n \n
\n
\n \n
\n
States & Form Integration
\n
Examples of disabled states and integration within forms.
\n \n \n \n

\n \n \n \n \n \n \n
\n
\n
\n`;", "import {\n customElement,\n type TemplateResult,\n html,\n property,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\n\nimport * as colors from '../../00colors.js'\n\nimport { demoFunc } from './dees-input-multitoggle.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-multitoggle': DeesInputMultitoggle;\n }\n}\n\n@customElement('dees-input-multitoggle')\nexport class DeesInputMultitoggle extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n\n @property()\n accessor type: 'boolean' | 'multi' | 'single' = 'multi';\n\n @property()\n accessor booleanTrueName: string = 'true';\n\n @property()\n accessor booleanFalseName: string = 'false';\n\n @property({\n type: Array,\n })\n accessor options: string[] = [];\n\n @property()\n accessor selectedOption: string = '';\n\n @property({ type: Boolean })\n accessor boolValue: boolean = false;\n\n // Add value property for form compatibility\n public get value(): string | boolean {\n if (this.type === 'boolean') {\n return this.selectedOption === this.booleanTrueName;\n }\n return this.selectedOption;\n }\n\n public set value(val: string | boolean) {\n if (this.type === 'boolean' && typeof val === 'boolean') {\n this.selectedOption = val ? this.booleanTrueName : this.booleanFalseName;\n } else {\n this.selectedOption = val as string;\n }\n this.requestUpdate();\n // Defer indicator update to next frame if component not yet updated\n if (this.hasUpdated) {\n requestAnimationFrame(() => {\n this.setIndicator();\n });\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n user-select: none;\n }\n\n .selections {\n position: relative;\n display: inline-flex;\n align-items: center;\n background: ${cssManager.bdTheme('#ffffff', '#18181b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n padding: 4px;\n border-radius: 8px;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n }\n\n .option {\n position: relative;\n padding: 8px 20px;\n border-radius: 6px;\n cursor: pointer;\n white-space: nowrap;\n transition: color 0.2s ease;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n line-height: 1;\n z-index: 2;\n }\n\n .option:hover {\n color: ${cssManager.bdTheme('#18181b', '#e4e4e7')};\n }\n\n .option.selected {\n color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n }\n\n .indicator {\n opacity: 0;\n position: absolute;\n height: calc(100% - 8px);\n top: 4px;\n border-radius: 6px;\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.15)', 'rgba(59, 130, 246, 0.15)')};\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n z-index: 1;\n }\n \n .indicator.no-transition {\n transition: none;\n }\n \n :host([disabled]) .selections {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n :host([disabled]) .option {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n :host([disabled]) .indicator {\n background: ${cssManager.bdTheme('rgba(113, 113, 122, 0.15)', 'rgba(113, 113, 122, 0.15)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n \n
\n
\n
\n ${this.options.map(\n (option) =>\n html`
this.handleSelection(option)}>\n ${option}\n
`\n )}\n
\n
\n
\n `;\n }\n\n public async connectedCallback() {\n await super.connectedCallback();\n // Initialize boolean options early\n if (this.type === 'boolean' && this.options.length === 0) {\n this.options = [this.booleanTrueName || 'true', this.booleanFalseName || 'false'];\n // Set default selection for boolean if not set\n if (!this.selectedOption) {\n this.selectedOption = this.booleanFalseName || 'false';\n }\n }\n // Set default selection to first option if not set\n if (!this.selectedOption && this.options.length > 0) {\n this.selectedOption = this.options[0];\n }\n }\n\n public async firstUpdated(_changedProperties: Map) {\n super.firstUpdated(_changedProperties);\n // Update boolean options if they changed\n if (this.type === 'boolean') {\n this.options = [this.booleanTrueName || 'true', this.booleanFalseName || 'false'];\n }\n // Wait for the next frame to ensure DOM is fully rendered\n await this.updateComplete;\n \n // Wait for fonts to load\n if (document.fonts) {\n await document.fonts.ready;\n }\n \n // Wait one more frame after fonts are loaded\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Now set the indicator\n this.setIndicator();\n }\n\n public async handleSelection(optionArg: string) {\n if (this.disabled) return;\n this.selectedOption = optionArg;\n this.requestUpdate();\n this.changeSubject.next(this);\n await this.updateComplete;\n this.setIndicator();\n }\n \n private indicatorInitialized = false;\n\n public async setIndicator() {\n const indicator: HTMLDivElement = this.shadowRoot.querySelector('.indicator');\n const selectedIndex = this.options.indexOf(this.selectedOption);\n \n // If no valid selection, hide indicator\n if (selectedIndex === -1 || !indicator) {\n if (indicator) {\n indicator.style.opacity = '0';\n }\n return;\n }\n \n const option: HTMLDivElement = this.shadowRoot.querySelector(\n `.option:nth-child(${selectedIndex + 2})`\n );\n \n if (indicator && option) {\n // Only disable transition for the very first positioning\n if (!this.indicatorInitialized) {\n indicator.classList.add('no-transition');\n this.indicatorInitialized = true;\n \n // Remove the no-transition class after a brief delay\n setTimeout(() => {\n indicator.classList.remove('no-transition');\n }, 50);\n }\n \n indicator.style.width = `${option.clientWidth}px`;\n indicator.style.left = `${option.offsetLeft}px`;\n indicator.style.opacity = '1';\n }\n }\n\n public getValue(): string | boolean {\n if (this.type === 'boolean') {\n return this.selectedOption === this.booleanTrueName;\n }\n return this.selectedOption;\n }\n\n public setValue(value: string | boolean): void {\n if (this.type === 'boolean' && typeof value === 'boolean') {\n this.selectedOption = value ? (this.booleanTrueName || 'true') : (this.booleanFalseName || 'false');\n } else {\n this.selectedOption = value as string;\n }\n this.requestUpdate();\n if (this.hasUpdated) {\n requestAnimationFrame(() => {\n this.setIndicator();\n });\n }\n }\n}\n", "import { html, css } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n \n \n
\n \n
\n \n\n \n
\n
\n \n \n
\n \n \n \n
\n
\n \n \n
\n \n\n \n
\n
\n \n \n \n \n \n \n \n \n
\n
\n`;", "import {\n customElement,\n type TemplateResult,\n property,\n state,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-phone.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-phone': DeesInputPhone;\n }\n}\n\n@customElement('dees-input-phone')\nexport class DeesInputPhone extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @state()\n accessor formattedPhone: string = '';\n\n @property({ type: String })\n accessor value: string = '';\n\n @property({ type: String })\n accessor placeholder: string = '+1 (555) 123-4567';\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n /* Phone input specific styles can go here */\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n \n this.handlePhoneInput(event)}\n >\n
\n `;\n }\n\n public firstUpdated(_changedProperties: Map) {\n super.firstUpdated(_changedProperties);\n // Initialize formatted phone from value\n if (this.value) {\n this.formattedPhone = this.formatPhoneNumber(this.value);\n }\n \n // Subscribe to the inner input's changes\n const innerInput = this.shadowRoot.querySelector('dees-input-text') as any;\n if (innerInput && innerInput.changeSubject) {\n innerInput.changeSubject.subscribe(() => {\n this.changeSubject.next(this);\n });\n }\n }\n\n private handlePhoneInput(event: InputEvent) {\n const input = event.target as HTMLInputElement;\n const cleanedValue = this.cleanPhoneNumber(input.value);\n const formatted = this.formatPhoneNumber(cleanedValue);\n \n // Update the input with formatted value\n if (input.value !== formatted) {\n const cursorPosition = input.selectionStart || 0;\n input.value = formatted;\n \n // Try to maintain cursor position intelligently\n const newCursorPos = this.calculateCursorPosition(cleanedValue, formatted, cursorPosition);\n input.setSelectionRange(newCursorPos, newCursorPos);\n }\n \n this.formattedPhone = formatted;\n this.value = cleanedValue;\n this.changeSubject.next(this);\n }\n\n private cleanPhoneNumber(value: string): string {\n // Remove all non-numeric characters\n return value.replace(/\\D/g, '');\n }\n\n private formatPhoneNumber(value: string): string {\n // Basic US phone number formatting\n // This can be enhanced to support international formats\n const cleaned = this.cleanPhoneNumber(value);\n \n if (cleaned.length === 0) return '';\n if (cleaned.length <= 3) return cleaned;\n if (cleaned.length <= 6) return `(${cleaned.slice(0, 3)}) ${cleaned.slice(3)}`;\n if (cleaned.length <= 10) return `(${cleaned.slice(0, 3)}) ${cleaned.slice(3, 6)}-${cleaned.slice(6)}`;\n \n // For numbers longer than 10 digits, format as international\n return `+${cleaned.slice(0, cleaned.length - 10)} (${cleaned.slice(-10, -7)}) ${cleaned.slice(-7, -4)}-${cleaned.slice(-4)}`;\n }\n\n private calculateCursorPosition(cleaned: string, formatted: string, oldPos: number): number {\n // Simple cursor position calculation\n // Count how many formatting characters are before the cursor\n let formattingChars = 0;\n for (let i = 0; i < oldPos && i < formatted.length; i++) {\n if (!/\\d/.test(formatted[i])) {\n formattingChars++;\n }\n }\n return Math.min(oldPos + formattingChars, formatted.length);\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n this.formattedPhone = this.formatPhoneNumber(value);\n }\n}", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesInputToggle } from './dees-input-toggle.js';\n\nexport const demoFunc = () => html`\n {\n // Example of programmatic interaction\n const toggleAllOnBtn = elementArg.querySelector('#toggle-all-on');\n const toggleAllOffBtn = elementArg.querySelector('#toggle-all-off');\n const featureToggles = elementArg.querySelectorAll('.feature-toggles dees-input-toggle');\n\n if (toggleAllOnBtn && toggleAllOffBtn) {\n toggleAllOnBtn.addEventListener('click', () => {\n featureToggles.forEach((toggle: DeesInputToggle) => {\n if (!toggle.disabled && !toggle.required) {\n toggle.value = true;\n }\n });\n });\n\n toggleAllOffBtn.addEventListener('click', () => {\n featureToggles.forEach((toggle: DeesInputToggle) => {\n if (!toggle.disabled && !toggle.required) {\n toggle.value = false;\n }\n });\n });\n }\n }}>\n \n\n
\n \n
\n \n\n \n\n \n
\n

Tip: You can drag the toggle knob to switch states

\n
\n\n \n
\n \n\n \n\n \n\n \n\n \n
\n
\n\n \n
\n \n\n \n\n \n\n \n
\n
\n\n \n
\n

Notification Settings

\n\n
\n \n\n \n\n \n\n \n
\n
\n
\n\n \n
\n Enable All\n Disable All\n
\n\n
\n
\n \n\n \n\n \n\n \n\n \n
\n
\n
\n\n \n
\n {\n const output = document.querySelector('#airplane-output');\n if (output) {\n output.textContent = `Airplane mode: ${event.detail ? 'ON' : 'OFF'}`;\n }\n }}\n >\n\n {\n const output = document.querySelector('#dnd-output');\n if (output) {\n output.textContent = `Do not disturb: ${event.detail ? 'ENABLED' : 'DISABLED'}`;\n }\n }}\n >\n
\n\n
\n
Airplane mode: OFF
\n
Do not disturb: DISABLED
\n
\n
\n
\n
\n`;\n", "import {\n customElement,\n type TemplateResult,\n property,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-toggle.demo.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-toggle': DeesInputToggle;\n }\n}\n\n@customElement('dees-input-toggle')\nexport class DeesInputToggle extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n\n @property({ type: Boolean, reflect: true })\n accessor value: boolean = false;\n\n /**\n * Knob position tracking (0 = off, maxTravel = on)\n */\n private currentX = 0;\n\n /**\n * Drag state\n */\n private isDragging = false;\n private hasDragged = false;\n private startX = 0;\n\n // Toggle dimensions\n private readonly trackWidth = 36;\n private readonly trackHeight = 20;\n private readonly knobSize = 14;\n private readonly padding = 2;\n private readonly maxTravel = 16; // trackWidth - knobSize - (padding * 2) - border\n\n constructor() {\n super();\n this.labelPosition = 'right'; // Toggle defaults to label on the right\n }\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n * {\n box-sizing: border-box;\n }\n\n :host {\n position: relative;\n cursor: default;\n font-family: ${cssGeistFontFamily};\n }\n\n .maincontainer {\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n cursor: pointer;\n user-select: none;\n transition: all 0.15s ease;\n }\n\n .toggle-track {\n position: relative;\n flex-shrink: 0;\n height: 20px;\n width: 36px;\n border-radius: 10px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n overflow: hidden;\n transition: all 0.15s ease;\n margin-top: 1px;\n }\n\n .maincontainer:hover .toggle-track {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n :host([value]) .toggle-track {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n }\n\n .toggle-track:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .toggle-knob {\n position: absolute;\n top: 2px;\n width: 14px;\n height: 14px;\n border-radius: 7px;\n background: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n transition: left 0.15s ease, background 0.15s ease;\n touch-action: none;\n }\n\n .toggle-knob.dragging {\n transition: background 0.15s ease;\n }\n\n :host([value]) .toggle-knob {\n background: white;\n }\n\n /* Disabled state */\n .maincontainer.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .toggle-track.disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n /* Required state (locked on) */\n :host([required][value]) .toggle-track {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 61.2%)', 'hsl(217.2 91.2% 49.8%)')};\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 61.2%)', 'hsl(217.2 91.2% 49.8%)')};\n cursor: not-allowed;\n }\n\n :host([required][value]) .toggle-knob {\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 70%)')};\n }\n\n /* Label */\n .label-container {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n }\n\n .toggle-label {\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n transition: color 0.15s ease;\n letter-spacing: -0.01em;\n }\n\n .maincontainer:hover .toggle-label {\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .maincontainer.disabled:hover .toggle-label {\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n /* Description */\n .description-text {\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n line-height: 1.5;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n
\n \n
\n
\n
\n ${this.label ? html`
${this.label}
` : ''}\n ${this.description ? html`
${this.description}
` : ''}\n
\n \n \n `;\n }\n\n public async firstUpdated(_changedProperties: Map) {\n await super.firstUpdated(_changedProperties);\n // Initialize knob position based on initial value\n if (this.required && !this.value) {\n this.value = true;\n }\n this.currentX = this.value ? this.maxTravel : 0;\n this.requestUpdate();\n }\n\n /**\n * Click handler - toggles the value\n */\n private async handleClick(event: MouseEvent) {\n if (this.isDragging || this.hasDragged) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n\n if (this.disabled) {\n return;\n }\n\n if (this.required) {\n // Bounce animation for required toggles\n this.currentX = this.maxTravel;\n this.requestUpdate();\n await new Promise((r) => setTimeout(r, 10));\n this.currentX = this.maxTravel - 3;\n this.requestUpdate();\n await domtools.plugins.smartdelay.delayFor(150);\n this.currentX = this.maxTravel;\n this.requestUpdate();\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n this.value = !this.value;\n this.currentX = this.value ? this.maxTravel : 0;\n this.requestUpdate();\n\n this.dispatchEvent(\n new CustomEvent('newValue', {\n detail: this.value,\n bubbles: true,\n })\n );\n this.changeSubject.next(this);\n\n domtools.plugins.smartdelay.delayFor(0).then(() => {\n this.hasDragged = false;\n });\n }\n\n /**\n * Pointer down - start dragging\n */\n private onPointerDown(event: PointerEvent) {\n if (this.required || this.disabled) {\n return;\n }\n\n this.isDragging = true;\n this.startX = event.clientX - this.currentX;\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n }\n\n /**\n * Pointer move - track drag position\n */\n private onPointerMove(event: PointerEvent) {\n if (!this.isDragging) return;\n const newX = event.clientX - this.startX;\n this.hasDragged = true;\n\n const toggleKnob = this.shadowRoot?.querySelector('.toggle-knob') as HTMLDivElement;\n if (toggleKnob) {\n toggleKnob.classList.add('dragging');\n }\n\n this.currentX = Math.max(0, Math.min(newX, this.maxTravel));\n this.requestUpdate();\n }\n\n /**\n * Pointer up - complete drag and snap to nearest side\n */\n private onPointerUp(event: PointerEvent) {\n if (!this.isDragging) return;\n (event.target as HTMLElement).releasePointerCapture(event.pointerId);\n this.isDragging = false;\n\n if (!this.hasDragged) {\n return;\n }\n\n const toggleKnob = this.shadowRoot?.querySelector('.toggle-knob') as HTMLDivElement;\n if (toggleKnob) {\n toggleKnob.classList.remove('dragging');\n }\n\n // Snap to nearest side based on midpoint\n const midpoint = this.maxTravel / 2;\n this.value = this.currentX > midpoint;\n this.currentX = this.value ? this.maxTravel : 0;\n this.requestUpdate();\n\n this.dispatchEvent(\n new CustomEvent('newValue', {\n detail: this.value,\n bubbles: true,\n })\n );\n this.changeSubject.next(this);\n\n domtools.plugins.smartdelay.delayFor(0).then(() => {\n this.hasDragged = false;\n });\n }\n\n /**\n * Sync knob position when value is changed externally\n */\n updated(changedProperties: Map): void {\n super.updated(changedProperties);\n if (\n changedProperties.has('value') &&\n !this.isDragging &&\n !this.hasDragged\n ) {\n this.currentX = this.value ? this.maxTravel : 0;\n this.requestUpdate();\n }\n }\n\n /**\n * Keyboard support\n */\n private handleKeydown(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.handleClick(event as unknown as MouseEvent);\n }\n }\n\n // DeesInputBase interface implementation\n public getValue(): boolean {\n return this.value;\n }\n\n public setValue(valueArg: boolean): void {\n this.value = valueArg;\n }\n\n public focus(): void {\n const track = this.shadowRoot?.querySelector('.toggle-track');\n if (track) {\n (track as HTMLElement).focus();\n }\n }\n}\n", "import { html, css } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n \n \n
\n \n
\n \n\n \n
\n
\n \n \n
\n \n\n
\n \n \n \n
\n
\n
\n \n \n
\n \n\n \n
\n
\n \n \n \n \n \n \n \n \n \n
\n Tip: Type a value and press Enter to add it to the list. Click on any item to remove it.\n
\n
\n
\n
\n`;", "import {\n customElement,\n type TemplateResult,\n state,\n html,\n property,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\n\nimport { demoFunc } from './dees-input-typelist.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-input-typelist')\nexport class DeesInputTypelist extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n\n // INSTANCE\n\n @property({ type: Array })\n accessor value: string[] = [];\n\n @state()\n accessor inputValue: string = '';\n\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('#333', '#fff')};\n }\n .mainbox {\n border-radius: 3px;\n background: ${cssManager.bdTheme('#fafafa', '#222222')};\n overflow: hidden;\n border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};\n border-bottom: ${cssManager.bdTheme('1px solid #CCC', '1px solid #222')};\n border-right: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};\n border-left: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};\n box-shadow: ${cssManager.bdTheme('0px 1px 4px rgba(0,0,0,0.3)', 'none')};\n transition: all 0.2s;\n position: relative;\n }\n \n .mainbox:hover {\n filter: ${cssManager.bdTheme('brightness(0.98)', 'brightness(1.05)')};\n }\n \n .mainbox:focus-within {\n outline: 2px solid ${cssManager.bdTheme('#0069f2', '#0084ff')};\n outline-offset: -2px;\n }\n\n .tags {\n padding: 16px;\n cursor: default;\n }\n\n .notags {\n text-align: center;\n color: ${cssManager.bdTheme('#999', '#666')};\n font-size: 13px;\n font-style: italic;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n background: ${cssManager.bdTheme('#f5f5f5', '#181818')};\n width: 100%;\n outline: none;\n border: none;\n color: inherit;\n padding: 0px 16px;\n overflow: hidden;\n line-height: 32px;\n height: 0px;\n transition: height 0.2s;\n border-top: 1px solid ${cssManager.bdTheme('#e0e0e0', '#333')};\n }\n\n input:focus {\n height: 32px;\n background: ${cssManager.bdTheme('#fafafa', '#1a1a1a')};\n }\n \n input::placeholder {\n color: ${cssManager.bdTheme('#999', '#666')};\n }\n\n .tag {\n display: inline-block;\n background: ${cssManager.bdTheme('#e8f5e9', '#2d3a2d')};\n color: ${cssManager.bdTheme('#2e7d32', '#81c784')};\n padding: 4px 10px;\n border-radius: 4px;\n margin: 3px;\n font-size: 13px;\n font-weight: 500;\n transition: all 0.2s;\n border: 1px solid ${cssManager.bdTheme('#c8e6c9', '#1b5e20')};\n }\n \n .tag:hover {\n background: ${cssManager.bdTheme('#c8e6c9', '#3d4f3d')};\n transform: translateY(-1px);\n }\n\n .tag .remove {\n margin-left: 8px;\n cursor: pointer;\n opacity: 0.7;\n font-weight: 700;\n font-size: 16px;\n line-height: 1;\n transition: opacity 0.2s;\n }\n\n .tag .remove:hover {\n opacity: 1;\n color: ${cssManager.bdTheme('#c62828', '#ef5350')};\n }\n \n /* Disabled state */\n :host([disabled]) .mainbox {\n opacity: 0.6;\n cursor: not-allowed;\n }\n \n :host([disabled]) .tags {\n cursor: not-allowed;\n }\n \n :host([disabled]) .tag {\n pointer-events: none;\n }\n \n :host([disabled]) input {\n cursor: not-allowed;\n background: ${cssManager.bdTheme('#f0f0f0', '#1a1a1a')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n \n
\n
{\n this.shadowRoot.querySelector('input').focus();\n }}>\n ${this.value.length === 0\n ? html`
No tags yet
`\n : this.value.map(\n (tag) => html`\n \n ${tag}\n {\n e.stopPropagation();\n this.removeTag(tag);\n }}>\u00D7\n \n `\n )}\n
\n {\n this.inputValue = (e.target as HTMLInputElement).value;\n }}\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' && this.inputValue.trim()) {\n e.preventDefault();\n this.addTag(this.inputValue.trim());\n }\n }}\n .disabled=${this.disabled}\n />\n
\n
\n `;\n }\n\n private addTag(tag: string) {\n if (!this.value.includes(tag)) {\n this.value = [...this.value, tag];\n this.inputValue = '';\n this.changeSubject.next(this);\n }\n }\n\n private removeTag(tag: string) {\n this.value = this.value.filter((t) => t !== tag);\n this.changeSubject.next(this);\n }\n\n public getValue(): string[] {\n return this.value;\n }\n\n public setValue(value: string[]): void {\n this.value = value;\n }\n}\n", "import { type ITableAction } from './dees-table.js';\nimport * as plugins from '../../00plugins.js';\nimport { html, css, cssManager } from '@design.estate/dees-element';\n\ninterface ITableDemoData {\n date: string;\n amount: string;\n description: string;\n}\n\nexport const demoFunc = () => html`\n \n
\n {\n document.body.classList.toggle('bright');\n document.body.classList.toggle('dark');\n }}>Toggle Theme\n \n
\n
\n

Basic Table with Actions

\n

A standard table with row actions, editable fields, and context menu support. Double-click on descriptions to edit. Grid lines are enabled by default.

\n {\n alert(optionsArg.item.amount);\n },\n },\n {\n name: 'visibility',\n iconName: 'copy',\n type: ['inRow'],\n useTableBehaviour: 'preview',\n actionFunc: async (itemArg: any) => {},\n },\n {\n name: 'create new',\n iconName: 'instagram',\n type: ['header'],\n useTableBehaviour: 'preview',\n actionFunc: async (itemArg: any) => {},\n },\n {\n name: 'to gallery',\n iconName: 'message',\n type: ['footer'],\n useTableBehaviour: 'preview',\n actionFunc: async (itemArg: any) => {},\n },\n {\n name: 'copy',\n iconName: 'copySolid',\n type: ['contextmenu', 'inRow'],\n action: async () => {\n return null;\n },\n },\n {\n name: 'edit (from demo)',\n iconName: 'penToSquare',\n type: ['contextmenu'],\n action: async () => {\n return null;\n },\n },\n {\n name: 'paste',\n iconName: 'pasteSolid',\n type: ['contextmenu'],\n action: async () => {\n return null;\n },\n },\n {\n name: 'preview',\n type: ['doubleClick', 'contextmenu'],\n iconName: 'eye',\n actionFunc: async (itemArg) => {\n alert(itemArg.item.amount);\n return null;\n },\n }\n ] as ITableAction[]}\"\n >\n
\n \n
\n

Table with Vertical Lines

\n

Enhanced column separation for better data tracking.

\n \n
\n \n
\n

Table with Full Grid

\n

Complete grid lines for maximum readability and structure.

\n {\n console.log('Connecting to:', optionsArg.item.server);\n },\n },\n {\n name: 'View Logs',\n iconName: 'lucide:file-text',\n type: ['inRow', 'contextmenu'],\n actionFunc: async (optionsArg) => {\n console.log('Viewing logs for:', optionsArg.item.server);\n },\n },\n {\n name: 'Restart Server',\n iconName: 'lucide:refresh-cw',\n type: ['contextmenu'],\n actionFunc: async (optionsArg) => {\n console.log('Restarting:', optionsArg.item.server);\n },\n }\n ] as ITableAction[]}\"\n >\n
\n \n
\n

Table with Horizontal Lines Only

\n

Emphasis on row separation without column dividers.

\n \n
\n \n
\n

Simple Table (No Grid)

\n

Clean, minimal design without grid lines. Set showGrid to false to disable the default grid.

\n \n
\n \n
\n

Table with Custom Display Function

\n

Transform data for display using custom formatting.

\n ({\n Product: item.product,\n 'Units Sold': item.units.toLocaleString(),\n Revenue: '$' + item.revenue.toLocaleString(),\n Growth: (item.growth * 100).toFixed(1) + '%',\n 'Q1 2024 Forecast': '$' + item.forecast.toLocaleString()\n })}\n dataName=\"products\"\n >\n
\n \n
\n

Empty Table State

\n

How the table looks when no data is available.

\n \n
\n\n
\n

Schema-First Columns (New)

\n

Defines columns explicitly and renders via schema. No displayFunction needed.

\n html`${v}` },\n { key: 'joinedAt', header: 'Joined', renderer: (v: string) => new Date(v).toLocaleDateString() },\n ]}\n .data=${[\n { name: 'Alice', email: 'alice@example.com', joinedAt: '2022-08-01' },\n { name: 'Bob', email: 'bob@example.com', joinedAt: '2021-12-11' },\n { name: 'Carol', email: 'carol@example.com', joinedAt: '2023-03-22' },\n ]}\n dataName=\"users\"\n >\n
\n\n
\n

Partial Schema + Augment (New)

\n

Provides only the important columns; the rest are merged in from displayFunction.

\n ({ name: u.name, email: u.email, role: u.role })}\n .augmentFromDisplayFunction=${true}\n .data=${[\n { name: 'Erin', email: 'erin@example.com', role: 'Admin' },\n { name: 'Finn', email: 'finn@example.com', role: 'User' },\n { name: 'Gina', email: 'gina@example.com', role: 'User' },\n ]}\n dataName=\"users\"\n >\n
\n\n
{ console.log('Selection changed', e.detail); }}\n @search-changed=${(e: CustomEvent) => {\n const tbl = document.getElementById('tableFilterSelectDemo') as any;\n if (tbl) tbl.setFilterText(e.detail.value);\n }}\n @search-submit=${(e: CustomEvent) => {\n const tbl = document.getElementById('tableFilterSelectDemo') as any;\n if (tbl) tbl.setFilterText(e.detail.value);\n }}\n >\n

Filtering + Multi-Selection (New)

\n

Use the search bar to filter rows; toggle selection via checkboxes. Click headers to sort.

\n \n
\n \n
\n\n
\n

Column Filters + Sticky Header (New)

\n

Per-column quick filters and sticky header with internal scroll. Try filtering the Name column. Uses --table-max-height var.

\n \n \n
\n\n
{\n const { query } = e.detail || { query: '' };\n const table = document.getElementById('serverSearchDemo') as any;\n const baseData = [\n { id: 1, name: 'Alice', city: 'Berlin', title: 'Engineer' },\n { id: 2, name: 'Bob', city: 'Paris', title: 'Designer' },\n { id: 3, name: 'Charlie', city: 'London', title: 'Manager' },\n { id: 4, name: 'Diana', city: 'Madrid', title: 'Engineer' },\n { id: 5, name: 'Ethan', city: 'Rome', title: 'Support' },\n ];\n // Simulate async request\n await new Promise((r) => setTimeout(r, 300));\n const q = String(query || '').toLowerCase();\n const filtered = q\n ? baseData.filter((r) => Object.values(r).some((v) => String(v).toLowerCase().includes(q)))\n : baseData;\n table.data = filtered;\n }}\n >\n

Server Search (New)

\n

Select Server mode, type a query, and watch the table fetch simulated results.

\n \n
\n\n
\n

Wide Properties + Many Actions

\n

A table with many columns and rich actions to stress test layout and sticky Actions.

\n { console.log('view', item); } },\n { name: 'Edit', iconName: 'lucide:edit', type: ['inRow', 'contextmenu'], actionFunc: async ({ item }) => { console.log('edit', item); } },\n { name: 'Delete', iconName: 'lucide:trash', type: ['inRow', 'contextmenu'], actionFunc: async ({ item }) => { console.log('delete', item); } },\n { name: 'Message', iconName: 'lucide:message-square', type: ['inRow'], actionFunc: async ({ item }) => { console.log('message', item); } },\n { name: 'History', iconName: 'lucide:clock', type: ['inRow'], actionFunc: async ({ item }) => { console.log('history', item); } },\n { name: 'Add New', iconName: 'lucide:plus', type: ['header'], actionFunc: async ({ table }) => { console.log('add'); } },\n { name: 'Export CSV', iconName: 'lucide:download', type: ['header'], actionFunc: async ({ table }) => { console.log('export'); } },\n { name: 'Bulk Delete', iconName: 'lucide:trash-2', type: ['footer'], actionFunc: async ({ table }) => { console.log('bulk delete'); } },\n ] as ITableAction[]}\n >\n
\n\n
\n

Scrollable Small Height

\n

Same as above, but with many items and a small fixed height to force vertical scrolling inside the table. Actions remain visible on the right; horizontal scroll appears if needed.

\n \n ({\n id: i + 1,\n name: `User ${i + 1}`,\n role: ['Engineer','Designer','Manager','QA','Support'][i % 5],\n department: ['R&D','Design','Ops','QA','CS'][i % 5],\n email: `user${i+1}@corp.com`,\n phone: `+1 202 555 ${String(1000 + i).slice(-4)}`,\n location: ['Berlin','Paris','London','Madrid','Rome'][i % 5],\n status: ['Active','Inactive','On Leave'][i % 3],\n createdAt: `2023-${String((i%12)+1).padStart(2,'0')}-${String((i%28)+1).padStart(2,'0')}`,\n updatedAt: `2024-${String(((i+3)%12)+1).padStart(2,'0')}-${String(((i+7)%28)+1).padStart(2,'0')}`,\n lastLogin: `2024-${String(((i+6)%12)+1).padStart(2,'0')}-${String(((i+10)%28)+1).padStart(2,'0')}`,\n projects: (i % 12),\n tags: i % 2 ? 'typescript' : 'design',\n notes: i % 3 ? '' : 'Note',\n }))}\n .dataActions=${[\n { name: 'View', iconName: 'lucide:eye', type: ['inRow'], actionFunc: async ({ item }) => {} },\n { name: 'Edit', iconName: 'lucide:edit', type: ['inRow'], actionFunc: async ({ item }) => {} },\n { name: 'Delete', iconName: 'lucide:trash', type: ['inRow'], actionFunc: async ({ item }) => {} },\n ] as ITableAction[]}\n >\n
\n
\n
\n`;\n", "import { cssManager, css, type CSSResult } from '@design.estate/dees-element';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nexport const tableStyles: CSSResult[] = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n width: 100%;\n }\n\n .mainbox {\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n font-family: ${cssGeistFontFamily};\n font-weight: 400;\n font-size: 14px;\n display: block;\n width: 100%;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n overflow: hidden;\n cursor: default;\n }\n\n .header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 24px;\n min-height: 64px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .headingContainer {\n flex: 1;\n }\n\n .heading {\n line-height: 1.5;\n }\n\n .heading1 {\n font-size: 18px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n letter-spacing: -0.025em;\n }\n \n .heading2 {\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n margin-top: 2px;\n }\n\n .headingSeparation {\n display: none;\n }\n\n .headerActions {\n user-select: none;\n display: flex;\n flex-direction: row;\n gap: 8px;\n }\n \n .headerAction {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .headerAction:hover {\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .headerAction dees-icon {\n width: 14px;\n height: 14px;\n }\n\n .searchGrid {\n display: grid;\n grid-gap: 16px;\n grid-template-columns: 1fr max-content;\n padding: 16px 24px;\n background: ${cssManager.bdTheme('hsl(210 40% 98%)', 'hsl(0 0% 3.9%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n transition: all 0.2s ease;\n }\n\n @media (max-width: 900px) {\n .searchGrid {\n grid-template-columns: 1fr;\n }\n }\n\n /* let search mode size to content (no forced width) */\n\n .searchGrid.hidden {\n height: 0px;\n opacity: 0;\n overflow: hidden;\n padding: 0px 24px;\n border-bottom-width: 0px;\n }\n\n .tableScroll {\n /* enable horizontal scroll only when content exceeds width */\n overflow-x: auto;\n /* prevent vertical scroll inside the table container */\n overflow-y: hidden;\n /* avoid reserving extra space for classic scrollbars where possible */\n scrollbar-gutter: stable both-edges;\n }\n /* Hide horizontal scrollbar entirely when not using sticky header */\n :host(:not([sticky-header])) .tableScroll {\n -ms-overflow-style: none; /* IE/Edge */\n scrollbar-width: none; /* Firefox (hides both axes) */\n }\n :host(:not([sticky-header])) .tableScroll::-webkit-scrollbar {\n display: none; /* Chrome/Safari */\n }\n /* In sticky-header mode, hide only the horizontal scrollbar in WebKit/Blink */\n :host([sticky-header]) .tableScroll::-webkit-scrollbar:horizontal {\n height: 0px;\n }\n :host([sticky-header]) .tableScroll {\n max-height: var(--table-max-height, 360px);\n overflow: auto;\n }\n\n table {\n /* allow table to grow wider than container so actions column can stick */\n width: max-content;\n min-width: 100%;\n caption-side: bottom;\n font-size: 14px;\n border-collapse: separate;\n border-spacing: 0;\n }\n \n .noDataSet {\n padding: 48px 24px;\n text-align: center;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n }\n \n thead {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 9%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n :host([sticky-header]) thead th {\n position: sticky;\n top: 0;\n z-index: 2;\n }\n \n tbody tr {\n transition: background-color 0.15s ease;\n position: relative;\n }\n \n /* Default horizontal lines (bottom border only) */\n tbody tr {\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n tbody tr:last-child {\n border-bottom: none;\n }\n \n /* Full horizontal lines when enabled */\n :host([show-horizontal-lines]) tbody tr {\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n :host([show-horizontal-lines]) tbody tr:first-child {\n border-top: none;\n }\n \n :host([show-horizontal-lines]) tbody tr:last-child {\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n tbody tr:hover {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1% / 0.5)', 'hsl(0 0% 14.9% / 0.5)')};\n }\n \n /* Column hover effect for better traceability */\n td {\n position: relative;\n }\n \n td::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: ${cssManager.bdTheme('hsl(210 40% 96.1% / 0.3)', 'hsl(0 0% 14.9% / 0.3)')};\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease;\n z-index: -1;\n }\n \n td:hover::after {\n opacity: 1;\n }\n \n /* Grid mode - shows both vertical and horizontal lines */\n :host([show-grid]) th {\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-left: none;\n border-top: none;\n }\n \n :host([show-grid]) td {\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-left: none;\n border-top: none;\n }\n \n :host([show-grid]) th:first-child,\n :host([show-grid]) td:first-child {\n border-left: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n :host([show-grid]) tbody tr:first-child td {\n border-top: none;\n }\n\n /* Sticky Actions column (right pinned) */\n thead th.actionsCol,\n tbody td.actionsCol {\n position: sticky;\n right: 0;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n }\n thead th.actionsCol { z-index: 3; }\n tbody td.actionsCol {\n z-index: 1;\n box-shadow: -1px 0 0 0 ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n tbody tr.selected {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 14.9%)')};\n }\n\n tbody tr.hasAttachment {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3% / 0.1)', 'hsl(142.1 76.2% 36.3% / 0.1)')};\n }\n\n th {\n height: 48px;\n padding: 12px 24px;\n text-align: left;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n letter-spacing: -0.01em;\n }\n \n :host([show-vertical-lines]) th {\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n td {\n padding: 12px 24px;\n vertical-align: middle;\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n }\n \n :host([show-vertical-lines]) td {\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n th:first-child,\n td:first-child {\n padding-left: 24px;\n }\n \n th:last-child,\n td:last-child {\n padding-right: 24px;\n }\n \n :host([show-vertical-lines]) th:last-child,\n :host([show-vertical-lines]) td:last-child {\n border-right: none;\n }\n \n .innerCellContainer {\n position: relative;\n min-height: 24px;\n line-height: 24px;\n }\n td input {\n position: absolute;\n top: 4px;\n bottom: 4px;\n left: 20px;\n right: 20px;\n width: calc(100% - 40px);\n height: calc(100% - 8px);\n padding: 0 12px;\n outline: none;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n transition: all 0.15s ease;\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n }\n \n td input:focus {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.2)', 'hsl(217.2 91.2% 59.8% / 0.2)')};\n }\n\n /* filter row */\n thead tr.filtersRow th {\n padding: 8px 12px 12px 12px;\n }\n thead tr.filtersRow th input[type='text'] {\n width: 100%;\n box-sizing: border-box;\n padding: 6px 8px;\n font-size: 13px;\n border-radius: 6px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n }\n .actionsContainer {\n display: flex;\n flex-direction: row;\n gap: 4px;\n }\n \n .action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 6px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .action:hover {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .action:active {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 11.8%)')};\n }\n \n .action dees-icon {\n width: 16px;\n height: 16px;\n }\n\n .footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 52px;\n padding: 0 24px;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 9%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .tableStatistics {\n font-weight: 500;\n }\n\n .footerActions {\n display: flex;\n gap: 8px;\n }\n\n .footerActions .footerAction {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n border-radius: 6px;\n cursor: pointer;\n user-select: none;\n transition: all 0.15s ease;\n }\n\n .footerActions .footerAction:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .footerActions .footerAction dees-icon {\n width: 14px;\n height: 14px;\n }\n `,\n];\n", "import type { Column, TDisplayFunction } from './types.js';\n\nexport function computeColumnsFromDisplayFunction(\n displayFunction: TDisplayFunction,\n data: T[]\n): Column[] {\n if (!data || data.length === 0) return [];\n const firstTransformedItem = displayFunction(data[0]);\n const keys: string[] = Object.keys(firstTransformedItem);\n return keys.map((key) => ({\n key,\n header: key,\n value: (row: T) => displayFunction(row)[key],\n }));\n}\n\nexport function computeEffectiveColumns(\n columns: Column[] | undefined,\n augmentFromDisplayFunction: boolean,\n displayFunction: TDisplayFunction,\n data: T[]\n): Column[] {\n const base = (columns || []).slice();\n if (!augmentFromDisplayFunction) return base;\n const fromDisplay = computeColumnsFromDisplayFunction(displayFunction, data);\n const existingKeys = new Set(base.map((c) => String(c.key)));\n for (const col of fromDisplay) {\n if (!existingKeys.has(String(col.key))) {\n base.push(col);\n }\n }\n return base;\n}\n\nexport function getCellValue(row: T, col: Column, displayFunction?: TDisplayFunction): any {\n return col.value ? col.value(row) : (row as any)[col.key as any];\n}\n\nexport function getViewData(\n data: T[],\n effectiveColumns: Column[],\n sortKey?: string,\n sortDir?: 'asc' | 'desc' | null,\n filterText?: string,\n columnFilters?: Record,\n filterMode: 'table' | 'data' = 'table',\n lucenePredicate?: (row: T) => boolean\n): T[] {\n let arr = data.slice();\n const ft = (filterText || '').trim().toLowerCase();\n const cf = columnFilters || {};\n const cfKeys = Object.keys(cf).filter((k) => (cf[k] ?? '').trim().length > 0);\n if (ft || cfKeys.length > 0) {\n arr = arr.filter((row) => {\n // column filters (AND across columns)\n for (const k of cfKeys) {\n if (filterMode === 'data') {\n // raw object check for that key\n const val = (row as any)[k];\n const s = String(val ?? '').toLowerCase();\n const needle = String(cf[k]).toLowerCase();\n if (!s.includes(needle)) return false;\n } else {\n const col = effectiveColumns.find((c) => String(c.key) === k);\n if (!col || col.hidden || col.filterable === false) continue;\n const val = getCellValue(row, col);\n const s = String(val ?? '').toLowerCase();\n const needle = String(cf[k]).toLowerCase();\n if (!s.includes(needle)) return false;\n }\n }\n // global filter (OR across visible columns) or lucene predicate\n if (ft) {\n if (lucenePredicate) {\n if (!lucenePredicate(row)) return false;\n return true;\n }\n let any = false;\n if (filterMode === 'data') {\n for (const val of Object.values(row as any)) {\n const s = String(val ?? '').toLowerCase();\n if (s.includes(ft)) { any = true; break; }\n }\n } else {\n for (const col of effectiveColumns) {\n if (col.hidden) continue;\n const val = getCellValue(row, col);\n const s = String(val ?? '').toLowerCase();\n if (s.includes(ft)) { any = true; break; }\n }\n }\n if (!any) return false;\n }\n return true;\n });\n }\n if (!sortKey || !sortDir) return arr;\n const col = effectiveColumns.find((c) => String(c.key) === sortKey);\n if (!col) return arr;\n const dir = sortDir === 'asc' ? 1 : -1;\n arr.sort((a, b) => {\n const va = getCellValue(a, col);\n const vb = getCellValue(b, col);\n if (va == null && vb == null) return 0;\n if (va == null) return -1 * dir;\n if (vb == null) return 1 * dir;\n if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir;\n const sa = String(va).toLowerCase();\n const sb = String(vb).toLowerCase();\n if (sa < sb) return -1 * dir;\n if (sa > sb) return 1 * dir;\n return 0;\n });\n return arr;\n}\n", "import type { Column } from './types.js';\n\ntype FilterMode = 'table' | 'data';\n\nexport type RowPredicate = (row: T) => boolean;\n\ninterface Term {\n field?: string; // if undefined, match across all fields\n value?: string; // lowercased string\n negate?: boolean;\n range?: { lower: string; upper: string; inclusive: boolean };\n}\n\ninterface Clause {\n terms: Term[]; // AND across terms\n}\n\ninterface LuceneQuery {\n clauses: Clause[]; // OR across clauses\n}\n\nfunction stripQuotes(s: string): string {\n if ((s.startsWith('\"') && s.endsWith('\"')) || (s.startsWith(\"'\") && s.endsWith(\"'\"))) {\n return s.slice(1, -1);\n }\n return s;\n}\n\nfunction splitByOr(input: string): string[] {\n return input.split(/\\s+OR\\s+/i).map((s) => s.trim()).filter(Boolean);\n}\n\nfunction splitByAnd(input: string): string[] {\n return input.split(/\\s+AND\\s+/i).map((s) => s.trim()).filter(Boolean);\n}\n\nfunction parseTerm(raw: string): Term | null {\n if (!raw) return null;\n let negate = false;\n // handle NOT prefix or leading '-'\n const notMatch = raw.match(/^\\s*(NOT\\s+|-)\\s*(.*)$/i);\n if (notMatch) {\n negate = true;\n raw = notMatch[2];\n }\n // range: field:[lower TO upper]\n const rangeMatch = raw.match(/^([^:\\s]+)\\s*:\\s*\\[(.*?)\\s+TO\\s+(.*?)\\]$/i);\n if (rangeMatch) {\n return {\n field: rangeMatch[1],\n negate,\n range: { lower: stripQuotes(rangeMatch[2]).toLowerCase(), upper: stripQuotes(rangeMatch[3]).toLowerCase(), inclusive: true },\n };\n }\n // field:value (value may be quoted)\n const m = raw.match(/^([^:\\s]+)\\s*:\\s*(\"[^\"]*\"|'[^']*'|[^\"'\\s]+)$/);\n if (m) {\n return { field: m[1], value: stripQuotes(m[2]).toLowerCase(), negate };\n }\n // plain term\n if (raw.length > 0) {\n return { value: stripQuotes(raw).toLowerCase(), negate };\n }\n return null;\n}\n\nfunction parseLucene(input: string): LuceneQuery | null {\n if (!input) return null;\n const clauses = splitByOr(input).map((clauseStr) => {\n const terms = splitByAnd(clauseStr)\n .map(parseTerm)\n .filter((t): t is Term => !!t && !!t.value);\n return { terms } as Clause;\n }).filter((c) => c.terms.length > 0);\n if (clauses.length === 0) return null;\n return { clauses };\n}\n\nexport function compileLucenePredicate(\n input: string,\n mode: FilterMode,\n columns: Column[]\n): RowPredicate | null {\n const ast = parseLucene(input);\n if (!ast) return null;\n const colMap = new Map>(\n columns.map((c) => [String(c.key), c])\n );\n const cmp = (a: string, b: string) => (a < b ? -1 : a > b ? 1 : 0);\n const coerce = (s: any) => {\n const str = String(s ?? '').toLowerCase();\n const num = Number(str);\n const date = Date.parse(str);\n if (!Number.isNaN(num) && str.trim() !== '') return { t: 'n' as const, v: num };\n if (!Number.isNaN(date)) return { t: 'd' as const, v: date };\n return { t: 's' as const, v: str };\n };\n const inRange = (val: any, lower: string, upper: string) => {\n const a = coerce(val);\n const lo = coerce(lower);\n const up = coerce(upper);\n // All strings: lexical compare\n if (a.t === 's' && lo.t === 's' && up.t === 's') {\n const av = a.v as string;\n return cmp(av, lo.v as string) >= 0 && cmp(av, up.v as string) <= 0;\n }\n // All numbers\n if (a.t === 'n' && lo.t === 'n' && up.t === 'n') {\n const av = a.v as number;\n return av >= (lo.v as number) && av <= (up.v as number);\n }\n // All dates (as numbers)\n if (a.t === 'd' && lo.t === 'd' && up.t === 'd') {\n const av = a.v as number;\n return av >= (lo.v as number) && av <= (up.v as number);\n }\n // Fallback: compare string forms\n const as = String(val ?? '').toLowerCase();\n return cmp(as, lower) >= 0 && cmp(as, upper) <= 0;\n };\n return (row: T) => {\n for (const clause of ast.clauses) {\n let clauseOk = true;\n for (const term of clause.terms) {\n let ok = false;\n if (term.range && term.field) {\n // range compare on field\n if (mode === 'data') {\n ok = inRange((row as any)[term.field], term.range.lower, term.range.upper);\n } else {\n const col = colMap.get(term.field);\n if (!col || col.hidden) { ok = false; } else {\n const val = col.value ? col.value(row) : (row as any)[col.key as any];\n ok = inRange(val, term.range.lower, term.range.upper);\n }\n }\n } else if (term.field && term.value != null) {\n if (mode === 'data') {\n const s = String((row as any)[term.field] ?? '').toLowerCase();\n ok = s.includes(term.value);\n } else {\n const col = colMap.get(term.field);\n if (!col || col.hidden === true) { ok = false; }\n else {\n const val = col.value ? col.value(row) : (row as any)[col.key as any];\n const s = String(val ?? '').toLowerCase();\n ok = s.includes(term.value);\n }\n }\n } else if (term.value != null) {\n // search across all visible/raw fields\n if (mode === 'data') {\n ok = Object.values(row as any).some((v) => String(v ?? '').toLowerCase().includes(term.value!));\n } else {\n ok = columns.some((col) => {\n if (col.hidden) return false;\n const val = col.value ? col.value(row) : (row as any)[col.key as any];\n const s = String(val ?? '').toLowerCase();\n return s.includes(term.value!);\n });\n }\n }\n if (term.negate) ok = !ok;\n if (!ok) { clauseOk = false; break; }\n }\n if (clauseOk) return true;\n }\n return false;\n };\n}\n", "import * as plugins from '../../00plugins.js';\nimport { demoFunc } from './dees-table.demo.js';\nimport { customElement, html, DeesElement, property, type TemplateResult, directives } from '@design.estate/dees-element';\n\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { type TIconKey } from '../../00group-utility/dees-icon/dees-icon.js';\nimport { tableStyles } from './styles.js';\nimport type { Column, ITableAction, ITableActionDataArg, TDisplayFunction } from './types.js';\nimport {\n computeColumnsFromDisplayFunction as computeColumnsFromDisplayFunctionFn,\n computeEffectiveColumns as computeEffectiveColumnsFn,\n getCellValue as getCellValueFn,\n getViewData as getViewDataFn,\n} from './data.js';\nimport { compileLucenePredicate } from './lucene.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nexport type { Column, ITableAction, ITableActionDataArg, TDisplayFunction } from './types.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-table': DeesTable;\n }\n}\n\n// interfaces moved to ./types.ts and re-exported above\n\n// the table implementation\n@customElement('dees-table')\nexport class DeesTable extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Data View'];\n\n // INSTANCE\n @property({\n type: String,\n })\n accessor heading1: string = 'heading 1';\n\n @property({\n type: String,\n })\n accessor heading2: string = 'heading 2';\n\n @property({\n type: Array,\n })\n accessor data: T[] = [];\n\n // dees-form compatibility -----------------------------------------\n @property({\n type: String,\n })\n accessor key: string;\n\n @property({\n type: String,\n })\n accessor label: string;\n\n @property({\n type: Boolean,\n })\n accessor disabled: boolean = false;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean = false;\n\n get value() {\n return this.data;\n }\n set value(_valueArg) {}\n public changeSubject = new domtools.plugins.smartrx.rxjs.Subject>();\n // end dees-form compatibility -----------------------------------------\n\n /**\n * What does a row of data represent?\n */\n @property({\n type: String,\n reflect: true,\n })\n accessor dataName: string;\n\n\n @property({\n type: Boolean,\n })\n accessor searchable: boolean = true;\n\n @property({\n type: Array,\n })\n accessor dataActions: ITableAction[] = [];\n\n // schema-first columns API\n @property({ attribute: false })\n accessor columns: Column[] = [];\n\n /**\n * Stable row identity for selection and updates. If provided as a function,\n * it is only usable as a property (not via attribute).\n */\n @property({ attribute: false })\n accessor rowKey: keyof T | ((row: T) => string) | undefined = undefined;\n\n /**\n * When true and columns are provided, merge any missing columns discovered\n * via displayFunction into the effective schema.\n */\n @property({ type: Boolean })\n accessor augmentFromDisplayFunction: boolean = false;\n\n @property({\n attribute: false,\n })\n accessor displayFunction: TDisplayFunction = (itemArg: T) => itemArg as any;\n\n @property({\n attribute: false,\n })\n accessor reverseDisplayFunction: (itemArg: any) => T = (itemArg: any) => itemArg as T;\n\n @property({\n type: Object,\n })\n accessor selectedDataRow: T;\n\n @property({\n type: Array,\n })\n accessor editableFields: string[] = [];\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'show-vertical-lines'\n })\n accessor showVerticalLines: boolean = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'show-horizontal-lines'\n })\n accessor showHorizontalLines: boolean = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'show-grid'\n })\n accessor showGrid: boolean = true;\n\n public files: File[] = [];\n public fileWeakMap = new WeakMap();\n\n public dataChangeSubject = new domtools.plugins.smartrx.rxjs.Subject();\n\n // simple client-side sorting (Phase 1)\n @property({ attribute: false })\n accessor sortKey: string | undefined = undefined;\n @property({ attribute: false })\n accessor sortDir: 'asc' | 'desc' | null = null;\n\n // simple client-side filtering (Phase 1)\n @property({ type: String })\n accessor filterText: string = '';\n // per-column quick filters\n @property({ attribute: false })\n accessor columnFilters: Record = {};\n @property({ type: Boolean, attribute: 'show-column-filters' })\n accessor showColumnFilters: boolean = false;\n @property({ type: Boolean, reflect: true, attribute: 'sticky-header' })\n accessor stickyHeader: boolean = false;\n\n // search row state\n @property({ type: String })\n accessor searchMode: 'table' | 'data' | 'server' = 'table';\n private __searchTextSub?: { unsubscribe?: () => void };\n private __searchModeSub?: { unsubscribe?: () => void };\n\n // selection (Phase 1)\n @property({ type: String })\n accessor selectionMode: 'none' | 'single' | 'multi' = 'none';\n @property({ attribute: false })\n accessor selectedIds: Set = new Set();\n private _rowIdMap = new WeakMap();\n private _rowIdCounter = 0;\n\n constructor() {\n super();\n }\n\n public static styles = tableStyles;\n\n public render(): TemplateResult {\n const usingColumns = Array.isArray(this.columns) && this.columns.length > 0;\n const effectiveColumns: Column[] = usingColumns\n ? computeEffectiveColumnsFn(this.columns, this.augmentFromDisplayFunction, this.displayFunction, this.data)\n : computeColumnsFromDisplayFunctionFn(this.displayFunction, this.data);\n\n const lucenePred = compileLucenePredicate(\n this.filterText,\n this.searchMode === 'data' ? 'data' : 'table',\n effectiveColumns\n );\n\n const viewData = getViewDataFn(\n this.data,\n effectiveColumns,\n this.sortKey,\n this.sortDir,\n this.filterText,\n this.columnFilters,\n this.searchMode === 'data' ? 'data' : 'table',\n lucenePred || undefined\n );\n (this as any)._lastViewData = viewData;\n return html`\n
\n \n
\n
\n
${this.label || this.heading1}
\n
${this.heading2}
\n
\n
\n ${directives.resolveExec(async () => {\n const resultArray: TemplateResult[] = [];\n for (const action of this.dataActions) {\n if (!action.type?.includes('header')) continue;\n resultArray.push(\n html` {\n action.actionFunc({\n item: this.selectedDataRow,\n table: this,\n });\n }}\n >\n ${action.iconName\n ? html`\n ${action.name}`\n : action.name}\n
`\n );\n }\n return resultArray;\n })}\n
\n
\n
\n
\n \n \n
\n\n \n \n ${this.data.length > 0\n ? html`\n
\n \n \n \n ${this.selectionMode !== 'none'\n ? html`\n \n `\n : html``}\n ${effectiveColumns\n .filter((c) => !c.hidden)\n .map((col) => {\n const isSortable = !!col.sortable;\n const ariaSort = this.getAriaSort(col);\n return html`\n (isSortable ? this.toggleSort(col) : null)}\n >\n ${col.header ?? (col.key as any)}\n ${this.renderSortIndicator(col)}\n `;\n })}\n ${(() => {\n if (this.dataActions && this.dataActions.length > 0) {\n return html` `;\n }\n })()}\n \n ${this.showColumnFilters\n ? html`\n ${this.selectionMode !== 'none'\n ? html``\n : html``}\n ${effectiveColumns\n .filter((c) => !c.hidden)\n .map((col) => {\n const key = String(col.key);\n if (col.filterable === false) return html``;\n return html``;\n })}\n ${(() => {\n if (this.dataActions && this.dataActions.length > 0) {\n return html` `;\n }\n })()}\n `\n : html``}\n \n \n ${viewData.map((itemArg, rowIndex) => {\n const getTr = (elementArg: HTMLElement): HTMLElement => {\n if (elementArg.tagName === 'TR') {\n return elementArg;\n } else {\n return getTr(elementArg.parentElement);\n }\n };\n return html`\n {\n this.selectedDataRow = itemArg;\n if (this.selectionMode === 'single') {\n const id = this.getRowId(itemArg);\n this.selectedIds.clear();\n this.selectedIds.add(id);\n this.emitSelectionChange();\n this.requestUpdate();\n }\n }}\n @dragenter=${async (eventArg: DragEvent) => {\n eventArg.preventDefault();\n eventArg.stopPropagation();\n const realTarget = getTr(eventArg.target as HTMLElement);\n setTimeout(() => {\n realTarget.classList.add('hasAttachment');\n }, 0);\n }}\n @dragleave=${async (eventArg: DragEvent) => {\n eventArg.preventDefault();\n eventArg.stopPropagation();\n const realTarget = getTr(eventArg.target as HTMLElement);\n realTarget.classList.remove('hasAttachment');\n }}\n @dragover=${async (eventArg: DragEvent) => {\n eventArg.preventDefault();\n }}\n @drop=${async (eventArg: DragEvent) => {\n eventArg.preventDefault();\n const newFiles = [];\n for (const file of Array.from(eventArg.dataTransfer.files)) {\n this.files.push(file);\n newFiles.push(file);\n this.requestUpdate();\n }\n const result: File[] = this.fileWeakMap.get(itemArg as object);\n if (!result) {\n this.fileWeakMap.set(itemArg as object, newFiles);\n } else {\n result.push(...newFiles);\n }\n }}\n @contextmenu=${async (eventArg: MouseEvent) => {\n DeesContextmenu.openContextMenuWithOptions(\n eventArg,\n this.getActionsForType('contextmenu').map((action) => {\n const menuItem: plugins.tsclass.website.IMenuItem = {\n name: action.name,\n iconName: action.iconName as any,\n action: async () => {\n await action.actionFunc({\n item: itemArg,\n table: this,\n });\n return null;\n },\n };\n return menuItem;\n })\n );\n }}\n class=\"${itemArg === this.selectedDataRow ? 'selected' : ''}\"\n >\n ${this.selectionMode !== 'none'\n ? html``\n : html``}\n ${effectiveColumns\n .filter((c) => !c.hidden)\n .map((col, colIndex) => {\n const value = getCellValueFn(itemArg, col, this.displayFunction);\n const content = col.renderer\n ? col.renderer(value, itemArg, { rowIndex, colIndex, column: col })\n : value;\n const editKey = String(col.key);\n return html`\n {\n const dblAction = this.dataActions.find((actionArg) =>\n actionArg.type?.includes('doubleClick')\n );\n if (this.editableFields.includes(editKey)) {\n this.handleCellEditing(e, itemArg, editKey);\n } else if (dblAction) {\n dblAction.actionFunc({ item: itemArg, table: this });\n }\n }}\n >\n
${content}
\n \n `;\n })}\n ${(() => {\n if (this.dataActions && this.dataActions.length > 0) {\n return html`\n
\n `;\n }\n })()}\n `;\n })}\n \n
\n ${this.selectionMode === 'multi'\n ? html`\n ) => {\n e.stopPropagation();\n this.setSelectVisible(e.detail === true);\n }}\n >\n `\n : html``}\n Actions
\n this.setColumnFilter(key, (e.target as HTMLInputElement).value)} />\n
\n ) => {\n e.stopPropagation();\n this.setRowSelected(itemArg, e.detail === true);\n }}\n >\n \n
\n ${this.getActionsForType('inRow').map(\n (actionArg) => html`\n \n actionArg.actionFunc({\n item: itemArg,\n table: this,\n })}\n >\n ${actionArg.iconName\n ? html` `\n : actionArg.name}\n
\n `\n )}\n \n
\n
\n `\n : html`
No data set!
`}\n
\n
\n ${this.data.length} ${this.dataName || 'data rows'} (total) |\n ${this.selectedDataRow ? '# ' + `${this.data.indexOf(this.selectedDataRow) + 1}` : `No`}\n selected\n
\n
\n ${directives.resolveExec(async () => {\n const resultArray: TemplateResult[] = [];\n for (const action of this.dataActions) {\n if (!action.type?.includes('footer')) continue;\n resultArray.push(\n html` {\n action.actionFunc({\n item: this.selectedDataRow,\n table: this,\n });\n }}\n >\n ${action.iconName\n ? html`\n ${action.name}`\n : action.name}\n
`\n );\n }\n return resultArray;\n })}\n
\n \n \n `;\n }\n\n public async firstUpdated() {\n \n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n this.determineColumnWidths();\n if (this.searchable) {\n const existing = this.dataActions.find((actionArg) => actionArg.type?.includes('header') && actionArg.name === 'Search');\n if (!existing) {\n this.dataActions.unshift({\n name: 'Search',\n iconName: 'magnifyingGlass',\n type: ['header'],\n actionFunc: async () => {\n console.log('open search');\n const searchGrid = this.shadowRoot.querySelector('.searchGrid');\n searchGrid.classList.toggle('hidden');\n }\n });\n console.log(this.dataActions);\n this.requestUpdate();\n };\n // wire search inputs\n this.wireSearchInputs();\n }\n }\n\n private __debounceTimer?: any;\n private debounceRun(fn: () => void, ms = 200) {\n if (this.__debounceTimer) clearTimeout(this.__debounceTimer);\n this.__debounceTimer = setTimeout(fn, ms);\n }\n\n private wireSearchInputs() {\n const searchTextEl: any = this.shadowRoot?.querySelector('.searchGrid dees-input-text');\n const searchModeEl: any = this.shadowRoot?.querySelector('.searchGrid dees-input-multitoggle');\n if (searchTextEl && !this.__searchTextSub) {\n this.__searchTextSub = searchTextEl.changeSubject.subscribe((el: any) => {\n const val: string = el?.value ?? '';\n this.debounceRun(() => {\n if (this.searchMode === 'server') {\n this.dispatchEvent(\n new CustomEvent('searchRequest', {\n detail: { query: val, mode: 'server' },\n bubbles: true,\n })\n );\n } else {\n this.setFilterText(val);\n }\n });\n });\n }\n if (searchModeEl && !this.__searchModeSub) {\n this.__searchModeSub = searchModeEl.changeSubject.subscribe((el: any) => {\n const mode: string = el?.selectedOption || el?.value || 'table';\n if (mode === 'table' || mode === 'data' || mode === 'server') {\n this.searchMode = mode as any;\n // When switching modes, re-apply current text input\n const val: string = searchTextEl?.value ?? '';\n this.debounceRun(() => {\n if (this.searchMode === 'server') {\n this.dispatchEvent(new CustomEvent('searchRequest', { detail: { query: val, mode: 'server' }, bubbles: true }));\n } else {\n this.setFilterText(val);\n }\n });\n }\n });\n }\n }\n\n public async determineColumnWidths() {\n const domtools = await this.domtoolsPromise;\n await domtools.convenience.smartdelay.delayFor(0);\n // Get the table element\n const table = this.shadowRoot.querySelector('table');\n if (!table) return;\n\n // Get the first row's cells to measure the widths\n const cells = table.rows[0].cells;\n\n const handleColumnByIndex = async (i: number, waitForRenderArg: boolean = false) => {\n const done = plugins.smartpromise.defer();\n const cell = cells[i];\n\n // Get computed width\n const width = window.getComputedStyle(cell).width;\n if (cell.textContent.includes('Actions')) {\n const neededWidth =\n this.dataActions.filter((actionArg) => actionArg.type?.includes('inRow')).length * 36;\n cell.style.width = `${Math.max(neededWidth, 68)}px`;\n } else {\n cell.style.width = width;\n }\n if (waitForRenderArg) {\n requestAnimationFrame(() => {\n done.resolve();\n });\n await done.promise;\n }\n };\n\n if (cells[cells.length - 1].textContent.includes('Actions')) {\n await handleColumnByIndex(cells.length - 1, true);\n }\n\n for (let i = 0; i < cells.length; i++) {\n if (cells[i].textContent.includes('Actions')) {\n continue;\n }\n await handleColumnByIndex(i);\n }\n table.style.tableLayout = 'fixed';\n }\n\n // compute helpers moved to ./data.ts\n\n private toggleSort(col: Column) {\n const key = String(col.key);\n if (this.sortKey !== key) {\n this.sortKey = key;\n this.sortDir = 'asc';\n } else {\n if (this.sortDir === 'asc') this.sortDir = 'desc';\n else if (this.sortDir === 'desc') {\n this.sortDir = null;\n this.sortKey = undefined;\n } else this.sortDir = 'asc';\n }\n this.dispatchEvent(\n new CustomEvent('sortChange', {\n detail: { key: this.sortKey, dir: this.sortDir },\n bubbles: true,\n })\n );\n this.requestUpdate();\n }\n\n private getAriaSort(col: Column): 'none' | 'ascending' | 'descending' {\n if (String(col.key) !== this.sortKey || !this.sortDir) return 'none';\n return this.sortDir === 'asc' ? 'ascending' : 'descending';\n }\n\n private renderSortIndicator(col: Column) {\n if (String(col.key) !== this.sortKey || !this.sortDir) return html``;\n return html`${this.sortDir === 'asc' ? '\u25B2' : '\u25BC'}`;\n }\n\n // filtering helpers\n public setFilterText(value: string) {\n const prev = this.filterText;\n this.filterText = value ?? '';\n if (prev !== this.filterText) {\n this.dispatchEvent(\n new CustomEvent('filterChange', {\n detail: { text: this.filterText, columns: { ...this.columnFilters } },\n bubbles: true,\n })\n );\n this.requestUpdate();\n }\n }\n\n public setColumnFilter(key: string, value: string) {\n this.columnFilters = { ...this.columnFilters, [key]: value };\n this.dispatchEvent(\n new CustomEvent('filterChange', {\n detail: { text: this.filterText, columns: { ...this.columnFilters } },\n bubbles: true,\n })\n );\n this.requestUpdate();\n }\n\n // selection helpers\n private getRowId(row: T): string {\n if (this.rowKey) {\n if (typeof this.rowKey === 'function') return this.rowKey(row);\n return String((row as any)[this.rowKey]);\n }\n const key = row as any as object;\n if (!this._rowIdMap.has(key)) {\n this._rowIdMap.set(key, String(++this._rowIdCounter));\n }\n return this._rowIdMap.get(key);\n }\n\n private isRowSelected(row: T): boolean {\n return this.selectedIds.has(this.getRowId(row));\n }\n\n private toggleRowSelected(row: T) {\n const id = this.getRowId(row);\n if (this.selectionMode === 'single') {\n this.selectedIds.clear();\n this.selectedIds.add(id);\n } else if (this.selectionMode === 'multi') {\n if (this.selectedIds.has(id)) this.selectedIds.delete(id);\n else this.selectedIds.add(id);\n }\n this.emitSelectionChange();\n this.requestUpdate();\n }\n\n private setRowSelected(row: T, checked: boolean) {\n const id = this.getRowId(row);\n if (this.selectionMode === 'single') {\n this.selectedIds.clear();\n if (checked) this.selectedIds.add(id);\n } else if (this.selectionMode === 'multi') {\n if (checked) this.selectedIds.add(id);\n else this.selectedIds.delete(id);\n }\n this.emitSelectionChange();\n this.requestUpdate();\n }\n\n private areAllVisibleSelected(): boolean {\n const view: T[] = (this as any)._lastViewData || [];\n if (view.length === 0) return false;\n for (const r of view) {\n if (!this.selectedIds.has(this.getRowId(r))) return false;\n }\n return true;\n }\n\n private isVisibleSelectionIndeterminate(): boolean {\n const view: T[] = (this as any)._lastViewData || [];\n if (view.length === 0) return false;\n let count = 0;\n for (const r of view) {\n if (this.selectedIds.has(this.getRowId(r))) count++;\n }\n return count > 0 && count < view.length;\n }\n\n private setSelectVisible(checked: boolean) {\n const view: T[] = (this as any)._lastViewData || [];\n if (checked) {\n for (const r of view) this.selectedIds.add(this.getRowId(r));\n } else {\n for (const r of view) this.selectedIds.delete(this.getRowId(r));\n }\n this.emitSelectionChange();\n this.requestUpdate();\n }\n\n private emitSelectionChange() {\n const selectedIds = Array.from(this.selectedIds);\n const selectedRows = this.data.filter((r) => this.selectedIds.has(this.getRowId(r)));\n this.dispatchEvent(\n new CustomEvent('selectionChange', {\n detail: { selectedIds, selectedRows },\n bubbles: true,\n })\n );\n }\n\n getActionsForType(typeArg: ITableAction['type'][0]) {\n const actions: ITableAction[] = [];\n for (const action of this.dataActions) {\n if (!action.type?.includes(typeArg)) continue;\n actions.push(action);\n }\n return actions;\n }\n\n async handleCellEditing(event: Event, itemArg: T, key: string) {\n await this.domtoolsPromise;\n const target = event.target as HTMLElement;\n const originalColor = target.style.color;\n target.style.color = 'transparent';\n const transformedItem = this.displayFunction(itemArg);\n const initialValue = ((transformedItem as any)[key] ?? (itemArg as any)[key] ?? '') as string;\n // Create an input element\n const input = document.createElement('input');\n input.type = 'text';\n input.value = initialValue;\n\n const blurInput = async (blurArg = true, saveArg = false) => {\n if (blurArg) {\n input.blur();\n }\n if (saveArg) {\n itemArg[key] = input.value as any; // Convert string to T (you might need better type casting depending on your data structure)\n this.changeSubject.next(this);\n }\n input.remove();\n target.style.color = originalColor;\n this.requestUpdate();\n };\n\n // When the input loses focus or the Enter key is pressed, update the data\n input.addEventListener('blur', () => {\n blurInput(false, false);\n });\n input.addEventListener('keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n blurInput(true, true); // This will trigger the blur event handler above\n }\n });\n\n // Replace the cell's content with the input\n target.appendChild(input);\n input.focus();\n }\n}\n", "export * from './dees-table.js';\n", "import { html, css, domtools, cssManager } from '@design.estate/dees-element';\nimport type { DeesForm } from './dees-form.js';\nimport '@design.estate/dees-wcctools/demotools';\n\nexport const demoFunc = () => html`\n \n \n
\n {\n const form = elementArg.querySelector('dees-form') as DeesForm;\n const outputDiv = elementArg.querySelector('.form-output');\n \n if (form && outputDiv) {\n form.addEventListener('formData', async (eventArg: CustomEvent) => {\n const data = eventArg.detail.data;\n console.log('Form submitted with data:', data);\n \n // Show processing state\n form.setStatus('pending', 'Processing your registration...');\n outputDiv.innerHTML = `Submitted Data:\\n${JSON.stringify(data, null, 2)}`;\n \n // Simulate API call\n await domtools.plugins.smartdelay.delayFor(2000);\n \n // Show success\n form.setStatus('success', 'Registration completed successfully!');\n \n // Reset form after delay\n await domtools.plugins.smartdelay.delayFor(2000);\n form.reset();\n outputDiv.innerHTML = 'Form has been reset';\n });\n \n // Track individual field changes\n const inputs = form.querySelectorAll('dees-input-text, dees-input-dropdown, dees-input-checkbox');\n inputs.forEach((input) => {\n input.addEventListener('changeSubject', () => {\n console.log('Field changed:', input.getAttribute('key'));\n });\n });\n }\n }}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Create Account\n \n \n
\n Submit the form to see the collected data...\n
\n
\n
\n \n {\n const form = elementArg.querySelector('dees-form') as DeesForm;\n \n if (form) {\n // Track horizontal layout behavior\n console.log('Horizontal form layout active');\n \n // Monitor filter changes\n form.addEventListener('formData', (event: CustomEvent) => {\n const filters = event.detail.data;\n console.log('Filter applied:', filters);\n \n // Simulate search\n const resultsCount = Math.floor(Math.random() * 100) + 1;\n console.log(`Found ${resultsCount} results with filters:`, filters);\n });\n \n // Setup real-time filter updates\n const inputs = form.querySelectorAll('[key]');\n inputs.forEach((input) => {\n input.addEventListener('changeSubject', async () => {\n // Get current form data\n const formData = await form.collectFormData();\n console.log('Live filter update:', formData);\n });\n });\n }\n }}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n const form = elementArg.querySelector('dees-form') as DeesForm;\n const statusDiv = elementArg.querySelector('#status-display');\n \n if (form) {\n form.addEventListener('formData', async (eventArg: CustomEvent) => {\n const data = eventArg.detail.data;\n console.log('Advanced form data:', data);\n \n // Show validation in progress\n form.setStatus('pending', 'Validating your information...');\n \n // Simulate validation\n await domtools.plugins.smartdelay.delayFor(1500);\n \n // Check IBAN validity (simple check)\n if (data.iban && data.iban.length > 15) {\n form.setStatus('success', 'Application submitted successfully!');\n \n if (statusDiv) {\n statusDiv.className = 'status-message success';\n statusDiv.textContent = '\u2713 Your application has been submitted. We will contact you soon.';\n }\n } else {\n form.setStatus('error', 'Please check your IBAN');\n \n if (statusDiv) {\n statusDiv.className = 'status-message error';\n statusDiv.textContent = '\u2717 Invalid IBAN format. Please check and try again.';\n }\n }\n \n console.log('Form data logged:', data);\n });\n \n // Monitor file uploads\n const fileUpload = form.querySelector('dees-input-fileupload');\n if (fileUpload) {\n fileUpload.addEventListener('change', (event: any) => {\n const files = event.detail?.files || [];\n console.log(`${files.length} file(s) selected for upload`);\n });\n }\n }\n }}>\n \n \n \n \n \n \n \n \n \n \n \n \n Submit Application\n \n \n
\n
\n
\n
\n`;", "import {\n customElement,\n html,\n css,\n type TemplateResult,\n DeesElement,\n type CSSResult,\n property,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\n\nimport { DeesInputCheckbox } from '../../00group-input/dees-input-checkbox/dees-input-checkbox.js';\nimport { DeesInputCode } from '../../00group-input/dees-input-code/dees-input-code.js';\nimport { DeesInputDatepicker } from '../../00group-input/dees-input-datepicker/index.js';\nimport { DeesInputText } from '../../00group-input/dees-input-text/dees-input-text.js';\nimport { DeesInputQuantitySelector } from '../../00group-input/dees-input-quantityselector/dees-input-quantityselector.js';\nimport { DeesInputRadiogroup } from '../../00group-input/dees-input-radiogroup/dees-input-radiogroup.js';\nimport { DeesInputDropdown } from '../../00group-input/dees-input-dropdown/dees-input-dropdown.js';\nimport { DeesInputFileupload } from '../../00group-input/dees-input-fileupload/index.js';\nimport { DeesInputIban } from '../../00group-input/dees-input-iban/dees-input-iban.js';\nimport { DeesInputMultitoggle } from '../../00group-input/dees-input-multitoggle/dees-input-multitoggle.js';\nimport { DeesInputPhone } from '../../00group-input/dees-input-phone/dees-input-phone.js';\nimport { DeesInputToggle } from '../../00group-input/dees-input-toggle/dees-input-toggle.js';\nimport { DeesInputTypelist } from '../../00group-input/dees-input-typelist/dees-input-typelist.js';\nimport { DeesFormSubmit } from '../dees-form-submit/dees-form-submit.js';\nimport { DeesTable } from '../../00group-dataview/dees-table/index.js';\nimport { demoFunc } from './dees-form.demo.js';\n\n// Unified set for form input types\nconst FORM_INPUT_TYPES = [\n DeesInputCheckbox,\n DeesInputCode,\n DeesInputDatepicker,\n DeesInputDropdown,\n DeesInputFileupload,\n DeesInputIban,\n DeesInputMultitoggle,\n DeesInputPhone,\n DeesInputQuantitySelector,\n DeesInputRadiogroup,\n DeesInputText,\n DeesInputToggle,\n DeesInputTypelist,\n DeesTable,\n];\n\nexport type TFormInputElement =\n | DeesInputCheckbox\n | DeesInputCode\n | DeesInputDatepicker\n | DeesInputDropdown\n | DeesInputFileupload\n | DeesInputIban\n | DeesInputMultitoggle\n | DeesInputPhone\n | DeesInputQuantitySelector\n | DeesInputRadiogroup\n | DeesInputText\n | DeesInputToggle\n | DeesInputTypelist\n | DeesTable;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-form': DeesForm;\n }\n}\n\n@customElement('dees-form')\nexport class DeesForm extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Form'];\n\n public name: string = 'myform';\n public changeSubject = new domtools.plugins.smartrx.rxjs.Subject();\n public readyDeferred = domtools.plugins.smartpromise.defer();\n\n /**\n * Controls the layout mode of child input components\n * When true, sets all child inputs to horizontal layout\n */\n @property({ type: Boolean, reflect: true, attribute: 'horizontal-layout' })\n accessor horizontalLayout: boolean = false;\n\n public static styles = [\n css`\n :host {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n :host([horizontal-layout]) {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: 16px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n \n `;\n }\n\n public async firstUpdated() {\n const formChildren = this.getFormElements();\n this.updateRequiredStatus();\n this.updateChildrenLayoutMode();\n\n for (const child of formChildren) {\n child.changeSubject.subscribe(async () => {\n const valueObject = await this.collectFormData();\n this.changeSubject.next(valueObject);\n console.log(valueObject);\n this.updateRequiredStatus();\n });\n }\n await this.addBehaviours();\n this.readyDeferred.resolve();\n }\n\n public getFormElements(): Array {\n return Array.from(this.children).filter((child) =>\n FORM_INPUT_TYPES.includes(child.constructor as any)\n ) as unknown as TFormInputElement[];\n }\n\n public getSubmitButton(): DeesFormSubmit | undefined {\n return Array.from(this.children).find(\n (child) => child instanceof DeesFormSubmit\n ) as DeesFormSubmit;\n }\n\n public async updateRequiredStatus() {\n console.log('checking the required status.');\n\n let requiredOK = true;\n for (const childArg of this.getFormElements()) {\n if (childArg.required && !childArg.value) {\n requiredOK = false;\n }\n }\n if (this.getSubmitButton()) {\n this.getSubmitButton().disabled = !requiredOK;\n }\n }\n\n /**\n * collects the form data\n * @returns\n */\n public async collectFormData() {\n const children = this.getFormElements();\n const valueObject: { [key: string]: string | number | boolean | any[] | File[] | { option: string; key: string; payload?: any } } = {};\n \n for (const child of children) {\n if (!child.key) {\n console.log(`form element with label \"${child.label}\" has no key. skipping.`);\n continue;\n }\n \n valueObject[child.key] = child.value;\n }\n \n return valueObject;\n }\n\n public async gatherAndDispatch() {\n const valueObject = await this.collectFormData();\n const formDataEvent = new CustomEvent('formData', {\n detail: {\n data: valueObject,\n },\n bubbles: true,\n });\n this.dispatchEvent(formDataEvent);\n console.log('dispatched data:');\n console.log(valueObject);\n }\n\n public setStatus(\n visualStateArg: 'normal' | 'pending' | 'error' | 'success',\n textStateArg: string\n ) {\n const inputChildren = this.getFormElements();\n const submitButton = this.getSubmitButton();\n\n switch (visualStateArg) {\n case 'normal':\n submitButton.disabled = false;\n submitButton.status = 'normal';\n for (const inputChild of inputChildren) {\n inputChild.disabled = false;\n }\n break;\n case 'pending':\n submitButton.disabled = true;\n submitButton.status = 'pending';\n for (const inputChild of inputChildren) {\n inputChild.disabled = true;\n }\n break;\n case 'success':\n submitButton.disabled = true;\n submitButton.status = 'success';\n for (const inputChild of inputChildren) {\n inputChild.disabled = true;\n }\n break;\n case 'error':\n submitButton.disabled = true;\n submitButton.status = 'error';\n for (const inputChild of inputChildren) {\n inputChild.disabled = true;\n }\n break;\n }\n\n submitButton.text = textStateArg;\n }\n\n /**\n * resets the form\n */\n reset() {\n const inputChildren = this.getFormElements();\n const submitButton = this.getSubmitButton();\n\n for (const inputChild of inputChildren) {\n inputChild.value = null;\n }\n this.setStatus('normal', 'Submit');\n }\n\n public async addBehaviours() {\n // Use event delegation\n this.addEventListener('keydown', (event: KeyboardEvent) => {\n const target = event.target as DeesElement;\n if (!FORM_INPUT_TYPES.includes(target.constructor as any)) return;\n\n if (event.key === 'Enter') {\n const children = this.getFormElements();\n const currentIndex = children.indexOf(target as any);\n if (currentIndex < children.length - 1) {\n children[currentIndex + 1].focus();\n } else {\n target.blur();\n this.getSubmitButton()?.focus();\n }\n }\n });\n }\n\n /**\n * Updates the layout mode of child input components based on form's horizontalLayout property\n */\n private updateChildrenLayoutMode() {\n const formChildren = this.getFormElements();\n for (const child of formChildren) {\n if ('layoutMode' in child) {\n // The child's auto mode will detect this form's horizontal-layout attribute\n (child as any).layoutMode = 'auto';\n }\n }\n }\n\n /**\n * Called when properties change\n */\n updated(changedProperties: Map) {\n super.updated(changedProperties);\n \n if (changedProperties.has('horizontalLayout')) {\n this.updateChildrenLayoutMode();\n }\n }\n}\n", "import { html, css, cssManager, domtools } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport '../../00group-form/dees-form/dees-form.js';\nimport '../../00group-form/dees-form-submit/dees-form-submit.js';\nimport '../../00group-input/dees-input-text/dees-input-text.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport type { DeesButton } from '../dees-button/dees-button.js';\n\nexport const demoFunc = () => html`\n \n \n
\n {\n // Log button clicks for demo purposes\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach((button) => {\n button.addEventListener('clicked', () => {\n const type = button.getAttribute('type') || 'default';\n console.log(`Button variant clicked: ${type}`);\n });\n });\n }}>\n \n
\n Default\n Secondary\n Destructive\n Outline\n Ghost\n Link Button\n
\n
\n
\n \n {\n // Demonstrate size differences programmatically\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach((button) => {\n button.addEventListener('clicked', () => {\n const size = button.getAttribute('size') || 'default';\n console.log(`Button size: ${size}`);\n });\n });\n }}>\n \n
\n Small Button\n Default Size\n Large Button\n \n
\n \n
\n Small Secondary\n Default Destructive\n Large Outline\n
\n
\n
\n \n {\n // Track icon button clicks\n const iconButtons = elementArg.querySelectorAll('dees-button');\n iconButtons.forEach((button) => {\n button.addEventListener('clicked', () => {\n const hasIcon = button.querySelector('dees-icon');\n if (hasIcon) {\n const iconName = hasIcon.getAttribute('iconFA') || 'unknown';\n console.log(`Icon button clicked: ${iconName}`);\n }\n });\n });\n }}>\n \n
\n \n \n Add Item\n \n \n \n Delete\n \n \n \n Download\n \n
\n\n
\n \n \n Settings\n \n \n \n Back\n \n \n Next\n \n \n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n\n {\n // Track icon property button clicks\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach((button) => {\n button.addEventListener('clicked', () => {\n const icon = button.getAttribute('icon') || 'none';\n const position = button.getAttribute('iconPosition') || 'left';\n console.log(`Icon property button: icon=${icon}, position=${position}`);\n });\n });\n }}>\n \n
\n Add Item\n Delete\n Download\n
\n\n
\n Settings\n Back\n Next\n
\n\n
\n \n \n \n \n \n
\n\n
\n
\n <dees-button icon=\"fa:plus\">Add Item</dees-button>
\n <dees-button icon=\"fa:caretRight\" iconPosition=\"right\">Next</dees-button>\n
\n
\n
\n
\n\n {\n // Demonstrate status changes\n const pendingButton = elementArg.querySelector('dees-button[status=\"pending\"]');\n const successButton = elementArg.querySelector('dees-button[status=\"success\"]');\n const errorButton = elementArg.querySelector('dees-button[status=\"error\"]');\n \n // Simulate status changes\n if (pendingButton) {\n setTimeout(() => {\n console.log('Pending button is showing loading state');\n }, 1000);\n }\n \n if (successButton) {\n successButton.addEventListener('clicked', () => {\n console.log('Success state button clicked');\n });\n }\n \n if (errorButton) {\n errorButton.addEventListener('clicked', () => {\n console.log('Error state button clicked');\n });\n }\n }}>\n \n
\n Normal\n Processing...\n Success!\n Error!\n Disabled\n
\n \n
\n Small Loading\n Default Loading\n Large Loading\n
\n
\n
\n \n {\n // Set up click handlers with the output element\n const output = elementArg.querySelector('#click-output');\n \n const clickMeBtn = elementArg.querySelector('dees-button:first-of-type');\n const dataBtn = elementArg.querySelector('dees-button[type=\"secondary\"]');\n const asyncBtn = elementArg.querySelector('dees-button[type=\"destructive\"]');\n \n if (clickMeBtn && output) {\n clickMeBtn.addEventListener('clicked', () => {\n output.textContent = `Clicked: Default button at ${new Date().toLocaleTimeString()}`;\n });\n }\n \n if (dataBtn && output) {\n dataBtn.addEventListener('clicked', (e: CustomEvent) => {\n output.textContent = `Clicked: Secondary button with data: ${e.detail.data}`;\n });\n }\n \n if (asyncBtn && output) {\n asyncBtn.addEventListener('clicked', async () => {\n output.textContent = 'Processing...';\n await domtools.plugins.smartdelay.delayFor(2000);\n output.textContent = 'Action completed!';\n });\n }\n }}>\n \n
\n Click Me\n \n Click with Data\n \n Async Action\n
\n \n
\n Click a button to see the result...\n
\n
\n
\n \n {\n // Set up form submission handling\n const form = elementArg.querySelector('dees-form');\n const output = elementArg.querySelector('#form-output');\n \n if (form && output) {\n form.addEventListener('formData', (e: CustomEvent) => {\n output.innerHTML = 'Form submitted with data:
' + \n JSON.stringify(e.detail.data, null, 2);\n });\n }\n \n // Track non-submit button clicks\n const draftBtn = elementArg.querySelector('dees-button[type=\"secondary\"]');\n const cancelBtn = elementArg.querySelector('dees-button[type=\"ghost\"]');\n \n if (draftBtn) {\n draftBtn.addEventListener('clicked', () => {\n console.log('Save Draft clicked');\n });\n }\n \n if (cancelBtn) {\n cancelBtn.addEventListener('clicked', () => {\n console.log('Cancel clicked');\n });\n }\n }}>\n \n \n \n \n \n \n Save Draft\n Cancel\n Submit Form\n \n \n
\n Submit the form to see the data...\n
\n
\n
\n \n {\n // Log legacy type mappings\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach((button) => {\n const type = button.getAttribute('type');\n if (type) {\n console.log(`Legacy type \"${type}\" is supported for backward compatibility`);\n }\n });\n }}>\n \n
\n Normal \u2192 Default\n Highlighted \u2192 Destructive\n Discreet \u2192 Outline\n Big \u2192 Large Size\n
\n \n

\n These legacy type values are maintained for backward compatibility but we recommend using the new variant system.\n

\n
\n
\n \n {\n // Track action group clicks\n const actionGroup = elementArg.querySelectorAll('.vertical-group')[0];\n const dangerGroup = elementArg.querySelectorAll('.vertical-group')[1];\n \n if (actionGroup) {\n const buttons = actionGroup.querySelectorAll('dees-button');\n buttons.forEach((button, index) => {\n button.addEventListener('clicked', () => {\n const action = ['Save Changes', 'Discard', 'Help'][index];\n console.log(`Action group: ${action} clicked`);\n });\n });\n }\n \n if (dangerGroup) {\n const buttons = dangerGroup.querySelectorAll('dees-button');\n buttons.forEach((button, index) => {\n button.addEventListener('clicked', () => {\n const action = ['Delete Account', 'Archive Data', 'Not Available'][index];\n if (index !== 2) { // Skip disabled button\n console.log(`Danger zone: ${action} clicked`);\n }\n });\n });\n }\n }}>\n \n
\n
\n

Action Group

\n \n \n Save Changes\n \n \n \n Discard\n \n \n \n Help\n \n
\n\n
\n

Danger Zone

\n \n \n Delete Account\n \n \n \n Archive Data\n \n \n \n Not Available\n \n
\n
\n \n
\n

Code Example:

\n
\n <dees-button type=\"default\" size=\"sm\" icon=\"lucide:Save\" @clicked=\"\\${handleClick}\">
\n   Save Changes
\n </dees-button>\n
\n
\n
\n
\n
\n`;", "import {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-button.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-button': DeesButton;\n }\n}\n\n@customElement('dees-button')\nexport class DeesButton extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Button'];\n\n @property({\n reflect: true,\n hasChanged() {\n return true;\n }\n })\n accessor text: string;\n\n @property()\n accessor eventDetailData: string;\n\n @property({\n type: Boolean,\n reflect: true,\n })\n accessor disabled = false;\n\n @property({\n type: Boolean\n })\n accessor isHidden = false;\n\n @property({\n type: String\n })\n accessor type: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link' | 'normal' | 'highlighted' | 'discreet' | 'big' = 'default';\n\n @property({\n type: String\n })\n accessor size: 'default' | 'sm' | 'lg' | 'icon' = 'default';\n\n @property({\n type: String\n })\n accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';\n\n @property({\n type: Boolean,\n reflect: true\n })\n accessor insideForm: boolean = false;\n\n @property({ type: String, reflect: true })\n accessor icon: string;\n\n @property({ type: String, reflect: true })\n accessor iconPosition: 'left' | 'right' = 'left';\n\n constructor() {\n super();\n }\n\n public async connectedCallback() {\n await super.connectedCallback();\n // Auto-detect if inside a form\n if (!this.insideForm && this.closest('dees-form')) {\n this.insideForm = true;\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-block;\n box-sizing: border-box;\n font-family: inherit;\n }\n :host([hidden]) {\n display: none;\n }\n\n /* Form spacing styles */\n :host([inside-form]) {\n margin-bottom: 16px;\n }\n \n :host([inside-form]:last-child) {\n margin-bottom: 0;\n }\n \n dees-form[horizontal-layout] :host([inside-form]) {\n display: inline-block;\n margin-right: 16px;\n margin-bottom: 0;\n }\n \n dees-form[horizontal-layout] :host([inside-form]:last-child) {\n margin-right: 0;\n }\n\n .button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n border-radius: 6px;\n font-weight: 500;\n transition: all 0.15s ease;\n cursor: pointer;\n user-select: none;\n outline: none;\n letter-spacing: -0.01em;\n gap: 8px;\n }\n\n /* Size variants */\n .button.size-default {\n height: 36px;\n padding: 0 16px;\n font-size: 14px;\n }\n\n .button.size-sm {\n height: 32px;\n padding: 0 12px;\n font-size: 13px;\n }\n\n .button.size-lg {\n height: 44px;\n padding: 0 24px;\n font-size: 16px;\n }\n\n .button.size-icon {\n height: 36px;\n width: 36px;\n padding: 0;\n }\n\n /* Default variant */\n .button.default {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20.2% 11.8%)')};\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 16.8%)')};\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n }\n\n .button.default:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 10.2%)')};\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 85%)', 'hsl(215 20.2% 20%)')};\n }\n\n .button.default:active:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 9%)')};\n }\n\n /* Destructive variant */\n .button.destructive {\n background: hsl(0 84.2% 60.2%);\n color: hsl(0 0% 98%);\n border: 1px solid transparent;\n }\n\n .button.destructive:hover:not(.disabled) {\n background: hsl(0 84.2% 56.2%);\n }\n\n .button.destructive:active:not(.disabled) {\n background: hsl(0 84.2% 52.2%);\n }\n\n /* Outline variant */\n .button.outline {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 21.8%)')};\n }\n\n .button.outline:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 85%)', 'hsl(215 20.2% 26.8%)')};\n }\n\n .button.outline:active:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 13.8%)')};\n }\n\n /* Secondary variant */\n .button.secondary {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n border: 1px solid transparent;\n }\n\n .button.secondary:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 13.8%)')};\n }\n\n .button.secondary:active:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 85%)', 'hsl(215 20.2% 11.8%)')};\n }\n\n /* Ghost variant */\n .button.ghost {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n border: 1px solid transparent;\n }\n\n .button.ghost:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n }\n\n .button.ghost:active:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 13.8%)')};\n }\n\n /* Link variant */\n .button.link {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(213.1 93.9% 67.8%)')};\n border: none;\n text-decoration: underline;\n text-decoration-color: transparent;\n height: auto;\n padding: 0;\n }\n\n .button.link:hover:not(.disabled) {\n text-decoration-color: currentColor;\n }\n\n /* Status states */\n .button.pending,\n .button.success,\n .button.error {\n pointer-events: none;\n padding-left: 36px; /* Space for spinner */\n }\n \n .button.size-sm.pending,\n .button.size-sm.success,\n .button.size-sm.error {\n padding-left: 32px;\n }\n \n .button.size-lg.pending,\n .button.size-lg.success,\n .button.size-lg.error {\n padding-left: 44px;\n }\n\n .button.pending {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(213.1 93.9% 67.8% / 0.2)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(213.1 93.9% 67.8%)')};\n border: 1px solid transparent;\n }\n\n .button.success {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3% / 0.2)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(142.1 70.6% 45.3%)')};\n border: 1px solid transparent;\n }\n\n .button.error {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 62.8% 70.6% / 0.2)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 62.8% 70.6%)')};\n border: 1px solid transparent;\n }\n\n /* Disabled state */\n .button.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* Hidden state */\n .button.hidden {\n display: none;\n }\n\n /* Focus state */\n .button:focus-visible {\n outline: 2px solid ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(213.1 93.9% 67.8%)')};\n outline-offset: 2px;\n }\n\n /* Loading spinner */\n dees-spinner {\n position: absolute;\n left: 10px;\n width: 16px;\n height: 16px;\n }\n \n .button.size-sm dees-spinner {\n left: 8px;\n width: 14px;\n height: 14px;\n }\n \n .button.size-lg dees-spinner {\n left: 14px;\n width: 18px;\n height: 18px;\n }\n \n /* Icon sizing within buttons */\n .button dees-icon {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n }\n \n .button.size-sm dees-icon {\n width: 14px;\n height: 14px;\n }\n \n .button.size-lg dees-icon {\n width: 18px;\n height: 18px;\n }\n\n /* Text alignment */\n .textbox {\n display: flex;\n align-items: center;\n }\n\n `,\n ];\n\n /**\n * Extracts icon and text from light DOM and sets properties\n */\n private extractLightDom(): void {\n const iconElement = this.querySelector('dees-icon') as any;\n\n // Get all text content from light DOM\n const textContent = Array.from(this.childNodes)\n .filter(node => node.nodeType === Node.TEXT_NODE)\n .map(node => node.textContent?.trim())\n .filter(Boolean)\n .join(' ');\n\n if (textContent && !this.text) {\n this.text = textContent;\n }\n\n if (iconElement) {\n // Get icon value\n const iconValue = iconElement.icon || iconElement.getAttribute('icon') ||\n (iconElement.iconFA ? `fa:${iconElement.iconFA}` : null);\n\n if (iconValue) {\n // Determine position based on DOM order\n const children = Array.from(this.childNodes);\n const iconIndex = children.indexOf(iconElement);\n const textNodes = children.filter(node =>\n node.nodeType === Node.TEXT_NODE && node.textContent?.trim()\n );\n\n if (textNodes.length > 0) {\n const firstTextIndex = children.indexOf(textNodes[0]);\n this.iconPosition = iconIndex < firstTextIndex ? 'left' : 'right';\n }\n\n // Set the icon property\n this.icon = iconValue;\n }\n\n // Remove the light DOM icon element\n iconElement.remove();\n }\n\n // Clear all remaining light DOM\n this.innerHTML = '';\n }\n\n public render(): TemplateResult {\n // Map old types to new types for backward compatibility\n const typeMap: {[key: string]: string} = {\n 'normal': 'default',\n 'highlighted': 'destructive',\n 'discreet': 'outline',\n 'big': 'default' // Will use size instead\n };\n\n const actualType = typeMap[this.type] || this.type;\n const actualSize = this.type === 'big' ? 'lg' : this.size;\n\n const leftIcon = this.iconPosition === 'left' && this.icon\n ? html``\n : '';\n const rightIcon = this.iconPosition === 'right' && this.icon\n ? html``\n : '';\n\n // For icon-only buttons, hide the textbox\n const isIconOnly = actualSize === 'icon' && this.icon;\n\n return html`\n \n ${this.status === 'normal' ? html``: html`\n \n `}\n ${leftIcon}\n ${isIconOnly ? '' : html`
${this.text || 'Button'}
`}\n ${rightIcon}\n \n `;\n }\n\n public async dispatchClick() {\n if (this.disabled) {\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('clicked', {\n detail: {\n data: this.eventDetailData,\n },\n bubbles: true,\n })\n );\n }\n\n public async firstUpdated() {\n // Extract light DOM content (icon + text) and set as properties\n this.extractLightDom();\n }\n}\n", "import { demoFunc } from './dees-statsgrid.demo.js';\nimport * as plugins from '../../00plugins.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n state,\n css,\n unsafeCSS,\n cssManager,\n} from '@design.estate/dees-element';\nimport type { TemplateResult } from '@design.estate/dees-element';\n\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '../../00group-button/dees-button/dees-button.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-statsgrid': DeesStatsGrid;\n }\n}\n\nexport interface ICpuCore {\n id: string | number;\n usage: number; // 0-100\n label?: string;\n}\n\nexport interface IPartitionData {\n used: number; // bytes\n total: number; // bytes\n filesystem: string; // e.g., 'ext4', 'NTFS', 'btrfs'\n mountPoint?: string; // e.g., '/', '/home', 'C:'\n}\n\nexport interface IDiskData {\n capacity: number; // bytes\n model?: string; // e.g., 'Samsung 970 EVO Plus'\n type?: 'ssd' | 'hdd' | 'nvme';\n iops?: {\n read: number;\n write: number;\n };\n health?: number; // 0-100 (100 = new, 0 = end of life)\n}\n\nexport interface IStatsTile {\n id: string;\n title: string;\n value: number | string;\n unit?: string;\n type: 'number' | 'gauge' | 'percentage' | 'trend' | 'text' | 'multiPercentage' | 'cpuCores' | 'partition' | 'disk';\n\n // Layout options\n columnSpan?: number; // Number of columns to span (default: 1)\n\n // For gauge type\n gaugeOptions?: {\n min: number;\n max: number;\n thresholds?: Array<{value: number; color: string}>;\n };\n\n // For trend type\n trendData?: number[];\n\n // For multiPercentage type\n percentages?: Array<{\n label: string;\n value: number;\n color?: string;\n }>;\n\n // For cpuCores type\n coresData?: ICpuCore[];\n\n // For partition type\n partitionData?: IPartitionData;\n\n // For disk type\n diskData?: IDiskData;\n\n // Visual customization\n color?: string;\n icon?: string;\n description?: string;\n\n // Tile-specific actions\n actions?: plugins.tsclass.website.IMenuItem[];\n}\n\n@customElement('dees-statsgrid')\nexport class DeesStatsGrid extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Data View'];\n\n @property({ type: Array })\n accessor tiles: IStatsTile[] = [];\n\n @property({ type: Number })\n accessor minTileWidth: number = 250;\n\n @property({ type: Number })\n accessor gap: number = 16;\n\n @property({ type: Array })\n accessor gridActions: plugins.tsclass.website.IMenuItem[] = [];\n\n @state()\n accessor contextMenuVisible = false;\n\n @state()\n accessor contextMenuPosition = { x: 0, y: 0 };\n\n @state()\n accessor contextMenuActions: plugins.tsclass.website.IMenuItem[] = [];\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n width: 100%;\n font-family: ${cssGeistFontFamily};\n }\n\n /* CSS Variables for consistent spacing and sizing */\n :host {\n --grid-gap: 12px;\n --tile-padding: 16px;\n --header-spacing: 12px;\n --content-min-height: 40px;\n --value-font-size: 26px;\n --unit-font-size: 14px;\n --label-font-size: 12px;\n --title-font-size: 13px;\n --description-spacing: 8px;\n --border-radius: 6px;\n --transition-duration: 0.15s;\n }\n\n /* Grid Layout */\n .grid-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: calc(var(--grid-gap) * 1.5);\n min-height: 40px;\n }\n\n .grid-title {\n font-size: 16px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n letter-spacing: -0.01em;\n }\n\n .grid-actions {\n display: flex;\n gap: 6px;\n }\n\n .grid-actions dees-button {\n font-size: var(--label-font-size);\n }\n\n .stats-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(${unsafeCSS(250)}px, 1fr));\n gap: ${unsafeCSS(16)}px;\n width: 100%;\n }\n\n /* Tile Base Styles */\n .stats-tile {\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n border-radius: var(--border-radius);\n padding: var(--tile-padding);\n transition: all var(--transition-duration) ease;\n cursor: default;\n position: relative;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .stats-tile:hover {\n background: ${cssManager.bdTheme('#fafafa', '#0d0d0d')};\n border-color: ${cssManager.bdTheme('#d0d0d0', '#2a2a2a')};\n }\n\n .stats-tile.clickable {\n cursor: pointer;\n }\n\n .stats-tile.clickable:hover {\n transform: translateY(-1px);\n box-shadow: 0 2px 6px ${cssManager.bdTheme('rgba(0,0,0,0.03)', 'rgba(0,0,0,0.15)')};\n }\n\n /* Tile Header */\n .tile-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: var(--header-spacing);\n flex-shrink: 0;\n }\n\n .tile-title {\n font-size: var(--title-font-size);\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n margin: 0;\n letter-spacing: -0.01em;\n line-height: 1.2;\n }\n\n .tile-icon {\n opacity: 0.7;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n font-size: 16px;\n flex-shrink: 0;\n }\n\n /* Tile Content */\n .tile-content {\n min-height: var(--content-min-height);\n display: flex;\n flex-direction: column;\n flex: 1;\n }\n\n .tile-value {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n display: flex;\n align-items: baseline;\n gap: 4px;\n letter-spacing: -0.025em;\n }\n\n .tile-unit {\n font-size: var(--unit-font-size);\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n letter-spacing: -0.01em;\n }\n\n .tile-description {\n font-size: var(--label-font-size);\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n margin-top: var(--description-spacing);\n letter-spacing: -0.01em;\n flex-shrink: 0;\n }\n\n /* Gauge Styles */\n .gauge-wrapper {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .gauge-container {\n width: 120px;\n height: 70px;\n position: relative;\n margin-top: -8px;\n }\n\n .gauge-svg {\n width: 100%;\n height: 100%;\n }\n\n .gauge-background {\n fill: none;\n stroke: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n stroke-width: 6;\n }\n\n .gauge-fill {\n fill: none;\n stroke-width: 6;\n stroke-linecap: round;\n transition: stroke-dashoffset 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .gauge-text {\n fill: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n font-family: ${cssGeistFontFamily};\n font-size: var(--value-font-size);\n font-weight: 600;\n text-anchor: middle;\n letter-spacing: -0.025em;\n }\n \n .gauge-unit {\n font-size: var(--unit-font-size);\n fill: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n font-weight: 400;\n font-family: ${cssGeistFontFamily};\n }\n\n /* Percentage Styles */\n .percentage-wrapper {\n width: 100%;\n position: relative;\n display: flex;\n flex-direction: column;\n flex: 1;\n }\n\n .percentage-value {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n margin-bottom: 8px;\n }\n\n .percentage-bar {\n width: 100%;\n height: 6px;\n background: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n border-radius: 3px;\n overflow: hidden;\n margin-top: auto;\n }\n\n .percentage-fill {\n height: 100%;\n background: ${cssManager.bdTheme('#333333', '#e0e0e0')};\n transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n border-radius: 3px;\n }\n\n /* Multi Percentage Styles */\n .multi-percentage-wrapper {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n }\n\n .multi-percentage-items {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: auto;\n }\n\n .multi-percentage-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .multi-percentage-header {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .multi-percentage-label {\n font-size: 11px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n letter-spacing: -0.01em;\n }\n\n .multi-percentage-value {\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n letter-spacing: -0.01em;\n }\n\n .multi-percentage-bar {\n width: 100%;\n height: 4px;\n background: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n border-radius: 2px;\n overflow: hidden;\n }\n\n .multi-percentage-fill {\n height: 100%;\n background: ${cssManager.bdTheme('#333333', '#e0e0e0')};\n transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n border-radius: 2px;\n }\n\n /* CPU Cores Styles */\n .cpu-cores-wrapper {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 80px;\n }\n\n .cpu-cores-header {\n display: flex;\n align-items: baseline;\n gap: 8px;\n margin-bottom: 12px;\n }\n\n .cpu-cores-value {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n }\n\n .cpu-cores-unit {\n font-size: var(--unit-font-size);\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n letter-spacing: -0.01em;\n }\n\n .cpu-cores-label {\n font-size: var(--label-font-size);\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n letter-spacing: -0.01em;\n margin-left: auto;\n }\n\n .cpu-cores-bars {\n display: flex;\n align-items: flex-end;\n gap: 3px;\n flex: 1;\n min-height: 60px;\n padding: 4px 0;\n }\n\n .cpu-cores-bars.centered {\n justify-content: center;\n }\n\n .cpu-core-bar-container {\n flex: 1;\n min-width: 6px;\n max-width: 24px;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n }\n\n .cpu-core-bar-wrapper {\n flex: 1;\n width: 100%;\n background: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n border-radius: 2px;\n position: relative;\n overflow: hidden;\n min-height: 40px;\n }\n\n .cpu-core-bar-fill {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n background: ${cssManager.bdTheme('#666666', '#888888')};\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s ease;\n border-radius: 2px 2px 0 0;\n }\n\n .cpu-core-bar-fill.low {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n }\n\n .cpu-core-bar-fill.medium {\n background: ${cssManager.bdTheme('hsl(45.4 93.4% 47.5%)', 'hsl(45.4 93.4% 47.5%)')};\n }\n\n .cpu-core-bar-fill.high {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 84.2% 60.2%)')};\n }\n\n .cpu-core-label {\n font-size: 9px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n\n /* Partition Styles */\n .partition-wrapper {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 8px;\n }\n\n .partition-header {\n display: flex;\n align-items: baseline;\n gap: 8px;\n }\n\n .partition-percentage {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n }\n\n .partition-bar {\n width: 100%;\n height: 6px;\n background: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n border-radius: 3px;\n overflow: hidden;\n }\n\n .partition-bar-fill {\n height: 100%;\n background: ${cssManager.bdTheme('#333333', '#e0e0e0')};\n transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n border-radius: 3px;\n }\n\n .partition-bar-fill.warning {\n background: ${cssManager.bdTheme('hsl(45.4 93.4% 47.5%)', 'hsl(45.4 93.4% 47.5%)')};\n }\n\n .partition-bar-fill.critical {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 84.2% 60.2%)')};\n }\n\n .partition-stats {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: auto;\n }\n\n .partition-stat {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .partition-stat-label {\n font-size: 10px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-transform: uppercase;\n letter-spacing: 0.02em;\n }\n\n .partition-stat-value {\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n letter-spacing: -0.01em;\n }\n\n .partition-meta {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 4px;\n }\n\n .partition-filesystem {\n font-size: 11px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n padding: 2px 6px;\n border-radius: 3px;\n }\n\n .partition-mountpoint {\n font-size: 11px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n }\n\n /* Disk Styles */\n .disk-wrapper {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 8px;\n }\n\n .disk-capacity {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n }\n\n .disk-model {\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .disk-type-badge {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n padding: 2px 6px;\n border-radius: 3px;\n }\n\n .disk-metrics {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: auto;\n }\n\n .disk-iops {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .disk-iops-item {\n display: flex;\n align-items: baseline;\n gap: 4px;\n }\n\n .disk-iops-label {\n font-size: 10px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-transform: uppercase;\n }\n\n .disk-iops-value {\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n }\n\n .disk-health {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .disk-health-header {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .disk-health-label {\n font-size: 10px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-transform: uppercase;\n }\n\n .disk-health-value {\n font-size: 12px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n }\n\n .disk-health-bar {\n width: 100%;\n height: 4px;\n background: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n border-radius: 2px;\n overflow: hidden;\n }\n\n .disk-health-fill {\n height: 100%;\n transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n border-radius: 2px;\n }\n\n .disk-health-fill.good {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n }\n\n .disk-health-fill.warning {\n background: ${cssManager.bdTheme('hsl(45.4 93.4% 47.5%)', 'hsl(45.4 93.4% 47.5%)')};\n }\n\n .disk-health-fill.critical {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 84.2% 60.2%)')};\n }\n\n /* Trend Styles */\n .trend-container {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n }\n\n .trend-header {\n display: flex;\n align-items: baseline;\n gap: 8px;\n }\n\n .trend-value {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n }\n\n .trend-unit {\n font-size: var(--unit-font-size);\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n letter-spacing: -0.01em;\n }\n\n .trend-label {\n font-size: var(--label-font-size);\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n letter-spacing: -0.01em;\n margin-left: auto;\n }\n\n .trend-graph {\n width: 100%;\n height: 28px;\n position: relative;\n margin-top: auto;\n }\n\n .trend-svg {\n width: 100%;\n height: 100%;\n display: block;\n }\n\n .trend-line {\n fill: none;\n stroke: ${cssManager.bdTheme('#999999', '#666666')};\n stroke-width: 1.5;\n stroke-linejoin: round;\n stroke-linecap: round;\n }\n\n .trend-area {\n fill: ${cssManager.bdTheme('rgba(150, 150, 150, 0.08)', 'rgba(100, 100, 100, 0.08)')};\n }\n\n /* Text Value Styles */\n .text-value {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n }\n\n /* Context Menu */\n dees-contextmenu {\n position: fixed;\n z-index: 1000;\n }\n `,\n ];\n\n constructor() {\n super();\n }\n\n public render(): TemplateResult {\n return html`\n ${this.gridActions.length > 0 ? html`\n
\n
\n
\n ${this.gridActions.map(action => html`\n this.handleGridAction(action)}\n type=\"outline\"\n size=\"sm\"\n >\n ${action.iconName ? html`` : ''}\n ${action.name}\n \n `)}\n
\n
\n ` : ''}\n \n
\n ${this.tiles.map(tile => this.renderTile(tile))}\n
\n\n ${this.contextMenuVisible ? html`\n this.contextMenuVisible = false}\n >\n ` : ''}\n `;\n }\n\n private renderTile(tile: IStatsTile): TemplateResult {\n const hasActions = tile.actions && tile.actions.length > 0;\n const clickable = hasActions && tile.actions.length === 1;\n const columnSpan = tile.columnSpan && tile.columnSpan > 1 ? tile.columnSpan : undefined;\n\n return html`\n this.handleTileAction(tile.actions![0], tile) : undefined}\n @contextmenu=${hasActions ? (e: MouseEvent) => this.showContextMenu(e, tile) : undefined}\n >\n
\n

${tile.title}

\n ${tile.icon ? html`\n \n ` : ''}\n
\n \n
\n ${this.renderTileContent(tile)}\n
\n \n ${tile.description && tile.type !== 'trend' ? html`\n
${tile.description}
\n ` : ''}\n \n `;\n }\n\n private renderTileContent(tile: IStatsTile): TemplateResult {\n switch (tile.type) {\n case 'number':\n return html`\n
\n ${tile.value}\n ${tile.unit ? html`${tile.unit}` : ''}\n
\n `;\n\n case 'gauge':\n return this.renderGauge(tile);\n\n case 'percentage':\n return this.renderPercentage(tile);\n\n case 'trend':\n return this.renderTrend(tile);\n\n case 'multiPercentage':\n return this.renderMultiPercentage(tile);\n\n case 'cpuCores':\n return this.renderCpuCores(tile);\n\n case 'partition':\n return this.renderPartition(tile);\n\n case 'disk':\n return this.renderDisk(tile);\n\n case 'text':\n return html`\n
\n ${tile.value}\n
\n `;\n\n default:\n return html`
${tile.value}
`;\n }\n }\n\n private renderGauge(tile: IStatsTile): TemplateResult {\n const value = typeof tile.value === 'number' ? tile.value : parseFloat(tile.value);\n const options = tile.gaugeOptions || { min: 0, max: 100 };\n const percentage = ((value - options.min) / (options.max - options.min)) * 100;\n\n // SVG dimensions and calculations\n const width = 120;\n const height = 70;\n const strokeWidth = 6;\n const padding = strokeWidth / 2 + 2;\n const radius = 40;\n const centerX = width / 2;\n const centerY = height - padding;\n \n // Arc path\n const startX = centerX - radius;\n const startY = centerY;\n const endX = centerX + radius;\n const endY = centerY;\n const arcPath = `M ${startX} ${startY} A ${radius} ${radius} 0 0 1 ${endX} ${endY}`;\n \n // Calculate stroke dasharray and dashoffset\n const circumference = Math.PI * radius;\n const strokeDashoffset = circumference - (circumference * percentage) / 100;\n\n let strokeColor = tile.color || cssManager.bdTheme('hsl(215.3 25% 28.8%)', 'hsl(210 40% 78%)');\n if (options.thresholds) {\n const sortedThresholds = [...options.thresholds].sort((a, b) => b.value - a.value);\n for (const threshold of sortedThresholds) {\n if (value >= threshold.value) {\n strokeColor = threshold.color;\n break;\n }\n }\n }\n\n return html`\n
\n
\n \n \n \n \n \n \n \n ${value}${tile.unit ? html`${tile.unit}` : ''}\n \n \n
\n
\n `;\n }\n\n private renderPercentage(tile: IStatsTile): TemplateResult {\n const value = typeof tile.value === 'number' ? tile.value : parseFloat(tile.value);\n const percentage = Math.min(100, Math.max(0, value));\n\n return html`\n
\n
${percentage}%
\n
\n
\n
\n
\n `;\n }\n\n private renderTrend(tile: IStatsTile): TemplateResult {\n if (!tile.trendData || tile.trendData.length < 2) {\n return html`
${tile.value}
`;\n }\n\n const data = tile.trendData;\n const max = Math.max(...data);\n const min = Math.min(...data);\n const range = max - min || 1;\n const width = 300;\n const height = 32;\n \n // Add padding to prevent clipping\n const padding = 2;\n const points = data.map((value, index) => {\n const x = (index / (data.length - 1)) * width;\n const y = padding + (height - 2 * padding) - ((value - min) / range) * (height - 2 * padding);\n return `${x},${y}`;\n }).join(' ');\n\n const areaPoints = `0,${height} ${points} ${width},${height}`;\n\n return html`\n
\n
\n ${tile.value}\n ${tile.unit ? html`${tile.unit}` : ''}\n ${tile.description ? html`${tile.description}` : ''}\n
\n
\n \n \n \n \n
\n
\n `;\n }\n\n private renderMultiPercentage(tile: IStatsTile): TemplateResult {\n if (!tile.percentages || tile.percentages.length === 0) {\n return html`
${tile.value}
`;\n }\n\n // Limit to 3 percentages\n const items = tile.percentages.slice(0, 3);\n\n return html`\n
\n
\n ${items.map(item => {\n const percentage = Math.min(100, Math.max(0, item.value));\n return html`\n
\n
\n ${item.label}\n ${percentage}%\n
\n
\n
\n
\n
\n `;\n })}\n
\n \n `;\n }\n\n private renderCpuCores(tile: IStatsTile): TemplateResult {\n if (!tile.coresData || tile.coresData.length === 0) {\n return html`
${tile.value}
`;\n }\n\n const cores = tile.coresData;\n const avgUsage = Math.round(cores.reduce((sum, core) => sum + core.usage, 0) / cores.length);\n\n // Determine color class based on usage\n const getColorClass = (usage: number): string => {\n if (usage < 50) return 'low';\n if (usage < 80) return 'medium';\n return 'high';\n };\n\n // Calculate if bars should be centered (when they take up less than 66.6% of available width)\n // Max bar width = cores * 24px + (cores - 1) * 3px gap\n const maxBarsWidth = cores.length * 24 + (cores.length - 1) * 3;\n // Estimate tile content width based on columnSpan and minTileWidth (subtract padding)\n const columnSpan = tile.columnSpan || 1;\n const estimatedTileWidth = (this.minTileWidth * columnSpan) + ((columnSpan - 1) * this.gap) - 32; // 32px for padding\n const shouldCenter = maxBarsWidth < estimatedTileWidth * 0.666;\n\n return html`\n
\n
\n ${avgUsage}\n %\n ${cores.length} cores\n
\n
\n ${cores.map(core => {\n const usage = Math.min(100, Math.max(0, core.usage));\n const colorClass = getColorClass(usage);\n return html`\n
\n
\n
\n
\n ${cores.length <= 16 ? html`\n ${core.label || core.id}\n ` : ''}\n
\n `;\n })}\n
\n \n `;\n }\n\n private formatBytes(bytes: number): string {\n if (bytes === 0) return '0 B';\n const k = 1024;\n const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];\n }\n\n private renderPartition(tile: IStatsTile): TemplateResult {\n if (!tile.partitionData) {\n return html`
${tile.value}
`;\n }\n\n const { used, total, filesystem, mountPoint } = tile.partitionData;\n const percentage = Math.min(100, Math.max(0, (used / total) * 100));\n const free = total - used;\n\n // Determine color class based on usage\n const getColorClass = (): string => {\n if (percentage >= 90) return 'critical';\n if (percentage >= 75) return 'warning';\n return '';\n };\n\n return html`\n
\n
\n ${Math.round(percentage)}%\n
\n
\n
\n
\n
\n
\n Used\n ${this.formatBytes(used)}\n
\n
\n Free\n ${this.formatBytes(free)}\n
\n
\n
\n ${filesystem}\n ${mountPoint ? html`${mountPoint}` : ''}\n
\n \n `;\n }\n\n private renderDisk(tile: IStatsTile): TemplateResult {\n if (!tile.diskData) {\n return html`
${tile.value}
`;\n }\n\n const { capacity, model, type, iops, health } = tile.diskData;\n\n // Determine health color class (inverted - high is good)\n const getHealthClass = (value: number): string => {\n if (value >= 70) return 'good';\n if (value >= 30) return 'warning';\n return 'critical';\n };\n\n return html`\n
\n
${this.formatBytes(capacity)}
\n ${model || type ? html`\n
\n ${model ? html`${model}` : ''}\n ${type ? html`${type}` : ''}\n
\n ` : ''}\n
\n ${iops ? html`\n
\n
\n Read\n ${iops.read.toLocaleString()}\n
\n
\n Write\n ${iops.write.toLocaleString()}\n
\n
\n ` : ''}\n ${health !== undefined ? html`\n
\n
\n Health\n ${health}%\n
\n
\n
\n
\n
\n ` : ''}\n
\n \n `;\n }\n\n private async handleGridAction(action: plugins.tsclass.website.IMenuItem) {\n if (action.action) {\n await action.action();\n }\n }\n\n private async handleTileAction(action: plugins.tsclass.website.IMenuItem, _tile: IStatsTile) {\n if (action.action) {\n await action.action();\n }\n // Note: tile data is available through closure when defining actions\n }\n\n private showContextMenu(event: MouseEvent, tile: IStatsTile) {\n if (!tile.actions || tile.actions.length === 0) return;\n \n event.preventDefault();\n this.contextMenuPosition = { x: event.clientX, y: event.clientY };\n this.contextMenuActions = tile.actions;\n this.contextMenuVisible = true;\n\n // Close context menu on click outside\n const closeHandler = () => {\n this.contextMenuVisible = false;\n document.removeEventListener('click', closeHandler);\n };\n setTimeout(() => {\n document.addEventListener('click', closeHandler);\n }, 100);\n }\n}", "import { html, css, DeesElement, customElement, state } from '@design.estate/dees-element';\nimport type { DeesAppui } from './dees-appui.js';\nimport type { IAppConfig, IViewActivationContext } from '../../interfaces/appconfig.js';\nimport type * as interfaces from '../../interfaces/index.js';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';\nimport type { IStatsTile } from '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';\n\n// Demo view component with lifecycle hooks\n@customElement('demo-dashboard-view')\nclass DemoDashboardView extends DeesElement {\n @state()\n accessor activated: boolean = false;\n\n private ctx: IViewActivationContext;\n\n private statsTiles: IStatsTile[] = [\n {\n id: 'users',\n title: 'Active Users',\n value: 1234,\n type: 'number',\n icon: 'lucide:users',\n description: 'Online now',\n color: '#22c55e'\n },\n {\n id: 'api-calls',\n title: 'API Calls',\n value: 45200,\n type: 'trend',\n icon: 'lucide:activity',\n description: '+12% from last hour',\n color: '#3b82f6',\n trendData: [32000, 35000, 38000, 41000, 39000, 42000, 45200]\n },\n {\n id: 'health',\n title: 'System Health',\n value: 99.9,\n unit: '%',\n type: 'gauge',\n icon: 'lucide:heart-pulse',\n description: 'All systems operational',\n color: '#10b981',\n gaugeOptions: {\n min: 0,\n max: 100,\n thresholds: [\n { value: 80, color: '#ef4444' },\n { value: 95, color: '#f59e0b' },\n { value: 100, color: '#10b981' }\n ]\n }\n },\n {\n id: 'response',\n title: 'Avg Response',\n value: 127,\n unit: 'ms',\n type: 'number',\n icon: 'lucide:timer',\n description: '-15ms from yesterday',\n color: '#8b5cf6'\n },\n {\n id: 'resources',\n title: 'Resource Usage',\n value: '',\n type: 'multiPercentage',\n icon: 'lucide:server',\n percentages: [\n { label: 'CPU', value: 67, color: '#3b82f6' },\n { label: 'Memory', value: 84, color: '#8b5cf6' },\n { label: 'Disk', value: 45, color: '#10b981' }\n ]\n },\n {\n id: 'requests',\n title: 'Requests/sec',\n value: 1850,\n type: 'trend',\n icon: 'lucide:zap',\n description: 'Current throughput',\n color: '#06b6d4',\n trendData: [1200, 1400, 1350, 1600, 1750, 1680, 1850]\n }\n ];\n\n onActivate(context: IViewActivationContext) {\n this.ctx = context;\n this.activated = true;\n console.log('Dashboard activated with context:', context);\n\n // Set view-specific secondary menu with new item types\n context.appui.setSecondaryMenu({\n heading: 'Dashboard',\n groups: [\n {\n name: 'Quick Access',\n iconName: 'lucide:zap',\n items: [\n { key: 'Overview', iconName: 'layoutDashboard', action: () => console.log('Overview') },\n { key: 'Recent', iconName: 'clock', badge: 5, action: () => console.log('Recent') },\n { type: 'divider' },\n { type: 'action', key: 'Refresh Data', iconName: 'lucide:refreshCw', action: () => alert('Refreshing dashboard data...') },\n ] as interfaces.ISecondaryMenuItem[]\n },\n {\n name: 'Filters',\n iconName: 'lucide:filter',\n items: [\n { type: 'header', label: 'Time Range' },\n { type: 'filter', key: 'Live Updates', iconName: 'lucide:radio', active: true, onToggle: (active) => console.log('Live updates:', active) },\n { type: 'filter', key: 'Show Archived', iconName: 'lucide:archive', active: false, onToggle: (active) => console.log('Show archived:', active) },\n { type: 'divider' },\n { type: 'multiFilter', key: 'Data Sources', iconName: 'lucide:database', options: [\n { key: 'api', label: 'API Server', checked: true, iconName: 'lucide:server' },\n { key: 'web', label: 'Web Traffic', checked: true, iconName: 'lucide:globe' },\n { key: 'mobile', label: 'Mobile App', checked: false, iconName: 'lucide:smartphone' },\n ], onChange: (keys) => console.log('Data sources:', keys) },\n ] as interfaces.ISecondaryMenuItem[]\n },\n {\n name: 'Analytics',\n iconName: 'lucide:barChart3',\n items: [\n { key: 'Metrics', iconName: 'activity', action: () => console.log('Metrics') },\n { key: 'Reports', iconName: 'fileText', badge: 'new', badgeVariant: 'success', action: () => console.log('Reports') },\n { type: 'divider' },\n { type: 'link', key: 'Analytics Docs', iconName: 'lucide:externalLink', href: 'https://docs.example.com/analytics' },\n ] as interfaces.ISecondaryMenuItem[]\n }\n ]\n });\n\n // Set content tabs for dashboard\n context.appui.setContentTabs([\n { key: 'Overview', iconName: 'lucide:layoutDashboard', action: () => console.log('Overview tab') },\n { key: 'Analytics', iconName: 'lucide:barChart', action: () => console.log('Analytics tab') },\n { key: 'Reports', iconName: 'lucide:fileText', action: () => console.log('Reports tab') },\n ]);\n }\n\n onDeactivate() {\n this.activated = false;\n console.log('Dashboard deactivated');\n }\n\n render() {\n return html`\n \n

Dashboard

\n

Welcome back! Here's an overview of your system.

\n console.log('Tile action:', e.detail)}\n >\n\n
\n

Context Actions (ctx.appui)

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n `;\n }\n\n private tabCounter = 0;\n\n private addCloseableTab() {\n if (!this.ctx) return;\n this.tabCounter++;\n const tabKey = `Tab ${this.tabCounter}`;\n this.ctx.appui.addContentTab({\n key: tabKey,\n iconName: 'lucide:file',\n action: () => console.log(`Selected ${tabKey}`),\n closeable: true,\n onClose: () => {\n this.ctx?.appui.removeContentTab(tabKey);\n }\n });\n }\n}\n\n// Settings view with route params and canDeactivate guard\n@customElement('demo-settings-view')\nclass DemoSettingsView extends DeesElement {\n @state()\n accessor section: string = 'general';\n\n @state()\n accessor hasChanges: boolean = false;\n\n private appui: DeesAppui;\n\n onActivate(context: IViewActivationContext) {\n this.appui = context.appui as any;\n console.log('Settings activated with params:', context.params);\n\n if (context.params?.section) {\n this.section = context.params.section;\n }\n\n // Set settings-specific secondary menu\n context.appui.setSecondaryMenu({\n heading: 'Settings',\n groups: [\n {\n name: 'Account',\n iconName: 'lucide:user',\n items: [\n { key: 'general', iconName: 'settings', action: () => this.showSection('general') },\n { key: 'profile', iconName: 'user', action: () => this.showSection('profile') },\n { key: 'security', iconName: 'shield', action: () => this.showSection('security') },\n ]\n },\n {\n name: 'Preferences',\n iconName: 'lucide:sliders',\n items: [\n { key: 'notifications', iconName: 'bell', badge: 3, action: () => this.showSection('notifications') },\n { key: 'appearance', iconName: 'palette', action: () => this.showSection('appearance') },\n ]\n }\n ]\n });\n\n context.appui.setSecondaryMenuSelection(this.section);\n\n // Clear content tabs for settings\n context.appui.setContentTabs([]);\n }\n\n onDeactivate() {\n console.log('Settings deactivated');\n this.hasChanges = false;\n }\n\n canDeactivate(): boolean | string {\n if (this.hasChanges) {\n return 'You have unsaved changes. Leave anyway?';\n }\n return true;\n }\n\n showSection(section: string) {\n this.section = section;\n this.appui?.setSecondaryMenuSelection(section);\n }\n\n simulateChange() {\n this.hasChanges = true;\n }\n\n render() {\n return html`\n \n

Settings

\n

Manage your account and application preferences.

\n
\n Current section: ${this.section}\n
\n
\n \n
\n ${this.hasChanges ? html`

You have unsaved changes. Navigation will prompt for confirmation.

` : ''}\n `;\n }\n}\n\n// Projects view\n@customElement('demo-projects-view')\nclass DemoProjectsView extends DeesElement {\n onActivate(context: IViewActivationContext) {\n context.appui.setSecondaryMenu({\n heading: 'Projects',\n groups: [\n {\n name: 'My Projects',\n iconName: 'lucide:folder',\n items: [\n { key: 'Active', iconName: 'folder', badge: 3, action: () => console.log('Active') },\n { key: 'Archived', iconName: 'archive', action: () => console.log('Archived') },\n { key: 'Shared', iconName: 'users', badge: 2, badgeVariant: 'warning', action: () => console.log('Shared') },\n ] as interfaces.ISecondaryMenuItem[]\n },\n {\n name: 'Quick Actions',\n iconName: 'lucide:zap',\n items: [\n { type: 'action', key: 'New Project', iconName: 'lucide:folderPlus', action: () => alert('Create new project') },\n { type: 'action', key: 'Import', iconName: 'lucide:download', action: () => alert('Import project') },\n { type: 'divider' },\n { type: 'link', key: 'Templates', iconName: 'lucide:layoutTemplate', href: 'https://templates.example.com' },\n ] as interfaces.ISecondaryMenuItem[]\n }\n ]\n });\n\n context.appui.setContentTabs([\n { key: 'Grid', iconName: 'lucide:grid', action: () => console.log('Grid view') },\n { key: 'List', iconName: 'lucide:list', action: () => console.log('List view') },\n { key: 'Board', iconName: 'lucide:kanban', action: () => console.log('Board view') },\n ]);\n }\n\n render() {\n return html`\n \n

Projects

\n
\n
\n

Frontend App Active

\n

React-based dashboard application

\n
\n
\n

API Server Active

\n

Node.js REST API backend

\n
\n
\n

Mobile App Active

\n

React Native iOS/Android app

\n
\n
\n

Documentation

\n

Technical documentation site

\n
\n
\n `;\n }\n}\n\n// Tasks view showing inline template content\n@customElement('demo-tasks-view')\nclass DemoTasksView extends DeesElement {\n onActivate(context: IViewActivationContext) {\n context.appui.setSecondaryMenu({\n heading: 'Tasks',\n groups: [\n {\n name: 'Views',\n iconName: 'lucide:eye',\n items: [\n { key: 'All Tasks', iconName: 'list', badge: 12, action: () => console.log('All') },\n { key: 'Today', iconName: 'calendar', badge: 3, action: () => console.log('Today') },\n { key: 'Upcoming', iconName: 'clock', action: () => console.log('Upcoming') },\n { key: 'Completed', iconName: 'checkCircle', action: () => console.log('Completed') },\n ] as interfaces.ISecondaryMenuItem[]\n },\n {\n name: 'Filters',\n iconName: 'lucide:filter',\n items: [\n { type: 'header', label: 'Priority' },\n { type: 'multiFilter', key: 'Priority', iconName: 'lucide:flag', options: [\n { key: 'high', label: 'High', checked: true, iconName: 'lucide:alertCircle' },\n { key: 'medium', label: 'Medium', checked: true, iconName: 'lucide:minusCircle' },\n { key: 'low', label: 'Low', checked: false, iconName: 'lucide:circle' },\n ], onChange: (keys) => console.log('Priority filter:', keys) },\n { type: 'divider' },\n { type: 'header', label: 'Options' },\n { type: 'filter', key: 'Show Subtasks', iconName: 'lucide:listTree', active: true, onToggle: (active) => console.log('Show subtasks:', active) },\n { type: 'filter', key: 'Show Completed', iconName: 'lucide:checkSquare', active: false, onToggle: (active) => console.log('Show completed:', active) },\n ] as interfaces.ISecondaryMenuItem[]\n },\n {\n name: 'Actions',\n iconName: 'lucide:zap',\n items: [\n { type: 'action', key: 'Add Task', iconName: 'lucide:plus', action: () => alert('Add new task') },\n { type: 'action', key: 'Import Tasks', iconName: 'lucide:upload', action: () => alert('Import tasks') },\n { type: 'divider' },\n { type: 'action', key: 'Clear Completed', iconName: 'lucide:trash2', variant: 'danger', confirmMessage: 'Delete all completed tasks?', action: () => alert('Cleared completed tasks') },\n ] as interfaces.ISecondaryMenuItem[]\n }\n ]\n });\n\n context.appui.setContentTabs([\n { key: 'List', iconName: 'lucide:list', action: () => console.log('List') },\n { key: 'Calendar', iconName: 'lucide:calendar', action: () => console.log('Calendar') },\n ]);\n }\n\n render() {\n return html`\n \n

Tasks

\n
\n
\n
\n Review pull request #42\n Today\n High\n
\n
\n
\n Update documentation\n Tomorrow\n Medium\n
\n
\n
\n Write unit tests\n Dec 20\n
\n
\n `;\n }\n}\n\nexport const demoFunc = () => {\n // App configuration using the new unified API\n const appConfig: IAppConfig = {\n branding: {\n logoIcon: 'lucide:box',\n logoText: 'Acme App'\n },\n\n appBar: {\n menuItems: [\n {\n name: 'File',\n action: async () => {},\n submenu: [\n { name: 'New Project', shortcut: 'Cmd+N', iconName: 'filePlus', action: async () => console.log('New') },\n { name: 'Open...', shortcut: 'Cmd+O', iconName: 'folderOpen', action: async () => console.log('Open') },\n { name: 'Recent Projects', action: async () => {}, submenu: [\n { name: 'my-app', action: async () => console.log('Open my-app') },\n { name: 'component-lib', action: async () => console.log('Open component-lib') },\n ]},\n { divider: true },\n { name: 'Save All', shortcut: 'Cmd+S', iconName: 'save', action: async () => console.log('Save') },\n ]\n },\n {\n name: 'Edit',\n action: async () => {},\n submenu: [\n { name: 'Undo', shortcut: 'Cmd+Z', iconName: 'undo', action: async () => console.log('Undo') },\n { name: 'Redo', shortcut: 'Cmd+Shift+Z', iconName: 'redo', action: async () => console.log('Redo') },\n { divider: true },\n { name: 'Cut', shortcut: 'Cmd+X', iconName: 'scissors', action: async () => console.log('Cut') },\n { name: 'Copy', shortcut: 'Cmd+C', iconName: 'copy', action: async () => console.log('Copy') },\n { name: 'Paste', shortcut: 'Cmd+V', iconName: 'clipboard', action: async () => console.log('Paste') },\n ]\n },\n {\n name: 'View',\n action: async () => {},\n submenu: [\n { name: 'Toggle Sidebar', shortcut: 'Cmd+B', action: async () => console.log('Toggle sidebar') },\n { name: 'Toggle Activity Log', shortcut: 'Cmd+Shift+A', action: async () => console.log('Toggle activity') },\n ]\n },\n {\n name: 'Help',\n action: async () => {},\n submenu: [\n { name: 'Documentation', iconName: 'book', action: async () => console.log('Docs') },\n { name: 'Keyboard Shortcuts', iconName: 'keyboard', shortcut: 'Cmd+/', action: async () => console.log('Shortcuts') },\n { divider: true },\n { name: 'About', iconName: 'info', action: async () => console.log('About') },\n ]\n }\n ],\n breadcrumbs: 'Dashboard',\n showWindowControls: true,\n showSearch: true,\n user: {\n name: 'Jane Smith',\n email: 'jane.smith@example.com',\n status: 'online'\n },\n profileMenuItems: [\n { name: 'Profile', iconName: 'user', action: async () => console.log('Profile') },\n { name: 'Account Settings', iconName: 'settings', action: async () => console.log('Settings') },\n { divider: true },\n { name: 'Help & Support', iconName: 'helpCircle', action: async () => console.log('Help') },\n { divider: true },\n { name: 'Sign Out', iconName: 'logOut', action: async () => console.log('Sign out') }\n ]\n },\n\n views: [\n {\n id: 'dashboard',\n name: 'Dashboard',\n iconName: 'lucide:home',\n content: 'demo-dashboard-view',\n route: 'dashboard'\n },\n {\n id: 'projects',\n name: 'Projects',\n iconName: 'lucide:folder',\n content: 'demo-projects-view',\n route: 'projects',\n badge: 3\n },\n {\n id: 'tasks',\n name: 'Tasks',\n iconName: 'lucide:checkSquare',\n content: 'demo-tasks-view',\n route: 'tasks',\n badge: 12\n },\n {\n id: 'settings',\n name: 'Settings',\n iconName: 'lucide:settings',\n content: 'demo-settings-view',\n route: 'settings/:section?'\n },\n ],\n\n mainMenu: {\n sections: [\n { name: 'Main', views: ['dashboard'] },\n { name: 'Workspace', views: ['projects', 'tasks'] },\n ],\n bottomItems: ['settings']\n },\n\n defaultView: 'dashboard',\n\n bottomBar: {\n visible: true,\n widgets: [\n {\n id: 'status',\n iconName: 'lucide:activity',\n label: 'System Online',\n status: 'success',\n tooltip: 'All systems operational',\n onClick: () => console.log('Status clicked'),\n },\n {\n id: 'notifications',\n iconName: 'lucide:bell',\n label: '3 notifications',\n status: 'warning',\n tooltip: 'You have unread notifications',\n onClick: () => console.log('Notifications clicked'),\n },\n {\n id: 'version',\n iconName: 'lucide:gitBranch',\n label: 'v1.2.3',\n position: 'right',\n tooltip: 'Current version',\n },\n ],\n actions: [\n {\n id: 'terminal',\n iconName: 'lucide:terminal',\n tooltip: 'Open Terminal',\n position: 'right',\n onClick: () => console.log('Terminal clicked'),\n },\n ],\n },\n\n onViewChange: (viewId, view) => {\n console.log(`View changed to: ${viewId} (${view.name})`);\n },\n\n onSearch: (query) => {\n console.log('Search query:', query);\n }\n };\n\n // Use a container element to properly initialize the demo\n const containerElement = document.createElement('div');\n containerElement.className = 'demo-container';\n containerElement.style.cssText = 'position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden;';\n\n const appuiElement = document.createElement('dees-appui') as DeesAppui;\n containerElement.appendChild(appuiElement);\n\n // Initialize after element is connected\n setTimeout(async () => {\n await appuiElement.updateComplete;\n\n // Configure using the unified API\n appuiElement.configure(appConfig);\n\n // Add demo activity entries\n setTimeout(() => {\n appuiElement.activityLog.addMany([\n {\n type: 'login',\n user: 'Jane Smith',\n message: 'logged in from Chrome on macOS'\n },\n {\n type: 'create',\n user: 'Jane Smith',\n message: 'created project \"Frontend App\"'\n },\n {\n type: 'update',\n user: 'John Doe',\n message: 'updated API documentation'\n },\n {\n type: 'view',\n user: 'Jane Smith',\n message: 'viewed dashboard analytics'\n },\n {\n type: 'delete',\n user: 'Admin',\n message: 'removed deprecated endpoint'\n },\n {\n type: 'custom',\n user: 'System',\n message: 'scheduled backup completed',\n iconName: 'lucide:database'\n }\n ]);\n }, 500);\n\n // Subscribe to view changes\n appuiElement.viewChanged$.subscribe((event) => {\n console.log('View changed event:', event);\n // Update breadcrumbs based on view\n appuiElement.setBreadcrumbs(event.view.name);\n });\n\n // Subscribe to lifecycle events\n appuiElement.viewLifecycle$.subscribe((event) => {\n console.log('Lifecycle event:', event.type, event.viewId);\n });\n\n // Demo: Dynamically update a badge after 5 seconds\n setTimeout(() => {\n appuiElement.setMainMenuBadge('tasks', 15);\n appuiElement.activityLog.add({\n type: 'update',\n user: 'System',\n message: 'new tasks added'\n });\n }, 5000);\n }, 0);\n\n return html`\n \n ${containerElement}\n \n `;\n};\n", "import { html, render, type TemplateResult } from '@design.estate/dees-element';\nimport type {\n IViewDefinition,\n IViewActivationContext,\n IViewLifecycle,\n TDeesAppui\n} from '../../interfaces/appconfig.js';\n\n/**\n * Registry for managing views and their lifecycle\n *\n * Key features:\n * - View caching with hide/show pattern (not destroy/create)\n * - Async content loading support (lazy loading)\n * - View lifecycle hooks (onActivate, onDeactivate, canDeactivate)\n */\nexport class ViewRegistry {\n private views: Map = new Map();\n private instances: Map = new Map();\n private currentViewId: string | null = null;\n private appui: TDeesAppui | null = null;\n\n /**\n * Set the appui reference for view activation context\n */\n public setAppuiRef(appui: TDeesAppui): void {\n this.appui = appui;\n }\n\n /**\n * Register a single view\n */\n public register(view: IViewDefinition): void {\n if (this.views.has(view.id)) {\n console.warn(`View with id \"${view.id}\" already registered. Overwriting.`);\n }\n this.views.set(view.id, view);\n }\n\n /**\n * Register multiple views\n */\n public registerAll(views: IViewDefinition[]): void {\n views.forEach((view) => this.register(view));\n }\n\n /**\n * Get a view definition by ID\n */\n public get(viewId: string): IViewDefinition | undefined {\n return this.views.get(viewId);\n }\n\n /**\n * Get all registered view IDs\n */\n public getViewIds(): string[] {\n return Array.from(this.views.keys());\n }\n\n /**\n * Get all views\n */\n public getAll(): IViewDefinition[] {\n return Array.from(this.views.values());\n }\n\n /**\n * Get route for a view\n */\n public getRoute(viewId: string): string {\n const view = this.views.get(viewId);\n return view?.route || view?.id || '';\n }\n\n /**\n * Find view by route (supports parameterized routes like 'settings/:section')\n */\n public findByRoute(route: string): { view: IViewDefinition; params: Record } | undefined {\n for (const view of this.views.values()) {\n const viewRoute = view.route || view.id;\n const params = this.matchRoute(viewRoute, route);\n if (params !== null) {\n return { view, params };\n }\n }\n return undefined;\n }\n\n /**\n * Match a route pattern against an actual route\n * Returns params if matched, null otherwise\n */\n private matchRoute(pattern: string, route: string): Record | null {\n const patternParts = pattern.split('/');\n const routeParts = route.split('/');\n\n // Check for optional trailing param (ends with ?)\n const hasOptionalParam = patternParts.length > 0 &&\n patternParts[patternParts.length - 1].endsWith('?');\n\n if (hasOptionalParam) {\n // Allow route to be shorter by 1\n if (routeParts.length < patternParts.length - 1 || routeParts.length > patternParts.length) {\n return null;\n }\n } else if (patternParts.length !== routeParts.length) {\n return null;\n }\n\n const params: Record = {};\n\n for (let i = 0; i < patternParts.length; i++) {\n let part = patternParts[i];\n const isOptional = part.endsWith('?');\n if (isOptional) {\n part = part.slice(0, -1);\n }\n\n if (part.startsWith(':')) {\n // This is a parameter\n const paramName = part.slice(1);\n if (routeParts[i] !== undefined) {\n params[paramName] = routeParts[i];\n } else if (!isOptional) {\n return null;\n }\n } else if (routeParts[i] !== part) {\n return null;\n }\n }\n\n return params;\n }\n\n /**\n * Check if navigation away from current view is allowed\n */\n public async canLeaveCurrentView(): Promise {\n if (!this.currentViewId) return true;\n\n const instance = this.instances.get(this.currentViewId);\n if (!instance) return true;\n\n const lifecycle = instance as unknown as IViewLifecycle;\n if (typeof lifecycle.canDeactivate === 'function') {\n return await lifecycle.canDeactivate();\n }\n\n return true;\n }\n\n /**\n * Activate a view - handles caching, lifecycle, and rendering\n */\n public async activateView(\n viewId: string,\n container: HTMLElement,\n params?: Record\n ): Promise {\n const view = this.views.get(viewId);\n if (!view) {\n console.error(`View \"${viewId}\" not found in registry`);\n return null;\n }\n\n // Check if caching is enabled for this view (default: true)\n const shouldCache = view.cache !== false;\n\n // Deactivate current view\n if (this.currentViewId && this.currentViewId !== viewId) {\n await this.deactivateView(this.currentViewId);\n }\n\n // Check for cached instance\n let element = shouldCache ? this.instances.get(viewId) : undefined;\n\n if (element) {\n // Reuse cached instance - just show it\n element.style.display = '';\n } else {\n // Create new instance\n element = await this.createViewElement(view);\n if (!element) {\n console.error(`Failed to create element for view \"${viewId}\"`);\n return null;\n }\n\n // Add to container\n container.appendChild(element);\n\n // Cache if enabled\n if (shouldCache) {\n this.instances.set(viewId, element);\n }\n }\n\n this.currentViewId = viewId;\n\n // Call onActivate lifecycle hook\n await this.callOnActivate(element, viewId, params);\n\n return element;\n }\n\n /**\n * Deactivate a view (hide and call lifecycle hook)\n */\n private async deactivateView(viewId: string): Promise {\n const instance = this.instances.get(viewId);\n if (!instance) return;\n\n // Call onDeactivate lifecycle hook\n const lifecycle = instance as unknown as IViewLifecycle;\n if (typeof lifecycle.onDeactivate === 'function') {\n await lifecycle.onDeactivate();\n }\n\n // Hide the element\n instance.style.display = 'none';\n }\n\n /**\n * Create a view element from its definition (supports async content)\n */\n private async createViewElement(view: IViewDefinition): Promise {\n let content = view.content;\n\n // Handle async content (lazy loading)\n if (typeof content === 'function' &&\n !(content.prototype instanceof HTMLElement) &&\n content.constructor.name === 'AsyncFunction') {\n try {\n content = await (content as () => Promise HTMLElement) | (() => TemplateResult)>)();\n } catch (error) {\n console.error(`Failed to load async content for view \"${view.id}\":`, error);\n return null;\n }\n }\n\n let element: HTMLElement;\n\n if (typeof content === 'string') {\n // Tag name string\n element = document.createElement(content);\n } else if (typeof content === 'function') {\n // Check if it's a class constructor or template function\n if (content.prototype instanceof HTMLElement) {\n // Element class constructor\n element = new (content as new () => HTMLElement)();\n } else {\n // Template function - wrap in a container and use Lit's render\n const wrapper = document.createElement('div');\n wrapper.className = 'view-content-wrapper';\n wrapper.style.cssText = 'display: contents;';\n const template = (content as () => TemplateResult)();\n render(template, wrapper);\n element = wrapper;\n }\n } else {\n console.error(`Invalid content type for view \"${view.id}\"`);\n return null;\n }\n\n // Add view ID as data attribute for debugging\n element.dataset.viewId = view.id;\n\n return element;\n }\n\n /**\n * Call onActivate lifecycle hook on a view element\n */\n private async callOnActivate(\n element: HTMLElement,\n viewId: string,\n params?: Record\n ): Promise {\n const lifecycle = element as unknown as IViewLifecycle;\n if (typeof lifecycle.onActivate === 'function') {\n const context: IViewActivationContext = {\n appui: this.appui!,\n viewId,\n params,\n };\n await lifecycle.onActivate(context);\n }\n }\n\n /**\n * Legacy method - renders view without caching\n * @deprecated Use activateView instead\n */\n public renderView(viewId: string, container: HTMLElement): HTMLElement | null {\n const view = this.views.get(viewId);\n if (!view) {\n console.error(`View \"${viewId}\" not found in registry`);\n return null;\n }\n\n // For legacy compatibility, clear container\n container.innerHTML = '';\n\n let element: HTMLElement;\n const content = view.content;\n\n if (typeof content === 'string') {\n element = document.createElement(content);\n } else if (typeof content === 'function') {\n if ((content as any).prototype instanceof HTMLElement) {\n element = new (content as new () => HTMLElement)();\n } else {\n const wrapper = document.createElement('div');\n wrapper.className = 'view-content-wrapper';\n wrapper.style.cssText = 'display: contents;';\n const template = (content as () => TemplateResult)();\n render(template, wrapper);\n element = wrapper;\n }\n } else {\n console.error(`Invalid content type for view \"${viewId}\"`);\n return null;\n }\n\n container.appendChild(element);\n this.instances.set(viewId, element);\n this.currentViewId = viewId;\n\n return element;\n }\n\n /**\n * Get currently active view ID\n */\n public getCurrentViewId(): string | null {\n return this.currentViewId;\n }\n\n /**\n * Get cached instance of a view\n */\n public getInstance(viewId: string): HTMLElement | undefined {\n return this.instances.get(viewId);\n }\n\n /**\n * Clear a specific cached instance\n */\n public clearInstance(viewId: string): void {\n const instance = this.instances.get(viewId);\n if (instance && instance.parentNode) {\n instance.parentNode.removeChild(instance);\n }\n this.instances.delete(viewId);\n if (this.currentViewId === viewId) {\n this.currentViewId = null;\n }\n }\n\n /**\n * Clear all instances\n */\n public clearInstances(): void {\n for (const [viewId, instance] of this.instances) {\n if (instance.parentNode) {\n instance.parentNode.removeChild(instance);\n }\n }\n this.instances.clear();\n this.currentViewId = null;\n }\n\n /**\n * Unregister a view\n */\n public unregister(viewId: string): boolean {\n this.clearInstance(viewId);\n return this.views.delete(viewId);\n }\n\n /**\n * Clear the registry\n */\n public clear(): void {\n this.views.clear();\n this.clearInstances();\n }\n\n /**\n * Check if a view is registered\n */\n public has(viewId: string): boolean {\n return this.views.has(viewId);\n }\n\n /**\n * Get the number of registered views\n */\n public get size(): number {\n return this.views.size;\n }\n}\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
\n console.log('Dashboard') },\n { key: 'Inbox', iconName: 'lucide:inbox', action: () => console.log('Inbox') },\n ]\n },\n {\n name: 'Workspace',\n tabs: [\n { key: 'Projects', iconName: 'lucide:folder', action: () => console.log('Projects') },\n { key: 'Tasks', iconName: 'lucide:checkSquare', action: () => console.log('Tasks') },\n { key: 'Documents', iconName: 'lucide:fileText', action: () => console.log('Documents') },\n ]\n },\n {\n name: 'Analytics',\n tabs: [\n { key: 'Reports', iconName: 'lucide:barChart3', action: () => console.log('Reports') },\n { key: 'Insights', iconName: 'lucide:lightbulb', action: () => console.log('Insights') },\n ]\n }\n ]}\n .bottomTabs=${[\n { key: 'Settings', iconName: 'lucide:settings', action: () => console.log('Settings') },\n { key: 'Help', iconName: 'lucide:helpCircle', action: () => console.log('Help') },\n ]}\n >\n
\n
\n`;\n", "import * as plugins from '../../00plugins.js';\nimport * as interfaces from '../../interfaces/index.js';\nimport { zIndexLayers } from '../../00zindex.js';\n\nimport {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { demoFunc } from './dees-appui-mainmenu.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n/**\n * the most left menu\n * usually used as organization selector\n */\n@customElement('dees-appui-mainmenu')\nexport class DeesAppuiMainmenu extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE\n\n // Logo properties\n @property({ type: String })\n accessor logoIcon: string = '';\n\n @property({ type: String })\n accessor logoText: string = '';\n\n // Menu groups (new way)\n @property({ type: Array })\n accessor menuGroups: interfaces.IMenuGroup[] = [];\n\n // Bottom tabs (pinned to bottom)\n @property({ type: Array })\n accessor bottomTabs: interfaces.IMenuItem[] = [];\n\n // Legacy tabs property (for backward compatibility)\n @property({ type: Array })\n accessor tabs: interfaces.IMenuItem[] = [];\n\n @property()\n accessor selectedTab: interfaces.IMenuItem;\n\n @property({ type: Boolean, reflect: true })\n accessor collapsed: boolean = false;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n --menu-width-expanded: 200px;\n --menu-width-collapsed: 56px;\n --tooltip-bg: ${cssManager.bdTheme('#18181b', '#fafafa')};\n --tooltip-fg: ${cssManager.bdTheme('#fafafa', '#18181b')};\n position: relative;\n display: block;\n height: 100%;\n }\n\n .mainContainer {\n color: ${cssManager.bdTheme('#666', '#ccc')};\n z-index: ${zIndexLayers.fixed.appBar};\n display: flex;\n flex-direction: column;\n position: relative;\n width: var(--menu-width-expanded);\n height: 100%;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n user-select: none;\n border-right: 1px solid ${cssManager.bdTheme('#e5e5e5', '#1a1a1a')};\n font-family: 'Geist Sans', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\n transition: width 0.25s ease;\n }\n\n :host([collapsed]) .mainContainer {\n width: var(--menu-width-collapsed);\n }\n\n /* Floating collapse toggle button */\n .collapse-toggle {\n position: absolute;\n right: -12px;\n top: 24px;\n transform: translateY(-50%);\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('#ffffff', '#27272a')};\n border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#3f3f46')};\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n cursor: pointer;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#737373', '#a1a1aa')};\n opacity: 0;\n transition: opacity 0.2s ease, background 0.15s ease;\n padding: 0;\n }\n\n .collapse-toggle:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#3f3f46')};\n color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n }\n\n :host(:hover) .collapse-toggle {\n opacity: 1;\n }\n\n .collapse-toggle dees-icon {\n font-size: 14px;\n }\n\n /* Logo Section */\n .logoSection {\n display: flex;\n align-items: center;\n gap: 10px;\n height: 48px;\n padding: 0 14px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#1a1a1a')};\n flex-shrink: 0;\n box-sizing: border-box;\n }\n\n .logoSection .logoIcon {\n font-size: 22px;\n color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n flex-shrink: 0;\n }\n\n .logoSection .logoText {\n flex: 1;\n font-size: 15px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity 0.2s ease, width 0.25s ease;\n }\n\n :host([collapsed]) .logoSection {\n justify-content: center;\n padding: 0;\n gap: 0;\n }\n\n :host([collapsed]) .logoSection .logoText {\n display: none;\n }\n\n /* Middle Section (scrollable) */\n .menuSection {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n padding: 8px 0;\n }\n\n .menuSection::-webkit-scrollbar {\n width: 6px;\n }\n\n .menuSection::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .menuSection::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.15)', 'rgba(255, 255, 255, 0.15)')};\n border-radius: 3px;\n }\n\n .menuSection::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.25)', 'rgba(255, 255, 255, 0.25)')};\n }\n\n /* Menu Group */\n .menuGroup {\n padding: 0 8px;\n margin-bottom: 8px;\n }\n\n .menuGroup:last-child {\n margin-bottom: 0;\n }\n\n .groupHeader {\n padding: 8px 12px 6px;\n font-size: 11px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#737373', '#737373')};\n text-transform: uppercase;\n letter-spacing: 0.5px;\n white-space: nowrap;\n overflow: hidden;\n transition: opacity 0.2s ease, max-height 0.25s ease;\n max-height: 30px;\n }\n\n :host([collapsed]) .groupHeader {\n opacity: 0;\n max-height: 0;\n padding: 0;\n margin: 0;\n }\n\n .groupTabs {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n :host([collapsed]) .menuGroup {\n padding: 0 4px;\n }\n\n /* Tab Item */\n .tab {\n position: relative;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n font-size: 13px;\n font-weight: 500;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('#525252', '#a3a3a3')};\n }\n\n .tab:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.06)')};\n color: ${cssManager.bdTheme('#262626', '#e5e5e5')};\n }\n\n .tab:active {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.08)')};\n }\n\n .tab.selectedTab {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.08)')};\n color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n }\n\n .tab.selectedTab::before {\n content: '';\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3px;\n height: 16px;\n background: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n border-radius: 0 2px 2px 0;\n }\n\n .tab dees-icon {\n font-size: 18px;\n opacity: 0.85;\n flex-shrink: 0;\n }\n\n .tab.selectedTab dees-icon {\n opacity: 1;\n }\n\n .tab .tabLabel {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity 0.2s ease, width 0.25s ease;\n }\n\n /* Collapsed tab styles */\n :host([collapsed]) .tab {\n justify-content: center;\n padding: 10px;\n gap: 0;\n }\n\n :host([collapsed]) .tab .tabLabel {\n opacity: 0;\n width: 0;\n position: absolute;\n }\n\n :host([collapsed]) .tab.selectedTab::before {\n left: -4px;\n }\n\n /* Tooltip for collapsed state */\n .tab-tooltip {\n position: absolute;\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-left: 12px;\n padding: 6px 12px;\n background: var(--tooltip-bg);\n color: var(--tooltip-fg);\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease;\n z-index: 1000;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n }\n\n .tab-tooltip::before {\n content: '';\n position: absolute;\n left: -4px;\n top: 50%;\n transform: translateY(-50%);\n border: 4px solid transparent;\n border-right-color: var(--tooltip-bg);\n }\n\n :host([collapsed]) .tab:hover .tab-tooltip {\n opacity: 1;\n transition-delay: 1s;\n }\n\n /* Badge styles */\n .badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 6px;\n font-size: 11px;\n font-weight: 600;\n border-radius: 9px;\n margin-left: auto;\n }\n\n .badge.default {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#3f3f46', '#a1a1aa')};\n }\n\n .badge.success {\n background: ${cssManager.bdTheme('#dcfce7', '#14532d')};\n color: ${cssManager.bdTheme('#166534', '#4ade80')};\n }\n\n .badge.warning {\n background: ${cssManager.bdTheme('#fef3c7', '#451a03')};\n color: ${cssManager.bdTheme('#92400e', '#fbbf24')};\n }\n\n .badge.error {\n background: ${cssManager.bdTheme('#fee2e2', '#450a0a')};\n color: ${cssManager.bdTheme('#991b1b', '#f87171')};\n }\n\n :host([collapsed]) .badge {\n display: none;\n }\n\n /* Bottom Section */\n .bottomSection {\n flex-shrink: 0;\n padding: 8px;\n border-top: 1px solid ${cssManager.bdTheme('#e5e5e5', '#1a1a1a')};\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n :host([collapsed]) .bottomSection {\n padding: 8px 4px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n // Get all tabs for selection (from groups or legacy tabs)\n const allTabs = this.getAllTabs();\n\n return html`\n
{\n DeesContextmenu.openContextMenuWithOptions(eventArg, [{\n name: 'app settings',\n action: async () => {},\n iconName: 'gear',\n }])\n }}>\n ${this.logoIcon || this.logoText ? html`\n
\n ${this.logoIcon ? html`` : ''}\n ${this.logoText ? html`${this.logoText}` : ''}\n
\n ` : ''}\n\n
\n ${this.menuGroups.length > 0 ? this.renderMenuGroups() : this.renderLegacyTabs()}\n
\n\n ${this.bottomTabs.length > 0 ? html`\n
\n ${this.bottomTabs.map((tabArg) => this.renderTab(tabArg))}\n
\n ` : ''}\n
\n \n `;\n }\n\n private renderMenuGroups(): TemplateResult {\n return html`\n ${this.menuGroups.map((group) => html`\n
\n ${group.name ? html`
${group.name}
` : ''}\n
\n ${group.items.map((tabArg) => this.renderTab(tabArg))}\n
\n
\n `)}\n `;\n }\n\n private renderLegacyTabs(): TemplateResult {\n return html`\n
\n
\n ${this.tabs.map((tabArg) => this.renderTab(tabArg))}\n
\n
\n `;\n }\n\n private renderTab(tabArg: interfaces.IMenuItem): TemplateResult {\n return html`\n {\n this.updateTab(tabArg);\n }}\"\n >\n \n ${tabArg.key}\n ${tabArg.badge !== undefined ? html`\n ${tabArg.badge}\n ` : ''}\n ${tabArg.key}\n \n `;\n }\n\n private getAllTabs(): interfaces.IMenuItem[] {\n if (this.menuGroups.length > 0) {\n const groupTabs = this.menuGroups.flatMap(group => group.items);\n return [...groupTabs, ...this.bottomTabs];\n }\n return [...this.tabs, ...this.bottomTabs];\n }\n\n updateTab(tabArg: interfaces.IMenuItem) {\n this.selectedTab = tabArg;\n this.selectedTab.action();\n\n // Emit tab-select event\n this.dispatchEvent(new CustomEvent('tab-select', {\n detail: { tab: tabArg },\n bubbles: true,\n composed: true\n }));\n }\n\n firstUpdated() {\n const allTabs = this.getAllTabs();\n if (allTabs.length > 0) {\n this.updateTab(allTabs[0]);\n }\n }\n\n public toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n this.dispatchEvent(new CustomEvent('collapse-change', {\n detail: { collapsed: this.collapsed },\n bubbles: true,\n composed: true\n }));\n }\n}\n", "import { html } from '@design.estate/dees-element';\nimport type * as interfaces from '../../interfaces/index.js';\n\nexport const demoFunc = () => html`\n \n
\n console.log('Dashboard clicked'), badge: 3, badgeVariant: 'warning' },\n { key: 'Projects', iconName: 'lucide:folder', action: () => console.log('Projects clicked'), badge: 'new', badgeVariant: 'success' },\n { key: 'Analytics', iconName: 'lucide:barChart2', action: () => console.log('Analytics clicked') },\n ] as interfaces.ISecondaryMenuItemTab[]\n },\n // Group 2: Actions\n {\n name: 'Actions',\n iconName: 'lucide:zap',\n items: [\n { type: 'action', key: 'Create New', iconName: 'lucide:plus', action: () => alert('Create New clicked!') },\n { type: 'action', key: 'Import Data', iconName: 'lucide:upload', action: () => alert('Import Data clicked!') },\n { type: 'divider' },\n { type: 'action', key: 'Delete All', iconName: 'lucide:trash2', variant: 'danger', confirmMessage: 'Are you sure you want to delete all items?', action: () => alert('Deleted!') },\n ] as interfaces.ISecondaryMenuItem[]\n },\n // Group 3: Filters\n {\n name: 'Filters',\n iconName: 'lucide:filter',\n items: [\n { type: 'header', label: 'Status' },\n { type: 'filter', key: 'Show Active', iconName: 'lucide:checkCircle', active: true, onToggle: (active) => console.log('Show Active:', active) },\n { type: 'filter', key: 'Show Archived', iconName: 'lucide:archive', active: false, onToggle: (active) => console.log('Show Archived:', active) },\n { type: 'divider' },\n { type: 'multiFilter', key: 'Categories', iconName: 'lucide:tag', collapsed: false, options: [\n { key: 'frontend', label: 'Frontend', checked: true, iconName: 'lucide:monitor' },\n { key: 'backend', label: 'Backend', checked: true, iconName: 'lucide:server' },\n { key: 'devops', label: 'DevOps', checked: false, iconName: 'lucide:cloud' },\n { key: 'design', label: 'Design', checked: false, iconName: 'lucide:palette' },\n ], onChange: (keys) => console.log('Selected categories:', keys) },\n ] as interfaces.ISecondaryMenuItem[]\n },\n // Group 4: Links and misc\n {\n name: 'Resources',\n iconName: 'lucide:bookOpen',\n collapsed: true,\n items: [\n { type: 'header', label: 'Documentation' },\n { type: 'link', key: 'API Reference', iconName: 'lucide:fileText', href: 'https://api.example.com/docs' },\n { type: 'link', key: 'User Guide', iconName: 'lucide:book', href: 'https://docs.example.com/guide' },\n { type: 'divider' },\n { type: 'header', label: 'Support' },\n { type: 'link', key: 'Help Center', iconName: 'lucide:helpCircle', href: '/help', external: false },\n { type: 'link', key: 'GitHub Issues', iconName: 'lucide:github', href: 'https://github.com/example/issues' },\n ] as interfaces.ISecondaryMenuItem[]\n }\n ] as interfaces.ISecondaryMenuGroup[]}\n @item-select=${(e: CustomEvent) => console.log('Tab selected:', e.detail)}\n @action-click=${(e: CustomEvent) => console.log('Action clicked:', e.detail)}\n @filter-toggle=${(e: CustomEvent) => console.log('Filter toggled:', e.detail)}\n @multifilter-change=${(e: CustomEvent) => console.log('Multi-filter changed:', e.detail)}\n @link-click=${(e: CustomEvent) => console.log('Link clicked:', e.detail)}\n >\n
\n

Secondary Menu Demo

\n

This demo showcases all 8 item types:

\n
    \n
  • tab - Selectable items (Navigation group)
  • \n
  • action - Blue actions (Actions group)
  • \n
  • action with variant: 'danger' - Red danger action
  • \n
  • filter - Checkbox toggles (Filters group)
  • \n
  • multiFilter - Collapsible multi-select (Categories)
  • \n
  • divider - Visual separators
  • \n
  • header - Section labels
  • \n
  • link - External/internal links (Resources group)
  • \n
\n

Try the collapse toggle on the left edge!

\n
\n
\n`;\n", "import * as plugins from '../../00plugins.js';\nimport * as interfaces from '../../interfaces/index.js';\n\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\nimport {\n DeesElement,\n type TemplateResult,\n property,\n state,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { demoFunc } from './dees-appui-secondarymenu.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n/**\n * Secondary navigation menu for sub-navigation within MainMenu views\n *\n * Supports 8 item types:\n * 1. Tab - selectable, stays highlighted (default)\n * 2. Action - executes without selection (blue)\n * 3. Danger Action - red styling with optional confirmation\n * 4. Filter - checkbox toggle\n * 5. Multi-Filter - collapsible box with multiple checkboxes\n * 6. Divider - visual separator\n * 7. Header - non-interactive label\n * 8. Link - opens URL\n */\n@customElement('dees-appui-secondarymenu')\nexport class DeesAppuiSecondarymenu extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE\n\n /** Dynamic heading - typically shows the selected MainMenu item */\n @property({ type: String })\n accessor heading: string = 'Menu';\n\n /** Grouped items with collapse support - supports new ISecondaryMenuGroup */\n @property({ type: Array })\n accessor groups: interfaces.ISecondaryMenuGroup[] = [];\n\n /** Legacy flat list support for backward compatibility */\n @property({ type: Array })\n accessor selectionOptions: (interfaces.IMenuItem | { divider: true })[] = [];\n\n /** Currently selected tab item */\n @property({ type: Object })\n accessor selectedItem: interfaces.ISecondaryMenuItemTab | null = null;\n\n /** Internal state for collapsed groups */\n @state()\n accessor collapsedGroups: Set = new Set();\n\n /** Internal state for collapsed multi-filters */\n @state()\n accessor collapsedMultiFilters: Set = new Set();\n\n /** Render counter to force re-renders when items are mutated */\n @state()\n private accessor renderCounter: number = 0;\n\n /** Horizontal collapse state */\n @property({ type: Boolean, reflect: true })\n accessor collapsed: boolean = false;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n --sidebar-width-expanded: 240px;\n --sidebar-width-collapsed: 56px;\n --sidebar-bg: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n --sidebar-fg: ${cssManager.bdTheme('#525252', '#a3a3a3')};\n --sidebar-fg-muted: ${cssManager.bdTheme('#737373', '#737373')};\n --sidebar-fg-active: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n --sidebar-border: ${cssManager.bdTheme('#e5e5e5', '#1a1a1a')};\n --sidebar-hover: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.06)')};\n --sidebar-active: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.08)')};\n --sidebar-accent: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n --tooltip-bg: ${cssManager.bdTheme('#18181b', '#fafafa')};\n --tooltip-fg: ${cssManager.bdTheme('#fafafa', '#18181b')};\n\n /* Badge colors */\n --badge-default-bg: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n --badge-default-fg: ${cssManager.bdTheme('#3f3f46', '#a1a1aa')};\n --badge-success-bg: ${cssManager.bdTheme('#dcfce7', '#14532d')};\n --badge-success-fg: ${cssManager.bdTheme('#166534', '#4ade80')};\n --badge-warning-bg: ${cssManager.bdTheme('#fef3c7', '#451a03')};\n --badge-warning-fg: ${cssManager.bdTheme('#92400e', '#fbbf24')};\n --badge-error-bg: ${cssManager.bdTheme('#fee2e2', '#450a0a')};\n --badge-error-fg: ${cssManager.bdTheme('#991b1b', '#f87171')};\n\n /* Action colors */\n --action-primary: ${cssManager.bdTheme('#2563eb', '#3b82f6')};\n --action-primary-hover: ${cssManager.bdTheme('#1d4ed8', '#60a5fa')};\n --action-danger: ${cssManager.bdTheme('#dc2626', '#ef4444')};\n --action-danger-hover: ${cssManager.bdTheme('#b91c1c', '#f87171')};\n\n position: relative;\n display: block;\n height: 100%;\n width: var(--sidebar-width-expanded);\n background: var(--sidebar-bg);\n border-right: 1px solid var(--sidebar-border);\n font-family: 'Geist Sans', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\n user-select: none;\n transition: width 0.25s ease;\n }\n\n :host([collapsed]) {\n width: var(--sidebar-width-collapsed);\n }\n\n .maincontainer {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n position: relative;\n }\n\n /* Floating collapse toggle button */\n .collapse-toggle {\n position: absolute;\n right: -12px;\n top: 24px;\n transform: translateY(-50%);\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('#ffffff', '#27272a')};\n border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#3f3f46')};\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n cursor: pointer;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#737373', '#a1a1aa')};\n opacity: 0;\n transition: opacity 0.2s ease, background 0.15s ease;\n padding: 0;\n }\n\n .collapse-toggle:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#3f3f46')};\n color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n }\n\n :host(:hover) .collapse-toggle {\n opacity: 1;\n }\n\n .collapse-toggle dees-icon {\n font-size: 14px;\n }\n\n /* Header Section */\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 48px;\n padding: 0 16px;\n border-bottom: 1px solid var(--sidebar-border);\n flex-shrink: 0;\n box-sizing: border-box;\n }\n\n .header .heading {\n flex: 1;\n font-size: 14px;\n font-weight: 600;\n color: var(--sidebar-fg-active);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity 0.2s ease, width 0.25s ease;\n }\n\n :host([collapsed]) .header {\n justify-content: center;\n padding: 0 8px;\n }\n\n :host([collapsed]) .header .heading {\n opacity: 0;\n width: 0;\n overflow: hidden;\n }\n\n /* Scrollable Menu Section */\n .menuSection {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n padding: 8px 0;\n }\n\n .menuSection::-webkit-scrollbar {\n width: 6px;\n }\n\n .menuSection::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .menuSection::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.15)', 'rgba(255, 255, 255, 0.15)')};\n border-radius: 3px;\n }\n\n .menuSection::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.25)', 'rgba(255, 255, 255, 0.25)')};\n }\n\n /* Menu Group */\n .menuGroup {\n padding: 0 8px;\n margin-bottom: 4px;\n }\n\n :host([collapsed]) .menuGroup {\n padding: 0 4px;\n }\n\n .groupHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease, opacity 0.2s ease, max-height 0.25s ease;\n max-height: 40px;\n }\n\n .groupHeader:hover {\n border: 1px solid ${cssManager.bdTheme('rgba(140, 120, 100, 0.06)', 'rgba(180, 160, 140, 0.08)')};\n padding: 7px 11px;\n }\n\n .groupHeader:not(.collapsed) {\n background: ${cssManager.bdTheme('rgba(140, 120, 100, 0.06)', 'rgba(180, 160, 140, 0.08)')};\n border: none;\n padding: 8px 12px;\n }\n\n .groupHeader .groupTitle {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#78716c', '#b5a99a')};\n text-transform: uppercase;\n letter-spacing: 0.5px;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .groupHeader .groupTitle dees-icon {\n font-size: 16px;\n color: ${cssManager.bdTheme('#78716c', '#b5a99a')};\n }\n\n .groupHeader .chevron {\n font-size: 12px;\n transition: transform 0.2s ease;\n color: ${cssManager.bdTheme('#78716c', '#b5a99a')};\n }\n\n .groupHeader.collapsed .chevron {\n transform: rotate(-90deg);\n }\n\n /* Hide group headers when horizontally collapsed */\n :host([collapsed]) .groupHeader {\n opacity: 0;\n max-height: 0;\n padding: 0;\n margin: 0;\n pointer-events: none;\n }\n\n /* Group Items Container */\n .groupItems {\n overflow: hidden;\n transition: max-height 0.25s ease, opacity 0.2s ease, margin 0.25s ease;\n max-height: 1000px;\n opacity: 1;\n margin-bottom: 12px;\n }\n\n .groupItems.collapsed {\n max-height: 0;\n opacity: 0;\n margin-bottom: 0;\n }\n\n /* Always show items when horizontally collapsed (regardless of group collapse state) */\n :host([collapsed]) .groupItems {\n max-height: none;\n opacity: 1;\n }\n\n /* Menu Item Base */\n .menuItem {\n position: relative;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 12px;\n margin: 2px 0;\n font-size: 13px;\n font-weight: 450;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n color: var(--sidebar-fg);\n }\n\n .menuItem:hover {\n background: var(--sidebar-hover);\n color: var(--sidebar-fg-active);\n }\n\n .menuItem:active {\n background: var(--sidebar-active);\n }\n\n .menuItem.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .menuItem.selected {\n background: var(--sidebar-active);\n color: var(--sidebar-fg-active);\n font-weight: 500;\n }\n\n .menuItem.selected::before {\n content: '';\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3px;\n height: 16px;\n background: var(--sidebar-accent);\n border-radius: 0 2px 2px 0;\n }\n\n .menuItem dees-icon {\n font-size: 16px;\n opacity: 0.7;\n flex-shrink: 0;\n }\n\n .menuItem.selected dees-icon {\n opacity: 1;\n }\n\n .menuItem .itemLabel {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity 0.2s ease, width 0.25s ease;\n }\n\n /* Action Item Styles */\n .menuItem.action-primary {\n color: var(--action-primary);\n }\n\n .menuItem.action-primary:hover {\n color: var(--action-primary-hover);\n background: ${cssManager.bdTheme('rgba(37, 99, 235, 0.08)', 'rgba(59, 130, 246, 0.12)')};\n }\n\n .menuItem.action-primary dees-icon {\n opacity: 1;\n }\n\n .menuItem.action-danger {\n color: var(--action-danger);\n }\n\n .menuItem.action-danger:hover {\n color: var(--action-danger-hover);\n background: ${cssManager.bdTheme('rgba(220, 38, 38, 0.08)', 'rgba(239, 68, 68, 0.12)')};\n }\n\n .menuItem.action-danger dees-icon {\n opacity: 1;\n }\n\n /* Filter Item Styles */\n .menuItem.filter {\n justify-content: space-between;\n }\n\n .menuItem.filter .filter-checkbox {\n width: 16px;\n height: 16px;\n border: 2px solid ${cssManager.bdTheme('#d4d4d4', '#525252')};\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .menuItem.filter .filter-checkbox.checked {\n background: var(--sidebar-accent);\n border-color: var(--sidebar-accent);\n }\n\n .menuItem.filter .filter-checkbox dees-icon {\n font-size: 12px;\n color: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n opacity: 1;\n }\n\n .menuItem.filter.active {\n color: var(--sidebar-fg-active);\n }\n\n /* Multi-Filter Container */\n .multiFilter {\n margin: 4px 0;\n border: 1px solid var(--sidebar-border);\n border-radius: 8px;\n overflow: hidden;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.02)', 'rgba(255, 255, 255, 0.02)')};\n }\n\n .multiFilter-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .multiFilter-header:hover {\n background: var(--sidebar-hover);\n }\n\n .multiFilter-header .multiFilter-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--sidebar-fg-active);\n }\n\n .multiFilter-header .multiFilter-title dees-icon {\n font-size: 16px;\n opacity: 0.7;\n }\n\n .multiFilter-header .multiFilter-count {\n font-size: 11px;\n color: var(--sidebar-fg-muted);\n background: var(--badge-default-bg);\n padding: 2px 6px;\n border-radius: 4px;\n }\n\n .multiFilter-header .chevron {\n font-size: 12px;\n transition: transform 0.2s ease;\n color: var(--sidebar-fg-muted);\n }\n\n .multiFilter-header.collapsed .chevron {\n transform: rotate(-90deg);\n }\n\n .multiFilter-options {\n border-top: 1px solid var(--sidebar-border);\n overflow: hidden;\n transition: max-height 0.25s ease, opacity 0.2s ease;\n max-height: 500px;\n opacity: 1;\n }\n\n .multiFilter-options.collapsed {\n max-height: 0;\n opacity: 0;\n border-top: none;\n }\n\n .multiFilter-option {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 12px;\n cursor: pointer;\n transition: background 0.15s ease;\n font-size: 13px;\n color: var(--sidebar-fg);\n }\n\n .multiFilter-option:hover {\n background: var(--sidebar-hover);\n color: var(--sidebar-fg-active);\n }\n\n .multiFilter-option .option-checkbox {\n width: 16px;\n height: 16px;\n border: 2px solid ${cssManager.bdTheme('#d4d4d4', '#525252')};\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .multiFilter-option .option-checkbox.checked {\n background: var(--sidebar-accent);\n border-color: var(--sidebar-accent);\n }\n\n .multiFilter-option .option-checkbox dees-icon {\n font-size: 12px;\n color: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n\n .multiFilter-option dees-icon.option-icon {\n font-size: 14px;\n opacity: 0.7;\n }\n\n /* Divider */\n .menuDivider {\n height: 1px;\n background: var(--sidebar-border);\n margin: 8px 12px;\n }\n\n :host([collapsed]) .menuDivider {\n margin: 8px 4px;\n }\n\n /* Header/Label */\n .menuHeader {\n padding: 12px 12px 4px 12px;\n font-size: 10px;\n font-weight: 600;\n color: var(--sidebar-fg-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n :host([collapsed]) .menuHeader {\n display: none;\n }\n\n /* Link Item */\n .menuItem.link .external-icon {\n font-size: 12px;\n opacity: 0.5;\n margin-left: auto;\n }\n\n /* Collapsed menu item styles */\n :host([collapsed]) .menuItem {\n justify-content: center;\n padding: 8px;\n gap: 0;\n }\n\n :host([collapsed]) .menuItem .itemLabel {\n opacity: 0;\n width: 0;\n position: absolute;\n }\n\n :host([collapsed]) .menuItem.selected::before {\n left: -4px;\n }\n\n :host([collapsed]) .menuItem .filter-checkbox,\n :host([collapsed]) .menuItem .external-icon {\n display: none;\n }\n\n :host([collapsed]) .multiFilter {\n display: none;\n }\n\n /* Tooltip for collapsed state */\n .item-tooltip {\n position: absolute;\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-left: 12px;\n padding: 6px 12px;\n background: var(--tooltip-bg);\n color: var(--tooltip-fg);\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease;\n z-index: 1000;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n }\n\n .item-tooltip::before {\n content: '';\n position: absolute;\n left: -4px;\n top: 50%;\n transform: translateY(-50%);\n border: 4px solid transparent;\n border-right-color: var(--tooltip-bg);\n }\n\n :host([collapsed]) .menuItem:hover .item-tooltip {\n opacity: 1;\n transition-delay: 1s;\n }\n\n /* Badge Styles */\n .badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 6px;\n font-size: 10px;\n font-weight: 600;\n border-radius: 9px;\n flex-shrink: 0;\n }\n\n .badge.default {\n background: var(--badge-default-bg);\n color: var(--badge-default-fg);\n }\n\n .badge.success {\n background: var(--badge-success-bg);\n color: var(--badge-success-fg);\n }\n\n .badge.warning {\n background: var(--badge-warning-bg);\n color: var(--badge-warning-fg);\n }\n\n .badge.error {\n background: var(--badge-error-bg);\n color: var(--badge-error-fg);\n }\n\n :host([collapsed]) .badge {\n display: none;\n }\n\n /* Legacy options container */\n .legacyOptions {\n padding: 0 8px;\n }\n\n /* Divider (legacy) */\n .divider {\n height: 1px;\n background: var(--sidebar-border);\n margin: 8px 12px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n
\n ${this.heading}\n
\n
\n ${this.groups.length > 0\n ? this.renderGroups()\n : this.renderLegacyOptions()}\n
\n
\n \n `;\n }\n\n private renderGroups(): TemplateResult {\n return html`\n ${this.groups.map((group) => html`\n
\n this.toggleGroup(group.name)}\"\n >\n \n ${group.iconName ? html`` : ''}\n ${group.name}\n \n \n
\n
\n ${group.items.map((item) => this.renderItem(item, group))}\n
\n \n `)}\n `;\n }\n\n private renderItem(item: interfaces.ISecondaryMenuItem, group?: interfaces.ISecondaryMenuGroup): TemplateResult {\n // Check for hidden items\n if ('hidden' in item && item.hidden) {\n return html``;\n }\n\n // Determine item type\n const itemType = 'type' in item ? item.type : 'tab';\n\n switch (itemType) {\n case 'action':\n return this.renderActionItem(item as interfaces.ISecondaryMenuItemAction);\n case 'filter':\n return this.renderFilterItem(item as interfaces.ISecondaryMenuItemFilter);\n case 'multiFilter':\n return this.renderMultiFilterItem(item as interfaces.ISecondaryMenuItemMultiFilter);\n case 'divider':\n return this.renderDivider();\n case 'header':\n return this.renderHeader(item as interfaces.ISecondaryMenuItemHeader);\n case 'link':\n return this.renderLinkItem(item as interfaces.ISecondaryMenuItemLink);\n case 'tab':\n default:\n return this.renderTabItem(item as interfaces.ISecondaryMenuItemTab, group);\n }\n }\n\n private renderTabItem(item: interfaces.ISecondaryMenuItemTab, group?: interfaces.ISecondaryMenuGroup): TemplateResult {\n const isSelected = this.selectedItem?.key === item.key;\n const isDisabled = item.disabled === true;\n\n return html`\n !isDisabled && this.selectTabItem(item, group)}\"\n @contextmenu=\"${(e: MouseEvent) => this.handleContextMenu(e, item)}\"\n >\n ${item.iconName ? html`` : ''}\n ${item.key}\n ${item.badge !== undefined ? html`\n ${item.badge}\n ` : ''}\n ${item.key}\n \n `;\n }\n\n private renderActionItem(item: interfaces.ISecondaryMenuItemAction): TemplateResult {\n const variant = item.variant || 'primary';\n const isDisabled = item.disabled === true;\n\n return html`\n !isDisabled && this.handleActionClick(item)}\"\n >\n ${item.iconName ? html`` : ''}\n ${item.key}\n ${item.key}\n \n `;\n }\n\n private renderFilterItem(item: interfaces.ISecondaryMenuItemFilter): TemplateResult {\n const isDisabled = item.disabled === true;\n\n return html`\n !isDisabled && this.handleFilterToggle(item)}\"\n >\n ${item.iconName ? html`` : ''}\n ${item.key}\n
\n ${item.active ? html`` : ''}\n
\n ${item.key}\n \n `;\n }\n\n private renderMultiFilterItem(item: interfaces.ISecondaryMenuItemMultiFilter): TemplateResult {\n const isCollapsed = this.collapsedMultiFilters.has(item.key);\n const checkedCount = item.options.filter(opt => opt.checked).length;\n\n return html`\n
\n this.toggleMultiFilter(item.key)}\"\n >\n \n ${item.iconName ? html`` : ''}\n ${item.key}\n \n ${checkedCount > 0 ? html`${checkedCount}` : ''}\n \n
\n
\n ${item.options.map(option => html`\n this.handleMultiFilterOptionToggle(item, option.key)}\"\n >\n
\n ${option.checked ? html`` : ''}\n
\n ${option.iconName ? html`` : ''}\n ${option.label}\n
\n `)}\n \n \n `;\n }\n\n private renderDivider(): TemplateResult {\n return html`
`;\n }\n\n private renderHeader(item: interfaces.ISecondaryMenuItemHeader): TemplateResult {\n return html`
${item.label}
`;\n }\n\n private renderLinkItem(item: interfaces.ISecondaryMenuItemLink): TemplateResult {\n const isExternal = item.external ?? item.href.startsWith('http');\n const isDisabled = item.disabled === true;\n\n return html`\n !isDisabled && this.handleLinkClick(item)}\"\n >\n ${item.iconName ? html`` : ''}\n ${item.key}\n ${isExternal ? html`` : ''}\n ${item.key}\n \n `;\n }\n\n private renderLegacyOptions(): TemplateResult {\n return html`\n
\n ${this.selectionOptions.map((option) => {\n if ('divider' in option && option.divider) {\n return html`
`;\n }\n const item = option as interfaces.IMenuItem;\n // Convert legacy IMenuItem to ISecondaryMenuItemTab\n const tabItem: interfaces.ISecondaryMenuItemTab = {\n key: item.key,\n iconName: item.iconName,\n action: item.action,\n badge: item.badge,\n badgeVariant: item.badgeVariant,\n };\n return this.renderTabItem(tabItem);\n })}\n
\n `;\n }\n\n // Helper to normalize icon names\n private normalizeIcon(iconName: string): string {\n return iconName.startsWith('lucide:') ? iconName : `lucide:${iconName}`;\n }\n\n private toggleGroup(groupName: string): void {\n const newCollapsed = new Set(this.collapsedGroups);\n if (newCollapsed.has(groupName)) {\n newCollapsed.delete(groupName);\n } else {\n newCollapsed.add(groupName);\n }\n this.collapsedGroups = newCollapsed;\n }\n\n private toggleMultiFilter(filterKey: string): void {\n const newCollapsed = new Set(this.collapsedMultiFilters);\n if (newCollapsed.has(filterKey)) {\n newCollapsed.delete(filterKey);\n } else {\n newCollapsed.add(filterKey);\n }\n this.collapsedMultiFilters = newCollapsed;\n }\n\n public toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n this.dispatchEvent(new CustomEvent('collapse-change', {\n detail: { collapsed: this.collapsed },\n bubbles: true,\n composed: true\n }));\n }\n\n private selectTabItem(item: interfaces.ISecondaryMenuItemTab, group?: interfaces.ISecondaryMenuGroup): void {\n this.selectedItem = item;\n item.action();\n\n this.dispatchEvent(new CustomEvent('item-select', {\n detail: { item, group },\n bubbles: true,\n composed: true\n }));\n }\n\n private async handleActionClick(item: interfaces.ISecondaryMenuItemAction): Promise {\n // Handle confirmation if required\n if (item.confirmMessage) {\n const confirmed = window.confirm(item.confirmMessage);\n if (!confirmed) {\n return;\n }\n }\n\n await item.action();\n\n this.dispatchEvent(new CustomEvent('action-click', {\n detail: { item },\n bubbles: true,\n composed: true\n }));\n }\n\n private handleFilterToggle(item: interfaces.ISecondaryMenuItemFilter): void {\n const newActive = !item.active;\n // Update the item's active state\n item.active = newActive;\n item.onToggle(newActive);\n\n // Force re-render by incrementing the render counter\n this.renderCounter++;\n\n this.dispatchEvent(new CustomEvent('filter-toggle', {\n detail: { item, active: newActive },\n bubbles: true,\n composed: true\n }));\n }\n\n private handleMultiFilterOptionToggle(item: interfaces.ISecondaryMenuItemMultiFilter, optionKey: string): void {\n // Update the option's checked state\n const option = item.options.find(opt => opt.key === optionKey);\n if (option) {\n option.checked = !option.checked;\n }\n\n // Calculate the new selected keys\n const selectedKeys = item.options\n .filter(opt => opt.checked)\n .map(opt => opt.key);\n\n item.onChange(selectedKeys);\n\n // Force re-render by incrementing the render counter\n this.renderCounter++;\n\n this.dispatchEvent(new CustomEvent('multifilter-change', {\n detail: { item, selectedKeys },\n bubbles: true,\n composed: true\n }));\n }\n\n private handleLinkClick(item: interfaces.ISecondaryMenuItemLink): void {\n const isExternal = item.external ?? item.href.startsWith('http');\n\n if (isExternal) {\n window.open(item.href, '_blank', 'noopener,noreferrer');\n } else {\n window.location.href = item.href;\n }\n\n this.dispatchEvent(new CustomEvent('link-click', {\n detail: { item },\n bubbles: true,\n composed: true\n }));\n }\n\n private handleContextMenu(event: MouseEvent, item: interfaces.ISecondaryMenuItemTab): void {\n DeesContextmenu.openContextMenuWithOptions(event, [\n {\n name: 'View details',\n action: async () => {},\n iconName: 'lucide:eye',\n },\n {\n name: 'Edit',\n action: async () => {},\n iconName: 'lucide:pencil',\n },\n ]);\n }\n\n async firstUpdated(_changedProperties: Map) {\n await super.firstUpdated(_changedProperties);\n\n // Initialize collapsed state from group defaults\n if (this.groups.length > 0) {\n const initialCollapsed = new Set();\n const initialMultiFilterCollapsed = new Set();\n\n this.groups.forEach(group => {\n if (group.collapsed) {\n initialCollapsed.add(group.name);\n }\n\n // Check for collapsed multi-filters\n group.items.forEach(item => {\n if ('type' in item && item.type === 'multiFilter') {\n const multiFilter = item as interfaces.ISecondaryMenuItemMultiFilter;\n if (multiFilter.collapsed) {\n initialMultiFilterCollapsed.add(multiFilter.key);\n }\n }\n });\n });\n\n this.collapsedGroups = initialCollapsed;\n this.collapsedMultiFilters = initialMultiFilterCollapsed;\n\n // Auto-select first tab item if none selected\n if (!this.selectedItem) {\n for (const group of this.groups) {\n for (const item of group.items) {\n const itemType = 'type' in item ? item.type : 'tab';\n if (itemType === 'tab' || itemType === undefined) {\n const tabItem = item as interfaces.ISecondaryMenuItemTab;\n if (!tabItem.disabled) {\n this.selectTabItem(tabItem, group);\n return;\n }\n }\n }\n }\n }\n } else if (this.selectionOptions.length > 0) {\n // Legacy mode: select first non-divider option\n const firstOption = this.selectionOptions.find(opt => !('divider' in opt)) as interfaces.IMenuItem;\n if (firstOption && !this.selectedItem) {\n const tabItem: interfaces.ISecondaryMenuItemTab = {\n key: firstOption.key,\n iconName: firstOption.iconName,\n action: firstOption.action,\n };\n this.selectTabItem(tabItem);\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-appui-secondarymenu': DeesAppuiSecondarymenu;\n }\n}\n", "import { html, cssManager, css, DeesElement, customElement, state } from '@design.estate/dees-element';\nimport * as interfaces from '../../interfaces/index.js';\nimport type { DeesAppuiTabs } from './dees-appui-tabs.js';\n\n// Interactive demo component for closeable tabs\n@customElement('demo-closeable-tabs')\nclass DemoCloseableTabs extends DeesElement {\n @state()\n accessor tabs: interfaces.IMenuItem[] = [\n { key: 'Main', iconName: 'lucide:home', action: () => console.log('Main clicked') },\n ];\n\n @state()\n accessor tabCounter: number = 0;\n\n static styles = [\n css`\n :host {\n display: block;\n }\n .controls {\n display: flex;\n gap: 8px;\n margin-top: 16px;\n }\n button {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(59, 130, 246, 0.1)')};\n border: 1px solid ${cssManager.bdTheme('rgba(59, 130, 246, 0.3)', 'rgba(59, 130, 246, 0.3)')};\n color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n padding: 8px 16px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n button:hover {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.2)', 'rgba(59, 130, 246, 0.2)')};\n }\n .info {\n margin-top: 16px;\n padding: 12px 16px;\n background: ${cssManager.bdTheme('rgba(0,0,0,0.02)', 'rgba(255,255,255,0.02)')};\n border-radius: 6px;\n font-size: 13px;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n `\n ];\n\n private addTab() {\n this.tabCounter++;\n const tabKey = `Document ${this.tabCounter}`;\n this.tabs = [\n ...this.tabs,\n {\n key: tabKey,\n iconName: 'lucide:file',\n action: () => console.log(`${tabKey} clicked`),\n closeable: true,\n onClose: () => this.removeTab(tabKey)\n }\n ];\n }\n\n private removeTab(tabKey: string) {\n this.tabs = this.tabs.filter(t => t.key !== tabKey);\n }\n\n render() {\n return html`\n this.removeTab(e.detail.tab.key)}\n >\n
\n \n
\n
\n Click the X button on tabs to close them. The \"Main\" tab is not closeable.\n
Current tabs: ${this.tabs.length}\n
\n `;\n }\n}\n\n// Interactive demo for auto-hide feature\n@customElement('demo-autohide-tabs')\nclass DemoAutoHideTabs extends DeesElement {\n @state()\n accessor tabs: interfaces.IMenuItem[] = [\n { key: 'Tab 1', iconName: 'lucide:file', action: () => console.log('Tab 1') },\n { key: 'Tab 2', iconName: 'lucide:file', action: () => console.log('Tab 2') },\n ];\n\n @state()\n accessor autoHide: boolean = true;\n\n @state()\n accessor threshold: number = 1;\n\n static styles = [\n css`\n :host {\n display: block;\n }\n .tabs-container {\n min-height: 60px;\n border: 1px dashed ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .tabs-container dees-appui-tabs {\n width: 100%;\n }\n .placeholder {\n color: ${cssManager.bdTheme('#a1a1aa', '#71717a')};\n font-size: 13px;\n font-style: italic;\n }\n .controls {\n display: flex;\n gap: 8px;\n margin-top: 16px;\n flex-wrap: wrap;\n }\n button {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(59, 130, 246, 0.1)')};\n border: 1px solid ${cssManager.bdTheme('rgba(59, 130, 246, 0.3)', 'rgba(59, 130, 246, 0.3)')};\n color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n padding: 8px 16px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n button:hover {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.2)', 'rgba(59, 130, 246, 0.2)')};\n }\n button.danger {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.1)', 'rgba(239, 68, 68, 0.1)')};\n border-color: ${cssManager.bdTheme('rgba(239, 68, 68, 0.3)', 'rgba(239, 68, 68, 0.3)')};\n color: ${cssManager.bdTheme('#ef4444', '#f87171')};\n }\n button.danger:hover {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.2)', 'rgba(239, 68, 68, 0.2)')};\n }\n .info {\n margin-top: 16px;\n padding: 12px 16px;\n background: ${cssManager.bdTheme('rgba(0,0,0,0.02)', 'rgba(255,255,255,0.02)')};\n border-radius: 6px;\n font-size: 13px;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n `\n ];\n\n private tabCounter = 2;\n\n private addTab() {\n this.tabCounter++;\n this.tabs = [...this.tabs, {\n key: `Tab ${this.tabCounter}`,\n iconName: 'lucide:file',\n action: () => console.log(`Tab ${this.tabCounter}`)\n }];\n }\n\n private removeLastTab() {\n if (this.tabs.length > 0) {\n this.tabs = this.tabs.slice(0, -1);\n }\n }\n\n private clearTabs() {\n this.tabs = [];\n }\n\n render() {\n const shouldHide = this.autoHide && this.tabs.length <= this.threshold;\n\n return html`\n
\n ${shouldHide\n ? html`Tabs hidden (${this.tabs.length} tabs \u2264 threshold ${this.threshold})`\n : html``\n }\n
\n
\n \n \n \n \n \n \n
\n
\n Auto-hide: ${this.autoHide ? 'ON' : 'OFF'} | Threshold: ${this.threshold} | Tabs: ${this.tabs.length}\n
Tabs will hide when count \u2264 threshold.\n
\n `;\n }\n}\n\nexport const demoFunc = () => {\n const horizontalTabs: interfaces.IMenuItem[] = [\n { key: 'Home', iconName: 'lucide:home', action: () => console.log('Home clicked') },\n { key: 'Analytics Dashboard', iconName: 'lucide:lineChart', action: () => console.log('Analytics clicked') },\n { key: 'Reports', iconName: 'lucide:fileText', action: () => console.log('Reports clicked') },\n { key: 'User Settings', iconName: 'lucide:settings', action: () => console.log('Settings clicked') },\n { key: 'Help', iconName: 'lucide:helpCircle', action: () => console.log('Help clicked') },\n ];\n\n const verticalTabs: interfaces.IMenuItem[] = [\n { key: 'Profile', iconName: 'lucide:user', action: () => console.log('Profile clicked') },\n { key: 'Security', iconName: 'lucide:shield', action: () => console.log('Security clicked') },\n { key: 'Notifications', iconName: 'lucide:bell', action: () => console.log('Notifications clicked') },\n { key: 'Integrations', iconName: 'lucide:link', action: () => console.log('Integrations clicked') },\n { key: 'Advanced', iconName: 'lucide:code', action: () => console.log('Advanced clicked') },\n ];\n\n const noIndicatorTabs: interfaces.IMenuItem[] = [\n { key: 'All', action: () => console.log('All clicked') },\n { key: 'Active', action: () => console.log('Active clicked') },\n { key: 'Completed', action: () => console.log('Completed clicked') },\n { key: 'Archived', action: () => console.log('Archived clicked') },\n ];\n\n const demoContent = (text: string) => html`\n
\n ${text}\n
\n `;\n\n return html`\n \n
\n
\n
Horizontal Tabs with Animated Indicator
\n \n ${demoContent('Select a tab to see the smooth sliding animation of the indicator. The indicator automatically adjusts its width to match the tab content with minimal padding.')}\n
\n\n
\n
Closeable Tabs (Browser-style)
\n \n
\n\n
\n
Auto-hide Tabs
\n \n
\n\n
\n
Vertical Tabs Layout
\n
\n \n ${demoContent('Vertical tabs work great for settings pages and navigation menus. The animated indicator smoothly transitions between selections.')}\n
\n
\n\n
\n
Without Indicator
\n \n ${demoContent('Tabs can also be used without the animated indicator by setting showTabIndicator to false.')}\n
\n
\n `;\n};\n", "import * as interfaces from '../../interfaces/index.js';\n\nimport {\n DeesElement,\n type TemplateResult,\n property,\n state,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-appui-tabs.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-appui-tabs')\nexport class DeesAppuiTabs extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE\n @property({\n type: Array,\n })\n accessor tabs: interfaces.IMenuItem[] = [];\n\n @property({ type: Object })\n accessor selectedTab: interfaces.IMenuItem | null = null;\n\n @property({ type: Boolean })\n accessor showTabIndicator: boolean = true;\n\n @property({ type: String })\n accessor tabStyle: 'horizontal' | 'vertical' = 'horizontal';\n\n @property({ type: Boolean })\n accessor autoHide: boolean = false;\n\n @property({ type: Number })\n accessor autoHideThreshold: number = 0;\n\n // Scroll state for fade indicators\n @state()\n private accessor canScrollLeft: boolean = false;\n\n @state()\n private accessor canScrollRight: boolean = false;\n\n private resizeObserver: ResizeObserver | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n position: relative;\n width: 100%;\n min-width: 0;\n overflow: hidden;\n }\n\n .tabs-wrapper {\n position: relative;\n min-width: 0;\n }\n\n .tabs-wrapper.horizontal-wrapper {\n height: 48px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n box-sizing: border-box;\n overflow: hidden;\n }\n\n /* Scroll fade indicators */\n .scroll-fade {\n position: absolute;\n top: 0;\n bottom: 1px;\n width: 48px;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 10;\n }\n\n .scroll-fade-left {\n left: 0;\n background: linear-gradient(to right,\n ${cssManager.bdTheme('#ffffff', '#161616')} 0%,\n ${cssManager.bdTheme('rgba(255,255,255,0)', 'rgba(22,22,22,0)')} 100%);\n }\n\n .scroll-fade-right {\n right: 0;\n background: linear-gradient(to left,\n ${cssManager.bdTheme('#ffffff', '#161616')} 0%,\n ${cssManager.bdTheme('rgba(255,255,255,0)', 'rgba(22,22,22,0)')} 100%);\n }\n\n .scroll-fade.visible {\n opacity: 1;\n }\n\n .tabsContainer {\n position: relative;\n user-select: none;\n min-width: 0;\n }\n\n .tabsContainer.horizontal {\n display: flex;\n align-items: center;\n font-size: 14px;\n overflow-x: auto;\n overflow-y: hidden;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n height: 100%;\n padding: 0 16px;\n gap: 4px;\n }\n\n /* Show scrollbar on hover */\n .tabs-wrapper:hover .tabsContainer.horizontal {\n scrollbar-color: ${cssManager.bdTheme('rgba(0,0,0,0.2)', 'rgba(255,255,255,0.2)')} transparent;\n }\n\n .tabsContainer.horizontal::-webkit-scrollbar {\n height: 4px;\n }\n\n .tabsContainer.horizontal::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .tabsContainer.horizontal::-webkit-scrollbar-thumb {\n background: transparent;\n border-radius: 2px;\n transition: background 0.2s ease;\n }\n\n .tabs-wrapper:hover .tabsContainer.horizontal::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('rgba(0,0,0,0.2)', 'rgba(255,255,255,0.2)')};\n }\n\n .tabs-wrapper:hover .tabsContainer.horizontal::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('rgba(0,0,0,0.35)', 'rgba(255,255,255,0.35)')};\n }\n\n .tabsContainer.vertical {\n display: flex;\n flex-direction: column;\n padding: 8px;\n font-size: 14px;\n gap: 2px;\n position: relative;\n background: ${cssManager.bdTheme('#f9fafb', '#18181b')};\n border-radius: 8px;\n }\n\n .tab {\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n white-space: nowrap;\n cursor: pointer;\n transition: color 0.15s ease;\n font-weight: 500;\n position: relative;\n z-index: 2;\n }\n\n .horizontal .tab {\n padding: 0 16px;\n height: 100%;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n position: relative;\n border-radius: 6px 6px 0 0;\n transition: background-color 0.15s ease;\n }\n \n .horizontal .tab:not(:last-child)::after {\n content: '';\n position: absolute;\n right: -2px;\n top: 50%;\n transform: translateY(-50%);\n height: 20px;\n width: 1px;\n background: ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n opacity: 0.5;\n }\n \n .horizontal .tab .tab-content {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n }\n\n .vertical .tab {\n padding: 10px 16px;\n border-radius: 6px;\n width: 100%;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.15s ease;\n }\n\n .tab:hover {\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n \n .horizontal .tab:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.03)', 'rgba(255, 255, 255, 0.03)')};\n }\n \n .horizontal .tab:hover::after,\n .horizontal .tab:hover + .tab::after {\n opacity: 0;\n }\n\n .vertical .tab:hover {\n background: ${cssManager.bdTheme('rgba(244, 244, 245, 0.5)', 'rgba(39, 39, 42, 0.5)')};\n }\n\n .horizontal .tab.selectedTab {\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n \n .horizontal .tab.selectedTab::after,\n .horizontal .tab.selectedTab + .tab::after {\n opacity: 0;\n }\n\n .vertical .tab.selectedTab {\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .tab dees-icon {\n font-size: 16px;\n }\n\n .tabIndicator {\n position: absolute;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n }\n \n .tabIndicator.no-transition {\n transition: none;\n }\n\n .tabs-wrapper .tabIndicator {\n height: 3px;\n bottom: 0;\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n border-radius: 3px 3px 0 0;\n z-index: 3;\n }\n\n .vertical-wrapper {\n position: relative;\n }\n\n .vertical-wrapper .tabIndicator {\n left: 8px;\n right: 8px;\n border-radius: 6px;\n background: ${cssManager.bdTheme('#ffffff', '#27272a')};\n z-index: 1;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n }\n\n /* Close button */\n .tab-close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n border-radius: 4px;\n margin-left: 8px;\n opacity: 0.4;\n transition: opacity 0.15s, background 0.15s;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n }\n\n .tab:hover .tab-close {\n opacity: 0.7;\n }\n\n .tab-close:hover {\n opacity: 1;\n background: ${cssManager.bdTheme('rgba(0,0,0,0.1)', 'rgba(255,255,255,0.1)')};\n color: ${cssManager.bdTheme('#ef4444', '#f87171')};\n }\n\n .tab.selectedTab .tab-close {\n opacity: 0.5;\n }\n\n .tab.selectedTab:hover .tab-close {\n opacity: 0.8;\n }\n\n .tab.selectedTab .tab-close:hover {\n opacity: 1;\n }\n `,\n ];\n\n public render(): TemplateResult {\n // Auto-hide when enabled and tab count is at or below threshold\n if (this.autoHide && this.tabs.length <= this.autoHideThreshold) {\n return html``;\n }\n return html`\n ${this.renderTabsWrapper()}\n `;\n }\n\n private renderTabsWrapper(): TemplateResult {\n const isHorizontal = this.tabStyle === 'horizontal';\n const wrapperClass = isHorizontal ? 'tabs-wrapper horizontal-wrapper' : 'vertical-wrapper';\n const containerClass = `tabsContainer ${this.tabStyle}`;\n\n if (isHorizontal) {\n return html`\n
\n
\n
\n ${this.tabs.map(tab => this.renderTab(tab, isHorizontal))}\n
\n
\n ${this.showTabIndicator ? html`
` : ''}\n
\n `;\n }\n\n return html`\n
\n
\n ${this.tabs.map(tab => this.renderTab(tab, isHorizontal))}\n
\n ${this.showTabIndicator ? html`
` : ''}\n
\n `;\n }\n\n private renderTab(tab: interfaces.IMenuItem, isHorizontal: boolean): TemplateResult {\n const isSelected = tab === this.selectedTab;\n const classes = `tab ${isSelected ? 'selectedTab' : ''}`;\n\n const closeButton = tab.closeable ? html`\n this.closeTab(e, tab)}\">\n \n \n ` : '';\n\n const content = isHorizontal ? html`\n \n ${this.renderTabIcon(tab)}\n ${tab.key}\n \n ${closeButton}\n ` : html`\n ${this.renderTabIcon(tab)}\n ${tab.key}\n ${closeButton}\n `;\n\n return html`\n this.selectTab(tab)}\"\n >\n ${content}\n \n `;\n }\n\n private renderTabIcon(tab: interfaces.IMenuItem): TemplateResult | '' {\n return tab.iconName ? html`` : '';\n }\n\n private selectTab(tabArg: interfaces.IMenuItem) {\n this.selectedTab = tabArg;\n tabArg.action();\n\n // Scroll selected tab into view\n requestAnimationFrame(() => {\n this.scrollTabIntoView(tabArg);\n });\n\n // Emit tab-select event\n this.dispatchEvent(new CustomEvent('tab-select', {\n detail: { tab: tabArg },\n bubbles: true,\n composed: true\n }));\n }\n\n private closeTab(e: Event, tab: interfaces.IMenuItem) {\n e.stopPropagation(); // Don't select tab when closing\n\n // Call the tab's onClose callback if defined\n if (tab.onClose) {\n tab.onClose();\n }\n\n // Also emit event for parent components\n this.dispatchEvent(new CustomEvent('tab-close', {\n detail: { tab },\n bubbles: true,\n composed: true\n }));\n }\n\n firstUpdated() {\n if (this.tabs && this.tabs.length > 0) {\n this.selectTab(this.tabs[0]);\n }\n\n // Set up ResizeObserver for scroll state updates\n this.setupResizeObserver();\n\n // Initial scroll state check\n requestAnimationFrame(() => {\n this.updateScrollState();\n });\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n private setupResizeObserver() {\n if (this.tabStyle !== 'horizontal') return;\n\n this.resizeObserver = new ResizeObserver(() => {\n this.updateScrollState();\n });\n\n const container = this.shadowRoot?.querySelector('.tabsContainer.horizontal');\n if (container) {\n this.resizeObserver.observe(container);\n }\n }\n\n private handleScroll = () => {\n this.updateScrollState();\n };\n\n private updateScrollState() {\n const container = this.shadowRoot?.querySelector('.tabsContainer.horizontal') as HTMLElement;\n if (!container) return;\n\n const scrollLeft = container.scrollLeft;\n const scrollWidth = container.scrollWidth;\n const clientWidth = container.clientWidth;\n\n // Small threshold to account for rounding\n const threshold = 2;\n\n this.canScrollLeft = scrollLeft > threshold;\n this.canScrollRight = scrollLeft < scrollWidth - clientWidth - threshold;\n }\n\n private scrollTabIntoView(tab: interfaces.IMenuItem) {\n if (this.tabStyle !== 'horizontal') return;\n\n const tabIndex = this.tabs.indexOf(tab);\n if (tabIndex === -1) return;\n\n const container = this.shadowRoot?.querySelector('.tabsContainer.horizontal') as HTMLElement;\n const tabElement = container?.querySelector(`.tab:nth-child(${tabIndex + 1})`) as HTMLElement;\n\n if (tabElement && container) {\n const containerRect = container.getBoundingClientRect();\n const tabRect = tabElement.getBoundingClientRect();\n\n // Check if tab is fully visible\n const isFullyVisible =\n tabRect.left >= containerRect.left &&\n tabRect.right <= containerRect.right;\n\n if (!isFullyVisible) {\n tabElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });\n }\n }\n }\n\n async updated(changedProperties: Map) {\n super.updated(changedProperties);\n\n if (changedProperties.has('tabs') && this.tabs && this.tabs.length > 0 && !this.selectedTab) {\n this.selectTab(this.tabs[0]);\n }\n\n if (changedProperties.has('selectedTab') || changedProperties.has('tabs')) {\n await this.updateComplete;\n // Wait for fonts to load on first update\n if (!this.indicatorInitialized && document.fonts) {\n await document.fonts.ready;\n }\n requestAnimationFrame(() => {\n this.updateTabIndicator();\n this.updateScrollState();\n });\n }\n }\n\n private indicatorInitialized = false;\n\n private updateTabIndicator() {\n if (!this.shouldShowIndicator()) return;\n\n const selectedTabElement = this.getSelectedTabElement();\n if (!selectedTabElement) return;\n\n const indicator = this.getIndicatorElement();\n if (!indicator) return;\n\n this.handleInitialTransition(indicator);\n \n if (this.tabStyle === 'horizontal') {\n this.updateHorizontalIndicator(indicator, selectedTabElement);\n } else {\n this.updateVerticalIndicator(indicator, selectedTabElement);\n }\n\n indicator.style.opacity = '1';\n }\n\n private shouldShowIndicator(): boolean {\n return this.selectedTab && this.showTabIndicator && this.tabs.includes(this.selectedTab);\n }\n\n private getSelectedTabElement(): HTMLElement | null {\n const selectedIndex = this.tabs.indexOf(this.selectedTab);\n const isHorizontal = this.tabStyle === 'horizontal';\n const selector = isHorizontal \n ? `.tabs-wrapper .tabsContainer .tab:nth-child(${selectedIndex + 1})`\n : `.vertical-wrapper .tabsContainer .tab:nth-child(${selectedIndex + 1})`;\n \n return this.shadowRoot.querySelector(selector);\n }\n\n private getIndicatorElement(): HTMLElement | null {\n return this.shadowRoot.querySelector('.tabIndicator');\n }\n\n private handleInitialTransition(indicator: HTMLElement): void {\n if (!this.indicatorInitialized) {\n indicator.classList.add('no-transition');\n this.indicatorInitialized = true;\n \n setTimeout(() => {\n indicator.classList.remove('no-transition');\n }, 50);\n }\n }\n\n private updateHorizontalIndicator(indicator: HTMLElement, tabElement: HTMLElement): void {\n const tabContent = tabElement.querySelector('.tab-content') as HTMLElement;\n if (!tabContent) return;\n\n const wrapperRect = indicator.parentElement.getBoundingClientRect();\n const contentRect = tabContent.getBoundingClientRect();\n \n const contentLeft = contentRect.left - wrapperRect.left;\n const indicatorWidth = contentRect.width + 8;\n const indicatorLeft = contentLeft - 4;\n \n indicator.style.width = `${indicatorWidth}px`;\n indicator.style.left = `${indicatorLeft}px`;\n }\n\n private updateVerticalIndicator(indicator: HTMLElement, tabElement: HTMLElement): void {\n const tabsContainer = this.shadowRoot.querySelector('.vertical-wrapper .tabsContainer') as HTMLElement;\n if (!tabsContainer) return;\n \n indicator.style.top = `${tabElement.offsetTop + tabsContainer.offsetTop}px`;\n indicator.style.height = `${tabElement.clientHeight}px`;\n }\n}", "import * as interfaces from '../../interfaces/index.js';\n\nimport {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport '../dees-appui-tabs/dees-appui-tabs.js';\nimport type { DeesAppuiTabs } from '../dees-appui-tabs/dees-appui-tabs.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-appui-maincontent')\nexport class DeesAppuiMaincontent extends DeesElement {\n public static demo = () => html`\n console.log('Overview') },\n { key: 'Details', iconName: 'lucide:file', action: () => console.log('Details') },\n { key: 'Settings', iconName: 'lucide:settings', action: () => console.log('Settings') },\n ]}\n >\n
\n

Main Content Area

\n

This is where your application content goes.

\n
\n \n `;\n public static demoGroups = ['App UI'];\n\n // INSTANCE\n @property({\n type: Array,\n })\n accessor tabs: interfaces.IMenuItem[] = [\n { key: '\u26A0\uFE0F Please set tabs', action: () => console.warn('No tabs configured for maincontent') },\n ];\n\n @property({ type: Object })\n accessor selectedTab: interfaces.IMenuItem | null = null;\n\n @property({ type: Boolean })\n accessor showTabs: boolean = true;\n\n @property({ type: Boolean })\n accessor tabsAutoHide: boolean = false;\n\n @property({ type: Number })\n accessor tabsAutoHideThreshold: number = 0;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('#333', '#fff')};\n display: grid;\n grid-template-rows: auto 1fr;\n width: 100%;\n height: 100%;\n background: ${cssManager.bdTheme('#ffffff', '#161616')};\n }\n\n .maincontainer {\n display: contents;\n }\n\n .topbar {\n display: grid;\n grid-template-rows: 1fr;\n overflow: hidden;\n user-select: none;\n transition: grid-template-rows 0.3s ease;\n }\n\n .topbar > * {\n min-height: 0;\n }\n\n .content-area {\n overflow: auto;\n min-height: 0;\n overscroll-behavior: contain;\n }\n\n :host([notabs]) .topbar {\n grid-template-rows: 0fr;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n
\n this.handleTabSelect(e)}\n @tab-close=${(e: CustomEvent) => this.handleTabClose(e)}\n >\n
\n
\n \n \n
\n
\n `;\n }\n\n private handleTabSelect(e: CustomEvent) {\n this.selectedTab = e.detail.tab;\n\n // Re-emit the event\n this.dispatchEvent(new CustomEvent('tab-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleTabClose(e: CustomEvent) {\n // Re-emit the event\n this.dispatchEvent(new CustomEvent('tab-close', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n updated(changedProperties: Map) {\n super.updated(changedProperties);\n if (changedProperties.has('showTabs')) {\n if (this.showTabs) {\n this.removeAttribute('notabs');\n } else {\n this.setAttribute('notabs', '');\n }\n }\n }\n\n async firstUpdated(_changedProperties: Map) {\n await super.firstUpdated(_changedProperties);\n // Apply initial notabs state\n if (!this.showTabs) {\n this.setAttribute('notabs', '');\n }\n // Tab selection is now handled by the dees-appui-tabs component\n // But we need to ensure the tabs component is ready\n const tabsComponent = this.shadowRoot.querySelector('dees-appui-tabs') as DeesAppuiTabs;\n if (tabsComponent) {\n await tabsComponent.updateComplete;\n }\n }\n}\n", "import {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport * as interfaces from '../../interfaces/index.js';\nimport type { DeesAppuiBar } from '../dees-appui-appbar/index.js';\nimport type { DeesAppuiMainmenu } from '../dees-appui-mainmenu/dees-appui-mainmenu.js';\nimport type { DeesAppuiSecondarymenu } from '../dees-appui-secondarymenu/dees-appui-secondarymenu.js';\nimport type { DeesAppuiMaincontent } from '../dees-appui-maincontent/dees-appui-maincontent.js';\nimport type { DeesAppuiActivitylog } from '../dees-appui-activitylog/dees-appui-activitylog.js';\nimport type { DeesAppuiBottombar } from '../dees-appui-bottombar/dees-appui-bottombar.js';\nimport { demoFunc } from './dees-appui.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n// View registry for managing views\nimport { ViewRegistry } from './view.registry.js';\n\n// Import child components\nimport '../dees-appui-appbar/index.js';\nimport '../dees-appui-bottombar/dees-appui-bottombar.js';\nimport '../dees-appui-mainmenu/dees-appui-mainmenu.js';\nimport '../dees-appui-secondarymenu/dees-appui-secondarymenu.js';\nimport '../dees-appui-maincontent/dees-appui-maincontent.js';\nimport '../dees-appui-activitylog/dees-appui-activitylog.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-appui': DeesAppui;\n }\n}\n\n@customElement('dees-appui')\nexport class DeesAppui extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // ==========================================\n // REACTIVE OBSERVABLES (RxJS Subjects)\n // ==========================================\n\n /** Observable stream of view lifecycle events */\n public viewLifecycle$ = new domtools.plugins.smartrx.rxjs.Subject();\n\n /** Observable stream of view change events */\n public viewChanged$ = new domtools.plugins.smartrx.rxjs.Subject();\n\n // ==========================================\n // INTERNAL PROPERTIES (Properties for child components)\n // ==========================================\n\n // Properties for appbar\n @property({ type: Array })\n accessor appbarMenuItems: interfaces.IAppBarMenuItem[] = [];\n\n @property({ type: String })\n accessor appbarBreadcrumbs: string = '';\n\n @property({ type: String })\n accessor appbarBreadcrumbSeparator: string = ' > ';\n\n @property({ type: Boolean })\n accessor appbarShowWindowControls: boolean = true;\n\n @property({ type: Object })\n accessor appbarUser: interfaces.IAppUser | undefined = undefined;\n\n @property({ type: Array })\n accessor appbarProfileMenuItems: interfaces.IAppBarMenuItem[] = [];\n\n @property({ type: Boolean })\n accessor appbarShowSearch: boolean = false;\n\n // Properties for mainmenu\n @property({ type: String })\n accessor mainmenuLogoIcon: string = '';\n\n @property({ type: String })\n accessor mainmenuLogoText: string = '';\n\n @property({ type: Array })\n accessor mainmenuGroups: interfaces.IMenuGroup[] = [];\n\n @property({ type: Array })\n accessor mainmenuBottomTabs: interfaces.IMenuItem[] = [];\n\n @property({ type: Array })\n accessor mainmenuTabs: interfaces.IMenuItem[] = [];\n\n @property({ type: Object })\n accessor mainmenuSelectedTab: interfaces.IMenuItem | undefined = undefined;\n\n // Properties for secondarymenu\n @property({ type: String })\n accessor secondarymenuHeading: string = '';\n\n @property({ type: Array })\n accessor secondarymenuGroups: interfaces.ISecondaryMenuGroup[] = [];\n\n @property({ type: Object })\n accessor secondarymenuSelectedItem: interfaces.ISecondaryMenuItemTab | undefined = undefined;\n\n // Collapse states\n @property({ type: Boolean })\n accessor mainmenuCollapsed: boolean = false;\n\n @property({ type: Boolean })\n accessor secondarymenuCollapsed: boolean = false;\n\n // Visibility states\n @property({ type: Boolean })\n accessor mainmenuVisible: boolean = true;\n\n @property({ type: Boolean })\n accessor secondarymenuVisible: boolean = true;\n\n @property({ type: Boolean })\n accessor maincontentTabsVisible: boolean = true;\n\n @property({ type: Boolean })\n accessor contentTabsAutoHide: boolean = false;\n\n @property({ type: Number })\n accessor contentTabsAutoHideThreshold: number = 0;\n\n // Activity log visibility and count\n @state()\n accessor activityLogVisible: boolean = false;\n\n @state()\n accessor activityLogCount: number = 0;\n\n // Properties for maincontent\n @property({ type: Array })\n accessor maincontentTabs: interfaces.IMenuItem[] = [];\n\n @property({ type: Object })\n accessor maincontentSelectedTab: interfaces.IMenuItem | undefined = undefined;\n\n // References to child components\n @state()\n accessor appbar: DeesAppuiBar | undefined = undefined;\n\n @state()\n accessor mainmenu: DeesAppuiMainmenu | undefined = undefined;\n\n @state()\n accessor secondarymenu: DeesAppuiSecondarymenu | undefined = undefined;\n\n @state()\n accessor maincontent: DeesAppuiMaincontent | undefined = undefined;\n\n @state()\n accessor activitylogElement: DeesAppuiActivitylog | undefined = undefined;\n\n @state()\n accessor bottombarElement: DeesAppuiBottombar | undefined = undefined;\n\n @state()\n accessor bottombarVisible: boolean = true;\n\n // Current view state\n @state()\n accessor currentView: interfaces.IViewDefinition | undefined = undefined;\n\n // Internal services\n private viewRegistry: ViewRegistry = new ViewRegistry();\n private routerCleanup: (() => void) | null = null;\n private searchCallback: ((query: string) => void) | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: absolute;\n height: 100%;\n width: 100%;\n background: ${cssManager.bdTheme('#f0f0f0', '#1a1a1a')};\n }\n .maingrid {\n position: absolute;\n top: 40px;\n height: calc(100% - 40px - 24px);\n width: 100%;\n display: grid;\n /* grid-template-columns set dynamically in template */\n grid-template-rows: 1fr;\n transition: grid-template-columns 0.3s ease, height 0.3s ease;\n overflow: hidden;\n }\n\n :host([bottombar-hidden]) .maingrid {\n height: calc(100% - 40px);\n }\n\n dees-appui-bottombar {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 4;\n }\n\n /* Z-index layering for proper stacking */\n .maingrid > dees-appui-mainmenu {\n position: relative;\n z-index: 3;\n }\n\n .maingrid > dees-appui-secondarymenu {\n position: relative;\n z-index: 2;\n }\n\n .maingrid > dees-appui-maincontent {\n position: relative;\n z-index: 1;\n min-height: 0;\n }\n\n .maingrid > dees-appui-activitylog {\n position: relative;\n z-index: 1;\n overflow: hidden;\n transition: opacity 0.3s ease, transform 0.3s ease;\n }\n\n .maingrid > dees-appui-activitylog.hidden {\n opacity: 0;\n transform: translateX(20px);\n pointer-events: none;\n }\n\n .maingrid > dees-appui-activitylog.visible {\n opacity: 1;\n transform: translateX(0);\n }\n\n /* View container for dynamically loaded views */\n .view-container {\n display: contents;\n }\n\n .view-container:empty {\n display: none;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n this.handleAppbarMenuSelect(e)}\n @breadcrumb-navigate=${(e: CustomEvent) => this.handleAppbarBreadcrumbNavigate(e)}\n @search-click=${() => this.handleAppbarSearchClick()}\n @search-query=${(e: CustomEvent) => this.handleAppbarSearchQuery(e)}\n @user-menu-open=${() => this.handleAppbarUserMenuOpen()}\n @profile-menu-select=${(e: CustomEvent) => this.handleAppbarProfileMenuSelect(e)}\n @activity-toggle=${() => this.toggleActivityLog()}\n >\n
\n ${this.mainmenuVisible ? html`\n this.handleMainmenuTabSelect(e)}\n @collapse-change=${(e: CustomEvent) => this.handleMainmenuCollapseChange(e)}\n >\n ` : ''}\n ${this.secondarymenuVisible ? html`\n this.handleSecondarymenuItemSelect(e)}\n @collapse-change=${(e: CustomEvent) => this.handleSecondarymenuCollapseChange(e)}\n >\n ` : ''}\n this.handleContentTabSelect(e)}\n @tab-close=${(e: CustomEvent) => this.handleContentTabClose(e)}\n >\n
\n \n \n \n
\n ${this.bottombarVisible ? html`\n \n ` : ''}\n `;\n }\n\n async firstUpdated() {\n // Get references to child components\n this.appbar = this.shadowRoot!.querySelector('dees-appui-appbar') as DeesAppuiBar;\n this.mainmenu = this.shadowRoot!.querySelector('dees-appui-mainmenu') as DeesAppuiMainmenu;\n this.secondarymenu = this.shadowRoot!.querySelector('dees-appui-secondarymenu') as DeesAppuiSecondarymenu;\n this.maincontent = this.shadowRoot!.querySelector('dees-appui-maincontent') as DeesAppuiMaincontent;\n this.activitylogElement = this.shadowRoot!.querySelector('dees-appui-activitylog') as DeesAppuiActivitylog;\n this.bottombarElement = this.shadowRoot!.querySelector('dees-appui-bottombar') as DeesAppuiBottombar;\n\n // Subscribe to activity log entry changes for badge count\n if (this.activitylogElement) {\n this.activitylogElement.entries$.subscribe((entries) => {\n this.activityLogCount = entries.length;\n });\n }\n\n // Set appui reference in view registry for lifecycle context\n this.viewRegistry.setAppuiRef(this as unknown as interfaces.TDeesAppui);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Clean up router listener\n if (this.routerCleanup) {\n this.routerCleanup();\n this.routerCleanup = null;\n }\n // Complete subjects\n this.viewLifecycle$.complete();\n this.viewChanged$.complete();\n }\n\n // ==========================================\n // PROGRAMMATIC API: APP BAR\n // ==========================================\n\n /**\n * Set the app bar menu items (File, Edit, View, etc.)\n */\n public setAppBarMenus(menus: interfaces.IAppBarMenuItem[]): void {\n this.appbarMenuItems = [...menus];\n }\n\n /**\n * Update a single app bar menu by name\n */\n public updateAppBarMenu(name: string, update: Partial): void {\n this.appbarMenuItems = this.appbarMenuItems.map(menu => {\n // Check if it's not a divider and has a name property\n if ('name' in menu && menu.name === name) {\n return { ...menu, ...update };\n }\n return menu;\n });\n }\n\n /**\n * Set the breadcrumbs (string or array)\n */\n public setBreadcrumbs(breadcrumbs: string | string[]): void {\n if (Array.isArray(breadcrumbs)) {\n this.appbarBreadcrumbs = breadcrumbs.join(this.appbarBreadcrumbSeparator);\n } else {\n this.appbarBreadcrumbs = breadcrumbs;\n }\n }\n\n /**\n * Set the current user\n */\n public setUser(user: interfaces.IAppUser | undefined): void {\n this.appbarUser = user;\n }\n\n /**\n * Set the profile dropdown menu items\n */\n public setProfileMenuItems(items: interfaces.IAppBarMenuItem[]): void {\n this.appbarProfileMenuItems = [...items];\n }\n\n /**\n * Set search bar visibility\n */\n public setSearchVisible(visible: boolean): void {\n this.appbarShowSearch = visible;\n }\n\n /**\n * Set window controls visibility\n */\n public setWindowControlsVisible(visible: boolean): void {\n this.appbarShowWindowControls = visible;\n }\n\n /**\n * Register a search callback\n */\n public onSearch(callback: (query: string) => void): void {\n this.searchCallback = callback;\n }\n\n // ==========================================\n // PROGRAMMATIC API: MAIN MENU\n // ==========================================\n\n /**\n * Set the entire main menu configuration\n */\n public setMainMenu(config: interfaces.IMainMenuConfig): void {\n if (config.logoIcon !== undefined) {\n this.mainmenuLogoIcon = config.logoIcon;\n }\n if (config.logoText !== undefined) {\n this.mainmenuLogoText = config.logoText;\n }\n if (config.groups !== undefined) {\n this.mainmenuGroups = [...config.groups];\n }\n if (config.bottomTabs !== undefined) {\n this.mainmenuBottomTabs = [...config.bottomTabs];\n }\n }\n\n /**\n * Update a specific menu group by name\n */\n public updateMainMenuGroup(groupName: string, update: Partial): void {\n this.mainmenuGroups = this.mainmenuGroups.map(group =>\n group.name === groupName ? { ...group, ...update } : group\n );\n }\n\n /**\n * Add a menu item to a specific group\n */\n public addMainMenuItem(groupName: string, tab: interfaces.IMenuItem): void {\n this.mainmenuGroups = this.mainmenuGroups.map(group => {\n if (group.name === groupName) {\n return {\n ...group,\n items: [...(group.items || []), tab],\n };\n }\n return group;\n });\n }\n\n /**\n * Remove a menu item from a group by key\n */\n public removeMainMenuItem(groupName: string, tabKey: string): void {\n this.mainmenuGroups = this.mainmenuGroups.map(group => {\n if (group.name === groupName) {\n return {\n ...group,\n items: (group.items || []).filter(t => t.key !== tabKey),\n };\n }\n return group;\n });\n }\n\n /**\n * Set the selected main menu item by key\n */\n public setMainMenuSelection(tabKey: string): void {\n for (const group of this.mainmenuGroups) {\n const tab = group.items?.find(t => t.key === tabKey);\n if (tab) {\n this.mainmenuSelectedTab = tab;\n return;\n }\n }\n // Check bottom tabs\n const bottomTab = this.mainmenuBottomTabs.find(t => t.key === tabKey);\n if (bottomTab) {\n this.mainmenuSelectedTab = bottomTab;\n }\n }\n\n /**\n * Set main menu collapsed state\n */\n public setMainMenuCollapsed(collapsed: boolean): void {\n this.mainmenuCollapsed = collapsed;\n }\n\n /**\n * Set main menu visibility\n */\n public setMainMenuVisible(visible: boolean): void {\n this.mainmenuVisible = visible;\n }\n\n /**\n * Set secondary menu collapsed state\n */\n public setSecondaryMenuCollapsed(collapsed: boolean): void {\n this.secondarymenuCollapsed = collapsed;\n }\n\n /**\n * Set secondary menu visibility\n */\n public setSecondaryMenuVisible(visible: boolean): void {\n this.secondarymenuVisible = visible;\n }\n\n /**\n * Set content tabs visibility\n */\n public setContentTabsVisible(visible: boolean): void {\n this.maincontentTabsVisible = visible;\n }\n\n /**\n * Set content tabs auto-hide behavior\n * @param enabled - Enable auto-hide feature\n * @param threshold - Hide when tabs.length <= threshold (default 0 = hide when no tabs)\n */\n public setContentTabsAutoHide(enabled: boolean, threshold: number = 0): void {\n this.contentTabsAutoHide = enabled;\n this.contentTabsAutoHideThreshold = threshold;\n }\n\n /**\n * Set a badge on a main menu item\n */\n public setMainMenuBadge(tabKey: string, badge: string | number): void {\n this.mainmenuGroups = this.mainmenuGroups.map(group => ({\n ...group,\n items: (group.items || []).map(tab =>\n tab.key === tabKey ? { ...tab, badge } : tab\n ),\n }));\n // Also check bottom tabs\n this.mainmenuBottomTabs = this.mainmenuBottomTabs.map(tab =>\n tab.key === tabKey ? { ...tab, badge } : tab\n );\n }\n\n /**\n * Clear a badge from a main menu item\n */\n public clearMainMenuBadge(tabKey: string): void {\n this.mainmenuGroups = this.mainmenuGroups.map(group => ({\n ...group,\n items: (group.items || []).map(tab => {\n if (tab.key === tabKey) {\n const { badge, ...rest } = tab;\n return rest;\n }\n return tab;\n }),\n }));\n // Also check bottom tabs\n this.mainmenuBottomTabs = this.mainmenuBottomTabs.map(tab => {\n if (tab.key === tabKey) {\n const { badge, ...rest } = tab;\n return rest;\n }\n return tab;\n });\n }\n\n // ==========================================\n // PROGRAMMATIC API: SECONDARY MENU\n // ==========================================\n\n /**\n * Set the secondary menu configuration\n */\n public setSecondaryMenu(config: { heading?: string; groups: interfaces.ISecondaryMenuGroup[] }): void {\n if (config.heading !== undefined) {\n this.secondarymenuHeading = config.heading;\n }\n this.secondarymenuGroups = [...config.groups];\n }\n\n /**\n * Update a specific secondary menu group\n */\n public updateSecondaryMenuGroup(groupName: string, update: Partial): void {\n this.secondarymenuGroups = this.secondarymenuGroups.map(group =>\n group.name === groupName ? { ...group, ...update } : group\n );\n }\n\n /**\n * Add an item to a secondary menu group\n */\n public addSecondaryMenuItem(\n groupName: string,\n item: interfaces.ISecondaryMenuItem\n ): void {\n this.secondarymenuGroups = this.secondarymenuGroups.map(group => {\n if (group.name === groupName) {\n return {\n ...group,\n items: [...group.items, item],\n };\n }\n return group;\n });\n }\n\n /**\n * Set the selected secondary menu item by key (for tab items only)\n */\n public setSecondaryMenuSelection(itemKey: string): void {\n for (const group of this.secondarymenuGroups) {\n const item = group.items.find(i => 'key' in i && i.key === itemKey);\n if (item && (!('type' in item) || item.type === 'tab' || item.type === undefined)) {\n this.secondarymenuSelectedItem = item as interfaces.ISecondaryMenuItemTab;\n return;\n }\n }\n }\n\n /**\n * Clear the secondary menu\n */\n public clearSecondaryMenu(): void {\n this.secondarymenuHeading = '';\n this.secondarymenuGroups = [];\n this.secondarymenuSelectedItem = undefined;\n }\n\n // ==========================================\n // PROGRAMMATIC API: CONTENT TABS\n // ==========================================\n\n /**\n * Set the content tabs\n */\n public setContentTabs(tabs: interfaces.IMenuItem[]): void {\n this.maincontentTabs = [...tabs];\n if (tabs.length > 0 && !this.maincontentSelectedTab) {\n this.maincontentSelectedTab = tabs[0];\n }\n }\n\n /**\n * Add a content tab\n */\n public addContentTab(tab: interfaces.IMenuItem): void {\n this.maincontentTabs = [...this.maincontentTabs, tab];\n }\n\n /**\n * Remove a content tab by key\n */\n public removeContentTab(tabKey: string): void {\n this.maincontentTabs = this.maincontentTabs.filter(t => t.key !== tabKey);\n if (this.maincontentSelectedTab?.key === tabKey) {\n this.maincontentSelectedTab = this.maincontentTabs[0];\n }\n }\n\n /**\n * Select a content tab by key\n */\n public selectContentTab(tabKey: string): void {\n const tab = this.maincontentTabs.find(t => t.key === tabKey);\n if (tab) {\n this.maincontentSelectedTab = tab;\n }\n }\n\n /**\n * Get the currently selected content tab\n */\n public getSelectedContentTab(): interfaces.IMenuItem | undefined {\n return this.maincontentSelectedTab;\n }\n\n // ==========================================\n // PROGRAMMATIC API: ACTIVITY LOG\n // ==========================================\n\n /**\n * Get the activity log API\n */\n public get activityLog(): interfaces.IActivityLogAPI {\n if (!this.activitylogElement) {\n // Return a deferred API that will work after firstUpdated\n return {\n add: (entry) => {\n this.updateComplete.then(() => this.activitylogElement?.add(entry));\n },\n addMany: (entries) => {\n this.updateComplete.then(() => this.activitylogElement?.addMany(entries));\n },\n clear: () => {\n this.updateComplete.then(() => this.activitylogElement?.clear());\n },\n getEntries: () => this.activitylogElement?.getEntries() || [],\n filter: (criteria) => this.activitylogElement?.filter(criteria) || [],\n search: (query) => this.activitylogElement?.search(query) || [],\n };\n }\n return {\n add: (entry) => this.activitylogElement!.add(entry),\n addMany: (entries) => this.activitylogElement!.addMany(entries),\n clear: () => this.activitylogElement!.clear(),\n getEntries: () => this.activitylogElement!.getEntries(),\n filter: (criteria) => this.activitylogElement!.filter(criteria),\n search: (query) => this.activitylogElement!.search(query),\n };\n }\n\n /**\n * Set activity log visibility\n */\n public setActivityLogVisible(visible: boolean): void {\n this.activityLogVisible = visible;\n }\n\n /**\n * Toggle activity log visibility\n */\n public toggleActivityLog(): void {\n this.activityLogVisible = !this.activityLogVisible;\n }\n\n /**\n * Get activity log visibility state\n */\n public getActivityLogVisible(): boolean {\n return this.activityLogVisible;\n }\n\n // ==========================================\n // PROGRAMMATIC API: BOTTOM BAR\n // ==========================================\n\n /**\n * Get the bottom bar API for widget/action management\n */\n public get bottomBar(): interfaces.IBottomBarAPI {\n if (!this.bottombarElement) {\n // Return a deferred API that will work after firstUpdated\n return {\n addWidget: (widget) => {\n this.updateComplete.then(() => this.bottombarElement?.addWidget(widget));\n },\n updateWidget: (id, update) => {\n this.updateComplete.then(() => this.bottombarElement?.updateWidget(id, update));\n },\n removeWidget: (id) => {\n this.updateComplete.then(() => this.bottombarElement?.removeWidget(id));\n },\n getWidget: (id) => this.bottombarElement?.getWidget(id),\n clearWidgets: () => {\n this.updateComplete.then(() => this.bottombarElement?.clearWidgets());\n },\n addAction: (action) => {\n this.updateComplete.then(() => this.bottombarElement?.addAction(action));\n },\n removeAction: (id) => {\n this.updateComplete.then(() => this.bottombarElement?.removeAction(id));\n },\n clearActions: () => {\n this.updateComplete.then(() => this.bottombarElement?.clearActions());\n },\n };\n }\n return {\n addWidget: (widget) => this.bottombarElement!.addWidget(widget),\n updateWidget: (id, update) => this.bottombarElement!.updateWidget(id, update),\n removeWidget: (id) => this.bottombarElement!.removeWidget(id),\n getWidget: (id) => this.bottombarElement!.getWidget(id),\n clearWidgets: () => this.bottombarElement!.clearWidgets(),\n addAction: (action) => this.bottombarElement!.addAction(action),\n removeAction: (id) => this.bottombarElement!.removeAction(id),\n clearActions: () => this.bottombarElement!.clearActions(),\n };\n }\n\n /**\n * Set bottom bar visibility\n */\n public setBottomBarVisible(visible: boolean): void {\n this.bottombarVisible = visible;\n if (!visible) {\n this.setAttribute('bottombar-hidden', '');\n } else {\n this.removeAttribute('bottombar-hidden');\n }\n }\n\n /**\n * Get bottom bar visibility state\n */\n public getBottomBarVisible(): boolean {\n return this.bottombarVisible;\n }\n\n // ==========================================\n // PROGRAMMATIC API: NAVIGATION\n // ==========================================\n\n /**\n * Navigate to a view by ID\n */\n public async navigateToView(viewId: string, params?: Record): Promise {\n const view = this.viewRegistry.get(viewId);\n if (!view) {\n console.warn(`Cannot navigate to unknown view: ${viewId}`);\n return false;\n }\n\n // Check if current view allows navigation\n const canLeave = await this.viewRegistry.canLeaveCurrentView();\n if (canLeave !== true) {\n if (typeof canLeave === 'string') {\n // Show confirmation dialog\n const confirmed = window.confirm(canLeave);\n if (!confirmed) return false;\n } else {\n return false;\n }\n }\n\n // Emit loading event\n this.viewLifecycle$.next({ type: 'loading', viewId });\n\n try {\n await this.loadView(view, params);\n\n // Update URL hash\n const route = view.route || viewId;\n const newHash = `#${route}`;\n if (window.location.hash !== newHash) {\n window.history.pushState({ viewId }, '', newHash);\n }\n\n return true;\n } catch (error) {\n this.viewLifecycle$.next({ type: 'loadError', viewId, error });\n return false;\n }\n }\n\n /**\n * Get the current view\n */\n public getCurrentView(): interfaces.IViewDefinition | undefined {\n return this.currentView;\n }\n\n /**\n * Get access to the view registry (for advanced use)\n */\n public getViewRegistry(): ViewRegistry {\n return this.viewRegistry;\n }\n\n // ==========================================\n // UNIFIED CONFIGURATION\n // ==========================================\n\n /**\n * Configure the app shell with a unified config object\n */\n public configure(config: interfaces.IAppConfig): void {\n // Register views\n if (config.views) {\n this.viewRegistry.clear();\n this.viewRegistry.registerAll(config.views);\n }\n\n // Apply branding\n if (config.branding) {\n this.mainmenuLogoIcon = config.branding.logoIcon || '';\n this.mainmenuLogoText = config.branding.logoText || '';\n }\n\n // Apply app bar config\n if (config.appBar) {\n this.appbarMenuItems = config.appBar.menuItems || [];\n this.appbarBreadcrumbs = config.appBar.breadcrumbs || '';\n this.appbarBreadcrumbSeparator = config.appBar.breadcrumbSeparator || ' > ';\n this.appbarShowWindowControls = config.appBar.showWindowControls ?? true;\n this.appbarShowSearch = config.appBar.showSearch ?? false;\n this.appbarUser = config.appBar.user;\n this.appbarProfileMenuItems = config.appBar.profileMenuItems || [];\n }\n\n // Build main menu from view references or direct config\n if (config.mainMenu) {\n if (config.mainMenu.sections) {\n this.mainmenuGroups = this.buildMainMenuFromSections(config);\n } else if (config.mainMenu.groups) {\n this.mainmenuGroups = config.mainMenu.groups;\n }\n\n if (config.mainMenu.logoIcon) {\n this.mainmenuLogoIcon = config.mainMenu.logoIcon;\n }\n if (config.mainMenu.logoText) {\n this.mainmenuLogoText = config.mainMenu.logoText;\n }\n if (config.mainMenu.bottomTabs) {\n this.mainmenuBottomTabs = config.mainMenu.bottomTabs;\n } else if (config.mainMenu.bottomItems) {\n this.mainmenuBottomTabs = this.buildBottomTabsFromItems(config.mainMenu.bottomItems);\n }\n }\n\n // Apply bottom bar config\n if (config.bottomBar) {\n this.setBottomBarVisible(config.bottomBar.visible ?? true);\n\n if (config.bottomBar.widgets) {\n config.bottomBar.widgets.forEach(widget => {\n this.bottomBar.addWidget(widget);\n });\n }\n\n if (config.bottomBar.actions) {\n config.bottomBar.actions.forEach(action => {\n this.bottomBar.addAction(action);\n });\n }\n }\n\n // Setup domtools.router integration\n this.setupRouterIntegration(config);\n\n // Bind event callbacks\n if (config.onViewChange) {\n this.viewChanged$.subscribe((event) => {\n config.onViewChange!(event.viewId, event.view);\n });\n }\n\n if (config.onSearch) {\n this.searchCallback = config.onSearch;\n }\n\n // Navigate to default view\n if (config.defaultView) {\n this.navigateToView(config.defaultView);\n }\n }\n\n // ==========================================\n // PRIVATE HELPER METHODS\n // ==========================================\n\n private setupRouterIntegration(config: interfaces.IAppConfig): void {\n // Handle hash change events\n const handleHashChange = () => {\n const hash = window.location.hash.slice(1); // Remove #\n if (!hash) return;\n\n const match = this.viewRegistry.findByRoute(hash);\n if (match) {\n this.navigateToView(match.view.id, match.params);\n }\n };\n\n window.addEventListener('hashchange', handleHashChange);\n\n // Store cleanup function\n this.routerCleanup = () => {\n window.removeEventListener('hashchange', handleHashChange);\n };\n\n // Handle initial route from hash\n const currentHash = window.location.hash.slice(1);\n if (currentHash) {\n const match = this.viewRegistry.findByRoute(currentHash);\n if (match) {\n // Use setTimeout to allow component to fully initialize\n setTimeout(() => this.navigateToView(match.view.id, match.params), 0);\n }\n }\n }\n\n private buildMainMenuFromSections(config: interfaces.IAppConfig): interfaces.IMenuGroup[] {\n if (!config.mainMenu?.sections) return [];\n\n return config.mainMenu.sections.map((section) => ({\n name: section.name,\n items: section.views\n .map((viewId) => {\n const view = this.viewRegistry.get(viewId);\n if (!view) {\n console.warn(`View \"${viewId}\" not found in registry`);\n return null;\n }\n return {\n key: view.id,\n iconName: view.iconName,\n action: () => this.navigateToView(viewId),\n badge: view.badge,\n } as interfaces.IMenuItem;\n })\n .filter(Boolean) as interfaces.IMenuItem[],\n }));\n }\n\n private buildBottomTabsFromItems(items: string[]): interfaces.IMenuItem[] {\n return items\n .map((viewId) => {\n const view = this.viewRegistry.get(viewId);\n if (!view) {\n console.warn(`View \"${viewId}\" not found in registry`);\n return null;\n }\n return {\n key: view.id,\n iconName: view.iconName,\n action: () => this.navigateToView(viewId),\n } as interfaces.IMenuItem;\n })\n .filter(Boolean) as interfaces.IMenuItem[];\n }\n\n private async loadView(\n view: interfaces.IViewDefinition,\n params?: Record\n ): Promise {\n const previousView = this.currentView;\n this.currentView = view;\n\n // Get view container\n const viewContainer = this.maincontent?.querySelector('.view-container')\n || this.shadowRoot?.querySelector('.view-container');\n\n if (viewContainer) {\n // Activate view with caching and lifecycle hooks\n const element = await this.viewRegistry.activateView(\n view.id,\n viewContainer as HTMLElement,\n params\n );\n\n if (element) {\n // Emit lifecycle event\n this.viewLifecycle$.next({\n type: 'activated',\n viewId: view.id,\n element,\n params,\n });\n }\n }\n\n // Apply view-specific secondary menu\n if (view.secondaryMenu) {\n this.secondarymenuGroups = view.secondaryMenu;\n this.secondarymenuHeading = view.name;\n }\n\n // Apply view-specific content tabs\n if (view.contentTabs) {\n this.maincontentTabs = view.contentTabs;\n }\n\n // Update main menu selection\n this.setMainMenuSelection(view.id);\n\n // Emit view change event\n const changeEvent: interfaces.IViewChangeEvent = {\n viewId: view.id,\n view,\n previousView,\n params,\n };\n this.viewChanged$.next(changeEvent);\n\n // Also dispatch DOM event for backwards compatibility\n this.dispatchEvent(\n new CustomEvent('view-change', {\n detail: changeEvent,\n bubbles: true,\n composed: true,\n })\n );\n }\n\n // ==========================================\n // EVENT HANDLERS (Internal)\n // ==========================================\n\n private handleAppbarMenuSelect(e: CustomEvent) {\n this.dispatchEvent(new CustomEvent('appbar-menu-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleAppbarBreadcrumbNavigate(e: CustomEvent) {\n this.dispatchEvent(new CustomEvent('appbar-breadcrumb-navigate', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleAppbarSearchClick() {\n this.dispatchEvent(new CustomEvent('appbar-search-click', {\n bubbles: true,\n composed: true\n }));\n }\n\n private handleAppbarSearchQuery(e: CustomEvent) {\n if (this.searchCallback) {\n this.searchCallback(e.detail.query);\n }\n this.dispatchEvent(new CustomEvent('search-query', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleAppbarUserMenuOpen() {\n this.dispatchEvent(new CustomEvent('appbar-user-menu-open', {\n bubbles: true,\n composed: true\n }));\n }\n\n private handleAppbarProfileMenuSelect(e: CustomEvent) {\n this.dispatchEvent(new CustomEvent('appbar-profile-menu-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleMainmenuTabSelect(e: CustomEvent) {\n this.mainmenuSelectedTab = e.detail.tab;\n this.dispatchEvent(new CustomEvent('mainmenu-tab-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleSecondarymenuItemSelect(e: CustomEvent) {\n this.secondarymenuSelectedItem = e.detail.item;\n this.dispatchEvent(new CustomEvent('secondarymenu-item-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleMainmenuCollapseChange(e: CustomEvent) {\n this.mainmenuCollapsed = e.detail.collapsed;\n this.dispatchEvent(new CustomEvent('mainmenu-collapse-change', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleSecondarymenuCollapseChange(e: CustomEvent) {\n this.secondarymenuCollapsed = e.detail.collapsed;\n this.dispatchEvent(new CustomEvent('secondarymenu-collapse-change', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleContentTabSelect(e: CustomEvent) {\n this.maincontentSelectedTab = e.detail.tab;\n this.dispatchEvent(new CustomEvent('content-tab-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleContentTabClose(e: CustomEvent) {\n this.dispatchEvent(new CustomEvent('content-tab-close', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n}\n", "export * from './dees-appui.js';\nexport * from './view.registry.js';\n", "export * from './dees-appui-maincontent.js';\n", "export * from './dees-appui-mainmenu.js';\n", "export * from './dees-appui-secondarymenu.js';\n", "export * from './dees-appui-profiledropdown.js';\n", "export * from './dees-appui-tabs.js';\n", "import * as plugins from '../../00plugins.js';\nimport { zIndexRegistry } from '../../00zindex.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport {\n cssManager,\n css,\n type CSSResult,\n customElement,\n DeesElement,\n domtools,\n html,\n property,\n state,\n} from '@design.estate/dees-element';\nimport { DeesWindowLayer } from '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-mobilenavigation')\nexport class DeesMobilenavigation extends DeesElement {\n // STATIC\n public static demoGroups = ['App UI'];\n public static demo = () => html`\n {\n DeesMobilenavigation.createAndShow([\n {\n name: 'Dashboard',\n iconName: 'lucide:layout-dashboard',\n action: async (deesMobileNav) => {\n console.log('Navigate to dashboard');\n return null;\n },\n },\n {\n name: 'Profile',\n iconName: 'lucide:user',\n action: async (deesMobileNav) => {\n console.log('Navigate to profile');\n return null;\n },\n },\n {\n name: 'Settings',\n iconName: 'lucide:settings',\n action: async (deesMobileNav) => {\n console.log('Navigate to settings');\n return null;\n },\n },\n { divider: true } as any,\n {\n name: 'Help',\n iconName: 'lucide:help-circle',\n action: async (deesMobileNav) => {\n console.log('Show help');\n return null;\n },\n },\n {\n name: 'Sign Out',\n iconName: 'lucide:log-out',\n action: async (deesMobileNav) => {\n console.log('Sign out');\n return null;\n },\n },\n ]);\n }}>Open Mobile Navigation\n `;\n\n private static singletonRef: DeesMobilenavigation;\n public static async createAndShow(menuItemsArg: plugins.tsclass.website.IMenuItem[]) {\n if (!this.singletonRef) {\n this.singletonRef = new DeesMobilenavigation();\n document.body.append(this.singletonRef);\n await this.singletonRef.init();\n }\n this.singletonRef.menuItems = menuItemsArg;\n await this.singletonRef.readyDeferred.promise;\n this.singletonRef.show();\n return this.singletonRef;\n }\n\n // INSTANCE\n @property({\n type: String,\n })\n accessor heading: string = `Menu`;\n\n @property({\n type: Array,\n })\n accessor menuItems: plugins.tsclass.website.IMenuItem[] = [];\n\n @state()\n accessor mobileNavZIndex: number = 1000;\n\n readyDeferred: plugins.smartpromise.Deferred = domtools.plugins.smartpromise.defer();\n\n constructor() {\n super();\n /* this.init().then(() => {\n this.show();\n }); */\n }\n\n /**\n * inits the mobile navigation\n */\n public async init() {\n await this.updateComplete;\n this.readyDeferred.resolve();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: ${cssGeistFontFamily};\n }\n\n .main {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: transform;\n position: fixed;\n height: 100vh;\n width: 100%;\n max-width: 320px;\n transform: translateX(100%);\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n z-index: var(--z-index);\n opacity: 0;\n right: 0px;\n top: 0px;\n bottom: 0px;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border-left: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n pointer-events: none;\n box-shadow: ${cssManager.bdTheme(\n '-20px 0 25px -5px rgba(0, 0, 0, 0.1), -10px 0 10px -5px rgba(0, 0, 0, 0.04)',\n '-20px 0 25px -5px rgba(0, 0, 0, 0.3), -10px 0 10px -5px rgba(0, 0, 0, 0.2)'\n )};\n display: flex;\n flex-direction: column;\n }\n\n .main.show {\n pointer-events: all;\n transform: translateX(0px);\n opacity: 1;\n }\n\n .header {\n padding: 24px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n }\n\n .heading {\n font-size: 18px;\n font-weight: 600;\n letter-spacing: -0.02em;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n margin: 0;\n }\n\n .menu-container {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n }\n\n .menuItem {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n margin-bottom: 2px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n position: relative;\n user-select: none;\n }\n\n .menuItem:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .menuItem:active {\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n transform: scale(0.98);\n }\n\n .menuItem dees-icon {\n flex-shrink: 0;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n transition: color 0.15s ease;\n }\n\n .menuItem:hover dees-icon {\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .menuItem-text {\n flex: 1;\n letter-spacing: -0.01em;\n }\n\n .menuItem-divider {\n height: 1px;\n background: ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n margin: 8px 16px;\n }\n\n /* Mobile responsiveness */\n @media (max-width: 400px) {\n .main {\n max-width: 100vw;\n width: 85vw;\n }\n }\n\n /* Animation for menu items */\n @keyframes slideInRight {\n from {\n opacity: 0;\n transform: translateX(20px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n\n .main.show .menuItem {\n animation: slideInRight 0.3s ease-out forwards;\n animation-delay: calc(var(--item-index, 0) * 0.05s);\n opacity: 0;\n }\n\n /* Scrollbar styling */\n .menu-container::-webkit-scrollbar {\n width: 6px;\n }\n\n .menu-container::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .menu-container::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n border-radius: 3px;\n }\n\n .menu-container::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('#d1d5db', '#52525b')};\n }\n `,\n ];\n\n public render() {\n return html`\n \n
\n
\n

${this.heading}

\n
\n
\n ${this.menuItems.map((menuItem, index) => {\n if ('divider' in menuItem && menuItem.divider) {\n return html`
`;\n }\n return html`\n {\n this.hide();\n menuItem.action(this);\n }}\"\n >\n ${menuItem.iconName ? html`\n \n ` : ''}\n ${menuItem.name}\n
\n `;\n })}\n
\n \n `;\n }\n\n private windowLayer: DeesWindowLayer;\n\n /**\n * inits the show\n */\n public async show() {\n const domtools = await this.domtoolsPromise;\n const main = this.shadowRoot.querySelector('.main');\n \n // Create window layer first (it will get its own z-index)\n if (!this.windowLayer) {\n this.windowLayer = await DeesWindowLayer.createAndShow({\n blur: true,\n });\n this.windowLayer.addEventListener('click', () => {\n this.hide();\n });\n } else {\n document.body.append(this.windowLayer);\n await this.windowLayer.show();\n }\n \n // Get z-index for mobile nav (will be above window layer)\n this.mobileNavZIndex = zIndexRegistry.getNextZIndex();\n zIndexRegistry.register(this, this.mobileNavZIndex);\n\n await domtools.convenience.smartdelay.delayFor(10);\n main.classList.add('show');\n }\n\n /**\n * inits the hide function\n */\n public async hide() {\n const domtools = await this.domtoolsPromise;\n const main = this.shadowRoot.querySelector('.main');\n main.classList.remove('show');\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n \n if (this.windowLayer) {\n await this.windowLayer.destroy();\n }\n }\n\n async disconnectedCallback() {\n super.disconnectedCallback();\n \n // Cleanup\n zIndexRegistry.unregister(this);\n \n if (this.windowLayer) {\n await this.windowLayer.destroy();\n }\n }\n}\n", "export * from './dees-mobilenavigation.js';\n", "// App UI Components\nexport * from './dees-appui-activitylog/index.js';\nexport * from './dees-appui-appbar/index.js';\nexport * from './dees-appui-bottombar/index.js';\nexport * from './dees-appui/index.js';\nexport * from './dees-appui-maincontent/index.js';\nexport * from './dees-appui-mainmenu/index.js';\nexport * from './dees-appui-secondarymenu/index.js';\nexport * from './dees-appui-profiledropdown/index.js';\nexport * from './dees-appui-tabs/index.js';\nexport * from './dees-mobilenavigation/index.js';\n", "export * from './dees-button.js';\n", "import {\n cssManager,\n customElement,\n DeesElement,\n html,\n type TemplateResult,\n css,\n type CSSResult,\n state,\n property\n} from '@design.estate/dees-element';\n\n@customElement('dees-button-exit')\nexport class DeesButtonExit extends DeesElement {\n // DEMO\n public static demo = () => html`\n \n `;\n public static demoGroups = ['Button'];\n\n // INSTANCE\n @property({\n type: Number\n })\n accessor size: number = 24;\n\n public styles = [\n cssManager.defaultStyles,\n css`\n\n `\n ]\n\n public render (): TemplateResult {\n return html`\n \n
\n
\n
\n
\n `;\n }\n}", "export * from './dees-button-exit.js';\n", "import { html, css } from '@design.estate/dees-element';\n\nexport const demoFunc = () => {\n return html`\n \n
\n
\n

Basic Button Groups

\n

Button groups without labels for simple grouping

\n \n \n Option 1\n Option 2\n Option 3\n \n
\n\n
\n

Labeled Button Groups

\n

Button groups with descriptive labels

\n \n \n Grid\n List\n Cards\n \n
\n\n
\n

Multiple Groups

\n

Multiple button groups used together

\n \n
\n \n System\n Network\n Sales\n \n \n \n 1H\n 24H\n 7D\n 30D\n \n \n \n Refresh\n Export\n \n
\n
\n\n
\n

Vertical Button Groups

\n

Button groups with vertical layout

\n \n
\n \n Dashboard\n Analytics\n Reports\n Settings\n \n \n \n Add Item\n Edit Item\n Delete Item\n \n
\n
\n\n
\n

Mixed Button Types

\n

Different button types within groups

\n \n \n Active\n Pending\n Inactive\n \n
\n
\n `;\n};", "import {\n DeesElement,\n css,\n cssManager,\n customElement,\n html,\n property,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-button-group.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-button-group': DeesButtonGroup;\n }\n}\n\n@customElement('dees-button-group')\nexport class DeesButtonGroup extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Button'];\n\n @property()\n accessor label: string = '';\n\n @property()\n accessor direction: 'horizontal' | 'vertical' = 'horizontal';\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-block;\n }\n\n .button-group {\n display: flex;\n gap: 8px;\n align-items: center;\n padding: 8px;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.05)', 'rgba(255, 255, 255, 0.05)')};\n border-radius: 6px;\n }\n\n .button-group.vertical {\n flex-direction: column;\n align-items: stretch;\n }\n\n .label {\n color: ${cssManager.bdTheme('#666', '#999')};\n font-size: 12px;\n font-family: 'Geist Sans', sans-serif;\n margin-right: 8px;\n white-space: nowrap;\n }\n\n .button-group.vertical .label {\n margin-right: 0;\n margin-bottom: 8px;\n }\n\n ::slotted(*) {\n margin: 0 !important;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n ${this.label ? html`${this.label}` : ''}\n \n
\n `;\n }\n}", "export * from './dees-button-group.js';\n", "// Button Components\nexport * from './dees-button/index.js';\nexport * from './dees-button-exit/index.js';\nexport * from './dees-button-group/index.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport type { DeesChartArea } from './component.js';\nimport '@design.estate/dees-wcctools/demotools';\nimport './component.js';\n\nexport const demoFunc = () => {\n // Initial dataset values\n const initialDatasets = {\n system: {\n label: 'System Usage (%)',\n series: [\n {\n name: 'CPU',\n data: [\n { x: new Date(Date.now() - 300000).toISOString(), y: 25 },\n { x: new Date(Date.now() - 240000).toISOString(), y: 30 },\n { x: new Date(Date.now() - 180000).toISOString(), y: 28 },\n { x: new Date(Date.now() - 120000).toISOString(), y: 35 },\n { x: new Date(Date.now() - 60000).toISOString(), y: 32 },\n { x: new Date().toISOString(), y: 38 },\n ],\n },\n {\n name: 'Memory',\n data: [\n { x: new Date(Date.now() - 300000).toISOString(), y: 45 },\n { x: new Date(Date.now() - 240000).toISOString(), y: 48 },\n { x: new Date(Date.now() - 180000).toISOString(), y: 46 },\n { x: new Date(Date.now() - 120000).toISOString(), y: 52 },\n { x: new Date(Date.now() - 60000).toISOString(), y: 50 },\n { x: new Date().toISOString(), y: 55 },\n ],\n },\n ],\n },\n };\n \n const initialFormatters = {\n system: (val: number) => `${val}%`,\n };\n \n return html`\n {\n // Get the chart elements\n const chartElement = elementArg.querySelector('#main-chart') as DeesChartArea;\n const connectionsChartElement = elementArg.querySelector('#connections-chart') as DeesChartArea;\n let intervalId: number;\n let connectionsIntervalId: number;\n let currentDataset = 'system';\n\n // Y-axis formatters for different datasets\n const formatters = {\n system: (val: number) => `${val}%`,\n network: (val: number) => `${val} Mbps`,\n sales: (val: number) => `$${val.toLocaleString()}`,\n };\n \n // Time window configuration (in milliseconds)\n const TIME_WINDOW = 2 * 60 * 1000; // 2 minutes\n const UPDATE_INTERVAL = 1000; // 1 second\n const DATA_POINT_INTERVAL = 5000; // Show data points every 5 seconds\n \n // Store previous values for smooth transitions\n let previousValues = {\n cpu: 30,\n memory: 50,\n download: 150,\n upload: 30,\n connections: 150\n };\n\n // Generate initial data points for time window\n const generateInitialData = (baseValue: number, variance: number, interval: number = DATA_POINT_INTERVAL) => {\n const data = [];\n const now = Date.now();\n const pointCount = Math.floor(TIME_WINDOW / interval);\n \n for (let i = pointCount; i >= 0; i--) {\n const timestamp = new Date(now - (i * interval)).toISOString();\n const value = baseValue + (Math.random() - 0.5) * variance;\n data.push({ x: timestamp, y: Math.round(value) });\n }\n return data;\n };\n \n // Different datasets to showcase\n const datasets = {\n system: {\n label: 'System Usage (%)',\n series: [\n {\n name: 'CPU',\n data: generateInitialData(previousValues.cpu, 10),\n },\n {\n name: 'Memory',\n data: generateInitialData(previousValues.memory, 8),\n },\n ],\n },\n network: {\n label: 'Network Traffic (Mbps)',\n series: [\n {\n name: 'Download',\n data: generateInitialData(previousValues.download, 30),\n },\n {\n name: 'Upload',\n data: generateInitialData(previousValues.upload, 10),\n },\n ],\n },\n sales: {\n label: 'Sales Analytics',\n series: [\n {\n name: 'Revenue',\n data: [\n { x: '2025-01-01', y: 45000 },\n { x: '2025-01-02', y: 52000 },\n { x: '2025-01-03', y: 48000 },\n { x: '2025-01-04', y: 61000 },\n { x: '2025-01-05', y: 58000 },\n { x: '2025-01-06', y: 65000 },\n ],\n },\n {\n name: 'Profit',\n data: [\n { x: '2025-01-01', y: 12000 },\n { x: '2025-01-02', y: 14000 },\n { x: '2025-01-03', y: 11000 },\n { x: '2025-01-04', y: 18000 },\n { x: '2025-01-05', y: 16000 },\n { x: '2025-01-06', y: 20000 },\n ],\n },\n ],\n },\n };\n\n // Generate smooth value transitions\n const getNextValue = (current: number, min: number, max: number, maxChange: number = 5) => {\n // Add some randomness but keep it close to current value\n const change = (Math.random() - 0.5) * maxChange * 2;\n let newValue = current + change;\n \n // Apply some \"pressure\" to move towards center of range\n const center = (min + max) / 2;\n const pressure = (center - newValue) * 0.1;\n newValue += pressure;\n \n // Ensure within bounds\n newValue = Math.max(min, Math.min(max, newValue));\n return Math.round(newValue);\n };\n\n // Track time of last data point\n let lastDataPointTime = Date.now();\n let connectionsLastUpdate = Date.now();\n \n // Add real-time data\n const addRealtimeData = () => {\n if (!chartElement) return;\n \n const now = Date.now();\n \n // Only add new data point every DATA_POINT_INTERVAL\n const shouldAddPoint = (now - lastDataPointTime) >= DATA_POINT_INTERVAL;\n \n if (shouldAddPoint) {\n lastDataPointTime = now;\n const newTimestamp = new Date(now).toISOString();\n \n // Generate smooth transitions for new values\n if (currentDataset === 'system') {\n // Generate new values\n previousValues.cpu = getNextValue(previousValues.cpu, 20, 50, 3);\n previousValues.memory = getNextValue(previousValues.memory, 40, 70, 2);\n \n // Get current data and add new points\n const currentSeries = chartElement.chartSeries.map((series, index) => ({\n name: series.name,\n data: [\n ...(series.data as Array<{x: any; y: any}>),\n index === 0 \n ? { x: newTimestamp, y: previousValues.cpu }\n : { x: newTimestamp, y: previousValues.memory }\n ]\n }));\n \n chartElement.updateSeries(currentSeries, false);\n \n } else if (currentDataset === 'network') {\n // Generate new values\n previousValues.download = getNextValue(previousValues.download, 100, 200, 10);\n previousValues.upload = getNextValue(previousValues.upload, 20, 50, 5);\n \n // Get current data and add new points\n const currentSeries = chartElement.chartSeries.map((series, index) => ({\n name: series.name,\n data: [\n ...(series.data as Array<{x: any; y: any}>),\n index === 0 \n ? { x: newTimestamp, y: previousValues.download }\n : { x: newTimestamp, y: previousValues.upload }\n ]\n }));\n \n chartElement.updateSeries(currentSeries, false);\n }\n }\n };\n\n // Update connections chart data\n const updateConnections = () => {\n if (!connectionsChartElement) return;\n \n const now = Date.now();\n const newTimestamp = new Date(now).toISOString();\n \n // Generate new connections value with discrete changes\n const change = Math.floor(Math.random() * 21) - 10; // -10 to +10 connections\n previousValues.connections = Math.max(50, Math.min(300, previousValues.connections + change));\n \n // Get current data and add new point\n const currentSeries = connectionsChartElement.chartSeries;\n const newData = [{\n name: currentSeries[0]?.name || 'Connections',\n data: [\n ...(currentSeries[0]?.data as Array<{x: any; y: any}> || []),\n { x: newTimestamp, y: previousValues.connections }\n ]\n }];\n \n connectionsChartElement.updateSeries(newData, false);\n };\n\n // Switch dataset\n const switchDataset = (name: string) => {\n currentDataset = name;\n const dataset = datasets[name];\n chartElement.label = dataset.label;\n chartElement.series = dataset.series;\n chartElement.yAxisFormatter = formatters[name];\n \n // Set appropriate y-axis scaling\n if (name === 'system') {\n chartElement.yAxisScaling = 'percentage';\n chartElement.yAxisMax = 100;\n } else if (name === 'network') {\n chartElement.yAxisScaling = 'dynamic';\n } else {\n chartElement.yAxisScaling = 'dynamic';\n }\n \n // Reset last data point time to get fresh data immediately\n lastDataPointTime = Date.now() - DATA_POINT_INTERVAL;\n };\n\n // Start/stop real-time updates\n const startRealtime = () => {\n if (!intervalId && (currentDataset === 'system' || currentDataset === 'network')) {\n chartElement.realtimeMode = true;\n // Only add data every 5 seconds, chart auto-scrolls independently\n intervalId = window.setInterval(() => addRealtimeData(), DATA_POINT_INTERVAL);\n }\n \n // Start connections updates\n if (!connectionsIntervalId) {\n connectionsChartElement.realtimeMode = true;\n // Update connections every second\n connectionsIntervalId = window.setInterval(() => updateConnections(), UPDATE_INTERVAL);\n }\n };\n\n const stopRealtime = () => {\n if (intervalId) {\n window.clearInterval(intervalId);\n intervalId = null;\n chartElement.realtimeMode = false;\n }\n \n // Stop connections updates\n if (connectionsIntervalId) {\n window.clearInterval(connectionsIntervalId);\n connectionsIntervalId = null;\n connectionsChartElement.realtimeMode = false;\n }\n };\n\n // Randomize current data (spike/drop simulation)\n const randomizeData = () => {\n if (currentDataset === 'system') {\n // Simulate CPU/Memory spike\n previousValues.cpu = Math.random() > 0.5 ? 85 : 25;\n previousValues.memory = Math.random() > 0.5 ? 80 : 45;\n } else if (currentDataset === 'network') {\n // Simulate network traffic spike\n previousValues.download = Math.random() > 0.5 ? 250 : 100;\n previousValues.upload = Math.random() > 0.5 ? 80 : 20;\n }\n \n // Also spike connections\n previousValues.connections = Math.random() > 0.5 ? 280 : 80;\n \n // Force immediate update by resetting timers\n lastDataPointTime = 0;\n connectionsLastUpdate = 0;\n };\n\n // Wire up button click handlers\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n if (text === 'System Usage') {\n button.addEventListener('click', () => switchDataset('system'));\n } else if (text === 'Network Traffic') {\n button.addEventListener('click', () => switchDataset('network'));\n } else if (text === 'Sales Data') {\n button.addEventListener('click', () => switchDataset('sales'));\n } else if (text === 'Start Live') {\n button.addEventListener('click', () => startRealtime());\n } else if (text === 'Stop Live') {\n button.addEventListener('click', () => stopRealtime());\n } else if (text === 'Spike Values') {\n button.addEventListener('click', () => randomizeData());\n }\n });\n \n // Update button states based on current dataset\n const updateButtonStates = () => {\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n if (text === 'System Usage') {\n button.type = currentDataset === 'system' ? 'highlighted' : 'normal';\n } else if (text === 'Network Traffic') {\n button.type = currentDataset === 'network' ? 'highlighted' : 'normal';\n } else if (text === 'Sales Data') {\n button.type = currentDataset === 'sales' ? 'highlighted' : 'normal';\n }\n });\n };\n \n // Configure main chart with rolling window\n chartElement.rollingWindow = TIME_WINDOW;\n chartElement.realtimeMode = false; // Will be enabled when starting live updates\n chartElement.yAxisScaling = 'percentage'; // Initial system dataset uses percentage\n chartElement.yAxisMax = 100;\n chartElement.autoScrollInterval = 1000; // Auto-scroll every second\n \n // Set initial time window\n setTimeout(() => {\n chartElement.updateTimeWindow();\n }, 100);\n \n // Update button states when dataset changes\n const originalSwitchDataset = switchDataset;\n const switchDatasetWithButtonUpdate = (name: string) => {\n originalSwitchDataset(name);\n updateButtonStates();\n };\n \n // Replace switchDataset with the one that updates buttons\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n if (text === 'System Usage') {\n button.removeEventListener('click', () => switchDataset('system'));\n button.addEventListener('click', () => switchDatasetWithButtonUpdate('system'));\n } else if (text === 'Network Traffic') {\n button.removeEventListener('click', () => switchDataset('network'));\n button.addEventListener('click', () => switchDatasetWithButtonUpdate('network'));\n } else if (text === 'Sales Data') {\n button.removeEventListener('click', () => switchDataset('sales'));\n button.addEventListener('click', () => switchDatasetWithButtonUpdate('sales'));\n }\n });\n \n // Initialize connections chart with data\n if (connectionsChartElement) {\n const initialConnectionsData = generateInitialData(previousValues.connections, 30, UPDATE_INTERVAL);\n connectionsChartElement.series = [{\n name: 'Connections',\n data: initialConnectionsData\n }];\n \n // Configure connections chart\n connectionsChartElement.rollingWindow = TIME_WINDOW;\n connectionsChartElement.realtimeMode = false; // Will be enabled when starting live updates\n connectionsChartElement.yAxisScaling = 'fixed';\n connectionsChartElement.yAxisMax = 350;\n connectionsChartElement.autoScrollInterval = 1000; // Auto-scroll every second\n \n // Set initial time window\n setTimeout(() => {\n connectionsChartElement.updateTimeWindow();\n }, 100);\n }\n }}>\n \n
\n
\n \n System Usage\n Network Traffic\n Sales Data\n \n \n \n Start Live\n Stop Live\n \n \n \n Spike Values\n \n
\n \n
\n \n
\n \n
\n \n }]}\n .yAxisFormatter=${(val: number) => `${val}`}\n >\n
\n \n
\n Real-time monitoring with 2-minute rolling window \u2022 \n Updates every second with smooth value transitions \u2022 \n Click 'Spike Values' to simulate load spikes\n
\n
\n
\n `;\n};", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const chartAreaStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n font-weight: 400;\n font-size: 14px;\n }\n .mainbox {\n position: relative;\n width: 100%;\n height: 400px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n overflow: hidden;\n }\n\n .chartTitle {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n text-align: left;\n padding: 16px 24px;\n z-index: 10;\n font-size: 14px;\n font-weight: 500;\n letter-spacing: -0.01em;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 63.9%)')};\n }\n .chartContainer {\n position: absolute;\n top: 0px;\n left: 0px;\n bottom: 0px;\n right: 0px;\n padding: 44px 16px 16px 0px;\n overflow: hidden;\n background: transparent; /* Ensure container doesn't override chart background */\n }\n \n /* ApexCharts theme overrides */\n .apexcharts-canvas {\n background: transparent !important;\n }\n \n .apexcharts-inner {\n background: transparent !important;\n }\n \n .apexcharts-graphical {\n background: transparent !important;\n }\n `,\n ];\n\n", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport type { DeesChartArea } from './component.js';\n\nexport const renderChartArea = (component: DeesChartArea): TemplateResult => {\n return html`\n
\n
${component.label}
\n
\n
\n `;\n \n};\n", "/**\n * CDN versions for lazy-loaded libraries.\n * Keep these in sync with package.json for type compatibility.\n */\nexport const CDN_VERSIONS = {\n xterm: '5.3.0',\n xtermAddonFit: '0.8.0',\n xtermAddonSearch: '0.13.0',\n highlightJs: '11.11.1',\n apexcharts: '5.3.6',\n tiptap: '2.23.0',\n fontawesome: '7.1.0',\n} as const;\n\n/**\n * Base CDN URL for jsdelivr ESM imports\n */\nexport const CDN_BASE = 'https://cdn.jsdelivr.net/npm';\n", "import { CDN_BASE, CDN_VERSIONS } from './versions.js';\n\n// Type imports (no runtime overhead)\nimport type { Terminal, ITerminalOptions } from 'xterm';\nimport type { FitAddon } from 'xterm-addon-fit';\nimport type { HLJSApi } from 'highlight.js';\nimport type ApexChartsType from 'apexcharts';\nimport type { Editor, EditorOptions } from '@tiptap/core';\nimport type { StarterKitOptions } from '@tiptap/starter-kit';\nimport type { UnderlineOptions } from '@tiptap/extension-underline';\nimport type { TextAlignOptions } from '@tiptap/extension-text-align';\nimport type { LinkOptions } from '@tiptap/extension-link';\n\n/**\n * Bundle type for xterm and its addons\n */\nexport interface IXtermBundle {\n Terminal: typeof Terminal;\n}\n\n/**\n * Bundle type for xterm-addon-fit\n */\nexport interface IXtermFitAddonBundle {\n FitAddon: typeof FitAddon;\n}\n\n/**\n * Bundle type for xterm-addon-search\n * SearchAddon is loaded from CDN, so we use a minimal interface\n */\nexport interface IXtermSearchAddonBundle {\n SearchAddon: new () => IXtermSearchAddon;\n}\n\n/**\n * Minimal interface for xterm SearchAddon\n */\nexport interface IXtermSearchAddon {\n activate(terminal: Terminal): void;\n dispose(): void;\n findNext(term: string, searchOptions?: { regex?: boolean; wholeWord?: boolean; caseSensitive?: boolean; incremental?: boolean }): boolean;\n findPrevious(term: string, searchOptions?: { regex?: boolean; wholeWord?: boolean; caseSensitive?: boolean; incremental?: boolean }): boolean;\n}\n\n/**\n * Bundle type for Tiptap editor and extensions\n */\nexport interface ITiptapBundle {\n Editor: typeof Editor;\n StarterKit: { configure: (options?: Partial) => any };\n Underline: { configure: (options?: Partial) => any };\n TextAlign: { configure: (options?: Partial) => any };\n Link: { configure: (options?: Partial) => any };\n Typography: { configure: (options?: any) => any };\n}\n\n/**\n * Singleton service for lazy-loading heavy libraries from CDN.\n *\n * This reduces initial bundle size by loading libraries only when needed.\n * Libraries are cached after first load to avoid duplicate fetches.\n *\n * @example\n * ```typescript\n * const libLoader = DeesServiceLibLoader.getInstance();\n * const xterm = await libLoader.loadXterm();\n * const terminal = new xterm.Terminal({ ... });\n * ```\n */\nexport class DeesServiceLibLoader {\n private static instance: DeesServiceLibLoader;\n\n // Cached library references\n private xtermLib: IXtermBundle | null = null;\n private xtermFitAddonLib: IXtermFitAddonBundle | null = null;\n private xtermSearchAddonLib: IXtermSearchAddonBundle | null = null;\n private highlightJsLib: HLJSApi | null = null;\n private apexChartsLib: typeof ApexChartsType | null = null;\n private tiptapLib: ITiptapBundle | null = null;\n\n // Loading promises to prevent duplicate concurrent loads\n private xtermLoadingPromise: Promise | null = null;\n private xtermFitAddonLoadingPromise: Promise | null = null;\n private xtermSearchAddonLoadingPromise: Promise | null = null;\n private highlightJsLoadingPromise: Promise | null = null;\n private apexChartsLoadingPromise: Promise | null = null;\n private tiptapLoadingPromise: Promise | null = null;\n\n private constructor() {}\n\n /**\n * Get the singleton instance of DeesServiceLibLoader\n */\n public static getInstance(): DeesServiceLibLoader {\n if (!DeesServiceLibLoader.instance) {\n DeesServiceLibLoader.instance = new DeesServiceLibLoader();\n }\n return DeesServiceLibLoader.instance;\n }\n\n /**\n * Load xterm terminal emulator from CDN\n * @returns Promise resolving to xterm module with Terminal class\n */\n public async loadXterm(): Promise {\n if (this.xtermLib) {\n return this.xtermLib;\n }\n\n if (this.xtermLoadingPromise) {\n return this.xtermLoadingPromise;\n }\n\n this.xtermLoadingPromise = (async () => {\n const url = `${CDN_BASE}/xterm@${CDN_VERSIONS.xterm}/+esm`;\n const module = await import(/* @vite-ignore */ url);\n\n // Also load and inject xterm CSS\n await this.injectXtermStyles();\n\n this.xtermLib = {\n Terminal: module.Terminal,\n };\n return this.xtermLib;\n })();\n\n return this.xtermLoadingPromise;\n }\n\n /**\n * Load xterm-addon-fit from CDN\n * @returns Promise resolving to FitAddon class\n */\n public async loadXtermFitAddon(): Promise {\n if (this.xtermFitAddonLib) {\n return this.xtermFitAddonLib;\n }\n\n if (this.xtermFitAddonLoadingPromise) {\n return this.xtermFitAddonLoadingPromise;\n }\n\n this.xtermFitAddonLoadingPromise = (async () => {\n const url = `${CDN_BASE}/xterm-addon-fit@${CDN_VERSIONS.xtermAddonFit}/+esm`;\n const module = await import(/* @vite-ignore */ url);\n\n this.xtermFitAddonLib = {\n FitAddon: module.FitAddon,\n };\n return this.xtermFitAddonLib;\n })();\n\n return this.xtermFitAddonLoadingPromise;\n }\n\n /**\n * Load xterm-addon-search from CDN\n * @returns Promise resolving to SearchAddon class\n */\n public async loadXtermSearchAddon(): Promise {\n if (this.xtermSearchAddonLib) {\n return this.xtermSearchAddonLib;\n }\n\n if (this.xtermSearchAddonLoadingPromise) {\n return this.xtermSearchAddonLoadingPromise;\n }\n\n this.xtermSearchAddonLoadingPromise = (async () => {\n const url = `${CDN_BASE}/xterm-addon-search@${CDN_VERSIONS.xtermAddonSearch}/+esm`;\n const module = await import(/* @vite-ignore */ url);\n\n this.xtermSearchAddonLib = {\n SearchAddon: module.SearchAddon,\n };\n return this.xtermSearchAddonLib;\n })();\n\n return this.xtermSearchAddonLoadingPromise;\n }\n\n /**\n * Inject xterm CSS styles into the document head\n */\n private async injectXtermStyles(): Promise {\n const styleId = 'xterm-cdn-styles';\n if (document.getElementById(styleId)) {\n return; // Already injected\n }\n\n const cssUrl = `${CDN_BASE}/xterm@${CDN_VERSIONS.xterm}/css/xterm.css`;\n const response = await fetch(cssUrl);\n const cssText = await response.text();\n\n // Fix for xterm.js WidthCache measurement container causing horizontal scrollbar\n // xterm.js creates this on document.body with width: 50000px, top: -50000px\n // Moving it off-screen horizontally prevents scrollWidth expansion\n const xtermMeasurementFix = `\n/* Fix xterm.js WidthCache measurement container causing horizontal scrollbar */\n/* xterm creates this on document.body - move it off-screen horizontally too */\nbody > div[style*=\"top: -50000px\"][style*=\"width: 50000px\"] {\n left: -50000px !important;\n}\n`;\n\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = cssText + xtermMeasurementFix;\n document.head.appendChild(style);\n }\n\n /**\n * Load highlight.js syntax highlighter from CDN\n * @returns Promise resolving to highlight.js API\n */\n public async loadHighlightJs(): Promise {\n if (this.highlightJsLib) {\n return this.highlightJsLib;\n }\n\n if (this.highlightJsLoadingPromise) {\n return this.highlightJsLoadingPromise;\n }\n\n this.highlightJsLoadingPromise = (async () => {\n const url = `${CDN_BASE}/highlight.js@${CDN_VERSIONS.highlightJs}/+esm`;\n const module = await import(/* @vite-ignore */ url);\n\n this.highlightJsLib = module.default;\n return this.highlightJsLib;\n })();\n\n return this.highlightJsLoadingPromise;\n }\n\n /**\n * Load ApexCharts charting library from CDN\n * @returns Promise resolving to ApexCharts constructor\n */\n public async loadApexCharts(): Promise {\n if (this.apexChartsLib) {\n return this.apexChartsLib;\n }\n\n if (this.apexChartsLoadingPromise) {\n return this.apexChartsLoadingPromise;\n }\n\n this.apexChartsLoadingPromise = (async () => {\n const url = `${CDN_BASE}/apexcharts@${CDN_VERSIONS.apexcharts}/+esm`;\n const module = await import(/* @vite-ignore */ url);\n\n this.apexChartsLib = module.default;\n return this.apexChartsLib;\n })();\n\n return this.apexChartsLoadingPromise;\n }\n\n /**\n * Load Tiptap rich text editor and extensions from CDN\n * @returns Promise resolving to Tiptap bundle with Editor and extensions\n */\n public async loadTiptap(): Promise {\n if (this.tiptapLib) {\n return this.tiptapLib;\n }\n\n if (this.tiptapLoadingPromise) {\n return this.tiptapLoadingPromise;\n }\n\n this.tiptapLoadingPromise = (async () => {\n const version = CDN_VERSIONS.tiptap;\n\n // Load all Tiptap modules in parallel\n const [\n coreModule,\n starterKitModule,\n underlineModule,\n textAlignModule,\n linkModule,\n typographyModule,\n ] = await Promise.all([\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/core@${version}/+esm`),\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/starter-kit@${version}/+esm`),\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/extension-underline@${version}/+esm`),\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/extension-text-align@${version}/+esm`),\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/extension-link@${version}/+esm`),\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/extension-typography@${version}/+esm`),\n ]);\n\n this.tiptapLib = {\n Editor: coreModule.Editor,\n StarterKit: starterKitModule.default || starterKitModule.StarterKit,\n Underline: underlineModule.default || underlineModule.Underline,\n TextAlign: textAlignModule.default || textAlignModule.TextAlign,\n Link: linkModule.default || linkModule.Link,\n Typography: typographyModule.default || typographyModule.Typography,\n };\n\n return this.tiptapLib;\n })();\n\n return this.tiptapLoadingPromise;\n }\n\n /**\n * Preload multiple libraries in parallel\n * Useful for warming the cache before components are rendered\n */\n public async preloadAll(): Promise {\n await Promise.all([\n this.loadXterm(),\n this.loadXtermFitAddon(),\n this.loadXtermSearchAddon(),\n this.loadHighlightJs(),\n this.loadApexCharts(),\n this.loadTiptap(),\n ]);\n }\n\n /**\n * Check if a specific library is already loaded\n */\n public isLoaded(library: 'xterm' | 'xtermFitAddon' | 'xtermSearchAddon' | 'highlightJs' | 'apexCharts' | 'tiptap'): boolean {\n switch (library) {\n case 'xterm':\n return this.xtermLib !== null;\n case 'xtermFitAddon':\n return this.xtermFitAddonLib !== null;\n case 'xtermSearchAddon':\n return this.xtermSearchAddonLib !== null;\n case 'highlightJs':\n return this.highlightJsLib !== null;\n case 'apexCharts':\n return this.apexChartsLib !== null;\n case 'tiptap':\n return this.tiptapLib !== null;\n default:\n return false;\n }\n }\n}\n", "export { DeesServiceLibLoader } from './DeesServiceLibLoader.js';\nexport type { IXtermBundle, IXtermFitAddonBundle, IXtermSearchAddonBundle, IXtermSearchAddon, ITiptapBundle } from './DeesServiceLibLoader.js';\nexport { CDN_BASE, CDN_VERSIONS } from './versions.js';\n", "import {\n DeesElement,\n customElement,\n property,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './demo.js';\nimport { chartAreaStyles } from './styles.js';\nimport { renderChartArea } from './template.js';\n\nimport type ApexCharts from 'apexcharts';\n\ntype ApexAxisChartSeries = {\n name?: string;\n type?: string;\n color?: string;\n group?: string;\n hidden?: boolean;\n zIndex?: number;\n data: (number | null)[] | { x: any; y: any; [key: string]: any }[] | [number, number | null][] | number[][];\n}[];\nimport { DeesServiceLibLoader } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-chart-area': DeesChartArea;\n }\n}\n\n@customElement('dees-chart-area')\nexport class DeesChartArea extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Chart'];\n\n // instance\n @state()\n accessor chart: ApexCharts;\n\n @property()\n accessor label: string = 'Untitled Chart';\n\n @property({ type: Array })\n accessor series: ApexAxisChartSeries = [];\n\n // Override getter to return internal chart data\n get chartSeries(): ApexAxisChartSeries {\n return this.internalChartData.length > 0 ? this.internalChartData : this.series;\n }\n\n @property({ attribute: false })\n accessor yAxisFormatter: (value: number) => string = (val) => `${val} Mbps`;\n\n @property({ type: Number })\n accessor rollingWindow: number = 0; // 0 means no rolling window\n\n @property({ type: Boolean })\n accessor realtimeMode: boolean = false;\n\n @property({ type: String })\n accessor yAxisScaling: 'fixed' | 'dynamic' | 'percentage' = 'dynamic';\n\n @property({ type: Number })\n accessor yAxisMax: number = 100; // Used when yAxisScaling is 'fixed' or 'percentage'\n\n @property({ type: Number })\n accessor autoScrollInterval: number = 1000; // Auto-scroll interval in milliseconds (0 to disable)\n\n private resizeObserver: ResizeObserver;\n private resizeTimeout: number;\n private internalChartData: ApexAxisChartSeries = [];\n private autoScrollTimer: number | null = null;\n private readonly DEBUG_RESIZE = false; // Set to true to enable resize debugging\n \n // Chart color schemes\n private readonly CHART_COLORS = {\n dark: [\n 'hsl(217.2 91.2% 59.8%)', // Blue\n 'hsl(173.4 80.4% 40%)', // Teal\n 'hsl(280.3 87.4% 66.7%)', // Purple\n 'hsl(24.6 95% 53.1%)', // Orange\n ],\n light: [\n 'hsl(222.2 47.4% 51.2%)', // Blue (shadcn primary)\n 'hsl(142.1 76.2% 36.3%)', // Green (shadcn success)\n 'hsl(280.3 47.7% 50.2%)', // Purple (muted)\n 'hsl(20.5 90.2% 48.2%)', // Orange (shadcn destructive variant)\n ]\n };\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n\n this.resizeObserver = new ResizeObserver((entries) => {\n // Debounce resize calls to prevent excessive updates\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n \n this.resizeTimeout = window.setTimeout(() => {\n // Simply resize if we have a chart, since we're only observing the mainbox\n if (this.chart) {\n // Log resize event for debugging\n if (this.DEBUG_RESIZE && entries.length > 0) {\n const entry = entries[0];\n console.log('DeesChartArea - Resize detected:', {\n width: entry.contentRect.width,\n height: entry.contentRect.height\n });\n }\n this.resizeChart();\n }\n }, 100); // 100ms debounce\n });\n \n // Note: ResizeObserver is now set up after chart initialization in firstUpdated()\n // to ensure proper timing and avoid race conditions\n \n this.registerGarbageFunction(async () => {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n this.stopAutoScroll();\n \n // Critical: Destroy chart instance to prevent memory leak\n if (this.chart) {\n try {\n this.chart.destroy();\n this.chart = null;\n } catch (error) {\n console.error('Error destroying chart:', error);\n }\n }\n });\n }\n \n public async connectedCallback() {\n super.connectedCallback();\n \n // Trigger resize when element is connected to DOM\n // This helps with dynamically added charts\n if (this.chart) {\n // Wait a frame for layout to settle\n await new Promise(resolve => requestAnimationFrame(resolve));\n await this.resizeChart();\n }\n }\n\n public static styles = chartAreaStyles;\n\n public render(): TemplateResult {\n return renderChartArea(this);\n }\n\n\n\n public async firstUpdated() {\n await this.domtoolsPromise;\n\n // Load ApexCharts from CDN\n const ApexChartsLib = await DeesServiceLibLoader.getInstance().loadApexCharts();\n\n // Wait for next animation frame to ensure layout is complete\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Get actual dimensions of the container\n const mainbox: HTMLDivElement = this.shadowRoot.querySelector('.mainbox');\n const chartContainer: HTMLDivElement = this.shadowRoot.querySelector('.chartContainer');\n \n if (!mainbox || !chartContainer) {\n console.error('Chart containers not found');\n return;\n }\n \n // Calculate initial dimensions\n const styleChartContainer = window.getComputedStyle(chartContainer);\n const paddingTop = parseInt(styleChartContainer.paddingTop, 10);\n const paddingBottom = parseInt(styleChartContainer.paddingBottom, 10);\n const paddingLeft = parseInt(styleChartContainer.paddingLeft, 10);\n const paddingRight = parseInt(styleChartContainer.paddingRight, 10);\n \n const initialWidth = mainbox.clientWidth - paddingLeft - paddingRight;\n const initialHeight = mainbox.offsetHeight - paddingTop - paddingBottom;\n \n // Use provided series data or default demo data\n const chartSeries = this.series.length > 0 ? this.series : [\n {\n name: 'cpu',\n data: [\n { x: '2025-01-15T03:00:00', y: 25 },\n { x: '2025-01-15T07:00:00', y: 30 },\n { x: '2025-01-15T11:00:00', y: 20 },\n { x: '2025-01-15T15:00:00', y: 35 },\n { x: '2025-01-15T19:00:00', y: 25 },\n ],\n },\n {\n name: 'memory',\n data: [\n { x: '2025-01-15T03:00:00', y: 10 },\n { x: '2025-01-15T07:00:00', y: 12 },\n { x: '2025-01-15T11:00:00', y: 10 },\n { x: '2025-01-15T15:00:00', y: 30 },\n { x: '2025-01-15T19:00:00', y: 40 },\n ],\n },\n ];\n \n // Store internal data\n this.internalChartData = chartSeries;\n \n // Get current theme\n const isDark = !this.goBright;\n const theme = isDark ? 'dark' : 'light';\n \n var options: ApexCharts.ApexOptions = {\n series: chartSeries,\n chart: {\n width: initialWidth || 100, // Use actual width or fallback\n height: initialHeight || 100, // Use actual height or fallback\n type: 'area',\n background: 'transparent', // Transparent background to inherit from container\n toolbar: {\n show: false, // This line disables the toolbar\n },\n animations: {\n enabled: !this.realtimeMode, // Disable animations in realtime mode\n speed: 400,\n animateGradually: {\n enabled: false, // Disable gradual animation for cleaner updates\n delay: 0\n },\n dynamicAnimation: {\n enabled: !this.realtimeMode,\n speed: 350\n }\n },\n zoom: {\n enabled: false, // Disable zoom for cleaner interaction\n },\n selection: {\n enabled: false, // Disable selection\n },\n },\n dataLabels: {\n enabled: false,\n },\n stroke: {\n width: 2,\n curve: 'smooth',\n },\n xaxis: {\n type: 'datetime', // Time-series data\n labels: {\n format: 'HH:mm:ss', // Time formatting with seconds\n datetimeUTC: false,\n style: {\n colors: [isDark ? 'hsl(0 0% 63.9%)' : 'hsl(0 0% 20%)'], // Label color\n fontSize: '12px',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n fontWeight: '400',\n },\n },\n axisBorder: {\n show: false, // Hide x-axis border\n },\n axisTicks: {\n show: false, // Hide x-axis ticks\n },\n },\n yaxis: {\n min: 0,\n max: this.yAxisScaling === 'dynamic' ? undefined : this.yAxisMax,\n labels: {\n formatter: this.yAxisFormatter,\n style: {\n colors: [isDark ? 'hsl(0 0% 63.9%)' : 'hsl(0 0% 20%)'], // Label color\n fontSize: '12px',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n fontWeight: '400',\n },\n },\n axisBorder: {\n show: false, // Hide y-axis border\n },\n axisTicks: {\n show: false, // Hide y-axis ticks\n },\n },\n tooltip: {\n shared: true, // Enables the tooltip to display across series\n intersect: false, // Allows hovering anywhere on the chart\n followCursor: true, // Makes tooltip follow mouse even between points\n x: {\n format: 'dd/MM/yy HH:mm',\n },\n custom: ({ series, dataPointIndex, w }: any) => {\n // Iterate through each series and get its value\n // Note: We can't access component instance here, so we'll use w.config.theme.mode\n const currentTheme = w.config.theme.mode;\n const isDarkMode = currentTheme === 'dark';\n const bgColor = isDarkMode ? 'hsl(0 0% 9%)' : 'hsl(0 0% 100%)';\n const textColor = isDarkMode ? 'hsl(0 0% 95%)' : 'hsl(0 0% 9%)';\n const borderColor = isDarkMode ? 'hsl(0 0% 14.9%)' : 'hsl(0 0% 89.8%)';\n \n // Get formatter from chart config\n const formatter = w.config.yaxis[0]?.labels?.formatter || ((val: number) => val.toString());\n \n let tooltipContent = `
`;\n\n series.forEach((s: number[], index: number) => {\n const label = w.globals.seriesNames[index]; // Get series label\n const value = s[dataPointIndex]; // Get value at data point\n const color = w.globals.colors[index];\n const formattedValue = formatter(value);\n tooltipContent += `
0 ? '6px' : '0'} 0;\">\n \n ${label}:\n ${formattedValue}\n
`;\n });\n\n tooltipContent += `
`;\n return tooltipContent;\n },\n },\n grid: {\n xaxis: {\n lines: {\n show: false, // Hide vertical grid lines for cleaner look\n },\n },\n yaxis: {\n lines: {\n show: true,\n },\n },\n borderColor: isDark ? 'hsl(0 0% 14.9%)' : 'hsl(0 0% 94%)', // Very subtle grid lines\n strokeDashArray: 0, // Solid line\n padding: {\n top: 10,\n right: 20,\n bottom: 10,\n left: 20,\n },\n },\n fill: {\n type: 'gradient', // Gradient fill for the area\n gradient: {\n shade: isDark ? 'dark' : 'light',\n type: 'vertical',\n shadeIntensity: 0.1,\n opacityFrom: isDark ? 0.2 : 0.3,\n opacityTo: 0,\n stops: [0, 100],\n },\n },\n colors: isDark ? this.CHART_COLORS.dark : this.CHART_COLORS.light,\n theme: {\n mode: theme,\n },\n };\n \n try {\n this.chart = new ApexChartsLib(this.shadowRoot.querySelector('.chartContainer'), options);\n await this.chart.render();\n \n // Give the chart a moment to fully initialize before resizing\n await new Promise(resolve => setTimeout(resolve, 100));\n await this.resizeChart();\n \n // Ensure resize observer is watching the mainbox\n const mainbox = this.shadowRoot.querySelector('.mainbox');\n if (mainbox && this.resizeObserver) {\n // Disconnect any previous observations\n this.resizeObserver.disconnect();\n // Start observing the mainbox\n this.resizeObserver.observe(mainbox);\n if (this.DEBUG_RESIZE) {\n console.log('DeesChartArea - ResizeObserver attached to mainbox');\n }\n }\n } catch (error) {\n console.error('Failed to initialize chart:', error);\n // Optionally, you could set an error state here\n // this.chartState = 'error';\n // this.errorMessage = 'Failed to initialize chart';\n }\n }\n\n public async updated(changedProperties: Map) {\n super.updated(changedProperties);\n \n // Update chart theme when goBright changes\n if (changedProperties.has('goBright') && this.chart) {\n await this.updateChartTheme();\n }\n \n // Update chart if series data changes\n if (changedProperties.has('series') && this.chart && this.series.length > 0) {\n await this.updateSeries(this.series);\n }\n \n // Update y-axis formatter if it changes\n if (changedProperties.has('yAxisFormatter') && this.chart) {\n await this.chart.updateOptions({\n yaxis: {\n labels: {\n formatter: this.yAxisFormatter,\n },\n },\n });\n }\n \n // Handle realtime mode changes\n if (changedProperties.has('realtimeMode') && this.chart) {\n await this.chart.updateOptions({\n chart: {\n animations: {\n enabled: !this.realtimeMode,\n speed: 400,\n animateGradually: {\n enabled: false,\n delay: 0\n },\n dynamicAnimation: {\n enabled: !this.realtimeMode,\n speed: 350\n }\n }\n }\n });\n \n // Start/stop auto-scroll based on realtime mode\n if (this.realtimeMode && this.rollingWindow > 0 && this.autoScrollInterval > 0) {\n this.startAutoScroll();\n } else {\n this.stopAutoScroll();\n }\n }\n \n // Handle auto-scroll interval changes\n if (changedProperties.has('autoScrollInterval') && this.chart) {\n this.stopAutoScroll();\n if (this.realtimeMode && this.rollingWindow > 0 && this.autoScrollInterval > 0) {\n this.startAutoScroll();\n }\n }\n \n // Handle y-axis scaling changes\n if ((changedProperties.has('yAxisScaling') || changedProperties.has('yAxisMax')) && this.chart) {\n await this.chart.updateOptions({\n yaxis: {\n min: 0,\n max: this.yAxisScaling === 'dynamic' ? undefined : this.yAxisMax\n }\n });\n }\n }\n\n public async updateSeries(newSeries: ApexAxisChartSeries, animate: boolean = true) {\n if (!this.chart) {\n return;\n }\n \n try {\n // Store the new data first\n this.internalChartData = newSeries;\n \n // Handle rolling window if enabled\n if (this.rollingWindow > 0 && this.realtimeMode) {\n const now = Date.now();\n const cutoffTime = now - this.rollingWindow;\n \n // Filter data to only include points within the rolling window\n const filteredSeries = newSeries.map(series => ({\n name: series.name,\n data: (series.data as any[]).filter(point => {\n if (typeof point === 'object' && point !== null && 'x' in point) {\n return new Date(point.x).getTime() > cutoffTime;\n }\n return false;\n })\n }));\n \n // Only update if we have data\n if (filteredSeries.some(s => s.data.length > 0)) {\n // Handle y-axis scaling first\n if (this.yAxisScaling === 'dynamic') {\n const allValues = filteredSeries.flatMap(s => (s.data as any[]).map(d => d.y));\n if (allValues.length > 0) {\n const maxValue = Math.max(...allValues);\n const dynamicMax = Math.ceil(maxValue * 1.1);\n await this.chart.updateOptions({\n yaxis: {\n min: 0,\n max: dynamicMax\n }\n }, false, false);\n }\n }\n \n await this.chart.updateSeries(filteredSeries, false);\n }\n } else {\n await this.chart.updateSeries(newSeries, animate);\n }\n } catch (error) {\n console.error('Failed to update chart series:', error);\n }\n }\n \n // Update just the x-axis for smooth scrolling in realtime mode\n // Public for advanced usage in demos, but typically handled automatically\n public async updateTimeWindow() {\n if (!this.chart || this.rollingWindow <= 0) {\n return;\n }\n \n const now = Date.now();\n const cutoffTime = now - this.rollingWindow;\n \n await this.chart.updateOptions({\n xaxis: {\n min: cutoffTime,\n max: now,\n labels: {\n format: 'HH:mm:ss',\n datetimeUTC: false,\n style: {\n colors: [!this.goBright ? 'hsl(0 0% 63.9%)' : 'hsl(0 0% 20%)'],\n fontSize: '12px',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n fontWeight: '400',\n },\n },\n tickAmount: 6,\n }\n }, false, false);\n }\n\n public async appendData(newData: { data: any[] }[]) {\n if (!this.chart) {\n return;\n }\n \n // Use ApexCharts' appendData method for smoother real-time updates\n this.chart.appendData(newData);\n }\n \n public async updateOptions(options: ApexCharts.ApexOptions, redrawPaths?: boolean, animate?: boolean) {\n if (!this.chart) {\n return;\n }\n \n return this.chart.updateOptions(options, redrawPaths, animate);\n }\n\n public async resizeChart() {\n if (!this.chart) {\n return;\n }\n \n if (this.DEBUG_RESIZE) {\n console.log('DeesChartArea - resizeChart called');\n }\n \n try {\n const mainbox: HTMLDivElement = this.shadowRoot.querySelector('.mainbox');\n const chartContainer: HTMLDivElement = this.shadowRoot.querySelector('.chartContainer');\n \n if (!mainbox || !chartContainer) {\n return;\n }\n\n // Force layout recalculation\n void mainbox.offsetHeight;\n\n // Get computed style of the element\n const styleChartContainer = window.getComputedStyle(chartContainer);\n\n // Extract padding values\n const paddingTop = parseInt(styleChartContainer.paddingTop, 10);\n const paddingBottom = parseInt(styleChartContainer.paddingBottom, 10);\n const paddingLeft = parseInt(styleChartContainer.paddingLeft, 10);\n const paddingRight = parseInt(styleChartContainer.paddingRight, 10);\n\n // Calculate the actual width and height to use, subtracting padding\n const actualWidth = mainbox.clientWidth - paddingLeft - paddingRight;\n const actualHeight = mainbox.offsetHeight - paddingTop - paddingBottom;\n \n // Validate dimensions\n if (actualWidth > 0 && actualHeight > 0) {\n if (this.DEBUG_RESIZE) {\n console.log('DeesChartArea - Updating chart dimensions:', {\n width: actualWidth,\n height: actualHeight\n });\n }\n \n await this.chart.updateOptions({\n chart: {\n width: actualWidth,\n height: actualHeight,\n },\n }, true, false); // Redraw paths but don't animate\n }\n } catch (error) {\n console.error('Failed to resize chart:', error);\n }\n }\n \n /**\n * Manually trigger a chart resize. Useful when automatic detection doesn't work.\n * This is a convenience method that can be called from outside the component.\n */\n public async forceResize() {\n await this.resizeChart();\n }\n \n private startAutoScroll() {\n if (this.autoScrollTimer) {\n return; // Already running\n }\n \n this.autoScrollTimer = window.setInterval(() => {\n this.updateTimeWindow();\n }, this.autoScrollInterval);\n }\n \n private stopAutoScroll() {\n if (this.autoScrollTimer) {\n window.clearInterval(this.autoScrollTimer);\n this.autoScrollTimer = null;\n }\n }\n \n private async updateChartTheme() {\n if (!this.chart) {\n return;\n }\n \n const isDark = !this.goBright;\n const theme = isDark ? 'dark' : 'light';\n \n await this.chart.updateOptions({\n theme: {\n mode: theme,\n },\n colors: isDark ? this.CHART_COLORS.dark : this.CHART_COLORS.light,\n xaxis: {\n labels: {\n style: {\n colors: [isDark ? 'hsl(0 0% 63.9%)' : 'hsl(0 0% 20%)'],\n },\n },\n },\n yaxis: {\n labels: {\n style: {\n colors: [isDark ? 'hsl(0 0% 63.9%)' : 'hsl(0 0% 20%)'],\n },\n },\n },\n grid: {\n borderColor: isDark ? 'hsl(0 0% 14.9%)' : 'hsl(0 0% 94%)',\n },\n fill: {\n gradient: {\n shade: isDark ? 'dark' : 'light',\n opacityFrom: isDark ? 0.2 : 0.3,\n },\n },\n });\n }\n}\n", "export * from './component.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport type { DeesChartLog } from '../dees-chart-log/dees-chart-log.js';\nimport '@design.estate/dees-wcctools/demotools';\n\nexport const demoFunc = () => {\n return html`\n {\n // Get the log elements\n const structuredLog = elementArg.querySelector('#structured-log') as DeesChartLog;\n const rawLog = elementArg.querySelector('#raw-log') as DeesChartLog;\n let structuredIntervalId: number;\n let rawIntervalId: number;\n\n const serverSources = ['Server', 'Database', 'API', 'Auth', 'Cache', 'Queue', 'WebSocket', 'Scheduler'];\n\n const logTemplates = {\n debug: [\n 'Loading module: {{module}}',\n 'Cache hit for key: {{key}}',\n 'SQL query executed in {{time}}ms',\n 'Request headers: {{headers}}',\n 'Environment variable loaded: {{var}}',\n ],\n info: [\n 'Request received: {{method}} {{path}}',\n 'User {{userId}} authenticated successfully',\n 'Processing job {{jobId}} from queue',\n 'Scheduled task \"{{task}}\" started',\n 'WebSocket connection established from {{ip}}',\n ],\n warn: [\n 'Slow query detected: {{query}} ({{time}}ms)',\n 'Memory usage at {{percent}}%',\n 'Rate limit approaching for IP {{ip}}',\n 'Deprecated API endpoint called: {{endpoint}}',\n 'Certificate expires in {{days}} days',\n ],\n error: [\n 'Database connection lost: {{error}}',\n 'Failed to process request: {{error}}',\n 'Authentication failed for user {{user}}',\n 'File not found: {{path}}',\n 'Service unavailable: {{service}}',\n ],\n success: [\n 'Server started successfully on port {{port}}',\n 'Database migration completed',\n 'Backup completed: {{size}} MB',\n 'SSL certificate renewed',\n 'Health check passed: all systems operational',\n ],\n };\n\n // Docker-like raw log lines with ANSI colors\n const dockerLogTemplates = [\n '\\x1b[90m2024-01-15T10:23:45.123Z\\x1b[0m \\x1b[36mINFO\\x1b[0m [nginx] GET /api/health 200 - 2ms',\n '\\x1b[90m2024-01-15T10:23:45.456Z\\x1b[0m \\x1b[33mWARN\\x1b[0m [redis] Connection pool running low: 3/10',\n '\\x1b[90m2024-01-15T10:23:45.789Z\\x1b[0m \\x1b[31mERROR\\x1b[0m [mongodb] Query timeout after 30000ms',\n '\\x1b[90m2024-01-15T10:23:46.012Z\\x1b[0m \\x1b[36mINFO\\x1b[0m [app] Processing batch job #{{jobId}}',\n '\\x1b[90m2024-01-15T10:23:46.345Z\\x1b[0m \\x1b[32mOK\\x1b[0m [health] All services healthy',\n '\\x1b[90m2024-01-15T10:23:46.678Z\\x1b[0m \\x1b[36mINFO\\x1b[0m [kafka] Message consumed from topic: events',\n '\\x1b[90m2024-01-15T10:23:47.001Z\\x1b[0m \\x1b[35mDEBUG\\x1b[0m [grpc] Request received: GetUser(id={{userId}})',\n '\\x1b[90m2024-01-15T10:23:47.234Z\\x1b[0m \\x1b[31mERROR\\x1b[0m [auth] Token validation failed: expired',\n '\\x1b[90m2024-01-15T10:23:47.567Z\\x1b[0m \\x1b[33mWARN\\x1b[0m [rate-limit] IP {{ip}} approaching rate limit',\n '\\x1b[90m2024-01-15T10:23:47.890Z\\x1b[0m \\x1b[36mINFO\\x1b[0m [websocket] Client connected: session={{session}}',\n // Multi-line log entry like stack traces\n '\\x1b[31mError: Connection refused\\x1b[0m\\n at TcpConnection.connect (/app/node_modules/pg/lib/connection.js:12:15)\\n at Pool.connect (/app/node_modules/pg/lib/pool.js:45:23)\\n at async DatabaseService.query (/app/src/db/service.ts:89:12)',\n ];\n\n const generateRandomLog = () => {\n const levels: Array<'debug' | 'info' | 'warn' | 'error' | 'success'> = ['debug', 'info', 'warn', 'error', 'success'];\n const weights = [0.2, 0.5, 0.15, 0.1, 0.05];\n\n const random = Math.random();\n let cumulative = 0;\n let level: typeof levels[0] = 'info';\n\n for (let i = 0; i < weights.length; i++) {\n cumulative += weights[i];\n if (random < cumulative) {\n level = levels[i];\n break;\n }\n }\n\n const source = serverSources[Math.floor(Math.random() * serverSources.length)];\n const templates = logTemplates[level];\n const template = templates[Math.floor(Math.random() * templates.length)];\n\n // Replace placeholders with random values\n const message = template\n .replace('{{module}}', ['express', 'mongoose', 'redis', 'socket.io'][Math.floor(Math.random() * 4)])\n .replace('{{key}}', 'user:' + Math.floor(Math.random() * 1000))\n .replace('{{time}}', String(Math.floor(Math.random() * 500) + 50))\n .replace('{{headers}}', 'Content-Type: application/json, Authorization: Bearer ...')\n .replace('{{var}}', ['NODE_ENV', 'DATABASE_URL', 'API_KEY', 'PORT'][Math.floor(Math.random() * 4)])\n .replace('{{method}}', ['GET', 'POST', 'PUT', 'DELETE'][Math.floor(Math.random() * 4)])\n .replace('{{path}}', ['/api/users', '/api/auth/login', '/api/products', '/health'][Math.floor(Math.random() * 4)])\n .replace('{{userId}}', String(Math.floor(Math.random() * 10000)))\n .replace('{{jobId}}', 'job_' + Math.random().toString(36).substring(2, 11))\n .replace('{{task}}', ['cleanup', 'backup', 'report-generation', 'cache-refresh'][Math.floor(Math.random() * 4)])\n .replace('{{ip}}', `192.168.1.${Math.floor(Math.random() * 255)}`)\n .replace('{{query}}', 'SELECT * FROM users WHERE ...')\n .replace('{{percent}}', String(Math.floor(Math.random() * 30) + 70))\n .replace('{{endpoint}}', '/api/v1/legacy')\n .replace('{{days}}', String(Math.floor(Math.random() * 30) + 1))\n .replace('{{error}}', ['ECONNREFUSED', 'ETIMEDOUT', 'ENOTFOUND'][Math.floor(Math.random() * 3)])\n .replace('{{user}}', 'user_' + Math.floor(Math.random() * 1000))\n .replace('{{service}}', ['Redis', 'MongoDB', 'ElasticSearch'][Math.floor(Math.random() * 3)])\n .replace('{{port}}', String(3000 + Math.floor(Math.random() * 10)))\n .replace('{{size}}', String(Math.floor(Math.random() * 500) + 100));\n\n structuredLog.addLog(level, message, source);\n };\n\n const generateDockerLog = () => {\n const template = dockerLogTemplates[Math.floor(Math.random() * dockerLogTemplates.length)];\n const now = new Date().toISOString();\n\n const logLine = template\n .replace(/2024-01-15T10:23:\\d{2}\\.\\d{3}Z/g, now)\n .replace('{{jobId}}', String(Math.floor(Math.random() * 10000)))\n .replace('{{userId}}', String(Math.floor(Math.random() * 10000)))\n .replace('{{ip}}', `192.168.1.${Math.floor(Math.random() * 255)}`)\n .replace('{{session}}', Math.random().toString(36).substring(2, 11));\n\n rawLog.writelnRaw(logLine);\n };\n\n const startStructuredSimulation = () => {\n if (!structuredIntervalId) {\n const scheduleNext = () => {\n generateRandomLog();\n const nextDelay = Math.random() * 2000 + 500;\n structuredIntervalId = window.setTimeout(() => {\n if (structuredIntervalId) {\n scheduleNext();\n }\n }, nextDelay);\n };\n scheduleNext();\n }\n };\n\n const stopStructuredSimulation = () => {\n if (structuredIntervalId) {\n window.clearTimeout(structuredIntervalId);\n structuredIntervalId = null;\n }\n };\n\n const startRawSimulation = () => {\n if (!rawIntervalId) {\n const scheduleNext = () => {\n generateDockerLog();\n const nextDelay = Math.random() * 1000 + 200;\n rawIntervalId = window.setTimeout(() => {\n if (rawIntervalId) {\n scheduleNext();\n }\n }, nextDelay);\n };\n scheduleNext();\n }\n };\n\n const stopRawSimulation = () => {\n if (rawIntervalId) {\n window.clearTimeout(rawIntervalId);\n rawIntervalId = null;\n }\n };\n\n // Wire up button click handlers\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n switch (text) {\n case 'Add Structured Log':\n button.addEventListener('click', () => generateRandomLog());\n break;\n case 'Start Structured':\n button.addEventListener('click', () => startStructuredSimulation());\n break;\n case 'Stop Structured':\n button.addEventListener('click', () => stopStructuredSimulation());\n break;\n case 'Add Docker Log':\n button.addEventListener('click', () => generateDockerLog());\n break;\n case 'Start Docker':\n button.addEventListener('click', () => startRawSimulation());\n break;\n case 'Stop Docker':\n button.addEventListener('click', () => stopRawSimulation());\n break;\n }\n });\n }}>\n \n
\n \n
\n
Structured Logs (ILogEntry)
\n
\n Structured log entries with level, message, and source. Supports search and keyword highlighting.\n
\n
\n Add Structured Log\n Start Structured\n Stop Structured\n
\n \n
\n\n \n
\n
Raw Logs (Docker/Container Style)
\n
\n Raw log output with ANSI escape sequences for real Docker/container logs.\n
\n
\n Add Docker Log\n Start Docker\n Stop Docker\n
\n \n
\n
\n
\n `;\n};\n", "import {\n DeesElement,\n css,\n cssManager,\n customElement,\n html,\n property,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-chart-log.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { DeesServiceLibLoader, type IXtermSearchAddon, CDN_BASE, CDN_VERSIONS } from '../../../services/index.js';\n\n// Type imports (no runtime overhead)\nimport type { Terminal } from 'xterm';\nimport type { FitAddon } from 'xterm-addon-fit';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-chart-log': DeesChartLog;\n }\n}\n\nexport interface ILogEntry {\n timestamp: string;\n level: 'debug' | 'info' | 'warn' | 'error' | 'success';\n message: string;\n source?: string;\n}\n\nexport interface ILogMetrics {\n debug: number;\n info: number;\n warn: number;\n error: number;\n success: number;\n total: number;\n rate: number; // logs per second (rolling average)\n}\n\n@customElement('dees-chart-log')\nexport class DeesChartLog extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Chart', 'Workspace'];\n\n @property()\n accessor label: string = 'Server Logs';\n\n @property({ type: String })\n accessor mode: 'structured' | 'raw' = 'structured';\n\n @property({ type: Array })\n accessor logEntries: ILogEntry[] = [];\n\n @property({ type: Boolean })\n accessor autoScroll: boolean = true;\n\n @property({ type: Number })\n accessor maxEntries: number = 10000;\n\n @property({ type: Array })\n accessor highlightKeywords: string[] = [];\n\n @property({ type: Boolean })\n accessor showMetrics: boolean = true;\n\n @state()\n accessor searchQuery: string = '';\n\n @state()\n accessor filterMode: boolean = false;\n\n @state()\n accessor metrics: ILogMetrics = { debug: 0, info: 0, warn: 0, error: 0, success: 0, total: 0, rate: 0 };\n\n @state()\n accessor terminalReady: boolean = false;\n\n // Buffer of all log entries for filter mode\n private logBuffer: ILogEntry[] = [];\n\n // Track trailing hidden entries count for live updates in filter mode\n private trailingHiddenCount: number = 0;\n\n // xterm instances\n private terminal: Terminal | null = null;\n private fitAddon: FitAddon | null = null;\n private searchAddon: IXtermSearchAddon | null = null;\n private resizeObserver: ResizeObserver | null = null;\n private terminalThemeSubscription: any = null;\n private domtoolsInstance: any = null;\n\n // Rate calculation\n private rateBuffer: number[] = [];\n private rateInterval: ReturnType | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n }\n\n .mainbox {\n position: relative;\n width: 100%;\n height: 400px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .header {\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};\n padding: 8px 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n flex-wrap: wrap;\n }\n\n .title {\n font-weight: 500;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n white-space: nowrap;\n }\n\n .search-box {\n display: flex;\n align-items: center;\n gap: 4px;\n flex: 1;\n min-width: 150px;\n max-width: 300px;\n }\n\n .search-box input {\n flex: 1;\n padding: 4px 8px;\n font-size: 12px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n outline: none;\n }\n\n .search-box input:focus {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n }\n\n .search-box input::placeholder {\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n }\n\n .search-nav {\n display: flex;\n gap: 2px;\n }\n\n .search-nav button {\n padding: 4px 6px;\n font-size: 11px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 14.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 3px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n cursor: pointer;\n line-height: 1;\n }\n\n .search-nav button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .filter-toggle {\n padding: 4px 8px;\n font-size: 11px;\n font-weight: 500;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 14.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n cursor: pointer;\n transition: all 0.15s;\n white-space: nowrap;\n }\n\n .filter-toggle:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .filter-toggle.active {\n background: ${cssManager.bdTheme('hsl(45 93% 47%)', 'hsl(45 93% 47%)')};\n border-color: ${cssManager.bdTheme('hsl(45 93% 47%)', 'hsl(45 93% 47%)')};\n color: hsl(0 0% 9%);\n }\n\n .controls {\n display: flex;\n gap: 6px;\n margin-left: auto;\n }\n\n .control-button {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 14.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n padding: 4px 10px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n transition: all 0.15s;\n }\n\n .control-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 20%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 25%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .control-button.active {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n color: white;\n }\n\n .terminal-container {\n flex: 1;\n overflow: hidden;\n padding: 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n }\n\n .terminal-container .xterm {\n height: 100%;\n }\n\n .loading-state {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n font-style: italic;\n font-size: 13px;\n }\n\n .metrics-bar {\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n padding: 6px 12px;\n display: flex;\n gap: 16px;\n font-size: 11px;\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .metric {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .metric::before {\n content: '';\n width: 8px;\n height: 8px;\n border-radius: 50%;\n }\n\n .metric.error::before {\n background: hsl(0 84.2% 60.2%);\n }\n\n .metric.warn::before {\n background: hsl(25 95% 53%);\n }\n\n .metric.info::before {\n background: hsl(222.2 47.4% 51.2%);\n }\n\n .metric.success::before {\n background: hsl(142.1 76.2% 36.3%);\n }\n\n .metric.debug::before {\n background: hsl(0 0% 63.9%);\n }\n\n .metric.rate {\n margin-left: auto;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n .metric.rate::before {\n display: none;\n }\n `,\n ];\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public render(): TemplateResult {\n return html`\n
\n
\n
${this.label}
\n
\n this.handleSearchInput(e)}\n @keydown=${(e: KeyboardEvent) => this.handleSearchKeydown(e)}\n />\n
\n \n \n
\n this.toggleFilterMode()}\n title=\"${this.filterMode ? 'Switch to highlight mode' : 'Switch to filter mode'}\"\n >\n ${this.filterMode ? 'Filter' : 'Highlight'}\n \n
\n
\n this.toggleAutoScroll()}\n >\n Auto Scroll\n \n \n
\n
\n\n
\n ${!this.terminalReady\n ? html`
Loading terminal...
`\n : ''}\n
\n\n ${this.showMetrics\n ? html`\n
\n errors: ${this.metrics.error}\n warns: ${this.metrics.warn}\n info: ${this.metrics.info}\n success: ${this.metrics.success}\n debug: ${this.metrics.debug}\n ${this.metrics.rate.toFixed(1)} logs/sec\n
\n `\n : ''}\n
\n `;\n }\n\n public async firstUpdated() {\n this.domtoolsInstance = await this.domtoolsPromise;\n await this.initializeTerminal();\n\n // initializeTerminal() already replayed logBuffer (from addLog/updateLog).\n // Now handle logEntries set via property binding before terminal was ready.\n if (this.logEntries.length > 0 && this.logBuffer.length === 0) {\n this.logBuffer = [...this.logEntries];\n for (const entry of this.logEntries) {\n this.updateMetrics(entry.level);\n this.writeLogEntry(entry);\n }\n } else if (this.logEntries.length > 0 && this.logBuffer.length > 0) {\n const bufferSet = new Set(this.logBuffer.map(e => `${e.timestamp}|${e.message}`));\n for (const entry of this.logEntries) {\n if (!bufferSet.has(`${entry.timestamp}|${entry.message}`)) {\n this.logBuffer.push(entry);\n this.updateMetrics(entry.level);\n this.writeLogEntry(entry);\n }\n }\n }\n }\n\n private async initializeTerminal() {\n const libLoader = DeesServiceLibLoader.getInstance();\n\n const [xtermBundle, fitBundle, searchBundle] = await Promise.all([\n libLoader.loadXterm(),\n libLoader.loadXtermFitAddon(),\n libLoader.loadXtermSearchAddon(),\n ]);\n\n // Inject xterm CSS into shadow root (needed because shadow DOM doesn't inherit from document.head)\n await this.injectXtermStylesIntoShadow();\n\n this.terminal = new xtermBundle.Terminal({\n cursorBlink: false,\n disableStdin: true,\n fontSize: 12,\n fontFamily: \"'SF Mono', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace\",\n theme: this.getTerminalTheme(),\n scrollback: this.maxEntries,\n convertEol: true,\n });\n\n this.fitAddon = new fitBundle.FitAddon();\n this.searchAddon = new searchBundle.SearchAddon();\n\n this.terminal.loadAddon(this.fitAddon);\n this.terminal.loadAddon(this.searchAddon);\n\n const container = this.shadowRoot!.querySelector('.terminal-container') as HTMLElement;\n this.terminal.open(container);\n\n // Fit after a small delay to ensure proper sizing\n await new Promise((resolve) => requestAnimationFrame(resolve));\n this.fitAddon.fit();\n\n // Set up resize observer\n this.resizeObserver = new ResizeObserver(() => {\n this.fitAddon?.fit();\n });\n this.resizeObserver.observe(container);\n\n // Subscribe to theme changes\n this.terminalThemeSubscription = this.domtoolsInstance.themeManager.themeObservable.subscribe(() => {\n if (this.terminal) {\n this.terminal.options.theme = this.getTerminalTheme();\n }\n });\n\n // Start rate calculation interval\n this.rateInterval = setInterval(() => this.calculateRate(), 1000);\n\n this.terminalReady = true;\n\n // Replay any entries that arrived via updateLog()/addLog() before terminal was ready\n for (const entry of this.logBuffer) {\n this.writeLogEntry(entry);\n }\n }\n\n public updated(changedProperties: Map) {\n super.updated(changedProperties);\n if (changedProperties.has('logEntries') && this.terminalReady && this.logEntries.length > 0) {\n const oldEntries: ILogEntry[] = changedProperties.get('logEntries') || [];\n const newEntries = this.logEntries;\n\n // Same content? Skip entirely.\n if (\n oldEntries.length === newEntries.length &&\n oldEntries.length > 0 &&\n oldEntries[oldEntries.length - 1].timestamp === newEntries[newEntries.length - 1].timestamp &&\n oldEntries[oldEntries.length - 1].message === newEntries[newEntries.length - 1].message\n ) {\n return;\n }\n\n // Append-only? Write only the new tail entries incrementally.\n if (\n newEntries.length > oldEntries.length &&\n oldEntries.length > 0 &&\n oldEntries[oldEntries.length - 1].timestamp === newEntries[oldEntries.length - 1].timestamp &&\n oldEntries[oldEntries.length - 1].message === newEntries[oldEntries.length - 1].message\n ) {\n const tailEntries = newEntries.slice(oldEntries.length);\n for (const entry of tailEntries) {\n this.logBuffer.push(entry);\n this.updateMetrics(entry.level);\n\n // Enforce maxEntries\n if (this.logBuffer.length > this.maxEntries) {\n this.logBuffer.shift();\n }\n\n // Respect filter mode\n if (!this.filterMode || !this.searchQuery || this.entryMatchesFilter(entry)) {\n this.writeLogEntry(entry);\n }\n }\n return;\n }\n\n // Different content \u2014 full re-render\n this.logBuffer = [...newEntries];\n this.reRenderFilteredLogs();\n }\n }\n\n private getTerminalTheme() {\n const isDark = this.domtoolsInstance?.themeManager?.isDarkMode ?? true;\n return isDark\n ? {\n background: '#0a0a0a',\n foreground: '#e0e0e0',\n cursor: '#e0e0e0',\n selectionBackground: '#404040',\n black: '#000000',\n red: '#ff5555',\n green: '#50fa7b',\n yellow: '#f1fa8c',\n blue: '#6272a4',\n magenta: '#ff79c6',\n cyan: '#8be9fd',\n white: '#f8f8f2',\n brightBlack: '#6272a4',\n brightRed: '#ff6e6e',\n brightGreen: '#69ff94',\n brightYellow: '#ffffa5',\n brightBlue: '#d6acff',\n brightMagenta: '#ff92df',\n brightCyan: '#a4ffff',\n brightWhite: '#ffffff',\n }\n : {\n background: '#ffffff',\n foreground: '#333333',\n cursor: '#333333',\n selectionBackground: '#add6ff',\n black: '#000000',\n red: '#cd3131',\n green: '#00bc00',\n yellow: '#949800',\n blue: '#0451a5',\n magenta: '#bc05bc',\n cyan: '#0598bc',\n white: '#555555',\n brightBlack: '#666666',\n brightRed: '#cd3131',\n brightGreen: '#14ce14',\n brightYellow: '#b5ba00',\n brightBlue: '#0451a5',\n brightMagenta: '#bc05bc',\n brightCyan: '#0598bc',\n brightWhite: '#a5a5a5',\n };\n }\n\n /**\n * Inject xterm CSS styles into shadow root\n * This is needed because shadow DOM doesn't inherit styles from document.head\n */\n private async injectXtermStylesIntoShadow(): Promise {\n const styleId = 'xterm-shadow-styles';\n if (this.shadowRoot!.getElementById(styleId)) {\n return; // Already injected\n }\n\n const cssUrl = `${CDN_BASE}/xterm@${CDN_VERSIONS.xterm}/css/xterm.css`;\n const response = await fetch(cssUrl);\n const cssText = await response.text();\n\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = cssText;\n this.shadowRoot!.appendChild(style);\n }\n\n // =====================\n // Structured Log Methods\n // =====================\n\n /**\n * Add a single structured log entry\n */\n public addLog(level: ILogEntry['level'], message: string, source?: string) {\n const entry: ILogEntry = {\n timestamp: new Date().toISOString(),\n level,\n message,\n source,\n };\n\n // Add to buffer\n this.logBuffer.push(entry);\n if (this.logBuffer.length > this.maxEntries) {\n this.logBuffer.shift();\n }\n\n // Handle display based on filter mode\n if (!this.filterMode || !this.searchQuery) {\n // No filtering - show all entries\n this.writeLogEntry(entry);\n } else if (this.entryMatchesFilter(entry)) {\n // Entry matches filter - reset trailing count and write entry\n this.trailingHiddenCount = 0;\n this.writeLogEntry(entry);\n } else {\n // Entry doesn't match - update trailing placeholder\n this.updateTrailingPlaceholder();\n }\n\n this.updateMetrics(entry.level);\n }\n\n /**\n * Add multiple structured log entries\n */\n public updateLog(entries?: ILogEntry[]) {\n if (!entries) return;\n for (const entry of entries) {\n // Add to buffer\n this.logBuffer.push(entry);\n if (this.logBuffer.length > this.maxEntries) {\n this.logBuffer.shift();\n }\n\n // Handle display based on filter mode\n if (!this.filterMode || !this.searchQuery) {\n // No filtering - show all entries\n this.writeLogEntry(entry);\n } else if (this.entryMatchesFilter(entry)) {\n // Entry matches filter - reset trailing count and write entry\n this.trailingHiddenCount = 0;\n this.writeLogEntry(entry);\n } else {\n // Entry doesn't match - update trailing placeholder\n this.updateTrailingPlaceholder();\n }\n\n this.updateMetrics(entry.level);\n }\n }\n\n /**\n * Update the trailing hidden placeholder in real-time\n * Clears the last line if a placeholder already exists, then writes updated count\n */\n private updateTrailingPlaceholder() {\n if (!this.terminal) return;\n\n if (this.trailingHiddenCount > 0) {\n // Clear the previous placeholder line (move up, clear line, move to start)\n this.terminal.write('\\x1b[1A\\x1b[2K\\r');\n }\n\n this.trailingHiddenCount++;\n this.writeHiddenPlaceholder(this.trailingHiddenCount);\n\n if (this.autoScroll) {\n this.terminal.scrollToBottom();\n }\n }\n\n /**\n * Check if a log entry matches the current filter\n */\n private entryMatchesFilter(entry: ILogEntry): boolean {\n if (!this.searchQuery) return true;\n const query = this.searchQuery.toLowerCase();\n return (\n entry.message.toLowerCase().includes(query) ||\n entry.level.toLowerCase().includes(query) ||\n (entry.source?.toLowerCase().includes(query) ?? false)\n );\n }\n\n private writeLogEntry(entry: ILogEntry) {\n if (!this.terminal) return;\n\n const formatted = this.formatLogEntry(entry);\n this.terminal.writeln(formatted);\n\n if (this.autoScroll) {\n this.terminal.scrollToBottom();\n }\n }\n\n private formatLogEntry(entry: ILogEntry): string {\n const timestamp = this.formatTimestamp(entry.timestamp);\n const levelColors: Record = {\n debug: '\\x1b[90m', // Gray\n info: '\\x1b[36m', // Cyan\n warn: '\\x1b[33m', // Yellow\n error: '\\x1b[31m', // Red\n success: '\\x1b[32m', // Green\n };\n const reset = '\\x1b[0m';\n const dim = '\\x1b[2m';\n\n const levelStr = `${levelColors[entry.level]}[${entry.level.toUpperCase().padEnd(7)}]${reset}`;\n const sourceStr = entry.source ? `${dim}[${entry.source}]${reset} ` : '';\n const messageStr = this.applyHighlights(entry.message);\n\n return `${dim}${timestamp}${reset} ${levelStr} ${sourceStr}${messageStr}`;\n }\n\n private formatTimestamp(isoString: string): string {\n const date = new Date(isoString);\n return date.toLocaleTimeString('en-US', {\n hour12: false,\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n fractionalSecondDigits: 3,\n } as Intl.DateTimeFormatOptions);\n }\n\n private applyHighlights(text: string): string {\n // Collect all keywords to highlight\n const keywords = [...this.highlightKeywords];\n\n // In filter mode, also highlight the search query\n if (this.filterMode && this.searchQuery) {\n keywords.push(this.searchQuery);\n }\n\n if (keywords.length === 0) return text;\n\n let result = text;\n for (const keyword of keywords) {\n // Escape regex special characters\n const escaped = keyword.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const regex = new RegExp(`(${escaped})`, 'gi');\n // Yellow background, black text for highlights\n result = result.replace(regex, '\\x1b[43m\\x1b[30m$1\\x1b[0m');\n }\n return result;\n }\n\n // =====================\n // Raw Log Methods\n // =====================\n\n /**\n * Write raw data to the terminal (for Docker logs, etc.)\n */\n public writeRaw(data: string) {\n if (!this.terminal) return;\n this.terminal.write(data);\n this.recordLogEvent();\n\n if (this.autoScroll) {\n this.terminal.scrollToBottom();\n }\n }\n\n /**\n * Write a raw line to the terminal\n */\n public writelnRaw(line: string) {\n if (!this.terminal) return;\n this.terminal.writeln(line);\n this.recordLogEvent();\n\n if (this.autoScroll) {\n this.terminal.scrollToBottom();\n }\n }\n\n // =====================\n // Search Methods\n // =====================\n\n private handleSearchInput(e: InputEvent) {\n const input = e.target as HTMLInputElement;\n const newQuery = input.value;\n const queryChanged = this.searchQuery !== newQuery;\n this.searchQuery = newQuery;\n\n if (this.filterMode && queryChanged) {\n // Re-render with filtered logs\n this.reRenderFilteredLogs();\n } else if (this.searchQuery) {\n // Just highlight/search in current view\n this.searchAddon?.findNext(this.searchQuery);\n }\n }\n\n private handleSearchKeydown(e: KeyboardEvent) {\n if (e.key === 'Enter') {\n if (e.shiftKey) {\n this.searchPrevious();\n } else {\n this.searchNext();\n }\n } else if (e.key === 'Escape') {\n this.searchQuery = '';\n (e.target as HTMLInputElement).value = '';\n }\n }\n\n /**\n * Search for a query in the terminal\n */\n public search(query: string): void {\n this.searchQuery = query;\n this.searchAddon?.findNext(query);\n }\n\n /**\n * Find next search match\n */\n public searchNext(): void {\n if (this.searchQuery) {\n this.searchAddon?.findNext(this.searchQuery);\n }\n }\n\n /**\n * Find previous search match\n */\n public searchPrevious(): void {\n if (this.searchQuery) {\n this.searchAddon?.findPrevious(this.searchQuery);\n }\n }\n\n // =====================\n // Control Methods\n // =====================\n\n private toggleAutoScroll() {\n this.autoScroll = !this.autoScroll;\n if (this.autoScroll && this.terminal) {\n this.terminal.scrollToBottom();\n }\n }\n\n /**\n * Toggle between filter mode and highlight mode\n */\n private toggleFilterMode() {\n this.filterMode = !this.filterMode;\n this.reRenderFilteredLogs();\n }\n\n /**\n * Re-render logs based on current filter state\n * In filter mode: show matching logs with placeholders for hidden entries\n * In highlight mode: show all logs\n */\n private reRenderFilteredLogs() {\n if (!this.terminal) return;\n\n // Clear terminal and re-render\n this.terminal.clear();\n\n // Reset trailing count for fresh render\n this.trailingHiddenCount = 0;\n\n if (!this.filterMode || !this.searchQuery) {\n // No filtering - show all entries\n for (const entry of this.logBuffer) {\n const formatted = this.formatLogEntry(entry);\n this.terminal.writeln(formatted);\n }\n } else {\n // Filter mode with placeholders for hidden entries\n let hiddenCount = 0;\n\n for (const entry of this.logBuffer) {\n if (this.entryMatchesFilter(entry)) {\n // Output placeholder for hidden entries if any\n if (hiddenCount > 0) {\n this.writeHiddenPlaceholder(hiddenCount);\n hiddenCount = 0;\n }\n // Output the matching entry\n const formatted = this.formatLogEntry(entry);\n this.terminal.writeln(formatted);\n } else {\n hiddenCount++;\n }\n }\n\n // Handle trailing hidden entries\n if (hiddenCount > 0) {\n this.writeHiddenPlaceholder(hiddenCount);\n // Store trailing count for live updates\n this.trailingHiddenCount = hiddenCount;\n }\n }\n\n if (this.autoScroll) {\n this.terminal.scrollToBottom();\n }\n }\n\n /**\n * Write a placeholder line showing how many log entries are hidden by filter\n */\n private writeHiddenPlaceholder(count: number) {\n const dim = '\\x1b[2m';\n const reset = '\\x1b[0m';\n const text = count === 1\n ? `[1 log line hidden by filter ...]`\n : `[${count} log lines hidden by filter ...]`;\n this.terminal?.writeln(`${dim}${text}${reset}`);\n }\n\n /**\n * Clear all logs and reset metrics\n */\n public clearLogs() {\n this.terminal?.clear();\n this.logBuffer = [];\n this.trailingHiddenCount = 0;\n this.resetMetrics();\n }\n\n /**\n * Scroll to the bottom of the log\n */\n public scrollToBottom() {\n this.terminal?.scrollToBottom();\n }\n\n // =====================\n // Metrics Methods\n // =====================\n\n private updateMetrics(level: ILogEntry['level']) {\n this.metrics = {\n ...this.metrics,\n [level]: this.metrics[level] + 1,\n total: this.metrics.total + 1,\n };\n this.recordLogEvent();\n }\n\n private recordLogEvent() {\n this.rateBuffer.push(Date.now());\n }\n\n private calculateRate() {\n const now = Date.now();\n // Keep only events from the last 10 seconds\n this.rateBuffer = this.rateBuffer.filter((t) => now - t < 10000);\n const rate = this.rateBuffer.length / 10;\n\n if (rate !== this.metrics.rate) {\n this.metrics = { ...this.metrics, rate };\n }\n }\n\n private resetMetrics() {\n this.metrics = { debug: 0, info: 0, warn: 0, error: 0, success: 0, total: 0, rate: 0 };\n this.rateBuffer = [];\n }\n\n // =====================\n // Lifecycle\n // =====================\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.terminalThemeSubscription) {\n this.terminalThemeSubscription.unsubscribe();\n }\n\n if (this.rateInterval) {\n clearInterval(this.rateInterval);\n }\n\n if (this.terminal) {\n this.terminal.dispose();\n }\n }\n}\n", "export * from './dees-chart-log.js';\n", "// Chart Components\nexport * from './dees-chart-area/index.js';\nexport * from './dees-chart-log/index.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
\n
\n
TypeScript Code Example
\n
A comprehensive TypeScript code example with various syntax highlighting.
\n \ninterface User {\n id: number;\n name: string;\n email: string;\n isActive: boolean;\n}\n\nclass UserService {\n private users: User[] = [];\n \n constructor(private apiUrl: string) {\n console.log('UserService initialized');\n }\n \n async getUsers(): Promise {\n try {\n const response = await fetch(this.apiUrl);\n const data = await response.json();\n return data.users;\n } catch (error) {\n console.error('Failed to fetch users:', error);\n return [];\n }\n }\n \n addUser(user: User): void {\n this.users.push(user);\n }\n}\n\n// Usage example\nconst service = new UserService('https://api.example.com/users');\nconst users = await service.getUsers();\nconsole.log('Found users:', users.length);\n \n
\n \n
\n
JavaScript Example
\n
Modern JavaScript with ES6+ features.
\n \n// Array manipulation examples\nconst numbers = [1, 2, 3, 4, 5];\nconst doubled = numbers.map(n => n * 2);\nconst filtered = numbers.filter(n => n > 3);\n\n// Object destructuring\nconst user = { name: 'John', age: 30, city: 'New York' };\nconst { name, age } = user;\n\n// Promise handling\nconst fetchData = async (url) => {\n const response = await fetch(url);\n return response.json();\n};\n\n// Modern syntax\nconst greet = (name = 'World') => \\`Hello, \\${name}!\\`;\nconsole.log(greet('ShadCN'));\n \n
\n \n
\n
Python Example
\n
Python code with classes and type hints.
\n \nfrom typing import List, Optional\nimport asyncio\n\nclass DataProcessor:\n \"\"\"A simple data processor class\"\"\"\n \n def __init__(self, name: str):\n self.name = name\n self.data: List[dict] = []\n \n async def process_data(self, items: List[dict]) -> List[dict]:\n \"\"\"Process data items asynchronously\"\"\"\n results = []\n for item in items:\n # Simulate async processing\n await asyncio.sleep(0.1)\n results.append({\n 'id': item.get('id'),\n 'processed': True,\n 'processor': self.name\n })\n return results\n \n def get_summary(self) -> dict:\n return {\n 'processor': self.name,\n 'items_processed': len(self.data)\n }\n\n# Usage\nprocessor = DataProcessor(\"Main\")\ndata = await processor.process_data([{'id': 1}, {'id': 2}])\n \n
\n \n
\n
CSS Example
\n
Modern CSS with custom properties and animations. Note the shorter language label.
\n \n/* Modern CSS with custom properties */\n:root {\n --primary-color: #3b82f6;\n --secondary-color: #10b981;\n --background: #ffffff;\n --text-color: #09090b;\n --border-radius: 6px;\n}\n\n.card {\n background: var(--background);\n border: 1px solid #e5e7eb;\n border-radius: var(--border-radius);\n padding: 24px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n transition: all 0.2s ease;\n}\n\n.card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n@keyframes fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n}\n \n
\n \n
\n
JSON Example
\n
JSON configuration with proper formatting.
\n \n{\n \"name\": \"@design.estate/dees-catalog\",\n \"version\": \"1.10.7\",\n \"description\": \"A comprehensive catalog of web components\",\n \"main\": \"dist_ts_web/index.js\",\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"tsbuild tsfolders --allowimplicitany && tsbundle element --production\",\n \"watch\": \"tswatch element\",\n \"test\": \"tstest test/ --web --verbose\"\n },\n \"dependencies\": {\n \"@design.estate/dees-element\": \"^2.0.45\",\n \"highlight.js\": \"^11.9.0\"\n }\n}\n \n
\n
\n`", "import { demoFunc } from './dees-dataview-codebox.demo.js';\nimport {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport { cssGeistFontFamily, cssMonoFontFamily } from '../../00fonts.js';\n\nimport type { HLJSApi } from 'highlight.js';\n\nimport * as smartstring from '@push.rocks/smartstring';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { DeesServiceLibLoader } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-dataview-codebox': DeesDataviewCodebox;\n }\n}\n\n@customElement('dees-dataview-codebox')\nexport class DeesDataviewCodebox extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Data View', 'Workspace'];\n\n @property()\n accessor progLang: string = 'typescript';\n\n @property({\n type: String,\n reflect: true,\n })\n accessor codeToDisplay: string = '';\n\n constructor() {\n super();\n }\n\n render(): TemplateResult {\n return html`\n ${domtools.elementBasic.styles}\n \n {\n DeesContextmenu.openContextMenuWithOptions(eventArg, [\n {\n name: 'About',\n iconName: 'circleInfo',\n action: async () => {\n return null;\n },\n },\n ]);\n }}\"\n >\n
\n
index.ts
\n
\n
\n
\n ${(() => {\n let lineCounter = 0;\n return this.codeToDisplay.split('\\n').map((lineArg) => {\n lineCounter++;\n return html`
${lineCounter}
`;\n });\n })()}\n
\n
\n
\n
\n
Spaces: 2
\n
${this.progLang}
\n
\n \n `;\n }\n\n private codeToDisplayStore = '';\n private highlightJs: HLJSApi | null = null;\n\n public async updated(_changedProperties) {\n super.updated(_changedProperties);\n console.log('highlighting now');\n console.log(this.childNodes);\n const slottedCodeNodes: Text[] = [];\n this.childNodes.forEach((childNode) => {\n if (childNode.nodeName === '#text') {\n slottedCodeNodes.push(childNode as Text);\n }\n });\n if (this.codeToDisplay && this.codeToDisplay !== this.codeToDisplayStore) {\n this.codeToDisplayStore = smartstring.indent.normalize(this.codeToDisplay).trimStart();\n }\n if (slottedCodeNodes[0] && slottedCodeNodes[0].wholeText && !this.codeToDisplay) {\n this.codeToDisplayStore = smartstring.indent\n .normalize(slottedCodeNodes[0].wholeText)\n .trimStart();\n this.codeToDisplay = this.codeToDisplayStore;\n }\n await domtools.plugins.smartdelay.delayFor(0);\n\n // Load highlight.js from CDN if not already loaded\n if (!this.highlightJs) {\n this.highlightJs = await DeesServiceLibLoader.getInstance().loadHighlightJs();\n }\n\n const localCodeNode = this.shadowRoot.querySelector('code');\n const highlightedHtml = this.highlightJs.highlight(this.codeToDisplayStore, {\n language: this.progLang,\n ignoreIllegals: true,\n });\n localCodeNode.innerHTML = highlightedHtml.value;\n }\n}\n", "export * from './dees-dataview-codebox.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\nimport * as tsclass from '@tsclass/tsclass';\n\nexport const demoFunc = () => html` \n
\n
\n Right-click on any detail row to copy the value, key, or key:value combination\n
\n
\n
\n
Service Health Status
\n \n \n
\n \n
\n
Database Cluster Status
\n \n \n
\n \n
\n
Build Pipeline Status
\n \n \n
\n
\n
`;\n", "import * as colors from '../../00colors.js';\nimport * as plugins from '../../00plugins.js';\n\nimport { demoFunc } from './dees-dataview-statusobject.demo.js';\nimport {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n css,\n type CSSResult,\n} from '@design.estate/dees-element';\n\nimport * as tsclass from '@tsclass/tsclass';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-dataview-statusobject': DeesDataviewStatusobject;\n }\n}\n\n@customElement('dees-dataview-statusobject')\nexport class DeesDataviewStatusobject extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Data View'];\n\n @property({ type: Object }) accessor statusObject: tsclass.code.IStatusObject;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n }\n\n .mainbox {\n border-radius: 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n box-shadow: 0 1px 3px 0 hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);\n min-height: 48px;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n cursor: default;\n overflow: hidden;\n }\n\n .heading {\n display: grid;\n align-items: center;\n grid-template-columns: 48px auto 100px;\n height: 56px;\n padding: 0 16px;\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n h1 {\n display: block;\n margin: 0px;\n padding: 0px 12px;\n font-size: 14px;\n font-weight: 500;\n letter-spacing: -0.01em;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .statusdot {\n height: 10px;\n width: 10px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n margin: auto;\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(0 0% 63.9% / 0.2)', 'hsl(0 0% 45.1% / 0.2)')};\n transition: all 0.2s ease;\n }\n\n .copyMain {\n font-size: 12px;\n font-weight: 500;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 14.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n text-align: center;\n padding: 6px 12px;\n border-radius: 6px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n user-select: none;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .copyMain:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .copyMain:active {\n background: ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 14.9%)')};\n transform: scale(0.98);\n }\n\n .statusdot.ok {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(142.1 76.2% 36.3% / 0.2)', 'hsl(142.1 70.6% 45.3% / 0.2)')};\n }\n\n .statusdot.not_ok {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 72.2% 50.6%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(0 84.2% 60.2% / 0.2)', 'hsl(0 72.2% 50.6% / 0.2)')};\n }\n\n .statusdot.partly_ok {\n background: ${cssManager.bdTheme('hsl(25 95% 53%)', 'hsl(25 95% 63%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(25 95% 53% / 0.2)', 'hsl(25 95% 63% / 0.2)')};\n }\n\n .detail {\n min-height: 60px;\n align-items: center;\n display: grid;\n grid-template-columns: 48px auto;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 14.9%)')};\n transition: background-color 0.15s ease;\n padding-right: 16px;\n cursor: context-menu;\n }\n\n .detail:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};\n }\n\n .detail:active {\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 9%)')};\n }\n\n .detail .detailsText {\n padding: 12px;\n word-break: break-all;\n }\n\n .detail .detailsText .label {\n font-size: 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')}\n margin-bottom: 2px;\n letter-spacing: -0.01em;\n }\n\n .detail .detailsText .value {\n font-size: 14px;\n font-family: 'Intel One Mono', 'Geist Mono', monospace;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n line-height: 1.5;\n }\n `,\n ];\n\n render(): TemplateResult {\n return html`\n
\n
\n
\n

${this.statusObject?.name || 'No status object assigned'}

\n
Copy JSON
\n
\n ${this.statusObject?.details?.map((detailArg) => {\n return html`\n
{\n event.preventDefault();\n DeesContextmenu.openContextMenuWithOptions(event, [\n {\n name: 'Copy Value',\n iconName: 'lucide:copy',\n action: async () => {\n await this.copyToClipboard(detailArg.value, 'Value');\n },\n },\n {\n name: 'Copy Key',\n iconName: 'lucide:key',\n action: async () => {\n await this.copyToClipboard(detailArg.name, 'Key');\n },\n },\n {\n name: 'Copy Key:Value',\n iconName: 'lucide:copy-plus',\n action: async () => {\n await this.copyToClipboard(`${detailArg.name}: ${detailArg.value}`, 'Key:Value');\n },\n },\n ]);\n }}\n >\n
\n
\n
${detailArg.name}
\n
${detailArg.value}
\n
\n
\n `;\n })}\n
\n `;\n }\n\n async firstUpdated() {}\n\n private async copyToClipboard(text: string, type: string = 'Text') {\n try {\n await navigator.clipboard.writeText(text);\n console.log(`${type} copied to clipboard`);\n // You could add visual feedback here if needed\n } catch (err) {\n console.error(`Failed to copy ${type}:`, err);\n }\n }\n\n private async handleCopyAsJson() {\n if (!this.statusObject) return;\n \n try {\n await navigator.clipboard.writeText(JSON.stringify(this.statusObject, null, 2));\n \n // Show feedback\n const button = this.shadowRoot.querySelector('.copyMain') as HTMLElement;\n const originalText = button.textContent;\n button.textContent = 'Copied!';\n \n // Apply success styles based on theme\n const isDark = !this.goBright;\n button.style.background = isDark ? 'hsl(142.1 70.6% 45.3% / 0.1)' : 'hsl(142.1 76.2% 36.3% / 0.1)';\n button.style.borderColor = isDark ? 'hsl(142.1 70.6% 45.3%)' : 'hsl(142.1 76.2% 36.3%)';\n button.style.color = isDark ? 'hsl(142.1 70.6% 45.3%)' : 'hsl(142.1 76.2% 36.3%)';\n \n setTimeout(() => {\n button.textContent = originalText;\n button.style.background = '';\n button.style.borderColor = '';\n button.style.color = '';\n }, 1500);\n } catch (err) {\n console.error('Failed to copy:', err);\n }\n }\n}\n", "export * from './dees-dataview-statusobject.js';\n", "export * from './dees-statsgrid.js';\n", "// Data View Components\nexport * from './dees-dataview-codebox/index.js';\nexport * from './dees-dataview-statusobject/index.js';\nexport * from './dees-table/index.js';\nexport * from './dees-statsgrid/index.js';\n", "import {\n customElement,\n DeesElement,\n type TemplateResult,\n html,\n css,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport type {\n IActionBarOptions,\n IActionBarResult,\n IActionBarQueueItem,\n IActionBarAction,\n} from './actionbar.interfaces.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-actionbar': DeesActionbar;\n }\n}\n\n@customElement('dees-actionbar')\nexport class DeesActionbar extends DeesElement {\n // STATIC\n public static demoGroups = ['Feedback', 'Overlay'];\n public static demo = () => {\n const getActionbar = (e: Event) => {\n const button = e.currentTarget as HTMLElement;\n const container = button.closest('.demo-container');\n return container?.querySelector('dees-actionbar') as DeesActionbar | null;\n };\n\n const showActionBar = async (e: Event) => {\n const actionbar = getActionbar(e);\n if (!actionbar) return;\n const result = await actionbar.show({\n message: 'File changed externally. Reload?',\n type: 'warning',\n icon: 'lucide:alertTriangle',\n actions: [\n { id: 'reload', label: 'Reload', primary: true },\n { id: 'ignore', label: 'Ignore' },\n ],\n timeout: { duration: 5000, defaultActionId: 'reload' },\n dismissible: true,\n });\n console.log('Action bar result:', result);\n };\n\n const showErrorBar = async (e: Event) => {\n const actionbar = getActionbar(e);\n if (!actionbar) return;\n const result = await actionbar.show({\n message: 'Process failed with exit code 1',\n type: 'error',\n icon: 'lucide:xCircle',\n actions: [\n { id: 'retry', label: 'Retry', primary: true },\n { id: 'dismiss', label: 'Dismiss' },\n ],\n timeout: { duration: 10000, defaultActionId: 'dismiss' },\n });\n console.log('Error bar result:', result);\n };\n\n const showQuestionBar = async (e: Event) => {\n const actionbar = getActionbar(e);\n if (!actionbar) return;\n const result = await actionbar.show({\n message: 'Save changes before closing?',\n type: 'question',\n icon: 'lucide:helpCircle',\n actions: [\n { id: 'save', label: 'Save', primary: true },\n { id: 'discard', label: 'Discard' },\n { id: 'cancel', label: 'Cancel' },\n ],\n });\n console.log('Question bar result:', result);\n };\n\n return html`\n \n
\n
\n Warning\n Error\n Question\n
\n \n
\n `;\n };\n\n // Queue of pending action bars\n private queue: IActionBarQueueItem[] = [];\n\n // Current active bar state\n @state() accessor currentBar: IActionBarOptions | null = null;\n @state() accessor timeRemaining: number = 0;\n @state() accessor progressPercent: number = 100;\n @state() accessor isVisible: boolean = false;\n\n // Timeout handling\n private timeoutInterval: ReturnType | null = null;\n private currentResolve: ((result: IActionBarResult) => void) | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n }\n\n .actionbar-item {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 0.2s ease-out;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 12%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 20%)')};\n }\n\n :host(.visible) .actionbar-item {\n grid-template-rows: 1fr;\n }\n\n .actionbar-content {\n overflow: hidden;\n min-height: 0;\n opacity: 0;\n transition: opacity 0.2s ease-out;\n }\n\n :host(.visible) .actionbar-content {\n opacity: 1;\n }\n\n .progress-bar {\n height: 3px;\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 18%)')};\n overflow: hidden;\n }\n\n .progress-bar-fill {\n height: 100%;\n background: ${cssManager.bdTheme('hsl(210 100% 50%)', 'hsl(210 100% 60%)')};\n transition: width 0.1s linear;\n }\n\n .progress-bar-fill.warning {\n background: ${cssManager.bdTheme('hsl(38 92% 50%)', 'hsl(38 92% 55%)')};\n }\n\n .progress-bar-fill.error {\n background: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 55%)')};\n }\n\n .progress-bar-fill.question {\n background: ${cssManager.bdTheme('hsl(270 70% 50%)', 'hsl(270 70% 60%)')};\n }\n\n .content {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n gap: 12px;\n min-height: 32px;\n }\n\n .message-section {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .message-icon {\n flex-shrink: 0;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .message-icon.info {\n color: ${cssManager.bdTheme('hsl(210 100% 45%)', 'hsl(210 100% 60%)')};\n }\n\n .message-icon.warning {\n color: ${cssManager.bdTheme('hsl(38 92% 45%)', 'hsl(38 92% 55%)')};\n }\n\n .message-icon.error {\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 55%)')};\n }\n\n .message-icon.question {\n color: ${cssManager.bdTheme('hsl(270 70% 50%)', 'hsl(270 70% 60%)')};\n }\n\n .message-text {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 85%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .actions-section {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n }\n\n .action-button {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n border: 1px solid transparent;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .action-button.secondary {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 70%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 80%)', 'hsl(0 0% 30%)')};\n }\n\n .action-button.secondary:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 92%)', 'hsl(0 0% 18%)')};\n }\n\n .action-button.primary {\n background: ${cssManager.bdTheme('hsl(210 100% 50%)', 'hsl(210 100% 55%)')};\n color: white;\n }\n\n .action-button.primary:hover {\n background: ${cssManager.bdTheme('hsl(210 100% 45%)', 'hsl(210 100% 50%)')};\n }\n\n .action-button.primary.warning {\n background: ${cssManager.bdTheme('hsl(38 92% 45%)', 'hsl(38 92% 50%)')};\n }\n\n .action-button.primary.warning:hover {\n background: ${cssManager.bdTheme('hsl(38 92% 40%)', 'hsl(38 92% 45%)')};\n }\n\n .action-button.primary.error {\n background: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 55%)')};\n }\n\n .action-button.primary.error:hover {\n background: ${cssManager.bdTheme('hsl(0 70% 45%)', 'hsl(0 70% 50%)')};\n }\n\n .action-button.primary.question {\n background: ${cssManager.bdTheme('hsl(270 70% 50%)', 'hsl(270 70% 55%)')};\n }\n\n .action-button.primary.question:hover {\n background: ${cssManager.bdTheme('hsl(270 70% 45%)', 'hsl(270 70% 50%)')};\n }\n\n .countdown {\n font-size: 11px;\n opacity: 0.8;\n margin-left: 2px;\n }\n\n .dismiss-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n transition: all 0.15s ease;\n }\n\n .dismiss-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 22%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 70%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n const bar = this.currentBar;\n const type = bar?.type || 'info';\n const hasTimeout = bar?.timeout && this.timeRemaining > 0;\n\n // ALWAYS render wrapper - required for grid animation to work\n return html`\n
\n
\n ${bar ? html`\n ${hasTimeout ? html`\n
\n
\n
\n ` : ''}\n
\n
\n ${bar.icon ? html`\n \n ` : ''}\n ${bar.message}\n
\n
\n ${bar.actions.map(action => this.renderActionButton(action, bar, hasTimeout))}\n ${bar.dismissible ? html`\n this.handleDismiss()}\n title=\"Dismiss\"\n >\n \n
\n ` : ''}\n
\n
\n ` : ''}\n \n \n `;\n }\n\n private renderActionButton(\n action: IActionBarAction,\n bar: IActionBarOptions,\n hasTimeout: boolean | undefined\n ): TemplateResult {\n const isPrimary = action.primary;\n const type = bar.type || 'info';\n const isDefaultAction = bar.timeout?.defaultActionId === action.id;\n const showCountdown = hasTimeout && isDefaultAction;\n const seconds = Math.ceil(this.timeRemaining / 1000);\n\n return html`\n this.handleAction(action.id, false)}\n >\n ${action.icon ? html`\n \n ` : ''}\n ${action.label}\n ${showCountdown ? html`\n (${seconds}s)\n ` : ''}\n \n `;\n }\n\n // ========== Public API ==========\n\n /**\n * Show an action bar with the given options.\n * Returns a promise that resolves when an action is taken.\n */\n public async show(options: IActionBarOptions): Promise {\n return new Promise((resolve) => {\n // Add to queue\n this.queue.push({ options, resolve });\n\n // If no current bar, process queue\n if (!this.currentBar) {\n this.processQueue();\n }\n });\n }\n\n /**\n * Dismiss the current action bar without triggering any action.\n */\n public dismiss(): void {\n this.handleDismiss();\n }\n\n /**\n * Clear all pending action bars in the queue.\n */\n public clearQueue(): void {\n // Resolve all queued items with dismiss\n for (const item of this.queue) {\n item.resolve({ actionId: 'dismissed', timedOut: false });\n }\n this.queue = [];\n }\n\n // ========== Private Methods ==========\n\n /**\n * Hide the current actionbar with animation.\n * Removes visible class first to trigger CSS transition, then clears content after animation.\n */\n private async hideCurrentBar(): Promise {\n // Remove visible class to start close animation\n this.classList.remove('visible');\n this.isVisible = false;\n\n // Wait for animation to complete (200ms transition + buffer)\n await new Promise(resolve => setTimeout(resolve, 220));\n\n // Now safe to clear content\n this.currentBar = null;\n this.currentResolve = null;\n }\n\n private async processQueue(): Promise {\n if (this.queue.length === 0) {\n // Hide with animation - don't await, let it run async\n this.hideCurrentBar();\n return;\n }\n\n const item = this.queue.shift()!;\n this.currentBar = item.options;\n this.currentResolve = item.resolve;\n this.isVisible = true;\n\n // Wait for Lit render, then add class on next frame to trigger animation\n await this.updateComplete;\n requestAnimationFrame(() => {\n this.classList.add('visible');\n });\n\n // Setup timeout if configured\n if (item.options.timeout) {\n this.startTimeout(item.options.timeout.duration, item.options.timeout.defaultActionId);\n }\n }\n\n private startTimeout(duration: number, defaultActionId: string): void {\n this.timeRemaining = duration;\n this.progressPercent = 100;\n\n const startTime = Date.now();\n const updateInterval = 50; // Update every 50ms for smooth animation\n\n this.timeoutInterval = setInterval(() => {\n const elapsed = Date.now() - startTime;\n this.timeRemaining = Math.max(0, duration - elapsed);\n this.progressPercent = (this.timeRemaining / duration) * 100;\n\n if (this.timeRemaining <= 0) {\n this.clearTimeoutInterval();\n this.handleAction(defaultActionId, true);\n }\n }, updateInterval);\n }\n\n private clearTimeoutInterval(): void {\n if (this.timeoutInterval) {\n clearInterval(this.timeoutInterval);\n this.timeoutInterval = null;\n }\n }\n\n private handleAction(actionId: string, timedOut: boolean): void {\n this.clearTimeoutInterval();\n\n if (this.currentResolve) {\n this.currentResolve({ actionId, timedOut });\n }\n\n // Process next item in queue\n this.processQueue();\n }\n\n private handleDismiss(): void {\n this.handleAction('dismissed', false);\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.clearTimeoutInterval();\n }\n}\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYmFyLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1mZWVkYmFjay9kZWVzLWFjdGlvbmJhci9hY3Rpb25iYXIuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './dees-actionbar.js';\nexport * from './actionbar.interfaces.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n
\n \n \n \n \n \n \n
\n`;", "import {\n DeesElement,\n css,\n cssManager,\n customElement,\n html,\n property,\n type CSSResult,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-badge.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-badge': DeesBadge;\n }\n}\n\n@customElement('dees-badge')\nexport class DeesBadge extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Feedback'];\n\n @property({ type: String })\n accessor type: 'default' | 'primary' | 'success' | 'warning' | 'error' = 'default';\n\n @property({ type: String })\n accessor text: string = '';\n\n @property({ type: Boolean })\n accessor rounded: boolean = false;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-block;\n }\n\n .badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 2px 8px;\n font-size: 12px;\n font-weight: 500;\n line-height: 1.5;\n border-radius: 4px;\n white-space: nowrap;\n }\n\n .badge.rounded {\n border-radius: 12px;\n }\n\n .badge.default {\n background: ${cssManager.bdTheme('#f5f5f5', '#333')};\n color: ${cssManager.bdTheme('#666', '#ccc')};\n }\n\n .badge.primary {\n background: #0050b9;\n color: #ffffff;\n }\n\n .badge.success {\n background: #2e7d32;\n color: #ffffff;\n }\n\n .badge.warning {\n background: #ed6c02;\n color: #ffffff;\n }\n\n .badge.error {\n background: #e4002b;\n color: #ffffff;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n ${this.text}\n
\n `;\n }\n}", "export * from './dees-badge.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n`;\n", "import {\n DeesElement,\n css,\n cssManager,\n customElement,\n html,\n property,\n type CSSResult,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-hint.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-hint': DeesHint;\n }\n}\n\n@customElement('dees-hint')\nexport class DeesHint extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Feedback'];\n\n @property({ type: String })\n accessor type: 'info' | 'warn' | 'error' | 'critical' = 'info';\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [themeDefaultStyles, cssManager.defaultStyles, css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n `];\n\n public render(): TemplateResult {\n return html`
`;\n }\n}\n", "export * from './dees-hint.js';\n", "import { html } from '@design.estate/dees-element';\n\nimport { DeesProgressbar } from '../dees-progressbar/dees-progressbar.js';\n\nexport const demoFunc = () => {\n return html`\n \n `;\n}", "import * as plugins from '../../00plugins.js';\nimport * as colors from '../../00colors.js';\nimport { demoFunc } from './dees-progressbar.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n unsafeHTML,\n state,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-progressbar')\nexport class DeesProgressbar extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Feedback'];\n\n // INSTANCE\n @property({\n type: Number,\n })\n accessor percentage = 0;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme(colors.bright.text, colors.dark.text)};\n }\n .progressBarContainer {\n padding: 8px;\n min-width: 200px;\n }\n\n .progressBar {\n background: ${cssManager.bdTheme('#eeeeeb', '#444')};\n height: 8px;\n width: 100%;\n border-radius: 4px;\n border-top: 0.5px solid ${cssManager.bdTheme('none', '#555')};\n }\n\n .progressBarFill {\n background: ${cssManager.bdTheme(colors.dark.blueActive, colors.bright.blueActive)};\n height: 8px;\n margin-top: -0.5px;\n transition: 0.2s width;\n border-radius: 4px;\n width: 0px;\n border-top: 0.5 solid ${cssManager.bdTheme('none', '#398fff')};\n }\n\n .progressText {\n padding: 8px;\n text-align: center;\n }\n `\n ];\n\n public render() {\n return html`\n
\n
\n
\n
\n ${this.percentage}%\n
\n
\n
\n `\n }\n\n firstUpdated (_changedProperties: Map): void {\n super.firstUpdated(_changedProperties);\n this.updateComplete.then(() => {\n this.updatePercentage();\n });\n }\n\n public async updatePercentage() {\n const progressBarFill = this.shadowRoot.querySelector('.progressBarFill') as HTMLElement;\n progressBarFill.style.width = `${this.percentage}%`;\n }\n\n updated(){\n this.updatePercentage();\n }\n}", "export * from './dees-progressbar.js';\n", "import {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-spinner': DeesSpinner;\n }\n}\n\n@customElement('dees-spinner')\nexport class DeesSpinner extends DeesElement {\n public static demoGroups = ['Feedback'];\n public static demo = () => html`\n \n \n \n \n \n `;\n\n @property({\n type: Number,\n })\n accessor size = 20;\n\n @property({\n type: String,\n })\n accessor bnw: boolean = false;\n\n @property()\n accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n }\n\n #loading {\n position: relative;\n transition: none;\n display: flex;\n justify-content: center;\n align-content: center;\n background: #8bc34a00;\n border: 3px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.3)')};\n border-radius: 50%;\n border-top-color: ${cssManager.bdTheme('#333', '#fff')};\n animation: spin 1s ease-in-out infinite;\n -webkit-animation: spin 1s ease-in-out infinite;\n }\n\n #loading.success {\n border: none;\n border-radius: 50%;\n animation: none;\n -webkit-animation: none;\n }\n\n #loading.error {\n border: none;\n border-radius: 50%;\n animation: none;\n -webkit-animation: none;\n }\n\n @keyframes spin {\n to {\n -webkit-transform: rotate(360deg);\n }\n }\n @-webkit-keyframes spin {\n to {\n -webkit-transform: rotate(360deg);\n }\n }\n\n dees-icon {\n position: absolute;\n height: 100%;\n width: 100%;\n }\n `,\n ];\n\n render() {\n return html`\n \n
\n ${(() => {\n if (this.status === 'success') {\n return html``;\n } else if (this.status === 'error') {\n return html``;\n }\n })()}\n
\n `;\n }\n}\n", "export * from './dees-spinner.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport { DeesToast } from '../dees-toast/dees-toast.js';\nimport '../../00group-button/dees-button/dees-button.js';\n\nexport const demoFunc = () => html`\n \n\n
\n {\n document.body.classList.toggle('bright');\n }}>Toggle Theme\n\n
\n

Toast Types

\n

\n Different toast types for various notification scenarios. Click any button to show a toast.\n

\n
\n {\n DeesToast.info('This is an informational message');\n }}>Info Toast\n \n {\n DeesToast.success('Operation completed successfully!');\n }}>Success Toast\n \n {\n DeesToast.warning('Please review before proceeding');\n }}>Warning Toast\n \n {\n DeesToast.error('An error occurred while processing');\n }}>Error Toast\n
\n
\n\n
\n

Toast Positions

\n

\n Toasts can appear in different positions on the screen.\n

\n
\n {\n DeesToast.show({\n message: 'Top Right Position',\n type: 'info',\n position: 'top-right'\n });\n }}>Top Right\n \n {\n DeesToast.show({\n message: 'Top Left Position',\n type: 'info',\n position: 'top-left'\n });\n }}>Top Left\n \n {\n DeesToast.show({\n message: 'Bottom Right Position',\n type: 'info',\n position: 'bottom-right'\n });\n }}>Bottom Right\n \n {\n DeesToast.show({\n message: 'Bottom Left Position',\n type: 'info',\n position: 'bottom-left'\n });\n }}>Bottom Left\n \n {\n DeesToast.show({\n message: 'Top Center Position',\n type: 'info',\n position: 'top-center'\n });\n }}>Top Center\n \n {\n DeesToast.show({\n message: 'Bottom Center Position',\n type: 'info',\n position: 'bottom-center'\n });\n }}>Bottom Center\n
\n
\n\n
\n

Duration Options

\n

\n Control how long toasts stay visible. Duration in milliseconds.\n

\n
\n {\n DeesToast.show({\n message: 'Quick toast (1 second)',\n type: 'info',\n duration: 1000\n });\n }}>1 Second\n \n {\n DeesToast.show({\n message: 'Standard toast (3 seconds)',\n type: 'info',\n duration: 3000\n });\n }}>3 Seconds (Default)\n \n {\n DeesToast.show({\n message: 'Long toast (5 seconds)',\n type: 'info',\n duration: 5000\n });\n }}>5 Seconds\n \n {\n DeesToast.show({\n message: 'Manual dismiss only (click to close)',\n type: 'warning',\n duration: 0\n });\n }}>No Auto-Dismiss\n
\n
\n\n
\n

Multiple Toasts

\n

\n Multiple toasts stack automatically. They maintain their order and animate smoothly.\n

\n
\n {\n DeesToast.info('First notification');\n setTimeout(() => DeesToast.success('Second notification'), 200);\n setTimeout(() => DeesToast.warning('Third notification'), 400);\n setTimeout(() => DeesToast.error('Fourth notification'), 600);\n }}>Show Multiple\n \n {\n for (let i = 1; i <= 5; i++) {\n setTimeout(() => {\n DeesToast.show({\n message: `Notification #${i}`,\n type: i % 2 === 0 ? 'success' : 'info',\n duration: 2000 + (i * 500)\n });\n }, i * 100);\n }\n }}>Rapid Fire\n
\n
\n\n
\n

Real-World Examples

\n

\n Common use cases for toast notifications in applications.\n

\n
\n {\n const toast = await DeesToast.show({\n message: 'Saving changes...',\n type: 'info',\n duration: 0\n });\n \n // Simulate save operation\n setTimeout(() => {\n toast.dismiss();\n DeesToast.success('Changes saved successfully!');\n }, 2000);\n }}>Save Operation\n \n {\n DeesToast.error('Failed to connect to server. Please check your internet connection.');\n }}>Network Error\n \n {\n DeesToast.warning('Your session will expire in 5 minutes');\n }}>Session Warning\n \n {\n DeesToast.success('File uploaded successfully!');\n }}>Upload Complete\n
\n
\n\n
\n

Programmatic Control

\n

\n Advanced control over toast behavior.\n

\n
\n {\n const toast = await DeesToast.show({\n message: 'This toast can be dismissed programmatically',\n type: 'info',\n duration: 0\n });\n \n setTimeout(() => {\n toast.dismiss();\n DeesToast.success('Toast dismissed after 2 seconds');\n }, 2000);\n }}>Programmatic Dismiss\n \n {\n // Using the convenience methods\n DeesToast.info('Info message', 2000);\n setTimeout(() => DeesToast.success('Success message', 2000), 500);\n setTimeout(() => DeesToast.warning('Warning message', 2000), 1000);\n setTimeout(() => DeesToast.error('Error message', 2000), 1500);\n }}>Convenience Methods\n
\n
\n
\n `;\n", "import { customElement, DeesElement, type TemplateResult, html, css, property, cssManager } from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { zIndexLayers } from '../../00zindex.js';\nimport { demoFunc } from './dees-toast.demo.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-toast': DeesToast;\n }\n}\n\nexport type ToastType = 'info' | 'success' | 'warning' | 'error';\nexport type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';\n\nexport interface IToastOptions {\n message: string;\n type?: ToastType;\n duration?: number;\n position?: ToastPosition;\n}\n\n@customElement('dees-toast')\nexport class DeesToast extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Feedback', 'Overlay'];\n\n private static toastContainers = new Map();\n\n private static getOrCreateContainer(position: ToastPosition): HTMLDivElement {\n if (!this.toastContainers.has(position)) {\n const container = document.createElement('div');\n container.className = `toast-container toast-container-${position}`;\n container.style.cssText = `\n position: fixed;\n z-index: ${zIndexLayers.overlay.toast};\n pointer-events: none;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n `;\n\n // Position the container\n switch (position) {\n case 'top-right':\n container.style.top = '0';\n container.style.right = '0';\n break;\n case 'top-left':\n container.style.top = '0';\n container.style.left = '0';\n break;\n case 'bottom-right':\n container.style.bottom = '0';\n container.style.right = '0';\n break;\n case 'bottom-left':\n container.style.bottom = '0';\n container.style.left = '0';\n break;\n case 'top-center':\n container.style.top = '0';\n container.style.left = '50%';\n container.style.transform = 'translateX(-50%)';\n break;\n case 'bottom-center':\n container.style.bottom = '0';\n container.style.left = '50%';\n container.style.transform = 'translateX(-50%)';\n break;\n }\n\n document.body.appendChild(container);\n this.toastContainers.set(position, container);\n }\n return this.toastContainers.get(position)!;\n }\n\n public static async show(options: IToastOptions | string) {\n const opts: IToastOptions = typeof options === 'string' \n ? { message: options } \n : options;\n\n const toast = new DeesToast();\n toast.message = opts.message;\n toast.type = opts.type || 'info';\n toast.duration = opts.duration || 3000;\n\n const container = this.getOrCreateContainer(opts.position || 'top-right');\n container.appendChild(toast);\n\n // Trigger animation\n await toast.updateComplete;\n requestAnimationFrame(() => {\n toast.isVisible = true;\n });\n\n // Auto dismiss\n if (toast.duration > 0) {\n setTimeout(() => {\n toast.dismiss();\n }, toast.duration);\n }\n\n return toast;\n }\n\n // Alias for consistency with DeesModal\n public static async createAndShow(options: IToastOptions | string) {\n return this.show(options);\n }\n\n // Convenience methods\n public static info(message: string, duration?: number) {\n return this.show({ message, type: 'info', duration });\n }\n\n public static success(message: string, duration?: number) {\n return this.show({ message, type: 'success', duration });\n }\n\n public static warning(message: string, duration?: number) {\n return this.show({ message, type: 'warning', duration });\n }\n\n public static error(message: string, duration?: number) {\n return this.show({ message, type: 'error', duration });\n }\n\n // INSTANCE\n @property({ type: String })\n accessor message: string = '';\n\n @property({ type: String })\n accessor type: ToastType = 'info';\n\n @property({ type: Number })\n accessor duration: number = 3000;\n\n @property({ type: Boolean, reflect: true })\n accessor isVisible: boolean = false;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n pointer-events: auto;\n font-family: ${cssGeistFontFamily};\n opacity: 0;\n transform: translateY(-10px);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n :host([isvisible]) {\n opacity: 1;\n transform: translateY(0);\n }\n\n .toast {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n border-radius: 8px;\n background: ${cssManager.bdTheme('#fff', '#222')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#333')};\n box-shadow: 0 4px 12px ${cssManager.bdTheme('rgba(0,0,0,0.1)', 'rgba(0,0,0,0.3)')};\n min-width: 300px;\n max-width: 500px;\n cursor: pointer;\n }\n\n .toast:hover {\n transform: scale(1.02);\n }\n\n .icon {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .icon svg {\n width: 100%;\n height: 100%;\n }\n\n .message {\n flex: 1;\n font-size: 14px;\n line-height: 1.5;\n color: ${cssManager.bdTheme('#333', '#fff')};\n }\n\n .close {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n opacity: 0.5;\n cursor: pointer;\n transition: opacity 0.2s;\n }\n\n .close:hover {\n opacity: 1;\n }\n\n .close svg {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n\n /* Type-specific styles */\n :host([type=\"info\"]) .icon {\n color: #0084ff;\n }\n\n :host([type=\"success\"]) .icon {\n color: #22c55e;\n }\n\n :host([type=\"warning\"]) .icon {\n color: #f59e0b;\n }\n\n :host([type=\"error\"]) .icon {\n color: #ef4444;\n }\n\n /* Progress bar */\n .progress {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 3px;\n background: currentColor;\n opacity: 0.2;\n border-radius: 0 0 8px 8px;\n overflow: hidden;\n }\n\n .progress-bar {\n height: 100%;\n background: currentColor;\n opacity: 0.8;\n transform-origin: left;\n animation: progress linear forwards;\n }\n\n @keyframes progress {\n from {\n transform: scaleX(1);\n }\n to {\n transform: scaleX(0);\n }\n }\n `\n ];\n\n public render(): TemplateResult {\n const icons = {\n info: html`\n \n `,\n success: html`\n \n `,\n warning: html`\n \n `,\n error: html`\n \n `\n };\n\n return html`\n
\n
\n ${icons[this.type]}\n
\n
${this.message}
\n
\n \n \n \n
\n ${this.duration > 0 ? html`\n
\n
\n
\n ` : ''}\n
\n `;\n }\n\n public async dismiss() {\n this.isVisible = false;\n await new Promise(resolve => setTimeout(resolve, 300));\n this.remove();\n \n // Clean up empty containers\n const container = this.parentElement;\n if (container && container.children.length === 0) {\n container.remove();\n for (const [position, cont] of DeesToast.toastContainers.entries()) {\n if (cont === container) {\n DeesToast.toastContainers.delete(position);\n break;\n }\n }\n }\n }\n\n public firstUpdated() {\n // Set the type attribute for CSS\n this.setAttribute('type', this.type);\n }\n}", "export * from './dees-toast.js';\n", "// Feedback Components\nexport * from './dees-actionbar/index.js';\nexport * from './dees-badge/index.js';\nexport * from './dees-hint/index.js';\nexport * from './dees-progressbar/index.js';\nexport * from './dees-spinner/index.js';\nexport * from './dees-toast/index.js';\n", "export * from './dees-form.js';\n", "export * from './dees-form-submit.js';\n", "// Form Components\nexport * from './dees-form/index.js';\nexport * from './dees-form-submit/index.js';\n", "export * from './dees-input-base.js';\n", "export * from './dees-input-checkbox.js';\n", "export * from './dees-input-code.js';\n", "export * from './dees-input-dropdown.js';\n", "export * from './dees-input-iban.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport '../../00group-form/dees-form/dees-form.js';\nimport '../dees-input-text/dees-input-text.js';\nimport '../../00group-form/dees-form-submit/dees-form-submit.js';\n\nexport const demoFunc = () => html`\n \n \n \n
\n \n \n
\n \uD83D\uDCA1 Double-click any item to quickly edit it inline\n
\n
\n\n \n \n
\n \uD83D\uDD04 Drag the grip handle to reorder tasks by priority\n
\n
\n\n \n
\n \n \n \n
\n
\n\n \n \n \n\n \n \n \n\n \n \n \n \n
\n \n \n \n
\n \n \n \n \n
\n
\n\n \n {\n const preview = document.querySelector('#list-json');\n if (preview) {\n const data = {\n items: e.detail.value,\n count: e.detail.value.length,\n timestamp: new Date().toISOString()\n };\n preview.textContent = JSON.stringify(data, null, 2);\n }\n }}\n >\n \n
\n {\n \"items\": [],\n \"count\": 0,\n \"timestamp\": \"${new Date().toISOString()}\"\n }\n
\n \n
\n \u2728 Add, edit, remove, and reorder items to see the JSON output update in real-time\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n`;", "import {\n customElement,\n html,\n css,\n cssManager,\n property,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-button/dees-button/dees-button.js';\nimport { demoFunc } from './dees-input-list.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-list': DeesInputList;\n }\n}\n\n@customElement('dees-input-list')\nexport class DeesInputList extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @property({ type: Array })\n accessor value: string[] = [];\n\n @property({ type: String })\n accessor placeholder: string = 'Add new item...';\n\n @property({ type: Number })\n accessor maxItems: number = 0; // 0 means unlimited\n\n @property({ type: Number })\n accessor minItems: number = 0;\n\n @property({ type: Boolean })\n accessor allowDuplicates: boolean = false;\n\n @property({ type: Boolean })\n accessor sortable: boolean = false;\n\n @property({ type: Boolean })\n accessor confirmDelete: boolean = false;\n\n @property({ type: String })\n accessor validationText: string = '';\n\n @state()\n accessor inputValue: string = '';\n\n @state()\n accessor editingIndex: number = -1;\n\n @state()\n accessor editingValue: string = '';\n\n @state()\n accessor draggedIndex: number = -1;\n\n @state()\n accessor dragOverIndex: number = -1;\n\n // Enhanced drag state for interactive reordering\n @state()\n accessor dragStartY: number = 0;\n\n @state()\n accessor dragCurrentY: number = 0;\n\n @state()\n accessor targetIndex: number = -1;\n\n @state()\n accessor itemHeight: number = 0;\n\n // Bound event handlers for cleanup\n private boundHandleGlobalDragOver: ((e: DragEvent) => void) | null = null;\n private boundHandleGlobalDragEnd: (() => void) | null = null;\n\n // Store original item positions for accurate hit detection (before transforms)\n private originalItemRects: DOMRect[] = [];\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n }\n\n .input-wrapper {\n width: 100%;\n }\n\n .list-container {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n }\n\n .list-container:hover:not(.disabled) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .list-container:focus-within {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .list-container.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .list-items {\n max-height: 400px;\n overflow-y: auto;\n }\n\n .list-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n transition: transform 0.2s ease, background 0.15s ease, box-shadow 0.15s ease;\n position: relative;\n overflow: hidden; /* Prevent animation from affecting scroll bounds */\n }\n\n .list-item:last-of-type {\n border-bottom: none;\n }\n\n .list-items:not(.is-dragging) .list-item:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(0 0% 97.5%)', 'hsl(0 0% 6.9%)')};\n }\n\n /* Dragging item - follows cursor */\n .list-item.dragging {\n position: relative;\n z-index: 100;\n background: ${cssManager.bdTheme('hsl(210 40% 98%)', 'hsl(215 20.2% 12%)')};\n box-shadow: 0 4px 12px ${cssManager.bdTheme('rgba(0, 0, 0, 0.15)', 'rgba(0, 0, 0, 0.4)')};\n border-radius: 6px;\n transition: box-shadow 0.15s ease, background 0.15s ease;\n }\n\n /* Items that need to move up to make space */\n .list-item.move-up {\n transform: translateY(calc(-1 * var(--item-height, 48px)));\n }\n\n /* Items that need to move down to make space */\n .list-item.move-down {\n transform: translateY(var(--item-height, 48px));\n }\n\n\n .drag-handle {\n display: flex;\n align-items: center;\n cursor: move;\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n transition: color 0.15s ease;\n }\n\n .drag-handle:hover {\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n .drag-handle dees-icon {\n width: 16px;\n height: 16px;\n }\n\n .item-content {\n flex: 1;\n display: flex;\n align-items: center;\n min-width: 0;\n }\n\n .item-text {\n flex: 1;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n font-size: 14px;\n line-height: 20px;\n word-break: break-word;\n }\n\n .item-edit-input {\n flex: 1;\n padding: 4px 8px;\n font-size: 14px;\n font-family: inherit;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n border-radius: 4px;\n outline: none;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .item-actions {\n display: flex;\n gap: 4px;\n align-items: center;\n }\n\n .action-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n background: transparent;\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n .action-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .action-button.save {\n color: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n }\n\n .action-button.save:hover {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3% / 0.1)', 'hsl(142.1 70.6% 45.3% / 0.1)')};\n }\n\n .action-button.cancel {\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 50.6%)')};\n }\n\n .action-button.cancel:hover {\n background: ${cssManager.bdTheme('hsl(0 72.2% 50.6% / 0.1)', 'hsl(0 62.8% 50.6% / 0.1)')};\n }\n\n .action-button.delete {\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 50.6%)')};\n }\n\n .action-button.delete:hover {\n background: ${cssManager.bdTheme('hsl(0 72.2% 50.6% / 0.1)', 'hsl(0 62.8% 50.6% / 0.1)')};\n }\n\n .action-button dees-icon {\n width: 14px;\n height: 14px;\n }\n\n .add-item-container {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n background: ${cssManager.bdTheme('hsl(0 0% 97.5%)', 'hsl(0 0% 6.9%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .add-input {\n flex: 1;\n padding: 8px 12px;\n font-size: 14px;\n font-family: inherit;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n outline: none;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n transition: all 0.15s ease;\n }\n\n .add-input:focus {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .add-input::placeholder {\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n }\n\n .add-input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .add-button {\n padding: 8px 16px;\n }\n\n .empty-state {\n padding: 32px 16px;\n text-align: center;\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n font-size: 14px;\n font-style: italic;\n }\n\n .validation-message {\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n font-size: 13px;\n margin-top: 6px;\n line-height: 1.5;\n }\n\n .description {\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n font-size: 13px;\n margin-top: 6px;\n line-height: 1.5;\n }\n\n /* Scrollbar styling */\n .list-items::-webkit-scrollbar {\n width: 8px;\n }\n\n .list-items::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .list-items::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 24.9%)')};\n border-radius: 4px;\n }\n\n .list-items::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 34.9%)')};\n }\n\n /* Disable transitions during drop to prevent flash */\n .list-items.dropping .list-item {\n transition: none !important;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
\n ${this.label ? html`` : ''}\n \n
\n
\n ${this.value.length > 0 ? this.value.map((item, index) => html`\n this.handleDragStart(e, index)}\n @dragend=${this.handleDragEnd}\n @dragover=${(e: DragEvent) => this.handleDragOver(e, index)}\n @drop=${(e: DragEvent) => this.handleDrop(e, index)}\n >\n ${this.sortable && !this.disabled ? html`\n
\n \n
\n ` : ''}\n \n
\n ${this.editingIndex === index ? html`\n this.editingValue = (e.target as HTMLInputElement).value}\n @keydown=${(e: KeyboardEvent) => this.handleEditKeyDown(e, index)}\n @blur=${() => this.saveEdit(index)}\n />\n ` : html`\n
!this.disabled && this.startEdit(index)}>\n ${item}\n
\n `}\n
\n \n
\n ${this.editingIndex === index ? html`\n \n \n ` : html`\n ${!this.disabled ? html`\n \n \n ` : ''}\n `}\n
\n
\n `) : html`\n
\n No items added yet\n
\n `}\n
\n \n ${!this.disabled && (!this.maxItems || this.value.length < this.maxItems) ? html`\n
\n \n \n Add\n \n
\n ` : ''}\n
\n\n ${this.validationText ? html`\n
${this.validationText}
\n ` : ''}\n \n ${this.description ? html`\n
${this.description}
\n ` : ''}\n
\n `;\n }\n\n private handleInput(e: InputEvent) {\n this.inputValue = (e.target as HTMLInputElement).value;\n }\n\n private handleAddKeyDown(e: KeyboardEvent) {\n if (e.key === 'Enter' && this.inputValue.trim()) {\n e.preventDefault();\n this.addItem();\n }\n }\n\n private handleEditKeyDown(e: KeyboardEvent, index: number) {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.saveEdit(index);\n } else if (e.key === 'Escape') {\n e.preventDefault();\n this.cancelEdit();\n }\n }\n\n private addItem() {\n const trimmedValue = this.inputValue.trim();\n if (!trimmedValue) return;\n\n if (!this.allowDuplicates && this.value.includes(trimmedValue)) {\n this.validationText = 'This item already exists in the list';\n setTimeout(() => this.validationText = '', 3000);\n return;\n }\n\n if (this.maxItems && this.value.length >= this.maxItems) {\n this.validationText = `Maximum ${this.maxItems} items allowed`;\n setTimeout(() => this.validationText = '', 3000);\n return;\n }\n\n this.value = [...this.value, trimmedValue];\n this.inputValue = '';\n this.validationText = '';\n \n // Clear the input\n const input = this.shadowRoot?.querySelector('.add-input') as HTMLInputElement;\n if (input) {\n input.value = '';\n input.focus();\n }\n\n this.emitChange();\n }\n\n private startEdit(index: number) {\n this.editingIndex = index;\n this.editingValue = this.value[index];\n \n // Focus the input after render\n this.updateComplete.then(() => {\n const input = this.shadowRoot?.querySelector('.item-edit-input') as HTMLInputElement;\n if (input) {\n input.focus();\n input.select();\n }\n });\n }\n\n private saveEdit(index: number) {\n const trimmedValue = this.editingValue.trim();\n \n if (!trimmedValue) {\n this.cancelEdit();\n return;\n }\n\n if (!this.allowDuplicates && trimmedValue !== this.value[index] && this.value.includes(trimmedValue)) {\n this.validationText = 'This item already exists in the list';\n setTimeout(() => this.validationText = '', 3000);\n return;\n }\n\n const newValue = [...this.value];\n newValue[index] = trimmedValue;\n this.value = newValue;\n \n this.editingIndex = -1;\n this.editingValue = '';\n this.validationText = '';\n this.emitChange();\n }\n\n private cancelEdit() {\n this.editingIndex = -1;\n this.editingValue = '';\n }\n\n private async removeItem(index: number) {\n if (this.confirmDelete) {\n const confirmed = await this.showConfirmDialog(`Delete \"${this.value[index]}\"?`);\n if (!confirmed) return;\n }\n\n this.value = this.value.filter((_, i) => i !== index);\n this.emitChange();\n }\n\n private async showConfirmDialog(message: string): Promise {\n // For now, use native confirm. In production, this should use a proper modal\n return confirm(message);\n }\n\n // Drag and drop handlers - Interactive implementation\n private handleDragStart(e: DragEvent, index: number) {\n if (!this.sortable || this.disabled) return;\n\n this.draggedIndex = index;\n this.targetIndex = index;\n e.dataTransfer!.effectAllowed = 'move';\n e.dataTransfer!.setData('text/plain', index.toString());\n\n // Hide the default drag image\n const emptyImg = new Image();\n emptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n e.dataTransfer!.setDragImage(emptyImg, 0, 0);\n\n // Store initial mouse position\n this.dragStartY = e.clientY;\n this.dragCurrentY = e.clientY;\n\n // Measure item height and store all original positions before any transforms\n const listItems = this.shadowRoot?.querySelector('.list-items');\n const allItems = Array.from(listItems?.querySelectorAll('.list-item') || []) as HTMLElement[];\n\n if (allItems[index]) {\n this.itemHeight = allItems[index].offsetHeight;\n }\n\n // Store original positions for accurate hit detection (before any transforms are applied)\n this.originalItemRects = allItems.map(item => item.getBoundingClientRect());\n\n // Add class to container\n listItems?.classList.add('is-dragging');\n\n // Set up global event listeners\n this.boundHandleGlobalDragOver = this.handleGlobalDragOver.bind(this);\n this.boundHandleGlobalDragEnd = this.handleGlobalDragEnd.bind(this);\n document.addEventListener('dragover', this.boundHandleGlobalDragOver);\n document.addEventListener('dragend', this.boundHandleGlobalDragEnd);\n }\n\n private handleGlobalDragOver(e: DragEvent) {\n e.preventDefault();\n if (this.draggedIndex === -1) return;\n\n this.dragCurrentY = e.clientY;\n\n // Calculate which position the item should move to\n const listItems = this.shadowRoot?.querySelector('.list-items');\n if (!listItems) return;\n\n const items = Array.from(listItems.querySelectorAll('.list-item')) as HTMLElement[];\n const draggedElement = items[this.draggedIndex];\n if (!draggedElement) return;\n\n // Apply transform to dragged item\n const deltaY = this.dragCurrentY - this.dragStartY;\n draggedElement.style.transform = `translateY(${deltaY}px)`;\n\n // Calculate the dragged item's current center position\n const draggedRect = this.originalItemRects[this.draggedIndex];\n if (!draggedRect) return;\n const draggedCenter = draggedRect.top + draggedRect.height / 2 + deltaY;\n\n // Determine target index: swap when dragged item's center crosses another item's center\n // Account for items that have already shifted (their visual position changed)\n let newTargetIndex = this.draggedIndex;\n\n for (let i = 0; i < items.length; i++) {\n if (i === this.draggedIndex) continue;\n\n const rect = this.originalItemRects[i];\n if (!rect) continue;\n\n // Adjust item center based on whether it has shifted\n let itemCenter = rect.top + rect.height / 2;\n\n // If item has moved, use its shifted position\n if (items[i].classList.contains('move-up')) {\n itemCenter -= this.itemHeight;\n } else if (items[i].classList.contains('move-down')) {\n itemCenter += this.itemHeight;\n }\n\n if (draggedCenter < itemCenter && i < this.draggedIndex) {\n newTargetIndex = i;\n break;\n } else if (draggedCenter > itemCenter && i > this.draggedIndex) {\n newTargetIndex = i;\n }\n }\n\n // Update target index and apply move classes\n if (newTargetIndex !== this.targetIndex) {\n this.targetIndex = newTargetIndex;\n this.updateItemPositions(items);\n }\n }\n\n private updateItemPositions(items: HTMLElement[]) {\n const draggedIdx = this.draggedIndex;\n const targetIdx = this.targetIndex;\n\n // Set CSS variable for item height\n const listItems = this.shadowRoot?.querySelector('.list-items') as HTMLElement;\n if (listItems) {\n listItems.style.setProperty('--item-height', `${this.itemHeight}px`);\n }\n\n items.forEach((item, i) => {\n if (i === draggedIdx) return; // Skip dragged item\n\n item.classList.remove('move-up', 'move-down');\n item.style.setProperty('--item-height', `${this.itemHeight}px`);\n\n if (draggedIdx < targetIdx) {\n // Dragging down: items between draggedIdx and targetIdx move up\n if (i > draggedIdx && i <= targetIdx) {\n item.classList.add('move-up');\n }\n } else if (draggedIdx > targetIdx) {\n // Dragging up: items between targetIdx and draggedIdx move down\n if (i >= targetIdx && i < draggedIdx) {\n item.classList.add('move-down');\n }\n }\n });\n }\n\n private handleGlobalDragEnd() {\n // Clean up event listeners\n if (this.boundHandleGlobalDragOver) {\n document.removeEventListener('dragover', this.boundHandleGlobalDragOver);\n this.boundHandleGlobalDragOver = null;\n }\n if (this.boundHandleGlobalDragEnd) {\n document.removeEventListener('dragend', this.boundHandleGlobalDragEnd);\n this.boundHandleGlobalDragEnd = null;\n }\n\n const listItems = this.shadowRoot?.querySelector('.list-items');\n const items = listItems?.querySelectorAll('.list-item') as NodeListOf;\n const draggedElement = items?.[this.draggedIndex];\n\n // If no reorder needed, animate back and clean up\n if (this.draggedIndex === -1 || this.targetIndex === -1 || this.draggedIndex === this.targetIndex) {\n // Animate dragged item back to original position\n if (draggedElement && this.draggedIndex !== -1) {\n draggedElement.style.transition = 'transform 0.15s ease';\n draggedElement.style.transform = 'translateY(0)';\n\n let handled = false;\n const onReturn = () => {\n if (handled) return;\n handled = true;\n draggedElement.removeEventListener('transitionend', onReturn);\n this.cleanupDragState(listItems, items);\n };\n\n draggedElement.addEventListener('transitionend', onReturn, { once: true });\n setTimeout(onReturn, 200);\n } else {\n this.cleanupDragState(listItems, items);\n }\n return;\n }\n\n // Calculate final position for dragged item\n const draggedRect = this.originalItemRects[this.draggedIndex];\n const targetRect = this.originalItemRects[this.targetIndex];\n\n if (!draggedRect || !targetRect || !draggedElement) {\n this.cleanupDragState(listItems, items);\n return;\n }\n\n // Calculate where dragged item needs to go\n let finalY: number;\n if (this.targetIndex > this.draggedIndex) {\n // Moving down: go to bottom of target\n finalY = targetRect.bottom - draggedRect.bottom;\n } else {\n // Moving up: go to top of target\n finalY = targetRect.top - draggedRect.top;\n }\n\n // Animate dragged item to final position\n draggedElement.style.transition = 'transform 0.15s ease';\n draggedElement.style.transform = `translateY(${finalY}px)`;\n\n // After animation completes, update data\n let handled = false;\n const onTransitionEnd = () => {\n if (handled) return;\n handled = true;\n draggedElement.removeEventListener('transitionend', onTransitionEnd);\n\n // Disable all transitions\n listItems?.classList.add('dropping');\n\n // Force reflow so dropping class takes effect immediately\n void (listItems as HTMLElement)?.offsetHeight;\n\n // Clean up all element state\n items?.forEach(item => {\n item.classList.remove('move-up', 'move-down', 'dragging');\n item.style.removeProperty('transform');\n item.style.removeProperty('transition');\n });\n\n // Update data\n const newValue = [...this.value];\n const [draggedItem] = newValue.splice(this.draggedIndex, 1);\n newValue.splice(this.targetIndex, 0, draggedItem);\n this.value = newValue;\n this.emitChange();\n\n // Reset state\n this.draggedIndex = -1;\n this.dragOverIndex = -1;\n this.targetIndex = -1;\n this.dragStartY = 0;\n this.dragCurrentY = 0;\n this.originalItemRects = [];\n\n // After render, ensure no animation then re-enable transitions\n this.updateComplete.then(() => {\n // Set inline transition:none on fresh elements\n const freshItems = this.shadowRoot?.querySelectorAll('.list-item') as NodeListOf;\n freshItems?.forEach(item => {\n item.style.transition = 'none';\n });\n\n // Force reflow\n void (this.shadowRoot?.querySelector('.list-items') as HTMLElement)?.offsetHeight;\n\n // Now re-enable transitions\n requestAnimationFrame(() => {\n freshItems?.forEach(item => {\n item.style.removeProperty('transition');\n });\n listItems?.classList.remove('dropping', 'is-dragging');\n });\n });\n };\n\n draggedElement.addEventListener('transitionend', onTransitionEnd, { once: true });\n\n // Fallback timeout in case transitionend doesn't fire\n setTimeout(onTransitionEnd, 200);\n }\n\n private cleanupDragState(listItems: Element | null | undefined, items: NodeListOf | undefined) {\n listItems?.classList.add('dropping');\n\n // Force reflow so dropping class takes effect immediately\n void (listItems as HTMLElement)?.offsetHeight;\n\n items?.forEach(item => {\n item.classList.remove('move-up', 'move-down', 'dragging');\n item.style.removeProperty('transform');\n item.style.removeProperty('transition');\n });\n\n this.draggedIndex = -1;\n this.dragOverIndex = -1;\n this.targetIndex = -1;\n this.dragStartY = 0;\n this.dragCurrentY = 0;\n this.originalItemRects = [];\n\n this.updateComplete.then(() => {\n const freshItems = this.shadowRoot?.querySelectorAll('.list-item') as NodeListOf;\n freshItems?.forEach(item => {\n item.style.transition = 'none';\n });\n\n void (this.shadowRoot?.querySelector('.list-items') as HTMLElement)?.offsetHeight;\n\n requestAnimationFrame(() => {\n freshItems?.forEach(item => {\n item.style.removeProperty('transition');\n });\n listItems?.classList.remove('dropping', 'is-dragging');\n });\n });\n }\n\n private handleDragEnd() {\n // This is called by the native dragend on the element\n // The actual cleanup is done in handleGlobalDragEnd\n this.handleGlobalDragEnd();\n }\n\n private handleDragOver(e: DragEvent, index: number) {\n if (!this.sortable || this.disabled) return;\n e.preventDefault();\n e.dataTransfer!.dropEffect = 'move';\n // We handle positioning in handleGlobalDragOver now\n }\n\n private handleDragLeave() {\n // No longer needed for visual feedback - handled by transform\n }\n\n private handleDrop(e: DragEvent, dropIndex: number) {\n if (!this.sortable || this.disabled) return;\n e.preventDefault();\n // The actual reorder happens in handleGlobalDragEnd\n }\n\n private emitChange() {\n this.dispatchEvent(new CustomEvent('change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true\n }));\n this.changeSubject.next(this);\n }\n\n public getValue(): string[] {\n return this.value;\n }\n\n public setValue(value: string[]): void {\n this.value = value || [];\n }\n\n public async validate(): Promise {\n if (this.required && (!this.value || this.value.length === 0)) {\n this.validationText = 'At least one item is required';\n return false;\n }\n \n if (this.minItems && this.value.length < this.minItems) {\n this.validationText = `At least ${this.minItems} items required`;\n return false;\n }\n \n this.validationText = '';\n return true;\n }\n}", "export * from './dees-input-list.js';\n", "export * from './dees-input-multitoggle.js';\n", "export * from './dees-input-phone.js';\n", "export * from './dees-input-quantityselector.js';\n", "export * from './dees-input-radiogroup.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport './component.js';\nimport '../../00group-layout/dees-panel/dees-panel.js';\n\nexport const demoFunc = () => html`\n \n \n \n
\n \n Welcome to the Rich Text Editor!

This is a feature-rich editor built with TipTap. You can:

  • Format text with various styles
  • Create different heading levels
  • Add links to external resources
  • Write inline code or code blocks

Use the toolbar above to explore all the formatting options available!

Start typing to see the magic happen...

'}\n .description=${'Use the toolbar to format your content with headings, lists, links, and more'}\n .showWordCount=${true}\n >
\n
\n \n \n \n \n \n \n
\n \n \n \n
\n
\n \n \n Installation Guide

To install the package, run the following command:

npm install @design.estate/dees-catalog

Then import the component in your TypeScript file:

import { DeesInputRichtext } from \"@design.estate/dees-catalog\";

You can now use the <dees-input-richtext> element in your templates.

'}\n .minHeight=${250}\n .showWordCount=${true}\n >
\n
\n \n \n The Future of Web Components

Web Components have revolutionized how we build modern web applications...

\"The future of web development lies in reusable, encapsulated components.\"

'}\n .disabled=${true}\n .showWordCount=${true}\n >
\n
\n \n \n {\n const output = document.querySelector('#output-preview');\n if (output) {\n output.textContent = e.detail.value;\n }\n }}\n >\n \n
\n HTML output will appear here...\n
\n
\n
\n
\n`;", "import { css, cssManager } from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\n\nexport const richtextStyles = [\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: relative;\n font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .input-wrapper {\n position: relative;\n }\n\n .label {\n display: block;\n margin-bottom: 8px;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .editor-container {\n display: flex;\n flex-direction: column;\n min-height: ${cssManager.bdTheme('200px', '200px')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n overflow: hidden;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .editor-container:hover {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .editor-container.focused {\n border-color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 9% / 0.05)', 'hsl(0 0% 98% / 0.05)')};\n }\n\n .editor-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n padding: 8px 12px;\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 14.9%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n align-items: center;\n position: relative;\n }\n\n .toolbar-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n transition: all 0.15s ease;\n user-select: none;\n }\n\n .toolbar-button dees-icon {\n width: 16px;\n height: 16px;\n }\n\n .toolbar-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .toolbar-button.active {\n background: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n }\n\n .toolbar-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .toolbar-divider {\n width: 1px;\n height: 24px;\n background: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n margin: 0 4px;\n }\n\n .editor-content {\n flex: 1;\n padding: 16px;\n overflow-y: auto;\n min-height: var(--min-height, 200px);\n }\n\n .editor-content .ProseMirror {\n outline: none;\n line-height: 1.6;\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n min-height: 100%;\n }\n\n .editor-content .ProseMirror p {\n margin: 0.5em 0;\n }\n\n .editor-content .ProseMirror p:first-child {\n margin-top: 0;\n }\n\n .editor-content .ProseMirror p:last-child {\n margin-bottom: 0;\n }\n\n .editor-content .ProseMirror h1 {\n font-size: 2em;\n font-weight: bold;\n margin: 1em 0 0.5em 0;\n line-height: 1.2;\n }\n\n .editor-content .ProseMirror h2 {\n font-size: 1.5em;\n font-weight: bold;\n margin: 1em 0 0.5em 0;\n line-height: 1.3;\n }\n\n .editor-content .ProseMirror h3 {\n font-size: 1.25em;\n font-weight: bold;\n margin: 1em 0 0.5em 0;\n line-height: 1.4;\n }\n\n .editor-content .ProseMirror ul,\n .editor-content .ProseMirror ol {\n padding-left: 1.5em;\n margin: 0.5em 0;\n }\n\n .editor-content .ProseMirror li {\n margin: 0.25em 0;\n }\n\n .editor-content .ProseMirror blockquote {\n border-left: 4px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n margin: 1em 0;\n padding-left: 1em;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n font-style: italic;\n }\n\n .editor-content .ProseMirror code {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-radius: 3px;\n padding: 0.2em 0.4em;\n font-family: 'Intel One Mono', 'Fira Code', 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New', monospace;\n font-size: 0.9em;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .editor-content .ProseMirror pre {\n background: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 98%)', 'hsl(0 0% 3.9%)')};\n border-radius: 6px;\n padding: 1em;\n margin: 1em 0;\n overflow-x: auto;\n }\n\n .editor-content .ProseMirror pre code {\n background: none;\n color: inherit;\n padding: 0;\n border-radius: 0;\n }\n\n .editor-content .ProseMirror a {\n color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n text-decoration: underline;\n cursor: pointer;\n }\n\n .editor-content .ProseMirror a:hover {\n color: ${cssManager.bdTheme('hsl(222.2 47.4% 41.2%)', 'hsl(217.2 91.2% 69.8%)')};\n }\n\n .editor-footer {\n padding: 8px 12px;\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 14.9%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .word-count {\n font-weight: 500;\n }\n\n .link-input {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n padding: 12px;\n z-index: 1000;\n }\n\n .link-input.show {\n display: block;\n }\n\n .link-input input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n outline: none;\n font-size: 14px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .link-input input:focus {\n border-color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 9% / 0.05)', 'hsl(0 0% 98% / 0.05)')};\n }\n\n .link-input-buttons {\n display: flex;\n gap: 8px;\n margin-top: 8px;\n }\n\n .link-input-buttons button {\n padding: 6px 12px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n cursor: pointer;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n transition: all 0.15s ease;\n font-weight: 500;\n }\n\n .link-input-buttons button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .link-input-buttons button.primary {\n background: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n }\n\n .link-input-buttons button.primary:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .description {\n margin-top: 8px;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n line-height: 1.4;\n }\n\n :host([disabled]) .editor-container {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n :host([disabled]) .toolbar-button,\n :host([disabled]) .editor-content {\n pointer-events: none;\n }\n `,\n ];\n\n", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport type { DeesInputRichtext } from './component.js';\n\nexport const renderRichtext = (component: DeesInputRichtext): TemplateResult => {\n return html`\n
\n ${component.label ? html`` : ''}\n
\n
\n ${component.renderToolbar()}\n \n
\n
\n ${component.showWordCount\n ? html`\n
\n ${component.wordCount} word${component.wordCount !== 1 ? 's' : ''}\n
\n `\n : ''}\n
\n ${component.description ? html`
${component.description}
` : ''}\n
\n `;\n \n};\n", "import { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './demo.js';\nimport { richtextStyles } from './styles.js';\nimport { renderRichtext } from './template.js';\nimport type { IToolbarButton } from './types.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\nimport {\n customElement,\n type TemplateResult,\n property,\n html,\n state,\n query,\n} from '@design.estate/dees-element';\n\nimport type { Editor } from '@tiptap/core';\nimport { DeesServiceLibLoader, type ITiptapBundle } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-richtext': DeesInputRichtext;\n }\n}\n\n\n\n@customElement('dees-input-richtext')\nexport class DeesInputRichtext extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @property({\n type: String,\n reflect: true,\n })\n accessor value: string = '';\n\n @property({\n type: String,\n })\n accessor placeholder: string = '';\n\n @property({\n type: Boolean,\n })\n accessor showWordCount: boolean = true;\n\n @property({\n type: Number,\n })\n accessor minHeight: number = 200;\n\n @state()\n accessor showLinkInput: boolean = false;\n\n @state()\n accessor wordCount: number = 0;\n\n private editorElement: HTMLElement;\n private linkInputElement: HTMLInputElement;\n private tiptapBundle: ITiptapBundle | null = null;\n\n public editor: Editor;\n\n public static styles = richtextStyles;\n\n public render(): TemplateResult {\n return renderRichtext(this);\n }\n\n\n\n public renderToolbar(): TemplateResult {\n const buttons: IToolbarButton[] = this.getToolbarButtons();\n\n return html`\n ${buttons.map((button) => {\n if (button.isDivider) {\n return html`
`;\n }\n return html`\n \n \n \n `;\n })}\n `;\n }\n\n private getToolbarButtons(): IToolbarButton[] {\n if (!this.editor) return [];\n\n return [\n {\n name: 'bold',\n icon: 'lucide:bold',\n title: 'Bold (Ctrl+B)',\n action: () => this.editor.chain().focus().toggleBold().run(),\n isActive: () => this.editor.isActive('bold'),\n },\n {\n name: 'italic',\n icon: 'lucide:italic',\n title: 'Italic (Ctrl+I)',\n action: () => this.editor.chain().focus().toggleItalic().run(),\n isActive: () => this.editor.isActive('italic'),\n },\n {\n name: 'underline',\n icon: 'lucide:underline',\n title: 'Underline (Ctrl+U)',\n action: () => this.editor.chain().focus().toggleUnderline().run(),\n isActive: () => this.editor.isActive('underline'),\n },\n {\n name: 'strike',\n icon: 'lucide:strikethrough',\n title: 'Strikethrough',\n action: () => this.editor.chain().focus().toggleStrike().run(),\n isActive: () => this.editor.isActive('strike'),\n },\n { name: 'divider1', title: '', isDivider: true },\n {\n name: 'h1',\n icon: 'lucide:heading1',\n title: 'Heading 1',\n action: () => this.editor.chain().focus().toggleHeading({ level: 1 }).run(),\n isActive: () => this.editor.isActive('heading', { level: 1 }),\n },\n {\n name: 'h2',\n icon: 'lucide:heading2',\n title: 'Heading 2',\n action: () => this.editor.chain().focus().toggleHeading({ level: 2 }).run(),\n isActive: () => this.editor.isActive('heading', { level: 2 }),\n },\n {\n name: 'h3',\n icon: 'lucide:heading3',\n title: 'Heading 3',\n action: () => this.editor.chain().focus().toggleHeading({ level: 3 }).run(),\n isActive: () => this.editor.isActive('heading', { level: 3 }),\n },\n { name: 'divider2', title: '', isDivider: true },\n {\n name: 'bulletList',\n icon: 'lucide:list',\n title: 'Bullet List',\n action: () => this.editor.chain().focus().toggleBulletList().run(),\n isActive: () => this.editor.isActive('bulletList'),\n },\n {\n name: 'orderedList',\n icon: 'lucide:listOrdered',\n title: 'Numbered List',\n action: () => this.editor.chain().focus().toggleOrderedList().run(),\n isActive: () => this.editor.isActive('orderedList'),\n },\n {\n name: 'blockquote',\n icon: 'lucide:quote',\n title: 'Quote',\n action: () => this.editor.chain().focus().toggleBlockquote().run(),\n isActive: () => this.editor.isActive('blockquote'),\n },\n {\n name: 'code',\n icon: 'lucide:code',\n title: 'Code',\n action: () => this.editor.chain().focus().toggleCode().run(),\n isActive: () => this.editor.isActive('code'),\n },\n {\n name: 'codeBlock',\n icon: 'lucide:fileCode',\n title: 'Code Block',\n action: () => this.editor.chain().focus().toggleCodeBlock().run(),\n isActive: () => this.editor.isActive('codeBlock'),\n },\n { name: 'divider3', title: '', isDivider: true },\n {\n name: 'link',\n icon: 'lucide:link',\n title: 'Add Link',\n action: () => this.toggleLink(),\n isActive: () => this.editor.isActive('link'),\n },\n {\n name: 'alignLeft',\n icon: 'lucide:alignLeft',\n title: 'Align Left',\n action: () => this.editor.chain().focus().setTextAlign('left').run(),\n isActive: () => this.editor.isActive({ textAlign: 'left' }),\n },\n {\n name: 'alignCenter',\n icon: 'lucide:alignCenter',\n title: 'Align Center',\n action: () => this.editor.chain().focus().setTextAlign('center').run(),\n isActive: () => this.editor.isActive({ textAlign: 'center' }),\n },\n {\n name: 'alignRight',\n icon: 'lucide:alignRight',\n title: 'Align Right',\n action: () => this.editor.chain().focus().setTextAlign('right').run(),\n isActive: () => this.editor.isActive({ textAlign: 'right' }),\n },\n { name: 'divider4', title: '', isDivider: true },\n {\n name: 'undo',\n icon: 'lucide:undo',\n title: 'Undo (Ctrl+Z)',\n action: () => this.editor.chain().focus().undo().run(),\n },\n {\n name: 'redo',\n icon: 'lucide:redo',\n title: 'Redo (Ctrl+Y)',\n action: () => this.editor.chain().focus().redo().run(),\n },\n ];\n }\n\n public async firstUpdated() {\n await this.updateComplete;\n\n // Load Tiptap from CDN\n this.tiptapBundle = await DeesServiceLibLoader.getInstance().loadTiptap();\n\n this.editorElement = this.shadowRoot.querySelector('.editor-content');\n this.linkInputElement = this.shadowRoot.querySelector('.link-input input');\n this.initializeEditor();\n }\n\n private initializeEditor(): void {\n if (this.disabled || !this.tiptapBundle) return;\n\n const { Editor, StarterKit, Underline, TextAlign, Link, Typography } = this.tiptapBundle;\n\n this.editor = new Editor({\n element: this.editorElement,\n extensions: [\n StarterKit.configure({\n heading: {\n levels: [1, 2, 3],\n },\n }),\n Underline.configure({}),\n TextAlign.configure({\n types: ['heading', 'paragraph'],\n }),\n Link.configure({\n openOnClick: false,\n HTMLAttributes: {\n class: 'editor-link',\n },\n }),\n Typography.configure({}),\n ],\n content: this.value || (this.placeholder ? `

${this.placeholder}

` : ''),\n onUpdate: ({ editor }) => {\n this.value = editor.getHTML();\n this.updateWordCount();\n this.dispatchEvent(\n new CustomEvent('input', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n this.dispatchEvent(\n new CustomEvent('change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n },\n onSelectionUpdate: () => {\n this.requestUpdate();\n },\n onFocus: () => {\n this.requestUpdate();\n },\n onBlur: () => {\n this.requestUpdate();\n },\n });\n\n this.updateWordCount();\n }\n\n private updateWordCount(): void {\n if (!this.editor) return;\n const text = this.editor.getText();\n this.wordCount = text.trim() ? text.trim().split(/\\s+/).length : 0;\n }\n\n private toggleLink(): void {\n if (!this.editor) return;\n\n if (this.editor.isActive('link')) {\n const href = this.editor.getAttributes('link').href;\n this.showLinkInput = true;\n requestAnimationFrame(() => {\n if (this.linkInputElement) {\n this.linkInputElement.value = href || '';\n this.linkInputElement.focus();\n this.linkInputElement.select();\n }\n });\n } else {\n this.showLinkInput = true;\n requestAnimationFrame(() => {\n if (this.linkInputElement) {\n this.linkInputElement.value = '';\n this.linkInputElement.focus();\n }\n });\n }\n }\n\n public saveLink(): void {\n if (!this.editor || !this.linkInputElement) return;\n\n const url = this.linkInputElement.value;\n if (url) {\n this.editor.chain().focus().setLink({ href: url }).run();\n }\n this.hideLinkInput();\n }\n\n public removeLink(): void {\n if (!this.editor) return;\n this.editor.chain().focus().unsetLink().run();\n this.hideLinkInput();\n }\n\n public hideLinkInput(): void {\n this.showLinkInput = false;\n this.editor?.commands.focus();\n }\n\n public handleLinkInputKeydown(e: KeyboardEvent): void {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.saveLink();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n this.hideLinkInput();\n }\n }\n\n public setValue(value: string): void {\n this.value = value;\n if (this.editor && value !== this.editor.getHTML()) {\n this.editor.commands.setContent(value);\n }\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public clear(): void {\n this.setValue('');\n }\n\n public focus(): void {\n this.editor?.commands.focus();\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.editor) {\n this.editor.destroy();\n }\n }\n}", "export * from './component.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1pbnB1dC1zZWFyY2hzZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXNlYXJjaHNlbGVjdC9kZWVzLWlucHV0LXNlYXJjaHNlbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './dees-input-searchselect.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\n\nexport const demoFunc = () => html`\n \n \n \n
\n \n \n \n\n \n \n \n\n \n
\n \n \n \n
\n
\n\n \n \n \n\n \n \n \n\n \n \n \n \n
\n \n \n \n
\n \n \n \n \n
\n
\n\n \n {\n const preview = document.querySelector('#tags-preview');\n const tags = e.detail.value;\n if (preview) {\n if (tags.length === 0) {\n preview.innerHTML = 'No tags added yet...';\n } else {\n preview.innerHTML = tags.map((tag: string) => \n `${tag}`\n ).join('');\n }\n }\n }}\n >\n \n
\n No tags added yet...\n
\n \n
\n JSON output will appear here...\n
\n \n \n
\n
\n
\n`;", "import {\n customElement,\n html,\n css,\n cssManager,\n property,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demoFunc } from './dees-input-tags.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-tags': DeesInputTags;\n }\n}\n\n@customElement('dees-input-tags')\nexport class DeesInputTags extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @property({ type: Array })\n accessor value: string[] = [];\n\n @property({ type: String })\n accessor placeholder: string = 'Add tags...';\n\n @property({ type: Number })\n accessor maxTags: number = 0; // 0 means unlimited\n\n @property({ type: Array })\n accessor suggestions: string[] = [];\n\n @state()\n accessor inputValue: string = '';\n\n @state()\n accessor showSuggestions: boolean = false;\n\n @state()\n accessor highlightedSuggestionIndex: number = -1;\n\n @property({ type: String })\n accessor validationText: string = '';\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n }\n\n .input-wrapper {\n width: 100%;\n }\n\n .tags-container {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n min-height: 40px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n transition: all 0.15s ease;\n cursor: text;\n }\n\n .tags-container:hover:not(.disabled) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .tags-container:focus-within {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .tags-container.disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: ${cssManager.bdTheme('hsl(215 20.2% 65.1% / 0.2)', 'hsl(215 20.2% 35.1% / 0.2)')};\n color: ${cssManager.bdTheme('hsl(215.3 25% 26.7%)', 'hsl(217.9 10.6% 74.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(215 20.2% 65.1% / 0.3)', 'hsl(215 20.2% 35.1% / 0.3)')};\n border-radius: 4px;\n font-size: 13px;\n font-weight: 500;\n line-height: 18px;\n user-select: none;\n animation: tagAppear 0.15s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n @keyframes tagAppear {\n from {\n transform: scale(0.95);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n .tag-remove {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n height: 14px;\n margin-left: 2px;\n border-radius: 3px;\n cursor: pointer;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(215.3 25% 46.7%)', 'hsl(217.9 10.6% 54.9%)')};\n }\n\n .tag-remove:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.08)', 'hsl(0 0% 100% / 0.08)')};\n color: ${cssManager.bdTheme('hsl(215.3 25% 26.7%)', 'hsl(217.9 10.6% 74.9%)')};\n }\n\n .tag-remove dees-icon {\n width: 10px;\n height: 10px;\n }\n\n .tag-input {\n flex: 1;\n min-width: 120px;\n border: none;\n background: transparent;\n outline: none;\n font-size: 14px;\n font-family: inherit;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n padding: 2px 4px;\n line-height: 20px;\n }\n\n .tag-input::placeholder {\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n }\n\n .tag-input:disabled {\n cursor: not-allowed;\n }\n\n /* Suggestions dropdown */\n .suggestions-container {\n position: relative;\n }\n\n .suggestions-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n margin-top: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n box-shadow: 0 4px 6px -1px hsl(0 0% 0% / 0.1), 0 2px 4px -2px hsl(0 0% 0% / 0.1);\n max-height: 200px;\n overflow-y: auto;\n z-index: 1000;\n }\n\n .suggestion {\n padding: 6px 10px;\n cursor: pointer;\n transition: all 0.15s ease;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n .suggestion:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n }\n\n .suggestion.highlighted {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n /* Validation styles */\n .validation-message {\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n font-size: 13px;\n margin-top: 6px;\n line-height: 1.5;\n }\n\n /* Description styles */\n .description {\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n font-size: 13px;\n margin-top: 6px;\n line-height: 1.5;\n }\n\n /* Scrollbar styling */\n .suggestions-dropdown::-webkit-scrollbar {\n width: 8px;\n }\n\n .suggestions-dropdown::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .suggestions-dropdown::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n }\n\n .suggestions-dropdown::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n const filteredSuggestions = this.suggestions.filter(\n suggestion => \n !this.value.includes(suggestion) &&\n suggestion.toLowerCase().includes(this.inputValue.toLowerCase())\n );\n\n return html`\n
\n ${this.label ? html`` : ''}\n \n
\n \n ${this.value.map(tag => html`\n
\n ${tag}\n ${!this.disabled ? html`\n
this.removeTag(e, tag)}>\n \n
\n ` : ''}\n
\n `)}\n \n ${!this.disabled && (!this.maxTags || this.value.length < this.maxTags) ? html`\n \n ` : ''}\n
\n\n ${this.showSuggestions && filteredSuggestions.length > 0 ? html`\n
\n ${filteredSuggestions.map((suggestion, index) => html`\n {\n e.preventDefault(); // Prevent blur\n this.addTag(suggestion);\n }}\n @mouseenter=${() => this.highlightedSuggestionIndex = index}\n >\n ${suggestion}\n
\n `)}\n
\n ` : ''}\n
\n\n ${this.validationText ? html`\n
${this.validationText}
\n ` : ''}\n \n ${this.description ? html`\n
${this.description}
\n ` : ''}\n \n `;\n }\n\n private handleContainerClick(e: Event) {\n if (this.disabled) return;\n \n const input = this.shadowRoot?.querySelector('.tag-input') as HTMLInputElement;\n if (input && e.target !== input) {\n input.focus();\n }\n }\n\n private handleInput(e: Event) {\n const input = e.target as HTMLInputElement;\n this.inputValue = input.value;\n \n // Check for comma or semicolon to add tag\n if (this.inputValue.includes(',') || this.inputValue.includes(';')) {\n const tag = this.inputValue.replace(/[,;]/g, '').trim();\n if (tag) {\n this.addTag(tag);\n }\n }\n }\n\n private handleKeyDown(e: KeyboardEvent) {\n const input = e.target as HTMLInputElement;\n \n if (e.key === 'Enter') {\n e.preventDefault();\n if (this.highlightedSuggestionIndex >= 0 && this.showSuggestions) {\n const filteredSuggestions = this.suggestions.filter(\n suggestion => \n !this.value.includes(suggestion) &&\n suggestion.toLowerCase().includes(this.inputValue.toLowerCase())\n );\n if (filteredSuggestions[this.highlightedSuggestionIndex]) {\n this.addTag(filteredSuggestions[this.highlightedSuggestionIndex]);\n }\n } else if (this.inputValue.trim()) {\n this.addTag(this.inputValue.trim());\n }\n } else if (e.key === 'Backspace' && !this.inputValue && this.value.length > 0) {\n // Remove last tag when backspace is pressed on empty input\n this.removeTag(e, this.value[this.value.length - 1]);\n } else if (e.key === 'ArrowDown' && this.showSuggestions) {\n e.preventDefault();\n const filteredCount = this.suggestions.filter(\n s => !this.value.includes(s) && s.toLowerCase().includes(this.inputValue.toLowerCase())\n ).length;\n this.highlightedSuggestionIndex = Math.min(\n this.highlightedSuggestionIndex + 1,\n filteredCount - 1\n );\n } else if (e.key === 'ArrowUp' && this.showSuggestions) {\n e.preventDefault();\n this.highlightedSuggestionIndex = Math.max(this.highlightedSuggestionIndex - 1, 0);\n } else if (e.key === 'Escape') {\n this.showSuggestions = false;\n this.highlightedSuggestionIndex = -1;\n }\n }\n\n private handleFocus() {\n if (this.suggestions.length > 0) {\n this.showSuggestions = true;\n }\n }\n\n private handleBlur() {\n // Delay to allow click on suggestions\n setTimeout(() => {\n this.showSuggestions = false;\n this.highlightedSuggestionIndex = -1;\n }, 200);\n }\n\n private addTag(tag: string) {\n if (!tag || this.value.includes(tag)) return;\n if (this.maxTags && this.value.length >= this.maxTags) return;\n\n this.value = [...this.value, tag];\n this.inputValue = '';\n this.showSuggestions = false;\n this.highlightedSuggestionIndex = -1;\n \n // Clear the input\n const input = this.shadowRoot?.querySelector('.tag-input') as HTMLInputElement;\n if (input) {\n input.value = '';\n }\n\n this.emitChange();\n }\n\n private removeTag(e: Event, tag: string) {\n e.stopPropagation();\n this.value = this.value.filter(t => t !== tag);\n this.emitChange();\n }\n\n private emitChange() {\n this.dispatchEvent(new CustomEvent('change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true\n }));\n this.changeSubject.next(this);\n }\n\n public getValue(): string[] {\n return this.value;\n }\n\n public setValue(value: string[]): void {\n this.value = value || [];\n }\n\n public async validate(): Promise {\n if (this.required && (!this.value || this.value.length === 0)) {\n this.validationText = 'At least one tag is required';\n return false;\n }\n this.validationText = '';\n return true;\n }\n}", "export * from './dees-input-tags.js';\n", "export * from './dees-input-text.js';\n", "export * from './dees-input-toggle.js';\n", "export * from './dees-input-typelist.js';\n", "import { html, css, type TemplateResult } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesInputWysiwyg } from './dees-input-wysiwyg/dees-input-wysiwyg.js';\nimport type { IBlock } from './dees-input-wysiwyg/wysiwyg.types.js';\n\ninterface IDemoEditor {\n basic: DeesInputWysiwyg;\n article: DeesInputWysiwyg;\n dragDrop: DeesInputWysiwyg;\n tutorial: DeesInputWysiwyg;\n meeting: DeesInputWysiwyg;\n recipe: DeesInputWysiwyg;\n technical: DeesInputWysiwyg;\n formIntegration: DeesInputWysiwyg;\n programmatic: DeesInputWysiwyg;\n exportDemo: DeesInputWysiwyg;\n}\n\n// Sample content generators\nconst generateReportBlocks = (): IBlock[] => {\n const timestamp = Date.now();\n return [\n {\n id: `title-${timestamp}`,\n type: 'heading-1',\n content: 'System Performance Report'\n },\n {\n id: `date-${timestamp + 1}`,\n type: 'paragraph',\n content: `Generated on: ${new Date().toLocaleString()}`\n },\n {\n id: `summary-heading-${timestamp + 2}`,\n type: 'heading-2',\n content: 'Executive Summary'\n },\n {\n id: `summary-${timestamp + 3}`,\n type: 'paragraph',\n content: 'This report provides an analysis of system performance metrics over the last 30 days.'\n },\n {\n id: `metrics-heading-${timestamp + 4}`,\n type: 'heading-2',\n content: 'Key Metrics'\n },\n {\n id: `metrics-list-${timestamp + 5}`,\n type: 'list',\n content: 'Average response time: 124ms\\nUptime: 99.97%\\nCPU utilization: 45%\\nMemory usage: 2.3GB / 8GB',\n metadata: { listType: 'bullet' }\n },\n {\n id: `analysis-heading-${timestamp + 6}`,\n type: 'heading-2',\n content: 'Performance Analysis'\n },\n {\n id: `analysis-quote-${timestamp + 7}`,\n type: 'quote',\n content: 'System performance remains within acceptable parameters with room for optimization in memory management.'\n },\n {\n id: `code-heading-${timestamp + 8}`,\n type: 'heading-3',\n content: 'Sample Query Performance'\n },\n {\n id: `code-block-${timestamp + 9}`,\n type: 'code',\n content: 'SELECT AVG(response_time) as avg_time,\\n COUNT(*) as total_requests,\\n DATE(created_at) as date\\nFROM performance_logs\\nWHERE created_at >= NOW() - INTERVAL 30 DAY\\nGROUP BY DATE(created_at)\\nORDER BY date DESC;',\n metadata: { language: 'sql' }\n },\n {\n id: `divider-${timestamp + 10}`,\n type: 'divider',\n content: ''\n },\n {\n id: `footer-${timestamp + 11}`,\n type: 'paragraph',\n content: 'Report generated automatically by System Monitor v2.5.0'\n }\n ];\n};\n\nconst generateRecipeBlocks = (): IBlock[] => {\n const timestamp = Date.now();\n return [\n {\n id: `recipe-title-${timestamp}`,\n type: 'heading-1',\n content: 'Classic Margherita Pizza'\n },\n {\n id: `recipe-intro-${timestamp + 1}`,\n type: 'paragraph',\n content: 'A traditional Italian pizza with fresh basil, mozzarella, and tomato sauce.'\n },\n {\n id: `ingredients-heading-${timestamp + 2}`,\n type: 'heading-2',\n content: '\uD83C\uDF55 Ingredients'\n },\n {\n id: `dough-heading-${timestamp + 3}`,\n type: 'heading-3',\n content: 'For the Dough:'\n },\n {\n id: `dough-list-${timestamp + 4}`,\n type: 'list',\n content: '500g tipo \"00\" flour\\n325ml warm water\\n10g salt\\n7g active dry yeast\\n2 tbsp olive oil',\n metadata: { listType: 'bullet' }\n },\n {\n id: `toppings-heading-${timestamp + 5}`,\n type: 'heading-3',\n content: 'For the Toppings:'\n },\n {\n id: `toppings-list-${timestamp + 6}`,\n type: 'list',\n content: '400g canned San Marzano tomatoes\\n250g fresh mozzarella\\nFresh basil leaves\\nExtra virgin olive oil\\nSalt and pepper to taste',\n metadata: { listType: 'bullet' }\n },\n {\n id: `instructions-heading-${timestamp + 7}`,\n type: 'heading-2',\n content: '\uD83D\uDC68\u200D\uD83C\uDF73 Instructions'\n },\n {\n id: `steps-list-${timestamp + 8}`,\n type: 'list',\n content: 'Dissolve yeast in warm water and let stand for 5 minutes\\nMix flour and salt, create a well in center\\nAdd yeast mixture and olive oil\\nKnead for 10 minutes until smooth\\nLet rise for 1-2 hours until doubled\\nPunch down and divide into portions\\nRoll out each portion to 12-inch circles\\nTop with crushed tomatoes, mozzarella, and basil\\nBake at 475\u00B0F (245\u00B0C) for 10-12 minutes',\n metadata: { listType: 'ordered' }\n },\n {\n id: `tip-${timestamp + 9}`,\n type: 'quote',\n content: 'Pro tip: For an authentic taste, use a pizza stone and preheat it in the oven for at least 30 minutes before baking.'\n },\n {\n id: `divider-${timestamp + 10}`,\n type: 'divider',\n content: ''\n },\n {\n id: `servings-${timestamp + 11}`,\n type: 'paragraph',\n content: 'Servings: 4 pizzas | Prep time: 2 hours | Cook time: 12 minutes'\n }\n ];\n};\n\nconst initializeEditors = (container: HTMLElement): IDemoEditor => {\n const editors: Partial = {};\n \n // Get all editor references\n editors.basic = container.querySelector('#editor-basic') as DeesInputWysiwyg;\n editors.article = container.querySelector('#editor-article') as DeesInputWysiwyg;\n editors.dragDrop = container.querySelector('#editor-dragdrop') as DeesInputWysiwyg;\n editors.tutorial = container.querySelector('#editor-tutorial') as DeesInputWysiwyg;\n editors.meeting = container.querySelector('#editor-meeting') as DeesInputWysiwyg;\n editors.recipe = container.querySelector('#editor-recipe') as DeesInputWysiwyg;\n editors.technical = container.querySelector('#editor-technical') as DeesInputWysiwyg;\n editors.formIntegration = container.querySelector('#editor-form-integration') as DeesInputWysiwyg;\n editors.programmatic = container.querySelector('#editor-programmatic') as DeesInputWysiwyg;\n editors.exportDemo = container.querySelector('#editor-export') as DeesInputWysiwyg;\n \n return editors as IDemoEditor;\n};\n\nconst setupProgrammaticDemo = (container: HTMLElement, editor: DeesInputWysiwyg) => {\n const reportBtn = container.querySelector('#btn-generate-report') as HTMLButtonElement;\n const recipeBtn = container.querySelector('#btn-generate-recipe') as HTMLButtonElement;\n const clearBtn = container.querySelector('#btn-clear-editor') as HTMLButtonElement;\n \n if (reportBtn) {\n reportBtn.addEventListener('click', () => {\n editor.importBlocks(generateReportBlocks());\n });\n }\n \n if (recipeBtn) {\n recipeBtn.addEventListener('click', () => {\n editor.importBlocks(generateRecipeBlocks());\n });\n }\n \n if (clearBtn) {\n clearBtn.addEventListener('click', () => {\n editor.importBlocks([]);\n });\n }\n};\n\nconst setupExportDemo = (container: HTMLElement, editor: DeesInputWysiwyg) => {\n const exportBlocksBtn = container.querySelector('#btn-export-blocks') as HTMLButtonElement;\n const exportHtmlBtn = container.querySelector('#btn-export-html') as HTMLButtonElement;\n const exportMarkdownBtn = container.querySelector('#btn-export-markdown') as HTMLButtonElement;\n const saveStateBtn = container.querySelector('#btn-save-state') as HTMLButtonElement;\n const restoreStateBtn = container.querySelector('#btn-restore-state') as HTMLButtonElement;\n \n let savedState: any = null;\n \n if (exportBlocksBtn) {\n exportBlocksBtn.addEventListener('click', () => {\n const blocks = editor.exportBlocks();\n console.log('Exported blocks:', blocks);\n alert(`Exported ${blocks.length} blocks to console. Check developer tools.`);\n });\n }\n \n if (exportHtmlBtn) {\n exportHtmlBtn.addEventListener('click', () => {\n const html = editor.exportAsHtml();\n console.log('HTML Export:', html);\n alert('HTML exported to console. Check developer tools.');\n });\n }\n \n if (exportMarkdownBtn) {\n exportMarkdownBtn.addEventListener('click', () => {\n const markdown = editor.exportAsMarkdown();\n console.log('Markdown Export:', markdown);\n alert('Markdown exported to console. Check developer tools.');\n });\n }\n \n if (saveStateBtn) {\n saveStateBtn.addEventListener('click', () => {\n savedState = editor.exportState();\n console.log('Saved state:', savedState);\n alert('Editor state saved!');\n });\n }\n \n if (restoreStateBtn) {\n restoreStateBtn.addEventListener('click', () => {\n if (savedState) {\n editor.importState(savedState);\n alert('Editor state restored!');\n } else {\n alert('No saved state found. Save state first!');\n }\n });\n }\n};\n\nconst setupOutputFormatDemo = (\n container: HTMLElement,\n htmlEditor?: DeesInputWysiwyg,\n markdownEditor?: DeesInputWysiwyg,\n) => {\n const htmlBtn = container.querySelector('#btn-show-html-output') as HTMLButtonElement | null;\n const htmlPreview = container.querySelector('#output-preview-html') as HTMLElement | null;\n if (htmlBtn && htmlPreview && htmlEditor) {\n htmlBtn.addEventListener('click', () => {\n htmlPreview.textContent = htmlEditor.getValue();\n htmlPreview.classList.add('visible');\n });\n }\n\n const markdownBtn = container.querySelector('#btn-show-markdown-output') as HTMLButtonElement | null;\n const markdownPreview = container.querySelector('#output-preview-markdown') as HTMLElement | null;\n if (markdownBtn && markdownPreview && markdownEditor) {\n markdownBtn.addEventListener('click', () => {\n markdownPreview.textContent = markdownEditor.getValue();\n markdownPreview.classList.add('visible');\n });\n }\n};\n\nconst populateInitialContent = (editors: IDemoEditor) => {\n // Article editor content\n if (editors.article) {\n setTimeout(() => {\n const articleBlocks: IBlock[] = [\n {\n id: 'intro-heading-' + Date.now(),\n type: 'heading-2',\n content: 'Introduction to Modern Web Development'\n },\n {\n id: 'intro-para-' + Date.now(),\n type: 'paragraph',\n content: 'Modern web development has evolved significantly over the past decade. In this article, we\\'ll explore the key technologies and best practices that define web development in 2024.'\n },\n {\n id: 'tech-heading-' + Date.now(),\n type: 'heading-3',\n content: 'Key Technologies'\n },\n {\n id: 'tech-list-' + Date.now(),\n type: 'list',\n content: 'TypeScript - Type-safe JavaScript development\\nWeb Components - Native component model\\nES Modules - Modern module system\\nWebAssembly - High-performance computing',\n metadata: { listType: 'ordered' }\n },\n {\n id: 'quote-' + Date.now(),\n type: 'quote',\n content: 'The best way to predict the future is to invent it. - Alan Kay'\n },\n {\n id: 'example-heading-' + Date.now(),\n type: 'heading-3',\n content: 'Code Example'\n },\n {\n id: 'code-example-' + Date.now(),\n type: 'code',\n content: 'class ModernWebApp extends HTMLElement {\\n constructor() {\\n super();\\n this.attachShadow({ mode: \\'open\\' });\\n }\\n \\n connectedCallback() {\\n this.render();\\n }\\n}',\n metadata: { language: 'javascript' }\n }\n ];\n editors.article.importBlocks(articleBlocks);\n }, 500);\n }\n \n // Drag & Drop demo content\n if (editors.dragDrop) {\n setTimeout(() => {\n const dragBlocks: IBlock[] = [\n {\n id: 'drag-title-' + Date.now(),\n type: 'heading-1',\n content: 'Drag & Drop Demo'\n },\n {\n id: 'drag-intro-' + Date.now(),\n type: 'paragraph',\n content: 'This editor demonstrates drag and drop functionality. Try dragging these blocks around!'\n },\n {\n id: 'drag-heading-' + Date.now(),\n type: 'heading-2',\n content: 'How It Works'\n },\n {\n id: 'drag-list-' + Date.now(),\n type: 'list',\n content: 'Hover over any block to see the drag handle\\nClick and hold the handle to start dragging\\nDrag to reorder blocks\\nRelease to drop in the new position',\n metadata: { listType: 'ordered' }\n },\n {\n id: 'drag-quote-' + Date.now(),\n type: 'quote',\n content: 'The drag and drop feature makes it easy to reorganize your content without cutting and pasting.'\n },\n {\n id: 'drag-divider-' + Date.now(),\n type: 'divider',\n content: ''\n },\n {\n id: 'drag-footer-' + Date.now(),\n type: 'paragraph',\n content: 'Note: Divider blocks cannot be dragged, but other blocks can be moved around them.'\n }\n ];\n editors.dragDrop.importBlocks(dragBlocks);\n }, 600);\n }\n};\n\nexport const demoFunc = (): TemplateResult => html`\n {\n // Wait for elements to be ready\n await new Promise(resolve => setTimeout(resolve, 500));\n \n const editors = initializeEditors(elementArg);\n \n // Setup programmatic demo\n if (editors.programmatic) {\n setupProgrammaticDemo(elementArg, editors.programmatic);\n }\n \n // Setup export demo\n if (editors.exportDemo) {\n setupExportDemo(elementArg, editors.exportDemo);\n }\n\n // Setup output format preview buttons\n setupOutputFormatDemo(elementArg, editors.meeting, editors.recipe);\n\n // Populate initial content\n populateInitialContent(editors);\n \n // Log initialization\n console.log('WYSIWYG Demo initialized with editors:', Object.keys(editors));\n }}>\n \n \n
\n \n

\n A powerful block-based editor with slash commands, keyboard shortcuts, and multiple output formats. \n Perfect for content creation, blog posts, documentation, and more.\n

\n \n
\n
\n \u2713\n Slash commands (/)\n
\n
\n \u2713\n Keyboard shortcuts\n
\n
\n \u2713\n Block-based editing\n
\n
\n \u2713\n Drag & drop reordering\n
\n
\n \u2713\n HTML & Markdown output\n
\n
\n \u2713\n Dark mode support\n
\n
\n \u2713\n Mobile responsive\n
\n
\n \n \n\n
\n

\u2328\uFE0F Keyboard Shortcuts

\n
\n
\n / Slash commands\n
\n
\n # Heading 1\n
\n
\n ## Heading 2\n
\n
\n ### Heading 3\n
\n
\n > Quote\n
\n
\n \\`\\`\\` Code block\n
\n
\n * or - Bullet list\n
\n
\n 1. Numbered list\n
\n
\n --- Divider\n
\n
\n
\n
\n \n \n

\n Perfect for creating rich content with multiple block types. \n The editor preserves formatting and provides a clean editing experience.\n

\n \n \n
\n\n \n

\n Easily rearrange your content blocks by dragging them. \n Hover over any block to reveal the drag handle on the left side.\n

\n \n \n \n
\n \uD83D\uDCA1 Tips:\n
    \n
  • Hover over any block to see the drag handle (\u22EE\u22EE) on the left
  • \n
  • Click and hold the drag handle to start dragging
  • \n
  • Blue indicators show where the block will be dropped
  • \n
  • Divider blocks cannot be dragged
  • \n
  • The editor maintains focus on the moved block after dropping
  • \n
\n
\n
\n\n \n

\n Create comprehensive tutorials and documentation with code examples, lists, and structured content.\n

\n \n README.md\ngit add README.md\n\\`\\`\\`\n\n#### Committing Changes\n\n\\`\\`\\`bash\ngit commit -m "Initial commit"\n\\`\\`\\`\n\n> **Best Practice:** Write clear, descriptive commit messages that explain what changes were made and why.\n\n### 4. Working with Branches\n\nBranches allow you to work on features independently:\n\n\\`\\`\\`bash\n# Create and switch to a new branch\ngit checkout -b feature-branch\n\n# Make changes and commit\ngit add .\ngit commit -m "Add new feature"\n\n# Switch back to main\ngit checkout main\n\n# Merge the feature\ngit merge feature-branch\n\\`\\`\\`\n\n---\n\n## Common Commands Reference\n\n| Command | Description |\n|---------|-------------|\n| \\`git status\\` | Check repository status |\n| \\`git log\\` | View commit history |\n| \\`git diff\\` | Show changes |\n| \\`git pull\\` | Fetch and merge changes |\n| \\`git push\\` | Upload changes to remote |\n\n## Next Steps\n\n1. Learn about remote repositories\n2. Explore advanced Git features\n3. Practice with real projects\n4. Contribute to open source\n\n**Happy coding!** \uD83D\uDE80\"\n >\n
\n\n \n

\n Choose between HTML and Markdown output formats depending on your needs. \n Perfect for static site generators, documentation systems, or any content management workflow.\n

\n \n
\n
\n Q4 Planning Meeting

Date: December 15, 2024
Attendees: Product Team, Engineering, Design

Agenda Items

  1. Review Q3 achievements
  2. Set Q4 objectives
  3. Resource allocation
  4. Timeline discussion

Key Decisions

  • Launch new dashboard feature by end of January
  • Increase engineering team by 2 developers
  • Implement weekly design reviews
"Focus on user experience improvements based on Q3 feedback" - Product Manager

Action Items

  • Sarah: Create detailed project timeline
  • Mike: Draft technical requirements
  • Lisa: Schedule user research sessions

Next meeting: January 5, 2025

\"\n >
\n
\n \n
\n
\n          
\n \n
\n **Pro tip:** Room temperature ingredients mix better and create a more uniform dough.\n\n### Step 4: Add Wet Ingredients\n\nBeat in eggs one at a time, then add vanilla extract.\n\n### Step 5: Combine and Bake\n\nGradually blend in flour mixture, then stir in chocolate chips. Drop rounded tablespoons onto ungreased cookie sheets.\n\n---\n\n**Baking time:** 9-11 minutes or until golden brown\n\n**Yield:** About 5 dozen cookies\"\n >\n
\n \n
\n
\n          
\n
\n
\n\n \n

\n Create complex documents with mixed content types. The editor handles all formatting seamlessly.\n

\n \n API Documentation

Welcome to our API documentation. Below you'll find examples of how to use our endpoints.

Authentication

All API requests require authentication using an API key:

Authorization: Bearer YOUR_API_KEY

Endpoints

GET /users

Retrieve a list of users from the system.

curl -X GET https://api.example.com/users \\\\\n  -H "Authorization: Bearer YOUR_API_KEY"
Note: Rate limiting applies to all endpoints. You can make up to 100 requests per minute.

POST /users

Create a new user in the system.

{\n  "name": "John Doe",\n  "email": "john@example.com",\n  "role": "user"\n}

For more information, please refer to our complete documentation.

\"\n outputFormat=\"html\"\n >
\n
\n\n \n

\n Seamlessly integrates with dees-form for complete form solutions. \n All standard form features like validation, required fields, and data binding work out of the box.\n

\n \n \n \n \n \n \n \n \n
\n\n \n

\n Create content programmatically using the block API for dynamic document generation.\n

\n \n \n \n
\n \n \n \n \n \n
\n
\n\n \n

\n The WYSIWYG editor provides multiple export formats and lossless save/restore capabilities for maximum flexibility.\n

\n \n
\n
\n Lossless Blocks\n

Export and import raw block structure for perfect round-trip editing

\n
\n
\n HTML Export\n

Get clean, semantic HTML regardless of output format setting

\n
\n
\n Markdown Export\n

Export as Markdown for docs, READMEs, and static sites

\n
\n
\n State Management\n

Save and restore complete editor state including settings

\n
\n
\n \n Software Release Notes

Version 2.5.0 - Released December 15, 2024

\uD83C\uDF89 New Features

  • Added dark mode support across all components
  • Implemented real-time collaboration features
  • New dashboard analytics widgets
  • Export functionality for all report types

\uD83D\uDC1B Bug Fixes

  • Fixed memory leak in data processing module
  • Resolved authentication timeout issues
  • Corrected timezone handling in scheduled tasks

\u26A1 Performance Improvements

Page load times reduced by 40% through lazy loading and code splitting

\uD83D\uDD27 Technical Details

// New API endpoint for batch operations\nPOST /api/v2/batch\n{\n  "operations": [\n    { "method": "GET", "path": "/users/123" },\n    { "method": "PUT", "path": "/settings", "body": {...} }\n  ]\n}

\uD83D\uDCA1 Migration Guide

  1. Update your dependencies to the latest versions
  2. Run database migrations: npm run migrate
  3. Clear cache: npm run cache:clear
  4. Restart all services

For questions or issues, please contact the development team or file a ticket in our issue tracker.

\"\n >\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n`;\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "import { type IBlock, type IShortcutPattern, type ISlashMenuItem } from './wysiwyg.types.js';\n\nexport class WysiwygShortcuts {\n static readonly HEADING_PATTERNS: IShortcutPattern[] = [\n { pattern: /^#[\\s\\u00A0]$/, type: 'heading-1' },\n { pattern: /^##[\\s\\u00A0]$/, type: 'heading-2' },\n { pattern: /^###[\\s\\u00A0]$/, type: 'heading-3' }\n ];\n\n static readonly LIST_PATTERNS: IShortcutPattern[] = [\n { pattern: /^[*-][\\s\\u00A0]$/, type: 'bullet' },\n { pattern: /^(\\d+)\\.[\\s\\u00A0]$/, type: 'ordered' },\n { pattern: /^(\\d+)\\)[\\s\\u00A0]$/, type: 'ordered' }\n ];\n\n static readonly QUOTE_PATTERN = /^>[\\s\\u00A0]$/;\n static readonly CODE_PATTERN = /^```$/;\n static readonly DIVIDER_PATTERNS = ['---', '***', '___'];\n\n static checkHeadingShortcut(content: string): { type: IBlock['type'] } | null {\n for (const { pattern, type } of this.HEADING_PATTERNS) {\n if (pattern.test(content)) {\n return { type: type as IBlock['type'] };\n }\n }\n return null;\n }\n\n static checkListShortcut(content: string): { type: 'list', listType: 'bullet' | 'ordered' } | null {\n for (const { pattern, type } of this.LIST_PATTERNS) {\n if (pattern.test(content)) {\n return { type: 'list', listType: type as 'bullet' | 'ordered' };\n }\n }\n return null;\n }\n\n static checkQuoteShortcut(content: string): boolean {\n return this.QUOTE_PATTERN.test(content);\n }\n\n static checkCodeShortcut(content: string): boolean {\n return this.CODE_PATTERN.test(content);\n }\n\n static checkDividerShortcut(content: string): boolean {\n return this.DIVIDER_PATTERNS.includes(content);\n }\n\n static getSlashMenuItems(): ISlashMenuItem[] {\n return [\n { type: 'paragraph', label: 'Paragraph', icon: 'lucide:pilcrow' },\n { type: 'heading-1', label: 'Heading 1', icon: 'lucide:heading1' },\n { type: 'heading-2', label: 'Heading 2', icon: 'lucide:heading2' },\n { type: 'heading-3', label: 'Heading 3', icon: 'lucide:heading3' },\n { type: 'quote', label: 'Quote', icon: 'lucide:quote' },\n { type: 'code', label: 'Code Block', icon: 'lucide:fileCode' },\n { type: 'list', label: 'Bullet List', icon: 'lucide:list' },\n { type: 'image', label: 'Image', icon: 'lucide:image' },\n { type: 'divider', label: 'Divider', icon: 'lucide:minus' },\n { type: 'youtube', label: 'YouTube', icon: 'lucide:youtube' },\n { type: 'markdown', label: 'Markdown', icon: 'lucide:fileText' },\n { type: 'html', label: 'HTML', icon: 'lucide:code' },\n { type: 'attachment', label: 'File Attachment', icon: 'lucide:paperclip' },\n ];\n }\n\n static generateBlockId(): string {\n return `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n }\n}\n\n// Re-export the type that is used in this module\nexport type { ISlashMenuItem } from './wysiwyg.types.js';", "import {\n customElement,\n html,\n DeesElement,\n type TemplateResult,\n cssManager,\n css,\n state,\n} from '@design.estate/dees-element';\nimport { zIndexRegistry } from '../../00zindex.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\nimport { type ISlashMenuItem } from './wysiwyg.types.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-slash-menu': DeesSlashMenu;\n }\n}\n\n@customElement('dees-slash-menu')\nexport class DeesSlashMenu extends DeesElement {\n private static instance: DeesSlashMenu;\n \n public static getInstance(): DeesSlashMenu {\n if (!DeesSlashMenu.instance) {\n DeesSlashMenu.instance = new DeesSlashMenu();\n document.body.appendChild(DeesSlashMenu.instance);\n }\n return DeesSlashMenu.instance;\n }\n\n @state()\n accessor visible: boolean = false;\n\n @state()\n accessor position: { x: number; y: number } = { x: 0, y: 0 };\n\n @state()\n accessor filter: string = '';\n\n @state()\n accessor selectedIndex: number = 0;\n\n @state()\n accessor menuZIndex: number = 1000;\n\n private callback: ((type: string) => void) | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: fixed;\n pointer-events: none;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n }\n\n .slash-menu {\n position: fixed;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 4px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n padding: 4px;\n min-width: 220px;\n max-height: 300px;\n overflow-y: auto;\n pointer-events: auto;\n user-select: none;\n animation: fadeInScale 0.15s ease-out;\n }\n\n @keyframes fadeInScale {\n from {\n opacity: 0;\n transform: scale(0.98) translateY(-2px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n .slash-menu-item {\n padding: 8px 10px;\n cursor: pointer;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n gap: 12px;\n border-radius: 3px;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n font-size: 14px;\n }\n\n .slash-menu-item:hover,\n .slash-menu-item.selected {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .slash-menu-item .icon {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .slash-menu-item:hover .icon,\n .slash-menu-item.selected .icon {\n color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n `,\n ];\n\n render(): TemplateResult {\n if (!this.visible) return html``;\n\n // Ensure z-index is applied to host element\n this.style.zIndex = this.menuZIndex.toString();\n\n const menuItems = this.getFilteredMenuItems();\n\n return html`\n
\n ${menuItems.map((item, index) => html`\n
\n \n ${item.label}\n
\n `)}\n
\n `;\n }\n\n private getFilteredMenuItems(): ISlashMenuItem[] {\n const allItems = WysiwygShortcuts.getSlashMenuItems();\n return allItems.filter(item => \n this.filter === '' || \n item.label.toLowerCase().includes(this.filter.toLowerCase())\n );\n }\n\n private selectItem(type: string): void {\n if (this.callback) {\n this.callback(type);\n }\n this.hide();\n }\n\n public show(position: { x: number; y: number }, callback: (type: string) => void): void {\n this.position = position;\n this.callback = callback;\n this.filter = '';\n this.selectedIndex = 0;\n \n // Get z-index from registry and apply immediately\n this.menuZIndex = zIndexRegistry.getNextZIndex();\n zIndexRegistry.register(this, this.menuZIndex);\n this.style.zIndex = this.menuZIndex.toString();\n \n this.visible = true;\n }\n\n public hide(): void {\n this.visible = false;\n this.callback = null;\n this.filter = '';\n this.selectedIndex = 0;\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n }\n\n public updateFilter(filter: string): void {\n this.filter = filter;\n this.selectedIndex = 0;\n }\n\n public navigate(direction: 'up' | 'down'): void {\n const items = this.getFilteredMenuItems();\n if (direction === 'down') {\n this.selectedIndex = (this.selectedIndex + 1) % items.length;\n } else {\n this.selectedIndex = this.selectedIndex === 0 \n ? items.length - 1 \n : this.selectedIndex - 1;\n }\n }\n\n public selectCurrent(): void {\n const items = this.getFilteredMenuItems();\n if (items[this.selectedIndex]) {\n this.selectItem(items[this.selectedIndex].type);\n }\n }\n \n public firstUpdated(): void {\n // Set up event delegation\n this.shadowRoot?.addEventListener('mousedown', (e: MouseEvent) => {\n const menu = this.shadowRoot?.querySelector('.slash-menu');\n if (menu && menu.contains(e.target as Node)) {\n // Prevent focus loss\n e.preventDefault();\n e.stopPropagation();\n }\n });\n \n this.shadowRoot?.addEventListener('click', (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const menuItem = target.closest('.slash-menu-item') as HTMLElement;\n \n if (menuItem) {\n e.preventDefault();\n e.stopPropagation();\n \n const itemType = menuItem.getAttribute('data-item-type');\n if (itemType) {\n this.selectItem(itemType);\n }\n }\n });\n \n this.shadowRoot?.addEventListener('mouseenter', (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const menuItem = target.closest('.slash-menu-item') as HTMLElement;\n \n if (menuItem) {\n const index = parseInt(menuItem.getAttribute('data-item-index') || '0', 10);\n this.selectedIndex = index;\n }\n }, true); // Use capture phase\n \n this.shadowRoot?.addEventListener('focus', (e: FocusEvent) => {\n const menu = this.shadowRoot?.querySelector('.slash-menu');\n if (menu && menu.contains(e.target as Node)) {\n // Prevent menu from taking focus\n e.preventDefault();\n e.stopPropagation();\n }\n }, true); // Use capture phase\n }\n}", "/**\n * Utilities for handling selection across Shadow DOM boundaries\n */\n\nexport interface SelectionInfo {\n startContainer: Node;\n startOffset: number;\n endContainer: Node;\n endOffset: number;\n collapsed: boolean;\n}\n\n// Type for the extended caretPositionFromPoint with Shadow DOM support\ntype CaretPositionFromPointExtended = (x: number, y: number, ...shadowRoots: ShadowRoot[]) => CaretPosition | null;\n\nexport class WysiwygSelection {\n /**\n * Gets selection info that works across Shadow DOM boundaries\n * @param shadowRoots - Shadow roots to include in the selection search\n */\n static getSelectionInfo(...shadowRoots: ShadowRoot[]): SelectionInfo | null {\n const selection = window.getSelection();\n console.log('WysiwygSelection.getSelectionInfo - selection:', selection, 'rangeCount:', selection?.rangeCount);\n if (!selection) return null;\n\n // Try using getComposedRanges if available (better Shadow DOM support)\n if ('getComposedRanges' in selection && typeof selection.getComposedRanges === 'function') {\n console.log('Using getComposedRanges with', shadowRoots.length, 'shadow roots');\n try {\n // Pass shadow roots in the correct format as per MDN\n const ranges = selection.getComposedRanges({ shadowRoots });\n console.log('getComposedRanges returned', ranges.length, 'ranges');\n if (ranges.length > 0) {\n const range = ranges[0];\n return {\n startContainer: range.startContainer,\n startOffset: range.startOffset,\n endContainer: range.endContainer,\n endOffset: range.endOffset,\n collapsed: range.collapsed\n };\n }\n } catch (error) {\n console.warn('getComposedRanges failed, falling back to getRangeAt:', error);\n }\n } else {\n console.log('getComposedRanges not available, using fallback');\n }\n\n // Fallback to traditional selection API\n if (selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n return {\n startContainer: range.startContainer,\n startOffset: range.startOffset,\n endContainer: range.endContainer,\n endOffset: range.endOffset,\n collapsed: range.collapsed\n };\n }\n\n return null;\n }\n\n /**\n * Checks if a selection is within a specific element (considering Shadow DOM)\n */\n static isSelectionInElement(element: Element, shadowRoot?: ShadowRoot): boolean {\n const selectionInfo = shadowRoot \n ? this.getSelectionInfo(shadowRoot)\n : this.getSelectionInfo();\n \n if (!selectionInfo) return false;\n\n // Check if the selection's common ancestor is within the element\n return element.contains(selectionInfo.startContainer) || \n element.contains(selectionInfo.endContainer);\n }\n\n /**\n * Gets the selected text across Shadow DOM boundaries\n */\n static getSelectedText(): string {\n const selection = window.getSelection();\n return selection ? selection.toString() : '';\n }\n\n /**\n * Creates a range from selection info\n */\n static createRangeFromInfo(info: SelectionInfo): Range {\n const range = document.createRange();\n range.setStart(info.startContainer, info.startOffset);\n range.setEnd(info.endContainer, info.endOffset);\n return range;\n }\n\n /**\n * Sets selection from a range (works with Shadow DOM)\n */\n static setSelectionFromRange(range: Range): void {\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n /**\n * Gets cursor position relative to a specific element\n */\n static getCursorPositionInElement(element: Element, ...shadowRoots: ShadowRoot[]): number | null {\n const selectionInfo = shadowRoots.length > 0\n ? this.getSelectionInfo(...shadowRoots)\n : this.getSelectionInfo();\n \n if (!selectionInfo || !selectionInfo.collapsed) return null;\n \n // Create a range from start of element to cursor position\n try {\n const range = document.createRange();\n range.selectNodeContents(element);\n \n // Handle case where selection is in a text node that's a child of the element\n // Use our Shadow DOM-aware contains method\n const isContained = this.containsAcrossShadowDOM(element, selectionInfo.startContainer);\n \n if (isContained) {\n range.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n const position = range.toString().length;\n return position;\n } else {\n // Selection might be in shadow DOM or different context\n // Try to find the equivalent position in the element\n const text = element.textContent || '';\n const selectionText = selectionInfo.startContainer.textContent || '';\n \n // If the selection is at the beginning or end, handle those cases\n if (selectionInfo.startOffset === 0) {\n return 0;\n } else if (selectionInfo.startOffset === selectionText.length) {\n return text.length;\n }\n \n // For other cases, try to match based on text content\n console.warn('Selection container not within element, using text matching fallback');\n return selectionInfo.startOffset;\n }\n } catch (error) {\n console.warn('Failed to get cursor position:', error);\n return null;\n }\n }\n\n /**\n * Gets cursor position from mouse coordinates with Shadow DOM support\n */\n static getCursorPositionFromPoint(x: number, y: number, container: HTMLElement, ...shadowRoots: ShadowRoot[]): number | null {\n // Try modern API with shadow root support\n if ('caretPositionFromPoint' in document && document.caretPositionFromPoint) {\n let caretPos: CaretPosition | null = null;\n \n // Try with shadow roots first (newer API)\n try {\n caretPos = (document.caretPositionFromPoint as any)(x, y, ...shadowRoots);\n } catch (e) {\n // Fallback to standard API without shadow roots\n caretPos = document.caretPositionFromPoint(x, y);\n }\n \n if (caretPos && container.contains(caretPos.offsetNode)) {\n // Calculate total offset within the container\n return this.getOffsetInElement(caretPos.offsetNode, caretPos.offset, container);\n }\n }\n \n // Safari/WebKit fallback\n if ('caretRangeFromPoint' in document) {\n const range = (document as any).caretRangeFromPoint(x, y);\n if (range && container.contains(range.startContainer)) {\n return this.getOffsetInElement(range.startContainer, range.startOffset, container);\n }\n }\n \n return null;\n }\n \n /**\n * Helper to get the total character offset of a position within an element\n */\n private static getOffsetInElement(node: Node, offset: number, container: HTMLElement): number {\n let totalOffset = 0;\n let found = false;\n \n const walker = document.createTreeWalker(\n container,\n NodeFilter.SHOW_TEXT,\n null\n );\n \n let textNode: Node | null;\n while (textNode = walker.nextNode()) {\n if (textNode === node) {\n totalOffset += offset;\n found = true;\n break;\n } else {\n totalOffset += textNode.textContent?.length || 0;\n }\n }\n \n return found ? totalOffset : 0;\n }\n\n /**\n * Sets cursor position in an element\n */\n static setCursorPosition(element: Element, position: number): void {\n const walker = document.createTreeWalker(\n element,\n NodeFilter.SHOW_TEXT,\n null\n );\n\n let currentPosition = 0;\n let targetNode: Text | null = null;\n let targetOffset = 0;\n\n while (walker.nextNode()) {\n const node = walker.currentNode as Text;\n const nodeLength = node.textContent?.length || 0;\n \n if (currentPosition + nodeLength >= position) {\n targetNode = node;\n targetOffset = position - currentPosition;\n break;\n }\n \n currentPosition += nodeLength;\n }\n\n if (targetNode) {\n const range = document.createRange();\n range.setStart(targetNode, targetOffset);\n range.collapse(true);\n this.setSelectionFromRange(range);\n }\n }\n\n /**\n * Check if a node is contained within an element across Shadow DOM boundaries\n * This is needed because element.contains() doesn't work across Shadow DOM\n */\n static containsAcrossShadowDOM(container: Node, node: Node): boolean {\n if (!container || !node) return false;\n \n // Start with the node and traverse up\n let current: Node | null = node;\n \n while (current) {\n // Direct match\n if (current === container) {\n return true;\n }\n \n // If we're at a shadow root, check its host\n if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE && (current as any).host) {\n const shadowRoot = current as ShadowRoot;\n // Check if the container is within this shadow root\n if (shadowRoot.contains(container)) {\n return false; // Container is in a child shadow DOM\n }\n // Move to the host element\n current = shadowRoot.host;\n } else {\n // Regular DOM traversal\n current = current.parentNode;\n }\n }\n \n return false;\n }\n}", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport { WysiwygSelection } from './wysiwyg.selection.js';\n\nexport interface IFormatButton {\n command: string;\n icon: string;\n label: string;\n shortcut?: string;\n action?: () => void;\n}\n\n/**\n * Handles text formatting with smart toggle behavior:\n * - If selection contains ANY instance of a format, removes ALL instances\n * - If selection has no formatting, applies the format\n * - Works correctly with Shadow DOM using range-based operations\n */\nexport class WysiwygFormatting {\n static readonly formatButtons: IFormatButton[] = [\n { command: 'bold', icon: 'B', label: 'Bold', shortcut: '\u2318B' },\n { command: 'italic', icon: 'I', label: 'Italic', shortcut: '\u2318I' },\n { command: 'underline', icon: 'U', label: 'Underline', shortcut: '\u2318U' },\n { command: 'strikeThrough', icon: 'S\u0336', label: 'Strikethrough' },\n { command: 'code', icon: '{ }', label: 'Inline Code' },\n { command: 'link', icon: '\uD83D\uDD17', label: 'Link', shortcut: '\u2318K' },\n ];\n\n static renderFormattingMenu(\n position: { x: number; y: number },\n onFormat: (command: string) => void\n ): TemplateResult {\n return html`\n
{ e.preventDefault(); e.stopPropagation(); }}\"\n @click=\"${(e: MouseEvent) => e.stopPropagation()}\"\n >\n ${this.formatButtons.map(button => html`\n \n `)}\n
\n `;\n }\n\n static applyFormat(command: string, value?: string, range?: Range, shadowRoots?: ShadowRoot[]): boolean {\n // If range is provided, use it directly (Shadow DOM case)\n // Otherwise fall back to window.getSelection()\n let workingRange: Range;\n \n if (range) {\n workingRange = range;\n } else {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return false;\n workingRange = selection.getRangeAt(0);\n }\n \n // Apply format based on command\n switch (command) {\n case 'bold':\n this.wrapSelection(workingRange, 'strong');\n break;\n \n case 'italic':\n this.wrapSelection(workingRange, 'em');\n break;\n \n case 'underline':\n this.wrapSelection(workingRange, 'u');\n break;\n \n case 'strikeThrough':\n this.wrapSelection(workingRange, 's');\n break;\n \n case 'code':\n this.wrapSelection(workingRange, 'code');\n break;\n \n case 'link':\n // Don't use prompt - return false to indicate we need async input\n if (!value) {\n return false;\n }\n this.wrapSelectionWithLink(workingRange, value);\n break;\n }\n \n // If we have shadow roots, use our Shadow DOM selection utility\n if (shadowRoots && shadowRoots.length > 0) {\n WysiwygSelection.setSelectionFromRange(workingRange);\n } else {\n // Regular selection restoration\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(workingRange);\n }\n }\n \n return true;\n }\n \n private static wrapSelection(range: Range, tagName: string): void {\n const selection = window.getSelection();\n if (!selection) return;\n \n // Check if ANY part of the selection contains this formatting\n const hasFormatting = this.selectionContainsTag(range, tagName);\n \n if (hasFormatting) {\n // Remove all instances of this tag from the selection\n this.removeTagFromSelection(range, tagName);\n } else {\n // Wrap selection with the tag\n const wrapper = document.createElement(tagName);\n try {\n // Extract and wrap contents\n const contents = range.extractContents();\n wrapper.appendChild(contents);\n range.insertNode(wrapper);\n \n // Select the wrapped content\n range.selectNodeContents(wrapper);\n selection.removeAllRanges();\n selection.addRange(range);\n } catch (e) {\n console.error('Failed to wrap selection:', e);\n }\n }\n }\n \n /**\n * Check if the selection contains or is within any instances of a tag\n */\n private static selectionContainsTag(range: Range, tagName: string): boolean {\n // First check: Are we inside a tag? (even if selection doesn't include the tag)\n let node: Node | null = range.startContainer;\n \n while (node && node !== range.commonAncestorContainer.ownerDocument) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n if (element.tagName.toLowerCase() === tagName) {\n return true;\n }\n }\n node = node.parentNode;\n }\n \n // Also check the end container\n node = range.endContainer;\n \n while (node && node !== range.commonAncestorContainer.ownerDocument) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n if (element.tagName.toLowerCase() === tagName) {\n return true;\n }\n }\n node = node.parentNode;\n }\n \n // Second check: Does the selection contain any complete tags?\n const tempDiv = document.createElement('div');\n const contents = range.cloneContents();\n tempDiv.appendChild(contents);\n const tags = tempDiv.getElementsByTagName(tagName);\n \n return tags.length > 0;\n }\n \n /**\n * Remove all instances of a tag from the selection\n */\n private static removeTagFromSelection(range: Range, tagName: string): void {\n const selection = window.getSelection();\n if (!selection) return;\n \n // Special handling: Check if we need to expand the selection to include parent tags\n let expandedRange = range.cloneRange();\n \n // Check if start is inside a tag\n let startNode: Node | null = range.startContainer;\n let startTag: Element | null = null;\n while (startNode && startNode !== range.commonAncestorContainer.ownerDocument) {\n if (startNode.nodeType === Node.ELEMENT_NODE && (startNode as Element).tagName.toLowerCase() === tagName) {\n startTag = startNode as Element;\n break;\n }\n startNode = startNode.parentNode;\n }\n \n // Check if end is inside a tag\n let endNode: Node | null = range.endContainer;\n let endTag: Element | null = null;\n while (endNode && endNode !== range.commonAncestorContainer.ownerDocument) {\n if (endNode.nodeType === Node.ELEMENT_NODE && (endNode as Element).tagName.toLowerCase() === tagName) {\n endTag = endNode as Element;\n break;\n }\n endNode = endNode.parentNode;\n }\n \n // Expand range to include the tags if needed\n if (startTag) {\n expandedRange.setStartBefore(startTag);\n }\n if (endTag) {\n expandedRange.setEndAfter(endTag);\n }\n \n // Extract the contents using the expanded range\n const fragment = expandedRange.extractContents();\n \n // Process the fragment to remove tags\n const processedFragment = this.removeTagsFromFragment(fragment, tagName);\n \n // Insert the processed content back\n expandedRange.insertNode(processedFragment);\n \n // Restore selection to match the original selection intent\n // Find the text nodes that correspond to the original selection\n const textNodes: Node[] = [];\n const walker = document.createTreeWalker(\n processedFragment,\n NodeFilter.SHOW_TEXT,\n null\n );\n \n let node;\n while (node = walker.nextNode()) {\n textNodes.push(node);\n }\n \n if (textNodes.length > 0) {\n const newRange = document.createRange();\n newRange.setStart(textNodes[0], 0);\n newRange.setEnd(textNodes[textNodes.length - 1], textNodes[textNodes.length - 1].textContent?.length || 0);\n selection.removeAllRanges();\n selection.addRange(newRange);\n }\n }\n \n /**\n * Remove all instances of a tag from a document fragment\n */\n private static removeTagsFromFragment(fragment: DocumentFragment, tagName: string): DocumentFragment {\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(fragment);\n \n // Find all instances of the tag\n const tags = tempDiv.getElementsByTagName(tagName);\n \n // Convert to array to avoid live collection issues\n const tagArray = Array.from(tags);\n \n // Unwrap each tag\n tagArray.forEach(tag => {\n const parent = tag.parentNode;\n if (parent) {\n // Move all children out of the tag\n while (tag.firstChild) {\n parent.insertBefore(tag.firstChild, tag);\n }\n // Remove the empty tag\n parent.removeChild(tag);\n }\n });\n \n // Create a new fragment from the processed content\n const newFragment = document.createDocumentFragment();\n while (tempDiv.firstChild) {\n newFragment.appendChild(tempDiv.firstChild);\n }\n \n return newFragment;\n }\n \n private static wrapSelectionWithLink(range: Range, url: string): void {\n const selection = window.getSelection();\n if (!selection) return;\n \n // First remove any existing links in the selection\n if (this.selectionContainsTag(range, 'a')) {\n this.removeTagFromSelection(range, 'a');\n // Re-get the range after modification\n if (selection.rangeCount > 0) {\n range = selection.getRangeAt(0);\n }\n }\n \n const link = document.createElement('a');\n link.href = url;\n link.target = '_blank';\n link.rel = 'noopener noreferrer';\n \n try {\n const contents = range.extractContents();\n link.appendChild(contents);\n range.insertNode(link);\n \n // Select the link\n range.selectNodeContents(link);\n selection.removeAllRanges();\n selection.addRange(range);\n } catch (e) {\n console.error('Failed to create link:', e);\n }\n }\n\n static getSelectionCoordinates(...shadowRoots: ShadowRoot[]): { x: number, y: number } | null {\n // Get selection info using the new utility that handles Shadow DOM\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n console.log('getSelectionCoordinates - selectionInfo:', selectionInfo);\n \n if (!selectionInfo) {\n console.log('No selection info available');\n return null;\n }\n\n // Create a range from the selection info to get bounding rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n console.log('Range rect:', rect);\n \n if (rect.width === 0 && rect.height === 0) {\n console.log('Rect width and height are 0, trying different approach');\n // Sometimes the rect is collapsed, let's try getting the caret position\n if ('caretPositionFromPoint' in document) {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const tempSpan = document.createElement('span');\n tempSpan.textContent = '\\u200B'; // Zero-width space\n range.insertNode(tempSpan);\n const spanRect = tempSpan.getBoundingClientRect();\n tempSpan.remove();\n \n if (spanRect.width > 0 || spanRect.height > 0) {\n const coords = {\n x: spanRect.left,\n y: Math.max(45, spanRect.top - 45)\n };\n console.log('Used span trick for coords:', coords);\n return coords;\n }\n }\n }\n return null;\n }\n\n const coords = {\n x: rect.left + (rect.width / 2),\n y: Math.max(45, rect.top - 45) // Position above selection, but ensure it's not negative\n };\n \n console.log('Returning coords:', coords);\n return coords;\n }\n}", "import {\n customElement,\n html,\n DeesElement,\n type TemplateResult,\n cssManager,\n css,\n state,\n} from '@design.estate/dees-element';\nimport { zIndexRegistry } from '../../00zindex.js';\n\nimport { WysiwygFormatting } from './wysiwyg.formatting.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-formatting-menu': DeesFormattingMenu;\n }\n}\n\n@customElement('dees-formatting-menu')\nexport class DeesFormattingMenu extends DeesElement {\n private static instance: DeesFormattingMenu;\n \n public static getInstance(): DeesFormattingMenu {\n if (!DeesFormattingMenu.instance) {\n DeesFormattingMenu.instance = new DeesFormattingMenu();\n document.body.appendChild(DeesFormattingMenu.instance);\n }\n return DeesFormattingMenu.instance;\n }\n\n @state()\n accessor visible: boolean = false;\n\n @state()\n accessor position: { x: number; y: number } = { x: 0, y: 0 };\n\n @state()\n accessor menuZIndex: number = 1000;\n\n private callback: ((command: string) => void | Promise) | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: fixed;\n pointer-events: none;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n }\n\n .formatting-menu {\n position: fixed;\n background: ${cssManager.bdTheme('#ffffff', '#262626')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#404040')};\n border-radius: 6px;\n box-shadow: 0 2px 16px rgba(0, 0, 0, 0.15);\n padding: 4px;\n display: flex;\n gap: 2px;\n pointer-events: auto;\n user-select: none;\n animation: fadeInScale 0.15s ease-out;\n }\n\n @keyframes fadeInScale {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(5px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n .format-button {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#000000', '#e0e0e0')};\n font-weight: 600;\n font-size: 14px;\n position: relative;\n }\n\n .format-button:hover {\n background: ${cssManager.bdTheme('#f0f0f0', '#333333')};\n color: ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n }\n\n .format-button:active {\n transform: scale(0.95);\n }\n\n .format-button.bold {\n font-weight: 700;\n }\n\n .format-button.italic {\n font-style: italic;\n }\n\n .format-button.underline {\n text-decoration: underline;\n }\n\n .format-button .code-icon {\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 12px;\n }\n `,\n ];\n\n render(): TemplateResult {\n if (!this.visible) return html``;\n\n // Apply z-index to host element\n this.style.zIndex = this.menuZIndex.toString();\n\n return html`\n
\n ${WysiwygFormatting.formatButtons.map(button => html`\n \n `)}\n
\n `;\n }\n\n private applyFormat(command: string): void {\n if (this.callback) {\n this.callback(command);\n }\n // Don't hide menu after applying format (except for link)\n if (command === 'link') {\n this.hide();\n }\n }\n\n public show(position: { x: number; y: number }, callback: (command: string) => void | Promise): void {\n console.log('FormattingMenu.show called:', { position, visible: this.visible });\n this.position = position;\n this.callback = callback;\n \n // Get z-index from registry and apply immediately\n this.menuZIndex = zIndexRegistry.getNextZIndex();\n zIndexRegistry.register(this, this.menuZIndex);\n this.style.zIndex = this.menuZIndex.toString();\n \n this.visible = true;\n }\n\n public hide(): void {\n this.visible = false;\n this.callback = null;\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n }\n\n public updatePosition(position: { x: number; y: number }): void {\n this.position = position;\n }\n \n public firstUpdated(): void {\n // Set up event delegation for the menu\n this.shadowRoot?.addEventListener('mousedown', (e: MouseEvent) => {\n const menu = this.shadowRoot?.querySelector('.formatting-menu');\n if (menu && menu.contains(e.target as Node)) {\n // Prevent focus loss\n e.preventDefault();\n e.stopPropagation();\n }\n });\n \n this.shadowRoot?.addEventListener('click', (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const button = target.closest('.format-button') as HTMLElement;\n \n if (button) {\n e.preventDefault();\n e.stopPropagation();\n \n const command = button.getAttribute('data-command');\n if (command) {\n this.applyFormat(command);\n }\n }\n });\n \n this.shadowRoot?.addEventListener('focus', (e: FocusEvent) => {\n const menu = this.shadowRoot?.querySelector('.formatting-menu');\n if (menu && menu.contains(e.target as Node)) {\n // Prevent menu from taking focus\n e.preventDefault();\n e.stopPropagation();\n }\n }, true); // Use capture phase\n }\n}", "import { type TemplateResult } from '@design.estate/dees-element';\nimport { type IBlock } from './wysiwyg.types.js';\nimport { DeesSlashMenu } from './dees-slash-menu.js';\nimport { DeesFormattingMenu } from './dees-formatting-menu.js';\n\n/**\n * Interface for the main wysiwyg component\n */\nexport interface IWysiwygComponent {\n // State\n blocks: IBlock[];\n selectedBlockId: string | null;\n shadowRoot: ShadowRoot | null;\n editorContentRef: HTMLDivElement;\n draggedBlockId: string | null;\n dragOverBlockId: string | null;\n dragOverPosition: 'before' | 'after' | null;\n isComposing: boolean;\n \n // Menus\n slashMenu: DeesSlashMenu;\n formattingMenu: DeesFormattingMenu;\n \n // Methods\n updateValue(): void;\n requestUpdate(): void;\n updateComplete: Promise;\n insertBlock(type: string): Promise;\n closeSlashMenu(clearSlash?: boolean): void;\n applyFormat(command: string): Promise;\n handleSlashMenuKeyboard(e: KeyboardEvent): void;\n createBlockElement(block: IBlock): HTMLElement;\n updateBlockElement(blockId: string): void;\n handleDrop(e: DragEvent, targetBlock: IBlock): void;\n renderBlocksProgrammatically(): void;\n saveToHistory(debounce?: boolean): void;\n \n // Handlers\n blockOperations: IBlockOperations;\n}\n\n/**\n * Interface for block operations\n */\nexport interface IBlockOperations {\n createBlock(type?: IBlock['type'], content?: string, metadata?: any): IBlock;\n insertBlockAfter(afterBlock: IBlock, newBlock: IBlock, focusNewBlock?: boolean): Promise;\n removeBlock(blockId: string): void;\n findBlock(blockId: string): IBlock | undefined;\n getBlockIndex(blockId: string): number;\n focusBlock(blockId: string, cursorPosition?: 'start' | 'end' | number): Promise;\n updateBlockContent(blockId: string, content: string): void;\n transformBlock(blockId: string, newType: IBlock['type'], metadata?: any): void;\n moveBlock(blockId: string, targetIndex: number): void;\n getPreviousBlock(blockId: string): IBlock | null;\n getNextBlock(blockId: string): IBlock | null;\n}\n\n/**\n * Interface for block component\n */\nexport interface IWysiwygBlockComponent {\n block: IBlock;\n isSelected: boolean;\n blockElement: HTMLDivElement | null;\n \n focus(): void;\n focusWithCursor(position: 'start' | 'end' | number): void;\n getContent(): string;\n setContent(content: string): void;\n setCursorToStart(): void;\n setCursorToEnd(): void;\n focusListItem(): void;\n getSplitContent(splitPosition: number): { before: string; after: string };\n}\n\n/**\n * Event handler interfaces\n */\nexport interface IBlockEventHandlers {\n onInput: (e: InputEvent) => void;\n onKeyDown: (e: KeyboardEvent) => void;\n onFocus: () => void;\n onBlur: () => void;\n onCompositionStart: () => void;\n onCompositionEnd: () => void;\n onMouseUp?: (e: MouseEvent) => void;\n onRequestUpdate?: () => void; // Request immediate re-render of the block\n}", "/**\n * Shared constants for the WYSIWYG editor\n */\n\n/**\n * Available programming languages for code blocks\n */\nexport const PROGRAMMING_LANGUAGES = [\n 'JavaScript',\n 'TypeScript', \n 'Python',\n 'Java',\n 'C++',\n 'C#',\n 'Go',\n 'Rust',\n 'HTML',\n 'CSS',\n 'SQL',\n 'Shell',\n 'JSON',\n 'YAML',\n 'Markdown',\n 'Plain Text'\n] as const;\n\nexport type ProgrammingLanguage = typeof PROGRAMMING_LANGUAGES[number];", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const wysiwygStyles = css`\n :host {\n display: block;\n position: relative;\n }\n\n .wysiwyg-container {\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 6px;\n min-height: 200px;\n padding: 24px;\n position: relative;\n transition: all 0.2s ease;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .wysiwyg-container:hover {\n border-color: ${cssManager.bdTheme('#d1d5db', '#3f3f46')};\n }\n\n .wysiwyg-container:focus-within {\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('#f4f4f5', '#18181b')}, 0 0 0 4px ${cssManager.bdTheme('rgba(59, 130, 246, 0.5)', 'rgba(59, 130, 246, 0.5)')};\n border-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n /* Visual hint for text selection */\n .editor-content:hover {\n cursor: text;\n }\n\n .editor-content {\n outline: none;\n min-height: 160px;\n margin: 0 -8px;\n padding: 0 8px;\n }\n\n .block {\n margin: 0;\n padding: 4px 0;\n position: relative;\n transition: all 0.15s ease;\n min-height: 1.6em;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n /* First and last blocks don't need extra spacing */\n .block-wrapper:first-child .block {\n margin-top: 0 !important;\n }\n\n .block-wrapper:last-child .block {\n margin-bottom: 0;\n }\n\n .block.selected {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.05)', 'rgba(59, 130, 246, 0.05)')};\n outline: 2px solid ${cssManager.bdTheme('rgba(59, 130, 246, 0.2)', 'rgba(59, 130, 246, 0.2)')};\n outline-offset: -2px;\n border-radius: 4px;\n margin-left: -8px;\n margin-right: -8px;\n padding-left: 8px;\n padding-right: 8px;\n }\n\n .block[contenteditable] {\n outline: none;\n }\n\n .block.paragraph {\n font-size: 16px;\n line-height: 1.6;\n font-weight: 400;\n }\n\n .block.paragraph:empty::before {\n content: \"Type '/' for commands...\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-size: 16px;\n line-height: 1.6;\n font-weight: 400;\n }\n\n .block.heading-1 {\n font-size: 32px;\n font-weight: 700;\n line-height: 1.2;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .block.heading-1:empty::before {\n content: \"Heading 1\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-size: 32px;\n line-height: 1.2;\n font-weight: 700;\n }\n\n .block.heading-2 {\n font-size: 24px;\n font-weight: 600;\n line-height: 1.3;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .block.heading-2:empty::before {\n content: \"Heading 2\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-size: 24px;\n line-height: 1.3;\n font-weight: 600;\n }\n\n .block.heading-3 {\n font-size: 20px;\n font-weight: 600;\n line-height: 1.4;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .block.heading-3:empty::before {\n content: \"Heading 3\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-size: 20px;\n line-height: 1.4;\n font-weight: 600;\n }\n\n .block.quote {\n border-left: 2px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n padding-left: 20px;\n font-style: italic;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n margin-left: 0;\n margin-right: 0;\n line-height: 1.6;\n }\n\n .block.quote:empty::before {\n content: \"Quote\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-size: 16px;\n line-height: 1.6;\n font-weight: 400;\n font-style: italic;\n }\n\n .code-block-container {\n position: relative;\n margin: 20px 0;\n }\n\n .code-language {\n position: absolute;\n top: 0;\n right: 0;\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n padding: 4px 12px;\n font-size: 12px;\n border-radius: 0 4px 0 4px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n text-transform: lowercase;\n z-index: 1;\n }\n\n .block.code {\n background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 4px;\n padding: 16px;\n padding-top: 32px; /* Make room for language indicator */\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 14px;\n line-height: 1.5;\n white-space: pre-wrap;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n overflow-x: auto;\n }\n\n .block.code:empty::before {\n content: \"// Code block\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 14px;\n line-height: 1.6;\n font-weight: 400;\n }\n\n .block.list {\n padding-left: 0;\n }\n\n .block.list ul,\n .block.list ol {\n margin: 0;\n padding: 0 0 0 24px;\n list-style-position: outside;\n }\n\n .block.list ul {\n list-style: disc;\n }\n\n .block.list ol {\n list-style: decimal;\n }\n\n .block.list li {\n margin-bottom: 8px;\n line-height: 1.6;\n }\n\n .block.list li:last-child {\n margin-bottom: 0;\n }\n\n .block.divider {\n text-align: center;\n padding: 20px 0;\n cursor: default;\n pointer-events: none;\n }\n\n .block.divider hr {\n border: none;\n border-top: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n margin: 0;\n }\n\n .slash-menu {\n position: absolute;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 4px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n padding: 4px;\n z-index: 1000;\n min-width: 220px;\n max-height: 300px;\n overflow-y: auto;\n pointer-events: auto;\n user-select: none;\n }\n\n .slash-menu-item {\n padding: 8px 10px;\n cursor: pointer;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n gap: 12px;\n border-radius: 3px;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n font-size: 14px;\n }\n\n .slash-menu-item:hover,\n .slash-menu-item.selected {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .slash-menu-item .icon {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n font-weight: 600;\n }\n\n .slash-menu-item:hover .icon,\n .slash-menu-item.selected .icon {\n color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n .toolbar {\n position: absolute;\n top: -40px;\n left: 0;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 4px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n padding: 4px;\n display: none;\n gap: 4px;\n z-index: 1000;\n }\n\n .toolbar.visible {\n display: flex;\n }\n\n .toolbar-button {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 3px;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .toolbar-button:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n /* Drag and Drop Styles */\n .block-wrapper {\n position: relative;\n transition: transform 0.3s ease, opacity 0.2s ease;\n }\n\n /* Ensure proper spacing context for blocks */\n .block-wrapper + .block-wrapper .block {\n margin-top: 16px;\n }\n\n /* Override for headings following other blocks */\n .block-wrapper + .block-wrapper .block.heading-1,\n .block-wrapper + .block-wrapper .block.heading-2,\n .block-wrapper + .block-wrapper .block.heading-3 {\n margin-top: 24px;\n }\n\n /* Code and quote blocks need consistent spacing */\n .block-wrapper + .block-wrapper .block.code,\n .block-wrapper + .block-wrapper .block.quote {\n margin-top: 20px;\n }\n\n .drag-handle {\n position: absolute;\n left: -28px;\n top: 50%;\n transform: translateY(-50%);\n width: 24px;\n height: 24px;\n cursor: grab;\n opacity: 0;\n transition: opacity 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n border-radius: 4px;\n }\n\n .drag-handle::before {\n content: \"\u22EE\u22EE\";\n font-size: 12px;\n letter-spacing: -2px;\n }\n\n .block-wrapper:hover .drag-handle {\n opacity: 1;\n }\n\n .drag-handle:hover {\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n }\n\n .drag-handle:active {\n cursor: grabbing;\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n }\n\n .block-wrapper.dragging {\n opacity: 0.8;\n pointer-events: none;\n position: relative;\n z-index: 2001;\n transition: none !important;\n }\n\n\n /* Blocks that should move out of the way */\n .block-wrapper.move-down {\n transform: translateY(var(--drag-offset, 0px));\n }\n\n .block-wrapper.move-up {\n transform: translateY(calc(-1 * var(--drag-offset, 0px)));\n }\n\n /* Drop indicator */\n .drop-indicator {\n position: absolute;\n left: 0;\n right: 0;\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.05)', 'rgba(59, 130, 246, 0.05)')};\n border: 2px dashed ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n border-radius: 4px;\n transition: top 0.2s ease, height 0.2s ease;\n pointer-events: none;\n z-index: 1999;\n box-sizing: border-box;\n }\n\n /* Remove old drag-over styles */\n .block-wrapper.drag-over-before,\n .block-wrapper.drag-over-after {\n /* No longer needed, using drop indicator instead */\n }\n\n .editor-content.dragging * {\n user-select: none;\n }\n\n /* Block Settings Button - Removed in favor of context menu */\n\n /* Text Selection Styles */\n .block ::selection {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.2)', 'rgba(59, 130, 246, 0.2)')};\n color: inherit;\n }\n\n /* Formatting Menu */\n .formatting-menu {\n position: absolute;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 4px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n padding: 4px;\n display: flex;\n gap: 2px;\n z-index: 1001;\n animation: fadeInScale 0.15s ease-out;\n }\n\n @keyframes fadeInScale {\n from {\n opacity: 0;\n transform: scale(0.98) translateY(2px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n .format-button {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 3px;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n font-weight: 600;\n font-size: 14px;\n position: relative;\n }\n\n .format-button:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n .format-button:active {\n transform: scale(0.95);\n }\n\n .format-button.bold {\n font-weight: 700;\n }\n\n .format-button.italic {\n font-style: italic;\n }\n\n .format-button.underline {\n text-decoration: underline;\n }\n\n .format-button .code-icon {\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 12px;\n }\n\n /* Applied format styles in content */\n .block strong,\n .block b {\n font-weight: 600;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .block em,\n .block i {\n font-style: italic;\n }\n\n .block u {\n text-decoration: underline;\n }\n\n .block strike,\n .block s {\n text-decoration: line-through;\n opacity: 0.7;\n }\n\n .block code {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n padding: 2px 6px;\n border-radius: 3px;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 0.9em;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .block a {\n color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n text-decoration: none;\n border-bottom: 1px solid transparent;\n transition: border-color 0.15s ease;\n }\n\n .block a:hover {\n border-bottom-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n`;", "import { type IBlock } from './wysiwyg.types.js';\n\nexport class WysiwygConverters {\n static escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n\n static formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n\n static getHtmlOutput(blocks: IBlock[]): string {\n return blocks.map(block => {\n // Check if content already contains HTML formatting\n const content = block.content.includes('<') && block.content.includes('>') \n ? block.content // Already contains HTML formatting\n : this.escapeHtml(block.content);\n \n switch (block.type) {\n case 'paragraph':\n return block.content ? `

${content}

` : '';\n case 'heading-1':\n return `

${content}

`;\n case 'heading-2':\n return `

${content}

`;\n case 'heading-3':\n return `

${content}

`;\n case 'quote':\n return `
${content}
`;\n case 'code':\n return `
${this.escapeHtml(block.content)}
`;\n case 'list':\n const items = block.content.split('\\n').filter(item => item.trim());\n if (items.length > 0) {\n const listTag = block.metadata?.listType === 'ordered' ? 'ol' : 'ul';\n // Don't escape HTML in list items to preserve formatting\n return `<${listTag}>${items.map(item => `
  • ${item}
  • `).join('')}`;\n }\n return '';\n case 'divider':\n return '
    ';\n case 'image':\n const imageUrl = block.metadata?.url;\n if (imageUrl) {\n const altText = this.escapeHtml(block.content || 'Image');\n return `\"${altText}\"`;\n }\n return '';\n case 'youtube':\n const videoId = block.metadata?.videoId;\n if (videoId) {\n return ``;\n }\n return '';\n case 'markdown':\n // Return the raw markdown content wrapped in a div\n return `
    ${this.escapeHtml(block.content)}
    `;\n case 'html':\n // Return the raw HTML content (already HTML)\n return block.content;\n case 'attachment':\n const files = block.metadata?.files || [];\n if (files.length > 0) {\n return `
    ${files.map((file: any) => \n `
    \n ${this.escapeHtml(file.name)}\n (${this.formatFileSize(file.size)})\n
    `\n ).join('')}
    `;\n }\n return '';\n default:\n return `

    ${content}

    `;\n }\n }).filter(html => html !== '').join('\\n');\n }\n\n static getMarkdownOutput(blocks: IBlock[]): string {\n return blocks.map(block => {\n switch (block.type) {\n case 'paragraph':\n return block.content;\n case 'heading-1':\n return `# ${block.content}`;\n case 'heading-2':\n return `## ${block.content}`;\n case 'heading-3':\n return `### ${block.content}`;\n case 'quote':\n return `> ${block.content}`;\n case 'code':\n return `\\`\\`\\`\\n${block.content}\\n\\`\\`\\``;\n case 'list':\n const items = block.content.split('\\n').filter(item => item.trim());\n if (block.metadata?.listType === 'ordered') {\n return items.map((item, index) => `${index + 1}. ${item}`).join('\\n');\n } else {\n return items.map(item => `- ${item}`).join('\\n');\n }\n case 'divider':\n return '---';\n case 'image':\n const imageUrl = block.metadata?.url;\n const altText = block.content || 'Image';\n return imageUrl ? `![${altText}](${imageUrl})` : '';\n case 'youtube':\n const videoId = block.metadata?.videoId;\n const url = block.metadata?.url || (videoId ? `https://youtube.com/watch?v=${videoId}` : '');\n return url ? `[YouTube Video](${url})` : '';\n case 'markdown':\n // Return the raw markdown content\n return block.content;\n case 'html':\n // Return as HTML comment in markdown\n return ``;\n case 'attachment':\n const files = block.metadata?.files || [];\n if (files.length > 0) {\n return files.map((file: any) => `- [${file.name}](${file.data})`).join('\\n');\n }\n return '';\n default:\n return block.content;\n }\n }).filter(md => md !== '').join('\\n\\n');\n }\n\n static parseHtmlToBlocks(html: string): IBlock[] {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n const blocks: IBlock[] = [];\n \n const processNode = (node: Node) => {\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'paragraph',\n content: node.textContent.trim(),\n });\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n const tagName = element.tagName.toLowerCase();\n \n switch (tagName) {\n case 'p':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'paragraph',\n content: element.innerHTML || '',\n });\n break;\n case 'h1':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-1',\n content: element.innerHTML || '',\n });\n break;\n case 'h2':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-2',\n content: element.innerHTML || '',\n });\n break;\n case 'h3':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-3',\n content: element.innerHTML || '',\n });\n break;\n case 'blockquote':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'quote',\n content: element.innerHTML || '',\n });\n break;\n case 'pre':\n case 'code':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'code',\n content: element.textContent || '',\n });\n break;\n case 'ul':\n case 'ol':\n const listItems = Array.from(element.querySelectorAll('li'));\n // Use innerHTML to preserve formatting\n const content = listItems.map(li => li.innerHTML || '').join('\\n');\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'list',\n content: content,\n metadata: { listType: tagName === 'ol' ? 'ordered' : 'bullet' }\n });\n break;\n case 'hr':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'divider',\n content: ' ',\n });\n break;\n case 'img':\n const imgElement = element as HTMLImageElement;\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'image',\n content: imgElement.alt || '',\n metadata: { url: imgElement.src }\n });\n break;\n default:\n // Process children for other elements\n element.childNodes.forEach(child => processNode(child));\n }\n }\n };\n \n doc.body.childNodes.forEach(node => processNode(node));\n return blocks;\n }\n\n static parseMarkdownToBlocks(markdown: string): IBlock[] {\n const lines = markdown.split('\\n');\n const blocks: IBlock[] = [];\n let currentListItems: string[] = [];\n \n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n \n if (line.startsWith('# ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-1',\n content: line.substring(2),\n });\n } else if (line.startsWith('## ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-2',\n content: line.substring(3),\n });\n } else if (line.startsWith('### ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-3',\n content: line.substring(4),\n });\n } else if (line.startsWith('> ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'quote',\n content: line.substring(2),\n });\n } else if (line.startsWith('```')) {\n const codeLines: string[] = [];\n i++;\n while (i < lines.length && !lines[i].startsWith('```')) {\n codeLines.push(lines[i]);\n i++;\n }\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'code',\n content: codeLines.join('\\n'),\n });\n } else if (line.match(/^(\\*|-) /)) {\n currentListItems.push(line.substring(2));\n // Check if next line is not a list item\n if (i === lines.length - 1 || (!lines[i + 1].match(/^(\\*|-) /))) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'list',\n content: currentListItems.join('\\n'),\n metadata: { listType: 'bullet' }\n });\n currentListItems = [];\n }\n } else if (line.match(/^\\d+\\. /)) {\n currentListItems.push(line.replace(/^\\d+\\. /, ''));\n // Check if next line is not a numbered list item\n if (i === lines.length - 1 || (!lines[i + 1].match(/^\\d+\\. /))) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'list',\n content: currentListItems.join('\\n'),\n metadata: { listType: 'ordered' }\n });\n currentListItems = [];\n }\n } else if (line === '---' || line === '***' || line === '___') {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'divider',\n content: ' ',\n });\n } else if (line.match(/^!\\[([^\\]]*)\\]\\(([^\\)]+)\\)$/)) {\n // Parse markdown image syntax ![alt](url)\n const match = line.match(/^!\\[([^\\]]*)\\]\\(([^\\)]+)\\)$/);\n if (match) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'image',\n content: match[1] || '',\n metadata: { url: match[2] }\n });\n }\n } else if (line.trim()) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'paragraph',\n content: line,\n });\n }\n }\n \n return blocks;\n }\n}", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport { type IBlock } from './wysiwyg.types.js';\nimport { WysiwygConverters } from './wysiwyg.converters.js';\n\nexport class WysiwygBlocks {\n static renderListContent(content: string, metadata?: any): string {\n const items = content.split('\\n').filter(item => item.trim());\n if (items.length === 0) return '';\n const listTag = metadata?.listType === 'ordered' ? 'ol' : 'ul';\n // Don't escape HTML to preserve formatting\n return `<${listTag}>${items.map(item => `
  • ${item}
  • `).join('')}`;\n }\n\n static renderBlock(\n block: IBlock,\n isSelected: boolean,\n handlers: {\n onInput: (e: InputEvent) => void;\n onKeyDown: (e: KeyboardEvent) => void;\n onFocus: () => void;\n onBlur: () => void;\n onCompositionStart: () => void;\n onCompositionEnd: () => void;\n onMouseUp?: (e: MouseEvent) => void;\n }\n ): TemplateResult {\n if (block.type === 'divider') {\n return html`\n \n
    \n \n `;\n }\n\n if (block.type === 'list') {\n return html`\n {\n console.log('Block mouseup event fired');\n if (handlers.onMouseUp) handlers.onMouseUp(e);\n }}\"\n .innerHTML=\"${this.renderListContent(block.content, block.metadata)}\"\n >\n `;\n }\n \n // Special rendering for code blocks with language indicator\n if (block.type === 'code') {\n const language = block.metadata?.language || 'plain text';\n return html`\n
    \n
    ${language}
    \n {\n console.log('Block mouseup event fired');\n if (handlers.onMouseUp) handlers.onMouseUp(e);\n }}\"\n .textContent=\"${block.content || ''}\"\n >
    \n \n `;\n }\n \n const blockElement = html`\n {\n console.log('Block mouseup event fired');\n if (handlers.onMouseUp) handlers.onMouseUp(e);\n }}\"\n .innerHTML=\"${block.content || ''}\"\n >\n `;\n \n return blockElement;\n }\n\n static setCursorToEnd(element: HTMLElement): void {\n const sel = window.getSelection();\n if (!sel) return;\n \n const range = document.createRange();\n \n // Handle different content types\n if (element.childNodes.length === 0) {\n // Empty element - add a zero-width space to enable cursor\n const textNode = document.createTextNode('\\u200B');\n element.appendChild(textNode);\n range.setStart(textNode, 1);\n range.collapse(true);\n } else {\n // Find the last text node or element\n const lastNode = this.getLastNode(element);\n if (lastNode.nodeType === Node.TEXT_NODE) {\n range.setStart(lastNode, lastNode.textContent?.length || 0);\n } else {\n range.setStartAfter(lastNode);\n }\n range.collapse(true);\n }\n \n sel.removeAllRanges();\n sel.addRange(range);\n \n // Remove zero-width space if it was added\n if (element.textContent === '\\u200B') {\n element.textContent = '';\n }\n }\n\n static setCursorToStart(element: HTMLElement): void {\n const sel = window.getSelection();\n if (!sel) return;\n \n const range = document.createRange();\n \n // Handle different content types\n if (element.childNodes.length === 0) {\n // Empty element\n range.setStart(element, 0);\n range.collapse(true);\n } else {\n // Find the first text node or element\n const firstNode = this.getFirstNode(element);\n if (firstNode.nodeType === Node.TEXT_NODE) {\n range.setStart(firstNode, 0);\n } else {\n range.setStartBefore(firstNode);\n }\n range.collapse(true);\n }\n \n sel.removeAllRanges();\n sel.addRange(range);\n }\n \n private static getLastNode(element: Node): Node {\n if (element.childNodes.length === 0) {\n return element;\n }\n \n const lastChild = element.childNodes[element.childNodes.length - 1];\n if (lastChild.nodeType === Node.TEXT_NODE || lastChild.childNodes.length === 0) {\n return lastChild;\n }\n \n return this.getLastNode(lastChild);\n }\n \n private static getFirstNode(element: Node): Node {\n if (element.childNodes.length === 0) {\n return element;\n }\n \n const firstChild = element.childNodes[0];\n if (firstChild.nodeType === Node.TEXT_NODE || firstChild.childNodes.length === 0) {\n return firstChild;\n }\n \n return this.getFirstNode(firstChild);\n }\n\n static focusListItem(listElement: HTMLElement): void {\n const firstLi = listElement.querySelector('li');\n if (firstLi) {\n firstLi.focus();\n const range = document.createRange();\n const sel = window.getSelection();\n range.selectNodeContents(firstLi);\n range.collapse(true);\n sel!.removeAllRanges();\n sel!.addRange(range);\n }\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { WysiwygBlocks } from './wysiwyg.blocks.js';\n\nexport class WysiwygBlockOperations {\n private component: IWysiwygComponent;\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Creates a new block with the specified parameters\n */\n createBlock(type: IBlock['type'] = 'paragraph', content: string = '', metadata?: any): IBlock {\n return {\n id: WysiwygShortcuts.generateBlockId(),\n type,\n content,\n ...(metadata && { metadata })\n };\n }\n\n /**\n * Inserts a block after the specified block\n */\n async insertBlockAfter(afterBlock: IBlock, newBlock: IBlock, focusNewBlock: boolean = true): Promise {\n const blocks = this.component.blocks;\n const blockIndex = blocks.findIndex((b: IBlock) => b.id === afterBlock.id);\n \n this.component.blocks = [\n ...blocks.slice(0, blockIndex + 1), \n newBlock, \n ...blocks.slice(blockIndex + 1)\n ];\n \n // Insert the new block element programmatically if we have the editor\n if (this.component.editorContentRef) {\n const afterWrapper = this.component.editorContentRef.querySelector(`[data-block-id=\"${afterBlock.id}\"]`);\n if (afterWrapper) {\n const newWrapper = this.component.createBlockElement(newBlock);\n afterWrapper.insertAdjacentElement('afterend', newWrapper);\n }\n }\n \n this.component.updateValue();\n \n if (focusNewBlock && newBlock.type !== 'divider') {\n // Give DOM time to settle\n await new Promise(resolve => setTimeout(resolve, 0));\n \n // Focus the new block\n await this.focusBlock(newBlock.id, 'start');\n }\n }\n\n /**\n * Removes a block by its ID\n */\n removeBlock(blockId: string): void {\n // Save checkpoint before deletion\n this.component.saveToHistory(false);\n \n this.component.blocks = this.component.blocks.filter((b: IBlock) => b.id !== blockId);\n \n // Remove the block element programmatically if we have the editor\n if (this.component.editorContentRef) {\n const wrapper = this.component.editorContentRef.querySelector(`[data-block-id=\"${blockId}\"]`);\n if (wrapper) {\n wrapper.remove();\n }\n }\n \n this.component.updateValue();\n }\n\n /**\n * Finds a block by its ID\n */\n findBlock(blockId: string): IBlock | undefined {\n return this.component.blocks.find((b: IBlock) => b.id === blockId);\n }\n\n /**\n * Gets the index of a block\n */\n getBlockIndex(blockId: string): number {\n return this.component.blocks.findIndex((b: IBlock) => b.id === blockId);\n }\n\n /**\n * Focuses a specific block\n */\n async focusBlock(blockId: string, cursorPosition: 'start' | 'end' | number = 'start'): Promise {\n const wrapperElement = this.component.shadowRoot!.querySelector(`[data-block-id=\"${blockId}\"]`);\n if (wrapperElement) {\n const blockComponent = wrapperElement.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n // Wait a frame to ensure the block is rendered\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Now focus with cursor position\n blockComponent.focusWithCursor(cursorPosition);\n }\n }\n }\n\n /**\n * Updates the content of a block\n */\n updateBlockContent(blockId: string, content: string): void {\n const block = this.findBlock(blockId);\n if (block) {\n block.content = content;\n this.component.updateValue();\n }\n }\n\n /**\n * Transforms a block to a different type\n */\n transformBlock(blockId: string, newType: IBlock['type'], metadata?: any): void {\n const block = this.findBlock(blockId);\n if (block) {\n // Save checkpoint before transformation\n this.component.saveToHistory(false);\n \n block.type = newType;\n block.content = '';\n if (metadata) {\n block.metadata = metadata;\n }\n \n // Update the block element programmatically if we have the editor\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(blockId);\n }\n \n this.component.updateValue();\n }\n }\n\n /**\n * Moves a block to a new position\n */\n moveBlock(blockId: string, targetIndex: number): void {\n const blocks = [...this.component.blocks];\n const currentIndex = this.getBlockIndex(blockId);\n \n if (currentIndex === -1 || targetIndex < 0 || targetIndex >= blocks.length) {\n return;\n }\n \n const [movedBlock] = blocks.splice(currentIndex, 1);\n blocks.splice(targetIndex, 0, movedBlock);\n \n this.component.blocks = blocks;\n this.component.updateValue();\n }\n\n /**\n * Gets the previous block\n */\n getPreviousBlock(blockId: string): IBlock | null {\n const index = this.getBlockIndex(blockId);\n return index > 0 ? this.component.blocks[index - 1] : null;\n }\n\n /**\n * Gets the next block\n */\n getNextBlock(blockId: string): IBlock | null {\n const index = this.getBlockIndex(blockId);\n return index < this.component.blocks.length - 1 ? this.component.blocks[index + 1] : null;\n }\n}", "import type { IBlock } from '../wysiwyg.types.js';\nimport type { IBlockEventHandlers } from '../wysiwyg.interfaces.js';\n\n// Re-export types from the interfaces\nexport type { IBlockEventHandlers } from '../wysiwyg.interfaces.js';\n\nexport interface IBlockContext {\n shadowRoot: ShadowRoot;\n component: any; // Reference to the wysiwyg-block component\n}\n\nexport interface IBlockHandler {\n type: string;\n render(block: IBlock, isSelected: boolean): string;\n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void;\n getStyles(): string;\n getPlaceholder?(): string;\n \n // Optional methods for editable blocks - now with context\n getContent?(element: HTMLElement, context?: IBlockContext): string;\n setContent?(element: HTMLElement, content: string, context?: IBlockContext): void;\n getCursorPosition?(element: HTMLElement, context?: IBlockContext): number | null;\n setCursorToStart?(element: HTMLElement, context?: IBlockContext): void;\n setCursorToEnd?(element: HTMLElement, context?: IBlockContext): void;\n focus?(element: HTMLElement, context?: IBlockContext): void;\n focusWithCursor?(element: HTMLElement, position: 'start' | 'end' | number, context?: IBlockContext): void;\n getSplitContent?(element: HTMLElement, context?: IBlockContext): { before: string; after: string } | null;\n}\n\n\nexport abstract class BaseBlockHandler implements IBlockHandler {\n abstract type: string;\n abstract render(block: IBlock, isSelected: boolean): string;\n \n // Default implementation for common setup\n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n // Common setup logic\n }\n \n // Common styles can be defined here\n getStyles(): string {\n return '';\n }\n}", "import type { IBlockHandler } from './block.base.js';\n\nexport class BlockRegistry {\n private static handlers = new Map();\n \n static register(type: string, handler: IBlockHandler): void {\n this.handlers.set(type, handler);\n }\n \n static getHandler(type: string): IBlockHandler | undefined {\n return this.handlers.get(type);\n }\n \n static getAllTypes(): string[] {\n return Array.from(this.handlers.keys());\n }\n}", "/**\n * Common styles shared across all block types\n */\n\nexport const commonBlockStyles = `\n /* Common block spacing and layout */\n /* TODO: Extract common spacing from existing blocks */\n \n /* Common focus states */\n /* TODO: Extract common focus styles */\n \n /* Common selected states */\n /* TODO: Extract common selection styles */\n \n /* Common hover states */\n /* TODO: Extract common hover styles */\n \n /* Common transition effects */\n /* TODO: Extract common transitions */\n \n /* Common placeholder styles */\n /* TODO: Extract common placeholder styles */\n \n /* Common error states */\n /* TODO: Extract common error styles */\n \n /* Common loading states */\n /* TODO: Extract common loading styles */\n`;\n\n/**\n * Helper function to generate consistent block classes\n */\nexport const getBlockClasses = (\n type: string,\n isSelected: boolean,\n additionalClasses: string[] = []\n): string => {\n const classes = ['block', type];\n if (isSelected) {\n classes.push('selected');\n }\n classes.push(...additionalClasses);\n return classes.join(' ');\n};\n\n/**\n * Helper function to generate consistent data attributes\n */\nexport const getBlockDataAttributes = (\n blockId: string,\n blockType: string,\n additionalAttributes: Record = {}\n): string => {\n const attributes = {\n 'data-block-id': blockId,\n 'data-block-type': blockType,\n ...additionalAttributes\n };\n \n return Object.entries(attributes)\n .map(([key, value]) => `${key}=\"${value}\"`)\n .join(' ');\n};", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class ParagraphBlockHandler extends BaseBlockHandler {\n type = 'paragraph';\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const placeholder = this.getPlaceholder();\n \n \n return `\n \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) {\n console.error('ParagraphBlockHandler.setup: No paragraph block element found');\n return;\n }\n \n \n // Set initial content if needed\n if (block.content && !paragraphBlock.innerHTML) {\n paragraphBlock.innerHTML = block.content;\n }\n \n // Input handler with cursor tracking\n paragraphBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler with cursor tracking\n paragraphBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n paragraphBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n paragraphBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n paragraphBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n paragraphBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n paragraphBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n handlers.onMouseUp?.(e);\n });\n \n // Click handler with delayed cursor tracking\n paragraphBlock.addEventListener('click', (e: MouseEvent) => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler for additional cursor tracking\n paragraphBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection change handler\n this.setupSelectionHandler(element, paragraphBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, paragraphBlock: HTMLDivElement, block: IBlock): void {\n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root - traverse from shadow root\n const wysiwygBlock = (paragraphBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n this.selectionHandler = checkSelection;\n \n // Clean up on disconnect (will be called by dees-wysiwyg-block)\n const wysiwygBlock = element.closest('dees-wysiwyg-block');\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n return `\n /* Paragraph specific styles */\n .block.paragraph {\n font-size: 16px;\n line-height: 1.6;\n font-weight: 400;\n }\n `;\n }\n \n getPlaceholder(): string {\n return \"Type '/' for commands...\";\n }\n \n /**\n * Helper to get the last text node in an element\n */\n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n \n // Helper methods for paragraph functionality\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n // Get the actual paragraph element\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n return null;\n }\n \n if (!WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(paragraphBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n \n return position;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return '';\n \n // For paragraphs, get the innerHTML which includes formatting tags\n const content = paragraphBlock.innerHTML || '';\n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === paragraphBlock || \n element.shadowRoot?.activeElement === paragraphBlock;\n \n paragraphBlock.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n paragraphBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (paragraphBlock) {\n WysiwygBlocks.setCursorToStart(paragraphBlock);\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (paragraphBlock) {\n WysiwygBlocks.setCursorToEnd(paragraphBlock);\n }\n }\n \n focus(element: HTMLElement, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return;\n \n // Ensure the element is focusable\n if (!paragraphBlock.hasAttribute('contenteditable')) {\n paragraphBlock.setAttribute('contenteditable', 'true');\n }\n \n paragraphBlock.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== paragraphBlock && element.shadowRoot?.activeElement !== paragraphBlock) {\n Promise.resolve().then(() => {\n paragraphBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return;\n \n \n // Ensure element is focusable first\n if (!paragraphBlock.hasAttribute('contenteditable')) {\n paragraphBlock.setAttribute('contenteditable', 'true');\n }\n \n // For 'end' position, we need to set up selection before focus to prevent browser default\n if (position === 'end' && paragraphBlock.textContent && paragraphBlock.textContent.length > 0) {\n // Set up the selection first\n const sel = window.getSelection();\n if (sel) {\n const range = document.createRange();\n const lastNode = this.getLastTextNode(paragraphBlock) || paragraphBlock;\n if (lastNode.nodeType === Node.TEXT_NODE) {\n range.setStart(lastNode, lastNode.textContent?.length || 0);\n range.setEnd(lastNode, lastNode.textContent?.length || 0);\n } else {\n range.selectNodeContents(lastNode);\n range.collapse(false);\n }\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n \n // Now focus the element\n paragraphBlock.focus();\n \n // Set cursor position after focus is established (for non-end positions)\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end' && (!paragraphBlock.textContent || paragraphBlock.textContent.length === 0)) {\n // Only call setCursorToEnd for empty blocks\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // Use the selection utility to set cursor position\n WysiwygSelection.setCursorPosition(paragraphBlock, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === paragraphBlock || element.shadowRoot?.activeElement === paragraphBlock) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === paragraphBlock || element.shadowRoot?.activeElement === paragraphBlock) {\n setCursor();\n } else {\n // Try again with a small delay - sometimes focus needs more time\n setTimeout(() => {\n if (document.activeElement === paragraphBlock || element.shadowRoot?.activeElement === paragraphBlock) {\n setCursor();\n }\n }, 10);\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = paragraphBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.startContainer)) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = paragraphBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Get cursor position first\n const cursorPos = this.getCursorPosition(element, context);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n return {\n before: '',\n after: paragraphBlock.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(paragraphBlock, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(paragraphBlock, paragraphBlock.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class HeadingBlockHandler extends BaseBlockHandler {\n type: string;\n private level: 1 | 2 | 3;\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n constructor(type: 'heading-1' | 'heading-2' | 'heading-3') {\n super();\n this.type = type;\n this.level = parseInt(type.split('-')[1]) as 1 | 2 | 3;\n }\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const placeholder = this.getPlaceholder();\n \n \n return `\n \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) {\n console.error('HeadingBlockHandler.setup: No heading block element found');\n return;\n }\n \n \n // Set initial content if needed\n if (block.content && !headingBlock.innerHTML) {\n headingBlock.innerHTML = block.content;\n }\n \n // Input handler with cursor tracking\n headingBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler with cursor tracking\n headingBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n headingBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n headingBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n headingBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n headingBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n headingBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n handlers.onMouseUp?.(e);\n });\n \n // Click handler with delayed cursor tracking\n headingBlock.addEventListener('click', (e: MouseEvent) => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler for additional cursor tracking\n headingBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection change handler\n this.setupSelectionHandler(element, headingBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, headingBlock: HTMLDivElement, block: IBlock): void {\n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root - in setup, we need to traverse\n const wysiwygBlock = (headingBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n this.selectionHandler = checkSelection;\n \n // Clean up on disconnect (will be called by dees-wysiwyg-block)\n const wysiwygBlock = (headingBlock.getRootNode() as ShadowRoot).host as any;\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n // Return styles for all heading levels\n return `\n .block.heading-1 {\n font-size: 32px;\n font-weight: 700;\n line-height: 1.2;\n margin: 24px 0 8px 0;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .block.heading-2 {\n font-size: 24px;\n font-weight: 600;\n line-height: 1.3;\n margin: 20px 0 6px 0;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .block.heading-3 {\n font-size: 20px;\n font-weight: 600;\n line-height: 1.4;\n margin: 16px 0 4px 0;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n `;\n }\n \n getPlaceholder(): string {\n switch(this.level) {\n case 1:\n return 'Heading 1';\n case 2:\n return 'Heading 2';\n case 3:\n return 'Heading 3';\n default:\n return 'Heading';\n }\n }\n \n /**\n * Helper to get the last text node in an element\n */\n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n \n // Helper methods for heading functionality (mostly the same as paragraph)\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n // Get the actual heading element\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n return null;\n }\n \n if (!WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(headingBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n \n return position;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return '';\n \n // For headings, get the innerHTML which includes formatting tags\n const content = headingBlock.innerHTML || '';\n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === headingBlock || \n element.shadowRoot?.activeElement === headingBlock;\n \n headingBlock.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n headingBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (headingBlock) {\n WysiwygBlocks.setCursorToStart(headingBlock);\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (headingBlock) {\n WysiwygBlocks.setCursorToEnd(headingBlock);\n }\n }\n \n focus(element: HTMLElement, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return;\n \n // Ensure the element is focusable\n if (!headingBlock.hasAttribute('contenteditable')) {\n headingBlock.setAttribute('contenteditable', 'true');\n }\n \n headingBlock.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== headingBlock && element.shadowRoot?.activeElement !== headingBlock) {\n Promise.resolve().then(() => {\n headingBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return;\n \n \n // Ensure element is focusable first\n if (!headingBlock.hasAttribute('contenteditable')) {\n headingBlock.setAttribute('contenteditable', 'true');\n }\n \n // For 'end' position, we need to set up selection before focus to prevent browser default\n if (position === 'end' && headingBlock.textContent && headingBlock.textContent.length > 0) {\n // Set up the selection first\n const sel = window.getSelection();\n if (sel) {\n const range = document.createRange();\n const lastNode = this.getLastTextNode(headingBlock) || headingBlock;\n if (lastNode.nodeType === Node.TEXT_NODE) {\n range.setStart(lastNode, lastNode.textContent?.length || 0);\n range.setEnd(lastNode, lastNode.textContent?.length || 0);\n } else {\n range.selectNodeContents(lastNode);\n range.collapse(false);\n }\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n \n // Now focus the element\n headingBlock.focus();\n \n // Set cursor position after focus is established (for non-end positions)\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end' && (!headingBlock.textContent || headingBlock.textContent.length === 0)) {\n // Only call setCursorToEnd for empty blocks\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // Use the selection utility to set cursor position\n WysiwygSelection.setCursorPosition(headingBlock, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === headingBlock || element.shadowRoot?.activeElement === headingBlock) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === headingBlock || element.shadowRoot?.activeElement === headingBlock) {\n setCursor();\n } else {\n // Try again with a small delay - sometimes focus needs more time\n setTimeout(() => {\n if (document.activeElement === headingBlock || element.shadowRoot?.activeElement === headingBlock) {\n setCursor();\n }\n }, 10);\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = headingBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.startContainer)) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = headingBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Get cursor position first\n const cursorPos = this.getCursorPosition(element, context);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n return {\n before: '',\n after: headingBlock.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(headingBlock, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(headingBlock, headingBlock.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class QuoteBlockHandler extends BaseBlockHandler {\n type = 'quote';\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const placeholder = this.getPlaceholder();\n \n \n return `\n \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) {\n console.error('QuoteBlockHandler.setup: No quote block element found');\n return;\n }\n \n // Set initial content if needed\n if (block.content && !quoteBlock.innerHTML) {\n quoteBlock.innerHTML = block.content;\n }\n \n // Input handler with cursor tracking\n quoteBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler with cursor tracking\n quoteBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n quoteBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n quoteBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n quoteBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n quoteBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n quoteBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n handlers.onMouseUp?.(e);\n });\n \n // Click handler with delayed cursor tracking\n quoteBlock.addEventListener('click', (e: MouseEvent) => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler for additional cursor tracking\n quoteBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection change handler\n this.setupSelectionHandler(element, quoteBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, quoteBlock: HTMLDivElement, block: IBlock): void {\n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root - traverse from shadow root\n const wysiwygBlock = (quoteBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n this.selectionHandler = checkSelection;\n \n // Clean up on disconnect (will be called by dees-wysiwyg-block)\n const wysiwygBlock = (quoteBlock.getRootNode() as ShadowRoot).host as any;\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n return `\n /* Quote specific styles */\n .block.quote {\n border-left: 3px solid ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n padding-left: 20px;\n color: ${cssManager.bdTheme('#555', '#b0b0b0')};\n font-style: italic;\n line-height: 1.6;\n margin: 16px 0;\n }\n `;\n }\n \n getPlaceholder(): string {\n return 'Add a quote...';\n }\n \n // Helper methods for quote functionality\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n // Get the actual quote element\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n return null;\n }\n \n if (!WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(quoteBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n \n return position;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return '';\n \n // For quotes, get the innerHTML which includes formatting tags\n const content = quoteBlock.innerHTML || '';\n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === quoteBlock || \n element.shadowRoot?.activeElement === quoteBlock;\n \n quoteBlock.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n quoteBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (quoteBlock) {\n WysiwygBlocks.setCursorToStart(quoteBlock);\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (quoteBlock) {\n WysiwygBlocks.setCursorToEnd(quoteBlock);\n }\n }\n \n focus(element: HTMLElement, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return;\n \n // Ensure the element is focusable\n if (!quoteBlock.hasAttribute('contenteditable')) {\n quoteBlock.setAttribute('contenteditable', 'true');\n }\n \n quoteBlock.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== quoteBlock && element.shadowRoot?.activeElement !== quoteBlock) {\n Promise.resolve().then(() => {\n quoteBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return;\n \n // Ensure element is focusable first\n if (!quoteBlock.hasAttribute('contenteditable')) {\n quoteBlock.setAttribute('contenteditable', 'true');\n }\n \n // Focus the element\n quoteBlock.focus();\n \n // Set cursor position after focus is established\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end') {\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // Use the selection utility to set cursor position\n WysiwygSelection.setCursorPosition(quoteBlock, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === quoteBlock || element.shadowRoot?.activeElement === quoteBlock) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === quoteBlock || element.shadowRoot?.activeElement === quoteBlock) {\n setCursor();\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = quoteBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.startContainer)) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = quoteBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Get cursor position first\n const cursorPos = this.getCursorPosition(element, context);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n return {\n before: '',\n after: quoteBlock.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(quoteBlock, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(quoteBlock, quoteBlock.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\nimport type { HLJSApi } from 'highlight.js';\nimport { cssGeistFontFamily, cssMonoFontFamily } from '../../../../00fonts.js';\nimport { PROGRAMMING_LANGUAGES } from '../../wysiwyg.constants.js';\nimport { DeesServiceLibLoader } from '../../../../../services/index.js';\n\n/**\n * CodeBlockHandler with improved architecture\n * \n * Key features:\n * 1. Simple DOM structure\n * 2. Line number handling\n * 3. Syntax highlighting only when not focused (grey text while editing)\n * 4. Clean event handling\n * 5. Copy button functionality\n */\nexport class CodeBlockHandler extends BaseBlockHandler {\n type = 'code';\n\n private highlightTimer: any = null;\n private highlightJs: HLJSApi | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const language = block.metadata?.language || 'typescript';\n const content = block.content || '';\n const lineCount = content.split('\\n').length;\n \n // Generate line numbers\n let lineNumbersHtml = '';\n for (let i = 1; i <= lineCount; i++) {\n lineNumbersHtml += `
    ${i}
    `;\n }\n \n // Generate language options\n const languageOptions = PROGRAMMING_LANGUAGES.map(lang => {\n const value = lang.toLowerCase();\n return ``;\n }).join('');\n \n return `\n
    \n
    \n \n \n
    \n
    \n
    ${lineNumbersHtml}
    \n
    \n
    ${this.escapeHtml(content)}
    \n
    \n
    \n
    \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n const container = element.querySelector('.code-block-container') as HTMLElement;\n const copyButton = element.querySelector('.copy-button') as HTMLButtonElement;\n const languageSelector = element.querySelector('.language-selector') as HTMLSelectElement;\n \n if (!editor || !container) return;\n \n // Setup language selector\n if (languageSelector) {\n languageSelector.addEventListener('change', (e) => {\n const newLanguage = (e.target as HTMLSelectElement).value;\n block.metadata = { ...block.metadata, language: newLanguage };\n container.setAttribute('data-language', newLanguage);\n \n // Update the syntax highlighting if content exists and not focused\n if (block.content && document.activeElement !== editor) {\n this.applyHighlighting(element, block);\n }\n \n // Notify about the change\n if (handlers.onInput) {\n handlers.onInput(new InputEvent('input'));\n }\n });\n }\n \n // Setup copy button\n if (copyButton) {\n copyButton.addEventListener('click', async () => {\n const content = editor.textContent || '';\n \n try {\n await navigator.clipboard.writeText(content);\n \n // Show feedback\n const copyText = copyButton.querySelector('.copy-text') as HTMLElement;\n const originalText = copyText.textContent;\n copyText.textContent = 'Copied!';\n copyButton.classList.add('copied');\n \n // Reset after 2 seconds\n setTimeout(() => {\n copyText.textContent = originalText;\n copyButton.classList.remove('copied');\n }, 2000);\n } catch (err) {\n console.error('Failed to copy:', err);\n // Fallback for older browsers\n const textArea = document.createElement('textarea');\n textArea.value = content;\n textArea.style.position = 'fixed';\n textArea.style.opacity = '0';\n document.body.appendChild(textArea);\n textArea.select();\n try {\n // @ts-ignore - execCommand is deprecated but needed for fallback\n document.execCommand('copy');\n // Show feedback\n const copyText = copyButton.querySelector('.copy-text') as HTMLElement;\n const originalText = copyText.textContent;\n copyText.textContent = 'Copied!';\n copyButton.classList.add('copied');\n \n setTimeout(() => {\n copyText.textContent = originalText;\n copyButton.classList.remove('copied');\n }, 2000);\n } catch (err) {\n console.error('Fallback copy failed:', err);\n }\n document.body.removeChild(textArea);\n }\n });\n }\n \n // Track if we're currently editing\n let isEditing = false;\n \n // Focus handler\n editor.addEventListener('focus', () => {\n isEditing = true;\n container.classList.add('editing');\n \n // Remove all syntax highlighting when focused\n const content = editor.textContent || '';\n editor.textContent = content; // This removes all HTML formatting\n \n // Restore cursor position after removing highlighting\n requestAnimationFrame(() => {\n const range = document.createRange();\n const selection = window.getSelection();\n if (editor.firstChild) {\n range.setStart(editor.firstChild, 0);\n range.collapse(true);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n });\n \n handlers.onFocus();\n });\n \n // Blur handler\n editor.addEventListener('blur', () => {\n isEditing = false;\n container.classList.remove('editing');\n // Apply final highlighting on blur\n this.applyHighlighting(element, block);\n handlers.onBlur();\n });\n \n // Input handler\n editor.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Update line numbers\n this.updateLineNumbers(element);\n \n // Clear any pending highlight timer (no highlighting while editing)\n clearTimeout(this.highlightTimer);\n });\n \n // Keydown handler\n editor.addEventListener('keydown', (e) => {\n // Handle Tab key for code blocks\n if (e.key === 'Tab') {\n e.preventDefault();\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const textNode = document.createTextNode(' ');\n range.insertNode(textNode);\n range.setStartAfter(textNode);\n range.setEndAfter(textNode);\n selection.removeAllRanges();\n selection.addRange(range);\n handlers.onInput(new InputEvent('input'));\n this.updateLineNumbers(element);\n }\n return;\n }\n \n // Check cursor position for navigation keys\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key)) {\n const cursorPos = this.getCursorPosition(element);\n const textLength = editor.textContent?.length || 0;\n \n // For ArrowLeft at position 0 or ArrowRight at end, let parent handle navigation\n if ((e.key === 'ArrowLeft' && cursorPos === 0) || \n (e.key === 'ArrowRight' && cursorPos === textLength)) {\n // Pass to parent handler for inter-block navigation\n handlers.onKeyDown(e);\n return;\n }\n \n // For ArrowUp/Down, check if we're at first/last line\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n const lines = (editor.textContent || '').split('\\n');\n const currentLine = this.getCurrentLineIndex(editor);\n \n if ((e.key === 'ArrowUp' && currentLine === 0) ||\n (e.key === 'ArrowDown' && currentLine === lines.length - 1)) {\n // Let parent handle navigation to prev/next block\n handlers.onKeyDown(e);\n return;\n }\n }\n }\n \n // Pass other keys to parent handler\n handlers.onKeyDown(e);\n });\n \n // Paste handler - plain text only\n editor.addEventListener('paste', (e) => {\n e.preventDefault();\n const text = e.clipboardData?.getData('text/plain');\n if (text) {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n range.deleteContents();\n const textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.setStartAfter(textNode);\n range.setEndAfter(textNode);\n selection.removeAllRanges();\n selection.addRange(range);\n handlers.onInput(new InputEvent('input'));\n this.updateLineNumbers(element);\n }\n }\n });\n \n // Composition handlers\n editor.addEventListener('compositionstart', () => handlers.onCompositionStart());\n editor.addEventListener('compositionend', () => handlers.onCompositionEnd());\n \n // Initial syntax highlighting if content exists and not focused\n if (block.content && document.activeElement !== editor) {\n requestAnimationFrame(() => {\n this.applyHighlighting(element, block);\n });\n }\n }\n \n private updateLineNumbers(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n const lineNumbersContainer = element.querySelector('.line-numbers') as HTMLElement;\n \n if (!editor || !lineNumbersContainer) return;\n \n const content = editor.textContent || '';\n const lines = content.split('\\n');\n const lineCount = lines.length || 1;\n \n let lineNumbersHtml = '';\n for (let i = 1; i <= lineCount; i++) {\n lineNumbersHtml += `
    ${i}
    `;\n }\n \n lineNumbersContainer.innerHTML = lineNumbersHtml;\n }\n \n private getCurrentLineIndex(editor: HTMLElement): number {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return 0;\n \n const range = selection.getRangeAt(0);\n const preCaretRange = range.cloneRange();\n preCaretRange.selectNodeContents(editor);\n preCaretRange.setEnd(range.startContainer, range.startOffset);\n \n const textBeforeCursor = preCaretRange.toString();\n const linesBeforeCursor = textBeforeCursor.split('\\n');\n \n return linesBeforeCursor.length - 1; // 0-indexed\n }\n \n private async applyHighlighting(element: HTMLElement, block: IBlock): Promise {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return;\n\n // Load highlight.js from CDN if not already loaded\n if (!this.highlightJs) {\n this.highlightJs = await DeesServiceLibLoader.getInstance().loadHighlightJs();\n }\n\n // Store cursor position\n const cursorPos = this.getCursorPosition(element);\n\n // Get plain text content\n const content = editor.textContent || '';\n const language = block.metadata?.language || 'typescript';\n\n // Apply highlighting\n try {\n const result = this.highlightJs.highlight(content, {\n language: language,\n ignoreIllegals: true,\n });\n\n // Only update if we have valid highlighted content\n if (result.value) {\n editor.innerHTML = result.value;\n\n // Restore cursor position if editor is focused\n if (document.activeElement === editor && cursorPos !== null) {\n requestAnimationFrame(() => {\n WysiwygSelection.setCursorPosition(editor, cursorPos);\n });\n }\n }\n } catch (error) {\n // If highlighting fails, keep plain text\n console.warn('Syntax highlighting failed:', error);\n }\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n return editor?.textContent || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return;\n \n editor.textContent = content;\n this.updateLineNumbers(element);\n \n // Apply highlighting if not focused\n if (document.activeElement !== editor) {\n const block: IBlock = {\n id: editor.dataset.blockId || '',\n type: 'code',\n content: content,\n metadata: { \n language: element.querySelector('.code-block-container')?.getAttribute('data-language') || 'typescript'\n }\n };\n this.applyHighlighting(element, block);\n }\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return null;\n \n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return null;\n \n const range = selection.getRangeAt(0);\n if (!editor.contains(range.startContainer)) return null;\n \n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(editor);\n preCaretRange.setEnd(range.startContainer, range.startOffset);\n \n return preCaretRange.toString().length;\n }\n \n setCursorToStart(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (editor) {\n WysiwygSelection.setCursorPosition(editor, 0);\n }\n }\n \n setCursorToEnd(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (editor) {\n const length = editor.textContent?.length || 0;\n WysiwygSelection.setCursorPosition(editor, length);\n }\n }\n \n focus(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n editor?.focus();\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return;\n \n editor.focus();\n \n requestAnimationFrame(() => {\n if (position === 'start') {\n this.setCursorToStart(element);\n } else if (position === 'end') {\n this.setCursorToEnd(element);\n } else if (typeof position === 'number') {\n WysiwygSelection.setCursorPosition(editor, position);\n }\n });\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n const position = this.getCursorPosition(element);\n if (position === null) return null;\n \n const content = this.getContent(element);\n return {\n before: content.substring(0, position),\n after: content.substring(position)\n };\n }\n \n getStyles(): string {\n return `\n /* Code Block Container - Minimalist shadcn style */\n .code-block-container {\n position: relative;\n margin: 12px 0;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n }\n \n .code-block-container.selected {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n .code-block-container.editing {\n border-color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n \n /* Header - Simplified */\n .code-header {\n background: transparent;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n padding: 8px 12px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n \n .language-selector {\n font-size: 12px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n font-weight: 500;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n font-family: ${cssGeistFontFamily};\n background: transparent;\n border: 1px solid transparent;\n border-radius: 4px;\n padding: 4px 8px;\n cursor: pointer;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .language-selector:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#e5e7eb', '#374151')};\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .language-selector:focus {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Copy Button - Minimal */\n .copy-button {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 4px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n font-size: 12px;\n font-family: ${cssGeistFontFamily};\n cursor: pointer;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .copy-button:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#e5e7eb', '#374151')};\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .copy-button:active {\n transform: scale(0.98);\n }\n \n .copy-button.copied {\n color: ${cssManager.bdTheme('#059669', '#10b981')};\n }\n \n .copy-icon {\n flex-shrink: 0;\n opacity: 0.7;\n }\n \n .copy-button:hover .copy-icon {\n opacity: 1;\n }\n \n .copy-text {\n min-width: 40px;\n text-align: center;\n }\n \n /* Code Body */\n .code-body {\n display: flex;\n position: relative;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n \n /* Line Numbers - Subtle */\n .line-numbers {\n flex-shrink: 0;\n padding: 12px 0;\n background: transparent;\n text-align: right;\n user-select: none;\n min-width: 40px;\n border-right: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n }\n \n .line-number {\n padding: 0 12px 0 8px;\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n font-family: ${cssMonoFontFamily};\n font-size: 13px;\n line-height: 20px;\n height: 20px;\n }\n \n /* Code Content */\n .code-content {\n flex: 1;\n overflow-x: auto;\n position: relative;\n }\n \n .code-pre {\n margin: 0;\n padding: 0;\n background: transparent;\n }\n \n .code-editor {\n display: block;\n padding: 12px 16px;\n margin: 0;\n font-family: ${cssMonoFontFamily};\n font-size: 13px;\n line-height: 20px;\n color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n background: transparent;\n border: none;\n outline: none;\n white-space: pre-wrap;\n word-wrap: break-word;\n min-height: 60px;\n overflow: visible;\n }\n \n /* Placeholder */\n .code-editor:empty::before {\n content: \"// Type or paste code here...\";\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n pointer-events: none;\n }\n \n /* When editing (focused), show grey text without highlighting */\n .code-block-container.editing .code-editor {\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')} !important;\n }\n \n .code-block-container.editing .code-editor * {\n color: inherit !important;\n }\n \n /* Syntax Highlighting - Muted colors */\n .code-editor .hljs-keyword {\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n font-weight: 500;\n }\n \n .code-editor .hljs-string {\n color: ${cssManager.bdTheme('#059669', '#10b981')};\n }\n \n .code-editor .hljs-number {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n .code-editor .hljs-function {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n \n .code-editor .hljs-comment {\n color: ${cssManager.bdTheme('#6b7280', '#6b7280')};\n font-style: italic;\n }\n \n .code-editor .hljs-variable,\n .code-editor .hljs-attr {\n color: ${cssManager.bdTheme('#ea580c', '#fb923c')};\n }\n \n .code-editor .hljs-class,\n .code-editor .hljs-title {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n font-weight: 500;\n }\n \n .code-editor .hljs-params {\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .code-editor .hljs-built_in {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n .code-editor .hljs-literal {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n .code-editor .hljs-meta {\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n }\n \n .code-editor .hljs-punctuation {\n color: ${cssManager.bdTheme('#374151', '#d1d5db')};\n }\n \n .code-editor .hljs-tag {\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n }\n \n .code-editor .hljs-attribute {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n \n .code-editor .hljs-selector-tag {\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n }\n \n .code-editor .hljs-selector-class {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n \n .code-editor .hljs-selector-id {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n /* Selection */\n .code-editor::selection,\n .code-editor *::selection {\n background: ${cssManager.bdTheme('rgba(99, 102, 241, 0.2)', 'rgba(99, 102, 241, 0.3)')};\n }\n \n /* Scrollbar styling - Minimal */\n .code-content::-webkit-scrollbar {\n height: 6px;\n }\n \n .code-content::-webkit-scrollbar-track {\n background: transparent;\n }\n \n .code-content::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n border-radius: 3px;\n }\n \n .code-content::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class ListBlockHandler extends BaseBlockHandler {\n type = 'list';\n \n // Track cursor position and list state\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const listType = block.metadata?.listType || 'unordered';\n const listTag = listType === 'ordered' ? 'ol' : 'ul';\n \n // Render list content\n const listContent = this.renderListContent(block.content, block.metadata);\n \n return `\n ${listContent}\n `;\n }\n \n private renderListContent(content: string | undefined, metadata: any): string {\n if (!content) return '
    ';\n \n const listType = metadata?.listType || 'unordered';\n const listTag = listType === 'ordered' ? 'ol' : 'ul';\n \n // Split content by newlines to create list items\n const lines = content.split('\\n').filter(line => line.trim());\n if (lines.length === 0) {\n return `<${listTag}>
  • `;\n }\n \n const listItems = lines.map(line => `
  • ${line}
  • `).join('');\n return `<${listTag}>${listItems}`;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) {\n console.error('ListBlockHandler.setup: No list block element found');\n return;\n }\n \n // Set initial content if needed\n if (block.content && !listBlock.innerHTML) {\n listBlock.innerHTML = this.renderListContent(block.content, block.metadata);\n }\n \n // Input handler\n listBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler\n listBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Special handling for Enter key in lists\n if (e.key === 'Enter' && !e.shiftKey) {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const currentLi = range.startContainer.parentElement?.closest('li');\n \n if (currentLi && currentLi.textContent === '') {\n // Empty list item - exit list mode\n e.preventDefault();\n handlers.onKeyDown(e);\n return;\n }\n // Otherwise, let browser create new list item naturally\n }\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n listBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n listBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n listBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n listBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n listBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n handlers.onMouseUp?.(e);\n });\n \n // Click handler\n listBlock.addEventListener('click', (e: MouseEvent) => {\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler\n listBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection handler\n this.setupSelectionHandler(element, listBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, listBlock: HTMLDivElement, block: IBlock): void {\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root\n const wysiwygBlock = (listBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(listBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(listBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n document.addEventListener('selectionchange', checkSelection);\n this.selectionHandler = checkSelection;\n \n // Cleanup on disconnect\n const wysiwygBlock = (listBlock.getRootNode() as ShadowRoot).host as any;\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n return `\n /* List specific styles */\n .block.list {\n padding: 0;\n }\n \n .block.list ul,\n .block.list ol {\n margin: 0;\n padding-left: 24px;\n }\n \n .block.list li {\n margin: 4px 0;\n line-height: 1.6;\n }\n \n .block.list li:last-child {\n margin-bottom: 0;\n }\n `;\n }\n \n getPlaceholder(): string {\n return '';\n }\n \n // Helper methods for list functionality\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return null;\n \n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return null;\n \n if (!WysiwygSelection.containsAcrossShadowDOM(listBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // For lists, calculate position based on text content\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(listBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n return preCaretRange.toString().length;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return '';\n \n // Extract text content from list items\n const listItems = listBlock.querySelectorAll('li');\n const content = Array.from(listItems)\n .map(li => li.textContent || '')\n .join('\\n');\n \n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n const hadFocus = document.activeElement === listBlock || \n element.shadowRoot?.activeElement === listBlock;\n \n // Get current metadata to preserve list type\n const listElement = listBlock.querySelector('ul, ol');\n const isOrdered = listElement?.tagName === 'OL';\n \n // Update content\n listBlock.innerHTML = this.renderListContent(content, { listType: isOrdered ? 'ordered' : 'unordered' });\n \n if (hadFocus) {\n listBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n const firstLi = listBlock.querySelector('li');\n if (firstLi) {\n const textNode = this.getFirstTextNode(firstLi);\n if (textNode) {\n const range = document.createRange();\n const selection = window.getSelection();\n range.setStart(textNode, 0);\n range.setEnd(textNode, 0);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n const lastLi = listBlock.querySelector('li:last-child');\n if (lastLi) {\n const textNode = this.getLastTextNode(lastLi);\n if (textNode) {\n const range = document.createRange();\n const selection = window.getSelection();\n const textLength = textNode.textContent?.length || 0;\n range.setStart(textNode, textLength);\n range.setEnd(textNode, textLength);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n }\n }\n \n private getFirstTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = 0; i < element.childNodes.length; i++) {\n const firstText = this.getFirstTextNode(element.childNodes[i]);\n if (firstText) return firstText;\n }\n \n return null;\n }\n \n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n \n focus(element: HTMLElement, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n if (!listBlock.hasAttribute('contenteditable')) {\n listBlock.setAttribute('contenteditable', 'true');\n }\n \n listBlock.focus();\n \n if (document.activeElement !== listBlock && element.shadowRoot?.activeElement !== listBlock) {\n Promise.resolve().then(() => {\n listBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n if (!listBlock.hasAttribute('contenteditable')) {\n listBlock.setAttribute('contenteditable', 'true');\n }\n \n listBlock.focus();\n \n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end') {\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // For numeric positions in lists, we need custom logic\n // This is complex due to list structure, so default to end\n this.setCursorToEnd(element, context);\n }\n };\n \n if (document.activeElement === listBlock || element.shadowRoot?.activeElement === listBlock) {\n setCursor();\n } else {\n Promise.resolve().then(() => {\n if (document.activeElement === listBlock || element.shadowRoot?.activeElement === listBlock) {\n setCursor();\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return null;\n \n // For lists, we don't split content - instead let the keyboard handler\n // create a new paragraph block when Enter is pressed on empty list item\n return null;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * ImageBlockHandler - Handles image upload, display, and interactions\n * \n * Features:\n * - Click to upload\n * - Drag and drop support\n * - Base64 encoding (TODO: server upload in production)\n * - Loading states\n * - Alt text from filename\n */\nexport class ImageBlockHandler extends BaseBlockHandler {\n type = 'image';\n \n render(block: IBlock, isSelected: boolean): string {\n const imageUrl = block.metadata?.url;\n const altText = block.content || 'Image';\n const isLoading = block.metadata?.loading;\n \n return `\n
    \n ${isLoading ? this.renderLoading() : \n imageUrl ? this.renderImage(imageUrl, altText) : \n this.renderPlaceholder()}\n \n
    \n `;\n }\n \n private renderPlaceholder(): string {\n return `\n
    \n
    \n \n \n \n \n \n
    \n
    Click to upload an image
    \n
    or drag and drop
    \n
    \n `;\n }\n \n private renderImage(url: string, altText: string): string {\n return `\n
    \n \"${this.escapeHtml(altText)}\"\n
    \n `;\n }\n \n private renderLoading(): string {\n return `\n
    \n
    \n
    Uploading image...
    \n
    \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.image-block-container') as HTMLElement;\n const fileInput = element.querySelector('.image-file-input') as HTMLInputElement;\n \n if (!container) {\n console.error('ImageBlockHandler: Could not find container');\n return;\n }\n \n if (!fileInput) {\n console.error('ImageBlockHandler: Could not find file input');\n return;\n }\n \n // Click to upload (only on placeholder)\n const placeholder = container.querySelector('.image-upload-placeholder');\n if (placeholder) {\n placeholder.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n console.log('ImageBlockHandler: Placeholder clicked, opening file selector');\n fileInput.click();\n });\n }\n \n // Container click for focus\n container.addEventListener('click', () => {\n handlers.onFocus();\n });\n \n // File input change\n fileInput.addEventListener('change', async (e) => {\n const input = e.target as HTMLInputElement;\n const file = input.files?.[0];\n if (file) {\n console.log('ImageBlockHandler: File selected:', file.name);\n await this.handleFileUpload(file, block, handlers);\n }\n });\n \n // Drag and drop\n container.addEventListener('dragover', (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!block.metadata?.url) {\n container.classList.add('drag-over');\n }\n });\n \n container.addEventListener('dragleave', (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n });\n \n container.addEventListener('drop', async (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n \n const file = e.dataTransfer?.files[0];\n if (file && file.type.startsWith('image/') && !block.metadata?.url) {\n await this.handleFileUpload(file, block, handlers);\n }\n });\n \n // Focus/blur\n container.addEventListener('focus', () => handlers.onFocus());\n container.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n container.addEventListener('keydown', (e) => {\n if (e.key === 'Delete' || e.key === 'Backspace') {\n if (block.metadata?.url) {\n // Clear the image\n block.metadata.url = undefined;\n block.metadata.loading = false;\n block.content = '';\n handlers.onInput(new InputEvent('input'));\n return;\n }\n }\n handlers.onKeyDown(e);\n });\n }\n \n private async handleFileUpload(\n file: File, \n block: IBlock, \n handlers: IBlockEventHandlers\n ): Promise {\n console.log('ImageBlockHandler: Starting file upload', { \n fileName: file.name, \n fileSize: file.size,\n blockId: block.id \n });\n \n // Validate file\n if (!file.type.startsWith('image/')) {\n console.error('Invalid file type:', file.type);\n return;\n }\n \n // Check file size (10MB limit)\n const maxSize = 10 * 1024 * 1024;\n if (file.size > maxSize) {\n console.error('File too large. Maximum size is 10MB');\n return;\n }\n \n // Set loading state\n if (!block.metadata) block.metadata = {};\n block.metadata.loading = true;\n block.metadata.fileName = file.name;\n block.metadata.fileSize = file.size;\n block.metadata.mimeType = file.type;\n \n console.log('ImageBlockHandler: Set loading state, requesting update');\n // Request immediate UI update for loading state\n handlers.onRequestUpdate?.();\n \n try {\n // Convert to base64\n const dataUrl = await this.fileToDataUrl(file);\n \n // Update block\n block.metadata.url = dataUrl;\n block.metadata.loading = false;\n \n // Set default alt text from filename\n const nameWithoutExt = file.name.replace(/\\.[^/.]+$/, '');\n block.content = nameWithoutExt;\n \n console.log('ImageBlockHandler: Upload complete, requesting update', {\n hasUrl: !!block.metadata.url,\n urlLength: dataUrl.length,\n altText: block.content\n });\n \n // Request immediate UI update to show uploaded image\n handlers.onRequestUpdate?.();\n \n } catch (error) {\n console.error('Failed to upload image:', error);\n block.metadata.loading = false;\n // Request UI update to clear loading state\n handlers.onRequestUpdate?.();\n }\n }\n \n private fileToDataUrl(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (e) => {\n const result = e.target?.result;\n if (typeof result === 'string') {\n resolve(result);\n } else {\n reject(new Error('Failed to read file'));\n }\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n // Content is the alt text\n const block = this.getBlockFromElement(element);\n return block?.content || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n // Content is the alt text\n const block = this.getBlockFromElement(element);\n if (block) {\n block.content = content;\n }\n }\n \n private getBlockFromElement(element: HTMLElement): IBlock | null {\n const container = element.querySelector('.image-block-container');\n const blockId = container?.getAttribute('data-block-id');\n if (!blockId) return null;\n \n // This is a simplified version - in real implementation,\n // we'd need access to the block data\n return {\n id: blockId,\n type: 'image',\n content: '',\n metadata: {}\n };\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n return null; // Images don't have cursor position\n }\n \n setCursorToStart(element: HTMLElement): void {\n this.focus(element);\n }\n \n setCursorToEnd(element: HTMLElement): void {\n this.focus(element);\n }\n \n focus(element: HTMLElement): void {\n const container = element.querySelector('.image-block-container') as HTMLElement;\n container?.focus();\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n this.focus(element);\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n return null; // Images can't be split\n }\n \n getStyles(): string {\n return `\n /* Image Block Container */\n .image-block-container {\n position: relative;\n margin: 12px 0;\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n outline: none;\n cursor: pointer;\n }\n \n .image-block-container.selected {\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('#6366f1', '#818cf8')};\n }\n \n /* Upload Placeholder */\n .image-upload-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n border: 2px dashed ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n transition: all 0.15s ease;\n }\n \n .image-block-container:hover .image-upload-placeholder {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n background: ${cssManager.bdTheme('#f9fafb', '#111827')};\n }\n \n .image-block-container.drag-over .image-upload-placeholder {\n border-color: ${cssManager.bdTheme('#6366f1', '#818cf8')};\n background: ${cssManager.bdTheme('#eff6ff', '#1e1b4b')};\n }\n \n .upload-icon {\n margin-bottom: 12px;\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n }\n \n .upload-text {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n margin-bottom: 4px;\n }\n \n .upload-hint {\n font-size: 12px;\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Image Container */\n .image-container {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 200px;\n background: ${cssManager.bdTheme('#f9fafb', '#111827')};\n }\n \n .image-container img {\n max-width: 100%;\n height: auto;\n display: block;\n border-radius: 4px;\n }\n \n /* Loading State */\n .image-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n \n .loading-spinner {\n width: 32px;\n height: 32px;\n border: 3px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-top-color: ${cssManager.bdTheme('#6366f1', '#818cf8')};\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n margin-bottom: 12px;\n }\n \n @keyframes spin {\n to { transform: rotate(360deg); }\n }\n \n .loading-text {\n font-size: 14px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n }\n \n /* File input hidden */\n .image-file-input {\n display: none !important;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * YouTubeBlockHandler - Handles YouTube video embedding\n * \n * Features:\n * - YouTube URL parsing and validation\n * - Video ID extraction from various YouTube URL formats\n * - Embedded iframe player\n * - Clean minimalist design\n */\nexport class YouTubeBlockHandler extends BaseBlockHandler {\n type = 'youtube';\n \n render(block: IBlock, isSelected: boolean): string {\n const videoId = block.metadata?.videoId;\n const url = block.metadata?.url || '';\n \n return `\n
    \n ${videoId ? this.renderVideo(videoId) : this.renderPlaceholder(url)}\n
    \n `;\n }\n \n private renderPlaceholder(url: string): string {\n return `\n
    \n
    \n \n \n \n
    \n
    Enter YouTube URL
    \n \n \n
    \n `;\n }\n \n private renderVideo(videoId: string): string {\n return `\n
    \n \n
    \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.youtube-block-container') as HTMLElement;\n if (!container) return;\n \n // If video is already embedded, just handle focus/blur\n if (block.metadata?.videoId) {\n container.setAttribute('tabindex', '0');\n container.addEventListener('focus', () => handlers.onFocus());\n container.addEventListener('blur', () => handlers.onBlur());\n \n // Handle deletion\n container.addEventListener('keydown', (e) => {\n if (e.key === 'Delete' || e.key === 'Backspace') {\n e.preventDefault();\n handlers.onKeyDown(e);\n } else {\n handlers.onKeyDown(e);\n }\n });\n return;\n }\n \n // Setup placeholder interactions\n const urlInput = element.querySelector('.youtube-url-input') as HTMLInputElement;\n const embedBtn = element.querySelector('.youtube-embed-btn') as HTMLButtonElement;\n \n if (!urlInput || !embedBtn) return;\n \n // Focus management\n urlInput.addEventListener('focus', () => handlers.onFocus());\n urlInput.addEventListener('blur', () => handlers.onBlur());\n \n // Handle embed button click\n embedBtn.addEventListener('click', () => {\n this.embedVideo(urlInput.value, block, handlers);\n });\n \n // Handle Enter key in input\n urlInput.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.embedVideo(urlInput.value, block, handlers);\n } else if (e.key === 'Escape') {\n e.preventDefault();\n urlInput.blur();\n }\n });\n \n // Handle paste event\n urlInput.addEventListener('paste', (e) => {\n // Allow paste to complete first\n setTimeout(() => {\n const pastedUrl = urlInput.value;\n if (this.extractYouTubeVideoId(pastedUrl)) {\n // Auto-embed if valid YouTube URL was pasted\n this.embedVideo(pastedUrl, block, handlers);\n }\n }, 0);\n });\n \n // Update URL in metadata as user types\n urlInput.addEventListener('input', () => {\n if (!block.metadata) block.metadata = {};\n block.metadata.url = urlInput.value;\n });\n }\n \n private embedVideo(url: string, block: IBlock, handlers: IBlockEventHandlers): void {\n const videoId = this.extractYouTubeVideoId(url);\n \n if (!videoId) {\n // Could show an error message here\n console.error('Invalid YouTube URL');\n return;\n }\n \n // Update block metadata\n if (!block.metadata) block.metadata = {};\n block.metadata.videoId = videoId;\n block.metadata.url = url;\n \n // Set content as video title (could be fetched from API in the future)\n block.content = `YouTube Video: ${videoId}`;\n \n // Request immediate UI update to show embedded video\n handlers.onRequestUpdate?.();\n }\n \n private extractYouTubeVideoId(url: string): string | null {\n // Handle various YouTube URL formats\n const patterns = [\n /(?:youtube\\.com\\/(?:[^\\/]+\\/.+\\/|(?:v|e(?:mbed)?)\\/|.*[?&]v=)|youtu\\.be\\/)([^\"&?\\/ ]{11})/,\n /youtube\\.com\\/embed\\/([^\"&?\\/ ]{11})/,\n /youtube\\.com\\/watch\\?v=([^\"&?\\/ ]{11})/,\n /youtu\\.be\\/([^\"&?\\/ ]{11})/\n ];\n \n for (const pattern of patterns) {\n const match = url.match(pattern);\n if (match) {\n return match[1];\n }\n }\n \n return null;\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n // Content is the video description/title\n const block = this.getBlockFromElement(element);\n return block?.content || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n // Content is the video description/title\n const block = this.getBlockFromElement(element);\n if (block) {\n block.content = content;\n }\n }\n \n private getBlockFromElement(element: HTMLElement): IBlock | null {\n const container = element.querySelector('.youtube-block-container');\n const blockId = container?.getAttribute('data-block-id');\n if (!blockId) return null;\n \n // Simplified version - in real implementation would need access to block data\n return {\n id: blockId,\n type: 'youtube',\n content: '',\n metadata: {}\n };\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n return null; // YouTube blocks don't have cursor position\n }\n \n setCursorToStart(element: HTMLElement): void {\n this.focus(element);\n }\n \n setCursorToEnd(element: HTMLElement): void {\n this.focus(element);\n }\n \n focus(element: HTMLElement): void {\n const container = element.querySelector('.youtube-block-container') as HTMLElement;\n const urlInput = element.querySelector('.youtube-url-input') as HTMLInputElement;\n \n if (urlInput) {\n urlInput.focus();\n } else if (container) {\n container.focus();\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n this.focus(element);\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n return null; // YouTube blocks can't be split\n }\n \n getStyles(): string {\n return `\n /* YouTube Block Container */\n .youtube-block-container {\n position: relative;\n margin: 12px 0;\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .youtube-block-container.selected {\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('#6366f1', '#818cf8')};\n }\n \n /* YouTube Placeholder */\n .youtube-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 24px;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n gap: 12px;\n }\n \n .placeholder-icon {\n color: ${cssManager.bdTheme('#dc2626', '#ef4444')};\n opacity: 0.8;\n }\n \n .placeholder-text {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .youtube-url-input {\n width: 100%;\n max-width: 400px;\n padding: 8px 12px;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n background: ${cssManager.bdTheme('#ffffff', '#111827')};\n color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n font-size: 13px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .youtube-url-input:focus {\n border-color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n background: ${cssManager.bdTheme('#ffffff', '#1f2937')};\n }\n \n .youtube-url-input::placeholder {\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n }\n \n .youtube-embed-btn {\n padding: 6px 16px;\n background: ${cssManager.bdTheme('#111827', '#f9fafb')};\n color: ${cssManager.bdTheme('#f9fafb', '#111827')};\n border: 1px solid transparent;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 500;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n cursor: pointer;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .youtube-embed-btn:hover {\n background: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .youtube-embed-btn:active {\n transform: scale(0.98);\n }\n \n /* YouTube Container */\n .youtube-container {\n position: relative;\n width: 100%;\n padding-bottom: 56.25%; /* 16:9 aspect ratio */\n background: ${cssManager.bdTheme('#000000', '#000000')};\n }\n \n .youtube-container iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n border-radius: 6px;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * AttachmentBlockHandler - Handles file attachments\n * \n * Features:\n * - Multiple file upload support\n * - Click to upload or drag and drop\n * - File type icons\n * - Remove individual files\n * - Base64 encoding (TODO: server upload in production)\n */\nexport class AttachmentBlockHandler extends BaseBlockHandler {\n type = 'attachment';\n \n render(block: IBlock, isSelected: boolean): string {\n const files = block.metadata?.files || [];\n \n return `\n
    \n
    \n
    \uD83D\uDCCE
    \n
    File Attachments
    \n
    \n
    \n ${files.length > 0 ? this.renderFiles(files) : this.renderPlaceholder()}\n
    \n \n ${files.length > 0 ? '' : ''}\n
    \n `;\n }\n \n private renderPlaceholder(): string {\n return `\n
    \n
    Click to add files
    \n
    or drag and drop
    \n
    \n `;\n }\n \n private renderFiles(files: any[]): string {\n return files.map((file: any) => `\n
    \n
    ${this.getFileIcon(file.type)}
    \n
    \n
    ${this.escapeHtml(file.name)}
    \n
    ${this.formatFileSize(file.size)}
    \n
    \n \n
    \n `).join('');\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.attachment-block-container') as HTMLElement;\n const fileInput = element.querySelector('.attachment-file-input') as HTMLInputElement;\n \n if (!container || !fileInput) {\n console.error('AttachmentBlockHandler: Could not find required elements');\n return;\n }\n \n // Initialize files array if needed\n if (!block.metadata) block.metadata = {};\n if (!block.metadata.files) block.metadata.files = [];\n \n // Click to upload on placeholder\n const placeholder = container.querySelector('.attachment-placeholder');\n if (placeholder) {\n placeholder.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n fileInput.click();\n });\n }\n \n // Add more files button\n const addMoreBtn = container.querySelector('.add-more-files') as HTMLButtonElement;\n if (addMoreBtn) {\n addMoreBtn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n fileInput.click();\n });\n }\n \n // File input change\n fileInput.addEventListener('change', async (e) => {\n const input = e.target as HTMLInputElement;\n const files = input.files;\n if (files && files.length > 0) {\n await this.handleFileAttachments(files, block, handlers);\n input.value = ''; // Clear input for next selection\n }\n });\n \n // Remove file buttons\n container.addEventListener('click', (e) => {\n const target = e.target as HTMLElement;\n if (target.classList.contains('remove-file')) {\n e.preventDefault();\n e.stopPropagation();\n const fileId = target.getAttribute('data-file-id');\n if (fileId) {\n this.removeFile(fileId, block, handlers);\n }\n }\n });\n \n // Drag and drop\n container.addEventListener('dragover', (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.add('drag-over');\n });\n \n container.addEventListener('dragleave', (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n });\n \n container.addEventListener('drop', async (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n \n const files = e.dataTransfer?.files;\n if (files && files.length > 0) {\n await this.handleFileAttachments(files, block, handlers);\n }\n });\n \n // Focus/blur\n container.addEventListener('focus', () => handlers.onFocus());\n container.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n container.addEventListener('keydown', (e) => {\n if (e.key === 'Delete' || e.key === 'Backspace') {\n // Only remove all files if container is focused, not when removing individual files\n if (document.activeElement === container && block.metadata?.files?.length > 0) {\n e.preventDefault();\n block.metadata.files = [];\n handlers.onRequestUpdate?.();\n return;\n }\n }\n handlers.onKeyDown(e);\n });\n }\n \n private async handleFileAttachments(\n files: FileList,\n block: IBlock,\n handlers: IBlockEventHandlers\n ): Promise {\n if (!block.metadata) block.metadata = {};\n if (!block.metadata.files) block.metadata.files = [];\n \n for (const file of Array.from(files)) {\n try {\n const dataUrl = await this.fileToDataUrl(file);\n const fileData = {\n id: this.generateId(),\n name: file.name,\n size: file.size,\n type: file.type,\n data: dataUrl\n };\n \n block.metadata.files.push(fileData);\n } catch (error) {\n console.error('Failed to attach file:', file.name, error);\n }\n }\n \n // Update block content with file count\n block.content = `${block.metadata.files.length} file${block.metadata.files.length !== 1 ? 's' : ''} attached`;\n \n // Request UI update\n handlers.onRequestUpdate?.();\n }\n \n private removeFile(fileId: string, block: IBlock, handlers: IBlockEventHandlers): void {\n if (!block.metadata?.files) return;\n \n block.metadata.files = block.metadata.files.filter((f: any) => f.id !== fileId);\n \n // Update content\n block.content = block.metadata.files.length > 0 \n ? `${block.metadata.files.length} file${block.metadata.files.length !== 1 ? 's' : ''} attached`\n : '';\n \n // Request UI update\n handlers.onRequestUpdate?.();\n }\n \n private fileToDataUrl(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (e) => {\n const result = e.target?.result;\n if (typeof result === 'string') {\n resolve(result);\n } else {\n reject(new Error('Failed to read file'));\n }\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n }\n \n private getFileIcon(mimeType: string): string {\n if (mimeType.startsWith('image/')) return '\uD83D\uDDBC\uFE0F';\n if (mimeType.startsWith('video/')) return '\uD83C\uDFA5';\n if (mimeType.startsWith('audio/')) return '\uD83C\uDFB5';\n if (mimeType.includes('pdf')) return '\uD83D\uDCC4';\n if (mimeType.includes('zip') || mimeType.includes('rar') || mimeType.includes('tar')) return '\uD83D\uDDC4\uFE0F';\n if (mimeType.includes('sheet')) return '\uD83D\uDCCA';\n if (mimeType.includes('document') || mimeType.includes('msword')) return '\uD83D\uDCDD';\n if (mimeType.includes('presentation')) return '\uD83D\uDCCB';\n if (mimeType.includes('text')) return '\uD83D\uDCC3';\n return '\uD83D\uDCC1';\n }\n \n private formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n \n private generateId(): string {\n return `file-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n // Content is the description of attached files\n const block = this.getBlockFromElement(element);\n return block?.content || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n // Content is the description of attached files\n const block = this.getBlockFromElement(element);\n if (block) {\n block.content = content;\n }\n }\n \n private getBlockFromElement(element: HTMLElement): IBlock | null {\n const container = element.querySelector('.attachment-block-container');\n const blockId = container?.getAttribute('data-block-id');\n if (!blockId) return null;\n \n // Simplified version - in real implementation would need access to block data\n return {\n id: blockId,\n type: 'attachment',\n content: '',\n metadata: {}\n };\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n return null; // Attachment blocks don't have cursor position\n }\n \n setCursorToStart(element: HTMLElement): void {\n this.focus(element);\n }\n \n setCursorToEnd(element: HTMLElement): void {\n this.focus(element);\n }\n \n focus(element: HTMLElement): void {\n const container = element.querySelector('.attachment-block-container') as HTMLElement;\n container?.focus();\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n this.focus(element);\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n return null; // Attachment blocks can't be split\n }\n \n getStyles(): string {\n return `\n /* Attachment Block Container */\n .attachment-block-container {\n position: relative;\n margin: 12px 0;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n outline: none;\n background: ${cssManager.bdTheme('#ffffff', '#111827')};\n }\n \n .attachment-block-container.selected {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n .attachment-block-container.drag-over {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#6366f1', '#818cf8')};\n }\n \n /* Header */\n .attachment-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n }\n \n .attachment-icon {\n font-size: 18px;\n opacity: 0.8;\n }\n \n .attachment-title {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n /* File List */\n .attachment-list {\n padding: 8px;\n min-height: 80px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n \n /* Placeholder */\n .attachment-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n \n .attachment-placeholder:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n }\n \n .placeholder-text {\n font-size: 14px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n margin-bottom: 4px;\n }\n \n .placeholder-hint {\n font-size: 12px;\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* File Items */\n .attachment-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px 12px;\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n transition: all 0.15s ease;\n }\n \n .attachment-item:hover {\n background: ${cssManager.bdTheme('#f3f4f6', '#374151')};\n }\n \n .file-icon {\n font-size: 20px;\n flex-shrink: 0;\n }\n \n .file-info {\n flex: 1;\n min-width: 0;\n }\n \n .file-name {\n font-size: 13px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n \n .file-size {\n font-size: 11px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n margin-top: 2px;\n }\n \n .remove-file {\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 4px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n transition: all 0.15s ease;\n padding: 0;\n }\n \n .remove-file:hover {\n background: ${cssManager.bdTheme('#fee2e2', '#991b1b')};\n border-color: ${cssManager.bdTheme('#fca5a5', '#dc2626')};\n color: ${cssManager.bdTheme('#dc2626', '#fca5a5')};\n }\n \n /* Add More Files Button */\n .add-more-files {\n margin: 8px;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n font-size: 13px;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n cursor: pointer;\n transition: all 0.15s ease;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n }\n \n .add-more-files:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n }\n \n /* Hidden file input */\n .attachment-file-input {\n display: none !important;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\nexport class DividerBlockHandler extends BaseBlockHandler {\n type = 'divider';\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n return `\n
    \n
    \n
    \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const dividerBlock = element.querySelector('.block.divider') as HTMLDivElement;\n if (!dividerBlock) return;\n \n // Handle click to select\n dividerBlock.addEventListener('click', (e) => {\n e.stopPropagation();\n // Focus will trigger the selection\n dividerBlock.focus();\n // Ensure focus handler is called immediately\n handlers.onFocus?.();\n });\n \n // Handle focus/blur\n dividerBlock.addEventListener('focus', () => {\n handlers.onFocus?.();\n });\n \n dividerBlock.addEventListener('blur', () => {\n handlers.onBlur?.();\n });\n \n // Handle keyboard events\n dividerBlock.addEventListener('keydown', (e) => {\n if (e.key === 'Backspace' || e.key === 'Delete') {\n e.preventDefault();\n // Let the keyboard handler in the parent component handle the deletion\n handlers.onKeyDown?.(e);\n } else {\n // Handle navigation keys\n handlers.onKeyDown?.(e);\n }\n });\n }\n \n getStyles(): string {\n return `\n .block.divider {\n padding: 8px 0;\n margin: 16px 0;\n cursor: pointer;\n position: relative;\n border-radius: 4px;\n transition: all 0.15s ease;\n }\n\n .block.divider:focus {\n outline: none;\n }\n\n .block.divider.selected {\n background: ${cssManager.bdTheme('rgba(0, 102, 204, 0.05)', 'rgba(77, 148, 255, 0.08)')};\n box-shadow: inset 0 0 0 2px ${cssManager.bdTheme('rgba(0, 102, 204, 0.2)', 'rgba(77, 148, 255, 0.2)')};\n }\n\n .block.divider hr {\n border: none;\n border-top: 1px solid ${cssManager.bdTheme('#e0e0e0', '#333')};\n margin: 0;\n pointer-events: none;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * MarkdownBlockHandler - Handles markdown content with preview/edit toggle\n * \n * Features:\n * - Live markdown preview\n * - Edit/preview mode toggle\n * - Syntax highlighting in edit mode\n * - Common markdown shortcuts\n * - Auto-save on mode switch\n */\nexport class MarkdownBlockHandler extends BaseBlockHandler {\n type = 'markdown';\n \n render(block: IBlock, isSelected: boolean): string {\n const isEditMode = block.metadata?.isEditMode ?? true;\n const content = block.content || '';\n \n return `\n
    \n
    \n
    M\u2193
    \n
    Markdown
    \n \n
    \n
    \n ${isEditMode ? this.renderEditor(content) : this.renderPreview(content)}\n
    \n
    \n `;\n }\n \n private renderEditor(content: string): string {\n return `\n \n `;\n }\n \n private renderPreview(content: string): string {\n const html = this.parseMarkdown(content);\n return `\n
    \n ${html || '
    No content to preview
    '}\n
    \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.markdown-block-container') as HTMLElement;\n const toggleBtn = element.querySelector('.markdown-toggle-mode') as HTMLButtonElement;\n \n if (!container || !toggleBtn) {\n console.error('MarkdownBlockHandler: Could not find required elements');\n return;\n }\n \n // Initialize metadata\n if (!block.metadata) block.metadata = {};\n if (block.metadata.isEditMode === undefined) block.metadata.isEditMode = true;\n \n // Toggle mode button\n toggleBtn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n \n // Save current content if in edit mode\n if (block.metadata.isEditMode) {\n const editor = container.querySelector('.markdown-editor') as HTMLTextAreaElement;\n if (editor) {\n block.content = editor.value;\n }\n }\n \n // Toggle mode\n block.metadata.isEditMode = !block.metadata.isEditMode;\n \n // Request UI update\n handlers.onRequestUpdate?.();\n });\n \n // Setup based on mode\n if (block.metadata.isEditMode) {\n this.setupEditor(element, block, handlers);\n } else {\n this.setupPreview(element, block, handlers);\n }\n }\n \n private setupEditor(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n if (!editor) return;\n \n // Focus handling\n editor.addEventListener('focus', () => handlers.onFocus());\n editor.addEventListener('blur', () => handlers.onBlur());\n \n // Content changes\n editor.addEventListener('input', () => {\n block.content = editor.value;\n });\n \n // Keyboard shortcuts\n editor.addEventListener('keydown', (e) => {\n // Tab handling for indentation\n if (e.key === 'Tab') {\n e.preventDefault();\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const value = editor.value;\n \n if (e.shiftKey) {\n // Unindent\n const beforeCursor = value.substring(0, start);\n const lastNewline = beforeCursor.lastIndexOf('\\n');\n const lineStart = lastNewline + 1;\n const lineContent = value.substring(lineStart, start);\n \n if (lineContent.startsWith(' ')) {\n editor.value = value.substring(0, lineStart) + lineContent.substring(2) + value.substring(start);\n editor.selectionStart = editor.selectionEnd = start - 2;\n }\n } else {\n // Indent\n editor.value = value.substring(0, start) + ' ' + value.substring(end);\n editor.selectionStart = editor.selectionEnd = start + 2;\n }\n \n block.content = editor.value;\n return;\n }\n \n // Bold shortcut (Ctrl/Cmd + B)\n if ((e.ctrlKey || e.metaKey) && e.key === 'b') {\n e.preventDefault();\n this.wrapSelection(editor, '**', '**');\n block.content = editor.value;\n return;\n }\n \n // Italic shortcut (Ctrl/Cmd + I)\n if ((e.ctrlKey || e.metaKey) && e.key === 'i') {\n e.preventDefault();\n this.wrapSelection(editor, '_', '_');\n block.content = editor.value;\n return;\n }\n \n // Link shortcut (Ctrl/Cmd + K)\n if ((e.ctrlKey || e.metaKey) && e.key === 'k') {\n e.preventDefault();\n this.insertLink(editor);\n block.content = editor.value;\n return;\n }\n \n // Pass other key events to handlers\n handlers.onKeyDown(e);\n });\n \n // Auto-resize\n this.autoResize(editor);\n editor.addEventListener('input', () => this.autoResize(editor));\n }\n \n private setupPreview(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.markdown-block-container') as HTMLElement;\n const preview = element.querySelector('.markdown-preview') as HTMLElement;\n \n if (!container || !preview) return;\n \n // Make preview focusable\n preview.setAttribute('tabindex', '0');\n \n // Focus handling\n preview.addEventListener('focus', () => handlers.onFocus());\n preview.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n preview.addEventListener('keydown', (e) => {\n // Switch to edit mode on Enter\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n block.metadata.isEditMode = true;\n handlers.onRequestUpdate?.();\n return;\n }\n \n handlers.onKeyDown(e);\n });\n }\n \n private wrapSelection(editor: HTMLTextAreaElement, before: string, after: string): void {\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const selectedText = editor.value.substring(start, end);\n const replacement = before + (selectedText || 'text') + after;\n \n editor.value = editor.value.substring(0, start) + replacement + editor.value.substring(end);\n \n if (selectedText) {\n editor.selectionStart = start;\n editor.selectionEnd = start + replacement.length;\n } else {\n editor.selectionStart = start + before.length;\n editor.selectionEnd = start + before.length + 4; // 'text'.length\n }\n \n editor.focus();\n }\n \n private insertLink(editor: HTMLTextAreaElement): void {\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const selectedText = editor.value.substring(start, end);\n const linkText = selectedText || 'link text';\n const replacement = `[${linkText}](url)`;\n \n editor.value = editor.value.substring(0, start) + replacement + editor.value.substring(end);\n \n // Select the URL part\n editor.selectionStart = start + linkText.length + 3; // '[linktext]('.length\n editor.selectionEnd = start + linkText.length + 6; // '[linktext](url'.length\n \n editor.focus();\n }\n \n private autoResize(editor: HTMLTextAreaElement): void {\n editor.style.height = 'auto';\n editor.style.height = editor.scrollHeight + 'px';\n }\n \n private parseMarkdown(markdown: string): string {\n // Basic markdown parsing - in production, use a proper markdown parser\n let html = this.escapeHtml(markdown);\n \n // Headers\n html = html.replace(/^### (.+)$/gm, '

    $1

    ');\n html = html.replace(/^## (.+)$/gm, '

    $1

    ');\n html = html.replace(/^# (.+)$/gm, '

    $1

    ');\n \n // Bold\n html = html.replace(/\\*\\*(.+?)\\*\\*/g, '$1');\n html = html.replace(/__(.+?)__/g, '$1');\n \n // Italic\n html = html.replace(/\\*(.+?)\\*/g, '$1');\n html = html.replace(/_(.+?)_/g, '$1');\n \n // Code blocks\n html = html.replace(/```([\\s\\S]*?)```/g, '
    $1
    ');\n \n // Inline code\n html = html.replace(/`(.+?)`/g, '$1');\n \n // Links\n html = html.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '$1');\n \n // Lists\n html = html.replace(/^\\* (.+)$/gm, '
  • $1
  • ');\n html = html.replace(/^- (.+)$/gm, '
  • $1
  • ');\n html = html.replace(/^\\d+\\. (.+)$/gm, '
  • $1
  • ');\n \n // Wrap consecutive list items\n html = html.replace(/(
  • .*<\\/li>\\n?)+/g, (match) => {\n return '
      ' + match + '
    ';\n });\n \n // Paragraphs\n html = html.replace(/\\n\\n/g, '

    ');\n html = '

    ' + html + '

    ';\n \n // Clean up empty paragraphs\n html = html.replace(/

    <\\/p>/g, '');\n html = html.replace(/

    ()/g, '$1');\n html = html.replace(/(<\\/h[1-3]>)<\\/p>/g, '$1');\n html = html.replace(/

    (

      )/g, '$1');\n html = html.replace(/(<\\/ul>)<\\/p>/g, '$1');\n html = html.replace(/

      (

      )/g, '$1');\n    html = html.replace(/(<\\/pre>)<\\/p>/g, '$1');\n    \n    return html;\n  }\n  \n  private escapeHtml(text: string): string {\n    const div = document.createElement('div');\n    div.textContent = text;\n    return div.innerHTML;\n  }\n  \n  getContent(element: HTMLElement): string {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      return editor.value;\n    }\n    \n    // If in preview mode, return the stored content\n    const container = element.querySelector('.markdown-block-container');\n    const blockId = container?.getAttribute('data-block-id');\n    // In real implementation, would need access to block data\n    return '';\n  }\n  \n  setContent(element: HTMLElement, content: string): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      editor.value = content;\n      this.autoResize(editor);\n    }\n  }\n  \n  getCursorPosition(element: HTMLElement): number | null {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    return editor ? editor.selectionStart : null;\n  }\n  \n  setCursorToStart(element: HTMLElement): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      editor.selectionStart = editor.selectionEnd = 0;\n      editor.focus();\n    } else {\n      this.focus(element);\n    }\n  }\n  \n  setCursorToEnd(element: HTMLElement): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      const length = editor.value.length;\n      editor.selectionStart = editor.selectionEnd = length;\n      editor.focus();\n    } else {\n      this.focus(element);\n    }\n  }\n  \n  focus(element: HTMLElement): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      editor.focus();\n    } else {\n      const preview = element.querySelector('.markdown-preview') as HTMLElement;\n      preview?.focus();\n    }\n  }\n  \n  focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      if (position === 'start') {\n        this.setCursorToStart(element);\n      } else if (position === 'end') {\n        this.setCursorToEnd(element);\n      } else if (typeof position === 'number') {\n        editor.selectionStart = editor.selectionEnd = position;\n        editor.focus();\n      }\n    } else {\n      this.focus(element);\n    }\n  }\n  \n  getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (!editor) return null;\n    \n    const cursorPos = editor.selectionStart;\n    return {\n      before: editor.value.substring(0, cursorPos),\n      after: editor.value.substring(cursorPos)\n    };\n  }\n  \n  getStyles(): string {\n    return `\n      /* Markdown Block Container */\n      .markdown-block-container {\n        position: relative;\n        margin: 12px 0;\n        border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        border-radius: 6px;\n        overflow: hidden;\n        transition: all 0.15s ease;\n        background: ${cssManager.bdTheme('#ffffff', '#111827')};\n      }\n      \n      .markdown-block-container.selected {\n        border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n      }\n      \n      /* Header */\n      .markdown-header {\n        display: flex;\n        align-items: center;\n        gap: 8px;\n        padding: 8px 12px;\n        border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n      }\n      \n      .markdown-icon {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.8;\n      }\n      \n      .markdown-title {\n        flex: 1;\n        font-size: 13px;\n        font-weight: 500;\n        color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n      }\n      \n      .markdown-toggle-mode {\n        padding: 4px 8px;\n        background: transparent;\n        border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.15s ease;\n      }\n      \n      .markdown-toggle-mode:hover {\n        background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n        border-color: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n      }\n      \n      /* Content */\n      .markdown-content {\n        position: relative;\n        min-height: 120px;\n      }\n      \n      /* Editor */\n      .markdown-editor {\n        width: 100%;\n        min-height: 120px;\n        padding: 12px;\n        background: transparent;\n        border: none;\n        outline: none;\n        resize: none;\n        font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n        font-size: 13px;\n        line-height: 1.6;\n        color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n        overflow: hidden;\n      }\n      \n      .markdown-editor::placeholder {\n        color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n      }\n      \n      /* Preview */\n      .markdown-preview {\n        padding: 12px;\n        min-height: 96px;\n        outline: none;\n        font-size: 14px;\n        line-height: 1.6;\n        color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n      }\n      \n      .preview-empty {\n        color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n        font-style: italic;\n      }\n      \n      /* Markdown preview styles */\n      .markdown-preview h1 {\n        font-size: 24px;\n        font-weight: 600;\n        margin: 16px 0 8px 0;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview h2 {\n        font-size: 20px;\n        font-weight: 600;\n        margin: 14px 0 6px 0;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview h3 {\n        font-size: 18px;\n        font-weight: 600;\n        margin: 12px 0 4px 0;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview p {\n        margin: 8px 0;\n      }\n      \n      .markdown-preview ul,\n      .markdown-preview ol {\n        margin: 8px 0;\n        padding-left: 24px;\n      }\n      \n      .markdown-preview li {\n        margin: 4px 0;\n      }\n      \n      .markdown-preview code {\n        background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n        padding: 2px 4px;\n        border-radius: 3px;\n        font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n        font-size: 0.9em;\n      }\n      \n      .markdown-preview pre {\n        background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n        padding: 12px;\n        border-radius: 4px;\n        overflow-x: auto;\n        margin: 8px 0;\n      }\n      \n      .markdown-preview pre code {\n        background: transparent;\n        padding: 0;\n      }\n      \n      .markdown-preview strong {\n        font-weight: 600;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview em {\n        font-style: italic;\n      }\n      \n      .markdown-preview a {\n        color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n        text-decoration: none;\n      }\n      \n      .markdown-preview a:hover {\n        text-decoration: underline;\n      }\n      \n      .markdown-preview blockquote {\n        border-left: 3px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        padding-left: 12px;\n        margin: 8px 0;\n        color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n      }\n    `;\n  }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * HTMLBlockHandler - Handles raw HTML content with preview/edit toggle\n * \n * Features:\n * - Live HTML preview (sandboxed)\n * - Edit/preview mode toggle\n * - Syntax highlighting in edit mode\n * - HTML validation hints\n * - Auto-save on mode switch\n */\nexport class HtmlBlockHandler extends BaseBlockHandler {\n  type = 'html';\n  \n  render(block: IBlock, isSelected: boolean): string {\n    const isEditMode = block.metadata?.isEditMode ?? true;\n    const content = block.content || '';\n    \n    return `\n      
      \n
      \n
      </>
      \n
      HTML
      \n \n
      \n
      \n ${isEditMode ? this.renderEditor(content) : this.renderPreview(content)}\n
      \n
      \n `;\n }\n \n private renderEditor(content: string): string {\n return `\n \n `;\n }\n \n private renderPreview(content: string): string {\n return `\n
      \n ${content || '
      No content to preview
      '}\n
      \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.html-block-container') as HTMLElement;\n const toggleBtn = element.querySelector('.html-toggle-mode') as HTMLButtonElement;\n \n if (!container || !toggleBtn) {\n console.error('HtmlBlockHandler: Could not find required elements');\n return;\n }\n \n // Initialize metadata\n if (!block.metadata) block.metadata = {};\n if (block.metadata.isEditMode === undefined) block.metadata.isEditMode = true;\n \n // Toggle mode button\n toggleBtn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n \n // Save current content if in edit mode\n if (block.metadata.isEditMode) {\n const editor = container.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n block.content = editor.value;\n }\n }\n \n // Toggle mode\n block.metadata.isEditMode = !block.metadata.isEditMode;\n \n // Request UI update\n handlers.onRequestUpdate?.();\n });\n \n // Setup based on mode\n if (block.metadata.isEditMode) {\n this.setupEditor(element, block, handlers);\n } else {\n this.setupPreview(element, block, handlers);\n }\n }\n \n private setupEditor(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (!editor) return;\n \n // Focus handling\n editor.addEventListener('focus', () => handlers.onFocus());\n editor.addEventListener('blur', () => handlers.onBlur());\n \n // Content changes\n editor.addEventListener('input', () => {\n block.content = editor.value;\n this.validateHtml(editor.value);\n });\n \n // Keyboard shortcuts\n editor.addEventListener('keydown', (e) => {\n // Tab handling for indentation\n if (e.key === 'Tab') {\n e.preventDefault();\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const value = editor.value;\n \n if (e.shiftKey) {\n // Unindent\n const beforeCursor = value.substring(0, start);\n const lastNewline = beforeCursor.lastIndexOf('\\n');\n const lineStart = lastNewline + 1;\n const lineContent = value.substring(lineStart, start);\n \n if (lineContent.startsWith(' ')) {\n editor.value = value.substring(0, lineStart) + lineContent.substring(2) + value.substring(start);\n editor.selectionStart = editor.selectionEnd = start - 2;\n }\n } else {\n // Indent\n editor.value = value.substring(0, start) + ' ' + value.substring(end);\n editor.selectionStart = editor.selectionEnd = start + 2;\n }\n \n block.content = editor.value;\n return;\n }\n \n // Auto-close tags (Ctrl/Cmd + /)\n if ((e.ctrlKey || e.metaKey) && e.key === '/') {\n e.preventDefault();\n this.autoCloseTag(editor);\n block.content = editor.value;\n return;\n }\n \n // Pass other key events to handlers\n handlers.onKeyDown(e);\n });\n \n // Auto-resize\n this.autoResize(editor);\n editor.addEventListener('input', () => this.autoResize(editor));\n }\n \n private setupPreview(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.html-block-container') as HTMLElement;\n const preview = element.querySelector('.html-preview') as HTMLElement;\n \n if (!container || !preview) return;\n \n // Make preview focusable\n preview.setAttribute('tabindex', '0');\n \n // Focus handling\n preview.addEventListener('focus', () => handlers.onFocus());\n preview.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n preview.addEventListener('keydown', (e) => {\n // Switch to edit mode on Enter\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n block.metadata.isEditMode = true;\n handlers.onRequestUpdate?.();\n return;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Sandbox styles and scripts in preview\n this.sandboxContent(preview);\n }\n \n private autoCloseTag(editor: HTMLTextAreaElement): void {\n const cursorPos = editor.selectionStart;\n const text = editor.value;\n \n // Find the opening tag\n let tagStart = cursorPos;\n while (tagStart > 0 && text[tagStart - 1] !== '<') {\n tagStart--;\n }\n \n if (tagStart > 0) {\n const tagContent = text.substring(tagStart, cursorPos);\n const tagMatch = tagContent.match(/^(\\w+)/);\n \n if (tagMatch) {\n const tagName = tagMatch[1];\n const closingTag = ``;\n \n // Insert closing tag\n editor.value = text.substring(0, cursorPos) + '>' + closingTag + text.substring(cursorPos);\n editor.selectionStart = editor.selectionEnd = cursorPos + 1;\n }\n }\n }\n \n private autoResize(editor: HTMLTextAreaElement): void {\n editor.style.height = 'auto';\n editor.style.height = editor.scrollHeight + 'px';\n }\n \n private validateHtml(html: string): boolean {\n // Basic HTML validation\n const openTags: string[] = [];\n const tagRegex = /<\\/?([a-zA-Z][a-zA-Z0-9]*)\\b[^>]*>/g;\n let match;\n \n while ((match = tagRegex.exec(html)) !== null) {\n const isClosing = match[0].startsWith('')) {\n // Not a self-closing tag\n openTags.push(tagName);\n }\n }\n \n if (openTags.length > 0) {\n console.warn(`Unclosed tags: ${openTags.join(', ')}`);\n return false;\n }\n \n return true;\n }\n \n private sandboxContent(preview: HTMLElement): void {\n // Remove any script tags\n const scripts = preview.querySelectorAll('script');\n scripts.forEach(script => script.remove());\n \n // Remove event handlers\n const allElements = preview.querySelectorAll('*');\n allElements.forEach(el => {\n // Remove all on* attributes\n Array.from(el.attributes).forEach(attr => {\n if (attr.name.startsWith('on')) {\n el.removeAttribute(attr.name);\n }\n });\n });\n \n // Prevent forms from submitting\n const forms = preview.querySelectorAll('form');\n forms.forEach(form => {\n form.addEventListener('submit', (e) => {\n e.preventDefault();\n e.stopPropagation();\n });\n });\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n return editor.value;\n }\n \n // If in preview mode, return the stored content\n const container = element.querySelector('.html-block-container');\n const blockId = container?.getAttribute('data-block-id');\n // In real implementation, would need access to block data\n return '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n editor.value = content;\n this.autoResize(editor);\n }\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n return editor ? editor.selectionStart : null;\n }\n \n setCursorToStart(element: HTMLElement): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n editor.selectionStart = editor.selectionEnd = 0;\n editor.focus();\n } else {\n this.focus(element);\n }\n }\n \n setCursorToEnd(element: HTMLElement): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n const length = editor.value.length;\n editor.selectionStart = editor.selectionEnd = length;\n editor.focus();\n } else {\n this.focus(element);\n }\n }\n \n focus(element: HTMLElement): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n editor.focus();\n } else {\n const preview = element.querySelector('.html-preview') as HTMLElement;\n preview?.focus();\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n if (position === 'start') {\n this.setCursorToStart(element);\n } else if (position === 'end') {\n this.setCursorToEnd(element);\n } else if (typeof position === 'number') {\n editor.selectionStart = editor.selectionEnd = position;\n editor.focus();\n }\n } else {\n this.focus(element);\n }\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (!editor) return null;\n \n const cursorPos = editor.selectionStart;\n return {\n before: editor.value.substring(0, cursorPos),\n after: editor.value.substring(cursorPos)\n };\n }\n \n getStyles(): string {\n return `\n /* HTML Block Container */\n .html-block-container {\n position: relative;\n margin: 12px 0;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n background: ${cssManager.bdTheme('#ffffff', '#111827')};\n }\n \n .html-block-container.selected {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Header */\n .html-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n }\n \n .html-icon {\n font-size: 14px;\n font-weight: 600;\n opacity: 0.8;\n font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n }\n \n .html-title {\n flex: 1;\n font-size: 13px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .html-toggle-mode {\n padding: 4px 8px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n \n .html-toggle-mode:hover {\n background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n }\n \n /* Content */\n .html-content {\n position: relative;\n min-height: 120px;\n }\n \n /* Editor */\n .html-editor {\n width: 100%;\n min-height: 120px;\n padding: 12px;\n background: transparent;\n border: none;\n outline: none;\n resize: none;\n font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n font-size: 13px;\n line-height: 1.6;\n color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n overflow: hidden;\n }\n \n .html-editor::placeholder {\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Preview */\n .html-preview {\n padding: 12px;\n min-height: 96px;\n outline: none;\n font-size: 14px;\n line-height: 1.6;\n color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n }\n \n .preview-empty {\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n font-style: italic;\n }\n \n /* Sandboxed HTML preview styles */\n .html-preview * {\n max-width: 100%;\n }\n \n .html-preview img {\n height: auto;\n }\n \n .html-preview a {\n color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n text-decoration: none;\n }\n \n .html-preview a:hover {\n text-decoration: underline;\n }\n \n .html-preview table {\n border-collapse: collapse;\n width: 100%;\n margin: 8px 0;\n }\n \n .html-preview th,\n .html-preview td {\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n padding: 8px;\n text-align: left;\n }\n \n .html-preview th {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n font-weight: 600;\n }\n \n .html-preview pre {\n background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n padding: 12px;\n border-radius: 4px;\n overflow-x: auto;\n margin: 8px 0;\n }\n \n .html-preview code {\n background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n padding: 2px 4px;\n border-radius: 3px;\n font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n font-size: 0.9em;\n }\n \n .html-preview pre code {\n background: transparent;\n padding: 0;\n }\n `;\n }\n}", "/**\n * Main exports for the blocks module\n */\n\n// Core interfaces and base classes\nexport { \n type IBlockHandler, \n type IBlockEventHandlers, \n BaseBlockHandler \n} from './block.base.js';\n\n// Block registry for registration and retrieval\nexport { BlockRegistry } from './block.registry.js';\n\n// Common styles and helpers\nexport { \n commonBlockStyles,\n getBlockClasses,\n getBlockDataAttributes \n} from './block.styles.js';\n\n// Text block handlers\nexport { ParagraphBlockHandler } from './text/paragraph.block.js';\nexport { HeadingBlockHandler } from './text/heading.block.js';\nexport { QuoteBlockHandler } from './text/quote.block.js';\nexport { CodeBlockHandler } from './text/code.block.js';\nexport { ListBlockHandler } from './text/list.block.js';\n\n// Media block handlers\nexport { ImageBlockHandler } from './media/image.block.js';\nexport { YouTubeBlockHandler } from './media/youtube.block.js';\nexport { AttachmentBlockHandler } from './media/attachment.block.js';\n\n// Content block handlers\nexport { DividerBlockHandler } from './content/divider.block.js';\nexport { MarkdownBlockHandler } from './content/markdown.block.js';\nexport { HtmlBlockHandler } from './content/html.block.js';\n\n// Utilities\n// TODO: Export when implemented\n// export * from './utils/file.utils.js';\n// export * from './utils/media.utils.js';\n// export * from './utils/markdown.utils.js';", "/**\n * Block Registration Module\n * Handles registration of all block handlers with the BlockRegistry\n * \n * Phase 2 Complete: Divider block has been successfully migrated\n * to the new block handler architecture.\n * Phase 3 Complete: Paragraph block has been successfully migrated\n * to the new block handler architecture.\n * Phase 4 Complete: All heading blocks (h1, h2, h3) have been successfully migrated\n * to the new block handler architecture using a unified HeadingBlockHandler.\n * Phase 5 Complete: Quote, Code, and List blocks have been successfully migrated\n * to the new block handler architecture.\n * Phase 6 Complete: Image, YouTube, and Attachment blocks have been successfully migrated\n * to the new block handler architecture.\n * Phase 7 Complete: Markdown and HTML blocks have been successfully migrated\n * to the new block handler architecture.\n */\n\nimport { \n BlockRegistry, \n DividerBlockHandler,\n ParagraphBlockHandler,\n HeadingBlockHandler,\n QuoteBlockHandler,\n CodeBlockHandler,\n ListBlockHandler,\n ImageBlockHandler,\n YouTubeBlockHandler,\n AttachmentBlockHandler,\n MarkdownBlockHandler,\n HtmlBlockHandler\n} from './blocks/index.js';\n\n// Initialize and register all block handlers\nexport function registerAllBlockHandlers(): void {\n // Register content blocks\n BlockRegistry.register('divider', new DividerBlockHandler());\n \n // Register text blocks\n BlockRegistry.register('paragraph', new ParagraphBlockHandler());\n BlockRegistry.register('heading-1', new HeadingBlockHandler('heading-1'));\n BlockRegistry.register('heading-2', new HeadingBlockHandler('heading-2'));\n BlockRegistry.register('heading-3', new HeadingBlockHandler('heading-3'));\n BlockRegistry.register('quote', new QuoteBlockHandler());\n BlockRegistry.register('code', new CodeBlockHandler());\n BlockRegistry.register('list', new ListBlockHandler());\n \n // Register media blocks\n BlockRegistry.register('image', new ImageBlockHandler());\n BlockRegistry.register('youtube', new YouTubeBlockHandler());\n BlockRegistry.register('attachment', new AttachmentBlockHandler());\n \n // Register other content blocks\n BlockRegistry.register('markdown', new MarkdownBlockHandler());\n BlockRegistry.register('html', new HtmlBlockHandler());\n}\n\n// Ensure blocks are registered when this module is imported\nregisterAllBlockHandlers();", "import { html, type TemplateResult, cssManager } from '@design.estate/dees-element';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\nimport { type IBlock } from './wysiwyg.types.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { PROGRAMMING_LANGUAGES } from './wysiwyg.constants.js';\n\nexport class WysiwygModalManager {\n /**\n * Shows language selection modal for code blocks\n */\n static async showLanguageSelectionModal(): Promise {\n return new Promise((resolve) => {\n let selectedLanguage: string | null = null;\n \n DeesModal.createAndShow({\n heading: 'Select Programming Language',\n content: html`\n \n
      \n
      \n ${this.getLanguages().map(lang => html`\n
      {\n selectedLanguage = lang.toLowerCase();\n // Close modal by finding it in DOM\n const modal = document.querySelector('dees-modal');\n if (modal && typeof (modal as any).destroy === 'function') {\n (modal as any).destroy();\n }\n resolve(selectedLanguage);\n }}\">\n ${lang}\n
      \n `)}\n
      \n
      \n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modal) => {\n modal.destroy();\n resolve(null);\n }\n }\n ]\n });\n });\n }\n\n /**\n * Shows block settings modal\n */\n static async showBlockSettingsModal(\n block: IBlock, \n onUpdate: (block: IBlock) => void\n ): Promise {\n \n const content = html`\n \n
      \n ${this.getBlockTypeSelector(block, onUpdate)}\n ${block.type === 'code' ? this.getCodeBlockSettings(block, onUpdate) : ''}\n
      \n `;\n \n DeesModal.createAndShow({\n heading: 'Block Settings',\n content,\n menuOptions: [\n {\n name: 'Done',\n action: async (modal) => {\n modal.destroy();\n }\n }\n ]\n });\n }\n\n /**\n * Gets code block settings content\n */\n private static getCodeBlockSettings(\n block: IBlock, \n onUpdate: (block: IBlock) => void\n ): TemplateResult {\n const currentLanguage = block.metadata?.language || 'javascript';\n \n return html`\n \n
      \n
      Programming Language
      \n
      \n ${this.getLanguages().map(lang => html`\n
      {\n if (!block.metadata) block.metadata = {};\n block.metadata.language = lang.toLowerCase();\n onUpdate(block);\n \n // Close modal immediately\n const modal = document.querySelector('dees-modal');\n if (modal && typeof (modal as any).destroy === 'function') {\n (modal as any).destroy();\n }\n }}\"\n data-lang=\"${lang}\"\n >${lang}
      \n `)}\n
      \n
      \n `;\n }\n\n /**\n * Gets available programming languages\n */\n private static getLanguages(): string[] {\n return [...PROGRAMMING_LANGUAGES];\n }\n\n /**\n * Gets block type selector\n */\n private static getBlockTypeSelector(\n block: IBlock,\n onUpdate: (block: IBlock) => void\n ): TemplateResult {\n const blockTypes = WysiwygShortcuts.getSlashMenuItems().filter(item => item.type !== 'divider');\n \n return html`\n
      \n
      Block Type
      \n
      \n ${blockTypes.map(item => html`\n
      {\n const button = e.currentTarget as HTMLElement;\n \n const oldType = block.type;\n block.type = item.type as IBlock['type'];\n \n // Reset metadata for type change\n if (oldType === 'code' && block.type !== 'code') {\n delete block.metadata?.language;\n } else if (oldType === 'list' && block.type !== 'list') {\n delete block.metadata?.listType;\n } else if (block.type === 'list' && !block.metadata?.listType) {\n block.metadata = { listType: 'bullet' };\n } else if (block.type === 'code' && !block.metadata?.language) {\n // Ask for language if changing to code block\n const language = await this.showLanguageSelectionModal();\n if (language) {\n block.metadata = { language };\n } else {\n // User cancelled, revert\n block.type = oldType;\n return;\n }\n }\n \n onUpdate(block);\n \n // Close modal immediately\n const modal = document.querySelector('dees-modal');\n if (modal && typeof (modal as any).destroy === 'function') {\n (modal as any).destroy();\n }\n }}\"\n >\n ${item.icon}\n ${item.label}\n
      \n `)}\n
      \n
      \n `;\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { WysiwygBlocks } from './wysiwyg.blocks.js';\nimport { WysiwygBlockOperations } from './wysiwyg.blockoperations.js';\nimport { WysiwygModalManager } from './wysiwyg.modalmanager.js';\n\nexport class WysiwygInputHandler {\n private component: IWysiwygComponent;\n private saveTimeout: any = null;\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Handles input events for blocks\n */\n handleBlockInput(e: InputEvent, block: IBlock): void {\n if (this.component.isComposing) return;\n \n const target = e.target as HTMLDivElement;\n const textContent = target.textContent || '';\n \n // Check for block type transformations BEFORE updating content\n const detectedType = this.detectBlockTypeIntent(textContent);\n if (detectedType && detectedType.type !== block.type) {\n e.preventDefault();\n this.handleBlockTransformation(block, detectedType, target);\n return;\n }\n \n // Handle slash commands\n this.handleSlashCommand(textContent, target);\n \n // Don't update block content immediately - let the block handle its own content\n // This prevents re-renders during typing\n \n // Schedule auto-save (which will sync content later)\n this.scheduleAutoSave();\n }\n\n /**\n * Updates block content based on its type\n */\n private updateBlockContent(block: IBlock, target: HTMLDivElement): void {\n // Get the block component for proper content extraction\n const wrapperElement = target.closest('.block-wrapper');\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent) {\n // Use the block component's getContent method for consistency\n const newContent = blockComponent.getContent();\n // Only update if content actually changed to avoid unnecessary updates\n if (block.content !== newContent) {\n block.content = newContent;\n }\n \n // Update list metadata if needed\n if (block.type === 'list') {\n const listElement = target.querySelector('ol, ul');\n if (listElement) {\n block.metadata = { \n listType: listElement.tagName.toLowerCase() === 'ol' ? 'ordered' : 'bullet' \n };\n }\n }\n } else {\n // Fallback if block component not found\n if (block.type === 'list') {\n const listItems = target.querySelectorAll('li');\n // Use innerHTML to preserve formatting\n block.content = Array.from(listItems).map(li => li.innerHTML || '').join('\\n');\n \n const listElement = target.querySelector('ol, ul');\n if (listElement) {\n block.metadata = { \n listType: listElement.tagName.toLowerCase() === 'ol' ? 'ordered' : 'bullet' \n };\n }\n } else if (block.type === 'code') {\n block.content = target.textContent || '';\n } else {\n block.content = target.innerHTML || '';\n }\n }\n }\n\n /**\n * Detects if the user is trying to create a specific block type\n */\n private detectBlockTypeIntent(content: string): { type: IBlock['type'], listType?: 'bullet' | 'ordered' } | null {\n // Check heading patterns\n const headingResult = WysiwygShortcuts.checkHeadingShortcut(content);\n if (headingResult) {\n return headingResult;\n }\n \n // Check list patterns\n const listResult = WysiwygShortcuts.checkListShortcut(content);\n if (listResult) {\n return listResult;\n }\n \n // Check quote pattern\n if (WysiwygShortcuts.checkQuoteShortcut(content)) {\n return { type: 'quote' };\n }\n \n // Check code pattern\n if (WysiwygShortcuts.checkCodeShortcut(content)) {\n return { type: 'code' };\n }\n \n // Check divider pattern\n if (WysiwygShortcuts.checkDividerShortcut(content)) {\n return { type: 'divider' };\n }\n \n return null;\n }\n\n /**\n * Handles block type transformation\n */\n private async handleBlockTransformation(\n block: IBlock, \n detectedType: { type: IBlock['type'], listType?: 'bullet' | 'ordered' }, \n target: HTMLDivElement\n ): Promise {\n const blockOps = this.component.blockOperations;\n \n if (detectedType.type === 'list') {\n block.type = 'list';\n block.content = '';\n block.metadata = { listType: detectedType.listType };\n \n const listTag = detectedType.listType === 'ordered' ? 'ol' : 'ul';\n target.innerHTML = `<${listTag}>
    • `;\n \n this.component.updateValue();\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n setTimeout(() => {\n WysiwygBlocks.focusListItem(target);\n }, 0);\n } else if (detectedType.type === 'divider') {\n block.type = 'divider';\n block.content = ' ';\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n const newBlock = blockOps.createBlock();\n blockOps.insertBlockAfter(block, newBlock);\n \n this.component.updateValue();\n } else if (detectedType.type === 'code') {\n const language = await WysiwygModalManager.showLanguageSelectionModal();\n if (language) {\n block.type = 'code';\n block.content = '';\n block.metadata = { language };\n target.textContent = '';\n \n this.component.updateValue();\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n // Focus the code block\n setTimeout(async () => {\n await blockOps.focusBlock(block.id, 'start');\n }, 50);\n }\n } else {\n block.type = detectedType.type;\n block.content = '';\n target.textContent = '';\n \n this.component.updateValue();\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n // Focus the transformed block\n setTimeout(async () => {\n await blockOps.focusBlock(block.id, 'start');\n }, 50);\n }\n }\n\n /**\n * Handles slash command detection and menu display\n */\n private handleSlashCommand(textContent: string, target: HTMLDivElement): void {\n const slashMenu = this.component.slashMenu;\n const isSlashMenuVisible = slashMenu && slashMenu.visible;\n \n if (textContent === '/' || (textContent.startsWith('/') && isSlashMenuVisible)) {\n if (!isSlashMenuVisible && textContent === '/') {\n // Get position for menu based on cursor location\n const rect = this.getCaretCoordinates(target);\n \n // Show the slash menu at the cursor position\n slashMenu.show(\n { x: rect.left, y: rect.bottom + 4 },\n (type: string) => {\n this.component.insertBlock(type);\n }\n );\n \n // Ensure the block maintains focus\n requestAnimationFrame(() => {\n if (document.activeElement !== target) {\n target.focus();\n }\n });\n }\n // Update filter\n if (slashMenu) {\n slashMenu.updateFilter(textContent.slice(1));\n }\n } else if (!textContent.startsWith('/')) {\n this.component.closeSlashMenu();\n }\n }\n \n /**\n * Gets the coordinates of the caret/cursor\n */\n private getCaretCoordinates(element: HTMLElement): DOMRect {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const rect = range.getBoundingClientRect();\n if (rect.width > 0 || rect.height > 0) {\n return rect;\n }\n }\n \n // Fallback to element position\n return element.getBoundingClientRect();\n }\n\n /**\n * Schedules auto-save after a delay\n */\n private scheduleAutoSave(): void {\n if (this.saveTimeout) {\n clearTimeout(this.saveTimeout);\n }\n // Don't auto-save if slash menu is open\n if (this.component.slashMenu && this.component.slashMenu.visible) {\n return;\n }\n this.saveTimeout = setTimeout(() => {\n // Sync all block content from DOM before saving\n this.syncAllBlockContent();\n // Only update value, don't trigger any re-renders\n this.component.updateValue();\n // Don't call requestUpdate() as it's not needed\n }, 2000); // Increased delay to reduce interference with typing\n }\n \n /**\n * Syncs content from all block DOMs to the data model\n */\n private syncAllBlockContent(): void {\n this.component.blocks.forEach((block: IBlock) => {\n const wrapperElement = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent && blockComponent.getContent) {\n const newContent = blockComponent.getContent();\n // Only update if content actually changed\n if (block.content !== newContent) {\n block.content = newContent;\n }\n }\n });\n }\n\n /**\n * Cleans up resources\n */\n destroy(): void {\n if (this.saveTimeout) {\n clearTimeout(this.saveTimeout);\n }\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\nimport { WysiwygSelection } from './wysiwyg.selection.js';\n\nexport class WysiwygKeyboardHandler {\n private component: IWysiwygComponent;\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Handles keyboard events for blocks\n */\n async handleBlockKeyDown(e: KeyboardEvent, block: IBlock): Promise {\n // Handle slash menu navigation\n if (this.component.slashMenu.visible && this.isSlashMenuKey(e.key)) {\n this.component.handleSlashMenuKeyboard(e);\n return;\n }\n\n // Handle formatting shortcuts\n if (this.handleFormattingShortcuts(e)) {\n return;\n }\n\n // Handle special keys\n switch (e.key) {\n case 'Tab':\n this.handleTab(e, block);\n break;\n case 'Enter':\n await this.handleEnter(e, block);\n break;\n case 'Backspace':\n await this.handleBackspace(e, block);\n break;\n case 'Delete':\n await this.handleDelete(e, block);\n break;\n case 'ArrowUp':\n await this.handleArrowUp(e, block);\n break;\n case 'ArrowDown':\n await this.handleArrowDown(e, block);\n break;\n case 'ArrowLeft':\n await this.handleArrowLeft(e, block);\n break;\n case 'ArrowRight':\n await this.handleArrowRight(e, block);\n break;\n }\n }\n\n /**\n * Checks if key is for slash menu navigation\n */\n private isSlashMenuKey(key: string): boolean {\n return ['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(key);\n }\n\n /**\n * Handles formatting keyboard shortcuts\n */\n private handleFormattingShortcuts(e: KeyboardEvent): boolean {\n if (!(e.metaKey || e.ctrlKey)) return false;\n\n switch (e.key.toLowerCase()) {\n case 'b':\n e.preventDefault();\n // Use Promise to ensure focus is maintained\n Promise.resolve().then(() => this.component.applyFormat('bold'));\n return true;\n case 'i':\n e.preventDefault();\n Promise.resolve().then(() => this.component.applyFormat('italic'));\n return true;\n case 'u':\n e.preventDefault();\n Promise.resolve().then(() => this.component.applyFormat('underline'));\n return true;\n case 'k':\n e.preventDefault();\n Promise.resolve().then(() => this.component.applyFormat('link'));\n return true;\n }\n return false;\n }\n\n /**\n * Handles Tab key\n */\n private handleTab(e: KeyboardEvent, block: IBlock): void {\n if (block.type === 'code') {\n // Allow tab in code blocks - handled by CodeBlockHandler\n // Let it bubble to the block handler\n return;\n } else if (block.type === 'list') {\n // Future: implement list indentation\n e.preventDefault();\n }\n }\n\n /**\n * Handles Enter key\n */\n private async handleEnter(e: KeyboardEvent, block: IBlock): Promise {\n const blockOps = this.component.blockOperations;\n\n // For non-editable blocks, create a new paragraph after\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n return;\n }\n\n if (block.type === 'code') {\n if (e.shiftKey) {\n // Shift+Enter in code blocks creates a new block\n e.preventDefault();\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n // Normal Enter in code blocks creates new line (let browser handle it)\n return;\n }\n\n if (!e.shiftKey) {\n if (block.type === 'list') {\n await this.handleEnterInList(e, block);\n } else {\n // Split content at cursor position\n e.preventDefault();\n \n // Get the block component - need to search in the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent && blockComponent.getSplitContent) {\n const splitContent = blockComponent.getSplitContent();\n \n if (splitContent) {\n // Update current block with content before cursor\n blockComponent.setContent(splitContent.before);\n block.content = splitContent.before;\n \n // Create new block with content after cursor\n const newBlock = blockOps.createBlock('paragraph', splitContent.after);\n \n // Insert the new block\n await blockOps.insertBlockAfter(block, newBlock);\n \n // Update the value after both blocks are set\n this.component.updateValue();\n } else {\n // Fallback - just create empty block\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n } else {\n // No block component or method, just create empty block\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n }\n }\n // Shift+Enter creates line break (let browser handle it)\n }\n\n /**\n * Handles Enter key in list blocks\n */\n private async handleEnterInList(e: KeyboardEvent, block: IBlock): Promise {\n const selection = window.getSelection();\n \n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const currentLi = range.startContainer.parentElement?.closest('li');\n \n if (currentLi && currentLi.textContent === '') {\n // Empty list item - exit list mode\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n // Otherwise, let browser create new list item\n }\n }\n\n /**\n * Handles Backspace key\n */\n private async handleBackspace(e: KeyboardEvent, block: IBlock): Promise {\n const blockOps = this.component.blockOperations;\n \n // Handle non-editable blocks\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n \n // If it's the only block, delete it and create a new paragraph\n if (this.component.blocks.length === 1) {\n // Save state for undo\n this.component.saveToHistory(false);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Create a new paragraph block\n const newBlock = blockOps.createBlock('paragraph', '');\n this.component.blocks = [newBlock];\n \n // Re-render blocks\n this.component.renderBlocksProgrammatically();\n \n // Focus the new block\n await blockOps.focusBlock(newBlock.id, 'start');\n \n // Update value\n this.component.updateValue();\n return;\n }\n \n // Save state for undo\n this.component.saveToHistory(false);\n \n // Find the previous block to focus\n const prevBlock = blockOps.getPreviousBlock(block.id);\n const nextBlock = blockOps.getNextBlock(block.id);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Focus the appropriate block\n if (prevBlock && prevBlock.type !== 'divider' && prevBlock.type !== 'image') {\n await blockOps.focusBlock(prevBlock.id, 'end');\n } else if (nextBlock && nextBlock.type !== 'divider' && nextBlock.type !== 'image') {\n await blockOps.focusBlock(nextBlock.id, 'start');\n } else if (prevBlock) {\n // If previous block is also non-editable, just select it\n await blockOps.focusBlock(prevBlock.id);\n } else if (nextBlock) {\n // If next block is also non-editable, just select it\n await blockOps.focusBlock(nextBlock.id);\n }\n \n return;\n }\n \n // Get the block component to check cursor position\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get cursor position\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n \n const actualContent = blockComponent.getContent ? blockComponent.getContent() : target.textContent;\n \n // Check if cursor is at the beginning of the block\n if (cursorPos === 0) {\n e.preventDefault();\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n // If previous block is non-editable, select it first\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(prevBlock.type)) {\n await blockOps.focusBlock(prevBlock.id);\n return;\n }\n \n \n // Save checkpoint for undo\n this.component.saveToHistory(false);\n \n // Special handling for different block types\n if (prevBlock.type === 'code' && block.type !== 'code') {\n // Can't merge non-code into code block, just remove empty block\n if (block.content === '') {\n blockOps.removeBlock(block.id);\n await blockOps.focusBlock(prevBlock.id, 'end');\n }\n return;\n }\n \n if (block.type === 'code' && prevBlock.type !== 'code') {\n // Can't merge code into non-code block\n const actualContent = blockComponent.getContent ? blockComponent.getContent() : block.content;\n if (actualContent === '' || actualContent.trim() === '') {\n blockOps.removeBlock(block.id);\n await blockOps.focusBlock(prevBlock.id, 'end');\n }\n return;\n }\n \n // Get the content of both blocks\n const prevBlockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${prevBlock.id}\"]`);\n const prevBlockComponent = prevBlockWrapper?.querySelector('dees-wysiwyg-block') as any;\n const prevContent = prevBlockComponent?.getContent() || prevBlock.content || '';\n const currentContent = blockComponent.getContent() || block.content || '';\n \n // Merge content\n let mergedContent = '';\n if (prevBlock.type === 'code' && block.type === 'code') {\n // For code blocks, join with newline\n mergedContent = prevContent + (prevContent && currentContent ? '\\n' : '') + currentContent;\n } else if (prevBlock.type === 'list' && block.type === 'list') {\n // For lists, combine the list items\n mergedContent = prevContent + (prevContent && currentContent ? '\\n' : '') + currentContent;\n } else {\n // For other blocks, join with space if both have content\n mergedContent = prevContent + (prevContent && currentContent ? ' ' : '') + currentContent;\n }\n \n // Store cursor position (where the merge point is)\n const mergePoint = prevContent.length;\n \n // Update previous block with merged content\n blockOps.updateBlockContent(prevBlock.id, mergedContent);\n if (prevBlockComponent) {\n prevBlockComponent.setContent(mergedContent);\n }\n \n // Remove current block\n blockOps.removeBlock(block.id);\n \n // Focus previous block at merge point\n await blockOps.focusBlock(prevBlock.id, mergePoint);\n }\n } else if (this.component.blocks.length > 1) {\n // Check if block is actually empty by getting current content from DOM\n const currentContent = blockComponent.getContent ? blockComponent.getContent() : block.content;\n \n if (currentContent === '' || currentContent.trim() === '') {\n // Empty block - just remove it\n e.preventDefault();\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n blockOps.removeBlock(block.id);\n \n if (prevBlock.type !== 'divider') {\n await blockOps.focusBlock(prevBlock.id, 'end');\n }\n }\n }\n }\n // Otherwise, let browser handle normal backspace\n }\n\n /**\n * Handles Delete key\n */\n private async handleDelete(e: KeyboardEvent, block: IBlock): Promise {\n const blockOps = this.component.blockOperations;\n \n // Handle non-editable blocks - same as backspace\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n \n // If it's the only block, delete it and create a new paragraph\n if (this.component.blocks.length === 1) {\n // Save state for undo\n this.component.saveToHistory(false);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Create a new paragraph block\n const newBlock = blockOps.createBlock('paragraph', '');\n this.component.blocks = [newBlock];\n \n // Re-render blocks\n this.component.renderBlocksProgrammatically();\n \n // Focus the new block\n await blockOps.focusBlock(newBlock.id, 'start');\n \n // Update value\n this.component.updateValue();\n return;\n }\n \n // Save state for undo\n this.component.saveToHistory(false);\n \n // Find the previous block to focus\n const prevBlock = blockOps.getPreviousBlock(block.id);\n const nextBlock = blockOps.getNextBlock(block.id);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Focus the appropriate block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nextBlock && !nonEditableTypes.includes(nextBlock.type)) {\n await blockOps.focusBlock(nextBlock.id, 'start');\n } else if (prevBlock && !nonEditableTypes.includes(prevBlock.type)) {\n await blockOps.focusBlock(prevBlock.id, 'end');\n } else if (nextBlock) {\n // If next block is also non-editable, just select it\n await blockOps.focusBlock(nextBlock.id);\n } else if (prevBlock) {\n // If previous block is also non-editable, just select it\n await blockOps.focusBlock(prevBlock.id);\n }\n \n return;\n }\n \n // For editable blocks, check if we're at the end and next block is non-editable\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get cursor position\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n const textLength = target.textContent?.length || 0;\n \n // Check if cursor is at the end of the block\n if (cursorPos === textLength) {\n const nextBlock = blockOps.getNextBlock(block.id);\n \n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nextBlock && nonEditableTypes.includes(nextBlock.type)) {\n e.preventDefault();\n await blockOps.focusBlock(nextBlock.id);\n return;\n }\n }\n \n // Otherwise, let browser handle normal delete\n }\n\n /**\n * Handles ArrowUp key - navigate to previous block if at beginning or first line\n */\n private async handleArrowUp(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, always navigate to previous block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n await blockOps.focusBlock(prevBlock.id, nonEditableTypes.includes(prevBlock.type) ? undefined : 'end');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if we're on the first line\n if (this.isOnFirstLine(selectionInfo, target, ...shadowRoots)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(prevBlock.id, nonEditableTypes.includes(prevBlock.type) ? undefined : 'end');\n }\n }\n // Otherwise, let browser handle normal navigation\n }\n\n /**\n * Handles ArrowDown key - navigate to next block if at end or last line\n */\n private async handleArrowDown(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, always navigate to next block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if we're on the last line\n if (this.isOnLastLine(selectionInfo, target, ...shadowRoots)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n }\n // Otherwise, let browser handle normal navigation\n }\n\n /**\n * Helper to get the last text node in an element\n */\n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n\n /**\n * Handles ArrowLeft key - navigate to previous block if at beginning\n */\n private async handleArrowLeft(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, navigate to previous block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(prevBlock.id, nonEditableTypes.includes(prevBlock.type) ? undefined : 'end');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if cursor is at the beginning of the block\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n \n if (cursorPos === 0) {\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n e.preventDefault();\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n const position = nonEditableTypes.includes(prevBlock.type) ? undefined : 'end';\n await blockOps.focusBlock(prevBlock.id, position);\n }\n }\n // Otherwise, let the browser handle normal left arrow navigation\n }\n\n /**\n * Handles ArrowRight key - navigate to next block if at end\n */\n private async handleArrowRight(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, navigate to next block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if cursor is at the end of the block\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n const textLength = target.textContent?.length || 0;\n \n if (cursorPos === textLength) {\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n e.preventDefault();\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n }\n // Otherwise, let the browser handle normal right arrow navigation\n }\n\n /**\n * Handles slash menu keyboard navigation\n * Note: This is now handled by the component directly\n */\n \n /**\n * Check if cursor is on the first line of a block\n */\n private isOnFirstLine(selectionInfo: any, target: HTMLElement, ...shadowRoots: ShadowRoot[]): boolean {\n try {\n // Create a range from the selection info\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Get the container element\n let container = range.commonAncestorContainer;\n if (container.nodeType === Node.TEXT_NODE) {\n container = container.parentElement;\n }\n \n // Get the top position of the container\n const containerRect = (container as Element).getBoundingClientRect();\n \n // Check if we're near the top (within 5px tolerance for line height variations)\n const isNearTop = rect.top - containerRect.top < 5;\n \n // For single-line content, also check if we're at the beginning\n if (container.textContent && !container.textContent.includes('\\n')) {\n const cursorPos = WysiwygSelection.getCursorPositionInElement(container as Element, ...shadowRoots);\n return cursorPos === 0;\n }\n \n return isNearTop;\n } catch (e) {\n console.warn('Error checking first line:', e);\n // Fallback to position-based check\n const cursorPos = selectionInfo.startOffset;\n return cursorPos === 0;\n }\n }\n \n /**\n * Check if cursor is on the last line of a block\n */\n private isOnLastLine(selectionInfo: any, target: HTMLElement, ...shadowRoots: ShadowRoot[]): boolean {\n try {\n // Create a range from the selection info\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Get the container element\n let container = range.commonAncestorContainer;\n if (container.nodeType === Node.TEXT_NODE) {\n container = container.parentElement;\n }\n \n // Get the bottom position of the container\n const containerRect = (container as Element).getBoundingClientRect();\n \n // Check if we're near the bottom (within 5px tolerance for line height variations)\n const isNearBottom = containerRect.bottom - rect.bottom < 5;\n \n // For single-line content, also check if we're at the end\n if (container.textContent && !container.textContent.includes('\\n')) {\n const textLength = target.textContent?.length || 0;\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n return cursorPos === textLength;\n }\n \n return isNearBottom;\n } catch (e) {\n console.warn('Error checking last line:', e);\n // Fallback to position-based check\n const textLength = target.textContent?.length || 0;\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n return cursorPos === textLength;\n }\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\n\nexport class WysiwygDragDropHandler {\n private component: IWysiwygComponent;\n private draggedBlockId: string | null = null;\n private dragOverBlockId: string | null = null;\n private dragOverPosition: 'before' | 'after' | null = null;\n private dropIndicator: HTMLElement | null = null;\n private initialMouseY: number = 0;\n private initialBlockY: number = 0;\n private draggedBlockElement: HTMLElement | null = null;\n private draggedBlockHeight: number = 0;\n private draggedBlockContentHeight: number = 0;\n private draggedBlockMarginTop: number = 0;\n private lastUpdateTime: number = 0;\n private updateThrottle: number = 80; // milliseconds\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Gets the current drag state\n */\n get dragState() {\n return {\n draggedBlockId: this.draggedBlockId,\n dragOverBlockId: this.dragOverBlockId,\n dragOverPosition: this.dragOverPosition\n };\n }\n\n /**\n * Handles drag start\n */\n handleDragStart(e: DragEvent, block: IBlock): void {\n if (!e.dataTransfer) return;\n \n this.draggedBlockId = block.id;\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setData('text/plain', block.id);\n \n // Hide the default drag image\n const emptyImg = new Image();\n emptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n e.dataTransfer.setDragImage(emptyImg, 0, 0);\n \n // Store initial mouse position and block element\n this.initialMouseY = e.clientY;\n this.draggedBlockElement = this.component.editorContentRef.querySelector(`[data-block-id=\"${block.id}\"]`);\n \n \n if (this.draggedBlockElement) {\n // Get the wrapper rect for measurements\n const rect = this.draggedBlockElement.getBoundingClientRect();\n this.initialBlockY = rect.top;\n \n // Get the inner block element for proper measurements\n const innerBlock = this.draggedBlockElement.querySelector('.block');\n if (innerBlock) {\n const innerRect = innerBlock.getBoundingClientRect();\n const computedStyle = window.getComputedStyle(innerBlock);\n this.draggedBlockMarginTop = parseInt(computedStyle.marginTop) || 0;\n this.draggedBlockContentHeight = innerRect.height;\n }\n \n // The drop indicator should match the wrapper height exactly\n // The wrapper already includes all the space the block occupies\n this.draggedBlockHeight = rect.height;\n \n console.log('Drag measurements:', {\n wrapperHeight: rect.height,\n marginTop: this.draggedBlockMarginTop,\n dropIndicatorHeight: this.draggedBlockHeight,\n contentHeight: this.draggedBlockContentHeight,\n blockId: block.id\n });\n \n // Create drop indicator\n this.createDropIndicator();\n \n // Set up drag event listeners\n document.addEventListener('dragover', this.handleGlobalDragOver);\n document.addEventListener('dragend', this.handleGlobalDragEnd);\n }\n \n // Update component state\n this.component.draggedBlockId = this.draggedBlockId;\n \n // Add dragging class after a small delay\n setTimeout(() => {\n if (this.draggedBlockElement) {\n this.draggedBlockElement.classList.add('dragging');\n }\n if (this.component.editorContentRef) {\n this.component.editorContentRef.classList.add('dragging');\n }\n }, 10);\n }\n\n /**\n * Handles drag end\n */\n handleDragEnd(): void {\n // Clean up visual state\n const allBlocks = this.component.editorContentRef.querySelectorAll('.block-wrapper');\n allBlocks.forEach((block: HTMLElement) => {\n block.classList.remove('dragging', 'move-up', 'move-down');\n block.style.removeProperty('--drag-offset');\n block.style.removeProperty('transform');\n });\n \n // Remove dragging class from editor\n if (this.component.editorContentRef) {\n this.component.editorContentRef.classList.remove('dragging');\n }\n \n // Reset drag state\n this.draggedBlockId = null;\n this.dragOverBlockId = null;\n this.dragOverPosition = null;\n this.draggedBlockElement = null;\n this.draggedBlockHeight = 0;\n this.draggedBlockContentHeight = 0;\n this.draggedBlockMarginTop = 0;\n this.initialBlockY = 0;\n \n // Update component state\n this.component.draggedBlockId = null;\n this.component.dragOverBlockId = null;\n this.component.dragOverPosition = null;\n }\n\n /**\n * Handles drag over\n */\n handleDragOver(e: DragEvent, block: IBlock): void {\n e.preventDefault();\n if (!e.dataTransfer || !this.draggedBlockId || this.draggedBlockId === block.id) return;\n \n e.dataTransfer.dropEffect = 'move';\n \n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const midpoint = rect.top + rect.height / 2;\n \n this.dragOverBlockId = block.id;\n this.dragOverPosition = e.clientY < midpoint ? 'before' : 'after';\n \n // Update component state\n this.component.dragOverBlockId = this.dragOverBlockId;\n this.component.dragOverPosition = this.dragOverPosition;\n \n // The parent component already handles drag-over classes programmatically\n }\n\n /**\n * Handles drag leave\n */\n handleDragLeave(block: IBlock): void {\n if (this.dragOverBlockId === block.id) {\n this.dragOverBlockId = null;\n this.dragOverPosition = null;\n \n // Update component state\n this.component.dragOverBlockId = null;\n this.component.dragOverPosition = null;\n \n // The parent component already handles removing drag-over classes programmatically\n }\n }\n\n /**\n * Handles drop\n */\n handleDrop(e: DragEvent, targetBlock: IBlock): void {\n e.preventDefault();\n \n if (!this.draggedBlockId || this.draggedBlockId === targetBlock.id) return;\n \n // The parent component already has a handleDrop method that handles this programmatically\n // We'll delegate to that to ensure proper programmatic rendering\n this.component.handleDrop(e, targetBlock);\n }\n\n\n /**\n * Checks if a block is being dragged\n */\n isDragging(blockId: string): boolean {\n return this.draggedBlockId === blockId;\n }\n\n /**\n * Checks if a block has drag over state\n */\n isDragOver(blockId: string): boolean {\n return this.dragOverBlockId === blockId;\n }\n\n /**\n * Gets drag over CSS classes for a block\n */\n getDragOverClasses(blockId: string): string {\n if (!this.isDragOver(blockId)) return '';\n return this.dragOverPosition === 'before' ? 'drag-over-before' : 'drag-over-after';\n }\n\n\n /**\n * Creates the drop indicator element\n */\n private createDropIndicator(): void {\n this.dropIndicator = document.createElement('div');\n this.dropIndicator.className = 'drop-indicator';\n this.dropIndicator.style.display = 'none';\n this.component.editorContentRef.appendChild(this.dropIndicator);\n }\n\n /**\n * Handles global dragover to update dragged block position and move other blocks\n */\n private handleGlobalDragOver = (e: DragEvent): void => {\n e.preventDefault();\n \n if (!this.draggedBlockElement) return;\n \n // Calculate vertical offset from initial position\n const deltaY = e.clientY - this.initialMouseY;\n \n // Apply transform to move the dragged block vertically\n this.draggedBlockElement.style.transform = `translateY(${deltaY}px)`;\n \n // Throttle position updates to reduce stuttering\n const now = Date.now();\n if (now - this.lastUpdateTime < this.updateThrottle) {\n return;\n }\n this.lastUpdateTime = now;\n \n // Calculate which blocks should move\n this.updateBlockPositions(e.clientY);\n };\n\n /**\n * Updates block positions based on cursor position\n */\n private updateBlockPositions(mouseY: number): void {\n const blocks = Array.from(this.component.editorContentRef.querySelectorAll('.block-wrapper')) as HTMLElement[];\n const draggedIndex = blocks.findIndex(b => b.getAttribute('data-block-id') === this.draggedBlockId);\n \n if (draggedIndex === -1) return;\n \n // Reset all transforms first (except the dragged block)\n blocks.forEach(block => {\n if (block.getAttribute('data-block-id') !== this.draggedBlockId) {\n block.classList.remove('move-up', 'move-down');\n block.style.removeProperty('--drag-offset');\n }\n });\n \n // Calculate where the dragged block should be inserted\n let newIndex = blocks.length; // Default to end\n \n for (let i = 0; i < blocks.length; i++) {\n if (i === draggedIndex) continue;\n \n const block = blocks[i];\n const rect = block.getBoundingClientRect();\n const blockTop = rect.top;\n \n // Check if mouse is above this block's middle\n if (mouseY < blockTop + (rect.height * 0.5)) {\n newIndex = i;\n break;\n }\n }\n \n \n // Apply transforms to move blocks out of the way\n for (let i = 0; i < blocks.length; i++) {\n if (i === draggedIndex) continue;\n \n const block = blocks[i];\n \n // Determine if this block needs to move\n if (draggedIndex < newIndex) {\n // Dragging down: blocks between original and new position move up\n if (i > draggedIndex && i < newIndex) {\n block.classList.add('move-up');\n block.style.setProperty('--drag-offset', `${this.draggedBlockHeight}px`);\n }\n } else if (draggedIndex > newIndex) {\n // Dragging up: blocks between new and original position move down\n if (i >= newIndex && i < draggedIndex) {\n block.classList.add('move-down');\n block.style.setProperty('--drag-offset', `${this.draggedBlockHeight}px`);\n }\n }\n }\n \n // Update drop indicator position\n this.updateDropIndicator(blocks, newIndex, draggedIndex);\n }\n\n /**\n * Updates the drop indicator position\n */\n private updateDropIndicator(blocks: HTMLElement[], targetIndex: number, draggedIndex: number): void {\n if (!this.dropIndicator || !this.draggedBlockElement) return;\n \n this.dropIndicator.style.display = 'block';\n \n const containerRect = this.component.editorContentRef.getBoundingClientRect();\n let topPosition = 0;\n \n // Build array of visual block positions (excluding dragged block)\n const visualBlocks: { index: number, top: number, bottom: number }[] = [];\n \n for (let i = 0; i < blocks.length; i++) {\n if (i === draggedIndex) continue; // Skip the dragged block\n \n const block = blocks[i];\n const rect = block.getBoundingClientRect();\n let top = rect.top - containerRect.top;\n let bottom = rect.bottom - containerRect.top;\n \n // Account for any transforms\n const transform = window.getComputedStyle(block).transform;\n if (transform && transform !== 'none') {\n const matrix = new DOMMatrix(transform);\n const yOffset = matrix.m42;\n top += yOffset;\n bottom += yOffset;\n }\n \n visualBlocks.push({ index: i, top, bottom });\n }\n \n // Sort by visual position\n visualBlocks.sort((a, b) => a.top - b.top);\n \n // Adjust targetIndex to account for excluded dragged block\n let adjustedTargetIndex = targetIndex;\n if (targetIndex > draggedIndex) {\n adjustedTargetIndex--; // Reduce by 1 since dragged block is not in visualBlocks\n }\n \n // Calculate drop position\n // Get the margin that will be applied based on the dragged block type\n let blockMargin = 16; // default margin\n if (this.draggedBlockElement) {\n const draggedBlock = this.component.blocks.find(b => b.id === this.draggedBlockId);\n if (draggedBlock) {\n const blockType = draggedBlock.type;\n if (blockType === 'heading-1' || blockType === 'heading-2' || blockType === 'heading-3') {\n blockMargin = 24;\n } else if (blockType === 'code' || blockType === 'quote') {\n blockMargin = 20;\n }\n }\n }\n \n if (adjustedTargetIndex === 0) {\n // Insert at the very top - no margin needed for first block\n topPosition = 0;\n } else if (adjustedTargetIndex >= visualBlocks.length) {\n // Insert at the end\n const lastBlock = visualBlocks[visualBlocks.length - 1];\n if (lastBlock) {\n topPosition = lastBlock.bottom;\n // Add margin that will be applied to the dropped block\n topPosition += blockMargin;\n }\n } else {\n // Insert between blocks\n const blockBefore = visualBlocks[adjustedTargetIndex - 1];\n if (blockBefore) {\n topPosition = blockBefore.bottom;\n // Add margin that will be applied to the dropped block\n topPosition += blockMargin;\n }\n }\n \n // Set the indicator height to match the dragged block\n this.dropIndicator.style.height = `${this.draggedBlockHeight}px`;\n \n // Set position\n this.dropIndicator.style.top = `${Math.max(0, topPosition)}px`;\n \n console.log('Drop indicator update:', {\n targetIndex,\n adjustedTargetIndex,\n draggedIndex,\n topPosition,\n height: this.draggedBlockHeight,\n blockMargin,\n visualBlocks: visualBlocks.map(b => ({ index: b.index, top: b.top, bottom: b.bottom }))\n });\n }\n\n /**\n * Handles global drag end\n */\n private handleGlobalDragEnd = (): void => {\n // Clean up event listeners\n document.removeEventListener('dragover', this.handleGlobalDragOver);\n document.removeEventListener('dragend', this.handleGlobalDragEnd);\n \n // Remove drop indicator\n if (this.dropIndicator) {\n this.dropIndicator.remove();\n this.dropIndicator = null;\n }\n \n // Trigger the actual drop if we have a dragged block\n if (this.draggedBlockId) {\n // Small delay to ensure transforms are applied\n requestAnimationFrame(() => {\n this.performDrop();\n // Call the regular drag end handler after drop\n this.handleDragEnd();\n });\n } else {\n // Call the regular drag end handler\n this.handleDragEnd();\n }\n };\n\n /**\n * Performs the actual drop operation\n */\n private performDrop(): void {\n if (!this.draggedBlockId) return;\n \n // Get the visual order of blocks based on their positions\n const blockElements = Array.from(this.component.editorContentRef.querySelectorAll('.block-wrapper')) as HTMLElement[];\n const draggedElement = blockElements.find(el => el.getAttribute('data-block-id') === this.draggedBlockId);\n \n if (!draggedElement) return;\n \n \n // Create an array of blocks with their visual positions\n const visualOrder = blockElements.map(el => {\n const id = el.getAttribute('data-block-id');\n const rect = el.getBoundingClientRect();\n const centerY = rect.top + rect.height / 2;\n return { id, centerY, element: el };\n });\n \n // Sort by visual Y position\n visualOrder.sort((a, b) => a.centerY - b.centerY);\n \n // Get the new order of block IDs\n const newBlockIds = visualOrder.map(item => item.id).filter(id => id !== null);\n \n // Find the original block data\n const originalBlocks = [...this.component.blocks];\n const draggedBlock = originalBlocks.find(b => b.id === this.draggedBlockId);\n \n if (!draggedBlock) return;\n \n // Check if order actually changed\n const oldOrder = originalBlocks.map(b => b.id);\n const orderChanged = !newBlockIds.every((id, index) => id === oldOrder[index]);\n \n if (!orderChanged) {\n return;\n }\n \n // Reorder blocks based on visual positions\n const newBlocks = newBlockIds.map(id => originalBlocks.find(b => b.id === id)!).filter(Boolean);\n \n // Update blocks\n this.component.blocks = newBlocks;\n \n // Re-render blocks programmatically\n this.component.renderBlocksProgrammatically();\n \n // Update value\n this.component.updateValue();\n \n // Focus the moved block after a delay\n setTimeout(() => {\n if (draggedBlock.type !== 'divider') {\n this.component.blockOperations.focusBlock(draggedBlock.id);\n }\n }, 100);\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\n\nexport interface IHistoryState {\n blocks: IBlock[];\n selectedBlockId: string | null;\n cursorPosition?: {\n blockId: string;\n offset: number;\n };\n timestamp: number;\n}\n\nexport class WysiwygHistory {\n private history: IHistoryState[] = [];\n private currentIndex: number = -1;\n private maxHistorySize: number = 50;\n private lastSaveTime: number = 0;\n private saveDebounceMs: number = 500; // Debounce saves to avoid too many snapshots\n \n constructor() {\n // Initialize with empty state\n this.history = [];\n this.currentIndex = -1;\n }\n \n /**\n * Save current state to history\n */\n saveState(blocks: IBlock[], selectedBlockId: string | null, cursorPosition?: { blockId: string; offset: number }): void {\n const now = Date.now();\n \n // Debounce rapid changes (like typing)\n if (now - this.lastSaveTime < this.saveDebounceMs && this.currentIndex >= 0) {\n // Update the current state instead of creating a new one\n this.history[this.currentIndex] = {\n blocks: this.cloneBlocks(blocks),\n selectedBlockId,\n cursorPosition: cursorPosition ? { ...cursorPosition } : undefined,\n timestamp: now\n };\n return;\n }\n \n // Remove any states after current index (when we save after undoing)\n if (this.currentIndex < this.history.length - 1) {\n this.history = this.history.slice(0, this.currentIndex + 1);\n }\n \n // Add new state\n const newState: IHistoryState = {\n blocks: this.cloneBlocks(blocks),\n selectedBlockId,\n cursorPosition: cursorPosition ? { ...cursorPosition } : undefined,\n timestamp: now\n };\n \n this.history.push(newState);\n this.currentIndex++;\n \n // Limit history size\n if (this.history.length > this.maxHistorySize) {\n this.history.shift();\n this.currentIndex--;\n }\n \n this.lastSaveTime = now;\n }\n \n /**\n * Force save a checkpoint (useful for operations like block deletion)\n */\n saveCheckpoint(blocks: IBlock[], selectedBlockId: string | null, cursorPosition?: { blockId: string; offset: number }): void {\n this.lastSaveTime = 0; // Reset debounce\n this.saveState(blocks, selectedBlockId, cursorPosition);\n }\n \n /**\n * Undo to previous state\n */\n undo(): IHistoryState | null {\n if (!this.canUndo()) {\n return null;\n }\n \n this.currentIndex--;\n return this.cloneState(this.history[this.currentIndex]);\n }\n \n /**\n * Redo to next state\n */\n redo(): IHistoryState | null {\n if (!this.canRedo()) {\n return null;\n }\n \n this.currentIndex++;\n return this.cloneState(this.history[this.currentIndex]);\n }\n \n /**\n * Check if undo is available\n */\n canUndo(): boolean {\n return this.currentIndex > 0;\n }\n \n /**\n * Check if redo is available\n */\n canRedo(): boolean {\n return this.currentIndex < this.history.length - 1;\n }\n \n /**\n * Get current state\n */\n getCurrentState(): IHistoryState | null {\n if (this.currentIndex >= 0 && this.currentIndex < this.history.length) {\n return this.cloneState(this.history[this.currentIndex]);\n }\n return null;\n }\n \n /**\n * Clear history\n */\n clear(): void {\n this.history = [];\n this.currentIndex = -1;\n this.lastSaveTime = 0;\n }\n \n /**\n * Deep clone blocks\n */\n private cloneBlocks(blocks: IBlock[]): IBlock[] {\n return blocks.map(block => ({\n ...block,\n metadata: block.metadata ? { ...block.metadata } : undefined\n }));\n }\n \n /**\n * Clone a history state\n */\n private cloneState(state: IHistoryState): IHistoryState {\n return {\n blocks: this.cloneBlocks(state.blocks),\n selectedBlockId: state.selectedBlockId,\n cursorPosition: state.cursorPosition ? { ...state.cursorPosition } : undefined,\n timestamp: state.timestamp\n };\n }\n \n /**\n * Get history info for debugging\n */\n getHistoryInfo(): { size: number; currentIndex: number; canUndo: boolean; canRedo: boolean } {\n return {\n size: this.history.length,\n currentIndex: this.currentIndex,\n canUndo: this.canUndo(),\n canRedo: this.canRedo()\n };\n }\n}", "import {\n customElement,\n property,\n static as html,\n DeesElement,\n type TemplateResult,\n cssManager,\n css,\n} from '@design.estate/dees-element';\n\nimport { type IBlock } from './wysiwyg.types.js';\nimport { WysiwygBlocks } from './wysiwyg.blocks.js';\nimport { WysiwygSelection } from './wysiwyg.selection.js';\nimport { BlockRegistry, type IBlockEventHandlers } from './blocks/index.js';\nimport './wysiwyg.blockregistration.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-wysiwyg-block': DeesWysiwygBlock;\n }\n}\n\n@customElement('dees-wysiwyg-block')\nexport class DeesWysiwygBlock extends DeesElement {\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Clean up selection handler\n if ((this as any)._selectionHandler) {\n document.removeEventListener('selectionchange', (this as any)._selectionHandler);\n }\n }\n @property({ type: Object })\n accessor block: IBlock;\n\n @property({ type: Boolean })\n accessor isSelected: boolean = false;\n\n @property({ type: Object })\n accessor handlers: IBlockEventHandlers;\n\n @property({ type: Object })\n accessor wysiwygComponent: any; // Reference to parent dees-input-wysiwyg\n\n // Reference to the editable block element\n private blockElement: HTMLDivElement | null = null;\n \n // Track if we've initialized the content\n private contentInitialized: boolean = false;\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n\n private handlerStylesInjected = false;\n \n // Block types that don't support contenteditable\n private static readonly NON_EDITABLE_TYPES = ['image', 'divider', 'youtube'];\n \n private injectHandlerStyles(): void {\n // Only inject once per instance\n if (this.handlerStylesInjected) return;\n this.handlerStylesInjected = true;\n \n // Get styles from all registered block handlers\n let styles = '';\n const blockTypes = BlockRegistry.getAllTypes();\n for (const type of blockTypes) {\n const handler = BlockRegistry.getHandler(type);\n if (handler) {\n styles += handler.getStyles();\n }\n }\n \n if (styles) {\n // Create and inject style element\n const styleElement = document.createElement('style');\n styleElement.textContent = styles;\n this.shadowRoot?.appendChild(styleElement);\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n }\n\n .block {\n padding: 4px 0;\n min-height: 1.6em;\n outline: none;\n width: 100%;\n word-wrap: break-word;\n position: relative;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('#000000', '#e0e0e0')};\n }\n\n .block:empty:not(:focus)::before {\n content: attr(data-placeholder);\n color: ${cssManager.bdTheme('#999', '#666')};\n position: absolute;\n pointer-events: none;\n }\n\n /* Block-specific styles moved to handlers */\n\n\n /* Formatting styles */\n .block :is(b, strong) {\n font-weight: 600;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .block :is(i, em) {\n font-style: italic;\n }\n\n .block u {\n text-decoration: underline;\n }\n\n .block s {\n text-decoration: line-through;\n }\n\n .block code {\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 0.9em;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.1)')};\n padding: 2px 6px;\n border-radius: 3px;\n color: ${cssManager.bdTheme('#d14', '#ff6b6b')};\n }\n\n .block a {\n color: ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n text-decoration: none;\n border-bottom: 1px solid transparent;\n transition: border-color 0.15s ease;\n cursor: pointer;\n }\n\n .block a:hover {\n border-bottom-color: ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n }\n\n /* Code block container and language styles moved to handler */\n\n /* Selection styles */\n .block ::selection {\n background: ${cssManager.bdTheme('rgba(0, 102, 204, 0.3)', 'rgba(77, 148, 255, 0.3)')};\n color: inherit;\n }\n\n\n /* Strike through */\n .block :is(s, strike) {\n text-decoration: line-through;\n opacity: 0.7;\n }\n\n\n /* Block margin adjustments based on type */\n :host-context(.block-wrapper:first-child) .block {\n margin-top: 0 !important;\n }\n\n :host-context(.block-wrapper:last-child) .block {\n margin-bottom: 0;\n }\n\n /* Selected state */\n .block.selected {\n background: ${cssManager.bdTheme('rgba(0, 102, 204, 0.05)', 'rgba(77, 148, 255, 0.08)')};\n box-shadow: inset 0 0 0 2px ${cssManager.bdTheme('rgba(0, 102, 204, 0.2)', 'rgba(77, 148, 255, 0.2)')};\n border-radius: 4px;\n margin-left: -8px;\n margin-right: -8px;\n padding-left: 8px;\n padding-right: 8px;\n }\n\n\n\n\n `,\n ];\n\n protected shouldUpdate(changedProperties: Map): boolean {\n // If selection state changed, update the selected class without re-rendering\n if (changedProperties.has('isSelected') && this.block) {\n // Find the block element based on block type\n let element: HTMLElement | null = null;\n \n // Build the specific selector based on block type\n const blockType = this.block.type;\n const selector = `.block.${blockType}`;\n \n element = this.shadowRoot?.querySelector(selector) as HTMLElement;\n \n if (element) {\n if (this.isSelected) {\n element.classList.add('selected');\n } else {\n element.classList.remove('selected');\n }\n }\n return false; // Don't re-render, just update the class\n }\n \n // Never update if only the block content changed\n if (changedProperties.has('block') && this.block) {\n const oldBlock = changedProperties.get('block');\n if (oldBlock && oldBlock.id && oldBlock.type && oldBlock.id === this.block.id && oldBlock.type === this.block.type) {\n // Only content or metadata changed, don't re-render\n return false;\n }\n }\n \n // Only update if the block type or id changes\n return !this.blockElement || this.block?.type !== this.blockElement.dataset.blockType;\n }\n \n public firstUpdated(): void {\n // Mark that content has been initialized\n this.contentInitialized = true;\n \n // Inject handler styles if not already done\n this.injectHandlerStyles();\n \n // First, populate the container with the rendered content\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLDivElement;\n if (container && this.block) {\n container.innerHTML = this.renderBlockContent();\n }\n \n // Check if we have a registered handler for this block type\n if (this.block) {\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler) {\n const blockElement = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n if (blockElement) {\n handler.setup(blockElement, this.block, this.handlers);\n }\n return; // Block handler takes care of all setup\n }\n }\n \n // Handle special block types\n \n // Now find the actual editable block element\n const editableBlock = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n // Ensure the block element maintains its content\n if (editableBlock) {\n editableBlock.setAttribute('data-block-id', this.block.id);\n editableBlock.setAttribute('data-block-type', this.block.type);\n \n // Set up all event handlers manually to avoid Lit re-renders\n editableBlock.addEventListener('input', (e) => {\n this.handlers?.onInput?.(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n editableBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n this.handlers?.onKeyDown?.(e);\n });\n \n \n editableBlock.addEventListener('focus', () => {\n this.handlers?.onFocus?.();\n });\n \n editableBlock.addEventListener('blur', () => {\n this.handlers?.onBlur?.();\n });\n \n editableBlock.addEventListener('compositionstart', () => {\n this.handlers?.onCompositionStart?.();\n });\n \n editableBlock.addEventListener('compositionend', () => {\n this.handlers?.onCompositionEnd?.();\n });\n \n editableBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n this.handlers?.onMouseUp?.(e);\n });\n \n editableBlock.addEventListener('click', () => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchEvent(new CustomEvent('block-text-selected', {\n detail: {\n text: '',\n blockId: this.block.id,\n hasSelection: false\n },\n bubbles: true,\n composed: true\n }));\n }\n return;\n }\n \n // Get fresh reference to the editable block\n const currentEditableBlock = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!currentEditableBlock) return;\n \n // Get parent wysiwyg component's shadow root\n const parentComponent = this.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(currentEditableBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(currentEditableBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchEvent(new CustomEvent('block-text-selected', {\n detail: {\n text: selectedText.trim(),\n blockId: this.block.id,\n range: range,\n rect: rect,\n hasSelection: true\n },\n bubbles: true,\n composed: true\n }));\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchEvent(new CustomEvent('block-text-selected', {\n detail: {\n text: '',\n blockId: this.block.id,\n hasSelection: false\n },\n bubbles: true,\n composed: true\n }));\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n (this as any)._selectionHandler = checkSelection;\n \n // Add keyup handler for cursor position tracking\n editableBlock.addEventListener('keyup', () => {\n // Track cursor position\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set initial content if needed\n if (this.block.content) {\n editableBlock.innerHTML = this.block.content;\n }\n }\n \n // Store reference to the block element for quick access\n this.blockElement = editableBlock;\n }\n\n render(): TemplateResult {\n if (!this.block) return html``;\n\n // Since we need dynamic content, we'll render an empty container\n // and set the innerHTML in firstUpdated\n return html`
      `;\n }\n \n private renderBlockContent(): string {\n if (!this.block) return '';\n\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler) {\n return handler.render(this.block, this.isSelected);\n }\n\n // Default rendering for blocks without handlers\n const selectedClass = this.isSelected ? ' selected' : '';\n return `\n \n `;\n }\n\n\n\n public focus(): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.focus) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.focus(container, context);\n }\n \n // Handle non-editable blocks\n if (this.block && DeesWysiwygBlock.NON_EDITABLE_TYPES.includes(this.block.type)) {\n const blockElement = this.shadowRoot?.querySelector(`.block.${this.block.type}`) as HTMLDivElement;\n if (blockElement) {\n blockElement.focus();\n }\n return;\n }\n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return;\n \n // Ensure the element is focusable\n if (!editableElement.hasAttribute('contenteditable')) {\n editableElement.setAttribute('contenteditable', 'true');\n }\n \n editableElement.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== editableElement && this.shadowRoot?.activeElement !== editableElement) {\n Promise.resolve().then(() => {\n editableElement.focus();\n });\n }\n }\n \n public focusWithCursor(position: 'start' | 'end' | number = 'end'): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.focusWithCursor) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.focusWithCursor(container, position, context);\n }\n \n // Non-editable blocks don't support cursor positioning\n if (this.block && DeesWysiwygBlock.NON_EDITABLE_TYPES.includes(this.block.type)) {\n this.focus();\n return;\n }\n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return;\n \n // Ensure element is focusable first\n if (!editableElement.hasAttribute('contenteditable')) {\n editableElement.setAttribute('contenteditable', 'true');\n }\n \n // Focus the element\n editableElement.focus();\n \n // Set cursor position after focus is established\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart();\n } else if (position === 'end') {\n this.setCursorToEnd();\n } else if (typeof position === 'number') {\n // Use the new selection utility to set cursor position\n WysiwygSelection.setCursorPosition(editableElement, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === editableElement || this.shadowRoot?.activeElement === editableElement) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === editableElement || this.shadowRoot?.activeElement === editableElement) {\n setCursor();\n }\n });\n }\n }\n \n \n\n /**\n * Get cursor position in the editable element\n */\n public getCursorPosition(element: HTMLElement): number | null {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.getCursorPosition) {\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.getCursorPosition(element, context);\n }\n \n // Get parent wysiwyg component's shadow root\n const parentComponent = this.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n console.log('getCursorPosition: Selection info from shadow DOMs:', {\n selectionInfo,\n shadowRootsCount: shadowRoots.length\n });\n \n if (!selectionInfo) {\n console.log('getCursorPosition: No selection found');\n return null;\n }\n \n console.log('getCursorPosition: Range info:', {\n startContainer: selectionInfo.startContainer,\n startOffset: selectionInfo.startOffset,\n collapsed: selectionInfo.collapsed,\n startContainerText: selectionInfo.startContainer.textContent\n });\n \n if (!element.contains(selectionInfo.startContainer)) {\n console.log('getCursorPosition: Range not in element');\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(element);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n console.log('getCursorPosition: Calculated position:', {\n position,\n preCaretText: preCaretRange.toString(),\n elementText: element.textContent,\n elementTextLength: element.textContent?.length\n });\n \n return position;\n }\n\n public getContent(): string {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.getContent) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.getContent(container, context);\n }\n \n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return '';\n \n // Get the innerHTML which includes formatting tags\n const content = editableElement.innerHTML || '';\n console.log('Getting content from block:', content);\n return content;\n }\n\n public setContent(content: string): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.setContent) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.setContent(container, content, context);\n }\n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === editableElement || this.shadowRoot?.activeElement === editableElement;\n \n editableElement.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n editableElement.focus();\n }\n }\n\n public setCursorToStart(): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.setCursorToStart) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.setCursorToStart(container, context);\n }\n \n // Always find the element fresh, don't rely on cached blockElement\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n if (editableElement) {\n WysiwygBlocks.setCursorToStart(editableElement);\n }\n }\n\n public setCursorToEnd(): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.setCursorToEnd) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.setCursorToEnd(container, context);\n }\n \n // Always find the element fresh, don't rely on cached blockElement\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n if (editableElement) {\n WysiwygBlocks.setCursorToEnd(editableElement);\n }\n }\n\n\n\n\n \n\n \n /**\n * Get context menu items for this block\n */\n public getContextMenuItems(): any[] {\n if (!this.block || this.block.type === 'divider') {\n return [];\n }\n \n const blockTypes = WysiwygShortcuts.getSlashMenuItems();\n const currentType = this.block.type;\n \n // Use the parent reference passed from dees-input-wysiwyg\n const wysiwygComponent = this.wysiwygComponent;\n const blockId = this.block.id;\n \n \n // Create submenu items for block type change\n const blockTypeItems = blockTypes\n .filter(item => item.type !== currentType && item.type !== 'divider')\n .map(item => ({\n name: item.label,\n iconName: item.icon.replace('lucide:', ''),\n action: async () => {\n if (wysiwygComponent && wysiwygComponent.blockOperations) {\n // Transform the block type\n const blockToTransform = wysiwygComponent.blocks.find((b: IBlock) => b.id === blockId);\n if (blockToTransform) {\n blockToTransform.type = item.type;\n blockToTransform.content = blockToTransform.content || '';\n \n // Handle special metadata for different block types\n if (item.type === 'code') {\n blockToTransform.metadata = { language: 'typescript' };\n } else if (item.type === 'list') {\n blockToTransform.metadata = { listType: 'bullet' };\n } else if (item.type === 'image') {\n blockToTransform.content = '';\n blockToTransform.metadata = { url: '', loading: false };\n } else if (item.type === 'youtube') {\n blockToTransform.content = '';\n blockToTransform.metadata = { videoId: '', url: '' };\n } else if (item.type === 'markdown') {\n blockToTransform.metadata = { showPreview: false };\n } else if (item.type === 'html') {\n blockToTransform.metadata = { showPreview: false };\n } else if (item.type === 'attachment') {\n blockToTransform.content = '';\n blockToTransform.metadata = { files: [] };\n }\n \n // Update the block element\n wysiwygComponent.updateBlockElement(blockId);\n wysiwygComponent.updateValue();\n \n // Focus the block after transformation\n requestAnimationFrame(() => {\n wysiwygComponent.blockOperations.focusBlock(blockId);\n });\n }\n }\n }\n }));\n \n const menuItems: any[] = [\n {\n name: 'Change Type',\n iconName: 'type',\n submenu: blockTypeItems\n }\n ];\n \n // Add copy/cut/paste for editable blocks\n if (!['image', 'divider', 'youtube', 'attachment'].includes(this.block.type)) {\n menuItems.push(\n { divider: true },\n {\n name: 'Cut',\n iconName: 'scissors',\n shortcut: 'Cmd+X',\n action: async () => {\n document.execCommand('cut');\n }\n },\n {\n name: 'Copy',\n iconName: 'copy',\n shortcut: 'Cmd+C',\n action: async () => {\n document.execCommand('copy');\n }\n },\n {\n name: 'Paste',\n iconName: 'clipboard',\n shortcut: 'Cmd+V',\n action: async () => {\n document.execCommand('paste');\n }\n }\n );\n }\n \n // Add delete option\n menuItems.push(\n { divider: true },\n {\n name: 'Delete Block',\n iconName: 'trash2',\n action: async () => {\n if (wysiwygComponent && wysiwygComponent.blockOperations) {\n wysiwygComponent.blockOperations.deleteBlock(blockId);\n }\n }\n }\n );\n \n return menuItems;\n }\n\n /**\n * Gets content split at cursor position\n */\n public getSplitContent(): { before: string; after: string } | null {\n console.log('getSplitContent: Starting...');\n \n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n console.log('getSplitContent: Checking for handler', { \n blockType: this.block.type, \n hasHandler: !!handler,\n hasSplitMethod: !!(handler && handler.getSplitContent)\n });\n \n if (handler && handler.getSplitContent) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n console.log('getSplitContent: Found container', { \n container: !!container,\n containerHTML: container?.innerHTML?.substring(0, 100)\n });\n const context = {\n shadowRoot: this.shadowRoot!,\n component: this\n };\n return handler.getSplitContent(container, context);\n }\n \n \n // Get the actual editable element first\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) {\n console.log('getSplitContent: No editable element found');\n return null;\n }\n \n console.log('getSplitContent: Element info:', {\n blockType: this.block.type,\n innerHTML: editableElement.innerHTML,\n textContent: editableElement.textContent,\n textLength: editableElement.textContent?.length\n });\n \n // Get parent wysiwyg component's shadow root\n const parentComponent = this.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n console.log('getSplitContent: Selection info from shadow DOMs:', {\n selectionInfo,\n shadowRootsCount: shadowRoots.length\n });\n \n if (!selectionInfo) {\n console.log('getSplitContent: No selection, using last known position:', this.lastKnownCursorPosition);\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = editableElement.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n console.log('getSplitContent: Splitting with last known position:', {\n pos,\n fullTextLength: fullText.length,\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n });\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n console.log('getSplitContent: Selection range:', {\n startContainer: selectionInfo.startContainer,\n startOffset: selectionInfo.startOffset,\n startContainerInElement: editableElement.contains(selectionInfo.startContainer)\n });\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(editableElement, selectionInfo.startContainer)) {\n console.log('getSplitContent: Selection not in this block, using last known position:', this.lastKnownCursorPosition);\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = editableElement.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // For HTML content, get cursor position first\n const cursorPos = this.getCursorPosition(editableElement);\n console.log('getSplitContent: Cursor position for HTML split:', cursorPos);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n console.log('getSplitContent: Cursor at start or null, moving all content');\n return {\n before: '',\n after: editableElement.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(editableElement, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(editableElement, editableElement.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n console.log('getSplitContent: Final split result:', {\n cursorPos,\n beforeHtml,\n beforeLength: beforeHtml.length,\n beforeHtmlPreview: beforeHtml.substring(0, 100) + (beforeHtml.length > 100 ? '...' : ''),\n afterHtml,\n afterLength: afterHtml.length,\n afterHtmlPreview: afterHtml.substring(0, 100) + (afterHtml.length > 100 ? '...' : '')\n });\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n \n}\n", "export * from './dees-input-wysiwyg.js';\nexport * from './wysiwyg.types.js';\nexport * from './wysiwyg.interfaces.js';\nexport * from './wysiwyg.constants.js';\nexport * from './wysiwyg.styles.js';\nexport * from './wysiwyg.converters.js';\nexport * from './wysiwyg.shortcuts.js';\nexport * from './wysiwyg.formatting.js';\nexport * from './wysiwyg.selection.js';\nexport * from './wysiwyg.blocks.js';\nexport * from './wysiwyg.blockoperations.js';\nexport * from './wysiwyg.blockregistration.js';\nexport * from './wysiwyg.inputhandler.js';\nexport * from './wysiwyg.keyboardhandler.js';\nexport * from './wysiwyg.dragdrophandler.js';\nexport * from './wysiwyg.modalmanager.js';\nexport * from './wysiwyg.history.js';\nexport * from './dees-slash-menu.js';\nexport * from './dees-formatting-menu.js';\nexport * from './dees-wysiwyg-block.js';\n", "import { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from '../dees-input-wysiwyg.demo.js';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\n\nimport {\n customElement,\n type TemplateResult,\n property,\n static as html,\n cssManager,\n state,\n} from '@design.estate/dees-element';\n\nimport {\n type IBlock,\n type OutputFormat,\n wysiwygStyles,\n WysiwygConverters,\n WysiwygShortcuts,\n WysiwygFormatting,\n WysiwygBlockOperations,\n WysiwygInputHandler,\n WysiwygKeyboardHandler,\n WysiwygDragDropHandler,\n WysiwygModalManager,\n WysiwygHistory,\n WysiwygSelection,\n DeesSlashMenu,\n DeesFormattingMenu\n} from './index.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-wysiwyg': DeesInputWysiwyg;\n }\n}\n\n@customElement('dees-input-wysiwyg')\nexport class DeesInputWysiwyg extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input', 'Workspace'];\n\n @property({ type: String })\n accessor value: string = '';\n\n @property({ type: String })\n accessor outputFormat: OutputFormat = 'html';\n\n @state()\n accessor blocks: IBlock[] = [\n {\n id: WysiwygShortcuts.generateBlockId(),\n type: 'paragraph',\n content: '',\n }\n ];\n\n // Not using @state to avoid re-renders when selection changes\n public selectedBlockId: string | null = null;\n\n // Slash menu is now globally rendered\n public slashMenu = DeesSlashMenu.getInstance();\n\n @state()\n accessor draggedBlockId: string | null = null;\n\n @state()\n accessor dragOverBlockId: string | null = null;\n\n @state()\n accessor dragOverPosition: 'before' | 'after' | null = null;\n\n // Formatting menu is now globally rendered\n public formattingMenu = DeesFormattingMenu.getInstance();\n\n @state()\n accessor selectedText: string = '';\n\n public editorContentRef: HTMLDivElement;\n public isComposing: boolean = false;\n \n // Handler instances\n public blockOperations: WysiwygBlockOperations;\n private inputHandler: WysiwygInputHandler;\n private keyboardHandler: WysiwygKeyboardHandler;\n private dragDropHandler: WysiwygDragDropHandler;\n private history: WysiwygHistory;\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n wysiwygStyles\n ];\n\n constructor() {\n super();\n // Initialize handlers\n this.blockOperations = new WysiwygBlockOperations(this);\n this.inputHandler = new WysiwygInputHandler(this);\n this.keyboardHandler = new WysiwygKeyboardHandler(this);\n this.dragDropHandler = new WysiwygDragDropHandler(this);\n this.history = new WysiwygHistory();\n }\n\n async connectedCallback() {\n await super.connectedCallback();\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Selection listeners are now handled at block level\n // Clean up handlers\n this.inputHandler?.destroy();\n // Clean up blur timeout\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n this.blurTimeout = null;\n }\n }\n\n async firstUpdated() {\n if (this.value && this.value.trim().length > 0) {\n const parsedBlocks =\n this.outputFormat === 'html'\n ? WysiwygConverters.parseHtmlToBlocks(this.value)\n : WysiwygConverters.parseMarkdownToBlocks(this.value);\n\n if (parsedBlocks.length > 0) {\n this.blocks = parsedBlocks;\n }\n }\n\n this.updateValue();\n this.editorContentRef = this.shadowRoot!.querySelector('.editor-content') as HTMLDivElement;\n \n // Add click handler to editor content\n if (this.editorContentRef) {\n this.editorContentRef.addEventListener('click', (e) => this.handleEditorClick(e));\n }\n \n // We now rely on block-level selection detection\n // No global selection listener needed\n \n // Listen for custom selection events from blocks\n this.addEventListener('block-text-selected', (e: CustomEvent) => {\n \n if (!this.slashMenu.visible && e.detail.hasSelection && e.detail.text.length > 0) {\n this.selectedText = e.detail.text;\n \n // Use the rect from the event if available\n if (e.detail.rect) {\n const coords = {\n x: e.detail.rect.left + (e.detail.rect.width / 2),\n y: Math.max(45, e.detail.rect.top - 45)\n };\n \n \n // Show the formatting menu at the calculated position\n this.formattingMenu.show(\n coords,\n async (command: string) => await this.applyFormat(command)\n );\n }\n }\n });\n \n // Hide formatting menu when clicking outside\n document.addEventListener('mousedown', (e) => {\n // Check if click is on the formatting menu itself\n const formattingMenuElement = this.formattingMenu.shadowRoot?.querySelector('.formatting-menu');\n if (formattingMenuElement && formattingMenuElement.contains(e.target as Node)) {\n return;\n }\n \n // Check if we have an active selection\n const selection = window.getSelection();\n if (selection && selection.toString().trim().length > 0) {\n // Don't hide if we still have a selection\n return;\n }\n \n // Hide the menu\n if (this.formattingMenu.visible) {\n this.hideFormattingMenu();\n }\n });\n \n // Add global keyboard listener for undo/redo\n this.addEventListener('keydown', (e: KeyboardEvent) => {\n // Check if the event is from within our editor\n const target = e.target as HTMLElement;\n if (!this.contains(target) && !this.shadowRoot?.contains(target)) {\n return;\n }\n \n // Handle undo/redo\n if ((e.metaKey || e.ctrlKey) && !e.shiftKey && e.key === 'z') {\n e.preventDefault();\n this.undo();\n } else if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.key === 'z') {\n e.preventDefault();\n this.redo();\n }\n });\n \n // Save initial state to history\n this.history.saveState(this.blocks, this.selectedBlockId);\n \n // Render blocks programmatically\n this.renderBlocksProgrammatically();\n }\n \n /**\n * Renders all blocks programmatically without triggering re-renders\n */\n public renderBlocksProgrammatically() {\n if (!this.editorContentRef) return;\n \n // Clear existing blocks\n this.editorContentRef.innerHTML = '';\n \n // Create and append block elements\n this.blocks.forEach(block => {\n const blockWrapper = this.createBlockElement(block);\n this.editorContentRef.appendChild(blockWrapper);\n });\n }\n \n /**\n * Creates a block element programmatically\n */\n public createBlockElement(block: IBlock): HTMLElement {\n const wrapper = document.createElement('div');\n wrapper.className = 'block-wrapper';\n wrapper.setAttribute('data-block-id', block.id);\n \n // Add drag handle for non-divider blocks\n if (block.type !== 'divider') {\n const dragHandle = document.createElement('div');\n dragHandle.className = 'drag-handle';\n dragHandle.draggable = true;\n dragHandle.addEventListener('dragstart', (e) => this.dragDropHandler.handleDragStart(e, block));\n wrapper.appendChild(dragHandle);\n }\n \n // Create the block component\n const blockComponent = document.createElement('dees-wysiwyg-block') as any;\n blockComponent.block = block;\n blockComponent.isSelected = this.selectedBlockId === block.id;\n blockComponent.wysiwygComponent = this; // Pass parent reference\n blockComponent.handlers = {\n onInput: (e: InputEvent) => this.inputHandler.handleBlockInput(e, block),\n onKeyDown: (e: KeyboardEvent) => this.keyboardHandler.handleBlockKeyDown(e, block),\n onFocus: () => this.handleBlockFocus(block),\n onBlur: () => this.handleBlockBlur(block),\n onCompositionStart: () => this.isComposing = true,\n onCompositionEnd: () => this.isComposing = false,\n onMouseUp: (e: MouseEvent) => this.handleTextSelection(e),\n onRequestUpdate: () => this.updateBlockElement(block.id),\n };\n wrapper.appendChild(blockComponent);\n \n // Remove settings button - context menu will handle this\n \n // Add drag event listeners\n wrapper.addEventListener('dragover', (e) => this.dragDropHandler.handleDragOver(e, block));\n wrapper.addEventListener('drop', (e) => this.dragDropHandler.handleDrop(e, block));\n wrapper.addEventListener('dragleave', () => this.dragDropHandler.handleDragLeave(block));\n \n return wrapper;\n }\n \n /**\n * Updates a specific block element\n */\n public updateBlockElement(blockId: string) {\n const block = this.blocks.find(b => b.id === blockId);\n if (!block) return;\n \n const wrapper = this.editorContentRef.querySelector(`[data-block-id=\"${blockId}\"]`);\n if (!wrapper) return;\n \n // Replace with new element\n const newWrapper = this.createBlockElement(block);\n wrapper.replaceWith(newWrapper);\n }\n\n\n render(): TemplateResult {\n return html`\n \n
      \n
      \n \n
      \n
      \n `;\n }\n\n // Old renderBlock method removed - using programmatic rendering instead\n\n\n\n\n public handleSlashMenuKeyboard(e: KeyboardEvent) {\n switch(e.key) {\n case 'ArrowDown':\n e.preventDefault();\n this.slashMenu.navigate('down');\n break;\n case 'ArrowUp':\n e.preventDefault();\n this.slashMenu.navigate('up');\n break;\n case 'Enter':\n e.preventDefault();\n this.slashMenu.selectCurrent();\n break;\n case 'Escape':\n e.preventDefault();\n this.closeSlashMenu(true);\n break;\n }\n }\n\n public closeSlashMenu(clearSlash: boolean = false) {\n if (clearSlash && this.selectedBlockId) {\n // Clear the slash command from the content if menu is closing without selection\n const currentBlock = this.blocks.find(b => b.id === this.selectedBlockId);\n if (currentBlock) {\n const wrapperElement = this.shadowRoot!.querySelector(`[data-block-id=\"${currentBlock.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent) {\n const content = blockComponent.getContent();\n if (content.startsWith('/')) {\n // Remove the entire slash command (slash + any filter text)\n const cleanContent = content.replace(/^\\/[^\\s]*\\s*/, '').trim();\n blockComponent.setContent(cleanContent);\n currentBlock.content = cleanContent;\n \n // Focus and set cursor at beginning\n requestAnimationFrame(() => {\n blockComponent.focusWithCursor(0);\n });\n }\n }\n }\n }\n \n this.slashMenu.hide();\n }\n\n private handleBlockFocus(block: IBlock) {\n // Clear any pending blur timeout when focusing\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n this.blurTimeout = null;\n }\n \n const prevSelectedId = this.selectedBlockId;\n this.selectedBlockId = block.id;\n \n // Only update selection UI if it changed\n if (prevSelectedId !== block.id) {\n // Update the previous block's selection state\n if (prevSelectedId) {\n const prevWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${prevSelectedId}\"]`);\n const prevBlockComponent = prevWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (prevBlockComponent) {\n prevBlockComponent.isSelected = false;\n }\n }\n \n // Update the new block's selection state\n const wrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = wrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n blockComponent.isSelected = true;\n }\n }\n }\n\n private blurTimeout: any = null;\n \n private handleBlockBlur(block: IBlock) {\n // Clear any existing blur timeout\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n }\n \n // Don't update value if slash menu is visible\n if (this.slashMenu.visible) {\n return;\n }\n \n // Sync content from the block that's losing focus\n const wrapperElement = this.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent && blockComponent.getContent) {\n const newContent = blockComponent.getContent();\n // Only update if content actually changed\n if (block.content !== newContent) {\n block.content = newContent;\n }\n }\n \n // Delay the blur handling to avoid interfering with typing\n this.blurTimeout = setTimeout(() => {\n // Check if we've refocused on another block\n const activeElement = this.shadowRoot?.activeElement;\n const isBlockFocused = activeElement?.classList.contains('block');\n \n if (!isBlockFocused) {\n // Only update value if we're truly blurring away from all blocks\n this.updateValue();\n }\n }, 100);\n \n // Don't immediately clear selectedBlockId or close menus\n // Let click handlers decide what to do\n }\n\n private handleEditorClick(e: MouseEvent) {\n const target = e.target as HTMLElement;\n \n // Close slash menu if clicking outside of it\n if (this.slashMenu.visible) {\n this.closeSlashMenu(true);\n }\n \n // Focus last block if clicking on empty editor area\n if (target.classList.contains('editor-content')) {\n const lastBlock = this.blocks[this.blocks.length - 1];\n this.blockOperations.focusBlock(lastBlock.id, lastBlock.type === 'divider' || lastBlock.type === 'image' ? undefined : 'end');\n }\n }\n\n private createNewBlock(type: IBlock['type'] = 'paragraph', content: string = '', metadata?: any): IBlock {\n return {\n id: WysiwygShortcuts.generateBlockId(),\n type,\n content,\n ...(metadata && { metadata })\n };\n }\n\n private async insertBlockAfter(afterBlock: IBlock, newBlock: IBlock, focusNewBlock: boolean = true): Promise {\n const blockIndex = this.blocks.findIndex(b => b.id === afterBlock.id);\n this.blocks = [...this.blocks.slice(0, blockIndex + 1), newBlock, ...this.blocks.slice(blockIndex + 1)];\n \n // Insert the new block element programmatically\n const afterWrapper = this.editorContentRef.querySelector(`[data-block-id=\"${afterBlock.id}\"]`);\n if (afterWrapper) {\n const newWrapper = this.createBlockElement(newBlock);\n afterWrapper.insertAdjacentElement('afterend', newWrapper);\n }\n \n this.updateValue();\n \n if (focusNewBlock && newBlock.type !== 'divider') {\n // Give DOM time to settle\n await new Promise(resolve => setTimeout(resolve, 0));\n await this.blockOperations.focusBlock(newBlock.id, 'start');\n }\n }\n\n public async insertBlock(type: IBlock['type']) {\n const currentBlock = this.blocks.find(b => b.id === this.selectedBlockId);\n \n if (!currentBlock) {\n this.closeSlashMenu();\n return;\n }\n\n // Get the block component to extract clean content\n const wrapperElement = this.shadowRoot!.querySelector(`[data-block-id=\"${currentBlock.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n // Clear the slash command from the content before transforming\n if (blockComponent) {\n const content = blockComponent.getContent();\n if (content.startsWith('/')) {\n // Remove the slash and any filter text (including non-word characters)\n const cleanContent = content.replace(/^\\/[^\\s]*\\s*/, '').trim();\n blockComponent.setContent(cleanContent);\n currentBlock.content = cleanContent;\n }\n }\n \n // Close menu\n this.closeSlashMenu(false);\n \n // If it's a code block, default to TypeScript\n if (type === 'code') {\n currentBlock.metadata = { language: 'typescript' };\n }\n \n // Transform the current block\n currentBlock.type = type;\n currentBlock.content = currentBlock.content || '';\n \n if (type === 'divider') {\n currentBlock.content = ' ';\n const newBlock = this.createNewBlock();\n this.insertBlockAfter(currentBlock, newBlock);\n } else if (type === 'list') {\n currentBlock.metadata = { listType: 'bullet' };\n // For lists, ensure we start with empty content\n currentBlock.content = '';\n } else if (type === 'image') {\n // For image blocks, clear content and set empty metadata\n currentBlock.content = '';\n currentBlock.metadata = { url: '', loading: false };\n } else if (type === 'youtube') {\n // For YouTube blocks, clear content and set empty metadata\n currentBlock.content = '';\n currentBlock.metadata = { videoId: '', url: '' };\n } else if (type === 'markdown') {\n // For Markdown blocks, preserve content and default to edit mode\n currentBlock.metadata = { showPreview: false };\n } else if (type === 'html') {\n // For HTML blocks, preserve content and default to edit mode\n currentBlock.metadata = { showPreview: false };\n } else if (type === 'attachment') {\n // For attachment blocks, clear content and set empty files array\n currentBlock.content = '';\n currentBlock.metadata = { files: [] };\n } else {\n // For all other block types, ensure content is clean\n currentBlock.content = currentBlock.content || '';\n }\n \n // Update the block element programmatically\n this.updateBlockElement(currentBlock.id);\n this.updateValue();\n \n // Give DOM time to settle\n await new Promise(resolve => setTimeout(resolve, 0));\n \n // Focus the block after rendering\n if (type === 'list') {\n this.blockOperations.focusBlock(currentBlock.id, 'start');\n // Additional list-specific focus handling\n requestAnimationFrame(() => {\n const blockWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${currentBlock.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n blockComponent.focusListItem();\n }\n });\n } else if (type !== 'divider' && type !== 'image' && type !== 'youtube' && type !== 'markdown' && type !== 'html' && type !== 'attachment') {\n this.blockOperations.focusBlock(currentBlock.id, 'start');\n } else if (type === 'image' || type === 'youtube' || type === 'markdown' || type === 'html' || type === 'attachment') {\n // Focus the non-editable block\n this.blockOperations.focusBlock(currentBlock.id);\n }\n }\n\n public updateValue() {\n if (this.outputFormat === 'html') {\n this.value = WysiwygConverters.getHtmlOutput(this.blocks);\n } else {\n this.value = WysiwygConverters.getMarkdownOutput(this.blocks);\n }\n this.changeSubject.next(this.value);\n \n // Save to history (debounced)\n this.saveToHistory(true);\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n \n if (this.outputFormat === 'html') {\n this.blocks = WysiwygConverters.parseHtmlToBlocks(value);\n } else {\n this.blocks = WysiwygConverters.parseMarkdownToBlocks(value);\n }\n \n if (this.blocks.length === 0) {\n this.blocks = [{\n id: WysiwygShortcuts.generateBlockId(),\n type: 'paragraph',\n content: '',\n }];\n }\n \n this.changeSubject.next(this.value);\n \n // Re-render blocks programmatically if we have the editor\n if (this.editorContentRef) {\n this.renderBlocksProgrammatically();\n }\n }\n\n /**\n * Export the editor content as raw blocks (lossless)\n */\n public exportBlocks(): IBlock[] {\n return JSON.parse(JSON.stringify(this.blocks));\n }\n\n /**\n * Import raw blocks (lossless)\n */\n public importBlocks(blocks: IBlock[]): void {\n this.blocks = JSON.parse(JSON.stringify(blocks));\n this.updateValue();\n \n // Re-render blocks programmatically if we have the editor\n if (this.editorContentRef) {\n this.renderBlocksProgrammatically();\n }\n }\n\n /**\n * Export content as HTML regardless of outputFormat setting\n */\n public exportAsHtml(): string {\n return WysiwygConverters.getHtmlOutput(this.blocks);\n }\n\n /**\n * Export content as Markdown regardless of outputFormat setting\n */\n public exportAsMarkdown(): string {\n return WysiwygConverters.getMarkdownOutput(this.blocks);\n }\n\n /**\n * Get a JSON representation of the editor state (for saving)\n */\n public exportState(): { blocks: IBlock[], outputFormat: OutputFormat } {\n return {\n blocks: this.exportBlocks(),\n outputFormat: this.outputFormat\n };\n }\n\n /**\n * Restore editor state from JSON\n */\n public importState(state: { blocks: IBlock[], outputFormat?: OutputFormat }): void {\n if (state.outputFormat) {\n this.outputFormat = state.outputFormat;\n }\n this.importBlocks(state.blocks);\n }\n\n private handleDragEnd(): void {\n // Remove all drag-related classes\n if (this.draggedBlockId) {\n const wrapper = this.editorContentRef.querySelector(`[data-block-id=\"${this.draggedBlockId}\"]`);\n if (wrapper) {\n wrapper.classList.remove('dragging');\n }\n }\n \n // Remove all drag-over classes\n const allWrappers = this.editorContentRef.querySelectorAll('.block-wrapper');\n allWrappers.forEach(wrapper => {\n wrapper.classList.remove('drag-over-before', 'drag-over-after');\n });\n \n // Remove dragging class from editor content\n this.editorContentRef.classList.remove('dragging');\n \n this.draggedBlockId = null;\n this.dragOverBlockId = null;\n this.dragOverPosition = null;\n }\n\n public handleDrop(e: DragEvent, targetBlock: IBlock): void {\n e.preventDefault();\n \n if (!this.draggedBlockId || this.draggedBlockId === targetBlock.id) return;\n \n const draggedIndex = this.blocks.findIndex(b => b.id === this.draggedBlockId);\n const targetIndex = this.blocks.findIndex(b => b.id === targetBlock.id);\n \n if (draggedIndex === -1 || targetIndex === -1) return;\n \n // Remove the dragged block\n const [draggedBlock] = this.blocks.splice(draggedIndex, 1);\n \n // Calculate the new index\n let newIndex = targetIndex;\n if (this.dragOverPosition === 'after') {\n newIndex = draggedIndex < targetIndex ? targetIndex : targetIndex + 1;\n } else {\n newIndex = draggedIndex < targetIndex ? targetIndex - 1 : targetIndex;\n }\n \n // Insert at new position\n this.blocks.splice(newIndex, 0, draggedBlock);\n \n // Re-render blocks programmatically to reflect the new order\n this.renderBlocksProgrammatically();\n \n // Update state\n this.updateValue();\n this.handleDragEnd();\n \n // Focus the moved block\n setTimeout(() => {\n const movedBlockElement = this.shadowRoot!.querySelector(`[data-block-id=\"${draggedBlock.id}\"] .block`) as HTMLDivElement;\n if (movedBlockElement && draggedBlock.type !== 'divider') {\n movedBlockElement.focus();\n }\n }, 100);\n }\n\n\n private handleTextSelection(_e: MouseEvent): void {\n // Don't interfere with slash menu\n if (this.slashMenu.visible) return;\n \n // Let the block component handle selection via custom event\n }\n\n \n\n private updateFormattingMenuPosition(): void {\n \n // Get all shadow roots\n const shadowRoots: ShadowRoot[] = [];\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n // Find all block shadow roots\n const blockWrappers = this.shadowRoot?.querySelectorAll('.block-wrapper');\n blockWrappers?.forEach(wrapper => {\n const blockComponent = wrapper.querySelector('dees-wysiwyg-block');\n if (blockComponent?.shadowRoot) {\n shadowRoots.push(blockComponent.shadowRoot);\n }\n });\n \n const coords = WysiwygFormatting.getSelectionCoordinates(...shadowRoots);\n \n if (coords) {\n // Show the global formatting menu at absolute coordinates\n this.formattingMenu.show(\n { x: coords.x, y: coords.y },\n async (command: string) => await this.applyFormat(command)\n );\n } else {\n }\n }\n\n private hideFormattingMenu(): void {\n this.formattingMenu.hide();\n this.selectedText = '';\n }\n\n public async applyFormat(command: string): Promise {\n // Get all shadow roots\n const shadowRoots: ShadowRoot[] = [];\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n // Find all block shadow roots\n const blockWrappers = this.shadowRoot?.querySelectorAll('.block-wrapper');\n blockWrappers?.forEach(wrapper => {\n const blockComponent = wrapper.querySelector('dees-wysiwyg-block');\n if (blockComponent?.shadowRoot) {\n shadowRoots.push(blockComponent.shadowRoot);\n }\n });\n \n // Get selection info using Shadow DOM-aware utilities\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Find which block contains the selection\n let targetBlock: IBlock | undefined;\n let targetBlockComponent: any;\n \n const wrappers = this.shadowRoot!.querySelectorAll('.block-wrapper');\n for (let i = 0; i < wrappers.length; i++) {\n const wrapper = wrappers[i];\n const blockComponent = wrapper.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent?.shadowRoot) {\n const block = blockComponent.shadowRoot.querySelector('.block');\n if (block && (\n block.contains(selectionInfo.startContainer) || \n block.contains(selectionInfo.endContainer)\n )) {\n const blockId = wrapper.getAttribute('data-block-id');\n targetBlock = this.blocks.find(b => b.id === blockId);\n targetBlockComponent = blockComponent;\n break;\n }\n }\n }\n \n if (!targetBlock || !targetBlockComponent) return;\n\n // Create a range from our selection info\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n \n // Handle link command specially\n if (command === 'link') {\n const url = await this.showLinkDialog();\n if (!url) {\n // User cancelled - restore focus to block\n targetBlockComponent.focus();\n return;\n }\n // Apply link format\n WysiwygFormatting.applyFormat(command, url, range, shadowRoots);\n } else {\n // Apply the format\n WysiwygFormatting.applyFormat(command, undefined, range, shadowRoots);\n }\n\n // Update content after a microtask to ensure DOM is updated\n await new Promise(resolve => setTimeout(resolve, 10));\n \n // Force content update\n targetBlock.content = targetBlockComponent.getContent();\n \n // Update value to persist changes\n this.updateValue();\n \n // Restore focus to the block\n targetBlockComponent.focus();\n \n // For link command, close the formatting menu\n if (command === 'link') {\n this.hideFormattingMenu();\n } else {\n // Let selection handler update menu position\n this.selectedText = '';\n }\n }\n\n private async showLinkDialog(): Promise {\n return new Promise((resolve) => {\n let linkUrl: string | null = null;\n \n DeesModal.createAndShow({\n heading: 'Add Link',\n content: html`\n \n {\n if (e.key === 'Enter') {\n const input = e.target as HTMLInputElement;\n linkUrl = input.value;\n // Find and click the OK button\n const modal = input.closest('dees-modal');\n if (modal) {\n const okButton = modal.shadowRoot?.querySelector('.bottomButton:last-child') as HTMLElement;\n if (okButton) okButton.click();\n }\n }\n }}\"\n @input=\"${(e: InputEvent) => {\n linkUrl = (e.target as HTMLInputElement).value;\n }}\"\n />\n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modal) => {\n modal.destroy();\n resolve(null);\n }\n },\n {\n name: 'Add Link',\n action: async (modal) => {\n modal.destroy();\n resolve(linkUrl);\n }\n }\n ]\n });\n \n // Focus the input after modal is shown\n setTimeout(() => {\n const input = document.querySelector('dees-modal .link-input') as HTMLInputElement;\n if (input) {\n input.focus();\n }\n }, 100);\n });\n }\n \n /**\n * Undo the last action\n */\n private undo(): void {\n const state = this.history.undo();\n if (state) {\n this.restoreState(state);\n }\n }\n \n /**\n * Redo the next action\n */\n private redo(): void {\n const state = this.history.redo();\n if (state) {\n this.restoreState(state);\n }\n }\n \n /**\n * Restore editor state from history\n */\n private restoreState(state: { blocks: IBlock[]; selectedBlockId: string | null; cursorPosition?: { blockId: string; offset: number } }): void {\n // Update blocks\n this.blocks = state.blocks;\n this.selectedBlockId = state.selectedBlockId;\n \n // Re-render blocks\n this.renderBlocksProgrammatically();\n \n // Restore cursor position if available\n if (state.cursorPosition) {\n setTimeout(() => {\n const blockWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${state.cursorPosition!.blockId}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n blockComponent.focusWithCursor(state.cursorPosition!.offset);\n }\n }, 50);\n } else if (state.selectedBlockId) {\n // Just focus the selected block\n setTimeout(() => {\n this.blockOperations.focusBlock(state.selectedBlockId!);\n }, 50);\n }\n \n // Update value\n this.updateValue();\n }\n \n /**\n * Save current state to history with cursor position\n */\n \n public saveToHistory(debounce: boolean = true): void {\n // Get current cursor position if a block is focused\n let cursorPosition: { blockId: string; offset: number } | undefined;\n \n if (this.selectedBlockId) {\n const blockWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${this.selectedBlockId}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent && typeof blockComponent.getCursorPosition === 'function') {\n const editableElement = blockComponent.shadowRoot?.querySelector('.block') as HTMLElement;\n if (editableElement) {\n const offset = blockComponent.getCursorPosition(editableElement);\n if (offset !== null) {\n cursorPosition = {\n blockId: this.selectedBlockId,\n offset\n };\n }\n }\n }\n }\n \n if (debounce) {\n this.history.saveState(this.blocks, this.selectedBlockId, cursorPosition);\n } else {\n this.history.saveCheckpoint(this.blocks, this.selectedBlockId, cursorPosition);\n }\n }\n}\n", "// Re-export the component and related helpers from the dedicated subdirectory\nexport { DeesInputWysiwyg } from './dees-input-wysiwyg/dees-input-wysiwyg.js';\nexport * from './dees-input-wysiwyg/index.js';\n", "import type { ProfileShape } from './dees-input-profilepicture.js';\n\nexport interface CropperOptions {\n container: HTMLElement;\n image: string;\n shape: ProfileShape;\n aspectRatio: number;\n minSize?: number;\n outputSize?: number;\n outputQuality?: number;\n}\n\nexport class ImageCropper {\n private options: CropperOptions;\n private canvas: HTMLCanvasElement;\n private ctx: CanvasRenderingContext2D;\n private img: HTMLImageElement;\n private overlayCanvas: HTMLCanvasElement;\n private overlayCtx: CanvasRenderingContext2D;\n \n // Crop area properties\n private cropX: number = 0;\n private cropY: number = 0;\n private cropSize: number = 200;\n private minCropSize: number = 50;\n \n // Interaction state\n private isDragging: boolean = false;\n private isResizing: boolean = false;\n private dragStartX: number = 0;\n private dragStartY: number = 0;\n private resizeHandle: string = '';\n \n // Image properties\n private imageScale: number = 1;\n private imageOffsetX: number = 0;\n private imageOffsetY: number = 0;\n\n constructor(options: CropperOptions) {\n this.options = {\n minSize: 50,\n outputSize: 800, // Higher default resolution\n outputQuality: 0.95, // Higher quality\n ...options\n };\n \n this.canvas = document.createElement('canvas');\n this.ctx = this.canvas.getContext('2d')!;\n \n this.overlayCanvas = document.createElement('canvas');\n this.overlayCtx = this.overlayCanvas.getContext('2d')!;\n \n this.img = new Image();\n }\n\n async initialize(): Promise {\n // Load image\n await this.loadImage();\n \n // Setup canvases\n this.setupCanvases();\n \n // Setup event listeners\n this.setupEventListeners();\n \n // Initial render\n this.render();\n }\n\n private async loadImage(): Promise {\n return new Promise((resolve, reject) => {\n this.img.onload = () => resolve();\n this.img.onerror = reject;\n this.img.src = this.options.image;\n });\n }\n\n private setupCanvases(): void {\n const container = this.options.container;\n const containerSize = Math.min(container.clientWidth, container.clientHeight);\n \n // Set canvas sizes\n this.canvas.width = containerSize;\n this.canvas.height = containerSize;\n this.canvas.style.width = '100%';\n this.canvas.style.height = '100%';\n this.canvas.style.position = 'absolute';\n this.canvas.style.top = '0';\n this.canvas.style.left = '0';\n \n this.overlayCanvas.width = containerSize;\n this.overlayCanvas.height = containerSize;\n this.overlayCanvas.style.width = '100%';\n this.overlayCanvas.style.height = '100%';\n this.overlayCanvas.style.position = 'absolute';\n this.overlayCanvas.style.top = '0';\n this.overlayCanvas.style.left = '0';\n this.overlayCanvas.style.cursor = 'move';\n \n container.appendChild(this.canvas);\n container.appendChild(this.overlayCanvas);\n \n // Calculate image scale to fit within container (not fill)\n const scale = Math.min(\n containerSize / this.img.width,\n containerSize / this.img.height\n );\n \n this.imageScale = scale;\n this.imageOffsetX = (containerSize - this.img.width * scale) / 2;\n this.imageOffsetY = (containerSize - this.img.height * scale) / 2;\n \n // Initialize crop area\n // Make the crop area fit within the actual image bounds\n const scaledImageWidth = this.img.width * scale;\n const scaledImageHeight = this.img.height * scale;\n const maxCropSize = Math.min(scaledImageWidth, scaledImageHeight, containerSize * 0.8);\n \n this.cropSize = maxCropSize * 0.8; // Start at 80% of max possible size\n this.cropX = (containerSize - this.cropSize) / 2;\n this.cropY = (containerSize - this.cropSize) / 2;\n }\n\n private setupEventListeners(): void {\n this.overlayCanvas.addEventListener('mousedown', this.handleMouseDown.bind(this));\n this.overlayCanvas.addEventListener('mousemove', this.handleMouseMove.bind(this));\n this.overlayCanvas.addEventListener('mouseup', this.handleMouseUp.bind(this));\n this.overlayCanvas.addEventListener('mouseleave', this.handleMouseUp.bind(this));\n \n // Touch events\n this.overlayCanvas.addEventListener('touchstart', this.handleTouchStart.bind(this));\n this.overlayCanvas.addEventListener('touchmove', this.handleTouchMove.bind(this));\n this.overlayCanvas.addEventListener('touchend', this.handleTouchEnd.bind(this));\n }\n\n private handleMouseDown(e: MouseEvent): void {\n const rect = this.overlayCanvas.getBoundingClientRect();\n const x = (e.clientX - rect.left) * (this.overlayCanvas.width / rect.width);\n const y = (e.clientY - rect.top) * (this.overlayCanvas.height / rect.height);\n \n const handle = this.getResizeHandle(x, y);\n \n if (handle) {\n this.isResizing = true;\n this.resizeHandle = handle;\n } else if (this.isInsideCropArea(x, y)) {\n this.isDragging = true;\n }\n \n this.dragStartX = x;\n this.dragStartY = y;\n }\n\n private handleMouseMove(e: MouseEvent): void {\n const rect = this.overlayCanvas.getBoundingClientRect();\n const x = (e.clientX - rect.left) * (this.overlayCanvas.width / rect.width);\n const y = (e.clientY - rect.top) * (this.overlayCanvas.height / rect.height);\n \n // Update cursor\n const handle = this.getResizeHandle(x, y);\n if (handle) {\n this.overlayCanvas.style.cursor = this.getResizeCursor(handle);\n } else if (this.isInsideCropArea(x, y)) {\n this.overlayCanvas.style.cursor = 'move';\n } else {\n this.overlayCanvas.style.cursor = 'default';\n }\n \n // Handle dragging\n if (this.isDragging) {\n const dx = x - this.dragStartX;\n const dy = y - this.dragStartY;\n \n // Constrain crop area to image bounds\n const minX = this.imageOffsetX;\n const maxX = this.imageOffsetX + this.img.width * this.imageScale - this.cropSize;\n const minY = this.imageOffsetY;\n const maxY = this.imageOffsetY + this.img.height * this.imageScale - this.cropSize;\n \n this.cropX = Math.max(minX, Math.min(maxX, this.cropX + dx));\n this.cropY = Math.max(minY, Math.min(maxY, this.cropY + dy));\n \n this.dragStartX = x;\n this.dragStartY = y;\n this.render();\n }\n \n // Handle resizing\n if (this.isResizing) {\n this.handleResize(x, y);\n this.dragStartX = x;\n this.dragStartY = y;\n this.render();\n }\n }\n\n private handleMouseUp(): void {\n this.isDragging = false;\n this.isResizing = false;\n this.resizeHandle = '';\n }\n\n private handleTouchStart(e: TouchEvent): void {\n e.preventDefault();\n const touch = e.touches[0];\n const mouseEvent = new MouseEvent('mousedown', {\n clientX: touch.clientX,\n clientY: touch.clientY\n });\n this.handleMouseDown(mouseEvent);\n }\n\n private handleTouchMove(e: TouchEvent): void {\n e.preventDefault();\n const touch = e.touches[0];\n const mouseEvent = new MouseEvent('mousemove', {\n clientX: touch.clientX,\n clientY: touch.clientY\n });\n this.handleMouseMove(mouseEvent);\n }\n\n private handleTouchEnd(e: TouchEvent): void {\n e.preventDefault();\n this.handleMouseUp();\n }\n\n private getResizeHandle(x: number, y: number): string {\n const handleSize = 20;\n const handles = {\n 'nw': { x: this.cropX, y: this.cropY },\n 'ne': { x: this.cropX + this.cropSize, y: this.cropY },\n 'sw': { x: this.cropX, y: this.cropY + this.cropSize },\n 'se': { x: this.cropX + this.cropSize, y: this.cropY + this.cropSize }\n };\n \n for (const [key, pos] of Object.entries(handles)) {\n if (Math.abs(x - pos.x) < handleSize && Math.abs(y - pos.y) < handleSize) {\n return key;\n }\n }\n \n return '';\n }\n\n private getResizeCursor(handle: string): string {\n const cursors: Record = {\n 'nw': 'nw-resize',\n 'ne': 'ne-resize',\n 'sw': 'sw-resize',\n 'se': 'se-resize'\n };\n return cursors[handle] || 'default';\n }\n\n private isInsideCropArea(x: number, y: number): boolean {\n return x >= this.cropX && x <= this.cropX + this.cropSize &&\n y >= this.cropY && y <= this.cropY + this.cropSize;\n }\n\n private handleResize(x: number, y: number): void {\n const dx = x - this.dragStartX;\n const dy = y - this.dragStartY;\n \n // Get image bounds\n const imgLeft = this.imageOffsetX;\n const imgTop = this.imageOffsetY;\n const imgRight = this.imageOffsetX + this.img.width * this.imageScale;\n const imgBottom = this.imageOffsetY + this.img.height * this.imageScale;\n \n switch (this.resizeHandle) {\n case 'se':\n this.cropSize = Math.max(this.minCropSize, Math.min(\n this.cropSize + Math.max(dx, dy),\n Math.min(\n imgRight - this.cropX,\n imgBottom - this.cropY\n )\n ));\n break;\n case 'nw':\n const newSize = Math.max(this.minCropSize, this.cropSize - Math.max(dx, dy));\n const sizeDiff = this.cropSize - newSize;\n const newX = this.cropX + sizeDiff;\n const newY = this.cropY + sizeDiff;\n if (newX >= imgLeft && newY >= imgTop) {\n this.cropX = newX;\n this.cropY = newY;\n this.cropSize = newSize;\n }\n break;\n case 'ne':\n const neSizeDx = Math.max(dx, -dy);\n const neNewSize = Math.max(this.minCropSize, this.cropSize + neSizeDx);\n const neSizeDiff = neNewSize - this.cropSize;\n const neNewY = this.cropY - neSizeDiff;\n if (neNewY >= imgTop && this.cropX + neNewSize <= imgRight) {\n this.cropY = neNewY;\n this.cropSize = neNewSize;\n }\n break;\n case 'sw':\n const swSizeDx = Math.max(-dx, dy);\n const swNewSize = Math.max(this.minCropSize, this.cropSize + swSizeDx);\n const swSizeDiff = swNewSize - this.cropSize;\n const swNewX = this.cropX - swSizeDiff;\n if (swNewX >= imgLeft && this.cropY + swNewSize <= imgBottom) {\n this.cropX = swNewX;\n this.cropSize = swNewSize;\n }\n break;\n }\n }\n\n private render(): void {\n // Clear canvases\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n this.overlayCtx.clearRect(0, 0, this.overlayCanvas.width, this.overlayCanvas.height);\n \n // Fill background\n this.ctx.fillStyle = '#000000';\n this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\n \n // Draw image\n this.ctx.drawImage(\n this.img,\n this.imageOffsetX,\n this.imageOffsetY,\n this.img.width * this.imageScale,\n this.img.height * this.imageScale\n );\n \n // Draw overlay only over the image area\n this.overlayCtx.fillStyle = 'rgba(0, 0, 0, 0.5)';\n this.overlayCtx.fillRect(\n this.imageOffsetX,\n this.imageOffsetY,\n this.img.width * this.imageScale,\n this.img.height * this.imageScale\n );\n \n // Clear crop area\n this.overlayCtx.save();\n \n if (this.options.shape === 'round') {\n this.overlayCtx.beginPath();\n this.overlayCtx.arc(\n this.cropX + this.cropSize / 2,\n this.cropY + this.cropSize / 2,\n this.cropSize / 2,\n 0,\n Math.PI * 2\n );\n this.overlayCtx.clip();\n } else {\n this.overlayCtx.beginPath();\n this.overlayCtx.rect(this.cropX, this.cropY, this.cropSize, this.cropSize);\n this.overlayCtx.clip();\n }\n \n this.overlayCtx.clearRect(0, 0, this.overlayCanvas.width, this.overlayCanvas.height);\n this.overlayCtx.restore();\n \n // Draw crop border\n this.overlayCtx.strokeStyle = 'white';\n this.overlayCtx.lineWidth = 2;\n \n if (this.options.shape === 'round') {\n this.overlayCtx.beginPath();\n this.overlayCtx.arc(\n this.cropX + this.cropSize / 2,\n this.cropY + this.cropSize / 2,\n this.cropSize / 2,\n 0,\n Math.PI * 2\n );\n this.overlayCtx.stroke();\n } else {\n this.overlayCtx.strokeRect(this.cropX, this.cropY, this.cropSize, this.cropSize);\n }\n \n // Draw resize handles\n this.drawResizeHandles();\n }\n\n private drawResizeHandles(): void {\n const handleSize = 8;\n const handles = [\n { x: this.cropX, y: this.cropY },\n { x: this.cropX + this.cropSize, y: this.cropY },\n { x: this.cropX, y: this.cropY + this.cropSize },\n { x: this.cropX + this.cropSize, y: this.cropY + this.cropSize }\n ];\n \n this.overlayCtx.fillStyle = 'white';\n \n handles.forEach(handle => {\n this.overlayCtx.beginPath();\n this.overlayCtx.arc(handle.x, handle.y, handleSize, 0, Math.PI * 2);\n this.overlayCtx.fill();\n });\n }\n\n async getCroppedImage(): Promise {\n const cropCanvas = document.createElement('canvas');\n const cropCtx = cropCanvas.getContext('2d')!;\n \n // Calculate the actual crop size in original image pixels\n const scale = 1 / this.imageScale;\n const originalCropSize = this.cropSize * scale;\n \n // Use requested output size, but warn if upscaling\n const outputSize = this.options.outputSize!;\n \n if (outputSize > originalCropSize) {\n console.info(`Profile picture: Upscaling from ${Math.round(originalCropSize)}px to ${outputSize}px`);\n }\n \n cropCanvas.width = outputSize;\n cropCanvas.height = outputSize;\n \n // Calculate source coordinates\n const sx = (this.cropX - this.imageOffsetX) * scale;\n const sy = (this.cropY - this.imageOffsetY) * scale;\n const sSize = this.cropSize * scale;\n \n // Apply shape mask if round\n if (this.options.shape === 'round') {\n cropCtx.beginPath();\n cropCtx.arc(outputSize / 2, outputSize / 2, outputSize / 2, 0, Math.PI * 2);\n cropCtx.clip();\n }\n \n // Enable image smoothing for quality\n cropCtx.imageSmoothingEnabled = true;\n cropCtx.imageSmoothingQuality = 'high';\n \n // Draw cropped image\n cropCtx.drawImage(\n this.img,\n sx, sy, sSize, sSize,\n 0, 0, outputSize, outputSize\n );\n \n // Detect format from original image\n const isPng = this.options.image.includes('image/png');\n const format = isPng ? 'image/png' : 'image/jpeg';\n \n return cropCanvas.toDataURL(format, this.options.outputQuality);\n }\n\n destroy(): void {\n this.canvas.remove();\n this.overlayCanvas.remove();\n }\n}", "import {\n DeesElement,\n customElement,\n html,\n property,\n css,\n cssManager,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport * as colors from '../../00colors.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { zIndexRegistry } from '../../00zindex.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-button/dees-button/dees-button.js';\nimport '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport { DeesWindowLayer } from '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport { ImageCropper } from './profilepicture.cropper.js';\nimport type { ProfileShape } from './dees-input-profilepicture.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-profilepicture-modal')\nexport class ProfilePictureModal extends DeesElement {\n @property({ type: String })\n accessor initialImage: string = '';\n\n @property({ type: String })\n accessor shape: ProfileShape = 'round';\n\n @property({ type: Number })\n accessor outputSize: number = 800;\n\n @property({ type: Number })\n accessor outputQuality: number = 0.95;\n\n @state()\n accessor currentStep: 'crop' | 'preview' = 'crop';\n\n @state()\n accessor croppedImage: string = '';\n\n @state()\n accessor isProcessing: boolean = false;\n\n private cropper: ImageCropper | null = null;\n private windowLayer: any;\n private zIndex: number = 0;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: ${cssGeistFontFamily};\n color: ${cssManager.bdTheme('#333', '#fff')};\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: var(--z-index);\n }\n\n .modal-container {\n background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')};\n border-radius: 12px;\n border: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.08)')};\n box-shadow: ${cssManager.bdTheme(\n '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n '0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2)'\n )};\n width: 480px;\n max-width: calc(100vw - 32px);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transform: translateY(10px) scale(0.98);\n opacity: 0;\n animation: modalShow 0.25s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n\n @keyframes modalShow {\n to {\n opacity: 1;\n transform: translateY(0px) scale(1);\n }\n }\n\n .modal-header {\n height: 52px;\n padding: 0 20px;\n border-bottom: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.06)')};\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n flex-shrink: 0;\n }\n\n .modal-title {\n font-size: 15px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n letter-spacing: -0.01em;\n }\n\n .close-button {\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n transition: all 0.15s ease;\n }\n\n .close-button:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.05)', 'rgba(255, 255, 255, 0.05)')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .close-button:active {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.08)')};\n }\n\n .modal-body {\n flex: 1;\n padding: 24px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n }\n\n .cropper-container {\n width: 100%;\n max-width: 360px;\n aspect-ratio: 1;\n position: relative;\n background: ${cssManager.bdTheme('#000000', '#000000')};\n border-radius: 12px;\n overflow: hidden;\n box-shadow: ${cssManager.bdTheme(\n 'inset 0 2px 4px rgba(0, 0, 0, 0.06)',\n 'inset 0 2px 4px rgba(0, 0, 0, 0.2)'\n )};\n }\n\n .preview-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n }\n\n .preview-image {\n width: 180px;\n height: 180px;\n object-fit: cover;\n border: 4px solid ${cssManager.bdTheme('#ffffff', '#18181b')};\n box-shadow: ${cssManager.bdTheme(\n '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n '0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2)'\n )};\n }\n\n .preview-image.round {\n border-radius: 50%;\n }\n\n .preview-image.square {\n border-radius: 16px;\n }\n\n .success-message {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 20px;\n background: ${cssManager.bdTheme('#10b981', '#10b981')};\n color: white;\n border-radius: 100px;\n font-weight: 500;\n font-size: 14px;\n animation: successPulse 0.4s ease-out;\n }\n\n @keyframes successPulse {\n 0% { transform: scale(0.9); opacity: 0; }\n 50% { transform: scale(1.02); }\n 100% { transform: scale(1); opacity: 1; }\n }\n\n .modal-footer {\n padding: 20px 24px;\n border-top: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.06)')};\n display: flex;\n gap: 10px;\n justify-content: flex-end;\n }\n\n .instructions {\n text-align: center;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n font-size: 13px;\n line-height: 1.5;\n max-width: 320px;\n }\n\n .loading-spinner {\n width: 40px;\n height: 40px;\n border: 3px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n border-top-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @media (max-width: 768px) {\n .modal-container {\n width: calc(100vw - 32px);\n margin: 16px;\n }\n \n .modal-body {\n padding: 24px;\n }\n }\n `,\n ];\n\n async connectedCallback() {\n super.connectedCallback();\n \n // Create window layer first (it will get its own z-index)\n this.windowLayer = await DeesWindowLayer.createAndShow({\n blur: true,\n });\n this.windowLayer.addEventListener('click', () => this.close());\n \n // Now get z-index for modal (will be above window layer)\n this.zIndex = zIndexRegistry.getNextZIndex();\n this.style.setProperty('--z-index', this.zIndex.toString());\n \n // Register with z-index registry\n zIndexRegistry.register(this, this.zIndex);\n }\n\n async disconnectedCallback() {\n super.disconnectedCallback();\n \n // Cleanup\n if (this.cropper) {\n this.cropper.destroy();\n }\n \n if (this.windowLayer) {\n await this.windowLayer.destroy();\n }\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n }\n\n render(): TemplateResult {\n return html`\n
      e.stopPropagation()}>\n
      \n

      \n ${this.currentStep === 'crop' ? 'Adjust Image' : 'Success'}\n

      \n \n
      \n \n
      \n ${this.currentStep === 'crop' ? html`\n
      \n Position and resize the square to select your profile area\n
      \n
      \n ` : html`\n
      \n ${this.isProcessing ? html`\n
      \n
      Saving...
      \n ` : html`\n \"Cropped\n
      \n \n Looking good!\n
      \n `}\n
      \n `}\n
      \n \n
      \n ${this.currentStep === 'crop' ? html`\n \n Cancel\n \n \n Save\n \n ` : ''}\n
      \n
      \n `;\n }\n\n async firstUpdated() {\n if (this.currentStep === 'crop') {\n await this.initializeCropper();\n }\n }\n\n private async initializeCropper(): Promise {\n await this.updateComplete;\n \n const container = this.shadowRoot!.getElementById('cropperContainer');\n if (!container) return;\n \n this.cropper = new ImageCropper({\n container,\n image: this.initialImage,\n shape: this.shape,\n aspectRatio: 1,\n outputSize: this.outputSize,\n outputQuality: this.outputQuality,\n });\n \n await this.cropper.initialize();\n }\n\n private async handleCrop(): Promise {\n if (!this.cropper) return;\n \n try {\n this.isProcessing = true;\n this.currentStep = 'preview';\n await this.updateComplete;\n \n // Get cropped image\n const croppedData = await this.cropper.getCroppedImage();\n this.croppedImage = croppedData;\n \n // Simulate processing time for better UX\n await new Promise(resolve => setTimeout(resolve, 800));\n \n this.isProcessing = false;\n \n // Emit save event\n this.dispatchEvent(new CustomEvent('save', {\n detail: { croppedImage: this.croppedImage },\n bubbles: true,\n composed: true\n }));\n \n // Auto close after showing success\n setTimeout(() => {\n this.close();\n }, 1500);\n \n } catch (error) {\n console.error('Error cropping image:', error);\n this.isProcessing = false;\n }\n }\n\n private close(): void {\n this.remove();\n }\n}", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport './dees-input-profilepicture.js';\nimport type { DeesInputProfilePicture } from './dees-input-profilepicture.js';\n\nexport const demoFunc = () => html`\n \n \n
      \n {\n // Basic demo with round profile picture\n const roundProfile = elementArg.querySelector('dees-input-profilepicture[shape=\"round\"]');\n \n if (roundProfile) {\n roundProfile.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputProfilePicture;\n console.log('Round profile picture changed:', target.value?.substring(0, 50) + '...');\n });\n }\n }}>\n \n
      \n \n \n \n
      \n
      \n
      \n\n {\n // Different sizes demo\n const profiles = elementArg.querySelectorAll('dees-input-profilepicture');\n profiles.forEach((profile) => {\n profile.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputProfilePicture;\n console.log(`Profile (size ${target.size}) changed`);\n });\n });\n }}>\n \n
      \n \n \n \n \n \n
      \n
      \n
      \n\n {\n // Pre-filled profile with placeholder\n const sampleImageUrl = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZ3JhZGllbnQiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMTAwJSIgeTI9IjEwMCUiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjNjY3ZWVhIiAvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM3NjRiYTIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8cmVjdCB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0idXJsKCNncmFkaWVudCkiIC8+CiAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSI4MCIgZmlsbD0id2hpdGUiPkpEPC90ZXh0Pgo8L3N2Zz4=';\n \n const prefilledProfile = elementArg.querySelector('#prefilled-profile') as DeesInputProfilePicture;\n if (prefilledProfile) {\n prefilledProfile.value = sampleImageUrl;\n \n prefilledProfile.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputProfilePicture;\n const output = elementArg.querySelector('#prefilled-output');\n if (output) {\n output.textContent = target.value ? \n `Image data: ${target.value.substring(0, 80)}...` : \n 'No image selected';\n }\n });\n }\n }}>\n \n \n \n
      \n Image data will appear here when changed\n
      \n
      \n
      \n\n {\n // Disabled state demo\n const disabledProfile = elementArg.querySelector('#disabled-profile') as DeesInputProfilePicture;\n if (disabledProfile) {\n disabledProfile.value = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iI2NjY2NjYyIgLz4KICA8dGV4dCB4PSI1MCUiIHk9IjUwJSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjYwIiBmaWxsPSJ3aGl0ZSI+TkE8L3RleHQ+Cjwvc3ZnPg==';\n }\n }}>\n \n
      \n \n \n \n \n \n
      \n
      \n
      \n\n \n \n
        \n
      • Image Upload: Click to upload or drag & drop images
      • \n
      • Image Cropping: Interactive crop tool with resize handles
      • \n
      • Shape Support: Round or square profile pictures
      • \n
      • Size Customization: Adjustable dimensions
      • \n
      • Preview & Edit: Hover overlay with edit and delete options
      • \n
      • File Validation: Format and size restrictions
      • \n
      • Responsive Design: Works on desktop and mobile devices
      • \n
      • Form Integration: Standard form value binding and validation
      • \n
      • Accessibility: Keyboard navigation and screen reader support
      • \n
      • Z-Index Management: Proper modal stacking with registry
      • \n
      \n \n
      \n Supported Formats: JPEG, PNG, WebP
      \n Max File Size: 5MB (configurable)
      \n Output Format: Base64 encoded JPEG\n
      \n
      \n
      \n
      \n`;", "import {\n customElement,\n html,\n property,\n css,\n cssManager,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-layout/dees-label/dees-label.js';\nimport { ProfilePictureModal } from './profilepicture.modal.js';\nimport { demoFunc } from './dees-input-profilepicture.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-profilepicture': DeesInputProfilePicture;\n }\n}\n\nexport type ProfileShape = 'square' | 'round';\n\n@customElement('dees-input-profilepicture')\nexport class DeesInputProfilePicture extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n @property({ type: String })\n accessor value: string = ''; // Base64 encoded image or URL\n\n @property({ type: String })\n accessor shape: ProfileShape = 'round';\n\n @property({ type: Number })\n accessor size: number = 120;\n\n @property({ type: String })\n accessor placeholder: string = '';\n\n @property({ type: Boolean })\n accessor allowUpload: boolean = true;\n\n @property({ type: Boolean })\n accessor allowDelete: boolean = true;\n\n @property({ type: Number })\n accessor maxFileSize: number = 5 * 1024 * 1024; // 5MB\n\n @property({ type: Array })\n accessor acceptedFormats: string[] = ['image/jpeg', 'image/png', 'image/webp'];\n\n @property({ type: Number })\n accessor outputSize: number = 800; // Output resolution in pixels\n\n @property({ type: Number })\n accessor outputQuality: number = 0.95; // 0-1 quality for JPEG\n\n @state()\n accessor isHovered: boolean = false;\n\n @state()\n accessor isDragging: boolean = false;\n\n @state()\n accessor isLoading: boolean = false;\n\n private modalInstance: ProfilePictureModal | null = null;\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n position: relative;\n }\n\n .input-wrapper {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .profile-container {\n position: relative;\n display: inline-block;\n cursor: pointer;\n transition: all 0.3s ease;\n }\n\n .profile-container:hover {\n transform: scale(1.02);\n }\n\n .profile-picture {\n width: var(--size, 120px);\n height: var(--size, 120px);\n background: ${cssManager.bdTheme('#f5f5f5', '#18181b')};\n border: 3px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n transition: all 0.3s ease;\n }\n\n .profile-picture.round {\n border-radius: 50%;\n }\n\n .profile-picture.square {\n border-radius: 12px;\n }\n\n .profile-picture.dragging {\n border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n box-shadow: 0 0 0 4px ${cssManager.bdTheme('rgba(59, 130, 246, 0.15)', 'rgba(96, 165, 250, 0.15)')};\n }\n\n .profile-picture:hover {\n border-color: ${cssManager.bdTheme('#d4d4d8', '#3f3f46')};\n }\n\n .profile-picture:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .profile-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .placeholder-icon {\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none;\n }\n\n .profile-container:hover .overlay {\n opacity: 1;\n }\n\n .overlay-content {\n display: flex;\n gap: 12px;\n }\n\n .overlay-button {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('rgba(255, 255, 255, 0.95)', 'rgba(39, 39, 42, 0.95)')};\n border: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n pointer-events: auto;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n\n .overlay-button:hover {\n background: ${cssManager.bdTheme('#ffffff', '#3f3f46')};\n transform: scale(1.1);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n }\n\n .overlay-button.delete {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.9)', 'rgba(220, 38, 38, 0.9)')};\n color: white;\n border-color: transparent;\n }\n\n .overlay-button.delete:hover {\n background: ${cssManager.bdTheme('#ef4444', '#dc2626')};\n }\n\n .drop-zone-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n text-align: center;\n color: white;\n font-weight: 500;\n pointer-events: none;\n }\n\n .hidden-input {\n display: none;\n }\n\n /* Loading animation */\n .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${cssManager.bdTheme('rgba(255, 255, 255, 0.8)', 'rgba(0, 0, 0, 0.8)')};\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: inherit;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease;\n }\n\n .loading-overlay.show {\n opacity: 1;\n pointer-events: auto;\n }\n\n .loading-spinner {\n width: 40px;\n height: 40px;\n border: 3px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n border-top-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.8;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n .profile-picture.clicking {\n animation: pulse 0.3s ease-out;\n }\n `,\n ];\n\n render(): TemplateResult {\n return html`\n
      \n \n \n
      \n
      \n ${this.value ? html`\n \"Profile\n ` : html`\n \n `}\n \n ${this.isDragging ? html`\n
      \n
      \n Drop image here\n
      \n
      \n ` : ''}\n \n ${this.value && !this.disabled ? html`\n
      \n
      \n ${this.allowUpload ? html`\n \n ` : ''}\n ${this.allowDelete ? html`\n \n ` : ''}\n
      \n
      \n ` : ''}\n \n ${this.isLoading && !this.value ? html`\n
      \n
      \n
      \n ` : ''}\n
      \n
      \n \n \n
      \n `;\n }\n\n private handleClick(): void {\n if (this.disabled || !this.allowUpload) return;\n \n if (!this.value) {\n // If no image, open file picker\n this.isLoading = true;\n const input = this.shadowRoot!.querySelector('.hidden-input') as HTMLInputElement;\n \n // Set up a focus handler to detect when the dialog is closed without selection\n const handleFocus = () => {\n setTimeout(() => {\n // Check if no file was selected\n if (!input.files || input.files.length === 0) {\n this.isLoading = false;\n }\n window.removeEventListener('focus', handleFocus);\n }, 300);\n };\n \n window.addEventListener('focus', handleFocus);\n input.click();\n }\n }\n\n private handleFileSelect(event: Event): void {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n \n // Always reset loading state when file dialog interaction completes\n this.isLoading = false;\n \n if (file) {\n this.processFile(file);\n }\n \n // Reset input to allow selecting the same file again\n input.value = '';\n }\n\n private handleDragOver(event: DragEvent): void {\n event.preventDefault();\n if (!this.disabled && this.allowUpload) {\n this.isDragging = true;\n }\n }\n\n private handleDragLeave(): void {\n this.isDragging = false;\n }\n\n private handleDrop(event: DragEvent): void {\n event.preventDefault();\n this.isDragging = false;\n \n if (this.disabled || !this.allowUpload) return;\n \n const file = event.dataTransfer?.files[0];\n if (file) {\n this.processFile(file);\n }\n }\n\n private async processFile(file: File): Promise {\n // Validate file type\n if (!this.acceptedFormats.includes(file.type)) {\n console.error('Invalid file type:', file.type);\n return;\n }\n \n // Validate file size\n if (file.size > this.maxFileSize) {\n console.error('File too large:', file.size);\n return;\n }\n \n // Read file as base64\n const reader = new FileReader();\n reader.onload = async (e) => {\n const base64 = e.target?.result as string;\n \n // Open modal for cropping\n await this.openModal(base64);\n };\n reader.readAsDataURL(file);\n }\n\n private async openModal(initialImage?: string): Promise {\n const imageToEdit = initialImage || this.value;\n \n if (!imageToEdit) {\n // If no image provided, open file picker\n const input = this.shadowRoot!.querySelector('.hidden-input') as HTMLInputElement;\n input.click();\n return;\n }\n \n // Create and show modal\n this.modalInstance = new ProfilePictureModal();\n this.modalInstance.shape = this.shape;\n this.modalInstance.initialImage = imageToEdit;\n this.modalInstance.outputSize = this.outputSize;\n this.modalInstance.outputQuality = this.outputQuality;\n \n this.modalInstance.addEventListener('save', (event: CustomEvent) => {\n this.value = event.detail.croppedImage;\n this.changeSubject.next(this);\n });\n \n document.body.appendChild(this.modalInstance);\n }\n\n private deletePicture(): void {\n this.value = '';\n this.changeSubject.next(this);\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n }\n}", "// Input Components\nexport * from './dees-input-base/index.js';\nexport * from './dees-input-checkbox/index.js';\nexport * from './dees-input-code/index.js';\nexport * from './dees-input-datepicker/index.js';\nexport * from './dees-input-dropdown/index.js';\nexport * from './dees-input-fileupload/index.js';\nexport * from './dees-input-iban/index.js';\nexport * from './dees-input-list/index.js';\nexport * from './dees-input-multitoggle/index.js';\nexport * from './dees-input-phone/index.js';\nexport * from './dees-input-quantityselector/index.js';\nexport * from './dees-input-radiogroup/index.js';\nexport * from './dees-input-richtext/index.js';\nexport * from './dees-input-searchselect/index.js';\nexport * from './dees-input-tags/index.js';\nexport * from './dees-input-text/index.js';\nexport * from './dees-input-toggle/index.js';\nexport * from './dees-input-typelist/index.js';\nexport * from './dees-input-wysiwyg.js';\nexport * from './profilepicture/dees-input-profilepicture.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
      \n
      \n
      Non-Selectable Chips
      \n
      Basic chips without selection capability. Use for display-only tags.
      \n \n
      \n \n
      \n
      Single Selection Chips
      \n
      Click to select one chip at a time. Useful for filters and options.
      \n \n
      \n \n
      \n
      Multiple Selection Chips
      \n
      Select multiple chips simultaneously. Great for tag selection.
      \n \n
      \n \n
      \n
      Removable Chips with Keys
      \n
      Chips with remove buttons and key-value pairs. Perfect for dynamic lists.
      \n \n
      \n \n
      \n
      Mixed Content Example
      \n
      Combining different chip types for complex UIs.
      \n \n
      \n
      \n`;\n", "import {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-chips.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-chips': DeesChips;\n }\n}\n\ntype Tag = { key: string; value: string };\n\n@customElement('dees-chips')\nexport class DeesChips extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n\n @property()\n accessor selectionMode: 'none' | 'single' | 'multiple' = 'single';\n\n @property({\n type: Boolean,\n })\n accessor chipsAreRemovable: boolean = false;\n\n @property({\n type: Array,\n })\n accessor selectableChips: Tag[] = [];\n\n @property()\n accessor selectedChip: Tag = null;\n\n @property({\n type: Array,\n })\n accessor selectedChips: Tag[] = [];\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n box-sizing: border-box;\n }\n\n .mainbox {\n user-select: none;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .chip {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n display: inline-flex;\n align-items: center;\n height: 32px;\n padding: 0px 12px;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n border-radius: 6px;\n position: relative;\n cursor: pointer;\n transition: all 0.15s ease;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n }\n\n .chip:hover {\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#52525b')};\n }\n\n .chip:active {\n transform: scale(0.98);\n }\n\n .chip.selected {\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n border-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n color: #ffffff;\n }\n\n .chip.selected:hover {\n background: ${cssManager.bdTheme('#2563eb', '#2563eb')};\n border-color: ${cssManager.bdTheme('#2563eb', '#2563eb')};\n }\n\n .chipKey {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.1)')};\n height: 20px;\n line-height: 20px;\n display: inline-flex;\n align-items: center;\n margin-left: -8px;\n padding: 0px 8px;\n margin-right: 8px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .chip.selected .chipKey {\n background: rgba(255, 255, 255, 0.2);\n color: rgba(255, 255, 255, 0.9);\n }\n\n dees-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-left: 8px;\n margin-right: -6px;\n border-radius: 3px;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .chip.selected dees-icon {\n color: rgba(255, 255, 255, 0.8);\n }\n\n dees-icon:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n color: ${cssManager.bdTheme('#ef4444', '#ef4444')};\n }\n\n .chip.selected dees-icon:hover {\n background: rgba(255, 255, 255, 0.2);\n color: #ffffff;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.selectableChips.map(\n (chip) => html`\n this.selectChip(chip)}\n class=\"chip ${this.isSelected(chip) ? 'selected' : ''}\"\n >\n ${chip.key ? html`
      ${chip.key}
      ` : html``} ${chip.value}\n ${this.chipsAreRemovable\n ? html`\n {\n event.stopPropagation(); // prevent the selectChip event from being triggered\n this.removeChip(chip);\n }}\n .icon=${'fa:xmark'}\n >\n `\n : html``}\n
      \n `\n )}\n \n `;\n }\n\n public async firstUpdated() {\n // Component initialized\n }\n\n private isSelected(chip: Tag): boolean {\n if (this.selectionMode === 'single') {\n return this.selectedChip ? this.isSameChip(this.selectedChip, chip) : false;\n } else {\n return this.selectedChips.some((selected) => this.isSameChip(selected, chip));\n }\n }\n \n private isSameChip(chip1: Tag, chip2: Tag): boolean {\n // If both have keys, compare by key\n if (chip1.key && chip2.key) {\n return chip1.key === chip2.key;\n }\n // Otherwise compare by value (and key if present)\n return chip1.value === chip2.value && chip1.key === chip2.key;\n }\n\n public async selectChip(chip: Tag) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single') {\n if (this.isSelected(chip)) {\n this.selectedChip = null;\n this.selectedChips = [];\n } else {\n this.selectedChip = chip;\n this.selectedChips = [chip];\n }\n } else if (this.selectionMode === 'multiple') {\n if (this.isSelected(chip)) {\n this.selectedChips = this.selectedChips.filter((selected) => !this.isSameChip(selected, chip));\n } else {\n this.selectedChips = [...this.selectedChips, chip];\n }\n this.requestUpdate();\n }\n console.log(this.selectedChips);\n }\n\n public removeChip(chipToRemove: Tag): void {\n // Remove the chip from selectableChips\n this.selectableChips = this.selectableChips.filter((chip) => !this.isSameChip(chip, chipToRemove));\n\n // Remove the chip from selectedChips if present\n this.selectedChips = this.selectedChips.filter((chip) => !this.isSameChip(chip, chipToRemove));\n\n // If the removed chip was the selectedChip, set selectedChip to null\n if (this.selectedChip && this.isSameChip(this.selectedChip, chipToRemove)) {\n this.selectedChip = null;\n }\n\n // Trigger an update to re-render the component\n this.requestUpdate();\n }\n}\n", "export * from './dees-chips.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport type { DeesDashboardgrid } from './dees-dashboardgrid.js';\nimport '@design.estate/dees-wcctools/demotools';\n\nexport const demoFunc = () => {\n return html`\n {\n const grid = elementArg.querySelector('#dashboardGrid') as DeesDashboardgrid;\n\n const seedWidgets = [\n {\n id: 'metrics1',\n x: 0,\n y: 0,\n w: 3,\n h: 2,\n title: 'Revenue',\n icon: 'lucide:dollarSign',\n content: html`\n
      \n
      $124,563
      \n
      \u2191 12.5% from last month
      \n
      \n `,\n },\n {\n id: 'metrics2',\n x: 3,\n y: 0,\n w: 3,\n h: 2,\n title: 'Users',\n icon: 'lucide:users',\n content: html`\n
      \n
      8,234
      \n
      \u2191 5.2% from last week
      \n
      \n `,\n },\n {\n id: 'chart1',\n x: 6,\n y: 0,\n w: 6,\n h: 4,\n title: 'Analytics',\n icon: 'lucide:lineChart',\n content: html`\n
      \n
      \n \n
      Chart visualization area
      \n
      \n
      \n `,\n },\n ];\n\n grid.widgets = seedWidgets.map(widget => ({ ...widget }));\n grid.cellHeight = 80;\n grid.margin = { top: 10, right: 10, bottom: 10, left: 10 };\n grid.enableAnimation = true;\n grid.showGridLines = false;\n\n const baseLayout = grid.getLayout().map(item => ({ ...item }));\n const mobileLayout = grid.widgets.map((widget, index) => ({\n id: widget.id,\n x: 0,\n y: index === 0 ? 0 : grid.widgets.slice(0, index).reduce((acc, prev) => acc + prev.h, 0),\n w: grid.columns,\n h: widget.h,\n }));\n\n grid.layouts = {\n base: baseLayout,\n mobile: mobileLayout,\n };\n\n const statusEl = elementArg.querySelector('#dashboardLayoutStatus') as HTMLElement;\n const updateStatus = () => {\n const layout = grid.getLayout();\n statusEl.textContent = `Active breakpoint: ${grid.activeBreakpoint} \u2022 Tiles: ${layout.length}`;\n };\n\n const mediaQuery = window.matchMedia('(max-width: 768px)');\n const handleBreakpoint = () => {\n const target = mediaQuery.matches ? 'mobile' : 'base';\n grid.applyBreakpointLayout(target);\n updateStatus();\n };\n if (typeof mediaQuery.addEventListener === 'function') {\n mediaQuery.addEventListener('change', handleBreakpoint);\n } else {\n (mediaQuery as MediaQueryList & {\n addListener?: (listener: (this: MediaQueryList, ev: MediaQueryListEvent) => void) => void;\n }).addListener?.(handleBreakpoint);\n }\n handleBreakpoint();\n\n let widgetCounter = 4;\n\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n\n switch (text) {\n case 'Toggle Animation':\n button.addEventListener('click', () => {\n grid.enableAnimation = !grid.enableAnimation;\n });\n break;\n case 'Toggle Grid Lines':\n button.addEventListener('click', () => {\n grid.showGridLines = !grid.showGridLines;\n });\n break;\n case 'Add Widget':\n button.addEventListener('click', () => {\n const newWidget = {\n id: `widget${widgetCounter++}`,\n x: 0,\n y: 0,\n w: 3,\n h: 2,\n autoPosition: true,\n title: `Widget ${widgetCounter - 1}`,\n icon: 'lucide:package',\n content: html`\n
      \n
      New widget content
      \n
      ${Math.floor(\n Math.random() * 1000,\n )}
      \n
      \n `,\n };\n grid.addWidget(newWidget, true);\n });\n break;\n case 'Compact Grid':\n button.addEventListener('click', () => {\n grid.compact();\n });\n break;\n case 'Toggle Edit Mode':\n button.addEventListener('click', () => {\n grid.editable = !grid.editable;\n button.textContent = grid.editable ? 'Lock Grid' : 'Unlock Grid';\n });\n break;\n case 'Reset Layout':\n button.addEventListener('click', () => {\n grid.applyBreakpointLayout(grid.activeBreakpoint);\n });\n break;\n default:\n break;\n }\n });\n\n // Enhanced logging for reflow events\n let lastPlaceholderPosition = null;\n let moveEventCounter = 0;\n\n // Helper function to log grid state\n const logGridState = (eventName: string, details?: any) => {\n const layout = grid.getLayout();\n console.group(`\uD83D\uDD04 ${eventName} [Event #${++moveEventCounter}]`);\n console.log('Timestamp:', new Date().toISOString());\n console.log('Grid Configuration:', {\n columns: grid.columns,\n cellHeight: grid.cellHeight,\n margin: grid.margin,\n editable: grid.editable,\n activeBreakpoint: grid.activeBreakpoint\n });\n console.log('Current Layout:', layout);\n console.log('Widget Count:', layout.length);\n console.log('Grid Bounds:', {\n totalWidgets: grid.widgets.length,\n maxY: Math.max(...layout.map(w => w.y + w.h)),\n occupied: layout.map(w => `${w.id}: (${w.x},${w.y}) ${w.w}x${w.h}`).join(', ')\n });\n if (details) {\n console.log('Event Details:', details);\n }\n console.groupEnd();\n };\n\n // Monitor placeholder position changes using MutationObserver\n const placeholderObserver = new MutationObserver(() => {\n const placeholder = grid.shadowRoot?.querySelector('.placeholder') as HTMLElement;\n if (placeholder) {\n const currentPosition = {\n left: placeholder.style.left,\n top: placeholder.style.top,\n width: placeholder.style.width,\n height: placeholder.style.height\n };\n\n if (JSON.stringify(currentPosition) !== JSON.stringify(lastPlaceholderPosition)) {\n console.group('\uD83D\uDCCD Placeholder Position Changed');\n console.log('Previous:', lastPlaceholderPosition);\n console.log('Current:', currentPosition);\n\n // Extract grid coordinates from style\n const gridInfo = grid.shadowRoot?.querySelector('.grid-container');\n if (gridInfo) {\n console.log('Grid Container Dimensions:', {\n width: gridInfo.clientWidth,\n height: gridInfo.clientHeight\n });\n }\n console.groupEnd();\n lastPlaceholderPosition = currentPosition;\n }\n }\n });\n\n // Start observing the shadow DOM for placeholder changes\n if (grid.shadowRoot) {\n placeholderObserver.observe(grid.shadowRoot, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style']\n });\n }\n\n // Log initial state\n logGridState('Initial Grid State');\n\n grid.addEventListener('widget-move', (e: CustomEvent) => {\n logGridState('Widget Move', {\n widget: e.detail.widget,\n displaced: e.detail.displaced,\n swappedWith: e.detail.swappedWith\n });\n });\n\n grid.addEventListener('widget-resize', (e: CustomEvent) => {\n logGridState('Widget Resize', {\n widget: e.detail.widget,\n displaced: e.detail.displaced,\n swappedWith: e.detail.swappedWith\n });\n });\n\n grid.addEventListener('widget-remove', (e: CustomEvent) => {\n logGridState('Widget Remove', {\n removedWidget: e.detail.widget\n });\n updateStatus();\n });\n\n grid.addEventListener('layout-change', () => {\n logGridState('Layout Change');\n updateStatus();\n });\n\n // Monitor during drag/resize operations using pointer events\n grid.addEventListener('pointerdown', (e: PointerEvent) => {\n const isHeader = (e.target as HTMLElement).closest('.widget-header');\n const isResizeHandle = (e.target as HTMLElement).closest('.resize-handle');\n\n if (isHeader || isResizeHandle) {\n console.group(`\uD83C\uDFAF Interaction Started: ${isHeader ? 'Drag' : 'Resize'}`);\n console.log('Target Widget:', (e.target as HTMLElement).closest('.widget')?.getAttribute('data-widget-id'));\n console.log('Pointer Position:', { x: e.clientX, y: e.clientY });\n console.groupEnd();\n\n // Track pointer move during interaction\n const handlePointerMove = (moveEvent: PointerEvent) => {\n const widget = (e.target as HTMLElement).closest('.widget');\n if (widget) {\n console.log(`\u2194\uFE0F Pointer Move:`, {\n widgetId: widget.getAttribute('data-widget-id'),\n position: { x: moveEvent.clientX, y: moveEvent.clientY },\n delta: {\n x: moveEvent.clientX - e.clientX,\n y: moveEvent.clientY - e.clientY\n }\n });\n }\n };\n\n const handlePointerUp = () => {\n console.group('\uD83C\uDFC1 Interaction Ended');\n logGridState('Final State After Interaction');\n console.groupEnd();\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp);\n };\n\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp);\n }\n });\n\n // Log when widgets are added\n const originalAddWidget = grid.addWidget.bind(grid);\n grid.addWidget = (widget: any, autoPosition?: boolean) => {\n console.group('\u2795 Adding Widget');\n console.log('New Widget:', widget);\n console.log('Auto Position:', autoPosition);\n const result = originalAddWidget(widget, autoPosition);\n logGridState('After Widget Added');\n console.groupEnd();\n return result;\n };\n\n // Log compact operations\n const originalCompact = grid.compact.bind(grid);\n grid.compact = (direction?: string) => {\n console.group('\uD83D\uDDDC\uFE0F Compacting Grid');\n console.log('Direction:', direction || 'vertical');\n logGridState('Before Compact');\n const result = originalCompact(direction);\n logGridState('After Compact');\n console.groupEnd();\n return result;\n };\n\n updateStatus();\n }}>\n \n
      \n
      \n \n Toggle Animation\n \n\n \n Toggle Grid Lines\n \n\n \n Add Widget\n Compact Grid\n Reset Layout\n \n\n \n Toggle Edit Mode\n \n
      \n\n
      \n \n
      \n\n
      \n
      Drag to reposition, resize from handles, or right-click a header to delete a tile.
      \n
      \n
      \n
      \n
      \n `;\n};\n", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const dashboardGridStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n position: relative;\n }\n\n .grid-container {\n position: relative;\n width: 100%;\n min-height: 400px;\n box-sizing: border-box;\n }\n\n .grid-widget {\n position: absolute;\n will-change: auto;\n }\n \n :host([enableanimation]) .grid-widget {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .grid-widget.dragging {\n z-index: 1000;\n transition: none !important;\n opacity: 0.8;\n cursor: grabbing;\n pointer-events: none;\n will-change: transform;\n }\n \n .grid-widget.placeholder {\n pointer-events: none;\n z-index: 1;\n }\n \n .grid-widget.placeholder .widget-content {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(59, 130, 246, 0.1)')};\n border: 2px dashed ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n box-shadow: none;\n }\n\n .grid-widget.resizing {\n transition: none !important;\n }\n\n .widget-content {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n overflow: hidden;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 8px;\n box-shadow: ${cssManager.bdTheme(\n '0 1px 3px rgba(0, 0, 0, 0.1)',\n '0 1px 3px rgba(0, 0, 0, 0.3)'\n )};\n transition: box-shadow 0.2s ease;\n }\n\n .grid-widget:hover .widget-content {\n box-shadow: ${cssManager.bdTheme(\n '0 4px 12px rgba(0, 0, 0, 0.15)',\n '0 4px 12px rgba(0, 0, 0, 0.4)'\n )};\n }\n\n .grid-widget.dragging .widget-content {\n box-shadow: ${cssManager.bdTheme(\n '0 16px 48px rgba(0, 0, 0, 0.25)',\n '0 16px 48px rgba(0, 0, 0, 0.6)'\n )};\n transform: scale(1.05);\n }\n\n .widget-header {\n padding: 12px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n cursor: grab;\n user-select: none;\n }\n \n .widget-header:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};\n }\n \n .widget-header:active {\n cursor: grabbing;\n }\n\n .widget-header.locked {\n cursor: default;\n }\n \n .widget-header.locked:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n }\n\n .widget-header dees-icon {\n font-size: 16px;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n }\n\n .widget-body {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: auto;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .widget-body.has-header {\n top: 45px;\n }\n\n .resize-handle {\n position: absolute;\n background: transparent;\n z-index: 10;\n }\n\n .resize-handle:hover {\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n opacity: 0.3;\n }\n\n .resize-handle-e {\n cursor: ew-resize;\n width: 12px;\n right: -6px;\n top: 10%;\n height: 80%;\n }\n\n .resize-handle-s {\n cursor: ns-resize;\n height: 12px;\n width: 80%;\n bottom: -6px;\n left: 10%;\n }\n\n .resize-handle-se {\n cursor: se-resize;\n width: 20px;\n height: 20px;\n right: -2px;\n bottom: -2px;\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n \n .resize-handle-se::after {\n content: '';\n position: absolute;\n right: 4px;\n bottom: 4px;\n width: 6px;\n height: 6px;\n border-right: 2px solid ${cssManager.bdTheme('#71717a', '#71717a')};\n border-bottom: 2px solid ${cssManager.bdTheme('#71717a', '#71717a')};\n }\n\n .grid-widget:hover .resize-handle-se {\n opacity: 0.7;\n }\n\n .resize-handle-se:hover {\n opacity: 1 !important;\n }\n \n .resize-handle-se:hover::after {\n border-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n .grid-placeholder {\n position: absolute;\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n opacity: 0.1;\n border-radius: 8px;\n border: 2px dashed ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n transition: all 0.2s ease;\n pointer-events: none;\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 400px;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n text-align: center;\n padding: 32px;\n }\n\n .empty-state dees-icon {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.5;\n }\n \n .grid-lines {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: -1;\n }\n \n .grid-line-vertical {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 1px;\n background: ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n opacity: 0.3;\n }\n \n .grid-line-horizontal {\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background: ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n opacity: 0.3;\n }\n `,\n];\n", "import type {\n DashboardResolvedMargins,\n DashboardMargin,\n DashboardWidget,\n DashboardLayoutItem,\n GridCellMetrics,\n LayoutDirection,\n} from './types.js';\n\nexport const DEFAULT_MARGIN = 10;\n\nexport const resolveMargins = (margin: DashboardMargin): DashboardResolvedMargins => {\n if (typeof margin === 'number') {\n return {\n horizontal: margin,\n vertical: margin,\n top: margin,\n right: margin,\n bottom: margin,\n left: margin,\n };\n }\n\n const resolved = {\n top: margin.top ?? DEFAULT_MARGIN,\n right: margin.right ?? DEFAULT_MARGIN,\n bottom: margin.bottom ?? DEFAULT_MARGIN,\n left: margin.left ?? DEFAULT_MARGIN,\n };\n\n return {\n ...resolved,\n horizontal: (resolved.left + resolved.right) / 2,\n vertical: (resolved.top + resolved.bottom) / 2,\n };\n};\n\nexport const calculateCellMetrics = (\n containerWidth: number,\n columns: number,\n margins: DashboardResolvedMargins,\n cellHeight: number,\n cellHeightUnit: string,\n): GridCellMetrics => {\n const totalMarginWidth = margins.horizontal * (columns + 1);\n const availableWidth = Math.max(containerWidth - totalMarginWidth, 0);\n const cellWidthPx = columns > 0 ? availableWidth / columns : 0;\n const cellHeightPx = cellHeightUnit === 'auto' ? cellWidthPx : cellHeight;\n\n return {\n containerWidth,\n cellWidthPx,\n marginHorizontalPx: margins.horizontal,\n cellHeightPx,\n marginVerticalPx: margins.vertical,\n };\n};\n\nexport const calculateGridHeight = (\n widgets: DashboardWidget[],\n margins: DashboardResolvedMargins,\n cellHeight: number,\n): number => {\n if (widgets.length === 0) return 0;\n const maxY = Math.max(...widgets.map(widget => widget.y + widget.h), 0);\n return maxY * cellHeight + (maxY + 1) * margins.vertical;\n};\n\nconst overlaps = (\n widget: DashboardWidget,\n x: number,\n y: number,\n w: number,\n h: number,\n) => x < widget.x + widget.w && x + w > widget.x && y < widget.y + widget.h && y + h > widget.y;\n\nexport const collectCollisions = (\n widgets: DashboardWidget[],\n target: DashboardWidget,\n nextX: number,\n nextY: number,\n nextW: number = target.w,\n nextH: number = target.h,\n): DashboardWidget[] => {\n return widgets.filter(widget => {\n if (widget.id === target.id) return false;\n return overlaps(widget, nextX, nextY, nextW, nextH);\n });\n};\n\nexport const checkCollision = (\n widgets: DashboardWidget[],\n target: DashboardWidget,\n nextX: number,\n nextY: number,\n): boolean => collectCollisions(widgets, target, nextX, nextY).length > 0;\n\nexport const cloneWidget = (widget: DashboardWidget): DashboardWidget => ({ ...widget });\n\nexport const cloneWidgets = (widgets: DashboardWidget[]): DashboardWidget[] => widgets.map(cloneWidget);\n\nexport const findAvailablePosition = (\n widgets: DashboardWidget[],\n width: number,\n height: number,\n columns: number,\n): { x: number; y: number } => {\n for (let y = 0; y < 200; y++) {\n for (let x = 0; x <= columns - width; x++) {\n const isFree = !widgets.some(widget => overlaps(widget, x, y, width, height));\n if (isFree) {\n return { x, y };\n }\n }\n }\n\n const maxY = widgets.reduce((acc, widget) => Math.max(acc, widget.y + widget.h), 0);\n return { x: 0, y: maxY };\n};\n\nexport interface PlacementResult {\n widgets: DashboardWidget[];\n movedWidgets: string[];\n swappedWith?: string;\n}\n\nexport const resolveWidgetPlacement = (\n widgets: DashboardWidget[],\n widgetId: string,\n next: { x: number; y: number; w?: number; h?: number },\n columns: number,\n previousPosition?: DashboardLayoutItem,\n): PlacementResult | null => {\n const sourceWidgets = cloneWidgets(widgets);\n const moving = sourceWidgets.find(widget => widget.id === widgetId);\n const original = widgets.find(widget => widget.id === widgetId);\n if (!moving || !original) {\n return null;\n }\n\n const target = {\n x: next.x,\n y: next.y,\n w: next.w ?? moving.w,\n h: next.h ?? moving.h,\n };\n\n moving.x = target.x;\n moving.y = target.y;\n moving.w = target.w;\n moving.h = target.h;\n\n const collisions = collectCollisions(sourceWidgets, moving, target.x, target.y, target.w, target.h);\n\n if (collisions.length === 0) {\n return { widgets: sourceWidgets, movedWidgets: [moving.id] };\n }\n\n if (collisions.length === 1) {\n const other = collisions[0];\n if (!other.locked && !other.noMove && other.w === moving.w && other.h === moving.h) {\n const otherClone = sourceWidgets.find(widget => widget.id === other.id);\n if (otherClone) {\n // Use the original position of the moving widget for a clean swap\n // This prevents the \"snapping together\" issue where both widgets end up at the same position\n const swapTarget = original;\n const previousOtherPosition = { x: otherClone.x, y: otherClone.y };\n otherClone.x = swapTarget.x;\n otherClone.y = swapTarget.y;\n\n const swapValid =\n collectCollisions(sourceWidgets, moving, moving.x, moving.y, moving.w, moving.h).length === 0 &&\n collectCollisions(sourceWidgets, otherClone, otherClone.x, otherClone.y, otherClone.w, otherClone.h).length === 0;\n\n if (swapValid) {\n return { widgets: sourceWidgets, movedWidgets: [moving.id, otherClone.id], swappedWith: otherClone.id };\n }\n\n otherClone.x = previousOtherPosition.x;\n otherClone.y = previousOtherPosition.y;\n }\n }\n }\n\n // attempt displacement cascade\n const movedIds = new Set([moving.id]);\n for (const offending of collisions) {\n if (offending.locked || offending.noMove) {\n return null;\n }\n const clone = sourceWidgets.find(widget => widget.id === offending.id);\n if (!clone) continue;\n const remaining = sourceWidgets.filter(widget => widget.id !== offending.id);\n const position = findAvailablePosition(remaining, clone.w, clone.h, columns);\n clone.x = position.x;\n clone.y = position.y;\n movedIds.add(clone.id);\n }\n\n // verify no overlaps remain\n const verify = collectCollisions(sourceWidgets, moving, moving.x, moving.y, moving.w, moving.h);\n if (verify.length > 0) {\n return null;\n }\n\n return { widgets: sourceWidgets, movedWidgets: Array.from(movedIds) };\n};\n\nexport const compactLayout = (\n widgets: DashboardWidget[],\n direction: LayoutDirection = 'vertical',\n) => {\n const sorted = [...widgets].sort((a, b) => {\n if (direction === 'vertical') {\n if (a.y !== b.y) return a.y - b.y;\n return a.x - b.x;\n }\n\n if (a.x !== b.x) return a.x - b.x;\n return a.y - b.y;\n });\n\n for (const widget of sorted) {\n if (widget.locked || widget.noMove) continue;\n\n if (direction === 'vertical') {\n while (widget.y > 0 && !checkCollision(widgets, widget, widget.x, widget.y - 1)) {\n widget.y -= 1;\n }\n } else {\n while (widget.x > 0 && !checkCollision(widgets, widget, widget.x - 1, widget.y)) {\n widget.x -= 1;\n }\n }\n }\n};\n\nexport const applyLayout = (\n widgets: DashboardWidget[],\n layout: DashboardLayoutItem[],\n): DashboardWidget[] => {\n return widgets.map(widget => {\n const layoutItem = layout.find(item => item.id === widget.id);\n return layoutItem ? { ...widget, ...layoutItem } : widget;\n });\n};\n", "import type { DashboardWidget, GridCellMetrics } from './types.js';\n\nexport interface PointerPosition {\n clientX: number;\n clientY: number;\n}\n\nexport interface DragComputationArgs {\n pointer: PointerPosition;\n containerRect: DOMRect;\n metrics: GridCellMetrics;\n columns: number;\n widget: DashboardWidget;\n rtl: boolean;\n dragOffsetX?: number;\n dragOffsetY?: number;\n}\n\nexport const computeGridCoordinates = ({\n pointer,\n containerRect,\n metrics,\n columns,\n widget,\n rtl,\n dragOffsetX = 0,\n dragOffsetY = 0,\n}: DragComputationArgs): { x: number; y: number } => {\n const relativeX = pointer.clientX - containerRect.left - dragOffsetX;\n const relativeY = pointer.clientY - containerRect.top - dragOffsetY;\n\n const marginX = metrics.marginHorizontalPx;\n const marginY = metrics.marginVerticalPx;\n const cellWidth = metrics.cellWidthPx;\n const cellHeight = metrics.cellHeightPx;\n\n const clamp = (value: number, min: number, max: number) => Math.max(min, Math.min(max, value));\n\n const adjustedX = clamp(relativeX - marginX, 0, containerRect.width - marginX);\n const adjustedY = clamp(relativeY - marginY, 0, Number.POSITIVE_INFINITY);\n\n const cellPlusMarginX = cellWidth + marginX;\n const cellPlusMarginY = cellHeight + marginY;\n\n let gridX = Math.round(adjustedX / cellPlusMarginX);\n if (rtl) {\n gridX = columns - widget.w - gridX;\n }\n gridX = clamp(gridX, 0, columns - widget.w);\n\n const gridY = clamp(Math.round(adjustedY / cellPlusMarginY), 0, Number.MAX_SAFE_INTEGER);\n\n return { x: gridX, y: gridY };\n};\n\nexport interface ResizeComputationArgs {\n pointer: PointerPosition;\n containerRect: DOMRect;\n metrics: GridCellMetrics;\n startWidth: number;\n startHeight: number;\n startPointer: PointerPosition;\n handler: 'e' | 's' | 'se';\n widget: DashboardWidget;\n columns: number;\n}\n\nexport const computeResizeDimensions = ({\n pointer,\n containerRect,\n metrics,\n startWidth,\n startHeight,\n startPointer,\n handler,\n widget,\n columns,\n}: ResizeComputationArgs): { width: number; height: number } => {\n const deltaX = pointer.clientX - startPointer.clientX;\n const deltaY = pointer.clientY - startPointer.clientY;\n\n let width = startWidth;\n let height = startHeight;\n\n const cellPlusMarginX = metrics.cellWidthPx + metrics.marginHorizontalPx;\n const cellPlusMarginY = metrics.cellHeightPx + metrics.marginVerticalPx;\n\n if (handler.includes('e')) {\n const deltaCols = Math.round(deltaX / cellPlusMarginX);\n width = startWidth + deltaCols;\n }\n\n if (handler.includes('s')) {\n const deltaRows = Math.round(deltaY / cellPlusMarginY);\n height = startHeight + deltaRows;\n }\n\n const clampedWidth = Math.max(widget.minW || 1, Math.min(width, widget.maxW || columns - widget.x));\n const clampedHeight = Math.max(widget.minH || 1, Math.min(height, widget.maxH || Number.MAX_SAFE_INTEGER));\n\n return {\n width: clampedWidth,\n height: clampedHeight,\n };\n};\n", "import type { DashboardWidget } from './types.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport type { DeesDashboardgrid } from './dees-dashboardgrid.js';\nimport * as plugins from '../../00plugins.js';\n\nexport interface WidgetContextMenuOptions {\n widget: DashboardWidget;\n host: DeesDashboardgrid;\n event: MouseEvent;\n}\n\nexport const openWidgetContextMenu = ({\n widget,\n host,\n event,\n}: WidgetContextMenuOptions) => {\n const items: (plugins.tsclass.website.IMenuItem | { divider: true })[] = [\n {\n name: 'Delete tile',\n iconName: 'lucide:trash2' as any,\n action: async () => {\n host.removeWidget(widget.id);\n return null;\n },\n },\n ];\n\n DeesContextmenu.openContextMenuWithOptions(event, items as any);\n};\n", "import {\n DeesElement,\n customElement,\n property,\n state,\n html,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { demoFunc } from './dees-dashboardgrid.demo.js';\nimport { dashboardGridStyles } from './styles.js';\nimport {\n resolveMargins,\n calculateCellMetrics,\n calculateGridHeight,\n findAvailablePosition,\n compactLayout,\n applyLayout,\n resolveWidgetPlacement,\n type PlacementResult,\n} from './layout.js';\nimport {\n computeGridCoordinates,\n computeResizeDimensions,\n type PointerPosition,\n} from './interaction.js';\nimport { openWidgetContextMenu } from './contextmenu.js';\nimport type {\n DashboardWidget,\n DashboardMargin,\n DashboardResolvedMargins,\n GridCellMetrics,\n DashboardLayoutItem,\n LayoutDirection,\n CellHeightUnit,\n} from './types.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-dashboardgrid': DeesDashboardgrid;\n }\n}\n\ntype DragState = {\n widgetId: string;\n pointerId: number;\n offsetX: number;\n offsetY: number;\n start: DashboardLayoutItem;\n previousPosition: DashboardLayoutItem;\n currentPointer: PointerPosition;\n lastPlacement: PlacementResult | null;\n};\n\ntype ResizeState = {\n widgetId: string;\n pointerId: number;\n handler: 'e' | 's' | 'se';\n startPointer: PointerPosition;\n start: DashboardLayoutItem;\n startWidth: number;\n startHeight: number;\n lastPlacement: PlacementResult | null;\n};\n\n@customElement('dees-dashboardgrid')\nexport class DeesDashboardgrid extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n public static styles = dashboardGridStyles;\n\n @property({ type: Array })\n accessor widgets: DashboardWidget[] = [];\n\n @property({ type: Number })\n accessor cellHeight: number = 80;\n\n @property({ type: Object })\n accessor margin: DashboardMargin = 10;\n\n @property({ type: Number })\n accessor columns: number = 12;\n\n @property({ type: Boolean })\n accessor editable: boolean = true;\n\n @property({ type: Boolean, reflect: true })\n accessor enableAnimation: boolean = true;\n\n @property({ type: String })\n accessor cellHeightUnit: CellHeightUnit = 'px';\n\n @property({ type: Boolean })\n accessor rtl: boolean = false;\n\n @property({ type: Boolean })\n accessor showGridLines: boolean = false;\n\n @property({ attribute: false })\n accessor layouts: Record | undefined = undefined;\n\n @property({ type: String })\n accessor activeBreakpoint: string = 'base';\n\n @state()\n accessor placeholderPosition: DashboardLayoutItem | null = null;\n\n @state()\n accessor metrics: GridCellMetrics | null = null;\n\n @state()\n accessor resolvedMargins: DashboardResolvedMargins | null = null;\n\n @state()\n accessor previewWidgets: DashboardWidget[] | null = null;\n\n private containerBounds: DOMRect | null = null;\n private dragState: DragState | null = null;\n private resizeState: ResizeState | null = null;\n private resizeObserver?: ResizeObserver;\n private interactionActive = false;\n\n public override async connectedCallback(): Promise {\n await super.connectedCallback();\n this.computeMetrics();\n this.observeResize();\n }\n\n public override async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.disconnectResizeObserver();\n this.releasePointerEvents();\n }\n\n protected updated(changed: Map): void {\n if (\n changed.has('margin') ||\n changed.has('columns') ||\n changed.has('cellHeight') ||\n changed.has('cellHeightUnit')\n ) {\n this.computeMetrics();\n }\n\n if (changed.has('widgets') && !this.interactionActive) {\n this.notifyLayoutChange();\n }\n }\n\n public render(): TemplateResult {\n const baseWidgets = this.widgets;\n if (baseWidgets.length === 0) {\n return html`\n
      \n \n
      No widgets configured
      \n
      Add widgets to populate the dashboard
      \n
      \n `;\n }\n\n const metrics = this.ensureMetrics();\n const margins = this.resolvedMargins ?? resolveMargins(this.margin);\n const cellHeight = metrics.cellHeightPx;\n const layoutForHeight = this.previewWidgets ?? this.widgets;\n const gridHeight = calculateGridHeight(layoutForHeight, margins, cellHeight);\n const previewMap = this.previewWidgets ? new Map(this.previewWidgets.map(widget => [widget.id, widget])) : null;\n\n return html`\n
      \n ${this.showGridLines ? this.renderGridLines(metrics, gridHeight) : null}\n ${baseWidgets.map(widget => this.renderWidget(widget, metrics, margins, previewMap))}\n ${this.placeholderPosition ? this.renderPlaceholder(metrics, margins) : null}\n
      \n `;\n }\n\n private renderGridLines(metrics: GridCellMetrics, gridHeight: number): TemplateResult {\n const vertical: TemplateResult[] = [];\n const horizontal: TemplateResult[] = [];\n const cellPlusMarginX = metrics.cellWidthPx + metrics.marginHorizontalPx;\n const cellPlusMarginY = metrics.cellHeightPx + metrics.marginVerticalPx;\n\n for (let i = 0; i <= this.columns; i++) {\n const leftPx = i * cellPlusMarginX + metrics.marginHorizontalPx;\n const leftPercent = this.pxToPercent(leftPx, metrics.containerWidth);\n vertical.push(html`
      `);\n }\n\n const rows = Math.ceil(gridHeight / cellPlusMarginY);\n for (let row = 0; row <= rows; row++) {\n const top = row * cellPlusMarginY;\n horizontal.push(html`
      `);\n }\n\n return html`\n
      \n ${vertical}\n ${horizontal}\n
      \n `;\n }\n\n private renderWidget(\n widget: DashboardWidget,\n metrics: GridCellMetrics,\n margins: DashboardResolvedMargins,\n previewMap: Map | null,\n ): TemplateResult {\n const isDragging = this.dragState?.widgetId === widget.id;\n const isResizing = this.resizeState?.widgetId === widget.id;\n const isLocked = widget.locked || !this.editable;\n const previewWidget = previewMap?.get(widget.id) ?? null;\n const layoutForRender = isDragging ? widget : previewWidget ?? widget;\n const rect = this.computeWidgetRect(layoutForRender, metrics, margins);\n\n const sideProperty = this.rtl ? 'right' : 'left';\n const sideValue = this.pxToPercent(rect.left, metrics.containerWidth);\n const widthPercent = this.pxToPercent(rect.width, metrics.containerWidth);\n\n let transform = '';\n if (isDragging && this.dragState?.currentPointer) {\n const pointer = this.dragState.currentPointer;\n const bounds = this.containerBounds ?? this.getBoundingClientRect();\n const translateX = pointer.clientX - bounds.left - this.dragState.offsetX - rect.left;\n const translateY = pointer.clientY - bounds.top - this.dragState.offsetY - rect.top;\n transform = `transform: translate(${translateX}px, ${translateY}px);`;\n }\n\n return html`\n \n
      \n ${widget.title\n ? html`\n this.startDrag(evt, widget)\n : null}\n @contextmenu=${(evt: MouseEvent) => this.handleWidgetContextMenu(evt, widget)}\n tabindex=${!isLocked && !widget.noMove ? 0 : -1}\n @keydown=${(evt: KeyboardEvent) => this.handleHeaderKeydown(evt, widget)}\n >\n ${widget.icon ? html`` : null}\n ${widget.title}\n
      \n `\n : null}\n
      \n ${widget.content}\n
      \n ${!isLocked && !widget.noResize\n ? html`\n this.startResize(evt, widget, 'e')}\n >\n this.startResize(evt, widget, 's')}\n >\n this.startResize(evt, widget, 'se')}\n >\n `\n : null}\n \n \n `;\n }\n\n private renderPlaceholder(\n metrics: GridCellMetrics,\n margins: DashboardResolvedMargins,\n ): TemplateResult {\n if (!this.placeholderPosition) {\n return html``;\n }\n\n const rect = this.computeWidgetRect(this.placeholderPosition, metrics, margins);\n const sideProperty = this.rtl ? 'right' : 'left';\n const sideValue = this.pxToPercent(rect.left, metrics.containerWidth);\n const widthPercent = this.pxToPercent(rect.width, metrics.containerWidth);\n\n return html`\n \n
      \n \n `;\n }\n\n private startDrag(event: PointerEvent, widget: DashboardWidget): void {\n if (!this.editable || widget.noMove || widget.locked) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const widgetElement = (event.currentTarget as HTMLElement).closest('.grid-widget') as HTMLElement | null;\n if (!widgetElement) {\n return;\n }\n\n const widgetRect = widgetElement.getBoundingClientRect();\n this.containerBounds = this.getBoundingClientRect();\n this.ensureMetrics();\n\n this.dragState = {\n widgetId: widget.id,\n pointerId: event.pointerId,\n offsetX: event.clientX - widgetRect.left,\n offsetY: event.clientY - widgetRect.top,\n start: { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h },\n previousPosition: { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h },\n currentPointer: { clientX: event.clientX, clientY: event.clientY },\n lastPlacement: null,\n };\n\n this.interactionActive = true;\n (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n document.addEventListener('pointermove', this.handleDragMove);\n document.addEventListener('pointerup', this.handleDragEnd);\n\n this.placeholderPosition = { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h };\n }\n\n private handleDragMove = (event: PointerEvent): void => {\n if (!this.dragState) return;\n const metrics = this.ensureMetrics();\n const activeWidgets = this.widgets;\n const widget = activeWidgets.find(item => item.id === this.dragState!.widgetId);\n if (!widget) return;\n\n event.preventDefault();\n\n const previousPosition = this.dragState.previousPosition;\n\n const coords = computeGridCoordinates({\n pointer: { clientX: event.clientX, clientY: event.clientY },\n containerRect: this.containerBounds ?? this.getBoundingClientRect(),\n metrics,\n columns: this.columns,\n widget,\n rtl: this.rtl,\n dragOffsetX: this.dragState.offsetX,\n dragOffsetY: this.dragState.offsetY,\n });\n\n const placement = resolveWidgetPlacement(\n activeWidgets,\n widget.id,\n { x: coords.x, y: coords.y },\n this.columns,\n previousPosition,\n );\n if (placement) {\n const updatedWidget = placement.widgets.find(item => item.id === widget.id);\n this.dragState = {\n ...this.dragState,\n currentPointer: { clientX: event.clientX, clientY: event.clientY },\n lastPlacement: placement,\n previousPosition: updatedWidget\n ? { id: updatedWidget.id, x: updatedWidget.x, y: updatedWidget.y, w: updatedWidget.w, h: updatedWidget.h }\n : { id: widget.id, x: coords.x, y: coords.y, w: widget.w, h: widget.h },\n };\n this.previewWidgets = placement.widgets;\n const previewWidget = placement.widgets.find(item => item.id === widget.id);\n if (previewWidget) {\n this.placeholderPosition = {\n id: previewWidget.id,\n x: previewWidget.x,\n y: previewWidget.y,\n w: previewWidget.w,\n h: previewWidget.h,\n };\n } else {\n this.placeholderPosition = { id: widget.id, x: coords.x, y: coords.y, w: widget.w, h: widget.h };\n }\n } else {\n this.previewWidgets = null;\n this.placeholderPosition = null;\n }\n\n this.requestUpdate();\n };\n\n private handleDragEnd = (event: PointerEvent): void => {\n const dragState = this.dragState;\n if (!dragState || event.pointerId !== dragState.pointerId) {\n return;\n }\n\n const layoutSource = this.widgets;\n this.previewWidgets = null;\n\n // Always validate the final position, don't rely on lastPlacement from drag\n const target = this.placeholderPosition ?? dragState.start;\n const placement = resolveWidgetPlacement(\n layoutSource,\n dragState.widgetId,\n { x: target.x, y: target.y },\n this.columns,\n dragState.previousPosition,\n );\n\n if (placement) {\n // Verify that the placement doesn't result in overlapping widgets\n const finalWidget = placement.widgets.find(w => w.id === dragState.widgetId);\n if (finalWidget) {\n const hasOverlap = placement.widgets.some(w => {\n if (w.id === dragState.widgetId) return false;\n return (\n finalWidget.x < w.x + w.w &&\n finalWidget.x + finalWidget.w > w.x &&\n finalWidget.y < w.y + w.h &&\n finalWidget.y + finalWidget.h > w.y\n );\n });\n\n if (!hasOverlap) {\n this.commitPlacement(placement, dragState.widgetId, 'widget-move');\n } else {\n // Return to start position if overlap detected\n this.widgets = this.widgets.map(widget =>\n widget.id === dragState.widgetId ? { ...widget, x: dragState.start.x, y: dragState.start.y } : widget,\n );\n }\n }\n } else {\n // Return to start position if no valid placement\n this.widgets = this.widgets.map(widget =>\n widget.id === dragState.widgetId ? { ...widget, x: dragState.start.x, y: dragState.start.y } : widget,\n );\n }\n\n this.placeholderPosition = null;\n this.dragState = null;\n this.interactionActive = false;\n this.releasePointerEvents();\n };\n\n private startResize(event: PointerEvent, widget: DashboardWidget, handler: 'e' | 's' | 'se'): void {\n if (!this.editable || widget.noResize || widget.locked) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n this.ensureMetrics();\n\n this.resizeState = {\n widgetId: widget.id,\n pointerId: event.pointerId,\n handler,\n startPointer: { clientX: event.clientX, clientY: event.clientY },\n start: { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h },\n startWidth: widget.w,\n startHeight: widget.h,\n lastPlacement: null,\n };\n\n this.interactionActive = true;\n (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n document.addEventListener('pointermove', this.handleResizeMove);\n document.addEventListener('pointerup', this.handleResizeEnd);\n\n this.placeholderPosition = { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h };\n }\n\n private handleResizeMove = (event: PointerEvent): void => {\n if (!this.resizeState) return;\n const metrics = this.ensureMetrics();\n const activeWidgets = this.widgets;\n const widget = activeWidgets.find(item => item.id === this.resizeState!.widgetId);\n if (!widget) return;\n\n event.preventDefault();\n\n const nextSize = computeResizeDimensions({\n pointer: { clientX: event.clientX, clientY: event.clientY },\n containerRect: this.containerBounds ?? this.getBoundingClientRect(),\n metrics,\n startWidth: this.resizeState.startWidth,\n startHeight: this.resizeState.startHeight,\n startPointer: this.resizeState.startPointer,\n handler: this.resizeState.handler,\n widget,\n columns: this.columns,\n });\n\n const placement = resolveWidgetPlacement(\n activeWidgets,\n widget.id,\n { x: widget.x, y: widget.y, w: nextSize.width, h: nextSize.height },\n this.columns,\n this.resizeState.start,\n );\n\n if (placement) {\n this.resizeState = { ...this.resizeState, lastPlacement: placement };\n this.previewWidgets = placement.widgets;\n const previewWidget = placement.widgets.find(item => item.id === widget.id);\n if (previewWidget) {\n this.placeholderPosition = {\n id: previewWidget.id,\n x: previewWidget.x,\n y: previewWidget.y,\n w: previewWidget.w,\n h: previewWidget.h,\n };\n } else {\n this.placeholderPosition = {\n id: widget.id,\n x: widget.x,\n y: widget.y,\n w: nextSize.width,\n h: nextSize.height,\n };\n }\n } else {\n this.previewWidgets = null;\n this.placeholderPosition = null;\n }\n\n this.requestUpdate();\n };\n\n private handleResizeEnd = (event: PointerEvent): void => {\n const resizeState = this.resizeState;\n if (!resizeState || event.pointerId !== resizeState.pointerId) {\n return;\n }\n\n const layoutSource = this.widgets;\n this.previewWidgets = null;\n const placement =\n resizeState.lastPlacement ??\n resolveWidgetPlacement(\n layoutSource,\n resizeState.widgetId,\n {\n x: this.placeholderPosition?.x ?? resizeState.start.x,\n y: this.placeholderPosition?.y ?? resizeState.start.y,\n w: this.placeholderPosition?.w ?? resizeState.start.w,\n h: this.placeholderPosition?.h ?? resizeState.start.h,\n },\n this.columns,\n resizeState.start,\n );\n\n if (placement) {\n this.commitPlacement(placement, resizeState.widgetId, 'widget-resize');\n } else {\n this.widgets = this.widgets.map(widget =>\n widget.id === resizeState.widgetId ? { ...widget, w: resizeState.start.w, h: resizeState.start.h } : widget,\n );\n }\n\n this.placeholderPosition = null;\n this.resizeState = null;\n this.interactionActive = false;\n this.releasePointerEvents();\n };\n\n private handleHeaderKeydown(event: KeyboardEvent, widget: DashboardWidget): void {\n if (!this.editable || widget.noMove || widget.locked) {\n return;\n }\n\n const key = event.key;\n const isResize = event.shiftKey;\n let placement: PlacementResult | null = null;\n\n if (isResize && ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(key)) {\n event.preventDefault();\n const delta = key === 'ArrowRight' || key === 'ArrowDown' ? 1 : -1;\n\n if (key === 'ArrowLeft' || key === 'ArrowRight') {\n const maxWidth = widget.maxW ?? this.columns - widget.x;\n const nextWidth = Math.max(widget.minW ?? 1, Math.min(maxWidth, widget.w + delta));\n placement = resolveWidgetPlacement(\n this.widgets,\n widget.id,\n { x: widget.x, y: widget.y, w: nextWidth, h: widget.h },\n this.columns,\n );\n } else {\n const maxHeight = widget.maxH ?? Number.POSITIVE_INFINITY;\n const nextHeight = Math.max(widget.minH ?? 1, Math.min(maxHeight, widget.h + delta));\n placement = resolveWidgetPlacement(\n this.widgets,\n widget.id,\n { x: widget.x, y: widget.y, w: widget.w, h: nextHeight },\n this.columns,\n );\n }\n\n if (placement) {\n this.commitPlacement(placement, widget.id, 'widget-resize');\n }\n return;\n }\n\n const moveMap: Record = {\n ArrowLeft: { dx: -1, dy: 0 },\n ArrowRight: { dx: 1, dy: 0 },\n ArrowUp: { dx: 0, dy: -1 },\n ArrowDown: { dx: 0, dy: 1 },\n };\n\n const delta = moveMap[key];\n if (!delta) {\n return;\n }\n\n event.preventDefault();\n const targetX = Math.max(0, Math.min(this.columns - widget.w, widget.x + delta.dx));\n const targetY = Math.max(0, widget.y + delta.dy);\n\n placement = resolveWidgetPlacement(this.widgets, widget.id, { x: targetX, y: targetY }, this.columns);\n if (placement) {\n this.commitPlacement(placement, widget.id, 'widget-move');\n }\n }\n\n private handleWidgetContextMenu(event: MouseEvent, widget: DashboardWidget): void {\n event.preventDefault();\n event.stopPropagation();\n openWidgetContextMenu({ widget, host: this, event });\n }\n\n private commitPlacement(result: PlacementResult, widgetId: string, type: 'widget-move' | 'widget-resize'): void {\n this.previewWidgets = null;\n this.widgets = result.widgets;\n const subject = this.widgets.find(item => item.id === widgetId);\n if (subject) {\n this.dispatchEvent(\n new CustomEvent(type, {\n detail: {\n widget: subject,\n displaced: result.movedWidgets.filter(id => id !== widgetId),\n swappedWith: result.swappedWith,\n },\n bubbles: true,\n composed: true,\n }),\n );\n }\n }\n\n public removeWidget(widgetId: string): void {\n const target = this.widgets.find(widget => widget.id === widgetId);\n if (!target) return;\n this.widgets = this.widgets.filter(widget => widget.id !== widgetId);\n this.dispatchEvent(\n new CustomEvent('widget-remove', {\n detail: { widget: target },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n public updateWidget(widgetId: string, updates: Partial): void {\n this.widgets = this.widgets.map(widget => (widget.id === widgetId ? { ...widget, ...updates } : widget));\n }\n\n public getLayout(): DashboardLayoutItem[] {\n return this.widgets.map(({ id, x, y, w, h }) => ({ id, x, y, w, h }));\n }\n\n public setLayout(layout: DashboardLayoutItem[]): void {\n this.widgets = applyLayout(this.widgets, layout);\n }\n\n public lockGrid(): void {\n this.editable = false;\n }\n\n public unlockGrid(): void {\n this.editable = true;\n }\n\n public addWidget(widget: DashboardWidget, autoPosition = false): void {\n const nextWidget = { ...widget };\n if (autoPosition || nextWidget.autoPosition) {\n const position = findAvailablePosition(this.widgets, nextWidget.w, nextWidget.h, this.columns);\n nextWidget.x = position.x;\n nextWidget.y = position.y;\n }\n\n this.widgets = [...this.widgets, nextWidget];\n }\n\n public compact(direction: LayoutDirection = 'vertical'): void {\n const nextWidgets = this.widgets.map(widget => ({ ...widget }));\n compactLayout(nextWidgets, direction);\n this.widgets = nextWidgets;\n }\n\n public applyBreakpointLayout(breakpoint: string): void {\n this.activeBreakpoint = breakpoint;\n const layout = this.layouts?.[breakpoint];\n if (layout) {\n this.setLayout(layout);\n }\n }\n\n public notifyLayoutChange(): void {\n this.dispatchEvent(\n new CustomEvent('layout-change', {\n detail: { layout: this.getLayout() },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private ensureMetrics(): GridCellMetrics {\n if (!this.metrics) {\n this.computeMetrics();\n }\n return this.metrics!;\n }\n\n private computeMetrics(): void {\n if (!this.isConnected) return;\n const bounds = this.getBoundingClientRect();\n this.containerBounds = bounds;\n const margins = resolveMargins(this.margin);\n this.resolvedMargins = margins;\n this.metrics = calculateCellMetrics(bounds.width, this.columns, margins, this.cellHeight, this.cellHeightUnit);\n }\n\n private observeResize(): void {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(() => {\n this.computeMetrics();\n });\n this.resizeObserver.observe(this);\n }\n\n private disconnectResizeObserver(): void {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n\n private releasePointerEvents(): void {\n document.removeEventListener('pointermove', this.handleDragMove);\n document.removeEventListener('pointerup', this.handleDragEnd);\n document.removeEventListener('pointermove', this.handleResizeMove);\n document.removeEventListener('pointerup', this.handleResizeEnd);\n }\n\n private pxToPercent(value: number, container: number): number {\n if (!container) return 0;\n return Number(((value / container) * 100).toFixed(4));\n }\n\n private computeWidgetRect(\n widget: Pick,\n metrics: GridCellMetrics,\n margins: DashboardResolvedMargins,\n ) {\n const cellWidth = metrics.cellWidthPx;\n const cellHeight = metrics.cellHeightPx;\n const left = widget.x * (cellWidth + margins.horizontal) + margins.horizontal;\n const top = widget.y * (cellHeight + margins.vertical) + margins.vertical;\n const width = widget.w * cellWidth + Math.max(0, widget.w - 1) * margins.horizontal;\n const height = widget.h * cellHeight + Math.max(0, widget.h - 1) * margins.vertical;\n\n return { left, top, width, height };\n }\n}\n", "export * from './dees-dashboardgrid.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport function demoFunc() {\n return html`\n This is a H1 heading\n This is a H2 heading\n This is a H3 heading\n This is a H4 heading\n This is a H5 heading\n This is a H6 heading\n This is an hr heading\n This is an hr small heading\n `;\n}", "import {\n customElement,\n html,\n css,\n property,\n cssManager,\n type TemplateResult,\n DeesElement,\n type CSSResult,\n} from '@design.estate/dees-element';\n\nimport { demoFunc } from './dees-heading.demo.js';\nimport { cssCalSansFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-heading': DeesHeading;\n }\n}\n\n@customElement('dees-heading')\nexport class DeesHeading extends DeesElement {\n // demo\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n\n // properties\n /**\n * Heading level: 1-6 for h1-h6, or 'hr' for horizontal rule style\n */\n @property({ type: String, reflect: true })\n accessor level: '1' | '2' | '3' | '4' | '5' | '6' | 'hr' | 'hr-small' = '1';\n\n // STATIC STYLES\n public static styles: CSSResult[] = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n /* Heading styles */\n h1, h2, h3, h4, h5, h6 {\n margin: 16px 0 8px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n h1 { font-size: 32px; font-family: ${cssCalSansFontFamily}; letter-spacing: 0.025em;}\n h2 { font-size: 28px; }\n h3 { font-size: 24px; }\n h4 { font-size: 20px; }\n h5 { font-size: 16px; }\n h6 { font-size: 14px; }\n /* Horizontal rule style heading */\n .heading-hr {\n display: flex;\n align-items: center;\n text-align: center;\n margin: 16px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n /* Fade lines toward and away from text for hr style */\n .heading-hr::before {\n content: '';\n flex: 1;\n height: 1px;\n /* fade in toward center */\n background: ${cssManager.bdTheme(\n 'linear-gradient(to right, transparent, #ccc)',\n 'linear-gradient(to right, transparent, #333)'\n )};\n margin: 0 8px;\n }\n .heading-hr::after {\n content: '';\n flex: 1;\n height: 1px;\n /* fade out away from center */\n background: ${cssManager.bdTheme(\n 'linear-gradient(to right, #ccc, transparent)',\n 'linear-gradient(to right, #333, transparent)'\n )};\n margin: 0 8px;\n }\n /* Small hr variant with reduced margins */\n .heading-hr.heading-hr-small {\n margin: 8px 0;\n font-size: 12px;\n }\n .heading-hr.heading-hr-small::before,\n .heading-hr.heading-hr-small::after {\n margin: 0 8px;\n }\n `,\n ];\n\n\n // INSTANCE\n public render(): TemplateResult {\n switch (this.level) {\n case '1':\n return html`

      `;\n case '2':\n return html`

      `;\n case '3':\n return html`

      `;\n case '4':\n return html`

      `;\n case '5':\n return html`
      `;\n case '6':\n return html`
      `;\n case 'hr':\n return html`
      `;\n case 'hr-small':\n return html`
      `;\n default:\n return html`

      `;\n }\n }\n}", "export * from './dees-heading.js';\n", "export * from './dees-label.js';\n", "import { html } from '@design.estate/dees-element';\n\n/**\n * Demo for dees-pagination component\n */\nexport const demoFunc = () => html`\n
      \n \n
      \n 5 pages, starting at 1:\n console.log('Page changed to', e.detail.page)}\n >\n
      \n\n \n
      \n 15 pages, starting at 8:\n console.log('Page changed to', e.detail.page)}\n >\n
      \n
      \n`;", "import { customElement, html, DeesElement, property, css, cssManager, type TemplateResult } from '@design.estate/dees-element';\nimport { demoFunc } from './dees-pagination.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pagination': DeesPagination;\n }\n}\n\n/**\n * A simple pagination component.\n * @fires page-change - Emitted when the page is changed. detail: { page: number }\n */\n@customElement('dees-pagination')\nexport class DeesPagination extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n /** Current page (1-based) */\n @property({ type: Number, reflect: true })\n accessor page = 1;\n\n /** Total number of pages */\n @property({ type: Number, reflect: true })\n accessor total = 1;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-flex;\n align-items: center;\n }\n button {\n background: none;\n border: none;\n margin: 0 2px;\n padding: 6px 10px;\n font-size: 14px;\n cursor: pointer;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n border-radius: 3px;\n transition: background 0.2s;\n }\n button:hover:not(:disabled) {\n background: ${cssManager.bdTheme('#eee', '#444')};\n }\n button:disabled {\n cursor: default;\n color: ${cssManager.bdTheme('#aaa', '#666')};\n }\n button.current {\n background: #0050b9;\n color: #fff;\n cursor: default;\n }\n span.ellipsis {\n margin: 0 4px;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n }\n `,\n ];\n\n private get pages(): (number | string)[] {\n const pages: (number | string)[] = [];\n const total = this.total;\n const current = this.page;\n if (total <= 7) {\n for (let i = 1; i <= total; i++) {\n pages.push(i);\n }\n } else {\n pages.push(1);\n if (current > 4) {\n pages.push('...');\n }\n const start = Math.max(2, current - 2);\n const end = Math.min(total - 1, current + 2);\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n if (current < total - 3) {\n pages.push('...');\n }\n pages.push(total);\n }\n return pages;\n }\n\n public render(): TemplateResult {\n return html`\n this.changePage(this.page - 1)}\n ?disabled=${this.page <= 1}\n aria-label=\"Previous page\"\n >\n \u2039\n \n ${this.pages.map((p) =>\n p === '...'\n ? html`\u2026`\n : html`\n this.changePage(p as number)}\n ?disabled=${p === this.page}\n aria-label=\"Page ${p}\"\n >\n ${p}\n \n `\n )}\n this.changePage(this.page + 1)}\n ?disabled=${this.page >= this.total}\n aria-label=\"Next page\"\n >\n \u203A\n \n `;\n }\n\n private changePage(newPage: number) {\n if (newPage < 1 || newPage > this.total || newPage === this.page) {\n return;\n }\n this.page = newPage;\n this.dispatchEvent(\n new CustomEvent('page-change', {\n detail: { page: this.page },\n bubbles: true,\n })\n );\n }\n}", "export * from './dees-pagination.js';\n", "export * from './dees-panel.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const stepperDemo = () => html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Profile Details',\n content: html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Contact Information',\n content: html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Team Size',\n content: html`\n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Goals',\n content: html`\n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Brand Preferences',\n content: html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Integrations',\n content: html`\n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Review & Launch',\n content: html`\n \n

      Almost there! Review your selections and launch whenever you're ready.

      \n
      \n `,\n },\n ] as const}\n >\n`;\n", "import * as plugins from '../../00plugins.js';\nimport * as colors from '../../00colors.js';\n\nimport {\n DeesElement,\n customElement,\n html,\n css,\n unsafeCSS,\n type CSSResult,\n cssManager,\n property,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { stepperDemo } from './dees-stepper.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nexport interface IStep {\n title: string;\n content: TemplateResult;\n validationFunc?: (stepper: DeesStepper, htmlElement: HTMLElement, signal?: AbortSignal) => Promise;\n onReturnToStepFunc?: (stepper: DeesStepper, htmlElement: HTMLElement) => Promise;\n validationFuncCalled?: boolean;\n abortController?: AbortController;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-stepper': DeesStepper;\n }\n}\n\n@customElement('dees-stepper')\nexport class DeesStepper extends DeesElement {\n public static demo = stepperDemo;\n public static demoGroups = ['Layout', 'Form'];\n\n @property({\n type: Array,\n })\n accessor steps: IStep[] = [];\n\n @property({\n type: Object,\n })\n accessor selectedStep: IStep;\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n .stepperContainer {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n\n .step {\n position: relative;\n pointer-events: none;\n overflow: hidden;\n transition: transform 0.7s cubic-bezier(0.87, 0, 0.13, 1), box-shadow 0.7s cubic-bezier(0.87, 0, 0.13, 1), filter 0.7s cubic-bezier(0.87, 0, 0.13, 1), border 0.7s cubic-bezier(0.87, 0, 0.13, 1);\n max-width: 500px;\n min-height: 300px;\n border-radius: 12px;\n background: ${cssManager.bdTheme('#ffffff', '#0f0f11')};\n border: 1px solid ${cssManager.bdTheme('#e2e8f0', '#272729')};\n color: ${cssManager.bdTheme('#0f172a', '#f5f5f5')};\n margin: auto;\n margin-bottom: 20px;\n filter: opacity(0.55) saturate(0.85);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n user-select: none;\n }\n\n .step.selected {\n pointer-events: all;\n filter: opacity(1) saturate(1);\n user-select: auto;\n }\n\n .step.hiddenStep {\n filter: opacity(0);\n }\n\n .step.entrance {\n transition: transform 0.35s ease, box-shadow 0.35s ease, filter 0.35s ease, border 0.35s ease;\n }\n\n .step.entrance.hiddenStep {\n transform: translateY(16px);\n }\n\n .step:last-child {\n margin-bottom: 100vh;\n }\n\n .step .stepCounter {\n color: ${cssManager.bdTheme('#64748b', '#a1a1aa')};\n position: absolute;\n top: 12px;\n right: 12px;\n padding: 6px 14px;\n font-size: 12px;\n border-radius: 999px;\n background: ${cssManager.bdTheme('rgba(226, 232, 240, 0.5)', 'rgba(63, 63, 70, 0.45)')};\n border: 1px solid ${cssManager.bdTheme('rgba(226, 232, 240, 0.7)', 'rgba(63, 63, 70, 0.6)')};\n }\n\n .step .goBack {\n position: absolute;\n top: 12px;\n left: 12px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n border-radius: 999px;\n border: 1px solid ${cssManager.bdTheme('rgba(226, 232, 240, 0.9)', 'rgba(63, 63, 70, 0.85)')};\n background: ${cssManager.bdTheme('rgba(255, 255, 255, 0.9)', 'rgba(39, 39, 42, 0.85)')};\n color: ${cssManager.bdTheme('#475569', '#d4d4d8')};\n cursor: pointer;\n transition: border 0.2s ease, color 0.2s ease, background 0.2s ease, transform 0.2s ease;\n }\n\n .step .goBack:hover {\n color: ${cssManager.bdTheme('#0f172a', '#fafafa')};\n border-color: ${cssManager.bdTheme(colors.dark.blue, colors.dark.blue)};\n background: ${cssManager.bdTheme('rgba(226, 232, 240, 0.95)', 'rgba(63, 63, 70, 0.7)')};\n transform: translateX(-2px);\n }\n\n .step .goBack:active {\n color: ${cssManager.bdTheme('#0f172a', '#fafafa')};\n border-color: ${cssManager.bdTheme(colors.dark.blueActive, colors.dark.blueActive)};\n background: ${cssManager.bdTheme('rgba(226, 232, 240, 0.85)', 'rgba(63, 63, 70, 0.6)')};\n }\n\n .step .goBack span {\n transition: transform 0.2s ease;\n display: inline-block;\n }\n\n .step .goBack:hover span {\n transform: translateX(-2px);\n }\n\n .step .title {\n text-align: center;\n padding-top: 64px;\n font-family: 'Geist Sans', sans-serif;\n font-size: 24px;\n font-weight: 600;\n letter-spacing: -0.01em;\n color: inherit;\n }\n\n .step .content {\n padding: 32px;\n }\n `,\n ];\n\n public render() {\n return html`\n
      \n ${this.steps.map(\n (stepArg) =>\n html` this.getIndexOfStep(this.selectedStep)\n ? 'hiddenStep'\n : ''} ${this.getIndexOfStep(stepArg) === 0 ? 'entrance' : ''}\"\n >\n ${this.getIndexOfStep(stepArg) > 0\n ? html`
      <- go to previous step
      `\n : ``}\n
      \n Step ${this.steps.findIndex((elementArg) => elementArg === stepArg) + 1} of\n ${this.steps.length}\n
      \n
      ${stepArg.title}
      \n
      ${stepArg.content}
      \n
      `\n )}\n \n `;\n }\n\n public getIndexOfStep = (stepArg: IStep): number => {\n return this.steps.findIndex((stepArg2) => stepArg === stepArg2);\n };\n\n public async firstUpdated() {\n await this.domtoolsPromise;\n await this.domtools.convenience.smartdelay.delayFor(0);\n this.selectedStep = this.steps[0];\n this.setScrollStatus();\n // Remove entrance class after initial animation completes\n await this.domtools.convenience.smartdelay.delayFor(350);\n this.shadowRoot.querySelector('.step.entrance')?.classList.remove('entrance');\n }\n\n public async updated() {\n this.setScrollStatus();\n }\n\n public scroller: typeof domtools.plugins.SweetScroll.prototype;\n\n public async setScrollStatus() {\n const stepperContainer: HTMLElement = this.shadowRoot.querySelector('.stepperContainer');\n const firstStepElement: HTMLElement = this.shadowRoot.querySelector('.step');\n const selectedStepElement: HTMLElement = this.shadowRoot.querySelector('.selected');\n if (!selectedStepElement) {\n return;\n }\n if (!stepperContainer.style.paddingTop) {\n stepperContainer.style.paddingTop = `${\n stepperContainer.offsetHeight / 2 - selectedStepElement.offsetHeight / 2\n }px`;\n }\n console.log('Setting scroll status');\n console.log(selectedStepElement);\n const scrollPosition =\n selectedStepElement.offsetTop -\n stepperContainer.offsetHeight / 2 +\n selectedStepElement.offsetHeight / 2;\n console.log(scrollPosition);\n const domtoolsInstance = await domtools.DomTools.setupDomTools();\n if (!this.scroller) {\n this.scroller = new domtools.plugins.SweetScroll(\n {\n vertical: true,\n horizontal: false,\n easing: 'easeInOutExpo',\n duration: 700,\n },\n stepperContainer\n );\n }\n if (!this.selectedStep.validationFuncCalled && this.selectedStep.validationFunc) {\n this.selectedStep.abortController = new AbortController();\n this.selectedStep.validationFuncCalled = true;\n await this.selectedStep.validationFunc(this, selectedStepElement, this.selectedStep.abortController.signal);\n }\n this.scroller.to(scrollPosition);\n }\n\n public async goBack() {\n const currentIndex = this.steps.findIndex((stepArg) => stepArg === this.selectedStep);\n if (currentIndex <= 0) {\n return;\n }\n // Abort any active listeners on current step\n if (this.selectedStep.abortController) {\n this.selectedStep.abortController.abort();\n }\n const currentStep = this.steps[currentIndex];\n currentStep.validationFuncCalled = false;\n const previousStep = this.steps[currentIndex - 1];\n previousStep.validationFuncCalled = false;\n this.selectedStep = previousStep;\n await this.domtoolsPromise;\n await this.domtools.convenience.smartdelay.delayFor(100);\n this.selectedStep.onReturnToStepFunc?.(this, this.shadowRoot.querySelector('.selected'));\n }\n\n public goNext() {\n const currentIndex = this.steps.findIndex((stepArg) => stepArg === this.selectedStep);\n if (currentIndex < 0 || currentIndex >= this.steps.length - 1) {\n return;\n }\n // Abort any active listeners on current step\n if (this.selectedStep.abortController) {\n this.selectedStep.abortController.abort();\n }\n const currentStep = this.steps[currentIndex];\n currentStep.validationFuncCalled = false;\n const nextStep = this.steps[currentIndex + 1];\n nextStep.validationFuncCalled = false;\n this.selectedStep = nextStep;\n }\n}\n", "export * from './dees-stepper.js';\n", "// Layout Components\nexport * from './dees-chips/index.js';\nexport * from './dees-dashboardgrid/index.js';\nexport * from './dees-heading/index.js';\nexport * from './dees-label/index.js';\nexport * from './dees-pagination/index.js';\nexport * from './dees-panel/index.js';\nexport * from './dees-stepper/index.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n
      JPEG Image with Toolbar
      \n
      A landscape photo with zoom, pan, fit, and download controls.
      \n \n
      \n\n
      \n
      PNG with Transparency
      \n
      Transparent PNG displayed on a checkerboard background.
      \n \n
      \n\n
      \n
      SVG Image
      \n
      Scalable vector graphic.
      \n \n
      \n\n
      \n
      No Toolbar Variant
      \n
      Image viewer with the toolbar hidden.
      \n \n
      \n
      \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-image-viewer': DeesImageViewer;\n }\n}\n\n@customElement('dees-image-viewer')\nexport class DeesImageViewer extends DeesElement {\n public static demo = demo;\n public static demoGroups = ['Media'];\n\n @property()\n accessor src: string = '';\n\n @property()\n accessor alt: string = '';\n\n @property()\n accessor fit: 'contain' | 'cover' | 'actual' = 'contain';\n\n @property({ type: Boolean })\n accessor showToolbar: boolean = true;\n\n @state()\n accessor zoom: number = 1;\n\n @state()\n accessor panX: number = 0;\n\n @state()\n accessor panY: number = 0;\n\n @state()\n accessor isDragging: boolean = false;\n\n @state()\n accessor loading: boolean = true;\n\n @state()\n accessor error: string = '';\n\n @state()\n accessor imageNaturalWidth: number = 0;\n\n @state()\n accessor imageNaturalHeight: number = 0;\n\n private dragStartX = 0;\n private dragStartY = 0;\n private dragStartPanX = 0;\n private dragStartPanY = 0;\n\n public render(): TemplateResult {\n return html`\n \n\n
      \n ${this.showToolbar ? html`\n
      \n
      \n \n \n \n
      \n
      \n \n \n
      \n
      \n \n
      \n ${this.imageNaturalWidth > 0 ? html`\n
      \n ${this.imageNaturalWidth} x ${this.imageNaturalHeight}\n
      \n ` : ''}\n
      \n ` : ''}\n\n \n
      \n
      \n ${this.src ? html`\n \n ` : ''}\n
      \n ${this.loading && this.src ? html`\n
      \n
      \n
      \n ` : ''}\n ${this.error ? html`\n
      \n \n ${this.error}\n
      \n ` : ''}\n
      \n \n `;\n }\n\n public zoomIn(): void {\n this.zoom = Math.min(10, this.zoom * 1.25);\n }\n\n public zoomOut(): void {\n this.zoom = Math.max(0.1, this.zoom / 1.25);\n if (this.zoom <= 1) {\n this.panX = 0;\n this.panY = 0;\n }\n }\n\n public resetZoom(): void {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n }\n\n public fitToScreen(): void {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n this.fit = 'contain';\n }\n\n public actualSize(): void {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n this.fit = 'actual';\n }\n\n public download(): void {\n if (!this.src) return;\n const link = document.createElement('a');\n link.href = this.src;\n link.download = this.src.split('/').pop() || 'image';\n link.click();\n }\n\n private handleImageLoad(e: Event): void {\n const img = e.target as HTMLImageElement;\n this.loading = false;\n this.error = '';\n this.imageNaturalWidth = img.naturalWidth;\n this.imageNaturalHeight = img.naturalHeight;\n }\n\n private handleImageError(): void {\n this.loading = false;\n this.error = 'Failed to load image';\n }\n\n private handleWheel(e: WheelEvent): void {\n e.preventDefault();\n const delta = e.deltaY > 0 ? 0.9 : 1.1;\n const newZoom = Math.min(10, Math.max(0.1, this.zoom * delta));\n this.zoom = newZoom;\n if (this.zoom <= 1) {\n this.panX = 0;\n this.panY = 0;\n }\n }\n\n private handleMouseDown(e: MouseEvent): void {\n if (this.zoom <= 1) return;\n this.isDragging = true;\n this.dragStartX = e.clientX;\n this.dragStartY = e.clientY;\n this.dragStartPanX = this.panX;\n this.dragStartPanY = this.panY;\n }\n\n private handleMouseMove(e: MouseEvent): void {\n if (!this.isDragging) return;\n this.panX = this.dragStartPanX + (e.clientX - this.dragStartX);\n this.panY = this.dragStartPanY + (e.clientY - this.dragStartY);\n }\n\n private handleMouseUp(): void {\n this.isDragging = false;\n }\n\n private handleDoubleClick(): void {\n if (this.zoom === 1) {\n this.zoom = 2;\n } else {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n }\n }\n\n public updated(changedProperties: Map): void {\n super.updated(changedProperties);\n if (changedProperties.has('src')) {\n this.loading = true;\n this.error = '';\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n this.imageNaturalWidth = 0;\n this.imageNaturalHeight = 0;\n }\n }\n}\n", "export * from './component.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n
      Audio with Waveform
      \n
      Audio player with waveform visualization and full transport controls.
      \n \n
      \n\n
      \n
      Audio without Waveform
      \n
      Simple audio player with a seekbar instead of a waveform.
      \n \n
      \n\n
      \n
      Minimal Audio Player
      \n
      No title or artist metadata \u2014 just the player.
      \n \n
      \n
      \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-audio-viewer': DeesAudioViewer;\n }\n}\n\n@customElement('dees-audio-viewer')\nexport class DeesAudioViewer extends DeesElement {\n public static demo = demo;\n public static demoGroups = ['Media'];\n\n @property()\n accessor src: string = '';\n\n @property()\n accessor title: string = '';\n\n @property()\n accessor artist: string = '';\n\n @property({ type: Boolean })\n accessor showWaveform: boolean = true;\n\n @property({ type: Boolean })\n accessor autoplay: boolean = false;\n\n @property({ type: Boolean })\n accessor loop: boolean = false;\n\n @state()\n accessor isPlaying: boolean = false;\n\n @state()\n accessor currentTime: number = 0;\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor volume: number = 1;\n\n @state()\n accessor isMuted: boolean = false;\n\n @state()\n accessor loading: boolean = false;\n\n @state()\n accessor error: string = '';\n\n @state()\n accessor waveformData: number[] = [];\n\n @state()\n accessor waveformReady: boolean = false;\n\n private audioElement: HTMLAudioElement | null = null;\n private canvasElement: HTMLCanvasElement | null = null;\n private animFrameId: number = 0;\n private volumeBeforeMute: number = 1;\n\n public render(): TemplateResult {\n const titleText = this.title && this.artist\n ? `${this.title} \u2014 ${this.artist}`\n : this.title || this.artist || '';\n\n return html`\n \n\n
      \n
      \n
      \n \n \n ${this.formatTime(this.currentTime)} / ${this.formatTime(this.duration)}\n \n
      \n\n ${titleText ? html`\n ${titleText}\n ` : ''}\n\n
      \n \n \n \n\n
      \n \n \n
      \n
      \n
      \n\n
      \n ${this.error ? html`\n
      \n \n ${this.error}\n
      \n ` : this.loading ? html`\n
      \n
      \n
      \n ` : this.showWaveform ? html`\n
      \n \n
      \n ` : html`\n
      \n
      \n
      \n `}\n
      \n
      \n `;\n }\n\n public async connectedCallback(): Promise {\n await super.connectedCallback();\n if (this.src) {\n this.initAudio();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.cleanup();\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src) {\n this.cleanup();\n this.initAudio();\n }\n if (changedProperties.has('waveformData') || changedProperties.has('currentTime')) {\n this.drawWaveform();\n }\n }\n\n public play(): void {\n this.audioElement?.play();\n }\n\n public pause(): void {\n this.audioElement?.pause();\n }\n\n public togglePlay(): void {\n if (this.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n public seek(time: number): void {\n if (this.audioElement) {\n this.audioElement.currentTime = time;\n }\n }\n\n public setVolume(v: number): void {\n this.volume = Math.max(0, Math.min(1, v));\n if (this.audioElement) {\n this.audioElement.volume = this.volume;\n }\n if (this.volume > 0) {\n this.isMuted = false;\n }\n }\n\n public toggleMute(): void {\n if (this.isMuted) {\n this.isMuted = false;\n this.volume = this.volumeBeforeMute || 0.5;\n if (this.audioElement) {\n this.audioElement.volume = this.volume;\n }\n } else {\n this.volumeBeforeMute = this.volume;\n this.isMuted = true;\n if (this.audioElement) {\n this.audioElement.volume = 0;\n }\n }\n }\n\n private toggleLoop(): void {\n this.loop = !this.loop;\n if (this.audioElement) {\n this.audioElement.loop = this.loop;\n }\n }\n\n private initAudio(): void {\n this.audioElement = new Audio();\n this.audioElement.crossOrigin = 'anonymous';\n this.audioElement.src = this.src;\n this.audioElement.volume = this.isMuted ? 0 : this.volume;\n this.audioElement.loop = this.loop;\n\n this.audioElement.addEventListener('loadedmetadata', () => {\n this.duration = this.audioElement!.duration;\n this.loading = false;\n });\n\n this.audioElement.addEventListener('play', () => {\n this.isPlaying = true;\n this.startTimeUpdate();\n });\n\n this.audioElement.addEventListener('pause', () => {\n this.isPlaying = false;\n this.stopTimeUpdate();\n });\n\n this.audioElement.addEventListener('ended', () => {\n this.isPlaying = false;\n this.stopTimeUpdate();\n });\n\n this.audioElement.addEventListener('error', () => {\n this.error = 'Failed to load audio';\n this.loading = false;\n });\n\n this.audioElement.addEventListener('timeupdate', () => {\n this.currentTime = this.audioElement!.currentTime;\n });\n\n if (this.autoplay) {\n this.audioElement.play().catch(() => {\n // Autoplay blocked by browser\n });\n }\n\n if (this.showWaveform) {\n this.loadWaveform();\n }\n }\n\n private async loadWaveform(): Promise {\n try {\n this.loading = true;\n const response = await fetch(this.src);\n const arrayBuffer = await response.arrayBuffer();\n const audioContext = new AudioContext();\n const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);\n\n const channelData = audioBuffer.getChannelData(0);\n const bars = 200;\n const blockSize = Math.floor(channelData.length / bars);\n const waveform: number[] = [];\n\n for (let i = 0; i < bars; i++) {\n let sum = 0;\n for (let j = 0; j < blockSize; j++) {\n sum += Math.abs(channelData[i * blockSize + j]);\n }\n waveform.push(sum / blockSize);\n }\n\n // Normalize\n const max = Math.max(...waveform);\n this.waveformData = waveform.map((v) => (max > 0 ? v / max : 0));\n this.waveformReady = true;\n this.loading = false;\n\n await audioContext.close();\n } catch {\n this.waveformReady = false;\n this.loading = false;\n }\n }\n\n private drawWaveform(): void {\n if (!this.showWaveform || !this.waveformReady) return;\n\n const canvas = this.shadowRoot?.querySelector('canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n this.canvasElement = canvas;\n const container = canvas.parentElement!;\n const dpr = window.devicePixelRatio || 1;\n const width = container.clientWidth;\n const height = container.clientHeight;\n\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, width, height);\n\n const bars = this.waveformData.length;\n if (bars === 0) return;\n\n const barWidth = width / bars;\n const playedRatio = this.duration > 0 ? this.currentTime / this.duration : 0;\n const playedBars = Math.floor(playedRatio * bars);\n\n const isDark = document.body.classList.contains('theme-dark') ||\n window.matchMedia('(prefers-color-scheme: dark)').matches;\n const playedColor = isDark ? 'hsl(213 93% 68%)' : 'hsl(217 91% 60%)';\n const unplayedColor = isDark ? 'hsl(217 25% 22%)' : 'hsl(214 31% 86%)';\n\n for (let i = 0; i < bars; i++) {\n const amplitude = this.waveformData[i];\n const barHeight = Math.max(2, amplitude * (height - 4));\n const x = i * barWidth;\n const y = (height - barHeight) / 2;\n\n ctx.fillStyle = i < playedBars ? playedColor : unplayedColor;\n ctx.fillRect(x + 0.5, y, barWidth - 1, barHeight);\n }\n }\n\n private handleWaveformClick(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const ratio = (e.clientX - rect.left) / rect.width;\n this.seek(ratio * this.duration);\n }\n\n private handleSeekbarClick(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const ratio = (e.clientX - rect.left) / rect.width;\n this.seek(ratio * this.duration);\n }\n\n private handleVolumeChange(e: Event): void {\n const value = parseFloat((e.target as HTMLInputElement).value);\n this.setVolume(value);\n }\n\n private startTimeUpdate(): void {\n this.stopTimeUpdate();\n const update = () => {\n if (this.audioElement && this.isPlaying) {\n this.currentTime = this.audioElement.currentTime;\n this.animFrameId = requestAnimationFrame(update);\n }\n };\n this.animFrameId = requestAnimationFrame(update);\n }\n\n private stopTimeUpdate(): void {\n if (this.animFrameId) {\n cancelAnimationFrame(this.animFrameId);\n this.animFrameId = 0;\n }\n }\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n\n private cleanup(): void {\n this.stopTimeUpdate();\n if (this.audioElement) {\n this.audioElement.pause();\n this.audioElement.src = '';\n this.audioElement = null;\n }\n this.isPlaying = false;\n this.currentTime = 0;\n this.duration = 0;\n this.waveformData = [];\n this.waveformReady = false;\n }\n}\n", "export * from './component.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n
      Video with Custom Controls
      \n
      A video player with overlay controls, seeking, and volume adjustment.
      \n \n
      \n\n
      \n
      Autoplay Muted
      \n
      Video that autoplays muted, commonly used for previews.
      \n \n
      \n\n
      \n
      Native Controls
      \n
      Video using browser-native controls instead of custom overlay.
      \n \n
      \n
      \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-video-viewer': DeesVideoViewer;\n }\n}\n\n@customElement('dees-video-viewer')\nexport class DeesVideoViewer extends DeesElement {\n public static demo = demo;\n public static demoGroups = ['Media'];\n\n @property()\n accessor src: string = '';\n\n @property()\n accessor poster: string = '';\n\n @property({ type: Boolean })\n accessor showControls: boolean = true;\n\n @property({ type: Boolean })\n accessor autoplay: boolean = false;\n\n @property({ type: Boolean })\n accessor loop: boolean = false;\n\n @property({ type: Boolean })\n accessor muted: boolean = false;\n\n @state()\n accessor isPlaying: boolean = false;\n\n @state()\n accessor currentTime: number = 0;\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor volume: number = 1;\n\n @state()\n accessor loading: boolean = true;\n\n @state()\n accessor error: string = '';\n\n @state()\n accessor isFullscreen: boolean = false;\n\n @state()\n accessor controlsVisible: boolean = true;\n\n private hideControlsTimer: ReturnType | null = null;\n private videoElement: HTMLVideoElement | null = null;\n\n public render(): TemplateResult {\n return html`\n \n\n \n { this.loading = true; }}\n @canplay=${() => { this.loading = false; }}\n >\n\n ${this.showControls ? html`\n
      \n
      \n \n
      \n\n
      e.stopPropagation()}>\n
      \n
      \n
      \n\n
      \n \n\n \n ${this.formatTime(this.currentTime)} / ${this.formatTime(this.duration)}\n \n\n \n\n
      \n \n \n
      \n\n \n
      \n
      \n
      \n ` : ''}\n\n ${this.loading && !this.error ? html`\n
      \n
      \n
      \n ` : ''}\n\n ${this.error ? html`\n
      \n \n ${this.error}\n
      \n ` : ''}\n \n `;\n }\n\n public async firstUpdated(): Promise {\n this.videoElement = this.shadowRoot?.querySelector('video') || null;\n document.addEventListener('fullscreenchange', this.handleFullscreenChange);\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n document.removeEventListener('fullscreenchange', this.handleFullscreenChange);\n if (this.hideControlsTimer) {\n clearTimeout(this.hideControlsTimer);\n }\n }\n\n public play(): void {\n this.videoElement?.play();\n }\n\n public pause(): void {\n this.videoElement?.pause();\n }\n\n public togglePlay(): void {\n if (this.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n public seek(time: number): void {\n if (this.videoElement) {\n this.videoElement.currentTime = time;\n }\n }\n\n public setVolume(v: number): void {\n this.volume = Math.max(0, Math.min(1, v));\n if (this.videoElement) {\n this.videoElement.volume = this.volume;\n }\n }\n\n public toggleFullscreen(): void {\n const container = this.shadowRoot?.querySelector('.video-container') as HTMLElement;\n if (!container) return;\n\n if (this.isFullscreen) {\n document.exitFullscreen?.();\n } else {\n container.requestFullscreen?.();\n }\n }\n\n private handleLoadedMetadata(): void {\n if (this.videoElement) {\n this.duration = this.videoElement.duration;\n this.loading = false;\n }\n }\n\n private handlePlay(): void {\n this.isPlaying = true;\n this.scheduleHideControls();\n }\n\n private handlePause(): void {\n this.isPlaying = false;\n this.controlsVisible = true;\n }\n\n private handleEnded(): void {\n this.isPlaying = false;\n this.controlsVisible = true;\n }\n\n private handleTimeUpdate(): void {\n if (this.videoElement) {\n this.currentTime = this.videoElement.currentTime;\n }\n }\n\n private handleError(): void {\n this.error = 'Failed to load video';\n this.loading = false;\n }\n\n private handleOverlayClick(): void {\n this.togglePlay();\n }\n\n private handleSeek(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const ratio = (e.clientX - rect.left) / rect.width;\n this.seek(ratio * this.duration);\n }\n\n private handleVolumeChange(e: Event): void {\n const value = parseFloat((e.target as HTMLInputElement).value);\n this.setVolume(value);\n this.muted = value === 0;\n }\n\n private toggleMute(): void {\n this.muted = !this.muted;\n if (this.videoElement) {\n this.videoElement.muted = this.muted;\n }\n }\n\n private handleMouseMove(): void {\n this.controlsVisible = true;\n this.scheduleHideControls();\n }\n\n private handleMouseLeave(): void {\n if (this.isPlaying) {\n this.controlsVisible = false;\n }\n }\n\n private scheduleHideControls(): void {\n if (this.hideControlsTimer) {\n clearTimeout(this.hideControlsTimer);\n }\n if (this.isPlaying) {\n this.hideControlsTimer = setTimeout(() => {\n this.controlsVisible = false;\n }, 3000);\n }\n }\n\n private handleFullscreenChange = (): void => {\n this.isFullscreen = !!document.fullscreenElement;\n };\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n}\n", "export * from './component.js';\n", "import { domtools } from '@design.estate/dees-element';\n\nexport class PdfManager {\n private static pdfjsLib: any;\n private static initialized = false;\n\n public static async initialize() {\n if (this.initialized) return;\n\n // @ts-ignore\n this.pdfjsLib = await import('https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/+esm');\n this.pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/build/pdf.worker.mjs';\n\n this.initialized = true;\n }\n\n public static async loadDocument(url: string): Promise {\n await this.initialize();\n\n // IMPORTANT: Disabled caching to ensure component isolation\n // Each viewer instance gets its own document to prevent state sharing\n // This fixes issues where multiple viewers interfere with each other\n const loadingTask = this.pdfjsLib.getDocument(url);\n const document = await loadingTask.promise;\n\n return document;\n }\n\n public static releaseDocument(_url: string) {\n // No-op since we're not caching documents anymore\n // Each viewer manages its own document lifecycle\n }\n\n // Cache methods removed to ensure component isolation\n // Each viewer now manages its own document lifecycle\n}\n", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const viewerStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n width: 100%;\n height: 600px;\n position: relative;\n font-family: 'Geist Sans', sans-serif;\n contain: layout style;\n }\n\n .pdf-viewer {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(215 20% 10%)')};\n position: relative;\n overflow: hidden;\n }\n\n .toolbar {\n height: 48px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 15%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(214 31% 91%)', 'hsl(217 25% 22%)')};\n display: flex;\n align-items: center;\n padding: 0 16px;\n gap: 16px;\n flex-shrink: 0;\n }\n\n .toolbar-group {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .toolbar-group--end {\n margin-left: auto;\n }\n\n .toolbar-button {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: transparent;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .toolbar-button:hover:not(:disabled) {\n background: ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 25% 22%)')};\n }\n\n .toolbar-button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .toolbar-button dees-icon {\n font-size: 16px;\n }\n\n .page-info {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 0 8px;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .page-input {\n width: 48px;\n height: 28px;\n border-radius: 4px;\n border: 1px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 28%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 12%)')};\n color: ${cssManager.bdTheme('hsl(222 47% 11%)', 'hsl(210 20% 96%)')};\n text-align: center;\n font-size: 14px;\n font-family: inherit;\n outline: none;\n }\n\n .page-input:focus {\n border-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .page-separator {\n color: ${cssManager.bdTheme('hsl(215 16% 60%)', 'hsl(215 16% 50%)')};\n }\n\n .zoom-level {\n font-size: 13px;\n font-weight: 500;\n min-width: 48px;\n text-align: center;\n }\n\n .viewer-container {\n flex: 1;\n display: flex;\n overflow: hidden;\n position: relative;\n min-height: 0;\n }\n\n .sidebar {\n width: 200px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 15%)')};\n border-right: 1px solid ${cssManager.bdTheme('hsl(214 31% 91%)', 'hsl(217 25% 22%)')};\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .sidebar-header {\n height: 40px;\n padding: 0 12px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(214 31% 91%)', 'hsl(217 25% 22%)')};\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .sidebar-close {\n width: 24px;\n height: 24px;\n border-radius: 4px;\n background: transparent;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n transition: background 0.15s ease;\n }\n\n .sidebar-close:hover {\n background: ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 25% 22%)')};\n }\n\n .sidebar-close dees-icon {\n font-size: 14px;\n }\n\n .sidebar-content {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 12px;\n display: block;\n overscroll-behavior: contain;\n min-height: 0;\n }\n\n .thumbnail {\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n cursor: pointer;\n border: 2px solid transparent;\n transition: border-color 0.15s ease;\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(215 20% 18%)')};\n display: block;\n width: 100%;\n margin-bottom: 12px;\n /* Default A4 aspect ratio (297mm / 210mm \u2248 1.414) */\n min-height: calc(176px * 1.414);\n }\n\n .thumbnail:last-child {\n margin-bottom: 0;\n }\n\n .thumbnail:hover {\n border-color: ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 35%)')};\n }\n\n .thumbnail.active {\n border-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .thumbnail-canvas {\n display: block;\n width: 100%;\n height: auto;\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n }\n\n .thumbnail-number {\n position: absolute;\n bottom: 4px;\n right: 4px;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.7)', 'rgba(0, 0, 0, 0.8)')};\n color: white;\n font-size: 11px;\n font-weight: 500;\n padding: 2px 6px;\n border-radius: 4px;\n }\n\n .viewer-main {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 20px;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n min-height: 0;\n position: relative;\n }\n\n .loading-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n gap: 16px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .loading-spinner {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n border: 3px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 28%)')};\n border-top-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n animation: spin 0.8s linear infinite;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n .loading-text {\n font-size: 14px;\n font-weight: 500;\n }\n\n .pages-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n }\n\n .page-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n }\n\n .canvas-container {\n background: white;\n box-shadow: 0 2px 12px ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(0, 0, 0, 0.3)')};\n border-radius: 4px;\n overflow: hidden;\n display: inline-block;\n position: relative;\n }\n\n .page-canvas {\n display: block;\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n }\n\n /* Text layer for selection */\n .text-layer {\n position: absolute;\n inset: 0;\n overflow: visible;\n line-height: 1;\n text-size-adjust: none;\n forced-color-adjust: none;\n transform-origin: 0 0;\n z-index: 1;\n user-select: text;\n -webkit-user-select: text;\n }\n\n .text-layer span,\n .text-layer br {\n color: transparent;\n position: absolute;\n white-space: pre;\n cursor: text;\n transform-origin: 0% 0%;\n user-select: text;\n -webkit-user-select: text;\n }\n\n .text-layer ::selection {\n background: rgba(0, 100, 200, 0.3);\n }\n\n .text-layer br::selection {\n background: transparent;\n }\n\n .text-layer .endOfContent {\n display: block;\n position: absolute;\n inset: 100% 0 0;\n z-index: 0;\n cursor: default;\n user-select: none;\n }\n\n .text-layer.selecting .endOfContent {\n top: 0;\n }\n\n .pdf-viewer.with-sidebar .viewer-main {\n margin-left: 0;\n }\n `,\n];", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n

      Full Featured PDF Viewer with Toolbar

      \n \n
      \n\n
      \n

      PDF Viewer with Sidebar Navigation

      \n \n
      \n\n
      \n

      Compact Viewer without Controls

      \n \n
      \n
      \n`;", "import { DeesElement, property, html, customElement, type TemplateResult, directives } from '@design.estate/dees-element';\nimport { PdfManager } from '../dees-pdf-shared/PdfManager.js';\nimport { viewerStyles } from './styles.js';\nimport { demo as demoFunc } from './demo.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pdf-viewer': DeesPdfViewer;\n }\n}\n\ntype RenderState = 'idle' | 'loading' | 'rendering-main' | 'rendering-thumbs' | 'rendered' | 'error' | 'disposed';\n\n@customElement('dees-pdf-viewer')\nexport class DeesPdfViewer extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Media', 'PDF'];\n public static styles = viewerStyles;\n\n @property({ type: String })\n accessor pdfUrl: string = '';\n\n @property({ type: Number })\n accessor initialPage: number = 1;\n\n @property({ type: String })\n accessor initialZoom: 'auto' | 'page-fit' | 'page-width' | number = 'auto';\n\n @property({ type: Boolean })\n accessor showToolbar: boolean = true;\n\n @property({ type: Boolean })\n accessor showSidebar: boolean = false;\n\n @property({ type: Number })\n accessor currentPage: number = 1;\n\n @property({ type: Number })\n accessor totalPages: number = 1;\n\n @property({ type: Number })\n accessor currentZoom: number = 1;\n\n @property({ type: Boolean })\n accessor loading: boolean = false;\n\n @property({ type: String })\n accessor documentId: string = '';\n\n @property({ type: Array })\n accessor thumbnailData: Array<{page: number, rendered: boolean}> = [];\n\n @property({ type: Array })\n accessor pageData: Array<{page: number, rendered: boolean, rendering: boolean, textLayerRendered: boolean}> = [];\n\n private pdfDocument: any;\n private renderState: RenderState = 'idle';\n private renderAbortController: AbortController | null = null;\n private pageRendering: boolean = false;\n private pageNumPending: number | null = null;\n private currentRenderTask: any = null;\n private currentRenderPromise: Promise | null = null;\n private thumbnailRenderTasks: any[] = [];\n private pageRenderTasks: Map = new Map();\n private textLayerRenderTasks: Map = new Map();\n private canvas: HTMLCanvasElement | undefined;\n private ctx: CanvasRenderingContext2D | undefined;\n private viewerMain: HTMLElement | null = null;\n private resizeObserver?: ResizeObserver;\n private intersectionObserver?: IntersectionObserver;\n private scrollThrottleTimeout?: number;\n private viewportDimensions = { width: 0, height: 0 };\n private viewportMode: 'auto' | 'page-fit' | 'page-width' | 'custom' = 'auto';\n private readonly MANUAL_MIN_ZOOM = 0.5;\n private readonly MANUAL_MAX_ZOOM = 3;\n private readonly ABSOLUTE_MIN_ZOOM = 0.1;\n private readonly ABSOLUTE_MAX_ZOOM = 4;\n private readonly PAGE_GAP = 20;\n private readonly RENDER_BUFFER = 3;\n\n constructor() {\n super();\n }\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.showToolbar ? html`\n
      \n
      \n \n \n \n
      \n \n /\n ${this.totalPages}\n
      \n = this.totalPages}\n >\n \n \n
      \n\n
      \n \n \n \n \n ${Math.round(this.currentZoom * 100)}%\n \n \n \n \n
      \n\n
      \n \n \n \n \n \n \n
      \n\n
      \n this.showSidebar = !this.showSidebar}\n title=\"${this.showSidebar ? 'Hide thumbnails' : 'Show thumbnails'}\"\n >\n \n \n \n \n \n \n \n \n
      \n
      \n ` : ''}\n\n
      \n ${this.showSidebar ? html`\n
      \n
      \n Pages\n this.showSidebar = false}\n >\n \n \n
      \n
      \n ${directives.keyed(this.documentId, html`\n ${directives.repeat(\n this.thumbnailData,\n (item) => item.page,\n (item) => html`\n \n \n ${item.page}\n
      \n `\n )}\n `)}\n
      \n
      \n ` : ''}\n\n
      \n ${this.loading ? html`\n
      \n
      \n
      Loading PDF...
      \n
      \n ` : html`\n
      \n ${directives.repeat(\n this.pageData,\n (item) => item.page,\n (item) => html`\n
      \n
      \n \n
      \n
      \n
      \n `\n )}\n
      \n `}\n
      \n
      \n \n `;\n }\n\n public async connectedCallback() {\n await super.connectedCallback();\n await this.updateComplete;\n this.ensureViewerRefs();\n\n // Generate a unique document ID for this connection\n if (this.pdfUrl) {\n this.documentId = `${this.pdfUrl}-${Date.now()}-${Math.random()}`;\n await this.loadPdf();\n }\n }\n\n public async disconnectedCallback() {\n await super.disconnectedCallback();\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n this.intersectionObserver?.disconnect();\n this.intersectionObserver = undefined;\n\n // Clear scroll timeout\n if (this.scrollThrottleTimeout) {\n clearTimeout(this.scrollThrottleTimeout);\n this.scrollThrottleTimeout = undefined;\n }\n\n // Mark as disposed and clean up\n this.renderState = 'disposed';\n await this.cleanupDocument();\n\n // Clear all references\n this.canvas = undefined;\n this.ctx = undefined;\n }\n\n public async updated(changedProperties: Map) {\n super.updated(changedProperties);\n\n if (changedProperties.has('pdfUrl') && this.pdfUrl) {\n const previousUrl = changedProperties.get('pdfUrl') as string | undefined;\n if (previousUrl) {\n PdfManager.releaseDocument(previousUrl);\n }\n // Generate new document ID for new URL\n this.documentId = `${this.pdfUrl}-${Date.now()}-${Math.random()}`;\n await this.loadPdf();\n }\n\n // Re-render thumbnails when sidebar becomes visible and document is loaded\n if (changedProperties.has('showSidebar') && this.showSidebar && this.pdfDocument) {\n // Use requestAnimationFrame to ensure DOM is ready\n await new Promise(resolve => requestAnimationFrame(resolve));\n // Force re-render of thumbnails by resetting their rendered state\n this.thumbnailData.forEach(thumb => thumb.rendered = false);\n await this.renderThumbnails();\n // Re-setup intersection observer for lazy loading of pages\n this.setupIntersectionObserver();\n // Scroll to active thumbnail after rendering\n this.scrollThumbnailIntoView(this.currentPage);\n }\n }\n\n private async loadPdf() {\n this.loading = true;\n this.renderState = 'loading';\n\n try {\n await this.cleanupDocument();\n\n // Create new abort controller for this load operation\n this.renderAbortController = new AbortController();\n const signal = this.renderAbortController.signal;\n\n this.pdfDocument = await PdfManager.loadDocument(this.pdfUrl);\n if (signal.aborted) return;\n\n this.totalPages = this.pdfDocument.numPages;\n this.currentPage = this.initialPage;\n this.resolveInitialViewportMode();\n\n // Initialize thumbnail and page data arrays\n this.thumbnailData = Array.from({length: this.totalPages}, (_, i) => ({\n page: i + 1,\n rendered: false\n }));\n\n this.pageData = Array.from({length: this.totalPages}, (_, i) => ({\n page: i + 1,\n rendered: false,\n rendering: false,\n textLayerRendered: false,\n }));\n\n // Set loading to false to render the pages\n this.loading = false;\n await this.updateComplete;\n this.ensureViewerRefs();\n this.setupIntersectionObserver();\n\n // Wait for next frame to ensure DOM is ready\n await new Promise(resolve => requestAnimationFrame(resolve));\n if (signal.aborted) return;\n\n this.renderState = 'rendering-main';\n\n // Render initial visible pages\n await this.renderVisiblePages();\n if (signal.aborted) return;\n\n // Scroll to initial page\n if (this.initialPage > 1) {\n await this.scrollToPage(this.initialPage, false);\n }\n\n if (this.showSidebar) {\n // Ensure sidebar is in DOM after loading = false\n await this.updateComplete;\n // Wait for next frame to ensure DOM is fully ready\n await new Promise(resolve => requestAnimationFrame(resolve));\n if (signal.aborted) return;\n\n await this.renderThumbnails();\n if (signal.aborted) return;\n }\n\n this.renderState = 'rendered';\n } catch (error) {\n console.error('Error loading PDF:', error);\n this.loading = false;\n this.renderState = 'error';\n }\n }\n\n private setupIntersectionObserver() {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n }\n\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n const pageWrapper = entry.target as HTMLElement;\n const pageNum = parseInt(pageWrapper.dataset.page || '1');\n\n if (entry.isIntersecting) {\n this.renderPageIfNeeded(pageNum);\n }\n }\n },\n {\n root: this.viewerMain,\n rootMargin: `${this.RENDER_BUFFER * 100}px 0px`,\n threshold: 0.01\n }\n );\n\n // Observe all page wrappers\n const pageWrappers = this.shadowRoot?.querySelectorAll('.page-wrapper');\n if (pageWrappers) {\n pageWrappers.forEach(wrapper => {\n this.intersectionObserver?.observe(wrapper);\n });\n }\n }\n\n private async renderVisiblePages() {\n if (!this.viewerMain) return;\n\n // Find visible pages based on scroll position\n const clientHeight = this.viewerMain.clientHeight;\n\n for (const pageInfo of this.pageData) {\n const pageWrapper = this.shadowRoot?.querySelector(`.page-wrapper[data-page=\"${pageInfo.page}\"]`) as HTMLElement;\n if (!pageWrapper) continue;\n\n const rect = pageWrapper.getBoundingClientRect();\n const viewerRect = this.viewerMain.getBoundingClientRect();\n const relativeTop = rect.top - viewerRect.top;\n const relativeBottom = relativeTop + rect.height;\n\n // Check if page is visible or within buffer zone\n const buffer = this.RENDER_BUFFER * clientHeight;\n if (relativeBottom >= -buffer && relativeTop <= clientHeight + buffer) {\n await this.renderPageIfNeeded(pageInfo.page);\n }\n }\n }\n\n private async renderPageIfNeeded(pageNum: number) {\n const pageInfo = this.pageData.find(p => p.page === pageNum);\n if (!pageInfo || pageInfo.rendered || pageInfo.rendering) return;\n\n pageInfo.rendering = true;\n\n try {\n const canvas = this.shadowRoot?.querySelector(`.page-canvas[data-page=\"${pageNum}\"]`) as HTMLCanvasElement;\n if (!canvas) {\n pageInfo.rendering = false;\n return;\n }\n\n const page = await this.pdfDocument.getPage(pageNum);\n const viewport = this.computeViewport(page);\n\n // Set canvas dimensions with device pixel ratio for sharp rendering\n const dpr = window.devicePixelRatio || 1;\n canvas.width = Math.floor(viewport.width * dpr);\n canvas.height = Math.floor(viewport.height * dpr);\n canvas.style.width = `${viewport.width}px`;\n canvas.style.height = `${viewport.height}px`;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n page.cleanup?.();\n pageInfo.rendering = false;\n return;\n }\n\n // Scale context for high-DPI displays\n ctx.scale(dpr, dpr);\n\n const renderContext = {\n canvasContext: ctx,\n viewport: viewport,\n };\n\n const renderTask = page.render(renderContext);\n this.pageRenderTasks.set(pageNum, renderTask);\n\n await renderTask.promise;\n\n page.cleanup?.();\n pageInfo.rendered = true;\n pageInfo.rendering = false;\n this.pageRenderTasks.delete(pageNum);\n\n // Render text layer for selection\n await this.renderTextLayer(pageNum);\n\n // Update page data to reflect rendered state\n this.requestUpdate('pageData');\n } catch (error: any) {\n if (error?.name !== 'RenderingCancelledException') {\n console.error(`Error rendering page ${pageNum}:`, error);\n }\n pageInfo.rendering = false;\n this.pageRenderTasks.delete(pageNum);\n }\n }\n\n private async renderTextLayer(pageNum: number): Promise {\n const pageInfo = this.pageData.find(p => p.page === pageNum);\n if (!pageInfo || pageInfo.textLayerRendered) return;\n\n try {\n const textLayerDiv = this.shadowRoot?.querySelector(\n `.text-layer[data-page=\"${pageNum}\"]`\n ) as HTMLElement;\n if (!textLayerDiv) return;\n\n textLayerDiv.innerHTML = '';\n\n const page = await this.pdfDocument.getPage(pageNum);\n const textContent = await page.getTextContent();\n const viewport = this.computeViewport(page);\n\n // @ts-ignore - Dynamic import of pdfjs\n const pdfjs = await import('https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/+esm');\n\n textLayerDiv.style.width = `${viewport.width}px`;\n textLayerDiv.style.height = `${viewport.height}px`;\n\n // Set the scale factor CSS variable - required by PDF.js text layer\n textLayerDiv.style.setProperty('--scale-factor', String(viewport.scale));\n\n const textLayerRenderTask = pdfjs.renderTextLayer({\n textContentSource: textContent,\n container: textLayerDiv,\n viewport: viewport,\n });\n\n this.textLayerRenderTasks.set(pageNum, textLayerRenderTask);\n await textLayerRenderTask.promise;\n\n // Add endOfContent for selection boundary\n const endOfContent = document.createElement('div');\n endOfContent.className = 'endOfContent';\n textLayerDiv.appendChild(endOfContent);\n\n // Custom drag selection for Shadow DOM compatibility\n // caretRangeFromPoint doesn't pierce shadow DOM, so we find spans manually\n let isDragging = false;\n let anchorNode: Node | null = null;\n let anchorOffset = 0;\n\n const getTextPositionFromPoint = (x: number, y: number): { node: Node; offset: number } | null => {\n // Find span at coordinates by checking bounding rects\n const spans = Array.from(textLayerDiv.querySelectorAll('span'));\n for (const span of spans) {\n const rect = span.getBoundingClientRect();\n if (x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom) {\n const textNode = span.firstChild;\n if (textNode && textNode.nodeType === Node.TEXT_NODE) {\n // Calculate character offset based on x position\n const text = textNode.textContent || '';\n const charWidth = rect.width / text.length;\n const relativeX = x - rect.left;\n const offset = Math.min(Math.round(relativeX / charWidth), text.length);\n return { node: textNode, offset };\n }\n }\n }\n return null;\n };\n\n const handleMouseUp = () => {\n if (isDragging) {\n isDragging = false;\n anchorNode = null;\n textLayerDiv.classList.remove('selecting');\n }\n document.removeEventListener('mouseup', handleMouseUp);\n document.removeEventListener('mousemove', handleMouseMove);\n };\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging || !anchorNode) return;\n\n e.preventDefault();\n const pos = getTextPositionFromPoint(e.clientX, e.clientY);\n if (pos) {\n const selection = window.getSelection();\n if (selection) {\n try {\n selection.setBaseAndExtent(anchorNode, anchorOffset, pos.node, pos.offset);\n } catch (err) {\n // Ignore errors from invalid selections\n }\n }\n }\n };\n\n textLayerDiv.addEventListener('mousedown', (e: MouseEvent) => {\n if (e.button !== 0) return;\n\n const pos = getTextPositionFromPoint(e.clientX, e.clientY);\n if (pos) {\n // Prevent native selection behavior\n e.preventDefault();\n\n isDragging = true;\n anchorNode = pos.node;\n anchorOffset = pos.offset;\n textLayerDiv.classList.add('selecting');\n\n // Clear existing selection\n const selection = window.getSelection();\n selection?.removeAllRanges();\n\n // Add document-level listeners for drag\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n }\n });\n\n pageInfo.textLayerRendered = true;\n page.cleanup?.();\n this.textLayerRenderTasks.delete(pageNum);\n } catch (error: any) {\n if (error?.name !== 'RenderingCancelledException') {\n console.error(`Error rendering text layer for page ${pageNum}:`, error);\n }\n this.textLayerRenderTasks.delete(pageNum);\n }\n }\n\n private handleScroll = () => {\n // Throttle scroll events\n if (this.scrollThrottleTimeout) {\n clearTimeout(this.scrollThrottleTimeout);\n }\n\n this.scrollThrottleTimeout = window.setTimeout(() => {\n this.updateCurrentPage();\n this.renderVisiblePages();\n }, 50);\n }\n\n private updateCurrentPage() {\n if (!this.viewerMain) return;\n\n const scrollTop = this.viewerMain.scrollTop;\n const clientHeight = this.viewerMain.clientHeight;\n const centerY = scrollTop + clientHeight / 2;\n\n // Find which page is at the center of the viewport\n for (let i = 0; i < this.pageData.length; i++) {\n const pageWrapper = this.shadowRoot?.querySelector(`.page-wrapper[data-page=\"${i + 1}\"]`) as HTMLElement;\n if (!pageWrapper) continue;\n\n const rect = pageWrapper.getBoundingClientRect();\n const viewerRect = this.viewerMain.getBoundingClientRect();\n const relativeTop = rect.top - viewerRect.top + scrollTop;\n const relativeBottom = relativeTop + rect.height;\n\n if (centerY >= relativeTop && centerY <= relativeBottom) {\n if (this.currentPage !== i + 1) {\n this.currentPage = i + 1;\n // Scroll the thumbnail into view if sidebar is visible\n if (this.showSidebar) {\n this.scrollThumbnailIntoView(i + 1);\n }\n }\n break;\n }\n }\n }\n\n private scrollThumbnailIntoView(pageNum: number) {\n const thumbnail = this.shadowRoot?.querySelector(`.thumbnail[data-page=\"${pageNum}\"]`) as HTMLElement;\n const sidebarContent = this.shadowRoot?.querySelector('.sidebar-content') as HTMLElement;\n\n if (thumbnail && sidebarContent) {\n // Get the thumbnail's position relative to the sidebar\n const thumbnailRect = thumbnail.getBoundingClientRect();\n const sidebarRect = sidebarContent.getBoundingClientRect();\n\n // Check if thumbnail is outside the visible area\n const isAbove = thumbnailRect.top < sidebarRect.top;\n const isBelow = thumbnailRect.bottom > sidebarRect.bottom;\n\n if (isAbove || isBelow) {\n // Calculate the scroll position to center the thumbnail\n const thumbnailOffset = thumbnail.offsetTop;\n const thumbnailHeight = thumbnail.offsetHeight;\n const sidebarHeight = sidebarContent.clientHeight;\n const targetScrollTop = thumbnailOffset - (sidebarHeight / 2) + (thumbnailHeight / 2);\n\n // Scroll the sidebar to center the thumbnail\n sidebarContent.scrollTo({\n top: Math.max(0, targetScrollTop),\n behavior: 'smooth'\n });\n }\n }\n }\n\n private async scrollToPage(pageNum: number, smooth: boolean = true) {\n await this.updateComplete;\n const pageWrapper = this.shadowRoot?.querySelector(`.page-wrapper[data-page=\"${pageNum}\"]`) as HTMLElement;\n if (pageWrapper && this.viewerMain) {\n // Calculate the offset of the page wrapper relative to the viewer\n const pageRect = pageWrapper.getBoundingClientRect();\n const viewerRect = this.viewerMain.getBoundingClientRect();\n const currentScrollTop = this.viewerMain.scrollTop;\n\n // Calculate the target scroll position\n const targetScrollTop = currentScrollTop + (pageRect.top - viewerRect.top) - this.viewerMain.clientTop;\n\n // Scroll to the calculated position\n if (smooth) {\n this.viewerMain.scrollTo({\n top: targetScrollTop,\n behavior: 'smooth'\n });\n } else {\n this.viewerMain.scrollTop = targetScrollTop;\n }\n\n // Update current page\n this.currentPage = pageNum;\n\n // Scroll thumbnail into view if sidebar is visible\n if (this.showSidebar) {\n this.scrollThumbnailIntoView(pageNum);\n }\n\n // Ensure the page is rendered\n await this.renderPageIfNeeded(pageNum);\n }\n }\n\n private async renderThumbnails() {\n // Check if document is loaded\n if (!this.pdfDocument) {\n return;\n }\n\n // Check if already rendered\n if (this.thumbnailData.length > 0 && this.thumbnailData.every(t => t.rendered)) {\n return;\n }\n\n // Check abort signal\n if (this.renderAbortController?.signal.aborted) {\n return;\n }\n\n const signal = this.renderAbortController?.signal;\n this.renderState = 'rendering-thumbs';\n\n // Cancel any existing thumbnail render tasks\n for (const task of this.thumbnailRenderTasks) {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n }\n this.thumbnailRenderTasks = [];\n\n try {\n await this.updateComplete;\n const thumbnails = this.shadowRoot?.querySelectorAll('.thumbnail') as NodeListOf;\n const thumbnailCanvases = this.shadowRoot?.querySelectorAll('.thumbnail-canvas') as NodeListOf;\n const sidebarContent = this.shadowRoot?.querySelector('.sidebar-content') as HTMLElement;\n\n // Get the actual available width for thumbnails (sidebar width minus padding)\n const sidebarStyles = window.getComputedStyle(sidebarContent);\n const sidebarPadding = parseFloat(sidebarStyles.paddingLeft) + parseFloat(sidebarStyles.paddingRight);\n const maxThumbnailWidth = 200 - sidebarPadding - 4; // Account for border\n\n // Clear all canvases first to prevent conflicts\n for (const canvas of Array.from(thumbnailCanvases)) {\n const context = canvas.getContext('2d');\n if (context) {\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n }\n\n for (let i = 0; i < thumbnailCanvases.length; i++) {\n if (signal?.aborted) return;\n\n const canvas = thumbnailCanvases[i];\n const thumbnail = thumbnails[i];\n const pageNum = parseInt(canvas.dataset.page || '1');\n const page = await this.pdfDocument.getPage(pageNum);\n\n // Get the page's natural dimensions\n const initialViewport = page.getViewport({ scale: 1 });\n\n // Calculate scale to fit within the max thumbnail width\n const scale = maxThumbnailWidth / initialViewport.width;\n const viewport = page.getViewport({ scale });\n\n // Set canvas dimensions with device pixel ratio for sharp thumbnails\n const dpr = window.devicePixelRatio || 1;\n canvas.width = Math.floor(viewport.width * dpr);\n canvas.height = Math.floor(viewport.height * dpr);\n\n // Set the display size via style to ensure proper display\n canvas.style.width = `${viewport.width}px`;\n canvas.style.height = `${viewport.height}px`;\n\n // Set the actual thumbnail container height\n thumbnail.style.height = `${viewport.height}px`;\n thumbnail.style.minHeight = `${viewport.height}px`;\n\n const context = canvas.getContext('2d');\n if (!context) {\n page.cleanup?.();\n continue;\n }\n\n // Scale context for high-DPI displays\n context.scale(dpr, dpr);\n\n const renderContext = {\n canvasContext: context,\n viewport: viewport,\n };\n\n const renderTask = page.render(renderContext);\n this.thumbnailRenderTasks.push(renderTask);\n await renderTask.promise;\n page.cleanup?.();\n\n // Mark this thumbnail as rendered\n const thumbData = this.thumbnailData.find(t => t.page === pageNum);\n if (thumbData) {\n thumbData.rendered = true;\n }\n }\n\n // Trigger update to reflect rendered state\n this.requestUpdate('thumbnailData');\n } catch (error: any) {\n // Only log non-cancellation errors\n if (error?.name !== 'RenderingCancelledException') {\n console.error('Error rendering thumbnails:', error);\n }\n } finally {\n this.thumbnailRenderTasks = [];\n }\n }\n\n private previousPage() {\n if (this.currentPage > 1) {\n this.scrollToPage(this.currentPage - 1);\n }\n }\n\n private nextPage() {\n if (this.currentPage < this.totalPages) {\n this.scrollToPage(this.currentPage + 1);\n }\n }\n\n\n private handleThumbnailClick(e: Event) {\n const target = e.currentTarget as HTMLElement;\n const pageNum = parseInt(target.dataset.page || '1');\n this.scrollToPage(pageNum);\n }\n\n private handlePageInput(e: Event) {\n const input = e.target as HTMLInputElement;\n const pageNum = parseInt(input.value);\n this.scrollToPage(pageNum);\n }\n\n private zoomIn() {\n const nextZoom = Math.min(this.MANUAL_MAX_ZOOM, this.currentZoom * 1.2);\n this.viewportMode = 'custom';\n if (nextZoom !== this.currentZoom) {\n this.currentZoom = nextZoom;\n this.reRenderAllPages();\n }\n }\n\n private zoomOut() {\n const nextZoom = Math.max(this.MANUAL_MIN_ZOOM, this.currentZoom / 1.2);\n this.viewportMode = 'custom';\n if (nextZoom !== this.currentZoom) {\n this.currentZoom = nextZoom;\n this.reRenderAllPages();\n }\n }\n\n private resetZoom() {\n this.viewportMode = 'custom';\n this.currentZoom = 1;\n this.reRenderAllPages();\n }\n\n private fitToPage() {\n this.viewportMode = 'page-fit';\n this.reRenderAllPages();\n }\n\n private fitToWidth() {\n this.viewportMode = 'page-width';\n this.reRenderAllPages();\n }\n\n private reRenderAllPages() {\n // Clear all rendered pages to force re-render with new zoom\n this.pageData.forEach(page => {\n page.rendered = false;\n page.rendering = false;\n page.textLayerRendered = false;\n });\n\n // Cancel any ongoing render tasks\n this.pageRenderTasks.forEach(task => {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.pageRenderTasks.clear();\n\n // Cancel text layer render tasks\n this.textLayerRenderTasks.forEach(task => {\n try {\n task.cancel?.();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.textLayerRenderTasks.clear();\n\n // Request update to re-render pages\n this.requestUpdate();\n\n // Render visible pages after update\n this.updateComplete.then(() => {\n this.renderVisiblePages();\n });\n }\n\n private async downloadPdf() {\n if (!this.pdfDocument) return;\n\n try {\n // Get raw PDF data from the loaded document\n const data = await this.pdfDocument.getData();\n const blob = new Blob([data.buffer], { type: 'application/pdf' });\n const blobUrl = URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n link.href = blobUrl;\n link.download = this.pdfUrl ? this.pdfUrl.split('/').pop() || 'document.pdf' : 'document.pdf';\n link.click();\n\n // Clean up blob URL after short delay\n setTimeout(() => URL.revokeObjectURL(blobUrl), 1000);\n } catch (error) {\n console.error('Error downloading PDF:', error);\n }\n }\n\n private async printPdf() {\n if (!this.pdfDocument) return;\n\n try {\n // Get raw PDF data from the loaded document\n const data = await this.pdfDocument.getData();\n const blob = new Blob([data.buffer], { type: 'application/pdf' });\n const pdfUrl = URL.createObjectURL(blob);\n\n // Create an HTML wrapper page that embeds the PDF and handles print/close\n // This gives us control over the afterprint event (direct PDF URLs don't support it)\n const htmlContent = `\n \n \n \n Print PDF\n \n \n \n \n \n \n \n `;\n const htmlBlob = new Blob([htmlContent], { type: 'text/html' });\n const htmlUrl = URL.createObjectURL(htmlBlob);\n\n const printWindow = window.open(htmlUrl, '_blank', 'width=800,height=600');\n if (printWindow) {\n // Cleanup blob URLs when window closes\n const checkClosed = setInterval(() => {\n if (printWindow.closed) {\n clearInterval(checkClosed);\n URL.revokeObjectURL(pdfUrl);\n URL.revokeObjectURL(htmlUrl);\n }\n }, 500);\n // Safety cleanup after 2 minutes\n setTimeout(() => {\n clearInterval(checkClosed);\n URL.revokeObjectURL(pdfUrl);\n URL.revokeObjectURL(htmlUrl);\n }, 120000);\n } else {\n // Popup blocked - fall back to direct navigation\n window.open(pdfUrl, '_blank');\n setTimeout(() => URL.revokeObjectURL(pdfUrl), 60000);\n URL.revokeObjectURL(htmlUrl);\n }\n } catch (error) {\n console.error('Error printing PDF:', error);\n }\n }\n\n /**\n * Provide context menu items for right-click functionality\n */\n public getContextMenuItems() {\n const items: any[] = [];\n\n // Add copy option if text is selected\n const selection = window.getSelection();\n const selectedText = selection?.toString() || '';\n if (selectedText) {\n items.push({\n name: 'Copy',\n iconName: 'lucide:Copy',\n action: async () => {\n await navigator.clipboard.writeText(selectedText);\n }\n });\n items.push({ divider: true });\n }\n\n items.push(\n {\n name: 'Download PDF',\n iconName: 'lucide:Download',\n action: async () => {\n await this.downloadPdf();\n }\n },\n {\n name: 'Print PDF',\n iconName: 'lucide:Printer',\n action: async () => {\n await this.printPdf();\n }\n }\n );\n\n return items;\n }\n\n private get canZoomIn(): boolean {\n return this.viewportMode !== 'custom' || this.currentZoom < this.MANUAL_MAX_ZOOM;\n }\n\n private get canZoomOut(): boolean {\n return this.viewportMode !== 'custom' || this.currentZoom > this.MANUAL_MIN_ZOOM;\n }\n\n private ensureViewerRefs() {\n if (!this.viewerMain) {\n this.viewerMain = this.shadowRoot?.querySelector('.viewer-main') as HTMLElement;\n }\n if (this.viewerMain && !this.resizeObserver) {\n this.resizeObserver = new ResizeObserver(() => {\n this.measureViewportDimensions();\n if (this.pdfDocument) {\n // Re-render all pages when viewport size changes\n this.reRenderAllPages();\n }\n });\n this.resizeObserver.observe(this.viewerMain);\n this.measureViewportDimensions();\n\n // Prevent scroll propagation to parent when scrolling inside viewer\n this.viewerMain.addEventListener('wheel', (e) => {\n const element = e.currentTarget as HTMLElement;\n const scrollTop = element.scrollTop;\n const scrollHeight = element.scrollHeight;\n const clientHeight = element.clientHeight;\n const deltaY = e.deltaY;\n\n // Check if we're at the boundaries\n const isAtTop = scrollTop === 0;\n const isAtBottom = Math.abs(scrollTop + clientHeight - scrollHeight) < 1;\n\n // Prevent propagation if we're scrolling within bounds\n if ((deltaY < 0 && !isAtTop) || (deltaY > 0 && !isAtBottom)) {\n e.stopPropagation();\n } else if ((deltaY < 0 && isAtTop) || (deltaY > 0 && isAtBottom)) {\n // Prevent default and propagation when at boundaries\n e.preventDefault();\n e.stopPropagation();\n }\n }, { passive: false });\n }\n }\n\n private measureViewportDimensions() {\n if (!this.viewerMain) {\n this.viewportDimensions = { width: 0, height: 0 };\n return;\n }\n\n const styles = getComputedStyle(this.viewerMain);\n const paddingX = parseFloat(styles.paddingLeft || '0') + parseFloat(styles.paddingRight || '0');\n const paddingY = parseFloat(styles.paddingTop || '0') + parseFloat(styles.paddingBottom || '0');\n const width = Math.max(this.viewerMain.clientWidth - paddingX, 0);\n const height = Math.max(this.viewerMain.clientHeight - paddingY, 0);\n this.viewportDimensions = { width, height };\n }\n\n private resolveInitialViewportMode() {\n if (typeof this.initialZoom === 'number') {\n this.viewportMode = 'custom';\n this.currentZoom = this.normalizeZoom(this.initialZoom, true);\n } else if (this.initialZoom === 'page-width') {\n this.viewportMode = 'page-width';\n } else if (this.initialZoom === 'page-fit' || this.initialZoom === 'auto') {\n this.viewportMode = 'page-fit';\n } else {\n this.viewportMode = 'auto';\n }\n\n if (this.viewportMode !== 'custom') {\n this.currentZoom = 1;\n }\n }\n\n private computeViewport(page: any) {\n this.measureViewportDimensions();\n const baseViewport = page.getViewport({ scale: 1 });\n let scale: number;\n\n switch (this.viewportMode) {\n case 'page-width': {\n const availableWidth = this.viewportDimensions.width || baseViewport.width;\n scale = availableWidth / baseViewport.width;\n break;\n }\n case 'page-fit':\n case 'auto': {\n const availableWidth = this.viewportDimensions.width || baseViewport.width;\n const availableHeight = this.viewportDimensions.height || baseViewport.height;\n const widthScale = availableWidth / baseViewport.width;\n const heightScale = availableHeight / baseViewport.height;\n scale = Math.min(widthScale, heightScale);\n break;\n }\n case 'custom':\n default: {\n scale = this.normalizeZoom(this.currentZoom || 1, false);\n break;\n }\n }\n\n if (!Number.isFinite(scale) || scale <= 0) {\n scale = 1;\n }\n\n const clampedScale = this.viewportMode === 'custom'\n ? this.normalizeZoom(scale, true)\n : this.normalizeZoom(scale, false);\n\n if (this.viewportMode !== 'custom') {\n this.currentZoom = clampedScale;\n }\n\n return page.getViewport({ scale: clampedScale });\n }\n\n private normalizeZoom(value: number, clampToManualRange: boolean) {\n const min = clampToManualRange ? this.MANUAL_MIN_ZOOM : this.ABSOLUTE_MIN_ZOOM;\n const max = clampToManualRange ? this.MANUAL_MAX_ZOOM : this.ABSOLUTE_MAX_ZOOM;\n return Math.min(Math.max(value, min), max);\n }\n\n private async cleanupDocument() {\n // Abort any ongoing render operations\n if (this.renderAbortController) {\n this.renderAbortController.abort();\n this.renderAbortController = null;\n }\n\n // Wait for any existing render to complete\n if (this.currentRenderPromise) {\n try {\n await this.currentRenderPromise;\n } catch (error) {\n // Ignore errors\n }\n this.currentRenderPromise = null;\n }\n\n // Clear the render task reference\n this.currentRenderTask = null;\n\n // Cancel any page render tasks\n this.pageRenderTasks.forEach(task => {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.pageRenderTasks.clear();\n\n // Cancel text layer render tasks\n this.textLayerRenderTasks.forEach(task => {\n try {\n task.cancel?.();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.textLayerRenderTasks.clear();\n\n // Cancel any thumbnail render tasks\n for (const task of (this.thumbnailRenderTasks || [])) {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n }\n this.thumbnailRenderTasks = [];\n\n // Reset all state flags\n this.renderState = 'idle';\n this.pageRendering = false;\n this.pageNumPending = null;\n this.thumbnailData = [];\n this.pageData = [];\n this.documentId = '';\n\n // Clear canvas content\n if (this.canvas && this.ctx) {\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n }\n\n // Destroy the document to free memory\n if (this.pdfDocument) {\n try {\n this.pdfDocument.destroy();\n } catch (error) {\n console.error('Error destroying PDF document:', error);\n }\n }\n\n // Finally null the document reference\n this.pdfDocument = null;\n\n // Request update to reflect state changes\n this.requestUpdate();\n }\n}\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n\n
      \n
      \n
      Image Preview (URL)
      \n
      Auto-detects image from URL extension and renders with the image viewer.
      \n \n
      \n\n
      \n
      PDF Preview (URL)
      \n
      Auto-detects PDF and displays with the PDF viewer including toolbar.
      \n \n
      \n\n
      \n
      Code Preview (Text Content)
      \n
      TypeScript code displayed with syntax highlighting via the codebox.
      \n Hello World\\`;\n }\n}`}\n >\n
      \n\n
      \n
      Audio Preview (URL)
      \n
      Audio file detected by extension, shown with waveform player.
      \n \n
      \n\n
      \n
      Video Preview (URL)
      \n
      Video file detected from URL, rendered with custom video controls.
      \n \n
      \n\n
      \n
      Explicit Type Override
      \n
      Force content type to 'text' even though the URL has no extension.
      \n \n
      \n\n
      \n
      Unknown Type
      \n
      When content type cannot be detected, shows a placeholder.
      \n \n
      \n
      \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../dees-image-viewer/component.js';\nimport '../dees-audio-viewer/component.js';\nimport '../dees-video-viewer/component.js';\nimport '../../00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js';\nimport '../dees-pdf-viewer/component.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demoFunc } from './dees-preview.demo.js';\n\nexport type TPreviewContentType = 'image' | 'pdf' | 'audio' | 'video' | 'code' | 'text' | 'unknown';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-preview': DeesPreview;\n }\n}\n\nconst EXTENSION_MAP: Record = {\n // Image\n jpg: 'image', jpeg: 'image', png: 'image', gif: 'image', webp: 'image',\n svg: 'image', bmp: 'image', avif: 'image', ico: 'image',\n // PDF\n pdf: 'pdf',\n // Audio\n mp3: 'audio', wav: 'audio', ogg: 'audio', flac: 'audio', aac: 'audio',\n m4a: 'audio', opus: 'audio', weba: 'audio',\n // Video\n mp4: 'video', webm: 'video', mov: 'video', avi: 'video', mkv: 'video', ogv: 'video',\n // Code\n ts: 'code', js: 'code', jsx: 'code', tsx: 'code', json: 'code',\n html: 'code', css: 'code', scss: 'code', less: 'code',\n py: 'code', java: 'code', go: 'code', rs: 'code',\n yaml: 'code', yml: 'code', xml: 'code', sql: 'code',\n sh: 'code', bash: 'code', zsh: 'code', md: 'code',\n c: 'code', cpp: 'code', h: 'code', hpp: 'code',\n rb: 'code', php: 'code', swift: 'code', kt: 'code',\n // Text\n txt: 'text', log: 'text', csv: 'text', env: 'text',\n};\n\nconst MIME_PREFIX_MAP: Record = {\n 'image/': 'image',\n 'audio/': 'audio',\n 'video/': 'video',\n 'application/pdf': 'pdf',\n};\n\nconst EXTENSION_LANG_MAP: Record = {\n ts: 'typescript', tsx: 'typescript',\n js: 'javascript', jsx: 'javascript',\n json: 'json', html: 'xml', xml: 'xml',\n css: 'css', scss: 'scss', less: 'less',\n py: 'python', java: 'java', go: 'go', rs: 'rust',\n yaml: 'yaml', yml: 'yaml', sql: 'sql',\n sh: 'bash', bash: 'bash', zsh: 'bash',\n c: 'c', cpp: 'cpp', h: 'c', hpp: 'cpp',\n rb: 'ruby', php: 'php', swift: 'swift', kt: 'kotlin',\n md: 'markdown',\n};\n\nconst TYPE_ICONS: Record = {\n image: 'lucide:Image',\n pdf: 'lucide:FileText',\n audio: 'lucide:Music',\n video: 'lucide:Video',\n code: 'lucide:Code',\n text: 'lucide:FileText',\n unknown: 'lucide:File',\n};\n\n@customElement('dees-preview')\nexport class DeesPreview extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Media', 'Data View'];\n\n // Content sources (use one)\n @property()\n accessor url: string = '';\n\n @property({ attribute: false })\n accessor file: File | undefined = undefined;\n\n @property()\n accessor base64: string = '';\n\n @property()\n accessor textContent: string = '';\n\n // Hints & overrides\n @property()\n accessor contentType: TPreviewContentType | undefined = undefined;\n\n @property()\n accessor language: string = '';\n\n @property()\n accessor mimeType: string = '';\n\n @property()\n accessor filename: string = '';\n\n // UI\n @property({ type: Boolean })\n accessor showToolbar: boolean = true;\n\n @property({ type: Boolean })\n accessor showFilename: boolean = true;\n\n // Internal\n @state()\n accessor resolvedType: TPreviewContentType = 'unknown';\n\n @state()\n accessor resolvedSrc: string = '';\n\n @state()\n accessor resolvedText: string = '';\n\n @state()\n accessor resolvedLang: string = 'text';\n\n @state()\n accessor loading: boolean = false;\n\n @state()\n accessor error: string = '';\n\n private objectUrl: string = '';\n\n public render(): TemplateResult {\n const displayName = this.filename || this.file?.name || this.getFilenameFromUrl() || '';\n\n return html`\n \n\n
      \n ${this.showFilename && displayName ? html`\n
      \n \n ${displayName}\n ${this.resolvedType}\n
      \n ` : ''}\n\n
      \n ${this.error ? html`\n
      \n \n ${this.error}\n
      \n ` : this.loading ? html`\n
      \n
      \n
      \n ` : this.renderContent()}\n
      \n
      \n `;\n }\n\n private renderContent(): TemplateResult {\n switch (this.resolvedType) {\n case 'image':\n return html`\n \n `;\n case 'pdf':\n return html`\n \n `;\n case 'audio':\n return html`\n \n `;\n case 'video':\n return html`\n \n `;\n case 'code':\n return html`\n \n `;\n case 'text':\n return html`
      ${this.resolvedText}
      `;\n default:\n return html`\n
      \n \n Preview not available\n
      \n `;\n }\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n\n const relevant = ['url', 'file', 'base64', 'textContent', 'contentType', 'language', 'mimeType', 'filename'];\n const needsResolve = relevant.some((key) => changedProperties.has(key));\n if (needsResolve) {\n await this.resolveContent();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.revokeObjectUrl();\n }\n\n private async resolveContent(): Promise {\n this.error = '';\n this.revokeObjectUrl();\n\n // Detect type\n this.resolvedType = this.detectType();\n\n // Resolve source\n try {\n if (this.url) {\n this.resolvedSrc = this.url;\n if (this.resolvedType === 'code' || this.resolvedType === 'text') {\n if (!this.textContent) {\n this.loading = true;\n const response = await fetch(this.url);\n this.resolvedText = await response.text();\n this.loading = false;\n } else {\n this.resolvedText = this.textContent;\n }\n }\n } else if (this.file) {\n this.objectUrl = URL.createObjectURL(this.file);\n this.resolvedSrc = this.objectUrl;\n if (this.resolvedType === 'code' || this.resolvedType === 'text') {\n this.loading = true;\n this.resolvedText = await this.file.text();\n this.loading = false;\n }\n } else if (this.base64) {\n const mime = this.mimeType || 'application/octet-stream';\n this.resolvedSrc = `data:${mime};base64,${this.base64}`;\n } else if (this.textContent) {\n this.resolvedText = this.textContent;\n }\n } catch {\n this.error = 'Failed to load content';\n this.loading = false;\n }\n\n // Resolve language for code\n this.resolvedLang = this.resolveLanguage();\n }\n\n private detectType(): TPreviewContentType {\n // 1. Explicit override\n if (this.contentType) return this.contentType;\n\n // 2. MIME type\n const mime = this.mimeType || this.file?.type || '';\n if (mime) {\n if (mime === 'application/pdf') return 'pdf';\n for (const [prefix, type] of Object.entries(MIME_PREFIX_MAP)) {\n if (mime.startsWith(prefix)) return type;\n }\n if (mime.startsWith('text/')) return 'text';\n }\n\n // 3. File extension\n const ext = this.getExtension();\n if (ext && EXTENSION_MAP[ext]) return EXTENSION_MAP[ext];\n\n // 4. If textContent is provided, assume code or text\n if (this.textContent) {\n return this.language ? 'code' : 'text';\n }\n\n return 'unknown';\n }\n\n private getExtension(): string {\n const name = this.filename || this.file?.name || '';\n if (name) {\n const parts = name.split('.');\n if (parts.length > 1) return parts.pop()!.toLowerCase();\n }\n if (this.url) {\n try {\n const pathname = new URL(this.url, 'https://placeholder.com').pathname;\n const parts = pathname.split('.');\n if (parts.length > 1) return parts.pop()!.toLowerCase();\n } catch {\n // Invalid URL\n }\n }\n return '';\n }\n\n private getFilenameFromUrl(): string {\n if (!this.url) return '';\n try {\n const pathname = new URL(this.url, 'https://placeholder.com').pathname;\n return pathname.split('/').pop() || '';\n } catch {\n return '';\n }\n }\n\n private resolveLanguage(): string {\n if (this.language) return this.language;\n const ext = this.getExtension();\n return EXTENSION_LANG_MAP[ext] || 'text';\n }\n\n private revokeObjectUrl(): void {\n if (this.objectUrl) {\n URL.revokeObjectURL(this.objectUrl);\n this.objectUrl = '';\n }\n }\n}\n", "export * from './dees-preview.js';\n", "import { DeesElement, property, html, customElement, domtools, type TemplateResult, type CSSResult, } from '@design.estate/dees-element';\n\nimport { Deferred } from '@push.rocks/smartpromise';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\n// import type pdfjsTypes from 'pdfjs-dist';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pdf': DeesPdf;\n }\n}\n\n/**\n * @deprecated Use DeesPdfViewer or DeesTilePdf instead\n * - DeesPdfViewer: Full-featured PDF viewing with controls, navigation, zoom\n * - DeesTilePdf: Lightweight, performance-optimized tile preview for grids\n */\n@customElement('dees-pdf')\nexport class DeesPdf extends DeesElement {\n // DEMO\n public static demo = () => html` `;\n public static demoGroups = ['Media', 'PDF'];\n\n // INSTANCE\n\n @property()\n accessor pdfUrl: string =\n 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/examples/learning/helloworld.pdf';\n\n\n\n constructor() {\n super();\n\n // you have access to all kinds of things through this.\n // this.setAttribute('gotIt','true');\n }\n\n public render(): TemplateResult {\n return html`\n \n \n `;\n }\n\n public static pdfJsReady: Promise;\n public static pdfjsLib: any // typeof pdfjsTypes;\n public async connectedCallback() {\n super.connectedCallback();\n if (!DeesPdf.pdfJsReady) {\n const pdfJsReadyDeferred = domtools.plugins.smartpromise.defer();\n DeesPdf.pdfJsReady = pdfJsReadyDeferred.promise;\n // @ts-ignore\n DeesPdf.pdfjsLib = await import('https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/+esm');\n DeesPdf.pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/build/pdf.worker.mjs';\n pdfJsReadyDeferred.resolve();\n }\n await DeesPdf.pdfJsReady;\n this.displayContent();\n\n\n }\n\n public async displayContent() {\n await DeesPdf.pdfJsReady;\n\n // Asynchronous download of PDF\n const loadingTask = DeesPdf.pdfjsLib.getDocument(this.pdfUrl);\n loadingTask.promise.then(\n (pdf) => {\n console.log('PDF loaded');\n\n // Fetch the first page\n const pageNumber = 1;\n pdf.getPage(pageNumber).then((page) => {\n console.log('Page loaded');\n\n const scale = 10;\n const viewport = page.getViewport({ scale: scale });\n\n // Prepare canvas using PDF page dimensions\n const canvas: any = this.shadowRoot.querySelector('#pdfcanvas');\n const context = canvas.getContext('2d');\n canvas.height = viewport.height;\n canvas.width = viewport.width;\n\n // Render PDF page into canvas context\n const renderContext = {\n canvasContext: context,\n viewport: viewport,\n };\n\n const renderTask = page.render(renderContext);\n renderTask.promise.then(function () {\n console.log('Page rendered');\n });\n });\n },\n (reason) => {\n // PDF loading error\n console.error(reason);\n }\n );\n }\n\n /**\n * Provide context menu items for the global context menu handler\n */\n public getContextMenuItems() {\n return [\n {\n name: 'Open PDF in New Tab',\n iconName: 'lucide:ExternalLink',\n action: async () => {\n window.open(this.pdfUrl, '_blank');\n }\n },\n { divider: true },\n {\n name: 'Copy PDF URL',\n iconName: 'lucide:Copy',\n action: async () => {\n await navigator.clipboard.writeText(this.pdfUrl);\n }\n },\n {\n name: 'Download PDF',\n iconName: 'lucide:Download',\n action: async () => {\n const link = document.createElement('a');\n link.href = this.pdfUrl;\n link.download = this.pdfUrl.split('/').pop() || 'document.pdf';\n link.click();\n }\n }\n ];\n }\n}", "export * from './component.js';\n", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const tileBaseStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: inline-block;\n position: relative;\n }\n\n .tile-container {\n position: relative;\n width: 200px;\n height: 260px;\n background: ${cssManager.bdTheme('hsl(0 0% 98%)', 'hsl(215 20% 14%)')};\n border-radius: 4px;\n overflow: hidden;\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n box-shadow: 0 1px 3px ${cssManager.bdTheme('rgba(0, 0, 0, 0.12)', 'rgba(0, 0, 0, 0.24)')};\n }\n\n .tile-container.clickable {\n cursor: pointer;\n }\n\n .tile-container.clickable:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 24px ${cssManager.bdTheme('rgba(0, 0, 0, 0.12)', 'rgba(0, 0, 0, 0.3)')};\n }\n\n .tile-container.clickable:hover .tile-overlay {\n opacity: 1;\n }\n\n .tile-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n overflow: hidden;\n }\n\n .tile-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.7)', 'rgba(0, 0, 0, 0.8)')};\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 20;\n }\n\n .tile-overlay dees-icon {\n font-size: 24px;\n color: white;\n }\n\n .tile-overlay span {\n font-size: 14px;\n font-weight: 500;\n color: white;\n }\n\n .tile-info {\n position: absolute;\n bottom: 8px;\n left: 8px;\n right: 8px;\n padding: 6px 10px;\n background: ${cssManager.bdTheme('hsl(0 0% 100% / 0.92)', 'hsl(215 20% 12% / 0.92)')};\n border-radius: 6px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n backdrop-filter: blur(12px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 10;\n }\n\n .tile-info dees-icon {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .tile-info-text {\n font-weight: 500;\n font-size: 11px;\n }\n\n .tile-badge {\n position: absolute;\n top: 8px;\n left: 8px;\n right: 8px;\n padding: 5px 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.7)', 'hsl(0 0% 100% / 0.9)')};\n color: ${cssManager.bdTheme('white', 'hsl(215 20% 12%)')};\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n text-align: center;\n backdrop-filter: blur(12px);\n z-index: 15;\n pointer-events: none;\n animation: fadeIn 0.2s ease;\n }\n\n .tile-badge-corner {\n position: absolute;\n bottom: 8px;\n right: 8px;\n padding: 3px 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.6)', 'hsl(0 0% 100% / 0.85)')};\n color: ${cssManager.bdTheme('white', 'hsl(215 20% 12%)')};\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n backdrop-filter: blur(8px);\n z-index: 10;\n pointer-events: none;\n }\n\n .tile-badge-topright {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 3px 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.6)', 'hsl(0 0% 100% / 0.85)')};\n color: ${cssManager.bdTheme('white', 'hsl(215 20% 12%)')};\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n backdrop-filter: blur(8px);\n z-index: 15;\n pointer-events: none;\n }\n\n /* Shift bottom badges up when label is present */\n .tile-container:has(.tile-label) .tile-badge-corner {\n bottom: 33px;\n }\n\n .tile-container:has(.tile-label) .tile-info {\n bottom: 33px;\n }\n\n .tile-loading,\n .tile-error {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .tile-loading {\n background: ${cssManager.bdTheme('hsl(0 0% 99%)', 'hsl(215 20% 14%)')};\n }\n\n .tile-error {\n background: ${cssManager.bdTheme('hsl(0 72% 98%)', 'hsl(0 62% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 72% 40%)', 'hsl(0 70% 68%)')};\n }\n\n .tile-error dees-icon {\n font-size: 32px;\n }\n\n .tile-spinner {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 2px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 28%)')};\n border-top-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n animation: spin 0.8s linear infinite;\n }\n\n .tile-loading-text,\n .tile-error-text {\n font-size: 13px;\n font-weight: 500;\n }\n\n .tile-label {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 6px 10px;\n background: ${cssManager.bdTheme('hsl(0 0% 100% / 0.95)', 'hsl(215 20% 12% / 0.95)')};\n font-size: 11px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215 16% 35%)', 'hsl(215 16% 75%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n z-index: 10;\n backdrop-filter: blur(12px);\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n /* Size variants */\n :host([size=\"small\"]) .tile-container {\n width: 150px;\n height: 195px;\n }\n\n :host([size=\"large\"]) .tile-container {\n width: 250px;\n height: 325px;\n }\n\n /* Grid optimizations */\n :host([grid-mode]) .tile-container {\n will-change: auto;\n }\n `,\n];\n", "import {\n DeesElement,\n html,\n property,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { tileBaseStyles } from './styles.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\nexport abstract class DeesTileBase extends DeesElement {\n public static styles: CSSResult[] = tileBaseStyles as any;\n\n @property({ type: Boolean })\n accessor clickable: boolean = true;\n\n @property({ type: Boolean })\n accessor loading: boolean = false;\n\n @property({ type: Boolean })\n accessor error: boolean = false;\n\n @property({ type: String, reflect: true })\n accessor size: 'small' | 'default' | 'large' = 'default';\n\n @property({ type: String })\n accessor label: string = '';\n\n private observer: IntersectionObserver | undefined;\n private _visible: boolean = false;\n\n /** Whether this tile is currently visible in the viewport */\n protected get isVisible(): boolean {\n return this._visible;\n }\n\n public render(): TemplateResult {\n return html`\n \n ${this.loading ? html`\n
      \n
      \n
      Loading...
      \n
      \n ` : ''}\n\n ${this.error ? html`\n
      \n \n
      Failed to load
      \n
      \n ` : ''}\n\n ${!this.loading && !this.error ? this.renderTileContent() : ''}\n\n ${this.label ? html`\n
      ${this.label}
      \n ` : ''}\n \n `;\n }\n\n /** Subclasses implement this to render their specific content */\n protected abstract renderTileContent(): TemplateResult;\n\n public async connectedCallback(): Promise {\n await super.connectedCallback();\n this.setupIntersectionObserver();\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n }\n\n private setupIntersectionObserver(): void {\n this.observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n const wasVisible = this._visible;\n this._visible = entry.isIntersecting;\n if (this._visible && !wasVisible) {\n this.onBecameVisible();\n }\n }\n },\n { root: null, rootMargin: '200px', threshold: 0.01 }\n );\n this.observer.observe(this);\n }\n\n /** Called when the tile first enters the viewport. Override for lazy loading. */\n protected onBecameVisible(): void {\n // Subclasses can override\n }\n\n /** Called when mouse enters the tile container. Override in subclasses. */\n protected onTileMouseEnter(): void {}\n\n /** Called when mouse leaves the tile container. Override in subclasses. */\n protected onTileMouseLeave(): void {}\n\n /** Called when mouse moves over the tile container. Override in subclasses. */\n protected onTileMouseMove(_e: MouseEvent): void {}\n\n protected handleTileClick(): void {\n if (!this.clickable) return;\n this.dispatchEvent(\n new CustomEvent('tile-click', {\n detail: this.getTileClickDetail(),\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /** Return the detail object for tile-click events. Override in subclasses. */\n protected getTileClickDetail(): Record {\n return {};\n }\n}\n", "export interface PooledCanvas {\n canvas: HTMLCanvasElement;\n ctx: CanvasRenderingContext2D;\n inUse: boolean;\n lastUsed: number;\n}\n\nexport class CanvasPool {\n private static pool: PooledCanvas[] = [];\n private static maxPoolSize = 20;\n private static readonly MIN_CANVAS_SIZE = 256;\n private static readonly MAX_CANVAS_SIZE = 4096;\n\n public static acquire(width: number, height: number): PooledCanvas {\n // Try to find a suitable canvas from the pool\n const suitable = this.pool.find(\n (item) => !item.inUse &&\n item.canvas.width >= width &&\n item.canvas.height >= height &&\n item.canvas.width <= width * 1.5 &&\n item.canvas.height <= height * 1.5\n );\n\n if (suitable) {\n suitable.inUse = true;\n suitable.lastUsed = Date.now();\n\n // Clear and resize if needed\n suitable.canvas.width = width;\n suitable.canvas.height = height;\n suitable.ctx.clearRect(0, 0, width, height);\n\n return suitable;\n }\n\n // Create new canvas if pool not full\n if (this.pool.length < this.maxPoolSize) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d', {\n alpha: true,\n desynchronized: true,\n }) as CanvasRenderingContext2D;\n\n canvas.width = Math.min(Math.max(width, this.MIN_CANVAS_SIZE), this.MAX_CANVAS_SIZE);\n canvas.height = Math.min(Math.max(height, this.MIN_CANVAS_SIZE), this.MAX_CANVAS_SIZE);\n\n const pooledCanvas: PooledCanvas = {\n canvas,\n ctx,\n inUse: true,\n lastUsed: Date.now(),\n };\n\n this.pool.push(pooledCanvas);\n return pooledCanvas;\n }\n\n // Evict and reuse least recently used canvas\n const lru = this.pool\n .filter((item) => !item.inUse)\n .sort((a, b) => a.lastUsed - b.lastUsed)[0];\n\n if (lru) {\n lru.canvas.width = width;\n lru.canvas.height = height;\n lru.ctx.clearRect(0, 0, width, height);\n lru.inUse = true;\n lru.lastUsed = Date.now();\n return lru;\n }\n\n // Fallback: create temporary canvas (shouldn't normally happen)\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n canvas.width = width;\n canvas.height = height;\n\n return {\n canvas,\n ctx,\n inUse: true,\n lastUsed: Date.now(),\n };\n }\n\n public static release(pooledCanvas: PooledCanvas) {\n if (this.pool.includes(pooledCanvas)) {\n pooledCanvas.inUse = false;\n // Clear canvas to free memory\n pooledCanvas.ctx.clearRect(0, 0, pooledCanvas.canvas.width, pooledCanvas.canvas.height);\n }\n }\n\n public static releaseAll() {\n for (const item of this.pool) {\n item.inUse = false;\n item.ctx.clearRect(0, 0, item.canvas.width, item.canvas.height);\n }\n }\n\n public static destroy() {\n for (const item of this.pool) {\n item.canvas.width = 0;\n item.canvas.height = 0;\n }\n this.pool = [];\n }\n\n public static getStats() {\n return {\n poolSize: this.pool.length,\n maxPoolSize: this.maxPoolSize,\n inUse: this.pool.filter((item) => item.inUse).length,\n available: this.pool.filter((item) => !item.inUse).length,\n };\n }\n\n public static adjustPoolSize(newSize: number) {\n if (newSize < this.pool.length) {\n // Remove excess canvases\n const toRemove = this.pool.length - newSize;\n const removed = this.pool\n .filter((item) => !item.inUse)\n .slice(0, toRemove);\n\n for (const item of removed) {\n const index = this.pool.indexOf(item);\n if (index > -1) {\n this.pool.splice(index, 1);\n }\n }\n }\n this.maxPoolSize = newSize;\n }\n}", "export function debounce any>(\n func: T,\n wait: number\n): (...args: Parameters) => void {\n let timeout: number | undefined;\n\n return function executedFunction(...args: Parameters) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n\n clearTimeout(timeout);\n timeout = window.setTimeout(later, wait);\n };\n}\n\nexport function throttle any>(\n func: T,\n limit: number\n): (...args: Parameters) => void {\n let inThrottle: boolean;\n\n return function executedFunction(...args: Parameters) {\n if (!inThrottle) {\n func.apply(this, args);\n inThrottle = true;\n setTimeout(() => inThrottle = false, limit);\n }\n };\n}\n\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return Math.round(bytes / Math.pow(k, i) * 100) / 100 + ' ' + sizes[i];\n}\n\nexport function isInViewport(element: Element, margin = 0): boolean {\n const rect = element.getBoundingClientRect();\n return (\n rect.top >= -margin &&\n rect.left >= -margin &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) + margin &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) + margin\n );\n}\n\nexport class PerformanceMonitor {\n private static marks = new Map();\n private static measures: Array<{ name: string; duration: number }> = [];\n\n public static mark(name: string) {\n this.marks.set(name, performance.now());\n }\n\n public static measure(name: string, startMark: string) {\n const start = this.marks.get(startMark);\n if (start) {\n const duration = performance.now() - start;\n this.measures.push({ name, duration });\n this.marks.delete(startMark);\n return duration;\n }\n return 0;\n }\n\n public static getReport() {\n const report = {\n measures: [...this.measures],\n averages: {} as Record,\n };\n\n // Calculate averages for repeated measures\n const grouped = new Map();\n for (const measure of this.measures) {\n if (!grouped.has(measure.name)) {\n grouped.set(measure.name, []);\n }\n grouped.get(measure.name)!.push(measure.duration);\n }\n\n for (const [name, durations] of grouped) {\n report.averages[name] = durations.reduce((a, b) => a + b, 0) / durations.length;\n }\n\n return report;\n }\n\n public static clear() {\n this.marks.clear();\n this.measures = [];\n }\n}", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const tilePdfStyles = css`\n .preview-stack {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n overflow: hidden;\n }\n\n .preview-stack.non-a4 {\n padding: 12px;\n }\n\n .preview-canvas {\n position: relative;\n background: white;\n display: block;\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n object-fit: contain;\n image-rendering: auto;\n -webkit-font-smoothing: antialiased;\n box-shadow: 0 1px 3px ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(0, 0, 0, 0.3)')};\n }\n\n .non-a4 .preview-canvas {\n border: 1px solid ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 25% 24%)')};\n border-radius: 4px;\n }\n\n /* Grid optimizations */\n :host([grid-mode]) .preview-canvas {\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n }\n`;\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => {\n const samplePdfs = [\n 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/examples/learning/helloworld.pdf',\n 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf',\n ];\n\n const generateGridItems = (count: number) => {\n const items = [];\n for (let i = 0; i < count; i++) {\n const pdfUrl = samplePdfs[i % samplePdfs.length];\n items.push(html`\n {\n console.log('PDF Tile clicked:', e.detail);\n alert(`PDF clicked: ${e.detail.pageCount} pages`);\n }}\n >\n `);\n }\n return items;\n };\n\n return html`\n \n\n
      \n
      \n

      Single PDF Tile

      \n \n
      \n\n
      \n

      Different Sizes

      \n
      \n
      Small:
      \n \n
      \n\n
      \n
      Default:
      \n \n
      \n\n
      \n
      Large:
      \n \n
      \n
      \n\n
      \n

      With Label

      \n \n
      \n\n
      \n

      Non-Clickable

      \n \n
      \n\n
      \n

      Grid - 20 PDFs with Lazy Loading

      \n
      \n ${generateGridItems(20)}\n
      \n
      \n
      \n `;\n};\n", "import { property, html, customElement, type TemplateResult, type CSSResult } from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { PdfManager } from '../dees-pdf-shared/PdfManager.js';\nimport { CanvasPool, type PooledCanvas } from '../dees-pdf-shared/CanvasPool.js';\nimport { PerformanceMonitor, throttle } from '../dees-pdf-shared/utils.js';\nimport { tilePdfStyles } from './styles.js';\nimport { demo as demoFunc } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-pdf': DeesTilePdf;\n }\n}\n\n@customElement('dees-tile-pdf')\nexport class DeesTilePdf extends DeesTileBase {\n public static demo = demoFunc;\n public static demoGroups = ['Media', 'PDF'];\n public static styles = [...tileBaseStyles, tilePdfStyles] as any;\n\n @property({ type: String })\n accessor pdfUrl: string = '';\n\n @property({ type: Number })\n accessor currentPreviewPage: number = 1;\n\n @property({ type: Number })\n accessor pageCount: number = 0;\n\n @property({ type: Boolean })\n accessor rendered: boolean = false;\n\n @property({ type: Boolean })\n accessor isHovering: boolean = false;\n\n @property({ type: Boolean })\n accessor isA4Format: boolean = true;\n\n private renderPagesTask: Promise | null = null;\n private renderPagesQueued: boolean = false;\n private pdfDocument: any;\n private canvases: PooledCanvas[] = [];\n private resizeObserver?: ResizeObserver;\n private stackElement: HTMLElement | null = null;\n private loadedPdfUrl: string | null = null;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
      \n \n
      \n\n ${this.pageCount > 1 && this.isHovering ? html`\n
      \n Page ${this.currentPreviewPage} of ${this.pageCount}\n
      \n ` : ''}\n\n ${this.pageCount > 0 && !this.isHovering ? html`\n
      \n ${this.pageCount} page${this.pageCount > 1 ? 's' : ''}\n
      \n ` : ''}\n\n ${this.clickable ? html`\n
      \n \n View PDF\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n pdfUrl: this.pdfUrl,\n pageCount: this.pageCount,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.rendered && this.pdfUrl) {\n this.loadAndRenderPreview();\n }\n }\n\n protected onTileMouseEnter(): void {\n this.isHovering = true;\n }\n\n protected onTileMouseLeave(): void {\n this.isHovering = false;\n if (this.currentPreviewPage !== 1) {\n this.currentPreviewPage = 1;\n void this.scheduleRenderPages();\n }\n }\n\n protected onTileMouseMove(e: MouseEvent): void {\n if (!this.isHovering || this.pageCount <= 1) return;\n\n const rect = this.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const width = rect.width;\n\n const percentage = Math.max(0, Math.min(1, x / width));\n const newPage = Math.ceil(percentage * this.pageCount) || 1;\n\n if (newPage !== this.currentPreviewPage) {\n this.currentPreviewPage = newPage;\n void this.scheduleRenderPages();\n }\n }\n\n public async connectedCallback(): Promise {\n await super.connectedCallback();\n await this.updateComplete;\n this.cacheElements();\n this.setupResizeObserver();\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.cleanup();\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n\n private async loadAndRenderPreview(): Promise {\n if (this.rendered || this.loading) return;\n\n this.loading = true;\n this.error = false;\n PerformanceMonitor.mark(`preview-load-${this.pdfUrl}`);\n\n try {\n this.pdfDocument = await PdfManager.loadDocument(this.pdfUrl);\n this.pageCount = this.pdfDocument.numPages;\n this.currentPreviewPage = 1;\n this.loadedPdfUrl = this.pdfUrl;\n\n this.loading = false;\n await this.updateComplete;\n this.cacheElements();\n\n await this.scheduleRenderPages();\n this.rendered = true;\n\n const duration = PerformanceMonitor.measure(`preview-render-${this.pdfUrl}`, `preview-load-${this.pdfUrl}`);\n console.log(`PDF tile rendered in ${duration}ms`);\n } catch (error) {\n console.error('Failed to load PDF tile:', error);\n this.error = true;\n this.loading = false;\n }\n }\n\n private scheduleRenderPages(): Promise {\n if (!this.pdfDocument) {\n return Promise.resolve();\n }\n\n if (this.renderPagesTask) {\n this.renderPagesQueued = true;\n return this.renderPagesTask;\n }\n\n this.renderPagesTask = (async () => {\n try {\n await this.performRenderPages();\n } catch (error) {\n console.error('Failed to render PDF tile pages:', error);\n }\n })().finally(() => {\n this.renderPagesTask = null;\n if (this.renderPagesQueued) {\n this.renderPagesQueued = false;\n void this.scheduleRenderPages();\n }\n });\n\n return this.renderPagesTask;\n }\n\n private async performRenderPages(): Promise {\n if (!this.pdfDocument) return;\n\n await new Promise(resolve => requestAnimationFrame(resolve));\n\n const canvas = this.shadowRoot?.querySelector('.preview-canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n this.clearCanvases();\n this.cacheElements();\n\n const { availableWidth, availableHeight } = this.getAvailableSize();\n\n try {\n const pageNum = this.currentPreviewPage;\n const page = await this.pdfDocument.getPage(pageNum);\n\n const initialViewport = page.getViewport({ scale: 1 });\n const aspectRatio = initialViewport.height / initialViewport.width;\n\n const a4PortraitRatio = 1.414;\n const a4LandscapeRatio = 0.707;\n const letterPortraitRatio = 1.294;\n const letterLandscapeRatio = 0.773;\n const tolerance = 0.05;\n\n const isA4Portrait = Math.abs(aspectRatio - a4PortraitRatio) < (a4PortraitRatio * tolerance);\n const isA4Landscape = Math.abs(aspectRatio - a4LandscapeRatio) < (a4LandscapeRatio * tolerance);\n const isLetterPortrait = Math.abs(aspectRatio - letterPortraitRatio) < (letterPortraitRatio * tolerance);\n const isLetterLandscape = Math.abs(aspectRatio - letterLandscapeRatio) < (letterLandscapeRatio * tolerance);\n\n this.isA4Format = isA4Portrait || isA4Landscape || isLetterPortrait || isLetterLandscape;\n\n const adjustedWidth = this.isA4Format ? availableWidth : availableWidth - 24;\n const adjustedHeight = this.isA4Format ? availableHeight : availableHeight - 24;\n\n const scaleX = adjustedWidth > 0 ? adjustedWidth / initialViewport.width : 0;\n const scaleY = adjustedHeight > 0 ? adjustedHeight / initialViewport.height : 0;\n const baseScale = Math.min(scaleX || 0.5, scaleY || scaleX || 0.5);\n const renderScale = Math.min(baseScale * 2, 3.0);\n\n if (!Number.isFinite(renderScale) || renderScale <= 0) {\n page.cleanup?.();\n return;\n }\n\n const viewport = page.getViewport({ scale: renderScale });\n\n const pooledCanvas = CanvasPool.acquire(viewport.width, viewport.height);\n this.canvases.push(pooledCanvas);\n\n const renderContext = {\n canvasContext: pooledCanvas.ctx,\n viewport: viewport,\n };\n\n await page.render(renderContext).promise;\n\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n\n const displayWidth = adjustedWidth;\n const displayHeight = (viewport.height / viewport.width) * adjustedWidth;\n\n if (displayHeight > adjustedHeight) {\n const altDisplayHeight = adjustedHeight;\n const altDisplayWidth = (viewport.width / viewport.height) * adjustedHeight;\n canvas.style.width = `${altDisplayWidth}px`;\n canvas.style.height = `${altDisplayHeight}px`;\n } else {\n canvas.style.width = `${displayWidth}px`;\n canvas.style.height = `${displayHeight}px`;\n }\n\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = 'high';\n ctx.drawImage(pooledCanvas.canvas, 0, 0);\n }\n\n page.cleanup();\n } catch (error) {\n console.error(`Failed to render page ${this.currentPreviewPage}:`, error);\n }\n }\n\n private clearCanvases(): void {\n for (const pooledCanvas of this.canvases) {\n CanvasPool.release(pooledCanvas);\n }\n this.canvases = [];\n }\n\n private cleanup(): void {\n this.clearCanvases();\n\n if (this.pdfDocument) {\n PdfManager.releaseDocument(this.loadedPdfUrl ?? this.pdfUrl);\n this.pdfDocument = null;\n }\n\n this.renderPagesQueued = false;\n this.pageCount = 0;\n this.currentPreviewPage = 1;\n this.isHovering = false;\n this.isA4Format = true;\n this.stackElement = null;\n this.loadedPdfUrl = null;\n this.rendered = false;\n this.loading = false;\n this.error = false;\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n\n if (changedProperties.has('pdfUrl') && this.pdfUrl) {\n const previousUrl = changedProperties.get('pdfUrl') as string | undefined;\n if (previousUrl) {\n PdfManager.releaseDocument(previousUrl);\n }\n this.cleanup();\n this.rendered = false;\n this.currentPreviewPage = 1;\n\n const rect = this.getBoundingClientRect();\n if (rect.top < window.innerHeight && rect.bottom > 0) {\n this.loadAndRenderPreview();\n }\n }\n\n if (changedProperties.has('currentPreviewPage') && this.rendered) {\n await this.scheduleRenderPages();\n }\n }\n\n public getContextMenuItems(): any[] {\n const items: any[] = [];\n\n if (this.clickable) {\n items.push({\n name: 'View PDF',\n iconName: 'lucide:Eye',\n action: async () => {\n this.dispatchEvent(new CustomEvent('tile-click', {\n detail: this.getTileClickDetail(),\n bubbles: true,\n composed: true,\n }));\n }\n });\n items.push({ divider: true });\n }\n\n items.push(\n {\n name: 'Open PDF in New Tab',\n iconName: 'lucide:ExternalLink',\n action: async () => {\n window.open(this.pdfUrl, '_blank');\n }\n },\n { divider: true },\n {\n name: 'Copy PDF URL',\n iconName: 'lucide:Copy',\n action: async () => {\n await navigator.clipboard.writeText(this.pdfUrl);\n }\n },\n {\n name: 'Download PDF',\n iconName: 'lucide:Download',\n action: async () => {\n const link = document.createElement('a');\n link.href = this.pdfUrl;\n link.download = this.pdfUrl.split('/').pop() || 'document.pdf';\n link.click();\n }\n }\n );\n\n if (this.pageCount > 0) {\n items.push(\n { divider: true },\n {\n name: `${this.pageCount} page${this.pageCount > 1 ? 's' : ''}`,\n iconName: 'lucide:FileText',\n disabled: true,\n action: async () => {}\n }\n );\n }\n\n return items;\n }\n\n private cacheElements(): void {\n if (!this.stackElement) {\n this.stackElement = this.shadowRoot?.querySelector('.preview-stack') as HTMLElement;\n }\n }\n\n private setupResizeObserver(): void {\n if (this.resizeObserver) return;\n\n this.resizeObserver = new ResizeObserver(() => {\n if (this.rendered && this.pdfDocument && !this.loading) {\n void this.scheduleRenderPages();\n }\n });\n\n this.resizeObserver.observe(this);\n }\n\n private getAvailableSize(): { availableWidth: number; availableHeight: number } {\n if (!this.stackElement) {\n this.stackElement = this.shadowRoot?.querySelector('.preview-stack') as HTMLElement;\n }\n\n if (!this.stackElement) {\n return { availableWidth: 200, availableHeight: 260 };\n }\n\n const rect = this.stackElement.getBoundingClientRect();\n const availableWidth = Math.max(rect.width, 0) || 200;\n const availableHeight = Math.max(rect.height, 0) || 260;\n\n return { availableWidth, availableHeight };\n }\n}\n", "import { customElement } from '@design.estate/dees-element';\nimport { DeesTilePdf } from '../dees-tile-pdf/component.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pdf-preview': DeesPdfPreview;\n }\n}\n\n/**\n * @deprecated Use instead. This component will be removed in a future release.\n */\n@customElement('dees-pdf-preview')\nexport class DeesPdfPreview extends DeesTilePdf {\n public static demoGroups: never[] = []; // Hide from demo catalog\n\n public connectedCallback(): Promise {\n console.warn(\n '[dees-pdf-preview] is deprecated. Use instead. ' +\n 'This component will be removed in a future release.'\n );\n return super.connectedCallback();\n }\n}\n", "export * from './component.js';\n", "export * from './CanvasPool.js';\nexport * from './PdfManager.js';\nexport * from './utils.js';\n", "export * from './component.js';\n", "export { DeesTileBase } from './DeesTileBase.js';\nexport { tileBaseStyles } from './styles.js';\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n

      Image Tiles

      \n
      \n console.log('Image clicked:', e.detail)}\n >\n\n \n\n \n
      \n
      \n\n
      \n

      Size Variants

      \n
      \n \n\n \n\n \n
      \n
      \n\n
      \n

      Error State (broken URL)

      \n \n
      \n
      \n`;\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-image': DeesTileImage;\n }\n}\n\n@customElement('dees-tile-image')\nexport class DeesTileImage extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .image-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n background: ${cssManager.bdTheme(\n 'repeating-conic-gradient(#e8e8e8 0% 25%, white 0% 50%) 50% / 16px 16px',\n 'repeating-conic-gradient(hsl(215 20% 18%) 0% 25%, hsl(215 20% 14%) 0% 50%) 50% / 16px 16px'\n )};\n }\n\n .image-wrapper img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n transition: opacity 0.3s ease;\n }\n\n .image-wrapper img.loaded {\n opacity: 1;\n }\n\n .image-wrapper img.loading {\n opacity: 0;\n }\n\n .tile-badge-topright.dimension-badge {\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n\n .tile-container.clickable:hover .tile-badge-topright.dimension-badge {\n opacity: 1;\n }\n `,\n ] as any;\n\n @property({ type: String })\n accessor src: string = '';\n\n @property({ type: String })\n accessor alt: string = '';\n\n @state()\n accessor imageLoaded: boolean = false;\n\n @state()\n accessor imageWidth: number = 0;\n\n @state()\n accessor imageHeight: number = 0;\n\n private hasStartedLoading: boolean = false;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
      \n ${this.hasStartedLoading ? html`\n \n ` : ''}\n
      \n\n ${this.imageWidth > 0 && this.imageHeight > 0 ? html`\n
      \n ${this.imageWidth} \u00D7 ${this.imageHeight}\n
      \n ` : ''}\n\n ${this.imageLoaded ? html`\n
      \n \n ${this.imageWidth} \u00D7 ${this.imageHeight}\n
      \n ` : ''}\n\n ${this.clickable ? html`\n
      \n \n View Image\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n src: this.src,\n alt: this.alt,\n width: this.imageWidth,\n height: this.imageHeight,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.hasStartedLoading && this.src) {\n this.hasStartedLoading = true;\n this.loading = true;\n this.requestUpdate();\n }\n }\n\n private handleImageLoad(e: Event): void {\n const img = e.target as HTMLImageElement;\n this.imageWidth = img.naturalWidth;\n this.imageHeight = img.naturalHeight;\n this.imageLoaded = true;\n this.loading = false;\n }\n\n private handleImageError(): void {\n this.error = true;\n this.loading = false;\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src && this.isVisible) {\n this.hasStartedLoading = true;\n this.imageLoaded = false;\n this.loading = true;\n }\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n

      Audio Tiles

      \n
      \n console.log('Audio clicked:', e.detail)}\n >\n\n \n\n \n
      \n
      \n\n
      \n

      Size Variants

      \n
      \n \n\n \n\n \n
      \n
      \n
      \n`;\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-audio': DeesTileAudio;\n }\n}\n\n@customElement('dees-tile-audio')\nexport class DeesTileAudio extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .audio-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n background: ${cssManager.bdTheme(\n 'linear-gradient(135deg, hsl(250 40% 96%), hsl(280 30% 94%))',\n 'linear-gradient(135deg, hsl(250 30% 16%), hsl(280 25% 14%))'\n )};\n }\n\n .music-icon {\n font-size: 48px;\n color: ${cssManager.bdTheme('hsl(250 60% 65%)', 'hsl(250 60% 70%)')};\n opacity: 0.8;\n }\n\n .audio-title {\n font-size: 12px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(250 20% 35%)', 'hsl(250 20% 80%)')};\n text-align: center;\n padding: 0 16px;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .audio-artist {\n font-size: 11px;\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(250 15% 50%)', 'hsl(250 15% 65%)')};\n text-align: center;\n padding: 0 16px;\n margin-top: -12px;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .waveform-container {\n width: calc(100% - 32px);\n height: 40px;\n position: relative;\n overflow: hidden;\n }\n\n .waveform-container canvas {\n width: 100%;\n height: 100%;\n display: block;\n }\n\n\n .play-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 18;\n pointer-events: none;\n }\n\n .tile-container.clickable:hover .play-overlay {\n opacity: 1;\n }\n\n .play-circle {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n backdrop-filter: blur(8px);\n }\n\n .play-circle dees-icon {\n font-size: 20px;\n color: white;\n }\n `,\n ] as any;\n\n @property({ type: String })\n accessor src: string = '';\n\n @property({ type: String })\n accessor title: string = '';\n\n @property({ type: String })\n accessor artist: string = '';\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor waveformData: number[] = [];\n\n @state()\n accessor waveformReady: boolean = false;\n\n @state()\n accessor isPreviewPlaying: boolean = false;\n\n private audioElement: HTMLAudioElement | null = null;\n private previewTimeout: ReturnType | null = null;\n private hasLoadedWaveform: boolean = false;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
      \n \n\n ${this.title ? html`
      ${this.title}
      ` : ''}\n ${this.artist ? html`
      ${this.artist}
      ` : ''}\n\n ${this.waveformReady ? html`\n
      \n \n
      \n ` : ''}\n
      \n\n ${this.duration > 0 ? html`\n
      ${this.formatTime(this.duration)}
      \n ` : ''}\n\n
      \n
      \n \n
      \n
      \n\n ${this.clickable ? html`\n
      \n \n Play Audio\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n src: this.src,\n title: this.title,\n artist: this.artist,\n duration: this.duration,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.hasLoadedWaveform && this.src) {\n this.hasLoadedWaveform = true;\n this.loadAudioMeta();\n }\n }\n\n private async loadAudioMeta(): Promise {\n this.loading = true;\n\n try {\n // Load duration via Audio element\n const audio = new Audio();\n audio.crossOrigin = 'anonymous';\n audio.preload = 'metadata';\n\n await new Promise((resolve, reject) => {\n audio.addEventListener('loadedmetadata', () => {\n this.duration = audio.duration;\n resolve();\n }, { once: true });\n audio.addEventListener('error', () => reject(new Error('Failed to load audio')), { once: true });\n audio.src = this.src;\n });\n\n // Load waveform data\n await this.loadWaveform();\n this.loading = false;\n } catch {\n this.loading = false;\n // Don't set error - audio may still be playable, just no waveform\n }\n }\n\n private async loadWaveform(): Promise {\n try {\n const response = await fetch(this.src);\n const arrayBuffer = await response.arrayBuffer();\n const audioContext = new AudioContext();\n const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);\n\n const channelData = audioBuffer.getChannelData(0);\n const bars = 80;\n const blockSize = Math.floor(channelData.length / bars);\n const waveform: number[] = [];\n\n for (let i = 0; i < bars; i++) {\n let sum = 0;\n for (let j = 0; j < blockSize; j++) {\n sum += Math.abs(channelData[i * blockSize + j]);\n }\n waveform.push(sum / blockSize);\n }\n\n const max = Math.max(...waveform);\n this.waveformData = waveform.map((v) => (max > 0 ? v / max : 0));\n this.waveformReady = true;\n\n await audioContext.close();\n await this.updateComplete;\n this.drawWaveform();\n } catch {\n this.waveformReady = false;\n }\n }\n\n private drawWaveform(): void {\n if (!this.waveformReady) return;\n\n const canvas = this.shadowRoot?.querySelector('.waveform-container canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n const container = canvas.parentElement!;\n const dpr = window.devicePixelRatio || 1;\n const width = container.clientWidth;\n const height = container.clientHeight;\n\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, width, height);\n\n const bars = this.waveformData.length;\n if (bars === 0) return;\n\n const barWidth = width / bars;\n\n const isDark = document.body.classList.contains('theme-dark') ||\n window.matchMedia('(prefers-color-scheme: dark)').matches;\n const barColor = isDark ? 'hsl(250 50% 60%)' : 'hsl(250 50% 70%)';\n\n ctx.fillStyle = barColor;\n for (let i = 0; i < bars; i++) {\n const amplitude = this.waveformData[i];\n const barHeight = Math.max(2, amplitude * (height - 4));\n const x = i * barWidth;\n const y = (height - barHeight) / 2;\n ctx.fillRect(x + 0.5, y, barWidth - 1, barHeight);\n }\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src && this.isVisible) {\n this.hasLoadedWaveform = true;\n this.waveformReady = false;\n this.duration = 0;\n this.loadAudioMeta();\n }\n if (changedProperties.has('waveformReady') && this.waveformReady) {\n await this.updateComplete;\n this.drawWaveform();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.previewTimeout) {\n clearTimeout(this.previewTimeout);\n }\n if (this.audioElement) {\n this.audioElement.pause();\n this.audioElement.src = '';\n this.audioElement = null;\n }\n }\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
      \n
      \n

      Video Tiles

      \n
      \n console.log('Video clicked:', e.detail)}\n >\n\n \n\n \n
      \n
      \n\n
      \n

      Size Variants

      \n
      \n \n\n \n\n \n
      \n
      \n\n
      \n

      With Poster Image

      \n \n
      \n
      \n`;\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-video': DeesTileVideo;\n }\n}\n\n@customElement('dees-tile-video')\nexport class DeesTileVideo extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .video-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background: #000;\n }\n\n .video-wrapper video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .video-wrapper canvas {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .poster-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n\n .play-overlay {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 15;\n pointer-events: none;\n transition: opacity 0.2s ease;\n }\n\n .play-overlay dees-icon {\n font-size: 20px;\n color: white;\n }\n\n .tile-container.clickable:hover .play-overlay {\n opacity: 0;\n }\n\n .video-hover-preview {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: 5;\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n\n .video-hover-preview.active {\n opacity: 1;\n }\n `,\n ] as any;\n\n @property({ type: String })\n accessor src: string = '';\n\n @property({ type: String })\n accessor poster: string = '';\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor thumbnailCaptured: boolean = false;\n\n @state()\n accessor isHovering: boolean = false;\n\n private thumbnailCanvas: HTMLCanvasElement | null = null;\n private hoverVideo: HTMLVideoElement | null = null;\n private hasStartedLoading: boolean = false;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
      \n ${this.poster ? html`\n \"\"\n ` : this.thumbnailCaptured ? html`\n \n ` : html`\n
      \n `}\n\n ${this.isHovering && this.src ? html`\n \n ` : ''}\n
      \n\n ${this.duration > 0 ? html`\n
      ${this.formatTime(this.duration)}
      \n ` : ''}\n\n ${!this.isHovering ? html`\n
      \n \n
      \n ` : ''}\n\n ${this.clickable ? html`\n
      \n \n Play Video\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n src: this.src,\n poster: this.poster,\n duration: this.duration,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.hasStartedLoading && this.src) {\n this.hasStartedLoading = true;\n this.captureFirstFrame();\n }\n }\n\n private async captureFirstFrame(): Promise {\n if (this.poster) {\n // If poster is provided, just load duration\n this.loadDuration();\n return;\n }\n\n this.loading = true;\n\n try {\n const video = document.createElement('video');\n video.crossOrigin = 'anonymous';\n video.muted = true;\n video.preload = 'metadata';\n\n await new Promise((resolve, reject) => {\n video.addEventListener('loadeddata', () => {\n this.duration = video.duration;\n\n // Capture the first frame\n video.currentTime = 0.1; // Slightly after start for better frame\n video.addEventListener('seeked', () => {\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.drawImage(video, 0, 0);\n this.thumbnailCanvas = canvas;\n this.thumbnailCaptured = true;\n }\n\n // Clean up\n video.src = '';\n video.load();\n resolve();\n }, { once: true });\n }, { once: true });\n\n video.addEventListener('error', () => reject(new Error('Failed to load video')), { once: true });\n video.src = this.src;\n });\n\n this.loading = false;\n\n // Copy thumbnail to shadow DOM canvas\n await this.updateComplete;\n this.copyThumbnailToCanvas();\n } catch {\n this.loading = false;\n // Don't set error for thumbnail failure\n this.loadDuration();\n }\n }\n\n private loadDuration(): void {\n const video = document.createElement('video');\n video.preload = 'metadata';\n video.addEventListener('loadedmetadata', () => {\n this.duration = video.duration;\n video.src = '';\n video.load();\n });\n video.src = this.src;\n }\n\n private copyThumbnailToCanvas(): void {\n if (!this.thumbnailCanvas) return;\n const canvas = this.shadowRoot?.querySelector('.video-wrapper canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n canvas.width = this.thumbnailCanvas.width;\n canvas.height = this.thumbnailCanvas.height;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.drawImage(this.thumbnailCanvas, 0, 0);\n }\n }\n\n protected onTileMouseEnter(): void {\n this.isHovering = true;\n }\n\n protected onTileMouseLeave(): void {\n this.isHovering = false;\n // The video element will be removed from DOM by the template\n this.hoverVideo = null;\n }\n\n private handleHoverVideoLoaded(e: Event): void {\n this.hoverVideo = e.target as HTMLVideoElement;\n this.hoverVideo.play().catch(() => {\n // Autoplay may be blocked\n });\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src && this.isVisible) {\n this.hasStartedLoading = true;\n this.thumbnailCaptured = false;\n this.duration = 0;\n this.captureFirstFrame();\n }\n if (changedProperties.has('thumbnailCaptured') && this.thumbnailCaptured) {\n await this.updateComplete;\n this.copyThumbnailToCanvas();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.hoverVideo) {\n this.hoverVideo.pause();\n this.hoverVideo.src = '';\n this.hoverVideo = null;\n }\n this.thumbnailCanvas = null;\n }\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => {\n const sampleCode = `import { html } from 'lit';\n\nexport class MyComponent {\n private items: string[] = [];\n\n render() {\n return html\\`\n
      \n \\${this.items.map(item => html\\`\n \\${item}\n \\`)}\n
      \n \\`;\n }\n}`;\n\n const sampleText = `Meeting Notes - Q4 Planning\nDate: January 15, 2026\nAttendees: Alice, Bob, Charlie\n\nKey Decisions:\n1. Launch new feature by March\n2. Hire 2 more engineers\n3. Migrate to new CI/CD pipeline\n4. Update design system to v3\n\nAction Items:\n- Alice: Draft PRD by next week\n- Bob: Set up interview pipeline\n- Charlie: Evaluate Jenkins vs GitHub Actions`;\n\n const sampleJson = `{\n \"name\": \"@design.estate/dees-catalog\",\n \"version\": \"3.38.0\",\n \"description\": \"Design component catalog\",\n \"dependencies\": {\n \"@design.estate/dees-element\": \"^2.0.0\",\n \"lit\": \"^3.1.0\"\n },\n \"scripts\": {\n \"build\": \"tsbuild\",\n \"test\": \"tstest\"\n }\n}`;\n\n return html`\n \n\n
      \n
      \n

      Note Tiles

      \n
      \n console.log('Note clicked:', e.detail)}\n >\n\n \n\n \n
      \n
      \n\n
      \n

      Size Variants

      \n
      \n \n\n \n\n \n
      \n
      \n\n
      \n

      Without Title

      \n \n
      \n
      \n `;\n};\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-note': DeesTileNote;\n }\n}\n\n@customElement('dees-tile-note')\nexport class DeesTileNote extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .note-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('#ffffff', 'hsl(60 5% 96%)')};\n overflow: hidden;\n }\n\n .note-header {\n padding: 12px 14px 8px;\n flex-shrink: 0;\n }\n\n .note-title {\n font-size: 12px;\n font-weight: 700;\n color: ${cssManager.bdTheme('hsl(215 20% 20%)', 'hsl(215 20% 20%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.3;\n }\n\n .note-body {\n flex: 1;\n padding: 0 14px 14px;\n position: relative;\n overflow: hidden;\n }\n\n .note-text {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 10px;\n line-height: 1.5;\n color: ${cssManager.bdTheme('hsl(215 10% 40%)', 'hsl(215 10% 35%)')};\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow: hidden;\n margin: 0;\n }\n\n .note-fade {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n background: linear-gradient(\n transparent,\n ${cssManager.bdTheme('#ffffff', 'hsl(60 5% 96%)')}\n );\n pointer-events: none;\n }\n\n .tile-badge-topright.note-language {\n background: ${cssManager.bdTheme('hsl(215 20% 92%)', 'hsl(215 20% 88%)')};\n color: ${cssManager.bdTheme('hsl(215 16% 50%)', 'hsl(215 16% 40%)')};\n font-size: 9px;\n text-transform: uppercase;\n z-index: 5;\n }\n\n .note-lines {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 34px;\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 70% 85%)', 'hsl(0 50% 80%)')};\n display: flex;\n flex-direction: column;\n padding-top: 12px;\n }\n\n .line-number {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 9px;\n line-height: 15px; /* matches 10px * 1.5 line-height */\n color: ${cssManager.bdTheme('hsl(215 10% 75%)', 'hsl(215 10% 70%)')};\n text-align: right;\n padding-right: 6px;\n }\n\n `,\n ] as any;\n\n @property({ type: String })\n accessor title: string = '';\n\n @property({ type: String })\n accessor content: string = '';\n\n @property({ type: String })\n accessor language: string = '';\n\n @state()\n accessor isHovering: boolean = false;\n\n private noteBodyElement: HTMLElement | null = null;\n\n protected renderTileContent(): TemplateResult {\n const lines = this.content.split('\\n');\n\n return html`\n
      \n ${this.language ? html`\n
      ${this.language}
      \n ` : ''}\n\n ${this.title ? html`\n
      \n
      ${this.title}
      \n
      \n ` : ''}\n\n
      \n
      ${lines.join('\\n')}
      \n ${!this.isHovering ? html`
      ` : ''}\n
      \n\n ${this.isHovering && lines.length > 12 ? html`\n
      \n Line ${this.getVisibleLineRange(lines.length)}\n
      \n ` : ''}\n
      \n\n ${this.clickable ? html`\n
      \n \n Open Note\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n title: this.title,\n content: this.content,\n language: this.language,\n };\n }\n\n protected onTileMouseEnter(): void {\n this.isHovering = true;\n if (!this.noteBodyElement) {\n this.noteBodyElement = this.shadowRoot?.querySelector('.note-body') as HTMLElement;\n }\n }\n\n protected onTileMouseLeave(): void {\n this.isHovering = false;\n if (this.noteBodyElement) {\n this.noteBodyElement.scrollTop = 0;\n }\n }\n\n protected onTileMouseMove(e: MouseEvent): void {\n if (!this.isHovering || !this.noteBodyElement) return;\n\n const totalLines = this.content.split('\\n').length;\n if (totalLines <= 12) return;\n\n const rect = this.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const percentage = Math.max(0, Math.min(1, x / rect.width));\n\n const maxScroll = this.noteBodyElement.scrollHeight - this.noteBodyElement.clientHeight;\n this.noteBodyElement.scrollTop = percentage * maxScroll;\n }\n\n private getVisibleLineRange(totalLines: number): string {\n if (!this.noteBodyElement) return `1\u201312 of ${totalLines}`;\n const lineHeight = 15; // 10px font \u00D7 1.5 line-height\n const firstLine = Math.floor(this.noteBodyElement.scrollTop / lineHeight) + 1;\n const visibleCount = Math.floor(this.noteBodyElement.clientHeight / lineHeight);\n const lastLine = Math.min(firstLine + visibleCount - 1, totalLines);\n return `${firstLine}\u2013${lastLine} of ${totalLines}`;\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\nimport type { ITileFolderItem } from './component.js';\n\nexport const demo = () => {\n const photosFolder: ITileFolderItem[] = [\n { type: 'image', name: 'sunset.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=1' },\n { type: 'image', name: 'mountain.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=2' },\n { type: 'image', name: 'ocean.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=3' },\n { type: 'image', name: 'forest.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=4' },\n { type: 'image', name: 'city.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=5' },\n { type: 'image', name: 'desert.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=6' },\n ];\n\n const projectFolder: ITileFolderItem[] = [\n { type: 'note', name: 'README.md' },\n { type: 'note', name: 'package.json' },\n { type: 'folder', name: 'src' },\n { type: 'folder', name: 'test' },\n { type: 'note', name: 'tsconfig.json' },\n { type: 'pdf', name: 'docs.pdf' },\n { type: 'image', name: 'logo.png', thumbnailSrc: 'https://picsum.photos/100/100?random=10' },\n ];\n\n const mediaFolder: ITileFolderItem[] = [\n { type: 'video', name: 'intro.mp4' },\n { type: 'audio', name: 'background.mp3' },\n { type: 'image', name: 'thumbnail.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=20' },\n { type: 'pdf', name: 'storyboard.pdf' },\n ];\n\n const emptyFolder: ITileFolderItem[] = [];\n\n const singleItemFolder: ITileFolderItem[] = [\n { type: 'pdf', name: 'report.pdf' },\n ];\n\n return html`\n \n\n
      \n
      \n

      Folder Tiles

      \n
      \n console.log('Folder clicked:', e.detail)}\n >\n\n \n\n \n
      \n
      \n\n
      \n

      Edge Cases

      \n
      \n \n\n \n
      \n
      \n\n
      \n

      Size Variants

      \n
      \n \n\n \n\n \n
      \n
      \n
      \n `;\n};\n", "import {\n property,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\nexport interface ITileFolderItem {\n type: 'pdf' | 'image' | 'audio' | 'video' | 'note' | 'folder' | 'unknown';\n thumbnailSrc?: string;\n name: string;\n}\n\nconst TYPE_ICON_MAP: Record = {\n pdf: 'lucide:FileText',\n image: 'lucide:Image',\n audio: 'lucide:Music',\n video: 'lucide:Video',\n note: 'lucide:FileCode',\n folder: 'lucide:Folder',\n unknown: 'lucide:File',\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-folder': DeesTileFolder;\n }\n}\n\n@customElement('dees-tile-folder')\nexport class DeesTileFolder extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .folder-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('hsl(40 30% 97%)', 'hsl(215 20% 14%)')};\n overflow: hidden;\n }\n\n .folder-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 14px 8px;\n flex-shrink: 0;\n }\n\n .folder-icon {\n font-size: 18px;\n color: ${cssManager.bdTheme('hsl(40 80% 50%)', 'hsl(40 70% 60%)')};\n }\n\n .folder-name {\n font-size: 12px;\n font-weight: 700;\n color: ${cssManager.bdTheme('hsl(215 20% 20%)', 'hsl(215 16% 80%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n }\n\n .preview-grid {\n flex: 1;\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr 1fr;\n gap: 4px;\n padding: 0 14px 14px;\n min-height: 0;\n }\n\n .grid-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n overflow: hidden;\n background: ${cssManager.bdTheme('hsl(215 20% 94%)', 'hsl(215 20% 18%)')};\n position: relative;\n }\n\n .grid-cell img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .grid-cell dees-icon {\n font-size: 20px;\n color: ${cssManager.bdTheme('hsl(215 16% 60%)', 'hsl(215 16% 55%)')};\n }\n\n .grid-cell-empty {\n background: ${cssManager.bdTheme('hsl(215 15% 96%)', 'hsl(215 20% 16%)')};\n }\n\n `,\n ] as any;\n\n @property({ type: String })\n accessor name: string = '';\n\n @property({ attribute: false })\n accessor items: ITileFolderItem[] = [];\n\n protected renderTileContent(): TemplateResult {\n const previewItems = this.items.slice(0, 4);\n const emptyCells = 4 - previewItems.length;\n\n return html`\n
      \n
      \n \n
      ${this.name || 'Untitled Folder'}
      \n
      \n\n
      \n ${previewItems.map((item) => html`\n
      \n ${item.thumbnailSrc ? html`\n \"${item.name}\"\n ` : html`\n \n `}\n
      \n `)}\n ${Array.from({ length: emptyCells }).map(() => html`\n
      \n `)}\n
      \n
      \n\n
      \n ${this.items.length} item${this.items.length !== 1 ? 's' : ''}\n
      \n\n ${this.clickable ? html`\n
      \n \n Open Folder\n
      \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n name: this.name,\n itemCount: this.items.length,\n items: this.items,\n };\n }\n}\n", "export * from './component.js';\n", "// Media Viewer Components\nexport * from './dees-image-viewer/index.js';\nexport * from './dees-audio-viewer/index.js';\nexport * from './dees-video-viewer/index.js';\nexport * from './dees-preview/index.js';\n\n// PDF Components\nexport * from './dees-pdf/index.js'; // @deprecated - Use dees-pdf-viewer or dees-tile-pdf instead\nexport * from './dees-pdf-preview/index.js'; // @deprecated - Use dees-tile-pdf instead\nexport * from './dees-pdf-shared/index.js';\nexport * from './dees-pdf-viewer/index.js';\n\n// Tile Components\nexport * from './dees-tile-shared/index.js';\nexport * from './dees-tile-pdf/index.js';\nexport * from './dees-tile-image/index.js';\nexport * from './dees-tile-audio/index.js';\nexport * from './dees-tile-video/index.js';\nexport * from './dees-tile-note/index.js';\nexport * from './dees-tile-folder/index.js';\n", "export * from './dees-contextmenu.js';\n", "export * from './dees-modal.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => {\n return html`\n \n
      \n \n `;\n};", "import * as colors from '../../00colors.js';\nimport * as plugins from '../../00plugins.js';\n\nimport { demoFunc } from './dees-speechbubble.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n domtools,\n directives,\n unsafeHTML,\n} from '@design.estate/dees-element';\nimport { DeesWindowLayer } from '../dees-windowlayer/dees-windowlayer.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-speechbubble': DeesSpeechbubble;\n }\n}\n\n@customElement('dees-speechbubble')\nexport class DeesSpeechbubble extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Overlay'];\n\n // STATIC\n public static async createAndShow(refElement: HTMLElement, textArg: string) {\n const windowLayer = await DeesWindowLayer.createAndShow({\n blur: false,\n });\n const speechbubble = document.createElement('dees-speechbubble');\n speechbubble.windowLayer = windowLayer;\n speechbubble.reffedElement = refElement;\n speechbubble.text = textArg;\n speechbubble.manifested = true;\n windowLayer.appendChild(speechbubble);\n windowLayer.style.pointerEvents = 'none';\n (windowLayer.shadowRoot.querySelector('.windowOverlay') as HTMLElement).style.pointerEvents = 'none';\n return speechbubble;\n }\n\n // INSTANCE\n @property({\n type: Object,\n })\n accessor reffedElement: HTMLElement;\n\n @property({\n type: String,\n reflect: true,\n })\n accessor text: string;\n\n @property({\n type: Boolean,\n })\n accessor wave: boolean = false;\n\n @property({\n type: Boolean,\n })\n accessor manifested = false;\n\n @property({\n type: String,\n })\n accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';\n\n public windowLayer: DeesWindowLayer;\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n box-sizing: border-box;\n color: ${cssManager.bdTheme('#333', '#fff')};\n user-select: none;\n }\n\n .maincontainer {\n position: relative;\n will-change: transform;\n transition: transform 0.2s;\n transform: translateX(0px);\n transition: all 0.2s;\n margin-left: 0px;\n filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.2));\n pointer-events: none;\n opacity: 0;\n transition: all 0.2s;\n }\n\n .arrow {\n position: absolute;\n transform: rotate(45deg);\n background: ${cssManager.bdTheme('#fff', '#333')};\n height: 15px;\n width: 15px;\n left: 2px;\n top: 12px;\n border-radius: 3px;\n }\n\n .speechbubble {\n background: ${cssManager.bdTheme('#fff', '#333')};\n padding: 0px 16px;\n border-radius: 3px;\n position: absolute;\n min-width: 240px;\n font-size: 12px;\n top: 0px;\n left: 8px;\n }\n\n .wave {\n animation-name: wave-animation; /* Refers to the name of your @keyframes element below */\n animation-duration: 2.5s; /* Change to speed up or slow down */\n animation-iteration-count: infinite; /* Never stop waving :) */\n transform-origin: 70% 70%; /* Pivot around the bottom-left palm */\n display: inline-block;\n }\n\n @keyframes wave-animation {\n 0% {\n transform: rotate(0deg);\n }\n 10% {\n transform: rotate(14deg);\n } /* The following five values can be played with to make the waving more or less extreme */\n 20% {\n transform: rotate(-8deg);\n }\n 30% {\n transform: rotate(14deg);\n }\n 40% {\n transform: rotate(-4deg);\n }\n 50% {\n transform: rotate(10deg);\n }\n 60% {\n transform: rotate(0deg);\n } /* Reset for the last half to pause */\n 100% {\n transform: rotate(0deg);\n }\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n ${this.manifested\n ? html`\n
      \n
      \n
      \n ${this.wave ? html`\uD83D\uDC4B` : html``}\n ${directives.resolve(this.getHtml())}\n
      \n
      \n `\n : html``}\n `;\n }\n\n public async handleClick() {\n console.log('speechbubble got clicked.');\n }\n\n public async firstUpdated() {\n // lets make sure we have a ref\n if (!this.reffedElement) {\n this.reffedElement = this.previousElementSibling as HTMLElement;\n }\n if (this.manifested) {\n await this.updatePosition();\n (this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '1';\n } else {\n // lets make sure we instrument it\n let speechbubble: DeesSpeechbubble;\n this.reffedElement.addEventListener('mouseenter', async () => {\n speechbubble = await DeesSpeechbubble.createAndShow(this.reffedElement, this.text);\n });\n this.reffedElement.addEventListener('mouseleave', () => {\n speechbubble.destroy();\n });\n }\n }\n\n public async updatePosition() {\n const refElement = this.reffedElement;\n const boundingClientRect = refElement.getBoundingClientRect();\n this.style.position = 'fixed';\n this.style.top = `${boundingClientRect.top - 13}px`;\n this.style.left = `${boundingClientRect.left + refElement.clientWidth + 4}px`;\n if (boundingClientRect.right > 250) {\n this.style.width = `250px`;\n }\n }\n\n public async getHtml(): Promise {\n if (!this.text) {\n return '';\n }\n const normalized = domtools.plugins.smartstring.normalize.standard(this.text);\n const result = await domtools.plugins.smartmarkdown.SmartMarkdown.easyMarkdownToHtml(\n normalized\n );\n return unsafeHTML(result);\n }\n\n public async show() {}\n\n public async destroy() {\n (this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '0';\n this.windowLayer.destroy();\n }\n}\n", "export * from './dees-speechbubble.js';\n", "export * from './dees-windowlayer.js';\n", "// Overlay Components\nexport * from './dees-contextmenu/index.js';\nexport * from './dees-modal/index.js';\nexport * from './dees-speechbubble/index.js';\nexport * from './dees-windowlayer/index.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUV4ZWN1dGlvbkVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtcnVudGltZS9pbnRlcmZhY2VzL0lFeGVjdXRpb25FbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './IExecutionEnvironment.js';\n", "export const DEFAULT_EDITOR_ORIGIN = 'https://stackblitz.com';\nexport const SEARCH_PARAM_AUTH_CODE = 'code';\nexport const SEARCH_PARAM_ERROR = 'error';\nexport const SEARCH_PARAM_ERROR_DESCRIPTION = 'error_description';\nexport const BROADCAST_CHANNEL_NAME = '__wc_api_bc__';\nexport const STORAGE_TOKENS_NAME = '__wc_api_tokens__';\nexport const STORAGE_CODE_VERIFIER_NAME = '__wc_api_verifier__';\nexport const STORAGE_POPUP_NAME = '__wc_api_popup__';\n", "export class TypedEventTarget {\n _bus = new EventTarget();\n listen(listener) {\n function wrappedListener(event) {\n listener(event.data);\n }\n this._bus.addEventListener('message', wrappedListener);\n return () => this._bus.removeEventListener('message', wrappedListener);\n }\n fireEvent(data) {\n this._bus.dispatchEvent(new MessageEvent('message', { data }));\n }\n}\n", "import { STORAGE_TOKENS_NAME } from './constants.js';\nimport { TypedEventTarget } from './TypedEventTarget.js';\nconst IGNORED_ERROR = new Error();\nIGNORED_ERROR.stack = '';\nconst accessTokenChangedListeners = new TypedEventTarget();\n/**\n * @internal\n */\nexport class Tokens {\n origin;\n refresh;\n access;\n expires;\n _revoked = new AbortController();\n constructor(\n // editor origin that those tokens are bound to, mostly used for development\n origin, \n // token to use to get a new access token\n refresh, \n // token to provide to webcontainer\n access, \n // time in UTC when the token expires\n expires) {\n this.origin = origin;\n this.refresh = refresh;\n this.access = access;\n this.expires = expires;\n }\n async activate(onFailedRefresh) {\n if (this._revoked.signal.aborted) {\n throw new Error('Token revoked');\n }\n // if the access token expired we fetch a new one\n if (this.expires < Date.now()) {\n if (!(await this._fetchNewAccessToken())) {\n return false;\n }\n }\n this._sync();\n this._startRefreshTokensLoop(onFailedRefresh);\n return true;\n }\n async revoke(clientId, ignoreRevokeError) {\n this._revoked.abort();\n try {\n const response = await fetch(`${this.origin}/oauth/revoke`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({ token: this.refresh, token_type_hint: 'refresh_token', client_id: clientId }),\n mode: 'cors',\n });\n if (!response.ok) {\n throw new Error(`Failed to logout`);\n }\n }\n catch (error) {\n if (!ignoreRevokeError) {\n throw error;\n }\n }\n clearTokensInStorage();\n }\n static fromStorage() {\n const savedTokens = readTokensFromStorage();\n if (!savedTokens) {\n return null;\n }\n return new Tokens(savedTokens.origin, savedTokens.refresh, savedTokens.access, savedTokens.expires);\n }\n static async fromAuthCode({ editorOrigin, clientId, codeVerifier, authCode, redirectUri, }) {\n const response = await fetch(`${editorOrigin}/oauth/token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n client_id: clientId,\n code: authCode,\n code_verifier: codeVerifier,\n grant_type: 'authorization_code',\n redirect_uri: redirectUri,\n }),\n mode: 'cors',\n });\n if (!response.ok) {\n throw new Error(`Failed to fetch token: ${response.status}`);\n }\n const tokenResponse = await response.json();\n assertTokenResponse(tokenResponse);\n const { access_token: access, refresh_token: refresh } = tokenResponse;\n const expires = getExpiresFromTokenResponse(tokenResponse);\n return new Tokens(editorOrigin, refresh, access, expires);\n }\n async _fetchNewAccessToken() {\n try {\n const response = await fetch(`${this.origin}/oauth/token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n grant_type: 'refresh_token',\n refresh_token: this.refresh,\n }),\n mode: 'cors',\n signal: this._revoked.signal,\n });\n if (!response.ok) {\n throw IGNORED_ERROR;\n }\n const tokenResponse = await response.json();\n assertTokenResponse(tokenResponse);\n const { access_token: access, refresh_token: refresh } = tokenResponse;\n const expires = getExpiresFromTokenResponse(tokenResponse);\n this.access = access;\n this.expires = expires;\n this.refresh = refresh;\n return true;\n }\n catch {\n clearTokensInStorage();\n return false;\n }\n }\n _sync() {\n persistTokensInStorage(this);\n fireAccessTokenChanged(this.access);\n }\n async _startRefreshTokensLoop(onFailedRefresh) {\n while (true) {\n const expiresIn = this.expires - Date.now() - 1000;\n await wait(Math.max(expiresIn, 1000));\n if (this._revoked.signal.aborted) {\n return;\n }\n if (!this._fetchNewAccessToken()) {\n onFailedRefresh();\n return;\n }\n this._sync();\n }\n }\n}\n/**\n * @internal\n */\nexport function clearTokensInStorage() {\n localStorage.removeItem(STORAGE_TOKENS_NAME);\n}\n/**\n * @internal\n */\nexport function addAccessTokenChangedListener(listener) {\n return accessTokenChangedListeners.listen(listener);\n}\nfunction readTokensFromStorage() {\n const serializedTokens = localStorage.getItem(STORAGE_TOKENS_NAME);\n if (!serializedTokens) {\n return null;\n }\n try {\n return JSON.parse(serializedTokens);\n }\n catch {\n return null;\n }\n}\nfunction persistTokensInStorage(tokens) {\n localStorage.setItem(STORAGE_TOKENS_NAME, JSON.stringify(tokens));\n}\nfunction getExpiresFromTokenResponse({ created_at, expires_in }) {\n return (created_at + expires_in) * 1000;\n}\nfunction assertTokenResponse(token) {\n if (typeof token !== 'object' || !token) {\n throw new Error('Invalid Token Response');\n }\n if (typeof token.access_token !== 'string' ||\n typeof token.refresh_token !== 'string' ||\n typeof token.created_at !== 'number' ||\n typeof token.expires_in !== 'number') {\n throw new Error('Invalid Token Response');\n }\n}\nfunction wait(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\nfunction fireAccessTokenChanged(accessToken) {\n accessTokenChangedListeners.fireEvent(accessToken);\n}\n", "import { DEFAULT_EDITOR_ORIGIN } from './constants.js';\nconst params = {};\nlet editorOrigin = null;\nexport const iframeSettings = {\n get editorOrigin() {\n if (editorOrigin == null) {\n editorOrigin = new URL(globalThis.WEBCONTAINER_API_IFRAME_URL ?? DEFAULT_EDITOR_ORIGIN).origin;\n }\n return editorOrigin;\n },\n set editorOrigin(newOrigin) {\n editorOrigin = new URL(newOrigin).origin;\n },\n setQueryParam(key, value) {\n params[key] = value;\n },\n get url() {\n const url = new URL(this.editorOrigin);\n url.pathname = '/headless';\n for (const param in params) {\n url.searchParams.set(param, params[param]);\n }\n url.searchParams.set('version', \"1.6.1\");\n return url;\n },\n};\n", "/**\n * Implementation of https://www.rfc-editor.org/rfc/rfc7636#section-4.2 that can\n * run in the browser.\n *\n * @internal\n *\n * @param input Code verifier.\n */\nexport async function S256(input) {\n // input here is assumed to match https://www.rfc-editor.org/rfc/rfc3986#section-2.3\n const ascii = new TextEncoder().encode(input);\n const sha256 = new Uint8Array(await crypto.subtle.digest('SHA-256', ascii));\n // base64url encode, based on https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\n return btoa(sha256.reduce((binary, byte) => binary + String.fromCodePoint(byte), ''))\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '');\n}\n/**\n * Implementation of https://www.rfc-editor.org/rfc/rfc7636#section-4.1 with\n * a slight deviation:\n *\n * - We use 128 characters (it's expected to be between 43 and 128)\n * - We use 64 characters instead of 66\n *\n * So the entropy is lower given the space size is 64^128 instead of 66^128.\n * It still satisfies the entropy constraint given that 64^128 > 66^43.\n *\n * @internal\n */\nexport function newCodeVerifier() {\n const random = new Uint8Array(96);\n crypto.getRandomValues(random);\n let codeVerifier = '';\n for (let i = 0; i < 32; ++i) {\n codeVerifier += nextFourChars(random[3 * i + 0], random[3 * i + 1], random[3 * i + 2]);\n }\n return codeVerifier;\n}\nfunction nextFourChars(byte1, byte2, byte3) {\n const char1 = byte1 >> 2;\n const char2 = ((byte1 & 3) << 4) | (byte2 >> 4);\n const char3 = (byte2 & 15) | ((byte3 & 192) >> 2);\n const char4 = byte3 & 63;\n return [char1, char2, char3, char4].map(unreservedCharacters).join('');\n}\nfunction unreservedCharacters(code) {\n let offset;\n if (code < 26) {\n offset = code + 65; // [A-Z]\n }\n else if (code < 52) {\n offset = code - 26 + 97; // [a-z]\n }\n else if (code < 62) {\n offset = code - 52 + 48; // [0-9]\n }\n else {\n offset = code === 62 ? 30 /* _ */ : 45 /* - */;\n }\n return String.fromCharCode(offset);\n}\n", "/**\n * @internal\n */\nexport function resettablePromise() {\n let resolve;\n let promise;\n function reset() {\n promise = new Promise((_resolve) => (resolve = _resolve));\n }\n reset();\n return {\n get promise() {\n return promise;\n },\n resolve(value) {\n return resolve(value);\n },\n reset,\n };\n}\n", "import { Tokens, clearTokensInStorage } from './tokens.js';\nimport { SEARCH_PARAM_AUTH_CODE, SEARCH_PARAM_ERROR, STORAGE_CODE_VERIFIER_NAME, BROADCAST_CHANNEL_NAME, STORAGE_POPUP_NAME, SEARCH_PARAM_ERROR_DESCRIPTION, } from './constants.js';\nimport { iframeSettings } from './iframe-url.js';\nimport { S256, newCodeVerifier } from './code.js';\nimport { resettablePromise } from './reset-promise.js';\nimport { TypedEventTarget } from './TypedEventTarget.js';\n/**\n * @internal\n */\nexport const authState = {\n initialized: false,\n bootCalled: false,\n authComplete: resettablePromise(),\n clientId: '',\n oauthScope: '',\n broadcastChannel: null,\n get editorOrigin() {\n return iframeSettings.editorOrigin;\n },\n tokens: null,\n};\nconst authFailedListeners = new TypedEventTarget();\nconst loggedOutListeners = new TypedEventTarget();\nfunction broadcastMessage(message) {\n if (!authState.broadcastChannel) {\n return;\n }\n authState.broadcastChannel.postMessage(message);\n // check if we are in a popup mode\n if (localStorage.getItem(STORAGE_POPUP_NAME) === 'true' && message.type !== 'auth-logout') {\n localStorage.removeItem(STORAGE_POPUP_NAME);\n // wait a tick to make sure the posted message has been sent\n setTimeout(() => {\n window.close();\n });\n }\n}\nexport const auth = {\n init({ editorOrigin, clientId, scope }) {\n if (authState.initialized) {\n throw new Error('Init should only be called once');\n }\n let enterprise = true;\n if (enterprise && authState.bootCalled) {\n throw new Error('`auth.init` should always be called before `WebContainer.boot`');\n }\n authState.initialized = true;\n authState.tokens = Tokens.fromStorage();\n authState.clientId = clientId;\n authState.oauthScope = scope;\n authState.broadcastChannel = new BroadcastChannel(BROADCAST_CHANNEL_NAME);\n // configure iframe url\n iframeSettings.setQueryParam('client_id', clientId);\n if (editorOrigin) {\n iframeSettings.editorOrigin = new URL(editorOrigin).origin;\n }\n loggedOutListeners.listen(() => authState.authComplete.reset());\n // if authentication or logout are done in another page, we want to reflect the state on this page as well\n authState.broadcastChannel.addEventListener('message', onChannelMessage);\n async function onChannelMessage(event) {\n const typedEvent = event.data;\n if (typedEvent.type === 'auth-complete') {\n authState.tokens = Tokens.fromStorage();\n // we ignore the possible error here because they can't have expired just yet\n await authState.tokens.activate(onFailedTokenRefresh);\n authState.authComplete.resolve();\n return;\n }\n if (typedEvent.type === 'auth-failed') {\n authFailedListeners.fireEvent(typedEvent);\n return;\n }\n if (typedEvent.type === 'auth-logout') {\n loggedOutListeners.fireEvent();\n return;\n }\n }\n if (authState.tokens) {\n const tokens = authState.tokens;\n if (tokens.origin === authState.editorOrigin) {\n /**\n * Here we assume that the refresh token never expires which\n * might not be correct. If that is the case though, we will\n * emit a 'logged-out' event to signal that the user has been\n * logged out, which could also happen at a later time anyway.\n *\n * Because this flow is done entirely locally, we do not broadcast\n * anything to the other tabs. They should be performing a similar\n * check.\n */\n (async () => {\n const success = await tokens.activate(onFailedTokenRefresh);\n if (!success) {\n // if we got new token in the meantime we discard this error\n if (authState.tokens !== tokens) {\n return;\n }\n loggedOutListeners.fireEvent();\n return;\n }\n authState.authComplete.resolve();\n })();\n return { status: 'authorized' };\n }\n clearTokensInStorage();\n authState.tokens = null;\n }\n const locationURL = new URL(window.location.href);\n const { searchParams } = locationURL;\n const updateURL = () => window.history.replaceState({}, document.title, locationURL);\n // check for errors first, aka the user declined the authorisation or stackblitz did\n if (searchParams.has(SEARCH_PARAM_ERROR)) {\n const error = searchParams.get(SEARCH_PARAM_ERROR);\n const description = searchParams.get(SEARCH_PARAM_ERROR_DESCRIPTION);\n searchParams.delete(SEARCH_PARAM_ERROR);\n searchParams.delete(SEARCH_PARAM_ERROR_DESCRIPTION);\n updateURL();\n broadcastMessage({ type: 'auth-failed', error, description });\n return { status: 'auth-failed', error, description };\n }\n // if there's an auth code\n if (searchParams.has(SEARCH_PARAM_AUTH_CODE)) {\n const authCode = searchParams.get(SEARCH_PARAM_AUTH_CODE);\n const editorOrigin = authState.editorOrigin;\n searchParams.delete(SEARCH_PARAM_AUTH_CODE);\n updateURL();\n const codeVerifier = localStorage.getItem(STORAGE_CODE_VERIFIER_NAME);\n if (!codeVerifier) {\n return { status: 'need-auth' };\n }\n localStorage.removeItem(STORAGE_CODE_VERIFIER_NAME);\n Tokens.fromAuthCode({\n editorOrigin,\n clientId: authState.clientId,\n authCode,\n codeVerifier,\n redirectUri: defaultRedirectUri(),\n })\n .then(async (tokens) => {\n authState.tokens = tokens;\n assertAuthTokens(authState.tokens);\n const success = await authState.tokens.activate(onFailedTokenRefresh);\n // if authentication failed we throw, and we'll mark auth as failed\n if (!success) {\n throw new Error();\n }\n authState.authComplete.resolve();\n broadcastMessage({ type: 'auth-complete' });\n })\n .catch((error) => {\n // this should never happen unless the rails app is now down for some reason?\n console.error(error);\n // treat it as a logged out event so that the user can retry to login\n loggedOutListeners.fireEvent();\n broadcastMessage({ type: 'auth-logout' });\n });\n return { status: 'authorized' };\n }\n return { status: 'need-auth' };\n },\n async startAuthFlow({ popup } = {}) {\n if (!authState.initialized) {\n throw new Error('auth.init must be called first');\n }\n if (popup) {\n localStorage.setItem(STORAGE_POPUP_NAME, 'true');\n const height = 500;\n const width = 620;\n const left = window.screenLeft + (window.outerWidth - width) / 2;\n const top = window.screenTop + (window.outerHeight - height) / 2;\n window.open(await generateOAuthRequest(), '_blank', `popup,width=${width},height=${height},left=${left},top=${top}`);\n }\n else {\n window.location.href = await generateOAuthRequest();\n }\n },\n async logout({ ignoreRevokeError } = {}) {\n await authState.tokens?.revoke(authState.clientId, ignoreRevokeError ?? false);\n loggedOutListeners.fireEvent();\n broadcastMessage({ type: 'auth-logout' });\n },\n loggedIn() {\n return authState.authComplete.promise;\n },\n on(event, listener) {\n switch (event) {\n case 'auth-failed': {\n return authFailedListeners.listen(listener);\n }\n case 'logged-out': {\n return loggedOutListeners.listen(listener);\n }\n default: {\n throw new Error(`Unsupported event type '${event}'.`);\n }\n }\n },\n};\nfunction onFailedTokenRefresh() {\n loggedOutListeners.fireEvent();\n broadcastMessage({ type: 'auth-logout' });\n}\nfunction defaultRedirectUri() {\n return window.location.href;\n}\nasync function generateOAuthRequest() {\n const codeVerifier = newCodeVerifier();\n localStorage.setItem(STORAGE_CODE_VERIFIER_NAME, codeVerifier);\n const codeChallenge = await S256(codeVerifier);\n const url = new URL('/oauth/authorize', authState.editorOrigin);\n const { searchParams } = url;\n searchParams.append('response_type', 'code');\n searchParams.append('client_id', authState.clientId);\n searchParams.append('redirect_uri', defaultRedirectUri());\n searchParams.append('scope', authState.oauthScope);\n searchParams.append('code_challenge', codeChallenge);\n searchParams.append('code_challenge_method', 'S256');\n return url.toString();\n}\n/**\n * @internal\n */\nexport function assertAuthTokens(tokens) {\n if (!tokens) {\n throw new Error('Oops! Tokens is not defined when it always should be.');\n }\n}\n", "/**\n * This type is in a separate module so that localservice can import it\n * without bundling all the other webcontainer specific stuff.\n */\nexport var PreviewMessageType;\n(function (PreviewMessageType) {\n PreviewMessageType[\"UncaughtException\"] = \"PREVIEW_UNCAUGHT_EXCEPTION\";\n PreviewMessageType[\"UnhandledRejection\"] = \"PREVIEW_UNHANDLED_REJECTION\";\n PreviewMessageType[\"ConsoleError\"] = \"PREVIEW_CONSOLE_ERROR\";\n})(PreviewMessageType || (PreviewMessageType = {}));\n", "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// dist/vendor/comlink.js\nvar comlink_exports = {};\n__export(comlink_exports, {\n createEndpoint: () => createEndpoint,\n expose: () => expose,\n proxy: () => proxy,\n proxyMarker: () => proxyMarker,\n releaseProxy: () => releaseProxy,\n transfer: () => transfer,\n transferHandlers: () => transferHandlers,\n windowEndpoint: () => windowEndpoint,\n wrap: () => wrap\n});\n\n// ../../node_modules/comlink/dist/esm/comlink.mjs\nvar proxyMarker = Symbol(\"Comlink.proxy\");\nvar createEndpoint = Symbol(\"Comlink.endpoint\");\nvar releaseProxy = Symbol(\"Comlink.releaseProxy\");\nvar throwMarker = Symbol(\"Comlink.thrown\");\nvar isObject = (val) => typeof val === \"object\" && val !== null || typeof val === \"function\";\nvar proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n }\n};\nvar throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack\n }\n };\n } else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n }\n};\nvar transferHandlers = /* @__PURE__ */ new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler]\n]);\nfunction expose(obj, ep = self) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj2, prop) => obj2[prop], obj);\n const rawValue = path.reduce((obj2, prop) => obj2[prop], obj);\n switch (type) {\n case 0:\n {\n returnValue = rawValue;\n }\n break;\n case 1:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case 2:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case 3:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case 4:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case 5:\n {\n returnValue = void 0;\n }\n break;\n }\n } catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue).catch((value) => {\n return { value, [throwMarker]: 0 };\n }).then((returnValue2) => {\n const [wireValue, transferables] = toWireValue(returnValue2);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === 5) {\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n }\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n return createProxy(ep, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction createProxy(ep, path = [], target = function() {\n}) {\n let isProxyReleased = false;\n const proxy2 = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n return requestResponseMessage(ep, {\n type: 5,\n path: path.map((p) => p.toString())\n }).then(() => {\n closeEndPoint(ep);\n isProxyReleased = true;\n });\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy2 };\n }\n const r = requestResponseMessage(ep, {\n type: 0,\n path: path.map((p) => p.toString())\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, {\n type: 1,\n path: [...path, prop].map((p) => p.toString()),\n value\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, {\n type: 4\n }).then(fromWireValue);\n }\n if (last === \"bind\") {\n return createProxy(ep, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: 2,\n path: path.map((p) => p.toString()),\n argumentList\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: 3,\n path: path.map((p) => p.toString()),\n argumentList\n }, transferables).then(fromWireValue);\n }\n });\n return proxy2;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nvar transferCache = /* @__PURE__ */ new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = self, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context)\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: 3,\n name,\n value: serializedValue\n },\n transferables\n ];\n }\n }\n return [\n {\n type: 0,\n value\n },\n transferCache.get(value) || []\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case 3:\n return transferHandlers.get(value.name).deserialize(value.value);\n case 0:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n ep.addEventListener(\"message\", function l(ev) {\n if (!ev.data || !ev.data.id || ev.data.id !== id) {\n return;\n }\n ep.removeEventListener(\"message\", l);\n resolve(ev.data);\n });\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4).fill(0).map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16)).join(\"-\");\n}\nexport {\n comlink_exports as Comlink\n};\n", "/**\n * This function reloads the provided iframe.\n *\n * @param preview The iframe page to reload.\n * @param hardRefreshTimeout The timeout after which the preview is reset if it hasn't responded to the reload event.\n */\nexport function reloadPreview(preview, hardRefreshTimeout = 200) {\n const { port1, port2 } = new MessageChannel();\n let resolve;\n const promise = new Promise((_resolve) => {\n resolve = _resolve;\n });\n const done = () => {\n resolve();\n port2.close();\n };\n const timeout = setTimeout(() => {\n const iframeSrc = preview.src;\n preview.src = iframeSrc;\n done();\n }, hardRefreshTimeout);\n port2.addEventListener('message', (event) => {\n const data = event.data;\n if (data == null || typeof data !== 'object') {\n return;\n }\n if (data.type === 'LOCALSERVICE_WINDOW_RELOADED') {\n clearTimeout(timeout);\n done();\n }\n });\n preview.contentWindow?.postMessage({\n type: 'LOCALSERVICE_RELOAD_WINDOW',\n callback: port1,\n }, '*', [port1]);\n return promise;\n}\n", "import { PreviewMessageType } from '../preview-message-types.js';\nconst PREVIEW_MESSAGE_TYPES = [\n PreviewMessageType.ConsoleError,\n PreviewMessageType.UncaughtException,\n PreviewMessageType.UnhandledRejection,\n];\nexport function isPreviewMessage(data) {\n if (data == null || typeof data !== 'object') {\n return false;\n }\n if (!('type' in data) || !PREVIEW_MESSAGE_TYPES.includes(data.type)) {\n return false;\n }\n return true;\n}\n", "export { reloadPreview } from './utils/reload-preview.js';\nexport { PreviewMessageType } from './preview-message-types.js';\nexport { isPreviewMessage } from './utils/is-preview-message.js';\n", "/**\n * @internal\n */\nexport function nullPrototype(source) {\n const prototype = Object.create(null);\n if (!source) {\n return prototype;\n }\n return Object.assign(prototype, source);\n}\n", "import { nullPrototype } from './null-prototype.js';\nconst binaryDecoder = new TextDecoder('latin1');\n/**\n * @internal\n */\nexport function toInternalFileSystemTree(tree) {\n const newTree = { d: {} };\n for (const name of Object.keys(tree)) {\n const entry = tree[name];\n if ('file' in entry) {\n if ('symlink' in entry.file) {\n newTree.d[name] = { f: { l: entry.file.symlink } };\n continue;\n }\n const contents = entry.file.contents;\n const stringContents = typeof contents === 'string' ? contents : binaryDecoder.decode(contents);\n const binary = typeof contents === 'string' ? {} : { b: true };\n newTree.d[name] = { f: { c: stringContents, ...binary } };\n continue;\n }\n const newEntry = toInternalFileSystemTree(entry.directory);\n newTree.d[name] = newEntry;\n }\n return newTree;\n}\n/**\n * @internal\n */\nexport function toExternalFileSystemTree(tree) {\n const newTree = nullPrototype();\n if ('f' in tree) {\n throw new Error('It is not possible to export a single file in the JSON format.');\n }\n if ('d' in tree) {\n for (const name of Object.keys(tree.d)) {\n const entry = tree.d[name];\n if ('d' in entry) {\n newTree[name] = nullPrototype({\n directory: toExternalFileSystemTree(entry),\n });\n }\n else if ('f' in entry) {\n if ('c' in entry.f) {\n newTree[name] = nullPrototype({\n file: nullPrototype({\n contents: entry.f.b ? fromBinaryString(entry.f.c) : entry.f.c,\n }),\n });\n }\n else if ('l' in entry.f) {\n newTree[name] = nullPrototype({\n file: nullPrototype({\n symlink: entry.f.l,\n }),\n });\n }\n }\n }\n }\n return newTree;\n}\nfunction fromBinaryString(s) {\n const encoded = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++) {\n encoded[i] = s[i].charCodeAt(0);\n }\n return encoded;\n}\n", "/**\n * The WebContainer Public API allows you build custom applications on top of an in-browser Node.js runtime.\n *\n * Its main entrypoint is the {@link WebContainer} class.\n *\n * @packageDocumentation\n */\nimport { authState, assertAuthTokens } from './internal/auth-state.js';\nimport { PreviewMessageType } from './preview-message-types.js';\nimport { Comlink } from './vendor/index.js';\nimport { auth as authImpl } from './internal/auth-state.js';\nimport { addAccessTokenChangedListener } from './internal/tokens.js';\nimport { iframeSettings } from './internal/iframe-url.js';\nimport { isPreviewMessage } from './utils.js';\nimport { toExternalFileSystemTree, toInternalFileSystemTree } from './utils/file-system.js';\nexport const auth = authImpl;\nexport { PreviewMessageType };\nexport * from './utils.js';\nlet bootPromise = null;\nlet cachedServerPromise = null;\nlet cachedBootOptions = {};\nconst decoder = new TextDecoder();\nconst encoder = new TextEncoder();\n/**\n * The main export of this library. An instance of `WebContainer` represents a runtime\n * ready to be used.\n */\nexport class WebContainer {\n _instance;\n _runtimeInfo;\n /**\n * Gives access to the underlying file system.\n */\n fs;\n /** @internal */\n static _instance = null;\n /** @internal */\n static _teardownPromise = null;\n _tornDown = false;\n _unsubscribeFromTokenChangedListener = () => { };\n /** @internal */\n constructor(\n /** @internal */\n _instance, fs, previewScript, \n /** @internal */\n _runtimeInfo) {\n this._instance = _instance;\n this._runtimeInfo = _runtimeInfo;\n this.fs = new FileSystemAPIClient(fs);\n // forward the credentials to webcontainer if needed\n if (authState.initialized) {\n this._unsubscribeFromTokenChangedListener = addAccessTokenChangedListener((accessToken) => {\n this._instance.setCredentials({ accessToken, editorOrigin: authState.editorOrigin });\n });\n (async () => {\n await authState.authComplete.promise;\n if (this._tornDown) {\n return;\n }\n assertAuthTokens(authState.tokens);\n await this._instance.setCredentials({\n accessToken: authState.tokens.access,\n editorOrigin: authState.editorOrigin,\n });\n })().catch((error) => {\n // print the error as this is likely a bug in webcontainer\n console.error(error);\n });\n }\n }\n async spawn(command, optionsOrArgs, options) {\n let args = [];\n if (Array.isArray(optionsOrArgs)) {\n args = optionsOrArgs;\n }\n else {\n options = optionsOrArgs;\n }\n let output = undefined;\n let outputStream = new ReadableStream();\n if (options?.output !== false) {\n const result = streamWithPush();\n output = result.push;\n outputStream = result.stream;\n }\n let stdout = undefined;\n let stdoutStream;\n let stderr = undefined;\n let stderrStream;\n const wrappedOutput = proxyListener(binaryListener(output));\n const wrappedStdout = proxyListener(binaryListener(stdout));\n const wrappedStderr = proxyListener(binaryListener(stderr));\n const process = await this._instance.run({\n command,\n args,\n cwd: options?.cwd,\n env: options?.env,\n terminal: options?.terminal,\n }, wrappedStdout, wrappedStderr, wrappedOutput);\n return new WebContainerProcessImpl(process, outputStream, stdoutStream, stderrStream);\n }\n async export(path, options) {\n const serializeOptions = {\n format: options?.format ?? 'json',\n includes: options?.includes,\n excludes: options?.excludes,\n external: true,\n };\n const result = await this._instance.serialize(path, serializeOptions);\n if (serializeOptions.format === 'json') {\n const data = JSON.parse(decoder.decode(result));\n return toExternalFileSystemTree(data);\n }\n return result;\n }\n on(event, listener) {\n if (event === 'preview-message') {\n const originalListener = listener;\n listener = ((message) => {\n if (isPreviewMessage(message)) {\n originalListener(message);\n }\n });\n }\n const { listener: wrapped, subscribe } = syncSubscription(listener);\n return subscribe(this._instance.on(event, Comlink.proxy(wrapped)));\n }\n /**\n * Mounts a tree of files into the filesystem. This can be specified as a tree object ({@link FileSystemTree})\n * or as a binary snapshot generated by [`@webcontainer/snapshot`](https://www.npmjs.com/package/@webcontainer/snapshot).\n *\n * @param snapshotOrTree - A tree of files, or a binary snapshot. Note that binary payloads will be transferred.\n * @param options.mountPoint - Specifies a nested path where the tree should be mounted.\n */\n mount(snapshotOrTree, options) {\n const payload = snapshotOrTree instanceof Uint8Array\n ? snapshotOrTree\n : snapshotOrTree instanceof ArrayBuffer\n ? new Uint8Array(snapshotOrTree)\n : encoder.encode(JSON.stringify(toInternalFileSystemTree(snapshotOrTree)));\n return this._instance.loadFiles(Comlink.transfer(payload, [payload.buffer]), {\n mountPoints: options?.mountPoint,\n });\n }\n /**\n * Set a custom script to be injected into all previews. When this function is called, every\n * future page reload will contain the provided script tag on all HTML responses.\n *\n * Note:\n *\n * When this function resolves, every preview reloaded _after_ will have the new script.\n * Existing preview have to be explicitely reloaded.\n *\n * To reload a preview you can use `reloadPreview`.\n *\n * @param scriptSrc Source for the script tag.\n * @param options Options to define which type of script this is.\n */\n setPreviewScript(scriptSrc, options) {\n return this._instance.setPreviewScript(scriptSrc, options);\n }\n /**\n * The default value of the `PATH` environment variable for processes started through {@link spawn}.\n */\n get path() {\n return this._runtimeInfo.path;\n }\n /**\n * The full path to the working directory (see {@link FileSystemAPI}).\n */\n get workdir() {\n return this._runtimeInfo.cwd;\n }\n /**\n * Destroys the WebContainer instance, turning it unusable, and releases its resources. After this,\n * a new WebContainer instance can be obtained by calling {@link WebContainer.boot | `boot`}.\n *\n * All entities derived from this instance (e.g. processes, the file system, etc.) also become unusable\n * after calling this method.\n */\n teardown() {\n if (this._tornDown) {\n throw new Error('WebContainer already torn down');\n }\n this._tornDown = true;\n this._unsubscribeFromTokenChangedListener();\n const teardownFn = async () => {\n try {\n await this.fs._teardown();\n await this._instance.teardown();\n }\n finally {\n this._instance[Comlink.releaseProxy]();\n if (WebContainer._instance === this) {\n WebContainer._instance = null;\n }\n }\n };\n WebContainer._teardownPromise = teardownFn();\n }\n /**\n * Boots a WebContainer. Only a single instance of WebContainer can be booted concurrently\n * (see {@link WebContainer.teardown | `teardown`}).\n *\n * Booting WebContainer is an expensive operation.\n */\n static async boot(options = {}) {\n await this._teardownPromise;\n WebContainer._teardownPromise = null;\n const { workdirName } = options;\n if (window.crossOriginIsolated && options.coep === 'none') {\n console.warn(`A Cross-Origin-Embedder-Policy header is required in cross origin isolated environments.\\nSet the 'coep' option to 'require-corp'.`);\n }\n if (workdirName?.includes('/') || workdirName === '..' || workdirName === '.') {\n throw new Error('workdirName should be a valid folder name');\n }\n // signal that boot was called to auth module as calling auth.init after boot is likely incorrect\n authState.bootCalled = true;\n // try to \"acquire the lock\", i.e. wait for any ongoing boot request to finish\n while (bootPromise) {\n await bootPromise;\n }\n if (WebContainer._instance) {\n throw new Error('Only a single WebContainer instance can be booted');\n }\n const instancePromise = unsynchronizedBoot(options);\n // the \"lock\" is a promise for the ongoing boot that never fails\n bootPromise = instancePromise.catch(() => { });\n try {\n const instance = await instancePromise;\n WebContainer._instance = instance;\n return instance;\n }\n finally {\n // release the \"lock\"\n bootPromise = null;\n }\n }\n}\n/**\n * Configure an API key to be used for this instance of WebContainer.\n *\n * @param key WebContainer API key.\n */\nexport function configureAPIKey(key) {\n if (authState.bootCalled) {\n throw new Error('`configureAPIKey` should always be called before `WebContainer.boot`');\n }\n iframeSettings.setQueryParam('client_id', key);\n}\nconst DIR_ENTRY_TYPE_FILE = 1;\nconst DIR_ENTRY_TYPE_DIR = 2;\n/**\n * @internal\n */\nclass DirEntImpl {\n name;\n _type;\n constructor(name, _type) {\n this.name = name;\n this._type = _type;\n }\n isFile() {\n return this._type === DIR_ENTRY_TYPE_FILE;\n }\n isDirectory() {\n return this._type === DIR_ENTRY_TYPE_DIR;\n }\n}\nclass FSWatcher {\n _apiClient;\n _path;\n _options;\n _listener;\n _wrappedListener;\n _watcher;\n _closed = false;\n constructor(_apiClient, _path, _options, _listener) {\n this._apiClient = _apiClient;\n this._path = _path;\n this._options = _options;\n this._listener = _listener;\n this._apiClient._watchers.add(this);\n this._wrappedListener = (event, filename) => {\n if (this._listener && !this._closed) {\n this._listener(event, filename);\n }\n };\n this._apiClient._fs\n .watch(this._path, this._options, proxyListener(this._wrappedListener))\n .then((_watcher) => {\n this._watcher = _watcher;\n if (this._closed) {\n return this._teardown();\n }\n return undefined;\n })\n .catch(console.error);\n }\n async close() {\n if (!this._closed) {\n this._closed = true;\n this._apiClient._watchers.delete(this);\n await this._teardown();\n }\n }\n /**\n * @internal\n */\n async _teardown() {\n await this._watcher?.close().finally(() => {\n this._watcher?.[Comlink.releaseProxy]();\n });\n }\n}\n/**\n * @internal\n */\nclass WebContainerProcessImpl {\n output;\n input;\n exit;\n _process;\n stdout;\n stderr;\n constructor(process, output, stdout, stderr) {\n this.output = output;\n this._process = process;\n this.input = new WritableStream({\n write: (data) => {\n // this promise is not supposed to fail anyway\n this._getProcess()\n ?.write(data)\n .catch(() => { });\n },\n });\n this.exit = this._onExit();\n this.stdout = stdout;\n this.stderr = stderr;\n }\n kill() {\n this._process?.kill();\n }\n resize(dimensions) {\n this._getProcess()?.resize(dimensions);\n }\n async _onExit() {\n try {\n return await this._process.onExit;\n }\n finally {\n this._process?.[Comlink.releaseProxy]();\n this._process = null;\n }\n }\n _getProcess() {\n if (this._process == null) {\n console.warn('This process already exited');\n }\n return this._process;\n }\n}\n/**\n * @internal\n */\nclass FileSystemAPIClient {\n _fs;\n _watchers = new Set([]);\n constructor(fs) {\n this._fs = fs;\n }\n rm(...args) {\n return this._fs.rm(...args);\n }\n async readFile(path, encoding) {\n return await this._fs.readFile(path, encoding);\n }\n async rename(oldPath, newPath) {\n return await this._fs.rename(oldPath, newPath);\n }\n async writeFile(path, data, options) {\n if (data instanceof Uint8Array) {\n const buffer = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);\n data = Comlink.transfer(new Uint8Array(buffer), [buffer]);\n }\n await this._fs.writeFile(path, data, options);\n }\n async readdir(path, options) {\n const result = await this._fs.readdir(path, options);\n if (isStringArray(result)) {\n return result;\n }\n if (isTypedArrayCollection(result)) {\n return result;\n }\n const entries = result.map((entry) => new DirEntImpl(entry.name, entry['Symbol(type)']));\n return entries;\n }\n async mkdir(path, options) {\n return await this._fs.mkdir(path, options);\n }\n watch(path, options, listener) {\n if (typeof options === 'function') {\n listener = options;\n options = null;\n }\n return new FSWatcher(this, path, options, listener);\n }\n /**\n * @internal\n */\n async _teardown() {\n this._fs[Comlink.releaseProxy]();\n await Promise.all([...this._watchers].map((watcher) => watcher.close()));\n }\n}\nasync function unsynchronizedBoot(options) {\n const { serverPromise } = serverFactory(options);\n const server = await serverPromise;\n const instance = await server.build({\n host: window.location.host,\n version: \"1.6.1\",\n workdirName: options.workdirName,\n forwardPreviewErrors: options.forwardPreviewErrors,\n });\n const [fs, previewScript, runtimeInfo] = await Promise.all([\n instance.fs(),\n instance.previewScript(),\n instance.runtimeInfo(),\n ]);\n return new WebContainer(instance, fs, previewScript, runtimeInfo);\n}\nfunction binaryListener(listener) {\n if (listener == null) {\n return undefined;\n }\n return (data) => {\n if (data instanceof Uint8Array) {\n listener(decoder.decode(data));\n }\n else if (data == null) {\n listener(null);\n }\n };\n}\nfunction proxyListener(listener) {\n if (listener == null) {\n return undefined;\n }\n return Comlink.proxy(listener);\n}\nfunction serverFactory(options) {\n if (cachedServerPromise != null) {\n if (options.coep !== cachedBootOptions.coep) {\n console.warn(`Attempting to boot WebContainer with 'coep: ${options.coep}'`);\n console.warn(`First boot had 'coep: ${cachedBootOptions.coep}', new settings will not take effect!`);\n }\n return { serverPromise: cachedServerPromise };\n }\n if (options.coep) {\n iframeSettings.setQueryParam('coep', options.coep);\n }\n if (options.experimentalNode) {\n iframeSettings.setQueryParam('experimental_node', '1');\n }\n const iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.setAttribute('allow', 'cross-origin-isolated');\n const url = iframeSettings.url;\n iframe.src = url.toString();\n const { origin } = url;\n cachedBootOptions = { ...options };\n cachedServerPromise = new Promise((resolve) => {\n const onMessage = (event) => {\n if (event.origin !== origin) {\n return;\n }\n const { data } = event;\n if (data.type === 'init') {\n resolve(Comlink.wrap(event.ports[0]));\n return;\n }\n if (data.type === 'warning') {\n console[data.level].call(console, data.message);\n return;\n }\n };\n window.addEventListener('message', onMessage);\n });\n document.body.insertBefore(iframe, null);\n return { serverPromise: cachedServerPromise };\n}\nfunction isStringArray(list) {\n return typeof list[0] === 'string';\n}\nfunction isTypedArrayCollection(list) {\n return list[0] instanceof Uint8Array;\n}\nfunction streamWithPush() {\n let controller = null;\n const stream = new ReadableStream({\n start(controller_) {\n controller = controller_;\n },\n });\n const push = (item) => {\n if (item != null) {\n controller?.enqueue(item);\n }\n else {\n controller?.close();\n controller = null;\n }\n };\n return { stream, push };\n}\nfunction syncSubscription(listener) {\n let stopped = false;\n let unsubscribe = () => { };\n const wrapped = ((...args) => {\n if (stopped) {\n return;\n }\n listener(...args);\n });\n return {\n subscribe(promise) {\n promise.then((unsubscribe_) => {\n unsubscribe = unsubscribe_;\n if (stopped) {\n unsubscribe();\n }\n });\n return () => {\n stopped = true;\n unsubscribe();\n };\n },\n listener: wrapped,\n };\n}\n", "import * as webcontainer from '@tempfix/webcontainer__api';\nimport type { IExecutionEnvironment, IFileEntry, IFileWatcher, IProcessHandle } from '../interfaces/IExecutionEnvironment.js';\n\n/**\n * WebContainer-based execution environment.\n * Runs Node.js and shell commands in the browser using WebContainer API.\n */\nexport class WebContainerEnvironment implements IExecutionEnvironment {\n // Static shared state - WebContainer only allows ONE boot per page\n private static sharedContainer: webcontainer.WebContainer | null = null;\n private static bootPromise: Promise | null = null;\n\n private _ready: boolean = false;\n\n public readonly type = 'webcontainer' as const;\n\n public get ready(): boolean {\n return this._ready;\n }\n\n private get container(): webcontainer.WebContainer | null {\n return WebContainerEnvironment.sharedContainer;\n }\n\n // ============ Lifecycle ============\n\n public async init(): Promise {\n // Already initialized (this instance)\n if (this._ready && WebContainerEnvironment.sharedContainer) {\n return;\n }\n\n // If boot is in progress (by any instance), wait for it\n if (WebContainerEnvironment.bootPromise) {\n await WebContainerEnvironment.bootPromise;\n this._ready = true;\n return;\n }\n\n // If already booted by another instance, just mark ready\n if (WebContainerEnvironment.sharedContainer) {\n this._ready = true;\n return;\n }\n\n // Check if SharedArrayBuffer is available (required for WebContainer)\n if (typeof SharedArrayBuffer === 'undefined') {\n throw new Error(\n 'WebContainer requires SharedArrayBuffer which is not available. ' +\n 'Ensure your server sends these headers:\\n' +\n ' Cross-Origin-Opener-Policy: same-origin\\n' +\n ' Cross-Origin-Embedder-Policy: require-corp'\n );\n }\n\n // Start boot process\n WebContainerEnvironment.bootPromise = webcontainer.WebContainer.boot();\n\n try {\n WebContainerEnvironment.sharedContainer = await WebContainerEnvironment.bootPromise;\n this._ready = true;\n } catch (error) {\n // Reset promise on failure so retry is possible\n WebContainerEnvironment.bootPromise = null;\n throw error;\n }\n }\n\n public async destroy(): Promise {\n if (WebContainerEnvironment.sharedContainer) {\n WebContainerEnvironment.sharedContainer.teardown();\n WebContainerEnvironment.sharedContainer = null;\n WebContainerEnvironment.bootPromise = null;\n this._ready = false;\n }\n }\n\n // ============ Filesystem Operations ============\n\n public async readFile(path: string): Promise {\n this.ensureReady();\n return await this.container!.fs.readFile(path, 'utf-8');\n }\n\n public async writeFile(path: string, contents: string): Promise {\n this.ensureReady();\n await this.container!.fs.writeFile(path, contents, 'utf-8');\n }\n\n public async readDir(path: string): Promise {\n this.ensureReady();\n const entries = await this.container!.fs.readdir(path, { withFileTypes: true });\n\n return entries.map((entry) => ({\n type: entry.isDirectory() ? 'directory' as const : 'file' as const,\n name: entry.name,\n path: path === '/' ? `/${entry.name}` : `${path}/${entry.name}`,\n }));\n }\n\n public async mkdir(path: string): Promise {\n this.ensureReady();\n await this.container!.fs.mkdir(path, { recursive: true });\n }\n\n public async rm(path: string, options?: { recursive?: boolean }): Promise {\n this.ensureReady();\n await this.container!.fs.rm(path, { recursive: options?.recursive ?? false });\n }\n\n public async exists(path: string): Promise {\n this.ensureReady();\n try {\n await this.container!.fs.readFile(path);\n return true;\n } catch {\n try {\n await this.container!.fs.readdir(path);\n return true;\n } catch {\n return false;\n }\n }\n }\n\n public watch(\n path: string,\n callback: (event: 'rename' | 'change', filename: string | null) => void,\n options?: { recursive?: boolean }\n ): IFileWatcher {\n this.ensureReady();\n const watcher = this.container!.fs.watch(\n path,\n { recursive: options?.recursive ?? false },\n callback\n );\n return {\n stop: () => watcher.close(),\n };\n }\n\n // ============ Process Execution ============\n\n public async spawn(command: string, args: string[] = []): Promise {\n this.ensureReady();\n\n const process = await this.container!.spawn(command, args);\n\n return {\n output: process.output as unknown as ReadableStream,\n input: process.input as unknown as { getWriter(): WritableStreamDefaultWriter },\n exit: process.exit,\n kill: () => process.kill(),\n };\n }\n\n // ============ WebContainer-specific methods ============\n\n /**\n * Mount files into the virtual filesystem.\n * This is a WebContainer-specific operation.\n * @param files - File tree structure to mount\n */\n public async mount(files: webcontainer.FileSystemTree): Promise {\n this.ensureReady();\n await this.container!.mount(files);\n }\n\n /**\n * Get the underlying WebContainer instance.\n * Use sparingly - prefer the interface methods.\n */\n public getContainer(): webcontainer.WebContainer {\n this.ensureReady();\n return this.container!;\n }\n\n // ============ Private Helpers ============\n\n private ensureReady(): void {\n if (!this._ready || !this.container) {\n throw new Error('WebContainerEnvironment not initialized. Call init() first.');\n }\n }\n}\n", "export * from './WebContainerEnvironment.js';\n", "// Runtime Interfaces\nexport * from './interfaces/index.js';\n\n// Environment Implementations\nexport * from './environments/index.js';\n", "export * from './dees-shopping-productcard.js';\n", "import type { Terminal, ITerminalOptions } from 'xterm';\nimport type { FitAddon } from 'xterm-addon-fit';\nimport type { ITerminalTab, ICreateTerminalTabOptions, TTerminalTabType } from './interfaces.js';\nimport type { IXtermBundle, IXtermFitAddonBundle } from '../../../services/index.js';\n\n/**\n * Manages terminal tabs lifecycle and state\n */\nexport class TerminalTabManager {\n private tabs: Map = new Map();\n private tabCounter: number = 0;\n private xtermBundle: IXtermBundle | null = null;\n private xtermFitAddonBundle: IXtermFitAddonBundle | null = null;\n\n /**\n * Initialize the manager with loaded xterm modules.\n * Must be called before creating tabs.\n */\n public setXtermModules(xtermBundle: IXtermBundle, fitAddonBundle: IXtermFitAddonBundle): void {\n this.xtermBundle = xtermBundle;\n this.xtermFitAddonBundle = fitAddonBundle;\n }\n\n /**\n * Generate unique tab ID\n */\n private generateTabId(): string {\n this.tabCounter++;\n return `terminal-${this.tabCounter}-${Date.now()}`;\n }\n\n /**\n * Get default label for tab type\n */\n private getDefaultLabel(type: TTerminalTabType, metadata?: ITerminalTab['metadata']): string {\n switch (type) {\n case 'shell':\n return 'bash';\n case 'script':\n return metadata?.scriptName || 'script';\n case 'package-update':\n return metadata?.packageName ? `update ${metadata.packageName}` : 'update';\n case 'custom':\n return metadata?.command || 'process';\n default:\n return 'terminal';\n }\n }\n\n /**\n * Get default icon for tab type\n */\n private getDefaultIcon(type: TTerminalTabType): string {\n switch (type) {\n case 'shell':\n return 'lucide:terminal';\n case 'script':\n return 'lucide:play';\n case 'package-update':\n return 'lucide:packageCheck';\n case 'custom':\n return 'lucide:code';\n default:\n return 'lucide:terminal';\n }\n }\n\n /**\n * Get terminal theme configuration\n */\n private getTerminalTheme(isBright: boolean): any {\n if (isBright) {\n return {\n background: '#ffffff',\n foreground: '#333333',\n cursor: '#333333',\n cursorAccent: '#ffffff',\n selection: 'rgba(0, 0, 0, 0.2)',\n black: '#000000',\n red: '#cd3131',\n green: '#00bc00',\n yellow: '#949800',\n blue: '#0451a5',\n magenta: '#bc05bc',\n cyan: '#0598bc',\n white: '#555555',\n brightBlack: '#666666',\n brightRed: '#cd3131',\n brightGreen: '#14ce14',\n brightYellow: '#b5ba00',\n brightBlue: '#0451a5',\n brightMagenta: '#bc05bc',\n brightCyan: '#0598bc',\n brightWhite: '#a5a5a5',\n };\n } else {\n return {\n background: '#000000',\n foreground: '#ffffff',\n cursor: '#ffffff',\n cursorAccent: '#000000',\n selection: 'rgba(255, 255, 255, 0.2)',\n };\n }\n }\n\n /**\n * Create a new tab instance\n */\n createTab(options: ICreateTerminalTabOptions, isBright: boolean): ITerminalTab {\n if (!this.xtermBundle || !this.xtermFitAddonBundle) {\n throw new Error('TerminalTabManager: xterm modules not initialized. Call setXtermModules() first.');\n }\n\n const id = this.generateTabId();\n const type = options.type;\n\n // Create xterm.js Terminal instance using CDN-loaded module\n const terminal = new this.xtermBundle.Terminal({\n convertEol: true,\n cursorBlink: true,\n theme: this.getTerminalTheme(isBright),\n fontFamily: 'Menlo, Monaco, \"Courier New\", monospace',\n fontSize: 13,\n lineHeight: 1.2,\n });\n\n // Create FitAddon using CDN-loaded module\n const fitAddon = new this.xtermFitAddonBundle.FitAddon();\n terminal.loadAddon(fitAddon);\n\n const tab: ITerminalTab = {\n id,\n label: options.label || this.getDefaultLabel(type, options.metadata),\n iconName: options.iconName || this.getDefaultIcon(type),\n type,\n closeable: options.closeable ?? (type !== 'shell'),\n terminal,\n fitAddon,\n process: null,\n inputWriter: null,\n exited: false,\n exitCode: null,\n createdAt: Date.now(),\n metadata: options.metadata,\n };\n\n this.tabs.set(id, tab);\n return tab;\n }\n\n /**\n * Get tab by ID\n */\n getTab(id: string): ITerminalTab | undefined {\n return this.tabs.get(id);\n }\n\n /**\n * Get all tabs as array (ordered by creation time)\n */\n getAllTabs(): ITerminalTab[] {\n return Array.from(this.tabs.values()).sort((a, b) => a.createdAt - b.createdAt);\n }\n\n /**\n * Get the number of tabs\n */\n getTabCount(): number {\n return this.tabs.size;\n }\n\n /**\n * Check if tab exists\n */\n hasTab(id: string): boolean {\n return this.tabs.has(id);\n }\n\n /**\n * Close and cleanup a tab\n */\n closeTab(id: string): boolean {\n const tab = this.tabs.get(id);\n if (!tab) return false;\n\n // Kill process if still running\n if (tab.process && !tab.exited) {\n try {\n tab.process.kill();\n } catch (e) {\n console.warn('Failed to kill process:', e);\n }\n }\n\n // Dispose terminal\n try {\n tab.terminal.dispose();\n } catch (e) {\n console.warn('Failed to dispose terminal:', e);\n }\n\n this.tabs.delete(id);\n return true;\n }\n\n /**\n * Rename a tab\n */\n renameTab(id: string, newLabel: string): boolean {\n const tab = this.tabs.get(id);\n if (!tab) return false;\n\n tab.label = newLabel;\n return true;\n }\n\n /**\n * Update tab process state to exited\n */\n markTabExited(id: string, exitCode: number): void {\n const tab = this.tabs.get(id);\n if (!tab) return;\n\n tab.exited = true;\n tab.exitCode = exitCode;\n }\n\n /**\n * Set process for a tab\n */\n setTabProcess(id: string, process: ITerminalTab['process'], inputWriter: ITerminalTab['inputWriter']): void {\n const tab = this.tabs.get(id);\n if (!tab) return;\n\n tab.process = process;\n tab.inputWriter = inputWriter;\n }\n\n /**\n * Update theme for all terminals\n */\n updateAllThemes(isBright: boolean): void {\n const theme = this.getTerminalTheme(isBright);\n for (const tab of this.tabs.values()) {\n tab.terminal.options.theme = theme;\n }\n }\n\n /**\n * Dispose all tabs and cleanup\n */\n disposeAll(): void {\n for (const [id] of this.tabs) {\n this.closeTab(id);\n }\n this.tabs.clear();\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\n\nimport type { Terminal } from 'xterm';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment } from '../../00group-runtime/index.js';\nimport { WebContainerEnvironment } from '../../00group-runtime/index.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport type { DeesActionbar } from '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport { TerminalTabManager } from './terminal-tab-manager.js';\nimport type {\n ITerminalTab,\n ICreateTerminalTabOptions,\n TTerminalTabType,\n} from './interfaces.js';\nimport { DeesServiceLibLoader } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-terminal': DeesWorkspaceTerminal;\n }\n}\n\n@customElement('dees-workspace-terminal')\nexport class DeesWorkspaceTerminal extends DeesElement {\n public static demo = () => {\n const env = new WebContainerEnvironment();\n return html``;\n };\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n private resizeObserver: ResizeObserver;\n private tabManager: TerminalTabManager;\n\n /**\n * The execution environment (required).\n * Use WebContainerEnvironment for browser-based execution.\n */\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n @property()\n accessor setupCommand = '';\n\n /**\n * Environment variables to set in the shell\n */\n @property()\n accessor environmentVariables: { [key: string]: string } = {};\n\n /**\n * Width of the tab bar in pixels\n */\n @property({ type: Number })\n accessor tabBarWidth: number = 160;\n\n /**\n * Whether to show the tab bar\n */\n @property({ type: Boolean })\n accessor showTabBar: boolean = true;\n\n // Tab state\n @state()\n accessor tabs: ITerminalTab[] = [];\n\n @state()\n accessor activeTabId: string | null = null;\n\n // Theme subscription for dynamic theme updates\n private terminalThemeSubscription: any = null;\n private isBright: boolean = false;\n\n // Actionbar reference for terminal-context notifications\n private terminalActionbar: DeesActionbar | null = null;\n\n /**\n * Promise that resolves when the environment is ready.\n * @deprecated Use executionEnvironment directly\n */\n private environmentDeferred = new domtools.plugins.smartpromise.Deferred();\n public environmentPromise = this.environmentDeferred.promise;\n\n constructor() {\n super();\n this.tabManager = new TerminalTabManager();\n this.resizeObserver = new ResizeObserver(() => {\n this.handleResize();\n });\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n position: absolute;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .terminal-container {\n display: flex;\n flex-direction: row;\n width: 100%;\n height: 100%;\n }\n\n .terminal-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n }\n\n #active-terminal-container {\n flex: 1;\n position: relative;\n min-height: 0;\n margin: 20px;\n }\n\n .terminal-content dees-actionbar {\n flex-shrink: 0;\n }\n\n /* Tab bar on the right side */\n .tab-bar {\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 7%)')};\n border-left: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .tab-bar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 10px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 55%)')};\n }\n\n .tab-bar-title {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .tab-bar-actions {\n display: flex;\n gap: 2px;\n }\n\n .tab-action {\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .tab-action:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 15%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n }\n\n .tab-list {\n flex: 1;\n overflow-y: auto;\n padding: 4px;\n }\n\n .terminal-tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 10px;\n margin-bottom: 2px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .terminal-tab:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 12%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 25%)', 'hsl(0 0% 80%)')};\n }\n\n .terminal-tab.active {\n background: ${cssManager.bdTheme('hsl(210 100% 95%)', 'hsl(210 30% 15%)')};\n color: ${cssManager.bdTheme('hsl(210 100% 40%)', 'hsl(210 100% 70%)')};\n }\n\n .terminal-tab.exited {\n opacity: 0.7;\n }\n\n .tab-icon {\n flex-shrink: 0;\n }\n\n .tab-icon.running {\n color: ${cssManager.bdTheme('hsl(142 70% 40%)', 'hsl(142 70% 55%)')};\n }\n\n .tab-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .exit-badge {\n font-size: 10px;\n padding: 1px 5px;\n border-radius: 8px;\n font-weight: 600;\n flex-shrink: 0;\n }\n\n .exit-badge.success {\n background: ${cssManager.bdTheme('hsl(142 70% 90%)', 'hsl(142 30% 20%)')};\n color: ${cssManager.bdTheme('hsl(142 70% 35%)', 'hsl(142 70% 60%)')};\n }\n\n .exit-badge.error {\n background: ${cssManager.bdTheme('hsl(0 70% 93%)', 'hsl(0 30% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 70% 45%)', 'hsl(0 70% 60%)')};\n }\n\n .tab-close {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n opacity: 0;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .terminal-tab:hover .tab-close {\n opacity: 0.6;\n }\n\n .tab-close:hover {\n opacity: 1 !important;\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 25%)')};\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n font-size: 13px;\n gap: 8px;\n }\n\n /* xterm.js styles */\n .xterm {\n font-feature-settings: 'liga' 0;\n position: relative;\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n }\n\n .xterm.focus,\n .xterm:focus {\n outline: none;\n }\n\n .xterm .xterm-helpers {\n position: absolute;\n top: 0;\n z-index: 5;\n }\n\n .xterm .xterm-helper-textarea {\n padding: 0;\n border: 0;\n margin: 0;\n position: absolute;\n opacity: 0;\n left: -9999em;\n top: 0;\n width: 0;\n height: 0;\n z-index: -5;\n white-space: nowrap;\n overflow: hidden;\n resize: none;\n }\n\n .xterm .composition-view {\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n color: ${cssManager.bdTheme('#333333', '#ffffff')};\n display: none;\n position: absolute;\n white-space: nowrap;\n z-index: 1;\n }\n\n .xterm .composition-view.active {\n display: block;\n }\n\n .xterm .xterm-viewport {\n background-color: ${cssManager.bdTheme('#ffffff', '#000000')};\n overflow-y: scroll;\n cursor: default;\n position: absolute;\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n }\n\n .xterm .xterm-screen {\n position: relative;\n }\n\n .xterm .xterm-screen canvas {\n position: absolute;\n left: 0;\n top: 0;\n }\n\n .xterm .xterm-scroll-area {\n visibility: hidden;\n }\n\n .xterm-char-measure-element {\n display: inline-block;\n visibility: hidden;\n position: absolute;\n top: 0;\n left: -9999em;\n line-height: normal;\n }\n\n .xterm {\n cursor: text;\n }\n\n .xterm.enable-mouse-events {\n cursor: default;\n }\n\n .xterm.xterm-cursor-pointer {\n cursor: pointer;\n }\n\n .xterm.column-select.focus {\n cursor: crosshair;\n }\n\n .xterm .xterm-accessibility,\n .xterm .xterm-message {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 10;\n color: transparent;\n }\n\n .xterm .live-region {\n position: absolute;\n left: -9999px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n }\n\n .xterm-dim {\n opacity: 0.5;\n }\n\n .xterm-underline {\n text-decoration: underline;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const activeTab = this.activeTabId ? this.tabManager.getTab(this.activeTabId) : null;\n\n return html`\n
      \n \n
      \n ${activeTab ? html`\n
      \n ` : html`\n
      \n \n No terminal open\n
      \n `}\n \n
      \n\n \n ${this.showTabBar ? html`\n
      \n
      \n Terminals\n
      \n
      \n \n
      \n
      \n
      \n\n
      \n ${this.tabs.map(tab => html`\n this.switchToTab(tab.id)}\n >\n \n ${tab.label}\n ${tab.exited ? html`\n \n ${tab.exitCode}\n \n ` : ''}\n ${tab.closeable ? html`\n this.handleTabClose(e, tab.id)}>\n \n \n ` : ''}\n
      \n `)}\n
      \n
      \n ` : ''}\n \n `;\n }\n\n public async firstUpdated(): Promise {\n const domtoolsInstance = await this.domtoolsPromise;\n\n // Get current theme\n this.isBright = domtoolsInstance.themeManager.goBrightBoolean;\n\n // Subscribe to theme changes\n this.terminalThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe(\n (goBright: boolean) => {\n this.isBright = goBright;\n this.tabManager.updateAllThemes(goBright);\n }\n );\n\n // Load xterm from CDN\n const libLoader = DeesServiceLibLoader.getInstance();\n const [xtermBundle, fitAddonBundle] = await Promise.all([\n libLoader.loadXterm(),\n libLoader.loadXtermFitAddon(),\n ]);\n\n // Initialize tab manager with loaded modules\n this.tabManager.setXtermModules(xtermBundle, fitAddonBundle);\n\n // Create default shell tab\n await this.createShellTab();\n }\n\n async connectedCallback(): Promise {\n await super.connectedCallback();\n // ResizeObserver is set up in attachTerminalToContainer when the container exists\n }\n\n async disconnectedCallback(): Promise {\n // Unobserve the terminal container\n const container = this.shadowRoot?.getElementById('active-terminal-container');\n if (container) {\n this.resizeObserver.unobserve(container);\n }\n if (this.terminalThemeSubscription) {\n this.terminalThemeSubscription.unsubscribe();\n this.terminalThemeSubscription = null;\n }\n this.tabManager.disposeAll();\n await super.disconnectedCallback();\n }\n\n // ========== Tab Management ==========\n\n private async handleAddTab(): Promise {\n await this.createShellTab();\n }\n\n private handleTabClose(e: Event, tabId: string): void {\n e.stopPropagation();\n this.closeTab(tabId);\n }\n\n private switchToTab(tabId: string): void {\n if (tabId === this.activeTabId) return;\n\n const tab = this.tabManager.getTab(tabId);\n if (!tab) return;\n\n const previousTabId = this.activeTabId;\n\n // Detach current terminal from DOM\n if (this.activeTabId) {\n this.detachActiveTerminal();\n }\n\n // Update active tab\n this.activeTabId = tabId;\n this.tabs = this.tabManager.getAllTabs();\n\n // Wait for render then attach new terminal\n this.updateComplete.then(() => {\n this.attachTerminalToContainer(tab);\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-switched', {\n bubbles: true,\n composed: true,\n detail: { tabId, previousTabId },\n })\n );\n });\n }\n\n private detachActiveTerminal(): void {\n const container = this.shadowRoot?.getElementById('active-terminal-container');\n if (container) {\n container.innerHTML = '';\n }\n }\n\n private attachTerminalToContainer(tab: ITerminalTab): void {\n const container = this.shadowRoot?.getElementById('active-terminal-container');\n if (!container) return;\n\n // Observe container for resize (handles actionbar appearing/disappearing)\n // ResizeObserver.observe() is idempotent - safe to call multiple times\n this.resizeObserver.observe(container);\n\n // Clear container\n container.innerHTML = '';\n\n // Open terminal in container\n tab.terminal.open(container);\n tab.fitAddon.fit();\n tab.terminal.focus();\n }\n\n private handleResize(): void {\n if (this.activeTabId) {\n const tab = this.tabManager.getTab(this.activeTabId);\n if (tab) {\n tab.fitAddon.fit();\n }\n }\n }\n\n // ========== Process Management ==========\n\n private async spawnProcessForTab(\n tab: ITerminalTab,\n command: string,\n args: string[] = []\n ): Promise {\n if (!this.executionEnvironment) {\n tab.terminal.write('\\x1b[31m');\n tab.terminal.write('\u274C No execution environment available.\\r\\n');\n tab.terminal.write('\\x1b[0m');\n return;\n }\n\n try {\n // Initialize environment if needed\n if (!this.executionEnvironment.ready) {\n tab.terminal.write('Initializing environment...\\r\\n');\n await this.executionEnvironment.init();\n }\n\n // Spawn process\n const process = await this.executionEnvironment.spawn(command, args);\n\n // Set up output piping\n process.output.pipeTo(\n new WritableStream({\n write: (data) => {\n tab.terminal.write(data);\n },\n })\n );\n\n // Set up input for interactive processes\n const inputWriter = process.input.getWriter();\n tab.terminal.onData((data) => {\n inputWriter.write(data);\n });\n\n // Store process reference\n this.tabManager.setTabProcess(tab.id, process, inputWriter);\n this.tabs = this.tabManager.getAllTabs();\n\n // Handle process exit\n process.exit.then((exitCode) => {\n this.handleProcessExit(tab.id, exitCode);\n });\n } catch (error) {\n tab.terminal.write('\\x1b[31m');\n tab.terminal.write(`\u274C Failed to spawn process: ${error}\\r\\n`);\n tab.terminal.write('\\x1b[0m');\n console.error('Failed to spawn process:', error);\n }\n }\n\n private handleProcessExit(tabId: string, exitCode: number): void {\n const tab = this.tabManager.getTab(tabId);\n if (!tab) return;\n\n // Update tab state\n this.tabManager.markTabExited(tabId, exitCode);\n\n // Write exit message to terminal\n const message =\n exitCode === 0\n ? '\\r\\n\\x1b[32m[Process completed successfully]\\x1b[0m\\r\\n'\n : `\\r\\n\\x1b[31m[Process exited with code ${exitCode}]\\x1b[0m\\r\\n`;\n tab.terminal.write(message);\n\n // Update state to trigger re-render\n this.tabs = this.tabManager.getAllTabs();\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('process-complete', {\n bubbles: true,\n composed: true,\n detail: { tabId, exitCode },\n })\n );\n\n // Show actionbar to offer closing the tab (only if tab is closeable)\n if (tab.closeable) {\n this.showExitedTabActionbar(tabId, tab.label, exitCode);\n }\n }\n\n /**\n * Show actionbar offering to close an exited tab\n */\n private async showExitedTabActionbar(tabId: string, tabLabel: string, exitCode: number): Promise {\n const isSuccess = exitCode === 0;\n const result = await this.showActionbar({\n message: isSuccess\n ? `\"${tabLabel}\" completed. Close tab?`\n : `\"${tabLabel}\" exited (code ${exitCode}). Close tab?`,\n type: isSuccess ? 'info' : 'warning',\n icon: isSuccess ? 'lucide:checkCircle' : 'lucide:alertTriangle',\n actions: [\n { id: 'close', label: 'Close Tab', primary: true },\n { id: 'keep', label: 'Keep Open' },\n ],\n timeout: { duration: 10000, defaultActionId: 'close' },\n dismissible: true,\n });\n\n // Close tab if user clicked \"Close Tab\" or timeout triggered auto-close\n if (result.actionId === 'close') {\n this.closeTab(tabId);\n }\n }\n\n // ========== Public API ==========\n\n /**\n * Create a new shell tab\n */\n public async createShellTab(label?: string): Promise {\n const tab = this.tabManager.createTab(\n {\n type: 'shell',\n label: label || `bash ${this.tabManager.getTabCount() + 1}`,\n closeable: this.tabManager.getTabCount() > 0, // First tab not closeable\n },\n this.isBright\n );\n\n this.tabs = this.tabManager.getAllTabs();\n\n // Switch to new tab\n this.switchToTab(tab.id);\n\n // Wait for DOM update then spawn shell\n await this.updateComplete;\n await this.spawnProcessForTab(tab, 'jsh');\n\n // Run setup command if this is the first tab\n if (this.tabManager.getTabCount() === 1 && this.setupCommand) {\n await this.waitForPrompt(tab.terminal, '~/');\n if (tab.inputWriter) {\n tab.inputWriter.write(this.setupCommand);\n }\n }\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-created', {\n bubbles: true,\n composed: true,\n detail: { tabId: tab.id },\n })\n );\n\n return tab.id;\n }\n\n /**\n * Create a terminal tab for running a process\n */\n public async createProcessTab(options: ICreateTerminalTabOptions): Promise {\n const tab = this.tabManager.createTab(options, this.isBright);\n\n this.tabs = this.tabManager.getAllTabs();\n\n // Switch to new tab if requested (default: true)\n if (options.switchToTab !== false) {\n this.switchToTab(tab.id);\n }\n\n // Wait for DOM update\n await this.updateComplete;\n\n // Spawn process if command provided\n if (options.command) {\n await this.spawnProcessForTab(tab, options.command, options.args);\n }\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-created', {\n bubbles: true,\n composed: true,\n detail: { tabId: tab.id },\n })\n );\n\n return tab.id;\n }\n\n /**\n * Get the currently active tab\n */\n public getActiveTab(): ITerminalTab | null {\n if (!this.activeTabId) return null;\n return this.tabManager.getTab(this.activeTabId) || null;\n }\n\n /**\n * Get all tabs\n */\n public getTabs(): ITerminalTab[] {\n return this.tabManager.getAllTabs();\n }\n\n /**\n * Switch to a specific tab by ID\n */\n public selectTab(tabId: string): boolean {\n if (!this.tabManager.hasTab(tabId)) return false;\n this.switchToTab(tabId);\n return true;\n }\n\n /**\n * Close a tab by ID\n */\n public closeTab(tabId: string): boolean {\n const tab = this.tabManager.getTab(tabId);\n if (!tab || !tab.closeable) return false;\n\n // If closing active tab, switch to another\n if (tabId === this.activeTabId) {\n const allTabs = this.tabManager.getAllTabs();\n const currentIndex = allTabs.findIndex((t) => t.id === tabId);\n const nextTab = allTabs[currentIndex + 1] || allTabs[currentIndex - 1];\n\n if (nextTab) {\n this.switchToTab(nextTab.id);\n } else {\n this.activeTabId = null;\n this.detachActiveTerminal();\n }\n }\n\n // Close the tab\n this.tabManager.closeTab(tabId);\n this.tabs = this.tabManager.getAllTabs();\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-closed', {\n bubbles: true,\n composed: true,\n detail: { tabId },\n })\n );\n\n return true;\n }\n\n /**\n * Write data to a tab's terminal\n */\n public writeToTab(tabId: string, data: string): boolean {\n const tab = this.tabManager.getTab(tabId);\n if (!tab) return false;\n tab.terminal.write(data);\n return true;\n }\n\n /**\n * Send input to a tab's process (if interactive)\n */\n public sendInputToTab(tabId: string, data: string): boolean {\n const tab = this.tabManager.getTab(tabId);\n if (!tab || !tab.inputWriter) return false;\n tab.inputWriter.write(data);\n return true;\n }\n\n /**\n * Show an actionbar notification in the terminal panel context.\n * Use this for terminal-related decisions (e.g., retry failed process, kill process, etc.)\n */\n public async showActionbar(\n options: Parameters[0]\n ): Promise> {\n if (!this.terminalActionbar) {\n this.terminalActionbar = this.shadowRoot?.querySelector('dees-actionbar') as DeesActionbar;\n }\n return this.terminalActionbar?.show(options);\n }\n\n // ========== Utility Methods ==========\n\n public async waitForPrompt(term: Terminal, prompt: string): Promise {\n return new Promise((resolve) => {\n const checkPrompt = () => {\n const lines = term.buffer.active;\n for (let i = 0; i < lines.length; i++) {\n const line = lines.getLine(i);\n if (line && line.translateToString().includes(prompt)) {\n setTimeout(() => {\n resolve();\n }, 100);\n return;\n }\n }\n setTimeout(checkPrompt, 100);\n };\n\n checkPrompt();\n });\n }\n\n public async setEnvironmentVariables(envArg: { [key: string]: string }): Promise {\n if (!this.executionEnvironment) {\n throw new Error('No execution environment available');\n }\n\n let envFile = '';\n for (const key in envArg) {\n envFile += `export ${key}=\"${envArg[key]}\"\\n`;\n }\n\n await this.executionEnvironment.writeFile('/source.env', envFile);\n }\n\n /**\n * Get the underlying execution environment.\n */\n public getExecutionEnvironment(): IExecutionEnvironment | null {\n return this.executionEnvironment;\n }\n}\n", "import { html, DeesElement, customElement, css, cssManager } from '@design.estate/dees-element';\nimport type { IView } from './dees-simple-appdash.js';\nimport '../../00group-form/dees-form/dees-form.js';\nimport '../../00group-input/dees-input-text/dees-input-text.js';\nimport '../../00group-input/dees-input-checkbox/dees-input-checkbox.js';\nimport '../../00group-input/dees-input-dropdown/dees-input-dropdown.js';\nimport '../../00group-input/dees-input-radiogroup/dees-input-radiogroup.js';\nimport '../../00group-form/dees-form-submit/dees-form-submit.js';\nimport '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';\nimport type { IStatsTile } from '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';\n\n// Create demo view components\n@customElement('demo-view-dashboard')\nclass DemoViewDashboard extends DeesElement {\n static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n padding: 40px;\n }\n h1 {\n margin: 0 0 20px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n dees-statsgrid {\n margin-top: 20px;\n }\n `\n ];\n \n private statsTiles: IStatsTile[] = [\n {\n id: 'users',\n title: 'Active Users',\n value: 1234,\n type: 'number',\n icon: 'faUsers',\n description: '+15% from last week',\n color: '#22c55e'\n },\n {\n id: 'pageviews',\n title: 'Page Views',\n value: 56700,\n type: 'number',\n icon: 'faEye',\n description: '56.7k total views',\n color: '#3b82f6'\n },\n {\n id: 'uptime',\n title: 'System Uptime',\n value: 89,\n unit: '%',\n type: 'gauge',\n icon: 'faServer',\n description: 'Last 30 days',\n color: '#10b981',\n gaugeOptions: {\n min: 0,\n max: 100,\n thresholds: [\n { value: 80, color: '#ef4444' },\n { value: 90, color: '#f59e0b' },\n { value: 100, color: '#10b981' }\n ]\n }\n },\n {\n id: 'response',\n title: 'Avg Response Time',\n value: 3.2,\n unit: 's',\n type: 'number',\n icon: 'faClock',\n description: '-0.5s improvement',\n color: '#f59e0b'\n },\n {\n id: 'revenue',\n title: 'Monthly Revenue',\n value: 48520,\n unit: '$',\n type: 'trend',\n icon: 'faDollarSign',\n description: '+8.2% growth',\n color: '#22c55e',\n trendData: [35000, 38000, 37500, 41000, 39800, 42000, 44100, 43200, 45600, 47100, 46800, 48520]\n },\n {\n id: 'traffic',\n title: 'Traffic Trend',\n value: 1680,\n type: 'trend',\n icon: 'faChartLine',\n description: 'Last 7 days',\n color: '#3b82f6',\n trendData: [1200, 1350, 1100, 1450, 1600, 1550, 1680]\n }\n ];\n \n render() {\n return html`\n

      Dashboard

      \n

      Welcome to your application dashboard. Here's an overview of your metrics:

      \n {\n console.log('Tile action:', e.detail);\n }}\n >\n `;\n }\n}\n\n@customElement('demo-view-analytics')\nclass DemoViewAnalytics extends DeesElement {\n static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n padding: 40px;\n }\n h1 {\n margin: 0 0 20px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n `\n ];\n \n render() {\n return html`\n

      Analytics

      \n

      This is the analytics view. You can add charts and metrics here.

      \n `;\n }\n}\n\n@customElement('demo-view-settings')\nclass DemoViewSettings extends DeesElement {\n static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n padding: 40px;\n }\n h1 {\n margin: 0 0 20px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n .settings-section {\n margin-top: 30px;\n }\n .settings-section h2 {\n font-size: 18px;\n margin: 0 0 15px 0;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n }\n .horizontal-form-section {\n background: ${cssManager.bdTheme('#f5f5f5', '#1a1a1a')};\n padding: 20px;\n border-radius: 8px;\n margin: 15px 0;\n }\n `\n ];\n \n render() {\n return html`\n

      Settings

      \n

      Configure your application settings below:

      \n \n
      \n

      General Settings

      \n \n \n \n \n \n \n Save General Settings\n \n
      \n \n
      \n

      Display Preferences

      \n
      \n

      Quick display settings using horizontal layout:

      \n \n \n \n \n \n
      \n
      \n \n
      \n

      Notification Settings

      \n \n \n \n \n Update Notifications\n \n
      \n `;\n }\n}\n\nexport const demoFunc = () => html`\n \n
      \n {\n console.log('Logout event triggered');\n alert('Logout clicked!');\n }}\n @view-select=${(e: CustomEvent) => {\n console.log('View selected:', e.detail.view.name);\n }}\n >\n
      \n`;\n", "import { demoFunc } from './dees-simple-appdash.demo.js';\n\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n unsafeCSS,\n type CSSResult,\n state,\n domtools,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport type { DeesWorkspaceTerminal } from '../../00group-workspace/dees-workspace-terminal/dees-workspace-terminal.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-simple-appdash': DeesSimpleAppDash;\n }\n}\n\nexport interface IView {\n name: string;\n iconName?: string;\n element: DeesElement['constructor']['prototype'];\n}\n\n@customElement('dees-simple-appdash')\nexport class DeesSimpleAppDash extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Simple'];\n // INSTANCE\n\n @property()\n accessor name: string = 'Application Dashboard';\n\n @property({ type: Array })\n accessor viewTabs: IView[] = [];\n\n @property({ type: String })\n accessor terminalSetupCommand: string = `echo \"Terminal ready\"`;\n\n @state()\n accessor selectedView: IView;\n\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n user-select: none;\n display: block;\n overflow: hidden;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n .maincontainer {\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n overflow: hidden;\n }\n\n .appbar {\n position: absolute;\n top: 0px;\n left: 0px;\n height: calc(100% - 24px);\n width: 240px;\n background: ${cssManager.bdTheme('hsl(0 0% 99%)', 'hsl(0 0% 7%)')};\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 13%)')};\n font-size: 13px;\n font-family: 'Geist Sans', sans-serif;\n z-index: 2;\n display: grid;\n grid-template-rows: auto 1fr min-content;\n overflow: hidden;\n }\n\n .sidebar-header {\n padding: 20px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 13%)')};\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-icon-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border-radius: 10px;\n background: ${cssManager.bdTheme(\n 'linear-gradient(135deg, hsl(215 20% 95%) 0%, hsl(215 20% 90%) 100%)',\n 'linear-gradient(135deg, hsl(215 20% 18%) 0%, hsl(215 20% 14%) 100%)'\n )};\n box-shadow: ${cssManager.bdTheme(\n '0 1px 2px rgb(0 0 0 / 0.05), inset 0 1px 0 rgb(255 255 255 / 0.5)',\n '0 1px 2px rgb(0 0 0 / 0.2), inset 0 1px 0 rgb(255 255 255 / 0.05)'\n )};\n }\n\n .header-icon-wrapper dees-icon {\n font-size: 18px;\n color: ${cssManager.bdTheme('hsl(215 20% 40%)', 'hsl(215 20% 70%)')};\n }\n\n .appName {\n font-size: 15px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n letter-spacing: -0.02em;\n }\n\n .viewTabs-container {\n overflow-y: auto;\n padding: 12px 8px;\n scrollbar-width: thin;\n scrollbar-color: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')} transparent;\n }\n\n .viewTabs-container::-webkit-scrollbar {\n width: 6px;\n }\n\n .viewTabs-container::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .viewTabs-container::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n border-radius: 3px;\n }\n\n .viewTabs-container::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 75%)', 'hsl(0 0% 30%)')};\n }\n\n .section-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n padding: 8px 12px 8px;\n margin-bottom: 4px;\n }\n\n .viewTabs {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .viewTab {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n cursor: default;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 65%)')};\n user-select: none;\n position: relative;\n border-radius: 8px;\n }\n\n .viewTab:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.04)', 'hsl(0 0% 100% / 0.05)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n .viewTab:active {\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.06)', 'hsl(0 0% 100% / 0.07)')};\n transform: scale(0.99);\n }\n\n .viewTab.selected {\n background: ${cssManager.bdTheme('hsl(215 25% 95%)', 'hsl(215 20% 15%)')};\n color: ${cssManager.bdTheme('hsl(215 25% 30%)', 'hsl(215 25% 85%)')};\n font-weight: 500;\n }\n\n .viewTab.selected::before {\n content: '';\n position: absolute;\n left: 0;\n top: 8px;\n bottom: 8px;\n width: 3px;\n border-radius: 0 2px 2px 0;\n background: ${cssManager.bdTheme('hsl(215 70% 50%)', 'hsl(215 70% 60%)')};\n }\n\n .viewTab dees-icon {\n font-size: 16px;\n opacity: 0.55;\n transition: all 0.15s ease;\n }\n\n .viewTab:hover dees-icon {\n opacity: 0.75;\n }\n\n .viewTab.selected dees-icon {\n opacity: 0.9;\n color: ${cssManager.bdTheme('hsl(215 70% 45%)', 'hsl(215 70% 65%)')};\n }\n\n .viewTab span {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .appActions {\n padding: 12px 8px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 13%)')};\n }\n\n .action {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: default;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 65%)')};\n }\n\n .action:hover {\n background: ${cssManager.bdTheme('hsl(0 84% 60% / 0.08)', 'hsl(0 84% 60% / 0.12)')};\n color: ${cssManager.bdTheme('hsl(0 84% 45%)', 'hsl(0 84% 65%)')};\n }\n\n .action dees-icon {\n font-size: 16px;\n opacity: 0.6;\n transition: all 0.15s ease;\n }\n\n .action:hover dees-icon {\n opacity: 0.9;\n color: ${cssManager.bdTheme('hsl(0 84% 45%)', 'hsl(0 84% 65%)')};\n }\n\n .appcontent {\n z-index: 1;\n position: absolute;\n top: 0px;\n right: 0px;\n height: calc(100% - 24px);\n bottom: 24px;\n width: calc(100% - 240px);\n overflow: auto;\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 5%)')};\n overscroll-behavior: contain;\n }\n\n .controlbar {\n color: #fff;\n position: absolute;\n bottom: 0px;\n left: 0px;\n width: 100%;\n height: 24px;\n background: ${cssManager.bdTheme('hsl(220 13% 18%)', 'hsl(220 13% 12%)')};\n z-index: 2;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n flex-direction: row;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n }\n\n .control {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 12px;\n height: 100%;\n white-space: nowrap;\n cursor: default;\n color: hsl(0 0% 70%);\n transition: all 0.15s ease;\n border-left: 1px solid hsl(0 0% 100% / 0.08);\n }\n\n .control:first-child {\n border-left: none;\n }\n\n .control:hover {\n background: hsl(0 0% 100% / 0.06);\n color: hsl(0 0% 95%);\n }\n\n .control dees-icon {\n font-size: 13px;\n }\n\n .control.status-connected dees-icon {\n color: hsl(142 70% 50%);\n }\n\n .control.status-terminal dees-icon {\n color: hsl(45 90% 55%);\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n
      \n
      \n \n
      \n
      ${this.name}
      \n
      \n
      \n
      Navigation
      \n
      \n ${this.viewTabs.map(\n (view) => html`\n this.loadView(view)}\n >\n ${view.iconName ? html`\n \n ` : html`\n \n `}\n ${view.name}\n
      \n `\n )}\n
      \n
      \n
      \n
      {\n this.dispatchEvent(new CustomEvent('logout', { bubbles: true, composed: true }));\n }}>\n \n Sign out\n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n Connected\n
      \n
      \n \n Terminal\n
      \n
      \n \n `;\n }\n\n public async firstUpdated(_changedProperties): Promise {\n const domtools = await this.domtoolsPromise;\n super.firstUpdated(_changedProperties);\n if (this.viewTabs && this.viewTabs.length > 0) {\n const viewToLoad = this.selectedView || this.viewTabs[0];\n await this.loadView(viewToLoad);\n }\n }\n \n public currentTerminal: DeesWorkspaceTerminal;\n public async launchTerminal() {\n const domtools = await this.domtoolsPromise;\n if (this.currentTerminal) {\n // If terminal already exists, remove it\n await this.closeTerminal();\n return;\n }\n\n const maincontainer = this.shadowRoot.querySelector('.maincontainer');\n const { DeesWorkspaceTerminal } = await import('../../00group-workspace/dees-workspace-terminal/dees-workspace-terminal.js');\n const terminal = new DeesWorkspaceTerminal();\n terminal.setupCommand = this.terminalSetupCommand;\n this.currentTerminal = terminal;\n maincontainer.appendChild(terminal);\n terminal.style.position = 'absolute';\n terminal.style.zIndex = '10';\n terminal.style.top = '0px';\n terminal.style.left = '240px';\n terminal.style.right = '0px';\n terminal.style.bottom = '24px';\n terminal.style.opacity = '0';\n terminal.style.transform = 'translateY(8px) scale(0.99)';\n terminal.style.transition = 'all 0.25s cubic-bezier(0.4, 0, 0.2, 1)';\n terminal.style.boxShadow = '0 25px 50px -12px rgb(0 0 0 / 0.5), 0 0 0 1px rgb(255 255 255 / 0.05)';\n terminal.style.maxWidth = `calc(${maincontainer.clientWidth}px -240px)`;\n terminal.style.maxHeight = `calc(${maincontainer.clientHeight}px - 24px)`;\n \n // Add close button to terminal\n terminal.addEventListener('close', () => this.closeTerminal());\n \n await domtools.convenience.smartdelay.delayFor(0);\n terminal.style.opacity = '1';\n terminal.style.transform = 'translateY(0) scale(1)';\n return terminal;\n }\n \n private async closeTerminal() {\n const domtools = await this.domtoolsPromise;\n if (this.currentTerminal) {\n this.currentTerminal.style.opacity = '0';\n this.currentTerminal.style.transform = 'translateY(8px) scale(0.99)';\n await domtools.convenience.smartdelay.delayFor(250);\n this.currentTerminal.remove();\n this.currentTerminal = null;\n }\n }\n\n\n private currentView: DeesElement;\n public async loadView(viewArg: IView) {\n const appcontent = this.shadowRoot.querySelector('.appcontent');\n const view = new viewArg.element();\n if (this.currentView) {\n this.currentView.remove();\n }\n appcontent.appendChild(view);\n this.currentView = view;\n this.selectedView = viewArg;\n \n // Emit view-select event\n this.dispatchEvent(new CustomEvent('view-select', {\n detail: { view: viewArg },\n bubbles: true,\n composed: true\n }));\n }\n}\n", "export * from './dees-simple-appdash.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
      \n {\n console.log('Login event received:', e.detail);\n const loginData = e.detail?.data || e.detail;\n if (loginData?.username && loginData?.password) {\n alert(`Login attempted with:\\nUsername: ${loginData.username}\\nPassword: ${loginData.password}`);\n // Here you would typically validate credentials and show the slotted content\n } else {\n console.error('Invalid login data structure:', e.detail);\n }\n }}\n >\n
      \n

      Welcome!

      \n

      This is the slotted content that appears after login.

      \n
      \n
      \n
      \n`;\n", "import { demoFunc } from './dees-simple-login.demo.js';\n\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-simple-login': DeesSimpleLogin;\n }\n}\n\n@customElement('dees-simple-login')\nexport class DeesSimpleLogin extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Simple'];\n // INSTANCE\n\n @property()\n accessor name: string = 'Application';\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n user-select: none;\n display: block;\n width: 100%;\n height: 100%;\n font-family: 'Geist Sans', sans-serif;\n }\n\n .loginContainer {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n }\n\n .slotContainer {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n opacity: 0;\n transition: opacity 0.2s ease, transform 0.2s ease;\n pointer-events: none;\n }\n\n .login {\n width: 100%;\n max-width: 360px;\n display: flex;\n flex-direction: column;\n gap: 24px;\n }\n\n .login-header {\n display: flex;\n flex-direction: column;\n gap: 8px;\n text-align: center;\n }\n\n .header {\n font-size: 24px;\n font-weight: 600;\n letter-spacing: -0.025em;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n }\n\n .subheader {\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n .login-card {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n padding: 24px;\n }\n\n .login-card dees-form {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .login-card dees-input-text {\n width: 100%;\n }\n\n .login-card dees-form-submit {\n margin-top: 8px;\n width: 100%;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n
      \n
      Sign in
      \n
      Enter your credentials to access ${this.name}
      \n
      \n
      \n \n \n \n Sign in\n \n
      \n
      \n
      \n
      \n \n
      \n `;\n }\n\n public async firstUpdated(_changedProperties: Map): Promise {\n super.firstUpdated(_changedProperties);\n \n const form = this.shadowRoot.querySelector('dees-form') as any;\n if (form) {\n form.addEventListener('formData', (event: CustomEvent) => {\n this.dispatchEvent(new CustomEvent('login', { \n detail: event.detail, \n bubbles: true, \n composed: true \n }));\n });\n }\n }\n\n /**\n * allows switching to slotted content\n */\n public async switchToSlottedContent() {\n const domtools = await this.domtoolsPromise;\n const loginDiv: HTMLDivElement = this.shadowRoot.querySelector('.login');\n const loginContainerDiv: HTMLDivElement = this.shadowRoot.querySelector('.loginContainer');\n const slotContainerDiv: HTMLDivElement = this.shadowRoot.querySelector('.slotContainer');\n loginDiv.style.opacity = '0';\n loginDiv.style.transform = 'translateY(20px)';\n loginContainerDiv.style.pointerEvents = 'none';\n slotContainerDiv.style.transform = 'translateY(20px)';\n await domtools.convenience.smartdelay.delayFor(300);\n slotContainerDiv.style.opacity = '1';\n slotContainerDiv.style.transform = 'translateY(0px)';\n await domtools.convenience.smartdelay.delayFor(300);\n slotContainerDiv.style.pointerEvents = 'all';\n }\n}\n", "export * from './dees-simple-login.js';\n", "// Simple Components\nexport * from './dees-shopping-productcard/index.js';\nexport * from './dees-simple-appdash/index.js';\nexport * from './dees-simple-login/index.js';\n", "export * from './dees-icon.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => {\n const onChanged = (e: CustomEvent) => {\n // find the demo wrapper and update the 'changed' log inside it\n const wrapper = (e.target as HTMLElement).closest('.demoWrapper');\n const el = wrapper?.querySelector('#changed');\n if (el) el.textContent = `search-changed: ${e.detail.value}`;\n };\n const onSubmit = (e: CustomEvent) => {\n // find the demo wrapper and update the 'submitted' log inside it\n const wrapper = (e.target as HTMLElement).closest('.demoWrapper');\n const el = wrapper?.querySelector('#submitted');\n if (el) el.textContent = `search-submit: ${e.detail.value}`;\n };\n return html`\n \n
      \n \n
      \n
      search-changed:
      \n
      search-submit:
      \n
      \n
      \n `;\n};", "import {\n customElement,\n DeesElement,\n property,\n html,\n cssManager,\n unsafeCSS,\n css,\n type TemplateResult,\n domtools,\n query,\n} from '@design.estate/dees-element';\n\nimport * as colors from '../../00colors.js';\nimport { demoFunc } from './dees-searchbar.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-searchbar': DeesSearchbar;\n }\n}\n\n@customElement('dees-searchbar')\nexport class DeesSearchbar extends DeesElement {\n // DEMO\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n // STATIC\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n padding: 40px;\n font-family: Dees Sans;\n display: block;\n background: ${cssManager.bdTheme('#eeeeeb', '#000000')};\n }\n\n .searchboxContainer {\n position: relative;\n margin: auto;\n max-width: 800px;\n background: ${cssManager.bdTheme('#00000015', '#ffffff15')};\n --boxHeight: 60px;\n height: var(--boxHeight);\n border-radius: var(--boxHeight);\n display: grid;\n grid-template-columns: 1fr 140px;\n justify-content: center;\n align-items: center;\n border-top: 1px solid ${cssManager.bdTheme('#00000015', '#ffffff20')};\n }\n\n input {\n height: 100%;\n width: 100%;\n border: none;\n background: none;\n color: ${cssManager.bdTheme('#000000', '#eeeeeb')};\n padding-left: 25px;\n margin-right: -8px;\n outline: none;\n font-size: 16px;\n }\n\n .searchButton {\n --buttonPadding: 8px;\n background: ${cssManager.bdTheme('#eeeeeb', '#000000')};\n color: ${cssManager.bdTheme('#000000', '#eeeeeb')};\n line-height: calc(var(--boxHeight) - (var(--buttonPadding) * 2));\n border-radius: var(--boxHeight);\n transform: scale(1) ;\n transform-origin: 50% 50%;\n text-align: center;\n \n transition: transform 0.1s, background 0.1s;\n margin-right: var(--buttonPadding);\n user-select: none;\n }\n\n .searchButton:hover {\n color: #fff;\n background: ${cssManager.bdTheme(colors.bright.blue, colors.dark.blue)};\n }\n\n .searchButton:active {\n color: #fff;\n background: ${cssManager.bdTheme(colors.bright.blueActive, colors.dark.blueActive)};\n transform: scale(0.98);\n }\n\n .filters {\n margin: auto;\n max-width: 800px;\n }\n `,\n ];\n\n // INSTANCE\n\n @property()\n accessor filters = [];\n\n\n public searchInput!: HTMLInputElement;\n public searchButton!: HTMLElement;\n\n constructor() {\n super();\n }\n\n public render(): TemplateResult {\n return html`\n
      \n \n
      Search ->
      \n
      \n ${this.filters.length > 0 ? html`\n
      \n Filters\n \n
      \n ` : html``}\n `;\n }\n /**\n * Lifecycle: after first render, wire up events for input and submit actions\n */\n public firstUpdated(): void {\n // dispatch change on each input\n this.searchInput.addEventListener('input', () => {\n this.dispatchEvent(new CustomEvent('search-changed', {\n bubbles: true,\n composed: true,\n detail: { value: this.searchInput.value }\n }));\n });\n // submit on Enter key\n this.searchInput.addEventListener('keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this._dispatchSubmit();\n }\n });\n // submit on button click\n this.searchButton.addEventListener('click', () => this._dispatchSubmit());\n }\n\n /**\n * Dispatch a submit event with the current search value\n */\n private _dispatchSubmit(): void {\n this.dispatchEvent(new CustomEvent('search-submit', {\n bubbles: true,\n composed: true,\n detail: { value: this.searchInput.value }\n }));\n }\n}\n", "export * from './dees-searchbar.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
      \n \n
      \n
      Spacing Scale
      \n
      \n CSS variables: --dees-spacing-xs through --dees-spacing-3xl\n
      \n
      \n
      \n
      \n
      xs (4px)
      \n
      \n
      \n
      \n
      sm (8px)
      \n
      \n
      \n
      \n
      md (12px)
      \n
      \n
      \n
      \n
      lg (16px)
      \n
      \n
      \n
      \n
      xl (24px)
      \n
      \n
      \n
      \n
      2xl (32px)
      \n
      \n
      \n
      \n
      3xl (48px)
      \n
      \n
      \n
      \n\n
      \n
      Border Radius Scale
      \n
      \n CSS variables: --dees-radius-xs through --dees-radius-full\n
      \n
      \n
      \n
      xs
      \n
      2px
      \n
      \n
      \n
      sm
      \n
      4px
      \n
      \n
      \n
      md
      \n
      6px
      \n
      \n
      \n
      lg
      \n
      8px
      \n
      \n
      \n
      xl
      \n
      12px
      \n
      \n
      \n
      full
      \n
      999px
      \n
      \n
      \n
      \n\n
      \n
      Shadow Elevation Scale
      \n
      \n CSS variables: --dees-shadow-xs through --dees-shadow-lg\n
      \n
      \n
      \n
      xs
      \n
      minimal
      \n
      \n
      \n
      sm
      \n
      subtle
      \n
      \n
      \n
      md
      \n
      medium
      \n
      \n
      \n
      lg
      \n
      prominent
      \n
      \n
      \n
      \n\n
      \n
      Control Height Scale
      \n
      \n CSS variables: --dees-control-height-sm through --dees-control-height-xl\n
      \n
      \n
      \n
      sm
      \n
      32px
      \n
      \n
      \n
      md
      \n
      36px
      \n
      \n
      \n
      lg
      \n
      40px
      \n
      \n
      \n
      xl
      \n
      48px
      \n
      \n
      \n
      \n\n
      \n
      Transition Durations
      \n
      \n CSS variables: --dees-transition-fast through --dees-transition-slower\n
      \n
      \n
      \n
      --dees-transition-fast
      \n
      0.1s
      \n
      \n
      \n
      --dees-transition-default
      \n
      0.15s
      \n
      \n
      \n
      --dees-transition-slow
      \n
      0.2s
      \n
      \n
      \n
      --dees-transition-slower
      \n
      0.3s
      \n
      \n
      \n
      \n
      \n
      \n`;\n", "import {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\n\nimport {\n type ITheme,\n type IThemeColors,\n type IThemeSpacing,\n type IThemeRadius,\n type IThemeShadows,\n type IThemeTransitions,\n type IThemeControlHeights,\n themeDefaults,\n themeDefaultStyles,\n} from '../../00theme.js';\n\nimport { demoFunc } from './dees-theme.demo.js';\n\n/**\n * A theme provider component that wraps children and provides CSS custom properties.\n * Can be used at the app root or around specific sections to customize theming.\n *\n * Usage:\n * ```html\n * \n * \n * \n * ```\n *\n * With custom overrides:\n * ```html\n * \n * \n * \n * ```\n */\n@customElement('dees-theme')\nexport class DeesTheme extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n // ============================================\n // Properties for theme overrides\n // ============================================\n\n @property({ type: Object })\n accessor customSpacing: Partial | null = null;\n\n @property({ type: Object })\n accessor customRadius: Partial | null = null;\n\n @property({ type: Object })\n accessor customShadows: Partial | null = null;\n\n @property({ type: Object })\n accessor customTransitions: Partial | null = null;\n\n @property({ type: Object })\n accessor customControlHeights: Partial | null = null;\n\n // ============================================\n // Styles\n // ============================================\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: contents;\n }\n `,\n ];\n\n // ============================================\n // Render\n // ============================================\n\n public render(): TemplateResult {\n return html`\n \n \n `;\n }\n\n // ============================================\n // Private Methods\n // ============================================\n\n private generateCustomStyles(): string {\n const styles: string[] = [':host {'];\n\n // Custom spacing\n if (this.customSpacing) {\n for (const [key, value] of Object.entries(this.customSpacing)) {\n if (value) {\n styles.push(` --dees-spacing-${key}: ${value};`);\n }\n }\n }\n\n // Custom radius\n if (this.customRadius) {\n for (const [key, value] of Object.entries(this.customRadius)) {\n if (value) {\n styles.push(` --dees-radius-${key}: ${value};`);\n }\n }\n }\n\n // Custom shadows\n if (this.customShadows) {\n for (const [key, value] of Object.entries(this.customShadows)) {\n if (value) {\n styles.push(` --dees-shadow-${key}: ${value};`);\n }\n }\n }\n\n // Custom transitions\n if (this.customTransitions) {\n for (const [key, value] of Object.entries(this.customTransitions)) {\n if (value) {\n const cssKey = key === 'default' ? 'default' : key;\n styles.push(` --dees-transition-${cssKey}: ${value};`);\n }\n }\n }\n\n // Custom control heights\n if (this.customControlHeights) {\n for (const [key, value] of Object.entries(this.customControlHeights)) {\n if (value) {\n styles.push(` --dees-control-height-${key}: ${value};`);\n }\n }\n }\n\n styles.push('}');\n return styles.join('\\n');\n }\n\n // ============================================\n // Public API Methods\n // ============================================\n\n /**\n * Set a spacing value dynamically\n */\n public setSpacing(key: keyof IThemeSpacing, value: string): void {\n this.customSpacing = { ...this.customSpacing, [key]: value };\n }\n\n /**\n * Set a radius value dynamically\n */\n public setRadius(key: keyof IThemeRadius, value: string): void {\n this.customRadius = { ...this.customRadius, [key]: value };\n }\n\n /**\n * Set a shadow value dynamically\n */\n public setShadow(key: keyof IThemeShadows, value: string): void {\n this.customShadows = { ...this.customShadows, [key]: value };\n }\n\n /**\n * Set a transition value dynamically\n */\n public setTransition(key: keyof IThemeTransitions, value: string): void {\n this.customTransitions = { ...this.customTransitions, [key]: value };\n }\n\n /**\n * Set a control height value dynamically\n */\n public setControlHeight(key: keyof IThemeControlHeights, value: string): void {\n this.customControlHeights = { ...this.customControlHeights, [key]: value };\n }\n\n /**\n * Get the current theme configuration (defaults + overrides)\n */\n public getTheme(): ITheme {\n return {\n colors: themeDefaults.colors,\n spacing: { ...themeDefaults.spacing, ...this.customSpacing },\n radius: { ...themeDefaults.radius, ...this.customRadius },\n shadows: { ...themeDefaults.shadows, ...this.customShadows },\n transitions: { ...themeDefaults.transitions, ...this.customTransitions },\n controlHeights: { ...themeDefaults.controlHeights, ...this.customControlHeights },\n };\n }\n\n /**\n * Reset all custom overrides to defaults\n */\n public resetToDefaults(): void {\n this.customSpacing = null;\n this.customRadius = null;\n this.customShadows = null;\n this.customTransitions = null;\n this.customControlHeights = null;\n }\n\n /**\n * Apply a complete theme object\n */\n public applyTheme(theme: Partial): void {\n if (theme.spacing) this.customSpacing = theme.spacing;\n if (theme.radius) this.customRadius = theme.radius;\n if (theme.shadows) this.customShadows = theme.shadows;\n if (theme.transitions) this.customTransitions = theme.transitions;\n if (theme.controlHeights) this.customControlHeights = theme.controlHeights;\n }\n}\n", "export * from './dees-theme.js';\n", "import { html } from '@design.estate/dees-element';\n\nimport { DeesUpdater } from '../dees-updater/dees-updater.js';\n\nexport const demoFunc = async () => {\n const updater = await DeesUpdater.createAndShow();\n setTimeout(async () => {\n await updater.destroy();\n }, 10000);\n}", "import {\n customElement,\n DeesElement,\n type TemplateResult,\n html,\n property,\n type CSSResult,\n domtools,\n} from '@design.estate/dees-element';\nimport { demoFunc } from './dees-updater.demo.js';\n\nimport '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport { css, cssManager } from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-updater': DeesUpdater;\n }\n}\n\n@customElement('dees-updater')\nexport class DeesUpdater extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n public static async createAndShow() {\n const updater = new DeesUpdater();\n document.body.appendChild(updater);\n return updater;\n }\n\n @property({\n type: String,\n })\n accessor currentVersion: string;\n\n @property({\n type: String,\n })\n accessor updatedVersion: string;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n .modalContainer {\n will-change: transform;\n position: relative;\n background: ${cssManager.bdTheme('#eeeeeb', '#222')};\n max-width: 800px;\n border-radius: 8px;\n border-top: 1px solid ${cssManager.bdTheme('#eeeeeb', '#333')};\n }\n\n .headingContainer {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 40px 40px;\n }\n\n h1 {\n margin: none;\n font-size: 20px;\n color: ${cssManager.bdTheme('#333', '#fff')};\n margin-left: 20px;\n font-weight: normal;\n }\n\n .buttonContainer {\n display: grid;\n grid-template-columns: 50% 50%;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n \n
      \n
      \n \n

      Updating the application...

      \n
      \n
      \n \n
      \n
      \n More info\n Changelog\n
      \n
      >\n `;\n }\n\n public async destroy() {\n this.parentElement.removeChild(this);\n }\n\n private windowLayerClicked() {}\n}\n", "export * from './dees-updater.js';\n", "export * from './dees-windowcontrols.js';\n", "// Utility Components\nexport * from './dees-icon/index.js';\nexport * from './dees-searchbar/index.js';\nexport * from './dees-theme/index.js';\nexport * from './dees-updater/index.js';\nexport * from './dees-windowcontrols/index.js';\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment, IFileEntry, IFileWatcher } from '../../00group-runtime/index.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\nimport '../../00group-input/dees-input-text/dees-input-text.js';\nimport { DeesInputText } from '../../00group-input/dees-input-text/dees-input-text.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-filetree': DeesWorkspaceFiletree;\n }\n}\n\ninterface ITreeNode extends IFileEntry {\n children?: ITreeNode[];\n expanded?: boolean;\n level: number;\n}\n\n@customElement('dees-workspace-filetree')\nexport class DeesWorkspaceFiletree extends DeesElement {\n public static demo = () => html`\n
      \n \n
      \n `;\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n @property({ type: String })\n accessor rootPath: string = '/';\n\n @property({ type: String })\n accessor selectedPath: string = '';\n\n @state()\n accessor treeData: ITreeNode[] = [];\n\n @state()\n accessor isLoading: boolean = false;\n\n @state()\n accessor errorMessage: string = '';\n\n private expandedPaths: Set = new Set();\n private loadTreeStarted: boolean = false;\n\n // Clipboard state for copy/paste operations\n private clipboardPath: string | null = null;\n private clipboardOperation: 'copy' | 'cut' | null = null;\n\n // File watcher for auto-refresh\n private fileWatcher: IFileWatcher | null = null;\n private refreshDebounceTimeout: ReturnType | null = null;\n private lastExecutionEnvironment: IExecutionEnvironment | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: auto;\n background: ${cssManager.bdTheme('hsl(0 0% 98%)', 'hsl(0 0% 9%)')};\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 13px;\n }\n\n .tree-container {\n padding: 8px 0;\n }\n\n .tree-item {\n display: flex;\n align-items: center;\n padding: 4px 8px;\n cursor: pointer;\n user-select: none;\n border-radius: 4px;\n margin: 1px 4px;\n transition: background 0.1s ease;\n }\n\n .tree-item:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 93%)', 'hsl(0 0% 14%)')};\n }\n\n .tree-item.selected {\n background: ${cssManager.bdTheme('hsl(210 100% 95%)', 'hsl(210 50% 20%)')};\n color: ${cssManager.bdTheme('hsl(210 100% 40%)', 'hsl(210 100% 70%)')};\n }\n\n .tree-item.selected:hover {\n background: ${cssManager.bdTheme('hsl(210 100% 92%)', 'hsl(210 50% 25%)')};\n }\n\n .indent {\n display: inline-block;\n width: 16px;\n flex-shrink: 0;\n }\n\n .expand-icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n transition: transform 0.15s ease;\n }\n\n .expand-icon.expanded {\n transform: rotate(90deg);\n }\n\n .expand-icon.hidden {\n visibility: hidden;\n }\n\n .file-icon {\n width: 16px;\n height: 16px;\n margin-right: 6px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .file-icon dees-icon {\n width: 16px;\n height: 16px;\n }\n\n .file-icon.folder {\n color: ${cssManager.bdTheme('hsl(45 80% 45%)', 'hsl(45 70% 55%)')};\n }\n\n .file-icon.file {\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .file-icon.typescript {\n color: hsl(211 60% 48%);\n }\n\n .file-icon.javascript {\n color: hsl(53 93% 54%);\n }\n\n .file-icon.json {\n color: hsl(45 80% 50%);\n }\n\n .file-icon.html {\n color: hsl(14 77% 52%);\n }\n\n .file-icon.css {\n color: hsl(228 77% 59%);\n }\n\n .file-icon.markdown {\n color: hsl(0 0% 50%);\n }\n\n .file-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 85%)')};\n }\n\n .loading {\n padding: 16px;\n text-align: center;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .error {\n padding: 16px;\n text-align: center;\n color: hsl(0 70% 50%);\n }\n\n .empty {\n padding: 16px;\n text-align: center;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n font-style: italic;\n }\n\n .filetree-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 36px;\n padding: 0 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 8%)')};\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n .toolbar-title {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .toolbar-actions {\n display: flex;\n gap: 4px;\n }\n\n .toolbar-button {\n padding: 4px;\n border-radius: 4px;\n cursor: pointer;\n opacity: 0.7;\n transition: opacity 0.15s, background 0.15s;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 70%)')};\n }\n\n .toolbar-button:hover {\n opacity: 1;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.08)', 'hsl(0 0% 100% / 0.1)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n if (!this.executionEnvironment) {\n return html`\n
      \n No execution environment provided.\n
      \n `;\n }\n\n if (this.isLoading) {\n return html`\n
      \n Loading files...\n
      \n `;\n }\n\n if (this.errorMessage) {\n return html`\n
      \n ${this.errorMessage}\n
      \n `;\n }\n\n return html`\n
      \n Explorer\n
      \n
      this.createNewFile('/')} title=\"New File\">\n \n
      \n
      this.createNewFolder('/')} title=\"New Folder\">\n \n
      \n
      \n
      \n ${this.treeData.length === 0\n ? html`
      No files found.
      `\n : html`\n
      \n ${this.renderTree(this.treeData)}\n
      \n `}\n `;\n }\n\n private renderTree(nodes: ITreeNode[]): TemplateResult[] {\n return nodes.map(node => this.renderNode(node));\n }\n\n private renderNode(node: ITreeNode): TemplateResult {\n const isDirectory = node.type === 'directory';\n const isExpanded = this.expandedPaths.has(node.path);\n const isSelected = node.path === this.selectedPath;\n const iconClass = this.getFileIconClass(node);\n\n return html`\n this.handleItemClick(e, node)}\n @contextmenu=${(e: MouseEvent) => this.handleContextMenu(e, node)}\n >\n \n \n \n \n \n \n ${node.name}\n \n ${isDirectory && isExpanded && node.children\n ? this.renderTree(node.children)\n : ''}\n `;\n }\n\n private getFileIcon(node: ITreeNode): string {\n if (node.type === 'directory') {\n return this.expandedPaths.has(node.path) ? 'lucide:folderOpen' : 'lucide:folder';\n }\n\n const ext = node.name.split('.').pop()?.toLowerCase();\n switch (ext) {\n case 'ts':\n case 'tsx':\n return 'lucide:fileCode';\n case 'js':\n case 'jsx':\n return 'lucide:fileCode';\n case 'json':\n return 'lucide:fileJson';\n case 'html':\n return 'lucide:fileCode';\n case 'css':\n case 'scss':\n case 'less':\n return 'lucide:fileCode';\n case 'md':\n return 'lucide:fileText';\n case 'png':\n case 'jpg':\n case 'jpeg':\n case 'gif':\n case 'svg':\n return 'lucide:image';\n default:\n return 'lucide:file';\n }\n }\n\n private getFileIconClass(node: ITreeNode): string {\n if (node.type === 'directory') return 'folder';\n\n const ext = node.name.split('.').pop()?.toLowerCase();\n switch (ext) {\n case 'ts':\n case 'tsx':\n return 'typescript';\n case 'js':\n case 'jsx':\n return 'javascript';\n case 'json':\n return 'json';\n case 'html':\n return 'html';\n case 'css':\n case 'scss':\n case 'less':\n return 'css';\n case 'md':\n return 'markdown';\n default:\n return 'file';\n }\n }\n\n private async handleItemClick(e: MouseEvent, node: ITreeNode) {\n e.stopPropagation();\n\n if (node.type === 'directory') {\n await this.toggleDirectory(node);\n } else {\n this.selectedPath = node.path;\n this.dispatchEvent(\n new CustomEvent('file-select', {\n detail: { path: node.path, name: node.name },\n bubbles: true,\n composed: true,\n })\n );\n }\n }\n\n private async toggleDirectory(node: ITreeNode) {\n if (this.expandedPaths.has(node.path)) {\n this.expandedPaths.delete(node.path);\n } else {\n this.expandedPaths.add(node.path);\n // Load children if not already loaded\n if (!node.children || node.children.length === 0) {\n await this.loadDirectoryContents(node);\n }\n }\n this.requestUpdate();\n }\n\n private async loadDirectoryContents(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n try {\n const entries = await this.executionEnvironment.readDir(node.path);\n node.children = this.sortEntries(entries).map(entry => ({\n ...entry,\n level: node.level + 1,\n expanded: false,\n children: entry.type === 'directory' ? [] : undefined,\n }));\n } catch (error) {\n console.error(`Failed to load directory ${node.path}:`, error);\n }\n }\n\n private async handleContextMenu(e: MouseEvent, node: ITreeNode) {\n e.preventDefault();\n e.stopPropagation();\n\n const menuItems = [];\n\n if (node.type === 'directory') {\n // Directory-specific options\n menuItems.push(\n {\n name: 'New File',\n iconName: 'filePlus',\n action: async () => this.createNewFile(node.path),\n },\n {\n name: 'New Folder',\n iconName: 'folderPlus',\n action: async () => this.createNewFolder(node.path),\n },\n { divider: true }\n );\n }\n\n // Common options for both files and directories\n menuItems.push(\n {\n name: 'Rename',\n iconName: 'pencil',\n action: async () => this.renameItem(node),\n },\n {\n name: 'Duplicate',\n iconName: 'files',\n action: async () => this.duplicateItem(node),\n },\n {\n name: 'Copy',\n iconName: 'copy',\n action: async () => this.copyItem(node),\n }\n );\n\n // Paste option (only for directories and when clipboard has content)\n if (node.type === 'directory' && this.clipboardPath) {\n menuItems.push({\n name: 'Paste',\n iconName: 'clipboard',\n action: async () => this.pasteItem(node.path),\n });\n }\n\n menuItems.push(\n { divider: true },\n {\n name: 'Delete',\n iconName: 'trash2',\n action: async () => this.deleteItem(node),\n }\n );\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async handleEmptySpaceContextMenu(e: MouseEvent) {\n // Only trigger if clicking on the container itself, not a tree item\n const target = e.target as HTMLElement;\n if (target.closest('.tree-item')) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n const menuItems: any[] = [\n {\n name: 'New File',\n iconName: 'filePlus',\n action: async () => this.createNewFile('/'),\n },\n {\n name: 'New Folder',\n iconName: 'folderPlus',\n action: async () => this.createNewFolder('/'),\n },\n ];\n\n // Add Paste option if clipboard has content\n if (this.clipboardPath) {\n menuItems.push(\n { divider: true },\n {\n name: 'Paste',\n iconName: 'clipboard',\n action: async () => this.pasteItem('/'),\n }\n );\n }\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async showInputModal(options: {\n heading: string;\n label: string;\n value?: string;\n buttonName?: string;\n }): Promise {\n return new Promise(async (resolve) => {\n const modal = await DeesModal.createAndShow({\n heading: options.heading,\n width: 'small',\n content: html`\n \n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modalRef) => {\n await modalRef.destroy();\n resolve(null);\n },\n },\n {\n name: options.buttonName || 'Create',\n action: async (modalRef) => {\n // Query the input element directly and read its value\n const contentEl = modalRef.shadowRoot?.querySelector('.modal .content');\n const inputElement = contentEl?.querySelector('dees-input-text') as DeesInputText | null;\n const inputValue = inputElement?.value?.trim() || '';\n\n await modalRef.destroy();\n resolve(inputValue || null);\n },\n },\n ],\n });\n\n // Focus the input after modal renders\n await modal.updateComplete;\n const contentEl = modal.shadowRoot?.querySelector('.modal .content');\n if (contentEl) {\n const inputElement = contentEl.querySelector('dees-input-text') as DeesInputText | null;\n if (inputElement) {\n await inputElement.updateComplete;\n inputElement.focus();\n }\n }\n });\n }\n\n private async createNewFile(parentPath: string) {\n const fileName = await this.showInputModal({\n heading: 'New File',\n label: 'File name',\n });\n if (!fileName || !this.executionEnvironment) return;\n\n const newPath = parentPath === '/' ? `/${fileName}` : `${parentPath}/${fileName}`;\n try {\n await this.executionEnvironment.writeFile(newPath, '');\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('file-created', {\n detail: { path: newPath },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to create file:', error);\n }\n }\n\n private async createNewFolder(parentPath: string) {\n const folderName = await this.showInputModal({\n heading: 'New Folder',\n label: 'Folder name',\n });\n if (!folderName || !this.executionEnvironment) return;\n\n const newPath = parentPath === '/' ? `/${folderName}` : `${parentPath}/${folderName}`;\n try {\n await this.executionEnvironment.mkdir(newPath);\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('folder-created', {\n detail: { path: newPath },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to create folder:', error);\n }\n }\n\n private async deleteItem(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n const confirmed = confirm(`Delete ${node.name}?`);\n if (!confirmed) return;\n\n try {\n await this.executionEnvironment.rm(node.path, { recursive: node.type === 'directory' });\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-deleted', {\n detail: { path: node.path, type: node.type },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to delete item:', error);\n }\n }\n\n /**\n * Rename a file or folder\n */\n private async renameItem(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n const newName = await this.showInputModal({\n heading: 'Rename',\n label: 'New name',\n value: node.name,\n buttonName: 'Rename',\n });\n if (!newName || newName === node.name) return;\n\n // Calculate new path\n const parentPath = node.path.substring(0, node.path.lastIndexOf('/')) || '/';\n const newPath = parentPath === '/' ? `/${newName}` : `${parentPath}/${newName}`;\n\n try {\n if (node.type === 'file') {\n // For files: read content, write to new path, delete old\n const content = await this.executionEnvironment.readFile(node.path);\n await this.executionEnvironment.writeFile(newPath, content);\n await this.executionEnvironment.rm(node.path);\n } else {\n // For directories: recursively copy contents then delete old\n await this.copyDirectoryContents(node.path, newPath);\n await this.executionEnvironment.rm(node.path, { recursive: true });\n }\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-renamed', {\n detail: { oldPath: node.path, newPath, type: node.type },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to rename item:', error);\n }\n }\n\n /**\n * Duplicate a file or folder\n */\n private async duplicateItem(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n const parentPath = node.path.substring(0, node.path.lastIndexOf('/')) || '/';\n let newName: string;\n\n if (node.type === 'file') {\n // Add _copy before extension\n const lastDot = node.name.lastIndexOf('.');\n if (lastDot > 0) {\n const baseName = node.name.substring(0, lastDot);\n const ext = node.name.substring(lastDot);\n newName = `${baseName}_copy${ext}`;\n } else {\n newName = `${node.name}_copy`;\n }\n } else {\n newName = `${node.name}_copy`;\n }\n\n const newPath = parentPath === '/' ? `/${newName}` : `${parentPath}/${newName}`;\n\n try {\n if (node.type === 'file') {\n const content = await this.executionEnvironment.readFile(node.path);\n await this.executionEnvironment.writeFile(newPath, content);\n } else {\n await this.copyDirectoryContents(node.path, newPath);\n }\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-duplicated', {\n detail: { sourcePath: node.path, newPath, type: node.type },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to duplicate item:', error);\n }\n }\n\n /**\n * Copy item path to clipboard\n */\n private async copyItem(node: ITreeNode) {\n this.clipboardPath = node.path;\n this.clipboardOperation = 'copy';\n }\n\n /**\n * Paste copied item to target directory\n */\n private async pasteItem(targetPath: string) {\n if (!this.executionEnvironment || !this.clipboardPath) return;\n\n // Get the name from clipboard path\n const name = this.clipboardPath.split('/').pop() || 'pasted';\n const newPath = targetPath === '/' ? `/${name}` : `${targetPath}/${name}`;\n\n try {\n // Check if source exists\n if (!(await this.executionEnvironment.exists(this.clipboardPath))) {\n console.error('Source file no longer exists');\n this.clipboardPath = null;\n this.clipboardOperation = null;\n return;\n }\n\n // Check if it's a file or directory by trying to read as file\n try {\n const content = await this.executionEnvironment.readFile(this.clipboardPath);\n await this.executionEnvironment.writeFile(newPath, content);\n } catch {\n // If reading fails, it's a directory\n await this.copyDirectoryContents(this.clipboardPath, newPath);\n }\n\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-pasted', {\n detail: { sourcePath: this.clipboardPath, targetPath: newPath },\n bubbles: true,\n composed: true,\n })\n );\n\n // Clear clipboard after paste\n this.clipboardPath = null;\n this.clipboardOperation = null;\n } catch (error) {\n console.error('Failed to paste item:', error);\n }\n }\n\n /**\n * Recursively copy directory contents to a new path\n */\n private async copyDirectoryContents(sourcePath: string, destPath: string) {\n if (!this.executionEnvironment) return;\n\n // Create destination directory\n await this.executionEnvironment.mkdir(destPath);\n\n // Read source directory contents\n const entries = await this.executionEnvironment.readDir(sourcePath);\n\n for (const entry of entries) {\n const srcEntryPath = sourcePath === '/' ? `/${entry.name}` : `${sourcePath}/${entry.name}`;\n const destEntryPath = destPath === '/' ? `/${entry.name}` : `${destPath}/${entry.name}`;\n\n if (entry.type === 'directory') {\n await this.copyDirectoryContents(srcEntryPath, destEntryPath);\n } else {\n const content = await this.executionEnvironment.readFile(srcEntryPath);\n await this.executionEnvironment.writeFile(destEntryPath, content);\n }\n }\n }\n\n public async firstUpdated() {\n await this.loadTree();\n }\n\n public async updated(changedProperties: Map) {\n if (changedProperties.has('executionEnvironment')) {\n // Stop watching the old environment\n if (this.lastExecutionEnvironment !== this.executionEnvironment) {\n this.stopFileWatcher();\n this.lastExecutionEnvironment = this.executionEnvironment;\n }\n\n if (this.executionEnvironment) {\n await this.loadTree();\n this.startFileWatcher();\n }\n }\n }\n\n public async disconnectedCallback() {\n await super.disconnectedCallback();\n this.stopFileWatcher();\n if (this.refreshDebounceTimeout) {\n clearTimeout(this.refreshDebounceTimeout);\n this.refreshDebounceTimeout = null;\n }\n }\n\n private startFileWatcher() {\n if (!this.executionEnvironment || this.fileWatcher) return;\n\n try {\n this.fileWatcher = this.executionEnvironment.watch(\n '/',\n (_event, _filename) => {\n // Debounce refresh to avoid excessive updates\n if (this.refreshDebounceTimeout) {\n clearTimeout(this.refreshDebounceTimeout);\n }\n this.refreshDebounceTimeout = setTimeout(() => {\n this.refresh();\n }, 300);\n },\n { recursive: true }\n );\n } catch (error) {\n console.warn('File watching not supported:', error);\n }\n }\n\n private stopFileWatcher() {\n if (this.fileWatcher) {\n this.fileWatcher.stop();\n this.fileWatcher = null;\n }\n }\n\n private async loadTree() {\n if (!this.executionEnvironment) return;\n\n // Prevent double loading on initial render\n if (this.loadTreeStarted) return;\n this.loadTreeStarted = true;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // Wait for environment to be ready\n if (!this.executionEnvironment.ready) {\n await this.executionEnvironment.init();\n }\n\n const entries = await this.executionEnvironment.readDir(this.rootPath);\n this.treeData = this.sortEntries(entries).map(entry => ({\n ...entry,\n level: 0,\n expanded: false,\n children: entry.type === 'directory' ? [] : undefined,\n }));\n } catch (error) {\n this.errorMessage = `Failed to load files: ${error}`;\n console.error('Failed to load file tree:', error);\n // Reset flag to allow retry\n this.loadTreeStarted = false;\n } finally {\n this.isLoading = false;\n }\n }\n\n private sortEntries(entries: IFileEntry[]): IFileEntry[] {\n return entries.sort((a, b) => {\n // Directories first\n if (a.type !== b.type) {\n return a.type === 'directory' ? -1 : 1;\n }\n // Then alphabetically\n return a.name.localeCompare(b.name);\n });\n }\n\n public async refresh() {\n this.expandedPaths.clear();\n this.loadTreeStarted = false; // Reset to allow loading\n await this.loadTree();\n }\n\n public selectFile(path: string) {\n this.selectedPath = path;\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport type { Terminal } from 'xterm';\nimport type { FitAddon } from 'xterm-addon-fit';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { DeesServiceLibLoader } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-terminal-preview': DeesWorkspaceTerminalPreview;\n }\n}\n\n/**\n * A read-only terminal preview component using xterm.js for rendering.\n * Used during workspace initialization to show onInit command progress.\n */\n@customElement('dees-workspace-terminal-preview')\nexport class DeesWorkspaceTerminalPreview extends DeesElement {\n public static demo = () => html`\n \n `;\n public static demoGroups = ['Workspace'];\n\n /**\n * The command being displayed (shown in header)\n */\n @property({ type: String })\n accessor command: string = '';\n\n /**\n * Output lines to display\n */\n @property({ type: Array })\n accessor lines: string[] = [];\n\n private terminal: Terminal | null = null;\n private fitAddon: FitAddon | null = null;\n private lastLineCount: number = 0;\n private resizeObserver: ResizeObserver | null = null;\n private terminalThemeSubscription: any = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n height: 200px;\n }\n\n .terminal-preview {\n height: 100%;\n border-radius: 8px;\n overflow: hidden;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n display: flex;\n flex-direction: column;\n }\n\n .terminal-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 10%)')};\n font-size: 12px;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n flex-shrink: 0;\n }\n\n .terminal-header-icon {\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n }\n\n .terminal-header-command {\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};\n font-weight: 500;\n }\n\n .terminal-container {\n flex: 1;\n position: relative;\n padding: 8px;\n }\n\n #xterm-container {\n position: absolute;\n top: 8px;\n left: 8px;\n right: 8px;\n bottom: 8px;\n }\n\n /* xterm.js styles */\n .xterm {\n font-feature-settings: 'liga' 0;\n position: relative;\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n }\n\n .xterm.focus,\n .xterm:focus {\n outline: none;\n }\n\n .xterm .xterm-helpers {\n position: absolute;\n top: 0;\n z-index: 5;\n }\n\n .xterm .xterm-helper-textarea {\n padding: 0;\n border: 0;\n margin: 0;\n position: absolute;\n opacity: 0;\n left: -9999em;\n top: 0;\n width: 0;\n height: 0;\n z-index: -5;\n white-space: nowrap;\n overflow: hidden;\n resize: none;\n }\n\n .xterm .composition-view {\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n color: ${cssManager.bdTheme('#333333', '#ffffff')};\n display: none;\n position: absolute;\n white-space: nowrap;\n z-index: 1;\n }\n\n .xterm .composition-view.active {\n display: block;\n }\n\n .xterm .xterm-viewport {\n background-color: ${cssManager.bdTheme('#ffffff', '#000000')};\n overflow-y: scroll;\n cursor: default;\n position: absolute;\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n }\n\n .xterm .xterm-screen {\n position: relative;\n }\n\n .xterm .xterm-screen canvas {\n position: absolute;\n left: 0;\n top: 0;\n }\n\n .xterm .xterm-scroll-area {\n visibility: hidden;\n }\n\n .xterm-char-measure-element {\n display: inline-block;\n visibility: hidden;\n position: absolute;\n top: 0;\n left: -9999em;\n line-height: normal;\n }\n\n .xterm {\n cursor: text;\n }\n\n .xterm.enable-mouse-events {\n cursor: default;\n }\n\n .xterm.xterm-cursor-pointer {\n cursor: pointer;\n }\n\n .xterm.column-select.focus {\n cursor: crosshair;\n }\n\n .xterm .xterm-accessibility,\n .xterm .xterm-message {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 10;\n color: transparent;\n }\n\n .xterm .live-region {\n position: absolute;\n left: -9999px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n }\n\n .xterm-dim {\n opacity: 0.5;\n }\n\n .xterm-underline {\n text-decoration: underline;\n }\n\n /* Custom scrollbar for xterm viewport */\n .xterm .xterm-viewport::-webkit-scrollbar {\n width: 8px;\n }\n\n .xterm .xterm-viewport::-webkit-scrollbar-track {\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 8%)')};\n }\n\n .xterm .xterm-viewport::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 80%)', 'hsl(0 0% 25%)')};\n border-radius: 4px;\n }\n\n .xterm .xterm-viewport::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 70%)', 'hsl(0 0% 35%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n $\n ${this.command || 'Waiting...'}\n
      \n
      \n
      \n
      \n
      \n `;\n }\n\n /**\n * Get terminal theme colors based on bright/dark mode\n */\n private getTerminalTheme(isBright: boolean) {\n return isBright\n ? {\n background: '#ffffff',\n foreground: '#333333',\n cursor: '#333333',\n cursorAccent: '#ffffff',\n selectionBackground: 'rgba(0, 0, 0, 0.2)',\n }\n : {\n background: '#000000',\n foreground: '#cccccc',\n cursor: '#cccccc',\n cursorAccent: '#000000',\n selectionBackground: 'rgba(255, 255, 255, 0.2)',\n };\n }\n\n public async firstUpdated(\n _changedProperties: Map\n ): Promise {\n super.firstUpdated(_changedProperties);\n\n const container = this.shadowRoot?.getElementById('xterm-container');\n if (!container) return;\n\n // Get current theme from domtools\n const domtoolsInstance = await this.domtoolsPromise;\n const isBright = domtoolsInstance.themeManager.goBrightBoolean;\n\n // Load xterm from CDN\n const libLoader = DeesServiceLibLoader.getInstance();\n const [xtermBundle, fitAddonBundle] = await Promise.all([\n libLoader.loadXterm(),\n libLoader.loadXtermFitAddon(),\n ]);\n\n // Create xterm terminal in read-only mode using CDN-loaded module\n this.terminal = new xtermBundle.Terminal({\n convertEol: true,\n cursorBlink: false,\n disableStdin: true,\n fontSize: 12,\n fontFamily: \"'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace\",\n theme: this.getTerminalTheme(isBright),\n scrollback: 1000,\n });\n\n // Subscribe to theme changes\n this.terminalThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe((goBright: boolean) => {\n if (this.terminal) {\n this.terminal.options.theme = this.getTerminalTheme(goBright);\n }\n });\n\n this.fitAddon = new fitAddonBundle.FitAddon();\n this.terminal.loadAddon(this.fitAddon);\n this.terminal.open(container);\n this.fitAddon.fit();\n\n // Set up resize observer to refit terminal\n this.resizeObserver = new ResizeObserver(() => {\n if (this.fitAddon) {\n this.fitAddon.fit();\n }\n });\n this.resizeObserver.observe(container);\n\n // Write any existing lines\n this.writeNewLines();\n }\n\n public async updated(changedProperties: Map) {\n super.updated(changedProperties);\n\n if (changedProperties.has('lines')) {\n this.writeNewLines();\n }\n }\n\n private writeNewLines() {\n if (!this.terminal) return;\n\n // Write only new lines since last update\n const newLines = this.lines.slice(this.lastLineCount);\n for (const line of newLines) {\n this.terminal.writeln(line);\n }\n this.lastLineCount = this.lines.length;\n }\n\n public async disconnectedCallback(): Promise {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n if (this.terminalThemeSubscription) {\n this.terminalThemeSubscription.unsubscribe();\n this.terminalThemeSubscription = null;\n }\n if (this.terminal) {\n this.terminal.dispose();\n this.terminal = null;\n }\n await super.disconnectedCallback();\n }\n\n /**\n * Add a new line to the output\n */\n public addLine(line: string) {\n this.lines = [...this.lines, line];\n }\n\n /**\n * Clear all output lines\n */\n public clear() {\n this.lines = [];\n this.lastLineCount = 0;\n if (this.terminal) {\n this.terminal.clear();\n }\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment } from '../../00group-runtime/index.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport type { IRunProcessEventDetail, ITerminalProcessCompleteEventDetail } from '../dees-workspace-terminal/interfaces.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-bottombar': DeesWorkspaceBottombar;\n }\n}\n\ninterface IOutdatedPackage {\n name: string;\n current: string;\n wanted: string;\n latest: string;\n type: 'dependencies' | 'devDependencies';\n}\n\n@customElement('dees-workspace-bottombar')\nexport class DeesWorkspaceBottombar extends DeesElement {\n // INSTANCE\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n // Script runner state\n @state()\n accessor scripts: Record = {};\n\n // Package checker state\n @state()\n accessor packageStatus: 'checking' | 'up-to-date' | 'updates-available' | 'error' | 'idle' = 'idle';\n\n @state()\n accessor outdatedPackages: IOutdatedPackage[] = [];\n\n @state()\n accessor isCheckingPackages: boolean = false;\n\n // Track if we have a pending package update that should trigger refresh\n private pendingPackageUpdate: boolean = false;\n\n // Bound handler for process-complete events\n private handleProcessComplete = (e: CustomEvent) => {\n // If we have a pending package update and a process completed, refresh\n if (this.pendingPackageUpdate) {\n this.pendingPackageUpdate = false;\n // Small delay to let pnpm-lock.yaml update\n setTimeout(() => this.checkPackages(), 500);\n }\n };\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n height: 24px;\n flex-shrink: 0;\n }\n\n .bottom-bar {\n height: 24px;\n display: flex;\n align-items: center;\n padding: 0 8px;\n gap: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 6%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n font-size: 11px;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .widget {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 6px;\n border-radius: 3px;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease;\n white-space: nowrap;\n }\n\n .widget:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};\n }\n\n .widget dees-icon {\n flex-shrink: 0;\n }\n\n .widget-separator {\n width: 1px;\n height: 14px;\n background: ${cssManager.bdTheme('hsl(0 0% 80%)', 'hsl(0 0% 20%)')};\n margin: 0 4px;\n }\n\n .widget.running {\n color: ${cssManager.bdTheme('hsl(210 100% 45%)', 'hsl(210 100% 60%)')};\n }\n\n .widget.up-to-date {\n color: ${cssManager.bdTheme('hsl(142 70% 35%)', 'hsl(142 70% 50%)')};\n }\n\n .widget.updates-available {\n color: ${cssManager.bdTheme('hsl(38 92% 45%)', 'hsl(38 92% 55%)')};\n }\n\n .widget.error {\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .spinning {\n animation: spin 1s linear infinite;\n }\n\n .spacer {\n flex: 1;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n \n \n \n Scripts\n
      \n\n
      \n\n \n \n \n ${this.getPackageStatusText()}\n \n\n
      \n\n \n \n `;\n }\n\n public async connectedCallback() {\n await super.connectedCallback();\n // Listen for process-complete events to refresh after package updates\n window.addEventListener('process-complete', this.handleProcessComplete as EventListener);\n }\n\n public async disconnectedCallback() {\n await super.disconnectedCallback();\n window.removeEventListener('process-complete', this.handleProcessComplete as EventListener);\n }\n\n async firstUpdated() {\n await this.loadScripts();\n await this.checkPackages();\n }\n\n async updated(changedProperties: Map) {\n if (changedProperties.has('executionEnvironment') && this.executionEnvironment) {\n await this.loadScripts();\n await this.checkPackages();\n }\n }\n\n // ========== Script Runner ==========\n\n private async loadScripts(): Promise {\n if (!this.executionEnvironment) return;\n\n try {\n const packageJsonExists = await this.executionEnvironment.exists('/package.json');\n if (!packageJsonExists) {\n this.scripts = {};\n return;\n }\n\n const content = await this.executionEnvironment.readFile('/package.json');\n const packageJson = JSON.parse(content);\n this.scripts = packageJson.scripts || {};\n } catch (error) {\n console.warn('Failed to load scripts from package.json:', error);\n this.scripts = {};\n }\n }\n\n private async handleScriptClick(e: MouseEvent): Promise {\n e.stopPropagation();\n\n const scriptNames = Object.keys(this.scripts);\n if (scriptNames.length === 0) {\n return;\n }\n\n const menuItems = scriptNames.map(name => ({\n name: name,\n iconName: 'lucide:terminal' as const,\n action: async () => {\n await this.runScript(name);\n },\n }));\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async runScript(scriptName: string): Promise {\n if (!this.executionEnvironment) return;\n\n // Emit run-process event for the workspace to create a terminal tab\n const detail: IRunProcessEventDetail = {\n type: 'script',\n label: scriptName,\n command: 'pnpm',\n args: ['run', scriptName],\n metadata: { scriptName },\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n }\n\n // ========== Package Checker ==========\n\n private async checkPackages(): Promise {\n if (!this.executionEnvironment) {\n this.packageStatus = 'idle';\n return;\n }\n\n try {\n const packageJsonExists = await this.executionEnvironment.exists('/package.json');\n if (!packageJsonExists) {\n this.packageStatus = 'idle';\n return;\n }\n\n this.packageStatus = 'checking';\n this.isCheckingPackages = true;\n\n // Run pnpm outdated --json with timeout\n const process = await this.executionEnvironment.spawn('pnpm', ['outdated', '--json']);\n\n let output = '';\n\n // Collect output asynchronously - don't await, stream may not close if no output\n const outputReader = process.output.getReader();\n const readOutput = async () => {\n try {\n while (true) {\n const { done, value } = await outputReader.read();\n if (done) break;\n output += value;\n }\n } catch {\n // Ignore stream errors\n }\n };\n // Start reading but don't await - we'll use whatever we have when process exits\n readOutput();\n\n // Wait for process exit with timeout (10 seconds)\n const exitCode = await Promise.race([\n process.exit,\n new Promise((resolve) => setTimeout(() => resolve(-1), 10000)),\n ]);\n\n // Cancel reader when done\n try {\n await outputReader.cancel();\n } catch {\n // Ignore cancel errors\n }\n\n // Handle timeout\n if (exitCode === -1) {\n console.warn('Package check timed out');\n this.packageStatus = 'error';\n return;\n }\n\n // pnpm outdated returns exit code 1 if there are outdated packages\n if (exitCode === 0) {\n // No outdated packages\n this.packageStatus = 'up-to-date';\n this.outdatedPackages = [];\n } else {\n // Parse outdated packages\n try {\n const outdatedData = JSON.parse(output);\n this.outdatedPackages = this.parseOutdatedPackages(outdatedData);\n this.packageStatus = this.outdatedPackages.length > 0 ? 'updates-available' : 'up-to-date';\n } catch {\n // If parsing fails but exit code is 1, assume there are updates\n this.packageStatus = 'updates-available';\n this.outdatedPackages = [];\n }\n }\n } catch (error) {\n console.warn('Failed to check for package updates:', error);\n this.packageStatus = 'error';\n } finally {\n this.isCheckingPackages = false;\n }\n }\n\n private parseOutdatedPackages(data: any): IOutdatedPackage[] {\n const packages: IOutdatedPackage[] = [];\n\n // pnpm outdated --json returns an object with package names as keys\n if (typeof data === 'object' && data !== null) {\n for (const [name, info] of Object.entries(data)) {\n const pkgInfo = info as any;\n packages.push({\n name,\n current: pkgInfo.current || 'unknown',\n wanted: pkgInfo.wanted || pkgInfo.current || 'unknown',\n latest: pkgInfo.latest || pkgInfo.wanted || 'unknown',\n type: pkgInfo.dependencyType === 'devDependencies' ? 'devDependencies' : 'dependencies',\n });\n }\n }\n\n return packages;\n }\n\n private async handlePackageClick(e: MouseEvent): Promise {\n e.stopPropagation();\n\n const menuItems: Parameters[1] = [];\n\n // Refresh option - show output in terminal\n menuItems.push({\n name: this.isCheckingPackages ? 'Checking...' : 'Check for updates',\n iconName: 'lucide:refreshCw',\n action: async () => {\n if (this.isCheckingPackages) return;\n\n // Create terminal tab to show pnpm outdated output\n const detail: IRunProcessEventDetail = {\n type: 'package-update',\n label: 'check packages',\n command: 'pnpm',\n args: ['outdated'],\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n\n // Also refresh the widget status silently after a delay\n setTimeout(() => this.checkPackages(), 3000);\n },\n });\n\n if (this.outdatedPackages.length > 0) {\n menuItems.push({ divider: true });\n\n // Show outdated packages (max 10)\n const displayPackages = this.outdatedPackages.slice(0, 10);\n for (const pkg of displayPackages) {\n menuItems.push({\n name: `${pkg.name}: ${pkg.current} \u2192 ${pkg.latest}`,\n iconName: 'lucide:package',\n action: async () => {\n // Update single package\n await this.updatePackage(pkg.name);\n },\n });\n }\n\n if (this.outdatedPackages.length > 10) {\n menuItems.push({\n name: `... and ${this.outdatedPackages.length - 10} more`,\n iconName: 'lucide:moreHorizontal',\n action: async () => {},\n });\n }\n\n menuItems.push({ divider: true });\n\n menuItems.push({\n name: 'Update all packages',\n iconName: 'lucide:arrowUpCircle',\n action: async () => {\n await this.updateAllPackages();\n },\n });\n }\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async updatePackage(packageName: string): Promise {\n if (!this.executionEnvironment) return;\n\n // Mark that we have a pending update - will trigger refresh when complete\n this.pendingPackageUpdate = true;\n\n // Emit run-process event for the workspace to create a terminal tab\n const detail: IRunProcessEventDetail = {\n type: 'package-update',\n label: `update ${packageName}`,\n command: 'pnpm',\n args: ['update', '--latest', packageName],\n metadata: { packageName },\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n }\n\n private async updateAllPackages(): Promise {\n if (!this.executionEnvironment) return;\n\n // Mark that we have a pending update - will trigger refresh when complete\n this.pendingPackageUpdate = true;\n\n // Emit run-process event for the workspace to create a terminal tab\n const detail: IRunProcessEventDetail = {\n type: 'package-update',\n label: 'update all',\n command: 'pnpm',\n args: ['update', '--latest'],\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n }\n\n // ========== Helper Methods ==========\n\n private getPackageStatusClass(): string {\n if (this.isCheckingPackages) return '';\n return this.packageStatus;\n }\n\n private getPackageIcon(): string {\n if (this.isCheckingPackages) return 'lucide:loader2';\n\n switch (this.packageStatus) {\n case 'up-to-date':\n return 'lucide:checkCircle';\n case 'updates-available':\n return 'lucide:alertCircle';\n case 'error':\n return 'lucide:xCircle';\n default:\n return 'lucide:package';\n }\n }\n\n private getPackageStatusText(): string {\n if (this.isCheckingPackages) return 'Checking...';\n\n switch (this.packageStatus) {\n case 'up-to-date':\n return 'Up to date';\n case 'updates-available':\n return `${this.outdatedPackages.length} update${this.outdatedPackages.length !== 1 ? 's' : ''}`;\n case 'error':\n return 'Check failed';\n default:\n return 'Packages';\n }\n }\n\n private getPackageTooltip(): string {\n if (this.isCheckingPackages) return 'Checking for package updates...';\n\n switch (this.packageStatus) {\n case 'up-to-date':\n return 'All packages are up to date';\n case 'updates-available':\n return `${this.outdatedPackages.length} package update${this.outdatedPackages.length !== 1 ? 's' : ''} available`;\n case 'error':\n return 'Failed to check for updates. Click to retry.';\n default:\n return 'Click to check for package updates';\n }\n }\n\n // ========== Public Methods ==========\n\n /**\n * Manually trigger a package check\n */\n public async refreshPackageStatus(): Promise {\n await this.checkPackages();\n }\n\n /**\n * Manually reload scripts from package.json\n */\n public async refreshScripts(): Promise {\n await this.loadScripts();\n }\n}\n", "import type * as monaco from 'monaco-editor';\nimport type { IExecutionEnvironment } from '../../00group-runtime/index.js';\n\n// Monaco TypeScript API types (runtime API still exists, types deprecated in 0.55+)\ninterface IExtraLibDisposable {\n dispose(): void;\n}\n\ninterface IMonacoTypeScriptAPI {\n typescriptDefaults: {\n setCompilerOptions(options: Record): void;\n setDiagnosticsOptions(options: Record): void;\n addExtraLib(content: string, filePath?: string): IExtraLibDisposable;\n setEagerModelSync(value: boolean): void;\n };\n ScriptTarget: { ES2020: number };\n ModuleKind: { ESNext: number };\n ModuleResolutionKind: { NodeJs: number; Bundler?: number };\n}\n\n/**\n * Manages TypeScript IntelliSense by loading type definitions\n * from the virtual filesystem into Monaco.\n */\nexport class TypeScriptIntelliSenseManager {\n private loadedLibs: Set = new Set();\n private notFoundPackages: Set = new Set(); // Packages checked but not found\n private monacoInstance: typeof monaco | null = null;\n private executionEnvironment: IExecutionEnvironment | null = null;\n\n // Cache of file contents for synchronous access and module resolution\n private fileCache: Map = new Map();\n\n // Track extra libs added for cleanup\n private addedExtraLibs: Map = new Map();\n\n /**\n * Get TypeScript API with proper typing for Monaco 0.55+\n */\n private get tsApi(): IMonacoTypeScriptAPI | null {\n if (!this.monacoInstance) return null;\n return (this.monacoInstance.languages as any).typescript as IMonacoTypeScriptAPI;\n }\n\n /**\n * Initialize with Monaco and execution environment\n */\n public async init(\n monacoInst: typeof monaco,\n env: IExecutionEnvironment\n ): Promise {\n this.monacoInstance = monacoInst;\n this.executionEnvironment = env;\n this.configureCompilerOptions();\n // Load all project TypeScript/JavaScript files into Monaco for cross-file resolution\n await this.loadAllProjectFiles();\n }\n\n /**\n * Recursively load all .ts/.js files from the virtual filesystem into Monaco\n */\n private async loadAllProjectFiles(): Promise {\n if (!this.executionEnvironment) return;\n await this.loadFilesFromDirectory('/');\n }\n\n /**\n * Recursively load files from a directory\n */\n private async loadFilesFromDirectory(dirPath: string): Promise {\n if (!this.executionEnvironment) return;\n\n try {\n const entries = await this.executionEnvironment.readDir(dirPath);\n\n for (const entry of entries) {\n const fullPath = dirPath === '/' ? `/${entry.name}` : `${dirPath}/${entry.name}`;\n\n // Skip node_modules - too large and handled separately via addExtraLib\n if (entry.name === 'node_modules') continue;\n\n if (entry.type === 'directory') {\n await this.loadFilesFromDirectory(fullPath);\n } else if (entry.type === 'file') {\n const ext = entry.name.split('.').pop()?.toLowerCase();\n if (ext === 'ts' || ext === 'tsx' || ext === 'js' || ext === 'jsx') {\n try {\n const content = await this.executionEnvironment.readFile(fullPath);\n this.addFileModel(fullPath, content);\n } catch {\n // Ignore files that can't be read\n }\n }\n }\n }\n } catch {\n // Directory might not exist or not be readable\n }\n }\n\n private configureCompilerOptions(): void {\n const ts = this.tsApi;\n if (!ts) return;\n\n ts.typescriptDefaults.setCompilerOptions({\n target: ts.ScriptTarget.ES2020,\n module: ts.ModuleKind.ESNext,\n // Use Bundler resolution if available (Monaco 0.45+), fallback to NodeJs\n moduleResolution: ts.ModuleResolutionKind.Bundler ?? ts.ModuleResolutionKind.NodeJs,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n strict: true,\n noEmit: true,\n allowJs: true,\n checkJs: false,\n allowNonTsExtensions: true,\n lib: ['es2020', 'dom', 'dom.iterable'],\n // Set baseUrl to root for resolving absolute imports\n baseUrl: '/',\n // Allow importing .ts extensions directly (useful for some setups)\n allowImportingTsExtensions: true,\n // Resolve JSON modules\n resolveJsonModule: true,\n });\n\n ts.typescriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: false,\n noSyntaxValidation: false,\n });\n\n // Enable eager model sync so TypeScript immediately processes all models\n // This is critical for cross-file IntelliSense to work without requiring edits\n ts.typescriptDefaults.setEagerModelSync(true);\n }\n\n /**\n * Parse imports from TypeScript/JavaScript content\n */\n public parseImports(content: string): string[] {\n const imports: string[] = [];\n\n // Match ES6 imports: import { x } from 'package' or import 'package'\n const importRegex = /import\\s+(?:[\\w*{}\\s,]+from\\s+)?['\"]([^'\"]+)['\"]/g;\n let match: RegExpExecArray | null;\n\n while ((match = importRegex.exec(content)) !== null) {\n const importPath = match[1];\n // Only process non-relative imports (npm packages)\n if (!importPath.startsWith('.') && !importPath.startsWith('/')) {\n const packageName = importPath.startsWith('@')\n ? importPath.split('/').slice(0, 2).join('/') // @scope/package\n : importPath.split('/')[0]; // package\n imports.push(packageName);\n }\n }\n\n // Match require calls: require('package')\n const requireRegex = /require\\s*\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/g;\n while ((match = requireRegex.exec(content)) !== null) {\n const importPath = match[1];\n if (!importPath.startsWith('.') && !importPath.startsWith('/')) {\n const packageName = importPath.startsWith('@')\n ? importPath.split('/').slice(0, 2).join('/')\n : importPath.split('/')[0];\n imports.push(packageName);\n }\n }\n\n return [...new Set(imports)];\n }\n\n /**\n * Load type definitions for a package from virtual FS\n */\n public async loadTypesForPackage(packageName: string): Promise {\n if (!this.monacoInstance || !this.executionEnvironment) return;\n if (this.loadedLibs.has(packageName)) return;\n if (this.notFoundPackages.has(packageName)) return; // Skip packages we already checked\n\n try {\n let typesLoaded = await this.tryLoadPackageTypes(packageName);\n if (!typesLoaded) {\n typesLoaded = await this.tryLoadAtTypesPackage(packageName);\n }\n if (typesLoaded) {\n this.loadedLibs.add(packageName);\n } else {\n // Cache that this package wasn't found to avoid repeated filesystem checks\n this.notFoundPackages.add(packageName);\n }\n } catch (error) {\n console.warn(`Failed to load types for ${packageName}:`, error);\n }\n }\n\n private async tryLoadPackageTypes(packageName: string): Promise {\n const ts = this.tsApi;\n if (!this.executionEnvironment || !ts) return false;\n\n const basePath = `/node_modules/${packageName}`;\n\n try {\n // Check package.json for types field\n const packageJsonPath = `${basePath}/package.json`;\n const packageJsonExists = await this.executionEnvironment.exists(packageJsonPath);\n\n if (packageJsonExists) {\n const packageJsonContent = await this.executionEnvironment.readFile(packageJsonPath);\n const packageJson = JSON.parse(packageJsonContent);\n\n // Add package.json to Monaco so TypeScript can resolve the types field\n ts.typescriptDefaults.addExtraLib(packageJsonContent, `file://${packageJsonPath}`);\n\n const typesPath = packageJson.types || packageJson.typings;\n if (typesPath) {\n // Load all .d.ts files from the package, not just the entry point\n // Modern packages often have multiple declaration files with imports\n await this.loadAllDtsFilesFromPackage(basePath);\n return true;\n }\n }\n\n // Try common locations - if any exist, load all .d.ts files\n const commonPaths = [\n `${basePath}/index.d.ts`,\n `${basePath}/dist/index.d.ts`,\n `${basePath}/lib/index.d.ts`,\n ];\n\n for (const dtsPath of commonPaths) {\n if (await this.executionEnvironment.exists(dtsPath)) {\n await this.loadAllDtsFilesFromPackage(basePath);\n return true;\n }\n }\n\n return false;\n } catch (error) {\n console.error(`Failed to load package types for ${packageName}:`, error);\n return false;\n }\n }\n\n /**\n * Recursively load all .d.ts files from a package directory\n */\n private async loadAllDtsFilesFromPackage(basePath: string): Promise {\n const ts = this.tsApi;\n if (!this.executionEnvironment || !ts) return;\n\n await this.loadDtsFilesFromDirectory(basePath);\n }\n\n /**\n * Recursively load .d.ts files from a directory\n */\n private async loadDtsFilesFromDirectory(dirPath: string): Promise {\n const ts = this.tsApi;\n if (!this.executionEnvironment || !ts) return;\n\n try {\n const entries = await this.executionEnvironment.readDir(dirPath);\n\n for (const entry of entries) {\n const fullPath = dirPath === '/' ? `/${entry.name}` : `${dirPath}/${entry.name}`;\n\n // Skip nested node_modules (shouldn't happen in a package but be safe)\n if (entry.name === 'node_modules') continue;\n\n if (entry.type === 'directory') {\n await this.loadDtsFilesFromDirectory(fullPath);\n } else if (entry.type === 'file' && entry.name.endsWith('.d.ts')) {\n try {\n const content = await this.executionEnvironment.readFile(fullPath);\n ts.typescriptDefaults.addExtraLib(content, `file://${fullPath}`);\n } catch {\n // Ignore files that can't be read\n }\n }\n }\n } catch {\n // Directory might not be readable\n }\n }\n\n private async tryLoadAtTypesPackage(packageName: string): Promise {\n if (!this.executionEnvironment) return false;\n\n // Handle scoped packages: @scope/package -> @types/scope__package\n const typesPackageName = packageName.startsWith('@')\n ? `@types/${packageName.slice(1).replace('/', '__')}`\n : `@types/${packageName}`;\n\n const basePath = `/node_modules/${typesPackageName}`;\n\n try {\n const indexPath = `${basePath}/index.d.ts`;\n if (await this.executionEnvironment.exists(indexPath)) {\n // Load all .d.ts files from the @types package\n await this.loadAllDtsFilesFromPackage(basePath);\n return true;\n }\n return false;\n } catch {\n return false;\n }\n }\n\n /**\n * Process content change and load types for any new imports\n */\n public async processContentChange(content: string): Promise {\n const imports = this.parseImports(content);\n\n for (const packageName of imports) {\n if (!this.loadedLibs.has(packageName)) {\n await this.loadTypesForPackage(packageName);\n }\n }\n }\n\n /**\n * Scan node_modules for packages and load types for any not yet loaded.\n * Called when node_modules changes (e.g., after pnpm install).\n */\n public async scanAndLoadNewPackageTypes(): Promise {\n if (!this.executionEnvironment) return;\n\n // Clear not-found cache so newly installed packages can be detected\n this.notFoundPackages.clear();\n\n try {\n // Check if node_modules exists\n if (!await this.executionEnvironment.exists('/node_modules')) return;\n\n // Read top-level node_modules\n const entries = await this.executionEnvironment.readDir('/node_modules');\n\n for (const entry of entries) {\n if (entry.type !== 'directory') continue;\n\n if (entry.name.startsWith('@')) {\n // Scoped package - read subdirectories\n try {\n const scopedPath = `/node_modules/${entry.name}`;\n const scopedEntries = await this.executionEnvironment.readDir(scopedPath);\n for (const scopedEntry of scopedEntries) {\n if (scopedEntry.type === 'directory') {\n const packageName = `${entry.name}/${scopedEntry.name}`;\n await this.loadTypesForPackage(packageName);\n }\n }\n } catch {\n // Skip if we can't read scoped directory\n }\n } else if (!entry.name.startsWith('.')) {\n // Regular package\n await this.loadTypesForPackage(entry.name);\n }\n }\n } catch (error) {\n console.warn('Failed to scan node_modules:', error);\n }\n }\n\n /**\n * Add a file model to Monaco for cross-file IntelliSense\n * Also registers the file with TypeScript via addExtraLib for module resolution\n */\n public addFileModel(path: string, content: string): void {\n if (!this.monacoInstance) return;\n\n // Cache the content for sync access\n this.fileCache.set(path, content);\n\n // Create/update the editor model\n const uri = this.monacoInstance.Uri.parse(`file://${path}`);\n const existingModel = this.monacoInstance.editor.getModel(uri);\n\n if (existingModel) {\n // Only update if content actually changed (prevents cursor reset)\n if (existingModel.getValue() !== content) {\n existingModel.setValue(content);\n }\n } else {\n const language = this.getLanguageFromPath(path);\n this.monacoInstance.editor.createModel(content, language, uri);\n }\n\n // Also add as extra lib for TypeScript module resolution\n // This is critical - TypeScript's resolver uses extra libs, not editor models\n this.addFileAsExtraLib(path, content);\n }\n\n /**\n * Add a file as an extra lib for TypeScript module resolution.\n * This enables TypeScript to resolve imports to project files.\n */\n private addFileAsExtraLib(path: string, content: string): void {\n const ts = this.tsApi;\n if (!ts) return;\n\n // Dispose existing lib if present (for updates)\n const existing = this.addedExtraLibs.get(path);\n if (existing) {\n existing.dispose();\n }\n\n // Add the file with its actual path\n const filePath = `file://${path}`;\n const disposable = ts.typescriptDefaults.addExtraLib(content, filePath);\n this.addedExtraLibs.set(path, disposable);\n\n // For .ts files, also add with .js extension to handle ESM imports\n // (e.g., import from './utils.js' should resolve to ./utils.ts)\n if (path.endsWith('.ts') && !path.endsWith('.d.ts')) {\n const jsPath = path.replace(/\\.ts$/, '.js');\n const jsFilePath = `file://${jsPath}`;\n const jsDisposable = ts.typescriptDefaults.addExtraLib(content, jsFilePath);\n this.addedExtraLibs.set(jsPath, jsDisposable);\n this.fileCache.set(jsPath, content);\n } else if (path.endsWith('.tsx')) {\n const jsxPath = path.replace(/\\.tsx$/, '.jsx');\n const jsxFilePath = `file://${jsxPath}`;\n const jsxDisposable = ts.typescriptDefaults.addExtraLib(content, jsxFilePath);\n this.addedExtraLibs.set(jsxPath, jsxDisposable);\n this.fileCache.set(jsxPath, content);\n }\n }\n\n /**\n * Get cached file content for synchronous access\n */\n public getFileContent(path: string): string | undefined {\n return this.fileCache.get(path);\n }\n\n private getLanguageFromPath(path: string): string {\n const ext = path.split('.').pop()?.toLowerCase();\n switch (ext) {\n case 'ts':\n case 'tsx':\n return 'typescript';\n case 'js':\n case 'jsx':\n return 'javascript';\n case 'json':\n return 'json';\n default:\n return 'plaintext';\n }\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { MONACO_VERSION } from '../dees-workspace-monaco/version.js';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport '../../00group-button/dees-button/dees-button.js';\n\nimport type * as monaco from 'monaco-editor';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-diff-editor': DeesWorkspaceDiffEditor;\n }\n}\n\n@customElement('dees-workspace-diff-editor')\nexport class DeesWorkspaceDiffEditor extends DeesElement {\n // DEMO\n public static demo = () => html`\n \n `;\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n public diffEditorDeferred = domtools.plugins.smartpromise.defer();\n\n @property({ type: String })\n accessor originalContent: string = '';\n\n @property({ type: String })\n accessor modifiedContent: string = '';\n\n @property({ type: String })\n accessor originalLabel: string = 'Disk Version';\n\n @property({ type: String })\n accessor modifiedLabel: string = 'Local Version';\n\n @property({ type: String })\n accessor language: string = 'typescript';\n\n @property({ type: String })\n accessor filePath: string = '';\n\n private diffEditor: monaco.editor.IStandaloneDiffEditor | null = null;\n private monacoThemeSubscription: domtools.plugins.smartrx.rxjs.Subscription | null = null;\n private originalModel: monaco.editor.ITextModel | null = null;\n private modifiedModel: monaco.editor.ITextModel | null = null;\n\n constructor() {\n super();\n domtools.DomTools.setupDomTools();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .diff-wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n\n .diff-toolbar {\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 16px;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 12%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n flex-shrink: 0;\n }\n\n .diff-info {\n display: flex;\n align-items: center;\n gap: 12px;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n }\n\n .diff-filename {\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n }\n\n .diff-labels {\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .diff-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .diff-container {\n flex: 1;\n min-height: 0;\n width: 100%;\n }\n\n .nav-buttons {\n display: flex;\n gap: 4px;\n }\n\n .action-buttons {\n display: flex;\n gap: 8px;\n margin-left: 16px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const fileName = this.filePath.split('/').pop() || 'file';\n\n return html`\n
      \n
      \n
      \n ${fileName}\n ${this.originalLabel} \u2194 ${this.modifiedLabel}\n
      \n
      \n
      \n Previous\n Next\n
      \n
      \n Use Local\n Use Disk\n Close\n
      \n
      \n
      \n
      \n
      \n `;\n }\n\n public async firstUpdated(): Promise {\n await super.firstUpdated(new Map());\n await this.initDiffEditor();\n }\n\n private async initDiffEditor(): Promise {\n const container = this.shadowRoot?.querySelector('.diff-container') as HTMLElement;\n if (!container) return;\n\n const monacoCdnBase = `https://cdn.jsdelivr.net/npm/monaco-editor@${MONACO_VERSION}`;\n\n // Wait for Monaco to be loaded (should already be loaded by dees-workspace-monaco)\n let monacoInstance = (window as any).monaco as typeof monaco;\n\n if (!monacoInstance) {\n // Monaco not loaded yet, wait for it\n await new Promise((resolve) => {\n const checkMonaco = setInterval(() => {\n if ((window as any).monaco) {\n clearInterval(checkMonaco);\n resolve();\n }\n }, 100);\n });\n monacoInstance = (window as any).monaco as typeof monaco;\n }\n\n // Get current theme from domtools\n const domtoolsInstance = await this.domtoolsPromise;\n const isBright = domtoolsInstance.themeManager.goBrightBoolean;\n const initialTheme = isBright ? 'vs' : 'vs-dark';\n\n // Create unique URIs for models\n const timestamp = Date.now();\n const originalUri = monacoInstance.Uri.parse(`diff://original/${timestamp}${this.filePath}`);\n const modifiedUri = monacoInstance.Uri.parse(`diff://modified/${timestamp}${this.filePath}`);\n\n // Create models\n this.originalModel = monacoInstance.editor.createModel(\n this.originalContent,\n this.language,\n originalUri\n );\n this.modifiedModel = monacoInstance.editor.createModel(\n this.modifiedContent,\n this.language,\n modifiedUri\n );\n\n // Create diff editor\n this.diffEditor = monacoInstance.editor.createDiffEditor(container, {\n automaticLayout: true,\n readOnly: false, // Allow editing the modified (local) side\n originalEditable: false, // Disk version is read-only\n renderSideBySide: true,\n ignoreTrimWhitespace: false,\n fontSize: 14,\n minimap: {\n enabled: false,\n },\n });\n\n // Set the theme\n monacoInstance.editor.setTheme(initialTheme);\n\n this.diffEditor.setModel({\n original: this.originalModel,\n modified: this.modifiedModel,\n });\n\n // Subscribe to theme changes\n this.monacoThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe(\n (goBright: boolean) => {\n const newTheme = goBright ? 'vs' : 'vs-dark';\n monacoInstance.editor.setTheme(newTheme);\n }\n );\n\n // Inject Monaco CSS if not already present\n const cssId = 'monaco-diff-editor-css';\n if (!this.shadowRoot?.getElementById(cssId)) {\n const cssResponse = await fetch(`${monacoCdnBase}/min/vs/editor/editor.main.css`);\n const cssText = await cssResponse.text();\n const styleElement = document.createElement('style');\n styleElement.id = cssId;\n styleElement.textContent = cssText;\n this.shadowRoot?.append(styleElement);\n }\n\n // Navigate to first diff after a short delay\n setTimeout(() => {\n try {\n this.diffEditor?.revealFirstDiff();\n } catch {\n // Ignore if no diffs\n }\n }, 100);\n\n this.diffEditorDeferred.resolve(this.diffEditor);\n }\n\n public goToNextDiff(): void {\n try {\n this.diffEditor?.goToDiff('next');\n } catch {\n // Ignore if no more diffs\n }\n }\n\n public goToPreviousDiff(): void {\n try {\n this.diffEditor?.goToDiff('previous');\n } catch {\n // Ignore if no more diffs\n }\n }\n\n public acceptLocal(): void {\n // User wants to keep local version (potentially with edits made in diff view)\n const modifiedContent = this.diffEditor?.getModifiedEditor().getValue() || this.modifiedContent;\n this.dispatchEvent(\n new CustomEvent('diff-resolved', {\n detail: { action: 'use-local', content: modifiedContent },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public acceptDisk(): void {\n // User wants disk version\n this.dispatchEvent(\n new CustomEvent('diff-resolved', {\n detail: { action: 'use-disk', content: this.originalContent },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public close(): void {\n this.dispatchEvent(\n new CustomEvent('diff-closed', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n\n if (this.monacoThemeSubscription) {\n this.monacoThemeSubscription.unsubscribe();\n this.monacoThemeSubscription = null;\n }\n\n // Dispose models\n if (this.originalModel) {\n this.originalModel.dispose();\n this.originalModel = null;\n }\n if (this.modifiedModel) {\n this.modifiedModel.dispose();\n this.modifiedModel = null;\n }\n\n // Dispose editor\n if (this.diffEditor) {\n this.diffEditor.dispose();\n this.diffEditor = null;\n }\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment, IFileWatcher } from '../../00group-runtime/index.js';\nimport { WebContainerEnvironment } from '../../00group-runtime/index.js';\nimport type { FileSystemTree } from '@tempfix/webcontainer__api';\nimport '../dees-workspace-monaco/dees-workspace-monaco.js';\nimport '../dees-workspace-filetree/dees-workspace-filetree.js';\nimport { DeesWorkspaceFiletree } from '../dees-workspace-filetree/dees-workspace-filetree.js';\nimport '../dees-workspace-terminal/dees-workspace-terminal.js';\nimport { DeesWorkspaceTerminal } from '../dees-workspace-terminal/dees-workspace-terminal.js';\nimport type { IRunProcessEventDetail } from '../dees-workspace-terminal/interfaces.js';\nimport '../dees-workspace-terminal-preview/dees-workspace-terminal-preview.js';\nimport '../dees-workspace-bottombar/dees-workspace-bottombar.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { DeesWorkspaceMonaco } from '../dees-workspace-monaco/dees-workspace-monaco.js';\nimport { TypeScriptIntelliSenseManager } from './typescript-intellisense.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport type { DeesActionbar } from '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport '../dees-workspace-diff-editor/dees-workspace-diff-editor.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace': DeesWorkspace;\n }\n}\n\ninterface IOpenFile {\n path: string;\n name: string;\n content: string;\n modified: boolean;\n}\n\n@customElement('dees-workspace')\nexport class DeesWorkspace extends DeesElement {\n public static demo = () => {\n const env = new WebContainerEnvironment();\n\n // Mount initial TypeScript project files\n const mountPromise = (async () => {\n await env.init();\n\n const fileTree: FileSystemTree = {\n 'package.json': {\n file: {\n contents: JSON.stringify(\n {\n name: 'demo-project',\n version: '1.0.0',\n type: 'module',\n scripts: {\n build: 'tsc',\n dev: 'tsc --watch',\n },\n dependencies: {\n '@push.rocks/smartpromise': '^4.2.3',\n },\n devDependencies: {\n '@types/node': '^22.0.0',\n typescript: '^5.0.0',\n },\n },\n null,\n 2\n ),\n },\n },\n 'npmextra.json': {\n file: {\n contents: JSON.stringify(\n {\n deesEditorWorkspace: {\n onInit: 'pnpm install',\n },\n },\n null,\n 2\n ),\n },\n },\n 'tsconfig.json': {\n file: {\n contents: JSON.stringify(\n {\n compilerOptions: {\n target: 'ES2022',\n module: 'NodeNext',\n moduleResolution: 'NodeNext',\n strict: true,\n outDir: './dist',\n rootDir: './src',\n declaration: true,\n },\n include: ['src/**/*'],\n },\n null,\n 2\n ),\n },\n },\n src: {\n directory: {\n 'index.ts': {\n file: {\n contents: `// Main entry point\nimport { greet, formatName } from './utils.js';\n\nconst name = formatName('World');\nconsole.log(greet(name));\n\n// Example async function\nasync function main() {\n const result = await Promise.resolve('Hello from async!');\n console.log(result);\n}\n\nmain();\n`,\n },\n },\n 'utils.ts': {\n file: {\n contents: `// Utility functions\n\nexport interface IUser {\n firstName: string;\n lastName: string;\n}\n\nexport function greet(name: string): string {\n return \\`Hello, \\${name}!\\`;\n}\n\nexport function formatName(name: string): string {\n return name.trim().toUpperCase();\n}\n\nexport function createUser(firstName: string, lastName: string): IUser {\n return { firstName, lastName };\n}\n`,\n },\n },\n 'importtest.ts': {\n file: {\n contents: `// Test npm package imports\nimport * as smartpromise from '@push.rocks/smartpromise';\n\n// This should have IntelliSense showing defer() method\nconst deferred = smartpromise.defer();\n\n// Test using the deferred promise\nasync function testSmartPromise() {\n setTimeout(() => {\n deferred.resolve('Hello from smartpromise!');\n }, 100);\n\n const result = await deferred.promise;\n console.log(result);\n}\n\ntestSmartPromise();\n`,\n },\n },\n },\n },\n };\n\n await env.mount(fileTree);\n })();\n\n // Create container element for proper 100% height like dees-appui\n const containerElement = document.createElement('div');\n containerElement.style.cssText = 'position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden;';\n\n const workspaceElement = document.createElement('dees-workspace') as DeesWorkspace;\n workspaceElement.executionEnvironment = env;\n workspaceElement.initializationPromise = mountPromise;\n containerElement.appendChild(workspaceElement);\n\n return html`\n \n ${containerElement}\n \n `;\n };\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n @property({ attribute: false })\n accessor initializationPromise: Promise | null = null;\n\n @property({ type: Boolean })\n accessor showFileTree: boolean = true;\n\n @property({ type: Boolean })\n accessor showTerminal: boolean = true;\n\n @property({ type: Number })\n accessor fileTreeWidth: number = 250;\n\n @property({ type: Number })\n accessor terminalHeight: number = 200;\n\n @state()\n accessor openFiles: IOpenFile[] = [];\n\n @state()\n accessor activeFilePath: string = '';\n\n @state()\n accessor isTerminalCollapsed: boolean = false;\n\n @state()\n accessor isFileTreeCollapsed: boolean = false;\n\n @state()\n accessor isInitializing: boolean = true;\n\n @state()\n accessor activeBottomPanel: 'terminal' | 'problems' = 'terminal';\n\n @state()\n accessor diagnosticMarkers: Array<{\n message: string;\n severity: number;\n startLineNumber: number;\n startColumn: number;\n endLineNumber: number;\n endColumn: number;\n source?: string;\n resource: { path: string };\n }> = [];\n\n private editorElement: DeesWorkspaceMonaco | null = null;\n private initializationStarted: boolean = false;\n private intelliSenseManager: TypeScriptIntelliSenseManager | null = null;\n private intelliSenseInitialized: boolean = false;\n\n // node_modules watcher for auto-loading types\n private nodeModulesWatcher: IFileWatcher | null = null;\n private nodeModulesDebounceTimeout: ReturnType | null = null;\n private intelliSenseDebounceTimeout: ReturnType | null = null;\n\n // Open file watchers for external change detection\n private openFileWatchers: Map = new Map();\n private fileChangeDebounce: Map> = new Map();\n private actionbarElement: DeesActionbar | null = null;\n\n // Auto-save functionality\n @state()\n accessor autoSave: boolean = false;\n private autoSaveInterval: ReturnType | null = null;\n\n // Init terminal preview state\n @state()\n accessor initCommand: string = '';\n\n @state()\n accessor initOutput: string[] = [];\n\n // Resize state\n @state()\n accessor currentFileTreeWidth: number = 250;\n\n @state()\n accessor currentTerminalHeight: number = 200;\n\n @state()\n accessor isDraggingFileTree: boolean = false;\n\n @state()\n accessor isDraggingTerminal: boolean = false;\n\n // Diff view state\n @state()\n accessor showDiffView: boolean = false;\n\n @state()\n accessor diffViewConfig: {\n filePath: string;\n originalContent: string;\n modifiedContent: string;\n language: string;\n } | null = null;\n\n // Keyboard shortcut handler (bound for proper cleanup)\n private keydownHandler = (e: KeyboardEvent) => {\n // Cmd+S (Mac) or Ctrl+S (Windows/Linux) - Save\n if ((e.metaKey || e.ctrlKey) && e.key === 's' && !e.shiftKey) {\n e.preventDefault();\n this.saveActiveFile();\n }\n\n // Cmd+Shift+S - Save All\n if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.key.toLowerCase() === 's') {\n e.preventDefault();\n this.saveAllFiles();\n }\n };\n\n // ========== Filetree Resize Handlers ==========\n private handleFileTreeMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this.isDraggingFileTree = true;\n document.addEventListener('mousemove', this.handleFileTreeMouseMove);\n document.addEventListener('mouseup', this.handleFileTreeMouseUp);\n };\n\n private handleFileTreeMouseMove = (e: MouseEvent) => {\n if (!this.isDraggingFileTree) return;\n\n const containerRect = this.getBoundingClientRect();\n const mouseX = e.clientX - containerRect.left;\n\n // Clamp to min/max (150px min, 50% of container max)\n const minWidth = 150;\n const maxWidth = containerRect.width * 0.5;\n const newWidth = Math.max(minWidth, Math.min(maxWidth, mouseX));\n\n this.currentFileTreeWidth = newWidth;\n };\n\n private handleFileTreeMouseUp = () => {\n this.isDraggingFileTree = false;\n document.removeEventListener('mousemove', this.handleFileTreeMouseMove);\n document.removeEventListener('mouseup', this.handleFileTreeMouseUp);\n\n // Notify Monaco editor of size change\n window.dispatchEvent(new Event('resize'));\n };\n\n // ========== Terminal Resize Handlers ==========\n private handleTerminalMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this.isDraggingTerminal = true;\n document.addEventListener('mousemove', this.handleTerminalMouseMove);\n document.addEventListener('mouseup', this.handleTerminalMouseUp);\n };\n\n private handleTerminalMouseMove = (e: MouseEvent) => {\n if (!this.isDraggingTerminal) return;\n\n const containerRect = this.getBoundingClientRect();\n const mouseY = e.clientY - containerRect.top;\n\n // Calculate terminal height from bottom\n const terminalHeight = containerRect.height - mouseY;\n\n // Clamp to min/max (100px min, 70% of container max)\n const minHeight = 100;\n const maxHeight = containerRect.height * 0.7;\n const newHeight = Math.max(minHeight, Math.min(maxHeight, terminalHeight));\n\n this.currentTerminalHeight = newHeight;\n };\n\n private handleTerminalMouseUp = () => {\n this.isDraggingTerminal = false;\n document.removeEventListener('mousemove', this.handleTerminalMouseMove);\n document.removeEventListener('mouseup', this.handleTerminalMouseUp);\n\n // Notify Monaco editor of size change\n window.dispatchEvent(new Event('resize'));\n };\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 7%)')};\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .workspace-outer {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n\n .workspace-container {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n width: 100%;\n }\n\n .editor-area {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n overflow: hidden;\n }\n\n .filetree-panel {\n position: relative;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .filetree-panel.collapsed {\n width: 0 !important;\n }\n\n .editor-panel {\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n flex: 1;\n min-width: 200px;\n }\n\n .terminal-panel {\n position: relative;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .terminal-panel.collapsed {\n height: 32px !important;\n }\n\n .panel-header {\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 8%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n font-size: 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .panel-header-title {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .panel-header-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .panel-action {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .panel-action:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 18%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n }\n\n .tabs-bar {\n display: flex;\n align-items: stretch;\n height: 36px;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 8%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n overflow-x: auto;\n }\n\n .tab {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 12px;\n min-width: 120px;\n max-width: 200px;\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n cursor: pointer;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 10%)')};\n transition: all 0.15s ease;\n }\n\n .tab:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 92%)', 'hsl(0 0% 12%)')};\n }\n\n .tab.active {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n border-bottom: 2px solid ${cssManager.bdTheme('hsl(210 100% 50%)', 'hsl(210 100% 60%)')};\n }\n\n .tab-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .tab-close {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n opacity: 0;\n transition: all 0.15s ease;\n }\n\n .tab:hover .tab-close {\n opacity: 1;\n }\n\n .tab-close:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 25%)')};\n }\n\n .tab-modified {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .tabs-container {\n display: flex;\n flex: 1;\n overflow-x: auto;\n }\n\n .editor-menu-button {\n padding: 6px 8px;\n margin-right: 4px;\n margin-left: auto;\n border-radius: 4px;\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s, background 0.15s;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .editor-menu-button:hover {\n opacity: 1;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.08)', 'hsl(0 0% 100% / 0.1)')};\n }\n\n .editor-content {\n flex: 1;\n position: relative;\n }\n\n .terminal-content {\n position: absolute;\n top: 32px;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n .problems-content {\n position: absolute;\n top: 32px;\n left: 0;\n right: 0;\n bottom: 0;\n overflow-y: auto;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n }\n\n .panel-tabs {\n display: flex;\n align-items: center;\n gap: 0;\n }\n\n .panel-tab {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 12px;\n height: 32px;\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 55%)')};\n border-bottom: 2px solid transparent;\n transition: all 0.15s ease;\n }\n\n .panel-tab:hover {\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 75%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 12%)')};\n }\n\n .panel-tab.active {\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n border-bottom-color: ${cssManager.bdTheme('hsl(210 100% 50%)', 'hsl(210 100% 60%)')};\n }\n\n .panel-tab-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 9px;\n font-size: 11px;\n font-weight: 600;\n background: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 45%)')};\n color: white;\n }\n\n .panel-tab-badge.warning {\n background: ${cssManager.bdTheme('hsl(40 70% 50%)', 'hsl(40 70% 45%)')};\n }\n\n .panel-tab-badge.none {\n display: none;\n }\n\n .problems-list {\n padding: 4px 0;\n }\n\n .problem-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 6px 12px;\n cursor: pointer;\n font-size: 12px;\n line-height: 1.4;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n transition: background 0.1s ease;\n }\n\n .problem-item:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 15%)')};\n }\n\n .problem-icon {\n flex-shrink: 0;\n margin-top: 2px;\n }\n\n .problem-icon.error {\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n .problem-icon.warning {\n color: ${cssManager.bdTheme('hsl(40 70% 50%)', 'hsl(40 70% 60%)')};\n }\n\n .problem-details {\n flex: 1;\n min-width: 0;\n }\n\n .problem-message {\n word-break: break-word;\n }\n\n .problem-location {\n margin-top: 2px;\n font-size: 11px;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 55%)')};\n }\n\n .problems-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 55%)', 'hsl(0 0% 50%)')};\n font-size: 13px;\n gap: 8px;\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n font-size: 14px;\n gap: 8px;\n }\n\n .empty-state dees-icon {\n width: 48px;\n height: 48px;\n opacity: 0.5;\n }\n\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .initializing {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n font-size: 14px;\n gap: 12px;\n }\n\n .initializing dees-icon {\n animation: spin 1s linear infinite;\n }\n\n .initializing dees-workspace-terminal-preview {\n margin-top: 24px;\n width: 80%;\n max-width: 600px;\n height: 200px;\n }\n\n dees-workspace-filetree {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n dees-workspace-monaco {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n dees-workspace-terminal {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n /* Resize handles */\n .resize-handle-vertical {\n width: 6px;\n cursor: col-resize;\n background: transparent;\n transition: background 0.15s ease;\n position: relative;\n flex-shrink: 0;\n z-index: 10;\n }\n\n .resize-handle-vertical:hover,\n .resize-handle-vertical.dragging {\n background: ${cssManager.bdTheme('#3b82f6', '#58a6ff')};\n }\n\n .resize-handle-vertical::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 2px;\n height: 32px;\n background: ${cssManager.bdTheme('#9ca3af', '#6e7681')};\n border-radius: 1px;\n opacity: 0;\n transition: opacity 0.15s ease;\n }\n\n .resize-handle-vertical:hover::after,\n .resize-handle-vertical.dragging::after {\n opacity: 1;\n background: ${cssManager.bdTheme('#ffffff', '#ffffff')};\n }\n\n .resize-handle-horizontal {\n height: 6px;\n cursor: row-resize;\n background: transparent;\n transition: background 0.15s ease;\n position: relative;\n flex-shrink: 0;\n z-index: 10;\n }\n\n .resize-handle-horizontal:hover,\n .resize-handle-horizontal.dragging {\n background: ${cssManager.bdTheme('#3b82f6', '#58a6ff')};\n }\n\n .resize-handle-horizontal::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 32px;\n height: 2px;\n background: ${cssManager.bdTheme('#9ca3af', '#6e7681')};\n border-radius: 1px;\n opacity: 0;\n transition: opacity 0.15s ease;\n }\n\n .resize-handle-horizontal:hover::after,\n .resize-handle-horizontal.dragging::after {\n opacity: 1;\n background: ${cssManager.bdTheme('#ffffff', '#ffffff')};\n }\n\n /* Prevent text selection while dragging */\n .workspace-container.dragging {\n user-select: none;\n }\n\n .workspace-container.dragging .filetree-panel,\n .workspace-container.dragging .editor-panel,\n .workspace-container.dragging .terminal-panel {\n pointer-events: none;\n }\n\n `,\n ];\n\n public render(): TemplateResult {\n const containerClasses = [\n 'workspace-container',\n (this.isDraggingFileTree || this.isDraggingTerminal) ? 'dragging' : '',\n ].filter(Boolean).join(' ');\n\n if (this.isInitializing) {\n return html`\n
      \n \n Initializing workspace...\n \n
      \n `;\n }\n\n return html`\n
      \n
      \n \n ${this.showFileTree ? html`\n \n \n
      \n ${!this.isFileTreeCollapsed ? html`\n
      \n ` : ''}\n ` : ''}\n\n \n
      \n
      \n
      \n
      \n ${this.openFiles.map(file => html`\n this.activateFile(file.path)}\n >\n ${file.modified ? html`` : ''}\n ${file.name}\n this.closeFile(e, file.path)}>\n \n \n
      \n `)}\n
      \n
      \n \n
      \n
      \n
      \n ${this.showDiffView && this.diffViewConfig ? html`\n { this.showDiffView = false; this.diffViewConfig = null; }}\n >\n ` : this.openFiles.length === 0 ? html`\n
      \n \n Select a file to edit\n
      \n ` : html`\n \n `}\n
      \n \n
      \n\n \n ${this.showTerminal && !this.isTerminalCollapsed ? html`\n \n ` : ''}\n\n \n ${this.showTerminal ? html`\n \n
      \n
      \n this.activeBottomPanel = 'terminal'}\n >\n \n Terminal\n
      \n this.activeBottomPanel = 'problems'}\n >\n \n Problems\n ${this.diagnosticMarkers.length > 0 ? html`\n ${this.diagnosticMarkers.length}\n ` : ''}\n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n \n
      \n
      \n ${this.renderProblemsPanel()}\n
      \n \n ` : ''}\n \n \n\n \n \n \n `;\n }\n\n async connectedCallback() {\n await super.connectedCallback();\n document.addEventListener('keydown', this.keydownHandler);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('keydown', this.keydownHandler);\n\n // Clean up resize event listeners\n document.removeEventListener('mousemove', this.handleFileTreeMouseMove);\n document.removeEventListener('mouseup', this.handleFileTreeMouseUp);\n document.removeEventListener('mousemove', this.handleTerminalMouseMove);\n document.removeEventListener('mouseup', this.handleTerminalMouseUp);\n\n if (this.autoSaveInterval) {\n clearInterval(this.autoSaveInterval);\n this.autoSaveInterval = null;\n }\n this.stopNodeModulesWatcher();\n this.stopAllFileWatchers();\n }\n\n public async firstUpdated() {\n // Initialize current sizes from properties\n this.currentFileTreeWidth = this.fileTreeWidth;\n this.currentTerminalHeight = this.terminalHeight;\n\n if (this.executionEnvironment) {\n await this.initializeWorkspace();\n }\n }\n\n public async updated(changedProperties: Map) {\n if (changedProperties.has('executionEnvironment') && this.executionEnvironment) {\n await this.initializeWorkspace();\n }\n\n // Capture actionbar reference when it becomes available (after initialization completes)\n if (!this.actionbarElement) {\n this.actionbarElement = this.shadowRoot?.querySelector('.editor-panel dees-actionbar') as DeesActionbar;\n }\n }\n\n private async initializeWorkspace() {\n if (!this.executionEnvironment) return;\n\n // Prevent double initialization\n if (this.initializationStarted) return;\n this.initializationStarted = true;\n\n this.isInitializing = true;\n\n try {\n // Wait for any external initialization (e.g., file mounting)\n if (this.initializationPromise) {\n await this.initializationPromise;\n } else if (!this.executionEnvironment.ready) {\n await this.executionEnvironment.init();\n }\n\n // Execute onInit command from npmextra.json if present\n await this.executeOnInitCommand();\n\n // IntelliSense is initialized lazily when first file is opened (Monaco loads on demand)\n } catch (error) {\n console.error('Failed to initialize workspace:', error);\n // Reset flag to allow retry\n this.initializationStarted = false;\n } finally {\n this.isInitializing = false;\n }\n }\n\n /**\n * Execute onInit command from npmextra.json if present\n * This allows automatic setup like `pnpm install` on workspace initialization\n */\n private async executeOnInitCommand(): Promise {\n if (!this.executionEnvironment) return;\n\n try {\n if (await this.executionEnvironment.exists('/npmextra.json')) {\n const content = await this.executionEnvironment.readFile('/npmextra.json');\n const config = JSON.parse(content);\n const onInit = config?.deesEditorWorkspace?.onInit;\n\n if (onInit && typeof onInit === 'string') {\n console.log('Executing onInit command:', onInit);\n\n // Set command for terminal preview display\n this.initCommand = onInit;\n this.initOutput = [];\n\n // Parse command and args\n const [cmd, ...args] = onInit.split(' ');\n const process = await this.executionEnvironment.spawn(cmd, args);\n\n // Capture stdout/stderr for terminal preview\n process.output.pipeTo(\n new WritableStream({\n write: (data) => {\n // Split data into lines and append\n const lines = data.split('\\n');\n for (const line of lines) {\n if (line) {\n this.initOutput = [...this.initOutput, line];\n }\n }\n },\n })\n );\n\n // Wait for completion\n const exitCode = await process.exit;\n console.log('onInit command completed with exit code:', exitCode);\n\n // Add completion message\n this.initOutput = [...this.initOutput, '', `Command completed with exit code: ${exitCode}`];\n }\n }\n } catch (error) {\n console.warn('Failed to execute onInit command:', error);\n }\n }\n\n private async initializeIntelliSense(): Promise {\n if (!this.executionEnvironment) return;\n if (this.intelliSenseInitialized) return;\n\n // Wait for Monaco to be available globally (with retry for timing)\n let monacoInstance = (window as any).monaco;\n if (!monacoInstance) {\n // Monaco loads asynchronously when the editor mounts, wait a bit\n await new Promise(resolve => setTimeout(resolve, 100));\n monacoInstance = (window as any).monaco;\n }\n\n if (!monacoInstance) {\n console.warn('Monaco not yet loaded, IntelliSense will be initialized later');\n return;\n }\n\n this.intelliSenseInitialized = true;\n this.intelliSenseManager = new TypeScriptIntelliSenseManager();\n await this.intelliSenseManager.init(monacoInstance, this.executionEnvironment);\n\n // Set up marker listener for Problems panel\n this.setupMarkerListener();\n\n // Start watching node_modules for package installations\n this.startNodeModulesWatcher();\n\n // Initial scan for any existing packages\n await this.intelliSenseManager.scanAndLoadNewPackageTypes();\n }\n\n /**\n * Watch node_modules for changes (e.g., after pnpm install)\n * and automatically load types for new packages\n */\n private startNodeModulesWatcher(): void {\n if (!this.executionEnvironment || this.nodeModulesWatcher) return;\n\n try {\n this.nodeModulesWatcher = this.executionEnvironment.watch(\n '/node_modules',\n (_event, _filename) => {\n // Debounce - pnpm install creates many file changes\n if (this.nodeModulesDebounceTimeout) {\n clearTimeout(this.nodeModulesDebounceTimeout);\n }\n this.nodeModulesDebounceTimeout = setTimeout(async () => {\n if (this.intelliSenseManager) {\n await this.intelliSenseManager.scanAndLoadNewPackageTypes();\n }\n }, 2000); // 2 second debounce for package installation\n },\n { recursive: true }\n );\n } catch (error) {\n console.warn('Could not watch node_modules:', error);\n }\n }\n\n private stopNodeModulesWatcher(): void {\n if (this.nodeModulesWatcher) {\n this.nodeModulesWatcher.stop();\n this.nodeModulesWatcher = null;\n }\n if (this.nodeModulesDebounceTimeout) {\n clearTimeout(this.nodeModulesDebounceTimeout);\n this.nodeModulesDebounceTimeout = null;\n }\n }\n\n // ========== Open File Watching for External Changes ==========\n\n /**\n * Start watching an open file for external changes\n */\n private startWatchingFile(path: string): void {\n if (!this.executionEnvironment || this.openFileWatchers.has(path)) return;\n\n try {\n const watcher = this.executionEnvironment.watch(\n path,\n (_event, _filename) => {\n // Debounce to avoid multiple rapid triggers\n const existingTimeout = this.fileChangeDebounce.get(path);\n if (existingTimeout) {\n clearTimeout(existingTimeout);\n }\n const timeout = setTimeout(() => {\n this.handleExternalFileChange(path);\n this.fileChangeDebounce.delete(path);\n }, 300);\n this.fileChangeDebounce.set(path, timeout);\n }\n );\n this.openFileWatchers.set(path, watcher);\n } catch (error) {\n console.warn(`Could not watch file ${path}:`, error);\n }\n }\n\n /**\n * Stop watching a file when it's closed\n */\n private stopWatchingFile(path: string): void {\n const watcher = this.openFileWatchers.get(path);\n if (watcher) {\n watcher.stop();\n this.openFileWatchers.delete(path);\n }\n const timeout = this.fileChangeDebounce.get(path);\n if (timeout) {\n clearTimeout(timeout);\n this.fileChangeDebounce.delete(path);\n }\n }\n\n /**\n * Stop all file watchers\n */\n private stopAllFileWatchers(): void {\n for (const watcher of this.openFileWatchers.values()) {\n watcher.stop();\n }\n this.openFileWatchers.clear();\n\n for (const timeout of this.fileChangeDebounce.values()) {\n clearTimeout(timeout);\n }\n this.fileChangeDebounce.clear();\n }\n\n /**\n * Handle external file change - show actionbar if file has local changes,\n * otherwise silently update with cursor preservation\n */\n private async handleExternalFileChange(path: string): Promise {\n const file = this.openFiles.find(f => f.path === path);\n if (!file || !this.executionEnvironment) return;\n\n try {\n // Read the new content from disk\n const newContent = await this.executionEnvironment.readFile(path);\n\n // If content is same as what we have, no action needed\n if (newContent === file.content) return;\n\n if (file.modified) {\n // File has unsaved local changes AND disk changed - conflict!\n const result = await this.actionbarElement?.show({\n message: `\"${file.name}\" changed on disk. What do you want to do?`,\n type: 'question',\n icon: 'lucide:gitMerge',\n actions: [\n { id: 'load-disk', label: 'Load from Disk', primary: true },\n { id: 'save-local', label: 'Save Local to Disk' },\n { id: 'compare', label: 'Compare' },\n ],\n timeout: { duration: 15000, defaultActionId: 'load-disk' },\n dismissible: true,\n });\n\n if (result?.actionId === 'load-disk') {\n // Discard local changes, load disk version\n await this.updateFileContent(path, newContent, false);\n } else if (result?.actionId === 'save-local') {\n // Keep local changes and save to disk (overwrite external)\n await this.executionEnvironment.writeFile(path, file.content);\n // Mark as saved\n this.openFiles = this.openFiles.map(f =>\n f.path === path ? { ...f, modified: false } : f\n );\n } else if (result?.actionId === 'compare') {\n // Open diff view\n this.openDiffView(path, file.content, newContent);\n }\n // If dismissed, do nothing - user can manually resolve later\n } else {\n // No local changes - silently update with cursor preservation\n await this.updateFileContent(path, newContent, true);\n }\n } catch (error) {\n console.warn(`Failed to handle external change for ${path}:`, error);\n }\n }\n\n /**\n * Update file content in state and optionally in the editor\n */\n private async updateFileContent(\n path: string,\n newContent: string,\n preserveCursor: boolean\n ): Promise {\n // Update internal state\n this.openFiles = this.openFiles.map(f =>\n f.path === path ? { ...f, content: newContent, modified: false } : f\n );\n\n // If this is the active file, update Monaco editor\n if (path === this.activeFilePath) {\n const editor = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editor) {\n await editor.setContentExternal(newContent, preserveCursor);\n }\n }\n }\n\n /**\n * Open the diff view to compare local and disk versions\n */\n private openDiffView(path: string, localContent: string, diskContent: string): void {\n this.diffViewConfig = {\n filePath: path,\n originalContent: diskContent,\n modifiedContent: localContent,\n language: this.getLanguageFromPath(path),\n };\n this.showDiffView = true;\n }\n\n /**\n * Handle diff view resolution\n */\n private async handleDiffResolved(e: CustomEvent): Promise {\n const { action, content } = e.detail;\n const path = this.diffViewConfig?.filePath;\n\n if (!path || !this.executionEnvironment) {\n this.showDiffView = false;\n this.diffViewConfig = null;\n return;\n }\n\n if (action === 'use-local') {\n // Save local content to disk\n await this.executionEnvironment.writeFile(path, content);\n this.openFiles = this.openFiles.map(f =>\n f.path === path ? { ...f, content, modified: false } : f\n );\n // Update editor if active\n if (path === this.activeFilePath) {\n const editor = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editor) {\n await editor.setContentExternal(content, false);\n }\n }\n } else if (action === 'use-disk') {\n // Update editor with disk content\n await this.updateFileContent(path, content, false);\n }\n\n this.showDiffView = false;\n this.diffViewConfig = null;\n }\n\n private async handleFileSelect(e: CustomEvent<{ path: string; name: string }>) {\n const { path, name } = e.detail;\n await this.openFile(path, name);\n }\n\n private async openFile(path: string, name: string) {\n // Check if already open\n const existingFile = this.openFiles.find(f => f.path === path);\n if (existingFile) {\n this.activeFilePath = path;\n return;\n }\n\n // Load file content\n if (!this.executionEnvironment) return;\n\n try {\n const content = await this.executionEnvironment.readFile(path);\n this.openFiles = [\n ...this.openFiles,\n { path, name, content, modified: false },\n ];\n this.activeFilePath = path;\n\n // Start watching for external changes\n this.startWatchingFile(path);\n\n // Initialize IntelliSense lazily after first file opens (Monaco loads on demand)\n if (!this.intelliSenseInitialized) {\n // Wait for Monaco editor to mount and load Monaco from CDN\n await this.updateComplete;\n // Give Monaco time to load via require.js\n await new Promise(resolve => setTimeout(resolve, 500));\n await this.initializeIntelliSense();\n\n // Process the initial file content for IntelliSense\n const language = this.getLanguageFromPath(path);\n if (this.intelliSenseManager && (language === 'typescript' || language === 'javascript')) {\n await this.intelliSenseManager.processContentChange(content);\n }\n }\n } catch (error) {\n console.error(`Failed to open file ${path}:`, error);\n }\n }\n\n private activateFile(path: string) {\n this.activeFilePath = path;\n }\n\n private closeFile(e: Event, path: string) {\n e.stopPropagation();\n\n const fileIndex = this.openFiles.findIndex(f => f.path === path);\n if (fileIndex === -1) return;\n\n // Check for unsaved changes\n const file = this.openFiles[fileIndex];\n if (file.modified) {\n const confirmed = confirm(`${file.name} has unsaved changes. Close anyway?`);\n if (!confirmed) return;\n }\n\n // Stop watching this file\n this.stopWatchingFile(path);\n\n this.openFiles = this.openFiles.filter(f => f.path !== path);\n\n // If closing the active file, activate another one\n if (this.activeFilePath === path) {\n if (this.openFiles.length > 0) {\n const newIndex = Math.min(fileIndex, this.openFiles.length - 1);\n this.activeFilePath = this.openFiles[newIndex].path;\n } else {\n this.activeFilePath = '';\n }\n }\n }\n\n private getActiveFileContent(): string {\n const file = this.openFiles.find(f => f.path === this.activeFilePath);\n return file?.content || '';\n }\n\n private handleContentChange(e: CustomEvent) {\n const newContent = e.detail;\n const fileIndex = this.openFiles.findIndex(f => f.path === this.activeFilePath);\n if (fileIndex === -1) return;\n\n const file = this.openFiles[fileIndex];\n if (file.content !== newContent) {\n this.openFiles = [\n ...this.openFiles.slice(0, fileIndex),\n { ...file, content: newContent, modified: true },\n ...this.openFiles.slice(fileIndex + 1),\n ];\n\n // Process content for IntelliSense (debounced to avoid parsing on every keystroke)\n const language = this.getLanguageFromPath(this.activeFilePath);\n if (this.intelliSenseManager && (language === 'typescript' || language === 'javascript')) {\n if (this.intelliSenseDebounceTimeout) {\n clearTimeout(this.intelliSenseDebounceTimeout);\n }\n this.intelliSenseDebounceTimeout = setTimeout(() => {\n this.intelliSenseManager?.processContentChange(newContent);\n }, 500); // 500ms debounce\n }\n }\n }\n\n private getLanguageFromPath(path: string): string {\n const ext = path.split('.').pop()?.toLowerCase();\n const languageMap: Record = {\n ts: 'typescript',\n tsx: 'typescript',\n js: 'javascript',\n jsx: 'javascript',\n json: 'json',\n html: 'html',\n css: 'css',\n scss: 'scss',\n less: 'less',\n md: 'markdown',\n yaml: 'yaml',\n yml: 'yaml',\n xml: 'xml',\n sql: 'sql',\n py: 'python',\n sh: 'shell',\n bash: 'shell',\n };\n return languageMap[ext || ''] || 'plaintext';\n }\n\n private toggleTerminal() {\n this.isTerminalCollapsed = !this.isTerminalCollapsed;\n }\n\n // ========== Save Operations ==========\n\n public async saveActiveFile(): Promise {\n const file = this.openFiles.find(f => f.path === this.activeFilePath);\n if (!file || !this.executionEnvironment) return;\n\n try {\n await this.executionEnvironment.writeFile(file.path, file.content);\n\n // Update file state to mark as saved\n this.openFiles = this.openFiles.map(f =>\n f.path === file.path ? { ...f, modified: false } : f\n );\n\n // Update IntelliSense manager with latest content\n if (this.intelliSenseManager) {\n this.intelliSenseManager.addFileModel(file.path, file.content);\n }\n } catch (error) {\n console.error('Failed to save file:', error);\n }\n }\n\n public async saveAllFiles(): Promise {\n if (!this.executionEnvironment) return;\n\n for (const file of this.openFiles.filter(f => f.modified)) {\n try {\n await this.executionEnvironment.writeFile(file.path, file.content);\n\n // Update IntelliSense manager\n if (this.intelliSenseManager) {\n this.intelliSenseManager.addFileModel(file.path, file.content);\n }\n } catch (error) {\n console.error(`Failed to save ${file.path}:`, error);\n }\n }\n\n // Mark all files as saved\n this.openFiles = this.openFiles.map(f => ({ ...f, modified: false }));\n }\n\n // ========== Editor Menu ==========\n\n private async showEditorMenu(e: MouseEvent) {\n e.stopPropagation();\n\n const menuItems: Parameters[1] = [\n {\n name: this.autoSave ? '\u2713 Auto Save' : 'Auto Save',\n iconName: 'lucide:save',\n action: async () => this.toggleAutoSave(),\n },\n { divider: true },\n {\n name: 'Save',\n iconName: 'lucide:save',\n action: async () => this.saveActiveFile(),\n },\n {\n name: 'Save All',\n iconName: 'lucide:save',\n action: async () => this.saveAllFiles(),\n },\n ];\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private toggleAutoSave() {\n this.autoSave = !this.autoSave;\n\n if (this.autoSave) {\n // Save every 2 seconds if there are changes\n this.autoSaveInterval = setInterval(() => {\n const hasUnsaved = this.openFiles.some(f => f.modified);\n if (hasUnsaved) {\n this.saveAllFiles();\n }\n }, 2000);\n } else {\n if (this.autoSaveInterval) {\n clearInterval(this.autoSaveInterval);\n this.autoSaveInterval = null;\n }\n }\n }\n\n private getErrorCount(): number {\n // Monaco MarkerSeverity: Error = 8, Warning = 4, Info = 2, Hint = 1\n return this.diagnosticMarkers.filter(m => m.severity === 8).length;\n }\n\n private renderProblemsPanel(): TemplateResult {\n if (this.diagnosticMarkers.length === 0) {\n return html`\n
      \n \n No problems detected\n
      \n `;\n }\n\n return html`\n
      \n ${this.diagnosticMarkers.map(marker => html`\n
      this.navigateToProblem(marker)}>\n \n
      \n
      ${marker.message}
      \n
      \n ${marker.resource.path.split('/').pop()} (${marker.startLineNumber}, ${marker.startColumn})\n ${marker.source ? `[${marker.source}]` : ''}\n
      \n
      \n
      \n `)}\n
      \n `;\n }\n\n private async navigateToProblem(marker: typeof this.diagnosticMarkers[0]) {\n // Extract file path from resource\n const filePath = marker.resource.path;\n const fileName = filePath.split('/').pop() || '';\n\n // Open the file if not already open\n const existingFile = this.openFiles.find(f => f.path === filePath);\n if (!existingFile) {\n await this.openFile(filePath, fileName);\n } else {\n this.activeFilePath = filePath;\n }\n\n // Wait for editor to be ready, then navigate to the line\n await this.updateComplete;\n const editorElement = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editorElement) {\n const editor = await editorElement.editorDeferred.promise;\n editor.revealLineInCenter(marker.startLineNumber);\n editor.setPosition({\n lineNumber: marker.startLineNumber,\n column: marker.startColumn,\n });\n editor.focus();\n }\n }\n\n private setupMarkerListener() {\n const monacoInstance = (window as any).monaco;\n if (!monacoInstance) return;\n\n // Listen for marker changes\n monacoInstance.editor.onDidChangeMarkers((uris: any[]) => {\n this.updateDiagnosticMarkers();\n });\n\n // Initial load\n this.updateDiagnosticMarkers();\n }\n\n private updateDiagnosticMarkers() {\n const monacoInstance = (window as any).monaco;\n if (!monacoInstance) return;\n\n // Get all markers from Monaco\n const allMarkers = monacoInstance.editor.getModelMarkers({});\n\n // Transform to our format\n this.diagnosticMarkers = allMarkers.map((m: any) => ({\n message: m.message,\n severity: m.severity,\n startLineNumber: m.startLineNumber,\n startColumn: m.startColumn,\n endLineNumber: m.endLineNumber,\n endColumn: m.endColumn,\n source: m.source,\n resource: { path: m.resource.path },\n }));\n }\n\n // ========== Bottom Bar Event Handlers ==========\n\n /**\n * Handle run-process events from bottom bar widgets\n * Creates a new terminal tab for the process\n */\n private async handleRunProcess(e: CustomEvent): Promise {\n const detail = e.detail;\n\n // Find the terminal component\n const terminal = this.shadowRoot?.querySelector('dees-workspace-terminal') as DeesWorkspaceTerminal;\n if (!terminal) {\n console.warn('Terminal component not found');\n return;\n }\n\n // Expand terminal if collapsed\n if (this.isTerminalCollapsed) {\n this.isTerminalCollapsed = false;\n }\n\n // Switch to terminal panel\n this.activeBottomPanel = 'terminal';\n\n // Wait for UI update\n await this.updateComplete;\n\n // Create a new terminal tab for the process\n await terminal.createProcessTab({\n type: detail.type,\n label: detail.label,\n command: detail.command,\n args: detail.args,\n metadata: detail.metadata,\n switchToTab: true,\n });\n }\n\n // ========== Public Layout Methods ==========\n\n /**\n * Programmatically set the file tree width\n */\n public setFileTreeWidth(width: number): void {\n const minWidth = 150;\n const maxWidth = this.getBoundingClientRect().width * 0.5;\n this.currentFileTreeWidth = Math.max(minWidth, Math.min(maxWidth, width));\n window.dispatchEvent(new Event('resize'));\n }\n\n /**\n * Programmatically set the terminal height\n */\n public setTerminalHeight(height: number): void {\n const minHeight = 100;\n const maxHeight = this.getBoundingClientRect().height * 0.7;\n this.currentTerminalHeight = Math.max(minHeight, Math.min(maxHeight, height));\n window.dispatchEvent(new Event('resize'));\n }\n\n /**\n * Reset layout to initial property values\n */\n public resetLayout(): void {\n this.currentFileTreeWidth = this.fileTreeWidth;\n this.currentTerminalHeight = this.terminalHeight;\n window.dispatchEvent(new Event('resize'));\n }\n}\n", "export * from './dees-workspace.js';\nexport * from './typescript-intellisense.js';\n", "export * from './dees-workspace-monaco.js';\n", "export * from './dees-workspace-filetree.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export * from './dees-workspace-terminal.js';\nexport * from './interfaces.js';\nexport * from './terminal-tab-manager.js';\n", "export * from './dees-workspace-terminal-preview.js';\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n domtools,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { DeesWorkspaceMonaco } from '../dees-workspace-monaco/dees-workspace-monaco.js';\n\nconst deferred = domtools.plugins.smartpromise.defer();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-markdown': DeesWorkspaceMarkdown;\n }\n}\n\n@customElement('dees-workspace-markdown')\nexport class DeesWorkspaceMarkdown extends DeesElement {\n public static demo = () => html``;\n public static demoGroups = ['Workspace'];\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n }\n\n .splitContainer {\n position: absolute;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n .editorContainer {\n position: relative;\n height: 100%;\n min-width: 100px;\n overflow: hidden;\n }\n\n .resizeHandle {\n width: 6px;\n height: 100%;\n background: ${cssManager.bdTheme('#e5e7eb', '#30363d')};\n cursor: col-resize;\n flex-shrink: 0;\n transition: background 0.15s ease;\n position: relative;\n }\n\n .resizeHandle:hover,\n .resizeHandle.dragging {\n background: ${cssManager.bdTheme('#3b82f6', '#58a6ff')};\n }\n\n .resizeHandle::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 2px;\n height: 32px;\n background: ${cssManager.bdTheme('#9ca3af', '#6e7681')};\n border-radius: 1px;\n opacity: 0.6;\n }\n\n .resizeHandle:hover::after,\n .resizeHandle.dragging::after {\n background: ${cssManager.bdTheme('#ffffff', '#ffffff')};\n opacity: 1;\n }\n\n .outletContainer {\n position: relative;\n height: 100%;\n min-width: 100px;\n background: ${cssManager.bdTheme('#ffffff', '#0d1117')};\n color: ${cssManager.bdTheme('#24292f', '#e6edf3')};\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\n padding: 20px;\n overflow-y: auto;\n box-sizing: border-box;\n }\n\n /* Prevent text selection while dragging */\n .splitContainer.dragging {\n user-select: none;\n }\n\n .splitContainer.dragging .editorContainer,\n .splitContainer.dragging .outletContainer {\n pointer-events: none;\n }\n `,\n ];\n\n /**\n * Initial split ratio for the editor (left) panel.\n * Value from 0 to 100 representing percentage width.\n * Default is 50 (50/50 split).\n */\n @property({ type: Number })\n accessor splitRatio: number = 50;\n\n /**\n * Minimum width percentage for either panel.\n */\n @property({ type: Number })\n accessor minPanelSize: number = 10;\n\n @state()\n accessor currentSplitRatio: number = 50;\n\n @state()\n accessor isDragging: boolean = false;\n\n private resizeHandleElement: HTMLElement;\n private containerElement: HTMLElement;\n\n public render() {\n return html`\n
      \n
      \n note:\nThere is something going on.\n\n\\`\\`\\`typescript\nconst hello = 'yes'\n\\`\\`\\`\n`}\n wordWrap=\"bounded\"\n >\n
      \n
      \n
      \n \n
      \n \n `;\n }\n\n public async firstUpdated(_changedPropertiesArg) {\n await super.firstUpdated(_changedPropertiesArg);\n\n // Initialize current ratio from property\n this.currentSplitRatio = this.splitRatio;\n\n // Cache elements\n this.containerElement = this.shadowRoot.querySelector('.splitContainer');\n this.resizeHandleElement = this.shadowRoot.querySelector('.resizeHandle');\n\n const editor = this.shadowRoot.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n\n // Wire up markdown rendering\n const markdownOutlet = this.shadowRoot.querySelector('dees-workspace-markdownoutlet');\n const smartmarkdownInstance = new domtools.plugins.smartmarkdown.SmartMarkdown();\n const mdParsedResult = await smartmarkdownInstance.getMdParsedResultFromMarkdown('loading...')\n editor.contentSubject.subscribe(async contentArg => {\n await mdParsedResult.updateFromMarkdownString(contentArg)\n const html = mdParsedResult.html;\n markdownOutlet.updateHtmlText(html);\n });\n }\n\n private handleMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this.isDragging = true;\n\n document.addEventListener('mousemove', this.handleMouseMove);\n document.addEventListener('mouseup', this.handleMouseUp);\n };\n\n private handleMouseMove = (e: MouseEvent) => {\n if (!this.isDragging || !this.containerElement) return;\n\n const containerRect = this.containerElement.getBoundingClientRect();\n const containerWidth = containerRect.width;\n const mouseX = e.clientX - containerRect.left;\n\n // Calculate percentage, accounting for the resize handle width (6px)\n let newRatio = (mouseX / containerWidth) * 100;\n\n // Clamp to min/max\n newRatio = Math.max(this.minPanelSize, Math.min(100 - this.minPanelSize, newRatio));\n\n this.currentSplitRatio = newRatio;\n };\n\n private handleMouseUp = () => {\n this.isDragging = false;\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n\n // Trigger resize on monaco editor\n const editor = this.shadowRoot.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editor) {\n // Monaco needs to be notified of size changes\n window.dispatchEvent(new Event('resize'));\n }\n };\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Clean up event listeners\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n }\n\n /**\n * Programmatically set the split ratio\n */\n public setSplitRatio(ratio: number) {\n this.currentSplitRatio = Math.max(this.minPanelSize, Math.min(100 - this.minPanelSize, ratio));\n }\n\n /**\n * Reset to initial split ratio\n */\n public resetSplitRatio() {\n this.currentSplitRatio = this.splitRatio;\n }\n}\n", "export * from './dees-workspace-markdown.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesWorkspaceMarkdownoutlet } from './dees-workspace-markdownoutlet.js';\n\nexport const demoFunc = () => html`\n \n \n\n
      \n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

      Heading Level 1

      \n

      Heading Level 2

      \n

      Heading Level 3

      \n

      Heading Level 4

      \n
      Heading Level 5
      \n
      Heading Level 6
      \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

      This is a paragraph with bold text and italic text.

      \n

      You can also use bold italic for emphasis.

      \n

      Here's a link example and some inline code.

      \n

      Press Ctrl + C to copy text.

      \n
      \n

      Above is a horizontal rule separator.

      \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

      Unordered List

      \n
        \n
      • First item
      • \n
      • Second item\n
          \n
        • Nested item 1
        • \n
        • Nested item 2
        • \n
        \n
      • \n
      • Third item
      • \n
      \n\n

      Ordered List

      \n
        \n
      1. Step one
      2. \n
      3. Step two
      4. \n
      5. Step three
      6. \n
      \n\n

      Task List

      \n
        \n
      • Completed task
      • \n
      • Pending task
      • \n
      • Another task
      • \n
      \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

      Inline code: const greeting = \"Hello, World!\";

      \n\n

      TypeScript Example

      \n
      import { html, css } from '@design.estate/dees-element';\n\ninterface IUser {\n  name: string;\n  email: string;\n  age?: number;\n}\n\nconst getUser = async (id: string): Promise<IUser> => {\n  const response = await fetch(\\`/api/users/\\${id}\\`);\n  return response.json();\n};
      \n\n

      JSON Example

      \n
      {\n  \"name\": \"dees-catalog\",\n  \"version\": \"3.0.0\",\n  \"dependencies\": {\n    \"@design.estate/dees-element\": \"^2.0.0\"\n  }\n}
      \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      FeatureStatusPriority
      Dark mode supportCompletedHigh
      Responsive designIn ProgressMedium
      AccessibilityPlannedHigh
      DocumentationIn ProgressLow
      \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n
      \n

      This is a standard blockquote. It's great for highlighting important information or quotes from other sources.

      \n
      \n\n
      \n

      Note: This is an informational note to draw attention to important details.

      \n
      \n\n
      \n

      Tip: Here's a helpful tip to improve your workflow.

      \n
      \n\n
      \n

      Important: This information is crucial for understanding the topic.

      \n
      \n\n
      \n

      Warning: Be careful when performing this action.

      \n
      \n\n
      \n

      Caution: This action may have unintended consequences.

      \n
      \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

      Getting Started Guide

      \n

      Welcome to the dees-catalog component library. This guide will help you get up and running quickly.

      \n\n

      Installation

      \n

      Install the package using your preferred package manager:

      \n
      # Using pnpm (recommended)\npnpm add @design.estate/dees-catalog\n\n# Using npm\nnpm install @design.estate/dees-catalog
      \n\n

      Basic Usage

      \n

      Import and use components in your TypeScript files:

      \n
      import { DeesButton } from '@design.estate/dees-catalog';\n\n// Use in your templates\nhtml\\`<dees-button>Click me</dees-button>\\`
      \n\n
      \n

      Tip: Check the demo showcase for live examples of all components.

      \n
      \n\n

      Available Components

      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      ComponentDescription
      dees-buttonPrimary button component
      dees-input-textText input field
      dees-tableData table with sorting
      dees-modalModal dialog
      \n\n

      Next Steps

      \n \n\n
      \n

      \"The best component library is one that gets out of your way.\" \u2014 Design Systems Team

      \n
      \n `);\n }}\n >\n \n \n
      \n
      \n`;\n", "import {\n customElement,\n DeesElement,\n html,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { demoFunc } from './dees-workspace-markdownoutlet.demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-markdownoutlet': DeesWorkspaceMarkdownoutlet;\n }\n}\n\n@customElement('dees-workspace-markdownoutlet')\nexport class DeesWorkspaceMarkdownoutlet extends DeesElement {\n // DEMO\n public static demo = demoFunc;\n public static demoGroups = ['Workspace'];\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\n font-size: 16px;\n line-height: 1.6;\n color: ${cssManager.bdTheme('#24292f', '#e6edf3')};\n }\n\n .outlet {\n word-wrap: break-word;\n }\n\n /* Headings */\n h1, h2, h3, h4, h5, h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n color: ${cssManager.bdTheme('#1f2328', '#f0f6fc')};\n }\n\n h1 {\n font-size: 2em;\n padding-bottom: 0.3em;\n border-bottom: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n h2 {\n font-size: 1.5em;\n padding-bottom: 0.3em;\n border-bottom: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n h3 {\n font-size: 1.25em;\n }\n\n h4 {\n font-size: 1em;\n }\n\n h5 {\n font-size: 0.875em;\n }\n\n h6 {\n font-size: 0.85em;\n color: ${cssManager.bdTheme('#656d76', '#8b949e')};\n }\n\n /* Paragraphs and text */\n p {\n margin-top: 0;\n margin-bottom: 16px;\n }\n\n /* Links */\n a {\n color: ${cssManager.bdTheme('#0969da', '#58a6ff')};\n text-decoration: none;\n }\n\n a:hover {\n text-decoration: underline;\n }\n\n /* Strong and emphasis */\n strong {\n font-weight: 600;\n color: ${cssManager.bdTheme('#1f2328', '#f0f6fc')};\n }\n\n em {\n font-style: italic;\n }\n\n /* Lists */\n ul, ol {\n margin-top: 0;\n margin-bottom: 16px;\n padding-left: 2em;\n }\n\n li {\n margin-top: 4px;\n }\n\n li + li {\n margin-top: 4px;\n }\n\n ul ul, ul ol, ol ul, ol ol {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n /* Blockquotes */\n blockquote {\n margin: 0 0 16px 0;\n padding: 0 1em;\n color: ${cssManager.bdTheme('#656d76', '#8b949e')};\n border-left: 4px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n blockquote > :first-child {\n margin-top: 0;\n }\n\n blockquote > :last-child {\n margin-bottom: 0;\n }\n\n /* Inline code */\n code {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: 85%;\n font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n background-color: ${cssManager.bdTheme('rgba(175, 184, 193, 0.2)', 'rgba(110, 118, 129, 0.4)')};\n border-radius: 6px;\n white-space: break-spaces;\n }\n\n /* Code blocks */\n pre {\n margin-top: 0;\n margin-bottom: 16px;\n padding: 16px;\n overflow: auto;\n font-size: 85%;\n line-height: 1.45;\n font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n border-radius: 6px;\n word-wrap: normal;\n }\n\n pre code {\n display: block;\n padding: 0;\n margin: 0;\n overflow: visible;\n line-height: inherit;\n word-wrap: normal;\n background-color: transparent;\n border: 0;\n font-size: 100%;\n white-space: pre;\n }\n\n /* Tables */\n table {\n width: max-content;\n max-width: 100%;\n margin-top: 0;\n margin-bottom: 16px;\n border-spacing: 0;\n border-collapse: collapse;\n overflow: auto;\n display: block;\n }\n\n table th {\n font-weight: 600;\n padding: 6px 13px;\n border: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n color: ${cssManager.bdTheme('#1f2328', '#e6edf3')};\n }\n\n table td {\n padding: 6px 13px;\n border: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n color: ${cssManager.bdTheme('#1f2328', '#e6edf3')};\n }\n\n table tr {\n background-color: ${cssManager.bdTheme('#ffffff', '#0d1117')};\n border-top: 1px solid ${cssManager.bdTheme('#d1d9e0', '#21262d')};\n }\n\n table tr:nth-child(2n) {\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n }\n\n /* Horizontal rules */\n hr {\n height: 4px;\n padding: 0;\n margin: 24px 0;\n background-color: ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n border: 0;\n border-radius: 2px;\n }\n\n /* Images */\n img {\n max-width: 100%;\n box-sizing: border-box;\n border-radius: 6px;\n }\n\n /* Task lists */\n .task-list-item {\n list-style-type: none;\n }\n\n .task-list-item input {\n margin: 0 0.2em 0.25em -1.4em;\n vertical-align: middle;\n }\n\n /* Definition lists */\n dl {\n padding: 0;\n }\n\n dl dt {\n padding: 0;\n margin-top: 16px;\n font-size: 1em;\n font-style: italic;\n font-weight: 600;\n }\n\n dl dd {\n padding: 0 16px;\n margin-bottom: 16px;\n }\n\n /* Keyboard input */\n kbd {\n display: inline-block;\n padding: 3px 5px;\n font-size: 11px;\n font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n line-height: 10px;\n color: ${cssManager.bdTheme('#1f2328', '#e6edf3')};\n vertical-align: middle;\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n border: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n /* Footnotes */\n .footnotes {\n font-size: 12px;\n color: ${cssManager.bdTheme('#656d76', '#8b949e')};\n border-top: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n padding-top: 16px;\n margin-top: 32px;\n }\n\n /* Alerts/Admonitions */\n .markdown-alert {\n padding: 8px 16px;\n margin-bottom: 16px;\n border-left: 4px solid;\n border-radius: 6px;\n }\n\n .markdown-alert-note {\n border-color: ${cssManager.bdTheme('#0969da', '#58a6ff')};\n background-color: ${cssManager.bdTheme('rgba(9, 105, 218, 0.1)', 'rgba(56, 139, 253, 0.1)')};\n }\n\n .markdown-alert-warning {\n border-color: ${cssManager.bdTheme('#bf8700', '#d29922')};\n background-color: ${cssManager.bdTheme('rgba(191, 135, 0, 0.1)', 'rgba(187, 128, 9, 0.1)')};\n }\n\n .markdown-alert-important {\n border-color: ${cssManager.bdTheme('#8250df', '#a371f7')};\n background-color: ${cssManager.bdTheme('rgba(130, 80, 223, 0.1)', 'rgba(163, 113, 247, 0.1)')};\n }\n\n .markdown-alert-caution {\n border-color: ${cssManager.bdTheme('#cf222e', '#f85149')};\n background-color: ${cssManager.bdTheme('rgba(207, 34, 46, 0.1)', 'rgba(248, 81, 73, 0.1)')};\n }\n\n .markdown-alert-tip {\n border-color: ${cssManager.bdTheme('#1a7f37', '#3fb950')};\n background-color: ${cssManager.bdTheme('rgba(26, 127, 55, 0.1)', 'rgba(46, 160, 67, 0.1)')};\n }\n\n /* Syntax highlighting for code blocks */\n .hljs-comment,\n .hljs-quote {\n color: ${cssManager.bdTheme('#6a737d', '#8b949e')};\n }\n\n .hljs-keyword,\n .hljs-selector-tag,\n .hljs-addition {\n color: ${cssManager.bdTheme('#d73a49', '#ff7b72')};\n }\n\n .hljs-number,\n .hljs-string,\n .hljs-meta .hljs-meta-string,\n .hljs-literal,\n .hljs-doctag,\n .hljs-regexp {\n color: ${cssManager.bdTheme('#032f62', '#a5d6ff')};\n }\n\n .hljs-title,\n .hljs-section,\n .hljs-name,\n .hljs-selector-id,\n .hljs-selector-class {\n color: ${cssManager.bdTheme('#6f42c1', '#d2a8ff')};\n }\n\n .hljs-attribute,\n .hljs-attr,\n .hljs-variable,\n .hljs-template-variable,\n .hljs-class .hljs-title,\n .hljs-type {\n color: ${cssManager.bdTheme('#005cc5', '#79c0ff')};\n }\n\n .hljs-symbol,\n .hljs-bullet,\n .hljs-subst,\n .hljs-meta,\n .hljs-meta .hljs-keyword,\n .hljs-selector-attr,\n .hljs-selector-pseudo,\n .hljs-link {\n color: ${cssManager.bdTheme('#e36209', '#ffa657')};\n }\n\n .hljs-built_in,\n .hljs-deletion {\n color: ${cssManager.bdTheme('#b31d28', '#ffa198')};\n }\n\n .hljs-formula {\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n }\n\n .hljs-emphasis {\n font-style: italic;\n }\n\n .hljs-strong {\n font-weight: bold;\n }\n `,\n ];\n\n // INSTANCE\n private outlet: HTMLElement;\n\n public render(): TemplateResult {\n return html`\n
      \n

      Markdown Preview

      \n

      Content will appear here when markdown is parsed.

      \n
      \n `;\n }\n\n public async firstUpdated(_changedProperties: Map) {\n await super.firstUpdated(_changedProperties);\n this.outlet = this.shadowRoot.querySelector('.outlet');\n }\n\n public async updateHtmlText(htmlTextArg: string) {\n await this.updateComplete;\n if (!this.outlet) {\n this.outlet = this.shadowRoot.querySelector('.outlet');\n }\n this.outlet.innerHTML = htmlTextArg;\n }\n}\n", "export * from './dees-workspace-markdownoutlet.js';\n", "export * from './dees-workspace-bottombar.js';\n", "export * from './dees-workspace-diff-editor.js';\n", "// Workspace Components\nexport * from './dees-workspace/index.js';\nexport * from './dees-workspace-monaco/index.js';\nexport * from './dees-workspace-filetree/index.js';\nexport * from './dees-workspace-terminal/index.js';\nexport * from './dees-workspace-terminal-preview/index.js';\nexport * from './dees-workspace-markdown/index.js';\nexport * from './dees-workspace-markdownoutlet/index.js';\nexport * from './dees-workspace-bottombar/index.js';\nexport * from './dees-workspace-diff-editor/index.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c193ZWIvZWxlbWVudHMvZGVlcy1zZWFyY2gvZGVlcy1zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './dees-search.js';\n", "import {} from '@design.estate/dees-element';", "export * from './dees-tooltip.js';\n", "export * from './00zindex.js';\nexport * from './00theme.js';\n\n// Component Groups\nexport * from './00group-appui/index.js';\nexport * from './00group-button/index.js';\nexport * from './00group-chart/index.js';\nexport * from './00group-dataview/index.js';\nexport * from './00group-feedback/index.js';\nexport * from './00group-form/index.js';\nexport * from './00group-input/index.js';\nexport * from './00group-layout/index.js';\nexport * from './00group-media/index.js';\nexport * from './00group-overlay/index.js';\nexport * from './00group-runtime/index.js';\nexport * from './00group-simple/index.js';\nexport * from './00group-utility/index.js';\nexport * from './00group-workspace/index.js';\n\n// Standalone Components\nexport * from './dees-search/index.js';\nexport * from './dees-tooltip/index.js';\n", "/**\n * autocreated commitinfo by @push.rocks/commitinfo\n */\nexport const commitinfo = {\n name: '@design.estate/dees-catalog',\n version: '3.43.2',\n description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'\n}\n", "export * from './elements/index.js';\nimport * as colors from './elements/00colors.js';\nexport { colors };\nexport { commitinfo } from './00_commitinfo_data.js';\n", "// @design.estate scope\nimport * as deesElement from '@design.estate/dees-element';\nimport * as deesCatalog from '@design.estate/dees-catalog';\n\nexport {\n deesElement,\n deesCatalog,\n};\n\n// domtools gives us TypedRequest, smartstate, smartrouter, and other utilities\nexport const domtools = deesElement.domtools;\n", "// @apiglobal scope\nimport * as typedrequestInterfaces from '@api.global/typedrequest-interfaces';\n\nexport {\n typedrequestInterfaces,\n};\n", "export interface IIdentity {\n jwt: string;\n userId: string;\n username: string;\n expiresAt: number;\n role: 'admin' | 'user';\n}\n", "export type TProviderType = 'gitea' | 'gitlab';\n\nexport interface IProviderConnection {\n id: string;\n name: string;\n providerType: TProviderType;\n baseUrl: string;\n token: string;\n createdAt: number;\n status: 'connected' | 'disconnected' | 'error';\n}\n", "export interface IProject {\n id: string;\n name: string;\n fullPath: string;\n description: string;\n defaultBranch: string;\n webUrl: string;\n connectionId: string;\n visibility: string;\n topics: string[];\n lastActivity: string;\n}\n", "export interface IGroup {\n id: string;\n name: string;\n fullPath: string;\n description: string;\n webUrl: string;\n connectionId: string;\n visibility: string;\n projectCount: number;\n}\n", "export interface ISecret {\n key: string;\n value: string;\n protected: boolean;\n masked: boolean;\n scope: 'project' | 'group';\n scopeId: string;\n connectionId: string;\n environment: string;\n}\n", "export type TPipelineStatus =\n | 'pending'\n | 'running'\n | 'success'\n | 'failed'\n | 'canceled'\n | 'skipped'\n | 'waiting'\n | 'manual';\n\nexport interface IPipeline {\n id: string;\n projectId: string;\n projectName: string;\n connectionId: string;\n status: TPipelineStatus;\n ref: string;\n sha: string;\n webUrl: string;\n duration: number;\n createdAt: string;\n source: string;\n}\n\nexport interface IPipelineJob {\n id: string;\n pipelineId: string;\n name: string;\n stage: string;\n status: TPipelineStatus;\n duration: number;\n}\n", "export * from './identity.ts';\nexport * from './connection.ts';\nexport * from './project.ts';\nexport * from './group.ts';\nexport * from './secret.ts';\nexport * from './pipeline.ts';\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_AdminLogin extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_AdminLogin\n> {\n method: 'adminLogin';\n request: {\n username: string;\n password: string;\n };\n response: {\n identity?: data.IIdentity;\n };\n}\n\nexport interface IReq_AdminLogout extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_AdminLogout\n> {\n method: 'adminLogout';\n request: {\n identity: data.IIdentity;\n };\n response: {\n ok: boolean;\n };\n}\n\nexport interface IReq_VerifyIdentity extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_VerifyIdentity\n> {\n method: 'verifyIdentity';\n request: {\n identity: data.IIdentity;\n };\n response: {\n valid: boolean;\n identity?: data.IIdentity;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetConnections extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetConnections\n> {\n method: 'getConnections';\n request: {\n identity: data.IIdentity;\n };\n response: {\n connections: data.IProviderConnection[];\n };\n}\n\nexport interface IReq_CreateConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_CreateConnection\n> {\n method: 'createConnection';\n request: {\n identity: data.IIdentity;\n name: string;\n providerType: data.TProviderType;\n baseUrl: string;\n token: string;\n };\n response: {\n connection: data.IProviderConnection;\n };\n}\n\nexport interface IReq_UpdateConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_UpdateConnection\n> {\n method: 'updateConnection';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n name?: string;\n baseUrl?: string;\n token?: string;\n };\n response: {\n connection: data.IProviderConnection;\n };\n}\n\nexport interface IReq_TestConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_TestConnection\n> {\n method: 'testConnection';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n };\n response: {\n ok: boolean;\n error?: string;\n };\n}\n\nexport interface IReq_DeleteConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_DeleteConnection\n> {\n method: 'deleteConnection';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n };\n response: {\n ok: boolean;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetProjects extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetProjects\n> {\n method: 'getProjects';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n search?: string;\n page?: number;\n };\n response: {\n projects: data.IProject[];\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetGroups extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetGroups\n> {\n method: 'getGroups';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n search?: string;\n page?: number;\n };\n response: {\n groups: data.IGroup[];\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetSecrets extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetSecrets\n> {\n method: 'getSecrets';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n };\n response: {\n secrets: data.ISecret[];\n };\n}\n\nexport interface IReq_CreateSecret extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_CreateSecret\n> {\n method: 'createSecret';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n protected?: boolean;\n masked?: boolean;\n environment?: string;\n };\n response: {\n secret: data.ISecret;\n };\n}\n\nexport interface IReq_UpdateSecret extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_UpdateSecret\n> {\n method: 'updateSecret';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n protected?: boolean;\n masked?: boolean;\n environment?: string;\n };\n response: {\n secret: data.ISecret;\n };\n}\n\nexport interface IReq_DeleteSecret extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_DeleteSecret\n> {\n method: 'deleteSecret';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n };\n response: {\n ok: boolean;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetPipelines extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetPipelines\n> {\n method: 'getPipelines';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n page?: number;\n };\n response: {\n pipelines: data.IPipeline[];\n };\n}\n\nexport interface IReq_GetPipelineJobs extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetPipelineJobs\n> {\n method: 'getPipelineJobs';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n pipelineId: string;\n };\n response: {\n jobs: data.IPipelineJob[];\n };\n}\n\nexport interface IReq_RetryPipeline extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_RetryPipeline\n> {\n method: 'retryPipeline';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n pipelineId: string;\n };\n response: {\n ok: boolean;\n };\n}\n\nexport interface IReq_CancelPipeline extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_CancelPipeline\n> {\n method: 'cancelPipeline';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n pipelineId: string;\n };\n response: {\n ok: boolean;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetJobLog extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetJobLog\n> {\n method: 'getJobLog';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n jobId: string;\n };\n response: {\n log: string;\n };\n}\n", "export * from './admin.ts';\nexport * from './connections.ts';\nexport * from './projects.ts';\nexport * from './groups.ts';\nexport * from './secrets.ts';\nexport * from './pipelines.ts';\nexport * from './logs.ts';\n", "export * from './plugins.ts';\n\n// Data types\nimport * as data from './data/index.ts';\nexport { data };\n\n// Request interfaces\nimport * as requests from './requests/index.ts';\nexport { requests };\n", "import * as plugins from './plugins.js';\nimport * as interfaces from '../ts_interfaces/index.js';\n\n// ============================================================================\n// Smartstate instance\n// ============================================================================\nexport const appState = new plugins.domtools.plugins.smartstate.Smartstate();\n\n// ============================================================================\n// State Part Interfaces\n// ============================================================================\n\nexport interface ILoginState {\n identity: interfaces.data.IIdentity | null;\n isLoggedIn: boolean;\n}\n\nexport interface IConnectionsState {\n connections: interfaces.data.IProviderConnection[];\n activeConnectionId: string | null;\n}\n\nexport interface IDataState {\n projects: interfaces.data.IProject[];\n groups: interfaces.data.IGroup[];\n secrets: interfaces.data.ISecret[];\n pipelines: interfaces.data.IPipeline[];\n pipelineJobs: interfaces.data.IPipelineJob[];\n currentJobLog: string;\n}\n\nexport interface IUiState {\n activeView: string;\n autoRefresh: boolean;\n refreshInterval: number;\n}\n\n// ============================================================================\n// State Parts\n// ============================================================================\n\nexport const loginStatePart = await appState.getStatePart(\n 'login',\n {\n identity: null,\n isLoggedIn: false,\n },\n 'persistent',\n);\n\nexport const connectionsStatePart = await appState.getStatePart(\n 'connections',\n {\n connections: [],\n activeConnectionId: null,\n },\n 'soft',\n);\n\nexport const dataStatePart = await appState.getStatePart(\n 'data',\n {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n },\n 'soft',\n);\n\nexport const uiStatePart = await appState.getStatePart(\n 'ui',\n {\n activeView: 'overview',\n autoRefresh: true,\n refreshInterval: 30000,\n },\n);\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\ninterface IActionContext {\n identity: interfaces.data.IIdentity | null;\n}\n\nconst getActionContext = (): IActionContext => {\n return { identity: loginStatePart.getState().identity };\n};\n\n// ============================================================================\n// Login Actions\n// ============================================================================\n\nexport const loginAction = loginStatePart.createAction<{\n username: string;\n password: string;\n}>(async (statePartArg, dataArg) => {\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_AdminLogin\n >('/typedrequest', 'adminLogin');\n\n const response = await typedRequest.fire({\n username: dataArg.username,\n password: dataArg.password,\n });\n\n return {\n identity: response.identity || null,\n isLoggedIn: !!response.identity,\n };\n } catch (err) {\n console.error('Login failed:', err);\n return { identity: null, isLoggedIn: false };\n }\n});\n\nexport const logoutAction = loginStatePart.createAction(async (_statePartArg) => {\n const context = getActionContext();\n try {\n if (context.identity) {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_AdminLogout\n >('/typedrequest', 'adminLogout');\n await typedRequest.fire({ identity: context.identity });\n }\n } catch (err) {\n console.error('Logout error:', err);\n }\n return { identity: null, isLoggedIn: false };\n});\n\n// ============================================================================\n// Connections Actions\n// ============================================================================\n\nexport const fetchConnectionsAction = connectionsStatePart.createAction(async (statePartArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetConnections\n >('/typedrequest', 'getConnections');\n const response = await typedRequest.fire({ identity: context.identity! });\n return { ...statePartArg.getState(), connections: response.connections };\n } catch (err) {\n console.error('Failed to fetch connections:', err);\n return statePartArg.getState();\n }\n});\n\nexport const createConnectionAction = connectionsStatePart.createAction<{\n name: string;\n providerType: interfaces.data.TProviderType;\n baseUrl: string;\n token: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_CreateConnection\n >('/typedrequest', 'createConnection');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetConnections\n >('/typedrequest', 'getConnections');\n const listResp = await listReq.fire({ identity: context.identity! });\n return { ...statePartArg.getState(), connections: listResp.connections };\n } catch (err) {\n console.error('Failed to create connection:', err);\n return statePartArg.getState();\n }\n});\n\nexport const testConnectionAction = connectionsStatePart.createAction<{\n connectionId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_TestConnection\n >('/typedrequest', 'testConnection');\n const result = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n });\n // Re-fetch to get updated status\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetConnections\n >('/typedrequest', 'getConnections');\n const listResp = await listReq.fire({ identity: context.identity! });\n return { ...statePartArg.getState(), connections: listResp.connections };\n } catch (err) {\n console.error('Failed to test connection:', err);\n return statePartArg.getState();\n }\n});\n\nexport const deleteConnectionAction = connectionsStatePart.createAction<{\n connectionId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_DeleteConnection\n >('/typedrequest', 'deleteConnection');\n await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n });\n const state = statePartArg.getState();\n return {\n ...state,\n connections: state.connections.filter((c) => c.id !== dataArg.connectionId),\n activeConnectionId: state.activeConnectionId === dataArg.connectionId ? null : state.activeConnectionId,\n };\n } catch (err) {\n console.error('Failed to delete connection:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Projects Actions\n// ============================================================================\n\nexport const fetchProjectsAction = dataStatePart.createAction<{\n connectionId: string;\n search?: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetProjects\n >('/typedrequest', 'getProjects');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n search: dataArg.search,\n });\n return { ...statePartArg.getState(), projects: response.projects };\n } catch (err) {\n console.error('Failed to fetch projects:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Groups Actions\n// ============================================================================\n\nexport const fetchGroupsAction = dataStatePart.createAction<{\n connectionId: string;\n search?: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetGroups\n >('/typedrequest', 'getGroups');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n search: dataArg.search,\n });\n return { ...statePartArg.getState(), groups: response.groups };\n } catch (err) {\n console.error('Failed to fetch groups:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Secrets Actions\n// ============================================================================\n\nexport const fetchSecretsAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetSecrets\n >('/typedrequest', 'getSecrets');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n scope: dataArg.scope,\n scopeId: dataArg.scopeId,\n });\n return { ...statePartArg.getState(), secrets: response.secrets };\n } catch (err) {\n console.error('Failed to fetch secrets:', err);\n return statePartArg.getState();\n }\n});\n\nexport const createSecretAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_CreateSecret\n >('/typedrequest', 'createSecret');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch secrets\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetSecrets\n >('/typedrequest', 'getSecrets');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n scope: dataArg.scope,\n scopeId: dataArg.scopeId,\n });\n return { ...statePartArg.getState(), secrets: listResp.secrets };\n } catch (err) {\n console.error('Failed to create secret:', err);\n return statePartArg.getState();\n }\n});\n\nexport const updateSecretAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_UpdateSecret\n >('/typedrequest', 'updateSecret');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetSecrets\n >('/typedrequest', 'getSecrets');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n scope: dataArg.scope,\n scopeId: dataArg.scopeId,\n });\n return { ...statePartArg.getState(), secrets: listResp.secrets };\n } catch (err) {\n console.error('Failed to update secret:', err);\n return statePartArg.getState();\n }\n});\n\nexport const deleteSecretAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_DeleteSecret\n >('/typedrequest', 'deleteSecret');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n const state = statePartArg.getState();\n return {\n ...state,\n secrets: state.secrets.filter((s) => s.key !== dataArg.key),\n };\n } catch (err) {\n console.error('Failed to delete secret:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Pipelines Actions\n// ============================================================================\n\nexport const fetchPipelinesAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelines\n >('/typedrequest', 'getPipelines');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n });\n return { ...statePartArg.getState(), pipelines: response.pipelines };\n } catch (err) {\n console.error('Failed to fetch pipelines:', err);\n return statePartArg.getState();\n }\n});\n\nexport const fetchPipelineJobsAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n pipelineId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelineJobs\n >('/typedrequest', 'getPipelineJobs');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n pipelineId: dataArg.pipelineId,\n });\n return { ...statePartArg.getState(), pipelineJobs: response.jobs };\n } catch (err) {\n console.error('Failed to fetch pipeline jobs:', err);\n return statePartArg.getState();\n }\n});\n\nexport const retryPipelineAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n pipelineId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_RetryPipeline\n >('/typedrequest', 'retryPipeline');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch pipelines\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelines\n >('/typedrequest', 'getPipelines');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n });\n return { ...statePartArg.getState(), pipelines: listResp.pipelines };\n } catch (err) {\n console.error('Failed to retry pipeline:', err);\n return statePartArg.getState();\n }\n});\n\nexport const cancelPipelineAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n pipelineId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_CancelPipeline\n >('/typedrequest', 'cancelPipeline');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch pipelines\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelines\n >('/typedrequest', 'getPipelines');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n });\n return { ...statePartArg.getState(), pipelines: listResp.pipelines };\n } catch (err) {\n console.error('Failed to cancel pipeline:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Logs Actions\n// ============================================================================\n\nexport const fetchJobLogAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n jobId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetJobLog\n >('/typedrequest', 'getJobLog');\n const response = await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n return { ...statePartArg.getState(), currentJobLog: response.log };\n } catch (err) {\n console.error('Failed to fetch job log:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// UI Actions\n// ============================================================================\n\nexport const setActiveViewAction = uiStatePart.createAction<{ view: string }>(\n async (statePartArg, dataArg) => {\n return { ...statePartArg.getState(), activeView: dataArg.view };\n },\n);\n\nexport const toggleAutoRefreshAction = uiStatePart.createAction(async (statePartArg) => {\n const state = statePartArg.getState();\n return { ...state, autoRefresh: !state.autoRefresh };\n});\n", "import { css } from '@design.estate/dees-element';\n\nexport const viewHostCss = css`\n :host {\n display: block;\n margin: auto;\n max-width: 1280px;\n padding: 16px 16px;\n color: #fff;\n box-sizing: border-box;\n }\n .view-title {\n font-size: 24px;\n font-weight: 600;\n margin-bottom: 24px;\n }\n .view-description {\n font-size: 14px;\n color: #999;\n margin-bottom: 24px;\n }\n .toolbar {\n display: flex;\n gap: 16px;\n align-items: center;\n margin-bottom: 24px;\n flex-wrap: wrap;\n }\n`;\n", "export * from './css.js';\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { type IStatsTile } from '@design.estate/dees-catalog';\n\n@customElement('gitops-view-overview')\nexport class GitopsViewOverview extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connCount = this.connectionsState.connections.length;\n const projCount = this.dataState.projects.length;\n const groupCount = this.dataState.groups.length;\n const pipelineCount = this.dataState.pipelines.length;\n const failedPipelines = this.dataState.pipelines.filter((p) => p.status === 'failed').length;\n\n const tiles: IStatsTile[] = [\n { id: 'connections', title: 'Connections', value: connCount, type: 'number', icon: 'lucide:plug', color: '#00acff' },\n { id: 'projects', title: 'Projects', value: projCount, type: 'number', icon: 'lucide:folderGit2', color: '#00acff' },\n { id: 'groups', title: 'Groups', value: groupCount, type: 'number', icon: 'lucide:users', color: '#00acff' },\n { id: 'pipelines', title: 'Pipelines', value: pipelineCount, type: 'number', icon: 'lucide:play', color: '#00acff' },\n { id: 'failed', title: 'Failed Pipelines', value: failedPipelines, type: 'number', icon: 'lucide:triangleAlert', color: failedPipelines > 0 ? '#ff4444' : '#00ff88' },\n ];\n\n return html`\n
      Overview
      \n
      GitOps dashboard - manage your Gitea and GitLab instances
      \n \n `;\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-connections')\nexport class GitopsViewConnections extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n constructor() {\n super();\n const sub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(sub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n return html`\n
      Connections
      \n
      Manage your Gitea and GitLab provider connections
      \n
      \n this.addConnection()}>Add Connection\n this.refresh()}>Refresh\n
      \n ({\n Name: item.name,\n Type: item.providerType,\n URL: item.baseUrl,\n Status: item.status,\n Created: new Date(item.createdAt).toLocaleDateString(),\n })}\n .dataActions=${[\n {\n name: 'Test',\n iconName: 'lucide:plug',\n action: async (item: any) => {\n await appstate.connectionsStatePart.dispatchAction(\n appstate.testConnectionAction,\n { connectionId: item.id },\n );\n },\n },\n {\n name: 'Delete',\n iconName: 'lucide:trash2',\n action: async (item: any) => {\n const confirmed = await plugins.deesCatalog.DeesModal.createAndShow({\n heading: 'Delete Connection',\n content: html`

      Are you sure you want to delete connection \"${item.name}\"?

      `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Delete',\n action: async (modal: any) => {\n await appstate.connectionsStatePart.dispatchAction(\n appstate.deleteConnectionAction,\n { connectionId: item.id },\n );\n modal.destroy();\n },\n },\n ],\n });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await this.refresh();\n }\n\n private async refresh() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n }\n\n private async addConnection() {\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: 'Add Connection',\n content: html`\n \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Add',\n action: async (modal: any) => {\n const inputs = modal.shadowRoot.querySelectorAll('dees-input-text, dees-input-dropdown');\n const data: any = {};\n for (const input of inputs) {\n if (input.key === 'providerType') {\n data[input.key] = input.selectedOption?.key || 'gitea';\n } else {\n data[input.key] = input.value || '';\n }\n }\n await appstate.connectionsStatePart.dispatchAction(\n appstate.createConnectionAction,\n {\n name: data.name,\n providerType: data.providerType,\n baseUrl: data.baseUrl,\n token: data.token,\n },\n );\n modal.destroy();\n },\n },\n ],\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-projects')\nexport class GitopsViewProjects extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n return html`\n
      Projects
      \n
      Browse projects from your connected providers
      \n
      \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadProjects();\n }}\n >\n this.loadProjects()}>Refresh\n
      \n ({\n Name: item.name,\n Path: item.fullPath,\n Visibility: item.visibility,\n Branch: item.defaultBranch,\n 'Last Activity': item.lastActivity ? new Date(item.lastActivity).toLocaleDateString() : '-',\n })}\n .dataActions=${[\n {\n name: 'View Secrets',\n iconName: 'lucide:key',\n action: async (item: any) => {\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: 'secrets' });\n },\n },\n {\n name: 'View Pipelines',\n iconName: 'lucide:play',\n action: async (item: any) => {\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: 'pipelines' });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadProjects();\n }\n }\n\n private async loadProjects() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-groups')\nexport class GitopsViewGroups extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n return html`\n
      Groups
      \n
      Browse organizations and groups from your connected providers
      \n
      \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadGroups();\n }}\n >\n this.loadGroups()}>Refresh\n
      \n ({\n Name: item.name,\n Path: item.fullPath,\n Visibility: item.visibility,\n Projects: String(item.projectCount),\n })}\n .dataActions=${[\n {\n name: 'View Secrets',\n iconName: 'lucide:key',\n action: async (item: any) => {\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: 'secrets' });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadGroups();\n }\n }\n\n private async loadGroups() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchGroupsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-secrets')\nexport class GitopsViewSecrets extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n @state()\n accessor selectedScope: 'project' | 'group' = 'project';\n\n @state()\n accessor selectedScopeId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n const scopeOptions = [\n { option: 'Project', key: 'project' },\n { option: 'Group', key: 'group' },\n ];\n\n const entityOptions = this.selectedScope === 'project'\n ? this.dataState.projects.map((p) => ({ option: p.fullPath || p.name, key: p.id }))\n : this.dataState.groups.map((g) => ({ option: g.fullPath || g.name, key: g.id }));\n\n return html`\n
      Secrets
      \n
      Manage CI/CD secrets and variables
      \n
      \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadEntities();\n }}\n >\n o.key === this.selectedScope)}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedScope = e.detail.key as 'project' | 'group';\n this.loadEntities();\n }}\n >\n o.key === this.selectedScopeId) || entityOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedScopeId = e.detail.key;\n this.loadSecrets();\n }}\n >\n this.addSecret()}>Add Secret\n this.loadSecrets()}>Refresh\n
      \n ({\n Key: item.key,\n Value: item.masked ? '******' : item.value,\n Protected: item.protected ? 'Yes' : 'No',\n Environment: item.environment || '*',\n })}\n .dataActions=${[\n {\n name: 'Edit',\n iconName: 'lucide:edit',\n action: async (item: any) => { await this.editSecret(item); },\n },\n {\n name: 'Delete',\n iconName: 'lucide:trash2',\n action: async (item: any) => {\n await appstate.dataStatePart.dispatchAction(appstate.deleteSecretAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n key: item.key,\n });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadEntities();\n }\n }\n\n private async loadEntities() {\n if (!this.selectedConnectionId) return;\n if (this.selectedScope === 'project') {\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n } else {\n await appstate.dataStatePart.dispatchAction(appstate.fetchGroupsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n }\n\n private async loadSecrets() {\n if (!this.selectedConnectionId || !this.selectedScopeId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchSecretsAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n });\n }\n\n private async addSecret() {\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: 'Add Secret',\n content: html`\n \n
      \n \n
      \n
      \n \n
      \n `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Create',\n action: async (modal: any) => {\n const inputs = modal.shadowRoot.querySelectorAll('dees-input-text');\n const data: any = {};\n for (const input of inputs) { data[input.key] = input.value || ''; }\n await appstate.dataStatePart.dispatchAction(appstate.createSecretAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n key: data.key,\n value: data.value,\n });\n modal.destroy();\n },\n },\n ],\n });\n }\n\n private async editSecret(item: any) {\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: `Edit Secret: ${item.key}`,\n content: html`\n \n
      \n \n
      \n `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Update',\n action: async (modal: any) => {\n const input = modal.shadowRoot.querySelector('dees-input-text');\n await appstate.dataStatePart.dispatchAction(appstate.updateSecretAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n key: item.key,\n value: input?.value || '',\n });\n modal.destroy();\n },\n },\n ],\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-pipelines')\nexport class GitopsViewPipelines extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n @state()\n accessor selectedProjectId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n css`\n .status-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n }\n .status-success { background: #1a3a1a; color: #00ff88; }\n .status-failed { background: #3a1a1a; color: #ff4444; }\n .status-running { background: #1a2a3a; color: #00acff; }\n .status-pending { background: #3a3a1a; color: #ffaa00; }\n .status-canceled { background: #2a2a2a; color: #999; }\n `,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n const projectOptions = this.dataState.projects.map((p) => ({\n option: p.fullPath || p.name,\n key: p.id,\n }));\n\n return html`\n
      Pipelines
      \n
      View and manage CI/CD pipelines
      \n
      \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadProjects();\n }}\n >\n o.key === this.selectedProjectId) || projectOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedProjectId = e.detail.key;\n this.loadPipelines();\n }}\n >\n this.loadPipelines()}>Refresh\n
      \n ({\n ID: item.id,\n Status: item.status,\n Ref: item.ref,\n Duration: item.duration ? `${Math.round(item.duration)}s` : '-',\n Source: item.source,\n Created: item.createdAt ? new Date(item.createdAt).toLocaleString() : '-',\n })}\n .dataActions=${[\n {\n name: 'View Jobs',\n iconName: 'lucide:list',\n action: async (item: any) => { await this.viewJobs(item); },\n },\n {\n name: 'Retry',\n iconName: 'lucide:refresh-cw',\n action: async (item: any) => {\n await appstate.dataStatePart.dispatchAction(appstate.retryPipelineAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n pipelineId: item.id,\n });\n },\n },\n {\n name: 'Cancel',\n iconName: 'lucide:x-circle',\n action: async (item: any) => {\n await appstate.dataStatePart.dispatchAction(appstate.cancelPipelineAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n pipelineId: item.id,\n });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadProjects();\n }\n }\n\n private async loadProjects() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n\n private async loadPipelines() {\n if (!this.selectedConnectionId || !this.selectedProjectId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchPipelinesAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n });\n }\n\n private async viewJobs(pipeline: any) {\n await appstate.dataStatePart.dispatchAction(appstate.fetchPipelineJobsAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n pipelineId: pipeline.id,\n });\n\n const jobs = appstate.dataStatePart.getState().pipelineJobs;\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: `Pipeline #${pipeline.id} - Jobs`,\n content: html`\n \n
      \n ${jobs.map((job: any) => html`\n
      \n ${job.name} (${job.stage})\n ${job.status} - ${job.duration ? `${Math.round(job.duration)}s` : '-'}\n
      \n `)}\n ${jobs.length === 0 ? html`

      No jobs found.

      ` : ''}\n
      \n `,\n menuOptions: [\n { name: 'Close', action: async (modal: any) => { modal.destroy(); } },\n ],\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-buildlog')\nexport class GitopsViewBuildlog extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n @state()\n accessor selectedProjectId: string = '';\n\n @state()\n accessor selectedJobId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n css`\n .log-container {\n background: #0d0d0d;\n border: 1px solid #333;\n border-radius: 8px;\n padding: 16px;\n font-family: 'Fira Code', 'Courier New', monospace;\n font-size: 13px;\n line-height: 1.6;\n color: #ccc;\n max-height: 600px;\n overflow-y: auto;\n white-space: pre-wrap;\n word-break: break-all;\n }\n .log-empty {\n color: #666;\n text-align: center;\n padding: 40px;\n }\n .job-meta {\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n padding: 12px;\n background: #1a1a2e;\n border-radius: 8px;\n font-size: 14px;\n }\n .job-meta-item {\n color: #999;\n }\n .job-meta-item strong {\n color: #fff;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n const projectOptions = this.dataState.projects.map((p) => ({\n option: p.fullPath || p.name,\n key: p.id,\n }));\n\n const jobOptions = this.dataState.pipelineJobs.map((j) => ({\n option: `${j.name} (${j.status})`,\n key: j.id,\n }));\n\n return html`\n
      Build Log
      \n
      View raw build logs for CI/CD jobs
      \n
      \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadProjects();\n }}\n >\n o.key === this.selectedProjectId) || projectOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedProjectId = e.detail.key;\n }}\n >\n o.key === this.selectedJobId) || jobOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedJobId = e.detail.key;\n }}\n >\n this.fetchLog()}>Fetch Log\n this.fetchLog()}>Refresh\n
      \n ${this.selectedJobId ? html`\n
      \n Job: ${this.selectedJobId}\n Project: ${this.selectedProjectId}\n
      \n ` : ''}\n
      \n ${this.dataState.currentJobLog\n ? this.dataState.currentJobLog\n : html`
      Select a connection, project, and job, then click \"Fetch Log\" to view build output.
      `\n }\n
      \n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadProjects();\n }\n }\n\n private async loadProjects() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n\n private async fetchLog() {\n if (!this.selectedConnectionId || !this.selectedProjectId || !this.selectedJobId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchJobLogAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n jobId: this.selectedJobId,\n });\n }\n}\n", "import * as plugins from '../plugins.js';\nimport * as appstate from '../appstate.js';\nimport * as interfaces from '../../ts_interfaces/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport type { GitopsViewOverview } from './views/overview/index.js';\nimport type { GitopsViewConnections } from './views/connections/index.js';\nimport type { GitopsViewProjects } from './views/projects/index.js';\nimport type { GitopsViewGroups } from './views/groups/index.js';\nimport type { GitopsViewSecrets } from './views/secrets/index.js';\nimport type { GitopsViewPipelines } from './views/pipelines/index.js';\nimport type { GitopsViewBuildlog } from './views/buildlog/index.js';\n\n@customElement('gitops-dashboard')\nexport class GitopsDashboard extends DeesElement {\n @state()\n accessor loginState: appstate.ILoginState = { identity: null, isLoggedIn: false };\n\n @state()\n accessor uiState: appstate.IUiState = {\n activeView: 'overview',\n autoRefresh: true,\n refreshInterval: 30000,\n };\n\n private viewTabs = [\n { name: 'Overview', iconName: 'lucide:layoutDashboard', element: (async () => (await import('./views/overview/index.js')).GitopsViewOverview)() },\n { name: 'Connections', iconName: 'lucide:plug', element: (async () => (await import('./views/connections/index.js')).GitopsViewConnections)() },\n { name: 'Projects', iconName: 'lucide:folderGit2', element: (async () => (await import('./views/projects/index.js')).GitopsViewProjects)() },\n { name: 'Groups', iconName: 'lucide:users', element: (async () => (await import('./views/groups/index.js')).GitopsViewGroups)() },\n { name: 'Secrets', iconName: 'lucide:key', element: (async () => (await import('./views/secrets/index.js')).GitopsViewSecrets)() },\n { name: 'Pipelines', iconName: 'lucide:play', element: (async () => (await import('./views/pipelines/index.js')).GitopsViewPipelines)() },\n { name: 'Build Log', iconName: 'lucide:scrollText', element: (async () => (await import('./views/buildlog/index.js')).GitopsViewBuildlog)() },\n ];\n\n private resolvedViewTabs: Array<{ name: string; iconName: string; element: any }> = [];\n\n constructor() {\n super();\n document.title = 'GitOps';\n\n const loginSubscription = appstate.loginStatePart\n .select((stateArg) => stateArg)\n .subscribe((loginState) => {\n this.loginState = loginState;\n if (loginState.isLoggedIn) {\n appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n }\n });\n this.rxSubscriptions.push(loginSubscription);\n\n const uiSubscription = appstate.uiStatePart\n .select((stateArg) => stateArg)\n .subscribe((uiState) => {\n this.uiState = uiState;\n this.syncAppdashView(uiState.activeView);\n });\n this.rxSubscriptions.push(uiSubscription);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n .maincontainer {\n width: 100%;\n height: 100vh;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n \n \n \n \n
      \n `;\n }\n\n public async firstUpdated() {\n // Resolve async view tab imports\n this.resolvedViewTabs = await Promise.all(\n this.viewTabs.map(async (tab) => ({\n name: tab.name,\n iconName: tab.iconName,\n element: await tab.element,\n })),\n );\n this.requestUpdate();\n await this.updateComplete;\n\n const simpleLogin = this.shadowRoot!.querySelector('dees-simple-login') as any;\n if (simpleLogin) {\n simpleLogin.addEventListener('login', (e: CustomEvent) => {\n this.login(e.detail.data.username, e.detail.data.password);\n });\n }\n\n const appDash = this.shadowRoot!.querySelector('dees-simple-appdash') as any;\n if (appDash) {\n appDash.addEventListener('view-select', (e: CustomEvent) => {\n const viewName = e.detail.view.name.toLowerCase();\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: viewName });\n });\n appDash.addEventListener('logout', async () => {\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n });\n }\n\n // Load initial view on appdash\n if (appDash && this.resolvedViewTabs.length > 0) {\n const initialView = this.resolvedViewTabs.find(\n (t) => t.name.toLowerCase() === this.uiState.activeView,\n ) || this.resolvedViewTabs[0];\n await appDash.loadView(initialView);\n }\n\n // Check for stored session (persistent login state)\n const loginState = appstate.loginStatePart.getState();\n if (loginState.identity?.jwt) {\n if (loginState.identity.expiresAt > Date.now()) {\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_VerifyIdentity\n >('/typedrequest', 'verifyIdentity');\n const response = await typedRequest.fire({ identity: loginState.identity });\n if (response.valid) {\n this.loginState = loginState;\n if (simpleLogin) {\n await simpleLogin.switchToSlottedContent();\n }\n } else {\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n }\n } catch (err) {\n console.warn('Stored session invalid, returning to login:', err);\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n }\n } else {\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n }\n }\n }\n\n private async login(username: string, password: string) {\n const domtools = await this.domtoolsPromise;\n const simpleLogin = this.shadowRoot!.querySelector('dees-simple-login') as any;\n const form = simpleLogin?.shadowRoot?.querySelector('dees-form') as any;\n\n if (form) {\n form.setStatus('pending', 'Logging in...');\n }\n\n const newState = await appstate.loginStatePart.dispatchAction(appstate.loginAction, {\n username,\n password,\n });\n\n if (newState.identity) {\n if (form) {\n form.setStatus('success', 'Logged in!');\n }\n if (simpleLogin) {\n await simpleLogin.switchToSlottedContent();\n }\n } else {\n if (form) {\n form.setStatus('error', 'Login failed!');\n await domtools.convenience.smartdelay.delayFor(2000);\n form.reset();\n }\n }\n }\n\n private syncAppdashView(viewName: string): void {\n const appDash = this.shadowRoot?.querySelector('dees-simple-appdash') as any;\n if (!appDash || this.resolvedViewTabs.length === 0) return;\n const targetTab = this.resolvedViewTabs.find((t) => t.name.toLowerCase() === viewName);\n if (!targetTab) return;\n appDash.loadView(targetTab);\n }\n}\n", "import './gitops-dashboard.js';\nimport './views/overview/index.js';\nimport './views/connections/index.js';\nimport './views/projects/index.js';\nimport './views/groups/index.js';\nimport './views/secrets/index.js';\nimport './views/pipelines/index.js';\nimport './views/buildlog/index.js';\n", "import * as plugins from './plugins.js';\nimport { html } from '@design.estate/dees-element';\nimport './elements/index.js';\n\nplugins.deesElement.render(html`\n \n`, document.body);\n"], + "sources": ["../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/css-tag.ts", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/reactive-element.ts", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/lit-html.ts", "../node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/src/lit-element.ts", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/is-server.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/index.js", "../node_modules/.pnpm/@push.rocks+isounique@1.0.5/node_modules/@push.rocks/isounique/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartpromise@4.2.3/node_modules/@push.rocks/smartpromise/ts/smartpromise.classes.deferred.ts", "../node_modules/.pnpm/@push.rocks+smartpromise@4.2.3/node_modules/@push.rocks/smartpromise/ts/smartpromise.classes.cumulativedeferred.ts", "../node_modules/.pnpm/@push.rocks+smartpromise@4.2.3/node_modules/@push.rocks/smartpromise/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/ts/smartrx.plugins.ts", "../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/isFunction.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/createErrorClass.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/arrRemove.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/Subscription.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/config.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/noop.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/NotificationFactories.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/errorContext.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/Subscriber.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/symbol/observable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/identity.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/pipe.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/Observable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/lift.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/refCount.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/performanceTimestampProvider.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/dom/animationFrames.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/Subject.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/BehaviorSubject.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/ReplaySubject.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/AsyncSubject.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/Action.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/Immediate.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/immediateProvider.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/AsapAction.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/Scheduler.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/asap.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/async.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/queue.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/empty.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/isScheduler.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/args.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/isArrayLike.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/isPromise.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/isInteropObservable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/symbol/iterator.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/isIterable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/innerFrom.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/executeSchedule.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/observeOn.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/subscribeOn.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/scheduled/scheduled.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/from.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/of.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/throwError.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/Notification.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/isObservable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/EmptyError.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/lastValueFrom.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/firstValueFrom.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/NotFoundError.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/SequenceError.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/isDate.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/timeout.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/map.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/bindCallback.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/combineLatest.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/mergeInternals.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/mergeMap.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/mergeAll.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/concatAll.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/concat.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/defer.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/connectable.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/forkJoin.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/fromEvent.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/iif.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/timer.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/interval.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/merge.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/never.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/pairs.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/filter.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/partition.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/race.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/range.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/observable/using.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/types.js", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/audit.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/auditTime.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/buffer.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/bufferCount.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/bufferTime.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/bufferWhen.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/catchError.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/reduce.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/toArray.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/combineLatestAll.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/combineAll.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/concatMap.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/concatMapTo.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/connect.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/count.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/debounce.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/debounceTime.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/take.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/ignoreElements.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/mapTo.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/delayWhen.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/delay.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/dematerialize.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/distinct.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/elementAt.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/every.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/exhaustMap.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/exhaustAll.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/exhaust.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/expand.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/finalize.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/find.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/findIndex.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/first.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/groupBy.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/isEmpty.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/last.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/materialize.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/max.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/flatMap.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/mergeMapTo.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/mergeScan.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/min.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/multicast.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/pairwise.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/pluck.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/publish.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/publishBehavior.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/publishLast.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/publishReplay.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/repeat.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/repeatWhen.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/retry.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/retryWhen.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/sample.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/sampleTime.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/scan.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/sequenceEqual.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/shareReplay.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/single.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/skip.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/skipLast.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/skipUntil.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/skipWhile.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/startWith.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/switchMap.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/switchAll.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/switchMapTo.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/switchScan.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/takeUntil.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/takeWhile.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/tap.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/throttle.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/throttleTime.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/timeInterval.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/timeoutWith.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/timestamp.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/window.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/windowTime.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/windowWhen.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/zipAll.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/index.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/internal/operators/partition.ts", "../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/src/operators/index.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/ts/smartrx.plugins.rxjs.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/ts/smartrx.classes.observablemap.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/ts/smartrx.classes.observableintake.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/ts/smartrx.functions.ts", "../node_modules/.pnpm/@push.rocks+smartrx@3.0.10/node_modules/@push.rocks/smartrx/ts/index.ts", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/property.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/decorators/property.js", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/dist_ts/domtools.colors.js", "../node_modules/.pnpm/@push.rocks+smartdelay@3.0.5/node_modules/@push.rocks/smartdelay/ts/index.ts", "../node_modules/.pnpm/@api.global+typedrequest-interfaces@3.0.19/node_modules/@api.global/typedrequest-interfaces/dist_ts/index.js", "../node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js", "../node_modules/.pnpm/matcher@5.0.0/node_modules/matcher/index.js", "../node_modules/.pnpm/@push.rocks+smartmatch@2.0.0/node_modules/@push.rocks/smartmatch/ts/smartmatch.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartmatch@2.0.0/node_modules/@push.rocks/smartmatch/ts/index.ts", "../node_modules/.pnpm/croner@10.0.1/node_modules/croner/dist/croner.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMonths.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/add.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSaturday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSunday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isWeekend.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addBusinessDays.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMilliseconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addHours.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeekYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addISOWeekYears.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMinutes.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addQuarters.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addSeconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addWeeks.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addYears.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/areIntervalsOverlapping.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/max.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/min.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/clamp.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/closestIndexTo.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/closestTo.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/compareAsc.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/compareDesc.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructNow.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/daysToWeeks.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameDay.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInBusinessDays.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarISOWeekYears.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarISOWeeks.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarMonths.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getQuarter.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarQuarters.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarWeeks.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarYears.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInDays.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getRoundingMethod.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInHours.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subISOWeekYears.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInISOWeekYears.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInMilliseconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInMinutes.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfDay.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isLastDayOfMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInMonths.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInQuarters.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInSeconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInWeeks.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInYears.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeInterval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachDayOfInterval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachHourOfInterval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachMinuteOfInterval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachMonthOfInterval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfQuarter.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachQuarterOfInterval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekOfInterval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekendOfInterval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekendOfMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekendOfYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachYearOfInterval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfDecade.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfHour.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfISOWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfISOWeekYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfMinute.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfQuarter.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfSecond.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfToday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfTomorrow.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfYesterday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultLocale.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistance.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistanceStrict.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistanceToNow.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDistanceToNowStrict.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatDuration.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatISO.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatISO9075.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatISODuration.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatRFC3339.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatRFC7231.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatRelative.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/fromUnixTime.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDate.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDay.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDaysInMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isLeapYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDaysInYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDecade.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDefaultOptions.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getHours.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISODay.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeeksInYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMilliseconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMinutes.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getOverlappingDaysInIntervals.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getSeconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getTime.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getUnixTime.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekOfMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeeksInMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hoursToMilliseconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hoursToMinutes.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/hoursToSeconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/interval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intervalToDuration.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intlFormat.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/intlFormatDistance.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isAfter.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isBefore.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isEqual.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isExists.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isFirstDayOfMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isFriday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isFuture.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/transpose.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Setter.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Parser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/constants.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/utils.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDay.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISODay.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isMatch.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isMonday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isPast.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfHour.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameHour.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameISOWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameISOWeekYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfMinute.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameMinute.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameQuarter.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfSecond.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameSecond.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisHour.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisISOWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisMinute.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisQuarter.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisSecond.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThisYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isThursday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isToday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isTomorrow.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isTuesday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isWednesday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isWithinInterval.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subDays.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isYesterday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfDecade.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfISOWeek.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfISOWeekYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfQuarter.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lightFormat.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/milliseconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondsToHours.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondsToMinutes.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/millisecondsToSeconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutesToHours.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutesToMilliseconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/minutesToSeconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/monthsToQuarters.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/monthsToYears.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextDay.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextFriday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextMonday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextSaturday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextSunday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextThursday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextTuesday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/nextWednesday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parseISO.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parseJSON.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousDay.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousFriday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousMonday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousSaturday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousSunday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousThursday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousTuesday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/previousWednesday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/quartersToMonths.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/quartersToYears.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/roundToNearestHours.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/roundToNearestMinutes.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondsToHours.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondsToMilliseconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/secondsToMinutes.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMonth.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/set.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDate.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDayOfYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDefaultOptions.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setHours.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMilliseconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMinutes.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setQuarter.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setSeconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeekYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setYear.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDecade.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfToday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfTomorrow.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYesterday.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMonths.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/sub.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subBusinessDays.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subHours.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMilliseconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMinutes.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subQuarters.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subSeconds.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subWeeks.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subYears.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/weeksToDays.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearsToDays.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearsToMonths.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/yearsToQuarters.js", "../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/index.js", "../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js", "../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isToday.js", "../node_modules/.pnpm/parse-ms@4.0.0/node_modules/parse-ms/index.js", "../node_modules/.pnpm/pretty-ms@9.3.0/node_modules/pretty-ms/index.js", "../node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/ts/smarttime.plugins.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/ts/smarttime.classes.cronjob.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/ts/smarttime.classes.cronmanager.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/ts/smarttime.units.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/ts/smarttime.classes.extendeddate.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/ts/smarttime.classes.hrtmeasurement.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/ts/smarttime.classes.interval.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/ts/smarttime.classes.timestamp.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/ts/smarttime.classes.timer.ts", "../node_modules/.pnpm/@push.rocks+smarttime@4.2.3/node_modules/@push.rocks/smarttime/ts/index.ts", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTreeNode.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreePosition.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/TreeIterator.js", "../node_modules/.pnpm/symbol-tree@3.2.4/node_modules/symbol-tree/lib/SymbolTree.js", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.plugins.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.asyncexecutionstack.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.backpressuredarray.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.fastmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.objectmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.interestmap.interest.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.interestmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.limitedarray.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.looptracker.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.stringmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.timedaggregator.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/classes.tree.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/index.ts", "../node_modules/.pnpm/uint8array-extras@1.5.0/node_modules/uint8array-extras/index.js", "../node_modules/.pnpm/@push.rocks+smartbuffer@3.0.5/node_modules/@push.rocks/smartbuffer/ts/smartbuffer.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartbuffer@3.0.5/node_modules/@push.rocks/smartbuffer/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/ts/smartguard.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/ts/classes.guard.ts", "../node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/ts/classes.guarderror.ts", "../node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/ts/classes.guardset.ts", "../node_modules/.pnpm/@push.rocks+smartguard@3.1.0/node_modules/@push.rocks/smartguard/ts/index.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/interceptors/interceptor.manager.ts", "../node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/ts/smartenv.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/ts/interfaces/index.ts", "../node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/ts/smartenv.classes.smartenv.ts", "../node_modules/.pnpm/@push.rocks+smartenv@5.0.13/node_modules/@push.rocks/smartenv/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/ts/smartstring.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/ts/smartstring.create.ts", "../node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/ts/smartstring.docker.ts", "../node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/ts/smartstring.indent.ts", "../node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/ts/smartstring.normalize.ts", "../node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/ts/smartstring.base64.ts", "../node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/ts/smartstring.type.ts", "../node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/ts/smartstring.domain.ts", "../node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/ts/smartstring.git.ts", "../node_modules/.pnpm/@push.rocks+smartstring@4.1.0/node_modules/@push.rocks/smartstring/ts/index.ts", "../node_modules/.pnpm/lodash.clonedeep@4.5.0/node_modules/lodash.clonedeep/index.js", "../node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js", "../node_modules/.pnpm/@push.rocks+smartjson@5.2.0/node_modules/@push.rocks/smartjson/ts/smartjson.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartjson@5.2.0/node_modules/@push.rocks/smartjson/ts/bufferhandling.ts", "../node_modules/.pnpm/@push.rocks+smartjson@5.2.0/node_modules/@push.rocks/smartjson/ts/index.ts", "../node_modules/.pnpm/@tempfix+idb@8.0.3/node_modules/@tempfix/idb/build/index.js", "../node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/ts/webstore.plugins.ts", "../node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/ts/webstore.classes.webstore.ts", "../node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/ts/webstore.classes.typedrequestcache.ts", "../node_modules/.pnpm/@push.rocks+webstore@2.0.20/node_modules/@push.rocks/webstore/ts/index.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/webrequest.plugins.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/cache/cache.store.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/cache/cache.headers.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/cache/cache.strategies.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/cache/cache.manager.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/retry/retry.strategies.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/retry/retry.manager.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/utils/deduplicator.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/utils/timeout.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/webrequest.client.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/webrequest.function.ts", "../node_modules/.pnpm/@push.rocks+webrequest@4.0.2/node_modules/@push.rocks/webrequest/ts/index.ts", "../node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/ts/plugins.ts", "../node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/ts/classes.typedresponseerror.ts", "../node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/ts/classes.typedtools.ts", "../node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/ts/classes.typedhandler.ts", "../node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/ts/classes.typedrouter.ts", "../node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/ts/classes.virtualstream.ts", "../node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/ts/classes.typedtarget.ts", "../node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/ts/classes.typedrequest.ts", "../node_modules/.pnpm/@api.global+typedrequest@3.2.6/node_modules/@api.global/typedrequest/ts/index.ts", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/util.js", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/native.js", "../node_modules/.pnpm/oblivious-set@2.0.0/node_modules/oblivious-set/src/index.ts", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/options.js", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/indexed-db.js", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/localstorage.js", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/methods/simulate.js", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/method-chooser.js", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/broadcast-channel.js", "../node_modules/.pnpm/unload@2.4.1/node_modules/unload/dist/es/browser.js", "../node_modules/.pnpm/unload@2.4.1/node_modules/unload/dist/es/node.js", "../node_modules/.pnpm/unload@2.4.1/node_modules/unload/dist/es/index.js", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/leader-election-util.js", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/leader-election-web-lock.js", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/leader-election.js", "../node_modules/.pnpm/broadcast-channel@7.3.0/node_modules/broadcast-channel/dist/esbrowser/index.js", "../node_modules/.pnpm/@design.estate+dees-comms@1.0.30/node_modules/@design.estate/dees-comms/ts/dees-comms.plugins.ts", "../node_modules/.pnpm/@design.estate+dees-comms@1.0.30/node_modules/@design.estate/dees-comms/ts/dees-comms.classes.deescomms.ts", "../node_modules/.pnpm/@design.estate+dees-comms@1.0.30/node_modules/@design.estate/dees-comms/ts/index.ts", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/common.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/exception.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/mark.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/str.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/seq.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/map.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/null.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/bool.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/int.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/float.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/json.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/core.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/timestamp.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/merge.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/binary.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/omap.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/pairs.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/set.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/type/js/function.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/schema/default_full.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/loader.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml/dumper.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/lib/js-yaml.js", "../node_modules/.pnpm/js-yaml@3.14.2/node_modules/js-yaml/index.js", "../node_modules/.pnpm/@push.rocks+smartyaml@2.0.5/node_modules/@push.rocks/smartyaml/ts/smartyaml.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartyaml@2.0.5/node_modules/@push.rocks/smartyaml/ts/index.ts", "../node_modules/.pnpm/bail@2.0.2/node_modules/bail/index.js", "../node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js", "../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/default.js", "../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js", "../node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.js", "../node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.js", "../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js", "../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js", "../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.js", "../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.js", "../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minpath.browser.js", "../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minproc.browser.js", "../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js", "../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.browser.js", "../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.js", "../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.js", "../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.js", "../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.js", "../node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.js", "../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js", "../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js", "../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js", "../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js", "../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.js", "../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js", "../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js", "../node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js", "../node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/index.js", "../node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js", "../node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/index.js", "../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js", "../node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/lib/index.js", "../node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/index.js", "../node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js", "../node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/index.js", "../node_modules/.pnpm/markdown-table@3.0.4/node_modules/markdown-table/index.js", "../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/configure.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/break.js", "../node_modules/.pnpm/longest-streak@3.1.0/node_modules/longest-streak/index.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-fence.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/code.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-quote.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/definition.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.js", "../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/encode-info.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js", "../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.js", "../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/index.js", "../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js", "../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/heading.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/html.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-rule.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/list-item.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js", "../node_modules/.pnpm/mdast-util-phrasing@4.1.0/node_modules/mdast-util-phrasing/lib/index.js", "../node_modules/.pnpm/mdast-util-phrasing@4.1.0/node_modules/mdast-util-phrasing/index.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/root.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-strong.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/strong.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/text.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/handle/index.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/join.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/unsafe.js", "../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.dom.js", "../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js", "../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/association.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/compile-pattern.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/container-flow.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/safe.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/util/track.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/lib/index.js", "../node_modules/.pnpm/mdast-util-to-markdown@2.1.2/node_modules/mdast-util-to-markdown/index.js", "../node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/lib/index.js", "../node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/index.js", "../node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js", "../node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/index.js", "../node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/lib/index.js", "../node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/index.js", "../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js", "../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js", "../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js", "../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/index.js", "../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js", "../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/lib/html.js", "../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/index.js", "../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js", "../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js", "../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js", "../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js", "../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js", "../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js", "../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js", "../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js", "../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js", "../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/index.js", "../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/syntax.js", "../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/html.js", "../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/index.js", "../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/html.js", "../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js", "../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/index.js", "../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/html.js", "../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/edit-map.js", "../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/infer.js", "../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/syntax.js", "../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/index.js", "../node_modules/.pnpm/micromark-extension-gfm-tagfilter@2.0.0/node_modules/micromark-extension-gfm-tagfilter/lib/index.js", "../node_modules/.pnpm/micromark-extension-gfm-tagfilter@2.0.0/node_modules/micromark-extension-gfm-tagfilter/index.js", "../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/html.js", "../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js", "../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/index.js", "../node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js", "../node_modules/.pnpm/remark-gfm@4.0.1/node_modules/remark-gfm/lib/index.js", "../node_modules/.pnpm/remark-gfm@4.0.1/node_modules/remark-gfm/index.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/compile.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/content.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/document.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/flow.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/text.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/constructs.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/create-tokenizer.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/parse.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/postprocess.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/preprocess.js", "../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/index.js", "../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.js", "../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.js", "../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js", "../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.js", "../node_modules/.pnpm/format@0.2.2/node_modules/format/format.js", "../node_modules/.pnpm/fault@2.0.1/node_modules/fault/index.js", "../node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/lib/to-matters.js", "../node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/lib/syntax.js", "../node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/lib/html.js", "../node_modules/.pnpm/micromark-extension-frontmatter@2.0.0/node_modules/micromark-extension-frontmatter/index.js", "../node_modules/.pnpm/mdast-util-frontmatter@2.0.1/node_modules/mdast-util-frontmatter/lib/index.js", "../node_modules/.pnpm/mdast-util-frontmatter@2.0.1/node_modules/mdast-util-frontmatter/index.js", "../node_modules/.pnpm/remark-frontmatter@5.0.0/node_modules/remark-frontmatter/lib/index.js", "../node_modules/.pnpm/remark-frontmatter@5.0.0/node_modules/remark-frontmatter/index.js", "../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/types.js", "../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js", "../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js", "../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js", "../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js", "../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/index.js", "../node_modules/.pnpm/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/lib/schema.js", "../node_modules/.pnpm/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/lib/index.js", "../node_modules/.pnpm/hast-util-sanitize@5.0.2/node_modules/hast-util-sanitize/index.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/break.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/delete.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/heading.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/html.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/revert.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list-item.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/root.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/strong.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-row.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js", "../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/index.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/text.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/index.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/footer.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/index.js", "../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/index.js", "../node_modules/.pnpm/html-void-elements@3.0.0/node_modules/html-void-elements/index.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/schema.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/merge.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/normalize.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/info.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/types.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/create.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/aria.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/html.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/svg.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xlink.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xmlns.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xml.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/hast-to-react.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/find.js", "../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/index.js", "../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.js", "../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-hexadecimal.js", "../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-decimal.js", "../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/index.js", "../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/index.js", "../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/constant/dangerous.js", "../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-named.js", "../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.js", "../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-basic.js", "../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.js", "../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/index.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/comment.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/doctype.js", "../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js", "../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js", "../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js", "../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/index.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/util/siblings.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/omission.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/closing.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/opening.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/element.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/text.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/raw.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/root.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/index.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/index.js", "../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/index.js", "../node_modules/.pnpm/remark-html@16.0.1/node_modules/remark-html/lib/index.js", "../node_modules/.pnpm/remark-html@16.0.1/node_modules/remark-html/index.js", "../node_modules/.pnpm/remark-stringify@11.0.0/node_modules/remark-stringify/lib/index.js", "../node_modules/.pnpm/remark-stringify@11.0.0/node_modules/remark-stringify/index.js", "../node_modules/.pnpm/turndown@7.2.2/node_modules/turndown/lib/turndown.browser.es.js", "../node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.js", "../node_modules/.pnpm/@push.rocks+smartmarkdown@3.0.3/node_modules/@push.rocks/smartmarkdown/ts/smartmarkdown.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartmarkdown@3.0.3/node_modules/@push.rocks/smartmarkdown/ts/smartmarkdown.classes.mdparsedresult.ts", "../node_modules/.pnpm/@push.rocks+smartmarkdown@3.0.3/node_modules/@push.rocks/smartmarkdown/ts/index.ts", "../node_modules/.pnpm/path-to-regexp@8.3.0/node_modules/path-to-regexp/src/index.ts", "../node_modules/.pnpm/@push.rocks+smartrouter@1.3.3/node_modules/@push.rocks/smartrouter/ts/smartrouter.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartrouter@1.3.3/node_modules/@push.rocks/smartrouter/ts/smartrouter.classes.queryparams.ts", "../node_modules/.pnpm/@push.rocks+smartrouter@1.3.3/node_modules/@push.rocks/smartrouter/ts/smartrouter.classes.smartrouter.ts", "../node_modules/.pnpm/@push.rocks+smartrouter@1.3.3/node_modules/@push.rocks/smartrouter/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smarthash@3.2.6/node_modules/@push.rocks/smarthash/ts_web/plugins.ts", "../node_modules/.pnpm/@push.rocks+smarthash@3.2.6/node_modules/@push.rocks/smarthash/ts_web/sha256.fallback.ts", "../node_modules/.pnpm/@push.rocks+smarthash@3.2.6/node_modules/@push.rocks/smarthash/ts_web/index.ts", "../node_modules/.pnpm/@push.rocks+smartenv@6.0.0/node_modules/@push.rocks/smartenv/ts/smartenv.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartenv@6.0.0/node_modules/@push.rocks/smartenv/ts/interfaces/index.ts", "../node_modules/.pnpm/@push.rocks+smartenv@6.0.0/node_modules/@push.rocks/smartenv/ts/smartenv.classes.smartenv.ts", "../node_modules/.pnpm/@push.rocks+smartenv@6.0.0/node_modules/@push.rocks/smartenv/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartjson@6.0.0/node_modules/@push.rocks/smartjson/ts/smartjson.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartjson@6.0.0/node_modules/@push.rocks/smartjson/ts/bufferhandling.ts", "../node_modules/.pnpm/@push.rocks+smartjson@6.0.0/node_modules/@push.rocks/smartjson/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smartstate@2.0.30/node_modules/@push.rocks/smartstate/ts/smartstate.plugins.ts", "../node_modules/.pnpm/@push.rocks+smartstate@2.0.30/node_modules/@push.rocks/smartstate/ts/smartstate.classes.stateaction.ts", "../node_modules/.pnpm/@push.rocks+smartstate@2.0.30/node_modules/@push.rocks/smartstate/ts/smartstate.classes.statepart.ts", "../node_modules/.pnpm/@push.rocks+smartstate@2.0.30/node_modules/@push.rocks/smartstate/ts/smartstate.classes.smartstate.ts", "../node_modules/.pnpm/@push.rocks+smartstate@2.0.30/node_modules/@push.rocks/smartstate/ts/index.ts", "../node_modules/.pnpm/@push.rocks+smarturl@3.1.0/node_modules/@push.rocks/smarturl/dist_ts/smarturl.plugins.js", "../node_modules/.pnpm/@push.rocks+smarturl@3.1.0/node_modules/@push.rocks/smarturl/ts/smarturl.classes.smarturl.ts", "../node_modules/.pnpm/@push.rocks+smarturl@3.1.0/node_modules/@push.rocks/smarturl/ts/index.ts", "../node_modules/.pnpm/@push.rocks+webrequest@3.0.37/node_modules/@push.rocks/webrequest/ts/webrequest.plugins.ts", "../node_modules/.pnpm/@push.rocks+webrequest@3.0.37/node_modules/@push.rocks/webrequest/ts/index.ts", "../node_modules/.pnpm/@pushrocks+smartpromise@4.0.2/node_modules/@pushrocks/smartpromise/ts/smartpromise.classes.deferred.ts", "../node_modules/.pnpm/@pushrocks+smartpromise@4.0.2/node_modules/@pushrocks/smartpromise/ts/smartpromise.classes.cumulativedeferred.ts", "../node_modules/.pnpm/@pushrocks+smartpromise@4.0.2/node_modules/@pushrocks/smartpromise/ts/index.ts", "../node_modules/.pnpm/@pushrocks+smartdelay@3.0.1/node_modules/@pushrocks/smartdelay/ts/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/business/address.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/business/company.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/business/contact.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/finance/checkingaccount.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/finance/currency.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/finance/expense.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/finance/invoice.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/finance/payment.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/finance/transaction.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/finance/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/business/job.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/database/mongodescriptor.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/database/objectaction.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/database/objectstatus.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/database/wrappeddata.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/database/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/business/letter.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/business/pdf.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/business/person.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/business/project.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/business/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/code/commitinfo.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/code/statusobject.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/code/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/container/container.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/container/volumemount.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/container/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/content/article.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/content/author.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/content/documentationset.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/content/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/general/date.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/general/time.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/general/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/network/cert.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/network/cname.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/network/device.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/network/dns.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/network/dnschallenge.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/network/domaindelegation.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/network/jwt.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/network/networknode.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/network/request.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/network/reverseproxy.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/network/ssh.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/network/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/saas/product.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/saas/subscriptionplan.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/saas/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/storage/index.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/website/link.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/website/menuitem.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/website/linkblock.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/website/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/dist_ts/typefest.own.js", "../node_modules/.pnpm/@tsclass+tsclass@4.4.4/node_modules/@tsclass/tsclass/ts/index.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/websetup.plugins.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/interfaces/index.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/websetup.classes.tag.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/websetup.classes.tag.jsonldtag.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/websetup.classes.tag.opengraphtag.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/websetup.classes.taglevel.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/websetup.classes.tag.metatag.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/websetup.classes.tagmanager.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/websetup.classes.websetup.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/websetup.classes.title.ts", "../node_modules/.pnpm/@push.rocks+websetup@3.0.19/node_modules/@push.rocks/websetup/ts/index.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/lik.plugins.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/lik.fastmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/lik.objectmap.ts", "../node_modules/.pnpm/@push.rocks+lik@6.2.2/node_modules/@push.rocks/lik/ts/lik.stringmap.ts", "../node_modules/.pnpm/@tempfix+lenis@1.3.20/node_modules/@tempfix/lenis/package.json", "../node_modules/.pnpm/@tempfix+lenis@1.3.20/node_modules/@tempfix/lenis/packages/core/src/maths.ts", "../node_modules/.pnpm/@tempfix+lenis@1.3.20/node_modules/@tempfix/lenis/packages/core/src/animate.ts", "../node_modules/.pnpm/@tempfix+lenis@1.3.20/node_modules/@tempfix/lenis/packages/core/src/debounce.ts", "../node_modules/.pnpm/@tempfix+lenis@1.3.20/node_modules/@tempfix/lenis/packages/core/src/dimensions.ts", "../node_modules/.pnpm/@tempfix+lenis@1.3.20/node_modules/@tempfix/lenis/packages/core/src/emitter.ts", "../node_modules/.pnpm/@tempfix+lenis@1.3.20/node_modules/@tempfix/lenis/packages/core/src/virtual-scroll.ts", "../node_modules/.pnpm/@tempfix+lenis@1.3.20/node_modules/@tempfix/lenis/packages/core/src/lenis.ts", "../node_modules/.pnpm/sweet-scroll@4.0.0/node_modules/sweet-scroll/sweet-scroll.js", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/domtools.plugins.ts", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/domtools.css.breakpoints.ts", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/domtools.classes.scroller.ts", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/domtools.classes.thememanager.ts", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/domtools.classes.keyboard.ts", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/domtools.classes.domtools.ts", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/domtools.css.basestyles.ts", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/domtools.elementbasic.ts", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/domtools.css.ts", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/domtools.pluginexports.ts", "../node_modules/.pnpm/@design.estate+dees-domtools@2.3.8/node_modules/@design.estate/dees-domtools/ts/index.ts", "../node_modules/.pnpm/@design.estate+dees-element@2.1.6/node_modules/@design.estate/dees-element/ts/plugins.ts", "../node_modules/.pnpm/@design.estate+dees-element@2.1.6/node_modules/@design.estate/dees-element/ts/classes.cssmanager.ts", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/static.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/static-html.js", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/directive.ts", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/directives/unsafe-html.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/directives/unsafe-html.js", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/custom-element.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/decorators/custom-element.js", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/state.ts", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/event-options.ts", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/base.ts", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/query.ts", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/query-all.ts", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/query-async.ts", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/query-assigned-elements.ts", "../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/query-assigned-nodes.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/decorators.js", "../node_modules/.pnpm/@design.estate+dees-element@2.1.6/node_modules/@design.estate/dees-element/ts/classes.dees-element.ts", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/directive-helpers.ts", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/async-directive.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/async-directive.js", "../node_modules/.pnpm/@design.estate+dees-element@2.1.6/node_modules/@design.estate/dees-element/ts/directives/classes.resolvedirective.ts", "../node_modules/.pnpm/@design.estate+dees-element@2.1.6/node_modules/@design.estate/dees-element/ts/directives/classes.subscribedirective.ts", "../node_modules/.pnpm/@design.estate+dees-element@2.1.6/node_modules/@design.estate/dees-element/ts/directives/classes.subscribewithtemplate.ts", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/directives/private-async-helpers.ts", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/directives/until.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/directives/until.js", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/directives/async-replace.ts", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/directives/async-append.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/directives/async-append.js", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/directives/keyed.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/directives/keyed.js", "../node_modules/.pnpm/lit-html@3.3.2/node_modules/lit-html/src/directives/repeat.ts", "../node_modules/.pnpm/lit@3.3.2/node_modules/lit/directives/repeat.js", "../node_modules/.pnpm/@design.estate+dees-element@2.1.6/node_modules/@design.estate/dees-element/ts/directives/index.ts", "../node_modules/.pnpm/@design.estate+dees-element@2.1.6/node_modules/@design.estate/dees-element/ts/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00zindex.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00theme.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/business/address.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/business/contact.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/database/mongodescriptor.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/database/objectaction.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/database/objectstatus.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/database/wrappeddata.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/database/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/business/document.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/finance/checkingaccount.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/finance/currency.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/finance/expense.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/finance/accountingdoc.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/finance/payment.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/finance/stockprice.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/finance/transaction.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/finance/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/business/job.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/business/letter.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/business/pdf.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/business/project.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/business/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/code/commitinfo.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/code/statusobject.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/code/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/container/container.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/container/volumemount.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/container/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/descriptors/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/content/article.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/content/author.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/content/documentationset.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/content/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/general/date.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/general/time.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/general/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/cert.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/network/cname.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/device.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/dns.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/dnschallenge.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/dnsconvenience.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/domaindelegation.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/jwt.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/networknode.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/request.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/reverseproxy.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/network/ssh.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/network/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/saas/product.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/saas/subscriptionplan.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/saas/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/storage/index.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/website/link.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/website/menuitem.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/website/linkblock.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/website/index.ts", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/dist_ts/typefest.own.js", "../node_modules/.pnpm/@tsclass+tsclass@9.3.0/node_modules/@tsclass/tsclass/ts/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00plugins.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-windowlayer/dees-windowlayer.ts", "../node_modules/.pnpm/@fortawesome+fontawesome-svg-core@7.2.0/node_modules/@fortawesome/fontawesome-svg-core/index.mjs", "../node_modules/.pnpm/@fortawesome+free-brands-svg-icons@7.2.0/node_modules/@fortawesome/free-brands-svg-icons/index.mjs", "../node_modules/.pnpm/@fortawesome+free-regular-svg-icons@7.2.0/node_modules/@fortawesome/free-regular-svg-icons/index.mjs", "../node_modules/.pnpm/@fortawesome+free-solid-svg-icons@7.2.0/node_modules/@fortawesome/free-solid-svg-icons/index.mjs", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/defaultAttributes.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/createElement.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/shared/src/utils/hasA11yProp.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/shared/src/utils/mergeClasses.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/shared/src/utils/toCamelCase.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/shared/src/utils/toPascalCase.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/replaceElement.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/a-arrow-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/a-arrow-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/a-large-small.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/accessibility.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/air-vent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/activity.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/airplay.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/alarm-clock-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/alarm-clock-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/alarm-clock-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/alarm-clock-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/alarm-clock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/alarm-smoke.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/album.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-center-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-center-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-end-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-end-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-horizontal-distribute-center.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-horizontal-distribute-end.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-horizontal-distribute-start.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-horizontal-justify-center.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-horizontal-justify-end.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-horizontal-justify-start.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-horizontal-space-around.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-horizontal-space-between.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-start-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-start-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-vertical-distribute-center.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-vertical-distribute-end.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-vertical-distribute-start.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-vertical-justify-center.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-vertical-justify-end.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-vertical-justify-start.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-vertical-space-around.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/align-vertical-space-between.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ambulance.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ampersand.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ampersands.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/amphora.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/anchor.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/angry.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/annoyed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/antenna.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/anvil.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/aperture.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/app-window-mac.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/app-window.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/apple.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/archive-restore.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/archive-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/archive.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/armchair.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-big-down-dash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-big-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-big-left-dash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-big-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-big-right-dash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-big-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-big-up-dash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-big-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-0-1.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-1-0.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-a-z.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-from-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-narrow-wide.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-to-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-to-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-wide-narrow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down-z-a.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-left-from-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-left-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-left-to-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-right-from-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-right-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-right-to-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-0-1.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-1-0.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-a-z.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-from-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-from-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-narrow-wide.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-to-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-wide-narrow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up-z-a.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrow-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/arrows-up-from-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/asterisk.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/at-sign.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/atom.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/audio-lines.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/audio-waveform.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/award.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/axe.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/axis-3d.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/backpack.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/baby.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-alert.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-cent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-indian-rupee.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-dollar-sign.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-euro.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-info.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-japanese-yen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-percent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-pound-sterling.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-question-mark.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-russian-ruble.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-swiss-franc.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-turkish-lira.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/badge.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/baggage-claim.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/balloon.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ban.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/banana.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bandage.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/banknote-arrow-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/banknote-arrow-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/banknote-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/banknote.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/barcode.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/barrel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/baseline.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bath.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/battery-charging.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/battery-full.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/battery-low.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/battery-medium.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/battery-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/battery-warning.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/battery.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/beaker.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bean-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bean.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bed-double.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bed-single.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/beef.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/beer-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/beer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bell-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bell-electric.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bell-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bell-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bell-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bell-ring.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bell.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/between-horizontal-end.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/between-horizontal-start.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/between-vertical-end.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/between-vertical-start.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/biceps-flexed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bike.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/binary.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/binoculars.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/biohazard.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bird.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/birdhouse.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bitcoin.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/blend.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/blinds.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bluetooth-connected.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/blocks.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bluetooth-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bluetooth-searching.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bold.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bluetooth.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bomb.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bolt.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-a.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-alert.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-audio.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-copy.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-headphones.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-heart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-image.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-key.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-lock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-marked.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-open-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-open-text.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-text.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-type.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-up-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-user.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/book.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bookmark-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bookmark-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bookmark-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bookmark-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bookmark.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/boom-box.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bot-message-square.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bot-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bottle-wine.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bow-arrow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/box.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/boxes.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/braces.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/brackets.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/brain-circuit.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/brain-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/brain.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/brick-wall-fire.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/brick-wall-shield.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/briefcase-business.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/brick-wall.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/briefcase-conveyor-belt.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/briefcase-medical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/briefcase.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bring-to-front.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/brush-cleaning.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/brush.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bubbles.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bug-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bug-play.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bug.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/building-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/building.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bus-front.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/bus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cable-car.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cable.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cake-slice.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cake.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calculator.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-1.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-arrow-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-arrow-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-check-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-clock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-days.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-fold.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-heart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-minus-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-plus-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-range.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-sync.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-x-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendar.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/calendars.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/camera-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/camera.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/candy-cane.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/candy-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/candy.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cannabis-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cannabis.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/captions-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/captions.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/car-front.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/car-taxi-front.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/car.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/caravan.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/card-sim.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/carrot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/case-lower.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/case-sensitive.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/case-upper.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cassette-tape.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cast.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/castle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cat.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cctv.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-area.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-bar-big.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-bar-decreasing.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-bar-increasing.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-bar-stacked.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-candlestick.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-column-big.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-column-decreasing.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-bar.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-column-increasing.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-column-stacked.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-column.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-gantt.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-network.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-no-axes-column-decreasing.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-no-axes-column-increasing.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-no-axes-column.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-no-axes-combined.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-no-axes-gantt.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-pie.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-scatter.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chart-spline.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/check-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/check-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chef-hat.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cherry.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chess-bishop.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chess-king.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chess-pawn.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chess-queen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chess-knight.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chess-rook.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevron-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevron-first.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevron-last.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevron-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevron-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevron-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevrons-down-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevrons-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevrons-left-right-ellipsis.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevrons-left-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevrons-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevrons-right-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevrons-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevrons-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chromium.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/chevrons-up-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cigarette-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/church.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cigarette.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-alert.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-arrow-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-arrow-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-arrow-out-down-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-arrow-out-down-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-arrow-out-up-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-arrow-out-up-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-arrow-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-arrow-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-check-big.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-chevron-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-chevron-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-chevron-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-chevron-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-divide.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-dollar-sign.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-dot-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-ellipsis.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-equal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-fading-arrow-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-fading-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-gauge.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-parking-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-parking.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-pause.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-percent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-play.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-pile.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-pound-sterling.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-power.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-question-mark.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-slash-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-slash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-small.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-star.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-stop.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-user-round.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-user.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/circuit-board.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/citrus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clapperboard.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-clock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-copy.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-list.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-paste.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-pen-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-pen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-type.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-1.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clipboard.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-10.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-11.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-12.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-3.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-4.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-5.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-6.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-7.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-8.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-9.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-arrow-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-alert.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-arrow-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-fading.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/closed-caption.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-alert.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-backup.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-download.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-drizzle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-fog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-hail.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-moon-rain.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-lightning.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-moon.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-rain-wind.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-rain.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-snow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-sun-rain.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-sun.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-sync.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud-upload.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloud.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cloudy.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/clover.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/club.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/code-xml.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/code.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/codepen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/codesandbox.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/coffee.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/coins.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/columns-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/columns-3-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/columns-3.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/columns-4.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/combine.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/command.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/compass.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/component.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/computer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/concierge-bell.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/contact-round.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/construction.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/contact.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/container.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cookie.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/contrast.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cooking-pot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/copy-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/copy-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/copy-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/copy-slash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/copy-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/copy.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/copyleft.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/copyright.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/corner-down-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/corner-down-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/corner-left-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/corner-left-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/corner-right-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/corner-right-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/corner-up-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/corner-up-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cpu.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/creative-commons.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/credit-card.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/croissant.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/crop.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cross.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/crosshair.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/crown.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cuboid.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cup-soda.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/cylinder.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/currency.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/database-backup.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dam.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/database-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/database-zap.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/database.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/decimals-arrow-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/decimals-arrow-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/delete.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dessert.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/diameter.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/diamond-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/diamond-percent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/diamond-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/diamond.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dice-1.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dice-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dice-3.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dice-4.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dice-5.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dice-6.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dices.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/diff.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/disc-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/disc-3.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/disc-album.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/disc.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/divide.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dna-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dna.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dollar-sign.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/donut.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/door-closed-locked.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/door-closed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/door-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/download.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/drafting-compass.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dribbble.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/drama.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/drill.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/drone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/droplet-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/droplet.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/droplets.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/drum.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/drumstick.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/dumbbell.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ear-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/earth-lock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ear.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/earth.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/eclipse.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/egg-fried.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/egg-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/egg.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ellipsis-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ellipsis.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/equal-approximately.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/equal-not.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/equal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ethernet-port.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/eraser.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/euro.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ev-charger.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/expand.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/external-link.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/eye-closed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/eye.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/eye-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/facebook.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/factory.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fan.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fast-forward.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/feather.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fence.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ferris-wheel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/figma.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-archive.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-axis-3d.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-badge.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-braces-corner.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-box.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-braces.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-chart-column-increasing.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-chart-column.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-chart-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-chart-pie.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-check-corner.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-clock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-code-corner.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-code.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-diff.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-digit.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-exclamation-point.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-headphone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-heart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-image.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-input.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-key.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-lock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-minus-corner.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-music.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-output.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-pen-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-pen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-play.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-plus-corner.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-question-mark.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-scan.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-search-corner.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-signal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-sliders.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-spreadsheet.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-stack.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-symlink.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-terminal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-text.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-type-corner.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-type.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-user.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-video-camera.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-volume.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-x-corner.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/file.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/files.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/film.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fingerprint-pattern.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fire-extinguisher.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fish-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fish-symbol.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fish.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fishing-hook.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flag-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flag-triangle-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flag-triangle-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flag.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flame-kindling.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flame.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flashlight-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flashlight.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flask-conical-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flask-conical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flask-round.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flip-horizontal-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flip-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flip-vertical-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flip-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flower-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/flower.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/focus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fold-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fold-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-archive.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-clock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-closed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-code.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-git-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-git.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-heart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-input.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-kanban.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-key.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-lock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-open-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-output.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-pen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-root.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-search-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-symlink.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-sync.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-tree.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folder.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/folders.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/forklift.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/footprints.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/form.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/forward.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/frame.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/framer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/frown.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fuel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/fullscreen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/funnel-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/funnel-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/funnel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gallery-horizontal-end.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gallery-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gallery-thumbnails.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gallery-vertical-end.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gallery-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gamepad-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gamepad-directional.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gamepad.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gauge.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gavel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gem.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/georgian-lari.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ghost.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-branch-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-branch-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gift.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-branch.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-commit-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-commit-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-compare-arrows.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-compare.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-fork.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-graph.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-merge.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-pull-request-arrow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-pull-request-closed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-pull-request-create-arrow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-pull-request-create.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-pull-request-draft.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/git-pull-request.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/github.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gitlab.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/glass-water.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/glasses.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/globe-lock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/globe.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/globe-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/goal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/gpu.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/graduation-cap.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/grape.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/grid-2x2-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/grid-2x2-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/grid-2x2-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/grid-2x2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/grid-3x2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/grid-3x3.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/grip-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/grip-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/grip.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/group.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/guitar.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ham.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hamburger.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hammer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hand-coins.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hand-fist.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hand-grab.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hand-heart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hand-helping.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hand-metal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hand-platter.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hand.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/handbag.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/handshake.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hard-drive-download.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hard-drive-upload.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hard-drive.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hard-hat.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hat-glasses.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/haze.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hd.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hdmi-port.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heading-1.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heading-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heading-3.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heading-4.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heading-5.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heading-6.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heading.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/headphone-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/headphones.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heart-crack.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/headset.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heart-handshake.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heart-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heart-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heart-pulse.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heart-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/heater.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/helicopter.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hexagon.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/highlighter.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/history.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hop.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hop-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hospital.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hotel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/hourglass.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/house-heart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/house-plug.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/house-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/house-wifi.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/house.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ice-cream-bowl.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ice-cream-cone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/id-card-lanyard.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/id-card.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/image-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/image-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/image-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/image-play.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/image-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/image-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/image.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/image-upscale.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/images.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/import.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/inbox.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/indian-rupee.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/infinity.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/info.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/inspection-panel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/instagram.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/iteration-ccw.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/italic.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/iteration-cw.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/japanese-yen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/joystick.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/kanban.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/kayak.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/key-round.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/key-square.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/key.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/keyboard-music.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/keyboard-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/keyboard.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lamp-ceiling.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lamp-desk.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lamp-floor.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lamp-wall-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lamp-wall-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lamp.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/landmark.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/land-plot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/languages.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/laptop-minimal-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/laptop-minimal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/laptop.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lasso-select.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lasso.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/laugh.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/layers-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/layers-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/layers.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/layout-dashboard.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/layout-grid.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/layout-list.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/layout-panel-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/layout-panel-top.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/layout-template.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/leaf.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/leafy-green.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lectern.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/library-big.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/library.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/life-buoy.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ligature.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lightbulb-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lightbulb.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/line-squiggle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/link-2-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/link-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/link.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/linkedin.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-checks.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-chevrons-down-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-chevrons-up-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-collapse.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-end.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-filter-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-filter.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-indent-decrease.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-indent-increase.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-music.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-ordered.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-restart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-start.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-todo.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-tree.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-video.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/list.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/loader-circle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/loader.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/loader-pinwheel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/locate-fixed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/locate-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/locate.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lock-keyhole.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lock-keyhole-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lock-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/log-in.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/logs.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/log-out.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/lollipop.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/luggage.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/magnet.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mail-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mail-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mail-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mail-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mail-question-mark.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mail-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mail-warning.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mail.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mail-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mailbox.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mails.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-check-inside.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-house.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-minus-inside.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-pen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-plus-inside.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-x-inside.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pin.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-pinned.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/map.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mars-stroke.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mars.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/martini.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/maximize-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/maximize.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/medal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/megaphone-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/megaphone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/meh.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/menu.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/memory-stick.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/merge.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle-code.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle-heart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle-more.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle-question-mark.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle-warning.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle-reply.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-circle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-code.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-diff.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-heart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-lock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-more.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-quote.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-reply.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-share.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-text.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-warning.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/message-square.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/messages-square.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mic-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mic-vocal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mic.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/microchip.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/microscope.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/microwave.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/milestone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/milk-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/minimize-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/milk.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/minimize.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-cloud.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-pause.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-play.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-smartphone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-speaker.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-stop.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/monitor.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/moon-star.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/moon.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/motorbike.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mountain-snow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mountain.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mouse-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mouse-pointer-2-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mouse-pointer-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mouse-pointer-ban.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mouse-pointer-click.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mouse-pointer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/mouse.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-3d.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-diagonal-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-diagonal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-down-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-down-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-up-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-up-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/move.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/music-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/music-3.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/music-4.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/music.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/navigation-2-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/navigation-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/navigation.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/navigation-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/network.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/newspaper.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/nfc.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/non-binary.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/notebook-pen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/notebook-tabs.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/notebook-text.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/notebook.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/notepad-text-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/notepad-text.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/nut.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/nut-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/octagon-alert.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/octagon-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/octagon-pause.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/octagon-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/octagon.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/omega.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/orbit.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/option.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/origami.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/package-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/package-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/package-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/package-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/package-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/package-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/package-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/package.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/paint-roller.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/paint-bucket.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/paintbrush-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/paintbrush.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/palette.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panda.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-bottom-close.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-bottom-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-bottom-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-bottom.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-left-close.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-left-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-left-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-left-right-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-right-close.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-right-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-right-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-top-bottom-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-top-close.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-top-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-top-open.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panel-top.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panels-left-bottom.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panels-right-bottom.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/panels-top-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/paperclip.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/parentheses.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/parking-meter.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/party-popper.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pause.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/paw-print.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pc-case.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pen-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pen-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pen-tool.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pencil-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pencil-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pencil-ruler.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pentagon.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pencil.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/percent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/person-standing.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/philippine-peso.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/phone-call.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/phone-forwarded.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/phone-incoming.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/phone-missed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/phone-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/phone-outgoing.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/phone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pi.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/piano.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pickaxe.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/picture-in-picture-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/piggy-bank.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/picture-in-picture.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pilcrow-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pilcrow-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pilcrow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pill-bottle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pill.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pin-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pin.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pipette.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pizza.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/plane-landing.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/plane-takeoff.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/plane.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/play.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/plug-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/plug-zap.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/plug.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pocket-knife.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/podcast.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pocket.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pointer-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pointer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/popcorn.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/popsicle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pound-sterling.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/power-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/power.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/printer-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/presentation.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/printer-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/printer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/projector.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/proportions.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/puzzle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/pyramid.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/qr-code.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/quote.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rabbit.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/radar.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/radiation.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/radical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/radio-receiver.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/radio-tower.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/radio.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/radius.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rail-symbol.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rainbow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rat.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ratio.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/receipt-cent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/receipt-euro.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/receipt-indian-rupee.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/receipt-japanese-yen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/receipt-pound-sterling.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/receipt-russian-ruble.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/receipt-swiss-franc.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/receipt-text.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/receipt-turkish-lira.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/receipt.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rectangle-circle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rectangle-ellipsis.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rectangle-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rectangle-goggles.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rectangle-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/recycle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/redo-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/redo-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/redo.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/refresh-ccw-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/refresh-ccw.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/refresh-cw-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/refresh-cw.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/refrigerator.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/regex.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/remove-formatting.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/repeat-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/repeat-1.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/repeat.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/replace-all.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/replace.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/reply-all.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/reply.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rewind.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ribbon.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rocket.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rocking-chair.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/roller-coaster.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rose.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rotate-3d.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rotate-ccw-key.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rotate-ccw-square.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rotate-ccw.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rotate-cw-square.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rotate-cw.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/route-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/route.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/router.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rows-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rows-3.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rows-4.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/rss.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ruler-dimension-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/russian-ruble.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ruler.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/salad.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sailboat.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sandwich.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/satellite-dish.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/satellite.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/saudi-riyal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/save-all.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/save-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/save.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scale-3d.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scale.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scaling.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scan-eye.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scan-barcode.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scan-face.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scan-heart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scan-line.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scan-qr-code.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scan-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scan-text.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scan.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/school.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scissors-line-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scissors.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scooter.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/screen-share-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/screen-share.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scroll.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/scroll-text.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/search-alert.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/search-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/search-code.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/search-slash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/search-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/section.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/send-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/send-to-back.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/send.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/separator-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/separator-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/server-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/server-crash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/server-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/server.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/settings-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/settings.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shapes.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/share-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/share.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sheet.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shell.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-alert.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-ban.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-ellipsis.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-half.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-question-mark.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-user.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shield.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ship-wheel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ship.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shirt.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shopping-bag.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shopping-basket.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shopping-cart.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shovel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shower-head.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shredder.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shrimp.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shrink.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shuffle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/shrub.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sigma.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/signal-high.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/signal-low.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/signal-medium.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/signal-zero.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/signal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/signature.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/signpost-big.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/signpost.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/siren.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/skip-back.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/skip-forward.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/skull.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/slack.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/slash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/slice.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sliders-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sliders-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/smartphone-charging.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/smartphone-nfc.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/smartphone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/smile-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/smile.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/snail.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/soap-dispenser-droplet.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/snowflake.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sofa.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/solar-panel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/soup.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/space.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/spade.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sparkle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sparkles.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/speaker.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/speech.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/spell-check-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/spell-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/spline-pointer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/spline.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/split.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/spool.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/spotlight.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/spray-can.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sprout.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-down-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-activity.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-down-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-out-down-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-out-up-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-out-down-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-out-up-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-up-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-up-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-arrow-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-asterisk.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-bottom-dashed-scissors.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-chart-gantt.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-check-big.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-chevron-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-chevron-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-chevron-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-chevron-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-dashed-bottom-code.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-code.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-dashed-bottom.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-dashed-kanban.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-dashed-mouse-pointer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-dashed-top-solid.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-divide.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-equal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-function.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-kanban.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-library.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-m.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-menu.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-mouse-pointer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-parking-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-parking.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-pause.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-pen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-pi.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-percent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-pilcrow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-play.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-power.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-round-corner.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-radical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-scissors.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-sigma.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-slash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-split-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-split-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-stack.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-square.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-star.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-stop.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-terminal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-user-round.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-user.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/square.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/squares-exclude.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/squares-intersect.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/squares-subtract.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/squares-unite.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/squircle-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/squircle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/squirrel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/stamp.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/star-half.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/star-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/star.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/step-back.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/step-forward.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/stethoscope.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sticker.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sticky-note.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/stone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/store.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/stretch-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/stretch-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/strikethrough.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/subscript.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sun-dim.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sun-medium.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sun-moon.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sun-snow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sun.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sunrise.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sunset.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/superscript.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/swatch-book.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/swiss-franc.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/switch-camera.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/sword.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/swords.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/syringe.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/table-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/table-cells-merge.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/table-cells-split.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/table-columns-split.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/table-of-contents.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/table-properties.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/table-rows-split.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/table.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tablet.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tablet-smartphone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tablets.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tag.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tags.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tally-1.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tally-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tally-3.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tally-4.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tally-5.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tangent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/target.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/telescope.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tent-tree.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/terminal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/test-tube-diagonal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/test-tube.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/test-tubes.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-align-center.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-align-end.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-align-justify.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-cursor-input.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-align-start.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-cursor.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-initial.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-quote.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-select.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/text-wrap.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/theater.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/thermometer-snowflake.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/thermometer-sun.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/thermometer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/thumbs-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/thumbs-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ticket-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ticket-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ticket-percent.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ticket-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ticket-slash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ticket-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ticket.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tickets-plane.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/timer-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tickets.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/timer-reset.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/timer.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/toggle-left.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/toggle-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/toilet.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tool-case.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/toolbox.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tornado.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/torus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/touchpad-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/touchpad.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tower-control.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/toy-brick.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tractor.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/traffic-cone.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/train-front-tunnel.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/train-front.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/train-track.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tram-front.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/transgender.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/trash-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/trash.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tree-deciduous.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tree-palm.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tree-pine.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/trees.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/trello.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/trending-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/trending-up-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/trending-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/triangle-alert.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/triangle-dashed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/triangle-right.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/triangle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/truck-electric.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/trophy.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/truck.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/turkish-lira.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/turntable.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/turtle.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tv-minimal-play.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tv-minimal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/tv.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/twitch.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/twitter.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/type-outline.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/type.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/umbrella-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/umbrella.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/underline.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/undo-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/undo-dot.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/undo.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/unfold-horizontal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/unfold-vertical.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/ungroup.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/university.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/unlink.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/unlink-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/unplug.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/upload.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/usb.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-key.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-lock.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-pen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-round-check.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-round-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-round-key.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-round-minus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-round-pen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-round-plus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-round-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-round-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-round.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-search.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-star.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/user.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/users-round.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/users.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/utensils-crossed.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/utensils.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/utility-pole.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/van.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/variable.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/vault.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/vector-square.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/vegan.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/venetian-mask.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/venus-and-mars.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/venus.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/vibrate-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/vibrate.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/video-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/video.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/videotape.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/view.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/voicemail.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/volleyball.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/volume-1.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/volume-2.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/volume-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/volume-x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/vote.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/volume.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wallet-cards.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wallet-minimal.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wallet.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wallpaper.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wand-sparkles.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wand.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/warehouse.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/washing-machine.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/watch.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/waves-arrow-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/waves-arrow-up.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/waves-ladder.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/waves.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/waypoints.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/webcam.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/webhook-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/webhook.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/weight-tilde.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wheat-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/weight.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wheat.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/whole-word.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wifi-cog.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wifi-high.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wifi-low.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wifi-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wifi-pen.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wifi-sync.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wifi-zero.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wifi.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wind-arrow-down.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wind.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wine.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/workflow.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wine-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/worm.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/x.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/youtube.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/wrench.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/zap-off.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/zap.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/zoom-out.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/icons/zoom-in.ts", "../node_modules/.pnpm/lucide@0.564.0/node_modules/lucide/src/lucide.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-icon/dees-icon.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-icon/dees-icon.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.ts", "../node_modules/.pnpm/@design.estate+dees-wcctools@3.8.0/node_modules/@design.estate/dees-wcctools/ts_demotools/demotools.ts", "../node_modules/.pnpm/@design.estate+dees-wcctools@3.8.0/node_modules/@design.estate/dees-wcctools/ts_demotools/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-activitylog/dees-appui-activitylog.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-activitylog/dees-appui-activitylog.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-activitylog/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/tab.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/interfaces/appbarmenuitem.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/menugroup.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/interfaces/appconfig.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/interfaces/secondarymenu.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/interfaces/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-appbar/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-appbar/styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-appbar/template.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-windowcontrols/dees-windowcontrols.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-profiledropdown/dees-appui-profiledropdown.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-appbar/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-appbar/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-bottombar/dees-appui-bottombar.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-bottombar/dees-appui-bottombar.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-bottombar/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-panel/dees-panel.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00fonts.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-panel/dees-panel.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-base/dees-input-base.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-checkbox/dees-input-checkbox.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-checkbox/dees-input-checkbox.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00colors.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-modal/dees-modal.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-modal/dees-modal.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-label/dees-label.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-label/dees-label.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-monaco/version.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-monaco/dees-workspace-monaco.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-code/dees-input-code.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-datepicker/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-datepicker/styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-datepicker/template.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-datepicker/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-datepicker/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-text/dees-input-text.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-text/dees-input-text.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-quantityselector/dees-input-quantityselector.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-quantityselector/dees-input-quantityselector.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-form/dees-form-submit/dees-form-submit.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-form/dees-form-submit/dees-form-submit.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-fileupload/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-fileupload/styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-fileupload/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-fileupload/index.ts", "../node_modules/.pnpm/ibantools@4.5.1/node_modules/ibantools/jsnext/ibantools.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-iban/dees-input-iban.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-iban/dees-input-iban.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-multitoggle/dees-input-multitoggle.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-multitoggle/dees-input-multitoggle.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-phone/dees-input-phone.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-phone/dees-input-phone.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-typelist/dees-input-typelist.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-typelist/dees-input-typelist.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-table/dees-table.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-table/styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-table/data.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-table/lucene.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-table/dees-table.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-table/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-form/dees-form/dees-form.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-form/dees-form/dees-form.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-button/dees-button/dees-button.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-button/dees-button/dees-button.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui/dees-appui.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui/view.registry.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-secondarymenu/dees-appui-secondarymenu.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-secondarymenu/dees-appui-secondarymenu.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-maincontent/dees-appui-maincontent.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui/dees-appui.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-maincontent/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-mainmenu/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-secondarymenu/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-profiledropdown/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-appui-tabs/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/dees-mobilenavigation/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-appui/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-button/dees-button/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-button/dees-button-exit/dees-button-exit.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-button/dees-button-exit/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-button/dees-button-group/dees-button-group.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-button/dees-button-group/dees-button-group.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-button/dees-button-group/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-button/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-chart/dees-chart-area/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-chart/dees-chart-area/styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-chart/dees-chart-area/template.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/services/versions.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/services/DeesServiceLibLoader.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/services/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-chart/dees-chart-area/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-chart/dees-chart-area/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-chart/dees-chart-log/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-chart/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-dataview-codebox/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-dataview-statusobject/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/dees-statsgrid/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-dataview/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-actionbar/dees-actionbar.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-feedback/dees-actionbar/actionbar.interfaces.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-actionbar/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-badge/dees-badge.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-badge/dees-badge.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-badge/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-hint/dees-hint.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-hint/dees-hint.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-hint/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-progressbar/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-spinner/dees-spinner.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-spinner/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-toast/dees-toast.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-toast/dees-toast.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/dees-toast/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-feedback/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-form/dees-form/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-form/dees-form-submit/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-form/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-base/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-checkbox/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-code/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-dropdown/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-iban/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-list/dees-input-list.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-list/dees-input-list.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-list/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-multitoggle/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-phone/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-quantityselector/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-radiogroup/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-richtext/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-richtext/styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-richtext/template.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-richtext/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-richtext/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-input/dees-input-searchselect/dees-input-searchselect.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-searchselect/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-tags/dees-input-tags.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-tags/dees-input-tags.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-tags/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-text/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-toggle/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-typelist/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.types.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.shortcuts.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/dees-slash-menu.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.selection.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.formatting.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/dees-formatting-menu.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.interfaces.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.constants.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.converters.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.blocks.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.blockoperations.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/block.base.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/block.registry.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/block.styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/paragraph.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/heading.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/quote.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/code.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/list.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/media/image.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/media/youtube.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/media/attachment.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/content/divider.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/content/markdown.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/content/html.block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.blockregistration.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.modalmanager.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.inputhandler.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.keyboardhandler.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.history.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/dees-wysiwyg-block.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/dees-input-wysiwyg.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/profilepicture/profilepicture.cropper.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/profilepicture/profilepicture.modal.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-input/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-chips/dees-chips.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-chips/dees-chips.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-chips/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-dashboardgrid/dees-dashboardgrid.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-dashboardgrid/styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-dashboardgrid/layout.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-dashboardgrid/interaction.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-dashboardgrid/contextmenu.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-dashboardgrid/dees-dashboardgrid.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-dashboardgrid/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-heading/dees-heading.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-heading/dees-heading.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-heading/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-label/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-pagination/dees-pagination.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-pagination/dees-pagination.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-pagination/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-panel/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-stepper/dees-stepper.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/dees-stepper/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-layout/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-image-viewer/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-image-viewer/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-image-viewer/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-audio-viewer/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-audio-viewer/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-audio-viewer/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-video-viewer/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-video-viewer/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-video-viewer/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf-shared/PdfManager.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf-viewer/styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf-viewer/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf-viewer/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-preview/dees-preview.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-preview/dees-preview.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-preview/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-shared/styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-shared/DeesTileBase.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf-shared/CanvasPool.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf-shared/utils.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-pdf/styles.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-pdf/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-pdf/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf-preview/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf-preview/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf-shared/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-pdf-viewer/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-shared/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-pdf/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-image/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-image/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-image/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-audio/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-audio/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-audio/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-video/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-video/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-video/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-note/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-note/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-note/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-folder/demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-folder/component.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/dees-tile-folder/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-media/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-contextmenu/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-modal/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-speechbubble/dees-speechbubble.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-speechbubble/dees-speechbubble.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-speechbubble/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/dees-windowlayer/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-overlay/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-runtime/interfaces/IExecutionEnvironment.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-runtime/interfaces/index.ts", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/internal/constants.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/internal/TypedEventTarget.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/internal/tokens.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/internal/iframe-url.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/internal/code.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/internal/reset-promise.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/internal/auth-state.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/preview-message-types.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/vendor/index.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/utils/reload-preview.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/utils/is-preview-message.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/utils.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/utils/null-prototype.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/utils/file-system.js", "../node_modules/.pnpm/@tempfix+webcontainer__api@1.6.1/node_modules/@tempfix/webcontainer__api/dist/index.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-runtime/environments/WebContainerEnvironment.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-runtime/environments/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-runtime/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-simple/dees-shopping-productcard/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-terminal/terminal-tab-manager.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-terminal/dees-workspace-terminal.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-simple/dees-simple-appdash/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-simple/dees-simple-login/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-simple/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-icon/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-searchbar/dees-searchbar.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-searchbar/dees-searchbar.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-searchbar/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-theme/dees-theme.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-theme/dees-theme.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-theme/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-updater/dees-updater.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-updater/dees-updater.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-updater/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/dees-windowcontrols/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-utility/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-terminal-preview/dees-workspace-terminal-preview.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-bottombar/dees-workspace-bottombar.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace/typescript-intellisense.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-diff-editor/dees-workspace-diff-editor.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace/dees-workspace.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-monaco/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-filetree/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/00group-workspace/dees-workspace-terminal/interfaces.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-terminal/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-terminal-preview/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-markdown/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.demo.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-bottombar/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/dees-workspace-diff-editor/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/00group-workspace/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/dist_ts_web/elements/dees-search/dees-search.js", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/dees-search/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/dees-tooltip/dees-tooltip.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/dees-tooltip/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/elements/index.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/00_commitinfo_data.ts", "../node_modules/.pnpm/@design.estate+dees-catalog@3.43.3_@tiptap+pm@2.27.2/node_modules/@design.estate/dees-catalog/ts_web/index.ts", "../ts_web/plugins.ts", "../ts_interfaces/plugins.ts", "../ts_interfaces/data/identity.ts", "../ts_interfaces/data/connection.ts", "../ts_interfaces/data/project.ts", "../ts_interfaces/data/group.ts", "../ts_interfaces/data/secret.ts", "../ts_interfaces/data/pipeline.ts", "../ts_interfaces/data/index.ts", "../ts_interfaces/requests/admin.ts", "../ts_interfaces/requests/connections.ts", "../ts_interfaces/requests/projects.ts", "../ts_interfaces/requests/groups.ts", "../ts_interfaces/requests/secrets.ts", "../ts_interfaces/requests/pipelines.ts", "../ts_interfaces/requests/logs.ts", "../ts_interfaces/requests/index.ts", "../ts_interfaces/index.ts", "../ts_web/appstate.ts", "../ts_web/elements/shared/css.ts", "../ts_web/elements/shared/index.ts", "../ts_web/elements/views/overview/index.ts", "../ts_web/elements/views/connections/index.ts", "../ts_web/elements/views/projects/index.ts", "../ts_web/elements/views/groups/index.ts", "../ts_web/elements/views/secrets/index.ts", "../ts_web/elements/views/pipelines/index.ts", "../ts_web/elements/views/buildlog/index.ts", "../ts_web/elements/gitops-dashboard.ts", "../ts_web/elements/index.ts", "../ts_web/index.ts"], + "sourcesContent": ["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nconst NODE_MODE = false;\n\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n */\nexport const supportsAdoptingStyleSheets: boolean =\n global.ShadowRoot &&\n (global.ShadyCSS === undefined || global.ShadyCSS.nativeShadow) &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype;\n\n/**\n * A CSSResult or native CSSStyleSheet.\n *\n * In browsers that support constructible CSS style sheets, CSSStyleSheet\n * object can be used for styling along side CSSResult from the `css`\n * template tag.\n */\nexport type CSSResultOrNative = CSSResult | CSSStyleSheet;\n\nexport type CSSResultArray = Array;\n\n/**\n * A single CSSResult, CSSStyleSheet, or an array or nested arrays of those.\n */\nexport type CSSResultGroup = CSSResultOrNative | CSSResultArray;\n\nconst constructionToken = Symbol();\n\nconst cssTagCache = new WeakMap();\n\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nexport class CSSResult {\n // This property needs to remain unminified.\n ['_$cssResult$'] = true;\n readonly cssText: string;\n private _styleSheet?: CSSStyleSheet;\n private _strings: TemplateStringsArray | undefined;\n\n private constructor(\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ) {\n if (safeToken !== constructionToken) {\n throw new Error(\n 'CSSResult is not constructable. Use `unsafeCSS` or `css` instead.'\n );\n }\n this.cssText = cssText;\n this._strings = strings;\n }\n\n // This is a getter so that it's lazy. In practice, this means stylesheets\n // are not created until the first element instance is made.\n get styleSheet(): CSSStyleSheet | undefined {\n // If `supportsAdoptingStyleSheets` is true then we assume CSSStyleSheet is\n // constructable.\n let styleSheet = this._styleSheet;\n const strings = this._strings;\n if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n const cacheable = strings !== undefined && strings.length === 1;\n if (cacheable) {\n styleSheet = cssTagCache.get(strings);\n }\n if (styleSheet === undefined) {\n (this._styleSheet = styleSheet = new CSSStyleSheet()).replaceSync(\n this.cssText\n );\n if (cacheable) {\n cssTagCache.set(strings, styleSheet);\n }\n }\n }\n return styleSheet;\n }\n\n toString(): string {\n return this.cssText;\n }\n}\n\ntype ConstructableCSSResult = CSSResult & {\n new (\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ): CSSResult;\n};\n\nconst textFromCSSResult = (value: CSSResultGroup | number) => {\n // This property needs to remain unminified.\n if ((value as CSSResult)['_$cssResult$'] === true) {\n return (value as CSSResult).cssText;\n } else if (typeof value === 'number') {\n return value;\n } else {\n throw new Error(\n `Value passed to 'css' function must be a 'css' function result: ` +\n `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n `to ensure page security.`\n );\n }\n};\n\n/**\n * Wrap a value for interpolation in a {@linkcode css} tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value: unknown) =>\n new (CSSResult as ConstructableCSSResult)(\n typeof value === 'string' ? value : String(value),\n undefined,\n constructionToken\n );\n\n/**\n * A template literal tag which can be used with LitElement's\n * {@linkcode LitElement.styles} property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values {@linkcode unsafeCSS}\n * may be used inside an expression.\n */\nexport const css = (\n strings: TemplateStringsArray,\n ...values: (CSSResultGroup | number)[]\n): CSSResult => {\n const cssText =\n strings.length === 1\n ? strings[0]\n : values.reduce(\n (acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1],\n strings[0]\n );\n return new (CSSResult as ConstructableCSSResult)(\n cssText,\n strings,\n constructionToken\n );\n};\n\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic the native feature](https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/adoptedStyleSheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nexport const adoptStyles = (\n renderRoot: ShadowRoot,\n styles: Array\n) => {\n if (supportsAdoptingStyleSheets) {\n (renderRoot as ShadowRoot).adoptedStyleSheets = styles.map((s) =>\n s instanceof CSSStyleSheet ? s : s.styleSheet!\n );\n } else {\n for (const s of styles) {\n const style = document.createElement('style');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nonce = (global as any)['litNonce'];\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n style.textContent = (s as CSSResult).cssText;\n renderRoot.appendChild(style);\n }\n }\n};\n\nconst cssResultFromStyleSheet = (sheet: CSSStyleSheet) => {\n let cssText = '';\n for (const rule of sheet.cssRules) {\n cssText += rule.cssText;\n }\n return unsafeCSS(cssText);\n};\n\nexport const getCompatibleStyle =\n supportsAdoptingStyleSheets ||\n (NODE_MODE && global.CSSStyleSheet === undefined)\n ? (s: CSSResultOrNative) => s\n : (s: CSSResultOrNative) =>\n s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Use this module if you want to create your own base class extending\n * {@link ReactiveElement}.\n * @packageDocumentation\n */\n\nimport {\n getCompatibleStyle,\n adoptStyles,\n CSSResultGroup,\n CSSResultOrNative,\n} from './css-tag.js';\nimport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\n// In the Node build, this import will be injected by Rollup:\n// import {HTMLElement, customElements} from '@lit-labs/ssr-dom-shim';\n\nexport * from './css-tag.js';\nexport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\n/**\n * Removes the `readonly` modifier from properties in the union K.\n *\n * This is a safer way to cast a value to a type with a mutable version of a\n * readonly field, than casting to an interface with the field re-declared\n * because it preserves the type of all the fields and warns on typos.\n */\ntype Mutable = Omit & {\n -readonly [P in keyof Pick]: P extends K ? T[P] : never;\n};\n\n// TODO (justinfagnani): Add `hasOwn` here when we ship ES2022\nconst {\n is,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\n\nconst NODE_MODE = false;\n\n// Lets a minifier replace globalThis references with a minified name\nconst global = globalThis;\n\nif (NODE_MODE) {\n global.customElements ??= customElements;\n}\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nconst trustedTypes = (global as unknown as {trustedTypes?: {emptyScript: ''}})\n .trustedTypes;\n\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? (trustedTypes.emptyScript as unknown as '')\n : '';\n\nconst polyfillSupport = DEV_MODE\n ? global.reactiveElementPolyfillSupportDevMode\n : global.reactiveElementPolyfillSupport;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n global.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (\n !global.litIssuedWarnings!.has(warning) &&\n !global.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n global.litIssuedWarnings!.add(warning);\n }\n };\n\n queueMicrotask(() => {\n issueWarning(\n 'dev-mode',\n `Lit is in dev mode. Not recommended for production!`\n );\n\n // Issue polyfill support warning.\n if (global.ShadyDOM?.inUse && polyfillSupport === undefined) {\n issueWarning(\n 'polyfill-support-missing',\n `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n `the \\`polyfill-support\\` module has not been loaded.`\n );\n }\n });\n}\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ReactiveUnstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry = Update;\n export interface Update {\n kind: 'update';\n }\n }\n}\n\ninterface DebugLoggingWindow {\n // Even in dev mode, we generally don't want to emit these events, as that's\n // another level of cost, so only emit them when DEV_MODE is true _and_ when\n // window.emitLitDebugEvents is true.\n emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event: ReactiveUnstable.DebugLog.Entry) => {\n const shouldEmit = (global as unknown as DebugLoggingWindow)\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(\n new CustomEvent('lit-debug', {\n detail: event,\n })\n );\n }\n : undefined;\n\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty =

      (\n prop: P,\n _obj: unknown\n): P => prop;\n\n/**\n * Converts property values to and from attribute values.\n */\nexport interface ComplexAttributeConverter {\n /**\n * Called to convert an attribute value to a property\n * value.\n */\n fromAttribute?(value: string | null, type?: TypeHint): Type;\n\n /**\n * Called to convert a property value to an attribute\n * value.\n *\n * It returns unknown instead of string, to be compatible with\n * https://github.com/WICG/trusted-types (and similar efforts).\n */\n toAttribute?(value: Type, type?: TypeHint): unknown;\n}\n\ntype AttributeConverter =\n | ComplexAttributeConverter\n | ((value: string | null, type?: TypeHint) => Type);\n\n/**\n * Defines options for a property accessor.\n */\nexport interface PropertyDeclaration {\n /**\n * When set to `true`, indicates the property is internal private state. The\n * property should not be set by users. When using TypeScript, this property\n * should be marked as `private` or `protected`, and it is also a common\n * practice to use a leading `_` in the name. The property is not added to\n * `observedAttributes`.\n */\n readonly state?: boolean;\n\n /**\n * Indicates how and whether the property becomes an observed attribute.\n * If the value is `false`, the property is not added to `observedAttributes`.\n * If true or absent, the lowercased property name is observed (e.g. `fooBar`\n * becomes `foobar`). If a string, the string value is observed (e.g\n * `attribute: 'foo-bar'`).\n */\n readonly attribute?: boolean | string;\n\n /**\n * Indicates the type of the property. This is used only as a hint for the\n * `converter` to determine how to convert the attribute\n * to/from a property.\n */\n readonly type?: TypeHint;\n\n /**\n * Indicates how to convert the attribute to/from a property. If this value\n * is a function, it is used to convert the attribute value a the property\n * value. If it's an object, it can have keys for `fromAttribute` and\n * `toAttribute`. If no `toAttribute` function is provided and\n * `reflect` is set to `true`, the property value is set directly to the\n * attribute. A default `converter` is used if none is provided; it supports\n * `Boolean`, `String`, `Number`, `Object`, and `Array`. Note,\n * when a property changes and the converter is used to update the attribute,\n * the property is never updated again as a result of the attribute changing,\n * and vice versa.\n */\n readonly converter?: AttributeConverter;\n\n /**\n * Indicates if the property should reflect to an attribute.\n * If `true`, when the property is set, the attribute is set using the\n * attribute name determined according to the rules for the `attribute`\n * property option and the value of the property converted using the rules\n * from the `converter` property option.\n */\n readonly reflect?: boolean;\n\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n\n /**\n * Indicates whether an accessor will be created for this property. By\n * default, an accessor will be generated for this property that requests an\n * update when set. If this flag is `true`, no accessor will be created, and\n * it will be the user's responsibility to call\n * `this.requestUpdate(propertyName, oldValue)` to request an update when\n * the property changes.\n */\n readonly noAccessor?: boolean;\n\n /**\n * Whether this property is wrapping accessors. This is set by `@property`\n * to control the initial value change and reflection logic.\n *\n * @internal\n */\n wrapped?: boolean;\n\n /**\n * When `true`, uses the initial value of the property as the default value,\n * which changes how attributes are handled:\n * - The initial value does *not* reflect, even if the `reflect` option is `true`.\n * Subsequent changes to the property will reflect, even if they are equal to the\n * default value.\n * - When the attribute is removed, the property is set to the default value\n * - The initial value will not trigger an old value in the `changedProperties` map\n * argument to update lifecycle methods.\n *\n * When set, properties must be initialized, either with a field initializer, or an\n * assignment in the constructor. Not initializing the property may lead to\n * improper handling of subsequent property assignments.\n *\n * While this behavior is opt-in, most properties that reflect to attributes should\n * use `useDefault: true` so that their initial values do not reflect.\n */\n useDefault?: boolean;\n}\n\n/**\n * Map of properties to PropertyDeclaration options. For each property an\n * accessor is made, and the property is processed according to the\n * PropertyDeclaration options.\n */\nexport interface PropertyDeclarations {\n readonly [key: string]: PropertyDeclaration;\n}\n\ntype PropertyDeclarationMap = Map;\n\ntype AttributeMap = Map;\n\n/**\n * A Map of property keys to values.\n *\n * Takes an optional type parameter T, which when specified as a non-any,\n * non-unknown type, will make the Map more strongly-typed, associating the map\n * keys with their corresponding value type on T.\n *\n * Use `PropertyValues` when overriding ReactiveElement.update() and\n * other lifecycle methods in order to get stronger type-checking on keys\n * and values.\n */\n// This type is conditional so that if the parameter T is not specified, or\n// is `any`, the type will include `Map`. Since T is not\n// given in the uses of PropertyValues in this file, all uses here fallback to\n// meaning `Map`, but if a developer uses\n// `PropertyValues` (or any other value for T) they will get a\n// strongly-typed Map type.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type PropertyValues = T extends object\n ? PropertyValueMap\n : Map;\n\n/**\n * Do not use, instead prefer {@linkcode PropertyValues}.\n */\n// This type must be exported such that JavaScript generated by the Google\n// Closure Compiler can import a type reference.\nexport interface PropertyValueMap extends Map {\n get(k: K): T[K] | undefined;\n set(key: K, value: T[K]): this;\n has(k: K): boolean;\n delete(k: K): boolean;\n}\n\nexport const defaultConverter: ComplexAttributeConverter = {\n toAttribute(value: unknown, type?: unknown): unknown {\n switch (type) {\n case Boolean:\n value = value ? emptyStringForBooleanAttribute : null;\n break;\n case Object:\n case Array:\n // if the value is `null` or `undefined` pass this through\n // to allow removing/no change behavior.\n value = value == null ? value : JSON.stringify(value);\n break;\n }\n return value;\n },\n\n fromAttribute(value: string | null, type?: unknown) {\n let fromValue: unknown = value;\n switch (type) {\n case Boolean:\n fromValue = value !== null;\n break;\n case Number:\n fromValue = value === null ? null : Number(value);\n break;\n case Object:\n case Array:\n // Do *not* generate exception when invalid JSON is set as elements\n // don't normally complain on being mis-configured.\n // TODO(sorvell): Do generate exception in *dev mode*.\n try {\n // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n fromValue = JSON.parse(value!) as unknown;\n } catch (e) {\n fromValue = null;\n }\n break;\n }\n return fromValue;\n },\n};\n\nexport interface HasChanged {\n (value: unknown, old: unknown): boolean;\n}\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual: HasChanged = (value: unknown, old: unknown): boolean =>\n !is(value, old);\n\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n useDefault: false,\n hasChanged: notEqual,\n};\n\n/**\n * A string representing one of the supported dev mode warning categories.\n */\nexport type WarningKind =\n | 'change-in-update'\n | 'migration'\n | 'async-perform-update';\n\nexport type Initializer = (element: ReactiveElement) => void;\n\n// Temporary, until google3 is on TypeScript 5.2\ndeclare global {\n interface SymbolConstructor {\n readonly metadata: unique symbol;\n }\n}\n\n// Ensure metadata is enabled. TypeScript does not polyfill\n// Symbol.metadata, so we must ensure that it exists.\n(Symbol as {metadata: symbol}).metadata ??= Symbol('metadata');\n\ndeclare global {\n // This is public global API, do not change!\n // eslint-disable-next-line no-var\n var litPropertyMetadata: WeakMap<\n object,\n Map\n >;\n}\n\n// Map from a class's metadata object to property options\n// Note that we must use nullish-coalescing assignment so that we only use one\n// map even if we load multiple version of this module.\nglobal.litPropertyMetadata ??= new WeakMap<\n object,\n Map\n>();\n\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclasses to render updates as desired.\n * @noInheritDoc\n */\nexport abstract class ReactiveElement\n // In the Node build, this `extends` clause will be substituted with\n // `(globalThis.HTMLElement ?? HTMLElement)`.\n //\n // This way, we will first prefer any global `HTMLElement` polyfill that the\n // user has assigned, and then fall back to the `HTMLElement` shim which has\n // been imported (see note at the top of this file about how this import is\n // generated by Rollup). Note that the `HTMLElement` variable has been\n // shadowed by this import, so it no longer refers to the global.\n extends HTMLElement\n implements ReactiveControllerHost\n{\n // Note: these are patched in only in DEV_MODE.\n /**\n * Read or set all the enabled warning categories for this class.\n *\n * This property is only used in development builds.\n *\n * @nocollapse\n * @category dev-mode\n */\n static enabledWarnings?: WarningKind[];\n\n /**\n * Enable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Enable for all ReactiveElement subclasses\n * ReactiveElement.enableWarning?.('migration');\n *\n * // Enable for only MyElement and subclasses\n * MyElement.enableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static enableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Disable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Disable for all ReactiveElement subclasses\n * ReactiveElement.disableWarning?.('migration');\n *\n * // Disable for only MyElement and subclasses\n * MyElement.disableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static disableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Adds an initializer function to the class that is called during instance\n * construction.\n *\n * This is useful for code that runs against a `ReactiveElement`\n * subclass, such as a decorator, that needs to do work for each\n * instance, such as setting up a `ReactiveController`.\n *\n * ```ts\n * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n * target.addInitializer((instance: ReactiveElement) => {\n * // This is run during construction of the element\n * new MyController(instance);\n * });\n * }\n * ```\n *\n * Decorating a field will then cause each instance to run an initializer\n * that adds a controller:\n *\n * ```ts\n * class MyElement extends LitElement {\n * @myDecorator foo;\n * }\n * ```\n *\n * Initializers are stored per-constructor. Adding an initializer to a\n * subclass does not add it to a superclass. Since initializers are run in\n * constructors, initializers will run in order of the class hierarchy,\n * starting with superclasses and progressing to the instance's class.\n *\n * @nocollapse\n */\n static addInitializer(initializer: Initializer) {\n this.__prepare();\n (this._initializers ??= []).push(initializer);\n }\n\n static _initializers?: Initializer[];\n\n /*\n * Due to closure compiler ES6 compilation bugs, @nocollapse is required on\n * all static methods and properties with initializers. Reference:\n * - https://github.com/google/closure-compiler/issues/1776\n */\n\n /**\n * Maps attribute names to properties; for example `foobar` attribute to\n * `fooBar` property. Created lazily on user subclasses when finalizing the\n * class.\n * @nocollapse\n */\n private static __attributeToPropertyMap: AttributeMap;\n\n /**\n * Marks class as having been finalized, which includes creating properties\n * from `static properties`, but does *not* include all properties created\n * from decorators.\n * @nocollapse\n */\n protected static finalized: true | undefined;\n\n /**\n * Memoized list of all element properties, including any superclass\n * properties. Created lazily on user subclasses when finalizing the class.\n *\n * @nocollapse\n * @category properties\n */\n static elementProperties: PropertyDeclarationMap;\n\n /**\n * User-supplied object that maps property names to `PropertyDeclaration`\n * objects containing options for configuring reactive properties. When\n * a reactive property is set the element will update and render.\n *\n * By default properties are public fields, and as such, they should be\n * considered as primarily settable by element users, either via attribute or\n * the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the `state: true` option. Properties\n * marked as `state` do not reflect from the corresponding attribute\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating\n * public properties should typically not be done for non-primitive (object or\n * array) properties. In other cases when an element needs to manage state, a\n * private property set with the `state: true` option should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n * @nocollapse\n * @category properties\n */\n static properties: PropertyDeclarations;\n\n /**\n * Memoized list of all element styles.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category styles\n */\n static elementStyles: Array = [];\n\n /**\n * Array of styles to apply to the element. The styles should be defined\n * using the {@linkcode css} tag function, via constructible stylesheets, or\n * imported from native CSS module scripts.\n *\n * Note on Content Security Policy:\n *\n * Element styles are implemented with `\n`;\n\n/**\n * a basic setup for elements\n * makes sure everything is in check\n */\nexport const setup = async (\n elementArg?: LitElement,\n optionsArg: IDomToolsContructorOptions = {}\n): Promise => {\n const domTools = await DomTools.setupDomTools(optionsArg);\n\n if (elementArg) {\n // lets do something with the element\n // not used right now\n }\n\n domTools.runOnce('elementBasicSetup', async () => {\n // bodyStyles\n domTools.setGlobalStyles(globalBaseStyles);\n });\n return domTools;\n};\n", "export const cssGridColumns = (amountOfColumnsArg: number, gapSizeArg: number) => {\n let returnString = ``;\n for (let i = 0; i < amountOfColumnsArg; i++) {\n returnString += ` calc((100%/${amountOfColumnsArg}) - (${\n gapSizeArg * (amountOfColumnsArg - 1)\n }px/${amountOfColumnsArg}))`;\n }\n return returnString;\n};\n", "import * as smartdelay from '@push.rocks/smartdelay';\nimport * as smartmarkdown from '@push.rocks/smartmarkdown';\nimport * as smartpromise from '@push.rocks/smartpromise';\nimport SweetScroll from 'sweet-scroll';\nimport * as smartstate from '@push.rocks/smartstate';\nimport * as smartrouter from '@push.rocks/smartrouter';\nimport * as smartrx from '@push.rocks/smartrx';\nimport * as smartstring from '@push.rocks/smartstring';\nimport * as smarturl from '@push.rocks/smarturl';\nimport * as typedrequest from '@api.global/typedrequest';\n\nexport { \n smartdelay, \n smartmarkdown, \n smartpromise, \n SweetScroll, \n smartstate, \n smartrouter,\n smartrx, \n smartstring, \n smarturl, \n typedrequest \n};\n", "export * from './domtools.colors.js';\n\nimport * as elementBasic from './domtools.elementbasic.js';\nimport * as breakpoints from './domtools.css.breakpoints.js';\nimport * as css from './domtools.css.js';\n\nexport { css, breakpoints, elementBasic };\nexport { DomTools, type IDomToolsContructorOptions } from './domtools.classes.domtools.js';\nexport { TypedRequest } from '@api.global/typedrequest';\nexport { type IWebSetupConstructorOptions } from '@push.rocks/websetup';\n\nimport * as plugins from './domtools.pluginexports.js';\nexport { plugins };\n\n// type exports\nimport type { rxjs } from '@push.rocks/smartrx';\n\nexport type {\n rxjs,\n}\n", "// pushrocks scope\nimport * as isounique from '@push.rocks/isounique';\nimport * as smartrx from '@push.rocks/smartrx';\n\nexport { isounique, smartrx };\n\n// third party scope\nimport { css, unsafeCSS, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nconst lit = {\n css,\n unsafeCSS,\n LitElement,\n property,\n};\n\nimport * as domtools from '@design.estate/dees-domtools';\n\nexport { lit, domtools };\n", "import { CSSResult, unsafeCSS } from 'lit';\nimport * as plugins from './plugins.js';\nimport * as domtools from '@design.estate/dees-domtools';\n\nexport interface IBdVarTriplet {\n cssVarName: string;\n darkValue: string;\n brightValue: string;\n}\n\nexport class CssManager {\n // STATIC\n private static instance: CssManager | null = null;\n\n /**\n * Returns the singleton instance of CssManager\n */\n public static getSingleton(): CssManager {\n if (!CssManager.instance) {\n CssManager.instance = new CssManager();\n }\n return CssManager.instance;\n }\n\n \n // INSTANCE\n public domtoolsPromise = domtools.DomTools.setupDomTools();\n public goBright: boolean = false;\n public bdVarTripletStore: IBdVarTriplet[] = [];\n\n constructor() {\n this.domtoolsPromise.then(async (domtoolsArg) => {\n domtoolsArg.themeManager.themeObservable.subscribe(async (goBrightArg) => {\n this.goBright = goBrightArg;\n await domtoolsArg.domReady.promise;\n for (const bdTripletArg of this.bdVarTripletStore) {\n document.body.style.setProperty(\n bdTripletArg.cssVarName,\n this.goBright ? bdTripletArg.brightValue : bdTripletArg.darkValue\n );\n }\n });\n });\n }\n\n public get defaultStyles() {\n return domtools.elementBasic.staticStyles;\n }\n\n public cssForDesktop(contentArg: CSSResult) {\n return unsafeCSS(domtools.breakpoints.cssForDesktop(contentArg));\n }\n\n public cssForNotebook(contentArg: CSSResult) {\n return unsafeCSS(domtools.breakpoints.cssForNotebook(contentArg));\n }\n\n public cssForTablet(contentArg: CSSResult) {\n return unsafeCSS(domtools.breakpoints.cssForTablet(contentArg));\n }\n\n public cssForPhablet(contentArg: CSSResult) {\n return unsafeCSS(domtools.breakpoints.cssForPhablet(contentArg));\n }\n\n public cssForPhone(contentArg: CSSResult) {\n return unsafeCSS(domtools.breakpoints.cssForPhone(contentArg));\n }\n\n public bdTheme(brightValueArg: string, darkValueArg: string): CSSResult {\n let returnCssVar: string;\n\n // lets determine the default value for quick page rendering.\n let defaultValue: string;\n if (domtools.DomTools.getGlobalDomToolsSync()) {\n defaultValue = domtools.DomTools.getGlobalDomToolsSync().themeManager.goBrightBoolean\n ? brightValueArg\n : darkValueArg;\n } else {\n defaultValue = darkValueArg;\n }\n\n const existingTriplet = this.bdVarTripletStore.find(\n (tripletArg) =>\n tripletArg.darkValue === darkValueArg && tripletArg.brightValue === brightValueArg\n );\n if (existingTriplet) {\n returnCssVar = existingTriplet.cssVarName;\n } else {\n const newTriplet: IBdVarTriplet = {\n cssVarName: `--${plugins.isounique.uni()}`,\n brightValue: brightValueArg,\n darkValue: darkValueArg,\n };\n this.bdVarTripletStore.push(newTriplet);\n\n this.domtoolsPromise.then(async (domtoolsArg) => {\n await domtoolsArg.domReady.promise;\n document.body.style.setProperty(newTriplet.cssVarName, defaultValue);\n });\n returnCssVar = newTriplet.cssVarName;\n }\n return plugins.lit.unsafeCSS(`var(${returnCssVar}, ${defaultValue})`);\n }\n\n public cssGridColumns = (amountOfColumnsArg: number, gapSizeArg: number): CSSResult => {\n let returnString = ``;\n for (let i = 0; i < amountOfColumnsArg; i++) {\n returnString += ` calc((100%/${amountOfColumnsArg}) - (${\n gapSizeArg * (amountOfColumnsArg - 1)\n }px/${amountOfColumnsArg}))`;\n }\n return plugins.lit.unsafeCSS(returnString);\n };\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// Any new exports need to be added to the export statement in\n// `packages/lit/src/index.all.ts`.\n\nimport {\n html as coreHtml,\n svg as coreSvg,\n mathml as coreMathml,\n TemplateResult,\n} from './lit-html.js';\n\nexport interface StaticValue {\n /** The value to interpolate as-is into the template. */\n _$litStatic$: string;\n\n /**\n * A value that can't be decoded from ordinary JSON, make it harder for\n * an attacker-controlled data that goes through JSON.parse to produce a valid\n * StaticValue.\n */\n r: typeof brand;\n}\n\n/**\n * Prevents JSON injection attacks.\n *\n * The goals of this brand:\n * 1) fast to check\n * 2) code is small on the wire\n * 3) multiple versions of Lit in a single page will all produce mutually\n * interoperable StaticValues\n * 4) normal JSON.parse (without an unusual reviver) can not produce a\n * StaticValue\n *\n * Symbols satisfy (1), (2), and (4). We use Symbol.for to satisfy (3), but\n * we don't care about the key, so we break ties via (2) and use the empty\n * string.\n */\nconst brand = Symbol.for('');\n\n/** Safely extracts the string part of a StaticValue. */\nconst unwrapStaticValue = (value: unknown): string | undefined => {\n if ((value as Partial)?.r !== brand) {\n return undefined;\n }\n return (value as Partial)?.['_$litStatic$'];\n};\n\n/**\n * Wraps a string so that it behaves like part of the static template\n * strings instead of a dynamic value.\n *\n * Users must take care to ensure that adding the static string to the template\n * results in well-formed HTML, or else templates may break unexpectedly.\n *\n * Note that this function is unsafe to use on untrusted content, as it will be\n * directly parsed into HTML. Do not pass user input to this function\n * without sanitizing it.\n *\n * Static values can be changed, but they will cause a complete re-render\n * since they effectively create a new template.\n */\nexport const unsafeStatic = (value: string): StaticValue => ({\n ['_$litStatic$']: value,\n r: brand,\n});\n\nconst textFromStatic = (value: StaticValue) => {\n if (value['_$litStatic$'] !== undefined) {\n return value['_$litStatic$'];\n } else {\n throw new Error(\n `Value passed to 'literal' function must be a 'literal' result: ${value}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`\n );\n }\n};\n\n/**\n * Tags a string literal so that it behaves like part of the static template\n * strings instead of a dynamic value.\n *\n * The only values that may be used in template expressions are other tagged\n * `literal` results or `unsafeStatic` values (note that untrusted content\n * should never be passed to `unsafeStatic`).\n *\n * Users must take care to ensure that adding the static string to the template\n * results in well-formed HTML, or else templates may break unexpectedly.\n *\n * Static values can be changed, but they will cause a complete re-render since\n * they effectively create a new template.\n */\nexport const literal = (\n strings: TemplateStringsArray,\n ...values: unknown[]\n): StaticValue => ({\n ['_$litStatic$']: values.reduce(\n (acc, v, idx) => acc + textFromStatic(v as StaticValue) + strings[idx + 1],\n strings[0]\n ) as string,\n r: brand,\n});\n\nconst stringsCache = new Map();\n\n/**\n * Wraps a lit-html template tag (`html` or `svg`) to add static value support.\n */\nexport const withStatic =\n (coreTag: typeof coreHtml | typeof coreSvg | typeof coreMathml) =>\n (strings: TemplateStringsArray, ...values: unknown[]): TemplateResult => {\n const l = values.length;\n let staticValue: string | undefined;\n let dynamicValue: unknown;\n const staticStrings: Array = [];\n const dynamicValues: Array = [];\n let i = 0;\n let hasStatics = false;\n let s: string;\n\n while (i < l) {\n s = strings[i];\n // Collect any unsafeStatic values, and their following template strings\n // so that we treat a run of template strings and unsafe static values as\n // a single template string.\n while (\n i < l &&\n ((dynamicValue = values[i]),\n (staticValue = unwrapStaticValue(dynamicValue))) !== undefined\n ) {\n s += staticValue + strings[++i];\n hasStatics = true;\n }\n // If the last value is static, we don't need to push it.\n if (i !== l) {\n dynamicValues.push(dynamicValue);\n }\n staticStrings.push(s);\n i++;\n }\n // If the last value isn't static (which would have consumed the last\n // string), then we need to add the last string.\n if (i === l) {\n staticStrings.push(strings[l]);\n }\n\n if (hasStatics) {\n const key = staticStrings.join('$$lit$$');\n strings = stringsCache.get(key)!;\n if (strings === undefined) {\n // Beware: in general this pattern is unsafe, and doing so may bypass\n // lit's security checks and allow an attacker to execute arbitrary\n // code and inject arbitrary content.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (staticStrings as any).raw = staticStrings;\n stringsCache.set(\n key,\n (strings = staticStrings as unknown as TemplateStringsArray)\n );\n }\n values = dynamicValues;\n }\n return coreTag(strings, ...values);\n };\n\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const html = withStatic(coreHtml);\n\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const svg = withStatic(coreSvg);\n\n/**\n * Interprets a template literal as MathML fragment that can efficiently render\n * to and update a container.\n *\n * Includes static value support from `lit-html/static.js`.\n */\nexport const mathml = withStatic(coreMathml);\n", "export*from\"lit-html/static.js\";\n//# sourceMappingURL=static-html.js.map\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {Disconnectable, Part} from './lit-html.js';\n\nexport {\n AttributePart,\n BooleanAttributePart,\n ChildPart,\n ElementPart,\n EventPart,\n Part,\n PropertyPart,\n} from './lit-html.js';\n\nexport interface DirectiveClass {\n new (part: PartInfo): Directive;\n}\n\n/**\n * This utility type extracts the signature of a directive class's render()\n * method so we can use it for the type of the generated directive function.\n */\nexport type DirectiveParameters = Parameters;\n\n/**\n * A generated directive function doesn't evaluate the directive, but just\n * returns a DirectiveResult object that captures the arguments.\n */\nexport interface DirectiveResult {\n /**\n * This property needs to remain unminified.\n * @internal\n */\n ['_$litDirective$']: C;\n /** @internal */\n values: DirectiveParameters>;\n}\n\nexport const PartType = {\n ATTRIBUTE: 1,\n CHILD: 2,\n PROPERTY: 3,\n BOOLEAN_ATTRIBUTE: 4,\n EVENT: 5,\n ELEMENT: 6,\n} as const;\n\nexport type PartType = (typeof PartType)[keyof typeof PartType];\n\nexport interface ChildPartInfo {\n readonly type: typeof PartType.CHILD;\n}\n\nexport interface AttributePartInfo {\n readonly type:\n | typeof PartType.ATTRIBUTE\n | typeof PartType.PROPERTY\n | typeof PartType.BOOLEAN_ATTRIBUTE\n | typeof PartType.EVENT;\n readonly strings?: ReadonlyArray;\n readonly name: string;\n readonly tagName: string;\n}\n\nexport interface ElementPartInfo {\n readonly type: typeof PartType.ELEMENT;\n}\n\n/**\n * Information about the part a directive is bound to.\n *\n * This is useful for checking that a directive is attached to a valid part,\n * such as with directive that can only be used on attribute bindings.\n */\nexport type PartInfo = ChildPartInfo | AttributePartInfo | ElementPartInfo;\n\n/**\n * Creates a user-facing directive function from a Directive class. This\n * function has the same parameters as the directive's render() method.\n */\nexport const directive =\n (c: C) =>\n (...values: DirectiveParameters>): DirectiveResult => ({\n // This property needs to remain unminified.\n ['_$litDirective$']: c,\n values,\n });\n\n/**\n * Base class for creating custom directives. Users should extend this class,\n * implement `render` and/or `update`, and then pass their subclass to\n * `directive`.\n */\nexport abstract class Directive implements Disconnectable {\n //@internal\n __part!: Part;\n //@internal\n __attributeIndex: number | undefined;\n //@internal\n __directive?: Directive;\n\n //@internal\n _$parent!: Disconnectable;\n\n // These will only exist on the AsyncDirective subclass\n //@internal\n _$disconnectableChildren?: Set;\n // This property needs to remain unminified.\n //@internal\n ['_$notifyDirectiveConnectionChanged']?(isConnected: boolean): void;\n\n constructor(_partInfo: PartInfo) {}\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n /** @internal */\n _$initialize(\n part: Part,\n parent: Disconnectable,\n attributeIndex: number | undefined\n ) {\n this.__part = part;\n this._$parent = parent;\n this.__attributeIndex = attributeIndex;\n }\n /** @internal */\n _$resolve(part: Part, props: Array): unknown {\n return this.update(part, props);\n }\n\n abstract render(...props: Array): unknown;\n\n update(_part: Part, props: Array): unknown {\n return this.render(...props);\n }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {nothing, TemplateResult, noChange} from '../lit-html.js';\nimport {directive, Directive, PartInfo, PartType} from '../directive.js';\n\nconst HTML_RESULT = 1;\n\nexport class UnsafeHTMLDirective extends Directive {\n static directiveName = 'unsafeHTML';\n static resultType = HTML_RESULT;\n\n private _value: unknown = nothing;\n private _templateResult?: TemplateResult;\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.CHILD) {\n throw new Error(\n `${\n (this.constructor as typeof UnsafeHTMLDirective).directiveName\n }() can only be used in child bindings`\n );\n }\n }\n\n render(value: string | typeof nothing | typeof noChange | undefined | null) {\n if (value === nothing || value == null) {\n this._templateResult = undefined;\n return (this._value = value);\n }\n if (value === noChange) {\n return value;\n }\n if (typeof value != 'string') {\n throw new Error(\n `${\n (this.constructor as typeof UnsafeHTMLDirective).directiveName\n }() called with a non-string value`\n );\n }\n if (value === this._value) {\n return this._templateResult;\n }\n this._value = value;\n const strings = [value] as unknown as TemplateStringsArray;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (strings as any).raw = strings;\n // WARNING: impersonating a TemplateResult like this is extremely\n // dangerous. Third-party directives should not do this.\n return (this._templateResult = {\n // Cast to a known set of integers that satisfy ResultType so that we\n // don't have to export ResultType and possibly encourage this pattern.\n // This property needs to remain unminified.\n ['_$litType$']: (this.constructor as typeof UnsafeHTMLDirective)\n .resultType as 1 | 2,\n strings,\n values: [],\n });\n }\n}\n\n/**\n * Renders the result as HTML, rather than text.\n *\n * The values `undefined`, `null`, and `nothing`, will all result in no content\n * (empty string) being rendered.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeHTML = directive(UnsafeHTMLDirective);\n", "export*from\"lit-html/directives/unsafe-html.js\";\n//# sourceMappingURL=unsafe-html.js.map\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport type {Constructor} from './base.js';\n\n/**\n * Allow for custom element classes with private constructors\n */\ntype CustomElementClass = Omit;\n\nexport type CustomElementDecorator = {\n // legacy\n (cls: CustomElementClass): void;\n\n // standard\n (\n target: CustomElementClass,\n context: ClassDecoratorContext>\n ): void;\n};\n\n/**\n * Class decorator factory that defines the decorated class as a custom element.\n *\n * ```js\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html``;\n * }\n * }\n * ```\n * @category Decorator\n * @param tagName The tag name of the custom element to define.\n */\nexport const customElement =\n (tagName: string): CustomElementDecorator =>\n (\n classOrTarget: CustomElementClass | Constructor,\n context?: ClassDecoratorContext>\n ) => {\n if (context !== undefined) {\n context.addInitializer(() => {\n customElements.define(\n tagName,\n classOrTarget as CustomElementConstructor\n );\n });\n } else {\n customElements.define(tagName, classOrTarget as CustomElementConstructor);\n }\n };\n", "export*from\"@lit/reactive-element/decorators/custom-element.js\";\n//# sourceMappingURL=custom-element.js.map\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {property} from './property.js';\n\nexport interface StateDeclaration {\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n}\n\n/**\n * @deprecated use StateDeclaration\n */\nexport type InternalPropertyDeclaration =\n StateDeclaration;\n\n/**\n * Declares a private or protected reactive property that still triggers\n * updates to the element when it changes. It does not reflect from the\n * corresponding attribute.\n *\n * Properties declared this way must not be used from HTML or HTML templating\n * systems, they're solely for properties internal to the element. These\n * properties may be renamed by optimization tools like closure compiler.\n * @category Decorator\n */\nexport function state(options?: StateDeclaration) {\n return property({\n ...options,\n // Add both `state` and `attribute` because we found a third party\n // controller that is keying off of PropertyOptions.state to determine\n // whether a field is a private internal property or not.\n state: true,\n attribute: false,\n });\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport type {ReactiveElement} from '../reactive-element.js';\nimport type {Interface} from './base.js';\n\nexport type EventOptionsDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any>(\n value: V,\n _context: ClassMethodDecoratorContext\n ): void;\n};\n\n/**\n * Adds event listener options to a method used as an event listener in a\n * lit-html template.\n *\n * @param options An object that specifies event listener options as accepted by\n * `EventTarget#addEventListener` and `EventTarget#removeEventListener`.\n *\n * Current browsers support the `capture`, `passive`, and `once` options. See:\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters\n *\n * ```ts\n * class MyElement {\n * clicked = false;\n *\n * render() {\n * return html`\n *

      \n * \n *
      \n * `;\n * }\n *\n * @eventOptions({capture: true})\n * _onClick(e) {\n * this.clicked = true;\n * }\n * }\n * ```\n * @category Decorator\n */\nexport function eventOptions(\n options: AddEventListenerOptions\n): EventOptionsDecorator {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ( any>(\n protoOrValue: V,\n nameOrContext: PropertyKey | ClassMethodDecoratorContext\n ) => {\n const method =\n typeof protoOrValue === 'function'\n ? protoOrValue\n : protoOrValue[nameOrContext as keyof ReactiveElement];\n Object.assign(method, options);\n }) as EventOptionsDecorator;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Generates a public interface type that removes private and protected fields.\n * This allows accepting otherwise incompatible versions of the type (e.g. from\n * multiple copies of the same package in `node_modules`).\n */\nexport type Interface = {\n [K in keyof T]: T[K];\n};\n\nexport type Constructor = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (...args: any[]): T;\n};\n\n/**\n * Wraps up a few best practices when returning a property descriptor from a\n * decorator.\n *\n * Marks the defined property as configurable, and enumerable, and handles\n * the case where we have a busted Reflect.decorate zombiefill (e.g. in Angular\n * apps).\n *\n * @internal\n */\nexport const desc = (\n obj: object,\n name: PropertyKey | ClassAccessorDecoratorContext,\n descriptor: PropertyDescriptor\n) => {\n // For backwards compatibility, we keep them configurable and enumerable.\n descriptor.configurable = true;\n descriptor.enumerable = true;\n if (\n // We check for Reflect.decorate each time, in case the zombiefill\n // is applied via lazy loading some Angular code.\n (Reflect as typeof Reflect & {decorate?: unknown}).decorate &&\n typeof name !== 'object'\n ) {\n // If we're called as a legacy decorator, and Reflect.decorate is present\n // then we have no guarantees that the returned descriptor will be\n // defined on the class, so we must apply it directly ourselves.\n\n Object.defineProperty(obj, name, descriptor);\n }\n return descriptor;\n};\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport type {ReactiveElement} from '../reactive-element.js';\nimport {desc, type Interface} from './base.js';\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n globalThis.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += code\n ? ` See https://lit.dev/msg/${code} for more information.`\n : '';\n if (\n !globalThis.litIssuedWarnings!.has(warning) &&\n !globalThis.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n globalThis.litIssuedWarnings!.add(warning);\n }\n };\n}\n\nexport type QueryDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n , V extends Element | null>(\n value: ClassAccessorDecoratorTarget,\n context: ClassAccessorDecoratorContext\n ): ClassAccessorDecoratorResult;\n};\n\n/**\n * A property decorator that converts a class property into a getter that\n * executes a querySelector on the element's renderRoot.\n *\n * @param selector A DOMString containing one or more selectors to match.\n * @param cache An optional boolean which when true performs the DOM query only\n * once and caches the result.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n *\n * ```ts\n * class MyElement {\n * @query('#first')\n * first: HTMLDivElement;\n *\n * render() {\n * return html`\n *
      \n *
      \n * `;\n * }\n * }\n * ```\n * @category Decorator\n */\nexport function query(selector: string, cache?: boolean): QueryDecorator {\n return (, V extends Element | null>(\n protoOrTarget: ClassAccessorDecoratorTarget,\n nameOrContext: PropertyKey | ClassAccessorDecoratorContext,\n descriptor?: PropertyDescriptor\n ) => {\n const doQuery = (el: Interface): V => {\n const result = (el.renderRoot?.querySelector(selector) ?? null) as V;\n if (DEV_MODE && result === null && cache && !el.hasUpdated) {\n const name =\n typeof nameOrContext === 'object'\n ? nameOrContext.name\n : nameOrContext;\n issueWarning(\n '',\n `@query'd field ${JSON.stringify(String(name))} with the 'cache' ` +\n `flag set for selector '${selector}' has been accessed before ` +\n `the first update and returned null. This is expected if the ` +\n `renderRoot tree has not been provided beforehand (e.g. via ` +\n `Declarative Shadow DOM). Therefore the value hasn't been cached.`\n );\n }\n // TODO: if we want to allow users to assert that the query will never\n // return null, we need a new option and to throw here if the result\n // is null.\n return result;\n };\n if (cache) {\n // Accessors to wrap from either:\n // 1. The decorator target, in the case of standard decorators\n // 2. The property descriptor, in the case of experimental decorators\n // on auto-accessors.\n // 3. Functions that access our own cache-key property on the instance,\n // in the case of experimental decorators on fields.\n const {get, set} =\n typeof nameOrContext === 'object'\n ? protoOrTarget\n : (descriptor ??\n (() => {\n const key = DEV_MODE\n ? Symbol(`${String(nameOrContext)} (@query() cache)`)\n : Symbol();\n type WithCache = ReactiveElement & {\n [key: symbol]: Element | null;\n };\n return {\n get() {\n return (this as WithCache)[key];\n },\n set(v) {\n (this as WithCache)[key] = v;\n },\n };\n })());\n return desc(protoOrTarget, nameOrContext, {\n get(this: ReactiveElement): V {\n let result: V = get!.call(this);\n if (result === undefined) {\n result = doQuery(this);\n if (result !== null || this.hasUpdated) {\n set!.call(this, result);\n }\n }\n return result;\n },\n });\n } else {\n // This object works as the return type for both standard and\n // experimental decorators.\n return desc(protoOrTarget, nameOrContext, {\n get(this: ReactiveElement) {\n return doQuery(this);\n },\n });\n }\n }) as QueryDecorator;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport type {ReactiveElement} from '../reactive-element.js';\nimport {desc, type Interface} from './base.js';\n\nexport type QueryAllDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n , V extends NodeList>(\n value: ClassAccessorDecoratorTarget,\n context: ClassAccessorDecoratorContext\n ): ClassAccessorDecoratorResult;\n};\n\n// Shared fragment used to generate empty NodeLists when a render root is\n// undefined\nlet fragment: DocumentFragment;\n\n/**\n * A property decorator that converts a class property into a getter\n * that executes a querySelectorAll on the element's renderRoot.\n *\n * @param selector A DOMString containing one or more selectors to match.\n *\n * See:\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll\n *\n * ```ts\n * class MyElement {\n * @queryAll('div')\n * divs: NodeListOf;\n *\n * render() {\n * return html`\n *
      \n *
      \n * `;\n * }\n * }\n * ```\n * @category Decorator\n */\nexport function queryAll(selector: string): QueryAllDecorator {\n return ((\n obj: object,\n name: PropertyKey | ClassAccessorDecoratorContext\n ) => {\n return desc(obj, name, {\n get(this: ReactiveElement) {\n const container =\n this.renderRoot ?? (fragment ??= document.createDocumentFragment());\n return container.querySelectorAll(selector);\n },\n });\n }) as QueryAllDecorator;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport type {ReactiveElement} from '../reactive-element.js';\nimport {desc, type Interface} from './base.js';\n\nexport type QueryAsyncDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n , V extends Promise>(\n value: ClassAccessorDecoratorTarget,\n context: ClassAccessorDecoratorContext\n ): ClassAccessorDecoratorResult;\n};\n\n// Note, in the future, we may extend this decorator to support the use case\n// where the queried element may need to do work to become ready to interact\n// with (e.g. load some implementation code). If so, we might elect to\n// add a second argument defining a function that can be run to make the\n// queried element loaded/updated/ready.\n/**\n * A property decorator that converts a class property into a getter that\n * returns a promise that resolves to the result of a querySelector on the\n * element's renderRoot done after the element's `updateComplete` promise\n * resolves. When the queried property may change with element state, this\n * decorator can be used instead of requiring users to await the\n * `updateComplete` before accessing the property.\n *\n * @param selector A DOMString containing one or more selectors to match.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n *\n * ```ts\n * class MyElement {\n * @queryAsync('#first')\n * first: Promise;\n *\n * render() {\n * return html`\n *
      \n *
      \n * `;\n * }\n * }\n *\n * // external usage\n * async doSomethingWithFirst() {\n * (await aMyElement.first).doSomething();\n * }\n * ```\n * @category Decorator\n */\nexport function queryAsync(selector: string) {\n return ((\n obj: object,\n name: PropertyKey | ClassAccessorDecoratorContext\n ) => {\n return desc(obj, name, {\n async get(this: ReactiveElement) {\n await this.updateComplete;\n return this.renderRoot?.querySelector(selector) ?? null;\n },\n });\n }) as QueryAsyncDecorator;\n}\n", "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport type {ReactiveElement} from '../reactive-element.js';\nimport type {QueryAssignedNodesOptions} from './query-assigned-nodes.js';\nimport {desc, type Interface} from './base.js';\n\nexport type QueryAssignedElementsDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n , V extends Array>(\n value: ClassAccessorDecoratorTarget,\n context: ClassAccessorDecoratorContext\n ): ClassAccessorDecoratorResult;\n};\n\n/**\n * Options for the {@linkcode queryAssignedElements} decorator. Extends the\n * options that can be passed into\n * [HTMLSlotElement.assignedElements](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedElements).\n */\nexport interface QueryAssignedElementsOptions\n extends QueryAssignedNodesOptions {\n /**\n * CSS selector used to filter the elements returned. For example, a selector\n * of `\".item\"` will only include elements with the `item` class.\n */\n selector?: string;\n}\n\n/**\n * A property decorator that converts a class property into a getter that\n * returns the `assignedElements` of the given `slot`. Provides a declarative\n * way to use\n * [`HTMLSlotElement.assignedElements`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedElements).\n *\n * Can be passed an optional {@linkcode QueryAssignedElementsOptions} object.\n *\n * Example usage:\n * ```ts\n * class MyElement {\n * @queryAssignedElements({ slot: 'list' })\n * listItems!: Array;\n * @queryAssignedElements()\n * unnamedSlotEls!: Array;\n *\n * render() {\n * return html`\n * \n * \n * `;\n * }\n * }\n * ```\n *\n * Note, the type of this property should be annotated as `Array`.\n *\n * @category Decorator\n */\nexport function queryAssignedElements(\n options?: QueryAssignedElementsOptions\n): QueryAssignedElementsDecorator {\n return (>(\n obj: object,\n name: PropertyKey | ClassAccessorDecoratorContext\n ) => {\n const {slot, selector} = options ?? {};\n const slotSelector = `slot${slot ? `[name=${slot}]` : ':not([name])'}`;\n return desc(obj, name, {\n get(this: ReactiveElement): V {\n const slotEl =\n this.renderRoot?.querySelector(slotSelector);\n const elements = slotEl?.assignedElements(options) ?? [];\n return (\n selector === undefined\n ? elements\n : elements.filter((node) => node.matches(selector))\n ) as V;\n },\n });\n }) as QueryAssignedElementsDecorator;\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport type {ReactiveElement} from '../reactive-element.js';\nimport {desc, type Interface} from './base.js';\n\n/**\n * Options for the {@linkcode queryAssignedNodes} decorator. Extends the options\n * that can be passed into [HTMLSlotElement.assignedNodes](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSlotElement/assignedNodes).\n */\nexport interface QueryAssignedNodesOptions extends AssignedNodesOptions {\n /**\n * Name of the slot to query. Leave empty for the default slot.\n */\n slot?: string;\n}\n\nexport type QueryAssignedNodesDecorator = {\n // legacy\n (\n proto: Interface,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // Note TypeScript requires the return type to be `void|any`\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): void | any;\n\n // standard\n , V extends Array>(\n value: ClassAccessorDecoratorTarget,\n context: ClassAccessorDecoratorContext\n ): ClassAccessorDecoratorResult;\n};\n\n/**\n * A property decorator that converts a class property into a getter that\n * returns the `assignedNodes` of the given `slot`.\n *\n * Can be passed an optional {@linkcode QueryAssignedNodesOptions} object.\n *\n * Example usage:\n * ```ts\n * class MyElement {\n * @queryAssignedNodes({slot: 'list', flatten: true})\n * listItems!: Array;\n *\n * render() {\n * return html`\n * \n * `;\n * }\n * }\n * ```\n *\n * Note the type of this property should be annotated as `Array`. Use the\n * queryAssignedElements decorator to list only elements, and optionally filter\n * the element list using a CSS selector.\n *\n * @category Decorator\n */\nexport function queryAssignedNodes(\n options?: QueryAssignedNodesOptions\n): QueryAssignedNodesDecorator {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (>(\n obj: object,\n name: PropertyKey | ClassAccessorDecoratorContext\n ) => {\n const {slot} = options ?? {};\n const slotSelector = `slot${slot ? `[name=${slot}]` : ':not([name])'}`;\n return desc(obj, name, {\n get(this: ReactiveElement): V {\n const slotEl =\n this.renderRoot?.querySelector(slotSelector);\n return (slotEl?.assignedNodes(options) ?? []) as unknown as V;\n },\n });\n }) as QueryAssignedNodesDecorator;\n}\n", "export*from\"@lit/reactive-element/decorators/custom-element.js\";export*from\"@lit/reactive-element/decorators/property.js\";export*from\"@lit/reactive-element/decorators/state.js\";export*from\"@lit/reactive-element/decorators/event-options.js\";export*from\"@lit/reactive-element/decorators/query.js\";export*from\"@lit/reactive-element/decorators/query-all.js\";export*from\"@lit/reactive-element/decorators/query-async.js\";export*from\"@lit/reactive-element/decorators/query-assigned-elements.js\";export*from\"@lit/reactive-element/decorators/query-assigned-nodes.js\";\n//# sourceMappingURL=decorators.js.map\n", "import * as plugins from './plugins.js';\n\nexport class DeesElement extends plugins.lit.LitElement {\n // INSTANCE\n @plugins.lit.property({ type: Boolean })\n public accessor goBright: boolean = false;\n\n // domtools\n public domtoolsPromise: Promise;\n\n @plugins.lit.property()\n public accessor domtools: plugins.domtools.DomTools;\n\n public rxSubscriptions: plugins.smartrx.rxjs.Subscription[] = [];\n private themeSubscription: plugins.smartrx.rxjs.Subscription;\n\n private elementDomReadyDeferred = plugins.domtools.plugins.smartpromise.defer();\n public elementDomReady = this.elementDomReadyDeferred.promise;\n\n constructor(optionsArg: plugins.domtools.IDomToolsContructorOptions = {}) {\n super();\n this.domtoolsPromise = plugins.domtools.elementBasic.setup(this, optionsArg);\n this.domtoolsPromise.then((domtoolsArg) => {\n this.domtools = domtoolsArg;\n });\n }\n\n /**\n * Called when the theme changes between bright and dark.\n * Override this method to handle theme changes.\n * @param goBright - true if switching to bright theme, false if switching to dark theme\n */\n protected themeChanged?(goBright: boolean): void;\n\n public async connectedCallback() {\n super.connectedCallback();\n const domtools = await this.domtoolsPromise;\n this.themeSubscription = domtools.themeManager.themeObservable.subscribe((goBrightArg) => {\n this.goBright = goBrightArg;\n // Call themeChanged if it's defined\n if (this.themeChanged) {\n this.themeChanged(goBrightArg);\n }\n });\n this.rxSubscriptions.push(this.themeSubscription);\n for (const startupFunction of this.startupFunctions) {\n await startupFunction();\n }\n this.dispatchEvent(new CustomEvent('deesElementConnected'));\n }\n\n public firstUpdated(_changedProperties: Map): void {\n super.firstUpdated(_changedProperties);\n this.elementDomReadyDeferred.resolve();\n }\n\n private startupFunctions: (() => void | Promise)[] = [];\n public registerStartupFunction(startupFunctionArg: () => void) {\n this.startupFunctions.push(startupFunctionArg);\n }\n\n private garbageFunctions: (() => void | Promise)[] = [];\n public registerGarbageFunction(garbageFunctionArg: () => void) {\n this.garbageFunctions.push(garbageFunctionArg);\n }\n\n public async disconnectedCallback() {\n await this.domtoolsPromise;\n super.disconnectedCallback();\n for (const subscription of this.rxSubscriptions) {\n subscription.unsubscribe();\n }\n for (const garbageFunction of this.garbageFunctions) {\n await garbageFunction();\n }\n this.dispatchEvent(new CustomEvent('deesElementDisconnected'));\n }\n}\n", "/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {\n _$LH,\n Part,\n DirectiveParent,\n CompiledTemplateResult,\n MaybeCompiledTemplateResult,\n UncompiledTemplateResult,\n} from './lit-html.js';\nimport {\n DirectiveResult,\n DirectiveClass,\n PartInfo,\n AttributePartInfo,\n} from './directive.js';\ntype Primitive = null | undefined | boolean | number | string | symbol | bigint;\n\nconst {_ChildPart: ChildPart} = _$LH;\n\ntype ChildPart = InstanceType;\n\nconst ENABLE_SHADYDOM_NOPATCH = true;\n\nconst wrap =\n ENABLE_SHADYDOM_NOPATCH &&\n window.ShadyDOM?.inUse &&\n window.ShadyDOM?.noPatch === true\n ? window.ShadyDOM!.wrap\n : (node: Node) => node;\n\n/**\n * Tests if a value is a primitive value.\n *\n * See https://tc39.github.io/ecma262/#sec-typeof-operator\n */\nexport const isPrimitive = (value: unknown): value is Primitive =>\n value === null || (typeof value != 'object' && typeof value != 'function');\n\nexport const TemplateResultType = {\n HTML: 1,\n SVG: 2,\n MATHML: 3,\n} as const;\n\nexport type TemplateResultType =\n (typeof TemplateResultType)[keyof typeof TemplateResultType];\n\ntype IsTemplateResult = {\n (val: unknown): val is MaybeCompiledTemplateResult;\n (\n val: unknown,\n type: T\n ): val is UncompiledTemplateResult;\n};\n\n/**\n * Tests if a value is a TemplateResult or a CompiledTemplateResult.\n */\nexport const isTemplateResult: IsTemplateResult = (\n value: unknown,\n type?: TemplateResultType\n): value is UncompiledTemplateResult =>\n type === undefined\n ? // This property needs to remain unminified.\n (value as UncompiledTemplateResult)?.['_$litType$'] !== undefined\n : (value as UncompiledTemplateResult)?.['_$litType$'] === type;\n\n/**\n * Tests if a value is a CompiledTemplateResult.\n */\nexport const isCompiledTemplateResult = (\n value: unknown\n): value is CompiledTemplateResult => {\n return (value as CompiledTemplateResult)?.['_$litType$']?.h != null;\n};\n\n/**\n * Tests if a value is a DirectiveResult.\n */\nexport const isDirectiveResult = (value: unknown): value is DirectiveResult =>\n // This property needs to remain unminified.\n (value as DirectiveResult)?.['_$litDirective$'] !== undefined;\n\n/**\n * Retrieves the Directive class for a DirectiveResult\n */\nexport const getDirectiveClass = (value: unknown): DirectiveClass | undefined =>\n // This property needs to remain unminified.\n (value as DirectiveResult)?.['_$litDirective$'];\n\n/**\n * Tests whether a part has only a single-expression with no strings to\n * interpolate between.\n *\n * Only AttributePart and PropertyPart can have multiple expressions.\n * Multi-expression parts have a `strings` property and single-expression\n * parts do not.\n */\nexport const isSingleExpression = (part: PartInfo) =>\n (part as AttributePartInfo).strings === undefined;\n\nconst createMarker = () => document.createComment('');\n\n/**\n * Inserts a ChildPart into the given container ChildPart's DOM, either at the\n * end of the container ChildPart, or before the optional `refPart`.\n *\n * This does not add the part to the containerPart's committed value. That must\n * be done by callers.\n *\n * @param containerPart Part within which to add the new ChildPart\n * @param refPart Part before which to add the new ChildPart; when omitted the\n * part added to the end of the `containerPart`\n * @param part Part to insert, or undefined to create a new part\n */\nexport const insertPart = (\n containerPart: ChildPart,\n refPart?: ChildPart,\n part?: ChildPart\n): ChildPart => {\n const container = wrap(containerPart._$startNode).parentNode!;\n\n const refNode =\n refPart === undefined ? containerPart._$endNode : refPart._$startNode;\n\n if (part === undefined) {\n const startNode = wrap(container).insertBefore(createMarker(), refNode);\n const endNode = wrap(container).insertBefore(createMarker(), refNode);\n part = new ChildPart(\n startNode,\n endNode,\n containerPart,\n containerPart.options\n );\n } else {\n const endNode = wrap(part._$endNode!).nextSibling;\n const oldParent = part._$parent;\n const parentChanged = oldParent !== containerPart;\n if (parentChanged) {\n part._$reparentDisconnectables?.(containerPart);\n // Note that although `_$reparentDisconnectables` updates the part's\n // `_$parent` reference after unlinking from its current parent, that\n // method only exists if Disconnectables are present, so we need to\n // unconditionally set it here\n part._$parent = containerPart;\n // Since the _$isConnected getter is somewhat costly, only\n // read it once we know the subtree has directives that need\n // to be notified\n let newConnectionState;\n if (\n part._$notifyConnectionChanged !== undefined &&\n (newConnectionState = containerPart._$isConnected) !==\n oldParent!._$isConnected\n ) {\n part._$notifyConnectionChanged(newConnectionState);\n }\n }\n if (endNode !== refNode || parentChanged) {\n let start: Node | null = part._$startNode;\n while (start !== endNode) {\n const n: Node | null = wrap(start!).nextSibling;\n wrap(container).insertBefore(start!, refNode);\n start = n;\n }\n }\n }\n\n return part;\n};\n\n/**\n * Sets the value of a Part.\n *\n * Note that this should only be used to set/update the value of user-created\n * parts (i.e. those created using `insertPart`); it should not be used\n * by directives to set the value of the directive's container part. Directives\n * should return a value from `update`/`render` to update their part state.\n *\n * For directives that require setting their part value asynchronously, they\n * should extend `AsyncDirective` and call `this.setValue()`.\n *\n * @param part Part to set\n * @param value Value to set\n * @param index For `AttributePart`s, the index to set\n * @param directiveParent Used internally; should not be set by user\n */\nexport const setChildPartValue = (\n part: T,\n value: unknown,\n directiveParent: DirectiveParent = part\n): T => {\n part._$setValue(value, directiveParent);\n return part;\n};\n\n// A sentinel value that can never appear as a part value except when set by\n// live(). Used to force a dirty-check to fail and cause a re-render.\nconst RESET_VALUE = {};\n\n/**\n * Sets the committed value of a ChildPart directly without triggering the\n * commit stage of the part.\n *\n * This is useful in cases where a directive needs to update the part such\n * that the next update detects a value change or not. When value is omitted,\n * the next update will be guaranteed to be detected as a change.\n *\n * @param part\n * @param value\n */\nexport const setCommittedValue = (part: Part, value: unknown = RESET_VALUE) =>\n (part._$committedValue = value);\n\n/**\n * Returns the committed value of a ChildPart.\n *\n * The committed value is used for change detection and efficient updates of\n * the part. It can differ from the value set by the template or directive in\n * cases where the template value is transformed before being committed.\n *\n * - `TemplateResult`s are committed as a `TemplateInstance`\n * - Iterables are committed as `Array`\n * - All other types are committed as the template value or value returned or\n * set by a directive.\n *\n * @param part\n */\nexport const getCommittedValue = (part: ChildPart) => part._$committedValue;\n\n/**\n * Removes a ChildPart from the DOM, including any of its content and markers.\n *\n * Note: The only difference between this and clearPart() is that this also\n * removes the part's start node. This means that the ChildPart must own its\n * start node, ie it must be a marker node specifically for this part and not an\n * anchor from surrounding content.\n *\n * @param part The Part to remove\n */\nexport const removePart = (part: ChildPart) => {\n part._$clear();\n part._$startNode.remove();\n};\n\nexport const clearPart = (part: ChildPart) => {\n part._$clear();\n};\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Overview:\n *\n * This module is designed to add support for an async `setValue` API and\n * `disconnected` callback to directives with the least impact on the core\n * runtime or payload when that feature is not used.\n *\n * The strategy is to introduce a `AsyncDirective` subclass of\n * `Directive` that climbs the \"parent\" tree in its constructor to note which\n * branches of lit-html's \"logical tree\" of data structures contain such\n * directives and thus need to be crawled when a subtree is being cleared (or\n * manually disconnected) in order to run the `disconnected` callback.\n *\n * The \"nodes\" of the logical tree include Parts, TemplateInstances (for when a\n * TemplateResult is committed to a value of a ChildPart), and Directives; these\n * all implement a common interface called `DisconnectableChild`. Each has a\n * `_$parent` reference which is set during construction in the core code, and a\n * `_$disconnectableChildren` field which is initially undefined.\n *\n * The sparse tree created by means of the `AsyncDirective` constructor\n * crawling up the `_$parent` tree and placing a `_$disconnectableChildren` Set\n * on each parent that includes each child that contains a\n * `AsyncDirective` directly or transitively via its children. In order to\n * notify connection state changes and disconnect (or reconnect) a tree, the\n * `_$notifyConnectionChanged` API is patched onto ChildParts as a directive\n * climbs the parent tree, which is called by the core when clearing a part if\n * it exists. When called, that method iterates over the sparse tree of\n * Set built up by AsyncDirectives, and calls\n * `_$notifyDirectiveConnectionChanged` on any directives that are encountered\n * in that tree, running the required callbacks.\n *\n * A given \"logical tree\" of lit-html data-structures might look like this:\n *\n * ChildPart(N1) _$dC=[D2,T3]\n * ._directive\n * AsyncDirective(D2)\n * ._value // user value was TemplateResult\n * TemplateInstance(T3) _$dC=[A4,A6,N10,N12]\n * ._$parts[]\n * AttributePart(A4) _$dC=[D5]\n * ._directives[]\n * AsyncDirective(D5)\n * AttributePart(A6) _$dC=[D7,D8]\n * ._directives[]\n * AsyncDirective(D7)\n * Directive(D8) _$dC=[D9]\n * ._directive\n * AsyncDirective(D9)\n * ChildPart(N10) _$dC=[D11]\n * ._directive\n * AsyncDirective(D11)\n * ._value\n * string\n * ChildPart(N12) _$dC=[D13,N14,N16]\n * ._directive\n * AsyncDirective(D13)\n * ._value // user value was iterable\n * Array\n * ChildPart(N14) _$dC=[D15]\n * ._value\n * string\n * ChildPart(N16) _$dC=[D17,T18]\n * ._directive\n * AsyncDirective(D17)\n * ._value // user value was TemplateResult\n * TemplateInstance(T18) _$dC=[A19,A21,N25]\n * ._$parts[]\n * AttributePart(A19) _$dC=[D20]\n * ._directives[]\n * AsyncDirective(D20)\n * AttributePart(A21) _$dC=[22,23]\n * ._directives[]\n * AsyncDirective(D22)\n * Directive(D23) _$dC=[D24]\n * ._directive\n * AsyncDirective(D24)\n * ChildPart(N25) _$dC=[D26]\n * ._directive\n * AsyncDirective(D26)\n * ._value\n * string\n *\n * Example 1: The directive in ChildPart(N12) updates and returns `nothing`. The\n * ChildPart will _clear() itself, and so we need to disconnect the \"value\" of\n * the ChildPart (but not its directive). In this case, when `_clear()` calls\n * `_$notifyConnectionChanged()`, we don't iterate all of the\n * _$disconnectableChildren, rather we do a value-specific disconnection: i.e.\n * since the _value was an Array (because an iterable had been\n * committed), we iterate the array of ChildParts (N14, N16) and run\n * `setConnected` on them (which does recurse down the full tree of\n * `_$disconnectableChildren` below it, and also removes N14 and N16 from N12's\n * `_$disconnectableChildren`). Once the values have been disconnected, we then\n * check whether the ChildPart(N12)'s list of `_$disconnectableChildren` is empty\n * (and would remove it from its parent TemplateInstance(T3) if so), but since\n * it would still contain its directive D13, it stays in the disconnectable\n * tree.\n *\n * Example 2: In the course of Example 1, `setConnected` will reach\n * ChildPart(N16); in this case the entire part is being disconnected, so we\n * simply iterate all of N16's `_$disconnectableChildren` (D17,T18) and\n * recursively run `setConnected` on them. Note that we only remove children\n * from `_$disconnectableChildren` for the top-level values being disconnected\n * on a clear; doing this bookkeeping lower in the tree is wasteful since it's\n * all being thrown away.\n *\n * Example 3: If the LitElement containing the entire tree above becomes\n * disconnected, it will run `childPart.setConnected()` (which calls\n * `childPart._$notifyConnectionChanged()` if it exists); in this case, we\n * recursively run `setConnected()` over the entire tree, without removing any\n * children from `_$disconnectableChildren`, since this tree is required to\n * re-connect the tree, which does the same operation, simply passing\n * `isConnected: true` down the tree, signaling which callback to run.\n */\n\nimport {AttributePart, ChildPart, Disconnectable, Part} from './lit-html.js';\nimport {isSingleExpression} from './directive-helpers.js';\nimport {Directive, PartInfo, PartType} from './directive.js';\nexport * from './directive.js';\n\nconst DEV_MODE = true;\n\n/**\n * Recursively walks down the tree of Parts/TemplateInstances/Directives to set\n * the connected state of directives and run `disconnected`/ `reconnected`\n * callbacks.\n *\n * @return True if there were children to disconnect; false otherwise\n */\nconst notifyChildrenConnectedChanged = (\n parent: Disconnectable,\n isConnected: boolean\n): boolean => {\n const children = parent._$disconnectableChildren;\n if (children === undefined) {\n return false;\n }\n for (const obj of children) {\n // The existence of `_$notifyDirectiveConnectionChanged` is used as a \"brand\" to\n // disambiguate AsyncDirectives from other DisconnectableChildren\n // (as opposed to using an instanceof check to know when to call it); the\n // redundancy of \"Directive\" in the API name is to avoid conflicting with\n // `_$notifyConnectionChanged`, which exists `ChildParts` which are also in\n // this list\n // Disconnect Directive (and any nested directives contained within)\n // This property needs to remain unminified.\n (obj as AsyncDirective)['_$notifyDirectiveConnectionChanged']?.(\n isConnected,\n false\n );\n // Disconnect Part/TemplateInstance\n notifyChildrenConnectedChanged(obj, isConnected);\n }\n return true;\n};\n\n/**\n * Removes the given child from its parent list of disconnectable children, and\n * if the parent list becomes empty as a result, removes the parent from its\n * parent, and so forth up the tree when that causes subsequent parent lists to\n * become empty.\n */\nconst removeDisconnectableFromParent = (obj: Disconnectable) => {\n let parent, children;\n do {\n if ((parent = obj._$parent) === undefined) {\n break;\n }\n children = parent._$disconnectableChildren!;\n children.delete(obj);\n obj = parent;\n } while (children?.size === 0);\n};\n\nconst addDisconnectableToParent = (obj: Disconnectable) => {\n // Climb the parent tree, creating a sparse tree of children needing\n // disconnection\n for (let parent; (parent = obj._$parent); obj = parent) {\n let children = parent._$disconnectableChildren;\n if (children === undefined) {\n parent._$disconnectableChildren = children = new Set();\n } else if (children.has(obj)) {\n // Once we've reached a parent that already contains this child, we\n // can short-circuit\n break;\n }\n children.add(obj);\n installDisconnectAPI(parent);\n }\n};\n\n/**\n * Changes the parent reference of the ChildPart, and updates the sparse tree of\n * Disconnectable children accordingly.\n *\n * Note, this method will be patched onto ChildPart instances and called from\n * the core code when parts are moved between different parents.\n */\nfunction reparentDisconnectables(this: ChildPart, newParent: Disconnectable) {\n if (this._$disconnectableChildren !== undefined) {\n removeDisconnectableFromParent(this);\n this._$parent = newParent;\n addDisconnectableToParent(this);\n } else {\n this._$parent = newParent;\n }\n}\n\n/**\n * Sets the connected state on any directives contained within the committed\n * value of this part (i.e. within a TemplateInstance or iterable of\n * ChildParts) and runs their `disconnected`/`reconnected`s, as well as within\n * any directives stored on the ChildPart (when `valueOnly` is false).\n *\n * `isClearingValue` should be passed as `true` on a top-level part that is\n * clearing itself, and not as a result of recursively disconnecting directives\n * as part of a `clear` operation higher up the tree. This both ensures that any\n * directive on this ChildPart that produced a value that caused the clear\n * operation is not disconnected, and also serves as a performance optimization\n * to avoid needless bookkeeping when a subtree is going away; when clearing a\n * subtree, only the top-most part need to remove itself from the parent.\n *\n * `fromPartIndex` is passed only in the case of a partial `_clear` running as a\n * result of truncating an iterable.\n *\n * Note, this method will be patched onto ChildPart instances and called from the\n * core code when parts are cleared or the connection state is changed by the\n * user.\n */\nfunction notifyChildPartConnectedChanged(\n this: ChildPart,\n isConnected: boolean,\n isClearingValue = false,\n fromPartIndex = 0\n) {\n const value = this._$committedValue;\n const children = this._$disconnectableChildren;\n if (children === undefined || children.size === 0) {\n return;\n }\n if (isClearingValue) {\n if (Array.isArray(value)) {\n // Iterable case: Any ChildParts created by the iterable should be\n // disconnected and removed from this ChildPart's disconnectable\n // children (starting at `fromPartIndex` in the case of truncation)\n for (let i = fromPartIndex; i < value.length; i++) {\n notifyChildrenConnectedChanged(value[i], false);\n removeDisconnectableFromParent(value[i]);\n }\n } else if (value != null) {\n // TemplateInstance case: If the value has disconnectable children (will\n // only be in the case that it is a TemplateInstance), we disconnect it\n // and remove it from this ChildPart's disconnectable children\n notifyChildrenConnectedChanged(value as Disconnectable, false);\n removeDisconnectableFromParent(value as Disconnectable);\n }\n } else {\n notifyChildrenConnectedChanged(this, isConnected);\n }\n}\n\n/**\n * Patches disconnection API onto ChildParts.\n */\nconst installDisconnectAPI = (obj: Disconnectable) => {\n if ((obj as ChildPart).type == PartType.CHILD) {\n (obj as ChildPart)._$notifyConnectionChanged ??=\n notifyChildPartConnectedChanged;\n (obj as ChildPart)._$reparentDisconnectables ??= reparentDisconnectables;\n }\n};\n\n/**\n * An abstract `Directive` base class whose `disconnected` method will be\n * called when the part containing the directive is cleared as a result of\n * re-rendering, or when the user calls `part.setConnected(false)` on\n * a part that was previously rendered containing the directive (as happens\n * when e.g. a LitElement disconnects from the DOM).\n *\n * If `part.setConnected(true)` is subsequently called on a\n * containing part, the directive's `reconnected` method will be called prior\n * to its next `update`/`render` callbacks. When implementing `disconnected`,\n * `reconnected` should also be implemented to be compatible with reconnection.\n *\n * Note that updates may occur while the directive is disconnected. As such,\n * directives should generally check the `this.isConnected` flag during\n * render/update to determine whether it is safe to subscribe to resources\n * that may prevent garbage collection.\n */\nexport abstract class AsyncDirective extends Directive {\n // As opposed to other Disconnectables, AsyncDirectives always get notified\n // when the RootPart connection changes, so the public `isConnected`\n // is a locally stored variable initialized via its part's getter and synced\n // via `_$notifyDirectiveConnectionChanged`. This is cheaper than using\n // the _$isConnected getter, which has to look back up the tree each time.\n /**\n * The connection state for this Directive.\n */\n isConnected!: boolean;\n\n // @internal\n override _$disconnectableChildren?: Set = undefined;\n /**\n * Initialize the part with internal fields\n * @param part\n * @param parent\n * @param attributeIndex\n */\n override _$initialize(\n part: Part,\n parent: Disconnectable,\n attributeIndex: number | undefined\n ) {\n super._$initialize(part, parent, attributeIndex);\n addDisconnectableToParent(this);\n this.isConnected = part._$isConnected;\n }\n // This property needs to remain unminified.\n /**\n * Called from the core code when a directive is going away from a part (in\n * which case `shouldRemoveFromParent` should be true), and from the\n * `setChildrenConnected` helper function when recursively changing the\n * connection state of a tree (in which case `shouldRemoveFromParent` should\n * be false).\n *\n * @param isConnected\n * @param isClearingDirective - True when the directive itself is being\n * removed; false when the tree is being disconnected\n * @internal\n */\n override ['_$notifyDirectiveConnectionChanged'](\n isConnected: boolean,\n isClearingDirective = true\n ) {\n if (isConnected !== this.isConnected) {\n this.isConnected = isConnected;\n if (isConnected) {\n this.reconnected?.();\n } else {\n this.disconnected?.();\n }\n }\n if (isClearingDirective) {\n notifyChildrenConnectedChanged(this, isConnected);\n removeDisconnectableFromParent(this);\n }\n }\n\n /**\n * Sets the value of the directive's Part outside the normal `update`/`render`\n * lifecycle of a directive.\n *\n * This method should not be called synchronously from a directive's `update`\n * or `render`.\n *\n * @param directive The directive to update\n * @param value The value to set\n */\n setValue(value: unknown) {\n if (isSingleExpression(this.__part as unknown as PartInfo)) {\n this.__part._$setValue(value, this);\n } else {\n // this.__attributeIndex will be defined in this case, but\n // assert it in dev mode\n if (DEV_MODE && this.__attributeIndex === undefined) {\n throw new Error(`Expected this.__attributeIndex to be a number`);\n }\n const newValues = [...(this.__part._$committedValue as Array)];\n newValues[this.__attributeIndex!] = value;\n (this.__part as AttributePart)._$setValue(newValues, this, 0);\n }\n }\n\n /**\n * User callbacks for implementing logic to release any resources/subscriptions\n * that may have been retained by this directive. Since directives may also be\n * re-connected, `reconnected` should also be implemented to restore the\n * working state of the directive prior to the next render.\n */\n protected disconnected() {}\n protected reconnected() {}\n}\n", "export*from\"lit-html/async-directive.js\";\n//# sourceMappingURL=async-directive.js.map\n", "import { type TemplateResult, noChange } from 'lit';\nimport { AsyncDirective, directive } from 'lit/async-directive.js';\n\n/**\n * Resolves a promise and sets the value of the directive\n */\nclass ResolveDirective extends AsyncDirective {\n promise: Promise | undefined;\n hasPromiseSettled: boolean = false;\n\n render(promise: Promise) {\n if (this.promise !== promise) {\n this.promise = promise;\n\n if (this.isConnected) {\n this.handlePromise(promise);\n }\n }\n\n return noChange;\n }\n\n handlePromise(promise: Promise) {\n this.hasPromiseSettled = false;\n\n promise.then((value) => {\n if (this.promise === promise && !this.hasPromiseSettled) {\n this.setValue(value);\n this.hasPromiseSettled = true;\n }\n }).catch((error) => {\n if (this.promise === promise && !this.hasPromiseSettled) {\n this.setValue(error);\n this.hasPromiseSettled = true;\n }\n });\n }\n\n disconnected() {\n this.hasPromiseSettled = true; // prevent setting value if the promise settles after disconnection\n }\n\n reconnected() {\n if (!this.hasPromiseSettled) {\n this.handlePromise(this.promise!);\n }\n }\n}\n\nexport const resolve = directive(ResolveDirective);\nexport const resolveExec = (funcArg: () => Promise) => {\n return resolve(funcArg());\n}\n", "import { noChange } from 'lit';\nimport { AsyncDirective, directive } from 'lit/async-directive.js';\nimport { rxjs } from '@push.rocks/smartrx';\n\n/**\n * Subscribes to an observable\n */\nclass SubscribeDirective extends AsyncDirective {\n observable: rxjs.Observable | undefined;\n sub: rxjs.Subscription | null = null;\n\n render(observable: rxjs.Observable) {\n if (this.observable !== observable) {\n this.sub?.unsubscribe();\n this.observable = observable;\n\n if (this.isConnected) {\n this.subscribe(observable);\n }\n }\n\n return noChange;\n }\n\n subscribe(observable: rxjs.Observable) {\n this.sub = observable.subscribe((v: unknown) => {\n this.setValue(v);\n });\n }\n\n disconnected() {\n this.sub?.unsubscribe();\n }\n\n reconnected() {\n this.subscribe(this.observable!);\n }\n}\n\nexport const subscribe = directive(SubscribeDirective);\n", "import { type TemplateResult, noChange } from 'lit';\nimport type { DirectiveResult } from 'lit/directive.js';\nimport { AsyncDirective, directive } from 'lit/async-directive.js';\nimport { rxjs } from '@push.rocks/smartrx';\n\n/**\n * Subscribes to an observable and applies a template function to each emission.\n * @param observable - the source Observable\n * @param templateFn - function mapping each emitted value to a TemplateResult or other renderable content\n */\nclass SubscribeWithTemplateDirective extends AsyncDirective {\n private observable?: rxjs.Observable;\n private templateFn?: (value: unknown) => TemplateResult | unknown;\n private sub: rxjs.Subscription | null = null;\n\n render(\n observable: rxjs.Observable,\n templateFn: (value: unknown) => TemplateResult | unknown\n ) {\n const changed = this.observable !== observable || this.templateFn !== templateFn;\n if (changed) {\n this.sub?.unsubscribe();\n this.observable = observable;\n this.templateFn = templateFn;\n if (this.isConnected) {\n this.startSubscription();\n }\n }\n return noChange;\n }\n\n private startSubscription() {\n this.sub = this.observable!.subscribe((v: unknown) => {\n const out = this.templateFn!(v);\n this.setValue(out);\n });\n }\n\n disconnected() {\n this.sub?.unsubscribe();\n }\n\n reconnected() {\n this.startSubscription();\n }\n}\n\n/**\n * Directive that renders templates for each emission of an Observable.\n * Usage: html`${subscribeWithTemplate(myObservable, v => html`${v}`)}`\n */\n/**\n * Typed directive function signature: returns a Lit DirectiveResult.\n */\ntype SubscribeWithTemplateFn = (\n observable: rxjs.Observable,\n templateFn: (value: T) => TemplateResult | unknown\n) => DirectiveResult;\nexport const subscribeWithTemplate = directive(\n SubscribeWithTemplateDirective\n) as SubscribeWithTemplateFn;", "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// Note, this module is not included in package exports so that it's private to\n// our first-party directives. If it ends up being useful, we can open it up and\n// export it.\n\n/**\n * Helper to iterate an AsyncIterable in its own closure.\n * @param iterable The iterable to iterate\n * @param callback The callback to call for each value. If the callback returns\n * `false`, the loop will be broken.\n */\nexport const forAwaitOf = async (\n iterable: AsyncIterable,\n callback: (value: T) => Promise\n) => {\n for await (const v of iterable) {\n if ((await callback(v)) === false) {\n return;\n }\n }\n};\n\n/**\n * Holds a reference to an instance that can be disconnected and reconnected,\n * so that a closure over the ref (e.g. in a then function to a promise) does\n * not strongly hold a ref to the instance. Approximates a WeakRef but must\n * be manually connected & disconnected to the backing instance.\n */\nexport class PseudoWeakRef {\n private _ref?: T;\n constructor(ref: T) {\n this._ref = ref;\n }\n /**\n * Disassociates the ref with the backing instance.\n */\n disconnect() {\n this._ref = undefined;\n }\n /**\n * Reassociates the ref with the backing instance.\n */\n reconnect(ref: T) {\n this._ref = ref;\n }\n /**\n * Retrieves the backing instance (will be undefined when disconnected)\n */\n deref() {\n return this._ref;\n }\n}\n\n/**\n * A helper to pause and resume waiting on a condition in an async function\n */\nexport class Pauser {\n private _promise?: Promise = undefined;\n private _resolve?: () => void = undefined;\n /**\n * When paused, returns a promise to be awaited; when unpaused, returns\n * undefined. Note that in the microtask between the pauser being resumed\n * an await of this promise resolving, the pauser could be paused again,\n * hence callers should check the promise in a loop when awaiting.\n * @returns A promise to be awaited when paused or undefined\n */\n get() {\n return this._promise;\n }\n /**\n * Creates a promise to be awaited\n */\n pause() {\n this._promise ??= new Promise((resolve) => (this._resolve = resolve));\n }\n /**\n * Resolves the promise which may be awaited\n */\n resume() {\n this._resolve?.();\n this._promise = this._resolve = undefined;\n }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {Part, noChange} from '../lit-html.js';\nimport {isPrimitive} from '../directive-helpers.js';\nimport {\n directive,\n AsyncDirective,\n DirectiveResult,\n} from '../async-directive.js';\nimport {Pauser, PseudoWeakRef} from './private-async-helpers.js';\n\nconst isPromise = (x: unknown): x is Promise => {\n return !isPrimitive(x) && typeof (x as {then?: unknown}).then === 'function';\n};\n// Effectively infinity, but a SMI.\nconst _infinity = 0x3fffffff;\n\ntype UnwrapPromise = T extends Promise ? U : T;\n\nexport class UntilDirective extends AsyncDirective {\n private __lastRenderedIndex: number = _infinity;\n private __values: unknown[] = [];\n private __weakThis = new PseudoWeakRef(this);\n private __pauser = new Pauser();\n\n render(...args: Array): UnwrapPromise {\n return (args.find((x) => !isPromise(x)) ?? noChange) as UnwrapPromise;\n }\n\n override update(_part: Part, args: Array) {\n const previousValues = this.__values;\n let previousLength = previousValues.length;\n this.__values = args;\n\n const weakThis = this.__weakThis;\n const pauser = this.__pauser;\n\n // If our initial render occurs while disconnected, ensure that the pauser\n // and weakThis are in the disconnected state\n if (!this.isConnected) {\n this.disconnected();\n }\n\n for (let i = 0; i < args.length; i++) {\n // If we've rendered a higher-priority value already, stop.\n if (i > this.__lastRenderedIndex) {\n break;\n }\n\n const value = args[i];\n\n // Render non-Promise values immediately\n if (!isPromise(value)) {\n this.__lastRenderedIndex = i;\n // Since a lower-priority value will never overwrite a higher-priority\n // synchronous value, we can stop processing now.\n return value;\n }\n\n // If this is a Promise we've already handled, skip it.\n if (i < previousLength && value === previousValues[i]) {\n continue;\n }\n\n // We have a Promise that we haven't seen before, so priorities may have\n // changed. Forget what we rendered before.\n this.__lastRenderedIndex = _infinity;\n previousLength = 0;\n\n // Note, the callback avoids closing over `this` so that the directive\n // can be gc'ed before the promise resolves; instead `this` is retrieved\n // from `weakThis`, which can break the hard reference in the closure when\n // the directive disconnects\n Promise.resolve(value).then(async (result: unknown) => {\n // If we're disconnected, wait until we're (maybe) reconnected\n // The while loop here handles the case that the connection state\n // thrashes, causing the pauser to resume and then get re-paused\n while (pauser.get()) {\n await pauser.get();\n }\n // If the callback gets here and there is no `this`, it means that the\n // directive has been disconnected and garbage collected and we don't\n // need to do anything else\n const _this = weakThis.deref();\n if (_this !== undefined) {\n const index = _this.__values.indexOf(value);\n // If state.values doesn't contain the value, we've re-rendered without\n // the value, so don't render it. Then, only render if the value is\n // higher-priority than what's already been rendered.\n if (index > -1 && index < _this.__lastRenderedIndex) {\n _this.__lastRenderedIndex = index;\n _this.setValue(result);\n }\n }\n });\n }\n\n return noChange;\n }\n\n override disconnected() {\n this.__weakThis.disconnect();\n this.__pauser.pause();\n }\n\n override reconnected() {\n this.__weakThis.reconnect(this);\n this.__pauser.resume();\n }\n}\n\ninterface Until {\n >(\n ...args: T\n ): DirectiveResult>;\n}\n\n/**\n * Renders one of a series of values, including Promises, to a Part.\n *\n * Values are rendered in priority order, with the first argument having the\n * highest priority and the last argument having the lowest priority. If a\n * value is a Promise, low-priority values will be rendered until it resolves.\n *\n * The priority of values can be used to create placeholder content for async\n * data. For example, a Promise with pending content can be the first,\n * highest-priority, argument, and a non_promise loading indicator template can\n * be used as the second, lower-priority, argument. The loading indicator will\n * render immediately, and the primary content will render when the Promise\n * resolves.\n *\n * Example:\n *\n * ```js\n * const content = fetch('./content.txt').then(r => r.text());\n * html`${until(content, html`Loading...`)}`\n * ```\n */\nexport const until: Until = directive(UntilDirective);\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\n// export type {UntilDirective};\n", "export*from\"lit-html/directives/until.js\";\n//# sourceMappingURL=until.js.map\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {ChildPart, noChange} from '../lit-html.js';\nimport {\n AsyncDirective,\n directive,\n DirectiveParameters,\n} from '../async-directive.js';\nimport {Pauser, PseudoWeakRef, forAwaitOf} from './private-async-helpers.js';\n\ntype Mapper = (v: T, index?: number) => unknown;\n\nexport class AsyncReplaceDirective extends AsyncDirective {\n private __value?: AsyncIterable;\n private __weakThis = new PseudoWeakRef(this);\n private __pauser = new Pauser();\n\n // @ts-expect-error value not used, but we want a nice parameter for docs\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n render(value: AsyncIterable, _mapper?: Mapper) {\n return noChange;\n }\n\n override update(\n _part: ChildPart,\n [value, mapper]: DirectiveParameters\n ) {\n // If our initial render occurs while disconnected, ensure that the pauser\n // and weakThis are in the disconnected state\n if (!this.isConnected) {\n this.disconnected();\n }\n // If we've already set up this particular iterable, we don't need\n // to do anything.\n if (value === this.__value) {\n return noChange;\n }\n this.__value = value;\n let i = 0;\n const {__weakThis: weakThis, __pauser: pauser} = this;\n // Note, the callback avoids closing over `this` so that the directive\n // can be gc'ed before the promise resolves; instead `this` is retrieved\n // from `weakThis`, which can break the hard reference in the closure when\n // the directive disconnects\n forAwaitOf(value, async (v: unknown) => {\n // The while loop here handles the case that the connection state\n // thrashes, causing the pauser to resume and then get re-paused\n while (pauser.get()) {\n await pauser.get();\n }\n // If the callback gets here and there is no `this`, it means that the\n // directive has been disconnected and garbage collected and we don't\n // need to do anything else\n const _this = weakThis.deref();\n if (_this !== undefined) {\n // Check to make sure that value is the still the current value of\n // the part, and if not bail because a new value owns this part\n if (_this.__value !== value) {\n return false;\n }\n\n // As a convenience, because functional-programming-style\n // transforms of iterables and async iterables requires a library,\n // we accept a mapper function. This is especially convenient for\n // rendering a template for each item.\n if (mapper !== undefined) {\n v = mapper(v, i);\n }\n\n _this.commitValue(v, i);\n i++;\n }\n return true;\n });\n return noChange;\n }\n\n // Override point for AsyncAppend to append rather than replace\n protected commitValue(value: unknown, _index: number) {\n this.setValue(value);\n }\n\n override disconnected() {\n this.__weakThis.disconnect();\n this.__pauser.pause();\n }\n\n override reconnected() {\n this.__weakThis.reconnect(this);\n this.__pauser.resume();\n }\n}\n\n/**\n * A directive that renders the items of an async iterable[1], replacing\n * previous values with new values, so that only one value is ever rendered\n * at a time. This directive may be used in any expression type.\n *\n * Async iterables are objects with a `[Symbol.asyncIterator]` method, which\n * returns an iterator who's `next()` method returns a Promise. When a new\n * value is available, the Promise resolves and the value is rendered to the\n * Part controlled by the directive. If another value other than this\n * directive has been set on the Part, the iterable will no longer be listened\n * to and new values won't be written to the Part.\n *\n * [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of\n *\n * @param value An async iterable\n * @param mapper An optional function that maps from (value, index) to another\n * value. Useful for generating templates for each item in the iterable.\n */\nexport const asyncReplace = directive(AsyncReplaceDirective);\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {ChildPart} from '../lit-html.js';\nimport {\n directive,\n DirectiveParameters,\n PartInfo,\n PartType,\n} from '../directive.js';\nimport {AsyncReplaceDirective} from './async-replace.js';\nimport {\n clearPart,\n insertPart,\n setChildPartValue,\n} from '../directive-helpers.js';\n\nclass AsyncAppendDirective extends AsyncReplaceDirective {\n private __childPart!: ChildPart;\n\n // Override AsyncReplace to narrow the allowed part type to ChildPart only\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.CHILD) {\n throw new Error('asyncAppend can only be used in child expressions');\n }\n }\n\n // Override AsyncReplace to save the part since we need to append into it\n override update(part: ChildPart, params: DirectiveParameters) {\n this.__childPart = part;\n return super.update(part, params);\n }\n\n // Override AsyncReplace to append rather than replace\n protected override commitValue(value: unknown, index: number) {\n // When we get the first value, clear the part. This lets the\n // previous value display until we can replace it.\n if (index === 0) {\n clearPart(this.__childPart);\n }\n // Create and insert a new part and set its value to the next value\n const newPart = insertPart(this.__childPart);\n setChildPartValue(newPart, value);\n }\n}\n\n/**\n * A directive that renders the items of an async iterable[1], appending new\n * values after previous values, similar to the built-in support for iterables.\n * This directive is usable only in child expressions.\n *\n * Async iterables are objects with a [Symbol.asyncIterator] method, which\n * returns an iterator who's `next()` method returns a Promise. When a new\n * value is available, the Promise resolves and the value is appended to the\n * Part controlled by the directive. If another value other than this\n * directive has been set on the Part, the iterable will no longer be listened\n * to and new values won't be written to the Part.\n *\n * [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of\n *\n * @param value An async iterable\n * @param mapper An optional function that maps from (value, index) to another\n * value. Useful for generating templates for each item in the iterable.\n */\nexport const asyncAppend = directive(AsyncAppendDirective);\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {AsyncAppendDirective};\n", "export*from\"lit-html/directives/async-append.js\";\n//# sourceMappingURL=async-append.js.map\n", "/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {nothing} from '../lit-html.js';\nimport {\n directive,\n Directive,\n ChildPart,\n DirectiveParameters,\n DirectiveResult,\n} from '../directive.js';\nimport {setCommittedValue} from '../directive-helpers.js';\n\nclass Keyed extends Directive {\n key: unknown = nothing;\n\n render(k: unknown, v: T): T {\n this.key = k;\n return v;\n }\n\n override update(part: ChildPart, [k, v]: DirectiveParameters) {\n if (k !== this.key) {\n // Clear the part before returning a value. The one-arg form of\n // setCommittedValue sets the value to a sentinel which forces a\n // commit the next render.\n setCommittedValue(part);\n this.key = k;\n }\n return v;\n }\n}\n\ninterface KeyedFunc {\n (k: unknown, v: V): DirectiveResult>;\n}\n\n/**\n * Associates a renderable value with a unique key. When the key changes, the\n * previous DOM is removed and disposed before rendering the next value, even\n * if the value - such as a template - is the same.\n *\n * This is useful for forcing re-renders of stateful components, or working\n * with code that expects new data to generate new HTML elements, such as some\n * animation techniques.\n */\nexport const keyed: KeyedFunc = directive(Keyed);\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {Keyed};\n", "export*from\"lit-html/directives/keyed.js\";\n//# sourceMappingURL=keyed.js.map\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {ChildPart, noChange} from '../lit-html.js';\nimport {directive, Directive, PartInfo, PartType} from '../directive.js';\nimport {\n insertPart,\n getCommittedValue,\n removePart,\n setCommittedValue,\n setChildPartValue,\n} from '../directive-helpers.js';\n\nexport type KeyFn = (item: T, index: number) => unknown;\nexport type ItemTemplate = (item: T, index: number) => unknown;\n\n// Helper for generating a map of array item to its index over a subset\n// of an array (used to lazily generate `newKeyToIndexMap` and\n// `oldKeyToIndexMap`)\nconst generateMap = (list: unknown[], start: number, end: number) => {\n const map = new Map();\n for (let i = start; i <= end; i++) {\n map.set(list[i], i);\n }\n return map;\n};\n\nclass RepeatDirective extends Directive {\n private _itemKeys?: unknown[];\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.CHILD) {\n throw new Error('repeat() can only be used in text expressions');\n }\n }\n\n private _getValuesAndKeys(\n items: Iterable,\n keyFnOrTemplate: KeyFn | ItemTemplate,\n template?: ItemTemplate\n ) {\n let keyFn: KeyFn | undefined;\n if (template === undefined) {\n template = keyFnOrTemplate;\n } else if (keyFnOrTemplate !== undefined) {\n keyFn = keyFnOrTemplate as KeyFn;\n }\n const keys = [];\n const values = [];\n let index = 0;\n for (const item of items) {\n keys[index] = keyFn ? keyFn(item, index) : index;\n values[index] = template!(item, index);\n index++;\n }\n return {\n values,\n keys,\n };\n }\n\n render(items: Iterable, template: ItemTemplate): Array;\n render(\n items: Iterable,\n keyFn: KeyFn | ItemTemplate,\n template: ItemTemplate\n ): Array;\n render(\n items: Iterable,\n keyFnOrTemplate: KeyFn | ItemTemplate,\n template?: ItemTemplate\n ) {\n return this._getValuesAndKeys(items, keyFnOrTemplate, template).values;\n }\n\n override update(\n containerPart: ChildPart,\n [items, keyFnOrTemplate, template]: [\n Iterable,\n KeyFn | ItemTemplate,\n ItemTemplate,\n ]\n ) {\n // Old part & key lists are retrieved from the last update (which may\n // be primed by hydration)\n const oldParts = getCommittedValue(\n containerPart\n ) as Array;\n const {values: newValues, keys: newKeys} = this._getValuesAndKeys(\n items,\n keyFnOrTemplate,\n template\n );\n\n // We check that oldParts, the committed value, is an Array as an\n // indicator that the previous value came from a repeat() call. If\n // oldParts is not an Array then this is the first render and we return\n // an array for lit-html's array handling to render, and remember the\n // keys.\n if (!Array.isArray(oldParts)) {\n this._itemKeys = newKeys;\n return newValues;\n }\n\n // In SSR hydration it's possible for oldParts to be an array but for us\n // to not have item keys because the update() hasn't run yet. We set the\n // keys to an empty array. This will cause all oldKey/newKey comparisons\n // to fail and execution to fall to the last nested brach below which\n // reuses the oldPart.\n const oldKeys = (this._itemKeys ??= []);\n\n // New part list will be built up as we go (either reused from\n // old parts or created for new keys in this update). This is\n // saved in the above cache at the end of the update.\n const newParts: ChildPart[] = [];\n\n // Maps from key to index for current and previous update; these\n // are generated lazily only when needed as a performance\n // optimization, since they are only required for multiple\n // non-contiguous changes in the list, which are less common.\n let newKeyToIndexMap!: Map;\n let oldKeyToIndexMap!: Map;\n\n // Head and tail pointers to old parts and new values\n let oldHead = 0;\n let oldTail = oldParts.length - 1;\n let newHead = 0;\n let newTail = newValues.length - 1;\n\n // Overview of O(n) reconciliation algorithm (general approach\n // based on ideas found in ivi, vue, snabbdom, etc.):\n //\n // * We start with the list of old parts and new values (and\n // arrays of their respective keys), head/tail pointers into\n // each, and we build up the new list of parts by updating\n // (and when needed, moving) old parts or creating new ones.\n // The initial scenario might look like this (for brevity of\n // the diagrams, the numbers in the array reflect keys\n // associated with the old parts or new values, although keys\n // and parts/values are actually stored in parallel arrays\n // indexed using the same head/tail pointers):\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [ , , , , , , ]\n // newKeys: [0, 2, 1, 4, 3, 7, 6] <- reflects the user's new\n // item order\n // newHead ^ ^ newTail\n //\n // * Iterate old & new lists from both sides, updating,\n // swapping, or removing parts at the head/tail locations\n // until neither head nor tail can move.\n //\n // * Example below: keys at head pointers match, so update old\n // part 0 in-place (no need to move it) and record part 0 in\n // the `newParts` list. The last thing we do is advance the\n // `oldHead` and `newHead` pointers (will be reflected in the\n // next diagram).\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [0, , , , , , ] <- heads matched: update 0\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance both oldHead\n // & newHead\n // newHead ^ ^ newTail\n //\n // * Example below: head pointers don't match, but tail\n // pointers do, so update part 6 in place (no need to move\n // it), and record part 6 in the `newParts` list. Last,\n // advance the `oldTail` and `oldHead` pointers.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [0, , , , , , 6] <- tails matched: update 6\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance both oldTail\n // & newTail\n // newHead ^ ^ newTail\n //\n // * If neither head nor tail match; next check if one of the\n // old head/tail items was removed. We first need to generate\n // the reverse map of new keys to index (`newKeyToIndexMap`),\n // which is done once lazily as a performance optimization,\n // since we only hit this case if multiple non-contiguous\n // changes were made. Note that for contiguous removal\n // anywhere in the list, the head and tails would advance\n // from either end and pass each other before we get to this\n // case and removals would be handled in the final while loop\n // without needing to generate the map.\n //\n // * Example below: The key at `oldTail` was removed (no longer\n // in the `newKeyToIndexMap`), so remove that part from the\n // DOM and advance just the `oldTail` pointer.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, 2, 3, 4, 5, 6]\n // newParts: [0, , , , , , 6] <- 5 not in new map: remove\n // newKeys: [0, 2, 1, 4, 3, 7, 6] 5 and advance oldTail\n // newHead ^ ^ newTail\n //\n // * Once head and tail cannot move, any mismatches are due to\n // either new or moved items; if a new key is in the previous\n // \"old key to old index\" map, move the old part to the new\n // location, otherwise create and insert a new part. Note\n // that when moving an old part we null its position in the\n // oldParts array if it lies between the head and tail so we\n // know to skip it when the pointers get there.\n //\n // * Example below: neither head nor tail match, and neither\n // were removed; so find the `newHead` key in the\n // `oldKeyToIndexMap`, and move that old part's DOM into the\n // next head position (before `oldParts[oldHead]`). Last,\n // null the part in the `oldPart` array since it was\n // somewhere in the remaining oldParts still to be scanned\n // (between the head and tail pointers) so that we know to\n // skip that old part on future iterations.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, , , , , 6] <- stuck: update & move 2\n // newKeys: [0, 2, 1, 4, 3, 7, 6] into place and advance\n // newHead\n // newHead ^ ^ newTail\n //\n // * Note that for moves/insertions like the one above, a part\n // inserted at the head pointer is inserted before the\n // current `oldParts[oldHead]`, and a part inserted at the\n // tail pointer is inserted before `newParts[newTail+1]`. The\n // seeming asymmetry lies in the fact that new parts are\n // moved into place outside in, so to the right of the head\n // pointer are old parts, and to the right of the tail\n // pointer are new parts.\n //\n // * We always restart back from the top of the algorithm,\n // allowing matching and simple updates in place to\n // continue...\n //\n // * Example below: the head pointers once again match, so\n // simply update part 1 and record it in the `newParts`\n // array. Last, advance both head pointers.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, , , , 6] <- heads matched: update 1\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance both oldHead\n // & newHead\n // newHead ^ ^ newTail\n //\n // * As mentioned above, items that were moved as a result of\n // being stuck (the final else clause in the code below) are\n // marked with null, so we always advance old pointers over\n // these so we're comparing the next actual old value on\n // either end.\n //\n // * Example below: `oldHead` is null (already placed in\n // newParts), so advance `oldHead`.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6] <- old head already used:\n // newParts: [0, 2, 1, , , , 6] advance oldHead\n // newKeys: [0, 2, 1, 4, 3, 7, 6]\n // newHead ^ ^ newTail\n //\n // * Note it's not critical to mark old parts as null when they\n // are moved from head to tail or tail to head, since they\n // will be outside the pointer range and never visited again.\n //\n // * Example below: Here the old tail key matches the new head\n // key, so the part at the `oldTail` position and move its\n // DOM to the new head position (before `oldParts[oldHead]`).\n // Last, advance `oldTail` and `newHead` pointers.\n //\n // oldHead v v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, 4, , , 6] <- old tail matches new\n // newKeys: [0, 2, 1, 4, 3, 7, 6] head: update & move 4,\n // advance oldTail & newHead\n // newHead ^ ^ newTail\n //\n // * Example below: Old and new head keys match, so update the\n // old head part in place, and advance the `oldHead` and\n // `newHead` pointers.\n //\n // oldHead v oldTail\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, 4, 3, ,6] <- heads match: update 3\n // newKeys: [0, 2, 1, 4, 3, 7, 6] and advance oldHead &\n // newHead\n // newHead ^ ^ newTail\n //\n // * Once the new or old pointers move past each other then all\n // we have left is additions (if old list exhausted) or\n // removals (if new list exhausted). Those are handled in the\n // final while loops at the end.\n //\n // * Example below: `oldHead` exceeded `oldTail`, so we're done\n // with the main loop. Create the remaining part and insert\n // it at the new head position, and the update is complete.\n //\n // (oldHead > oldTail)\n // oldKeys: [0, 1, -, 3, 4, 5, 6]\n // newParts: [0, 2, 1, 4, 3, 7 ,6] <- create and insert 7\n // newKeys: [0, 2, 1, 4, 3, 7, 6]\n // newHead ^ newTail\n //\n // * Note that the order of the if/else clauses is not\n // important to the algorithm, as long as the null checks\n // come first (to ensure we're always working on valid old\n // parts) and that the final else clause comes last (since\n // that's where the expensive moves occur). The order of\n // remaining clauses is just a simple guess at which cases\n // will be most common.\n //\n // * Note, we could calculate the longest\n // increasing subsequence (LIS) of old items in new position,\n // and only move those not in the LIS set. However that costs\n // O(nlogn) time and adds a bit more code, and only helps\n // make rare types of mutations require fewer moves. The\n // above handles removes, adds, reversal, swaps, and single\n // moves of contiguous items in linear time, in the minimum\n // number of moves. As the number of multiple moves where LIS\n // might help approaches a random shuffle, the LIS\n // optimization becomes less helpful, so it seems not worth\n // the code at this point. Could reconsider if a compelling\n // case arises.\n\n while (oldHead <= oldTail && newHead <= newTail) {\n if (oldParts[oldHead] === null) {\n // `null` means old part at head has already been used\n // below; skip\n oldHead++;\n } else if (oldParts[oldTail] === null) {\n // `null` means old part at tail has already been used\n // below; skip\n oldTail--;\n } else if (oldKeys[oldHead] === newKeys[newHead]) {\n // Old head matches new head; update in place\n newParts[newHead] = setChildPartValue(\n oldParts[oldHead]!,\n newValues[newHead]\n );\n oldHead++;\n newHead++;\n } else if (oldKeys[oldTail] === newKeys[newTail]) {\n // Old tail matches new tail; update in place\n newParts[newTail] = setChildPartValue(\n oldParts[oldTail]!,\n newValues[newTail]\n );\n oldTail--;\n newTail--;\n } else if (oldKeys[oldHead] === newKeys[newTail]) {\n // Old head matches new tail; update and move to new tail\n newParts[newTail] = setChildPartValue(\n oldParts[oldHead]!,\n newValues[newTail]\n );\n insertPart(containerPart, newParts[newTail + 1], oldParts[oldHead]!);\n oldHead++;\n newTail--;\n } else if (oldKeys[oldTail] === newKeys[newHead]) {\n // Old tail matches new head; update and move to new head\n newParts[newHead] = setChildPartValue(\n oldParts[oldTail]!,\n newValues[newHead]\n );\n insertPart(containerPart, oldParts[oldHead]!, oldParts[oldTail]!);\n oldTail--;\n newHead++;\n } else {\n if (newKeyToIndexMap === undefined) {\n // Lazily generate key-to-index maps, used for removals &\n // moves below\n newKeyToIndexMap = generateMap(newKeys, newHead, newTail);\n oldKeyToIndexMap = generateMap(oldKeys, oldHead, oldTail);\n }\n if (!newKeyToIndexMap.has(oldKeys[oldHead])) {\n // Old head is no longer in new list; remove\n removePart(oldParts[oldHead]!);\n oldHead++;\n } else if (!newKeyToIndexMap.has(oldKeys[oldTail])) {\n // Old tail is no longer in new list; remove\n removePart(oldParts[oldTail]!);\n oldTail--;\n } else {\n // Any mismatches at this point are due to additions or\n // moves; see if we have an old part we can reuse and move\n // into place\n const oldIndex = oldKeyToIndexMap.get(newKeys[newHead]);\n const oldPart = oldIndex !== undefined ? oldParts[oldIndex] : null;\n if (oldPart === null) {\n // No old part for this value; create a new one and\n // insert it\n const newPart = insertPart(containerPart, oldParts[oldHead]!);\n setChildPartValue(newPart, newValues[newHead]);\n newParts[newHead] = newPart;\n } else {\n // Reuse old part\n newParts[newHead] = setChildPartValue(oldPart, newValues[newHead]);\n insertPart(containerPart, oldParts[oldHead]!, oldPart);\n // This marks the old part as having been used, so that\n // it will be skipped in the first two checks above\n oldParts[oldIndex as number] = null;\n }\n newHead++;\n }\n }\n }\n // Add parts for any remaining new values\n while (newHead <= newTail) {\n // For all remaining additions, we insert before last new\n // tail, since old pointers are no longer valid\n const newPart = insertPart(containerPart, newParts[newTail + 1]);\n setChildPartValue(newPart, newValues[newHead]);\n newParts[newHead++] = newPart;\n }\n // Remove any remaining unused old parts\n while (oldHead <= oldTail) {\n const oldPart = oldParts[oldHead++];\n if (oldPart !== null) {\n removePart(oldPart);\n }\n }\n\n // Save order of new parts for next round\n this._itemKeys = newKeys;\n // Directly set part value, bypassing it's dirty-checking\n setCommittedValue(containerPart, newParts);\n return noChange;\n }\n}\n\nexport interface RepeatDirectiveFn {\n (\n items: Iterable,\n keyFnOrTemplate: KeyFn | ItemTemplate,\n template?: ItemTemplate\n ): unknown;\n (items: Iterable, template: ItemTemplate): unknown;\n (\n items: Iterable,\n keyFn: KeyFn | ItemTemplate,\n template: ItemTemplate\n ): unknown;\n}\n\n/**\n * A directive that repeats a series of values (usually `TemplateResults`)\n * generated from an iterable, and updates those items efficiently when the\n * iterable changes based on user-provided `keys` associated with each item.\n *\n * Note that if a `keyFn` is provided, strict key-to-DOM mapping is maintained,\n * meaning previous DOM for a given key is moved into the new position if\n * needed, and DOM will never be reused with values for different keys (new DOM\n * will always be created for new keys). This is generally the most efficient\n * way to use `repeat` since it performs minimum unnecessary work for insertions\n * and removals.\n *\n * The `keyFn` takes two parameters, the item and its index, and returns a unique key value.\n *\n * ```js\n * html`\n *
        \n * ${repeat(this.items, (item) => item.id, (item, index) => {\n * return html`
      1. ${index}: ${item.name}
      2. `;\n * })}\n *
      \n * `\n * ```\n *\n * **Important**: If providing a `keyFn`, keys *must* be unique for all items in a\n * given call to `repeat`. The behavior when two or more items have the same key\n * is undefined.\n *\n * If no `keyFn` is provided, this directive will perform similar to mapping\n * items to values, and DOM will be reused against potentially different items.\n */\nexport const repeat = directive(RepeatDirective) as RepeatDirectiveFn;\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {RepeatDirective};\n", "export*from\"lit-html/directives/repeat.js\";\n//# sourceMappingURL=repeat.js.map\n", "// better scoped exports\nexport * from './classes.resolvedirective.js';\nexport * from './classes.subscribedirective.js';\n\n\nexport { subscribeWithTemplate } from './classes.subscribewithtemplate.js';\n\nexport { until } from 'lit/directives/until.js';\nexport { asyncAppend } from 'lit/directives/async-append.js';\nexport { keyed } from 'lit/directives/keyed.js';\nexport { repeat } from 'lit/directives/repeat.js';", "import { CssManager } from './classes.cssmanager.js';\n\n// lit exports\nexport { html, type TemplateResult, css, unsafeCSS, render, type CSSResult } from 'lit';\n\nexport { html as static, unsafeStatic } from 'lit/static-html.js';\n\nexport { unsafeHTML } from 'lit/directives/unsafe-html.js';\n\nexport { customElement } from 'lit/decorators/custom-element.js';\n\nexport { property, state, query, queryAll, queryAsync } from 'lit/decorators.js';\n\n// domtools exports\nimport * as domtools from '@design.estate/dees-domtools';\nexport { domtools };\n\n// DeesElements exports\nexport * from './classes.dees-element.js';\n\n// directives exports\nimport * as directives from './directives/index.js';\n\nexport { directives };\n\n/**\n * a singleton instance of CssManager\n */\nexport const cssManager = CssManager.getSingleton();\n\n\n\n// type exports\nimport type { rxjs } from '@push.rocks/smartrx';\n\nexport type {\n rxjs,\n}", "/**\n * Central z-index management for consistent stacking order\n * Higher numbers appear on top of lower numbers\n */\n\nexport const zIndexLayers = {\n // Base layer: Regular content\n base: {\n content: 'auto',\n inputElements: 1,\n },\n\n // Fixed UI elements\n fixed: {\n appBar: 10,\n sideMenu: 10,\n mobileNav: 250,\n },\n\n // Overlay backdrops (semi-transparent backgrounds)\n backdrop: {\n dropdown: 1999, // Below modals but above fixed elements\n modal: 2999, // Below dropdowns on modals\n contextMenu: 3999, // Below critical overlays\n },\n\n // Interactive overlays\n overlay: {\n dropdown: 2000, // Dropdowns and select menus\n modal: 3000, // Modal dialogs\n contextMenu: 4000, // Context menus and tooltips\n toast: 5000, // Toast notifications (highest priority)\n },\n\n // Special cases for nested elements\n modalDropdown: 3500, // Dropdowns inside modals\n wysiwygMenus: 4500, // Editor formatting menus\n} as const;\n\n// Helper function to get z-index value\nexport function getZIndex(category: keyof typeof zIndexLayers, subcategory?: string): number | string {\n const categoryObj = zIndexLayers[category];\n if (typeof categoryObj === 'object' && subcategory) {\n return categoryObj[subcategory as keyof typeof categoryObj] || 'auto';\n }\n return typeof categoryObj === 'number' ? categoryObj : 'auto';\n}\n\n// Z-index assignments for components\nexport const componentZIndex = {\n 'dees-modal': zIndexLayers.overlay.modal,\n 'dees-windowlayer': zIndexLayers.overlay.dropdown,\n 'dees-contextmenu': zIndexLayers.overlay.contextMenu,\n 'dees-toast': zIndexLayers.overlay.toast,\n 'dees-appui-mainmenu': zIndexLayers.fixed.appBar,\n 'dees-mobilenavigation': zIndexLayers.fixed.mobileNav,\n 'dees-slash-menu': zIndexLayers.wysiwygMenus,\n 'dees-formatting-menu': zIndexLayers.wysiwygMenus,\n} as const;\n\n/**\n * Z-Index Registry for managing stacked elements\n * Simple incremental z-index assignment based on creation order\n */\nexport class ZIndexRegistry {\n private static instance: ZIndexRegistry;\n private activeElements = new Set();\n private elementZIndexMap = new WeakMap();\n private currentZIndex = 1000; // Starting z-index\n \n private constructor() {}\n \n public static getInstance(): ZIndexRegistry {\n if (!ZIndexRegistry.instance) {\n ZIndexRegistry.instance = new ZIndexRegistry();\n }\n return ZIndexRegistry.instance;\n }\n \n /**\n * Get the next available z-index\n * @returns The next available z-index\n */\n public getNextZIndex(): number {\n this.currentZIndex += 10;\n return this.currentZIndex;\n }\n \n /**\n * Register an element with the z-index registry\n * @param element - The HTML element to register\n * @param zIndex - The z-index assigned to this element\n */\n public register(element: HTMLElement, zIndex: number): void {\n this.activeElements.add(element);\n this.elementZIndexMap.set(element, zIndex);\n }\n \n /**\n * Unregister an element from the z-index registry\n * @param element - The HTML element to unregister\n */\n public unregister(element: HTMLElement): void {\n this.activeElements.delete(element);\n this.elementZIndexMap.delete(element);\n \n // If no more active elements, reset counter to base\n if (this.activeElements.size === 0) {\n this.currentZIndex = 1000;\n }\n }\n \n /**\n * Get the z-index for a specific element\n * @param element - The HTML element\n * @returns The z-index or undefined if not registered\n */\n public getElementZIndex(element: HTMLElement): number | undefined {\n return this.elementZIndexMap.get(element);\n }\n \n /**\n * Get count of active elements\n * @returns Number of active elements\n */\n public getActiveCount(): number {\n return this.activeElements.size;\n }\n \n /**\n * Get the current highest z-index\n * @returns The current z-index value\n */\n public getCurrentZIndex(): number {\n return this.currentZIndex;\n }\n \n /**\n * Clear all registrations (useful for testing)\n */\n public clear(): void {\n this.activeElements.clear();\n this.elementZIndexMap = new WeakMap();\n this.currentZIndex = 1000;\n }\n \n /**\n * Get all active elements in z-index order\n * @returns Array of elements sorted by z-index\n */\n public getActiveElementsInOrder(): HTMLElement[] {\n return Array.from(this.activeElements).sort((a, b) => {\n const aZ = this.elementZIndexMap.get(a) || 0;\n const bZ = this.elementZIndexMap.get(b) || 0;\n return aZ - bZ;\n });\n }\n}\n\n// Export singleton instance for convenience\nexport const zIndexRegistry = ZIndexRegistry.getInstance();", "import { css, type CSSResult } from '@design.estate/dees-element';\n\n// ============================================\n// Theme Token Type Definitions\n// ============================================\n\nexport interface IThemeColors {\n bgPrimary: string;\n bgSecondary: string;\n bgTertiary: string;\n textPrimary: string;\n textSecondary: string;\n textMuted: string;\n borderDefault: string;\n borderSubtle: string;\n borderStrong: string;\n accentPrimary: string;\n accentSuccess: string;\n accentWarning: string;\n accentError: string;\n}\n\nexport interface IThemeSpacing {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n '2xl': string;\n '3xl': string;\n}\n\nexport interface IThemeRadius {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n full: string;\n}\n\nexport interface IThemeShadows {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n}\n\nexport interface IThemeTransitions {\n fast: string;\n default: string;\n slow: string;\n slower: string;\n}\n\nexport interface IThemeControlHeights {\n sm: string;\n md: string;\n lg: string;\n xl: string;\n}\n\nexport interface ITheme {\n colors: {\n light: IThemeColors;\n dark: IThemeColors;\n };\n spacing: IThemeSpacing;\n radius: IThemeRadius;\n shadows: IThemeShadows;\n transitions: IThemeTransitions;\n controlHeights: IThemeControlHeights;\n}\n\n// ============================================\n// Default Theme Values (TypeScript Object)\n// ============================================\n\nexport const themeDefaults: ITheme = {\n colors: {\n light: {\n bgPrimary: '#ffffff',\n bgSecondary: '#fafafa',\n bgTertiary: '#f4f4f5',\n textPrimary: '#09090b',\n textSecondary: '#374151',\n textMuted: '#71717a',\n borderDefault: '#e5e7eb',\n borderSubtle: '#f4f4f5',\n borderStrong: '#d1d5db',\n accentPrimary: '#3b82f6',\n accentSuccess: '#22c55e',\n accentWarning: '#f59e0b',\n accentError: '#ef4444',\n },\n dark: {\n bgPrimary: '#09090b',\n bgSecondary: '#0a0a0a',\n bgTertiary: '#18181b',\n textPrimary: '#fafafa',\n textSecondary: '#d4d4d8',\n textMuted: '#a1a1aa',\n borderDefault: '#27272a',\n borderSubtle: '#1a1a1a',\n borderStrong: '#3f3f46',\n accentPrimary: '#3b82f6',\n accentSuccess: '#22c55e',\n accentWarning: '#f59e0b',\n accentError: '#ef4444',\n },\n },\n spacing: {\n xs: '4px',\n sm: '8px',\n md: '12px',\n lg: '16px',\n xl: '24px',\n '2xl': '32px',\n '3xl': '48px',\n },\n radius: {\n xs: '2px',\n sm: '4px',\n md: '6px',\n lg: '8px',\n xl: '12px',\n full: '999px',\n },\n shadows: {\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n sm: '0 1px 3px rgba(0, 0, 0, 0.1)',\n md: '0 2px 8px rgba(0, 0, 0, 0.15)',\n lg: '0 4px 12px rgba(0, 0, 0, 0.15)',\n },\n transitions: {\n fast: '0.1s',\n default: '0.15s',\n slow: '0.2s',\n slower: '0.3s',\n },\n controlHeights: {\n sm: '32px',\n md: '36px',\n lg: '40px',\n xl: '48px',\n },\n};\n\n// ============================================\n// CSS Block for Component Import\n// ============================================\n\n/**\n * Default theme styles to be imported into every component's static styles array.\n * Provides CSS custom properties for spacing, radius, shadows, transitions, and control heights.\n *\n * Usage:\n * ```typescript\n * import { themeDefaultStyles } from '../00theme.js';\n *\n * @customElement('my-component')\n * export class MyComponent extends DeesElement {\n * public static styles = [\n * themeDefaultStyles,\n * cssManager.defaultStyles,\n * css`...`\n * ];\n * }\n * ```\n */\nexport const themeDefaultStyles: CSSResult = css`\n :host {\n /* ========================================\n * Spacing Scale\n * ======================================== */\n --dees-spacing-xs: 4px;\n --dees-spacing-sm: 8px;\n --dees-spacing-md: 12px;\n --dees-spacing-lg: 16px;\n --dees-spacing-xl: 24px;\n --dees-spacing-2xl: 32px;\n --dees-spacing-3xl: 48px;\n\n /* ========================================\n * Border Radius Scale\n * ======================================== */\n --dees-radius-xs: 2px;\n --dees-radius-sm: 4px;\n --dees-radius-md: 6px;\n --dees-radius-lg: 8px;\n --dees-radius-xl: 12px;\n --dees-radius-full: 999px;\n\n /* ========================================\n * Shadow Elevation Scale\n * ======================================== */\n --dees-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --dees-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);\n --dees-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.15);\n --dees-shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.15);\n\n /* ========================================\n * Transition Duration Scale\n * ======================================== */\n --dees-transition-fast: 0.1s;\n --dees-transition-default: 0.15s;\n --dees-transition-slow: 0.2s;\n --dees-transition-slower: 0.3s;\n\n /* ========================================\n * Control Height Scale\n * ======================================== */\n --dees-control-height-sm: 32px;\n --dees-control-height-md: 36px;\n --dees-control-height-lg: 40px;\n --dees-control-height-xl: 48px;\n }\n`;\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2J1c2luZXNzL2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "import { finance, general } from \"../index.js\";\nimport { business } from \"../index.js\";\n\nexport type TSocialLinks = {\n type: \"facebook\" | \"twitter\" | \"linkedin\" | string;\n url: string;\n};\n\nexport type TRegistrationDetails = {\n vatId: string;\n registrationId: string;\n registrationName: string;\n};\n\ntype TContactEnvelope = {\n type: TYPE;\n name: string;\n address: business.IAddress;\n description: string;\n legalEntity?: string;\n customerNumber?: string;\n relationship?: \"customer\" | \"supplier\" | \"partner\" | \"employee\" | \"other\";\n\n email?: string;\n phone?: string;\n fax?: string;\n\n logoUrl?: string;\n website?: string;\n\n socials?: TSocialLinks[];\n\n sepaConnection?: finance.ISepaConnection;\n} & FIELDS;\n\nexport type TPerson = TContactEnvelope<\n \"person\",\n {\n surname: string;\n salutation: \"Mr\" | \"Ms\" | \"Mrs\";\n sex: \"male\" | \"female\" | \"other\";\n title: \"Doctor\" | \"Professor\";\n registrationDetails?: TRegistrationDetails;\n legalProxyFor?: {\n type: \"self\" | \"other\";\n contact?: TContact;\n };\n }\n>;\n\ntype TCompanyInCreation = {\n status: \"planned\" | \"founding\";\n};\n\ntype TCompanyActive = {\n status: \"active\";\n foundedDate: general.IDate;\n};\n\ntype TCompanyInLiquidation = {\n status: \"liquidation\";\n foundedDate: general.IDate;\n liquidationDate: general.IDate;\n};\n\ntype TCompanyClosed = {\n status: \"closed\";\n foundedDate: general.IDate;\n liquidationDate: general.IDate;\n closedDate: general.IDate;\n};\n\ntype TCompanyStatus =\n | TCompanyInCreation\n | TCompanyActive\n | TCompanyInLiquidation\n | TCompanyClosed;\n\nexport type TCompany = TContactEnvelope<\n \"company\",\n { registrationDetails: TRegistrationDetails } & TCompanyStatus\n>;\n\nexport type TContact = TPerson | TCompany;\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ29kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YWJhc2UvbW9uZ29kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0YWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YWJhc2Uvb2JqZWN0YWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0c3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YWJhc2Uvb2JqZWN0c3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZGRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kYXRhYmFzZS93cmFwcGVkZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './mongodescriptor.js';\nexport * from './objectaction.js';\nexport * from './objectstatus.js';\nexport * from './wrappeddata.js';\n", "import * as database from \"../database/index.js\";\nimport * as business from \"./index.js\";\n\n/**\n * Base type for common document properties across different document types.\n */\nexport type TDocumentEnvelope = {\n /**\n * Document type identifier\n */\n type: TYPE;\n \n /**\n * Unique identifier for the document\n */\n id: string;\n \n /**\n * Document creation/issuance date as a Unix timestamp\n */\n date: number;\n \n /**\n * Document status in its lifecycle\n */\n status: string;\n \n /**\n * Version information for the document\n */\n versionInfo: {\n /**\n * Should follow semVer format\n */\n version: string;\n \n /**\n * Type of version (draft vs final)\n */\n type: \"draft\" | \"final\";\n \n /**\n * When this version was last modified\n */\n lastModified?: number;\n \n /**\n * Version history for tracking changes\n */\n history?: {\n version: string;\n modifiedAt: number;\n modifiedBy?: string;\n changeDescription?: string;\n }[];\n };\n \n /**\n * Primary language of the document\n */\n language: string;\n \n /**\n * The text displayed at the top of the document, often a greeting or introduction\n */\n topText?: string;\n \n /**\n * The text displayed at the bottom of the document, often a signature or conclusion\n */\n bottomText?: string;\n \n /**\n * Formatting/branding information\n */\n appearance?: {\n /**\n * URL to the logo to be displayed on the document\n */\n logoUrl?: string;\n \n /**\n * Primary color for document styling\n */\n accentColor?: string;\n \n /**\n * Font family for the document\n */\n fontFamily?: string;\n };\n \n /**\n * References to PDF versions of the document\n */\n pdf?: business.IPdf;\n \n /**\n * PDF attachments are additional PDFs attached to the document\n */\n pdfAttachments?: business.IPdf[];\n \n /**\n * Track document lifecycle actions\n */\n objectActions?: database.IObjectAction[];\n} & FIELDS;", "import { finance } from '../index.js';\n\nexport interface ICheckingAccount {\n name: string;\n currency: finance.TCurrency;\n transactions?: finance.ITransaction[];\n}\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9maW5hbmNlL2N1cnJlbmN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "import { business } from '../index.js';\n\nexport interface IExpenseItem {\n description: string;\n asset?: boolean;\n accountingType?: any;\n amount: number;\n taxPercentage: number;\n}\n\nexport interface IVoucher {\n voucherFile?: any;\n date: Date;\n description: string;\n expenseItems: IExpenseItem[];\n contactRef: business.TContact;\n}\n", "import { business, finance } from '../index.js';\nimport type { TCurrency } from './currency.js';\n\n/**\n * Status of an accounting document\n * \n * draft: Document is in preparation (Entwurf)\n * issued: Document has been issued/sent (Ausgestellt)\n * paid: Document has been paid (Bezahlt)\n * canceled: Document has been canceled (Storniert)\n * refunded: Payment has been refunded (Erstattet)\n */\nexport type TAccountingDocStatus = 'draft' | 'issued' | 'paid' | 'canceled' | 'refunded';\n\n/**\n * Type of accounting document\n * \n * invoice: Standard invoice (Rechnung)\n * creditnote: Credit note (Gutschrift als Rechnungskorrektur)\n * debitnote: Debit note (Lastschrift/Belastungsanzeige)\n * self-billed-invoice: Self-billed invoice (Gutschrift im Gutschriftverfahren)\n */\nexport type TAccountingDocType = 'invoice' | 'creditnote' | 'debitnote' | 'self-billed-invoice';\n\n/**\n * Item in an accounting document\n * (Position in einer Rechnung/Gutschrift/Lastschrift)\n */\nexport type TAccountingDocItem = {\n position: number;\n name: string;\n articleNumber?: string;\n unitType: string;\n unitQuantity: number;\n unitNetPrice: number;\n vatPercentage: number;\n};\n\n/**\n * Reference to a related document\n * (Referenz zu einem zugeh\u00F6rigen Dokument)\n */\nexport type TRelatedDocument = {\n /**\n * Type of relationship\n * (Art der Beziehung)\n */\n relationType: 'corrects' | 'replaces' | 'references';\n \n /**\n * ID of the related document\n * (ID des zugeh\u00F6rigen Dokuments)\n */\n documentId: string;\n \n /**\n * Issue date of the related document\n * (Ausstellungsdatum des zugeh\u00F6rigen Dokuments)\n */\n issueDate?: number;\n};\n\n/**\n * Base type for all accounting documents (Basis-Typ f\u00FCr alle Buchungsdokumente)\n */\nexport type TAccountingDocEnvelope<\n TYPE extends TAccountingDocType,\n FIELDS,\n> = business.TLetterEnvelope<\n 'accounting-doc',\n {\n /**\n * Unique identifier of the accounting document\n * (Eindeutige Kennung des Buchungsdokuments)\n */\n accountingDocId: string;\n \n /**\n * Type of accounting document\n * (Art des Buchungsdokuments)\n */\n accountingDocType: TYPE;\n \n /**\n * Current status of the accounting document\n * (Aktueller Status des Buchungsdokuments)\n */\n accountingDocStatus: TAccountingDocStatus;\n \n /**\n * Line items of the accounting document\n * (Positionen des Buchungsdokuments)\n */\n items: TAccountingDocItem[];\n \n /**\n * Period of performance/service delivery\n * (Leistungszeitraum)\n */\n periodOfPerformance?: {\n from: number;\n to: number;\n };\n \n /**\n * Date of delivery or service completion\n * (Lieferdatum oder Leistungsdatum)\n */\n deliveryDate?: number;\n \n /**\n * Payment due in days after issue\n * (Zahlungsfrist in Tagen)\n */\n dueInDays: number;\n \n /**\n * Whether reverse charge applies (VAT liability shifted to recipient)\n * (Steuerschuldnerschaft des Leistungsempf\u00E4ngers)\n */\n reverseCharge: boolean;\n \n /**\n * Reference provided by the buyer to identify the document\n * (Referenz des K\u00E4ufers zur Identifizierung des Dokuments)\n */\n buyerReference?: string;\n \n /**\n * Electronic address information, needed for CII/XRechnung support\n * (Elektronische Adressinformationen, ben\u00F6tigt f\u00FCr CII/XRechnung)\n */\n electronicAddress?: {\n scheme: string;\n value: string;\n };\n \n /**\n * References to related documents (e.g., an invoice referenced by a credit note)\n * (Referenzen zu zugeh\u00F6rigen Dokumenten)\n */\n relatedDocuments?: TRelatedDocument[];\n \n /**\n * Result of document printing/generation\n * (Ergebnis der Dokumentenerstellung)\n */\n printResult?: {\n pdfBufferString: string;\n totalNet: number;\n totalGross: number;\n vatGroups: {\n percentage: number;\n items: TAccountingDocItem[];\n }[];\n };\n \n /**\n * Additional notes or comments\n * (Zus\u00E4tzliche Anmerkungen oder Kommentare)\n */\n notes: string[];\n \n /**\n * Payment options information\n * (Zahlungsoptionen)\n */\n paymentOptions?: finance.IPaymentOptionInfo;\n \n /**\n * Currency used in the document\n * (Verwendete W\u00E4hrung)\n */\n currency: TCurrency;\n } & FIELDS\n>;\n\n/**\n * Credit Note - document reducing amount owed\n * (Gutschrift - Dokument zur Minderung einer Forderung)\n */\nexport type TCreditNote = TAccountingDocEnvelope<'creditnote', {}>;\n\n/**\n * Debit Note - document increasing amount owed\n * (Lastschrift/Belastungsanzeige - Dokument zur Erh\u00F6hung einer Forderung)\n */\nexport type TDebitNote = TAccountingDocEnvelope<'debitnote', {}>;\n\n/**\n * Standard Invoice\n * (Standardrechnung)\n */\nexport type TInvoice = TAccountingDocEnvelope<'invoice', {}>;\n\n/**\n * Self-billed Invoice - invoice created by the buyer\n * (Gutschrift im Gutschriftverfahren - vom K\u00E4ufer erstellte Rechnung)\n */\nexport type TSelfBilledInvoice = TAccountingDocEnvelope<'self-billed-invoice', {}>;\n\n/**\n * Union type for all accounting document types\n * (Vereinigungstyp f\u00FCr alle Buchungsdokumentarten)\n */\nexport type TAccountingDoc = TCreditNote | TDebitNote | TInvoice | TSelfBilledInvoice;", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2ZpbmFuY2UvcGF5bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2twcmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2ZpbmFuY2Uvc3RvY2twcmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9maW5hbmNlL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export * from './checkingaccount.js';\nexport * from './currency.js';\nexport * from './expense.js';\nexport * from './accountingdoc.js';\nexport * from './payment.js';\nexport * from './stockprice.js';\nexport * from './transaction.js';\n", "import * as finance from \"../finance/index.js\";\nimport { type TContact } from \"./contact.js\";\n\n/**\n * Represents the type of employment contract\n */\nexport type TContractType = \n | 'full-time' \n | 'part-time' \n | 'contract' \n | 'freelance'\n | 'internship'\n | 'apprenticeship'\n | 'volunteer'\n | 'temporary'\n | 'seasonal';\n\n/**\n * Represents the work location arrangement\n */\nexport type TWorkLocationType = \n | 'on-site'\n | 'hybrid'\n | 'remote';\n\n/**\n * Represents the experience level required for the job\n */\nexport type TExperienceLevel = \n | 'entry'\n | 'mid'\n | 'senior'\n | 'executive';\n\n/**\n * Represents the status of a job posting\n */\nexport type TJobStatus = \n | 'active' \n | 'closed'\n | 'expired'\n | 'filled'\n | 'archived';\n\n/**\n * Language proficiency levels\n */\nexport type TLanguageProficiency = \n | 'basic' \n | 'intermediate' \n | 'advanced' \n | 'native';\n\n/**\n * Represents a language requirement with name and proficiency level\n */\nexport interface ILanguageRequirement {\n name: string;\n level: TLanguageProficiency;\n}\n\n/**\n * Represents salary information with structure if needed\n */\nexport interface ISalaryInfo {\n min?: number;\n max?: number;\n currency?: finance.TCurrency;\n period?: 'hourly' | 'daily' | 'weekly' | 'monthly' | 'annually';\n}\n\n/**\n * Represents a record in the job history\n */\nexport interface IJobHistory {\n timestamp: string;\n source: string;\n category?: string;\n action?: string;\n details?: string;\n}\n\n/**\n * Universal Job Interface representing a job posting\n */\nexport interface IJob {\n // Core job information\n id: string;\n title: string;\n company: string;\n description: string;\n url: string;\n \n // Location information\n location: string;\n locationType?: TWorkLocationType;\n \n // Dates\n postedDate?: string;\n \n // Compensation\n salary?: ISalaryInfo;\n \n // Classification\n contractType?: TContractType;\n category?: string;\n experienceLevel?: TExperienceLevel;\n \n // Skills and requirements\n skillTags?: string[];\n qualificationTags?: string[];\n languages?: ILanguageRequirement[];\n \n // Contact information\n from?: TContact;\n contact?: TContact;\n \n // Metadata\n source: string;\n status: TJobStatus;\n firstScrapedAt: string;\n lastScrapedAt: string;\n history: IJobHistory[];\n}", "import * as business from \"./index.js\";\nimport * as finance from \"../finance/index.js\";\n\n/**\n * Letter-specific envelope extending the base document type\n */\nexport type TLetterEnvelope = business.TDocumentEnvelope<\n TYPE,\n {\n /**\n * The incident or case ID this letter relates to\n */\n incidenceId: string;\n \n /**\n * The sender of the letter\n */\n from: business.TContact;\n \n /**\n * The recipient of the letter\n */\n to: business.TContact;\n \n /**\n * The legal contact is the contact that is responsible for the letter\n * this is often the same as the from contact, but not always\n */\n legalContact?: business.TContact;\n \n /**\n * Subject line of the letter\n */\n subject: string;\n \n /**\n * Cover sheet configuration for the letter\n */\n coverSheet?: {\n enabled: boolean;\n coverSheetText: string;\n /**\n * if true, the cover sheet will be marked as confidential\n * hinting that only authorized persons should handle the letter\n */\n confidential: boolean;\n };\n } & FIELDS\n>;\n\nexport type TLetterSimple = TLetterEnvelope<\"simple\", {}>;\n\n\nexport type TLetter = TLetterSimple | finance.TInvoice\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvYnVzaW5lc3MvcGRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2J1c2luZXNzL3Byb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './address.js';\nexport * from './contact.js';\nexport * from './document.js';\nexport * from './job.js';\nexport * from './letter.js';\nexport * from './pdf.js';\nexport * from './project.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0aW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NvZGUvY29tbWl0aW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvY29kZS9zdGF0dXNvYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './commitinfo.js';\nexport * from './statusobject.js';", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvY29udGFpbmVyL2NvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sdW1lbW91bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9jb250YWluZXIvdm9sdW1lbW91bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './container.js';\nexport * from './volumemount.js';\n", "export type { IMongoDescriptor } from '../database/index.js';\n\nexport interface ICloudflareDescriptor {\n authToken: string;\n};\n\nexport interface ILetterExpressDescriptor {\n email: string,\n apiToken: string,\n}\n", "import { content } from '../index.js';\n\n/**\n * a general content article:\n * * can be news\n * * can be a productdescription,\n * * can be anything that has text with a title\n */\nexport interface IArticle {\n /**\n * the main url of an article\n */\n url?: string;\n\n /**\n * the mainimage of the article\n */\n featuredImageUrl?: string;\n\n referenceObject?: T;\n\n /**\n * the title of an article\n */\n title: string;\n\n /**\n * the Author of an article\n */\n author: content.IAuthor;\n\n /**\n * the content of an article\n */\n content: string;\n\n /**\n * a timestamp for when the article was written\n */\n timestamp: number;\n\n /**\n * the tags of an article\n */\n tags: string[];\n}\n", "import { general, content } from '../index.js';\n\n/**\n * answers the question \"Who wrote that?\"\n */\nexport interface IAuthor {\n /**\n * the first name of an author\n */\n firstName: string;\n\n /**\n * the surname of an author\n */\n surName: string;\n\n /**\n * the birthday of an author\n */\n birthday: general.IDate;\n\n /**\n * articles of an author\n */\n articles: content.IArticle[];\n}\n", "import { type IArticle } from './article.js';\n\n/**\n * a set of articles that together form a body of documentation\n */\nexport interface IDocumentationSet {\n id: string;\n creationTimestamp: number;\n articles: IArticle[];\n}\n", "export * from './article.js';\nexport * from './author.js';\nexport * from './documentationset.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2dlbmVyYWwvZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2dlbmVyYWwvdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './date.js';\nexport * from './time.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25ldHdvcmsvY2VydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "import { type ICert } from './cert.js';\n\nexport class ICnameDescriptor {\n /**\n * the original domain that is being cnamed\n */\n cnamedDomain: string;\n\n /**\n * the cname proxy domain\n * the domain that is used for the cname dns entry\n */\n cnameProxyDomain: string;\n\n /**\n * the internal target url\n */\n targetUrl: string;\n\n /**\n * a description\n */\n description: string;\n\n /**\n * the ssl certificate\n */\n sslCertificate?: ICert;\n}\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9kZXZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9kbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zY2hhbGxlbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9kbnNjaGFsbGVuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zY29udmVuaWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9uZXR3b3JrL2Ruc2NvbnZlbmllbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluZGVsZWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25ldHdvcmsvZG9tYWluZGVsZWdhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9qd3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya25vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9uZXR3b3JrL25ldHdvcmtub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25ldHdvcmsvcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJzZXByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9yZXZlcnNlcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbmV0d29yay9zc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './cert.js';\nexport * from './cname.js';\nexport * from './device.js';\nexport * from './dns.js';\nexport * from './dnschallenge.js';\nexport * from './dnsconvenience.js';\nexport * from './domaindelegation.js';\nexport * from './jwt.js';\nexport * from './networknode.js';\nexport * from './request.js';\nexport * from './reverseproxy.js';\nexport * from './ssh.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3NhYXMvcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "import { type IProduct } from './product.js';\n\nexport interface ISubscriptionPlan {\n name: string;\n unit: 'device' | 'user';\n quantity: boolean;\n availableTerms: {\n period: 'daily' | 'weekly' | 'monthly' | 'yearly';\n price: number;\n currency: 'EUR' | 'USD';\n }[];\n containedProducts: IProduct[];\n limits: any;\n}\n", "export * from './subscriptionplan.js';\nexport * from './product.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9zdG9yYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3dlYnNpdGUvbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy93ZWJzaXRlL21lbnVpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2Jsb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvd2Vic2l0ZS9saW5rYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './link.js';\nexport * from './menuitem.js';\nexport * from './linkblock.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWZlc3Qub3duLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdHlwZWZlc3Qub3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "// Business\nimport * as business from './business/index.js';\n\n// Code\nimport * as code from './code/index.js';\n\n// Container\nimport * as container from './container/index.js';\n\n// Database\nimport * as database from './database/index.js';\n\n// Descriptors \nimport * as descriptors from './descriptors/index.js';\n\n// Finance\nimport * as finance from './finance/index.js';\n\n// Content\nimport * as content from './content/index.js';\n\n// General\nimport * as general from './general/index.js';\n\n// Network\nimport * as network from './network/index.js';\n\n// SaaS\nimport * as saas from './saas/index.js';\n\n// Storage\nimport * as storage from './storage/index.js';\n\n// Website\nimport * as website from './website/index.js';\n\nexport {\n business,\n container,\n code,\n database,\n descriptors,\n finance,\n content,\n general,\n network,\n saas,\n storage,\n website,\n};\n\nimport type * as typeFest from 'type-fest';\nimport * as typeFestOwn from './typefest.own.js';\n\nexport { type typeFest, type typeFestOwn };\n", "// @push.rocks scope\nimport * as smartpromise from '@push.rocks/smartpromise';\n\nexport {\n smartpromise,\n}\n\n// @tsclass scope\nimport * as tsclass from '@tsclass/tsclass';\n\nexport {\n tsclass\n}\n", "import { html } from '@design.estate/dees-element';\nimport * as plugins from '../../00plugins.js';\n\nimport { DeesContextmenu } from '../dees-contextmenu/dees-contextmenu.js';\n\nexport const demoFunc = () => html`\n\n
      \n \n
      {\n DeesContextmenu.openContextMenuWithOptions(eventArg, [\n {\n name: 'File',\n iconName: 'fileText',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'New', iconName: 'filePlus', shortcut: 'Cmd+N', action: async () => console.log('New file') },\n { name: 'Open', iconName: 'folderOpen', shortcut: 'Cmd+O', action: async () => console.log('Open file') },\n { name: 'Save', iconName: 'save', shortcut: 'Cmd+S', action: async () => console.log('Save') },\n { divider: true },\n { name: 'Export as PDF', iconName: 'download', action: async () => console.log('Export PDF') },\n { name: 'Export as HTML', iconName: 'code', action: async () => console.log('Export HTML') },\n ]\n },\n {\n name: 'Edit',\n iconName: 'edit3',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Cut', iconName: 'scissors', shortcut: 'Cmd+X', action: async () => console.log('Cut') },\n { name: 'Copy', iconName: 'copy', shortcut: 'Cmd+C', action: async () => console.log('Copy') },\n { name: 'Paste', iconName: 'clipboard', shortcut: 'Cmd+V', action: async () => console.log('Paste') },\n { divider: true },\n { name: 'Find', iconName: 'search', shortcut: 'Cmd+F', action: async () => console.log('Find') },\n { name: 'Replace', iconName: 'repeat', shortcut: 'Cmd+H', action: async () => console.log('Replace') },\n ]\n },\n {\n name: 'View',\n iconName: 'eye',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Zoom In', iconName: 'zoomIn', shortcut: 'Cmd++', action: async () => console.log('Zoom in') },\n { name: 'Zoom Out', iconName: 'zoomOut', shortcut: 'Cmd+-', action: async () => console.log('Zoom out') },\n { name: 'Reset Zoom', iconName: 'maximize2', shortcut: 'Cmd+0', action: async () => console.log('Reset zoom') },\n { divider: true },\n { name: 'Full Screen', iconName: 'maximize', shortcut: 'F11', action: async () => console.log('Full screen') },\n ]\n },\n { divider: true },\n {\n name: 'Settings',\n iconName: 'settings',\n action: async () => console.log('Settings')\n },\n {\n name: 'Help',\n iconName: 'helpCircle',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Documentation', iconName: 'book', action: async () => console.log('Documentation') },\n { name: 'Keyboard Shortcuts', iconName: 'keyboard', action: async () => console.log('Shortcuts') },\n { divider: true },\n { name: 'About', iconName: 'info', action: async () => console.log('About') },\n ]\n }\n ]);\n }}>\n

      Right-click anywhere in this area

      \n

      A context menu with nested submenus will appear

      \n
      \n
      \n \n {\n DeesContextmenu.openContextMenuWithOptions(eventArg, [\n {\n name: 'Button Actions',\n iconName: 'mousePointer',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Click', iconName: 'mouse', action: async () => console.log('Click action') },\n { name: 'Double Click', iconName: 'zap', action: async () => console.log('Double click') },\n { name: 'Long Press', iconName: 'clock', action: async () => console.log('Long press') },\n ]\n },\n {\n name: 'Button State',\n iconName: 'toggleLeft',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Enable', iconName: 'checkCircle', action: async () => console.log('Enable') },\n { name: 'Disable', iconName: 'xCircle', action: async () => console.log('Disable') },\n { divider: true },\n { name: 'Show', iconName: 'eye', action: async () => console.log('Show') },\n { name: 'Hide', iconName: 'eyeOff', action: async () => console.log('Hide') },\n ]\n },\n { divider: true },\n {\n name: 'Disabled Action',\n iconName: 'ban',\n disabled: true,\n action: async () => console.log('This should not run'),\n },\n {\n name: 'Properties',\n iconName: 'settings',\n action: async () => console.log('Button properties'),\n },\n ]);\n }}>Right-click on this button\n \n\n \n
      {\n DeesContextmenu.openContextMenuWithOptions(eventArg, [\n {\n name: 'Format',\n iconName: 'type',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Bold', iconName: 'bold', shortcut: 'Cmd+B', action: async () => console.log('Bold') },\n { name: 'Italic', iconName: 'italic', shortcut: 'Cmd+I', action: async () => console.log('Italic') },\n { name: 'Underline', iconName: 'underline', shortcut: 'Cmd+U', action: async () => console.log('Underline') },\n { divider: true },\n { name: 'Font Size', iconName: 'type', action: async () => console.log('Font size menu') },\n { name: 'Font Color', iconName: 'palette', action: async () => console.log('Font color menu') },\n ]\n },\n {\n name: 'Transform',\n iconName: 'shuffle',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'To Uppercase', iconName: 'arrowUp', action: async () => console.log('Uppercase') },\n { name: 'To Lowercase', iconName: 'arrowDown', action: async () => console.log('Lowercase') },\n { name: 'Capitalize', iconName: 'type', action: async () => console.log('Capitalize') },\n ]\n },\n { divider: true },\n {\n name: 'Delete',\n iconName: 'trash2',\n action: async () => console.log('Delete')\n }\n ]);\n }}>\n

      Advanced Nested Menu Example

      \n

      This shows deeply nested submenus and various formatting options

      \n
      \n
      \n \n \n {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'New Project', iconName: 'folderPlus', shortcut: 'Cmd+Shift+N', action: async () => console.log('New project') },\n { name: 'Open Project', iconName: 'folderOpen', shortcut: 'Cmd+Shift+O', action: async () => console.log('Open project') },\n { divider: true },\n { name: 'Recent Projects', iconName: 'clock', action: async () => {}, submenu: [\n { name: 'Project Alpha', action: async () => console.log('Open Alpha') },\n { name: 'Project Beta', action: async () => console.log('Open Beta') },\n { name: 'Project Gamma', action: async () => console.log('Open Gamma') },\n ]},\n ]\n },\n {\n name: 'Tools',\n iconName: 'tool',\n action: async () => {}, // Parent items with submenus still need an action\n submenu: [\n { name: 'Terminal', iconName: 'terminal', shortcut: 'Cmd+T', action: async () => console.log('Terminal') },\n { name: 'Console', iconName: 'monitor', shortcut: 'Cmd+K', action: async () => console.log('Console') },\n { divider: true },\n { name: 'Extensions', iconName: 'package', action: async () => console.log('Extensions') },\n ]\n },\n { divider: true },\n {\n name: 'Preferences',\n iconName: 'sliders',\n action: async () => console.log('Preferences'),\n },\n ]}\n >\n \n
      \n`;", "import { customElement, DeesElement, domtools, type TemplateResult, html, property, type CSSResult, state, } from '@design.estate/dees-element';\nimport { zIndexLayers, zIndexRegistry } from '../../00zindex.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-windowlayer': DeesWindowLayer;\n }\n}\n\nexport interface IOptions_DeesWindowLayer {\n blur: boolean;\n}\n\n@customElement('dees-windowlayer')\nexport class DeesWindowLayer extends DeesElement {\n // STATIC\n public static demo = () => html``;\n public static demoGroups = ['Overlay'];\n\n public static async createAndShow(optionsArg?: IOptions_DeesWindowLayer) {\n const domtoolsInstance = domtools.DomTools.getGlobalDomToolsSync();\n const windowLayer = new DeesWindowLayer();\n windowLayer.options = {\n ...windowLayer.options,\n ...optionsArg,\n }\n document.body.append(windowLayer);\n await domtoolsInstance.convenience.smartdelay.delayFor(0);\n windowLayer.show();\n return windowLayer;\n }\n\n @state()\n accessor options: IOptions_DeesWindowLayer = {\n blur: false\n };\n\n @state()\n accessor backdropZIndex: number = 1000;\n\n @state()\n accessor contentZIndex: number = 1001;\n\n // INSTANCE\n @property({\n type: Boolean\n })\n accessor visible = false;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public render(): TemplateResult {\n return html`\n ${domtools.elementBasic.styles}\n \n
      \n
      \n
      \n \n
      \n `;\n }\n\n firstUpdated() {\n setTimeout(() => {\n this.visible = true;\n }, 100);\n }\n\n dispatchClicked() {\n this.dispatchEvent(new CustomEvent('clicked'));\n }\n\n public toggleVisibility () {\n this.visible = !this.visible;\n }\n \n public getContentZIndex(): number {\n return this.contentZIndex;\n }\n\n public async show() {\n const domtools = await this.domtoolsPromise;\n \n // Get z-indexes from registry\n this.backdropZIndex = zIndexRegistry.getNextZIndex();\n this.contentZIndex = zIndexRegistry.getNextZIndex();\n \n // Register this element\n zIndexRegistry.register(this, this.backdropZIndex);\n \n await domtools.convenience.smartdelay.delayFor(0);\n this.visible = true;\n }\n\n public async hide() {\n const domtools = await this.domtoolsPromise;\n await domtools.convenience.smartdelay.delayFor(0);\n this.visible = false;\n }\n\n public async destroy() {\n const domtools = await this.domtoolsPromise;\n await this.hide();\n await domtools.convenience.smartdelay.delayFor(300);\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n \n this.remove();\n }\n}\n", "/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = !0, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\nfunction _wrapRegExp() {\n _wrapRegExp = function (e, r) {\n return new BabelRegExp(e, void 0, r);\n };\n var e = RegExp.prototype,\n r = new WeakMap();\n function BabelRegExp(e, t, p) {\n var o = RegExp(e, t);\n return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype);\n }\n function buildGroups(e, t) {\n var p = r.get(t);\n return Object.keys(p).reduce(function (r, t) {\n var o = p[t];\n if (\"number\" == typeof o) r[t] = e[o];else {\n for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++;\n r[t] = e[o[i]];\n }\n return r;\n }, Object.create(null));\n }\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) {\n var t = e.exec.call(this, r);\n if (t) {\n t.groups = buildGroups(t, this);\n var p = t.indices;\n p && (p.groups = buildGroups(p, this));\n }\n return t;\n }, BabelRegExp.prototype[Symbol.replace] = function (t, p) {\n if (\"string\" == typeof p) {\n var o = r.get(this);\n return e[Symbol.replace].call(this, t, p.replace(/\\$<([^>]+)(>|$)/g, function (e, r, t) {\n if (\"\" === t) return e;\n var p = o[r];\n return Array.isArray(p) ? \"$\" + p.join(\"$\") : \"number\" == typeof p ? \"$\" + p : \"\";\n }));\n }\n if (\"function\" == typeof p) {\n var i = this;\n return e[Symbol.replace].call(this, t, function () {\n var e = arguments;\n return \"object\" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e);\n });\n }\n return e[Symbol.replace].call(this, t, p);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nvar noop = function noop() {};\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {} // eslint-disable-line no-empty\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _ht;\nvar G = /fa(k|kd|s|r|l|t|d|dr|dl|dt|b|slr|slpr|wsb|tl|ns|nds|es|gt|jr|jfr|jdr|usb|ufsb|udsb|cr|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\\-\\ ]/,\n M = /Font ?Awesome ?([567 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit|Notdog Duo|Notdog|Chisel|Etch|Graphite|Thumbprint|Jelly Fill|Jelly Duo|Jelly|Utility|Utility Fill|Utility Duo|Slab Press|Slab|Whiteboard)?.*/i;\nvar Q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n graphite: {\n \"fa-thin\": \"thin\",\n fagt: \"thin\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n },\n X = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n Z = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-graphite\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\nvar i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n h = \"etch\",\n n = \"graphite\",\n g = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n m = \"notdog\",\n e = \"notdog-duo\",\n y = \"slab\",\n p = \"slab-press\",\n s = \"thumbprint\",\n w = \"utility\",\n a = \"utility-duo\",\n x = \"utility-fill\",\n b = \"whiteboard\",\n c = \"Classic\",\n I = \"Duotone\",\n F = \"Sharp\",\n v = \"Sharp Duotone\",\n S = \"Chisel\",\n A = \"Etch\",\n P = \"Graphite\",\n j = \"Jelly\",\n B = \"Jelly Duo\",\n N = \"Jelly Fill\",\n k = \"Notdog\",\n D = \"Notdog Duo\",\n T = \"Slab\",\n C = \"Slab Press\",\n W = \"Thumbprint\",\n K = \"Utility\",\n R = \"Utility Duo\",\n L = \"Utility Fill\",\n U = \"Whiteboard\",\n dt = [i, t, d, l, f, h, n, g, o, u, m, e, y, p, s, w, a, x, b],\n ht = (_ht = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ht, i, c), t, I), d, F), l, v), f, S), h, A), n, P), g, j), o, B), u, N), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ht, m, k), e, D), y, T), p, C), s, W), w, K), a, R), x, L), b, U));\nvar yt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n graphite: {\n 100: \"fagt\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\nvar Kt = {\n \"Font Awesome 7 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 7 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 7 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 7 Duotone\": {\n 900: \"fad\",\n 400: \"fadr\",\n normal: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n \"Font Awesome 7 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 7 Sharp Duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n normal: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n \"Font Awesome 7 Jelly\": {\n 400: \"fajr\",\n normal: \"fajr\"\n },\n \"Font Awesome 7 Jelly Fill\": {\n 400: \"fajfr\",\n normal: \"fajfr\"\n },\n \"Font Awesome 7 Jelly Duo\": {\n 400: \"fajdr\",\n normal: \"fajdr\"\n },\n \"Font Awesome 7 Slab\": {\n 400: \"faslr\",\n normal: \"faslr\"\n },\n \"Font Awesome 7 Slab Press\": {\n 400: \"faslpr\",\n normal: \"faslpr\"\n },\n \"Font Awesome 7 Thumbprint\": {\n 300: \"fatl\",\n normal: \"fatl\"\n },\n \"Font Awesome 7 Notdog\": {\n 900: \"fans\",\n normal: \"fans\"\n },\n \"Font Awesome 7 Notdog Duo\": {\n 900: \"fands\",\n normal: \"fands\"\n },\n \"Font Awesome 7 Etch\": {\n 900: \"faes\",\n normal: \"faes\"\n },\n \"Font Awesome 7 Graphite\": {\n 100: \"fagt\",\n normal: \"fagt\"\n },\n \"Font Awesome 7 Chisel\": {\n 400: \"facr\",\n normal: \"facr\"\n },\n \"Font Awesome 7 Whiteboard\": {\n 600: \"fawsb\",\n normal: \"fawsb\"\n },\n \"Font Awesome 7 Utility\": {\n 600: \"fausb\",\n normal: \"fausb\"\n },\n \"Font Awesome 7 Utility Duo\": {\n 600: \"faudsb\",\n normal: \"faudsb\"\n },\n \"Font Awesome 7 Utility Fill\": {\n 600: \"faufsb\",\n normal: \"faufsb\"\n }\n };\nvar Et = new Map([[\"classic\", {\n defaultShortPrefixId: \"fas\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\", \"brands\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"duotone\", {\n defaultShortPrefixId: \"fad\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp\", {\n defaultShortPrefixId: \"fass\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp-duotone\", {\n defaultShortPrefixId: \"fasds\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"chisel\", {\n defaultShortPrefixId: \"facr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"etch\", {\n defaultShortPrefixId: \"faes\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"graphite\", {\n defaultShortPrefixId: \"fagt\",\n defaultStyleId: \"thin\",\n styleIds: [\"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 100\n }], [\"jelly\", {\n defaultShortPrefixId: \"fajr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"jelly-duo\", {\n defaultShortPrefixId: \"fajdr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"jelly-fill\", {\n defaultShortPrefixId: \"fajfr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"notdog\", {\n defaultShortPrefixId: \"fans\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"notdog-duo\", {\n defaultShortPrefixId: \"fands\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"slab\", {\n defaultShortPrefixId: \"faslr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"slab-press\", {\n defaultShortPrefixId: \"faslpr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"thumbprint\", {\n defaultShortPrefixId: \"fatl\",\n defaultStyleId: \"light\",\n styleIds: [\"light\"],\n futureStyleIds: [],\n defaultFontWeight: 300\n }], [\"utility\", {\n defaultShortPrefixId: \"fausb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"utility-duo\", {\n defaultShortPrefixId: \"faudsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"utility-fill\", {\n defaultShortPrefixId: \"faufsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"whiteboard\", {\n defaultShortPrefixId: \"fawsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }]]),\n Mt = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n graphite: {\n thin: \"fagt\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\nvar Ht = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"],\n Qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Xt = [\"kit\"];\nvar J = \"kit\",\n r = \"kit-duotone\",\n E = \"Kit\",\n _ = \"Kit Duotone\",\n ll = _defineProperty(_defineProperty({}, J, E), r, _);\nvar sl = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n};\nvar hl = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n },\n nl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\nvar ml = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\nvar _wt;\nvar t$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n f$1 = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-graphite\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\nvar h$1 = \"classic\",\n o$1 = \"duotone\",\n n$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n u$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"graphite\",\n m$1 = \"jelly\",\n a$1 = \"jelly-duo\",\n p$1 = \"jelly-fill\",\n w$1 = \"notdog\",\n e$1 = \"notdog-duo\",\n b$1 = \"slab\",\n c$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n x$1 = \"utility\",\n i$1 = \"utility-duo\",\n I$1 = \"utility-fill\",\n F$1 = \"whiteboard\",\n v$1 = \"Classic\",\n S$1 = \"Duotone\",\n A$1 = \"Sharp\",\n P$1 = \"Sharp Duotone\",\n j$1 = \"Chisel\",\n B$1 = \"Etch\",\n N$1 = \"Graphite\",\n k$1 = \"Jelly\",\n D$1 = \"Jelly Duo\",\n C$1 = \"Jelly Fill\",\n T$1 = \"Notdog\",\n L$1 = \"Notdog Duo\",\n W$1 = \"Slab\",\n R$1 = \"Slab Press\",\n K$1 = \"Thumbprint\",\n U$1 = \"Utility\",\n J$1 = \"Utility Duo\",\n E$1 = \"Utility Fill\",\n _$1 = \"Whiteboard\",\n wt$1 = (_wt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_wt, h$1, v$1), o$1, S$1), n$1, A$1), s$1, P$1), u$1, j$1), g$1, B$1), y$1, N$1), m$1, k$1), a$1, D$1), p$1, C$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_wt, w$1, T$1), e$1, L$1), b$1, W$1), c$1, R$1), r$1, K$1), x$1, U$1), i$1, J$1), I$1, E$1), F$1, _$1));\nvar G$1 = \"kit\",\n d$1 = \"kit-duotone\",\n M$1 = \"Kit\",\n O = \"Kit Duotone\",\n dl$1 = _defineProperty(_defineProperty({}, G$1, M$1), d$1, O);\nvar Hl = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n graphite: {\n \"fa-thin\": \"fagt\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n Y$1 = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n graphite: [\"fagt\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Xl = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n graphite: {\n fagt: \"fa-thin\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n V$1 = [\"fa-solid\", \"fa-regular\", \"fa-light\", \"fa-thin\", \"fa-duotone\", \"fa-brands\", \"fa-semibold\"],\n lo = [\"fa\", \"fas\", \"far\", \"fal\", \"fat\", \"fad\", \"fadr\", \"fadl\", \"fadt\", \"fab\", \"fass\", \"fasr\", \"fasl\", \"fast\", \"fasds\", \"fasdr\", \"fasdl\", \"fasdt\", \"faslr\", \"faslpr\", \"fawsb\", \"fatl\", \"fans\", \"fands\", \"faes\", \"fagt\", \"fajr\", \"fajfr\", \"fajdr\", \"facr\", \"fausb\", \"faudsb\", \"faufsb\"].concat(f$1, V$1),\n $ = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n z$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n q$1 = z$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n H$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n so = [].concat(_toConsumableArray(Object.keys(Y$1)), $, H$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY]).concat(z$1.map(function (l) {\n return \"\".concat(l, \"x\");\n })).concat(q$1.map(function (l) {\n return \"w-\".concat(l);\n }));\nvar fo = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n };\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PSEUDO_ELEMENTS = ['::before', '::after', ':before', ':after'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e$$1) {\n return false;\n }\n}();\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n}\nvar _PREFIX_TO_STYLE = _objectSpread2({}, Q);\n\n// We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n// {'fa-duotone': 'duotone'}\n_PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n}), Q[i]), Qt['kit']), Qt['kit-duotone']);\nvar PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\nvar _STYLE_TO_PREFIX = _objectSpread2({}, Mt);\n\n// We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n}), _STYLE_TO_PREFIX[i]), ml['kit']), ml['kit-duotone']);\nvar STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\nvar _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Xl);\n_PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), nl['kit']);\nvar PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\nvar _LONG_STYLE_TO_PREFIX = _objectSpread2({}, Hl);\n_LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), sl['kit']);\nvar LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\nvar ICON_SELECTION_SYNTAX_PATTERN = G;\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = M;\nvar _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, yt);\nvar FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = X;\nvar RESERVED_CLASSES = [].concat(_toConsumableArray(Xt), _toConsumableArray(so));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n if (element) {\n return element.getAttribute(attr);\n }\n}\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-search-pseudo-elements-warnings', 'searchPseudoElementsWarnings'], ['data-search-pseudo-elements-full-scan', 'searchPseudoElementsFullScan'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n var val = coerce(getAttrConfig(attr));\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\nvar _default = {\n styleDefault: 'solid',\n familyDefault: i,\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n searchPseudoElements: false,\n searchPseudoElementsWarnings: true,\n searchPseudoElementsFullScan: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\n// familyPrefix is deprecated but we must still support it if present\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n});\n\n// familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d$2 = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 'Font Awesome 7 Free';\\n --fa-font-regular: normal 400 1em/1 'Font Awesome 7 Free';\\n --fa-font-light: normal 300 1em/1 'Font Awesome 7 Pro';\\n --fa-font-thin: normal 100 1em/1 'Font Awesome 7 Pro';\\n --fa-font-duotone: normal 900 1em/1 'Font Awesome 7 Duotone';\\n --fa-font-duotone-regular: normal 400 1em/1 'Font Awesome 7 Duotone';\\n --fa-font-duotone-light: normal 300 1em/1 'Font Awesome 7 Duotone';\\n --fa-font-duotone-thin: normal 100 1em/1 'Font Awesome 7 Duotone';\\n --fa-font-brands: normal 400 1em/1 'Font Awesome 7 Brands';\\n --fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 7 Sharp';\\n --fa-font-sharp-regular: normal 400 1em/1 'Font Awesome 7 Sharp';\\n --fa-font-sharp-light: normal 300 1em/1 'Font Awesome 7 Sharp';\\n --fa-font-sharp-thin: normal 100 1em/1 'Font Awesome 7 Sharp';\\n --fa-font-sharp-duotone-solid: normal 900 1em/1 'Font Awesome 7 Sharp Duotone';\\n --fa-font-sharp-duotone-regular: normal 400 1em/1 'Font Awesome 7 Sharp Duotone';\\n --fa-font-sharp-duotone-light: normal 300 1em/1 'Font Awesome 7 Sharp Duotone';\\n --fa-font-sharp-duotone-thin: normal 100 1em/1 'Font Awesome 7 Sharp Duotone';\\n --fa-font-slab-regular: normal 400 1em/1 'Font Awesome 7 Slab';\\n --fa-font-slab-press-regular: normal 400 1em/1 'Font Awesome 7 Slab Press';\\n --fa-font-whiteboard-semibold: normal 600 1em/1 'Font Awesome 7 Whiteboard';\\n --fa-font-thumbprint-light: normal 300 1em/1 'Font Awesome 7 Thumbprint';\\n --fa-font-notdog-solid: normal 900 1em/1 'Font Awesome 7 Notdog';\\n --fa-font-notdog-duo-solid: normal 900 1em/1 'Font Awesome 7 Notdog Duo';\\n --fa-font-etch-solid: normal 900 1em/1 'Font Awesome 7 Etch';\\n --fa-font-graphite-thin: normal 100 1em/1 'Font Awesome 7 Graphite';\\n --fa-font-jelly-regular: normal 400 1em/1 'Font Awesome 7 Jelly';\\n --fa-font-jelly-fill-regular: normal 400 1em/1 'Font Awesome 7 Jelly Fill';\\n --fa-font-jelly-duo-regular: normal 400 1em/1 'Font Awesome 7 Jelly Duo';\\n --fa-font-chisel-regular: normal 400 1em/1 'Font Awesome 7 Chisel';\\n --fa-font-utility-semibold: normal 600 1em/1 'Font Awesome 7 Utility';\\n --fa-font-utility-duo-semibold: normal 600 1em/1 'Font Awesome 7 Utility Duo';\\n --fa-font-utility-fill-semibold: normal 600 1em/1 'Font Awesome 7 Utility Fill';\\n}\\n\\n.svg-inline--fa {\\n box-sizing: content-box;\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n width: var(--fa-width, 1.25em);\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285714em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left,\\n.svg-inline--fa .fa-pull-start {\\n float: inline-start;\\n margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-pull-right,\\n.svg-inline--fa .fa-pull-end {\\n float: inline-end;\\n margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: var(--fa-width, 1.25em);\\n}\\n.fa-layers .svg-inline--fa {\\n inset: 0;\\n margin: auto;\\n position: absolute;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-counter-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xs {\\n font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-sm {\\n font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-lg {\\n font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xl {\\n font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-2xl {\\n font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-width-auto {\\n --fa-width: auto;\\n}\\n\\n.fa-fw,\\n.fa-width-fixed {\\n --fa-width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-inline-start: var(--fa-li-margin, 2.5em);\\n padding-inline-start: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n/* Heads Up: Bordered Icons will not be supported in the future!\\n - This feature will be deprecated in the next major release of Font Awesome (v8)!\\n - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8.\\n*/\\n/* Notes:\\n* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size)\\n* --@{v.$css-prefix}-border-padding =\\n ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment)\\n ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon)\\n*/\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.0625em);\\n box-sizing: var(--fa-border-box-sizing, content-box);\\n padding: var(--fa-border-padding, 0.1875em 0.25em);\\n}\\n\\n.fa-pull-left,\\n.fa-pull-start {\\n float: inline-start;\\n margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right,\\n.fa-pull-end {\\n float: inline-end;\\n margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n .fa-bounce,\\n .fa-fade,\\n .fa-beat-fade,\\n .fa-flip,\\n .fa-pulse,\\n .fa-shake,\\n .fa-spin,\\n .fa-spin-pulse {\\n animation: none !important;\\n transition: none !important;\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1);\\n }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n transform: rotate(-15deg);\\n }\\n 4% {\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n transform: rotate(18deg);\\n }\\n 16% {\\n transform: rotate(-22deg);\\n }\\n 20% {\\n transform: rotate(22deg);\\n }\\n 32% {\\n transform: rotate(-12deg);\\n }\\n 36% {\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.svg-inline--fa.fa-inverse {\\n fill: var(--fa-inverse, #fff);\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n line-height: 2em;\\n position: relative;\\n vertical-align: middle;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n --fa-width: 1.25em;\\n height: 1em;\\n width: var(--fa-width);\\n}\\n.svg-inline--fa.fa-stack-2x {\\n --fa-width: 2.5em;\\n height: 2em;\\n width: var(--fa-width);\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n inset: 0;\\n margin: auto;\\n position: absolute;\\n z-index: var(--fa-stack-z-index, auto);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n}\nvar _cssInserted = false;\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w$2 = WINDOW || {};\nif (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\nif (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\nif (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w$2[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\nvar _listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', _listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\nvar loaded = false;\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', _listener);\n}\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n return result;\n};\n\n/**\n * Return hexadecimal string for a unicode character\n * Returns `null` when more than one character (not bytes!) are passed\n * For example: 'K' \u2192 '7B'\n */\nfunction toHex(unicode) {\n if (_toConsumableArray(unicode).length !== 1) return null;\n return unicode.codePointAt(0).toString(16);\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n}\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar MONO = 0x1;\nvar DUO = 0x2;\n\n// New v7 compatible matchers using the style attribute to determine layer membership\nvar modernMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\".*path.*d=\"([^\"]*)\"/, {\n d2: 2,\n d1: 3\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\"/, {\n d2: 2\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path fill=\"currentColor\".*d=\"([^\"]+)\"/, {\n d1: 1\n})]];\n\n// Old <= v6 matchers, these should rarely get used.\n//\n// Why are there so many? Over the lifecycle of version 5 and 6 we modified the\n// syntax for our source SVG files several times. These patterns match the\n// historical record and attempt to handle backwards-compatibility in rare edge\n// cases (loading version 6 SVG source files using the version 7 SVG parser)\nvar legacyMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr2: 1,\n d2: 2,\n attr1: 3,\n d1: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2,\n attr2: 3,\n d2: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr2: 1,\n d2: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n d2: 1,\n attr2: 2,\n d1: 3,\n attr1: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n d1: 1,\n attr1: 2,\n d2: 3,\n attr2: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n d1: 1,\n attr1: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n d2: 1,\n attr2: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*path d=\"([^\"]+)\"/, {\n d1: 1,\n d2: 2\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\"/, {\n d1: 1\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path style=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2\n})]];\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE);\nvar PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce(function (acc, familyId) {\n acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]);\n return acc;\n}, {});\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o$$1, style, prefix) {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n if (icon[2]) {\n var aliases = icon[2].filter(function (a$$1) {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n if (icon[2]) {\n var aliases = icon[2].filter(function (a$$1) {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n });\n\n // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c$$1) {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getFamilyId(values) {\n var family = i;\n var famProps = FAMILY_NAMES.reduce(function (acc, familyId) {\n acc[familyId] = \"\".concat(config.cssPrefix, \"-\").concat(familyId);\n return acc;\n }, {});\n dt.forEach(function (familyId) {\n if (values.includes(famProps[familyId]) || values.some(function (v$$1) {\n return PREFIXES_FOR_FAMILY[familyId].includes(v$$1);\n })) {\n family = familyId;\n }\n });\n return family;\n}\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? i : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n\n // handles the exception of passing in only a family of 'duotone' with no style\n if (family === t && !styleOrPrefix) {\n return 'fad';\n }\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n var result = prefix || defined || null;\n return result;\n}\nfunction moveNonFaClassesToRest(classNames) {\n var rest = [];\n var iconName = null;\n classNames.forEach(function (cls) {\n var result = getIconName(config.cssPrefix, cls);\n if (result) {\n iconName = result;\n } else if (cls) {\n rest.push(cls);\n }\n });\n return {\n iconName: iconName,\n rest: rest\n };\n}\nfunction sortedUniqueValues(arr) {\n return arr.sort().filter(function (value, index, arr) {\n return arr.indexOf(value) === index;\n });\n}\nvar _faCombinedClasses = lo.concat(Ht);\nfunction getCanonicalIcon(values) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var givenPrefix = null;\n var faStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n return _faCombinedClasses.includes(cls);\n }));\n var nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n return !_faCombinedClasses.includes(cls);\n }));\n var faStyles = faStyleOrFamilyClasses.filter(function (cls) {\n givenPrefix = cls;\n return !Z.includes(cls);\n });\n var _faStyles = _slicedToArray(faStyles, 1),\n _faStyles$ = _faStyles[0],\n styleFromValues = _faStyles$ === void 0 ? null : _faStyles$;\n var family = getFamilyId(faStyleOrFamilyClasses);\n var canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, {\n prefix: getCanonicalPrefix(styleFromValues, {\n family: family\n })\n });\n return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({\n values: values,\n family: family,\n styles: styles,\n config: config,\n canonical: canonical,\n givenPrefix: givenPrefix\n })), applyShimAndAlias(skipLookups, givenPrefix, canonical));\n}\nfunction applyShimAndAlias(skipLookups, givenPrefix, canonical) {\n var prefix = canonical.prefix,\n iconName = canonical.iconName;\n if (skipLookups || !prefix || !iconName) {\n return {\n prefix: prefix,\n iconName: iconName\n };\n }\n var shim = givenPrefix === 'fa' ? byOldName(iconName) : {};\n var aliasIconName = byAlias(prefix, iconName);\n iconName = shim.iconName || aliasIconName || iconName;\n prefix = shim.prefix || prefix;\n if (prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n prefix = 'fas';\n }\n return {\n prefix: prefix,\n iconName: iconName\n };\n}\nvar newCanonicalFamilies = dt.filter(function (familyId) {\n return familyId !== i || familyId !== t;\n});\nvar newCanonicalStyles = Object.keys(Xl).filter(function (key) {\n return key !== i;\n}).map(function (key) {\n return Object.keys(Xl[key]);\n}).flat();\nfunction getDefaultCanonicalPrefix(prefixOptions) {\n var values = prefixOptions.values,\n family = prefixOptions.family,\n canonical = prefixOptions.canonical,\n _prefixOptions$givenP = prefixOptions.givenPrefix,\n givenPrefix = _prefixOptions$givenP === void 0 ? '' : _prefixOptions$givenP,\n _prefixOptions$styles = prefixOptions.styles,\n styles = _prefixOptions$styles === void 0 ? {} : _prefixOptions$styles,\n _prefixOptions$config = prefixOptions.config,\n config$$1 = _prefixOptions$config === void 0 ? {} : _prefixOptions$config;\n var isDuotoneFamily = family === t;\n var valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad');\n var defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone';\n var canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone';\n if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) {\n canonical.prefix = 'fad';\n }\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n if (!canonical.prefix && newCanonicalFamilies.includes(family)) {\n var validPrefix = Object.keys(styles).find(function (key) {\n return newCanonicalStyles.includes(key);\n });\n if (validPrefix || config$$1.autoFetchSvg) {\n var defaultPrefix = Et.get(family).defaultShortPrefixId;\n canonical.prefix = defaultPrefix;\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n }\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n this.definitions = {};\n }\n return _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n\n // To keep support for older Classic styles, also add longer prefixes\n var longPrefix = PREFIX_TO_LONG_STYLE[i][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n _hooks[hook].push(hooks[hook]);\n });\n }\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args));\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return undefined;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\n// If any of these attributes are present, don't assume the icon is decorative\nfunction isLabeled(attributes) {\n var labels = ['aria-label', 'aria-labelledby', 'title', 'role'];\n return labels.some(function (label) {\n return label in attributes;\n });\n}\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n maskId = params.maskId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n if (!isLabeled(extra.attributes) && !extra.attributes['aria-hidden']) {\n content.attributes['aria-hidden'] = 'true';\n }\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2({}, extra.styles)\n });\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n class: extra.classes.join(' ')\n });\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n var styles = _objectSpread2({}, extra.styles);\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n extra = params.extra;\n var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n class: extra.classes.join(' ')\n });\n var styleString = joinStyles(extra.styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n var element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n return new Promise(function (resolve, reject) {\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\nvar p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"7.2.0\\\"\";\nvar begin = function begin(name) {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\nvar end = function end(name) {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n return comment;\n}\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n\n // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\nfunction performOperationSync(op) {\n op();\n}\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n if (!config.observeMutations) {\n return;\n }\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n treeCallback(mutationRecord.target);\n }\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback([mutationRecord.target], true);\n }\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n return acc;\n }, {});\n }\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n if (val.iconName && val.prefix) {\n return val;\n }\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\nfunction getKnownPrefixes() {\n return [].concat(_toConsumableArray(Ht), _toConsumableArray(lo));\n}\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var prefixes = config.autoFetchSvg ? getKnownPrefixes() : Z.concat(Object.keys(styles$2));\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p$$1) {\n return \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n var candidates = [];\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {\n // noop\n }\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e$$1) {\n mark();\n reject(e$$1);\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n maskId: maskId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var nextChild;\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nvar _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n}), Kt), fo), hl);\nvar FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, key) {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n}, {});\nvar FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, fontFamily) {\n var weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || _toConsumableArray(Object.entries(weights))[0][1];\n return acc;\n}, {});\n\n// Return hex value of *first* character in `content`\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n return toHex(_toConsumableArray(cleaned)[0] || '');\n}\n\n// Check if it's a secondary Duotone layer, by checking if:\n// - Unicode value in `content` is repeated\n// - Unicode value in `content` is above 0x10000\n// - The \"ss01\" font feature is enabled on the `content`\nfunction isSecondaryLayer(styles) {\n var hasStylisticSet = styles.getPropertyValue('font-feature-settings').includes('ss01');\n var content = styles.getPropertyValue('content');\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = cleaned.codePointAt(0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return isPrependTen || isDoubled || hasStylisticSet;\n}\nfunction getPrefix(fontFamily, fontWeight) {\n var fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n var fontWeightInteger = parseInt(fontWeight);\n var fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n}\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c$$1) {\n return c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family');\n var fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamilyMatch && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n var prefix = getPrefix(fontFamily, fontWeight);\n var hexValue = hexValueFromContent(_content);\n var isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n var isSecondary = isSecondaryLayer(styles);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n }\n\n // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n element.outerHTML = abstract.map(function (a$$1) {\n return toHtml(a$$1);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\nvar hasPseudoElement = function hasPseudoElement(selector) {\n return !!selector && PSEUDO_ELEMENTS.some(function (pseudoSelector) {\n return selector.includes(pseudoSelector);\n });\n};\n\n// Return selectors from all available stylesheets that have\n// pseudo-elements defined.\nvar parseCSSRuleForPseudos = function parseCSSRuleForPseudos(selectorText) {\n if (!selectorText) return [];\n var selectorSet = new Set();\n var selectors = selectorText.split(/,(?![^()]*\\))/).map(function (s$$1) {\n return s$$1.trim();\n });\n selectors = selectors.flatMap(function (selector) {\n return selector.includes('(') ? selector : selector.split(',').map(function (s$$1) {\n return s$$1.trim();\n });\n });\n var _iterator = _createForOfIteratorHelper(selectors),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var selector = _step.value;\n if (hasPseudoElement(selector)) {\n // Remove pseudo-elements from the selector\n var selectorWithoutPseudo = PSEUDO_ELEMENTS.reduce(function (acc, pseudoSelector) {\n return acc.replace(pseudoSelector, '');\n }, selector);\n if (selectorWithoutPseudo !== '' && selectorWithoutPseudo !== '*') {\n selectorSet.add(selectorWithoutPseudo);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return selectorSet;\n};\nfunction searchPseudoElements(root) {\n var useAsNodeList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!IS_DOM) return;\n var nodeList;\n if (useAsNodeList) {\n nodeList = root;\n } else if (config.searchPseudoElementsFullScan) {\n nodeList = root.querySelectorAll('*');\n } else {\n // Get elements that have pseudo elements defined in the CSS\n var selectorSet = new Set();\n var _iterator2 = _createForOfIteratorHelper(document.styleSheets),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var stylesheet = _step2.value;\n try {\n var _iterator3 = _createForOfIteratorHelper(stylesheet.cssRules),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var rule = _step3.value;\n var parsedSelectors = parseCSSRuleForPseudos(rule.selectorText);\n var _iterator4 = _createForOfIteratorHelper(parsedSelectors),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var selector = _step4.value;\n selectorSet.add(selector);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n } catch (e$$1) {\n if (config.searchPseudoElementsWarnings) {\n console.warn(\"Font Awesome: cannot parse stylesheet: \".concat(stylesheet.href, \" (\").concat(e$$1.message, \")\\nIf it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin=\\\"anonymous\\\" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.\"));\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n if (!selectorSet.size) return;\n var cleanSelectors = Array.from(selectorSet).join(', ');\n try {\n nodeList = root.querySelectorAll(cleanSelectors);\n } catch (_unused) {} // eslint-disable-line no-empty\n }\n return new Promise(function (resolve, reject) {\n var operations = toArray(nodeList).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\n }\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n return abstract;\n}\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n 'fill': 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n 'mask': \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n\n // Ring\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n return {\n tag: 'g',\n attributes: {\n class: 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n", "/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\nvar prefix = \"fab\";\nvar faSquareGithub = {\n prefix: 'fab',\n iconName: 'square-github',\n icon: [448, 512, [\"github-square\"], \"f092\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM265.8 407.7c0-1.8 0-6 .1-11.6 .1-11.4 .1-28.8 .1-43.7 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-26.6-7.5-56.6-7.5-83.2 0 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 9 .1 21.7 .1 30.6 0 4.8 .1 8.6 .1 10 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7 .6 3.9 1.9 .3 1.3-1 2.6-3 3-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7 .9 3.7 2.4 0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1 .9-1.1 2.8-.9 4.3 .6 1.3 1.3 1.8 3.3 .9 4.1-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9 1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5 .9-.9 2.4-.4 3.5 .6 1.1 1.3 1.3 2.8 .4 3.5-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6 .4-.6 1.5-.9 2.8-.4 1.3 .7 1.9 1.8 1.5 2.6-.4 .9-1.7 1.1-2.8 .4z\"]\n};\nvar faGithubSquare = faSquareGithub;\nvar faThinkPeaks = {\n prefix: 'fab',\n iconName: 'think-peaks',\n icon: [576, 512, [], \"f731\", \"M465.4 409.4l87.1-150.2-32-.3-55.1 95-206.2-353.9-236.2 407.4 32 .3 204.2-352.1 206.2 353.8zM110.1 365.3l32.1 0 117.4-202.5 203.4 349.1 32.5 .1-235.8-404.6-149.6 257.9z\"]\n};\nvar faGoogleDrive = {\n prefix: 'fab',\n iconName: 'google-drive',\n icon: [512, 512, [], \"f3aa\", \"M339 314.9L175.4 32 336.6 32 500.2 314.9 339 314.9zM201.5 338.5l-80.6 141.5 310.5 0 80.6-141.5-310.5 0zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"]\n};\nvar faAutoprefixer = {\n prefix: 'fab',\n iconName: 'autoprefixer',\n icon: [640, 512, [], \"f41c\", \"M318.4 16l-161 480 77.5 0 25.4-81.4 119.5 0 25.2 81.4 77.5 0-164.1-480zM278.1 357.9l41.2-130.4 1.5 0 40.9 130.4-83.6 0zM640 405L630 373.6 462.1 358 481.5 414.5 640 405zM177.9 358L10 373.7 0 405 158.5 414.4 177.9 358z\"]\n};\nvar faSquareViadeo = {\n prefix: 'fab',\n iconName: 'square-viadeo',\n icon: [448, 512, [\"viadeo-square\"], \"f2aa\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1l0 .4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 8.3-7.9 18-10.9 27.9-14.1 16-5.1 32.5-10.3 44.5-35.9 32.5 46.2 13.1 130.3-36.3 130.3-13.3 0-25.1-7.1-34.4-16.1z\"]\n};\nvar faViadeoSquare = faSquareViadeo;\nvar faCpanel = {\n prefix: 'fab',\n iconName: 'cpanel',\n icon: [640, 512, [], \"f388\", \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2l-37 0c-7.1 0-12.5 4.5-14.3 10.9L73.1 320 97.8 319.9c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7 19.8 0c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6l-10.3 0c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8 32 0c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28l18.6 0c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6-40 0C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320l12.4 0 7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3l-11.3 0c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8l-77.9 0-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5l57.5 0c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3l-34.9 0c-5.3 0-5.3-7.9 0-7.9l21.6 0c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2-48.4 0c-39.2 0-43.6 63.8-.7 63.8l57.5 .2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179l-18.9 0c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zM396.8 213.7l0 .1-48.3 0-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3l18.9 0c4.8 0 9.2-3 10.4-7.8l17.2-64 19.8 0c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3l19.1 0c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6l32.9 0c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3l-21.6 0c-7 0-12.6 4.6-14.2 10.8l-3.5 13 53.4 0c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8l-47.3 0c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7l66.7 0c6.8 0 12.3-4.5 14.2-10.7l5.7-21-73.3 0z\"]\n};\nvar faMendeley = {\n prefix: 'fab',\n iconName: 'mendeley',\n icon: [640, 512, [], \"f7b3\", \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4 .7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1 .1-.2 .2-.3 .4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zM320.7 306.1l-.6 0c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8l.6 0c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"]\n};\nvar faDraft2digital = {\n prefix: 'fab',\n iconName: 'draft2digital',\n icon: [512, 512, [], \"f396\", \"M496 398.1l-144-82.2 0 64.7-91.3 0c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6-76.6 87-142.8 155.7-161.1 174.8l336-.1 0 64.2 144-81.9zM385.9 371l47.1 27.2-47.1 27.2 0-54.4zM105.4 161.4a22.4 22.4 0 1 1 44.8 0 22.4 22.4 0 1 1 -44.8 0zM98.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7l-114.4 0z\"]\n};\nvar faReplyd = {\n prefix: 'fab',\n iconName: 'replyd',\n icon: [448, 512, [], \"f3e6\", \"M320 480l-192 0C57.6 480 0 422.4 0 352L0 160C0 89.6 57.6 32 128 32l192 0c70.4 0 128 57.6 128 128l0 192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6s-9.6 9-12.8 15.8l-1.1 0-4.2-18.3-28 0 0 138.9 36.1 0 0-89.7c1.5-5.4 4.4-9.8 8.7-13.2s9.8-5.1 16.2-5.1c4.6 0 9.8 1 15.6 3.1l4.8-34zM308.6 376.6c-3.2 2.4-7.7 4.8-13.7 7.1s-12.8 3.5-20.4 3.5c-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4l83.3 0c.9-4.8 1.6-9.4 2.1-13.9 .5-4.4 .7-8.6 .7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6s17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1l-51.7 0c.9-9.4 3.7-17 8.2-22.6s11.5-8.5 21-8.5c8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4-9.6-5.7-16.7-5.7c-6.7 0-12 1.9-16.1 5.7s-6.1 8.9-6.1 15.4 2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4-9.6-5.7-16.7-5.7c-6.7 0-12 1.9-16.1 5.7s-6.1 8.9-6.1 15.4c0 6.6 2 11.7 6.1 15.6z\"]\n};\nvar faEmpire = {\n prefix: 'fab',\n iconName: 'empire',\n icon: [512, 512, [], \"f1d1\", \"M295.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6l0-18.2c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM61.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C42 181 32.1 217.5 32.1 256s10 75 27.1 106.6L75 353.5c-5.3-10-9.7-20.3-13.6-31.1zM221.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6l0-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM101.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6l0-18.2C171.9 34.6 103.9 76.4 65.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zM410.7 391.1l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6l0 18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm483.8 0a235.8 235.8 0 1 0 -471.6 0 235.8 235.8 0 1 0 471.6 0zm-39-106.6L437 158.5c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C470 331 479.9 294.5 479.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8s-18.5 .8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8s18.5-1.1 27.1-2.8l-13.3-66.7z\"]\n};\nvar faAccessibleIcon = {\n prefix: 'fab',\n iconName: 'accessible-icon',\n icon: [448, 512, [62107], \"f368\", \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46C105.5 165.3 64.9 120 95 93.1l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6l-58.4 66.5 106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zM359 101.8A50.9 50.9 0 1 0 359 0 50.9 50.9 0 1 0 359 101.8zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1L57.2 260.7C36.4 287 24 320.3 24 356.4 24 487.1 174.7 557.8 275.4 478.9l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"]\n};\nvar faQuora = {\n prefix: 'fab',\n iconName: 'quora',\n icon: [448, 512, [], \"f2c4\", \"M440.7 386.7l-29.3 0c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153 .1-117.5-96.6-196.7-198.4-196.7-99.7 0-197.7 79.7-197.7 196.7 0 134.1 131.3 221.6 249 189 19.7 33.6 45.7 62.3 95.2 62.3 81.8 0 90.8-75.3 89-93.3zM297.2 329.2c-19.5-29.2-43.7-52.2-91.5-52.2-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7 0-104.4 32.5-157.9 107.5-157.9 76.2 0 108.7 53.5 108.7 157.7 .1 41.8-5.4 75.6-16.7 100.5z\"]\n};\nvar faCcJcb = {\n prefix: 'fab',\n iconName: 'cc-jcb',\n icon: [576, 512, [], \"f24b\", \"M431.5 244.3l0-32.3c41.2 0 38.5 .2 38.5 .2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2 .4-3.3 .3-38.5 .3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5l0 35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM182 192.3l-57 0c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8l0 28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2l0-28.3C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2l0-28zM544 286.5c0-18.5-16.5-30.5-38-32l0-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3l0 127.5 122.7 0c24.3 .1 42.3-12.9 42.3-33.2z\"]\n};\nvar faFedora = {\n prefix: 'fab',\n iconName: 'fedora',\n icon: [448, 512, [], \"f798\", \"M0 255.8C.1 132.2 100.3 32 224 32S448 132.3 448 256 347.8 479.9 224.1 480L50.9 480C22.8 480 .1 457.3 0 429.2l0 0 0-173.4 0 0zm342.6-63.1c0-39.7-35.6-68.5-73.2-68.5-34.9 0-65.8 26.3-70.1 59.9-.2 3.8-.4 5-.4 8.5-.1 21.1 0 42.8-.8 64.4 .9 26.1 1 52.1 0 76.6 0 27.1-19.4 45.5-44.7 45.5s-45.8-20.2-45.8-45.5c.5-27.7 22.6-45.3 48.5-46.1l.2 0 26.3-.2 0-37.3-26.3 .2c-47.1-.4-84.6 36.5-85.9 83.4 0 45.6 37.5 82.9 83 82.9 43 0 78.7-33.6 82.6-75.6l.2-53.5 32.6-.3c25.3 .2 25-37.8-.2-37.3l-32.4 .3c0-6.4 .1-12.8 .1-19.2 .1-12.7 .1-25.4-.1-38.2 .1-16.5 15.8-31.2 33.2-31.2 17.5 0 35.9 8.7 35.9 31.2 0 3.2-.1 5.1-.3 6.3-1.9 10.5 5.2 20.4 15.7 21.9 10.6 1.5 20.2-6.1 21.2-16.6 .6-4.2 .7-7.9 .7-11.6z\"]\n};\nvar faDuolingo = {\n prefix: 'fab',\n iconName: 'duolingo',\n icon: [576, 512, [], \"e812\", \"M504.3 230.5c10.4 88.5-43.4 172.1-128.2 199s-176.6-10.3-218.9-88.7c-72 3-137.4-39.8-163.2-105.5-2.6-6.6-1.9-14 1.9-19.9s10.2-9.7 17.2-10.1l96.1-6-23.8-75.9c-6.3-20-2.2-41.9 11-58.3s33.7-25 54.5-23c52.2 5 86.8 4.8 104-.6S300 16.7 339-16.9c15.9-13.7 37.7-18.5 57.8-12.7s36.1 21.3 42.4 41.4L462.8 87 543.6 37.3c6-3.7 13.4-4.3 19.9-1.6s11.3 8.3 12.9 15.2c16.2 68.2-12.4 140.3-72.1 179.5zM258.5 475.9l0 0c15.1 7.5 21.5 25.8 14.2 41s-25.4 21.9-40.7 14.9l-43.9-21c-15.1-7.5-21.5-25.8-14.2-41s25.4-21.9 40.7-14.9l43.8 21zM564.6 345.7c14.8 8.4 20 27.3 11.6 42.2l-23.9 42.4c-8.7 14.3-27.1 19.2-41.6 10.9s-19.9-26.6-12-41.4l23.9-42.4c4-7.1 10.7-12.4 18.6-14.6s16.3-1.2 23.4 2.9z\"]\n};\nvar faFirstdraft = {\n prefix: 'fab',\n iconName: 'firstdraft',\n icon: [384, 512, [], \"f3a1\", \"M384 192l-64 0 0 128-128 0 0 128-192 0 0-25.6 166.4 0 0-128 128 0 0-128 89.6 0 0 25.6zm-25.6 38.4l0 128-128 0 0 128-166.4 0 0 25.6 192 0 0-128 128 0 0-153.6-25.6 0zm25.6 192l-89.6 0 0 89.6 25.6 0 0-64 64 0 0-25.6zM0 0l0 384 128 0 0-128 128 0 0-128 128 0 0-128-384 0z\"]\n};\nvar faFreebsd = {\n prefix: 'fab',\n iconName: 'freebsd',\n icon: [448, 512, [], \"f3a4\", \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2s-39.4 .9-63.1-22.9c-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1-11 57.7 12.7 110.5 33.5 146.8 52 114.6 78.3 87.5 109.9 68.1zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"]\n};\nvar faOdysee = {\n prefix: 'fab',\n iconName: 'odysee',\n icon: [512, 512, [], \"e5c6\", \"M406.7 463c-42.3 30.8-94.4 49-150.7 49-111.1 0-205.7-70.8-241.1-169.8 2.4 1.7 5.9 3.6 7.9 4.4 16.3 7.4 40.1-5.4 62.9-28.7 6.9-6.9 14.4-12.4 22.8-17.3 18.3-11.9 37.6-20.8 58.4-27.2 0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1-11-.5-70-3-56 51.1 14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4 .8 4.6 1.1 9.9 1.4 15.5 1.1 21.2 2.3 45.6 35.3 46.4 5.3 0 10.6-.8 15.5-2l0-.1zm-95.3-23.7c-2-.5-3.5-2.5-3-5 1-2.5 3-3.5 5-3s3.5 3 3 5-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3 0 2-1 4-3 4-1.5 .5-3.5-1-4-3-.5-1.5 1-3.5 3-4zM451.8 421c37.5-44.6 60.2-102.2 60.2-165 0-67.5-26.1-128.9-68.8-174.7-.1 23.5-6.1 48.2-16.8 69.2-11.9 20.3-49 58.9-69.8 78.7-.7 .3-1.1 .9-1.5 1.4-.2 .2-.3 .4-.5 .6-5 6.9-4 16.8 3 21.8 21.3 15.8 56.4 45.6 59.4 72.8 3.5 34.9 27.9 75.6 34.2 86.2 .8 1.3 1.3 2.1 1.4 2.4 0 2.2-.4 4.3-.8 6.5l0 .1zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4-.3 1.4-.7 2.8-1 4.2-9.5 38.5-30.6 37.6-41.7 37.2-1.1 0-2-.1-2.9-.1-5.1 0-6-4-8.9-17.1-2.6-12.1-6.9-32-17.9-63.6-22.7-65.8-82.7-49.4-128.2-22.2-55.3 33.1-34.4 101.9-19.8 149.4 .7 2.2 1.4 4.4 2 6.6-4 4-13.8 7.5-26 11.9-12.1 4.3-26.6 9.5-40.3 16.9-33.9 18-70.3 49-79.8 62.6-1.3-10.7-2-21.5-2-32.5 0-141.4 114.6-256 256-256 51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4 4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5 1.5 2.5 1 5.4-1.5 6.4-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3 1.5 .5 3-.5 3-2 .5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54 44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9-61.9-4.5-64.9-42.6l0 .1zm89.6 14.9l1 0c2.5 0 5-2 5-5 2-6.9 1-14.4-2-20.8-1.5-2-4-3.5-6.4-2.5-3 1-4.5 4-3.5 6.9 2 4.5 3 9.9 1.5 14.9-.5 3 1.5 5.9 4.5 6.4l-.1 .1zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3-.2 .1-.4 .2-.6 .2l0 .1z\"]\n};\nvar faGgCircle = {\n prefix: 'fab',\n iconName: 'gg-circle',\n icon: [512, 512, [], \"f261\", \"M257.5 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM208 382.8l-125.7-125.7 125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75 125.7 125.7-125.7 125.6z\"]\n};\nvar faCloudflare = {\n prefix: 'fab',\n iconName: 'cloudflare',\n icon: [640, 512, [], \"e07d\", \"M407.9 319.9L177.1 317c-.7 0-1.4-.2-2-.5s-1.2-.8-1.6-1.4c-.4-.6-.7-1.3-.7-2s0-1.4 .2-2.1c.4-1.1 1.1-2.1 2.1-2.8s2.1-1.2 3.3-1.2l232.9-2.9c27.6-1.3 57.5-23.6 68-50.8l13.3-34.5c.4-.9 .5-1.9 .5-2.9 0-.5-.1-1.1-.2-1.6-7.4-32.2-25-61.1-50.3-82.3s-56.7-33.7-89.7-35.5-65.6 7.3-93 25.7-48 45.3-58.8 76.5c-11.3-8.5-24.9-13.3-39-13.7s-28 3.5-39.8 11.4-20.8 19.1-25.9 32.3-5.9 27.6-2.4 41.3c-52.3 1.5-94.2 44.1-94.2 96.5 0 4.7 .3 9.3 1 14 .2 1.1 .7 2.1 1.5 2.8s1.9 1.1 2.9 1.1l426.1 .1c0 0 .1 0 .1 0 1.2 0 2.3-.4 3.3-1.1s1.6-1.7 2-2.9l3.3-11.3c3.9-13.4 2.4-25.8-4.1-34.9-6-8.4-16.1-13.3-28.2-13.9zm105.9-98.8c-2.1 0-4.3 .1-6.4 .2-.8 .1-1.5 .3-2.1 .8s-1 1.1-1.3 1.8l-9.1 31.2c-3.9 13.4-2.4 25.8 4.1 34.9 6 8.4 16.1 13.3 28.2 13.9l49.2 2.9c.7 0 1.4 .2 2 .5s1.1 .8 1.5 1.4c.4 .6 .7 1.3 .8 2s0 1.5-.2 2.1c-.4 1.1-1.1 2.1-2.1 2.8s-2.1 1.2-3.3 1.2l-51.1 2.9c-27.8 1.3-57.7 23.6-68.1 50.8l-3.7 9.6c-.2 .4-.2 .8-.2 1.3s.2 .8 .4 1.2 .6 .7 .9 .9 .8 .3 1.2 .3c0 0 .1 0 .1 0l175.9 0c1 0 2-.3 2.8-.9s1.4-1.5 1.7-2.4c3.1-11.1 4.7-22.5 4.7-34 0-69.3-56.5-125.5-126.1-125.5z\"]\n};\nvar faHackerrank = {\n prefix: 'fab',\n iconName: 'hackerrank',\n icon: [512, 512, [], \"f5f7\", \"M477.9 128C463.4 103 285.5 0 256.5 0s-206.9 102.8-221.3 128-14.5 230.8 0 256 192.4 128 221.3 128 206.8-102.9 221.3-128 14.5-231 0-256zM316.5 414.2c-4 0-40.9-35.8-38-38.7 .9-.9 6.3-1.5 17.5-1.8 0-26.2 .6-68.6 .9-86.3 0-2-.4-3.4-.4-5.8l-79.9 0c0 7.1-.5 36.2 1.4 72.9 .2 4.5-1.6 6-5.7 5.9-10.1 0-20.3-.1-30.4-.1-4.1 0-5.9-1.5-5.7-6.1 .9-33.4 3-84-.2-212.7l0-3.2c-9.7-.4-16.4-1-17.3-1.8-2.9-2.9 34.5-38.7 38.5-38.7s41.2 35.8 38.3 38.7c-.9 .9-7.9 1.5-16.8 1.8l0 3.2c-2.4 25.8-2 79.6-2.6 105.4l80.3 0c0-4.6 .4-34.7-1.2-83.6-.1-3.4 1-5.2 4.2-5.2 11.1-.1 22.2-.1 33.2-.1 3.5 0 4.6 1.7 4.5 5.4-3.7 191.3-.7 177.9-.7 210.3 8.9 .4 16.8 1 17.7 1.8 2.9 2.9-33.6 38.7-37.6 38.7l0 0z\"]\n};\nvar faSkyatlas = {\n prefix: 'fab',\n iconName: 'skyatlas',\n icon: [640, 512, [], \"f216\", \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4 .1-154-59-154-144.9S67.5 149.6 152.8 149.6c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"]\n};\nvar faDeskpro = {\n prefix: 'fab',\n iconName: 'deskpro',\n icon: [448, 512, [], \"f38f\", \"M122 406.2l84 0c23.1 0 43.9-3.5 62.6-10.7 18.7-7.1 34.7-17.1 48-30.1 13.3-13.4 23.6-29.2 30.7-47.5 3.9-9.6 6.8-19.8 8.6-30.6l73.7 0c-2.5 21.3-7.7 41.3-15.5 60-11.1 27.2-26.9 50.8-47.3 70.9-20 19.6-44.2 34.8-72.6 45.4s-60 16-94.7 16l-149.8 .2 0-192.4 72.3-.2 0 118.8zM199.4 32c34.7 0 66.2 5.4 94.7 16 28.5 10.7 52.9 26.1 73.3 46.2 20.4 19.6 36.2 43.2 47.3 70.9 7.5 18.3 12.4 38.1 14.9 59.3l-73.7-.1c-1.9-10.5-4.7-20.5-8.6-29.9-7.1-18.7-17.3-34.5-30.7-47.5-13.3-13.4-29.3-23.6-48-30.8-18.6-7.1-39.5-10.7-62.7-10.7l-84 0 0 118.8-72.2 .2 0-192.3 149.7-.1z\"]\n};\nvar faResolving = {\n prefix: 'fab',\n iconName: 'resolving',\n icon: [512, 512, [], \"f3e7\", \"M289.2 278.2c46-13.3 49.6-23.5 44-43.4L322 195.5c-6.1-20.9-18.4-28.1-71.1-12.8l-188.2 54.1 28.6 98.6 197.9-57.2zM256.5 8C139.4 8 41.2 88.7 15.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2l-92.6 26.6 220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2C166 491.3 209.5 504 255.5 504 392.5 504 504 392.6 504 255.7 505 119.4 393.5 8 256.5 8zM46.3 388.6L8 256.8c0 48.5 14.3 93.4 38.3 131.8z\"]\n};\nvar faBlackberry = {\n prefix: 'fab',\n iconName: 'blackberry',\n icon: [512, 512, [], \"f37b\", \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1l-70.1 0 21-88.8 67.8 0c42.1 0 53.8 23.3 53.8 39.7zM292.2 77.2l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-25.7 70.1-49.1 .1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1l-67.8 0-21 88.8 70.1 0c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7zm-28 137.9l-67.8 0-18.7 88.8 70.1 0c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346l-67.8 0-18.7 88.8 70.1 0c56.1 0 70.1-25.7 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7z\"]\n};\nvar faStripeS = {\n prefix: 'fab',\n iconName: 'stripe-s',\n icon: [384, 512, [], \"f42a\", \"M155.6 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7l0-134.3c-47.3-18.9-94.5-26.1-141.8-26.1-115.7 0-192.8 60.4-192.8 161.4 0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5l0 128.5c49.3 21.3 102.3 32.3 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"]\n};\nvar faSquareBehance = {\n prefix: 'fab',\n iconName: 'square-behance',\n icon: [448, 512, [\"behance-square\"], \"f1b5\", \"M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4 0-19.7-11.7-27.4-30.3-27.5l-46 0 0 52.9 45.1 0zm-5.4-129.6l-39.6 0 0 44.8 42.7 0c15.1 0 25.8-6.6 25.8-22.9 0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8l62.2 0c-1.7-18.5-11.3-29.7-30.5-29.7-18.3 0-30.5 11.4-31.7 29.7zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM349.5 185l-77.8 0 0-18.9 77.8 0 0 18.9zM193.7 243.7c23.6 6.7 35 27.5 35 51.6 0 39-32.7 55.7-67.6 55.9l-93.1 0 0-192 90.5 0c32.9 0 61.4 9.3 61.4 47.5 0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4 0 1.6-.1 3.3-.2 5 0 .8-.1 1.5-.1 2.2l-100.2 0c0 22.2 11.7 35.3 34.1 35.3 11.6 0 26.5-6.2 30.2-18.1l33.7 0c-10.4 31.9-31.9 46.8-65.1 46.8-43.8 0-71.1-29.7-71.1-73 0-41.8 28.7-73.6 71.1-73.6z\"]\n};\nvar faBehanceSquare = faSquareBehance;\nvar faServicestack = {\n prefix: 'fab',\n iconName: 'servicestack',\n icon: [512, 512, [], \"f3ec\", \"M96 216c81.7 10.2 273.7 102.3 304 232L8 448c99.5-8.1 184.5-137 88-232zM128 64c32.3 35.6 47.7 83.9 46.4 133.6 82.9 33.7 207.3 123.7 233.6 250.4l96 0C463.3 231.9 230.8 79.5 128 64z\"]\n};\nvar faRocketchat = {\n prefix: 'fab',\n iconName: 'rocketchat',\n icon: [576, 512, [], \"f3e8\", \"M284.5 224.8c-6.7 0-13.3 2.1-18.9 5.8s-9.9 9.1-12.5 15.4-3.2 13.1-1.9 19.7 4.6 12.7 9.4 17.4 10.9 8 17.5 9.3 13.5 .6 19.7-2 11.5-7 15.3-12.6 5.7-12.2 5.7-18.9c0-9.1-3.7-17.8-10.1-24.2s-15.1-10-24.2-9.9zm-110.4 0c-6.7 0-13.3 2.1-18.9 5.8s-9.9 9.1-12.5 15.4-3.2 13.1-1.9 19.7 4.6 12.7 9.4 17.4 10.9 8 17.5 9.3 13.5 .6 19.7-2 11.5-7 15.3-12.6 5.7-12.2 5.7-18.9c0-9.1-3.7-17.8-10.1-24.2s-15.1-10-24.2-10l0 0zm220.9 0a34.1 34.1 0 1 0 .4 68.2 34.1 34.1 0 1 0 -.4-68.2zm153.8-55.3c-15.5-24.2-37.3-45.6-64.7-63.6-52.9-34.8-122.4-54-195.7-54-24.2 0-48.3 2.1-72 6.4-14.9-14.3-31.5-26.6-49.5-36.6-66.8-33.3-125.6-20.9-155.3-10.2-2.3 .8-4.3 2.1-5.9 3.9s-2.7 3.9-3.3 6.2-.5 4.7 .1 7.1 1.8 4.4 3.5 6.1C27 56.5 61.6 99.3 53.1 138.3 20 172.2 2 213 2 255.6 2 299 20 339.8 53.1 373.7 61.6 412.7 27 455.6 6 477.2 4.3 479 3.2 481.1 2.5 483.4s-.7 4.7-.1 7 1.7 4.5 3.3 6.2 3.6 3.1 5.9 3.9c29.7 10.7 88.5 23.1 155.3-10.2 18-10 34.7-22.3 49.5-36.6 23.8 4.3 47.9 6.4 72 6.4 73.3 0 142.8-19.2 195.7-54 27.4-18 49.1-39.4 64.7-63.6 17.3-26.9 26.1-55.9 26.1-86.1 0-31-8.8-60-26.1-86.9l0 0zM285.4 409.9c-30.2 .1-60.3-3.8-89.4-11.5l-20.1 19.4c-11.2 10.7-23.6 20-37.1 27.6-16.4 8.2-34.2 13.3-52.5 14.9 1-1.8 1.9-3.6 2.8-5.4 20.2-37.1 25.6-70.5 16.3-100.1-33-26-52.8-59.2-52.8-95.4 0-83.1 104.3-150.5 232.8-150.5s232.9 67.4 232.9 150.5c0 83.1-104.3 150.5-232.9 150.5z\"]\n};\nvar faRebel = {\n prefix: 'fab',\n iconName: 'rebel',\n icon: [512, 512, [], \"f1d0\", \"M256.9 504c-139.3 0-247.5-116.2-243.3-254.1 2.8-79.2 43.2-152.2 116.5-200.4 .3 0 1.9-.6 1.1 .8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7 .8-29.6-21.9-61.4-21.9-61.4L255.5 8 299.8 58.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4 .6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5 .8-2.8 .8-2.8 50.1 36.5 114.6 84.4 116.2 204.8 2 145.6-99.9 249.4-242.4 249.4z\"]\n};\nvar faSquareWebAwesome = {\n prefix: 'fab',\n iconName: 'square-web-awesome',\n icon: [448, 512, [], \"e683\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM235 177.6l53 46.4 52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224c-12.9-.4-23.2-11-23.2-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224 213.1 177.6c-8.9-4.1-15-13.1-15-23.6 0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"]\n};\nvar faLinktree = {\n prefix: 'fab',\n iconName: 'linktree',\n icon: [448, 512, [], \"e7d8\", \"M16 173.4l125.8 0-89.4-85.4 49.5-51 85.2 87.8 0-124.8 73.9 0 0 124.8 85.2-87.6 49.4 50.8-89.4 85.2 125.7 0 0 70.5-126.4 0 90 87.6-49.3 49.8-122.2-123-122.2 123-49.5-49.6 90-87.6-126.4 0 0-70.5zM186.9 344.8l73.9 0 0 167.2-73.9 0 0-167.2z\"]\n};\nvar faSimplybuilt = {\n prefix: 'fab',\n iconName: 'simplybuilt',\n icon: [512, 512, [], \"f215\", \"M481.6 64l-106 0C361.1 64 349 75.8 349 90.3l0 39.6-185.3 0 0-39.6c0-14.5-12-26.3-26.6-26.3l-106 0C16.5 64 4.7 75.8 4.7 90.3l0 331.4c0 14.5 11.8 26.3 26.6 26.3l450.4 0c14.8 0 26.6-11.8 26.6-26.3l0-331.4c-.2-14.5-12-26.3-26.7-26.3zM150.5 222.7a66.5 66.5 0 1 1 -.3 133.1 66.5 66.5 0 1 1 .3-133.1zm211.9 .1a66.5 66.5 0 1 1 .3 132.9 66.5 66.5 0 1 1 -.3-132.9z\"]\n};\nvar faStubber = {\n prefix: 'fab',\n iconName: 'stubber',\n icon: [448, 512, [], \"e5c7\", \"M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1 49.4 0 71.4 63.6 142.4 63.6 15.6 0 35.9-2.8 55.3-13.3l0 61.7c0 61.8-50.4 112-112.3 112L0 480 41.8 424 0 368 41.7 312 0 256.1 41.8 200.1 0 144.1 41.8 88 0 32 335.7 32C397.6 32 448 82.3 448 144.1l0 51.3c-9.2 36.3-25.9 60.6-55 60.6-49.6 0-71.6-63.5-142.4-63.5-35.9 0-95.2 14.6-114.1 101.6l0 .1z\"]\n};\nvar faApper = {\n prefix: 'fab',\n iconName: 'apper',\n icon: [640, 512, [], \"f371\", \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6l.8 0 0-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8l-38.6 0c.3-13.9 1.5-19.1 5.8-24.4 7.3-8.8 18.9-11.8 46.1-11.8 33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7l0 76.3-38.3 0 1.3-19.1-1 0c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zM137 192.3l38.3 0-1.5 20.6 .8 0c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2l-.8 0 0 70.3-39.5 0 0-169zM217.9 253c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7l38.3 0-1.5 20.6 .8 0c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2l-.8 0 0 70.3-39.5 0 0-169 .1 0zM356.7 253c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7l0 11.1-75.3 0c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9l37.5 0 0 2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3 38.3 0zm55.6-45.3l38.3 0-1.8 19.9 .7 0c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3l-35 0c.3-1.8 .3-3.3 .3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3l0 68-38.3 0 0-118.5 .1 0z\"]\n};\nvar faGoogleScholar = {\n prefix: 'fab',\n iconName: 'google-scholar',\n icon: [512, 512, [], \"e63b\", \"M390.9 298.5s0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64-.1 82.5-66.9 149.4-149.4 149.4S106.7 445.1 106.7 362.7c0-22.9 5.2-44.6 14.4-64 1.7-3.6 3.6-7.2 5.6-10.7 4.4-7.6 9.4-14.7 15-21.3 27.4-32.6 68.5-53.3 114.4-53.3 33.6 0 64.6 11.1 89.6 29.9 9.1 6.9 17.4 14.7 24.8 23.5 5.6 6.6 10.6 13.8 15 21.3 2 3.4 3.8 7 5.5 10.5l-.1-.1zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4l-94.7-77 256-202.7 256 202.7-94.7 77.1 0-.1z\"]\n};\nvar faYarn = {\n prefix: 'fab',\n iconName: 'yarn',\n icon: [512, 512, [], \"f7e3\", \"M401.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4 .1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3 .8-10.8-5.7 .8-19.2 .8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3 .8 1.4 13.7 .8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm416.7 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2 .9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4l.1 0c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4 .2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"]\n};\nvar faStackOverflow = {\n prefix: 'fab',\n iconName: 'stack-overflow',\n icon: [384, 512, [], \"f16c\", \"M291 311l-195.7-41.3-8.2 39.3 195.7 41 8.2-39zm51-87L188.5 95.7 163 126.5 316.5 254.8 342 224zm-31.2 39.7L129.5 179 112.8 215.5 294 300 310.8 263.7zM262.3 32l-32 24 119.3 160.3 32-24-119.3-160.3zm20.5 328l-200 0 0 39.7 200 0 0-39.7zm39.7 80l-279.5 0 0-120-40 0 0 160 359.5 0 0-160-40 0 0 120z\"]\n};\nvar faBluetooth = {\n prefix: 'fab',\n iconName: 'bluetooth',\n icon: [384, 512, [], \"f293\", \"M260.6 171.1l-42.9 42.9-.3-86 43.2 43.1zM217.4 390.9l43.1-43.1-42.9-42.9-.2 86zM384 259.4C384 465 312.1 512 198.9 512S0 465 0 259.4 83.4 0 196.6 0 384 53.9 384 259.4zm-158.5 0l79.4-88.6-125.1-134.3 0 176.9-73.8-73.8-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"]\n};\nvar faCreativeCommonsNcJp = {\n prefix: 'fab',\n iconName: 'creative-commons-nc-jp',\n icon: [512, 512, [], \"f4ea\", \"M255.7 8C111.6 8 8 124.8 8 256 8 392.4 119.8 504 255.7 504 385.9 504 504 403.2 504 256 504 117.2 396.5 8 255.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5-27.9 0 0 38.6 58.1 0 5.7 11.8 0 18.7-63.8 0 0 38.7 63.8 0 0 56 61.7 0 0-56 64.2 0 0-35.7 81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3l-57.6 0 0-18.7 2.9-5.6 54.7 24.3zm6.5-51.4l0-17.8-38.6 0 63-116-65.8 0-43.4 96-23-10.2-39.6-85.7-65.8 0 27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59L350.4 270z\"]\n};\nvar faReddit = {\n prefix: 'fab',\n iconName: 'reddit',\n icon: [512, 512, [], \"f1a1\", \"M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256 397.4 512 256 512L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1-10.1-7.8-22.8-12.5-36.5-12.5-33 0-59.8 26.8-59.8 59.8 0 24 14.1 44.6 34.4 54.1 2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54 0-33-26.8-59.8-59.8-59.8-13.7 0-26.3 4.6-36.4 12.4-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9 4.4 18.8 21.3 32.8 41.5 32.8l.1 .2zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6-31.4-8.8-30.4-30.5 15.4-38.3 32.1-38.3l.1-.1zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6 11.8-39.3 28.5-39.3 31.2 16.6 32.1 38.3l.1 .1zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5 18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z\"]\n};\nvar faConnectdevelop = {\n prefix: 'fab',\n iconName: 'connectdevelop',\n icon: [576, 512, [], \"f20e\", \"M550.8 241l-50.1-86.8c1.1-2.1 1.9-4.6 1.9-7.2 0-8-6.7-14.7-14.7-15L432.4 36.1c.5-1.6 1.1-3.2 1.1-4.8 0-8.6-7-15.3-15.3-15.3-4.8 0-8.8 2.1-11.8 5.6l-106.6 0c-2.7-3.5-6.7-5.6-11.5-5.6s-8.8 2.1-11.5 5.6l-106.1 0c-2.9-3.5-7-5.6-11.8-5.6-8.3 0-15.3 6.7-15.3 15.3 0 1.6 .5 3.5 1.1 4.8l-56 97.2c-5.4 2.4-9.1 7.5-9.1 13.7 0 .5 .3 1.1 .3 1.6L26.6 240.7c-7.2 1.3-12.6 7.5-12.6 15 0 7.2 5.1 13.4 12.1 15l55.2 95.4c-.5 1.6-.8 2.9-.8 4.8 0 7.2 5.1 13.4 12.1 14.7l51.7 89.7c-.5 1.6-1.1 3.5-1.1 5.4 0 8.6 7 15.3 15.3 15.3 4.8 0 8.8-2.1 11.5-5.4l106.9 0c2.7 3.2 7 5.4 11.5 5.4s8.8-2.1 11.5-5.4l107.1 0c2.7 2.9 6.7 4.8 11 4.8 8.6 0 15.3-7 15.3-15.3 0-1.6-.3-2.9-.8-4.3l51.7-90.3c7-1.3 12.1-7.5 12.1-14.7 0-1.6-.3-3.2-.8-4.8l54.9-95.4c7-1.3 12.3-7.5 12.3-15 0-7.2-5.1-13.4-11.8-14.7zm-397 209.7l-43.7-75.8 43.7 0 0 75.8zm0-83.8l-43.7 0c-.3-1.1-.8-2.1-1.3-3.2l45-47.4 0 50.6zm0-62.4l-50.4 53.3c-1.3-.5-2.7-1.3-4-1.6L43.7 259.8c.5-1.3 .5-2.7 .5-4s0-2.4-.3-3.5l52-90c2.7-.3 5.4-1.1 7.8-2.7l50.1 52 0 92.9zm0-102.3L108 154.8c1.3-2.1 2.1-4.8 2.1-7.8 0-.3-.3-.8-.3-1.1l43.9-15.8 0 72.1zm0-80.6l-43.7 15.8 43.7-75.5 0 59.7zm326.5 39.1l.8 1.3-35.4 167.1-63.8-67.2 98-101.5 .3 .3zM292.1 355.1l11.5 11.8-22.8 0 11.3-11.8zm-.3-11.3l-83.3-85.4 79.6-84.4 83 87.6-79.3 82.2zm5.4 5.9l79.3-82.2 67.5 71.3-5.9 28.1-124 0-16.9-17.1zM410.7 44.4c1.1 .5 2.1 1.1 3.5 1.3l57.9 100.7 0 .5c0 2.9 .8 5.6 2.1 7.8l-97.5 101.2-83-87.6 117.1-124zm-9.1-2.1l-113.6 120.3-57.1-60.3 166.3-60 4.3 0zm-123.5 0c2.7 2.7 6.2 4.3 10.2 4.3s7.5-1.6 10.2-4.3l75 0-148.4 53.6-50.9-53.6 103.9 0zM161.9 47.9l1.1-2.1c.9-.2 1.8-.5 2.7-.8l51.2 53.8-54.9 19.8 0-70.7zm0 79.3l60.8-22 59.7 63.2-79.6 84.1-41-42.1 0-83.3zm0 92.7l36.4 37.8-36.4 38.3 0-76.1zm0 87.9l42.1-44.5 82.8 86-17.1 17.7-107.7 0 0-59.2zm7 162.1c-1.6-1.6-3.5-2.7-5.9-3.5l-1.1-1.6 0-89.7 99.9 0-91.6 94.8-1.3 0zm129.9 0c-2.7-2.4-6.4-4.3-10.4-4.3s-7.8 1.9-10.4 4.3l-96.4 0 91.6-94.8 38.3 0 91.6 94.8-104.2 0zm120-11.8l-4.3 7.5c-1.3 .3-2.4 .8-3.5 1.3l-89.2-91.9 114.4 0-17.4 83zm12.9-22.2l12.9-60.8 22 0-34.8 60.8zm34.8-68.8l-20.4 0 4.6-21.2 17.1 18.2c-.5 .8-1.1 1.9-1.3 2.9zm66.2-107.4l-55.4 96.7c-1.3 .5-2.7 1.1-4 1.9l-20.6-22 34.6-163.9 45.8 79.3c-.3 1.3-.8 2.7-.8 4.3 0 1.3 .3 2.4 .5 3.7z\"]\n};\nvar faResearchgate = {\n prefix: 'fab',\n iconName: 'researchgate',\n icon: [448, 512, [], \"f4f8\", \"M0 32l0 448 448 0 0-448-448 0zM262.2 366.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6l0 46.4c0 23.5 6 21.2 25.8 23.9l0 8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1 .6-33.6 .8l0-8.1c15.5-2.9 22-1.3 22-23.9l0-109.4c0-22.6-6.4-21-22-23.9l0-8.1c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7l0 7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2l0-32.2c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7l0 26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8l-17.9 0 0-10.7 30.4 0c0 20.5 4.7 49.9-34 49.9zM168.6 276.1c-9.4 0-13.6-.3-20-.8l0-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"]\n};\nvar faSignalMessenger = {\n prefix: 'fab',\n iconName: 'signal-messenger',\n icon: [512, 512, [], \"e663\", \"M256 0c-13.3 0-26.3 1-39.1 3l3.7 23.7C232.1 24.9 244 24 256 24s23.9 .9 35.4 2.7L295.1 3C282.3 1 269.3 0 256 0zm60.8 7.3l-5.7 23.3c23.4 5.7 45.4 14.9 65.4 27.1l12.5-20.5c-22.1-13.4-46.4-23.6-72.2-29.9zm76.4 61.6c19.1 14 36 30.9 50.1 50.1l19.4-14.2C447 83.6 428.4 65 407.3 49.5L393.1 68.8zm81.7 54.2l-20.5 12.5c12.2 20 21.4 42 27.1 65.4l23.3-5.7c-6.3-25.8-16.5-50.1-29.9-72.2zm10.5 97.5c1.8 11.5 2.7 23.4 2.7 35.4s-.9 23.9-2.7 35.4l23.7 3.7c1.9-12.7 3-25.8 3-39.1s-1-26.3-3-39.1l-23.7 3.7zm-31 155.9l20.5 12.5c13.4-22.1 23.6-46.4 29.9-72.2l-23.3-5.7c-5.7 23.4-14.9 45.4-27.1 65.4zm8.2 30.8l-19.4-14.2c-14 19.1-30.9 36-50.1 50.1l14.2 19.4c21.1-15.5 39.8-34.1 55.2-55.2zm-86.1 47c-20 12.2-42 21.4-65.4 27.1l5.7 23.3c25.8-6.3 50.1-16.5 72.2-29.9l-12.5-20.5zM295.1 509l-3.7-23.7C279.9 487.1 268 488 256 488s-23.9-.9-35.4-2.7L216.9 509c12.7 1.9 25.8 3 39.1 3s26.3-1 39.1-3zm-94.1-27.6c-17.6-4.3-34.4-10.6-50.1-18.6l-7.8-4-32.8 7.7 5.5 23.4 24.3-5.7c17.4 8.9 35.9 15.8 55.3 20.5l5.7-23.3zM95.4 494.6L90 471.3 48.3 481c-10.4 2.4-19.7-6.9-17.3-17.3l9.7-41.6-23.4-5.5-9.7 41.6C1.2 486 26 510.8 53.8 504.4l41.6-9.7zm-50-92.9l7.7-32.8-4-7.8c-8-15.7-14.3-32.5-18.6-50.1L7.3 316.7C12 336.1 18.9 354.7 27.7 372l-5.7 24.3 23.4 5.5zM3 295.1l23.7-3.7C24.9 279.9 24 268 24 256s.9-23.9 2.7-35.4L3 216.9C1 229.7 0 242.7 0 256s1 26.3 3 39.1zm27.6-94.1c5.7-23.4 14.9-45.4 27.1-65.4L37.2 123.1c-13.4 22.1-23.6 46.4-29.9 72.2l23.3 5.7zm18.9-96.2l19.4 14.2c14-19.1 30.9-36 50.1-50.1L104.7 49.5C83.6 65 65 83.6 49.5 104.7zm86.1-47c20-12.2 42-21.4 65.4-27.1L195.2 7.3c-25.8 6.3-50.1 16.5-72.2 29.9l12.5 20.5zM256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256c0 36.4 9.4 70.7 25.8 100.5 1.6 2.9 2.1 6.2 1.4 9.4l-21.6 92.5 92.5-21.6c3.2-.7 6.5-.2 9.4 1.4 29.8 16.5 64 25.8 100.5 25.8z\"]\n};\nvar faXing = {\n prefix: 'fab',\n iconName: 'xing',\n icon: [384, 512, [], \"f168\", \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5L9.8 346c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3L26.4 134.4c-4.3-7.8 .3-14.1 8.5-14.1l65.1 0c7.3 0 13.3 4.1 18 12.2L162.7 210zM382.6 46.1l-144 253 0 .3 91.6 166.6c3.9 7.1 .2 14.1-8.5 14.1l-65.2 0c-7.6 0-13.6-4-18-12.2L146.1 299.4c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2l65.7 0c8 0 12.3 6.7 8.5 14.1z\"]\n};\nvar faSquareJs = {\n prefix: 'fab',\n iconName: 'square-js',\n icon: [448, 512, [\"js-square\"], \"f3b9\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6-39.1 0-64.4-18.6-76.7-43z\"]\n};\nvar faJsSquare = faSquareJs;\nvar faFonticons = {\n prefix: 'fab',\n iconName: 'fonticons',\n icon: [448, 512, [], \"f280\", \"M0 32l0 448 448 0 0-448-448 0zM187 172.9c-18.4 0-19 9.9-19 27.4l0 23.3c0 2.4-3.5 4.4-.6 4.4l67.4 0-11.1 37.3-55.7 0 0 112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1 0 25.1-130.7 0 0-25.7 21.3-2c5.2-.6 6.7-2.3 6.7-7.9l0-111.4c0-2.3-2.9-2.3-5.8-2.3l-22.2 0 0-37.4 28 0 0-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8l0-25.1 20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3l0-107.9c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5 80.2 0 0 151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6 0 25.1-102.6 0zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6 27.7 0 15.5-28 9.3 0 15.5 28 27.7 0 3.5 9.6-21.9 24.2z\"]\n};\nvar faUps = {\n prefix: 'fab',\n iconName: 'ups',\n icon: [384, 512, [], \"f7e0\", \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19l0-104-32.7 0 0 102.6c0 74.9 80.2 51.1 97.9 39l0-141.6-32.6 0 0 123zM4 74.8L4 295.7c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1l0-220.9C263.1 13.2 97.6 25.2 4 74.8zM362.1 295.7c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3l0-126.4c102.3-93.8 231.6-100 340.9-89.8l0 216.2zM152.5 188.3l0 212.8 32.7 0 0-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.9-104.4-65.6zm32.7 117.3l0-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4 .6 23.5-30.4 23-50.8 4.9l0 30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2 .6-20.3 30.6-20.5 48.5-2.2l0-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"]\n};\nvar faAmazonPay = {\n prefix: 'fab',\n iconName: 'amazon-pay',\n icon: [640, 512, [], \"f42c\", \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.6 20.2 83.3 35.8 127.4 46.3 20.8 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.2-6.6 111.1-21 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-3 2.7-6.2 5.2-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.5 7.9-49.6 13.8-75.1 17.6-17.6 2.7-35.4 4.3-53.2 4.8-.8 0-1.7 .2-2.5 .3l-21.1 0c-.8-.1-1.7-.2-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.8-33.7-2.5-50.4-5.3-27.4-4.5-54.3-11.5-80.4-20.9-53.7-19.4-103.1-48.9-145.6-87-1.8-1.6-3-3.8-4.4-5.7l0-2zM172 65.1l-4.3 .6c-13.8 1.7-26.8 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.4-.3-.9-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6l-11.5 0c-6.9 0-8.2 1.3-8.2 8.2l0 209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1 .1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3l0-72.4c1.1 .9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1 .5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107c-.1-.7 .1-1.3 .4-1.9s.8-1.1 1.3-1.4c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-.6-.3-1-.8-1.3-1.4s-.4-1.2-.4-1.9c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zM330.3 65.1c-1 .1-2 .3-2.9 .4-9.7 .4-19.4 1.8-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7 .1 3.3-.1 6.6 0 9.9 .1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4 .3 8.3 .2 16.6 .3 24.9 0 .5-.1 .9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.6-21.2-4.2-32-4.9-11.3-.6-22.5 .1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4 .5-.4 1-.8 1.6-1.1 .6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4 .1 10.9 .1 16.3 0 1.3 0 2.5-.5 3.4-1.4s1.4-2.1 1.5-3.3c.1-.9 .1-1.9 .1-2.8l0-106c0-4.3-.3-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9 .1-7.9 .1-11.9 .1zm35 127.7c0 .6-.1 1.2-.3 1.7s-.7 1-1.2 1.3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7 .6-11.4 .4-16.8-1.8-3-1.1-5.6-2.9-7.8-5.2s-3.7-5.1-4.6-8.1c-2-6.3-2-13.1-.1-19.4 2.5-8.3 8.4-13 16.4-15.6 8-2.4 16.5-3.2 24.8-2.2 8.4 .7 16.6 2.3 25 3.4 1.6 .2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zM625.2 322.2c-1-5-4.8-6.9-9.1-8.3-6.8-2.1-13.9-3.5-21-3.9-13.1-1.1-26.3-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 .9-2.7 2.1-3.7 3.5-.4 .6-.6 1.3-.7 1.9s0 1.4 .2 2.1c.4 1.5 2.1 1.9 3.6 1.8 .7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.9 .4 9.7 1.3 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4 .4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.8-.4 3.4-1.3 4.8-2.5 4.5-4.2 8.8-8.7 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6 .8-3.6 1.4-7.3 2.1-10.9l0-17.3zM493.1 199c-12.9-35.7-25.8-71.4-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5 .5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97 59.1 145.5 1.7 4.1 2.1 7.6 .2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5 1.3-10.2 1.7-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9 .1 5.5 2 8 7.4 8.9 5.6 1.1 11.2 1.8 16.9 2 17.1 .4 30.7-6.5 39.5-21.4 3.5-5.9 6.6-12 9.2-18.4 23.7-59.8 47.2-119.7 70.6-179.6 .7-1.8 1.3-3.6 1.6-5.5 .4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-1.7-.1-3.4 .3-4.7 1.3s-2.4 2.3-3 3.9c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"]\n};\nvar faPandora = {\n prefix: 'fab',\n iconName: 'pandora',\n icon: [384, 512, [], \"e7da\", \"M201.3 32L0 32 0 480 120.2 480c11.2 0 20.3-9.1 20.3-20.3l0-86.1 30.1 0c147.1 0 207.3-82.9 207.3-179.9 0-119.7-90.9-161.8-176.5-161.8z\"]\n};\nvar faOpenid = {\n prefix: 'fab',\n iconName: 'openid',\n icon: [448, 512, [], \"f19b\", \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2 0 246.7 82.5 187.2 191.7 173.9l0 43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103l0-340 68-33.2 0 384 .1 0zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8l0-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8 9.2 97.5z\"]\n};\nvar faVsco = {\n prefix: 'fab',\n iconName: 'vsco',\n icon: [512, 512, [], \"e7dd\", \"M357.6 256c0-27.1-10.6-52.5-29.7-71.7s-44.6-29.7-71.7-29.7l-.1 0c-27.1 0-52.6 10.6-71.7 29.7s-29.7 44.6-29.7 71.7c0 27.1 10.6 52.5 29.7 71.7 19.2 19.2 44.6 29.7 71.7 29.7l.1 0c27.1 0 52.6-10.6 71.7-29.7 19.2-19.2 29.7-44.6 29.7-71.7zM176.3 482.1c23 8.1 47 12.6 71.6 13.4l0-59.1c-17.1-.7-33.5-3.8-49-8.9l-22.6 54.6zm137-54.6c-15.5 5.1-32 8.2-49 8.9l0 59.1c24.6-.8 48.6-5.3 71.6-13.4l-22.6-54.6zM92.5 431.2c20.2 18.9 43.3 34 68.7 45l22.5-54.5c-18.3-7.9-35.1-18.8-49.8-31.9L92.5 431.2zm285.9-41.4c-14.6 13.2-31.4 24-49.8 31.9l22.5 54.5c25.4-11 48.4-26.1 68.7-45l-41.4-41.4zM145.4 378.2c13.6 12.1 29 21.9 45.8 29 18 7.6 37.1 12 56.7 12.9l0-46.8c-26.4-1.8-50.3-12.3-69.1-28.6l-33.4 33.4zm188-33.4c-18.8 16.3-42.7 26.8-69.1 28.6l0 46.8c19.6-.9 38.7-5.3 56.7-12.9 16.8-7.1 32.2-16.9 45.8-29l-33.4-33.4zM38.5 356.6c10.7 23.2 25 44.3 42.5 63.1l41.3-41.3c-12.4-13.4-22.9-28.6-30.9-45.2L38.5 356.6zm382.4-23.5c-8 16.6-18.5 31.9-30.9 45.2l41.3 41.3c17.5-18.7 31.8-39.9 42.5-63.1l-52.9-23.5zm-331-69c1.1 18.8 5.4 37.2 12.8 54.5 7.5 17.8 18 34 31.2 48.2l33.5-33.5c-16.4-18.8-26.9-42.8-28.7-69.2l-48.8 0zm283.7 0c-1.8 26.4-12.3 50.4-28.7 69.2l33.5 33.5c13.1-14.2 23.6-30.4 31.2-48.2 7.3-17.4 11.6-35.7 12.7-54.5l-48.7 0zm-357.1 0c.9 26.7 6.1 52.7 15.6 77.5L85 318.2c-6.4-17-10.3-35.1-11.3-54l-57.1 0zm422.1 0c-1 18.9-5 37.1-11.3 54l52.8 23.5c9.5-24.8 14.7-50.8 15.6-77.5l-57.1 0zM32.1 170.4c-9.5 24.8-14.7 50.8-15.6 77.5l57.1 0c1-18.9 5-37.1 11.3-54L32.1 170.4zm101.7-25.2c-13.1 14.2-23.6 30.4-31.2 48.2-7.3 17.4-11.6 35.7-12.8 54.5l48.8 0c1.8-26.4 12.3-50.4 28.7-69.2l-33.5-33.5zm211.1 33.5c16.4 18.8 26.9 42.8 28.7 69.2l48.7 0c-1.1-18.8-5.4-37.2-12.7-54.5-7.5-17.8-18-34-31.2-48.2l-33.5 33.5zm82.4 15.2c6.4 17 10.3 35.1 11.3 54l57.1 0c-.9-26.7-6.1-52.7-15.6-77.5l-52.8 23.5zM81 92.3C63.4 111 49.2 132.2 38.5 155.4l52.9 23.5c8-16.6 18.5-31.9 30.9-45.2L81 92.3zm309 41.3c12.4 13.4 22.9 28.6 30.9 45.2l52.9-23.5c-10.7-23.2-25-44.3-42.5-63.1L390 133.7zM248 91.8c-19.6 .9-38.7 5.3-56.7 12.9-16.8 7.1-32.2 16.9-45.8 29l33.4 33.4c18.8-16.3 42.7-26.8 69.1-28.6l0-46.7zm16.3 46.7c26.4 1.8 50.3 12.3 69.1 28.6l33.4-33.4c-13.6-12.1-29-21.9-45.8-29-18-7.6-37.1-12-56.7-12.9l0 46.7zM161.2 35.8c-25.4 11-48.4 26.1-68.7 45l41.4 41.4c14.7-13.2 31.4-24 49.8-31.9L161.2 35.8zM328.6 90.3c18.3 7.9 35.1 18.8 49.8 31.9l41.4-41.4c-20.2-18.9-43.3-34-68.7-45L328.6 90.3zM248 16.4c-24.6 .8-48.6 5.3-71.6 13.4l22.6 54.6c15.5-5.1 32-8.2 49-8.9l0-59.1zm16.3 59.1c17.1 .7 33.5 3.8 49 8.9l22.6-54.6c-23-8.1-47-12.6-71.6-13.4l0 59.1zM512.2 264.2l-.2 0C507.8 399 399.2 507.7 264.3 511.9l0 .1-16.3 0 0-.1C113.1 507.7 4.5 399 .2 264.1l-.2 0 0-16.3 .2 0C4.5 113 113.1 4.3 248 .1l0-.1 16.3 0 0 .1C399.2 4.3 507.8 113 512 247.9l.2 0 0 16.3z\"]\n};\nvar faGlobaleaks = {\n prefix: 'fab',\n iconName: 'globaleaks',\n icon: [448, 512, [], \"e85d\", \"M411.2 32.2c20.2 0 36.8 16.6 36.8 36.9l0 373.8c0 20.2-16.6 36.9-36.8 36.9l-94.4 0 28-79.4c3.1-8.8-1.6-18.7-10.4-21.8-1.6-.5-2.6-1-4.2-1s-3.6 0-5.2 .5c-5.2 1-9.9 5.2-11.9 10.9l-6.2 16.6 0-67.5c0-10.9-7.8-19.7-18.2-21.8l-7.2 0c-.5 0-1 0-1.6 .5-.5 0-1 .5-1.6 .5-2.6 1-5.2 2.6-7.2 4.1l0-4.1c0-5.7-2.6-10.4-5.7-14l-1-1c-1-1-2.6-2.1-4.2-2.6l0-26.5c0-5.2-4.1-9.3-9.3-9.3l-39.9 0c-6.7 0-11.4-7.3-8.3-13.5L283.1 84.1c14.5-31.1 45.6-51.4 80.4-51.9l47.7 0zm-166 0c17.6 0 30.1 16.1 28 32.2-2.6 3.6-4.7 7.8-6.2 10.9L186.6 241.5c-8.8 18.7 4.2 40 24.4 40l30.6 0 0 16.1c-7.8 3.1-13 10.9-13 19.7l0 3.6c-3.6-3.6-8.8-5.7-14.5-5.7-11.9 0-21.8 9.9-21.8 21.8l0 19.2-3.1 0c-9.3 0-17.1 7.8-17.1 17.1l0 105.9-95.4 0c-42 0-72.6-40.5-61.2-81.5 1-3.1 4.2-5.2 7.3-4.7l21.2 0c24.4 0 44.6-20.2 44.6-45.2l0-4.2c0-24.9-19.7-45.2-44.6-45.2-.5 0-1-.5-1-1l8.8-32.7c2.1-6.2-2.6-11.9-8.8-11.9l-33.2 0c-6.7 0-11.4-7.3-8.3-13.5L76.7 84.7c16.1-32.2 48.2-52.4 84-52.4l84.5 0zM133.7 144.4c-10.4 0-18.7 8.3-18.7 18.7 0 9.9 8.3 18.7 18.7 18.7 10.4 0 18.7-8.3 18.7-18.7s-8.3-18.7-18.7-18.7zm202.8 0a18.6 18.6 0 1 0 -.2 37.2 18.6 18.6 0 1 0 .2-37.2z\"]\n};\nvar faVenmo = {\n prefix: 'fab',\n iconName: 'venmo',\n icon: [640, 512, [], \"e85a\", \"M67.8 202.7c2.4 5 3.9 11 3.9 19.8 0 16.2-11.5 39.8-20.7 54.9l-9.9-79.7-41 3.9 18.8 112 46.9 0c20.5-26.9 45.8-65.3 45.8-94.8 0-9.3-1.9-16.6-6.3-23.7l-37.4 7.5zm113-7.1c-42.8 0-63.5 37-63.5 71.9 0 26.9 12.8 48.5 48.4 48.5 14 0 28.5-3 37.8-7.5l5-33.6c-13.2 6.7-23.3 9.3-33.9 9.3-9.7 0-17.1-5.2-17.1-18.3 22-.2 60-9.3 60-38.8 0-18.3-13.2-31.5-36.7-31.5l0 0zm-22.5 48.9c1.1-12.9 11-22 18.6-22 4.3 0 8 2.6 8 7.7 0 10.8-19 14.2-26.6 14.2l0 0zm150.2-48.9c-15.3 0-26.1 5.8-34.3 11.2l-.4-9.3-34.8 0-18.4 116.1 40.2 0 12.7-81.4c3.5-1.7 8.6-4.1 13.8-4.1 3.9 0 7.1 1.3 7.1 6.5 0 2.2-.7 6-.9 8l-11.2 71.1 40 0 12.3-77.5c.7-4.1 1.3-10.3 1.3-14.6 0-15.5-7.1-25.9-27.4-25.9zm183.2 0c-14.9 0-25.7 4.5-37.2 12.7-4.1-7.3-12.3-12.7-24.8-12.7-14.5 0-25.3 5.8-33.3 11.6l-1.1-9.7-34.4 0-18.4 116.1 40.2 0 12.8-81.4c3.5-1.7 8.6-4.1 13.8-4.1 3.9 0 7.1 1.3 7.1 7.1 0 1.5-.4 3.9-.6 5.8l-11.4 72.6 40 0 12.7-81.4c3.7-1.9 8.6-4.1 13.6-4.1 3.9 0 7.1 1.3 7.1 7.1 0 1.5-.4 3.9-.7 5.8l-11.4 72.6 40 0 12.3-77.5c.7-4.1 1.3-10.3 1.3-14.6 0-15.5-7.1-25.9-27.7-25.9l0 0zm102.2 0c-44.7 0-64.2 34.3-64.2 70.9 0 27.8 11.2 50 45.1 50 45.8 0 65-37.5 65-73.7 0-27.4-12.3-47.2-46-47.2zm-13.4 90c-7.1 0-10.1-6.7-10.1-17.5 0-14.2 3.2-42 19-42 7.1 0 9.5 6.5 9.5 15.9 0 14.2-3.5 43.5-18.4 43.5z\"]\n};\nvar faUbuntu = {\n prefix: 'fab',\n iconName: 'ubuntu',\n icon: [576, 512, [], \"f7df\", \"M469.2 75c0-20.1-8-39.3-22.2-53.5s-33.4-22.2-53.5-22.2-39.3 8-53.5 22.2-22.2 33.4-22.2 53.5c0 20.1 8 39.3 22.1 53.5s33.4 22.1 53.5 22.1 39.3-8 53.5-22.1 22.1-33.4 22.1-53.5l.1 0zm-315 165.7a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM57 346c18.6 46.9 51 87 93 115.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2-6.8-.9-13.3-2.1-19.5-3.4-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2l.1 .1zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2 33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6 15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6l.1 0zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3 16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7 3.6-16.7 11.1-32.3 21.8-45.5-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3 7.5 0 15 .8 22.4 2.3l-.1 0z\"]\n};\nvar faViacoin = {\n prefix: 'fab',\n iconName: 'viacoin',\n icon: [384, 512, [], \"f237\", \"M384 32l-64 0-80.7 192-94.5 0-80.8-192-64 0 48 112-48 0 0 48 68.5 0 13.8 32-82.3 0 0 48 102.8 0 89.2 208 89.2-208 102.8 0 0-48-82.3 0 13.8-32 68.5 0 0-48-48 0 48-112zM192 336l-27-64 54 0-27 64z\"]\n};\nvar faZhihu = {\n prefix: 'fab',\n iconName: 'zhihu',\n icon: [640, 512, [], \"f63f\", \"M170.5 148.1l0 217.5 23.4 0 7.7 26.4 42-26.4 49.5 0 0-217.5-122.7 0zm97.8 193.9l-27.9 0-27.9 17.5-5.1-17.5-11.9 0 0-170.3 72.8 0 0 170.3zM149.8 247.7l-52.3 0c1.7-27.1 2.2-51.6 2.2-73.5l51.2 0s2-22.6-8.6-22.3l-88.5 0c3.5-13.1 7.9-26.7 13.1-40.7 0 0-24.1 0-32.3 21.6-3.4 8.9-13.2 43.1-30.7 78.1 5.9-.6 25.4-1.2 36.8-22.2 2.1-5.9 2.5-6.7 5.1-14.5l28.9 0c0 10.5-1.2 66.9-1.7 73.4l-52.3 0c-11.7 0-15.6 23.6-15.6 23.6l65.6 0c-4.4 49.9-28 91.9-70.8 125.1 20.5 5.9 40.9-.9 51-9.9 0 0 23-20.9 35.6-69.3l54 64.9s7.9-26.9-1.2-40c-7.6-8.9-28.1-33.1-36.8-41.8L87.9 312c4.4-14 7-27.6 7.9-40.7l61.6 0s-.1-23.6-7.6-23.6l0 0zm412-1.6c20.8-25.6 45-58.6 45-58.6s-18.6-14.8-27.4-4.1c-6 8.2-36.8 48.2-36.8 48.2l19.2 14.4zM411.8 187c-9-8.2-25.9 2.1-25.9 2.1s39.5 55 41.1 57.4l19.5-13.7s-25.7-37.6-34.7-45.9l0 0 0 0zM640 258.4c-19.8 0-130.9 .9-131.1 .9l0-101c4.8 0 12.4-.4 22.8-1.2 40.9-2.4 70.1-4 87.8-4.8 0 0 12.2-27.2-.6-33.4-3.1-1.2-23.2 4.6-23.2 4.6s-165.2 16.5-232.4 18c1.6 8.8 7.6 17.1 15.8 19.6 13.3 3.5 22.7 1.7 49.2 .9 24.8-1.6 43.7-2.4 56.5-2.4l0 99.8-133.5 0s2.8 22.3 25.5 22.9l107.9 0 0 70.9c0 14-11.2 22-24.5 21.1-14.1 .1-26.1-1.1-41.7-1.8 2 4 6.3 14.4 19.3 21.8 9.9 4.8 16.2 6.6 26 6.6 29.6 0 45.7-17.3 44.9-45.3l0-73.3 122.4 0c9.7 0 8.7-23.8 8.7-23.8l0 0z\"]\n};\nvar faYandex = {\n prefix: 'fab',\n iconName: 'yandex',\n icon: [256, 512, [], \"f413\", \"M153.1 315.8L65.7 512 2 512 98 302.2C52.9 279.3 22.8 237.8 22.8 161.1 22.7 53.7 90.8 0 171.7 0l82.3 0 0 512-55.1 0 0-196.2-45.8 0zM198.9 46.5l-29.4 0c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8l29.4 0 0-223.4z\"]\n};\nvar faPixiv = {\n prefix: 'fab',\n iconName: 'pixiv',\n icon: [448, 512, [], \"e640\", \"M96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96L96 32zm77.7 217.3a60.1 60.1 0 1 0 120.3 0 60.1 60.1 0 1 0 -120.3 0zM119.1 387.8c-.3-.8-.5-1.7-.5-2.6l0-244.3c0-1.8 .7-3.6 2-4.9s3-2 4.9-2l16.9 0c1.2 0 2.3 .3 3.3 .8s1.9 1.3 2.5 2.3l14 21.8c19.7-15.6 44.5-25 71.6-25 63.6 0 115.2 51.6 115.2 115.2S297.5 364.5 233.8 364.5c-22 0-42.6-6.2-60.1-16.9l0 37.6c0 .9-.2 1.8-.5 2.6s-.9 1.6-1.5 2.2-1.4 1.1-2.2 1.5-1.7 .5-2.6 .5l-41.3 0c-.9 0-1.8-.2-2.6-.5s-1.6-.9-2.2-1.5-1.1-1.4-1.5-2.2z\"]\n};\nvar faOpenai = {\n prefix: 'fab',\n iconName: 'openai',\n icon: [512, 512, [], \"e7cf\", \"M196.4 185.8l0-48.6c0-4.1 1.5-7.2 5.1-9.2l97.8-56.3c13.3-7.7 29.2-11.3 45.6-11.3 61.4 0 100.4 47.6 100.4 98.3 0 3.6 0 7.7-.5 11.8L343.3 111.1c-6.1-3.6-12.3-3.6-18.4 0L196.4 185.8zM424.7 375.2l0-116.2c0-7.2-3.1-12.3-9.2-15.9L287 168.4 329 144.3c3.6-2 6.7-2 10.2 0L437 200.7c28.2 16.4 47.1 51.2 47.1 85 0 38.9-23 74.8-59.4 89.6l0 0zM166.2 272.8l-42-24.6c-3.6-2-5.1-5.1-5.1-9.2l0-112.6c0-54.8 42-96.3 98.8-96.3 21.5 0 41.5 7.2 58.4 20L175.4 108.5c-6.1 3.6-9.2 8.7-9.2 15.9l0 148.5 0 0zm90.4 52.2l-60.2-33.8 0-71.7 60.2-33.8 60.2 33.8 0 71.7-60.2 33.8zm38.7 155.7c-21.5 0-41.5-7.2-58.4-20l100.9-58.4c6.1-3.6 9.2-8.7 9.2-15.9l0-148.5 42.5 24.6c3.6 2 5.1 5.1 5.1 9.2l0 112.6c0 54.8-42.5 96.3-99.3 96.3l0 0zM173.8 366.5L76.1 310.2c-28.2-16.4-47.1-51.2-47.1-85 0-39.4 23.6-74.8 59.9-89.6l0 116.7c0 7.2 3.1 12.3 9.2 15.9l128 74.2-42 24.1c-3.6 2-6.7 2-10.2 0zm-5.6 84c-57.9 0-100.4-43.5-100.4-97.3 0-4.1 .5-8.2 1-12.3l100.9 58.4c6.1 3.6 12.3 3.6 18.4 0l128.5-74.2 0 48.6c0 4.1-1.5 7.2-5.1 9.2l-97.8 56.3c-13.3 7.7-29.2 11.3-45.6 11.3l0 0zm127 60.9c62 0 113.7-44 125.4-102.4 57.3-14.9 94.2-68.6 94.2-123.4 0-35.8-15.4-70.7-43-95.7 2.6-10.8 4.1-21.5 4.1-32.3 0-73.2-59.4-128-128-128-13.8 0-27.1 2-40.4 6.7-23-22.5-54.8-36.9-89.6-36.9-62 0-113.7 44-125.4 102.4-57.3 14.8-94.2 68.6-94.2 123.4 0 35.8 15.4 70.7 43 95.7-2.6 10.8-4.1 21.5-4.1 32.3 0 73.2 59.4 128 128 128 13.8 0 27.1-2 40.4-6.7 23 22.5 54.8 36.9 89.6 36.9z\"]\n};\nvar faSith = {\n prefix: 'fab',\n iconName: 'sith',\n icon: [448, 512, [], \"f512\", \"M0 32l69.7 118.8-58.9-11.5 69.8 91c-3 17-3 34.4 0 51.4l-69.8 91 58.9-11.5-69.7 118.8 118.8-69.7-11.5 58.9 91-69.8c17 3 34.5 3 51.5 0l91 69.8-11.5-58.9 118.7 69.7-69.7-118.8 58.9 11.5-69.8-91c3-17 3-34.4 0-51.4l69.8-91-58.9 11.5 69.7-118.8-118.7 69.7 11.5-58.9-91.1 69.9c-8.5-1.5-17.1-2.3-25.7-2.3s-17.2 .8-25.7 2.3L107.2 42.8 118.8 101.7 0 32zM224 380.2a124.2 124.2 0 1 1 0-248.4 124.2 124.2 0 1 1 0 248.4zm0-211.8a87.6 87.6 0 1 0 0 175.1 87.6 87.6 0 1 0 0-175.1z\"]\n};\nvar faJulia = {\n prefix: 'fab',\n iconName: 'julia',\n icon: [640, 512, [], \"e852\", \"M124 406.5c0 16.1-1.8 29.1-5.4 39s-8.8 17.6-15.5 23.1-14.7 9.1-24.1 11-19.8 2.8-31.2 2.8c-15.5 0-27.3-2.4-35.5-7.3S0 464.5 0 457.7c0-5.6 2.3-10.4 6.9-14.3s10.8-5.8 18.5-5.8c5.8 0 10.4 1.6 13.9 4.7s6.3 6.2 8.6 9.3c2.6 3.4 4.8 5.6 6.5 6.8s3.4 1.7 4.8 1.7c3.1 0 5.4-1.8 7-5.4s2.4-10.7 2.4-21.2l0-198.7 55.4-15.2 0 186.9zm78.9-181.6l0 127.9c0 3.6 .7 6.9 2.1 10s3.3 5.8 5.7 8.1 5.2 4.1 8.5 5.4 6.7 2.1 10.4 2.1c4.2 0 8.9-2.3 14.7-6.4 9.2-6.4 14.7-10.9 14.7-16.1l0-131 55.1 0 0 181.6-55.1 0 0-16.9c-7.3 6.1-15 11-23.2 14.7s-16.2 5.6-23.9 5.6c-9 0-17.4-1.5-25.1-4.5s-14.5-7-20.3-12.2-10.4-11.2-13.7-18.1c-3.3-6.9-5-14.3-5-22.2l0-127.9 55.1 0zM391.4 406.5l-54.9 0 0-254.6 54.9-15.2 0 269.8zm22.9-171.7l55.1-15.2 0 186.9-55.1 0 0-171.7zm170.3 77.9c-5.3 2.3-10.7 4.9-16.1 7.9s-10.3 6.2-14.7 9.8-8 7.3-10.8 11.4-4.1 8.2-4.1 12.6c0 3.4 .4 6.6 1.3 9.8s2.1 5.8 3.8 8.1 3.4 4.1 5.3 5.4 4 2.1 6.3 2.1c4.5 0 9.1-1.4 13.7-4.1s9.7-6.2 15.4-10.4l0-52.5zM640 406.5l-55.4 0 0-14.5c-3.1 2.6-6 5-8.9 7.1s-6.2 4.1-9.8 5.7-7.7 2.9-12.2 3.8c-4.5 .9-9.8 1.3-15.9 1.3-8.4 0-15.9-1.2-22.6-3.6-6.7-2.4-12.4-5.7-17-9.9s-8.3-9.1-10.8-14.9c-2.5-5.7-3.8-12-3.8-18.7 0-6.9 1.3-13.2 4-18.9 2.7-5.6 6.3-10.7 10.9-15.2 4.6-4.5 9.9-8.5 16.1-12.1s12.7-6.8 19.7-9.8 14.3-5.7 21.9-8.2 15.1-4.9 22.5-7.1l6-1.5 0-17.9c0-11.6-2.2-19.8-6.6-24.7s-10.4-7.3-17.8-7.3c-8.7 0-14.8 2.1-18.1 6.3s-5.1 9.3-5.1 15.2c0 3.4-.4 6.7-1.1 9.9-.7 3.2-2 6-3.7 8.5s-4.3 4.4-7.6 5.8c-3.3 1.5-7.5 2.2-12.5 2.2-7.7 0-14-2.2-18.9-6.6-4.8-4.4-7.3-10-7.3-16.8 0-6.3 2.1-12.1 6.4-17.5 4.3-5.4 10-10 17.3-13.9 7.3-3.9 15.6-6.9 25.1-9.2s19.6-3.4 30.2-3.4c13.1 0 24.3 1.2 33.7 3.5s17.2 5.7 23.3 10 10.6 9.6 13.5 15.7 4.4 13 4.4 20.6l0 136.1zM60 172.9a37.4 37.4 0 1 1 74.9 0 37.4 37.4 0 1 1 -74.9 0zM452.2 95a37.4 37.4 0 1 1 74.9 0 37.4 37.4 0 1 1 -74.9 0zm45 77.9a37.4 37.4 0 1 1 74.9 0 37.4 37.4 0 1 1 -74.9 0zm-89.9 0a37.4 37.4 0 1 1 74.9 0 37.4 37.4 0 1 1 -74.9 0z\"]\n};\nvar faNfcDirectional = {\n prefix: 'fab',\n iconName: 'nfc-directional',\n icon: [512, 512, [], \"e530\", \"M211.8 488.6c1.6 2.5 2.1 5.6 1.4 8.5-.6 2.9-2.4 5.5-4.9 7.1-2.6 1.6-5.6 2.1-8.6 1.5-61.4-13.9-115.6-49.9-152.2-101.2S-5.4 290.3 1.6 227.7c7-62.7 36.8-120.5 83.7-162.5 46.9-42 107.7-65.2 170.7-65.2 1.5 0 2.1 .3 4.3 .9 1.4 .6 1.8 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7 .5 1.4 .8 2.8 .8 4.3l0 101 24.5-25.9c1-1.1 2.2-2 3.6-2.6 1.3-.6 2.8-.9 4.3-1 1.5-.1 2.9 .2 4.3 .7s2.7 1.3 3.8 2.4c1 1 1.9 2.2 2.5 3.6 .6 1.3 1 2.8 1 4.3s-.2 3-.7 4.3c-.6 1.4-1.4 2.6-2.4 3.7l-44 46.6c-1.1 1.1-2.3 2-3.7 2.6-1.5 .6-3 .9-5.4 .9-.6 0-2.2-.3-3.6-.9s-2.7-1.5-3.7-2.6l-44.1-46.6c-2-2.2-3.1-5.1-3-8.1 0-3 1.3-6.7 3.5-7.9 2.2-2.1 5.1-3.2 8.1-3.1 3 .1 5.8 1.3 7.9 3.5l24.5 26 0-89.5c-56.4 2.8-109.8 25.8-150.5 65-40.6 39.1-65.7 91.7-70.6 147.9S34.4 348.1 67.7 393.7c32.4 45.5 82 77.5 137 89.9 2.9 .7 5.5 2.5 7.1 5zM171.4 126.1c-.8 1.3-1.9 2.4-3.1 3.2-20.5 13.9-37.2 32.6-48.8 54.5s-17.7 46.3-17.7 71.1 6.1 49.2 17.7 70.2c11.6 22.8 28.3 41.5 48.8 55.4 2.5 1.7 4.2 4.3 4.7 7.3 .6 2.9-.9 6-1.7 8.4-1.7 2.5-5.2 4.2-7.3 3.9-2.9 1.4-6 .8-8.4-.9-23.6-16-42.8-37.5-56.1-62.7-13.3-25.1-20.3-53.1-20.3-81.6 0-28.4 7-56.5 20.3-81.6 13.3-25.2 32.5-46.7 56.1-62.7 1.2-.8 2.6-1.4 4-1.8 1.5-.3 3-.3 4.5 0 1.4 .2 2.8 .8 4.1 1.6s2.3 1.9 3.2 3.1c.8 1.2 1.4 2.6 1.7 4.1s.3 3 0 4.4c-.3 1.5-.8 2.9-1.7 4.1zM340.9 383.5c.8-1.2 1.9-2.3 2.2-3.1l0-.1c21.3-14 38-32.7 49.6-54.6 11.5-21.8 17.5-46.2 17.5-70.9s-6-49.1-17.5-71c-11.6-22.7-28.3-40.5-49.6-54.5-.3-.8-1.4-1.9-2.2-3.1-.8-1.3-1.4-2.7-1.6-4.1-1.2-1.5-.3-3 0-4.4 .3-1.5 .9-2.9 1.7-4.1 .9-1.2 1.1-2.3 3.2-3.1 1.2-.8 2.6-1.3 4.1-1.6s2.9-.3 4.4 0 2.8 .9 4.1 1.8c23.4 16 42.7 37.5 55.9 62.6 13.3 25.1 19.4 53.1 19.4 81.5 0 28.5-6.1 56.5-19.4 81.6-13.2 25.1-32.5 46.6-55.9 62.6-1.3 .9-2.6 1.5-4.1 1.8s-2.9 .3-4.4 0-2.9-1.7-4.1-1.6c-2.1-.8-2.3-1.9-3.2-3.1-.8-1.2-1.4-2.6-1.7-4.1-.3-1.4-1.2-2.9 0-4.4 .2-1.4 .8-2.8 1.6-4.1zM312.3 6.3c56.2 12.7 106.4 44 142.7 88.7 30.4 37.6 49.6 83 55.3 131 5.6 48-2.4 96.7-23.2 140.3-20.9 43.6-53.6 80.5-94.5 106.3-40.9 25.7-88.2 39.4-136.6 39.4-1.5 0-2.9-.3-4.3-.9-1.4-.5-2.6-1.4-3.7-2.4-1.9-1.1-1.9-2.3-2.4-3.7-.6-1.4-.9-2.8-.9-4.3l0-99.2-24.5 26c-2.1 2.2-4.9 2.6-7.9 3.6-3 .1-5.9-1.1-8.1-4-2.2-1.2-3.5-4-3.5-7-.1-3 1-5.9 3-8.1l44.1-46.6c1.3-2.2 5.1-3.4 7.3-3.4 4 0 6.9 1.2 9.1 3.4l44 46.6c2.1 2.2 3.2 5.1 3.1 8.1s-1.4 5.8-3.5 7c-2.2 2.9-5.1 4.1-8.1 4-3-1-5.9-1.4-7.9-3.6l-24.5-25.9 0 87.5c56.4-2.8 109.8-25.8 150.5-65 40.7-40 65.8-91.7 70.7-147.9 4.8-57.1-10.8-112.3-44.1-157.9-33.3-45.6-82-77.5-137-89.9-1.5-.3-2.8-.9-4.1-1.8-1.2-.9-2.2-1.9-3-3.2-.8-1.2-2.2-2.6-1.6-4.1-.2-1.5-.2-3 .1-4.4 .4-1.4 1-2.8 1.8-4 .9-1.2 2-2.2 3.2-3 1.3-.8 2.7-1.3 4.1-1.6 1.5-.3 3-.2 4.4 .1zm40.8 249.8c0 31.4-17.5 61.1-49.3 83.5-2.1 1.5-4.8 2.3-7.4 2-2.7-.2-5.2-1.3-7-3.2l-70.1-69.8c-2.2-2.1-4.2-5-3.4-8 0-3 1.2-5.9 3.3-8 2.2-2.1 5-3.3 8-3.3s5.9 1.2 8 3.3l63.1 62.8c20.8-17.1 32.2-37.9 32.2-59.3 0-23.9-14.1-47-39.7-65.1-2.5-1.7-4.1-4.3-4.6-7.3-.5-2.9 .1-6 1.9-8.4 1.7-2.5 4.3-4.1 7.3-4.6 2.9-.5 6 .1 8.4 1.9 31.8 22.4 49.3 52.1 49.3 83.5zM216.7 341.5c-3 .5-6-.2-8.5-1.9-31.7-22.4-50.1-52.1-50.1-83.5s18.4-61.1 50.1-83.5c2.2-1.6 4.9-2.3 7.5-2.1 2.7 .3 5.1 1.4 7 3.3l70.1 69.8c2.1 2.1 3.3 5 3.3 8s-2 5.8-3.3 8c-2.1 2.1-5 3.3-7.9 3.3-3 0-6.8-1.2-8-3.3l-63.1-62.9c-20.9 17.3-32.2 38-32.2 59.4 0 23 14.1 47 39.7 65 2.4 1.8 4.1 4.4 4.6 7.4 .5 2.9-.2 5.9-1.9 8.4-1.7 2.4-4.4 4.1-7.3 4.6z\"]\n};\nvar faCreativeCommonsBy = {\n prefix: 'fab',\n iconName: 'creative-commons-by',\n icon: [512, 512, [], \"f4e7\", \"M322.9 194.4l0 101.4-28.3 0 0 120.5-77.1 0 0-120.4-28.3 0 0-101.5c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7l101.9 0c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-32.5-64.5a34.5 34.5 0 1 1 -69 .8 34.5 34.5 0 1 1 69-.8zM255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3z\"]\n};\nvar faUmbraco = {\n prefix: 'fab',\n iconName: 'umbraco',\n icon: [512, 512, [], \"f8e8\", \"M256.3 8a248 248 0 1 0 -.7 496 248 248 0 1 0 .7-496zm145 266c-.8 27.1-5.4 48.8-14 65s-23.1 27.9-43.5 35c-20.4 7.1-48.9 10.6-85.4 10.5l-4.6 0c-36.5 .1-65-3.3-85.4-10.5s-34.9-18.8-43.5-35c-8.6-16.2-13.2-37.9-14-65-.7-10.2-.7-20.5 0-30.7 .4-14.7 1.6-29.3 3.6-43.9 1.9-13.4 3.6-22.6 5.4-32 1-4.9 1.3-6.4 1.8-8.4 .3-1.1 .9-2.1 1.8-2.8s2-1.1 3.1-1.1l.7 0 32 5c1.2 .2 2.2 .8 3 1.7s1.2 2.1 1.2 3.3c0 .3 0 .5 0 .8l-1.7 8.8c-1.6 8.8-3.2 20.1-4.8 33.7-1.7 14-2.5 28.1-2.6 42.2-.2 27 2.5 46.9 8.1 59.8 2.8 6.4 7.2 12 12.6 16.4s11.9 7.4 18.7 8.8c18.8 4 38.1 5.7 57.3 5.1l10.3 0c19.2 .6 38.5-1.2 57.3-5.2 6.8-1.4 13.2-4.5 18.6-8.8s9.7-10 12.5-16.4c5.7-12.9 8.4-32.9 8.1-59.8-.1-14.1-1-28.2-2.6-42.1-1.7-13.6-3.3-24.8-4.9-33.7l-1.7-8.8c0-.3 0-.5 0-.8 0-1.2 .4-2.4 1.2-3.3s1.8-1.5 3-1.7l32-5 .8 0c1.1 0 2.2 .4 3.1 1.1s1.5 1.7 1.8 2.8c.6 2 .8 3.6 1.8 8.4 1.8 9.6 3.5 18.8 5.4 32 2 14.6 3.2 29.2 3.6 43.9 .7 10.2 .7 20.5 0 30.7l0 0z\"]\n};\nvar faHooli = {\n prefix: 'fab',\n iconName: 'hooli',\n icon: [640, 512, [], \"f427\", \"M144.5 352l38.3 .8c-13.2-4.6-26-10.2-38.3-16.8l0 16zm57.7-5.3l0 5.3-19.4 .8c36.5 12.5 69.9 14.2 94.7 7.2-19.9 .2-45.8-2.6-75.3-13.3zM611.1 231.5c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM582.1 352l57.9 0 0-110.5-57.9 0 0 110.5zm-73.7 0l57.9 0 0-195.3-57.9 27.3 0 168zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5l0-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9l0 40.4zM331.4 232.6c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1l0-20.7-22.5 10.6c-54.4-22.1-89-18.2-97.3 .1 0 0-24.9 32.8 61.8 110.8l0 73.7 57.9 0 0-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4l0-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6 0-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15l0 48.7c18 12.2 37.3 22.1 57.7 29.6l0-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9l0-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184l0 63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1L65.2 184zM291.7 304.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5l0-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9l0 40.4z\"]\n};\nvar faSquareGit = {\n prefix: 'fab',\n iconName: 'square-git',\n icon: [448, 512, [\"git-square\"], \"f1d2\", \"M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3-3.3 4.1-6.6 8.4-6.6 13.5 0 18.5 65.5 18.5 65.5-1.5 0-8.3-7.4-8.7-38.8-10.7l.1 0zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5 32.5 0 31.7-44.5 .7-44.5zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9s8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195l49.5 0 0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7 0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8 56.3 3.2 80.5 4.6 80.5 38.5 0 29.2-25.7 45.7-69.9 45.7-46 0-63.5-11.6-63.5-31.7 0-11.4 5.1-17.5 14-25.9-8.4-3.5-11.2-9.9-11.2-16.8 0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1 0-51.6 56.6-53.3 81.6-46.8l-.1 .2zM270.5 303.1l13 1.8 0 20.1-72.4 0 0-20.1c2.7-.4 5-.7 6.9-.9 9.9-1.2 10.1-1.3 10.1-6l0-74.7c0-4.4-.9-4.7-10.1-7.8-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6 52.6 0 0 105.5c0 4.1 .2 4.6 4.1 5.1l-.1 0zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2-30.2 0-41.7-12.2-41.7-40.9l0-66.6c0-.8 0-1.4-.2-1.8-.8-1.2-4.2-.7-19.6-.7l0-22.6c22.3-2.5 31.2-13.7 34-41.4l24.2 0c0 33.3-.6 38 .7 38.6 .3 .1 .7 0 1.3 0l35.8 0 0 25.4-37.8 0 0 61.6c-.2 6.3-.9 30.4 37.9 15.9l-.1 0z\"]\n};\nvar faGitSquare = faSquareGit;\nvar faOdnoklassniki = {\n prefix: 'fab',\n iconName: 'odnoklassniki',\n icon: [320, 512, [], \"f263\", \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9S255 269.2 255 269.2c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zm14.6-204.7a129.7 129.7 0 1 1 -259.4 .4 129.7 129.7 0 1 1 259.4-.4zm-193.4 .4a63.7 63.7 0 1 0 127.4-.4 63.7 63.7 0 1 0 -127.4 .4z\"]\n};\nvar faDrupal = {\n prefix: 'fab',\n iconName: 'drupal',\n icon: [384, 512, [], \"f1a9\", \"M272.3 108.1C236.5 72.5 202.5 38.4 192.4 0 182.4 38.4 148.1 72.5 112.4 108.1 58.8 161.7-1.9 222.4-1.9 313.4-4.3 420.7 80.8 509.6 188.1 512s196.2-82.8 198.5-190.1c.1-2.8 .1-5.6 0-8.5 0-91.1-60.8-151.7-114.3-205.3zM98 331.1c-5.9 7.5-11 15.6-15.2 24.2-.3 .7-.8 1.3-1.3 1.8s-1.2 .8-2 1l-1.7 0c-4.3 0-9.2-8.5-9.2-8.5-1.3-2-2.5-4.2-3.7-6.4l-.8-1.8c-11.2-25.7-1.5-62.3-1.5-62.3 4.8-17.8 12.7-34.7 23.2-49.9 6.4-9.6 13.5-18.9 21-27.7l9.2 9.2 43.5 44.4c.8 .9 1.3 2.1 1.3 3.3s-.5 2.4-1.3 3.3L114.1 312.3 98 331.1zm96.6 127.3c-12.9-.1-25.6-3.9-36.4-11s-19.4-17.1-24.6-28.9-7-24.9-5-37.7 7.6-24.7 16.2-34.4c14.2-16.9 31.5-33.5 50.3-55.3 22.3 23.8 36.9 40.1 51.2 58 1.1 1.4 2.1 2.9 3 4.4 7.8 11.1 12 24.4 12 38 0 8.8-1.7 17.4-5 25.5s-8.2 15.5-14.4 21.7-13.5 11.1-21.6 14.5-16.7 5.1-25.5 5.1l-.2 0zM320.7 351.6c-.4 1.4-1.2 2.6-2.3 3.6s-2.4 1.6-3.8 1.8l-1.3 0c-2.6-.9-4.9-2.7-6.3-5.1-11.6-17.5-24.9-33.9-39.5-49l-17.8-18.4-59.1-61.3c-12.4-11.5-24.2-23.6-35.4-36.3-.3-.5-.6-.9-.9-1.4-2-2.8-3.6-5.9-4.7-9.2l0-1.8c-.8-5-.4-10.1 1.2-15s4.4-9.2 8-12.7c11.4-11.4 23-23 33.8-34.9 12 13.3 24.8 26 37.4 38.6 25.8 24 49.1 50.5 69.6 79.1 17.3 24.5 26.7 53.8 27 83.8-.1 12.9-2.2 25.8-6 38.2z\"]\n};\nvar faBloggerB = {\n prefix: 'fab',\n iconName: 'blogger-b',\n icon: [448, 512, [], \"f37d\", \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8 .6-108.4 10-43.5 17.2-74.7 53.8-86.1 100.6-2.1 8.8-2.6 22.9-3.1 103.9-.6 101.5 .1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zM124.5 159.1c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4 .1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5 .2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zM316.3 358.9l-14.9 2.4-77.5 .9c-68.1 .8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"]\n};\nvar faInvision = {\n prefix: 'fab',\n iconName: 'invision',\n icon: [448, 512, [], \"f7b0\", \"M407.4 32L40.6 32C18.2 32 0 50.2 0 72.6L0 439.4C0 461.8 18.2 480 40.6 480l366.8 0c22.4 0 40.6-18.2 40.6-40.6l0-366.8C448 50.2 429.8 32 407.4 32zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9 .7l-25.8 103.3-45.1 0 8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3 .1-14.3 .9-14 23-104.1l-31.8 0 9.7-35.6 76.4 0c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4-32.3 0 9.7-35.6 68.8 0-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"]\n};\nvar faFacebookF = {\n prefix: 'fab',\n iconName: 'facebook-f',\n icon: [320, 512, [], \"f39e\", \"M80 299.3l0 212.7 116 0 0-212.7 86.5 0 18-97.8-104.5 0 0-34.6c0-51.7 20.3-71.5 72.7-71.5 16.3 0 29.4 .4 37 1.2l0-88.7C291.4 4 256.4 0 236.2 0 129.3 0 80 50.5 80 159.4l0 42.1-66 0 0 97.8 66 0z\"]\n};\nvar faCentos = {\n prefix: 'fab',\n iconName: 'centos',\n icon: [448, 512, [], \"f789\", \"M289.6 97.5l31.6 31.7-76.3 76.5 0-108.2 44.7 0zM127.2 129.2l76.3 76.5 0-108.2-44.7 0-31.6 31.7zm41.5-41.6l44.7 0 0 127.9 10.8 10.8 10.8-10.8 0-127.9 44.7 0-55.5-55.6-55.5 55.6zm26.2 168.1l-10.8-10.8-128.6 0 0-44.8-55.5 55.6 55.5 55.6 0-44.8 128.6 0 10.8-10.8zM274.2 235l107.9 0 0-44.8-31.6-31.7-76.3 76.5zm173.3 20.7l-55.5-55.6 0 44.8-127.7 0-10.8 10.8 10.8 10.8 127.7 0 0 44.8 55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5 15.3 0 0-15.3-90.3-90.5 31.6-31.7-79.4 0 0 78.7zM382.1 97.5l-78.5 0 31.6 31.7-90.3 90.5 0 15.3 15.3 0 90.3-90.5 31.6 31.7 0-78.7zM203.5 413.9l0-108.1-76.3 76.5 31.6 31.7 44.7 0 0-.1zM65.4 235l108.8 0-76.3-76.5-32.5 31.7 0 44.8zM382.1 335.2l-31.6 31.7-90.3-90.5-15.3 0 0 15.3 90.3 90.5-31.6 31.7 78.5 0 0-78.7zm0-58.8l-107.9 0 76.3 76.5 31.6-31.7 0-44.8zM321.2 382.2l-76.3-76.5 0 108.1 44.7 0 31.6-31.6zM97.9 352.9l76.3-76.5-108.8 0 0 44.8 32.5 31.7zm181.8 70.9l-44.7 0 0-127.9-10.8-10.8-10.8 10.8 0 127.9-44.7 0 55.5 55.6 55.5-55.6zM113.2 382.2l90.3-90.5 0-15.3-15.3 0-90.3 90.5-32.5-31.7 0 78.7 79.4 0-31.6-31.7z\"]\n};\nvar faScaleway = {\n prefix: 'fab',\n iconName: 'scaleway',\n icon: [448, 512, [], \"e859\", \"M243.4 117.3l-84.3 0c-18.5 2.1-32.7 17.5-33.4 36l0 121.9c0 8.2 3.2 15.3 8.5 20.7s12.5 8.6 20.6 8.6c16 0 29.2-13.2 29.2-29.2l0-77.4c0-12.1 10-22.1 22.1-22.1l38.1 0c8.2 0 15.3-3.2 20.6-8.6s8.5-12.8 8.5-21c0-16-13.9-28.9-29.9-28.9zM205.3 395.4l84.3 0c18.5-2.1 32.7-17.5 33.4-36l0-121.9c0-8.2-3.2-15.3-8.5-20.7s-12.5-8.6-20.6-8.6c-16 0-29.2 13.2-29.2 29.2l0 77.4c0 12.1-10 22.1-22.1 22.1l-38.1 0c-8.2 0-15.3 3.2-20.6 8.6s-8.5 12.8-8.5 21c.4 16 13.9 28.9 29.9 28.9zM104.3 0L257.6 0c101 0 182.5 81.6 182.1 182.9l0 242.8c-4.6 46-42 82.4-88.2 86.3L190 512C89.3 512 7.5 430 7.5 329.1L7.5 97c0-53.5 43.4-97 96.8-97zM381.7 182.9c0-68.5-55.9-124.4-124.2-124.4l-153 0C83.3 58.5 66.2 75.6 66.2 97l0 232.1c0 68.8 55.5 124.4 124.2 124.4l158.7 0c16.7-2.1 29.9-15 32.7-31.4l0-239.2z\"]\n};\nvar faCcAmazonPay = {\n prefix: 'fab',\n iconName: 'cc-amazon-pay',\n icon: [576, 512, [], \"f42d\", \"M124.7 201.8c.1-11.8 0-23.5 0-35.3l0-35.3c0-1.3 .4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5 .9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5 .9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8 .1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM368.5 103.9c.4 1.7 .9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4 .2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9 .9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3 .1 4.6 1.6 6.7 6.2 7.5 4.7 .8 9.4 1.6 14.2 1.7 14.3 .3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5 .6-1.5 1.1-3 1.3-4.6 .4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5 .4-.3 .8-.6 1.4-1 .5 3.2 .9 6.2 1.5 9.2 .5 2.6 2.1 4.3 4.5 4.4 4.6 .1 9.1 .1 13.7 0 2.3-.1 3.8-1.6 4-3.9 .1-.8 .1-1.6 .1-2.3l0-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1l-10 0c-.8 .1-1.6 .3-2.5 .3-8.2 .4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5 .1 2.8-.1 5.6 0 8.3 .1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4 .8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7 .3 6.9 .2 13.9 .3 20.8 0 .4-.1 .7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9 .1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9l0 175.3c0 .8 0 1.7 .1 2.5 .2 2.5 1.7 4.1 4.1 4.2 5.9 .1 11.8 .1 17.7 0 2.5 0 4-1.7 4.1-4.1 .1-.8 .1-1.7 .1-2.5l0-60.7c.9 .7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2l-7 0c-1.2 .2-2.4 .3-3.6 .5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6l-9.7 0c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6 .7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1l0 1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4 .7 0 1.4 .2 2.1 .3l17.7 0c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zM544 311.3c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2 .8-2.4 1.8-3.1 3-.6 .9-.7 2.3-.5 3.4 .3 1.3 1.7 1.6 3 1.5 .6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1 .3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7 .3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3 .8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6 .7-3 1.2-6.1 1.7-9.1 .2-4.7 .2-9.6 .2-14.5z\"]\n};\nvar faEbay = {\n prefix: 'fab',\n iconName: 'ebay',\n icon: [640, 512, [], \"f4f4\", \"M606.5 189.5l-54.8 109.9-54.9-109.9-37.5 0 10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1l33.7 0c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33l0 3.4c-12.7 0-28 .1-41.7 .4-42.4 .9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2l0-80.6-32.1 0 0 169.5c0 10.3-.6 22.9-1.1 33.1l31.5 0c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6 .3 13.3 1.1 20.2l29.8 0c-.7-8.2-1-17.5-1-26.8l0-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1 35.9 0 99.2-194.8-34 0zM244.2 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6l0 3.3zM33.2 268.1l128.8 0 0-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1l-33.1 0c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4l-94.4 0c6.9-56.6 92.1-54.7 94.4 0z\"]\n};\nvar faContao = {\n prefix: 'fab',\n iconName: 'contao',\n icon: [512, 512, [], \"f26d\", \"M45.4 305c14.4 67.1 26.4 129 68.2 175L34 480c-18.7 0-34-15.2-34-34L0 66C0 47.3 15.2 32 34 32l57.7 0c-13.8 12.6-26.1 27.2-36.9 43.6-45.4 70-27 146.8-9.4 229.4zM478 32l-90.2 0c21.4 21.4 39.2 49.5 52.7 84.1L303.4 145.4c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6l52.1 0c18.7 0 34-15.2 34-34L512 66c0-18.8-15.2-34-34-34z\"]\n};\nvar faEllo = {\n prefix: 'fab',\n iconName: 'ello',\n icon: [512, 512, [], \"f5f1\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM399.8 293.2C383.3 358.5 323.8 404.8 256 404.8S128.7 358.5 112.2 293.2c-1.6-7.4 2.5-15.7 9.9-17.4s15.7 2.5 17.4 9.9c14 52.9 62 90.1 116.6 90.1s102.5-37.2 116.6-90.1c1.7-7.4 9.9-12.4 17.4-9.9 7.4 1.7 12.4 9.9 9.9 17.4z\"]\n};\nvar faSistrix = {\n prefix: 'fab',\n iconName: 'sistrix',\n icon: [448, 512, [], \"f3ee\", \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9-91.9-.1-166.6 75.7-166.6 168.8S74.7 369.8 166.5 369.8c39.8 0 76.3-14.2 105-37.9L417.5 480 448 449zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71 294.6 129.3 294.6 200.9 237.2 330.8 166.5 330.8z\"]\n};\nvar faPeriscope = {\n prefix: 'fab',\n iconName: 'periscope',\n icon: [448, 512, [], \"f3da\", \"M370 63.6c-38.6-41-89.5-63.6-143.4-63.6-114.7 0-208.1 96.2-208.1 214.4 0 75.1 57.8 159.8 82.7 192.7 36.6 48.4 91.4 104.9 125.4 104.9 41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3 .1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8l0 .4c0 24.5 20.1 44.4 44.8 44.4s44.8-19.9 44.8-44.4c0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"]\n};\nvar faExpeditedssl = {\n prefix: 'fab',\n iconName: 'expeditedssl',\n icon: [512, 512, [], \"f23e\", \"M256 43.4a212.6 212.6 0 1 0 0 425.2 212.6 212.6 0 1 0 0-425.2zM158.6 176.3c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4l0 26.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-26.6c0-82.1-124-82.1-124 0l0 26.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-26.6 .2 0zM397.7 380c0 9.7-8 17.7-17.7 17.7l-248 0c-9.7 0-17.7-8-17.7-17.7l0-141.7c0-9.7 8-17.7 17.7-17.7l248 0c9.7 0 17.7 8 17.7 17.7l0 141.7zm-248-137.3l0 132.9c0 2.5-1.9 4.4-4.4 4.4l-8.9 0c-2.5 0-4.4-1.9-4.4-4.4l0-132.9c0-2.5 1.9-4.4 4.4-4.4l8.9 0c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4l0 31.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 17.7a230.3 230.3 0 1 1 0 460.6 230.3 230.3 0 1 1 0-460.6z\"]\n};\nvar faNapster = {\n prefix: 'fab',\n iconName: 'napster',\n icon: [512, 512, [], \"f3d2\", \"M306.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5l100.7 0zm44-199.6c20-16.9 43.6-29.2 69.6-36.2l0 161.2c0 219.4-328 217.6-328 .3l0-161.6c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zM141.5 115.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9 .1-6.3-4-13.9-8.2-20.4-11.4zM51.8 93.2l0 69.3c-58.4 36.5-58.4 121.1 .1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7 .2-158.2l0-69.2c-17.3 .5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5 .1-16.3-4.4-33.1-7-50.6-7.5zM267.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zM131.7 296.7c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zM300.8 420.1c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"]\n};\nvar faDelicious = {\n prefix: 'fab',\n iconName: 'delicious',\n icon: [448, 512, [], \"f1a5\", \"M446.6 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5l-352 0C21.6 32 .1 53.5 .1 80l0 352c0 4.1 .5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5l352 0c26.5 0 48-21.5 48-48l0-352.1c-.1-4.1-.6-8.2-1.6-12zM416.1 432c0 8.8-7.2 16-16 16l-176 0 0-192-192 0 0-176c0-8.8 7.2-16 16-16l176 0 0 192 192 0 0 176z\"]\n};\nvar faGuilded = {\n prefix: 'fab',\n iconName: 'guilded',\n icon: [448, 512, [], \"e07e\", \"M443.9 64L5 64c0 103.3 22.2 180.1 43.4 222.4 64.1 127.8 176 161.6 177.3 161.6 55.7-20.5 104.5-56.3 140.6-103.5 25.9-33.9 53.1-87.2 65.9-145.8l-259.9 0c4.1 36.4 22.2 67.9 45.1 86.9l88.6 0c-17 28.2-48.2 54.4-80.5 69.5-31.2-13.3-69.1-46.5-96.5-98.4-26.7-53.8-27.1-105.9-27.1-105.9l336.1 0c4-28.8 5.9-57.9 5.9-86.9z\"]\n};\nvar faObsidian = {\n prefix: 'fab',\n iconName: 'obsidian',\n icon: [384, 512, [], \"e879\", \"M142.3 320.3c36.1-8.2 70.3-11 101.3 .7 31.8 11.9 61.7 39.6 86.7 96-8.1 17.7-12.4 36.9-14.7 53.8-3.1 22.9-25.4 40.7-47.7 34.6-31.7-8.7-68.3-22.3-101.3-24.9-4.4-.3-50.6-3.8-50.6-3.8-1.7-.1-3.4-.4-5.1-.8 31.5-64.2 38.2-115.1 31.3-155.4zM55 219.5c22.3 14.8 49.5 37.8 64.1 73.6 16.1 39.4 17.8 95.7-21.6 176.1-1-.8-2.1-1.7-3-2.7L7.4 376.8c-9.5-9.8-12.1-24.4-6.5-36.9 .6-1.3 44.6-98.3 54.1-120.4zm264.3-91.3c4.9 6.2 7.4 14 7.4 21.9 .1 20.8 1.8 63.6 13.3 91.2 11.2 26.8 31.8 55.8 42.5 70 4.1 5.5 4.8 12.9 1.3 18.7-7.6 12.8-22.6 37.5-43.8 69.2-.3 .4-.6 .9-.8 1.3-25.2-52.2-55.9-80.7-90.4-93.6-9.6-3.6-19.5-6-29.4-7.3-17.8-45.8-23.2-79.7-22-106.4 1.2-27.4 9.2-47.8 18.2-66.3 8.9-18.1 19.8-35.9 24.9-55.7 3.2-12.5 4.2-25.8 1.7-40.9l77.1 98zM184.2 14.1c10.3-9.2 24.6-10.8 36.3-5.5 9.6 24.6 9.7 42.8 5.6 58.8-4.6 17.8-14.1 33-23.9 52.8-9.6 19.5-18.4 42-19.7 72.3-1.2 27.9 4.1 61.9 20.4 105.8-21-.6-42.5 2.6-63.7 7.4-1.7-6.4-3.8-12.4-6.1-18.2-17.3-42.2-49.9-67.9-74.1-83.3 3.1-18.7 8.2-55.4 11.6-77.5 1.2-7.6 4.9-14.6 10.7-19.8L184.2 14.1z\"]\n};\nvar faXbox = {\n prefix: 'fab',\n iconName: 'xbox',\n icon: [512, 512, [], \"f412\", \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39-27.9-18.2-34.2-25.7-34.2-40.6 0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5c-16.9-80-67.5-130.3-74.6-130.3-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8 42.4 53.3 102.2 139.4 122.9 202.3 6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43c47.7-2.5 109.7 34.5 114.3 35.4 .7 .1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"]\n};\nvar faUntappd = {\n prefix: 'fab',\n iconName: 'untappd',\n icon: [640, 512, [], \"f405\", \"M401.5 49.9C321.7 210 316.9 202.4 313.6 223.1l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.8 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4L169.1 198.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1 .6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4 .9-2.5 4.4-2.3 7.4 .1 2.8-2.3 3.6-6.5 6.1zM230.3 36.4c3.4 .9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3 .5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5 .1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6 .3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620.2 406.7L471.4 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6 .5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4L494.8 497.2c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"]\n};\nvar faGooglePlusG = {\n prefix: 'fab',\n iconName: 'google-plus-g',\n icon: [640, 512, [], \"f0d5\", \"M386.3 228.5c1.8 9.7 3.1 19.4 3.1 32 0 109.8-73.6 187.5-184.4 187.5-106.1 0-192-85.9-192-192S98.9 64 205 64c51.9 0 95.1 18.9 128.6 50.3l-52.1 50c-14.1-13.6-39-29.6-76.5-29.6-65.5 0-118.9 54.2-118.9 121.3S139.5 377.3 205 377.3c76 0 104.5-54.7 109-82.8l-109 0 0-66 181.3 0 0 0zm185.4 6.4l0-55.7-56 0 0 55.7-55.7 0 0 56 55.7 0 0 55.7 56 0 0-55.7 55.7 0 0-56-55.7 0z\"]\n};\nvar faGithubAlt = {\n prefix: 'fab',\n iconName: 'github-alt',\n icon: [512, 512, [], \"f113\", \"M202.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM496 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3l48.2 0c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"]\n};\nvar faGetPocket = {\n prefix: 'fab',\n iconName: 'get-pocket',\n icon: [448, 512, [], \"f265\", \"M407.6 64l-367 0C18.5 64 0 82.5 0 104.6L0 239.8C0 364.5 99.7 464 224.2 464 348.2 464 448 364.5 448 239.8l0-135.2C448 82.2 430.3 64 407.6 64zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0-113.7-108.9-114.9-105.1-114.9-123.2 0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3s30.7 13.8 30.7 30.7c0 17.8-2.9 15.7-114.8 123.2z\"]\n};\nvar faGlide = {\n prefix: 'fab',\n iconName: 'glide',\n icon: [448, 512, [], \"f2a5\", \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM384 267c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8 .1 4.1-1.7 4.1-3.5z\"]\n};\nvar faBity = {\n prefix: 'fab',\n iconName: 'bity',\n icon: [512, 512, [], \"f37a\", \"M86.5 67.2c95.4-89.2 246.1-91.2 343.1 3.8 14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30-112.2-33.9-175.8-149.7-147.5-261 5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8s-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0l0 71.6c0 69.3 60.7 90.9 118 90.1 57.3 .8 118-20.8 118-90.1l0-71.6c0-19.6-32.5-21.8-32.5 0z\"]\n};\nvar faWpexplorer = {\n prefix: 'fab',\n iconName: 'wpexplorer',\n icon: [512, 512, [], \"f2de\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm480 0a224 224 0 1 0 -448 0 224 224 0 1 0 448 0zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94-14.6 0-50-100-48.9 100-14 0 51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zM259.1 177.4l68.6 29.4-29.4 68.3-68.3-29.1 29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"]\n};\nvar faMegaport = {\n prefix: 'fab',\n iconName: 'megaport',\n icon: [512, 512, [], \"f5a3\", \"M222.5 209.6l0 66.2 33.5 33.5 33.3-33.3 0-66.4-33.4-33.4-33.4 33.4zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM401.1 422.4l-26.1 19.2-26-19.2 0-65.5-33.4-33.4-33.4 33.4 0 65.5-26.2 19.2-26.1-19.2 0-65.5-33.4-33.4-33.5 33.4 0 65.5-26.1 19.2-26.1-19.2 0-87 59.5-59.5 0-87.9 59.5-59.5 0-75.6 26.1-19.2 26.1 19.2 0 75.6 59.5 59.5 0 87.6 59.7 59.7 0 87.1-.1 0z\"]\n};\nvar faLeetcode = {\n prefix: 'fab',\n iconName: 'leetcode',\n icon: [448, 512, [], \"e86a\", \"M235.4 9.3C246.5-2.5 265.1-3.2 277 7.9s12.5 29.8 1.4 41.6l-43 46c21.5 3.3 42.1 11.8 59.1 25.6l74.6 60.3c12.6 10.2 14.6 28.8 4.4 41.4s-28.7 14.6-41.4 4.4l-74.6-60.3c-26.2-21.1-71.9-18.2-94.5 5.9L81 261c-21.5 23-19.1 60 5.6 84.2l91.2 89.4c24.9 24 65.6 24 90.1-.4l51.1-51c11.5-11.5 30.1-11.5 41.6 .1s11.4 30.2-.1 41.7l-51.1 51c-47.1 47.1-124 47.7-171.9 1.6l-92-90.2C-1.4 341.3-6 267.9 38 220.7L235.4 9.3zM411.7 273.2c16.2 0 29.4 13.2 29.4 29.5s-13.2 29.5-29.4 29.5l-216.9 0c-16.2 0-29.4-13.2-29.4-29.5s13.2-29.5 29.4-29.5l216.9 0z\"]\n};\nvar faMdb = {\n prefix: 'fab',\n iconName: 'mdb',\n icon: [576, 512, [], \"f8ca\", \"M17.4 160.4l-10.4 191.6 43.9 0 5.6-79.8 27.9 79.8 44.7 0 25.5-77.4 4.8 77.4 45.5 0-12.8-191.6-45.5 0-40.7 117.3-42.3-117.3-46.3 0zm281 0l-47.9 0 0 191.6 47.9 0s95 .8 94.2-95.8c-.8-94.2-94.2-95.8-94.2-95.8l0 0zm-1.2 146.5l0-102.1s46 4.3 46.8 50.6-46.8 51.5-46.8 51.5l0 0zm238.3-74.2c7.2-11.4 10-25 8-38.3-5.3-35.8-55.1-34.3-55.1-34.3l-51.9 0 0 191.6 45.5 0s87 4.8 87-63.8c0-43.1-33.5-55.1-33.5-55.1l0 0zm-51.9-31.9s13.6-1.6 16 9.6c1.4 6.7-4 12-4 12l-12 0 0-21.6zm-.1 109.5l.1-24.9 0-18.2 .1 0s41.6-4.7 41.2 22.4c-.3 25.7-41.3 20.7-41.3 20.7l0 0z\"]\n};\nvar faPage4 = {\n prefix: 'fab',\n iconName: 'page4',\n icon: [512, 512, [], \"f3d7\", \"M256 504C119 504 8 393 8 256S119 8 256 8c20.9 0 41.3 2.6 60.7 7.5L50.3 392 256 392 256 504zm0-143.6l0-213.6-149.4 213.6 149.4 0zM352 392l0 92.7c45.7-19.2 84.5-51.7 111.4-92.7L352 392zm57.4-138.2l-21.2 8.4 21.2 8.3 0-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9l0 7.7 16.2 0 0-10c0-5.9-2.3-10.6-8.2-10.6zM504 256c0 37.3-8.2 72.7-23 104.4l-129 0 0-333.1C441.3 64.8 504 153.1 504 256zM368.4 143.6l68.2 0 0-47.6-13.9 0 0 32.6-13.9 0 0-29.6-13.9 0 0 29.6-12.7 0 0-32.6-13.9 0 0 47.6 .1 0zm68.1 185.3l-26.5 0 0-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9l0 25.3 68.2 0 0-15-.1 0zm0-103l-68.2 29.7 0 12.4 68.2 29.5 0-16.6-14.4-5.7 0-26.5 14.4-5.9 0-16.9zm-4.8-68.5l-35.6 0 0 26.6 13.9 0 0-12.2 11 0c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"]\n};\nvar faTheRedYeti = {\n prefix: 'fab',\n iconName: 'the-red-yeti',\n icon: [512, 512, [], \"f69d\", \"M488.7 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9-9.1 4.4-17.6 10-25.3 16.5-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5 .5c-22-7.7-45.1-12.2-68.4-13.3-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2-1.8-.5c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27-3.3 8.1-3.5 17.1-.5 25.3 3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0l-3.7 0 33 14.3c-20.2 18.9-36.1 41.9-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8-10.9 12.2-20.2 25.8-27.8 40.3-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7 .7 3.4 1.2 5.2 0 25.5 .4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5c-1.8-11.7-4.8-23.1-8.9-34.2-1.5-4.8-3.8-9.3-6.8-13.3l0 0zM398.5 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4c-9 .5-18 .5-27 0 12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9c-1.3-5-1.8-10.1-1.7-15.2 5.4 .5 8.8 3.4 9.3 10.1 .5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8 .9-.7 14.8l-2.5 0c-1.2-8.2-4.1-16-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2l20.3-11.8zm-267.4 42l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5 .5 20.9 1.2 5.2 1.7 10.6 2.5 16 2.5l.5-1.7-8.4-35.8 13.5 29c2.8-4.4 4.8-9.2 5.9-14.3 1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3c-2.6 8.3-4.7 16.8-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5c21.9-13.5 45.5-19.4 71.3-18.9l21.1 .5c-11.8 13.5-27.8 21.9-48.5 24.8-7.7 1.4-15.6 2.4-23.4 2.9l-.2-.5-2.5-1.2c-4.8-1-9.7-.3-14 2-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7 .5 1.2c2 .2 3.9 .5 6.2 .7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4 1.2 0c6.1-8.2 15.2-13.6 25.3-15.2l0-3c6.4 .5 13 1 19.4 1.2 6.4 0 8.4 .5 5.4 1.2 7.2 4 14.1 8.6 20.7 13.5 13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6 0 9.5-1 19-3 28.3-3.5 15.9-8.9 31.3-16 46l2.5 .5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2 .2-.2 .2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.3-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1l10.6-8.4c-8.8-3-18.2-3-28.3 .5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zM368 473.1c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3 11.1 9.2 22.9 17.5 35.4 24.8 3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1 8.7 7.3 15.8 16.4 20.7 26.6-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2 .7 89.5zM483.3 258.7l-2.5 .5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2-1.2 0-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2c-31.2 4.7-63 2.5-93.2-6.4-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4L29.3 284.8 7 307.1c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2 1.2-.7 2.4-1.3 3.7-1.7 .6-3.2 .4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7 .5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6l0-.5 1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8 0-2-5.4-4.2 10.1 0 5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5c11.1 .4 22.1 1.8 33 4.2l-23.6 2.5-1.2 3 26.6 23.1c9.9 9.9 18.9 20.6 27 32-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5-8.9-12.8zm-6.1-71.3l-3.9 13-14.3-11.8 18.2-1.2zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2c8.3 1.3 16.9 .4 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7c-3.5-5.7-8.4-10.5-14.3-13.8l0 0zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6l0-4.7-1.2 .5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5 .5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6 .3 9.3-1.1 9.3-14.8l-.5 0c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2 .5 1.1 1.3 2 2.2 2.8s2 1.2 3.2 1.4l0 0zm40.1-50.1l-2.5 .5 .5 3c9.1-.5 18.1 1.5 26.1 5.9-2.5-5.5-10-14.3-28.3-14.3l.5 2.5 3.7 2.4zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7c8.4-7.2 13.7-17.3 14.8-28.3 1.7-16-1.2-29.5-8.8-41.3l13-7.6c0-.3 0-.6-.1-.9s-.2-.6-.4-.8c-2.2-.9-4.6-1.2-7-.9s-4.6 1.2-6.5 2.6c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5-1.9 7.7-2.9 15.6-2.9 23.6-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3 2.5 8.2 3.5 16.8 3 25.3-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6-3.8 .4-7.6 .2-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9 .5 .5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6-1.7 11.2-1.2 22.7 1.7 33.7 .1 .5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2 .5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6l2.5 0-11.8-7.6-7.1 .5c-5.9 1.2-12.3 4.2-19.4 8.4l3.1-6.5z\"]\n};\nvar faJira = {\n prefix: 'fab',\n iconName: 'jira',\n icon: [512, 512, [], \"f7b1\", \"M498.5 241.7c-72.9-72.7-169.4-169.9-241.5-241.7-165.5 164.9-242.5 241.7-242.5 241.7-7.9 7.9-7.9 20.7 0 28.7 132.8 132.3 61.8 61.5 242.5 241.6 379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zM257 331.7l-76-75.7 76-75.7 76 75.7-76 75.7z\"]\n};\nvar faFedex = {\n prefix: 'fab',\n iconName: 'fedex',\n icon: [640, 512, [], \"f797\", \"M586 284.5l53.3-59.9-62.4 0-21.7 24.8-22.5-24.8-118.7 0 0-16 56.1 0 0-48.1-151.2 0 0 75.5-.5 0c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14l0-24.2-54.8 0 0-26.2 60 0 0-41.1-109 0 0 184.4 49 0 0-77.5 48.9 0c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7l-42 0c-14.7 20.9-45.8 8.9-45.8-14.6l85.5 0c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6l.5 0 0 11.9 212.2 0 22.1-25 22.3 25 64.4 0-54-60.5zM139.3 267.9c6.1-26.3 41.7-25.6 46.5 0l-46.5 0zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1l-94.4 0 0-166.5 95 0 0 30.2-56.1 0 0 33.9 55.5 0 0 28.1-56.1 0 0 44.7 56.1 0 0 29.6zm-45.9-39.8l0-24.4 56.1 0 0-44 50.7 57-50.7 57 0-45.6-56.1 0zm138.6 10.3l-26.1 29.5-38.1 0 45.6-51.2-45.6-51.2 39.7 0 26.6 29.3 25.6-29.3 38.5 0-45.4 51 46 51.4-40.5 0-26.3-29.5z\"]\n};\nvar faEvernote = {\n prefix: 'fab',\n iconName: 'evernote',\n icon: [384, 512, [], \"f839\", \"M121.1 132.2c1.6 22.3-17.6 21.6-21.6 21.6-68.9 0-73.6-1-83.6 3.3-.6 .2-.7 0-.4-.4L124.1 46.4c.4-.4 .6-.2 .4 .4-4.4 10-3.4 15.1-3.4 85.4zm79 308c-14.7-37.1 13-76.9 52.5-76.6 17.5 0 22.6 23.2 7.9 31.4-6.2 3.3-24.9 1.7-25.1 19.2 0 17.1 19.7 25 31.2 24.9 6 0 11.9-1.2 17.5-3.5s10.6-5.7 14.8-9.9 7.6-9.3 9.9-14.8 3.5-11.5 3.5-17.5l0-.1c0-11.6-7.8-47.2-47.5-55.3-7.7-1.5-65-6.3-68.4-50.5-3.7 16.9-17.4 63.5-43.1 69.1-8.7 1.9-69.7 7.6-112.9-36.8 0 0-18.6-15.2-28.2-58-3.4-15.7-9.3-39.7-11.1-62 0-18 11.1-30.4 25.1-32.2 81 0 90 2.3 101-7.8 9.8-9.2 7.8-15.5 7.8-102.8 1-8.3 7.8-30.8 53.4-24.1 6 .9 31.9 4.2 37.5 30.6L290 74.8c20.4 3.7 70.9 7 80.6 57.9 22.7 121.1 8.9 238.5 7.8 238.5-16 114.4-111.1 108.9-111.1 108.9-19-.2-54.2-9.4-67.3-39.8l0 0zM281 235.4c-1 1.9-2.2 6 .9 7 14.1 4.9 39.8 6.8 45.9 5.5 3.1-.2 3.1-4.4 2.5-6.6-3.5-21.8-40.8-26.5-49.2-5.9l0 0z\"]\n};\nvar faUsb = {\n prefix: 'fab',\n iconName: 'usb',\n icon: [640, 512, [], \"f287\", \"M633.5 256c0 3.1-1.7 6.1-4.5 7.5L539.9 317c-1.4 .8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8l0-35.6-230.7 0c25.3 39.6 40.5 106.9 69.6 106.9l26.7 0 0-26.8c0-5 3.9-8.9 8.9-8.9l89.1 0c5 0 8.9 3.9 8.9 8.9l0 89.1c0 5-3.9 8.9-8.9 8.9l-89.1 0c-5 0-8.9-3.9-8.9-8.9l0-26.7-26.7 0c-75.4 0-81.1-142.5-124.7-142.5l-100.3 0c-8.1 30.6-35.9 53.5-69 53.5-39.3-.1-71.3-32.1-71.3-71.4s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4 40.1-89.1 58.1-82.1 108.9-82.1 7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6l-29.8 0c-29.1 0-44.3 67.4-69.6 106.9l302.1 0 0-35.6c0-3.3 1.7-6.1 4.5-7.8s6.4-1.4 8.9 .3L629 248.8c2.8 1.1 4.5 4.1 4.5 7.2z\"]\n};\nvar faAngrycreative = {\n prefix: 'fab',\n iconName: 'angrycreative',\n icon: [640, 512, [], \"f36e\", \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2-47.3 115.4-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8 12.9-120.1-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8-32.8 2-59.7-20.9-56.4-58.2 2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6 32.1 110.6 8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7c-6.7-12.4-14.4-16.6-26.3-15.8-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4L145 326.3c14.2-.9 27.5-2.1 28.8-16.1zM194.9 381l5.8-60c-5 13.5-14.7 21.1-27.9 26.6L194.9 381zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zM160.2 261.4l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8 .3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1 .6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"]\n};\nvar faMizuni = {\n prefix: 'fab',\n iconName: 'mizuni',\n icon: [512, 512, [], \"f3cc\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM176 359.9c-31.4 10.6-58.8 27.3-80 48.2L96 136c0-22.1 17.9-40 40-40s40 17.9 40 40l0 223.9zM296 350c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1l0-214c0-22.1 17.9-40 40-40s40 17.9 40 40l0 214zm120 57.7c-21.2-20.8-48.6-37.4-80-48L336 136c0-22.1 17.9-40 40-40s40 17.9 40 40l0 271.7z\"]\n};\nvar faItchIo = {\n prefix: 'fab',\n iconName: 'itch-io',\n icon: [512, 512, [], \"f83a\", \"M71.9 34.8C50.2 47.7 7.4 96.8 7 109.7l0 21.3c0 27.1 25.3 50.8 48.2 50.8 27.6 0 50.5-22.8 50.5-50 0 27.1 22.2 50 49.8 50s49-22.8 49-50c0 27.1 23.6 50 51.2 50l.5 0c27.6 0 51.2-22.8 51.2-50 0 27.1 21.5 50 49 50s49.8-22.8 49.8-50c0 27.1 23 50 50.5 50 23 0 48.3-23.8 48.3-50.8l0-21.3c-.4-12.9-43.2-62.1-64.9-75-67.4-2.3-114.2-2.7-184-2.7S91.1 33.1 71.9 34.8zM204.2 169.2c-22 38.4-77.9 38.7-99.8 .2-13.2 23.1-43.2 32.1-56 27.7-3.9 40.2-13.7 237.1 17.7 269.2 80 18.7 302.1 18.1 379.8 0 31.6-32.3 21.3-232 17.7-269.2-12.9 4.4-42.9-4.6-56-27.7-22 38.5-77.8 38.1-99.8-.2-7.1 12.5-23 28.9-51.8 28.9-10.4 .3-20.8-2.2-29.9-7.3s-16.7-12.6-21.9-21.6l0 0zm-41.6 53.8c16.5 0 31.1 0 49.2 19.8 29.3-3 58.9-3 88.2 0 18.2-19.7 32.8-19.7 49.2-19.7 52.3 0 65.2 77.5 83.9 144.4 17.3 62.2-5.5 63.7-34 63.7-42.1-1.6-65.5-32.2-65.5-62.8-39.3 6.4-101.9 8.8-155.6 0 0 30.6-23.3 61.2-65.5 62.8-28.4-.1-51.2-1.6-33.9-63.7 18.7-67 31.6-144.4 83.9-144.4l0-.1zM256 270.8s-44.4 40.8-52.4 55.2l29-1.2 0 25.3c0 1.5 21.3 .2 23.3 .2 11.6 .5 23.3 1 23.3-.2l0-25.3 29 1.2c-8-14.5-52.4-55.2-52.4-55.2l.1 0z\"]\n};\nvar faWindows = {\n prefix: 'fab',\n iconName: 'windows',\n icon: [448, 512, [], \"f17a\", \"M0 93.7l183.6-25.3 0 177.4-183.6 0 0-152.1zM0 418.3l183.6 25.3 0-175.2-183.6 0 0 149.9zm203.8 28l244.2 33.7 0-211.6-244.2 0 0 177.9zm0-380.6l0 180.1 244.2 0 0-213.8-244.2 33.7z\"]\n};\nvar faStumbleupon = {\n prefix: 'fab',\n iconName: 'stumbleupon',\n icon: [512, 512, [], \"f1a4\", \"M502.9 266l0 69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3l0-70.2 34.3 16 51.1-15.2 0 70.6c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338l0-72 85.9 0zM278.2 207.8l34.3 16 51.1-15.2 0-35.6c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2l0 162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6l0-68.6-86 0 0 69.7c0 62 50.3 112.3 112.4 112.3 61.6 0 112.4-49.5 112.4-110.8l0-160.3c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7l0 30.9z\"]\n};\nvar faGoogle = {\n prefix: 'fab',\n iconName: 'google',\n icon: [512, 512, [], \"f1a0\", \"M500 261.8C500 403.3 403.1 504 260 504 122.8 504 12 393.2 12 256S122.8 8 260 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9c-88.3-85.2-252.5-21.2-252.5 118.2 0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9l-140.8 0 0-85.3 236.1 0c2.3 12.7 3.9 24.9 3.9 41.4z\"]\n};\nvar faDiscord = {\n prefix: 'fab',\n iconName: 'discord',\n icon: [576, 512, [], \"f392\", \"M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1 .1s-.6 .4-.8 .8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2c-41.3 7.1-81.6 19.6-119.7 37.1-.3 .1-.6 .4-.8 .7-76.2 113.8-97.1 224.9-86.9 334.5 0 .3 .1 .5 .2 .8s.3 .4 .5 .6c44.4 32.9 94 58 146.8 74.2 .4 .1 .8 .1 1.1 0s.7-.4 .9-.7c11.3-15.4 21.4-31.8 30-48.8 .1-.2 .2-.5 .2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6 .2-.9 .3-.5 .6-.7c3.1-2.3 6.2-4.7 9.1-7.1 .3-.2 .6-.4 .9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1 .7-.2 1-.2s.7 .2 .9 .4c2.9 2.4 6 4.9 9.1 7.2 .2 .2 .4 .4 .6 .7s.2 .6 .2 .9-.1 .6-.3 .9-.4 .5-.6 .6c-14.7 8.6-30 15.9-45.9 21.8-.2 .1-.5 .2-.7 .4s-.3 .4-.4 .7-.1 .5-.1 .8 .1 .5 .2 .8c8.8 17 18.8 33.3 30 48.8 .2 .3 .6 .6 .9 .7s.8 .1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2 .2-.2 .4-.4 .5-.6s.2-.5 .2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2zm195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2z\"]\n};\nvar faHackerNews = {\n prefix: 'fab',\n iconName: 'hacker-news',\n icon: [448, 512, [], \"f1d4\", \"M0 32l0 448 448 0 0-448-448 0zM21.2 229.2l-.2 0c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4zm218 53.9l0 100.9-31.4 0 0-102.7-79.8-153.3 37.3 0c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6l34.8 0-80.8 155.1z\"]\n};\nvar faEleventy = {\n prefix: 'fab',\n iconName: 'eleventy',\n icon: [640, 512, [\"11ty\"], \"e7d6\", \"M615.3 168.5c2.3 0 4.6 .7 6.6 2.2 1.9 1.4 3.1 3.3 3.8 5 1.4 3.3 1.8 7.3 1.8 11.3 0 2.2-.3 4.9-.7 7.6l0 .4-50.9 264.9 0 0c-4 22.1-8.5 39.4-13.6 51.7-5 12.1-10.9 21.6-18.6 27l0 0c-7.5 5.3-16.9 7.7-27.6 8l-3 0c-16 0-29.3-4.2-36.9-14.8-.1-.1-.1-.1-.2-.2-.1-.2-.3-.4-.5-.6l0 0c-1.8-2.4-2.5-5.2-2.9-7.4-.5-2.8-.7-6.1-.7-9.8 0-7.3 .6-13.5 2.1-18.2 1.4-4.4 4.8-10.4 12.2-10.4l1.3 .1c.2 0 .4 .1 .5 .1 .3 .1 .6 .1 .8 .2 .6 .1 1.3 .3 2.2 .6l7.6 2.2 .1 0 7.6 2.1c.9 .2 1.7 .4 2.2 .5 .4 .1 .6 .1 .7 .1 0 0 .1 0 .2-.1 .1-.1 .4-.2 .8-.6 .9-.9 2.2-2.6 3.6-5.7 2.6-5.8 4.2-14.7 4.2-27.4 0-.7-.3-3.4-1.3-8.9-.9-5.1-2.3-12.2-4.2-21.1l-56-232.9-.1-.4 0-.3c-.4-2.7-.7-5.3-.7-7.3 0-3.7 .4-7.5 1.7-10.6 .7-1.6 1.8-3.4 3.5-4.9 1.9-1.5 4.2-2.3 6.5-2.3l34.6 0c4.6 0 8.7 1.7 11.9 5l1.3 1.5c1.2 1.6 2 3.4 2.7 5.2 .9 2.4 1.5 5.1 2 8.1l30.4 161.2 23.8-160c.8-5.8 2.2-11.4 5.1-15.1 3-3.8 7.2-5.8 12-5.8l24 0zM375.1 34.6c2.6 0 5.1 .7 7.4 2.3 2.2 1.5 3.7 3.6 4.7 5.7 1.9 4 2.5 9.1 2.5 14.5l0 111.2c0 .1 0 .2 0 .3l32.4 0c2.5 0 5 .6 7.2 2.1 2.2 1.4 3.7 3.4 4.8 5.5 2 3.9 2.6 8.8 2.6 13.9l0 15.4c0 5-.6 9.8-2.6 13.7-1.1 2-2.6 4-4.8 5.4-2.2 1.4-4.7 2-7.1 2l-32.5 0 0 145.8c0 10.8 .7 19.5 2 26.2 1.4 6.9 3.1 10.9 4.7 12.9 1.2 1.5 2.2 2.5 3.1 3.2l2.2 1.4 .1 .1 2.9 .8c1.2 .2 2.6 .3 4.3 .3l20.3 0c4.5 0 8.9 1.7 11.8 5.8 2.6 3.6 3.3 8.1 3.3 12.2l0 17.2c0 4.5-.8 9.3-3.4 13.1-3 4.2-7.5 6-12.3 6l0 0-29.1 .1c-8 0-15-.6-21.2-1.7-6.7-1.3-13.4-4.1-20.1-8.1-7.2-4.4-13-10.3-17.5-17.8-4.5-7.5-7.9-17.5-10.5-29.5-2.6-12.2-3.9-26.6-3.9-43l0-144.9-13.4 0c-2.4 0-4.9-.6-7.1-2-2.2-1.4-3.7-3.4-4.8-5.4-2-3.9-2.6-8.7-2.6-13.7l0-15.4c0-5.1 .6-10 2.6-13.9 1.1-2.1 2.6-4 4.8-5.5 2.2-1.5 4.7-2.1 7.2-2.1l13.4 0 0-.6 5.2-111.2 0-.1 .3-3.9c.5-3.8 1.3-7.4 2.7-10.3 2.1-4.2 6-7.9 11.8-7.9l28.6 0zm-268 11.7c1.8 .3 3.6 .9 5.3 2.1 2.1 1.5 3.5 3.5 4.4 5.4 1.7 3.7 2.3 8.4 2.3 13.2l0 377.8c0 6.7-.6 12.6-2.4 17.1-.9 2.3-2.3 4.7-4.4 6.5-2.3 2-5.1 3-8.1 3l-43.7 0c-3 0-5.8-1.1-8.1-3.1-2.1-1.9-3.4-4.3-4.2-6.5-1.7-4.5-2.3-10.3-2.3-17l0-315.8c-4.8 1.2-8.7 2.2-11.5 2.9-1.9 .5-3.4 .8-4.4 1.1-.5 .1-.9 .2-1.2 .3-.1 0-.3 .1-.5 .1-.1 0-.2 0-.3 .1 0 0-.2 0-.3 0 0 0-.2 0-.4 0l0 0c-.1 0-.3 0-.4 0-.1 0-.2 0-.2 0-2.2 .1-4.5-.4-6.6-1.7-2.3-1.4-3.8-3.4-4.7-5.3-1.8-3.7-2.3-8.4-2.3-13l0-27.4c0-4.4 .7-8.8 2.6-12.4 2.1-3.9 5.5-6.6 9.8-7.6l75.5-19.5c1.4-.4 2.9-.5 4.4-.5l1.8 .1zm143.8-.5c1.8 .3 3.6 .9 5.2 2.1 2.1 1.5 3.5 3.5 4.4 5.4 1.7 3.7 2.2 8.4 2.2 13.2l0 377.8c0 6.7-.6 12.6-2.4 17.1-.9 2.3-2.3 4.7-4.4 6.5-2.3 2-5.1 3-8.1 3l-43.7 0c-3 0-5.8-1.1-8.1-3.1-2.1-1.9-3.4-4.3-4.2-6.5-1.7-4.5-2.3-10.3-2.3-17l0-315.8c-4.8 1.2-8.7 2.2-11.5 2.9-1.9 .5-3.4 .8-4.4 1.1-.5 .1-.9 .2-1.2 .3-.1 0-.3 .1-.5 .1-.1 0-.2 0-.3 .1-.1 0-.2 0-.3 0 0 0-.2 0-.4 0l0 0c-.1 0-.2 0-.3 0-.1 0-.2 0-.3 0-2.2 .1-4.5-.4-6.6-1.7-2.3-1.4-3.8-3.4-4.7-5.3-1.8-3.7-2.3-8.3-2.3-13l0-27.4c0-4.4 .7-8.7 2.6-12.4 2.1-3.9 5.5-6.6 9.8-7.6l75.4-19.4c1.4-.4 2.9-.5 4.4-.5l1.8 .1z\"]\n};\nvar fa11ty = faEleventy;\nvar faTeamspeak = {\n prefix: 'fab',\n iconName: 'teamspeak',\n icon: [576, 512, [], \"f4f9\", \"M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5 0 .2-.1 .3-.1 .5-39.3 16.2-66.8 54.8-66.8 99.8 0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5 15.7-41.8 40.4-79.6 72.3-110.7 1.8-1.6 4-2.6 6.3-3.1 37.2-11.5 76.7-13.3 114.8-5.2 119.3 25.1 198.6 138.2 181.7 258.8-8.4 62.6-38.6 112.7-87.7 151.4-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3 40.7 4.2 81.4 2.1 120.1-12.5 94-35.5 149.3-102.3 162.9-202.5 4.8-52.6-5.8-105.4-30.8-152-70.4-131.9-234.2-181.6-366-111.2-2.4 1.4-4.5 3.1-6.3 5.2l.1 0zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3 53.2-1 123.2-29.2 161.8-97.1 39.7-69.9 37.6-139.9-6.3-207.8-36.5-55.3-89.8-82.4-156.6-86.6 1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5 2.1 15.7-1 30.3-13.6 41.8-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7 29.3 54.3c5.2 11.5 4.2 19.8-6.3 28.2-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7-2.5 2.4-3.8 5.9-3.1 9.4 2.1 11.5-2.1 19.8-12.5 25.1-2.1 1-4.2 5.2-5.2 7.3l0-.1zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1 24 5.2 41.8-6.3 44.9-30.3 1-8.4 5.2-14.6 12.5-17.7 7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5-1.4-3-2.4-6.2-3.1-9.4-3.1-14.6-2.1-15.7 11.5-18.8 8.4-3.1 15.7-6.3 21.9-12.5 3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7-6.4-11.7-13-23.6-15.7-37.1-2.1-9.4-1-17.7 8.4-24 5.2-4.2 8.4-9.4 8.4-16.7-.4-10.1-1.5-20.3-3.1-30.3-6.3-37.6-23-68.9-51.2-95-5.2-4.2-9.4-6.3-16.7-4.2l-35.6 12.7 6 3.6c6.3 3.7 12.2 7.3 17 12.1 30.3 26.1 41.8 61.6 45.9 100.2 1 8.4 0 16.7-7.3 21.9-8.4 5.2-10.4 12.5-7.3 20.9 4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6-12.5 3.1-14.6 7.3-10.4 20.9 .6 1.5 1.4 2.8 2.1 4.2 2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4-7.3 4.2-11.5 9.4-11.5 17.7 0 12.5-7.3 19.8-18.8 24-3.8 1-7.6 1.5-11.5 1l-34.5-2.1 .1 .2z\"]\n};\nvar faSupple = {\n prefix: 'fab',\n iconName: 'supple',\n icon: [640, 512, [], \"f3f9\", \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7 .4 15.5 .6 23.4 .6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6 .2 23.3 .5-22.5-3.2-46.3-4.9-71-4.9-134.5 .4-243.4 52.6-243.3 116.7 .1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9S118.4 281 137.2 281c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6l0 3.9 14.2 0 0-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6l0 54.4c0 11.3-7.1 17.8-17.8 17.8s-17.8-6.5-17.8-17.7l0-54.5-15.8 0 0 55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9l0-55-15.7 0zm34.4 85.4l15.8 0 0-29.5 15.5 0c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8l-39.1 0 0 13.4 7.8 0 0 72zm15.8-43l0-29.1 12.9 0c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7l-12.6 0zm57 43l15.8 0 0-29.5 15.5 0c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8l-39.1 0 0 13.4 7.8 0 0 72zm15.7-43l0-29.1 12.9 0c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7l-12.6 0zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2l37.6 0c5.8 0 8.2-2.4 8.2-8.2l0-13-14.3 0 0 5.2c0 1.7-1 2.6-2.6 2.6l-18.6 0c-1.7 0-2.6-1-2.6-2.6l0-61.2c0-5.7-2.4-8.2-8.2-8.2l-15.4 0 0 13.4 5.2 0c1.7 0 2.6 1 2.6 2.6l0 61.2-.1 0zm63.4 0c0 5.8 2.4 8.2 8.2 8.2l38.7 0c5.7 0 8.2-2.4 8.2-8.2l0-13-14.3 0 0 5.2c0 1.7-1 2.6-2.6 2.6l-19.7 0c-1.7 0-2.6-1-2.6-2.6l0-20.3 27.7 0 0-13.4-27.7 0 0-22.4 19.2 0c1.7 0 2.6 1 2.6 2.6l0 5.2 14.2 0 0-13c0-5.7-2.5-8.2-8.2-8.2l-51.6 0 0 13.4 7.8 0 0 63.9 .1 0zm58.9-76l0 5.9 1.6 0 0-5.9 2.7 0 0-1.2-7 0 0 1.2 2.7 0zm5.7-1.2l0 7.1 1.5 0 0-5.7 2.3 5.7 1.3 0 2.3-5.7 0 5.7 1.5 0 0-7.1-2.3 0-2.1 5.1-2.1-5.1-2.4 0z\"]\n};\nvar faSquareTwitter = {\n prefix: 'fab',\n iconName: 'square-twitter',\n icon: [448, 512, [\"twitter-square\"], \"f081\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM351.3 199.3c0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3 .6 10.4 .8 15.8 .8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4l0-.8c8.7 4.9 18.9 7.9 29.6 8.3-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34 .2 2.8 .2 5.7 .2 8.5z\"]\n};\nvar faTwitterSquare = faSquareTwitter;\nvar faVim = {\n prefix: 'fab',\n iconName: 'vim',\n icon: [512, 512, [], \"e88a\", \"M303.3 54.5l0-12.3 4-3.7 7.9-7.2 3.5-3.2 168 0 15.1 15.1 0 38.9-3.5 3.6-80.9 82.9 86.9 86.9-91.2 91.2 8.9 0 7.6-8.3 1-.9c1.1-.8 2.5-1.2 3.9-1.2l28.9 0 1.5 .2c1.5 .4 2.8 1.2 3.8 2.5l7.6 10.2c1.3 1.7 1.6 3.9 1 5.9l-22.3 72.5 1.2 0c2.2 0 4.2 1.1 5.5 2.9s1.5 4.1 .7 6.1L459 445c-1 2.6-3.4 4.2-6.2 4.2l-40.4 0c-2.1 0-4.1-1-5.3-2.7s-1.6-3.9-1-5.9l20-63.2-22.2 0-16.2 50.7c2.1 .1 4.1 1.1 5.3 2.9 1.2 1.8 1.4 4.2 .6 6.2l-3.3 7.9c-1 2.5-3.5 4.1-6.1 4.1l-36.8 0c-2.1 0-4.1-1-5.4-2.7s-1.6-3.9-1-5.9l10-32.1-23.9 23.8c.3 1.2 .3 2.5-.1 3.8l-2.9 8.6c-.9 2.7-3.4 4.5-6.3 4.5l-7.4 0-54.6 54.6-83.8-83.8-31.6 32.5-3.6 3.7-49.2 0-2.8-1.7c-8.8-5.1-14.8-8.5-17.9-10.3l0-129.3-58.5-58.5 2.6-2.6 55.9-56 0-99.4-12.6 0-10.8-10.8-3.6-3.6 0-40.7 3.2-3.5 7.9-8.5 3.7-3.9 166.6 0 8 8 27.4-27.4 46.4 46.4zm-251-5.6l0 30.3 9.4 7.8 18.9 0 0 347.9 11.4 10.3 38.2 0 91-93c0-.4 .1-.8 .2-1.1l2.6-10.5c.7-2.9 3.4-5 6.4-5l7.1 0 15.5-15.9-2-2c-1.8-1.8-2.4-4.5-1.5-6.9l6.9-19.3c.4-1.1 1.1-2 1.9-2.8l6.9-5.9c1.2-1 2.8-1.6 4.3-1.6l19.7 0 1.3 .2c.1 0 .1 .1 .2 .1l199.2-203.5 0-28.7-8.2-7.4-156.2 0-7.8 7.8 0 30.5 8.2 7.4 21 0-147 146.4 0-146.6 16.9 0 8.7-8.7 0-27.7-7.4-9.9-157.6 0-8 8zM227.6 352.7l14.8 0-31.8 90.9 45.3 0 3-9.6-12.5 0 31.5-91.9-47.6 0-2.6 10.5zm136.9 1l-16.4 0-10.5-10.8-35.8 0-3.3 9.8 11.8 0-30.5 89.9 38.1 0 2.9-8.6-8.8 0 20-63 37.8 0-22.3 71.6 36.8 0 3.3-7.9-8.8 0 20.3-64 36.1 0-22.7 71.9 40.4 0 3.3-8.6-10.2 0 25-81.1-7.5-10.2-28.9 0-9.5 10.5-17.4 0-9.9-10.8-23.3 0-9.8 11.2zM262.5 293.6l-6.9 19.3 5.3 5.3 21.3 0 5.6-5.6 5.9-20.3-4.6-4.6-19.7 0-6.9 5.9z\"]\n};\nvar faFontAwesome = {\n prefix: 'fab',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faWirsindhandwerk = {\n prefix: 'fab',\n iconName: 'wirsindhandwerk',\n icon: [448, 512, [\"wsh\"], \"e2d0\", \"M18.9 479.8l83.4 0 0-112-83.4 47 0 65zm329 0l82.4 0 0-65-82.4-47 0 112zm0-448l0 219.8-123.6-72.4-121.7 72.4 0-219.8-83.7 0 0 360.8 205.4-122.3 206 122.3 0-360.8-82.3 0z\"]\n};\nvar faWsh = faWirsindhandwerk;\nvar faZoom = {\n prefix: 'fab',\n iconName: 'zoom',\n icon: [640, 512, [], \"e87b\", \"M134.2 326.6l-114.4 0c-8 0-15.2-4.8-18.3-12.2S.1 298.6 5.8 292.9l79.3-79.3-56.8 0C12.7 213.6 0 201 0 185.4l105.5 0c8 0 15.2 4.8 18.3 12.2s1.4 15.9-4.3 21.6l-79.3 79.3 65.7 0c15.6 0 28.3 12.6 28.3 28.3zM640 238.3c0-30.4-24.7-55.1-55.1-55.1-16.2 0-30.9 7.1-41 18.3-10.1-11.2-24.7-18.3-41-18.3-30.4 0-55.1 24.7-55.1 55.1l0 88.3c15.6 0 28.3-12.7 28.3-28.3l0-60c0-14.8 12-26.8 26.8-26.8s26.8 12 26.8 26.8l0 60c0 15.6 12.6 28.3 28.3 28.3l0-88.3c0-14.8 12-26.8 26.8-26.8s26.8 12 26.8 26.8l0 60c0 15.6 12.6 28.3 28.3 28.3l0-88.3zM288.2 256a72.8 72.8 0 1 1 145.5 0 72.8 72.8 0 1 1 -145.5 0zm117.3 0a44.5 44.5 0 1 0 -89 0 44.5 44.5 0 1 0 89 0zm-274.1 0a72.8 72.8 0 1 1 145.5 0 72.8 72.8 0 1 1 -145.5 0zm117.3 0a44.5 44.5 0 1 0 -89 0 44.5 44.5 0 1 0 89 0z\"]\n};\nvar faConfluence = {\n prefix: 'fab',\n iconName: 'confluence',\n icon: [512, 512, [], \"f78d\", \"M2.8 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1 .1-.2 .1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8 .4 21.7-7.7 .1-.1 .1-.3 .2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3-247.9-120.6-330.8 45.7-373.1 112.6zM510.2 100.1c4.5-7.6 2.1-17.5-5.5-22.2L398.9 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2 .3-.4 .6-.6 1-67.3 112.6-81.1 95.6-280.6 .9-8.1-3.9-17.8-.4-21.7 7.7-.1 .1-.1 .3-.2 .4L22.7 141.3c-3.6 8.1 .1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"]\n};\nvar faDigg = {\n prefix: 'fab',\n iconName: 'digg',\n icon: [512, 512, [], \"f1a6\", \"M81.7 172.3l-81.7 0 0 174.4 132.7 0 0-250.7-51 0 0 76.3zm0 133.4l-30.8 0 0-92.3 30.8 0 0 92.3zM378.9 172.3l0 174.4 81.8 0 0 28.5-81.8 0 0 40.8 133.1 0 0-243.7-133.1 0zm81.8 133.4l-30.8 0 0-92.3 30.8 0 0 92.3zm-235.6 41l82.1 0 0 28.5-82.1 0 0 40.8 133.3 0 0-243.7-133.3 0 0 174.4zm51.2-133.3l30.8 0 0 92.3-30.8 0 0-92.3zM153.3 96l51.3 0 0 51-51.3 0 0-51zm0 76.3l51.3 0 0 174.4-51.3 0 0-174.4z\"]\n};\nvar faThreads = {\n prefix: 'fab',\n iconName: 'threads',\n icon: [448, 512, [], \"e618\", \"M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8 29.2 14.1 50.6 35.2 61.8 61.4 15.7 36.5 17.2 95.8-30.3 143.2-36.2 36.2-80.3 52.5-142.6 53l-.3 0c-70.2-.5-124.1-24.1-160.4-70.2-32.3-41-48.9-98.1-49.5-169.6l0-.5C17 184.3 33.6 127.2 65.9 86.2 102.2 40.1 156.2 16.5 226.4 16l.3 0c70.3 .5 124.9 24 162.3 69.9 18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4-29.2-35.8-73-54.2-130.5-54.6-57 .5-100.1 18.8-128.2 54.4-26.2 33.3-39.8 81.5-40.3 143.2 .5 61.7 14.1 109.9 40.3 143.3 28 35.6 71.2 53.9 128.2 54.4 51.4-.4 85.4-12.6 113.7-40.9 32.3-32.2 31.7-71.8 21.4-95.9-6.1-14.2-17.1-26-31.9-34.9-3.7 26.9-11.8 48.3-24.7 64.8-17.1 21.8-41.4 33.6-72.7 35.3-23.6 1.3-46.3-4.4-63.9-16-20.8-13.8-33-34.8-34.3-59.3-2.5-48.3 35.7-83 95.2-86.4 21.1-1.2 40.9-.3 59.2 2.8-2.4-14.8-7.3-26.6-14.6-35.2-10-11.7-25.6-17.7-46.2-17.8l-.7 0c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1l.8 0c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2 .1 0zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3 25.6-1.4 54.6-11.4 59.5-73.2-13.2-2.9-27.8-4.4-43.4-4.4-4.8 0-9.6 .1-14.4 .4-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z\"]\n};\nvar faWpressr = {\n prefix: 'fab',\n iconName: 'wpressr',\n icon: [512, 512, [\"rendact\"], \"f3e4\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM427.3 166.6c-15.2 34.5-30.4 69-45.6 103.5-2.4 5.5-6.9 8.2-13 8.2-23 0-46 .1-69 0-5.1 0-8.2 1.9-10.3 6.7-10.2 23.6-20.6 47-31 70.5-1.5 3.5-4.1 5.3-7.9 5.3-45.9 0-91.9 0-137.8 0-3.1 0-5.6-1.1-7.7-3.4-11.2-12.3-22.5-24.6-33.7-36.9-2.7-3-2.8-6.2-1.2-9.7 8.7-19.5 17.3-39.1 25.9-58.7 12.9-29.4 25.9-58.7 38.7-88.1 1.7-3.9 4.3-5.7 8.5-5.7 14.2 .1 28.5 0 42.7 0 6.2 0 9.2 4.8 6.7 10.6-13.6 30.8-27.2 61.6-40.7 92.3-5.7 13-11.4 26-17.1 39-3.9 9 7.1 12 11 5.6 .2-.4-1.4 4.2 30-67.7 1.4-3.1 3.4-4.4 6.8-4.4 15.2 .1 30.4 0 45.6 0 5.6 0 7.9 3.6 5.7 8.7-8.3 19-16.7 37.9-25 56.9-5 11.4 8.1 12.5 11.3 5.3 0-.1 27.9-63.3 32.2-73.2 2-4.6 5.4-6.5 10.3-6.5 26.4 .1 52.9 0 79.3 0 12.4 0 13.9-13.6 3.9-13.6-25.3 0-50.5 0-75.8 0-6.3 0-7.8-2.5-5.3-8.3 5.8-13.1 11.6-26.1 17.3-39.2 1.7-4 4.5-5.8 8.8-5.8 23.1 .1 26 0 130.8 0 6.1 0 8 2.8 5.6 8.3z\"]\n};\nvar faRendact = faWpressr;\nvar faYoast = {\n prefix: 'fab',\n iconName: 'yoast',\n icon: [448, 512, [], \"f2b1\", \"M91.3 76l186 0-7 18.9-179 0c-39.7 0-71.9 31.6-71.9 70.3l0 205.4c0 35.4 24.9 70.3 84 70.3l0 19.1-12.1 0C41.2 460 0 419.8 0 370.5L0 165.2C0 115.9 40.7 76 91.3 76zM320.4 20l66.5 0c-143.8 378.1-145.7 398.9-184.7 439.3-20.8 21.6-49.3 31.7-78.3 32.7l0-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1 .6-12.6-82.1-223.2l61.4 0 50.4 156.6 102.2-279zM448 161.5l0 298.5-214 0c6.6-9.6 10.7-16.3 12.1-19.4l182.5 0 0-279.1c0-32.5-17.1-51.9-48.2-62.9L387.1 81c41.7 13.6 60.9 43.1 60.9 80.5z\"]\n};\nvar faNimblr = {\n prefix: 'fab',\n iconName: 'nimblr',\n icon: [384, 512, [], \"f5a8\", \"M246.6 353.3a27 27 0 1 1 0-54 27 27 0 1 1 0 54zm-79.4-27a27.1 27.1 0 1 1 -54.3 0 27.1 27.1 0 1 1 54.3 0zM191.8 159C157 159 89.4 178.8 59.2 227L14 0 14 335.5C14 433.1 93.6 512 191.8 512S369.5 433 369.5 335.5 290.1 159 191.8 159zm0 308.1c-73.3 0-132.5-58.9-132.5-131.6s59.2-131.6 132.5-131.6 132.5 58.9 132.5 131.5-59.3 131.6-132.5 131.6l0 .1z\"]\n};\nvar faPixelfed = {\n prefix: 'fab',\n iconName: 'pixelfed',\n icon: [512, 512, [], \"e7db\", \"M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM235.7 311.9l47 0c44.2 0 80.1-34.9 80.1-78s-35.9-78-80.1-78l-67.8 0c-25.5 0-46.2 20.1-46.2 45l0 175.1 67-64.1z\"]\n};\nvar faYahoo = {\n prefix: 'fab',\n iconName: 'yahoo',\n icon: [512, 512, [], \"f19e\", \"M223.8 141.1l-56.7 143.2-56-143.2-96.1 0 105.8 249.1-38.6 89.8 94.2 0 140.9-338.9-93.6 0zM329.2 276.9a58.2 58.2 0 1 0 0 116.4 58.2 58.2 0 1 0 0-116.4zM394.7 32l-93 223.5 104.8 0 92.6-223.5-104.4 0z\"]\n};\nvar faBluesky = {\n prefix: 'fab',\n iconName: 'bluesky',\n icon: [576, 512, [], \"e671\", \"M407.8 294.7c-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3 61.6-9.4 37.5-1.7 21.6 5.5 3.3 13.8 0 41.9 0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7 3.3-.5 6.6-.9 10-1.4-3.3 .5-6.6 1-10 1.4-93.9 14-177.3 48.2-67.9 169.9 120.3 124.6 164.8-26.7 187.7-103.4 22.9 76.7 49.2 222.5 185.6 103.4 102.4-103.4 28.1-156-65.8-169.9-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3 64.1 7.1 133.6-15.1 153.2-80.7 5.9-19.9 15-138.9 15-155.5s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8-66.1 46.6-137.1 141.1-163.2 191.8z\"]\n};\nvar faScribd = {\n prefix: 'fab',\n iconName: 'scribd',\n icon: [384, 512, [], \"f28a\", \"M42.6 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9 .6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9 .2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4-60.8 71.8 15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"]\n};\nvar faCreativeCommonsPd = {\n prefix: 'fab',\n iconName: 'creative-commons-pd',\n icon: [512, 512, [], \"f4ec\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L305 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6L87.6 145.6c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"]\n};\nvar faEarlybirds = {\n prefix: 'fab',\n iconName: 'earlybirds',\n icon: [512, 512, [], \"f39a\", \"M329.3 47.5c1.2-13 21.3-14 36.6-8.7 .9 .3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM335.5 160a16 16 0 1 0 0 32 16 16 0 1 0 0-32zm-159.7 0a16 16 0 1 0 0 32 16 16 0 1 0 0-32zM494.3 323.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2 .3 .9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2 .8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7 .9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2 .8-10.5-25.4 21.5-42.6 66.8-73.4 .7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1 .3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3-15.3-19.4-3.4-39.9-2.4-40.4 1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1 .6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7 .6 11.6 .8 12.7 2.6 .3 .5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM223.5 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"]\n};\nvar faSymfonycasts = {\n prefix: 'fab',\n iconName: 'symfonycasts',\n icon: [576, 512, [], \"e8ab\", \"M293.8 342.5c3.4-1.5 6.8-1.5 10.2 0l54.2 22.6c2.6 .9 4.7 2.6 6.2 4.8s2.3 4.8 2.3 7.6c0 19.4-3.6 37.2-10.7 53.4-6.2 13.6-14.5 25.4-24.8 35.6-8.7 8.5-17.7 14.6-27.1 18.4-3.4 1.5-6.8 1.5-10.2 0-10.7-4.3-20.6-11.3-29.7-20.9-10-10.4-17.8-22.5-23.5-36.4-6.4-15.6-9.6-32.3-9.6-50 0-2.8 .7-5.4 2.2-7.6 1.5-2.3 3.6-3.9 6.2-4.8l54.2-22.6zM479.7 483.8a70.1 70.1 0 1 1 0-140.2 70.1 70.1 0 1 1 0 140.2zM244.6 377.6c0 15.3 2.6 29.7 7.9 43.2 4.9 12.4 11.6 23.3 20.1 32.5 8.1 8.9 16.9 15.3 26.3 19.2 9.2-3.8 17.8-10 25.7-18.7 8.7-9.2 15.4-19.9 20.3-32.2 5.5-13.7 8.2-28.4 8.2-44.1l-54.2-22.6-54.2 22.6zm235.1-20.3a56.5 56.5 0 1 0 0 113 56.5 56.5 0 1 0 0-113zm-352.8 2.3c4.1 0 7.6 1.3 10.4 3.9 2.8 2.6 4.2 5.9 4.2 9.6l0 16.4 31.1-19.2c1.5-1.1 3.2-1.7 5.1-1.7 2.4 0 4.6 .8 6.3 2.5s2.7 3.8 2.7 6.2l0 72.6c0 2.6-.9 4.8-2.7 6.5s-3.9 2.5-6.3 2.5c-1.9 0-3.6-.6-5.1-1.7l-31.1-19.2 0 16.4c0 3.8-1.4 7-4.2 9.6s-6.3 4-10.4 4l-88.2 0c-4.1 0-7.6-1.3-10.5-4s-4.2-5.8-4.2-9.6l0-81.3c0-3.8 1.4-7 4.2-9.6s6.3-3.9 10.5-3.9l88.2 0zm172 97.8c-11.3-7-20.4-16.4-27.4-28.3-7.5-12.4-11.9-26.6-13-42.4l40.4-17 0 87.6zM37.5 373.4l0 80.8c.2 .2 .6 .3 1.2 .3l88.2 0c.4 0 .7-.1 1.1-.3l0-80.8c-.2-.2-.6-.3-1.2-.3l-88.1 0c-.4 0-.8 .1-1.2 .3zm418.4 5.1c2.3-1.3 4.5-1.3 6.8 0l49.8 30.2c2.3 1.3 3.4 3.3 3.4 5.9s-1.1 4.6-3.4 5.9l-49.8 28.6c-2.3 1.3-4.5 1.3-6.8 0s-3.4-3.3-3.4-5.9l0-58.8c0-2.6 1.1-4.6 3.4-5.9zM141.5 405.5l0 16.4 31.7 19.8 0-56-31.7 19.8zM451.1 5.2c35.8-1.2 62.9 15.1 63.8 40.8 .4 10.9-5.9 32.2-27.8 33-16.3 .6-27.6-9.2-28.1-24.1-.2-5.4 1.2-10.2 4.9-15.8 3.6-7.1 4.4-7.9 4.3-11-.3-9.4-14.5-9.7-18.3-9.5-53 1.8-66.9 73.3-78.2 131.5l-5.6 30.7c30.5 4.5 52.2-1 64.2-8.8 17-11-4.8-22.4-2-35 2.8-12.8 14.4-19 23.7-19.2 12.9-.3 22.2 13.1 21.9 26.7-.5 22.6-30.4 53.6-90.2 52.3-7.3-.2-14-.7-20.2-1.4l-11.3 62.3c-3 14-6.3 29.5-10.7 45.8l204 0 .9 .1c.3 .1 .6 .1 .8 .2 2.2 .6 4 2.5 4.5 4.8 .6 2.8-1 6-3.7 7.2-.5 .2-1.1 .4-1.7 .5-.3 0-.6 0-.9 .1l-515.3 0c-.7-.1-.9 0-1.7-.2-2.5-.7-4.4-3.1-4.6-5.7-.2-2.3 1-4.6 3-5.8 .7-.5 1.6-.8 2.4-.9 .3 0 .6 0 .8-.1l48.4 0c-17.2-16.8-20-37.2-16-50.5 5.4-17.6 19.4-20.9 33-16.7 14.6 4.5 20.3 22.3 16.2 36-.5 1.5-1.2 3.9-2.8 7.2-1.7 3.8-4.8 7.1-6.2 11.5-1.5 4.9 .7 9.1 4.5 12.6l58.9 0c4.2-4 7.4-9 9.1-14.6 5.3-17-5.5-28.9-10-33.5l-21.7-23.2c-9.9-11.1-31.7-41.9-21.1-76.5 4.1-13.4 12.8-27.5 25.3-36.9 26.5-19.7 55.3-23 82.7-15.1 35.5 10.2 52.5 33.7 74.6 51.8 12.4-36.3 29.5-71.9 55.3-101.9 23.3-27.3 54.6-47.1 90.4-48.3zM229.6 121.3c-22.2-6-35.7-.9-45.2 11.2-11.3 14.3-7.5 32.8 3.3 43.7l18 19.9c22 25.5 34.1 45.3 29.6 72-2.2 13.1-8.5 25.2-17.9 35.3l54.2 0c1-5.1 2-10.4 3.1-15.8l3.6-21.9c5.9-29.4 12.4-62.2 22.3-94.8-24.1-18.1-38.5-40.7-70.9-49.5z\"]\n};\nvar faSquareOdnoklassniki = {\n prefix: 'fab',\n iconName: 'square-odnoklassniki',\n icon: [448, 512, [\"odnoklassniki-square\"], \"f264\", \"M224 137.1c-5.4-.3-10.8 .6-15.9 2.4s-9.7 4.8-13.6 8.5-7 8.2-9.2 13.2-3.2 10.3-3.2 15.7 1.1 10.8 3.2 15.7 5.3 9.5 9.2 13.2 8.6 6.6 13.6 8.5 10.5 2.7 15.9 2.4c5.4 .3 10.8-.6 15.9-2.4s9.7-4.8 13.6-8.5 7-8.2 9.2-13.2 3.2-10.3 3.2-15.7-1.1-10.8-3.2-15.7-5.3-9.5-9.2-13.2-8.6-6.6-13.6-8.5-10.5-2.7-15.9-2.4zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM224 258a81 81 0 1 1 0-162.1 81 81 0 1 1 0 162.1zm59.3 6.2c16.8-13.2 29.5-5.5 34.1 3.6 7.8 16-1.1 23.7-21.5 37-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6-12-12.2-29.5-29.7-47.7-47.9l-47.7 47.9c-17.7 17.2-46-11-28.4-28.6 3.7-3.7 7.9-7.9 12.5-12.5 10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8-20.3-13.3-29.3-20.9-21.4-37 4.6-9.1 17.3-16.8 34.1-3.6 0 0 22.7 18 59.3 18s59.3-18 59.3-18z\"]\n};\nvar faOdnoklassnikiSquare = faSquareOdnoklassniki;\nvar faMarkdown = {\n prefix: 'fab',\n iconName: 'markdown',\n icon: [640, 512, [], \"f60f\", \"M593.8 59.1l-547.6 0C20.7 59.1 0 79.8 0 105.2L0 406.7c0 25.5 20.7 46.2 46.2 46.2l547.7 0c25.5 0 46.2-20.7 46.1-46.1l0-301.6c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6l-61.5 0 0-120-61.5 76.9-61.5-76.9 0 120-61.7 0 0-209.2 61.5 0 61.5 76.9 61.5-76.9 61.5 0 0 209.2 .2 0zm135.3 3.1l-92.3-107.7 61.5 0 0-104.6 61.5 0 0 104.6 61.5 0-92.2 107.7z\"]\n};\nvar faTypo3 = {\n prefix: 'fab',\n iconName: 'typo3',\n icon: [448, 512, [], \"f42b\", \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1 0 103.5 106.8 337.5 184.1 337.5 36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"]\n};\nvar faJoomla = {\n prefix: 'fab',\n iconName: 'joomla',\n icon: [448, 512, [], \"f1aa\", \"M.6 92.1c0-33.3 26.8-60.1 59.8-60.1 30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1 .6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9-26.9-5.8-46.7-29.7-46.7-58.3zM130.1 208.5l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zM396.4 360.7c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2 0 33.3 26.8 60.1 59.8 60.1 28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"]\n};\nvar faWeixin = {\n prefix: 'fab',\n iconName: 'weixin',\n icon: [576, 512, [], \"f1d7\", \"M385.2 167.6c6.4 0 12.6 .3 18.8 1.1-16.6-78.4-100.7-136.7-196.3-136.7-107.2 0-194.7 72.8-194.7 165.4 0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zM280.7 114.7c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2 .1-14.7 14.6-24.4 29.3-24.4zM144.3 163.3c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zM343.9 294.9c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3 .1 10-9.9 19.6-24.4 19.6z\"]\n};\nvar faGrunt = {\n prefix: 'fab',\n iconName: 'grunt',\n icon: [384, 512, [], \"f3ad\", \"M61.6 189.3c-1.1 10 5.2 19.1 5.2 19.1 .7-7.5 2.2-12.8 4-16.6 .4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1l-.1 0c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zM232 233.3c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8l-.1 0c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zm-134.4 231l-29.4 0c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8 .6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zM349.5 317.3c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6 .6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1 .4-4.7 .8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2-29.5 10.4-36.9 26.3-39.1 40.7-7.6-5.4-6.7-23.1-7.2-27.6-7.5 .9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5l-8.1 9.4 12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3 .2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7 .3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7 .5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6 14.4 11.8 34.4 19.5 63.6 19.5l.2 0c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM306 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2 .8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.9 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6 .7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4 .1-6.6 .5-9 .9zM90.6 85.4c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7-3.3-4.4-3.8-10.5-4.3-16.9-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4 .3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.4 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6 .9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7 .2 .2 .4 .3 .4 .3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1 .4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5 .6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9 .7 .6 1.5 1.2 2.2 1.8l.5 .4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6 .9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7l-117 0c-4.4 0-8.3 .3-11.7 .7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM35.1 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zm111.5 50.1c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2 .9-23.1 2.9-3.3 9.5-7.2 24.6-7.2l118.8 0c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6 .9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM192.2 187.7l.2 0c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7l-29.4 0c-4.2 0-7.2 .9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"]\n};\nvar faSupportnow = {\n prefix: 'fab',\n iconName: 'supportnow',\n icon: [640, 512, [], \"e833\", \"M0 191.9l203.9-.1c1.8-.6 2.5-9.5 3.2-12.2 3.3-13.5 8.4-26.4 14.8-38.7l-160.2 0 0-48.2 234.5 0 0 39c-51.2 36.1-56.4 92.6-23.6 143.9 33.1 51.7 93.4 88.1 149.5 110.5 67.8-25.2 164.9-89.9 169.4-169.6 3.1-55.3-42.2-101.8-98.7-91.8-41.5 7.4-62.1 46.7-54.8 86.4l-48.2 0c-7.3-56.6 22.8-112.6 78.4-130.3 78.7-25.1 159.5 28 170.4 108.8 15.2 112.3-95.5 199.9-188.1 237.8-4.4 1.8-24.4 10.1-27.5 10.1l-280.3 0 0-48.2 178.5 0-38.1-28.9-23.2-22.1-198.3 0 0-48.2 163.1 0c-7.1-11.6-12.3-24.3-16.1-37.4-.7-2.5-2.1-12-3.8-12.6l-204.9-.1 0-48.2 0 0z\"]\n};\nvar faRockrms = {\n prefix: 'fab',\n iconName: 'rockrms',\n icon: [512, 512, [], \"f3e9\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM413.4 427.5l-90 0-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1l75.3 0-84.6-99.3-84.3 98.9-90 0 147.1-172.5c14.4-18.4 41.3-17.3 54.5 0L413.7 252.3c19 22.8 2 57.2-27.6 56.1-.6 0-74.2 .2-74.2 .2L413.4 427.5z\"]\n};\nvar faUnsplash = {\n prefix: 'fab',\n iconName: 'unsplash',\n icon: [448, 512, [], \"e07c\", \"M448 230.2l0 249.8-448 0 0-249.8 141.1 0 0 124.9 165.7 0 0-124.9 141.1 0zM306.9 32l-165.7 0 0 124.9 165.7 0 0-124.9z\"]\n};\nvar faSquareInstagram = {\n prefix: 'fab',\n iconName: 'square-instagram',\n icon: [448, 512, [\"instagram-square\"], \"e055\", \"M194.4 211.7a53.3 53.3 0 1 0 59.2 88.6 53.3 53.3 0 1 0 -59.2-88.6zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12-18.1-7.1-57.6-6.8-83.1-6.5-4.1 0-7.9 .1-11.2 .1s-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2 0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2 2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5 4.1 0 7.9-.1 11.2-.1s7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5 6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83 0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83-2.7-6.9-6.8-13.1-12-18.4l0 .2zm-67.1 44.5c18.1 12.1 30.6 30.9 34.9 52.2s-.2 43.5-12.3 61.6c-6 9-13.7 16.6-22.6 22.6s-19 10.1-29.6 12.2c-21.3 4.2-43.5-.2-61.6-12.3s-30.6-30.9-34.9-52.2 .2-43.5 12.2-61.6 30.9-30.6 52.2-34.9 43.5 .2 61.6 12.2l.1 0zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1 2.6-7.1 5.2-9.8 6.1-4.5 9.8-5.2 7.6-.4 11.1 1.1 6.5 3.9 8.6 7 3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2-3.9 3.2-6.2 4.2-4.8 1.5-7.3 1.5c-3.8 0-7.5-1.1-10.6-3.2l-.1 0zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM357 389c-18.7 18.7-41.4 24.6-67 25.9-26.4 1.5-105.6 1.5-132 0-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132 1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0 25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9-1.3 25.6-7.1 48.3-25.8 67l0 .1z\"]\n};\nvar faInstagramSquare = faSquareInstagram;\nvar faFirstOrderAlt = {\n prefix: 'fab',\n iconName: 'first-order-alt',\n icon: [512, 512, [], \"f50a\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 7.8a240.2 240.2 0 1 1 0 480.4 240.2 240.2 0 1 1 0-480.4zm0 20.5a219.7 219.7 0 1 0 0 439.4 219.7 219.7 0 1 0 0-439.4zm0 8.2a211.5 211.5 0 1 1 0 423 211.5 211.5 0 1 1 0-423zm186.2 260c-4.4 17.1-11.2 33.5-20.1 48.7l-74.1-35.9 61.5 54.8c-10.6 14.1-23.2 26.6-37.2 37.3l-54.8-61.6 35.9 74.3c-15.2 9-31.6 15.8-48.6 20.2l-27.3-78.5 4.8 82.9c-8.6 1.2-17.4 1.8-26.3 1.8s-17.7-.6-26.3-1.8l4.8-82.5-27.2 78c-17.1-4.5-33.4-11.3-48.7-20.2l35.9-74.3-54.9 61.6c-14-10.7-26.6-23.2-37.2-37.3l61.6-54.9-74.3 35.9C80.7 338 74 321.7 69.5 304.6l77.8-27.1-82.2 4.8c-1.2-8.6-1.8-17.3-1.8-26.2 0-9 .6-17.8 1.8-26.5l82.4 4.8-77.9-27.2c4.5-17.1 11.3-33.5 20.2-48.7l74.2 35.9-61.5-54.9c10.7-14 23.2-26.6 37.3-37.2l54.8 61.5-35.8-74.2c15.2-8.9 31.6-15.7 48.6-20.1l26.9 77.2-4.7-81.6c8.6-1.2 17.4-1.8 26.3-1.8s17.7 .6 26.3 1.8l-4.7 82.2 27-77.8c17.3 4.5 33.6 11.4 48.6 20.2l-35.8 74.1 54.7-61.5c14.1 10.7 26.6 23.2 37.2 37.2l-61.4 54.8 74.1-35.9c8.9 15.2 15.7 31.6 20.2 48.6l-77.8 27.1 82.2-4.7c1.2 8.7 1.8 17.5 1.8 26.5 0 8.9-.6 17.6-1.8 26.2l-82.1-4.7 77.7 27.1z\"]\n};\nvar faFulcrum = {\n prefix: 'fab',\n iconName: 'fulcrum',\n icon: [256, 512, [], \"f50b\", \"M63.8 164.1L28.4 207.7-7 164.1 28.4 120.6 63.8 164.1zM112.2 0l-20.5 198.2-51 57.8 51 57.8 20.5 198.2 0-211.1-41.1-44.9 41.1-44.9 0-211.1zm79.7 164.1l35.4 43.6 35.4-43.6-35.4-43.5-35.4 43.5zm-48.5 47l41.1 44.9-41.1 44.9 0 211.1 20.6-198.2 51-57.8-51-57.8-20.6-198.2 0 211.1z\"]\n};\nvar faArchLinux = {\n prefix: 'fab',\n iconName: 'arch-linux',\n icon: [576, 512, [], \"e867\", \"M288.7-7.8c-24.1 59-38.6 97.7-65.4 155 16.4 17.4 36.6 37.6 69.4 60.5-35.2-14.5-59.2-28.9-77.2-44-34.3 71.6-88.1 173.5-197.2 369.4 85.7-49.5 152.2-80 214.1-91.6-2.7-11.4-4.1-23.8-4-36.7l.1-2.7c1.4-54.9 29.9-97.2 63.8-94.4s60.2 49.8 58.8 104.7c-.3 10.3-1.4 20.2-3.4 29.4 61.2 12 127 42.4 211.6 91.2-16.7-30.7-31.6-58.3-45.8-84.7-22.4-17.4-45.7-39.9-93.3-64.4 32.7 8.5 56.3 18.3 74.5 29.3-144.5-269.1-156.2-304.8-205.8-421.1z\"]\n};\nvar faFediverse = {\n prefix: 'fab',\n iconName: 'fediverse',\n icon: [576, 512, [], \"e865\", \"M394.8 526.9a54 54 0 1 1 5.8-107.8 54 54 0 1 1 -5.8 107.8zm-50.1-80.6c-5.5 10.9-7.4 23.3-5.6 35.4L168.7 454.4c5.5-10.9 7.5-23.3 5.7-35.4l170.3 27.3zM112.7 481.6a54 54 0 1 1 5.9-107.8 54 54 0 1 1 -5.9 107.8zm257.7-61.4c-10.9 5.6-19.7 14.4-25.4 25.3l-70.6-70.9 33.6-17 62.4 62.7zM486.1 261c8.7 8.6 19.8 14.3 31.9 16.4L439.4 430.8c-8.7-8.6-19.8-14.3-31.9-16.4L486.1 261zM376.7 219.3l30.5 195.1c-12.1-1.9-24.5-.1-35.4 5.3l-32.2-206.3 37.2 6zM350.4 328.9L174.2 418.2c-2-12.1-7.6-23.2-16.2-32l186.6-94.6 5.8 37.2zm-152.7-22l-40.3 78.7c-8.7-8.6-19.8-14.3-31.9-16.3l45.6-89 26.6 26.7zM124.7 369c-12.1-1.8-24.4 .2-35.4 5.6L62.7 204.3c12.1 1.8 24.5-.1 35.4-5.6L124.7 369zm147.1-47.8l-33.6 17-139.4-139.9c10.9-5.6 19.7-14.4 25.4-25.3L271.8 321.2zm197.5-92.8c2 12.1 7.6 23.2 16.2 31.9l-89.3 45.2-5.8-37.2 78.9-40zm55.6 44.3a54 54 0 1 1 5.9-107.8 54 54 0 1 1 -5.9 107.8zM284.6 58.7c8.7 8.6 19.8 14.3 31.8 16.3l-95.3 186.1-26.6-26.7 90-175.8zM474.9 192.1c-5.5 10.9-7.5 23.3-5.7 35.3l-206.4-33.1 17.2-33.5 195 31.3zM68.7 199.6A54 54 0 1 1 74.6 91.8 54 54 0 1 1 68.7 199.6zm432-33.4c-10.9 5.6-19.7 14.4-25.4 25.3L353.5 69.3c10.9-5.6 19.7-14.4 25.4-25.3L500.6 166.2zM229.3 152.6l-17.2 33.5-87.4-14c5.4-10.9 7.4-23.3 5.5-35.4l99 15.9zm139.5 15.9l-37.2-6-13.6-87.2c12.1 1.7 24.5-.3 35.3-5.9l15.5 99.1zM267.8 26.2c2 12.1 7.6 23.2 16.2 31.9l-153.9 78c-2-12.1-7.6-23.2-16.2-31.9l153.9-78zm55.6 44.3a54 54 0 1 1 5.8-107.8 54 54 0 1 1 -5.8 107.8z\"]\n};\nvar faBraveReverse = {\n prefix: 'fab',\n iconName: 'brave-reverse',\n icon: [448, 512, [], \"e63d\", \"M298.5 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3 9.2-1.6 18.6-2.2 27.7-1.2 11.6 1.4 21.5 5.4 28.9 12.9 7.7 7.8 15.4 15.8 22.6 23.6 2.5 2.7 4.9 5.2 6.9 7.4 .7 .8 1.4 1.5 1.9 2 3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2-.1 .4-.1 .4-.5 2.1l-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9-5.6 21.6-11.2 43.2-16.4 63.4-12.9 49.9-21.4 82.7-23.4 90.9-11.1 44.5-19.9 60-48.3 80.3-24.9 17.8-76.8 53.6-86.8 60-1 .6-2 1.3-3.4 2.3-.5 .4-3.2 2.2-3.9 2.7-4.9 3.3-8.3 5.5-12.1 7.3-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3-.8-.5-3.4-2.4-3.9-2.7-1.4-1-2.5-1.7-3.4-2.3-10-6.4-61.9-42.1-86.8-60-28.4-20.4-37.2-35.8-48.3-80.3-2-8.2-10.5-41-23.3-90.5-5.3-20.6-10.9-42.2-16.5-63.8-2-7.6-3.8-14.6-5.4-20.9l-1.5-5.8-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1-9.9-24.5c-1.5-3.8-.7-8.2 2-11.2 1.2-1.3 1.8-2 2.6-2.8 2-2.2 4.4-4.7 6.9-7.4 7.3-7.7 15-15.7 22.7-23.5 7.4-7.5 17.3-11.6 28.9-12.9 9.1-1.1 18.5-.5 27.7 1.2 .5 .1 1 .2 1.5 .3l38.1-44c2-2.4 4.8-3.7 7.8-3.7l148 0zm-4.7 21.1l-138.6 0-39.1 45.1c-2.6 3-6.7 4.3-10.6 3.2-.2-.1-.7-.2-1.5-.4-1.3-.3-2.9-.6-4.5-.9-7.4-1.3-14.9-1.8-21.7-1-7.3 .9-13 3.2-16.6 6.9-7.6 7.7-15.2 15.6-22.3 23.3-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.7 170.6c.4 1.4 .5 1.9 1.2 4.8 1.6 6.3 3.5 13.3 5.4 20.9 5.6 21.6 11.2 43.2 16.4 63.4 12.9 50 21.4 82.8 23.4 91 10.1 40.1 16.4 51.3 40.2 68.3 24.6 17.6 76.3 53.2 85.9 59.3 1.2 .8 2.5 1.6 4 2.7 .6 .4 3.2 2.2 3.9 2.7 4 2.8 6.7 4.4 9.2 5.6 2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6 .7-.5 3.3-2.3 3.9-2.7 1.6-1.1 2.8-1.9 4-2.7 9.6-6.1 61.3-41.7 85.9-59.3 23.8-17.1 30.2-28.2 40.1-68.3 2.1-8.3 10.5-41.1 23.3-90.7 5.3-20.6 10.9-42.2 16.5-63.8 2-7.6 3.8-14.6 5.4-20.9 .7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1-7.2-7.6-14.7-15.5-22.3-23.3-3.7-3.7-9.3-6-16.6-6.9-6.8-.8-14.4-.3-21.7 1-1.7 .3-3.2 .6-4.5 .9-.8 .2-1.3 .3-1.5 .4-3.8 1.1-7.9-.2-10.6-3.2L293.8 21.1zM224.5 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2 1.3 6.2-1.7 8.4-44.1 34.6-48.1 38.2-9.8 9.5-13.8 9.5-9.8-5.9-13.8-9.5-45.1-36-48.1-38.2-5.1-6.2-1.7-8.4 13.9-7.5 28.3-15.2 32.5-14.1 35.4-14.1l-.2 0zm.1-230.7c.7 0 8.8 .2 20.5 4.2 12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9 54.2 66.7 54.2 81-6.8 18-13.7 25.4-36.8 39.8-40.7 43.9-11.9 10.5-7.1 21.8 11.7 25.8 3.9 40.4-21 24.4-29.4 22.8-28.4-12.2-35.7-17.1-30.5-24.3-30.5-31.8 24-20.8 28.4-23.9 24.7-14.8 25.1-19.4 .3-6-5.7-17.4-16.7-26.7-14.9-36.8 19.1-15.4 31.5-20.2 36.2-13.7 39.2-15.1 2.2-2.7-6.8-3.6-34.6-4.3-46.1-1.1-31.2 8.2-32.8 10.9-3 2.7-1.4 11.8 10.1 52.8 10.9 60.6 2.4 12.9-5.8 14.8-22.1 5.2-26.8 5.2-18.6-3.3-26.8-5.2-6.6-7-5.8-14.8 9.3-51.5 10.9-60.6 .2-9.2-1.4-11.8-21.3-7.6-32.8-10.9-37.1 .2-46.1 1.1-9.8 2.2-6.8 3.6 26.8 10.4 39.2 15.1 29.7 10 31.5 20.2-9 25.4-14.9 36.8-6.1 12.8-5.7 17.4 20.6 16.4 25.1 19.4 28.4 16.4 28.4 23.9-23.2 27-30.5 31.8-27.2 15.4-35.7 17.1-21.7-8.2-29.4-22.8-.8-29.1 3.9-40.4-3.3-17.7-7.1-21.8-33.8-36.5-40.7-43.9-13.7-11.2-13.7-25.4 54.2-81 54.2-81 45.8 8.9 51.9 8.9 19.5-5.2 31.9-9.4 20.6-4.2 20.6-4.2l-.3 0z\"]\n};\nvar faAvianex = {\n prefix: 'fab',\n iconName: 'avianex',\n icon: [512, 512, [], \"f374\", \"M453.2 32l-312 0C102.3 32 65 63.2 57.9 101.7L1.3 410.3C-5.8 448.8 20 480 59 480l312 0c38.9 0 76.2-31.2 83.3-69.7L511 101.8C518 63.2 492.2 32 453.2 32zM395 379.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9l-20.5-29.6-68.8-99.8 18.8-28.9 8.9-4.8 103.1 112.4 4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"]\n};\nvar faNs8 = {\n prefix: 'fab',\n iconName: 'ns8',\n icon: [640, 512, [], \"f3d5\", \"M104.3 269.2l26.1 0 0-26.2-26.1 0 0 26.2zM156.8 243l-.1-26.2 0-.9c-.2-10.4-4.4-20.3-11.9-27.6s-17.5-11.3-27.9-11.1-20.3 4.4-27.6 11.8-11.3 17.5-11.2 27.9l0 .2 26.4 0 0-.2c.1-3.4 1.5-6.6 3.9-9s5.7-3.7 9.1-3.7 6.7 1.3 9.1 3.7 3.8 5.6 3.9 9l0 26.2 26.3 0zm52.4 25.8c0 12-2.4 23.8-6.9 34.9s-11.3 21.1-19.7 29.6-18.5 15.2-29.6 19.7-22.9 6.9-34.9 6.9l-.6 0c-24.2 0-47.3-9.6-64.4-26.7S26.3 293 26.3 268.8l-26.3 0 0 .2c0 15.4 3.1 30.7 9 44.9s14.6 27.2 25.5 38.1 23.9 19.5 38.1 25.4 29.5 8.9 44.9 8.9l.8 0c15.4 0 30.7-3 44.9-9s27.2-14.6 38.1-25.5 19.5-23.8 25.4-38.1 8.9-29.5 8.9-44.9l0-26-26.3 0 0 26zm-157.2 0c.1 17.3 7 33.9 19.2 46.1s28.8 19.1 46.1 19.1 33.9-6.9 46.1-19.1 19.2-28.8 19.2-46.1l-26.3 0c-.2 10.2-4.4 20-11.7 27.2s-17.1 11.2-27.4 11.2-20.1-4-27.4-11.2-11.5-16.9-11.7-27.2l0-26-26.3 0 0-26.6c.3-17.3 7.4-33.8 19.7-45.8s29-18.8 46.3-18.6 33.8 7.2 45.9 19.5 18.9 28.9 18.9 46.2l0 25.3 26.3 0 0-25.3c0-24.3-9.7-47.7-26.9-64.9s-40.5-26.9-64.9-26.9-47.7 9.7-64.9 26.9-26.9 40.5-26.9 64.9l0 25.4 26.3 0 0 26zm418.4-71.2c13.7 0 24.6 6.6 30.1 18.3l.7 1.5 23.2-11.5-.6-1.4c-8-19.3-28.5-31.3-53.4-31.3-23.1 0-43.6 11.4-51 28.4-.1 26.9-.2 23.9 0 24.8 4.7 11 14.6 19.4 28.7 24.2 6.5 2 13.1 3.3 19.8 4 5.5 .7 10.6 1.4 15.8 3.1 6.4 2.1 10.5 5.3 12.8 9.8l0 9.9c-3.7 7.5-13.8 12.3-25.8 12.3-14.3 0-26-6.9-31.9-19l-.7-1.5-23 11.5 .6 1.4c7.9 19.4 29.6 32 55.3 32 23.6 0 44.6-11.4 52.3-28.4l.2-25.9-.2-.7c-4.9-11-15.2-19.6-28.9-24.2-7.7-2.7-14.3-3.6-20.7-4.4-5-.5-10-1.5-14.8-2.9-6.3-1.9-10.4-5.1-12.6-9.6l0-8.4c3.4-7.4 12.9-12.1 24.2-12.1l0 0zM287.6 311.3l26.1 0 0-68.4-26.1 0 0 68.4zM639.8 258c-2.9-6.3-8.3-12-15.4-16.7 5.6-3.8 10.1-9.1 13-15.3l.2-25.3-.2-.7c-7.4-16-26.7-26.7-48.2-26.7S548.5 184 541.1 200l-.2 25.3 .2 .7c2.9 6.1 7.4 11.4 13 15.3-7.2 4.7-12.5 10.5-15.4 16.7l-.2 28.9 .2 .7c7.6 16 27.9 26.7 50.6 26.7s43.1-10.7 50.6-26.7l.2-28.9-.2-.7zm-73.2-50.8c3.6-6.3 12.6-10.5 22.6-10.5s19 4.2 22.6 10.5l0 13.7c-3.5 6.2-12.6 10.3-22.6 10.3s-19.1-4.2-22.6-10.3l0-13.7zm47.3 72.2c-3.8 6.6-13.3 10.9-24.7 10.9-11.1 0-21-4.4-24.7-10.9l0-16.2c3.7-6.3 13.5-10.5 24.7-10.5 11.3 0 20.9 4.1 24.7 10.5l0 16.2zM376.4 266l-59.8-89.7-29 0 0 40.6 26.5 0 0 .4 62.5 94.1 25.7 0 0-135.1-25.9 0 0 89.7z\"]\n};\nvar faSquarePinterest = {\n prefix: 'fab',\n iconName: 'square-pinterest',\n icon: [448, 512, [\"pinterest-square\"], \"f0d3\", \"M384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l72.6 0-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7 3.9-16 8.5-35 13.9-57.9 0 0-7.3-14.8-7.3-36.5 0-70.7 75.5-78 75.5-25 0 13.5-5.4 31.1-11.2 49.8-3.3 10.6-6.6 21.5-9.1 32-5.7 24.5 12.3 44.4 36.4 44.4 43.7 0 77.2-46 77.2-112.4 0-58.8-42.3-99.9-102.6-99.9-69.9 0-110.9 52.4-110.9 106.6 0 21.1 8.2 43.7 18.3 56 2 2.4 2.3 4.5 1.7 7-1.1 4.7-3.1 12.9-4.7 19.2-1 4-1.8 7.3-2.1 8.6-1.1 4.5-3.5 5.5-8.2 3.3-30.6-14.3-49.8-59.1-49.8-95.1 0-77.5 56.2-148.6 162.2-148.6 85.2 0 151.4 60.7 151.4 141.8 0 84.6-53.3 152.7-127.4 152.7-24.9 0-48.3-12.9-56.3-28.2 0 0-12.3 46.9-15.3 58.4-5 19.3-17.6 42.9-27.4 59.3L384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64z\"]\n};\nvar faPinterestSquare = faSquarePinterest;\nvar faBluetoothB = {\n prefix: 'fab',\n iconName: 'bluetooth-b',\n icon: [256, 512, [], \"f294\", \"M164.9 260L257.5 156.7 111.6 0 111.6 206.3 25.4 120.2-6 151.6 102.1 260-6 368.4 25.4 399.8 111.6 313.7 114.3 512 262.8 363.4 164.9 260zm40.9-103l-50 50-.3-100.3 50.3 50.3zm-50 156l50 50-50.3 50.3 .3-100.3z\"]\n};\nvar faGripfire = {\n prefix: 'fab',\n iconName: 'gripfire',\n icon: [320, 512, [], \"f3ac\", \"M80.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4 .4 3.3 .6 6.7 .6 10 0 92.1-147.1 153.9-147.1 268.6 0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"]\n};\nvar faSquareGooglePlus = {\n prefix: 'fab',\n iconName: 'square-google-plus',\n icon: [448, 512, [\"google-plus-square\"], \"f0d4\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM64 256c0-55.3 44.7-100 100-100 27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1l-56.9 0 0-34.4 94.4 0c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6-55.3 0-100-44.7-100-100zm291 18.2l0 29-29.2 0 0-29-29 0 0-29.2 29 0 0-29 29.2 0 0 29 29 0 0 29.2-29 0z\"]\n};\nvar faGooglePlusSquare = faSquareGooglePlus;\nvar faGitee = {\n prefix: 'fab',\n iconName: 'gitee',\n icon: [512, 512, [], \"e863\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM385.6 113.8l0 0-177 0c-52.4 0-94.8 42.4-94.8 94.8l0 177c0 7 5.7 12.6 12.6 12.6l186.5 0c47.1 0 85.3-38.2 85.3-85.3l0-72.7c0-7-5.7-12.6-12.6-12.6l-145.4 0c-7 0-12.6 5.7-12.6 12.6l0 31.6c0 6.6 5.1 12.1 11.6 12.6l1 0 88.5 0c6.6 0 12.1 5.1 12.6 11.6l0 1 0 6.3c0 20.9-17 37.9-37.9 37.9l-120.1 0c-7 0-12.6-5.7-12.6-12.6l0-120.1c0-20.4 16.1-37.1 36.4-37.9l1.6 0 177 0c7 0 12.6-5.7 12.6-12.6l0-31.6c0-7-5.6-12.6-12.6-12.6z\"]\n};\nvar faXmpp = {\n prefix: 'fab',\n iconName: 'xmpp',\n icon: [576, 512, [], \"e864\", \"M0 47.2c3.5 137.1 117.1 278.6 252.9 356.7-31.5 25-67.2 44.1-106.2 53.9l0 5.4c56.4-2.3 98.1-20.1 141.3-40.7 65.7 34.6 122.2 39.9 141.4 40.7l0-5.4c-39-9.8-74.7-28.8-106.2-53.8 135.7-78.2 249.3-219.8 252.8-356.8-58.4 25.7-119.1 44.2-180.1 62.3l0 0c3.4 59-20.2 170.4-107.9 262.3-88.4-92.3-111.2-204.1-107.8-262.3l0 0C117.7 92.6 59.3 70.2 0 47.2zM93.9 97l73.6 21.8C165.4 216 226.8 358 341.3 432.2 190.5 376.9 89.9 215.7 93.9 97zm388.3 0c3.3 99-65.6 224.7-171.7 296.4-4.7-4.1-9.3-8.4-13.8-12.7 77-80.2 113.2-186.3 111.9-261.9L482.1 97zM264.5 410.5c3 1.6 5.9 3.2 8.9 4.7-12.5 6.4-25.4 12.1-38.6 17 10.3-6.7 20.2-13.9 29.7-21.7z\"]\n};\nvar faAppStore = {\n prefix: 'fab',\n iconName: 'app-store',\n icon: [512, 512, [], \"f36f\", \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5s13.1 18.1 7.5 27.9l-87.5 151.5 63.3 0c20.5 0 32 24.1 23.1 40.8l-185.5 0c-11.3 0-20.4-9.1-20.4-20.4s9.1-20.4 20.4-20.4l52 0 66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5s-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7l53.1 0c11.3 0 20.4 9.1 20.4 20.4S410.5 318 399.2 318l-29.5 0 19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM40 256a216 216 0 1 1 432 0 216 216 0 1 1 -432 0z\"]\n};\nvar faWix = {\n prefix: 'fab',\n iconName: 'wix',\n icon: [640, 512, [], \"f5cf\", \"M393.4 131.7c0 13 2.1 32.7-28.7 43.8-9.5 3.4-16 9.7-16 9.7 0-31 4.7-42.2 17.4-48.9 9.8-5.1 27.2-4.6 27.2-4.6zM277.6 167.2l-34.2 132.7-28.5-108.6c-7.7-32-20.8-48.5-48.4-48.5-27.4 0-40.7 16.2-48.4 48.5L89.5 299.9 55.3 167.2C49.7 140.5 23.9 129 0 132L65.6 379.9s21.6 1.6 32.5-4c14.2-7.2 21-12.8 29.6-46.6 7.7-30.1 29.1-118.4 31.1-124.7 4.8-14.9 11.1-13.8 15.4 0 2 6.3 23.5 94.6 31.1 124.7 8.6 33.7 15.4 39.3 29.6 46.6 10.8 5.5 32.5 4 32.5 4L332.9 132c-24.4-3.1-49.8 8.9-55.3 35.3zm115.8 5.2s-4.1 6.3-13.5 11.6c-6 3.4-11.8 5.6-18 8.6-15.1 7.3-13.2 13.9-13.2 35.2l0 152.1s16.6 2.1 27.4-3.4c13.9-7.1 17.1-14 17.3-44.8l0-150.3 0 0 0-9zm163.4 84.1L640 132.8s-35.1-6-52.5 9.8c-13.3 12.1-24.4 29.6-54.2 72.5-.5 .7-6.3 10.5-13.1 0-29.3-42.2-40.8-60.3-54.2-72.5-17.4-15.8-52.5-9.8-52.5-9.8l83.2 123.7-83 123.4s36.6 4.6 54-11.2c11.5-10.5 17.6-20.4 52.5-70.7 6.8-10.5 12.6-.8 13.1 0 29.4 42.4 39.2 58.1 53.1 70.7 17.4 15.8 53.3 11.2 53.3 11.2l-83-123.4z\"]\n};\nvar faIntercom = {\n prefix: 'fab',\n iconName: 'intercom',\n icon: [448, 512, [], \"f7af\", \"M392 32L56 32C25.1 32 0 57.1 0 88L0 424c0 30.9 25.1 56 56 56l336 0c30.9 0 56-25.1 56-56l0-336c0-30.9-25.1-56-56-56zM283.7 114.1c0-19.8 29.9-19.8 29.9 0l0 199.5c0 19.8-29.9 19.8-29.9 0l0-199.5zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0l0 216.5c0 19.8-29.9 19.8-29.9 0l0-216.5zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0l0 199.5c0 19.8-29.9 19.8-29.9 0l0-199.5zM59.7 144c0-19.8 29.9-19.8 29.9 0l0 134.3c0 19.8-29.9 19.8-29.9 0l0-134.3zM383.1 371.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0l0-134.3c0-19.8 29.9-19.8 29.9 0l0 134.3z\"]\n};\nvar faReacteurope = {\n prefix: 'fab',\n iconName: 'reacteurope',\n icon: [576, 512, [], \"f75d\", \"M250.7 211.7l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3-2 6.8zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3-1.9 6.8zm-91.3 50.5l-3.4 0c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1l0-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5l3.4 0c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1l-.2 0c-10.1 0-16.8 4.2-16.8 14.1l0 40.1c0 10.4 6.7 14.1 16.8 14.1l.2 0c10.1 0 16.8-3.8 16.8-14.1 0-9.9 1.1-13.8-3.8-13.8zm-80.7 17.4l-14.7 0 0-19.3 11.4 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-11.4 0 0-18.3 14.4 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-21.7 0c-2.4-.1-3.7 1.3-3.7 3.8l0 59.1c0 2.5 1.3 3.8 3.8 3.8l21.9 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4l0-11.9c0-10.1-6.7-14.1-16.8-14.1l-13.4 0c-2.5 0-3.8 1.3-3.8 3.8l0 59.1c0 2.5 1.3 3.8 3.8 3.8l3.4 0c2.5 0 3.8-1.3 3.8-3.8l0-22.9 5.6 0 7.4 23.5c.2 1 .8 1.8 1.6 2.4s1.8 .9 2.7 .8l3.3 0c2.8 0 4-1.8 3.2-4.4l-8.1-23.9zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1l-5.8 0 0-20.9 5.8 0c3.6 0 6.1 1.3 6.1 6.1l0 8.7zM176.1 226c-.1-.5-.2-1-.4-1.4s-.6-.8-1-1.1-.8-.6-1.3-.7-1-.2-1.5-.1l-6.9 0c-.5 0-1 0-1.4 .2s-.9 .4-1.3 .7-.7 .7-.9 1.1-.4 .9-.4 1.4l-11 59.2c-.5 2.7 .9 4.1 3.4 4.1l3 0c.5 .1 1 0 1.5-.2s.9-.4 1.3-.7 .7-.7 .9-1.2 .4-.9 .4-1.4l1.8-11.3 12.2 0 1.8 11.3c0 .5 .2 1 .4 1.4s.5 .9 .9 1.2 .8 .6 1.3 .7 1 .2 1.5 .2l3.5 0c2.6 0 3.9-1.4 3.4-4.1L176.1 226zm-12.3 39.3l4.7-29.7 4.7 29.7-9.4 0zm89.3 20.2l0-53.2 7.5 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-25.8 0c-2.5 0-3.8 1.3-3.8 3.8l0 2.1c0 2.5 1.3 3.8 3.8 3.8l7.3 0 0 53.2c0 2.5 1.3 3.8 3.8 3.8l3.4 0c2.5 0 3.8-1.3 3.8-3.8l0 0zm248-.8l-19.4 0 0-26.7 16.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-16.1 0 0-25.8 19.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-22.2 0c-.3-.1-.5-.1-.8 0s-.5 .2-.7 .4-.3 .4-.4 .7-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l22.5 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l0 0zM408 221.8l-.8 0c-10.1 0-15.3 4.7-15.3 14.1l0 40.1c0 9.3 5.2 14.1 15.3 14.1l.8 0c10.1 0 15.3-4.8 15.3-14.1l0-40.1c0-9.4-5.2-14.1-15.3-14.1l0 0zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1l0-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1l0 36.6zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3l0-9.7c0-9.4-5.2-14.1-15.3-14.1l-13.7 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l1.2 0c.3 0 .5 0 .8-.1s.5-.2 .6-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-26.9 11.6 0 10.4 27.2c.2 .5 .5 .9 .9 1.1s.9 .4 1.4 .4l1.5 0c1.4 0 2-1 1.5-2.3l-10.6-27.3zm-6.4-3.9l-10.2 0 0-28.5 10.2 0c7.5 0 10.5 3.1 10.5 11.1l0 6.4c0 7.8-3 11-10.5 11l0 0zm85.9-33.1l-13.7 0c-.3-.1-.5-.1-.8 0s-.5 .2-.7 .4-.3 .4-.4 .7-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l1.2 0c.3 0 .5 0 .8-.1s.5-.2 .6-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-26.1 10.6 0c10.1 0 15.3-4.8 15.3-14.1l0-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1l-10.2 0 0-29.2 10.2 0c7.5-.1 10.5 3.1 10.5 11l0 7.1zM259.6 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zM487.2 171.9c-11.7-4.4-23.5-8.1-35.6-11.3 19.6-78 11.6-134.7-22.3-153.9-34.5-19.4-85.9 4.3-138.2 55.2 3.4 3.3 6.8 6.7 10.2 10.2 82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8-27.8-6.4-56.1-10.7-84.6-13-71.9-100.5-140.6-142.1-182.2-142.1-30.8 0-43.8 21-47.6 27.7-18.1 32-13.3 84.2 .1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2-3.4-3.3-6.8-6.7-10.2-10.2-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3l0 0zM136 36.8c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2-31.3-1.8-62.7-1.5-93.9 .9 13-18.3 27.1-35.8 42.2-52.4-3.4-3.5-6.8-6.9-10.2-10.2-18.3 20.2-35.3 41.7-50.7 64.2-28.5 2.7-56.7 7.6-84.4 14.6-.2-1.4-24.3-82.2-1.2-123l0 0zM440.8 475.1c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2 31.3 1.8 62.7 1.5 93.9-.9-13 18.3-27.1 35.8-42.2 52.4 3.4 3.5 6.8 6.9 10.2 10.2 18.4-20.2 35.3-41.7 50.7-64.2 47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4-2.1 0-4.2-.5-6.1-1.5s-3.5-2.4-4.6-4.2l-.1 .1c-1.6 1.5-3.4 2.7-5.4 3.6 5.7 14.3 10.6 28.4 14.7 42.2-23.7 6-47.7 10.3-72 13 3.5-5.3 17.2-26.2 32.2-54.2-2.1-.8-4.2-1.9-6-3.2-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2-37.4 3.3-75 3.6-112.4 1-7.9-11.2-21.5-31.1-36.8-57.8-1-.4-2-.9-3-1.5-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6-24.3-2.3-48.4-6.2-72.2-11.7 3.9-14 8.6-28.3 14.1-42.9-3.2 0-5.4 .2-8.4-1-2.2 .8-4.6 1.1-6.9 1-4.9 13.4-9.1 26.5-12.7 39.4-159.9-42.6-140.3-123.6-1.5-164 3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3 .7-.8 1.4-1.6 2.3-2.2-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3 3.1 1.8 5.3 4.6 6.4 8 2.5-3.7 6.1-6.6 10.2-8.4 6.5-11.7 17.9-31.9 34.8-56.9 37.4-3.3 75-3.6 112.4-1 31.5 44.6 28.9 48.1 42.5 64.5 2.6-3.5 6.3-6 10.4-7.4-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2 2.5 1 4.8 2.4 6.8 4.3l.1 .1c1-1.5 2.3-2.8 3.8-3.8s3.3-1.6 5.1-1.8c4.9-13.4 9.2-26.6 12.8-39.5 11.7 3.1 23.2 6.8 34.5 11 106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114l-1.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.6 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1l0-49.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-1.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 51.5c0 9.6 5 14.1 15.1 14.1l.4 0c10.1 0 15.1-4.6 15.1-14.1l0-51.5c0-.3-.1-.5-.2-.8s-.3-.5-.5-.6-.4-.3-.7-.4-.5-.1-.8-.1zM321.8 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zm5.1-30.8l-19.4 0 0-26.7 16.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-16.1 0 0-25.8 19.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-22.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l22.5 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.6-.1-.8s-.2-.5-.4-.7-.4-.4-.7-.4-.5-.1-.8-.1l0 0zm-7.4-99.4l-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8z\"]\n};\nvar faWaze = {\n prefix: 'fab',\n iconName: 'waze',\n icon: [512, 512, [], \"f83f\", \"M502.6 201.7c14.5 85.9-30.9 167.9-113.2 208.1 13 34.1-12.4 70.2-48.3 70.2-13.2 0-26-5.1-35.6-14.2s-15.3-21.6-16-34.8c-6.4 .2-64.2 0-76.3-.6-.3 6.8-1.9 13.5-4.7 19.6s-6.9 11.7-11.9 16.3-10.8 8.2-17.2 10.5-13.2 3.4-19.9 3.1c-33.9-1.4-58-34.8-47-67.9-37.2-13.1-72.5-34.9-99.6-70.8-13-17.3-.5-41.8 20.8-41.8 46.3 0 32.2-54.2 43.2-110.3 18.4-93.9 116.8-157.1 211.7-157.1 102.5 0 197.2 70.7 214.1 169.7zM373.9 388.3c42-19.2 81.3-56.7 96.3-102.1 40.5-123.1-64.2-228-181.7-228-83.4 0-170.3 55.4-186.1 136-9.5 48.9 5 131.4-68.7 131.4 24.9 33.1 58.3 52.6 93.7 64 24.7-21.8 63.9-15.5 79.8 14.3 14.2 1 79.2 1.2 87.9 .8 3.5-6.9 8.5-12.9 14.7-17.5s13.2-7.9 20.8-9.5 15.4-1.4 22.9 .4 14.5 5.3 20.5 10.2zM205.5 187.1c0-34.7 50.8-34.7 50.8 0s-50.8 34.7-50.8 0zm116.6 0c0-34.7 50.9-34.7 50.9 0s-50.9 34.8-50.9 0zM199.5 257.8c-3.4-16.9 22.2-22.2 25.6-5.2l.1 .3c4.1 21.4 29.8 44 64.1 43.1 35.7-.9 59.3-22.2 64.1-42.8 4.5-16.1 28.6-10.4 25.5 6-5.2 22.2-31.2 62-91.5 62.9-42.6 0-80.9-27.8-87.9-64.2l0 0z\"]\n};\nvar faCreativeCommonsRemix = {\n prefix: 'fab',\n iconName: 'creative-commons-remix',\n icon: [512, 512, [], \"f4ee\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM418.1 260.4l4.9 2.2 0 70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5 0-63.8 59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7 151.9 62.9 0 61.6 49.1 20.3zm-70.4 81.5l0-43.8-.4 0 0-1.8-113.8-46.5 0 45.2 113.8 46.9 0-.4 .4 .4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1l0-43-44.3 18.6 0 43.4 44.3-19z\"]\n};\nvar faBandcamp = {\n prefix: 'fab',\n iconName: 'bandcamp',\n icon: [512, 512, [], \"f2d5\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm48.2 326.1l-181 0 84.7-156.1 181 0-84.7 156.1z\"]\n};\nvar faSquareWebAwesomeStroke = {\n prefix: 'fab',\n iconName: 'square-web-awesome-stroke',\n icon: [448, 512, [], \"e684\", \"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm235 81.6l53 46.4 52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224c-12.9-.4-23.2-11-23.2-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224 213.1 177.6c-8.9-4.1-15-13.1-15-23.6 0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"]\n};\nvar faVimeoV = {\n prefix: 'fab',\n iconName: 'vimeo-v',\n icon: [448, 512, [], \"f27d\", \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3-35.2-129.2-50.2-204.9-79.3-204.9-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"]\n};\nvar faStrava = {\n prefix: 'fab',\n iconName: 'strava',\n icon: [384, 512, [], \"f428\", \"M158.4 0L7 292 96.2 292 158.4 175.9 220.1 292 308.6 292 158.4 0zM308.6 292l-43.9 88.2-44.6-88.2-67.6 0 112.2 220 111.5-220-67.6 0z\"]\n};\nvar faUniregistry = {\n prefix: 'fab',\n iconName: 'uniregistry',\n icon: [384, 512, [], \"f404\", \"M192 480c39.5 0 76.2-11.8 106.8-32.2l-213.5 0C115.8 468.2 152.5 480 192 480zM102.9 286.9l0-12.4-102.9 0 0 12.4c0 2.5 0 5 .1 7.4l103.1 0c-.2-2.4-.3-4.9-.3-7.4zm20.5 57l-114.9 0c2.6 8.5 5.8 16.8 9.6 24.8l138.3 0c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7l-104.4 0c.9 7.6 2.2 15 3.9 22.3l109.7 0c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3l-102.9 0 0 17.3 102.9 0 0-17.3zm0-173.2l-102.9 0 0 4.9 102.9 0 0-4.9zm0-34.7l-102.9 0 0 2.5 102.9 0 0-2.5zm0 69.3l-102.9 0 0 7.4 102.9 0 0-7.4zm0 104l-102.9 0 0 14.8 102.9 0 0-14.8zm0-69.3l-102.9 0 0 9.9 102.9 0 0-9.9zm0 34.6l-102.9 0 0 12.4 102.9 0 0-12.4zM269.1 331.5l109.7 0c1.8-7.3 3.1-14.7 3.9-22.3l-104.4 0c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7l102.9 0 0-9.8-102.9 0 0 9.8zm0 37.2l102.9 0 0-12.4-102.9 0 0 12.4zm0-74.3l102.9 0 0-7.4-102.9 0 0 7.4zm0-76.7l0 2.5 102.9 0 0-2.5-102.9 0zM78.1 442.9l227.7 0c11.8-8.7 22.7-18.6 32.2-29.7l-293.1 0c9.6 11 21.4 21 33.2 29.7zm203-371.3l102.9 0 0-4.9-102.9 0 0 4.9zm0 148.5l102.9 0 0-14.8-102.9 0 0 14.8zM38.8 405.7l305.3 0c6.7-8.5 12.6-17.6 17.8-27.2L23 378.5c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1l139.4 0c3.7-8 5.8-16.2 8.5-24.8l-115 0c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4l103.1 0c.1-2.5 .2-4.9 .2-7.4l0-12.4-102.9 0 0 12.4zm0-29.7l102.9 0 0-17.3-102.9 0 0 17.3z\"]\n};\nvar faCcDinersClub = {\n prefix: 'fab',\n iconName: 'cc-diners-club',\n icon: [576, 512, [], \"f24c\", \"M239.7 79.9a175.8 175.8 0 1 0 0 351.6 175.8 175.8 0 1 0 0-351.6zM199.8 359.5c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1l0 207.9zm79.8 .3l0-208.2c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM329.7 448l-90.3 0C133.2 448 45.6 362.5 45.6 257.8 45.6 143.2 133.2 64 239.4 64l90.3 0c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"]\n};\nvar faKubernetes = {\n prefix: 'fab',\n iconName: 'kubernetes',\n icon: [512, 512, [], \"e857\", \"M256 316.1c3.5-.1 7.2 2 8.9 5.1L293 371.7c-3.6 1.2-7.3 2.3-11.2 3.1-21.4 4.9-42.7 3.4-62-3.2l27.9-50.4c1.7-3.1 4.9-5 8.2-5.1zm50.5-23.4l57.2 9.7c-8.4 23.5-24.4 43.9-45.8 57.5l-22.2-53.6c-2-4.7 .1-10.4 4.8-12.6 1.9-.9 4.1-1.3 6-.9zm-89.1 7.7c.5 2.1 .3 4.2-.5 6l-21.8 53.3c-20.5-13.2-36.9-32.9-45.7-57.1l56.7-9.6c5.1-.9 10.1 2.4 11.3 7.5zm58.8-41l-3.9 17.1-15.8 7.6-15.9-7.7-4-17.1 11-13.7 17.7 0 11 13.7zm-73.7-16.7c3.9 3.4 4.4 9.5 1.2 13.6-1.3 1.7-3.1 2.8-5 3.3l-55.3 16.2c-2.8-25.7 3.3-50.7 16.1-71.6l43.1 38.6zm150.7-38.5c6.4 10.4 11.2 22 14.1 34.6 2.9 12.4 3.6 24.8 2.4 36.8l-55.6-16c-5-1.4-8.1-6.7-6.9-11.7 .5-2.1 1.6-3.8 3.1-5.1l42.9-38.5zm-113.8 4.4c-.2 5.2-4.7 9.4-9.9 9.4-2.1 0-4.1-.7-5.7-1.8l-47.3-33.4c14.5-14.3 33.1-24.8 54.5-29.7 3.9-.9 7.8-1.6 11.7-2l-3.3 57.6zm30.8-57.6c25 3.1 48.1 14.4 65.8 31.7l-47.1 33.2c-4.2 3-10 2.3-13.3-1.8-1.3-1.7-2-3.6-2.1-5.6l-3.3-57.5zM254.5-1.3c5.9-.3 11.7 .9 17 3.4L455 89.7c4.7 2.3 8.9 5.6 12.2 9.7s5.6 8.8 6.8 13.9l45.3 196.9c1.2 5.1 1.2 10.4 0 15.5s-3.5 9.9-6.8 13.9L385.6 497.6c-3.3 4.1-7.5 7.4-12.2 9.6s-10 3.4-15.2 3.4l-203.6 0c-5.3 0-10.5-1.2-15.2-3.4s-8.9-5.5-12.2-9.6L.2 339.7c-.7-.9-1.4-1.8-2-2.8-2.6-3.9-4.3-8.3-5.1-12.9s-.7-9.3 .3-13.8L38.7 113.4c1.2-5.1 3.5-9.9 6.8-13.9s7.5-7.4 12.2-9.7L241.1 2.1c4.2-2 8.8-3.2 13.4-3.4zm1.8 67c-6.1 0-11 5.5-11 12.2 0 .1 0 .2 0 .3 0 .9-.1 2 0 2.8 .1 3.9 1 6.9 1.5 10.4 .9 7.7 1.7 14 1.2 19.9-.5 2.2-2.1 4.3-3.6 5.7l-.2 4.6c-6.6 .5-13.2 1.6-19.8 3.1-28.5 6.5-53.1 21.1-71.8 41-1.2-.8-3.3-2.3-4-2.8-2 .3-4 .9-6.5-.6-4.9-3.3-9.4-7.9-14.8-13.4-2.5-2.6-4.3-5.1-7.2-7.7-.7-.6-1.7-1.4-2.4-2-2.3-1.8-5-2.8-7.7-2.9-3.4-.1-6.6 1.2-8.8 3.9-3.8 4.7-2.5 12 2.7 16.2 .1 0 .1 .1 .2 .1 .7 .6 1.6 1.3 2.3 1.8 3.1 2.3 6 3.5 9.1 5.3 6.6 4.1 12 7.4 16.3 11.5 1.7 1.8 2 4.9 2.2 6.3l3.5 3.2c-18.8 28.4-27.6 63.4-22.4 99.1l-4.6 1.3c-1.2 1.6-2.9 4-4.7 4.7-5.6 1.8-12 2.4-19.7 3.3-3.6 .3-6.7 .1-10.5 .8-.8 .2-2 .4-2.9 .7l-.1 0-.2 .1c-6.5 1.6-10.7 7.5-9.3 13.4 1.3 5.9 7.7 9.4 14.2 8l.2 0c.1 0 .1-.1 .2-.1 .9-.2 2.1-.4 2.8-.6 3.8-1 6.5-2.5 9.8-3.8 7.3-2.6 13.3-4.8 19.2-5.6 2.4-.2 5 1.5 6.3 2.2l4.8-.8c11 34.1 34.1 61.7 63.3 79.1l-2 4.8c.7 1.9 1.5 4.4 1 6.2-2.1 5.5-5.8 11.4-9.9 17.9-2 3-4.1 5.3-5.9 8.8-.4 .8-1 2.1-1.4 3-2.8 6-.8 13 4.7 15.6 5.5 2.6 12.2-.1 15.2-6.2l0 0c.4-.9 1-2 1.4-2.8 1.6-3.6 2.1-6.6 3.2-10.1 2.9-7.3 4.5-14.9 8.5-19.7 1.1-1.3 2.9-1.8 4.8-2.3l2.5-4.5c25.5 9.8 54 12.4 82.5 5.9 6.5-1.5 12.8-3.4 18.8-5.7 .7 1.2 2 3.6 2.3 4.2 1.9 .6 3.9 .9 5.6 3.4 3 5.1 5 11.2 7.5 18.5 1.1 3.4 1.6 6.5 3.2 10.1 .4 .8 1 2 1.4 2.8 2.9 6.1 9.7 8.8 15.2 6.2 5.4-2.6 7.5-9.6 4.7-15.6-.4-.9-1-2.1-1.4-3-1.8-3.4-3.9-5.7-5.9-8.7-4.2-6.5-7.6-11.9-9.8-17.4-.9-2.8 .2-4.6 .8-6.5-.4-.5-1.3-3.2-1.8-4.4 30.4-17.9 52.8-46.6 63.3-79.6 1.4 .2 3.9 .7 4.7 .8 1.7-1.1 3.2-2.5 6.2-2.3 5.9 .8 11.9 3 19.2 5.6 3.4 1.3 6.1 2.8 9.8 3.8 .8 .2 1.9 .4 2.8 .6 .1 0 .1 0 .2 .1l.2 0c6.5 1.4 12.8-2.2 14.2-8s-2.8-11.8-9.3-13.4c-.9-.2-2.3-.6-3.2-.7-3.8-.7-6.9-.5-10.5-.8-7.7-.8-14-1.4-19.7-3.2-2.3-.9-4-3.7-4.8-4.8l-4.4-1.3c2.3-16.6 1.7-33.9-2.3-51.3-4-17.5-11.1-33.5-20.6-47.6 1.1-1 3.3-2.9 3.9-3.5 .2-2 0-4 2.1-6.2 4.3-4.1 9.8-7.4 16.3-11.5 3.1-1.8 6-3 9.1-5.3 .7-.5 1.7-1.3 2.4-1.9 5.3-4.2 6.5-11.4 2.7-16.2s-11.1-5.2-16.4-1c-.7 .6-1.8 1.4-2.4 2-2.9 2.5-4.8 5-7.2 7.7-5.4 5.5-9.9 10.1-14.8 13.4-2.1 1.2-5.3 .8-6.7 .7l-4.2 3c-23.8-25-56.2-41-91.2-44.1-.1-1.5-.2-4.1-.2-4.9-1.4-1.4-3.2-2.5-3.6-5.5-.5-5.9 .3-12.3 1.3-19.9 .5-3.6 1.4-6.6 1.5-10.4 0-.9 0-2.2 0-3.1 0-6.7-4.9-12.2-11-12.2z\"]\n};\nvar faPinterest = {\n prefix: 'fab',\n iconName: 'pinterest',\n icon: [512, 512, [], \"f0d2\", \"M504 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3 .8-3.4 5-20.3 6.9-28.1 .6-2.5 .3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2C161.5 437.2 163.5 467.4 165.6 487 73.4 450.9 8 361.1 8 256 8 119 119 8 256 8S504 119 504 256z\"]\n};\nvar faAlgolia = {\n prefix: 'fab',\n iconName: 'algolia',\n icon: [512, 512, [], \"f36c\", \"M256 0c-139.9 0-254 112.7-256 252.1-2 141.5 112.9 258.7 254.5 259.5 43.7 .3 85.9-10.4 123.3-30.7 3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3-26.1 11.1-54.5 16.8-83.7 16.4-114.4-1.5-206.9-96.6-205.1-211 1.8-112.9 94.3-204.2 207.7-204.2l207.7 0 0 369-117.8-104.7c-3.8-3.4-9.7-2.7-12.7 1.3-18.9 25-49.7 40.6-83.9 38.2-47.5-3.3-85.9-41.5-89.5-88.9-4.2-56.6 40.6-103.9 96.3-103.9 50.4 0 91.9 38.8 96.2 88 .4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4 2.2-11.8 3-24.2 2.1-36.8-4.9-72-63.3-130-135.4-134.4-82.7-5.1-151.8 59.5-154 140.6-2.1 78.9 62.6 147 141.6 148.7 33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7l0-492c0-5.4-4.4-9.7-9.7-9.7L256 0z\"]\n};\nvar faStackpath = {\n prefix: 'fab',\n iconName: 'stackpath',\n icon: [448, 512, [], \"f842\", \"M244.6 232.4c0 8.5-4.3 20.5-21.3 20.5l-19.6 0 0-41.5 19.6 0c17.1 0 21.3 12.4 21.3 21zM448 32l0 448-448 0 0-448 448 0zM151.3 287.8c0-21.2-12.1-34.5-46.7-44.8-20.6-7.4-26-10.9-26-18.6s7-14.6 20.4-14.6c14.1 0 20.8 8.4 20.8 18.4l30.7 0 .2-.6c.5-19.6-15.1-41.6-51.1-41.6-23.4 0-52.6 10.8-52.6 38.3 0 19.4 9.2 31.3 50.7 44.4 17.3 6.2 21.9 10.4 21.9 19.5 0 15.2-19.1 14.2-19.5 14.2-20.4 0-25.7-9.1-25.7-21.9l-30.8 0-.2 .6c-.7 31.3 28.4 45.2 56.6 45.2 30 0 51.1-13.6 51.1-38.3zm125.4-55.6c0-25.3-18.4-45.5-53.4-45.5l-51.8 0 0 138.2 32.2 0 0-47.4 19.6 0c30.3 0 53.4-16 53.4-45.4zM297.9 325l49.1-138.2-31.1 0-47.9 138.2 29.9 0zM404.5 186.8l-31.1 0-47.9 138.2 29.9 0 49.1-138.2z\"]\n};\nvar faOctopusDeploy = {\n prefix: 'fab',\n iconName: 'octopus-deploy',\n icon: [512, 512, [], \"e082\", \"M455.7 349.2c-45.9-39.1-36.7-77.9-16.1-128.1 35.7-87-23.5-186.9-109.6-212.8-92.9-27.9-195.7 16-230.3 108.8-8.7 23.5-12.5 48.5-11 73.5 1.7 29.5 14.7 53 24.1 80.3 17.2 50.2-28.1 92.7-66.7 117.6-46.8 30.2-36.3 39.9-8.4 41.9 23.4 1.7 44.5-4.5 65.3-15 9.2-4.6 40.7-18.9 45.1-28.6-12.2 26.6-37 72.7-21.5 102.1 19.1 36.2 67.1-31.8 76.7-45.8 8.6-12.6 43-81.3 63.6-46.9 18.9 31.4 8.6 76.4 35.7 104.6 32.9 34.2 51.2-18.3 51.4-44.2 .2-16.4-6.1-95.9 29.9-59.9 21.4 21.4 52.9 71.2 88.6 67 38.7-4.5-22.1-68-28.3-78.7 5.4 4.3 53.7 34.1 53.8 9.5 .1-18.8-30.1-34.7-42.5-45.3z\"]\n};\nvar faYammer = {\n prefix: 'fab',\n iconName: 'yammer',\n icon: [512, 512, [], \"f840\", \"M500.7 159.5c-.4-1.8-1.2-3.4-2.3-4.8s-2.5-2.6-4.1-3.5c-3.1-1.6-6.7-2-10.1-1.1l-26.4 6.6 0-.2-22.3 5.8-1.2 .3-.6-2.2c-15.5-58.3-45-111.9-86.1-156.2-2.6-2.7-6.1-4.2-9.8-4.3s-7.3 1.3-10 3.8l-102.9 102.7-199.9 0c-6.6 0-12.9 2.6-17.6 7.3S0 124.8 0 131.4l0 249C0 387 2.6 393.3 7.3 398s11 7.3 17.6 7.3L225 405.3 328.1 508c2.6 2.6 6 4 9.7 4s7.1-1.4 9.7-4c.1-.1 .2-.3 .4-.4 29.3-31.5 52.8-67.8 69.6-107.4 6.9-16.5 12.7-33.5 17.3-50.8l0 0 20.4 5.3 0-.1 28.3 7.3c.9 .2 1.7 .4 2.6 .5 1.4 .2 2.8 .2 4.1-.1 2.5-.5 4.8-1.7 6.7-3.4s3.2-4 3.8-6.5c15.2-63.4 15.2-129.6 .1-193l0 0zM337.1 24.7l0 0 0 0 0 0zM226.9 189.8l-52.6 91.3c-1 1.7-1.5 3.7-1.5 5.7l0 46.2c0 5.8-2.3 11.4-6.5 15.6s-9.7 6.4-15.6 6.4l-3.4 0c-5.8 0-11.4-2.3-15.6-6.4s-6.5-9.7-6.5-15.6l0-45.7c0-1.9-.5-3.8-1.4-5.5L72.3 189.6c-1.9-3.4-2.8-7.1-2.8-11s1.1-7.6 3-10.9 4.7-6.1 8.1-8 7.1-2.9 11-2.9l3.3 0c4 0 8 1.1 11.5 3.2s6.3 5.1 8.1 8.7l36.4 70.3 37.5-70.5c1.8-3.5 4.6-6.4 7.9-8.4s7.2-3.2 11.1-3.2 7.8 .9 11.2 2.8 6.3 4.7 8.2 8.1c2 3.3 3 7.1 3 11s-1 7.7-3 11l0 0zM337.1 24.7c35.9 40.6 61.9 89 75.8 141.3l.6 2-114.1 29.6 0-66.1c0-6.6-2.7-12.9-7.3-17.6s-11-7.3-17.6-7.3l-19.4 0 82.1-81.8zM397.6 392l0 0 0 0c-14.7 34.8-35.1 67-60.2 95.2l-82.2-81.9 19.2 0c6.6 0 12.9-2.6 17.6-7.3s7.3-11 7.3-17.6l0-66.2 114.6 29.9c-4.4 16.3-9.8 32.3-16.3 47.9l0 0zm84-52.4l0 0-50.6-13.1-131.7-34.3 0-72.5 119.7-31 4.5-1.2c29.9-7.7 49.2-12.8 58.1-15.1 12 55.1 12 112.1 0 167.2z\"]\n};\nvar faModx = {\n prefix: 'fab',\n iconName: 'modx',\n icon: [448, 512, [], \"f285\", \"M356 241.8l36.7 23.7 0 214.5-133-83.8 96.3-154.4zM440 75l-213.7 0-23 37.8 153.5 96.5 83.2-134.3zM351 217.8l-295.8-185.8 0 214.5 46 29 249.8-57.7zM97 294.2L8 437 221.7 437 346.7 236.5 97 294.2z\"]\n};\nvar faSquareThreads = {\n prefix: 'fab',\n iconName: 'square-threads',\n icon: [448, 512, [], \"e619\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9 10.4 24.3 11.4 63.9-20.2 95.4-24.2 24.1-53.5 35-95.1 35.3l-.2 0c-46.8-.3-82.8-16.1-106.9-46.8-21.5-27.3-32.6-65.4-33-113.1l0-.2c.4-47.7 11.5-85.7 33-113.1 24.2-30.7 60.2-46.5 106.9-46.8l.2 0c46.9 .3 83.3 16 108.2 46.6 12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6-19.4-23.9-48.7-36.1-87-36.4-38 .3-66.8 12.5-85.5 36.2-17.5 22.3-26.6 54.4-26.9 95.5 .3 41.1 9.4 73.3 26.9 95.5 18.7 23.8 47.4 36 85.5 36.2 34.3-.3 56.9-8.4 75.8-27.3 21.5-21.5 21.1-47.9 14.2-64-4-9.4-11.4-17.3-21.3-23.3-2.4 18-7.9 32.2-16.5 43.2-11.4 14.5-27.7 22.4-48.4 23.5-15.7 .9-30.8-2.9-42.6-10.7-13.9-9.2-22-23.2-22.9-39.5-1.7-32.2 23.8-55.3 63.5-57.6 14.1-.8 27.3-.2 39.5 1.9-1.6-9.9-4.9-17.7-9.8-23.4-6.7-7.8-17.1-11.8-30.8-11.9l-.4 0c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1l.6 0c41.8 .3 66.6 26.3 69.1 71.8 1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8-8.8-1.9-18.6-2.9-29-2.9-3.2 0-6.4 .1-9.6 .3-28.6 1.6-38.1 15.5-37.4 27.9 .9 16.7 19 24.5 36.4 23.6l-.1-.1z\"]\n};\nvar faOldRepublic = {\n prefix: 'fab',\n iconName: 'old-republic',\n icon: [512, 512, [], \"f510\", \"M243.8 10.2c7.5-.3 15-.3 22.5-.1 3.6 .1 7.2 .4 10.8 .7 4.9 .3 9.8 1 14.7 1.6 2.9 .4 5.8 1 8.7 1.5 7.9 1.3 15.7 3.3 23.4 5.4 12.2 3.5 24.2 7.9 35.8 13.2 26.6 12.2 50.9 29.2 71.6 49.9 20 20.1 36.7 43.5 48.9 69.2 1.1 2.6 2.4 5.1 3.5 7.7 2.8 6.4 5.4 13 7.6 19.6 4.1 12.3 7.3 25 9.4 37.8 .6 3.1 1 6.3 1.4 9.5 .5 3.8 .9 7.7 1.2 11.6 .8 8.3 .8 16.7 .8 25.1-.1 5-.3 9.9-.7 14.9-.2 3.4-.5 6.8-1 10.1-.4 2.7-.6 5.5-1.1 8.2-.9 5.1-1.7 10.3-2.9 15.4-4.1 18.5-10.3 36.6-18.5 53.6-15.8 32.8-38.8 62.2-67.1 85.1-17.3 14.1-36.4 25.9-56.9 34.9-6.2 2.7-12.5 5.3-18.9 7.4-3.5 1.2-7 2.4-10.6 3.4-6.6 1.9-13.3 3.6-20 5-4.7 .9-9.3 1.7-14 2.5-5.3 .7-10.5 1.4-15.8 1.7-6.7 .7-13.4 .8-20.1 .8-6.8 0-13.6-.1-20.4-.8-3.3-.2-6.6-.5-9.8-1-2.7-.4-5.5-.6-8.2-1.1-4.1-.7-8.2-1.4-12.4-2.2-4.2-.9-8.5-1.9-12.7-3-8.6-2.2-17.1-5-25.4-8.1-10.5-4.1-20.8-8.7-30.6-14.2-2.1-1.2-4.3-2.3-6.4-3.6-11.2-6.6-21.9-14.1-31.9-22.3-34.7-28.4-61.4-66.4-76.4-108.7-3.1-8.7-5.7-17.6-7.8-26.7-1.5-6.2-2.5-12.4-3.6-18.7-.4-2.3-.6-4.7-1-7.1-.6-4-.8-8-1.2-11.9-.8-9.5-.7-19-.5-28.5 .1-3.5 .3-7 .7-10.5 .3-3.2 .5-6.4 .9-9.5 .4-2.8 .7-5.6 1.2-8.4 .7-3.9 1.3-7.9 2.1-11.8 3.4-16.5 8.5-32.7 15.3-48.2 1.2-2.9 2.6-5.7 3.9-8.6 8.1-16.7 17.9-32.6 29.5-47.1 20-25.4 45.1-46.7 73.3-62.5 7.5-4.2 15.2-8 23.1-11.4 15.8-6.9 32.4-12 49.3-15.4 3.5-.7 7-1.2 10.6-1.8 2.6-.5 5.3-.7 7.9-1.1 3.5-.5 7.1-.7 10.6-1 2.5-.2 4.9-.4 7.4-.5zm8.6 24.4c-9.2 .1-18.4 1-27.6 2.2-7.3 1.1-14.5 2.6-21.7 4.3-13.9 3.5-27.5 8.3-40.5 14.4-10.5 5-20.6 10.7-30.2 17.2-4.2 2.9-8.4 5.8-12.3 9-5.1 4-10 8.2-14.7 12.6-2.5 2.2-4.8 4.7-7.2 7.1-28.2 28.8-48.4 65.4-57.5 104.7-2 8.4-3.5 17-4.4 25.6-1.1 8.9-1.4 17.9-1.4 26.8 .1 7.1 .4 14.3 1.2 21.4 .6 7.1 1.9 14.2 3.2 21.2 1.1 4.6 2 9.3 3.3 13.9 6.3 23.4 16.5 45.7 30.1 65.8 8.6 13 18.8 24.9 30 35.8 16.3 15.8 35 29 55.3 39.2 7.3 3.5 14.7 6.9 22.3 9.6 5 1.8 10.1 3.6 15.2 5 11.3 3.2 22.8 5.6 34.4 7.1 2.9 .3 5.8 .6 8.7 .9 13.8 1.1 27.7 1 41.5-.4 4.4-.6 8.9-1 13.3-1.8 3.6-.7 7.3-1.2 10.9-2.1 4.1-1 8.3-1.9 12.4-3.1 26.5-7.3 51.6-19.7 73.6-36.2 15.8-11.8 30-25.8 42.1-41.3 3.3-4 6.2-8.3 9.1-12.6 3.4-5.1 6.6-10.2 9.6-15.5 2.4-4.4 4.7-8.9 7-13.4 5.7-12.1 10.3-24.6 13.8-37.5 2.6-10 4.7-20.2 5.9-30.4 1.8-13.5 1.9-27.1 1.3-40.7-.3-3.9-.7-7.8-1-11.7-2.2-19.1-6.8-37.9-13.8-55.8-6-15.1-13.5-29.6-22.6-43.1-12.7-18.8-28.2-35.7-46-49.8-25-20-54.5-34.5-85.6-42.1-7.8-1.9-15.7-3.3-23.6-4.4-3.9-.6-7.8-.8-11.8-1.2-7.4-.6-14.8-.7-22.2-.6zM147.3 83.5c13.3-8.9 28.1-15.4 43.3-20.2-3.2 1.8-6.4 3.4-9.5 5.3-11.2 6.7-21.5 14.9-30.4 24.5-6.8 7.4-12.8 15.7-17 24.9-3.3 6.9-5.6 14.2-6.9 21.7-.9 4.8-1.3 9.8-1.2 14.8 .1 13.7 4.4 27.1 11.3 38.8 5.9 10.2 13.6 19.3 22.4 27.3 4.9 4.4 10.2 8.1 15 12.6 2.3 2.2 4.5 4.4 6.4 6.9 2.6 3.3 4.9 7 6 11.1 .9 3 .7 6.2 .7 9.3 0 4.1 0 8.2 0 12.3 .1 3.5 0 7.1 .1 10.6 .1 2.4 0 4.8 .1 7.1 .2 5.8 .1 11.5 .1 17.3 .1 2.9 0 5.8 .1 8.7 0 1.6 .1 3.3 0 4.9-.9 .1-1.8 .2-2.7 .2-11 0-21.9-2.6-32-6.9-6-2.7-11.8-5.9-17.1-9.8-5.8-4.2-11.1-9-15.8-14.3-6.5-7.2-12-15.4-16.6-23.9-1.1-2-2.2-4-3.2-6.1-1.2-2.6-2.6-5.1-3.7-7.8-4-9.7-6.6-19.9-8.1-30.3-.5-4.4-1.1-8.9-1.2-13.3-.7-15.7 .8-31.6 4.7-46.8 2.1-8.2 4.8-16.2 8.3-23.8 6.3-14.2 15.3-27.2 26.3-38.2 6.3-6.2 13.1-11.8 20.5-16.7zM322.7 63.4c2.7 .7 5.4 1.7 8.1 2.7 6.4 2.3 12.7 4.8 18.7 8 13.1 6.4 25.3 14.8 35.8 25 10.2 10 18.7 21.6 25.1 34.3 1.3 2.7 2.6 5.5 3.8 8.3 6.3 15.1 10 31.3 11.2 47.6 .4 4.5 .4 9.1 .5 13.6 .1 11.6-1.5 23.3-4.3 34.5-2 7.3-4.3 14.5-7.9 21.2-3.2 6.6-6.7 13.2-10.8 19.2-6.9 10.5-15.6 19.9-25.8 27.2-10.5 7.6-22.6 13-35.4 15.4-3.5 .7-7.1 1.1-10.7 1.2-1.8 .1-3.7 .2-5.6-.1-.3-2.1 0-4.3 0-6.5 0-3.7 .1-7.4 .1-11.2 .2-7 0-14.1 .2-21.1 0-2.4 0-4.8 0-7.1 .2-5.1 0-10.1 .1-15.2 .1-3-.2-6 .5-9 .7-2.5 1.8-4.9 3.1-7.1 4.5-7.3 11.1-13 17.7-18.3 5.4-4.2 10.5-8.8 15-13.8 7.7-8.4 14.2-17.9 18.8-28.3 2.5-5.9 4.5-12.1 5.5-18.5 .9-4.4 1.1-8.8 1-13.3 0-7.8-1.4-15.6-3.6-23.2-1.8-5.7-4.3-11.2-7.1-16.4-3.9-6.9-8.6-13.3-14-19.2-9.9-10.8-21.8-19.9-34.6-27.1-1.8-1-3.8-1.8-5.6-3zM221.9 121.9c1-1.2 2-2.3 3.1-3.4-.6 .9-1.3 1.8-2 2.7-3.1 3.9-5.5 8.3-7 13.1-.9 3.3-1.7 6.6-1.7 10-.1 2.5-.1 5.1 .3 7.6 1.1 7.6 4.3 14.9 8.8 21.1 2 2.7 4.2 5.3 6.9 7.3 1.6 1.3 3.5 2.1 5.3 3 3.1 1.7 6.3 3.2 9.1 5.5 2.7 2.1 4.6 5.3 4.4 8.8 0 73.7 0 147.3 0 221 0 1.4-.1 2.7 0 4 .1 1.5 .8 2.8 1.5 4.1 .9 1.7 1.8 3.3 3.2 4.6 .9 .8 2 1.4 3.2 1.2 1.5-.2 2.7-1.4 3.4-2.6 1-1.5 1.7-3.2 2.3-4.9 .8-2.1 .4-4.4 .5-6.6 .1-4 0-8.1 .1-12.1 0-5.9 0-11.8 .1-17.7 .1-3.6 0-7.2 .1-10.9 .2-4 0-8.1 .1-12.1 0-6 0-12 .1-18 .1-3.6 0-7.2 .1-10.9 .1-3.9 0-7.9 .1-11.8 0-6 0-12 .1-18 .2-3.9 0-7.9 .2-11.8 .3 1.4 .1 2.9 .2 4.4 .2 3.6 .4 7.2 .8 10.8 .3 3.4 .4 6.9 .9 10.3 .4 3.1 .5 6.2 1 9.3 .6 4.1 .9 8.2 1.5 12.3 1.5 9 2.8 18.1 5.1 27 1.1 4.8 2.4 9.6 4 14.3 2.5 7.9 5.7 15.7 10.3 22.6 1.7 2.6 3.9 5 6.1 7.2 .3 .2 .6 .5 .9 .7 .6 .3 1.3-.1 1.7-.6 .7-.9 1.2-1.9 1.7-2.9 4.1-7.8 8.2-15.6 12.3-23.3 .7-1.3 1.4-2.6 2.6-3.6 1.8-1.6 3.8-2.7 6-3.6 2.9-1.2 5.9-2.2 9-2.4 6.6-.6 13.1 .7 19.6 1.8 3.7 .6 7.4 1.2 11.1 1.4 3.7 .1 7.5 .1 11.2-.3 8.6-.9 17-3 24.9-6.2 5.3-2.2 10.5-4.8 15.3-7.9 11.5-7.2 21.5-16.6 30-27 1.2-1.4 2.2-2.9 3.5-4.3-1.2 3.2-2.7 6.4-4.2 9.5-1.3 2.9-2.8 5.6-4.3 8.4-5.2 9.6-11 18.9-17.8 27.5-4 5.2-8.5 10.1-13.3 14.6-6.6 6.1-14.1 11.4-22.4 14.8-8.2 3.4-17.3 4.6-26.1 3.3-3.6-.6-7-1.7-10.4-2.9-2.8-1-5.4-2.4-8-3.7-3.4-1.7-6.6-3.8-9.7-6.1 2.7 3.1 5.7 5.9 8.7 8.6 4.3 3.8 8.7 7.3 13.6 10.2 4 2.5 8.3 4.4 12.8 5.5 1.5 .4 3 .5 4.5 .6-1.3 1.1-2.6 2-4 3-9.6 6.5-20 11.9-30.7 16.4-20.9 8.7-43.2 14-65.7 15.3-4.7 .2-9.3 .4-14 .4-5-.1-10-.1-14.9-.7-11.2-.8-22.3-2.7-33.2-5.4-10.4-2.7-20.6-6.1-30.3-10.6-8.7-3.9-17.1-8.4-25-13.8-1.8-1.3-3.7-2.5-5.4-4.1 6.6-1.2 13-3.4 19-6.5 5.7-2.9 11-6.7 15.6-11.1 2.2-2.2 4.3-4.6 6.2-7.1-3.4 2.1-6.9 4.2-10.6 5.8-4.4 2.2-9.1 3.8-13.8 5-5.7 1.5-11.7 1.7-17.6 1.1-8.1-1-15.9-4.3-22.5-9-4.3-2.9-8.2-6.4-12-10.1-9.9-10.2-18.2-21.8-25.7-33.9-3.9-6.3-7.5-12.7-11.1-19.2-1-2-2.1-4.1-3.2-6.1 2.8 2.9 5.6 6 8.4 8.9 19.2 19.2 37.6 32.3 53.7 35.5 3.1 .7 6.3 .5 9.5 .8 2.8 .3 5.6 .2 8.3 .3 5 .1 10.1 0 15.2-.2 3.6-.2 7.3-.7 10.9-1.1 2.1-.2 4.1-.7 6.1-1.2 3.9-1 8.1-1 11.8 .6 4.8 1.8 8.4 5.6 11.4 9.7 2.2 3 4.1 6.2 5.7 9.6 1.2 2.4 2.5 4.8 3.6 7.3 1 2.2 2.2 4.4 3.4 6.5 .7 1 1.4 2.2 2.6 2.6 1.1-.8 1.7-1.9 2.3-3 2.1-4.2 3.4-8.6 4.9-13 2-6.6 3.8-13.3 5.2-20 2.2-9.3 3.2-18.7 4.5-28.1 .6-4 .8-8 1.3-12 .9-10.6 1.9-21.3 2.2-31.9 .1-1.9 .2-3.7 .3-5.6 0-4.3 .2-8.7 .2-13 0-2.4 0-4.8 0-7.1 0-5.1-.2-10.1-.2-15.2-.2-6.6-.7-13.2-1.3-19.8-.7-5.9-1.5-11.8-3.1-17.5-2-7.7-5.6-15-9.8-21.8-3.2-5.1-6.8-9.9-11.1-14-3.9-3.9-8.6-7.1-13.9-8.4-1.5-.4-3.1-.4-4.6-.6 .1-3 .7-5.9 1.3-8.8 1.6-7.7 3.8-15.3 6.8-22.6 1.5-4 3.4-7.9 5.4-11.7 3.4-6.6 7.6-12.8 12.5-18.5zm31.3 1.7c.4-.1 .7-.1 1.1-.2 .2 1.8 .1 3.6 .1 5.4l0 38.1c0 1.7 .1 3.5-.2 5.2-.4 0-.7 0-1.1 0-.9-3.8-1.7-7.6-2.6-11.3-.4-1.5-.6-3.1-1.1-4.6-1.7-.2-3.4-.2-5.2-.2-5.1 0-10.1 0-15.2 0-1.7 0-3.3 .1-5 0 0-.4-.3-.9 .2-1.2 1.3-.7 2.7-.9 4.1-1.4 3.4-1.1 6.9-2.2 10.3-3.3 1.4-.5 2.9-.7 4.2-1.5 0-.6 0-1.1 0-1.7-1.2-.6-2.5-.9-3.8-1.3-3.1-1-6.3-2-9.4-3-1.8-.6-3.7-1-5.4-1.8 0-.4-.1-.7-.1-1.1 5.1-.2 10.2 .1 15.3-.1 3.4-.1 6.7 .1 10.1-.1 .1-.4 .3-.8 .4-1.2 1.1-4.9 2.3-9.8 3.4-14.7zm6-.2c.4 0 .7 .1 1.1 .2 1 3.8 1.7 7.8 2.7 11.6 .4 1.4 .6 2.9 1 4.3 2.5 .2 5.1 0 7.6 0 5.2 .1 10.3 .1 15.5 .1 .8 0 1.5 0 2.3 .1 0 .4-.1 .7-.1 1.1-1.8 .8-3.8 1.2-5.7 1.9-3.7 1.2-7.5 2.4-11.2 3.6-.6 .2-1.1 .4-1.7 .6-.2 .6-.2 1.1-.1 1.7 .9 .5 1.8 .8 2.8 1.1 4.9 1.5 9.7 3.1 14.6 4.6 .4 .1 .8 .3 1.1 .5 .4 .3 .2 .8 .2 1.2-1.7 .1-3.3 0-5 0-5.2 0-10.3 0-15.5 0-1.6 0-3.2 0-4.8 .2-.5 1.7-.7 3.4-1.2 5.1-.9 3.6-1.5 7.2-2.5 10.8-.4 0-.7 0-1.1 .1-.3-1.7-.2-3.5-.2-5.2l0-38.1c0-1.8-.1-3.6 .1-5.4zm-186 45c1.1-2.2 2.1-4.4 3.4-6.5-1.8 7.6-2.9 15.3-3.6 23-.8 7.7-.8 15.5-.5 23.2 1.1 19.9 5.5 39.8 14.2 57.9 3 6 6.4 11.8 10.5 17.1 6.1 7.5 12.5 14.8 19.8 21.1 4.8 4.1 10 7.8 15.5 10.8 3.3 1.7 6.5 3.4 9.9 4.7 5 2 10.2 3.6 15.4 4.9 3.8 1 7.8 1.4 11.5 2.7 5 1.6 9.5 4.6 13 8.4 4.9 5.2 8.1 11.9 10.2 18.7 1 2.9 1.6 5.9 2.2 8.9 .2 .8 .2 1.5 .2 2.3-6.5 2.8-13.3 5.1-20.3 6.2-4.1 .8-8.3 1-12.5 1.1-10.2 .2-20.5-1.8-30.1-5.1-3.7-1.4-7.5-2.9-11-4.7-8.1-3.8-15.6-8.7-22.5-14.5-2.9-2.6-5.8-5.1-8.4-8-9.2-9.8-16.3-21.4-21.8-33.7-2.4-5.5-4.6-11.2-6.4-17-1.2-3.9-2.4-7.9-3.3-11.9-.7-2.9-1.2-5.9-1.9-8.9-.5-2.1-.7-4.3-1-6.5-.8-5.4-1.3-10.9-1.3-16.4 .1-6.2 .2-12.4 1.1-18.5 .4-2.9 .7-5.7 1.2-8.6 1-5.7 2.1-11.4 3.7-16.9 3.1-11.6 7.5-23 12.7-33.8zm363.7-6.4c1.1 1.7 1.9 3.5 2.8 5.3 2.1 4.5 4.2 8.9 6 13.5 7.6 18.8 12.3 38.8 13 59 0 1.8 .1 3.5 .1 5.3 .1 9.6-1.3 19.1-3.2 28.5-.7 3.6-1.5 7.2-2.6 10.7-4 14.7-10 29-18.4 41.8-8.2 12.6-19 23.5-31.8 31.4-5.7 3.6-11.8 6.6-18 9.2-5.8 2.2-11.7 4-17.8 5.1-6.4 1-12.9 1.5-19.4 1.2-7.9-.5-15.8-2.1-23.2-4.8-1.9-.8-3.9-1.5-5.8-2.3-.2-1.5 .2-3 .5-4.5 1.2-5.7 3-11.4 5.7-16.6 2.4-4.5 5.5-8.7 9.5-11.9 2.4-2.1 5.2-3.6 8.2-4.8 3.6-1.5 7.5-2 11.2-2.8 7.2-1.7 14.4-3.9 21.2-7 10.3-4.7 19.7-11.4 27.6-19.5 1.6-1.6 3.2-3.2 4.7-4.9 3.4-3.8 6.7-7.6 9.8-11.5 7.5-10.1 12.8-21.6 16.7-33.5 1.6-5.3 3.2-10.6 4.2-16.1 .6-2.9 1-5.8 1.5-8.7 .9-6.1 1.6-12.2 1.7-18.4 .1-6.6 .1-13.3-.5-19.9-.7-8-1.9-16-3.7-23.8z\"]\n};\nvar faSuse = {\n prefix: 'fab',\n iconName: 'suse',\n icon: [640, 512, [], \"f7d6\", \"M604.5 210a10.4 10.4 0 1 1 -11.4-17.4 10.4 10.4 0 1 1 11.4 17.4zM621 187.2a38.5 38.5 0 1 1 -75 17.6 38.5 38.5 0 1 1 75-17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4 1 3.1 2.4 7.3 5.5 8.9 .2 .1 .3 .2 .5 .2 5.7 2.1 20.3 1.7 20.3 1.7l26.8 0c2.3 0 22.4 0 21.9-2.3-2.4-10.8-14.9-12.7-24.4-18.3-8.7-5.2-17-11.1-20.8-21.3-2-5.2-.8-17.4 2.6-21.8 2.5-3.2 6.1-5.3 10-6.2 4.3-.9 8.8-.1 13.1 .3 5.3 .5 10.6 1.5 15.9 2.2 10.3 1.3 20.6 1.9 31 1.6 17.1-.5 34.2-3.2 50.4-8.7 11.3-3.8 22.4-8.9 32-16.1 10.9-8.1 8.1-7.4-3-6.2-13.3 1.4-26.6 1.6-39.9 .8-12.4-.7-24.7-2.2-35.9-7.9-8.8-4.6-16.4-9.1-23.4-16.2-1-1.1-1.7-4.2 .2-6.2 1.9-1.9 5.8-.8 7 .2 12.2 10.2 30.5 18.6 49.3 19.5 10.2 .5 20.1 .7 30.4 .3 5.1-.2 12.8-.2 17.9-.3 2.6 0 9.8 .7 11.2-2.1 .4-.8 .4-1.8 .3-2.7-1.5-40.9-4.5-86.9-47.3-106.5-31.9-14.6-79.7-37.2-99.9-46.6-4.7-2.2-10.2 1.3-10.2 6.5 0 13.6 .7 33.3 .7 51.1-9.7-9.9-26-16.1-38.4-21.8-14.1-6.5-28.7-12-43.5-16.6-29.8-9.2-60.7-14.9-91.7-18-35.2-3.5-71-1.8-105.7 5.3-56.9 12.2-113.1 39.7-155.7 79.8-26.1 24.6-46.6 59.7-48 95.2-2 50.3 12.1 77.3 38 105.2 41.3 44.4 130.2 50.6 166.2-2 16.2-23.7 19.7-55.8 8-82-11.8-26.2-38.8-45.1-67.4-46-22.2-.7-45.9 10.6-54.5 31.1-6.5 15.7-2.8 35.1 9 47.3 4.6 4.8 10.9 8.7 17.7 7.1 4-.9 7.4-3.9 8-8 .9-6-4.4-9.9-7.6-14.5-5.8-8.3-4.7-20.9 2.7-27.9 6.2-6 15.3-7.8 23.9-7.7 8 0 16.2 1.4 23.1 5.5 9.7 5.7 16.2 16.2 18.4 27.2 6.7 33-20.2 59.9-56.6 62-18.6 1.1-37.6-3.8-52.1-15.5-36.9-29.8-45.9-90.3-3.8-122.7 40-30.7 90.4-22.8 120.2-6.8 23.8 12.8 41.5 33.6 55 56.7 6.7 11.6 12.5 23.7 17.8 36.1 5.1 11.8 9.9 23.8 20.2 32.5 6.8 5.8 15.2 5.6 24.1 5.6l50.8 0c6.9 0 5.2-4.6 2.2-7.7-6.7-6.9-16.4-8.4-25.4-10.9-20.5-5.6-18.4-32.8-12.7-32.8 18.3 0 18.9 .6 34.9 .3 23.2-.3 30.2-1.7 48.3 5 9.7 3.6 19 13.1 25.1 21.7z\"]\n};\nvar faAppStoreIos = {\n prefix: 'fab',\n iconName: 'app-store-ios',\n icon: [448, 512, [], \"f370\", \"M400 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9L84 330.6c-11 0-20-9-20-20s9-20 20-20l51 0 65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6 62.1 0c20.2 0 31.5 23.7 22.7 40zm98.1 0l-29 0 19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102l52 0c11 0 20 9 20 20 0 11.1-9 20-20 20z\"]\n};\nvar faUltralyticsYolo = {\n prefix: 'fab',\n iconName: 'ultralytics-yolo',\n icon: [512, 512, [], \"e86f\", \"M383.5 10.8c61.8-.2 112.3 50.6 112.3 112.9-.2 2.7 0 0-.1 3.3l.3 .3c-1.5 89.9-53 168.4-127.4 208.5l0 52.8c0 62.6-51.1 113.5-113.7 112.9-62-.6-111.4-52.2-111.4-114.3l0-51.2c-40.7-21.9-74.5-55.2-97-95.6 23.2 16.5 51.7 26 82 25.9 78.6-.2 142.2-64 142.3-142.5 .1-62.3 50.5-112.7 112.9-112.9zm-255 225.8a112.9 112.9 0 1 1 0-225.8 112.9 112.9 0 1 1 0 225.8z\"]\n};\nvar faSquareDribbble = {\n prefix: 'fab',\n iconName: 'square-dribbble',\n icon: [448, 512, [\"dribbble-square\"], \"f397\", \"M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7 6.1 .1 62.4 .3 126.4-16.7-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4-33.6-29.8-79.3-41.1-122.6-30.6zM277.4 382c-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6 40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252l0 4.2c0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8-3.4-7.8-7.2-15.5-11.1-23.2l-.1 0zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8 17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9 4.8 9.8 8.3 17.8 12 26.8zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM224 96a160 160 0 1 1 0 320 160 160 0 1 1 0-320z\"]\n};\nvar faDribbbleSquare = faSquareDribbble;\nvar faUikit = {\n prefix: 'fab',\n iconName: 'uikit',\n icon: [448, 512, [], \"f403\", \"M443.9 128l0 256-225.9 128-218-128 0-214.3 87.6 45.1 0 117 133.5 75.5 135.8-75.5 0-151-101.1-57.6 87.6-53.1 100.5 57.9zM308.6 49.1l-84.8-49.1-88.6 54.8 86 47.3 87.4-53z\"]\n};\nvar faSuperpowers = {\n prefix: 'fab',\n iconName: 'superpowers',\n icon: [448, 512, [], \"f2dd\", \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zM368.3 264.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"]\n};\nvar faYoutube = {\n prefix: 'fab',\n iconName: 'youtube',\n icon: [576, 512, [61802], \"f167\", \"M549.7 124.1C543.5 100.4 524.9 81.8 501.4 75.5 458.9 64 288.1 64 288.1 64S117.3 64 74.7 75.5C51.2 81.8 32.7 100.4 26.4 124.1 15 167 15 256.4 15 256.4s0 89.4 11.4 132.3c6.3 23.6 24.8 41.5 48.3 47.8 42.6 11.5 213.4 11.5 213.4 11.5s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232.2 337.6l0-162.4 142.7 81.2-142.7 81.2z\"]\n};\nvar faEmber = {\n prefix: 'fab',\n iconName: 'ember',\n icon: [640, 512, [], \"f423\", \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6 .5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7 .8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5 .3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7 .3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9l1.6 0s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2 1.9 0s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zM334.7 136.1s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"]\n};\nvar faBootstrap = {\n prefix: 'fab',\n iconName: 'bootstrap',\n icon: [576, 512, [], \"f836\", \"M333.5 201.4c0-22.1-15.6-34.3-43-34.3l-50.4 0 0 71.2 42.5 0c32.8-.1 50.9-13.3 50.9-36.9zM517 188.6c-9.5-30.9-10.9-68.8-9.8-98.1 1.1-30.5-22.7-58.5-54.7-58.5L123.7 32c-32.1 0-55.8 28.1-54.7 58.5 1 29.3-.3 67.2-9.8 98.1-9.6 31-25.7 50.6-52.2 53.1l0 28.5c26.4 2.5 42.6 22.1 52.2 53.1 9.5 30.9 10.9 68.8 9.8 98.1-1.1 30.5 22.7 58.5 54.7 58.5l328.7 0c32.1 0 55.8-28.1 54.7-58.5-1-29.3 .3-67.2 9.8-98.1 9.6-31 25.7-50.6 52.1-53.1l0-28.5c-26.3-2.5-42.5-22.1-52-53.1zM300.2 375.1l-97.9 0 0-238.3 97.4 0c43.3 0 71.7 23.4 71.7 59.4 0 25.3-19.1 47.9-43.5 51.8l0 1.3c33.2 3.6 55.5 26.6 55.5 58.3 0 42.1-31.3 67.5-83.2 67.5zm-10-108.7l-50.1 0 0 78.4 52.3 0c34.2 0 52.3-13.7 52.3-39.5 0-25.7-18.6-38.9-54.5-38.9z\"]\n};\nvar faItunes = {\n prefix: 'fab',\n iconName: 'itunes',\n icon: [448, 512, [], \"f3b4\", \"M223.6 80.3a171.3 171.3 0 1 0 .2 342.5 171.3 171.3 0 1 0 -.2-342.5zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1 .5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7 .9-127 2.6-133.7 .4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6 .4 161.4-1 167.6zM345.2 32L102.8 32C45.9 32 0 77.9 0 134.8L0 377.2C0 434.1 45.9 480 102.8 480l242.4 0c57 0 102.8-45.9 102.8-102.8l0-242.4C448 77.9 402.1 32 345.2 32zM223.6 59a192.5 192.5 0 1 1 0 385 192.5 192.5 0 1 1 0-385z\"]\n};\nvar faSquareXing = {\n prefix: 'fab',\n iconName: 'square-xing',\n icon: [448, 512, [\"xing-square\"], \"f169\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1l46.6 0c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1l-46.6 0zm163.5-33.4l0 .2 65.5 119c2.8 5.1 .1 10.1-6 10.1l-46.6 0c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6 11.7-20.7 25.1-44.3 40.1-70.8 3.3-5.8 7.4-8.7 12.5-8.7l46.9 0c5.7-.1 8.8 4.7 6 10L257.3 286.8z\"]\n};\nvar faXingSquare = faSquareXing;\nvar faCss3Alt = {\n prefix: 'fab',\n iconName: 'css3-alt',\n icon: [384, 512, [], \"f38b\", \"M0 32L34.9 427.8 192 480 349.1 427.8 384 32 0 32zm313.1 80l-4.8 47.3-115.3 49.3-.3 .1 111.5 0-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9 48.9 0 3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5 0-.1-.2 .1-3.6-46.3 112.1-46.7 6.5-2.7-122.9 0-5.8-47.3 242.2 0z\"]\n};\nvar faSquarespace = {\n prefix: 'fab',\n iconName: 'squarespace',\n icon: [512, 512, [], \"f5be\", \"M186.1 343.3c-9.7 9.7-9.7 25.3 0 34.9s25.3 9.6 34.9 0L378.3 221.1c19.3-19.3 50.6-19.3 69.9 0s19.3 50.6 0 69.9L294 445.1c19.3 19.3 50.5 19.3 69.8 0l0 0 119.3-119.2c38.6-38.6 38.6-101.1 0-139.7-38.6-38.6-101.2-38.6-139.7 0L186.1 343.3zM430.7 238.5c-9.7-9.7-25.3-9.7-34.9 0L238.5 395.7c-19.3 19.3-50.5 19.3-69.8 0l0 0c-9.6-9.6-25.3-9.7-34.9 0l0 0c-9.7 9.6-9.7 25.3 0 34.9l0 0c38.6 38.6 101.1 38.6 139.7 0L430.7 273.5c9.6-9.7 9.6-25.3 0-34.9zm-262 87.3L325.9 168.7c9.6-9.6 9.6-25.3 0-34.9-9.6-9.6-25.3-9.6-34.9 0L133.7 290.9c-19.3 19.3-50.6 19.3-69.9 0l0 0c-19.3-19.3-19.3-50.5 0-69.8l0 0 154.2-154.2c-19.3-19.3-50.5-19.3-69.8 0l0 0-119.2 119.3c-38.6 38.6-38.6 101.1 0 139.7 38.6 38.6 101.1 38.6 139.7 0zM81.3 273.5c9.6 9.6 25.3 9.6 34.9 0L273.5 116.3c19.3-19.3 50.6-19.3 69.8 0l0 0c9.7 9.6 25.3 9.6 34.9 0s9.6-25.3 0-34.9c-38.6-38.6-101.1-38.6-139.7 0L81.3 238.5c-9.6 9.6-9.6 25.3 0 34.9l0 0z\"]\n};\nvar faTrello = {\n prefix: 'fab',\n iconName: 'trello',\n icon: [448, 512, [], \"f181\", \"M392.3 32L56.1 32c-31 0-56.1 25.1-56.1 56-.1 0 0-4 0 336 0 30.9 25.1 56 56 56l336.2 0c30.8-.2 55.7-25.2 55.7-56l0-336c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6l-82.7 0c-14.8 .1-26.9-11.8-27-26.6l0-254.2c0-14.8 12-26.9 26.9-26.9l82.9 0c14.8 0 26.9 12 26.9 26.9l0 254.2-.1 0zm193.1-112c0 14.8-12 26.9-26.9 26.9l-81 0c-14.8 0-26.9-12-26.9-26.9l0-142.1c0-14.8 12-26.9 26.8-26.9l81.1 0c14.8 0 26.9 12 26.9 26.9l0 142.1z\"]\n};\nvar faViadeo = {\n prefix: 'fab',\n iconName: 'viadeo',\n icon: [448, 512, [], \"f2a9\", \"M276.4 150.5l0 .7c-17.9-52.6-42.6-103.4-70.8-151.2 43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280-65.7-11.4-111.3-68.6-111.3-137.4 0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.3 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"]\n};\nvar faSearchengin = {\n prefix: 'fab',\n iconName: 'searchengin',\n icon: [448, 512, [], \"f3eb\", \"M214.6 130.3l-67.2 28.2 0-115.3-54.7 190.3 54.7-24.2 0 130.3 67.2-209.3zM131.4 33.6l-1.3 4.7-15.2 52.9C74.6 106.7 46 145.8 46 191.5 46 243.8 80.3 287.4 129.4 297l0 53.6C51.5 340.1-6 272.4-6 191.6-6 111.1 53.8 44.4 131.4 33.6zM442.8 480.8c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1l0-52.1c83.2 5.1 148.8 74.5 148.8 159.3 0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"]\n};\nvar faUnrealEngine = {\n prefix: 'fab',\n iconName: 'unreal-engine',\n icon: [512, 512, [], \"e85c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm65.5-113.7l-25.1-28.3-42.4 42.6c-24.1-.3-47.9-6.2-69.3-17.2s-40.1-26.9-54.5-46.3c4.5 1.4 9.2 2.3 13.9 2.6 6.9 .1 14.5-2.4 14.5-14.1l0-115.1c.1-3-.5-5.9-1.7-8.6s-3.1-5-5.4-6.9-5-3.1-7.9-3.7-5.9-.5-8.8 .2c-19.6 4.5-35.3 53.5-35.3 53.5-.2-22.6 4.5-45 13.8-65.6s23-39 40.1-53.8c22.5-19.5 50.1-32.2 79.6-36.7-21.4 12.2-33.5 32.1-33.5 48.9 0 26.9 16.2 23.6 21 19.7l0 155.3c.8 1.9 1.9 3.8 3.2 5.5 2.1 3 5 5.4 8.2 7s6.9 2.5 10.5 2.5c16.2 0 37.3-18.5 37.3-18.5l0-125.7c0-12.8-9.6-28.2-19.3-33.5 0 0 17.9-3.2 31.7 7.4 2.6-3.2 5.3-6.2 8.2-9.1 32.2-31.6 62.5-40.6 87.7-45.1 0 0-45.9 36.1-45.9 84.5 0 36 .9 123.8 .9 123.8 17 16.4 42.4-7.3 65.2-30.8-4.4 21.3-24 75.9-86.6 105.4z\"]\n};\nvar faPaypal = {\n prefix: 'fab',\n iconName: 'paypal',\n icon: [384, 512, [], \"f1ed\", \"M111.9 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5l-74.6 0c-7.6 0-13.1-6.6-12.1-13.9L59.3 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4 .7-69.5-7-75.3 24.2zM357.6 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9l63.5 0c8.6 0 15.7-6.3 17.4-14.9 .7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"]\n};\nvar faSquareBluesky = {\n prefix: 'fab',\n iconName: 'square-bluesky',\n icon: [448, 512, [], \"e6a3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 247.4c14.5-30 54-85.8 90.7-113.3 26.5-19.9 69.3-35.2 69.3 13.7 0 9.8-5.6 82.1-8.9 93.8-11.4 40.8-53 51.2-90 44.9 64.7 11 81.2 47.5 45.6 84-67.5 69.3-97-17.4-104.6-39.6l-.3-.9c-.9-2.6-1.4-4.1-1.8-4.1s-.9 1.5-1.8 4.1c-.1 .3-.2 .6-.3 .9-7.6 22.2-37.1 108.8-104.6 39.6-35.5-36.5-19.1-73 45.6-84-37 6.3-78.6-4.1-90-44.9-3.3-11.7-8.9-84-8.9-93.8 0-48.9 42.9-33.5 69.3-13.7 36.7 27.5 76.2 83.4 90.7 113.3z\"]\n};\nvar faDAndDBeyond = {\n prefix: 'fab',\n iconName: 'd-and-d-beyond',\n icon: [640, 512, [], \"f6ca\", \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9 .2-5.8 1.6-7.5 .6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9 .6-.3 1.3 0 .6 1.9-.2 .6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3 .1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9 .9 7.5 .2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1 .6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6 .7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4 .2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5 .5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2 0 77.2-7.4 8.2c10.4 .8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6l0-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6 .5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9 .5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8 .5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6 .3 3 .6 4.3 1.1-2.1 .8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2 .8 .2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8 .6-2.6-.2s.3-4.3 .3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3 .6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7 .2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7 .6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8 .8-1.4 1.8-2.1 2.6l0 15.7c3.5 2.6 7.1-2.9 3-7.2 1.5 .3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9 .3 5.6 1.1l0-18.4c-1.1 .5-2.2 1-2.7 1.4l-.7 .7zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25l-56.1 0 8.3 8.6 0 29.5-11.3 0 11.4 14.6 0 32.3-8.4 8.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zM38.6 278.4c20 0 29.6-.8 29.6 9.1l0 3c0 12.1-19 8.8-29.6 8.8l0-20.9zm0 59.2l0-22.6c12.2 0 32.7-2.3 32.7 8.8l0 4.5 .2 0c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1 .2 0-.2 14.1-21.2-37.2 0 0-14.9 52.4 0-14.1-21 0-.2-73.5 .2 7.4 8.2 0 77.1-7.4 8.2 81.2 0 14.1-21.2-60.1 .2 0-15.4zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3 .3-99.3zm-.3 77.5c-37.4 0-36.9-55.3 .2-55.3 36.8 .1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2-41.7 0 6.1 7.2-20.5 37.2-.3 0-21-37.2 6.4-7.2-44.9 0 44.1 65.8 .2 19.4-7.7 8.2 42.6 0-7.2-8.2-.2-19zM234.5 176.1c1.6 1.3 2.9 2.4 2.9 6.6l0 38.8c0 4.2-.8 5.3-2.7 6.4-.1 .1-7.5 4.5-7.9 4.6l35.1 0c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5 .8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6 .3-39.9-4 .1 .8 .5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3l0-34.6zm228.9 79.6l7 8.3 0 42.5-.3 0c-5.4-14.4-42.3-41.5-45.2-50.9l-31.6 0 7.4 8.5 0 76.9-7.2 8.3 39 0-7.4-8.2 0-47.4 .3 0c3.7 10.6 44.5 42.9 48.5 55.6l21.3 0 0-85.2 7.4-8.3-39.2-.1zM378.2 165.1c-32.2 0-32.8 .2-39.9-4 .1 .7 .5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6 .3-4 1.1-6.1 2.9 .1 0 2.1-1.1 7.5-.3l0-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3l.3 0c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"]\n};\nvar faMicrosoft = {\n prefix: 'fab',\n iconName: 'microsoft',\n icon: [448, 512, [], \"f3ca\", \"M0 32l214.6 0 0 214.6-214.6 0 0-214.6zm233.4 0l214.6 0 0 214.6-214.6 0 0-214.6zM0 265.4l214.6 0 0 214.6-214.6 0 0-214.6zm233.4 0l214.6 0 0 214.6-214.6 0 0-214.6z\"]\n};\nvar faFly = {\n prefix: 'fab',\n iconName: 'fly',\n icon: [320, 512, [], \"f417\", \"M165.9 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9 .3 6.7 2.8zM300 67.3c-16.3-25.7-38.6-40.6-63.3-52.1-25.5-10.7-54.6-15.4-76.6-15.2-44.1 0-71.2 13.2-81.1 17.3-53.6 27.9-84.4 69.9-82.9 141.3 7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3 .1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM154.9 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7l0 325.7zM296.8 180c-16.4 56.8-77.3 128-118.9 170.3 27.8-51.9 65.2-133.3 67.2-191.9 1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"]\n};\nvar faCcStripe = {\n prefix: 'fab',\n iconName: 'cc-stripe',\n icon: [576, 512, [], \"f1f5\", \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7l36.7 0c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1l0-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5l0 33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zM191 224.5l-27 0 0 50.5c0 20.9 22.5 14.4 27 12.6l0 28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4 0 30.8 26.9 0 0 30.3zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4l0 84.4-35.5 0 0-124.5 30.7 0 2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5l.1 0 0 32.7zm44.1 91.8l-35.7 0 0-124.5 35.7 0 0 124.5zm0-142.9l-35.7 7.6 0-28.9 35.7-7.6 0 28.9zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5 0-165.8 31.3 0 1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5l-69.5 0c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9l0 28.6c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"]\n};\nvar faWordpressSimple = {\n prefix: 'fab',\n iconName: 'wordpress-simple',\n icon: [512, 512, [], \"f411\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM33 256c0-32.3 6.9-63 19.3-90.7L158.7 456.7C84.3 420.5 33 344.2 33 256zM256 479c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2-48.8 146.3-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3 39.9-60.5 108.4-100.5 186.3-100.5 58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"]\n};\nvar faSellsy = {\n prefix: 'fab',\n iconName: 'sellsy',\n icon: [640, 512, [], \"f213\", \"M540 237.3c3.1-12.3 4.3-24.8 4.3-37.4 0-92.5-75.4-167.9-167.9-167.9-77.2 0-144.6 53-163 127.8-15.3-13.2-34.9-20.5-55.2-20.5-46.3 0-84 37.7-84 84 0 7.4 .9 15 3.1 22.4-42.9 20.2-70.8 63.7-70.8 111.2 0 68 55.5 123.2 123.2 123.2l381.2 0c67.7 0 123.2-55.2 123.2-123.2 0-56.4-38.9-106-94.1-119.5zM200.2 401.6c0 8.3-7 15.3-15.3 15.3l-30.9 0c-8.3 0-15.3-7-15.3-15.3l0-110.9c0-8.3 7-15.3 15.3-15.3l30.9 0c8.3 0 15.3 7 15.3 15.3l0 110.9zm89.5 0c0 8.3-7 15.3-15.3 15.3l-30.9 0c-8.3 0-15.3-7-15.3-15.3l0-131.5c0-8.3 7-15.3 15.3-15.3l30.9 0c8.3 0 15.3 7 15.3 15.3l0 131.5zm89.5 0c0 8.3-7 15.3-15.3 15.3l-31 0c-8.3 0-15.3-7-15.3-15.3l0-162.7c0-8.3 7-15.3 15.3-15.3l31 0c8.3 0 15.3 7 15.3 15.3l0 162.7zm87 0c0 8.3-7 15.3-15.3 15.3l-28.5 0c-8.3 0-15.3-7-15.3-15.3l0-224.6c0-8.6 7-15.6 15.3-15.6l28.5 0c8.3 0 15.3 7 15.3 15.6l0 224.6z\"]\n};\nvar faDashcube = {\n prefix: 'fab',\n iconName: 'dashcube',\n icon: [448, 512, [], \"f210\", \"M326.9 104l-216.2 0c-51.1 0-91.2 43.3-91.2 93.5l0 229.5c0 50.5 40.1 85 91.2 85l227.2 0c51.1 0 91.2-34.5 91.2-85l0-427-102.2 104zM154.2 416.5c-17.7 0-32.4-15.1-32.4-32.8l0-142.9c0-17.7 14.7-32.5 32.4-32.5l140.7 0c17.7 0 32 14.8 32 32.5l0 123.5 51.1 52.3-223.8 0 0-.1z\"]\n};\nvar faGitter = {\n prefix: 'fab',\n iconName: 'gitter',\n icon: [384, 512, [], \"f426\", \"M66.4 322.5l-50.4 0 0-322.5 50.4 0 0 322.5zM166.9 76.1l-50.4 0 0 435.9 50.4 0 0-435.9zm100.6 0l-50.4 0 0 435.9 50.4 0 0-435.9zM368 76l-50.4 0 0 247 50.4 0 0-247z\"]\n};\nvar faWolfPackBattalion = {\n prefix: 'fab',\n iconName: 'wolf-pack-battalion',\n icon: [448, 512, [], \"f514\", \"M236.2 471.5l10.6 15.8 5.3-12.3 5.3 7 0 29.9c21.1-7.9 21.1-66.9 25.5-97.2 4.6-31.9-.9-92.8 81.4-149.1-8.9-23.6-12-49.4-2.6-80 27.9 3.4 53.9 10.6 63.3 54.1l-30.3 8.4c11.1 23 17 46.8 13.2 72.1l-27.3-7-6.2 33.4-18.5-7-8.8 33.4-19.4-7 26.4 21.1 8.8-28.2 24.6 5.2 7-35.6 26.4 14.5c.2-20 7-58.1-8.8-84.5l26.4 5.3c4-22.1-2.4-39.2-7.9-56.7l22.4 9.7c-.4-25.1-29.9-56.8-61.6-58.5-20.2-1.1-56.7-25.2-54.1-51.9 2-19.9 17.4-42.6 43.1-49.7-44 36.5-9.7 67.3 5.3 73.5 4.4-11.4 17.5-69.1 0-130.2-40.4 22.9-89.7 65.1-93.2 147.8l-58 38.7-3.5 93.2 107.3-59.8 7 7-17.6 3.5-44 38.7-15.8-5.3-28.1 49.3-3.5 119.6 21.1 15.8-32.5 15.8-32.6-15.8 21.1-15.8-3.5-119.6-28.2-49.3-15.8 5.3-44-38.7-17.6-3.5 7-7 107.3 59.8-3.5-93.3-58.1-38.7c-3.5-82.8-52.7-125-93.2-147.9-17.5 61.1-4.4 118.8 0 130.2 15-6.2 49.3-37 5.3-73.5 25.7 7.1 41.1 29.8 43.1 49.7 2.6 26.7-33.9 50.8-54.1 51.9-31.7 1.7-61.2 33.4-61.6 58.5l22.4-9.7C13.4 224.7 7 241.8 11 263.9l26.4-5.3c-15.8 26.4-9.1 64.4-8.8 84.4l26.4-14.5 7 35.6 24.6-5.3 8.8 28.2 26.4-21.1-19.4 7-8.8-33.4-18.5 7-6.2-33.4-27.3 7C38 294.8 43.8 271 55 248l-30.3-8.4c9.4-43.5 35.5-50.8 63.3-54.1 9.4 30.6 6.2 56.5-2.6 80.1 82.3 56.3 76.8 117.2 81.4 149.1 4.4 30.3 4.4 89.3 25.5 97.2l0-29.8 5.3-7 5.3 12.3 10.6-15.8 11.4 21.1 11.4-21.1 0 0zm79.2-95L299.5 366c7.5-4.4 13.8-8.4 19.4-12.3-.6 7.2-.3 13.8-3.5 22.8l0 0zm28.2-49.3c-.4 10.9-.9 21.7-1.8 31.7-7.8-1.9-15.6-3.8-21.1-7 8.2-7.9 15.6-16.3 22.9-24.7l0 0zm24.6 5.3c0-13.4-2.1-24.2-5.3-33.4-5.5 9.5-11.7 18.6-18.5 27.3l23.8 6.2zm3.5-80.9c19.4 12.8 27.8 33.7 29.9 56.3-12.3-4.5-24.6-9.3-37-10.6 5.1-12 6.6-28.1 7-45.7l0 0zm-1.8-45.7c.8 14.3 1.8 28.8 1.8 42.2 19.2-8.1 29.8-9.7 44-14.1-10.6-19-27.2-25.5-45.8-28.2l0 0zM134.2 376.5L150 366c-7.5-4.4-13.8-8.4-19.4-12.3 .6 7.3 .3 13.9 3.5 22.9l0 0zM106 327.3c.4 10.9 .9 21.7 1.8 31.7 7.8-1.9 15.6-3.8 21.1-7-8.2-7.9-15.6-16.3-22.9-24.7zm-24.6 5.3c0-13.4 2-24.2 5.3-33.4 5.5 9.5 11.7 18.6 18.5 27.3l-23.8 6.2zm-3.5-80.9c-19.4 12.8-27.8 33.7-29.9 56.3 12.3-4.5 24.6-9.3 37-10.6-5-12-6.6-28.1-7-45.7l-.1 0zm1.8-45.7c-.8 14.3-1.8 28.8-1.8 42.2-19.2-8.1-29.8-9.7-44-14.1 10.6-19 27.2-25.5 45.8-28.1z\"]\n};\nvar faLastfm = {\n prefix: 'fab',\n iconName: 'lastfm',\n icon: [512, 512, [], \"f202\", \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163-86.1 0-131.8 54.5-131.8 147.2 0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"]\n};\nvar faShopware = {\n prefix: 'fab',\n iconName: 'shopware',\n icon: [512, 512, [], \"f5b5\", \"M403.5 455.4c-42.6 31.7-94.4 48.7-147.5 48.6-137.2 0-248-111-248-248 0-137.2 111-248 248-248 61.2-.1 120.2 22.6 165.7 63.5 .6 .5 .9 1.2 1.1 1.9s.1 1.5-.3 2.2-.8 1.3-1.5 1.6-1.4 .5-2.2 .4c-18.8-2.5-37.7-3.7-56.7-3.7-129.4 0-222.4 53.5-222.4 155.4 0 109 92.1 145.9 176.8 178.7 33.6 13 65.4 25.4 87 41.6 .4 .3 .8 .8 1.1 1.3s.4 1 .4 1.6-.1 1.1-.4 1.6-.6 .9-1.1 1.3l-.1 0zM503 233.1c-.1-.9-.5-1.8-1.3-2.4-51.8-43-93.6-60.5-144.5-60.5-84.1 0-80.3 52.2-80.3 53.6 0 42.6 52.1 62 112.3 84.5 31.1 11.6 63.2 23.6 92.7 39.9 .4 .2 .9 .4 1.4 .4s1 0 1.5-.2 .9-.4 1.3-.8 .6-.8 .8-1.2c14.1-36 19.5-74.8 16-113.3z\"]\n};\nvar faBlogger = {\n prefix: 'fab',\n iconName: 'blogger',\n icon: [448, 512, [], \"f37c\", \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1 .1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4 .1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8 .2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9 .7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zM447.2 420.6c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22S0 420.3 0 256.3c0-163.1 0-166.6 1.8-173.7 6.3-24.7 25.9-43.6 51.2-49.2 7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6 .2 115.8 0 164.5-.7 170.5zM361.8 235.4c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5 .4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7 .5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"]\n};\nvar faEdge = {\n prefix: 'fab',\n iconName: 'edge',\n icon: [512, 512, [], \"f282\", \"M120.1 37.4c41-25.2 87.6-38.2 134.9-37.4 168 0 257 123.8 257 219.5-.1 32.7-13 63.9-35.9 87.2-22.9 23.2-54 36.5-86.7 37-75.2 0-91.5-23.1-91.5-32 0-3.8 1.2-6.2 4.8-9.4l1-1.2 .4-1.6c10.5-11.5 15.9-26.2 15.9-41.6 0-78.7-82.2-142.7-184-142.7-37.5-.3-74.5 8.9-107.5 26.9 27-57.5 82.7-97.6 91.3-103.8 .8-.6 .3-.8 .3-.8zm15.6 318.1c-1.4 30 4.6 60 16.4 87.2 13.6 26.4 32.7 51 56.5 69.3-59.5-11.5-111.5-43.9-149.4-89.3-38.1-46.4-59.2-104.3-59.2-164.8 0-51.2 62.4-94.4 136-94.4 36.6-.6 72.4 10.9 101.8 32.7l-3.6 1.2c-51.5 17.6-98.5 90.7-98.5 158.1zM469.8 400l-.7 .1c-11.8 18.8-25.9 35.1-42.2 49.5-30.8 28-68.1 45.5-108.8 49.9-18.6 .3-36.8-3.2-53.8-11.4-25.6-10.3-47.1-30-61.6-53-14.4-23.9-21.1-51.7-19-79.6-.6-20.1 5.4-40.3 15-58.2 13.9 33.1 37.5 61.3 67.6 80.8s65.5 29.5 101.4 28.6c31 .3 62.1-6.7 90.2-20.5l1.9-.9c3.9-2.3 7.7-3.9 11.6 0 4.5 4.9 1.8 9.2-1.2 14-.2 .2-.3 .5-.4 .7z\"]\n};\nvar faIoxhost = {\n prefix: 'fab',\n iconName: 'ioxhost',\n icon: [640, 512, [], \"f208\", \"M616 160l-67.3 0C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256 72 272.4 73.6 288.5 76.7 304L24 304c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24l67.3 0c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48l52.7 0c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104L424 352c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24l-298.2 0c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104L216 160c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24l298.2 0c3.8 15.4 5.8 31.4 5.8 48zM216 232l208 0c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"]\n};\nvar faSchlix = {\n prefix: 'fab',\n iconName: 'schlix',\n icon: [448, 512, [], \"f3ea\", \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1 17.2 28.4-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zM82.4 133.2l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7-24.8 15.2zM28.4 223.1l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268L20.6 257.8 21 296 0 304.8 1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8 27.4-14.4 8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zM152.5 187.9l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"]\n};\nvar faDAndD = {\n prefix: 'fab',\n iconName: 'd-and-d',\n icon: [576, 512, [], \"f38d\", \"M82.9 98.9c-.6-17.2 2-33.8 12.7-48.2 .3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1 .7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5 .6-11.4 12.5-14.1 27.4-10.9 43.6 .2 1.3 .4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6 .1 .5 .1 1.1 .1 1.6 0 .3-.1 .5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zM552.5 222.1c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5 .9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5l-2.5 0c-.6 0-1.2 .2-1.9 .3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3 .3 .3 .7 .6 1 .9 .3-.6 .5-1.2 .9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8 .7-3.5 .9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3 .4-.4 .9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6 .2-.1 .3-.2 .4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3l0-.5c-.5-.4-1.2-.8-1.7-1.4zM317.1 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8 .9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9 .8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7 .3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3 .2-.2 .4-.3 .6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8 .6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1 .1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8 .4 4.7 .8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1 .7-52.3 .3 2.2 .4 4.3 .9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8 .1-50.9-10.6 .7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.8 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6 .2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3 .8-2.4 2.3-4.6 4-6.6 .6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2 .5-1 1.1-2 1.9-3.3 .5 4.2 .6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1 .6 .5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7 .4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6 .5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2 .4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3 .3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5 .8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8 .8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3 .6-4.5 .8-9.2 .1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6 .1-23.3 1.3-.9 .1-1.7 .3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"]\n};\nvar faVuejs = {\n prefix: 'fab',\n iconName: 'vuejs',\n icon: [448, 512, [], \"f41f\", \"M356.9 64.3l-76.9 0-56 88.6-48-88.6-176 0 224 383.7 224-383.7-91.1 0zM55.7 96.3l53.8 0 114.5 198.2 114.4-198.2 53.8 0-168.2 288.2-168.3-288.2z\"]\n};\nvar faMeta = {\n prefix: 'fab',\n iconName: 'meta',\n icon: [640, 512, [], \"e49b\", \"M640 317.9c0 91.3-39.4 148.5-110.3 148.5-62.6 0-95.8-34.6-156.9-136.6l-31.4-52.6c-8.3-12.5-14.5-24.2-21.2-35-20.1 33.8-47.1 83-47.1 83-67 116.6-104.6 141.2-156.9 141.2-72.8 0-116.2-57.3-116.2-145.9 0-143 79.8-278.1 183.9-278.1 50.2 0 93.8 24.7 144.8 89.5 37.1-50.1 78.1-89.5 130.6-89.5 99.1 0 180.7 125.7 180.7 275.5zM287.4 192.2c-42.9-62.1-70.9-80.5-104.4-80.5-61.9 0-113.8 106.1-113.8 210 0 48.5 18.5 75.7 49.6 75.7 30.2 0 49-19 103.2-103.8 0 0 24.7-39.1 65.4-101.4zM531.2 397.4c32.2 0 46.9-27.5 46.9-74.9 0-124.2-54.3-225.4-123.2-225.4-33.2 0-61.1 25.9-94.9 78 9.4 13.8 19.1 29 29.3 45.4l37.5 62.4c58.7 94.1 73.5 114.5 104.4 114.5z\"]\n};\nvar faCreativeCommonsShare = {\n prefix: 'fab',\n iconName: 'creative-commons-share',\n icon: [512, 512, [], \"f4f2\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7l0 182.5c0 7.7-6.1 13.7-13.7 13.7l-135.1 0c-7.7 0-13.7-6-13.7-13.7l0-54-54 0c-7.8 0-13.7-6-13.7-13.7l0-182.5c0-8.2 6.6-12.7 12.4-13.7l136.4 0c7.7 0 13.7 6 13.7 13.7l0 54 54 0zM167.9 300.3l40.7 0 0-101.4c0-7.4 5.8-12.6 12-13.7l55.8 0 0-40.3-108.5 0 0 155.4zm176.2-88.1l-108.5 0 0 155.4 108.5 0 0-155.4z\"]\n};\nvar faStudiovinari = {\n prefix: 'fab',\n iconName: 'studiovinari',\n icon: [512, 512, [], \"f3f8\", \"M480.7 187.7l4.2 28 0 28-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6 20.3 .7 20.3 .7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9 114.9 18.1-101.3-108 252.9 126.6-31.5-38 124.4 74.4-143.3-99 18.7 38.4-49.6-18.1-45.5-84.3 194.6 122-42.9-55.8 108 96.4 12-8.9-21-16.4 4.2-37.8 37.8-10.4 29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"]\n};\nvar faBitbucket = {\n prefix: 'fab',\n iconName: 'bitbucket',\n icon: [512, 512, [61810], \"f171\", \"M22.2 32c-2.1 0-4.2 .4-6.1 1.1s-3.7 1.9-5.2 3.4-2.7 3.2-3.5 5.1-1.3 4-1.3 6.1c0 .9 .1 1.9 .2 2.8L74.1 462.7c.8 5.1 3.4 9.7 7.3 13s8.8 5.2 14 5.2l325.7 0c3.8 .1 7.5-1.3 10.5-3.7s4.9-5.9 5.5-9.7L505 50.7c.7-4.2-.3-8.4-2.8-11.9s-6.2-5.7-10.4-6.4c-.9-.1-1.9-.2-2.8-.2L22.2 32zM308.1 329.8l-104 0-28.1-147 157.3 0-25.2 147z\"]\n};\nvar faVk = {\n prefix: 'fab',\n iconName: 'vk',\n icon: [448, 512, [], \"f189\", \"M31.5 63.5C0 95 0 145.7 0 247L0 265C0 366.3 0 417 31.5 448.5S113.7 480 215 480l17.9 0c101.4 0 152.1 0 183.5-31.5S448 366.3 448 265l0-17.9c0-101.4 0-152.1-31.5-183.5S334.3 32 233 32L215 32C113.7 32 63 32 31.5 63.5zM75.6 168.3l51.1 0c1.7 85.5 39.4 121.7 69.3 129.2l0-129.2 48.2 0 0 73.7c29.5-3.2 60.5-36.8 70.9-73.7l48.2 0c-3.9 19.2-11.8 37.3-23.1 53.3s-25.7 29.5-42.5 39.6c18.7 9.3 35.2 22.4 48.4 38.5s22.9 34.9 28.3 55l-53 0c-4.9-17.5-14.8-33.1-28.6-45s-30.7-19.4-48.7-21.6l0 66.6-5.8 0c-102.1 0-160.3-70-162.8-186.5z\"]\n};\nvar faGithub = {\n prefix: 'fab',\n iconName: 'github',\n icon: [512, 512, [], \"f09b\", \"M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM252.8 8c-138.7 0-244.8 105.3-244.8 244 0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1 100-33.2 167.8-128.1 167.8-239 0-138.7-112.5-244-251.2-244zM105.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"]\n};\nvar faCodiepie = {\n prefix: 'fab',\n iconName: 'codiepie',\n icon: [512, 512, [], \"f284\", \"M442.5 202.9c30.7 0 33.5 53.1-.3 53.1l-10.8 0 0 44.3-26.6 0 0-97.4 37.7 0zM492 352.6C449.9 444.5 370.4 504 268 504 131 504 20 393 20 256S131 8 268 8c97.4 0 172.8 53.7 218.2 138.4L300.2 255.2 492 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6C406.5 73.9 342.5 36.5 268 36.5 146.8 36.5 48.5 134.8 48.5 256S146.8 475.5 268 475.5c78.6 0 146.5-42.1 185.5-110.4z\"]\n};\nvar faPiedPiper = {\n prefix: 'fab',\n iconName: 'pied-piper',\n icon: [448, 512, [], \"f2ae\", \"M440.2 23.2c-26.7 6.8-68.1 28.5-114.6 67.5-30.9-17.5-65.8-26.7-101.4-26.7-114.9 0-208 93.1-208 208s93.1 208 208 208 208-93.1 208-208c.1-54.1-21-106.1-58.7-144.8-6.6 8.5-12.3 17.7-17 27.4 28.9 32.3 44.8 74.1 44.9 117.4 0 97.7-79.4 177.1-177.1 177.1-30.8 0-61-8.1-87.6-23.4 82.9-107.3 150.8-37.8 184.3-226.6 5.8-32.6 28-94.3 126.2-160.2 8.1-5.4 2.4-18.1-7-15.7zM109.3 406.4C89.8 389.8 74.2 369.2 63.5 346s-16.3-48.5-16.3-74c0-97.7 79.4-177.1 177.1-177.1 26.6 0 52.8 6.1 76.6 17.8-66 62.1-126.9 152.9-191.6 293.8z\"]\n};\nvar faRaspberryPi = {\n prefix: 'fab',\n iconName: 'raspberry-pi',\n icon: [448, 512, [], \"f7bb\", \"M392.5 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2 .7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6 .8-11.3-3.6-13.9 1.3-19.4 3.4-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9 .1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6 .1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8-17.3-2-22.7 10-16.5 21.2-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2 20.3 20.6 42.3 28.4 64.3 28.4l1 0c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80 59.8-5.6 78.8 22.8 14.6 64.2-9.9 80zM259.4 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7 .8 14.1 .6 23.9 .8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8 .4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2 .1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7 .9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6 .9 2.7 3.6 4.4 6.7 5.8-15.4 .9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zM225 143.9c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zM102 131.1c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8 .7 8.3 .1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6 .4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3 .4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6 .2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM58.7 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zM123.3 320.5c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM225.5 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9 .5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54s-59.2-23.8-59.4-53.4l0-.6c-.2-29.7 26.2-53.8 58.8-54s59.2 23.8 59.4 53.4l0 .6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"]\n};\nvar faCss3 = {\n prefix: 'fab',\n iconName: 'css3',\n icon: [512, 512, [], \"f13c\", \"M480 32l-64 368-223.3 80-192.7-80 19.6-94.8 82 0-8 40.6 116.4 44.4 134.1-44.4 18.8-97.1-333.4 0 16-82 333.7 0 10.5-52.7-333.4 0 16.3-82 407.4 0z\"]\n};\nvar faHubspot = {\n prefix: 'fab',\n iconName: 'hubspot',\n icon: [448, 512, [], \"f3b2\", \"M235.8 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L171.5 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8s-11.8 17.8-11.8 28.6 4.2 20.9 11.8 28.5 17.8 11.6 28.5 11.6c10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7l0-61.6c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S279.6 47 279.6 73.1c0 19.1 10.7 35.5 28.2 42.9l0 61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8 0-28.8-23.5-52.2-52.4-52.2-28.8 0-52.2 23.4-52.2 52.2 0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6L235.8 211.6zm89.5 25.6a69 69 0 1 1 0 138 69 69 0 1 1 0-138z\"]\n};\nvar faCmplid = {\n prefix: 'fab',\n iconName: 'cmplid',\n icon: [640, 512, [], \"e360\", \"M226.1 388.2c0-.7-.2-1.5-.6-2.1s-1-1.1-1.7-1.4c-.5-.2-1.1-.4-1.6-.4l-149.6 0c-3.1 0-6.2-.8-8.9-2.2s-5.1-3.5-6.9-6.1-2.9-5.5-3.3-8.6 0-6.2 1.1-9.1L81.6 255.7c2-7.2 6.2-13.5 12-18.2s12.9-7.4 20.4-7.8l148.6 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6l10.8-41.1c.4-1 .3-2-.1-2.9s-1.2-1.6-2.1-2c-.4-.2-.9-.3-1.4-.3-.1 0-.1 0-.2 0l-148.5 0c-22.2 1.2-43.4 9.2-60.8 23s-30 32.7-36.2 54.1L3.5 358.8c-3.2 8.7-4.2 18-3 27.1s4.6 17.9 9.9 25.5 12.3 13.8 20.5 18 17.3 6.5 26.5 6.6c1 0 1.9 0 2.9-.1l148.6 0c1.5-.1 2.9-.7 4-1.6s2-2.2 2.4-3.6l10.7-41.1c.2-.5 .3-.9 .3-1.4zm80.5-307c.2-.4 .3-.9 .3-1.4 0-.5-.1-1-.3-1.5s-.5-.9-.8-1.2-.8-.6-1.2-.8-1-.3-1.5-.3l-41.2 0c-1.5 .1-2.9 .6-4 1.6s-2 2.2-2.4 3.6l-21.3 80.9 51.1 0 21.4-80.9zm-126.3 287l51.1 0 32-122.6-51.1 0-32 122.6zM511.9 79.7c0-1-.5-1.9-1.2-2.6s-1.7-1.1-2.6-1.1c-.1 0-.1 0-.2 0l-41 0c-1.5 .1-2.9 .6-4.1 1.5s-2 2.2-2.5 3.6L368.9 430.6c-.2 .4-.3 .9-.3 1.3 0 1 .4 2 1.1 2.7s1.7 1.1 2.7 1.1l41.2 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6L511.5 81.2c.2-.5 .3-1 .3-1.5zM324.6 384.5l-41 0c-1.5 .1-2.9 .7-4 1.6s-2 2.2-2.4 3.6l-10.7 41.1c-.2 .4-.3 .9-.3 1.4 0 .5 .1 1 .3 1.5s.5 .9 .8 1.2 .8 .6 1.2 .8 1 .3 1.5 .3c.1 0 .2 0 .3 0l40.9 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6l10.8-41.1c.2-.6 .3-1.2 .3-1.8s-.3-1.2-.6-1.7-.8-.9-1.3-1.2-1.2-.4-1.8-.4c-.1 0-.2 0-.3 0l0 0zM636 76.1l-41 0c-1.5 .1-2.9 .6-4 1.5s-2 2.2-2.4 3.6L497.1 430.6c-.2 .4-.2 .9-.2 1.3 0 1 .4 2 1.1 2.7s1.7 1.1 2.7 1.1l41.1 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6L639.7 81.2c.2-.5 .3-1 .3-1.5-.1-1-.5-1.9-1.2-2.5s-1.6-1-2.6-1c-.1 0-.1 0-.2 0l0-.1zM371.6 225.2l10.8-41.1c.2-.4 .2-.9 .2-1.4 0-1-.4-2-1.1-2.7s-1.7-1.1-2.7-1.1l-41.3 0c-1.5 .1-2.9 .7-4 1.6s-2 2.2-2.4 3.6l-10.8 41.1c-.2 .5-.3 1-.3 1.5l0 .2c.1 1 .5 1.8 1.2 2.5s1.6 1 2.6 1c.1 0 .2 0 .3 0l41.1 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6z\"]\n};\nvar faDyalog = {\n prefix: 'fab',\n iconName: 'dyalog',\n icon: [448, 512, [], \"f399\", \"M16 32l0 119.2 64 0 0-55.2 107.2 0C300.6 96 368 176.2 368 255.9 368 332 309.4 416 187.2 416l-171.2 0 0 64 171.2 0C347.9 480 432 367.3 432 255.9 432 197.2 409.9 142.5 369.7 101.6 324.9 56 261.7 32 187.2 32L16 32z\"]\n};\nvar faElementor = {\n prefix: 'fab',\n iconName: 'elementor',\n icon: [512, 512, [], \"f430\", \"M.5 256c0 141 113.6 255 254.6 255 142 0 256-114 256-255 0-140-114-253.9-256-253.9-141 0-254.6 113.9-254.6 253.9zM192.1 150l0 213-43 0 0-213 43 0zm42 0l128 0 0 43-128 0 0-43zm128 85l0 43-128 0 0-43 128 0zm-128 85l128 0 0 43-128 0 0-43z\"]\n};\nvar faFirstOrder = {\n prefix: 'fab',\n iconName: 'first-order',\n icon: [448, 512, [], \"f2b0\", \"M13.3 229.2c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4l-.2 0zM224.4 96.6c-7.1 0-14.6 .6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3L149 306.9 98.1 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9l-29.4-61.3 44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9l-22.3 64.3 4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.8 128L443.8 384 224.4 512 5 384 5 128 224.4 0 443.8 128zm-17.1 10.3l-202.3-117.4-202.3 117.4 0 235.1 202.3 117.7 202.3-117.7 0-235.1zM224.4 37.1l187.7 109.4 0 218.9-187.7 109.5-187.7-109.5 0-218.8 187.7-109.5zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"]\n};\nvar faDribbble = {\n prefix: 'fab',\n iconName: 'dribbble',\n icon: [512, 512, [], \"f17d\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM420 122.4c29.5 36 47.4 82 47.8 132-7-1.5-77-15.7-147.5-6.8-5.8-14-11.2-26.4-18.6-41.6 78.3-32 113.8-77.5 118.3-83.5zM396.4 97.9c-3.8 5.4-35.7 48.3-111 76.5-34.7-63.8-73.2-116.2-79-124 67.2-16.2 138 1.3 190.1 47.5zM165.9 64.6c5.6 7.7 43.4 60.1 78.5 122.5-99.1 26.3-186.4 25.9-195.8 25.8 13.7-65.7 58-120.4 117.3-148.3zM44.2 256.3c0-2.2 0-4.3 .1-6.5 9.3 .2 111.9 1.5 217.7-30.1 6.1 11.9 11.9 23.9 17.2 35.9-76.6 21.6-146.2 83.5-180.5 142.3-33.8-37.6-54.5-87.2-54.5-141.6zM126 423.4c22.1-45.2 82.2-103.6 167.6-132.8 29.7 77.3 42 142.1 45.2 160.6-68.1 29-150 21.1-212.8-27.9zm248.4 8.5c-2.2-12.9-13.4-74.9-41.2-151 66.4-10.6 124.7 6.8 131.9 9.1-9.4 58.9-43.3 109.8-90.8 142z\"]\n};\nvar faLinkedin = {\n prefix: 'fab',\n iconName: 'linkedin',\n icon: [448, 512, [], \"f08c\", \"M416 32L31.9 32C14.3 32 0 46.5 0 64.3L0 447.7C0 465.5 14.3 480 31.9 480L416 480c17.6 0 32-14.5 32-32.3l0-383.4C448 46.5 433.6 32 416 32zM135.4 416l-66.4 0 0-213.8 66.5 0 0 213.8-.1 0zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77zM384.3 416l-66.4 0 0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2z\"]\n};\nvar faCcPaypal = {\n prefix: 'fab',\n iconName: 'cc-paypal',\n icon: [576, 512, [], \"f1f4\", \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7l-4.7 0c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0l-4.5 0c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28l-40 0c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4l19 0c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.2 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM253 322.1l63.7-92.6c.5-.5 .5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5l-19.2 0c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4l-18.7 0c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2l19.2 0c1.8-.1 3.5-1.1 4.5-2.6zM412.3 215.4c0-21-16.2-28-34.7-28l-39.7 0c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4l20.5 0c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.3 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM544 190.9c0-2-1.5-3.5-3.2-3.5l-18.5 0c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3 .5c0 1.8 1.5 3.5 3.5 3.5l16.5 0c2.5 0 5-2.9 5.2-5.7l16.2-101.2 0-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5 .1-9.8-6.9-15.5-16.2-15.5z\"]\n};\nvar faDhl = {\n prefix: 'fab',\n iconName: 'dhl',\n icon: [640, 512, [], \"f790\", \"M238 301.2l58.7 0 22.3-30.2-58.7 0-22.3 30.2zM0 282.9l0 6.4 81.8 0 4.7-6.4-86.5 0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1s2.8-5.9-2.8-5.9l-51 0-41.1 55.8 100.1 0c33.1 0 51.5-22.5 57.2-30.3l-68.2 0zm317.5-6.9l39.3-53.4-62.2 0-39.3 53.4 62.2 0zM95.3 271l-95.3 0 0 6.4 90.6 0 4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5l45.6 0s7.3-10 13.5-18.4c8.4-11.4 .7-35-29.2-35l-117.9 0-20.4 27.8 111.4 0c5.6 0 5.5 2.2 2.7 5.9zM0 301.2l73.1 0 4.7-6.4-77.8 0 0 6.4zm323 0l58.7 0 22.3-30.2-58.7 0c-.1 0-22.3 30.2-22.3 30.2zm222 .1l95 0 0-6.4-90.3 0-4.7 6.4zM567.3 271l-4.7 6.4 77.4 0 0-6.4-72.7 0zm-13.5 18.3l86.2 0 0-6.4-81.5 0-4.7 6.4zM389.6 210.7l-22.5 30.6-26.2 0 22.5-30.6-58.7 0-39.3 53.4 143.6 0 39.3-53.4-58.7 0zM423.1 271s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6l94.3 0 22.3-30.3-133.4 0z\"]\n};\nvar faTex = {\n prefix: 'fab',\n iconName: 'tex',\n icon: [640, 512, [], \"e7ff\", \"M620.8 95.4c-30.8 .4-42.1 16.6-47.7 24.5l-.1 .1-55.7 80.5 82.8 121.1c7.5 10.6 11.3 12.5 35.4 12.5l0 9.1c-9.1-.7-28-.7-37.7-.7-12.4 0-30.8 0-42.9 .7l0-9.1c13.2-.8 16.6-7.3 16.6-10.2 0-1.1 0-2.3-3-6.4l-65.5-96.3-60.2 87.9c-1.9 2.7-3.8 5.4-3.8 10.2 0 6.1 3.4 13.6 15 14.7l0 9.1c-9.4-.7-27.1-.7-37.2-.7l-2.8 0-11.7 82.6-195.9 0 0-9.1c26.7 0 30.9 0 30.9-16.9l0-203.2c0-16.9-4.3-16.9-30.9-16.9l0-10.3 19.8 0c-4.8-61.1-10.8-71.7-68-71.8l-20.7 0c-6.8 1.5-6.8 6.1-6.8 14.4l0 205c0 13.6 1.1 17.8 32.4 17.8l10.5 0 0 9.1-.4 0c-17.9-.3-36.7-.7-54.9-.7s-36.9 .3-54.8 .7l-.6 0 0-9.1 10.7 0c31.7 0 32.8-4.1 32.8-17.8l0-205c0-8.7 0-13.2-7.2-14.3l-20.8 0c-58.4 0-63.7 10.9-68.6 73.3l-6.8 0 6.3-83.3 217.5 0 6.1 81.8 164.1 0 9 83.3-6.8 0c-5.3-49.8-12.1-73-70.3-73l-51.5 0c-15 0-15.8 1.9-15.8 14.6l0 93.3 35.5 0c35.5 0 38.9-12.8 38.9-44l6 0 0 97.9-6 0c0-31.8-3.4-44.8-38.9-44.8l-35.5 0 0 105.2c0 13 .7 14.8 15.8 14.8l52.2 0c61.1 0 69.9-25.8 77.4-73.6-7.7 0-16.3 .2-22.2 .7l0-9.1c7.2 0 31.7-.4 47.8-23.8l65.5-95.7-72.7-106.7c-8.3-11.7-15.1-12.5-35.8-12.5l0-9.1c9.1 .7 27.9 .7 37.7 .7 12.4 0 30.8 0 42.9-.7l0 9.1c-12.5 .4-16.6 6.8-16.6 10.2 0 1.1 .4 2.3 3 6.4l55.7 81.6 49.7-72.1c2.7-3.7 4.5-6.8 4.5-11.3 0-6.1-3-13.6-15-14.8l0-9.1c9.4 .7 24.8 .7 37.2 .7 9 0 23.3 0 32-.7l0 9.1z\"]\n};\nvar faClaude = {\n prefix: 'fab',\n iconName: 'claude',\n icon: [512, 512, [], \"e861\", \"M100.4 340.5l100.7-56.5 1.7-4.9-1.7-2.7-4.9 0-16.8-1-57.5-1.6-49.9-2.1-48.3-2.6-12.2-2.6-11.4-15 1.2-7.5 10.2-6.9 14.7 1.3c18.9 1.3 45.9 3.1 81 5.6l35.2 2.1 52.2 5.4 8.3 0 1.2-3.4-2.8-2.1-2.2-2.1-50.3-34.1-54.4-36-28.5-20.7-15.4-10.5-7.8-9.8-3.4-21.5 14-15.4 18.8 1.3 4.8 1.3 19 14.7 40.7 31.5 53.1 39.1 7.8 6.5 3.1-2.2 .4-1.6-3.5-5.8-28.9-52.2-30.8-53.1-13.7-22-3.6-13.2c-1.3-5.4-2.2-10-2.2-15.5l15.9-21.6 8.8-2.8 21.2 2.8 8.9 7.8 13.2 30.2 21.4 47.5 33.2 64.6 9.7 19.2 5.2 17.8 1.9 5.4 3.4 0 0-3.1 2.7-36.4 5-44.7 4.9-57.5 1.7-16.2 8-19.4 15.9-10.5 12.4 5.9 10.2 14.7-1.4 9.5-6.1 39.5-11.9 61.9-7.8 41.5 4.5 0 5.2-5.2 21-27.8 35.2-44.1 15.5-17.5 18.1-19.3 11.6-9.2 22 0 16.2 24.1-7.3 24.9-22.7 28.7-18.8 24.4-27 36.3-16.8 29 1.6 2.3 4-.4 60.9-13 32.9-5.9 39.3-6.7 17.8 8.3 1.9 8.4-7 17.2-42 10.4-49.2 9.8-73.3 17.3-.9 .7 1 1.3 33 3.1 14.1 .8 34.6 0 64.4 4.8 16.8 11.1 10.1 13.6-1.7 10.4-25.9 13.2c-15.5-3.7-54.4-12.9-116.6-27.7l-28-7-3.9 0 0 2.3 23.3 22.8 42.7 38.6 53.5 49.8 2.7 12.3-6.9 9.7-7.3-1-47-35.4-18.1-15.9-41.1-34.6-2.7 0 0 3.6 9.5 13.9 50 75.2 2.6 23-3.6 7.5-13 4.5-14.2-2.6-29.3-41.1-30.2-46.3-24.4-41.5-3 1.7-14.4 154.8-6.7 7.9-15.5 5.9-13-9.8-6.9-15.9 6.9-31.5 8.3-41.1 6.7-32.7 6.1-40.6 3.6-13.5-.2-.9-3 .4-30.6 42-46.5 62.9-36.8 39.4-8.8 3.5-15.3-7.9 1.4-14.1 8.5-12.6 50.9-64.8 30.7-40.2 19.8-23.2-.1-3.4-1.2 0-135.3 87.8-24.1 3.1-10.4-9.7 1.3-15.9 4.9-5.2 40.7-28-.1 .1 0 .1z\"]\n};\nvar faShopify = {\n prefix: 'fab',\n iconName: 'shopify',\n icon: [448, 512, [], \"e057\", \"M388.5 104.1c-.2-1.1-.7-2.1-1.5-2.8s-1.8-1.2-2.9-1.2c-2 0-37.2-.8-37.2-.8s-21.6-20.8-29.6-28.8l0 432.7 125.7-31.2s-54-365.5-54.4-367.9zM288.9 70.5c-1.9-6.1-4.3-11.9-7.2-17.6-10.4-20-26-30.9-44.4-30.9-1.3 0-2.7 .1-4 .4-.4-.8-1.2-1.2-1.6-2-8-8.8-18.4-12.8-30.8-12.4-24 .8-48 18-67.2 48.8-13.6 21.6-24 48.8-26.8 70.1-27.6 8.4-46.8 14.4-47.2 14.8-14 4.4-14.4 4.8-16 18-1.2 10-38 291.8-38 291.8l302.6 52.5 0-438.3c-1.5 .1-2.9 .2-4.4 .4 0 0-5.6 1.6-14.8 4.4zM233.6 87.7c-16 4.8-33.6 10.4-50.8 15.6 4.8-18.8 14.4-37.6 25.6-50 4.4-4.4 10.4-9.6 17.2-12.8 6.8 14.4 8.4 34 8 47.2zM200.8 24.4c5-.2 10 1.1 14.4 3.6-6.4 3.2-12.8 8.4-18.8 14.4-15.2 16.4-26.8 42-31.6 66.5-14.4 4.4-28.8 8.8-42 12.8 8.8-38.4 41.2-96.4 78-97.2zM154.4 244.6c1.6 25.6 69.2 31.2 73.2 91.7 2.8 47.6-25.2 80.1-65.6 82.5-48.8 3.2-75.6-25.6-75.6-25.6l10.4-44s26.8 20.4 48.4 18.8c14-.8 19.2-12.4 18.8-20.4-2-33.6-57.2-31.6-60.8-86.9-3.2-46.4 27.2-93.3 94.5-97.7 26-1.6 39.2 4.8 39.2 4.8l-15.2 57.6s-17.2-8-37.6-6.4c-29.6 2-30 20.8-29.6 25.6zM249.6 82.9c0-12-1.6-29.2-7.2-43.6 18.4 3.6 27.2 24 31.2 36.4-7.2 2-15.2 4.4-24 7.2z\"]\n};\nvar faSquareReddit = {\n prefix: 'fab',\n iconName: 'square-reddit',\n icon: [448, 512, [\"reddit-square\"], \"f1a2\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5-8.8-6.8-19.9-10.9-32-10.9-28.9 0-52.3 23.4-52.3 52.3 0 21 12.3 39 30.1 47.4 1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3 0-28.9-23.4-52.3-52.3-52.3-12 0-23 4-31.9 10.8-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7 3.9 16.5 18.7 28.7 36.3 28.7l.2-.2zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9-27.5-7.7-26.6-26.7 13.5-33.5 28.1-33.5l0-.1zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9 10.3-34.4 25-34.4 27.3 14.6 28.1 33.5l0 .1zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7 16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z\"]\n};\nvar faRedditSquare = faSquareReddit;\nvar faCreativeCommonsNc = {\n prefix: 'fab',\n iconName: 'creative-commons-nc',\n icon: [512, 512, [], \"f4e8\", \"M255.6 8C395.4 8 504 115.9 504 256 504 403.2 385.5 504 255.6 504 121.1 504 8 393.2 8 256 8 123.1 112.7 8 255.6 8zM63.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4l0 38.1-28.8 0 0-38.2c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM256.4 52.3C218 52.3 144 61 85.9 145.3l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3l0-38.1 28.8 0 0 38.1c22.7 1.2 43.4 8.9 62 23L303 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"]\n};\nvar faGalacticRepublic = {\n prefix: 'fab',\n iconName: 'galactic-republic',\n icon: [512, 512, [], \"f50c\", \"M256 8a248 248 0 1 1 0 496 248 248 0 1 1 0-496zm0 16.5a231.5 231.5 0 1 0 0 462.9 231.5 231.5 0 1 0 0-462.9zm27.6 21.8l0 24.6c30.3 4.5 59 16.3 83.6 34.5l17.4-17.4c-28.7-22.1-63.3-36.9-101-41.8zm-55.4 .1c-37.6 4.9-72.2 19.8-100.9 41.9l17.3 17.4 .1 0c24.1-17.8 52.6-30.1 83.5-34.7l0-24.5zm12.2 50.2l0 82.9c-10 2-19.4 5.9-27.7 11.4l-58.6-58.6-21.9 21.9 58.7 58.7c-5.5 8.2-9.4 17.6-11.5 27.6l-82.9 0 0 31 82.9 0c2 10 6 19.3 11.5 27.5l-58.7 58.7 21.9 21.9 58.6-58.6c8.4 5.6 17.8 9.5 27.7 11.5l0 82.9 31 0 0-82.9c10-2 19.4-6.1 27.6-11.5l58.7 58.7 21.9-21.9-58.7-58.7c5.5-8.2 9.5-17.5 11.5-27.5l82.9 0 0-31-82.9 0c-2-10-6-19.4-11.5-27.6l58.7-58.7-21.9-21.9-58.7 58.7c-8.2-5.5-17.6-9.5-27.6-11.5l0-82.9-31 0zm183.2 30.7l-17.4 17.4c18.3 24.6 30.2 53.4 34.7 83.7l24.6 0c-5-37.7-19.8-72.3-41.9-101zm-335.6 .1c-22.1 28.7-36.9 63.3-41.8 100.9l24.6 0c4.6-31 16.8-59.4 34.6-83.5L88.2 127.4zM46.3 283.7c4.9 37.6 19.7 72.2 41.8 100.9l17.4-17.4C87.7 343.1 75.6 314.6 71 283.7l-24.6 0 0 0zm394.7 0c-4.6 31-16.8 59.5-34.7 83.6l17.4 17.4c22.1-28.7 37-63.3 41.9-101l-24.6 0zM144.7 406.4l-17.4 17.4c28.7 22.1 63.3 37 101 41.9l0-24.6c-31-4.6-59.5-16.8-83.6-34.6zm222.5 0c-24.1 17.8-52.6 30.1-83.6 34.7l0 24.6c37.7-4.9 72.2-19.8 101-41.8l-17.3-17.4-.1 0z\"]\n};\nvar faFacebook = {\n prefix: 'fab',\n iconName: 'facebook',\n icon: [512, 512, [62000], \"f09a\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5l0-170.3-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 175.9C413.8 494.8 512 386.9 512 256z\"]\n};\nvar faGitlab = {\n prefix: 'fab',\n iconName: 'gitlab',\n icon: [512, 512, [], \"f296\", \"M504 204.6l-.7-1.8-69.7-181.8c-1.4-3.6-3.9-6.6-7.2-8.6-2.4-1.6-5.1-2.5-8-2.8s-5.7 .1-8.4 1.1-5.1 2.7-7.1 4.8c-1.9 2.1-3.3 4.7-4.1 7.4l-47 144-190.5 0-47.1-144c-.8-2.8-2.2-5.3-4.1-7.4-2-2.1-4.4-3.7-7.1-4.8-2.6-1-5.5-1.4-8.4-1.1s-5.6 1.2-8 2.8c-3.2 2-5.8 5.1-7.2 8.6L9.8 202.8 9 204.6c-10 26.2-11.3 55-3.5 82 7.7 26.9 24 50.7 46.4 67.6l.3 .2 .6 .4 106 79.5c38.5 29.1 66.7 50.3 84.6 63.9 3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3c17.9-13.5 46.1-34.9 84.6-63.9l106.7-79.9 .3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z\"]\n};\nvar faQq = {\n prefix: 'fab',\n iconName: 'qq',\n icon: [448, 512, [], \"f1d6\", \"M434.1 420.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.1 72.2-51 101.8 16.8 5.2 54.8 19.2 45.8 34.4-7.3 12.3-125.5 7.9-159.6 4-34.1 3.8-152.3 8.3-159.6-4-9-15.2 28.9-29.2 45.8-34.4-34.9-29.5-51.1-70.4-51.1-101.8 0 0-33.3 54.1-44.9 52.7-5.4-.6-12.4-29.6 9.3-99.7 10.3-33 22-60.5 40.1-105.8-3.1-116.9 45.2-215 160.3-215 113.7 0 163.2 96.1 160.3 215 18.1 45.2 29.9 72.9 40.1 105.8 21.8 70.1 14.7 99.1 9.3 99.7z\"]\n};\nvar faStripe = {\n prefix: 'fab',\n iconName: 'stripe',\n icon: [640, 512, [], \"f429\", \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9l0-33.8c-5.7 2.3-33.7 10.5-33.7-15.7l0-63.2 33.7 0 0-37.8-33.7 0-.1-38.5zm89.1 51.6l-2.7-13.1-38.4 0 0 153.2 44.3 0 0-103.1c10.5-13.8 28.2-11.1 33.9-9.3l0-40.8c-6-2.1-26.7-6-37.1 13.1zM346.4 124l-44.6 9.5 0 36.2 44.6-9.5 0-36.2zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4l0-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2l0 40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5l0-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9l86.9 0c.2-2.3 .6-11.6 .6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4l-45.9 0zM439.2 180.2c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11-39.1 0 0 204.8 44.4-9.4 .1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6 .1-51.6-29.3-79.7-60.5-79.7zM428.6 302.7c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4 .1 23.9-10.9 41.8-27.4 41.8zM301.9 336.4l44.6 0 0-153.2-44.6 0 0 153.2z\"]\n};\nvar faDailymotion = {\n prefix: 'fab',\n iconName: 'dailymotion',\n icon: [448, 512, [], \"e052\", \"M298.9 267c-7.4-4.2-15.8-6.3-24.4-6.2-13.2 0-24.4 4.4-33.4 13.3s-13.6 20-13.6 33.4c0 14.1 4.4 25.6 13.3 34.6s20 13.4 33.4 13.4c13.7 0 25-4.6 34.1-13.8S322 321.1 322 307.5c0-8.2-2.1-16.3-6.1-23.5-4-7.1-9.8-13-17-17zM0 32l0 448 448 0 0-448-448 0zM374.7 405.3l-53.1 0 0-23.9-.7 0c-10.5 17.5-29.1 26.2-55.8 26.2-18.4 0-34.7-4.4-48.9-13.1-14.1-8.6-25.5-21-32.9-35.8-7.7-15.1-11.6-32.1-11.6-50.9 0-18.4 3.9-35.1 11.8-50.2 7.5-14.7 18.9-27.1 32.9-35.8 14.1-8.7 30-13.1 47.7-13.1 10.2-.1 20.2 1.6 29.7 5.2 8.9 3.5 17.2 9.1 25 17l0-77.9 55.8-12.1 0 264.4z\"]\n};\nvar faSteam = {\n prefix: 'fab',\n iconName: 'steam',\n icon: [512, 512, [], \"f1b6\", \"M504 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5l0 1.2-59.2 85.7c-15.5-.9-30.7 3.4-43.5 12.1L8 236.1C18.2 108.4 125.1 8 255.6 8 392.8 8 504 119 504 256zM163.7 384.3l-30.5-12.6c5.6 11.6 15.3 20.8 27.2 25.8 26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3 .1-40.3S214 305.6 201 300.2c-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zM337.5 129.8a62.3 62.3 0 1 1 0 124.6 62.3 62.3 0 1 1 0-124.6zm.1 109a46.8 46.8 0 1 0 0-93.6 46.8 46.8 0 1 0 0 93.6z\"]\n};\nvar faVenmoV = {\n prefix: 'fab',\n iconName: 'venmo-v',\n icon: [512, 512, [], \"e85b\", \"M466.5 14.8c17.4 28.7 25.3 58.2 25.3 95.5 0 119-101.9 273.5-184.7 382.1l-188.9 0-75.8-451.5 165.4-15.7 40.1 321.3c37.4-60.8 83.6-156.3 83.6-221.4 0-35.6-6.1-59.9-15.7-79.9L466.5 14.8z\"]\n};\nvar faSnapchat = {\n prefix: 'fab',\n iconName: 'snapchat',\n icon: [512, 512, [62124, \"snapchat-ghost\"], \"f2ab\", \"M497.1 366.6c-3.4-9.2-9.8-14.1-17.1-18.2-1.4-.8-2.6-1.5-3.7-1.9-2.2-1.1-4.4-2.2-6.6-3.4-22.8-12.1-40.6-27.3-53-45.4-3.5-5.1-6.6-10.5-9.1-16.1-1.1-3-1-4.7-.2-6.3 .8-1.2 1.7-2.2 2.9-3 3.9-2.6 8-5.2 10.7-7 4.9-3.2 8.8-5.7 11.2-7.4 9.4-6.5 15.9-13.5 20-21.3 2.9-5.4 4.5-11.3 4.9-17.4s-.6-12.2-2.8-17.8c-6.2-16.3-21.6-26.4-40.3-26.4-3.9 0-7.9 .4-11.7 1.2-1 .2-2.1 .5-3.1 .7 .2-11.2-.1-22.9-1.1-34.5-3.5-40.8-17.8-62.1-32.7-79.2-9.5-10.7-20.7-19.7-33.2-26.7-22.6-12.9-48.2-19.4-76.1-19.4s-53.4 6.5-76 19.4c-12.5 7-23.7 16.1-33.3 26.8-14.9 17-29.2 38.4-32.7 79.2-1 11.6-1.2 23.4-1.1 34.5-1-.3-2-.5-3.1-.7-3.9-.8-7.8-1.2-11.7-1.2-18.7 0-34.1 10.1-40.3 26.4-2.2 5.7-3.2 11.8-2.8 17.8s2 12 4.9 17.4c4.1 7.8 10.7 14.7 20 21.3 2.5 1.7 6.4 4.2 11.2 7.4 2.6 1.7 6.5 4.2 10.3 6.7 1.3 .9 2.4 2 3.3 3.3 .8 1.6 .8 3.4-.4 6.6-2.5 5.5-5.5 10.8-8.9 15.8-12.1 17.7-29.4 32.6-51.4 44.6-11.7 6.2-23.9 10.3-29 24.3-3.9 10.5-1.3 22.5 8.5 32.6 3.6 3.8 7.8 6.9 12.4 9.4 9.6 5.3 19.8 9.3 30.3 12.1 2.2 .6 4.3 1.5 6.1 2.7 3.6 3.1 3.1 7.9 7.8 14.8 2.4 3.6 5.4 6.7 9 9.1 10 6.9 21.3 7.4 33.2 7.8 10.8 .4 23 .9 36.9 5.5 5.8 1.9 11.8 5.6 18.7 9.9 16.7 10.3 39.6 24.3 77.8 24.3s61.3-14.1 78.1-24.4c6.9-4.2 12.9-7.9 18.5-9.8 13.9-4.6 26.2-5.1 36.9-5.5 11.9-.5 23.2-.9 33.2-7.8 4.2-2.9 7.7-6.7 10.2-11.2 3.4-5.8 3.4-9.9 6.6-12.8 1.8-1.2 3.7-2.1 5.8-2.6 10.7-2.8 21-6.9 30.8-12.2 4.9-2.6 9.3-6.1 13-10.2l.1-.2c9.2-9.9 11.5-21.5 7.8-31.8zm-34 18.3c-20.7 11.5-34.5 10.2-45.3 17.1-9.1 5.9-3.7 18.5-10.3 23.1-8.1 5.6-32.2-.4-63.2 9.9-25.6 8.5-42 32.8-88 32.8s-62-24.3-88.1-32.9c-31-10.3-55.1-4.2-63.2-9.9-6.6-4.6-1.2-17.2-10.3-23.1-10.7-6.9-24.5-5.7-45.3-17.1-13.2-7.3-5.7-11.8-1.3-13.9 75.1-36.4 87.1-92.6 87.7-96.7 .6-5 1.4-9-4.2-14.1-5.4-5-29.2-19.7-35.8-24.3-10.9-7.6-15.7-15.3-12.2-24.6 2.5-6.5 8.5-8.9 14.9-8.9 2 0 4 .2 6 .7 12 2.6 23.7 8.6 30.4 10.2 .8 .2 1.6 .3 2.5 .3 3.6 0 4.9-1.8 4.6-5.9-.8-13.1-2.6-38.7-.6-62.6 2.8-32.9 13.4-49.2 26-63.6 6.1-6.9 34.5-37 88.9-37S339 74.2 345 81.1c12.6 14.4 23.2 30.7 26 63.6 2.1 23.9 .3 49.5-.6 62.6-.3 4.3 1 5.9 4.6 5.9 .8 0 1.7-.1 2.5-.3 6.7-1.6 18.4-7.6 30.4-10.2 2-.4 4-.7 6-.7 6.4 0 12.4 2.5 14.9 8.9 3.5 9.4-1.2 17-12.2 24.6-6.6 4.6-30.4 19.3-35.8 24.3-5.6 5.1-4.8 9.1-4.2 14.2 .5 4.2 12.5 60.4 87.7 96.7 4.4 2.2 11.9 6.7-1.3 14.1z\"]\n};\nvar faSnapchatGhost = faSnapchat;\nvar faGalacticSenate = {\n prefix: 'fab',\n iconName: 'galactic-senate',\n icon: [512, 512, [], \"f50d\", \"M249.9 33.5l0 26.1c-13.6 20.6-23.9 108.6-24.5 215.3 11.7-15.6 19.1-33.3 19.1-48.2l0-16.9c0-5.3 .8-10.5 2.2-15.6 .6-2.1 1.4-4.1 2.6-5.8s3.4-3.8 6.7-3.8 5.4 2.1 6.7 3.8c1.2 1.8 2 3.7 2.6 5.8 1.4 5.1 2.2 10.3 2.2 15.6l0 16.9c0 14.9 7.4 32.6 19.1 48.2-.6-106.8-10.9-194.7-24.5-215.3l0-26.1-12.3 0zM223.5 181.3c-9.5 2.1-18.7 5.2-27.5 9.1 8.9 16.1 9.8 32.6 1.7 37.3-8 4.6-21.8-4.2-31.4-19.8-11.6 8.8-21.9 19.3-30.6 31.1 14.7 9.6 22.9 22.9 18.3 30.7-4.5 7.7-20 7.1-35.5-1-5.8 13.2-9.7 27.5-11.6 42.4 9.7 .2 18.7 2.4 26.2 6 17.8-.3 32.8-2 40.5-4.2 5.6-26.4 23-48.2 46.3-59.5 .7-25.6 1.9-49.7 3.5-72.1zm65 0c1.6 22.4 2.7 46.5 3.5 72.1 23.3 11.3 40.8 33.2 46.3 59.5 7.7 2.3 22.7 3.9 40.5 4.2 7.5-3.7 16.5-5.8 26.2-6-1.9-14.9-5.9-29.2-11.7-42.4-15.4 8.1-30.9 8.7-35.5 1-4.6-7.7 3.6-21.1 18.3-30.7-8.7-11.8-19-22.3-30.6-31.1-9.5 15.6-23.4 24.4-31.4 19.8-8.1-4.6-7.2-21.2 1.7-37.3-8.8-3.9-18-7-27.4-9.1zM256 189.9c-3.2 0-5.9 8.8-6.1 19.9l0 0 0 16.9c0 41.4-49 95-93.5 95-52 0-122.8-1.4-156.4 29.2l0 2.5c9.4 17.1 20.6 33.2 33.2 48 12.5-21.1 51.6-41 108-41.4 45.7 1 79 20.3 90.8 40.9 0 0 0 0 0 .1 7.7 2.1 15.8 3.2 24 3.2 8.2 0 16.4-1.1 24-3.2 0 0 0 0 0-.1 11.7-20.5 45.1-39.8 90.8-40.9 56.4 .4 95.5 20.3 108 41.4 12.6-14.8 23.8-30.9 33.2-48l0-2.5c-33.6-30.6-104.4-29.2-156.4-29.2-44.5 0-93.5-53.6-93.5-95l0-16.9-.1 0c-.2-11.1-2.9-19.9-6.1-19.9zm0 177.9a40.6 40.6 0 1 1 0-81.3 40.6 40.6 0 1 1 0 81.3zm0-73.6a33 33 0 1 0 0 65.9 33 33 0 1 0 0-65.9zm0 59.8a26.8 26.8 0 1 1 0-53.6 26.8 26.8 0 1 1 0 53.6zm-114.8 13c-10.2 .1-21.6 .4-30.5 1.7 .4 4.4 1.5 18.6 7.1 29.8 9.1-2.6 18.4-3.9 27.6-3.9 41.3 .9 71.5 34.4 78.3 74.5l.1 4.7c10.4 1.9 21.2 2.9 32.2 2.9 11 0 21.8-1 32.2-2.9l.1-4.7c6.8-40.1 37-73.5 78.3-74.5 9.3 0 18.5 1.3 27.6 3.9 5.6-11.1 6.7-25.3 7.1-29.8-8.9-1.3-20.3-1.6-30.5-1.7-18.8 .4-35.2 4.2-48.6 9.7-12.5 16-29.2 30-49.6 33.1-.1 0-.2 0-.3 0 0 0-.1 0-.2 .1-5.2 1.1-10.6 1.6-16.2 1.6-5.5 0-10.9-.5-16.2-1.6-.1 0-.1 0-.2-.1-.1 0-.2 0-.3 0-20.4-3-37-17-49.6-33.1-13.4-5.5-29.9-9.2-48.6-9.7z\"]\n};\nvar faPhoenixFramework = {\n prefix: 'fab',\n iconName: 'phoenix-framework',\n icon: [640, 512, [], \"f3dc\", \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4 .1-.8 .2-1.1 .3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7-111.2-16.5-128.9-163.6-252.5-173.1-44.3-3.4-99.4 8.1-136.3 35-.8 .6-1.5 1.2-2.2 1.8 .1 .2 .1 .3 .2 .5 .8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7 .3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zM272.2 415.4c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1 .2-.3 .3-.4 .5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zM447 163.4c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6 .1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2 .1-.2 2.1 .6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zM549.7 280.9c-32.4 .2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2l0-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7 .3 .2 .4 .5 .7 .9-.5 0-.7 .1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1 .2-.1 .4-.2 .6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2 .1-.3 .1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7 .4-.1 .9 0 1.5 .3-.6 .4-1.2 .9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4 .6-.8 .9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5 .1-.1 .2 0 .4 .4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7 .5-.2 .8-.4 1.1-.4 13.1 .1 26.1 .7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"]\n};\nvar faGit = {\n prefix: 'fab',\n iconName: 'git',\n icon: [512, 512, [], \"f1d3\", \"M216.3 158.4l-79.3 0c-40-10.5-130.5-7.8-130.5 74.8 0 30.1 15 51.2 35 61-25.1 23-37 33.8-37 49.2 0 11 4.5 21.1 17.9 26.8-14.3 13.4-22.4 23.1-22.4 41.4 0 32.1 28 50.8 101.6 50.8 70.8 0 111.8-26.4 111.8-73.2 0-58.7-45.2-56.5-151.6-63l13.4-21.6c27.3 7.6 118.7 10 118.7-67.9 0-18.7-7.7-31.7-15-41.1l37.4-2.8 0-34.5zM152.9 400.3c0 32.1-104.9 32.1-104.9 2.4 0-8.1 5.3-15 10.6-21.5 77.7 5.3 94.3 3.4 94.3 19.1zM102.1 265.7c-52.8 0-50.5-71.2 1.2-71.2 49.5 0 50.8 71.2-1.2 71.2zM235.4 366.2l0-32.1c26.7-3.7 27.2-2 27.2-11l0-119.5c0-8.5-2.1-7.4-27.2-16.3l4.5-32.9 84.2 0 0 168.7c0 6.5 .4 7.3 6.5 8.1l20.7 2.8 0 32.1-115.9 0zm52.5-244.3c-23.2 0-36.6-13.4-36.6-36.6s13.4-35.8 36.6-35.8c23.6 0 37 12.6 37 35.8s-13.4 36.6-37 36.6zM512 350.5c-17.5 8.5-43.1 16.3-66.3 16.3-48.4 0-66.7-19.5-66.7-65.5l0-106.5c0-5.4 1-4.1-31.7-4.1l0-36.2c35.8-4.1 50-22 54.5-66.3l38.6 0c0 65.8-1.3 61.8 3.3 61.8l57.3 0 0 40.6-60.6 0 0 97.1c0 6.9-4.9 51.4 60.6 26.8l11 35.8z\"]\n};\nvar faOptinMonster = {\n prefix: 'fab',\n iconName: 'optin-monster',\n icon: [576, 512, [], \"f23c\", \"M572.8 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7 .3-6.5 .3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6l0-2.8c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60-69.6-59.7-167.7-53.8-244.2-37.6 19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8 .9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8 .5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4 .5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2l0 19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3 .5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1 .2-3.7-.7-7.2-1.7-10.7zM499 167.4c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3 .3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1 .5-8.1 .8-11.6 .8-1.9-21.9-6.8-44-14.3-64.6 3.7 .3 8.1 .3 11.8 .3zM47.7 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1 .8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53l0 .3 12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-10.5a76.1 76.1 0 1 1 0-152.2 76.1 76.1 0 1 1 0 152.2zm115.6 22.1c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3 .3 26.6 .3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1l0 .3c18.9-.3 38.1-.3 57 0zM278.5 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8l0 .3c1.1 8.3 3.3 51.2-1.3 53.7zM172 257.9c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6 .8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zM115 461.7c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5l.3 0c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3 .3l0-.3 .3 0c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2 .8 2.2 .8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8 .3 1.9 .5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3 .9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM373.1 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM75 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zM290.9 230.9c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68.2 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM479 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5 .9-8.4-20.2-23.5-29.1-25.1z\"]\n};\nvar faJenkins = {\n prefix: 'fab',\n iconName: 'jenkins',\n icon: [448, 512, [], \"f3b6\", \"M455.4 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8 .2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2 .7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6-21.1 12.5-36.4 20.3-55.9 34.3-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8 .7 2 1.4 4.1 2.1 6l422 0c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM174.2 33.7c1.8-.5 3.4 .7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4 .7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zM69.4 127.3c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7 .3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2 .5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8 .7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1 .6-16.5zm-17.2-20c-16.8 .8-26-1.2-38.3-10.8 .2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM194.3 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3 .8 4.4-2.8 10.2-2.8 16.4zM26 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5 .7 2.3 1.4 4.7 2.2 7.2l-180.7 0 0-.1zm240.6 5.7l-.8 0c.3-.2 .5-.4 .8-.5l0 .5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3l-9.6 0zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5 .4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7l-14 0c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8l-17.4 0c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9 .8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8 .6-11.5 15.6-7.3 29 1.3 35.7 11.5l-36.3 0zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1l-27.9 0c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1 .8 5.5-2.6 18.9-3.8 25.1zM190.5 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7 .5 0 1 0 1.4 .1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm-96.8 2.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9 .9-36.6-17.1 11.9 .7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zM261.5 298.3c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zM353.7 345c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"]\n};\nvar faSlideshare = {\n prefix: 'fab',\n iconName: 'slideshare',\n icon: [512, 512, [], \"f1e7\", \"M187.9 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7 .1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3 0-198.3c0-27.4-20.6-49.7-46-49.7L76.8 0c-25.4 0-46 22.3-46 49.7l0 198.3c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72-56.3 191.7 137.4 222.3 134.3 124.1 0-.7 .3-56.6 .3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7 .3 92.8 .3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28l0-192.4c0-34.9 8.9-45.7 40.6-45.7l317.7 0c30.3 0 40.9 12.9 40.9 45.7l0 190.6-.1 0z\"]\n};\nvar faUber = {\n prefix: 'fab',\n iconName: 'uber',\n icon: [448, 512, [], \"f402\", \"M414.1 32L33.9 32C15.2 32 0 47.2 0 65.9L0 446c0 18.8 15.2 34 33.9 34L414 480c18.7 0 33.9-15.2 33.9-33.9l0-380.2C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6l94.4 0 0 20.4c0 3.7 3 6.8 6.8 6.8l67.9 0c3.7 0 6.8-3 6.8-6.8l0-67.9c0-3.7-3-6.8-6.8-6.8l-67.9 0c-3.7 0-6.8 3-6.8 6.8l0 20.4-94.4 0c7-69.4 65.4-122.2 135.1-122.2s128.1 52.8 135.1 122.2c7.5 74.5-46.9 141.1-121.5 148.6z\"]\n};\nvar faDigitalOcean = {\n prefix: 'fab',\n iconName: 'digital-ocean',\n icon: [512, 512, [], \"f391\", \"M87 481.8l73.7 0 0-73.6-73.7 0 0 73.6zM25.4 346.6l0 61.6 61.6 0 0-61.6-61.6 0zM491.6 176.9C468.6 102.7 409.2 43.6 335 20.3 164.9-32.8 8 93.7 8 255.9l95.8 0c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208l0 .3-.3 0 0 95.8c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231l0-95.3-95.6 0 0 95.6 95.3 0 0-.3 .3 0z\"]\n};\nvar faSoundcloud = {\n prefix: 'fab',\n iconName: 'soundcloud',\n icon: [640, 512, [], \"f1be\", \"M640.2 298.6c-1.3 23.1-11.5 44.8-28.4 60.5s-39.2 24.4-62.3 24.1l-218 0c-4.8 0-9.4-2-12.8-5.4s-5.3-8-5.3-12.8l0-234.8c-.2-4 .9-8 3.1-11.4s5.3-6.1 9-7.7c0 0 20.1-13.9 62.3-13.9 25.8 0 51.1 6.9 73.3 20.1 17.3 10.2 32.3 23.8 44.1 40.1s20 34.8 24.2 54.4c7.5-2.1 15.3-3.2 23.1-3.2 11.7-.1 23.3 2.2 34.2 6.7s20.5 11.3 28.7 19.7 14.6 18.3 18.9 29.3 6.3 22.6 5.9 34.3zm-354-153.5c.1-1 0-2-.3-2.9s-.8-1.8-1.5-2.6-1.5-1.3-2.4-1.7c-1.8-.8-4-.8-5.8 0-.9 .4-1.7 1-2.4 1.7s-1.2 1.6-1.5 2.6-.4 1.9-.3 2.9c-6 78.9-10.6 152.9 0 231.6 .2 1.7 1 3.3 2.3 4.5 2.6 2.4 6.8 2.4 9.4 0 1.3-1.2 2.1-2.8 2.3-4.5 11.3-79.4 6.6-152 0-231.6l.2 0zm-44 27.3c-.2-1.8-1.1-3.5-2.4-4.7s-3.1-1.9-5-1.9-3.6 .7-5 1.9-2.2 2.9-2.4 4.7c-7.9 67.9-7.9 136.5 0 204.4 .3 1.8 1.2 3.4 2.5 4.5s3.1 1.8 4.8 1.8 3.5-.6 4.8-1.8 2.2-2.8 2.5-4.5c8.8-67.8 8.8-136.5 .1-204.4l.1 0zm-44.3-6.9c-.2-1.8-1-3.4-2.3-4.6s-3-1.8-4.8-1.8-3.5 .7-4.8 1.8-2.1 2.8-2.3 4.6c-6.7 72-10.2 139.3 0 211.1 0 1.9 .7 3.7 2.1 5s3.1 2.1 5 2.1 3.7-.7 5-2.1 2.1-3.1 2.1-5c10.5-72.8 7.3-138.2 .1-211.1l-.1 0zm-44 20.6c0-1.9-.8-3.8-2.1-5.2s-3.2-2.1-5.2-2.1-3.8 .8-5.2 2.1-2.1 3.2-2.1 5.2c-8.1 63.3-8.1 127.5 0 190.8 .2 1.8 1 3.4 2.4 4.6s3.1 1.9 4.8 1.9 3.5-.7 4.8-1.9 2.2-2.8 2.4-4.6c8.8-63.3 8.9-127.5 .3-190.8l-.1 0zm-44.5 47.6c0-1.9-.8-3.8-2.1-5.1s-3.2-2.1-5.1-2.1-3.8 .8-5.1 2.1-2.1 3.2-2.1 5.1c-10.5 49.2-5.5 93.9 .4 143.6 .3 1.6 1.1 3.1 2.3 4.2s2.8 1.7 4.5 1.7 3.2-.6 4.5-1.7 2.1-2.5 2.3-4.2c6.6-50.4 11.6-94.1 .4-143.6zm-44.1-7.5c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9-3.6 .7-5 1.9-2.2 2.9-2.4 4.8c-9.3 50.2-6.2 94.4 .3 144.5 .7 7.6 13.6 7.5 14.4 0 7.2-50.9 10.5-93.8 .3-144.5l-.2 0zM20.7 250.8c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9-3.6 .7-5 1.9-2.3 2.9-2.4 4.8c-8.5 33.7-5.9 61.6 .6 95.4 .2 1.7 1 3.3 2.3 4.4s2.9 1.8 4.7 1.8 3.4-.6 4.7-1.8 2.1-2.7 2.3-4.4c7.5-34.5 11.2-61.8 .4-95.4l-.2 0z\"]\n};\nvar faSquareFigma = {\n prefix: 'fab',\n iconName: 'square-figma',\n icon: [448, 512, [], \"e7e4\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM173.7 96c-33 0-59.8 26.8-59.8 59.8 0 21 10.8 39.4 27.2 50.1-16.4 10.7-27.2 29.1-27.2 50.1s10.8 39.5 27.2 50.1c-16.4 10.7-27.2 29.1-27.2 50.1 0 33.1 27.1 59.8 60.1 59.8 33.2 0 60.6-26.9 60.6-60.3l0-55.7c10.6 9.8 24.8 15.8 40.4 15.8l1.1 0c33 0 59.8-26.8 59.8-59.8 0-21-10.8-39.5-27.2-50.1 16.4-10.7 27.2-29.1 27.2-50.1 0-33-26.8-59.8-59.8-59.8L173.7 96zm41.6 219.8l0 39.9c0 22.6-18.6 41-41.3 41-22.4 0-40.7-18.2-40.7-40.5 0-22.3 18.1-40.4 40.3-40.4l41.7 0zm0-100.3l0 80.9-41.7 0c-22.3-.1-40.3-18.2-40.3-40.5 0-22.3 18.1-40.5 40.5-40.5l41.6 0zm60.8 0c22.3 0 40.5 18.1 40.5 40.5s-18.1 40.5-40.5 40.5l-1.1 0c-22.3 0-40.4-18.1-40.4-40.5s18.1-40.5 40.4-40.5l1.1 0zm-60.8-19.3l-41.6 0c-22.3 0-40.5-18.1-40.5-40.4s18.1-40.5 40.5-40.5l41.6 0 0 80.9zm60.8-80.9c22.3 0 40.5 18.1 40.5 40.5s-18.1 40.4-40.5 40.4l-41.5 0 0-80.9 41.5 0z\"]\n};\nvar faCreativeCommonsSa = {\n prefix: 'fab',\n iconName: 'creative-commons-sa',\n icon: [512, 512, [], \"f4ef\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM145.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97l62.5 0c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8l18.2 0-49.2 49.2-49-49.2 19.4 0z\"]\n};\nvar faChrome = {\n prefix: 'fab',\n iconName: 'chrome',\n icon: [512, 512, [], \"f268\", \"M0 256c0-46.6 12.5-90.4 34.3-128.9L144.1 318.3c21.9 39.2 63.8 65.7 111.9 65.7 14.3 0 27.1-2.3 40.8-6.6L220.5 509.6C95.9 492.3 0 385.3 0 256zm365.1 65.6c12.3-19.2 18.9-42.5 18.9-65.6 0-38.2-16.8-72.5-43.3-96l152.7 0c12 29.6 18.6 62.1 18.6 96 0 141.4-114.6 255.1-256 256L365.1 321.6zM477.8 128L256 128c-62.9 0-113.7 44.1-125.5 102.7L54.2 98.5C101 38.5 174 0 256 0 350.8 0 433.5 51.5 477.8 128zM344 256a88 88 0 1 1 -176 0 88 88 0 1 1 176 0z\"]\n};\nvar faTradeFederation = {\n prefix: 'fab',\n iconName: 'trade-federation',\n icon: [512, 512, [], \"f513\", \"M256 8.8a247.2 247.2 0 1 0 0 494.4 247.2 247.2 0 1 0 0-494.4zm0 11.6a235.6 235.6 0 1 1 0 471.2 235.6 235.6 0 1 1 0-471.2zM411.1 163.1l0-46.8-193.8 0 0 81.7-155.1 0 36.7 46 117.7 0 0 196.8 48.8 0 0-195.8 83.3 0 0-47-83.3 0 0-34.8 145.7 0 0-.1zm-73.3 45.1l0 23.9-82.9 0 0 197.4-26.8 0 0-197.4-123.8 0-20.1-23.9 143.9 0 0-80.6 171.8 0 0 24.4-145 0 0 56.2 82.9 0zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1-22 9.3zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3-9.5-10.2zM312.3 264.7l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7 9.3-10.8zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17 15-17.6zM256 29.9a226.1 226.1 0 1 0 0 452.2 226.1 226.1 0 1 0 0-452.2zM350.6 196l0 51-83.3 0 0 195.7-52.7 0 0-196.8-116.7 0-40-49.9 157.4 0 0-81.6 197.8 0 0 50.7-145.7 0 0 30.9 83.2 0zM256 43.2c60.3 0 114.8 25 153.6 65.2l-199.1 0 0 81.6-157.4 0C81.1 104.8 161.4 43.2 256 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1l43.8 56.3 114.7 0 0 196.8 64.6 0 0-195.8 83.3 0 0-62.7-83.2 0 0-19.2 145.6 0 0-50.8c30.8 37 49.3 84.6 49.3 136.5 .1 117.9-95.5 213.5-213.4 213.5zM186.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1-22.7 9.3z\"]\n};\nvar faVaadin = {\n prefix: 'fab',\n iconName: 'vaadin',\n icon: [448, 512, [], \"f408\", \"M224.5 140.7C226 123.1 229.4 88 274.3 88l98.6 0c20.7 0 32.1-7.8 32.1-21.6l0-12.3c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1l0 36.5c0 42.9-21.5 62-66.8 62l-100.5 0c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1l-100.7 0C21.5 152.6 0 133.5 0 90.6L0 54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1l0 12.3C43.1 80.2 54.5 88 75.2 88l98.6 0c44.8 0 48.3 35.1 49.8 52.7l.9 0zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362 157.1 244.3c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"]\n};\nvar faDeviantart = {\n prefix: 'fab',\n iconName: 'deviantart',\n icon: [320, 512, [], \"f1bd\", \"M320 93.2l-98.2 179.1 7.4 9.5 90.8 0 0 127.7-160.9 0-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2l-92.7 0 0-93.2 93.2-179.4-7.4-9.2-85.8 0 0-127.6 156 0 13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2l97.6 0 0 93.1z\"]\n};\nvar faMedium = {\n prefix: 'fab',\n iconName: 'medium',\n icon: [448, 512, [62407, \"medium-m\"], \"f23a\", \"M369.4 32c43.4 0 78.6 35.2 78.6 78.6l0 83.8c-1.9-.1-3.8-.2-5.7-.2l-.4 0c-10 0-22.3 2.4-31.1 6.8-10 4.6-18.7 11.5-26 20.6-11.8 14.6-18.9 34.3-20.6 56.4-.1 .7-.1 1.3-.2 2s-.1 1.2-.1 1.9c-.1 1.2-.1 2.4-.1 3.6 0 1.9-.1 3.8 0 5.8 1.2 50.1 28.2 90.2 76.3 90.2 2.7 0 5.3-.1 7.9-.4l0 20.4c0 43.4-35.2 78.6-78.6 78.6L78.6 480C35.2 480 0 444.8 0 401.4L0 110.6C0 67.2 35.2 32 78.6 32l290.8 0zM82.3 138.9l.3 .1c13.2 3 19.8 7.4 19.8 23.4l0 187.2c0 16-6.7 20.4-19.9 23.4l-.3 .1 0 2.8 52.8 0 0-2.8-.3-.1c-13.2-3-19.9-7.4-19.9-23.4l0-176.3 86.1 202.5 4.9 0 88.6-208.2 0 186.6c-1.1 12.6-7.8 16.5-19.7 19.2l-.3 .1 0 2.7 91.9 0 0-2.7-.3-.1c-11.9-2.7-18.7-6.6-19.9-19.2l-.1-191.8 .1 0c0-16 6.7-20.4 19.9-23.4l.3-.1 0-2.7-72.2 0-67 157.4-67-157.4-77.8 0 0 2.7zM448 340.3c-25.1-7.4-43-35.1-41.2-67.8l0 0 41.1 0 0 67.8zm-6.4-135.6c2.3 0 4.4 .3 6.4 .9l0 57.4-40.2 0c1.5-33.6 13.6-57.9 33.8-58.3z\"]\n};\nvar faMediumM = faMedium;\nvar faOpencart = {\n prefix: 'fab',\n iconName: 'opencart',\n icon: [640, 512, [], \"f23d\", \"M331.8 440.4a45.8 45.8 0 1 1 91.5 .3 45.8 45.8 0 1 1 -91.5-.3zM169.4 394.9a45.7 45.7 0 1 0 .3 91.3 45.7 45.7 0 1 0 -.3-91.3zm291.7-270c-302.2 0-379.2-12.8-461.1-99.2 34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"]\n};\nvar faYCombinator = {\n prefix: 'fab',\n iconName: 'y-combinator',\n icon: [448, 512, [], \"f23b\", \"M448 32l0 448-448 0 0-448 448 0zM236 287.5l77.5-145.5-32.7 0-45.8 91c-4.7 9.3-9 18.3-12.8 26.8l-12.2-26.8-45.2-91-35 0 76.7 143.8 0 94.5 29.5 0 0-92.8z\"]\n};\nvar faLine = {\n prefix: 'fab',\n iconName: 'line',\n icon: [512, 512, [], \"f3c0\", \"M311 196.8l0 81.3c0 2.1-1.6 3.7-3.7 3.7l-13 0c-1.3 0-2.4-.7-3-1.5L254 230 254 278.2c0 2.1-1.6 3.7-3.7 3.7l-13 0c-2.1 0-3.7-1.6-3.7-3.7l0-81.3c0-2.1 1.6-3.7 3.7-3.7l12.9 0c1.1 0 2.4 .6 3 1.6l37.3 50.3 0-48.2c0-2.1 1.6-3.7 3.7-3.7l13 0c2.1-.1 3.8 1.6 3.8 3.5l0 .1zm-93.7-3.7l-13 0c-2.1 0-3.7 1.6-3.7 3.7l0 81.3c0 2.1 1.6 3.7 3.7 3.7l13 0c2.1 0 3.7-1.6 3.7-3.7l0-81.3c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1l-35.6 0 0-64.4c0-2.1-1.6-3.7-3.7-3.7l-13 0c-2.1 0-3.7 1.6-3.7 3.7l0 81.3c0 1 .3 1.8 1 2.5 .7 .6 1.5 1 2.5 1l52.2 0c2.1 0 3.7-1.6 3.7-3.7l0-13c0-1.9-1.6-3.7-3.5-3.7l.1 0zm193.7-68.1l-52.3 0c-1.9 0-3.7 1.6-3.7 3.7l0 81.3c0 1.9 1.6 3.7 3.7 3.7l52.2 0c2.1 0 3.7-1.6 3.7-3.7l0-13.1c0-2.1-1.6-3.7-3.7-3.7l-35.5 0 0-13.6 35.5 0c2.1 0 3.7-1.6 3.7-3.7l0-13.1c0-2.1-1.6-3.7-3.7-3.7l-35.5 0 0-13.7 35.5 0c2.1 0 3.7-1.6 3.7-3.7l0-13c-.1-1.9-1.7-3.7-3.7-3.7l.1 0zM512 93.4l0 326c-.1 51.2-42.1 92.7-93.4 92.6l-326 0C41.4 511.9-.1 469.8 0 418.6l0-326C.1 41.4 42.2-.1 93.4 0l326 0c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3S68.8 150.1 68.8 233.5c0 74.7 66.3 137.4 155.9 149.3 21.8 4.7 19.3 12.7 14.4 42.1-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1l0-.2z\"]\n};\nvar faAmilia = {\n prefix: 'fab',\n iconName: 'amilia',\n icon: [448, 512, [], \"f36d\", \"M240.2 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1l0 38.5C203.1 227.7 78.3 251 46.8 264.2 11.3 280.5 16.4 357.7 16.4 376S31.6 480 141.3 480c47.8 0 113.7-20.7 153.3-42.1l0 25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5 .3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1l0-296.6c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5l0 106.7z\"]\n};\nvar faAsymmetrik = {\n prefix: 'fab',\n iconName: 'asymmetrik',\n icon: [576, 512, [], \"f372\", \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1 .8-65.5-59.4-118.2-169.4-135-128.7-19.7-288.5 15.5-406.6 82.4 52-26.5 110.6-48.2 170.7-58.2 74.5-20.5 153-25.4 221.3-14.8 152.5 23.8 196.8 127.5 98.8 231.7-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7 101.6 0 22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1 135.5 0-32.6-53.1c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8 101.6 0-73.4-110.4c18.5-12.1 35-25.5 48.9-39.8zM329.9 389.7l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"]\n};\nvar faPhabricator = {\n prefix: 'fab',\n iconName: 'phabricator',\n icon: [512, 512, [], \"f3db\", \"M331.1 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4 .5 .2 28.9 .2 28.9l-9.1 9.1s-29.2-.9-29.7 .4L160 226.3c-.6 1.4 21 21 21 21l.1 12.9S159.4 280 160 281.4l9.5 20c.6 1.4 29.5 .5 29.5 .5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4 .6 20.7-23.5 20.7-23.5l13.1 .2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2 .9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4s-32.1-12.5-32.8-29.6 12.8-31.6 30.1-32.3c17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1 .1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM363.5 148.2a152.3 152.3 0 1 1 -215 215.6 152.3 152.3 0 1 1 215-215.6z\"]\n};\nvar faBots = {\n prefix: 'fab',\n iconName: 'bots',\n icon: [640, 512, [], \"e340\", \"M86.3 197.8c-8-.1-15.9 1.7-23.1 5.1s-13.5 8.6-18.4 14.9l0-61.9c0-2.2-.9-4.3-2.4-5.8s-3.6-2.4-5.8-2.4l-28.4 0c-2.2 0-4.3 .9-5.8 2.4S0 153.8 0 156L0 333.6c0 1.1 .2 2.1 .6 3.1s1 1.9 1.8 2.7 1.7 1.4 2.7 1.8 2.1 .6 3.1 .6l28.4 0c1.1 0 2.1-.2 3.1-.6s1.9-1 2.7-1.8 1.4-1.7 1.8-2.7 .6-2.1 .6-3.1l0-8.1c11.6 13.4 25.9 19.8 41.6 19.8 34.6 0 61.9-26.2 61.9-73.8 0-45.9-27-73.6-61.9-73.6zM71.5 305.7c-9.6 0-21.2-4.9-26.7-12.5l0-43c5.5-7.6 17.2-12.8 26.7-12.8 17.7 0 31.1 13.1 31.1 34 0 21.2-13.4 34.3-31.1 34.3zm156.4-59a17.4 17.4 0 1 0 0 34.8 17.4 17.4 0 1 0 0-34.8zm46.1-90l0-44.7c2.8-1.2 5.2-3.3 6.6-6s1.9-5.8 1.3-8.9-2.2-5.7-4.6-7.7-5.4-3-8.4-3-6.1 1.1-8.4 3-4 4.7-4.6 7.7-.1 6.1 1.3 8.9 3.8 4.8 6.6 6l0 44.7c-28 1.3-54.4 13.6-73.6 34.1s-29.5 47.7-28.8 75.8 12.3 54.7 32.4 74.3 47 30.6 75.1 30.6 55-11 75.1-30.6 31.7-46.3 32.4-74.3-9.7-55.3-28.8-75.8-45.5-32.8-73.6-34.1zm86 107.4c0 30.5-40.8 55.3-91.1 55.3s-91.1-24.7-91.1-55.3 40.8-55.3 91.1-55.3 91.1 24.7 91.1 55.3l0 0zm-50.2 17.4c3.4 0 6.8-1 9.7-2.9s5.1-4.6 6.4-7.8 1.7-6.7 1-10.1-2.3-6.5-4.8-8.9-5.5-4.1-8.9-4.8-6.9-.3-10.1 1-5.9 3.5-7.8 6.4-2.9 6.2-2.9 9.7c0 4.6 1.8 9 5.1 12.3s7.7 5.1 12.3 5.1l0 0zm270.9-31c-14.8-2.6-22.4-3.8-22.4-9.9 0-5.5 7.3-9.9 17.7-9.9 12.2 .1 24.2 3.6 34.5 10.1 1.8 1.2 4 1.6 6.2 1.1s4-1.7 5.1-3.6c.1-.1 .1-.2 .2-.3l8.6-14.9c1.1-1.9 1.4-4.1 .8-6.1s-1.9-3.9-3.7-5c-15.7-9.4-33.7-14.3-52-14.1-39 0-60.2 21.5-60.2 46.2 0 36.3 33.7 41.9 57.6 45.6 13.4 2.3 24.1 4.4 24.1 11 0 6.4-5.5 10.8-18.9 10.8-13.6 0-31-6.2-42.6-13.6-.9-.6-1.9-1-3-1.2s-2.1-.2-3.2 .1-2.1 .7-2.9 1.3-1.6 1.4-2.2 2.3c0 .1-.1 .1-.1 .2l-10.2 16.9c-1.1 1.8-1.4 4-1 6s1.7 3.9 3.5 5c15.2 10.3 37.7 16.7 59.4 16.7 40.4 0 64-19.8 64-46.5 0-38.1-35.5-43.9-59.3-48.3zm-95.9 60.8c-.5-2-1.8-3.7-3.6-4.8s-3.9-1.5-5.9-1.1c-1.4 .3-2.8 .4-4.2 .4-7.8 0-12.5-6.1-12.5-14.2l0-51.2 20.3 0c2.2 0 4.2-.9 5.8-2.4s2.4-3.6 2.4-5.8l0-22.7c0-2.2-.9-4.2-2.4-5.8s-3.6-2.4-5.8-2.4l-20.3 0 0-30.2c0-2.2-.9-4.2-2.4-5.8s-3.6-2.4-5.8-2.4l-28.2 0c-2.2 0-4.2 .9-5.8 2.4s-2.4 3.6-2.4 5.8l0 30.2-15.1 0c-1.1 0-2.1 .2-3.1 .6s-1.9 1-2.6 1.8-1.4 1.7-1.8 2.6-.6 2-.6 3.1l0 22.7c0 1.1 .2 2.1 .6 3.1s1 1.9 1.8 2.6 1.7 1.4 2.6 1.8 2 .6 3.1 .6l15.1 0 0 63.7c0 27 15.4 41.3 43.9 41.3 12.2 0 21.4-2.2 27.6-5.4 1.6-.8 2.9-2.2 3.7-3.9s.9-3.6 .5-5.4l-5-19.3z\"]\n};\nvar faVine = {\n prefix: 'fab',\n iconName: 'vine',\n icon: [384, 512, [], \"f1ca\", \"M384 254.7l0 52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8-27.1-16.3-129.9-100.6-164.1-365.6l74.5 0c18.7 159.1 64.5 240.7 114.8 301.8 27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"]\n};\nvar faMedrt = {\n prefix: 'fab',\n iconName: 'medrt',\n icon: [576, 512, [], \"f3c8\", \"M129.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9-137.6 0-249-111-249-248S127.4 8 264.9 8c20.1 0 39.6 2.4 58.2 6.9-109.6 18.3-193.4 119.3-193.4 241.1zM427.1 356.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47s108.1-184.3 46.5-272.6c-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9zm-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8zM312 224c-4.4 0-8-3.6-8-8l0-40c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8 3.6-8 8l0 40c0 4.4-3.6 8-8 8l-40 0c-4.4 0-8 3.6-8 8l0 48c0 4.4 3.6 8 8 8l40 0c4.4 0 8 3.6 8 8l0 40c0 4.4 3.6 8 8 8l48 0c4.4 0 8-3.6 8-8l0-40c0-4.4 3.6-8 8-8l40 0c4.4 0 8-3.6 8-8l0-48c0-4.4-3.6-8-8-8l-40 0z\"]\n};\nvar faOsi = {\n prefix: 'fab',\n iconName: 'osi',\n icon: [512, 512, [], \"f41a\", \"M8 266.4c2.3-135.8 97.4-232.4 213.8-248.1 138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.6-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 1.5-9.7 1-19.6-1.5-29.1s-6.9-18.4-12.9-26.1-13.6-14.1-22.2-18.8-18.1-7.5-27.9-8.3c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6 .6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4 .8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3 .6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 15.6 9 28.2 22.3 36.2 38.4s11.2 34.2 9 52c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.3 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"]\n};\nvar faGg = {\n prefix: 'fab',\n iconName: 'gg',\n icon: [512, 512, [], \"f260\", \"M179.2 230.4l102.4 102.4-102.4 102.4-179.2-179.2 179.2-179.2 44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8l-102.4 102.4 102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8 179.2-179.2-179.2-179.2z\"]\n};\nvar faBuysellads = {\n prefix: 'fab',\n iconName: 'buysellads',\n icon: [448, 512, [], \"f20d\", \"M224 150.7l42.9 160.7-85.8 0 42.9-160.7zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM382.7 405.3l-94.5-298.7-128.4 0-94.5 298.7 90.7 0 111.7-91.6 24.2 91.6 90.8 0z\"]\n};\nvar faGooglePlus = {\n prefix: 'fab',\n iconName: 'google-plus',\n icon: [512, 512, [], \"f2b3\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM185.3 380c-32.9 0-64.4-13.1-87.7-36.3s-36.3-54.8-36.3-87.7 13.1-64.4 36.3-87.7 54.8-36.3 87.7-36.3c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1S142.3 334 185.3 334c32.6 0 64.9-19.1 70.1-53.3l-70.1 0 0-42.6 116.9 0c1.3 6.8 1.9 13.8 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zM415.5 273.8l0 35.5-35.5 0 0-35.5-35.5 0 0-35.5 35.5 0 0-35.5 35.5 0 0 35.5 35.2 0 0 35.5-35.2 0z\"]\n};\nvar faScreenpal = {\n prefix: 'fab',\n iconName: 'screenpal',\n icon: [512, 512, [], \"e570\", \"M278.6 22.5a22.5 22.5 0 1 1 -45 0 22.5 22.5 0 1 1 45 0zM198.7 259a57.4 57.4 0 1 1 114.8 0 57.4 57.4 0 1 1 -114.8 0zm138.6 91c22.3-19.9 36.5-47.3 39.9-77l119.5 0c-3.5 61.4-30.4 119.2-75.2 161.4-44.7 42.2-103.9 65.8-165.4 65.8S135.4 476.6 90.7 434.4C45.9 392.2 19.1 334.4 15.5 273l119.7 0c3.4 29.7 17.6 57.1 39.9 77s51.2 30.9 81.1 30.9c29 0 58.7-11 81.1-30.9zM28.3 141.7a22.5 22.5 0 1 1 45-1.4 22.5 22.5 0 1 1 -45 1.4zm455.6-.7a22.4 22.4 0 1 1 -44.9 0 22.4 22.4 0 1 1 44.9 0zM318 95.3c-17.3 13.8-39.2 22.8-61.9 22.8s-44.6-9-61.9-22.8c-17.3-14.7-28.8-35.1-32.4-57.5 15.1-6.4 30.8-11.3 46.9-14.5 0 12.6 5 24.6 13.9 33.5s20.9 13.9 33.5 13.9 24.6-5 33.5-13.9 13.9-20.9 13.9-33.5c16.1 3.2 31.8 8.1 46.9 14.5-3.6 22.4-15.1 42.8-32.4 57.5zM82.9 231c-21.4 7.6-44.7 7.4-65.9-.6 2-16.3 5.6-32.3 10.8-47.9 5.4 3.1 11.3 5.1 17.5 6 6.2 .8 12.4 .4 18.5-1.2 6-1.7 11.6-4.4 16.6-8.2s9.1-8.5 12.2-13.9 5.1-11.4 6-17.5c.8-6.2 .4-12.5-1.2-18.5s-4.4-11.6-8.2-16.6c-3.8-4.9-8.5-9.1-13.9-12.2 10.8-12.3 22.9-23.5 36-33.3 17.6 14.3 29.5 34.5 33.6 56.8s.1 45.4-11.2 65c-11.4 19.6-29.4 34.5-50.7 42.1zm346.4 .1c-21.3-7.6-39.3-22.6-50.7-42.2-11.3-19.6-15.2-42.7-11.1-65 4.1-22.2 16-42.4 33.5-56.7 13.1 9.8 25.2 21 36 33.3-10.7 6.4-18.4 16.7-21.5 28.8-3.2 12-2.3 24.8 4.8 35.6 6.2 10.8 16.4 18.7 28.4 22s24.9 1.7 35.7-4.3c5.3 15.5 8.9 31.6 10.9 47.8-22.1 8.1-44.6 8.3-66 .7z\"]\n};\nvar faBitcoin = {\n prefix: 'fab',\n iconName: 'bitcoin',\n icon: [512, 512, [], \"f379\", \"M8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm354.3-35.3c4.9-33-20.2-50.7-54.6-62.6l11.1-44.7-27.2-6.8-10.9 43.5c-7.2-1.8-14.5-3.5-21.8-5.1l10.9-43.8-27.2-6.8-11.2 44.7c-5.9-1.3-11.7-2.7-17.4-4.1l0-.1-37.5-9.4-7.2 29.1s20.2 4.6 19.8 4.9c11 2.8 13 10 12.7 15.8l-12.7 50.9c.8 .2 1.7 .5 2.8 .9-.9-.2-1.9-.5-2.9-.7l-17.8 71.3c-1.3 3.3-4.8 8.4-12.5 6.5 .3 .4-19.8-4.9-19.8-4.9l-13.5 31.1 35.4 8.8c6.6 1.7 13 3.4 19.4 5l-11.3 45.2 27.2 6.8 11.2-44.7c7.2 2 14.4 3.8 21.7 5.6l-11.1 44.5 27.2 6.8 11.3-45.1c46.4 8.8 81.3 5.2 96-36.7 11.8-33.8-.6-53.3-25-66 17.8-4.1 31.2-15.8 34.7-39.9zm-62.2 87.2c-8.4 33.8-65.3 15.5-83.8 10.9l14.9-59.9c18.4 4.6 77.6 13.7 68.8 49zm8.4-87.7c-7.7 30.7-55 15.1-70.4 11.3l13.5-54.3c15.4 3.8 64.8 11 56.8 43z\"]\n};\nvar faSwift = {\n prefix: 'fab',\n iconName: 'swift',\n icon: [448, 512, [], \"f8e1\", \"M448 156.1c0-4.5-.1-9-.2-13.5-.1-9.9-1-19.7-2.6-29.4-1.7-9.7-4.8-19.2-9.2-28-9-17.7-23.4-32.1-41.2-41.1-8.8-4.5-18.3-7.6-28-9.2-9.7-1.6-19.6-2.5-29.4-2.6-4.5-.1-9-.2-13.5-.2L124.1 32c-4.5 0-9 .1-13.5 .2-2.4 .1-4.9 .2-7.4 .3-7.4 .3-14.8 1.1-22.1 2.3-7.3 1.3-14.4 3.3-21.2 6.1-2.3 1-4.6 2-6.8 3.1-6.6 3.4-12.8 7.5-18.4 12.3-1.9 1.6-3.7 3.3-5.4 5-7 7-12.9 15-17.4 23.8-4.4 8.8-7.6 18.3-9.2 28-1.6 9.7-2.4 19.6-2.5 29.4-.1 4.5-.2 9-.2 13.5L0 355.9c0 4.5 .1 9 .2 13.5 .1 9.9 1 19.7 2.6 29.4 1.7 9.7 4.8 19.2 9.2 28 9 17.7 23.4 32.1 41.1 41.1 8.8 4.4 18.3 7.5 28 9.2 9.7 1.6 19.6 2.5 29.4 2.6 4.5 .1 9 .2 13.5 .2l199.8 0c4.5 0 9-.1 13.5-.2 9.9-.1 19.7-1 29.4-2.6 9.7-1.7 19.2-4.8 28-9.2 17.7-9 32.1-23.4 41.1-41.2 4.4-8.8 7.6-18.3 9.2-28 1.6-9.7 2.5-19.6 2.6-29.4 .1-4.5 .2-9 .2-13.5l0-183.8c0-5.4 0-10.7 0-16zm-69.9 241c-20-38.9-57.2-29.3-76.3-19.5-1.7 1-3.5 2-5.2 3l-.4 .2c-39.5 21-92.5 22.5-145.8-.4-43.4-18.8-80.1-50.3-105.3-90.4 12.3 9.1 25.4 16.9 39.2 23.4 56.4 26.4 113 24.5 153 0-57-43.8-104.6-101-141.1-147.2-7-8.1-13.2-16.8-18.8-25.9 43.7 40 112.7 90.2 137.5 104.1-52.6-55.5-98.9-123.9-96.7-121.7 82.8 83.4 159.2 130.6 159.2 130.6 2.9 1.6 5 2.8 6.7 4 1.6-4.1 3-8.2 4.2-12.5 13.2-48.3-1.7-103.6-35.3-149.2 76.8 46.1 122.2 133.7 103.6 207.8-.4 1.7-1 3.4-1.4 5.1 38.5 47.4 28 98.2 23.1 88.6l0 0z\"]\n};\nvar faFilesPinwheel = {\n prefix: 'fab',\n iconName: 'files-pinwheel',\n icon: [512, 512, [], \"e69f\", \"M253.5 246.4L137.2 130.2c-.6-.6-1-1.3-1.4-2s-.5-1.6-.5-2.4 .2-1.6 .5-2.4 .8-1.4 1.4-2L253.6 5.1c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3 2.1 1.3 2.8 2.3 1.1 2.2 1.1 3.5l0 232.5c0 1.3-.3 2.5-1 3.6s-1.7 1.9-2.9 2.4-2.5 .6-3.7 .3-2.4-.9-3.2-1.9zm40.3-4.4l0-134.4c0-.8 .1-1.6 .5-2.4s.8-1.5 1.3-2.1 1.3-1.1 2-1.4 1.6-.5 2.4-.5l134.4 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8 .6 2.4 .3 3.6-.9 2.3-1.7 3.2L304.3 246.4c-.9 .8-2 1.4-3.2 1.6s-2.4 .1-3.5-.4-2.1-1.3-2.8-2.3-1.1-2.2-1.1-3.4l.1 .1zm30.6 35c-1.2 0-2.5-.3-3.5-1s-1.9-1.6-2.4-2.8-.6-2.4-.4-3.6 .8-2.3 1.7-3.2L404 182.2c.6-.6 1.3-1 2-1.4s1.6-.5 2.4-.5 1.6 .2 2.4 .5 1.4 .8 2 1.4l84.4 84.2c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6-1.3 2.1-2.3 2.8-2.2 1.1-3.5 1.1l-168.5 0 .1-.1zm90.7 131l-95.3-95.2c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.7 1.3-2.1 2.4-2.8 2.3-1 3.5-1l95.2 0c1.7 0 3.2 .7 4.4 1.8s1.8 2.8 1.8 4.4l0 95.3c0 1.2-.4 2.5-1.1 3.5s-1.7 1.8-2.8 2.3-2.4 .6-3.6 .3-2.3-.9-3.2-1.7zM16.8 302.1l216.9 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8 .6 2.4 .3 3.6-.8 2.3-1.7 3.2L129.7 421.2c-.6 .6-1.3 1-2 1.4s-1.6 .5-2.4 .5-1.6-.2-2.4-.5-1.4-.8-2-1.4L12.3 312.8c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.6 1.3-2.1 2.3-2.8 2.3-1 3.5-1l0-.1zM264.3 465.3c0 .8-.2 1.6-.5 2.4s-.8 1.5-1.4 2-1.3 1-2 1.4-1.6 .5-2.4 .5l-128 0c-1.2 0-2.5-.4-3.5-1.1s-1.8-1.7-2.3-2.8-.6-2.4-.3-3.6 .8-2.3 1.7-3.2l128-128c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3 2.1 1.3 2.8 2.3 1.1 2.2 1.1 3.5l0 128zm40-132.5l82.8 82.7c.6 .6 1 1.3 1.4 2s.5 1.6 .5 2.4-.2 1.6-.5 2.4-.8 1.4-1.4 2L304.3 507c-.9 .9-2 1.5-3.2 1.7s-2.5 .1-3.6-.3-2.1-1.3-2.8-2.3-1.1-2.2-1.1-3.5l0-165.4c0-1.2 .4-2.5 1.1-3.5s1.7-1.8 2.8-2.3 2.4-.6 3.6-.3 2.3 .8 3.2 1.7zM79 122.4c0-1.2 .3-2.5 1-3.5s1.7-1.8 2.8-2.3 2.4-.6 3.6-.4 2.3 .8 3.2 1.7L238.1 266.4c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6-1.3 2.1-2.3 2.8-2.2 1.1-3.5 1.1l-148.4 0c-1.7 0-3.2-.7-4.4-1.8s-1.8-2.8-1.8-4.4l0-148.4-.1-.1z\"]\n};\nvar faLaravel = {\n prefix: 'fab',\n iconName: 'laravel',\n icon: [512, 512, [], \"f3bd\", \"M504.6 115.8c-.1-.2-.2-.5-.3-.7-.1-.4-.3-.8-.5-1.2-.2-.2-.3-.5-.5-.7-.2-.3-.5-.6-.7-.9-.2-.2-.5-.4-.8-.6-.3-.2-.6-.5-.9-.7L404.6 55.5c-1.2-.7-2.6-1.1-4-1.1s-2.8 .4-4 1.1L300.3 111c-.3 .2-.6 .4-.9 .7-.3 .2-.5 .4-.8 .6-.3 .3-.5 .6-.7 .9-.2 .2-.4 .4-.5 .7-.2 .4-.4 .8-.5 1.2-.1 .2-.2 .4-.3 .7-.2 .7-.3 1.4-.3 2.1l0 105.2-80.2 46.2 0-205.9c0-.7-.1-1.4-.3-2.1-.1-.2-.2-.4-.3-.7-.1-.4-.3-.8-.5-1.2-.1-.3-.4-.5-.5-.7-.2-.3-.5-.6-.7-.9-.2-.2-.5-.4-.8-.6-.3-.2-.6-.5-.9-.7L115.8 1.1c-1.2-.7-2.6-1.1-4-1.1s-2.8 .4-4 1.1L11.5 56.5c-.3 .2-.6 .4-.9 .7-.3 .2-.5 .4-.8 .6-.3 .3-.5 .6-.7 .9-.2 .3-.4 .5-.6 .7-.2 .4-.4 .8-.5 1.2-.1 .2-.2 .4-.3 .7-.2 .7-.3 1.4-.3 2.1l0 329.7c0 1.4 .4 2.8 1.1 4s1.7 2.2 2.9 2.9L204 510.9c.4 .2 .9 .4 1.3 .5 .2 .1 .4 .2 .6 .3 1.3 .4 2.8 .4 4.1 0 .2-.1 .4-.2 .6-.2 .5-.2 1-.3 1.4-.6L404.6 400.1c1.2-.7 2.2-1.7 2.9-2.9s1.1-2.6 1.1-4l0-105.3 92.2-53.1c1.2-.7 2.2-1.7 2.9-3s1.1-2.6 1.1-4l0-109.8c0-.7-.1-1.4-.2-2.1zM111.8 17.3l80.2 46.1-80.2 46.2-80.2-46.2 80.2-46.2zm88.2 60l0 201.3c-33.2 19.1-59.9 34.5-80.2 46.2l0-201.3C153 104.4 179.7 89 200 77.3zm0 412.8L23.5 388.5 23.5 77.3c20.3 11.7 47.1 27.1 80.2 46.2l0 215.2c0 .3 .1 .6 .1 .9 0 .4 .1 .8 .2 1.2 .1 .3 .2 .6 .4 .9 .1 .3 .3 .7 .4 1 .2 .3 .4 .5 .6 .8 .2 .3 .4 .6 .7 .8 .2 .2 .5 .4 .8 .6 .3 .2 .6 .5 .9 .7l92.2 52.2 .1 92.4zm8-106.2L128 338.6c54.7-31.5 113.5-65.3 176.3-101.5l80.1 46.1C355 300 296.2 333.5 208 383.9zm184.5 4.6l-176.5 101.6 0-92.3C317.4 340 376.2 306.4 392.5 297l0 91.4zm0-119.1c-20.3-11.6-47.1-27-80.2-46.1l0-91.4c20.3 11.7 47.1 27.1 80.2 46.2l0 91.3zm8-105.3l-80.2-46.2 80.2-46.2 80.2 46.1-80.2 46.2zm8 105.3l0-91.3c33.2-19.1 60-34.5 80.3-46.2l0 91.4-80.3 46.2z\"]\n};\nvar faWpforms = {\n prefix: 'fab',\n iconName: 'wpforms',\n icon: [448, 512, [], \"f298\", \"M448 75.2l0 361.7c0 24.3-19 43.2-43.2 43.2l-361.6 0C19.3 480 0 461.4 0 436.8L0 75.2C0 51.1 18.8 32 43.2 32l361.7 0c24 0 43.1 18.8 43.1 43.2zM410.7 436.8l0-361.6c0-3-2.6-5.8-5.8-5.8l-9.3 0-110.3 74.6-61.3-49.9-61.2 49.9-110.3-74.7-9.3 0c-3.2 0-5.8 2.8-5.8 5.8l0 361.7c0 3 2.6 5.8 5.8 5.8l361.7 0c3.2 .1 5.8-2.7 5.8-5.8zM150.2 186l0 37-73.5 0 0-37 73.5 0zm0 74.4l0 37.3-73.5 0 0-37.3 73.5 0zm11.1-147.3l54-43.7-118.5 0 64.5 43.7zm210 72.9l0 37-196 0 0-37 196 0zm0 74.4l0 37.3-196 0 0-37.3 196 0zM286.7 113.1l64.5-43.7-118.4 0 53.9 43.7zM371.3 335l0 37.3-99.4 0 0-37.3 99.4 0z\"]\n};\nvar faSpeakerDeck = {\n prefix: 'fab',\n iconName: 'speaker-deck',\n icon: [512, 512, [], \"f83c\", \"M213.9 296L100 296c-26.5 0-52-10.5-70.7-29.3S0 222.5 0 196 10.5 144 29.3 125.3 73.5 96 100 96l132.8 0c10.6 0 20.8 4.2 28.3 11.7s11.7 17.7 11.7 28.3-4.2 20.8-11.7 28.3-17.7 11.7-28.3 11.7L98 176c-26.5 0-26.4 40 0 40l113.8 0c26.5 0 52 10.5 70.7 29.3s29.3 44.2 29.3 70.7-10.5 52-29.3 70.7-44.2 29.3-70.7 29.3L40 416c-10.6 0-20.8-4.2-28.3-11.7S0 386.6 0 376 4.2 355.2 11.7 347.7 29.4 336 40 336l173.9 0c26.5 0 26.5-40 0-40zM298 416c13.5-9.2 25-21 33.8-34.7s14.7-29.2 17.3-45.3l64.6 0c2.6 0 5.2-.6 7.6-1.6s4.6-2.5 6.4-4.4 3.3-4.1 4.2-6.5 1.5-5 1.4-7.6l0-120c0-2.6-.5-5.2-1.4-7.6s-2.4-4.6-4.2-6.5-4-3.3-6.4-4.4-5-1.6-7.6-1.6l-117.2 0c9.7-11.1 15-25.3 15-40s-5.3-28.9-15-40l136.9 0c43.4 0 78.6 35.8 78.6 80l0 160c0 44.2-35.2 80-78.6 80L298 416z\"]\n};\nvar faFlickr = {\n prefix: 'fab',\n iconName: 'flickr',\n icon: [448, 512, [], \"f16e\", \"M400 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM144.5 192a63.5 63.5 0 1 1 0 127 63.5 63.5 0 1 1 0-127zm159 0a63.5 63.5 0 1 1 0 127 63.5 63.5 0 1 1 0-127z\"]\n};\nvar faCcVisa = {\n prefix: 'fab',\n iconName: 'cc-visa',\n icon: [576, 512, [], \"f1f0\", \"M470.1 231.3s7.6 37.2 9.3 45l-33.4 0c3.3-8.9 16-43.5 16-43.5-.2 .3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM152.5 331.2l63.2-155.2-42.5 0-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1l-64.7 0-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135 42.5 0zm94.4 .2l25.2-155.4-40.2 0-25.1 155.4 40.1 0zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2 .2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2 .1 69.7-20.8 70-53zM528 331.4l-32.4-155.4-31.1 0c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5 42.2 0s6.9-19.2 8.4-23.3l51.6 0c1.2 5.5 4.8 23.3 4.8 23.3l37.2 0z\"]\n};\nvar faUpwork = {\n prefix: 'fab',\n iconName: 'upwork',\n icon: [640, 512, [], \"e641\", \"M493.9 295.6c-50.3 0-83.5-38.9-92.8-53.9 11.9-95.3 46.8-125.4 92.8-125.4 45.5 0 80.9 36.4 80.9 89.7s-35.4 89.7-80.9 89.7l0-.1zm0-237.8c-81.9 0-127.8 53.4-141 108.4-14.9-28-25.9-65.5-34.5-100.3l-113.2 0 0 141c0 51.1-23.3 89-68.8 89s-71.6-37.8-71.6-89l.5-141-65.3 0 0 141c0 41.1 13.3 78.4 37.6 105.1 25 27.5 59.2 41.8 98.8 41.8 78.8 0 133.8-60.4 133.8-146.9l0-94.8c8.2 31.2 27.8 91.1 65.3 143.6l-35 199.4 66.4 0 23.1-141.3c7.6 6.3 15.7 12 24.2 17 22.2 14 47.7 21.9 73.9 22.8 0 0 4 .2 6.1 .2 81.2 0 145.9-62.9 145.9-147.8S575.3 57.9 494.1 57.9l-.2-.1z\"]\n};\nvar faKakaoTalk = {\n prefix: 'fab',\n iconName: 'kakao-talk',\n icon: [576, 512, [], \"e7d7\", \"M288 2.5c159.1 0 288 101.7 288 227.1 0 125.4-128.9 227.1-288 227.1-17.5 0-34.6-1.2-51.2-3.6-16.6 11.7-112.6 79.1-121.7 80.4 0 0-3.7 1.4-6.9-.4s-2.6-6.7-2.6-6.7C106.6 519.8 130.6 437.2 135 421.9 53.9 381.8 0 310.6 0 229.5 0 104.1 128.9 2.5 288 2.5zM86.2 161.7c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3l25.9 0 0 98.7c0 8.8 7.5 15.9 16.6 15.9s16.6-7.1 16.6-15.9l0-98.7 25.9 0c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3l-85.1 0zm140.8 0c-10.8 .2-19.3 8.4-22.1 16.4L165.2 282.7c-5 15.7-.6 21.5 3.9 23.6 3.2 1.5 6.9 2.3 10.6 2.3 6.9 0 12.2-2.8 13.8-7.3l8.2-21.6 50.7 0 8.2 21.5c1.6 4.5 6.9 7.3 13.8 7.3 3.7 0 7.3-.8 10.6-2.3 4.6-2.1 9-7.9 3.9-23.6L249.2 178.1c-2.8-8-11.3-16.2-22.2-16.4zm180.9 0c-9.2 0-16.6 7.5-16.6 16.6l0 113.7c0 9.2 7.5 16.6 16.6 16.6s16.6-7.5 16.6-16.6l0-36.2 5.8-5.8 38.9 51.6c3.2 4.2 8 6.6 13.3 6.6 3.6 0 7.1-1.1 10-3.3 3.5-2.7 5.8-6.6 6.4-11s-.5-8.8-3.2-12.3l-40.9-54.2 37.9-37.8c2.6-2.6 3.9-6.2 3.7-10.1-.2-3.9-2-7.6-4.9-10.5-3.1-3.1-7.3-4.9-11.4-4.9-3.6 0-6.8 1.3-9.2 3.7l-46.3 46.4 0-35.7c0-9.2-7.5-16.6-16.6-16.6zm-91.3 0c-9.3 0-16.9 7.5-16.9 16.6l0 112.8c0 8.4 7.1 15.2 15.9 15.3l53.3 0c8.8 0 15.9-6.9 15.9-15.3s-7.2-15.2-15.9-15.2l-35.3 0 0-97.6c0-9.2-7.6-16.6-17-16.6zm-73 88.6l-33.2 0 16.6-47.1 16.6 47.1z\"]\n};\nvar faFlutter = {\n prefix: 'fab',\n iconName: 'flutter',\n icon: [448, 512, [], \"e694\", \"M429.5 236.3L291.7 374.1 429.5 512 272 512c-36.1-36.1-82.1-82.1-137.9-137.9l137.9-137.8 157.5 0zM272 0L16 256 94.8 334.8 429.5 0 272 0z\"]\n};\nvar faBuffer = {\n prefix: 'fab',\n iconName: 'buffer',\n icon: [448, 512, [], \"f837\", \"M428.2 380.7L231.7 478.5c-2.3 1-4.8 1.5-7.3 1.5s-5-.5-7.3-1.5L20.5 380.7c-4-2-4-5.3 0-7.3L67.6 350c2.3-1 4.8-1.5 7.3-1.5s5 .5 7.3 1.5l134.8 67c2.3 1 4.8 1.5 7.3 1.5s5-.5 7.3-1.5l134.8-67c2.3-1 4.8-1.5 7.3-1.5s5 .5 7.3 1.5l47.1 23.4c4 2 4 5.2 0 7.2zm0-136.5l-47.1-23.4c-2.3-1-4.8-1.5-7.3-1.5s-5 .5-7.3 1.5L231.7 287.8c-2.3 1-4.8 1.5-7.3 1.5s-5-.5-7.3-1.5L82.3 220.7c-2.3-1-4.8-1.5-7.3-1.5s-5 .5-7.3 1.5L20.5 244.1c-4 2-4 5.3 0 7.3l196.5 97.8c2.3 1 4.8 1.5 7.3 1.5s5-.5 7.3-1.5l196.5-97.8c4-2 4-5.3 0-7.3zM20.5 130.4L217 220.7c4.7 1.9 10 1.9 14.7 0l196.5-90.3c4-1.9 4-4.9 0-6.7L231.7 33.4c-4.7-1.9-10-1.9-14.7 0L20.5 123.7c-4 1.8-4 4.9 0 6.7z\"]\n};\nvar faGratipay = {\n prefix: 'fab',\n iconName: 'gratipay',\n icon: [512, 512, [], \"f184\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM374.3 233.7L257.7 391.3 141.3 233.7c-9-12.3-19.7-52 14-74.3 29-18.7 56.4-4.3 70.7 12.3 16.4 18.5 48.1 17.4 63.7 0 14.3-16.6 41.7-31 70.3-12.3 34 22.3 23.3 61.9 14.2 74.3z\"]\n};\nvar faGooglePay = {\n prefix: 'fab',\n iconName: 'google-pay',\n icon: [640, 512, [], \"e079\", \"M105.7 215l0 41.2 57.1 0c-1.2 6.6-3.6 12.9-7.2 18.5s-8.4 10.4-13.9 14.1c-9.5 6.6-21.7 10.3-36 10.3-27.6 0-50.9-18.9-59.3-44.2-4.4-13.3-4.4-27.7 0-41 8.4-25.5 31.7-44.4 59.3-44.4 7.5-.1 14.9 1.2 21.9 4s13.3 6.9 18.6 12.1L176.5 155c-19.1-18.1-44.4-28.1-70.7-27.8-19.7 .1-38.9 5.7-55.6 16.1s-30.1 25.3-38.8 43C3.9 201.2 0 217.7 0 234.4s3.9 33.2 11.3 48.1l0 .2c8.7 17.7 22.1 32.5 38.8 43s35.9 16 55.6 16c28.5 0 52.5-9.5 70-25.9 20-18.6 31.4-46.2 31.4-78.9 0-7.3-.6-14.6-1.8-21.8l-99.7 0zm389.4-4c-10.1-9.4-23.9-14.1-41.4-14.1-22.5 0-39.3 8.3-50.5 24.9L424.1 235c7.6-11.3 18.1-17 31.3-17 8.4 0 16.5 3.2 22.7 8.8 3 2.6 5.5 5.9 7.1 9.6s2.5 7.6 2.5 11.7l0 5.5c-9.1-5.1-20.6-7.8-34.6-7.8-16.4 0-29.6 3.9-39.5 11.8s-14.8 18.3-14.8 31.6c-.2 5.9 1 11.8 3.4 17.2s6 10.2 10.5 14.1c9.2 8.3 21 12.5 34.8 12.5 16.3 0 29.2-7.3 39-21.9l1 0 0 17.7 22.6 0 0-78.7c.1-16.6-4.9-29.7-15-39zm-19.2 89.3c-3.5 3.5-7.6 6.3-12.2 8.2s-9.5 2.9-14.4 2.9c-6.7 .1-13.1-2.1-18.3-6.2-2.4-1.8-4.4-4.2-5.7-6.9s-2-5.7-2-8.7c0-7 3.2-12.8 9.5-17.4s14.5-7 24.1-7c13.2-.2 23.5 2.8 30.8 8.8 0 10.1-4 18.9-11.7 26.4zm-93.7-142c-5.3-5.3-11.6-9.5-18.6-12.3s-14.4-4.2-21.9-4l-62.7 0 0 186.7 23.6 0 0-75.6 39 0c16 0 29.5-5.4 40.5-15.9 .9-.9 1.8-1.8 2.6-2.7 9.6-10.5 14.8-24.4 14.3-38.6s-6.6-27.7-16.9-37.6l0 0zm-16.6 62.2c-3 3.2-6.6 5.7-10.6 7.4s-8.4 2.5-12.7 2.3l-39.6 0 0-65.2 39.6 0c8.5 0 16.6 3.3 22.6 9.2 6.1 6.1 9.6 14.3 9.8 23s-3.1 17-9 23.3l0 0zM614.3 201l-36.5 91.7-.5 0-37.4-91.7-25.7 0 51.8 119.6-29.4 64.3 24.3 0 79-183.9-25.7 0z\"]\n};\nvar faApple = {\n prefix: 'fab',\n iconName: 'apple',\n icon: [384, 512, [], \"f179\", \"M319.1 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7-55.8 .9-115.1 44.5-115.1 133.2 0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zM262.5 104.5c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"]\n};\nvar faTumblr = {\n prefix: 'fab',\n iconName: 'tumblr',\n icon: [320, 512, [], \"f173\", \"M309.9 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6l0-144-47.5 0c-5.5 0-10-4.5-10-10l0-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1 .8-11 6.5-16.3 16.1-16.3l70.9 0c5.5 0 10 4.5 10 10l0 115.2 83 0c5.5 0 10 4.4 10 9.9l0 81.7c0 5.5-4.5 10-10 10l-83.4 0 0 133.2c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5 .9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"]\n};\nvar faPhoenixSquadron = {\n prefix: 'fab',\n iconName: 'phoenix-squadron',\n icon: [512, 512, [], \"f511\", \"M96 63.4c46.5-36.1 105.6-56.1 164.5-54.6 29.6-.4 59.1 5.4 86.9 15.3-24.1-4.6-49-6.3-73.4-2.5-42.9 5.3-83 27.2-111.8 59.2 5.7-1 10.8-3.7 16-5.9 18.1-7.9 37.5-13.3 57.2-14.8 19.7-2.1 39.6-.4 59.3 1.9-14.4 2.8-29.1 4.6-43 9.6-34.4 11.1-65.3 33.2-86.3 62.6-13.8 19.7-23.6 42.9-24.7 67.1-.4 16.5 5.2 34.8 19.8 44 11.2 6.8 24.6 9.2 37.5 6.7 15.4-2.5 30.1-8.6 43.6-16.3 11.5-6.8 22.7-14.6 32-24.3 3.8-3.2 2.5-8.4 2.6-12.8-2.1-.3-4.4-1.1-6.3 .3-11.4 6.3-23.4 11.4-35.8 15.4-20 6.2-42.2 8.5-62.1 .8 12.8 1.7 26.1 .3 37.7-5.4 20.2-9.7 36.8-25.2 54.4-38.8 27.7-21.3 57.5-39.9 88.9-55.3 25.7-12 52.9-22.8 81.6-24.1-15.6 13.7-32.1 26.5-46.8 41.4-14.5 14-27.5 29.5-40.1 45.2-3.5 4.6-9 6.9-13.6 10.2-22.4 15-40.3 35.8-51.9 60.1-9.3 19.7-14.5 41.9-11.8 63.6 1.9 13.7 8.7 27.6 20.9 34.9 12.9 8 29 8.1 43.5 5.1 32.8-7.4 61.4-28.9 81-55.8 20.4-27.5 30.5-62.2 29.2-96.3-.5-7.5-1.6-15-1.7-22.5 8 19.5 14.8 39.7 16.6 60.8 2 14.3 .7 28.8-1.6 42.9-1.9 11-5.7 21.5-7.8 32.4 20.4-22.9 34-50.9 39.3-81.1 5.6-35.5 .7-71.9-14.2-104.6 20.8 32 32.3 69.6 35.7 107.5 .5 12.7 .5 25.5 0 38.2-2.8 34.3-12.9 67.6-29.6 97.8-26.1 47.3-68 85.6-117.2 108-78.3 36.2-174.7 31.3-248-14.7-39-23.8-70.6-58-91.4-98.7-14.7-28.9-23.3-60.5-25.4-92.9l0-31.3C3.9 172 40.9 105.8 96 63.4zm222 80.3c5.5-.9 10.8-2.4 16-4.5 5-1.8 9.2-5.9 10.3-11.2-9 5-18 9.9-26.3 15.7z\"]\n};\nvar faCentercode = {\n prefix: 'fab',\n iconName: 'centercode',\n icon: [512, 512, [], \"f380\", \"M201.8 254.8a64.1 64.1 0 1 1 127.4 13.8 64.1 64.1 0 1 1 -127.4-13.8zm41.6 248.9C96.7 496-8.2 365.5 10.1 224.3 21.3 137.7 75.9 67.4 149.2 32.3 310.2-44.8 498.9 69.7 503.9 248.9 508 395.9 385.5 511.1 243.4 503.7zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"]\n};\nvar faDebian = {\n prefix: 'fab',\n iconName: 'debian',\n icon: [448, 512, [], \"e60b\", \"M380.4 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4-30-13.8-76.1-16.2-97.3-5.8 1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7-3.5 3.4 1.7 2 5.8 .9s7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17 .8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8-4.3 8.1-7.9 14.9-8.7 21.3-.3 5.1-1 11-1.7 17.3-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5 .2 .4 .4 .8 .5 1.1 1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9 4.4 .4 9.3 .9 18.7 24.2-2.7-.9-5.5-1.9-9.4-7.2-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8 1 .9 2.1 1.9 3.1 2.9-11.9-6.5 3.2 13.7 11.9 25.2 .8 1.1 1.5 2 2.2 2.9 1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2 2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3 10.7 3.7 16.6 4.7 22.7 5.8 .3 0 .6 .1 .9 .1 5.4 .8 11.2 1.8 20.8 4.5-1.1-.1-2.2-.1-3.3-.1-2.3-.1-4.7-.1-7-.1-14.4-.2-29.2-.4-42.7-5.2-96.6-25.7-184.9-139-178.4-255.6-.6-9.9-.3-20.9 0-30.7 .4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2 0-.1c.4 .4 3.4 3.4 8.8-5.8 .8-1.8 1.6-3.7 2.4-5.6 .5-1.1 .9-2.2 1.4-3.2 2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7-3.4 3.8 2.2 2.7 10 1 4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6 8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2-5.6 .8-12.3 3-11.2 3.8 7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1 3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2 .3 .5 .5 1 .7 1.4 .1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1 1.7-.7-2.7-4.7-6.4-8.2l-.1-.1c-.2-.1-.3-.3-.5-.4 32.2 17.3 67.3 54.1 78 93.5-6-11.1-5.2-5.5-4.3 .5 .6 4 1.2 8.1-.2 7.5 4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3-.4 4.3-2.8 3.9-5.2 3.5l-.1 0c-3.3-.6-6.2-1.1-1.9 12.6 2.6 3.8 3.1 2.4 3.5 1.1 .5-1.5 .9-2.7 4.7 5.2 .1 4.1 1 8.2 2.1 12.7l.1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4-1.1-.2-2.3-2.2-3.4-4.2-1.4-2.4-2.8-4.7-3.7-3.2 2.4 11.5 6.5 17.4 8 18.3-.3 .6-.6 .7-1.1 .7-.8 0-1.8 .1-1.9 5.3 .7 13.7 3.3 12.5 5.3 11.6 .6-.3 1.2-.6 1.7-.4-.6 2.5-1.6 5.1-2.7 7.9-2.8 7.1-6 15.4-3.4 26.1-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5-.3-.8-.6-1.6-.9-2.3-.6 4.4-.3 7.7-.1 10.6l0 .7c.4 5.3 .7 10-3 19.9 4.3-14.2 3.8-26.9-.2-20.8 1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8 1.7-2.9 1.3-3.6 1-4.2-.4-.8-.7-1.5 1.7-5.1-1.6 .1-5.5 3.9-10.1 8.5-3.9 3.9-8.5 8.4-12.8 11.8-37.5 30.1-82.3 34-125.6 17.8 .2-1-.2-2.1-3.1-4.1-36.8-28.2-58.5-52.1-50.9-107.5 2.1-1.6 3.6-5.8 5.3-10.8l.2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8 7.8-17.3 31.3-33.3 56.4-33.7 25.6-1.4 47.2 13.7 58.1 27.9-19.8-18.4-52.1-24-79.7-10.4-28.2 12.7-45 43.8-42.5 74.7 .3-.4 .6-.6 .9-.8l.2-.2c.6-.5 1.1-.9 1.4-3.3-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1c2.2-2.1 4.7-4.5 8.9-7.3-.3 .7-1.3 1.7-2.4 2.7-2.2 2.1-4.6 4.5-1.6 4.6 5-1.3 18.5-13.4 28.5-22.3 .6-.5 1.2-1 1.7-1.5 1.5-1.3 2.8-2.5 4-3.6l.3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6 .2-.6 .5-1.2 .7-1.8l-.4-.2-.1-.1zM248 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2-12.2-5.7-23.4-14.3-32.6-24.9 4.9 7.1 10.1 14.1 17 19.5-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5 19.8 35.5 80.5 62.3 112.3 49-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4 1.4-5.8 5.4-10.7 4.4 4.6-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5 .2-2-1.2-2.4-2.6-2.8-2.9-.8-5.9-1.6 5.6-16.1-.5 1.9-2.1 4.6-3.7 7.3l-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8l.1 0zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1-2.5 2.4-5.2 4.8-8.3 7.2-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9 .1 0zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l1 2zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3 7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.8 110.6c.4 .8 1.4 .5 2.3 .3 1.9-.5 3.6-.9-.1 7.6-.5 .3-1 .7-1.5 1-1.4 .9-2.8 1.9-3.9 3 1.9-3.8 3.5-7.4 3.2-11.9zM25.5 152.3c-.7 3.7-1.5 7.9-3.4 13.9 .2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8-.3 1.2-.5 2.5-.7 3.8l0 .1z\"]\n};\nvar faMastodon = {\n prefix: 'fab',\n iconName: 'mastodon',\n icon: [448, 512, [], \"f4f6\", \"M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.6-.9-9.3-.9-13.9 85.6 20.9 158.7 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zM357.9 304.3l-46.6 0 0-114.2c0-49.7-64-51.6-64 6.9l0 62.5-46.3 0 0-62.5c0-58.5-64-56.6-64-6.9l0 114.2-46.7 0c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175l0 0z\"]\n};\nvar faSketch = {\n prefix: 'fab',\n iconName: 'sketch',\n icon: [512, 512, [], \"f7c6\", \"M27.8 162.2l-18.5 24.9 90.5 0 6.9-130.7-78.9 105.8zM396.6 45.7L268 32 403.7 179.2 396.6 45.7zM112.5 218.3l-11.2-22-91.1 0 224.9 261.7-122.6-239.7zm2-31.2l284 0C340.6 124.3 293.3 72.9 256.6 33L114.5 187.1zm297.3 9.1l-133.9 261.8 224.8-261.7-90.9 0 0-.1zM415.7 69l-9.4-12.6 .9 17.3 6.1 113.4 90.3 0-87.9-118.1zM113.8 93.5L109.2 179.1 245 32 116.4 45.7 113.8 93.5zM401.5 196.2l-290 0c18.2 35.6 66.6 130.2 145.1 283.8L401.5 196.2z\"]\n};\nvar faWebAwesome = {\n prefix: 'fab',\n iconName: 'web-awesome',\n icon: [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52l.1 0z\"]\n};\nvar faSass = {\n prefix: 'fab',\n iconName: 'sass',\n icon: [640, 512, [], \"f41e\", \"M301.8 378.9l0 0zm249.1-87c-20.1 0-40 4.6-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.3 5.9c-2.3 6.2-4.1 12.6-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.9 77.3-42.1 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4 .8-.7 1.3-.9 1.7 .3-.5 .5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7l0 .1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4 .3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.3-35.4 189.8-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8 61.8-23.8 109.9-90.1 95.8-145.6-14.4-56.4-107.9-74.9-196.3-43.5-52.7 18.7-109.7 48.1-150.7 86.4-48.7 45.6-56.5 85.3-53.3 101.9 11.4 58.9 92.6 97.3 125.1 125.7-1.6 .9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3l0 .1s.2-.4 .7-1.2c1-1.5 1.5-2.4 1.5-2.4l0-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5 1.5 8.7 3.6 17.3 6.2 25.8 2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2 0 .1 0 .1 .1 .2-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 7.2-2.6 14-6.1 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6 1.5 8.7 3.6 17.3 6.2 25.8 2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 7.7-2.6 15-6.3 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1l0 0zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3-11.9-6.9-7.2-36.5 15.5-57.9 13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9 .8-.5 1.2-.7 1.2-.7 .9-.6 1.9-1.1 2.9-1.7 8.3 30.4 .3 57.2-19.1 78.3l0 0zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5 .1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8l0 0zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.5 1.8 7.1 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4l0 0z\"]\n};\nvar faThreema = {\n prefix: 'fab',\n iconName: 'threema',\n icon: [384, 512, [], \"e85f\", \"M87.4 445.1c18.5 0 33.5 15 33.5 33.4S105.9 512 87.4 512 54 497 54 478.5 69 445.1 87.4 445.1zm109.2 0c18.5 0 33.5 15 33.5 33.4s-15 33.5-33.5 33.5-33.4-15-33.4-33.5 15-33.4 33.4-33.4zm109.3 0c18.5 0 33.5 15 33.5 33.4s-15 33.5-33.5 33.5-33.5-15-33.5-33.5 15-33.4 33.5-33.4zM192.3 .3c109.8 0 199.2 89.3 199.2 199.1S302.2 398.5 192.4 398.5c-40.5 0-78.1-12.1-109.6-32.9l-76.5 24.5 24.8-74C7.3 283.4-6.8 243-6.8 199.4-6.8 89.7 82.5 .3 192.3 .3zm.1 93.7c-31.6 0-57.3 25.8-57.3 57.3l0 26.7-1.8 0c-10 0-18 8-18 18l0 72.3c0 10 8 18 18 18l118.1 0c10 0 18-8 18-18l.1 0 0-72.3c0-10-8.1-18-18-18l-1.8 0 0-26.7c0-31.6-25.8-57.3-57.3-57.3zm-.1 23.5c18.6 0 33.8 15.1 33.8 33.8l0 26.7-67.6 0 0-26.7c0-18.6 15.1-33.8 33.8-33.8z\"]\n};\nvar faSquareWhatsapp = {\n prefix: 'fab',\n iconName: 'square-whatsapp',\n icon: [448, 512, [\"whatsapp-square\"], \"f40c\", \"M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4l.1 0c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9-36.8-15.9-61.8-51.5-66.9-58.7-.4-.6-.7-.9-.8-1.1-2-2.6-16.2-21.5-16.2-41 0-18.4 9-27.9 13.2-32.3 .3-.3 .5-.5 .7-.8 3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6 .1l.8 0c2.3 0 5.2 0 8.1 6.8 1.2 2.9 3 7.3 4.9 11.8 3.3 8 6.7 16.3 7.3 17.6 1 2 1.7 4.3 .3 6.9-3.4 6.8-6.9 10.4-9.3 13-3.1 3.2-4.5 4.7-2.3 8.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1 2.8 1.4 4.7 2.3 5.5 3.6 .9 1.9 .9 9.9-2.4 19.1-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM148.1 393.9L64 416 86.5 333.8c-13.9-24-21.2-51.3-21.2-79.3 .1-87.4 71.2-158.5 158.6-158.5 42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5-26.6 0-52.7-6.7-75.8-19.3z\"]\n};\nvar faWhatsappSquare = faSquareWhatsapp;\nvar faSkype = {\n prefix: 'fab',\n iconName: 'skype',\n icon: [448, 512, [], \"f17e\", \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7-19-14.7-42.6-23.4-68.3-23.4-61.8 0-112 50.2-112 112 0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zM230.1 391.3c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"]\n};\nvar faAngular = {\n prefix: 'fab',\n iconName: 'angular',\n icon: [448, 512, [], \"f420\", \"M185.7 268.1l76.2 0-38.1-91.6-38.1 91.6zM223.8 32L16 106.4 47.8 382.1 223.8 480 399.8 382.1 431.6 106.4 223.8 32zM354 373.8l-48.6 0-26.2-65.4-110.6 0-26.2 65.4-48.7 0 130.1-292.3 130.2 292.3z\"]\n};\nvar faCircleZulip = {\n prefix: 'fab',\n iconName: 'circle-zulip',\n icon: [512, 512, [], \"e851\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM243.5 240c1.2-1.9-.9-4.2-2.6-2.8l-89 79.5c-9.2 7.2-15.2 19.1-15.2 32.5 0 21.9 16 39.8 35.7 39.8l167.3 0c19.6 0 35.7-17.9 35.7-39.8 0-21.9-16.1-39.7-35.7-39.8l-126.6 0c-1.9 0-3-2.3-2.1-4.1L243.5 240zM172.4 123.1c-19.6 0-35.7 17.9-35.7 39.8s16 39.8 35.7 39.8l126.6 0c1.9 0 3.1 2.2 2.2 4.1L268.5 272c-1.2 1.9 .9 4.2 2.6 2.8l89-79.5c9.2-7.2 15.2-19.1 15.2-32.5 0-21.9-16-39.7-35.7-39.8l-167.3 0z\"]\n};\nvar faOpensuse = {\n prefix: 'fab',\n iconName: 'opensuse',\n icon: [640, 512, [], \"e62b\", \"M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7-5.5 13.3-12.6 43.3-5.5 71.4 3.3 12.8 8.9 24.9 16.5 35.7 17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2 .3 27.8 24.3 42.6 41.5 42.6 5.4 0 10.7-.9 15.8-2.7 6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9 .5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14l0-.1c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3l45.9 0c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3l48.6 0c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5 .4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3 .5-76.2-25.4-81.6-28.2-.3-.4 .1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7 .8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3 .1-.1-.9-.3-.9 .7zm60.4 72.8a37.6 37.6 0 1 1 75.2 2.6 37.6 37.6 0 1 1 -75.2-2.6zm38.6-25.3c-3.6-.3-7.1 .1-10.5 1.2s-6.5 2.9-9.2 5.3-4.8 5.3-6.3 8.5-2.4 6.7-2.5 10.3 .5 7.1 1.8 10.4 3.3 6.3 5.8 8.9 5.5 4.5 8.8 5.9 6.9 2 10.4 1.9c3.6 .3 7.1-.1 10.5-1.2s6.5-2.9 9.2-5.3 4.8-5.3 6.3-8.5 2.4-6.7 2.5-10.3-.5-7.1-1.8-10.4-3.3-6.3-5.8-8.9-5.5-4.5-8.8-5.9-6.9-2-10.4-1.9zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6z\"]\n};\nvar faDropbox = {\n prefix: 'fab',\n iconName: 'dropbox',\n icon: [576, 512, [], \"f16b\", \"M288.4 116.3l-132 84.3 132 84.3-132 84.3-132.4-85.1 132.3-84.3-132.3-83.5 132.3-84.3 132.1 84.3zM155.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zM288.4 284.1l132-84.3-132-83.6 131.3-84.2 132.3 84.3-132.3 84.3 132.3 84.2-132.3 84.3-131.3-85z\"]\n};\nvar faDeezer = {\n prefix: 'fab',\n iconName: 'deezer',\n icon: [512, 512, [], \"e077\", \"M14.8 101.1C6.6 101.1 0 127.6 0 160.3s6.6 59.2 14.8 59.2 14.8-26.5 14.8-59.2-6.6-59.2-14.8-59.2zM448.7 40.9c-7.7 0-14.5 17.1-19.4 44.1-7.7-46.7-20.2-77-34.2-77-16.8 0-31.1 42.9-38 105.4-6.6-45.4-16.8-74.2-28.3-74.2-16.1 0-29.6 56.9-34.7 136.2-9.4-40.8-23.2-66.3-38.3-66.3s-28.8 25.5-38.3 66.3c-5.1-79.3-18.6-136.2-34.7-136.2-11.5 0-21.7 28.8-28.3 74.2-6.6-62.5-21.2-105.4-37.8-105.4-14 0-26.5 30.4-34.2 77-4.8-27-11.7-44.1-19.4-44.1-14.3 0-26 59.2-26 132.1S49 305.2 63.3 305.2c5.9 0 11.5-9.9 15.8-26.8 6.9 61.7 21.2 104.1 38 104.1 13 0 24.5-25.5 32.1-65.6 5.4 76.3 18.6 130.4 34.2 130.4 9.7 0 18.6-21.4 25.3-56.4 7.9 72.2 26.3 122.7 47.7 122.7s39.5-50.5 47.7-122.7c6.6 35 15.6 56.4 25.3 56.4 15.6 0 28.8-54.1 34.2-130.4 7.7 40.1 19.4 65.6 32.1 65.6 16.6 0 30.9-42.3 38-104.1 4.3 16.8 9.7 26.8 15.8 26.8 14.3 0 26-59.2 26-132.1S463 40.9 448.7 40.9zm48.5 60.2c-8.2 0-14.8 26.5-14.8 59.2s6.6 59.2 14.8 59.2 14.8-26.5 14.8-59.2-6.6-59.2-14.8-59.2z\"]\n};\nvar faCreativeCommonsSampling = {\n prefix: 'fab',\n iconName: 'creative-commons-sampling',\n icon: [512, 512, [], \"f4f0\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6s10.6 4.7 10.6 10.6c0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6l58 0 0 21.3-50.9 0-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9 .6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9 .5 6.7-5.8-87.7L255 383.9c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12L228 296.6c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6-4.9 56.7c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L157.7 272c-2 4-3.5 8.4-11.1 8.4l-51.4 0 0-21.3 44.8 0 13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6 .5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6 .6 0 10.6 .7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"]\n};\nvar faJediOrder = {\n prefix: 'fab',\n iconName: 'jedi-order',\n icon: [448, 512, [], \"f50e\", \"M398.9 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9 0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7S59.1 388.6 144.9 230.2c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7l4.1 0c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"]\n};\nvar faRProject = {\n prefix: 'fab',\n iconName: 'r-project',\n icon: [576, 512, [], \"f4f7\", \"M578.5 226.6C578.5 119.1 448.4 32 288 32S-2.5 119.1-2.5 226.6c0 95.8 103.3 175.4 239.4 191.5l0 61.9 99.1 0 0-61.5c24.3-2.7 47.6-7.4 69.4-13.9l40.1 75.4 112 0-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zM111.7 241.1c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9l-199 0 0 208.3c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3l0-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5l26.6 0c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9l0-22.1z\"]\n};\nvar faInstalod = {\n prefix: 'fab',\n iconName: 'instalod',\n icon: [512, 512, [], \"e081\", \"M153.6 480l233.7 0 115.4-204.2-298.3 57.4-50.8 146.8zM505 240.1L387.4 32 155.9 32 360.5 267.9 505 240.1zM124.6 48.8L7.5 256 123.5 461.2 225.9 165.6 124.6 48.8z\"]\n};\nvar faCanadianMapleLeaf = {\n prefix: 'fab',\n iconName: 'canadian-maple-leaf',\n icon: [512, 512, [], \"f785\", \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5-5.1-7.5-42.7-79.8-42.7-79.8s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3s-12.5 27.3-15 32.3-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167S43 226.7 45.5 234.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512l30 0s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"]\n};\nvar faEthereum = {\n prefix: 'fab',\n iconName: 'ethereum',\n icon: [320, 512, [], \"f42e\", \"M311.9 260.8L160 353.6 8 260.8 160 0 311.9 260.8zM160 383.4L8 290.6 160 512 312 290.6 160 383.4z\"]\n};\nvar faHouzz = {\n prefix: 'fab',\n iconName: 'houzz',\n icon: [448, 512, [], \"f27c\", \"M276 330.7l-104.6 0 0 149.3-154.3 0 0-448 109.5 0 0 104.5 305.1 85.6 0 257.9-155.7 0 0-149.3z\"]\n};\nvar faViber = {\n prefix: 'fab',\n iconName: 'viber',\n icon: [512, 512, [], \"f409\", \"M444.3 49.9c-12.7-11.7-64.1-49-178.7-49.5 0 0-135.1-8.1-200.9 52.3-36.6 36.6-49.5 90.3-50.9 156.8s-3.1 191.1 117 224.9l.1 0-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM458.2 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9 .4-85.7 .4-85.7l0 0C43.4 372.7 49.4 266.6 50.5 211.1s11.6-101 42.6-131.6c55.7-50.5 170.4-43 170.4-43 96.9 .4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9 .6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4 .7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5 .9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9 .1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7 .5 133 51.4 133.7 139.2zM375.2 329l0 .2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8l.2 0c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1 .8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"]\n};\nvar faKickstarter = {\n prefix: 'fab',\n iconName: 'kickstarter',\n icon: [448, 512, [\"square-kickstarter\"], \"f3bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320.8 233l-23.3 23.1 23.3 22.9c24.1 23.9 24.1 63 0 86.9s-63.4 23.9-87.6 0l-8.5-8.4c-11.3 16-29.7 26.5-50.9 26.5-34.1 0-61.9-27.5-61.9-61.4l0-133.2c0-33.8 27.7-61.4 61.9-61.4 21.1 0 39.6 10.5 50.9 26.5l8.5-8.4c24.1-23.9 63.4-23.9 87.6 0s24.1 63 0 86.9z\"]\n};\nvar faSquareKickstarter = faKickstarter;\nvar faSpotify = {\n prefix: 'fab',\n iconName: 'spotify',\n icon: [512, 512, [], \"f1bc\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM356.7 372.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"]\n};\nvar faLeanpub = {\n prefix: 'fab',\n iconName: 'leanpub',\n icon: [576, 512, [], \"f212\", \"M386.6 111.5l15.1 249-11-.3c-36.2-.8-71.6 8.8-102.7 28-31-19.2-66.4-28-102.7-28-45.6 0-82.1 10.7-123.5 27.7L93.2 129.6c28.5-11.8 61.5-18.1 92.2-18.1 41.2 0 73.8 13.2 102.7 42.5 27.7-28.3 59-41.7 98.5-42.5zM569.2 448c-25.5 0-47.5-5.2-70.5-15.6-34.3-15.6-70-25-107.9-25-39 0-74.9 12.9-102.7 40.6-27.7-27.7-63.7-40.6-102.7-40.6-37.9 0-73.6 9.3-107.9 25-22.2 9.9-44.7 15.6-69.2 15.6L7 448 49.6 98.9c39.3-22.2 87-34.9 132.3-34.9 37.1 0 75.2 7.7 106.2 29.1 31-21.4 69.2-29.1 106.2-29.1 45.3 0 93 12.6 132.3 34.9L569.2 448zm-43.4-44.7L491.8 123c-30.7-14-67.2-21.4-101-21.4-38.4 0-74.4 12.1-102.7 38.7-28.3-26.6-64.2-38.7-102.7-38.7-33.8 0-70.3 7.4-101 21.4l-34 280.2c47.2-19.5 82.9-33.5 135-33.5 37.6 0 70.8 9.6 102.7 29.6 31.8-20 65.1-29.6 102.7-29.6 52.2 0 87.8 14 135 33.5z\"]\n};\nvar faJava = {\n prefix: 'fab',\n iconName: 'java',\n icon: [384, 512, [], \"f4e4\", \"M277.8 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8 103.7-81.8 50.5-135 50.5-135 21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zM307 104.6c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9C216 188.1 195.4 169.3 307 104.6zm-6.1 270.5c-.5 1-1.2 1.8-2 2.6 128.3-33.7 81.1-118.9 19.8-97.3-3.3 1.2-6.2 3.4-8.2 6.3 3.6-1.3 7.3-2.3 11-3 31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6 .7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8zM124.5 396c-78.7 22 47.9 67.4 148.1 24.5-9.8-3.8-19.2-8.4-28.2-13.8-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.7 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9-7.8-2.8-15-7.1-21.1-12.8z\"]\n};\nvar faNfcSymbol = {\n prefix: 'fab',\n iconName: 'nfc-symbol',\n icon: [512, 512, [], \"e531\", \"M360.9 32.4c7.7-1.3 15.7 .5 21.2 5 84.1 58.7 129.9 136.3 129.9 217.7 0 83.1-45.8 160.8-129.9 219.5-4.8 4-11.7 5.9-18.6 5.3-7-.6-13.5-3.6-18.4-8.5L161.7 288.7c-5.6-5.5-8.7-13-9.6-20.9 0-7.8 4-15.3 9.5-20.9 5.6-5.5 13.1-8.7 20.9-8.7 7.9 0 15.4 3.1 20.9 8.6L368.5 411.2c54.6-44.7 84.3-99.2 84.3-156.1 0-61.6-36.9-122.2-103.9-169.3-6.4-4.5-10.8-11.4-12.1-19.1-1.4-7.7 .4-15.7 5-22.1 4.5-6.4 11.4-10.8 19.1-12.1zm-206 447.2c-7.7 1.3-15.6-.5-22.1-5-83.1-58.7-129-136.4-129-219.5 0-81.4 45.8-159 129-217.7 5.7-4 12.6-5.9 19.6-5.3 6.9 .6 13.4 3.6 18.3 8.5L354.1 223.3c5.6 5.5 8.7 13 8.7 20.9 .1 6.9-3 15.3-8.6 20.9-5.5 5.5-13 8.7-20.9 8.7-7.8 0-16.2-3.1-20.9-8.6L147.3 100.7c-54.6 45.2-84.3 99.2-84.3 154.4 0 63.4 36.9 124 103.1 171.1 7.3 4.6 11.6 11.4 13 19.2 1.3 7.7-.5 15.7-5 22.1s-11.4 10.7-19.2 12.1z\"]\n};\nvar faWodu = {\n prefix: 'fab',\n iconName: 'wodu',\n icon: [640, 512, [], \"e088\", \"M178.4 339.7l-37.3 0-28.9-116.2-.5 0-28.5 116.2-38 0-45.2-170.8 37.5 0 27 116.2 .5 0 29.7-116.2 35.2 0 29.2 117.7 .5 0 28-117.7 36.8 0-45.9 170.8zm93-127c39 0 64.1 25.8 64.1 65.3 0 39.2-25.1 65-64.1 65-38.7 0-63.9-25.8-63.9-65 0-39.5 25.1-65.3 63.9-65.3zm0 104.8c23.2 0 30.1-19.9 30.1-39.5 0-19.9-6.9-39.7-30.1-39.7-27.7 0-29.9 19.9-29.9 39.7 0 19.6 6.9 39.5 29.9 39.5zm163.7 6.5l-.5 0c-7.9 13.4-21.8 19.1-37.5 19.1-37.3 0-55.5-32-55.5-66.2 0-33.2 18.4-64.1 54.8-64.1 14.6 0 28.9 6.2 36.8 18.4l.2 0 0-62.2 34 0 0 170.8-32.3 0 0-15.8zm-29.7-85.6c-22.2 0-29.9 19.1-29.9 39.5 0 19.4 8.8 39.7 29.9 39.7 22.5 0 29.2-19.6 29.2-39.9 0-20.1-7.2-39.2-29.2-39.2zM593 339.7l-32.3 0 0-17.2-.7 0c-8.6 13.9-23.4 20.6-37.8 20.6-36.1 0-45.2-20.3-45.2-50.9l0-76.1 34 0 0 69.8c0 20.3 6 30.4 21.8 30.4 18.4 0 26.3-10.3 26.3-35.4l0-64.8 34 0 0 123.6zm9.5-36.8l37.5 0 0 36.8-37.5 0 0-36.8z\"]\n};\nvar faSquareSteam = {\n prefix: 'fab',\n iconName: 'square-steam',\n icon: [448, 512, [\"steam-square\"], \"f1b7\", \"M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2 25.2 10.5 54.1-1.4 64.6-26.5 5.1-12.1 5.1-25.5 .1-37.7-5.1-12.1-14.5-21.6-26.7-26.7-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 144.7 116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2 0-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm102.4-.1a43.9 43.9 0 1 1 -87.8 0 43.9 43.9 0 1 1 87.8 0z\"]\n};\nvar faSteamSquare = faSquareSteam;\nvar faCreativeCommonsNcEu = {\n prefix: 'fab',\n iconName: 'creative-commons-nc-eu',\n icon: [512, 512, [], \"f4e9\", \"M255.7 8C111.6 8 8 124.8 8 256 8 392.3 119.7 504 255.7 504 385.9 504 504 403.1 504 256 504 117 396.4 8 255.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1-4.7 0 0 29.5 23.3 0c0 6.2-.4 3.2-.4 19.5l-22.8 0 0 29.5 27 0c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2l90.3 0 128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zM239.6 268.1l-.5-.4 .9 .4-.4 0zm77.2-19.5l3.7 0 0-29.5-70.3 0-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1L85.5 146.4c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9L316.8 248.6z\"]\n};\nvar faNpm = {\n prefix: 'fab',\n iconName: 'npm',\n icon: [576, 512, [], \"f3d4\", \"M288 288l-32 0 0-64 32 0 0 64zM576 160l0 192-288 0 0 32-128 0 0-32-160 0 0-192 576 0zM160 192l-128 0 0 128 64 0 0-96 32 0 0 96 32 0 0-128zm160 0l-128 0 0 160 64 0 0-32 64 0 0-128zm224 0l-192 0 0 128 64 0 0-96 32 0 0 96 32 0 0-96 32 0 0 96 32 0 0-128z\"]\n};\nvar faCloudscale = {\n prefix: 'fab',\n iconName: 'cloudscale',\n icon: [448, 512, [], \"f383\", \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6-71.6 0-129.4 60.8-129.4 132.3 0 6.6 .4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zM213.7 246.5a14 14 0 1 1 20.6 19 14 14 0 1 1 -20.6-19zM224 32a224 224 0 1 0 0 448 224 224 0 1 0 0-448zm0 64a160 160 0 1 1 0 320 160 160 0 1 1 0-320z\"]\n};\nvar faThemeco = {\n prefix: 'fab',\n iconName: 'themeco',\n icon: [448, 512, [], \"f5c6\", \"M202.9 8.4c9.9-5.7 26-5.8 36-.2L430 115.9c10 5.6 18 19.4 18 30.9L448 364c0 11.4-8.1 25.3-18 31L238.8 503.7c-9.9 5.7-26 5.6-35.8-.2L17.9 395.1C8 389.3 0 375.4 0 364L0 146.7c0-11.4 8-25.4 17.9-31.1L202.9 8.4zM125.5 208.3c-15.9 0-31.9 .1-47.8 .1l0 101.4 19.1 0 0-29.8 28.7 0c49.7 0 49.6-71.7 0-71.7zM265.6 308.6l-30.7-34.6c37-7.5 34.8-65.2-10.9-65.5-16.1 0-32.2-.1-48.3-.1l0 101.6 19.1 0 0-33.9 18.4 0 29.6 33.9 22.8 0 0-1.3zm-41.6-82.3c23.3 0 23.3 32.5 0 32.5l-29.1 0 0-32.5 29.1 0zm-95.6-1.6c21.2 0 21.1 38.9 0 38.9l-32.3 0 0-38.8 32.3 0zm192.6-18.2c-68.5 0-71 105.8 0 105.8 69.5 0 69.4-105.8 0-105.8zm0 17.4c44.1 0 44.8 70.9 0 70.9s-44.4-70.9 0-70.9z\"]\n};\nvar faGooglePlay = {\n prefix: 'fab',\n iconName: 'google-play',\n icon: [448, 512, [], \"f3ab\", \"M293.6 234.3L72.9 13 353.7 174.2 293.6 234.3zM15.3 0C2.3 6.8-6.4 19.2-6.4 35.3l0 441.3c0 16.1 8.7 28.5 21.7 35.3L271.9 255.9 15.3 0zM440.5 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM72.9 499L353.7 337.8 293.6 277.7 72.9 499z\"]\n};\nvar faKorvue = {\n prefix: 'fab',\n iconName: 'korvue',\n icon: [448, 512, [], \"f42f\", \"M387.6 34l-327 0C27.9 34 1.1 60.8 1.1 93.5l0 327.1c0 32.6 26.8 59.4 59.5 59.4l327.1 0c33 0 59.5-26.8 59.5-59.5l0-327C447.1 60.8 420.3 34 387.6 34zM88.2 120.8l96 0 0 116 61.8-116 110.9 0-81.2 132-187.5 0 0-132zM250 392.9l-65.7-113.6 0 113.6-96 0 0-130.8 191.5 0 88.6 130.8-118.4 0z\"]\n};\nvar faW3c = {\n prefix: 'fab',\n iconName: 'w3c',\n icon: [640, 512, [], \"e7de\", \"M105.2 305.3l30.9-104.7c7.9-26.7 8.6-40.6 .2-68.8l-10.1-33.9 44.1 0 61 207.4 45.7-155.5c13.3-45.3 21.1-51.9 59.4-51.9l132.8 0c-24.2 42.9-49.3 85.2-73.9 127.9 2.6 .8 5.2 1.8 7.7 2.8 17.3 7.1 32.2 19.4 42 35.5 11.2 18.5 16.8 40.2 16.8 65.2 0 30.8-8.2 56.8-24.6 77.8-14.5 18.6-35 29.5-58.2 31.2 0 .3-5.2 .4-5.8 .4-39.7-.1-70.8-32.1-83.1-68.7l42.9 0c3.5 5.3 6.8 10.7 11.2 15.5 8.1 7.3 18.5 10.9 29.3 11.1 13.1 0 23.3-9.1 29.9-19.8 8.1-13.2 12.2-29 12.2-47.5 0-13.1-1.8-24.3-5.3-33.6-.9-2.3-1.9-4.5-3-6.6-1.4-2.6-2.9-5.1-4.7-7.4-10.1-13.2-29.3-19.7-47.5-19.8l-28.2 0 70.3-122-35.6 0c-43.1 0-35.9-5.4-50.4 43.3l-75.7 255.3-4.2 0-63.1-211.1-63.1 211.1-4.2 0-101-340.7 44.2 0 61 207.4zM467 335.7c.3 .6 11.3 20.3 18.3 30.3 7.1 10.1 19.8 20.9 24.8 24.6s19.1 12.5 34.3 13.9c15.2 1.5 23.3 .2 38.7-6.6 15.4-6.8 27.9-20.4 34.9-28.1 6.9-7.6 17.9-27.3 18.2-27.7l3.3 16.8c1.7 9-1 23.7-4.1 30-4.3 8.6-7.6 13.5-14 20.3-6.1 6.5-16.7 13.5-21.3 16.4-4.6 2.9-23.1 15.1-50.1 10.3s-44.7-25.9-53.9-38.2c-9.8-13.2-16.7-28.3-19-33.2-3.8-8.4-9.9-28.2-10.1-28.8zm169.7-218c3.3 20.3-.1 28.7-9.1 46l-12.7 24.2c-.3-.6-10-20.7-25.9-31.9-13.6-9.6-22.5-11.7-36.3-8.8-17.8 3.7-38 25-46.8 51.2-10.5 31.4-10.7 46.6-11 60.6-.6 22.4 2.9 35.6 2.9 35.6s-15.4-28.5-15.2-70.1c.1-29.7 4.8-56.7 18.5-83.3 12.1-23.4 30.1-37.4 46.1-39.1 16.5-1.7 29.6 6.3 39.7 14.9 10.6 9 21.3 28.8 21.3 28.8l24.9-49.8 3.6 21.8z\"]\n};\nvar faGrav = {\n prefix: 'fab',\n iconName: 'grav',\n icon: [512, 512, [], \"f2d6\", \"M302.6 210.6c4.5 4.5 4.5 12.3 0 16.8l-10 10c-4.5 4.9-12.3 4.9-17.1 0l-10.8-10.8c-4.5-4.9-4.5-12.3 0-17.1l10-10c4.5-4.5 12.3-4.5 17.1 0l10.8 11.1zm-31.2-20.3a7.7 7.7 0 1 0 -10.6-11 7.7 7.7 0 1 0 10.6 11zm-26.8 5.5a7.5 7.5 0 1 0 10.7 10.5 7.5 7.5 0 1 0 -10.7-10.5zM319.4 182c-20.5-14.9-34.9-44.6-12.3-70.3 22.3-25.7 42-17.8 61.7 .8 12.3 11.7 30.2 25.7 17.8 49.8-12.9 24.3-46.6 34.3-67.2 19.7zm49.2-45.9c-9.2-10.3-24.1 7.1-16 16.6 7.6 9.3 33.1 2.5 16-16.6zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm443.7 44c2.6-16.6-20.9-17.1-26-26.5-14-24.9-28.6-38-56.3-31.4 12-8.3 24.3-6.3 24.3-6.3 .3-6.6 0-13.4-9.7-25.7 4-12.9 .3-23.1 .3-23.1 16-8.9 27.7-25.2 30-44.6 3.7-32-19.4-61.1-51.4-64.8-22.8-2.6-45.1 7.9-56.1 26.5-23.9 41.4 1.4 73.2 23.1 84-14.9-1.4-35.4-12.3-41.4-35.4-6.8-26.5 2.9-51.4 9.2-63.4 0 0-4.5-6-8.3-9.2 0 0-14.2 0-25.4 5.5 12.3-15.7 26-14.9 26-14.9 0-6.6-.6-15.4-3.7-22.3-5.6-11.4-24.6-13.3-32.7 2.9 .1-.2 .3-.4 .4-.5-5.2 12.3-1.1 57.7 17.4 90-2.6 1.4-9.4 6.3-13.4 10.3-22.3 10-58 62.2-58 62.2-29.1 11.1-79.7 52.5-72.9 82.3 .3 3.1 1.4 5.7 3.1 7.7-2.9 2.3-5.7 5.2-8.6 8.6-12.3 14.2-5.5 36.3 18.3 25.2 16.3-7.4 30.6-20.9 37.5-31.4 0 0-5.7-5.2-16.8-4.5 28.6-6.8 35.4-9.7 47.7-9.4 8.3 4 8.3-35.4 8.3-35.4 0-15.2-2.3-32-11.5-42.8 12.9 12.6 30 33.8 28.9 62.6-.8 18.9-15.7 23.7-15.7 23.7-9.4 17.1-44.6 68-31.4 109.4 0 0-10-15.4-10.5-22.8-18 20-48 54-25.4 66.6 27.5 15.2 112.3-91.5 130.3-146.9 35.7-21.5 57.2-48.8 66-67.1 22.7 44.9 98.4 97.5 104.4 60.9z\"]\n};\nvar faAws = {\n prefix: 'fab',\n iconName: 'aws',\n icon: [640, 512, [], \"f375\", \"M180.4 203c-.7 22.6 10.6 32.7 10.9 39-.1 1.3-.6 2.5-1.3 3.6s-1.7 2-2.8 2.6l-12.8 9c-1.7 1.2-3.6 1.8-5.6 1.9-.4 0-8.2 1.8-20.5-25.6-7.5 9.4-17 16.9-27.9 22s-22.7 7.7-34.7 7.5c-16.3 .9-60.4-9.2-58.1-56.2-1.6-38.3 34.1-62.1 70.9-60 7.1 0 21.6 .4 47 6.3l0-15.6c2.7-26.5-14.7-47-44.8-43.9-2.4 0-19.4-.5-45.8 10.1-7.4 3.4-8.3 2.8-10.8 2.8-7.4 0-4.4-21.5-2.9-24.2 5.2-6.4 35.9-18.4 65.9-18.2 20.1-1.8 40.1 4.4 55.7 17.3 6.3 7.1 11.2 15.4 14.2 24.4s4.2 18.5 3.5 28l0 69.3zM94 235.4c32.4-.5 46.2-20 49.3-30.5 2.5-10.1 2.1-16.4 2.1-27.4-9.7-2.3-23.6-4.9-39.6-4.9-15.2-1.1-42.8 5.6-41.7 32.3-1.2 16.8 11.1 31.4 30 30.5zm170.9 23.1c-7.9 .7-11.5-4.9-12.7-10.4L202.4 83.4c-1-2.8-1.6-5.6-1.9-8.6-.2-1.2 .1-2.4 .8-3.4s1.8-1.6 3-1.8c.2 0-2.1 0 22.2 0 8.8-.9 11.6 6 12.6 10.4L274.9 220.8 308.1 80c.5-3.2 2.9-11.1 12.8-10.2l17.2 0c2.2-.2 11.1-.5 12.7 10.4L384.1 222.7 421 80.1c.5-2.2 2.7-11.4 12.7-10.4l19.7 0c.9-.1 6.2-.8 5.3 8.6-.4 1.8 3.4-10.7-52.8 169.9-1.1 5.5-4.8 11.1-12.7 10.4l-18.7 0c-10.9 1.2-12.5-9.7-12.7-10.7l-33.2-137.1-32.8 137c-.2 1.1-1.7 11.9-12.7 10.7l-18.3 0 0 0zm273.5 5.6c-5.9 0-33.9-.3-57.4-12.3-2.3-1-4.3-2.6-5.7-4.8s-2.1-4.6-2.1-7.1l0-10.7c0-8.5 6.2-6.9 8.8-5.9 10 4.1 16.5 7.1 28.8 9.6 36.7 7.5 52.8-2.3 56.7-4.5 13.2-7.8 14.2-25.7 5.3-34.9-10.5-8.8-15.5-9.1-53.1-21-4.6-1.3-43.7-13.6-43.8-52.4-.6-28.2 25-56.2 69.5-56 12.7 0 46.4 4.1 55.6 15.6 1.4 2.1 2 4.6 1.9 7l0 10.1c0 4.4-1.6 6.7-4.9 6.7-7.7-.9-21.4-11.2-49.2-10.8-6.9-.4-39.9 .9-38.4 25-.4 19 26.6 26.1 29.7 26.9 36.5 11 48.6 12.8 63.1 29.6 17.1 22.2 7.9 48.3 4.3 55.4-19.1 37.5-68.4 34.4-69.3 34.4zm40.2 104.9c-70 51.7-171.7 79.2-258.5 79.2-117.1 .8-230.3-42.3-317.3-120.7-6.5-5.9-.8-14 7.2-9.5 96.5 55.2 205.7 84.2 316.9 84.1 83-.4 165.1-17.3 241.6-49.5 11.8-5 21.8 7.8 10.1 16.4zm29.2-33.3c-9-11.5-59.3-5.4-81.8-2.7-6.8 .8-7.9-5.1-1.8-9.5 40.1-28.2 105.9-20.1 113.4-10.6 7.5 9.5-2.1 75.4-39.6 106.9-5.8 4.9-11.3 2.3-8.7-4.1 8.4-21.3 27.4-68.5 18.4-80z\"]\n};\nvar faGlideG = {\n prefix: 'fab',\n iconName: 'glide-g',\n icon: [448, 512, [], \"f2a6\", \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4 0-71.5-38.2-100.6-108.4-100.6-115.1 0-173.4 113.7-173.4 198.4 0 87.9 51.3 136.6 138.6 136.6 12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9 .1-52.4 51.2-52.4 79.3 0 51.9 32.8 87.9 85.5 87.9 77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zM231.8 126.8c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"]\n};\nvar faJsfiddle = {\n prefix: 'fab',\n iconName: 'jsfiddle',\n icon: [576, 512, [], \"f1cc\", \"M511.1 237.5c-4.7-2.6-5.7-5.7-6.4-10.8-2.4-16.5-3.5-33.6-9.1-49.1-35.9-100-154-143.4-246.8-91.6-27.4 15.2-49 36.4-65.5 63.9-3.2-1.5-5.5-2.7-7.8-3.7-30.1-12.4-59-10.1-85.3 9.2-25.5 18.7-36.4 44.5-32.7 76.4 .4 3-2 7.6-4.5 9.5-39.7 30-56 78.1-41.9 124.6 13.8 45.6 57.5 79.8 105.6 81.4 30.3 1 60.6 .5 91 .5 84 0 168.1 .5 252.1-.5 52.7-.6 96.1-36.9 108.2-87.3 11.5-48.1-11.1-97.3-56.8-122.6zm21.1 156.9c-18.2 22.4-42.3 35.3-71.3 35.7-56.9 .8-113.8 .2-170.7 .2 0 .7-163 .2-163.7 .2-43.9-.3-76.7-19.8-95.2-60-18.9-41.2-4-90.8 34.2-116.1 9.2-6.1 12.5-11.6 10.1-23.1-5.5-26.4 4.5-48 26.4-63 23-15.7 47.4-16.1 72-3.1 10.3 5.4 14.6 11.6 22.2-2.5 14.2-26.4 34.6-46.7 60.7-61.3 97.5-54.4 228.4 7.6 230.2 132.7 .1 8.2 2.4 12.4 9.8 15.9 57.6 26.8 74.5 96.1 35.1 144.5zm-87.8-80.5c-5.8 31.2-34.6 55.1-66.7 55.1-17 0-32.1-6.5-44.1-17.7-27.7-25.7-71.1-75-95.9-93.4-20.1-14.9-42-12.3-60.3 3.8-50 44.1 15.9 121.8 67.1 77.2 4.5-4 7.8-9.5 12.7-12.8 8.2-5.5 20.8-.9 13.2 10.6-17.4 26.3-49.3 38.2-78.9 29.3-28.9-8.7-48.8-36-48.6-70.2 1.2-22.5 12.4-43.1 35.4-56 22.6-12.6 46.4-13.1 67 2.5 50.8 38.5 75.6 81.7 107.3 101.2 24.6 15.1 54.3 7.4 68.8-17.5 28.8-49.2-34.6-105-78.9-63.5-4 3.7-6.9 8.9-11.4 11.7-11 6.8-17.3-4.1-12.8-10.4 20.7-28.6 50.5-40.4 83.3-28.2 31.4 11.7 49.1 44.4 42.8 78.2z\"]\n};\nvar faKeybase = {\n prefix: 'fab',\n iconName: 'keybase',\n icon: [448, 512, [], \"f4f5\", \"M286.2 419a18 18 0 1 0 0 36 18 18 0 1 0 0-36zM398.1 271.4c-9.5-14.6-39.4-52.4-87.3-73.7-6.1-2.7-12.2-5.1-18.4-7.3 4.1-9.9 6-20.6 5.8-31.4s-2.7-21.3-7.2-31.1-10.9-18.5-18.9-25.7-17.4-12.6-27.6-16c-12.4-4.1-23.3-6-32.4-5.8-.6-2-1.9-11 9.4-35l-22.9-13.5-5.5 7.6c-8.7 12.1-16.9 23.6-24.3 34.9-2.7-.6-5.5-1.1-8.3-1.2-41.5-2.4-39-2.3-41.1-2.3-50.6 0-50.8 52.1-50.8 45.9l-2.4 36.7c-1.6 27 19.8 50.2 47.6 51.8l8.9 .5C106 215.5 90.4 227.5 76.6 241.4 14 304.7 14 374 14 429.8l0 33.6 23.3-29.8c3.1 13.1 8 25.8 14.6 37.6 5.8 10.1 14.9 9.4 19.6 7.3 4.2-1.9 10-6.9 3.8-20.1-8-16.8-13.3-34.7-15.8-53.1l46.8-59.8-24.7 74.1c58.2-42.4 157.4-61.8 236.2-38.6 34.2 10.1 67.4 .7 84.7-23.8 .7-1 1.2-2.2 1.8-3.2 1.8 9.4 2.7 18.9 2.8 28.4 0 23.3-3.7 52.9-14.9 81.6-2.5 6.5 1.8 14.5 8.6 15.7 7.4 1.6 15.3-3.1 18.4-11.1 9.6-25.5 14.6-54.6 14.6-86.2 0-38.6-13-77.5-35.9-110.9zM142.4 128.6l-15.7-.9-1.4 21.8 13.1 .8c-.6 6.5-.5 13.1 .3 19.6l-22.4-1.3c-1.6-.1-3.2-.5-4.7-1.1s-2.8-1.6-3.9-2.8-1.9-2.6-2.5-4.1-.8-3.1-.7-4.7L107 119c1-12.2 13.9-11.3 13.3-11.3l29.1 1.7c-2.8 6.2-5.1 12.6-7 19.2zM290.8 300.8c-2.1 1.6-4.8 2.4-7.5 2.2s-5.1-1.5-6.9-3.5l-9.7-11.5-34.4 27c-1.6 1.3-3.7 1.9-5.8 1.7s-4-1.2-5.3-2.8l-15.8-18.6c-1.2-1.6-1.7-3.5-1.5-5.4s1.3-3.7 2.8-4.9l34.6-27.2-14.1-16.7-17.1 13.5c-1.6 1.2-3.5 1.8-5.5 1.6s-3.8-1.1-5.1-2.6c0 0-3.7-4.4-3.8-4.5-1.2-1.6-1.7-3.5-1.5-5.5s1.3-3.7 2.8-4.9L214 225.2s-18.5-22-18.6-22.1c-.8-1-1.3-2.1-1.7-3.3s-.4-2.5-.3-3.7 .6-2.4 1.2-3.5 1.5-2 2.5-2.8c2.1-1.7 4.8-2.4 7.4-2.2s5.1 1.5 6.9 3.6l81.1 96.3c.8 1 1.3 2.1 1.7 3.3s.4 2.5 .3 3.7-.6 2.5-1.2 3.5-1.5 2.1-2.5 2.8zM187.4 419a18 18 0 1 0 0 36 18 18 0 1 0 0-36z\"]\n};\nvar faLumonDrop = {\n prefix: 'fab',\n iconName: 'lumon-drop',\n icon: [576, 512, [], \"e7e3\", \"M480 32c53 0 96 43 96 96l0 224c0 53-43 96-96 96L96 448c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l384 0zM302.4 114.7c-9.8-16.4-20.5-16.4-29.6 0l-68.9 114c-10.7 15.6-16.4 32.8-16.4 52.5 0 50.9 44.3 94.3 100.1 94.3 55 0 100.9-43.5 100.9-94.3 0-19.7-6.6-37.8-17.2-52.5l-68.9-114z\"]\n};\nvar faForgejo = {\n prefix: 'fab',\n iconName: 'forgejo',\n icon: [320, 512, [], \"e860\", \"M261.5 1.2c34 0 61.6 27.6 61.6 61.6s-27.6 61.6-61.6 61.6c-23 0-43.1-12.7-53.7-31.4l-28.5 0c-24 0-47 9.5-64 26.5s-26.5 40-26.5 64l0 43.5c26-19.5 57.7-30.2 90.6-30.2l28.5 0c10.6-18.7 30.6-31.4 53.7-31.4 34 0 61.6 27.6 61.6 61.6s-27.6 61.6-61.6 61.6c-23 0-43.1-12.7-53.7-31.4l-28.5 0c-24 0-47 9.5-64 26.5s-26.5 40-26.5 64l0 47.8c18.7 10.6 31.4 30.6 31.4 53.6 0 34-27.6 61.6-61.6 61.6S-3 483.2-3 449.2c0-23 12.7-43.1 31.4-53.6l0-212c0-40 15.9-78.4 44.2-106.7s66.7-44.2 106.7-44.2l28.5 0c10.6-18.7 30.6-31.4 53.7-31.4zM58.6 423.9c-14 0-25.3 11.3-25.3 25.3s11.3 25.4 25.3 25.4 25.4-11.4 25.4-25.4-11.4-25.3-25.4-25.3zM261.5 201.7a25.4 25.4 0 1 0 0 50.7 25.4 25.4 0 1 0 0-50.7zm0-164.2a25.4 25.4 0 1 0 0 50.7 25.4 25.4 0 1 0 0-50.7z\"]\n};\nvar faPostgresql = {\n prefix: 'fab',\n iconName: 'postgresql',\n icon: [512, 512, [], \"e858\", \"M219.8 171.3c3.9 .5 13.1 2.7 12.3 8.5-.8 5.9-9.2 9.1-14.2 8.4-4.7-.7-13.2-6.1-12.3-12.1l.3-2.1c4.2 0 8.3-3.5 13.9-2.7zm168.1-3.4c10.8 2.6-1.1 13.5-6.8 14.3-4.3 .6-12.1-2.2-12.8-7.4-1-7.4 15.7-7.9 19.7-6.9zm-22-140.8c35.7-.3 81.3 9.4 114.3 51.7 7.2 9.2 10 24 9.7 40.9-.8 49.6-26 129.4-70.7 197.4 4.5 2.9 17.6 7.4 51.1 .5 5.6-1.2 12.7-2.2 17.6 1.6 18.2 13.9-19.6 35.1-28.4 39.2-13.2 6.2-34.8 9.5-51.2 8.7-2.1-.2-4.3-.2-6.3-.6-5.1-1.1-7.4-1-8.3-.7-1.1 .3-1.4 2.9-1.6 3.8-2.8 24.9-7.7 64.7-10.7 82-2.8 16.3-7.7 29.3-17.2 39.2-9.5 9.9-22.8 15.7-40.6 19.5-22.3 4.8-37.9-.1-48.7-9.1-10.3-8.7-15.2-20.4-18-27.4-1.8-4.5-3-11.5-4-19.8-2.3-19.8-3.3-50.4-3-83.3-24.6 22.1-55 17.2-68.2 13.9-10.5-2.6-33-16.1-17.5-28.7 11.9-9.7 30.3-5.5 42.2-15 2.4-1.9 11.4-10.6 11.4-13.5-10-.3-19.6-2.9-28.1-7.5-13.5 14.5-26.4 29.5-39.3 44.6-8.3 9.9-17.4 15.8-27.4 16.2-9.9 .4-18.7-4.6-26.1-11.8-7.3-7.1-14.1-17.2-20.4-29-19-35.5-33.2-86.1-42.3-126.4-6-26.7-9.6-49.1-10.1-59-2.2-44.3 8-74.1 26-93.2 17.9-19 42.4-26 66.1-27.4 35.6-2 71 8.5 86.6 13.8l5 1.8c15.9-10.8 36.1-17.4 61.7-17 13.2 .2 25.5 2.2 36.7 4.2 18.6-7.1 39.8-9.5 59.4-9.7zm-96 20.5c-24.7-.4-42.9 6.5-56.6 16.8-.8 .6-1.8 1-2.8 1.2-14.4 11.8-23.9 28-30.3 44.8-7.2 19.1-10 38.5-11.1 51.5 7.6-4.3 17.9-8.7 28.7-11.2 10.5-2.4 22.4-3.2 32.7 .8 10.9 4.2 19 13.3 22.2 28.1 7.5 34.7 6.7 58.2 2.7 75.9-4.8 21-16.8 39.5-21.9 60.4 3.5-.9 7.1-.6 9.8 .1l7.2 2.9c7.7 4.4 12.8 13 14 21.7 2 6 .1 14.3 0 20.6 6.7 16.3 7.2 36.1 6.7 53.3-.7 25-1 40.2 3.2 51.7 2.9 7.9 4.7 16.4 10.4 22.8 2.6 3 6.1 5.5 10.9 6.8 18.5 5.1 44-4.7 56.6-18.2 7.7-8.2 12.3-19.3 13.4-33.9 1.1-13.6 4.2-27.6 6.3-41.1l2.9-8.8c1.7-14.8 3.4-29.6 5-44.4-.4-9.1 .9-16.1 3.9-21.5 3.1-5.7 7.6-8.9 11.8-10.8 1.8-.8 3.9-1.2 5.6-2-1.6-2.4-3.6-4.6-5.3-6.8-8.2-10.4-13.3-22.3-19.7-33.8-8.5-15.2-23.8-42.2-30.1-67.5-4.1-16.4-4.9-34.5 6-47 9.8-11.2 26.9-15.5 51.9-13-3.4-10-11.4-27.5-24.8-44.7-18-23-45.7-45.9-85.7-53.1-7.3-.9-15.2-1.5-23.6-1.7zm-32.2 282c-8 .7-15.5 18.2-21.7 23.1-6.2 4.9-14.5 7.6-30 10.7-4.5 .9-7.7 1.9-9.7 2.8 22.3 15.8 58.3 3.2 72.6-16.8 1.7-2.4 2.1-6 .5-10.2-1.7-4.5-6.4-10.1-11.9-9.6zM117.6 49.2c-21.6 1.2-42 7.5-56.4 22.8-14.4 15.2-24.2 40.6-22.1 82.5 .4 8.5 3.8 30 9.8 56.6 8.9 39.8 23.7 90.3 40.6 122.2 6 11.1 17.4 33 32.8 32.3 4.4-.2 10.1-2.8 17-11 12.6-14.8 25.2-29.5 38.5-43.7-17.9-15.4-28.5-40.3-24.8-67.2 3.4-24.3 .5-48.2 1.2-72.5 .4-11.9 2.3-38.7 12.6-65.8 5.9-15.5 14.5-31.3 27.4-44.2-16.4-5.4-47.1-13.5-76.6-11.9zM405.1 328.9c-3.8 1.1-6.7 2.2-8.7 5.8-1.3 2.4-2.5 6.7-2.2 14.2 4.8 3.9 14.1 3.3 19.8 3.2 13.9-.2 29.9-3.1 39.3-7.5 7.9-3.7 14.7-8.3 19-12.2-38.2 7.7-55.4 2.1-63.2-4.8-1.3 .4-2.9 .9-3.9 1.2zM225.3 164.9c-15.4-5.9-35.4 1.8-48.9 9.4-3.6 2-6.5 4-7.9 5.2 .4 8.8 2.8 36.1-1.4 66.3-5.1 36.6 21.7 66.6 52.5 66.7 5.1-20.8 17-39.2 21.8-60.1 3.5-15.3 4.5-36.6-2.7-69.7-2.3-10.5-7.4-15.4-13.4-17.7zM370.1 42.2c-15.2-.2-28.8 1.7-39.2 3.8 26 11.8 45.6 29.7 59.6 47.6 17.4 22.2 26.3 44.1 29 55 .7 2.7 1.3 5.7 .5 8.4 .6 18.9-4 31.3-4.6 49.2-.4 12.9 2.9 28.1 3.7 44.7 .8 15.7-1 32.5-11.2 49.5 .8 1 1.6 2.1 2.4 3.1 26.8-42.2 46-88.6 56.3-128.5 5.5-21.4 8.4-40.7 8.7-56.1 .2-15.2-2-25.4-5.8-30.4-28.3-36.1-66.8-45.8-99.3-46.2zm35.6 119.5c-25.3-3.2-37.3 1.5-42.8 7.7-6 6.8-6.8 18.5-2.9 34.1 5.7 22.6 20.1 48.6 28.7 64 3.6 6.4 6.4 13.1 10 19.4 5.5-11.7 6.6-23.5 6-35.5-.7-15-4.2-30.3-3.7-45.8l.4-7.4c1.2-14.3 4.1-24.6 4.2-36.5z\"]\n};\nvar faWeebly = {\n prefix: 'fab',\n iconName: 'weebly',\n icon: [512, 512, [], \"f5cc\", \"M425.1 65.8c-39.9 0-73.3 25.7-83.7 64.3-18.2-58.1-65.5-64.3-85-64.3-19.8 0-66.8 6.3-85.3 64.3-10.4-38.6-43.4-64.3-83.7-64.3-49 0-87.5 33.9-87.5 77.2 0 29 4.2 33.3 77.2 233.5 22.4 60.6 67.8 69.4 92.7 69.4 39.2 0 70-19.5 85.9-54 15.9 34.8 46.7 54.3 85.9 54.3 25 0 70.4-9.1 92.7-69.7 76.6-208.6 77.5-205.6 77.5-227.2 .6-48.3-36-83.5-86.9-83.5zm26.3 114.8L385.9 357.1c-7.9 21.5-21.2 37.2-46.2 37.2-23.4 0-37.4-12.4-44-33.9l-39.3-117.4-1 0-39.3 117.4c-7 21.5-20.9 33.6-44 33.6-25 0-38.3-15.7-46.2-37.2L60.9 181.6c-5.4-14.8-7.9-23.9-7.9-34.5 0-16.3 15.8-29.4 38.3-29.4 18.7 0 32 11.8 36.1 29.1l44 139.8 1 0 44.7-136.8c6-19.7 16.5-32.1 39-32.1s32.9 12.1 39 32.1l44.7 136.8 1 0 44-139.8c4.1-17.2 17.4-29.1 36.1-29.1 22.2 0 38.3 13.3 38.3 35.7-.3 7.9-4.1 16-7.6 27.2z\"]\n};\nvar faDocker = {\n prefix: 'fab',\n iconName: 'docker',\n icon: [640, 512, [], \"f395\", \"M349.9 236.3l-66.1 0 0-59.4 66.1 0 0 59.4zm0-204.3l-66.1 0 0 60.7 66.1 0 0-60.7zm78.2 144.8l-66.1 0 0 59.4 66.1 0 0-59.4zM271.8 104.7l-66.1 0 0 60.1 66.1 0 0-60.1zm78.1 0l-66.1 0 0 60.1 66.1 0 0-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7l-434.7 0c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zM115.6 176.8l-66 0 0 59.4 66.1 0 0-59.4-.1 0zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm-78.1-72.1l-66.1 0 0 60.1 66.1 0 0-60.1z\"]\n};\nvar faMagento = {\n prefix: 'fab',\n iconName: 'magento',\n icon: [448, 512, [], \"f3c4\", \"M445.9 127.9l0 256.1-63.4 36.5 0-255.8-158.5-91.6-158.6 91.6 .4 255.9-63.3-36.6 0-255.9 221.9-128.1 221.5 127.9zM255.8 420.5l-31.6 18.4-31.8-18.2 0-256-63.3 36.6 .1 255.9 94.9 54.9 95.1-54.9 0-256-63.4-36.6 0 255.9z\"]\n};\nvar faTorBrowser = {\n prefix: 'fab',\n iconName: 'tor-browser',\n icon: [512, 512, [], \"e838\", \"M256.5 465.4l0-31c98.3-.3 177.9-80 177.9-178.4S354.8 77.9 256.5 77.6l0-31C372 46.8 465.4 140.5 465.4 256S372 465.2 256.5 465.4zm0-108.6c55.4-.3 100.3-45.3 100.3-100.8S312 155.5 256.5 155.2l0-31c72.6 .3 131.4 59.2 131.4 131.8S329.1 387.6 256.5 387.8l0-31zm0-155.1c29.7 .3 53.8 24.5 53.8 54.3s-24 54-53.8 54.3l0-108.6zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0z\"]\n};\nvar faGitAlt = {\n prefix: 'fab',\n iconName: 'git-alt',\n icon: [448, 512, [], \"f841\", \"M439.6 236.1L244 40.5C238.6 35 231.2 32 223.6 32s-15 3-20.4 8.4l-40.7 40.6 51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3l-46.3-46.3 0 121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56l0-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4L204.1 471.6c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4L439.6 276.9c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4z\"]\n};\nvar faFirefoxBrowser = {\n prefix: 'fab',\n iconName: 'firefox-browser',\n icon: [512, 512, [], \"e007\", \"M130.2 127.5l0 0zm351.4 45.4c-10.6-25.5-32.1-53-48.9-61.7 13.7 26.9 21.7 53.9 24.7 74 0 .1 0 .3 .1 .4-27.6-68.8-74.4-96.5-112.6-156.8-15-23.7-10.9-25.2-13.1-24.7l-.1 .1c-46.7 26-75.3 78.4-82.6 122.7-16.6 .9-32.9 5-47.9 12.1-1.4 .6-2.5 1.7-3.1 3s-.9 2.8-.6 4.3c.2 .8 .6 1.6 1.1 2.3s1.2 1.3 1.9 1.7 1.6 .7 2.4 .8 1.7 0 2.5-.3l.5-.2c15.5-7.3 32.4-11.2 49.5-11.3 62.8-.6 97.2 44 107.6 62.3-13-9.2-36.4-18.2-58.8-14.3 87.7 43.9 64.2 194.5-57.4 189.2-59.5-2.6-97.1-51-100.5-90.8 0 0 11.2-41.9 80.6-41.9 7.5 0 28.9-20.9 29.3-27-.1-2-42.5-18.9-59.1-35.2-8.8-8.7-13.1-12.9-16.8-16.1-2-1.7-4.1-3.3-6.3-4.8-5.6-19.5-5.8-40-.7-59.6-25.1 11.4-44.6 29.4-58.7 45.4l-.1 0c-9.7-12.2-9-52.6-8.4-61.1-.1-.5-7.2 3.7-8.2 4.3-8.6 6.1-16.5 12.9-23.8 20.4-16.3 16.6-44.1 50.2-55.5 101.2-4.5 20.4-6.8 44.4-6.8 52.3 0 134.7 109.2 243.9 243.9 243.9 120.6 0 223-87.2 240.4-202.6 11.6-76.7-14.7-131.1-14.7-132z\"]\n};\nvar faCloudsmith = {\n prefix: 'fab',\n iconName: 'cloudsmith',\n icon: [512, 512, [], \"f384\", \"M512 227.6L512 284.5 284.4 512 227.6 512 0 284.4 0 227.6 227.6 0 284.5 0 512 227.6zm-256 162c17.8 .5 35.6-2.6 52.2-9.1s31.8-16.2 44.6-28.7 23-27.3 29.9-43.8 10.5-34.1 10.5-52-3.6-35.5-10.5-52-17.1-31.3-29.9-43.8-28-22.2-44.6-28.7-34.4-9.6-52.2-9.1c-17.8-.5-35.6 2.6-52.2 9.1s-31.8 16.3-44.6 28.7-23 27.3-29.9 43.8-10.5 34.1-10.5 52 3.6 35.5 10.5 52 17.1 31.3 29.9 43.8 28 22.2 44.6 28.7 34.4 9.6 52.2 9.1z\"]\n};\nvar faWizardsOfTheCoast = {\n prefix: 'fab',\n iconName: 'wizards-of-the-coast',\n icon: [640, 512, [], \"f730\", \"M219.2 345.7c-1.9 1.4-11.1 8.4-.3 23.6 4.6 6.4 14.1 12.8 21.7 6.6 6.5-4.9 7.4-12.9 .3-23-5.5-7.8-14.3-12.9-21.7-7.1zm336.8 75.9c-.3 1.7-.6 1.7 .8 0 2.1-4.2 4.2-10.2 5-19.9 3.1-38.5-40.3-71.5-101.3-78-54.7-6-124.4 9.2-188.8 60.5l-.3 1.6c2.6 5 5 10.7 3.4 21.2l.8 .3c63.9-58.4 131.2-77.2 184.4-73.8 58.4 3.7 100 34 100 68.1 0 10-2.6 15.7-3.9 20.2zM392.3 240.4c.8 7.1 4.2 10.2 9.2 10.5 5.5 .3 9.4-2.6 10.5-6.6 .8-3.4 2.1-29.8 2.1-29.8S402.8 221 399.1 225c-3.7 3.7-7.3 8.4-6.8 15.5zm-50-151.1c-204.5 0-329.2 137.5-341.5 151.9-1 .5-1.3 .8 .8 1.3 60.5 16.5 155.8 81.2 196.1 202.2l1 .3c55.2-69.9 140.9-128.1 237-128.1 80.9 0 130.2 42.2 130.2 80.4 0 18.3-6.6 33.5-22.3 46.3 0 1-.2 .8 .8 .8 14.7-10.7 27.5-28.8 27.5-48.2 0-22.8-12.1-38.2-12.1-38.2 7.1 7.1 10.7 16.2 10.7 16.2 5.8-40.9 27-62.3 27-62.3-2.4-9.7-6.8-17.8-6.8-17.8 7.6 8.1 14.4 27.5 14.4 41.4 0 10.5-3.4 22.8-12.6 31.9l.3 .5c8.1-5 16.5-16.8 16.5-38 0-15.7-4.7-25.9-4.7-25.9 5.8-5.2 11.3-9.2 16-11.8 .8 3.4 2.1 9.7 2.4 14.9 0 1 .8 1.8 1 0 .8-5.8-.3-16.2-.3-16.5 6-3.1 9.7-4.5 9.7-4.5-15.7-110.3-144-196.9-291.2-196.9zM243 378.9c-11.1 9-24.2 4.1-30.6-4.2-7.4-9.6-6.8-24.1 4.2-32.5 14.8-11.4 27.1-.5 31.2 5.5 .3 .4 12.1 16.6-4.7 31.2zm2.1-136.4l9.4-17.8 11.8 71-12.6 6-24.6-28.8 14.1-26.7 3.7 4.4-1.8-8.1zm18.6 117.6l-.3-.3c2-4.1-2.5-6.6-17.5-31.7-1.3-2.4-3.1-2.9-4.4-2.6l-.3-.5c7.9-5.8 15.4-10.2 25.4-15.7l.5 .3c1.3 1.8 2.1 2.9 3.4 4.7l-.3 .5c-1-.3-2.4-.8-5.2 .3-2.1 .8-7.9 3.7-12.3 7.6l0 1.3c1.6 2.4 3.9 6.6 5.8 9.7l.3 0c10-6.3 7.6-4.5 11.5-7.9l.3 0c.5 1.8 .5 1.8 1.8 5.5l-.3 .3c-3.1 .6-4.7 .3-11.5 5.5l0 .3c9.5 17 11 16.8 12.6 16l.3 .3c-2.3 1.6-6.3 4.2-9.7 6.6zM319 327.6c-3.1 1.6-6 2.9-10 5l-.3-.3c1.3-2.6 1.2-2.7-11.8-32.5l-.3-.3c-.2 0-8.9 3.7-10 7.3l-.5 0-1-5.8 .3-.5c7.3-4.6 25.5-11.6 27.8-12.6l.5 .3 3.1 5-.3 .5c-3.5-1.8-7.4 .8-12.3 2.6l0 .3c12.3 32 12.7 30.6 14.7 30.6l0 .2zm44.8-16.5c-4.2 1-5.2 1.3-9.7 2.9l-.3-.3 .5-4.5c-1-3.4-3.1-11.5-3.7-13.6l-.3-.3c-3.4 .8-8.9 2.6-12.8 3.9l-.3 .3c.8 2.6 3.1 9.9 4.2 13.9 .8 2.4 1.8 2.9 2.9 3.1l0 .5c-3.7 1-7.1 2.6-10.2 3.9l-.3-.3c1-1.3 1-2.9 .3-5-1-3.1-8.1-23.8-9.2-27.2-.5-1.8-1.6-3.1-2.6-3.1l0-.5c3.1-1 6-2.1 10.7-3.4l.3 .3-.3 4.7c1.3 3.9 2.4 7.6 3.1 9.7l.3 0c3.9-1.3 9.4-2.9 12.8-3.9l.3-.3-2.6-9.4c-.5-1.8-1-3.4-2.6-3.9l0-.3c4.4-1 7.3-1.8 10.7-2.4l.3 .3c-1 1.3-1 2.9-.5 4.4 1.6 6.3 4.7 20.4 6.3 26.5 .5 2.6 1.8 3.4 2.6 3.9zm32.2-6.8l-.3 .3c-4.7 .5-14.1 2.4-22.5 4.2l-.3-.3 .8-4.2c-1.6-7.9-3.4-18.6-5-26.2-.3-1.8-.8-2.9-2.6-3.7l.8-.5c9.2-1.6 20.2-2.4 24.9-2.6l.3 .3c.5 2.4 .8 3.1 1.6 5.5l-.3 .3c-1.1-1.1-3.3-3.2-16.2-.8l-.3 .3c.3 1.6 1 6.6 1.6 9.9l.3 .3c9.5-1.7 4.8-.1 10.7-2.4l.3 0c0 1.6-.3 1.8-.3 5.2l-.3 0c-4.8-1-2.2-.9-10.2 0l-.3 .3c.3 2.1 1.6 9.4 2.1 12.6l.3 .3c1.2 .4 14.2-.6 16.2-4.7l.3 0c-.5 2.4-1 4.2-1.6 6zm10.7-44.5c-4.5 2.4-8.1 2.9-11 2.9-.2 0-11.4 1.1-17.5-10-6.7-10.8-1-25.2 5.5-31.7 8.8-8.1 23.4-10.1 28.5-17 8-10.3-13-22.3-29.6-5.8l-2.6-2.9 5.2-16.2c25.6-1.6 45.2-3 50 16.2 .8 3.1 0 9.4-.3 12.1 0 2.6-1.8 18.8-2.1 23-.5 4.2-.8 18.3-.8 20.7 .3 2.4 .5 4.2 1.6 5.5 1.6 1.8 5.8 1.8 5.8 1.8l-.8 4.7c-11.8-1.1-10.3-.6-20.4-1-3.2-5.1-2.2-3.3-4.2-7.9 0 0-4.2 3.9-7.3 5.5zM443.9 281c-6.4-10.6-19.8-7.2-21.7 5.5-2.6 17.1 14.3 19.8 20.7 10.2l.3 .3c-.5 1.8-1.8 6-1.8 6.3l-.5 .5c-10.3 6.9-28.5-2.5-25.7-18.6 1.9-10.9 14.4-18.9 28.8-9.9l.3 .5c0 1.1-.3 3.4-.3 5.3zm5.8-87.7l0-6.6c.7 0 19.6 3.3 27.8 7.3l-1.6 17.5s10.2-9.4 15.4-10.7c5.2-1.6 14.9 7.3 14.9 7.3l-11.3 11.3c-12.1-6.4-19.6-.1-20.7 .8-5.3 38.7-8.6 42.2 4.4 46.1l-.5 4.7c-17.6-4.3-18.5-4.5-36.9-7.3l.8-4.7c7.3 0 7.5-5.3 7.6-6.8 0 0 5-53.2 5-55.3 0-2.9-5-3.7-5-3.7zm11 114.4c-8.1-2.1-14.1-11-10.7-20.7 3.1-9.4 12.3-12.3 18.9-10.2 9.2 2.6 12.8 11.8 10.7 19.4-2.6 8.9-9.4 13.9-18.9 11.5zm42.2 9.7c-2.4-.5-7.1-2.4-8.6-2.9l0-.3 1.6-1.8c.6-8.2 .6-7.3 .3-7.6-4.8-1.8-6.7-2.4-7.1-2.4-1.3 1.8-2.9 4.5-3.7 5.5l-.8 3.4 0 .3c-1.3-.3-3.9-1.3-6-1.6l0-.3 2.6-1.8c3.4-4.7 10-14.1 13.9-20.2l0-2.1 .5-.3c2.1 .8 5.5 2.1 7.6 2.9 .5 .5 .2-1.9-1 25.1-.2 1.8 0 2.6 .8 3.9zm-4.7-89.8c11.3-18.3 30.8-16.2 34-3.4l7.6-26.2c2.3-6.2-2.8-9.9-4.5-11.3l1.8-3.7c12.2 10.4 16.4 14 22.5 20.4-25.9 73.1-30.8 80.8-24.6 84.3l-1.8 4.4c-6.4-3.3-8.9-4.4-17.8-8.6l2.1-6.8c-.3-.3-3.9 3.9-9.7 3.7-19.1-1.3-22.9-31.7-9.7-52.9zm29.3 79.3c0-5.7-6.3-7.9-7.9-5.2-1.3 2.1 1 5 2.9 8.4 1.6 2.6 2.6 6.3 1 9.4-2.6 6.3-12.4 5.3-15.4-.8 0-.7-.3 .1 1.8-4.7l.8-.3c-.6 5.7 6.1 9.6 8.4 5 1-2.1-.5-5.5-2.1-8.4-1.6-2.6-3.7-6.3-1.8-9.7 2.7-5.1 11.3-4.5 14.7 2.4l0 .5-2.4 3.4zm21.2 13.4c-2-3.3-.9-2.1-4.5-4.7l-.3 0c-2.4 4.2-5.8 10.5-8.6 16.2-1.3 2.4-1 3.4-.8 3.9l-.3 .3-5.8-4.4 .3-.3 2.1-1.3c3.1-5.8 6.6-12.1 9.2-17l0-.3c-2.6-2-1.2-1.5-6-1.8l0-.3 3.1-3.4 .3 0c3.7 2.4 10 6.8 12.3 8.9l.3 .3-1.3 3.9zM575.8 276l-2.9-2.9c.8-2.4 1.8-5 2.1-7.6 .7-9.7-11.5-11.8-11.5-5 0 5 7.9 19.4 7.9 27.8 0 10.2-5.8 15.7-13.9 16.5-8.4 .8-20.2-10.5-20.2-10.5l5-14.4 2.9 2.1c-3 17.8 17.7 20.4 13.3 5.2-1.1-4-18.7-34.2 2.1-38.2 13.6-2.4 23 16.5 23 16.5L575.8 276zm35.6-10.2c-11-30.4-60.5-127.5-192-129.6-53.4-1-94.3 15.4-132.8 38l85.6-9.2-91.4 20.7 25.1 19.6-3.9-16.5c7.5-1.7 39.1-8.5 66.8-8.9l-22.3 80.4c13.6-.7 19-9 19.6-22.8l5-1 .3 26.7c-22.5 3.2-37.3 6.7-49.5 9.9l13.1-43.2-61.5-36.7 2.4 8.1 10.2 5c6.3 18.6 19.4 56.6 20.4 58.7 2 4.3 3.2 5.8 12 4.5l1.1 5c-16.1 4.9-23.7 7.6-39 14.4l-2.4-4.7c4.4-2.9 8.7-3.9 5.5-12.8-23.7-62.5-21.5-58.1-22.8-59.4l2.4-4.4 33.5 67.3c-3.8-11.9 1.7 1.7-33-78.8l-41.9 88.5 4.7-13.9-35.9-42.2 27.8 93.5-11.8 8.4c-111.9-101.7-105.8-98.4-113.7-98.7-5.5-.3-13.6 5.5-13.6 5.5l-5-6c30.6-23.5 31.6-24.3 58.4-42.7l4.2 7.1s-5.8 4.2-7.9 7.1c-5.9 9.3 1.7 13.3 61.8 75.7l-18.8-58.9 39.8-10.2 25.7 30.6 4.4-12.3-5-24.6 13.1-3.4 .5 3.1 3.7-10.5-94.3 29.3 11.3-5-13.6-42.4 17.3-9.2 30.1 36.1 28.5-13.1c-1.4-7.5-2.5-14.5-4.7-19.6l17.3 13.9 4.7-2.1-59.2-42.7 23.1 11.5c19-6.1 25.2-7.5 32.2-9.7l2.6 11c-12.6 12.6 1.4 16.8 6.5 19.4l-13.6-61 12 28.3c4.2-1.3 7.3-2.1 7.3-2.1l2.6 8.6s-3.1 1-6.3 2.1l8.9 21 33.8-65.7-20.7 61c42.4-24.1 81.4-36.7 132-35.9 67 1 167.3 40.8 199.8 139.8 .8 2.1 0 2.6-.8 .3zm-408-113.4s1.8-.5 4.2-1.3l9.4 7.6c-.4 0-3.4-.3-11.3 2.4l-2.4-8.6zm143.8 38.5c-1.6-.6-26.5-4.8-33.3 20.7l21.7 17 11.5-37.7zM318.4 67.1c-58.4 0-106.1 12-115 14.4l0 .8c8.4 2.1 14.4 4.2 21.2 11.8l1.6 .3c6.6-1.8 49-13.9 110.2-13.9 180.2 0 301.7 116.8 301.7 223.4l0 10c0 1.3 .8 2.6 1.1 .5 .5-2.1 .8-8.6 .8-19.6 .3-83.8-96.6-227.6-321.6-227.6zM529.5 236.8c1.3-5.8 0-12.3-7.3-13.1-9.6-1.1-16.1 23.8-17 33.5-.8 5.5-1.3 14.9 6 14.9 4.7 0 9.7-.9 18.3-35.4zM468 279.7c-2.6-.8-9.4-.8-12.6 10.5-1.8 6.8 .5 13.4 6 14.7 3.7 1.1 8.9 .5 11.8-10.7 2.6-9.9-1.8-13.6-5.2-14.4zm23 21c1.8 .5 3.1 1 5.8 1.8 0-1.8 .5-8.4 .8-12.1-1 1.3-5.5 8.1-6.6 10l0 .3z\"]\n};\nvar faCreativeCommonsNd = {\n prefix: 'fab',\n iconName: 'creative-commons-nd',\n icon: [512, 512, [], \"f4eb\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm94 144.3l0 42.5-180.3 0 0-42.5 180.3 0zm0 79.8l0 42.5-180.3 0 0-42.5 180.3 0z\"]\n};\nvar faUsps = {\n prefix: 'fab',\n iconName: 'usps',\n icon: [512, 512, [], \"f7e1\", \"M428.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8l-27 0c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8 .1zM316.2 264.3c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3 196.6 0c-2.7-28.2-152.9-22.6-337.9-22.6L-5 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM62.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2L449.3 415.7 517 96 62.7 96z\"]\n};\nvar faSquareLetterboxd = {\n prefix: 'fab',\n iconName: 'square-letterboxd',\n icon: [448, 512, [], \"e62e\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5 0-13.6 3.9-26.3 10.6-37.1-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5 0 13.6-3.9 26.3-10.6 37.1 12.4 19.7 34.4 32.9 59.5 32.9 24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5 0-13.6 3.9-26.3 10.6-37.1-12.4-19.7-34.4-32.9-59.5-32.9zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5 0 13.6-3.9 26.3-10.6 37.1 12.4 19.8 34.4 32.9 59.5 32.9 38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z\"]\n};\nvar faMandalorian = {\n prefix: 'fab',\n iconName: 'mandalorian',\n icon: [384, 512, [], \"f50f\", \"M200.6 511.9c-1-3.3-1.7-15.8-1.4-24.6 .6-15.9 1-24.7 1.4-28.8 .6-6.2 2.9-20.7 3.3-21.4 .6-1 .4-27.9-.2-33.1-.3-2.6-.6-11.9-.7-20.7-.1-16.5-.5-20.1-2.7-24.8-1.1-2.3-1.2-3.8-1-11.4 .2-4.2 .1-8.5-.3-12.7-2-13-3.5-27.7-3.2-33.9s.4-7.1 2.1-9.7c3.1-4.7 6.5-14 8.6-23.3 2.3-9.9 3.9-17.2 4.6-20.7 1.1-5.1 2.6-10.1 4.4-15.1 2.3-6.2 2.5-15.4 .4-15.4-.3 0-1.4 1.2-2.4 2.7s-4.8 4.8-8.3 7.4c-8.4 6.1-11.7 9.4-12.7 12.6s-1 7.2-.2 7.8c.3 .2 1.3 2.4 2.1 4.9 1.6 5 1.9 10.3 .7 15.4-.4 1.8-1 5.5-1.5 8.2s-1 6.5-1.3 8.2c-.2 1.5-.7 3-1.5 4.3-1 1-1.1 .9-2.1-.5-.7-1.5-1.2-3.1-1.4-4.7-.2-1.7-1.6-7.1-3.1-11.9-3.3-10.9-3.5-16.2-1-21 .8-1.4 1.4-3 1.7-4.6 0-2.4-2.2-5.3-7.4-9.9-7-6.2-8.6-7.9-10.2-11.3-1.7-3.6-3.1-4.1-4.5-1.5-1.8 3-2.6 9.1-3 22l-.3 12.2 2 2.2c3.2 3.7 12.1 16.5 13.8 19.8 3.4 6.7 4.3 11.7 4.4 23.6s1 22.8 2 24.7c.4 .7 .5 1.4 .3 1.5s.4 2.1 1.3 4.3c1 2.9 1.7 5.9 2.1 9 .4 3.5 .9 7 1.7 10.4 2.2 9.6 2.8 14.1 2.4 20.1-.2 3.3-.5 11.1-.7 17.3-1.3 41.8-1.8 58-2 61.2-.1 2-.4 11.5-.6 21.1-.4 16.3-1.3 27.4-2.4 28.6-.6 .7-8.1-4.9-12.5-9.5-3.8-3.9-4-4.8-2.8-9.9 .7-3 2.3-18.3 3.3-32.6 .4-4.8 .8-10.5 1-12.7 .8-9.4 1.7-20.3 2.6-34.8 .6-8.5 1.3-16.4 1.7-17.7s.9-9.9 1.1-19.1l.4-16.8-2.3-4.3c-1.7-3.3-4.9-6.9-13.2-15.3-6-6.1-11.8-12.3-12.9-13.8l-2-2.8 .8-10.9c1.1-15.7 1.1-48.6 0-59.1l-.9-8.7-3.3-4.5c-5.9-8.1-5.8-7.7-6.2-33.3-.1-6.1-.4-11.5-.6-12.1-.8-1.9-3-2.7-8.5-3-8.9-.6-11-1.9-23.8-14.6-6.2-6-12.3-12-13.8-13.2-2.8-2.4-2.8-2-.6-9.6l1.4-4.6-1.7-3c-.8-1.4-1.6-2.8-2.6-4.1-1.3-1.5-5.5-10.9-6-13.5-.2-.7-.2-1.4-.1-2.1s.5-1.3 .9-1.8c2.2-2.9 3.4-5.7 4.5-10.7 2.3-11.2 7.7-26.1 10.6-29.2 3.2-3.5 7.7-1 9.4 5 1.3 4.8 1.4 9.8 .1 18.6-.5 3.7-.9 7.4-1 11.1 0 4 .2 4.7 2.3 7.4 3.3 4.4 7.7 7.4 15.2 10.5 1.7 .7 3.3 1.7 4.7 2.8 11.2 10.7 18.6 16.2 22.9 16.9 5.2 .8 8 4.5 10 13.4 1.3 5.7 4 11.1 5.5 11.1 1.2-.2 2.3-.7 3.3-1.4 2-1.2 2.2-1.7 2.2-4.2-.3-6-.9-11.9-2-17.8-.4-1.7-.8-4.1-.9-5.4s-.6-3.8-1-5.7c-2.6-11.2-3.6-15.5-4.1-16-1.6-2-4.1-10.2-4.9-15.9-1.6-11.1-4-14.2-12.9-17.4-4.9-1.8-9.4-4.5-13.3-7.9-1.2-1-4-3.2-6.4-5.1s-4.4-3.5-4.6-3.8c-.8-.7-1.7-1.4-2.7-2-6.2-4.2-8.8-7-11.3-12l-2.4-5c-.1-8.7-.3-17.3-.4-26l6.9-6.6c4-3.8 8.5-7.4 10.6-8.4 3.3-1.7 4.4-1.9 11.4-2 8.5-.2 10.1 0 11.7 1.6s1.4 6.4-.3 8.5c-.6 .7-1.1 1.5-1.3 2.3 0 .6-2.6 4.9-5.4 9-1.1 2.2-1.9 4.5-2.4 6.8 20.4 13.4 21.6 3.8 14.1 29l11.4 2.5c3.1-8.7 6.5-17.3 8.6-26.2 .3-7.6-12-4.2-15.4-8.7-2.3-5.9 3.1-14.2 6.1-19.2 1.6-2.3 6.6-4.7 8.8-4.1 .9 .2 4.2-.4 7.4-1.3 2.5-.8 5-1.3 7.5-1.7 2-.2 4.1-.7 6-1.3 3.7-1.1 4.5-1.2 6.3-.4 1.9 .6 3.8 1.1 5.8 1.4 2.1 .3 4.1 .9 6 1.9 1.6 .9 3.3 1.7 5 2.2 2.5 .7 3 .6 7-1.7L226 5.4 236.7 5c10.4-.4 10.8-.5 15.3-2.7L256.5 0 259 1.4c1.8 1 3.1 2.7 4.9 6 2.4 4.5 2.4 4.6 1.4 7.4-.9 2.4-.9 3.3-.1 6.4 .5 2 1.2 4 2.1 5.9 .6 1.3 1.1 2.6 1.3 4 .3 4.3 0 5.3-2.4 6.9-2.2 1.5-7 7.9-7 9.3-.2 1-.6 2-1.1 3-5 11.5-6.8 13.6-14.3 17-9.2 4.2-12.3 5.2-16.2 5.2-3.1 0-4 .2-4.5 1.3-1.2 1.4-2.5 2.7-4.1 3.7-1.8 1.2-3.3 2.9-4.4 4.8-.5 1.2-1.4 2.2-2.5 2.9-.9 .4-1.8 1-2.5 1.7-2.2 1.9-4.6 3.7-7 5.4-3.3 2.3-6.9 5-7.9 6-.7 .7-1.5 1.3-2.4 1.7-.8 .4-1.6 .9-2.1 1.6-1.3 1.4-1.5 2.1-1.1 4.6 .3 2 .8 4 1.4 5.9 1.3 3.8 1.3 7.9 0 10.6s-.9 6.7 1.4 9.6c2 2.6 2.2 4.6 .7 8.8-.8 2.9-1.1 5.9-1.1 8.9 0 4.9 .2 6.3 1.5 8.4s1.8 2.5 3.2 2.3c2-.2 2.3-1.1 4.7-12.1 2.2-10 3.7-11.9 13.8-17.1 2.9-1.5 7.5-4 10-5.4s6.8-3.7 9.4-4.9c5.9-2.6 11.2-6.6 15.2-11.7 7.1-8.8 10-16.2 12.8-33.3 .4-2.8 1.3-5.4 2.9-7.7 1.4-2.2 2.4-4.7 2.9-7.3 1-5.3 2.9-9.1 5.6-11.5 4.7-4.2 6-1.1 4.6 10.9-.5 3.9-1.1 10.3-1.4 14.4l-.6 7.4c3 2.7 5.9 5.5 8.9 8.2l.1 8.4c.1 4.6 .5 9.5 .9 10.9l.8 2.5-6.4 6.3c-8.5 8.3-12.9 13.9-16.8 21.6-1.8 3.5-3.7 7.1-4.4 8-2.2 3.1-6.5 13-8.8 20.3l-2.3 7.2-7 6.5c-3.8 3.6-8 7.2-9.2 8.2-3 2.3-4.3 5.1-4.3 10-.1 2.5 .4 5 1.6 7.3 .8 1.6 1.5 3.2 2.1 4.8 .3 1 .9 2 1.6 2.9 1.4 1.6 1.9 16.1 .8 23.2-.7 4.5-3.6 12-4.7 12-1.8 0-4.1 9.3-5.1 20.7-.2 2-.6 5.9-1 8.7s-1 10-1.4 16c-.8 12.2-.2 18.8 2 23.2 3.4 6.7 .5 12.7-11 22.8l-4 3.5 .1 5.2c.1 3 .4 6 1.1 8.9 4.6 16 4.7 16.9 4.4 37.1-.5 26.4-.3 40.3 .6 44.2 .5 2.3 .9 4.6 1.1 7 .2 2 .7 5.3 1.1 7.4 .5 2.3 .8 11 .8 22.7l0 19.1-1.8 2.6c-2.7 3.9-15.1 13.5-15.5 12.3l.1 0zm29.5-45.1c-.2-.3-.3-6.9-.3-14.6 0-14.1-.9-27.5-2.3-34.4-.4-2-.8-9.7-.9-17.1-.2-11.9-1.4-24.4-2.6-26.4-.7-1.1-3-17.7-3-21.3 0-4.2 1-6 5.3-9.1s4.9-3.1 5.5-.7c.3 1.1 1.4 5.6 2.6 10 3.9 15.1 4.1 16.3 4 21.7-.1 5.8-.1 6.1-1.7 17.7-1 7.1-1.2 12.4-1 28.4 .2 19.4-.6 35.7-2 41.3-.7 2.8-2.8 5.5-3.4 4.4l-.1 0zm-71-37.6c-.8-3.6-1.3-7.2-1.7-10.8s-1-7.2-1.7-10.8c-.5-2.1-.9-4.3-1-6.5-.3-3.2-.9-7.5-1.3-9.5-1-4.8-3.3-19.4-3.4-21.1 0-.7-.3-4-.7-7.4-.7-6.2-.8-27.7-.2-28.3 1-1 6.6 2.8 11.3 7.4l5.3 5.3-.4 6.5c-.2 3.6-.6 10.2-.8 14.8-.5 13.3-.7 8.7-1.6 28.4-.8 17.4-1.9 31.3-2.6 32-.1 .1-.2 .1-.2 .2s-.2 0-.3 0-.2 0-.3-.1-.1-.1-.2-.2l0 0zM72 162.6c21.1 12.8 17.8 14.2 28.5 17.7 13 4.3 18.9 7.1 23.2 16.9-43.7 36.1-69 57.9-76.7 70.9-31 52-6 101.6 62.8 87.2-14.2 29.2-78 28.6-98.7-4.9-24.7-40-22.1-118.3 61-187.7l0 0zm210.8 179c56.7 6.9 82.3-37.7 46.5-89.2 0 0-26.9-29.3-64.3-68 3-15.5 9.5-32.1 30.6-53.8 89.2 63.5 92 141.6 92.5 149.4 4.3 70.6-78.7 91.2-105.3 61.7l0 0z\"]\n};\nvar faSlack = {\n prefix: 'fab',\n iconName: 'slack',\n icon: [448, 512, [62447, \"slack-hash\"], \"f198\", \"M94.1 315.1c0 25.9-21.2 47.1-47.1 47.1S0 341 0 315.1 21.2 268 47.1 268l47.1 0 0 47.1zm23.7 0c0-25.9 21.2-47.1 47.1-47.1S212 289.2 212 315.1l0 117.8c0 25.9-21.2 47.1-47.1 47.1s-47.1-21.2-47.1-47.1l0-117.8zm47.1-189c-25.9 0-47.1-21.2-47.1-47.1S139 32 164.9 32 212 53.2 212 79.1l0 47.1-47.1 0zm0 23.7c25.9 0 47.1 21.2 47.1 47.1S190.8 244 164.9 244L47.1 244C21.2 244 0 222.8 0 196.9s21.2-47.1 47.1-47.1l117.8 0zm189 47.1c0-25.9 21.2-47.1 47.1-47.1S448 171 448 196.9 426.8 244 400.9 244l-47.1 0 0-47.1zm-23.7 0c0 25.9-21.2 47.1-47.1 47.1S236 222.8 236 196.9l0-117.8C236 53.2 257.2 32 283.1 32s47.1 21.2 47.1 47.1l0 117.8zm-47.1 189c25.9 0 47.1 21.2 47.1 47.1S309 480 283.1 480 236 458.8 236 432.9l0-47.1 47.1 0zm0-23.7c-25.9 0-47.1-21.2-47.1-47.1S257.2 268 283.1 268l117.8 0c25.9 0 47.1 21.2 47.1 47.1s-21.2 47.1-47.1 47.1l-117.8 0z\"]\n};\nvar faSlackHash = faSlack;\nvar faAngellist = {\n prefix: 'fab',\n iconName: 'angellist',\n icon: [384, 512, [], \"f209\", \"M315.6 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1-9.7-28.5-55.1-172.5-95.1-172.5-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7-.1 72.2 68.3 148.6 164.5 148.6 118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM280.2 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM110.8 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM108.5 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7 .1-7.7 12.7-21.1 20.4-21.1zM292.8 430.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3 .3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7 .1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"]\n};\nvar faAndroid = {\n prefix: 'fab',\n iconName: 'android',\n icon: [576, 512, [], \"f17b\", \"M420.5 253.9a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-265.1 0a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm273.7-96.5l47.9-83c.8-1.1 1.3-2.4 1.5-3.8s.2-2.7-.1-4.1-.9-2.6-1.7-3.7-1.8-2-3-2.7-2.5-1.1-3.9-1.3-2.7 0-4 .4-2.5 1.1-3.6 1.9-1.9 2-2.5 3.2l-48.5 84.1c-38.8-17.4-80.8-26.4-123.3-26.4s-84.5 9-123.3 26.4L116.2 64.4c-.6-1.2-1.5-2.3-2.5-3.2s-2.3-1.5-3.6-1.9-2.7-.5-4-.4-2.7 .6-3.9 1.3-2.2 1.6-3 2.7-1.4 2.4-1.7 3.7-.3 2.7-.1 4.1 .8 2.6 1.5 3.8l47.9 83C64.5 202.2 8.2 285.5 0 384l576 0c-8.2-98.5-64.5-181.8-146.9-226.6z\"]\n};\nvar faMeetup = {\n prefix: 'fab',\n iconName: 'meetup',\n icon: [576, 512, [], \"f2e0\", \"M131.1 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3s11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3a11.8 11.8 0 1 0 -4.9-23 11.8 11.8 0 1 0 4.9 23zM66.5 226.3a22.2 22.2 0 1 0 -24.7 36.9 22.2 22.2 0 1 0 24.7-36.9zm272-170.9a22.1 22.1 0 1 0 -22.4-38 22.1 22.1 0 1 0 22.4 38zm-191.1 58a16.9 16.9 0 1 0 -18.8-28 16.9 16.9 0 1 0 18.8 28zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8a10.1 10.1 0 1 0 -19.8 4.3 10.1 10.1 0 1 0 19.8-4.3zm-80.3-73.7a18.8 18.8 0 1 0 20.7 31.3 18.8 18.8 0 1 0 -20.7-31.3zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1 .9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9 .6-107.4 53.4-114.9 25.1-66.2 107.6-97.6 163.6-54.2 67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3 .9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3a23.3 23.3 0 1 0 26.2 38.4 23.3 23.3 0 1 0 -26.2-38.4z\"]\n};\nvar faFonticonsFi = {\n prefix: 'fab',\n iconName: 'fonticons-fi',\n icon: [384, 512, [], \"f3a2\", \"M114.4 224l92.4 0-15.2 51.2-76.4 0 0 157.8c0 8-2.8 9.2 4.4 10l59.6 5.6 0 34.4-179.2 0 0-35.2 29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8l0-155.8c0-3.2-4-3.2-8-3.2l-30.4 0 0-51.2 38.4 0 0-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4L163.6 180c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6l0 32c0 3.2-4.8 6-.8 6zM384 483l-140.8 0 0-34.4 28-3.6c7.2-.8 10.4-2.4 10.4-10l0-148c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4 110 0 0 208c0 8-3.6 8.8 4 10l21.6 3.6 0 34.4zM354 135.8l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10 38 0 21.2-38.4 12.8 0 21.2 38.4 38 0 4.8 13.2-30 33.2z\"]\n};\nvar faPalfed = {\n prefix: 'fab',\n iconName: 'palfed',\n icon: [576, 512, [], \"f3d8\", \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8 .7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zM190.4 266.1c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4 .9 74.4 2.7 100l0 .2c.2 3.4 .6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4 .2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9 .2 2.5 .4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4l30 0 22.4 217.2s0 44.3 44.7 44.3l288.9 0s44.7-.4 44.7-44.3l22.4-217.2 30 0s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4l-30.1 0c-7.3-25.6-30.2-74.3-119.4-74.3l-28 0 0-19.1s-2.7-18.4-21.1-18.4l-85.8 0S224 31.9 224 50.3l0 19.1-28.1 0s-105 4.2-120.5 74.3l-29 0S8 142.5 8 181.1z\"]\n};\nvar faWpbeginner = {\n prefix: 'fab',\n iconName: 'wpbeginner',\n icon: [512, 512, [], \"f297\", \"M463.2 322.4c56.2 64.3 4.2 157.6-91.9 157.6-39.6 0-78.8-17.7-100.1-50-6.9 .4-22.7 .4-29.6 0-21.4 32.4-60.6 50-100.1 50-95.5 0-148.3-93-91.9-157.6-79.1-131.9 31.3-290.4 206.8-290.4 175.6 0 285.9 158.6 206.8 290.4zm-339.6-83l41.5 0 0-58.1-41.5 0 0 58.1zm217.2 86.1l0-23.8c-60.5 20.9-132.4 9.2-187.6-34l.2 24.9c51.1 46.4 131.7 57.9 187.3 32.9zM190 239.4l166.1 0 0-58.1-166.1 0 0 58.1z\"]\n};\nvar faDiaspora = {\n prefix: 'fab',\n iconName: 'diaspora',\n icon: [448, 512, [], \"f791\", \"M219.7 354.6c-1.4 0-88 119.9-88.7 119.9S44.4 414 44 413.3 130.6 287.5 130.6 285.8c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1 .6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3 .4-2 1-148.6 1.7-149.6 .8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3 .8 .9 31.9 102.2 31.5 102.6-.9 .9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5l0 0z\"]\n};\nvar faProductHunt = {\n prefix: 'fab',\n iconName: 'product-hunt',\n icon: [512, 512, [], \"f288\", \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2l-70.3 0 0-74.4 70.3 0c20.5 0 37.2 16.7 37.2 37.2zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm367.9-37.2c0-47.9-38.9-86.8-86.8-86.8l-119.9 0 0 248 49.6 0 0-74.4 70.3 0c47.9 0 86.8-38.9 86.8-86.8z\"]\n};\nvar faSquareUpwork = {\n prefix: 'fab',\n iconName: 'square-upwork',\n icon: [448, 512, [], \"e67c\", \"M56 32l336 0c30.9 0 56 25.1 56 56l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32zM270.9 274.2c6.6-52.9 25.9-69.5 51.4-69.5 25.3 0 44.9 20.2 44.9 49.7s-19.7 49.7-44.9 49.7c-27.9 0-46.3-21.5-51.4-29.9zm-26.7-41.8c-8.2-15.5-14.3-36.3-19.2-55.6l-62.9 0 0 78.1c0 28.4-12.9 49.4-38.2 49.4S84.1 283.4 84.1 255l.3-78.1-36.2 0 0 78.1c0 22.8 7.4 43.5 20.9 58.2 13.9 15.2 32.8 23.2 54.8 23.2 43.7 0 74.2-33.5 74.2-81.5l0-52.5c4.6 17.3 15.4 50.5 36.2 79.7l-19.3 110.5 36.8 0 12.8-78.4c4.2 3.5 8.7 6.6 13.4 9.4 12.3 7.8 26.4 12.2 40.9 12.6l3.4 0c45.1 0 80.9-34.9 80.9-81.9s-35.9-82.2-80.9-82.2c-45.4 0-70.9 29.7-78.1 60.1l0 .2z\"]\n};\nvar faCuttlefish = {\n prefix: 'fab',\n iconName: 'cuttlefish',\n icon: [448, 512, [], \"f38c\", \"M348 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8-45.3-49.6-110.5-80.7-183-80.7-137 0-248 111-248 248S115 504 252 504c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"]\n};\nvar faMedapps = {\n prefix: 'fab',\n iconName: 'medapps',\n icon: [320, 512, [], \"f3c6\", \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7 .2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32L92 416c-21.2 0-21.2 32 0 32l136 0zm-24 64c21.2 0 21.2-32 0-32l-88 0c-21.2 0-21.2 32 0 32l88 0zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5 0-85.6-71.8-155.2-160-155.2S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6-32.6-60.4-66.1-95.6-66.1-151.7 0-67.9 57-123.2 127-123.2S287 87.3 287 155.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"]\n};\nvar faPix = {\n prefix: 'fab',\n iconName: 'pix',\n icon: [512, 512, [], \"e43a\", \"M242.4 292.5c5.4-5.4 14.7-5.4 20.1 0l77 77c14.2 14.2 33.1 22 53.1 22l15.1 0-97.1 97.1c-30.3 29.5-79.5 29.5-109.8 0l-97.5-97.4 9.3 0c20 0 38.9-7.8 53.1-22l76.7-76.7zm20.1-73.6c-6.4 5.5-14.6 5.6-20.1 0l-76.7-76.7c-14.2-15.1-33.1-22-53.1-22l-9.3 0 97.4-97.4c30.4-30.3 79.6-30.3 109.9 0l97.2 97.1-15.2 0c-20 0-38.9 7.8-53.1 22l-77 77zM112.6 142.7c13.8 0 26.5 5.6 37.1 15.4l76.7 76.7c7.2 6.3 16.6 10.8 26.1 10.8 9.4 0 18.8-4.5 26-10.8l77-77c9.8-9.7 23.3-15.3 37.1-15.3l37.7 0 58.3 58.3c30.3 30.3 30.3 79.5 0 109.8l-58.3 58.3-37.7 0c-13.8 0-27.3-5.6-37.1-15.4l-77-77c-13.9-13.9-38.2-13.9-52.1 .1l-76.7 76.6c-10.6 9.8-23.3 15.4-37.1 15.4l-31.8 0-58-58c-30.3-30.3-30.3-79.5 0-109.8l58-58.1 31.8 0z\"]\n};\nvar faSquareTumblr = {\n prefix: 'fab',\n iconName: 'square-tumblr',\n icon: [448, 512, [\"tumblr-square\"], \"f174\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9l0-90-29.7 0c-3.4 0-6.2-2.8-6.2-6.2l0-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2 .5-6.9 4.1-10.2 10-10.2l44.3 0c3.4 0 6.2 2.8 6.2 6.2l0 72 51.9 0c3.4 0 6.2 2.8 6.2 6.2l0 51.1c0 3.4-2.8 6.2-6.2 6.2l-52.1 0 0 83.3c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1-8.5 9.1-31.2 19.8-60.9 19.8z\"]\n};\nvar faTumblrSquare = faSquareTumblr;\nvar faReact = {\n prefix: 'fab',\n iconName: 'react',\n icon: [512, 512, [], \"f41b\", \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1 .9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2 .6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9-53.4 18.5-91.7 47.7-91.7 77.9 0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zM136.9 187.2c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zM115.7 320.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6 .4 19.5 .6 29.5 .6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8 .9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 301.8a45.8 45.8 0 1 0 0-91.6 45.8 45.8 0 1 0 0 91.6z\"]\n};\nvar faHuggingFace = {\n prefix: 'fab',\n iconName: 'hugging-face',\n icon: [576, 512, [], \"e869\", \"M286.8 8.2c130 0 235.4 105.8 235.4 236.3 0 17.7-1.9 35-5.6 51.7-1.4 6.5-3.1 12.8-5.1 19.1 6.5-.6 13 .6 18.7 3.5 12.6 6.5 20.2 21.7 18.2 35.7-.7 4.9-2.4 9.4-4.8 13.5 5.2 4.2 9 10.1 10.8 17.1 1.4 5.5 2.9 17.1-4.8 28.9 5.8 9.2 6.6 20.6 2.2 30.6-6.2 14.1-21.7 25.3-51.7 37.3-32.5 13-67.1 21.9-102.3 21.9-32 0-55.9-8.9-71-26.4-13 2.2-26.3 3.4-40 3.4-12.7 0-25.2-1-37.3-2.9-15.1 17.2-38.8 25.9-70.6 25.9-35.1 0-70-9-102.4-21.9-30-12-45.5-23.1-51.7-37.3-4.4-9.9-3.6-21.4 2.2-30.6-7.7-11.9-6.3-23.4-4.8-28.9 1.8-7 5.7-12.9 10.8-17.1-2.5-4.1-4.1-8.6-4.8-13.5-1.5-10.4 2-20.7 9.7-29.2 6.1-6.7 15.1-10.3 24.2-10.2-1.9-6.1-3.6-12.4-5-18.7-3.7-16.7-5.7-34-5.7-51.8 0-130.5 105.4-236.3 235.4-236.3zM117.5 311c-13-8.2-22.1-3.6-19 13.4s57.2 58.2 52 67.2c-5.2 8.8-23.5-10.1-23.8-10.5 0 0-58.2-53.1-70.8-39.3-12.6 13.8 9.6 25.4 41.3 44.7s34.2 24.4 29.7 31.7-74.5-52-81.1-26.8c-6.5 25.1 71.4 32.4 66.7 49.8-4.8 17.4-54.9-32.8-65.2-13.3-10.3 19.6 70.8 42.6 71.4 42.7 26.2 6.8 92.6 21.3 115.9-12.9 16.7-24.6 15.6-43.1-7.4-66.1s-36.3-56.7-36.3-56.7c0-.2-5-19.5-16.3-17.8-11.4 1.8-19.7 31 4.1 48.9 23.8 17.9-4.7 30-13.9 13.3-9.2-16.8-34.2-59.9-47.1-68.2zm360.6 13.4c3.1-17-6.1-21.6-19-13.4-13 8.3-37.9 51.4-47.1 68.2s-37.7 4.6-13.9-13.3 15.4-47.1 4.1-48.9-16.3 17.8-16.3 17.8c-.1 .2-13.4 33.7-36.3 56.7-22.9 23-24.1 41.5-7.4 66.1 23.2 34.2 89.7 19.7 115.9 12.9 1.5-.4 81.6-23.3 71.4-42.7-10.3-19.5-60.4 30.6-65.3 13.3-4.8-17.3 73.2-24.6 66.7-49.8-6.6-25.1-76.6 34.1-81.1 26.8-4.5-7.3-2-12.4 29.7-31.7 31.7-19.3 54-30.9 41.3-44.7-12.7-13.8-70.8 39.3-70.8 39.3-.4 .4-18.6 19.3-23.8 10.5-5.3-8.9 48.9-50.1 52-67.2zM286.8 32.6c-116.6 0-211.1 94.9-211.1 211.9 0 17.1 2 33.8 5.8 49.7 0-.1 .1-.1 .2-.2 6.1-7.4 14.9-11.4 24.7-11.4 17.7 0 31.1 11.9 41.5 24.9 6.8-9.4 17.1-15 27.9-15 20.7 0 33.2 18.1 37.9 34.3 2.3 5.5 13.6 30.5 30.4 47.4 25.7 25.8 32.2 52.4 19.4 80.9 16 1.8 32.8 1.7 49.2-.3-12.5-28.4-6-54.9 19.6-80.6 16.9-16.9 28.1-41.9 30.5-47.4 4.7-16.2 17.2-34.3 37.9-34.3 10.9 0 21.2 5.6 27.9 15 10.4-13 23.8-24.9 41.5-24.9 8.7 0 16.6 3.1 22.5 8.9 5-22 6.4-45.8 4.1-68.7-10.8-106.9-100.7-190.3-210-190.3zm1.5 234.2c43.6 0 79-42 79-14.5 0 27.4-19.2 80.9-78.8 80.9-19.2 0-34.2-5.5-45.8-13.9-23.2-19.4-33.4-48.2-33.4-66.9 0-27.4 35.4 14.5 79 14.5zm-13.3 25c-8.2 2.4-15.5 6.8-21.5 12.6 22 12.8 50.4 12.9 71.7-1.3-5.5-4.9-12-8.7-19.1-11-5.1-1.6-10.4 15.8-16 15.8-5.2 0-10.3-17.6-15.1-16.2zM147.1 215.5a19.8 19.8 0 1 1 0-39.6 19.8 19.8 0 1 1 0 39.6zm282.4 0a19.8 19.8 0 1 1 0-39.6 19.8 19.8 0 1 1 0 39.6zm-244-55.4c7.9-14.9 26.3-20.5 41.1-12.6s20.4 26.4 12.6 41.2c-3.7 7-15.5-4.4-22.4-1.9-7.7 2.7-10.8 18.7-18.6 14.6-14.8-7.9-20.4-26.4-12.6-41.2zm164.4-12.6c14.8-7.9 33.2-2.3 41.1 12.6s2.2 33.3-12.6 41.2c-7.8 4.2-10.9-11.8-18.7-14.6-6.9-2.4-18.7 9-22.4 1.9-7.9-14.9-2.2-33.3 12.6-41.2z\"]\n};\nvar faJxl = {\n prefix: 'fab',\n iconName: 'jxl',\n icon: [448, 512, [], \"e67b\", \"M412.2 32L35.8 32C16 32 0 48 0 67.8L0 444.2C0 464 16 480 35.8 480l376.4 0c19.8 0 35.8-16 35.8-35.8l0-376.4C448 48 432 32 412.2 32zM378.6 333.7c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0zm0-113.9c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0zm0-113.9c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0z\"]\n};\nvar faSquareLinkedin = {\n prefix: 'fab',\n iconName: 'square-linkedin',\n icon: [448, 512, [], \"e7d0\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm5 170.2l66.5 0 0 213.8-66.5 0 0-213.8zm71.7-67.7a38.5 38.5 0 1 1 -77 0 38.5 38.5 0 1 1 77 0zM317.9 416l0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2-66.4 0z\"]\n};\nvar faCss = {\n prefix: 'fab',\n iconName: 'css',\n icon: [448, 512, [], \"e6a2\", \"M376.3 32L0 32 0 408.3c0 19 7.6 37.2 21 50.7s31.7 21 50.7 21l304.6 0c19 0 37.2-7.6 50.7-21s21-31.7 21-50.7l0-304.6c0-19-7.6-37.2-21-50.7s-31.7-21-50.7-21zM332.4 431.4c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.5-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-4-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L351.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.5 12.5c7.5 8.4 11.5 20.3 11.8 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4 27.4-12.3 35.7c-8.2 8.3-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-101 0c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.4-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-3.9-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L250.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.4 12.5c7.6 8.4 11.5 20.3 11.9 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4.1 27.4-12.3 35.7s-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-105.6 1.1c-8.4-7.7-12.5-19.2-12.5-34.5l0-75.4c0-15.2 4.4-26.7 13.2-34.6c8.9-7.8 20.7-11.8 35.2-11.8c14.1 0 25.2 4 33.4 12c8.3 8 12.5 20 12.5 35.9l0 6-33.1 0 0-5.8c0-6.1-1.3-10.7-4-13.6c-1.1-1.5-2.6-2.7-4.3-3.5s-3.5-1.2-5.4-1.1c-5.4 0-9.2 1.8-11.4 5.6c-2.3 5.2-3.3 10.8-3 16.4l0 65.5c0 13.7 4.8 20.6 14.4 20.8c4.5 0 7.9-1.6 10.2-4.8c2.5-4.1 3.7-8.8 3.5-13.6l0-4.9 33.1 0 0 5.1c0 10.6-2.1 19.5-6.2 26.6c-4 6.9-9.9 12.5-17.1 16c-7.7 3.7-16.1 5.5-24.6 5.3c-14.2 0-25.5-3.9-33.8-11.6z\"]\n};\nvar faHashnode = {\n prefix: 'fab',\n iconName: 'hashnode',\n icon: [512, 512, [], \"e499\", \"M35.7 171.1c-46.9 46-46.9 122.9 0 169.8L171.6 476.8c46 46.9 122.9 46.9 169.8 0L477.3 340.9c46.9-46.9 46.9-123.8 0-169.8L341.4 35.2c-46.9-46.9-123.8-46.9-169.8 0L35.7 171.1zM196 196.5a84.5 84.5 0 1 1 120 119 84.5 84.5 0 1 1 -120-119z\"]\n};\nvar faRedditAlien = {\n prefix: 'fab',\n iconName: 'reddit-alien',\n icon: [512, 512, [], \"f281\", \"M373 138.6c-25.2 0-46.3-17.5-51.9-41-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3 12.6-9.7 28.4-15.5 45.5-15.5 41.3 0 74.7 33.4 74.7 74.7 0 29.8-17.4 55.5-42.7 67.5-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4c-25.4-11.9-43-37.7-43-67.7 0-41.3 33.4-74.7 74.7-74.7 17.2 0 33 5.8 45.7 15.6 34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5 4.9-24.2 26.3-42.4 52.1-42.4 29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1 36.6-9.8 37.8-36.9-14.7-49.1-35.7-49.1l.1 0zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1 16.9 36.9 37.8 36.9 39.3-11 38-38.1l.1 0zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1 12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z\"]\n};\nvar faTiktok = {\n prefix: 'fab',\n iconName: 'tiktok',\n icon: [448, 512, [], \"e07b\", \"M448.5 209.9c-44 .1-87-13.6-122.8-39.2l0 178.7c0 33.1-10.1 65.4-29 92.6s-45.6 48-76.6 59.6-64.8 13.5-96.9 5.3-60.9-25.9-82.7-50.8-35.3-56-39-88.9 2.9-66.1 18.6-95.2 40-52.7 69.6-67.7 62.9-20.5 95.7-16l0 89.9c-15-4.7-31.1-4.6-46 .4s-27.9 14.6-37 27.3-14 28.1-13.9 43.9 5.2 31 14.5 43.7 22.4 22.1 37.4 26.9 31.1 4.8 46-.1 28-14.4 37.2-27.1 14.2-28.1 14.2-43.8l0-349.4 88 0c-.1 7.4 .6 14.9 1.9 22.2 3.1 16.3 9.4 31.9 18.7 45.7s21.3 25.6 35.2 34.6c19.9 13.1 43.2 20.1 67 20.1l0 87.4z\"]\n};\nvar faWordpress = {\n prefix: 'fab',\n iconName: 'wordpress',\n icon: [512, 512, [], \"f19a\", \"M61.7 169.4l101.5 278c-71-34.4-119.9-107.2-119.9-191.4 0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8 .9 0 1.8 .1 2.8 .2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7 .3 13.7 .3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4 46.6-139.6-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zM259.7 274.6L195.9 460.1c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9L259.7 274.6zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9c63.3-36.9 105.8-105.4 105.8-183.9 0-37-9.4-71.8-26-102.1zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm484.6 0a236.6 236.6 0 1 0 -473.2 0 236.6 236.6 0 1 0 473.2 0z\"]\n};\nvar faIdeal = {\n prefix: 'fab',\n iconName: 'ideal',\n icon: [512, 512, [], \"e013\", \"M93.8 165.5a49.1 49.1 0 1 0 0 98.1 49.1 49.1 0 1 0 0-98.1zM54.3 425.8l78.9 0 0-140.5-78.9 0 0 140.5zM205.8 214.2c0-20-10-22.5-18.7-22.5l-14 0 0 45.8 14 0c9.7 0 18.7-2.8 18.7-23.3zm201.7 46l0-91.3 22.8 0 0 68.6 33.7 0C454.6 113.1 356.8 86.2 267.8 86.2l-94.8 0 0 82.8 14 0c25.6 0 41.5 17.4 41.5 45.3 0 28.8-15.5 46-41.5 46l-14 0 0 165.6 94.8 0c144.6 0 194.9-67.2 196.7-165.6l-57.1 0zm-109.8 0l-56.2 0 0-91.2 54.4 0 0 22.7-31.7 0 0 10.6 30 0 0 22.7-30 0 0 12.5 33.5 0 0 22.7zm74.7 0l-5.2-17.7-29.7 0-5.2 17.7-23.7 0 27.5-91.3 32.3 0 27.5 91.3-23.7 0zM267.8 32L.1 32 .1 480 267.8 480c161.8 0 251-79.7 251-224.5 0-83.5-32.6-223.5-251-223.5zm0 426.9l-246.6 0 0-405.9 246.6 0c142.1 0 229.9 64.6 229.9 202.4 0 134.1-81 203.4-229.9 203.4zm83.9-264.9l-7.5 25.8 16.4 0-7.5-25.8-1.4 0z\"]\n};\nvar faPiedPiperPp = {\n prefix: 'fab',\n iconName: 'pied-piper-pp',\n icon: [448, 512, [], \"f1a7\", \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7l0-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2l0 68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6S226 95.9 185 95.9c-12 0-24.1 3.2-34.6 8.8l-45.7 0 0 206.3 51.8-10.1 0-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4 .2-9.6 .7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8l0 156.3 51.8-10.1 0-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"]\n};\nvar faUssunnah = {\n prefix: 'fab',\n iconName: 'ussunnah',\n icon: [512, 512, [], \"f407\", \"M496.9 268.1c0 63.9-25.4 125.2-70.6 170.3S319.9 509 256 509 130.8 483.5 85.7 438.4 15.1 331.9 15.1 268c0-63.9 25.4-125.2 70.6-170.4S192.2 27.1 256.1 27.1 381.3 52.4 426.5 97.6 497 204.1 497 268l-.1 .1zM39.5 268c-.6 28.8 4.5 57.5 15.1 84.3s26.4 51.2 46.6 71.8 44.2 37 70.8 48.1 55.1 16.9 83.9 16.9 57.4-5.8 83.9-16.9 50.6-27.5 70.8-48.1 36-45 46.6-71.8 15.7-55.5 15.1-84.3c.6-28.8-4.5-57.5-15.1-84.3s-26.4-51.2-46.6-71.8-44.2-37-70.8-48.1-55.1-16.9-83.9-16.9-57.4 5.8-83.9 16.9-50.6 27.5-70.8 48.1-36 45-46.6 71.8-15.7 55.5-15.1 84.3zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9-5.5-4.3-8.2-12.3-8.2-23.8l0-96.5c0-6.5-5.2-20.2-15.7-41.2 7 0 17-9.1 30-27.2l0 147.8c0 11 2.4 19.4 7 25.3 3.7 4.7 10.1 8.9 19 12.6 1.2 .4 2.6 .9 4.1 1.4 2.9 .9 6.3 2.1 10.3 3.5-1.8 2.7-8.3 4-19.9 4l.1 0zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4l-89.8 0c3.3-5.3 4.9-8.8 4.9-10.8s-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4 0-7.4 2.1-13.9 6.3-19.3l20-25.6-7.1-17.7 16.1-19.8 6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7 0 4.2 2.8 13.3 8.3 27.3l16.2 40.7 17.7 0c2.8 .4 7.7 5 14.6 13.9 1.8 2.4 4.3 5.8 7.7 10.2 1.4 1.9 2.9 3.9 4.6 6.1 1.3-2.3 2-4.6 2-7.1 0-2-1.3-6.6-4-13.4L178 304.1c-4-10.6-6.1-17.7-6.1-21.3 0-6.3 1.9-12.3 5.8-17.9 .5-.6 1-1.3 1.5-1.9 4.4-5.6 8.8-11.1 13.3-16.5-1.1 4.6-1.7 8.7-1.7 12 0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3l25.9 0-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32 13.4 0-6.1-15.8c-1.5-3.9-4-7-7.7-9.3l15.7-20.1 17.3 45.2 13.4 0-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20 22.4 58.7 26.2 0c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3l0-93.5c0-6.5-4.5-20.3-13.7-41.2 5.4 0 14.1-9.1 26.2-27.2l0 163.5c0 7.2 .6 12 1.7 14.6 1.6 3.4 5.3 6.2 11.1 8.2-3.9 5.6-8.7 8.5-14.5 8.5l-154.8 0-.1-.2zm-98-44c-2.7-6.7-4-11.7-4-15-.6 1.2-2.4 3.7-5.4 7.6-1.4 1.9-2.2 3.7-2.2 5.3 0 2.6 .8 5.7 2.2 9.3l5.6 13.9c5 0 9 0 11.9-.1l-8.2-20.9 .1-.1zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0zm-27.6 0c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0zm87 27.5c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0z\"]\n};\nvar faFortAwesomeAlt = {\n prefix: 'fab',\n iconName: 'fort-awesome-alt',\n icon: [512, 512, [], \"f3a3\", \"M208 237.4l-22.2 0c-2.1 0-3.7 1.6-3.7 3.7l0 51.7c0 2.1 1.6 3.7 3.7 3.7l22.2 0c2.1 0 3.7-1.6 3.7-3.7l0-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0l-22.2 0c-2.1 0-3.7 1.6-3.7 3.7l0 51.7c0 2.1 1.6 3.7 3.7 3.7l22.2 0c2.1 0 3.7-1.6 3.7-3.7l0-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5-27.6-19.6-59.3-33.7-93.6-40.7-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5-28.9 40.6-45.8 90.1-45.8 143.6 0 2 .1 4 .1 6 .1 .7 .1 1.3 .1 2 .1 1.3 .1 2.7 .2 4 0 .8 .1 1.5 .1 2.3 0 1.3 .1 2.5 .2 3.7 .1 .8 .1 1.6 .2 2.4 .1 1.1 .2 2.3 .3 3.5 0 .8 .1 1.6 .2 2.4 .1 1.2 .3 2.4 .4 3.6 .1 .8 .2 1.5 .3 2.3 .1 1.3 .3 2.6 .5 3.9 .1 .6 .2 1.3 .3 1.9l.9 5.7c.1 .6 .2 1.1 .3 1.7 .3 1.3 .5 2.7 .8 4 .2 .8 .3 1.6 .5 2.4 .2 1 .5 2.1 .7 3.2 .2 .9 .4 1.7 .6 2.6 .2 1 .4 2 .7 3 .2 .9 .5 1.8 .7 2.7 .3 1 .5 1.9 .8 2.9 .3 .9 .5 1.8 .8 2.7 .2 .9 .5 1.9 .8 2.8s.5 1.8 .8 2.7c.3 1 .6 1.9 .9 2.8 .6 1.6 1.1 3.3 1.7 4.9 .4 1 .7 1.9 1 2.8 .3 1 .7 2 1.1 3 .3 .8 .6 1.5 .9 2.3l1.2 3c.3 .7 .6 1.5 .9 2.2 .4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3 .7 .6 1.3 .9 2 .5 1 1 2.1 1.5 3.1 .2 .6 .5 1.1 .8 1.7 .6 1.1 1.1 2.2 1.7 3.3 .1 .2 .2 .3 .3 .5 2.2 4.1 4.4 8.2 6.8 12.2 .2 .4 .5 .8 .7 1.2 .7 1.1 1.3 2.2 2 3.3 .3 .5 .6 .9 .9 1.4 .6 1.1 1.3 2.1 2 3.2 .3 .5 .6 .9 .9 1.4 .7 1.1 1.4 2.1 2.1 3.2 .2 .4 .5 .8 .8 1.2 .7 1.1 1.5 2.2 2.3 3.3 .2 .2 .3 .5 .5 .7 37.5 51.7 94.4 88.5 160 99.4 .9 .1 1.7 .3 2.6 .4 1 .2 2.1 .4 3.1 .5s1.9 .3 2.8 .4c1 .2 2 .3 3 .4 .9 .1 1.9 .2 2.9 .3s1.9 .2 2.9 .3 2.1 .2 3.1 .3c.9 .1 1.8 .1 2.7 .2 1.1 .1 2.3 .1 3.4 .2 .8 0 1.7 .1 2.5 .1 1.3 0 2.6 .1 3.9 .1 .7 .1 1.4 .1 2.1 .1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1 .8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2 .9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5 .9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4 .2-.2 .3-.5 .5-.7 .8-1.1 1.5-2.2 2.3-3.3 .2-.4 .5-.8 .8-1.2 .7-1.1 1.4-2.1 2.1-3.2 .3-.5 .6-.9 .9-1.4 .6-1.1 1.3-2.1 2-3.2 .3-.5 .6-.9 .9-1.4 .7-1.1 1.3-2.2 2-3.3 .2-.4 .5-.8 .7-1.2 2.4-4 4.6-8.1 6.8-12.2 .1-.2 .2-.3 .3-.5 .6-1.1 1.1-2.2 1.7-3.3 .2-.6 .5-1.1 .8-1.7 .5-1 1-2.1 1.5-3.1 .3-.7 .6-1.3 .9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7 .6-1.5 .9-2.2l1.2-3c.3-.8 .6-1.5 .9-2.3 .4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9 .3-1 .6-1.9 .9-2.8s.5-1.8 .8-2.7c.2-.9 .5-1.9 .8-2.8s.6-1.8 .8-2.7c.3-1 .5-1.9 .8-2.9 .2-.9 .5-1.8 .7-2.7 .2-1 .5-2 .7-3 .2-.9 .4-1.7 .6-2.6 .2-1 .5-2.1 .7-3.2 .2-.8 .3-1.6 .5-2.4 .3-1.3 .6-2.7 .8-4 .1-.6 .2-1.1 .3-1.7l.9-5.7c.1-.6 .2-1.3 .3-1.9 .1-1.3 .3-2.6 .5-3.9 .1-.8 .2-1.5 .3-2.3 .1-1.2 .3-2.4 .4-3.6 0-.8 .1-1.6 .2-2.4 .1-1.1 .2-2.3 .3-3.5 .1-.8 .1-1.6 .2-2.4 .1 1.7 .1 .5 .2-.7 0-.8 .1-1.5 .1-2.3 .1-1.3 .2-2.7 .2-4 .1-.7 .1-1.3 .1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2l0-75.8c0-58.6-88.6-58.6-88.6 0l0 75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9l0-71.3c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 25.8 29.6 0 0-144c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-4.8 6.5-3.7 9.5-3.7l0-90.2c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5l0 3.9c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7l0 48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8l0 30.7c3 0 9.5-1.1 9.5 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 144 29.5 0 0-25.8c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 71.3z\"]\n};\nvar faBuromobelexperte = {\n prefix: 'fab',\n iconName: 'buromobelexperte',\n icon: [448, 512, [], \"f37f\", \"M0 32l0 128 128 0 0-128-128 0zM120 152l-112 0 0-112 112 0 0 112zM160 32l0 128 128 0 0-128-128 0zM280 152l-112 0 0-112 112 0 0 112zM320 32l0 128 128 0 0-128-128 0zM440 152l-112 0 0-112 112 0 0 112zM0 192l0 128 128 0 0-128-128 0zM120 312l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM280 312l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM440 312l-112 0 0-112 112 0 0 112zM0 352l0 128 128 0 0-128-128 0zM120 472l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM280 472l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0z\"]\n};\nvar faBilibili = {\n prefix: 'fab',\n iconName: 'bilibili',\n icon: [512, 512, [], \"e3d9\", \"M488.6 104.1c16.7 18.1 24.4 39.7 23.3 65.7l0 202.4c-.4 26.4-9.2 48.1-26.5 65.1-17.2 17-39.1 25.9-65.5 26.7L92 464c-26.4-.8-48.2-9.8-65.3-27.2-17.1-17.4-26-40.3-26.7-68.6L0 169.8c.8-26 9.7-47.6 26.7-65.7 17.1-16.3 38.8-25.3 65.3-26.1l29.4 0-25.4-25.8c-5.7-5.7-8.6-13-8.6-21.8s2.9-16.1 8.6-21.8 13-8.6 21.9-8.6 16.1 2.9 21.9 8.6l73.3 69.4 88 0 74.5-69.4C381.7 2.9 389.2 0 398 0s16.1 2.9 21.9 8.6c5.7 5.7 8.6 13 8.6 21.8s-2.9 16.1-8.6 21.8L394.6 78 423.9 78c26.4 .8 48 9.8 64.7 26.1zm-38.8 69.7c-.4-9.6-3.7-17.4-10.7-23.5-5.2-6.1-14-9.4-22.7-9.8l-320.4 0c-9.6 .4-17.4 3.7-23.6 9.8-6.1 6.1-9.4 13.9-9.8 23.5l0 194.4c0 9.2 3.3 17 9.8 23.5s14.4 9.8 23.6 9.8l320.4 0c9.2 0 17-3.3 23.3-9.8s9.7-14.3 10.1-23.5l0-194.4zM185.5 216.5c6.3 6.3 9.7 14.1 10.1 23.2l0 33.3c-.4 9.2-3.7 16.9-9.8 23.2-6.2 6.3-14 9.5-23.6 9.5s-17.5-3.2-23.6-9.5-9.4-14-9.8-23.2l0-33.3c.4-9.1 3.8-16.9 10.1-23.2s13.2-9.6 23.3-10c9.2 .4 17 3.7 23.3 10zm191.5 0c6.3 6.3 9.7 14.1 10.1 23.2l0 33.3c-.4 9.2-3.7 16.9-9.8 23.2s-14 9.5-23.6 9.5-17.4-3.2-23.6-9.5c-7-6.3-9.4-14-9.7-23.2l0-33.3c.3-9.1 3.7-16.9 10-23.2s14.1-9.6 23.3-10c9.2 .4 17 3.7 23.3 10z\"]\n};\nvar faNeos = {\n prefix: 'fab',\n iconName: 'neos',\n icon: [448, 512, [], \"f612\", \"M383.8 512l-95.1 0-108.2-154.5 0 91.1-86.4 63.4-97.7 0 0-482.2 40.5-29.8 108 0 123.7 176.1 0-112.7 86.4-63.4 97.7 0 0 461.5-68.9 50.5zM7.2 35.3l0 460.7 72-52.9 0-249.1 215.5 307.6 84.8 0 52.4-38.2-78.3 0-316.1-450.5-30.2 22.3zM89.7 501.9l80-58.8 0-101-79.8-114.4 0 220.9-72.6 53.3 72.3 0 0 0zM49 10.8l310.6 442.6 82.4 0 0-442.6-79.8 0 0 317.6-222.9-317.6-90.3 0zM279.4 191.6l72 102.8 0-278.5-72 53 0 122.7z\"]\n};\nvar faDev = {\n prefix: 'fab',\n iconName: 'dev',\n icon: [448, 512, [], \"f6cc\", \"M120.1 208.3c-3.9-2.9-7.8-4.3-11.6-4.3l-17.4 0 0 104.5 17.4 0c3.9 0 7.8-1.4 11.6-4.3s5.8-7.3 5.8-13.1l0-69.7c0-5.8-2-10.2-5.8-13.1zM404.1 32L43.9 32C19.7 32 .1 51.6 0 75.8L0 436.2C.1 460.4 19.7 480 43.9 480l360.2 0c24.2 0 43.8-19.6 43.9-43.8l0-360.4C447.9 51.6 428.3 32 404.1 32zM154.2 291.2c0 18.8-11.6 47.3-48.4 47.3l-46.4 0 0-165.5 47.4 0c35.4 0 47.4 28.5 47.4 47.3l0 70.9zm100.7-88.7l-53.3 0 0 38.4 32.6 0 0 29.6-32.6 0 0 38.4 53.3 0 0 29.6-62.2 0c-11.2 .3-20.4-8.5-20.7-19.7l0-125.1c-.3-11.1 8.6-20.4 19.7-20.7l63.2 0 0 29.5zM358.5 317.8c-13.2 30.7-36.8 24.6-47.4 0l-38.5-144.8 32.6 0 29.7 113.7 29.6-113.7 32.6 0-38.5 144.8z\"]\n};\nvar faHotjar = {\n prefix: 'fab',\n iconName: 'hotjar',\n icon: [512, 512, [], \"f3b1\", \"M361.8 0c0 131.6-80.7 176.8-140.2 209.4-.6 .3-1.1 .6-1.6 .9-53.8 30.2-88.7 49.8-89.6 122l-98.1 0c0-131.5 80.7-176.7 140.2-209.3 54.8-29.8 90.3-50 90.3-123l99 0zM301.3 302.6c54.8-29.8 90.3-50 90.3-123l98 0c0 131.6-80.7 176.7-140.2 209.4-54.8 29.8-90.3 50-90.3 123l-98 0c0-131.6 80.7-176.8 140.2-209.4z\"]\n};\nvar faDochub = {\n prefix: 'fab',\n iconName: 'dochub',\n icon: [448, 512, [], \"f394\", \"M413.9 160L272 160 272 19.6 413.9 160zM320 192l0 130c0 66.8-36.5 100.1-113.3 100.1l-94.7 0 0-337.3 94.7 0c12 0 23.1 .8 33.1 2.5l0-84C228.9 1.1 217.4 0 205.2 0L16 0 16 512 205.2 512C345.7 512 416 447.4 416 318.1l0-126.1-96 0z\"]\n};\nvar faVimeo = {\n prefix: 'fab',\n iconName: 'vimeo',\n icon: [448, 512, [], \"f40a\", \"M403.2 32L44.8 32C20.1 32 0 52.1 0 76.8L0 435.2C0 459.9 20.1 480 44.8 480l358.4 0c24.7 0 44.8-20.1 44.8-44.8l0-358.4C448 52.1 427.9 32 403.2 32zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2L53.4 191.3c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3 .9 49 22.5 47.1 64.7z\"]\n};\nvar faMaxcdn = {\n prefix: 'fab',\n iconName: 'maxcdn',\n icon: [512, 512, [], \"f136\", \"M461.1 442.7l-97.4 0 51.9-242.7c2.3-10.2 .9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6l-49.3 0-59.5 278-97.4 0 59.5-278-83.4 0-59.5 278-97.4 0 59.5-278-44.6-95.4 372.1 0c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9L461.1 442.7z\"]\n};\nvar faSquareFontAwesomeStroke = {\n prefix: 'fab',\n iconName: 'square-font-awesome-stroke',\n icon: [448, 512, [\"font-awesome-alt\"], \"f35c\", \"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm154 58c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2 0 1.8-.4 3.7-1.1 5.4L312 264 342.9 333.4c.8 1.7 1.1 3.5 1.1 5.4 0 7.3-5.9 13.2-13.2 13.2l-186.8 0 0 32-32 0 0-209.5c-6.1-4.8-10-12.2-10-20.5 0-14.4 11.6-26 26-26s26 11.6 26 26z\"]\n};\nvar faFontAwesomeAlt = faSquareFontAwesomeStroke;\nvar faSpeakap = {\n prefix: 'fab',\n iconName: 'speakap',\n icon: [448, 512, [], \"f3f3\", \"M64.4 391.8C-15 303.6-7.6 167.4 81.1 87.6s224.8-73 304.2 15.2 72 224.4-16.6 304.1c-18.7 16.9 64 43.1 42 52.3-82.1 34.2-253.9 35-346.2-67.5l0 0zM277.7 180.2l38.5-40.9c-9.6-8.9-32-26.8-76.2-27.6-52.3-.9-95.9 28.3-96.8 80-.2 11.3 .3 36.7 29.4 54.8 34.5 21.4 86.5 21.5 86 52.3-.4 21.3-26.4 25.8-38.6 25.6-3 0-30.2-.5-47.6-24.6l-40 42.6c28.2 27 59 32.6 83.5 33 10.2 .2 96.4 .3 97.8-81 .3-15.8-2.1-39.7-28.9-56.6-34.4-21.6-85-19.4-84.4-49.7 .4-23.3 31-25.4 37.5-25.3 .4 0 26.6 .3 39.6 17.4l0 0z\"]\n};\nvar faFantasyFlightGames = {\n prefix: 'fab',\n iconName: 'fantasy-flight-games',\n icon: [512, 512, [], \"f6dc\", \"M256 32.9L32.9 256 256 479.1 479.1 256 256 32.9zM88.3 255.8c2-2 11.9-12.3 96.5-97.5 41.4-41.8 86.2-43.8 119.8-18.7 24.6 18.4 62.1 58.9 62.1 59 .7 .7 1.1 2.9 .6 3.4-11.3 11.8-22.7 23.5-33.5 34.7-34.2-32.3-40.5-38.2-48.5-44-17.8-12.7-41.4-10.1-57 5.1-2.2 2.1-1.8 3.4 .1 5.4 2.9 2.9 28.1 28.3 35.1 35.8-11.9 11.6-23.7 23-35.7 34.7-12-12.5-24.5-25.5-36.5-38.1-21.4 21.1-41.7 41.1-61.8 61L88.3 255.8zM323.2 357.4c-35.5 35.4-78.1 38.1-107 20.5-22.1-13.5-39.4-32.1-72.9-66.8 12-12.4 23.8-24.4 35.4-36.3 33 31.9 37.1 36 44.7 42.1 18.5 14.7 42.5 13.7 59.3-1.8 3.7-3.4 3.7-3.6 .1-7.2-10.6-10.7-21.2-21.4-31.8-32.2-1.3-1.3-3-2.5-.8-4.7 10.8-10.7 21.5-21.5 32.2-32.3 .3-.3 .6-.4 1.9-1.1 12.4 12.9 24.9 25.9 37.2 38.8 21-20.7 41.2-40.7 61.3-60.4 13.7 13.4 27.1 26.6 40.9 40-20.2 20.9-81.7 82.7-100.5 101.5zM256 0L0 256 256 512 512 256 256 0zM16 256L256 16 496 256 256 496 16 256z\"]\n};\nvar faLinux = {\n prefix: 'fab',\n iconName: 'linux',\n icon: [448, 512, [], \"f17c\", \"M220.9 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5 .2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4 .2-.8 .7-.6 1.1 .3 1.3 2.3 1.1 3.4 1.7zM199 125c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6 .2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5 .1-1.3 .6-3.4 1.5-3.2 2.9 .1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72 .5-45.9 5.1-131.2-75.8-131.3-102.4-.2-76.8 103.4-77.9 135.2-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9 .6 7.9 1.2 11.8 1.2 8.1 2.5 15.7 .8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1 .6 2.3 1.4 4.6 2.5 6.7l0 .1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3 .4-8.2-4.4-17.3-15.5-29.7zM223.8 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183.1 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4 .7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4l0-.2c2.4-7.6 .6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7 .8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4 .6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1 .8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7 .4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6 .8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1 .3-.2 .7-.3 1-.5 .8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.4 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"]\n};\nvar faCottonBureau = {\n prefix: 'fab',\n iconName: 'cotton-bureau',\n icon: [512, 512, [], \"f89e\", \"M474.3 330.4C450.6 422.3 380.1 475 272.4 478.8l0-49.2c0-48 26.4-74.4 74.4-74.4 62 0 99.2-37.2 99.2-99.2 0-61.4-36.5-98.3-97.4-99.1-33-69.3-146.5-64.7-177.2 0-60.9 .8-97.4 37.7-97.4 99.1 0 62.1 37.3 99.4 99.4 99.4 48 0 74.6 26.2 74.6 74.4l0 49.2c-134.4-5-211.1-85.1-211.1-223 0-141.8 81.4-223.2 223.2-223.2 114.8 0 189.8 53.2 214.7 148.8l25.3 0C473.9 71.5 388.2 8 259.8 8 105 8 12 101.2 12 255.8 12 411.1 105.2 504.3 259.8 504 388.1 504 473.7 440.2 499.5 330.4l-25.2 0zM357 182.3c41.4 3.4 64.2 29 64.2 73.7 0 48-26.4 74.4-74.4 74.4-28.6 0-49.3-9.6-61.6-27.3 83.1-16.5 75.6-99.7 71.8-120.7zm-81.7 97.4c-2.5-10.3-16.3-87 56.2-97 2.3 10.1 16.5 87.1-56.3 97l0 0zM260 132c28.6 0 49 9.7 61.4 27.6-28.4 5.5-49.4 20.6-61.6 43.4-12.2-22.9-33.2-38-61.6-43.4 12.4-17.7 33.3-27.4 61.6-27.4l.2-.3zm-71.5 50.7c73.2 10.6 58.9 86.8 56.5 97-72.4-9.8-59-87-56.2-97l-.2 0zM173.2 330.4c-48 0-74.4-26.4-74.4-74.4 0-44.4 22.9-70 64.2-73.7-6.8 37.2-1.4 106.5 71.6 120.7-12.1 17.6-32.8 27.3-61.1 27.3l-.3 0zm53.2 12.4c14.3-7.6 26-19.3 33.6-33.5 7.8 14.5 19.3 25.5 33.8 33.5-14.4 7.6-26.1 19.4-33.6 33.8-8-14.5-19.1-26.2-33.6-33.8l-.3 0z\"]\n};\nvar faGoogleWallet = {\n prefix: 'fab',\n iconName: 'google-wallet',\n icon: [448, 512, [], \"f1ee\", \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200l-93.2 0c-6.5 0-10.5 7.5-6.5 12.7 42.2 54.3 71.7 117.8 91.7 187.3l103.5 0c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368L409 480c-12-138-68.4-265-143.2-368l-108.7 0zM408.9 43.5c-1.8-6.8-8.2-11.5-15.2-11.5l-88.3 0c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"]\n};\nvar faFoursquare = {\n prefix: 'fab',\n iconName: 'foursquare',\n icon: [384, 512, [], \"f180\", \"M331.1 3L57.9 3C20.4 3 8 31.3 8 49.1L8 482.9c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1 128.9-149.4 131.1-151.9 131.1-151.9 3.1-3.4 3.4-3.1 6.8-3.1l83.4 0c35.1 0 40.6-25.2 44.3-39.7l48.6-243C381.8 25.8 371.1 3 331.1 3zM314.8 76.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2l-106.4 0c-12 0-20.6 8.3-20.6 20.3l0 13c0 12 8.6 20.6 20.6 20.6l90.4 0c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5l-73.5 0c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9 .9-1.8 .6-1.8-.3l0-338.8c0-7.7 6.8-16.6 16.6-16.6l219 0c8.2 0 15.6 7.7 13.5 17.5z\"]\n};\nvar faShirtsinbulk = {\n prefix: 'fab',\n iconName: 'shirtsinbulk',\n icon: [448, 512, [], \"f214\", \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4-4.4 9.9zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4-4.4 9.9zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9-30.6 13.4zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4-4.4 9.6zM60.4 392.8l30.6 13.4 4.4-9.6-30.6-13.7-4.4 9.9zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9-30.6 13.4zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6-30.6 13.4zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9-30.6 13.7zM170 46.6l-33.5 0 0 10.5 33.5 0 0-10.5zm-47.2 0l-33.6 0 0 10.5 33.5 0 .1-10.5zm-47.3 0l-33.2 0 0 10.5 33.3 0-.1-10.5zm141.5 0l-33.2 0 0 10.5 33.2 0 0-10.5zm94.5 0l-33.5 0 0 10.5 33.5 0 0-10.5zm47.3 0l-33.5 0 0 10.5 33.5 0 0-10.5zm-94.6 0l-33.2 0 0 10.5 33.2 0 0-10.5zm141.5 0l-33.3 0 0 10.5 33.3 0 0-10.5zM52.8 351.1l-10.8 0 0 33.5 10.8 0 0-33.5zm70-215.9l-33.6 0 0 10.5 33.5 0 .1-10.5zm-70 10.6l22.8 0 0-10.5-33.6 0 0 33.5 10.8 0 0-23zM221.7 374.4a91.3 91.3 0 1 0 0-182.6 91.3 91.3 0 1 0 0 182.6zM173.5 263.3c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9-.9 0c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4 .9 0c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4l-10.8 0 0 33.6 10.8 0 0-33.6zM395.2 384.6l10.8 0 0-33.5-10.8 0 0 33.5zM52.8 307.9l-10.8 0 0 33.5 10.8 0 0-33.5zM0 3.7l0 406 221.7 98.6 226.3-98.6 0-406-448 0zM418.8 390.8l-196.8 85.7-192.8-85.7 0-270.1 389.7 0 0 270.1-.1 0zm0-299.3l-389.6 0 0-58.6 389.7 0 0 58.6-.1 0zM52.8 221.6l-10.8 0 0 33.5 10.8 0 0-33.5zm0 43.2l-10.8 0 0 33.5 10.8 0 0-33.5zM170 135.2l-33.5 0 0 10.5 33.5 0 0-10.5zM395.2 298.3l10.8 0 0-33.5-10.8 0 0 33.5zm0-43.2l10.8 0 0-33.5-10.8 0 0 33.5zM217 135.2l-33.2 0 0 10.5 33.2 0 0-10.5zM395.2 212l10.8 0 0-33.5-10.8 0 0 33.5zm0 129.5l10.8 0 0-33.5-10.8 0 0 33.5zm-131-206.3l-33.2 0 0 10.5 33.2 0 0-10.5zm47.3 0l-33.5 0 0 10.5 33.5 0 0-10.5zm83.7 33.6l10.8 0 0-33.5-33.5 0 0 10.5 22.8 0-.1 23zm-36.4-33.6l-33.5 0 0 10.5 33.5 0 0-10.5z\"]\n};\nvar faMintbit = {\n prefix: 'fab',\n iconName: 'mintbit',\n icon: [512, 512, [], \"e62f\", \"M73.2 512l0-73.1 292.5 0 0-73.2 73.2 0 0-146.3 73.1 0 0-219.4-219.4 0 0 73.1-146.3 0 0 73.2-73.1 0 0 292.6-73.2 0 0 73.1 73.2 0zm73.1-219.4l73.2 0 0 73.1-73.2 0 0-73.1zm73.2-73.1l73.1 0 0 73.1-73.2 0 0-73.2 .1 .1zm73.1 0l0-73.2 73.2 0 0 73.1-73.2 0 0 .1zM365.7 73.1l73.2 0 0 73.2-73.2 0 0-73.2z\"]\n};\nvar faZulip = {\n prefix: 'fab',\n iconName: 'zulip',\n icon: [448, 512, [], \"e853\", \"M424 99c0 22.6-10.1 42.6-25.5 54.8L249.3 287.7c-2.8 2.4-6.4-1.5-4.4-4.7l54.7-110.1c1.5-3.1-.5-6.9-3.6-6.9L83.8 166C50.9 166 24 135.9 24 99 24 62.1 50.9 32 83.8 32l280.4 0C397.1 32 424 62.1 424 99zM83.8 480l280.4 0c32.9 0 59.8-30.2 59.8-67s-26.9-67-59.8-67l-212.3 0c-3.1 0-5.1-3.8-3.6-6.9L203.1 229c2-3.2-1.6-7.1-4.4-4.7L49.5 358.2C34.1 370.4 24 390.4 24 413 24 449.8 50.9 480 83.8 480z\"]\n};\nvar faStaylinked = {\n prefix: 'fab',\n iconName: 'staylinked',\n icon: [448, 512, [], \"f3f5\", \"M386.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L148.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L67.2 268c-3.5-3.5-9.7-3.7-13.9-.5L7.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L215 510.7s7.4 6.8 17.3-.8L430.3 346c4-3.2 4.4-8.7 .7-12.2l-44.3-41.3zm54.5-83.4L230.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L7.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3 .4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7 .9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1 .1c-4.2 3.2-10.5 3.1-14.2-.4L113 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9 .5l160.4 159c3.7 3.5 10 3.7 14.1 .5l45.8-35.8c4.1-3.2 4.4-8.7 .7-12.2z\"]\n};\nvar faWebflow = {\n prefix: 'fab',\n iconName: 'webflow',\n icon: [640, 512, [], \"e65c\", \"M640 64l-204.2 399.2-191.8 0 85.5-165.5-3.8 0C255.1 389.3 149.9 449.5 0 463.2L0 300.1s95.9-5.7 152.3-64.9l-152.3 0 0-171.2 171.1 0 0 140.8 3.8 0 70-140.8 129.4 0 0 139.9 3.8 0 72.6-139.9 189.3 0z\"]\n};\nvar faRenren = {\n prefix: 'fab',\n iconName: 'renren',\n icon: [512, 512, [], \"f18b\", \"M214 169.1C214 279.5 153 374.5 66.4 416.5 30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5l0 156.6zM255 504c-42.9 0-83.3-11-118.5-30.4 57.2-36.1 103.4-90.7 118.5-154.6 15.5 63.9 61.7 118.5 118.8 154.7-35.1 19.3-75.5 30.3-118.8 30.3zm190.6-87.5C359 374.5 298 279.6 298 169.1l0-156.6c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"]\n};\nvar faKoFi = {\n prefix: 'fab',\n iconName: 'ko-fi',\n icon: [512, 512, [], \"e856\", \"M249.8 75c89.8 0 113 1.1 146.3 4.4 78.1 7.8 123.6 56 123.6 125.2l0 8.9c0 64.3-47.1 116.9-110.8 122.4-5 16.6-12.8 33.2-23.3 49.9-24.4 37.7-73.1 85.3-162.9 85.3l-17.7 0c-73.1 0-129.7-31.6-163.5-89.2-29.9-50.4-33.8-106.4-33.8-181.2 0-73.7 44.4-113.6 96.4-120.2 39.3-5 88.1-5.5 145.7-5.5zm0 41.6c-60.4 0-103.6 .5-136.3 5.5-46 6.7-64.3 32.7-64.3 79.2l.2 25.7c1.2 57.3 7.1 97.1 27.5 134.5 26.6 49.3 74.8 68.2 129.7 68.2l17.2 0c72 0 107-34.9 126.3-65.4 9.4-15.5 17.7-32.7 22.2-54.3l3.3-13.8 19.9 0c44.3 0 82.6-36 82.6-82l0-8.3c0-51.5-32.2-78.7-88.1-85.3-31.6-2.8-50.4-3.9-140.2-3.9zM267 169.2c38.2 0 64.8 31.6 64.8 67 0 32.7-18.3 61-42.1 83.1-15 15-39.3 30.5-55.9 40.5-4.4 2.8-10 4.4-16.7 4.4-5.5 0-10.5-1.7-15.5-4.4-16.6-10-41-25.5-56.5-40.5-21.8-20.8-39.2-46.9-41.3-77l-.2-6.1c0-35.5 25.5-67 64.3-67 22.7 0 38.8 11.6 49.3 27.7 11.6-16.1 27.2-27.7 49.9-27.7zm122.5-3.9c28.3 0 43.8 16.6 43.8 43.2s-15.5 42.7-43.8 42.7c-8.9 0-13.8-5-13.8-11.7l0-62.6c0-6.7 5-11.6 13.8-11.6z\"]\n};\nvar faRev = {\n prefix: 'fab',\n iconName: 'rev',\n icon: [448, 512, [], \"f5b2\", \"M158.7 274.9a65.6 65.6 0 1 1 131.2 0 65.6 65.6 0 1 1 -131.2 0zm270.7-5.1l-.1 0c-.7-29.3-7.7-58.2-20.5-84.6s-31.2-49.7-53.8-68.4L309.6 143c22 14.2 40.1 33.8 52.7 56.8s19.1 48.8 19.1 75.1c0 86.6-70.5 157.1-157.1 157.1S67.2 361.5 67.2 274.9c0-81.9 63-149.3 143-156.4l0 39.1 108.8-62.8-108.8-62.8 0 38.3c-106.7 7.2-191 96-191 204.6 0 111.6 89.1 202.3 200.1 205l0 .1 210.2 0 0-210.2z\"]\n};\nvar faKeycdn = {\n prefix: 'fab',\n iconName: 'keycdn',\n icon: [512, 512, [], \"f3ba\", \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5 .7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4 .3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4-26.8-.1-47.5-21.7-47.5-48.5 0-34.3 33.1-56.6 63.8-45.6zM418.7 156.9c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3 .3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2 .7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4L92 355.6c-19.3-31.6-28.9-67.7-27.8-104.7 1-44.6 18.3-87.6 47.5-121.1L86.4 103.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4 11.9-11.2 30.6-10.9 42.4 1.2zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3 .1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9 303.3 66 344.6 81.6 377.7 109.5l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5-.1-26.7 22.3-48.4 48.3-48.4zM256.7 113.4c5.5 0 10.9 .4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7 73.7 0-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1 .8-57.3 24.8-58.2 58.3z\"]\n};\nvar faHireAHelper = {\n prefix: 'fab',\n iconName: 'hire-a-helper',\n icon: [512, 512, [], \"f3b0\", \"M443.1 0L71.9 0C67.9 37.3 37.4 67.8 0 71.7L0 443.2c37.4 4.9 66 32.4 71.9 68.8l372.2 0c3-36.4 32.5-65.8 67.9-69.8l0-370.5C475.6 65.8 447 36.4 443.1 0zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8l-111.2 0c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8l0-101.2c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8l109.2 0c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4l0 101.2c0 83.4 .1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"]\n};\nvar faSquareHackerNews = {\n prefix: 'fab',\n iconName: 'square-hacker-news',\n icon: [448, 512, [\"hacker-news-square\"], \"f3af\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM21 229.2s.1-.1 .1-.2 .1-.2 .2-.2c0 .1 0 .3-.1 .4l-.2 0zM239.2 384l-31.4 0 0-102.7-79.8-153.3 37.3 0c41.5 77.7 48.1 95.8 54.1 112 1.6 4.3 3.1 8.5 5.2 13.6 3.2-7 5.1-11.9 7.1-17.3 5.9-15.3 12.8-33.2 53.5-108.3l34.8 0-80.8 155.1 0 100.9z\"]\n};\nvar faHackerNewsSquare = faSquareHackerNews;\nvar faCreativeCommonsPdAlt = {\n prefix: 'fab',\n iconName: 'creative-commons-pd-alt',\n icon: [512, 512, [], \"f4ed\", \"M255.6 8C112.7 8 8 123.1 8 256 8 394.5 121.6 504 255.6 504 385.5 504 504 403.1 504 256 504 118.1 397.4 8 255.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM324.7 186l-53.2 0 0 137.2 53.2 0c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5l-19.9 0 0-79.7 19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM211.7 186l-68.2 0 0 137.3 34.6 0 0-44.3 27 0c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3l-29.2 0 0-41.6 28.3 0c30.9 0 28.8 41.6 .9 41.6z\"]\n};\nvar faOrcid = {\n prefix: 'fab',\n iconName: 'orcid',\n icon: [512, 512, [], \"f8d2\", \"M294.7 188.2l-45.9 0 0 153.8 47.5 0c67.6 0 83.1-51.3 83.1-76.9 0-41.6-26.5-76.9-84.7-76.9zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM175.2 368.8l-29.8 0 0-207.5 29.8 0 0 207.5zM160.3 98.5a19.6 19.6 0 1 1 0 39.2 19.6 19.6 0 1 1 0-39.2zM300 369l-81 0 0-207.7 80.6 0c76.7 0 110.4 54.8 110.4 103.9 0 53.3-41.7 103.9-110 103.9z\"]\n};\nvar faBoardGameGeek = {\n prefix: 'fab',\n iconName: 'board-game-geek',\n icon: [640, 512, [\"bgg\"], \"e855\", \"M168.8 168.3l30.1-8.2-12.3 98.8 16.7 16.1-38.9 91.2-111.8 41.2-52.6-131.8 17.7-17-10.5-84.3 191.2-70.3-29.5 64.3zm180.6 16.5c11.6 0 19 7.4 19 17.9l0 31.5c0 9.7-6.3 18.9-19.5 22.1 13.1 3.1 20.5 12 20.5 21.4l0 30.9c0 11.1-7.4 18.1-19 18.1l-89.1 0 0-141.8 88 0zM298 299.8l33 0c1.5 0 2.1-1 2.1-2.1l0-26.9c0-1-.6-2.3-2.1-2.3l-33 0 0 31.3zm0-57.3l33 0c1.5 0 2.1-1.1 2.1-2.3l0-24.8c0-1-.6-2.3-2.1-2.3l-33 0 0 29.4zm204.1-27.2l-65.6 0c-1 0-2.1 1.1-2.1 2.3l0 76.1c0 1.3 1 2.1 2.1 2.1l29.7 0c1.5 0 2.3-.8 2.3-2.1l0-24-19.3 0 12.8-30 40.1 0 0 70.8c0 9.2-7.2 16.2-16.3 16.2l-71.5 0c-9.1 0-16.5-7-16.5-16.2l0-109.7c0-8.6 7.4-16 16.5-16l87.8 0 0 30.5zm132.6 0l-65.6 0c-1.1 0-2.1 1.1-2.1 2.3l0 76.1c0 1.3 1 2.1 2.1 2.1l29.6 0c1.5 0 2.3-.8 2.3-2.1l0-24-19.2 0 12.8-30 40.1 0 0 70.8c0 9.2-7.2 16.2-16.3 16.2l-71.5 0c-9.1 0-16.5-6.9-16.5-16.2l0-109.7c0-8.6 7.4-16 16.5-16l87.8 0 0 30.5z\"]\n};\nvar faBgg = faBoardGameGeek;\nvar faBehance = {\n prefix: 'fab',\n iconName: 'behance',\n icon: [576, 512, [], \"f1b4\", \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8l-167.1 0 0 354.4 171.8 0c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9l73.1 0c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2l-79 0 0-82.7zm83.3 233.7l-83.3 0 0-97.6 84.9 0c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zM519.7 128.9l-143.7 0 0-34.9 143.7 0 0 34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3l-62.2 0c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3l185.1 0c.3-4.2 .6-8.7 .6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8l-114.7 0z\"]\n};\nvar faMonero = {\n prefix: 'fab',\n iconName: 'monero',\n icon: [512, 512, [], \"f3d0\", \"M360 384l108.4 0C425 455.9 346.1 504 256 504S87 455.9 43.6 384l108.4 0 0-127.8 104 104.8 104-105 0 128zM96 336l0-208 159.4 159.4 160.6-159.4 0 208 74.8 0c8.5-25.1 13.2-52 13.2-80 0-137-111-248-248-248S8 119 8 256c0 28 4.6 54.9 13.2 80L96 336z\"]\n};\nvar faFigma = {\n prefix: 'fab',\n iconName: 'figma',\n icon: [384, 512, [], \"f799\", \"M14 95.8C14 42.9 56.9 0 109.8 0L274.2 0c52.9 0 95.8 42.9 95.8 95.8 0 33.5-17.2 63-43.2 80.1 26 17.1 43.2 46.6 43.2 80.1 0 52.9-42.9 95.8-95.8 95.8l-2.1 0c-24.8 0-47.4-9.4-64.4-24.9l0 88.3c0 53.6-44 96.8-97.4 96.8-52.8 0-96.3-42.8-96.3-95.8 0-33.5 17.2-63 43.2-80.1-26-17.1-43.2-46.6-43.2-80.1s17.2-63 43.2-80.1C31.2 158.8 14 129.3 14 95.8zm162.3 95.8l-66.5 0c-35.6 0-64.4 28.8-64.4 64.4 0 35.4 28.6 64.2 64 64.4l66.9 0 0-128.8zM207.7 256c0 35.6 28.8 64.4 64.4 64.4l2.1 0c35.6 0 64.4-28.8 64.4-64.4s-28.8-64.4-64.4-64.4l-2.1 0c-35.6 0-64.4 28.8-64.4 64.4zm-97.9 95.8l-.4 0c-35.4 .2-64 29-64 64.4s29.2 64.4 64.9 64.4c36.3 0 66-29.4 66-65.5l0-63.4-66.5 0zm0-320.4c-35.6 0-64.4 28.8-64.4 64.4s28.8 64.4 64.4 64.4l66.5 0 0-128.8-66.5 0zm97.9 128.8l66.5 0c35.6 0 64.4-28.8 64.4-64.4s-28.8-64.4-64.4-64.4l-66.5 0 0 128.8z\"]\n};\nvar faInstagram = {\n prefix: 'fab',\n iconName: 'instagram',\n icon: [448, 512, [], \"f16d\", \"M224.3 141a115 115 0 1 0 -.6 230 115 115 0 1 0 .6-230zm-.6 40.4a74.6 74.6 0 1 1 .6 149.2 74.6 74.6 0 1 1 -.6-149.2zm93.4-45.1a26.8 26.8 0 1 1 53.6 0 26.8 26.8 0 1 1 -53.6 0zm129.7 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM399 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"]\n};\nvar faPerbyte = {\n prefix: 'fab',\n iconName: 'perbyte',\n icon: [448, 512, [], \"e083\", \"M305.3 284.6l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5zM149.4 128.7l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5zM366.6 32L81.4 32c-21.6 0-42.2 8.6-57.5 23.9S0 91.8 0 113.4L0 398.6c0 21.6 8.6 42.2 23.9 57.5S59.8 480 81.4 480l285.3 0c21.6 0 42.2-8.6 57.5-23.9S448 420.2 448 398.6l0-285.3c0-21.6-8.6-42.2-23.9-57.5S388.2 32 366.6 32zm63.6 366.6c0 16.9-6.7 33-18.7 45s-28.1 18.6-45 18.7l-285.3 0c-16.9 0-33-6.7-45-18.7s-18.6-28.1-18.7-45l0-285.3c0-16.9 6.7-33 18.7-45s28.1-18.6 45-18.7l285.3 0c16.9 0 33 6.7 45 18.7s18.6 28.1 18.7 45l0 285.3zm-125-269.9l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5z\"]\n};\nvar faSquareVimeo = {\n prefix: 'fab',\n iconName: 'square-vimeo',\n icon: [448, 512, [\"vimeo-square\"], \"f194\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM318.5 309.5c-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-3.8-13.9-7.3-26.9-10.5-39-18.2-68.3-28.6-107.4-46.2-107.4-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5 29.1-26.3 55.6-50.3 73.5-51.9 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64-1.4 31.1-23.2 73.8-65.3 127.9z\"]\n};\nvar faVimeoSquare = faSquareVimeo;\nvar faPushed = {\n prefix: 'fab',\n iconName: 'pushed',\n icon: [448, 512, [], \"f3e1\", \"M415.1 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L30.6 76.9c-15.1 2.7-26 18.3-21.4 36.6L114.3 461.8c6.5 21.3 36.7 24.2 47.7 7L197.3 388 432.5 156.7c16.4-16.8 4.3-42.9-17.4-44.8zM305.7 53.6c5.1-.7 7.5 2.5 5.2 7.4l-16.8 39.9-177.4-16.3 189-31zM30.8 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7-157.9-244.3zM144.1 456.4c-2.6 4-7.9 3.1-9.4-1.2L51.6 179.7 179.3 377.3c-7 15-35.2 79.1-35.2 79.1zM416.9 141.9l-198.7 195.4 89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"]\n};\nvar faMixcloud = {\n prefix: 'fab',\n iconName: 'mixcloud',\n icon: [640, 512, [], \"f289\", \"M213 346.6l-33.2 0 0-151.5 6.2-21.6-10.7 0-38.1 173.1-61 0-38.4-173.1-10.5 0 5.9 21.6 0 151.5-33.2 0 0-181.6 65.7 0 36.6 173.1 8.5 0 36.6-173.1 65.7 0 0 181.6zm331.5-63l-86 62.1 0-38.1 72.9-51.8-72.9-51.8 0-38.1 86 62.3 9.3 0 86.3-62.3 0 38.1-73.1 51.8 73.1 51.8 0 38.1-86.3-62.1-9.3 0zM430.2 272.3l-182 0 0-33.1 182 0 0 33.1z\"]\n};\nvar faYandexInternational = {\n prefix: 'fab',\n iconName: 'yandex-international',\n icon: [320, 512, [], \"f414\", \"M129.5 512l0-166.1-111-297.9 55.8 0 81.8 229.7 94.1-277.7 51.3 0-120.7 347.8 0 164.2-51.3 0z\"]\n};\nvar faHive = {\n prefix: 'fab',\n iconName: 'hive',\n icon: [512, 512, [], \"e07f\", \"M260.4 254.9L131.5 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3-.8 .1-1.1 .3-.6 .5-.8 .8L.3 254.9c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1L129.1 478.9c.2 .3 .5 .6 .8 .8s.7 .3 1.1 .3 .8-.1 1.1-.3 .6-.5 .8-.8L260.4 257.1c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1zm39.1-25.7c.2 .3 .5 .6 .8 .8s.7 .3 1.1 .3l66.5 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8 .3-.7 .3-1.1-.1-.8-.3-1.1L259.1 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3l-66.5 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8-.3 .7-.3 1.1 .1 .8 .3 1.1L299.4 229.2zm212.3 25.7L384.9 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3l-66.6 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8-.3 .7-.3 1.1 .1 .8 .3 1.1L440.7 256 314.5 476.7c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1 .5 .6 .8 .8 .7 .3 1.1 .3l66.6 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8L511.7 257.1c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1zM366 284.9l-66.5 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8L188.8 476.7c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1 .5 .6 .8 .8 .7 .3 1.1 .3l66.5 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8L367.9 288.3c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1-.5-.6-.8-.8-.7-.3-1.1-.3z\"]\n};\nvar faCreativeCommonsZero = {\n prefix: 'fab',\n iconName: 'creative-commons-zero',\n icon: [512, 512, [], \"f4f3\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8S174.1 398.8 256 398.8 358.5 321.5 358.5 256 337.9 113.2 256 113.2zm0 53.9c3.3 0 6.4 .5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9L213.8 290.4c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"]\n};\nvar faSquareSnapchat = {\n prefix: 'fab',\n iconName: 'square-snapchat',\n icon: [448, 512, [\"snapchat-square\"], \"f2ad\", \"M384 32L64 32c-17 0-33.3 6.7-45.3 18.7S0 79 0 96L0 416c0 17 6.7 33.3 18.7 45.3S47 480 64 480l320 0c17 0 33.3-6.7 45.3-18.7S448 433 448 416l0-320c0-17-6.7-33.3-18.7-45.3S401 32 384 32zm-3.9 319.3l-.1 .1c-2.5 2.8-5.4 5.1-8.7 6.8-6.5 3.6-13.4 6.3-20.6 8.2-1.4 .4-2.7 1-3.9 1.8-2.2 1.9-2.1 4.6-4.4 8.6-1.7 3-4 5.5-6.8 7.5-6.7 4.6-14.2 4.9-22.2 5.2-7.2 .3-15.4 .6-24.7 3.7-3.8 1.2-7.8 3.7-12.4 6.5-11.3 6.9-26.7 16.4-52.3 16.4s-40.9-9.4-52.1-16.3c-4.7-2.9-8.7-5.4-12.5-6.6-9.3-3.1-17.5-3.4-24.7-3.7-8-.3-15.5-.6-22.2-5.2-2.4-1.6-4.4-3.7-6-6.1-3.2-4.6-2.9-7.8-5.3-9.9-1.3-.8-2.6-1.5-4.1-1.8-7.1-1.9-13.9-4.6-20.3-8.1-3.1-1.6-5.9-3.8-8.3-6.3-6.6-6.8-8.3-14.8-5.7-21.8 3.4-9.3 11.6-12.1 19.4-16.3 14.8-8 26.3-18.1 34.4-29.9 2.3-3.3 4.3-6.9 6-10.6 .8-2.2 .8-3.3 .2-4.4-.6-.9-1.3-1.6-2.2-2.2-2.5-1.7-5.1-3.4-6.9-4.5-3.3-2.1-5.9-3.8-7.5-5-6.3-4.4-10.6-9-13.4-14.2-1.9-3.6-3-7.6-3.3-11.6s.4-8.1 1.9-11.9c4.1-10.9 14.5-17.7 27-17.7 2.6 0 5.3 .3 7.8 .8 .7 .2 1.4 .3 2 .5-.1-7.4 .1-15.4 .7-23.1 2.4-27.3 11.9-41.6 21.9-53 6.4-7.2 13.9-13.2 22.3-17.9 15.1-8.6 32.2-13 50.9-13s35.8 4.4 50.9 13c8.3 4.7 15.9 10.8 22.2 17.9 10 11.4 19.5 25.7 21.9 53 .6 7.7 .9 15.4 .7 23.1 .7-.2 1.4-.3 2.1-.5 2.6-.6 5.2-.8 7.8-.8 12.5 0 22.8 6.8 27 17.7 1.5 3.8 2.1 7.9 1.9 11.9s-1.4 8-3.3 11.6c-2.7 5.2-7.1 9.9-13.4 14.2-1.7 1.2-4.3 2.9-7.5 5-1.8 1.2-4.5 2.9-7.2 4.7-.8 .5-1.4 1.2-1.9 2-.5 1-.5 2.2 .2 4.2 1.7 3.8 3.7 7.4 6.1 10.8 8.3 12.1 20.2 22.3 35.5 30.4 1.5 .8 3 1.5 4.4 2.3 .7 .3 1.6 .8 2.5 1.3 4.9 2.7 9.2 6 11.5 12.2 2.5 6.9 1 14.7-5.2 21.3zm-16.7-18.5c-50.3-24.3-58.3-61.9-58.7-64.7-.4-3.4-.9-6 2.8-9.5 3.6-3.3 19.5-13.2 24-16.3 7.3-5.1 10.5-10.2 8.2-16.5-1.7-4.3-5.7-6-10-6-1.3 0-2.7 .2-4 .4-8 1.7-15.8 5.8-20.4 6.9-.5 .1-1.1 .2-1.7 .2-2.4 0-3.3-1.1-3.1-4 .6-8.8 1.8-25.9 .4-41.9-1.9-22-9-32.9-17.4-42.6-4.1-4.6-23.1-24.7-59.5-24.7s-55.4 20.1-59.5 24.8c-8.4 9.7-15.5 20.6-17.4 42.6-1.4 16-.1 33.1 .4 41.9 .2 2.8-.7 4-3.1 4-.6 0-1.1-.1-1.7-.2-4.5-1.1-12.3-5.1-20.3-6.9-1.3-.3-2.6-.4-4-.4-4.3 0-8.3 1.6-10 6-2.4 6.3 .8 11.4 8.2 16.5 4.4 3.1 20.4 13 24 16.3 3.7 3.4 3.2 6.1 2.8 9.5-.4 2.8-8.4 40.4-58.7 64.7-2.9 1.4-8 4.4 .9 9.3 13.9 7.6 23.1 6.8 30.3 11.4 6.1 3.9 2.5 12.4 6.9 15.4 5.5 3.8 21.6-.3 42.3 6.6 17.4 5.7 28.1 22 59 22s41.8-16.3 58.9-22c20.8-6.9 36.9-2.8 42.3-6.6 4.4-3.1 .8-11.5 6.9-15.4 7.2-4.6 16.4-3.8 30.3-11.5 8.8-4.9 3.8-7.9 .9-9.4z\"]\n};\nvar faSnapchatSquare = faSquareSnapchat;\nvar faThemeisle = {\n prefix: 'fab',\n iconName: 'themeisle',\n icon: [512, 512, [], \"f2b2\", \"M208 88.3c0-10 6.3-21.7 17.7-21.7 11.1 0 17.7 11.7 17.7 21.7 0 10.3-6.6 21.7-17.7 21.7-11.4 0-17.7-11.4-17.7-21.7zm304 160c0 36-11.4 102.3-36.3 129.7-22.9 24.9-87.4 61.1-120.9 70.6l-1.1 .3 0 32.6c0 16.3-12.6 30.6-29.1 30.6-10 0-19.4-5.7-24.6-14.3-5.4 8.6-14.9 14.3-24.9 14.3s-19.4-5.7-24.9-14.3c-5.1 8.6-14.6 14.3-24.6 14.3-10.3 0-19.4-5.7-24.9-14.3-5.1 8.6-14.6 14.3-24.6 14.3-18.9 0-29.4-15.7-29.4-32.9-16.3 12.3-35.7 19.4-56.6 19.4-22 0-43.4-8.3-60.3-22.9 10.3-.3 20.6-2.3 30.3-5.7-20.9-5.7-39.4-18.9-52-36.3 21.4 4.6 46.2 1.7 67.1-11.1-22-22-56.6-58.9-68.6-87.4-5.7-13.4-6.9-31.4-6.9-45.7 0-49.7 20.3-160 86.3-160 10.6 0 18.9 4.9 23.1 14.9 3.7-5.4 7.7-10.5 12-15.4 2-2.6 5.7-5.4 7.1-8.3 8-12.6 11.7-21.1 21.7-34 32.3-41.1 81.7-69.4 134.9-69.4 6 0 12 .3 17.7 1.1 10.9-11.7 26-18.3 41.7-18.3 14.6 0 29.7 6 40 16.3 .9 .9 1.4 2.3 1.4 3.4 0 3.7-10.3 13.4-12.9 16.3 4.3 1.4 15.7 6.9 15.7 12 0 2.9-2.9 5.1-4.6 7.1 31.4 27.7 49.4 67.1 56.3 108 4.3-5.1 10.3-8.6 17.1-8.6 10.6 0 20.9 7.1 28.6 14 20.9 18.6 25.7 53.1 25.7 79.7zM188 89.4c0 18.3 12.6 37.1 32.3 37.1s32.3-18.9 32.3-37.1c0-18-12.6-36.9-32.3-36.9S188 71.4 188 89.4zM237.7 194c0-19.7 3.7-39.1 8.6-58.3-52 79.5-13.5 184.6 68.9 184.6 21.4 0 42.6-7.7 60-20 2-7.4 3.7-14.9 3.7-22.6 0-14.3-6.3-21.4-20.6-21.4-4.6 0-9.1 .9-13.4 1.7-63.3 12.7-107.1 3.7-107.1-64zM196.6 448.9c0-11.1-8.9-20.9-20.3-20.9s-20 9.7-20 20.9l0 32.6c0 11.1 8.6 21.1 20 21.1s20.3-9.7 20.3-21.1l0-32.6zm49.1 0c0-11.1-8.6-20.9-20-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20-10 20-21.1l0-32.6zm49.7 0c0-11.1-8.9-20.9-20.3-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20.3-9.7 20.3-21.1l0-32.6zm49.7 0c0-11.1-8.9-20.9-20.3-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20.3-10 20.3-21.1l0-32.6zM421.7 286c-30.9 59.1-90.3 102.6-158.6 102.6-96.6 0-160.6-84.6-160.6-176.6 0-16.9 2-33.4 6-49.7-20 33.7-29.7 72.6-29.7 111.4 0 60.3 24.9 121.7 71.4 160.9 5.1-9.7 14.9-16.3 26-16.3 10 0 19.4 5.7 24.6 14.3 5.4-8.6 14.6-14.3 24.9-14.3 10 0 19.4 5.7 24.6 14.3 5.4-8.6 14.9-14.3 24.9-14.3s19.4 5.7 24.9 14.3c5.1-8.6 14.6-14.3 24.6-14.3 10.9 0 20.9 6.6 25.7 16 43.4-36.3 68.6-92 71.4-148.3zm10.6-99.7c0-53.7-34.6-105.7-92.6-105.7-30.3 0-58.6 15.1-78.9 36.9-20 66.4-27.4 136.6 41.4 136.6 28.8 0 97.4-28.5 84.3 36.9 28.9-26 45.7-65.7 45.7-104.6z\"]\n};\nvar faDartLang = {\n prefix: 'fab',\n iconName: 'dart-lang',\n icon: [512, 512, [], \"e693\", \"M378.6 78.9c-2.8-.1-5.6-.2-8.5-.2l-264.1 0 143.2-72c7.4-4.4 18.8-6.7 30.4-6.7 13.5 0 29.4 9.2 37 16.8l62 62 0 .1zM107.3 96.5l262.8 0c16 0 25.4 1.4 35.4 9.3l106.5 106.4 0 208.8-79.3 .7-325.4-325.2zM96.5 373l0-262.2 323.8 323.8 .7 77.4-212.2 0-98.1-98.2C99.4 402.5 96.5 398.5 96.5 373zM78.7 105.3l0 267.7c0 3.3 .1 6.3 .2 9.1l-62-62C6.5 309.3 0 294.3 0 279.6 0 272.8 3.9 262.1 6.7 256l72-150.7z\"]\n};\nvar faDeploydog = {\n prefix: 'fab',\n iconName: 'deploydog',\n icon: [512, 512, [], \"f38e\", \"M382.2 136l51.7 0 0 239.6-51.7 0 0-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9l0-103.9zM317.5 297.8a33.2 33.2 0 1 0 66.4 1 33.2 33.2 0 1 0 -66.4-1zM188.5 136l51.7 0 0 239.6-51.7 0 0-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9l0-103.9zM123.8 297.8a33.2 33.2 0 1 0 66.4 1 33.2 33.2 0 1 0 -66.4-1zM448 96c17.5 0 32 14.4 32 32l0 256c0 17.5-14.4 32-32 32L64 416c-17.5 0-32-14.4-32-32l0-256c0-17.5 14.4-32 32-32l384 0zm0-32L64 64C28.8 64 0 92.8 0 128L0 384c0 35.2 28.8 64 64 64l384 0c35.2 0 64-28.8 64-64l0-256c0-35.2-28.8-64-64-64z\"]\n};\nvar faFlipboard = {\n prefix: 'fab',\n iconName: 'flipboard',\n icon: [448, 512, [], \"f44d\", \"M0 32l0 448 448 0 0-448-448 0zM358.4 211.2l-89.6 0 0 89.6-89.6 0 0 89.6-89.6 0 0-268.8 268.8 0 0 89.6z\"]\n};\nvar faBuyNLarge = {\n prefix: 'fab',\n iconName: 'buy-n-large',\n icon: [576, 512, [], \"f8a6\", \"M288.2 32C133.5 32 8 132.3 8 256S133.5 480 288.2 480 568.4 379.7 568.4 256 442.9 32 288.2 32zM202.8 389.2l-138.5 1.4 77.2-290.7 133.4 0c63.2 0 84.9 28.6 78 72.8-.4 2.3-.9 4.6-1.5 6.9-5.6-1.3-11.4-1.9-17.2-1.9-42.3 0-76.7 33.9-76.7 75.7 0 37.1 27.1 68 62.9 74.5-18.2 37.2-56.2 60.9-117.7 61.5zM358.2 207.1l32 0-22.2 90.3-35.4 0-11.2-35.6-7.8 35.6-37.8 0 26.6-90.3 31.3 0 15 36.8 9.4-36.8zM504.1 389.2l-197.1 0 15.8-61.2c3.8 .6 7.6 .8 11.5 .8 42.3 0 76.7-33.9 76.7-75.6 0-32.6-21-60.5-50.4-71.1l21.3-82.4 92.5 0-53 205.4 103.9 0-21.2 84.1zM211.9 269.4l-24.7 0-13.8 56.5 24.7 0c16.1 0 32.1-3.2 37.9-26.6 5.6-22.3-8-29.8-24.1-29.8zM233.2 170l-21.3 0-11.7 47.7 21.4 0c18 0 35.4-14.6 39.2-30.1 4.6-18.9-9.5-17.6-27.6-17.6z\"]\n};\nvar faWatchmanMonitoring = {\n prefix: 'fab',\n iconName: 'watchman-monitoring',\n icon: [512, 512, [], \"e087\", \"M256 16a240 240 0 1 0 0 480 240 240 0 1 0 0-480zM121.7 429.1c-51.6-40.2-84.9-102.8-84.9-173.1 0-21.7 3.2-43.3 9.6-64.1l102.9-17.9-.1 11-13.9 2s-.1 12.5-.1 19.5c0 2 .4 4 1.2 5.8s2.1 3.4 3.7 4.6l9.5 7.4-27.7 204.9zM227.4 145.9l8.5-7.6s6.9-5.4-.1-9.3c-7.2-4-39.5-34.5-39.5-34.5-5.3-5.5-8.3-7.3-15.5 0 0 0-32.3 30.5-39.5 34.5-7.1 4-.1 9.3-.1 9.3l8.5 7.6 0 4.4-73.5-19.2c39.6-56.9 105.5-94.3 180-94.3 31.3 0 62.2 6.7 90.6 19.6s53.8 31.8 74.3 55.4l-193.5 37.7 0-3.6zm34.1 329.3l-33.9-250.9 9.5-7.4c1.6-1.2 2.8-2.8 3.7-4.6s1.3-3.8 1.2-5.8c0-7-.1-19.5-.1-19.5l-13.9-2-.1-10.5 241.7 31.4c3.9 16.4 5.8 33.3 5.8 50.1 0 119.1-95.4 216.2-213.8 219.1z\"]\n};\nvar faHips = {\n prefix: 'fab',\n iconName: 'hips',\n icon: [640, 512, [], \"f452\", \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8l-40.9 0c-1.6 0-2.7 1.4-2.7 2.8l0 201.8c0 1.4 1.1 2.8 2.7 2.8l40.9 0c1.9 0 2.8-.9 2.8-2.8l0-201.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4l0-81.2c0-1.8-.9-2.7-2.8-2.7l-40.9 0C.9 77.5 0 78.4 0 80.2L0 359.4c0 1.9 .9 2.8 2.7 2.8l41 0c1.9 0 2.8-.9 2.8-2.8l0-136.1c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27l0 122.6c0 9 7.3 16.3 16.4 16.3l27.3 0c1.8 0 2.7-.9 2.7-2.8l0-136.1c0-23.4-9.3-41.8-28-55.3zM634.9 278.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4l0-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5 .4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6L580.4 286c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4 .2-4.4 2.3l0 34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3 .7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5l0 183.5c0 .8 .6 2.7 2.7 2.7l40.9 0c1.9 0 2.8-.9 2.8-2.7l0-88.8c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7 .1-60.3-48.2-108.6-108.6-108.6zm0 46.6a62.2 62.2 0 1 1 0 124.3 62.2 62.2 0 1 1 0-124.3zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"]\n};\nvar faCloudversify = {\n prefix: 'fab',\n iconName: 'cloudversify',\n icon: [640, 512, [], \"f385\", \"M160.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5l0 20.4c0 10.7-8.7 19.5-19.5 19.5l-20.2 0c-10.7 0-19.5-6-19.5-16.7l0-6.6-46.8 0c-3.8 0-10.8 4.3-10.8 11.9l0 40.4c0 6.4 5.3 11.8 11.7 11.8l48.9 0 0-.1zM388 312c-10.7 46.3 21.7 72.4 55.3 86.8-107.2 33.8-171.6-50.8-135.3-110.8-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9 30.6-15.8 103.5-8.5 133.6 40.8-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM140 208l-39.8 0c-8.9 0-16.2-7.3-16.2-16.2l0-39.6c0-8.9 7.3-16.2 16.2-16.2l39.8 0c8.9 0 16.2 7.3 16.2 16.2l0 39.6c0 8.9-7.3 16.2-16.2 16.2zM22.1 168c-5.6 0-10.1-4.5-10.1-10.1l0-27.8c0-5.6 4.5-10.1 10.1-10.1l27.7 0c5.5 0 10.1 4.5 10.1 10.1l0 27.8c0 5.6-4.5 10.1-10.1 10.1l-27.7 0zM180 142.7l0-21.4c0-5.1 4.2-9.3 9.3-9.3l21.4 0c5.1 0 9.3 4.2 9.3 9.3l0 21.4c0 5.1-4.2 9.3-9.3 9.3l-21.4 0c-5.1 0-9.3-4.2-9.3-9.3zM68 235.5l0 25c0 6.3-5.1 11.5-11.4 11.5l-25.2 0c-6.3 0-11.4-5.2-11.4-11.5l0-25c0-6.3 5.1-11.5 11.4-11.5l25.1 0c6.4 0 11.5 5.2 11.5 11.5z\"]\n};\nvar faGoodreads = {\n prefix: 'fab',\n iconName: 'goodreads',\n icon: [448, 512, [], \"f3a8\", \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32l336 0c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3l-29 0 0 40.3c-.8 .3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9 .4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2 .5-1 1.1-1.9 1.7-2.9 .2 .1 .4 .1 .6 .2 .3 3.8 .2 30.7 .1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3l-26.8 0c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"]\n};\nvar faTidal = {\n prefix: 'fab',\n iconName: 'tidal',\n icon: [640, 512, [], \"e7dc\", \"M107.2 48l-1.3 0c-32.3 33.1-65.4 65.5-98 98.5-2.6 2.8-6.1 5.1-7.9 8.6 35.6 35.4 71 71 106.6 106.4 35.4-35.3 70.7-70.8 106.1-106.1l0-1.3-73.2-73.2C128.8 69.8 117.3 59.6 107.2 48zm213.5 0l-1.3 0c-34.9 36.1-71.5 71-106.3 107.2 35.9 35.1 71 71 106.7 106.3 34.3-34.1 68.4-68.4 102.6-102.4 1.5-1.5 3.3-2.8 4.1-4.8-34.6-33.8-68.4-68.2-102.6-102.1-1.3-1.3-2.3-2.6-3.3-4.1zm213.5 0l-1.3 0c-17.2 18-35.1 35.3-52.6 53-17.9 17.7-35.4 35.7-53.5 53.3 .8 2.3 3 3.6 4.6 5.5L533.3 261.5c36.1-34.9 70.8-71.2 106.7-106.1-.5-2.2-2.6-3.5-4-5L555.8 70.2c-7.1-7.4-14.9-14.2-21.5-22.2zM319.6 261.7c-34.9 35.1-70 70-104.9 104.9-.3 .7-.7 1.7-1 2.3 24 23.7 47.7 47.5 71.5 71.3 11.8 11.3 22.8 23.5 34.9 34.4 8.4-7.4 16.4-16.4 24.7-24.3 25.5-25.3 51-51 76.5-76.3 1.8-2.2 4.3-3.6 5.5-6.3-35.4-34.9-70.5-70.2-105.6-105.4l-1.5-.7z\"]\n};\nvar faUnity = {\n prefix: 'fab',\n iconName: 'unity',\n icon: [448, 512, [], \"e049\", \"M243.6 91.6l80.1 46.8c2.9 1.6 3 6.2 0 7.8l-95.2 55.6c-2.9 1.7-6.3 1.6-9 0l-95.2-55.6c-2.9-1.6-3-6.3 0-7.8l80.1-46.8 0-91.6-204.4 119.4 0 238.8 78.4-45.8 0-93.6c-.1-3.3 3.8-5.7 6.7-3.9l95.2 55.6c2.9 1.7 4.5 4.7 4.5 7.8l0 111.2c.1 3.3-3.8 5.7-6.7 3.9L98 346.8 19.6 392.6 224 512 428.4 392.6 350 346.8 269.9 393.6c-2.8 1.7-6.8-.5-6.7-3.9l0-111.2c0-3.3 1.8-6.3 4.5-7.8L362.9 215c2.8-1.7 6.8 .5 6.7 3.9l0 93.6 78.4 45.8 0-238.8-204.4-119.4 0 91.6z\"]\n};\nvar faTencentWeibo = {\n prefix: 'fab',\n iconName: 'tencent-weibo',\n icon: [320, 512, [], \"f1d5\", \"M40.5 495.8c1.4 19.9-27.6 22.2-29.7 2.9-11.6-129.9 31.1-239.5 101.4-313.2-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM160.2 .1c-125.9 0-204.3 134.2-148.3 242.3 8.7 17.4 35.3 4.5 26.3-13.4-46.3-92.6 21-199.2 122-199.2 75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3 0-91.9-74.6-166.5-166.6-166.5z\"]\n};\nvar faFreeCodeCamp = {\n prefix: 'fab',\n iconName: 'free-code-camp',\n icon: [576, 512, [], \"f2c5\", \"M97.4 96.2c10.4-10.6 16-17.1 16-21.9 0-2.8-1.9-5.5-3.8-7.4-2.4-1.8-5.4-2.8-8.4-2.8-8.5 0-20.9 8.8-35.8 25.7-41.5 47.3-62.7 93.1-61.8 160.6S21 367.3 57.6 412.2c18.8 23.6 33.2 35.8 43.5 35.8 3.2-.3 6.1-1.6 8.4-3.8 1.9-2.8 3.8-5.6 3.8-8.4 0-5.6-3.9-12.2-13.2-20.6-44.5-42.3-67.3-97-67.5-165-.2-61.4 21.6-112.4 64.8-154zM239.6 420.1c.6 .4 .9 .6 .9 .6l-.9-.6zm93.8 .6l.2-.1c-.2 .1-.3 .2-.2 .1zm3.1-158.2c-16.2-4.2 50.4-82.9-68.1-177.2 0 0 15.5 49.4-62.8 159.6-74.3 104.4 23.5 168.7 34 175.2-6.7-4.3-47.4-35.7 9.6-128.6 11-18.3 25.5-34.9 43.5-72.2 0 0 15.9 22.4 7.6 71.1-12.5 73.6 53.8 52.5 54.8 53.5 22.8 26.8-17.7 73.5-21.6 76.6 5.5-3.7 117.7-78 33-188.1-6 6-13.8 34.2-30 30.1zM511 89.7c-14.9-16.9-27.4-25.7-35.9-25.7-3 .1-5.9 1.1-8.4 2.8-1.9 1.9-3.8 4.7-3.8 7.4 0 4.8 5.6 11.3 16 21.9 43.2 41.6 65 92.6 64.8 154.1-.2 68-23 122.6-67.5 165-9.3 8.4-13.2 14.9-13.2 20.6 0 2.7 1.9 5.6 3.8 8.4 2.3 2.2 5.2 3.6 8.4 3.8 10.3 0 24.7-12.1 43.5-35.8 36.6-44.9 53.1-94.4 54.1-161.9S552.5 137 511 89.7z\"]\n};\nvar faXTwitter = {\n prefix: 'fab',\n iconName: 'x-twitter',\n icon: [448, 512, [], \"e61b\", \"M357.2 48L427.8 48 273.6 224.2 455 464 313 464 201.7 318.6 74.5 464 3.8 464 168.7 275.5-5.2 48 140.4 48 240.9 180.9 357.2 48zM332.4 421.8l39.1 0-252.4-333.8-42 0 255.3 333.8z\"]\n};\nvar faStickerMule = {\n prefix: 'fab',\n iconName: 'sticker-mule',\n icon: [576, 512, [], \"f3f7\", \"M561.7 199.6l0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3 .5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8 .4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5 .5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5 .5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4 .5 1 1 2 1.5 3.5 .5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5 .5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5 .3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6 .5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3 .8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"]\n};\nvar faTwitch = {\n prefix: 'fab',\n iconName: 'twitch',\n icon: [448, 512, [], \"f1e8\", \"M359.4 103.5l-38.6 0 0 109.7 38.6 0 0-109.7zM253.2 103l-38.6 0 0 109.8 38.6 0 0-109.8zM89 0l-96.5 91.4 0 329.2 115.8 0 0 91.4 96.5-91.4 77.3 0 173.8-164.6 0-256-366.9 0zM417.3 237.8l-77.2 73.1-77.2 0-67.6 64 0-64-86.9 0 0-274.3 308.9 0 0 201.2z\"]\n};\nvar faKickstarterK = {\n prefix: 'fab',\n iconName: 'kickstarter-k',\n icon: [448, 512, [], \"f3bc\", \"M356.7 256.2l40.8-40.5c42.2-41.9 42.2-110.3 0-152.1s-111-41.9-153.2 0L229.3 78.4C209.6 50.3 177.1 32 140.2 32 80.5 32 32 80.2 32 139.5l0 233c0 59.4 48.5 107.5 108.2 107.5 37.1 0 69.3-18.3 89-46.4l14.9 14.7c42.2 41.9 111 41.9 153.2 0s42.2-110.3 0-152.1l-40.8-40 .1 0z\"]\n};\nvar faCriticalRole = {\n prefix: 'fab',\n iconName: 'critical-role',\n icon: [448, 512, [], \"f6c9\", \"M225.8 0c.3 .2 216.6 124.5 217.1 124.7 3 1.2 3.7 3.5 3.7 6.6-.1 83.4-.1 166.9 0 250.4 .1 1.2-.2 2.4-.8 3.4s-1.5 1.9-2.6 2.4c-21.4 12-207.9 118.3-218.9 124.6l-3 0c-79.3-45.7-218.3-125.4-218.4-125.5-.6-.3-1.1-.7-1.4-1.3s-.5-1.2-.4-1.9c0-.9 0-225.9-.1-253.1-.1-1 .2-2 .7-2.9s1.3-1.6 2.2-2C27.2 112.1 213.2 6 224.1 0l1.8 0zM215.4 20.4l-.2-.2c-64.7 36.9-129.5 73.7-194.2 110.6 0 .1 .1 .2 .1 .4L52 142.9c-7.7 6-8.3 6-10.6 5.1-.1 0-24.2-9.3-26.8-10l0 230.4c.9-1.4 64.1-110.9 64.1-111 1.6-2.8 3-1.9 9.1-1.5 1.4 .1 1.5 .2 .8 1.4-41.2 71.3-36.4 63-67.5 116.9-.8 1.4-.6 1.1 1.2 1.1l186.5 0c1.4 0 1.7-.2 1.7-1.6l0-8.9c0-1.3 2.4-.8-18.4-1-7.5-.1-14.1-3.2-21.4-12.7-7.4-9.7-14.6-19.4-21.8-29.2-2.3-3.1-3.4-2.4-16.8-2.4-1.8 0-1.8 0-1.8 1.8 .3 26.2 .2 25.3 1 32.7 .5 4.4 2.2 4.2 9.7 4.8 3.1 .3 3.9 4.1 .5 4.9-1.6 .4-31.6 .5-33.7-.1-.5-.1-1-.5-1.3-.9s-.5-1-.4-1.6 .3-1.1 .6-1.5 .9-.7 1.4-.8c3.3-.8 6.2 .8 6.7-4.4 1.3-13.7 1.2-9 1.1-79.4 0-10.8-.4-12.6-5.4-13.6-1.2-.2-3.5-.2-4.7-.6-2.9-1-2-4.8 1.8-4.8 33.7 0 46.1-1.1 56.1 4.9 7.7 4.6 12 11.5 12.5 20.4 .9 14.6-6.5 22.3-15 32.6-.2 .1-.3 .3-.4 .5s-.1 .4-.1 .6 0 .4 .1 .6 .2 .4 .4 .5c2.6 3.2 5 6.6 7.7 9.8 27.6 33.2 24.1 30.5 41.3 33.1 .9 .1 1-.4 1-1.2l0-11c0-1 .3-1.4 1.4-1.3 7.8 1.2 15.8 1.1 23.6-.3 1.1-.1 1.5 .2 1.5 1.3 0 .1 .9 26.7 .9 26.8 0 1.5 .7 1.6 1.9 1.6l186.7 0c-27.2-47-54.2-94-81.2-140.8 2.3-.7-.4 0 6.7-1.4 2-.4 2.1-.4 3.1 1.4 7.3 12.6 77.3 134 77.4 134.1l0-230.4c-1.7 .5-103.3 38.7-105.8 39.7-1.1 .4-1.5 .2-1.9-.9-.6-1.9-1.3-3.8-2.1-5.6-.3-.8-.1-1.1 .6-1.4 .1 0 95.5-35.8 103-38.8-65.4-37.6-130.6-75-196-112.6l86.8 150.4-.3 .3c-9.6-.9-10.5-1.6-11.8-3.9-1-1.7-73.5-127.7-82-142.2-9.1 14.7-83.6 146.2-85.4 146.3-2.9 .2-5.9 .1-9.2 .1 28.8-49.8 57.6-99.5 86.2-149l0 0zm51.9 129.9c1.9-.1 3.7-.4 5.5-.8 1.7-.3 2.5 .2 2.6 1.9 0 .1 .1 19.1-.9 20.5s-1.9 1.2-2.6-.2c-5-9.7 6.2-9.7-39.1-12-.7 0-1 .2-1 .9 0 .1 3.7 122 3.7 122.1 0 .9 .5 1.2 1.2 1.5 3 1.2 5.9 2.5 8.7 4 7.3 4.3 11.4 10.8 12.4 19.3 1.4 11.8-2.8 35.8-32.2 37.1-2.8 .1-28.3 1.1-34.1-23.3-4.7-19.3 8.3-32.7 19.9-36.4 .6-.1 1.2-.4 1.5-.9s.5-1.1 .5-1.7c.1-5.6 3-107.1 3.7-121.3 0-1.1-.6-1.2-1.4-1.1-32.3 .5-36.7-.3-40.2 8.5-2.4 6.2-4.1 1.3-4 .2 1.1-6 2.2-12 3.3-18 .4-2.1 1.4-2.6 3.4-1.9 5.6 2.1 6.7 1.7 37.2 1.9 1.7 0 1.8-.1 1.8-1.8 .7-27.5 .6-22.6 1-29.6 .1-.6-.1-1.2-.3-1.7s-.7-.9-1.3-1.1c-5.6-2.9-8.8-7.6-8.9-13.9-.4-14.8 17.7-21.7 27.4-11.5 6.8 7.2 5.8 18.9-2.5 24.2-.8 .4-1.4 1.1-1.8 1.8s-.6 1.6-.4 2.5c0 .6-.1-4.3 1 30 0 .9 .4 1.1 1.2 1.1 .1 0 23-.1 34.5-.4l0-.1zM68.3 141.7c19.8-4.5 32.7-.6 52.5 1.7 2.8 .3 3.7 1.2 3.6 4-.2 5-1.2 22.3-1.2 23.1 0 .5-.2 1-.5 1.4s-.7 .7-1.2 .9c-4.1 1.7-3.6-4.4-4-7.3-3.1-22.4-73.9-32.7-74.6 25.4-.3 23.9 17 53.6 54.1 50.9 27.2-2 19-20.2 24.8-20.5 .4-.1 .9 0 1.3 .1s.8 .4 1.1 .7 .5 .7 .6 1.2 .1 .9 0 1.3c-1.8 10.8-3.4 19-3.4 19.2-1.5 9.2-86.7 22.1-93.4-42.1-2.7-25.8 10.4-53.4 40.3-60.2zm80 87.7l-19.5 0c-.6 0-1.2-.1-1.6-.4s-.8-.8-1-1.4c2.4-3.8 5.9 .9 5.9-6.1-.1-25.8 .2-38 .2-40.1 0-3.4-.5-4.6-3.3-4.9-7-.7-3.1-3.4-1.1-3.4 11.8-.1 22.6-.2 30 .7 8.8 1.1 16.7 12.6 7.9 22.6-2 2.2-4 4.4-6.1 6.7 1 1.2 6.9 8.8 17.3 19.7 2.7 2.8 6.2 3.5 9.9 3.1 .6 0 1.1-.2 1.5-.6s.7-.9 .7-1.5c.3-3.4 .3 4.7 .4-40.6 0-5.6-.3-6.6-3.2-6.8-4-.4-4-2.3-.7-3.4l19.1-.1c.3 0 4.5 .5 1 3.4 0 0-.2 0-.2 0-3.6 .3-3.9 1-4 4.6-.3 43.9 .1 40.2 .4 42.8 .1 .8 .3 2.2 5.1 2.1 2.5 0 3.9 3.4 0 3.4-10.4 .1-20.7 0-31.1 .1-10.7 0-13.5-6.2-24.2-20.8-1.6-2.2-8.3-2.4-8.2-.4 .9 16.5 0 17.8 4 17.7 4.8-.1 4.7 3.6 .8 3.5l.1 0zm275-10.1c-1.2 7.1 .2 10.4-5.3 10.3-61.5-.4-47.8-.2-50.7-.3-1.2-.1-2.4-.4-3.6-.7-2.5-.6 1.5-1.2-.4-5.6-1.4-3.4-2.8-6.8-4.1-10.2-.1-.4-.4-.8-.7-1.1s-.8-.4-1.3-.4c-4.9-.2-9.7-.2-14.6 .1-.3 0-.6 .2-.9 .3s-.5 .4-.7 .7c-1.6 3.6-3.1 7.3-4.5 11-1.3 3.2 7.9 1.3 12.2 2.2 3 .6 4.5 3.7 .7 3.7l-26.4 0c-2.9 0-3.1-3.2-.7-3.2 1.2 .1 2.4-.2 3.5-.9s1.9-1.5 2.4-2.6c1.5-3 2.8-6 4.1-9.1 18.2-42.1 17.1-40.2 18.4-41.6 .2-.2 .4-.4 .7-.6s.6-.2 .8-.2 .6 .1 .8 .2 .5 .3 .7 .6c2.9 3.3 18.4 44.7 23.6 51.9 2 2.7 5.7 2 6.4 2 3.6 .1 4-1.1 4.1-4.3 .1-1.9 .1 1.2 .1-41.2 0-4.5-2.4-3.7-5.6-4.3-.3 0-2.6-.6-.1-3.1 .2-.2-.9-.2 21.7-.2 2.3 0 5.3 2.8-1.2 3.4-.4 0-.7 0-1.1 .2s-.6 .3-.9 .6-.4 .6-.6 .9-.2 .7-.1 1.1c-.1 1.6-.2 38.9 .3 41.2 .2 .7 .6 1.4 1.2 1.8s1.3 .7 2.1 .6c13.3 .4 14.9 .4 16-3.4 1.7-5.8 4.1-2.5 3.7-.2l0 .1zM318.6 283.6c-4.2 0-4.4-3.4-.6-3.4 35.9-.2 28.1 .4 37.2-.6 1.7-.2 2.4 .2 2.3 1.9-.3 3.4-.6 6.8-1 10.2-.2 2.2-3.2 2.6-3.4-.2-.4-5.3-2.2-4.5-15.6-5.1-1.6-.1-1.6 0-1.6 1.5l0 16.1c0 1.7 0 1.6 1.6 1.5 3.1-.2 10.3 .3 15.7-1.5 .5-.2 3.3-1.8 3.1 1.8 0 .2-.8 10.4-1.2 11.4-.5 1.3-1.9 1.5-2.6 .3-1.2-2 0-5.1-3.7-5.3-15.4-.9-12.9-2.5-12.9 6 0 12.3-.8 16.1 3.9 16.2 16.6 .5 14.4 0 16.4-5.7 .8-2.4 3.5-1.8 3.2 .6-.4 3.2-.8 6.4-1.2 9.6 0 .4-.2 2.4-4.7 2.4-37.2-.1-34.5-.2-35.2-.3-2.7-.5-2.2-3 .2-3.4 1.1-.2 4 .5 4.2-2.6 2.4-56.2-.1-51.3-3.9-51.3l0 0zm-.4-109.5c2.5 .6 3.1 1.8 3 4.6-.3 5.3-.3 9-.6 9.7-.7 2.2-3.1 2.1-3.3-.3-.4-4.8-3-7.8-7.6-9.1-26.3-7.7-32.8 15.5-27.2 30.2 5.9 15.4 22 15.9 28.9 13.8 5.9-1.9 5.9-6.5 6.9-7.6 1.2-1.3 2.2-1.8 3.1 1.1 0 .1 .6 11.9-6 12.7-1.6 .2-19.4 3.7-32.7-3.4-21-11.2-16.7-35.5-6.9-45.3 14-14.1 39.9-7.1 42.3-6.5l0 0zM289.8 280.1c3.3 0 3.7 3 .2 3.4-2.6 .3-5-.4-5 5.5 0 2-.2 29 .4 41.4 .1 2.3 1.2 3.5 3.4 3.7 22 1.2 15-1.7 18.8-6.3 1.8-2.2 2.8 .8 2.8 1.1 .3 13.6-4 12.4-5.2 12.4l-38.2-.2c-1.9-.2-2.1-3-.4-3.4 2-.5 4.9 .4 5.1-2.8 1-15.9 .6-44.6 .3-47.8-.3-3.8-2.8-3.3-5.7-3.7-2.5-.4-2-3.2 .3-3.2 1.4 0 18 0 23.1 0zm-31.6-57.8c.1 4.1 2.9 3.5 6 3.6 2.6 .1 2.5 3.4-.1 3.4-6.5 0-13.7 0-21.6-.1-3.8 0-3.4-3.4 0-3.4 4.5 0 3.2 1.6 3.4-45.5 0-5.1-3.3-3.5-4.7-4.2-2.6-1.2-1.4-3.1 .4-3.2 1.3 0 20.2-.4 21.2 .2s1.9 1.6-.4 2.9c-1 .5-3.9-.3-4.2 2.5 0 .2-.8 1.6-.1 43.8l0 0zM221.3 496.6c.5 .3 1 .5 1.6 .5s1.1-.2 1.6-.5c17-9.8 182-103.6 197.4-112.5-.1-.4 11.3-.2-181.5-.3-1.2 0-1.6 .4-1.5 1.6 0 .1 1.3 44.5 1.2 50.4-.1 2.6-.6 5.2-1.4 7.7-.6 1.8 .4-.5-13.5 32.2-.7 1.7-1 2.2-2-.1-4.2-10.3-8.3-20.7-12.6-31-1.5-3.4-2.2-7.1-2-10.8 .2-2.5 .8-16.1 1.5-48 0-1.9 0-2-2-2l-183 0c2.6 1.6 178.3 102.6 196 112.8l.1 0zM130.4 307.9c0 2.4 .4 2.8 2.8 3 11.5 1.2 21 3.7 25.6-7.3 6-14.5 2.7-34.4-12.5-38.8-2-.6-16-2.8-15.9 1.5 0 8 0 11.6 0 41.6zm105.8-15c0 2.1 1.1 38.7 1.1 39.1 .3 9.9-25.6 5.8-25.2-2.6 .1-2 1.4-37.4 1.1-39.4-14.1 7.4-14.4 40.2 6.4 48.8 4 1.7 8.4 1.9 12.5 .6s7.6-4 9.9-7.7c4.9-7.8 6.8-29.5-5.4-39-.1 .1-.2 .1-.4 .1l0 0zm-12.3-198c-9.8 0-9.7 14.8-.1 14.9s10.1-14.9 .1-14.9l0 0zM143.7 198.6c0 1.8 .4 2.4 2.2 2.6 13.6 1.4 12.5-11 12.2-13.4-1.7-11.2-14.4-10.2-14.4-7.8 0 4.5 0 13.7 0 18.6zM356 205l-6.1-15.8c-2.2 5.5-4.2 10.6-6.2 15.8l12.3 0z\"]\n};\nvar faSteamSymbol = {\n prefix: 'fab',\n iconName: 'steam-symbol',\n icon: [448, 512, [], \"f3f6\", \"M273.5 177.5a61 61 0 1 1 122 0 61 61 0 1 1 -122 0zm174.5 .2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358 0 250.7 97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7C220.7 114.5 271.7 64 334.2 64 397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zM410.5 177.7a76.4 76.4 0 1 0 -152.8 0 76.4 76.4 0 1 0 152.8 0z\"]\n};\nvar faMailchimp = {\n prefix: 'fab',\n iconName: 'mailchimp',\n icon: [448, 512, [], \"f59e\", \"M331 243.5c3.1-.4 6.2-.4 9.3 0 1.7-3.8 2-10.4 .5-17.6-2.2-10.7-5.3-17.1-11.5-16.1s-6.5 8.7-4.2 19.4c1.3 6 3.5 11.1 6 14.3l0 0zM277.4 252c4.5 2 7.2 3.3 8.3 2.1 1.9-1.9-3.5-9.4-12.1-13.1-5-2.1-10.4-2.8-15.8-2.2s-10.5 2.7-14.8 5.8c-3 2.2-5.8 5.2-5.4 7.1 .9 3.7 10-2.7 22.6-3.5 7-.4 12.8 1.8 17.3 3.7l0 0zm-9 5.1c-9.1 1.4-15 6.5-13.5 10.1 .9 .3 1.2 .8 5.2-.8 6-2.3 12.4-2.9 18.7-1.9 2.9 .3 4.3 .5 4.9-.5 1.5-2.2-5.7-8-15.4-6.9l0 0zm54.2 17.1c3.4-6.9-10.9-13.9-14.3-7s10.9 13.9 14.3 7l0 0zm15.7-20.5c-7.7-.1-8 15.8-.3 15.9s8-15.8 .3-16l0 0zM119.5 332.7c-1.3 .3-6 1.5-8.5-2.3-5.2-8 11.1-20.4 3-35.8-9.1-17.5-27.8-13.5-35-5.5-8.7 9.6-8.7 23.5-5 24.1 4.3 .6 4.1-6.5 7.4-11.6 .9-1.4 2.1-2.6 3.5-3.6s3-1.6 4.6-2 3.4-.4 5 0 3.3 1 4.7 1.9c11.6 7.6 1.4 17.8 2.3 28.6 1.4 16.7 18.4 16.4 21.6 9 .2-.4 .3-.8 .3-1.2s-.2-.8-.5-1.1c0 .9 .7-1.3-3.4-.4l0 0zm299.7-17.1c-3.3-11.7-2.6-9.2-6.8-20.5 2.4-3.7 15.3-24-3.1-43.3-10.4-10.9-33.9-16.5-41.1-18.5-1.5-11.4 4.6-58.7-21.5-83 20.8-21.6 33.8-45.3 33.7-65.7-.1-39.2-48.2-51-107.4-26.5l-12.5 5.3c-.1 0-22.7-22.3-23.1-22.6-67.5-58.9-278.8 175.9-211.3 232.9l14.8 12.5c-4 10.7-5.4 22.2-4.1 33.5 3.4 33.4 36 60.4 67.5 60.4 57.7 133.1 267.9 133.3 322.3 3 1.7-4.5 9.1-24.6 9.1-42.4s-10.1-25.3-16.5-25.3l0 0zm-316 48.2c-22.8-.6-47.5-21.1-49.9-45.5-6.2-61.3 74.3-75.3 84-12.3 4.5 29.6-4.7 58.5-34.1 57.8l0 0zM84.7 249.6c-15.2 3-28.5 11.5-36.7 23.5-4.9-4.1-14-12-15.6-15-13-24.8 14.2-73 33.3-100.2 47.1-67.2 120.9-118.1 155-108.9 5.5 1.6 23.9 22.9 23.9 22.9s-34.1 18.9-65.8 45.3C136.2 150 104 197.7 84.7 249.6zM323.6 350.7s-35.7 5.3-69.5-7.1c6.2-20.2 27 6.1 96.4-13.8 15.3-4.4 35.4-13 51-25.4 3.4 7.8 5.8 15.9 7.1 24.3 3.7-.7 14.2-.5 11.4 18.1-3.3 19.9-11.7 36-25.9 50.8-8.9 9.6-19.4 17.5-31.2 23.3-6.5 3.4-13.3 6.3-20.3 8.6-53.5 17.5-108.3-1.7-126-43-1.4-3.1-2.6-6.4-3.6-9.7-7.5-27.2-1.1-59.8 18.8-80.4 1.2-1.3 2.5-2.9 2.5-4.8-.2-1.7-.8-3.3-1.9-4.5-7-10.1-31.2-27.4-26.3-60.8 3.5-24 24.5-40.9 44.1-39.9l5 .3c8.5 .5 15.9 1.6 22.9 1.9 11.7 .5 22.2-1.2 34.6-11.6 4.2-3.5 7.6-6.5 13.3-7.5 2.3-.6 4.7-.7 7-.3s4.6 1.2 6.6 2.5c10 6.6 11.4 22.7 11.9 34.5 .3 6.7 1.1 23 1.4 27.6 .6 10.7 3.4 12.2 9.1 14 3.2 1 6.2 1.8 10.5 3.1 13.2 3.7 21 7.5 26 12.3 2.5 2.5 4.2 5.8 4.7 9.3 1.6 11.4-8.8 25.4-36.3 38.2-46.7 21.7-93.7 14.4-100.5 13.7-20.2-2.7-31.6 23.3-19.5 41.1 22.6 33.4 122.4 20 151.4-21.4 .7-1 .1-1.6-.7-1-41.8 28.6-97.1 38.2-128.5 26-4.8-1.8-14.7-6.4-15.9-16.7 43.6 13.5 71 .7 71 .7s2-2.8-.6-2.5zM171.7 157.5c16.7-19.4 37.4-36.2 55.8-45.6 .1-.1 .3-.1 .5-.1s.3 .1 .4 .2 .2 .3 .2 .4 0 .3-.1 .5c-1.5 2.7-4.3 8.3-5.2 12.7 0 .1 0 .3 0 .4s.2 .3 .3 .4 .3 .1 .4 .1 .3 0 .4-.1c11.5-7.8 31.5-16.2 49-17.3 .2 0 .3 0 .5 .1s.2 .2 .3 .4 .1 .3 0 .5-.1 .3-.3 .4c-2.9 2.2-5.5 4.8-7.7 7.7-.1 .1-.1 .2-.1 .4s0 .3 .1 .4 .2 .2 .3 .3 .2 .1 .4 .1c12.3 .1 29.7 4.4 41 10.7 .8 .4 .2 1.9-.6 1.7-69.5-15.9-123.1 18.5-134.5 26.8-.2 .1-.3 .1-.5 .1s-.3-.1-.5-.2-.2-.3-.2-.5 .1-.4 .2-.5l-.1 0z\"]\n};\nvar faLumon = {\n prefix: 'fab',\n iconName: 'lumon',\n icon: [640, 512, [], \"e7e2\", \"M452.5 223.5c9.8 0 16.5 6.3 16.5 16.6l0 31.8c0 10.3-6.6 16.6-16.6 16.6l-56.2 0c-9.8 0-16.5-6.3-16.5-16.6l0-31.8c0-10.3 6.7-16.6 16.5-16.6l56.3 0zm-25.7 13.1c-1.5-2.6-3.2-2.6-4.6 0l-10.7 17.6c-1.7 2.4-2.6 5.1-2.6 8.2 0 7.9 6.9 14.6 15.6 14.6 8.5 0 15.6-6.7 15.6-14.6 0-3-1-5.8-2.7-8.2l-10.7-17.6zM85.8 223.8c1 0 1.5 .6 1.5 1.5l0 50.3 64.6 0c1 0 1.6 .6 1.6 1.5l0 9.7c0 .9-.6 1.5-1.6 1.5l-78.4 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l12.3 0zm88.3 0c1 0 1.5 .6 1.5 1.5l0 45c0 4 2 5.2 5.7 5.2l46.9 0c3.8 0 5.7-1.3 5.7-5.2l0-45c0-.9 .5-1.5 1.5-1.5l12.3 0c1 0 1.6 .6 1.6 1.5l0 46c0 10.5-5.3 16.8-17.6 16.8l-54 0c-12.3 0-17.6-6.3-17.6-16.8l0-46c0-.9 .6-1.5 1.6-1.5l12.3 0zm108.2 0c1 0 1.6 .5 2.2 1.4l30.5 46.4 1.4 0 30.5-46.4c.6-.9 1.2-1.4 2.2-1.4l18 0c1 0 1.5 .6 1.5 1.5l0 61.4c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-43.8-1.1 0-28.7 43.8c-.6 .9-1.3 1.5-2.4 1.5l-10.7 0c-1 0-1.7-.6-2.3-1.5l-28.7-43.8-1.1 0 0 43.8c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l17.9 0zm214.4 0c.9 0 1.3 .4 2.2 1.1l52.7 46.3 1.3 0 0-46c0-.9 .6-1.5 1.6-1.5l12.3 0c1 0 1.6 .6 1.6 1.5l0 61.4c0 .9-.6 1.5-1.6 1.5l-14.4 0c-1 0-1.4-.4-2.3-1.1l-52.6-46.3-1.4 0 0 46c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l14.4 0zM320 114.1c87.9 0 167.7 15.7 225.5 41l2.7 1.2C587.1 173.8 640 206.5 640 256s-52.9 82.2-91.8 99.6l-2.7 1.2c-57.8 25.4-137.6 41-225.5 41-76.2 0-155.1-10.5-225.5-41-39.6-17.4-94.5-50.3-94.5-100.8s54.9-83.5 94.5-100.8c70.4-30.5 149.3-41 225.5-41zm-88.9 229c20.3 29 52.8 49.6 88.9 49.6 36.2 0 68.7-20.6 89-49.7l-177.9 .1zm-96.1 0c43.3 29.7 96.7 43.5 148.4 48-24.2-9.1-44.4-26.7-58.6-48.1l-89.9 0zm280.3-.1c-14.2 21.4-34.4 39.1-58.6 48.1 51.8-4.5 105.3-18.3 148.6-48.2l-90 0zm-337.4 .1c44.1 23.1 93.7 35.4 142.7 42.6-33.4-8.6-66.5-21.9-94.4-42.6l-48.3 0zm436.2-.2c-27.9 20.8-61.1 34.2-94.6 42.8 47.3-6.9 89.6-18.5 123.9-33.6l1.7-.8c6.1-2.7 11.9-5.5 17.4-8.4l-48.5 0zM520 173.6c10.7 8.7 19.8 18.1 27 28.2 .4 .6 .5 1.3 .1 2s-1 1-1.7 1l-1.6 0c-.6 0-1.2-.3-1.5-.8-7.9-10.9-18.2-21.1-30.6-30.4l-93.5 0c5.4 8.8 9.9 18.5 13.4 28.6 .2 .6 .1 1.2-.2 1.7s-.9 .8-1.6 .8l-1.4 0c-.8 0-1.5-.5-1.8-1.3-3.8-10.7-8.7-20.8-14.5-29.9l-184.3 .1c-5.8 9.1-10.7 19.1-14.4 29.8-.3 .8-1 1.3-1.8 1.3l-1.4 0c-.6 0-1.2-.3-1.6-.8s-.5-1.1-.2-1.7c3.5-10.2 8-19.7 13.4-28.6l-93.6 0c-12.3 9.3-22.6 19.4-30.4 30.3-.4 .5-.9 .8-1.5 .8l-1.6 0c-.7 0-1.4-.4-1.7-1s-.3-1.4 .1-2c7.6-10.5 16.7-19.9 26.8-28l-51 0c-28.9 16.6-62 43.3-63.5 79.7l44.7 0c.5 0 1 .2 1.3 .6s.6 .8 .6 1.3l0 1.3c0 1.1-.9 1.9-1.9 1.9l-44.7 0C6.8 295 40 321.7 69 338.3l50.9 0c-10.3-8.4-19.1-17.4-26.1-27l-.8-1.1c-.4-.6-.5-1.3-.1-2s1-1 1.7-1l1.6 0 .2 0c.5 .1 1 .3 1.3 .8 7.9 10.9 18.1 21 30.5 30.3l93.6 0c-5.3-8.8-9.8-18.4-13.4-28.5-.2-.6-.1-1.2 .2-1.7s.9-.8 1.6-.8l1.4 0 .2 0c.7 .1 1.4 .6 1.7 1.3 3.8 10.7 8.6 20.7 14.4 29.8l184.5-.1c5.8-9.1 10.6-19.1 14.4-29.7l.1-.1c.3-.7 1-1.1 1.7-1.1l1.4 0c.6 0 1.2 .3 1.6 .8s.5 1.2 .2 1.7c-3.5 10.1-8 19.7-13.3 28.5l93.7 0c12.3-9.3 22.5-19.4 30.3-30.2l.1-.2c.4-.4 .9-.6 1.4-.6l1.6 0c.7 0 1.4 .4 1.7 1s.3 1.4-.1 2c-7.1 10-16.1 19.3-26.7 27.9l51.1 0c28.8-16.6 61.8-43.3 63.4-79.6l-44.7 0c-1 0-1.9-.9-1.9-1.9l0-1.3c0-1.1 .9-1.9 1.9-1.9l44.7 0c-1.6-36.5-34.9-63.3-63.9-79.9l-50.9 0zM220.5 126.2c-49.1 7.1-98.7 19.5-143 42.7l48.4 0c27.9-20.8 61-34.1 94.5-42.7zm62.8-5.4c-51.8 4.5-105.2 18.3-148.6 48.1l90 0c14.2-21.4 34.4-39 58.6-48.1zm36.6-1.6c-36.2 0-68.7 20.6-89 49.7l177.9-.1c-20.3-29.1-52.7-49.6-88.9-49.6zm36.6 1.6c24.2 9.1 44.4 26.6 58.5 48l89.8 0c-43.3-29.7-96.6-43.5-148.3-48zm62.8 5.4c33.4 8.5 66.4 21.9 94.3 42.5l48.3 0c-44.1-23.1-93.6-35.4-142.6-42.5z\"]\n};\nvar faNutritionix = {\n prefix: 'fab',\n iconName: 'nutritionix',\n icon: [448, 512, [], \"f3d6\", \"M112 8.1S245.4-.1 233 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zM424 323.7c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48-22.3-37-32-83.8-32-132.3 0-48.4 17.7-94.7 40-131.7 42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM144 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM216 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM288 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM360 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM384 256c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S118.8 180.1 80 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"]\n};\nvar faCreativeCommonsSamplingPlus = {\n prefix: 'fab',\n iconName: 'creative-commons-sampling-plus',\n icon: [512, 512, [], \"f4f1\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1 .4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7-43.9 0 0 23.2 51.3 0c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2 .2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1 .1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4 50.5 0 0-23.2-58.4 .3zm-78 5.2l-21.9 0 0 21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5l0-21.9-21.9 0c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5l21.9 0 0-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5l0 21.9 21.9 0c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"]\n};\nvar faRedhat = {\n prefix: 'fab',\n iconName: 'redhat',\n icon: [512, 512, [], \"f7bc\", \"M341.5 285.6c33.7 0 82.3-6.9 82.3-47 .2-6.7 .9-1.8-20.9-96.2-4.6-19.1-8.7-27.8-42.3-44.6-26.1-13.3-82.9-35.4-99.7-35.4-15.7 0-20.2 20.2-38.9 20.2-18 0-31.3-15.1-48.1-15.1-16.1 0-26.7 11-34.8 33.6-27.5 77.6-26.3 74.3-26.1 78.3 0 24.8 97.6 106.1 228.5 106.1zM429 254.8c4.7 22 4.7 24.3 4.7 27.2 0 37.7-42.3 58.6-98 58.6-125.7 .1-235.9-73.6-235.9-122.3 0-6.8 1.4-13.5 4.1-19.7-45.2 2.3-103.8 10.3-103.8 62 0 84.7 200.6 189 359.5 189 121.8 0 152.5-55.1 152.5-98.6 0-34.2-29.6-73-82.9-96.2z\"]\n};\nvar faSquarePiedPiper = {\n prefix: 'fab',\n iconName: 'square-pied-piper',\n icon: [448, 512, [\"pied-piper-square\"], \"e01e\", \"M32.1 419l-32 60.2 .8-328C.9 85.3 54.1 32 120.1 32l327.2 0C354.3 60.9 257.4 126.2 193.4 200.6 122.8 282 82.7 338 32.1 419zm416-387S305.3 98.8 261.7 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66l328.4 0c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"]\n};\nvar faPiedPiperSquare = faSquarePiedPiper;\nvar faWhatsapp = {\n prefix: 'fab',\n iconName: 'whatsapp',\n icon: [448, 512, [], \"f232\", \"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\"]\n};\nvar faImdb = {\n prefix: 'fab',\n iconName: 'imdb',\n icon: [448, 512, [], \"f2d8\", \"M89.5 323.6l-35.6 0 0-137.4 35.6 0 0 137.4zm66.6-73.1l9.1-64.3 46.3 0 0 137.4-31 0 0-92.7-13.4 92.7-21.3 0-13-90.7-.1 90.7-31.2 0 0-137.4 46.1 0c.5 8.3 2.8 18.1 4.3 29.4l4.2 34.9zm67.6 73.1l0-137.4 26.6 0c17 0 27 .9 33 2.4 6.1 1.7 10.7 4.2 13.9 7.9 3.1 3.3 5.1 6.6 5.8 12 .9 4.4 1.4 13.1 1.4 26.2l0 48.2c0 12.3-.7 20.5-1.9 24.7-1.1 4.1-3.1 7.4-6 9.7-2.8 2.4-6.4 4.1-10.7 5-4.2 .8-10.6 1.3-19.1 1.3l-43 0zm35.5-113.9l0 89.4c5.1 0 8.3-1 9.4-2.3 1.1-2 1.8-7.6 1.8-16.7l0-53.3c0-6.2-.1-10.2-.7-12-.3-1.8-1.2-3-2.6-4.7-1.4 0-4.1-.4-7.9-.4zm57.3 113.9l0-137.4 34.1 0 0 43.9c2.9-2.4 6.1-4.9 9.5-6.6 3.6-1.5 8.8-2.4 12.8-2.4 4.8 0 8.9 .8 12.3 2.2 3.4 1.5 6 3.5 8 6.2 1.7 2.6 2.7 5.3 3.1 7.8 .4 2.6-.2 8-.2 16.2l0 38.6c0 8.2 .2 14.3-.8 18.4-1.1 4-3.8 7.6-7.8 9.6-4.1 3.9-8.9 5.3-14.6 5.3-4 0-9.2-.9-12.7-2.5-3.5-1.8-6.7-4.5-9.6-8l-2.1 8.7-32 0zm45.1-20.7c.7-1.8 1-6 1-12.5l0-35.4c0-5.6-.3-9.5-1.1-11.2-.7-1.9-3.7-2.7-5.8-2.7-2 0-3.4 .8-4.1 2.3-.6 1.5-1 5.4-1 11.6l0 36.4c0 6.1 .4 10 1.2 11.6 .6 1.7 2.1 2.5 4.1 2.5 2.2 0 4.2-.8 5.7-2.6zM418.4 32c15.7 1.2 28.7 15.2 28.7 31.9l0 384.2c0 16.4-11.9 30.4-28.2 31-.3 0-.5 .9-.8 .9L29.9 480c-.3 0-.6-.9-.8-.1-15.7-1.4-27.9-13.8-29-30.2L0 61.8C1.1 45.9 13.8 33.1 30.3 31.1l387.4 0c.2 0 .5 .9 .7 .9zM30.3 41.3C19 42 10 51 9.3 62.4l0 387.3c.4 5.4 2.7 10.5 6.4 14.3 3.8 3.9 8.8 6.3 14.2 6.7l388.2 0c11.5-1 20.6-11.6 20.6-22.6l0-384.2c0-5.7-2.1-11.3-6-15.5s-9.3-6.8-15-7.2l-387.4 0z\"]\n};\nvar faPython = {\n prefix: 'fab',\n iconName: 'python',\n icon: [448, 512, [], \"f3e2\", \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2l-40.1 0 0 47.4c0 36.8-31.2 67.8-66.8 67.8l-106.8 0c-29.2 0-53.4 25-53.4 54.3l0 101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3l0-40.7-106.7 0 0-13.6 160.2 0c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 444.7a20.4 20.4 0 1 1 0-40.7 20.4 20.4 0 1 1 0 40.7zM167.8 248.1l106.8 0c29.7 0 53.4-24.5 53.4-54.3l0-101.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8 .1-45.2 8-53.4 24.7-53.4 55.6l0 40.7 106.9 0 0 13.6-147 0c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2l36.7 0 0-48.8c0-35.3 30.5-66.4 66.8-66.4zM161.2 64.7a20.4 20.4 0 1 1 0 40.8 20.4 20.4 0 1 1 0-40.8z\"]\n};\nvar faCashApp = {\n prefix: 'fab',\n iconName: 'cash-app',\n icon: [448, 512, [], \"e7d4\", \"M440.3 96.9c-9.4-26.5-30.3-47.4-56.8-57-24.1-7.9-46.3-7.9-91.6-7.9L156 32c-44.8 0-67.2 0-91.3 7.5-26.5 9.6-47.4 30.5-57 57-7.7 24.3-7.7 46.7-7.7 91.7L0 323.8c0 45.2 0 67.4 7.5 91.5 9.6 26.5 30.5 47.4 57 57 24.3 7.7 46.7 7.7 91.6 7.7l135.7 0c45 0 67.4 0 91.6-7.7 26.5-9.6 47.4-30.5 57-57 7.7-24.3 7.7-46.7 7.7-91.5l0-135.5c0-45 0-67.4-7.7-91.5zM323.1 185.4l-25.8 21.1c-2.3 1.9-5.5 1.5-7.3-.9-13.2-16.2-33.7-25.4-56.1-25.4-25 0-40.6 10.9-40.6 26.2-.4 12.8 11.7 19.6 49.1 27.7 47.2 10 68.7 29.7 68.7 62.7 0 41.4-33.7 71.9-86.4 75.3l-5.1 24.5c-.4 2.3-2.6 4.1-5.1 4.1l-40.6 0c-3.4 0-5.8-3.2-5.1-6.4l6.4-27.3c-26-7.5-47.2-22-59.3-39.7-1.5-2.3-1.1-5.3 1.1-7l28.2-22c2.3-1.9 5.8-1.3 7.5 1.1 14.9 20.9 38 33.3 65.7 33.3 25 0 43.8-12.2 43.8-29.7 0-13.4-9.4-19.6-41.2-26.2-54.2-11.7-75.8-31.8-75.8-64.9 0-38.4 32.2-67.2 80.9-71l5.3-25.4c.4-2.3 2.6-4.1 5.1-4.1l39.9 0c3.2 0 5.8 3 5.1 6.2l-6.2 28.4c20.9 6.4 38 17.9 48.7 32.2 1.7 2.1 1.3 5.3-.9 7z\"]\n};\nvar faPinterestP = {\n prefix: 'fab',\n iconName: 'pinterest-p',\n icon: [384, 512, [], \"f231\", \"M204 6.5c-102.6 0-204 68.4-204 179.1 0 70.4 39.6 110.4 63.6 110.4 9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8 0-99.3-85.8-164.1-180-164.1z\"]\n};\nvar faWhmcs = {\n prefix: 'fab',\n iconName: 'whmcs',\n icon: [448, 512, [], \"f40d\", \"M448 161l0-21.3-28.5-8.8-2.2-10.4 20.1-20.7-10.4-19.4-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4-22.6 0-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6 .3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zM328.8 92.6a56.8 56.8 0 1 1 0 113.6 56.8 56.8 0 1 1 0-113.6zm72.3 130l46.9 14.5 0 39.9-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1 .5-40.9 53.5-14.7 5.7-19.7-38.9-39.4 20.7-35.8 53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4 22.7-6.1 11.6-52 42.4 0 11.6 45.9-22.6-5.9-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7c0 3.2-.1 9.6-.3 19.3-47.5 10.4-83.3 52.8-83.3 103.5 0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8 9.9 .1 16.6 .2 20.1 .3l1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"]\n};\nvar faJoget = {\n prefix: 'fab',\n iconName: 'joget',\n icon: [512, 512, [], \"f3b7\", \"M386.1 45C345.6 19.9 300.6 8 256.2 8 173 8 91.8 49.9 44.9 125.9-27 242.5 9.3 395.2 125.9 467.1s269.3 35.6 341.2-80.9C539 269.6 502.7 116.8 386.1 45zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zM237.1 281.9c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7-128.6 8.7-167.3 99.3-178.3 140.2-8.8-49.7-.1-102.7 28.5-149.1 61.9-100.5 193.5-131.7 294-69.8 74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3L393.5 266 440 242.6s3.6-9.5-19.1-15.5z\"]\n};\nvar faSquareYoutube = {\n prefix: 'fab',\n iconName: 'square-youtube',\n icon: [448, 512, [61798, \"youtube-square\"], \"f431\", \"M282 256.2l-95.2-54.1 0 108.2 95.2-54.1zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9-28.3 7.7-142.2 7.7-142.2 7.7s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9-7.6-28.6-7.6-88.2-7.6-88.2s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4 28.3-7.7 142.2-7.7 142.2-7.7s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z\"]\n};\nvar faYoutubeSquare = faSquareYoutube;\nvar faAtlassian = {\n prefix: 'fab',\n iconName: 'atlassian',\n icon: [512, 512, [], \"f77b\", \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7l175 0c5.8 .1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4L497 512c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6 .1z\"]\n};\nvar faPiedPiperHat = {\n prefix: 'fab',\n iconName: 'pied-piper-hat',\n icon: [640, 512, [], \"f4e5\", \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9 .6 2.8 .8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6-73.4 1.1-97.5-33.5-97.5-35.1 0-1.1 .6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3 73.6-140.3 139.2-189.4 210.6-189.4 0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"]\n};\nvar faInternetExplorer = {\n prefix: 'fab',\n iconName: 'internet-explorer',\n icon: [512, 512, [], \"f26b\", \"M483.1 159.7c10.9-24.6 21.4-60.4 21.4-87.9 0-72.7-79.6-98.4-209.7-38.6-107.6-7.2-211.2 73.7-237.1 186.5 30.9-34.9 78.3-82.3 122-101.2-54.3 48.3-100.6 109.4-135.7 173.2-20.7 37.9-44 99.2-44 145 0 98.6 92.9 86.5 180.3 42 31.4 15.4 66.6 15.6 101.7 15.6 97.1 0 184.2-54.3 216.8-146l-120.8 0c-52.5 88.6-196.8 53-196.8-47.4l328.8 0c6.4-43.6-1.7-95.7-26.9-141.2zM64.6 346.9C82.3 398 118.3 442.7 164.8 470.2 76.1 519.1-8.4 499.3 64.6 346.9zM180.5 238c2-55.2 50.3-94.9 104-94.9 53.4 0 102 39.7 104 94.9l-208 0zM365.1 50.4c21.4-10.3 48.6-22 72.6-22 31.4 0 54.3 21.7 54.3 53.7 0 20-7.4 49-14.6 67.9-26.3-42.3-66-81.6-112.3-99.6z\"]\n};\nvar faAirbnb = {\n prefix: 'fab',\n iconName: 'airbnb',\n icon: [448, 512, [], \"f834\", \"M224.5 373.1c-25.2-31.7-40.1-59.4-45-83.2-22.5-88 112.6-88 90.1 0-5.4 24.2-20.3 52-45 83.2l-.1 0zm138.2 73.2c-42.1 18.3-83.7-10.9-119.3-50.5 103.9-130.1 46.1-200-18.8-200-54.9 0-85.2 46.5-73.3 100.5 6.9 29.2 25.2 62.4 54.4 99.5-32.5 36-60.5 52.7-85.2 54.9-50 7.4-89.1-41.1-71.3-91.1 15.1-39.2 111.7-231.2 115.9-241.6 15.8-30.1 25.6-57.4 59.4-57.4 32.3 0 43.4 25.9 60.4 59.9 36 70.6 89.4 177.5 114.8 239.1 13.2 33.1-1.4 71.3-37 86.6zm47-136.1c-128.9-274.3-136-278.2-185.1-278.2-45.5 0-64.9 31.7-84.7 72.8-106.2 212.3-116.4 242.4-117.3 245-25.2 69.3 26.7 130.2 89.6 130.2 21.7 0 60.6-6.1 112.4-62.4 58.7 63.8 101.3 62.4 112.4 62.4 62.9 .1 114.9-60.9 89.6-130.2 0-3.9-16.8-38.9-16.8-39.6l0 0z\"]\n};\nvar faJs = {\n prefix: 'fab',\n iconName: 'js',\n icon: [448, 512, [], \"f3b8\", \"M0 32l0 448 448 0 0-448-448 0zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"]\n};\nvar faQuinscape = {\n prefix: 'fab',\n iconName: 'quinscape',\n icon: [512, 512, [], \"f459\", \"M313.7 474.6l-1 0c-41.9 0-82.1-16.7-111.8-46.3s-46.3-69.9-46.3-111.8 16.7-82.1 46.3-111.8 69.9-46.3 111.8-46.3c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7 0-135.1-109.5-244.6-244.6-244.6S12.1 117.5 12.1 252.6 121.6 497.2 256.6 497.2c23.8 .2 47.6-3.2 70.4-10.1-5.2-3.5-8.9-8.1-13.3-12.5zm78.3-169a99.2 99.2 0 1 0 0 198.4 99.2 99.2 0 1 0 0-198.4z\"]\n};\nvar faAdversal = {\n prefix: 'fab',\n iconName: 'adversal',\n icon: [512, 512, [], \"f36a\", \"M482.1 32L28.7 32C5.8 32 0 37.9 0 60.9L0 451.1C0 474.4 5.8 480 28.7 480l453.4 0c24.4 0 29.9-5.2 29.9-29.7l0-388.1c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4 .4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9l-394.9 0c-7.4 0-18.2 4.8-17.8-10.7 .4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5l0 291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5l0-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6 .4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1 .2-.1 .3-.1 .5zM417.4 334.1c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2 .4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zM122.6 369.4c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"]\n};\nvar faCreativeCommons = {\n prefix: 'fab',\n iconName: 'creative-commons',\n icon: [512, 512, [], \"f25e\", \"M253.8 214.9l-33.2 17.3c-9.4-19.6-25.2-19.9-27.5-19.9-22.1 0-33.2 14.6-33.2 43.8 0 23.6 9.2 43.8 33.2 43.8 14.5 0 24.6-7.1 30.6-21.3l30.6 15.5c-6.2 11.5-25.7 39-65.1 39-22.6 0-74-10.3-74-77 0-58.7 43-77.1 72.6-77.1 30.7 0 52.7 11.9 66 35.9zm143 0l-32.8 17.3c-9.5-19.8-25.7-19.9-27.9-19.9-22.1 0-33.2 14.6-33.2 43.8 0 23.5 9.2 43.8 33.2 43.8 14.4 0 24.6-7.1 30.5-21.3l31 15.5c-2.1 3.8-21.4 39-65.1 39-22.7 0-74-9.9-74-77 0-58.7 43-77.1 72.6-77.1 30.7 0 52.6 11.9 65.6 35.9zM255.6 8C112.7 8 8 123.1 8 256.1 8 394.5 121.6 504.1 255.6 504.1 385.5 504.1 504 403.2 504 256.1 504 118.2 397.4 8 255.6 8zm.9 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.4-203.3 203.7-203.3 112.5 0 202.8 89.5 202.8 203.3 0 121.7-99.7 202.8-202.8 202.8z\"]\n};\nvar faNotion = {\n prefix: 'fab',\n iconName: 'notion',\n icon: [512, 512, [], \"e7d9\", \"M94.9 100.2c14.9 12.1 20.5 11.2 48.6 9.3L407.8 93.6c5.6 0 .9-5.6-.9-6.5L362.9 55.4c-8.4-6.5-19.6-14-41.1-12.1L65.9 61.9c-9.3 .9-11.2 5.6-7.5 9.3l36.4 28.9zm15.9 61.6l0 278.1c0 14.9 7.5 20.5 24.3 19.6l290.5-16.8c16.8-.9 18.7-11.2 18.7-23.3l0-276.2c0-12.1-4.7-18.7-15-17.7L125.7 143.1c-11.2 .9-14.9 6.5-14.9 18.7zm286.7 14.9c1.9 8.4 0 16.8-8.4 17.8l-14 2.8 0 205.3c-12.2 6.5-23.4 10.3-32.7 10.3-15 0-18.7-4.7-29.9-18.7l-91.5-143.7 0 139 29 6.5s0 16.8-23.4 16.8l-64.4 3.7c-1.9-3.7 0-13.1 6.5-14.9l16.8-4.7 0-183.8-23.3-1.9c-1.9-8.4 2.8-20.5 15.9-21.5l69.1-4.7 95.3 145.6 0-128.8-24.3-2.8c-1.9-10.3 5.6-17.7 14.9-18.7l64.5-3.8zM44.4 36.7L310.6 17.1c32.7-2.8 41.1-.9 61.6 14l85 59.7c14 10.3 18.7 13.1 18.7 24.3l0 327.6c0 20.5-7.5 32.7-33.6 34.5L133.2 495.8c-19.6 .9-29-1.9-39.2-14.9L31.4 399.7c-11.2-14.9-15.9-26.1-15.9-39.2l0-291.2c0-16.8 7.5-30.8 28.9-32.7z\"]\n};\nvar faChromecast = {\n prefix: 'fab',\n iconName: 'chromecast',\n icon: [512, 512, [], \"f838\", \"M448 64L64.2 64c-23.6 0-42.7 19.1-42.7 42.7l0 63.9 42.7 0 0-63.9 383.8 0 0 298.6-149.2 0 0 42.7 149.4 0c23.6 0 42.7-19.1 42.7-42.7l0-298.6C490.9 83.1 471.6 64 448 64zM21.5 383.6l0 63.9 63.9 0c0-35.3-28.6-63.9-63.9-63.9zm0-85l0 42.4c58.9 0 106.6 48.1 106.6 107l42.7 0c.1-82.4-66.9-149.3-149.3-149.4zM213.6 448l42.7 0C255.8 318.5 151 213.7 21.5 213.4l0 42.4c106-.2 192 86.2 192.1 192.2z\"]\n};\nvar faUltralyticsHub = {\n prefix: 'fab',\n iconName: 'ultralytics-hub',\n icon: [512, 512, [], \"e86e\", \"M130.4 16c60.9 0 110.4 49.5 110.4 110.4l0 24.9c4.8-.7 9.7-1 14.6-1 88.1-.2 165.1 49 205.4 121.2-22.8-16.2-50.7-25.4-80.4-25.3-77.1 .2-139.5 62.6-139.6 139.4-.1 60.9-49.5 110.3-110.7 110.5-60.6 .2-110.2-49.5-110.2-110.5 .2-2.6 0 0 .1-3.2l0-256C20.1 65.5 69.5 16 130.4 16zM380.3 496a110.4 110.4 0 1 1 0-220.9 110.4 110.4 0 1 1 0 220.9z\"]\n};\nvar faWikipediaW = {\n prefix: 'fab',\n iconName: 'wikipedia-w',\n icon: [640, 512, [], \"f266\", \"M640 51.2l-.3 12.2c-28.1 .8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6l-13.6 0-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3 .3-15 0-15-.3-46.9-109.7-96.1-218.6-143.1-328.6-11.4-26.7-49.4-70-75.6-69.7 0-3.1-.3-10-.3-14.2l161.9 0 0 13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7l0-13.9 142.5 .3 0 13.1c-19.4 .6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4 .3-3.6 0-10.3 .3-13.6 44.4-.3 111.1-.3 123.1-.6l0 13.6C462.4 64 439.1 76 426.8 94.9L367.6 217.7c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3l0-13.9 127.8 1.1 .2 .5z\"]\n};\nvar faSitrox = {\n prefix: 'fab',\n iconName: 'sitrox',\n icon: [448, 512, [], \"e44a\", \"M212.4 0l0 0 235.6 0 0 128-384 0C64 57.6 141.8 .5 212.4 0zm24.8 192l0 0c69.9 .5 146.7 57.6 146.7 128l-173.2 0 0 0C140.9 319.6 64 262.4 64 192l173.3 0zm-1.7 320c70.7-.5 148.4-57.6 148.4-128l-384 0 0 128 235.6 0 0 0z\"]\n};\nvar faSquareGitlab = {\n prefix: 'fab',\n iconName: 'square-gitlab',\n icon: [448, 512, [\"gitlab-square\"], \"e5ae\", \"M0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8-2 1-4.4 2-6.7 2-3 0-6.8-1.8-8.3-2.8l-54.2-40.9-67.9-50.9-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6 1.6-1 3.4-1.6 5.2-1.8 1.3-.7 2.1-.4 3.4 .1 .6 .2 1.2 .5 2 .7 1 .4 1.6 .9 2.4 1.5 .6 .4 1.2 1 2.1 1.5 1.2 1.4 2.2 3 2.7 4.8l29.2 92.2 122.9 0 30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z\"]\n};\nvar faGitlabSquare = faSquareGitlab;\nvar faShoelace = {\n prefix: 'fab',\n iconName: 'shoelace',\n icon: [512, 512, [], \"e60c\", \"M405.2 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9 1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8l.2 0c3.3-1.9 6-1.8 8.2 .4 3.9 2.1 4.2 5.6 .9 10.6L457.2 322c.2 .5 .4 1 .4 1.5 .5 2.2 .3 4.4-.5 6.6-.7 1.5-1.8 2.9-3.1 4.2-1.4 1.4-2.7 2.8-4.2 4.2L431 352.2c-1.7 1.2-3.4 2.3-5.1 3.3-2.1 1.3-4.3 2.5-6.6 3.6-1 .4-1.9 .9-2.9 1.3-5.9 2.5-11.9 4.2-18.2 5-2.9 24.5-11.3 47.1-25.1 67.8-17.5 25.7-41.4 45.4-71.8 58.8-30.2 13.5-63 20.2-98.2 20.2-48.6-.5-88-11.4-118.2-32.8-35.1-25-52.6-57.9-52.6-99.1l0-5.6c1.2-28.1 9.5-54.6 24.8-79.8 15.1-24.9 37.1-41.7 66.1-50.5 14.9-4.4 29.9-6.6 45-6.6 15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5l54.1 36.3c15.1 9.8 28.8 16.5 41.2 20-2.6-25.1-11.7-46.6-27.3-64.5-15.7-18.1-35.6-31.3-59.9-39.7L257 220c-21.4-7.5-37.3-14.9-47.7-22.2-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5 23-19.3 50.6-29 82.5-29 24 0 45.6 6.9 64.7 20.8 19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7-9.8 13.2-18.5 19.9-26 19.9-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8 0-4.1 1.6-7.6 4.9-10.4 13.8-12.4 20.8-26.7 20.8-42.8 0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.6 89.9 192.6 112c0 17.8 6.9 33.9 20.6 48.3 13.6 14.2 34.6 25.4 63 33.5 39.8 11.5 70.2 31 91.3 58.3 18.7 24.2 29.1 51.3 31.3 81.4 2.2-.7 4.3-1.5 6.5-2.6l-.1 .1zM294.4 178.7c0 1.1 .6 1.6 1.8 1.6 .1 0 9.7-8.9 28.8-26.6 0-2.4-5.1 .9-15.3 10-10.2 9.2-15.3 14.2-15.3 14.9l0 .1zm8 6.4c0-1-.5-1.5-1.5-1.5-1.1 0-2.1 .5-2.9 1.6-1.9-.1-3.3 .1-4.2 .7-.4 .2-.5 .5-.5 .7 0 .7 .5 1.3 1.5 1.6l3.3 0c2.9-1.1 4.4-2.2 4.4-3.3l-.1 .2zM325 165.2c0-2.8-1.6-2.8-4.9 0-1.6 1.5-3.6 3.5-6 6.2-.8 .6-2.6 2.2-5.3 4.9-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4 .1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3l-.1-.1zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1 .1-.1zM366.9 363.9c-8-2.1-15.4-4.6-22.2-7.5-15.3-6.2-34.3-17-57-32.4l-37.4-25.3c-15.8-10.1-30.2-17.6-43.2-22.6-13.1-4.9-26-7.3-38.6-7.3l-5.5 0c-32.2 1.7-57.2 13.8-75 36.2-16.6 20.8-25 45.3-25 73.6 0 31.8 12.8 56.7 38.2 74.7 25.4 18.1 60.2 27.1 104.4 27.1 34.7 0 64-6.2 87.8-18.6 23.7-12.4 42.1-28.8 55.2-49.2 9.8-15.5 15.9-31.8 18.2-48.8l.1 .1z\"]\n};\nvar faOpenstreetmap = {\n prefix: 'fab',\n iconName: 'openstreetmap',\n icon: [512, 512, [], \"e86b\", \"M61 498.7c-7.1-1.8-10.8-4.7-29.6-23.6-22.5-22.4-23.9-24.6-23.9-36.3 0-13-3.9-8.4 67.9-80.3 72.5-72.7 68.7-69.5 81.9-69.5 6.1 0 7.6 .4 12.5 2.8l5.6 2.8c11.7-11.7 23.4-23.4 35.1-35.1l-4.4-6.9c-8.6-13.3-16.6-32.8-20.3-48.9-10.2-45.4 .8-93.3 29.8-129.7 50.1-62.8 140.1-76.7 206.6-32 36.5 24.5 60.3 62.5 67 107 1.4 9.4 1.4 31.8 0 41.8-4.9 34.6-19.7 64-44.4 88.7-12.7 12.7-23 20.1-39.2 28.2-19.3 9.7-35.7 14.3-58 16.1-31.7 2.6-66.9-6.1-93.8-23.4l-6.9-4.4c-11.7 11.7-23.4 23.4-35.1 35.1l2.8 5.6c2.5 4.9 2.8 6.4 2.8 12.5 0 13.1 3.1 9.4-69 81.5-55.6 55.5-64.1 63.7-68.4 65.7-5.5 2.5-13.9 3.4-19 2.1zM359.4 296.9c40.1-7.3 75.1-34 92.7-70.7 28-58.4 9.2-127-44.8-163.3-12.9-8.7-30.8-16-47.7-19.4-11.7-2.4-36.4-2.1-48.6 .5-18.2 3.9-34.9 11.1-49.4 21.4-8.9 6.4-23.7 21.1-29.9 29.9-34.6 49-31.5 114.1 7.7 159.3 20.1 23.2 47.8 38.4 78.6 43 10.2 1.5 31 1.2 41.5-.8zm-35.5-17.4c-13.8-2.2-25.6-5.7-35.1-10.5l-5.4-2.7 0-49.9-9.5 0c-8.2 0-19.5 1.6-27.7 4-1.1 .3-1.5 1.6-1.7 4.8l-.3 4.4-4.1-7.8c-9-17.2-12.2-30.7-12.2-51.4 0-16 1.1-23.4 5.6-36.3 2.4-6.8 8.2-18.9 10.8-22.3 1.1-1.5 1.2-1.1 1.3 3.3l0 5c18.8-.2 37.6-.3 56.4-.5 .2-4.7 .3-9.5 .5-14.2l-19 0 0-31 3.4-1.7c5.6-2.8 15.9-6.7 21.7-8.2 3-.8 6.1-1.6 6.9-1.8 1.2-.4 1.3 .1 .7 3.3-1.2 6.1-.9 23 .5 29 2.8 11.9 9.8 20.7 19.2 24.3 5.6 2.1 16.3 2.6 22.5 .9 5.9-1.6 12.5-6.4 15.9-11.5 5-7.5 6.7-14.1 7.2-27.1l.4-11.4 7 3.6c8 4.2 17.8 11.2 24.9 18 4.8 4.6 5 4.8 5 9.2l0 4.5-18.9 0 0 14.6 35 0c1.3 2.6 2.5 5.2 3.8 7.7l-9.7 0c-6.7 0-12.7 .6-19.4 1.9l-9.7 1.9 0 7.1c0 3.9 .2 7.1 .3 7.1s4.1-.8 8.7-1.7 8.7-1.7 9.1-1.7c.4 0 .8 11.3 .8 25.8l0 25.8c-6.2 .2-12.3 .3-18.5 .5-.2 4.7-.3 9.4-.5 14.2 13.5 .2 27 .3 40.4 .5-1 2.3-2 4.5-3 6.8l-10.7 .1c-9.9 .1-11.1 .2-15.6 2.5-11.8 5.8-18.1 18.9-18.3 37.9l-.1 9.3-5.8 3c-5 2.6-22.6 9-24.9 9-.5 0-.8-12-.8-30.6l0-30.6-9.4 0c-6 0-12.4 .6-17.9 1.7-12.6 2.6-11.5 1.7-11.5 9.5 0 5 .3 6.8 1.1 6.8 .6 0 4.6-.8 8.8-1.7s8-1.7 8.3-1.7 .6 11 .6 24.5l0 24.5-7.5-.1c-4.1-.1-8.5-.3-9.7-.5zm-39.4-71.6c8.9-3.9 15.6-12.9 18.3-24.4 1.6-6.9 1.7-22.6 0-30.2-2.5-12-9.6-21.1-19.3-24.8-6.9-2.6-18.4-2.6-25.3 0-9.7 3.7-16.4 12.8-19.2 25.6-1.6 7.5-1.6 21.4 0 28.9 2.6 12.5 10.5 22.3 20.6 25.6 7 2.3 18.9 2 24.9-.7zm-19.9-14.5c-3.5-3-5.2-8.9-5.8-20.6-.6-10.5 .6-21.3 2.9-26 2-4.3 5.8-6.4 10.4-6 7.4 .8 10.3 6.5 11.1 22.5 .9 16.7-1.9 28.9-7 31.3-3.9 1.8-8.6 1.3-11.6-1.2zm94.9 15.1c15-4.6 22.8-20.1 21.9-43.5-.8-19.9-7.9-32.1-21.5-37.2-5.7-2.1-18-1.8-24 .5-9.6 3.7-16.4 12.4-19.3 24.7-2 8.6-1.3 28 1.3 35.2 4 11.3 11.6 18.7 21.4 21 5.8 1.4 14.4 1 20.3-.8zm-16.7-14.2c-5-2.7-7.3-13.2-6.5-30.1 .6-12.8 1.5-16.7 4.8-20.4 4.7-5.3 13.6-3.8 16.7 2.8 3.4 7.3 4 30.1 1 40.2-1.7 5.7-5.2 8.8-10.1 8.7-2 0-4.6-.6-5.8-1.3zm-85.2 51.5c-7.3-7.6-9.9-11.4-8.4-11.9 2.9-.9 13.9-3.1 14.2-2.8 .2 .2 .2 4.9 .1 10.4l-.2 10.1-5.6-5.9zm156.4-1.2c.7-6 3.1-11.5 5.7-13.2 2.9-1.8 6.4-2.6 8-1.7 1.2 .7 .9 1.5-2.4 5.9-2.1 2.8-5.6 7-7.8 9.4l-4 4.3 .5-4.7zM438.4 161l.1-32.9 2.6 7.7c5.1 15.3 6.9 31.8 5.1 46.6-1.4 11.6-1.4 11.5-4.9 11.5l-3 0 .1-32.9zM344 106.2c-2.6-1-5.3-4.8-6.5-9-1.2-4-1.5-28.5-.4-33.5 .6-3 .9-3.2 3.8-3.2 6.2 0 18.3 2 18.7 3.1 .2 .6 .7 4.9 1 9.5 .7 9.7-.7 23.2-2.8 27.6-2.4 5.1-8.5 7.5-13.7 5.3zm-94.3-2.4c.4-.8 3.7-4.6 7.3-8.4l6.5-6.9c0 5.6 0 11.2 .1 16.8l-7.3 0c-6.7 0-7.3-.1-6.5-1.5zm34.4 341.7c-24-6.9-43.9-12.9-44.2-13.1-.5-.6 24.3-88.5 25.3-89.6 .5-.5 85.4 23.3 88.9 24.9 1.2 .6-.1 5.8-10.6 42.4-6.6 23-12.4 43.2-12.8 45s-1.4 3.2-1.9 3.1-20.7-5.8-44.7-12.7zM342.8 456c0-1.1 24.7-87.3 25.1-87.6 .9-.7 87.1-24.7 87.4-24.4 .4 .4-24.1 87.3-24.7 87.9-.4 .3-83.2 24-85.8 24.5-1.1 .2-1.9 .1-1.9-.4zM199.6 417.5c17-17.1 32.2-32.7 33.7-34.7 3.4-4.5 8.2-14.8 9.5-20.5 .5-2.4 1.1-7.1 1.2-10.5l.2-6.2 3.7-1c2-.6 3.8-.9 4-.7 .5 .5-24.3 87-25.1 87.8-.4 .3-13.6 4.3-29.4 8.8l-28.7 8.2 31-31.1zm166.9-61.6c-.2-.3-.7-2-1.2-3.7l-.9-3.2 3.2-.5c27-4.6 55.9-17.3 78.7-34.5 3.3-2.5 5.1-3.4 5.3-2.7 1.1 3.3 5.5 19.1 5.4 19.3-.7 .7-90.2 25.8-90.5 25.4zM62.9 329.8c-1-.8-23.8-77.9-25.5-86.4-.3-1.7 3-.9 43.8 10.8 42.7 12.2 44.2 12.7 44.8 14.9 .5 2 .2 2.6-2.5 4.5-1.7 1.2-15.5 14.6-30.7 29.8s-27.8 27.6-28 27.6-1.1-.5-1.8-1.1zm16.5-88.2c-23.9-6.9-43.5-12.6-43.6-12.6-.3-.2 25.3-89.3 25.9-89.8 .4-.4 89.1 24.4 90 25.2 .2 .2-5.4 20.5-12.4 45.1-11.6 40.7-12.9 44.8-14.5 44.7-1 0-21.3-5.7-45.2-12.6zm59.6 10.8c.2-.6 4.3-14.5 8.9-30.9l8.5-29.7 1.1 6.5c1.9 11.2 5.3 23.9 9.3 35.1 2.1 5.9 3.8 10.9 3.6 11s-6.7 2-14.5 4.3-14.9 4.2-15.8 4.5c-1.1 .3-1.5 .1-1.2-.7zM106 139.1c-23.9-6.9-43.7-12.8-43.9-13.2-.8-1.3-25.1-87-24.7-87.4 .5-.5 86.8 24.3 87.6 25.1 .9 1 25.8 88.2 25.1 88-.3 0-20.1-5.7-44-12.6zm43.2-34.5C136.5 60 139 68.8 137.2 62.5l34.1-9.7c18.8-5.4 34.7-9.9 35.4-10.2s-1.6 2.8-5.2 6.8c-19.1 21.3-31.5 44-39.4 71.9-1.5 5.2-2.7 10.3-2.7 11.3 0 5.9-2.3-.5-10.2-28z\"]\n};\nvar faSellcast = {\n prefix: 'fab',\n iconName: 'sellcast',\n icon: [448, 512, [], \"f2da\", \"M353.5 32L94.8 32C42.7 32 .1 74.6 .1 126.6l0 258.7C.1 437.4 42.7 480 94.8 480l258.7 0c52.1 0 94.7-42.6 94.7-94.6l0-258.8c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8 .1 .1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8 .1 .1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"]\n};\nvar faMix = {\n prefix: 'fab',\n iconName: 'mix',\n icon: [448, 512, [], \"f3cb\", \"M0 64L0 412.9c0 56.2 88 58.1 88 0l0-238.6c7.9-52.9 88-50.4 88 6.5l0 175.3c0 57.9 96 58 96 0L272 240c5.3-54.7 88-52.5 88 4.3l0 23.8c0 59.9 88 56.6 88 0L448 64 0 64z\"]\n};\nvar faCcApplePay = {\n prefix: 'fab',\n iconName: 'cc-apple-pay',\n icon: [576, 512, [], \"f416\", \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1l-24.3 0 0-54.2 24.4 0c18.4 0 28.9 9.8 28.9 27.1zM349.7 281c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9l0-7.7-23.5 1.5c-13.3 .9-20.2 5.8-20.2 14.4zM576 79l0 352c0 26.5-21.5 48-48 48L48 479c-26.5 0-48-21.5-48-48L0 79C0 52.5 21.5 31 48 31l480 0c26.5 0 48 21.5 48 48zM127.8 197.2c8.4 .7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4 .3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5 .2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8l-51.2 0 0 136.4 21.2 0 0-46.6 29.3 0c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5l19.1 0c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2l0 7.5-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4l.4 0 0 16.4 19.6 0 0-68 .1 0zM516 210.9l-21.5 0-24.9 80.6-.4 0-24.9-80.6-22.3 0 35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3l0 16.4c1.2 .4 6.5 .5 8.1 .5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"]\n};\nvar faSolana = {\n prefix: 'fab',\n iconName: 'solana',\n icon: [512, 512, [], \"e85e\", \"M510.5 385.2l-84.9 88.7c-1.8 1.9-4.1 3.5-6.6 4.5s-5.2 1.6-7.9 1.6L8.9 480c-1.9 0-3.8-.5-5.4-1.6s-2.9-2.5-3.6-4.2-1-3.6-.7-5.5 1.2-3.6 2.5-4.9l84.9-88.7c1.8-1.9 4.1-3.5 6.5-4.5s5.1-1.6 7.8-1.6l402.4 0c1.9 0 3.8 .5 5.4 1.6s2.9 2.5 3.6 4.2 1 3.6 .7 5.5-1.2 3.6-2.5 4.9zM425.7 206.6c-1.8-1.9-4.1-3.5-6.6-4.5s-5.2-1.6-7.9-1.6l-402.4 0c-1.9 0-3.8 .5-5.4 1.6s-2.9 2.5-3.6 4.2-1 3.6-.7 5.5 1.2 3.6 2.5 4.9l84.9 88.7c1.8 1.9 4.1 3.5 6.5 4.5s5.1 1.6 7.8 1.6l402.4 0c1.9 0 3.8-.5 5.4-1.6s2.9-2.5 3.6-4.2 1-3.6 .7-5.5-1.2-3.6-2.5-4.9l-84.9-88.7zM8.9 142.9l402.4 0c2.7 0 5.4-.5 7.9-1.6s4.7-2.6 6.6-4.5l84.9-88.7c1.3-1.4 2.2-3.1 2.5-4.9s.1-3.7-.7-5.5-2-3.2-3.6-4.2-3.5-1.6-5.4-1.6L101 32c-2.7 0-5.4 .5-7.8 1.6s-4.7 2.6-6.5 4.5L1.7 126.8c-1.3 1.4-2.2 3.1-2.5 4.9s-.1 3.7 .7 5.5 2 3.2 3.6 4.2 3.5 1.6 5.4 1.6z\"]\n};\nvar faTypescript = {\n prefix: 'fab',\n iconName: 'typescript',\n icon: [448, 512, [], \"e840\", \"M16.8 32l414.4 0c9.3 0 16.8 7.5 16.8 16.8l0 414.4c0 9.3-7.5 16.8-16.8 16.8L16.8 480C7.5 480 0 472.5 0 463.2L0 48.8C0 39.5 7.5 32 16.8 32zM249 270.3l0-36.7-159.4 0 0 36.7 56.9 0 0 163.6 45.3 0 0-163.6 57.2 0zm18.1 159.3c7.3 3.7 15.9 6.5 25.9 8.4s20.5 2.8 31.5 2.8c10.8 0 21-1 30.7-3.1s18.2-5.4 25.5-10.1 13.1-10.9 17.4-18.4 6.4-17 6.4-28.2c0-8.1-1.2-15.2-3.7-21.3s-5.9-11.5-10.5-16.3-10.1-9-16.5-12.8-13.7-7.3-21.7-10.7c-5.9-2.4-11.2-4.8-15.9-7.1s-8.7-4.6-11.9-7-5.8-4.9-7.6-7.5-2.7-5.7-2.7-9c0-3.1 .8-5.8 2.4-8.3s3.8-4.6 6.7-6.4 6.5-3.1 10.7-4.1 8.9-1.5 14.1-1.5c3.7 0 7.7 .3 11.9 .8s8.4 1.4 12.6 2.6 8.3 2.6 12.3 4.4 7.7 3.8 11 6.1l0-41.8c-6.8-2.6-14.3-4.5-22.4-5.8s-17.4-1.9-27.9-1.9c-10.7 0-20.8 1.1-30.4 3.4s-18 5.8-25.2 10.7-13 11-17.2 18.5-6.3 16.5-6.3 26.9c0 13.3 3.9 24.7 11.6 34.1s19.5 17.4 35.2 23.9c6.2 2.5 11.9 5 17.3 7.4s10 4.9 13.8 7.5 7 5.4 9.2 8.5 3.4 6.6 3.4 10.5c0 2.9-.7 5.6-2.1 8s-3.5 4.6-6.4 6.4-6.4 3.2-10.7 4.3-9.3 1.5-15 1.5c-9.7 0-19.4-1.7-28.9-5.1s-18.4-8.5-26.6-15.3l0 44.7z\"]\n};\nvar faBrave = {\n prefix: 'fab',\n iconName: 'brave',\n icon: [448, 512, [], \"e63c\", \"M145.6 0l157 0 44.7 50.8s39.3-10.9 57.8 7.6 33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9-7.5 5.1-15.8 10.8-23.5 10.8s-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191L21.5 122.8 9.3 93.3s15.3-16.4 33.8-34.9 57.8-7.6 57.8-7.6L145.6 0zm78.5 407.6c3.7 0 8.9-4.7 13-8.4 .6-.5 1.2-1.1 1.7-1.5 4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8-3-1.6-6.3-3.2-9.7-5-15.4-8-34.5-14.7-37.5-14.7s-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5-10.3 5.3-17.6 9.1-20.3 10.8-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5 4.1 3.7 9.3 8.4 13 8.4l-.2 0zm0-165.7c4.7 0 17.6-3 26.4-5l2-.5c7.8-1.8 7.3-6.3 6.4-13-.1-.8-.2-1.6-.3-2.4-.6-6.1-5.8-33.1-9.1-50.3-1.1-5.8-2-10.5-2.4-12.9-1.5-8.1-.6-9.4 .7-11.3 .2-.3 .5-.7 .7-1.1 1.4-2.3 16-6.2 27.9-9.5 2.5-.7 4.8-1.3 6.9-1.9 10.6-3 32.4-.6 44.2 .6 1.8 .2 3.4 .4 4.7 .5 9.6 .9 10.4 2.3 7.2 3.8-2.3 1.1-16.2 6.3-28.7 10.9-4.7 1.8-9.2 3.5-12.8 4.8-1.5 .5-3 1.1-4.5 1.7-12.5 4.6-27.2 10-28.9 19.4-1.5 8.3 5.2 19.9 11.3 30.3 1.6 2.8 3.2 5.5 4.6 8.1 6.3 11.9 6.5 13.3 6.1 18.1-.4 3.9-14.5 12.7-22.4 17.6-1.8 1.1-3.3 2.1-4.2 2.7-.8 .5-2.1 1.4-3.8 2.4-8.6 5.2-26.3 16-26.3 22.5 0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8 23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3 .5-.5 1-1 1.4-1.4l43-45.7c1.3-1.3 2.5-2.6 3.7-3.8 5.8-5.7 10.8-10.5 10.8-22.8 0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1-2.7-.9-5.4-1.9-8-2.7-13-4.3-21.8-4.4-21.8-4.4s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7-10.5 3.6-20.6 7.1-25.8 7.1-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8 1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4 4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40 8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8 32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5-1.7-1-3.1-1.9-3.8-2.4-.9-.6-2.4-1.5-4.2-2.7-7.9-4.9-22-13.7-22.4-17.6-.4-4.8-.3-6.2 6.1-18.1 1.3-2.5 2.9-5.3 4.6-8.1 6-10.4 12.8-22 11.3-30.3-1.7-9.4-16.4-14.8-28.9-19.4-1.6-.6-3.1-1.1-4.5-1.7-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9-3.2-1.5-2.3-2.8 7.2-3.8 1.3-.1 2.9-.3 4.7-.5 11.8-1.3 33.6-3.6 44.2-.6 2.1 .6 4.4 1.2 6.9 1.9 11.9 3.2 26.5 7.2 27.9 9.5 .2 .4 .5 .7 .7 1.1 1.3 1.9 2.2 3.2 .7 11.3-.4 2.4-1.3 7.1-2.4 12.9-3.3 17.2-8.5 44.2-9.1 50.3-.1 .8-.2 1.7-.3 2.4-.8 6.7-1.4 11.2 6.4 13l2 .5c8.8 2 21.8 5 26.4 5l0-.1z\"]\n};\nvar faEtsy = {\n prefix: 'fab',\n iconName: 'etsy',\n icon: [384, 512, [], \"f2d7\", \"M384 348c-1.8 10.7-13.8 110-15.5 132-117.9-4.3-219.9-4.7-368.5 0l0-25.5c45.5-8.9 60.6-8 61-35.2 1.8-72.3 3.5-244.1 0-322-1-28.5-12.1-26.8-61-36L0 35.8c73.9 2.4 255.9 8.6 363-3.8-3.5 38.2-7.8 126.5-7.8 126.5l-23.2 0C320.9 115.7 313.2 68 277.3 68l-137 0c-10.2 0-10.7 3.5-10.7 9.8l0 163.8c58 .5 88.5-2.5 88.5-2.5 29.8-1 27.6-8.5 40.7-65.3l25.8 0c-4.4 101.4-3.9 61.8-1.8 160.3L257 334c-9.2-40.1-9.1-61-39.5-61.5 0 0-21.5-2-88-2l0 139c0 26 14.3 38.3 44.3 38.3l89.3 0c63.6 0 66.6-25 98.7-99.8l22.2 0z\"]\n};\nvar faBtc = {\n prefix: 'fab',\n iconName: 'btc',\n icon: [384, 512, [], \"f15a\", \"M310.4 242.6c27.7-14.2 45.4-39.4 41.3-81.3-5.4-57.4-52.5-76.6-114.8-81.9l0-79.4-48.5 0 0 77.2c-12.6 0-25.5 .3-38.4 .6l0-77.8-48.5 0 0 79.4c-17.8 .5-38.6 .3-97.4 0l0 51.7c38.3-.7 58.4-3.1 63 21.4l0 217.4c-2.9 19.5-18.5 16.7-53.3 16.1L4 443.7c88.5 0 97.4 .3 97.4 .3l0 68 48.5 0 0-67.1c13.2 .3 26.2 .3 38.4 .3l0 66.7 48.5 0 0-68c81.3-4.4 135.6-24.9 142.9-101.5 5.7-61.4-23.3-88.9-69.3-99.9zM150.8 134.6c27.4 0 113.1-8.5 113.1 48.5 0 54.5-85.7 48.2-113.1 48.2l0-96.7zm0 251.8l0-106.5c32.8 0 133.1-9.1 133.1 53.3 0 60.2-100.4 53.3-133.1 53.3z\"]\n};\nvar faAdn = {\n prefix: 'fab',\n iconName: 'adn',\n icon: [512, 512, [], \"f170\", \"M256 167.5l64.9 98.8-129.8 0 64.9-98.8zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm396.2 82.7l-148.2-223.2-148.2 223.2 30.4 0 33.6-51.7 168.6 0 33.6 51.7 30.2 0z\"]\n};\nvar faSquareXTwitter = {\n prefix: 'fab',\n iconName: 'square-x-twitter',\n icon: [448, 512, [], \"e61a\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm297.1 84l-103.8 118.6 122.1 161.4-95.6 0-74.8-97.9-85.7 97.9-47.5 0 111-126.9-117.1-153.1 98 0 67.7 89.5 78.2-89.5 47.5 0zM323.3 367.6l-169.9-224.7-28.3 0 171.8 224.7 26.4 0z\"]\n};\nvar faSquareFontAwesome = {\n prefix: 'fab',\n iconName: 'square-font-awesome',\n icon: [448, 512, [], \"e5ad\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90 122c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2 0 1.8-.4 3.7-1.1 5.4L312 264 342.9 333.4c.7 1.7 1.1 3.5 1.1 5.4 0 7.3-5.9 13.2-13.2 13.2l-186.8 0 0 32-32 0 0-209.5c-6.1-4.8-10-12.2-10-20.5 0-14.4 11.6-26 26-26s26 11.6 26 26z\"]\n};\nvar faForumbee = {\n prefix: 'fab',\n iconName: 'forumbee',\n icon: [448, 512, [], \"f211\", \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35 239.7 35 256.4 37 272.4 40.5 149 87.5 51.9 186 5.8 309.7zM398.7 120.5c-13.7-17.5-29.7-32.7-47.8-45.3-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8-137.9 45.8-246.4 156.6-291.3 295.1 18.1 7.6 37 12.5 56.6 15.2 46.3-114.1 136.8-206.8 250.5-253.5z\"]\n};\nvar fa42Group = {\n prefix: 'fab',\n iconName: '42-group',\n icon: [640, 512, [\"innosoft\"], \"e080\", \"M320 96l0 320c21 0 41.8-4.1 61.2-12.2s37-19.8 51.9-34.7 26.6-32.5 34.7-51.9 12.2-40.2 12.2-61.2-4.1-41.8-12.2-61.2-19.8-37.1-34.7-51.9-32.5-26.6-51.9-34.7-40.2-12.2-61.2-12.2zM0 256L160 416 320 256 160 96 0 256zm480 0c0 21 4.1 41.8 12.2 61.2s19.8 37 34.7 51.9 32.5 26.6 51.9 34.7 40.2 12.2 61.2 12.2l0-320c-42.4 0-83.1 16.9-113.1 46.9S480 213.6 480 256z\"]\n};\nvar faInnosoft = fa42Group;\nvar faStumbleuponCircle = {\n prefix: 'fab',\n iconName: 'stumbleupon-circle',\n icon: [512, 512, [], \"f1a3\", \"M264 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 177.5c-9.8 0-17.8 8-17.8 17.8l0 106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9l0-46.5 57.3 0 0 45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8l0-108.4c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6l0 23.7-34.1 10.1-22.9-10.7 0-20.6c.1-9.6-7.9-17.6-17.7-17.6zM431.6 309.1c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2l0-46.8 22.9 10.7 34.1-10.1 0 47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6l0-48 57.3 0c-.1 45.9-.1 46.4-.1 46.4z\"]\n};\nvar faSymfony = {\n prefix: 'fab',\n iconName: 'symfony',\n icon: [512, 512, [], \"f83d\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM389.7 151.5c-11.5 .4-19.4-6.4-19.8-16.9-.3-9.2 6.7-13.4 6.5-18.9-.2-6.5-10.2-6.8-12.9-6.7-39.8 1.3-48.6 57-58.9 113.8 21.4 3.2 36.6-.7 45.1-6.2 12-7.7-3.3-15.7-1.4-24.6 4-18.2 32.6-19 32 5.3-.4 17.9-25.9 41.8-77.6 35.7-10.8 59.5-18.4 115-58.2 161.7-29 34.5-58.4 39.8-71.6 40.3-24.6 .9-41-12.3-41.6-29.8-.6-17 14.4-26.3 24.3-26.6 21.9-.8 30.1 25.7 14.9 34-12.1 9.7 .1 12.6 2.1 12.6 10.4-.4 17.3-5.5 22.2-9 24-20 33.2-54.9 45.4-118.3 8.2-49.7 17-78 18.2-82-16.9-12.7-27.1-28.6-49.8-34.7-15.6-4.2-25.1-.6-31.8 7.8-7.9 10-5.3 23 2.4 30.7l12.6 14c15.5 17.9 24 31.9 20.8 50.6-5.1 29.9-40.7 52.9-82.9 39.9-36-11.1-42.7-36.6-38.4-50.6 7.5-24.2 42.4-11.7 34.6 13.6-2.8 8.6-4.9 8.7-6.3 13.1-4.6 14.8 41.8 28.4 51-1.4 4.5-14.5-5.3-21.7-22.2-39.9-28.5-31.7-16-65.5 2.9-79.7 52.8-39.4 100.5 17.5 110.6 25.8 37.2-109 100.5-105.5 102.4-105.5 25.2-.8 44.2 10.6 44.8 28.6 .2 7.7-4.2 22.6-19.5 23.1z\"]\n};\nvar faSalesforce = {\n prefix: 'fab',\n iconName: 'salesforce',\n icon: [640, 512, [], \"f83b\", \"M249.4 245.6l-26.4 0c.7-5.2 3.3-14.1 13.6-14.1 6.8 0 12 3.8 12.7 14.1zM386 231.8c-.5 0-14.1-1.8-14.1 20s13.6 20 14.1 20c13 0 14.1-13.5 14.1-20 0-21.8-13.7-20-14.1-20zM142.8 255.5c-1.1 .9-2 2-2.5 3.2s-.8 2.7-.7 4c0 4.8 2.1 6.1 3.3 7 4.7 3.7 15.1 2.1 20.9 1l0-16.9c-5.3-1.1-16.7-2-20.9 1.6zM640.5 232c0 87.6-80 154.4-165.4 136.4-18.4 33-70.7 70.8-132.2 41.6-41.2 96-177.9 92.2-213.8-5.2-119.7 23.9-178.8-138.4-75.3-199.3-34.8-79.4 22.6-173.6 114.3-173.6 19.1 0 37.9 4.4 55 12.9s32 20.7 43.6 35.8c20.7-21.4 49.4-34.8 81.1-34.8 42.3 0 79 23.5 98.8 58.6 92.8-40.7 193.8 28.2 193.8 127.5zM120.9 263.8c0-11.8-11.7-15.2-17.9-17.2-5.3-2.1-13.4-3.5-13.4-8.9 0-9.5 17-6.7 25.2-2.1 0 0 1.2 .7 1.6-.5 .2-.7 2.4-6.6 2.6-7.3 .1-.3 .1-.6-.1-.8s-.4-.5-.6-.6c-12.3-7.6-40.7-8.5-40.7 12.7 0 12.5 11.5 15.4 17.9 17.2 4.7 1.6 13.2 3 13.2 8.7 0 4-3.5 7.1-9.2 7.1-6.9 0-13.5-2.2-19-6.3-.5-.2-1.4-.7-1.6 .7l-2.4 7.5c-.5 .9 .2 1.2 .2 1.4 1.8 1.4 10.3 6.6 22.8 6.6 13.2 0 21.4-7.1 21.4-18.1l0 0zm32-42.6c-10.1 0-18.7 3.2-21.4 5.2-.1 .1-.2 .2-.3 .3s-.1 .2-.1 .4 0 .3 0 .4 .1 .3 .2 .4l2.6 7.1c.1 .2 .2 .5 .5 .6s.5 .2 .7 .1c.6 0 6.8-4 16.9-4 4 0 7.1 .7 9.2 2.4 3.6 2.8 3.1 8.3 3.1 10.6-4.8-.3-19.1-3.4-29.4 3.8-2.3 1.6-4.3 3.8-5.5 6.3s-1.9 5.4-1.8 8.2c0 5.9 1.5 10.4 6.6 14.4 12.2 8.2 36.3 2 38.1 1.4 1.6-.3 3.5-.7 3.5-1.9l0-33.9c0-4.6 .3-21.6-22.8-21.6l0 .1zm46.6-21c0-.2 0-.3-.1-.5s-.1-.3-.3-.4-.2-.2-.4-.3-.3-.1-.5-.1l-9.8 0c-.2 0-.3 0-.5 .1s-.3 .1-.4 .3-.2 .2-.3 .4-.1 .3-.1 .5l0 79c0 .2 0 .3 .1 .5s.1 .3 .3 .4 .2 .2 .4 .3 .3 .1 .5 .1l9.9 0c.2 0 .3 0 .5-.1s.3-.1 .4-.3 .2-.2 .3-.4 .1-.3 .1-.5l-.1-79zm55.7 28.9c-2.1-2.3-6.8-7.5-17.6-7.5-3.5 0-14.2 .2-20.7 8.9-6.4 7.6-6.6 18.1-6.6 21.4 0 3.1 .2 14.3 7.1 21.2 2.6 2.9 9.1 8.2 22.8 8.2 10.8 0 16.5-2.3 18.6-3.8 .5-.2 .7-.7 .2-1.9l-2.3-6.8c-.1-.3-.3-.5-.6-.6s-.5-.2-.8-.1c-2.6 .9-6.3 2.8-15.3 2.8-17.4 0-16.8-14.7-16.9-16.7l37.2 0c.3 0 .5-.1 .7-.3s.4-.4 .4-.7c-.3 0 2.1-14.7-6.1-24.2l0 0zm36.7 52.7c13.2 0 21.4-7.1 21.4-18.1 0-11.8-11.7-15.2-17.9-17.2-4.1-1.7-13.4-3.4-13.4-8.9 0-3.8 3.3-6.4 8.5-6.4 5.8 .1 11.5 1.6 16.7 4.2 0 0 1.2 .7 1.6-.5 .2-.7 2.4-6.6 2.6-7.3 .1-.3 .1-.6-.1-.8s-.4-.5-.6-.6c-7.9-4.9-16.7-4.9-20.2-4.9-12 0-20.5 7.3-20.5 17.6 0 12.5 11.5 15.4 17.9 17.2 6.1 2 13.2 3.3 13.2 8.7 0 4-3.5 7.1-9.2 7.1-6.9 0-13.5-2.2-19-6.4-.1-.1-.3-.2-.5-.2s-.4 0-.5 .1-.3 .2-.4 .3-.2 .3-.2 .5l-2.3 7.5c-.5 .9 .2 1.2 .2 1.4 1.7 1.4 10.3 6.6 22.8 6.6l0 0zM357.6 224c0-.7-.2-1.2-1.2-1.2l-11.8 0c0-.1 .9-8.9 4.5-12.5 4.2-4.2 11.8-1.6 12-1.6 1.2 .5 1.4 0 1.6-.5l2.8-7.8c.7-.9 0-1.2-.2-1.4-5.1-2-17.4-2.9-24.5 4.2-5.5 5.5-7 13.9-8 19.5l-8.5 0c-.3 0-.6 .2-.8 .4s-.3 .5-.4 .8l-1.4 7.8c0 .7 .2 1.2 1.2 1.2l8.2 0c-8.5 47.9-8.7 50.2-10.3 55.5-1.1 3.6-3.3 6.9-5.9 7.8-.1 0-3.9 1.7-9.6-.2 0 0-.9-.5-1.4 .7-.2 .7-2.6 6.8-2.8 7.5s0 1.4 .5 1.4c5.1 2 13 1.8 17.9 0 6.3-2.3 9.7-7.9 11.5-12.9 2.8-7.7 2.8-9.8 11.8-59.7l12.2 0c.3 0 .6-.2 .8-.4s.3-.5 .4-.8l1.4-7.8zM411 240c-.6-1.7-5.1-18.1-25.2-18.1-15.2 0-23 10-25.2 18.1-1 3-3.2 14 0 23.5 .1 .3 4.4 18.1 25.2 18.1 15 0 22.9-9.6 25.2-18.1 3.2-9.6 1-20.5 0-23.5zm45.4-16.7c-5-1.7-16.6-1.9-22.1 5.4l0-4.5c0-.2 0-.3-.1-.5s-.1-.3-.3-.4-.2-.2-.4-.3-.3-.1-.5-.1l-9.4 0c-.2 0-.3 0-.5 .1s-.3 .1-.4 .3-.2 .2-.3 .4-.1 .3-.1 .5l0 55.3c0 .2 0 .3 .1 .5s.1 .3 .3 .4 .2 .2 .4 .3 .3 .1 .5 .1l9.6 0c.2 0 .3 0 .5-.1s.3-.1 .4-.3 .2-.2 .3-.4 .1-.3 .1-.5l0-27.8c0-2.9 .1-11.4 4.5-15.1 4.9-4.9 12-3.4 13.4-3.1 .3 0 .6-.1 .8-.3s.4-.4 .6-.7c1.2-2.6 2.2-5.3 3.1-8 .1-.3 .1-.5 0-.8s-.3-.5-.5-.6l0 0zm46.8 54.1l-2.1-7.3c-.5-1.2-1.4-.7-1.4-.7-4.2 1.8-10.1 1.9-11.3 1.9-4.6 0-17.2-1.1-17.2-19.8 0-6.2 1.8-19.8 16.5-19.8 3.9-.1 7.8 .5 11.5 1.6 0 0 .9 .5 1.2-.7 .9-2.6 1.6-4.5 2.6-7.5 .2-.9-.5-1.2-.7-1.2-11.6-3.9-22.3-2.5-27.8 0-1.6 .7-16.2 6.5-16.2 27.5 0 2.9-.6 30.1 28.9 30.1 5.3 0 10.6-1 15.5-2.8 .2-.2 .4-.4 .5-.6s.1-.5 0-.8l0 0zm53.9-39.5c-.8-3-5.4-16.2-22.3-16.2-16 0-23.5 10.1-25.6 18.6-1.2 3.8-1.7 7.8-1.7 11.8 0 25.9 18.8 29.4 29.9 29.4 10.8 0 16.5-2.3 18.6-3.8 .5-.2 .7-.7 .2-1.9l-2.4-6.8c-.1-.3-.3-.5-.6-.6s-.6-.2-.8-.1c-2.6 .9-6.3 2.8-15.3 2.8-17.4 0-16.9-14.7-16.9-16.7l37.2 0c.3 0 .5-.1 .7-.3s.4-.4 .4-.7c-.2 0 .9-7.1-1.4-15.5l0 0zm-23.3-6.4c-10.3 0-13 9-13.6 14.1l26.4 0c-.9-11.9-7.6-14.1-12.7-14.1l0 0z\"]\n};\nvar faSourcetree = {\n prefix: 'fab',\n iconName: 'sourcetree',\n icon: [448, 512, [], \"f7d3\", \"M427.4 203c0-112.1-90.9-203-203-203-112.1-.2-203 90.6-203.2 202.6-.1 43 13.5 84.8 38.7 119.6s60.9 60.6 101.8 73.8l0 101.7c0 3.8 1.5 7.4 4.2 10.1s6.3 4.2 10.1 4.2l96.4 0c3.8 0 7.4-1.5 10.1-4.2s4.2-6.3 4.2-10.1l0-101.6c40.8-13.2 76.5-39 101.7-73.7s38.9-76.5 39-119.4zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"]\n};\nvar faLinkedinIn = {\n prefix: 'fab',\n iconName: 'linkedin-in',\n icon: [448, 512, [], \"f0e1\", \"M100.3 448l-92.9 0 0-299.1 92.9 0 0 299.1zM53.8 108.1C24.1 108.1 0 83.5 0 53.8 0 39.5 5.7 25.9 15.8 15.8s23.8-15.8 38-15.8 27.9 5.7 38 15.8 15.8 23.8 15.8 38c0 29.7-24.1 54.3-53.8 54.3zM447.9 448l-92.7 0 0-145.6c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7l0 148.1-92.8 0 0-299.1 89.1 0 0 40.8 1.3 0c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3l0 164.3-.1 0z\"]\n};\nvar faHtml5 = {\n prefix: 'fab',\n iconName: 'html5',\n icon: [384, 512, [], \"f13b\", \"M0 32L34.9 427.8 191.5 480 349.1 427.8 384 32 0 32zM308.2 159.9l-183.8 0 4.1 49.4 175.6 0-13.6 148.4-97.9 27 0 .3-1.1 0-98.7-27.3-6-75.8 47.7 0 3.5 38.1 53.5 14.5 53.7-14.5 6-62.2-166.9 0-12.8-145.6 241.1 0-4.4 47.7z\"]\n};\nvar faRust = {\n prefix: 'fab',\n iconName: 'rust',\n icon: [512, 512, [], \"e07a\", \"M508.5 249.8l-21.8-13.5c-.2-2-.3-3.9-.5-5.9l18.7-17.5c.9-.9 1.6-1.9 2-3.1s.5-2.5 .2-3.7-.8-2.4-1.6-3.3-1.8-1.7-3-2.1l-24-9c-.5-1.9-1.1-3.8-1.7-5.6l15-20.8c.7-1 1.2-2.2 1.3-3.4s0-2.5-.5-3.7-1.2-2.2-2.2-2.9-2.1-1.3-3.4-1.5l-25.4-4.2c-.9-1.7-1.8-3.4-2.7-5.2l10.7-23.4c.5-1.1 .7-2.4 .6-3.6s-.5-2.4-1.2-3.5-1.6-1.9-2.8-2.5-2.4-.8-3.6-.8l-25.8 .9c-1.2-1.5-2.4-2.9-3.6-4.4L439 81.8c.3-1.2 .3-2.5-.1-3.7s-1-2.3-1.9-3.2-2-1.5-3.2-1.9-2.5-.4-3.7-.1L405 78.9c-1.4-1.2-2.9-2.4-4.4-3.6l.9-25.8c.1-1.3-.2-2.5-.8-3.6s-1.4-2.1-2.5-2.8-2.2-1.1-3.5-1.2-2.5 .1-3.7 .6L367.7 53.2c-1.7-.9-3.4-1.8-5.1-2.7l-4.2-25.4c-.2-1.2-.7-2.4-1.5-3.4s-1.8-1.7-2.9-2.2-2.4-.7-3.7-.5-2.4 .6-3.4 1.3L326 35.3c-1.9-.6-3.8-1.1-5.6-1.7l-9-24c-.4-1.2-1.2-2.2-2.1-3s-2.1-1.4-3.3-1.6-2.5-.2-3.7 .2-2.3 1.1-3.1 2L281.6 25.9c-2-.2-3.9-.4-5.9-.5L262.3 3.5c-.7-1.1-1.6-1.9-2.7-2.6s-2.3-.9-3.6-.9-2.5 .3-3.6 .9-2 1.5-2.7 2.6L236.2 25.3c-2 .2-3.9 .3-5.9 .6L212.9 7.1c-.9-.9-1.9-1.6-3.1-2s-2.5-.5-3.7-.2-2.4 .8-3.3 1.6-1.7 1.8-2.1 3l-9 24c-1.9 .6-3.8 1.1-5.7 1.7l-20.8-15c-1-.7-2.2-1.2-3.4-1.3s-2.5 0-3.7 .5-2.2 1.2-2.9 2.2-1.3 2.1-1.5 3.4l-4.2 25.4c-1.7 .9-3.4 1.8-5.2 2.7L120.9 42.6c-1.1-.5-2.4-.7-3.7-.6s-2.5 .5-3.5 1.2-1.9 1.7-2.5 2.8-.8 2.4-.8 3.6l.9 25.8c-1.5 1.2-3 2.4-4.4 3.6L81.8 73c-1.2-.3-2.5-.3-3.7 .1s-2.3 1-3.2 1.9-1.5 2-1.9 3.2-.4 2.5-.1 3.7L78.9 107c-1.2 1.4-2.4 2.9-3.6 4.4l-25.8-.9c-1.3 0-2.5 .2-3.6 .8s-2.1 1.4-2.8 2.4-1.1 2.2-1.2 3.5 .1 2.5 .6 3.6l10.7 23.4c-.9 1.7-1.8 3.4-2.7 5.2l-25.4 4.1c-1.2 .2-2.4 .7-3.4 1.5s-1.7 1.8-2.2 2.9-.7 2.4-.5 3.7 .6 2.4 1.3 3.4l15 20.8c-.6 1.9-1.1 3.8-1.7 5.7l-24 9c-1.2 .4-2.2 1.2-3 2.1s-1.4 2.1-1.6 3.3-.2 2.5 .2 3.7 1.1 2.3 2 3.1l18.7 17.5c-.2 2-.4 3.9-.6 5.9L3.5 249.8c-1.1 .7-1.9 1.6-2.6 2.7s-.9 2.3-.9 3.6 .3 2.5 .9 3.6 1.5 2 2.6 2.7l21.8 13.5c.2 2 .3 3.9 .6 5.9L7.1 299.1c-.9 .9-1.6 1.9-2 3.1s-.5 2.5-.2 3.7 .8 2.4 1.6 3.3 1.8 1.7 3 2.1l24 9c.6 1.9 1.1 3.8 1.7 5.6l-15 20.8c-.7 1-1.2 2.2-1.3 3.4s0 2.5 .5 3.7 1.2 2.2 2.2 2.9 2.1 1.3 3.4 1.5l25.4 4.2c.9 1.7 1.8 3.4 2.7 5.1L42.6 391.1c-.5 1.1-.7 2.4-.6 3.6s.5 2.5 1.2 3.5c.7 1.1 1.6 1.9 2.7 2.5s2.4 .8 3.6 .8l25.8-.9c1.2 1.5 2.4 2.9 3.6 4.4L73 430.2c-.3 1.2-.3 2.5 .1 3.7s1 2.3 1.9 3.2 2 1.5 3.2 1.9 2.5 .4 3.7 .1l25.2-5.9c1.5 1.2 2.9 2.4 4.4 3.6l-.9 25.8c0 1.3 .2 2.5 .8 3.6s1.4 2.1 2.5 2.8 2.2 1.1 3.5 1.2 2.5-.1 3.6-.6l23.4-10.7c1.7 .9 3.4 1.8 5.1 2.7l4.2 25.4c.2 1.2 .7 2.4 1.5 3.4s1.8 1.8 2.9 2.2 2.4 .7 3.7 .5 2.4-.6 3.4-1.3l20.8-15c1.9 .6 3.8 1.1 5.6 1.7l9 24c.4 1.2 1.2 2.2 2.1 3s2.1 1.4 3.3 1.6 2.5 .2 3.7-.2 2.3-1.1 3.1-2l17.5-18.7c2 .2 3.9 .4 5.9 .6l13.5 21.8c.7 1.1 1.6 1.9 2.7 2.6s2.3 .9 3.6 .9 2.5-.3 3.6-.9 2-1.5 2.7-2.6l13.5-21.8c2-.2 3.9-.3 5.9-.6l17.5 18.7c.9 .9 1.9 1.6 3.1 2s2.5 .5 3.7 .2 2.4-.8 3.3-1.6 1.7-1.8 2.1-3l9-24c1.9-.6 3.8-1.1 5.6-1.7l20.8 15c1 .7 2.2 1.2 3.4 1.3s2.5 0 3.7-.5 2.2-1.2 2.9-2.2 1.3-2.1 1.5-3.4l4.2-25.4c1.7-.9 3.4-1.8 5.1-2.7l23.4 10.7c1.1 .5 2.4 .7 3.6 .6s2.4-.5 3.5-1.2 1.9-1.6 2.5-2.8 .8-2.4 .8-3.6l-.9-25.8c1.5-1.2 2.9-2.4 4.4-3.6l25.2 5.9c1.2 .3 2.5 .3 3.7-.1s2.3-1 3.2-1.9 1.5-2 1.9-3.2 .4-2.5 .1-3.7L433.1 405c1.2-1.4 2.4-2.9 3.6-4.4l25.8 .9c1.3 .1 2.5-.2 3.6-.8s2.1-1.4 2.8-2.5c.7-1 1.1-2.2 1.2-3.5s-.1-2.5-.6-3.6l-10.7-23.4c.9-1.7 1.8-3.4 2.7-5.1l25.4-4.2c1.2-.2 2.4-.7 3.4-1.5s1.8-1.8 2.2-2.9 .7-2.4 .5-3.7-.6-2.4-1.3-3.4l-15-20.8c.6-1.9 1.1-3.8 1.7-5.6l24-9c1.2-.4 2.2-1.2 3-2.1s1.4-2.1 1.6-3.3 .2-2.5-.2-3.7-1.1-2.3-2-3.1l-18.7-17.5c.2-1.9 .4-3.9 .6-5.9l21.8-13.5c1.1-.7 1.9-1.6 2.6-2.7s.9-2.3 .9-3.6-.3-2.5-.9-3.6-1.5-2-2.6-2.7l0 0zm-151 129.1c-3.6-.8-7.4-.1-10.5 1.9s-5.3 5.2-6 8.8l-7.6 35.7c-24.6 11.1-51.3 16.8-78.3 16.7s-53.6-6.1-78.1-17.4l-7.6-35.7c-.4-1.8-1.1-3.5-2.1-5s-2.4-2.8-3.9-3.8-3.2-1.7-5-2-3.6-.3-5.4 .1l-31.5 6.8c-5.8-6-11.3-12.5-16.3-19.2l153.2 0c1.7 0 2.9-.3 2.9-1.9l0-54.2c0-1.6-1.2-1.9-2.9-1.9l-44.8 0 0-34.4 48.5 0c4.4 0 23.7 1.3 29.8 25.9 1.9 7.5 6.2 32.1 9.1 40 2.9 8.8 14.6 26.5 27.1 26.5l79 0c-5.3 7.1-11.1 13.8-17.3 20.1l-32.1-6.9zm25.8 34.5c0 3-.9 6-2.6 8.5s-4 4.5-6.8 5.6-5.8 1.5-8.8 .9-5.7-2-7.8-4.2-3.6-4.8-4.2-7.8-.3-6 .8-8.8 3.1-5.2 5.6-6.9 5.4-2.6 8.5-2.6l.4 0c4 .1 7.7 1.8 10.5 4.6s4.3 6.7 4.3 10.6l.1 0zm-225.6-.7c0 3-.9 6-2.6 8.5s-4.1 4.5-6.8 5.6-5.8 1.5-8.8 .9-5.7-2-7.8-4.2-3.6-4.8-4.2-7.8-.3-6 .9-8.8 3.1-5.2 5.6-6.8 5.4-2.6 8.5-2.6l.5 0c4 .1 7.7 1.8 10.5 4.6s4.3 6.7 4.3 10.6l.1 0zM69.6 234.2l32.8-14.6c1.7-.7 3.2-1.8 4.4-3.1s2.2-2.9 2.9-4.6 1-3.5 .9-5.3-.5-3.6-1.2-5.3l-6.8-15.2 26.6 0 0 119.7-53.6 0c-6.6-23.2-8.7-47.6-6.1-71.6zM58.3 198.1c0-2 .4-4 1.2-5.8s1.9-3.5 3.3-4.9 3.1-2.5 4.9-3.3 3.8-1.2 5.8-1.2l.5 0c3 .1 5.9 1 8.3 2.8s4.3 4.1 5.4 6.9 1.3 5.8 .7 8.8-2.1 5.6-4.3 7.7-4.9 3.5-7.8 4.1-6 .2-8.7-.9-5.1-3.1-6.8-5.6-2.5-5.4-2.5-8.4l0 0zm155.2 24.5l0-35.3 63.3 0c3.3 0 23.1 3.8 23.1 18.6 0 12.3-15.2 16.7-27.7 16.7l-58.7 0zM399 306.7c-9.8 1.1-20.6-4.1-22-10.1-5.8-32.5-15.4-39.4-30.6-51.4 18.9-12 38.5-29.6 38.5-53.3 0-25.5-17.5-41.6-29.4-49.5-16.8-11-35.3-13.2-40.3-13.2l-198.9 0c27.5-30.7 64.4-51.5 104.9-59.2l23.5 24.6c1.3 1.3 2.8 2.4 4.4 3.1s3.5 1.1 5.3 1.2 3.6-.3 5.3-.9 3.2-1.7 4.6-2.9l26.3-25c26.8 5 52.1 15.8 74.3 31.6s40.6 36.2 54.1 59.9l-18 40.6c-1.5 3.4-1.5 7.2-.2 10.6s3.9 6.2 7.3 7.7l34.6 15.3c1.1 10.8 1.2 21.7 .4 32.5l-19.3 0c-1.9 0-2.7 1.3-2.7 3.1l0 8.8c0 20.8-11.7 25.3-22 26.5zM240 60.2c0-4 1.6-7.9 4.5-10.7s6.7-4.5 10.7-4.5l.4 0c3 .1 5.9 1 8.4 2.8s4.3 4.1 5.4 6.9 1.3 5.8 .7 8.8-2.1 5.6-4.3 7.7-4.9 3.5-7.8 4-6 .2-8.7-.9-5.1-3.1-6.8-5.6-2.5-5.4-2.5-8.4zM436.8 214c-2 0-4-.4-5.8-1.2s-3.5-1.9-4.9-3.3-2.5-3.1-3.3-4.9-1.2-3.8-1.2-5.8 .4-4 1.2-5.8 1.9-3.5 3.3-4.9 3.1-2.5 4.9-3.3 3.8-1.2 5.8-1.2l.4 0c4 .1 7.9 1.7 10.7 4.6s4.4 6.8 4.3 10.8-1.7 7.9-4.6 10.7-6.8 4.4-10.8 4.3z\"]\n};\nvar faHornbill = {\n prefix: 'fab',\n iconName: 'hornbill',\n icon: [512, 512, [], \"f592\", \"M76.8 370.3c1 7.8-.4 15.8-4.1 22.8s-9.6 12.6-16.7 16.1-15.1 4.7-22.9 3.3-15-5.1-20.6-10.7-9.2-12.9-10.5-20.7 0-15.8 3.6-22.9 9.3-12.8 16.3-16.5 15-5 22.9-3.9c-78.3-111.3 52-190.5 52-190.5-5.9 43-8.2 91.2-8.2 91.2-67.3 41.5 .9 64.1 39.8 72.9 9.9 27 27.8 50.2 51.4 66.7s51.6 25.3 80.3 25.3c1.9 0 3.8-.2 5.7-.3l.1 18.9c-99.2 1.4-158.7-29.1-188.9-51.6zm108-327.7c.9-7.2-.2-14.6-3.4-21.2-3-6.2-7.6-11.5-13.4-15.3s-12.5-5.9-19.4-6.2-13.8 1.4-19.8 4.7-11.1 8.3-14.5 14.3-5.2 12.8-5 19.7 2.2 13.7 5.9 19.5 8.9 10.6 15.1 13.6 13.1 4.4 20 3.9c-22.6 29.9-53.8 89.6-52.4 190l21.8-.2c0-.9-.1-1.8-.1-2.7 0-28 8.4-55.3 24.1-78.5s37.9-41.2 63.8-51.6c8-37.7 30.7-114.3 73.8-44.3 0 0 48.1 2.4 91.2 8.2 0 0-77.8-128-187.6-54.1l0 0zM489 176.8c6.3-3 11.7-7.7 15.5-13.6s5.9-12.7 6.1-19.8-1.6-14-5.2-20-8.7-11-14.9-14.3-13.2-4.8-20.2-4.4-13.8 2.8-19.5 6.9-10.2 9.6-13 16.1-3.7 13.6-2.7 20.5c-31.7-21.9-89.8-49.1-183.4-47.7l.1 22.5c2.7-.2 5.4-.4 8.1-.4 28.1 0 55.6 8.5 78.9 24.3s41.2 38.3 51.6 64.5c39.1 9 105.1 31.6 38.5 72.5 0 0-2.3 48.1-8.2 91.2 0 0 133.4-81.2 49-194.6 6.6 .6 13.3-.6 19.3-3.5l0 0zM374.4 436.2c21.4-32.5 46.4-89.7 45.1-179.7l-19.5 .1c.1 2.1 .3 4.1 .3 6.2 0 28.6-8.8 56.5-25.1 80s-39.5 41.4-66.3 51.4c-8.9 39-31.4 106.7-72.8 39.5 0 0-48.1-2.3-91.2-8.2 0 0 79.9 131.3 191.9 51 .3 4.9 1.5 9.6 3.6 14 2.9 6.1 7.5 11.4 13.1 15.1s12.2 6 19 6.4 13.6-1.1 19.6-4.2 11.1-7.8 14.7-13.6 5.6-12.4 5.7-19.2-1.5-13.5-4.8-19.4-8.2-10.9-14.1-14.3-12.6-5.2-19.4-5.1l0-.1z\"]\n};\nvar faPhp = {\n prefix: 'fab',\n iconName: 'php',\n icon: [640, 512, [], \"f457\", \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5C148.6 407.5 16.8 335.3 16.8 256S148.7 104.5 320 104.5zm0-16.8C143.3 87.7 0 163 0 256S143.3 424.3 320 424.3 640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3l36.7 0 8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7l-70.7 0-32.7 168.7zM283.1 136.7l36.5 0-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1l-37 0c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6-36.5 0 32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3l36.8 0 8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7l-70.7 0-32.8 168.7z\"]\n};\nvar faDisqus = {\n prefix: 'fab',\n iconName: 'disqus',\n icon: [576, 512, [], \"e7d5\", \"M290.2 512c-62.6 0-119.9-22.9-164.2-60.8L17 466.1 59.1 362.2c-14.7-32.4-22.9-68.3-22.9-106.2 0-141.4 113.7-256 254-256 140.3 0 254 114.6 254 256 0 141.4-113.7 256-254 256zM428.9 255.3l0-.7C428.9 180.7 376.8 128 287 128l-97 0 0 256 95.6 0c90.5 0 143.4-54.9 143.4-128.7zM288 321.1l-28.4 0 0-130.2 28.4 0c41.7 0 69.3 23.8 69.3 64.7l0 .7c0 41.3-27.7 64.7-69.3 64.7z\"]\n};\nvar fa500px = {\n prefix: 'fab',\n iconName: '500px',\n icon: [384, 512, [], \"f26e\", \"M71.8 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2l.3 0 0-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5S151 163.3 126.3 188c-.3 .3-16 16.5-21.2 23.9l-.5 .6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8L70.2 20c0-5 3.9-10.5 10.5-10.5L322 9.5c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1l-223.2 0 0 132.9 .3 0c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zM135.1 83.5c-.5 4.2 4.6 24.5 14.6 20.6 124.8-47.5 202.8 40.4 209.4 40.4 4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM361.5 414.7c-110 109.9-299 60.8-332-104.2 0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM182.1 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6 .2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2l-17.3-17.3 18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L218.2 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L202.5 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"]\n};\nvar faAffiliatetheme = {\n prefix: 'fab',\n iconName: 'affiliatetheme',\n icon: [512, 512, [], \"f36b\", \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1 105.5 88.2 170.8 48.3 199.9 69.9s11.1 96.6-40.2 167.5zm351.2-57.3c-73.8 123.4-191.9 187.7-264.5 143.6-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9 .1-8.5-.3-16.8-1-25z\"]\n};\nvar faRedRiver = {\n prefix: 'fab',\n iconName: 'red-river',\n icon: [448, 512, [], \"f3e3\", \"M353.2 32L94.8 32C42.4 32 0 74.4 0 126.8L0 385.2C0 437.6 42.4 480 94.8 480l258.4 0c52.4 0 94.8-42.4 94.8-94.8l0-258.4C448 74.4 405.6 32 353.2 32zM144.9 200.9l0 56.3c0 27-21.9 48.9-48.9 48.9l0-154.2c0-13.2 10.7-23.9 23.9-23.9l154.2 0c0 27-21.9 48.9-48.9 48.9l-56.3 0c-12.3-.6-24.6 11.6-24 24zm176.3 72l-56.3 0c-12.3-.6-24.6 11.6-24 24l0 56.3c0 27-21.9 48.9-48.9 48.9l0-154.2c0-13.2 10.7-23.9 23.9-23.9l154.2 0c0 27-21.9 48.9-48.9 48.9z\"]\n};\nvar faTwitter = {\n prefix: 'fab',\n iconName: 'twitter',\n icon: [512, 512, [], \"f099\", \"M459.4 151.7c.3 4.5 .3 9.1 .3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103l0-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53 51.7 63.7 129.3 105.3 216.4 109.8-1.6-7.8-2.6-15.9-2.6-24 0-57.8 46.8-104.9 104.9-104.9 30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3z\"]\n};\nvar faFortAwesome = {\n prefix: 'fab',\n iconName: 'fort-awesome',\n icon: [512, 512, [], \"f286\", \"M489.5 287.9l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-178.3c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-32c0-6-8-4.6-11.7-4.6l0-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8l0-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9l0-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3l0 111.7c-3.7 0-11.7-1.4-11.7 4.6l0 32-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.3 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 178.3-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 219.5 182.9 0 0-96c0-72.6 109.7-72.6 109.7 0l0 96 182.9 0 0-219.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6l-27.4 0c-2.6 0-4.6-2-4.6-4.6l0-64c0-2.6 2-4.6 4.6-4.6l27.4 0c2.6 0 4.6 2 4.6 4.6l0 64zm146.4 0c0 2.6-2 4.6-4.6 4.6l-27.4 0c-2.6 0-4.6-2-4.6-4.6l0-64c0-2.6 2-4.6 4.6-4.6l27.4 0c2.6 0 4.6 2 4.6 4.6l0 64z\"]\n};\nvar faMixer = {\n prefix: 'fab',\n iconName: 'mixer',\n icon: [448, 512, [], \"e056\", \"M82.6 76.1c-3.8-5.1-8.7-9.4-14.2-12.5s-11.7-5.1-18.1-5.7-12.8 .1-18.8 2.2-11.6 5.3-16.3 9.6c-17.6 16.2-19 43.5-4.8 62.8l91.8 123-92.3 124.1c-14.2 19.3-13.1 46.6 4.7 62.8 4.7 4.3 10.3 7.6 16.3 9.6s12.5 2.8 18.8 2.2 12.5-2.5 18.1-5.7 10.4-7.4 14.2-12.5L210.9 262.7c1.5-2.1 2.3-4.6 2.3-7.1s-.8-5-2.3-7.1L82.6 76.1zM438.2 379.6l-92.3-124.1 91.8-123c14.2-19.2 12.8-46.6-4.7-62.8-4.7-4.3-10.3-7.6-16.3-9.6s-12.5-2.8-18.8-2.2-12.5 2.5-18.1 5.7-10.4 7.4-14.2 12.5l-128 172.1c-1.5 2.1-2.3 4.6-2.3 7.1s.8 5 2.3 7.1L366 435.9c3.8 5.1 8.7 9.4 14.2 12.5s11.7 5.1 18.1 5.7 12.8-.1 18.8-2.2 11.6-5.3 16.3-9.6c17.8-16.2 19-43.5 4.7-62.8z\"]\n};\nvar faLyft = {\n prefix: 'fab',\n iconName: 'lyft',\n icon: [512, 512, [], \"f3c3\", \"M0 81.1l77.8 0 0 208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8-17-14-24.8-37.3-24.8-59L0 81.1zM485.9 254.6l0-22 23.8 0 0-76.8-26.1 0c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7l0 179.2c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59l0-6.7 38.8 0 0-76.8-38.8 0 0-23.3c0-34.6 52.2-34.6 52.2 0l0 77.1c0 56.6 46 102.7 102.7 102.7l0-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99l0 113c0 15.4-23.8 15.4-23.8 0l0-113-76.8 0 0 132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8l0 70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8l0-178.2-77.1 0 0 .5z\"]\n};\nvar faApplePay = {\n prefix: 'fab',\n iconName: 'apple-pay',\n icon: [640, 512, [], \"f415\", \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8zm10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9 .3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1zm100.4-36.2l0 194.9 30.3 0 0-66.6 41.9 0c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64l-73.2 0zM258.5 165l34.9 0c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8l-34.8 0 0-77.4zM420.7 335.9c19 0 36.6-9.6 44.6-24.9l.6 0 0 23.4 28 0 0-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6l27.3 0c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5l0 10.8-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5 .1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1 0 11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4l53.1-149-30.8 0-35.6 115.1-.6 0-35.6-115.1-31.6 0 51.2 141.9-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5l0 23.4c1.8 .4 9.3 .7 11.6 .7z\"]\n};\nvar faArtstation = {\n prefix: 'fab',\n iconName: 'artstation',\n icon: [512, 512, [], \"f77a\", \"M2.1 377.4l43 74.3c4.3 8.5 10.8 15.7 18.9 20.7s17.4 7.6 27 7.6l285.4 0-59.2-102.6-315.1 0zM501.9 350L335.7 59.3c-4.4-8.2-10.9-15.1-18.9-20S299.7 32 290.4 32l-88.4 0 257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275.2 304.5l-115.5-200-115.5 200 231 0z\"]\n};\nvar faNodeJs = {\n prefix: 'fab',\n iconName: 'node-js',\n icon: [448, 512, [], \"f3d3\", \"M224.5 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6 .4l47.4 28.1c1.7 1 4.1 1 5.7 0L412 367.5c1.7-1 2.8-3 2.8-5l0-213.2c0-2.1-1.1-4-2.9-5.1L227.3 37.7c-1.7-1-4-1-5.7 0L37.1 144.3c-1.8 1-2.9 3-2.9 5.1l0 213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7l0-210.4c0-3 2.4-5.3 5.4-5.3l23.4 0c2.9 0 5.4 2.3 5.4 5.3l0 210.5c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6L20.6 396.1c-12-6.9-19.4-19.8-19.4-33.7l0-213.1c0-13.8 7.4-26.8 19.4-33.7L205.1 9c11.7-6.6 27.2-6.6 38.8 0L428.6 115.7c12 6.9 19.4 19.8 19.4 33.7l0 213.1c0 13.8-7.4 26.7-19.4 33.7L243.9 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zM373.6 297.9c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8 .5 2.4 2.7 4.2 5.2 4.2l24 0c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5l-23.9 0c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"]\n};\nvar faUncharted = {\n prefix: 'fab',\n iconName: 'uncharted',\n icon: [448, 512, [], \"e084\", \"M171.8 232.8c1.1 0 2.1-.3 3-.9s1.6-1.4 2-2.4c2.2-9.8 7.4-18.6 14.9-25.3 1.2-.8 1.7-2.5 1.7-4.1-.1-.7-.3-1.3-.6-1.9s-.9-1.1-1.4-1.4L74.5 128.5 149.1 85c1.5-.8 2.7-2 3.6-3.5s1.4-3.1 1.4-4.8c0-1.7-.4-3.4-1.3-4.9s-2.2-2.7-3.7-3.4L126.7 55.6c-1.5-.8-3.1-1.2-4.8-1.2s-3.3 .4-4.8 1.2L17 113.6c-1.5 .8-2.7 2-3.6 3.5s-1.4 3.1-1.4 4.8L12 237c0 1.7 .4 3.4 1.3 4.9s2.2 2.7 3.7 3.4l22.4 12.8c1.5 .9 3.2 1.3 5 1.2 2.4 .1 4.8-.8 6.6-2.5 1.8-1.9 2.8-4.4 2.9-7l0-85.3 115.9 67.9c.6 .3 1.4 .4 2.1 .4zM323.4 377.7c-1.7 .1-3.4 .5-5 1.2l-74.5 43.1 0-134.2c0-2.9-2.9-5.8-6.2-4.6-9.4 2.8-19.5 3-29 .4-.7-.2-1.5-.2-2.2-.1s-1.4 .4-2 .9-1.1 1-1.4 1.7-.5 1.4-.5 2.1l0 133.3-74.5-43.1c-1.5-.9-3.2-1.3-5-1.2-2.5 0-4.9 1-6.7 2.8s-2.8 4.2-2.8 6.7l0 26.1c0 1.7 .4 3.4 1.3 4.9s2.2 2.7 3.7 3.4l100.2 57.6c1.5 .9 3.2 1.3 5 1.2 1.7 0 3.4-.4 5-1.2l100.2-57.6c1.5-.8 2.7-2 3.6-3.5s1.4-3.1 1.4-4.8l0-26.1c-.8-4.6-5.4-9.1-10.4-9.1zM286.1 78a23 23 0 1 0 0-46 23 23 0 1 0 0 46zm63.6-10.1a23 23 0 1 0 0 46 23 23 0 1 0 0-46zm63.2 83.7a23 23 0 1 0 0-46 23 23 0 1 0 0 46zm-63.2-9.2a23 23 0 1 0 0 46 23 23 0 1 0 0-46zm-63.6 83.2c4.5 0 9-1.3 12.8-3.9s6.7-6.1 8.5-10.3 2.2-8.8 1.3-13.3-3.1-8.6-6.3-11.8-7.3-5.4-11.8-6.3-9.1-.4-13.3 1.3-7.8 4.7-10.3 8.5-3.9 8.2-3.9 12.8c0 3 .6 6 1.8 8.8s2.9 5.3 5 7.5 4.7 3.8 7.5 5 5.8 1.8 8.8 1.8l0 0zM224 262c4.5 0 9-1.4 12.8-3.9s6.7-6.1 8.5-10.3 2.2-8.8 1.3-13.3-3.1-8.6-6.3-11.8-7.3-5.4-11.8-6.3-9.1-.4-13.3 1.3-7.8 4.7-10.3 8.5-3.9 8.2-3.9 12.8c0 3 .6 6 1.7 8.8s2.8 5.3 5 7.5 4.7 3.8 7.5 5 5.8 1.8 8.8 1.8l0 0zm188.9-82.4c-4.6 0-9 1.3-12.8 3.9s-6.7 6.1-8.5 10.3-2.2 8.8-1.3 13.3 3.1 8.6 6.3 11.8 7.3 5.4 11.8 6.3 9.1 .4 13.3-1.3 7.8-4.7 10.3-8.5 3.9-8.2 3.9-12.8c0-6.1-2.4-11.9-6.7-16.3s-10.2-6.7-16.3-6.7l0 0zm0 72.3c-4.6 0-9 1.3-12.8 3.9s-6.7 6.1-8.5 10.3-2.2 8.8-1.3 13.3 3.1 8.6 6.3 11.8 7.3 5.4 11.8 6.3 9.1 .4 13.3-1.3 7.8-4.7 10.3-8.5 3.9-8.2 3.9-12.8c0-6.1-2.4-11.9-6.7-16.3s-10.2-6.7-16.3-6.7l0 0z\"]\n};\nvar faPlaystation = {\n prefix: 'fab',\n iconName: 'playstation',\n icon: [576, 512, [], \"f3df\", \"M571 372.3c-11.3 14.2-38.8 24.3-38.8 24.3l-205.1 73.6 0-54.3 150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9l-100.5 35.5 0-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9 .6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zM346.6 279.8l0-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4l0 347.9-93.8-29.8 0-414.7c39.9 7.4 98 24.9 129.2 35.4 79.5 27.3 106.4 61.3 106.4 137.8 0 74.5-46 102.8-104.5 74.6zM43.3 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8 0 54.5-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4s39.1 3.3 56.2-2.9l46.4-16.9 0 48.8c-51.6 9.3-101.4 7.3-153.9-10z\"]\n};\nvar faMicroblog = {\n prefix: 'fab',\n iconName: 'microblog',\n icon: [448, 512, [], \"e01a\", \"M399.8 362.2c29.5-34.7 47.1-78.3 47.1-125.8 0-113-99.6-204.4-222.5-204.4S2 123.5 2 236.4 101.6 440.9 224.5 440.9c27 0 53.9-4.5 79.4-13.4 1.4-.5 3-.5 4.5-.1s2.7 1.4 3.6 2.6c18.6 25.1 47.6 42.7 79.9 49.9 1.1 .2 2.3 0 3.3-.6s1.7-1.6 1.9-2.8c.1-.6 .1-1.3 0-1.9s-.4-1.2-.8-1.7c-12.3-16-18.7-35.8-18-56s8.4-39.5 21.7-54.7l-.2 .1zM330 212.4l-57.3 43.5 20.8 68.9c.4 1.3 .4 2.7-.1 4s-1.2 2.4-2.3 3.2-2.4 1.2-3.8 1.2-2.7-.4-3.8-1.2l-59.1-41-59.1 41.1c-1.1 .8-2.4 1.2-3.8 1.2s-2.7-.4-3.8-1.2-1.9-1.9-2.3-3.2-.5-2.7-.1-4l20.8-68.9-57.3-43.5c-1.1-.8-1.9-1.9-2.3-3.2s-.4-2.7 0-4 1.2-2.4 2.3-3.2 2.4-1.3 3.7-1.3l71.9-1.5 23.7-67.9c.4-1.3 1.3-2.4 2.4-3.2s2.4-1.2 3.8-1.2 2.7 .4 3.8 1.2 1.9 1.9 2.4 3.2l23.7 67.9 71.9 1.5c1.4 0 2.7 .4 3.8 1.2s1.9 1.9 2.3 3.2 .4 2.7 0 4-1.2 2.4-2.3 3.3l0 0z\"]\n};\nvar faGitkraken = {\n prefix: 'fab',\n iconName: 'gitkraken',\n icon: [576, 512, [], \"f3a6\", \"M557.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7l0-123.7c7.9-1.5 15.5-3.6 23-6.2l0 104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4l0-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9l0-14.7c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0-41.2 3-129.1 126.7-129.1 164.7l0 14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5l0 92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8l0-104c7.6 2.5 15.1 4.6 23 6.2l0 123.7c-129.8-17-230.2-128.1-230.2-262.7 0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6-11.8 31.5-18.3 65.6-18.3 101.3 0 155.1 122.6 281.6 276.3 287.8l0-145.9c6.8 .4 15 .5 23.4 0l0 145.8c153.7-6.1 276.3-132.6 276.3-287.7 0-35.7-6.5-69.8-18.3-101.4zM357.9 322.9a23.7 23.7 0 1 1 0-47.4 23.7 23.7 0 1 1 0 47.4zM218.1 275.4a23.7 23.7 0 1 1 0 47.4 23.7 23.7 0 1 1 0-47.4z\"]\n};\nvar faTelegram = {\n prefix: 'fab',\n iconName: 'telegram',\n icon: [512, 512, [62462, \"telegram-plane\"], \"f2c6\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM371 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5c-2.2 .5-37.1 23.5-104.6 69.1-9.9 6.8-18.9 10.1-26.9 9.9-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3 .6-4.5 6.7-9 18.4-13.7 72.3-31.5 120.5-52.3 144.6-62.3 68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9 2 1.7 3.2 4.1 3.5 6.7 .5 3.2 .6 6.5 .4 9.8z\"]\n};\nvar faTelegramPlane = faTelegram;\nvar faUltralytics = {\n prefix: 'fab',\n iconName: 'ultralytics',\n icon: [512, 512, [], \"e86d\", \"M391.4 39.7c65.8-.2 118.6 51.8 120.4 116.6 .7 26.4-1.5 54.1-3.8 74.1-17.2 148.6-122.4 242-252.4 242-95.4-.1-179.4-52.7-223.2-130.6 24.4 17.4 54.5 27.4 87.6 27.4 83.2 .1 151.4-67.4 151.2-150l.1-60.6c-.2-65.7 53.9-119 120.1-118.9zM119.9 100.2c66.2 0 119.9 53.3 119.9 119S186.1 338.3 119.9 338.3 0 285 0 219.3c0-65.7 53.7-119 119.9-119z\"]\n};\nvar faItunesNote = {\n prefix: 'fab',\n iconName: 'itunes-note',\n icon: [384, 512, [], \"f3b5\", \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2 .8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6 .2 344.5 1.1 326-1.8 338.5z\"]\n};\nvar faLess = {\n prefix: 'fab',\n iconName: 'less',\n icon: [640, 512, [], \"f41d\", \"M613.2 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2l-20.5 0 0 24.2 6.3 0c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3l0 1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6l0 .5-6.3 0 0 25.2 20.5 0c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6l0-27.3c-20.5-.7-27.3-12.3-27.3-23.3zM507.6 251c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zM148.7 310.4c-3.7 0-8.4-3.2-8.4-13.1l0-178.2-74.6 0c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6l0 27.3c20.5 .5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2l20.5 0 0-24.2-6.3 0c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3l0-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1l14.1 0 0 150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1 .8-4.6 .8-6.2 .8zM380.4 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9L271 301.5c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2l95.2 0c.5-3.7 1.6-11 1.6-19.4 .6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31l-56.8 0z\"]\n};\nvar faFirefox = {\n prefix: 'fab',\n iconName: 'firefox',\n icon: [512, 512, [], \"f269\", \"M503.5 241.5c-.1-1.6-.2-3.1-.2-4.7l0-.1-.4-4.7 0-.1c-1.3-13.9-3.7-27.7-7.3-41.2 0-.1 0-.1-.1-.2l-1.1-4c-.1-.2-.1-.5-.2-.6-.4-1.2-.7-2.5-1.1-3.7-.1-.2-.1-.6-.2-.8-.4-1.2-.7-2.4-1.1-3.5-.1-.4-.2-.6-.4-1-.4-1.2-.7-2.3-1.2-3.5l-.4-1.1c-.4-1.1-.8-2.3-1.2-3.4-.1-.3-.2-.7-.4-1-.5-1.1-.8-2.3-1.3-3.4-.1-.2-.2-.6-.4-.8-.5-1.2-1-2.3-1.4-3.5 0-.1-.1-.2-.1-.4-1.6-3.8-3.2-7.7-5-11.4l-.4-.7c-.5-1-.8-1.8-1.3-2.6-.2-.5-.5-1.1-.7-1.6-.4-.8-.8-1.6-1.2-2.4-.4-.6-.6-1.2-1-1.8s-.8-1.4-1.2-2.3c-.4-.6-.7-1.3-1.1-1.9s-.8-1.4-1.2-2.2c-.4-.7-.8-1.4-1.2-2-.4-.7-.8-1.3-1.2-2s-.8-1.3-1.2-2-.8-1.3-1.2-1.9-.8-1.4-1.3-2.2c-.4-.6-.8-1.2-1.2-1.8l-1.4-2.1c-.4-.6-.8-1.2-1.2-1.8-.5-.7-1.1-1.6-1.6-2.3-.4-.5-.7-1.1-1.1-1.6l-1.8-2.5c-.4-.5-.6-.8-1-1.3-1-1.3-1.8-2.5-2.8-3.7-7.2-9.4-15-18.3-23.5-26.6-5.7-6-11.8-11.5-18.3-16.7-4-3.5-8.2-6.7-12.5-9.8-7.7-5.8-16-10.8-24.6-15.1-2.4-1.3-4.8-2.5-7.2-3.7-17.7-8.6-36.3-15.2-55.4-19.6-1.9-.4-3.8-.8-5.6-1.2l-.1 0c-1-.1-1.8-.4-2.8-.5-12.5-2.4-25.2-3.7-38-4l-10.6 0c-15.3 .2-30.5 1.9-45.5 5-33.6 7.1-63.2 21.2-82.9 39-1.1 1-1.9 1.7-2.4 2.2l-.5 .5 .1 0c0 0 .1 0 .1 0s0-.1 0-.1l-.1 .1c.1-.1 .1-.1 .2-.1 14.6-8.8 34.9-16 49.4-19.6l5.9-1.4c.4-.1 .8-.1 1.2-.2 1.7-.4 3.4-.7 5.2-1.1 .2 0 .6-.1 .8-.1 64.2-11.7 132.6 7.5 180.2 53 10.3 9.8 19.3 20.8 26.9 32.8 30.4 49.2 27.5 111.1 3.8 147.6-34.4 53-111.4 71.3-159 24.8-16-15.5-25.2-36.7-25.6-59-.2-10.7 2-21.2 6.2-31 1.7-3.8 13.1-25.7 18.2-24.6-13.1-2.8-37.5 2.6-54.7 28.2-15.4 22.9-14.5 58.2-5 83.3-6-12.4-10.1-25.6-12.1-39.2-12.2-82.6 43.3-153 94.3-170.5-27.5-24-96.5-22.3-147.7 15.4-29.9 22-51.2 53.2-62.5 90.4 1.7-20.9 9.6-52.1 25.8-83.9-17.2 8.9-39 37-49.8 62.9-15.6 37.4-21 82.2-16.1 124.8 .4 3.2 .7 6.4 1.1 9.6 19.9 117.1 122 206.4 244.8 206.4 137.1 0 248.3-111.2 248.3-248.4-.1-4.5-.2-9.1-.5-13.5z\"]\n};\nvar faKaggle = {\n prefix: 'fab',\n iconName: 'kaggle',\n icon: [320, 512, [], \"f5fa\", \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5l-69.2 0c-3.5 0-7 1.8-10.5 5.3l-132.3 133.7 0-306c0-5-2.5-7.5-7.5-7.5L21.5 0C16.5 0 14 2.5 14 7.5l0 497c0 5 2.5 7.5 7.5 7.5l51.9 0c5 0 7.5-2.5 7.5-7.5l0-109 30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3l66.9 0c3.5 0 5.5-1 6-3l-1.4-7.6z\"]\n};\nvar faFacebookMessenger = {\n prefix: 'fab',\n iconName: 'facebook-messenger',\n icon: [512, 512, [], \"f39f\", \"M256.6 8c-140 0-248.6 102.3-248.6 240.6 0 72.3 29.7 134.8 78.1 177.9 8.3 7.5 6.6 11.9 8 58.2 .1 3.2 1 6.4 2.6 9.2s3.9 5.2 6.7 6.9 5.9 2.8 9.1 3 6.5-.3 9.5-1.6C174.9 479 175.6 477.2 184.6 479.6 337.8 521.8 504 423.7 504 248.6 504 110.3 396.6 8 256.6 8zM405.8 193.1l-73 115.6c-2.8 4.3-6.4 8.1-10.6 11s-9.1 4.8-14.1 5.8-10.3 .8-15.3-.4-9.7-3.4-13.8-6.4l-58.1-43.5c-2.6-1.9-5.8-3-9-3s-6.4 1.1-9 3l-78.4 59.4c-10.5 7.9-24.2-4.6-17.1-15.7l73-115.6c2.8-4.3 6.4-8.1 10.6-11s9.1-4.8 14.1-5.8 10.3-.8 15.3 .4 9.7 3.4 13.9 6.4l58.1 43.5c2.6 1.9 5.8 3 9 3s6.4-1.1 9-3l78.4-59.4c10.4-8 24.1 4.5 17.1 15.6z\"]\n};\nvar faAudible = {\n prefix: 'fab',\n iconName: 'audible',\n icon: [640, 512, [], \"f373\", \"M640 199.9l0 54-320 200-320-199.9 0-54 320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6s-135.5 36.7-172.6 92.4l.3 0c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zM225.4 290.7c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1C235.4 56.8 421.8 84.7 521.1 223.2l.7 1 48.8-30.4c-53.5-81.7-145.8-135.7-250.7-135.7-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6z\"]\n};\nvar faPatreon = {\n prefix: 'fab',\n iconName: 'patreon',\n icon: [512, 512, [], \"f3d9\", \"M490 153.8c-.1-65.4-51-119-110.7-138.3-74.2-24-172-20.5-242.9 12.9-85.8 40.5-112.8 129.3-113.8 217.8-.8 72.8 6.4 264.4 114.6 265.8 80.3 1 92.3-102.5 129.5-152.3 26.4-35.5 60.5-45.5 102.4-55.9 72-17.8 121.1-74.7 121-150l-.1 0z\"]\n};\nvar faVnv = {\n prefix: 'fab',\n iconName: 'vnv',\n icon: [640, 512, [], \"f40b\", \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192l32.8 0c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1l32.8 0c20.8 0 10.4 18.1 10.4 18.1L186.4 321.6S174.2 352 140 352l-35.1 0zm395 0c-34.1 0-46.4-30.4-46.4-30.4L397.6 210.1S387.2 192 408 192l32.8 0c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1l32.9 0c20.8 0 10.4 18.1 10.4 18.1L581.5 321.6S569.3 352 535.1 352l-35.2 0zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5S450.3 352 429.5 352l-32.8 0c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1l-32.9 0c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5S268.3 192 302.5 192l35.1 0z\"]\n};\nvar faPagelines = {\n prefix: 'fab',\n iconName: 'pagelines',\n icon: [384, 512, [], \"f18c\", \"M384.1 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4 .5 1.6 .5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"]\n};\nvar faAmazon = {\n prefix: 'fab',\n iconName: 'amazon',\n icon: [448, 512, [], \"f270\", \"M257.7 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56s-32.3-25.3-32.3-52.8l0-147.1C341.5 89 317 32 229.2 32 141.2 32 94.5 87 94.5 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8l0 40.6zM393.7 413c-7.7 10-70 67-174.5 67S34.7 408.5 10.2 379c-6.8-7.7 1-11.3 5.5-8.3 73.3 44.5 187.8 117.8 372.5 30.3 7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"]\n};\nvar faEnvira = {\n prefix: 'fab',\n iconName: 'envira',\n icon: [448, 512, [], \"f299\", \"M0 32c477.6 0 366.6 317.3 367.1 366.3l80.9 81.7-26 0-70.4-71.2C312.6 413 227.2 443.3 137.2 371.8 47 300.3 52 214.7 0 32zM79.7 78c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"]\n};\nvar faLinode = {\n prefix: 'fab',\n iconName: 'linode',\n icon: [448, 512, [], \"f2b8\", \"M366.3 186.9l-59.5 36.9-.8 36.9-29.3-19.3-39.4 24.3c2.2 55.2 2.5 59.3 2.5 59.5l-97.2 65.4-15.1-104.7 108.1-62-40.2-26-75.4 38.5-21-143.3 129-49.4-91.3-43.6-125.7 39.4 27.7 134.9 41.9 32.7-31.8 15.1 20.9 101.4 29.3 27.7-20.9 12.6 16.8 78.8 66.2 69.6c-10.8-74.8-11.7-78.6-11.7-78.8l77.9-55.3C244 365.4 242.3 367 242.3 367l.8 24.3 33.5 28.5-.8-77.1 46.9-33.5 26.8-18.4-2.5 36 25.1 17.6 6.7-74.6 58.7-43.6-71.2-39.4z\"]\n};\nvar faAccusoft = {\n prefix: 'fab',\n iconName: 'accusoft',\n icon: [640, 512, [], \"f369\", \"M322.1 252l0-1-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7 .8 0 114.5-36.6 114.5-36.6 .5-.6-.1-.1 .6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zM482.2 372.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8 .5-116.5 .6-19.2 .1-32.9-.3-19.2 16.9 7.7 9.5 234.2 299.7 239.9 306.6zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1 .2-9.6 .8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6 .2 2.5 2 2.6 4.6 3.5 2.7 .8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"]\n};\nvar faErlang = {\n prefix: 'fab',\n iconName: 'erlang',\n icon: [640, 512, [], \"f39d\", \"M87.2 53.5l-87.2 0 0 405 100.4 0c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9 .1-85.1 33.5-89.2 83.2l169.9 0c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6l.3 0-.1-.1-.2 .1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7 .5 6 .5 11.7 0 24.1l-372.4 0c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8l80.8 0 0-405-83.6 0z\"]\n};\nvar faUnison = {\n prefix: 'fab',\n iconName: 'unison',\n icon: [512, 512, [], \"e854\", \"M435.1 161.7a13.9 13.9 0 1 1 19.6-19.7 13.9 13.9 0 1 1 -19.6 19.7zM369.7 97.8c10.4 2.1 20.6 5.2 30.4 9.2 6.8 2.8 10.1 10.8 7.3 17.7-2.8 6.7-10.9 10.1-17.6 7.3-8.3-3.4-16.8-5.8-25.7-7.8-8.6-1.7-17.3-2.5-26-2.5-19.3 0-37.1-10.3-46.7-27-8.7-15.1-20.6-28.9-34.7-39.7-59.1-45.5-143.8-34.3-189.2 25-2.6 3.3-6.5 5.3-10.7 5.3-7.4 0-13.5-6.1-13.5-13.5 0-3.2 1.2-6.3 3.2-8.8 12.9-16.7 28.9-30.7 47.1-41.2 77.4-44.8 176.4-18.2 221.1 59.4 4.3 8.2 13.7 13.3 22.8 13.5 10.8 0 21.6 1 32.2 3.1zM35 270c4.6-8.2 4.6-18.2 0-26.4-21.9-36.5-27.3-82.3-16.3-123.2 1.6-5.9 6.9-10 13-10 8.7 0 15.3 8.7 13 17-9.5 35.4-3.4 71 13.7 102.9 9.3 16.5 9.3 36.7 0 53.1-8.7 15.7-14.8 32.4-17.2 50.3-9.7 73.9 42.3 141.7 116.2 151.4 7.3 1 12.6 7.9 11.6 15.2-1 7.3-7.8 12.6-15.1 11.6-21.1-2.8-41.4-9.7-59.8-20.3-75.6-43.6-104.9-145.8-59.2-221.5zM216.9 509c-7.4 2-15.1-2.4-17.1-9.8s2.5-15 9.9-16.9c8.5-2.2 17.4 4.5 17.4 13.4 0 6.2-4.2 11.6-10.2 13.3zm122.3-91c-9.5 0-18.4 5-23.2 13.2-4.9 9.4-11.7 18.2-18.7 26.2l0 0c-7.1 8-14.8 15.2-23.2 21.7-5.9 4.5-14.4 3.4-19-2.5s-3.4-14.4 2.5-18.9c7-5.4 13.5-11.5 19.4-18.1l0 0c5.9-6.6 11.1-13.8 15.5-21.6 9.7-16.7 27.5-27 46.8-27 17.8 0 35.4-3.5 51.8-10.3 68.3-28.3 101.1-108.3 73.2-176.5-.6-1.6-1-3.3-1-5 0-7.4 6.1-13.5 13.5-13.5 5.4 0 10.3 3.2 12.4 8.2 8.2 19.7 12.4 40.8 12.4 62.1 0 89.5-72.7 162.1-162.4 162.1l0 0zm-13.1-268c3.9-.4 7.9-.6 11.9-.6 59.3 0 108.2 48.7 108.2 107.8S397.3 365 338 365c-4 0-7.9-.2-11.8-.6-22.2-1.7-43.3 10.4-52.9 30.4-17.2 39.1-56.2 64.5-99.1 64.5-59.3 0-108.2-48.7-108.2-107.8 0-23.2 7.5-45.7 21.4-64.3 12.2-18.3 12.1-42.3-.4-60.5-13.6-18.5-20.9-40.8-20.9-63.7 0-59.1 48.8-107.8 108.2-107.8 42.8 0 81.8 25.4 99 64.4 9.6 20 30.7 32.1 52.9 30.4zM106.8 393.4c14.4 25.2 41.1 40.8 69.8 40.8 44.2 0 80.6-36.8 80.6-81.6s-36.4-81.6-80.6-81.6c-14.2 0-28.1 3.8-40.3 10.9-38.3 22.4-51.6 72.7-29.5 111.4zM268 298c14.4 25.2 41.1 40.8 69.8 40.8 44.2 0 80.6-36.8 80.6-81.6s-36.4-81.6-80.6-81.6c-14.2 0-28.1 3.8-40.3 10.9-38.3 22.4-51.6 72.7-29.5 111.4zm-91.2-54.6c44.2 0 80.5-36.8 80.5-81.6s-36.4-81.6-80.6-81.6-80.6 36.8-80.6 81.6c0 44.7 36.4 81.6 80.6 81.6z\"]\n};\nvar faCcDiscover = {\n prefix: 'fab',\n iconName: 'cc-discover',\n icon: [576, 512, [], \"f1f2\", \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1l-4.9 0 0 24.9 4.7 0c10.3 0 15.8-4.4 15.8-12.8zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM483.9 170.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4-19.6 0-22.2-32.8-2.2 0 0 32.8-16 0 0-82zM428 171l45.3 0 0 14-29.3 0 0 18.2 28.3 0 0 13.8-28.3 0 0 22.2 29.3 0 0 13.8-45.3 0 0-82zm-68.7 0l21.9 55.2 22.2-55.2 17.5 0-35.5 84.2-8.6 0-35-84.2 17.5 0zm-55.9 86.2a44.6 44.6 0 1 1 0-89.2 44.6 44.6 0 1 1 0 89.2zm-49.3-83.1l0 19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2l0 19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253l-23.4 0 0-82 23.4 0c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0l-16 0 0-82 16 0 0 82zM544 433c0 8.2-6.8 15-15 15l-401 0c189.6-35.6 382.7-139.2 416-160l0 145zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6l-4.2 0 0 54.2 4.2 0c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"]\n};\nvar faSafari = {\n prefix: 'fab',\n iconName: 'safari',\n icon: [512, 512, [], \"f267\", \"M274.7 274.7L237.3 237.3 166 346 274.7 274.7zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM411.8 182.8l14.8-6.1c1-.4 2-.6 3.1-.6s2.1 .2 3.1 .6 1.8 1 2.6 1.7 1.3 1.6 1.7 2.6 .6 2 .6 3.1-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.3-2.6 1.7L418 197.6c-2 .8-4.2 .8-6.1 0s-3.5-2.4-4.3-4.3-.8-4.2 0-6.1 2.4-3.5 4.3-4.3zM314.4 94l6.1-14.8c.8-2 2.4-3.5 4.3-4.3s4.2-.8 6.1 0 3.5 2.4 4.3 4.3 .8 4.2 0 6.1l-6.1 14.8c-.8 2-2.4 3.5-4.3 4.3s-4.2 .8-6.1 0c-1-.4-1.9-1-2.6-1.7s-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1zM256 60c2.1 0 4.2 .8 5.7 2.3S264 65.9 264 68l0 16c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7l0-16c0-2.1 .8-4.2 2.3-5.7S253.9 60 256 60zM181 74.9c1-.4 2-.6 3.1-.6s2.1 .2 3.1 .6 1.9 1 2.6 1.7 1.3 1.6 1.7 2.6L197.6 94c.4 1 .7 2 .7 3.1s-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.4-2.6 1.8-2 .6-3.1 .6-2.1-.2-3.1-.6-1.9-1-2.6-1.8-1.3-1.7-1.7-2.7l-6.1-14.8c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3zm-63.6 42.5c1.5-1.5 3.5-2.3 5.7-2.3s4.2 .8 5.7 2.3L140 128.7c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3l-11.3-11.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6l0 0zM60 256c0-2.1 .8-4.2 2.3-5.7S65.9 248 68 248l16 0c2.1 0 4.2 .8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3l-16 0c-2.1 0-4.2-.8-5.7-2.3S60 258.1 60 256zm40.2 73.2l-14.8 6.1c-1 .4-2 .6-3.1 .6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1 1-1.9 1.7-2.6 1.6-1.3 2.6-1.7L94 314.4c2-.8 4.2-.8 6.1 0s3.5 2.4 4.3 4.3 .8 4.2 0 6.1-2.4 3.5-4.3 4.3zm4.3-136c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1 .6-2.1-.2-3.1-.6l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1 2.4-3.5 4.3-4.3 4.2-.8 6.1 0l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1l0 0zM197.6 418l-6.1 14.8c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1 .6-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1l6.1-14.8c.4-1 1-1.9 1.7-2.7s1.6-1.4 2.6-1.8 2-.6 3.1-.6 2.1 .2 3.1 .6 1.9 1 2.6 1.8 1.3 1.7 1.7 2.6 .6 2 .6 3.1-.2 2.1-.7 3.1zM264 444c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7l0-16c0-2.1 .8-4.2 2.3-5.7s3.5-2.3 5.7-2.3 4.2 .8 5.7 2.3 2.3 3.5 2.3 5.7l0 16zm67-6.9c-1 .4-2 .6-3.1 .6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6L314.4 418c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3 4.2-.8 6.1 0 3.5 2.4 4.3 4.3l6.1 14.8c.8 2 .8 4.2 0 6.1s-2.4 3.5-4.3 4.3zm63.6-42.5c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3L372 383.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6 3.5-2.3 5.7-2.3 4.2 .8 5.7 2.3l11.3 11.3c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6l0 0zM286.2 286.2L110.3 401.7 225.8 225.8 401.7 110.3 286.2 286.2zM437.1 331c-.8 2-2.4 3.5-4.3 4.3s-4.2 .8-6.1 0l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1c.4-1 1-1.9 1.7-2.6s1.6-1.3 2.6-1.7 2-.6 3.1-.6 2.1 .2 3.1 .6l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1zm6.9-67l-16 0c-2.1 0-4.2-.8-5.7-2.3s-2.3-3.5-2.3-5.7 .8-4.2 2.3-5.7 3.5-2.3 5.7-2.3l16 0c2.1 0 4.2 .8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3z\"]\n};\nvar faSpaceAwesome = {\n prefix: 'fab',\n iconName: 'space-awesome',\n icon: [512, 512, [], \"e5ac\", \"M96 256l32 0 0 256-128 0 0-160 32 0 0-32 32 0 0-32 32 0 0-32zm416 96l0 160-128 0 0-256 32 0 0 32 32 0 0 32 32 0 0 32 32 0zM320 64l32 0 0 384-32 0 0-32-128 0 0 32-32 0 0-384 32 0 0-32 32 0 0-32 64 0 0 32 32 0 0 32zm-32 64l-64 0 0 64 64 0 0-64z\"]\n};\nvar faNode = {\n prefix: 'fab',\n iconName: 'node',\n icon: [640, 512, [], \"f419\", \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4 .1l14.8 8.8c.5 .3 1.3 .3 1.8 0L375 408c.5-.3 .9-.9 .9-1.6l0-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6 .3-.9 1-.9 1.6l0 66.7c0 .6 .4 1.2 .9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8l0-65.9c0-.9 .7-1.7 1.7-1.7l7.3 0c.9 0 1.7 .7 1.7 1.7l0 65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5l0-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5l0 66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zM363 386.2c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6 .2 .8 .8 1.3 1.6 1.3l7.5 0c.5 0 .9-.2 1.2-.5 .3-.4 .5-.8 .4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4l-7.5 0c-.9 0-1.7 .7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3s4.2 9.4 9.3 9.4c5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2l-2.6 0c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1l-2.2 0 0 5-2.4 0 0-12.5 4.3 0c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7 .1 1.8 1.2 2.1 2.8 .1 1 .3 2.7 .6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7l-2 0 0 3.5 1.9 0c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4L72.3 149.3c-1-.6-2.2-.9-3.4-1l-.6 0c-1.2 0-2.3 .4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3 .7 2.5 1.8 3.2s2.5 .7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4l0-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1s2.6 .3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4l0 44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1 .7 2.6 .7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3l0 176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4l0-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2l0-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6 .3-.9 .9-.9 1.6l0 24.3c0 .7 .4 1.3 .9 1.6l21 12.1c.6 .3 1.3 .3 1.8 0l21-12.1c.6-.3 .9-.9 .9-1.6l0-24.3 .1 0zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4l0-17.1c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4l0 70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2l0-22.2c0-1.3 .7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0L592.1 213c1.1 .7 1.9 1.9 1.9 3.2l0 17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4 .3-.7 .7-.7 1.2l0 13.6c0 .5 .3 1 .7 1.2l11.8 6.8c.4 .3 1 .3 1.4 0L584 235c.4-.3 .7-.7 .7-1.2l0-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zM304.8 262.5l0-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4l0 70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7 .1-.5 .2-1.1 .2-1.7zM230.5 137.6l-.8 .5 1.1 0-.3-.5zm76.2 130.2l-.4-.7 0 .9 .4-.2z\"]\n};\nvar faCodepen = {\n prefix: 'fab',\n iconName: 'codepen',\n icon: [512, 512, [], \"f1cb\", \"M502.3 159.7l-234-156c-8-4.9-16.5-5-24.6 0l-234 156c-6 4-9.7 11.1-9.7 18.3L0 334c0 7.1 3.7 14.3 9.7 18.3l234 156c8 4.9 16.5 5 24.6 0l234-156c6-4 9.7-11.1 9.7-18.3l0-156c0-7.1-3.7-14.3-9.7-18.3zM278 63.1l172.3 114.9-76.9 51.4-95.4-63.7 0-102.6zm-44 0L234 165.7 138.6 229.4 61.7 178 234 63.1zM44 219.1L99.1 256 44 292.8 44 219.1zM234 448.8L61.7 334 138.6 282.6 234 346.3 234 448.8zM256 308l-77.7-52 77.7-52 77.7 52-77.7 52zm22 140.9l0-102.6 95.4-63.7 76.9 51.4-172.3 114.9zm190-156l-55.1-36.9 55.1-36.9 0 73.7z\"]\n};\nvar faRavelry = {\n prefix: 'fab',\n iconName: 'ravelry',\n icon: [512, 512, [], \"f2d9\", \"M498.6 234.2c-1.2-10.3-1.7-20.8-3.7-31-2.5-12.4-5.7-24.6-9.6-36.6-6.8-20.9-17.2-40.3-30.9-57.5-5.9-7.6-12.1-14.8-18.8-21.7-14.1-14-30-26.1-47.1-36.1-17.8-10.6-36.8-18.9-56.7-24.7-11-3.1-22.3-5.4-33.5-7.6-6.8-1.3-13.7-1.7-20.6-2.5-.3 0-.6-.4-.9-.6-10.8 0-21.5 0-32.3 0-2.4 .4-4.8 .9-7.2 1.2-11.6 1.2-23.1 3.6-34.3 7.1-13.8 4.1-27.1 9.6-39.8 16.4-13.3 7-26.1 15.1-38.1 24.2-6.2 4.6-12.3 9.4-18 14.5-10.2 9.2-20.4 18.4-29.9 28.3-12.8 13.3-24.1 28.1-33.6 44-8.6 14-15.5 29-20.5 44.6-7.2 22.7-10.3 46.6-9.2 70.3 .6 13.5 2 26.9 4.4 40.2 3.4 18.4 9 36.3 16.7 53.3 13.6 29.2 32.1 51.5 50.4 67.9 12.8 11.6 26.8 21.9 41.8 30.6 17.7 10.4 36.4 18.9 55.9 25.3 13.3 4.3 26.9 7.6 40.6 9.8 6.1 1 12.3 1.3 18.4 1.9 .4 .1 .8 .3 1.2 .6l32.3 0c2.5-.4 5-.9 7.5-1.1 16.3-1.3 32.1-5.3 47.5-10.7 17.2-5.9 33.7-13.9 49-23.8 9.7-6.4 19.4-13.1 28.7-20.1 5.8-4.3 11-9.5 16.3-14.5 4-3.7 7.8-7.6 11.5-11.5 12-12.7 22.6-26.6 31.4-41.6 9.5-16 17.4-32.9 22.3-50.9 2.9-10.4 4.9-21 7-31.7 1-5.3 1.3-10.7 1.9-16.1 0-.3 .4-.6 .6-.9l0-37.1c-.2-.6-.4-1.2-.6-1.8zm-161.1-1.2s-16.6-3-28.5-3c-27.2 0-33.6 14.9-33.6 37l0 93.7-73.5 0 0-190.7 73.5 0 0 31.9c8.9-26.8 26.8-36.2 62-36.2l0 67.3z\"]\n};\nvar faAlipay = {\n prefix: 'fab',\n iconName: 'alipay',\n icon: [448, 512, [], \"f642\", \"M377.7 32L70.3 32C31.4 32 0 63.4 0 102.3L0 409.7C0 448.6 31.4 480 70.3 480l307.5 0c38.5 0 69.8-31.1 70.3-69.6-46-25.6-110.6-60.3-171.6-88.4-32.1 44-84.1 81-148.6 81-70.6 0-93.7-45.3-97-76.4-4-39 14.9-81.5 99.5-81.5 35.4 0 79.4 10.2 127.1 25 16.5-30.1 26.5-60.3 26.5-60.3l-178.2 0 0-16.7 92.1 0 0-31.2-109.4 0 0-19 109.4 0 0-50.4 50.9 0 0 50.4 109.4 0 0 19-109.4 0 0 31.2 88.8 0s-15.2 46.6-38.3 90.9c48.9 16.7 100 36 148.6 52.7l0-234.4c.2-38.7-31.2-70.3-69.9-70.3zM47.3 323c1 20.2 10.2 53.7 69.9 53.7 52.1 0 92.6-39.7 117.9-72.9-44.6-18.7-84.5-31.4-109.4-31.4-67.4 0-79.4 33.1-78.4 50.6z\"]\n};\nvar faCcAmex = {\n prefix: 'fab',\n iconName: 'cc-amex',\n icon: [576, 512, [], \"f1f3\", \"M0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-1.1-61.7 0-31.9-35.1-31.9 35.1-203.7 0 0-163.8-65.8 0 81.7-184.7 78.6 0 28.1 63.2 0-63.2 97.2 0 16.9 47.6 17-47.6 75.5 0 0-2.4c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432zm440.4-21.7l42.2-46.3 42 46.3 51.4 0-68-72.1 68-72.1-50.6 0-42 46.7-41.5-46.7-51.4 0 67.5 72.5-67.4 71.6 0-33.1-83 0 0-22.2 80.9 0 0-32.3-80.9 0 0-22.4 83 0 0-33.1-122 0 0 143.2 171.8 0zm96.3-72l39.3 41.9 0-83.3-39.3 41.4zm-36.3-92l36.9-100.6 0 100.6 38.7 0 0-143.3-60.2 0-32.2 89.3-31.9-89.3-61.2 0 0 143.1-63.2-143.1-51.2 0-62.4 143.3 43 0 11.9-28.7 65.9 0 12 28.7 82.7 0 0-100.3 36.8 100.3 34.4 0zM282 185.4l19.5-46.9 19.4 46.9-38.9 0z\"]\n};\nvar faPiedPiperAlt = {\n prefix: 'fab',\n iconName: 'pied-piper-alt',\n icon: [576, 512, [], \"f1a8\", \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9 27.7-5.7zM379.9 443.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7 6.1-12.6 11.8-25.8 12.4-39.9l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3 0-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3 .9 .6-.6 .3-1.4zM496.3 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9 .6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zM300.1 428.2l0 27.2 11.8-3.4-2.9-23.8-8.9 0zM231.4 277.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"]\n};\nvar faLetterboxd = {\n prefix: 'fab',\n iconName: 'letterboxd',\n icon: [640, 512, [], \"e62d\", \"M521.3 128C586.9 128 640 181.1 640 246.6S586.9 365.2 521.3 365.2c-42.5 0-79.7-22.3-100.7-55.8 11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l.8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8 11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l.8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z\"]\n};\nvar faOpera = {\n prefix: 'fab',\n iconName: 'opera',\n icon: [512, 512, [], \"f26a\", \"M321.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3-131.5-6.1-236.1-114.6-236.1-247.7 0-137 111-248 248-248l.8 0c63.1 .3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zM423.7 430.4c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"]\n};\nvar faWeibo = {\n prefix: 'fab',\n iconName: 'weibo',\n icon: [512, 512, [], \"f18a\", \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7c-106.3 0-214.8-51.4-214.8-136.3 0-44.3 28-95.4 76.3-143.7 99.7-99.7 203.2-100.9 173.6-5.7-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zM358.5 300.4c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8 .3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4 .6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"]\n};\nvar faReadme = {\n prefix: 'fab',\n iconName: 'readme',\n icon: [576, 512, [], \"f4d5\", \"M528.3 46.5l-139.8 0c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3L48 46.5C21.5 46.5 0 68 0 94.5L0 340.3c0 26.5 21.5 48 48 48l89.7 0c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75l89.7 0c26.5 0 48-21.5 48-48l0-245.7c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zM501.3 311.8c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.8c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.8-.1 0z\"]\n};\nvar faGolang = {\n prefix: 'fab',\n iconName: 'golang',\n icon: [640, 512, [], \"e40f\", \"M400.1 194.8c-10.9 2.8-19.9 4.3-29.1 7.6-7.3 1.9-14.7 3.9-23.2 6.1l-.6 .1c-4.2 1.2-4.6 1.3-8.5-3.2-4.7-5.3-8.1-8.7-14.6-11.9-19.7-9.6-38.7-6.8-56.4 4.7-21.2 13.7-32.1 34-31.8 59.2 .3 25 17.4 45.5 41.2 48.9 22 2.8 39.8-4.6 53.8-20.5 2.1-2.6 4-5.3 6.1-8.3 .8-1 1.5-2.1 2.3-3.3l-60.1 0c-6.5 0-8.1-4-5.9-9.3 4-9.7 11.5-25.9 15.9-34 .9-1.8 3.1-5.8 6.9-5.8l101.1 0c4.5-13.4 11.8-26.9 21.6-39.7 22.7-29.9 49.3-45.5 87.2-52 31.8-5.6 61.7-2.5 88.9 15.9 24.6 16.8 39.8 39.6 43.9 69.5 5.3 42.1-6.9 76.3-36.7 105.6-19.7 20.9-44.9 34-73.9 39.9-5.6 1-11.1 1.5-16.5 2-2.9 .2-5.7 .5-8.5 .8-28.3-.6-54.2-8.7-76-27.4-15.3-13.3-25.9-29.6-31.1-48.5-3.7 7.3-8 14.4-14 21.1-21.6 29.6-50.9 48-87.9 52.9-30.6 4.1-58.9-1.8-83.9-20.5-23-17.5-36.1-40.5-39.5-69.2-4.1-34 5.9-65.4 26.4-91.3 22.2-29 51.5-47.4 87.3-53.9 29.3-6.2 57.3-1.9 82.6 15.3 16.5 10.9 28.3 25.8 36.1 43.9 1.9 2.8 .6 4.4-3.1 5.3zM48.3 200.4c-1.3 0-1.6-.6-.9-1.6l6.6-8.4c.6-.9 2.2-1.5 3.4-1.5l111.3 0c1.2 0 1.5 .9 .9 1.8l-5.3 8.1c-.6 1-2.2 1.9-3.1 1.9l-112.8-.3zM1.2 229.1c-1.2 0-1.6-.7-.9-1.6l6.5-8.4c.6-.9 2.2-1.6 3.4-1.6l142.1 0c1.2 0 1.8 1 1.5 1.9l-2.5 7.5c-.3 1.2-1.5 1.9-2.8 1.9L1.2 229.1zm74.5 26.8c-.6 .9-.3 1.8 .9 1.8l68 .3c.9 0 2.2-.9 2.2-2.1l.6-7.5c0-1.3-.6-2.2-1.9-2.2l-62.3 0c-1.2 0-2.5 .9-3.1 1.9l-4.4 7.8zm501.5-18c-.2-2.6-.3-4.8-.7-7-5.6-30.8-34-48.3-63.6-41.4-29 6.5-47.7 24.9-54.5 54.2-5.6 24.3 6.2 48.9 28.6 58.9 17.2 7.5 34.3 6.6 50.8-1.9 24.6-13.6 38-32.7 39.6-59.5-.1-1.2-.1-2.3-.2-3.3z\"]\n};\nvar faStackExchange = {\n prefix: 'fab',\n iconName: 'stack-exchange',\n icon: [448, 512, [], \"f18d\", \"M18.1 332.3l412.7 0 0 22c0 37.7-29.3 68-65.3 68l-19 0-86.8 89.7 0-89.7-176.3 0c-36 0-65.3-30.3-65.3-68l0-22zm0-23.6l412.7 0 0-85-412.7 0 0 85zm0-109.4l412.7 0 0-85-412.7 0 0 85zM365.4 0L83.4 0c-36 0-65.3 30.3-65.3 67.7l0 22.3 412.7 0 0-22.3C430.7 30.3 401.4 0 365.4 0z\"]\n};\nvar faGulp = {\n prefix: 'fab',\n iconName: 'gulp',\n icon: [256, 512, [], \"f3ae\", \"M210 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zM14 137.8L27.6 263.3c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7 .9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3 .2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5 .9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9 .1-1.8 .3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6 .8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5 .6 .2 1.1 .4 1.6 .7 2.6 1.8 1.6 4.5 .3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3 .5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4 .5 3.2 1.5 1.7 2.2 1.3 4.5 .4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9 .9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2 .4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3 .5-.4 .9-.6 .6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3 .8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7 .2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3 .9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3 .2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8 .1 26.3 .4L167 65.1 228.3 .6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1 .1-57.3 60.5-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2 .8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2 .1-.3l.2-.7c-1.8 .6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7 .1 13.9-1.6 13.9-3.7z\"]\n};\nvar faYelp = {\n prefix: 'fab',\n iconName: 'yelp',\n icon: [384, 512, [], \"f1e9\", \"M42.9 240.3l99.6 48.6c19.2 9.4 16.2 37.5-4.5 42.7L30.5 358.5c-3.2 .8-6.4 .9-9.6 .3s-6.2-1.8-8.9-3.7-4.9-4.3-6.6-7.1-2.7-5.9-3.1-9.2c-3.3-28.8-.2-57.9 9-85.3 1-3.1 2.7-5.9 4.9-8.3s4.9-4.2 7.9-5.5 6.2-1.8 9.5-1.8 6.4 .9 9.3 2.3zm44 239.3c23.8 16.3 50.9 27.3 79.4 32.1 3.2 .6 6.5 .4 9.6-.4s6.1-2.3 8.6-4.4 4.6-4.6 6-7.5 2.3-6.1 2.4-9.4l3.9-110.8c.7-21.3-25.5-31.9-39.8-16.1L82.8 445.5c-2.2 2.4-3.8 5.3-4.8 8.4s-1.3 6.4-.9 9.6 1.5 6.3 3.1 9.1 3.9 5.2 6.6 7l0 0zM232.2 369.7l58.8 94c1.7 2.8 4 5.1 6.8 6.9s5.8 3 9 3.5 6.5 .3 9.7-.5 6.1-2.4 8.6-4.4c22.3-18.4 40.3-41.5 52.7-67.6 1.4-2.9 2.1-6.1 2.2-9.4s-.6-6.5-1.9-9.4-3.2-5.7-5.6-7.8-5.2-3.9-8.3-4.9L258.7 335.7c-20.3-6.5-37.8 15.8-26.5 33.9zM380.6 237.4c-11.5-26.5-28.7-50.2-50.4-69.3-2.4-2.1-5.3-3.7-8.4-4.7s-6.4-1.2-9.6-.8-6.3 1.5-9.1 3.2-5.1 4-6.9 6.7l-62 91.9c-11.9 17.7 4.7 40.6 25.2 34.7L366 268.6c3.1-.9 6-2.5 8.5-4.6s4.5-4.7 5.8-7.7 2.1-6.2 2.2-9.4-.6-6.5-1.9-9.5l0 0zM62.1 30.2c-2.8 1.4-5.4 3.3-7.4 5.7s-3.6 5.2-4.5 8.2-1.2 6.2-.9 9.3 1.3 6.1 2.9 8.9L156.3 242.6c11.7 20.2 42.6 11.9 42.6-11.4l0-208.3c0-3.1-.6-6.3-1.8-9.2s-3.1-5.5-5.4-7.6-5-3.8-8-4.8-6.1-1.4-9.3-1.2c-39 3.1-77 13.3-112.3 30.1z\"]\n};\nvar faGofore = {\n prefix: 'fab',\n iconName: 'gofore',\n icon: [448, 512, [], \"f3a7\", \"M348 319.8l-13.2 0 0 34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3c-41.8-42.3-97.1-65.6-156.1-65.6-122.7 0-220.7 100.6-220.7 224 0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zM335.9 207.3l-106.3 0 0 89 118.4 0c33.5 0 60.5 15.1 76 41.8l0-30.6c0-65.2-40.4-100.2-88.1-100.2z\"]\n};\nvar faAviato = {\n prefix: 'fab',\n iconName: 'aviato',\n icon: [640, 512, [], \"f421\", \"M107.2 283.5l-19-41.8-52.1 0-19 41.8-17.1 0 62.2-131.4 62.2 131.4-17.2 0zm-45-98.1l-19.6 42.5 39.2 0-19.6-42.5zM174.9 287.8l-62.2-131.4 17.1 0 45.1 96 45.1-96 17 0-62.1 131.4zm80.6-4.3l0-127.1 15.5 0 0 127.1-15.5 0zM464.6 167.9l0 115.6-17.3 0 0-115.6-41.2 0 0-11.5 99.6 0 0 11.5-41.1 0zM640 218.8c0 9.2-1.7 17.8-5.1 25.8s-8.2 15.1-14.2 21.1-13.1 10.8-21.1 14.2-16.6 5.1-25.8 5.1-17.8-1.7-25.8-5.1-15.1-8.2-21.1-14.2-10.8-13-14.2-21.1c-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8 8.2-15.1 14.2-21.1 13-8.4 21.1-11.9c8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1 15.1 5.8 21.1 11.9c6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3s-6.2-11.7-10.8-16.3-10-8.2-16.2-10.9-12.8-4-19.8-4-13.6 1.3-19.8 4-11.6 6.3-16.2 10.9-8.2 10-10.8 16.3-3.9 13.1-3.9 20.3c0 7.3 1.3 14 3.9 20.3s6.2 11.7 10.8 16.3 10 8.2 16.2 10.9 12.8 4 19.8 4 13.6-1.3 19.8-4 11.6-6.3 16.2-10.9 8.2-10 10.8-16.3 3.9-13.1 3.9-20.3zm-94.8 96.7l0-6.3 88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2 .3-2 .5-4.2 .6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3 23.8 0 19 41.8 17.1 0-62.2-131.4-62.2 131.4 17.1 0 19-41.8 23.6 0-1.1 26.4s-22.7 6.5-25.5 23.7c-.1 .3-.1 .7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3 .3 4.4 .6 6.5 .3 2.6 .8 5 1.4 7.2l-242.9-13.5 88.9 10 0 6.3c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4s12.4-5.6 12.4-12.4c0-6.2-4.6-11.3-10.5-12.2l0-5.8 80.3 9 0 5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2s12.4-3.4 12.4-10.2c0-6-4.3-11-9.9-12.1l0-4.9 28.4 3.2 0 23.7-5.9 0 0 13.9 5.9 0 0-6.6 5 0 0 6.6 5.9 0 0-13.8-5.9 0 0-23.2 38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1 .2-.1 12.1 4.1 0 .1-5 5.2 0 .1 5 4.1 0-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3 0 23.2-5.9 0 0 13.8 5.9 0 0-6.6 5 0 0 6.6 5.9 0 0-13.8-5.9 0 0-23.7 28.4-3.2 0 4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2s12.4-3.4 12.4-10.2c0-6-4.3-11-9.9-12.1l0-5.4 80.3-9 0 5.8c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4s12.4-5.6 12.4-12.4c-.2-6.3-4.7-11.4-10.7-12.3zM328.9 227.9l19.6-42.5 19.6 42.5-17.9 0-1.7-40.3-1.7 40.3-17.9 0z\"]\n};\nvar faPadlet = {\n prefix: 'fab',\n iconName: 'padlet',\n icon: [640, 512, [], \"e4a0\", \"M297.9 0l.1 0c7.6 .1 14.4 4.7 17.5 11.8l132 308.5 .3-.1 .2 .4-2.8 10-42.9 158c-3.7 16.2-19.7 26.3-35.8 22.6l-68.4-15.6-68.5 15.6c-16.1 3.7-32.1-6.4-35.8-22.6l-42.9-158-2.7-10 .1-.4 132.1-308.4c3-7 9.9-11.6 17.5-11.8zM160.1 322.1l131 39.1 6.9 122.5 7.9-121.5 130.6-39.3 .2-.1-131 25.1-8.6-320.2-5.2 320.2-131.8-25.8zM426 222.6l94.4-41 73.8 0-157 247.6 31.6-109-42.8-97.6zm171.5-41.2l41.4 76.2c4 7.5-3.9 15.9-11.6 12.2l-47.6-22.7 17.8-65.7zM127.3 318.5L158.7 430 1.6 154.5c-5.9-10.4 5.5-22 15.9-16.2l151.8 84.2-42.1 96z\"]\n};\nvar faEdgeLegacy = {\n prefix: 'fab',\n iconName: 'edge-legacy',\n icon: [448, 512, [], \"e078\", \"M-6 228.2l.4-.5c0 .2 0 .3-.1 .5l-.3 0zm460.6 15.5c0-44-7.8-84.5-28.8-122.4-41-73.4-113.6-113.3-198.6-113.3-139.9-.3-218.3 105.2-232.8 219.7 42.4-61.3 117.1-121.4 220.4-125 0 0 109.7 0 99.4 105l-175.8 0c6.4-37.4 18.5-59 34.3-78.9-75 34.9-121.8 96.1-120.8 188.3 .8 71.5 50.1 144.8 120.8 172 83.4 31.8 192.8 7.2 240.1-21.3l0-104.4c-80.9 56.5-270.9 60.9-272.3-67.6l314.1 0 0-52.1z\"]\n};\nvar faSquareLastfm = {\n prefix: 'fab',\n iconName: 'square-lastfm',\n icon: [448, 512, [\"lastfm-square\"], \"f203\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9-12.9-41.9-21-68.4-58-68.4-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 67.9 0 79.3 35.3 96.4 88.4 1.4 4.4 2.9 8.9 4.4 13.5 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-17.5-16.9-21.2-40-26.4-3.2-.7-6.5-1.4-9.9-2.2-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 2.2 .5 4.5 1 6.7 1.4 31.1 6.5 65.1 13.7 65.1 56.1 .1 36.7-30.7 50.6-76.1 50.6-63.4 0-85.4-28.6-97.1-64.1z\"]\n};\nvar faLastfmSquare = faSquareLastfm;\nvar faGoodreadsG = {\n prefix: 'fab',\n iconName: 'goodreads-g',\n icon: [320, 512, [], \"f3a9\", \"M10.8 403.3l2.8 0c12.7 0 25.5 0 38.2 .1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5 .1-5.8 .3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7 20.6-71.1 74.6-118.2 153.9-118.8 61.3-.4 101.5 38.7 116.2 70.3 .5 1.1 1.3 2.3 2.4 1.9l0-61.6 44.3 0c0 280.3 .1 332.2 .1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM157.1 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"]\n};\nvar faCcMastercard = {\n prefix: 'fab',\n iconName: 'cc-mastercard',\n icon: [576, 512, [], \"f1f1\", \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7s4.4-11.7 11.2-11.7c6.6 0 11.2 5.2 11.2 11.7zM172.1 398.6c-7.1 0-11.2 5.2-11.2 11.7S165 422 172.1 422c6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7l19.1 0c-.9-5.7-4.4-8.7-9.6-8.7zm107.8 .3c-6.8 0-10.9 5.2-10.9 11.7s4.1 11.7 10.9 11.7 11.2-4.9 11.2-11.7c0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3 .3 .5 .3 1.1 0 .3-.3 .5-.3 1.1-.3 .3-.3 .5-.5 .8-.3 .3-.5 .5-1.1 .5-.3 .3-.5 .3-1.1 .3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8 .3-1.1 0-.5 .3-.8 .5-1.1 .3-.3 .5-.3 .8-.5 .5-.3 .8-.3 1.1-.3 .5 0 .8 0 1.1 .3 .5 .3 .8 .3 1.1 .5s.2 .6 .5 1.1zm-2.2 1.4c.5 0 .5-.3 .8-.3 .3-.3 .3-.5 .3-.8s0-.5-.3-.8c-.3 0-.5-.3-1.1-.3l-1.6 0 0 3.5 .8 0 0-1.4 .3 0 1.1 1.4 .8 0-1.1-1.3zM576 81l0 352c0 26.5-21.5 48-48 48L48 481c-26.5 0-48-21.5-48-48L0 81C0 54.5 21.5 33 48 33l480 0c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zM288 329.4c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zM145.7 405.7c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4l0-4.4-8.2 0 0 36.7 8.2 0c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2l7.9 0c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2l8.2 0 0-23-.2 0zM190.6 392l-7.9 0 0 4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4l0 4.6 7.9 0 0-36.8zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7 .8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1l0-16.6 13.1 0 0-7.4-13.1 0 0-11.2-8.2 0 0 11.2-7.6 0 0 7.3 7.6 0 0 16.7c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4l27.5 0c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zM338.9 392c-4.6-2-11.6-1.8-15.2 4.4l0-4.4-8.2 0 0 36.7 8.2 0 0-20.7c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zM416.2 392l-8.2 0 0 4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9l0 4.6 8.2 0 0-36.8zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4l0-4.4-7.9 0 0 36.7 7.9 0 0-20.7c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9l-7.9 0 0 19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9l0 4.6 7.9 0 0-51.7zm7.6-75.1l0 4.6 .8 0 0-4.6 1.9 0 0-.8-4.6 0 0 .8 1.9 0zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1s-.8-.5-1.1-.8c-.5 0-1.1-.3-1.6-.3-.3 0-.8 .3-1.4 .3-.5 .3-.8 .5-1.1 .8-.5 .3-.8 .8-.8 1.1-.3 .5-.3 1.1-.3 1.6 0 .3 0 .8 .3 1.4 0 .3 .3 .8 .8 1.1 .3 .3 .5 .5 1.1 .8 .5 .3 1.1 .3 1.4 .3 .5 0 1.1 0 1.6-.3 .3-.3 .8-.5 1.1-.8s.5-.8 .8-1.1c.3-.6 .3-1.1 .3-1.4zm3.2-124.7l-1.4 0-1.6 3.5-1.6-3.5-1.4 0 0 5.4 .8 0 0-4.1 1.6 3.5 1.1 0 1.4-3.5 0 4.1 1.1 0 0-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4 .1 138.5-61.9 138.5-138.4z\"]\n};\nvar faDiscourse = {\n prefix: 'fab',\n iconName: 'discourse',\n icon: [448, 512, [], \"f393\", \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2C348.6 479.8 448 377.5 448 255.9S348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392 111.4 317c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"]\n};\nvar faBlackTie = {\n prefix: 'fab',\n iconName: 'black-tie',\n icon: [448, 512, [], \"f27e\", \"M0 32l0 448 448 0 0-448-448 0zM316.5 357.2l-92.5 88.7-92.5-88.7 64.5-184-64.5-86.6 184.9 0-64.4 86.6 64.5 184z\"]\n};\nvar faSquareFacebook = {\n prefix: 'fab',\n iconName: 'square-facebook',\n icon: [448, 512, [\"facebook-square\"], \"f082\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l98.2 0 0-145.8-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 145.8 129 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faFacebookSquare = faSquareFacebook;\nvar faBattleNet = {\n prefix: 'fab',\n iconName: 'battle-net',\n icon: [512, 512, [], \"f835\", \"M448.8 225.6c26.9 .2 35.6-7.4 38.9-12.4 12.5-16.3-7.1-47.6-52.8-71.3 17.8-33.6 30.1-63.7 36.3-85.3 3.4-11.8 1.1-19 .5-20.3-1.7 10.5-15.8 48.5-48.2 100-25-11.2-56.5-20.1-93.8-23.8-8.9-16.9-34.9-63.9-60.5-88.9-16.8-16.5-30.3-22.6-40.8-23.5l0 0c-13.8-1.6-22.7 5.8-27.4 11-17.2 18.5-24.3 48.9-25 84.1-7.2-12.3-17.2-24.6-28.5-25.9l-.2 0c-20.7-3.5-38.4 29.2-36 81.3-38.4 1.4-71 5.8-93 11.2-9.9 2.4-16.2 7.3-17.8 9.7 1-.4 22.4-9.2 111.6-9.2 5.2 53 29.8 101.8 26 93.2-9.7 15.4-38.2 62.4-47.3 97.7-5.9 22.9-4.4 37.6 .2 47.1 5.6 12.8 16.4 16.7 23.2 18.3 25 5.7 55.4-3.6 86.7-21.1-7.5 12.8-13.9 28.5-9.1 39.3 7.3 19.6 44.5 18.7 88.4-9.4 20.2 32.2 40.1 57.9 55.7 74.1 2.6 2.8 5.5 5.2 8.8 7.1 5.1 3.2 8.6 3.4 8.6 3.4-8.2-6.7-34-38-62.5-91.8 22.2-16 45.7-38.9 67.5-69.3 122.8 4.6 143.3-24.8 148-31.6 14.7-19.9 3.4-57.4-57.3-93.7zM371 331.8c23.8-37.7 30.3-67.8 29.4-92.3 27.9 17.6 47.2 37.6 49.1 58.8 1.1 12.9-8.1 29.1-78.5 33.5zM217.1 387.7c9.8-6.2 19.5-13.1 29.2-20.5 6.7 13.3 13.6 26.1 20.6 38.2-40.6 21.9-68.8 12.8-49.8-17.7zm215-171.3c-10.3-5.3-21.2-10.3-32.4-15 7.9-12.1 15.5-24.4 22.7-36.9 39.1 24.1 45.9 53.2 9.6 51.9zM279.4 398c-5.5-11.4-11-23.5-16.5-36.4 43.2 1.3 62.4-18.7 63.3-20.4 0 .1-25 15.6-62.5 12.2 30.6-25.6 59.1-53.7 85.1-84 8.7-10.2 17-20.6 24.9-31.1-.4-.3-1.5-3-16.5-12-51.7 60.3-102.3 98-132.8 115.9-20.6-11.2-40.8-31.8-55.7-61.5-20-39.9-30-82.4-31.6-116.1 12.3 .9 25.3 2.2 38.8 3.9-22.3 36.8-14.4 63-13.5 64.2 0-.1-1-29.2 20.1-59.6 9 52.5 24 103.8 44.7 152.8 .9-.4 1.8 .9 18.7-8.2-26.3-74.5-33.8-138.2-34-173.4 20-12.4 48.2-19.8 81.6-17.8 44.6 2.7 86.4 15.2 116.3 30.7-7.1 10.4-14.9 21.3-23.3 32.5-20.7-37.7-47.3-43.9-48.9-43.7 .1 0 25.9 14.1 41.5 47.2-37.5-13.8-76.1-24.4-115.3-31.7-13.1-2.4-26.2-4.4-39.4-6-.1 .4-1.8 1.8-2.2 20.3 77.9 14.5 136.6 39.9 167.2 57.2 .7 23.6-7 51.6-25.4 79.6-24.6 37.3-56.4 67.2-84.8 85.4zm27.4-287c-44.6-1.7-73.6 7.4-94.7 20.7 2-52.3 21.3-76.4 38.2-75.3 16.9-4.2 54.9 52.2 56.5 54.6zm-130.7 3.1c.5 12.1 1.6 24.6 3.2 37.3-14.6-.9-28.7-1.3-42.4-1.3-.1 3.2-.1-51 24.7-49.6l.1 0c5.8 1.1 10.6 6.9 14.4 13.6zm-28.1 162c20.8 39.7 43.3 60.6 65.3 72.3-46.8 24.8-77.5 20-84.9 4.5-.2-.2-11.1-15.3 19.7-76.8l0 0z\"]\n};\nvar faBimobject = {\n prefix: 'fab',\n iconName: 'bimobject',\n icon: [448, 512, [], \"f378\", \"M416 32L32 32C14.4 32 0 46.4 0 64L0 448c0 17.6 14.4 32 32 32l384 0c17.6 0 32-14.4 32-32l0-384c0-17.6-14.4-32-32-32zM352 289.4c0 49.4-11.4 82.6-103.8 82.6l-16.9 0c-44.1 0-62.4-14.9-70.4-38.8l-.9 0 0 34.8-64 0 0-232 64 0 0 74.7 1.1 0c4.6-30.5 39.7-38.8 69.7-38.8l17.3 0c92.4 0 103.8 33.1 103.8 82.5l0 35 .1 0zm-64-28.9l0 22.9c0 21.7-3.4 33.8-38.4 33.8l-45.3 0c-28.9 0-44.1-6.5-44.1-35.7l0-19c0-29.3 15.2-35.7 44.1-35.7l45.3 0c35-.2 38.4 12 38.4 33.7z\"]\n};\nvar faSvelte = {\n prefix: 'fab',\n iconName: 'svelte',\n icon: [448, 512, [], \"e868\", \"M202.1 26.4c66.8-42.6 159.3-22.7 206.1 44.3 11.1 15.5 19 33.1 23.2 51.8s4.7 37.9 1.3 56.7c-3.2 18-10.1 35.1-20.1 50.3 14.6 27.9 19.6 60 14 91-3.3 18.4-10.4 36-20.9 51.5s-24.1 28.7-39.9 38.7L248.3 485.6c-66.8 42.6-159.3 22.7-206.1-44.2-11.1-15.5-19-33.2-23.2-51.8s-4.7-37.9-1.3-56.7c3.2-18 10.1-35.1 20.1-50.3-14.7-27.9-19.6-60-14-91.1 3.3-18.4 10.4-36 20.9-51.5s24.1-28.7 39.9-38.7L202.1 26.4zM315.6 67.2c-17.9-6.6-37.4-7.6-55.9-2.8-8.4 2.3-16.5 5.8-23.8 10.5L118.5 149.7c-9.5 6-17.7 13.9-24 23.3S84 192.8 82 203.9c-2 11.3-1.7 22.9 .8 34.1s7.3 21.8 13.9 31.2c10.9 15.7 26.3 27.6 44.2 34.3s37.4 7.6 55.9 2.8c8.4-2.3 16.5-5.8 23.8-10.5l44.8-28.6c2.2-1.4 4.7-2.5 7.2-3.2 5.6-1.4 11.4-1.2 16.8 .8s10 5.6 13.3 10.3c2 2.8 3.5 6 4.2 9.4s.9 6.9 .3 10.3c-.6 3.3-1.9 6.5-3.8 9.3-1.9 2.8-4.4 5.2-7.2 7L178.8 386.1c-2.2 1.4-4.7 2.5-7.2 3.2-5.6 1.4-11.4 1.2-16.8-.8s-10-5.6-13.3-10.3c-3.6-5.1-5.3-11.2-4.7-17.4l.4-4.4-4.3-1.3c-16.5-5-32.1-12.7-45.9-22.9l-6-4.4-2.2 6.7c-1.2 3.6-2.1 7.3-2.8 11-2 11.3-1.7 22.9 .8 34.1s7.3 21.8 13.9 31.1c10.9 15.7 26.3 27.6 44.2 34.3s37.4 7.6 55.8 2.8c8.4-2.3 16.5-5.8 23.9-10.5l117.3-74.8c9.5-6 17.7-13.9 24-23.3s10.6-19.9 12.6-31c2-11.3 1.8-22.9-.8-34.1s-7.3-21.8-14-31.1c-10.9-15.7-26.3-27.6-44.2-34.3s-37.4-7.6-55.9-2.8c-8.4 2.3-16.5 5.8-23.8 10.5L185 244.8c-2.2 1.4-4.6 2.5-7.2 3.2-5.6 1.4-11.5 1.2-16.8-.8s-10-5.6-13.3-10.3c-2-2.8-3.4-6-4.2-9.4s-.9-6.9-.2-10.3c.6-3.3 1.9-6.5 3.8-9.3s4.4-5.2 7.2-7l117.4-74.8c2.2-1.4 4.7-2.5 7.2-3.2 5.6-1.4 11.4-1.1 16.8 .9s10 5.6 13.3 10.3c3.6 5.1 5.2 11.3 4.7 17.4l-.4 4.4 4.4 1.3c16.5 5 32 12.8 45.9 23l6 4.4 2.2-6.8c1.2-3.6 2.1-7.3 2.8-11 2-11.3 1.8-22.9-.8-34.1s-7.3-21.8-14-31.1c-10.9-15.7-26.3-27.6-44.2-34.3z\"]\n};\nvar faSquareDeskpro = {\n prefix: 'fab',\n iconName: 'square-deskpro',\n icon: [448, 512, [], \"e844\", \"M408.8 32C430.4 32 448 49.6 448 71.2l0 369.6c0 21.6-17.6 39.2-39.2 39.2L39.2 480C17.6 480 0 462.4 0 440.8L0 71.2C0 49.6 17.6 32 39.2 32l369.6 0zM110.9 274.1l0 114.4 89.1-.1c20.6 0 39.4-3.2 56.3-9.5s31.3-15.4 43.2-27c12.2-11.9 21.6-26 28.2-42.1 4.6-11.1 7.7-23 9.2-35.7l-43.8 0c-1.1 6.4-2.8 12.4-5.1 18.2-4.2 10.9-10.3 20.3-18.2 28.2-7.9 7.7-17.4 13.7-28.6 17.9-11.1 4.3-23.5 6.4-37.3 6.4l-50 0 0-70.6-43 .1zm0-151.4l0 114.4 43-.1 0-70.7 50 0c13.7 0 26.2 2.1 37.3 6.4 11.1 4.3 20.6 10.3 28.6 18.3 7.9 7.7 14 17.1 18.2 28.2 2.3 5.6 4 11.5 5.1 17.8l43.9 .1c-1.4-12.6-4.4-24.4-8.9-35.3-6.6-16.4-16-30.5-28.1-42.2-12.1-11.9-26.7-21.1-43.6-27.5-16.9-6.4-35.7-9.5-56.3-9.5l-89 .1z\"]\n};\nvar faTailwindCss = {\n prefix: 'fab',\n iconName: 'tailwind-css',\n icon: [640, 512, [], \"e866\", \"M320 64c-85.3 0-138.7 42.7-160 128 32-42.7 69.3-58.7 112-48 24.3 6.1 41.7 23.8 61 43.3 31.4 31.8 67.7 68.7 147 68.7 85.3 0 138.7-42.7 160-128-32 42.7-69.3 58.7-112 48-24.3-6.1-41.7-23.8-61-43.3-31.4-31.8-67.7-68.7-147-68.7zM160 256c-85.3 0-138.7 42.7-160 128 32-42.7 69.3-58.7 112-48 24.3 6.1 41.7 23.8 61 43.3 31.4 31.8 67.7 68.7 147 68.7 85.3 0 138.7-42.7 160-128-32 42.7-69.3 58.7-112 48-24.3-6.1-41.7-23.8-61-43.3-31.4-31.8-67.7-68.7-147-68.7z\"]\n};\nvar icons = {\n faSquareGithub: faSquareGithub,\n faGithubSquare: faGithubSquare,\n faThinkPeaks: faThinkPeaks,\n faGoogleDrive: faGoogleDrive,\n faAutoprefixer: faAutoprefixer,\n faSquareViadeo: faSquareViadeo,\n faViadeoSquare: faViadeoSquare,\n faCpanel: faCpanel,\n faMendeley: faMendeley,\n faDraft2digital: faDraft2digital,\n faReplyd: faReplyd,\n faEmpire: faEmpire,\n faAccessibleIcon: faAccessibleIcon,\n faQuora: faQuora,\n faCcJcb: faCcJcb,\n faFedora: faFedora,\n faDuolingo: faDuolingo,\n faFirstdraft: faFirstdraft,\n faFreebsd: faFreebsd,\n faOdysee: faOdysee,\n faGgCircle: faGgCircle,\n faCloudflare: faCloudflare,\n faHackerrank: faHackerrank,\n faSkyatlas: faSkyatlas,\n faDeskpro: faDeskpro,\n faResolving: faResolving,\n faBlackberry: faBlackberry,\n faStripeS: faStripeS,\n faSquareBehance: faSquareBehance,\n faBehanceSquare: faBehanceSquare,\n faServicestack: faServicestack,\n faRocketchat: faRocketchat,\n faRebel: faRebel,\n faSquareWebAwesome: faSquareWebAwesome,\n faLinktree: faLinktree,\n faSimplybuilt: faSimplybuilt,\n faStubber: faStubber,\n faApper: faApper,\n faGoogleScholar: faGoogleScholar,\n faYarn: faYarn,\n faStackOverflow: faStackOverflow,\n faBluetooth: faBluetooth,\n faCreativeCommonsNcJp: faCreativeCommonsNcJp,\n faReddit: faReddit,\n faConnectdevelop: faConnectdevelop,\n faResearchgate: faResearchgate,\n faSignalMessenger: faSignalMessenger,\n faXing: faXing,\n faSquareJs: faSquareJs,\n faJsSquare: faJsSquare,\n faFonticons: faFonticons,\n faUps: faUps,\n faAmazonPay: faAmazonPay,\n faPandora: faPandora,\n faOpenid: faOpenid,\n faVsco: faVsco,\n faGlobaleaks: faGlobaleaks,\n faVenmo: faVenmo,\n faUbuntu: faUbuntu,\n faViacoin: faViacoin,\n faZhihu: faZhihu,\n faYandex: faYandex,\n faPixiv: faPixiv,\n faOpenai: faOpenai,\n faSith: faSith,\n faJulia: faJulia,\n faNfcDirectional: faNfcDirectional,\n faCreativeCommonsBy: faCreativeCommonsBy,\n faUmbraco: faUmbraco,\n faHooli: faHooli,\n faSquareGit: faSquareGit,\n faGitSquare: faGitSquare,\n faOdnoklassniki: faOdnoklassniki,\n faDrupal: faDrupal,\n faBloggerB: faBloggerB,\n faInvision: faInvision,\n faFacebookF: faFacebookF,\n faCentos: faCentos,\n faScaleway: faScaleway,\n faCcAmazonPay: faCcAmazonPay,\n faEbay: faEbay,\n faContao: faContao,\n faEllo: faEllo,\n faSistrix: faSistrix,\n faPeriscope: faPeriscope,\n faExpeditedssl: faExpeditedssl,\n faNapster: faNapster,\n faDelicious: faDelicious,\n faGuilded: faGuilded,\n faObsidian: faObsidian,\n faXbox: faXbox,\n faUntappd: faUntappd,\n faGooglePlusG: faGooglePlusG,\n faGithubAlt: faGithubAlt,\n faGetPocket: faGetPocket,\n faGlide: faGlide,\n faBity: faBity,\n faWpexplorer: faWpexplorer,\n faMegaport: faMegaport,\n faLeetcode: faLeetcode,\n faMdb: faMdb,\n faPage4: faPage4,\n faTheRedYeti: faTheRedYeti,\n faJira: faJira,\n faFedex: faFedex,\n faEvernote: faEvernote,\n faUsb: faUsb,\n faAngrycreative: faAngrycreative,\n faMizuni: faMizuni,\n faItchIo: faItchIo,\n faWindows: faWindows,\n faStumbleupon: faStumbleupon,\n faGoogle: faGoogle,\n faDiscord: faDiscord,\n faHackerNews: faHackerNews,\n faEleventy: faEleventy,\n fa11ty: fa11ty,\n faTeamspeak: faTeamspeak,\n faSupple: faSupple,\n faSquareTwitter: faSquareTwitter,\n faTwitterSquare: faTwitterSquare,\n faVim: faVim,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faWirsindhandwerk: faWirsindhandwerk,\n faWsh: faWsh,\n faZoom: faZoom,\n faConfluence: faConfluence,\n faDigg: faDigg,\n faThreads: faThreads,\n faWpressr: faWpressr,\n faRendact: faRendact,\n faYoast: faYoast,\n faNimblr: faNimblr,\n faPixelfed: faPixelfed,\n faYahoo: faYahoo,\n faBluesky: faBluesky,\n faScribd: faScribd,\n faCreativeCommonsPd: faCreativeCommonsPd,\n faEarlybirds: faEarlybirds,\n faSymfonycasts: faSymfonycasts,\n faSquareOdnoklassniki: faSquareOdnoklassniki,\n faOdnoklassnikiSquare: faOdnoklassnikiSquare,\n faMarkdown: faMarkdown,\n faTypo3: faTypo3,\n faJoomla: faJoomla,\n faWeixin: faWeixin,\n faGrunt: faGrunt,\n faSupportnow: faSupportnow,\n faRockrms: faRockrms,\n faUnsplash: faUnsplash,\n faSquareInstagram: faSquareInstagram,\n faInstagramSquare: faInstagramSquare,\n faFirstOrderAlt: faFirstOrderAlt,\n faFulcrum: faFulcrum,\n faArchLinux: faArchLinux,\n faFediverse: faFediverse,\n faBraveReverse: faBraveReverse,\n faAvianex: faAvianex,\n faNs8: faNs8,\n faSquarePinterest: faSquarePinterest,\n faPinterestSquare: faPinterestSquare,\n faBluetoothB: faBluetoothB,\n faGripfire: faGripfire,\n faSquareGooglePlus: faSquareGooglePlus,\n faGooglePlusSquare: faGooglePlusSquare,\n faGitee: faGitee,\n faXmpp: faXmpp,\n faAppStore: faAppStore,\n faWix: faWix,\n faIntercom: faIntercom,\n faReacteurope: faReacteurope,\n faWaze: faWaze,\n faCreativeCommonsRemix: faCreativeCommonsRemix,\n faBandcamp: faBandcamp,\n faSquareWebAwesomeStroke: faSquareWebAwesomeStroke,\n faVimeoV: faVimeoV,\n faStrava: faStrava,\n faUniregistry: faUniregistry,\n faCcDinersClub: faCcDinersClub,\n faKubernetes: faKubernetes,\n faPinterest: faPinterest,\n faAlgolia: faAlgolia,\n faStackpath: faStackpath,\n faOctopusDeploy: faOctopusDeploy,\n faYammer: faYammer,\n faModx: faModx,\n faSquareThreads: faSquareThreads,\n faOldRepublic: faOldRepublic,\n faSuse: faSuse,\n faAppStoreIos: faAppStoreIos,\n faUltralyticsYolo: faUltralyticsYolo,\n faSquareDribbble: faSquareDribbble,\n faDribbbleSquare: faDribbbleSquare,\n faUikit: faUikit,\n faSuperpowers: faSuperpowers,\n faYoutube: faYoutube,\n faEmber: faEmber,\n faBootstrap: faBootstrap,\n faItunes: faItunes,\n faSquareXing: faSquareXing,\n faXingSquare: faXingSquare,\n faCss3Alt: faCss3Alt,\n faSquarespace: faSquarespace,\n faTrello: faTrello,\n faViadeo: faViadeo,\n faSearchengin: faSearchengin,\n faUnrealEngine: faUnrealEngine,\n faPaypal: faPaypal,\n faSquareBluesky: faSquareBluesky,\n faDAndDBeyond: faDAndDBeyond,\n faMicrosoft: faMicrosoft,\n faFly: faFly,\n faCcStripe: faCcStripe,\n faWordpressSimple: faWordpressSimple,\n faSellsy: faSellsy,\n faDashcube: faDashcube,\n faGitter: faGitter,\n faWolfPackBattalion: faWolfPackBattalion,\n faLastfm: faLastfm,\n faShopware: faShopware,\n faBlogger: faBlogger,\n faEdge: faEdge,\n faIoxhost: faIoxhost,\n faSchlix: faSchlix,\n faDAndD: faDAndD,\n faVuejs: faVuejs,\n faMeta: faMeta,\n faCreativeCommonsShare: faCreativeCommonsShare,\n faStudiovinari: faStudiovinari,\n faBitbucket: faBitbucket,\n faVk: faVk,\n faGithub: faGithub,\n faCodiepie: faCodiepie,\n faPiedPiper: faPiedPiper,\n faRaspberryPi: faRaspberryPi,\n faCss3: faCss3,\n faHubspot: faHubspot,\n faCmplid: faCmplid,\n faDyalog: faDyalog,\n faElementor: faElementor,\n faFirstOrder: faFirstOrder,\n faDribbble: faDribbble,\n faLinkedin: faLinkedin,\n faCcPaypal: faCcPaypal,\n faDhl: faDhl,\n faTex: faTex,\n faClaude: faClaude,\n faShopify: faShopify,\n faSquareReddit: faSquareReddit,\n faRedditSquare: faRedditSquare,\n faCreativeCommonsNc: faCreativeCommonsNc,\n faGalacticRepublic: faGalacticRepublic,\n faFacebook: faFacebook,\n faGitlab: faGitlab,\n faQq: faQq,\n faStripe: faStripe,\n faDailymotion: faDailymotion,\n faSteam: faSteam,\n faVenmoV: faVenmoV,\n faSnapchat: faSnapchat,\n faSnapchatGhost: faSnapchatGhost,\n faGalacticSenate: faGalacticSenate,\n faPhoenixFramework: faPhoenixFramework,\n faGit: faGit,\n faOptinMonster: faOptinMonster,\n faJenkins: faJenkins,\n faSlideshare: faSlideshare,\n faUber: faUber,\n faDigitalOcean: faDigitalOcean,\n faSoundcloud: faSoundcloud,\n faSquareFigma: faSquareFigma,\n faCreativeCommonsSa: faCreativeCommonsSa,\n faChrome: faChrome,\n faTradeFederation: faTradeFederation,\n faVaadin: faVaadin,\n faDeviantart: faDeviantart,\n faMedium: faMedium,\n faMediumM: faMediumM,\n faOpencart: faOpencart,\n faYCombinator: faYCombinator,\n faLine: faLine,\n faAmilia: faAmilia,\n faAsymmetrik: faAsymmetrik,\n faPhabricator: faPhabricator,\n faBots: faBots,\n faVine: faVine,\n faMedrt: faMedrt,\n faOsi: faOsi,\n faGg: faGg,\n faBuysellads: faBuysellads,\n faGooglePlus: faGooglePlus,\n faScreenpal: faScreenpal,\n faBitcoin: faBitcoin,\n faSwift: faSwift,\n faFilesPinwheel: faFilesPinwheel,\n faLaravel: faLaravel,\n faWpforms: faWpforms,\n faSpeakerDeck: faSpeakerDeck,\n faFlickr: faFlickr,\n faCcVisa: faCcVisa,\n faUpwork: faUpwork,\n faKakaoTalk: faKakaoTalk,\n faFlutter: faFlutter,\n faBuffer: faBuffer,\n faGratipay: faGratipay,\n faGooglePay: faGooglePay,\n faApple: faApple,\n faTumblr: faTumblr,\n faPhoenixSquadron: faPhoenixSquadron,\n faCentercode: faCentercode,\n faDebian: faDebian,\n faMastodon: faMastodon,\n faSketch: faSketch,\n faWebAwesome: faWebAwesome,\n faSass: faSass,\n faThreema: faThreema,\n faSquareWhatsapp: faSquareWhatsapp,\n faWhatsappSquare: faWhatsappSquare,\n faSkype: faSkype,\n faAngular: faAngular,\n faCircleZulip: faCircleZulip,\n faOpensuse: faOpensuse,\n faDropbox: faDropbox,\n faDeezer: faDeezer,\n faCreativeCommonsSampling: faCreativeCommonsSampling,\n faJediOrder: faJediOrder,\n faRProject: faRProject,\n faInstalod: faInstalod,\n faCanadianMapleLeaf: faCanadianMapleLeaf,\n faEthereum: faEthereum,\n faHouzz: faHouzz,\n faViber: faViber,\n faKickstarter: faKickstarter,\n faSquareKickstarter: faSquareKickstarter,\n faSpotify: faSpotify,\n faLeanpub: faLeanpub,\n faJava: faJava,\n faNfcSymbol: faNfcSymbol,\n faWodu: faWodu,\n faSquareSteam: faSquareSteam,\n faSteamSquare: faSteamSquare,\n faCreativeCommonsNcEu: faCreativeCommonsNcEu,\n faNpm: faNpm,\n faCloudscale: faCloudscale,\n faThemeco: faThemeco,\n faGooglePlay: faGooglePlay,\n faKorvue: faKorvue,\n faW3c: faW3c,\n faGrav: faGrav,\n faAws: faAws,\n faGlideG: faGlideG,\n faJsfiddle: faJsfiddle,\n faKeybase: faKeybase,\n faLumonDrop: faLumonDrop,\n faForgejo: faForgejo,\n faPostgresql: faPostgresql,\n faWeebly: faWeebly,\n faDocker: faDocker,\n faMagento: faMagento,\n faTorBrowser: faTorBrowser,\n faGitAlt: faGitAlt,\n faFirefoxBrowser: faFirefoxBrowser,\n faCloudsmith: faCloudsmith,\n faWizardsOfTheCoast: faWizardsOfTheCoast,\n faCreativeCommonsNd: faCreativeCommonsNd,\n faUsps: faUsps,\n faSquareLetterboxd: faSquareLetterboxd,\n faMandalorian: faMandalorian,\n faSlack: faSlack,\n faSlackHash: faSlackHash,\n faAngellist: faAngellist,\n faAndroid: faAndroid,\n faMeetup: faMeetup,\n faFonticonsFi: faFonticonsFi,\n faPalfed: faPalfed,\n faWpbeginner: faWpbeginner,\n faDiaspora: faDiaspora,\n faProductHunt: faProductHunt,\n faSquareUpwork: faSquareUpwork,\n faCuttlefish: faCuttlefish,\n faMedapps: faMedapps,\n faPix: faPix,\n faSquareTumblr: faSquareTumblr,\n faTumblrSquare: faTumblrSquare,\n faReact: faReact,\n faHuggingFace: faHuggingFace,\n faJxl: faJxl,\n faSquareLinkedin: faSquareLinkedin,\n faCss: faCss,\n faHashnode: faHashnode,\n faRedditAlien: faRedditAlien,\n faTiktok: faTiktok,\n faWordpress: faWordpress,\n faIdeal: faIdeal,\n faPiedPiperPp: faPiedPiperPp,\n faUssunnah: faUssunnah,\n faFortAwesomeAlt: faFortAwesomeAlt,\n faBuromobelexperte: faBuromobelexperte,\n faBilibili: faBilibili,\n faNeos: faNeos,\n faDev: faDev,\n faHotjar: faHotjar,\n faDochub: faDochub,\n faVimeo: faVimeo,\n faMaxcdn: faMaxcdn,\n faSquareFontAwesomeStroke: faSquareFontAwesomeStroke,\n faFontAwesomeAlt: faFontAwesomeAlt,\n faSpeakap: faSpeakap,\n faFantasyFlightGames: faFantasyFlightGames,\n faLinux: faLinux,\n faCottonBureau: faCottonBureau,\n faGoogleWallet: faGoogleWallet,\n faFoursquare: faFoursquare,\n faShirtsinbulk: faShirtsinbulk,\n faMintbit: faMintbit,\n faZulip: faZulip,\n faStaylinked: faStaylinked,\n faWebflow: faWebflow,\n faRenren: faRenren,\n faKoFi: faKoFi,\n faRev: faRev,\n faKeycdn: faKeycdn,\n faHireAHelper: faHireAHelper,\n faSquareHackerNews: faSquareHackerNews,\n faHackerNewsSquare: faHackerNewsSquare,\n faCreativeCommonsPdAlt: faCreativeCommonsPdAlt,\n faOrcid: faOrcid,\n faBoardGameGeek: faBoardGameGeek,\n faBgg: faBgg,\n faBehance: faBehance,\n faMonero: faMonero,\n faFigma: faFigma,\n faInstagram: faInstagram,\n faPerbyte: faPerbyte,\n faSquareVimeo: faSquareVimeo,\n faVimeoSquare: faVimeoSquare,\n faPushed: faPushed,\n faMixcloud: faMixcloud,\n faYandexInternational: faYandexInternational,\n faHive: faHive,\n faCreativeCommonsZero: faCreativeCommonsZero,\n faSquareSnapchat: faSquareSnapchat,\n faSnapchatSquare: faSnapchatSquare,\n faThemeisle: faThemeisle,\n faDartLang: faDartLang,\n faDeploydog: faDeploydog,\n faFlipboard: faFlipboard,\n faBuyNLarge: faBuyNLarge,\n faWatchmanMonitoring: faWatchmanMonitoring,\n faHips: faHips,\n faCloudversify: faCloudversify,\n faGoodreads: faGoodreads,\n faTidal: faTidal,\n faUnity: faUnity,\n faTencentWeibo: faTencentWeibo,\n faFreeCodeCamp: faFreeCodeCamp,\n faXTwitter: faXTwitter,\n faStickerMule: faStickerMule,\n faTwitch: faTwitch,\n faKickstarterK: faKickstarterK,\n faCriticalRole: faCriticalRole,\n faSteamSymbol: faSteamSymbol,\n faMailchimp: faMailchimp,\n faLumon: faLumon,\n faNutritionix: faNutritionix,\n faCreativeCommonsSamplingPlus: faCreativeCommonsSamplingPlus,\n faRedhat: faRedhat,\n faSquarePiedPiper: faSquarePiedPiper,\n faPiedPiperSquare: faPiedPiperSquare,\n faWhatsapp: faWhatsapp,\n faImdb: faImdb,\n faPython: faPython,\n faCashApp: faCashApp,\n faPinterestP: faPinterestP,\n faWhmcs: faWhmcs,\n faJoget: faJoget,\n faSquareYoutube: faSquareYoutube,\n faYoutubeSquare: faYoutubeSquare,\n faAtlassian: faAtlassian,\n faPiedPiperHat: faPiedPiperHat,\n faInternetExplorer: faInternetExplorer,\n faAirbnb: faAirbnb,\n faJs: faJs,\n faQuinscape: faQuinscape,\n faAdversal: faAdversal,\n faCreativeCommons: faCreativeCommons,\n faNotion: faNotion,\n faChromecast: faChromecast,\n faUltralyticsHub: faUltralyticsHub,\n faWikipediaW: faWikipediaW,\n faSitrox: faSitrox,\n faSquareGitlab: faSquareGitlab,\n faGitlabSquare: faGitlabSquare,\n faShoelace: faShoelace,\n faOpenstreetmap: faOpenstreetmap,\n faSellcast: faSellcast,\n faMix: faMix,\n faCcApplePay: faCcApplePay,\n faSolana: faSolana,\n faTypescript: faTypescript,\n faBrave: faBrave,\n faEtsy: faEtsy,\n faBtc: faBtc,\n faAdn: faAdn,\n faSquareXTwitter: faSquareXTwitter,\n faSquareFontAwesome: faSquareFontAwesome,\n faForumbee: faForumbee,\n fa42Group: fa42Group,\n faInnosoft: faInnosoft,\n faStumbleuponCircle: faStumbleuponCircle,\n faSymfony: faSymfony,\n faSalesforce: faSalesforce,\n faSourcetree: faSourcetree,\n faLinkedinIn: faLinkedinIn,\n faHtml5: faHtml5,\n faRust: faRust,\n faHornbill: faHornbill,\n faPhp: faPhp,\n faDisqus: faDisqus,\n fa500px: fa500px,\n faAffiliatetheme: faAffiliatetheme,\n faRedRiver: faRedRiver,\n faTwitter: faTwitter,\n faFortAwesome: faFortAwesome,\n faMixer: faMixer,\n faLyft: faLyft,\n faApplePay: faApplePay,\n faArtstation: faArtstation,\n faNodeJs: faNodeJs,\n faUncharted: faUncharted,\n faPlaystation: faPlaystation,\n faMicroblog: faMicroblog,\n faGitkraken: faGitkraken,\n faTelegram: faTelegram,\n faTelegramPlane: faTelegramPlane,\n faUltralytics: faUltralytics,\n faItunesNote: faItunesNote,\n faLess: faLess,\n faFirefox: faFirefox,\n faKaggle: faKaggle,\n faFacebookMessenger: faFacebookMessenger,\n faAudible: faAudible,\n faPatreon: faPatreon,\n faVnv: faVnv,\n faPagelines: faPagelines,\n faAmazon: faAmazon,\n faEnvira: faEnvira,\n faLinode: faLinode,\n faAccusoft: faAccusoft,\n faErlang: faErlang,\n faUnison: faUnison,\n faCcDiscover: faCcDiscover,\n faSafari: faSafari,\n faSpaceAwesome: faSpaceAwesome,\n faNode: faNode,\n faCodepen: faCodepen,\n faRavelry: faRavelry,\n faAlipay: faAlipay,\n faCcAmex: faCcAmex,\n faPiedPiperAlt: faPiedPiperAlt,\n faLetterboxd: faLetterboxd,\n faOpera: faOpera,\n faWeibo: faWeibo,\n faReadme: faReadme,\n faGolang: faGolang,\n faStackExchange: faStackExchange,\n faGulp: faGulp,\n faYelp: faYelp,\n faGofore: faGofore,\n faAviato: faAviato,\n faPadlet: faPadlet,\n faEdgeLegacy: faEdgeLegacy,\n faSquareLastfm: faSquareLastfm,\n faLastfmSquare: faLastfmSquare,\n faGoodreadsG: faGoodreadsG,\n faCcMastercard: faCcMastercard,\n faDiscourse: faDiscourse,\n faBlackTie: faBlackTie,\n faSquareFacebook: faSquareFacebook,\n faFacebookSquare: faFacebookSquare,\n faBattleNet: faBattleNet,\n faBimobject: faBimobject,\n faSvelte: faSvelte,\n faSquareDeskpro: faSquareDeskpro,\n faTailwindCss: faTailwindCss\n};\n\nexport { icons as fab, prefix, faSquareGithub, faGithubSquare, faThinkPeaks, faGoogleDrive, faAutoprefixer, faSquareViadeo, faViadeoSquare, faCpanel, faMendeley, faDraft2digital, faReplyd, faEmpire, faAccessibleIcon, faQuora, faCcJcb, faFedora, faDuolingo, faFirstdraft, faFreebsd, faOdysee, faGgCircle, faCloudflare, faHackerrank, faSkyatlas, faDeskpro, faResolving, faBlackberry, faStripeS, faSquareBehance, faBehanceSquare, faServicestack, faRocketchat, faRebel, faSquareWebAwesome, faLinktree, faSimplybuilt, faStubber, faApper, faGoogleScholar, faYarn, faStackOverflow, faBluetooth, faCreativeCommonsNcJp, faReddit, faConnectdevelop, faResearchgate, faSignalMessenger, faXing, faSquareJs, faJsSquare, faFonticons, faUps, faAmazonPay, faPandora, faOpenid, faVsco, faGlobaleaks, faVenmo, faUbuntu, faViacoin, faZhihu, faYandex, faPixiv, faOpenai, faSith, faJulia, faNfcDirectional, faCreativeCommonsBy, faUmbraco, faHooli, faSquareGit, faGitSquare, faOdnoklassniki, faDrupal, faBloggerB, faInvision, faFacebookF, faCentos, faScaleway, faCcAmazonPay, faEbay, faContao, faEllo, faSistrix, faPeriscope, faExpeditedssl, faNapster, faDelicious, faGuilded, faObsidian, faXbox, faUntappd, faGooglePlusG, faGithubAlt, faGetPocket, faGlide, faBity, faWpexplorer, faMegaport, faLeetcode, faMdb, faPage4, faTheRedYeti, faJira, faFedex, faEvernote, faUsb, faAngrycreative, faMizuni, faItchIo, faWindows, faStumbleupon, faGoogle, faDiscord, faHackerNews, faEleventy, fa11ty, faTeamspeak, faSupple, faSquareTwitter, faTwitterSquare, faVim, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faWirsindhandwerk, faWsh, faZoom, faConfluence, faDigg, faThreads, faWpressr, faRendact, faYoast, faNimblr, faPixelfed, faYahoo, faBluesky, faScribd, faCreativeCommonsPd, faEarlybirds, faSymfonycasts, faSquareOdnoklassniki, faOdnoklassnikiSquare, faMarkdown, faTypo3, faJoomla, faWeixin, faGrunt, faSupportnow, faRockrms, faUnsplash, faSquareInstagram, faInstagramSquare, faFirstOrderAlt, faFulcrum, faArchLinux, faFediverse, faBraveReverse, faAvianex, faNs8, faSquarePinterest, faPinterestSquare, faBluetoothB, faGripfire, faSquareGooglePlus, faGooglePlusSquare, faGitee, faXmpp, faAppStore, faWix, faIntercom, faReacteurope, faWaze, faCreativeCommonsRemix, faBandcamp, faSquareWebAwesomeStroke, faVimeoV, faStrava, faUniregistry, faCcDinersClub, faKubernetes, faPinterest, faAlgolia, faStackpath, faOctopusDeploy, faYammer, faModx, faSquareThreads, faOldRepublic, faSuse, faAppStoreIos, faUltralyticsYolo, faSquareDribbble, faDribbbleSquare, faUikit, faSuperpowers, faYoutube, faEmber, faBootstrap, faItunes, faSquareXing, faXingSquare, faCss3Alt, faSquarespace, faTrello, faViadeo, faSearchengin, faUnrealEngine, faPaypal, faSquareBluesky, faDAndDBeyond, faMicrosoft, faFly, faCcStripe, faWordpressSimple, faSellsy, faDashcube, faGitter, faWolfPackBattalion, faLastfm, faShopware, faBlogger, faEdge, faIoxhost, faSchlix, faDAndD, faVuejs, faMeta, faCreativeCommonsShare, faStudiovinari, faBitbucket, faVk, faGithub, faCodiepie, faPiedPiper, faRaspberryPi, faCss3, faHubspot, faCmplid, faDyalog, faElementor, faFirstOrder, faDribbble, faLinkedin, faCcPaypal, faDhl, faTex, faClaude, faShopify, faSquareReddit, faRedditSquare, faCreativeCommonsNc, faGalacticRepublic, faFacebook, faGitlab, faQq, faStripe, faDailymotion, faSteam, faVenmoV, faSnapchat, faSnapchatGhost, faGalacticSenate, faPhoenixFramework, faGit, faOptinMonster, faJenkins, faSlideshare, faUber, faDigitalOcean, faSoundcloud, faSquareFigma, faCreativeCommonsSa, faChrome, faTradeFederation, faVaadin, faDeviantart, faMedium, faMediumM, faOpencart, faYCombinator, faLine, faAmilia, faAsymmetrik, faPhabricator, faBots, faVine, faMedrt, faOsi, faGg, faBuysellads, faGooglePlus, faScreenpal, faBitcoin, faSwift, faFilesPinwheel, faLaravel, faWpforms, faSpeakerDeck, faFlickr, faCcVisa, faUpwork, faKakaoTalk, faFlutter, faBuffer, faGratipay, faGooglePay, faApple, faTumblr, faPhoenixSquadron, faCentercode, faDebian, faMastodon, faSketch, faWebAwesome, faSass, faThreema, faSquareWhatsapp, faWhatsappSquare, faSkype, faAngular, faCircleZulip, faOpensuse, faDropbox, faDeezer, faCreativeCommonsSampling, faJediOrder, faRProject, faInstalod, faCanadianMapleLeaf, faEthereum, faHouzz, faViber, faKickstarter, faSquareKickstarter, faSpotify, faLeanpub, faJava, faNfcSymbol, faWodu, faSquareSteam, faSteamSquare, faCreativeCommonsNcEu, faNpm, faCloudscale, faThemeco, faGooglePlay, faKorvue, faW3c, faGrav, faAws, faGlideG, faJsfiddle, faKeybase, faLumonDrop, faForgejo, faPostgresql, faWeebly, faDocker, faMagento, faTorBrowser, faGitAlt, faFirefoxBrowser, faCloudsmith, faWizardsOfTheCoast, faCreativeCommonsNd, faUsps, faSquareLetterboxd, faMandalorian, faSlack, faSlackHash, faAngellist, faAndroid, faMeetup, faFonticonsFi, faPalfed, faWpbeginner, faDiaspora, faProductHunt, faSquareUpwork, faCuttlefish, faMedapps, faPix, faSquareTumblr, faTumblrSquare, faReact, faHuggingFace, faJxl, faSquareLinkedin, faCss, faHashnode, faRedditAlien, faTiktok, faWordpress, faIdeal, faPiedPiperPp, faUssunnah, faFortAwesomeAlt, faBuromobelexperte, faBilibili, faNeos, faDev, faHotjar, faDochub, faVimeo, faMaxcdn, faSquareFontAwesomeStroke, faFontAwesomeAlt, faSpeakap, faFantasyFlightGames, faLinux, faCottonBureau, faGoogleWallet, faFoursquare, faShirtsinbulk, faMintbit, faZulip, faStaylinked, faWebflow, faRenren, faKoFi, faRev, faKeycdn, faHireAHelper, faSquareHackerNews, faHackerNewsSquare, faCreativeCommonsPdAlt, faOrcid, faBoardGameGeek, faBgg, faBehance, faMonero, faFigma, faInstagram, faPerbyte, faSquareVimeo, faVimeoSquare, faPushed, faMixcloud, faYandexInternational, faHive, faCreativeCommonsZero, faSquareSnapchat, faSnapchatSquare, faThemeisle, faDartLang, faDeploydog, faFlipboard, faBuyNLarge, faWatchmanMonitoring, faHips, faCloudversify, faGoodreads, faTidal, faUnity, faTencentWeibo, faFreeCodeCamp, faXTwitter, faStickerMule, faTwitch, faKickstarterK, faCriticalRole, faSteamSymbol, faMailchimp, faLumon, faNutritionix, faCreativeCommonsSamplingPlus, faRedhat, faSquarePiedPiper, faPiedPiperSquare, faWhatsapp, faImdb, faPython, faCashApp, faPinterestP, faWhmcs, faJoget, faSquareYoutube, faYoutubeSquare, faAtlassian, faPiedPiperHat, faInternetExplorer, faAirbnb, faJs, faQuinscape, faAdversal, faCreativeCommons, faNotion, faChromecast, faUltralyticsHub, faWikipediaW, faSitrox, faSquareGitlab, faGitlabSquare, faShoelace, faOpenstreetmap, faSellcast, faMix, faCcApplePay, faSolana, faTypescript, faBrave, faEtsy, faBtc, faAdn, faSquareXTwitter, faSquareFontAwesome, faForumbee, fa42Group, faInnosoft, faStumbleuponCircle, faSymfony, faSalesforce, faSourcetree, faLinkedinIn, faHtml5, faRust, faHornbill, faPhp, faDisqus, fa500px, faAffiliatetheme, faRedRiver, faTwitter, faFortAwesome, faMixer, faLyft, faApplePay, faArtstation, faNodeJs, faUncharted, faPlaystation, faMicroblog, faGitkraken, faTelegram, faTelegramPlane, faUltralytics, faItunesNote, faLess, faFirefox, faKaggle, faFacebookMessenger, faAudible, faPatreon, faVnv, faPagelines, faAmazon, faEnvira, faLinode, faAccusoft, faErlang, faUnison, faCcDiscover, faSafari, faSpaceAwesome, faNode, faCodepen, faRavelry, faAlipay, faCcAmex, faPiedPiperAlt, faLetterboxd, faOpera, faWeibo, faReadme, faGolang, faStackExchange, faGulp, faYelp, faGofore, faAviato, faPadlet, faEdgeLegacy, faSquareLastfm, faLastfmSquare, faGoodreadsG, faCcMastercard, faDiscourse, faBlackTie, faSquareFacebook, faFacebookSquare, faBattleNet, faBimobject, faSvelte, faSquareDeskpro, faTailwindCss };\n", "/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\nvar prefix = \"far\";\nvar faSquareMinus = {\n prefix: 'far',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM136 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faCalendarCheck = {\n prefix: 'far',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M328 0c13.3 0 24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24zM64 112c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 112zm230.7 65.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 374.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"]\n};\nvar faFaceKiss = {\n prefix: 'far',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm240 0l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-48a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faKiss = faFaceKiss;\nvar faPaste = {\n prefix: 'far',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M64 48l224 0c8.8 0 16 7.2 16 16l0 48 48 0 0-48c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-48-112 0c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zm176 72c0-13.3-10.7-24-24-24L104 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l105.6 0c8.8-8.6 19-15.8 30.2-21.1 .1-.9 .2-1.9 .2-2.9zM448 464l-160 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l101.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L464 448c0 8.8-7.2 16-16 16zM224 224l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160c-35.3 0-64 28.7-64 64z\"]\n};\nvar faFileClipboard = faPaste;\nvar faHandPointLeft = {\n prefix: 'far',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-176 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4 .5-3.1 .7-6.2 .7-9.4 0-20-9.2-37.9-23.6-49.7 4.9-9 7.6-19.4 7.6-30.3 0-15.1-5.3-29-14-40 8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80zm32-80l0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16 0 25.3 14.7 47.2 36 57.6-2.6 7-4 14.5-4 22.4 0 20 9.2 37.9 23.6 49.7-4.9 9-7.6 19.4-7.6 30.3 0 35.3 28.7 64 64 64l88 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-34 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z\"]\n};\nvar faFileExcel = {\n prefix: 'far',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm99.2 265.6c-8-10.6-23-12.8-33.6-4.8s-12.8 23-4.8 33.6L162 344 124.8 393.6c-8 10.6-5.8 25.6 4.8 33.6s25.6 5.8 33.6-4.8L192 384 220.8 422.4c8 10.6 23 12.8 33.6 4.8s12.8-23 4.8-33.6L222 344 259.2 294.4c8-10.6 5.8-25.6-4.8-33.6s-25.6-5.8-33.6 4.8L192 304 163.2 265.6z\"]\n};\nvar faEnvelope = {\n prefix: 'far',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M61.4 64C27.5 64 0 91.5 0 125.4 0 126.3 0 127.1 .1 128L0 128 0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256-.1 0c0-.9 .1-1.7 .1-2.6 0-33.9-27.5-61.4-61.4-61.4L61.4 64zM464 192.3L464 384c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-191.7 154.8 117.4c31.4 23.9 74.9 23.9 106.4 0L464 192.3zM48 125.4C48 118 54 112 61.4 112l389.2 0c7.4 0 13.4 6 13.4 13.4 0 4.2-2 8.2-5.3 10.7L280.2 271.5c-14.3 10.8-34.1 10.8-48.4 0L53.3 136.1c-3.3-2.5-5.3-6.5-5.3-10.7z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'far',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faTruck = {\n prefix: 'far',\n iconName: 'truck',\n icon: [576, 512, [128666, 9951], \"f0d1\", \"M64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l3.3 0c10.4-36.9 44.4-64 84.7-64s74.2 27.1 84.7 64l102.6 0c4.9-17.4 15.1-32.7 28.7-43.9L368 96c0-8.8-7.2-16-16-16L64 80zm3.3 368L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 55.4 0c17 0 33.3 6.7 45.3 18.7l40.6 40.6c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64zM416 256l112 0 0-23.4c0-4.2-1.7-8.3-4.7-11.3l-40.6-40.6c-3-3-7.1-4.7-11.3-4.7l-55.4 0 0 80zm0 48l0 32.4c2.6-.2 5.3-.4 8-.4 40.3 0 74.2 27.1 84.7 64l3.3 0c8.8 0 16-7.2 16-16l0-80-112 0zM152 464a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm272 0a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faBell = {\n prefix: 'far',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-13.3 0-24 10.7-24 24l0 9.7C118.6 45.3 56 115.4 56 200l0 14.5c0 37.7-10 74.7-29 107.3L5.1 359.2C1.8 365 0 371.5 0 378.2 0 399.1 16.9 416 37.8 416l372.4 0c20.9 0 37.8-16.9 37.8-37.8 0-6.7-1.8-13.3-5.1-19L421 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24zM392.4 368l-336.9 0 12.9-22.1C91.7 306 104 260.6 104 214.5l0-14.5c0-66.3 53.7-120 120-120s120 53.7 120 120l0 14.5c0 46.2 12.3 91.5 35.5 131.4L392.4 368zM156.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z\"]\n};\nvar faMessage = {\n prefix: 'far',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M203.7 512.9s0 0 0 0l-37.8 26.7c-7.3 5.2-16.9 5.8-24.9 1.7S128 529 128 520l0-72-32 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120.4 0-91.9 64.9zm64.3-104.1c8.1-5.7 17.8-8.8 27.7-8.8L416 400c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L96 80c-26.5 0-48 21.5-48 48l0 224c0 26.5 21.5 48 48 48l56 0c10.4 0 19.3 6.6 22.6 15.9 .9 2.5 1.4 5.2 1.4 8.1l0 49.7c32.7-23.1 63.3-44.7 91.9-64.9z\"]\n};\nvar faCommentAlt = faMessage;\nvar faFaceDizzy = {\n prefix: 'far',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faCalendarDays = {\n prefix: 'far',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zM384 432c8.8 0 16-7.2 16-16l0-64-88 0 0 80 72 0zm16-128l0-80-88 0 0 80 88 0zm-136 0l0-80-80 0 0 80 80 0zm-128 0l0-80-88 0 0 80 88 0zM48 352l0 64c0 8.8 7.2 16 16 16l72 0 0-80-88 0zm136 0l0 80 80 0 0-80-80 0zM120 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faHandPointUp = {\n prefix: 'far',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-176c0-8.8-7.2-16-16-16S64 55.2 64 64zM80 288c-17.7 0-32 14.3-32 32l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7-3.1 .5-6.2 .7-9.4 .7-20 0-37.9-9.2-49.7-23.6-9 4.9-19.4 7.6-30.3 7.6-15.1 0-29-5.3-40-14-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0zM0 320l0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2 25.3 0 47.2 14.7 57.6 36 7-2.6 14.5-4 22.4-4 20 0 37.9 9.2 49.7 23.6 9-4.9 19.4-7.6 30.3-7.6 35.3 0 64 28.7 64 64l0 88c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-34c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z\"]\n};\nvar faHandLizard = {\n prefix: 'far',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7-46.9-29.3-145.1 0c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z\"]\n};\nvar faSquareFull = {\n prefix: 'far',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M448 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l384 0zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0z\"]\n};\nvar faCirclePause = {\n prefix: 'far',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faHardDrive = {\n prefix: 'far',\n iconName: 'hard-drive',\n icon: [448, 512, [128436, \"hdd\"], \"f0a0\", \"M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l320 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm216 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faHdd = faHardDrive;\nvar faFileZipper = {\n prefix: 'far',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm0 80c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zm64 56l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faFloppyDisk = {\n prefix: 'far',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-242.7c0-4.2-1.7-8.3-4.7-11.3L320 86.6 320 176c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-96-32 0zm80 0l0 80 128 0 0-80-128 0zM0 96C0 60.7 28.7 32 64 32l242.7 0c17 0 33.3 6.7 45.3 18.7L429.3 128c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM160 320a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faSave = faFloppyDisk;\nvar faFaceGrinTongueSquint = {\n prefix: 'far',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 75.9 40.7 142.4 101.5 178.7-3.6-10.9-5.5-22.6-5.5-34.7l0-37.5c-10.2-12.6-18.3-26.9-23.8-42.4-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8-5.5 15.6-13.6 29.9-23.8 42.5l0 37.5c0 12.1-1.9 23.8-5.5 34.7 60.8-36.3 101.5-102.7 101.5-178.7zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm125.8-75.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faCamera = {\n prefix: 'far',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M193.1 32c-18.7 0-36.2 9.4-46.6 24.9L120.5 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-56.5 0-26-39.1C355.1 41.4 337.6 32 318.9 32L193.1 32zm-6.7 51.6c1.5-2.2 4-3.6 6.7-3.6l125.7 0c2.7 0 5.2 1.3 6.7 3.6l33.2 49.8c4.5 6.7 11.9 10.7 20 10.7l69.3 0c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l69.3 0c8 0 15.5-4 20-10.7l33.2-49.8zM256 384a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 272a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faCameraAlt = faCamera;\nvar faFaceGrinStars = {\n prefix: 'far',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M0 256c0-29.6 5-57.9 14.2-84.4l17.3 16.9-4.6 27c-4.2 24.4 5.6 46.2 22 59.9 9.8 105.8 98.8 188.7 207.1 188.7s197.4-82.8 207.1-188.6c16.4-13.7 26.1-35.4 22-59.9l-4.6-27 17.3-16.9c9.2 26.4 14.2 54.8 14.2 84.4 0 141.4-114.6 256-256 256S0 397.4 0 256zM256 48c-15.2 0-30 1.6-44.3 4.7L201.4 31.8C197 23 191.1 15.8 184.2 10.2 207 3.6 231.1 0 256 0s49 3.6 71.8 10.2C320.9 15.8 315 23 310.6 31.8L300.3 52.7C286 49.6 271.2 48 256 48zM372.2 302.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM353.7 53.1c5.9-11.9 22.8-11.9 28.7 0l23.3 47.2 52 7.6c13.1 1.9 18.4 18 8.9 27.3l-37.7 36.7 8.9 51.8c2.2 13.1-11.5 23-23.2 16.9L368 216 321.5 240.5c-11.7 6.2-25.5-3.8-23.2-16.9l8.9-51.8-37.7-36.7c-9.5-9.3-4.3-25.4 8.9-27.3l52-7.6 23.3-47.2zm-195.3 0l23.3 47.2 52 7.6c13.1 1.9 18.4 18 8.9 27.3l-37.7 36.7 8.9 51.8c2.2 13.1-11.5 23-23.2 16.9L144 216 97.5 240.5c-11.7 6.2-25.5-3.8-23.2-16.9l8.9-51.8-37.7-36.7c-9.5-9.3-4.3-25.4 8.9-27.3l52-7.6 23.3-47.2c5.9-11.9 22.8-11.9 28.7 0z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faEye = {\n prefix: 'far',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 80C222.8 80 169.2 109.6 128.1 147.7 89.6 183.5 63 226 49.4 256 63 286 89.6 328.5 128.1 364.3 169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256 513 226 486.4 183.5 447.9 147.7 406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1 3.3 7.9 3.3 16.7 0 24.6-14.9 35.7-46.2 87.7-93 131.1-47.1 43.7-111.8 80.6-192.6 80.6S142.5 443.2 95.4 399.4c-46.8-43.5-78.1-95.4-93-131.1-3.3-7.9-3.3-16.7 0-24.6 14.9-35.7 46.2-87.7 93-131.1zM288 336c44.2 0 80-35.8 80-80 0-29.6-16.1-55.5-40-69.3-1.4 59.7-49.6 107.9-109.3 109.3 13.8 23.9 39.7 40 69.3 40zm-79.6-88.4c2.5 .3 5 .4 7.6 .4 35.3 0 64-28.7 64-64 0-2.6-.2-5.1-.4-7.6-37.4 3.9-67.2 33.7-71.1 71.1zm45.6-115c10.8-3 22.2-4.5 33.9-4.5 8.8 0 17.5 .9 25.8 2.6 .3 .1 .5 .1 .8 .2 57.9 12.2 101.4 63.7 101.4 125.2 0 70.7-57.3 128-128 128-61.6 0-113-43.5-125.2-101.4-1.8-8.6-2.8-17.5-2.8-26.6 0-11 1.4-21.8 4-32 .2-.7 .3-1.3 .5-1.9 11.9-43.4 46.1-77.6 89.5-89.5z\"]\n};\nvar faFaceSadTear = {\n prefix: 'far',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 41.8 12.3 80.7 33.6 113.3 8.2 44.7 47.3 78.6 94.3 78.7 24.7 10.3 51.7 16 80.1 16 114.9 0 208-93.1 208-208zM288 352c-5.5 0-10.9 .6-16 1.8 0-.6 0-1.2 0-1.8 0-16.2-4-31.5-11.1-44.9 8.7-2 17.8-3.1 27.1-3.1 40.2 0 75.7 19.8 97.5 50 7.7 10.8 5.3 25.8-5.5 33.5s-25.8 5.3-33.5-5.5c-13.1-18.2-34.4-30-58.5-30zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM185.4 276.8c6.5 7.8 12.6 16.1 18.3 24.6 9 13.4 20.3 30.2 20.3 47.4 0 28.3-21.5 51.2-48 51.2s-48-22.9-48-51.2c0-17.2 11.2-34 20.3-47.4 5.7-8.5 11.9-16.7 18.3-24.6 2.4-2.9 5.7-4.8 9.4-4.8s7 1.9 9.4 4.8z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faShareFromSquare = {\n prefix: 'far',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24l0 56-48 0c-88.4 0-160 71.6-160 160 0 46.7 20.7 80.4 43.6 103.4 8.1 8.2 16.5 14.9 24.3 20.4 9.2 6.5 21.7 5.7 30.1-1.9s10.2-20 4.5-29.8c-3.6-6.3-6.5-14.9-6.5-26.7 0-36.2 29.3-65.5 65.5-65.5l46.5 0 0 56c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7zm7 97l0-22.1 78.1 78.1-78.1 78.1 0-22.1c0-13.3-10.7-24-24-24L338 192c-50.9 0-93.9 33.5-108.3 79.6-3.3-9.4-5.2-19.8-5.2-31.6 0-61.9 50.1-112 112-112l72 0c13.3 0 24-10.7 24-24zm-320-8c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faNoteSticky = {\n prefix: 'far',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M240 432L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0c8.8 0 16 7.2 16 16l0 176-88 0c-39.8 0-72 32.2-72 72l0 88zM380.1 320L288 412.1 288 344c0-13.3 10.7-24 24-24l68.1 0zM0 416c0 35.3 28.7 64 64 64l197.5 0c17 0 33.3-6.7 45.3-18.7L429.3 338.7c12-12 18.7-28.3 18.7-45.3L448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faHandBackFist = {\n prefix: 'far',\n iconName: 'hand-back-fist',\n icon: [384, 512, [\"hand-rock\"], \"f255\", \"M96 400c-17.7 0-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32L96 400zM73.2 352l64.6 0-79.5-88.3C51.7 256.3 48 246.8 48 236.9L48 204c0-16.1 11.9-29.5 27.4-31.7 11.8-1.7 20.6-11.8 20.6-23.8L96 72c0-13.3 10.7-24 24-24 7.2 0 13.6 3.1 18 8.1 4.6 5.2 11.1 8.1 18 8.1s13.4-3 18-8.1c4.4-5 10.8-8.1 18-8.1 8.5 0 15.9 4.4 20.2 11.1 6.9 10.7 20.9 14.2 32 8 3.5-1.9 7.4-3.1 11.8-3.1 10.6 0 19.7 6.9 22.8 16.6 3.8 11.7 15.9 18.7 28 16 1.7-.4 3.4-.6 5.2-.6 13.3 0 24 10.7 24 24l0 92.2c0 14.4-3.5 28.5-10.2 41.2l-52.2 98.6 54.3 0 40.3-76.2c10.4-19.6 15.8-41.5 15.8-63.6l0-92.2c0-38.4-30.1-69.8-68.1-71.9-12.9-19.3-34.9-32.1-59.9-32.1-5.7 0-11.2 .7-16.5 1.9-12.7-11.1-29.3-17.9-47.5-17.9-13.1 0-25.4 3.5-36 9.6-10.6-6.1-22.9-9.6-36-9.6-39.8 0-72 32.2-72 72l0 58.7C19.7 143 0 171.2 0 204l0 32.9c0 21.7 8 42.7 22.6 58.9L73.2 352z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faChessQueen = {\n prefix: 'far',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M325.3 90.8c9.1-4.8 20.6-3.3 28.2 4.3l39.8 39.8 3.7 3.3c9.1 7.1 20.9 10 32.4 7.7l46.4-9.3 3.5-.4c8-.4 15.8 3.2 20.6 9.8 5.5 7.6 6.1 17.6 1.6 25.8l-112.6 202.6 51.5 70.9 1.8 2.7c4 6.6 6.2 14.2 6.2 22 0 23.3-18.9 42.1-42.1 42.1l-299.8 0c-21.8 0-39.8-16.6-41.9-37.8l-.2-4.3 .1-3.3c.6-7.7 3.4-15.1 7.9-21.4l51.5-70.9-112.5-202.6c-4.5-8.2-3.9-18.3 1.6-25.8s14.9-11.2 24.1-9.4l46.4 9.3c13.1 2.6 26.7-1.5 36.1-10.9L159.5 95 163 92.2c8.6-5.8 20.1-5.6 28.5 1.1l40 32 2.8 2.1c14.4 9.6 33.5 8.9 47.2-2.1l40-32 3.8-2.5zM164.7 400l-46.6 64 276.7 0-46.6-64-183.6 0zM311.5 162.8c-30.1 24.1-72.1 25.6-103.8 4.5l-6.2-4.5-23.3-18.6-24.6 24.6c-19.8 19.8-47.7 28.9-75.1 24.8l88.1 158.5 179.8 0 88-158.5c-25.7 3.8-51.7-3.9-71.1-21l-4-3.7-24.6-24.6-23.2 18.6zM256.5 72a40 40 0 1 1 0-80 40 40 0 1 1 0 80z\"]\n};\nvar faFaceGrinTears = {\n prefix: 'far',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M504.1 353C512.9 367.2 525.3 379 539.8 387.2 495.1 462 413.4 512 320 512S144.9 462 100.2 387.2c14.6-8.2 26.9-20 35.8-34.3 34.9 66 104.2 111 184.1 111s149.2-45 184.1-111zm16.4-152.5C496.2 112.6 415.7 48 320 48S143.8 112.6 119.5 200.5c-10.6-4.8-22.7-6.8-35.4-5l-13.4 1.9C97.2 84.3 198.8 0 320 0S542.8 84.3 569.3 197.4l-13.4-1.9c-12.7-1.8-24.8 .2-35.4 5zM455.8 320c-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0 28.4-23 51.4-51.4 51.4-25.6 0-47.3-18.8-50.9-44.1L531 261.1c-1.5-10.6 7.5-19.6 18.1-18.1l46.7 6.7c25.3 3.6 44.1 25.3 44.1 50.9zm-640 0c0-25.6 18.8-47.3 44.1-50.9L90.9 243c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C98.7 333.2 77 352 51.4 352 23 352 0 329 0 300.6z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPenToSquare = {\n prefix: 'far',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z\"]\n};\nvar faEdit = faPenToSquare;\nvar faFaceGrinBeamSweat = {\n prefix: 'far',\n iconName: 'face-grin-beam-sweat',\n icon: [576, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M530.2 15.9c-8.8-10.7-18.5-20.9-29-30-3-2.6-7.4-2.6-10.4 0-10.5 9.1-20.1 19.3-29 30-14.7 17.8-29.8 40.1-29.8 64.1 0 36.4 27.6 64 64 64s64-27.6 64-64c0-24-15.2-46.3-29.8-64.1zm-132 8.9C364.8 8.9 327.4 0 288 0 146.6 0 32 114.6 32 256S146.6 512 288 512 544 397.4 544 256c0-24.4-3.4-48-9.8-70.4-11.9 4.2-24.7 6.4-38.2 6.4-3.4 0-6.8-.1-10.2-.4 6.6 20.3 10.2 41.9 10.2 64.4 0 114.9-93.1 208-208 208S80 370.9 80 256 173.1 48 288 48c34.8 0 67.5 8.5 96.3 23.6 1.4-17.4 6.9-33.1 13.8-46.8zM423.8 320c4.1-11.6-7.8-21.4-19.6-17.8-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 19.8 55.9 73.1 95.9 135.8 95.9 62.7 0 116-40.1 135.8-96zM180 208c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8zm188-28c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faClock = {\n prefix: 'far',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faFaceLaughWink = {\n prefix: 'far',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faPaperPlane = {\n prefix: 'far',\n iconName: 'paper-plane',\n icon: [576, 512, [61913], \"f1d8\", \"M290.5 287.7L491.4 86.9 359 456.3 290.5 287.7zM457.4 53L256.6 253.8 88 185.3 457.4 53zM38.1 216.8l205.8 83.6 83.6 205.8c5.3 13.1 18.1 21.7 32.3 21.7 14.7 0 27.8-9.2 32.8-23.1L570.6 8c3.5-9.8 1-20.6-6.3-28s-18.2-9.8-28-6.3L39.4 151.7c-13.9 5-23.1 18.1-23.1 32.8 0 14.2 8.6 27 21.7 32.3z\"]\n};\nvar faHeart = {\n prefix: 'far',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M378.9 80c-27.3 0-53 13.1-69 35.2l-34.4 47.6c-4.5 6.2-11.7 9.9-19.4 9.9s-14.9-3.7-19.4-9.9l-34.4-47.6c-16-22.1-41.7-35.2-69-35.2-47 0-85.1 38.1-85.1 85.1 0 49.9 32 98.4 68.1 142.3 41.1 50 91.4 94 125.9 120.3 3.2 2.4 7.9 4.2 14 4.2s10.8-1.8 14-4.2c34.5-26.3 84.8-70.4 125.9-120.3 36.2-43.9 68.1-92.4 68.1-142.3 0-47-38.1-85.1-85.1-85.1zM271 87.1c25-34.6 65.2-55.1 107.9-55.1 73.5 0 133.1 59.6 133.1 133.1 0 68.6-42.9 128.9-79.1 172.8-44.1 53.6-97.3 100.1-133.8 127.9-12.3 9.4-27.5 14.1-43.1 14.1s-30.8-4.7-43.1-14.1C176.4 438 123.2 391.5 79.1 338 42.9 294.1 0 233.7 0 165.1 0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1l15 20.7 15-20.7z\"]\n};\nvar faFontAwesome = {\n prefix: 'far',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0-48.2 108.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faClone = {\n prefix: 'far',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M288 464L64 464c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l48 0 0-48-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-48 0 0 48c0 8.8-7.2 16-16 16zM224 304c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-224 0zm-64-16c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224z\"]\n};\nvar faFolderOpen = {\n prefix: 'far',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M97.5 400l50-160 379.4 0-50 160-379.4 0zm190.7 48L477 448c21 0 39.6-13.6 45.8-33.7l50-160c9.7-30.9-13.4-62.3-45.8-62.3l-379.4 0c-21 0-39.6 13.6-45.8 33.7L80.2 294.4 80.2 96c0-8.8 7.2-16 16-16l138.7 0c3.5 0 6.8 1.1 9.6 3.2L282.9 112c13.8 10.4 30.7 16 48 16l117.3 0c8.8 0 16 7.2 16 16l48 0c0-35.3-28.7-64-64-64L330.9 80c-6.9 0-13.7-2.2-19.2-6.4L273.3 44.8C262.2 36.5 248.8 32 234.9 32L96.2 32c-35.3 0-64 28.7-64 64l0 288c0 35.3 28.7 64 64 64l192 0z\"]\n};\nvar faWindowMinimize = {\n prefix: 'far',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M0 424c0-13.3 10.7-24 24-24l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 448c-13.3 0-24-10.7-24-24z\"]\n};\nvar faStarHalf = {\n prefix: 'far',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M285.7-15.8c10.8 2.6 18.4 12.2 18.4 23.3l0 387.1c0 9-5.1 17.3-13.1 21.4L143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3L193.1 125.3 258.8-3.3c5-9.9 16.2-15 27-12.4zM256.1 107.4L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 92.2-46.9 0-272.6z\"]\n};\nvar faAlarmClock = {\n prefix: 'far',\n iconName: 'alarm-clock',\n icon: [512, 512, [9200], \"f34e\", \"M402.6 50.2c-5.4 1.7-11.3 1.8-16.2-.9-5.8-3.2-11.8-6.2-17.8-8.9-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3-4.5 10.5-18.4 9.8-24.9 .4-3.8-5.5-7.8-10.8-12-16-3.5-4.4-4.5-10.2-3.8-15.8 .2-1.9 .4-3.9 .4-5.9 0-26.1-21.2-47.2-47.2-47.2-4.9 0-9.7 .8-14.2 2.2zM32.5 132.9c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-6.1 2.8-12 5.7-17.8 8.9-4.9 2.7-10.9 2.6-16.2 .9-4.5-1.4-9.2-2.2-14.2-2.2-26.1 0-47.2 21.2-47.2 47.2 0 2 .1 4 .4 5.9 .7 5.6-.3 11.4-3.8 15.8-4.2 5.2-8.2 10.5-12 16zM432 288a176 176 0 1 0 -352 0 176 176 0 1 0 352 0zM396.5 462.5C358.1 493.4 309.2 512 256 512s-102.1-18.6-140.5-49.5L73 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l42.5-42.5C50.6 390.1 32 341.2 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 53.2-18.6 102.1-49.5 140.5L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-42.5-42.5zM280 184l0 94.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-4.5-4.5-7-10.6-7-17l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faNewspaper = {\n prefix: 'far',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM192 152c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zm152 24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM216 256l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faHospital = {\n prefix: 'far',\n iconName: 'hospital',\n icon: [576, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M176 0c-35.3 0-64 28.7-64 64l0 48-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-272c0-35.3-28.7-64-64-64l-48 0 0-48c0-35.3-28.7-64-64-64L176 0zM160 64c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 272c0 8.8-7.2 16-16 16l-176 0 0-80c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 80-176 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24l0-72zM112 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM96 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm320 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16-112c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faCircleStop = {\n prefix: 'far',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM160 192l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm48 112l0-96 96 0 0 96-96 0z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faObjectUngroup = {\n prefix: 'far',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16 .9 0 1.9 .1 2.8 .2 7.5 1.3 13.2 7.9 13.2 15.8 0 8.8-7.2 16-16 16-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0 28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16 0-.9 .1-1.9 .2-2.8 1.3-7.5 7.9-13.2 15.8-13.2 8.8 0 16 7.2 16 16zm436.7-40c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-20.7-48 0 0 20.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64-26.9 0-49.9 16.5-59.3 40l-52.7 0 0 9.6c10.7 10.9 19.1 23.9 24.6 38.4l28 0zm59.3-8a16 16 0 1 1 0-32 16 16 0 1 1 0 32zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm301.5 13c-7.5-1.3-13.2-7.9-13.2-15.8 0-8.8 7.2-16 16-16 7.9 0 14.5 5.7 15.8 13.2l0 .1c.1 .9 .2 1.8 .2 2.7 0 8.8-7.2 16-16 16-.9 0-1.9-.1-2.8-.2z\"]\n};\nvar faComment = {\n prefix: 'far',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M51.9 384.9C19.3 344.6 0 294.4 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240 397.4 480 256 480c-36.5 0-71.2-7.2-102.6-20L37 509.9c-3.7 1.6-7.5 2.1-11.5 2.1-14.1 0-25.5-11.4-25.5-25.5 0-4.3 1.1-8.5 3.1-12.2l48.8-89.4zm37.3-30.2c12.2 15.1 14.1 36.1 4.8 53.2l-18 33.1 58.5-25.1c11.8-5.1 25.2-5.2 37.1-.3 25.7 10.5 54.2 16.4 84.3 16.4 117.8 0 208-88.8 208-192S373.8 48 256 48 48 136.8 48 240c0 42.8 15.1 82.4 41.2 114.7z\"]\n};\nvar faChessPawn = {\n prefix: 'far',\n iconName: 'chess-pawn',\n icon: [384, 512, [9823], \"f443\", \"M192-32c66.3 0 120 53.7 120 120 0 27.6-9.3 52.9-24.9 73.2 9.8 3 16.9 12.1 16.9 22.8 0 13.3-10.7 24-24 24l-.6 0 24.6 160 53.6 67c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L63.4 512c-26.2 0-47.4-21.2-47.4-47.4 0-10.8 3.7-21.2 10.4-29.6l53.6-67 24.6-160-.6 0c-13.3 0-24-10.7-24-24 0-10.8 7.1-19.8 16.9-22.8-15.6-20.3-24.9-45.6-24.9-73.2 0-66.3 53.7-120 120-120zM115.9 400l-51.2 64 254.7 0-51.2-64-152.2 0zm36.2-184.7l-21 136.7 121.9 0-21-136.7-1.1-7.3-77.6 0-1.1 7.3zM192 16a72 72 0 1 0 0 144 72 72 0 1 0 0-144z\"]\n};\nvar faCalendarPlus = {\n prefix: 'far',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm104 64c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24z\"]\n};\nvar faClipboard = {\n prefix: 'far',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M232 96l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm0 48c37.1 0 67.6-28 71.6-64L320 80c8.8 0 16 7.2 16 16l0 352c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l16.4 0c4 36 34.5 64 71.6 64l80 0zM291.9 32C279 12.7 257 0 232 0L152 0c-25 0-47 12.7-59.9 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64l-28.1 0z\"]\n};\nvar faThumbsDown = {\n prefix: 'far',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M360 32l7.4 .4c35 3.6 62.5 32.2 64.4 67.7 17.8 11.8 30.1 31.4 32 53.9l.2 6c0 5.7-.7 11.2-2 16.5 10.2 11.5 16.8 26.3 17.8 42.7l.2 4.8c0 13.2-3.6 25.4-9.8 36 4.9 8.4 8.2 17.9 9.3 28l.4 8c0 37.3-28.3 67.9-64.6 71.6l-7.4 .4-109.7 0 14.1 30 3.1 7.6c12.5 35.7-1.8 75.5-34.2 95l-7.2 3.9c-37.5 17.6-81.7 3.6-102.6-31.2l-.6-.9-2.7-5-.6-1.2-30.1-64c-9.4 17.8-28 29.9-49.5 29.9l-32 0c-30.9 0-56-25.1-56-56L0 152c0-30.9 25.1-56 56-56l32 0c12.4 0 23.9 4.1 33.2 11 13.2-21.4 32-39.4 55-51.6l12.2-6.5 .7-.3 6.6-3.2 .7-.3 7.1-3c16.7-6.6 34.5-9.9 52.6-9.9L360 32zM255.9 80c-12 0-23.9 2.3-35.1 6.6l-4.7 2-5.3 2.6 0 0-12.2 6.5c-29.2 15.5-48.3 44.9-50.7 77.6l-.2 8 0 112.9 .1 4.1c.5 8.2 2.5 16.2 6 23.7l56.8 120.9 2.1 3.8c8.4 13.7 26 19.1 40.8 12.2l2.9-1.6c13-7.8 18.7-23.7 13.7-38l-1.2-3-30.2-64.2c-3.5-7.4-2.9-16.1 1.5-23.1s12-11.1 20.2-11.1l147.5 0 2.4-.1c11.3-1.1 20.3-10.1 21.4-21.4l.1-2.5c0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c4.4-3.9 7.4-9.3 8-15.3l.2-2.7c0-8.4-4.4-15.9-11.2-20.2-10.7-6.9-14.2-20.9-8-32 1.5-2.6 2.5-5.6 2.9-8.6l.2-3.2c0-10.6-6.9-19.6-16.6-22.8-11.7-3.8-18.7-15.9-16-28 .2-.9 .3-1.8 .4-2.6l.2-2.6c0-12.4-9.5-22.6-21.6-23.8L360 80 255.9 80zM56 144c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0z\"]\n};\nvar faIdBadge = {\n prefix: 'far',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-64 0c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z\"]\n};\nvar faSquareCheck = {\n prefix: 'far',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zm230.7 89.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faChessBishop = {\n prefix: 'far',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M216 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 81.8 98.1c24.7 29.6 38.2 67 38.2 105.6 0 43.7-17.4 85.7-48.3 116.6l-8.6 8.6 46.5 58.2c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L47.4 512C21.2 512 0 490.8 0 464.6 0 453.9 3.7 443.4 10.4 435l46.5-58.2-8.6-8.6C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L120 48 104 48C90.7 48 80 37.3 80 24S90.7 0 104 0L216 0zM94.4 406.8l-45.7 57.2 222.7 0-45.7-57.1-5.5-6.9-120.3 0-5.5 6.8zM156.9 78.7L75.1 176.8c-15.3 18.4-24.6 41-26.7 64.7L48 251.7c0 31 12.3 60.7 34.2 82.7l17.7 17.7 120.2 0c6.2-6.2 12.1-12.1 17.8-17.7 21.9-21.9 34.2-51.6 34.2-82.6l-.4-10.2c-1.5-17-6.7-33.3-15.2-48L209 241c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l51.8-51.8-63.7-76.5-3.1-3.8-3.1 3.8z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'far',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M512 416c0 35.3-28.5 64-63.9 64L64 480c-35.4 0-64-28.7-64-64L0 164c.1-15.5 7.8-30 20.5-38.8L206-2.7c30.1-20.7 69.8-20.7 99.9 0L491.5 125.2c12.8 8.8 20.4 23.3 20.5 38.8l0 252zM64 432l384.1 0c8.8 0 15.9-7.1 15.9-16l0-191.7-154.8 117.4c-31.4 23.9-74.9 23.9-106.4 0L48 224.3 48 416c0 8.9 7.2 16 16 16zM463.6 164.4L278.7 36.8c-13.7-9.4-31.7-9.4-45.4 0L48.4 164.4 231.8 303.5c14.3 10.8 34.1 10.8 48.4 0L463.6 164.4z\"]\n};\nvar faCircleXmark = {\n prefix: 'far',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faSquareCaretUp = {\n prefix: 'far',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faFileImage = {\n prefix: 'far',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM259.4 432l-134.8 0c-15.8 0-28.6-12.8-28.6-28.6 0-6.4 2.1-12.5 6-17.6l67.6-86.9C175 292 183.3 288 192 288s17 4 22.4 10.9L282 385.9c3.9 5 6 11.2 6 17.6 0 15.8-12.8 28.6-28.6 28.6zM112 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSquareCaretRight = {\n prefix: 'far',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faSun = {\n prefix: 'far',\n iconName: 'sun',\n icon: [576, 512, [9728], \"f185\", \"M288-32c8 0 15.4 4 19.9 10.6l58.8 87.4 103.4-20.2c7.8-1.5 15.9 .9 21.6 6.6s8.1 13.8 6.6 21.6L478 177.3 565.4 236.1C572 240.5 576 248 576 256s-4 15.4-10.6 19.9L478 334.7 498.2 438c1.5 7.8-.9 15.9-6.6 21.6s-13.8 8.1-21.6 6.6L366.7 446 307.9 533.4C303.4 540 296 544 288 544s-15.4-4-19.9-10.6L209.3 446 105.9 466.2c-7.8 1.5-15.9-.9-21.6-6.6s-8.1-13.8-6.6-21.6L98 334.7 10.6 275.9C4 271.4 0 264 0 256s4-15.4 10.6-19.9L98 177.3 77.8 73.9c-1.5-7.8 .9-15.9 6.6-21.6s13.8-8.1 21.6-6.6l103.3 20.2 58.8-87.4 1.8-2.3C274.4-29 281-32 288-32zm-47.8 138c-5.4 8-15 12-24.5 10.2l-84-16.4 16.4 84c1.8 9.5-2.2 19.1-10.2 24.5L67 256 138 303.8c8 5.4 12 15 10.2 24.5l-16.4 84 84-16.4 3.5-.4c8.3-.4 16.3 3.6 21 10.6l47.8 71 47.8-71 2.2-2.8c5.6-6.1 14-9 22.3-7.3l84 16.4-16.4-84c-1.8-9.5 2.2-19.1 10.2-24.5l71-47.8-71-47.8c-8-5.4-12-15-10.2-24.5l16.4-84-84 16.4c-9.5 1.8-19.1-2.2-24.5-10.2l-47.8-71-47.8 71zM288 376a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm0-192a72 72 0 1 0 0 144 72 72 0 1 0 0-144z\"]\n};\nvar faImage = {\n prefix: 'far',\n iconName: 'image',\n icon: [448, 512, [], \"f03e\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm128 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm136 72c8.5 0 16.4 4.5 20.7 11.8l80 136c4.4 7.4 4.4 16.6 .1 24.1S352.6 384 344 384l-240 0c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l17.2 24.6 46.5-79c4.3-7.3 12.2-11.8 20.7-11.8z\"]\n};\nvar faLightbulb = {\n prefix: 'far',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M296.5 291.1C321 265.2 336 230.4 336 192 336 112.5 271.5 48 192 48S48 112.5 48 192c0 38.4 15 73.2 39.5 99.1 21.3 22.4 44.9 54 53.3 92.9l102.4 0c8.4-39 32-70.5 53.3-92.9zm34.8 33C307.7 349 288 379.4 288 413.7l0 18.3c0 44.2-35.8 80-80 80l-32 0c-44.2 0-80-35.8-80-80l0-18.3C96 379.4 76.3 349 52.7 324.1 20 289.7 0 243.2 0 192 0 86 86 0 192 0S384 86 384 192c0 51.2-20 97.7-52.7 132.1zM144 184c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40z\"]\n};\nvar faAddressCard = {\n prefix: 'far',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faFaceMeh = {\n prefix: 'far',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faMeh = faFaceMeh;\nvar faMap = {\n prefix: 'far',\n iconName: 'map',\n icon: [512, 512, [128506, 62072], \"f279\", \"M512 48c0-8.3-4.3-16-11.3-20.4s-15.9-4.8-23.3-1.1L352.5 88.1 180 29.4c-13.7-4.7-28.7-3.8-41.9 2.3L13.8 90.3C5.4 94.2 0 102.7 0 112L0 464c0 8.2 4.2 15.9 11.1 20.3s15.6 4.9 23.1 1.4l127.3-59.9 170.7 56.9c13.7 4.6 28.5 3.7 41.6-2.5l124.4-58.5c8.4-4 13.8-12.4 13.8-21.7l0-352zM144 82.1l0 299-96 45.2 0-299 96-45.2zm48 303.3l0-301.1 128 43.5 0 300.3-128-42.7zM368 134l96-47.4 0 298.2-96 45.2 0-296z\"]\n};\nvar faHandPointDown = {\n prefix: 'far',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7-3.1-.5-6.2-.7-9.4-.7-20 0-37.9 9.2-49.7 23.6-9-4.9-19.4-7.6-30.3-7.6-15.1 0-29 5.3-40 14-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0zM0 192l0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2 25.3 0 47.2-14.7 57.6-36 7 2.6 14.5 4 22.4 4 20 0 37.9-9.2 49.7-23.6 9 4.9 19.4 7.6 30.3 7.6 35.3 0 64-28.7 64-64l0-88C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 34c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z\"]\n};\nvar faFaceMehBlank = {\n prefix: 'far',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256a256 256 0 1 1 -512 0 256 256 0 1 1 512 0zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faFaceGrinTongue = {\n prefix: 'far',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 74.1 38.8 139.2 97.1 176-.7-5.2-1.1-10.6-1.1-16l0-53.5c-10.2-12.6-18.3-26.9-23.8-42.4-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8-5.5 15.6-13.6 29.9-23.8 42.5l0 53.5c0 5.4-.4 10.8-1.1 16 58.4-36.8 97.1-101.9 97.1-176zm48 0c0 116.3-77.6 214.6-183.9 245.7-19.5 16.4-44.6 26.3-72.1 26.3s-52.6-9.9-72.1-26.3C77.6 470.6 0 372.3 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 208l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faFutbol = {\n prefix: 'far',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M387 228.3c-4.4-2.8-7.6-7-9.2-11.9s-1.4-10.2 .5-15L411.6 118c-19.9-22.4-44.6-40.5-72.4-52.7l-69.1 57.6c-4 3.3-9 5.1-14.1 5.1s-10.2-1.8-14.1-5.1L172.8 65.3c-27.8 12.2-52.5 30.3-72.4 52.7l33.4 83.4c1.9 4.8 2.1 10.1 .5 15s-4.9 9.1-9.2 11.9L49 276.2c3 30.9 12.7 59.7 27.6 85.2l89.7-6c5.2-.3 10.3 1.1 14.5 4.2s7.2 7.4 8.4 12.5l22 87.2c14.4 3.2 29.4 4.8 44.8 4.8s30.3-1.7 44.8-4.8l22-87.2c1.3-5 4.2-9.4 8.4-12.5s9.3-4.5 14.5-4.2l89.7 6c15-25.4 24.7-54.3 27.6-85.1L387 228.3zM256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zm62 221c8.4 6.1 11.9 16.9 8.7 26.8l-18.3 56.3c-3.2 9.9-12.4 16.6-22.8 16.6l-59.2 0c-10.4 0-19.6-6.7-22.8-16.6l-18.3-56.3c-3.2-9.9 .3-20.7 8.7-26.8l47.9-34.8c8.4-6.1 19.8-6.1 28.2 0L318 221z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faFaceSurprise = {\n prefix: 'far',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faFolder = {\n prefix: 'far',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 400l384 0c8.8 0 16-7.2 16-16l0-240c0-8.8-7.2-16-16-16l-149.3 0c-17.3 0-34.2-5.6-48-16L212.3 83.2c-2.8-2.1-6.1-3.2-9.6-3.2L64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16zm384 48L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faCloud = {\n prefix: 'far',\n iconName: 'cloud',\n icon: [576, 512, [9729], \"f0c2\", \"M80 192c0-88.4 71.6-160 160-160 47.1 0 89.4 20.4 118.7 52.7 10.6-3.1 21.8-4.7 33.3-4.7 66.3 0 120 53.7 120 120 0 13.2-2.1 25.9-6.1 37.8 41.6 21.1 70.1 64.3 70.1 114.2 0 70.7-57.3 128-128 128l-304 0c-79.5 0-144-64.5-144-144 0-56.8 32.9-105.9 80.7-129.4-.4-4.8-.7-9.7-.7-14.6zM240 80c-61.9 0-112 50.1-112 112 0 8.4 .9 16.6 2.7 24.5 2.7 12.1-4.3 24.3-16.1 28.1-38.7 12.4-66.6 48.7-66.6 91.4 0 53 43 96 96 96l304 0c44.2 0 80-35.8 80-80 0-37.4-25.7-68.9-60.5-77.6-7.5-1.9-13.6-7.2-16.5-14.3s-2.1-15.2 2-21.7c7-11.1 11-24.2 11-38.3 0-39.8-32.2-72-72-72-11.1 0-21.5 2.5-30.8 6.9-10.5 5-23.1 1.7-29.8-7.8-20.3-28.6-53.7-47.1-91.3-47.1z\"]\n};\nvar faCircle = {\n prefix: 'far',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faFaceGrinSquint = {\n prefix: 'far',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zm-249.6-143c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faCircleUser = {\n prefix: 'far',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6-35.6-37.3-57.5-87.9-57.5-143.6 0-114.9 93.1-208 208-208s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faRectangleList = {\n prefix: 'far',\n iconName: 'rectangle-list',\n icon: [512, 512, [\"list-alt\"], \"f022\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM160 320a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm104-56l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faListAlt = faRectangleList;\nvar faHand = {\n prefix: 'far',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M256.5 0c-25.3 0-47.2 14.7-57.6 36-7-2.6-14.5-4-22.4-4-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L107 437c48 48 113.1 75 181 75l16.5 0c1.5 0 3-.1 4.5-.4 91.7-6.2 165-79.4 171.1-171.1 .3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64-7.9 0-15.4 1.4-22.4 4-10.4-21.3-32.3-36-57.6-36zm-16 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 168c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9-3.4 69.7-59.3 125.6-129 129-.6 0-1.3 .1-1.9 .2L288 464C232.9 464 180 442.1 141 403.1L53.2 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l43.7 43.7c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-223.4c0-8.8 7.2-16 16-16 8.8 0 16 7.1 16 15.9l0 136.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z\"]\n};\nvar faHandPaper = faHand;\nvar faThumbsUp = {\n prefix: 'far',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M171.5 38.8C192.3 4 236.5-10 274 7.6l7.2 3.8C316 32.3 330 76.5 312.4 114l0 0-14.1 30 109.7 0 7.4 .4c36.3 3.7 64.6 34.4 64.6 71.6 0 13.2-3.6 25.4-9.8 36 6.1 10.6 9.7 22.8 9.8 36 0 18.3-6.9 34.8-18 47.5 1.3 5.3 2 10.8 2 16.5 0 25.1-12.9 47-32.2 59.9-1.9 35.5-29.4 64.2-64.4 67.7l-7.4 .4-104.1 0c-18 0-35.9-3.4-52.6-9.9l-7.1-3-.7-.3-6.6-3.2-.7-.3-12.2-6.5c-12.3-6.5-23.3-14.7-32.9-24.1-4.1 26.9-27.3 47.4-55.3 47.4l-32 0c-30.9 0-56-25.1-56-56L0 200c0-30.9 25.1-56 56-56l32 0c10.8 0 20.9 3.1 29.5 8.5l50.1-106.5 .6-1.2 2.7-5 .6-.9zM56 192c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0zM253.6 51c-14.8-6.9-32.3-1.6-40.7 12l-2.2 4-56.8 120.9c-3.5 7.5-5.5 15.5-6 23.7l-.1 4.2 0 112.9 .2 7.9c2.4 32.7 21.4 62.1 50.7 77.7l11.5 6.1 6.3 3.1c12.4 5.6 25.8 8.5 39.4 8.5l104.1 0 2.4-.1c12.1-1.2 21.6-11.5 21.6-23.9l-.2-2.6c-.1-.9-.2-1.7-.4-2.6-2.7-12.1 4.3-24.2 16-28 9.7-3.1 16.6-12.2 16.6-22.8 0-4.3-1.1-8.2-3.1-11.8-6.3-11.1-2.8-25.2 8-32 6.8-4.3 11.2-11.8 11.2-20.2 0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c5.1-4.5 8.2-10.9 8.2-18l-.1-2.4c-1.1-11.3-10.1-20.3-21.4-21.4l-2.4-.1-147.5 0c-8.2 0-15.8-4.2-20.2-11.1-4.4-6.9-5-15.7-1.5-23.1L269 93.6c7-15 1.4-32.7-12.5-41L253.6 51z\"]\n};\nvar faBuilding = {\n prefix: 'far',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 80 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faChessRook = {\n prefix: 'far',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M352 0c17.7 0 32 14.3 32 32l0 138.7c0 13.8-4.5 27.3-12.8 38.4l-35.2 46.9 0 112 40.8 68.1c4.7 7.8 7.2 16.7 7.2 25.8 0 27.7-22.4 50.1-50.1 50.1L50.1 512c-27.7 0-50.1-22.4-50.1-50.1 0-9.1 2.5-18 7.2-25.8L48 368 48 256 12.8 209.1C4.5 198 0 184.5 0 170.7L0 32C0 14.3 14.3 0 32 0L352 0zM48.3 460.8l-.3 1.1c0 1.2 1 2.1 2.1 2.1l283.8 0c1.2 0 2.1-1 2.1-2.1l-.3-1.1-36.5-60.8-214.4 0-36.5 60.8zM48 170.7c0 2.6 .6 5.1 1.8 7.4l1.4 2.2 0 0 35.2 46.9 9.6 12.8 0 112 192 0 0-112 9.6-12.8 35.2-46.9 0 0 1.4-2.2c1.2-2.3 1.8-4.8 1.8-7.4l0-122.7-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 122.7z\"]\n};\nvar faCircleQuestion = {\n prefix: 'far',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faFile = {\n prefix: 'far',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nvar faFaceSadCry = {\n prefix: 'far',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256 48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faCalendarMinus = {\n prefix: 'far',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm32 136l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faFaceTired = {\n prefix: 'far',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3c19 17.8 32.5 41.7 32.5 63.7 0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faTired = faFaceTired;\nvar faHandPointRight = {\n prefix: 'far',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 176 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4-.5-3.1-.7-6.2-.7-9.4 0-20 9.2-37.9 23.6-49.7-4.9-9-7.6-19.4-7.6-30.3 0-15.1 5.3-29 14-40-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80zM192 64l0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16 0 25.3-14.7 47.2-36 57.6 2.6 7 4 14.5 4 22.4 0 20-9.2 37.9-23.6 49.7 4.9 9 7.6 19.4 7.6 30.3 0 35.3-28.7 64-64 64l-88 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l34 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z\"]\n};\nvar faCircleUp = {\n prefix: 'far',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3c-6.2-6.2-16.4-6.2-22.6 0l-104 104c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l72 0 0 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-104 72 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-104-104z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faHandScissors = {\n prefix: 'far',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1-8.2-1.8C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.6-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-104 0c-35.3 0-64-28.7-64-64 0-2.8 .2-5.6 .5-8.3-19.4-11-32.5-31.8-32.5-55.7 0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.6s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11 0 8.8 7.2 16 16 16 9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6 0 8.8 7.2 16 16 16l104 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l0 0-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12L262.8 171.8 74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z\"]\n};\nvar faGem = {\n prefix: 'far',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M168.5 72l87.5 93 87.5-93-175 0zM383.9 99.1l-72.3 76.9 129 0-56.6-76.9zm50 124.9L78.1 224 256 420.3 433.9 224zM71.5 176l129 0-72.3-76.9-56.6 76.9zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"]\n};\nvar faRectangleXmark = {\n prefix: 'far',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm334.1 49.9c9.4 9.4 9.4 24.6 0 33.9l-44.1 44.1 44.1 44.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-44.1-44.1-44.1 44.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l44.1-44.1-44.1-44.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l44.1 44.1 44.1-44.1c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faTrashCan = {\n prefix: 'far',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M166.2-16c-13.3 0-25.3 8.3-30 20.8L120 48 24 48C10.7 48 0 58.7 0 72S10.7 96 24 96l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0-16.2-43.2C307.1-7.7 295.2-16 281.8-16L166.2-16zM32 144l0 304c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-304-48 0 0 304c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16l0-304-48 0zm160 72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faLifeRing = {\n prefix: 'far',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256S489.9 137.1 453.2 92.7L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0S37.7 71.6 47 81L58.8 92.7C22.1 137.1 0 193.9 0 256S22.1 374.9 58.8 419.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faCopyright = {\n prefix: 'far',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c-28.1-28.1-28.1-73.7 0-101.8s73.7-28.1 101.8 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-46.9-46.9-122.8-46.9-169.7 0s-46.9 122.8 0 169.7 122.8 46.9 169.7 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-28.1 28.1-73.7 28.1-101.8 0z\"]\n};\nvar faCircleLeft = {\n prefix: 'far',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M48 256a208 208 0 1 1 416 0 208 208 0 1 1 -416 0zm464 0a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7c-6.2 6.2-6.2 16.4 0 22.6l104 104c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-72 104 0c13.3 0 24-10.7 24-24l0-16c0-13.3-10.7-24-24-24l-104 0 0-72c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-104 104z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faCalendar = {\n prefix: 'far',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0zM48 224l0 192c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-192-352 0z\"]\n};\nvar faFaceFrownOpen = {\n prefix: 'far',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faChartBar = {\n prefix: 'far',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M48 56c0-13.3-10.7-24-24-24S0 42.7 0 56L0 400c0 44.2 35.8 80 80 80l408 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L80 432c-17.7 0-32-14.3-32-32L48 56zm104 72l208 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L152 80c-13.3 0-24 10.7-24 24s10.7 24 24 24zm0 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z\"]\n};\nvar faBarChart = faChartBar;\nvar faHouse = {\n prefix: 'far',\n iconName: 'house',\n icon: [512, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M240 6.1c9.1-8.2 22.9-8.2 32 0l232 208c9.9 8.8 10.7 24 1.8 33.9s-24 10.7-33.9 1.8l-8-7.2 0 205.3c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-205.3-8 7.2c-9.9 8.8-25 8-33.9-1.8s-8-25 1.8-33.9L240 6.1zm16 50.1L96 199.7 96 448c0 8.8 7.2 16 16 16l48 0 0-104c0-39.8 32.2-72 72-72l48 0c39.8 0 72 32.2 72 72l0 104 48 0c8.8 0 16-7.2 16-16l0-248.3-160-143.4zM208 464l96 0 0-104c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 104z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faFaceFrown = {\n prefix: 'far',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM334.7 384.6C319.7 369 293.6 352 256 352s-63.7 17-78.7 32.6c-9.2 9.6-24.4 9.9-33.9 .7s-9.9-24.4-.7-33.9c22.1-23 60-47.4 113.3-47.4s91.2 24.4 113.3 47.4c9.2 9.6 8.9 24.8-.7 33.9s-24.8 8.9-33.9-.7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFrown = faFaceFrown;\nvar faUser = {\n prefix: 'far',\n iconName: 'user',\n icon: [448, 512, [128100, 62144, 62470, \"user-alt\", \"user-large\"], \"f007\", \"M144 128a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zm208 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM48 480c0-70.7 57.3-128 128-128l96 0c70.7 0 128 57.3 128 128l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8c0-97.2-78.8-176-176-176l-96 0C78.8 304 0 382.8 0 480l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z\"]\n};\nvar faUserAlt = faUser;\nvar faUserLarge = faUser;\nvar faSnowflake = {\n prefix: 'far',\n iconName: 'snowflake',\n icon: [512, 512, [10052, 10054], \"f2dc\", \"M280.1-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 78.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l57 57 0 76.5-66.2-38.2-20.9-77.8c-3.4-12.8-16.6-20.4-29.4-17S95.2 98 98.7 110.8l8.4 31.5-67.6-39C28 96.6 13.3 100.5 6.7 112S4 138.2 15.5 144.8l67.6 39-31.5 8.4c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l77.8-20.9 66.2 38.2-66.2 38.2-77.8-20.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l31.5 8.4-67.6 39C4 373.8 .1 388.5 6.7 400s21.3 15.4 32.8 8.8l67.6-39-8.4 31.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l20.9-77.8 66.2-38.2 0 76.5-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 78.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-78.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-76.5 66.2 38.2 20.9 77.8c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-8.4-31.5 67.6 39c11.5 6.6 26.2 2.7 32.8-8.8s2.7-26.2-8.8-32.8l-67.6-39 31.5-8.4c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-77.8 20.9-66.2-38.2 66.2-38.2 77.8 20.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-31.5-8.4 67.6-39c11.5-6.6 15.4-21.3 8.8-32.8s-21.3-15.4-32.8-8.8l-67.6 39 8.4-31.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-20.9 77.8-66.2 38.2 0-76.5 57-57c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-78.1z\"]\n};\nvar faBookmark = {\n prefix: 'far',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 417.1c0 25.6-28.5 40.8-49.8 26.6L192 412.8 49.8 507.7C28.5 521.9 0 506.6 0 481.1L0 64zM64 48c-8.8 0-16 7.2-16 16l0 387.2 117.4-78.2c16.1-10.7 37.1-10.7 53.2 0L336 451.2 336 64c0-8.8-7.2-16-16-16L64 48z\"]\n};\nvar faSquareCaretLeft = {\n prefix: 'far',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faHandshake = {\n prefix: 'far',\n iconName: 'handshake',\n icon: [640, 512, [129309, 62662, \"handshake-alt\", \"handshake-simple\"], \"f2b5\", \"M598.1 75.4c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3l-74.5 54.2-9.9-6.6C465.8 71 442.6 64 418.9 64l-59.2 0-.4 0-143.6 0c-26.7 0-52.5 8.9-73.4 25.1L70.1 36.6c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5l88 64c9.6 6.9 22.7 5.9 31.1-2.4l3.9-3.9c13.5-13.5 31.8-21.1 50.9-21.1l46.3 0-91.7 91.7c-15.6 15.6-15.6 40.9 0 56.6l.8 .8C218 308 294 308 340.9 261.1l27.1-27.1 97.8 97.8c15.6 15.6 15.6 40.9 0 56.6l-9.8 9.8-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l28 28c-17.5 10.4-37.2 16.7-57.6 18.5L313 399c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-3.8 0c-36.1 0-70.7-14.3-96.2-39.8L65 279c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L160.2 442.1c34.5 34.5 81.3 53.9 130.1 53.9l51.8 0 1 1 1-1 5.7 0c48.8 0 95.6-19.4 130.1-53.9l19.9-19.9c1.2-1.2 2.3-2.3 3.4-3.5 .7-.5 1.3-1.1 1.9-1.7L609 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-53.8 53.8c-4.2-12.8-11.3-24.9-21.5-35.1L385 183c-9.4-9.4-24.6-9.4-33.9 0l-44.1 44.1c-26.5 26.5-68.5 28-96.7 4.6l98.7-98.7c13.4-13.4 31.6-21 50.6-21.1l8.5 0 .2 0 50.8 0c14.2 0 28.1 4.2 39.9 12.1L482.7 140c8.4 5.6 19.3 5.3 27.4-.6l88-64z\"]\n};\nvar faHandshakeAlt = faHandshake;\nvar faHandshakeSimple = faHandshake;\nvar faFaceSmileWink = {\n prefix: 'far',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faFaceGrinSquintTears = {\n prefix: 'far',\n iconName: 'face-grin-squint-tears',\n icon: [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M403.1 403.1c67.2-67.2 78.8-168.9 34.9-248l36.7-5.2c4.5-.6 8.8-1.6 13.1-2.8 44.6 94.9 27.7 211.5-50.7 290s-195.1 95.3-290 50.7c1.2-4.2 2.1-8.6 2.8-13.1l5.2-36.7c79.1 43.9 180.8 32.3 248-34.9zM75 75c78.4-78.4 195.1-95.3 290-50.7-1.2 4.2-2.1 8.6-2.8 13.1l-5.2 36.7c-79.1-43.9-180.8-32.3-248 34.9s-78.8 168.9-34.9 248l-36.7 5.2c-4.5 .6-8.8 1.6-13.1 2.8-44.6-94.9-27.7-211.5 50.7-290zM370.9 206.5c5.8-10.9 21.1-12.4 26.4-1.3 25.6 53.5 16.2 119.6-28.2 163.9-44.3 44.3-110.3 53.7-163.8 28.2-11.1-5.3-9.6-20.6 1.3-26.4 32-17.1 64.2-40.8 93.8-70.4 29.7-29.7 53.4-61.9 70.5-94zM93.3 281.9c-1.7-8 2.9-15.9 10.6-18.4l84.6-28c5.7-1.9 12.1-.4 16.3 3.9s5.8 10.6 3.9 16.3l-28 84.6c-2.6 7.7-10.5 12.3-18.4 10.6s-13.4-9-12.7-17.1l3.9-43.1-43.1 3.9c-8.1 .7-15.5-4.7-17.1-12.7zM294.6 110.4l-3.9 43.1 43.1-3.9c8.1-.7 15.5 4.7 17.1 12.7s-2.9 15.9-10.6 18.4l-84.6 28c-5.7 1.9-12.1 .4-16.3-3.9s-5.8-10.6-3.9-16.3l28-84.6c2.6-7.7 10.5-12.3 18.4-10.6s13.4 9 12.7 17.1zM512 51.4c0 25.6-18.8 47.3-44.1 50.9L421.1 109c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C413.3 18.8 435 0 460.6 0 489 0 512 23 512 51.4zM44.1 409.7L90.9 403c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C98.7 493.2 77 512 51.4 512 23 512 0 489 0 460.6 0 435 18.8 413.3 44.1 409.7z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faFileAudio = {\n prefix: 'far',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM221.9 267.6c-4.7 10-.3 21.9 9.7 26.6 19.2 8.9 32.4 28.3 32.4 50.8s-13.2 41.9-32.4 50.8c-10 4.7-14.4 16.6-9.7 26.6s16.6 14.4 26.6 9.7C281.2 416.8 304 383.6 304 345s-22.8-71.9-55.6-87.1c-10-4.7-21.9-.3-26.6 9.7zM104 305c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24l16 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-16 0zM223.3 373c9.9-5.4 16.7-16 16.7-28.1s-6.7-22.7-16.7-28.1c-7.8-4.2-15.3 3.3-15.3 12.1l0 32c0 8.8 7.6 16.3 15.3 12.1z\"]\n};\nvar faCalendarXmark = {\n prefix: 'far',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm171.9 92.1c9.4 9.4 9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faCircleDown = {\n prefix: 'far',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3c6.2 6.2 16.4 6.2 22.6 0l104-104c4.6-4.6 5.9-11.5 3.5-17.4S366.5 256 360 256l-72 0 0-104c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24l0 104-72 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l104 104z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faFileLines = {\n prefix: 'far',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faComments = {\n prefix: 'far',\n iconName: 'comments',\n icon: [576, 512, [128490, 61670], \"f086\", \"M76.2 258.7c6.1-15.2 4-32.6-5.6-45.9-14.5-20.1-22.6-43.7-22.6-68.8 0-66.8 60.5-128 144-128s144 61.2 144 128-60.5 128-144 128c-15.9 0-31.1-2.3-45.3-6.5-10.3-3.1-21.4-2.5-31.4 1.5l-50.4 20.2 11.4-28.5zM0 144c0 35.8 11.6 69.1 31.7 96.8L1.9 315.2c-1.3 3.2-1.9 6.6-1.9 10 0 14.8 12 26.8 26.8 26.8 3.4 0 6.8-.7 10-1.9l96.3-38.5c18.6 5.5 38.4 8.4 58.9 8.4 106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144zM384 512c20.6 0 40.3-3 58.9-8.4l96.3 38.5c3.2 1.3 6.6 1.9 10 1.9 14.8 0 26.8-12 26.8-26.8 0-3.4-.7-6.8-1.9-10l-29.7-74.4c20-27.8 31.7-61.1 31.7-96.8 0-82.4-61.7-151.5-145-170.7-1.6 16.3-5.1 31.9-10.1 46.9 63.9 14.8 107.2 67.3 107.2 123.9 0 25.1-8.1 48.7-22.6 68.8-9.6 13.3-11.7 30.6-5.6 45.9l11.4 28.5-50.4-20.2c-10-4-21.1-4.5-31.4-1.5-14.2 4.2-29.4 6.5-45.3 6.5-72.2 0-127.1-45.7-140.7-101.2-15.6 3.2-31.7 5-48.1 5.2 16.4 81.9 94.7 144 188.8 144z\"]\n};\nvar faCircleCheck = {\n prefix: 'far',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm70.7 121.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L243.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faMoon = {\n prefix: 'far',\n iconName: 'moon',\n icon: [512, 512, [127769, 9214], \"f186\", \"M239.3 48.7c-107.1 8.5-191.3 98.1-191.3 207.3 0 114.9 93.1 208 208 208 33.3 0 64.7-7.8 92.6-21.7-103.4-23.4-180.6-115.8-180.6-226.3 0-65.8 27.4-125.1 71.3-167.3zM0 256c0-141.4 114.6-256 256-256 19.4 0 38.4 2.2 56.7 6.3 9.9 2.2 17.3 10.5 18.5 20.5s-4 19.8-13.1 24.4c-60.6 30.2-102.1 92.7-102.1 164.8 0 101.6 82.4 184 184 184 5 0 9.9-.2 14.8-.6 10.1-.8 19.6 4.8 23.8 14.1s2 20.1-5.3 27.1C387.3 484.8 324.8 512 256 512 114.6 512 0 397.4 0 256z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'far',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M448 112c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l384 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm88 144l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z\"]\n};\nvar faImages = {\n prefix: 'far',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 80c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16l-320 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l320 0zM160 32c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L160 32zm80 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm140.7 3.8c-4.3-7.3-12.2-11.8-20.7-11.8s-16.4 4.5-20.7 11.8l-46.5 79-17.2-24.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S191.1 320 200 320l240 0c8.6 0 16.6-4.6 20.8-12.1s4.2-16.7-.1-24.1l-80-136zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 448c0 35.3 28.7 64 64 64l360 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-296z\"]\n};\nvar faCircleRight = {\n prefix: 'far',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3c6.2-6.2 6.2-16.4 0-22.6l-104-104c-4.6-4.6-11.5-5.9-17.4-3.5S256 145.5 256 152l0 72-104 0c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24l104 0 0 72c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l104-104z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faIdCard = {\n prefix: 'far',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M48 416l0-256 480 0 0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM376 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faCirclePlay = {\n prefix: 'far',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM212.5 147.5c-7.4-4.5-16.7-4.7-24.3-.5S176 159.3 176 168l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88zM298 256l-74 45.2 0-90.4 74 45.2z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faFaceLaughBeam = {\n prefix: 'far',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faAddressBook = {\n prefix: 'far',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"]\n};\nvar faContactBook = faAddressBook;\nvar faHourglass = {\n prefix: 'far',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5l81.5 81.5-81.5 81.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5l-81.5-81.5 81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24S373.3 0 360 0L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19-224 0 0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faHeadphones = {\n prefix: 'far',\n iconName: 'headphones',\n icon: [448, 512, [127911, 62863, \"headphones-alt\", \"headphones-simple\"], \"f025\", \"M48 224c0-97.2 78.8-176 176-176s176 78.8 176 176l0 44.8c-14.1-8.2-30.5-12.8-48-12.8l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-17.5 0-33.9 4.7-48 12.8L48 224zm0 128c0-26.5 21.5-48 48-48l16 0 0 128-16 0c-26.5 0-48-21.5-48-48l0-32zm352 0l0 32c0 26.5-21.5 48-48 48l-16 0 0-128 16 0c26.5 0 48 21.5 48 48z\"]\n};\nvar faHeadphonesAlt = faHeadphones;\nvar faHeadphonesSimple = faHeadphones;\nvar faFilePowerpoint = {\n prefix: 'far',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm88 256c-13.3 0-24 10.7-24 24l0 128c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 28 0c37.6 0 68-30.4 68-68s-30.4-68-68-68l-52 0zm52 88l-28 0 0-40 28 0c11 0 20 9 20 20s-9 20-20 20z\"]\n};\nvar faWindowMaximize = {\n prefix: 'far',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M48 224l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160-416 0zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z\"]\n};\nvar faCommentDots = {\n prefix: 'far',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M0 240c0 54.4 19.3 104.6 51.9 144.9L3.1 474.3c-2 3.7-3.1 7.9-3.1 12.2 0 14.1 11.4 25.5 25.5 25.5 4 0 7.8-.6 11.5-2.1L153.4 460c31.4 12.9 66.1 20 102.6 20 141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240zM94 407.9c9.3-17.1 7.4-38.1-4.8-53.2-26.1-32.3-41.2-71.9-41.2-114.7 0-103.2 90.2-192 208-192s208 88.8 208 192-90.2 192-208 192c-30.2 0-58.7-5.9-84.3-16.4-11.9-4.9-25.3-4.8-37.1 .3L76 440.9 94 407.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCommenting = faCommentDots;\nvar faFaceGrinTongueWink = {\n prefix: 'far',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M366.9 432c.8-5.2 1.1-10.6 1.1-16l0-53.5c10.2-12.6 18.3-26.9 23.8-42.5 4.1-11.6-7.8-21.4-19.6-17.8-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 5.5 15.5 13.6 29.9 23.8 42.4l0 53.5c0 5.4 .4 10.8 1.1 16-58.4-36.8-97.1-101.9-97.1-176 0-114.9 93.1-208 208-208s208 93.1 208 208c0 74.1-38.8 139.2-97.1 176zm-38.8 69.7C434.4 470.6 512 372.3 512 256 512 114.6 397.4 0 256 0S0 114.6 0 256C0 372.3 77.6 470.6 183.9 501.7 203.4 518.1 228.5 528 256 528s52.6-9.9 72.1-26.3zM320 378.6l0 37.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM132 232c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zm228.4-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM288 208a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faHourglassHalf = {\n prefix: 'far',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5l-81.5 81.5 81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5l81.5-81.5-81.5-81.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5l-81.5-81.5-81.5 81.5zM80.8 432c-.5 4.3-.8 8.6-.8 13l0 19 224 0 0-19c0-4.4-.3-8.7-.8-13L80.8 432zM254.1 160l-124.1 0 62.1 62.1 62.1-62.1zm39.7-48C300.4 98.1 304 82.7 304 67l0-19-224 0 0 19c0 15.7 3.6 31.1 10.2 45l203.5 0z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faCreditCard = {\n prefix: 'far',\n iconName: 'credit-card',\n icon: [512, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M448 112c8.8 0 16 7.2 16 16l0 32-416 0 0-32c0-8.8 7.2-16 16-16l384 0zm16 112l0 160c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-160 416 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM80 344c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm144 0c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faHandSpock = {\n prefix: 'far',\n iconName: 'hand-spock',\n icon: [512, 512, [128406], \"f259\", \"M138.3 80.8c-9.2-33.8 10.5-68.8 44.3-78.4 34-9.6 69.4 10.2 79 44.2L291.9 153.7 305.1 84c6.6-34.7 40.1-57.5 74.8-50.9 31.4 6 53 33.9 52 64.9 10-2.6 20.8-2.8 31.5-.1 34.3 8.6 55.1 43.3 46.6 77.6L454.7 397.2C437.8 464.7 377.2 512 307.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2-51.8-131.2c-13-32.9 3.2-70.1 36-83 11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L142.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37L73.8 323.4c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104c-2.9 11.7-13.4 19.9-25.5 19.9-16.5 0-28.9-15-25.8-31.2L383.7 99c1.7-8.7-4-17.1-12.7-18.7S354 84.3 352.3 93L320.5 260c-2.2 11.6-12.4 20-24.2 20-11 0-20.7-7.3-23.7-17.9L215.4 59.6z\"]\n};\nvar faBellSlash = {\n prefix: 'far',\n iconName: 'bell-slash',\n icon: [576, 512, [128277, 61943], \"f1f6\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.8-87.8c17.5-3.3 30.8-18.7 30.8-37.1 0-6.7-1.8-13.3-5.1-19L485 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 9.7c-42.2 6-79.4 27.8-105.4 59.1L41-24.9zM192.8 126.9C214.7 98.4 249.2 80 288 80 354.3 80 408 133.7 408 200l0 14.5c0 46.2 12.3 91.5 35.5 131.4l12.9 22.1-22.6 0-241.1-241.1zM132.5 345.9c19.5-33.4 31.3-70.7 34.6-109l-46.7-46.7c-.2 3.3-.3 6.6-.3 9.9l0 14.5c0 37.7-10 74.7-29 107.3L69.1 359.2c-3.4 5.8-5.1 12.3-5.1 19 0 20.9 16.9 37.8 37.8 37.8l244.4 0-48-48-178.6 0 12.9-22.1zM220.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z\"]\n};\nvar faStar = {\n prefix: 'far',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M288.1-32c9 0 17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2s-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1zm0 76.8L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 113.3-57.6c6.8-3.5 14.9-3.5 21.8 0l113.3 57.6-19.8-125.5c-1.2-7.6 1.3-15.3 6.7-20.7l89.8-89.9-125.5-20c-7.6-1.2-14.1-6-17.6-12.8L288.1 44.8z\"]\n};\nvar faFlag = {\n prefix: 'far',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4 44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0-35.1-17.6-75.4-22-113.5-12.5L48 52 48 24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8 54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4-48.2-24.1-103.3-30.1-155.6-17.1l-68.6 17.2 0-237z\"]\n};\nvar faLemon = {\n prefix: 'far',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M368 80c-3.2 0-6.2 .4-8.9 1.3-19.1 5.5-46.1 10.7-74.3 3.3-57.4-14.9-124.6 7.4-174.7 57.5S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3-.8 2.8-1.3 5.8-1.3 8.9 0 17.7 14.3 32 32 32 3.2 0 6.2-.4 8.9-1.3 19.1-5.5 46.1-10.7 74.3-3.3 57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3 .8-2.8 1.3-5.8 1.3-8.9 0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80 0 7.7-1.1 15.2-3.1 22.3-4.6 15.8-7.1 32.9-3 48.9 20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3-7.1 2-14.6 3.1-22.3 3.1-44.2 0-80-35.8-80-80 0-7.7 1.1-15.2 3.1-22.3 4.6-15.8 7.1-32.9 3-48.9-20.1-77.6 10.9-161.5 70-220.7S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3 7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S85.2 278 89 265.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"]\n};\nvar faWindowRestore = {\n prefix: 'far',\n iconName: 'window-restore',\n icon: [576, 512, [], \"f2d2\", \"M512 80L224 80c-8.8 0-16 7.2-16 16l0 16-48 0 0-16c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-48 48 0c8.8 0 16-7.2 16-16l0-192c0-8.8-7.2-16-16-16zM368 288l-320 0 0 128c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-128zM64 160l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'far',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M464 256c0 114.9-93.1 208-208 208S48 370.9 48 256c0-3.5 .1-7.1 .3-10.6-14-13.9-29.7-33.1-39.3-56.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256S512 397.4 512 256c0-23.3-3.1-45.9-8.9-67.3-9.6 23.7-25.4 42.8-39.3 56.7 .2 3.5 .3 7 .3 10.6zM368 58.9c11.7-6 24.5-9.6 37.7-10.6-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c13.2 1 26 4.6 37.7 10.6 13.8-7.1 29.3-10.9 45.1-10.9l2.9 0c8.9 0 17.6 1.2 25.8 3.5 12.4-2.3 25.2-3.5 38.2-3.5s25.8 1.2 38.2 3.5c8.2-2.3 16.9-3.5 25.8-3.5l2.9 0c15.8 0 31.3 3.8 45.1 10.9zm4.2 243.4c-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 19.8 55.9 73.1 95.9 135.8 95.9 62.7 0 116-40.1 135.8-96 4.1-11.6-7.8-21.4-19.6-17.8zM322.9 96L320 96c-26.5 0-48 21.5-48 48 0 53.4 66.9 95.7 89 108.2 4.4 2.5 9.6 2.5 14 0 22.1-12.5 89-54.8 89-108.2 0-26.5-21.5-48-48-48l-2.9 0c-13.5 0-26.5 5.4-36 14.9l-9.1 9.1-9.1-9.1c-9.5-9.5-22.5-14.9-36-14.9zm-188 14.9c-9.5-9.5-22.5-14.9-36-14.9L96 96c-26.5 0-48 21.5-48 48 0 53.4 66.9 95.7 89 108.2 4.4 2.5 9.6 2.5 14 0 22.1-12.5 89-54.8 89-108.2 0-26.5-21.5-48-48-48l-2.9 0c-13.5 0-26.5 5.4-36 14.9l-9.1 9.1-9.1-9.1z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faFaceKissBeam = {\n prefix: 'far',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm240 16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-64-92c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faFilePdf = {\n prefix: 'far',\n iconName: 'file-pdf',\n icon: [576, 512, [], \"f1c1\", \"M208 48L96 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0 48-80 0c-35.3 0-64-28.7-64-64L32 64C32 28.7 60.7 0 96 0L229.5 0c17 0 33.3 6.7 45.3 18.7L397.3 141.3c12 12 18.7 28.3 18.7 45.3l0 149.5-48 0 0-128-88 0c-39.8 0-72-32.2-72-72l0-88zM348.1 160L256 67.9 256 136c0 13.3 10.7 24 24 24l68.1 0zM240 380l32 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-12 0 0 28c0 11-9 20-20 20s-20-9-20-20l0-128c0-11 9-20 20-20zm32 80c11 0 20-9 20-20s-9-20-20-20l-12 0 0 40 12 0zm96-80l32 0c28.7 0 52 23.3 52 52l0 64c0 28.7-23.3 52-52 52l-32 0c-11 0-20-9-20-20l0-128c0-11 9-20 20-20zm32 128c6.6 0 12-5.4 12-12l0-64c0-6.6-5.4-12-12-12l-12 0 0 88 12 0zm76-108c0-11 9-20 20-20l48 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 24 28 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-128z\"]\n};\nvar faFaceGrinWide = {\n prefix: 'far',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faFaceLaughSquint = {\n prefix: 'far',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm125.2 76.4c-6.5-14 5-28.4 20.4-28.4l220.8 0c15.4 0 26.8 14.4 20.4 28.4-22.8 49.4-72.8 83.6-130.8 83.6s-107.9-34.2-130.8-83.6zm-2.6-173.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faFaceKissWinkHeart = {\n prefix: 'far',\n iconName: 'face-kiss-wink-heart',\n icon: [640, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M386 439.5c-29.2 15.6-62.5 24.5-98 24.5-114.9 0-208-93.1-208-208S173.2 48 288 48c113.2 0 205.2 90.4 207.9 202.9 14.3 1.5 28.6 6 41.9 13.7 2 1.2 4 2.4 5.9 3.7 .2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-5.8-12.9-12-28.5-17.2-45.2zM256 288c0 8.8 7.2 16 16 16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c26.5 0 48-21.5 48-48 0-12.3-4.6-23.5-12.2-32 7.6-8.5 12.2-19.7 12.2-32 0-26.5-21.5-48-48-48l-32 0c-8.8 0-16 7.2-16 16zm-48-48a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm152-44l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faCopy = {\n prefix: 'far',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-197.5c0-17-6.7-33.3-18.7-45.3L370.7 18.7C358.7 6.7 342.5 0 325.5 0L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-48 0 0 16c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0 0-48-16 0z\"]\n};\nvar faChessKing = {\n prefix: 'far',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224-32c13.3 0 24 10.7 24 24l0 40 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 80 161.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L357.2 374.5 405.6 435c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L79.4 512c-26.2 0-47.4-21.2-47.4-47.4 0-10.8 3.7-21.2 10.4-29.6L90.8 374.5 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l161.8 0 0-80-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-40c0-13.3 10.7-24 24-24zM131.8 400l-3.6 4.4-47.6 59.6 286.6 0-47.6-59.6-3.6-4.4-184.3 0zm1.1-48.5l.3 .5 181.6 0 .3-.5 78.3-143.5-338.7 0 78.3 143.5z\"]\n};\nvar faSquarePlus = {\n prefix: 'far',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faFileCode = {\n prefix: 'far',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM170.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm80-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'far',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faMoneyBill1 = {\n prefix: 'far',\n iconName: 'money-bill-1',\n icon: [512, 512, [\"money-bill-alt\"], \"f3d1\", \"M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l288 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-288 0zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm256 16a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm-16 44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faEyeSlash = {\n prefix: 'far',\n iconName: 'eye-slash',\n icon: [576, 512, [], \"f070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM176.9 111.1c32.1-18.9 69.2-31.1 111.1-31.1 65.2 0 118.8 29.6 159.9 67.7 38.5 35.7 65.1 78.3 78.6 108.3-13.6 30-40.2 72.5-78.6 108.3-3.1 2.8-6.2 5.6-9.4 8.4L393.8 328c14-20.5 22.2-45.3 22.2-72 0-70.7-57.3-128-128-128-26.7 0-51.5 8.2-72 22.2l-39.1-39.1zm182 182l-108-108c11.1-5.8 23.7-9.1 37.1-9.1 44.2 0 80 35.8 80 80 0 13.4-3.3 26-9.1 37.1zM103.4 173.2l-34-34c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6L352.2 422c-20 6.4-41.4 10-64.2 10-65.2 0-118.8-29.6-159.9-67.7-38.5-35.7-65.1-78.3-78.6-108.3 10.4-23.1 28.6-53.6 54-82.8z\"]\n};\nvar faFileWord = {\n prefix: 'far',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm71.3 274.2c-3.2-12.9-16.2-20.7-29.1-17.5S85.5 273 88.7 285.8l32 128c2.5 10.2 11.4 17.5 21.9 18.1s20.1-5.7 23.8-15.5l25.5-68.1 25.5 68.1c3.7 9.8 13.3 16.1 23.8 15.5s19.4-7.9 21.9-18.1l32-128c3.2-12.9-4.6-25.9-17.5-29.1s-25.9 4.6-29.1 17.5l-13.3 53.2-20.9-55.8C211 262.2 202 256 192 256s-19 6.2-22.5 15.6l-20.9 55.8-13.3-53.2z\"]\n};\nvar faFaceAngry = {\n prefix: 'far',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-144c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faChessKnight = {\n prefix: 'far',\n iconName: 'chess-knight',\n icon: [448, 512, [9822], \"f441\", \"M232-32c110.5 0 200 89.5 200 200l0 127.7c0 18.9-6.1 37.1-17.2 52.2l-5.1 6.2-36.3 40.7 32.1 40.2c6.7 8.4 10.4 18.8 10.4 29.6l-.2 4.8c-2.4 23.9-22.6 42.5-47.1 42.5l-289.2 0-4.8-.2c-23.9-2.4-42.5-22.6-42.5-47.1 0-10.8 3.7-21.2 10.4-29.6l37.6-47 0-24.3c0-24.3 10.1-47.6 27.8-64.2l63.5-59.5-17.4 0-.2 .2c-20.3 20.3-49.6 28.2-77.1 21.1l-5.5-1.6c-30.9-10.3-52.3-38-54.9-70.1l-.2-6.4 0-1.4c0-19.7 7.1-38.8 19.9-53.8l76.1-88.8 0-47.1 .1-2.5C113.4-22.6 123.6-32 136-32l96 0zM80.7 464l286.6 0-38.4-48-209.9 0-38.4 48zM160 48c0 5.7-2.1 11.3-5.8 15.6L72.3 159.1C67 165.4 64 173.4 64 181.7l0 1.4 .4 5.2c1.9 11.9 10.3 21.9 21.9 25.8l4.5 1.1c10.5 1.9 21.3-1.4 29-9l7.2-7.2 3.7-3c3.9-2.6 8.5-4 13.3-4l88 0c9.8 0 18.7 6 22.3 15.2s1.3 19.6-5.9 26.3l-107.8 101c-8.1 7.6-12.7 18.1-12.7 29.2l0 4.3 205.2 0 40.7-45.8 2.3-2.8c5.1-6.8 7.8-15.2 7.8-23.7L384 168c0-83.9-68.1-152-152-152l-72 0 0 32zm32 72a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'far',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faHandPeace = {\n prefix: 'far',\n iconName: 'hand-peace',\n icon: [448, 512, [9996], \"f25b\", \"M219 1.4c-35.2-3.7-66.6 21.8-70.3 57l-6.4 60.6-17.4-49.4C113.2 36.3 76.6 18.8 43.3 30.5S-7.6 78.8 4.1 112.1L56.9 262.2C41.7 276.7 32.2 297.3 32.2 320l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-120c0-35.3-28.7-64-64-64-7.9 0-15.4 1.4-22.4 4-10.4-21.3-32.3-36-57.6-36-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4c-6.6 10.1-10.5 22.2-10.5 35.2l0 48c0 .7 0 1.4 0 2-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM79.6 85.6l54.3 154.4-21.7 0c-4 0-8 .3-11.9 .9L49.4 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM256.2 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36 5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64 0-.7 0-1.4 0-2 5.1 1.3 10.5 2 16 2 7.9 0 15.4-1.4 22.4-4zm73.6-28c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48z\"]\n};\nvar faCompass = {\n prefix: 'far',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.3 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faSquare = {\n prefix: 'far',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faFaceGrin = {\n prefix: 'far',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrin = faFaceGrin;\nvar faFaceSmile = {\n prefix: 'far',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSmile = faFaceSmile;\nvar faFaceSmileBeam = {\n prefix: 'far',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faFolderClosed = {\n prefix: 'far',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 400L64 400c-8.8 0-16-7.2-16-16l0-144 416 0 0 144c0 8.8-7.2 16-16 16zm16-208l-416 0 0-96c0-8.8 7.2-16 16-16l138.7 0c3.5 0 6.8 1.1 9.6 3.2L250.7 112c13.8 10.4 30.7 16 48 16L448 128c8.8 0 16 7.2 16 16l0 48zM64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z\"]\n};\nvar faKeyboard = {\n prefix: 'far',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z\"]\n};\nvar faFaceRollingEyes = {\n prefix: 'far',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 376c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM160 264c-22.1 0-40-17.9-40-40 0-9.5 3.3-18.1 8.8-25 3.2 14.3 16 25 31.2 25s28-10.7 31.2-25c5.5 6.8 8.8 15.5 8.8 25 0 22.1-17.9 40-40 40zm0 40a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-40c-22.1 0-40-17.9-40-40 0-9.5 3.3-18.1 8.8-25 3.2 14.3 16 25 31.2 25s28-10.7 31.2-25c5.5 6.8 8.8 15.5 8.8 25 0 22.1-17.9 40-40 40zm0 40a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faFaceGrimace = {\n prefix: 'far',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256a256 256 0 1 1 -512 0 256 256 0 1 1 512 0zM152 352c0 11.9 8.6 21.8 20 23.7l0-47.3c-11.4 1.9-20 11.8-20 23.7zm84 24l0-48-24 0 0 48 24 0zm64 0l0-48-24 0 0 48 24 0zm40-.3c11.4-1.9 20-11.8 20-23.7s-8.6-21.8-20-23.7l0 47.3zM176 288l160 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-160 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faCircleDot = {\n prefix: 'far',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm0 304a96 96 0 1 1 0-192 96 96 0 1 1 0 192z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faObjectGroup = {\n prefix: 'far',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M40 64a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm48 59.3c16-6.5 28.9-19.3 35.3-35.3l329.3 0c6.5 16 19.3 28.9 35.3 35.3l0 265.3c-16 6.5-28.9 19.3-35.3 35.3l-329.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-265.3zM512 0c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0 28.7 0 0 28.7 0 64 0 90.9 16.5 113.9 40 123.3l0 265.3c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l329.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-265.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64zM488 64a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 424a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm424 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM192 176l88 0 0 56-88 0 0-56zm-8-40c-17.7 0-32 14.3-32 32l0 72c0 17.7 14.3 32 32 32l104 0c17.7 0 32-14.3 32-32l0-72c0-17.7-14.3-32-32-32l-104 0zm72 184l0 24c0 17.7 14.3 32 32 32l104 0c17.7 0 32-14.3 32-32l0-72c0-17.7-14.3-32-32-32l-24 0c0 14.6-3.9 28.2-10.7 40l26.7 0 0 56-88 0 0-16.4c-2.6 .3-5.3 .4-8 .4l-32 0z\"]\n};\nvar faFaceFlushed = {\n prefix: 'far',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM160 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faStarHalfStroke = {\n prefix: 'far',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9zM264.1 91.8l0 284.1-100.1 50.9 19.8-125.5c1.2-7.6-1.3-15.3-6.7-20.7l-89.8-89.9 125.5-20c7.6-1.2 14.1-6 17.6-12.8l33.8-66.2zm48 284.1l0-284.1 33.8 66.2c3.5 6.8 10 11.6 17.6 12.8l125.5 20-89.8 89.9c-5.4 5.4-7.9 13.1-6.7 20.7l19.8 125.5-100.1-50.9z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faFileVideo = {\n prefix: 'far',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 288l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faFaceLaugh = {\n prefix: 'far',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faHandPointer = {\n prefix: 'far',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4 8.8 0 16 7.2 16 16 0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4 7.8 0 14.3 5.6 15.7 13 1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4 8.8 0 16 7.2 16 16l0 120c0 39.8-32.2 72-72 72l-116.6 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23L160 64zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2L328 512c66.3 0 120-53.7 120-120l0-120c0-35.3-28.7-64-64-64-4.5 0-8.8 .5-13 1.3-11.7-15.4-30.2-25.3-51-25.3-6.9 0-13.5 1.1-19.7 3.1-11.6-16.4-30.7-27.1-52.3-27.1-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"]\n};\nvar faRegistered = {\n prefix: 'far',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144c-13.3 0-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56 34.4 0 41 68.3c6.8 11.4 21.6 15 32.9 8.2s15-21.6 8.2-32.9l-30.2-50.3c24.6-11.5 41.6-36.4 41.6-65.3 0-39.8-32.2-72-72-72l-80 0zm72 96l-48 0 0-48 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0z\"]\n};\nvar icons = {\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faCalendarCheck: faCalendarCheck,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faHandPointLeft: faHandPointLeft,\n faFileExcel: faFileExcel,\n faEnvelope: faEnvelope,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faTruck: faTruck,\n faBell: faBell,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faHandPointUp: faHandPointUp,\n faHandLizard: faHandLizard,\n faSquareFull: faSquareFull,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faEye: faEye,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faChessQueen: faChessQueen,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faClock: faClock,\n faClockFour: faClockFour,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faPaperPlane: faPaperPlane,\n faHeart: faHeart,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faClone: faClone,\n faFolderOpen: faFolderOpen,\n faWindowMinimize: faWindowMinimize,\n faStarHalf: faStarHalf,\n faAlarmClock: faAlarmClock,\n faNewspaper: faNewspaper,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faObjectUngroup: faObjectUngroup,\n faComment: faComment,\n faChessPawn: faChessPawn,\n faCalendarPlus: faCalendarPlus,\n faClipboard: faClipboard,\n faThumbsDown: faThumbsDown,\n faIdBadge: faIdBadge,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faChessBishop: faChessBishop,\n faEnvelopeOpen: faEnvelopeOpen,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faFileImage: faFileImage,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faSun: faSun,\n faImage: faImage,\n faLightbulb: faLightbulb,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faMap: faMap,\n faHandPointDown: faHandPointDown,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faCloud: faCloud,\n faCircle: faCircle,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faThumbsUp: faThumbsUp,\n faBuilding: faBuilding,\n faChessRook: faChessRook,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faFile: faFile,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faCalendarMinus: faCalendarMinus,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faHandPointRight: faHandPointRight,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faHandScissors: faHandScissors,\n faGem: faGem,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faLifeRing: faLifeRing,\n faCopyright: faCopyright,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faCalendar: faCalendar,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faHouse: faHouse,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeLgAlt: faHomeLgAlt,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserLarge: faUserLarge,\n faSnowflake: faSnowflake,\n faBookmark: faBookmark,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faHandshake: faHandshake,\n faHandshakeAlt: faHandshakeAlt,\n faHandshakeSimple: faHandshakeSimple,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faFileAudio: faFileAudio,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faComments: faComments,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faMoon: faMoon,\n faClosedCaptioning: faClosedCaptioning,\n faImages: faImages,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadphonesSimple: faHeadphonesSimple,\n faFilePowerpoint: faFilePowerpoint,\n faWindowMaximize: faWindowMaximize,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faHandSpock: faHandSpock,\n faBellSlash: faBellSlash,\n faStar: faStar,\n faFlag: faFlag,\n faLemon: faLemon,\n faWindowRestore: faWindowRestore,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faFilePdf: faFilePdf,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faCopy: faCopy,\n faChessKing: faChessKing,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faFileCode: faFileCode,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faEyeSlash: faEyeSlash,\n faFileWord: faFileWord,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faChessKnight: faChessKnight,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faHandPeace: faHandPeace,\n faCompass: faCompass,\n faSquare: faSquare,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faFolderClosed: faFolderClosed,\n faKeyboard: faKeyboard,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faObjectGroup: faObjectGroup,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faFileVideo: faFileVideo,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faHandPointer: faHandPointer,\n faRegistered: faRegistered\n};\n\nexport { icons as far, prefix, faSquareMinus, faMinusSquare, faCalendarCheck, faFaceKiss, faKiss, faPaste, faFileClipboard, faHandPointLeft, faFileExcel, faEnvelope, faSquareCaretDown, faCaretSquareDown, faTruck, faBell, faMessage, faCommentAlt, faFaceDizzy, faDizzy, faCalendarDays, faCalendarAlt, faHandPointUp, faHandLizard, faSquareFull, faCirclePause, faPauseCircle, faHardDrive, faHdd, faFileZipper, faFileArchive, faFloppyDisk, faSave, faFaceGrinTongueSquint, faGrinTongueSquint, faCamera, faCameraAlt, faFaceGrinStars, faGrinStars, faEye, faFaceSadTear, faSadTear, faShareFromSquare, faShareSquare, faNoteSticky, faStickyNote, faHandBackFist, faHandRock, faChessQueen, faFaceGrinTears, faGrinTears, faPenToSquare, faEdit, faFaceGrinBeamSweat, faGrinBeamSweat, faClock, faClockFour, faFaceLaughWink, faLaughWink, faPaperPlane, faHeart, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faClone, faFolderOpen, faWindowMinimize, faStarHalf, faAlarmClock, faNewspaper, faHospital, faHospitalAlt, faHospitalWide, faCircleStop, faStopCircle, faObjectUngroup, faComment, faChessPawn, faCalendarPlus, faClipboard, faThumbsDown, faIdBadge, faSquareCheck, faCheckSquare, faChessBishop, faEnvelopeOpen, faCircleXmark, faTimesCircle, faXmarkCircle, faSquareCaretUp, faCaretSquareUp, faFileImage, faSquareCaretRight, faCaretSquareRight, faSun, faImage, faLightbulb, faAddressCard, faContactCard, faVcard, faFaceMeh, faMeh, faMap, faHandPointDown, faFaceMehBlank, faMehBlank, faFaceGrinTongue, faGrinTongue, faFutbol, faFutbolBall, faSoccerBall, faFaceSurprise, faSurprise, faFolder, faFolderBlank, faCloud, faCircle, faFaceGrinSquint, faGrinSquint, faCircleUser, faUserCircle, faRectangleList, faListAlt, faHand, faHandPaper, faThumbsUp, faBuilding, faChessRook, faCircleQuestion, faQuestionCircle, faFile, faFaceSadCry, faSadCry, faCalendarMinus, faFaceTired, faTired, faHandPointRight, faCircleUp, faArrowAltCircleUp, faHandScissors, faGem, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faTrashCan, faTrashAlt, faLifeRing, faCopyright, faCircleLeft, faArrowAltCircleLeft, faCalendar, faFaceFrownOpen, faFrownOpen, faChartBar, faBarChart, faHouse, faHome, faHomeAlt, faHomeLgAlt, faFaceFrown, faFrown, faUser, faUserAlt, faUserLarge, faSnowflake, faBookmark, faSquareCaretLeft, faCaretSquareLeft, faHandshake, faHandshakeAlt, faHandshakeSimple, faFaceSmileWink, faSmileWink, faFaceGrinSquintTears, faGrinSquintTears, faFileAudio, faCalendarXmark, faCalendarTimes, faCircleDown, faArrowAltCircleDown, faFileLines, faFileAlt, faFileText, faComments, faCircleCheck, faCheckCircle, faMoon, faClosedCaptioning, faImages, faCircleRight, faArrowAltCircleRight, faIdCard, faDriversLicense, faCirclePlay, faPlayCircle, faFaceLaughBeam, faLaughBeam, faAddressBook, faContactBook, faHourglass, faHourglassEmpty, faHeadphones, faHeadphonesAlt, faHeadphonesSimple, faFilePowerpoint, faWindowMaximize, faCommentDots, faCommenting, faFaceGrinTongueWink, faGrinTongueWink, faHourglassHalf, faHourglass2, faCreditCard, faCreditCardAlt, faHandSpock, faBellSlash, faStar, faFlag, faLemon, faWindowRestore, faFaceGrinHearts, faGrinHearts, faFaceKissBeam, faKissBeam, faFilePdf, faFaceGrinWide, faGrinAlt, faFaceLaughSquint, faLaughSquint, faFaceKissWinkHeart, faKissWinkHeart, faCopy, faChessKing, faSquarePlus, faPlusSquare, faFileCode, faFaceGrinWink, faGrinWink, faMoneyBill1, faMoneyBillAlt, faEyeSlash, faFileWord, faFaceAngry, faAngry, faChessKnight, faFaceGrinBeam, faGrinBeam, faHandPeace, faCompass, faSquare, faFaceGrin, faGrin, faFaceSmile, faSmile, faFaceSmileBeam, faSmileBeam, faFolderClosed, faKeyboard, faFaceRollingEyes, faMehRollingEyes, faFaceGrimace, faGrimace, faCircleDot, faDotCircle, faObjectGroup, faFaceFlushed, faFlushed, faStarHalfStroke, faStarHalfAlt, faFileVideo, faFaceLaugh, faLaugh, faHandPointer, faRegistered };\n", "/*!\n * Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2026 Fonticons, Inc.\n */\nvar prefix = \"fas\";\nvar fa0 = {\n prefix: 'fas',\n iconName: '0',\n icon: [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z\"]\n};\nvar fa1 = {\n prefix: 'fas',\n iconName: '1',\n icon: [256, 512, [], \"31\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352c0-17.7-14.3-32-32-32L32 32z\"]\n};\nvar fa2 = {\n prefix: 'fas',\n iconName: '2',\n icon: [384, 512, [], \"32\", \"M48 64c0-17.7 14.3-32 32-32l171 0c60.2 0 109 48.8 109 109 0 43.8-26.2 83.3-66.4 100.4l-139.1 59C119 315.4 96 350.2 96 388.7l0 27.3 224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32l0-59.3c0-64.2 38.4-122.2 97.5-147.3l139.1-59c16.6-7.1 27.4-23.4 27.4-41.4 0-24.9-20.2-45-45-45L80 96C62.3 96 48 81.7 48 64z\"]\n};\nvar fa3 = {\n prefix: 'fas',\n iconName: '3',\n icon: [320, 512, [], \"33\", \"M80 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l160 0c70.7 0 128 57.3 128 128 0 38.2-16.8 72.5-43.3 96 26.6 23.5 43.3 57.8 43.3 96 0 70.7-57.3 128-128 128L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L80 288z\"]\n};\nvar fa4 = {\n prefix: 'fas',\n iconName: '4',\n icon: [384, 512, [], \"34\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 288c0 35.3 28.7 64 64 64l192 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224-192 0 0-224z\"]\n};\nvar fa5 = {\n prefix: 'fas',\n iconName: '5',\n icon: [320, 512, [], \"35\", \"M0 64C0 46.3 14.3 32 32 32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0 0 112 120 0c75.1 0 136 60.9 136 136S259.1 480 184 480L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l152 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-17.7 0-32-14.3-32-32L0 64z\"]\n};\nvar fa6 = {\n prefix: 'fas',\n iconName: '6',\n icon: [384, 512, [], \"36\", \"M256 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-88 0c-48.6 0-88 39.4-88 88l0 32.2c22.9-15.3 50.4-24.2 80-24.2l48 0c79.5 0 144 64.5 144 144S287.5 480 208 480l-48 0C80.5 480 16 415.5 16 336l0-152C16 100.1 84.1 32 168 32l88 0zM80 336c0 44.2 35.8 80 80 80l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0c-44.2 0-80 35.8-80 80z\"]\n};\nvar fa7 = {\n prefix: 'fas',\n iconName: '7',\n icon: [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar fa8 = {\n prefix: 'fas',\n iconName: '8',\n icon: [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128l-32 0c-70.7 0-128 57.3-128 128 0 34.6 13.7 66 36 89-31.5 23.3-52 60.8-52 103 0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128 0-42.2-20.5-79.7-52-103 22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l48.1 0zm0-64L144 224c-35.3 0-64-28.7-64-64 0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64 0 35.3-28.6 64-64 64z\"]\n};\nvar fa9 = {\n prefix: 'fas',\n iconName: '9',\n icon: [384, 512, [], \"39\", \"M208 320c29.6 0 57.1-8.9 80-24.2l0 32.2c0 48.6-39.4 88-88 88L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l104 0c83.9 0 152-68.1 152-152l0-152.1C351.9 96.4 287.5 32 208 32l-48 0C80.5 32 16 96.5 16 176S80.5 320 160 320l48 0zm80-144c0 44.2-35.8 80-80 80l-48 0c-44.2 0-80-35.8-80-80s35.8-80 80-80l48 0c44.2 0 80 35.8 80 80z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M136 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-114.9 0c-24.9 0-45.1 20.2-45.1 45.1 0 22.5 16.5 41.5 38.7 44.7l91.6 13.1c53.8 7.7 93.7 53.7 93.7 108 0 60.3-48.9 109.1-109.1 109.1l-10.9 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-72 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l130.9 0c24.9 0 45.1-20.2 45.1-45.1 0-22.5-16.5-41.5-38.7-44.7l-91.6-13.1C55.9 273.5 16 227.4 16 173.1 16 112.9 64.9 64 125.1 64l10.9 0 0-40z\"]\n};\nvar faDollar = faDollarSign;\nvar faUsd = faDollarSign;\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [128021], \"f6d3\", \"M32 112c16.6 0 30.2 12.6 31.8 28.7l.3 6.6C65.8 163.4 79.4 176 96 176l179.1 0 140.9 60.4 0 243.6c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-131.3C296 361 268.8 368 240 368s-56-7-80-19.3L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-245.6c-37.3-13.2-64-48.6-64-90.4 0-17.7 14.3-32 32-32zM355.8-32c7.7 0 14.9 3.6 19.6 9.8L392 0 444.1 0c12.7 0 24.9 5.1 33.9 14.1L496 32 552 32c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-64 0-7 28-124.7-53.4 31.6-147.2C334.3-23.9 344.2-32 355.8-32zM448 44a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96L0 424c0 48.6 39.4 88 88 88 25.2 0 48-10.6 64-27.6 16 17 38.8 27.6 64 27.6 40.3 0 74.2-27.1 84.7-64l134.6 0c10.4 36.9 44.4 64 84.7 64 43 0 78.9-30.9 86.5-71.7 20-10.8 33.5-32 33.5-56.3l0-146.7c0-17-6.7-33.3-18.7-45.3L576 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM480 192l50.7 0 45.3 45.3 0 50.7-96 0 0-96zM88 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm392 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM216 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faRotate = {\n prefix: 'fas',\n iconName: 'rotate',\n icon: [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M480.1 192l7.9 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2S477.9 .2 471 7L419.3 58.8C375 22.1 318 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1C79.2 135.5 159.3 64 256 64 300.4 64 341.2 79 373.7 104.3L327 151c-6.9 6.9-8.9 17.2-5.2 26.2S334.3 192 344 192l136.1 0zm29.4 100.5c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-44.4 0-85.2-15-117.7-40.3L185 361c6.9-6.9 8.9-17.2 5.2-26.2S177.7 320 168 320L24 320c-13.3 0-24 10.7-24 24L0 488c0 9.7 5.8 18.5 14.8 22.2S34.1 511.8 41 505l51.8-51.8C137 489.9 194 512 256 512 385 512 491.7 416.6 509.4 292.5z\"]\n};\nvar faSyncAlt = faRotate;\nvar faSquareMinus = {\n prefix: 'fas',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm72 200l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M320 0c17.7 0 32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32zm22 161.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 331.2 137 279.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 195.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faFaceKiss = {\n prefix: 'fas',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faKiss = faFaceKiss;\nvar faKitchenSet = {\n prefix: 'fas',\n iconName: 'kitchen-set',\n icon: [576, 512, [], \"e51a\", \"M240 144a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288 64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l128 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [384, 512, [129516], \"f471\", \"M352 0c17.7 0 32 14.3 32 32 0 57.8-24.4 104.8-57.4 144.5-24.1 28.9-53.8 55.1-83.6 79.5 29.8 24.5 59.5 50.6 83.6 79.5 33 39.6 57.4 86.7 57.4 144.5 0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32S0 497.7 0 480C0 422.2 24.4 375.2 57.4 335.5 81.5 306.6 111.2 280.5 141 256 111.2 231.5 81.5 205.4 57.4 176.5 24.4 136.8 0 89.8 0 32 0 14.3 14.3 0 32 0S64 14.3 64 32l256 0c0-17.7 14.3-32 32-32zM283.5 384l-182.9 0c-8.2 10.5-15.1 21.1-20.6 32l224.2 0c-5.6-10.9-12.5-21.5-20.6-32zM238 336c-14.3-13-29.8-25.8-46-39-16.2 13.1-31.7 26-46 39l92 0zM100.5 128l182.9 0c8.2-10.5 15.1-21.1 20.6-32L79.9 96c5.6 10.9 12.5 21.5 20.6 32zM146 176c14.3 13 29.8 25.8 46 39 16.2-13.1 31.7-26 46-39l-92 0z\"]\n};\nvar faChildReaching = {\n prefix: 'fas',\n iconName: 'child-reaching',\n icon: [384, 512, [], \"e59d\", \"M256 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.3 85.4S11.6 115 21.4 129.8L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6-12.6 0-24.9-2-36.6-5.8-.9-.3-1.8-.7-2.7-.9z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-224c0-61.9 50.1-112 112-112l64 0 0-48c0-35.3-28.7-64-64-64L64 0zM248 112l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm40 48c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160z\"]\n};\nvar faFileClipboard = faPaste;\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [9732], \"f753\", \"M493.7 .9l-194.2 74.7 2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309 0 421.1 90.9 512 203 512 275.4 512 342.3 473.4 378.6 410.7L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3 74.7-194.2c.6-1.5 .9-3.2 .9-4.8 0-7.5-6-13.5-13.5-13.5-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faGears = {\n prefix: 'fas',\n iconName: 'gears',\n icon: [640, 512, [\"cogs\"], \"f085\", \"M415.9 210.5c12.2-3.3 25 2.5 30.5 13.8L465 261.9c10.3 1.4 20.4 4.2 29.9 8.1l35-23.3c10.5-7 24.4-5.6 33.3 3.3l19.2 19.2c8.9 8.9 10.3 22.9 3.3 33.3l-23.3 34.9c1.9 4.7 3.6 9.6 5 14.7 1.4 5.1 2.3 10.1 3 15.2l37.7 18.6c11.3 5.6 17.1 18.4 13.8 30.5l-7 26.2c-3.3 12.1-14.6 20.3-27.2 19.5l-42-2.7c-6.3 8.1-13.6 15.6-21.9 22l2.7 41.9c.8 12.6-7.4 24-19.5 27.2l-26.2 7c-12.2 3.3-24.9-2.5-30.5-13.8l-18.6-37.6c-10.3-1.4-20.4-4.2-29.9-8.1l-35 23.3c-10.5 7-24.4 5.6-33.3-3.3l-19.2-19.2c-8.9-8.9-10.3-22.8-3.3-33.3l23.3-35c-1.9-4.7-3.6-9.6-5-14.7s-2.3-10.2-3-15.2l-37.7-18.6c-11.3-5.6-17-18.4-13.8-30.5l7-26.2c3.3-12.1 14.6-20.3 27.2-19.5l41.9 2.7c6.3-8.1 13.6-15.6 21.9-22l-2.7-41.8c-.8-12.6 7.4-24 19.5-27.2l26.2-7zM448.4 340a44 44 0 1 0 .1 88 44 44 0 1 0 -.1-88zM224.9-45.5l26.2 7c12.1 3.3 20.3 14.7 19.5 27.2l-2.7 41.8c8.3 6.4 15.6 13.8 21.9 22l42-2.7c12.5-.8 23.9 7.4 27.2 19.5l7 26.2c3.2 12.1-2.5 24.9-13.8 30.5l-37.7 18.6c-.7 5.1-1.7 10.2-3 15.2s-3.1 10-5 14.7l23.3 35c7 10.5 5.6 24.4-3.3 33.3L307.3 262c-8.9 8.9-22.8 10.3-33.3 3.3L239 242c-9.5 3.9-19.6 6.7-29.9 8.1l-18.6 37.6c-5.6 11.3-18.4 17-30.5 13.8l-26.2-7c-12.2-3.3-20.3-14.7-19.5-27.2l2.7-41.9c-8.3-6.4-15.6-13.8-21.9-22l-42 2.7c-12.5 .8-23.9-7.4-27.2-19.5l-7-26.2c-3.2-12.1 2.5-24.9 13.8-30.5l37.7-18.6c.7-5.1 1.7-10.1 3-15.2 1.4-5.1 3-10 5-14.7L55.1 46.5c-7-10.5-5.6-24.4 3.3-33.3L77.6-6c8.9-8.9 22.8-10.3 33.3-3.3l35 23.3c9.5-3.9 19.6-6.7 29.9-8.1l18.6-37.6c5.6-11.3 18.3-17 30.5-13.8zM192.4 84a44 44 0 1 0 0 88 44 44 0 1 0 0-88z\"]\n};\nvar faCogs = faGears;\nvar faFileCirclePlus = {\n prefix: 'fas',\n iconName: 'file-circle-plus',\n icon: [576, 512, [58606], \"e494\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7C.3 33.2 0 30.7 0 28.2 0 12.6 12.6 0 28.2 0L482.4 0c16.3 0 29.6 13.2 29.6 29.6 0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7-9.3 0-17.5-6.2-20-15.2z\"]\n};\nvar faArrowTrendUp = {\n prefix: 'fas',\n iconName: 'arrow-trend-up',\n icon: [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-169.4 169.4c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z\"]\n};\nvar faHexagonNodesBolt = {\n prefix: 'fas',\n iconName: 'hexagon-nodes-bolt',\n icon: [576, 512, [], \"e69a\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56c30.7 0 55.6-24.7 56-55.2c-7.5-12.9-13.5-26.8-17.6-41.5c-4.2-4-9.1-7.3-14.4-9.9l0-98.8c2.8-1.3 5.5-2.9 8-4.7l10.5 6c5.5-15.3 13.1-29.5 22.4-42.5l-9.1-5.2c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8zM440.5 132C425 105.2 390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c.4 .3 .8 .6 1.3 .9c21.7-9.5 45.6-14.8 70.8-14.8c2 0 4 0 5.9 .1c12.1-17.3 13.8-40.6 2.6-60.1zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [320, 512, [10067, 10068, 61736], \"3f\", \"M64 160c0-53 43-96 96-96s96 43 96 96c0 42.7-27.9 78.9-66.5 91.4-28.4 9.2-61.5 35.3-61.5 76.6l0 24c0 17.7 14.3 32 32 32s32-14.3 32-32l0-24c0-1.7 .6-4.1 3.5-7.3 3-3.3 7.9-6.5 13.7-8.4 64.3-20.7 110.8-81 110.8-152.3 0-88.4-71.6-160-160-160S0 71.6 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm96 352c22.1 0 40-17.9 40-40s-17.9-40-40-40-40 17.9-40 40 17.9 40 40 40z\"]\n};\nvar faHandsBound = {\n prefix: 'fas',\n iconName: 'hands-bound',\n icon: [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 213.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352 96 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7L576 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1l0 93.9-64 0 0-93.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2S124.2 166.4 135 180l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8 64 32zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L96 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z\"]\n};\nvar faPersonWalkingLuggage = {\n prefix: 'fas',\n iconName: 'person-walking-luggage',\n icon: [512, 512, [], \"e554\", \"M264.3 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 12.3-7 23-17.2 28.4-.9 4.2-2.4 8.4-4.3 12.3l-69 138.1-.8-.4-27.7 55.3c-9.9 19.8-33.9 27.8-53.7 17.9L14.6 521c-19.8-9.9-27.8-33.9-17.9-53.7L47.3 366.3c9.9-19.8 33.9-27.8 53.7-17.9l30.7 15.3 28.3-56.6c.3-.6 .4-1.2 .4-1.8l0-16.9c0-.2 0-.3 0-.5l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L422.1 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3L448 507.5c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2L372 428.4c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L238 421.1c3.8-3.8 6.6-8.6 8.1-13.8L256.4 371z\"]\n};\nvar faFileArrowDown = {\n prefix: 'fas',\n iconName: 'file-arrow-down',\n icon: [384, 512, [\"file-download\"], \"f56d\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM175 441c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-86.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 86.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64z\"]\n};\nvar faFileDownload = faFileArrowDown;\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M40 24A56 56 0 1 1 152 24 56 56 0 1 1 40 24zm51.1 88c23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c6 8.4 15.7 13.4 26 13.4l31.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C209.8 373.3 224 401.8 224 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L70.4 348.8C46.2 330.7 32 302.2 32 272l0-100.9C32 138.5 58.5 112 91.1 112zM32 512l0-132.7c3.1 2.7 6.3 5.4 9.6 7.9L96 428 96 512c0 17.7-14.3 32-32 32s-32-14.3-32-32zm544-88l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-168 0c-7.1 0-13.8-3.1-18.4-8.6s-6.5-12.6-5.3-19.6l30.7-176.7-63.1-137.6 0 72c-5.2-1-10.5-1.6-16-1.6l-32 0 0-120c0-30.9 25.1-56 56-56L520 0c30.9 0 56 25.1 56 56l0 368zM288 336c5.5 0 10.8-.6 16-1.6L304 520c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-184 32 0z\"]\n};\nvar faLocust = {\n prefix: 'fas',\n iconName: 'locust',\n icon: [576, 512, [], \"e520\", \"M328 32c137 0 248 111 248 248l0 40-.4 8.2C571.5 368.5 537.4 400 496 400l-12.3 0 25.2 44.1c6.6 11.5 2.6 26.2-8.9 32.8s-26.2 2.6-32.7-8.9l-38.8-67.9-80.4 0-48.2 69.7c-7.5 10.9-22.5 13.6-33.4 6.1s-13.6-22.5-6.1-33.4l29.3-42.3-74.5 0-51.7 70.2c-7.9 10.7-22.9 12.9-33.6 5.1s-12.9-22.9-5.1-33.6l40.5-55-43-16.4-79.3 100.5c-8.2 10.4-23.3 12.2-33.7 4s-12.2-23.3-4-33.7l240-304 2.1-2.3c5.2-5.1 12.5-7.5 19.9-6.6 8.4 1.1 15.6 6.5 18.9 14.3l21.7 50.7 40.9-55.5 2.1-2.4c5.1-5.3 12.5-8 20-7.2 8.5 1 15.9 6.5 19.3 14.4l41.8 97.5 64.2 0c10.2 0 20 2 29 5.5-16.4-94-98.3-165.5-197-165.5l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0zM488 296a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM43.5 331.1C36.2 321.4 32 309.5 32 296.8 32 265.5 57.5 240 88.9 240l27.6 0-72.9 91.1zM225.1 240l48.2 0 1.4-1.9-16.9-39.5-32.7 41.5zm107.8 0l46.7 0-17.2-40-29.5 40z\"]\n};\nvar faRightLong = {\n prefix: 'fas',\n iconName: 'right-long',\n icon: [576, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M566.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S384 396.9 384 384l0-64-336 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48l336 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128z\"]\n};\nvar faLongArrowAltRight = faRightLong;\nvar faTruckDroplet = {\n prefix: 'fas',\n iconName: 'truck-droplet',\n icon: [576, 512, [], \"e58c\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM208 304c-39.8 0-72-32.2-72-72 0-33.2 34.5-78 55.8-102.4 8.7-10 23.8-10 32.5 0 21.2 24.4 55.8 69.1 55.8 102.4 0 48-32.2 72-72 72z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M240 24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l56 0 0-56zM66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64-208 0zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32 0 13.2-4 25.4-10.8 35.6 24.9 8.7 42.8 32.5 42.8 60.4 0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm16 168a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM88 352a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM64 424c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm232-24c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSubtract = faMinus;\nvar faArrowUpZA = {\n prefix: 'fas',\n iconName: 'arrow-up-z-a',\n icon: [512, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80zM288 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 224 320 224l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S461 32 448 32L320 32c-17.7 0-32 14.3-32 32zM412.6 273.7C407.2 262.8 396.1 256 384 256s-23.2 6.8-28.6 17.7l-80 160c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-80-160zM384 359.6l20.2 40.4-40.4 0 20.2-40.4z\"]\n};\nvar faSortAlphaUpAlt = faArrowUpZA;\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [576, 512, [], \"f131\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L424.7 358.8C458.9 324.2 480 276.6 480 224l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 39.3-15.7 74.9-41.3 100.9L356.8 291C373.6 273.7 384 250 384 224l0-128c0-53-43-96-96-96s-96 43-96 96l0 30.2-151-151zm298.3 434l-41.4-41.4c-3.3 .2-6.5 .3-9.8 .3-79.5 0-144-64.5-144-144l0-10.2-43.6-43.6c-2.8 3.9-4.4 8.7-4.4 13.8l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c9.3-1.2 18.4-3 27.3-5.4z\"]\n};\nvar faSquarePen = {\n prefix: 'fas',\n iconName: 'square-pen',\n icon: [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-23.8 23.8-71-71 23.8-23.8c15.6-15.6 40.9-15.6 56.6 0zM119.9 289l91.5-91.6 71 71-91.6 91.5c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faPenSquare = faSquarePen;\nvar faPencilSquare = faSquarePen;\nvar faHandFist = {\n prefix: 'fas',\n iconName: 'hand-fist',\n icon: [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"]\n};\nvar faFistRaised = faHandFist;\nvar faCommentSms = {\n prefix: 'fas',\n iconName: 'comment-sms',\n icon: [512, 512, [\"sms\"], \"f7cd\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM140.8 172.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6zm188.8 41.6c0-23 18.6-41.6 41.6-41.6l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6zm-98.3-33.8l24.7 41.1 24.7-41.1c3.7-6.2 11.1-9.1 18-7.2s11.7 8.2 11.7 15.4l0 102.4c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-44.6-8.7 14.5c-2.9 4.8-8.1 7.8-13.7 7.8s-10.8-3-13.7-7.8l-8.7-14.5 0 44.6c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-102.4c0-7.2 4.8-13.5 11.7-15.4s14.3 1 18 7.2z\"]\n};\nvar faSms = faCommentSms;\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64C0 28.7 28.7 0 64 0L258.7 0c17 0 33.3 6.7 45.3 18.7L365.3 80c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 256c-17.7 0-32 14.3-32 32l0 40 128 0 0-72-96 0zM64 416c0 17.7 14.3 32 32 32l48 0 0-72-80 0 0 40zm256 0l0-40-128 0 0 72 96 0c17.7 0 32-14.3 32-32zm0-128c0-17.7-14.3-32-32-32l-48 0 0 72 80 0 0-40z\"]\n};\nvar faScaleBalanced = {\n prefix: 'fas',\n iconName: 'scale-balanced',\n icon: [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3l0 294.7 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288L584.4 320 512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zM126.8 195.8L54.4 320 199.3 320 126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9S11.7 382 .9 337.1z\"]\n};\nvar faBalanceScale = faScaleBalanced;\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4l-26.1 74.6 293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 192c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-320 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 304a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAutomobile = faCar;\nvar faCropSimple = {\n prefix: 'fas',\n iconName: 'crop-simple',\n icon: [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-208 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64l-208 0 0 64 208 0 0 352z\"]\n};\nvar faCropAlt = faCropSimple;\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [448, 512, [127941], \"f5a2\", \"M224.3 128L139.7-12.9c-6.5-10.8-20.1-14.7-31.3-9.1L21.8 21.3C9.9 27.2 5.1 41.6 11 53.5L80.6 192.6c-30.1 33.9-48.3 78.5-48.3 127.4 0 106 86 192 192 192s192-86 192-192c0-48.9-18.3-93.5-48.3-127.4L437.6 53.5c5.9-11.9 1.1-26.3-10.7-32.2L340.2-22.1c-11.2-5.6-24.9-1.6-31.3 9.1L224.3 128zm30.8 142.5c1.4 2.8 4 4.7 7 5.1l50.1 7.3c7.7 1.1 10.7 10.5 5.2 16l-36.3 35.4c-2.2 2.2-3.2 5.2-2.7 8.3l8.6 49.9c1.3 7.6-6.7 13.5-13.6 9.9l-44.8-23.6c-2.7-1.4-6-1.4-8.7 0l-44.8 23.6c-6.9 3.6-14.9-2.2-13.6-9.9l8.6-49.9c.5-3-.5-6.1-2.7-8.3l-36.3-35.4c-5.6-5.4-2.5-14.8 5.2-16l50.1-7.3c3-.4 5.7-2.4 7-5.1l22.4-45.4c3.4-7 13.3-7 16.8 0l22.4 45.4z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [576, 512, [128220], \"f70e\", \"M0 112C0 70.5 31.6 36.4 72 32.4l0-.4 280 0c53 0 96 43 96 96l0 176-176 0c-39.8 0-72 32.2-72 72l0 60c0 24.3-19.7 44-44 44s-44-19.7-44-44l0-228-64 0c-26.5 0-48-21.5-48-48l0-48zM236.8 480c7.1-13.1 11.2-28.1 11.2-44l0-60c0-13.3 10.7-24 24-24l248 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-227.2 0zM80 80c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM164 266.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3L163.2 352 124 410.7c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l28-42 28 42c7.4 11 22.3 14 33.3 6.7s14-22.3 6.7-33.3L220.8 352 260 293.3c7.4-11 4.4-25.9-6.7-33.3s-25.9-4.4-33.3 6.7l-28 42-28-42z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c9.2 9.2 22.9 11.9 34.9 6.9S320 492.9 320 480l0-178.7 182.6-182.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [129345], \"f569\", \"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96 114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5 38.8 15.1 44.4 30.6 44.4 41.3 0 .8-2.7 17.2-46 35.9-38.9 16.8-96 28.1-162 28.1S132.9 260.7 94 243.9c-43.3-18.7-46-35.1-46-35.9 0-10.6 5.6-26.2 44.4-41.3 38.3-14.9 95.4-22.7 163.6-22.7 18 0 35.1 .5 51.4 1.6z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [320, 512, [128205], \"f276\", \"M192 284.4C256.1 269.9 304 212.5 304 144 304 64.5 239.5 0 160 0S16 64.5 16 144c0 68.5 47.9 125.9 112 140.4L128 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-195.6zM168 96c-30.9 0-56 25.1-56 56 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4 46.6-104 104-104 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faScaleUnbalancedFlip = {\n prefix: 'fas',\n iconName: 'scale-unbalanced-flip',\n icon: [640, 512, [\"balance-scale-right\"], \"f516\", \"M118.2 62.4C101.5 56.8 92.4 38.6 98 21.9S121.7-3.9 138.5 1.6l113 37.7c13.9-23.5 39.6-39.3 68.9-39.3 44.2 0 80 35.8 80 80 0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.7 145.2c-4.5 3.2-9.3 5.9-14.4 8.2l0 326.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.8 288L128.3 163.8 55.9 288 200.8 288zm-72.4 96c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zm382.8-92.2l-72.4 124.2 144.9 0-72.4-124.2zm126 141.3C626.4 478 574.1 512 511.2 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"]\n};\nvar faBalanceScaleRight = faScaleUnbalancedFlip;\nvar faArrowsToCircle = {\n prefix: 'fas',\n iconName: 'arrows-to-circle',\n icon: [512, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L128 82.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0-73.4-73.4C-3.1 42.1-3.1 21.9 9.4 9.4zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM502.6 54.6L429.3 128 448 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-45.3 448L384 429.3 384 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0 73.4 73.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM9.4 457.4L82.7 384 64 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64c-26.5 0-48 21.5-48 48 0 15.1 7.1 29.3 19.2 38.4l208 156c17.1 12.8 40.5 12.8 57.6 0l208-156c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48L48 64zM0 196L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-188-198.4 148.8c-34.1 25.6-81.1 25.6-115.2 0L0 196z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M120 88a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM7.7 144.5c13-17.9 38-21.8 55.9-8.8L99.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L16.5 200.3c-17.9-13-21.8-38-8.8-55.9zM97.5 329.3l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C38 438.6 36.1 417 47.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l24.3-24.3-26-37.2z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'fas',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faTent = {\n prefix: 'fas',\n iconName: 'tent',\n icon: [512, 512, [], \"e57d\", \"M26.9 206.9L3.7 444.9C1.8 463.7 16.6 480 35.5 480l172.7 0c26.5 0 48-21.5 48-48l0-129c0-8.3 6.7-15 15-15 5.5 0 10.6 3 13.2 7.9l86.1 159c8.4 15.5 24.6 25.1 42.2 25.1l64.1 0c18.9 0 33.7-16.3 31.8-35.1L485.6 207.1c-1.9-19.6-12.8-37.3-29.5-47.8L280.9 48.3c-15.7-10-35.8-9.9-51.5 .1L56.1 159.2c-16.5 10.6-27.3 28.2-29.2 47.7z\"]\n};\nvar faA = {\n prefix: 'fas',\n iconName: 'a',\n icon: [384, 512, [97], \"41\", \"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7c-93.3 224-146.7 352-160 384-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2l31.8-76.3 197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8c-13.3-32-66.7-160-160-384zM264 320l-144 0 72-172.8 72 172.8z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M128 224C128 152.2 144.3 88.4 169.5 43.4 195.1-2.4 226.6-24 256-24s60.9 21.6 86.5 67.4C367.7 88.4 384 152.2 384 224l-104 0 0 96 8 0c9.3 0 18.1 2 26 5.5l118.4-101.5-.5 0c0-78.4-17.7-150.6-47.6-204-6.1-11-12.9-21.3-20.3-30.9 86.5 35.9 147.8 115.1 147.8 218.9 0 7-3.1 13.7-8.4 18.2L347.4 360.1c3 7.4 4.6 15.4 4.6 23.9l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-64c0-8.4 1.6-16.5 4.6-23.9L8.4 226.2C3.1 221.7 0 215 0 208 0 104.2 61.3 24.9 147.8-10.9 140.5-1.4 133.7 9 127.6 20 97.7 73.4 80 145.6 80 224l-.5 0 118.4 101.5c8-3.5 16.8-5.5 26-5.5l8 0 0-96-104 0z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [640, 512, [], \"f218\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 187.2 0 0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1 177.4 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faBridgeCircleExclamation = {\n prefix: 'fas',\n iconName: 'bridge-circle-exclamation',\n icon: [576, 512, [], \"e4ca\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faCloudArrowUp = {\n prefix: 'fas',\n iconName: 'cloud-arrow-up',\n icon: [576, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM305 191c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faCloudUpload = faCloudArrowUp;\nvar faCloudUploadAlt = faCloudArrowUp;\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0 512 114.6 512 256l0 32c0 53-43 96-96 96-29.3 0-55.6-13.2-73.2-33.9-22.8 21-53.3 33.9-86.8 33.9-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1 5.7-5 13.1-8.1 21.3-8.1 17.7 0 32 14.3 32 32l0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faIndianRupeeSign = {\n prefix: 'fas',\n iconName: 'indian-rupee-sign',\n icon: [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32l264 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-76.7 0c17.7 19.8 30.1 44.6 34.7 72l42 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-42 0c-10.4 62.2-60.8 110.9-123.8 118.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c35.8 0 66.1-23.5 76.3-56L24 200c-13.3 0-24-10.7-24-24s10.7-24 24-24l164.3 0c-10.2-32.5-40.5-56-76.3-56L32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar faIndianRupee = faIndianRupeeSign;\nvar faInr = faIndianRupeeSign;\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [576, 512, [128666, 9951], \"f0d1\", \"M0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L557.3 192c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64L64 448c-35.3 0-64-28.7-64-64L0 96zM512 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM192 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faChalkboardUser = {\n prefix: 'fas',\n iconName: 'chalkboard-user',\n icon: [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M192 384c53 0 96 43 96 96 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32 0-53 43-96 96-96l96 0zM544 32c35.3 0 64 28.7 64 64l0 288c0 33.1-25.2 60.4-57.5 63.7l-6.5 .3-211.1 0c-5.1-24.2-16.3-46.1-32.1-64l51.2 0 0-32c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 32 32 0 0-288-352 0 0 57.3c-14.8-6-31-9.3-48-9.3-5.4 0-10.8 .3-16 1l0-49c0-35.3 28.7-64 64-64l352 0zM144 352a80 80 0 1 1 0-160 80 80 0 1 1 0 160z\"]\n};\nvar faChalkboardTeacher = faChalkboardUser;\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M286 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78 512c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3l59.4 0zM585.7 105.9c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5L522.1 274.9c-4.2 5.7-10.7 9.4-17.7 9.8s-14-2.2-18.9-7.3l-46.4-48c-9.2-9.5-9-24.7 .6-33.9 9.5-9.2 24.7-8.9 33.9 .6l26.5 27.4 85.6-117.7zM256.3 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [129399], \"f504\", \"M352 128c0 70.7-57.3 128-128 128-57.2 0-105.6-37.5-122-89.3-1.1 1.3-2.2 2.6-3.5 3.8-15.8 15.8-38.8 20.7-53.6 22.1-8.1 .8-14.6-5.7-13.8-13.8 1.4-14.7 6.3-37.8 22.1-53.6 5.8-5.8 12.6-10.1 19.6-13.4-7-3.2-13.8-7.6-19.6-13.4-15.8-15.8-20.7-38.8-22.1-53.6-.8-8.1 5.7-14.6 13.8-13.8 14.7 1.4 37.8 6.3 53.6 22.1 4.8 4.8 8.7 10.4 11.7 16.1 21.3-41.2 64.3-69.4 113.8-69.4 70.7 0 128 57.3 128 128zM144 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96c-8.8 0-16 7.2-16 16zm-1.4 211l67 50.2c8.5 6.4 20.3 6.4 28.8 0l67-50.2c6.5-4.9 15.2-6.2 22.6-2.8 61.4 28.2 104.1 90.2 104.1 162.1 0 16.4-13.3 29.7-29.7 29.7L45.7 512c-16.4 0-29.7-13.3-29.7-29.7 0-72 42.7-134 104.1-162.1 7.4-3.4 16.1-2.1 22.6 2.8z\"]\n};\nvar faPlantWilt = {\n prefix: 'fas',\n iconName: 'plant-wilt',\n icon: [512, 512, [], \"e5aa\", \"M344-32c66.3 0 120 53.7 120 120l0 6.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3c-40.7-36.8-66-83.7-66-111.7 0-35.6 18.7-64.7 48-76.9l0-6.2c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 424c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 38.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3C25.3 405.9 0 359 0 331.1 0 295.4 18.7 266.4 48 254.2L48 216c0-66.3 53.7-120 120-120 20.2 0 39.3 5 56 13.8L224 88c0-66.3 53.7-120 120-120z\"]\n};\nvar faWeightScale = {\n prefix: 'fas',\n iconName: 'weight-scale',\n icon: [448, 512, [\"weight\"], \"f496\", \"M116.6 192c-3-10.1-4.6-20.9-4.6-32 0-61.9 50.1-112 112-112S336 98.1 336 160c0 11.1-1.6 21.9-4.6 32l-71 0 24.6-44.3c6.4-11.6 2.3-26.2-9.3-32.6s-26.2-2.3-32.6 9.3l-37.6 67.7-88.8 0zM128 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-64 0C293.3 11.9 260 0 224 0s-69.3 11.9-96 32z\"]\n};\nvar faWeight = faWeightScale;\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [256, 512, [], \"f0da\", \"M249.3 235.8c10.2 12.6 9.5 31.1-2.2 42.8l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S64.5 396.9 64.5 384l0-256c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128 2.2 2.4z\"]\n};\nvar faFlorinSign = {\n prefix: 'fas',\n iconName: 'florin-sign',\n icon: [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0-45.1 108.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32l0 3.2C119 50 64 114.6 64 192l0 21.7c0 48.1-16.4 94.8-46.4 132.4L7.8 358.3C2.7 364.6 0 372.4 0 380.5 0 400.1 15.9 416 35.5 416l376.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C400.4 308.5 384 261.8 384 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32zM162 464c7.1 27.6 32.2 48 62 48s54.9-20.4 62-48l-124 0z\"]\n};\nvar faLariSign = {\n prefix: 'fas',\n iconName: 'lari-sign',\n icon: [384, 512, [], \"e1c8\", \"M144 0c13.3 0 24 10.7 24 24l0 41.5c7.9-1 15.9-1.5 24-1.5s16.1 .5 24 1.5L216 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 54c58.9 23.8 103.2 76 116.2 139.7 3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.7-33.2-26.4-61.8-53.4-80.2l0 81.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-101.8c-7.8-1.5-15.8-2.2-24-2.2s-16.2 .8-24 2.2L168 232c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-81.8c-33.8 23-56 61.9-56 105.8 0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 350 0 305.2 0 256 0 175.4 49.6 106.4 120 78l0-54c0-13.3 10.7-24 24-24z\"]\n};\nvar faMillSign = {\n prefix: 'fas',\n iconName: 'mill-sign',\n icon: [384, 512, [], \"e1ed\", \"M297-22.2c12.3 5 18.2 19 13.2 31.3l-29 71.3C338.8 85.1 384 133.3 384 192l0 208c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-208c0-26.5-21.5-48-48-48-6.4 0-12.5 1.2-18 3.5l-30 73.8 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-21.2-57.8 142.2c-5 12.3-19 18.2-31.3 13.2s-18.2-19-13.2-31.3L160 251.3 160 192c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 208c0 17.7-14.3 32-32 32S0 417.7 0 400L0 112c0-17.7 14.3-32 32-32 10.9 0 20.5 5.4 26.3 13.7 16-8.7 34.3-13.7 53.7-13.7 31.3 0 59.7 12.9 80 33.6 9.6-9.8 20.9-17.8 33.5-23.5L265.8-9c5-12.3 19-18.2 31.3-13.2z\"]\n};\nvar faPersonSnowboarding = {\n prefix: 'fas',\n iconName: 'person-snowboarding',\n icon: [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M424.5 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM166.4 45.5c10.2-14.4 30.2-17.9 44.6-7.7l272 192c14.4 10.2 17.9 30.2 7.7 44.6s-30.2 17.9-44.6 7.7l-92.2-65.1-62.2 53.3 32.1 26.7c18.2 15.2 28.8 37.7 28.8 61.5l0 87.8 77.5 15.2c6.2 1.2 12.6 .9 18.7-.8l41.2-11.8c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-41.2 11.8c-13.4 3.8-27.4 4.4-41.1 1.8L87.1 443.3c-17.2-3.4-33-11.8-45.3-24.1L15.5 393c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l26.2 26.2c5.6 5.6 12.8 9.4 20.6 11l64.2 12.6 0-123.7c0-27.7 12-54 32.8-72.2l69-60.4-88.2-62.3C159.6 80 156.2 60 166.4 45.5zm58.1 375.7l64 12.5 0-75.3c0-4.7-2.1-9.3-5.8-12.3l-58.2-48.5 0 123.6z\"]\n};\nvar faSnowboarding = faPersonSnowboarding;\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [\"teletype\"], \"f1e4\", \"M450.2 266.8c15.8 6.5 34.1 .3 42.6-14.6l2.4-4.2c27.9-48.9 23.6-118.8-31.3-154.5-126-82-289.6-82-415.6 0-54.9 35.7-59.3 105.7-31.3 154.5l2.4 4.2c8.5 14.9 26.7 21.1 42.6 14.6l81.9-33.7c13.9-5.7 22.4-19.9 20.9-34.9l-5.1-51c62.5-21 130.8-19.9 192.6 3.3l-4.8 47.7c-1.5 15 7 29.2 20.9 34.9l81.9 33.7zM32 352a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm96 0a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM64 416a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm352 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM256 320a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm128-32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM128 448c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faTeletype = faTty;\nvar faUsersRectangle = {\n prefix: 'fas',\n iconName: 'users-rectangle',\n icon: [576, 512, [], \"e594\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm224 72a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 152c53 0 96 43 96 96l0 24c0 13.3-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24l0-24c0-53 43-96 96-96zm96-64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 272.3c-15.2 22.8-24 50.2-24 79.7l0 24c0 8.4 1.4 16.5 4.1 24l-46.8 0C89.6 400 80 390.4 80 378.7L80 368c0-50.3 38.7-91.6 88-95.7zM427.9 400c2.7-7.5 4.1-15.6 4.1-24l0-24c0-29.5-8.8-56.9-24-79.7 49.3 4.1 88 45.3 88 95.7l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-46.8 0zM96 192a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm72 416l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMobileAndroid = faMobile;\nvar faMobilePhone = faMobile;\nvar faArrowsTurnToDots = {\n prefix: 'fas',\n iconName: 'arrows-turn-to-dots',\n icon: [448, 512, [], \"e4c1\", \"M265.4-6.6c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L285.3 64 352 64c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-66.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm-82.7 272l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L162.7 400 96 400c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 481.7 0 464l0-32c0-53 43-96 96-96l66.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM320 368a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 160a64 64 0 1 1 0-128 64 64 0 1 1 0 128z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [128, 512, [10069, 10071, 61738], \"21\", \"M64 432c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40c0-22.1 17.9-40 40-40zM64 0c26.5 0 48 21.5 48 48 0 .6 0 1.1 0 1.7l-16 304c-.9 17-15 30.3-32 30.3S33 370.7 32 353.7L16 49.7c0-.6 0-1.1 0-1.7 0-26.5 21.5-48 48-48z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [512, 512, [9962], \"f51d\", \"M280-8c0-13.3-10.7-24-24-24S232-21.3 232-8l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 48-98.6 65.8C120 186.7 112 201.6 112 217.7l0 38.3-79.8 45.6C12.3 313 0 334.2 0 357.1L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-90.9c0-23-12.3-44.2-32.2-55.6L400 256 400 217.7c0-16-8-31-21.4-39.9l-98.6-65.8 0-48 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM256 320c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128S454.7 384 384 384l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [576, 512, [], \"f54b\", \"M296 192c-21.1-12.1-42.3-24.2-72-29.3l0-140.3C257.7 13 311.4 0 352 0 448 0 576 48 576 128s-119.6 96-176 96c-48 0-76-16-104-32zM128 32l48 0 0 128-48 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zM232 320c28-16 56-32 104-32 56.4 0 176 16 176 96S384 512 288 512c-40.5 0-94.3-13-128-22.4l0-140.3c29.7-5.2 50.9-17.3 72-29.4zM64 480c-35.3 0-64-28.7-64-64s28.7-64 64-64l48 0 0 128-48 0z\"]\n};\nvar faFileCircleExclamation = {\n prefix: 'fas',\n iconName: 'file-circle-exclamation',\n icon: [576, 512, [], \"e4eb\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L72 128c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 32zM416 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faMessage = {\n prefix: 'fas',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M0 352L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120 0c-5.2 0-10.2 1.7-14.4 4.8L166.4 539.2c-4.2 3.1-9.2 4.8-14.4 4.8-13.3 0-24-10.7-24-24l0-72-32 0c-53 0-96-43-96-96z\"]\n};\nvar faCommentAlt = faMessage;\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [512, 512, [127942], \"f091\", \"M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z\"]\n};\nvar faFaceDizzy = {\n prefix: 'fas',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 304a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M256-32c13.3 0 24 10.7 24 24l0 11c8.6 2.2 16.9 5.6 24.8 10.3L311 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L345 151c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L217 279c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L73 313c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L39 169c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L103 105c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9S191.6-2.3 201 7l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24zM128 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM240 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm296 40l0 11c8.6 2.2 16.9 5.6 24.8 10.3L567 199c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L601 343c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L329 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L295 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L359 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24s24 10.7 24 24zM448 384a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faEarDeaf = {\n prefix: 'fas',\n iconName: 'ear-deaf',\n icon: [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faDeaf = faEarDeaf;\nvar faDeafness = faEarDeaf;\nvar faHardOfHearing = faEarDeaf;\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [512, 512, [\"people-arrows-left-right\"], \"e068\", \"M32 64A64 64 0 1 1 160 64 64 64 0 1 1 32 64zM0 224c0-35.3 28.7-64 64-64l64 0c3.2 0 6.4 .2 9.5 .7L93.1 205.1C65 233.2 65 278.8 93.1 306.9l56 56c3.4 3.4 7 6.4 10.9 9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-120.6C12.9 332.4 0 311.7 0 288l0-64zM352 64a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm66.9 141.1l-44.4-44.4c3.1-.5 6.3-.7 9.5-.7l64 0c35.3 0 64 28.7 64 64l0 64c0 23.7-12.9 44.4-32 55.4L480 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1c3.9-2.6 7.5-5.6 10.9-9l56-56c28.1-28.1 28.1-73.7 0-101.8zM302.8 177.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S288 321.7 288 312l0-24-64 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S224 190.3 224 200l0 24 64 0 0-24c0-9.7 5.8-18.5 14.8-22.2z\"]\n};\nvar faPeopleArrowsLeftRight = faPeopleArrows;\nvar faHandsClapping = {\n prefix: 'fas',\n iconName: 'hands-clapping',\n icon: [512, 512, [], \"e1a8\", \"M344 8l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24S344-5.3 344 8zM220 10.7l32 48c7.4 11 4.4 25.9-6.7 33.3s-25.9 4.4-33.3-6.7l-32-48c-7.4-11-4.4-25.9 6.7-33.3S212.6-.3 220 10.7zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1 48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM453.3 4c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7z\"]\n};\nvar faVirusCovidSlash = {\n prefix: 'fas',\n iconName: 'virus-covid-slash',\n icon: [576, 512, [], \"e4a9\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-83-83 11.4-11.4c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-11.3 11.3-23.8-23.8c17.9-23.5 29.9-51.7 34.1-82.3l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3l23.8-23.8 11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L440.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l11.3 11.3-23.8 23.8C370.8 97.9 342.7 85.8 312 81.6l0-33.6 16 0c13.3 0 24-10.7 24-24S341.3 0 328 0L248 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L157.9 92 169.2 80.6c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L123.9 58.1 41-24.9zM113.6 232l-33.6 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3l-23.8 23.8-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.3-11.3 23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c13.4-1.8 26.4-5.2 38.7-9.9L123.5 193.3c-4.7 12.3-8 25.2-9.9 38.7z\"]\n};\nvar faCalendarDays = {\n prefix: 'fas',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM64 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faDiamondTurnRight = {\n prefix: 'fas',\n iconName: 'diamond-turn-right',\n icon: [512, 512, [\"directions\"], \"f5eb\", \"M215 17L17 215C6.1 225.9 0 240.6 0 256s6.1 30.1 17 41L215 495c10.9 10.9 25.6 17 41 17s30.1-6.1 41-17L495 297c10.9-10.9 17-25.6 17-41s-6.1-30.1-17-41L297 17C286.1 6.1 271.4 0 256 0s-30.1 6.1-41 17zM385 257l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-78.1 0c-13.3 0-24 10.7-24 24l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40c0-39.8 32.2-72 72-72l78.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"]\n};\nvar faDirections = faDiamondTurnRight;\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0 0-208zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4-118.4 0C111.2 62.7 89.3 48 64 48 28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1 8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1 59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36 35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36l-118.4 0 0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z\"]\n};\nvar faPersonHalfDress = {\n prefix: 'fas',\n iconName: 'person-half-dress',\n icon: [384, 512, [], \"e548\", \"M143.4-3.9c9.7-16.8 27.8-28.1 48.6-28.1 30.9 0 56 25.1 56 56 0 25.4-16.9 46.8-40 53.7l0 0c-5.1 1.5-10.4 2.3-16 2.3-30.9 0-56-25.1-56-56l0 0c0-10.1 2.7-19.7 7.4-27.9zM318.3 299.1L272 236.7 272 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160 0-.4 0-238.6c36.2 4.4 69.2 23.4 91.2 53l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 113l0 399c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c22-29.6 55.1-48.6 91.2-53z\"]\n};\nvar faSquarePollHorizontal = {\n prefix: 'fas',\n iconName: 'square-poll-horizontal',\n icon: [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 152c0 13.3-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24zm72 80c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l208 0zM192 360c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24z\"]\n};\nvar faPollH = faSquarePollHorizontal;\nvar faSchoolCircleXmark = {\n prefix: 'fas',\n iconName: 'school-circle-xmark',\n icon: [640, 512, [], \"e56d\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64l238.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 76c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8-78.1-50.2-161.9 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l128 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L48 160c-26.5 0-48-21.5-48-48z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [576, 512, [\"blackboard\"], \"f51b\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-256c0-35.3-28.7-64-64-64L96 64zM480 384l-64 0 0-32c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32l0 32-160 0 0-256 384 0 0 256z\"]\n};\nvar faBlackboard = faChalkboard;\nvar faUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'up-right-from-square',\n icon: [512, 512, [\"external-link-alt\"], \"f35d\", \"M290.4 19.8C295.4 7.8 307.1 0 320 0L480 0c17.7 0 32 14.3 32 32l0 160c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L400 157.3 246.6 310.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L354.7 112 297.4 54.6c-9.2-9.2-11.9-22.9-6.9-34.9zM0 176c0-44.2 35.8-80 80-80l80 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 176z\"]\n};\nvar faExternalLinkAlt = faUpRightFromSquare;\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nvar faClover = {\n prefix: 'fas',\n iconName: 'clover',\n icon: [512, 512, [], \"e139\", \"M310.4 16C346.6 16 376 45.4 376 81.7l0 5.2c0 11.2-2.7 22.3-7.8 32.2l-2.3 4.2-20.1 33.5c-1.1 1.9-1.2 3.4-1.1 4.5 .2 1.3 .9 2.7 2.1 3.9s2.6 1.9 3.9 2.1c1.1 .2 2.6 .1 4.5-1.1l33.5-20.1 4.2-2.3c10-5.1 21-7.8 32.2-7.8l5.2 0c36.2 0 65.6 29.4 65.6 65.7 0 17.4-6.9 34.1-19.2 46.4l-1.3 1.3c-3.7 3.7-3.7 9.6 0 13.3l1.3 1.3c12.3 12.3 19.2 29 19.2 46.4 0 36.2-29.4 65.6-65.6 65.6l-5.2 0c-12.8 0-25.5-3.5-36.5-10.1l-33.5-20.1c-1.9-1.1-3.4-1.2-4.5-1.1-1.3 .2-2.7 .9-3.9 2.1s-1.9 2.6-2.1 3.9c-.2 1.1-.1 2.6 1.1 4.5l20.1 33.5c6.6 11 10.1 23.6 10.1 36.5l0 5.2c0 36.2-29.4 65.6-65.6 65.6-17.4 0-34.1-6.9-46.4-19.2l-1.3-1.3c-3.7-3.7-9.6-3.7-13.3 0l-1.3 1.3c-12.3 12.3-29 19.2-46.4 19.2-36.2 0-65.6-29.4-65.7-65.6l0-5.2c0-12.8 3.5-25.5 10.1-36.5l20.1-33.5c1.1-1.9 1.2-3.4 1.1-4.5-.2-1.3-.9-2.7-2.1-3.9s-2.6-1.9-3.9-2.1c-.5-.1-1.2-.1-1.9 0l-2.5 1-33.5 20.1c-11 6.6-23.6 10.1-36.5 10.1l-5.2 0C45.4 376 16 346.6 16 310.4 16 293 22.9 276.3 35.2 264l1.3-1.3 1.2-1.5c2.1-3.1 2.1-7.2 0-10.3l-1.2-1.5-1.3-1.3C22.9 235.8 16 219.1 16 201.7 16 165.4 45.4 136 81.7 136l5.2 0c12.8 0 25.5 3.5 36.5 10.1l33.5 20.1 2.5 1c.7 .1 1.4 .1 1.9 .1 1.3-.2 2.7-.9 3.9-2.1s1.9-2.6 2.1-3.9c.1-.5 .1-1.2-.1-1.9l-1-2.5-20.1-33.5c-6.6-11-10.1-23.6-10.1-36.5l0-5.2c0-36.2 29.4-65.7 65.7-65.7 17.4 0 34.1 6.9 46.4 19.2l1.3 1.3c3.7 3.6 9.6 3.7 13.3 0l1.3-1.3 4.8-4.4C280.5 21.3 295.1 16 310.4 16z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [512, 512, [], \"f62f\", \"M64 32C28.7 32 0 60.7 0 96l0 80c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-80c0-35.3-28.7-64-64-64L64 32zm0 272c-35.3 0-64 28.7-64 64l0 48c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-48c0-35.3-28.7-64-64-64L64 304zm80-160c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zm128 0c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM80 112c17.7 0 32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24c0-17.7 14.3-32 32-32zm320 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24zM48 384l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32zm144 48c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm128 0c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm112-16c-17.7 0-32-14.3-32-32l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32z\"]\n};\nvar faBarsStaggered = {\n prefix: 'fas',\n iconName: 'bars-staggered',\n icon: [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faReorder = faBarsStaggered;\nvar faStream = faBarsStaggered;\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [576, 512, [], \"f494\", \"M0 142.1L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-240c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32l0 240c0 17.7 14.3 32 32 32s32-14.3 32-32l0-337.9c0-27.5-17.6-52-43.8-60.7L303.2 5.1c-9.9-3.3-20.5-3.3-30.4 0L43.8 81.4C17.6 90.1 0 114.6 0 142.1zM464 256l-352 0 0 64 352 0 0-64zM112 416l352 0 0-64-352 0 0 64zm352 32l-352 0 0 64 352 0 0-64z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M0 48C0 21.5 21.5 0 48 0l96 0c26.5 0 48 21.5 48 48l0 368c0 53-43 96-96 96S0 469 0 416L0 48zM240 409.6l0-271.5 48.1-48.1c18.7-18.7 49.1-18.7 67.9 0l67.9 67.9c18.7 18.7 18.7 49.1 0 67.9L240 409.6zM205.5 512l192-192 66.6 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-258.5 0zM80 64c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 64zM64 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [512, 512, [9978], \"f6bb\", \"M344.8 52.3c11.2-13.7 9.2-33.8-4.5-45s-33.8-9.2-45 4.5l-39.2 48-39.2-48C205.6-1.9 185.4-4 171.7 7.2s-15.7 31.4-4.5 45l47.4 58-202 246.9C4.5 367.1 0 379.6 0 392.6L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-39.4c0-12.9-4.5-25.5-12.7-35.5l-202-246.9 47.4-58zM256 288l112 128-224 0 112-128z\"]\n};\nvar faPersonWalkingArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-right',\n icon: [576, 512, [], \"e552\", \"M104.5 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3L73.9 227.9c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L262.3 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8L130 347.5c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zM96.6 371c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5L55.1 534.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L96.6 371zM505.5 345c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M143.3 96c-14 0-26.5 9.2-30.6 22.6L70.4 256 224 256c17.7 0 32 14.3 32 32l64 0c0-17.7 14.3-32 32-32l153.6 0-42.3-137.4C459.2 105.2 446.8 96 432.7 96L400 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l32.7 0c42.1 0 79.4 27.5 91.8 67.8l45.4 147.5c4.1 13.2 6.1 26.9 6.1 40.7l0 96c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-32-64 0 0 32c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-96c0-13.8 2.1-27.5 6.1-40.7L51.5 99.8C63.9 59.5 101.1 32 143.3 32L176 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.7 0zM64 320l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64-128 0zm416 96c17.7 0 32-14.3 32-32l0-64-128 0 0 64c0 17.7 14.3 32 32 32l64 0z\"]\n};\nvar faCirclePause = {\n prefix: 'fas',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [512, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128l0 7.4C0 142.2 4.4 148 10.1 151.7 23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6l0 55.4 512 0 0-55.4c0-6.8-4.4-12.6-10.1-16.3-13.2-8.6-21.9-23.4-21.9-40.3s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM512 416l0-64-512 0 0 64c0 17.7 14.3 32 32 32l64 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 64 0c17.7 0 32-14.3 32-32zM160 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [127873], \"f06b\", \"M321.5 68.8C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-73.3 0 34.8-59.2zm-131 0l34.8 59.2-73.3 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zm89.6-24.3l-24.1 41-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0c-48.6 0-88 39.4-88 88 0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40 0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4zM480 272l-200 0 0 208 136 0c35.3 0 64-28.7 64-64l0-144zm-248 0l-200 0 0 144c0 35.3 28.7 64 64 64l136 0 0-208z\"]\n};\nvar faMoneyBillWheat = {\n prefix: 'fas',\n iconName: 'money-bill-wheat',\n icon: [512, 512, [], \"e52a\", \"M176-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zM56 0l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 48C42.7 48 32 37.3 32 24S42.7 0 56 0zM24 72l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 120C10.7 120 0 109.3 0 96S10.7 72 24 72zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 0c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80zM400-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 112c8.8 0 16 7.2 16 16 0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M347.5 144.8c6.5 5.4 12.5 11.3 18 17.7 8.7 10.2 23.7 14 35.1 6.9l54.1-33.8c11.2-7 14.7-21.7 6.9-32.2-15.3-20.5-33.5-38.6-54.1-53.8-10.4-7.6-24.7-4.3-31.8 6.4l-35.1 52.6c-7.8 11.6-3.8 27.3 7 36.2zM327.8 41.1c8.6-12.9 2.9-30.5-12.2-34.1-19.1-4.6-39.1-7-59.6-7s-40.4 2.4-59.6 7c-15.1 3.6-20.8 21.2-12.2 34.1l40 60c5.2 7.8 14.5 11.7 23.9 11.2 5.2-.3 10.6-.3 15.8 0 9.4 .5 18.7-3.4 23.9-11.2l40-60zM50.5 103.3c-7.9 10.5-4.3 25.3 6.9 32.2l54.1 33.8c11.4 7.1 26.3 3.3 35.1-6.9 5.5-6.4 11.5-12.3 18-17.7 10.8-8.9 14.8-24.6 7-36.2L136.4 55.9c-7.1-10.7-21.5-14-31.8-6.4-20.6 15.1-38.8 33.3-54.1 53.8zm62 141.1c.8-9.9-3.3-19.9-11.8-25.1L41 182c-12.9-8-29.9-2.3-33.6 12.5-4.9 19.7-7.5 40.3-7.5 61.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-3.9 .2-7.8 .5-11.6zm287.1 0c.3 3.8 .5 7.7 .5 11.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-21.2-2.6-41.8-7.5-61.6-3.6-14.7-20.7-20.5-33.6-12.5l-59.7 37.3c-8.4 5.3-12.6 15.2-11.8 25.1zM88 352l-64 0c-13.3 0-24 10.7-24 24L0 488c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm400 0l-64 0c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304zm-80 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272zm160 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272z\"]\n};\nvar faSuitcaseMedical = {\n prefix: 'fas',\n iconName: 'suitcase-medical',\n icon: [512, 512, [\"medkit\"], \"f0fa\", \"M192 56l0 40 128 0 0-40c0-4.4-3.6-8-8-8L200 48c-4.4 0-8 3.6-8 8zm-48 8l0-8c0-30.9 25.1-56 56-56L312 0c30.9 0 56 25.1 56 56l0 424-224 0 0-416zM96 176l0 304-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l32 0 0 80zM416 480l0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-32 0zM244 208c-8.8 0-16 7.2-16 16l0 36-36 0c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l36 0 0 36c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-36 36 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-36 0 0-36c0-8.8-7.2-16-16-16l-24 0z\"]\n};\nvar faMedkit = faSuitcaseMedical;\nvar faPersonCane = {\n prefix: 'fas',\n iconName: 'person-cane',\n icon: [448, 512, [], \"e53c\", \"M232-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM144 236.7L97.7 299.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C142 132 181.7 112 224 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L304 236.7 304 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3zM392 384c-4.4 0-8 3.6-8 8 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-4.4-3.6-8-8-8z\"]\n};\nvar faGauge = {\n prefix: 'fas',\n iconName: 'gauge',\n icon: [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faDashboard = faGauge;\nvar faGaugeMed = faGauge;\nvar faTachometerAltAverage = faGauge;\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [576, 512, [], \"f658\", \"M288 33.9L96.4 175.8 254.5 293c5.3 3.9 11.2 6.9 17.5 8.7L272 464c0 5.5 .5 10.8 1.3 16L96 480c-35.3 0-64-28.7-64-64l0-239.9c0-20.3 9.6-39.4 25.9-51.4L254.5-21c9.7-7.2 21.4-11 33.5-11s23.8 3.9 33.5 11L518.1 124.7c7.2 5.3 13.1 12 17.4 19.6-2.5-.2-5-.3-7.5-.3L436.6 144 288 33.9zM320 240c0-26.5 21.5-48 48-48l160 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-224zm80 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [129520], \"f552\", \"M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 76.1-136 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-144 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-136 0 0-76.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1L128 96zM0 416l0-96 136 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 144 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 136 0 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [9211], \"f011\", \"M288 0c0-17.7-14.3-32-32-32S224-17.7 224 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L288 0zM146.3 98.4c14.5-10.1 18-30.1 7.9-44.6s-30.1-18-44.6-7.9C43.4 92.1 0 169 0 256 0 397.4 114.6 512 256 512S512 397.4 512 256c0-87-43.4-163.9-109.7-210.1-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6c49.8 34.8 82.3 92.4 82.3 157.6 0 106-86 192-192 192S64 362 64 256c0-65.2 32.5-122.9 82.3-157.6z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [512, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M488 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400zM360 128c-13.3 0-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-13.3-10.7-24-24-24zM280 248c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zM152 320c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM48 384c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faSignal5 = faSignal;\nvar faSignalPerfect = faSignal;\nvar faArrowsSpin = {\n prefix: 'fas',\n iconName: 'arrows-spin',\n icon: [512, 512, [], \"e4bb\", \"M481.7 240.1c-17.6-1.2-32.9 12-34.2 29.7-3.3 47-23.6 89.4-54.8 121L361 359c-6.9-6.9-17.2-8.9-26.2-5.2S320 366.3 320 376l0 112c0 13.3 10.7 24 24 24l112 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-35-35c41.7-42.2 68.9-98.8 73.4-161.8 1.2-17.6-12-32.9-29.7-34.2zM39 41L74 76c-41.7 42.2-68.9 98.8-73.4 161.8-1.2 17.6 12 32.9 29.7 34.2s32.9-12 34.2-29.7c3.3-47 23.6-89.4 54.8-121L151 153c6.9 6.9 17.2 8.9 26.2 5.2S192 145.7 192 136l0-112c0-13.3-10.7-24-24-24L56 0C46.3 0 37.5 5.8 33.8 14.8S32.2 34.1 39 41zm201-10.7c-1.2 17.6 12 32.9 29.7 34.2 47 3.3 89.4 23.6 121 54.8L359 151c-6.9 6.9-8.9 17.2-5.2 26.2S366.3 192 376 192l112 0c13.3 0 24-10.7 24-24l0-112c0-9.7-5.8-18.5-14.8-22.2S477.9 32.2 471 39L436 74c-42.2-41.7-98.8-68.9-161.8-73.4-17.6-1.2-32.9 12-34.2 29.7zM41 473l35-35c42.2 41.7 98.8 68.9 161.8 73.4 17.6 1.2 32.9-12 34.2-29.7s-12-32.9-29.7-34.2c-47-3.3-89.4-23.6-121-54.8L153 361c6.9-6.9 8.9-17.2 5.2-26.2S145.7 320 136 320L24 320c-13.3 0-24 10.7-24 24L0 456c0 9.7 5.8 18.5 14.8 22.2S34.1 479.8 41 473z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [576, 512, [], \"f595\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM292.7 320c5.6 0 10.7 2.9 13.6 7.6L394.6 471c1.3 2.1 0 4.9-2.4 5.2-16.1 2.5-32.4 3.7-48.7 3.7l-38.1 0c-5.6 0-10.7-2.9-13.6-7.6l-79-128.4c-6-9.8 0-22.6 11.5-23.3 6.7-.4 13.4-.6 20.2-.6l48.3 0zM459.3 465.9c-6.4 1-12.7-1.9-16.1-7.4L374.1 346.1c-6.7-10.9 1.5-24.7 14.2-22.9 1.3 .2 2.6 .4 3.8 .6l136.4 21c27.3 4.2 47.4 27.7 47.4 55.3s-20.1 51.1-47.4 55.3l-69.2 10.6zM138.7 336c6.7-1.5 13.6 1.4 17.2 7.2l68.9 112c6.6 10.7-1.2 24.4-13.8 23.1-13-1.4-25.9-3.5-38.6-6.5L31.2 439.2C12.9 435 0 418.7 0 400s12.9-35 31.2-39.2L138.7 336z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [384, 512, [], \"f2a1\", \"M80 144a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 136c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0 56c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm248-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm56 0c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zM304 232a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0 104a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-192a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faBasketShopping = {\n prefix: 'fas',\n iconName: 'basket-shopping',\n icon: [576, 512, [\"shopping-basket\"], \"f291\", \"M288 0c6.6 0 12.9 2.7 17.4 7.5l144 152 .5 .5 78.1 0c17.7 0 32 14.3 32 32 0 14.5-9.6 26.7-22.8 30.7L491.1 429.9c-6.5 29.3-32.5 50.1-62.5 50.1l-281.3 0c-30 0-56-20.8-62.5-50.1l-46-207.2c-13.2-3.9-22.8-16.2-22.8-30.7 0-17.7 14.3-32 32-32l78.1 0 .5-.5 144-152C275.1 2.7 281.4 0 288 0zm0 58.9L192.2 160 383.8 160 288 58.9zM208 264c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112zm80-24c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm128 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112z\"]\n};\nvar faShoppingBasket = faBasketShopping;\nvar faBridge = {\n prefix: 'fas',\n iconName: 'bridge',\n icon: [512, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-94c0-38.8 26.4-72.6 64-82l0-112-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [576, 512, [128748], \"f5af\", \"M386.6 193.1L265.9 3.7c-4.8-7.6-12.6-12.8-21.4-14.3l-43.1-7.6c-10.8-1.9-20.2 7.3-18.6 18.1l24 161.6-105-18.5-33.8-61.8C64.5 74.7 58.2 70.2 51.1 69L34 66c-9.8-1.7-18.8 5.9-18.8 15.8l.6 106.3c.2 30.9 22.4 57.3 52.9 62.7l13.5 2.4 0 0 417.6 73.6c30.5 5.4 59.5-15 64.9-45.4s-15-59.5-45.4-64.9L386.6 193.1zM224 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm131.2-15.3a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M96 0C60.7 0 32 28.7 32 64s28.7 64 64 64l48 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 48 0c35.3 0 64-28.7 64-64S291.3 0 256 0L96 0zm0 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 424c0-13.3 10.7-24 24-24l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm48-160a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3 45.4-24.2 107.7-38.3 174.9-38.3s129.5 14.1 174.9 38.3c12.8-11.6 17.1-22.5 17.1-30.3 0-12.3-10.8-32-47.9-50.6-35.2-17.6-86.1-29.4-144.1-29.4s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7 33.2 12.4 75.7 20.3 122.9 20.3s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208C0 158.4 39.4 122.2 83.3 100.2 129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8-45.9 22.9-107 36.2-172.7 36.2S129.1 434.7 83.3 411.8C39.4 389.8 0 353.6 0 304l0-96z\"]\n};\nvar faAquarius = {\n prefix: 'fas',\n iconName: 'aquarius',\n icon: [576, 512, [], \"e845\", \"M401.7 291.4c9-4.5 19.6-4.5 28.6 0l128 64c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L416 355.8 302.3 412.6c-9 4.5-19.6 4.5-28.6 0L160 355.8 46.3 412.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l128-64c9-4.5 19.6-4.5 28.6 0L288 348.2 401.7 291.4zm3.4-193.5c8.2-3 17.3-2.5 25.2 1.5l128 64c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L416 163.8 302.3 220.6c-9 4.5-19.6 4.5-28.6 0L160 163.8 46.3 220.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l128-64 3.4-1.5c8.2-3 17.3-2.5 25.2 1.5l113.7 56.8 113.7-56.8 3.4-1.5z\"]\n};\nvar faShareNodes = {\n prefix: 'fas',\n iconName: 'share-nodes',\n icon: [512, 512, [\"share-alt\"], \"f1e0\", \"M384 192c53 0 96-43 96-96s-43-96-96-96-96 43-96 96c0 5.4 .5 10.8 1.3 16L159.6 184.1c-16.9-15-39.2-24.1-63.6-24.1-53 0-96 43-96 96s43 96 96 96c24.4 0 46.6-9.1 63.6-24.1L289.3 400c-.9 5.2-1.3 10.5-1.3 16 0 53 43 96 96 96s96-43 96-96-43-96-96-96c-24.4 0-46.6 9.1-63.6 24.1L190.7 272c.9-5.2 1.3-10.5 1.3-16s-.5-10.8-1.3-16l129.7-72.1c16.9 15 39.2 24.1 63.6 24.1z\"]\n};\nvar faShareAlt = faShareNodes;\nvar faPersonCircleExclamation = {\n prefix: 'fas',\n iconName: 'person-circle-exclamation',\n icon: [640, 512, [], \"e53f\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M128 32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3 13.7-22.8 22.5-48.2 25.8-74.6L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6 17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z\"]\n};\nvar faKipSign = {\n prefix: 'fas',\n iconName: 'kip-sign',\n icon: [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 168-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4 171.2 146.7c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L173.2 280 352 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L173.2 232 340.8 88.3z\"]\n};\nvar faHardDrive = {\n prefix: 'fas',\n iconName: 'hard-drive',\n icon: [448, 512, [128436, \"hdd\"], \"f0a0\", \"M64 32C28.7 32 0 60.7 0 96L0 260.1C18.1 247.4 40.2 240 64 240l320 0c23.8 0 45.9 7.4 64 20.1L448 96c0-35.3-28.7-64-64-64L64 32zM448 352c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64zM224 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faHdd = faHardDrive;\nvar faRankingStar = {\n prefix: 'fas',\n iconName: 'ranking-star',\n icon: [576, 512, [], \"e561\", \"M321.8 54.1L298.2 6.3c-3.9-8.3-16.1-8.6-20.4 0l-23.6 47.8-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-26.5 0-48 21.5-48 48l0 160c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0zM48 320c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-64 0zM416 432l0 32c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-64 0c-26.5 0-48 21.5-48 48z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm-30.5 56l61 0c9.7 0 17.5 7.8 17.5 17.5 0 4.2-1.5 8.2-4.2 11.4l-27.4 32 31 115.1 .6 0 34.6-138.5c2.2-8.7 11.1-14 19.5-10.8 61.9 23.6 105.9 83.6 105.9 153.8 0 15.1-12.3 27.4-27.4 27.4L43.4 512c-15.1 0-27.4-12.3-27.4-27.4 0-70.2 44-130.2 105.9-153.8 8.4-3.2 17.3 2.1 19.5 10.8l34.6 138.5 .6 0 31-115.1-27.4-32c-2.7-3.2-4.2-7.2-4.2-11.4 0-9.7 7.8-17.5 17.5-17.5z\"]\n};\nvar faEllipsis = {\n prefix: 'fas',\n iconName: 'ellipsis',\n icon: [448, 512, [\"ellipsis-h\"], \"f141\", \"M0 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm168 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm224-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faEllipsisH = faEllipsis;\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [576, 512, [], \"e071\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-58.6-58.6c1.1-4 1.6-8.2 1.6-12.5l0-151.2c-12.5 4.6-26.1 7.2-40.5 7.2-8.1 0-15.9-.8-23.5-2.4l0 66.4-30.2 0-137.5-137.5c2.9-3.6 5.5-7.4 7.6-11.5 11.6 22 34.7 37 61.3 37 26.8 0 49.8-15.1 61.4-37.1 11.4 22.1 34.5 37.1 60.8 37.1 45.6 0 78.4-43.7 65.6-87.5L513.8 72.3C506.8 48.4 484.9 32 460 32L116 32c-5.5 0-10.8 .8-15.9 2.3L41-24.9zM151.5 221.3L48.7 118.6 38.9 152.5c-12.8 43.7 20 87.5 65.6 87.5 18.1 0 34.7-7.1 47-18.7zM410.2 480l-128-128-154.2 0 0-66.4c-7.6 1.6-15.5 2.4-23.5 2.4-14.4 0-28-2.6-40.5-7.2L64 432c0 26.5 21.5 48 48 48l298.2 0z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [62101, 62785, \"percentage\"], \"25\", \"M192 128a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM448 384a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM438.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-384 384c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l384-384z\"]\n};\nvar faPercentage = faPercent;\nvar faFileZipper = {\n prefix: 'fas',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 72c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 48C74.7 48 64 58.7 64 72zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm64 72l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faDisplay = {\n prefix: 'fas',\n iconName: 'display',\n icon: [512, 512, [], \"e163\", \"M448 96l0 256-384 0 0-256 384 0zM64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M174.9 272c10.7 0 20.7 5.3 26.6 14.2l11.8 17.8 26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0 11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0zm278.6-12c5.6-4.9 13.9-5.3 19.9-.9s8.3 12.4 5.3 19.3L440.3 368 496 368c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.3-12.4-5.3-19.3l38.5-89.7-55.8 0c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112zM144 360a48 48 0 1 0 0 96 48 48 0 1 0 0-96zM483.8 .4c6.5-1.1 13.1 .4 18.5 4.4 6.1 4.5 9.7 11.7 9.7 19.2l0 152-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6l0-49.3-112 33.6 0 110.2-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6L304 72c0-10.6 7-20 17.1-23l160-48 2.7-.6zM188.9 0C226 0 256 30 256 67.1l0 6.1c0 56.1-75.2 112.1-110.3 135.3-10.8 7.1-24.6 7.1-35.4 0-35.1-23.1-110.3-79.2-110.3-135.3l0-6.1C0 30 30 0 67.1 0 88.2 0 108 9.9 120.7 26.8l7.3 9.8 7.3-9.8C148 9.9 167.8 0 188.9 0z\"]\n};\nvar faHeartMusicCameraBolt = faIcons;\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M0 16C0-10.5 21.5-32 48-32l160 0c26.5 0 48 21.5 48 48l0 24-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 24c0 26.5-21.5 48-48 48L48 544c-26.5 0-48-21.5-48-48L0 16z\"]\n};\nvar faMapLocationDot = {\n prefix: 'fas',\n iconName: 'map-location-dot',\n icon: [640, 512, [\"map-marked-alt\"], \"f5a0\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM512 224c-66.3 0-120 52.8-120 117.9 0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9zM472 344a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"]\n};\nvar faMapMarkedAlt = faMapLocationDot;\nvar faHeartCrack = {\n prefix: 'fas',\n iconName: 'heart-crack',\n icon: [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M133.1 32c17.3 0 34.2 3.4 49.9 9.7l54.8 85.2-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.4 60.6C319.6 42.3 348.6 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32z\"]\n};\nvar faHeartBroken = faHeartCrack;\nvar faCow = {\n prefix: 'fas',\n iconName: 'cow',\n icon: [640, 512, [128004], \"f6c8\", \"M96 224l0 192c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21 22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L144 64C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4 31.8 0 57.6-25.8 57.6-57.6L72 184c0-24.3 12.1-45.8 30.5-58.9-4.2 10.8-6.5 22.6-6.5 34.9l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6 0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [\"feed\"], \"f09e\", \"M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFeed = faRss;\nvar faMagnifyingGlass = {\n prefix: 'fas',\n iconName: 'magnifying-glass',\n icon: [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"]\n};\nvar faSearch = faMagnifyingGlass;\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [640, 512, [], \"f6c3\", \"M480 0c14.6 0 28.8 1.6 42.5 4.7 7.4 1.7 13 7.8 13.9 15.4s-3 14.9-9.8 18.3c-45.4 22.6-76.6 69.5-76.6 123.6 0 76.2 61.8 138 138 138 3.7 0 7.4-.1 11.1-.4 7.6-.6 14.7 3.6 17.8 10.6s1.5 15.1-3.9 20.4c-26 25-59.1 42.7-95.9 49.9-11.1-25.3-30.2-46.3-54.1-59.8-7.6-63.4-61.6-112.6-127.1-112.6-11.2 0-22.1 1.5-32.5 4.2-4.8-4.2-9.9-8.2-15.2-11.8-.1-2.8-.2-5.6-.2-8.4 0-106 86-192 192-192zm-.1 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96 0-47.6 34.6-87 80-94.6-.4-52.8 42.9-97.3 96-97.3 34.9 0 65.4 18.6 82.2 46.4 13-9.1 28.8-14.4 45.8-14.4 44.2 0 80 35.8 80 80 0 5.9-.6 11.7-1.9 17.2 37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faBoxesStacked = {\n prefix: 'fas',\n iconName: 'boxes-stacked',\n icon: [512, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M224 0l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 5.5-.7 10.9-2 16l-252 0c-1.3-5.1-2-10.5-2-16l0-128c0-35.3 28.7-64 64-64l32 0zm96 512c-11.2 0-21.8-2.9-31-8 9.5-16.5 15-35.6 15-56l0-128c0-20.4-5.5-39.5-15-56 9.2-5.1 19.7-8 31-8l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64l-128 0zM0 320c0-35.3 28.7-64 64-64l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 320z\"]\n};\nvar faBoxes = faBoxesStacked;\nvar faBoxesAlt = faBoxesStacked;\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [448, 512, [], \"f126\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 70.7 176 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-176 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8c-22.4 31.4-35.5 69.8-35.5 111.2 0 106 86 192 192 192 41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3c22.4-31.4 35.5-69.8 35.5-111.2 0-106-86-192-192-192-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faCancel = faBan;\nvar faJugDetergent = {\n prefix: 'fas',\n iconName: 'jug-detergent',\n icon: [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72S74.7 48 88 48l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M204.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 112 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-96 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9z\"]\n};\nvar faMailReply = faReply;\nvar faSunPlantWilt = {\n prefix: 'fas',\n iconName: 'sun-plant-wilt',\n icon: [640, 512, [], \"e57a\", \"M160 0c-5.5 0-10.6 2.8-13.5 7.4l-1.1 2.1-24.8 55.4-56.7-21.7c-5.9-2.2-12.5-.8-17 3.7S41 58 43.2 63.9l21.7 56.7-55.4 24.8C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8-21.7 56.7c-2.2 5.9-.8 12.5 3.7 17s11.1 5.9 17 3.7l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.8 21.7c5.9 2.2 12.5 .8 17-3.7s5.9-11.1 3.7-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7 .7-2.2c1.2-5.3-.4-10.9-4.3-14.8s-9.5-5.5-14.8-4.3l-2.2 .7-56.8 21.7-24.8-55.4C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm376 16l0 53.4c-14.8 7.7-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.6-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176-424 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-272c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [576, 512, [], \"e05a\", \"M408 16c0-13.3-10.7-24-24-24S360 2.7 360 16l0 23.4c-13.9 5.3-26.9 13.5-38.2 24.5L305 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-10 10-20 20-30.1 30.1L177 175c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-11 11.3-19.2 24.3-24.5 38.2L48 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l16.3 0c1.3 18.3 7.1 36.4 17.4 52.4L71 439c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l10.6-10.6c16 10.3 34.1 16.1 52.4 17.4l0 16.3c0 13.3 10.7 24 24 24s24-10.7 24-24l0-23.4c13.9-5.3 26.9-13.5 38.2-24.5L271 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c10-10 20-20 30.1-30.1L399 337c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c11-11.3 19.2-24.3 24.5-38.2l23.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16.3 0c-1.3-18.3-7.1-36.4-17.4-52.4L505 73c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L460.4 49.7c-16-10.3-34.1-16.1-52.4-17.4L408 16zM160 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM272 240a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-112a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFloppyDisk = {\n prefix: 'fas',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm32 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSave = faFloppyDisk;\nvar faToiletsPortable = {\n prefix: 'fas',\n iconName: 'toilets-portable',\n icon: [512, 512, [], \"e584\", \"M64 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16C0 28.7 28.7 0 64 0zM0 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24S0 501.3 0 488L0 128zM128 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24zM352 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16c0-35.3 28.7-64 64-64zM288 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-360zM416 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24z\"]\n};\nvar faO = {\n prefix: 'fas',\n iconName: 'o',\n icon: [448, 512, [111], \"4f\", \"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256a224 224 0 1 1 -448 0 224 224 0 1 1 448 0z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [384, 512, [128275], \"f09c\", \"M128 96c0-35.3 28.7-64 64-64 31.7 0 58 23 63.1 53.3 2.9 17.4 19.4 29.2 36.9 26.3s29.2-19.4 26.3-36.9C308.1 14.1 255.5-32 192-32 121.3-32 64 25.3 64 96l0 64c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-192 0 0-64z\"]\n};\nvar faEarListen = {\n prefix: 'fas',\n iconName: 'ear-listen',\n icon: [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M379.6 .3c-8.9 1.2-17.2 6.2-22.4 14.1-6.8 10.4-7 24.1-.4 34.6 5.6 8.9 15.5 12.7 23.8 18.5 7.5 5.2 17.6 13.2 27.7 24.2 20 21.7 39.5 54.3 39.5 100.3 0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7-13.9-15.1-27.8-26.1-38.3-33.3-11-7.6-23.5-16.6-37.6-14.7zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zM0 480a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zM240 208c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faAssistiveListeningSystems = faEarListen;\nvar faCodePullRequest = {\n prefix: 'fas',\n iconName: 'code-pull-request',\n icon: [512, 512, [], \"e13c\", \"M328 24c0-9.7-5.8-18.5-14.8-22.2S293.9 .2 287 7L231 63c-9.4 9.4-9.4 24.6 0 33.9l56 56c6.9 6.9 17.2 8.9 26.2 5.2S328 145.7 328 136l0-24 24 0c17.7 0 32 14.3 32 32l0 214.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3L448 144c0-53-43-96-96-96l-24 0 0-24zM72 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm56 73.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S16 35.8 16 80c0 32.8 19.7 61 48 73.3l0 205.3c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-205.3zM72 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm344-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0 160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [128128], \"f54c\", \"M416 427.4c58.5-44 96-111.6 96-187.4 0-132.5-114.6-240-256-240S0 107.5 0 240c0 75.8 37.5 143.4 96 187.4L96 464c0 26.5 21.5 48 48 48l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 64 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c26.5 0 48-21.5 48-48l0-36.6zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faMarsStrokeUp = {\n prefix: 'fas',\n iconName: 'mars-stroke-up',\n icon: [384, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M192 256a112 112 0 1 0 0 224 112 112 0 1 0 0-224zM16 368c0-86.3 62.1-158.1 144.1-173.1-.1-.9-.1-1.9-.1-2.9l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-61.4-28 22.4c-13.8 11-33.9 8.8-45-5s-8.8-33.9 5-45l80-64c11.7-9.3 28.3-9.3 40 0l80 64c13.8 11 16 31.2 5 45s-31.2 16-45 5l-28-22.4 0 61.4 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 1 0 1.9-.1 2.9 82 15 144.1 86.8 144.1 173.1 0 97.2-78.8 176-176 176S16 465.2 16 368z\"]\n};\nvar faMarsStrokeV = faMarsStrokeUp;\nvar faFireFlameSimple = {\n prefix: 'fas',\n iconName: 'fire-flame-simple',\n icon: [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6 0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5 0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"]\n};\nvar faBurn = faFireFlameSimple;\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [448, 512, [127794], \"f1bb\", \"M224-32c7 0 13.7 3.1 18.3 8.5l136 160c6.1 7.1 7.4 17.1 3.5 25.6S369.4 176 360 176l-24.9 0 75.2 88.5c6.1 7.1 7.4 17.1 3.5 25.6S401.4 304 392 304l-38.5 0 88.8 104.5c6.1 7.1 7.4 17.1 3.5 25.6S433.4 448 424 448l-168 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-168 0c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L94.5 304 56 304c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L112.9 176 88 176c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6l136-160C210.3-28.9 217-32 224-32z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [576, 512, [], \"f75f\", \"M176 288C96.5 288 32 223.5 32 144S96.5 0 176 0c27.2 0 52.6 7.5 74.3 20.6 20.1-13 44-20.6 69.7-20.6 47.4 0 88.7 25.7 110.9 64l1.1 0c61.9 0 112 50.1 112 112 0 60.3-47.6 109.4-107.2 111.9-22.6 20-52.3 32.1-84.8 32.1-32.5 0-62.1-12.1-84.7-32L176 288zM512 392c0 13.3-10.7 24-24 24L24 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l464 0c13.3 0 24 10.7 24 24zM88 464l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm176 0l288 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faS = {\n prefix: 'fas',\n iconName: 's',\n icon: [320, 512, [115], \"53\", \"M0 157.5C0 88.2 56.2 32 125.5 32L272 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L125.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61L210.1 230C272.9 237.9 320 291.2 320 354.5 320 423.8 263.8 480 194.5 480L48 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-31-23.1-57.2-53.9-61L109.9 282C47.1 274.1 0 220.8 0 157.5z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9-.1 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5c59.8-10.8 105.1-63.1 105.1-126 0-37-15.7-70.4-40.8-93.7-7-6.5-6.5-18.6 1-24.4 34-26.3 55.8-67.5 55.8-113.9 0-16.8-2.9-33-8.2-48-4.6-13 10.2-30 21.4-22 53.5 38 92.7 94.8 107.8 160.7 .5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6 .1 3.3 .2 6.6 .2 10 0 17.5-1.7 34.7-4.8 51.3-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9-44.5 89.5-136.9 151-243.7 151S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3-3.2-16.6-4.8-33.8-4.8-51.3 0-3.3 .1-6.7 .2-10 .1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9 15.2-66 54.3-122.8 107.8-160.7 11.3-8 26 8.9 21.4 22-5.3 15-8.2 31.2-8.2 48 0 46.3 21.9 87.5 55.8 113.9 7.5 5.8 8 17.9 1 24.4-25.1 23.4-40.8 56.7-40.8 93.7 0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"]\n};\nvar faPersonHiking = {\n prefix: 'fas',\n iconName: 'person-hiking',\n icon: [448, 512, [\"hiking\"], \"f6ec\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM128 173.6c0-34 27.6-61.6 61.6-61.6 20.3 0 39.7 8.1 54 22.4l48.2 48.2c6 6 14.1 9.4 22.6 9.4l37.5 0c5.8 0 11.3 1.6 16 4.3l0-76.3c0-13.3 10.7-24 24-24s24 10.7 24 24l0 400c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-268.3c-4.7 2.7-10.2 4.3-16 4.3l-37.5 0c-25.5 0-49.9-10.1-67.9-28.1l-6.6-6.6 0 109.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-101zm-4.8 203.7c2.3 2.3 4.7 4.4 7.1 6.5l44.9 38.5c-3.6 8.4-8.5 16.3-14.4 23.4L88.6 532.5c-11.3 13.6-31.5 15.4-45.1 4.1s-15.4-31.5-4.1-45.1l72.3-86.7c2.6-3.1 4.5-6.6 5.8-10.4l5.7-17.1zM0 160c0-35.3 28.7-64 64-64 17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96z\"]\n};\nvar faHiking = faPersonHiking;\nvar faArrowsUpToLine = {\n prefix: 'fas',\n iconName: 'arrows-up-to-line',\n icon: [448, 512, [], \"e4c2\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l384 0c17.7 0 32-14.3 32-32S433.7 0 416 0L32 0zm86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L64 237.3 64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zm256 0c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 242.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [640, 512, [9891], \"f227\", \"M288 32c0-17.7 14.3-32 32-32L448 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S0 401.2 0 304 78.8 128 176 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm160 64c-6.8 0-13.4-.4-20-1.1 23.6-18.9 43.3-42.5 57.6-69.4 43.3-15.5 74.4-56.9 74.4-105.5 0-25.2-8.3-48.5-22.4-67.2 7.1 2.1 14.6 3.2 22.4 3.2 17 0 32.7-5.3 45.7-14.3 11.7 23.6 18.3 50.2 18.3 78.3 0 97.2-78.8 176-176 176zM528 157.3L528 32c0-11.4-2.4-22.2-6.7-32L608 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-48 48z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l21.7-21.7 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 7.8-7.8c19.4-19.4 45.6-30.2 73-30.2 57 0 103.2 46.2 103.2 103.2 0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0-89 89c-9.4 9.4-24.6 9.4-33.9 0S-2.3 480.4 7 471l89-89z\"]\n};\nvar faPaintbrush = {\n prefix: 'fas',\n iconName: 'paintbrush',\n icon: [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M480.5 10.3L259.1 158c-29.1 19.4-47.6 50.9-50.6 85.3 62.3 12.8 111.4 61.9 124.3 124.3 34.5-3 65.9-21.5 85.3-50.6L565.7 95.5c6.7-10.1 10.3-21.9 10.3-34.1 0-33.9-27.5-61.4-61.4-61.4-12.1 0-24 3.6-34.1 10.3zM288 400c0-61.9-50.1-112-112-112S64 338.1 64 400c0 3.9 .2 7.8 .6 11.6 1.8 17.5-10.2 36.4-27.8 36.4L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112z\"]\n};\nvar faPaintBrush = faPaintbrush;\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [384, 512, [9906], \"f22c\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-1 0-1.9-.1-2.9z\"]\n};\nvar faSquarePhoneFlip = {\n prefix: 'fas',\n iconName: 'square-phone-flip',\n icon: [448, 512, [\"phone-square-alt\"], \"f87b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm232 96.7l2.8 .8c32.3 8.8 59.9 40.1 51.8 78.2-18.5 87.5-87.4 156.3-174.9 174.9-38.1 8.1-69.4-19.5-78.2-51.8l-.8-2.8c-2.7-9.8 2.4-20.1 11.8-24l48.7-20.3c8.3-3.4 17.8-1.1 23.5 5.9l19.3 23.6c35.1-17.4 63.4-46.6 79.6-82.4l-22.1-18c-6.9-5.7-9.3-15.2-5.9-23.5l20.3-48.7c3.9-9.4 14.2-14.4 24-11.8z\"]\n};\nvar faPhoneSquareAlt = faSquarePhoneFlip;\nvar faFaceGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm125.8-91.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zm4-352c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1 0 10.2 7.4 18.8 16.7 23 27.9 12.5 47.3 40.5 47.3 73 0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4-1.5-1.1-2.9-2.3-4.3-3.5-17-14.7-27.7-36.4-27.7-60.5 0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9-18.1 40.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7 0-107.5 85.2-195.2 191.8-199.1l.2-.1 64 0c41.7 0 83.4 12.1 117.2 25.7 1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faBowlFood = {\n prefix: 'fas',\n iconName: 'bowl-food',\n icon: [512, 512, [], \"e4c6\", \"M0 176c0-35.3 28.7-64 64-64 .5 0 1.1 0 1.6 0 7.4-36.5 39.7-64 78.4-64 15 0 29 4.1 40.9 11.2 13.3-25.7 40.1-43.2 71.1-43.2s57.8 17.6 71.1 43.2c12-7.1 26-11.2 40.9-11.2 38.7 0 71 27.5 78.4 64 .5 0 1.1 0 1.6 0 35.3 0 64 28.7 64 64 0 11.7-3.1 22.6-8.6 32L8.6 208C3.1 198.6 0 187.7 0 176zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"]\n};\nvar faSquareVirus = {\n prefix: 'fas',\n iconName: 'square-virus',\n icon: [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm160 80c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM192 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [640, 512, [127782], \"f743\", \"M254.9 448.2c4.2-12.6 17.8-19.4 30.3-15.2 12.6 4.2 19.4 17.8 15.2 30.4l-21.4 64.1c-4.2 12.6-17.8 19.4-30.4 15.2s-19.4-17.8-15.2-30.3l21.4-64.2zm120 0c4.2-12.6 17.8-19.4 30.3-15.2 12.6 4.2 19.4 17.8 15.2 30.4l-21.4 64.1c-4.2 12.6-17.8 19.4-30.4 15.2s-19.4-17.8-15.2-30.3l21.4-64.2zm120 0c4.2-12.6 17.8-19.4 30.3-15.2 12.6 4.2 19.4 17.8 15.2 30.4l-21.4 64.1c-4.2 12.6-17.8 19.4-30.4 15.2s-19.4-17.8-15.2-30.3l21.4-64.2zM448.3 128c44.2 0 80 35.8 80 80 0 7.5-1.1 14.7-3 21.5 29.8 11.6 51 40.6 51 74.5 0 44.2-35.8 80-80 80l-192 0-8.2-.4c-40.3-4.1-71.8-38.2-71.8-79.6 0-39 27.9-71.5 64.9-78.5-.5-3.1-.9-6.2-.9-9.5 0-30.9 25.1-56 56-56 12.4 0 23.9 4.1 33.2 10.9 13.4-25.5 40.1-42.9 70.8-42.9zM240.3-31.8c5.3 0 10.3 2.7 13.3 7.1l47.3 70.4 83.3-16.3c5.2-1 10.6 .7 14.3 4.4 3.8 3.8 5.4 9.2 4.4 14.4l-8.6 43.8c-11.9 5.5-22.8 12.9-32.4 21.6-5.7-1-11.7-1.5-17.7-1.5-14.3 0-28 3-40.4 8.2-16.9-15-39.2-24.2-63.6-24.2-53 0-96 43-96 96 0 30.9 14.6 58.2 37.2 75.8-3.4 11.5-5.2 23.6-5.2 36.2 0 13.2 2 25.9 5.7 37.9l-2.4-3.5-83.2 16.3c-5.2 1-10.6-.7-14.3-4.4-3.8-3.8-5.4-9.2-4.4-14.4l16.3-83.3-70.4-47.4c-4.4-3-7.1-8-7.1-13.3 0-5.3 2.6-10.3 7-13.2l70.4-47.4-16.3-83.2-.2-2c-.3-4.6 1.3-9.1 4.6-12.4 3.8-3.8 9.2-5.4 14.4-4.4l83.2 16.3 47.3-70.4 1.2-1.6c3-3.5 7.4-5.5 12.1-5.5zm0 175.8c8.6 0 16.6 2.3 23.6 6.2-9.7 11.9-16.9 25.9-20.7 41.3-15 8.1-28.2 19.2-38.8 32.3-7.5-8.5-12.2-19.6-12.2-31.8 0-26.5 21.5-48 48-48z\"]\n};\nvar faArrowRightLong = {\n prefix: 'fas',\n iconName: 'arrow-right-long',\n icon: [576, 512, [\"long-arrow-right\"], \"f178\", \"M566.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L466.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l434.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLongArrowRight = faArrowRightLong;\nvar faBuildingUn = {\n prefix: 'fas',\n iconName: 'building-un',\n icon: [512, 512, [], \"e4d9\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 272-112 0c-20.9 0-39.5 10.1-51.2 25.6-8-6-18-9.6-28.8-9.6-26.5 0-48 21.5-48 48l0 64 64 0 0 48-144 0c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM427.4 380.5c9-2.1 18.3 2.2 22.5 10.5l26.1 52.2 0-43.3c0-11 9-20 20-20s20 9 20 20l0 128c0 9.3-6.4 17.3-15.4 19.5s-18.3-2.2-22.5-10.5L452 484.7 452 528c0 11-9 20-20 20s-20-9-20-20l0-128c0-9.3 6.4-17.3 15.4-19.5zM324 400l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-11 9-20 20-20s20 9 20 20l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [448, 512, [], \"f52b\", \"M288 64l64 0 0 416c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-384c0-35.3-28.7-64-64-64l-96 0 0 0-160 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-416zM160 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0-10.4-31.2C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faCameraAlt = faCamera;\nvar faUsersRays = {\n prefix: 'fas',\n iconName: 'users-rays',\n icon: [640, 512, [], \"e593\", \"M31-33C21.7-23.6 21.7-8.4 31 1L87 57c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L65-33c-9.4-9.4-24.6-9.4-33.9 0zM609-33c-9.4-9.4-24.6-9.4-33.9 0L519 23c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L609 1c9.4-9.4 9.4-24.6 0-33.9zM65 545l56-56c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L31 511c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zm544 0c9.4-9.4 9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56 56c9.4 9.4 24.6 9.4 33.9 0zM320 208a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm0 32c-61.9 0-112 50.1-112 112l0 8c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24l0-8c0-61.9-50.1-112-112-112zm216-80a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM451.2 260.4C469.4 286.3 480 317.9 480 352l0 8c0 8.4-1.4 16.5-4.1 24l78.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-53-43-96-96-96-10 0-19.7 1.5-28.8 4.4zm-262.4 0c-9.1-2.9-18.8-4.4-28.8-4.4-53 0-96 43-96 96l0 10.7c0 11.8 9.6 21.3 21.3 21.3l78.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-8c0-34.1 10.6-65.7 28.8-91.6zM216 160a56 56 0 1 0 -112 0 56 56 0 1 0 112 0z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352l0 64c0 17.7-14.3 32-32 32S0 433.7 0 416l0-64C0 175.3 143.3 32 320 32S640 175.3 640 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64C576 210.6 461.4 96 320 96zm0 112c-79.5 0-144 64.5-144 144l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-114.9 93.1-208 208-208s208 93.1 208 208l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-79.5-64.5-144-144-144zM288 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [512, 512, [], \"f0e8\", \"M192 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-8 0 0 64 120 0c39.8 0 72 32.2 72 72l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-13.3-10.7-24-24-24l-120 0 0 80 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-80-120 0c-13.3 0-24 10.7-24 24l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-39.8 32.2-72 72-72l120 0 0-64-8 0c-17.7 0-32-14.3-32-32l0-64z\"]\n};\nvar faFaceGrinStars = {\n prefix: 'fas',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M256 512c141.4 0 256-114.6 256-256 0-24.4-3.4-48.1-9.8-70.5 18.6-36.1-2.7-83.6-46.7-90-46.9-58.3-118.9-95.5-199.5-95.5S103.4 37.3 56.5 95.5c-44 6.4-65.3 53.9-46.7 90-6.4 22.4-9.8 46-9.8 70.5 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zm-31.6-231c5.3-10.7 20.5-10.7 25.8 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4zm-198.2 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4c5.3-10.7 20.5-10.7 25.8 0z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [384, 512, [\"sort-asc\"], \"f0de\", \"M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z\"]\n};\nvar faSortAsc = faSortUp;\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6-46.8 43.5-78.1 95.4-93 131.1-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64-11.5 0-22.3-3-31.7-8.4-1 10.9-.1 22.1 2.9 33.2 13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-12.2-45.7-55.5-74.8-101.1-70.8 5.3 9.3 8.4 20.1 8.4 31.7z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [256, 512, [], \"f0d9\", \"M7.7 235.8c-10.3 12.6-9.5 31.1 2.2 42.8l128 128c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-256c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-128 128-2.2 2.4z\"]\n};\nvar faAppleWhole = {\n prefix: 'fas',\n iconName: 'apple-whole',\n icon: [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160 27.3 0 59.7 10.3 82.7 19.3 18.8 7.3 39.9 7.3 58.7 0 22.9-8.9 55.4-19.3 82.7-19.3 76.3 0 112 83.7 112 160 0 128-80 224-160 224-16.5 0-38.1-6.6-51.5-11.3-8.1-2.8-16.9-2.8-25 0-13.4 4.7-35 11.3-51.5 11.3-80 0-160-96-160-224z\"]\n};\nvar faAppleAlt = faAppleWhole;\nvar faScrollTorah = {\n prefix: 'fas',\n iconName: 'scroll-torah',\n icon: [576, 512, [\"torah\"], \"f6a0\", \"M0 48C0 21.5 21.5 0 48 0 68.9 0 86.7 13.4 93.3 32l389.5 0c6.6-18.6 24.4-32 45.3-32 26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48-20.9 0-38.7-13.4-45.3-32L93.3 480c-6.6 18.6-24.4 32-45.3 32-26.5 0-48-21.5-48-48L0 48zM177.9 301c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2c-2.6-4.2-7.2-6.8-12.2-6.8s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"]\n};\nvar faTorah = faScrollTorah;\nvar faHouseLock = {\n prefix: 'fas',\n iconName: 'house-lock',\n icon: [640, 512, [], \"e510\", \"M528 224.1c44.2 0 80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l185 171.8C440.2 195 400 244.8 400 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM272 320c-26.5 0-48 21.5-48 48l0 96 96 0 0-87.3c0-16.5 7-31.5 18.4-42.1-8.7-9-20.9-14.6-34.4-14.6l-32 0zm256-47.9c-17.7 0-32 14.3-32 32l0 47.9 64 0 0-47.9c0-17.7-14.3-32-32-32z\"]\n};\nvar faArrowsLeftRightToLine = {\n prefix: 'fas',\n iconName: 'arrows-left-right-to-line',\n icon: [576, 512, [], \"e4ba\", \"M32 96C14.3 96 0 110.3 0 128L0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM390.6 342.6l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-133.5 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 133.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0zM576 128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M136.7 5.9L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-8.7-26.1C306.9-7.2 294.7-16 280.9-16L167.1-16c-13.8 0-26 8.8-30.4 21.9zM416 144L32 144 53.1 467.1C54.7 492.4 75.7 512 101 512L347 512c25.3 0 46.3-19.6 47.9-44.9L416 144z\"]\n};\nvar faFaceSadTear = {\n prefix: 'fas',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm271 98c5.5-1.3 11.1-2 17-2 24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50-12.5 0-24.6 1.9-35.9 5.5 9.8 12.7 16.5 27.9 18.9 44.6zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM185.4 292.8c-2.4-2.9-5.7-4.8-9.4-4.8s-7 1.9-9.4 4.8c-6.5 7.8-12.6 16.1-18.3 24.6-9 13.4-20.3 30.2-20.3 47.4 0 28.3 21.5 51.2 48 51.2s48-22.9 48-51.2c0-17.2-11.2-34-20.3-47.4-5.7-8.5-11.9-16.7-18.3-24.6z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [128224, 128439], \"f1ac\", \"M160 64l0 80 64 0 0-80 146.7 0 45.3 45.3 0 34.7 64 0 0-34.7c0-17-6.7-33.3-18.7-45.3L416 18.7C404 6.7 387.7 0 370.7 0L224 0c-35.3 0-64 28.7-64 64zM32 128c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-288c0-17.7-14.3-32-32-32l-48 0zm448 64l-320 0 0 256c0 17.7 14.3 32 32 32l288 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM224 288a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm0 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM336 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM312 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM424 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM400 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faPersonCirclePlus = {\n prefix: 'fas',\n iconName: 'person-circle-plus',\n icon: [640, 512, [], \"e541\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6 0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71S136.6 486.2 95.4 441L9 345.9c-5.8-6.4-9-14.7-9-23.3 0-19.1 15.5-34.6 34.6-34.6zM256 288c-38.4 0-76.8 35.8-90.6 50.2-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faPersonCircleQuestion = {\n prefix: 'fas',\n iconName: 'person-circle-question',\n icon: [640, 512, [], \"e542\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M256 0c23.7 0 44.4 12.9 55.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0zm26.9 212.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6s-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L288.2 246.1c7.8-10.7 5.4-25.7-5.3-33.5zM136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64z\"]\n};\nvar faShareFromSquare = {\n prefix: 'fas',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M384.5 24l0 72-64 0c-79.5 0-144 64.5-144 144 0 93.4 82.8 134.8 100.6 142.6 2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8 0-8.3-5.9-15.5-12.8-20.3-8.9-6.2-19.2-18.2-19.2-40.5 0-45 36.5-81.5 81.5-81.5l30.5 0 0 72c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24zm-272 72c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6S384 14.6 384 24l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6l-40.4-34.6-40.4 34.6c-9 7.7-22.2 7.7-31.2 0l-40.4-34.6-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM104 136c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0zM80 352c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24-120c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [62764], \"3d\", \"M32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M201.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 173.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [576, 512, [], \"e075\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-88.6-88.6c1.7-12.1-2-24.8-11.3-34-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0c-31.2 31.2-84.5 9.1-84.5-35 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-9.3-9.3-22-13-34-11.3L41-24.9zM72 216c-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-21.4 12.6-37.6 29.1-45.1l-240-240C109.6 203.4 93.4 216 72 216z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [576, 512, [], \"f715\", \"M7-25c9.4-9.4 24.6-9.4 33.9 0L569 503c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9C-2.3-.4-2.3-15.6 7-25z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z\"]\n};\nvar faNoteSticky = {\n prefix: 'fas',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 213.5c0 17-6.7 33.3-18.7 45.3L322.7 461.3c-12 12-28.3 18.7-45.3 18.7L64 480zM389.5 304L296 304c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faTableColumns = {\n prefix: 'fas',\n iconName: 'table-columns',\n icon: [448, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 128 0 0-256-128 0zm320 0l-128 0 0 256 128 0 0-256z\"]\n};\nvar faColumns = faTableColumns;\nvar faPersonShelter = {\n prefix: 'fas',\n iconName: 'person-shelter',\n icon: [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32L64 178.6 256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 192l16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-33.2-61.7C329.7 245.1 294.4 224 256 224s-73.7 21.1-91.9 54.9l-33.2 61.7c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8-79.3 23.6-137.1 97.1-137.1 184.1 0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256 512 397.4 397.4 512 256 512S0 397.4 0 256c0-116 77.1-213.9 182.9-245.4 16.9-5 34.8 4.6 39.8 21.5z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [512, 512, [], \"f773\", \"M410.6 124.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm0 144c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.7-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 144c21.3-16.1 49.9-16.1 71.2 0 20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faDeleteLeft = {\n prefix: 'fas',\n iconName: 'delete-left',\n icon: [640, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM284.1 188.1c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faBackspace = faDeleteLeft;\nvar faBroomBall = {\n prefix: 'fas',\n iconName: 'broom-ball',\n icon: [576, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M496 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zM106.8 277.2c30.6-30.6 73.1-45.9 115.8-42.2L341 353.3c3.7 42.8-11.6 85.2-42.2 115.9-27.4 27.4-64.6 42.8-103.3 42.8L22.1 512c-12.2 0-22.1-9.9-22.1-22.1 0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2 0-31.5 12.5-61.8 34.8-84l8-8zm417-270c12.6-10.3 31.1-9.5 42.8 2.2s12.4 30.2 2.2 42.8l-2.2 2.4-192 192 34.8 34.7c4.2 4.2 6.6 10 6.6 16 0 12.5-10.1 22.6-22.6 22.6l-29.1 0-108.3-108.3 0-29.1c0-12.5 10.1-22.6 22.6-22.6 6 0 11.8 2.4 16 6.6l34.8 34.7 192-192 2.4-2.2z\"]\n};\nvar faQuidditch = faBroomBall;\nvar faQuidditchBroomBall = faBroomBall;\nvar faJ = {\n prefix: 'fas',\n iconName: 'j',\n icon: [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z\"]\n};\nvar faShuttleSpace = {\n prefix: 'fas',\n iconName: 'shuttle-space',\n icon: [576, 512, [\"space-shuttle\"], \"f197\", \"M0 368l0 64c0 26.5 21.5 48 48 48l50 0c40.6 0 80.4-11 115.2-31.9l133.5-80.1-93.3 0-64.9 38.9c-14 8.4-28.9 14.7-44.5 19l0-66.4c9.7-5.6 17.8-13.7 23.4-23.4l198.8 0c67.1 0 127.8-20.6 170.3-70.6 4.6-5.4 4.6-13.3 0-18.8-42.5-50.1-103.2-70.6-170.3-70.6l-198.8 0c-5.6-9.7-13.7-17.8-23.4-23.4l0-66.4c15.6 4.2 30.6 10.6 44.5 19l64.9 38.9 93.3 0-133.5-80.1C178.4 43 138.6 32 98 32L48 32C21.5 32 0 53.5 0 80L0 368zm96 0l0 64-48 0 0-64 48 0zM96 80l0 64-48 0 0-64 48 0zM416 224c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faSpaceShuttle = faShuttleSpace;\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [512, 512, [9775], \"f6ad\", \"M224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 352a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-448c53 0 96 43 96 96s-43 96-96 96-96 43-96 96 43 96 96 96C150 448 64 362 64 256S150 64 256 64zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [9209], \"f04d\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"]\n};\nvar faTrowel = {\n prefix: 'fas',\n iconName: 'trowel',\n icon: [576, 512, [], \"e589\", \"M407.9 181.4L277.3 312 342.6 377.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9s-11.5-20.8-7.9-32.2l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L232 266.7 362.6 136.1c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"]\n};\nvar faHandBackFist = {\n prefix: 'fas',\n iconName: 'hand-back-fist',\n icon: [384, 512, [\"hand-rock\"], \"f255\", \"M7.4 253.6C2.6 245.9 0 237.1 0 228l0-36c0-26.5 21.5-48 48-48l16 0 0-80c0-26.5 21.5-48 48-48 17.3 0 32.4 9.1 40.9 22.8 4.3-22.1 23.8-38.8 47.1-38.8 23.4 0 42.9 16.8 47.1 38.9 7.3-4.4 15.8-6.9 24.9-6.9 22.1 0 40.8 15 46.3 35.4 5.5-2.2 11.4-3.4 17.7-3.4 26.5 0 48 21.5 48 48l0 96.9c0 9.9-2.3 19.7-6.8 28.6l-39.6 79.1c-10.8 21.7-33 35.4-57.2 35.4L96 352c-16.5 0-31.8-8.4-40.6-22.4l-48-76zM32 480l0-48c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3L216 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [512, 512, [62769], \"3e\", \"M34.9 50.6c-7.4 16-.4 35.1 15.6 42.5L403.6 256 50.6 419c-16 7.4-23.1 26.4-15.6 42.5s26.4 23 42.5 15.6l416-192c11.3-5.2 18.6-16.6 18.6-29.1s-7.3-23.8-18.6-29.1L77.4 35c-16-7.4-35.1-.4-42.5 15.6z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-1.4-1.4-158.6 158.6c-18 18-42.4 28.1-67.9 28.1l-59 0c-8.5 0-16.6 3.4-22.6 9.4-61.7 61.7-92.8 92.8-93.3 93.3-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l16-16 0 0 77.3-77.3c6-6 9.4-14.1 9.4-22.6l0-59c0-25.5 10.1-49.9 28.1-67.9L298.7 56 297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zM344 101.3L261.3 184 328 250.7 410.7 168 344 101.3zm-128 128l-30.6 30.6c-6 6-9.4 14.1-9.4 22.6l0 53.5 53.5 0c8.5 0 16.6-3.4 22.6-9.4L282.7 296 216 229.3z\"]\n};\nvar faSeptagon = {\n prefix: 'fas',\n iconName: 'septagon',\n icon: [576, 512, [\"heptagon\"], \"e820\", \"M267.4-31.5c15.9-5.5 33.5-4.6 48.8 2.7l172.4 83 6.3 3.5c14.2 9 24.5 23.3 28.3 39.9l42.6 186.5 1.2 7.2c1.6 14.3-1.7 28.8-9.4 41.1l-4.2 5.9-119.3 149.6c-12.1 15.2-30.6 24.1-50 24.1l-191.3 0c-19.5 0-37.9-8.9-50-24.1L23.5 338.4c-12.1-15.2-16.7-35.2-12.3-54.2l42.6-186.5 2-7c5.6-15.9 17.2-29 32.6-36.4l172.4-83 6.7-2.7z\"]\n};\nvar faHeptagon = faSeptagon;\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 160l64 0c35.3 0 64 28.7 64 64l0 48c0 17.7-14.3 32-32 32l-1.8 0-11.1 99.5c-1.8 16.2-15.5 28.5-31.8 28.5l-38.7 0c-16.3 0-30-12.3-31.8-28.5l-11.1-99.5-1.8 0c-17.7 0-32-14.3-32-32l0-48c0-35.3 28.7-64 64-64zM412.4 400.2c-16.1-4.2-34.8-7.6-55.4-10.2l5.3-47.7c22.7 2.9 43.7 6.7 62.1 11.5 22.4 5.8 42.6 13.3 57.8 23.3 14.7 9.6 29.8 24.9 29.8 47s-15.1 37.4-29.8 47c-15.2 9.9-35.5 17.5-57.8 23.3-45.1 11.7-105.3 17.8-168.4 17.8s-123.3-6.1-168.4-17.8C65.2 488.4 45 480.9 29.8 471 15.1 461.4 0 446.1 0 424s15.1-37.4 29.8-47c15.2-9.9 35.5-17.5 57.8-23.3 18.5-4.8 39.5-8.6 62.1-11.5L155 390c-20.6 2.6-39.3 6.1-55.4 10.2-56.6 14.6-56.6 32.9 0 47.5 39.9 10.3 95.8 16.2 156.4 16.2s116.5-5.9 156.4-16.2c56.6-14.6 56.6-32.9 0-47.5z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [512, 512, [], \"f83e\", \"M64 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 288 96 0 0-128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-288-96 0 0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-128z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [8249], \"f104\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [576, 512, [129691], \"f54a\", \"M352.1 146.7l0-49.6c0-10.7 5.3-20.7 14.2-26.6L485.2-8.7c6.3-4.2 14.8-3.4 20.2 2l45.4 45.5c5.4 5.4 6.2 13.8 2 20.2L473.6 177.8c-5.9 8.9-15.9 14.2-26.6 14.2l-49.6 0-90.7 90.7c15 33.3 8.9 73.9-18.5 101.3L162.1 510.1c-18.7 18.7-49.1 18.7-67.9 0L34.1 449.9c-18.7-18.7-18.7-49.1 0-67.9L160.1 256c27.4-27.4 67.9-33.6 101.3-18.5l90.7-90.7z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [576, 512, [128668], \"f722\", \"M160 96l0 96 133.4 0-57.6-96-75.8 0zM96 223L96 64c0-17.7 14.3-32 32-32l107.8 0c22.5 0 43.3 11.8 54.9 31.1l77.4 128.9 64 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 48 0c26.5 0 48 21.5 48 48l0 41.5c0 14.2-6.3 27.8-17.3 36.9l-35 29.2c26.5 15.2 44.3 43.7 44.3 76.4 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-14.4 3.5-28 9.6-40l-101.2 0c-3 13.4-7.9 26-14.4 37.7 7.7 9.4 7.2 23.4-1.6 32.2l-22.6 22.6c-8.8 8.8-22.7 9.3-32.2 1.6-9.3 5.2-19.3 9.3-29.8 12.3-1.2 12.1-11.4 21.6-23.9 21.6l-32 0c-12.4 0-22.7-9.5-23.9-21.6-10.5-3-20.4-7.2-29.8-12.3-9.4 7.7-23.4 7.2-32.2-1.6L35.5 453.8c-8.8-8.8-9.3-22.7-1.6-32.2-5.2-9.3-9.3-19.3-12.3-29.8-12.1-1.2-21.6-11.4-21.6-23.9l0-32c0-12.4 9.5-22.7 21.6-23.9 3-10.5 7.2-20.4 12.3-29.8-7.7-9.4-7.2-23.4 1.6-32.2l22.6-22.6c8.8-8.8 22.7-9.3 32.2-1.6 1.9-1 3.7-2 5.7-3zm64 65a64 64 0 1 0 0 128 64 64 0 1 0 0-128zM440 424a40 40 0 1 0 80 0 40 40 0 1 0 -80 0z\"]\n};\nvar faBridgeCircleXmark = {\n prefix: 'fas',\n iconName: 'bridge-circle-xmark',\n icon: [576, 512, [], \"e4cb\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [512, 512, [], \"f493\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 352c0 53 43 96 96 96s96-43 96-96l0-352 64 0 0 352c0 53 43 96 96 96s96-43 96-96l0-352c17.7 0 32-14.3 32-32S497.7 0 480 0L32 0zM160 64l0 128-64 0 0-128 64 0zm256 0l0 128-64 0 0-128 64 0z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [576, 512, [129658], \"f0f1\", \"M32 48C32 21.5 53.5 0 80 0l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-32 0c-17.7 0-32-14.3-32-32S238.3 0 256 0l48 0c26.5 0 48 21.5 48 48l0 144c0 77.4-55 142-128 156.8l0 19.2c0 61.9 50.1 112 112 112s112-50.1 112-112l0-85.5c-37.3-13.2-64-48.7-64-90.5 0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 85.5c0 97.2-78.8 176-176 176S160 465.2 160 368l0-19.2C87 334 32 269.4 32 192L32 48zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M336 359.8c39.1-32.3 64-81.1 64-135.8 0-97.2-78.8-176-176-176S48 126.8 48 224C48 278.7 72.9 327.5 112 359.8 112.4 377.4 115.2 400.2 118.4 421.6 48 383.9 0 309.5 0 224 0 100.3 100.3 0 224 0S448 100.3 448 224c0 85.6-48 159.9-118.5 197.6 3.3-21.4 6-44.2 6.4-61.8zm-14-53.4c-8.3-12.6-19.2-21.6-30.4-27.8-2.1-1.1-4.2-2.2-6.3-3.2 11.7-13.9 18.8-31.9 18.8-51.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 19.6 7.1 37.6 18.8 51.5-2.1 1-4.2 2-6.3 3.2-11.2 6.2-22.1 15.2-30.4 27.8-18.8-22.3-30.1-51-30.1-82.4 0-70.7 57.3-128 128-128s128 57.3 128 128c0 31.4-11.3 60.2-30.1 82.4zM224 312c32.9 0 64 8.6 64 43.8 0 33-12.9 104.1-20.6 132.9-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8 0-35.1 31.1-43.8 64-43.8zm0-128a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faArrowUpRightDots = {\n prefix: 'fas',\n iconName: 'arrow-up-right-dots',\n icon: [512, 512, [], \"e4b7\", \"M96 32C78.3 32 64 46.3 64 64S78.3 96 96 96L114.7 96 9.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.3 160 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 32zM403.8 70.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM279.7 194.2a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm162.2-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zM156.2 317.8a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM70.1 403.8a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M256 80a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM5.5 185L128 384 71.8 454.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L384 384 506.5 185c3.6-5.9 5.5-12.7 5.5-19.6l0-.6c0-20.3-16.5-36.8-36.8-36.8-7.3 0-14.4 2.2-20.4 6.2l-16.9 11.3c-12.7 8.5-29.6 6.8-40.4-4l-34.1-34.1C356.1 100.1 346.2 96 336 96s-20.1 4.1-27.3 11.3l-30.1 30.1c-12.5 12.5-32.8 12.5-45.3 0l-30.1-30.1C196.1 100.1 186.2 96 176 96s-20.1 4.1-27.3 11.3l-34.1 34.1c-10.8 10.8-27.7 12.5-40.4 4L57.3 134.2c-6.1-4-13.2-6.2-20.4-6.2-20.3 0-36.8 16.5-36.8 36.8l0 .6c0 6.9 1.9 13.7 5.5 19.6z\"]\n};\nvar faAnchorCircleExclamation = {\n prefix: 'fas',\n iconName: 'anchor-circle-exclamation',\n icon: [640, 512, [], \"e4ab\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faEllipsisVertical = {\n prefix: 'fas',\n iconName: 'ellipsis-vertical',\n icon: [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 144a56 56 0 1 1 0-112 56 56 0 1 1 0 112zm0 224c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-112c0 30.9-25.1 56-56 56s-56-25.1-56-56 25.1-56 56-56 56 25.1 56 56z\"]\n};\nvar faEllipsisV = faEllipsisVertical;\nvar faHeartCircleExclamation = {\n prefix: 'fas',\n iconName: 'heart-circle-exclamation',\n icon: [576, 512, [], \"e4fe\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faBuildingCircleExclamation = {\n prefix: 'fas',\n iconName: 'building-circle-exclamation',\n icon: [576, 512, [], \"e4d3\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faPersonArrowUpFromLine = {\n prefix: 'fas',\n iconName: 'person-arrow-up-from-line',\n icon: [576, 512, [], \"e539\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM208 480l0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128 32 0zM566.6 102.6c-12.5 12.5-32.8 12.5-45.3 0L496 77.3 496 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-146.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M378.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L270.9 128 32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l196.2 0-85.3 128-110.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l68.2 0-30.8 46.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9L177.1 384 416 384c17.7 0 32-14.3 32-32s-14.3-32-32-32l-196.2 0 85.3-128 110.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-68.2 0 30.8-46.2z\"]\n};\nvar faTrainTram = {\n prefix: 'fas',\n iconName: 'train-tram',\n icon: [384, 512, [128650], \"e5b4\", \"M0 8C0-5.3 10.7-16 24-16l336 0c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-120 0 0 64 40 0c53 0 96 43 96 96l0 160c0 31.2-14.9 59-38 76.5l64.3 76c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74.6-88.1c-3.6 .4-7.3 .6-11.1 .6l-128 0c-3.8 0-7.5-.2-11.1-.6L42.3 535.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l64.3-76C46.9 411 32 383.2 32 352l0-160c0-53 43-96 96-96l40 0 0-64-120 0 0 8c0 13.3-10.7 24-24 24S0 53.3 0 40L0 8zM128 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [576, 512, [128747], \"f5b0\", \"M372 143.9L172.7 40.2c-8-4.1-17.3-4.8-25.7-1.7l-41.1 15c-10.3 3.7-13.8 16.4-7.1 25L200.3 206.4 100.1 242.8 40 206.2c-6.2-3.8-13.8-4.5-20.7-2.1L3 210.1c-9.4 3.4-13.4 14.5-8.3 23.1l53.6 91.8c15.6 26.7 48.1 38.4 77.1 27.8l12.9-4.7 0 0 398.4-145c29.1-10.6 44-42.7 33.5-71.8s-42.7-44-71.8-33.5L372 143.9zM32.2 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-512 0z\"]\n};\nvar faRightToBracket = {\n prefix: 'fas',\n iconName: 'right-to-bracket',\n icon: [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M345 273c9.4-9.4 9.4-24.6 0-33.9L201 95c-6.9-6.9-17.2-8.9-26.2-5.2S160 102.3 160 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L345 273zm7 143c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0z\"]\n};\nvar faSignInAlt = faRightToBracket;\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M384 64c0-35.3-28.7-64-64-64L125.3 0C108.3 0 92 6.7 80 18.7L18.7 80C6.7 92 0 108.3 0 125.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHouseCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-circle-exclamation',\n icon: [640, 512, [], \"e50a\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM496 444a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z\"]\n};\nvar faIls = faShekelSign;\nvar faShekel = faShekelSign;\nvar faSheqel = faShekelSign;\nvar faSheqelSign = faShekelSign;\nvar faRadio = {\n prefix: 'fas',\n iconName: 'radio',\n icon: [512, 512, [128251], \"f8d7\", \"M494.8 15c12.7-3.7 20-17.1 16.3-29.8S494-34.8 481.3-31L51.8 94.9C42.4 97.6 33.9 102.1 26.6 108 10.5 119.7 0 138.6 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L218.5 96 494.8 15zM368 208a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM64 248c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 272c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 368c-13.3 0-24-10.7-24-24z\"]\n};\nvar faHandDots = {\n prefix: 'fas',\n iconName: 'hand-dots',\n icon: [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM200 352a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-88 24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faAllergies = faHandDots;\nvar faBookSkull = {\n prefix: 'fas',\n iconName: 'book-skull',\n icon: [448, 512, [\"book-dead\"], \"f6b7\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM272 163.2l0 12.8c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-12.8c-19.4-11.7-32-30.3-32-51.2 0-35.3 35.8-64 80-64s80 28.7 80 64c0 20.9-12.6 39.5-32 51.2zM208 112a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm74.2 95.7c4.6 10.1 .1 21.9-9.9 26.5l-47.9 21.8 47.9 21.8c10.1 4.6 14.5 16.4 9.9 26.5s-16.4 14.5-26.5 9.9L224 294 144.3 330.2c-10.1 4.6-21.9 .1-26.5-9.9s-.1-21.9 9.9-26.5l47.9-21.8-47.9-21.8c-10.1-4.6-14.5-16.4-9.9-26.5s16.4-14.5 26.5-9.9L224 250 303.7 213.8c10.1-4.6 21.9-.1 26.5 9.9z\"]\n};\nvar faBookDead = faBookSkull;\nvar faUnlockKeyhole = {\n prefix: 'fas',\n iconName: 'unlock-keyhole',\n icon: [384, 512, [\"unlock-alt\"], \"f13e\", \"M192 32c-35.3 0-64 28.7-64 64l0 64 192 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l0-64c0-70.7 57.3-128 128-128 63.5 0 116.1 46.1 126.2 106.7 2.9 17.4-8.8 33.9-26.3 36.9s-33.9-8.8-36.9-26.3C250 55.1 223.7 32 192 32zm40 328c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0z\"]\n};\nvar faUnlockAlt = faUnlockKeyhole;\nvar faFileArrowUp = {\n prefix: 'fas',\n iconName: 'file-arrow-up',\n icon: [384, 512, [\"file-upload\"], \"f574\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM209 263c-9.4-9.4-24.6-9.4-33.9 0l-64 64c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-86.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"]\n};\nvar faFileUpload = faFileArrowUp;\nvar faFaceGrinTears = {\n prefix: 'fas',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M554.8 203.4l16.3 2.3C547.7 88.4 444.2 0 320 0S92.3 88.4 68.9 205.7l16.3-2.3c37-5.3 68.6 26.4 63.4 63.4l-6.7 46.7c-4.1 29-21.6 53.2-45.8 66.8 43.7 78.5 127.6 131.7 223.8 131.7s180.1-53.1 223.8-131.7c-24.1-13.5-41.6-37.8-45.8-66.8l-6.7-46.7c-5.3-37 26.4-68.6 63.4-63.4zM470.3 326.9C447.9 388.2 389.1 432 320 432S192.1 388.2 169.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0-25.6-18.8-47.3-44.1-50.9L549.1 243c-10.6-1.5-19.6 7.5-18.1 18.1l6.7 46.7c3.6 25.3 25.3 44.1 50.9 44.1 28.4 0 51.4-23 51.4-51.4zm-640 0C0 329 23 352 51.4 352 77 352 98.7 333.2 102.3 307.9l6.7-46.7c1.5-10.6-7.5-19.6-18.1-18.1l-46.7 6.7C18.8 253.3 0 275 0 300.6z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPenToSquare = {\n prefix: 'fas',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"]\n};\nvar faEdit = faPenToSquare;\nvar faEarthEurope = {\n prefix: 'fas',\n iconName: 'earth-europe',\n icon: [512, 512, [\"globe-europe\"], \"f7a2\", \"M256.2 48c114.8 .1 207.8 93.2 207.8 208 0 22.1-3.4 43.4-9.8 63.4-2 .4-4.1 .6-6.2 .6l-2.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-50.7c0-8.8 7.2-16 16-16s16-7.2 16-16-7.2-16-16-16l-24 0c-13.3 0-24 10.7-24 24s-10.7 24-24 24l-56 0c-8.8 0-16 7.2-16 16s-7.2 16-16 16l-25.4 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l70.1-70.1c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3l-14.1 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l23.1-23.1c.8-.8 1.6-1.5 2.5-2.2zM438.4 356.1c-32.8 59.6-93.9 101.4-165.2 107.2-.7-2.3-1.1-4.8-1.1-7.3 0-13.3-10.7-24-24-24l-26.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-66.7c0-17.7 14.3-32 32-32l98.7 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 14.1 9.4 22.6 9.4l5.5 0c8.5 0 16.6 3.4 22.6 9.4l16 16c4.2 4.2 10 6.6 16 6.6 4.8 0 9.3 1.5 13 4.1zM256 512l26.2-1.3c-8.6 .9-17.3 1.3-26.2 1.3zm26.2-1.3C411.3 497.6 512 388.6 512 256 512 114.6 397.4 0 256 0l0 0C114.6 0 0 114.6 0 256 0 383.5 93.2 489.3 215.3 508.8 228.5 510.9 242.1 512 256 512zM187.3 123.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGlobeEurope = faEarthEurope;\nvar faFaceGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'face-grin-beam-sweat',\n icon: [576, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M546.2-.1c14.7 17.8 29.8 40.1 29.8 64.1 0 36.4-27.6 64-64 64s-64-27.6-64-64c0-24 15.2-46.3 29.8-64.1 8.8-10.7 18.5-20.8 29-30 3-2.6 7.4-2.6 10.4 0 10.5 9.1 20.1 19.3 29 30zM288 0c42.5 0 82.6 10.4 117.8 28.7-3.6 10.9-5.8 22.7-5.8 35.3 0 62.9 49.1 112 112 112 6.4 0 12.7-.5 18.8-1.5 8.6 25.6 13.2 53 13.2 81.5 0 141.4-114.6 256-256 256S32 397.4 32 256 146.6 0 288 0zM418.7 308.9C379.5 321.1 335.1 328 288 328s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 22.4 61.3 81.3 105.1 150.3 105.1s127.9-43.8 150.3-105.1c4.3-11.8-7.7-21.8-19.6-18.1zM208 180c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28zm132 28c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faCircleHalfStroke = {\n prefix: 'fas',\n iconName: 'circle-half-stroke',\n icon: [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faAdjust = faCircleHalfStroke;\nvar faPersonMilitaryToPerson = {\n prefix: 'fas',\n iconName: 'person-military-to-person',\n icon: [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8 0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0c-1.6 5.7-2.5 11.7-2.5 17.9 0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9S400 497.8 400 488.4l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"]\n};\nvar faTableCellsColumnLock = {\n prefix: 'fas',\n iconName: 'table-cells-column-lock',\n icon: [640, 512, [], \"e678\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 368c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faTruckFieldUn = {\n prefix: 'fas',\n iconName: 'truck-field-un',\n icon: [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 48c0 21.1 13.7 39.1 32.6 45.5-.4 3.4-.6 7-.6 10.5 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l144.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l.4 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-24.7 0-1.7-4.2-43.8-106.3c-12.3-30-41.6-49.5-74-49.5l-40.4 0C364.4 44.9 343.7 32 320 32L96 32zM384 224l0-96 31.9 0c6.5 0 12.3 3.9 14.8 9.9l35.4 86.1-82.1 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm280 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM256.6 132.9l27.4 41 0-29.9c0-11 9-20 20-20s20 9 20 20l0 96c0 8.8-5.8 16.6-14.2 19.1s-17.5-.7-22.4-8l-27.4-41 0 29.9c0 11-9 20-20 20s-20-9-20-20l0-96c0-8.8 5.8-16.6 14.2-19.1s17.5 .7 22.4 8zM132 144l0 64c0 6.6 5.4 12 12 12s12-5.4 12-12l0-64c0-11 9-20 20-20s20 9 20 20l0 64c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-64c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [128212], \"f02d\", \"M384 512L96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zM96 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zm32-232c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24 72c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faFaceLaughWink = {\n prefix: 'fas',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96l26.9 0c3.5-12.1 10.1-23.3 19.2-32.4l1.4-1.4c15-15 35.3-22.9 56.1-22.2 14.2-15.1 34.2-23.9 55.4-23.9l2 0c21.1 0 41.1 8.8 55.4 23.9 20.8-.6 41.1 7.3 56.1 22.2l1.4 1.4c9.2 9.2 15.7 20.4 19.2 32.4l26.9 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM156.5 424.3c9.5 6.3 14.2 17.7 11.9 28.8-1.8 9.2 1 18.7 7.7 25.3l1.4 1.4c6.6 6.6 16.1 9.5 25.3 7.7 11.1-2.2 22.5 2.5 28.8 11.9 5.2 7.8 14 12.5 23.3 12.5l2 0c9.4 0 18.1-4.7 23.3-12.5 6.3-9.5 17.7-14.2 28.8-11.9 9.2 1.8 18.7-1 25.3-7.7l1.4-1.4c6.6-6.6 9.5-16.1 7.7-25.3-2.2-11.1 2.5-22.5 11.9-28.8 7.8-5.2 12.5-14 12.5-23.3l0-2c0-9.4-4.7-18.1-12.5-23.3-9.5-6.3-14.2-17.7-11.9-28.8 1.8-9.2-1-18.7-7.7-25.3l-1.4-1.4c-6.6-6.6-16.1-9.5-25.3-7.7-11.1 2.2-22.5-2.5-28.8-11.9-5.2-7.8-14-12.5-23.3-12.5l-2 0c-9.4 0-18.1 4.7-23.3 12.5-6.3 9.5-17.7 14.2-28.8 11.9-9.2-1.8-18.7 1-25.3 7.7l-1.4 1.4c-6.6 6.6-9.5 16.1-7.7 25.3 2.2 11.1-2.5 22.5-11.9 28.8-7.8 5.2-12.5 14-12.5 23.3l0 2c0 9.4 4.7 18.1 12.5 23.3zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [\"area-chart\"], \"f1fe\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM240 96c6.7 0 13.1 2.8 17.7 7.8L328.8 181.3 375 135c9.4-9.4 24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17l0 112c0 13.3-10.7 24-24 24l-304 0c-13.3 0-24-10.7-24-24l0-112c0-6 2.3-11.8 6.3-16.2l88-96c4.5-5 11-7.8 17.7-7.8z\"]\n};\nvar faAreaChart = faChartArea;\nvar faRupiahSign = {\n prefix: 'fas',\n iconName: 'rupiah-sign',\n icon: [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm256-32l80 0c61.9 0 112 50.1 112 112S461.9 448 400 448l-48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M40 0C17.9 0 0 17.9 0 40L0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 128 0 0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-160 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 0zm78.6 406.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 229.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-229.5 0 9.4-9.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [128752], \"f7bf\", \"M199 7c9.4-9.4 24.6-9.4 33.9 0l89.4 89.4 55-55c12.5-12.5 32.8-12.5 45.3 0l48 48c12.5 12.5 12.5 32.8 0 45.3l-55 55 89.4 89.4c9.4 9.4 9.4 24.6 0 33.9l-96 96c-9.4 9.4-24.6 9.4-33.9 0l-89.4-89.4-15.5 15.5c11.4 24.6 17.8 52 17.8 80.9 0 31.7-7.7 61.5-21.2 87.8-4.7 9-16.7 10.3-23.8 3.1l-96.3-96.3-60 60c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l60-60-96.3-96.3c-7.2-7.2-5.9-19.2 3.1-23.8 26.3-13.6 56.2-21.2 87.8-21.2 28.9 0 56.3 6.4 80.9 17.8L192.4 226.3 103 137c-9.4-9.4-9.4-24.6 0-33.9L199 7zm17 50.9l-62.1 62.1 72.4 72.4 62.1-62.1-72.4-72.4zM392 358.1l62.1-62.1-72.4-72.4-62.1 62.1 72.4 72.4z\"]\n};\nvar faMagnifyingGlassMinus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-minus',\n icon: [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faSearchMinus = faMagnifyingGlassMinus;\nvar faPeopleGroup = {\n prefix: 'fas',\n iconName: 'people-group',\n icon: [512, 512, [], \"e533\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1C172.7 359 160 337 160 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zM96 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm16 240l0 32c0 32.5 12.1 62.1 32 84.7l0 75.3c0 1.2 0 2.5 .1 3.7-8.5 7.6-19.7 12.3-32.1 12.3l-32 0c-26.5 0-48-21.5-48-48l0-56.6C12.9 364.4 0 343.7 0 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1zM368 464l0-75.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 56.6c0 26.5-21.5 48-48 48l-32 0c-12.3 0-23.6-4.6-32.1-12.3 0-1.2 .1-2.5 .1-3.7zM416 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faSquareBinary = {\n prefix: 'fas',\n iconName: 'square-binary',\n icon: [448, 512, [], \"e69b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm144 4c-24.3 0-44 19.7-44 44l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0zm-4 44c0-2.2 1.8-4 4-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48zm140-44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0zM132 296c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20zm96 24l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0c-24.3 0-44 19.7-44 44zm44-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48c0-2.2 1.8-4 4-4z\"]\n};\nvar faMasksTheater = {\n prefix: 'fas',\n iconName: 'masks-theater',\n icon: [576, 512, [127917, \"theater-masks\"], \"f630\", \"M-5 118L23.5 279.7c14 79.5 76.3 141.8 155.8 155.8l12.7 2.2c-16.5-28.6-27.1-60.7-30.6-94.5l-24.1 4.3c-9.7 1.7-18.8-5.8-16.9-15.5 4.8-24.7 19.1-46.6 39.7-60.9l0-74.6c-1.4 .8-3 1.3-4.7 1.6l-63 11.1c-8.7 1.5-17.3-4.4-15.9-13.1 3.1-19.6 18.4-36 39.1-39.7 17.2-3 33.9 3.5 44.6 15.8l0-22.7c0-22.5 6.9-52.4 32.3-73.4 26-21.5 67.7-43.9 124.9-54.2-30.5-16.3-86.3-32-163.8-18.4-80.3 14.2-128 50.1-150.1 76.1-9 10.5-10.8 24.9-8.4 38.5zM208 138.7l0 174.8c0 80.7 50.5 152.9 126.4 180.4L362.1 504c14.1 5.1 29.6 5.1 43.7 0L433.6 494C509.5 466.4 560 394.3 560 313.5l0-174.8c0-6.9-2.1-13.8-7-18.6-22.6-22.5-78.2-56-169-56s-146.4 33.6-169 56c-4.9 4.9-7 11.7-7 18.6zm66.1 187.1c-1.4-7 7-11 12.7-6.6 26.9 20.6 60.6 32.9 97.2 32.9s70.2-12.3 97.2-32.9c5.7-4.4 14.1-.4 12.7 6.6-10.1 51.4-55.5 90.3-109.9 90.3s-99.8-38.8-109.9-90.3zm.5-101.5C281.2 205.5 299 192 320 192s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7l-64 0c-8.8 0-16.3-7.4-13.4-15.7zM480 240l-64 0c-8.8 0-16.3-7.4-13.4-15.7 6.5-18.8 24.4-32.3 45.4-32.3s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7z\"]\n};\nvar faTheaterMasks = faMasksTheater;\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [640, 512, [], \"f217\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 412.7 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM336 78.4c-13.3 0-24 10.7-24 24l0 33.6-33.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.6 0 0 33.6c0 13.3 10.7 24 24 24s24-10.7 24-24l0-33.6 33.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-33.6 0 0-33.6c0-13.3-10.7-24-24-24z\"]\n};\nvar faHandsAslInterpreting = {\n prefix: 'fas',\n iconName: 'hands-asl-interpreting',\n icon: [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l80 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7 8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20 8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5l-100.7 27.5 81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4l-101.9 84.9 23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-80 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20 22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.6-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"]\n};\nvar faAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faAslInterpreting = faHandsAslInterpreting;\nvar faHandsAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faTableCellsRowUnlock = {\n prefix: 'fas',\n iconName: 'table-cells-row-unlock',\n icon: [640, 512, [], \"e691\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48c-.1-17.6-14.4-31.9-32-31.9-17.7 0-32 14.3-32 32l0 47.9 96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80 44.2 0 79.9 35.8 80 79.9l-48 0z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M128 320L24.5 320c-24.9 0-40.2-27.1-27.4-48.5L50 183.3C58.7 168.8 74.3 160 91.2 160l95 0c76.1-128.9 189.6-135.4 265.5-124.3 12.8 1.9 22.8 11.9 24.6 24.6 11.1 75.9 4.6 189.4-124.3 265.5l0 95c0 16.9-8.8 32.5-23.3 41.2l-88.2 52.9c-21.3 12.8-48.5-2.6-48.5-27.4L192 384c0-35.3-28.7-64-64-64l-.1 0zM400 160a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faShrimp = {\n prefix: 'fas',\n iconName: 'shrimp',\n icon: [512, 512, [129424], \"e448\", \"M72 32C32.2 32 0 64.2 0 104 0 141.9 29.3 172.9 66.4 175.8 77.6 257.2 147.4 320 232 320l56 0 0-192-216 0c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111 0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6 0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faTengeSign = {\n prefix: 'fas',\n iconName: 'tenge-sign',\n icon: [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 56C0 42.7 10.7 32 24 32l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 80C10.7 80 0 69.3 0 56zM0 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256-128 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faTenge = faTengeSign;\nvar faHouseChimneyMedical = {\n prefix: 'fas',\n iconName: 'house-chimney-medical',\n icon: [512, 512, [\"clinic-medical\"], \"f7f2\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM224 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faClinicMedical = faHouseChimneyMedical;\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M73-24.9c-9.4-9.4-24.6-9.4-33.9 0S29.7-.3 39 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L321.8 224c56.6-1 102.2-47.2 102.2-104 0-57.4-46.6-104-104-104-56.8 0-103 45.6-104 102.2L73-24.9zM512 288c-17.2 0-33.7 3.4-48.7 9.6l170 170c4.2-5.4 6.7-12.2 6.7-19.6l0-32c0-70.7-57.3-128-128-128zM59.9 97.7c-21.5 12.5-35.9 35.7-35.9 62.3 0 39.8 32.2 72 72 72 26.6 0 49.8-14.4 62.3-35.9L59.9 97.7zM250.2 288C196.8 313.9 160 368.7 160 432l0 16c0 17.7 14.3 32 32 32l250.2 0-192-192zM128 288C57.3 288 0 345.3 0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [576, 512, [61913], \"f1d8\", \"M536.4-26.3c9.8-3.5 20.6-1 28 6.3s9.8 18.2 6.3 28l-178 496.9c-5 13.9-18.1 23.1-32.8 23.1-14.2 0-27-8.6-32.3-21.7l-64.2-158c-4.5-11-2.5-23.6 5.2-32.6l94.5-112.4c5.1-6.1 4.7-15-.9-20.6s-14.6-6-20.6-.9L229.2 276.1c-9.1 7.6-21.6 9.6-32.6 5.2L38.1 216.8c-13.1-5.3-21.7-18.1-21.7-32.3 0-14.7 9.2-27.8 23.1-32.8l496.9-178z\"]\n};\nvar faBookAtlas = {\n prefix: 'fas',\n iconName: 'book-atlas',\n icon: [448, 512, [\"atlas\"], \"f558\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM310.6 208L279 208c-1.4 23.1-6 44.2-12.6 61.2 22.7-12.5 39.4-34.8 44.2-61.2zm-173.1 0c4.8 26.4 21.5 48.7 44.2 61.2-6.7-17-11.2-38-12.6-61.2l-31.6 0zm76.4 55c4.5 9.6 8.2 13.8 10.2 15.5 2-1.7 5.7-5.8 10.2-15.5 6.2-13.4 11.1-32.5 12.7-55l-45.8 0c1.6 22.5 6.5 41.6 12.7 55zm-12.7-87l45.8 0c-1.6-22.5-6.5-41.6-12.7-55-4.5-9.6-8.2-13.8-10.2-15.5-2 1.7-5.7 5.8-10.2 15.5-6.2 13.4-11.1 32.5-12.7 55zm109.5 0c-4.8-26.4-21.5-48.7-44.2-61.2 6.7 17 11.2 38 12.6 61.2l31.6 0zM169 176c1.4-23.1 6-44.2 12.6-61.2-22.7 12.5-39.4 34.8-44.2 61.2l31.6 0zM96 192a128 128 0 1 1 256 0 128 128 0 1 1 -256 0z\"]\n};\nvar faAtlas = faBookAtlas;\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [448, 512, [], \"f0ce\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64l-320 0-6.5-.3C25.2 476.4 0 449.1 0 416L0 96C0 60.7 28.7 32 64 32l320 0zM64 320l0 96 128 0 0-96-128 0zm192 0l0 96 128 0 0-96-128 0zM64 256l128 0 0-96-128 0 0 96zm192 0l128 0 0-96-128 0 0 96z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1z\"]\n};\nvar faCircleChevronUp = {\n prefix: 'fas',\n iconName: 'circle-chevron-up',\n icon: [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"]\n};\nvar faChevronCircleUp = faCircleChevronUp;\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [\"battery-3\"], \"f242\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-144 0z\"]\n};\nvar faBattery3 = faBatteryHalf;\nvar faFontAwesome = {\n prefix: 'fas',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faHandcuffs = {\n prefix: 'fas',\n iconName: 'handcuffs',\n icon: [576, 512, [], \"e4f8\", \"M320-32c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zM192 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM152 96c-13.3 0-24 10.7-24 24l0 16c0 1 .1 1.9 .2 2.9-74.7 26.3-128.2 97.5-128.2 181.1 0 106 86 192 192 192s192-86 192-192c0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0zM64 320a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm448 0c0 66.9-51.3 121.8-116.6 127.5-14.3 22.8-32.4 43.1-53.4 59.9 13.5 3 27.6 4.6 42 4.6 106 0 192-86 192-192 0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0c-12.3 0-22.4 9.2-23.8 21.1 30.3 19.2 56.1 45 75.2 75.4 65.4 5.8 116.6 60.6 116.6 127.5zM384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M640 388.3c0 16.9-7.1 32.2-18.4 43.1l-35-23.3-292.7-195.1c-36.1-24.1-78.6-36.9-122-36.9l-3.9 0c-2.7 0-5.4 0-8 .1l22.2-100c5.7-25.8 28.6-44.1 55-44.1 12.2 0 24.1 4 33.8 11.3l4.7 3.5c26.3 19.7 62.4 19.7 88.6 0l4.7-3.5c9.8-7.3 21.6-11.3 33.8-11.3 26.4 0 49.3 18.3 55 44.1l33 148.5C574.5 232.3 640 302.6 640 388.3zM171.9 224c33.9 0 67.1 10 95.4 28.9L560 448 56 448c-30.9 0-56-25.1-56-56 0-92.8 75.2-168 168-168l3.9 0z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-279.8c0-18.2-19.4-29.7-35.4-21.1l-156.6 84.3 0-63.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4 128 64c0-17.7-14.3-32-32-32L32 32z\"]\n};\nvar faLinesLeaning = {\n prefix: 'fas',\n iconName: 'lines-leaning',\n icon: [384, 512, [], \"e51e\", \"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [384, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 408c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zM278.6 208c-4.8 26.4-21.5 48.7-44.2 61.2 6.7-17 11.2-38 12.6-61.2l31.6 0zm-173.1 0l31.6 0c1.4 23.1 6 44.2 12.6 61.2-22.7-12.5-39.4-34.8-44.2-61.2zm76.4 55c-6.2-13.4-11.1-32.5-12.7-55l45.8 0c-1.6 22.5-6.5 41.6-12.7 55-4.5 9.6-8.2 13.8-10.2 15.5-2-1.7-5.7-5.8-10.2-15.5zm0-142c4.5-9.6 8.2-13.8 10.2-15.5 2 1.7 5.7 5.8 10.2 15.5 6.2 13.4 11.1 32.5 12.7 55l-45.8 0c1.6-22.5 6.5-41.6 12.7-55zm96.7 55L247 176c-1.4-23.1-6-44.2-12.6-61.2 22.7 12.5 39.4 34.8 44.2 61.2zM137 176l-31.6 0c4.8-26.4 21.5-48.7 44.2-61.2-6.7 17-11.2 38-12.6 61.2zm183 16a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [8734, 9854], \"f534\", \"M0 256c0-88.4 71.6-160 160-160 50.4 0 97.8 23.7 128 64l32 42.7 32-42.7c30.2-40.3 77.6-64 128-64 88.4 0 160 71.6 160 160S568.4 416 480 416c-50.4 0-97.8-23.7-128-64l-32-42.7-32 42.7c-30.2 40.3-77.6 64-128 64-88.4 0-160-71.6-160-160zm280 0l-43.2-57.6c-18.1-24.2-46.6-38.4-76.8-38.4-53 0-96 43-96 96s43 96 96 96c30.2 0 58.7-14.2 76.8-38.4L280 256zm80 0l43.2 57.6c18.1 24.2 46.6 38.4 76.8 38.4 53 0 96-43 96-96s-43-96-96-96c-30.2 0-58.7 14.2-76.8 38.4L360 256z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M288 448l-224 0 0-224 48 0 0-64-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-64 0 0 48zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [576, 512, [9193], \"f04e\", \"M371.7 43.1C360.1 32 343 28.9 328.3 35.2S304 56 304 72l0 136.3-172.3-165.1C120.1 32 103 28.9 88.3 35.2S64 56 64 72l0 368c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9L304 303.7 304 440c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9l192-184c7.9-7.5 12.3-18 12.3-28.9s-4.5-21.3-12.3-28.9l-192-184z\"]\n};\nvar faM = {\n prefix: 'fas',\n iconName: 'm',\n icon: [448, 512, [109], \"4d\", \"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3-133.4 200.1c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 49.9 9.2 37.5 22.7 33.4z\"]\n};\nvar faRoadSpikes = {\n prefix: 'fas',\n iconName: 'road-spikes',\n icon: [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.8-26.6 49.8L64 352 64 116.8zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [512, 512, [127956], \"f6fc\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M168 56l0 40-78.1 0c-14.3 0-25.9 11.6-25.9 25.9 0 4 .9 8 2.7 11.6l33.4 66.8c-11.4 1.8-20.2 11.7-20.2 23.7 0 13.3 10.7 24 24 24l5.6 0-13.6 136-56.2 70.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l248.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L288 384 274.4 248 280 248c13.3 0 24-10.7 24-24 0-11.9-8.7-21.9-20.2-23.7l33.4-66.8c1.8-3.6 2.7-7.6 2.7-11.6 0-14.3-11.6-25.9-25.9-25.9l-78.1 0 0-40 16 0c13.3 0 24-10.7 24-24S245.3 8 232 8l-16 0 0-16c0-13.3-10.7-24-24-24S168-21.3 168-8l0 16-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0zM325.8 279.6l8.5 85.5 47.4 59.2 4.2 5.7c9.2 13.7 14.1 29.9 14.1 46.5 0 12.7-2.8 24.8-7.9 35.5l83.1 0c20.3 0 36.8-16.5 36.8-36.8 0-7.3-2.2-14.4-6.2-20.4l-25.8-38.7 0-64 13.3-13.3c12-12 18.7-28.3 18.7-45.3L512 192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 16-32 0 0-16c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 22.4-10.2 42.4-26.2 55.6z\"]\n};\nvar faTemperatureThreeQuarters = {\n prefix: 'fas',\n iconName: 'temperature-three-quarters',\n icon: [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 156.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature3 = faTemperatureThreeQuarters;\nvar faThermometer3 = faTemperatureThreeQuarters;\nvar faThermometerThreeQuarters = faTemperatureThreeQuarters;\nvar faB = {\n prefix: 'fas',\n iconName: 'b',\n icon: [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l160 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM160 224l-96 0 0-128 96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0 0-128z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M253.4 2.9C249.2 1 244.7 0 240 0s-9.2 1-13.4 2.9L38.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L253.4 2.9zM240 128c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM208 264a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faLitecoinSign = {\n prefix: 'fas',\n iconName: 'litecoin-sign',\n icon: [384, 512, [], \"e1d3\", \"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 157.9-38.6 11c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5L64 271.8 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-162.5 134.6-38.5c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5L128 203.6 128 64z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [512, 512, [], \"f6d1\", \"M224.4 8.3C244-2.8 268-2.8 287.6 8.3l176 99.7c20 11.4 32.4 32.6 32.4 55.7l0 197.4c0 23-12.4 44.3-32.4 55.7l-176 99.7c-19.6 11.1-43.6 11.1-63.1 0l-176-99.7C28.4 405.5 16 384.2 16 361.2l0-197.4c0-23 12.4-44.3 32.4-55.7l176-99.7zM102.6 155.6c-8.8-3.1-18.8 .3-23.8 8.6s-3.2 18.7 3.6 25l3.2 2.4 150.2 90.2 0 148.7c0 11 9 20 20 20 11 0 20-9 20-20l0-148.7 150.3-90.2c9.5-5.7 12.6-18 6.9-27.4s-18-12.5-27.4-6.9l-149.7 89.8-149.7-89.8-3.7-1.7z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z\"]\n};\nvar faGolfBallTee = {\n prefix: 'fas',\n iconName: 'golf-ball-tee',\n icon: [384, 512, [\"golf-ball\"], \"f450\", \"M298.5 384.1c12.1 1.2 21.5 11.5 21.5 23.9s-9.4 22.6-21.5 23.9l-2.5 .1-80 0 0 88c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-88-80 0c-13.3 0-24-10.7-24-24 0-12.4 9.4-22.6 21.5-23.9l2.5-.1 208 0 2.5 .1zM192 0c106 0 192 86 192 192 0 57.4-25.2 108.8-65.1 144L65.1 336C25.2 300.8 0 249.4 0 192 0 86 86 0 192 0zm32 240c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm64-64c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-80-16c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16z\"]\n};\nvar faGolfBall = faGolfBallTee;\nvar faHexagon = {\n prefix: 'fas',\n iconName: 'hexagon',\n icon: [576, 512, [11043], \"f312\", \"M33.5 220.3c-12.7 22.2-12.7 49.4 0 71.5l96.2 168.1c12.8 22.4 36.7 36.2 62.5 36.2l191.6 0c25.8 0 49.7-13.8 62.5-36.2l96.2-168.1c12.7-22.2 12.7-49.4 0-71.5L446.3 52.2C433.5 29.8 409.6 16 383.8 16L192.2 16c-25.8 0-49.7 13.8-62.5 36.2L33.5 220.3z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M56 225.6L32.4 296.2 32.4 96c0-35.3 28.7-64 64-64l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4l117.3 0c35.3 0 64 28.7 64 64l0 16-365.4 0c-41.3 0-78 26.4-91.1 65.6zM477.8 448L99 448c-32.8 0-55.9-32.1-45.5-63.2l48-144C108 221.2 126.4 208 147 208l378.8 0c32.8 0 55.9 32.1 45.5 63.2l-48 144c-6.5 19.6-24.9 32.8-45.5 32.8z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [512, 512, [128331], \"f66b\", \"M256 51.3L92.8 112.4 247.5 171.1c5.5 2.1 11.5 2.1 17 0L419.2 112.4 256 51.3zM0 129.3c0-20 12.4-37.9 31.1-44.9l208-78c10.9-4.1 22.8-4.1 33.7 0l208 78c18.7 7 31.1 24.9 31.1 44.9l0 36-253.2 96c-1.8 .7-3.8 .7-5.7 0l-253.2-96 0-36zm0 140l0-52.7 236.1 89.6c12.8 4.9 26.9 4.9 39.7 0l236.1-89.6 0 52.7-128 48.6 0 51.3 128-48.6 0 62.2c0 20-12.4 37.9-31.1 44.9l-208 78c-10.9 4.1-22.8 4.1-33.7 0l-208-78C12.4 420.7 0 402.7 0 382.7l0-62.2 128 48.6 0-51.3-128-48.6zM236.1 410.1c12.8 4.9 26.9 4.9 39.7 0l60.1-22.8 0-51.3-77.2 29.3c-1.8 .7-3.8 .7-5.7 0l-77.2-29.3 0 51.3 60.1 22.8z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"]\n};\nvar faSingleQuoteRight = {\n prefix: 'fas',\n iconName: 'single-quote-right',\n icon: [192, 512, [], \"e81c\", \"M64 416c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136c0 66.3-53.7 120-120 120l-8 0z\"]\n};\nvar faBottleDroplet = {\n prefix: 'fas',\n iconName: 'bottle-droplet',\n icon: [320, 512, [], \"e4c4\", \"M80 0c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 103.3c64.9 20.4 112 81 112 152.7l0 192c0 35.3-28.7 64-64 64L64 544c-35.3 0-64-28.7-64-64L0 288c0-71.6 47.1-132.3 112-152.7L112 32C94.3 32 80 17.7 80 0zm80 416c35.3 0 64-32.4 64-64 0-21.2-28.9-64.5-47.9-90.6-8.1-11.1-24.2-11.1-32.3 0-19 26.1-47.9 69.4-47.9 90.6 0 31.6 28.7 64 64 64z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M0 416c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [9002], \"f054\", \"M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 394 0 288 0 176 64 16 192 16S384 176 384 288c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2-11.2 31.6-16.9 65.1-16.9 93.5 0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8 10.1-28.5 25-54.1 43.7-71.2z\"]\n};\nvar faLandmarkDome = {\n prefix: 'fas',\n iconName: 'landmark-dome',\n icon: [512, 512, [\"landmark-alt\"], \"f752\", \"M256 0c-17.7 0-32 14.3-32 32 0 .9 0 1.8 .1 2.6-80.5 13.4-144 76.9-157.5 157.4L64 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 160-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6L448 416 448 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-2.7 0c-13.5-80.4-77-143.9-157.5-157.4 .1-.9 .1-1.7 .1-2.6 0-17.7-14.3-32-32-32zm80 256l64 0 0 160-64 0 0-160zM224 416l0-160 64 0 0 160-64 0zM112 256l64 0 0 160-64 0 0-160z\"]\n};\nvar faLandmarkAlt = faLandmarkDome;\nvar faWorm = {\n prefix: 'fas',\n iconName: 'worm',\n icon: [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96l38.4 0C407.9 0 448 40.1 448 89.6L448 376c0 75.1-60.9 136-136 136S176 451.1 176 376l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48S0 490.5 0 464L0 296c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M242.7 80L334 80c-10.7-24.6-29.5-44.9-52.9-57.6L242.7 80zm-.9-70.7C236 8.4 230 8 224 8 174.8 8 132.5 37.6 114 80l80.6 0 47.1-70.7zM224 248c66.3 0 120-53.7 120-120l-240 0c0 66.3 53.7 120 120 120zM98.7 341.8C49.3 370.2 16 423.5 16 484.6 16 499.7 28.3 512 43.4 512l151 0-95.8-170.2zm45.1-17.7l42.7 75.9 85.5 0c44.2 0 80 35.8 80 80 0 11.4-2.4 22.2-6.7 32l59.2 0c15.1 0 27.4-12.3 27.4-27.4 0-90.9-73.7-164.6-164.6-164.6l-86.9 0c-12.6 0-24.9 1.4-36.7 4.1zM213.5 448l36 64 22.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-58.5 0z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M96 157.5C96 88.2 152.2 32 221.5 32L368 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L221.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61l44.1 5.5 222 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l83.1 0C103 204.6 96 181.8 96 157.5zM349.2 336l65.5 0c.9 6.1 1.4 12.2 1.4 18.5 0 69.3-56.2 125.5-125.5 125.5L144 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-6.4-1-12.7-2.8-18.5z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M224 24c0-13.3 10.7-24 24-24 145.8 0 264 118.2 264 264 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-119.3-96.7-216-216-216-13.3 0-24-10.7-24-24zM80 96c26.5 0 48 21.5 48 48l0 224c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16 79.5 0 144 64.5 144 144S255.5 512 176 512 32 447.5 32 368l0-224c0-26.5 21.5-48 48-48zm168 0c92.8 0 168 75.2 168 168 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3-53.7-120-120-120-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm-60 240c0-28.7 23.3-52 52-52s52 23.3 52 52l0 3.8c0 11.7-3.2 23.1-9.3 33l-43.8 71.2 33.1 0c11 0 20 9 20 20s-9 20-20 20l-57.8 0c-14.5 0-26.2-11.7-26.2-26.2 0-4.9 1.3-9.6 3.9-13.8l56.7-92.1c2.2-3.6 3.4-7.8 3.4-12.1l0-3.8c0-6.6-5.4-12-12-12s-12 5.4-12 12c0 11-9 20-20 20s-20-9-20-20zm180-52c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [128763], \"f63c\", \"M363.8 96l57.6 96-133.4 0 0-96 75.8 0zM496 192L418.6 63.1C407.1 43.8 386.2 32 363.8 32L256 32c-17.7 0-32 14.3-32 32l0 128-144 0c-26.5 0-48 21.5-48 48l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32.4 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l160.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l32.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-80c0-26.5-21.5-48-48-48l-64 0zM112 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm376-40a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 32C512 140.1 435.4 230.3 333.6 251.4 325.7 193.3 299.6 141 261.1 100.5 301.2 40 369.9 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z\"]\n};\nvar faSprout = faSeedling;\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [576, 512, [9895, \"transgender-alt\"], \"f225\", \"M128-32c17.7 0 32 14.3 32 32s-14.3 32-32 32L97.9 32 136 70.1 151 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-15 15 14.2 14.2c27.9-23.8 64.2-38.2 103.8-38.2 36.7 0 70.6 12.4 97.6 33.2L466.7 32 448 32c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-84.4 84.4c13 23.1 20.4 49.9 20.4 78.3 0 77.4-55 142-128 156.8l0 35.2 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-35.2c-73-14.8-128-79.4-128-156.8 0-31.4 9-60.7 24.7-85.4l-16.7-16.7-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l15-15-38.1-38.1 0 30.1c0 17.7-14.3 32-32 32S0 113.7 0 96L0 0C0-17.7 14.3-32 32-32l96 0zM288 336a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faTransgenderAlt = faTransgender;\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M304.1 7.6c0-11.1-7.6-20.7-18.4-23.3s-21.9 2.5-27 12.4L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L291 416.1c8-4.1 13.1-12.4 13.1-21.4l0-387.1z\"]\n};\nvar faPhotoFilm = {\n prefix: 'fas',\n iconName: 'photo-film',\n icon: [640, 512, [\"photo-video\"], \"f87c\", \"M192 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224zM320 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm156.5 11.5C472.1 100.4 464.4 96 456 96s-16.1 4.4-20.5 11.5l-54 88.3-17.9-25.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S279.1 288 288 288l256 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144zM144 128l0 160c0 61.9 50.1 112 112 112l192 0 0 16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l80 0zM52 196l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0zm0 96c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0z\"]\n};\nvar faPhotoVideo = faPhotoFilm;\nvar faPictureInPicture = {\n prefix: 'fas',\n iconName: 'picture-in-picture',\n icon: [512, 512, [], \"e80b\", \"M448 32c35.3 0 64 28.7 64 64l0 112-64 0 0-112-384 0 0 320 144 0 0 64-144 0-6.5-.3c-30.1-3.1-54.1-27-57.1-57.1L0 416 0 96C0 62.9 25.2 35.6 57.5 32.3L64 32 448 32zm16 224c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48l160 0z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [320, 512, [], \"e06a\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm64 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [448, 512, [128293], \"f06d\", \"M160.5-26.4c9.3-7.8 23-7.5 31.9 .9 12.3 11.6 23.3 24.4 33.9 37.4 13.5 16.5 29.7 38.3 45.3 64.2 5.2-6.8 10-12.8 14.2-17.9 1.1-1.3 2.2-2.7 3.3-4.1 7.9-9.8 17.7-22.1 30.8-22.1 13.4 0 22.8 11.9 30.8 22.1 1.3 1.7 2.6 3.3 3.9 4.8 10.3 12.4 24 30.3 37.7 52.4 27.2 43.9 55.6 106.4 55.6 176.6 0 123.7-100.3 224-224 224S0 411.7 0 288c0-91.1 41.1-170 80.5-225 19.9-27.7 39.7-49.9 54.6-65.1 8.2-8.4 16.5-16.7 25.5-24.2zM225.7 416c25.3 0 47.7-7 68.8-21 42.1-29.4 53.4-88.2 28.1-134.4-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5-17.3-22.1-49.1-62.4-65.3-83-5.4-6.9-15.2-8-21.5-1.9-18.3 17.8-51.5 56.8-51.5 104.3 0 68.6 50.6 109.2 113.7 109.2z\"]\n};\nvar faMagnifyingGlassPlus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-plus',\n icon: [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 112c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faSearchPlus = faMagnifyingGlassPlus;\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M288 0L128 0C110.3 0 96 14.3 96 32s14.3 32 32 32L128 215.5 7.5 426.3C2.6 435 0 444.7 0 454.7 0 486.4 25.6 512 57.3 512l333.4 0c31.6 0 57.3-25.6 57.3-57.3 0-10-2.6-19.8-7.5-28.4L320 215.5 320 64c17.7 0 32-14.3 32-32S337.7 0 320 0L288 0zM192 215.5l0-151.5 64 0 0 151.5c0 11.1 2.9 22.1 8.4 31.8l41.6 72.7-164 0 41.6-72.7c5.5-9.7 8.4-20.6 8.4-31.8z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faCableCar = {\n prefix: 'fas',\n iconName: 'cable-car',\n icon: [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 24a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-96.2-193.4 55.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l224-64 0 0 224-64c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-206.6 59 0 109.9 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm80 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l56 0 0-96-56 0zm184 96l0-96-80 0 0 96 80 0zm48 0l56 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-56 0 0 96z\"]\n};\nvar faTram = faCableCar;\nvar faKitMedical = {\n prefix: 'fas',\n iconName: 'kit-medical',\n icon: [512, 512, [\"first-aid\"], \"f479\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l16 0 0-384-16 0zm64 0l0 384 256 0 0-384-256 0zM448 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-16 0 0 384 16 0zM224 184c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faFirstAid = faKitMedical;\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nvar faBurger = {\n prefix: 'fas',\n iconName: 'burger',\n icon: [512, 512, [\"hamburger\"], \"f805\", \"M48 384c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l288 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16L48 384zM32 202c0 12.2 9.9 22 22 22L458 224c12.2 0 22-9.9 22-22 0-17.2-2.6-34.4-10.8-49.5-22.2-40.8-82.3-120.5-213.2-120.5S65 111.6 42.8 152.5C34.6 167.6 32 184.8 32 202zM0 304c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 272c-17.7 0-32 14.3-32 32zM256 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM120 128a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm248-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faHamburger = faBurger;\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [640, 512, [9731, 9924], \"f7d0\", \"M403 211.7c32.2-24.9 53-63.9 53-107.7 0-75.1-60.9-136-136-136S184 28.9 184 104c0 43.9 20.8 82.9 53 107.7-32.2 16.3-59 41.8-76.8 73.1L112 264.2 112 224c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 19.6-22.5-9.7c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5c36.1 15.5 75.9 32.5 119.4 51.2-3.9 14.9-6 30.6-6 46.7 0 70 39.1 130.8 96.6 161.9 7.9 4.3 16.9 6.1 25.9 6.1l123 0c9 0 18-1.8 25.9-6.1 57.5-31.1 96.6-92 96.6-161.9 0-16.2-2.1-31.8-6-46.7 43.5-18.7 83.4-35.7 119.4-51.2 12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6l-22.5 9.7 0-19.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40.2-48.2 20.6c-17.9-31.3-44.6-56.8-76.8-73.1zM296 416a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24-120a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM292.2 159.3c-2.7-4.8-4.2-10.2-4.2-15.7 0-17.5 14.2-31.6 31.6-31.6l.8 0c17.5 0 31.6 14.2 31.6 31.6 0 5.5-1.4 10.9-4.2 15.7L327 195.8c-3.1 5.4-10.8 5.4-13.9 0l-20.9-36.6z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [512, 512, [127976], \"f594\", \"M16 24C16 10.7 26.7 0 40 0L472 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 416 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-416-8 0C26.7 48 16 37.3 16 24zm208 88l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM128 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm96 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM112 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 384l43.8 0c9.9 0 17.5-9 14-18.2-13.8-36.1-48.8-61.8-89.7-61.8s-75.9 25.7-89.7 61.8c-3.5 9.2 4.1 18.2 14 18.2l43.8 0 0 80 64 0 0-80z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [128424, 128438, 9113], \"f02f\", \"M64 64C64 28.7 92.7 0 128 0L341.5 0c17 0 33.3 6.7 45.3 18.7l42.5 42.5c12 12 18.7 28.3 18.7 45.3l0 37.5-384 0 0-80zM0 256c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 96c0 17.7-14.3 32-32 32l-32 0 0 64c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-64-32 0c-17.7 0-32-14.3-32-32l0-96zM128 416l0 32 256 0 0-96-256 0 0 64zM456 272a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faVolleyball = {\n prefix: 'fas',\n iconName: 'volleyball',\n icon: [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M512 258.9c-23.4 8-47.8 13.1-72.6 15.1 5.9-98.6-30.7-191.1-94.9-258.3 97.8 36 167.5 130 167.5 240.3 0 1 0 1.9 0 2.9zm-5.9 52c-5.2 23.7-13.6 46.2-24.9 66.9-94.7 52.2-214 50-308.4-13.6 21.7-31.3 49.8-58.9 83.8-80.5 79.5 41.6 168.5 49.1 249.5 27.1zM279.7 241.6c-3.7-89.7-41.7-170.5-101.3-229.7 22.3-7.1 46-11.2 70.5-11.9 92.5 55.9 150.3 160.3 142.4 273.8-38-3.2-75.9-13.7-111.6-32.3zM130.5 32.8C149.1 49.1 165.8 67.7 179.9 88.2 91.5 132.3 29.7 210.3 3.7 299.5 1.3 285.3 0 270.8 0 256 0 160.2 52.6 76.7 130.5 32.8zm73.4 97c16.3 34.5 26.1 72.6 27.9 112.8-75.8 48-126.8 121.3-148.3 202.5-17.6-16.1-33-34.6-45.5-55 2.1-108.1 63.7-210.4 165.9-260.3zM256 512c-47.7 0-92.3-13-130.5-35.7 4.8-24.3 12.6-48 23.2-70.4 82.4 54.4 180.8 68.9 271 47-44.4 37-101.5 59.2-163.7 59.2z\"]\n};\nvar faVolleyballBall = faVolleyball;\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [320, 512, [128678], \"f637\", \"M64-32C28.7-32 0-3.3 0 32L0 384c0 88.4 71.6 160 160 160s160-71.6 160-160l0-352c0-35.3-28.7-64-64-64L64-32zm96 392c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-104a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zM160 152a56 56 0 1 1 0-112 56 56 0 1 1 0 112z\"]\n};\nvar faPlaneCircleCheck = {\n prefix: 'fas',\n iconName: 'plane-circle-check',\n icon: [640, 512, [], \"e555\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M320 16a104 104 0 1 1 0 208 104 104 0 1 1 0-208zM96 88a72 72 0 1 1 0 144 72 72 0 1 1 0-144zM0 416c0-70.7 57.3-128 128-128 12.8 0 25.2 1.9 36.9 5.4-32.9 36.8-52.9 85.4-52.9 138.6l0 16c0 11.4 2.4 22.2 6.7 32L32 480c-17.7 0-32-14.3-32-32l0-32zm521.3 64c4.3-9.8 6.7-20.6 6.7-32l0-16c0-53.2-20-101.8-52.9-138.6 11.7-3.5 24.1-5.4 36.9-5.4 70.7 0 128 57.3 128 128l0 32c0 17.7-14.3 32-32 32l-86.7 0zM472 160a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 432c0-88.4 71.6-160 160-160s160 71.6 160 160l0 16c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [576, 512, [], \"f0a3\", \"M239.2-8c-6.1-6.2-15-8.7-23.4-6.4S200.9-5.6 198.8 2.8L183.5 63c-1.1 4.4-5.6 7-9.9 5.7L113.8 51.9c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l16.9 59.8c1.2 4.3-1.4 8.8-5.7 9.9L35.1 166.5c-8.4 2.1-15 8.7-17.3 17.1s.2 17.3 6.4 23.4l44.5 43.3c3.2 3.1 3.2 8.3 0 11.5L24.3 305.1c-6.2 6.1-8.7 15-6.4 23.4s8.9 14.9 17.3 17.1l60.2 15.3c4.4 1.1 7 5.6 5.7 9.9L84.2 430.5c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l59.8-16.9c4.3-1.2 8.8 1.4 9.9 5.7l15.3 60.2c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l43.3-44.5c3.1-3.2 8.3-3.2 11.5 0L337.3 520c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3L393.1 449c1.1-4.4 5.6-7 9.9-5.7l59.8 16.9c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-16.9-59.8c-1.2-4.3 1.4-8.8 5.7-9.9l60.2-15.3c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-44.5-43.3c-3.2-3.1-3.2-8.3 0-11.5l44.5-43.3c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-60.2-15.3c-4.4-1.1-7-5.6-5.7-9.9l16.9-59.8c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1L403 68.8c-4.3 1.2-8.8-1.4-9.9-5.7L377.8 2.8c-2.1-8.4-8.7-15-17.1-17.3s-17.3 .2-23.4 6.4L294 36.5c-3.1 3.2-8.3 3.2-11.5 0L239.2-8z\"]\n};\nvar faAlarmClock = {\n prefix: 'fas',\n iconName: 'alarm-clock',\n icon: [512, 512, [9200], \"f34e\", \"M504.4 132.5c-4.5 10.5-18.4 9.8-24.9 .4-27.8-40-66.1-72.2-111-92.6-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3zm-471.9 .4c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-44.8 20.4-83.1 52.6-111 92.6zM390.2 467.4C352.8 495.4 306.3 512 256 512s-96.8-16.6-134.1-44.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l35.2-35.2C48.6 384.8 32 338.3 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 50.3-16.6 96.8-44.6 134.2l35.2 35.2c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-35.2-35.2zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l56 56c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-94.1z\"]\n};\nvar faHelicopterSymbol = {\n prefix: 'fas',\n iconName: 'helicopter-symbol',\n icon: [512, 512, [], \"e502\", \"M445.4 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.4 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.2 368.4 66.7 288L2 288zm0-64l64.7 0C80.2 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z\"]\n};\nvar faHouseChimneyCrack = {\n prefix: 'fas',\n iconName: 'house-chimney-crack',\n icon: [512, 512, [\"house-damage\"], \"f6f1\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-105.6 0-38.4-64 80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L218.6 263.2c-14.6-11.5-33.8 7-22.8 22L256 368 170.5 439.2c-6.1 5-7.5 13.8-3.5 20.5l31.3 52.2-86.4 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208z\"]\n};\nvar faHouseDamage = faHouseChimneyCrack;\nvar faPersonMilitaryPointing = {\n prefix: 'fas',\n iconName: 'person-military-pointing',\n icon: [512, 512, [], \"e54a\", \"M214.9 14.1C202 15.2 192 26 192 39 192 52.8 203.2 64 217 64l151 0c8.8 0 16-7.2 16-16l0-30.6C384 8 376 .7 366.7 1.4L214.9 14.1zM208 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L209.6 96c-1 5.2-1.6 10.5-1.6 16zM40 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4 162.8-162.8c-13.3-4.3-27.3-6.5-41.6-6.5L40 224zm345.7 20.9l-171.1 171.1 169.4 0 0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L430.3 290.8c-11.2-19-26.6-34.5-44.6-45.9zM192 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 205.8c-14.8 9.8-31.8 17.7-49.5 24-47 16.8-108.7 26.2-174.5 26.2S96.4 246.5 49.5 229.8c-17.6-6.3-34.7-14.2-49.5-24L0 288c0 44.2 100.3 80 224 80s224-35.8 224-80l0-82.2zm0-77.8l0-48C448 35.8 347.7 0 224 0S0 35.8 0 80l0 48c0 44.2 100.3 80 224 80s224-35.8 224-80zM398.5 389.8C351.6 406.5 289.9 416 224 416S96.4 406.5 49.5 389.8c-17.6-6.3-34.7-14.2-49.5-24L0 432c0 44.2 100.3 80 224 80s224-35.8 224-80l0-66.2c-14.8 9.8-31.8 17.7-49.5 24z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M0 416L0 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 288c0 13.3 10.7 24 24 24s24-10.7 24-24L96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM160 128l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zm24 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0zm-24-72c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0c-13.3 0-24 10.7-24 24zM360 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm1.6 68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm152 0c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm121.8 68.2l30.2-68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16z\"]\n};\nvar faMaximize = {\n prefix: 'fas',\n iconName: 'maximize',\n icon: [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32L24 32C10.7 32 0 42.7 0 56L0 200c0 9.7 5.8 18.5 14.8 22.2S34.1 223.8 41 217l40-40 79 79-79 79-40-40c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312L0 456c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2S270.3 480 280 480l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2S448 209.7 448 200l0-144c0-13.3-10.7-24-24-24L280 32c-9.7 0-18.5 5.8-22.2 14.8S256.2 66.1 263 73l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"]\n};\nvar faExpandArrowsAlt = faMaximize;\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M477.9 75.5c4.5-11.8 1.7-25.2-7.2-34.1s-22.3-11.8-34.1-7.2l-416 160C7.9 199-.3 211.2 0 224.7s9.1 25.4 21.9 29.6l176.8 58.9 58.9 176.8c4.3 12.8 16.1 21.6 29.6 21.9s25.7-7.9 30.6-20.5l160-416z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [576, 512, [127961], \"f64f\", \"M320 0c-35.3 0-64 28.7-64 64l0 32-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72C96 10.7 85.3 0 72 0S48 10.7 48 24l0 74c-27.6 7.1-48 32.2-48 62L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-64 0 0-128c0-35.3-28.7-64-64-64L320 0zm64 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm-16 80c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm112-16c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM128 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zm280 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 48-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0 0 48-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-48 80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0 0-48 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-16z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [512, 512, [127958], \"f5ca\", \"M497.5 341.1c-5.9 16.7-25.3 23-41.1 15.1l-178.2-89.1-1.6 3.2-88.8 177.7 292.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l84.2 0 103.2-206.3 1.6-3.2-165.4-82.7c-15.8-7.9-22.4-27.3-12.5-42 45.9-68.6 124.1-113.8 212.9-113.8 141.4 0 256 114.6 256 256 0 29.8-5.1 58.5-14.5 85.1z\"]\n};\nvar faArrowRightToBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-to-bracket',\n icon: [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignIn = faArrowRightToBracket;\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [448, 512, [], \"f590\", \"M224 64c-79 0-144.7 57.3-157.7 132.7 9.3-3 19.3-4.7 29.7-4.7l16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0c-53 0-96-43-96-96l0-64C0 100.3 100.3 0 224 0S448 100.3 448 224l0 168.1c0 66.3-53.8 120-120.1 120l-87.9-.1-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 0 40 0c39.8 0 72-32.2 72-72l0-20.9c-14.1 8.2-30.5 12.8-48 12.8l-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l16 0c10.4 0 20.3 1.6 29.7 4.7-13-75.3-78.6-132.7-157.7-132.7z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0 316.5 0 341.6 18.7 349.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2 0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6-14.8 0-29.3-5.1-40.9-14.3l-55.3-44.3c-4.5-3.6-9.3-6.7-14.5-9.2-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9c-34.6 6.3-66.4-20.3-66.4-55.4 0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1 0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9 0 110.5 30.1 85.1 63 90.7l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"]\n};\nvar faUpLong = {\n prefix: 'fas',\n iconName: 'up-long',\n icon: [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M137.4-22.6c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S300.9 160 288 160l-64 0 0 336c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-336-64 0c-12.9 0-24.6-7.8-29.6-19.8S.2 114.5 9.4 105.4l128-128z\"]\n};\nvar faLongArrowAltUp = faUpLong;\nvar faHexagonNodes = {\n prefix: 'fas',\n iconName: 'hexagon-nodes',\n icon: [448, 512, [], \"e699\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56s56-25.1 56-56c0-22.3-13.1-41.6-32-50.6l0-98.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-1.6 20.8 8.6 41.6 27.8 52.8c26.8 15.5 61 6.3 76.5-20.5s6.3-61-20.5-76.5c-1.3-.8-2.7-1.5-4-2.1l0-90.8c1.4-.6 2.7-1.3 4-2.1c26.8-15.5 36-49.7 20.5-76.5S390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c2.6 1.8 5.2 3.3 8 4.7l0 90.8c-2.8 1.3-5.5 2.9-8 4.6l-80.1-45.8c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [576, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M128 64c0-35.3 28.7-64 64-64L384 0c35.3 0 64 28.7 64 64l0 64 64 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l64 0 0-64zM272 352c-17.7 0-32 14.3-32 32l0 80 96 0 0-80c0-17.7-14.3-32-32-32l-32 0zM128 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM112 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM512 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faPersonHarassing = {\n prefix: 'fas',\n iconName: 'person-harassing',\n icon: [576, 512, [], \"e549\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l28.1-56.3 54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3 36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"]\n};\nvar faMoneyBillTrendUp = {\n prefix: 'fas',\n iconName: 'money-bill-trend-up',\n icon: [512, 512, [], \"e529\", \"M480 8c0-13.3-10.7-24-24-24L354.2-16c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.9 0-111.3 111.3-95.1-81.5c-9-7.7-22.2-7.7-31.2 0l-112 96c-10.1 8.6-11.2 23.8-2.6 33.8s23.8 11.2 33.8 2.6l96.4-82.6 96.4 82.6c9.5 8.2 23.7 7.6 32.6-1.3l127-127 0 43.9c0 13.3 10.7 24 24 24s24-10.7 24-24L480 8zM48 256c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48L48 256zm47.3 56c-3.4 20.1-19.2 36-39.4 39.4-4.4 .7-8-2.9-8-7.3l0-32c0-4.4 3.6-8 8-8l32 0c4.4 0 8.1 3.6 7.3 8zm0 144.1c.7 4.4-2.9 8-7.3 8l-32 0c-4.4 0-8-3.6-8-8l0-32c0-4.4 3.6-8.1 8-7.3 20.1 3.4 36 19.2 39.4 39.4zM456 416.7c4.4-.7 8 2.9 8 7.3l0 32c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8.1-3.6-7.3-8 3.4-20.1 19.2-36 39.4-39.4zM416.7 312c-.7-4.4 2.9-8 7.3-8l32 0c4.4 0 8 3.6 8 8l0 32c0 4.4-3.6 8.1-8 7.3-20.1-3.4-36-19.2-39.4-39.4zM192 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faPenRuler = {\n prefix: 'fas',\n iconName: 'pen-ruler',\n icon: [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM58.9 315.1L274.1 100 412 237.9 196.9 453.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7zM225.4 80.8L80.8 225.4 11.7 156.3c-15.6-15.6-15.6-40.9 0-56.6l88-88c15.6-15.6 40.9-15.6 56.6 0l5.9 5.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 34.9 34.9zM431.2 286.6l34.9 34.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 5.9 5.9c15.6 15.6 15.6 40.9 0 56.6l-88 88c-15.6 15.6-40.9 15.6-56.6 0l-69.1-69.1 144.6-144.6z\"]\n};\nvar faPencilRuler = faPenRuler;\nvar faRepeat = {\n prefix: 'fas',\n iconName: 'repeat',\n icon: [512, 512, [128257], \"f363\", \"M470.6 118.6c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S352 19.1 352 32l0 32-160 0C86 64 0 150 0 256 0 273.7 14.3 288 32 288s32-14.3 32-32c0-70.7 57.3-128 128-128l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64zM41.4 393.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S160 492.9 160 480l0-32 160 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [129460], \"f5d7\", \"M197.4 160c-3.9 0-7.2-2.8-8.1-6.6-10.2-42.1-48.1-73.4-93.3-73.4-53 0-96 43-96 96 0 29.1 12.9 55.1 33.3 72.7 4.3 3.7 4.3 10.8 0 14.5-20.4 17.6-33.3 43.7-33.3 72.7 0 53 43 96 96 96 45.2 0 83.1-31.3 93.3-73.4 .9-3.8 4.2-6.6 8.1-6.6l245.1 0c3.9 0 7.2 2.8 8.1 6.6 10.2 42.1 48.1 73.4 93.3 73.4 53 0 96-43 96-96 0-29.1-12.9-55.1-33.3-72.7-4.3-3.7-4.3-10.8 0-14.5 20.4-17.6 33.3-43.7 33.3-72.7 0-53-43-96-96-96-45.2 0-83.1 31.3-93.3 73.4-.9 3.8-4.2 6.6-8.1 6.6l-245.1 0z\"]\n};\nvar faFireFlameCurved = {\n prefix: 'fas',\n iconName: 'fire-flame-curved',\n icon: [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0 198.4 0 208 9.6 208 21.3l0 22.1c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7 384 434 306 512 209.7 512L192 512C86 512 0 426 0 320l0-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6 12.5 0 22.6 10.1 22.6 22.6L96 288c0 35.3 28.7 64 64 64s64-28.7 64-64l0-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7 0-27.7 9-54.8 25.6-76.9z\"]\n};\nvar faFireAlt = faFireFlameCurved;\nvar faBusSimple = {\n prefix: 'fas',\n iconName: 'bus-simple',\n icon: [448, 512, [\"bus-alt\"], \"f55e\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-96zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBusAlt = faBusSimple;\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [640, 512, [9892], \"f228\", \"M480-64c-17.7 0-32 14.3-32 32S462.3 0 480 0L530.7 0 474 56.7c-26.3-15.7-57.1-24.7-90-24.7-35.4 0-68.4 10.5-96 28.5-27.6-18-60.6-28.5-96-28.5-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c23.3-4.3 44.9-13.1 64-25.6 27.6 18 60.6 28.5 96 28.5 97.2 0 176-78.8 176-176 0-41.1-14.1-79-37.8-109L576 45.3 576 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L480-64zM336 309.2c20.2-28.6 32-63.5 32-101.2s-11.8-72.6-32-101.2c14.6-6.9 30.8-10.8 48-10.8 61.9 0 112 50.1 112 112S445.9 320 384 320c-17.2 0-33.5-3.9-48-10.8zM288 150.3c10.2 16.9 16 36.6 16 57.7s-5.8 40.9-16 57.7c-10.2-16.9-16-36.6-16-57.7s5.8-40.9 16-57.7zm-48-43.5c-20.2 28.6-32 63.5-32 101.2s11.8 72.6 32 101.2c-14.5 6.9-30.8 10.8-48 10.8-61.9 0-112-50.1-112-112S130.1 96 192 96c17.2 0 33.5 3.9 48 10.8z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M0 56C0 25.1 25.1 0 56 0L437.6 0c21.3 0 36.6 20.3 30.8 40.8L457.1 80 344 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0-9.1-96-62.9 0c-30.9 0-56-25.1-56-56L0 56zM114.3 192L100.6 48 56 48c-4.4 0-8 3.6-8 8l0 128c0 4.4 3.6 8 8 8l58.3 0zM136 384l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faU = {\n prefix: 'fas',\n iconName: 'u',\n icon: [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [\"mail-forward\"], \"f064\", \"M307.8 18.4c-12 5-19.8 16.6-19.8 29.6l0 80-112 0c-97.2 0-176 78.8-176 176 0 113.3 81.5 163.9 100.2 174.1 2.5 1.4 5.3 1.9 8.1 1.9 10.9 0 19.7-8.9 19.7-19.7 0-7.5-4.3-14.4-9.8-19.5-9.4-8.8-22.2-26.4-22.2-56.7 0-53 43-96 96-96l96 0 0 80c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-9.2-9.2-22.9-11.9-34.9-6.9z\"]\n};\nvar faMailForward = faShare;\nvar faPhoneFlip = {\n prefix: 'fas',\n iconName: 'phone-flip',\n icon: [512, 512, [128381, \"phone-alt\"], \"f879\", \"M351.8 25c7.8-18.8 28.4-28.9 48.1-23.5l5.5 1.5c64.6 17.6 119.8 80.2 103.7 156.4-37.1 175-174.8 312.7-349.8 349.8-76.3 16.2-138.8-39.1-156.4-103.7l-1.5-5.5c-5.4-19.7 4.7-40.3 23.5-48.1l97.3-40.5c16.5-6.9 35.6-2.1 47 11.8l38.6 47.2c70.3-34.9 126.8-93.3 159.3-164.9l-44.1-36.1c-13.9-11.3-18.6-30.4-11.8-47L351.8 25z\"]\n};\nvar faPhoneAlt = faPhoneFlip;\nvar faToiletPortable = {\n prefix: 'fas',\n iconName: 'toilet-portable',\n icon: [320, 512, [], \"e583\", \"M0 64l0 16 320 0 0-16c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64zm24 64L0 128 0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-360-296 0zm224 96l24 0 0 96-24 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"]\n};\nvar faPersonPregnant = {\n prefix: 'fas',\n iconName: 'person-pregnant',\n icon: [384, 512, [], \"e31e\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm80 321.2c8.6-4.5 16.8-10 24.3-16.5l4-3.4c22.6-19.4 35.7-47.7 35.7-77.6 0-35.9-18.8-69.1-49.6-87.6l-30.4-18.2 0-1.8c0-46.5-37.7-84.1-84.1-84.1-28.1 0-54.4 14.1-70 37.5L21.4 270.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9l29-43.5-30.5 113.5c-2.6 9.6-.6 19.9 5.5 27.8S94 416 104 416l8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-110.8z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [512, 512, [62774], \"3c\", \"M477.1 50.6c7.4 16 .4 35.1-15.6 42.5L108.4 256 461.4 419c16 7.4 23 26.4 15.6 42.5s-26.4 23-42.5 15.6l-416-192C7.3 279.8 0 268.5 0 256S7.3 232.2 18.6 227l416-192c16-7.4 35.1-.4 42.5 15.6z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [576, 512, [], \"f12b\", \"M544 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16C449.9 27.3 443.5 46.5 451.4 62.3 457 73.5 468.3 80 480 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64z\"]\n};\nvar faCircleStop = {\n prefix: 'fas',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faArrowsUpDown = {\n prefix: 'fas',\n iconName: 'arrows-up-down',\n icon: [256, 512, [\"arrows-v\"], \"f07d\", \"M150.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 77.3 96 434.7 54.6 393.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-41.4 41.4 0-357.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faArrowsV = faArrowsUpDown;\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [512, 512, [\"poo-bolt\"], \"f75a\", \"M268.9-31.8c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1 0 21.7-8.5 37.2-21.9 47.6-13.9 10.8-34.1 17-58.1 17l-24 0c-48.6 0-88 39.4-88 88 0 14.8 3.7 28.8 10.2 41.1-42 6.6-74.2 43-74.2 86.9 0 46.6 36.2 84.7 81.9 87.8 3.1-12.4 9.9-23.8 19.6-32.5L242.7 225c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7l-12.7 42.4c28.8 1.2 52.7 21.1 59.8 47.9l26.2 0c48.6 0 88-39.4 88-88 0-43.9-32.1-80.3-74.2-86.9 6.5-12.3 10.2-26.2 10.2-41.1 0-48.6-39.4-88-88-88l-9.4 0c.9-5.4 1.4-10.9 1.4-16.6 0-48.7-36.1-88.9-83.1-95.2zM144.6 416l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L346.5 412.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L133.5 387.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"]\n};\nvar faPooBolt = faPooStorm;\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [576, 512, [], \"f4e2\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-153-153 0-222.2c0-35.3-28.7-64-64-64L129.8 64 41-24.9zM32 128l0 256c0 35.3 28.7 64 64 64l256 0c7.8 0 15.3-1.4 22.2-4L36 105.8c-2.6 6.9-4 14.4-4 22.2zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"]\n};\nvar faSquareXmark = {\n prefix: 'fas',\n iconName: 'square-xmark',\n icon: [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm71 135c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesSquare = faSquareXmark;\nvar faXmarkSquare = faSquareXmark;\nvar faHandHoldingDroplet = {\n prefix: 'fas',\n iconName: 'hand-holding-droplet',\n icon: [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6L209.2 103C198 119.3 192 138.6 192 158.3l0 1.7c0 53 43 96 96 96s96-43 96-96l0-1.7c0-19.8-6-39-17.2-55.3L300.5 6.6C297.7 2.5 293 0 288 0s-9.7 2.5-12.5 6.6zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faHandHoldingWater = faHandHoldingDroplet;\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.7 28.1 21.9 33.6S-3.9 57.4 1.7 74.1L56.9 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288 279 288 321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288 480 288c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.9 0 55.3-165.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-62 186.1-54.6 0-45.9-183.8C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L179 240 124.4 240 62.4 53.9zm78 234.1l26.6 0-11.4 45.6-15.2-45.6zM245 240l11-44.1 11 44.1-22 0zm100 48l26.6 0-15.2 45.6-11.4-45.6z\"]\n};\nvar faKrw = faWonSign;\nvar faWon = faWonSign;\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zM544 279.4c-9.7-5.6-17.8-13.7-23.4-23.4l-29.2 0c-5.3-17.7-14.8-33.5-27.4-46.4l0-17.6 56.6 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-24.6 64 0 0 24.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M512 240c0 132.5-114.6 240-256 240-37.1 0-72.3-7.4-104.1-20.7L33.5 510.1c-9.4 4-20.2 1.7-27.1-5.8S-2 485.8 2.8 476.8l48.8-92.2C19.2 344.3 0 294.3 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240z\"]\n};\nvar faHillAvalanche = {\n prefix: 'fas',\n iconName: 'hill-avalanche',\n icon: [576, 512, [], \"e507\", \"M440.1 401.9c34.2 23.1 81.1 19.5 111.4-10.8 34.4-34.4 34.4-90.1 0-124.5-27.8-27.8-69.5-33.1-102.6-16-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3 15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7c22.3-14.2 37.1-39.1 37.1-67.5 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-27.3 0-51.5 13.7-65.9 34.6-5.8-20-24.2-34.6-46.1-34.6-26.5 0-48 21.5-48 48 0 4 .5 7.9 1.4 11.6L440.1 401.9zM480.4 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.7 87C43.5 61.8 .4 79.7 .4 115.3L.4 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.7 87z\"]\n};\nvar faArrowsToEye = {\n prefix: 'fas',\n iconName: 'arrows-to-eye',\n icon: [640, 512, [], \"e4bf\", \"M176 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 38.1-63-63c-9.4-9.4-24.6-9.4-33.9 0S21.7 55.6 31 65l63 63-38.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24l0-96zm0 400l0-96c0-13.3-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l38.1 0-63 63c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l63-63 0 38.1c0 13.3 10.7 24 24 24s24-10.7 24-24zm312 24c13.3 0 24-10.7 24-24l0-38.1 63 63c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 38.1 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24l0 96c0 13.3 10.7 24 24 24zM464 56l0 96c0 13.3 10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-38.1 0 63-63c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-63 63 0-38.1c0-13.3-10.7-24-24-24s-24 10.7-24 24zM320 120c-57.3 0-99.4 34-125.6 64.3-20 23.1-32.4 45.8-37.6 56.1-2.5 5-4.9 9.7-4.9 15.6s2.3 10.6 4.9 15.6c5.2 10.3 17.6 33 37.6 56.1 26.2 30.3 68.2 64.3 125.6 64.3s99.4-34 125.6-64.3c20-23.1 32.4-45.8 37.6-56.1 2.5-5 4.9-9.7 4.9-15.6s-2.3-10.6-4.9-15.6c-5.2-10.3-17.6-33-37.6-56.1-26.2-30.3-68.2-64.3-125.6-64.3zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M128 160l0-96c0-35.3 28.7-64 64-64L296.4 0c24.2 0 46.4 13.7 57.2 35.4l87.6 175.1c4.4 8.9 6.8 18.7 6.8 28.6l0 56.9 80 0 0-80c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40l0 208c0 22.1 17.9 40 40 40 13.3 0 24 10.7 24 24s-10.7 24-24 24c-48.6 0-88-39.4-88-88l0-80-63 0c9.5 16.5 15 35.6 15 56 0 61.9-50.1 112-112 112l-224 0c-61.9 0-112-50.1-112-112 0-30.5 12.2-58.2 32-78.4L64 224c0-35.3 28.7-64 64-64zm91.7 34.9l43.6 29.1 113.2 0-80-160-104.4 0 0 108.8 27.7 22.1zM416 400c0-26.5-21.5-48-48-48l-224 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l224 0c26.5 0 48-21.5 48-48zm-280 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm216-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM232 400a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faChartGantt = {\n prefix: 'fas',\n iconName: 'chart-gantt',\n icon: [512, 512, [], \"e0e4\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm64 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0zM384 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [\"video-camera\"], \"f03d\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L96 64zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"]\n};\nvar faVideoCamera = faVideo;\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [384, 512, [9823], \"f443\", \"M192-32c66.3 0 120 53.7 120 120 0 27-8.9 51.9-24 72 17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 26.7 160 56.2 70.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L51.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L80 384 106.7 224 96 224c-17.7 0-32-14.3-32-32s14.3-32 32-32c-15.1-20.1-24-45-24-72 0-66.3 53.7-120 120-120z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [576, 512, [128333], \"f69b\", \"M16 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32-128 0 0-32zm0 368l0-288 128 0 126.2-84.2c10.7-7.2 24.8-7.2 35.5 0l126.2 84.2 128 0 0 288c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64zM560 112l-128 0 0-32c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32zM224 384l0 80 128 0 0-80c0-35.3-28.7-64-64-64s-64 28.7-64 64zm64-152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faBuildingCircleCheck = {\n prefix: 'fas',\n iconName: 'building-circle-check',\n icon: [576, 512, [], \"e4d2\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm96 192c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faWheelchairMove = {\n prefix: 'fas',\n iconName: 'wheelchair-move',\n icon: [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M312 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM205.4 124.1c-6.4-5.2-15.6-4.7-21.4 1.1l-33.4 33.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L138.8 80c29-29 75.2-31.4 107-5.5l81.3 66c21.4 17.4 23.8 49.2 5.2 69.5l-41.8 46 98 0c30.3 0 53 27.7 47.1 57.4L407.4 454.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L369 320 316.8 320c2.1 10.3 3.2 21 3.2 32 0 88.4-71.6 160-160 160S0 440.4 0 352 71.6 192 160 192c6 0 11.9 .3 17.8 1l50.4-50.4-22.7-18.5zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faWheelchairAlt = faWheelchairMove;\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [576, 512, [], \"f505\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l251.5 0C261 469.4 240 414.5 240 356.4l0-31.1c0-7.3 1-14.5 2.9-21.3l-48.6 0zm251 184.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l32 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM288 160c0 35.3-28.7 64-64 64l-96 0 0-128 96 0c35.3 0 64 28.7 64 64zM128 416l0-128 128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0z\"]\n};\nvar faHeartPulse = {\n prefix: 'fas',\n iconName: 'heart-pulse',\n icon: [512, 512, [\"heartbeat\"], \"f21e\", \"M256 107.9L241 87.1C216 52.5 175.9 32 133.1 32 59.6 32 0 91.6 0 165.1l0 2.6c0 23.6 6.2 48 16.6 72.3l106 0c3.2 0 6.1-1.9 7.4-4.9l31.8-76.3c3.7-8.8 12.3-14.6 21.8-14.8s18.3 5.4 22.2 14.1l51.3 113.9 41.4-82.8c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3l23.2 46.3c1.4 2.7 4.1 4.4 7.2 4.4l123.6 0c10.5-24.3 16.6-48.7 16.6-72.3l0-2.6C512 91.6 452.4 32 378.9 32 336.2 32 296 52.5 271 87.1l-15 20.7zM469.6 288l-97.8 0c-21.2 0-40.6-12-50.1-31l-1.7-3.4-42.5 85.1c-4.1 8.3-12.7 13.5-22 13.3s-17.6-5.7-21.4-14.1l-49.3-109.5-10.5 25.2c-8.7 20.9-29.1 34.5-51.7 34.5l-80.2 0c47.2 73.8 123 141.7 170.4 177.9 12.4 9.4 27.6 14.1 43.1 14.1s30.8-4.6 43.1-14.1C346.6 429.7 422.4 361.8 469.6 288z\"]\n};\nvar faHeartbeat = faHeartPulse;\nvar faSquareRootVariable = {\n prefix: 'fas',\n iconName: 'square-root-variable',\n icon: [576, 512, [\"square-root-alt\"], \"f698\", \"M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8 84.4-289.5zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0l41.4 41.4 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l41.4-41.4-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faSquareRootAlt = faSquareRootVariable;\nvar faHandsBubbles = {\n prefix: 'fas',\n iconName: 'hands-bubbles',\n icon: [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM128 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM0 160l.1 72.6c0 44.8 17.6 87.1 47.9 118.4 .3-77 40.1-148.4 105.4-189.3l1.9-1.2c-2.5-3.7-2.8-8.6-.4-12.7l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S182 5 175.4 16.5l-68 117.8 0 0 0 0-43.3 75 0-49.3c0-17.7-14.4-32-32-32S0 142.4 0 160zm213.6-35.9c14.1-8.8 29.8-12.7 45.2-12.1l36.5-63.3c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-67.1 116.2 27-16.9zm86.5-35.7l-16.4 28.4c15.1 5.5 28.6 15.6 38.3 29.7l19.7-34.2c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-12.5 21.7c2 8.6 2.5 17.5 1.7 26.1l4.3 0 0 0 34.4 0 13.7-23.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM283.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C127.3 234.7 96 291.2 96 352l0 8c0 8.9 .8 17.6 2.2 26.1 35.4 8.2 61.8 40 61.8 77.9 0 6.3-.7 12.5-2.1 18.4 25.2 18.6 56.4 29.6 90.1 29.6l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0 0 0 0 0-93.2 0 46.2-28.9c15-9.4 19.5-29.1 10.2-44.1z\"]\n};\nvar faHandsWash = faHandsBubbles;\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M408.8 0c-27.4 0-53.6 10.9-73 30.2L318.1 48 305 34.9c-28.1-28.1-73.7-28.1-101.8 0L103 135c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L237.1 68.9c9.4-9.4 24.6-9.4 33.9 0L284.1 81.9 184 182.1 329.9 328 481.8 176.2c19.4-19.4 30.2-45.6 30.2-73 0-57-46.2-103.2-103.2-103.2zM102.4 263.7c-49.9 49.9-83.3 114-95.5 183.5L.4 483.8C-1 491.6 1.5 499.4 7 505s13.4 8 21.1 6.7l36.7-6.5c69.5-12.3 133.6-45.6 183.5-95.5L296 361.9 150.1 216 102.4 263.7z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M320 32l-8.6 0C300.4 12.9 279.7 0 256 0L128 0C104.3 0 83.6 12.9 72.6 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64zM136 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [512, 512, [], \"f67f\", \"M160 79l0 81-44.8 33.6C103.1 202.7 96 216.9 96 232l0 40-60.6 30.3C13.7 313.2 0 335.3 0 359.6L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-88.4c0-24.2-13.7-46.4-35.4-57.2L416 272 416 232c0-15.1-7.1-29.3-19.2-38.4L352 160 352 79c0-9.5-4.2-18.5-11.5-24.6L271.4-3.2c-8.9-7.4-21.8-7.4-30.7 0L171.5 54.4C164.2 60.5 160 69.5 160 79zm96 241c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1 15.8 23.5 36.7 63.7 49.2 109 7.3 26.4 11.8 55.3 10.3 84 11.6-8.9 23.7-16.7 35.9-23.7 41-23.3 84.4-36.9 112.2-42.5 5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7-9.1 15.9-19.9 31.7-32.5 46.3 27.9 6.6 52.5 17.2 67.3 25.4 5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.2c1.5 6.1-.6 12.5-5.5 16.4s-11.6 4.6-17.2 1.8L280 417.2 280 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.8s-7-10.3-5.5-16.4l8.3-33.2c-22.2 2.6-45 0-65.2-4.6-28.9-6.6-54.5-17.6-69.8-26.1-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14l6.2-3.3c15-7.6 36.8-16.4 61.1-22.2-12.5-14.5-23.3-30.4-32.4-46.2-23.4-40.8-37.1-84-42.7-111.7-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5 12.2 6.9 24.3 14.8 35.8 23.7-1.4-28.7 3.1-57.6 10.3-84 12.5-45.3 33.4-85.5 49.2-109l1.2-1.6C246.9 2 251.3 0 256 0z\"]\n};\nvar faPeopleRoof = {\n prefix: 'fas',\n iconName: 'people-roof',\n icon: [576, 512, [], \"e537\", \"M302.3-12.6c-9-4.5-19.6-4.5-28.6 0l-256 128C1.9 123.3-4.5 142.5 3.4 158.3s27.1 22.2 42.9 14.3L288 51.8 529.7 172.6c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-256-128zM288 272a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 48c-53 0-96 43-96 96l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-53-43-96-96-96zM160 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm352 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM112 336c-44.2 0-80 35.8-80 80l0 33.1c0 17 13.8 30.9 30.9 30.9l87.8 0c-4.3-9.8-6.7-20.6-6.7-32l0-48c0-18.4 3.5-36 9.8-52.2-12.2-7.5-26.5-11.8-41.8-11.8zM425.4 480l87.8 0c17 0 30.9-13.8 30.9-30.9l0-33.1c0-44.2-35.8-80-80-80-15.3 0-29.6 4.3-41.8 11.8 6.3 16.2 9.8 33.8 9.8 52.2l0 48c0 11.4-2.4 22.2-6.7 32z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M236.5 29.4L224 48c-20 30-53.6 48-89.7 48L68 96c-37.5 0-67.9 30.4-67.9 67.9 0 18 7.2 35.2 19.9 47.9l27 27c11 11 17.2 25.9 17.2 41.5 0 15.8-6.4 30.9-17.7 42L33.4 335.1c-11.1 10.8-17.3 25.7-17.3 41.2 0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6 32.8 0 64.2 14.6 85.2 39.8l30.5 36.6c10.4 12.4 25.7 19.6 41.9 19.6 30.1 0 54.5-24.4 54.5-54.5l0-51.2c0-41.4 25.4-78.5 64-93.5l22.2-8.6c25.2-9.8 41.8-34.1 41.8-61.1 0-26.4-15.9-50.3-40.3-60.5L429 164.8c-33.2-13.9-57.6-43-65.5-78.1l-7.9-35.2c-6.8-30.1-33.5-51.5-64.3-51.5-22 0-42.6 11-54.8 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBookBible = {\n prefix: 'fas',\n iconName: 'book-bible',\n icon: [448, 512, [\"bible\"], \"f647\", \"M96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 512zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zM192 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-112 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBible = faBookBible;\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [512, 512, [9794], \"f222\", \"M320 32c0-17.7 14.3-32 32-32L480 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S32 401.2 32 304 110.8 128 208 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM208 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96l0 240 64 0 0-240 384 0 0 240 64 0 0-240c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2 0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8 0-10.6-8.6-19.2-19.2-19.2L19.2 384z\"]\n};\nvar faUserXmark = {\n prefix: 'fas',\n iconName: 'user-xmark',\n icon: [576, 512, [\"user-times\"], \"f235\", \"M254.1 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L46.1 512c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3l59.4 0zM530.3 108.1c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9zM224.4 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"]\n};\nvar faUserTimes = faUserXmark;\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [448, 512, [], \"f74d\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 61.9-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 400 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zm80 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2-26.5 0-48 21.5-48 48l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-96c0-26.5-21.5-48-48-48-12.4 0-23.6 4.7-32.1 12.3-1.9-24.8-22.6-44.3-47.9-44.3-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160 397.3 160 502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2-11.1 13.9-19.4 30.3-23.9 48.1-4.4 17.1 10.4 31.7 28.1 31.7l192 0c17.7 0 32.4-14.6 28.1-31.7-4.5-17.8-12.8-34.1-23.9-48.1 80.5-28.6 123.9-93.7 123.9-176.2 17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [512, 512, [], \"e061\", \"M96 512l64 0c53 0 96-43 96-96l0-80c0-8.8 7.2-16 16-16l1 0c26 0 47-21 47-47 0-11-3.9-21.6-10.9-30.1L273.3 200C271.4 197.6 270.1 194.7 269.7 191.7 254 83.3 160.7 0 48 0 40.4 0 32.9 .4 25.4 1.1 10.5 2.6 0 15.9 0 30.9L0 480c0 17.7 14.3 32 32 32l64 0zm16-320a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm63.1 237.2l-41.5-3.5c-12.2-1-21.6-11.2-21.6-23.4 0-10.8 7.3-20.2 17.8-22.8l40.4-10.1c19.2-4.8 37.8 9.7 37.8 29.5 0 17.8-15.2 31.8-32.9 30.3zM480 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40 24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-64 48a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm128 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM480 504a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40-72a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faPlaneLock = {\n prefix: 'fas',\n iconName: 'plane-lock',\n icon: [640, 512, [], \"e558\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 82.1 75.2C409.7 248.1 400 274.9 400 304l0 24.4c-7.3 6.6-13.6 14.2-18.7 22.7l-37.3-12.4 0 99.7 24 19.2 0 38.3c0 13.5 2.8 26.4 7.8 38.1L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM560 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [\"battery-4\"], \"f241\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l224 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-224 0z\"]\n};\nvar faBattery4 = faBatteryThreeQuarters;\nvar faFrancSign = {\n prefix: 'fas',\n iconName: 'franc-sign',\n icon: [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64l0 256-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"]\n};\nvar faFilterCircleDollar = {\n prefix: 'fas',\n iconName: 'filter-circle-dollar',\n icon: [576, 512, [\"funnel-dollar\"], \"f662\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM416 320c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-45.8 0c-5.6 0-10.2 4.6-10.2 10.2 0 4.9 3.5 9.1 8.3 10l45 8.2c20 3.6 34.6 21.1 34.6 41.5 0 23.3-18.9 42.2-42.2 42.2l-5.8 0 0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l53.8 0c5.6 0 10.2-4.6 10.2-10.2 0-4.9-3.5-9.1-8.3-10l-45-8.2c-20-3.6-34.6-21.1-34.6-41.5 0-22.6 17.7-41 40-42.1l0-8.1z\"]\n};\nvar faFunnelDollar = faFilterCircleDollar;\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M512 240.2l0 15.8-512 0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7 115 0 208.2 93.2 208.2 208.2zm0 63.8l0 112c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-112 512 0z\"]\n};\nvar faCircleH = {\n prefix: 'fas',\n iconName: 'circle-h',\n icon: [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm96-344l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHospitalSymbol = faCircleH;\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [576, 512, [127979], \"f549\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zM224 376l0 88 128 0 0-88c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zm-112 8c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM288 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faTornado = {\n prefix: 'fas',\n iconName: 'tornado',\n icon: [448, 512, [127786], \"f76f\", \"M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16 0-12.5-10.1-22.6-22.6-22.6L32 0C14.3 0 0 14.3 0 32zM355.7 144l-336 0c12.4 29.7 30.2 56.8 52.7 80l339.6 0-47.2-62.9c-3.9-5.2-7-11-9.2-17.1zM242.6 334.7c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1 0-17.1-2.9-34-8.6-49.9L136 272 242.6 334.7zM294.3 400c5.3 17 6.5 35.2 3.6 53l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4 5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c8.5-8.5 15.8-17.8 21.9-27.9l-131.8 0z\"]\n};\nvar faJetFighter = {\n prefix: 'fas',\n iconName: 'jet-fighter',\n icon: [576, 512, [\"fighter-jet\"], \"f0fb\", \"M496.2 206.8c-10.7-4.5-22.2-6.8-33.8-6.8L362 200 248 48 296 48c13.3 0 24-10.7 24-24S309.3 0 296 0L152 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0 152-54.4 0-52.8-66c-3-3.8-7.6-6-12.5-6L16 128c-8.8 0-16 7.2-16 16l0 88 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 88c0 8.8 7.2 16 16 16l24.3 0c4.9 0 9.5-2.2 12.5-6l52.8-66 54.4 0 0 152-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 114-152 100.4 0c11.6 0 23.1-2.3 33.8-6.8l65-27.1c8.9-3.7 14.8-12.5 14.8-22.2s-5.8-18.4-14.8-22.2l-65-27.1z\"]\n};\nvar faFighterJet = faJetFighter;\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M384 32c26.5 0 48 21.5 48 48 0 6.3-1.3 12.2-3.4 17.7 20.4 5.5 35.4 24.1 35.4 46.3 0 9.1-2.6 17.6-7 24.9 22.2 4.2 39 23.7 39 47.1 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 26.5-21.5 48-48 48l-160 0 28.2 70.4c2.5 6.3 3.8 13.1 3.8 19.9l0 4.2c0 27.3-22.1 49.4-49.4 49.4-18.7 0-35.8-10.6-44.2-27.3L170.1 356.3c-6.7-13.3-10.1-28-10.1-42.9l0-186.6c0-19.4 8.9-37.8 24-50l12.2-9.7C224.6 44.4 259.8 32 296.1 32L384 32zM80 96c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l48 0z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [576, 512, [129529], \"f51a\", \"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6-12.5 0-22.6 10.1-22.6 22.6l0 29.1 108.3 108.3 29.1 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8c-22.3 22.3-34.8 52.5-34.8 84 0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9 0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8 30.6-30.6 45.9-73.1 42.3-115.8z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [384, 512, [\"arrow-right-to-file\"], \"f56f\", \"M64 0C28.7 0 0 28.7 0 64l0 240 182.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-182.1 0 0 96c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"]\n};\nvar faArrowRightToFile = faFileImport;\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [512, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M63.9 14.4C63.1 6.2 56.2 0 48 0s-15.1 6.2-16 14.3L17.9 149.7c-1.3 6-1.9 12.1-1.9 18.2 0 45.9 35.1 83.6 80 87.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7 0-6.1-.6-12.2-1.9-18.2L223.9 14.3C223.1 6.2 216.2 0 208 0s-15.1 6.2-15.9 14.4L178.5 149.9c-.6 5.7-5.4 10.1-11.1 10.1-5.8 0-10.6-4.4-11.2-10.2L143.9 14.6C143.2 6.3 136.3 0 128 0s-15.2 6.3-15.9 14.6L99.8 149.8c-.5 5.8-5.4 10.2-11.2 10.2-5.8 0-10.6-4.4-11.1-10.1L63.9 14.4zM448 0C432 0 320 32 320 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448c0-17.7-14.3-32-32-32z\"]\n};\nvar faCutlery = faUtensils;\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 352l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM152 64l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [512, 512, [128375], \"f717\", \"M369.3-31c11.9-3.5 24.4 2.7 29 13.9l.8 2.3 40 136c2.5 8.4 .1 17.5-6.1 23.7l-64.1 64.1 76.4-20.8 19.9-59.8 .9-2.3c5-11.1 17.7-16.8 29.5-12.9 11.8 3.9 18.5 16.1 15.8 28l-.7 2.4-24 72c-2.5 7.6-8.7 13.4-16.5 15.6l-91.1 24.8 91.1 24.8c7.7 2.1 13.9 8 16.5 15.6l24 72 .7 2.4c2.7 11.9-4.1 24.1-15.8 28-11.8 3.9-24.5-1.8-29.5-12.9l-.9-2.3-19.9-59.8-76.4-20.8 64.1 64.1c6.1 6.1 8.5 15.1 6.2 23.4l-40 144-.8 2.3c-4.4 11.3-16.8 17.7-28.8 14.4-12-3.3-19.3-15.2-17.2-27.2l.5-2.4 36.2-130.5-37.2-37.2C351 406 308.4 448 256 448s-95-42-96-94.1l-37 37 36 122.3 .6 2.4c2.2 11.9-4.9 23.9-16.8 27.4-11.9 3.5-24.4-2.7-29-13.9l-.8-2.3-40-136c-2.5-8.4-.1-17.5 6.1-23.8l64.1-64.1-76.4 20.8-19.9 59.8-.9 2.3c-5 11.1-17.7 16.8-29.5 12.9s-18.5-16.1-15.8-28l.7-2.4 24-72c2.5-7.6 8.7-13.4 16.5-15.6l91.1-24.8-91.1-24.8c-7.7-2.1-13.9-8-16.5-15.6l-24-72-.7-2.4c-2.7-11.9 4.1-24.1 15.8-28s24.5 1.8 29.5 12.9l.9 2.3 19.9 59.8 76.4 20.8-64.1-64.1c-6.2-6.2-8.5-15.3-6.1-23.7l40-136 .8-2.3c4.6-11.3 17.1-17.4 29-13.9 11.9 3.5 19 15.5 16.8 27.4l-.6 2.4-36 122.3 53 53c1-43.3 36.4-78.1 79.9-78.1s78.9 34.8 79.9 78.2l53.1-53.1-36-122.3-.6-2.4c-2.2-12 4.9-23.9 16.8-27.4z\"]\n};\nvar faMobileRetro = {\n prefix: 'fas',\n iconName: 'mobile-retro',\n icon: [384, 512, [], \"e527\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm80 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm8 192a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zM168 40c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"]\n};\nvar faSignsPost = {\n prefix: 'fas',\n iconName: 'signs-post',\n icon: [512, 512, [\"map-signs\"], \"f277\", \"M256.4 0c-17.7 0-32 14.3-32 32l0 32-160 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 0 64-153.4 0c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7l153.4 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0 0-64 153.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7l-153.4 0 0-32c0-17.7-14.3-32-32-32z\"]\n};\nvar faMapSigns = faSignsPost;\nvar faGroupArrowsRotate = {\n prefix: 'fas',\n iconName: 'group-arrows-rotate',\n icon: [512, 512, [], \"e4f6\", \"M37.6 122.3c-11.5 18.7-20.6 39-27 60.5-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c18.4-61.9 67.3-110.8 129.2-129.2 16.9-5 26.6-22.9 21.5-39.8S199.8 5.6 182.9 10.6C161.4 17 141.1 26.1 122.3 37.6 112.3 15.4 89.9 0 64 0 28.7 0 0 28.7 0 64 0 89.9 15.4 112.3 37.6 122.3zm436.7 0c22.2-10 37.6-32.4 37.6-58.3 0-35.3-28.7-64-64-64-25.9 0-48.3 15.4-58.3 37.6-18.7-11.5-39-20.6-60.5-27-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c61.9 18.4 110.8 67.3 129.2 129.2 5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.5zM512 448c0-25.9-15.4-48.3-37.6-58.3 11.5-18.7 20.6-39 27-60.5 5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-18.4 61.9-67.3 110.8-129.2 129.2-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.5-27 10 22.2 32.4 37.6 58.3 37.6 35.3 0 64-28.7 64-64zM37.6 389.7c-22.2 10-37.6 32.4-37.6 58.3 0 35.3 28.7 64 64 64 25.9 0 48.3-15.4 58.3-37.6 18.7 11.5 39 20.6 60.5 27 16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-61.9-18.4-110.8-67.3-129.2-129.2-5-16.9-22.9-26.6-39.8-21.5S5.6 312.2 10.6 329.1c6.4 21.5 15.5 41.8 27 60.5zM256 192c15.6 0 30 5.6 41.1 14.9l-15.3 15.3c-6.6 6.6-1.9 17.8 7.4 17.8l60.5 0c5.7 0 10.4-4.7 10.4-10.4l0-60.5c0-9.3-11.2-13.9-17.8-7.4l-11.2 11.2c-19.8-17.9-46.2-28.9-75.1-28.9-43.6 0-81.3 24.9-99.8 61.1-6 11.8-1.4 26.3 10.4 32.3s26.3 1.4 32.3-10.4c10.6-20.8 32.2-34.9 57-34.9zm58.6 93.1c-10.6 20.8-32.2 34.9-57 34.9-15.7 0-30-5.6-41.1-14.9l15.3-15.3c6.6-6.6 1.9-17.8-7.4-17.8L164 272c-5.7 0-10.4 4.7-10.4 10.4l0 60.5c0 9.3 11.2 13.9 17.8 7.4l11.2-11.2c19.8 17.9 46.2 28.9 75.1 28.9 43.6 0 81.3-24.9 99.8-61.1 6-11.8 1.4-26.3-10.4-32.3s-26.3-1.4-32.3 10.4z\"]\n};\nvar faArrowsSplitUpAndLeft = {\n prefix: 'fas',\n iconName: 'arrows-split-up-and-left',\n icon: [512, 512, [], \"e4bc\", \"M342.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l41.4-41.4 0 195.9c-18.8-10.9-40.7-17.1-64-17.1l-114.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 320 224 320c35.3 0 64 28.7 64 64 0 70.7 57.3 128 128 128l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-35.3 0-64-28.7-64-64l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M309.7 71.6l-64.4 64.4 33.4 33.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-33.4-33.4-96.4 96.4c-2.9 2.9-5.1 6.5-6.3 10.3l321.5 0 53.7-53.7c4.9-4.9 7.6-11.5 7.6-18.3s-2.7-13.5-7.6-18.3L346.3 71.6C341.5 66.7 334.9 64 328 64s-13.5 2.7-18.3 7.6zM58.3 232.4l96.4-96.4-49.4-49.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L200 90.7 264.4 26.3C281.3 9.5 304.1 0 328 0s46.7 9.5 63.6 26.3L517.7 152.4C534.5 169.3 544 192.1 544 216s-9.5 46.7-26.3 63.6L311.6 485.7C294.7 502.5 271.9 512 248 512s-46.7-9.5-63.6-26.3L58.3 359.6C41.5 342.7 32 319.9 32 296s9.5-46.7 26.3-63.6zM512 544c-35.3 0-64-28.7-64-64 0-25.2 32.6-79.6 51.2-108.7 6-9.4 19.5-9.4 25.5 0 18.7 29.1 51.2 83.5 51.2 108.7 0 35.3-28.7 64-64 64z\"]\n};\nvar faShieldHeart = {\n prefix: 'fas',\n iconName: 'shield-heart',\n icon: [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM249.6 183.5l6.4 8.5 6.4-8.5c11.1-14.8 28.5-23.5 46.9-23.5 32.4 0 58.7 26.3 58.7 58.7l0 5.3c0 49.1-65.8 98.1-96.5 118.3-9.5 6.2-21.5 6.2-30.9 0-30.7-20.2-96.5-69.3-96.5-118.3l0-5.3c0-32.4 26.3-58.7 58.7-58.7 18.5 0 35.9 8.7 46.9 23.5z\"]\n};\nvar faPersonSkiingNordic = {\n prefix: 'fas',\n iconName: 'person-skiing-nordic',\n icon: [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M424.8 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm99.8 193.7c7.6 15.2 1.9 33.6-12.6 42l0 180.3-32 0 0-164.2-10.1 5c-27.4 13.7-60.7 6.1-79.4-18.2l-19.6-25.5-39.5 68.8 24.8 12.4c29.5 14.7 42.9 49.5 31.1 80.2l-28.2 73.4 149.4 0c7.9 0 15.6-2.3 22.2-6.7l7.9-5.3c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-7.9 5.3C543 506.9 526 512 508.6 512l-189.1 0c-.5 0-1 0-1.5 0L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l88 0c0-8.2 3.1-16.4 9.4-22.6l74.1-74.1 10.2-35.9c11.3 18.3 27.7 33.8 48.4 44.2l4.8 2.4-1.9 6.8c-3 10.5-8.6 20-16.3 27.7l-51.5 51.5 101.3 0 37.1-96.4-55.6-27.8C230.4 319 215.3 267 239.3 227.1l37.7-62.7-27.7-7.7c-9-2.5-18.1 3.2-20 12.3l-5.9 29.3c-3.1 15.6-17.1 26.3-32.5 25.7l-130 208-37.7 0 140.6-225c-3.4-6.3-4.6-13.8-3.1-21.3l5.9-29.3c9.1-45.6 55.1-73.8 99.9-61.4l32.5 9c46.7 13 88 40.8 117.6 79.3l24.9 32.3 40.4-20.2c15.8-7.9 35-1.5 42.9 14.3z\"]\n};\nvar faSkiingNordic = faPersonSkiingNordic;\nvar faSquareCheck = {\n prefix: 'fas',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM342 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 315.2 137 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3 3.5 0 6.9 1.4 9.4 3.9l14.9 14.9c-3.6 9.1-5.5 18.9-5.5 29.2 0 19.9 7.2 38 19.2 52-5.3 9.2-4 21.1 3.8 29 9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9-7.8-7.9-19.8-9.1-29-3.8-14-12-32.1-19.2-52-19.2-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0 66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 48c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-48c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3z\"]\n};\nvar faBathtub = faBath;\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M64 384L48.3 368.3C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L106.7 64 96 64C78.3 64 64 49.7 64 32S78.3 0 96 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 47.6 57.1-85.9 85.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l82.3-82.3c18.7 27.3 28.7 59.7 28.7 93 0 43.7-17.4 85.7-48.3 116.6L256 384 312.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L35.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L64 384z\"]\n};\nvar faPrescriptionBottleMedical = {\n prefix: 'fas',\n iconName: 'prescription-bottle-medical',\n icon: [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zM160 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPrescriptionBottleAlt = faPrescriptionBottleMedical;\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [512, 512, [58055, \"vector-polygon\"], \"f5ee\", \"M64 0c23.7 0 44.4 12.9 55.4 32l273.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 34-26.5 61.8-60 63.9l-2.1 2.9-71.5 99.1c3.6 8 5.6 16.9 5.6 26.2s-2 18.2-5.6 26.2l2.2 3.1 69.3 96 2.1 2.9c33.5 2.1 60 29.9 60 63.9 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-273.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0zM394.2 413.4l-65.5-90.6-2.2-3.1c-2.1 .2-4.3 .3-6.5 .3-35.3 0-64-28.7-64-64s28.7-64 64-64c2.2 0 4.4 .1 6.5 .3l67.7-93.7c-.6-.9-1.1-1.7-1.6-2.6L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l273.1 0c.5-.9 1.1-1.8 1.6-2.6z\"]\n};\nvar faVectorPolygon = faDrawPolygon;\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3l0 95.7-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7S17 513.4 34.7 511.9l8-.7c34.1-2.8 64.2-18.9 85.4-42.9 21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7c-34.1 2.8-64.2 18.9-85.4 42.9-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"]\n};\nvar faHeartCirclePlus = {\n prefix: 'fas',\n iconName: 'heart-circle-plus',\n icon: [576, 512, [], \"e500\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"]\n};\nvar faShieldDog = {\n prefix: 'fas',\n iconName: 'shield-dog',\n icon: [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8 35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7l7.2 14.3 64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4 0-2.8 .6-5.5 1.9-8l15-30zM160 160l48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M21.9 94.4C5.1 88.8-3.9 70.6 1.7 53.9S25.4 28.1 42.1 33.6l384 128C439.2 166 448 178.2 448 192s-8.8 26-21.9 30.4l-384 128c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5L314.8 192 21.9 94.4zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M64.4 175.8L256 33.9 447.6 175.8 289.5 293c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64.4 175.8zM256-32c-12.1 0-23.8 3.9-33.5 11L25.9 124.7C9.6 136.8 0 155.8 0 176.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5-21c-9.7-7.2-21.4-11-33.5-11z\"]\n};\nvar faMound = {\n prefix: 'fas',\n iconName: 'mound',\n icon: [512, 512, [], \"e52d\", \"M112.4 179.2C142 127.7 196.8 96 256.2 96s114.2 31.7 143.9 83.2L508.7 368c12.3 21.3-3.1 48-27.7 48L31.5 416c-24.6 0-40-26.6-27.7-48L112.4 179.2z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M144 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM263.8 320c15.3-22.9 24.2-50.4 24.2-80 0-79.5-64.5-144-144-144S0 160.5 0 240 64.5 384 144 384l352 0c79.5 0 144-64.5 144-144S575.5 96 496 96 352 160.5 352 240c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M200 464l0-170.1c0-3.9-.5-7.8-1.4-11.6L144.4 65.4C162.1 77.2 188.2 88 224 88s61.9-10.8 79.6-22.6L249.4 282.3c-1 3.8-1.4 7.7-1.4 11.6L248 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6L384 48c0-26.5-21.5-48-48-48l-3.5 0c-.3 0-.6 0-1 0-.6 0-1.2 0-1.8 0-18.8 0-34.1 9.7-44.1 18.8-9.3 8.4-28.5 21.2-61.7 21.2s-52.4-12.8-61.7-21.2c-10-9.1-25.3-18.8-44.1-18.8-.6 0-1.2 0-1.8 0-.3 0-.6 0-1 0L112 0C85.5 0 64 21.5 64 48l0 97.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm96 96l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 48 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-35.3-28.7-64-64-64l-16 0c-35.3 0-64 28.7-64 64zm48 32l0-32c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 32-48 0zm152-96c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24l48 0c39.8 0 72-32.2 72-72l0-48c0-39.8-32.2-72-72-72l-48 0zm48 144l-24 0 0-96 24 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24z\"]\n};\nvar faW = {\n prefix: 'fas',\n iconName: 'w',\n icon: [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7L172.2 346.7 257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23L403.8 346.7 514 52.8c6.2-16.5 24.6-24.9 41.2-18.7S580.2 58.7 574 75.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2l-101.6 101.6-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 101.6-101.6c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4-26.6 39.9c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4l39.9-26.6 42.4 0c21.2 0 41.6-8.4 56.6-23.4l109.4-109.4-45.3-45.3-109.4 109.4c-3 3-7.1 4.7-11.3 4.7l-36.1 0 0-36.1c0-4.2 1.7-8.3 4.7-11.3l109.4-109.4-45.3-45.3-109.4 109.4z\"]\n};\nvar faEyeDropperEmpty = faEyeDropper;\nvar faEyedropper = faEyeDropper;\nvar faCircleXmark = {\n prefix: 'fas',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M32 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zm408 16c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM112 136l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm176-24c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM264 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"]\n};\nvar faTurkishLiraSign = {\n prefix: 'fas',\n iconName: 'turkish-lira-sign',\n icon: [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M160 32c17.7 0 32 14.3 32 32l0 43.6 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 46.1 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 162.5 72 0c53 0 96-43 96-96 0-17.7 14.3-32 32-32s32 14.3 32 32c0 88.4-71.6 160-160 160l-104 0c-17.7 0-32-14.3-32-32l0-176.2-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-46.1-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-61.9c0-17.7 14.3-32 32-32z\"]\n};\nvar faTry = faTurkishLiraSign;\nvar faTurkishLira = faTurkishLiraSign;\nvar faVolcano = {\n prefix: 'fas',\n iconName: 'volcano',\n icon: [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15 11.2-18.6 31.6-31 54.8-31s43.6 12.4 54.8 31c11.1-9.4 25.5-15 41.2-15 35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8 19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9 11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4 4.7-3.5zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7 0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8 0 447.1 4.7 434.7 13.2 425.2l150.2-169z\"]\n};\nvar faWandSparkles = {\n prefix: 'fas',\n iconName: 'wand-sparkles',\n icon: [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9c-6.3 7.1-15.3 11.1-24.8 11.1-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7c-6.2-6.2-9.7-14.7-9.7-23.5 0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96zM48 184c0-13.3-10.7-24-24-24S0 170.7 0 184l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c94.7-11.8 168-92.6 168-190.5l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 79.5-64.5 144-144 144S48 303.5 48 224l0-40z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [576, 512, [128081], \"f521\", \"M313 87.2c9.2-7.3 15-18.6 15-31.2 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 12.6 5.9 23.9 15 31.2L194.6 194.8c-10 15.7-31.3 19.6-46.2 8.4L88.9 158.7c4.5-6.4 7.1-14.3 7.1-22.7 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 21.8 17.5 39.6 39.2 40L87.8 393.5c4.7 31.3 31.6 54.5 63.3 54.5l273.8 0c31.7 0 58.6-23.2 63.3-54.5L520.8 176c21.7-.4 39.2-18.2 39.2-40 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 8.4 2.6 16.3 7.1 22.7l-59.4 44.6c-14.9 11.2-36.2 7.3-46.2-8.4L313 87.2z\"]\n};\nvar faTentArrowTurnLeft = {\n prefix: 'fas',\n iconName: 'tent-arrow-turn-left',\n icon: [512, 512, [], \"e580\", \"M-.5 113l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 350.1 0c22.1 0 40 17.9 40 40l0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24c0-48.6-39.4-88-88-88l-350.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9S80.9-2.3 71.5 7L-.5 79c-9.4 9.4-9.4 24.6 0 33.9zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"]\n};\nvar faTruckFast = {\n prefix: 'fas',\n iconName: 'truck-fast',\n icon: [640, 512, [\"shipping-fast\"], \"f48b\", \"M64 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L621.3 192c12 12 18.7 28.3 18.7 45.3L640 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-3.3 0c-35.3 0-64-28.7-64-64l0-48-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 144c-13.3 0-24-10.7-24-24S10.7 96 24 96l40 0zM576 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM256 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faShippingFast = faTruckFast;\nvar faUserPen = {\n prefix: 'fas',\n iconName: 'user-pen',\n icon: [640, 512, [\"user-edit\"], \"f4ff\", \"M256.1 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56c-98.5 0-178.3 79.8-178.3 178.3 0 16.4 13.3 29.7 29.7 29.7l196.5 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l67.3-67.3c-28-18.3-61.4-28.9-97.4-28.9l-59.4 0zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"]\n};\nvar faUserEdit = faUserPen;\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [576, 512, [], \"f4fd\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c3.9 0 7.9 .1 11.8 .4-16.2 28.2-25.5 60.8-25.5 95.6 0 41.8 13.4 80.5 36 112L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [128703], \"f2cc\", \"M64 131.9c0-19.8 16.1-35.9 35.9-35.9 9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32 44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faSquareCaretUp = {\n prefix: 'fas',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faMapLocation = {\n prefix: 'fas',\n iconName: 'map-location',\n icon: [640, 512, [\"map-marked\"], \"f59f\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM392 341.9c0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9S392 276.8 392 341.9z\"]\n};\nvar faMapMarked = faMapLocation;\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1c15-17.2 36.7-27.1 59.6-27.1 43.6 0 79 35.4 79 79 0 22.8-9.9 44.6-27.1 59.6L283.7 313.8 273 303 209 239 198.2 228.3 373.5 27.1zM161.1 259C162 260 188 286 239 337l13.9 13.9-17.1 74.2c-3.9 17.1-16.9 30.7-33.8 35.4l-169.8 47.5 92.3-92.3c1.2 .1 2.3 .2 3.5 .2 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 1.2 .1 2.4 .2 3.5L3.9 479.8 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8L161.1 259z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [448, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M73.3 192C100.8 99.5 186.5 32 288 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-65.6 0-122 39.5-146.7 96L272 192c13.3 0 24 10.7 24 24s-10.7 24-24 24l-143.2 0c-.5 5.3-.8 10.6-.8 16s.3 10.7 .8 16L272 272c13.3 0 24 10.7 24 24s-10.7 24-24 24l-130.7 0c24.7 56.5 81.1 96 146.7 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-101.5 0-187.2-67.5-214.7-160L40 320c-13.3 0-24-10.7-24-24s10.7-24 24-24l24.6 0c-.7-10.5-.7-21.5 0-32L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l33.3 0z\"]\n};\nvar faEur = faEuroSign;\nvar faEuro = faEuroSign;\nvar faHouseCircleXmark = {\n prefix: 'fas',\n iconName: 'house-circle-xmark',\n icon: [640, 512, [], \"e50b\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.2 47.2-175.9 114.8-5-1.8-10.5-2.8-16.1-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 90.9 0c6.1 17.3 14.6 33.4 25.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM555.3 340.7c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [8356], \"f195\", \"M84.9 256l-28.4 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11.6 0C53.2 124.7 116.8 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-53.8 0-90.1 52.9-73.5 102l162.4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-145.1 0c2.3 10.6 3.6 21.3 3.9 32l141.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L150 336c-4.8 18.6-12.6 36.5-23.6 52.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c3.7-5.6 6.9-11.4 9.4-17.4l-26 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l34.8 0c-.5-10.8-2.6-21.6-6.4-32z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M74.9 46.7c-9.6-14.9-29.4-19.2-44.2-9.6S11.5 66.4 21.1 81.3L143.7 272 88 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 32-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-32 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-55.7 0 122.6-190.7c9.6-14.9 5.3-34.7-9.6-44.2s-34.7-5.3-44.2 9.6L192 228.8 74.9 46.7z\"]\n};\nvar faCny = faYenSign;\nvar faJpy = faYenSign;\nvar faRmb = faYenSign;\nvar faYen = faYenSign;\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M560.3 237.2c10.4 11.8 28.3 14.4 41.8 5.5 14.7-9.8 18.7-29.7 8.9-44.4l-48-72c-2.8-4.2-6.6-7.7-11.1-10.2L351.4 4.7c-19.3-10.7-42.8-10.7-62.2 0L88.8 116c-5.4 3-9.7 7.4-12.6 12.8L27.7 218.7c-12.6 23.4-3.8 52.5 19.6 65.1l33 17.7 0 53.3c0 23 12.4 44.3 32.4 55.7l176 99.7c19.6 11.1 43.5 11.1 63.1 0l176-99.7c20.1-11.4 32.4-32.6 32.4-55.7l0-117.5zm-240-9.8L170.2 144 320.3 60.6 470.4 144 320.3 227.4zm-41.5 50.2l-21.3 46.2-165.8-88.8 25.4-47.2 161.7 89.8z\"]\n};\nvar faTruckField = {\n prefix: 'fas',\n iconName: 'truck-field',\n icon: [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l40.4 0c32.4 0 61.6 19.6 74 49.5l43.8 106.3 1.7 4.2 24.7 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8l-144.7 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-3.6 .2-7.1 .6-10.5-19-6.4-32.6-24.4-32.6-45.5l0-48c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zm352 32l0 96 82.1 0-35.4-86.1c-2.5-6-8.3-9.9-14.8-9.9L384 128zM192 392a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm280 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faLocationPinLock = {\n prefix: 'fas',\n iconName: 'location-pin-lock',\n icon: [512, 512, [], \"e51f\", \"M0 188.6C0 84.4 86 0 192 0 294.1 0 377.6 78.3 383.6 177 320.7 185.1 272 238.8 272 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 75.7c-9.9 11.6-18.9 21.7-26.4 29.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm240 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM288 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faPersonPraying = {\n prefix: 'fas',\n iconName: 'person-praying',\n icon: [384, 512, [128720, \"pray\"], \"f683\", \"M320 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM200.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36c-15.6-21.5-40.6-34.2-67.2-34.2-30.9 0-59.2 17.1-73.6 44.4L47.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L126.6 432 40 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7l-116.1-85.8 45-90z\"]\n};\nvar faPray = faPersonPraying;\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32 0c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zm0 128c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM96 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faSackDollar = {\n prefix: 'fas',\n iconName: 'sack-dollar',\n icon: [512, 512, [128176], \"f81d\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM260 224c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L216 384c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"]\n};\nvar faMountainSun = {\n prefix: 'fas',\n iconName: 'mountain-sun',\n icon: [576, 512, [], \"e52f\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4zM496.5 160a80 80 0 1 1 0-160 80 80 0 1 1 0 160z\"]\n};\nvar faArrowUpWideShort = {\n prefix: 'fas',\n iconName: 'arrow-up-wide-short',\n icon: [576, 512, [\"sort-amount-up\"], \"f161\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSortAmountUp = faArrowUpWideShort;\nvar faUsersLine = {\n prefix: 'fas',\n iconName: 'users-line',\n icon: [576, 512, [], \"e592\", \"M224 128a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 336c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8zM392 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0c-18.2 26-28.8 57.5-28.8 91.6l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 368 32 358.4 32 346.7L32 336c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM0 440c0-13.3 10.7-24 24-24l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 464c-13.3 0-24-10.7-24-24z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [512, 512, [10017], \"f69a\", \"M415.9 311.9l-27.8 48.1 55.7 0-27.8-48.1zM383.6 256l-60.2-104-134.8 0-60.2 104 60.2 104 134.8 0 60.2-104zm64.7 0l58.4 100.9c3.5 6 5.3 12.8 5.3 19.7 0 21.7-17.6 39.4-39.4 39.4l-117 0-61.3 105.8C286.5 535.6 271.8 544 256 544s-30.5-8.4-38.4-22.2l-61.3-105.8-117 0c-21.7 0-39.4-17.6-39.4-39.4 0-6.9 1.8-13.7 5.3-19.7L63.7 256 5.3 155.1C1.8 149.1 0 142.3 0 135.4 0 113.6 17.6 96 39.4 96l117 0 61.3-105.8C225.5-23.6 240.2-32 256-32s30.5 8.4 38.4 22.2l61.3 105.8 117 0c21.7 0 39.4 17.6 39.4 39.4 0 6.9-1.8 13.7-5.3 19.7L448.3 256zM388.1 152l27.8 48.1 27.8-48.1-55.7 0zM291 96l-35-60.4-35 60.4 70 0zM123.9 152l-55.7 0 27.8 48.1 27.8-48.1zM96.1 311.9l-27.8 48.1 55.7 0-27.8-48.1zM221 416l35 60.4 35-60.4-70 0z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [512, 512, [], \"f481\", \"M96 352c0 35.3 28.7 64 64 64l181.5 0c17 0 33.3-6.7 45.3-18.7L493.3 290.7c12-12 18.7-28.3 18.7-45.3L512 64c0-35.3-28.7-64-64-64L160 0C124.7 0 96 28.7 96 64l0 288zM288 112l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 448c0 35.3 28.7 64 64 64l264 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-328z\"]\n};\nvar faAustralSign = {\n prefix: 'fas',\n iconName: 'austral-sign',\n icon: [448, 512, [], \"e0a9\", \"M266.5 240l-85 0 42.5-106.4 42.5 106.4zm68.9 0L262.9 58.3C256.5 42.4 241.1 32 224 32s-32.5 10.4-38.9 26.3L112.6 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l61.4 0-19.2 48-42.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l23.1 0-20.8 52.1c-6.6 16.4 1.4 35 17.9 41.6s35-1.4 41.6-17.9l30.3-75.9 200 0 30.3 75.9c6.6 16.4 25.2 24.4 41.6 17.9s24.4-25.2 17.9-41.6L392.9 384 416 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-42.3 0-19.2-48 61.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80.6 0zm-49.7 48l19.2 48-161.6 0 19.2-48 123.3 0z\"]\n};\nvar faClipboardUser = {\n prefix: 'fas',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 344a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM98.3 413c-12.9 15.6 2.2 35 22.4 35l142.5 0c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM92.6 448l198.8 0c15.8 0 28.6-12.8 28.6-28.6 0-7.3-2.8-14.4-7.9-19.7L215.3 297.9c-6-6.3-14.4-9.9-23.2-9.9l-.3 0c-8.8 0-17.1 3.6-23.2 9.9L71.9 399.7C66.8 405 64 412.1 64 419.4 64 435.2 76.8 448 92.6 448z\"]\n};\nvar faSquareCaretRight = {\n prefix: 'fas',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L306.7 64 28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1l278.6-278.6 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zM205.3 256l146.7-146.7 50.7 50.7-96 96-101.5 0z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [576, 512, [128641], \"f533\", \"M176 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0 0 48-220.8 0-32.8-39.4C69.9 83.2 63.1 80 56 80L24 80C15.7 80 8 84.3 3.6 91.4s-4.8 15.9-1.1 23.4l48 96C54.6 218.9 62.9 224 72 224l107.8 0 104 143.1c15.1 20.7 39.1 32.9 64.7 32.9l75.5 0c75.1 0 136-60.9 136-136S499.1 128 424 128l-48 0 0-48 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L176 32zM376 192l48 0c39.8 0 72 32.2 72 72s-32.2 72-72 72l-48 0 0-144zM552 416c-13.3 0-24 10.7-24 24 0 4.4-3.6 8-8 8l-272 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3 0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3 0 15.9-6 31.2-16.8 42.9L352 384zM32 464c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 16c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-59.5-25.8-28.3c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l71.7 78.8c9.4 10.3 14.6 23.7 14.6 37.7L512 376c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 161.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z\"]\n};\nvar faEnvelopeCircleCheck = {\n prefix: 'fas',\n iconName: 'envelope-circle-check',\n icon: [640, 512, [], \"e4e8\", \"M64 112c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 81.4c-24.4-11.2-51.4-17.4-80-17.4-87.7 0-161.7 58.8-184.7 139.2-7.1-1.3-14.1-4.2-20.1-8.8l-208-156C71.1 141.3 64 127.1 64 112zM304 368c0 28.6 6.2 55.6 17.4 80L128 448c-35.3 0-64-28.7-64-64l0-188 198.4 148.8c12.6 9.4 26.9 15.4 41.7 17.9 0 1.8-.1 3.5-.1 5.3zm48 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faPersonSkating = {\n prefix: 'fas',\n iconName: 'person-skating',\n icon: [512, 512, [\"skating\"], \"f7c5\", \"M368 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM128 128c0-17.7 14.3-32 32-32l150.1 0c49.9 0 74.9 60.3 39.6 95.6l-63.9 63.9 69.8 31c17.3 7.7 28.5 24.9 28.5 43.9l0 85.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-75.2-82.4-36.6c-41-18.2-51-72-19.3-103.7l40.4-40.4-98.7 0c-17.7 0-32-14.3-32-32zM89.4 361.4l75.9-75.9c7.7 19.7 21.6 37.3 41 49.6l-71.6 71.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm346.5 87.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM143.2 486.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L12.7 419.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"]\n};\nvar faSkating = faPersonSkating;\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [576, 512, [9728], \"f185\", \"M288-32c8.4 0 16.3 4.4 20.6 11.7L364.1 72.3 468.9 46c8.2-2 16.9 .4 22.8 6.3S500 67 498 75.1l-26.3 104.7 92.7 55.5c7.2 4.3 11.7 12.2 11.7 20.6s-4.4 16.3-11.7 20.6L471.7 332.1 498 436.8c2 8.2-.4 16.9-6.3 22.8S477 468 468.9 466l-104.7-26.3-55.5 92.7c-4.3 7.2-12.2 11.7-20.6 11.7s-16.3-4.4-20.6-11.7L211.9 439.7 107.2 466c-8.2 2-16.8-.4-22.8-6.3S76 445 78 436.8l26.2-104.7-92.6-55.5C4.4 272.2 0 264.4 0 256s4.4-16.3 11.7-20.6L104.3 179.9 78 75.1c-2-8.2 .3-16.8 6.3-22.8S99 44 107.2 46l104.7 26.2 55.5-92.6 1.8-2.6c4.5-5.7 11.4-9.1 18.8-9.1zm0 144a144 144 0 1 0 0 288 144 144 0 1 0 0-288zm0 240a96 96 0 1 1 0-192 96 96 0 1 1 0 192z\"]\n};\nvar faBaseball = {\n prefix: 'fas',\n iconName: 'baseball',\n icon: [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M232.4 1.1c-122.2 11.4-219.5 108.7-230.9 230.9 16.2-.1 32-1.8 47.2-5 13-2.7 25.7 5.5 28.4 18.5s-5.5 25.7-18.5 28.4c-18.4 3.9-37.6 6-57.1 6.1 11.4 122.2 108.7 219.5 230.9 230.9 .1-19.5 2.2-38.7 6.1-57.1 2.7-13 15.5-21.3 28.4-18.5s21.3 15.5 18.5 28.4c-3.2 15.2-4.9 31-5 47.2 122.2-11.4 219.5-108.7 230.9-230.9-16.2 .1-32 1.8-47.2 5-13 2.7-25.7-5.5-28.4-18.5s5.5-25.7 18.5-28.4c18.4-3.9 37.6-6 57.1-6.1-11.4-122.2-108.7-219.5-230.9-230.9-.1 19.5-2.2 38.7-6.1 57.1-2.7 13-15.5 21.3-28.4 18.5s-21.3-15.5-18.5-28.4c3.2-15.2 4.9-31 5-47.2zm2.8 151.4c-21.4 32.9-49.5 60.9-82.3 82.3-11.1 7.2-26 4.1-33.2-7s-4.1-26 7-33.2c27.2-17.7 50.5-41 68.3-68.3 7.2-11.1 22.1-14.3 33.2-7s14.3 22.1 7 33.2zM393.1 284.2c7.2 11.1 4.1 26-7 33.2-27.2 17.7-50.5 41-68.3 68.3-7.2 11.1-22.1 14.3-33.2 7s-14.3-22.1-7-33.2c21.4-32.9 49.5-60.9 82.3-82.3 11.1-7.2 26-4.1 33.2 7z\"]\n};\nvar faBaseballBall = faBaseball;\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [448, 512, [], \"f03e\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM272 224c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7 .5 24.3S368.7 416 360 416L88 416c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z\"]\n};\nvar faNotdef = {\n prefix: 'fas',\n iconName: 'notdef',\n icon: [384, 512, [], \"e1fe\", \"M64 390.3L153.5 256 64 121.7 64 390.3zM102.5 448L281.5 448 192 313.7 102.5 448zm128-192L320 390.3 320 121.7 230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"]\n};\nvar faBasketball = {\n prefix: 'fas',\n iconName: 'basketball',\n icon: [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M92.7 58.8l78.4 78.4c18.2-25 28.9-55.9 28.9-89.2 0-14.1-1.9-27.7-5.5-40.6-38 9.4-72.6 27.2-101.8 51.4zM58.8 92.7c-24.2 29.2-42 63.8-51.4 101.8 12.9 3.6 26.5 5.5 40.6 5.5 33.3 0 64.1-10.7 89.2-28.9L58.8 92.7zM256 0c-4.6 0-9.2 .1-13.7 .4 3.7 15.3 5.7 31.2 5.7 47.6 0 46.6-15.9 89.4-42.6 123.4L256 222.1 419.3 58.8C374.9 22.1 318.1 0 256 0zM48 248c-16.4 0-32.4-2-47.6-5.7-.2 4.5-.4 9.1-.4 13.7 0 62.1 22.1 118.9 58.8 163.3L222.1 256 171.4 205.4C137.4 232.1 94.6 248 48 248zm463.6 21.7c.2-4.5 .4-9.1 .4-13.7 0-62.1-22.1-118.9-58.8-163.3L289.9 256 340.6 306.6c34-26.7 76.9-42.6 123.4-42.6 16.4 0 32.4 2 47.6 5.7zm-7.1 47.8c-12.9-3.6-26.5-5.5-40.6-5.5-33.3 0-64.1 10.7-89.2 28.9l78.4 78.4c24.2-29.2 42-63.8 51.4-101.8zM340.9 374.8c-18.2 25-28.9 55.9-28.9 89.2 0 14.1 1.9 27.7 5.5 40.6 38-9.4 72.6-27.2 101.8-51.4l-78.4-78.4zm-34.3-34.3L256 289.9 92.7 453.2c44.3 36.7 101.2 58.8 163.3 58.8 4.6 0 9.2-.1 13.7-.4-3.7-15.3-5.7-31.2-5.7-47.6 0-46.6 15.9-89.4 42.6-123.4z\"]\n};\nvar faBasketballBall = faBasketball;\nvar faPencil = {\n prefix: 'fas',\n iconName: 'pencil',\n icon: [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M36.4 353.2c4.1-14.6 11.8-27.9 22.6-38.7l181.2-181.2 33.9-33.9c16.6 16.6 51.3 51.3 104 104l33.9 33.9-33.9 33.9-181.2 181.2c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 510.6c-8.3 2.3-17.3 0-23.4-6.2S-1.4 489.3 .9 481L36.4 353.2zm55.6-3.7c-4.4 4.7-7.6 10.4-9.3 16.6l-24.1 86.9 86.9-24.1c6.4-1.8 12.2-5.1 17-9.7L91.9 349.5zm354-146.1c-16.6-16.6-51.3-51.3-104-104L308 65.5C334.5 39 349.4 24.1 352.9 20.6 366.4 7 384.8-.6 404-.6S441.6 7 455.1 20.6l35.7 35.7C504.4 69.9 512 88.3 512 107.4s-7.6 37.6-21.2 51.1c-3.5 3.5-18.4 18.4-44.9 44.9z\"]\n};\nvar faPencilAlt = faPencil;\nvar faPersonWalkingArrowLoopLeft = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-loop-left',\n icon: [640, 512, [], \"e551\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM359 335c-9.4 9.4-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 102.1 0c1.2 0 2.4-.1 3.5-.3 56.1-3.9 100.5-50.6 100.5-107.7 0-59.6-48.4-108-108-108l-92 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l92 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-98.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-72 72z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAnglesDown = {\n prefix: 'fas',\n iconName: 'angles-down',\n icon: [384, 512, [\"angle-double-down\"], \"f103\", \"M214.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 402.7 329.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 210.7 329.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faAngleDoubleDown = faAnglesDown;\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [576, 512, [128137], \"f48e\", \"M497.5-17c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-46.1 46.1-63-63c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l7 7-78.1 78.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-46.1 46.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-37.7 37.7c-10.5 10.5-16.4 24.7-16.4 39.6l0 88.8-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 88.8 0c14.9 0 29.1-5.9 39.6-16.4l229.7-229.7 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 46.1-46.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"]\n};\nvar faWheatAwn = {\n prefix: 'fas',\n iconName: 'wheat-awn',\n icon: [576, 512, [\"wheat-alt\"], \"e2cd\", \"M79.7 234.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0L134.1 444.3 49.4 529c-9.4 9.4-24.5 9.4-33.9 0-9.4-9.4-9.4-24.6 0-33.9l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zm104-104c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM495.2 15c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.2L529.2 49 414.7 163.4c7.7 1 15.2 3 22.5 5.9L495.5 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-58.3 58.3c2.8 7.1 4.7 14.5 5.7 22.1L495.2 15z\"]\n};\nvar faWheatAlt = faWheatAwn;\nvar faPlaneUp = {\n prefix: 'fas',\n iconName: 'plane-up',\n icon: [512, 512, [], \"e22d\", \"M200 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 173.6 159.2c6.6 6.1 10.4 14.6 10.4 23.6l0 43.7c0 10.9-10.7 18.6-21.1 15.2l-162.9-54.3 0 99.7 66 52.8c3.8 3 6 7.6 6 12.5l0 19.8c0 10.4-9.8 18-19.9 15.5L256 512 147.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C26.7 396.4 16 388.7 16 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L200 151.3 200 24z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96 256 43 256 96-114.6 96-256 96zM0 352L0 242.7c16.9 12.3 37 22.2 58.1 30.1 53 19.9 123 31.2 197.9 31.2s144.9-11.3 197.9-31.2c21.2-7.9 41.2-17.8 58.1-30.1L512 352c0 53-114.6 96-256 96S0 405 0 352z\"]\n};\nvar faCircleArrowLeft = {\n prefix: 'fas',\n iconName: 'circle-arrow-left',\n icon: [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM135 239l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-39 39 150.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-150.1 0 39 39c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faArrowCircleLeft = faCircleArrowLeft;\nvar faPlugCircleBolt = {\n prefix: 'fas',\n iconName: 'plug-circle-bolt',\n icon: [640, 512, [], \"e55b\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S433.2 416 440 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S558.8 384 552 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M80 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C44.4 156.9 83.6 128 128 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faAnchorLock = {\n prefix: 'fas',\n iconName: 'anchor-lock',\n icon: [640, 512, [], \"e4ad\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 28.3 0 55.4-5.7 80-15.9l0-.2 0-72.2c-14.4 9.6-30.6 16.7-48 20.7l0-257.9c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm272 304.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416.5 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faTimeline = {\n prefix: 'fas',\n iconName: 'timeline',\n icon: [576, 512, [], \"e29c\", \"M160 169.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3l0 54.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 0 54.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-256 0 0-54.7z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M292.9 384c7.3-22.3 21.9-42.5 38.4-59.9 32.7-34.4 52.7-80.9 52.7-132.1 0-106-86-192-192-192S0 86 0 192c0 51.2 20 97.7 52.7 132.1 16.5 17.4 31.2 37.6 38.4 59.9l201.7 0zM288 432l-192 0 0 16c0 44.2 35.8 80 80 80l32 0c44.2 0 80-35.8 80-80l0-16zM184 112c-39.8 0-72 32.2-72 72 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3 53.7-120 120-120 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faCircleArrowRight = {\n prefix: 'fas',\n iconName: 'circle-arrow-right',\n icon: [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm41-159c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39-150.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l150.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80z\"]\n};\nvar faArrowCircleRight = faCircleArrowRight;\nvar faMarsAndVenus = {\n prefix: 'fas',\n iconName: 'mars-and-venus',\n icon: [512, 512, [9893], \"f224\", \"M368 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7-63 63c19.5 28.4 31 62.7 31 99.8 0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-81.9-15-144-86.8-144-173.1 0-97.2 78.8-176 176-176 37 0 71.4 11.4 99.8 31l63-63-34.7 0zM352 208a112 112 0 1 0 -224 0 112 112 0 1 0 224 0z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [576, 512, [], \"f6ff\", \"M248 88l80 0 0 48-80 0 0-48zm-8-56c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l16 0 0 32-224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 192 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-32 16 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-96 0zM448 376l8 0 0 48-80 0 0-48 72 0zm-256 0l8 0 0 48-80 0 0-48 72 0z\"]\n};\nvar faBuildingShield = {\n prefix: 'fas',\n iconName: 'building-shield',\n icon: [576, 512, [], \"e4d8\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0c-12.5-14.7-23.2-30.8-31.8-48l-89.5 0 0-80c0-17.7 14.3-32 32-32l32 0 0-26.7c0-18.1 6.1-35.2 16.6-48.8-.4-1.4-.6-2.9-.6-4.5l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 1 86.7-28.9c3.1-1 6.2-1.8 9.3-2.5L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM445.3 488.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [576, 512, [], \"f121\", \"M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faFeatherPointed = {\n prefix: 'fas',\n iconName: 'feather-pointed',\n icon: [512, 512, [\"feather-alt\"], \"f56b\", \"M475.3 .1c9.9-.8 19.6 3 26.6 10s10.8 16.7 10 26.6c-4 49.3-17.4 126.2-46.3 199.7-1.8 4.5-5.5 7.9-10.2 9.3L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l38.6 0c12 0 19.7 12.8 13.5 23.1-4 6.7-8.3 13.2-12.7 19.6-2 2.9-5 5-8.4 6.1L310.5 366c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l16 0c14.6 0 21 17.4 8.8 25.4-68 45-137.7 43.3-182.4 31.3-12.7-3.4-24-9.9-34.4-17.9L48 496c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32l80-80 .5 .5c.7-1.3 1.6-2.5 2.7-3.6L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L89.7 326.2c-8.9 8.9-24 4.4-25-8.2-4.3-53.2 9.3-123.1 72.6-186.4 91.1-91.1 254.2-124.7 337.9-131.5z\"]\n};\nvar faFeatherAlt = faFeatherPointed;\nvar faFileCircleQuestion = {\n prefix: 'fas',\n iconName: 'file-circle-question',\n icon: [576, 512, [], \"e4ef\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 32.4-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72.5 0c4.2 36 34.8 64 72 64 26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8S405.7 320 416 320l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM616 416c13.3 0 24-10.7 24-24s-10.7-24-24-24l-292.9 0c-6.5 16.3-13.7 32.3-21.6 48L616 416z\"]\n};\nvar faEarthAmericas = {\n prefix: 'fas',\n iconName: 'earth-americas',\n icon: [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M55.7 199.7l30.9 30.9c6 6 14.1 9.4 22.6 9.4l21.5 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 9.4 14.1 9.4 22.6l0 37.5c0 8.5 3.4 16.6 9.4 22.6l13.3 13.3c6 6 9.4 14.1 9.4 22.6l0 18.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-2.7c0-8.5 3.4-16.6 9.4-22.6l45.3-45.3c6-6 9.4-14.1 9.4-22.6l0-34.7c0-17.7-14.3-32-32-32l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l34.7 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-19.7-19.7C242 130 240 125.1 240 120s2-10 5.7-13.7l17.3-17.3c5.8-5.8 9.1-13.7 9.1-21.9 0-7.2-2.4-13.7-6.4-18.9-3.2-.1-6.4-.2-9.6-.2-95.4 0-175.7 64.2-200.3 151.7zM464 256c0-34.6-8.4-67.2-23.4-95.8-6.4 .9-12.7 3.9-17.9 9.1l-13.4 13.4c-6 6-9.4 14.1-9.4 22.6l0 34.7c0 17.7 14.3 32 32 32l24.1 0c2.5 0 5-.3 7.3-.8 .4-5 .5-10.1 .5-15.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faEarth = faEarthAmericas;\nvar faEarthAmerica = faEarthAmericas;\nvar faGlobeAmericas = faEarthAmericas;\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [640, 512, [129365], \"f787\", \"M453.1-36.7L440.9-24.6c-31.2 31.2-31.2 81.9 0 113.1 15.6 15.6 31.2 31.2 46.9 46.9 31.2 31.2 81.9 31.2 113.1 0l12.1-12.1c6.2-6.2 6.2-16.4 0-22.6L600.9 88.6c-31.2-31.2-81.9-31.2-113.1 0 31.2-31.2 31.2-81.9 0-113.1L475.7-36.7c-6.2-6.2-16.4-6.2-22.6 0zM331.6 96c-45.2 0-87.1 20.4-115 54.3L273.3 207c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L191.6 193.2 67.2 466.8c-5.5 12.1-2.9 26.4 6.5 35.9s23.7 12 35.9 6.5l141.6-64.4-43.8-43.8c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.5 56.5 95.3-43.3c53.1-24.1 87.2-77.1 87.2-135.5 0-82.2-66.6-148.8-148.8-148.8z\"]\n};\nvar faTemperatureFull = {\n prefix: 'fas',\n iconName: 'temperature-full',\n icon: [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 212.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature4 = faTemperatureFull;\nvar faThermometer4 = faTemperatureFull;\nvar faThermometerFull = faTemperatureFull;\nvar faTableCellsRowLock = {\n prefix: 'fas',\n iconName: 'table-cells-row-lock',\n icon: [640, 512, [], \"e67a\", \"M256 288l0-64 153.3 0c17.1-42.2 56-73.2 102.7-79l0-49c0-35.3-28.7-64-64-64L128 32C92.7 32 64 60.7 64 96l0 320c0 35.3 28.7 64 64 64l241.3 0c-.9-5.2-1.3-10.6-1.3-16.1l0-47.9-112 0 0-64 113.3 0c3.7-22 14.8-41.4 30.7-55.6l0-8.4-144 0zm0-192l192 0 0 64-192 0 0-64zM560 272.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416 368l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faBoltLightning = {\n prefix: 'fas',\n iconName: 'bolt-lightning',\n icon: [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28L228.9 0c15 0 27.1 12.1 27.1 27.1 0 3.2-.6 6.5-1.7 9.5L208 160 347.3 160c20.2 0 36.7 16.4 36.7 36.7 0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7l-2.9 0c-15.7 0-28.5-12.8-28.5-28.5 0-2.3 .3-4.6 .9-6.9L176 288 32 288c-17.7 0-32-14.3-32-32z\"]\n};\nvar faCloudShowersWater = {\n prefix: 'fas',\n iconName: 'cloud-showers-water',\n icon: [512, 512, [], \"e4e4\", \"M279.2 55.7C263.9 22.8 230.6 0 192 0 139 0 96 43 96 96 60.7 96 32 124.7 32 160s28.7 64 64 64l320 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-1.6 0c-7.4-36.5-39.7-64-78.4-64-22.2 0-42.3 9.1-56.8 23.7zM410.6 476.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zM100.1 303.6c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64C29 365 35.8 378.6 48.4 382.8s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm112 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64z\"]\n};\nvar faArrowUpLong = {\n prefix: 'fas',\n iconName: 'arrow-up-long',\n icon: [320, 512, [\"long-arrow-up\"], \"f176\", \"M182.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 77.3 128 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-434.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"]\n};\nvar faLongArrowUp = faArrowUpLong;\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm240-48l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [8250], \"f105\", \"M247.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L179.2 256 41.9 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"]\n};\nvar faFaceMeh = {\n prefix: 'fas',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM176 320l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMeh = faFaceMeh;\nvar faArrowUpFromGroundWater = {\n prefix: 'fas',\n iconName: 'arrow-up-from-ground-water',\n icon: [640, 512, [], \"e4b5\", \"M303 7c9.4-9.4 24.6-9.4 33.9 0l88 88c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47 0 278.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-278.1-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L303 7zM240 192l0 163.1c-10.6-2.2-21.3-3.2-32-3.1-32.5 .2-64.9 10.7-92.3 31.4-8.8 6.6-15.9 10.9-21.7 13.5l-.8 .4c-3.7 1.7-6.4 2.9-9.8 .3-6-4.5-12.6-8-19.3-10.4L64 240c0-26.5 21.5-48 48-48l128 0zm336 48l0 155.2c-1.1 .8-2.2 1.5-3.3 2.4-4.1 3.1-8.3 .8-12.6-1.5-.6-.3-1.2-.6-1.8-1-5.2-2.7-11.1-6.6-18-11.7-28.1-21.1-61.3-31.6-94.4-31.4-15.5 .1-31 2.5-46 7.3l0-167.3 128 0c26.5 0 48 21.5 48 48zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [512, 512, [128506, 62072], \"f279\", \"M512 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L349.5 77.5 170.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C6.8 88.8 0 99.9 0 112L0 464c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 179.4 59.8c8.1 2.7 16.8 2.1 24.4-1.7l128-64c10.8-5.4 17.7-16.5 17.7-28.6l0-352zM192 376.9l0-284.5 128 42.7 0 284.5-128-42.7z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M285.7 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3 48 383.8 127.8 304 226.3 304l59.4 0zM528 80c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24zM256 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [384, 512, [9792], \"f221\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64c0-1 0-1.9-.1-2.9z\"]\n};\nvar faDiagramSuccessor = {\n prefix: 'fas',\n iconName: 'diagram-successor',\n icon: [448, 512, [], \"e47a\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 480L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM160 160l0-64-96 0 0 64 96 0z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [576, 512, [], \"e062\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l25-25 0-447.2c0-15 10.5-28.3 25.4-29.8 7.4-.7 14.9-1.1 22.6-1.1 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l2.2 2.6 227.5-227.5zM133.8 512L288 357.8 288 416c0 53-43 96-96 96l-58.2 0zM176 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm336 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88 72a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-64 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm128 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faDiagramProject = {\n prefix: 'fas',\n iconName: 'diagram-project',\n icon: [512, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 128 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-128 0 0 16c0 7.3-1.7 14.3-4.6 20.5l68.6 91.5 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-7.3 1.7-14.3 4.6-20.5L128 224 48 224c-26.5 0-48-21.5-48-48L0 80z\"]\n};\nvar faProjectDiagram = faDiagramProject;\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [512, 512, [], \"f120\", \"M9.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 256 9.4 118.6zM224 384l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faHouseFire = {\n prefix: 'fas',\n iconName: 'house-fire',\n icon: [640, 512, [], \"e50c\", \"M448 192c14.1 .4 23.8 11.4 32.7 21.7 2 2.3 4 4.6 6 6.7l19 19.9 12.2-13.8c5.4-6.1 13.3-8.9 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.2 26.2 88.2 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.1 5.7-5.2 13.1-7.7 20.3-7.5zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l147.5 137c-19.2-4.3-40 .5-55.5 14.4-36.4 32.6-67.7 69.8-90.3 106.4-10.3 16.6-19.7 34.9-26.8 53.7L272 320c-26.5 0-48 21.5-48 48l0 96 64.6 0c7.3 17.2 16.8 33.4 28.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM489.3 343.7c-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.7 51.9-54.7 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-36.5-37-73-54.7-88.4z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176S512 64 288 64zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faHurricane = {\n prefix: 'fas',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6 184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5 100.3 14.9 177.3 101.3 177.3 205.7 0 103.6-75.7 189.5-174.9 205.4-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3C192 421.9 185.5 415 177.3 413.7 77 398.9 0 312.4 0 208zm288 48a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faEarthAfrica = {\n prefix: 'fas',\n iconName: 'earth-africa',\n icon: [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M447.6 175c-31.6-74.6-105.5-127-191.6-127-22.1 0-43.4 3.5-63.4 9.8-.4 2-.6 4.1-.6 6.2l0 73.4c0 12.5 10.1 22.6 22.6 22.6 6 0 11.8-2.4 16-6.6l16-16c6-6 14.1-9.4 22.6-9.4l5.5 0c28.5 0 42.8 34.5 22.6 54.6-6 6-14.1 9.4-22.6 9.4l-61.5 0c-8.5 0-16.6 3.4-22.6 9.4l-21.3 21.3c-6 6-9.4 14.1-9.4 22.6l0 42.7c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32l0 32c0 17.7 14.3 32 32 32l2.7 0c8.5 0 16.6-3.4 22.6-9.4l29.3-29.3c6-6 9.4-14.1 9.4-22.6l0-18.7c0-8.8 7.2-16 16-16s16-7.2 16-16l0-34.7c0-8.5-3.4-16.6-9.4-22.6l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l45 0c12.4 0 22.7-7.1 28-17zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faGlobeAfrica = faEarthAfrica;\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 10.3 134.1c37.1 21.2 65.8 56.4 78.2 99.7l3.8 13.4c2.8 9.7 .8 20-5.2 28.1S362 352 352 352L32 352c-10 0-19.5-4.7-25.5-12.7s-8-18.4-5.2-28.1L5 297.8c12.4-43.3 41-78.5 78.2-99.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 400l64 0 0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-112z\"]\n};\nvar faThumbTack = faThumbtack;\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6 13.2 0 25.4 4 35.6 10.8 8.7-24.9 32.5-42.8 60.4-42.8 11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z\"]\n};\nvar faFaceMehBlank = {\n prefix: 'fas',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm208-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faTemperatureEmpty = {\n prefix: 'fas',\n iconName: 'temperature-empty',\n icon: [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M64 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S16 447.5 16 368c0-42.6 18.5-81 48-107.3L64 96zm96 336c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faTemperature0 = faTemperatureEmpty;\nvar faThermometer0 = faTemperatureEmpty;\nvar faThermometerEmpty = faTemperatureEmpty;\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM288 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM288 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm0-384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM416 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [576, 512, [], \"f591\", \"M315 315L473.4 99.9 444.1 70.6 229 229 315 315zm-187 5l0 0 0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0 457.6 0 468.5 4.5 476.6 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5 0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5l-71.7 0-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l51.7-51.7 70.6 70.6-19.7 19.7c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [512, 512, [], \"f53a\", \"M0 419.6L0 109.5c0-23.2 24.1-38.6 46.3-32 87.7 26.2 149.7 5.5 212.1-15.3 64.5-21.5 129.4-43.1 223.3-13.1 18.5 5.9 30.3 23.8 30.3 43.3l0 310.1c0 23.2-24.1 38.6-46.2 32-87.7-26.2-149.8-5.5-212.1 15.3-64.5 21.5-129.4 43.1-223.3 13.1-18.5-5.9-30.3-23.8-30.3-43.3zM336 256c0-53-35.8-96-80-96s-80 43-80 96 35.8 96 80 96 80-43 80-96zM120 413.6c4.4 0 7.9-3.8 7.2-8.1-4.6-27.8-27-49.5-55.2-53-4.4-.5-8 3.1-8 7.5l0 39.9c0 3.6 2.4 6.8 6 7.7 17.9 4.2 34.3 6.1 50 6.1zm318.5-51.1c5 .8 9.5-3 9.5-8l0-42.6c0-4.4-3.6-8.1-8-7.5-25.2 3.1-45.9 20.9-53.2 44.6-1.4 4.7 2.3 9.1 7.2 9.2 14.2 .4 29 1.7 44.4 4.3zM448 152l0-39.9c0-3.6-2.5-6.8-6-7.7-17.9-4.2-34.3-6.1-50-6.1-4.4 0-7.9 3.8-7.2 8.1 4.6 27.8 27 49.5 55.2 53 4.4 .5 8-3.1 8-7.5zM125.2 162.9c1.4-4.7-2.3-9.1-7.2-9.2-14.2-.4-29-1.7-44.4-4.3-5-.8-9.5 3-9.5 8L64 200c0 4.4 3.6 8.1 8 7.5 25.2-3.1 45.9-20.9 53.2-44.6z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [576, 512, [], \"e072\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-94.5-94.5c40.2-23 69.5-96.9 69.5-184.6 0-106-43-192-96-192s-96 86-96 192c0 24.1 2.2 47.2 6.3 68.4L304 238.2 304 224c0-58.9 11.8-114.5 33.2-157.2 5.9-11.7 13.1-23.7 21.9-34.8L128 32c-8.3 0-16.4 2.1-24.1 6.1l-63-63zM32 224l0 264c0 30.9 25.1 56 56 56l160 0c30.9 0 56-25.1 56-56l0-114.2-256-256C37.9 148.2 32 184.7 32 224zm416 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"]\n};\nvar faFileShield = {\n prefix: 'fas',\n iconName: 'file-shield',\n icon: [576, 512, [], \"e4f0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0C261 469.4 240 414.5 240 356.4l0-31.1c0-34.4 22-65 54.7-75.9l112-37.3c3.1-1 6.2-1.8 9.3-2.5l0-39.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zm87.8 312.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M40 32C17.9 32 0 49.9 0 72l0 56c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 32zM438.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-229.5 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 229.5-9.4-9.4z\"]\n};\nvar faFaceGrinTongue = {\n prefix: 'fas',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 240l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [640, 512, [], \"f573\", \"M64.1 64c0-35.3 28.7-64 64-64L277.6 0c17 0 33.3 6.7 45.3 18.7L429.3 125.3c12 12 18.7 28.3 18.7 45.3l0 97.5-132 132-42.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4-11.3 0-21.9 5.1-28.9 13.9L133.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l31.5 0c-.9 3.1-1.7 6.3-2.3 9.5l-10.9 54.5-146.2 0c-35.3 0-64-28.7-64-64l0-384zm208-5.5l0 93.5c0 13.3 10.7 24 24 24l93.5 0-117.5-117.5zm60.2 408.4c2.5-12.4 8.6-23.8 17.5-32.7l118.9-118.9 80 80-118.9 118.9c-8.9 8.9-20.3 15-32.7 17.5l-59.6 11.9c-.9 .2-1.9 .3-2.9 .3-8 0-14.6-6.5-14.6-14.6 0-1 .1-1.9 .3-2.9l11.9-59.6zm267.8-123l-28.8 28.8-80-80 28.8-28.8c22.1-22.1 57.9-22.1 80 0s22.1 57.9 0 80z\"]\n};\nvar faBuildingWheat = {\n prefix: 'fas',\n iconName: 'building-wheat',\n icon: [640, 512, [], \"e4db\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l249.3 0c-6-14.8-9.3-31-9.3-48 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-25.2 14.5-46.9 35.6-57.4-2.4-7.1-3.6-14.7-3.6-22.6l0-32C368 96.7 388 70.1 415.9 60.1 413.9 26.6 386 0 352 0L96 0zM208 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM128 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm352 0l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16zm16 128c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zm0 112c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zM496 528c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zm-16-96c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0zm16-128c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zM512 64c-13.3 0-24 10.7-24 24l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-13.3-10.7-24-24-24zm96 64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM440 104c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24z\"]\n};\nvar faPlugCircleMinus = {\n prefix: 'fas',\n iconName: 'plug-circle-minus',\n icon: [640, 512, [], \"e55e\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faCirclePlus = {\n prefix: 'fas',\n iconName: 'circle-plus',\n icon: [512, 512, [\"plus-circle\"], \"f055\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusCircle = faCirclePlus;\nvar faBrazilianRealSign = {\n prefix: 'fas',\n iconName: 'brazilian-real-sign',\n icon: [512, 512, [], \"e46c\", \"M400 16c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48.9 0c-26 0-47.1 21.1-47.1 47.1 0 22.5 15.9 41.8 37.9 46.2l32.8 6.6c51.9 10.4 89.3 56 89.3 109 0 50.6-33.8 93.3-80 106.7l0 20.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.9 0c26 0 47.1-21.1 47.1-47.1 0-22.5-15.9-41.8-37.9-46.2l-32.8-6.6c-51.9-10.4-89.3-56-89.3-109 0-50.6 33.8-93.2 80-106.7L368 48c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [9770], \"f699\", \"M0 256c0-141.4 114.6-256 256-256 33 0 64.6 6.3 93.6 17.7 7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5 7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512 114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"]\n};\nvar faFaceSurprise = {\n prefix: 'fas',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM248 88c-8.8 0-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0zM416 304a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faArrowDownUpLock = {\n prefix: 'fas',\n iconName: 'arrow-down-up-lock',\n icon: [576, 512, [], \"e4b0\", \"M262.6 422.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l25.4 25.4 0-114.7-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l256 0 0-114.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-25.4-25.4 0 94.8c-25.3 20.3-42.8 50.1-47 83.9l-145 0 0 114.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM192 32l0 144-64 0 0-144c0-17.7 14.3-32 32-32s32 14.3 32 32zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [512, 512, [], \"f7aa\", \"M256.2 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM277 383.8c1 .1 2.1 .2 3.2 .2 39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.9 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7 4.2 9.7 5.8 20.8 3.7 32.3l-6.3 34.8c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.8 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32c0 34.6-28.1 62.7-62.7 62.7-16.4 0-27.9 16-22.8 31.6L15 396.4c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.4 489.4 22.8 505.8 40.7 501l19.4-5.3c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7 16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5l-19.4 5.3c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384.2 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [640, 512, [9890], \"f226\", \"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144.1 173.1 .1 1 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-82-15-144.1-86.8-144.1-173.1 0-97.2 78.8-176 176-176S368 78.8 368 176zM357.5 327c14.4-15.8 26.6-33.7 36.1-53.1 16.1 9 34.7 14.1 54.5 14.1 61.9 0 112-50.1 112-112S509.9 64 448 64c-19.8 0-38.3 5.1-54.5 14.1-9.5-19.4-21.6-37.3-36.1-53.1 26.4-15.9 57.4-25 90.5-25 97.2 0 176 78.8 176 176 0 86.3-62.1 158.1-144.1 173.1 .1 .9 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-21.1-3.9-40.9-11.5-58.6-22.2z\"]\n};\nvar faClipboardQuestion = {\n prefix: 'fas',\n iconName: 'clipboard-question',\n icon: [384, 512, [], \"e4e3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 248c16.1 0 29.2 13.1 29.2 29.2 0 8.7-3.1 13.9-6.9 17.7-4.5 4.4-10.7 7.5-16.8 9.5-14.9 5-29.5 19.3-29.5 39.5 0 13.3 10.7 24 24 24 11.5 0 21.2-8.1 23.5-19 19.2-7.1 53.7-26.3 53.7-71.8 0-42.6-34.6-77.2-77.2-77.2s-77.2 34.6-77.2 77.2c0 13.3 10.7 24 24 24s24-10.7 24-24c0-16.1 13.1-29.2 29.2-29.2zm28 168c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [127789], \"f80f\", \"M288 0c-20.5 0-40.1 8.1-54.6 22.6L22.6 233.4C8.1 247.9 0 267.5 0 288 0 300.2 2.9 312.1 8.2 322.7L322.7 8.2C312.1 2.9 300.2 0 288 0zM224 512c20.5 0 40.1-8.1 54.6-22.6L489.4 278.6c14.5-14.5 22.6-34.1 22.6-54.6 0-12.2-2.9-24.1-8.2-34.7L189.3 503.8c10.7 5.4 22.6 8.2 34.7 8.2zM456.6 168.6c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-288 288c-31.2 31.2-31.2 81.9 0 113.1s81.9 31.2 113.1 0l288-288z\"]\n};\nvar faArrowUpFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-up-from-bracket',\n icon: [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [128300], \"f610\", \"M176 0c-26.5 0-48 21.5-48 48l0 208c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64 32 0c70.7 0 128 57.3 128 128S390.7 448 320 448L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16.9 0c30.4-34 48.9-78.8 48.9-128 0-106-86-192-192-192l-32 0 0-80c0-26.5-21.5-48-48-48L176 0zM120 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [576, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-51.6-30.5-96.1-74.5-116.3 6.7-13.1 10.5-28 10.5-43.7 0-53-43-96-96-96-17.7 0-34.2 4.8-48.4 13.1-24.1-45.8-72.2-77.1-127.6-77.1-79.5 0-144 64.5-144 144 0 8 .7 15.9 1.9 23.5-56.9 19.2-97.9 73.1-97.9 136.5z\"]\n};\nvar faBaseballBatBall = {\n prefix: 'fas',\n iconName: 'baseball-bat-ball',\n icon: [576, 512, [], \"f432\", \"M464.1 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm8.4-576c15.1 0 29.7 5.8 40.7 16.2l47.2 44.8c12.6 12 19.1 29 17.5 46.3-1.2 13.3-7 25.8-16.5 35.2L363.1 309c-7.3 7.3-15.7 13.4-25 18L206 393c-9.2 4.6-17.7 10.7-25 18l-92 92 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7l-1.8-1.7-48-48-1.7-1.8c-7.7-9.4-7.1-23.3 1.7-32.1s22.7-9.3 32.1-1.7l1.8 1.7 92-92c7.3-7.3 13.4-15.7 18-25l66.1-132.1c4.6-9.2 10.7-17.7 18-25L430.8-14.7C441.9-25.8 456.9-32 472.5-32z\"]\n};\nvar faCarRear = {\n prefix: 'fas',\n iconName: 'car-rear',\n icon: [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4l26.1 74.6-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 96c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-40.6c19.1-11.1 32-31.7 32-55.4l0-96c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 288l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faCarAlt = faCarRear;\nvar faThumbtackSlash = {\n prefix: 'fas',\n iconName: 'thumbtack-slash',\n icon: [576, 512, [\"thumb-tack-slash\"], \"e68f\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L417.8 352 448 352c10 0 19.5-4.7 25.5-12.7s8-18.4 5.2-28.1L475 297.8c-12.4-43.3-41-78.5-78.2-99.7L386.5 64 416 64c17.7 0 32-14.3 32-32S433.7 0 416 0L160 0c-7.4 0-14.1 2.5-19.5 6.6L190.1 56.3 185.3 119.4 41-24.9zM282.2 352L149.7 219.6c-22.7 20.5-39.8 47.4-48.7 78.3l-3.8 13.4c-2.8 9.7-.8 20 5.2 28.1S118 352 128 352l154.2 0zM256 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112-64 0 0 112z\"]\n};\nvar faThumbTackSlash = faThumbtackSlash;\nvar faPlusMinus = {\n prefix: 'fas',\n iconName: 'plus-minus',\n icon: [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-128zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHouseCircleCheck = {\n prefix: 'fas',\n iconName: 'house-circle-check',\n icon: [640, 512, [], \"e509\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM553.4 339.1c-7.1-5.2-17.1-3.6-22.3 3.5l-53 72.8-26.7-26.8c-6.2-6.2-16.4-6.2-22.6 0-6.2 6.2-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.7s8.9-2.8 11.7-6.6l64-88c5.2-7.1 3.6-17.1-3.5-22.3z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z\"]\n};\nvar faLibra = {\n prefix: 'fas',\n iconName: 'libra',\n icon: [512, 512, [], \"e84b\", \"M480 384c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l448 0zM256 32c97.2 0 176 78.8 176 176 0 16.6-2.4 32.7-6.7 48l54.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-104.2 0c-11.8 0-22.7-6.5-28.2-16.9s-4.9-23.1 1.6-32.9c11.9-17.8 18.8-39.1 18.8-62.2 0-61.9-50.1-112-112-112S144 146.1 144 208c0 23.1 6.9 44.4 18.8 62.2 6.6 9.8 7.2 22.5 1.6 32.9S148.1 320 136.2 320L32 320c-17.7 0-32-14.3-32-32s14.3-32 32-32l54.8 0c-4.3-15.3-6.8-31.4-6.8-48 0-97.2 78.8-176 176-176z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faMobileVibrate = {\n prefix: 'fas',\n iconName: 'mobile-vibrate',\n icon: [576, 512, [], \"e816\", \"M384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-384c0-35.3 28.7-64 64-64L384 0zM248 416c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM48.8 133.4c9.4-7.7 23.3-7.1 32.1 1.7 9.4 9.4 9.4 24.6 0 33.9l-31 31 25.4 25.4 2.9 3.2c6.3 7.7 9.8 17.4 9.8 27.4 0 11.5-4.6 22.5-12.7 30.6l-25.4 25.4 31 31 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7L47 377 12.7 342.6C5.6 335.5 1.2 326.2 .2 316.3L0 312 .2 307.7c1-9.9 5.4-19.2 12.5-26.3L38.1 256 12.7 230.6C5.6 223.5 1.2 214.2 .2 204.3L0 200 .2 195.7c1-9.9 5.4-19.2 12.5-26.3L47 135 48.8 133.4zM495 135c8.8-8.8 22.7-9.3 32.1-1.7l1.8 1.7 34.3 34.3c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-25.4 25.4 25.4 25.4c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-34.3 34.3-1.8 1.7c-9.4 7.7-23.3 7.1-32.1-1.7s-9.3-22.7-1.7-32.1l1.7-1.8 31-31-25.4-25.4c-8.1-8.1-12.7-19.1-12.7-30.6 0-10 3.5-19.7 9.8-27.4l2.9-3.2 25.4-25.4-31-31c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faFaceGrinSquint = {\n prefix: 'fas',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM122.6 143.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faUsersBetweenLines = {\n prefix: 'fas',\n iconName: 'users-between-lines',\n icon: [576, 512, [], \"e591\", \"M24 16l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 64C10.7 64 0 53.3 0 40S10.7 16 24 16zm0 448l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM392 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0C138.6 318.3 128 349.9 128 384l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 416 32 406.4 32 394.7L32 384c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm152-16a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 384c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8z\"]\n};\nvar faHouseMedicalCircleXmark = {\n prefix: 'fas',\n iconName: 'house-medical-circle-xmark',\n icon: [640, 512, [], \"e513\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"]\n};\nvar faTableList = {\n prefix: 'fas',\n iconName: 'table-list',\n icon: [448, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 224l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 352l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64z\"]\n};\nvar faThList = faTableList;\nvar faFlaskVial = {\n prefix: 'fas',\n iconName: 'flask-vial',\n icon: [640, 512, [], \"e4f3\", \"M184.6 411.5c-3.1 7.3-5.4 14.9-6.8 22.6-14.5 8.8-31.5 13.9-49.8 13.9-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 255.6-39.4 91.9zM96 64l0 128 64 0 0-128-64 0zM352 0L512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.4 91.3 213c2.3 5.4 3.8 11.1 4.4 17l.3 .6-.3 0c.2 1.8 .3 3.6 .3 5.4 0 32.3-26.2 58.6-58.6 58.6l-266.9 0c-32.3 0-58.6-26.2-58.6-58.6 0-1.8 .1-3.6 .3-5.4l-.3 0 .3-.6c.6-5.8 2.1-11.6 4.4-17L320 217.4 320 64c-17.7 0-32-14.3-32-32S302.3 0 320 0l32 0zM453.2 242.6c-3.4-8-5.2-16.5-5.2-25.2l0-153.4-64 0 0 153.4c0 8.7-1.8 17.2-5.2 25.2l-33.2 77.4 140.7 0-33.2-77.4z\"]\n};\nvar faCircleExclamation = {\n prefix: 'fas',\n iconName: 'circle-exclamation',\n icon: [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"]\n};\nvar faExclamationCircle = faCircleExclamation;\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32l0 32-8.9 0c-42 0-79.1 27.3-91.6 67.4l-23 73.5C14.5 219.1 0 243.9 0 272L0 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 320 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-176c0-28.1-14.5-52.9-36.4-67.1l-23-73.5C440.1 91.3 402.9 64 360.9 64l-8.9 0 0-32c0-17.7-14.3-32-32-32L192 0zM151.1 128l209.9 0c14 0 26.4 9.1 30.5 22.5l13 41.5-296.9 0 13-41.5c4.2-13.4 16.5-22.5 30.5-22.5zM96 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCab = faTaxi;\nvar faTextSlash = {\n prefix: 'fas',\n iconName: 'text-slash',\n icon: [576, 512, [\"remove-format\"], \"f87d\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L322.7 256.9 368.2 96 471 96 465 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C545.6 61.3 522.7 32 491.5 32l-319 0c-19.8 0-37.3 12.1-44.5 30.1l-87-87zM180.4 114.5l4.6-18.5 116.7 0-30.8 109-90.5-90.5zM241 310.8L211.3 416 160 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 15.1-53.3-51.9-51.9z\"]\n};\nvar faRemoveFormat = faTextSlash;\nvar faPeoplePulling = {\n prefix: 'fas',\n iconName: 'people-pulling',\n icon: [576, 512, [], \"e535\", \"M80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32 9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8l-20.5-122.7 15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7 8.6 3.6 18 3.1 25.9-.7 3.4-1.6 6.6-3.9 9.3-6.7 3.1-3.2 5.5-7 7.1-11.4 .1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-21.4-10.7-15.3-36.8c-17.1-41.1-57.3-67.9-101.9-67.9-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [576, 512, [9194], \"f04a\", \"M204.3 43.1C215.9 32 233 28.9 247.7 35.2S272 56 272 72l0 136.3 172.3-165.1C455.9 32 473 28.9 487.7 35.2S512 56 512 72l0 368c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9L272 303.7 272 440c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9l-192-184C4.5 277.3 0 266.9 0 256s4.5-21.3 12.3-28.9l192-184z\"]\n};\nvar faCarBurst = {\n prefix: 'fas',\n iconName: 'car-burst',\n icon: [640, 512, [\"car-crash\"], \"f5e1\", \"M232 16.1l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24zM32 168.1l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM281.5 70.6c9.4 9.4 24.6 9.4 33.9 0l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L281.5 36.6c-9.4 9.4-9.4 24.6 0 33.9zm-181 215l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352.9 175.4L505 216.2c6.4 1.7 11.1 7.3 11.8 13.9l7.2 74-231.5-62 43.2-60.5c3.9-5.4 10.7-7.9 17.2-6.2zM223.6 228.5l-2.1 2.9c-21.7 5.5-39.9 22.3-46.1 45.5-4.1 15.5-12.4 46.4-24.8 92.7l-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 278.2 74.5-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6 4.1-15.5 12.4-46.4 24.8-92.7l8.3-30.9c6.2-23.2-1.1-46.8-17.2-62.5l-.3-3.6-10-103c-3.2-33.2-26.7-60.9-58.9-69.5L369.5 113.6c-32.2-8.6-66.4 3.6-85.8 30.8l-60.2 84.2zm48.7 57.8a32 32 0 1 1 -16.6 61.8 32 32 0 1 1 16.6-61.8zm208.1 88.9a32 32 0 1 1 61.8 16.6 32 32 0 1 1 -61.8-16.6z\"]\n};\nvar faCarCrash = faCarBurst;\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [576, 512, [128279, \"chain\"], \"f0c1\", \"M419.5 96c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2 86.4 0 156.5 70 156.5 156.5 0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1c-29.3 29.3-69.1 45.8-110.6 45.8-86.4 0-156.5-70-156.5-156.5 0-1.5 0-3 .1-4.5 .5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9c0 .9 0 1.8 0 2.6 0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zM275.2 173.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1L91.1 258.2c-17.3 17.3-27.1 40.9-27.1 65.4 0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9 0 1.3 0 2.6 0 3.9-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8c0-.8 0-1.5 0-2.3 0-33.7-18-63.3-44.8-79.6z\"]\n};\nvar faChain = faLink;\nvar faBackwardStep = {\n prefix: 'fas',\n iconName: 'backward-step',\n icon: [384, 512, [\"step-backward\"], \"f048\", \"M363 36.8c-12.9-7-28.7-6.3-41 1.8L64 208.1 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144.1 258 169.6c12.3 8.1 28 8.8 41 1.8s21-20.5 21-35.2l0-368c0-14.7-8.1-28.2-21-35.2z\"]\n};\nvar faStepBackward = faBackwardStep;\nvar faX = {\n prefix: 'fas',\n iconName: 'x',\n icon: [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"]\n};\nvar faCircleUser = {\n prefix: 'fas',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2 35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faRectangleList = {\n prefix: 'fas',\n iconName: 'rectangle-list',\n icon: [512, 512, [\"list-alt\"], \"f022\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm96 256a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm120-56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faListAlt = faRectangleList;\nvar faHand = {\n prefix: 'fas',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z\"]\n};\nvar faHandPaper = faHand;\nvar faCancer = {\n prefix: 'fas',\n iconName: 'cancer',\n icon: [512, 512, [], \"e847\", \"M408 152c57.4 0 104 46.6 104 104 0 141.4-114.6 256-256 256-54.3 0-104.8-17-146.3-45.9-14.5-10.1-18-30.1-7.9-44.6s30.1-18 44.6-7.9c31.1 21.7 68.9 34.4 109.7 34.4 67.9 0 127.5-35.3 161.7-88.5-3.2 .3-6.4 .5-9.7 .5-57.4 0-104-46.6-104-104s46.6-104 104-104zM256 0c54.3 0 104.8 17 146.3 45.9 14.5 10.1 18 30.1 7.9 44.6s-30.1 18-44.6 7.9c-31.1-21.7-68.9-34.4-109.7-34.4-67.9 0-127.5 35.2-161.7 88.4 3.2-.3 6.4-.4 9.7-.4 57.4 0 104 46.6 104 104S161.4 360 104 360 0 313.4 0 256C0 254.1 0 252.2 .1 250.4 3.1 111.6 116.5 0 256 0zM104 216a40 40 0 1 0 0 80 40 40 0 1 0 0-80zm304 0a40 40 0 1 0 0 80 40 40 0 1 0 0-80z\"]\n};\nvar faVanShuttle = {\n prefix: 'fas',\n iconName: 'van-shuttle',\n icon: [576, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 64C28.7 64 0 92.7 0 128L0 336c0 35.3 28.7 64 64 64l.4 0c4 44.9 41.7 80 87.6 80s83.6-35.1 87.6-80l104.7 0c4 44.9 41.7 80 87.6 80 46.1 0 83.9-35.4 87.7-80.5 31.7-3.8 56.3-30.8 56.3-63.5l0-101.3c0-13.8-4.5-27.3-12.8-38.4l-80-106.7C471.1 73.5 452.1 64 432 64L64 64zM504 224l-120 0 0-96 48 0 72 96zM64 224l0-96 96 0 0 96-96 0zm160 0l0-96 96 0 0 96-96 0zM392 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faShuttleVan = faVanShuttle;\nvar faStairs = {\n prefix: 'fas',\n iconName: 'stairs',\n icon: [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M0 464L0 316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5c21.4-7.6 43.8 8.3 43.8 30.9 0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0c-6.3 0-12.5-.5-18.6-1.5-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2-4.4-7.7-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4 0 20.3-16.5 36.8-36.8 36.8L48 512c-26.5 0-48-21.5-48-48zM328 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faVault = {\n prefix: 'fas',\n iconName: 'vault',\n icon: [512, 512, [], \"e2c5\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l256 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM256 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM64 256a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm384-48c0 17.8-9.7 33.3-24 41.6l0 78.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-78.4c-14.3-8.3-24-23.8-24-41.6 0-26.5 21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faClosedCaptioningSlash = {\n prefix: 'fas',\n iconName: 'closed-captioning-slash',\n icon: [576, 512, [], \"e135\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0L129.8 64 480 64c35.3 0 64 28.7 64 64l0 256c0 25.5-14.9 47.4-36.4 57.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zm345 311l0-70.2c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 22.2 48 48zm61.5 61.5c20.2-8.4 34.5-28.4 34.5-51.7 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-22.2 0 43.7 43.7zM130.3 200.1c-1.5 5-2.3 10.4-2.3 15.9l0 80c0 30.9 25.1 56 56 56l32 0c18.1 0 34.1-8.5 44.4-21.8L378.2 448 96 448c-35.3 0-64-28.7-64-64l0-256c0-7.8 1.4-15.3 4-22.2l94.3 94.3zm93.8 93.8c-.1 .7-.1 1.4-.1 2.1 0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-50.2 48.1 48.1z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4 0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5 47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4-47.1 19.9-55 39.9-55 49.8s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5 0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8c-.9 4.3-1.4 8.7-1.4 13.2 0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2-19.8-1.8-40.8-2.8-62.6-2.8s-42.8 1-62.6 2.8z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M80 160c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 192c0-17.7 14.3-32 32-32l48 0zM270.6 16C297.9 16 320 38.1 320 65.4l0 4.2c0 6.8-1.3 13.6-3.8 19.9L288 160 448 160c26.5 0 48 21.5 48 48 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 23.4-16.8 42.9-39 47.1 4.4 7.3 7 15.8 7 24.9 0 22.2-15 40.8-35.4 46.3 2.2 5.5 3.4 11.5 3.4 17.7 0 26.5-21.5 48-48 48l-87.9 0c-36.3 0-71.6-12.4-99.9-35.1L184 435.2c-15.2-12.1-24-30.5-24-50l0-186.6c0-14.9 3.5-29.6 10.1-42.9L226.3 43.3C234.7 26.6 251.8 16 270.6 16z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47 12.6-16.2 20.1-36.6 20.1-58.8 0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8 10.7 13.8 19.9 29.6 19.9 47 0 29.9-24.3 54.2-54.2 54.2L112 256c-61.9 0-112 50.1-112 112 0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM56 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L56 464z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32S96 81.7 96 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64-192 0c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32z\"]\n};\nvar faChildren = {\n prefix: 'fas',\n iconName: 'children',\n icon: [640, 512, [], \"e4e1\", \"M160.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-72 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L86.7 285.5 58 323.3c-10.7 14.1-30.8 16.8-44.8 6.2S-3.7 298.7 7 284.7L65.9 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47L314 284.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.7-37.8 31.1 93.4c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5-12.9 20.5c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.6 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10l-12.9-20.5 0 179.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7 262.6 153.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l73.4-73.4 57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLineChart = faChartLine;\nvar faSquareEnvelope = {\n prefix: 'fas',\n iconName: 'square-envelope',\n icon: [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM209.1 267.9L108.4 207.4c-7.7-4.6-12.4-12.9-12.4-21.9 0-14.1 11.4-25.5 25.5-25.5l204.9 0c14.1 0 25.5 11.4 25.5 25.5 0 9-4.7 17.3-12.4 21.9L238.9 267.9c-4.5 2.7-9.6 4.1-14.9 4.1s-10.4-1.4-14.9-4.1zM352 237.3l0 82.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-82.7 96.7 58C202.1 301 213 304 224 304s21.9-3 31.3-8.7l96.7-58z\"]\n};\nvar faEnvelopeSquare = faSquareEnvelope;\nvar faBanSmoking = {\n prefix: 'fas',\n iconName: 'ban-smoking',\n icon: [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8l79.2 79.2-50.7 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l146.7 0 92.5 92.5c-31.4 22.4-69.8 35.5-111.2 35.5-106 0-192-86-192-192 0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l18.7 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L269.3 224 144.8 99.5c31.4-22.4 69.8-35.5 111.2-35.5 106 0 192 86 192 192 0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16z\"]\n};\nvar faSmokingBan = faBanSmoking;\nvar faTruckFront = {\n prefix: 'fas',\n iconName: 'truck-front',\n icon: [448, 512, [], \"e2b7\", \"M0 112C0 67.8 35.8 32 80 32l288 0c44.2 0 80 35.8 80 80l0 256c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 112zm96 80l0 64 256 0 0-64c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32zm32 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm224 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [512, 512, [], \"f140\", \"M448 256a192 192 0 1 0 -384 0 192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faArrowLeftLong = {\n prefix: 'fas',\n iconName: 'arrow-left-long',\n icon: [576, 512, [\"long-arrow-left\"], \"f177\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 544 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-434.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"]\n};\nvar faLongArrowLeft = faArrowLeftLong;\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M0 32L0 133.5c0 17 6.7 33.3 18.7 45.3L64 224 64 384 7.8 454.3C2.7 460.6 0 468.4 0 476.5 0 496.1 15.9 512 35.5 512l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-56.2-70.3 0-160 45.3-45.3c12-12 18.7-28.3 18.7-45.3L384 32c0-17.7-14.3-32-32-32L320 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32c0-17.7-14.3-32-32-32L176 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32C96 14.3 81.7 0 64 0L32 0C14.3 0 0 14.3 0 32z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M151.4 13.2c10.2 5.8 14.5 18.4 10 29.3L138.2 98.8c-3.9 9.6-13.7 15.4-24 14.4l-20.2-2C78.7 152.9 78 198.9 91.9 241.1l22.4-2.2c10.3-1 20 4.8 24 14.4l23.2 56.3c4.5 10.9 .2 23.4-10 29.3l-2.9 1.6c-33.6 19.2-81.7 16.2-106.2-21.6-56.3-86.6-56.3-199.1 0-285.7 24.6-37.7 72.7-40.7 106.2-21.6l2.9 1.6zM224 336L193.7 17.5C192.8 8.1 200.2 0 209.6 0l324 0c21.3 0 36.6 20.3 30.8 40.8L553.1 80 440 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0zm8 48l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faArrowTurnUp = {\n prefix: 'fas',\n iconName: 'arrow-turn-up',\n icon: [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"]\n};\nvar faLevelUp = faArrowTurnUp;\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [128690], \"f206\", \"M331.7 43.3C336 36.3 343.7 32 352 32l104 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-65.6 0 72.2 148.4c10.7-2.9 21.9-4.4 33.4-4.4 70.7 0 128 57.3 128 128s-57.3 128-128 128-128-57.3-128-128c0-42 20.2-79.2 51.4-102.6l-20.4-41.9-73.5 147c-2.3 4.8-6.3 8.8-11.4 11.2-.6 .3-1.2 .5-1.8 .7-2.9 1.1-5.9 1.6-8.9 1.5L271 368c-7.9 63.1-61.7 112-127 112-70.7 0-128-57.3-128-128S73.3 224 144 224c10.8 0 21.2 1.3 31.2 3.8l28.5-56.9-11.5-26.9-40.2 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c9.6 0 18.3 5.7 22.1 14.5l14.3 33.5 123.7 0-37.7-77.5c-3.6-7.4-3.2-16.2 1.2-23.2zM228.5 228.7l-45.6 91.3 84.8 0-39.1-91.3zM305.7 287l47.5-95-88.2 0 40.7 95zm168.7 75.5l-29.7-61c-12.8 13-20.7 30.8-20.7 50.5 0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72c-2.7 0-5.5 .2-8.1 .5l29.7 61c5.8 11.9 .8 26.3-11.1 32.1s-26.3 .8-32.1-11.1zM149.2 368c-20.2 0-33.4-21.3-24.3-39.4l24.2-48.5c-1.7-.1-3.4-.2-5.1-.2-39.8 0-72 32.2-72 72s32.2 72 72 72c34.3 0 62.9-23.9 70.2-56l-65 0z\"]\n};\nvar faCircleArrowDown = {\n prefix: 'fas',\n iconName: 'circle-arrow-down',\n icon: [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM239 377l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l39 39 0-150.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 150.1 39-39c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0z\"]\n};\nvar faArrowCircleDown = faCircleArrowDown;\nvar faGear = {\n prefix: 'fas',\n iconName: 'gear',\n icon: [512, 512, [9881, \"cog\"], \"f013\", \"M195.1 9.5C198.1-5.3 211.2-16 226.4-16l59.8 0c15.2 0 28.3 10.7 31.3 25.5L332 79.5c14.1 6 27.3 13.7 39.3 22.8l67.8-22.5c14.4-4.8 30.2 1.2 37.8 14.4l29.9 51.8c7.6 13.2 4.9 29.8-6.5 39.9L447 233.3c.9 7.4 1.3 15 1.3 22.7s-.5 15.3-1.3 22.7l53.4 47.5c11.4 10.1 14 26.8 6.5 39.9l-29.9 51.8c-7.6 13.1-23.4 19.2-37.8 14.4l-67.8-22.5c-12.1 9.1-25.3 16.7-39.3 22.8l-14.4 69.9c-3.1 14.9-16.2 25.5-31.3 25.5l-59.8 0c-15.2 0-28.3-10.7-31.3-25.5l-14.4-69.9c-14.1-6-27.2-13.7-39.3-22.8L73.5 432.3c-14.4 4.8-30.2-1.2-37.8-14.4L5.8 366.1c-7.6-13.2-4.9-29.8 6.5-39.9l53.4-47.5c-.9-7.4-1.3-15-1.3-22.7s.5-15.3 1.3-22.7L12.3 185.8c-11.4-10.1-14-26.8-6.5-39.9L35.7 94.1c7.6-13.2 23.4-19.2 37.8-14.4l67.8 22.5c12.1-9.1 25.3-16.7 39.3-22.8L195.1 9.5zM256.3 336a80 80 0 1 0 -.6-160 80 80 0 1 0 .6 160z\"]\n};\nvar faCog = faGear;\nvar faMarsAndVenusBurst = {\n prefix: 'fas',\n iconName: 'mars-and-venus-burst',\n icon: [640, 512, [], \"e523\", \"M464-32c0 17.7 14.3 32 32 32l34.7 0-63 63c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-37-11.4-71.4-31-99.8l63-63 0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112c0-17.7-14.3-32-32-32L496-64c-17.7 0-32 14.3-32 32zM368 96a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM190.9-21.9C188.4-28 182.6-32 176-32s-12.4 4-14.9 10.1l-29.4 74-76.2-23.1c-6.3-1.9-13.1 .2-17.2 5.3S33.8 46.5 37 52.2l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2-5.6 79.4c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L152.1 268c-5.3-19.1-8.1-39.2-8.1-60 0-65.4 28-124.2 72.6-165.1L190.9-21.9z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5 23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6 6.6 0 13.1-1.5 19.1-4.5 9.3-4.7 16.4-8.2 21.2-10.6L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4l-12.9-6.4-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-64c0-23.7 12.9-44.4 32-55.4 9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48 8.8 0 16 7.2 16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1 0 0c0 123.7-100.3 224-224 224l-160.6 0C132 480 32 380 32 256.6l0-39.8c-10.1-14.6-16-32.3-16-51.4l0-21.4 0-1.4C6.7 139.3 0 130.5 0 120 0 106.7 10.7 96 24 96l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24 0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3 12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3-5.1 .9-10.3 1.3-15.6 1.3-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nvar faCircleChevronLeft = {\n prefix: 'fas',\n iconName: 'circle-chevron-left',\n icon: [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"]\n};\nvar faChevronCircleLeft = faCircleChevronLeft;\nvar faCircleQuestion = {\n prefix: 'fas',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-336c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faWalkieTalkie = {\n prefix: 'fas',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", \"M88-32c13.3 0 24 10.7 24 24l0 72 48 0c0-17.7 14.3-32 32-32s32 14.3 32 32l32 0c0-17.7 14.3-32 32-32s32 14.3 32 32l16 0c26.5 0 48 21.5 48 48l0 160.9c0 9.9-2.3 19.7-6.8 28.6l-20.2 40.4c-3.3 6.7-5.1 14-5.1 21.5l0 84.7c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-84.7c0-7.5-1.7-14.8-5.1-21.5L6.8 301.5C2.3 292.6 0 282.8 0 272.9L0 112C0 85.5 21.5 64 48 64l16 0 0-72c0-13.3 10.7-24 24-24zm32 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faUserGroup = {\n prefix: 'fas',\n iconName: 'user-group',\n icon: [576, 512, [128101, \"user-friends\"], \"f500\", \"M64 128a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM0 464c0-97.2 78.8-176 176-176s176 78.8 176 176l0 6c0 23.2-18.8 42-42 42L42 512c-23.2 0-42-18.8-42-42l0-6zM432 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240c79.5 0 144 64.5 144 144l0 22.4c0 23-18.6 41.6-41.6 41.6l-144.8 0c6.6-12.5 10.4-26.8 10.4-42l0-6c0-51.5-17.4-98.9-46.5-136.7 22.6-14.7 49.6-23.3 78.5-23.3z\"]\n};\nvar faUserFriends = faUserGroup;\nvar faHouseChimney = {\n prefix: 'fas',\n iconName: 'house-chimney',\n icon: [512, 512, [63499, \"home-lg\"], \"e3af\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM240 320c-26.5 0-48 21.5-48 48l0 96 128 0 0-96c0-26.5-21.5-48-48-48l-32 0z\"]\n};\nvar faHomeLg = faHouseChimney;\nvar faRightFromBracket = {\n prefix: 'fas',\n iconName: 'right-from-bracket',\n icon: [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M505 273c9.4-9.4 9.4-24.6 0-33.9L361 95c-6.9-6.9-17.2-8.9-26.2-5.2S320 102.3 320 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L505 273zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"]\n};\nvar faSignOutAlt = faRightFromBracket;\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [576, 512, [], \"e069\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-183.4-183.4 7.1-7.7 127.3 0c30.9 0 56-25.1 56-56s-25.1-56-56-56L392.7 200 233.5 26.4C227.5 19.8 218.9 16 209.9 16l-43.7 0c-10.9 0-18.6 10.7-15.2 21.1L175.1 109.2 41-24.9zM130.2 200l-24.6 0-52.8-66c-3-3.8-7.6-6-12.5-6l-19.8 0c-10.4 0-18 9.8-15.5 19.9L32 256 5 364.1C2.4 374.2 10.1 384 20.5 384l19.8 0c4.9 0 9.5-2.2 12.5-6l52.8-66 99.7 0-54.3 162.9c-3.5 10.4 4.3 21.1 15.2 21.1l43.7 0c9 0 17.5-3.8 23.6-10.4L320.7 390.5 130.2 200z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm6.8 79.6l-32 96C66.6 508.2 53 515 40.4 510.8S21 493 25.2 480.4l32-96C61.4 371.8 75 365 87.6 369.2S107 387 102.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S141 493 145.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S227 387 222.8 399.6zm112 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S253 493 257.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S339 387 334.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S373 493 377.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S459 387 454.8 399.6z\"]\n};\nvar faPersonFalling = {\n prefix: 'fas',\n iconName: 'person-falling',\n icon: [512, 512, [], \"e546\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 5.4c0 45-23.6 86.6-62.1 109.8l-4.6 2.8C131.4 184.7 96 247.1 96 314.6L96 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-69.4c0-16.7 3.3-33 9.4-48L359.2 500.2c11.1 13.7 31.3 15.8 45 4.7s15.8-31.3 4.7-45L295.2 320 400 320 438.4 371.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C437.3 263.1 423.1 256 408 256l-89 0-62.9-75.5c40.3-36 63.9-87.9 63.9-143.1l0-5.4zM104 144a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faTurnDown = {\n prefix: 'fas',\n iconName: 'turn-down',\n icon: [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S332.9 320 320 320l-64 0 0-160C256 71.6 184.4 0 96 0L32 0C14.3 0 0 14.3 0 32L0 96c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 160-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"]\n};\nvar faLevelDownAlt = faTurnDown;\nvar faUpRightAndDownLeftFromCenter = {\n prefix: 'fas',\n iconName: 'up-right-and-down-left-from-center',\n icon: [512, 512, [\"expand-alt\"], \"f424\", \"M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2S34.1 320.2 41 327l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S177.7 512 168 512z\"]\n};\nvar faExpandAlt = faUpRightAndDownLeftFromCenter;\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M256.1 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.4 304l59.4 0c6.7 0 13.2 .4 19.7 1.1-.9 4.9-1.4 9.9-1.4 15l0 92.1c0 25.5 10.1 49.9 28.1 67.9l31.9 31.9-286.3 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zM352.1 412.2l0-92.1c0-17.7 14.3-32 32-32l92.1 0c12.7 0 24.9 5.1 33.9 14.1l96 96c18.7 18.7 18.7 49.1 0 67.9l-76.1 76.1c-18.7 18.7-49.1 18.7-67.9 0l-96-96c-9-9-14.1-21.2-14.1-33.9zm104-44.2a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.2c-19.2 5.4-34.7 20.4-40.4 40.3l-6.5 22.7-22.7 6.5c-25.2 7.2-42.5 30.2-42.5 56.4 0 22.1 12.4 42 31.4 51.9-27.5 17.8-60.2 28.1-95.4 28.1l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6l-7.3 25.4-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7l25.4 7.3 7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6l7.3-25.4 25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7l-25.4-7.3-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456 570.2 504.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456 487.7 442.2c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408 549.8 359.7c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"]\n};\nvar faArrowsToDot = {\n prefix: 'fas',\n iconName: 'arrows-to-dot',\n icon: [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9S179.1 64 192 64l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9S332.9 448 320 448l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S64 332.9 64 320l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9S448 179.1 448 192l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFaceSadCry = {\n prefix: 'fas',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 171.7C44.4 421.6 0 344 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 88-44.4 165.6-112 211.7L400 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 197.4zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faDongSign = {\n prefix: 'fas',\n iconName: 'dong-sign',\n icon: [384, 512, [], \"e169\", \"M288-16c-17.7 0-32 14.3-32 32l0 32-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 72.2c-22.9-15.3-50.4-24.2-80-24.2-79.5 0-144 64.5-144 144S96.5 432 176 432c30 0 57.8-9.1 80.8-24.8 3.3 14.2 16 24.8 31.2 24.8 17.7 0 32-14.3 32-32l0-304 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-32c0-17.7-14.3-32-32-32zM96 288a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464z\"]\n};\nvar faPeopleLine = {\n prefix: 'fas',\n iconName: 'people-line',\n icon: [576, 512, [], \"e534\", \"M288 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 44.1-128 0 0-44.1C204.7 359 192 337 192 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zm16 104l0-27.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 40.6-112 0zM64 375.4C44.9 364.4 32 343.7 32 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1l0 32c0 32.5 12.1 62.1 32 84.7l0 27.3-112 0 0-40.6zM128 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm320 0a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM24 464l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSquareRss = {\n prefix: 'fas',\n iconName: 'square-rss',\n icon: [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24 137 0 248 111 248 248 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24 83.9 0 152 68.1 152 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faRssSquare = faSquareRss;\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm24 264c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faChartDiagram = {\n prefix: 'fas',\n iconName: 'chart-diagram',\n icon: [512, 512, [], \"e695\", \"M80 32C53.5 32 32 53.5 32 80s21.5 48 48 48l152 0 0 40-48 48-72 0c-39.8 0-72 32.2-72 72l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-13.3 10.7-24 24-24l72 0 48 48 0 40-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-40 48-48 72 0c13.3 0 24 10.7 24 24l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-39.8-32.2-72-72-72l-72 0-48-48 0-40 152 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L80 32z\"]\n};\nvar faFaceTired = {\n prefix: 'fas',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4 6.2 11.7 10.3 24.4 10.3 35.9 0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8S128 405.2 128 400c0-11.6 4.2-24.2 10.3-35.9 6.3-12 15.3-24.3 26.4-35.4zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faTired = faFaceTired;\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32 0 13.2 4 25.4 10.8 35.6-24.9 8.7-42.8 32.5-42.8 60.4 0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [384, 512, [8593], \"f062\", \"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 105.4 105.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"]\n};\nvar faCubesStacked = {\n prefix: 'fas',\n iconName: 'cubes-stacked',\n icon: [512, 512, [], \"e4e6\", \"M192 32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64zm32 352l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM320 192l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm-182.6-3.9c12.5-12.5 32.8-12.5 45.3 0l45.3 45.3c12.5 12.5 12.5 32.8 0 45.3l-45.3 45.3c-12.5 12.5-32.8 12.5-45.3 0L92.1 278.6c-12.5-12.5-12.5-32.8 0-45.3l45.3-45.3zM32 384l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"]\n};\nvar faChildCombatant = {\n prefix: 'fas',\n iconName: 'child-combatant',\n icon: [576, 512, [\"child-rifle\"], \"e4e0\", \"M176.5 128a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-16 352l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192.2 20.9 33.2c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-39.9-63.3C266.8 184 223.3 160 176.5 160S86.2 184 61.3 223.6L21.4 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10l20.9-33.2 0 192.2c0 17.7 14.3 32 32 32s32-14.3 32-32zM448.5 0l-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7l0-116.3c0-8.8-7.2-16-16-16z\"]\n};\nvar faChildRifle = faChildCombatant;\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M200 293.9L200 464c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 48C64 21.5 85.5 0 112 0l3.5 0c.3 0 .6 0 1 0 .6 0 1.2 0 1.8 0 18.8 0 34.1 9.7 44.1 18.8 9.3 8.4 28.5 21.2 61.7 21.2s52.4-12.8 61.7-21.2c10-9.1 25.3-18.8 44.1-18.8 .6 0 1.2 0 1.8 0 .3 0 .6 0 1 0L336 0c26.5 0 48 21.5 48 48l0 97.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-104 0c-26.5 0-48-21.5-48-48l0-170.1c0-3.9 .5-7.8 1.4-11.6L303.6 65.4C285.9 77.2 259.8 88 224 88s-61.9-10.8-79.6-22.6l54.2 216.8c1 3.8 1.4 7.7 1.4 11.6zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305 111.5 320.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288 128.5 272.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 40c0 8.8 7.2 16 16 16l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faMartiniGlassEmpty = {\n prefix: 'fas',\n iconName: 'martini-glass-empty',\n icon: [512, 512, [\"glass-martini\"], \"f000\", \"M32 32C19.1 32 7.4 39.8 2.4 51.8S.2 77.5 9.4 86.6l214.6 214.6 0 146.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-146.7 214.6-214.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 32 480 32L32 32zM256 242.7L109.3 96 402.7 96 256 242.7z\"]\n};\nvar faGlassMartini = faMartiniGlassEmpty;\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [448, 512, [129522], \"f076\", \"M0 176L0 288C0 411.7 100.3 512 224 512S448 411.7 448 288l0-112-128 0 0 112c0 53-43 96-96 96s-96-43-96-96l0-112-128 0zm0-48l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z\"]\n};\nvar faRoadBarrier = {\n prefix: 'fas',\n iconName: 'road-barrier',\n icon: [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 266.3 149.2 96 64 96 64 64c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3zM362.8 288l74.3 0 5.4-10.7 90.6-181.3-74.3 0-5.4 10.7-90.6 181.3zM202.8 96l-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7-85.2 170.3z\"]\n};\nvar faCompassDrafting = {\n prefix: 'fas',\n iconName: 'compass-drafting',\n icon: [512, 512, [\"drafting-compass\"], \"f568\", \"M99.3 256.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2 0-53 43-96 96-96s96 43 96 96c0 14.3-3.1 27.9-8.8 40.2l44.4 76.7c-23.1 26-53.7 45.1-88.4 53.8L256 191.9 187.9 309.5c21.5 6.8 44.3 10.5 68.1 10.5 70.7 0 133.8-32.7 174.9-84 11.1-13.8 31.2-16 45-5s16 31.2 5 45c-52.7 65.8-133.9 108-224.8 108-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7c-12.8-11.2-24.6-23.5-35.3-36.8-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1zM381.1 407.9c32.5-13 62.4-31 88.9-52.9l35.6 61.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9l-32.3-55.8zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faDraftingCompass = faCompassDrafting;\nvar faSquarePersonConfined = {\n prefix: 'fas',\n iconName: 'square-person-confined',\n icon: [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9-17.5 0-34.3-6.9-46.6-19.3l-54.7-54.7-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9l41.4 41.4 0-58.7z\"]\n};\nvar faPlateWheat = {\n prefix: 'fas',\n iconName: 'plate-wheat',\n icon: [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S42.7 64 56 64zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6-6.3 50.2-44.4 89.4-92.6 98.4l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z\"]\n};\nvar faSignHanging = {\n prefix: 'fas',\n iconName: 'sign-hanging',\n icon: [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zM208 176l240 0c17.7 0 32 14.3 32 32l0 144c0 17.7-14.3 32-32 32l-240 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32z\"]\n};\nvar faSign = faSignHanging;\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [\"battery-car\"], \"f5df\", \"M80 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l16 0zM392 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM64 240c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 216c-13.3 0-24 10.7-24 24z\"]\n};\nvar faBatteryCar = faCarBattery;\nvar faShirt = {\n prefix: 'fas',\n iconName: 'shirt',\n icon: [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M320.2 112c44.2 0 80-35.8 80-80l53.5 0c17 0 33.3 6.7 45.3 18.7L617.6 169.4c12.5 12.5 12.5 32.8 0 45.3l-50.7 50.7c-12.5 12.5-32.8 12.5-45.3 0l-41.4-41.4 0 224c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-224-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0L22.9 214.6c-12.5-12.5-12.5-32.8 0-45.3L141.5 50.7c12-12 28.3-18.7 45.3-18.7l53.5 0c0 44.2 35.8 80 80 80z\"]\n};\nvar faTShirt = faShirt;\nvar faTshirt = faShirt;\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [182], \"f1dd\", \"M160 0L416 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-416-48 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160-48 0C71.6 320 0 248.4 0 160S71.6 0 160 0z\"]\n};\nvar faEnvelopesBulk = {\n prefix: 'fas',\n iconName: 'envelopes-bulk',\n icon: [576, 512, [\"mail-bulk\"], \"f674\", \"M112 0C85.5 0 64 21.5 64 48l0 160 80 0 0-32c0-53 43-96 96-96l208 0 0-32c0-26.5-21.5-48-48-48L112 0zM240 128c-26.5 0-48 21.5-48 48l0 32 80 0c53 0 96 43 96 96l0 112 160 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-288 0zm200 64l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zM48 256c-26.5 0-48 21.5-48 48l0 10.4 156.6 86.2c1.1 .6 2.2 .9 3.4 .9s2.4-.3 3.4-.9L320 314.4 320 304c0-26.5-21.5-48-48-48L48 256zM320 369.2L186.6 442.6c-8.1 4.5-17.3 6.8-26.6 6.8s-18.4-2.4-26.6-6.8L0 369.2 0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-94.8z\"]\n};\nvar faMailBulk = faEnvelopesBulk;\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6-11 11-18 24.6-21.4 39.6-3.7 16.6-19.1 30.7-36.1 31.6-25.6 1.3-49.3 10.7-67.3 28.6-44.8 44.8-36.4 125.8 18.7 180.9S183.6 528 228.4 483.2c17.9-17.9 27.4-41.7 28.6-67.3 .9-17 15-32.3 31.6-36.1 15-3.4 28.6-10.5 39.6-21.4 31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [129523], \"f0f2\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 424 224 0 0-424c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM416 96l0 384 32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0zM96 480l0-384-32 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0z\"]\n};\nvar faCircleUp = {\n prefix: 'fas',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3l104 104c4.6 4.6 5.9 11.5 3.5 17.4S366.5 256 360 256l-56 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-56 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l104-104c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faF = {\n prefix: 'fas',\n iconName: 'f',\n icon: [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faXmarksLines = {\n prefix: 'fas',\n iconName: 'xmarks-lines',\n icon: [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faEarthOceania = {\n prefix: 'fas',\n iconName: 'earth-oceania',\n icon: [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 150.6c0-12.5 10.1-22.6 22.6-22.6l41.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16zM432 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM411.3 379.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM224 432c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-96-80c-17.7 0-32-14.3-32-32l0-18.7c0-8.5 3.4-16.6 9.4-22.6l48-48c4.2-4.2 10-6.6 16-6.6l6.6 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16 7.2-16 16-16l6.6 0c6 0 11.8 2.4 16 6.6l48 48c6 6 9.4 14.1 9.4 22.6l0 50.7c0 17.7-14.3 32-32 32l-50.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L128 352z\"]\n};\nvar faGlobeOceania = faEarthOceania;\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [576, 512, [], \"f4b3\", \"M41-25C31.6-34.3 16.4-34.3 7-25S-2.3-.4 7 9L535 537c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.6-96.6c44.4-43.2 71.6-101.8 71.6-166.5 0-132.5-114.6-240-256-240-63 0-120.8 21.4-165.4 56.8L41-25zm19.4 155C42.2 163 32 200.3 32 239.9 32 294.2 51.2 344.2 83.6 384.4L34.8 476.7c-4.8 9-3.3 20 3.6 27.5S56.1 514 65.5 510l118.4-50.7c31.8 13.3 67.1 20.7 104.1 20.7 36.4 0 70.9-7.1 102.3-19.9L60.3 130.1z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [9654], \"f04b\", \"M91.2 36.9c-12.4-6.8-27.4-6.5-39.6 .7S32 57.9 32 72l0 368c0 14.1 7.5 27.2 19.6 34.4s27.2 7.5 39.6 .7l336-184c12.8-7 20.8-20.5 20.8-35.1s-8-28.1-20.8-35.1l-336-184z\"]\n};\nvar faVialCircleCheck = {\n prefix: 'fas',\n iconName: 'vial-circle-check',\n icon: [512, 512, [], \"e596\", \"M32 32C32 14.3 46.3 0 64 0L288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 161.4c-66.1 30.3-112 97.1-112 174.6 0 39.7 12 76.6 32.7 107.2-10.3 3.1-21.3 4.8-32.7 4.8-61.9 0-112-50.1-112-112L64 64C46.3 64 32 49.7 32 32zm96 32l0 128 96 0 0-128-96 0zm96 336a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faBridgeCircleCheck = {\n prefix: 'fas',\n iconName: 'bridge-circle-check',\n icon: [576, 512, [], \"e4c9\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faCediSign = {\n prefix: 'fas',\n iconName: 'cedi-sign',\n icon: [384, 512, [], \"e0df\", \"M232 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 26.5C88.8 73.9 16 156.4 16 256S88.8 438.1 184 453.5l0 26.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24.6c46.8-3.7 89.1-23.6 121.3-53.9 12.9-12.1 13.4-32.4 1.3-45.2s-32.4-13.4-45.2-1.3c-20.7 19.6-47.6 32.7-77.3 36.2l0-270.1c29.8 3.5 56.6 16.6 77.3 36.2 12.9 12.1 33.1 11.5 45.2-1.3s11.5-33.1-1.3-45.2C321.1 80.2 278.8 60.3 232 56.6L232 32zm-48 91.8l0 264.4C124.3 373.8 80 320.1 80 256s44.3-117.8 104-132.2z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [512, 512, [129513], \"f12e\", \"M224 0c35.3 0 64 21.5 64 48 0 10.4-4.4 20-12 27.9-6.6 6.9-12 15.3-12 24.9 0 15 12.2 27.2 27.2 27.2l44.8 0c26.5 0 48 21.5 48 48l0 44.8c0 15 12.2 27.2 27.2 27.2 9.5 0 18-5.4 24.9-12 7.9-7.5 17.5-12 27.9-12 26.5 0 48 28.7 48 64s-21.5 64-48 64c-10.4 0-20.1-4.4-27.9-12-6.9-6.6-15.3-12-24.9-12-15 0-27.2 12.2-27.2 27.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2 0-9.2 5.8-17.3 13.2-22.8 11.6-8.7 18.8-20.7 18.8-34 0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34 7.4 5.5 13.2 13.5 13.2 22.8 0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2c0-12.8 10.4-23.2 23.2-23.2 9.2 0 17.3 5.8 22.8 13.2 8.7 11.6 20.7 18.8 34 18.8 26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8-5.5 7.4-13.5 13.2-22.8 13.2-12.8 0-23.2-10.4-23.2-23.2L0 176c0-26.5 21.5-48 48-48l108.8 0c15 0 27.2-12.2 27.2-27.2 0-9.5-5.4-18-12-24.9-7.5-7.9-12-17.5-12-27.9 0-26.5 28.7-48 64-48z\"]\n};\nvar faHelmetUn = {\n prefix: 'fas',\n iconName: 'helmet-un',\n icon: [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0 107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384l127.3 0 128.6 121.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5 0-174.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7 32.4-55.5 45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faGlassWater = {\n prefix: 'fas',\n iconName: 'glass-water',\n icon: [384, 512, [], \"e4f4\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5l-6.6-92.5 251.3 0-6.6 92.5-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0-20.9-10.4-45.5-10.4-66.4 0-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"]\n};\nvar faHeartCircleBolt = {\n prefix: 'fas',\n iconName: 'heart-circle-bolt',\n icon: [576, 512, [], \"e4fc\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S369.2 416 376 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S494.8 384 488 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [320, 512, [], \"e06b\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zM224 344c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9 3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C187 263.1 224 311.5 224 344z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32 0 25.3 19.5 46 44.3 47.9-7.7 8.5-12.3 19.8-12.3 32.1 0 26.5 21.5 48 48 48l96 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3-22.8-22.8-53.6-35.6-85.8-35.6L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4l-67.1-21.4 0 .1-204-64.1C62.9 59.2 40.5 70.9 33.9 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [\"dolly-box\"], \"f472\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l72.9 0 92.1 276.2c-22.5 17.6-37 45-37 75.8 0 53 43 96 96 96 52.4 0 95.1-42 96-94.3l202.1-67.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2L331.8 357c-17.2-22.1-43.9-36.5-74-37L165.7 43.8C156.9 17.6 132.5 0 104.9 0L32 0zM208 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM280.5 89.3c-25.2 8.2-39 35.3-30.8 60.5l39.6 121.7c8.2 25.2 35.3 39 60.5 30.8l121.7-39.6c25.2-8.2 39-35.3 30.8-60.5L462.8 80.5c-8.2-25.2-35.3-39-60.5-30.8L280.5 89.3z\"]\n};\nvar faDollyBox = faDolly;\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [512, 512, [128206], \"f0c6\", \"M224.6 12.8c56.2-56.2 147.4-56.2 203.6 0s56.2 147.4 0 203.6l-164 164c-34.4 34.4-90.1 34.4-124.5 0s-34.4-90.1 0-124.5L292.5 103.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L185 301.3c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l164-164c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-164 164c-53.1 53.1-53.1 139.2 0 192.3s139.2 53.1 192.3 0L428.3 284.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L343.4 459.6c-78.1 78.1-204.7 78.1-282.8 0s-78.1-204.7 0-282.8l164-164z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3 1-2.8 3.8-4.7 6.8-4.7 1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1c1.4-1.3 3.2-2.1 5.2-2.1 3 0 5.8 1.8 6.8 4.7 2.4 6.5 6.2 18.4 6.2 27.3 0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8l219.2 0 32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7 0 190.6 4.1 178.9 11.7 169.4L87.6 74.6C78.1 67.4 64 53.2 64 32zM544 352l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-128 352 0zM256 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm248-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM368 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faSquareArrowUpRight = {\n prefix: 'fas',\n iconName: 'square-arrow-up-right',\n icon: [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM272 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l54.1 0-103 103c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l103-103 0 54.1z\"]\n};\nvar faExternalLinkSquare = faSquareArrowUpRight;\nvar faFerry = {\n prefix: 'fas',\n iconName: 'ferry',\n icon: [640, 512, [], \"e4ea\", \"M224 32c0-17.7 14.3-32 32-32L384 0c17.7 0 32 14.3 32 32l0 32 48 0c44.2 0 80 35.8 80 80l0 128-.1 0c.1 .7 .1 1.3 .1 2 0 30.2-7.6 59.8-22 86.3l-12.7 23.3-.6 1c-22.3-11.3-46.5-16.8-70.8-16.7-32.5 .2-64.9 10.7-92.4 31.4-22.1 16.6-29.1 16.6-51.2 0-28.1-21.1-61.3-31.6-94.4-31.4-23.6 .2-47.1 5.7-68.7 16.7l-.6-1-12.7-23.3c-14.4-26.5-22-56.2-22-86.3 0-.7 0-1.4 .1-2l-.1 0 0-128c0-44.2 35.8-80 80-80l48 0 0-32zM160 256l320 0 0-112c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16l0 112zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMosquito = {\n prefix: 'fas',\n iconName: 'mosquito',\n icon: [576, 512, [], \"e52b\", \"M178.5 495.2c-7.5 9.6-21 12.1-31.3 5.3S133.5 480 138.9 469l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.8-38.3-2.4-2.4c-5.3-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.3-2.1c-5.8-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8c0-11.8 6.5-22.1 16-27.7l0-60.5 .3-3.3c1.5-7.3 8-12.7 15.7-12.7s14.2 5.5 15.7 12.7l.3 3.2 0 60.5c9.6 5.5 16 15.8 16 27.7l0 28.9 53.4-45.8-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 46.6-37.8 84.4-84.4 84.4l-8.1 0c-22.8 0-44.9-8.5-61.9-23.8l-66.1-59.5 39.2 52.2c2.4 3.2 4 7 4.6 10.9l.3 4 0 41 36.2 58 1.2 2.1c5.4 11 2 24.7-8.3 31.5s-23.8 4.4-31.3-5.3l-1.4-2-40-64-1.6-3.1c-1.4-3.1-2.1-6.6-2.1-10.1l0-39.8-32.4-43.1 0 74.7c0 17.7-14.3 32-32 32-17.7 0-32-14.3-32-32l0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2z\"]\n};\nvar faBuildingCircleArrowRight = {\n prefix: 'fas',\n iconName: 'building-circle-arrow-right',\n icon: [576, 512, [], \"e4d1\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 144.7c-35.7 2.9-68.5 15.6-96 35.4l0-4c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l4 0c-13.8 19.2-24.1 41-30.1 64.5-1.9-.4-3.9-.5-5.9-.5l-32 0c-17.7 0-32 14.3-32 32l0 80 74.9 0c6.1 17.3 14.6 33.4 25.1 48L96 512c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6l28.7 28.7-89.4 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"]\n};\nvar faLeftRight = {\n prefix: 'fas',\n iconName: 'left-right',\n icon: [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M502.6 406.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 492.9 352 480l0-64-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zM9.4 150.6c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 19.1 160 32l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96z\"]\n};\nvar faArrowsAltH = faLeftRight;\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M296 40c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-15.6-15.6-40.9-15.6-56.6 0s-15.6 40.9 0 56.6c31.2 31.2 9.1 84.5-35 84.5-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-44.1 53.3-66.1 84.5-35 15.6 15.6 40.9 15.6 56.6 0s15.6-40.9 0-56.6c-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0C349.3 106.1 296 84.1 296 40zM160 224a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5L210.5 179.8 63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8l-147.2-12.3 57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4-15.5 13.2-26.4 31.6-26.4 54.6 0 46.9 14.3 84.1 37 112.5 14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8S85.7 512 96 512l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8 22.7-28.4 37-65.5 37-112.5 0-23.1-10.9-41.5-26.4-54.6-1.8-1.5-3.7-3-5.6-4.4l0-148.9 8 0c13.3 0 24-10.7 24-24S437.3 0 424 0L24 0zM96 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zM224 288c-88.4 0-160-14.3-160-32s71.6-32 160-32 160 14.3 160 32-71.6 32-160 32z\"]\n};\nvar faSingleQuoteLeft = {\n prefix: 'fas',\n iconName: 'single-quote-left',\n icon: [192, 512, [], \"e81b\", \"M128 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216C0 149.7 53.7 96 120 96l8 0z\"]\n};\nvar faMoneyBills = {\n prefix: 'fas',\n iconName: 'money-bills',\n icon: [576, 512, [], \"e1f3\", \"M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zm176 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM160 152l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 112c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM504 159.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM512 264l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 416c0 35.3 28.7 64 64 64l392 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 432c-8.8 0-16-7.2-16-16l0-264z\"]\n};\nvar faTabletButton = {\n prefix: 'fas',\n iconName: 'tablet-button',\n icon: [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faRectangleXmark = {\n prefix: 'fas',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [576, 512, [128295], \"f0ad\", \"M509.4 98.6c7.6-7.6 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 88.4-71.6 160-160 160-17.5 0-34.4-2.8-50.2-8L146.9 498.9c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8L232 210.2c-5.2-15.8-8-32.6-8-50.2 0-88.4 71.6-160 160-160 20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1l-88.7 88.7c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l88.7-88.7z\"]\n};\nvar faTrashCan = {\n prefix: 'fas',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M136.7 5.9C141.1-7.2 153.3-16 167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm88 64c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faTableCells = {\n prefix: 'fas',\n iconName: 'table-cells',\n icon: [448, 512, [\"th\"], \"f00a\", \"M384 96l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zM256 288l-64 0 0-64 64 0 0 64zm-64 64l64 0 0 64-64 0 0-64zm-64-64l-64 0 0-64 64 0 0 64zM64 352l64 0 0 64-64 0 0-64zm0-192l0-64 64 0 0 64-64 0zm128 0l0-64 64 0 0 64-64 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faTh = faTableCells;\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [384, 512, [127895], \"f4d6\", \"M235.1 0c33.4 0 64.5 17.4 81.9 45.9 1.2 2 13 21.3 35.3 57.8 21.1 34.5 18.3 78.5-7 110L278.3 297.7 364.5 406c5.5 6.9 4.4 16.9-2.5 22.5l-80 64c-6.9 5.5-17 4.4-22.5-2.5L38.6 213.8C13.3 182.3 10.5 138.3 31.6 103.8 54 67.2 65.7 47.9 67 45.9 84.4 17.4 115.4 0 148.9 0l86.3 0zM192 189.2l48.6-61.2-97.3 0 48.6 61.2zM75 336.2l86.2 107.8-36.8 46c-5.5 6.9-15.6 8-22.5 2.5l-80-64c-6.9-5.5-8-15.6-2.5-22.5L75 336.2z\"]\n};\nvar faLandmarkFlag = {\n prefix: 'fas',\n iconName: 'landmark-flag',\n icon: [512, 512, [], \"e51c\", \"M352-32L240-32c-8.8 0-16 7.2-16 16l0 144-176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 224-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-224 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0 0-64 80 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm48 224l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0z\"]\n};\nvar faUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'up-down-left-right',\n icon: [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S179.1 128 192 128l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S128 332.9 128 320l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S332.9 384 320 384l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S384 179.1 384 192l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faArrowsAlt = faUpDownLeftRight;\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [128663], \"f5e4\", \"M147 106.7l-29.8 85.3 122.9 0 0-96-77.9 0c-6.8 0-12.9 4.3-15.1 10.7zM48.6 193.9L86.5 85.6C97.8 53.5 128.1 32 162.1 32L360 32c25.2 0 48.9 11.9 64 32l96.2 128.3C587.1 196.5 640 252.1 640 320l0 16c0 35.3-28.7 64-64 64l-16.4 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-144.7 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-.4 0c-35.3 0-64-28.7-64-64l0-80c0-30.1 20.7-55.3 48.6-62.1zM440 192l-67.2-89.6c-3-4-7.8-6.4-12.8-6.4l-72 0 0 96 152 0zM152 432a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm360-40a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"]\n};\nvar faTrashArrowUp = {\n prefix: 'fas',\n iconName: 'trash-arrow-up',\n icon: [448, 512, [\"trash-restore\"], \"f829\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0-21.1 323.1C393.3 492.4 372.3 512 347 512L101 512c-25.3 0-46.3-19.6-47.9-44.9L32 144zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTrashRestore = faTrashArrowUp;\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3S491.8 142.1 458 98.7c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256S20.2 369.9 54 413.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c28.1 28.1 73.7 28.1 101.8 0 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-46.9 46.9-122.8 46.9-169.7 0s-46.9-122.8 0-169.7 122.8-46.9 169.7 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-28.1-28.1-73.7-28.1-101.8 0s-28.1 73.7 0 101.8z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 192c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 22.5 0 58.4 55-33.4 31.6c-9.6 9.1-10.1 24.3-.9 33.9s24.3 10.1 33.9 .9l35.4-33.5 35.6 33.5c9.7 9.1 24.8 8.6 33.9-1s8.6-24.8-1-33.9l-33.6-31.6 33.6-31.8c9.6-9.1 10.1-24.3 .9-33.9s-24.3-10.1-33.9-.9l-35.7 33.7-40.9-38.5c12.9-11.7 21.1-28.6 21.1-47.5 0-35.3-28.7-64-64-64l-56 0zm32 80l-8 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-24 0z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [576, 512, [], \"f12d\", \"M178.5 416l123 0 65.3-65.3-173.5-173.5-126.7 126.7 112 112zM224 480l-45.5 0c-17 0-33.3-6.7-45.3-18.7L17 345C6.1 334.1 0 319.4 0 304s6.1-30.1 17-41L263 17C273.9 6.1 288.6 0 304 0s30.1 6.1 41 17L527 199c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41l-135 135 120 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM288 437l0 11-192 0 0-11c0-25.5 10.1-49.9 28.1-67.9l67.9-67.9 67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"]\n};\nvar faHourglass1 = faHourglassStart;\nvar faCircleLeft = {\n prefix: 'fas',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7l104-104c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 56 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 56c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-104-104c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faCruzeiroSign = {\n prefix: 'fas',\n iconName: 'cruzeiro-sign',\n icon: [448, 512, [], \"e152\", \"M240 96c-88.4 0-160 71.6-160 160 0 71.6 47.1 132.3 112 152.7L192 256c0-13.3 10.7-24 24-24 12.8 0 23.3 10.1 24 22.7 15.5-9.5 33.5-14.7 52.3-14.7l11.8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11.8 0c-18.8 0-36.1 10-45.4 26.3-4.5 7.9-6.9 16.8-6.9 25.9l0 75.8c42.5 0 81.1-16.6 109.8-43.6 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C353.7 456.8 299.5 480 240 480 116.3 480 16 379.7 16 256S116.3 32 240 32c59.5 0 113.7 23.2 153.7 61.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3C321.1 112.6 282.5 96 240 96z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [576, 512, [128684], \"f48d\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM320 448l96 0 0-32-96 0 0 32zM0 416c0-35.3 28.7-64 64-64l384 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm576-40l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faSquarePollVertical = {\n prefix: 'fas',\n iconName: 'square-poll-vertical',\n icon: [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 192c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zm184 88c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48zM224 128c13.3 0 24 10.7 24 24l0 208c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24z\"]\n};\nvar faPoll = faSquarePollVertical;\nvar faPersonCircleMinus = {\n prefix: 'fas',\n iconName: 'person-circle-minus',\n icon: [640, 512, [], \"e540\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [9763], \"f780\", \"M260 12.6c0-8.3-7.6-14.5-15.5-12.1-60.9 18.8-105.1 75.8-105.1 143.1 0 25.1 6.1 48.7 17 69.5-21 1.8-42 8.2-61.5 19.5-57.9 33.6-84.8 100.2-70.9 162.5 1.9 8.4 11.4 12 18.9 7.6 5-2.9 7.6-8.6 7.1-14.4-.3-3.3-.4-6.6-.4-10.1 0-123.5 184.4-123.5 184.4 0 0 88.4-94.5 113.6-148.2 75.4-4.5-3.2-10.5-3.9-15.3-1.1-7 4.1-8.6 13.6-2.7 19.1 46.6 43.8 118 53.9 176.1 20.2 17.9-10.4 32.8-23.9 44.5-39.4 11.7 15.6 26.6 29.1 44.5 39.4 58.1 33.7 129.5 23.6 176.1-20.2 5.9-5.5 4.3-15.1-2.7-19.1-4.8-2.8-10.8-2.1-15.3 1.1-53.7 38.2-148.2 13-148.2-75.4 0-123.5 184.4-123.5 184.4 0 0 3.4-.1 6.8-.4 10.1-.5 5.8 2.1 11.5 7.1 14.4 7.4 4.3 17 .8 18.9-7.6 13.9-62.2-13-128.9-70.9-162.5-19.5-11.3-40.4-17.7-61.5-19.5 10.9-20.8 17-44.4 17-69.5 0-67.3-44.2-124.3-105.1-143.1-7.9-2.4-15.5 3.8-15.5 12.1 0 5.9 4 11 9.5 13.2 83.4 33.6 70.8 178.4-37.8 178.4S167.1 59.4 250.5 25.8c5.5-2.2 9.5-7.3 9.5-13.2zM248.4 288a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM435 317.7c-16.2 0-31.4 5.5-42.1 15-10.1 9.1-18.1 23.4-18.1 45.6 0 21.1 7.2 35 16.5 44.1 32.2-24.6 55.5-60.5 63.9-101.8-6.3-1.9-13.2-3-20.2-3zM202 378.3c0-22.3-8-36.6-18.1-45.6-10.7-9.6-25.9-15-42.1-15-7 0-13.9 1-20.2 3 8.4 41.3 31.6 77.2 63.9 101.8 9.4-9.1 16.5-23.1 16.5-44.2zm41.2-224.3c9 10.2 23.2 18.2 45.2 18.2s36.2-8 45.2-18.2c6.7-7.6 11.5-17.5 13.6-28.4-18.3-6.8-38.2-10.5-58.8-10.5s-40.5 3.7-58.8 10.5c2.2 10.9 6.9 20.8 13.6 28.5z\"]\n};\nvar faBellConcierge = {\n prefix: 'fas',\n iconName: 'bell-concierge',\n icon: [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C124.8 156.7 40.2 243.7 32.6 352l446.9 0C471.8 243.7 387.2 156.7 280 145.3l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z\"]\n};\nvar faConciergeBell = faBellConcierge;\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M48 384c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48l24 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 24 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 384z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [128014], \"f6f0\", \"M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26 20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16S568.8 0 560 0L448 0C377.3 0 320 57.3 320 128l-171.2 0C118.1 128 91.2 144.3 76.3 168.8 33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5 1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7 0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7l0 0 0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z\"]\n};\nvar faHandsHoldingChild = {\n prefix: 'fas',\n iconName: 'hands-holding-child',\n icon: [640, 512, [], \"e4fa\", \"M320-32a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40zM384.5 149l-19.8-16.7 11.1 88.8c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8-19.8 16.7c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 72.8 295.3 64 320 64s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0-133.3 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0 133.3-320-64 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [9772], \"f66d\", \"M240.7 8c8.9-7.4 21.8-7.4 30.7 0l37.8 31.5c8.7 7.3 11.1 19.6 6 29.6-1.2 2.4-2.8 5.5-4.6 9.2 34.2 19.2 57.3 55.8 57.3 97.8s-23.1 78.6-57.3 97.8c1.8 3.7 3.3 6.8 4.6 9.2 5.1 10 2.7 22.3-6 29.6l-37.2 31 0 19.8c22.9-15.7 48.4-33.3 76.7-52.7 42.8-29.4 68.4-78 68.4-130l0-11.1c0-23.9-7.1-47.3-20.4-67.2-5.1-7.7-4.6-17.8 1.7-24.6 6.6-7.1 17.2-8.1 25.2-2.8 27.5 18.1 89.4 67.5 89.4 149.1 0 46.5-20.2 88.6-41.8 120.4-21.6 32-45.6 55-55.3 63.8-7.8 7.1-19 7.9-27.6 3l-70.8-40.3-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21l-40.2-27.6 0 28.9c9.6 5.5 16 15.9 16 27.7 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7c-1.8 11.4-11.8 20.1-23.7 20.1-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-70.8 40.3c-8.7 4.9-19.8 4.1-27.6-3-9.7-8.8-33.7-31.9-55.3-63.8-21.5-31.8-41.8-73.9-41.8-120.4 0-81.7 61.9-131.1 89.4-149.1 8.1-5.3 18.6-4.3 25.2 2.8 6.4 6.9 6.8 17 1.7 24.6-13.3 19.9-20.4 43.3-20.4 67.2l0 11.1c0 51.9 25.6 100.6 68.4 130 28.4 19.6 53.7 36.9 75.6 52l0-19.1-37.2-31c-8.7-7.3-11.1-19.6-6-29.6 1.2-2.4 2.8-5.5 4.6-9.2-34.2-19.2-57.3-55.8-57.3-97.8s23.1-78.6 57.3-97.8c-1.8-3.7-3.3-6.8-4.6-9.2-5.1-10-2.7-22.3 6-29.6L240.7 8zM220.3 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1c6.8-19.2 11.8-38.4 11.8-53.1s-4.9-33.9-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1c-6.8 19.2-11.8 38.4-11.8 53.1s4.9 33.9 11.8 53.1z\"]\n};\nvar faFaceFrownOpen = {\n prefix: 'fas',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [448, 512, [10003, 10004], \"f00c\", \"M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M64 64C64 28.7 92.7 0 128 0L288 0c35.3 0 64 28.7 64 64l0 224c44.2 0 80 35.8 80 80l0 12c0 11 9 20 20 20s20-9 20-20l0-127.7c-32.5-10.2-56-40.5-56-76.3l0-32c0-8.8 7.2-16 16-16l16 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 32 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 16 0c8.8 0 16 7.2 16 16l0 32c0 35.8-23.5 66.1-56 76.3L520 380c0 37.6-30.4 68-68 68s-68-30.4-68-68l0-12c0-17.7-14.3-32-32-32l0 129.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L72 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L64 64zm82.7 125.7l39 0-20.9 66.9c-2.4 7.6 3.3 15.4 11.3 15.4 2.9 0 5.6-1 7.8-2.9l94.6-82c3.1-2.7 4.9-6.6 4.9-10.7 0-7.8-6.3-14.1-14.1-14.1l-39 0 20.9-66.9c2.4-7.6-3.3-15.4-11.3-15.4-2.9 0-5.6 1-7.8 2.9l-94.6 82c-3.1 2.7-4.9 6.6-4.9 10.7 0 7.8 6.3 14.1 14.1 14.1z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [576, 512, [], \"f502\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c29.7 0 57.7 7.3 82.3 20.1l0 4.3c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zm301.7 .1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faMobileScreenButton = {\n prefix: 'fas',\n iconName: 'mobile-screen-button',\n icon: [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm64 0l0 304 224 0 0-304-224 0zM192 472c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faMobileAlt = faMobileScreenButton;\nvar faAnchorCircleCheck = {\n prefix: 'fas',\n iconName: 'anchor-circle-check',\n icon: [640, 512, [], \"e4aa\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 0c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3L80 307.9c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faPersonWalkingWithCane = {\n prefix: 'fas',\n iconName: 'person-walking-with-cane',\n icon: [576, 512, [\"blind\"], \"f29d\", \"M224-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM160 205.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l34.4-34.4c23.2-23.2 54.6-36.2 87.3-36.2 36.1 0 70.3 15.8 93.8 43.1l68.6 80c11.5 13.4 9.9 33.6-3.5 45.1s-33.6 9.9-45.1-3.5l-55.7-65 0 118.6 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L160.1 371zm233.5-62.2c10.6-8 25.6-5.8 33.6 4.8l144 192c8 10.6 5.8 25.6-4.8 33.6s-25.6 5.8-33.6-4.8l-144-192c-8-10.6-5.8-25.6 4.8-33.6z\"]\n};\nvar faBlind = faPersonWalkingWithCane;\nvar faFileWaveform = {\n prefix: 'fas',\n iconName: 'file-waveform',\n icon: [384, 512, [\"file-medical-alt\"], \"f478\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-96 60.3 0 48.8 62.7c5.1 6.6 13.3 10 21.6 9.1s15.5-6.1 19.1-13.6l42.9-91.2 9.9 19.8c4.1 8.1 12.4 13.3 21.5 13.3l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-57.2 0-25.4-50.7c-4.1-8.2-12.6-13.4-21.8-13.3s-17.5 5.5-21.4 13.8l-47.3 100.6-32-41.1C86.4 307.4 79.4 304 72 304L0 304 0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5z\"]\n};\nvar faFileMedicalAlt = faFileWaveform;\nvar faHouseCrack = {\n prefix: 'fas',\n iconName: 'house-crack',\n icon: [512, 512, [], \"e3b1\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l86.4 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L256 368 195.8 285.2c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L256 448 294.4 512 400 512c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M64 400l85.7-208.2c17-41.3 47.8-75.3 87.2-96.3L383.8 17.2c12.3-6.6 26.5 4.7 23 18.2L369.6 177.8c-1.1 4.1-1.6 8.3-1.6 12.6 0 6.3 1.2 12.6 3.6 18.5l76.4 191.1-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 260.4 230.9 256 224 256s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 323 144 329.1 144 336s4.4 13 10.9 15.2l40.4 13.5 11.8 35.4-143.1 0zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faUserDoctor = {\n prefix: 'fas',\n iconName: 'user-doctor',\n icon: [448, 512, [\"user-md\"], \"f0f0\", \"M224 8a120 120 0 1 0 0 240 120 120 0 1 0 0-240zm60 312.8c-5.4-.5-11-.8-16.6-.8l-86.9 0c-5.6 0-11.1 .3-16.6 .8l0 67.5c16.5 7.6 28 24.3 28 43.6 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-19.4 11.5-36.1 28-43.6l0-58.4C61 353 16 413.6 16 484.6 16 499.7 28.3 512 43.4 512l361.1 0c15.1 0 27.4-12.3 27.4-27.4 0-71-45-131.5-108-154.6l0 37.4c23.3 8.2 40 30.5 40 56.6l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-11-9-20-20-20s-20 9-20 20l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-26.1 16.7-48.3 40-56.6l0-46.6z\"]\n};\nvar faUserMd = faUserDoctor;\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 80l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 112l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarChart = faChartBar;\nvar faSprayCanSparkles = {\n prefix: 'fas',\n iconName: 'spray-can-sparkles',\n icon: [576, 512, [\"air-freshener\"], \"f5d0\", \"M160 32l0 80 128 0 0-80c0-17.7-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32zm0 128c-53 0-96 43-96 96l0 208c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96l-128 0zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM448 48c0-1.4-1-3-2.2-3.6L416 32 403.6 2.2C403 1 401.4 0 400 0s-3 1-3.6 2.2L384 32 354.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L384 64 396.4 93.8C397 95 398.6 96 400 96s3-1 3.6-2.2L416 64 445.8 51.6C447 51 448 49.4 448 48zm76.4 45.8C525 95 526.6 96 528 96s3-1 3.6-2.2L544 64 573.8 51.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 32 531.6 2.2C531 1 529.4 0 528 0s-3 1-3.6 2.2L512 32 482.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 64 524.4 93.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L512 224 482.2 236.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 256 524.4 285.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L544 256 573.8 243.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 224 531.6 194.2zM512 144c0-1.4-1-3-2.2-3.6L480 128 467.6 98.2C467 97 465.4 96 464 96s-3 1-3.6 2.2L448 128 418.2 140.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L448 160 460.4 189.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 160 509.8 147.6c1.2-.6 2.2-2.2 2.2-3.6z\"]\n};\nvar faAirFreshener = faSprayCanSparkles;\nvar faBahtSign = {\n prefix: 'fas',\n iconName: 'baht-sign',\n icon: [320, 512, [], \"e0ac\", \"M136 0c-13.3 0-24 10.7-24 24l0 40-74.4 0C16.8 64 0 80.8 0 101.6L0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 48 0c61.9 0 112-50.1 112-112 0-40.1-21.1-75.3-52.7-95.1 13.1-18.3 20.7-40.7 20.7-64.9 0-61.9-50.1-112-112-112l-16 0 0-40c0-13.3-10.7-24-24-24zM112 128l0 96-48 0 0-96 48 0zm48 96l0-96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0zm-48 64l0 96-48 0 0-96 48 0zm48 96l0-96 48 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-48 0z\"]\n};\nvar faTemperatureArrowUp = {\n prefix: 'fas',\n iconName: 'temperature-arrow-up',\n icon: [512, 512, [\"temperature-up\"], \"e040\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-212.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 9.4l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-9.4-9.4 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-178.7-9.4 9.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c6-6 14.1-9.4 22.6-9.4s16.6 3.4 22.6 9.4z\"]\n};\nvar faTemperatureUp = faTemperatureArrowUp;\nvar faWebAwesome = {\n prefix: 'fas',\n iconName: 'web-awesome',\n icon: [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52z\"]\n};\nvar faNonBinary = {\n prefix: 'fas',\n iconName: 'non-binary',\n icon: [384, 512, [], \"e807\", \"M192 544c-97.2 0-176-78.8-176-176 0-86.3 62.1-158 144-173l0-47.2-49.7 24.8-3 1.3c-15.2 5.7-32.5-.8-39.9-15.7-7.4-14.8-2.2-32.6 11.5-41.3l2.8-1.6 38.8-19.4-38.8-19.4c-15.8-7.9-22.2-27.1-14.3-42.9 7.4-14.8 24.8-21.4 40-15.6l3 1.3 49.7 24.8 0-44.2c0-17.7 14.3-32 32-32s32 14.3 32 32l0 44.2 49.7-24.8 3-1.3c15.2-5.8 32.5 .8 39.9 15.6s2.2 32.7-11.5 41.3l-2.8 1.6-38.7 19.4 38.7 19.3c15.8 7.9 22.2 27.1 14.3 42.9-7.4 14.8-24.7 21.4-39.9 15.6l-3-1.3-49.7-24.8 0 47.2c81.9 15.1 144 86.8 144 173 0 97.2-78.8 176-176 176zm0-64a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faN = {\n prefix: 'fas',\n iconName: 'n',\n icon: [384, 512, [110], \"4e\", \"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 50.5 8.4 38.5 21.1 33.9z\"]\n};\nvar faArrowsUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-up-down-left-right',\n icon: [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 114.7-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 114.7 0 0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-114.7 114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-114.7 0 0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faArrows = faArrowsUpDownLeftRight;\nvar faHouse = {\n prefix: 'fas',\n iconName: 'house',\n icon: [512, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM240 320l32 0c26.5 0 48 21.5 48 48l0 96-128 0 0-96c0-26.5 21.5-48 48-48z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm0 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM48 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm368 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zM75 75A48 48 0 1 1 142.9 142.9 48 48 0 1 1 75 75zM437 369.1A48 48 0 1 1 369.1 437 48 48 0 1 1 437 369.1z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [576, 512, [\"legal\"], \"f0e3\", \"M169.6 153.4l-18.7-18.7c-12.5-12.5-12.5-32.8 0-45.3L265.6-25.4c12.5-12.5 32.8-12.5 45.3 0L329.6-6.6c12.5 12.5 12.5 32.8 0 45.3L214.9 153.4c-12.5 12.5-32.8 12.5-45.3 0zM276 211.7l-31.4-31.4 112-112 119.4 119.4-112 112-31.4-31.4-232 232c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l232-232zM390.9 374.6c-12.5-12.5-12.5-32.8 0-45.3L505.6 214.6c12.5-12.5 32.8-12.5 45.3 0l18.7 18.7c12.5 12.5 12.5 32.8 0 45.3L454.9 393.4c-12.5 12.5-32.8 12.5-45.3 0l-18.7-18.7z\"]\n};\nvar faLegal = faGavel;\nvar faTicketSimple = {\n prefix: 'fas',\n iconName: 'ticket-simple',\n icon: [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6-18.8 6.5-32.3 24.4-32.3 45.4s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64C0 311.2 7.4 304.3 15.7 301.4 34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z\"]\n};\nvar faTicketAlt = faTicketSimple;\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [128330], \"f4ba\", \"M496 64c13.2 0 20.7 15.1 12.8 25.6L480 128 480 304c0 79.5-64.5 144-144 144l-112 0-46.3 46.3c-10.4 10.4-26.5 12.4-39.1 4.8L41.5 440.9c-17-10.2-15-35.5 3.4-42.9L160 352C23.8 311.1 7.5 169.8 22 95.7 25.6 77.9 45.3 71.4 61.3 80.2L320 224 320 144c0-44.2 35.8-80 80-80l96 0zm-96 56a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM182.5-9.6c12.4-13.7 33.3-8.9 42.5 7.1l56.4 98.3c-5.8 14.4-9.2 30.1-9.4 46.5L138.1 68c10.1-31.6 27-58.4 44.4-77.6z\"]\n};\nvar faTarpDroplet = {\n prefix: 'fas',\n iconName: 'tarp-droplet',\n icon: [512, 512, [], \"e57c\", \"M256 160c35.3 0 64-26.9 64-60 0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60zM368 96c0 61.9-50.1 112-112 112S144 157.9 144 96c0-11.1 1.6-21.9 4.6-32L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l277.5 0c17 0 33.3-6.7 45.3-18.7L493.3 322.7c12-12 18.7-28.3 18.7-45.3L512 128c0-35.3-28.7-64-64-64l-84.6 0c3 10.1 4.6 20.9 4.6 32zm85.5 176L336 389.5 336 296c0-13.3 10.7-24 24-24l93.5 0zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faTreeCity = {\n prefix: 'fas',\n iconName: 'tree-city',\n icon: [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM528 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 480l0-160-16 0c-44.2 0-80-35.8-80-80 0-26.7 13.1-50.3 33.2-64.9-.8-4.9-1.2-10-1.2-15.1 0-53 43-96 96-96s96 43 96 96l0 96c0 35.3-28.7 64-64 64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faTurnUp = {\n prefix: 'fas',\n iconName: 'turn-up',\n icon: [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M169.4 9.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S332.9 192 320 192l-64 0 0 160c0 88.4-71.6 160-160 160l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32-14.3 32-32l0-160-64 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128z\"]\n};\nvar faLevelUpAlt = faTurnUp;\nvar faTemperatureQuarter = {\n prefix: 'fas',\n iconName: 'temperature-quarter',\n icon: [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-28.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 28.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature1 = faTemperatureQuarter;\nvar faThermometer1 = faTemperatureQuarter;\nvar faThermometerQuarter = faTemperatureQuarter;\nvar faSliders = {\n prefix: 'fas',\n iconName: 'sliders',\n icon: [512, 512, [\"sliders-h\"], \"f1de\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 224zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384z\"]\n};\nvar faSlidersH = faSliders;\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [576, 512, [128332], \"f678\", \"M174.8 224l226.4 0c43.5 0 78.8-35.3 78.8-78.8 0-25.5-12.3-49.4-33.1-64.2L297.3-25.4c-5.6-3.9-13-3.9-18.5 0L129.1 81C108.3 95.8 96 119.7 96 145.2 96 188.7 131.3 224 174.8 224zM512 512c35.3 0 64-28.7 64-64l0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-448 0 0-48c0-17.7-14.3-32-32-32S0 206.3 0 224L0 448c0 35.3 28.7 64 64 64l448 0zM240 384c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80-96 0 0-80z\"]\n};\nvar faH = {\n prefix: 'fas',\n iconName: 'h',\n icon: [384, 512, [104], \"48\", \"M320 288l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-256 0 0-160c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 256 0z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M48 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM0 192c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 256 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-224-32 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faPersonWalking = {\n prefix: 'fas',\n iconName: 'person-walking',\n icon: [384, 512, [128694, \"walking\"], \"f554\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM105.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L60.1 182.6C42.1 200.6 32 225 32 250.5L32 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zm12.4 179.4c-1.5 5.2-4.3 10-8.1 13.8L41.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8l-10.4 36.2z\"]\n};\nvar faWalking = faPersonWalking;\nvar faArrowTurnDown = {\n prefix: 'fas',\n iconName: 'arrow-turn-down',\n icon: [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"]\n};\nvar faLevelDown = faArrowTurnDown;\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [512, 512, [128739], \"f018\", \"M223.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L1.4 420.5C-6.1 450.7 16.8 480 48 480l175.9 0 0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 176.1 0c31.2 0 54.1-29.3 46.6-59.5L426.5 80.6C419.4 52.1 393.8 32 364.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSpiral = {\n prefix: 'fas',\n iconName: 'spiral',\n icon: [512, 512, [], \"e80a\", \"M115.5 7.4c13.6-11.3 33.8-9.5 45.1 4.1s9.5 33.8-4.1 45.1C100.2 103.5 64 175.2 64 256 64 362 150 448 256 448s192-86 192-192c0-75.1-60.9-136-136-136S176 180.9 176 256c0 44.2 35.8 80 80 80s80-35.8 80-80c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-48.6 39.4-88 88-88s88 39.4 88 88c0 79.5-64.5 144-144 144S112 335.5 112 256c0-110.5 89.5-200 200-200s200 89.5 200 200c0 141.4-114.6 256-256 256S0 397.4 0 256C0 155.8 45 66.1 115.5 7.4z\"]\n};\nvar faFaceFrown = {\n prefix: 'fas',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm90.6-113.9c-20.4-28-53.4-46.1-90.6-46.1s-70.2 18.1-90.6 46.1c-7.8 10.7-22.8 13.1-33.5 5.3s-13.1-22.8-5.3-33.5C155.7 330 202.8 304 256 304s100.3 26 129.4 65.9c7.8 10.7 5.4 25.7-5.3 33.5s-25.7 5.4-33.5-5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFrown = faFaceFrown;\nvar faWineGlassEmpty = {\n prefix: 'fas',\n iconName: 'wine-glass-empty',\n icon: [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C48.7 0 35.6 10.8 32.6 25.7L3.2 173C1.1 183.5 0 194.2 0 205l0 3c0 77.4 55 142 128 156.8l0 115.2-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-115.2C265 350 320 285.4 320 208l0-3c0-10.7-1.1-21.4-3.2-32L287.4 25.7C284.4 10.8 271.3 0 256 0L64 0zm1.9 185.6L90.2 64 229.8 64 254.1 185.6c1.3 6.4 1.9 12.9 1.9 19.4l0 3c0 53-43 96-96 96s-96-43-96-96l0-3c0-6.5 .6-13 1.9-19.4z\"]\n};\nvar faWineGlassAlt = faWineGlassEmpty;\nvar faClapperboard = {\n prefix: 'fas',\n iconName: 'clapperboard',\n icon: [512, 512, [], \"e131\", \"M448 64c2 0 3.9 .1 5.8 .3l-95.7 95.7 67.9 0 72-72c8.8 11 14 24.9 14 40l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l70.1 0-96 96 67.9 0 95-95 1-1 92.1 0-96 96 67.9 0 95-95 1-1 86.1 0z\"]\n};\nvar faForwardStep = {\n prefix: 'fas',\n iconName: 'forward-step',\n icon: [384, 512, [\"step-forward\"], \"f051\", \"M21 36.8c12.9-7 28.7-6.3 41 1.8L320 208.1 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144.1-258 169.6c-12.3 8.1-28 8.8-41 1.8S0 454.7 0 440L0 72C0 57.3 8.1 43.8 21 36.8z\"]\n};\nvar faStepForward = faForwardStep;\nvar faSquareUpRight = {\n prefix: 'fas',\n iconName: 'square-up-right',\n icon: [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM168 160c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l35 35-67 67c-9.4 9.4-9.4 24.6 0 33.9l24 24c9.4 9.4 24.6 9.4 33.9 0l67-67 35 35c6.9 6.9 17.2 8.9 26.2 5.2S320 321.7 320 312l0-128c0-13.3-10.7-24-24-24l-128 0z\"]\n};\nvar faExternalLinkSquareAlt = faSquareUpRight;\nvar faBookJournalWhills = {\n prefix: 'fas',\n iconName: 'book-journal-whills',\n icon: [448, 512, [\"journal-whills\"], \"f66a\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM274.1 99.2c2.6-2.6 6.7-3.1 9.9-1.1 32.1 20 53.4 55.6 53.4 96.2 0 62.6-50.7 113.3-113.3 113.3S110.7 256.9 110.7 194.3c0-40.6 21.4-76.2 53.4-96.2 3.1-2 7.2-1.5 9.9 1.1s3.1 6.7 1.2 9.8c-5.2 8.6-8.2 18.7-8.2 29.5 0 15.1 5.9 28.8 15.5 39.1 2.5 2.7 2.9 6.7 .9 9.7-4.7 7.4-7.4 16.1-7.4 25.5 0 21.6 14.3 39.9 34 45.9l1-24.8c-7.1-4.4-11.8-12.2-11.8-21.1 0-9.6 5.5-18 13.5-22.1l3.3-81.8c.2-4.3 3.7-7.7 8-7.7s7.8 3.4 8 7.7l3.3 81.8c8 4.1 13.5 12.4 13.5 22.1 0 8.9-4.7 16.7-11.8 21.1l1 24.8c19.6-6 33.9-24.1 34-45.6l0-.6c-.1-9.3-2.7-17.9-7.4-25.2-1.9-3.1-1.6-7.1 .9-9.7 9.6-10.2 15.5-23.9 15.5-39.1 0-10.8-3-20.9-8.2-29.5-1.9-3.2-1.4-7.2 1.2-9.8z\"]\n};\nvar faJournalWhills = faBookJournalWhills;\nvar faChampagneGlasses = {\n prefix: 'fas',\n iconName: 'champagne-glasses',\n icon: [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M155.6 17.3C163 3 179.9-3.6 195 1.9l125 45.6 125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6l31.3 86.2 41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41c-47.4 17.3-94.8 34.5-142.2 51.8-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-33.9-130-95.2l-14.6-64.7-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6.1 25.2 24.4 19.1 41s-24.4 25.2-41 19.1c-47.4-17.3-94.8-34.6-142.2-51.8-16.6-6.1-25.2-24.4-19.1-41S26.3 392 42.9 398l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8 89.2 32.5 13.1-57.9-75.1-27.4zm240.9 0l-75.1 27.4 13.1 57.9 89.2-32.5-27.2-52.8z\"]\n};\nvar faGlassCheers = faChampagneGlasses;\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M132.3 64L106.7 192 24 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L26.5 80.4C29.8 70.6 39 64 49.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM312 64l82.7 0 25.6 128-108.3 0 0-128zm131.7 0l83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1c0 13.3-10.7 24-24 24l-82.7 0-25.6-128zM25.7 240l524.7 0c-.4 2.1-13.3 73.4-38.9 213.7-3 16.3-17.9 27.6-34.4 26.1S448 464.6 448 448l0-16-320 0 0 16c0 16.6-12.6 30.4-29.1 31.9S67.5 470 64.5 453.7C39 313.3 26 242.1 25.7 240z\"]\n};\nvar faHeartCircleXmark = {\n prefix: 'fas',\n iconName: 'heart-circle-xmark',\n icon: [576, 512, [], \"e501\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faComputer = {\n prefix: 'fas',\n iconName: 'computer',\n icon: [576, 512, [], \"e4e5\", \"M348.8 32C340.7 46.1 336 62.5 336 80l0 16-272 0 0 224 272 0 0 64-272 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l284.8 0zM336 432c0 17.5 4.7 33.9 12.8 48L120 480c-13.3 0-24-10.7-24-24s10.7-24 24-24l216 0zM432 32l96 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm24 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm56 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faWandMagic = {\n prefix: 'fas',\n iconName: 'wand-magic',\n icon: [512, 512, [\"magic\"], \"f0d0\", \"M398.5 12.2l-88.2 88.2 101.3 101.3 88.2-88.2C507.6 105.6 512 95 512 84s-4.4-21.6-12.2-29.5L457.5 12.2C449.6 4.4 439 0 428 0s-21.6 4.4-29.5 12.2zM276.4 134.3L12.2 398.5C4.4 406.4 0 417 0 428s4.4 21.6 12.2 29.5l42.3 42.3C62.4 507.6 73 512 84 512s21.6-4.4 29.5-12.2L377.7 235.6 276.4 134.3z\"]\n};\nvar faMagic = faWandMagic;\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [512, 512, [129504], \"f5dc\", \"M120 56c0-30.9 25.1-56 56-56l24 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-32 0c-29.8 0-54.9-20.4-62-48-.7 0-1.3 0-2 0-44.2 0-80-35.8-80-80 0-18 6-34.6 16-48-19.4-14.6-32-37.8-32-64 0-30.9 17.6-57.8 43.2-71.1-7.1-12-11.2-26-11.2-40.9 0-44.2 35.8-80 80-80l0-24zm272 0l0 24c44.2 0 80 35.8 80 80 0 15-4.1 29-11.2 40.9 25.7 13.3 43.2 40.1 43.2 71.1 0 26.2-12.6 49.4-32 64 10 13.4 16 30 16 48 0 44.2-35.8 80-80 80-.7 0-1.3 0-2 0-7.1 27.6-32.2 48-62 48l-32 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32l24 0c30.9 0 56 25.1 56 56z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zm80 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faHouseMedicalCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-medical-circle-exclamation',\n icon: [640, 512, [], \"e512\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faCodeCommit = {\n prefix: 'fas',\n iconName: 'code-commit',\n icon: [576, 512, [], \"f386\", \"M288 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C430 361 365.4 416 288 416S146 361 131.2 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l99.2 0C146 151 210.6 96 288 96s142 55 156.8 128l99.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-99.2 0z\"]\n};\nvar faPersonBreastfeeding = {\n prefix: 'fas',\n iconName: 'person-breastfeeding',\n icon: [448, 512, [], \"e53a\", \"M224 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7-4.9-2.8-9.2-6.4-12.6-10.6-4.6-5.4-7.8-11.7-9.6-18.4-3.3-12-1.9-25.2 4.8-36.6 .6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4 2.9 6.7 4.3 13.8 4 20.8-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"]\n};\nvar faPersonRays = {\n prefix: 'fas',\n iconName: 'person-rays',\n icon: [512, 512, [], \"e54d\", \"M312.5 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C338.5 132 298.8 112 256.5 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l46.3-62.4 0 275.3c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM7.5 7c-9.4 9.4-9.4 24.6 0 33.9l80 80c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41.5 7C32.1-2.3 16.9-2.3 7.5 7zm464 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7.5 505c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9zm464 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l80 80z\"]\n};\nvar faManatSign = {\n prefix: 'fas',\n iconName: 'manat-sign',\n icon: [384, 512, [], \"e1d5\", \"M192 32c-13.3 0-24 10.7-24 24l0 41.5C73.3 109.3 0 190.1 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-62.5 44.8-114.5 104-125.8L168 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-293.8c59.2 11.2 104 63.3 104 125.8l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-97.9-73.3-178.7-168-190.5L216 56c0-13.3-10.7-24-24-24z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [384, 512, [\"unsorted\"], \"f0dc\", \"M2.4 204.2c5 12 16.6 19.8 29.6 19.8l320 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-9.2 9.2-11.9 22.9-6.9 34.9zm0 103.5c-5 12-2.2 25.7 6.9 34.9l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288c-12.9 0-24.6 7.8-29.6 19.8z\"]\n};\nvar faUnsorted = faSort;\nvar faCircleRadiation = {\n prefix: 'fas',\n iconName: 'circle-radiation',\n icon: [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm80 0l64.3 0c8.7 0 15.7-7.1 17.3-15.6 4.4-24.4 18.1-45.5 37.2-59.7 7.4-5.5 10.6-15.6 6-23.6l-32.5-56.3c-4.3-7.5-13.9-10.3-21.2-5.5-48.2 31.5-81.3 84.2-86.3 144.8-.7 8.8 6.5 16 15.3 16zm137.9 89.8c-8.5-3.7-18.8-1.4-23.5 6.6l-31 53.8c-4.3 7.5-1.9 17.2 5.8 21.1 26.1 13.2 55.5 20.7 86.8 20.7s60.7-7.5 86.8-20.7c7.7-3.9 10.1-13.6 5.8-21.1l-31-53.8c-4.6-8-15-10.3-23.5-6.6-11.7 5-24.5 7.8-38.1 7.8s-26.4-2.8-38.1-7.8zM350.4 240.4c1.6 8.6 8.5 15.6 17.3 15.6l64.3 0c8.8 0 16.1-7.2 15.3-16-5-60.6-38.1-113.2-86.3-144.8-7.3-4.8-16.8-2-21.2 5.5L307.3 157c-4.6 8-1.4 18.1 6 23.6 19.1 14.2 32.7 35.4 37.2 59.7zM256 305.7a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faRadiationAlt = faCircleRadiation;\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32 14.3 32 32 32 32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-40c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 40-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-40c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 40-64 0 0-192z\"]\n};\nvar faArrowUpFromWaterPump = {\n prefix: 'fas',\n iconName: 'arrow-up-from-water-pump',\n icon: [640, 512, [], \"e4b6\", \"M144 32c-26.5 0-48 21.5-48 48l0 176-16 0c-26.5 0-48 21.5-48 48l0 79.6c17.6-2 36 2.5 51.3 14 3.4 2.6 6.1 1.4 9.8-.3l.8-.4c5.7-2.6 12.9-6.9 21.7-13.5 27.5-20.7 59.9-31.2 92.3-31.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 10.7-8.1 22.9-12.7 35.3-14.1l0-79.5c0-26.5-21.5-48-48-48l-56 0 0-142.1 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L497 39c-9.4-9.4-24.6-9.4-33.9 0l-88 88c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 0 142.1-136 0 0-176c0-26.5-21.5-48-48-48L144 32zM474.6 476.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0z\"]\n};\nvar faMicrophoneLinesSlash = {\n prefix: 'fas',\n iconName: 'microphone-lines-slash',\n icon: [576, 512, [\"microphone-alt-slash\"], \"f539\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0l151 151 0-30.2c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L328 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-1.9 22.9-11.8 43.4-26.9 59l33.9 33.9c25.5-26 41.3-61.6 41.3-100.9l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 52.6-21.1 100.2-55.3 134.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM297.8 367.7l41.4 41.4c-8.8 2.4-17.9 4.3-27.3 5.4l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C169.3 402.7 96 321.9 96 224l0-40c0-5.1 1.6-9.9 4.4-13.8l43.6 43.6 0 10.2c0 79.5 64.5 144 144 144 3.3 0 6.6-.1 9.8-.3z\"]\n};\nvar faMicrophoneAltSlash = faMicrophoneLinesSlash;\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [448, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [128100, 62144, 62470, \"user-alt\", \"user-large\"], \"f007\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-59.4 0z\"]\n};\nvar faUserAlt = faUser;\nvar faUserLarge = faUser;\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [512, 512, [10052, 10054], \"f2dc\", \"M288.2 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 62.1-15-15c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l49 49 0 70.6-61.2-35.3-17.9-66.9c-3.4-12.8-16.6-20.4-29.4-17S95.3 98 98.7 110.8l5.5 20.5-53.7-31C35.2 91.5 15.6 96.7 6.8 112s-3.6 34.9 11.7 43.7l53.7 31-20.5 5.5c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l66.9-17.9 61.2 35.3-61.2 35.3-66.9-17.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l20.5 5.5-53.7 31C3.2 365.1-2 384.7 6.8 400s28.4 20.6 43.7 11.7l53.7-31-5.5 20.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l17.9-66.9 61.2-35.3 0 70.6-49 49c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l15-15 0 62.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-62.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-70.6 61.2 35.3 17.9 66.9c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-5.5-20.5 53.7 31c15.3 8.8 34.9 3.6 43.7-11.7s3.6-34.9-11.7-43.7l-53.7-31 20.5-5.5c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-66.9 17.9-61.2-35.3 61.2-35.3 66.9 17.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-20.5-5.5 53.7-31c15.3-8.8 20.6-28.4 11.7-43.7s-28.4-20.5-43.7-11.7l-53.7 31 5.5-20.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-17.9 66.9-61.2 35.3 0-70.6 49-49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-15 15 0-62.1z\"]\n};\nvar faTaurus = {\n prefix: 'fas',\n iconName: 'taurus',\n icon: [384, 512, [], \"e84f\", \"M336-16c17.7 0 32 14.3 32 32 0 58.5-28.6 110.3-72.5 142.3 53.2 34.1 88.5 93.8 88.5 161.7 0 106-86 192-192 192S0 426 0 320C0 252.1 35.3 192.4 88.5 158.3 44.6 126.3 16 74.5 16 16 16-1.7 30.3-16 48-16S80-1.7 80 16c0 61.9 50.1 112 112 112S304 77.9 304 16c0-17.7 14.3-32 32-32zM192 192a128 128 0 1 0 0 256 128 128 0 1 0 0-256z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [128369, 9760], \"f714\", \"M384 144C384 64.5 312.4 0 224 0S64 64.5 64 144c0 47.1 25.1 88.9 64 115.2l0 28.8c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-28.8c38.9-26.3 64-68.1 64-115.2zM160 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM445.5 339.7c-6.8-16.3-25.5-24-41.8-17.2L224 397.3 44.3 322.5c-16.3-6.8-35 .9-41.8 17.2s.9 35 17.2 41.8L140.8 432 19.7 482.5C3.4 489.3-4.3 508 2.5 524.3s25.5 24 41.8 17.2L224 466.7 403.7 541.5c16.3 6.8 35-.9 41.8-17.2s-.9-35-17.2-41.8L307.2 432 428.3 381.5c16.3-6.8 24-25.5 17.2-41.8z\"]\n};\nvar faPesoSign = {\n prefix: 'fas',\n iconName: 'peso-sign',\n icon: [448, 512, [], \"e222\", \"M112 32C94.3 32 80 46.3 80 64l0 64-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c65.6 0 122-39.5 146.7-96l37.3 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.8 0c.5-5.3 .8-10.6 .8-16s-.3-10.7-.8-16l24.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-37.3 0C362 71.5 305.6 32 240 32L112 32zm199.6 96l-167.6 0 0-32 96 0c28.4 0 54 12.4 71.6 32zM144 176l190.7 0c.9 5.2 1.3 10.5 1.3 16s-.5 10.8-1.3 16l-190.7 0 0-32zm167.6 80c-17.6 19.6-43.1 32-71.6 32l-96 0 0-32 167.6 0z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [320, 512, [127863], \"f4e3\", \"M32.6 25.7C35.6 10.8 48.7 0 64 0L256 0c15.3 0 28.4 10.8 31.4 25.7L316.8 173c2.1 10.5 3.2 21.2 3.2 32l0 3c0 77.4-55 142-128 156.8l0 115.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-115.2C55 350 0 285.4 0 208l0-3c0-10.7 1.1-21.4 3.2-32L32.6 25.7zM77.4 128l165.1 0-12.8-64-139.5 0-12.8 64z\"]\n};\nvar faTemperatureHalf = {\n prefix: 'fas',\n iconName: 'temperature-half',\n icon: [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-92.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 92.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature2 = faTemperatureHalf;\nvar faThermometer2 = faTemperatureHalf;\nvar faThermometerHalf = faTemperatureHalf;\nvar faTicket = {\n prefix: 'fas',\n iconName: 'ticket',\n icon: [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128l0 64C0 200.8 7.4 207.7 15.7 210.6 34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6-18.8-6.5-32.3-24.4-32.3-45.4s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zM416 336l0-160-256 0 0 160 256 0zM112 160c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32l0-192z\"]\n};\nvar faWheatAwnCircleExclamation = {\n prefix: 'fas',\n iconName: 'wheat-awn-circle-exclamation',\n icon: [640, 512, [], \"e598\", \"M496 576a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM81 529c-9.4 9.3-24.5 9.3-33.9 0-9.4-9.4-9.4-24.6 0-33.9L81 529zm30.2-294.4c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 31.7-7.7 66.2 1 90.6 25.3l12 12c-.8 7-1.2 14.2-1.2 21.4 0 20 3 39.3 8.7 57.4-36.8 21.8-85 17-116.6-14.7L165.6 444.3 81 529C69.7 517.7 58.4 506.3 47 495l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM496 476a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16zM215.2 130.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 24.2-5.9 50.1-2.1 71.9 10.8-32.2 24.9-56.2 59.8-67.4 100.1-3.8-2.8-7.5-6-11-9.5l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM526.7 15c9.4-9.4 24.6-9.4 33.9 0 8.8 8.8 9.3 22.7 1.7 32.1L560.6 49 446.2 163.4c7.7 1 15.3 3 22.5 5.9L527 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c3.2 3.2 4.7 7.4 4.7 11.6-17.7-5.4-36.5-8.3-55.9-8.3-34.2 0-66.3 8.9-94.1 24.6l-92.7-92.7c-37.5-37.5-37.5-98.3 0-135.8l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1L465 49 406.7 107.3c2.8 7.1 4.7 14.5 5.8 22.1L526.7 15z\"]\n};\nvar faArrowsTurnRight = {\n prefix: 'fas',\n iconName: 'arrows-turn-right',\n icon: [448, 512, [], \"e4c0\", \"M313.4-6.6c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 128 128 128c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32S0 241.7 0 224l0-32C0 121.3 57.3 64 128 64l210.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 384 96 384c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 465.7 0 448l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [448, 512, [], \"f786\", \"M421.8 39.6C452 85.2 456.5 142.9 435.1 192l-165.4 0 41.4-41.4c.8-.8 1.5-1.6 2.2-2.4L421.8 39.6zM268 102.9c-.8 .7-1.6 1.4-2.4 2.2l-28.1 28.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5L175 14.6C229.9-40.2 314.5-46.7 376.5-5.6L268 102.9zM125.7 336l80-80 181 0-82.5 82.5 0-2.5-178.5 0zm117 64L141.4 501.3c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5l10.7-10.7 181 0z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M136 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM117.9 197.6l12.6 63c-38.6 12.4-66.5 48.7-66.5 91.4 0 53 43 96 96 96 35.6 0 66.7-19.4 83.3-48.2 2.3 .1 4.6 .2 7 .2l4.1 0c1 0 2.1 0 3.1 0l55.2 0c-20.4 64.9-81 112-152.7 112-88.4 0-160-71.6-160-160 0-73.8 50-135.9 117.9-154.4zm148.6-28.1l23.7 118.5 60.5 0c33.3 0 63.2 20.7 74.9 51.9l25.5 68 18.7-6.2c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5l-48 16c-16.3 5.4-34-3-40.1-19.1l-36.3-96.9c-2.3-6.2-8.3-10.4-15-10.4l-86.1 0c-.4 0-.8 0-1.3 0l-13.1 0c-30.5 0-56.8-21.5-62.8-51.4L165.3 189.7c-6.4-31.9 18-61.7 50.6-61.7 24.6 0 45.8 17.4 50.6 41.5z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M120 32c-48.6 0-88 39.4-88 88l0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-168c0-48.6-39.4-88-88-88l-16 0zm40 128l-64 0 0-40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 40zM304 32c-17.7 0-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32l72 0c48.6 0 88-39.4 88-88 0-23.6-9.3-45-24.4-60.8 10.3-14.4 16.4-32.1 16.4-51.2 0-48.6-39.4-88-88-88l-64 0zm64 112l-32 0 0-48 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zM336 256l0-48 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0zm233 84c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-105.7 132.1-38.7-38.7c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.4 6.4 15.3 9.8 24.4 9.3s17.5-4.9 23.2-12L569 340z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [320, 512, [], \"f026\", \"M96 352l-48 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l48 0 134.1-119.2c6.4-5.7 14.6-8.8 23.1-8.8 19.2 0 34.8 15.6 34.8 34.8l0 378.4c0 19.2-15.6 34.8-34.8 34.8-8.5 0-16.7-3.1-23.1-8.8L96 352z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [576, 512, [129729], \"f604\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 141.9-32 19.2 0-116.7c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 22 0 43.7-5.1 63.4-15l5-2.5c37.4-18.7 61-56.9 61-98.8l0-128 64-38.4 64 38.4 0 128c0 41.8 23.6 80.1 61 98.8l5 2.5c19.7 9.8 41.4 15 63.4 15 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 118.2-32-19.2 0-141.9z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M64 0C28.7 0 0 28.7 0 64L0 480c0 11.5 6.2 22.2 16.2 27.8s22.3 5.5 32.2-.4L192 421.3 335.5 507.4c9.9 5.9 22.2 6.1 32.2 .4S384 491.5 384 480l0-416c0-35.3-28.7-64-64-64L64 0z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [448, 512, [], \"f02a\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64c0-17.7-14.3-32-32-32zm88 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24zm72 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32zm208-8l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24zm-96 0l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M0 72C0 58.8 10.7 48 24 48l48 0c13.3 0 24 10.7 24 24l0 104 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-80-24 0C10.7 96 0 85.3 0 72zM30.4 301.2C41.8 292.6 55.7 288 70 288l4.9 0c33.7 0 61.1 27.4 61.1 61.1 0 19.6-9.4 37.9-25.2 49.4l-24 17.5 33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-90.7 0C13.1 464 0 450.9 0 434.7 0 425.3 4.5 416.5 12.1 411l70.5-51.3c3.4-2.5 5.4-6.4 5.4-10.6 0-7.2-5.9-13.1-13.1-13.1L70 336c-3.9 0-7.7 1.3-10.8 3.6L38.4 355.2c-10.6 8-25.6 5.8-33.6-4.8S-1 324.8 9.6 316.8l20.8-15.6zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faList12 = faListOl;\nvar faListNumeric = faListOl;\nvar faFileCircleXmark = {\n prefix: 'fas',\n iconName: 'file-circle-xmark',\n icon: [576, 512, [], \"e5a1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [576, 512, [], \"f4db\", \"M412.8 416c41.5-40.7 67.2-97.3 67.2-160 0-123.7-100.3-224-224-224S32 132.3 32 256 132.3 480 256 480l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-131.2 0zM256 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm48 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [576, 512, [128163], \"f1e2\", \"M480-16c6.9 0 13 4.4 15.2 10.9l13.5 40.4 40.4 13.5C555.6 51 560 57.1 560 64s-4.4 13-10.9 15.2l-40.4 13.5-13.5 40.4C493 139.6 486.9 144 480 144s-13-4.4-15.2-10.9l-13.5-40.4-40.4-13.5C404.4 77 400 70.9 400 64s4.4-13 10.9-15.2l40.4-13.5 13.5-40.4C467-11.6 473.1-16 480-16zM321.4 97.4c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-10.9 10.9c7.9 22 12.2 45.7 12.2 70.5 0 114.9-93.1 208-208 208S32 418.9 32 304 125.1 96 240 96c24.7 0 48.5 4.3 70.5 12.3l10.9-10.9zM144 304c0-53 43-96 96-96 13.3 0 24-10.7 24-24s-10.7-24-24-24c-79.5 0-144 64.5-144 144 0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faScaleUnbalanced = {\n prefix: 'fas',\n iconName: 'scale-unbalanced',\n icon: [640, 512, [\"balance-scale-left\"], \"f515\", \"M519.8 62.4c16.8-5.6 25.8-23.7 20.2-40.5S516.3-3.9 499.6 1.6l-113 37.7c-13.9-23.5-39.6-39.3-68.9-39.3-44.2 0-80 35.8-80 80 0 3 .2 5.9 .5 8.8L115.6 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2l0 326.7c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM437.3 288l72.4-124.2 72.4 124.2-144.9 0zm72.4 96c62.9 0 115.2-34 126-78.9 2.6-11-1-22.3-6.7-32.1L533.8 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L390.4 273.1c-5.7 9.8-9.3 21.1-6.7 32.1 10.8 44.8 63.1 78.9 126 78.9zM126.8 291.8l72.4 124.2-144.9 0 72.4-124.2zM.9 433.1C11.7 478 64 512 126.8 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L150.9 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L7.6 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"]\n};\nvar faBalanceScaleLeft = faScaleUnbalanced;\nvar faSquareCaretLeft = {\n prefix: 'fas',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [576, 512, [128207], \"f545\", \"M209.1 516.2c-18.7 18.7-49.1 18.7-67.9 0L28.1 403.1c-18.7-18.7-18.7-49.1 0-67.9l17-17 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 17-17c18.7-18.7 49.1-18.7 67.9 0L548.5 108.9c18.7 18.7 18.7 49.1 0 67.9L209.1 516.2z\"]\n};\nvar faI = {\n prefix: 'fas',\n iconName: 'i',\n icon: [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faVolumeXmark = {\n prefix: 'fas',\n iconName: 'volume-xmark',\n icon: [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM367 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faVolumeMute = faVolumeXmark;\nvar faVolumeTimes = faVolumeXmark;\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-272-448 0 0 272z\"]\n};\nvar faPersonDigging = {\n prefix: 'fas',\n iconName: 'person-digging',\n icon: [576, 512, [\"digging\"], \"f85e\", \"M208 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM10.5 181.3c5.9-11.9 20.3-16.7 32.2-10.7l24.6 12.3 12.2-20.4c18.9-31.5 53.2-50.5 89.6-50.5 46.2 0 87.7 30.5 100.5 75.4l32.2 112.7 92.9 46.4 25.8-43c5.8-9.6 16.2-15.5 27.4-15.5s21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S555.5 512 544 512l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2L370 387.8 21.3 213.5c-11.9-5.9-16.7-20.3-10.7-32.2zM94.3 307.4l112 56c10.8 5.4 17.7 16.5 17.7 28.6l0 88c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-68.2-61.3-30.7-36.3 109c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.7 469.9l48-144c2.9-8.8 9.5-15.9 18.1-19.4s18.3-3.2 26.6 .9z\"]\n};\nvar faDigging = faPersonDigging;\nvar faGaugeHigh = {\n prefix: 'fas',\n iconName: 'gauge-high',\n icon: [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64 0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faTachometerAlt = faGaugeHigh;\nvar faTachometerAltFast = faGaugeHigh;\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [384, 512, [], \"f22d\", \"M192 128a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 320a192 192 0 1 0 0-384 192 192 0 1 0 0 384z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [9925], \"f6c4\", \"M208.3 192c43.1 0 80.5 24.4 99.2 60.1 14.7-17.2 36.4-28.1 60.8-28.1 44.2 0 80 35.8 80 80 0 5.5-.6 10.9-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96l-320 0c-53 0-96-43-96-96 0-42.5 27.7-78.5 66-91.2-1.3-6.8-2-13.7-2-20.8 0-61.9 50.1-112 112-112zm192-223.8c5.3 0 10.3 2.7 13.3 7.1l47.3 70.4 83.3-16.3c5.2-1 10.6 .7 14.3 4.4 3.8 3.8 5.4 9.2 4.4 14.4l-16.3 83.3 70.4 47.3c4.4 3 7.1 8 7.1 13.3 0 5.3-2.6 10.3-7 13.2l-70.4 47.3 14.5 74.2c-17.2-21.7-40.4-38.4-67.2-47.3-2.5-12.7-6.9-24.6-12.8-35.7 9.6-14.9 15.2-32.7 15.2-51.7 0-53-43-96-96-96-47.9 0-87.6 35.1-94.8 80.9-20.9-16-45.9-27-73.1-31.1l21.5-14.5-16.3-83.2-.3-2c-.3-4.6 1.3-9.1 4.6-12.4 3.8-3.8 9.2-5.4 14.4-4.4l83.3 16.3 47.3-70.4 1.2-1.6c3-3.5 7.4-5.5 12.1-5.5zm0 175.8c26.5 0 48 21.5 48 48 0 3.8-.5 7.6-1.4 11.1-21.7-16.9-48.9-27.1-78.6-27.1-4.6 0-9.1 .2-13.5 .7 6.4-19 24.3-32.7 45.5-32.7z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [512, 512, [8594], \"f061\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [576, 512, [129309, 62662, \"handshake-alt\", \"handshake-simple\"], \"f2b5\", \"M268.9 85.2L152.3 214.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 182.7L223.4 64 183.8 64c-25.5 0-49.9 10.1-67.9 28.1L112 96 0 32 0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 441c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"]\n};\nvar faHandshakeAlt = faHandshake;\nvar faHandshakeSimple = faHandshake;\nvar faPersonSkiing = {\n prefix: 'fas',\n iconName: 'person-skiing',\n icon: [576, 512, [9975, \"skiing\"], \"f7c9\", \"M416 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM2.7 300.9c6.1-11.8 20.6-16.3 32.4-10.2l197.8 102.7 62.3-87.2-82-92.2c-11-12.4-16.2-27.5-16.2-42.4l111.6 53.4 42.9 48.2c14.9 16.7 16.2 41.6 3.2 59.8l-64.4 90.2 128.3 66.6c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 333.3C1.2 327.2-3.4 312.7 2.7 300.9zM103 49.6l18 8.7 8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 17 84.8 41 .4-.2 76.1-33.8c31.3-13.9 67.9-.7 83.2 29.9l28.9 57.8 68.7 27.5c16.4 6.6 24.4 25.2 17.8 41.6s-25.2 24.4-41.6 17.8L393.8 224c-10.9-4.4-19.8-12.6-25.1-23.1l-11.5-23.1c-16.4 9.4-25.9 14.8-28.5 16.3l-7.6-3.7-185.6-89.6-9.2 18.3c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-17.9-17.6-8.5C81.1 74.6 77.8 65 81.6 57S95 45.7 103 49.6z\"]\n};\nvar faSkiing = faPersonSkiing;\nvar faBridgeWater = {\n prefix: 'fas',\n iconName: 'bridge-water',\n icon: [640, 512, [], \"e4ce\", \"M64 64l512 0 0 112c-37.6 9.4-64 43.2-64 82l0 76.4c-21-9.7-43.5-14.5-66-14.4-10 .1-20.1 1.1-30 3.1l0-35.1c0-53-43-96-96-96s-96 43-96 96l0 32.7c-5.3-.5-10.7-.8-16-.7-27.7 .2-55.4 7.8-80 23l0-85c0-38.8-26.4-72.6-64-82L64 64zM403.4 444.1C379.1 462.3 351.1 480 320 480s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faBuildingNgo = {\n prefix: 'fas',\n iconName: 'building-ngo',\n icon: [576, 512, [], \"e4d7\", \"M128 0C92.7 0 64 28.7 64 64l0 384c0 35.3 28.7 64 64 64l48 0 0-112c0-35.3 28.7-64 64-64l208 0 0-272c0-35.3-28.7-64-64-64L128 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM304 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM520 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-80c0-24.3-19.7-44-44-44l-16 0zm-4 44c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 80c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80zm-168 0l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-24c0-11-9-20-20-20l-8 0c-11 0-20 9-20 20 0 6.5 3.1 12.4 8 16l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l20.4 0c1.9 9.1 9.9 16 19.6 16 11 0 20-9 20-20 0-19.9-16.1-36-36-36l-24 0c-24.3 0-44 19.7-44 44zm-90.1-32.9c-4.1-8.3-13.5-12.7-22.5-10.5S220 390.7 220 400l0 128c0 11 9 20 20 20s20-9 20-20l0-43.3 26.1 52.2c4.1 8.3 13.5 12.7 22.5 10.5S324 537.3 324 528l0-128c0-11-9-20-20-20s-20 9-20 20l0 43.3-26.1-52.2z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.8l0 126.2-271.5 0c51.7-77.2 139.6-128 239.5-128 10.8 0 21.5 .6 32 1.8zM368 160l0-116.7c66 19 122.2 61 159.5 116.7L368 160zM22.6 208l73.4 0 0 112-96 0c0-39.7 8-77.6 22.6-112zM176 320l-32 0 0-112 288 0 0 112-32 0 0 48 176 0 0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64 176 0 0-48zm304 0l0-112 73.4 0C568 242.4 576 280.3 576 320l-96 0zM288 288c-35.3 0-64 28.7-64 64l0 80 128 0 0-80c0-35.3-28.7-64-64-64z\"]\n};\nvar faCircleDollarToSlot = {\n prefix: 'fas',\n iconName: 'circle-dollar-to-slot',\n icon: [576, 512, [\"donate\"], \"f4b9\", \"M96 224a192 192 0 1 1 384 0 192 192 0 1 1 -384 0zm176-92l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L248 272c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20zM48 344l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 344c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faDonate = faCircleDollarToSlot;\nvar faY = {\n prefix: 'fas',\n iconName: 'y',\n icon: [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7 154-215.7c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"]\n};\nvar faFaceSmileWink = {\n prefix: 'fas',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFaceGrinSquintTears = {\n prefix: 'fas',\n iconName: 'face-grin-squint-tears',\n icon: [576, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M560 35.4c0 25.6-18.8 47.3-44.1 50.9L469.1 93c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C461.3 2.8 483-16 508.6-16 537-16 560 7 560 35.4zM403.5 68.1c-6 42.2 30.2 78.4 72.4 72.4l37.8-5.4C565.7 232 550.8 355.3 469 437s-205 96.6-301.9 44.7l5.4-37.8c6-42.2-30.2-78.4-72.4-72.4l-37.8 5.4C10.3 280 25.2 156.7 107 75S312-21.7 408.9 30.3l-5.4 37.8zM417.8 201c-19.1 36.4-45.6 72.7-78.9 106s-69.6 59.8-106 78.9c-11.1 5.8-12.4 21.4-1.1 26.6 59.2 27.5 131.8 16.8 180.6-32s59.5-121.4 32-180.6c-5.3-11.3-20.8-10-26.6 1.1zM113.9 270.6c1.7 8 9 13.4 17.1 12.7l43.1-3.9-3.9 43.1c-.7 8.1 4.7 15.5 12.7 17.1s15.9-2.9 18.4-10.6l28-84.6c1.9-5.7 .4-12.1-3.9-16.3s-10.6-5.8-16.3-3.9l-84.6 28c-7.7 2.6-12.3 10.5-10.6 18.5zM315.2 99.1c.7-8.1-4.7-15.5-12.7-17.1s-15.9 2.9-18.5 10.6l-28 84.6c-1.9 5.7-.4 12.1 3.9 16.3s10.6 5.8 16.3 3.9l84.6-28c7.7-2.6 12.3-10.5 10.6-18.4s-9-13.4-17.1-12.7l-43.1 3.9 3.9-43.1zM60.1 425.7l46.7-6.7c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C114.7 509.2 93 528 67.4 528 39 528 16 505 16 476.6 16 451 34.8 429.3 60.1 425.7z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zm53.8 185.2c-9.1-6.3-21.5-4.1-27.8 5s-4.1 21.5 5 27.8c23.9 16.7 39.4 44.3 39.4 75.5s-15.6 58.9-39.4 75.5c-9.1 6.3-11.3 18.8-5 27.8s18.8 11.3 27.8 5c34.1-23.8 56.6-63.5 56.6-108.3S296 267.5 261.8 243.7zM80 312c-8.8 0-16 7.2-16 16l0 48c0 8.8 7.2 16 16 16l24 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-24 0zm128 72.2c0 10.7 10.5 18.2 18.9 11.6 12.9-10.3 21.1-26.1 21.1-43.8s-8.2-33.5-21.1-43.8c-8.4-6.7-18.9 .9-18.9 11.6l0 64.5z\"]\n};\nvar faArrowsDownToLine = {\n prefix: 'fas',\n iconName: 'arrows-down-to-line',\n icon: [512, 512, [], \"e4b8\", \"M214.6 310.6l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 274.7 96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm256 0l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-242.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512z\"]\n};\nvar faG = {\n prefix: 'fas',\n iconName: 'g',\n icon: [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6-9.5 115-105.8 205.4-223.2 205.4-123.7 0-224-100.3-224-224S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57 13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [576, 512, [], \"f6a7\", \"M273.6-3.2c8.5-6.4 20.3-6.4 28.8 0L443.2 102.4c8.3 6.2 18.4 9.6 28.8 9.6 13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 48 58.7 64 13.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 48 24.4 32 15.6 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l22.1 0 17.9-32 0-48-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.3 0 58.7-64 0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24c10.4 0 20.5-3.4 28.8-9.6L273.6-3.2zM128 368l320 0 0-48-320 0 0 48zM384 160l-192 0 0 48 192 0 0-48z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [448, 512, [127937], \"f11e\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 384 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5-64 13.9 0 65.5 48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6l-25.3 5.5 0-75.2-64 16 0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"]\n};\nvar faGaugeSimple = {\n prefix: 'fas',\n iconName: 'gauge-simple',\n icon: [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGaugeSimpleMed = faGaugeSimple;\nvar faTachometerAverage = faGaugeSimple;\nvar faRightLeft = {\n prefix: 'fas',\n iconName: 'right-left',\n icon: [512, 512, [\"exchange-alt\"], \"f362\", \"M502.6 150.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 236.9 352 224l0-64-320 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 275.1 160 288l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9z\"]\n};\nvar faExchangeAlt = faRightLeft;\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [512, 512, [], \"f484\", \"M64 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM176 368c0-48.7 18.1-93.2 48-127l0-129C224 50.1 173.9 0 112 0S0 50.1 0 112L0 400c0 61.9 50.1 112 112 112 37.3 0 70.3-18.2 90.7-46.3-17-28.6-26.7-62-26.7-97.7zm64.7 67.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 264c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM297.9 472c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4-4.6-8.7-16.3-9.7-23.3-2.7L297.9 472z\"]\n};\nvar faExplosion = {\n prefix: 'fas',\n iconName: 'explosion',\n icon: [512, 512, [], \"e4e9\", \"M256-32c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zm0 160c12.4 0 22.7 9.4 23.9 21.7L293.4 291.6 467.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L372.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0-75.5-52.3C.6 357-2.8 344.1 2.4 333.5s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.6 9.4-11.3L75.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L214 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7zM32 464l456 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0z\"]\n};\nvar faArrowsDownToPeople = {\n prefix: 'fas',\n iconName: 'arrows-down-to-people',\n icon: [512, 512, [], \"e4b9\", \"M113 153c-9.4 9.4-24.6 9.4-33.9 0L15 89C5.7 79.6 5.7 64.4 15 55S39.6 45.7 49 55L72 78.1 72-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zm320 0c-9.4 9.4-24.6 9.4-33.9 0L335 89c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23 0-86.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zM256 192a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 160c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32c0-53 43-96 96-96zM32 288a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm352 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM80 368c15.3 0 29.6 4.3 41.8 11.8-6.3 16.2-9.8 33.8-9.8 52.2l0 48c0 11.4 2.4 22.2 6.7 32l-87.8 0C13.8 512 0 498.2 0 481.1L0 448c0-44.2 35.8-80 80-80zM393.3 512c4.3-9.8 6.7-20.6 6.7-32l0-48c0-18.4-3.5-36-9.8-52.2 12.2-7.5 26.5-11.8 41.8-11.8 44.2 0 80 35.8 80 80l0 33.1c0 17-13.8 30.9-30.9 30.9l-87.8 0z\"]\n};\nvar faUsersViewfinder = {\n prefix: 'fas',\n iconName: 'users-viewfinder',\n icon: [576, 512, [], \"e595\", \"M64 0C28.7 0 0 28.7 0 64l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24S149.3 0 136 0L64 0zM440 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-35.3-28.7-64-64-64L440 0zM48 376c0-13.3-10.7-24-24-24S0 362.7 0 376l0 72c0 35.3 28.7 64 64 64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0c-8.8 0-16-7.2-16-16l0-72zm528 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72c0 8.8-7.2 16-16 16l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c35.3 0 64-28.7 64-64l0-72zM288 216a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 40c-53 0-96 43-96 96l0 24c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-24c0-53-43-96-96-96zm192-64a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM168 272.3c-49.3 4.1-88 45.3-88 95.7l0 10.7c0 11.8 9.6 21.3 21.3 21.3l46.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-24c0-29.5 8.8-56.9 24-79.7zM427.9 400l46.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-50.3-38.7-91.6-88-95.7 15.2 22.8 24 50.2 24 79.7l0 24c0 8.4-1.4 16.5-4.1 24zM192 192a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faCarOn = {\n prefix: 'fas',\n iconName: 'car-on',\n icon: [448, 512, [], \"e4dd\", \"M248-8c0-13.3-10.7-24-24-24S200-21.3 200-8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM145.3 208l157.5 0c6.7 0 12.6 4.1 15 10.4l26.1 69.6-239.6 0 26.1-69.6c2.3-6.2 8.3-10.4 15-10.4zM34 292.8l-1.3 3.4C13.2 307.1 0 328 0 352L0 480c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 288 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-128c0-24-13.2-44.9-32.8-55.9l-1.3-3.4-36.3-96.9c-11.7-31.2-41.6-51.9-74.9-51.9l-157.5 0c-33.3 0-63.2 20.7-74.9 51.9L34 292.8zM96 336a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm224 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM7 7C-2.3 16.4-2.3 31.6 7 41L55 89c9.4 9.4 24.6 9.4 33.9 0S98.3 64.4 89 55L41 7C31.6-2.3 16.4-2.3 7 7zM407 7L359 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9S416.4-2.3 407 7z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l0 160c0 41.8 26.7 77.4 64 90.5l0 69.5-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l504 0c44.2 0 80-35.8 80-80l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 17.7-14.3 32-32 32l-80 0 0-64c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 32c0 35.3-28.7 64-64 64l-48.9 0c-48.5 0-92.8-27.4-114.5-70.8l-25.2-50.5C237.7 59.4 193.4 32 144.9 32L64 32zM432 416l-256 0 0-64 256 0 0 64z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112 256 0 0-112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 16 16 0c26.5 0 48 21.5 48 48l0 48c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48c0 26.5-21.5 48-48 48l-16 0 0 16c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-112-256 0 0 112c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-16-16 0c-26.5 0-48-21.5-48-48l0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-48c0-26.5 21.5-48 48-48l16 0 0-16z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [\"carriage-baby\"], \"f77d\", \"M64 208l0 80c0 53 43 96 96 96l192 0c53 0 96-43 96-96l0-112 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24l0 56-336 0zm.2-48l223.8 0 0-128c0-17.7-14.3-32-32-32L232 0C141.9 0 68.4 70.9 64.2 160zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm288 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faCarriageBaby = faBabyCarriage;\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1S576 471 576 464l0-240c0-70.7-57.3-128-128-128l-55.7 0C355.9 96 322.4 78.4 291.2 59.6 262.3 42.1 228.3 32 192 32 86 32 0 118 0 224 0 295.1 38.6 357.1 96 390.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6 5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faCalendarXmark = {\n prefix: 'fas',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM291.9 220.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faCircleDown = {\n prefix: 'fas',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3l-104-104c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l56 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 56 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-104 104c-6.2 6.2-16.4 6.2-22.6 0z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM160 280l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faXmark = {\n prefix: 'fas',\n iconName: 'xmark',\n icon: [384, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z\"]\n};\nvar faClose = faXmark;\nvar faMultiply = faXmark;\nvar faRemove = faXmark;\nvar faTimes = faXmark;\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M256 0c11.2 0 21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S363.5 224 352 224l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2l96-160C234.3 5.9 244.8 0 256 0zM128 272a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm200 16l112 0c22.1 0 40 17.9 40 40l0 112c0 22.1-17.9 40-40 40l-112 0c-22.1 0-40-17.9-40-40l0-112c0-22.1 17.9-40 40-40z\"]\n};\nvar faTriangleCircleSquare = faShapes;\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M384 96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-70.7-57.3-128-128-128S320 25.3 320 96l0 64-160 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-32 0 0-64z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [576, 512, [127798], \"f816\", \"M545 65c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L478.9 63.2C452.3 43.6 419.5 32 384 32 348.9 32 316.5 43.3 290.1 62.4 274.1 74.1 284.2 96 304 96l24 0c13.3 0 24 10.7 24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24 10.7 24 24l0 24c0 19.8 21.9 29.9 33.6 13.9 19.1-26.4 30.4-58.8 30.4-93.9 0-35.5-11.6-68.3-31.2-94.9L545 65zM270 135.5l-159.6 228C101.3 376.4 86.7 384 71 384l-7 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l27.1 0c65.7 0 129.7-20.2 183.5-57.8L440.5 306.1C435 295.9 432 284.2 432 272l-56 0c-39.8 0-72-32.2-72-72l0-56c-12.2 0-23.9-3-34-8.5z\"]\n};\nvar faDropletSlash = {\n prefix: 'fas',\n iconName: 'droplet-slash',\n icon: [576, 512, [\"tint-slash\"], \"f5c7\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L463.6 397.8c10.5-23.8 16.4-50.1 16.4-77.8 0-91.2-130.2-274.1-166.6-323.5-5.9-8-15.2-12.5-25.2-12.5l-.4 0c-10 0-19.3 4.5-25.2 12.5-15.6 21.2-48.5 66.9-80.9 119.4L41-24.9zm92 227.7c-21.6 43.8-37 85.9-37 117.2 0 106 86 192 192 192 43.4 0 83.4-14.4 115.5-38.6L133 202.8z\"]\n};\nvar faTintSlash = faDropletSlash;\nvar faDroplet = {\n prefix: 'fas',\n iconName: 'droplet',\n icon: [384, 512, [128167, \"tint\"], \"f043\", \"M192 512C86 512 0 426 0 320 0 228.8 130.2 45.9 166.6-3.5 172.5-11.5 181.8-16 191.8-16l.4 0c10 0 19.3 4.5 25.2 12.5 36.4 49.4 166.6 232.3 166.6 323.5 0 106-86 192-192 192zM112 312c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 75.1 60.9 136 136 136 13.3 0 24-10.7 24-24s-10.7-24-24-24c-48.6 0-88-39.4-88-88z\"]\n};\nvar faTint = faDroplet;\nvar faFileLines = {\n prefix: 'fas',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM120 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M192 320c106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144c0 39.6 14.3 76.2 38.4 105.6L2.8 316.8C-2.1 326.1-.4 337.5 7 345s18.9 9.2 28.2 4.2L116.8 306c23.1 9 48.5 14 75.2 14zm3.2 48c16.4 81.9 94.7 144 188.8 144 26.7 0 52.1-5 75.2-14l81.6 43.2c9.3 4.9 20.7 3.2 28.2-4.2s9.2-18.9 4.2-28.2l-35.6-67.2c24.1-29.4 38.4-66 38.4-105.6 0-82.4-61.7-151.5-145-170.7-11.5 115.8-115.8 201.2-235.8 202.7zM196 32c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"]\n};\nvar faMagnifyingGlassLocation = {\n prefix: 'fas',\n iconName: 'magnifying-glass-location',\n icon: [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6 6 7.3 16.8 7.3 22.7 0 22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faSearchLocation = faMagnifyingGlassLocation;\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM64 384l0-64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 416c-17.7 0-32-14.3-32-32zM88 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S74.7 64 88 64zm0 96l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faPentagon = {\n prefix: 'fas',\n iconName: 'pentagon',\n icon: [576, 512, [], \"e790\", \"M316.4-3.1c-16.8-12.2-39.6-12.2-56.4 0L35.3 160.2c-16.8 12.2-23.9 33.9-17.4 53.7l85.8 264.1c6.4 19.8 24.9 33.2 45.7 33.2l277.7 0c20.8 0 39.2-13.4 45.7-33.2l85.8-264.1c6.4-19.8-.6-41.4-17.4-53.7L316.4-3.1z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64-544 0 0-64zm152-32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm232 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM280 160a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 288l416 0 0 112c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 96c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-160 128 0z\"]\n};\nvar faShop = {\n prefix: 'fas',\n iconName: 'shop',\n icon: [576, 512, [\"store-alt\"], \"f54f\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l56.8 113.7c3.6 7.2 5.5 15.1 5.5 23.2 0 27.3-21.2 49.7-48 51.6L512 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-96 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0z\"]\n};\nvar faStoreAlt = faShop;\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [448, 512, [127902, 62368, \"film-alt\", \"film-simple\"], \"f008\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0z\"]\n};\nvar faFilmAlt = faFilm;\nvar faFilmSimple = faFilm;\nvar faBuildingCircleXmark = {\n prefix: 'fas',\n iconName: 'building-circle-xmark',\n icon: [576, 512, [], \"e4d4\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L454.6 400z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [128490, 61670], \"f086\", \"M384 144c0 97.2-86 176-192 176-26.7 0-52.1-5-75.2-14L35.2 349.2c-9.3 4.9-20.7 3.2-28.2-4.2s-9.2-18.9-4.2-28.2l35.6-67.2C14.3 220.2 0 183.6 0 144 0 46.8 86-32 192-32S384 46.8 384 144zm0 368c-94.1 0-172.4-62.1-188.8-144 120-1.5 224.3-86.9 235.8-202.7 83.3 19.2 145 88.3 145 170.7 0 39.6-14.3 76.2-38.4 105.6l35.6 67.2c4.9 9.3 3.2 20.7-4.2 28.2s-18.9 9.2-28.2 4.2L459.2 498c-23.1 9-48.5 14-75.2 14z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [576, 512, [], \"f02c\", \"M401.2 39.1L549.4 189.4c27.7 28.1 27.7 73.1 0 101.2L393 448.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L515.3 256.8c9.2-9.3 9.2-24.4 0-33.7L367 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM32.1 229.5L32.1 96c0-35.3 28.7-64 64-64l133.5 0c17 0 33.3 6.7 45.3 18.7l144 144c25 25 25 65.5 0 90.5L285.4 418.7c-25 25-65.5 25-90.5 0l-144-144c-12-12-18.7-28.3-18.7-45.3zm144-85.5a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faGun = {\n prefix: 'fas',\n iconName: 'gun',\n icon: [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8-448 0C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352 321.4 352c23.7 0 44.8-14.9 52.7-37.2l26.7-74.8 31.1 0c8.5 0 16.6-3.4 22.6-9.4l22.6-22.6 66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304l-92.5 0 16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faCircleCheck = {\n prefix: 'fas',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM374 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L221.1 315.2 169 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.8 7.5 18.8 7s13.4-4.1 17.5-9.8L379.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faScorpio = {\n prefix: 'fas',\n iconName: 'scorpio',\n icon: [640, 512, [], \"e84e\", \"M368 32c61.9 0 112 50.1 112 112l0 289.7c0 7.9 6.4 14.3 14.3 14.3 3.9 0 7.6-1.6 10.2-4.3l40.1-41.1-9.7-9.7c-6.9-6.9-8.9-17.2-5.2-26.2S542.3 352 552 352l64 0 2.5 .1c12.1 1.2 21.5 11.5 21.5 23.9l0 64-.3 3.6c-1.2 8.2-6.7 15.3-14.5 18.6-9 3.7-19.3 1.6-26.2-5.2l-9.1-9.1-39.6 40.6c-14.7 15.1-34.9 23.6-56 23.6-43.3 0-78.3-35.1-78.3-78.3L416 144c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-304c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 94.2 32 80.6 32 64 32 46.3 46.3 32 64 32 91 32 115.3 43.1 132.7 61 152.6 43 179 32 208 32 239.3 32 267.7 44.9 288 65.7 308.3 44.9 336.6 32 368 32z\"]\n};\nvar faIdCardClip = {\n prefix: 'fas',\n iconName: 'id-card-clip',\n icon: [576, 512, [\"id-card-alt\"], \"f47f\", \"M256-32l64 0c17.7 0 32 14.3 32 32l0 64-128 0 0-64c0-17.7 14.3-32 32-32zM64 32l112 0 0 32c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-32 112 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM176 400c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM288 280a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faIdCardAlt = faIdCardClip;\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [127769, 9214], \"f186\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512c68.8 0 131.3-27.2 177.3-71.4 7.3-7 9.4-17.9 5.3-27.1s-13.7-14.9-23.8-14.1c-4.9 .4-9.8 .6-14.8 .6-101.6 0-184-82.4-184-184 0-72.1 41.5-134.6 102.1-164.8 9.1-4.5 14.3-14.3 13.1-24.4S322.6 8.5 312.7 6.3C294.4 2.2 275.4 0 256 0z\"]\n};\nvar faOilWell = {\n prefix: 'fas',\n iconName: 'oil-well',\n icon: [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4-108.2 28.1-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39-132.2 34.3 0-38.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0-61.4-175.4-62.2 16.1 22.1 63.2-66.6 0 19.9-56.9-74.6 19.3-46.7 133.5-41.3 0 0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l16.8-48 100.2 0 16.8 48-133.8 0z\"]\n};\nvar faTachographDigital = {\n prefix: 'fas',\n iconName: 'tachograph-digital',\n icon: [576, 512, [\"digital-tachograph\"], \"f566\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 32c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l136 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 352zm256 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zM496 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM88 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm104-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faDigitalTachograph = faTachographDigital;\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM184 400l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faTabletAndroid = faTablet;\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [448, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M112 32C94.3 32 80 46.3 80 64l0 208-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 48-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-152 0 0-48 112 0c79.5 0 144-64.5 144-144S335.5 32 256 32L112 32zM256 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faRouble = faRubleSign;\nvar faRub = faRubleSign;\nvar faRuble = faRubleSign;\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm152 80l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [128394], \"f304\", \"M352.9 21.2L308 66.1 445.9 204 490.8 159.1C504.4 145.6 512 127.2 512 108s-7.6-37.6-21.2-51.1L455.1 21.2C441.6 7.6 423.2 0 404 0s-37.6 7.6-51.1 21.2zM274.1 100L58.9 315.1c-10.7 10.7-18.5 24.1-22.6 38.7L.9 481.6c-2.3 8.3 0 17.3 6.2 23.4s15.1 8.5 23.4 6.2l127.8-35.5c14.6-4.1 27.9-11.8 38.7-22.6L412 237.9 274.1 100z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M520 200c30.9 0 56 25.1 56 56s-25.1 56-56 56l-127.3 0-159.2 173.6c-6.1 6.6-14.6 10.4-23.6 10.4l-43.7 0c-10.9 0-18.6-10.7-15.2-21.1l54.3-162.9-99.7 0-52.8 66c-3 3.8-7.6 6-12.5 6l-19.8 0c-10.4 0-18-9.8-15.5-19.9L32 256 5 147.9C2.4 137.8 10.1 128 20.5 128l19.8 0c4.9 0 9.5 2.2 12.5 6l52.8 66 99.7 0-54.3-162.9C147.6 26.7 155.3 16 166.2 16l43.7 0c9 0 17.5 3.8 23.6 10.4L392.7 200 520 200z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M96 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64L96 96zM24 128c13.3 0 24 10.7 24 24l0 296c0 8.8 7.2 16 16 16l360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L64 512c-35.3 0-64-28.7-64-64L0 152c0-13.3 10.7-24 24-24zm168 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm196.5 11.5c-4.4-7.1-12.1-11.5-20.5-11.5s-16.1 4.4-20.5 11.5l-56.3 92.1-24.5-30.6c-4.6-5.7-11.4-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S174.8 352 184 352l272 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144z\"]\n};\nvar faMobileScreen = {\n prefix: 'fas',\n iconName: 'mobile-screen',\n icon: [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM128 440c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24zM304 64l-224 0 0 304 224 0 0-304z\"]\n};\nvar faMobileAndroidAlt = faMobileScreen;\nvar faGuaraniSign = {\n prefix: 'fas',\n iconName: 'guarani-sign',\n icon: [384, 512, [], \"e19a\", \"M192 0c-13.3 0-24 10.7-24 24l0 41.5C73.3 77.3 0 158.1 0 256S73.3 434.7 168 446.5l0 41.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-41.5c94.7-11.8 168-92.6 168-190.5 0-17.7-14.3-32-32-32l-136 0 0-93.8c25.3 4.8 47.9 17 65.6 34.3 12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C297.2 90.2 258.8 70.8 216 65.5L216 24c0-13.3-10.7-24-24-24zM168 130.2l0 251.5C108.8 370.5 64 318.5 64 256s44.8-114.5 104-125.8zm48 251.5l0-93.8 100 0c-12.3 47.6-51.2 84.5-100 93.8z\"]\n};\nvar faBagShopping = {\n prefix: 'fas',\n iconName: 'bag-shopping',\n icon: [448, 512, [\"shopping-bag\"], \"f290\", \"M160 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48c0-61.9-50.1-112-112-112S112 18.1 112 80l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faShoppingBag = faBagShopping;\nvar faCircleRight = {\n prefix: 'fas',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3l-104 104c-4.6 4.6-11.5 5.9-17.4 3.5S256 366.5 256 360l0-56-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-56c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l104 104c6.2 6.2 6.2 16.4 0 22.6z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [576, 512, [\"volume-control-phone\"], \"f2a0\", \"M344-32c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM320 88c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24zM144.1 1.4c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c32.5 71.6 89 130 159.3 164.9L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5C523.4 470.1 460.9 525.3 384.6 509.2 209.6 472.1 71.9 334.4 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5z\"]\n};\nvar faVolumeControlPhone = faPhoneVolume;\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M284-1.3c-17.3-10-38.7-10-56 0L143.8 47.3c-17.3 10-28 28.5-28 48.5l0 101.9-88.3 51c-17.3 10-28 28.5-28 48.5l0 97.3c0 20 10.7 38.5 28 48.5l84.3 48.6c17.3 10 38.7 10 56 0l88.3-51 88.3 51c17.3 10 38.7 10 56 0L484.5 443c17.3-10 28-28.5 28-48.5l0-97.3c0-20-10.7-38.5-28-48.5l-88.3-51 0-101.9c0-20-10.7-38.5-28-48.5L284-1.3zM232 292.6l0 106.5-88.3 51c-1.2 .7-2.6 1.1-4 1.1l0-105.3 92.3-53.3zm231.4 .6c.7 1.2 1.1 2.6 1.1 4l0 97.3c0 2.9-1.5 5.5-4 6.9l-84.3 48.6c-1.2 .7-2.6 1.1-4 1.1l0-105.3 91.2-52.6zM348.3 95.8l0 101.9-92.3 53.3 0-106.5 91.2-52.6c.7 1.2 1.1 2.6 1.1 4z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [128222, 128379], \"f095\", \"M160.2 25C152.3 6.1 131.7-3.9 112.1 1.4l-5.5 1.5c-64.6 17.6-119.8 80.2-103.7 156.4 37.1 175 174.8 312.7 349.8 349.8 76.3 16.2 138.8-39.1 156.4-103.7l1.5-5.5c5.4-19.7-4.7-40.3-23.5-48.1l-97.3-40.5c-16.5-6.9-35.6-2.1-47 11.8l-38.6 47.2C233.9 335.4 177.3 277 144.8 205.3L189 169.3c13.9-11.3 18.6-30.4 11.8-47L160.2 25z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [448, 512, [9961], \"f6a1\", \"M0 96L0 28.5C0 21.6 5.6 16 12.5 16 14.8 16 17 16.6 19 17.8L58 41.2C82.9 56.1 111.3 64 140.3 64l167.4 0c29 0 57.5-7.9 82.3-22.8l39-23.4c1.9-1.2 4.2-1.8 6.4-1.8 6.9 0 12.5 5.6 12.5 12.5L448 96c0 35.3-28.7 64-64 64l0 64 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-192 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-64C28.7 160 0 131.3 0 96zM128 224l64 0 0-64-64 0 0 64zm128 0l64 0 0-64-64 0 0 64z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [129363], \"f7e5\", \"M557 96.7c14.4 14.4 12.4 38.4-4.3 50.2l-64.6 45.7c-43.7 30.9-79.2 71.9-103.4 119.6l-25.3 49.8c-25.1 49.3-62.1 91.5-107.8 122.6l-74.1 50.6c-13.1 8.9-30.7 7.3-41.8-3.9l-44.9-44.9 86.5-66.5c42.3-32.5 76.7-74.3 100.6-122l24.5-49.1c24.5-49 61.8-90.6 107.9-120.2l108.7-69.9 38 38zM484.2 23.9L384.3 88.2c-53.4 34.3-96.5 82.4-124.9 139.1l-24.5 49.1c-20.6 41.3-50.3 77.3-86.9 105.4l-91.4 70.3-36.9-36.9c-14.4-14.4-12.4-38.4 4.3-50.2l64.6-45.7c43.7-30.9 79.2-71.9 103.4-119.6l25.3-49.8C242.3 100.8 279.3 58.6 325 27.4l74.1-50.6c13.1-8.9 30.6-7.3 41.8 3.9l43.3 43.3z\"]\n};\nvar faPersonFallingBurst = {\n prefix: 'fas',\n iconName: 'person-falling-burst',\n icon: [576, 512, [], \"e547\", \"M256 0c17.7 0 32 14.3 32 32l0 5.4c0 55.2-23.7 107-63.9 143.1l62.9 75.5 89 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L368 320 263.2 320 376.8 459.8c11.1 13.7 9.1 33.9-4.7 45s-33.9 9.1-45-4.7L137.4 266.6c-6.1 15-9.4 31.3-9.4 48l0 69.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-69.4c0-67.4 35.4-129.9 93.2-164.6l4.6-2.8C200.4 124 224 82.4 224 37.4l0-5.4c0-17.7 14.3-32 32-32zM16 88A56 56 0 1 1 128 88 56 56 0 1 1 16 88zm376-7.9c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48zm104 152c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0zm-54.5-97.5c-9.4-9.4-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136z\"]\n};\nvar faQuoteRightAlt = faQuoteRight;\nvar faHouseMedicalFlag = {\n prefix: 'fas',\n iconName: 'house-medical-flag',\n icon: [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM267.5 59.1L400 186.9 400 503.4c-9.4 5.4-20.3 8.6-32 8.6l-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0C12.6 304 0 291.4 0 275.9 0 268.3 3.1 261 8.6 255.7L212.5 59.1C219.9 52 229.7 48 240 48s20.1 4 27.5 11.1zM204.8 256.8l0 44-44 0c-9.7 0-17.6 7.9-17.6 17.6l0 35.2c0 9.7 7.9 17.6 17.6 17.6l44 0 0 44c0 9.7 7.9 17.6 17.6 17.6l35.2 0c9.7 0 17.6-7.9 17.6-17.6l0-44 44 0c9.7 0 17.6-7.9 17.6-17.6l0-35.2c0-9.7-7.9-17.6-17.6-17.6l-44 0 0-44c0-9.7-7.9-17.6-17.6-17.6l-35.2 0c-9.7 0-17.6 7.9-17.6 17.6z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7 202.2 220.9C251.4 209.1 288 164.8 288 112 288 50.1 237.9 0 176 0L32 0zM176 160l-112 0 0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBuildingLock = {\n prefix: 'fas',\n iconName: 'building-lock',\n icon: [576, 512, [], \"e4d6\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L96 512c-35.3 0-64-28.7-64-64L32 64zM176 384l0 80 80 0 0-64.1c0-13.7 1.9-27 5.5-39.6-5.7-5.2-13.2-8.3-21.5-8.3l-32 0c-17.7 0-32 14.3-32 32zM307 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm352 80.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64L0 96zm0 48l576 0 0 272c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 144zM247.3 416c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29-12.9 15.6 2.2 35 22.4 35l142.5 0zM176 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM360 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faCirclePlay = {\n prefix: 'fas',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faFaceLaughBeam = {\n prefix: 'fas',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM176 164c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [512, 512, [], \"f06c\", \"M471.3 6.7C477.7 .6 487-1.6 495.6 1.2 505.4 4.5 512 13.7 512 24l0 186.9c0 131.2-108.1 237.1-238.8 237.1-77 0-143.4-49.5-167.5-118.7-35.4 30.8-57.7 76.1-57.7 126.7 0 13.3-10.7 24-24 24S0 469.3 0 456C0 381.1 38.2 315.1 96.1 276.3 131.4 252.7 173.5 240 216 240l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-39.7 0-77.3 8.8-111 24.5 23.3-70 89.2-120.5 167-120.5 66.4 0 115.8-22.1 148.7-44 19.2-12.8 35.5-28.1 50.7-45.3z\"]\n};\nvar faHouseChimneyUser = {\n prefix: 'fas',\n iconName: 'house-chimney-user',\n icon: [512, 512, [], \"e065\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM312 256a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM144 432c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80z\"]\n};\nvar faRotateRight = {\n prefix: 'fas',\n iconName: 'rotate-right',\n icon: [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M488 192l-144 0c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l46.7-46.7c-75.3-58.6-184.3-53.3-253.5 15.9-75 75-75 196.5 0 271.5s196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c94.3-94.3 243.7-99.6 344.3-16.2L471 7c6.9-6.9 17.2-8.9 26.2-5.2S512 14.3 512 24l0 144c0 13.3-10.7 24-24 24z\"]\n};\nvar faRedoAlt = faRotateRight;\nvar faRotateForward = faRotateRight;\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [129463], \"f5c9\", \"M145 5.7L224 32 303 5.7C314.3 1.9 326 0 337.9 0 398.7 0 448 49.3 448 110.1l0 68.5c0 29.4-9.5 58.1-27.2 81.6l-1.1 1.5c-12.9 17.2-21.3 37.4-24.3 58.7L373.7 471.9c-3.3 23-23 40.1-46.2 40.1-22.8 0-42.3-16.5-46-39L261.3 351.6c-3-18.2-18.8-31.6-37.3-31.6s-34.2 13.4-37.3 31.6L166.5 473c-3.8 22.5-23.2 39-46 39-23.2 0-42.9-17.1-46.2-40.1L52.6 320.5c-3-21.3-11.4-41.5-24.3-58.7l-1.1-1.5C9.5 236.7 0 208.1 0 178.7l0-68.5C0 49.3 49.3 0 110.1 0 122 0 133.7 1.9 145 5.7z\"]\n};\nvar faHouseChimneyWindow = {\n prefix: 'fas',\n iconName: 'house-chimney-window',\n icon: [512, 512, [], \"e00d\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM216 224c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [127949], \"f21c\", \"M280 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l56.6 0 22.5 48.7-95.1 71.3c-33.4-25.1-75-40-120-40l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c78.5 0 143.2 59.6 151.2 136l-25.4 0c-11.2-59.2-63.3-104-125.8-104-70.7 0-128 57.3-128 128S73.3 480 144 480c62.5 0 114.5-44.8 125.8-104l50.2 0c13.3 0 24-10.7 24-24l0-22.5c0-45.1 25.7-85.4 65.5-107.7l12.1 26.1c-32.4 23.2-53.5 61.2-53.5 104.1 0 70.7 57.3 128 128 128s128-57.3 128-128-57.3-128-128-128c-10.7 0-21 1.3-30.9 3.8L433.8 160 488 160c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-53.3 0c-6.9 0-13.7 2.2-19.2 6.4l-17.1 12.8-24.6-53.3C369.9 21.4 361.4 16 352 16l-72 0zM445.8 300.4l28.4 61.6c5.6 12 19.8 17.3 31.8 11.7s17.3-19.8 11.7-31.8l-28.5-61.6c2.2-.2 4.4-.3 6.7-.3 39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72c0-20.2 8.3-38.5 21.8-51.6zM144 424c-39.8 0-72-32.2-72-72s32.2-72 72-72c31.3 0 58 20 67.9 48L144 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.9 0c-9.9 28-36.6 48-67.9 48z\"]\n};\nvar faBackwardFast = {\n prefix: 'fas',\n iconName: 'backward-fast',\n icon: [512, 512, [9198, \"fast-backward\"], \"f049\", \"M492.2 477.6c-12 5-25.7 2.2-34.9-6.9L288 301.3 288 448c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L64 301.3 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32S64 46.3 64 64L64 210.7 233.4 41.4c9.2-9.2 22.9-11.9 34.9-6.9S288 51.1 288 64l0 146.7 169.4-169.4c9.2-9.2 22.9-11.9 34.9-6.9S512 51.1 512 64l0 384c0 12.9-7.8 24.6-19.8 29.6z\"]\n};\nvar faFastBackward = faBackwardFast;\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zm0 128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 320c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faContactBook = faAddressBook;\nvar faSailboat = {\n prefix: 'fas',\n iconName: 'sailboat',\n icon: [512, 512, [], \"e445\", \"M240 35.9l0 348.1-224 0c-8.8 0-16 7.2-16 16 0 61.9 50.1 112 112 112l288 0c61.9 0 112-50.1 112-112 0-8.8-7.2-16-16-16l-208 0 0-48 161.7 0c12.9 0 20.5-14.4 13.2-25L269.2 26.9c-8.9-13-29.2-6.7-29.2 9zM192 320l0-184.2c0-16.1-21-22.1-29.6-8.5L47.3 311.5c-6.7 10.7 1 24.5 13.6 24.5L176 336c8.8 0 16-7.2 16-16z\"]\n};\nvar faBookBookmark = {\n prefix: 'fas',\n iconName: 'book-bookmark',\n icon: [448, 512, [], \"e0bb\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48l-48 0 0 169.4c0 12.5-10.1 22.6-22.6 22.6-6 0-11.8-2.4-16-6.6L272 144 230.6 185.4c-4.2 4.2-10 6.6-16 6.6-12.5 0-22.6-10.1-22.6-22.6L192 0 96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faMagnifyingGlassArrowRight = {\n prefix: 'fas',\n iconName: 'magnifying-glass-arrow-right',\n icon: [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM305 225c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"]\n};\nvar faMicrophoneLines = {\n prefix: 'fas',\n iconName: 'microphone-lines',\n icon: [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L232 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-4.1 49.3-45.3 88-95.7 88-53 0-96-43-96-96L96 96zM24 160c13.3 0 24 10.7 24 24l0 40c0 79.5 64.5 144 144 144s144-64.5 144-144l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 97.9-73.3 178.7-168 190.5l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C73.3 402.7 0 321.9 0 224l0-40c0-13.3 10.7-24 24-24z\"]\n};\nvar faMicrophoneAlt = faMicrophoneLines;\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [\"mail-reply-all\"], \"f122\", \"M332.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 48 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-32 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9zM205.6 23.1c9.4 9.4 9.4 24.6 0 33.9L54.6 208 205.6 358.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L10 231.2c-6.4-6-10-14.4-10-23.2s3.6-17.2 10-23.2L171.6 23.1c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faMailReplyAll = faReplyAll;\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2S339 397 334.8 384.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [512, 512, [129531, 63263, \"toilet-paper-alt\", \"toilet-paper-blank\"], \"f71e\", \"M327.1 32c-8.8 11.1-16 23.1-21.9 34.8-21.4 42.7-33.2 98.4-33.2 157.2l0 264c0 30.9-25.1 56-56 56L56 544c-30.9 0-56-25.1-56-56L0 224C0 118 43 32 96 32l231.1 0zM416 416c-53 0-96-86-96-192s43-192 96-192 96 86 96 192-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64-32 28.7-32 64 14.3 64 32 64z\"]\n};\nvar faToiletPaperAlt = faToiletPaper;\nvar faToiletPaperBlank = faToiletPaper;\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [576, 512, [], \"f729\", \"M512 96L64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l117.5 0c17 0 33.3-6.7 45.3-18.7l33.9-33.9c7.2-7.2 17.1-11.3 27.3-11.3s20.1 4.1 27.3 11.3l33.9 33.9c12 12 28.3 18.7 45.3 18.7L512 416c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64zM80 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm352-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L112.5 72C293.3 72.3 439.7 218.7 440 399.5l36.4-9.7c20.8-5.5 36.3-24.7 34.7-47.5-12.6-182.8-158.6-328.8-341.4-341.4zm222 411.5c.2-4.1 .3-8.2 .3-12.4 0-154.6-125.4-280-280-280-4.1 0-8.3 .1-12.4 .3L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1l371.6-99.1zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [576, 512, [], \"f5bd\", \"M192 0l64 0c17.7 0 32 14.3 32 32l0 80-128 0 0-80c0-17.7 14.3-32 32-32zM64 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48l-224 0c-26.5 0-48-21.5-48-48l0-208zm240 80a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM320 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM512 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faVolumeLow = {\n prefix: 'fas',\n iconName: 'volume-low',\n icon: [448, 512, [128264, \"volume-down\"], \"f027\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM380.6 181.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C361.1 227.6 368 241 368 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C402.1 312.9 416 286.1 416 256s-13.9-56.9-35.5-74.5z\"]\n};\nvar faVolumeDown = faVolumeLow;\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z\"]\n};\nvar faPerson = {\n prefix: 'fas',\n iconName: 'person',\n icon: [384, 512, [129485, \"male\"], \"f183\", \"M248 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C274 132 234.3 112 192 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3z\"]\n};\nvar faMale = faPerson;\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1l-67.9 67.9 67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1l67.9-67.9-67.9-67.9C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9l67.9 67.9 67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11-192 0zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9l-67.9-67.9-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8 4.7 9.2 4.7 20.1 0 29.3-14.1 27.4-41.9 66.8-81 99.8-39.2 33.1-92 61.5-155.5 61.5s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9s-12.4-26-5.3-38.6L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2-4.6-1.1-9.5-1.8-14.5-1.8-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12 0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1 11.9-1.2 16.4-15.5 10.8-26-8.5-15.8-13.3-33.8-13.3-53 0-61.9 50.1-112 112-112 8 0 15.7 .8 23.2 2.4 11.7 2.5 24.1-5.9 22-17.6-14.7-82.3-86.7-144.8-173.2-144.8-97.2 0-176 78.8-176 176l0 89.2z\"]\n};\nvar faChartSimple = {\n prefix: 'fas',\n iconName: 'chart-simple',\n icon: [512, 512, [], \"e473\", \"M192 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM432 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [9883], \"f5d2\", \"M224 398.8c-11.8 5.1-23.4 9.7-34.9 13.5 16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM414 256c33 45.2 44.3 90.9 23.6 128-20.2 36.3-62.5 49.3-115.2 43.2-22 52.1-55.7 84.8-98.4 84.8s-76.4-32.7-98.4-84.8C72.9 433.3 30.6 420.3 10.4 384-10.3 346.9 1 301.2 34 256 1 210.8-10.3 165.1 10.4 128 30.6 91.7 72.9 78.7 125.6 84.8 147.6 32.7 181.2 0 224 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2 20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2 31.8 1.4 38.6-8.7 40.2-11.7 2.3-4.2 7-17.9-11.9-48.1-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2 7.6 6.1 14.8 12.3 21.6 18.6 18.9-30.2 14.2-44 11.9-48.1-1.6-2.9-8.4-13-40.2-11.7zM258.9 99.7C242.1 65.9 227.9 64 224 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5 11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2-31.8-1.4-38.6 8.7-40.2 11.7-2.3 4.2-7 17.9 11.9 48.1 6.8-6.3 14-12.5 21.6-18.6zM78.2 304.8c-18.9 30.2-14.2 44-11.9 48.1 1.6 2.9 8.4 13 40.2 11.7-2.8-13.1-5-26.9-6.7-41.2-7.6-6.1-14.8-12.3-21.6-18.6zM304 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faP = {\n prefix: 'fas',\n iconName: 'p',\n icon: [320, 512, [112], \"50\", \"M0 64C0 46.3 14.3 32 32 32l128 0c88.4 0 160 71.6 160 160S248.4 352 160 352l-96 0 0 96c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96l-96 0 0 192z\"]\n};\nvar faJetFighterUp = {\n prefix: 'fas',\n iconName: 'jet-fighter-up',\n icon: [512, 512, [], \"e518\", \"M206.8 47.8C202.3 58.5 200 70 200 81.6l0 100.4-152 114 0-48c0-13.3-10.7-24-24-24S0 234.7 0 248L0 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 152 0 0 54.4-66 52.8c-3.8 3-6 7.6-6 12.5l0 24.3c0 8.8 7.2 16 16 16l88 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 88 0c8.8 0 16-7.2 16-16l0-24.3c0-4.9-2.2-9.5-6-12.5l-66-52.8 0-54.4 152 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48-152-114 0-100.4c0-11.6-2.3-23.1-6.8-33.8l-27.1-65C274.4-26.2 265.7-32 256-32s-18.4 5.8-22.2 14.8l-27.1 65z\"]\n};\nvar faPlugCircleXmark = {\n prefix: 'fas',\n iconName: 'plug-circle-xmark',\n icon: [640, 512, [], \"e560\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faSheetPlastic = {\n prefix: 'fas',\n iconName: 'sheet-plastic',\n icon: [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64l149.5 0c17 0 33.3-6.7 45.3-18.7L365.3 386.7c12-12 18.7-28.3 18.7-45.3L384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zm208 5.5l0-93.5c0-13.3 10.7-24 24-24l93.5 0-117.5 117.5zM153 105l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zm96 32L137 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L215 103c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faV = {\n prefix: 'fas',\n iconName: 'v',\n icon: [384, 512, [118], \"56\", \"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"]\n};\nvar faListSquares = faList;\nvar faPisces = {\n prefix: 'fas',\n iconName: 'pisces',\n icon: [448, 512, [], \"e84c\", \"M40.4 10.4c11.9-13 32.2-13.9 45.2-2 2.9 2.7 28.3 26.7 53.6 67.8 22.3 36.2 45 86.6 51.1 147.8l67.3 0c6.1-61.1 28.8-111.6 51.1-147.8 25.3-41.1 50.7-65.1 53.6-67.8 13-11.9 33.3-11.1 45.2 2 11.9 13 11 33.3-2 45.2-1.4 1.3-22 21.1-42.4 54.2-17.9 29.1-35.4 68-41.2 114.2l94 0 3.3 .2c16.1 1.6 28.7 15.3 28.7 31.8s-12.6 30.2-28.7 31.8l-3.3 .2-94 0c5.8 46.2 23.3 85.1 41.2 114.2 20.4 33.1 41 52.9 42.4 54.2 13 11.9 13.9 32.2 2 45.2-11.9 13-32.2 13.9-45.2 2-2.9-2.7-28.3-26.7-53.6-67.8-22.3-36.2-45-86.6-51.1-147.8l-67.3 0c-6.1 61.1-28.8 111.6-51.1 147.8-25.3 41.1-50.7 65.1-53.6 67.8-13 11.9-33.3 11.1-45.2-2-11.9-13-11-33.3 2-45.2 1.4-1.3 22-21.1 42.4-54.2 17.9-29.1 35.4-68 41.2-114.2l-94 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l94 0c-5.8-46.2-23.3-85.1-41.2-114.2-20.4-33.1-41-52.9-42.4-54.2-13-11.9-13.9-32.2-2-45.2z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [576, 512, [], \"f5ba\", \"M121.8 32c-30 0-56 20.8-62.5 50.1L9.6 306.1C.7 346.1 31.1 384 72 384l184.1 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 184.1 0c40.9 0 71.4-37.9 62.5-77.9l-49.8-224C510.4 52.8 484.5 32 454.5 32L121.8 32zM245.6 96l85.2 0 7.3 88-99.8 0 7.3-88zm-55.5 88l-87.8 0 19.6-88 75.6 0-7.3 88zM91.6 232l94.5 0-7.3 88-106.7 0 19.6-88zm142.6 0l107.8 0 7.3 88-122.5 0 7.3-88zm156 0l94.5 0 19.6 88-106.7 0-7.3-88zM474 184l-87.8 0-7.3-88 75.6 0 19.6 88z\"]\n};\nvar faLandMineOn = {\n prefix: 'fas',\n iconName: 'land-mine-on',\n icon: [576, 512, [], \"e51b\", \"M312 0l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24L264 0c0-13.3 10.7-24 24-24s24 10.7 24 24zM160 288c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l80 0 0-32zM12 114.7c7.4-11 22.3-14 33.3-6.7l96 64c11 7.4 14 22.3 6.7 33.3s-22.3 14-33.3 6.7l-96-64c-11-7.4-14-22.3-6.7-33.3zM530.7 108c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-96 64c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l96-64z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [448, 512, [127911, 62863, \"headphones-alt\", \"headphones-simple\"], \"f025\", \"M64 224c0-88.4 71.6-160 160-160s160 71.6 160 160l0 37.5c-10-3.5-20.8-5.5-32-5.5l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-11.2 0-22 1.9-32 5.5L64 224z\"]\n};\nvar faHeadphonesAlt = faHeadphones;\nvar faHeadphonesSimple = faHeadphones;\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [448, 512, [128653], \"f207\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 176c0-17.7 14.3-32 32-32l104 0 0 112-104 0c-17.7 0-32-14.3-32-32l0-48zm184 80l0-112 104 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-104 0zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM152 72c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM152 256c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 24 0c39.8 0 72-32.2 72-72s-32.2-72-72-72l-48 0zm48 96l-24 0 0-48 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-136z\"]\n};\nvar faQuoteLeftAlt = faQuoteLeft;\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"]\n};\nvar faEarthAsia = {\n prefix: 'fas',\n iconName: 'earth-asia',\n icon: [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M50 284.8c4.2 2.1 9 3.2 14 3.2l50.7 0c8.5 0 16.6 3.4 22.6 9.4l13.3 13.3c6 6 14.1 9.4 22.6 9.4l18.7 0c17.7 0 32-14.3 32-32l0-40c0-13.3 10.7-24 24-24s24-10.7 24-24l0-42.7c0-8.5 3.4-16.6 9.4-22.6l13.3-13.3c6-6 9.4-14.1 9.4-22.6L304 57c0-1.2-.1-2.3-.2-3.5-15.4-3.6-31.4-5.5-47.8-5.5-114.9 0-208 93.1-208 208 0 9.8 .7 19.4 2 28.8zm403.3 37.3c-3.2-1.4-6.7-2.1-10.5-2.1L432 320c-8.8 0-16-7.2-16-16s-7.2-16-16-16l-34.7 0c-8.5 0-16.6 3.4-22.6 9.4l-45.3 45.3c-6 6-9.4 14.1-9.4 22.6l0 18.7c0 17.7 14.3 32 32 32l18.7 0c8.5 0 16.6 3.4 22.6 9.4 2.2 2.2 4.7 4.1 7.3 5.5 39.3-25.4 69.5-63.6 84.6-108.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM128 368c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM272 256c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm48-112l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faGlobeAsia = faEarthAsia;\nvar faCentSign = {\n prefix: 'fas',\n iconName: 'cent-sign',\n icon: [384, 512, [], \"e3f5\", \"M208 0c17.7 0 32 14.3 32 32l0 25.4c43.6 5.2 83 24.5 113.3 53.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-24.4-23-57.2-37.1-93.3-37.1-75.1 0-136 60.9-136 136s60.9 136 136 136c36.2 0 69-14.1 93.3-37.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C323 430.1 283.6 449.4 240 454.6l0 25.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-28C84.7 433.5 16 352.8 16 256S84.7 78.5 176 60l0-28c0-17.7 14.3-32 32-32z\"]\n};\nvar faShieldCat = {\n prefix: 'fas',\n iconName: 'shield-cat',\n icon: [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faSchoolCircleCheck = {\n prefix: 'fas',\n iconName: 'school-circle-check',\n icon: [640, 512, [], \"e56b\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faMartiniGlass = {\n prefix: 'fas',\n iconName: 'martini-glass',\n icon: [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M2.4 51.8C7.4 39.8 19.1 32 32 32l448 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L288 301.3 288 448 352 448c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-146.7-214.6-214.6C.2 77.5-2.5 63.7 2.4 51.8zM354.7 144l48-48-293.5 0 48 48 197.5 0z\"]\n};\nvar faGlassMartiniAlt = faMartiniGlass;\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [448, 512, [128268], \"f1e6\", \"M128-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 95.1-69.2 174.1-160 189.3l0 66.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C101.2 398.1 32 319.1 32 224l0-64c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0 0-96c0-17.7 14.3-32 32-32z\"]\n};\nvar faPanorama = {\n prefix: 'fas',\n iconName: 'panorama',\n icon: [576, 512, [], \"e209\", \"M43.9 48C19.7 48 0 67.7 0 91.9L0 420.1c0 24.3 19.7 43.9 43.9 43.9 5.5 0 10.7-1 15.7-2.9 12.9-4.9 103.4-37.1 228.4-37.1s215.5 32.3 228.4 37.1c5 1.9 10.2 2.9 15.7 2.9 24.3 0 43.9-19.7 43.9-43.9l0-328.2c0-24.3-19.7-43.9-43.9-43.9-5.5 0-10.7 1-15.7 2.9-12.9 4.9-103.4 37.1-228.4 37.1S72.5 55.7 59.6 50.9C54.6 49 49.4 48 43.9 48zM72 176a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm264.1-16c7.5 0 14.6 3.6 19.1 9.6L479.7 336.2c5.9 7.9 6.4 18.5 1.3 26.9s-14.8 12.8-24.5 11.1c-45.8-7.8-103.3-14.2-168.4-14.2-65.6 0-123.4 6.5-169.3 14.4-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L165.3 249c4.6-5.7 11.5-9 18.7-9s14.2 3.3 18.7 9l27.5 34.4 86.7-113.9c4.6-6 11.7-9.5 19.2-9.5z\"]\n};\nvar faClockRotateLeft = {\n prefix: 'fas',\n iconName: 'clock-rotate-left',\n icon: [576, 512, [\"history\"], \"f1da\", \"M288 64c106 0 192 86 192 192S394 448 288 448c-65.2 0-122.9-32.5-157.6-82.3-10.1-14.5-30.1-18-44.6-7.9s-18 30.1-7.9 44.6C124.1 468.6 201 512 288 512 429.4 512 544 397.4 544 256S429.4 0 288 0C202.3 0 126.5 42.1 80 106.7L80 80c0-17.7-14.3-32-32-32S16 62.3 16 80l0 112c0 17.7 14.3 32 32 32l24.6 0c.5 0 1 0 1.5 0l86 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-38.3 0C154.9 102.6 217 64 288 64zm24 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1z\"]\n};\nvar faHistory = faClockRotateLeft;\nvar faJarWheat = {\n prefix: 'fas',\n iconName: 'jar-wheat',\n icon: [320, 512, [], \"e517\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm112 32l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7z\"]\n};\nvar faCloudArrowDown = {\n prefix: 'fas',\n iconName: 'cloud-arrow-down',\n icon: [576, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM377 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72z\"]\n};\nvar faCloudDownload = faCloudArrowDown;\nvar faCloudDownloadAlt = faCloudArrowDown;\nvar faTruckRampBox = {\n prefix: 'fas',\n iconName: 'truck-ramp-box',\n icon: [576, 512, [\"truck-loading\"], \"f4de\", \"M400 32c-44.2 0-80 35.8-80 80l0 248.2-297.2 89.2C5.9 454.4-3.7 472.3 1.4 489.2s22.9 26.5 39.8 21.5l315.5-94.6 43.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88l0-392-176 0zM528 424c0 22.1-17.9 40-40 40s-40-17.9-40-40 17.9-40 40-40c22.1 0 39.9 17.9 40 39.9l0 .1zM51.9 149.5C18.1 159.8-.9 195.6 9.4 229.4l28.1 91.8C47.8 355 83.6 374 117.4 363.7l91.8-28.1c33.8-10.3 52.8-46.1 42.5-79.9l-28.1-91.8c-10.3-33.8-46.1-52.8-79.9-42.5L51.9 149.5z\"]\n};\nvar faTruckLoading = faTruckRampBox;\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [384, 512, [8964], \"f107\", \"M169.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 306.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faPlugCircleCheck = {\n prefix: 'fas',\n iconName: 'plug-circle-check',\n icon: [640, 512, [], \"e55c\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm24 64l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 176c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faHandsHoldingCircle = {\n prefix: 'fas',\n iconName: 'hands-holding-circle',\n icon: [640, 512, [], \"e4fb\", \"M320 0a128 128 0 1 1 0 256 128 128 0 1 1 0-256zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faLocationPin = {\n prefix: 'fas',\n iconName: 'location-pin',\n icon: [384, 512, [\"map-marker\"], \"f041\", \"M192 0C86 0 0 84.4 0 188.6 0 307.9 120.2 450.9 170.4 505.4 182.2 518.2 201.8 518.2 213.6 505.4 263.8 450.9 384 307.9 384 188.6 384 84.4 298 0 192 0z\"]\n};\nvar faMapMarker = faLocationPin;\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [512, 512, [], \"f436\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faCartFlatbed = {\n prefix: 'fas',\n iconName: 'cart-flatbed',\n icon: [576, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 39.8 29.1 72.8 67.1 79-2 5.3-3.1 11-3.1 17 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l34.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-400 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM224 64c-26.5 0-48 21.5-48 48l0 176c0 26.5 21.5 48 48 48l240 0c26.5 0 48-21.5 48-48l0-176c0-26.5-21.5-48-48-48L224 64z\"]\n};\nvar faDollyFlatbed = faCartFlatbed;\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [512, 512, [\"home-user\"], \"e1b0\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM144 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHomeUser = faHouseUser;\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [128123], \"f6e2\", \"M40.1 467.1l-11.2 9C25.7 478.6 21.8 480 17.8 480 8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCommentNodes = {\n prefix: 'fas',\n iconName: 'comment-nodes',\n icon: [640, 512, [], \"e696\", \"M480 208C503.7 208 525.6 215.3 543.7 227.9 536.9 100.9 425 0 288 0 146.6 0 32 107.5 32 240 32 294.3 51.2 344.3 83.6 384.5L34.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7c27.2 11.4 56.9 18.4 88.1 20.2 .1-18.9 4.9-38 15-55.5 17.1-29.7 45.8-48.5 77-54.2l9.2-16c-3.4-10.7-5.2-22-5.2-33.8 0-61.9 50.1-112 112-112zM328.6 448c-17.7 30.6-7.2 69.7 23.4 87.4s69.7 7.2 87.4-23.4c1.5-2.6 2.8-5.3 3.9-8l73.3 0c1.1 2.7 2.4 5.4 3.9 8 17.7 30.6 56.8 41.1 87.4 23.4s41.1-56.8 23.4-87.4c-13.4-23.2-39.1-34.8-64-31.4l-17.6-30.7c-11 11.7-25 20.6-40.6 25.6l16.5 28.9c-3.8 4.8-6.8 10-9 15.6l-73.4 0c-2.2-5.6-5.3-10.8-9-15.6l33-57.7c4.1 .8 8.4 1.3 12.8 1.3 35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64c0 13.4 4.1 25.8 11.2 36.1l-34.6 60.5c-25-3.4-50.6 8.3-64 31.4z\"]\n};\nvar faPersonArrowDownToLine = {\n prefix: 'fas',\n iconName: 'person-arrow-down-to-line',\n icon: [576, 512, [], \"e538\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 480l32 0 0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128zM566.6 166.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L432 146.7 432 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 146.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faPlugCirclePlus = {\n prefix: 'fas',\n iconName: 'plug-circle-plus',\n icon: [640, 512, [], \"e55f\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"]\n};\nvar faPersonSwimming = {\n prefix: 'fas',\n iconName: 'person-swimming',\n icon: [640, 512, [127946, \"swimmer\"], \"f5c4\", \"M552 152a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM293.4 198.2l-88.6 73.9c1.1 0 2.2-.1 3.3-.1 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 4.8 0 9.7 .2 14.5 .6-8.3-30-24.3-57.7-46.8-80.2-18.4-18.4-40.6-32.7-65-41.8l-68.6-25.7c-27.4-10.3-58-7.5-83.1 7.6l-53.5 32.1c-15.2 9.1-20.1 28.7-11 43.9s28.7 20.1 43.9 11L230 187.3c8.4-5 18.6-5.9 27.7-2.5l35.7 13.4zm110 181.9c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 386.3 17.6 394.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faSwimmer = faPersonSwimming;\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCommenting = faCommentDots;\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [576, 512, [\"pie-chart\"], \"f200\", \"M512.4 240l-176 0c-17.7 0-32-14.3-32-32l0-176c0-17.7 14.4-32.2 31.9-29.9 107 14.2 191.8 99 206 206 2.3 17.5-12.2 31.9-29.9 31.9zM222.6 37.2c18.1-3.8 33.8 11 33.8 29.5l0 197.3c0 5.6 2 11 5.5 15.3L394 438.7c11.7 14.1 9.2 35.4-6.9 44.1-34.1 18.6-73.2 29.2-114.7 29.2-132.5 0-240-107.5-240-240 0-115.5 81.5-211.9 190.2-234.8zM477.8 288l64 0c18.5 0 33.3 15.7 29.5 33.8-10.2 48.4-35 91.4-69.6 124.2-12.3 11.7-31.6 9.2-42.4-3.9L374.9 340.4c-17.3-20.9-2.4-52.4 24.6-52.4l78.2 0z\"]\n};\nvar faPieChart = faChartPie;\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9 0 21.8-11.7 41.9-30.7 52.7l-144.5 82.1 92.5 92.5 50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2 27.9-18.5 65.9-15.4 90.5 9.2 24.7 24.7 27.7 62.9 9 90.9-2.6 3.8-5.6 7.5-9 10.9L261.8 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480C28.7 480 0 451.3 0 416 0 249.6 127 112.9 289.3 97.5 296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [320, 512, [], \"f72f\", \"M80-32c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32 0 11.8-6.4 22.2-16 27.7l0 145.6c56.5 24.7 96 81.1 96 146.7l0 224c0 35.3-28.7 64-64 64L64 576c-35.3 0-64-28.7-64-64L0 288c0-65.6 39.5-122 96-146.7L96-4.3C86.4-9.8 80-20.2 80-32zM96 288c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 288z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [512, 512, [], \"f01c\", \"M91.8 32C59.9 32 32.9 55.4 28.4 86.9L.6 281.2c-.4 3-.6 6-.6 9.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-125.7c0-3-.2-6.1-.6-9.1L483.6 86.9C479.1 55.4 452.1 32 420.2 32L91.8 32zm0 64l328.5 0 27.4 192-59.9 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L64.3 288 91.8 96z\"]\n};\nvar faSquareH = {\n prefix: 'fas',\n iconName: 'square-h',\n icon: [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320 168l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHSquare = faSquareH;\nvar faHouseMedical = {\n prefix: 'fas',\n iconName: 'house-medical',\n icon: [512, 512, [], \"e3b2\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM224 248c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faCircleChevronRight = {\n prefix: 'fas',\n iconName: 'circle-chevron-right',\n icon: [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"]\n};\nvar faChevronCircleRight = faCircleChevronRight;\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [576, 512, [], \"f6dd\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM264 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-8c0-11-9-20-20-20s-20 9-20 20l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-24.3-19.7-44-44-44l-16 0zm136 0c-28.7 0-52 23.3-52 52s23.3 52 52 52c6.6 0 12 5.4 12 12s-5.4 12-12 12l-32 0c-11 0-20 9-20 20s9 20 20 20l32 0c28.7 0 52-23.3 52-52s-23.3-52-52-52c-6.6 0-12-5.4-12-12s5.4-12 12-12l24 0c11 0 20-9 20-20s-9-20-20-20l-24 0zm96 0c-11 0-20 9-20 20l0 31.6c0 35.5 10.5 70.3 30.2 99.8l5.1 7.7c3.7 5.6 10 8.9 16.6 8.9s12.9-3.3 16.6-8.9l5.1-7.7c19.7-29.6 30.2-64.3 30.2-99.8l0-31.6c0-11-9-20-20-20s-20 9-20 20l0 31.6c0 19.6-4.1 38.9-12 56.7-7.9-17.8-12-37.1-12-56.7l0-31.6c0-11-9-20-20-20z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M182.2 76.1L130.8 307.5C145.5 324.9 167.4 336 192 336l256 0c24.6 0 46.5-11.1 61.2-28.5L457.8 76.1c-5.7-25.8-28.6-44.1-55-44.1-12.2 0-24.1 4-33.8 11.3l-4.7 3.5c-26.3 19.7-62.4 19.7-88.6 0L271 43.3c-9.8-7.3-21.6-11.3-33.8-11.3-26.4 0-49.3 18.3-55 44.1zM64 256c0-17.7-14.3-32-32-32S0 238.3 0 256C0 362 86 448 192 448l256 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-256 0c-70.7 0-128-57.3-128-128z\"]\n};\nvar faFaceGrinTongueWink = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M152.2 490.1C62.5 450.2 0 360.4 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 104.4-62.5 194.2-152.2 234.1 5.3-13 8.2-27.2 8.2-42.1l0-61.7c16.9-16.5 30.1-36.7 38.3-59.3 4.3-11.8-7.7-21.8-19.6-18.1-39.2 12.2-83.7 19.1-130.7 19.1s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 8.3 22.6 21.5 42.8 38.3 59.3l0 61.7c0 14.9 2.9 29.1 8.2 42.1zM152 212l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm184 60a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faL = {\n prefix: 'fas',\n iconName: 'l',\n icon: [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z\"]\n};\nvar faArrowDownShortWide = {\n prefix: 'fas',\n iconName: 'arrow-down-short-wide',\n icon: [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSortAmountDesc = faArrowDownShortWide;\nvar faSortAmountDownAlt = faArrowDownShortWide;\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9l67.9-67.9 67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9L112 384z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faSpoon = {\n prefix: 'fas',\n iconName: 'spoon',\n icon: [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8 0-80.2 96-160.2 192-160.2 53 0 96 43 96 96 0 96-80 192-160.2 192-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"]\n};\nvar faUtensilSpoon = faSpoon;\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [512, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M0 128l0 32 512 0 0-32c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128zm0 80L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-176-512 0zM64 360c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm144 0c0-13.3 10.7-24 24-24l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 88c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64C74.7 64 64 74.7 64 88zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm112 76l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L152 400c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20z\"]\n};\nvar faSpaghettiMonsterFlying = {\n prefix: 'fas',\n iconName: 'spaghetti-monster-flying',\n icon: [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3c-10-11.3-16-26.1-16-42.3 0-35.3 28.7-64 64-64s64 28.7 64 64-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4 7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4 10.7 11.7 16.1 13.4 19.4 13.4 2.5 0 4.3-.6 7.1-3.3 3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7 9.7-9.3 22.9-16.7 40.4-16.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7-9.7 9.3-22.9 16.7-40.4 16.7-18.5 0-32.9-8.5-44.3-18.6-3.1 4-6.6 8.3-10.5 12.7 1.4 4.3 2.8 8.5 4 12.5 .9 3 1.8 5.8 2.6 8.6 3 9.8 5.5 18.2 8.6 25.9 3.9 9.8 7.4 15.4 10.8 18.5 2.6 2.4 5.9 4.3 12.8 4.3 8.7 0 16.9-4.2 33.7-13.2 15-8 35.7-18.8 62.3-18.8 13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2-1 .6-2.1 1.1-3.2 1.7-13.1 7.1-31.6 17.1-53.1 17.1-18.4 0-33.6-6.1-45.5-17.2-11.1-10.3-17.9-23.7-22.7-36-3.6-9-6.7-19.1-9.5-28.5-16.4 12.3-36.1 23.6-58.9 31.3 3.6 10.8 8.4 23.5 14.4 36.2 7.5 15.9 16.2 30.4 25.8 40.5 9.6 10.2 17.7 13.7 24.5 13.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8-14.5-15.4-25.7-34.9-34.2-53-8-17-14.1-33.8-18.3-46.9-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9-8.5 18.1-19.8 37.6-34.2 53-14.4 15.3-34.3 28.8-59.5 28.8-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7 9.5-10.1 18.3-24.6 25.8-40.5 5.9-12.6 10.7-25.4 14.4-36.2-22.8-7.7-42.5-19-58.9-31.3-2.9 9.4-6 19.5-9.5 28.5-4.8 12.2-11.6 25.6-22.7 36-11.9 11.1-27.1 17.2-45.5 17.2-13.1 0-24.5-4.1-33.8-8.9-7.9-4-15.7-9.2-22.1-13.5l0 0-2.4-1.6c-15.3-10.2-25.8-16-37.7-16-13.3 0-24-10.7-24-24s10.7-24 24-24c28.1 0 49.6 14.2 64.3 24l2.4 1.6c6.9 4.6 12.1 8.1 17.2 10.7 5.5 2.8 9.1 3.6 12 3.6 6.8 0 10.2-1.9 12.8-4.3 3.4-3.2 7-8.8 10.8-18.5 3-7.7 5.6-16.1 8.6-25.9 .8-2.7 1.7-5.6 2.6-8.6 1.2-4 2.6-8.2 4-12.5-3.9-4.5-7.4-8.8-10.5-12.7-11.4 10.1-25.9 18.6-44.3 18.6-17.5 0-30.7-7.4-40.4-16.7-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4-2.8-2.7-4.6-3.3-7.1-3.3-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7 8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4 2.8 2.7 4.6 3.3 7.1 3.3 3.3 0 8.7-1.7 19.4-13.4 5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24 13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faPastafarianism = faSpaghettiMonsterFlying;\nvar faMartiniGlassCitrus = {\n prefix: 'fas',\n iconName: 'martini-glass-citrus',\n icon: [640, 512, [\"cocktail\"], \"f561\", \"M576 80c0-44.2-35.8-80-80-80-18 0-34.6 6-48 16l-81 0c23.6-47.4 72.5-80 129-80 79.5 0 144 64.5 144 144S575.5 224 496 224c-6.5 0-13-.4-19.3-1.3l64-74.7c1.1-1.3 2.2-2.7 3.3-4.1 19.4-14.6 32-37.8 32-64zM66.9 82.6C72.2 71.3 83.5 64 96 64l384 0c12.5 0 23.8 7.3 29.1 18.6s3.4 24.7-4.8 34.2l-184.3 215 0 116.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-116.2-184.3-215c-8.1-9.5-10-22.8-4.8-34.2zM165.6 128L288 270.8 410.4 128 165.6 128z\"]\n};\nvar faCocktail = faMartiniGlassCitrus;\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [512, 512, [128226, 128363], \"f0a1\", \"M461.2 18.9C472.7 24 480 35.4 480 48l0 416c0 12.6-7.3 24-18.8 29.1s-24.8 3.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0 95.7c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96C57.3 384 0 326.7 0 256S57.3 128 128 128l84.5 0c61.8-.2 121.4-22.7 167.9-63.3l46.6-40.7c9.4-8.3 22.9-10.2 34.3-5.1zM224 320l0 .2c70.3 2.7 137.8 28.5 192 73.4l0-275.3c-54.2 44.9-121.7 70.7-192 73.4L224 320z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M103.9 32l161 0c13.8 0 26 8.8 30.4 21.9l17.4 52.2c4.4 13.1 16.6 21.9 30.4 21.9l60.5 0c21.8 0 37.3 21.4 30.4 42.1L384 320 128 320 72.7 70.9C68.2 51 83.4 32 103.9 32zM48 256l16.6 0 16.5 74.4C86 352.4 105.5 368 128 368l256 0c20.7 0 39-13.2 45.5-32.8l26.4-79.2 8.1 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 304c0-26.5 21.5-48 48-48z\"]\n};\nvar faMattressPillow = {\n prefix: 'fas',\n iconName: 'mattress-pillow',\n icon: [576, 512, [], \"e525\", \"M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm48 384l208 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-208 0 0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [9001], \"f053\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M448 0c-68.6 0-127.1 43.1-149.8 103.8 17.1 14.1 29.6 33.5 34.9 55.8 39.9 21.7 66.9 63.9 66.9 112.5 0 13.5-2.1 26.5-5.9 38.7 16.9 6 35 9.3 53.9 9.3 43 0 82.1-17 110.8-44.6 4.6-4.4 5.9-11.2 3.3-17s-8.6-9.3-14.9-8.8c-3 .2-6.1 .4-9.2 .4-63.5 0-115-51.5-115-115 0-45.1 26-84.2 63.8-103 5.7-2.8 9-8.9 8.2-15.2S489.6 5.3 483.4 3.9C472 1.4 460.2 0 448 0zM272 352c44.2 0 80-35.8 80-80 0-39-27.9-71.5-64.8-78.6 .5-3.1 .8-6.2 .8-9.4 0-30.9-25.1-56-56-56-12.4 0-23.9 4-33.1 10.8-13.4-25.5-40.1-42.8-70.9-42.8-44.2 0-80 35.8-80 80 0 7.4 1 14.6 2.9 21.5-29.8 11.6-50.9 40.6-50.9 74.5 0 44.2 35.8 80 80 80l192 0zM69 401.1c-12.6-4.2-26.2 2.6-30.4 15.2L17.2 480.4C13 493 19.8 506.6 32.4 510.8s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z\"]\n};\nvar faArrowDown19 = {\n prefix: 'fas',\n iconName: 'arrow-down-1-9',\n icon: [512, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M418.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM365.1 430.6l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 336a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM150.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96z\"]\n};\nvar faSortNumericAsc = faArrowDown19;\nvar faSortNumericDown = faArrowDown19;\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [128406], \"f259\", \"M214.9 23.7C210.3 6.6 192.8-3.5 175.7 1.1s-27.2 22.1-22.6 39.2L206 237.8c2.5 9.2-4.5 18.2-14 18.2-6.4 0-12-4.2-13.9-10.3L134.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.1 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L411.5 247.1c-1.6 5.3-6.4 8.9-12 8.9-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L323.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"]\n};\nvar faWandMagicSparkles = {\n prefix: 'fas',\n iconName: 'wand-magic-sparkles',\n icon: [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M263.4-27L278.2 9.8 315 24.6c3 1.2 5 4.2 5 7.4s-2 6.2-5 7.4L278.2 54.2 263.4 91c-1.2 3-4.2 5-7.4 5s-6.2-2-7.4-5L233.8 54.2 197 39.4c-3-1.2-5-4.2-5-7.4s2-6.2 5-7.4L233.8 9.8 248.6-27c1.2-3 4.2-5 7.4-5s6.2 2 7.4 5zM110.7 41.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7L59.8 164.2 9.7 142.7C3.8 140.2 0 134.4 0 128s3.8-12.2 9.7-14.7L59.8 91.8 81.3 41.7C83.8 35.8 89.6 32 96 32s12.2 3.8 14.7 9.7zM464 304c6.4 0 12.2 3.8 14.7 9.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7l-21.5-50.1-50.1-21.5c-5.9-2.5-9.7-8.3-9.7-14.7s3.8-12.2 9.7-14.7l50.1-21.5 21.5-50.1c2.5-5.9 8.3-9.7 14.7-9.7zM460 0c11 0 21.6 4.4 29.5 12.2l42.3 42.3C539.6 62.4 544 73 544 84s-4.4 21.6-12.2 29.5l-88.2 88.2-101.3-101.3 88.2-88.2C438.4 4.4 449 0 460 0zM44.2 398.5L308.4 134.3 409.7 235.6 145.5 499.8C137.6 507.6 127 512 116 512s-21.6-4.4-29.5-12.2L44.2 457.5C36.4 449.6 32 439 32 428s4.4-21.6 12.2-29.5z\"]\n};\nvar faMagicWandSparkles = faWandMagicSparkles;\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM217.6 153.6c0-10.6 8.6-19.2 19.2-19.2l38.4 0c10.6 0 19.2 8.6 19.2 19.2l0 48 48 0c10.6 0 19.2 8.6 19.2 19.2l0 38.4c0 10.6-8.6 19.2-19.2 19.2l-48 0 0 48c0 10.6-8.6 19.2-19.2 19.2l-38.4 0c-10.6 0-19.2-8.6-19.2-19.2l0-48-48 0c-10.6 0-19.2-8.6-19.2-19.2l0-38.4c0-10.6 8.6-19.2 19.2-19.2l48 0 0-48z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [576, 512, [128277, 61943], \"f1f6\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.5-87.5c17.2-2.4 30.5-17.3 30.5-35.2 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C464.4 308.5 448 261.8 448 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 3.2c-38.6 7.8-72.2 29.6-95.2 59.7L41-24.9zm87 238.5c0 48.1-16.4 94.8-46.4 132.4l-9.8 12.2c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l235.3 0-206.9-206.9 0 4.5zM288 512c29.8 0 54.9-20.4 62-48l-124 0c7.1 27.6 32.2 48 62 48z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [576, 512, [57439, \"handshake-alt-slash\", \"handshake-simple-slash\"], \"e060\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-288-288 14.2-14.2c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1l-55.8 62.1-34-34 44.3-49.2-39.7 0c-15.3 0-30.1 3.6-43.5 10.4L41-24.9zM0 69.8L0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c22.2 0 43.8-5.8 62.8-16.4L0 69.8z\"]\n};\nvar faHandshakeAltSlash = faHandshakeSlash;\nvar faHandshakeSimpleSlash = faHandshakeSlash;\nvar faBottleWater = {\n prefix: 'fas',\n iconName: 'bottle-water',\n icon: [320, 512, [], \"e4c5\", \"M112-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0C94.3 32 80 17.7 80 0s14.3-32 32-32zM16 144c0-35.3 28.7-64 64-64l160 0c35.3 0 64 28.7 64 64 0 24.1-13.3 45.1-33 56 19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56 0 35.3-28.7 64-64 64L80 544c-35.3 0-64-28.7-64-64 0-24.1 13.3-45.1 33-56-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [512, 512, [], \"f6cf\", \"M224.4-8.2c19.6-11.1 43.6-11.1 63.1 0l192 108.8c20 11.4 32.4 32.6 32.4 55.7l0 215.6c0 23-12.4 44.3-32.4 55.7l-192 108.8c-19.6 11.1-43.6 11.1-63.1 0L32.4 427.5C12.4 416.1 0 394.8 0 371.8L0 156.2c0-23 12.4-44.3 32.4-55.7L224.4-8.2zm52 73.2C267 49.8 245 49.8 235.6 65l-76.6 123.7-85.4-46.3-3.8-1.6c-8.9-2.7-18.8 1.1-23.4 9.6s-2.4 18.9 4.7 24.8l3.3 2.3 83.4 45.2-74.6 120.6C55.3 356.2 61 373 75 378.4l161 61.9 0 39.7c0 11 9 20 20 20s20-9 20-20l0-39.7 161-61.9c14-5.4 19.7-22.2 11.8-35l-74.7-120.6 83.4-45.2c9.7-5.3 13.3-17.4 8.1-27.1s-17.4-13.3-27.1-8.1L353 188.7 276.4 65zm-47 329.9l-122-46.9 54.5-88.1 67.5 135zM404.6 348l-122 46.9 67.5-135 54.5 88.1zM319.3 232L256 358.6 192.7 232 319.3 232zM308 192l-104.1 0 52-84 52 84z\"]\n};\nvar faArrowDownZA = {\n prefix: 'fas',\n iconName: 'arrow-down-z-a',\n icon: [512, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM288 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 160 448 160c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L370.8 96 320 96c-17.7 0-32-14.3-32-32zM412.6 273.7l80 160c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l80-160c5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 359.6l-20.2 40.4 40.4 0-20.2-40.4z\"]\n};\nvar faSortAlphaDesc = faArrowDownZA;\nvar faSortAlphaDownAlt = faArrowDownZA;\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48l0 208 384 0 0-208c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 304l0 16c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-16-384 0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faPersonWalkingDashedLineArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-dashed-line-arrow-right',\n icon: [640, 512, [], \"e553\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM432 8c0-13.3-10.7-24-24-24S384-5.3 384 8l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zm0 128c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM408 320c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM609 273c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"]\n};\nvar faArrowUpShortWide = {\n prefix: 'fas',\n iconName: 'arrow-up-short-wide',\n icon: [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faSortAmountUpAlt = faArrowUpShortWide;\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [\"grid-vertical\"], \"f58e\", \"M128 40c0-22.1-17.9-40-40-40L40 0C17.9 0 0 17.9 0 40L0 88c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM0 424l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 40c0-22.1-17.9-40-40-40L232 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM192 232l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 424c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z\"]\n};\nvar faGridVertical = faGripVertical;\nvar faCarTunnel = {\n prefix: 'fas',\n iconName: 'car-tunnel',\n icon: [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-113.1c0-13.5 3.1-26.8 9-38.9l39.7-80.8c9.4-19.1 28.9-31.3 50.2-31.3L317 224c21.3 0 40.8 12.1 50.2 31.3L407 336c5.9 12.1 9 25.4 9 38.9L416 488c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-24-192 0 0 24c0 9.6-4.2 18.1-10.8 24l213.7 0zm-175-235.5l-29.3 59.5 194.9 0-29.3-59.5c-1.3-2.7-4.1-4.5-7.2-4.5L195 272c-3 0-5.8 1.7-7.2 4.5zM176 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm184-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faChartColumn = {\n prefix: 'fas',\n iconName: 'chart-column',\n icon: [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM144 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm144-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm80 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM512 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCapricorn = {\n prefix: 'fas',\n iconName: 'capricorn',\n icon: [576, 512, [], \"e848\", \"M240 32c79.5 0 144 64.5 144 144l0 65.2c18.8-10.9 40.7-17.2 64-17.2 70.7 0 128 57.3 128 128S518.7 480 448 480c-35.8 0-68.2-14.7-91.4-38.4-28.8 42.5-77.4 70.4-132.6 70.4-17.7 0-32-14.3-32-32s14.3-32 32-32c53 0 96-43 96-96l0-176c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 208c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-35.3-28.7-64-64-64-17.7 0-32-14.3-32-32S14.3 32 32 32C72.6 32 108.8 51 132.2 80.5 158.6 50.7 197.1 32 240 32zM448 288a64 64 0 1 0 0 128 64 64 0 1 0 0-128z\"]\n};\nvar faTruckArrowRight = {\n prefix: 'fas',\n iconName: 'truck-arrow-right',\n icon: [576, 512, [], \"e58b\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM305 225l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [576, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 96l0 240 448 0 0-240-448 0zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64L64 400c-35.3 0-64-28.7-64-64L0 96zM160 448l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faTelevision = faTv;\nvar faTvAlt = faTv;\nvar faSection = {\n prefix: 'fas',\n iconName: 'section',\n icon: [256, 512, [], \"e447\", \"M110 0C49.2 0 0 49.2 0 110 0 133.7 7.6 155.8 20.5 174 7.6 192 0 214.1 0 238 0 291.7 38.9 337.6 91.9 346.4l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 25.4-20.6 46-46 46l-98 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l98 0c60.7 0 110-49.2 110-110 0-23.7-7.6-45.9-20.5-64 12.9-18 20.5-40.1 20.5-64 0-53.8-38.9-99.6-91.9-108.5l-61.7-10.3C80.2 151.6 64 132.4 64 110 64 84.6 84.6 64 110 64l98 0c17.7 0 32-14.3 32-32S225.7 0 208 0L110 0zm74.7 299.1c-6.5-2.4-13.4-4.3-20.5-5.5l-61.7-10.3c-22.2-3.7-38.4-22.9-38.4-45.3 0-9.2 2.7-17.8 7.4-25 6.5 2.4 13.4 4.3 20.5 5.5l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 9.2-2.7 17.8-7.4 25z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [512, 512, [9774], \"f67c\", \"M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8 224 66.7c-90.8 15.2-160 94.2-160 189.3 0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5l-94.3-77.1 0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1 0-95.1-69.2-174.1-160-189.3l0 174.2 134.8 110.3zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-121.6 62.7-18.8c41.9-12.6 87.1-8.7 126.2 10.9 42.7 21.4 92.5 24 137.2 7.2l37.1-13.9c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-11.8 5.9c-44.9 22.5-97.8 22.5-142.8 0-36.4-18.2-78.3-21.8-117.2-10.1L64 54.4 64 32z\"]\n};\nvar faTriangleExclamation = {\n prefix: 'fas',\n iconName: 'triangle-exclamation',\n icon: [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"]\n};\nvar faExclamationTriangle = faTriangleExclamation;\nvar faWarning = faTriangleExclamation;\nvar faSchoolCircleExclamation = {\n prefix: 'fas',\n iconName: 'school-circle-exclamation',\n icon: [640, 512, [], \"e56c\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [576, 512, [127891, \"mortar-board\"], \"f19d\", \"M48 195.8l209.2 86.1c9.8 4 20.2 6.1 30.8 6.1s21-2.1 30.8-6.1l242.4-99.8c9-3.7 14.8-12.4 14.8-22.1s-5.8-18.4-14.8-22.1L318.8 38.1C309 34.1 298.6 32 288 32s-21 2.1-30.8 6.1L14.8 137.9C5.8 141.6 0 150.3 0 160L0 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-260.2zm48 71.7L96 384c0 53 86 96 192 96s192-43 192-96l0-116.6-142.9 58.9c-15.6 6.4-32.2 9.7-49.1 9.7s-33.5-3.3-49.1-9.7L96 267.4z\"]\n};\nvar faMortarBoard = faGraduationCap;\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [512, 512, [], \"f54e\", \"M30.7 72.3C37.6 48.4 59.5 32 84.4 32l344 0c24.9 0 46.8 16.4 53.8 40.3l23.4 80.2c12.8 43.7-20.1 87.5-65.6 87.5-26.3 0-49.4-14.9-60.8-37.1-11.6 21.9-34.6 37.1-61.4 37.1-26.6 0-49.7-15-61.3-37-11.6 22-34.7 37-61.3 37-26.8 0-49.8-15.1-61.4-37.1-11.4 22.1-34.5 37.1-60.8 37.1-45.6 0-78.4-43.7-65.6-87.5L30.7 72.3zM96.4 352l320 0 0-66.4c7.6 1.6 15.5 2.4 23.5 2.4 14.3 0 28-2.6 40.5-7.2l0 151.2c0 26.5-21.5 48-48 48l-352 0c-26.5 0-48-21.5-48-48l0-151.2c12.5 4.6 26.1 7.2 40.5 7.2 8.1 0 15.9-.8 23.5-2.4l0 66.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M224 336c74.6 0 138.4-46.4 164-112l4 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-4 0C362.4 30.4 298.6-16 224-16S85.6 30.4 60 96l-4 0c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l4 0c25.6 65.6 89.4 112 164 112zM208 80l32 0c53 0 96 43 96 96s-43 96-96 96l-32 0c-53 0-96-43-96-96s43-96 96-96zM16 484.6C16 499.7 28.3 512 43.4 512l52.6 0 0-48c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 48 52.6 0c15.1 0 27.4-12.3 27.4-27.4 0-59.8-31.9-112.2-79.6-141-36.4 25.5-80.6 40.4-128.4 40.4s-92-14.9-128.4-40.4C47.9 372.4 16 424.8 16 484.6zM183.3 141.5c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6-6-21.2zM152 488l0 24 48 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24zm120-24c-13.3 0-24 10.7-24 24l0 24 48 0 0-24c0-13.3-10.7-24-24-24z\"]\n};\nvar faBuildingFlag = {\n prefix: 'fas',\n iconName: 'building-flag',\n icon: [640, 512, [], \"e4d5\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 0c-17.7 0-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L496 32c0-17.7-14.3-32-32-32z\"]\n};\nvar faMugSaucer = {\n prefix: 'fas',\n iconName: 'mug-saucer',\n icon: [576, 512, [\"coffee\"], \"f0f4\", \"M64 64c0-17.7 14.3-32 32-32l352 0c70.7 0 128 57.3 128 128S518.7 288 448 288c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 64zm448 96c0-35.3-28.7-64-64-64l0 128c35.3 0 64-28.7 64-64zM64 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCoffee = faMugSaucer;\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64-6.6 0-13 1-19 2.9-22.5 7-48.1 14.9-71 9-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71-1.9 6-2.9 12.4-2.9 19 0 35.3 28.7 64 64 64 6.6 0 13-1 19.1-2.9 22.5-7 48.1-14.9 71-9 75.2 19.1 156.4-11 213.7-68.3S455.2 261.2 436.1 186c-5.8-22.9 2-48.4 9-71 1.9-6 2.9-12.4 2.9-19.1zM222.7 143c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S61.2 254 65 241.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M32 96c0-35.3 28.7-64 64-64l320 0c70.7 0 128 57.3 128 128l0 192 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zM352 352l64 0c17.7 0 32-14.3 32-32l0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 160c0 17.7 14.3 32 32 32zM160 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 336a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faQ = {\n prefix: 'fas',\n iconName: 'q',\n icon: [448, 512, [113], \"51\", \"M64 256c0 88.4 71.6 160 160 160 28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1c20.4-26.8 32.5-60.3 32.5-96.6 0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480 100.3 480 0 379.7 0 256S100.3 32 224 32 448 132.3 448 256c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [384, 512, [128274], \"f023\", \"M128 96l0 64 128 0 0-64c0-35.3-28.7-64-64-64s-64 28.7-64 64zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l16 0c44.2 0 80 35.8 80 80l0 96c0 44.2-35.8 80-80 80l-160 0c-8.8 0-16 7.2-16 16l0 18.7c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-18.7c0-44.2 35.8-80 80-80l160 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-16 0c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nvar faVolumeHigh = {\n prefix: 'fas',\n iconName: 'volume-high',\n icon: [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C557.5 113.8 592 180.8 592 256s-34.5 142.2-88.7 186.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C598.5 426.7 640 346.2 640 256S598.5 85.2 533.6 32.5zM473.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C475.3 170.7 496 210.9 496 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C393.1 227.6 400 241 400 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C434.1 312.9 448 286.1 448 256s-13.9-56.9-35.4-74.5zM80 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L128 160 80 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48z\"]\n};\nvar faVolumeUp = faVolumeHigh;\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M512 384c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240zM256 160c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [384, 512, [9791], \"f223\", \"M117-4C106-17.8 85.8-20 72.1-9s-16 31.2-5 45C74.9 45.7 83.7 54.5 93.5 62.1 46.7 93.7 16 147.3 16 208 16 294.3 78.1 366.1 160 381.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-60.7-30.7-114.3-77.5-145.9 9.8-7.7 18.7-16.4 26.4-26.1 11.1-13.8 8.8-33.9-5-45S278-17.8 267-4c-17.6 22-44.7 36-75 36S134.7 18 117-4zm75 324c-61.9 0-112-50.1-112-112S130.1 96 192 96 304 146.1 304 208c0 61.8-50.1 112-111.9 112l-.1 0z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [9875], \"f13d\", \"M288 64a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM192 96c0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 257.9c62.9-14.3 110.2-69.7 111.9-136.5l-16.1 14.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3L496 307.9C493.9 421 401.6 512 288 512S82.1 421 80 307.9L63.8 322.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3l-16.1-14.1c1.8 66.8 49.1 122.2 111.9 136.5l0-257.9c-37.3-13.2-64-48.7-64-90.5z\"]\n};\nvar faSquareParking = {\n prefix: 'fas',\n iconName: 'square-parking',\n icon: [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-184c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z\"]\n};\nvar faParking = faSquareParking;\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [128334], \"f6e6\", \"M314.2 3.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104 8 117.3 18.7 128 32 128s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176-192 0c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32S0 174.3 0 192l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z\"]\n};\nvar faRotateLeft = {\n prefix: 'fas',\n iconName: 'rotate-left',\n icon: [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M24 192l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-46.7-46.7c75.3-58.6 184.3-53.3 253.5 15.9 75 75 75 196.5 0 271.5s-196.5 75-271.5 0c-10.2-10.2-19-21.3-26.4-33-9.5-14.9-29.3-19.3-44.2-9.8s-19.3 29.3-9.8 44.2C49.7 408.7 61.4 423.5 75 437 175 537 337 537 437 437S537 175 437 75C342.8-19.3 193.3-24.7 92.7 58.8L41 7C34.1 .2 23.8-1.9 14.8 1.8S0 14.3 0 24L0 168c0 13.3 10.7 24 24 24z\"]\n};\nvar faRotateBack = faRotateLeft;\nvar faRotateBackward = faRotateLeft;\nvar faUndoAlt = faRotateLeft;\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 320 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-320-16 0C14.3 96 0 81.7 0 64z\"]\n};\nvar faHeader = faHeading;\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [576, 512, [], \"f05b\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM131.2 288c12.7 62.7 62.1 112.1 124.8 124.8l0-12.8c0-17.7 14.3-32 32-32s32 14.3 32 32l0 12.8c62.7-12.7 112.1-62.1 124.8-124.8L432 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l12.8 0C432.1 161.3 382.7 111.9 320 99.2l0 12.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-12.8C193.3 111.9 143.9 161.3 131.2 224l12.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-12.8 0zM288 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCircleNodes = {\n prefix: 'fas',\n iconName: 'circle-nodes',\n icon: [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9 0-44.2-35.8-80-80-80-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128 35.8 128 0 163.8 0 208s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [576, 512, [], \"f2d2\", \"M512 96L160 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-64 48 0 0-192zM0 224c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224zm64 40c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 240c-13.3 0-24 10.7-24 24z\"]\n};\nvar faR = {\n prefix: 'fas',\n iconName: 'r',\n icon: [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0 102.4 146.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176 320 96.5 255.5 32 176 32L32 32zM176 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faFilterCircleXmark = {\n prefix: 'fas',\n iconName: 'filter-circle-xmark',\n icon: [576, 512, [], \"e17b\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 136c26.5 0 48 21.5 48 48l0 80c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-48 0 0-224-32 0 0-128-48 0 0 128 32 0 0 224-224 0 0-224 32 0 0-128-48 0 0 128-32 0 0 224-48 0c-26.5 0-48-21.5-48-48L0 336c0-26.5 21.5-48 48-48l0-80c0-26.5 21.5-48 48-48L96 24c0-13.3 10.7-24 24-24zM256 208c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zM208 400l0 64 96 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48zM256 96c-17.7 0-32 14.3-32 32l0 32 64 0 0-32c0-17.7-14.3-32-32-32z\"]\n};\nvar faHeartCircleMinus = {\n prefix: 'fas',\n iconName: 'heart-circle-minus',\n icon: [576, 512, [], \"e4ff\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [512, 512, [], \"f621\", \"M208.5 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7l-122 70.4 122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7l-122-70.4 0 140.9c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9-122 70.4c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7l122-70.4-122-70.4c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7c8.8-15.3 28.4-20.5 43.7-11.7l122 70.4 0-140.9z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [\"briefcase-clock\"], \"f64a\", \"M264 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0c-35.3 0-64 28.7-64 64l0 96 305 0c33.8-29.9 78.3-48 127-48 28.6 0 55.6 6.2 80 17.4l0-65.4c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L264 0c-30.9 0-56 25.1-56 56zm80 296c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l193.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-16.6 2.1-32.7 6-48l-22 0zm352 48a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 320c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z\"]\n};\nvar faBriefcaseClock = faBusinessTime;\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [512, 512, [129519], \"f134\", \"M512 32c0-9.6-4.3-18.7-11.7-24.7S483.1-1.3 473.7 .6l-160 32C301.5 35.1 292 44.3 289 56l-65 0 0-24c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32l0 28.4c-55.3 12.3-101.3 49.5-125.5 99.1-5.8 11.9-.9 26.3 11.1 32.1s26.3 .9 32.1-11.1C62 146.9 91.8 121.1 128 110l0 28.8c-37.8 18-64 56.5-64 101.2l0 128 224 0 0-128c0-44.7-26.2-83.2-64-101.2l0-34.8 65 0c3 11.7 12.5 20.9 24.7 23.4l160 32c9.4 1.9 19.1-.6 26.6-6.6S512 137.6 512 128l0-96zM288 448l0-32-224 0 0 32c0 35.3 28.7 64 64 64l96 0c35.3 0 64-28.7 64-64z\"]\n};\nvar faArrowDownLong = {\n prefix: 'fas',\n iconName: 'arrow-down-long',\n icon: [320, 512, [\"long-arrow-down\"], \"f175\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 434.7 192 0c0-17.7-14.3-32-32-32S128-17.7 128 0l0 434.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"]\n};\nvar faLongArrowDown = faArrowDownLong;\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M285.7 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3 48 383.8 127.8 304 226.3 304l59.4 0zM256 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm344-96c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [512, 512, [], \"f53c\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM96 312c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zm24-136c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z\"]\n};\nvar faHouseLaptop = {\n prefix: 'fas',\n iconName: 'house-laptop',\n icon: [640, 512, [\"laptop-house\"], \"e066\", \"M448 240l19.9 0c15.5 0 28.1-12.6 28.1-28.1 0-7.6-3.1-14.9-8.6-20.2L283.5-4.9C276.1-12 266.3-16 256-16s-20.1 4-27.5 11.1L24.6 191.7C19.1 197 16 204.3 16 211.9 16 227.4 28.6 240 44.1 240l19.9 0 0 144c0 35.3 28.7 64 64 64l85.7 0c7.4-6.6 16.4-11.4 26.3-14l0-130c0-5.5 .7-10.9 2-16l-10 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24 144 0zM352 352l160 0 0 128-160 0 0-128zm-64-32l0 160-32 0c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l288 0c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16l-32 0 0-160c0-17.7-14.3-32-32-32l-224 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faLaptopHouse = faHouseLaptop;\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [448, 512, [], \"f019\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 242.7 256 32zM64 320c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-46.9 0-56.6 56.6c-31.2 31.2-81.9 31.2-113.1 0L110.9 320 64 320zm304 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faSagittarius = {\n prefix: 'fas',\n iconName: 'sagittarius',\n icon: [448, 512, [], \"e84d\", \"M416 32c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.8-146.8 146.8 41.4 41.4c12.5 12.5 12.5 32.8 0 45.2s-32.8 12.5-45.3 0L192 333.3 54.6 470.6c-12.5 12.5-32.8 12.5-45.2 0s-12.5-32.8 0-45.2L146.8 288 105.4 246.6c-12.5-12.5-12.5-32.8 0-45.2s32.8-12.5 45.2 0L192 242.8 338.8 96 256 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M144 272C144 224.7 109.8 185.4 64.8 177.5 72 113.6 126.2 64 192 64l256 0c65.8 0 120 49.6 127.2 113.5-45 8-79.2 47.2-79.2 94.5l0 32-352 0 0-32zM0 384L0 272c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 448 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64z\"]\n};\nvar faRoadLock = {\n prefix: 'fas',\n iconName: 'road-lock',\n icon: [576, 512, [], \"e567\", \"M256 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L33.4 420.5C25.9 450.7 48.8 480 80 480l175.9 0 0-64c0-17.7 14.3-32 32-32 6.1 0 11.8 1.7 16.7 4.7 2.8-23.9 14.3-45.1 31.4-60.3l0-24.4c0-70.7 57.3-128 128-128 6.2 0 12.4 .4 18.4 1.3L458.5 80.6C451.4 52.1 425.8 32 396.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 80.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM352 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faScissors = {\n prefix: 'fas',\n iconName: 'scissors',\n icon: [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6-28.3-28.3-74.1-28.3-102.4 0L256 192 216.5 152.5c4.9-12.6 7.5-26.2 7.5-40.5 0-61.9-50.1-112-112-112S0 50.1 0 112 50.1 224 112 224c14.3 0 27.9-2.7 40.5-7.5L192 256zm97.9 97.9L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0 7.1-7.1 7.1-18.5 0-25.6l-145.3-145.3-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCut = faScissors;\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [576, 512, [], \"f188\", \"M192 96c0-53 43-96 96-96s96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6zm345.6 12.8c10.6 14.1 7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 2.6-.1 5.3-.2 7.9l83.4 62.5c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4l-63.1-47.3c-23.2 44.2-66.5 76.2-117.7 83.9L312 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 230.2c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c2.5-10.4 6.5-20.2 11.8-29.1L44.8 153.6c-14.1-10.6-17-30.7-6.4-44.8s30.7-17 44.8-6.4L192 184c12.3-5.1 25.8-8 40-8l112 0c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4z\"]\n};\nvar faArrowRightFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-from-bracket',\n icon: [512, 512, [\"sign-out\"], \"f08b\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0zM502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignOut = faArrowRightFromBracket;\nvar faHandHoldingHand = {\n prefix: 'fas',\n iconName: 'hand-holding-hand',\n icon: [576, 512, [], \"e4f7\", \"M466.8 186.5l42.5-42.5 34.7 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L223.6 16c-29 0-57.3 9.3-80.7 26.5L16.3 135.8c-17.8 13.1-21.6 38.1-8.5 55.9s38.1 21.6 55.9 8.5L183.4 112 296 112c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l152.2 0c33.9 0 66.5-13.5 90.5-37.5zm-357.5 139L66.7 368 32 368c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 400 280 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3-33.9-33.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm67.9 67.9l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zM278.6 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm22.6-67.9l-45.3 45.3-45.3-45.3 45.3-45.3 45.3 45.3z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [320, 512, [], \"f1ae\", \"M96 64A64 64 0 1 1 224 64 64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L80 287.8 59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16 0-79.5-64.5-144-144-144S48 64.5 48 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l288 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM64 304L169.2 529.5c4.1 8.8 13 14.5 22.8 14.5s18.6-5.7 22.8-14.5L320 304 64 304z\"]\n};\nvar faComputerMouse = {\n prefix: 'fas',\n iconName: 'computer-mouse',\n icon: [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192l168 0 0-192-8 0C71.6 0 0 71.6 0 160l0 32zm0 48L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-112-384 0zm384-48l0-32C384 71.6 312.4 0 224 0l-8 0 0 192 168 0z\"]\n};\nvar faMouse = faComputerMouse;\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M192 64c0-17.7 14.3-32 32-32s32 14.3 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 64 18.7 0c8.5 0 16.6 3.4 22.6 9.4l22.6 22.6 32 0c88.4 0 160 71.6 160 160 0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-64-96 0c-17.7 0-32-14.3-32-32S78.3 64 96 64l96 0z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [448, 512, [], \"f559\", \"M245.9-25.9c-13.4-8.2-30.3-8.2-43.7 0-24.4 14.9-39.5 18.9-68.1 18.3-15.7-.4-30.3 8.1-37.9 21.9-13.7 25.1-24.8 36.2-49.9 49.9-13.8 7.5-22.2 22.2-21.9 37.9 .7 28.6-3.4 43.7-18.3 68.1-8.2 13.4-8.2 30.3 0 43.7 14.9 24.4 18.9 39.5 18.3 68.1-.4 15.7 8.1 30.3 21.9 37.9 22.1 12.1 33.3 22.1 45.1 41.5L42.7 458.5c-5.9 11.9-1.1 26.3 10.7 32.2l86 43c11.5 5.7 25.5 1.4 31.7-9.8l52.8-95.1 52.8 95.1c6.2 11.2 20.2 15.6 31.7 9.8l86-43c11.9-5.9 16.7-20.3 10.7-32.2l-48.6-97.2c11.7-19.4 23-29.4 45.1-41.5 13.8-7.5 22.2-22.2 21.9-37.9-.7-28.6 3.4-43.7 18.3-68.1 8.2-13.4 8.2-30.3 0-43.7-14.9-24.4-18.9-39.5-18.3-68.1 .4-15.7-8.1-30.3-21.9-37.9-25.1-13.7-36.2-24.8-49.9-49.9-7.5-13.8-22.2-22.2-37.9-21.9-28.6 .7-43.7-3.4-68.1-18.3zM224 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faPersonDrowning = {\n prefix: 'fas',\n iconName: 'person-drowning',\n icon: [640, 512, [], \"e545\", \"M264 88a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM133.9 65.6c16.8-5.6 34.9 3.5 40.5 20.2l10.9 32.8c9.4 28.3 33.2 49.5 62.5 55.6 5.6 1.2 11.3 1.8 17.1 1.8l88 0c17.2 0 34.3-2.8 50.6-8.2l114.4-38.1c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L423.7 228.5c-8.4 2.8-17 5.1-25.7 6.9l-26.5 88.3c-6.1 3.4-12.1 7.3-17.9 11.7-22.1 16.6-29.1 16.6-51.2 0-26.2-19.7-56.9-30.2-87.8-31.3l20.2-67.2c-51.5-10.7-93.5-48.1-110.2-98l-10.9-32.8c-5.6-16.8 3.5-34.9 20.2-40.5zM403.4 412.1C379.1 430.3 351.1 448 320 448s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faCameraRotate = {\n prefix: 'fas',\n iconName: 'camera-rotate',\n icon: [512, 512, [], \"e0d8\", \"M138.7 96l10.4-31.2C155.6 45.2 173.9 32 194.6 32l122.8 0c20.7 0 39 13.2 45.5 32.8L373.3 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l74.7 0zM96 305.9c0 3.9 1.4 7.7 4 10.6l48 54c6.4 7.2 17.6 7.2 23.9 0l48-54c2.6-2.9 4-6.7 4-10.6l0-1.9c0-8.8-7.2-16-16-16l-24 0c0-39.8 32.2-72 72-72 4.4 0 8.7 .4 12.9 1.2l34.9-39.3c-14.6-6.4-30.8-9.9-47.8-9.9-66.3 0-120 53.7-120 120l-24 0c-8.8 0-16 7.2-16 16l0 1.9zm196-46.5c-2.6 2.9-4 6.7-4 10.6l0 1.9c0 8.8 7.2 16 16 16l24 0c0 39.8-32.2 72-72 72-4.4 0-8.7-.4-12.9-1.2l-34.9 39.3c14.7 6.4 30.8 9.9 47.8 9.9 66.3 0 120-53.7 120-120l24 0c8.8 0 16-7.2 16-16l0-1.9c0-3.9-1.4-7.7-4-10.6l-48-54c-6.4-7.2-17.6-7.2-23.9 0l-48 54z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'fas',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256 0-23.3-3.1-45.9-8.9-67.3 5.5-13.5 8.9-28.4 8.9-44.7 0-53-43-96-96-96l-2.9 0c-2.5 0-5 .1-7.4 .3-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c-2.5-.2-4.9-.3-7.4-.3L96 48c-53 0-96 43-96 96 0 16.3 3.5 31.2 8.9 44.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM322.9 96c13.5 0 26.5 5.4 36 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0zm-188 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0c13.5 0 26.5 5.4 36 14.9z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faFileFragment = {\n prefix: 'fas',\n iconName: 'file-fragment',\n icon: [384, 512, [], \"e697\", \"M64 0C28.7 0 0 28.7 0 64l0 240 128 0c44.2 0 80 35.8 80 80l0 128 112 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM32 352c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0z\"]\n};\nvar faPersonMilitaryRifle = {\n prefix: 'fas',\n iconName: 'person-military-rifle',\n icon: [448, 512, [], \"e54b\", \"M128 39c0-13 10-23.8 22.9-24.9L302.7 1.4C312 .7 320 8 320 17.4L320 48c0 8.8-7.2 16-16 16L153 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L320 369.7 320 480c0 1.3-.1 2.5-.2 3.8L145.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L389.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l27.7 16c7.7 4.4 10.3 14.2 5.9 21.9l-55.5 96.1 1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L360.7 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM288 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1S-5.7 438.7 5.6 419.7L81.7 290.8c9.4-15.8 21.7-29.3 36-40L299.1 510c-3.5 1.3-7.2 2-11.1 2zM264 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192S490 64 384 64L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [576, 512, [], \"e067\", \"M288 0c-17.7 0-32 14.3-32 32l0 151.3c9.6-4.8 20.5-7.5 32-7.5s22.4 2.7 32 7.5L320 32c0-17.7-14.3-32-32-32zM450.1 451c8 18.3 8.1 39.2 .2 57.5 10.2 2.3 20.6 3.5 31.2 3.5 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 139.9c1.2 2.2 2.2 4.6 3.1 6.9 26.4-11.6 58.3-6.6 79.9 15s26.6 53.6 15 79.9C477 327.2 496 353.3 496 383.8s-19 56.7-45.9 67.1zM220.9 221.8c.9-2.4 2-4.7 3.1-6.9l0-138.5c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 10.5 0 21-1.2 31.2-3.5-7.9-18.3-7.8-39.3 .2-57.5-26.9-10.4-45.9-36.6-45.9-67.1s19-56.7 45.9-67.1c-11.6-26.4-6.6-58.3 15-79.9s53.6-26.6 79.9-15zM152 408c28.8 0 43.2 34.8 22.9 55.2-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-20.4-20.4-5.9-55.2 22.9-55.2 13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-20.4 20.4-55.2 5.9-55.2-22.9 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-80a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faTableTennisPaddleBall = {\n prefix: 'fas',\n iconName: 'table-tennis-paddle-ball',\n icon: [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M97 127l67.4-67.4c38.2-38.2 90-59.6 144-59.6 112.5 0 203.7 91.2 203.7 203.6 0 46.4-15.8 91.1-44.5 127-23.6-16.8-52.4-26.7-83.5-26.7-31.1 0-59.9 9.9-83.4 26.6L97 127zM240 448c0 9.7 1 19.1 2.8 28.2-19.8-5.2-38-15.5-52.7-30.2-12.2-12.2-31.9-12.2-44.1 0L96.6 495.4c-10.6 10.6-25 16.6-40 16.6-31.2 0-56.6-25.3-56.6-56.6 0-15 6-29.4 16.6-40l49.4-49.4c12.2-12.2 12.2-31.9 0-44.1-21.7-21.7-33.9-51.2-33.9-81.9 0-29.4 11.1-57.6 31.1-79L266.6 364.6C249.9 388.1 240 416.9 240 448zm144-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faPingPongPaddleBall = faTableTennisPaddleBall;\nvar faTableTennis = faTableTennisPaddleBall;\nvar faBoxesPacking = {\n prefix: 'fas',\n iconName: 'boxes-packing',\n icon: [576, 512, [], \"e4c7\", \"M208 0l80 0 0 56c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-56 80 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-108.8 0c8.2-14.1 12.8-30.5 12.8-48l0-160c10-13.4 16-30 16-48l0-32c0-44.2-35.8-80-80-80l-176 0 0-96c0-26.5 21.5-48 48-48zM32 336l320 0 0 128c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-128zM48 192l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z\"]\n};\nvar faPersonChalkboard = {\n prefix: 'fas',\n iconName: 'person-chalkboard',\n icon: [640, 512, [], \"e53d\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM176 512l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-48 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 64-122.7 0c-45.6 0-88.5 21.6-115.6 58.2L14.3 260.9c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faArrowRightArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-right-arrow-left',\n icon: [512, 512, [8644, \"exchange\"], \"f0ec\", \"M502.6 150.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L402.7 160 32 160c-17.7 0-32-14.3-32-32S14.3 96 32 96l370.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 352 480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-370.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faExchange = faArrowRightArrowLeft;\nvar faFootball = {\n prefix: 'fas',\n iconName: 'football',\n icon: [512, 512, [127944, \"football-ball\"], \"f44e\", \"M261.1 22.6c-89 18-150.5 63.4-190 123.9-23.3 35.6-38.1 75.3-46.7 115.5L251.9 489.4c89-18 150.5-63.4 190.1-123.9 23.3-35.6 38.1-75.3 46.7-115.5L261.1 22.6zm236 168.1c3.2-42.3 .7-83.3-4.8-118.7-4.4-27.8-26.8-48-53.1-51.6-43-5.9-82.2-7.5-117.8-5.4L497.1 190.6zM191.7 497.1L15.9 321.4c-3.2 42.3-.7 83.3 4.8 118.7 4.4 27.8 26.8 48 53.1 51.6 43 5.9 82.2 7.5 117.8 5.4zM271.5 143c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faFootballBall = faFootball;\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [576, 512, [], \"f63b\", \"M336 96l48 64-128 0 0-64 80 0zm128 64L387.2 57.6C375.1 41.5 356.1 32 336 32L224 32c-17.7 0-32 14.3-32 32l0 96-144 0c-26.5 0-48 21.5-48 48l0 64c0 18.1 10.1 33.9 24.9 42.1-.5 5.7 1.1 11.6 4.7 16.4-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.3 31.3l11.3 11.3c8.6 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.7-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.3-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 2.4-3.2 3.9-6.8 4.5-10.5l114.2 0c.6 3.7 2.1 7.3 4.5 10.5-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.2 31.3l11.3 11.3c8.5 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.8-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.2-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 3.6-4.8 5.2-10.7 4.7-16.4 14.8-8.2 24.9-23.9 24.9-42.1l0-64c0-26.5-21.5-48-48-48l-64 0zM128 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [448, 512, [10033, 61545], \"2a\", \"M224 0c17.7 0 32 14.3 32 32l0 168.6 144-83.1c15.3-8.8 34.9-3.6 43.7 11.7s3.6 34.9-11.7 43.7L288 256 432 339.1c15.3 8.8 20.6 28.4 11.7 43.7s-28.4 20.6-43.7 11.7L256 311.4 256 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-168.6-144 83.1c-15.3 8.8-34.9 3.6-43.7-11.7S.7 348 16 339.1L160 256 16 172.9C.7 164-4.5 144.5 4.3 129.1S32.7 108.6 48 117.4L192 200.6 192 32c0-17.7 14.3-32 32-32z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l304 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-304 0z\"]\n};\nvar faBattery = faBatteryFull;\nvar faBattery5 = faBatteryFull;\nvar faChildDress = {\n prefix: 'fas',\n iconName: 'child-dress',\n icon: [320, 512, [], \"e59c\", \"M224 64A64 64 0 1 0 96 64 64 64 0 1 0 224 64zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.7 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2L86.2 285.5 55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z\"]\n};\nvar faFaceKissBeam = {\n prefix: 'fas',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faTrashCanArrowUp = {\n prefix: 'fas',\n iconName: 'trash-can-arrow-up',\n icon: [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTrashRestoreAlt = faTrashCanArrowUp;\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [512, 512, [], \"f031\", \"M285.1 50.7C279.9 39.3 268.5 32 256 32s-23.9 7.3-29.1 18.7L59.5 416 48 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-6.1 0 22-48 208.3 0 22 48-6.1 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0-167.4-365.3zM330.8 304L181.2 304 256 140.8 330.8 304z\"]\n};\nvar faBoreHole = {\n prefix: 'fas',\n iconName: 'bore-hole',\n icon: [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32l0 232.6c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM0 384l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-272c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48l0 144c0 61.9-50.1 112-112 112S144 381.9 144 320l0-144c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48L0 384z\"]\n};\nvar faVirusCovid = {\n prefix: 'fas',\n iconName: 'virus-covid',\n icon: [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-11.3-11.3-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3l23.8 23.8 11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l11.3-11.3-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1l-23.8 23.8 11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l11.3 11.3 23.8-23.8C97.9 338.8 85.8 310.7 81.6 280l-33.6 0 0 16c0 13.3-10.7 24-24 24S0 309.3 0 296l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92 149.7 115.7c23.5-17.9 51.7-29.9 82.3-34.1l0-33.6-16 0c-13.3 0-24-10.7-24-24zm32 200a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [576, 512, [], \"f1c1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM240 380c-11 0-20 9-20 20l0 128c0 11 9 20 20 20s20-9 20-20l0-28 12 0c33.1 0 60-26.9 60-60s-26.9-60-60-60l-32 0zm32 80l-12 0 0-40 12 0c11 0 20 9 20 20s-9 20-20 20zm96-80c-11 0-20 9-20 20l0 128c0 11 9 20 20 20l32 0c28.7 0 52-23.3 52-52l0-64c0-28.7-23.3-52-52-52l-32 0zm20 128l0-88 12 0c6.6 0 12 5.4 12 12l0 64c0 6.6-5.4 12-12 12l-12 0zm88-108l0 128c0 11 9 20 20 20s20-9 20-20l0-44 28 0c11 0 20-9 20-20s-9-20-20-20l-28 0 0-24 28 0c11 0 20-9 20-20s-9-20-20-20l-48 0c-11 0-20 9-20 20z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [576, 512, [], \"f1ab\", \"M160 0c17.7 0 32 14.3 32 32l0 32 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-9.6 0-8.4 23.1c-16.4 45.2-41.1 86.5-72.2 122 14.2 8.8 29 16.6 44.4 23.5l50.4 22.4 62.2-140c5.1-11.6 16.6-19 29.2-19s24.1 7.4 29.2 19l128 288c7.2 16.2-.1 35.1-16.2 42.2s-35.1-.1-42.2-16.2l-20-45-157.5 0-20 45c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l39.8-89.5-50.4-22.4c-23-10.2-45-22.4-65.8-36.4-21.3 17.2-44.6 32.2-69.5 44.7L78.3 380.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l34.5-17.3c16.3-8.2 31.8-17.7 46.4-28.3-13.8-12.7-26.8-26.4-38.9-40.9L81.6 224.7c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l10.2 12.2c11.5 13.9 24.1 26.8 37.4 38.7 27.5-30.4 49.2-66.1 63.5-105.4l.5-1.2-210.3 0C14.3 128 0 113.7 0 96S14.3 64 32 64l96 0 0-32c0-17.7 14.3-32 32-32zM416 270.8L365.7 384 466.3 384 416 270.8z\"]\n};\nvar faShieldHalved = {\n prefix: 'fas',\n iconName: 'shield-halved',\n icon: [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0zm0 66.8l0 378.1c138-66.8 175.1-214.8 176-303.4l-176-74.6 0 0z\"]\n};\nvar faShieldAlt = faShieldHalved;\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M140.3 135.2c12.6-10.3 31.1-9.5 42.8 2.2l128 128c9.2 9.2 11.9 22.9 6.9 34.9S301.4 320 288.5 320l-256 0c-12.9 0-24.6-7.8-29.6-19.8S.7 274.5 9.9 265.4l128-128 2.4-2.2z\"]\n};\nvar faFilePen = {\n prefix: 'fas',\n iconName: 'file-pen',\n icon: [640, 512, [128221, \"file-edit\"], \"f31c\", \"M128.1 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l146.2 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l132.2-132.2 0-97.5c0-17-6.7-33.3-18.7-45.3L322.8 18.7C310.8 6.7 294.5 0 277.6 0L128.1 0zM389.6 176l-93.5 0c-13.3 0-24-10.7-24-24l0-93.5 117.5 117.5zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"]\n};\nvar faFileEdit = faFilePen;\nvar faPersonBiking = {\n prefix: 'fas',\n iconName: 'person-biking',\n icon: [576, 512, [128692, \"biking\"], \"f84a\", \"M368 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L256 305.1 256 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L263 232.9 323.3 184.4 364 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM112 512a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm352 0a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faBiking = faPersonBiking;\nvar faBookOpenReader = {\n prefix: 'fas',\n iconName: 'book-open-reader',\n icon: [512, 512, [\"book-reader\"], \"f5da\", \"M256 152a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm0 298.7l0-149.3c16.3-6.8 32.9-13.7 49.7-20.7 39-16.2 80.8-24.6 123.1-24.6l19.2 0 0 160-19.2 0c-59.1 0-117.7 11.7-172.3 34.5l-.5 .2zM256 232l-25.1-10.5C184.1 202 133.9 192 83.2 192L48 192c-26.5 0-48 21.5-48 48L0 432c0 26.5 21.5 48 48 48l35.2 0c50.7 0 100.9 10 147.7 29.5l12.8 5.3c7.9 3.3 16.7 3.3 24.6 0l12.8-5.3c46.8-19.5 97-29.5 147.7-29.5l35.2 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-35.2 0c-50.7 0-100.9 10-147.7 29.5L256 232z\"]\n};\nvar faBookReader = faBookOpenReader;\nvar faGlassWaterDroplet = {\n prefix: 'fas',\n iconName: 'glass-water-droplet',\n icon: [384, 512, [], \"e4f5\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64 317.6 64 301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60s64-26.9 64-60z\"]\n};\nvar faTowerBroadcast = {\n prefix: 'fas',\n iconName: 'tower-broadcast',\n icon: [576, 512, [\"broadcast-tower\"], \"f519\", \"M87.9 11.5c-11.3-6.9-26.1-3.2-33 8.1-24.8 41-39 89.1-39 140.4s14.2 99.4 39 140.4c6.9 11.3 21.6 15 33 8.1s15-21.6 8.1-33C75.7 241.9 64 202.3 64 160S75.7 78.1 96.1 44.4c6.9-11.3 3.2-26.1-8.1-33zm400.1 0c-11.3 6.9-15 21.6-8.1 33 20.4 33.7 32.1 73.3 32.1 115.6s-11.7 81.9-32.1 115.6c-6.9 11.3-3.2 26.1 8.1 33s26.1 3.2 33-8.1c24.8-41 39-89.1 39-140.4S545.8 60.6 521 19.6c-6.9-11.3-21.6-15-33-8.1zM320 215.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.7 12.9 44.4 32 55.4L256 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-264.6zM180.2 91c7.2-11.2 3.9-26-7.2-33.2s-26-3.9-33.2 7.2c-17.6 27.4-27.8 60-27.8 95s10.2 67.6 27.8 95c7.2 11.2 22 14.4 33.2 7.2s14.4-22 7.2-33.2c-12.8-19.9-20.2-43.6-20.2-69s7.4-49.1 20.2-69zM436.2 65c-7.2-11.2-22-14.4-33.2-7.2s-14.4 22-7.2 33.2c12.8 19.9 20.2 43.6 20.2 69s-7.4 49.1-20.2 69c-7.2 11.2-3.9 26 7.2 33.2s26 3.9 33.2-7.2c17.6-27.4 27.8-60 27.8-95s-10.2-67.6-27.8-95z\"]\n};\nvar faBroadcastTower = faTowerBroadcast;\nvar faMinimize = {\n prefix: 'fas',\n iconName: 'minimize',\n icon: [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2S322.1 32.2 329 39l40 40 73.4-73.4C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143 473 183c6.9 6.9 8.9 17.2 5.2 26.2S465.7 224 456 224zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433 329 473c-6.9 6.9-17.2 8.9-26.2 5.2S288 465.7 288 456l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40-73.4 73.4C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2S46.3 288 56 288l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8S32.2 189.9 39 183L79 143 5.7 69.7C2 66 0 61.1 0 56S2 46 5.7 42.3L42.3 5.7C46 2 50.9 0 56 0S66 2 69.7 5.7L143 79 183 39c6.9-6.9 17.2-8.9 26.2-5.2S224 46.3 224 56l0 144c0 13.3-10.7 24-24 24L56 224z\"]\n};\nvar faCompressArrowsAlt = faMinimize;\nvar faArrowRightToCity = {\n prefix: 'fas',\n iconName: 'arrow-right-to-city',\n icon: [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 80 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM153 167l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [512, 512, [], \"f7ec\", \"M64 432l0-176c-35.3 0-64-28.7-64-64 0-216.5 512-216.5 512 0 0 35.3-28.7 64-64 64l0 176c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [512, 512, [127760], \"f0ac\", \"M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M448 448L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64zM184 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faMaskFace = {\n prefix: 'fas',\n iconName: 'mask-face',\n icon: [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1L64 128c-35.3 0-64 28.7-64 64l0 78.7c0 62.6 45.2 116 107 126.3l97.9 16.3c33 22 72.6 34.7 115.1 34.7s82.2-12.8 115.1-34.7L533 396.9c61.7-10.3 107-63.7 107-126.3l0-78.7c0-35.3-28.7-64-64-64l-89.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM135.9 336.9l-18.4-3.1C86.6 328.7 64 302 64 270.7l0-78.7 48 0 0 48c0 35 8.6 67.9 23.9 96.9zm386.6-3.1l-18.4 3.1C519.4 307.9 528 275 528 240l0-48 48 0 0 78.7c0 31.3-22.6 58-53.5 63.1zM192 232c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm56 56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [512, 512, [], \"f55c\", \"M448.5 384c0 41.5-13.1 79.9-35.5 111.3-7.9 11.1-21.2 16.7-34.8 16.7l-243.3 0c-13.7 0-26.9-5.6-34.8-16.7-22.4-31.4-35.5-69.8-35.5-111.3 0-71.1 38.6-133.1 96-166.3l0-153.7c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.7c14.2 8.2 27.2 18.2 38.8 29.6l39.3-39.3-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16 16 32 32 48 48 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3c17.3 28.9 27.3 62.6 27.3 98.8zM288.5 64l-64 0 0 190.6-32 18.5c-19.5 11.3-35.7 27.5-46.9 46.9l221.8 0c-11.2-19.4-27.4-35.6-46.9-46.9l-32-18.5 0-190.6z\"]\n};\nvar faRoadBridge = {\n prefix: 'fas',\n iconName: 'road-bridge',\n icon: [576, 512, [], \"e563\", \"M32 32l208 0 0 64-24 0 0 64 24 0 0 129.3c-45.4 7.6-80 47.1-80 94.7l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64S14.3 32 32 32zM88 96l0 64 80 0 0-64-80 0zM336 32l72 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 72 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-72 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-72 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm96 160c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24z\"]\n};\nvar faArrowUp91 = {\n prefix: 'fas',\n iconName: 'arrow-up-9-1',\n icon: [512, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM365.1 206.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 112a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm42.7 182c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26z\"]\n};\nvar faSortNumericUpAlt = faArrowUp91;\nvar faMountainCity = {\n prefix: 'fas',\n iconName: 'mountain-city',\n icon: [640, 512, [], \"e52e\", \"M256.3 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-77.8 0c4-15.4 2.4-32.6-6.7-48.2L354.6 256 368.3 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-6.1 0-11.4 3.4-14.1 8.5l-42.6-73c-6-10.2-14.1-18-23.3-23.3l0-56.2zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm160 96l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm-272-64.7l-65.1 111.6 33.1 33.1 48-48 40.4 0-56.4-96.7zm-27.6-47.9c12.3-21.2 42.9-21.2 55.3 0L420.3 463.9c12.4 21.3-2.9 48.1-27.6 48.1L56 512c-24.7 0-40.1-26.8-27.6-48.1L196.7 175.4z\"]\n};\nvar faArrowDown91 = {\n prefix: 'fas',\n iconName: 'arrow-down-9-1',\n icon: [512, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm134.5-184l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 112a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-5.3 182c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4z\"]\n};\nvar faSortNumericDesc = faArrowDown91;\nvar faSortNumericDownAlt = faArrowDown91;\nvar faFaceGrinWide = {\n prefix: 'fas',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7 46.9 6.3 83.1 46.5 83.1 95.1 0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64 0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72 0 23.2-11 43.8-28 57 34.1 5.7 60 35.3 60 71 0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72 0-35.7 25.9-65.3 60-71-17-13.2-28-33.8-28-57 0-39.8 32.2-72 72-72l13.7 0c-13.3-11.7-21.7-28.9-21.7-48 0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80 0-9.2-1.5-17.9-4.3-26.1-1.8-5.2-.8-11.1 2.8-15.4z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10.1 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.6 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [\"battery-2\"], \"f243\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-64 0z\"]\n};\nvar faBattery2 = faBatteryQuarter;\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1-5.9 6.2-11.8 11.8-17.4 16.7-5.6-4.9-11.5-10.5-17.4-16.7-25.9-27.5-46.6-62.6-46.6-104.1zM160 0C89.3 0 32 57.3 32 128 32 180.4 53.5 223.5 78.8 256L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0C266.5 223.5 288 180.4 288 128 288 57.3 230.7 0 160 0z\"]\n};\nvar faDiamond = {\n prefix: 'fas',\n iconName: 'diamond',\n icon: [512, 512, [9830], \"f219\", \"M17 215L215 17C225.9 6.1 240.6 0 256 0s30.1 6.1 41 17L495 215c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L297 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17L17 297C6.1 286.1 0 271.4 0 256s6.1-30.1 17-41z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [576, 512, [], \"f12c\", \"M96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64zM544 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9 5.6 11.2 16.9 17.7 28.6 17.7l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm285.1-32l34.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1 0 5.7 3.7 10.7 9.1 12.5l49.4 15.9c31.9 10.3 53.5 39.9 53.5 73.4 0 42.6-34.5 77.1-77.1 77.1L320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l50.9 0c7.2 0 13.1-5.9 13.1-13.1 0-5.7-3.7-10.7-9.1-12.5l-49.4-15.9c-31.9-10.3-53.5-39.9-53.5-73.4 0-42.6 34.5-77.1 77.1-77.1z\"]\n};\nvar faRupee = faRupeeSign;\nvar faPersonRifle = {\n prefix: 'fas',\n iconName: 'person-rifle',\n icon: [512, 512, [], \"e54e\", \"M416 0L384 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7L432 16c0-8.8-7.2-16-16-16zM224 208C118 208 32 294 32 400l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-32.5 12.1-62.1 32-84.7l0 196.7 160 0 0-293.1c-20-7.1-41.6-10.9-64-10.9zM280 88a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"]\n};\nvar faD = {\n prefix: 'fas',\n iconName: 'd',\n icon: [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32l128 0c123.7 0 224 100.3 224 224S283.7 480 160 480L32 480c-17.7 0-32-14.3-32-32L0 64zM64 96l0 320 96 0c88.4 0 160-71.6 160-160S248.4 96 160 96L64 96z\"]\n};\nvar faSquareNfi = {\n prefix: 'fas',\n iconName: 'square-nfi',\n icon: [448, 512, [], \"e576\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM93 172.3l35 63 0-51.4c0-13.3 10.7-24 24-24s24 10.7 24 24l0 144c0 10.9-7.4 20.5-18 23.2s-21.7-2-27-11.6l-35-63 0 51.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-10.9 7.4-20.5 18-23.2s21.7 2 27 11.6zM208 184c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 32 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144zm192 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [512, 512, [], \"f62e\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM144 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm128 0l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM80 176c-17.7 0-32 14.3-32 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32zm320 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32zM48 336c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16zm144 48c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm128 0c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm112-16c17.7 0 32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16c0 17.7 14.3 32 32 32z\"]\n};\nvar faMagnifyingGlassDollar = {\n prefix: 'fas',\n iconName: 'magnifying-glass-dollar',\n icon: [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM212 96c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L168 256c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"]\n};\nvar faSearchDollar = faMagnifyingGlassDollar;\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M164.3 64L138.7 192 56 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L58.5 80.4C61.8 70.6 71 64 81.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM344 64l82.7 0 16 80c-14.7 .2-29.3 5.5-40.9 15.9-11.5 10.3-22.5 21-32.8 32.1l-24.9 0 0-128zM96 240l233.2 0c-6.4 8.8-12.3 17.6-17.7 26.3-21.4 34.7-39.5 76.1-39.5 115.8 0 17.1 2.1 33.8 6 49.9l-120.4 0 1.9 10.3c3.2 17.4-8.4 34-25.8 37.2s-34-8.4-37.2-25.8C71 313.3 58 242.1 57.7 240L96 240zm512-72c0 11-7.4 20.3-17.5 23.1-.9-.8-1.7-1.6-2.6-2.4-21.8-20-54.3-21.8-78-5.5-4.2-4.3-8.5-8.5-12.9-12.6l-21.3-106.6 83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1zM505.7 240.3L518 226.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM544 432.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [448, 512, [], \"f093\", \"M256 109.3L256 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-210.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 109.3zM224 400c44.2 0 80-35.8 80-80l80 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64l80 0c0 44.2 35.8 80 80 80zm144 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [576, 512, [62714, \"user-alt-slash\", \"user-large-slash\"], \"f506\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L311.5 245.7c55-10.9 96.5-59.5 96.5-117.7 0-66.3-53.7-120-120-120-58.2 0-106.8 41.5-117.7 96.5L41-24.9zM235.6 305.4C147.9 316.6 80 391.5 80 482.3 80 498.7 93.3 512 109.7 512l332.5 0-206.6-206.6z\"]\n};\nvar faUserAltSlash = faUserSlash;\nvar faUserLargeSlash = faUserSlash;\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [512, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 105.4-105.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faVialVirus = {\n prefix: 'fas',\n iconName: 'vial-virus',\n icon: [576, 512, [], \"e597\", \"M64 32C64 14.3 78.3 0 96 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 151.7c-18.5 0-37 7-51.1 21.1-21.6 21.6-26.6 53.6-15 79.9-26.9 10.4-45.9 36.6-45.9 67.1s19 56.7 45.9 67.1c-7.3 16.5-8 35.2-2.3 52.2-13.4 5.7-28.2 8.8-43.6 8.8-61.9 0-112-50.1-112-112L96 64C78.3 64 64 49.7 64 32zm96 32l0 128 96 0 0-128-96 0zM280 408c-13.3 0-24-10.7-24-24s10.7-24 24-24c28.8 0 43.2-34.8 22.9-55.2-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.4 20.4 55.2 5.9 55.2-22.9 0-13.3 10.7-24 24-24s24 10.7 24 24c0 28.8 34.8 43.2 55.2 22.9 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.4 20.4-5.9 55.2 22.9 55.2 13.3 0 24 10.7 24 24s-10.7 24-24 24c-28.8 0-43.2 34.8-22.9 55.2 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.4-20.4-55.2-5.9-55.2 22.9 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-28.8-34.8-43.2-55.2-22.9-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.4-20.4 5.9-55.2-22.9-55.2zm104-32a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [384, 512, [], \"f560\", \"M249.9 66.8c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-106 145.7-37.5-37.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l128-176zm128 136c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-170 233.7-69.5-69.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l192-264z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M234.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5 .3-86.2 32.6-96.8 70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3-14.3-70.1 10.2-84.1 59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2-25.8 0-46.7-20.9-46.7-46.7l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3 29.1 51.7 10.2 84.1-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5 46.9 53.9 32.6 96.8-52.1 69.1-84.4 58.5z\"]\n};\nvar faHelmetSafety = {\n prefix: 'fas',\n iconName: 'helmet-safety',\n icon: [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M352 264l0-200c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 200c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-185.9C90 109.8 32 191.8 32 288l0 64 512 0 0-64c-1-95.2-58.4-177.7-144-209.8L400 264c0 13.3-10.7 24-24 24s-24-10.7-24-24zM40 400c-22.1 0-40 17.9-40 40s17.9 40 40 40l496 0c22.1 0 40-17.9 40-40s-17.9-40-40-40L40 400z\"]\n};\nvar faHardHat = faHelmetSafety;\nvar faHatHard = faHelmetSafety;\nvar faE = {\n prefix: 'fas',\n iconName: 'e',\n icon: [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faFaceLaughSquint = {\n prefix: 'fas',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM107.7 332.1C102 318 113.4 304 128.6 304l254.9 0c15.2 0 26.6 14 20.9 28.1-23.8 58.6-81.2 99.9-148.3 99.9s-124.6-41.3-148.3-99.9zm15-188.8c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faDownLeftAndUpRightToCenter = {\n prefix: 'fas',\n iconName: 'down-left-and-up-right-to-center',\n icon: [512, 512, [\"compress-alt\"], \"f422\", \"M439.5 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S450.2 240 440.5 240l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87zM72.5 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S62.8 272 72.5 272z\"]\n};\nvar faCompressAlt = faDownLeftAndUpRightToCenter;\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [576, 512, [], \"f79c\", \"M202-30.6c12.5 4.4 19 18.1 14.6 30.6l-8.2 23.1 25.4-18.5c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5L233.8 64 272 64c26.5 0 48 21.5 48 48l0 2.1c-54.7 10.4-96 58.4-96 116l0 1.9c0 8.9 1 17.5 2.8 25.9-11.9 17.8-18.8 39.1-18.8 62.1l0 128c0 23.8 7.4 45.9 20.1 64L48 512c-26.5 0-48-21.5-48-48L0 112C0 85.5 21.5 64 48 64l38.2 0-28.3-20.6C47.2 35.6 44.8 20.6 52.6 9.9S75.4-3.2 86.1 4.6l27.4 20-8.3-25C101-13 107.8-26.6 120.4-30.8s26.2 2.6 30.4 15.2l9.9 29.8 10.7-30.2c4.4-12.5 18.1-19 30.6-14.6zM489.9 208c-7.5 0-14.5 3.8-18.6 10.1L446.9 256 488 256c13.3 0 24-10.7 24-24l0-1.9c0-12.2-9.9-22.1-22.1-22.1zM385.1 256l-24.4-37.9c-4.1-6.3-11.1-10.1-18.6-10.1-12.2 0-22.1 9.9-22.1 22.1l0 1.9c0 13.3 10.7 24 24 24l41.1 0zM281.9 268.5c-6.3-10.7-9.9-23.2-9.9-36.5l0-1.9c0-38.7 31.4-70.1 70.1-70.1 23.8 0 46 12.1 58.9 32.1l15 23.2 15-23.2c12.9-20 35.1-32.1 58.9-32.1 38.7 0 70.1 31.4 70.1 70.1l0 1.9c0 13.3-3.6 25.8-9.9 36.5 15.7 11.7 25.9 30.4 25.9 51.5l0 128c0 35.3-28.7 64-64 64l-72 0 0-208-48 0 0 208-72 0c-35.3 0-64-28.7-64-64l0-128c0-21.1 10.2-39.8 25.9-51.5z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [576, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32l0 224 224 0 0-128c0-17.7 14.3-32 32-32l160 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32zm80 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faMoneyBillTransfer = {\n prefix: 'fas',\n iconName: 'money-bill-transfer',\n icon: [640, 512, [], \"e528\", \"M31 105c-9.4-9.4-9.4-24.6 0-33.9L103-1c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 67.7 0 0 0 338.3 0c35.3 0 64 28.7 64 64l0 178.2-5.1-5.1c-28.1-28.1-73.7-28.1-101.8 0-27.2 27.2-28.1 70.6-2.8 98.9l67.7 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-406.1 0c-35.3 0-64-28.7-64-64l0-178.2 5.1 5.1c28.1 28.1 73.7 28.1 101.8 0 27.2-27.2 28.1-70.6 2.8-98.9l-67.7 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L31 105zM416 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm88-64.5c4.4 .5 8-3.1 8-7.5l0-48c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8.1 3.6-7.5 8 3.6 29 26.6 51.9 55.5 55.5zm-368 129c-4.4-.5-8 3.1-8 7.5l0 48c0 4.4 3.6 8 8 8l48 0c4.4 0 8.1-3.6 7.5-8-3.6-29-26.6-51.9-55.5-55.5z\"]\n};\nvar faPersonRunning = {\n prefix: 'fas',\n iconName: 'person-running',\n icon: [448, 512, [127939, \"running\"], \"f70c\", \"M256.5-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.6 176c-3.3 0-6.2 2-7.4 5L94.2 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.7 129.9 94.1 112 123.6 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.7 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.9 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45l82.4-67.9c4.5-3.7 7.8-8.5 9.8-13.9L115.6 357z\"]\n};\nvar faRunning = faPersonRunning;\nvar faCircleChevronDown = {\n prefix: 'fas',\n iconName: 'circle-chevron-down',\n icon: [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"]\n};\nvar faChevronCircleDown = faCircleChevronDown;\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M96 44.9c0-12.7 7.5-24.2 19.2-29.3l96-42c8.2-3.6 17.5-3.6 25.7 0l96 42C344.5 20.7 352 32.2 352 44.9l0 99.1c0 70.7-57.3 128-128 128S96 214.7 96 144l0-99.1zM304 128l-111.6 0-.4 0-48 0 0 16c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16zM208 16l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8L216 8c-4.4 0-8 3.6-8 8zM142.6 323c-6.5-4.9-15.2-6.2-22.6-2.8-61.4 28.2-104.1 90.2-104.1 162.1 0 16.4 13.3 29.7 29.7 29.7l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-67 50.2c-8.5 6.4-20.3 6.4-28.8 0l-67-50.2z\"]\n};\nvar faFaceKissWinkHeart = {\n prefix: 'fas',\n iconName: 'face-kiss-wink-heart',\n icon: [640, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M543.7 268.3c.2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-7.6-17.1-16.1-38.8-21.8-61.7-7.7-30.5-14.1-76.2 8.2-114.7l2.7-4.6c29.5-51 94.7-68.5 145.7-39 2 1.2 4 2.4 5.9 3.7zM240 304c0-8.8 7.2-16 16-16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16zM208 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm152 20c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M296 64c6.9 0 13.5 2.7 18.3 7.6L440.4 197.7c4.9 4.9 7.6 11.5 7.6 18.3s-2.7 13.5-7.6 18.3L386.7 288 65.3 288c1.3-3.9 3.4-7.4 6.3-10.3l96.4-96.4 33.4 33.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136 277.7 71.6c4.9-4.9 11.5-7.6 18.3-7.6zM122.7 136L26.3 232.4C9.5 249.3 0 272.1 0 296s9.5 46.7 26.3 63.6L152.4 485.7C169.3 502.5 192.1 512 216 512s46.7-9.5 63.6-26.3L485.7 279.6C502.5 262.7 512 239.9 512 216s-9.5-46.7-26.3-63.6L359.6 26.3C342.7 9.5 319.9 0 296 0s-46.7 9.5-63.6 26.3L168 90.7 118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L122.7 136z\"]\n};\nvar faMoneyBill1Wave = {\n prefix: 'fas',\n iconName: 'money-bill-1-wave',\n icon: [512, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 109.5L0 419.6c0 19.4 11.8 37.3 30.3 43.3 94 30 158.8 8.4 223.3-13.1 62.4-20.8 124.4-41.5 212.1-15.3 22.2 6.6 46.2-8.8 46.2-32l0-310.1c0-19.4-11.8-37.3-30.3-43.3-94-30-158.8-8.4-223.3 13.1-62.4 20.8-124.4 41.5-212.1 15.3-22.2-6.6-46.3 8.8-46.3 32zM256 368c-53 0-96-50.1-96-112s43-112 96-112 96 50.1 96 112-43 112-96 112zM127.1 405.5c.7 4.4-2.8 8.1-7.2 8.1-15.7 0-32.1-1.8-50-6.1-3.5-.8-6-4-6-7.7L64 360c0-4.4 3.6-8.1 8-7.5 28.1 3.5 50.6 25.2 55.2 53zM448 354.6c0 5-4.6 8.8-9.5 8-15.4-2.5-30.2-3.9-44.4-4.3-4.9-.1-8.7-4.5-7.2-9.2 7.3-23.7 28-41.4 53.2-44.6 4.4-.5 8 3.1 8 7.5l0 42.6zm-8-195.1c-28.1-3.5-50.6-25.2-55.2-53-.7-4.4 2.8-8.1 7.2-8.1 15.7 0 32.1 1.8 50 6.1 3.5 .8 6 4 6 7.7l0 39.9c0 4.4-3.6 8.1-8 7.5zm-322.1-5.8c4.9 .1 8.7 4.5 7.2 9.2-7.3 23.7-28 41.4-53.2 44.6-4.4 .5-8-3.1-8-7.5l0-42.6c0-5 4.6-8.8 9.5-8 15.4 2.5 30.2 3.9 44.4 4.3zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"]\n};\nvar faMoneyBillWaveAlt = faMoneyBill1Wave;\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [127963], \"f66f\", \"M238.7 5.1c10.5-6.8 24.1-6.8 34.6 0l224 144c11.9 7.7 17.4 22.3 13.4 35.9s-16.5 23-30.7 23l-32 0 0 208 51.2 38.4c8.1 6 12.8 15.5 12.8 25.6 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32 0-10.1 4.7-19.6 12.8-25.6l51.2-38.4 0 0 0-208-32 0c-14.2 0-26.7-9.4-30.7-23s1.5-28.3 13.4-35.9l224-144zM336 208l0 208 64 0 0-208-64 0zM224 416l64 0 0-208-64 0 0 208zM112 208l0 208 64 0 0-208-64 0z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [127925], \"f001\", \"M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM192 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faShuffle = {\n prefix: 'fas',\n iconName: 'shuffle',\n icon: [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S384 204.9 384 192l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8l-32.4 43.2-40-53.3 21.2-28.3C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM154 296l40 53.3-21.2 28.3C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L154 296zM438.6 470.6c-9.2 9.2-22.9 11.9-34.9 6.9S384 460.9 384 448l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"]\n};\nvar faRandom = faShuffle;\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [384, 512, [], \"f0cd\", \"M0 32C0 14.3 14.3 0 32 0L96 0c17.7 0 32 14.3 32 32S113.7 64 96 64l0 160c0 53 43 96 96 96s96-43 96-96l0-160c-17.7 0-32-14.3-32-32S270.3 0 288 0l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 160c0 88.4-71.6 160-160 160S32 312.4 32 224L32 64C14.3 64 0 49.7 0 32zM0 480c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z\"]\n};\nvar faBuildingUser = {\n prefix: 'fas',\n iconName: 'building-user',\n icon: [640, 512, [], \"e4da\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM339 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM176 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm240 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [129302], \"f544\", \"M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-160z\"]\n};\nvar faAdd = faPlus;\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-200.6c0-17.4-7.1-34.1-19.7-46.2L370.6 17.8C358.7 6.4 342.8 0 326.3 0L192 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-64 0 0 16-192 0 0-256 16 0 0-64-16 0z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224-32c17.7 0 32 14.3 32 32l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64 153.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L352 384 408.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L67.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L96 384 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l153.8 0 0-64-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-32c0-17.7 14.3-32 32-32z\"]\n};\nvar faHouseFloodWater = {\n prefix: 'fas',\n iconName: 'house-flood-water',\n icon: [640, 512, [], \"e50e\", \"M496 208l4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L348 10.5C340.3 3.7 330.3 0 320 0s-20.3 3.7-28 10.5L121.4 159.8c-6 5.2-9.4 12.8-9.4 20.7 0 15.2 12.3 27.5 27.5 27.5l4.5 0 0 94.4c20.3-9.4 42.1-14.2 64-14.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 16.9-.1 33.8 2.6 50 8l0-88zm-224-8c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM474.6 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 418.3 17.6 426.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 514.3 17.6 522.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faBitcoinSign = {\n prefix: 'fas',\n iconName: 'bitcoin-sign',\n icon: [320, 512, [], \"e0b4\", \"M64 24C64 10.7 74.7 0 88 0s24 10.7 24 24l0 40 32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 41.1c54.3 7.8 96 54.4 96 110.9 0 24.2-7.7 46.6-20.7 64.9 31.7 19.8 52.7 55 52.7 95.1 0 61.9-50.1 112-112 112l-16 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-32 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-22.3 0C18.7 448 0 429.3 0 406.3L0 101.6C0 80.8 16.8 64 37.6 64L64 64 64 24zm0 200l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-112 0 0 96zm112 64l-112 0 0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [448, 512, [128230], \"f466\", \"M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z\"]\n};\nvar faSquarePlus = {\n prefix: 'fas',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faArrowsLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-left-right',\n icon: [576, 512, [\"arrows-h\"], \"f07e\", \"M470.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l41.4 41.4-357.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-41.4-41.4 357.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faArrowsH = faArrowsLeftRight;\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M160 144c0-79.5 64.5-144 144-144 8.8 0 16 7.2 16 16l0 152.2c15-5.3 31.2-8.2 48-8.2 79.5 0 144 64.5 144 144 0 8.8-7.2 16-16 16l-152.2 0c5.3 15 8.2 31.2 8.2 48 0 79.5-64.5 144-144 144-8.8 0-16-7.2-16-16l0-152.2c-15 5.3-31.2 8.2-48 8.2-79.5 0-144-64.5-144-144 0-8.8 7.2-16 16-16l152.2 0c-5.3-15-8.2-31.2-8.2-48zm96 144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M456.5 0c-48.6 0-88 39.4-88 88l0 36-355.2 266.4C-.8 401-3.7 421 6.9 435.2s30.6 17 44.8 6.4l76.8-57.6 131.3 0 46.6 113.1 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-39.1-94.9 40.9 0c1.1 0 2.2 0 3.2 0l46.6 113.2 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-42-102C485.3 354.1 544.5 280 544.5 192l0-72 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4-7.1-28.5-32.7-48.5-62.1-48.5l-50.1 0C508.2 12.5 483.8 0 456.5 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faFileCircleCheck = {\n prefix: 'fas',\n iconName: 'file-circle-check',\n icon: [576, 512, [], \"e5a0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faLinkSlash = {\n prefix: 'fas',\n iconName: 'link-slash',\n icon: [576, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-122-122c4.2-3.4 8.3-7.1 12.1-10.9l71.1-71.1c29.3-29.3 45.8-69.1 45.8-110.6 0-86.4-70-156.5-156.5-156.5-37.3 0-73.1 13.3-101.3 37.2 20.3 10.1 38.7 23.5 54.5 39.5 14.1-8.3 30.2-12.7 46.8-12.7 51.1 0 92.5 41.4 92.5 92.5 0 24.5-9.7 48-27.1 65.4l-71.1 71.1c-3.9 3.9-8.1 7.4-12.6 10.5l-47.5-47.5c16.5-.9 29.7-14.4 30.2-31.1 0-1.3 0-2.6 0-3.9 0-86.3-69.9-156.9-156.5-156.9-19.2 0-37.9 3.5-55.5 10.2L41-24.9zM225.9 160c.6 0 1.1 0 1.7 0 15.1 0 29.5 3.7 42.1 10.2 1.8 1.2 3.6 2.3 5.5 3.1 26.8 16.3 44.8 45.9 44.8 79.6 0 .4 0 .8 0 1.2L225.9 160zM346.2 416L192 261.8c1.2 84.6 69.6 152.9 154.1 154.1zM139.7 209.5l-45.3-45.3-48.6 48.6c-29.3 29.3-45.8 69.1-45.8 110.6 0 86.4 70 156.5 156.5 156.5 37.2 0 73.1-13.3 101.3-37.2-20.3-10.1-38.8-23.5-54.6-39.5-14 8.2-30.1 12.6-46.7 12.6-51.1 0-92.5-41.4-92.5-92.5 0-24.5 9.7-48 27.1-65.4l48.6-48.6z\"]\n};\nvar faChainBroken = faLinkSlash;\nvar faChainSlash = faLinkSlash;\nvar faUnlink = faLinkSlash;\nvar faArrowRotateRight = {\n prefix: 'fas',\n iconName: 'arrow-rotate-right',\n icon: [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M436.7 74.7L448 85.4 448 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l47.9 0-7.6-7.2c-.2-.2-.4-.4-.6-.6-75-75-196.5-75-271.5 0s-75 196.5 0 271.5 196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c99.9-99.9 261.7-100 361.7-.3z\"]\n};\nvar faArrowRightRotate = faArrowRotateRight;\nvar faArrowRotateForward = faArrowRotateRight;\nvar faRedo = faArrowRotateRight;\nvar faPenClip = {\n prefix: 'fas',\n iconName: 'pen-clip',\n icon: [512, 512, [\"pen-alt\"], \"f305\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM274.1 100l0 0 137.9 137.9-215.1 215.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7L240.1 133.9 223 116.9c-9.4-9.4-24.6-9.4-33.9 0L89 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L155.1 82.9c28.1-28.1 73.7-28.1 101.8 0L274.1 100z\"]\n};\nvar faPenAlt = faPenClip;\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [448, 512, [128682], \"f52a\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM320 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faArrowDownWideShort = {\n prefix: 'fas',\n iconName: 'arrow-down-wide-short',\n icon: [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z\"]\n};\nvar faSortAmountAsc = faArrowDownWideShort;\nvar faSortAmountDown = faArrowDownWideShort;\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192l-256 0c-12.9 0-24.6 7.8-29.6 19.8S.7 237.5 9.9 246.6l128 128 2.4 2.2z\"]\n};\nvar faK = {\n prefix: 'fas',\n iconName: 'k',\n icon: [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7C143.4 167.2 76.4 236.3 64 249L64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"]\n};\nvar faCheckToSlot = {\n prefix: 'fas',\n iconName: 'check-to-slot',\n icon: [576, 512, [\"vote-yea\"], \"f772\", \"M552 288c13.3 0 24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 312c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24zM416 32c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64L96 96c0-35.3 28.7-64 64-64l256 0zm-37.1 84.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6-9.5 9.2-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L384.2 150.1c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faVoteYea = faCheckToSlot;\nvar faFishFins = {\n prefix: 'fas',\n iconName: 'fish-fins',\n icon: [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9s-12.4 26-5.3 38.6L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3 15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8 39.2-29.4 67.2-64.7 81.6-89.5 5.8-9.9 5.8-22.2 0-32.1-14.4-24.8-42.5-60.1-81.6-89.5-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32S96 46.3 96 64l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z\"]\n};\nvar faArrowUpAZ = {\n prefix: 'fas',\n iconName: 'arrow-up-a-z',\n icon: [512, 512, [\"sort-alpha-up\"], \"f15e\", \"M412.6 49.7C407.2 38.8 396.1 32 384 32s-23.2 6.8-28.6 17.7c-50.7 101.3-77.3 154.7-80 160-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9c-2.7-5.3-29.3-58.7-80-160zM384 135.6l20.2 40.4-40.4 0 20.2-40.4zM288 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 480 320 480l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S460.9 288 448 288l-128 0c-17.7 0-32 14.3-32 32zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80z\"]\n};\nvar faSortAlphaUp = faArrowUpAZ;\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M241.3-13c-11.4-2.3-23.1-2.3-34.5 0L19.3 24.5C8.1 26.7 0 36.6 0 48 0 58.3 6.5 67.3 16 70.6L16 144 .3 222.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6l34.9 0c8 0 14.6-6.5 14.6-14.6 0-1-.1-1.9-.3-2.9L48 144 48 77.3 96 86.9 96 144c0 70.7 57.3 128 128 128s128-57.3 128-128l0-57.1 76.7-15.3C439.9 69.3 448 59.4 448 48s-8.1-21.3-19.3-23.5L241.3-13zM224 224c-44.2 0-80-35.8-80-80l160 0c0 44.2-35.8 80-80 80zM120.1 320.1C58.7 348.3 16 410.3 16 482.3 16 498.7 29.3 512 45.7 512l154.3 0 0-146-57.4-43c-6.5-4.9-15.2-6.2-22.6-2.8zM248 512l154.3 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-57.4 43 0 146z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM154.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm112-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [129532], \"e06e\", \"M208-32a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM320 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 160l112 0c0 23.8 7.4 45.9 20.1 64L160 224c-53 0-96 43-96 96s43 96 96 96l192 0c53 0 96-43 96-96 0-35.1-18.9-65.9-47-82.6 19-19.8 30.7-46.6 31-76.1 45.4 7.6 80 47.1 80 94.7l0 128c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 256c0-53 43-96 96-96zm64 112l192 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48s21.5-48 48-48z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [9842, 9850, 9851], \"f1b8\", \"M152.3 60C198.5-20 314-20 360.2 60l37.3 64.6 27.7-16c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3L436.9 223c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l27.7-16-37.3-64.6c-21.6-37.3-75.4-37.3-97 0l-5.3 9.1c-8.8 15.3-28.4 20.5-43.7 11.7S138.2 84.5 147 69.1l5.3-9.1zM449.7 279.1c15.3-8.8 34.9-3.6 43.7 11.7l5.3 9.1c46.2 80-11.5 180-103.9 180l-74.6 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 74.6 0c43.1 0 70.1-46.7 48.5-84l-5.3-9.1c-8.8-15.3-3.6-34.9 11.7-43.7zM51 235.4l-27.7-16c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20L116.5 152c12.8-3.4 26 4.2 29.4 17l23.4 87.4c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-27.7-16-37.3 64.6c-21.6 37.3 5.4 84 48.5 84l10.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.6 0C25.3 480-32.4 380 13.8 300L51 235.4z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'fas',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM328 196c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faWaterLadder = {\n prefix: 'fas',\n iconName: 'water-ladder',\n icon: [640, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M374.5 405.7c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.8 25.7-4.8 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0-24.2 18.3-52.3 35.9-83.4 35.9s-59.1-17.7-83.3-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.6-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3zM511.8 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.8 14.2-31.8 31.8l0 211.8c-23.1-5.1-44.9-4.4-64-.4l0-51.2-192 0 0 48.7c-5.3-.5-10.7-.8-16-.7-16.2 .1-32.4 2.7-48 8l0-216.2c0-52.9 42.9-95.8 95.7-95.8 48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.7 14.2-31.7 31.8l0 96.2 192 0 0-96.2C416 74.9 458.9 32 511.8 32z\"]\n};\nvar faLadderWater = faWaterLadder;\nvar faSwimmingPool = faWaterLadder;\nvar faGemini = {\n prefix: 'fas',\n iconName: 'gemini',\n icon: [448, 512, [], \"e849\", \"M395.4 8c13.2-11.7 33.3-10.5 45.1 2.7 11.7 13.2 10.5 33.4-2.7 45.2-2.7 2.4-23.1 19.8-58.3 36.8-8.2 4-17.2 7.9-27 11.6l0 303.2c9.8 3.8 18.8 7.6 27 11.6 18.2 8.8 32.4 17.7 42.2 24.5 3 2.1 5.5 4.1 7.7 5.7 1.2 .9 2.3 1.6 3.2 2.4 .2 .1 .3 .2 .5 .4 1.3 1.1 2.4 2 3.2 2.6 .4 .3 .7 .6 .9 .8 .1 .1 .3 .2 .3 .3 0 0 .1 .1 .1 .1l.1 0 0 0 0 0c3.3 2.9 5.9 6.4 7.7 10.2 5.4 11.3 3.8 25.1-5 35-.3 .4-.7 .7-1.1 1.1-11.9 12.2-31.2 13.1-44 1.7-.3-.3-1.5-1.3-3.5-2.8-.4-.3-.9-.7-1.5-1.1-1.9-1.4-4.2-3.1-7.1-5.1-2.2-1.5-4.7-3.1-7.4-4.8-6.6-4.1-14.8-8.8-24.4-13.5-7.4-3.6-15.6-7.2-24.7-10.5-13.6-5.1-29-9.6-46.1-12.9-5.7-1.1-11.6-2.1-17.7-2.8-12.1-1.6-25-2.5-38.6-2.5-54.2 0-97.4 14.4-127 28.8-3.4 1.6-6.5 3.3-9.5 4.9-5.1 2.8-9.7 5.4-13.8 7.9-3.3 2.1-6.3 4-8.9 5.7-1.7 1.2-3.2 2.3-4.6 3.3-1.9 1.4-3.5 2.5-4.6 3.4-1.4 1.1-2.2 1.8-2.5 2-13.2 11.7-33.3 10.5-45.1-2.8-2.2-2.5-4-5.2-5.2-8.1s-2.1-5.9-2.5-8.9c-1.4-10.2 2.2-20.8 10.4-28.2 .2-.2 .6-.5 1.2-1 .1-.1 .2-.2 .3-.3l3.2-2.6c1.7-1.3 3.7-2.8 6.2-4.6 1.6-1.2 3.3-2.5 5.2-3.8 9.8-6.8 24-15.7 42.2-24.5 8.2-4 17.2-7.9 27-11.6l0-303.2C86.7 100.6 77.7 96.7 69.5 92.8 34.3 75.7 14 58.3 11.3 55.9-1.9 44.2-3.1 24 8.6 10.7 20.3-2.5 40.5-3.7 53.7 8 55.1 9.2 70.7 22.2 97.5 35.2 127.1 49.6 170.3 64 224.5 64s97.4-14.4 127-28.8c26.8-13 42.4-26 43.8-27.2zM288.5 122.3c-19.7 3.5-41 5.7-64 5.7s-44.3-2.2-64-5.7l0 267.4c12.6-2.3 25.9-4 39.9-4.9 7.8-.5 15.8-.8 24-.8 23 0 44.4 2.2 64 5.7l0-267.4z\"]\n};\nvar faTowerCell = {\n prefix: 'fas',\n iconName: 'tower-cell',\n icon: [576, 512, [], \"e585\", \"M59.6 9.8C47.3 4.8 33.3 10.7 28.4 23 15.2 55.5 8 90.9 8 128s7.2 72.5 20.4 105c5 12.3 19 18.2 31.3 13.2s18.2-19 13.2-31.3C62 188.2 56 158.8 56 128s6-60.2 16.9-87c5-12.3-1-26.3-13.2-31.3zm456.8 0c-12.3 5-18.2 19-13.2 31.3 10.9 26.8 16.9 56.2 16.9 87s-6 60.2-16.9 87c-5 12.3 1 26.3 13.2 31.3s26.3-1 31.3-13.2c13.1-32.5 20.4-67.9 20.4-105s-7.2-72.5-20.4-105c-5-12.3-19-18.2-31.3-13.2zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9l20.6-45.2 220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM376.5 400l-177 0 21.8-48 133.3 0 21.8 48zM288 205.3l44.8 98.7-89.7 0 44.8-98.7zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"]\n};\nvar faColonSign = {\n prefix: 'fas',\n iconName: 'colon-sign',\n icon: [384, 512, [], \"e140\", \"M213.8 8.7c12.9 3.2 20.7 16.2 17.5 29.1l-4.6 18.5c15.4 .8 30.4 3.4 44.7 7.5l9.4-37.6C283.9 13.3 297 5.5 309.8 8.7S330.5 25 327.3 37.8L316 82.8c13.5 7.8 26 17.1 37.2 27.8 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-3.1-2.9-6.4-5.8-9.8-8.4L239.2 390c26.9-4.6 51.1-17.1 70.1-35.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2c-34.3 32.3-80 52.8-130.5 54.4l-7.5 29.9c-3.2 12.9-16.2 20.7-29.1 17.5s-20.7-16.2-17.5-29.1l5.6-22.5c-15-3.2-29.4-8-42.9-14.4l-12.1 48.5c-3.2 12.9-16.2 20.7-29.1 17.5S69.5 487 72.7 474.2l16-63.9C44.3 373.6 16 318.1 16 256 16 159.2 84.8 78.4 176.3 60l8.4-33.8C187.9 13.3 201 5.5 213.8 8.7zM158 132.9c-46.1 21.8-78 68.7-78 123.1 0 30.5 10 58.6 26.9 81.3L158 132.9zM147.4 373.4c13 7.6 27.3 13.1 42.5 16.1l65.9-263.6c-12.6-3.8-25.9-5.9-39.8-5.9-1.8 0-3.5 0-5.3 .1L147.4 373.4z\"]\n};\nvar faLaptopFile = {\n prefix: 'fas',\n iconName: 'laptop-file',\n icon: [576, 512, [], \"e51d\", \"M64 64C64 28.7 92.7 0 128 0L416 0c35.3 0 64 28.7 64 64l0 48-64 0 0-48-288 0 0 192 112 0 0 96-163.2 0C34.4 352 0 317.6 0 275.2 0 264.6 8.6 256 19.2 256L64 256 64 64zM529.9 257.9c9 9 14.1 21.2 14.1 33.9L544 464c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-256c0-26.5 21.5-48 48-48l76.1 0c12.7 0 24.9 5.1 33.9 14.1 20 20 47.9 47.9 83.9 83.9zM416 272c0 8.8 7.2 16 16 16l60.1 0-76.1-76.1 0 60.1z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [576, 512, [\"haykal\"], \"f666\", \"M288.4-8c13.2 0 25 8.1 29.8 20.4l31.9 82 77.2-42.3c11.6-6.3 25.8-4.9 35.9 3.5s14 22.3 9.7 34.8l-28.2 83.3 86.3 17.2c12.9 2.6 23 12.8 25.3 25.8s-3.6 26.1-14.9 32.9l-75.2 45.7 55 68.6c8.3 10.3 9.3 24.6 2.7 36s-19.5 17.6-32.6 15.6l-87-13.3-2 88c-.3 13.2-8.6 24.8-21 29.4s-26.3 1-35-9l-58-66.1-58 66.1c-8.7 9.9-22.6 13.5-35 9s-20.8-16.2-21-29.4l-2-88-87 13.3c-13 2-26-4.2-32.6-15.6s-5.5-25.7 2.7-36l55-68.6-75.2-45.7c-11.3-6.8-17.2-19.9-14.9-32.9s12.3-23.2 25.3-25.8l86.3-17.2-28.2-83.3c-4.2-12.5-.4-26.3 9.7-34.8s24.4-9.9 35.9-3.5l77.1 42.3 31.9-82C263.3 .1 275.2-8 288.4-8zm0 120.2L273 151.6c-3.3 8.6-10.2 15.3-18.9 18.5s-18.2 2.4-26.3-2l-37-20.3 13.6 40c3 8.7 2 18.3-2.6 26.3s-12.4 13.6-21.5 15.4l-41.4 8.3 36.1 21.9c7.9 4.8 13.3 12.7 14.9 21.8s-.8 18.4-6.5 25.6l-26.4 33 41.8-6.4c9.1-1.4 18.4 1.2 25.4 7.1s11.2 14.6 11.4 23.8l.9 42.2 27.9-31.8c6.1-6.9 14.8-10.9 24.1-10.9s18 4 24.1 10.9l27.9 31.8 .9-42.2c.2-9.2 4.4-17.9 11.4-23.8s16.3-8.5 25.4-7.1l41.8 6.4-26.4-33c-5.8-7.2-8.2-16.5-6.6-25.6s7-17 14.9-21.8l36.1-21.9-41.4-8.3c-9-1.8-16.9-7.4-21.5-15.4s-5.5-17.6-2.6-26.3l13.6-40-37 20.3c-8.1 4.4-17.7 5.2-26.3 2s-15.5-9.9-18.9-18.5l-15.3-39.4z\"]\n};\nvar faHaykal = faBahai;\nvar faMoneyBill1 = {\n prefix: 'fas',\n iconName: 'money-bill-1',\n icon: [512, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 80a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM64 184l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 144c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM440 191.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM448 328l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faCloudBolt = {\n prefix: 'fas',\n iconName: 'cloud-bolt',\n icon: [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96l38.6 0 124.1-111c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7L354.1 320 416 320c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM160.6 400l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L362.5 396.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L149.5 371.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"]\n};\nvar faThunderstorm = faCloudBolt;\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M0 224L0 416c0 17.7 14.3 32 32 32l32 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 32 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHryvniaSign = {\n prefix: 'fas',\n iconName: 'hryvnia-sign',\n icon: [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M336 149.4C336 77 268.5 23.5 198 40.1L93.2 64.9C76 68.9 65.4 86.2 69.4 103.4s21.3 27.9 38.5 23.8l104.8-24.7c30.3-7.1 59.3 15.8 59.3 46.9 0 17.6-9.6 33.8-25 42.3l-.7 .4-222.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32.4 0c5.5-13.3 8.4-27.8 8.4-42.6zM360 272L24 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.3 0c-6.1 13.4-9.3 28.1-9.3 43.3 0 64.1 56.9 113.4 120.4 104.2l137.9-19.9c17.5-2.5 29.6-18.7 27.1-36.2s-18.8-29.6-36.2-27.1L159.2 404.2c-24.9 3.6-47.2-15.7-47.2-40.9 0-15.1 8.2-28.9 21.4-36.2l13-7.1 213.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24z\"]\n};\nvar faHryvnia = faHryvniaSign;\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [576, 512, [], \"f070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM325.3 395.1c-11.9 3.2-24.4 4.9-37.3 4.9-79.5 0-144-64.5-144-144 0-12.9 1.7-25.4 4.9-37.3L69.4 139.2c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6l-64.2-64.2z\"]\n};\nvar faCartFlatbedSuitcase = {\n prefix: 'fas',\n iconName: 'cart-flatbed-suitcase',\n icon: [576, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-6 1.1-11.7 3.1-17-38.1-6.2-67.1-39.2-67.1-79L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM176 144c0-26.5 21.5-48 48-48l32 0 0-24c0-30.9 25.1-56 56-56l64 0c30.9 0 56 25.1 56 56l0 24 32 0c26.5 0 48 21.5 48 48l0 144c0 26.5-21.5 48-48 48l-240 0c-26.5 0-48-21.5-48-48l0-144zM384 96l0-24c0-4.4-3.6-8-8-8l-64 0c-4.4 0-8 3.6-8 8l0 24 80 0z\"]\n};\nvar faLuggageCart = faCartFlatbedSuitcase;\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [576, 512, [], \"f7b9\", \"M446.2 34.5c-14.2-10.1-33.5-4.6-42.2 10.5L331.6 170.3c31.3 15.8 52.8 48.3 52.8 85.7l144 0c17.7 0 32.2-14.4 30.1-31.9-9.1-78.1-51.4-146.1-112.3-189.6zM172.7 44.9C164 29.8 144.7 24.3 130.5 34.5 69.6 77.9 27.3 145.9 18.2 224.1 16.1 241.6 30.7 256 48.3 256l144 0c0-37.5 21.5-69.9 52.8-85.7L172.7 44.9zm-9.4 416.8c-8.7 15.1-3.8 34.5 12 41.8 34.4 15.7 72.7 24.5 113 24.5s78.6-8.8 113-24.5c15.8-7.2 20.7-26.7 12-41.8L341 336.3c-15.1 9.9-33.2 15.7-52.6 15.7s-37.5-5.8-52.6-15.7L163.3 461.7zM288.3 304a48 48 0 1 0 -.7-96 48 48 0 1 0 .7 96z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM135.4 274.8c-2.9-12.9-15.7-21.1-28.6-18.2s-21.1 15.7-18.2 28.6l32 144c2.3 10.5 11.4 18.2 22.2 18.8s20.6-6.1 24-16.4l25.2-75.7 25.2 75.7c3.4 10.2 13.2 16.9 24 16.4s19.9-8.2 22.2-18.8l32-144c2.9-12.9-5.3-25.8-18.2-28.6s-25.8 5.3-28.6 18.2l-13.2 59.4-20.6-61.8c-3.3-9.8-12.4-16.4-22.8-16.4s-19.5 6.6-22.8 16.4l-20.6 61.8-13.2-59.4z\"]\n};\nvar faBedPulse = {\n prefix: 'fas',\n iconName: 'bed-pulse',\n icon: [640, 512, [\"procedures\"], \"f487\", \"M531.2-22.4L572 32 616 32c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0c-7.6 0-14.7-3.6-19.2-9.6l-24.1-32.1-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L387.2 80 344 80c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5c3.6-7.6 10.9-12.8 19.3-13.7s16.6 2.7 21.6 9.5zM320 160c0-17.7 14.3-32 32-32l9.5 0 26.6 39.9c14.4 21.6 39.3 33.8 65.2 31.9s48.8-17.6 59.8-41.1L527 129.2c45.9 7.2 81 46.9 81 94.8l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 224 224 0 0-128zM144 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faProcedures = faBedPulse;\nvar faTents = {\n prefix: 'fas',\n iconName: 'tents',\n icon: [576, 512, [], \"e582\", \"M539.9 352l-95.6 0-8.4-66.1c-2.9-23.2-15.9-43.9-35.4-56.8L252.2 131.5c-18-11.9-39.7-15.7-60.1-11.5 2.5-4.3 5.9-7.9 10.1-10.7L350.6 11.6c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36zM4.8 476l23.3-184c1.2-9.3 6.3-17.6 14.2-22.7l148.4-97.7c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36l-49.7 0c-11.2 0-21.5-5.8-27.3-15.4l-77-126.7c-1.7-2.8-4.8-4.6-8.1-4.6-5.3 0-9.5 4.3-9.5 9.5l0 105.2c0 17.7-14.3 32-32 32L36.5 512c-19.3 0-34.2-16.9-31.7-36z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [576, 512, [9749], \"f7b6\", \"M152-16c-13.3 0-24 10.7-24 24 0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C183.5 31.7 176 24.1 176 8 176-5.3 165.3-16 152-16zM96 192c-17.7 0-32 14.3-32 32l0 192c0 53 43 96 96 96l192 0c41.8 0 77.4-26.7 90.5-64l5.5 0c70.7 0 128-57.3 128-128S518.7 192 448 192L96 192zM448 384l0-128c35.3 0 64 28.7 64 64s-28.7 64-64 64zM288 8c0-13.3-10.7-24-24-24S240-5.3 240 8c0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C295.5 31.7 288 24.1 288 8z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [448, 512, [9889, \"zap\"], \"f0e7\", \"M338.8-9.9c11.9 8.6 16.3 24.2 10.9 37.8L271.3 224 416 224c13.5 0 25.5 8.4 30.1 21.1s.7 26.9-9.6 35.5l-288 240c-11.3 9.4-27.4 9.9-39.3 1.3s-16.3-24.2-10.9-37.8L176.7 288 32 288c-13.5 0-25.5-8.4-30.1-21.1s-.7-26.9 9.6-35.5l288-240c11.3-9.4 27.4-9.9 39.3-1.3z\"]\n};\nvar faZap = faBolt;\nvar faJar = {\n prefix: 'fas',\n iconName: 'jar',\n icon: [320, 512, [], \"e516\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm96 64c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 192z\"]\n};\nvar faTruckPlane = {\n prefix: 'fas',\n iconName: 'truck-plane',\n icon: [640, 512, [], \"e58f\", \"M144 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 320c0 32.5 12.1 62.1 32 84.7l0 27.3c0 7.1 .9 14.1 2.7 20.7L192 480 83.9 507C73.8 509.6 64 501.9 64 491.5l0-19.8c0-4.9 2.2-9.5 6-12.5l74-59.2 0-57.6-122.1 48.8C11.4 395.4 0 387.7 0 376.4l0-44c0-8 3-15.6 8.3-21.5L144 161.6 144 48zm224 80l192 0c44.2 0 80 35.8 80 80l0 160c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c-19.4-14.6-32-37.8-32-64l0-160c0-44.2 35.8-80 80-80zm0 176l192 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32l0 32zm0 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M279.6 31C265.5 11.5 242.9 0 218.9 0 177.5 0 144 33.5 144 74.9l0 2.4c0 64.4 82 133.4 122.2 163.3 13 9.7 30.5 9.7 43.5 0 40.2-30 122.2-98.9 122.2-163.3l0-2.4c0-41.4-33.5-74.9-74.9-74.9-24 0-46.6 11.5-60.7 31L288 42.7 279.6 31zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faArrowRotateLeft = {\n prefix: 'fas',\n iconName: 'arrow-rotate-left',\n icon: [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M256 64c-56.8 0-107.9 24.7-143.1 64l47.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 192c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l0 54.7C110.9 33.6 179.5 0 256 0 397.4 0 512 114.6 512 256S397.4 512 256 512c-87 0-163.9-43.4-210.1-109.7-10.1-14.5-6.6-34.4 7.9-44.6s34.4-6.6 44.6 7.9c34.8 49.8 92.4 82.3 157.6 82.3 106 0 192-86 192-192S362 64 256 64z\"]\n};\nvar faArrowLeftRotate = faArrowRotateLeft;\nvar faArrowRotateBack = faArrowRotateLeft;\nvar faArrowRotateBackward = faArrowRotateLeft;\nvar faUndo = faArrowRotateLeft;\nvar faFaceAngry = {\n prefix: 'fas',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM256 368c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faBurst = {\n prefix: 'fas',\n iconName: 'burst',\n icon: [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7S-2.3 28 4.2 37.6l112 163.3-99.6 32.3C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4-52.9 100.6c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1l-52.9-100.6 103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8l-106.5-34.5 25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7-34.5-106.5C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6L200.9 116.2 37.6 4.2z\"]\n};\nvar faZ = {\n prefix: 'fas',\n iconName: 'z',\n icon: [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar faBandage = {\n prefix: 'fas',\n iconName: 'bandage',\n icon: [576, 512, [129657, \"band-aid\"], \"f462\", \"M464 416l48 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-48 0 0 320zM416 96l-256 0 0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l48 0 0-320-48 0zM216 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM216 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faBandAid = faBandage;\nvar faPlaneCircleExclamation = {\n prefix: 'fas',\n iconName: 'plane-circle-exclamation',\n icon: [640, 512, [], \"e556\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faBusSide = {\n prefix: 'fas',\n iconName: 'bus-side',\n icon: [640, 512, [], \"e81d\", \"M480 0c88.4 0 160 71.6 160 160l0 224c0 35.3-28.7 64-64 64l-5.6 0c-13.2 37.3-48.6 64-90.4 64s-77.3-26.7-90.4-64l-139.1 0c-13.2 37.3-48.7 64-90.4 64s-77.2-26.7-90.4-64L64 448c-35.3 0-64-28.7-64-64L0 96C0 43 43 0 96 0L480 0zM160 368a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm320 0a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm0-304c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128c0-53-43-96-96-96zM248 224l104 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-104 0 0 160zM96 64C78.3 64 64 78.3 64 96l0 96c0 17.7 14.3 32 32 32l104 0 0-160-104 0z\"]\n};\nvar faBugs = {\n prefix: 'fas',\n iconName: 'bugs',\n icon: [576, 512, [], \"e4d0\", \"M447.5 174.6c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7c26.7 13.5 46.3 39.1 51.4 69.6l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L296 432c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0c5.1-30.5 24.7-56.1 51.4-69.6l-22.9-26.7c-8.6-10.1-7.5-25.2 2.6-33.8s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8zm-256-192c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7C230 55.9 249.5 81.5 254.7 112l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0C70.5 81.5 90 55.9 116.7 42.4L93.8 15.6C85.2 5.6 86.3-9.6 96.4-18.2s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8z\"]\n};\nvar faBeerMugEmpty = {\n prefix: 'fas',\n iconName: 'beer-mug-empty',\n icon: [576, 512, [\"beer\"], \"f0fc\", \"M64 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 16 64 0c35.3 0 64 28.7 64 64l0 108.2c0 24.2-13.7 46.4-35.4 57.2L448 371.8 448 384c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 80zM448 300.2l64-32 0-108.2-64 0 0 140.2zM192 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208z\"]\n};\nvar faBeer = faBeerMugEmpty;\nvar faPersonCircleCheck = {\n prefix: 'fas',\n iconName: 'person-circle-check',\n icon: [640, 512, [], \"e53e\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faStapler = {\n prefix: 'fas',\n iconName: 'stapler',\n icon: [640, 512, [], \"e5af\", \"M640 299.3L640 432c0 26.5-21.5 48-48 48L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48-352 0c-17.7 0-32-14.3-32-32l0-116.6-30.2-5.4c-19.6-3.5-33.8-20.5-33.8-40.4 0-8.9 2.9-17.5 8.2-24.6l35.6-47.5c32.8-43.8 84.4-69.6 139.1-69.6 27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16-320-57.1 0 73.1 320 0z\"]\n};\nvar faHouseMedicalCircleCheck = {\n prefix: 'fas',\n iconName: 'house-medical-circle-check',\n icon: [640, 512, [], \"e511\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faNairaSign = {\n prefix: 'fas',\n iconName: 'naira-sign',\n icon: [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 89.5 0 107.8 161.8c7.8 11.7 22.4 17 35.9 12.9S384 462.1 384 448l0-144 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0-139.8-209.7zM294.5 304l25.5 0 0 38.3-25.5-38.3zM185.5 256l-57.5 0 0-86.3 57.5 86.3z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [576, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M288 96c-90.9 0-173.2 36-233.7 94.6-12.7 12.3-33 12-45.2-.7s-12-33 .7-45.2C81.7 74.9 179.9 32 288 32S494.3 74.9 566.3 144.7c12.7 12.3 13 32.6 .7 45.2s-32.6 13-45.2 .7C461.2 132 378.9 96 288 96zM240 432a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 326.2c-11.7 13.3-31.9 14.5-45.2 2.8s-14.5-31.9-2.8-45.2C161 237.4 221.1 208 288 208s127 29.4 168 75.8c11.7 13.3 10.4 33.5-2.8 45.2s-33.5 10.4-45.2-2.8C378.6 292.9 335.8 272 288 272s-90.6 20.9-120 54.2z\"]\n};\nvar faWifi3 = faWifi;\nvar faWifiStrong = faWifi;\nvar faMoneyCheckDollar = {\n prefix: 'fas',\n iconName: 'money-check-dollar',\n icon: [512, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM296 288l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm-24-88c0-13.3 10.7-24 24-24l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24zM148 144c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7C94.5 268 76 246.1 76 220.5 76 191.7 99.2 168.3 128 168l0-4c0-11 9-20 20-20z\"]\n};\nvar faMoneyCheckAlt = faMoneyCheckDollar;\nvar faEyeLowVision = {\n prefix: 'fas',\n iconName: 'eye-low-vision',\n icon: [576, 512, [\"low-vision\"], \"f2a8\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM88 157.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L328.2 466c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L88 157.9zM45.7 251.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L181.9 455.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L45.7 251.3z\"]\n};\nvar faLowVision = faEyeLowVision;\nvar faCircleArrowUp = {\n prefix: 'fas',\n iconName: 'circle-arrow-up',\n icon: [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm17-377l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-39-39 0 150.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-150.1-39 39c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faArrowCircleUp = faCircleArrowUp;\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [128247], \"f083\", \"M0 416l0-208 136.2 0c13.5-20.2 32-36.8 53.7-48L0 160 0 125.7c0-35.3 28.7-64 64-64l.1 0C65.3 45.1 79.1 32 96 32l32 0c16.9 0 30.7 13.1 31.9 29.7l32.1 0 51.2-23.8c8.4-3.9 17.6-6 26.9-6L448 32c35.3 0 64 28.7 64 64l0 64-190 0c21.7 11.2 40.2 27.8 53.7 48l136.2 0 0 208c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM256 192a96.1 96.1 0 1 0 0 192.1 96.1 96.1 0 1 0 0-192.1z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zm-64 0l0 288c0 61.9 50.1 112 112 112s112-50.1 112-112l0-105.8 116.3 169.5c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 145.3c-35.5-51.7-105.3-64.3-156-28.1-5.6 4-10.7 8.4-15.3 13.1l0-18.3C256 50.1 205.9 0 144 0S32 50.1 32 112zM296.6 240.2c-16-23.3-10-55.3 11.9-71 21.2-15.1 50.5-10.3 66 12.2l67 97.6-79.9 55.9-65-94.8z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1 0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64 0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72 0 23.2 11 43.8 28 57-34.1 5.7-60 35.3-60 71 0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72 0-35.7-25.9-65.3-60-71 17-13.2 28-33.8 28-57 0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48 0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32 0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7 0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z\"]\n};\nvar faVolume = {\n prefix: 'fas',\n iconName: 'volume',\n icon: [512, 512, [128265, \"volume-medium\"], \"f6a8\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM441.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C443.3 170.7 464 210.9 464 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C361.1 227.6 368 241 368 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C402.1 312.9 416 286.1 416 256s-13.9-56.9-35.5-74.5z\"]\n};\nvar faVolumeMedium = faVolume;\nvar faElevator = {\n prefix: 'fas',\n iconName: 'elevator',\n icon: [512, 512, [], \"e16d\", \"M292.7-4.7l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5-32 432-32L304-32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4zm-160-22.6l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4S73.5 64 80 64l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [127991], \"f02b\", \"M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFileCircleMinus = {\n prefix: 'fas',\n iconName: 'file-circle-minus',\n icon: [576, 512, [], \"e4ed\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"]\n};\nvar faDownLong = {\n prefix: 'fas',\n iconName: 'down-long',\n icon: [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S300.9 352 288 352l-64 0 0-336c0-26.5-21.5-48-48-48l-32 0c-26.5 0-48 21.5-48 48l0 336-64 0c-12.9 0-24.6 7.8-29.6 19.8S.2 397.5 9.4 406.6l128 128z\"]\n};\nvar faLongArrowAltDown = faDownLong;\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [512, 512, [128191, 128192, 128440], \"f51f\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zm-56-16c0-32.4 16.3-66.6 42.8-93.2S207.6 104 240 104c13.3 0 24-10.7 24-24s-10.7-24-24-24c-47.9 0-93.7 23.5-127.1 56.9S56 192.1 56 240c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M144 24c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zM320 96l-32 0 0-72c0-30.9-25.1-56-56-56l-80 0C121.1-32 96-6.9 96 24l0 72-32 0C28.7 96 0 124.7 0 160L0 448c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64zM120 208l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faBookQuran = {\n prefix: 'fas',\n iconName: 'book-quran',\n icon: [448, 512, [\"quran\"], \"f687\", \"M64 512l288 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L48 0C21.5 0 0 21.5 0 48L0 336c0 20.9 13.4 38.7 32 45.3L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0zM352 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0 0-64 256 0zM273.1 144.4c2.5-6.1 11.2-6.1 13.7 0l10.3 24.8 26.8 2.1c6.6 .5 9.2 8.7 4.2 13L307.8 201.9 314 228c1.5 6.4-5.5 11.5-11.1 8.1l-22.9-14-22.9 14c-5.6 3.4-12.6-1.6-11.1-8.1l6.2-26.1-20.4-17.5c-5-4.3-2.3-12.5 4.2-13l26.8-2.1 10.3-24.8zM100 192c0-68.5 55.5-124 124-124 23.8 0 46.1 6.7 65 18.4 4.8 2.9 6.9 8.8 5 14.1s-7.1 8.6-12.7 8c-3.1-.3-6.2-.5-9.4-.5-46.4 0-84 37.6-84 84s37.6 84 84 84c3.2 0 6.3-.2 9.4-.5 5.6-.6 10.8 2.7 12.7 8s-.3 11.2-5 14.1c-18.9 11.7-41.2 18.4-65 18.4-68.5 0-124-55.5-124-124z\"]\n};\nvar faQuran = faBookQuran;\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [576, 512, [], \"f3dd\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L141.5 368.6C89.2 310.5 51.6 238.8 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c12.9 28.5 29.6 54.8 49.5 78.5L535-24.9zm-150.4 534c-63-13.4-121.3-39.8-171.7-76.3L297.8 348c12.2 8.2 25 15.6 38.3 22.2L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5c-17.6 64.6-80.2 119.8-156.4 103.7z\"]\n};\nvar faRoadCircleCheck = {\n prefix: 'fas',\n iconName: 'road-circle-check',\n icon: [640, 512, [], \"e564\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faShopLock = {\n prefix: 'fas',\n iconName: 'shop-lock',\n icon: [640, 512, [], \"e4a5\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l55.6 111.1c-8.2-1.6-16.6-2.5-25.2-2.5-53.7 0-99.7 33.1-118.7 80l-57.3 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faImagePortrait = {\n prefix: 'fas',\n iconName: 'image-portrait',\n icon: [384, 512, [\"portrait\"], \"f3e0\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 368c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM192 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faPortrait = faImagePortrait;\nvar faBridgeLock = {\n prefix: 'fas',\n iconName: 'bridge-lock',\n icon: [576, 512, [], \"e4cc\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0 0 32.2c13.8 .6 27.2 2.8 40 6.4l0 50.7c-14.8-6-31-9.3-48-9.3-70.7 0-128 57.3-128 128l0 24.4c-.4 .3-.7 .6-1.1 1-17.3-25-46.2-41.3-78.9-41.3-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64zm424 68.6l0-36.6-80 0 0 64 18.8 0c18.2-12.8 38.9-22.2 61.2-27.4zM216 96l0 64 80 0 0-64-80 0zm-48 0l-80 0 0 64 80 0 0-64zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [640, 512, [128296], \"f6e3\", \"M246.9 18.3L271 3.8c21.6-13 46.3-19.8 71.5-19.8 36.8 0 72.2 14.6 98.2 40.7l63.9 63.9c15 15 23.4 35.4 23.4 56.6l0 30.9 19.7 19.7 0 0c15.6-15.6 40.9-15.6 56.6 0s15.6 40.9 0 56.6l-64 64c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L464 240 433.1 240c-21.2 0-41.6-8.4-56.6-23.4l-49.1-49.1c-15-15-23.4-35.4-23.4-56.6l0-12.7c0-11.2-5.9-21.7-15.5-27.4l-41.6-25c-10.4-6.2-10.4-21.2 0-27.4zM50.7 402.7l222.1-222.1 90.5 90.5-222.1 222.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5z\"]\n};\nvar faArrowUp19 = {\n prefix: 'fas',\n iconName: 'arrow-up-1-9',\n icon: [512, 512, [\"sort-numeric-up\"], \"f163\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM418.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM365.1 430.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 336a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faSortNumericUp = faArrowUp19;\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [9822], \"f441\", \"M192-32c106 0 192 86 192 192l0 133.5c0 17-6.8 33.2-18.7 45.2L320 384 370.8 434.7c8.5 8.5 13.2 20 13.2 32 0 25-20.3 45.2-45.2 45.3L45.3 512c-25 0-45.2-20.3-45.2-45.3 0-12 4.8-23.5 13.2-32L64 384 64 349.4c0-18.7 8.2-36.4 22.3-48.6l89.7-76.8-48 0-12.1 12.1c-12.7 12.7-30 19.9-48 19.9-37.5 0-67.9-30.4-67.9-67.9l0-8.7c0-22.8 8.2-44.9 23.1-62.3L96 32 96 0c0-17.7 14.3-32 32-32l64 0zM160 72a24 24 0 1 0 0 48 24 24 0 1 0 0-48z\"]\n};\nvar faHouseFloodWaterCircleArrowRight = {\n prefix: 'fas',\n iconName: 'house-flood-water-circle-arrow-right',\n icon: [640, 512, [], \"e50f\", \"M288.5 112a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM141.2 44.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l28.7-28.7-89.4 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0-28.7-28.7c-6.2-6.2-6.2-16.4 0-22.6zM336.5 112c0 71.1-38.6 133.1-96 166.3l0 12.8c22.1 4.5 43.4 13.9 62.4 28.2 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 6-4.5 12.6-8 19.3-10.4l0-115.2 4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L444.5 10.5C436.8 3.7 426.8 0 416.5 0s-20.3 3.7-28 10.5L329.9 61.8c4.3 16 6.6 32.8 6.6 50.2zm32 88c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM475.1 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 391.8 266 373.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 487.8 266 469.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faArrowUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'arrow-up-right-from-square',\n icon: [512, 512, [\"external-link\"], \"f08e\", \"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0-201.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 80c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 96z\"]\n};\nvar faExternalLink = faArrowUpRightFromSquare;\nvar faArrowDownUpAcrossLine = {\n prefix: 'fas',\n iconName: 'arrow-down-up-across-line',\n icon: [512, 512, [], \"e4af\", \"M265.4 105.4l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4 0 114.7 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 114.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 402.7 96 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-114.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zM416 336l0 144c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144 64 0zM96 176L96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 144-64 0z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'fas',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faRectangleAd = {\n prefix: 'fas',\n iconName: 'rectangle-ad',\n icon: [512, 512, [\"ad\"], \"f641\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM416 184l0 144c0 13.3-10.7 24-24 24-7.1 0-13.5-3.1-17.9-8-10.2 5.1-21.8 8-34.1 8-42 0-76-34-76-76s34-76 76-76c9.9 0 19.3 1.9 28 5.3l0-21.3c0-13.3 10.7-24 24-24s24 10.7 24 24zm-48 92a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM160 208c-8.8 0-16 7.2-16 16l0 32 48 0 0-32c0-8.8-7.2-16-16-16l-16 0zm32 96l-48 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-35.3 28.7-64 64-64l16 0c35.3 0 64 28.7 64 64l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24z\"]\n};\nvar faAd = faRectangleAd;\nvar faBookTanakh = {\n prefix: 'fas',\n iconName: 'book-tanakh',\n icon: [448, 512, [\"tanakh\"], \"f827\", \"M352 512L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-66.7C13.4 374.7 0 356.9 0 336L0 48C0 21.5 21.5 0 48 0L352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96zm32-96c0-17.7-14.3-32-32-32l-256 0 0 64 256 0c17.7 0 32-14.3 32-32zM113.9 229c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2C233.6 66.6 229 64 224 64s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"]\n};\nvar faTanakh = faBookTanakh;\nvar faHotTubPerson = {\n prefix: 'fas',\n iconName: 'hot-tub-person',\n icon: [448, 512, [\"hot-tub\"], \"f593\", \"M240 40c0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C203.5 93.1 192 67.2 192 40 192 26.7 202.7 16 216 16s24 10.7 24 24zM0 336l0-80c0-35.3 28.7-64 64-64l19.7 0c8.1 0 16.2 1.6 23.8 4.6l137.1 54.8c7.6 3 15.6 4.6 23.8 4.6L384 256c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 336zm96-16c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zm152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zm104-24c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zM328 16c13.3 0 24 10.7 24 24 0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C315.5 93.1 304 67.2 304 40 304 26.7 314.7 16 328 16zM64 40a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faHotTub = faHotTubPerson;\nvar faFileHalfDashed = {\n prefix: 'fas',\n iconName: 'file-half-dashed',\n icon: [384, 512, [], \"e698\", \"M64 0C28.7 0 0 28.7 0 64l0 256 384 0 0-149.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM0 352l0 64 64 0 0-64-64 0zM64 512l0-64-64 0c0 35.3 28.7 64 64 64zm32 0l80 0 0-64-80 0 0 64zm112 0l80 0 0-64-80 0 0 64zm112 0c35.3 0 64-28.7 64-64l-64 0 0 64zm64-160l-64 0 0 64 64 0 0-64z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [\"dedent\"], \"f03b\", \"M.4 64c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0C14.8 96 .4 81.7 .4 64zm192 128c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM.4 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32zM.7 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.7 268.6z\"]\n};\nvar faDedent = faOutdent;\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [9996], \"f25b\", \"M192 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM61.3 51.2L143.9 240 74.1 240 2.7 76.8C-4.4 60.6 3 41.8 19.2 34.7S54.2 35 61.3 51.2zm27 221.3l-.2-.5 95.9 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L69.5 453.5C45.5 429.5 32 396.9 32 363l0-27c0-32.7 24.6-59.7 56.3-63.5z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M329.7 448c-5.1 0-9.7 3.7-9.7 8.8l0 7.2c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-63.6c0-12.6-5.1-24.5-13.1-34.2-31.8-38.7-50.9-88.2-50.9-142.2 0-123.7 100.3-224 224-224 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l35.8 42.9c7 8.4 10.9 19.1 10.9 30.1 0 25.9-21 47-47 47l-1 0c-8.8 0-16 7.2-16 16l0 48c0 35.3-28.7 64-64 64l-38.3 0zM224 64c-13.3 0-24 10.7-24 24 0 22.9-27.7 34.4-43.9 18.2-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c16.2 16.2 4.7 43.9-18.2 43.9-13.3 0-24 10.7-24 24s10.7 24 24 24c22.9 0 34.4 27.7 18.2 43.9-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c16.2-16.2 43.9-4.7 43.9 18.2 0 13.3 10.7 24 24 24s24-10.7 24-24c0-22.9 27.7-34.4 43.9-18.2 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-16.2-16.2-4.7-43.9 18.2-43.9 13.3 0 24-10.7 24-24s-10.7-24-24-24c-22.9 0-34.4-27.7-18.2-43.9 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-16.2 16.2-43.9 4.7-43.9-18.2 0-13.3-10.7-24-24-24zm-32 88a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [10001], \"f5ad\", \"M368.5 18.3l-50.1 50.1 125.3 125.3 50.1-50.1c21.9-21.9 21.9-57.3 0-79.2L447.7 18.3c-21.9-21.9-57.3-21.9-79.2 0zM279.3 97.2l-.5 .1-144.1 43.2c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-2.9 8.7-1.9 18.2 2.5 26L161.7 316.4c-1.1-4-1.6-8.1-1.6-12.4 0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48c-4.3 0-8.5-.6-12.4-1.6L40.3 505.7c7.8 4.4 17.2 5.4 26 2.5l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 .1-.5-135.5-135.5z\"]\n};\nvar faTentArrowsDown = {\n prefix: 'fas',\n iconName: 'tent-arrows-down',\n icon: [512, 512, [], \"e581\", \"M185.5 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zm248 72l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"]\n};\nvar faForwardFast = {\n prefix: 'fas',\n iconName: 'forward-fast',\n icon: [512, 512, [9197, \"fast-forward\"], \"f050\", \"M19.8 477.6c12 5 25.7 2.2 34.9-6.9L224 301.3 224 448c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9L448 301.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 146.7-169.4-169.4c-9.2-9.2-22.9-11.9-34.9-6.9S224 51.1 224 64L224 210.7 54.6 41.4c-9.2-9.2-22.9-11.9-34.9-6.9S0 51.1 0 64L0 448c0 12.9 7.8 24.6 19.8 29.6z\"]\n};\nvar faFastForward = faForwardFast;\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 176 64 176 128 338.7 128 128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-162.7 0 210.7-210.7 0 306.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z\"]\n};\nvar faWhiskeyGlass = {\n prefix: 'fas',\n iconName: 'whiskey-glass',\n icon: [448, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32C14.3 32 0 46.3 0 64L0 352c0 70.7 57.3 128 128 128l192 0c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32L32 32zM64 256l0-160 320 0 0 160-320 0z\"]\n};\nvar faGlassWhiskey = faWhiskeyGlass;\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"]\n};\nvar faFaceGrin = {\n prefix: 'fas',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrin = faFaceGrin;\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 64C74.7 64 64 74.7 64 88s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm70.3 160c-11.3 0-21.9 5.1-28.9 13.9L69.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [384, 512, [8963], \"f106\", \"M169.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L192 205.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"]\n};\nvar faFaceSmile = {\n prefix: 'fas',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSmile = faFaceSmile;\nvar faPersonDressBurst = {\n prefix: 'fas',\n iconName: 'person-dress-burst',\n icon: [640, 512, [], \"e544\", \"M208 40.1c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24zM8 144.1c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm92.5 141.4l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM246.2 384l25.8 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 25.8 0c10.9 0 18.6-10.7 15.2-21.1l-43-129 48.3 65.1c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C434 132 394.3 112 352 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l48.3-65.1-43 129c-3.5 10.4 4.3 21.1 15.2 21.1z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [10135, 247], \"f529\", \"M224 48a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM168 408a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z\"]\n};\nvar faCodeFork = {\n prefix: 'fas',\n iconName: 'code-fork',\n icon: [448, 512, [], \"e13b\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 22.7c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-32 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-32 0C98.1 288 48 237.9 48 176l0-22.7C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHouseFlag = {\n prefix: 'fas',\n iconName: 'house-flag',\n icon: [640, 512, [], \"e50d\", \"M472 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM283.5 59.1l100.5 96.9 0 356-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L228.5 59.1C235.9 52 245.7 48 256 48s20.1 4 27.5 11.1zM232 256c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"]\n};\nvar faBuildingColumns = {\n prefix: 'fas',\n iconName: 'building-columns',\n icon: [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M271.9 20.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128c-12.6 7.2-18.8 22-15.1 36S17.5 208 32 208l32 0 0 208 0 0-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-208 32 0c14.5 0 27.2-9.8 30.9-23.8s-2.5-28.8-15.1-36l-224-128zM400 208l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zM256 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBank = faBuildingColumns;\nvar faInstitution = faBuildingColumns;\nvar faMuseum = faBuildingColumns;\nvar faUniversity = faBuildingColumns;\nvar faRug = {\n prefix: 'fas',\n iconName: 'rug',\n icon: [576, 512, [], \"e569\", \"M24 64l56 0 0 384-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm104 0l320 0 0 384-320 0 0-384zM576 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0-384 56 0c13.3 0 24 10.7 24 24z\"]\n};\nvar faCodeMerge = {\n prefix: 'fas',\n iconName: 'code-merge',\n icon: [448, 512, [], \"f387\", \"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2 0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432 0 476.2 35.8 512 80 512s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48 44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faHouseTsunami = {\n prefix: 'fas',\n iconName: 'house-tsunami',\n icon: [640, 512, [], \"e515\", \"M288 16C155.5 16 48 123.5 48 256S155.5 496 288 496c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1l-.1 0C128.9 543.9 0 415 0 256 0 96.9 128.9-32 288-32 301.3-32 312-21.3 312-8s-10.7 24-24 24zm44.8 166.4l96-72c11.4-8.5 27.1-8.5 38.5 0l95.5 72c8 6 12.7 15.5 12.7 25.5l.3 121.5c-2.2 1.3-4.3 2.6-6.4 4.2-4.3 3.1-8.7 .8-13.2-1.5l-1.2-.6-.7-.3c-5.4-2.7-11.7-6.6-18.9-11.7-29.5-21.1-64.3-31.6-99.1-31.4-34.1 .2-68.1 10.7-97 31.4-7.8 5.6-13.8 9.3-19.3 11.2L320 208c0-10.1 4.7-19.6 12.8-25.6zm54.6 229.7c-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1-106 0-192-86-192-192S182 64 288 64c13.3 0 24 10.7 24 24s-10.7 24-24 24c-79.5 0-144 64.5-144 144s64.5 144 144 144c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMagnifyingGlassChart = {\n prefix: 'fas',\n iconName: 'magnifying-glass-chart',\n icon: [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [512, 512, [], \"f0e9\", \"M256-32c17.7 0 32 14.3 32 32l0 2c126.3 15.7 224 123.5 224 254 0 3.8-.1 7.5-.2 11.3-.3 6.9-5 12.8-11.7 14.7s-13.8-.7-17.6-6.5c-14.4-21.4-38.8-35.5-66.5-35.5-29.3 0-54.9 15.7-68.9 39.3-2.7 4.6-7.6 7.6-13 7.8s-10.5-2.2-13.7-6.5c-14.6-19.8-38-32.6-64.5-32.6s-49.9 12.8-64.5 32.6c-3.2 4.3-8.3 6.8-13.7 6.5s-10.2-3.2-13-7.8c-14-23.6-39.6-39.3-68.9-39.3-27.7 0-52.1 14.1-66.5 35.5-3.9 5.7-11 8.4-17.6 6.5S.5 274.2 .2 267.3C.1 263.5 0 259.8 0 256 0 125.5 97.7 17.7 224 2l0-2c0-17.7 14.3-32 32-32zm32 360l0 102.6c0 45-36.5 81.4-81.4 81.4-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6 9.6 0 17.4-7.8 17.4-17.4L224 328c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faHillRockslide = {\n prefix: 'fas',\n iconName: 'hill-rockslide',\n icon: [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [128373], \"f21b\", \"M171-16c-36.4 0-57.8 58.3-68.3 112L72 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32c0 17 3.3 33.2 9.3 48l-9.3 0 0 0-20.5 0c-15.2 0-27.5 12.3-27.5 27.5 0 3 .5 5.9 1.4 8.7l28.9 86.6C40.2 379.6 16 428.1 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-54.2-24.2-102.7-62.3-135.4l28.9-86.6c.9-2.8 1.4-5.7 1.4-8.7 0-15.2-12.3-27.5-27.5-27.5l-20.5 0 0 0-9.3 0c6-14.8 9.3-31 9.3-48l0-32 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-30.7 0c-10.4-53.7-31.9-112-68.3-112-9.6 0-19 3.9-27.5 8.2-8.2 4.1-18.4 7.8-25.5 7.8s-17.3-3.7-25.5-7.8C190-12.1 180.6-16 171-16zm93.7 484.4l-24.8-70.9 27.9-32.5c2.7-3.2 4.2-7.2 4.2-11.4 0-9.7-7.8-17.5-17.5-17.5l-61 0c-9.7 0-17.5 7.8-17.5 17.5 0 4.2 1.5 8.2 4.2 11.4l27.9 32.5-24.8 70.9-57-180.4 35.7 0c18.4 10.2 39.5 16 62 16s43.6-5.8 62-16l35.7 0-57 180.4zM224 256c-34.7 0-64.2-22.1-75.3-53 5.7 3.2 12.3 5 19.3 5l12.4 0c16.5 0 31.1-10.6 36.3-26.2 2.3-7 12.2-7 14.5 0 5.2 15.6 19.9 26.2 36.3 26.2l12.4 0c7 0 13.6-1.8 19.3-5-11.1 30.9-40.6 53-75.3 53z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [128188], \"f0b1\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160l0 96 512 0 0-96c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM512 304l-192 0 0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-112z\"]\n};\nvar faTrowelBricks = {\n prefix: 'fas',\n iconName: 'trowel-bricks',\n icon: [512, 512, [], \"e58a\", \"M224 32c0-11.5-6.2-22.2-16.2-27.8s-22.3-5.5-32.2 .4l-160 96C5.9 106.3 0 116.8 0 128s5.9 21.7 15.5 27.4l160 96c9.9 5.9 22.2 6.1 32.2 .4S224 235.5 224 224l0-64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-64zm96 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0zM0 416l0 64c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32zm224-32c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-256 0z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [129510], \"f696\", \"M252.8 0L176 0c-26.5 0-48 21.5-48 48l0 16 112 0 0-16c0-17.5 4.7-33.9 12.8-48zM128 112l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 15.4 0 30.5-3.7 44-10.7-17.6-23.9-28-53.4-28-85.3 0-45.3 21.3-88 57.6-115.2l64-48c4-3 6.4-7.8 6.4-12.8l0-128-112 0zm160 0l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 20.8 0 41-6.7 57.6-19.2l115.2-86.4C461 382.2 480 344.3 480 304l0-192-192 0zM480 64l0-16c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 16 192 0z\"]\n};\nvar faT = {\n prefix: 'fas',\n iconName: 't',\n icon: [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm16 48l0 160 160 0 0-160-160 0z\"]\n};\nvar faTruckMedical = {\n prefix: 'fas',\n iconName: 'truck-medical',\n icon: [576, 512, [128657, \"ambulance\"], \"f0f9\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM176 136c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faAmbulance = faTruckMedical;\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [576, 512, [128329], \"f679\", \"M388.7 4.7c6.2-6.2 16.4-6.2 22.6 0l16 16c6.2 6.2 6.2 16.4 0 22.6l-16 16c-6.2 6.2-16.4 6.2-22.6 0l-16-16c-6.2-6.2-6.2-16.4 0-22.6l16-16zM176 160c-10.8 0-20.8 3.6-28.8 9.6-14.1 10.6-34.2 7.8-44.8-6.4s-7.8-34.2 6.4-44.8c18.7-14.1 42-22.4 67.2-22.4 61.9 0 112 50.1 112 112 0 17.2-3.9 33.5-10.8 48l49.7 0c12.7 0 24.9-5 33.9-14.1l20.7-20.7c18.7-18.7 44.1-29.3 70.6-29.3 55.2 0 99.9 44.7 99.9 99.9l0 96.1c0 55.2-44.8 100-100 100S352 443.2 352 388l0-4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 4c0 19.9 16.1 36 36 36s36-16.1 36-36l0-96.1c0-19.8-16.1-35.9-35.9-35.9-9.5 0-18.6 3.8-25.4 10.5l-20.7 20.7c-21 21-49.4 32.8-79.1 32.8l-26.8 0c12.6 19.6 19.9 42.8 19.9 68 0 75.2-65 132-140 132S40 463.2 40 388c0-17.7 14.3-32 32-32s32 14.3 32 32c0 35.3 31.7 68 76 68s76-32.7 76-68-31.7-68-76-68l-20 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0c26.5 0 48-21.5 48-48s-21.5-48-48-48zM337.1 60.1c-11-13.8-31.1-16.2-45-5.2s-16.2 31.1-5.2 45C312.6 132.2 354.4 152 400 152s87.4-19.8 113.1-52.1c11-13.8 8.7-34-5.2-45s-34-8.7-45 5.2C450.3 76 427.5 88 400 88s-50.3-12-62.9-27.9z\"]\n};\nvar faMosquitoNet = {\n prefix: 'fas',\n iconName: 'mosquito-net',\n icon: [640, 512, [], \"e52c\", \"M576 352c13.3 0 24 10.7 24 24l0 16 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 48 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 16-.1 2.5C598.6 566.6 588.4 576 576 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-48 0 0 16-.1 2.5C502.6 566.6 492.4 576 480 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-48-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 48 0 0-16c0-13.3 10.7-24 24-24zM429.9 16.3c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 3.9-.4 7.7-.9 11.5-7.3-3.5-15.3-5.8-23.8-6.7L576 304c-18.5 0-35.3 7-48 18.4-11-9.9-25.1-16.5-40.6-18.1L480 304c-30.3 0-56.1 18.7-66.8 45.2-12.5 5-23.2 13.4-31.1 24l-30.2-40.1 0 74.7c0 17.7-14.3 32-32 32-16.6 0-30.2-12.6-31.8-28.7l-.2-3.3 0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2c-7.5 9.6-21 12.1-31.3 5.3-10.3-6.8-13.7-20.5-8.3-31.5l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.7-38.3-2.4-2.4c-5.2-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.2-2.1c-5.7-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8 .2-3.2c1.1-10.4 7.2-19.4 15.8-24.4l0-60.5 .3-3.2c1.5-7.3 8-12.7 15.7-12.8 7.7 0 14.2 5.5 15.7 12.8l.3 3.2 0 60.5c8.7 5 14.8 14 15.8 24.4l.2 3.2 0 28.9 53.4-45.7-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2zM504 488l48 0 0-48-48 0 0 48z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-64z\"]\n};\nvar faUsersGear = {\n prefix: 'fas',\n iconName: 'users-gear',\n icon: [640, 512, [\"users-cog\"], \"f509\", \"M320 224a104 104 0 1 0 0-208 104 104 0 1 0 0 208zM96 232a72 72 0 1 0 0-144 72 72 0 1 0 0 144zM0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4-70.7 0-128 57.3-128 128zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zM160 432l0 16c0 17.7 14.3 32 32 32l156.8 0c-7.1-21.6-6.3-44.4 10.7-64-14-16.2-20.5-39.7-11.4-63.3 6.6-17.1 15.9-33.1 27.4-47.3 5.4-6.6 11.6-11.7 18.3-15.4-22.1-11.5-47.2-18-73.8-18-88.4 0-160 71.6-160 160zm464.6-44.1c6.3-3.6 9.5-11.1 6.8-18-4.8-12.4-11.5-24.1-19.9-34.4-4.6-5.7-12.7-6.7-19-3-21.8 12.6-48.6-2.8-48.6-28.1 0-7.3-4.9-13.8-12.1-14.9-12.9-2-26.8-2-39.7 0-7.2 1.1-12.1 7.6-12.1 14.9 0 25.2-26.8 40.7-48.6 28.1-6.3-3.6-14.4-2.6-19 3-8.4 10.3-15.1 22-19.9 34.4-2.6 6.8 .5 14.3 6.8 17.9 21.9 12.6 21.9 43.5 0 56.2-6.3 3.6-9.5 11.1-6.8 17.9 4.8 12.4 11.5 24.1 19.9 34.4 4.6 5.7 12.7 6.7 19 3 21.8-12.6 48.6 2.9 48.6 28.1 0 7.3 4.9 13.8 12.1 14.9 12.9 2 26.8 2 39.7 0 7.2-1.1 12.1-7.6 12.1-14.9 0-25.2 26.8-40.7 48.6-28.1 6.3 3.6 14.4 2.6 19-3 8.4-10.3 15.1-22 19.9-34.4 2.6-6.8-.5-14.3-6.8-17.9-21.9-12.6-21.9-43.5 0-56.2zM472 416a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"]\n};\nvar faUsersCog = faUsersGear;\nvar faRoadCircleExclamation = {\n prefix: 'fas',\n iconName: 'road-circle-exclamation',\n icon: [640, 512, [], \"e565\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [384, 512, [9208], \"f04c\", \"M48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 32zm224 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0z\"]\n};\nvar faStaffSnake = {\n prefix: 'fas',\n iconName: 'staff-snake',\n icon: [448, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M192 32l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 64 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-64 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 192 32 0c53 0 96 43 96 96 0 47.6-34.6 87.1-80 94.7l0-67c9.6-5.5 16-15.9 16-27.7 0-17.7-14.3-32-32-32l-32 0 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64-32 0c-53 0-96-43-96-96 0-47.6 34.6-87.1 80-94.7l0 67c-9.6 5.5-16 15.9-16 27.7 0 17.7 14.3 32 32 32l32 0 0-192-72.6 0c-11.1 19.1-31.7 32-55.4 32l-16 0C21.5 128 0 106.5 0 80S21.5 32 48 32l144 0z\"]\n};\nvar faRodAsclepius = faStaffSnake;\nvar faRodSnake = faStaffSnake;\nvar faStaffAesculapius = faStaffSnake;\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M288-32a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM48 304c0-70.1 47-131.4 117.1-164.9 25.3 41.3 70.9 68.9 122.9 68.9 55.7 0 104.1-31.7 128-78 15.8-11.3 35.1-18 56-18l19.5 0c10.4 0 18 9.8 15.5 19.9l-17.1 68.3c9.9 12.4 18.2 25.7 24.4 39.8l21.7 0c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24l-40 0c-16.5 22-38.5 39.6-64 50.7l0 29.3c0 17.7-14.3 32-32 32l-33 0c-14.3 0-26.8-9.5-30.8-23.2l-7.1-24.8-82.3 0-7.1 24.8C235.8 502.5 223.3 512 209 512l-33 0c-17.7 0-32-14.3-32-32l0-29.3C87.5 426 48 369.6 48 304zm376 16a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M209-33c-9.4-9.4-24.6-9.4-33.9 0L95 47c-4.1 4.1-6.5 9.4-7 15.1L58.4 448 48 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.4 0-29.7-385.8c-.4-5.7-2.9-11.1-7-15.1L209-33zM128 296c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faAnglesRight = {\n prefix: 'fas',\n iconName: 'angles-right',\n icon: [448, 512, [187, \"angle-double-right\"], \"f101\", \"M439.1 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L371.2 256 233.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L179.2 256 41.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faAngleDoubleRight = faAnglesRight;\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [512, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32L96 320c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z\"]\n};\nvar faDesktopAlt = faDesktop;\nvar faPlaneCircleXmark = {\n prefix: 'fas',\n iconName: 'plane-circle-xmark',\n icon: [640, 512, [], \"e557\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [576, 512, [], \"f079\", \"M118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l32 0 0 224c0 53 43 96 96 96l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0c-17.7 0-32-14.3-32-32l0-224 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64zM457.4 470.6c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S556.9 352 544 352l-32 0 0-224c0-53-43-96-96-96L288 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32l0 224-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64z\"]\n};\nvar faUserGear = {\n prefix: 'fas',\n iconName: 'user-gear',\n icon: [640, 512, [\"user-cog\"], \"f4fe\", \"M256.5 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.7 304l59.4 0 1.5 0c-12.9 26.8-7.8 58.2 11.5 79.5-20.2 22.3-24.8 55.8-9.4 83.4l22.5 40.4c.9 1.6 1.9 3.2 2.9 4.7l-237 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zm205.9-56.4c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 6.1c0 18.9 24.1 32.8 40.5 23.4l5-2.9c11.6-6.7 26.5-2.6 33 9.1l22.4 40.2c6.2 11.2 2.6 25.2-8.2 32l-4.7 2.9c-16.2 10.1-16.2 39.9 0 50.1l4.6 2.9c10.8 6.8 14.5 20.8 8.3 32L607 483.8c-6.5 11.7-21.4 15.9-33 9.1l-4.9-2.9c-16.4-9.5-40.5 4.5-40.5 23.4l0 6.1c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-5.9c0-19-24.2-33-40.7-23.5l-4.8 2.8c-11.6 6.7-26.4 2.6-33-9.1l-22.6-40.4c-6.2-11.2-2.6-25.3 8.3-32.1l4.4-2.7c16.3-10.1 16.3-40.1 0-50.2l-4.5-2.8c-10.9-6.8-14.5-20.9-8.3-32.1l22.5-40.3c6.5-11.7 21.4-15.8 32.9-9.1l4.8 2.8c16.5 9.5 40.7-4.5 40.7-23.5l0-5.9zm99.9 136.2a52 52 0 1 0 -104 0 52 52 0 1 0 104 0z\"]\n};\nvar faUserCog = faUserGear;\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224l-128 0 0-128 128 0 0 128zM64 288l128 0 0 128-128 0 0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M128 96l0-16c0-44.2 86-80 192-80S512 35.8 512 80l0 16c0 30.6-41.3 57.2-102 70.7-2.4-2.8-4.9-5.5-7.4-8-15.5-15.3-35.5-26.9-56.4-35.5-41.9-17.5-96.5-27.1-154.2-27.1-21.9 0-43.3 1.4-63.8 4.1-.2-1.3-.2-2.7-.2-4.1zM432 353l0-46.2c15.1-3.9 29.3-8.5 42.2-13.9 13.2-5.5 26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zm0-96l0-33c0-4.5-.4-8.8-1-13 15.5-3.9 30-8.6 43.2-14.2s26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zM0 240l0-16c0-44.2 86-80 192-80s192 35.8 192 80l0 16c0 44.2-86 80-192 80S0 284.2 0 240zm384 96c0 44.2-86 80-192 80S0 380.2 0 336l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3l0 15.4zm0 80.6l0 15.4c0 44.2-86 80-192 80S0 476.2 0 432l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [576, 512, [9894], \"f229\", \"M416-32c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0-58.7 58.7-17.4-17.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l17.4 17.4-23 23c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176c0-37-11.4-71.4-31-99.8l23-23 17.4 17.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L453.3 136 512 77.3 512 128c0 17.7 14.3 32 32 32s32-14.3 32-32L576 0c0-17.7-14.3-32-32-32L416-32zM128 304a112 112 0 1 1 224 0 112 112 0 1 1 -224 0z\"]\n};\nvar faHandshakeAngle = {\n prefix: 'fas',\n iconName: 'handshake-angle',\n icon: [576, 512, [\"hands-helping\"], \"f4c4\", \"M268.9 53.2L152.3 182.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 344 576 288 576 0 464 64 440.2 48.1C424.4 37.6 405.9 32 386.9 32l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 150.7L223.4 32 183.8 32c-25.5 0-49.9 10.1-67.9 28.1L0 192 0 544 144 408 156.4 418.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 409c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"]\n};\nvar faHandsHelping = faHandshakeAngle;\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [384, 512, [8595], \"f063\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7-105.4-105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faLocationDot = {\n prefix: 'fas',\n iconName: 'location-dot',\n icon: [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M0 188.6C0 84.4 86 0 192 0S384 84.4 384 188.6c0 119.3-120.2 262.3-170.4 316.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nvar faMapMarkerAlt = faLocationDot;\nvar faPlugCircleExclamation = {\n prefix: 'fas',\n iconName: 'plug-circle-exclamation',\n icon: [640, 512, [], \"e55d\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9-.9-5.3-5.3-9.3-10.6-10.1-51.5-8.2-92.8-47.1-104.5-97.4-1.8-7.6-8-13.4-15.7-14.6-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faScrewdriverWrench = {\n prefix: 'fas',\n iconName: 'screwdriver-wrench',\n icon: [576, 512, [\"tools\"], \"f7d9\", \"M70.8-6.7c5.4-5.4 13.8-6.2 20.2-2L209.9 70.5c8.9 5.9 14.2 15.9 14.2 26.6l0 49.6 90.8 90.8c33.3-15 73.9-8.9 101.2 18.5L542.2 382.1c18.7 18.7 18.7 49.1 0 67.9l-60.1 60.1c-18.7 18.7-49.1 18.7-67.9 0L288.1 384c-27.4-27.4-33.5-67.9-18.5-101.2l-90.8-90.8-49.6 0c-10.7 0-20.7-5.3-26.6-14.2L23.4 58.9c-4.2-6.3-3.4-14.8 2-20.2L70.8-6.7zm145 303.5c-6.3 36.9 2.3 75.9 26.2 107.2l-94.9 95c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8l135.4-135.5 35.2 35.1zM384.1 0c20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1L388.8 91.3c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l56.7-56.7c7.6-7.5 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 43.2-17.2 82.3-45 111.1l-49.1-49.1c-33.1-33-78.5-45.7-121.1-38.4l-56.8-56.8 0-29.7-.2-5c-.8-12.4-4.4-24.3-10.5-34.9 29.4-35 73.4-57.2 122.7-57.3z\"]\n};\nvar faTools = faScrewdriverWrench;\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faNavicon = faBars;\nvar faHandsPraying = {\n prefix: 'fas',\n iconName: 'hands-praying',\n icon: [640, 512, [\"praying-hands\"], \"f684\", \"M224 296c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112.6 88.2-119.7c13.1-17.8 9.3-42.8-8.5-55.9s-42.8-9.3-55.9 8.5L106.5 142.9C89.3 166.2 80 194.5 80 223.6l0 110.7-58.1 19.4C8.8 358 0 370.2 0 384l0 96c0 10 4.7 19.5 12.7 25.5s18.4 8 28.1 5.2l154.4-44.1c55-15.7 92.8-65.9 92.8-123.1L288 224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 72zm192 0l0-72c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 119.6c0 57.2 37.9 107.4 92.8 123.1l154.4 44.1c9.7 2.8 20 .8 28.1-5.2S640 490 640 480l0-96c0-13.8-8.8-26-21.9-30.4l-58.1-19.4 0-110.7c0-29-9.3-57.3-26.5-80.7L440.2 16.3C427.1-1.5 402.1-5.3 384.3 7.8s-21.6 38.1-8.5 55.9L464 183.4 464 296c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPrayingHands = faHandsPraying;\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M192 0c17.7 0 32 14.3 32 32 0 30.5 36.9 45.8 58.5 24.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-21.6 21.6-6.3 58.5 24.2 58.5 17.7 0 32 14.3 32 32s-14.3 32-32 32c-30.5 0-45.8 36.9-24.2 58.5 12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0c-21.6-21.6-58.5-6.3-58.5 24.2 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-30.5-36.9-45.8-58.5-24.2-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3C77.8 260.9 62.5 224 32 224 14.3 224 0 209.7 0 192s14.3-32 32-32c30.5 0 45.8-36.9 24.2-58.5-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0C123.1 77.8 160 62.5 160 32 160 14.3 174.3 0 192 0zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm248 40c0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24s24 10.7 24 24zM504 384a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faSchoolFlag = {\n prefix: 'fas',\n iconName: 'school-flag',\n icon: [576, 512, [], \"e56e\", \"M256-8c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-72 0 0 19.2 128 76.8 64 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 128-76.8 0-91.2zM240 384l0 80 96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48zM112 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm-224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [8482], \"f25c\", \"M346.6 110.2c-7.8-11.7-22.4-17-35.9-12.9S288 113.9 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-150.3 69.4 104.1c5.9 8.9 15.9 14.2 26.6 14.2s20.7-5.3 26.6-14.2L544 233.7 544 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-14.1-9.2-26.5-22.7-30.6s-28.1 1.1-35.9 12.9L448 262.3 346.6 110.2zM32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96z\"]\n};\nvar faFireBurner = {\n prefix: 'fas',\n iconName: 'fire-burner',\n icon: [512, 512, [], \"e4f1\", \"M281.7 48.3L294 34.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM320 240.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64zM92.8 320c37.7 48.3 96.1 80 163.2 80 66.5 0 125.1-31.7 163-80l45 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l44.8 0zM456 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faFaceSmileBeam = {\n prefix: 'fas',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faTentArrowLeftRight = {\n prefix: 'fas',\n iconName: 'tent-arrow-left-right',\n icon: [512, 512, [], \"e57f\", \"M-.5 113c-9.4-9.4-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 310.1 0 54.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0-.1 0-262 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72zM37.1 476L60.3 292.6c1.2-9.7 6.8-18.3 15.1-23.3L238.8 170c10.2-6.2 22.9-6.2 33.1-.1l165.5 99.4c8.4 5 14 13.7 15.3 23.4L475.9 476c2.4 19.1-12.5 36-31.7 36l-71.9 0c-12.1 0-23.2-6.8-28.6-17.7L275.4 357.9c-1.8-3.6-5.5-5.9-9.5-5.9-5.9 0-10.6 4.7-10.6 10.6l0 117.4c0 17.7-14.3 32-32 32L68.8 512c-19.3 0-34.2-16.9-31.7-36z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M512 96c0 50.2-59.1 125.1-84.6 155-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8 6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96 0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8-25.2-27.4-85-97.9-85-148.4 0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAnglesUp = {\n prefix: 'fas',\n iconName: 'angles-up',\n icon: [384, 512, [\"angle-double-up\"], \"f102\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 329.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faAngleDoubleUp = faAnglesUp;\nvar faBucket = {\n prefix: 'fas',\n iconName: 'bucket',\n icon: [448, 512, [], \"e4cf\", \"M443.7 208c2.7 4.7 4.3 10.2 4.3 16 0 17.7-14.3 32-32 32l-5.1 0-22.4 213c-2.6 24.4-23.2 43-47.8 43l-233.6 0c-24.6 0-45.2-18.5-47.8-43L37.1 256 32 256c-17.7 0-32-14.3-32-32 0-5.8 1.6-11.3 4.3-16l439.4 0zM224-16c79.5 0 144 64.5 144 144l0 32-48 0 0-32c0-53-43-96-96-96s-96 43-96 96l0 32-48 0 0-32C80 48.5 144.5-16 224-16z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M426.1 94.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-384 128C8.8 166 0 178.2 0 192s8.8 26 21.9 30.4l384 128c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L133.2 192 426.1 94.4zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"]\n};\nvar faFolderClosed = {\n prefix: 'fas',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 448L64 448c-35.3 0-64-28.7-64-64l0-176 512 0 0 176c0 35.3-28.7 64-64 64zm64-288L0 160 0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 16z\"]\n};\nvar faPersonThroughWindow = {\n prefix: 'fas',\n iconName: 'person-through-window',\n icon: [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4-60.5 24.2-100.1 82.7-100.1 147.9l0 73.8-64 0 0-320zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4 44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-26.6 0 42.7 64 150.9 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4l-84.2-126.2 74.6 0 40 48zm-159.5 0l-73.5 0 0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faSchoolLock = {\n prefix: 'fas',\n iconName: 'school-lock',\n icon: [640, 512, [], \"e56f\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c33 0 60.2 25 63.6 57.2-14.7-5.9-30.8-9.2-47.6-9.2-70.7 0-128 57.3-128 128l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L64 512c-35.3 0-64-28.7-64-64L0 192zM332.3 341.5c-6-3.5-12.9-5.5-20.3-5.5l-48 0c-22.1 0-40 17.9-40 40l0 88 96 0 0-64.1c0-20.8 4.4-40.5 12.3-58.4zM112 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm224-48a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM560 352l0-47.9c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0zm-112 2.7l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3z\"]\n};\nvar faPersonBurst = {\n prefix: 'fas',\n iconName: 'person-burst',\n icon: [640, 512, [], \"e53b\", \"M204 40.1c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24zM4 144.1c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM96.5 285.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L96.5 285.5zM62.6 2.7c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L62.6 36.6c-9.4-9.4-9.4-24.6 0-33.9zM352.4-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM478.7 299.1l-46.3-62.4 0 275.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c25.2-33.9 65-53.9 107.2-53.9s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6z\"]\n};\nvar faLeftLong = {\n prefix: 'fas',\n iconName: 'left-long',\n icon: [576, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9S192 115.1 192 128l0 64 336 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-336 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"]\n};\nvar faLongArrowAltLeft = faLeftLong;\nvar faLocationCrosshairs = {\n prefix: 'fas',\n iconName: 'location-crosshairs',\n icon: [576, 512, [\"location\"], \"f601\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM128 256a160 160 0 1 0 320 0 160 160 0 1 0 -320 0zm160-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faLocation = faLocationCrosshairs;\nvar faPersonDotsFromLine = {\n prefix: 'fas',\n iconName: 'person-dots-from-line',\n icon: [512, 512, [\"diagnoses\"], \"f470\", \"M184 72a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 299.3c-19.9 22.6-32 52.2-32 84.7l0 32-64 0 0-32c0-106 86-192 192-192s192 86 192 192l0 32-64 0 0-32c0-32.5-12.1-62.1-32-84.7l0 116.7-192 0 0-116.7zM232 384a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88-104a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM24 464l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM64 184a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm424 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faDiagnoses = faPersonDotsFromLine;\nvar faGaugeSimpleHigh = {\n prefix: 'fas',\n iconName: 'gauge-simple-high',\n icon: [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64z\"]\n};\nvar faTachometer = faGaugeSimpleHigh;\nvar faTachometerFast = faGaugeSimpleHigh;\nvar faAnglesLeft = {\n prefix: 'fas',\n iconName: 'angles-left',\n icon: [448, 512, [171, \"angle-double-left\"], \"f100\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L269.3 256 406.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"]\n};\nvar faAngleDoubleLeft = faAnglesLeft;\nvar faUpDown = {\n prefix: 'fas',\n iconName: 'up-down',\n icon: [512, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M406.6 502.6l96-96c9.2-9.2 11.9-22.9 6.9-34.9S492.9 352 480 352l-64 0 0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 320-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l96 96c12.5 12.5 32.8 12.5 45.3 0zM150.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l64 0 0 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320 64 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-96-96z\"]\n};\nvar faArrowsAltV = faUpDown;\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [\"battery-0\"], \"f244\", \"M112 160c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16l416 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16l-416 0zM32 176c0-44.2 35.8-80 80-80l416 0c44.2 0 80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 48c0 44.2-35.8 80-80 80l-416 0c-44.2 0-80-35.8-80-80l0-224z\"]\n};\nvar faBattery0 = faBatteryEmpty;\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM176 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [9201], \"f2f2\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm80 184l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [128225], \"f7c0\", \"M232 0c154.6 0 280 125.4 280 280 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-128.1-103.9-232-232-232-13.3 0-24-10.7-24-24S218.7 0 232 0zM208 120c0-13.3 10.7-24 24-24 101.6 0 184 82.4 184 184 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-75.1-60.9-136-136-136-13.3 0-24-10.7-24-24zM26.4 142.7c8.8-17.9 32.4-19.9 46.5-5.8l128.5 128.5 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32 128.5 128.5c14.1 14.1 12 37.6-5.8 46.5-34.2 16.9-72.6 26.4-113.3 26.4-141.4 0-256-114.6-256-256 0-40.7 9.5-79.2 26.4-113.3z\"]\n};\nvar faFaceRollingEyes = {\n prefix: 'fas',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 352l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm32-128c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4zm128 64c-35.3 0-64-28.7-64-64 0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4 0 35.3-28.7 64-64 64z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faListCheck = {\n prefix: 'fas',\n iconName: 'list-check',\n icon: [512, 512, [\"tasks\"], \"f0ae\", \"M133.8 36.3c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 158 47 153L7 113C-2.3 103.6-2.3 88.4 7 79S31.6 69.7 41 79l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zm0 160c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 318 47 313L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM64 376a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faTasks = faListCheck;\nvar faSackXmark = {\n prefix: 'fas',\n iconName: 'sack-xmark',\n icon: [512, 512, [], \"e56a\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM323.9 284.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [512, 512, [62098], \"23\", \"M214.7 .7c17.3 3.7 28.3 20.7 24.6 38l-19.1 89.3 126.5 0 22-102.7C372.4 8 389.4-3 406.7 .7s28.3 20.7 24.6 38L412.2 128 480 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-27.4 128 67.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38l19.1-89.3-126.5 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38L99.8 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 27.4-128-67.8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 22-102.7C180.4 8 197.4-3 214.7 .7zM206.4 192l-27.4 128 126.5 0 27.4-128-126.5 0z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [384, 512, [128646], \"f238\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM192 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [\"arrow-right-from-file\"], \"f56e\", \"M96.5 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-96 78.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-78.1 0 0-133.5c0-17-6.7-33.3-18.7-45.3L291.2 18.7C279.2 6.7 263 0 246 0L96.5 0zM358 176l-93.5 0c-13.3 0-24-10.7-24-24L240.5 58.5 358 176zM224.5 328c0-13.3 10.7-24 24-24l104 0 0 48-104 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faArrowRightFromFile = faFileExport;\nvar faFaceGrimace = {\n prefix: 'fas',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM400 352c0 25.2-19.4 45.8-44 47.8l0-95.7c24.6 2 44 22.7 44 47.8zM276 304l40 0 0 96-40 0 0-96zm-80 96l0-96 40 0 0 96-40 0zm-40-95.8l0 95.7c-24.6-2-44-22.7-44-47.8s19.4-45.8 44-47.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faTrainSubway = {\n prefix: 'fas',\n iconName: 'train-subway',\n icon: [384, 512, [\"subway\"], \"f239\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l72 0 0-160-72 0c-17.7 0-32 14.3-32 32zM216 256l72 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-72 0 0 160zM96 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm224-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faSubway = faTrainSubway;\nvar faCircleDot = {\n prefix: 'fas',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l337.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1zm448 0c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1zM144 176c0-17.7 14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-64zM256 320l32 0c44.2 0 80-35.8 80-80l32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [128674], \"f21a\", \"M272 0c-26.5 0-48 21.5-48 48l0 16-16 0c-44.2 0-80 35.8-80 80l0 108.8-21.6 8.6c-14.8 5.9-22.5 22.4-17.4 37.5 10.4 31.3 26.8 59.3 47.7 83.1 20.1-9.2 41.7-13.9 63.3-14 33.1-.2 66.3 10.2 94.4 31.4l1.6 1.2 0-215-104 41.6 0-83.2c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 83.2-104-41.6 0 215 1.6-1.2c27.5-20.7 59.9-31.2 92.4-31.4 22.3-.1 44.6 4.5 65.3 14 20.9-23.7 37.3-51.8 47.7-83.1 5-15.2-2.6-31.6-17.4-37.5L512 252.8 512 144c0-44.2-35.8-80-80-80l-16 0 0-16c0-26.5-21.5-48-48-48L272 0zM403.4 476.1c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faC = {\n prefix: 'fas',\n iconName: 'c',\n icon: [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3 155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8 221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faSquarePhone = {\n prefix: 'fas',\n iconName: 'square-phone',\n icon: [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 96.7c9.8-2.7 20.1 2.4 24 11.8l20.3 48.7c3.4 8.3 1.1 17.8-5.9 23.5l-22.1 18c16.2 35.8 44.5 65 79.6 82.4l19.3-23.6c5.7-6.9 15.2-9.3 23.5-5.9l48.7 20.3c9.4 3.9 14.4 14.2 11.8 24l-.8 2.8c-8.8 32.3-40.1 59.9-78.2 51.8-87.5-18.5-156.3-87.4-174.9-174.9-8.1-38.1 19.5-69.4 51.8-78.2l2.8-.8z\"]\n};\nvar faPhoneSquare = faSquarePhone;\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [448, 512, [], \"f546\", \"M1 441.7C5.5 463.5 24.8 480 48 480l352 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-64 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-64-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-48c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432c0 3.3 .3 6.6 1 9.7z\"]\n};\nvar faArrowsRotate = {\n prefix: 'fas',\n iconName: 'arrows-rotate',\n icon: [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M65.9 228.5c13.3-93 93.4-164.5 190.1-164.5 53 0 101 21.5 135.8 56.2 .2 .2 .4 .4 .6 .6l7.6 7.2-47.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.4-11.3-10.7C390.5 28.6 326.5 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1zm443.5 64c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-53 0-101-21.5-135.8-56.2-.2-.2-.4-.4-.6-.6l-7.6-7.2 47.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320c-8.5 0-16.7 3.4-22.7 9.5S-.1 343.7 0 352.3l1 127c.1 17.7 14.6 31.9 32.3 31.7S65.2 496.4 65 478.7l-.4-51.5 10.7 10.1c46.3 46.1 110.2 74.7 180.7 74.7 129 0 235.7-95.4 253.4-219.5z\"]\n};\nvar faRefresh = faArrowsRotate;\nvar faSync = faArrowsRotate;\nvar faPersonDress = {\n prefix: 'fas',\n iconName: 'person-dress',\n icon: [384, 512, [\"female\"], \"f182\", \"M136 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM112 384l-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L270 234 313 362.9c3.5 10.4-4.3 21.1-15.2 21.1l-25.8 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-32 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128z\"]\n};\nvar faFemale = faPersonDress;\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [512, 512, [128214, 128366], \"f518\", \"M256 141.3l0 309.3 .5-.2C311.1 427.7 369.7 416 428.8 416l19.2 0 0-320-19.2 0c-42.2 0-84.1 8.4-123.1 24.6-16.8 7-33.4 13.9-49.7 20.7zM230.9 61.5L256 72 281.1 61.5C327.9 42 378.1 32 428.8 32L464 32c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-35.2 0c-50.7 0-100.9 10-147.7 29.5l-12.8 5.3c-7.9 3.3-16.7 3.3-24.6 0l-12.8-5.3C184.1 490 133.9 480 83.2 480L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l35.2 0c50.7 0 100.9 10 147.7 29.5z\"]\n};\nvar faFolderTree = {\n prefix: 'fas',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 392c0 30.9 25.1 56 56 56l184 0 0-48-184 0c-4.4 0-8-3.6-8-8l0-232 192 0 0-48-192 0 0-88zM336 224l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48zm0 288l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 288c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48z\"]\n};\nvar faVirgo = {\n prefix: 'fas',\n iconName: 'virgo',\n icon: [640, 512, [], \"e850\", \"M368 32c61.9 0 112 50.1 112 112l0 26.8c14.5-6.9 30.8-10.8 48-10.8 61.9 0 112 50.1 112 112S589.9 384 528 384l-48 0 0 32c0 16.6 12.6 30.2 28.7 31.8l6.6 .3c16.1 1.6 28.7 15.3 28.7 31.8 0 17.7-14.3 32-32 32-53 0-96-43-96-96l0-32-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-176c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-304c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 94.2 32 80.6 32 64 32 46.3 46.3 32 64 32 91 32 115.3 43.1 132.7 61 152.6 43 179 32 208 32 239.3 32 267.7 44.9 288 65.7 308.3 44.9 336.6 32 368 32zM528 224c-26.5 0-48 21.5-48 48l0 48 48 0c26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faBoxArchive = {\n prefix: 'fas',\n iconName: 'box-archive',\n icon: [512, 512, [\"archive\"], \"f187\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64zM32 176l448 0 0 240c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-240zm152 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faArchive = faBoxArchive;\nvar faTentArrowDownToLine = {\n prefix: 'fas',\n iconName: 'tent-arrow-down-to-line',\n icon: [576, 512, [], \"e57e\", \"M185 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1C120 2.7 109.3-8 96-8S72 2.7 72 16l0 102.1-31-31C31.6 77.7 16.4 77.7 7 87S-2.3 111.6 7 121l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zM155.8 260.6L132.1 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32 0-2.8-.4-5.5-1-8L548.2 260.7c-1.2-9.7-6.9-18.4-15.3-23.4L367.4 137.9c-10.2-6.1-22.9-6.1-33.1 .1L170.9 237.3c-8.3 5.1-13.9 13.7-15.1 23.3zM448 448l-97.1 0 0-149.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9L448 448z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M64 160l64 0 0-64-64 0 0 64zM0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 416l64 0 0-64-64 0 0 64zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zM320 96l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zM288 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm96 32c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-32 32a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4-43.3-32.5c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L464 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8 0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7l-13.3-13.3-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1 0 60.6-49.1 109.8-109.8 109.8L32.3 512c-3.3 0-6.6-.4-9.6-1.4-9.2-2.8-16.7-9.6-20.4-18.6-1.3-3.3-2.2-6.9-2.3-10.7-.2-3.7 .3-7.3 1.3-10.7 2.8-9.2 9.6-16.7 18.6-20.4 3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1 0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-102.5zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9 0 13.3 10.7 24 24 24 10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9S.1 232.8 5.4 228L130.9 116.5z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9l-67.9 67.9-67.9-67.9C106.1 124.9 96 100.4 96 75z\"]\n};\nvar faHourglass3 = faHourglassEnd;\nvar faGrip = {\n prefix: 'fas',\n iconName: 'grip',\n icon: [512, 512, [58119, \"grid-horizontal\", \"grip-horizontal\"], \"f58d\", \"M88 96c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM280 224l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm192 0l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm0 192l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zM280 288c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM88 416l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40z\"]\n};\nvar faGridHorizontal = faGrip;\nvar faGripHorizontal = faGrip;\nvar faBorderTopLeft = {\n prefix: 'fas',\n iconName: 'border-top-left',\n icon: [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C28.7 32 0 60.7 0 96L0 448zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm160 32c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM384 192a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm32 160a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBorderStyle = faBorderTopLeft;\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [\"list-dots\"], \"f0ca\", \"M48 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM48 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM96 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faListDots = faListUl;\nvar faPeopleRobbery = {\n prefix: 'fas',\n iconName: 'people-robbery',\n icon: [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6 0 191.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z\"]\n};\nvar faMobileButton = {\n prefix: 'fas',\n iconName: 'mobile-button',\n icon: [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faArrowDownAZ = {\n prefix: 'fas',\n iconName: 'arrow-down-a-z',\n icon: [512, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm182-340.9c50.7 101.3 77.3 154.7 80 160 7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9c2.7-5.3 29.3-58.7 80-160 5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 135.6l-20.2 40.4 40.4 0-20.2-40.4zM288 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 416 448 416c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l73.4-73.4-50.7 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSortAlphaAsc = faArrowDownAZ;\nvar faSortAlphaDown = faArrowDownAZ;\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [512, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm192 24c0 4.4-3.6 8.1-8 7.5-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48zM64 328c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zm8-136.5c-4.4 .5-8-3.1-8-7.5l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5zm368 129c4.4-.5 8 3.1 8 7.5l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5z\"]\n};\nvar faCircleMinus = {\n prefix: 'fas',\n iconName: 'circle-minus',\n icon: [512, 512, [\"minus-circle\"], \"f056\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM168 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusCircle = faCircleMinus;\nvar faArrowPointer = {\n prefix: 'fas',\n iconName: 'arrow-pointer',\n icon: [448, 512, [\"mouse-pointer\"], \"f245\", \"M77.3 2.5c8.1-4.1 17.9-3.2 25.1 2.3l320 239.9c8.3 6.2 11.6 17 8.4 26.8s-12.4 16.4-22.8 16.4l-152.3 0 88.9 177.7c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-88.9-177.7-91.3 121.8c-6.2 8.3-17 11.6-26.8 8.4S64 434.3 64 424L64 24c0-9.1 5.1-17.4 13.3-21.5z\"]\n};\nvar faMousePointer = faArrowPointer;\nvar faSquareShareNodes = {\n prefix: 'fas',\n iconName: 'square-share-nodes',\n icon: [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM368 160c0 35.3-28.7 64-64 64-15.4 0-29.5-5.4-40.6-14.5l-85.3 46.5 85.3 46.5c11-9.1 25.2-14.5 40.6-14.5 35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L158.5 300c-11.7 12.3-28.2 20-46.5 20-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3 0-35.3 28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faShareAltSquare = faSquareShareNodes;\nvar faTableCellsLarge = {\n prefix: 'fas',\n iconName: 'table-cells-large',\n icon: [448, 512, [\"th-large\"], \"f009\", \"M384 96l-128 0 0 128 128 0 0-128zm64 128l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 128zM64 288l0 128 128 0 0-128-128 0zm128-64l0-128-128 0 0 128 128 0zm64 64l0 128 128 0 0-128-128 0z\"]\n};\nvar faThLarge = faTableCellsLarge;\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [576, 512, [128008], \"f6be\", \"M64 96c53 0 96 43 96 96l0 85.8c29.7-44.7 77.8-76.2 133.4-84 25.6 60 85.2 102.1 154.6 102.1 10.9 0 21.6-1.1 32-3.1L480 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8-136 108.8 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-224c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 158.2 32 144.6 32 128 32 110.3 46.3 96 64 96zM533.8 3.2C544.2-5.5 560 1.9 560 15.5L560 128c0 61.9-50.1 112-112 112S336 189.9 336 128l0-112.5c0-13.6 15.8-21 26.2-12.3L416 48 480 48 533.8 3.2zM400 108a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm96 0a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-192 0z\"]\n};\nvar faCodeCompare = {\n prefix: 'fas',\n iconName: 'code-compare',\n icon: [512, 512, [], \"e13a\", \"M198.8 1.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S184 145.7 184 136l0-24-24 0c-17.7 0-32 14.3-32 32l0 214.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L64 144c0-53 43-96 96-96l24 0 0-24c0-9.7 5.8-18.5 14.8-22.2zM392 80a24 24 0 1 0 48 0 24 24 0 1 0 -48 0zm-8 73.3c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L448 368c0 53-43 96-96 96l-24 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S328 366.3 328 376l0 24 24 0c17.7 0 32-14.3 32-32l0-214.7zM72 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"]\n};\nvar faLeo = {\n prefix: 'fas',\n iconName: 'leo',\n icon: [512, 512, [], \"e84a\", \"M260 0c72.9 0 132 59.1 132 132l0 5.4-.1 1.4-23.8 270c.4 21.7 18.2 39.2 40 39.2 22.1 0 40-17.9 40-40l0-40c0-17.7 14.3-32 32-32s32 14.3 32 32l0 40c0 57.4-46.6 104-104 104S304 465.4 304 408l0-1.4 .1-1.4 23.9-270.6 0-2.6c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 4c0 3.7 .3 7.3 .8 11l29.7 193.4c.9 6.1 1.4 12.2 1.4 18.4l0 9.2c0 61.9-50.1 112-112 112S0 429.9 0 368 50.1 256 112 256c11.7 0 23 1.8 33.7 5.1L129.6 156.7c-1.1-6.8-1.6-13.8-1.6-20.7l0-4C128 59.1 187.1 0 260 0zM112 320a48 48 0 1 0 0 96 48 48 0 1 0 0-96z\"]\n};\nvar faRoadCircleXmark = {\n prefix: 'fas',\n iconName: 'road-circle-xmark',\n icon: [640, 512, [], \"e566\", \"M287.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.6 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.2c35.2-40 86.7-65.2 144.2-65.2 9 0 17.8 .6 26.4 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.5 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [576, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320zm96 64l128 0 0 64-128 0 0-64zm192 0l128 0 0 64-128 0 0-64z\"]\n};\nvar faCakeCandles = {\n prefix: 'fas',\n iconName: 'cake-candles',\n icon: [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4-10.5L61.8 31.6C58 38.1 56 45.6 56 53.2L56 56c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zm128 0L189.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zM317.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5L317.8 31.6zM128 160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.5C26.7 226.6 0 262.2 0 304l0 20.8c20.9 1.3 41.6 7.3 60.3 18l7.1 4.1c26.3 15 58.9 13.4 83.6-4.2 43.7-31.2 102.3-31.2 146 0 24.6 17.6 57.3 19.3 83.6 4.2l7.1-4.1c18.7-10.7 39.3-16.7 60.3-18l0-20.8c0-41.8-26.7-77.4-64-90.5l0-53.5c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 373c-12.7 1.2-25.1 5-36.5 11.5l-7.1 4.1c-42.6 24.3-95.4 21.7-135.3-6.8-27-19.3-63.2-19.3-90.2 0-39.9 28.5-92.7 31.2-135.3 6.8l-7.1-4.1C25.1 378 12.7 374.1 0 373l0 75c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-75z\"]\n};\nvar faBirthdayCake = faCakeCandles;\nvar faCake = faCakeCandles;\nvar faBugSlash = {\n prefix: 'fas',\n iconName: 'bug-slash',\n icon: [576, 512, [], \"e490\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0L241.8 176 344 176c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4s7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 9.5-.8 18.7-2.4 27.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM398.2 468c-23.2 22.1-53 37.2-86.2 42.2l0-128.4 86.2 86.2zM264 333.8l0 176.4c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c3.3-13.9 9.3-26.7 17.6-37.8L264 333.8zM355.6 128l-82.4 0-72.3-72.3C216.1 22.8 249.4 0 288 0 341 0 384 43 384 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4z\"]\n};\nvar faTarp = {\n prefix: 'fas',\n iconName: 'tarp',\n icon: [512, 512, [], \"e57b\", \"M448 64c35.3 0 64 28.7 64 64l0 149.5c0 17-6.7 33.3-18.7 45.3L386.7 429.3c-12 12-28.3 18.7-45.3 18.7L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l384 0zm5.5 208L360 272c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5zM96 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faDiagramPredecessor = {\n prefix: 'fas',\n iconName: 'diagram-predecessor',\n icon: [448, 512, [], \"e477\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 352l-320 0 0 64 320 0 0-64zm64 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64z\"]\n};\nvar faFaceFlushed = {\n prefix: 'fas',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM168 392c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-96a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faDiagramNext = {\n prefix: 'fas',\n iconName: 'diagram-next',\n icon: [448, 512, [], \"e476\", \"M384 224c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l128 0 0 64-32 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S294.5 288 288 288l-32 0 0-64 128 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64l-34 0c5.6 21.7-.5 45.1-16.7 61.3l-64 64c-25 25-65.5 25-90.5 0l-64-64C98.6 333.1 92.4 309.7 98 288l-34 0z\"]\n};\nvar faAnchorCircleXmark = {\n prefix: 'fas',\n iconName: 'anchor-circle-xmark',\n icon: [640, 512, [], \"e4ac\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPersonCircleXmark = {\n prefix: 'fas',\n iconName: 'person-circle-xmark',\n icon: [640, 512, [], \"e543\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M169.7 227.5c34.3 18.7 64.5 44.1 88.8 74.5 11.1 13.9 21 28.9 29.4 44.8 8.5-15.9 18.3-30.8 29.4-44.8 24.3-30.5 54.5-55.9 88.8-74.5 41.7-22.7 89.4-35.5 139.7-35.5l9.9 0c11.1 0 20.1 9 20.1 20.1 0 148-119.9 267.9-267.9 267.9l-40.2 0C119.9 480 0 360.1 0 212.1 0 201 9 192 20.1 192l9.9 0c50.4 0 98.1 12.8 139.7 35.5zM303.9 38c16.9 15.9 61.4 63.4 89 142.3-40.1 20.2-75.8 48.2-104.9 82.1-29.2-33.9-64.8-61.8-104.9-82.1 27.6-78.9 72.2-126.4 89-142.3 4.3-4.1 10-6 15.9-6s11.6 2 15.9 6z\"]\n};\nvar faAries = {\n prefix: 'fas',\n iconName: 'aries',\n icon: [512, 512, [], \"e846\", \"M401.6 0c61.3 0 110.4 50.3 110.4 111 0 29.4-11.6 57.9-32.6 78.8l-8.8 8.8c-12.5 12.5-32.8 12.5-45.2 0s-12.5-32.8 0-45.2l8.8-8.8c8.8-8.8 13.8-21 13.8-33.6 0-25.9-21.1-47-46.4-47-22.5 0-41.7 16.1-45.7 38.2L287.5 485.6c0 .1-.1 .3-.1 .4-.2 .8-.3 1.6-.5 2.3-.1 .3-.1 .5-.2 .7-.2 .6-.4 1.3-.7 1.9-.2 .5-.4 1-.6 1.5-.1 .3-.3 .6-.4 .9-1.6 3.5-3.8 6.5-6.4 9.2-2 2-4.2 3.7-6.6 5.1-.2 .1-.3 .2-.5 .3-.7 .4-1.4 .7-2.1 1-.3 .1-.6 .3-.9 .4-.5 .2-1 .4-1.5 .6-.6 .2-1.2 .5-1.9 .7-.2 .1-.5 .2-.7 .2-.8 .2-1.6 .4-2.3 .5-.2 0-.3 .1-.4 .1-.2 0-.4 0-.6 .1-.7 .1-1.3 .2-2 .2-.4 0-.8 .1-1.2 .1-.6 0-1.2 .1-1.8 .1-.6 0-1.2 0-1.8-.1-.4 0-.8-.1-1.2-.1-.7-.1-1.4-.1-2-.2-.2 0-.4 0-.6-.1-.2 0-.3-.1-.5-.1-.8-.2-1.6-.3-2.3-.5-.3-.1-.5-.1-.8-.2-.6-.2-1.3-.4-1.9-.7-.5-.2-1-.4-1.5-.6-.3-.1-.6-.3-.9-.4-.7-.3-1.4-.7-2.1-1-.2-.1-.3-.2-.5-.3-2.4-1.4-4.7-3.1-6.6-5.1-2.6-2.6-4.8-5.7-6.4-9.2-.1-.2-.2-.3-.2-.5l-.5-1.1c-.1-.3-.2-.5-.3-.8-.2-.6-.5-1.2-.7-1.9-.1-.2-.2-.5-.2-.7-.2-.8-.4-1.6-.5-2.3 0-.1-.1-.3-.1-.4L156 102.2c-4-22.1-23.2-38.2-45.7-38.2-25.3 0-46.4 21.1-46.4 47 0 12.6 5 24.8 13.8 33.6l8.8 8.8c12.5 12.5 12.5 32.8 0 45.2s-32.8 12.5-45.2 0l-8.8-8.8C11.6 168.9 0 140.3 0 111 0 50.3 49.1 0 110.4 0 163.8 0 209.6 38.3 219 91l37 207 37-207c9.4-52.6 55.2-91 108.7-91z\"]\n};\nvar faBarsProgress = {\n prefix: 'fas',\n iconName: 'bars-progress',\n icon: [448, 512, [\"tasks-alt\"], \"f828\", \"M288 160l96 0 0-64-96 0 0 64zM0 160L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 224c-26.5 0-48-21.5-48-48l0-16zM160 416l224 0 0-64-224 0 0 64zM0 416l0-80c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-16z\"]\n};\nvar faTasksAlt = faBarsProgress;\nvar faHeartCircleCheck = {\n prefix: 'fas',\n iconName: 'heart-circle-check',\n icon: [576, 512, [], \"e4fd\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faMarsStrokeRight = {\n prefix: 'fas',\n iconName: 'mars-stroke-right',\n icon: [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M320.5 256a112 112 0 1 0 -224 0 112 112 0 1 0 224 0zM208.5 80c86.3 0 158.1 62.1 173.1 144.1 1-.1 1.9-.1 2.9-.1l16 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 61.4 0-22.4-28c-11-13.8-8.8-33.9 5-45s33.9-8.8 45 5l64 80c9.3 11.7 9.3 28.3 0 40l-64 80c-11 13.8-31.2 16-45 5s-16-31.2-5-45l22.4-28-61.4 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-16 0c-1 0-1.9 0-2.9-.1-15 82-86.8 144.1-173.1 144.1-97.2 0-176-78.8-176-176s78.8-176 176-176z\"]\n};\nvar faMarsStrokeH = faMarsStrokeRight;\nvar faTowerObservation = {\n prefix: 'fas',\n iconName: 'tower-observation',\n icon: [448, 512, [], \"e586\", \"M209.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9-5.6 11.2-16.9 17.7-28.6 17.7l0 80c0 17.7-14.3 32-32 32l-13 0 32 192 45 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l45 0 32-192-13 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7-7.9-15.8-1.5-35 14.3-42.9l160-80zM310.7 448l-86.7-61.9-86.7 61.9 173.4 0zm-153-192l-3.5 21.2 69.9 49.9 69.9-49.9-3.5-21.2-132.7 0zm-12.3 73.9l-10.1 60.6 47.5-33.9-37.4-26.7zm119.9 26.7l47.5 33.9-10.1-60.6-37.4 26.7zM152 128c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faSterlingSign = {\n prefix: 'fas',\n iconName: 'sterling-sign',\n icon: [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M91.3 288l-34.8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l21.4 0C37.3 147.3 105.1 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-57.3 0-94.7 59.9-69.7 111.4 3.6 7.4 6.6 14.9 9.1 22.6l149.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-141.2 0c1 35.3-8.7 70.6-28.9 100.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c13.1-19.6 19.2-42.6 18.2-65.4z\"]\n};\nvar faGbp = faSterlingSign;\nvar faPoundSign = faSterlingSign;\nvar faFaucetDrip = {\n prefix: 'fas',\n iconName: 'faucet-drip',\n icon: [512, 512, [128688], \"e006\", \"M224 32c-17.7 0-32 14.3-32 32L96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l96 0 0 64-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 224 32 224c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32 0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4l-18.7 0 0-64 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c0-17.7-14.3-32-32-32zM436.8 455.4l-18.2 42.4c-1.8 4.1-2.7 8.6-2.7 13.1l0 1.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.2c0-4.5-.9-8.9-2.7-13.1l-18.2-42.4c-1.9-4.5-6.3-7.4-11.2-7.4s-9.2 2.9-11.2 7.4z\"]\n};\nvar faCircleInfo = {\n prefix: 'fas',\n iconName: 'circle-info',\n icon: [512, 512, [\"info-circle\"], \"f05a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faInfoCircle = faCircleInfo;\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [129718], \"f52d\", \"M352 0c41 0 80.3 16.3 109.2 45.2l5.5 5.5c29 29 45.3 68.3 45.3 109.2 0 24.1-5.7 47.6-16.2 68.8-1.9 3.7-5.3 6.5-9.3 7.7L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l32.2 0c14.3 0 21.4 17.2 11.3 27.3l-22.4 22.4c-1.9 1.9-4.2 3.2-6.7 4l-81 24.3c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2 13.2 0 18.9 15.7 7.8 22.9-41.1 26.6-89.3 41.1-139 41.1l-86 0-48 48c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L79.5 336.5c-5.7 5.7-15.5 1.7-15.5-6.4 0-67.9 27-133 75-181L242.8 45.2C271.7 16.3 311 0 352 0z\"]\n};\nvar faBowlRice = {\n prefix: 'fas',\n iconName: 'bowl-rice',\n icon: [512, 512, [], \"e2eb\", \"M176 40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 160l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 184c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM104 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM296 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM392 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 16l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faStarHalfStroke = {\n prefix: 'fas',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288.1 353.6c10 0 19.9 2.3 29 7l74.4 37.9-13-82.5c-3.2-20.2 3.5-40.7 17.9-55.2l59-59.1-82.5-13.1c-20.2-3.2-37.7-15.9-47-34.1l-38-74.4 0 273.6zM457.4 489c-7.3 5.3-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1s17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faTemperatureArrowDown = {\n prefix: 'fas',\n iconName: 'temperature-arrow-down',\n icon: [512, 512, [\"temperature-down\"], \"e03f\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 310.6c-6 6-14.1 9.4-22.6 9.4s-16.6-3.4-22.6-9.4l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-178.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64z\"]\n};\nvar faTemperatureDown = faTemperatureArrowDown;\nvar faMaskVentilator = {\n prefix: 'fas',\n iconName: 'mask-ventilator',\n icon: [640, 512, [], \"e524\", \"M152.2 192c-15.4 38.3-24.2 77.2-24.2 108.8 0 13.3 1.5 26.2 4.4 38.7l-17-3.4c-29.9-6-51.4-32.2-51.4-62.8l0-81.3 88.2 0zm32.9-64L64 128c-35.3 0-64 28.7-64 64l0 81.3c0 61 43.1 113.5 102.9 125.5l66.3 13.3c18.7 22.1 42.9 40 70.8 51.8l0-87.8c-10.1-14.2-16-31.3-16-49.7 0-49.5 43-134.4 96-134.4 52.5 0 96 84.9 96 134.4 0 18.4-5.9 35.4-16 49.6l0 87.7c27.6-11.8 51.7-29.6 70.4-51.6l66.7-13.3c59.8-12 102.9-64.5 102.9-125.5l0-81.3c0-35.3-28.7-64-64-64l-121.5 0c-34.8-54.2-82.5-96-134.5-96-52.6 0-100.2 41.8-134.9 96zm302.5 64l88.4 0 0 81.3c0 30.5-21.5 56.8-51.4 62.8l-17 3.4c2.9-12.4 4.5-25.4 4.5-38.7 0-31.6-8.9-70.5-24.4-108.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM80 304l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faArrowTrendDown = {\n prefix: 'fas',\n iconName: 'arrow-trend-down',\n icon: [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7-169.4-169.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-176 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30 0 21.3c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192 397.5 166.8c-8.9-4.4-18.7-6.8-28.6-6.8l-80.9 0 0-32 32 0zM96 208l0 86.1-48-21.3 0-64.8 48 0z\"]\n};\nvar faPeopleCarryBox = {\n prefix: 'fas',\n iconName: 'people-carry-box',\n icon: [576, 512, [\"people-carry\"], \"f4ce\", \"M64-32A56 56 0 1 1 64 80 56 56 0 1 1 64-32zM0 171.1c0-32.6 26.5-59.1 59.1-59.1 23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c5.8 8.2 15.1 13.1 25.1 13.4l0-96c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c10-.3 19.3-5.2 25.1-13.4l48.7-68.2c13.6-19.1 35.6-30.4 59.1-30.4 32.6 0 59.1 26.5 59.1 59.1L576 272c0 30.2-14.2 58.7-38.4 76.8l-76.8 57.6c-8.1 6-12.8 15.5-12.8 25.6l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-30.2 14.2-58.7 38.4-76.8l41.6-31.2 0-80.1-2.8 3.9c-18 25.2-47.1 40.2-78.1 40.2L352 288c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-120.4 0c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C177.8 373.3 192 401.8 192 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L38.4 348.8C14.2 330.7 0 302.2 0 272L0 171.1zM0 379.3c3.1 2.7 6.3 5.4 9.6 7.9L64 428 64 512c0 17.7-14.3 32-32 32S0 529.7 0 512L0 379.3zM568 24a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zm8 488c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-84 54.4-40.8c3.3-2.5 6.5-5.1 9.6-7.9L576 512z\"]\n};\nvar faPeopleCarry = faPeopleCarryBox;\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [129681], \"f6c0\", \"M152 256l0-181.8c-24.5 20.5-40 51.4-40 85.8l0 96 40 0zm48 0l48 0 0-205.4c-7.7-1.7-15.8-2.6-24-2.6s-16.3 .9-24 2.6L200 256zM296 74.2l0 181.8 40 0 0-96c0-34.4-15.5-65.2-40-85.8zM32 256l32 0 0-96C64 71.6 135.6 0 224 0S384 71.6 384 160l0 96 32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-256 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L32 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l328 0c48.6 0 88-39.4 88-88S408.6 0 360 0L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l40 0c48.6 0 88-39.4 88-88s-39.4-88-88-88L32 336c-17.7 0-32 14.3-32 32s14.3 32 32 32l136 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M445.9 193c-.1-.4-.2-.9-.2-1.3-15.7-108.4-108.9-191.7-221.7-191.7-85 0-159 47.4-196.9 117.2L283.3 288 456 288 442.9 336 336 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l98.2 0-8.7 32-89.5 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80.6 0c-6.7 19.1-24.8 32-45.3 32L288 464c-17.7 0-32-14.3-32-32l0-104.5-247.5-165C3 182.1 0 202.7 0 224 0 278 19.1 327.5 50.9 366.2 58.9 375.9 64 387.8 64 400.4L64 464c0 26.5 21.5 48 48 48l127.3 0 .7 0 131.3 0c44.9 0 83.8-31.1 93.6-74.9l33.9-150.3c3.3-14.4-.3-29.5-9.7-41L445.9 193zM288 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M512 160l-.1 72.6c0 44.8-17.6 87.1-47.9 118.4-.3-77-40.1-148.4-105.4-189.3l-1.9-1.2c2.5-3.7 2.8-8.6 .4-12.7l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S330 5 336.6 16.5l68 117.8 0 0 0 0 43.3 75 .1-49.3c0-17.7 14.4-32 32-32s32 14.4 32 32zM298.4 124.2c-14.1-8.8-29.8-12.7-45.2-12.1L216.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l67.1 116.2-27-16.9zM211.9 88.5l16.4 28.4c-15.1 5.5-28.6 15.6-38.3 29.7l-19.7-34.2c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l12.5 21.7c-2 8.6-2.5 17.5-1.7 26.1l-4.3 0 0 0-34.4 0-13.7-23.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM228.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C384.7 234.7 416 291.2 416 352l0 8c0 83.9-68.1 152-152 152L88 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L24 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0 0 0 0 0 93.2 0-46.2-28.9c-15-9.4-19.5-29.1-10.2-44.1z\"]\n};\nvar faSignLanguage = faHands;\nvar faSigning = faHands;\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [512, 512, [], \"f490\", \"M495.3 76.6c-4.6-8.7-16.3-9.7-23.3-2.7L297.9 248c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4zM240.7 211.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 40c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM144 224C79.2 224 24.4 266.8 6.3 325.6 3.4 335.1 11 344 20.9 344l246.2 0c9.9 0 17.5-8.9 14.6-18.4-.9-3-1.9-5.9-3-8.7-37.4-18.1-68-48-87-84.8-14.9-5.2-30.9-8.1-47.6-8.1zM281.7 410.4c2.9-9.5-4.7-18.4-14.6-18.4L20.9 392C11 392 3.4 400.9 6.3 410.4 24.4 469.2 79.2 512 144 512s119.6-42.8 137.7-101.6z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32 0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32l-21.8 0c-28.3 0-53.2 18.5-61.3 45.6L2.4 440.2C.8 445.4 0 450.8 0 456.2 0 487 25 512 55.8 512l400.4 0c30.8 0 55.8-25 55.8-55.8 0-5.4-.8-10.8-2.4-16l-80-266.5c-8.1-27.1-33-45.6-61.3-45.6l-21.8 0z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [512, 512, [127922], \"f522\", \"M141.4 2.3C103-8 63.5 14.8 53.3 53.2L2.5 242.7C-7.8 281.1 15 320.6 53.4 330.9l189.5 50.8c38.4 10.3 77.9-12.5 88.2-50.9l50.8-189.5c10.3-38.4-12.5-77.9-50.9-88.2L141.4 2.3zm23 205.7a32 32 0 1 1 55.4-32 32 32 0 1 1 -55.4 32zM79.2 220.3a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm185 96.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zm9-208.4a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm-121 14.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zM418 192L377.4 343.2c-17.2 64-83 102-147 84.9l-38.3-10.3 0 30.2c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L418 192z\"]\n};\nvar faShopSlash = {\n prefix: 'fas',\n iconName: 'shop-slash',\n icon: [576, 512, [\"store-alt-slash\"], \"e070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-190.3c26.8-1.9 48-24.3 48-51.6 0-8-1.9-16-5.5-23.2L497.7 67.4C486.8 45.7 464.7 32 440.4 32L135.6 32c-10.7 0-21 2.7-30.2 7.6L41-24.9zM321.8 256L448 256 448 382.2 321.8 256zM352 421.8l-64-64 0 10.2c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16l0-112 58.2 0-134.8-134.8-29.9 59.9c-3.6 7.2-5.5 15.1-5.5 23.2 0 27.3 21.2 49.7 48 51.6L64 432c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-10.2z\"]\n};\nvar faStoreAltSlash = faShopSlash;\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [384, 512, [\"sort-desc\"], \"f0dd\", \"M32 288c-12.9 0-24.6 7.8-29.6 19.8S.2 333.5 9.4 342.6l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288z\"]\n};\nvar faSortDesc = faSortDown;\nvar faPesetaSign = {\n prefix: 'fas',\n iconName: 'peseta-sign',\n icon: [448, 512, [], \"e221\", \"M112 32C94.3 32 80 46.3 80 64l0 104-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 232c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c80.2 0 146.6-59 158.2-136l25.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-25.8 0C386.6 91 320.2 32 240 32L112 32zM333 168l-189 0 0-72 96 0c44.7 0 82.3 30.6 93 72zM144 216l189 0c-10.7 41.4-48.2 72-93 72l-96 0 0-72z\"]\n};\nvar faTabletScreenButton = {\n prefix: 'fas',\n iconName: 'tablet-screen-button',\n icon: [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 432a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64l-320 0 0 288 320 0 0-288z\"]\n};\nvar faTabletAlt = faTabletScreenButton;\nvar faHandHoldingDollar = {\n prefix: 'fas',\n iconName: 'hand-holding-dollar',\n icon: [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M288-16c-13.3 0-24 10.7-24 24l0 12-1.8 0c-36.6 0-66.2 29.7-66.2 66.2 0 33.4 24.9 61.6 58 65.7l61 7.6c5.1 .6 9 5 9 10.2 0 5.7-4.6 10.2-10.2 10.2L240 180c-15.5 0-28 12.5-28 28s12.5 28 28 28l24 0 0 12c0 13.3 10.7 24 24 24s24-10.7 24-24l0-12 1.8 0c36.6 0 66.2-29.7 66.2-66.2 0-33.4-24.9-61.6-58-65.7l-61-7.6c-5.1-.6-9-5-9-10.2 0-5.7 4.6-10.2 10.2-10.2L328 76c15.5 0 28-12.5 28-28s-12.5-28-28-28l-16 0 0-12c0-13.3-10.7-24-24-24zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faHandHoldingUsd = faHandHoldingDollar;\nvar faShield = {\n prefix: 'fas',\n iconName: 'shield',\n icon: [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0z\"]\n};\nvar faShieldBlank = faShield;\nvar faFaceLaugh = {\n prefix: 'fas',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faHandsHolding = {\n prefix: 'fas',\n iconName: 'hands-holding',\n icon: [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0c-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c24.1 24.1 39.9 39.9 47.2 47.2 11 11 9.2 29.2-3.7 37.8-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 104zm480 0l0 160.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1-12.9-8.6-14.7-26.9-3.7-37.8 7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-24.1 24.1-39.9 39.9-47.2 47.2l0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"]\n};\nvar faCartShopping = {\n prefix: 'fas',\n iconName: 'cart-shopping',\n icon: [640, 512, [128722, \"shopping-cart\"], \"f07a\", \"M24-16C10.7-16 0-5.3 0 8S10.7 32 24 32l45.3 0c3.9 0 7.2 2.8 7.9 6.6l52.1 286.3c6.2 34.2 36 59.1 70.8 59.1L456 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-255.9 0c-11.6 0-21.5-8.3-23.6-19.7l-5.1-28.3 303.6 0c30.8 0 57.2-21.9 62.9-52.2L568.9 69.9C572.6 50.2 557.5 32 537.4 32l-412.7 0-.4-2c-4.8-26.6-28-46-55.1-46L24-16zM208 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faShoppingCart = faCartShopping;\nvar faOctagon = {\n prefix: 'fas',\n iconName: 'octagon',\n icon: [512, 512, [128721], \"f306\", \"M188.6 .1c-17 0-33.3 6.7-45.3 18.7L19.2 143C7.2 155 .5 171.2 .5 188.2l0 135.6c0 17 6.7 33.3 18.7 45.3L143.4 493.2c12 12 28.3 18.7 45.3 18.7l135.6 0c17 0 33.3-6.7 45.3-18.7L493.6 369c12-12 18.7-28.3 18.7-45.3l0-135.6c0-17-6.7-33.3-18.7-45.3L369.5 18.8c-12-12-28.3-18.7-45.3-18.7L188.6 .1z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2 20.6 0 38.2 13 45 31.2 8.8-9.3 21.2-15.2 35-15.2 25.3 0 46 19.5 47.9 44.3 8.5-7.7 19.8-12.3 32.1-12.3 26.5 0 48 21.5 48 48l0 112c0 70.7-57.3 128-128 128l-85.3 0c-5 0-9.9-.3-14.7-1-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7 0-322.7zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144l80 0c39.8 0 72 32.2 72 72 0 28.9-17 53.8-41.6 65.3l30.2 50.3c6.8 11.4 3.1 26.1-8.2 32.9s-26.1 3.1-32.9-8.2l-41-68.3-34.4 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24zm72 96l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0 48 48 0z\"]\n};\nvar faHouseSignal = {\n prefix: 'fas',\n iconName: 'house-signal',\n icon: [576, 512, [], \"e012\", \"M515.9 240l-19.9 0 0 144c0 35.3-28.7 64-64 64l-137 0c-24-91.7-93.5-165-183-194.3l0-13.7-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L276.5-4.9C283.9-12 293.7-16 304-16s20.1 4 27.5 11.1L535.4 191.7c5.5 5.3 8.6 12.6 8.6 20.2 0 15.5-12.6 28.1-28.1 28.1zM280 192c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0zM24 288c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 408c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24z\"]\n};\nvar faBangladeshiTakaSign = {\n prefix: 'fas',\n iconName: 'bangladeshi-taka-sign',\n icon: [384, 512, [], \"e2e6\", \"M36 32.3C18.4 30.1 2.4 42.5 .3 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8l0 31.5-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 176c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-176 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-31.5C128 80.1 92 39.2 43.9 33.2l-7.9-1z\"]\n};\nvar icons = {\n fa0: fa0,\n fa1: fa1,\n fa2: fa2,\n fa3: fa3,\n fa4: fa4,\n fa5: fa5,\n fa6: fa6,\n fa7: fa7,\n fa8: fa8,\n fa9: fa9,\n faDollarSign: faDollarSign,\n faDollar: faDollar,\n faUsd: faUsd,\n faDog: faDog,\n faTruckMoving: faTruckMoving,\n faRotate: faRotate,\n faSyncAlt: faSyncAlt,\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faAlignJustify: faAlignJustify,\n faCalendarCheck: faCalendarCheck,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faKitchenSet: faKitchenSet,\n faDna: faDna,\n faChildReaching: faChildReaching,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faMeteor: faMeteor,\n faGears: faGears,\n faCogs: faCogs,\n faFileCirclePlus: faFileCirclePlus,\n faIcicles: faIcicles,\n faArrowTrendUp: faArrowTrendUp,\n faHexagonNodesBolt: faHexagonNodesBolt,\n faQuestion: faQuestion,\n faHandsBound: faHandsBound,\n faPersonWalkingLuggage: faPersonWalkingLuggage,\n faFileArrowDown: faFileArrowDown,\n faFileDownload: faFileDownload,\n faPersonBooth: faPersonBooth,\n faLocust: faLocust,\n faRightLong: faRightLong,\n faLongArrowAltRight: faLongArrowAltRight,\n faTruckDroplet: faTruckDroplet,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandPointLeft: faHandPointLeft,\n faCalculator: faCalculator,\n faMinus: faMinus,\n faSubtract: faSubtract,\n faArrowUpZA: faArrowUpZA,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faMicrophoneSlash: faMicrophoneSlash,\n faSquarePen: faSquarePen,\n faPenSquare: faPenSquare,\n faPencilSquare: faPencilSquare,\n faHandFist: faHandFist,\n faFistRaised: faFistRaised,\n faCommentSms: faCommentSms,\n faSms: faSms,\n faSimCard: faSimCard,\n faScaleBalanced: faScaleBalanced,\n faBalanceScale: faBalanceScale,\n faCar: faCar,\n faAutomobile: faAutomobile,\n faCropSimple: faCropSimple,\n faCropAlt: faCropAlt,\n faMedal: faMedal,\n faScroll: faScroll,\n faFileExcel: faFileExcel,\n faFilter: faFilter,\n faDrum: faDrum,\n faMapPin: faMapPin,\n faScaleUnbalancedFlip: faScaleUnbalancedFlip,\n faBalanceScaleRight: faBalanceScaleRight,\n faArrowsToCircle: faArrowsToCircle,\n faEnvelope: faEnvelope,\n faBaby: faBaby,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faTent: faTent,\n faA: faA,\n faParachuteBox: faParachuteBox,\n faCartArrowDown: faCartArrowDown,\n faBridgeCircleExclamation: faBridgeCircleExclamation,\n faCloudArrowUp: faCloudArrowUp,\n faCloudUpload: faCloudUpload,\n faCloudUploadAlt: faCloudUploadAlt,\n faAt: faAt,\n faIndianRupeeSign: faIndianRupeeSign,\n faIndianRupee: faIndianRupee,\n faInr: faInr,\n faTruck: faTruck,\n faChalkboardUser: faChalkboardUser,\n faChalkboardTeacher: faChalkboardTeacher,\n faUserCheck: faUserCheck,\n faUserNinja: faUserNinja,\n faPlantWilt: faPlantWilt,\n faWeightScale: faWeightScale,\n faWeight: faWeight,\n faCaretRight: faCaretRight,\n faFlorinSign: faFlorinSign,\n faBell: faBell,\n faLariSign: faLariSign,\n faMillSign: faMillSign,\n faPersonSnowboarding: faPersonSnowboarding,\n faSnowboarding: faSnowboarding,\n faTty: faTty,\n faTeletype: faTeletype,\n faUsersRectangle: faUsersRectangle,\n faMobile: faMobile,\n faMobileAndroid: faMobileAndroid,\n faMobilePhone: faMobilePhone,\n faArrowsTurnToDots: faArrowsTurnToDots,\n faExclamation: faExclamation,\n faChurch: faChurch,\n faToggleOff: faToggleOff,\n faShoePrints: faShoePrints,\n faFileCircleExclamation: faFileCircleExclamation,\n faWallet: faWallet,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faTrophy: faTrophy,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faBacteria: faBacteria,\n faEarDeaf: faEarDeaf,\n faDeaf: faDeaf,\n faDeafness: faDeafness,\n faHardOfHearing: faHardOfHearing,\n faPeopleArrows: faPeopleArrows,\n faPeopleArrowsLeftRight: faPeopleArrowsLeftRight,\n faHandsClapping: faHandsClapping,\n faVirusCovidSlash: faVirusCovidSlash,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faDiamondTurnRight: faDiamondTurnRight,\n faDirections: faDirections,\n faHandPointUp: faHandPointUp,\n faBezierCurve: faBezierCurve,\n faPersonHalfDress: faPersonHalfDress,\n faSquarePollHorizontal: faSquarePollHorizontal,\n faPollH: faPollH,\n faSchoolCircleXmark: faSchoolCircleXmark,\n faHandLizard: faHandLizard,\n faChalkboard: faChalkboard,\n faBlackboard: faBlackboard,\n faUpRightFromSquare: faUpRightFromSquare,\n faExternalLinkAlt: faExternalLinkAlt,\n faSquareFull: faSquareFull,\n faClover: faClover,\n faTeethOpen: faTeethOpen,\n faBarsStaggered: faBarsStaggered,\n faReorder: faReorder,\n faStream: faStream,\n faWarehouse: faWarehouse,\n faSwatchbook: faSwatchbook,\n faCampground: faCampground,\n faPersonWalkingArrowRight: faPersonWalkingArrowRight,\n faGlasses: faGlasses,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faMemory: faMemory,\n faGift: faGift,\n faMoneyBillWheat: faMoneyBillWheat,\n faDungeon: faDungeon,\n faSuitcaseMedical: faSuitcaseMedical,\n faMedkit: faMedkit,\n faPersonCane: faPersonCane,\n faGauge: faGauge,\n faDashboard: faDashboard,\n faGaugeMed: faGaugeMed,\n faTachometerAltAverage: faTachometerAltAverage,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faToolbox: faToolbox,\n faPowerOff: faPowerOff,\n faSignal: faSignal,\n faSignal5: faSignal5,\n faSignalPerfect: faSignalPerfect,\n faArrowsSpin: faArrowsSpin,\n faJoint: faJoint,\n faBraille: faBraille,\n faBasketShopping: faBasketShopping,\n faShoppingBasket: faShoppingBasket,\n faBridge: faBridge,\n faPlaneArrival: faPlaneArrival,\n faCashRegister: faCashRegister,\n faRing: faRing,\n faAquarius: faAquarius,\n faShareNodes: faShareNodes,\n faShareAlt: faShareAlt,\n faPersonCircleExclamation: faPersonCircleExclamation,\n faBinoculars: faBinoculars,\n faKipSign: faKipSign,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faRankingStar: faRankingStar,\n faUserTie: faUserTie,\n faEllipsis: faEllipsis,\n faEllipsisH: faEllipsisH,\n faStoreSlash: faStoreSlash,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faDisplay: faDisplay,\n faIcons: faIcons,\n faHeartMusicCameraBolt: faHeartMusicCameraBolt,\n faRulerVertical: faRulerVertical,\n faMapLocationDot: faMapLocationDot,\n faMapMarkedAlt: faMapMarkedAlt,\n faHeartCrack: faHeartCrack,\n faHeartBroken: faHeartBroken,\n faCow: faCow,\n faRss: faRss,\n faFeed: faFeed,\n faMagnifyingGlass: faMagnifyingGlass,\n faSearch: faSearch,\n faCloudMoon: faCloudMoon,\n faBoxesStacked: faBoxesStacked,\n faBoxes: faBoxes,\n faBoxesAlt: faBoxesAlt,\n faCodeBranch: faCodeBranch,\n faBan: faBan,\n faCancel: faCancel,\n faJugDetergent: faJugDetergent,\n faReply: faReply,\n faMailReply: faMailReply,\n faSunPlantWilt: faSunPlantWilt,\n faBacterium: faBacterium,\n faRecordVinyl: faRecordVinyl,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faToiletsPortable: faToiletsPortable,\n faO: faO,\n faPalette: faPalette,\n faUnlock: faUnlock,\n faEarListen: faEarListen,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faCodePullRequest: faCodePullRequest,\n faKey: faKey,\n faSkull: faSkull,\n faMarsStrokeUp: faMarsStrokeUp,\n faMarsStrokeV: faMarsStrokeV,\n faFireFlameSimple: faFireFlameSimple,\n faBurn: faBurn,\n faTree: faTree,\n faSmog: faSmog,\n faS: faS,\n faJedi: faJedi,\n faPersonHiking: faPersonHiking,\n faHiking: faHiking,\n faArrowsUpToLine: faArrowsUpToLine,\n faMarsDouble: faMarsDouble,\n faThermometer: faThermometer,\n faPaintbrush: faPaintbrush,\n faPaintBrush: faPaintBrush,\n faNeuter: faNeuter,\n faSquarePhoneFlip: faSquarePhoneFlip,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faCommentDollar: faCommentDollar,\n faHippo: faHippo,\n faBowlFood: faBowlFood,\n faSquareVirus: faSquareVirus,\n faCloudSunRain: faCloudSunRain,\n faArrowRightLong: faArrowRightLong,\n faLongArrowRight: faLongArrowRight,\n faBuildingUn: faBuildingUn,\n faTemperatureLow: faTemperatureLow,\n faDoorOpen: faDoorOpen,\n faAlignLeft: faAlignLeft,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faUsersRays: faUsersRays,\n faRainbow: faRainbow,\n faSitemap: faSitemap,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faSortUp: faSortUp,\n faSortAsc: faSortAsc,\n faEye: faEye,\n faCaretLeft: faCaretLeft,\n faAppleWhole: faAppleWhole,\n faAppleAlt: faAppleAlt,\n faScrollTorah: faScrollTorah,\n faTorah: faTorah,\n faHouseLock: faHouseLock,\n faArrowsLeftRightToLine: faArrowsLeftRightToLine,\n faTrash: faTrash,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faFax: faFax,\n faPersonCirclePlus: faPersonCirclePlus,\n faHamsa: faHamsa,\n faPersonCircleQuestion: faPersonCircleQuestion,\n faClipboardCheck: faClipboardCheck,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faReceipt: faReceipt,\n faEquals: faEquals,\n faChevronUp: faChevronUp,\n faVirusSlash: faVirusSlash,\n faSlash: faSlash,\n faExpand: faExpand,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faTableColumns: faTableColumns,\n faColumns: faColumns,\n faPersonShelter: faPersonShelter,\n faCircleNotch: faCircleNotch,\n faWater: faWater,\n faDeleteLeft: faDeleteLeft,\n faBackspace: faBackspace,\n faBroomBall: faBroomBall,\n faQuidditch: faQuidditch,\n faQuidditchBroomBall: faQuidditchBroomBall,\n faJ: faJ,\n faShuttleSpace: faShuttleSpace,\n faSpaceShuttle: faSpaceShuttle,\n faYinYang: faYinYang,\n faStop: faStop,\n faTrowel: faTrowel,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faTemperatureHigh: faTemperatureHigh,\n faGreaterThan: faGreaterThan,\n faCrutch: faCrutch,\n faSeptagon: faSeptagon,\n faHeptagon: faHeptagon,\n faStreetView: faStreetView,\n faWaveSquare: faWaveSquare,\n faAngleLeft: faAngleLeft,\n faScrewdriver: faScrewdriver,\n faTractor: faTractor,\n faBridgeCircleXmark: faBridgeCircleXmark,\n faVials: faVials,\n faStethoscope: faStethoscope,\n faPodcast: faPodcast,\n faArrowUpRightDots: faArrowUpRightDots,\n faChessQueen: faChessQueen,\n faAnchorCircleExclamation: faAnchorCircleExclamation,\n faEllipsisVertical: faEllipsisVertical,\n faEllipsisV: faEllipsisV,\n faHeartCircleExclamation: faHeartCircleExclamation,\n faBuildingCircleExclamation: faBuildingCircleExclamation,\n faPersonArrowUpFromLine: faPersonArrowUpFromLine,\n faNotEqual: faNotEqual,\n faTrainTram: faTrainTram,\n faPlaneDeparture: faPlaneDeparture,\n faRightToBracket: faRightToBracket,\n faSignInAlt: faSignInAlt,\n faSdCard: faSdCard,\n faHouseCircleExclamation: faHouseCircleExclamation,\n faShekelSign: faShekelSign,\n faIls: faIls,\n faShekel: faShekel,\n faSheqel: faSheqel,\n faSheqelSign: faSheqelSign,\n faRadio: faRadio,\n faHandDots: faHandDots,\n faAllergies: faAllergies,\n faBookSkull: faBookSkull,\n faBookDead: faBookDead,\n faUnlockKeyhole: faUnlockKeyhole,\n faUnlockAlt: faUnlockAlt,\n faFileArrowUp: faFileArrowUp,\n faFileUpload: faFileUpload,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faEarthEurope: faEarthEurope,\n faGlobeEurope: faGlobeEurope,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faCircleHalfStroke: faCircleHalfStroke,\n faAdjust: faAdjust,\n faPersonMilitaryToPerson: faPersonMilitaryToPerson,\n faTableCellsColumnLock: faTableCellsColumnLock,\n faTruckFieldUn: faTruckFieldUn,\n faClock: faClock,\n faClockFour: faClockFour,\n faBook: faBook,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faCloudMeatball: faCloudMeatball,\n faChartArea: faChartArea,\n faAreaChart: faAreaChart,\n faRupiahSign: faRupiahSign,\n faTextWidth: faTextWidth,\n faSatellite: faSatellite,\n faMagnifyingGlassMinus: faMagnifyingGlassMinus,\n faSearchMinus: faSearchMinus,\n faPeopleGroup: faPeopleGroup,\n faSquareBinary: faSquareBinary,\n faMasksTheater: faMasksTheater,\n faTheaterMasks: faTheaterMasks,\n faCartPlus: faCartPlus,\n faHandsAslInterpreting: faHandsAslInterpreting,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAslInterpreting: faAslInterpreting,\n faHandsAmericanSignLanguageInterpreting: faHandsAmericanSignLanguageInterpreting,\n faTableCellsRowUnlock: faTableCellsRowUnlock,\n faRocket: faRocket,\n faShrimp: faShrimp,\n faTengeSign: faTengeSign,\n faTenge: faTenge,\n faHouseChimneyMedical: faHouseChimneyMedical,\n faClinicMedical: faClinicMedical,\n faUsersSlash: faUsersSlash,\n faPaperPlane: faPaperPlane,\n faBookAtlas: faBookAtlas,\n faAtlas: faAtlas,\n faTable: faTable,\n faHeart: faHeart,\n faCircleChevronUp: faCircleChevronUp,\n faChevronCircleUp: faChevronCircleUp,\n faBatteryHalf: faBatteryHalf,\n faBattery3: faBattery3,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faHandcuffs: faHandcuffs,\n faHatCowboySide: faHatCowboySide,\n faIndustry: faIndustry,\n faLinesLeaning: faLinesLeaning,\n faPassport: faPassport,\n faInfinity: faInfinity,\n faClone: faClone,\n faForward: faForward,\n faM: faM,\n faRoadSpikes: faRoadSpikes,\n faMountain: faMountain,\n faChess: faChess,\n faTemperatureThreeQuarters: faTemperatureThreeQuarters,\n faTemperature3: faTemperature3,\n faThermometer3: faThermometer3,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faB: faB,\n faShieldVirus: faShieldVirus,\n faLitecoinSign: faLitecoinSign,\n faDiceD6: faDiceD6,\n faGripLinesVertical: faGripLinesVertical,\n faGolfBallTee: faGolfBallTee,\n faGolfBall: faGolfBall,\n faHexagon: faHexagon,\n faFolderOpen: faFolderOpen,\n faKaaba: faKaaba,\n faHandHolding: faHandHolding,\n faSingleQuoteRight: faSingleQuoteRight,\n faBottleDroplet: faBottleDroplet,\n faWindowMinimize: faWindowMinimize,\n faChevronRight: faChevronRight,\n faEgg: faEgg,\n faLandmarkDome: faLandmarkDome,\n faLandmarkAlt: faLandmarkAlt,\n faWorm: faWorm,\n faUserInjured: faUserInjured,\n faStrikethrough: faStrikethrough,\n faBlog: faBlog,\n faStopwatch20: faStopwatch20,\n faTruckPickup: faTruckPickup,\n faSeedling: faSeedling,\n faSprout: faSprout,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faStarHalf: faStarHalf,\n faPhotoFilm: faPhotoFilm,\n faPhotoVideo: faPhotoVideo,\n faPictureInPicture: faPictureInPicture,\n faPumpMedical: faPumpMedical,\n faFire: faFire,\n faMagnifyingGlassPlus: faMagnifyingGlassPlus,\n faSearchPlus: faSearchPlus,\n faFlask: faFlask,\n faAlignRight: faAlignRight,\n faCableCar: faCableCar,\n faTram: faTram,\n faKitMedical: faKitMedical,\n faFirstAid: faFirstAid,\n faGripLines: faGripLines,\n faBurger: faBurger,\n faHamburger: faHamburger,\n faSnowman: faSnowman,\n faHotel: faHotel,\n faPrint: faPrint,\n faVolleyball: faVolleyball,\n faVolleyballBall: faVolleyballBall,\n faTrafficLight: faTrafficLight,\n faPlaneCircleCheck: faPlaneCircleCheck,\n faUsers: faUsers,\n faCertificate: faCertificate,\n faAlarmClock: faAlarmClock,\n faHelicopterSymbol: faHelicopterSymbol,\n faHouseChimneyCrack: faHouseChimneyCrack,\n faHouseDamage: faHouseDamage,\n faPersonMilitaryPointing: faPersonMilitaryPointing,\n faDatabase: faDatabase,\n faNewspaper: faNewspaper,\n faCloudRain: faCloudRain,\n faMaximize: faMaximize,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faLocationArrow: faLocationArrow,\n faCity: faCity,\n faXRay: faXRay,\n faUmbrellaBeach: faUmbrellaBeach,\n faArrowRightToBracket: faArrowRightToBracket,\n faSignIn: faSignIn,\n faHeadset: faHeadset,\n faSplotch: faSplotch,\n faUpLong: faUpLong,\n faLongArrowAltUp: faLongArrowAltUp,\n faHexagonNodes: faHexagonNodes,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faPersonHarassing: faPersonHarassing,\n faMoneyBillTrendUp: faMoneyBillTrendUp,\n faPenRuler: faPenRuler,\n faPencilRuler: faPencilRuler,\n faRepeat: faRepeat,\n faBone: faBone,\n faFireFlameCurved: faFireFlameCurved,\n faFireAlt: faFireAlt,\n faBusSimple: faBusSimple,\n faBusAlt: faBusAlt,\n faVenusMars: faVenusMars,\n faBlender: faBlender,\n faU: faU,\n faShare: faShare,\n faMailForward: faMailForward,\n faPhoneFlip: faPhoneFlip,\n faPhoneAlt: faPhoneAlt,\n faToiletPortable: faToiletPortable,\n faPersonPregnant: faPersonPregnant,\n faLessThan: faLessThan,\n faSuperscript: faSuperscript,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faArrowsUpDown: faArrowsUpDown,\n faArrowsV: faArrowsV,\n faPooStorm: faPooStorm,\n faPooBolt: faPooBolt,\n faVideoSlash: faVideoSlash,\n faSquareXmark: faSquareXmark,\n faTimesSquare: faTimesSquare,\n faXmarkSquare: faXmarkSquare,\n faHandHoldingDroplet: faHandHoldingDroplet,\n faHandHoldingWater: faHandHoldingWater,\n faWonSign: faWonSign,\n faKrw: faKrw,\n faWon: faWon,\n faObjectUngroup: faObjectUngroup,\n faComment: faComment,\n faHillAvalanche: faHillAvalanche,\n faArrowsToEye: faArrowsToEye,\n faSnowplow: faSnowplow,\n faChartGantt: faChartGantt,\n faVideo: faVideo,\n faVideoCamera: faVideoCamera,\n faChessPawn: faChessPawn,\n faSynagogue: faSynagogue,\n faBuildingCircleCheck: faBuildingCircleCheck,\n faCalendarPlus: faCalendarPlus,\n faWheelchairMove: faWheelchairMove,\n faWheelchairAlt: faWheelchairAlt,\n faUserShield: faUserShield,\n faBold: faBold,\n faHeartPulse: faHeartPulse,\n faHeartbeat: faHeartbeat,\n faSquareRootVariable: faSquareRootVariable,\n faSquareRootAlt: faSquareRootAlt,\n faHandsBubbles: faHandsBubbles,\n faHandsWash: faHandsWash,\n faMarker: faMarker,\n faClipboard: faClipboard,\n faPlaceOfWorship: faPlaceOfWorship,\n faCannabis: faCannabis,\n faPeopleRoof: faPeopleRoof,\n faDisease: faDisease,\n faBookBible: faBookBible,\n faBible: faBible,\n faChessBoard: faChessBoard,\n faMars: faMars,\n faLaptop: faLaptop,\n faUserXmark: faUserXmark,\n faUserTimes: faUserTimes,\n faFlagUsa: faFlagUsa,\n faHandMiddleFinger: faHandMiddleFinger,\n faMortarPestle: faMortarPestle,\n faHeadSideCough: faHeadSideCough,\n faPlaneLock: faPlaneLock,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBattery4: faBattery4,\n faFrancSign: faFrancSign,\n faFilterCircleDollar: faFilterCircleDollar,\n faFunnelDollar: faFunnelDollar,\n faCheese: faCheese,\n faCircleH: faCircleH,\n faHospitalSymbol: faHospitalSymbol,\n faSchool: faSchool,\n faDiceFive: faDiceFive,\n faTornado: faTornado,\n faJetFighter: faJetFighter,\n faFighterJet: faFighterJet,\n faThumbsDown: faThumbsDown,\n faBroom: faBroom,\n faFileImport: faFileImport,\n faArrowRightToFile: faArrowRightToFile,\n faUtensils: faUtensils,\n faCutlery: faCutlery,\n faIdBadge: faIdBadge,\n faSpider: faSpider,\n faMobileRetro: faMobileRetro,\n faSignsPost: faSignsPost,\n faMapSigns: faMapSigns,\n faGroupArrowsRotate: faGroupArrowsRotate,\n faArrowsSplitUpAndLeft: faArrowsSplitUpAndLeft,\n faFillDrip: faFillDrip,\n faShieldHeart: faShieldHeart,\n faPersonSkiingNordic: faPersonSkiingNordic,\n faSkiingNordic: faSkiingNordic,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faBath: faBath,\n faBathtub: faBathtub,\n faChessBishop: faChessBishop,\n faPrescriptionBottleMedical: faPrescriptionBottleMedical,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faDrawPolygon: faDrawPolygon,\n faVectorPolygon: faVectorPolygon,\n faICursor: faICursor,\n faHeartCirclePlus: faHeartCirclePlus,\n faShieldDog: faShieldDog,\n faGreaterThanEqual: faGreaterThanEqual,\n faEnvelopeOpen: faEnvelopeOpen,\n faMound: faMound,\n faVoicemail: faVoicemail,\n faVest: faVest,\n faAudioDescription: faAudioDescription,\n faW: faW,\n faEyeDropper: faEyeDropper,\n faEyeDropperEmpty: faEyeDropperEmpty,\n faEyedropper: faEyedropper,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faTrailer: faTrailer,\n faTurkishLiraSign: faTurkishLiraSign,\n faTry: faTry,\n faTurkishLira: faTurkishLira,\n faVolcano: faVolcano,\n faWandSparkles: faWandSparkles,\n faMicrophone: faMicrophone,\n faCrown: faCrown,\n faTentArrowTurnLeft: faTentArrowTurnLeft,\n faTruckFast: faTruckFast,\n faShippingFast: faShippingFast,\n faUserPen: faUserPen,\n faUserEdit: faUserEdit,\n faUserClock: faUserClock,\n faShower: faShower,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faMapLocation: faMapLocation,\n faMapMarked: faMapMarked,\n faPenFancy: faPenFancy,\n faEuroSign: faEuroSign,\n faEur: faEur,\n faEuro: faEuro,\n faHouseCircleXmark: faHouseCircleXmark,\n faLiraSign: faLiraSign,\n faYenSign: faYenSign,\n faCny: faCny,\n faJpy: faJpy,\n faRmb: faRmb,\n faYen: faYen,\n faBoxOpen: faBoxOpen,\n faTruckField: faTruckField,\n faLocationPinLock: faLocationPinLock,\n faPersonPraying: faPersonPraying,\n faPray: faPray,\n faClipboardList: faClipboardList,\n faSackDollar: faSackDollar,\n faMountainSun: faMountainSun,\n faArrowUpWideShort: faArrowUpWideShort,\n faSortAmountUp: faSortAmountUp,\n faUsersLine: faUsersLine,\n faStarOfDavid: faStarOfDavid,\n faNotesMedical: faNotesMedical,\n faAustralSign: faAustralSign,\n faClipboardUser: faClipboardUser,\n faFileImage: faFileImage,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faVial: faVial,\n faHelicopter: faHelicopter,\n faMitten: faMitten,\n faGasPump: faGasPump,\n faEnvelopeCircleCheck: faEnvelopeCircleCheck,\n faPersonSkating: faPersonSkating,\n faSkating: faSkating,\n faSun: faSun,\n faBaseball: faBaseball,\n faBaseballBall: faBaseballBall,\n faImage: faImage,\n faNotdef: faNotdef,\n faBasketball: faBasketball,\n faBasketballBall: faBasketballBall,\n faPencil: faPencil,\n faPencilAlt: faPencilAlt,\n faPersonWalkingArrowLoopLeft: faPersonWalkingArrowLoopLeft,\n faDiceSix: faDiceSix,\n faAnglesDown: faAnglesDown,\n faAngleDoubleDown: faAngleDoubleDown,\n faSyringe: faSyringe,\n faWheatAwn: faWheatAwn,\n faWheatAlt: faWheatAlt,\n faPlaneUp: faPlaneUp,\n faAlignCenter: faAlignCenter,\n faHockeyPuck: faHockeyPuck,\n faCircleArrowLeft: faCircleArrowLeft,\n faArrowCircleLeft: faArrowCircleLeft,\n faPlugCircleBolt: faPlugCircleBolt,\n faRestroom: faRestroom,\n faAnchorLock: faAnchorLock,\n faTimeline: faTimeline,\n faLightbulb: faLightbulb,\n faCircleArrowRight: faCircleArrowRight,\n faArrowCircleRight: faArrowCircleRight,\n faMarsAndVenus: faMarsAndVenus,\n faNetworkWired: faNetworkWired,\n faBuildingShield: faBuildingShield,\n faCode: faCode,\n faFeatherPointed: faFeatherPointed,\n faFeatherAlt: faFeatherAlt,\n faFileCircleQuestion: faFileCircleQuestion,\n faSignature: faSignature,\n faEarthAmericas: faEarthAmericas,\n faEarth: faEarth,\n faEarthAmerica: faEarthAmerica,\n faGlobeAmericas: faGlobeAmericas,\n faCarrot: faCarrot,\n faTemperatureFull: faTemperatureFull,\n faTemperature4: faTemperature4,\n faThermometer4: faThermometer4,\n faThermometerFull: faThermometerFull,\n faTableCellsRowLock: faTableCellsRowLock,\n faBoltLightning: faBoltLightning,\n faCloudShowersWater: faCloudShowersWater,\n faArrowUpLong: faArrowUpLong,\n faLongArrowUp: faLongArrowUp,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faAngleRight: faAngleRight,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faArrowUpFromGroundWater: faArrowUpFromGroundWater,\n faMap: faMap,\n faUserPlus: faUserPlus,\n faVenus: faVenus,\n faDiagramSuccessor: faDiagramSuccessor,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faDiagramProject: faDiagramProject,\n faProjectDiagram: faProjectDiagram,\n faTerminal: faTerminal,\n faHouseFire: faHouseFire,\n faMask: faMask,\n faHurricane: faHurricane,\n faEarthAfrica: faEarthAfrica,\n faGlobeAfrica: faGlobeAfrica,\n faThumbtack: faThumbtack,\n faThumbTack: faThumbTack,\n faHandPointDown: faHandPointDown,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faTemperatureEmpty: faTemperatureEmpty,\n faTemperature0: faTemperature0,\n faThermometer0: faThermometer0,\n faThermometerEmpty: faThermometerEmpty,\n faBorderNone: faBorderNone,\n faHighlighter: faHighlighter,\n faMoneyBillWave: faMoneyBillWave,\n faToiletPaperSlash: faToiletPaperSlash,\n faFileShield: faFileShield,\n faTextHeight: faTextHeight,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faFileSignature: faFileSignature,\n faBuildingWheat: faBuildingWheat,\n faPlugCircleMinus: faPlugCircleMinus,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faCirclePlus: faCirclePlus,\n faPlusCircle: faPlusCircle,\n faBrazilianRealSign: faBrazilianRealSign,\n faStarAndCrescent: faStarAndCrescent,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faHospitalUser: faHospitalUser,\n faArrowDownUpLock: faArrowDownUpLock,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faHollyBerry: faHollyBerry,\n faVenusDouble: faVenusDouble,\n faClipboardQuestion: faClipboardQuestion,\n faHotdog: faHotdog,\n faArrowUpFromBracket: faArrowUpFromBracket,\n faMicroscope: faMicroscope,\n faCloud: faCloud,\n faBaseballBatBall: faBaseballBatBall,\n faCarRear: faCarRear,\n faCarAlt: faCarAlt,\n faThumbtackSlash: faThumbtackSlash,\n faThumbTackSlash: faThumbTackSlash,\n faPlusMinus: faPlusMinus,\n faHouseCircleCheck: faHouseCircleCheck,\n faCalendarDay: faCalendarDay,\n faLibra: faLibra,\n faCircle: faCircle,\n faMobileVibrate: faMobileVibrate,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faUsersBetweenLines: faUsersBetweenLines,\n faHouseMedicalCircleXmark: faHouseMedicalCircleXmark,\n faTableList: faTableList,\n faThList: faThList,\n faFlaskVial: faFlaskVial,\n faCircleExclamation: faCircleExclamation,\n faExclamationCircle: faExclamationCircle,\n faTaxi: faTaxi,\n faCab: faCab,\n faTextSlash: faTextSlash,\n faRemoveFormat: faRemoveFormat,\n faPeoplePulling: faPeoplePulling,\n faBackward: faBackward,\n faCarBurst: faCarBurst,\n faCarCrash: faCarCrash,\n faLink: faLink,\n faChain: faChain,\n faBackwardStep: faBackwardStep,\n faStepBackward: faStepBackward,\n faX: faX,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faCancer: faCancer,\n faVanShuttle: faVanShuttle,\n faShuttleVan: faShuttleVan,\n faStairs: faStairs,\n faHorseHead: faHorseHead,\n faVault: faVault,\n faClosedCaptioningSlash: faClosedCaptioningSlash,\n faDrumSteelpan: faDrumSteelpan,\n faThumbsUp: faThumbsUp,\n faStamp: faStamp,\n faMenorah: faMenorah,\n faChildren: faChildren,\n faChartLine: faChartLine,\n faLineChart: faLineChart,\n faSquareEnvelope: faSquareEnvelope,\n faEnvelopeSquare: faEnvelopeSquare,\n faBanSmoking: faBanSmoking,\n faSmokingBan: faSmokingBan,\n faTruckFront: faTruckFront,\n faBuilding: faBuilding,\n faBullseye: faBullseye,\n faArrowLeftLong: faArrowLeftLong,\n faLongArrowLeft: faLongArrowLeft,\n faChessRook: faChessRook,\n faBlenderPhone: faBlenderPhone,\n faArrowTurnUp: faArrowTurnUp,\n faLevelUp: faLevelUp,\n faBicycle: faBicycle,\n faCircleArrowDown: faCircleArrowDown,\n faArrowCircleDown: faArrowCircleDown,\n faGear: faGear,\n faCog: faCog,\n faMarsAndVenusBurst: faMarsAndVenusBurst,\n faOtter: faOtter,\n faCircleChevronLeft: faCircleChevronLeft,\n faChevronCircleLeft: faChevronCircleLeft,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faWalkieTalkie: faWalkieTalkie,\n faUserGroup: faUserGroup,\n faUserFriends: faUserFriends,\n faHouseChimney: faHouseChimney,\n faHomeLg: faHomeLg,\n faRightFromBracket: faRightFromBracket,\n faSignOutAlt: faSignOutAlt,\n faFile: faFile,\n faPlaneSlash: faPlaneSlash,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faPersonFalling: faPersonFalling,\n faTurnDown: faTurnDown,\n faLevelDownAlt: faLevelDownAlt,\n faUpRightAndDownLeftFromCenter: faUpRightAndDownLeftFromCenter,\n faExpandAlt: faExpandAlt,\n faUserTag: faUserTag,\n faHandSparkles: faHandSparkles,\n faArrowsToDot: faArrowsToDot,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faDongSign: faDongSign,\n faPeopleLine: faPeopleLine,\n faSquareRss: faSquareRss,\n faRssSquare: faRssSquare,\n faCalendarMinus: faCalendarMinus,\n faChartDiagram: faChartDiagram,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faHandPointRight: faHandPointRight,\n faArrowUp: faArrowUp,\n faCubesStacked: faCubesStacked,\n faChildCombatant: faChildCombatant,\n faChildRifle: faChildRifle,\n faVestPatches: faVestPatches,\n faMartiniGlassEmpty: faMartiniGlassEmpty,\n faGlassMartini: faGlassMartini,\n faMagnet: faMagnet,\n faRoadBarrier: faRoadBarrier,\n faCompassDrafting: faCompassDrafting,\n faDraftingCompass: faDraftingCompass,\n faSquarePersonConfined: faSquarePersonConfined,\n faPlateWheat: faPlateWheat,\n faSignHanging: faSignHanging,\n faSign: faSign,\n faCarBattery: faCarBattery,\n faBatteryCar: faBatteryCar,\n faShirt: faShirt,\n faTShirt: faTShirt,\n faTshirt: faTshirt,\n faParagraph: faParagraph,\n faEnvelopesBulk: faEnvelopesBulk,\n faMailBulk: faMailBulk,\n faGuitar: faGuitar,\n faSuitcase: faSuitcase,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faF: faF,\n faXmarksLines: faXmarksLines,\n faEarthOceania: faEarthOceania,\n faGlobeOceania: faGlobeOceania,\n faCommentSlash: faCommentSlash,\n faPlay: faPlay,\n faVialCircleCheck: faVialCircleCheck,\n faBridgeCircleCheck: faBridgeCircleCheck,\n faCediSign: faCediSign,\n faPuzzlePiece: faPuzzlePiece,\n faHelmetUn: faHelmetUn,\n faGlassWater: faGlassWater,\n faHeartCircleBolt: faHeartCircleBolt,\n faPumpSoap: faPumpSoap,\n faHandScissors: faHandScissors,\n faDolly: faDolly,\n faDollyBox: faDollyBox,\n faPaperclip: faPaperclip,\n faDemocrat: faDemocrat,\n faSquareArrowUpRight: faSquareArrowUpRight,\n faExternalLinkSquare: faExternalLinkSquare,\n faFerry: faFerry,\n faMosquito: faMosquito,\n faBuildingCircleArrowRight: faBuildingCircleArrowRight,\n faLeftRight: faLeftRight,\n faArrowsAltH: faArrowsAltH,\n faVirus: faVirus,\n faGem: faGem,\n faToilet: faToilet,\n faSingleQuoteLeft: faSingleQuoteLeft,\n faMoneyBills: faMoneyBills,\n faTabletButton: faTabletButton,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faWrench: faWrench,\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faTableCells: faTableCells,\n faTh: faTh,\n faRibbon: faRibbon,\n faLandmarkFlag: faLandmarkFlag,\n faUpDownLeftRight: faUpDownLeftRight,\n faArrowsAlt: faArrowsAlt,\n faCarSide: faCarSide,\n faTrashArrowUp: faTrashArrowUp,\n faTrashRestore: faTrashRestore,\n faLifeRing: faLifeRing,\n faCopyright: faCopyright,\n faFilePrescription: faFilePrescription,\n faEraser: faEraser,\n faHourglassStart: faHourglassStart,\n faHourglass1: faHourglass1,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faCruzeiroSign: faCruzeiroSign,\n faSmoking: faSmoking,\n faSquarePollVertical: faSquarePollVertical,\n faPoll: faPoll,\n faPersonCircleMinus: faPersonCircleMinus,\n faBiohazard: faBiohazard,\n faBellConcierge: faBellConcierge,\n faConciergeBell: faConciergeBell,\n faRulerHorizontal: faRulerHorizontal,\n faHorse: faHorse,\n faCalendar: faCalendar,\n faHandsHoldingChild: faHandsHoldingChild,\n faItalic: faItalic,\n faKhanda: faKhanda,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faCheck: faCheck,\n faFingerprint: faFingerprint,\n faChargingStation: faChargingStation,\n faUserLock: faUserLock,\n faMobileScreenButton: faMobileScreenButton,\n faMobileAlt: faMobileAlt,\n faAnchorCircleCheck: faAnchorCircleCheck,\n faPersonWalkingWithCane: faPersonWalkingWithCane,\n faBlind: faBlind,\n faFileWaveform: faFileWaveform,\n faFileMedicalAlt: faFileMedicalAlt,\n faHouseCrack: faHouseCrack,\n faHatWizard: faHatWizard,\n faUserDoctor: faUserDoctor,\n faUserMd: faUserMd,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faSprayCanSparkles: faSprayCanSparkles,\n faAirFreshener: faAirFreshener,\n faBahtSign: faBahtSign,\n faTemperatureArrowUp: faTemperatureArrowUp,\n faTemperatureUp: faTemperatureUp,\n faWebAwesome: faWebAwesome,\n faNonBinary: faNonBinary,\n faN: faN,\n faArrowsUpDownLeftRight: faArrowsUpDownLeftRight,\n faArrows: faArrows,\n faHouse: faHouse,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeLgAlt: faHomeLgAlt,\n faSpinner: faSpinner,\n faGavel: faGavel,\n faLegal: faLegal,\n faTicketSimple: faTicketSimple,\n faTicketAlt: faTicketAlt,\n faDove: faDove,\n faTarpDroplet: faTarpDroplet,\n faTreeCity: faTreeCity,\n faTurnUp: faTurnUp,\n faLevelUpAlt: faLevelUpAlt,\n faTemperatureQuarter: faTemperatureQuarter,\n faTemperature1: faTemperature1,\n faThermometer1: faThermometer1,\n faThermometerQuarter: faThermometerQuarter,\n faSliders: faSliders,\n faSlidersH: faSlidersH,\n faMosque: faMosque,\n faH: faH,\n faInfo: faInfo,\n faPersonWalking: faPersonWalking,\n faWalking: faWalking,\n faArrowTurnDown: faArrowTurnDown,\n faLevelDown: faLevelDown,\n faRoad: faRoad,\n faSpiral: faSpiral,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faWineGlassEmpty: faWineGlassEmpty,\n faWineGlassAlt: faWineGlassAlt,\n faClapperboard: faClapperboard,\n faForwardStep: faForwardStep,\n faStepForward: faStepForward,\n faSquareUpRight: faSquareUpRight,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faBookJournalWhills: faBookJournalWhills,\n faJournalWhills: faJournalWhills,\n faChampagneGlasses: faChampagneGlasses,\n faGlassCheers: faGlassCheers,\n faDumpster: faDumpster,\n faHeartCircleXmark: faHeartCircleXmark,\n faComputer: faComputer,\n faWandMagic: faWandMagic,\n faMagic: faMagic,\n faBrain: faBrain,\n faBriefcaseMedical: faBriefcaseMedical,\n faHouseMedicalCircleExclamation: faHouseMedicalCircleExclamation,\n faCodeCommit: faCodeCommit,\n faPersonBreastfeeding: faPersonBreastfeeding,\n faPersonRays: faPersonRays,\n faManatSign: faManatSign,\n faSort: faSort,\n faUnsorted: faUnsorted,\n faCircleRadiation: faCircleRadiation,\n faRadiationAlt: faRadiationAlt,\n faLaptopCode: faLaptopCode,\n faSink: faSink,\n faArrowUpFromWaterPump: faArrowUpFromWaterPump,\n faMicrophoneLinesSlash: faMicrophoneLinesSlash,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faServer: faServer,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserLarge: faUserLarge,\n faSnowflake: faSnowflake,\n faTaurus: faTaurus,\n faSkullCrossbones: faSkullCrossbones,\n faPesoSign: faPesoSign,\n faWineGlass: faWineGlass,\n faTemperatureHalf: faTemperatureHalf,\n faTemperature2: faTemperature2,\n faThermometer2: faThermometer2,\n faThermometerHalf: faThermometerHalf,\n faTicket: faTicket,\n faWheatAwnCircleExclamation: faWheatAwnCircleExclamation,\n faArrowsTurnRight: faArrowsTurnRight,\n faCandyCane: faCandyCane,\n faWheelchair: faWheelchair,\n faSpellCheck: faSpellCheck,\n faVolumeOff: faVolumeOff,\n faLungs: faLungs,\n faBookmark: faBookmark,\n faBarcode: faBarcode,\n faListOl: faListOl,\n faList12: faList12,\n faListNumeric: faListNumeric,\n faFileCircleXmark: faFileCircleXmark,\n faCube: faCube,\n faTape: faTape,\n faBomb: faBomb,\n faScaleUnbalanced: faScaleUnbalanced,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faRuler: faRuler,\n faI: faI,\n faVolumeXmark: faVolumeXmark,\n faVolumeMute: faVolumeMute,\n faVolumeTimes: faVolumeTimes,\n faArchway: faArchway,\n faPersonDigging: faPersonDigging,\n faDigging: faDigging,\n faGaugeHigh: faGaugeHigh,\n faTachometerAlt: faTachometerAlt,\n faTachometerAltFast: faTachometerAltFast,\n faGenderless: faGenderless,\n faCloudSun: faCloudSun,\n faArrowRight: faArrowRight,\n faHandshake: faHandshake,\n faHandshakeAlt: faHandshakeAlt,\n faHandshakeSimple: faHandshakeSimple,\n faPersonSkiing: faPersonSkiing,\n faSkiing: faSkiing,\n faBridgeWater: faBridgeWater,\n faBuildingNgo: faBuildingNgo,\n faIgloo: faIgloo,\n faCircleDollarToSlot: faCircleDollarToSlot,\n faDonate: faDonate,\n faY: faY,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faDiceFour: faDiceFour,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faFileAudio: faFileAudio,\n faArrowsDownToLine: faArrowsDownToLine,\n faG: faG,\n faVihara: faVihara,\n faFlagCheckered: faFlagCheckered,\n faGaugeSimple: faGaugeSimple,\n faGaugeSimpleMed: faGaugeSimpleMed,\n faTachometerAverage: faTachometerAverage,\n faRightLeft: faRightLeft,\n faExchangeAlt: faExchangeAlt,\n faPills: faPills,\n faExplosion: faExplosion,\n faArrowsDownToPeople: faArrowsDownToPeople,\n faUsersViewfinder: faUsersViewfinder,\n faCarOn: faCarOn,\n faSleigh: faSleigh,\n faDumbbell: faDumbbell,\n faBabyCarriage: faBabyCarriage,\n faCarriageBaby: faCarriageBaby,\n faKiwiBird: faKiwiBird,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faFileMedical: faFileMedical,\n faXmark: faXmark,\n faClose: faClose,\n faMultiply: faMultiply,\n faRemove: faRemove,\n faTimes: faTimes,\n faShapes: faShapes,\n faTriangleCircleSquare: faTriangleCircleSquare,\n faDiceOne: faDiceOne,\n faLockOpen: faLockOpen,\n faPepperHot: faPepperHot,\n faDropletSlash: faDropletSlash,\n faTintSlash: faTintSlash,\n faDroplet: faDroplet,\n faTint: faTint,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faCommentsDollar: faCommentsDollar,\n faMagnifyingGlassLocation: faMagnifyingGlassLocation,\n faSearchLocation: faSearchLocation,\n faFileInvoice: faFileInvoice,\n faPentagon: faPentagon,\n faRepublican: faRepublican,\n faShop: faShop,\n faStoreAlt: faStoreAlt,\n faFilm: faFilm,\n faFilmAlt: faFilmAlt,\n faFilmSimple: faFilmSimple,\n faBuildingCircleXmark: faBuildingCircleXmark,\n faComments: faComments,\n faTags: faTags,\n faGun: faGun,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faScorpio: faScorpio,\n faIdCardClip: faIdCardClip,\n faIdCardAlt: faIdCardAlt,\n faMoon: faMoon,\n faOilWell: faOilWell,\n faTachographDigital: faTachographDigital,\n faDigitalTachograph: faDigitalTachograph,\n faTablet: faTablet,\n faTabletAndroid: faTabletAndroid,\n faRubleSign: faRubleSign,\n faRouble: faRouble,\n faRub: faRub,\n faRuble: faRuble,\n faClosedCaptioning: faClosedCaptioning,\n faPen: faPen,\n faPlane: faPlane,\n faImages: faImages,\n faMobileScreen: faMobileScreen,\n faMobileAndroidAlt: faMobileAndroidAlt,\n faGuaraniSign: faGuaraniSign,\n faBagShopping: faBagShopping,\n faShoppingBag: faShoppingBag,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faPhoneVolume: faPhoneVolume,\n faVolumeControlPhone: faVolumeControlPhone,\n faCubes: faCubes,\n faPhone: faPhone,\n faToriiGate: faToriiGate,\n faBacon: faBacon,\n faPersonFallingBurst: faPersonFallingBurst,\n faQuoteRight: faQuoteRight,\n faQuoteRightAlt: faQuoteRightAlt,\n faHouseMedicalFlag: faHouseMedicalFlag,\n faPrescription: faPrescription,\n faDiceThree: faDiceThree,\n faBuildingLock: faBuildingLock,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faLeaf: faLeaf,\n faHouseChimneyUser: faHouseChimneyUser,\n faRotateRight: faRotateRight,\n faRedoAlt: faRedoAlt,\n faRotateForward: faRotateForward,\n faTooth: faTooth,\n faHouseChimneyWindow: faHouseChimneyWindow,\n faMotorcycle: faMotorcycle,\n faBackwardFast: faBackwardFast,\n faFastBackward: faFastBackward,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faSailboat: faSailboat,\n faBookBookmark: faBookBookmark,\n faMagnifyingGlassArrowRight: faMagnifyingGlassArrowRight,\n faMicrophoneLines: faMicrophoneLines,\n faMicrophoneAlt: faMicrophoneAlt,\n faReplyAll: faReplyAll,\n faMailReplyAll: faMailReplyAll,\n faUniversalAccess: faUniversalAccess,\n faToiletPaper: faToiletPaper,\n faToiletPaperAlt: faToiletPaperAlt,\n faToiletPaperBlank: faToiletPaperBlank,\n faVrCardboard: faVrCardboard,\n faPizzaSlice: faPizzaSlice,\n faSprayCan: faSprayCan,\n faVolumeLow: faVolumeLow,\n faVolumeDown: faVolumeDown,\n faCross: faCross,\n faPerson: faPerson,\n faMale: faMale,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faFish: faFish,\n faDrumstickBite: faDrumstickBite,\n faChartSimple: faChartSimple,\n faAtom: faAtom,\n faP: faP,\n faJetFighterUp: faJetFighterUp,\n faPlugCircleXmark: faPlugCircleXmark,\n faSheetPlastic: faSheetPlastic,\n faV: faV,\n faList: faList,\n faListSquares: faListSquares,\n faPisces: faPisces,\n faSolarPanel: faSolarPanel,\n faLandMineOn: faLandMineOn,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadphonesSimple: faHeadphonesSimple,\n faBus: faBus,\n faFilePowerpoint: faFilePowerpoint,\n faQuoteLeft: faQuoteLeft,\n faQuoteLeftAlt: faQuoteLeftAlt,\n faChevronDown: faChevronDown,\n faEarthAsia: faEarthAsia,\n faGlobeAsia: faGlobeAsia,\n faCentSign: faCentSign,\n faShieldCat: faShieldCat,\n faSchoolCircleCheck: faSchoolCircleCheck,\n faMartiniGlass: faMartiniGlass,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faPlug: faPlug,\n faPanorama: faPanorama,\n faClockRotateLeft: faClockRotateLeft,\n faHistory: faHistory,\n faJarWheat: faJarWheat,\n faCloudArrowDown: faCloudArrowDown,\n faCloudDownload: faCloudDownload,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faTruckRampBox: faTruckRampBox,\n faTruckLoading: faTruckLoading,\n faAngleDown: faAngleDown,\n faPlugCircleCheck: faPlugCircleCheck,\n faWindowMaximize: faWindowMaximize,\n faHandsHoldingCircle: faHandsHoldingCircle,\n faLocationPin: faLocationPin,\n faMapMarker: faMapMarker,\n faBowlingBall: faBowlingBall,\n faCartFlatbed: faCartFlatbed,\n faDollyFlatbed: faDollyFlatbed,\n faHouseUser: faHouseUser,\n faHomeUser: faHomeUser,\n faGhost: faGhost,\n faCommentNodes: faCommentNodes,\n faPersonArrowDownToLine: faPersonArrowDownToLine,\n faPlugCirclePlus: faPlugCirclePlus,\n faPersonSwimming: faPersonSwimming,\n faSwimmer: faSwimmer,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faChartPie: faChartPie,\n faPieChart: faPieChart,\n faFrog: faFrog,\n faWineBottle: faWineBottle,\n faInbox: faInbox,\n faSquareH: faSquareH,\n faHSquare: faHSquare,\n faHouseMedical: faHouseMedical,\n faCircleChevronRight: faCircleChevronRight,\n faChevronCircleRight: faChevronCircleRight,\n faFileCsv: faFileCsv,\n faHatCowboy: faHatCowboy,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faL: faL,\n faArrowDownShortWide: faArrowDownShortWide,\n faSortAmountDesc: faSortAmountDesc,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faSpoon: faSpoon,\n faUtensilSpoon: faUtensilSpoon,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faSpaghettiMonsterFlying: faSpaghettiMonsterFlying,\n faPastafarianism: faPastafarianism,\n faMartiniGlassCitrus: faMartiniGlassCitrus,\n faCocktail: faCocktail,\n faBullhorn: faBullhorn,\n faBoxTissue: faBoxTissue,\n faMattressPillow: faMattressPillow,\n faChevronLeft: faChevronLeft,\n faCloudMoonRain: faCloudMoonRain,\n faArrowDown19: faArrowDown19,\n faSortNumericAsc: faSortNumericAsc,\n faSortNumericDown: faSortNumericDown,\n faHandSpock: faHandSpock,\n faWandMagicSparkles: faWandMagicSparkles,\n faMagicWandSparkles: faMagicWandSparkles,\n faCommentMedical: faCommentMedical,\n faBellSlash: faBellSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSimpleSlash: faHandshakeSimpleSlash,\n faBottleWater: faBottleWater,\n faDiceD20: faDiceD20,\n faArrowDownZA: faArrowDownZA,\n faSortAlphaDesc: faSortAlphaDesc,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faBrush: faBrush,\n faPersonWalkingDashedLineArrowRight: faPersonWalkingDashedLineArrowRight,\n faArrowUpShortWide: faArrowUpShortWide,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faGripVertical: faGripVertical,\n faGridVertical: faGridVertical,\n faCarTunnel: faCarTunnel,\n faChartColumn: faChartColumn,\n faCapricorn: faCapricorn,\n faTruckArrowRight: faTruckArrowRight,\n faTv: faTv,\n faTelevision: faTelevision,\n faTvAlt: faTvAlt,\n faSection: faSection,\n faPeace: faPeace,\n faStar: faStar,\n faFlag: faFlag,\n faTriangleExclamation: faTriangleExclamation,\n faExclamationTriangle: faExclamationTriangle,\n faWarning: faWarning,\n faSchoolCircleExclamation: faSchoolCircleExclamation,\n faGraduationCap: faGraduationCap,\n faMortarBoard: faMortarBoard,\n faStore: faStore,\n faUserAstronaut: faUserAstronaut,\n faBuildingFlag: faBuildingFlag,\n faMugSaucer: faMugSaucer,\n faCoffee: faCoffee,\n faLemon: faLemon,\n faCaravan: faCaravan,\n faQ: faQ,\n faLock: faLock,\n faPaintRoller: faPaintRoller,\n faVolumeHigh: faVolumeHigh,\n faVolumeUp: faVolumeUp,\n faFolderPlus: faFolderPlus,\n faMercury: faMercury,\n faAnchor: faAnchor,\n faSquareParking: faSquareParking,\n faParking: faParking,\n faHanukiah: faHanukiah,\n faRotateLeft: faRotateLeft,\n faRotateBack: faRotateBack,\n faRotateBackward: faRotateBackward,\n faUndoAlt: faUndoAlt,\n faHeading: faHeading,\n faHeader: faHeader,\n faCrosshairs: faCrosshairs,\n faCircleNodes: faCircleNodes,\n faWindowRestore: faWindowRestore,\n faR: faR,\n faFilterCircleXmark: faFilterCircleXmark,\n faGopuram: faGopuram,\n faHeartCircleMinus: faHeartCircleMinus,\n faStarOfLife: faStarOfLife,\n faBusinessTime: faBusinessTime,\n faBriefcaseClock: faBriefcaseClock,\n faFireExtinguisher: faFireExtinguisher,\n faArrowDownLong: faArrowDownLong,\n faLongArrowDown: faLongArrowDown,\n faUserMinus: faUserMinus,\n faMoneyCheck: faMoneyCheck,\n faHouseLaptop: faHouseLaptop,\n faLaptopHouse: faLaptopHouse,\n faDownload: faDownload,\n faSagittarius: faSagittarius,\n faCouch: faCouch,\n faRoadLock: faRoadLock,\n faScissors: faScissors,\n faCut: faCut,\n faBug: faBug,\n faArrowRightFromBracket: faArrowRightFromBracket,\n faSignOut: faSignOut,\n faHandHoldingHand: faHandHoldingHand,\n faStroopwafel: faStroopwafel,\n faChild: faChild,\n faIceCream: faIceCream,\n faComputerMouse: faComputerMouse,\n faMouse: faMouse,\n faFaucet: faFaucet,\n faAward: faAward,\n faPersonDrowning: faPersonDrowning,\n faCameraRotate: faCameraRotate,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faFileFragment: faFileFragment,\n faPersonMilitaryRifle: faPersonMilitaryRifle,\n faToggleOn: faToggleOn,\n faLungsVirus: faLungsVirus,\n faTableTennisPaddleBall: faTableTennisPaddleBall,\n faPingPongPaddleBall: faPingPongPaddleBall,\n faTableTennis: faTableTennis,\n faBoxesPacking: faBoxesPacking,\n faPersonChalkboard: faPersonChalkboard,\n faDiceTwo: faDiceTwo,\n faArrowRightArrowLeft: faArrowRightArrowLeft,\n faExchange: faExchange,\n faFootball: faFootball,\n faFootballBall: faFootballBall,\n faTruckMonster: faTruckMonster,\n faAsterisk: faAsterisk,\n faBatteryFull: faBatteryFull,\n faBattery: faBattery,\n faBattery5: faBattery5,\n faChildDress: faChildDress,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faTrashCanArrowUp: faTrashCanArrowUp,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faFont: faFont,\n faBoreHole: faBoreHole,\n faVirusCovid: faVirusCovid,\n faFilePdf: faFilePdf,\n faLanguage: faLanguage,\n faShieldHalved: faShieldHalved,\n faShieldAlt: faShieldAlt,\n faCaretUp: faCaretUp,\n faFilePen: faFilePen,\n faFileEdit: faFileEdit,\n faPersonBiking: faPersonBiking,\n faBiking: faBiking,\n faBookOpenReader: faBookOpenReader,\n faBookReader: faBookReader,\n faGlassWaterDroplet: faGlassWaterDroplet,\n faTowerBroadcast: faTowerBroadcast,\n faBroadcastTower: faBroadcastTower,\n faMinimize: faMinimize,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faArrowRightToCity: faArrowRightToCity,\n faLaptopMedical: faLaptopMedical,\n faBreadSlice: faBreadSlice,\n faGlobe: faGlobe,\n faFolderMinus: faFolderMinus,\n faMaskFace: faMaskFace,\n faBong: faBong,\n faRoadBridge: faRoadBridge,\n faArrowUp91: faArrowUp91,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faMountainCity: faMountainCity,\n faArrowDown91: faArrowDown91,\n faSortNumericDesc: faSortNumericDesc,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faPoop: faPoop,\n faDharmachakra: faDharmachakra,\n faBatteryQuarter: faBatteryQuarter,\n faBattery2: faBattery2,\n faAnkh: faAnkh,\n faDiamond: faDiamond,\n faSubscript: faSubscript,\n faRupeeSign: faRupeeSign,\n faRupee: faRupee,\n faPersonRifle: faPersonRifle,\n faD: faD,\n faSquareNfi: faSquareNfi,\n faTeeth: faTeeth,\n faMagnifyingGlassDollar: faMagnifyingGlassDollar,\n faSearchDollar: faSearchDollar,\n faDumpsterFire: faDumpsterFire,\n faUpload: faUpload,\n faUserSlash: faUserSlash,\n faUserAltSlash: faUserAltSlash,\n faUserLargeSlash: faUserLargeSlash,\n faArrowLeft: faArrowLeft,\n faVialVirus: faVialVirus,\n faCheckDouble: faCheckDouble,\n faPaw: faPaw,\n faHelmetSafety: faHelmetSafety,\n faHardHat: faHardHat,\n faHatHard: faHatHard,\n faE: faE,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faDownLeftAndUpRightToCenter: faDownLeftAndUpRightToCenter,\n faCompressAlt: faCompressAlt,\n faGifts: faGifts,\n faBed: faBed,\n faMoneyBillTransfer: faMoneyBillTransfer,\n faPersonRunning: faPersonRunning,\n faRunning: faRunning,\n faCircleChevronDown: faCircleChevronDown,\n faChevronCircleDown: faChevronCircleDown,\n faUserNurse: faUserNurse,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faFill: faFill,\n faMoneyBill1Wave: faMoneyBill1Wave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faLandmark: faLandmark,\n faMusic: faMusic,\n faBookMedical: faBookMedical,\n faShuffle: faShuffle,\n faRandom: faRandom,\n faUnderline: faUnderline,\n faBuildingUser: faBuildingUser,\n faRobot: faRobot,\n faPlus: faPlus,\n faAdd: faAdd,\n faCopy: faCopy,\n faChessKing: faChessKing,\n faHouseFloodWater: faHouseFloodWater,\n faBitcoinSign: faBitcoinSign,\n faBox: faBox,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faArrowsLeftRight: faArrowsLeftRight,\n faArrowsH: faArrowsH,\n faFan: faFan,\n faCrow: faCrow,\n faFileCircleCheck: faFileCircleCheck,\n faLinkSlash: faLinkSlash,\n faChainBroken: faChainBroken,\n faChainSlash: faChainSlash,\n faUnlink: faUnlink,\n faArrowRotateRight: faArrowRotateRight,\n faArrowRightRotate: faArrowRightRotate,\n faArrowRotateForward: faArrowRotateForward,\n faRedo: faRedo,\n faPenClip: faPenClip,\n faPenAlt: faPenAlt,\n faDoorClosed: faDoorClosed,\n faArrowDownWideShort: faArrowDownWideShort,\n faSortAmountAsc: faSortAmountAsc,\n faSortAmountDown: faSortAmountDown,\n faCaretDown: faCaretDown,\n faK: faK,\n faCheckToSlot: faCheckToSlot,\n faVoteYea: faVoteYea,\n faFishFins: faFishFins,\n faCompress: faCompress,\n faArrowUpAZ: faArrowUpAZ,\n faSortAlphaUp: faSortAlphaUp,\n faUserGraduate: faUserGraduate,\n faFileCode: faFileCode,\n faSoap: faSoap,\n faRecycle: faRecycle,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faWaterLadder: faWaterLadder,\n faLadderWater: faLadderWater,\n faSwimmingPool: faSwimmingPool,\n faGemini: faGemini,\n faTowerCell: faTowerCell,\n faColonSign: faColonSign,\n faLaptopFile: faLaptopFile,\n faBahai: faBahai,\n faHaykal: faHaykal,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faCloudBolt: faCloudBolt,\n faThunderstorm: faThunderstorm,\n faEthernet: faEthernet,\n faHryvniaSign: faHryvniaSign,\n faHryvnia: faHryvnia,\n faEyeSlash: faEyeSlash,\n faCartFlatbedSuitcase: faCartFlatbedSuitcase,\n faLuggageCart: faLuggageCart,\n faRadiation: faRadiation,\n faFileWord: faFileWord,\n faBedPulse: faBedPulse,\n faProcedures: faProcedures,\n faTents: faTents,\n faMugHot: faMugHot,\n faBolt: faBolt,\n faZap: faZap,\n faJar: faJar,\n faTruckPlane: faTruckPlane,\n faHandHoldingHeart: faHandHoldingHeart,\n faArrowRotateLeft: faArrowRotateLeft,\n faArrowLeftRotate: faArrowLeftRotate,\n faArrowRotateBack: faArrowRotateBack,\n faArrowRotateBackward: faArrowRotateBackward,\n faUndo: faUndo,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faBurst: faBurst,\n faZ: faZ,\n faBandage: faBandage,\n faBandAid: faBandAid,\n faPlaneCircleExclamation: faPlaneCircleExclamation,\n faBusSide: faBusSide,\n faBugs: faBugs,\n faBeerMugEmpty: faBeerMugEmpty,\n faBeer: faBeer,\n faPersonCircleCheck: faPersonCircleCheck,\n faStapler: faStapler,\n faHouseMedicalCircleCheck: faHouseMedicalCircleCheck,\n faNairaSign: faNairaSign,\n faWifi: faWifi,\n faWifi3: faWifi3,\n faWifiStrong: faWifiStrong,\n faMoneyCheckDollar: faMoneyCheckDollar,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faEyeLowVision: faEyeLowVision,\n faLowVision: faLowVision,\n faCircleArrowUp: faCircleArrowUp,\n faArrowCircleUp: faArrowCircleUp,\n faCameraRetro: faCameraRetro,\n faCapsules: faCapsules,\n faPoo: faPoo,\n faVolume: faVolume,\n faVolumeMedium: faVolumeMedium,\n faElevator: faElevator,\n faTag: faTag,\n faFileCircleMinus: faFileCircleMinus,\n faDownLong: faDownLong,\n faLongArrowAltDown: faLongArrowAltDown,\n faCompactDisc: faCompactDisc,\n faSuitcaseRolling: faSuitcaseRolling,\n faBookQuran: faBookQuran,\n faQuran: faQuran,\n faPhoneSlash: faPhoneSlash,\n faRoadCircleCheck: faRoadCircleCheck,\n faShopLock: faShopLock,\n faImagePortrait: faImagePortrait,\n faPortrait: faPortrait,\n faBridgeLock: faBridgeLock,\n faHammer: faHammer,\n faArrowUp19: faArrowUp19,\n faSortNumericUp: faSortNumericUp,\n faChessKnight: faChessKnight,\n faHouseFloodWaterCircleArrowRight: faHouseFloodWaterCircleArrowRight,\n faArrowUpRightFromSquare: faArrowUpRightFromSquare,\n faExternalLink: faExternalLink,\n faArrowDownUpAcrossLine: faArrowDownUpAcrossLine,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faRectangleAd: faRectangleAd,\n faAd: faAd,\n faBookTanakh: faBookTanakh,\n faTanakh: faTanakh,\n faHotTubPerson: faHotTubPerson,\n faHotTub: faHotTub,\n faFileHalfDashed: faFileHalfDashed,\n faOutdent: faOutdent,\n faDedent: faDedent,\n faHandPeace: faHandPeace,\n faHeadSideVirus: faHeadSideVirus,\n faCompass: faCompass,\n faPenNib: faPenNib,\n faTentArrowsDown: faTentArrowsDown,\n faForwardFast: faForwardFast,\n faFastForward: faFastForward,\n faCrop: faCrop,\n faWhiskeyGlass: faWhiskeyGlass,\n faGlassWhiskey: faGlassWhiskey,\n faSquare: faSquare,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faFileContract: faFileContract,\n faAngleUp: faAngleUp,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faPersonDressBurst: faPersonDressBurst,\n faDivide: faDivide,\n faCodeFork: faCodeFork,\n faHouseFlag: faHouseFlag,\n faBuildingColumns: faBuildingColumns,\n faBank: faBank,\n faInstitution: faInstitution,\n faMuseum: faMuseum,\n faUniversity: faUniversity,\n faRug: faRug,\n faCodeMerge: faCodeMerge,\n faHouseTsunami: faHouseTsunami,\n faMagnifyingGlassChart: faMagnifyingGlassChart,\n faUmbrella: faUmbrella,\n faHillRockslide: faHillRockslide,\n faUserSecret: faUserSecret,\n faPager: faPager,\n faBriefcase: faBriefcase,\n faTrowelBricks: faTrowelBricks,\n faSocks: faSocks,\n faT: faT,\n faMicrochip: faMicrochip,\n faTruckMedical: faTruckMedical,\n faAmbulance: faAmbulance,\n faOm: faOm,\n faMosquitoNet: faMosquitoNet,\n faPrescriptionBottle: faPrescriptionBottle,\n faUsersGear: faUsersGear,\n faUsersCog: faUsersCog,\n faRoadCircleExclamation: faRoadCircleExclamation,\n faPause: faPause,\n faStaffSnake: faStaffSnake,\n faRodAsclepius: faRodAsclepius,\n faRodSnake: faRodSnake,\n faStaffAesculapius: faStaffAesculapius,\n faPiggyBank: faPiggyBank,\n faMonument: faMonument,\n faAnglesRight: faAnglesRight,\n faAngleDoubleRight: faAngleDoubleRight,\n faDesktop: faDesktop,\n faDesktopAlt: faDesktopAlt,\n faPlaneCircleXmark: faPlaneCircleXmark,\n faRetweet: faRetweet,\n faUserGear: faUserGear,\n faUserCog: faUserCog,\n faBorderAll: faBorderAll,\n faCoins: faCoins,\n faMarsStroke: faMarsStroke,\n faHandshakeAngle: faHandshakeAngle,\n faHandsHelping: faHandsHelping,\n faArrowDown: faArrowDown,\n faLocationDot: faLocationDot,\n faMapMarkerAlt: faMapMarkerAlt,\n faPlugCircleExclamation: faPlugCircleExclamation,\n faCookieBite: faCookieBite,\n faScrewdriverWrench: faScrewdriverWrench,\n faTools: faTools,\n faIndent: faIndent,\n faBars: faBars,\n faNavicon: faNavicon,\n faHandsPraying: faHandsPraying,\n faPrayingHands: faPrayingHands,\n faViruses: faViruses,\n faSchoolFlag: faSchoolFlag,\n faTrademark: faTrademark,\n faFireBurner: faFireBurner,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faTentArrowLeftRight: faTentArrowLeftRight,\n faRoute: faRoute,\n faAnglesUp: faAnglesUp,\n faAngleDoubleUp: faAngleDoubleUp,\n faBucket: faBucket,\n faLessThanEqual: faLessThanEqual,\n faFolderClosed: faFolderClosed,\n faPersonThroughWindow: faPersonThroughWindow,\n faSchoolLock: faSchoolLock,\n faPersonBurst: faPersonBurst,\n faLeftLong: faLeftLong,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLocationCrosshairs: faLocationCrosshairs,\n faLocation: faLocation,\n faPersonDotsFromLine: faPersonDotsFromLine,\n faDiagnoses: faDiagnoses,\n faGaugeSimpleHigh: faGaugeSimpleHigh,\n faTachometer: faTachometer,\n faTachometerFast: faTachometerFast,\n faAnglesLeft: faAnglesLeft,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faUpDown: faUpDown,\n faArrowsAltV: faArrowsAltV,\n faBatteryEmpty: faBatteryEmpty,\n faBattery0: faBattery0,\n faKeyboard: faKeyboard,\n faCookie: faCookie,\n faStopwatch: faStopwatch,\n faEject: faEject,\n faSatelliteDish: faSatelliteDish,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faListCheck: faListCheck,\n faTasks: faTasks,\n faSackXmark: faSackXmark,\n faHashtag: faHashtag,\n faTrain: faTrain,\n faGamepad: faGamepad,\n faFileExport: faFileExport,\n faArrowRightFromFile: faArrowRightFromFile,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faTrainSubway: faTrainSubway,\n faSubway: faSubway,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faObjectGroup: faObjectGroup,\n faShip: faShip,\n faC: faC,\n faSquarePhone: faSquarePhone,\n faPhoneSquare: faPhoneSquare,\n faRulerCombined: faRulerCombined,\n faArrowsRotate: faArrowsRotate,\n faRefresh: faRefresh,\n faSync: faSync,\n faPersonDress: faPersonDress,\n faFemale: faFemale,\n faBookOpen: faBookOpen,\n faFolderTree: faFolderTree,\n faVirgo: faVirgo,\n faBoxArchive: faBoxArchive,\n faArchive: faArchive,\n faTentArrowDownToLine: faTentArrowDownToLine,\n faQrcode: faQrcode,\n faDragon: faDragon,\n faHourglassEnd: faHourglassEnd,\n faHourglass3: faHourglass3,\n faGrip: faGrip,\n faGridHorizontal: faGridHorizontal,\n faGripHorizontal: faGripHorizontal,\n faBorderTopLeft: faBorderTopLeft,\n faBorderStyle: faBorderStyle,\n faListUl: faListUl,\n faListDots: faListDots,\n faPeopleRobbery: faPeopleRobbery,\n faMobileButton: faMobileButton,\n faArrowDownAZ: faArrowDownAZ,\n faSortAlphaAsc: faSortAlphaAsc,\n faSortAlphaDown: faSortAlphaDown,\n faMoneyBill: faMoneyBill,\n faCircleMinus: faCircleMinus,\n faMinusCircle: faMinusCircle,\n faArrowPointer: faArrowPointer,\n faMousePointer: faMousePointer,\n faSquareShareNodes: faSquareShareNodes,\n faShareAltSquare: faShareAltSquare,\n faTableCellsLarge: faTableCellsLarge,\n faThLarge: faThLarge,\n faCat: faCat,\n faCalendarWeek: faCalendarWeek,\n faCodeCompare: faCodeCompare,\n faLeo: faLeo,\n faRoadCircleXmark: faRoadCircleXmark,\n faPallet: faPallet,\n faCakeCandles: faCakeCandles,\n faBirthdayCake: faBirthdayCake,\n faCake: faCake,\n faBugSlash: faBugSlash,\n faTarp: faTarp,\n faDiagramPredecessor: faDiagramPredecessor,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faDiagramNext: faDiagramNext,\n faAnchorCircleXmark: faAnchorCircleXmark,\n faPersonCircleXmark: faPersonCircleXmark,\n faSpa: faSpa,\n faAries: faAries,\n faBarsProgress: faBarsProgress,\n faTasksAlt: faTasksAlt,\n faHeartCircleCheck: faHeartCircleCheck,\n faMarsStrokeRight: faMarsStrokeRight,\n faMarsStrokeH: faMarsStrokeH,\n faTowerObservation: faTowerObservation,\n faSterlingSign: faSterlingSign,\n faGbp: faGbp,\n faPoundSign: faPoundSign,\n faFaucetDrip: faFaucetDrip,\n faCircleInfo: faCircleInfo,\n faInfoCircle: faInfoCircle,\n faFeather: faFeather,\n faBowlRice: faBowlRice,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faTemperatureArrowDown: faTemperatureArrowDown,\n faTemperatureDown: faTemperatureDown,\n faMaskVentilator: faMaskVentilator,\n faFileVideo: faFileVideo,\n faArrowTrendDown: faArrowTrendDown,\n faOilCan: faOilCan,\n faPeopleCarryBox: faPeopleCarryBox,\n faPeopleCarry: faPeopleCarry,\n faChair: faChair,\n faWind: faWind,\n faLayerGroup: faLayerGroup,\n faHeadSideMask: faHeadSideMask,\n faHands: faHands,\n faSignLanguage: faSignLanguage,\n faSigning: faSigning,\n faTablets: faTablets,\n faWeightHanging: faWeightHanging,\n faDice: faDice,\n faShopSlash: faShopSlash,\n faStoreAltSlash: faStoreAltSlash,\n faSortDown: faSortDown,\n faSortDesc: faSortDesc,\n faPesetaSign: faPesetaSign,\n faTabletScreenButton: faTabletScreenButton,\n faTabletAlt: faTabletAlt,\n faHandHoldingDollar: faHandHoldingDollar,\n faHandHoldingUsd: faHandHoldingUsd,\n faShield: faShield,\n faShieldBlank: faShieldBlank,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faHandsHolding: faHandsHolding,\n faCartShopping: faCartShopping,\n faShoppingCart: faShoppingCart,\n faOctagon: faOctagon,\n faHandPointer: faHandPointer,\n faRegistered: faRegistered,\n faHouseSignal: faHouseSignal,\n faBangladeshiTakaSign: faBangladeshiTakaSign\n};\n\nexport { icons as fas, prefix, fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, faDollarSign, faDollar, faUsd, faDog, faTruckMoving, faRotate, faSyncAlt, faSquareMinus, faMinusSquare, faAlignJustify, faCalendarCheck, faFaceKiss, faKiss, faKitchenSet, faDna, faChildReaching, faPaste, faFileClipboard, faMeteor, faGears, faCogs, faFileCirclePlus, faIcicles, faArrowTrendUp, faHexagonNodesBolt, faQuestion, faHandsBound, faPersonWalkingLuggage, faFileArrowDown, faFileDownload, faPersonBooth, faLocust, faRightLong, faLongArrowAltRight, faTruckDroplet, faHandHoldingMedical, faHandPointLeft, faCalculator, faMinus, faSubtract, faArrowUpZA, faSortAlphaUpAlt, faMicrophoneSlash, faSquarePen, faPenSquare, faPencilSquare, faHandFist, faFistRaised, faCommentSms, faSms, faSimCard, faScaleBalanced, faBalanceScale, faCar, faAutomobile, faCropSimple, faCropAlt, faMedal, faScroll, faFileExcel, faFilter, faDrum, faMapPin, faScaleUnbalancedFlip, faBalanceScaleRight, faArrowsToCircle, faEnvelope, faBaby, faSquareCaretDown, faCaretSquareDown, faTent, faA, faParachuteBox, faCartArrowDown, faBridgeCircleExclamation, faCloudArrowUp, faCloudUpload, faCloudUploadAlt, faAt, faIndianRupeeSign, faIndianRupee, faInr, faTruck, faChalkboardUser, faChalkboardTeacher, faUserCheck, faUserNinja, faPlantWilt, faWeightScale, faWeight, faCaretRight, faFlorinSign, faBell, faLariSign, faMillSign, faPersonSnowboarding, faSnowboarding, faTty, faTeletype, faUsersRectangle, faMobile, faMobileAndroid, faMobilePhone, faArrowsTurnToDots, faExclamation, faChurch, faToggleOff, faShoePrints, faFileCircleExclamation, faWallet, faMessage, faCommentAlt, faTrophy, faFaceDizzy, faDizzy, faBacteria, faEarDeaf, faDeaf, faDeafness, faHardOfHearing, faPeopleArrows, faPeopleArrowsLeftRight, faHandsClapping, faVirusCovidSlash, faCalendarDays, faCalendarAlt, faDiamondTurnRight, faDirections, faHandPointUp, faBezierCurve, faPersonHalfDress, faSquarePollHorizontal, faPollH, faSchoolCircleXmark, faHandLizard, faChalkboard, faBlackboard, faUpRightFromSquare, faExternalLinkAlt, faSquareFull, faClover, faTeethOpen, faBarsStaggered, faReorder, faStream, faWarehouse, faSwatchbook, faCampground, faPersonWalkingArrowRight, faGlasses, faCirclePause, faPauseCircle, faMemory, faGift, faMoneyBillWheat, faDungeon, faSuitcaseMedical, faMedkit, faPersonCane, faGauge, faDashboard, faGaugeMed, faTachometerAltAverage, faEnvelopeOpenText, faToolbox, faPowerOff, faSignal, faSignal5, faSignalPerfect, faArrowsSpin, faJoint, faBraille, faBasketShopping, faShoppingBasket, faBridge, faPlaneArrival, faCashRegister, faRing, faAquarius, faShareNodes, faShareAlt, faPersonCircleExclamation, faBinoculars, faKipSign, faHardDrive, faHdd, faRankingStar, faUserTie, faEllipsis, faEllipsisH, faStoreSlash, faPercent, faPercentage, faFileZipper, faFileArchive, faDisplay, faIcons, faHeartMusicCameraBolt, faRulerVertical, faMapLocationDot, faMapMarkedAlt, faHeartCrack, faHeartBroken, faCow, faRss, faFeed, faMagnifyingGlass, faSearch, faCloudMoon, faBoxesStacked, faBoxes, faBoxesAlt, faCodeBranch, faBan, faCancel, faJugDetergent, faReply, faMailReply, faSunPlantWilt, faBacterium, faRecordVinyl, faFloppyDisk, faSave, faToiletsPortable, faO, faPalette, faUnlock, faEarListen, faAssistiveListeningSystems, faCodePullRequest, faKey, faSkull, faMarsStrokeUp, faMarsStrokeV, faFireFlameSimple, faBurn, faTree, faSmog, faS, faJedi, faPersonHiking, faHiking, faArrowsUpToLine, faMarsDouble, faThermometer, faPaintbrush, faPaintBrush, faNeuter, faSquarePhoneFlip, faPhoneSquareAlt, faFaceGrinTongueSquint, faGrinTongueSquint, faCommentDollar, faHippo, faBowlFood, faSquareVirus, faCloudSunRain, faArrowRightLong, faLongArrowRight, faBuildingUn, faTemperatureLow, faDoorOpen, faAlignLeft, faCamera, faCameraAlt, faUsersRays, faRainbow, faSitemap, faFaceGrinStars, faGrinStars, faSortUp, faSortAsc, faEye, faCaretLeft, faAppleWhole, faAppleAlt, faScrollTorah, faTorah, faHouseLock, faArrowsLeftRightToLine, faTrash, faFaceSadTear, faSadTear, faFax, faPersonCirclePlus, faHamsa, faPersonCircleQuestion, faClipboardCheck, faShareFromSquare, faShareSquare, faReceipt, faEquals, faChevronUp, faVirusSlash, faSlash, faExpand, faNoteSticky, faStickyNote, faTableColumns, faColumns, faPersonShelter, faCircleNotch, faWater, faDeleteLeft, faBackspace, faBroomBall, faQuidditch, faQuidditchBroomBall, faJ, faShuttleSpace, faSpaceShuttle, faYinYang, faStop, faTrowel, faHandBackFist, faHandRock, faTemperatureHigh, faGreaterThan, faCrutch, faSeptagon, faHeptagon, faStreetView, faWaveSquare, faAngleLeft, faScrewdriver, faTractor, faBridgeCircleXmark, faVials, faStethoscope, faPodcast, faArrowUpRightDots, faChessQueen, faAnchorCircleExclamation, faEllipsisVertical, faEllipsisV, faHeartCircleExclamation, faBuildingCircleExclamation, faPersonArrowUpFromLine, faNotEqual, faTrainTram, faPlaneDeparture, faRightToBracket, faSignInAlt, faSdCard, faHouseCircleExclamation, faShekelSign, faIls, faShekel, faSheqel, faSheqelSign, faRadio, faHandDots, faAllergies, faBookSkull, faBookDead, faUnlockKeyhole, faUnlockAlt, faFileArrowUp, faFileUpload, faFaceGrinTears, faGrinTears, faPenToSquare, faEdit, faEarthEurope, faGlobeEurope, faFaceGrinBeamSweat, faGrinBeamSweat, faCircleHalfStroke, faAdjust, faPersonMilitaryToPerson, faTableCellsColumnLock, faTruckFieldUn, faClock, faClockFour, faBook, faFaceLaughWink, faLaughWink, faCloudMeatball, faChartArea, faAreaChart, faRupiahSign, faTextWidth, faSatellite, faMagnifyingGlassMinus, faSearchMinus, faPeopleGroup, faSquareBinary, faMasksTheater, faTheaterMasks, faCartPlus, faHandsAslInterpreting, faAmericanSignLanguageInterpreting, faAslInterpreting, faHandsAmericanSignLanguageInterpreting, faTableCellsRowUnlock, faRocket, faShrimp, faTengeSign, faTenge, faHouseChimneyMedical, faClinicMedical, faUsersSlash, faPaperPlane, faBookAtlas, faAtlas, faTable, faHeart, faCircleChevronUp, faChevronCircleUp, faBatteryHalf, faBattery3, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faHandcuffs, faHatCowboySide, faIndustry, faLinesLeaning, faPassport, faInfinity, faClone, faForward, faM, faRoadSpikes, faMountain, faChess, faTemperatureThreeQuarters, faTemperature3, faThermometer3, faThermometerThreeQuarters, faB, faShieldVirus, faLitecoinSign, faDiceD6, faGripLinesVertical, faGolfBallTee, faGolfBall, faHexagon, faFolderOpen, faKaaba, faHandHolding, faSingleQuoteRight, faBottleDroplet, faWindowMinimize, faChevronRight, faEgg, faLandmarkDome, faLandmarkAlt, faWorm, faUserInjured, faStrikethrough, faBlog, faStopwatch20, faTruckPickup, faSeedling, faSprout, faTransgender, faTransgenderAlt, faStarHalf, faPhotoFilm, faPhotoVideo, faPictureInPicture, faPumpMedical, faFire, faMagnifyingGlassPlus, faSearchPlus, faFlask, faAlignRight, faCableCar, faTram, faKitMedical, faFirstAid, faGripLines, faBurger, faHamburger, faSnowman, faHotel, faPrint, faVolleyball, faVolleyballBall, faTrafficLight, faPlaneCircleCheck, faUsers, faCertificate, faAlarmClock, faHelicopterSymbol, faHouseChimneyCrack, faHouseDamage, faPersonMilitaryPointing, faDatabase, faNewspaper, faCloudRain, faMaximize, faExpandArrowsAlt, faLocationArrow, faCity, faXRay, faUmbrellaBeach, faArrowRightToBracket, faSignIn, faHeadset, faSplotch, faUpLong, faLongArrowAltUp, faHexagonNodes, faHospital, faHospitalAlt, faHospitalWide, faPersonHarassing, faMoneyBillTrendUp, faPenRuler, faPencilRuler, faRepeat, faBone, faFireFlameCurved, faFireAlt, faBusSimple, faBusAlt, faVenusMars, faBlender, faU, faShare, faMailForward, faPhoneFlip, faPhoneAlt, faToiletPortable, faPersonPregnant, faLessThan, faSuperscript, faCircleStop, faStopCircle, faArrowsUpDown, faArrowsV, faPooStorm, faPooBolt, faVideoSlash, faSquareXmark, faTimesSquare, faXmarkSquare, faHandHoldingDroplet, faHandHoldingWater, faWonSign, faKrw, faWon, faObjectUngroup, faComment, faHillAvalanche, faArrowsToEye, faSnowplow, faChartGantt, faVideo, faVideoCamera, faChessPawn, faSynagogue, faBuildingCircleCheck, faCalendarPlus, faWheelchairMove, faWheelchairAlt, faUserShield, faBold, faHeartPulse, faHeartbeat, faSquareRootVariable, faSquareRootAlt, faHandsBubbles, faHandsWash, faMarker, faClipboard, faPlaceOfWorship, faCannabis, faPeopleRoof, faDisease, faBookBible, faBible, faChessBoard, faMars, faLaptop, faUserXmark, faUserTimes, faFlagUsa, faHandMiddleFinger, faMortarPestle, faHeadSideCough, faPlaneLock, faBatteryThreeQuarters, faBattery4, faFrancSign, faFilterCircleDollar, faFunnelDollar, faCheese, faCircleH, faHospitalSymbol, faSchool, faDiceFive, faTornado, faJetFighter, faFighterJet, faThumbsDown, faBroom, faFileImport, faArrowRightToFile, faUtensils, faCutlery, faIdBadge, faSpider, faMobileRetro, faSignsPost, faMapSigns, faGroupArrowsRotate, faArrowsSplitUpAndLeft, faFillDrip, faShieldHeart, faPersonSkiingNordic, faSkiingNordic, faSquareCheck, faCheckSquare, faBath, faBathtub, faChessBishop, faPrescriptionBottleMedical, faPrescriptionBottleAlt, faDrawPolygon, faVectorPolygon, faICursor, faHeartCirclePlus, faShieldDog, faGreaterThanEqual, faEnvelopeOpen, faMound, faVoicemail, faVest, faAudioDescription, faW, faEyeDropper, faEyeDropperEmpty, faEyedropper, faCircleXmark, faTimesCircle, faXmarkCircle, faTrailer, faTurkishLiraSign, faTry, faTurkishLira, faVolcano, faWandSparkles, faMicrophone, faCrown, faTentArrowTurnLeft, faTruckFast, faShippingFast, faUserPen, faUserEdit, faUserClock, faShower, faSquareCaretUp, faCaretSquareUp, faMapLocation, faMapMarked, faPenFancy, faEuroSign, faEur, faEuro, faHouseCircleXmark, faLiraSign, faYenSign, faCny, faJpy, faRmb, faYen, faBoxOpen, faTruckField, faLocationPinLock, faPersonPraying, faPray, faClipboardList, faSackDollar, faMountainSun, faArrowUpWideShort, faSortAmountUp, faUsersLine, faStarOfDavid, faNotesMedical, faAustralSign, faClipboardUser, faFileImage, faSquareCaretRight, faCaretSquareRight, faVial, faHelicopter, faMitten, faGasPump, faEnvelopeCircleCheck, faPersonSkating, faSkating, faSun, faBaseball, faBaseballBall, faImage, faNotdef, faBasketball, faBasketballBall, faPencil, faPencilAlt, faPersonWalkingArrowLoopLeft, faDiceSix, faAnglesDown, faAngleDoubleDown, faSyringe, faWheatAwn, faWheatAlt, faPlaneUp, faAlignCenter, faHockeyPuck, faCircleArrowLeft, faArrowCircleLeft, faPlugCircleBolt, faRestroom, faAnchorLock, faTimeline, faLightbulb, faCircleArrowRight, faArrowCircleRight, faMarsAndVenus, faNetworkWired, faBuildingShield, faCode, faFeatherPointed, faFeatherAlt, faFileCircleQuestion, faSignature, faEarthAmericas, faEarth, faEarthAmerica, faGlobeAmericas, faCarrot, faTemperatureFull, faTemperature4, faThermometer4, faThermometerFull, faTableCellsRowLock, faBoltLightning, faCloudShowersWater, faArrowUpLong, faLongArrowUp, faAddressCard, faContactCard, faVcard, faAngleRight, faFaceMeh, faMeh, faArrowUpFromGroundWater, faMap, faUserPlus, faVenus, faDiagramSuccessor, faHeadSideCoughSlash, faDiagramProject, faProjectDiagram, faTerminal, faHouseFire, faMask, faHurricane, faEarthAfrica, faGlobeAfrica, faThumbtack, faThumbTack, faHandPointDown, faFaceMehBlank, faMehBlank, faTemperatureEmpty, faTemperature0, faThermometer0, faThermometerEmpty, faBorderNone, faHighlighter, faMoneyBillWave, faToiletPaperSlash, faFileShield, faTextHeight, faFaceGrinTongue, faGrinTongue, faFileSignature, faBuildingWheat, faPlugCircleMinus, faFutbol, faFutbolBall, faSoccerBall, faCirclePlus, faPlusCircle, faBrazilianRealSign, faStarAndCrescent, faFaceSurprise, faSurprise, faHospitalUser, faArrowDownUpLock, faFolder, faFolderBlank, faHollyBerry, faVenusDouble, faClipboardQuestion, faHotdog, faArrowUpFromBracket, faMicroscope, faCloud, faBaseballBatBall, faCarRear, faCarAlt, faThumbtackSlash, faThumbTackSlash, faPlusMinus, faHouseCircleCheck, faCalendarDay, faLibra, faCircle, faMobileVibrate, faFaceGrinSquint, faGrinSquint, faUsersBetweenLines, faHouseMedicalCircleXmark, faTableList, faThList, faFlaskVial, faCircleExclamation, faExclamationCircle, faTaxi, faCab, faTextSlash, faRemoveFormat, faPeoplePulling, faBackward, faCarBurst, faCarCrash, faLink, faChain, faBackwardStep, faStepBackward, faX, faCircleUser, faUserCircle, faRectangleList, faListAlt, faHand, faHandPaper, faCancer, faVanShuttle, faShuttleVan, faStairs, faHorseHead, faVault, faClosedCaptioningSlash, faDrumSteelpan, faThumbsUp, faStamp, faMenorah, faChildren, faChartLine, faLineChart, faSquareEnvelope, faEnvelopeSquare, faBanSmoking, faSmokingBan, faTruckFront, faBuilding, faBullseye, faArrowLeftLong, faLongArrowLeft, faChessRook, faBlenderPhone, faArrowTurnUp, faLevelUp, faBicycle, faCircleArrowDown, faArrowCircleDown, faGear, faCog, faMarsAndVenusBurst, faOtter, faCircleChevronLeft, faChevronCircleLeft, faCircleQuestion, faQuestionCircle, faWalkieTalkie, faUserGroup, faUserFriends, faHouseChimney, faHomeLg, faRightFromBracket, faSignOutAlt, faFile, faPlaneSlash, faCloudShowersHeavy, faPersonFalling, faTurnDown, faLevelDownAlt, faUpRightAndDownLeftFromCenter, faExpandAlt, faUserTag, faHandSparkles, faArrowsToDot, faFaceSadCry, faSadCry, faDongSign, faPeopleLine, faSquareRss, faRssSquare, faCalendarMinus, faChartDiagram, faFaceTired, faTired, faHandPointRight, faArrowUp, faCubesStacked, faChildCombatant, faChildRifle, faVestPatches, faMartiniGlassEmpty, faGlassMartini, faMagnet, faRoadBarrier, faCompassDrafting, faDraftingCompass, faSquarePersonConfined, faPlateWheat, faSignHanging, faSign, faCarBattery, faBatteryCar, faShirt, faTShirt, faTshirt, faParagraph, faEnvelopesBulk, faMailBulk, faGuitar, faSuitcase, faCircleUp, faArrowAltCircleUp, faF, faXmarksLines, faEarthOceania, faGlobeOceania, faCommentSlash, faPlay, faVialCircleCheck, faBridgeCircleCheck, faCediSign, faPuzzlePiece, faHelmetUn, faGlassWater, faHeartCircleBolt, faPumpSoap, faHandScissors, faDolly, faDollyBox, faPaperclip, faDemocrat, faSquareArrowUpRight, faExternalLinkSquare, faFerry, faMosquito, faBuildingCircleArrowRight, faLeftRight, faArrowsAltH, faVirus, faGem, faToilet, faSingleQuoteLeft, faMoneyBills, faTabletButton, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faWrench, faTrashCan, faTrashAlt, faTableCells, faTh, faRibbon, faLandmarkFlag, faUpDownLeftRight, faArrowsAlt, faCarSide, faTrashArrowUp, faTrashRestore, faLifeRing, faCopyright, faFilePrescription, faEraser, faHourglassStart, faHourglass1, faCircleLeft, faArrowAltCircleLeft, faCruzeiroSign, faSmoking, faSquarePollVertical, faPoll, faPersonCircleMinus, faBiohazard, faBellConcierge, faConciergeBell, faRulerHorizontal, faHorse, faCalendar, faHandsHoldingChild, faItalic, faKhanda, faFaceFrownOpen, faFrownOpen, faCheck, faFingerprint, faChargingStation, faUserLock, faMobileScreenButton, faMobileAlt, faAnchorCircleCheck, faPersonWalkingWithCane, faBlind, faFileWaveform, faFileMedicalAlt, faHouseCrack, faHatWizard, faUserDoctor, faUserMd, faChartBar, faBarChart, faSprayCanSparkles, faAirFreshener, faBahtSign, faTemperatureArrowUp, faTemperatureUp, faWebAwesome, faNonBinary, faN, faArrowsUpDownLeftRight, faArrows, faHouse, faHome, faHomeAlt, faHomeLgAlt, faSpinner, faGavel, faLegal, faTicketSimple, faTicketAlt, faDove, faTarpDroplet, faTreeCity, faTurnUp, faLevelUpAlt, faTemperatureQuarter, faTemperature1, faThermometer1, faThermometerQuarter, faSliders, faSlidersH, faMosque, faH, faInfo, faPersonWalking, faWalking, faArrowTurnDown, faLevelDown, faRoad, faSpiral, faFaceFrown, faFrown, faWineGlassEmpty, faWineGlassAlt, faClapperboard, faForwardStep, faStepForward, faSquareUpRight, faExternalLinkSquareAlt, faBookJournalWhills, faJournalWhills, faChampagneGlasses, faGlassCheers, faDumpster, faHeartCircleXmark, faComputer, faWandMagic, faMagic, faBrain, faBriefcaseMedical, faHouseMedicalCircleExclamation, faCodeCommit, faPersonBreastfeeding, faPersonRays, faManatSign, faSort, faUnsorted, faCircleRadiation, faRadiationAlt, faLaptopCode, faSink, faArrowUpFromWaterPump, faMicrophoneLinesSlash, faMicrophoneAltSlash, faServer, faUser, faUserAlt, faUserLarge, faSnowflake, faTaurus, faSkullCrossbones, faPesoSign, faWineGlass, faTemperatureHalf, faTemperature2, faThermometer2, faThermometerHalf, faTicket, faWheatAwnCircleExclamation, faArrowsTurnRight, faCandyCane, faWheelchair, faSpellCheck, faVolumeOff, faLungs, faBookmark, faBarcode, faListOl, faList12, faListNumeric, faFileCircleXmark, faCube, faTape, faBomb, faScaleUnbalanced, faBalanceScaleLeft, faSquareCaretLeft, faCaretSquareLeft, faRuler, faI, faVolumeXmark, faVolumeMute, faVolumeTimes, faArchway, faPersonDigging, faDigging, faGaugeHigh, faTachometerAlt, faTachometerAltFast, faGenderless, faCloudSun, faArrowRight, faHandshake, faHandshakeAlt, faHandshakeSimple, faPersonSkiing, faSkiing, faBridgeWater, faBuildingNgo, faIgloo, faCircleDollarToSlot, faDonate, faY, faFaceSmileWink, faSmileWink, faDiceFour, faFaceGrinSquintTears, faGrinSquintTears, faFileAudio, faArrowsDownToLine, faG, faVihara, faFlagCheckered, faGaugeSimple, faGaugeSimpleMed, faTachometerAverage, faRightLeft, faExchangeAlt, faPills, faExplosion, faArrowsDownToPeople, faUsersViewfinder, faCarOn, faSleigh, faDumbbell, faBabyCarriage, faCarriageBaby, faKiwiBird, faCalendarXmark, faCalendarTimes, faCircleDown, faArrowAltCircleDown, faFileMedical, faXmark, faClose, faMultiply, faRemove, faTimes, faShapes, faTriangleCircleSquare, faDiceOne, faLockOpen, faPepperHot, faDropletSlash, faTintSlash, faDroplet, faTint, faFileLines, faFileAlt, faFileText, faCommentsDollar, faMagnifyingGlassLocation, faSearchLocation, faFileInvoice, faPentagon, faRepublican, faShop, faStoreAlt, faFilm, faFilmAlt, faFilmSimple, faBuildingCircleXmark, faComments, faTags, faGun, faCircleCheck, faCheckCircle, faScorpio, faIdCardClip, faIdCardAlt, faMoon, faOilWell, faTachographDigital, faDigitalTachograph, faTablet, faTabletAndroid, faRubleSign, faRouble, faRub, faRuble, faClosedCaptioning, faPen, faPlane, faImages, faMobileScreen, faMobileAndroidAlt, faGuaraniSign, faBagShopping, faShoppingBag, faCircleRight, faArrowAltCircleRight, faPhoneVolume, faVolumeControlPhone, faCubes, faPhone, faToriiGate, faBacon, faPersonFallingBurst, faQuoteRight, faQuoteRightAlt, faHouseMedicalFlag, faPrescription, faDiceThree, faBuildingLock, faIdCard, faDriversLicense, faCirclePlay, faPlayCircle, faFaceLaughBeam, faLaughBeam, faLeaf, faHouseChimneyUser, faRotateRight, faRedoAlt, faRotateForward, faTooth, faHouseChimneyWindow, faMotorcycle, faBackwardFast, faFastBackward, faAddressBook, faContactBook, faSailboat, faBookBookmark, faMagnifyingGlassArrowRight, faMicrophoneLines, faMicrophoneAlt, faReplyAll, faMailReplyAll, faUniversalAccess, faToiletPaper, faToiletPaperAlt, faToiletPaperBlank, faVrCardboard, faPizzaSlice, faSprayCan, faVolumeLow, faVolumeDown, faCross, faPerson, faMale, faHourglass, faHourglassEmpty, faFish, faDrumstickBite, faChartSimple, faAtom, faP, faJetFighterUp, faPlugCircleXmark, faSheetPlastic, faV, faList, faListSquares, faPisces, faSolarPanel, faLandMineOn, faHeadphones, faHeadphonesAlt, faHeadphonesSimple, faBus, faFilePowerpoint, faQuoteLeft, faQuoteLeftAlt, faChevronDown, faEarthAsia, faGlobeAsia, faCentSign, faShieldCat, faSchoolCircleCheck, faMartiniGlass, faGlassMartiniAlt, faPlug, faPanorama, faClockRotateLeft, faHistory, faJarWheat, faCloudArrowDown, faCloudDownload, faCloudDownloadAlt, faTruckRampBox, faTruckLoading, faAngleDown, faPlugCircleCheck, faWindowMaximize, faHandsHoldingCircle, faLocationPin, faMapMarker, faBowlingBall, faCartFlatbed, faDollyFlatbed, faHouseUser, faHomeUser, faGhost, faCommentNodes, faPersonArrowDownToLine, faPlugCirclePlus, faPersonSwimming, faSwimmer, faCommentDots, faCommenting, faChartPie, faPieChart, faFrog, faWineBottle, faInbox, faSquareH, faHSquare, faHouseMedical, faCircleChevronRight, faChevronCircleRight, faFileCsv, faHatCowboy, faFaceGrinTongueWink, faGrinTongueWink, faL, faArrowDownShortWide, faSortAmountDesc, faSortAmountDownAlt, faHourglassHalf, faHourglass2, faSpoon, faUtensilSpoon, faCreditCard, faCreditCardAlt, faFileInvoiceDollar, faSpaghettiMonsterFlying, faPastafarianism, faMartiniGlassCitrus, faCocktail, faBullhorn, faBoxTissue, faMattressPillow, faChevronLeft, faCloudMoonRain, faArrowDown19, faSortNumericAsc, faSortNumericDown, faHandSpock, faWandMagicSparkles, faMagicWandSparkles, faCommentMedical, faBellSlash, faHandshakeSlash, faHandshakeAltSlash, faHandshakeSimpleSlash, faBottleWater, faDiceD20, faArrowDownZA, faSortAlphaDesc, faSortAlphaDownAlt, faBrush, faPersonWalkingDashedLineArrowRight, faArrowUpShortWide, faSortAmountUpAlt, faGripVertical, faGridVertical, faCarTunnel, faChartColumn, faCapricorn, faTruckArrowRight, faTv, faTelevision, faTvAlt, faSection, faPeace, faStar, faFlag, faTriangleExclamation, faExclamationTriangle, faWarning, faSchoolCircleExclamation, faGraduationCap, faMortarBoard, faStore, faUserAstronaut, faBuildingFlag, faMugSaucer, faCoffee, faLemon, faCaravan, faQ, faLock, faPaintRoller, faVolumeHigh, faVolumeUp, faFolderPlus, faMercury, faAnchor, faSquareParking, faParking, faHanukiah, faRotateLeft, faRotateBack, faRotateBackward, faUndoAlt, faHeading, faHeader, faCrosshairs, faCircleNodes, faWindowRestore, faR, faFilterCircleXmark, faGopuram, faHeartCircleMinus, faStarOfLife, faBusinessTime, faBriefcaseClock, faFireExtinguisher, faArrowDownLong, faLongArrowDown, faUserMinus, faMoneyCheck, faHouseLaptop, faLaptopHouse, faDownload, faSagittarius, faCouch, faRoadLock, faScissors, faCut, faBug, faArrowRightFromBracket, faSignOut, faHandHoldingHand, faStroopwafel, faChild, faIceCream, faComputerMouse, faMouse, faFaucet, faAward, faPersonDrowning, faCameraRotate, faFaceGrinHearts, faGrinHearts, faFileFragment, faPersonMilitaryRifle, faToggleOn, faLungsVirus, faTableTennisPaddleBall, faPingPongPaddleBall, faTableTennis, faBoxesPacking, faPersonChalkboard, faDiceTwo, faArrowRightArrowLeft, faExchange, faFootball, faFootballBall, faTruckMonster, faAsterisk, faBatteryFull, faBattery, faBattery5, faChildDress, faFaceKissBeam, faKissBeam, faTrashCanArrowUp, faTrashRestoreAlt, faFont, faBoreHole, faVirusCovid, faFilePdf, faLanguage, faShieldHalved, faShieldAlt, faCaretUp, faFilePen, faFileEdit, faPersonBiking, faBiking, faBookOpenReader, faBookReader, faGlassWaterDroplet, faTowerBroadcast, faBroadcastTower, faMinimize, faCompressArrowsAlt, faArrowRightToCity, faLaptopMedical, faBreadSlice, faGlobe, faFolderMinus, faMaskFace, faBong, faRoadBridge, faArrowUp91, faSortNumericUpAlt, faMountainCity, faArrowDown91, faSortNumericDesc, faSortNumericDownAlt, faFaceGrinWide, faGrinAlt, faPoop, faDharmachakra, faBatteryQuarter, faBattery2, faAnkh, faDiamond, faSubscript, faRupeeSign, faRupee, faPersonRifle, faD, faSquareNfi, faTeeth, faMagnifyingGlassDollar, faSearchDollar, faDumpsterFire, faUpload, faUserSlash, faUserAltSlash, faUserLargeSlash, faArrowLeft, faVialVirus, faCheckDouble, faPaw, faHelmetSafety, faHardHat, faHatHard, faE, faFaceLaughSquint, faLaughSquint, faDownLeftAndUpRightToCenter, faCompressAlt, faGifts, faBed, faMoneyBillTransfer, faPersonRunning, faRunning, faCircleChevronDown, faChevronCircleDown, faUserNurse, faFaceKissWinkHeart, faKissWinkHeart, faFill, faMoneyBill1Wave, faMoneyBillWaveAlt, faLandmark, faMusic, faBookMedical, faShuffle, faRandom, faUnderline, faBuildingUser, faRobot, faPlus, faAdd, faCopy, faChessKing, faHouseFloodWater, faBitcoinSign, faBox, faSquarePlus, faPlusSquare, faArrowsLeftRight, faArrowsH, faFan, faCrow, faFileCircleCheck, faLinkSlash, faChainBroken, faChainSlash, faUnlink, faArrowRotateRight, faArrowRightRotate, faArrowRotateForward, faRedo, faPenClip, faPenAlt, faDoorClosed, faArrowDownWideShort, faSortAmountAsc, faSortAmountDown, faCaretDown, faK, faCheckToSlot, faVoteYea, faFishFins, faCompress, faArrowUpAZ, faSortAlphaUp, faUserGraduate, faFileCode, faSoap, faRecycle, faFaceGrinWink, faGrinWink, faWaterLadder, faLadderWater, faSwimmingPool, faGemini, faTowerCell, faColonSign, faLaptopFile, faBahai, faHaykal, faMoneyBill1, faMoneyBillAlt, faCloudBolt, faThunderstorm, faEthernet, faHryvniaSign, faHryvnia, faEyeSlash, faCartFlatbedSuitcase, faLuggageCart, faRadiation, faFileWord, faBedPulse, faProcedures, faTents, faMugHot, faBolt, faZap, faJar, faTruckPlane, faHandHoldingHeart, faArrowRotateLeft, faArrowLeftRotate, faArrowRotateBack, faArrowRotateBackward, faUndo, faFaceAngry, faAngry, faBurst, faZ, faBandage, faBandAid, faPlaneCircleExclamation, faBusSide, faBugs, faBeerMugEmpty, faBeer, faPersonCircleCheck, faStapler, faHouseMedicalCircleCheck, faNairaSign, faWifi, faWifi3, faWifiStrong, faMoneyCheckDollar, faMoneyCheckAlt, faEyeLowVision, faLowVision, faCircleArrowUp, faArrowCircleUp, faCameraRetro, faCapsules, faPoo, faVolume, faVolumeMedium, faElevator, faTag, faFileCircleMinus, faDownLong, faLongArrowAltDown, faCompactDisc, faSuitcaseRolling, faBookQuran, faQuran, faPhoneSlash, faRoadCircleCheck, faShopLock, faImagePortrait, faPortrait, faBridgeLock, faHammer, faArrowUp19, faSortNumericUp, faChessKnight, faHouseFloodWaterCircleArrowRight, faArrowUpRightFromSquare, faExternalLink, faArrowDownUpAcrossLine, faFaceGrinBeam, faGrinBeam, faRectangleAd, faAd, faBookTanakh, faTanakh, faHotTubPerson, faHotTub, faFileHalfDashed, faOutdent, faDedent, faHandPeace, faHeadSideVirus, faCompass, faPenNib, faTentArrowsDown, faForwardFast, faFastForward, faCrop, faWhiskeyGlass, faGlassWhiskey, faSquare, faFaceGrin, faGrin, faFileContract, faAngleUp, faFaceSmile, faSmile, faPersonDressBurst, faDivide, faCodeFork, faHouseFlag, faBuildingColumns, faBank, faInstitution, faMuseum, faUniversity, faRug, faCodeMerge, faHouseTsunami, faMagnifyingGlassChart, faUmbrella, faHillRockslide, faUserSecret, faPager, faBriefcase, faTrowelBricks, faSocks, faT, faMicrochip, faTruckMedical, faAmbulance, faOm, faMosquitoNet, faPrescriptionBottle, faUsersGear, faUsersCog, faRoadCircleExclamation, faPause, faStaffSnake, faRodAsclepius, faRodSnake, faStaffAesculapius, faPiggyBank, faMonument, faAnglesRight, faAngleDoubleRight, faDesktop, faDesktopAlt, faPlaneCircleXmark, faRetweet, faUserGear, faUserCog, faBorderAll, faCoins, faMarsStroke, faHandshakeAngle, faHandsHelping, faArrowDown, faLocationDot, faMapMarkerAlt, faPlugCircleExclamation, faCookieBite, faScrewdriverWrench, faTools, faIndent, faBars, faNavicon, faHandsPraying, faPrayingHands, faViruses, faSchoolFlag, faTrademark, faFireBurner, faFaceSmileBeam, faSmileBeam, faTentArrowLeftRight, faRoute, faAnglesUp, faAngleDoubleUp, faBucket, faLessThanEqual, faFolderClosed, faPersonThroughWindow, faSchoolLock, faPersonBurst, faLeftLong, faLongArrowAltLeft, faLocationCrosshairs, faLocation, faPersonDotsFromLine, faDiagnoses, faGaugeSimpleHigh, faTachometer, faTachometerFast, faAnglesLeft, faAngleDoubleLeft, faUpDown, faArrowsAltV, faBatteryEmpty, faBattery0, faKeyboard, faCookie, faStopwatch, faEject, faSatelliteDish, faFaceRollingEyes, faMehRollingEyes, faListCheck, faTasks, faSackXmark, faHashtag, faTrain, faGamepad, faFileExport, faArrowRightFromFile, faFaceGrimace, faGrimace, faTrainSubway, faSubway, faCircleDot, faDotCircle, faObjectGroup, faShip, faC, faSquarePhone, faPhoneSquare, faRulerCombined, faArrowsRotate, faRefresh, faSync, faPersonDress, faFemale, faBookOpen, faFolderTree, faVirgo, faBoxArchive, faArchive, faTentArrowDownToLine, faQrcode, faDragon, faHourglassEnd, faHourglass3, faGrip, faGridHorizontal, faGripHorizontal, faBorderTopLeft, faBorderStyle, faListUl, faListDots, faPeopleRobbery, faMobileButton, faArrowDownAZ, faSortAlphaAsc, faSortAlphaDown, faMoneyBill, faCircleMinus, faMinusCircle, faArrowPointer, faMousePointer, faSquareShareNodes, faShareAltSquare, faTableCellsLarge, faThLarge, faCat, faCalendarWeek, faCodeCompare, faLeo, faRoadCircleXmark, faPallet, faCakeCandles, faBirthdayCake, faCake, faBugSlash, faTarp, faDiagramPredecessor, faFaceFlushed, faFlushed, faDiagramNext, faAnchorCircleXmark, faPersonCircleXmark, faSpa, faAries, faBarsProgress, faTasksAlt, faHeartCircleCheck, faMarsStrokeRight, faMarsStrokeH, faTowerObservation, faSterlingSign, faGbp, faPoundSign, faFaucetDrip, faCircleInfo, faInfoCircle, faFeather, faBowlRice, faStarHalfStroke, faStarHalfAlt, faTemperatureArrowDown, faTemperatureDown, faMaskVentilator, faFileVideo, faArrowTrendDown, faOilCan, faPeopleCarryBox, faPeopleCarry, faChair, faWind, faLayerGroup, faHeadSideMask, faHands, faSignLanguage, faSigning, faTablets, faWeightHanging, faDice, faShopSlash, faStoreAltSlash, faSortDown, faSortDesc, faPesetaSign, faTabletScreenButton, faTabletAlt, faHandHoldingDollar, faHandHoldingUsd, faShield, faShieldBlank, faFaceLaugh, faLaugh, faHandsHolding, faCartShopping, faShoppingCart, faOctagon, faHandPointer, faRegistered, faHouseSignal, faBangladeshiTakaSign };\n", "import { SVGProps } from './types';\n\nconst defaultAttributes: SVGProps = {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': 2,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n};\n\nexport default defaultAttributes;\n", "import defaultAttributes from './defaultAttributes';\nimport { IconNode, SVGProps } from './types';\n\ntype CreateSVGElementParams = [tag: string, attrs: SVGProps, children?: IconNode];\n\n/**\n * Creates a new SVGElement\n * @param {string} tag - Tag name of the element\n * @param {object} attrs - Attributes of the element\n * @param {array} children - Children of the element\n * @returns {SVGElement}\n */\nconst createSVGElement = ([tag, attrs, children]: CreateSVGElementParams) => {\n const element = document.createElementNS('http://www.w3.org/2000/svg', tag);\n\n Object.keys(attrs).forEach((name) => {\n element.setAttribute(name, String(attrs[name]));\n });\n\n if (children?.length) {\n children.forEach((child) => {\n const childElement = createSVGElement(child);\n\n element.appendChild(childElement);\n });\n }\n\n return element;\n};\n\n/**\n * Creates a new HTMLElement from icon node\n * @param {array} iconNode - Icon node to be converted to an element\n * @param {object} customAttrs - Custom attributes to be added to the element\n * @returns {HTMLElement}\n */\nconst createElement = (iconNode: IconNode, customAttrs: SVGProps = {}) => {\n const tag = 'svg';\n const attrs = {\n ...defaultAttributes,\n ...customAttrs,\n };\n\n return createSVGElement([tag, attrs, iconNode]);\n};\n\nexport default createElement;\n", "/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n\n return false;\n};\n", "/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = (...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n", "/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = (string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n", "import { CamelToPascal } from '../utility-types';\nimport { toCamelCase } from './toCamelCase';\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = (string: T): CamelToPascal => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal;\n};\n", "import createElement from './createElement';\nimport defaultAttributes from './defaultAttributes';\nimport { Icons, SVGProps } from './types';\nimport { hasA11yProp, mergeClasses, toPascalCase } from '@lucide/shared';\n\nexport type CustomAttrs = { [attr: string]: any };\n\n/**\n * Get the attributes of an HTML element.\n * @param {HTMLElement} element\n * @returns {Object}\n */\nexport const getAttrs = (element: Element): Record =>\n Array.from(element.attributes).reduce>((attrs, attr) => {\n attrs[attr.name] = attr.value;\n return attrs;\n }, {});\n\n/**\n * Gets the classNames of an attributes Object.\n * @param {Object} attrs\n * @returns {Array}\n */\nexport const getClassNames = (\n attrs: Record | string,\n): string | string[] => {\n if (typeof attrs === 'string') return attrs;\n if (!attrs || !attrs.class) return '';\n if (attrs.class && typeof attrs.class === 'string') {\n return attrs.class.split(' ');\n }\n if (attrs.class && Array.isArray(attrs.class)) {\n return attrs.class;\n }\n return '';\n};\n\ninterface ReplaceElementOptions {\n nameAttr: string;\n icons: Icons;\n attrs: SVGProps;\n}\n\n/**\n * ReplaceElement, replaces the given element with the created icon.\n * @param {HTMLElement} element\n * @param {{ nameAttr: string, icons: object, attrs: object }} options: { nameAttr, icons, attrs }\n * @returns {Function}\n */\nconst replaceElement = (element: Element, { nameAttr, icons, attrs }: ReplaceElementOptions) => {\n const iconName = element.getAttribute(nameAttr);\n\n if (iconName == null) return;\n\n const ComponentName = toPascalCase(iconName);\n\n const iconNode = icons[ComponentName];\n\n if (!iconNode) {\n return console.warn(\n `${element.outerHTML} icon name was not found in the provided icons object.`,\n );\n }\n\n const elementAttrs = getAttrs(element);\n\n const ariaProps = hasA11yProp(elementAttrs) ? {} : { 'aria-hidden': 'true' };\n\n const iconAttrs = {\n ...defaultAttributes,\n 'data-lucide': iconName,\n ...ariaProps,\n ...attrs,\n ...elementAttrs,\n } satisfies SVGProps;\n\n const elementClassNames = getClassNames(elementAttrs);\n const className = getClassNames(attrs);\n\n const classNames = mergeClasses(\n 'lucide',\n `lucide-${iconName}`,\n ...elementClassNames,\n ...className,\n );\n\n if (classNames) {\n Object.assign(iconAttrs, {\n class: classNames,\n });\n }\n\n const svgElement = createElement(iconNode, iconAttrs);\n\n return element.parentNode?.replaceChild(svgElement, element);\n};\n\nexport default replaceElement;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name a-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTIgNCA0IDQtNCIgLz4KICA8cGF0aCBkPSJNMTggMTZWNyIgLz4KICA8cGF0aCBkPSJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik0zLjMwNCAxM2g2LjM5MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/a-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AArrowDown: IconNode = [\n ['path', { d: 'm14 12 4 4 4-4' }],\n ['path', { d: 'M18 16V7' }],\n ['path', { d: 'm2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16' }],\n ['path', { d: 'M3.304 13h6.392' }],\n];\n\nexport default AArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name a-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTEgNC00IDQgNCIgLz4KICA8cGF0aCBkPSJNMTggMTZWNyIgLz4KICA8cGF0aCBkPSJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik0zLjMwNCAxM2g2LjM5MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/a-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AArrowUp: IconNode = [\n ['path', { d: 'm14 11 4-4 4 4' }],\n ['path', { d: 'M18 16V7' }],\n ['path', { d: 'm2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16' }],\n ['path', { d: 'M3.304 13h6.392' }],\n];\n\nexport default AArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name a-large-small\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTYgMi41MzYtNy4zMjhhMS4wMiAxLjAyIDEgMCAxIDEuOTI4IDBMMjIgMTYiIC8+CiAgPHBhdGggZD0iTTE1LjY5NyAxNGg1LjYwNiIgLz4KICA8cGF0aCBkPSJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik0zLjMwNCAxM2g2LjM5MiIgLz4KPC9zdmc+) - https://lucide.dev/icons/a-large-small\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ALargeSmall: IconNode = [\n ['path', { d: 'm15 16 2.536-7.328a1.02 1.02 1 0 1 1.928 0L22 16' }],\n ['path', { d: 'M15.697 14h5.606' }],\n ['path', { d: 'm2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16' }],\n ['path', { d: 'M3.304 13h6.392' }],\n];\n\nexport default ALargeSmall;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name accessibility\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjQiIHI9IjEiIC8+CiAgPHBhdGggZD0ibTE4IDE5IDEtNy02IDEiIC8+CiAgPHBhdGggZD0ibTUgOCAzLTMgNS41IDMtMi4zNiAzLjUiIC8+CiAgPHBhdGggZD0iTTQuMjQgMTQuNWE1IDUgMCAwIDAgNi44OCA2IiAvPgogIDxwYXRoIGQ9Ik0xMy43NiAxNy41YTUgNSAwIDAgMC02Ljg4LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/accessibility\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Accessibility: IconNode = [\n ['circle', { cx: '16', cy: '4', r: '1' }],\n ['path', { d: 'm18 19 1-7-6 1' }],\n ['path', { d: 'm5 8 3-3 5.5 3-2.36 3.5' }],\n ['path', { d: 'M4.24 14.5a5 5 0 0 0 6.88 6' }],\n ['path', { d: 'M13.76 17.5a5 5 0 0 0-6.88-6' }],\n];\n\nexport default Accessibility;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name air-vent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTcuNWEyLjUgMi41IDAgMSAxLTQgMi4wM1YxMiIgLz4KICA8cGF0aCBkPSJNNiAxMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0yIiAvPgogIDxwYXRoIGQ9Ik02IDhoMTIiIC8+CiAgPHBhdGggZD0iTTYuNiAxNS41NzJBMiAyIDAgMSAwIDEwIDE3di01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/air-vent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AirVent: IconNode = [\n ['path', { d: 'M18 17.5a2.5 2.5 0 1 1-4 2.03V12' }],\n ['path', { d: 'M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M6 8h12' }],\n ['path', { d: 'M6.6 15.572A2 2 0 1 0 10 17v-5' }],\n];\n\nexport default AirVent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name activity\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/activity\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Activity: IconNode = [\n [\n 'path',\n {\n d: 'M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2',\n },\n ],\n];\n\nexport default Activity;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name airplay\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMSIgLz4KICA8cGF0aCBkPSJtMTIgMTUgNSA2SDdaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/airplay\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Airplay: IconNode = [\n ['path', { d: 'M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1' }],\n ['path', { d: 'm12 15 5 6H7Z' }],\n];\n\nexport default Airplay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-clock-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSI4IiAvPgogIDxwYXRoIGQ9Ik01IDMgMiA2IiAvPgogIDxwYXRoIGQ9Im0yMiA2LTMtMyIgLz4KICA8cGF0aCBkPSJNNi4zOCAxOC43IDQgMjEiIC8+CiAgPHBhdGggZD0iTTE3LjY0IDE4LjY3IDIwIDIxIiAvPgogIDxwYXRoIGQ9Im05IDEzIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/alarm-clock-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmClockCheck: IconNode = [\n ['circle', { cx: '12', cy: '13', r: '8' }],\n ['path', { d: 'M5 3 2 6' }],\n ['path', { d: 'm22 6-3-3' }],\n ['path', { d: 'M6.38 18.7 4 21' }],\n ['path', { d: 'M17.64 18.67 20 21' }],\n ['path', { d: 'm9 13 2 2 4-4' }],\n];\n\nexport default AlarmClockCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-clock-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSI4IiAvPgogIDxwYXRoIGQ9Ik01IDMgMiA2IiAvPgogIDxwYXRoIGQ9Im0yMiA2LTMtMyIgLz4KICA8cGF0aCBkPSJNNi4zOCAxOC43IDQgMjEiIC8+CiAgPHBhdGggZD0iTTE3LjY0IDE4LjY3IDIwIDIxIiAvPgogIDxwYXRoIGQ9Ik05IDEzaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/alarm-clock-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmClockMinus: IconNode = [\n ['circle', { cx: '12', cy: '13', r: '8' }],\n ['path', { d: 'M5 3 2 6' }],\n ['path', { d: 'm22 6-3-3' }],\n ['path', { d: 'M6.38 18.7 4 21' }],\n ['path', { d: 'M17.64 18.67 20 21' }],\n ['path', { d: 'M9 13h6' }],\n];\n\nexport default AlarmClockMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-clock-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNi44NyA2Ljg3YTggOCAwIDEgMCAxMS4yNiAxMS4yNiIgLz4KICA8cGF0aCBkPSJNMTkuOSAxNC4yNWE4IDggMCAwIDAtOS4xNS05LjE1IiAvPgogIDxwYXRoIGQ9Im0yMiA2LTMtMyIgLz4KICA8cGF0aCBkPSJNNi4yNiAxOC42NyA0IDIxIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTQgNCAyIDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/alarm-clock-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmClockOff: IconNode = [\n ['path', { d: 'M6.87 6.87a8 8 0 1 0 11.26 11.26' }],\n ['path', { d: 'M19.9 14.25a8 8 0 0 0-9.15-9.15' }],\n ['path', { d: 'm22 6-3-3' }],\n ['path', { d: 'M6.26 18.67 4 21' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M4 4 2 6' }],\n];\n\nexport default AlarmClockOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-clock-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSI4IiAvPgogIDxwYXRoIGQ9Ik01IDMgMiA2IiAvPgogIDxwYXRoIGQ9Im0yMiA2LTMtMyIgLz4KICA8cGF0aCBkPSJNNi4zOCAxOC43IDQgMjEiIC8+CiAgPHBhdGggZD0iTTE3LjY0IDE4LjY3IDIwIDIxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMHY2IiAvPgogIDxwYXRoIGQ9Ik05IDEzaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/alarm-clock-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmClockPlus: IconNode = [\n ['circle', { cx: '12', cy: '13', r: '8' }],\n ['path', { d: 'M5 3 2 6' }],\n ['path', { d: 'm22 6-3-3' }],\n ['path', { d: 'M6.38 18.7 4 21' }],\n ['path', { d: 'M17.64 18.67 20 21' }],\n ['path', { d: 'M12 10v6' }],\n ['path', { d: 'M9 13h6' }],\n];\n\nexport default AlarmClockPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSI4IiAvPgogIDxwYXRoIGQ9Ik0xMiA5djRsMiAyIiAvPgogIDxwYXRoIGQ9Ik01IDMgMiA2IiAvPgogIDxwYXRoIGQ9Im0yMiA2LTMtMyIgLz4KICA8cGF0aCBkPSJNNi4zOCAxOC43IDQgMjEiIC8+CiAgPHBhdGggZD0iTTE3LjY0IDE4LjY3IDIwIDIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/alarm-clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmClock: IconNode = [\n ['circle', { cx: '12', cy: '13', r: '8' }],\n ['path', { d: 'M12 9v4l2 2' }],\n ['path', { d: 'M5 3 2 6' }],\n ['path', { d: 'm22 6-3-3' }],\n ['path', { d: 'M6.38 18.7 4 21' }],\n ['path', { d: 'M17.64 18.67 20 21' }],\n];\n\nexport default AlarmClock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name alarm-smoke\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjFjMC0yLjUgMi0yLjUgMi01IiAvPgogIDxwYXRoIGQ9Ik0xNiAyMWMwLTIuNSAyLTIuNSAyLTUiIC8+CiAgPHBhdGggZD0ibTE5IDgtLjggM2ExLjI1IDEuMjUgMCAwIDEtMS4yIDFIN2ExLjI1IDEuMjUgMCAwIDEtMS4yLTFMNSA4IiAvPgogIDxwYXRoIGQ9Ik0yMSAzYTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY0YTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik02IDIxYzAtMi41IDItMi41IDItNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/alarm-smoke\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlarmSmoke: IconNode = [\n ['path', { d: 'M11 21c0-2.5 2-2.5 2-5' }],\n ['path', { d: 'M16 21c0-2.5 2-2.5 2-5' }],\n ['path', { d: 'm19 8-.8 3a1.25 1.25 0 0 1-1.2 1H7a1.25 1.25 0 0 1-1.2-1L5 8' }],\n ['path', { d: 'M21 3a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a1 1 0 0 1 1-1z' }],\n ['path', { d: 'M6 21c0-2.5 2-2.5 2-5' }],\n];\n\nexport default AlarmSmoke;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name album\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cG9seWxpbmUgcG9pbnRzPSIxMSAzIDExIDExIDE0IDggMTcgMTEgMTcgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/album\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Album: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['polyline', { points: '11 3 11 11 14 8 17 11 17 3' }],\n];\n\nexport default Album;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-center-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KICA8cGF0aCBkPSJNMTAgMTZ2NGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtNCIgLz4KICA8cGF0aCBkPSJNMTAgOFY0YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjQiIC8+CiAgPHBhdGggZD0iTTIwIDE2djFhMiAyIDAgMCAxLTIgMmgtMmEyIDIgMCAwIDEtMi0ydi0xIiAvPgogIDxwYXRoIGQ9Ik0xNCA4VjdjMC0xLjEuOS0yIDItMmgyYTIgMiAwIDAgMSAyIDJ2MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-center-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignCenterHorizontal: IconNode = [\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4' }],\n ['path', { d: 'M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4' }],\n ['path', { d: 'M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1' }],\n ['path', { d: 'M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1' }],\n];\n\nexport default AlignCenterHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-center-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KICA8cGF0aCBkPSJNOCAxMEg0YTIgMiAwIDAgMS0yLTJWNmMwLTEuMS45LTIgMi0yaDQiIC8+CiAgPHBhdGggZD0iTTE2IDEwaDRhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJoLTQiIC8+CiAgPHBhdGggZD0iTTggMjBIN2EyIDIgMCAwIDEtMi0ydi0yYzAtMS4xLjktMiAyLTJoMSIgLz4KICA8cGF0aCBkPSJNMTYgMTRoMWEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMmgtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-center-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignCenterVertical: IconNode = [\n ['path', { d: 'M12 2v20' }],\n ['path', { d: 'M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4' }],\n ['path', { d: 'M16 10h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4' }],\n ['path', { d: 'M8 20H7a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2h1' }],\n ['path', { d: 'M16 14h1a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-1' }],\n];\n\nexport default AlignCenterVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-end-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNiIgeD0iNCIgeT0iMiIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iOSIgeD0iMTQiIHk9IjkiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMiAyMkgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-end-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignEndHorizontal: IconNode = [\n ['rect', { width: '6', height: '16', x: '4', y: '2', rx: '2' }],\n ['rect', { width: '6', height: '9', x: '14', y: '9', rx: '2' }],\n ['path', { d: 'M22 22H2' }],\n];\n\nexport default AlignEndHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-end-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeD0iMiIgeT0iNCIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjkiIGhlaWdodD0iNiIgeD0iOSIgeT0iMTQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMiAyMlYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-end-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignEndVertical: IconNode = [\n ['rect', { width: '16', height: '6', x: '2', y: '4', rx: '2' }],\n ['rect', { width: '9', height: '6', x: '9', y: '14', rx: '2' }],\n ['path', { d: 'M22 22V2' }],\n];\n\nexport default AlignEndVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-distribute-center\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iNCIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE0IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTcgMjJ2LTUiIC8+CiAgPHBhdGggZD0iTTE3IDdWMiIgLz4KICA8cGF0aCBkPSJNNyAyMnYtMyIgLz4KICA8cGF0aCBkPSJNNyA1VjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/align-horizontal-distribute-center\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalDistributeCenter: IconNode = [\n ['rect', { width: '6', height: '14', x: '4', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '14', y: '7', rx: '2' }],\n ['path', { d: 'M17 22v-5' }],\n ['path', { d: 'M17 7V2' }],\n ['path', { d: 'M7 22v-3' }],\n ['path', { d: 'M7 5V2' }],\n];\n\nexport default AlignHorizontalDistributeCenter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-distribute-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iNCIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE0IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTAgMnYyMCIgLz4KICA8cGF0aCBkPSJNMjAgMnYyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-horizontal-distribute-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalDistributeEnd: IconNode = [\n ['rect', { width: '6', height: '14', x: '4', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '14', y: '7', rx: '2' }],\n ['path', { d: 'M10 2v20' }],\n ['path', { d: 'M20 2v20' }],\n];\n\nexport default AlignHorizontalDistributeEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-distribute-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iNCIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE0IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNCAydjIwIiAvPgogIDxwYXRoIGQ9Ik0xNCAydjIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-horizontal-distribute-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalDistributeStart: IconNode = [\n ['rect', { width: '6', height: '14', x: '4', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '14', y: '7', rx: '2' }],\n ['path', { d: 'M4 2v20' }],\n ['path', { d: 'M14 2v20' }],\n];\n\nexport default AlignHorizontalDistributeStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-justify-center\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE2IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-horizontal-justify-center\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalJustifyCenter: IconNode = [\n ['rect', { width: '6', height: '14', x: '2', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '16', y: '7', rx: '2' }],\n ['path', { d: 'M12 2v20' }],\n];\n\nexport default AlignHorizontalJustifyCenter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-justify-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjEyIiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMjIgMnYyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-horizontal-justify-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalJustifyEnd: IconNode = [\n ['rect', { width: '6', height: '14', x: '2', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '12', y: '7', rx: '2' }],\n ['path', { d: 'M22 2v20' }],\n];\n\nexport default AlignHorizontalJustifyEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-justify-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iNiIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE2IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAydjIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-horizontal-justify-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalJustifyStart: IconNode = [\n ['rect', { width: '6', height: '14', x: '6', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '16', y: '7', rx: '2' }],\n ['path', { d: 'M2 2v20' }],\n];\n\nexport default AlignHorizontalJustifyStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-space-around\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxMCIgeD0iOSIgeT0iNyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTQgMjJWMiIgLz4KICA8cGF0aCBkPSJNMjAgMjJWMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-horizontal-space-around\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalSpaceAround: IconNode = [\n ['rect', { width: '6', height: '10', x: '9', y: '7', rx: '2' }],\n ['path', { d: 'M4 22V2' }],\n ['path', { d: 'M20 22V2' }],\n];\n\nexport default AlignHorizontalSpaceAround;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-horizontal-space-between\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNCIgeD0iMyIgeT0iNSIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE1IiB5PSI3IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMyAydjIwIiAvPgogIDxwYXRoIGQ9Ik0yMSAydjIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-horizontal-space-between\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignHorizontalSpaceBetween: IconNode = [\n ['rect', { width: '6', height: '14', x: '3', y: '5', rx: '2' }],\n ['rect', { width: '6', height: '10', x: '15', y: '7', rx: '2' }],\n ['path', { d: 'M3 2v20' }],\n ['path', { d: 'M21 2v20' }],\n];\n\nexport default AlignHorizontalSpaceBetween;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-start-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIxNiIgeD0iNCIgeT0iNiIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iOSIgeD0iMTQiIHk9IjYiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMiAySDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/align-start-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignStartHorizontal: IconNode = [\n ['rect', { width: '6', height: '16', x: '4', y: '6', rx: '2' }],\n ['rect', { width: '6', height: '9', x: '14', y: '6', rx: '2' }],\n ['path', { d: 'M22 2H2' }],\n];\n\nexport default AlignStartHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-start-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOSIgaGVpZ2h0PSI2IiB4PSI2IiB5PSIxNCIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjYiIHg9IjYiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yIDJ2MjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/align-start-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignStartVertical: IconNode = [\n ['rect', { width: '9', height: '6', x: '6', y: '14', rx: '2' }],\n ['rect', { width: '16', height: '6', x: '6', y: '4', rx: '2' }],\n ['path', { d: 'M2 2v20' }],\n];\n\nexport default AlignStartVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-distribute-center\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdoLTMiIC8+CiAgPHBhdGggZD0iTTIyIDdoLTUiIC8+CiAgPHBhdGggZD0iTTUgMTdIMiIgLz4KICA8cGF0aCBkPSJNNyA3SDIiIC8+CiAgPHJlY3QgeD0iNSIgeT0iMTQiIHdpZHRoPSIxNCIgaGVpZ2h0PSI2IiByeD0iMiIgLz4KICA8cmVjdCB4PSI3IiB5PSI0IiB3aWR0aD0iMTAiIGhlaWdodD0iNiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/align-vertical-distribute-center\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalDistributeCenter: IconNode = [\n ['path', { d: 'M22 17h-3' }],\n ['path', { d: 'M22 7h-5' }],\n ['path', { d: 'M5 17H2' }],\n ['path', { d: 'M7 7H2' }],\n ['rect', { x: '5', y: '14', width: '14', height: '6', rx: '2' }],\n ['rect', { x: '7', y: '4', width: '10', height: '6', rx: '2' }],\n];\n\nexport default AlignVerticalDistributeCenter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-distribute-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTQiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSI0IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAyMGgyMCIgLz4KICA8cGF0aCBkPSJNMiAxMGgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-vertical-distribute-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalDistributeEnd: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '14', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '4', rx: '2' }],\n ['path', { d: 'M2 20h20' }],\n ['path', { d: 'M2 10h20' }],\n];\n\nexport default AlignVerticalDistributeEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-distribute-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTQiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSI0IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyMCIgLz4KICA8cGF0aCBkPSJNMiA0aDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-vertical-distribute-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalDistributeStart: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '14', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '4', rx: '2' }],\n ['path', { d: 'M2 14h20' }],\n ['path', { d: 'M2 4h20' }],\n];\n\nexport default AlignVerticalDistributeStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-justify-center\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTYiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSIyIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-vertical-justify-center\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalJustifyCenter: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '16', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '2', rx: '2' }],\n ['path', { d: 'M2 12h20' }],\n];\n\nexport default AlignVerticalJustifyCenter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-justify-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTIiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSIyIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAyMmgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-vertical-justify-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalJustifyEnd: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '12', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '2', rx: '2' }],\n ['path', { d: 'M2 22h20' }],\n];\n\nexport default AlignVerticalJustifyEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-justify-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTYiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSI2IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAyaDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-vertical-justify-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalJustifyStart: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '16', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '6', rx: '2' }],\n ['path', { d: 'M2 2h20' }],\n];\n\nexport default AlignVerticalJustifyStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-space-around\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iNiIgeD0iNyIgeT0iOSIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTIyIDIwSDIiIC8+CiAgPHBhdGggZD0iTTIyIDRIMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/align-vertical-space-around\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalSpaceAround: IconNode = [\n ['rect', { width: '10', height: '6', x: '7', y: '9', rx: '2' }],\n ['path', { d: 'M22 20H2' }],\n ['path', { d: 'M22 4H2' }],\n];\n\nexport default AlignVerticalSpaceAround;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name align-vertical-space-between\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iNiIgeD0iNSIgeT0iMTUiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiB4PSI3IiB5PSIzIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAyMWgyMCIgLz4KICA8cGF0aCBkPSJNMiAzaDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/align-vertical-space-between\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AlignVerticalSpaceBetween: IconNode = [\n ['rect', { width: '14', height: '6', x: '5', y: '15', rx: '2' }],\n ['rect', { width: '10', height: '6', x: '7', y: '3', rx: '2' }],\n ['path', { d: 'M2 21h20' }],\n ['path', { d: 'M2 3h20' }],\n];\n\nexport default AlignVerticalSpaceBetween;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ambulance\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTBINiIgLz4KICA8cGF0aCBkPSJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIiIC8+CiAgPHBhdGgKICAgIGQ9Ik0xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuMjhhMSAxIDAgMCAwLS42ODQtLjk0OGwtMS45MjMtLjY0MWExIDEgMCAwIDEtLjU3OC0uNTAybC0xLjUzOS0zLjA3NkExIDEgMCAwIDAgMTYuMzgyIDhIMTQiIC8+CiAgPHBhdGggZD0iTTggOHY0IiAvPgogIDxwYXRoIGQ9Ik05IDE4aDYiIC8+CiAgPGNpcmNsZSBjeD0iMTciIGN5PSIxOCIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iMTgiIHI9IjIiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/ambulance\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ambulance: IconNode = [\n ['path', { d: 'M10 10H6' }],\n ['path', { d: 'M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2' }],\n [\n 'path',\n {\n d: 'M19 18h2a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.684-.948l-1.923-.641a1 1 0 0 1-.578-.502l-1.539-3.076A1 1 0 0 0 16.382 8H14',\n },\n ],\n ['path', { d: 'M8 8v4' }],\n ['path', { d: 'M9 18h6' }],\n ['circle', { cx: '17', cy: '18', r: '2' }],\n ['circle', { cx: '7', cy: '18', r: '2' }],\n];\n\nexport default Ambulance;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ampersand\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTJoMyIgLz4KICA8cGF0aCBkPSJNMTcuNSAxMmE4IDggMCAwIDEtOCA4QTQuNSA0LjUgMCAwIDEgNSAxNS41YzAtNiA4LTQgOC04LjVhMyAzIDAgMSAwLTYgMGMwIDMgMi41IDguNSAxMiAxMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ampersand\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ampersand: IconNode = [\n ['path', { d: 'M16 12h3' }],\n [\n 'path',\n {\n d: 'M17.5 12a8 8 0 0 1-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13',\n },\n ],\n];\n\nexport default Ampersand;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ampersands\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTdjLTUtMy03LTctNy05YTIgMiAwIDAgMSA0IDBjMCAyLjUtNSAyLjUtNSA2IDAgMS43IDEuMyAzIDMgMyAyLjggMCA1LTIuMiA1LTUiIC8+CiAgPHBhdGggZD0iTTIyIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ampersands\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ampersands: IconNode = [\n [\n 'path',\n { d: 'M10 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5' },\n ],\n [\n 'path',\n { d: 'M22 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5' },\n ],\n];\n\nexport default Ampersands;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name amphora\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnY1LjYzMmMwIC40MjQtLjI3Mi43OTUtLjY1My45ODJBNiA2IDAgMCAwIDYgMTRjLjAwNiA0IDMgNyA1IDgiIC8+CiAgPHBhdGggZD0iTTEwIDVIOGEyIDIgMCAwIDAgMCA0aC42OCIgLz4KICA8cGF0aCBkPSJNMTQgMnY1LjYzMmMwIC40MjQuMjcyLjc5NS42NTIuOTgyQTYgNiAwIDAgMSAxOCAxNGMwIDQtMyA3LTUgOCIgLz4KICA8cGF0aCBkPSJNMTQgNWgyYTIgMiAwIDAgMSAwIDRoLS42OCIgLz4KICA8cGF0aCBkPSJNMTggMjJINiIgLz4KICA8cGF0aCBkPSJNOSAyaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/amphora\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Amphora: IconNode = [\n ['path', { d: 'M10 2v5.632c0 .424-.272.795-.653.982A6 6 0 0 0 6 14c.006 4 3 7 5 8' }],\n ['path', { d: 'M10 5H8a2 2 0 0 0 0 4h.68' }],\n ['path', { d: 'M14 2v5.632c0 .424.272.795.652.982A6 6 0 0 1 18 14c0 4-3 7-5 8' }],\n ['path', { d: 'M14 5h2a2 2 0 0 1 0 4h-.68' }],\n ['path', { d: 'M18 22H6' }],\n ['path', { d: 'M9 2h6' }],\n];\n\nexport default Amphora;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name anchor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnYxNiIgLz4KICA8cGF0aCBkPSJtMTkgMTMgMi0xYTkgOSAwIDAgMS0xOCAwbDIgMSIgLz4KICA8cGF0aCBkPSJNOSAxMWg2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iNCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/anchor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Anchor: IconNode = [\n ['path', { d: 'M12 6v16' }],\n ['path', { d: 'm19 13 2-1a9 9 0 0 1-18 0l2 1' }],\n ['path', { d: 'M9 11h6' }],\n ['circle', { cx: '12', cy: '4', r: '2' }],\n];\n\nexport default Anchor;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name angry\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIiAvPgogIDxwYXRoIGQ9Ik03LjUgOCAxMCA5IiAvPgogIDxwYXRoIGQ9Im0xNCA5IDIuNS0xIiAvPgogIDxwYXRoIGQ9Ik05IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTUgMTBoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/angry\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Angry: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M16 16s-1.5-2-4-2-4 2-4 2' }],\n ['path', { d: 'M7.5 8 10 9' }],\n ['path', { d: 'm14 9 2.5-1' }],\n ['path', { d: 'M9 10h.01' }],\n ['path', { d: 'M15 10h.01' }],\n];\n\nexport default Angry;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name annoyed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOCAxNWg4IiAvPgogIDxwYXRoIGQ9Ik04IDloMiIgLz4KICA8cGF0aCBkPSJNMTQgOWgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/annoyed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Annoyed: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M8 15h8' }],\n ['path', { d: 'M8 9h2' }],\n ['path', { d: 'M14 9h2' }],\n];\n\nexport default Annoyed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name antenna\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMiA3IDIiIC8+CiAgPHBhdGggZD0ibTcgMTIgNS0xMCIgLz4KICA8cGF0aCBkPSJtMTIgMTIgNS0xMCIgLz4KICA8cGF0aCBkPSJtMTcgMTIgNS0xMCIgLz4KICA8cGF0aCBkPSJNNC41IDdoMTUiIC8+CiAgPHBhdGggZD0iTTEyIDE2djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/antenna\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Antenna: IconNode = [\n ['path', { d: 'M2 12 7 2' }],\n ['path', { d: 'm7 12 5-10' }],\n ['path', { d: 'm12 12 5-10' }],\n ['path', { d: 'm17 12 5-10' }],\n ['path', { d: 'M4.5 7h15' }],\n ['path', { d: 'M12 16v6' }],\n];\n\nexport default Antenna;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name anvil\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxMEg2YTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWg0IiAvPgogIDxwYXRoIGQ9Ik03IDVhMSAxIDAgMCAxIDEtMWgxM2ExIDEgMCAwIDEgMSAxIDcgNyAwIDAgMS03IDdIOGExIDEgMCAwIDEtMS0xeiIgLz4KICA8cGF0aCBkPSJNOSAxMnY1IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMnY1IiAvPgogIDxwYXRoIGQ9Ik01IDIwYTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzIDEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/anvil\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Anvil: IconNode = [\n ['path', { d: 'M7 10H6a4 4 0 0 1-4-4 1 1 0 0 1 1-1h4' }],\n ['path', { d: 'M7 5a1 1 0 0 1 1-1h13a1 1 0 0 1 1 1 7 7 0 0 1-7 7H8a1 1 0 0 1-1-1z' }],\n ['path', { d: 'M9 12v5' }],\n ['path', { d: 'M15 12v5' }],\n ['path', { d: 'M5 20a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3 1 1 0 0 1-1 1H6a1 1 0 0 1-1-1' }],\n];\n\nexport default Anvil;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name aperture\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTQuMzEgOCA1Ljc0IDkuOTQiIC8+CiAgPHBhdGggZD0iTTkuNjkgOGgxMS40OCIgLz4KICA8cGF0aCBkPSJtNy4zOCAxMiA1Ljc0LTkuOTQiIC8+CiAgPHBhdGggZD0iTTkuNjkgMTYgMy45NSA2LjA2IiAvPgogIDxwYXRoIGQ9Ik0xNC4zMSAxNkgyLjgzIiAvPgogIDxwYXRoIGQ9Im0xNi42MiAxMi01Ljc0IDkuOTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/aperture\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Aperture: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm14.31 8 5.74 9.94' }],\n ['path', { d: 'M9.69 8h11.48' }],\n ['path', { d: 'm7.38 12 5.74-9.94' }],\n ['path', { d: 'M9.69 16 3.95 6.06' }],\n ['path', { d: 'M14.31 16H2.83' }],\n ['path', { d: 'm16.62 12-5.74 9.94' }],\n];\n\nexport default Aperture;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name app-window-mac\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik02IDhoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMCA4aC4wMSIgLz4KICA8cGF0aCBkPSJNMTQgOGguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/app-window-mac\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AppWindowMac: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M6 8h.01' }],\n ['path', { d: 'M10 8h.01' }],\n ['path', { d: 'M14 8h.01' }],\n];\n\nexport default AppWindowMac;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name app-window\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIyIiB5PSI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMCA0djQiIC8+CiAgPHBhdGggZD0iTTIgOGgyMCIgLz4KICA8cGF0aCBkPSJNNiA0djQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/app-window\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AppWindow: IconNode = [\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2' }],\n ['path', { d: 'M10 4v4' }],\n ['path', { d: 'M2 8h20' }],\n ['path', { d: 'M6 4v4' }],\n];\n\nexport default AppWindow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name apple\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNi41MjhWM2ExIDEgMCAwIDEgMS0xaDAiIC8+CiAgPHBhdGggZD0iTTE4LjIzNyAyMUExNSAxNSAwIDAgMCAyMiAxMWE2IDYgMCAwIDAtMTAtNC40NzJBNiA2IDAgMCAwIDIgMTFhMTUuMSAxNS4xIDAgMCAwIDMuNzYzIDEwIDMgMyAwIDAgMCAzLjY0OC42NDggNS41IDUuNSAwIDAgMSA1LjE3OCAwQTMgMyAwIDAgMCAxOC4yMzcgMjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/apple\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Apple: IconNode = [\n ['path', { d: 'M12 6.528V3a1 1 0 0 1 1-1h0' }],\n [\n 'path',\n {\n d: 'M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21',\n },\n ],\n];\n\nexport default Apple;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name archive-restore\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNSIgeD0iMiIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDIiIC8+CiAgPHBhdGggZD0iTTIwIDh2MTFhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJtOSAxNSAzLTMgMyAzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnY5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/archive-restore\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArchiveRestore: IconNode = [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h2' }],\n ['path', { d: 'M20 8v11a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'm9 15 3-3 3 3' }],\n ['path', { d: 'M12 12v9' }],\n];\n\nexport default ArchiveRestore;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name archive-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNSIgeD0iMiIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCIgLz4KICA8cGF0aCBkPSJtOS41IDE3IDUtNSIgLz4KICA8cGF0aCBkPSJtOS41IDEyIDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/archive-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArchiveX: IconNode = [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8' }],\n ['path', { d: 'm9.5 17 5-5' }],\n ['path', { d: 'm9.5 12 5 5' }],\n];\n\nexport default ArchiveX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name archive\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNSIgeD0iMiIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCIgLz4KICA8cGF0aCBkPSJNMTAgMTJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/archive\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Archive: IconNode = [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8' }],\n ['path', { d: 'M10 12h4' }],\n];\n\nexport default Archive;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name armchair\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgOVY2YTIgMiAwIDAgMC0yLTJIN2EyIDIgMCAwIDAtMiAydjMiIC8+CiAgPHBhdGggZD0iTTMgMTZhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtOWEuNS41IDAgMCAxLS41LS41VjExYTIgMiAwIDAgMC00IDB6IiAvPgogIDxwYXRoIGQ9Ik01IDE4djIiIC8+CiAgPHBhdGggZD0iTTE5IDE4djIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/armchair\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Armchair: IconNode = [\n ['path', { d: 'M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3' }],\n [\n 'path',\n {\n d: 'M3 16a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z',\n },\n ],\n ['path', { d: 'M5 18v2' }],\n ['path', { d: 'M19 18v2' }],\n];\n\nexport default Armchair;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-down-dash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTFhMSAxIDAgMCAwIDEgMWgyLjkzOWExIDEgMCAwIDEgLjc1IDEuODExbC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwNyAwTDQuMzEgMTMuODFhMSAxIDAgMCAxIC43NS0xLjgxMUg4YTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTkgNGg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-big-down-dash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigDownDash: IconNode = [\n [\n 'path',\n {\n d: 'M15 11a1 1 0 0 0 1 1h2.939a1 1 0 0 1 .75 1.811l-6.835 6.836a1.207 1.207 0 0 1-1.707 0L4.31 13.81a1 1 0 0 1 .75-1.811H8a1 1 0 0 0 1-1V9a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M9 4h6' }],\n];\n\nexport default ArrowBigDownDash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTFhMSAxIDAgMCAwIDEgMWgyLjkzOWExIDEgMCAwIDEgLjc1IDEuODExbC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwNyAwTDQuMzEgMTMuODFhMSAxIDAgMCAxIC43NS0xLjgxMUg4YTEgMSAwIDAgMCAxLTFWNWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-big-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigDown: IconNode = [\n [\n 'path',\n {\n d: 'M15 11a1 1 0 0 0 1 1h2.939a1 1 0 0 1 .75 1.811l-6.835 6.836a1.207 1.207 0 0 1-1.707 0L4.31 13.81a1 1 0 0 1 .75-1.811H8a1 1 0 0 0 1-1V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1z',\n },\n ],\n];\n\nexport default ArrowBigDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-left-dash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgOWExIDEgMCAwIDEtMS0xVjUuMDYxYTEgMSAwIDAgMC0xLjgxMS0uNzVsLTYuODM1IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAwIDAgMS43MDdsNi44MzUgNi44MzVhMSAxIDAgMCAwIDEuODExLS43NVYxNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiIgLz4KICA8cGF0aCBkPSJNMjAgOXY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-big-left-dash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigLeftDash: IconNode = [\n [\n 'path',\n {\n d: 'M13 9a1 1 0 0 1-1-1V5.061a1 1 0 0 0-1.811-.75l-6.835 6.836a1.207 1.207 0 0 0 0 1.707l6.835 6.835a1 1 0 0 0 1.811-.75V16a1 1 0 0 1 1-1h2a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1z',\n },\n ],\n ['path', { d: 'M20 9v6' }],\n];\n\nexport default ArrowBigLeftDash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgOWExIDEgMCAwIDEtMS0xVjUuMDYxYTEgMSAwIDAgMC0xLjgxMS0uNzVsLTYuODM1IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAwIDAgMS43MDdsNi44MzUgNi44MzVhMSAxIDAgMCAwIDEuODExLS43NVYxNmExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-big-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigLeft: IconNode = [\n [\n 'path',\n {\n d: 'M13 9a1 1 0 0 1-1-1V5.061a1 1 0 0 0-1.811-.75l-6.835 6.836a1.207 1.207 0 0 0 0 1.707l6.835 6.835a1 1 0 0 0 1.811-.75V16a1 1 0 0 1 1-1h6a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1z',\n },\n ],\n];\n\nexport default ArrowBigLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-right-dash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgOWExIDEgMCAwIDAgMS0xVjUuMDYxYTEgMSAwIDAgMSAxLjgxMS0uNzVsNi44MzYgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi44MzYgNi44MzVhMSAxIDAgMCAxLTEuODExLS43NVYxNmExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiIgLz4KICA8cGF0aCBkPSJNNCA5djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-big-right-dash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigRightDash: IconNode = [\n [\n 'path',\n {\n d: 'M11 9a1 1 0 0 0 1-1V5.061a1 1 0 0 1 1.811-.75l6.836 6.836a1.207 1.207 0 0 1 0 1.707l-6.836 6.835a1 1 0 0 1-1.811-.75V16a1 1 0 0 0-1-1H9a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z',\n },\n ],\n ['path', { d: 'M4 9v6' }],\n];\n\nexport default ArrowBigRightDash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgOWExIDEgMCAwIDAgMS0xVjUuMDYxYTEgMSAwIDAgMSAxLjgxMS0uNzVsNi44MzYgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi44MzYgNi44MzVhMSAxIDAgMCAxLTEuODExLS43NVYxNmExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-big-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigRight: IconNode = [\n [\n 'path',\n {\n d: 'M11 9a1 1 0 0 0 1-1V5.061a1 1 0 0 1 1.811-.75l6.836 6.836a1.207 1.207 0 0 1 0 1.707l-6.836 6.835a1 1 0 0 1-1.811-.75V16a1 1 0 0 0-1-1H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z',\n },\n ],\n];\n\nexport default ArrowBigRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-up-dash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxM2ExIDEgMCAwIDAtMS0xSDUuMDYxYTEgMSAwIDAgMS0uNzUtMS44MTFsNi44MzYtNi44MzVhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDcgMGw2LjgzNSA2LjgzNWExIDEgMCAwIDEtLjc1IDEuODExSDE2YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF6IiAvPgogIDxwYXRoIGQ9Ik05IDIwaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-big-up-dash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigUpDash: IconNode = [\n [\n 'path',\n {\n d: 'M9 13a1 1 0 0 0-1-1H5.061a1 1 0 0 1-.75-1.811l6.836-6.835a1.207 1.207 0 0 1 1.707 0l6.835 6.835a1 1 0 0 1-.75 1.811H16a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z',\n },\n ],\n ['path', { d: 'M9 20h6' }],\n];\n\nexport default ArrowBigUpDash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-big-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxM2ExIDEgMCAwIDAtMS0xSDUuMDYxYTEgMSAwIDAgMS0uNzUtMS44MTFsNi44MzYtNi44MzVhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDcgMGw2LjgzNSA2LjgzNWExIDEgMCAwIDEtLjc1IDEuODExSDE2YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-big-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowBigUp: IconNode = [\n [\n 'path',\n {\n d: 'M9 13a1 1 0 0 0-1-1H5.061a1 1 0 0 1-.75-1.811l6.836-6.835a1.207 1.207 0 0 1 1.707 0l6.835 6.835a1 1 0 0 1-.75 1.811H16a1 1 0 0 0-1 1v6a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z',\n },\n ],\n];\n\nexport default ArrowBigUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-0-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHJlY3QgeD0iMTUiIHk9IjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiIHJ5PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNyAyMHYtNmgtMiIgLz4KICA8cGF0aCBkPSJNMTUgMjBoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-0-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDown01: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['rect', { x: '15', y: '4', width: '4', height: '6', ry: '2' }],\n ['path', { d: 'M17 20v-6h-2' }],\n ['path', { d: 'M15 20h4' }],\n];\n\nexport default ArrowDown01;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-1-0\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0iTTE3IDEwVjRoLTIiIC8+CiAgPHBhdGggZD0iTTE1IDEwaDQiIC8+CiAgPHJlY3QgeD0iMTUiIHk9IjE0IiB3aWR0aD0iNCIgaGVpZ2h0PSI2IiByeT0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-1-0\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDown10: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['path', { d: 'M17 10V4h-2' }],\n ['path', { d: 'M15 10h4' }],\n ['rect', { x: '15', y: '14', width: '4', height: '6', ry: '2' }],\n];\n\nexport default ArrowDown10;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-a-z\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0iTTIwIDhoLTUiIC8+CiAgPHBhdGggZD0iTTE1IDEwVjYuNWEyLjUgMi41IDAgMCAxIDUgMFYxMCIgLz4KICA8cGF0aCBkPSJNMTUgMTRoNWwtNSA2aDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-a-z\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownAZ: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['path', { d: 'M20 8h-5' }],\n ['path', { d: 'M15 10V6.5a2.5 2.5 0 0 1 5 0V10' }],\n ['path', { d: 'M15 14h5l-5 6h5' }],\n];\n\nexport default ArrowDownAZ;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-from-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgM0g1IiAvPgogIDxwYXRoIGQ9Ik0xMiAyMVY3IiAvPgogIDxwYXRoIGQ9Im02IDE1IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-from-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownFromLine: IconNode = [\n ['path', { d: 'M19 3H5' }],\n ['path', { d: 'M12 21V7' }],\n ['path', { d: 'm6 15 6 6 6-6' }],\n];\n\nexport default ArrowDownFromLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgNyA3IDE3IiAvPgogIDxwYXRoIGQ9Ik0xNyAxN0g3VjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownLeft: IconNode = [\n ['path', { d: 'M17 7 7 17' }],\n ['path', { d: 'M17 17H7V7' }],\n];\n\nexport default ArrowDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-narrow-wide\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0iTTExIDRoNCIgLz4KICA8cGF0aCBkPSJNMTEgOGg3IiAvPgogIDxwYXRoIGQ9Ik0xMSAxMmgxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-narrow-wide\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownNarrowWide: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['path', { d: 'M11 4h4' }],\n ['path', { d: 'M11 8h7' }],\n ['path', { d: 'M11 12h10' }],\n];\n\nexport default ArrowDownNarrowWide;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyA3IDEwIDEwIiAvPgogIDxwYXRoIGQ9Ik0xNyA3djEwSDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownRight: IconNode = [\n ['path', { d: 'm7 7 10 10' }],\n ['path', { d: 'M17 7v10H7' }],\n];\n\nexport default ArrowDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-to-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxNCIgLz4KICA8cGF0aCBkPSJtMTkgOS03IDctNy03IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMjEiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-down-to-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownToDot: IconNode = [\n ['path', { d: 'M12 2v14' }],\n ['path', { d: 'm19 9-7 7-7-7' }],\n ['circle', { cx: '12', cy: '21', r: '1' }],\n];\n\nexport default ArrowDownToDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-to-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTdWMyIgLz4KICA8cGF0aCBkPSJtNiAxMSA2IDYgNi02IiAvPgogIDxwYXRoIGQ9Ik0xOSAyMUg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-down-to-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownToLine: IconNode = [\n ['path', { d: 'M12 17V3' }],\n ['path', { d: 'm6 11 6 6 6-6' }],\n ['path', { d: 'M19 21H5' }],\n];\n\nexport default ArrowDownToLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0ibTIxIDgtNC00LTQgNCIgLz4KICA8cGF0aCBkPSJNMTcgNHYxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownUp: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['path', { d: 'm21 8-4-4-4 4' }],\n ['path', { d: 'M17 4v16' }],\n];\n\nexport default ArrowDownUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-wide-narrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHBhdGggZD0iTTExIDRoMTAiIC8+CiAgPHBhdGggZD0iTTExIDhoNyIgLz4KICA8cGF0aCBkPSJNMTEgMTJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-wide-narrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownWideNarrow: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 20V4' }],\n ['path', { d: 'M11 4h10' }],\n ['path', { d: 'M11 8h7' }],\n ['path', { d: 'M11 12h4' }],\n];\n\nexport default ArrowDownWideNarrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down-z-a\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE1IDRoNWwtNSA2aDUiIC8+CiAgPHBhdGggZD0iTTE1IDIwdi0zLjVhMi41IDIuNSAwIDAgMSA1IDBWMjAiIC8+CiAgPHBhdGggZD0iTTIwIDE4aC01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-down-z-a\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDownZA: IconNode = [\n ['path', { d: 'm3 16 4 4 4-4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M15 4h5l-5 6h5' }],\n ['path', { d: 'M15 20v-3.5a2.5 2.5 0 0 1 5 0V20' }],\n ['path', { d: 'M20 18h-5' }],\n];\n\nexport default ArrowDownZA;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KICA8cGF0aCBkPSJtMTkgMTItNyA3LTctNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowDown: IconNode = [\n ['path', { d: 'M12 5v14' }],\n ['path', { d: 'm19 12-7 7-7-7' }],\n];\n\nexport default ArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-left-from-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSA2LTYgNiA2IDYiIC8+CiAgPHBhdGggZD0iTTMgMTJoMTQiIC8+CiAgPHBhdGggZD0iTTIxIDE5VjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-left-from-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowLeftFromLine: IconNode = [\n ['path', { d: 'm9 6-6 6 6 6' }],\n ['path', { d: 'M3 12h14' }],\n ['path', { d: 'M21 19V5' }],\n];\n\nexport default ArrowLeftFromLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-left-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzIDQgN2w0IDQiIC8+CiAgPHBhdGggZD0iTTQgN2gxNiIgLz4KICA8cGF0aCBkPSJtMTYgMjEgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJNMjAgMTdINCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-left-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowLeftRight: IconNode = [\n ['path', { d: 'M8 3 4 7l4 4' }],\n ['path', { d: 'M4 7h16' }],\n ['path', { d: 'm16 21 4-4-4-4' }],\n ['path', { d: 'M20 17H4' }],\n];\n\nexport default ArrowLeftRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-left-to-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxOVY1IiAvPgogIDxwYXRoIGQ9Im0xMyA2LTYgNiA2IDYiIC8+CiAgPHBhdGggZD0iTTcgMTJoMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-left-to-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowLeftToLine: IconNode = [\n ['path', { d: 'M3 19V5' }],\n ['path', { d: 'm13 6-6 6 6 6' }],\n ['path', { d: 'M7 12h14' }],\n];\n\nexport default ArrowLeftToLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTktNy03IDctNyIgLz4KICA8cGF0aCBkPSJNMTkgMTJINSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowLeft: IconNode = [\n ['path', { d: 'm12 19-7-7 7-7' }],\n ['path', { d: 'M19 12H5' }],\n];\n\nexport default ArrowLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-right-from-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1djE0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMkg3IiAvPgogIDxwYXRoIGQ9Im0xNSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right-from-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowRightFromLine: IconNode = [\n ['path', { d: 'M3 5v14' }],\n ['path', { d: 'M21 12H7' }],\n ['path', { d: 'm15 18 6-6-6-6' }],\n];\n\nexport default ArrowRightFromLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-right-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMyA0IDQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0yMCA3SDQiIC8+CiAgPHBhdGggZD0ibTggMjEtNC00IDQtNCIgLz4KICA8cGF0aCBkPSJNNCAxN2gxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-right-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowRightLeft: IconNode = [\n ['path', { d: 'm16 3 4 4-4 4' }],\n ['path', { d: 'M20 7H4' }],\n ['path', { d: 'm8 21-4-4 4-4' }],\n ['path', { d: 'M4 17h16' }],\n];\n\nexport default ArrowRightLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-right-to-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTJIMyIgLz4KICA8cGF0aCBkPSJtMTEgMTggNi02LTYtNiIgLz4KICA8cGF0aCBkPSJNMjEgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-right-to-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowRightToLine: IconNode = [\n ['path', { d: 'M17 12H3' }],\n ['path', { d: 'm11 18 6-6-6-6' }],\n ['path', { d: 'M21 5v14' }],\n];\n\nexport default ArrowRightToLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJtMTIgNSA3IDctNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowRight: IconNode = [\n ['path', { d: 'M5 12h14' }],\n ['path', { d: 'm12 5 7 7-7 7' }],\n];\n\nexport default ArrowRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-0-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjQiIGhlaWdodD0iNiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTE3IDIwdi02aC0yIiAvPgogIDxwYXRoIGQ9Ik0xNSAyMGg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up-0-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUp01: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['rect', { x: '15', y: '4', width: '4', height: '6', ry: '2' }],\n ['path', { d: 'M17 20v-6h-2' }],\n ['path', { d: 'M15 20h4' }],\n];\n\nexport default ArrowUp01;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-1-0\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTcgMTBWNGgtMiIgLz4KICA8cGF0aCBkPSJNMTUgMTBoNCIgLz4KICA8cmVjdCB4PSIxNSIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiIHJ5PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up-1-0\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUp10: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M17 10V4h-2' }],\n ['path', { d: 'M15 10h4' }],\n ['rect', { x: '15', y: '14', width: '4', height: '6', ry: '2' }],\n];\n\nexport default ArrowUp10;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-a-z\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMjAgOGgtNSIgLz4KICA8cGF0aCBkPSJNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNGg1bC01IDZoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-up-a-z\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpAZ: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M20 8h-5' }],\n ['path', { d: 'M15 10V6.5a2.5 2.5 0 0 1 5 0V10' }],\n ['path', { d: 'M15 14h5l-5 6h5' }],\n];\n\nexport default ArrowUpAZ;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMTYtNCA0LTQtNCIgLz4KICA8cGF0aCBkPSJNMTcgMjBWNCIgLz4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-up-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpDown: IconNode = [\n ['path', { d: 'm21 16-4 4-4-4' }],\n ['path', { d: 'M17 20V4' }],\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n];\n\nexport default ArrowUpDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-from-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNSA5IDctNyA3IDciIC8+CiAgPHBhdGggZD0iTTEyIDE2VjIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIyMSIgcj0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-up-from-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpFromDot: IconNode = [\n ['path', { d: 'm5 9 7-7 7 7' }],\n ['path', { d: 'M12 16V2' }],\n ['circle', { cx: '12', cy: '21', r: '1' }],\n];\n\nexport default ArrowUpFromDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-from-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggOS02LTYtNiA2IiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjE0IiAvPgogIDxwYXRoIGQ9Ik01IDIxaDE0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up-from-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpFromLine: IconNode = [\n ['path', { d: 'm18 9-6-6-6 6' }],\n ['path', { d: 'M12 3v14' }],\n ['path', { d: 'M5 21h14' }],\n];\n\nexport default ArrowUpFromLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxN1Y3aDEwIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNyA3IDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpLeft: IconNode = [\n ['path', { d: 'M7 17V7h10' }],\n ['path', { d: 'M17 17 7 7' }],\n];\n\nexport default ArrowUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-narrow-wide\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTEgMTJoNCIgLz4KICA8cGF0aCBkPSJNMTEgMTZoNyIgLz4KICA8cGF0aCBkPSJNMTEgMjBoMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-narrow-wide\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpNarrowWide: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M11 12h4' }],\n ['path', { d: 'M11 16h7' }],\n ['path', { d: 'M11 20h10' }],\n];\n\nexport default ArrowUpNarrowWide;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyA3aDEwdjEwIiAvPgogIDxwYXRoIGQ9Ik03IDE3IDE3IDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpRight: IconNode = [\n ['path', { d: 'M7 7h10v10' }],\n ['path', { d: 'M7 17 17 7' }],\n];\n\nexport default ArrowUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-to-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAzaDE0IiAvPgogIDxwYXRoIGQ9Im0xOCAxMy02LTYtNiA2IiAvPgogIDxwYXRoIGQ9Ik0xMiA3djE0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up-to-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpToLine: IconNode = [\n ['path', { d: 'M5 3h14' }],\n ['path', { d: 'm18 13-6-6-6 6' }],\n ['path', { d: 'M12 7v14' }],\n];\n\nexport default ArrowUpToLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-wide-narrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTEgMTJoMTAiIC8+CiAgPHBhdGggZD0iTTExIDE2aDciIC8+CiAgPHBhdGggZD0iTTExIDIwaDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-wide-narrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpWideNarrow: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M11 12h10' }],\n ['path', { d: 'M11 16h7' }],\n ['path', { d: 'M11 20h4' }],\n];\n\nexport default ArrowUpWideNarrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up-z-a\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTUgNGg1bC01IDZoNSIgLz4KICA8cGF0aCBkPSJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCIgLz4KICA8cGF0aCBkPSJNMjAgMThoLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-up-z-a\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUpZA: IconNode = [\n ['path', { d: 'm3 8 4-4 4 4' }],\n ['path', { d: 'M7 4v16' }],\n ['path', { d: 'M15 4h5l-5 6h5' }],\n ['path', { d: 'M15 20v-3.5a2.5 2.5 0 0 1 5 0V20' }],\n ['path', { d: 'M20 18h-5' }],\n];\n\nexport default ArrowUpZA;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNSAxMiA3LTcgNyA3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOVY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowUp: IconNode = [\n ['path', { d: 'm5 12 7-7 7 7' }],\n ['path', { d: 'M12 19V5' }],\n];\n\nexport default ArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name arrows-up-from-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNCA2IDMtMyAzIDMiIC8+CiAgPHBhdGggZD0iTTcgMTdWMyIgLz4KICA8cGF0aCBkPSJtMTQgNiAzLTMgMyAzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxN1YzIiAvPgogIDxwYXRoIGQ9Ik00IDIxaDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrows-up-from-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ArrowsUpFromLine: IconNode = [\n ['path', { d: 'm4 6 3-3 3 3' }],\n ['path', { d: 'M7 17V3' }],\n ['path', { d: 'm14 6 3-3 3 3' }],\n ['path', { d: 'M17 17V3' }],\n ['path', { d: 'M4 21h16' }],\n];\n\nexport default ArrowsUpFromLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name asterisk\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnYxMiIgLz4KICA8cGF0aCBkPSJNMTcuMTk2IDkgNi44MDQgMTUiIC8+CiAgPHBhdGggZD0ibTYuODA0IDkgMTAuMzkyIDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/asterisk\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Asterisk: IconNode = [\n ['path', { d: 'M12 6v12' }],\n ['path', { d: 'M17.196 9 6.804 15' }],\n ['path', { d: 'm6.804 9 10.392 6' }],\n];\n\nexport default Asterisk;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name at-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xNiA4djVhMyAzIDAgMCAwIDYgMHYtMWExMCAxMCAwIDEgMC00IDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/at-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AtSign: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8' }],\n];\n\nexport default AtSign;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name atom\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxwYXRoIGQ9Ik0yMC4yIDIwLjJjMi4wNC0yLjAzLjAyLTcuMzYtNC41LTExLjktNC41NC00LjUyLTkuODctNi41NC0xMS45LTQuNS0yLjA0IDIuMDMtLjAyIDcuMzYgNC41IDExLjkgNC41NCA0LjUyIDkuODcgNi41NCAxMS45IDQuNVoiIC8+CiAgPHBhdGggZD0iTTE1LjcgMTUuN2M0LjUyLTQuNTQgNi41NC05Ljg3IDQuNS0xMS45LTIuMDMtMi4wNC03LjM2LS4wMi0xMS45IDQuNS00LjUyIDQuNTQtNi41NCA5Ljg3LTQuNSAxMS45IDIuMDMgMi4wNCA3LjM2LjAyIDExLjktNC41WiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/atom\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Atom: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1' }],\n [\n 'path',\n {\n d: 'M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z',\n },\n ],\n [\n 'path',\n {\n d: 'M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z',\n },\n ],\n];\n\nexport default Atom;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name audio-lines\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMHYzIiAvPgogIDxwYXRoIGQ9Ik02IDZ2MTEiIC8+CiAgPHBhdGggZD0iTTEwIDN2MTgiIC8+CiAgPHBhdGggZD0iTTE0IDh2NyIgLz4KICA8cGF0aCBkPSJNMTggNXYxMyIgLz4KICA8cGF0aCBkPSJNMjIgMTB2MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/audio-lines\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AudioLines: IconNode = [\n ['path', { d: 'M2 10v3' }],\n ['path', { d: 'M6 6v11' }],\n ['path', { d: 'M10 3v18' }],\n ['path', { d: 'M14 8v7' }],\n ['path', { d: 'M18 5v13' }],\n ['path', { d: 'M22 10v3' }],\n];\n\nexport default AudioLines;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name audio-waveform\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxM2EyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwVjRhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwdi00YTIgMiAwIDAgMSAyLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/audio-waveform\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst AudioWaveform: IconNode = [\n [\n 'path',\n {\n d: 'M2 13a2 2 0 0 0 2-2V7a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0V4a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0v-4a2 2 0 0 1 2-2',\n },\n ],\n];\n\nexport default AudioWaveform;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name award\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuNDc3IDEyLjg5IDEuNTE1IDguNTI2YS41LjUgMCAwIDEtLjgxLjQ3bC0zLjU4LTIuNjg3YTEgMSAwIDAgMC0xLjE5NyAwbC0zLjU4NiAyLjY4NmEuNS41IDAgMCAxLS44MS0uNDY5bDEuNTE0LTguNTI2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iOCIgcj0iNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/award\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Award: IconNode = [\n [\n 'path',\n {\n d: 'm15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526',\n },\n ],\n ['circle', { cx: '12', cy: '8', r: '6' }],\n];\n\nexport default Award;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name axe\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTItOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5IiAvPgogIDxwYXRoIGQ9Ik0xNSAxNS41YS41LjUgMCAwIDAgLjUuNUE2LjUgNi41IDAgMCAwIDIyIDkuNWEuNS41IDAgMCAwLS41LS41aC0xLjY3MmEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNS4wNjItNS4wNjJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw5LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDUuMDYyIDUuMDYyQTIgMiAwIDAgMSAxNSAxMy44Mjh6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/axe\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Axe: IconNode = [\n ['path', { d: 'm14 12-8.381 8.38a1 1 0 0 1-3.001-3L11 9' }],\n [\n 'path',\n {\n d: 'M15 15.5a.5.5 0 0 0 .5.5A6.5 6.5 0 0 0 22 9.5a.5.5 0 0 0-.5-.5h-1.672a2 2 0 0 1-1.414-.586l-5.062-5.062a1.205 1.205 0 0 0-1.704 0L9.352 5.648a1.205 1.205 0 0 0 0 1.704l5.062 5.062A2 2 0 0 1 15 13.828z',\n },\n ],\n];\n\nexport default Axe;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name axis-3d\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNSAxMC41IDE1IDkiIC8+CiAgPHBhdGggZD0iTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1IiAvPgogIDxwYXRoIGQ9Ik00LjI5MyAxOS43MDcgNiAxOCIgLz4KICA8cGF0aCBkPSJtOSAxNSAxLjUtMS41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/axis-3d\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Axis3d: IconNode = [\n ['path', { d: 'M13.5 10.5 15 9' }],\n ['path', { d: 'M4 4v15a1 1 0 0 0 1 1h15' }],\n ['path', { d: 'M4.293 19.707 6 18' }],\n ['path', { d: 'm9 15 1.5-1.5' }],\n];\n\nexport default Axis3d;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name backpack\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGE0IDQgMCAwIDEgNC00aDhhNCA0IDAgMCAxIDQgNHYxMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnoiIC8+CiAgPHBhdGggZD0iTTggMTBoOCIgLz4KICA8cGF0aCBkPSJNOCAxOGg4IiAvPgogIDxwYXRoIGQ9Ik04IDIydi02YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjYiIC8+CiAgPHBhdGggZD0iTTkgNlY0YTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/backpack\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Backpack: IconNode = [\n ['path', { d: 'M4 10a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z' }],\n ['path', { d: 'M8 10h8' }],\n ['path', { d: 'M8 18h8' }],\n ['path', { d: 'M8 22v-6a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v6' }],\n ['path', { d: 'M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2' }],\n];\n\nexport default Backpack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name baby\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTZjLjUuMyAxLjIuNSAyIC41czEuNS0uMiAyLS41IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEiIC8+CiAgPHBhdGggZD0iTTkgMTJoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/baby\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Baby: IconNode = [\n ['path', { d: 'M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5' }],\n ['path', { d: 'M15 12h.01' }],\n [\n 'path',\n {\n d: 'M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1',\n },\n ],\n ['path', { d: 'M9 12h.01' }],\n];\n\nexport default Baby;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSI4IiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIuMDEiIHkxPSIxNiIgeTI9IjE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/badge-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeAlert: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '12' }],\n ['line', { x1: '12', x2: '12.01', y1: '16', y2: '16' }],\n];\n\nexport default BadgeAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-cent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTEyIDd2MTAiIC8+CiAgPHBhdGggZD0iTTE1LjQgMTBhNCA0IDAgMSAwIDAgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-cent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeCent: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M12 7v10' }],\n ['path', { d: 'M15.4 10a4 4 0 1 0 0 4' }],\n];\n\nexport default BadgeCent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0ibTkgMTIgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeCheck: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default BadgeCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-indian-rupee\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTggOGg4IiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+CiAgPHBhdGggZD0ibTEzIDE3LTUtMWgxYTQgNCAwIDAgMCAwLTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-indian-rupee\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeIndianRupee: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M8 8h8' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'm13 17-5-1h1a4 4 0 0 0 0-8' }],\n];\n\nexport default BadgeIndianRupee;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-dollar-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCIgLz4KICA8cGF0aCBkPSJNMTIgMThWNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-dollar-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeDollarSign: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8' }],\n ['path', { d: 'M12 18V6' }],\n];\n\nexport default BadgeDollarSign;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-euro\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTcgMTJoNSIgLz4KICA8cGF0aCBkPSJNMTUgOS40YTQgNCAwIDEgMCAwIDUuMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-euro\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeEuro: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M7 12h5' }],\n ['path', { d: 'M15 9.4a4 4 0 1 0 0 5.2' }],\n];\n\nexport default BadgeEuro;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-info\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSIxNiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyLjAxIiB5MT0iOCIgeTI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-info\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeInfo: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['line', { x1: '12', x2: '12', y1: '16', y2: '12' }],\n ['line', { x1: '12', x2: '12.01', y1: '8', y2: '8' }],\n];\n\nexport default BadgeInfo;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-japanese-yen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0ibTkgOCAzIDN2NyIgLz4KICA8cGF0aCBkPSJtMTIgMTEgMy0zIiAvPgogIDxwYXRoIGQ9Ik05IDEyaDYiIC8+CiAgPHBhdGggZD0iTTkgMTZoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-japanese-yen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeJapaneseYen: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'm9 8 3 3v7' }],\n ['path', { d: 'm12 11 3-3' }],\n ['path', { d: 'M9 12h6' }],\n ['path', { d: 'M9 16h6' }],\n];\n\nexport default BadgeJapaneseYen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjgiIHgyPSIxNiIgeTE9IjEyIiB5Mj0iMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeMinus: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12' }],\n];\n\nexport default BadgeMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0ibTE1IDktNiA2IiAvPgogIDxwYXRoIGQ9Ik05IDloLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgePercent: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'M9 9h.01' }],\n ['path', { d: 'M15 15h.01' }],\n];\n\nexport default BadgePercent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSI4IiB5Mj0iMTYiIC8+CiAgPGxpbmUgeDE9IjgiIHgyPSIxNiIgeTE9IjEyIiB5Mj0iMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgePlus: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '16' }],\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12' }],\n];\n\nexport default BadgePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-pound-sterling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTggMTJoNCIgLz4KICA8cGF0aCBkPSJNMTAgMTZWOS41YTIuNSAyLjUgMCAwIDEgNSAwIiAvPgogIDxwYXRoIGQ9Ik04IDE2aDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge-pound-sterling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgePoundSterling: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M8 12h4' }],\n ['path', { d: 'M10 16V9.5a2.5 2.5 0 0 1 5 0' }],\n ['path', { d: 'M8 16h7' }],\n];\n\nexport default BadgePoundSterling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyLjAxIiB5MT0iMTciIHkyPSIxNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeQuestionMark: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3' }],\n ['line', { x1: '12', x2: '12.01', y1: '17', y2: '17' }],\n];\n\nexport default BadgeQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-russian-ruble\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTkgMTZoNSIgLz4KICA8cGF0aCBkPSJNOSAxMmg1YTIgMiAwIDEgMCAwLTRoLTN2OSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-russian-ruble\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeRussianRuble: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M9 16h5' }],\n ['path', { d: 'M9 12h5a2 2 0 1 0 0-4h-3v9' }],\n];\n\nexport default BadgeRussianRuble;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-swiss-franc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPHBhdGggZD0iTTExIDE3VjhoNCIgLz4KICA8cGF0aCBkPSJNMTEgMTJoMyIgLz4KICA8cGF0aCBkPSJNOSAxNmg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/badge-swiss-franc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeSwissFranc: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['path', { d: 'M11 17V8h4' }],\n ['path', { d: 'M11 12h3' }],\n ['path', { d: 'M9 16h4' }],\n];\n\nexport default BadgeSwissFranc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-turkish-lira\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgN3YxMGE1IDUgMCAwIDAgNS01IiAvPgogIDxwYXRoIGQ9Im0xNSA4LTYgMyIgLz4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/badge-turkish-lira\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeTurkishLira: IconNode = [\n ['path', { d: 'M11 7v10a5 5 0 0 0 5-5' }],\n ['path', { d: 'm15 8-6 3' }],\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76',\n },\n ],\n];\n\nexport default BadgeTurkishLira;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+CiAgPGxpbmUgeDE9IjE1IiB4Mj0iOSIgeTE9IjkiIHkyPSIxNSIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjE1IiB5MT0iOSIgeTI9IjE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/badge-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BadgeX: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n ['line', { x1: '15', x2: '9', y1: '9', y2: '15' }],\n ['line', { x1: '9', x2: '15', y1: '9', y2: '15' }],\n];\n\nexport default BadgeX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name badge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/badge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Badge: IconNode = [\n [\n 'path',\n {\n d: 'M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z',\n },\n ],\n];\n\nexport default Badge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name baggage-claim\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMiIgLz4KICA8cGF0aCBkPSJNMTcgMTRWNGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MTAiIC8+CiAgPHJlY3Qgd2lkdGg9IjEzIiBoZWlnaHQ9IjgiIHg9IjgiIHk9IjYiIHJ4PSIxIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMjAiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjIwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/baggage-claim\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BaggageClaim: IconNode = [\n ['path', { d: 'M22 18H6a2 2 0 0 1-2-2V7a2 2 0 0 0-2-2' }],\n ['path', { d: 'M17 14V4a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v10' }],\n ['rect', { width: '13', height: '8', x: '8', y: '6', rx: '1' }],\n ['circle', { cx: '18', cy: '20', r: '2' }],\n ['circle', { cx: '9', cy: '20', r: '2' }],\n];\n\nexport default BaggageClaim;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name balloon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZ2MWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYxIiAvPgogIDxwYXRoIGQ9Ik0xMiA2YTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTE4IDhjMCA0LTMuNSA4LTYgOHMtNi00LTYtOGE2IDYgMCAwIDEgMTIgMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/balloon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Balloon: IconNode = [\n ['path', { d: 'M12 16v1a2 2 0 0 0 2 2h1a2 2 0 0 1 2 2v1' }],\n ['path', { d: 'M12 6a2 2 0 0 1 2 2' }],\n ['path', { d: 'M18 8c0 4-3.5 8-6 8s-6-4-6-8a6 6 0 0 1 12 0' }],\n];\n\nexport default Balloon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ban: IconNode = [\n ['path', { d: 'M4.929 4.929 19.07 19.071' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Ban;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name banana\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxM2MzLjUtMiA4LTIgMTAgMmE1LjUgNS41IDAgMCAxIDggNSIgLz4KICA8cGF0aCBkPSJNNS4xNSAxNy44OWM1LjUyLTEuNTIgOC42NS02Ljg5IDctMTJDMTEuNTUgNCAxMS41IDIgMTMgMmMzLjIyIDAgNSA1LjUgNSA4IDAgNi41LTQuMiAxMi0xMC40OSAxMkM1LjExIDIyIDIgMjIgMiAyMGMwLTEuNSAxLjE0LTEuNTUgMy4xNS0yLjExWiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/banana\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Banana: IconNode = [\n ['path', { d: 'M4 13c3.5-2 8-2 10 2a5.5 5.5 0 0 1 8 5' }],\n [\n 'path',\n {\n d: 'M5.15 17.89c5.52-1.52 8.65-6.89 7-12C11.55 4 11.5 2 13 2c3.22 0 5 5.5 5 8 0 6.5-4.2 12-10.49 12C5.11 22 2 22 2 20c0-1.5 1.14-1.55 3.15-2.11Z',\n },\n ],\n];\n\nexport default Banana;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bandage\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTAuMDFoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMCAxNC4wMWguMDEiIC8+CiAgPHBhdGggZD0iTTE0IDEwLjAxaC4wMSIgLz4KICA8cGF0aCBkPSJNMTQgMTQuMDFoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xOCA2djEyIiAvPgogIDxwYXRoIGQ9Ik02IDZ2MTIiIC8+CiAgPHJlY3QgeD0iMiIgeT0iNiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjEyIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bandage\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bandage: IconNode = [\n ['path', { d: 'M10 10.01h.01' }],\n ['path', { d: 'M10 14.01h.01' }],\n ['path', { d: 'M14 10.01h.01' }],\n ['path', { d: 'M14 14.01h.01' }],\n ['path', { d: 'M18 6v12' }],\n ['path', { d: 'M6 6v12' }],\n ['rect', { x: '2', y: '6', width: '20', height: '12', rx: '2' }],\n];\n\nexport default Bandage;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name banknote-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUiIC8+CiAgPHBhdGggZD0ibTE2IDE5IDMgMyAzLTMiIC8+CiAgPHBhdGggZD0iTTE4IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTkgMTZ2NiIgLz4KICA8cGF0aCBkPSJNNiAxMmguMDEiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/banknote-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BanknoteArrowDown: IconNode = [\n ['path', { d: 'M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5' }],\n ['path', { d: 'm16 19 3 3 3-3' }],\n ['path', { d: 'M18 12h.01' }],\n ['path', { d: 'M19 16v6' }],\n ['path', { d: 'M6 12h.01' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default BanknoteArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name banknote-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUiIC8+CiAgPHBhdGggZD0iTTE4IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTkgMjJ2LTYiIC8+CiAgPHBhdGggZD0ibTIyIDE5LTMtMy0zIDMiIC8+CiAgPHBhdGggZD0iTTYgMTJoLjAxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/banknote-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BanknoteArrowUp: IconNode = [\n ['path', { d: 'M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5' }],\n ['path', { d: 'M18 12h.01' }],\n ['path', { d: 'M19 22v-6' }],\n ['path', { d: 'm22 19-3-3-3 3' }],\n ['path', { d: 'M6 12h.01' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default BanknoteArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name banknote-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUiIC8+CiAgPHBhdGggZD0ibTE3IDE3IDUgNSIgLz4KICA8cGF0aCBkPSJNMTggMTJoLjAxIiAvPgogIDxwYXRoIGQ9Im0yMiAxNy01IDUiIC8+CiAgPHBhdGggZD0iTTYgMTJoLjAxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/banknote-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BanknoteX: IconNode = [\n ['path', { d: 'M13 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5' }],\n ['path', { d: 'm17 17 5 5' }],\n ['path', { d: 'M18 12h.01' }],\n ['path', { d: 'm22 17-5 5' }],\n ['path', { d: 'M6 12h.01' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default BanknoteX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name banknote\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjYiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTYgMTJoLjAxTTE4IDEyaC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/banknote\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Banknote: IconNode = [\n ['rect', { width: '20', height: '12', x: '2', y: '6', rx: '2' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['path', { d: 'M6 12h.01M18 12h.01' }],\n];\n\nexport default Banknote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name barcode\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1djE0IiAvPgogIDxwYXRoIGQ9Ik04IDV2MTQiIC8+CiAgPHBhdGggZD0iTTEyIDV2MTQiIC8+CiAgPHBhdGggZD0iTTE3IDV2MTQiIC8+CiAgPHBhdGggZD0iTTIxIDV2MTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/barcode\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Barcode: IconNode = [\n ['path', { d: 'M3 5v14' }],\n ['path', { d: 'M8 5v14' }],\n ['path', { d: 'M12 5v14' }],\n ['path', { d: 'M17 5v14' }],\n ['path', { d: 'M21 5v14' }],\n];\n\nexport default Barcode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name barrel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgM2E0MSA0MSAwIDAgMCAwIDE4IiAvPgogIDxwYXRoIGQ9Ik0xNCAzYTQxIDQxIDAgMCAxIDAgMTgiIC8+CiAgPHBhdGggZD0iTTE3IDNhMiAyIDAgMCAxIDEuNjguOTIgMTUuMjUgMTUuMjUgMCAwIDEgMCAxNi4xNkEyIDIgMCAwIDEgMTcgMjFIN2EyIDIgMCAwIDEtMS42OC0uOTIgMTUuMjUgMTUuMjUgMCAwIDEgMC0xNi4xNkEyIDIgMCAwIDEgNyAzeiIgLz4KICA8cGF0aCBkPSJNMy44NCAxN2gxNi4zMiIgLz4KICA8cGF0aCBkPSJNMy44NCA3aDE2LjMyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/barrel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Barrel: IconNode = [\n ['path', { d: 'M10 3a41 41 0 0 0 0 18' }],\n ['path', { d: 'M14 3a41 41 0 0 1 0 18' }],\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 1.68.92 15.25 15.25 0 0 1 0 16.16A2 2 0 0 1 17 21H7a2 2 0 0 1-1.68-.92 15.25 15.25 0 0 1 0-16.16A2 2 0 0 1 7 3z',\n },\n ],\n ['path', { d: 'M3.84 17h16.32' }],\n ['path', { d: 'M3.84 7h16.32' }],\n];\n\nexport default Barrel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name baseline\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGgxNiIgLz4KICA8cGF0aCBkPSJtNiAxNiA2LTEyIDYgMTIiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/baseline\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Baseline: IconNode = [\n ['path', { d: 'M4 20h16' }],\n ['path', { d: 'm6 16 6-12 6 12' }],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default Baseline;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bath\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNCA4IDYiIC8+CiAgPHBhdGggZD0iTTE3IDE5djIiIC8+CiAgPHBhdGggZD0iTTIgMTJoMjAiIC8+CiAgPHBhdGggZD0iTTcgMTl2MiIgLz4KICA8cGF0aCBkPSJNOSA1IDcuNjIxIDMuNjIxQTIuMTIxIDIuMTIxIDAgMCAwIDQgNXYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bath\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bath: IconNode = [\n ['path', { d: 'M10 4 8 6' }],\n ['path', { d: 'M17 19v2' }],\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'M7 19v2' }],\n ['path', { d: 'M9 5 7.621 3.621A2.121 2.121 0 0 0 4 5v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5' }],\n];\n\nexport default Bath;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-charging\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgNy0zIDVoNGwtMyA1IiAvPgogIDxwYXRoIGQ9Ik0xNC44NTYgNkgxNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi45MzUiIC8+CiAgPHBhdGggZD0iTTIyIDE0di00IiAvPgogIDxwYXRoIGQ9Ik01LjE0IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMi45MzYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/battery-charging\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryCharging: IconNode = [\n ['path', { d: 'm11 7-3 5h4l-3 5' }],\n ['path', { d: 'M14.856 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.935' }],\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M5.14 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2.936' }],\n];\n\nexport default BatteryCharging;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-full\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTB2NCIgLz4KICA8cGF0aCBkPSJNMTQgMTB2NCIgLz4KICA8cGF0aCBkPSJNMjIgMTR2LTQiIC8+CiAgPHBhdGggZD0iTTYgMTB2NCIgLz4KICA8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTIiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/battery-full\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryFull: IconNode = [\n ['path', { d: 'M10 10v4' }],\n ['path', { d: 'M14 10v4' }],\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M6 10v4' }],\n ['rect', { x: '2', y: '6', width: '16', height: '12', rx: '2' }],\n];\n\nexport default BatteryFull;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-low\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTR2LTQiIC8+CiAgPHBhdGggZD0iTTYgMTR2LTQiIC8+CiAgPHJlY3QgeD0iMiIgeT0iNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/battery-low\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryLow: IconNode = [\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M6 14v-4' }],\n ['rect', { x: '2', y: '6', width: '16', height: '12', rx: '2' }],\n];\n\nexport default BatteryLow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-medium\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTR2LTQiIC8+CiAgPHBhdGggZD0iTTIyIDE0di00IiAvPgogIDxwYXRoIGQ9Ik02IDE0di00IiAvPgogIDxyZWN0IHg9IjIiIHk9IjYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxMiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/battery-medium\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryMedium: IconNode = [\n ['path', { d: 'M10 14v-4' }],\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M6 14v-4' }],\n ['rect', { x: '2', y: '6', width: '16', height: '12', rx: '2' }],\n];\n\nexport default BatteryMedium;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOXY2IiAvPgogIDxwYXRoIGQ9Ik0xMi41NDMgNkgxNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMy42MDUiIC8+CiAgPHBhdGggZD0iTTIyIDE0di00IiAvPgogIDxwYXRoIGQ9Ik03IDEyaDYiIC8+CiAgPHBhdGggZD0iTTcuNjA2IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMy42MDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/battery-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryPlus: IconNode = [\n ['path', { d: 'M10 9v6' }],\n ['path', { d: 'M12.543 6H16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.605' }],\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M7 12h6' }],\n ['path', { d: 'M7.606 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.606' }],\n];\n\nexport default BatteryPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery-warning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTdoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMCA3djYiIC8+CiAgPHBhdGggZD0iTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNMjIgMTR2LTQiIC8+CiAgPHBhdGggZD0iTTYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/battery-warning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BatteryWarning: IconNode = [\n ['path', { d: 'M10 17h.01' }],\n ['path', { d: 'M10 7v6' }],\n ['path', { d: 'M14 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M22 14v-4' }],\n ['path', { d: 'M6 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2' }],\n];\n\nexport default BatteryWarning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name battery\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNIDIyIDE0IEwgMjIgMTAiIC8+CiAgPHJlY3QgeD0iMiIgeT0iNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/battery\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Battery: IconNode = [\n ['path', { d: 'M 22 14 L 22 10' }],\n ['rect', { x: '2', y: '6', width: '16', height: '12', rx: '2' }],\n];\n\nexport default Battery;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name beaker\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC41IDNoMTUiIC8+CiAgPHBhdGggZD0iTTYgM3YxNmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYzIiAvPgogIDxwYXRoIGQ9Ik02IDE0aDEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/beaker\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Beaker: IconNode = [\n ['path', { d: 'M4.5 3h15' }],\n ['path', { d: 'M6 3v16a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V3' }],\n ['path', { d: 'M6 14h12' }],\n];\n\nexport default Beaker;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bean-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYTEzLjk2IDEzLjk2IDAgMCAwIDkuOS00LjEiIC8+CiAgPHBhdGggZD0iTTEwLjc1IDUuMDkzQTYgNiAwIDAgMSAyMiA4YzAgMi40MTEtLjYxIDQuNjgtMS42ODMgNi42NiIgLz4KICA8cGF0aCBkPSJNNS4zNDEgMTAuNjJhNCA0IDAgMCAwIDYuNDg3IDEuMjA4TTEwLjYyIDUuMzQxYTQuMDE1IDQuMDE1IDAgMCAxIDIuMDM5IDIuMDQiIC8+CiAgPGxpbmUgeDE9IjIiIHgyPSIyMiIgeTE9IjIiIHkyPSIyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bean-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BeanOff: IconNode = [\n ['path', { d: 'M9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22a13.96 13.96 0 0 0 9.9-4.1' }],\n ['path', { d: 'M10.75 5.093A6 6 0 0 1 22 8c0 2.411-.61 4.68-1.683 6.66' }],\n ['path', { d: 'M5.341 10.62a4 4 0 0 0 6.487 1.208M10.62 5.341a4.015 4.015 0 0 1 2.039 2.04' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default BeanOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bean\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMTY1IDYuNTk4QzkuOTU0IDcuNDc4IDkuNjQgOC4zNiA5IDljLS42NC42NC0xLjUyMS45NTQtMi40MDIgMS4xNjVBNiA2IDAgMCAwIDggMjJjNy43MzIgMCAxNC02LjI2OCAxNC0xNGE2IDYgMCAwIDAtMTEuODM1LTEuNDAyWiIgLz4KICA8cGF0aCBkPSJNNS4zNDEgMTAuNjJhNCA0IDAgMSAwIDUuMjc5LTUuMjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bean\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bean: IconNode = [\n [\n 'path',\n {\n d: 'M10.165 6.598C9.954 7.478 9.64 8.36 9 9c-.64.64-1.521.954-2.402 1.165A6 6 0 0 0 8 22c7.732 0 14-6.268 14-14a6 6 0 0 0-11.835-1.402Z',\n },\n ],\n ['path', { d: 'M5.341 10.62a4 4 0 1 0 5.279-5.28' }],\n];\n\nexport default Bean;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bed-double\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMHYtOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2OCIgLz4KICA8cGF0aCBkPSJNNCAxMFY2YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY0IiAvPgogIDxwYXRoIGQ9Ik0xMiA0djYiIC8+CiAgPHBhdGggZD0iTTIgMThoMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bed-double\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BedDouble: IconNode = [\n ['path', { d: 'M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8' }],\n ['path', { d: 'M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4' }],\n ['path', { d: 'M12 4v6' }],\n ['path', { d: 'M2 18h20' }],\n];\n\nexport default BedDouble;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bed-single\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCIgLz4KICA8cGF0aCBkPSJNNSAxMFY2YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0IiAvPgogIDxwYXRoIGQ9Ik0zIDE4aDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bed-single\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BedSingle: IconNode = [\n ['path', { d: 'M3 20v-8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v8' }],\n ['path', { d: 'M5 10V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4' }],\n ['path', { d: 'M3 18h18' }],\n];\n\nexport default BedSingle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA0djE2IiAvPgogIDxwYXRoIGQ9Ik0yIDhoMThhMiAyIDAgMCAxIDIgMnYxMCIgLz4KICA8cGF0aCBkPSJNMiAxN2gyMCIgLz4KICA8cGF0aCBkPSJNNiA4djkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bed: IconNode = [\n ['path', { d: 'M2 4v16' }],\n ['path', { d: 'M2 8h18a2 2 0 0 1 2 2v10' }],\n ['path', { d: 'M2 17h20' }],\n ['path', { d: 'M6 8v9' }],\n];\n\nexport default Bed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name beef\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuNCAxMy43QTYuNSA2LjUgMCAxIDAgNi4yOCA2LjZjLTEuMSAzLjEzLS43OCAzLjktMy4xOCA2LjA4QTMgMyAwIDAgMCA1IDE4YzQgMCA4LjQtMS44IDExLjQtNC4zIiAvPgogIDxwYXRoIGQ9Im0xOC41IDYgMi4xOSA0LjVhNi40OCA2LjQ4IDAgMCAxLTIuMjkgNy4yQzE1LjQgMjAuMiAxMSAyMiA3IDIyYTMgMyAwIDAgMS0yLjY4LTEuNjZMMi40IDE2LjUiIC8+CiAgPGNpcmNsZSBjeD0iMTIuNSIgY3k9IjguNSIgcj0iMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/beef\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Beef: IconNode = [\n [\n 'path',\n {\n d: 'M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3',\n },\n ],\n [\n 'path',\n {\n d: 'm18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5',\n },\n ],\n ['circle', { cx: '12.5', cy: '8.5', r: '2.5' }],\n];\n\nexport default Beef;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name beer-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTN2NSIgLz4KICA8cGF0aCBkPSJNMTcgMTEuNDdWOCIgLz4KICA8cGF0aCBkPSJNMTcgMTFoMWEzIDMgMCAwIDEgMi43NDUgNC4yMTEiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNNSA4djEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0ydi0zIiAvPgogIDxwYXRoIGQ9Ik03LjUzNiA3LjUzNUM2Ljc2NiA3LjY0OSA2LjE1NCA4IDUuNSA4YTIuNSAyLjUgMCAwIDEtMS43NjgtNC4yNjgiIC8+CiAgPHBhdGggZD0iTTguNzI3IDMuMjA0QzkuMzA2IDIuNzY3IDkuODg1IDIgMTEgMmMxLjU2IDAgMiAxLjUgMyAxLjVzMS43Mi0uNSAyLjUtLjVhMSAxIDAgMSAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNWEzLjE0OSAzLjE0OSAwIDAgMC0uODQyLjEyIiAvPgogIDxwYXRoIGQ9Ik05IDE0LjZWMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/beer-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BeerOff: IconNode = [\n ['path', { d: 'M13 13v5' }],\n ['path', { d: 'M17 11.47V8' }],\n ['path', { d: 'M17 11h1a3 3 0 0 1 2.745 4.211' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-3' }],\n ['path', { d: 'M7.536 7.535C6.766 7.649 6.154 8 5.5 8a2.5 2.5 0 0 1-1.768-4.268' }],\n [\n 'path',\n {\n d: 'M8.727 3.204C9.306 2.767 9.885 2 11 2c1.56 0 2 1.5 3 1.5s1.72-.5 2.5-.5a1 1 0 1 1 0 5c-.78 0-1.5-.5-2.5-.5a3.149 3.149 0 0 0-.842.12',\n },\n ],\n ['path', { d: 'M9 14.6V18' }],\n];\n\nexport default BeerOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name beer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xIiAvPgogIDxwYXRoIGQ9Ik05IDEydjYiIC8+CiAgPHBhdGggZD0iTTEzIDEydjYiIC8+CiAgPHBhdGggZD0iTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVoiIC8+CiAgPHBhdGggZD0iTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/beer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Beer: IconNode = [\n ['path', { d: 'M17 11h1a3 3 0 0 1 0 6h-1' }],\n ['path', { d: 'M9 12v6' }],\n ['path', { d: 'M13 12v6' }],\n [\n 'path',\n {\n d: 'M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z',\n },\n ],\n ['path', { d: 'M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8' }],\n];\n\nexport default Beer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0xMS42OCAyLjAwOUE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M2MtLjgyNC0uODUtMS42NzgtMS43MzEtMi4yMS0zLjM0OCIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjUiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bell-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellDot: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n [\n 'path',\n {\n d: 'M11.68 2.009A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673c-.824-.85-1.678-1.731-2.21-3.348',\n },\n ],\n ['circle', { cx: '18', cy: '5', r: '3' }],\n];\n\nexport default BellDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-electric\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguNTE4IDE3LjM0N0E3IDcgMCAwIDEgMTQgMTkiIC8+CiAgPHBhdGggZD0iTTE4LjggNEExMSAxMSAwIDAgMSAyMCA5IiAvPgogIDxwYXRoIGQ9Ik05IDloLjAxIiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMTYiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjciIC8+CiAgPHJlY3QgeD0iNCIgeT0iMTYiIHdpZHRoPSIxMCIgaGVpZ2h0PSI2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bell-electric\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellElectric: IconNode = [\n ['path', { d: 'M18.518 17.347A7 7 0 0 1 14 19' }],\n ['path', { d: 'M18.8 4A11 11 0 0 1 20 9' }],\n ['path', { d: 'M9 9h.01' }],\n ['circle', { cx: '20', cy: '16', r: '2' }],\n ['circle', { cx: '9', cy: '9', r: '7' }],\n ['rect', { x: '4', y: '16', width: '10', height: '6', rx: '2' }],\n];\n\nexport default BellElectric;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0xNSA4aDYiIC8+CiAgPHBhdGggZD0iTTE2LjI0MyAzLjc1N0E2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0E5LjQgOS40IDAgMCAxIDE4LjY2NyAxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bell-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellMinus: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n ['path', { d: 'M15 8h6' }],\n [\n 'path',\n {\n d: 'M16.243 3.757A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673A9.4 9.4 0 0 1 18.667 12',\n },\n ],\n];\n\nexport default BellMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0xNyAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSAuMjU4LTEuNzQyIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTguNjY4IDMuMDFBNiA2IDAgMCAxIDE4IDhjMCAyLjY4Ny43NyA0LjY1MyAxLjcwNyA2LjA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bell-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellOff: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n ['path', { d: 'M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05' }],\n];\n\nexport default BellOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0xNSA4aDYiIC8+CiAgPHBhdGggZD0iTTE4IDV2NiIgLz4KICA8cGF0aCBkPSJNMjAuMDAyIDE0LjQ2NGE5IDkgMCAwIDAgLjczOC44NjNBMSAxIDAgMCAxIDIwIDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIDguNzUtNS4zMzIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bell-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellPlus: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n ['path', { d: 'M15 8h6' }],\n ['path', { d: 'M18 5v6' }],\n [\n 'path',\n {\n d: 'M20.002 14.464a9 9 0 0 0 .738.863A1 1 0 0 1 20 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 8.75-5.332',\n },\n ],\n];\n\nexport default BellPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell-ring\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0yMiA4YzAtMi4zLS44LTQuMy0yLTYiIC8+CiAgPHBhdGggZD0iTTMuMjYyIDE1LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQzE5LjQxIDEzLjk1NiAxOCAxMi40OTkgMTggOEE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjYiIC8+CiAgPHBhdGggZD0iTTQgMkMyLjggMy43IDIgNS43IDIgOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bell-ring\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BellRing: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n ['path', { d: 'M22 8c0-2.3-.8-4.3-2-6' }],\n [\n 'path',\n {\n d: 'M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326',\n },\n ],\n ['path', { d: 'M4 2C2.8 3.7 2 5.7 2 8' }],\n];\n\nexport default BellRing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bell\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bell\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bell: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0' }],\n [\n 'path',\n {\n d: 'M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326',\n },\n ],\n];\n\nexport default Bell;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name between-horizontal-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTMiIGhlaWdodD0iNyIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0ibTIyIDE1LTMtMyAzLTMiIC8+CiAgPHJlY3Qgd2lkdGg9IjEzIiBoZWlnaHQ9IjciIHg9IjMiIHk9IjE0IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/between-horizontal-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BetweenHorizontalEnd: IconNode = [\n ['rect', { width: '13', height: '7', x: '3', y: '3', rx: '1' }],\n ['path', { d: 'm22 15-3-3 3-3' }],\n ['rect', { width: '13', height: '7', x: '3', y: '14', rx: '1' }],\n];\n\nexport default BetweenHorizontalEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name between-horizontal-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTMiIGhlaWdodD0iNyIgeD0iOCIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0ibTIgOSAzIDMtMyAzIiAvPgogIDxyZWN0IHdpZHRoPSIxMyIgaGVpZ2h0PSI3IiB4PSI4IiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/between-horizontal-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BetweenHorizontalStart: IconNode = [\n ['rect', { width: '13', height: '7', x: '8', y: '3', rx: '1' }],\n ['path', { d: 'm2 9 3 3-3 3' }],\n ['rect', { width: '13', height: '7', x: '8', y: '14', rx: '1' }],\n];\n\nexport default BetweenHorizontalStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name between-vertical-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxMyIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0ibTkgMjIgMy0zIDMgMyIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxMyIgeD0iMTQiIHk9IjMiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/between-vertical-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BetweenVerticalEnd: IconNode = [\n ['rect', { width: '7', height: '13', x: '3', y: '3', rx: '1' }],\n ['path', { d: 'm9 22 3-3 3 3' }],\n ['rect', { width: '7', height: '13', x: '14', y: '3', rx: '1' }],\n];\n\nexport default BetweenVerticalEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name between-vertical-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxMyIgeD0iMyIgeT0iOCIgcng9IjEiIC8+CiAgPHBhdGggZD0ibTE1IDItMyAzLTMtMyIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxMyIgeD0iMTQiIHk9IjgiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/between-vertical-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BetweenVerticalStart: IconNode = [\n ['rect', { width: '7', height: '13', x: '3', y: '8', rx: '1' }],\n ['path', { d: 'm15 2-3 3-3-3' }],\n ['rect', { width: '7', height: '13', x: '14', y: '8', rx: '1' }],\n];\n\nexport default BetweenVerticalStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name biceps-flexed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNDA5IDEzLjAxN0E1IDUgMCAwIDEgMjIgMTVjMCAzLjg2Ni00IDctOSA3LTQuMDc3IDAtOC4xNTMtLjgyLTEwLjM3MS0yLjQ2Mi0uNDI2LS4zMTYtLjYzMS0uODMyLS42Mi0xLjM2MkMyLjExOCAxMi43MjMgMi42MjcgMiAxMCAyYTMgMyAwIDAgMSAzIDMgMiAyIDAgMCAxLTIgMmMtMS4xMDUgMC0xLjY0LS40NDQtMi0xIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNGE1IDUgMCAwIDAtNy41ODQgMiIgLz4KICA8cGF0aCBkPSJNOS45NjQgNi44MjVDOC4wMTkgNy45NzcgOS41IDEzIDggMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/biceps-flexed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BicepsFlexed: IconNode = [\n [\n 'path',\n {\n d: 'M12.409 13.017A5 5 0 0 1 22 15c0 3.866-4 7-9 7-4.077 0-8.153-.82-10.371-2.462-.426-.316-.631-.832-.62-1.362C2.118 12.723 2.627 2 10 2a3 3 0 0 1 3 3 2 2 0 0 1-2 2c-1.105 0-1.64-.444-2-1',\n },\n ],\n ['path', { d: 'M15 14a5 5 0 0 0-7.584 2' }],\n ['path', { d: 'M9.964 6.825C8.019 7.977 9.5 13 8 15' }],\n];\n\nexport default BicepsFlexed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bike\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOC41IiBjeT0iMTcuNSIgcj0iMy41IiAvPgogIDxjaXJjbGUgY3g9IjUuNSIgY3k9IjE3LjUiIHI9IjMuNSIgLz4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjUiIHI9IjEiIC8+CiAgPHBhdGggZD0iTTEyIDE3LjVWMTRsLTMtMyA0LTMgMiAzaDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bike\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bike: IconNode = [\n ['circle', { cx: '18.5', cy: '17.5', r: '3.5' }],\n ['circle', { cx: '5.5', cy: '17.5', r: '3.5' }],\n ['circle', { cx: '15', cy: '5', r: '1' }],\n ['path', { d: 'M12 17.5V14l-3-3 4-3 2 3h2' }],\n];\n\nexport default Bike;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name binary\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiIHJ4PSIyIiAvPgogIDxyZWN0IHg9IjYiIHk9IjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik02IDIwaDQiIC8+CiAgPHBhdGggZD0iTTE0IDEwaDQiIC8+CiAgPHBhdGggZD0iTTYgMTRoMnY2IiAvPgogIDxwYXRoIGQ9Ik0xNCA0aDJ2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/binary\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Binary: IconNode = [\n ['rect', { x: '14', y: '14', width: '4', height: '6', rx: '2' }],\n ['rect', { x: '6', y: '4', width: '4', height: '6', rx: '2' }],\n ['path', { d: 'M6 20h4' }],\n ['path', { d: 'M14 10h4' }],\n ['path', { d: 'M6 14h2v6' }],\n ['path', { d: 'M14 4h2v6' }],\n];\n\nexport default Binary;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name binoculars\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTBoNCIgLz4KICA8cGF0aCBkPSJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMWEyIDIgMCAwIDAgMi0ydi0zLjg1MWMwLTEuMzktMi0yLjk2Mi0yLTQuODI5VjhhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjExYTIgMiAwIDAgMCAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0gMjIgMTYgTCAyIDE2IiAvPgogIDxwYXRoIGQ9Ik00IDIxYTIgMiAwIDAgMS0yLTJ2LTMuODUxYzAtMS4zOSAyLTIuOTYyIDItNC44MjlWOGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYxMWEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNOSA3VjRhMSAxIDAgMCAwLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/binoculars\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Binoculars: IconNode = [\n ['path', { d: 'M10 10h4' }],\n ['path', { d: 'M19 7V4a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3' }],\n [\n 'path',\n {\n d: 'M20 21a2 2 0 0 0 2-2v-3.851c0-1.39-2-2.962-2-4.829V8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v11a2 2 0 0 0 2 2z',\n },\n ],\n ['path', { d: 'M 22 16 L 2 16' }],\n [\n 'path',\n {\n d: 'M4 21a2 2 0 0 1-2-2v-3.851c0-1.39 2-2.962 2-4.829V8a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M9 7V4a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v3' }],\n];\n\nexport default Binoculars;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name biohazard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjExLjkiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTYuNyAzLjRjLS45IDIuNSAwIDUuMiAyLjIgNi43QzYuNSA5IDMuNyA5LjYgMiAxMS42IiAvPgogIDxwYXRoIGQ9Im04LjkgMTAuMSAxLjQuOCIgLz4KICA8cGF0aCBkPSJNMTcuMyAzLjRjLjkgMi41IDAgNS4yLTIuMiA2LjcgMi40LTEuMiA1LjItLjYgNi45IDEuNSIgLz4KICA8cGF0aCBkPSJtMTUuMSAxMC4xLTEuNC44IiAvPgogIDxwYXRoIGQ9Ik0xNi43IDIwLjhjLTIuNi0uNC00LjYtMi42LTQuNy01LjMtLjIgMi42LTIuMSA0LjgtNC43IDUuMiIgLz4KICA8cGF0aCBkPSJNMTIgMTMuOXYxLjYiIC8+CiAgPHBhdGggZD0iTTEzLjUgNS40Yy0xLS4yLTItLjItMyAwIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNi40Yy43LS43IDEuMi0xLjYgMS41LTIuNSIgLz4KICA8cGF0aCBkPSJNNS41IDEzLjljLjMuOS44IDEuOCAxLjUgMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/biohazard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Biohazard: IconNode = [\n ['circle', { cx: '12', cy: '11.9', r: '2' }],\n ['path', { d: 'M6.7 3.4c-.9 2.5 0 5.2 2.2 6.7C6.5 9 3.7 9.6 2 11.6' }],\n ['path', { d: 'm8.9 10.1 1.4.8' }],\n ['path', { d: 'M17.3 3.4c.9 2.5 0 5.2-2.2 6.7 2.4-1.2 5.2-.6 6.9 1.5' }],\n ['path', { d: 'm15.1 10.1-1.4.8' }],\n ['path', { d: 'M16.7 20.8c-2.6-.4-4.6-2.6-4.7-5.3-.2 2.6-2.1 4.8-4.7 5.2' }],\n ['path', { d: 'M12 13.9v1.6' }],\n ['path', { d: 'M13.5 5.4c-1-.2-2-.2-3 0' }],\n ['path', { d: 'M17 16.4c.7-.7 1.2-1.6 1.5-2.5' }],\n ['path', { d: 'M5.5 13.9c.3.9.8 1.8 1.5 2.5' }],\n];\n\nexport default Biohazard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bird\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgN2guMDEiIC8+CiAgPHBhdGggZD0iTTMuNCAxOEgxMmE4IDggMCAwIDAgOC04VjdhNCA0IDAgMCAwLTcuMjgtMi4zTDIgMjAiIC8+CiAgPHBhdGggZD0ibTIwIDcgMiAuNS0yIC41IiAvPgogIDxwYXRoIGQ9Ik0xMCAxOHYzIiAvPgogIDxwYXRoIGQ9Ik0xNCAxNy43NVYyMSIgLz4KICA8cGF0aCBkPSJNNyAxOGE2IDYgMCAwIDAgMy44NC0xMC42MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bird\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bird: IconNode = [\n ['path', { d: 'M16 7h.01' }],\n ['path', { d: 'M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20' }],\n ['path', { d: 'm20 7 2 .5-2 .5' }],\n ['path', { d: 'M10 18v3' }],\n ['path', { d: 'M14 17.75V21' }],\n ['path', { d: 'M7 18a6 6 0 0 0 3.84-10.61' }],\n];\n\nexport default Bird;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name birdhouse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTh2NCIgLz4KICA8cGF0aCBkPSJtMTcgMTggMS45NTYtMTEuNDY4IiAvPgogIDxwYXRoIGQ9Im0zIDggNy44Mi01LjYxNWEyIDIgMCAwIDEgMi4zNiAwTDIxIDgiIC8+CiAgPHBhdGggZD0iTTQgMThoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTggNS4wNDQgNi41MzIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/birdhouse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Birdhouse: IconNode = [\n ['path', { d: 'M12 18v4' }],\n ['path', { d: 'm17 18 1.956-11.468' }],\n ['path', { d: 'm3 8 7.82-5.615a2 2 0 0 1 2.36 0L21 8' }],\n ['path', { d: 'M4 18h16' }],\n ['path', { d: 'M7 18 5.044 6.532' }],\n ['circle', { cx: '12', cy: '10', r: '2' }],\n];\n\nexport default Birdhouse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bitcoin\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNzY3IDE5LjA4OWM0LjkyNC44NjggNi4xNC02LjAyNSAxLjIxNi02Ljg5NG0tMS4yMTYgNi44OTRMNS44NiAxOC4wNDdtNS45MDggMS4wNDItLjM0NyAxLjk3bTEuNTYzLTguODY0YzQuOTI0Ljg2OSA2LjE0LTYuMDI1IDEuMjE1LTYuODkzbS0xLjIxNSA2Ljg5My0zLjk0LS42OTRtNS4xNTUtNi4yTDguMjkgNC4yNm01LjkwOCAxLjA0Mi4zNDgtMS45N003LjQ4IDIwLjM2NGwzLjEyNi0xNy43MjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bitcoin\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bitcoin: IconNode = [\n [\n 'path',\n {\n d: 'M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727',\n },\n ],\n];\n\nexport default Bitcoin;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name blend\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iNyIgLz4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjE1IiByPSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/blend\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Blend: IconNode = [\n ['circle', { cx: '9', cy: '9', r: '7' }],\n ['circle', { cx: '15', cy: '15', r: '7' }],\n];\n\nexport default Blend;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name blinds\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzaDE4IiAvPgogIDxwYXRoIGQ9Ik0yMCA3SDgiIC8+CiAgPHBhdGggZD0iTTIwIDExSDgiIC8+CiAgPHBhdGggZD0iTTEwIDE5aDEwIiAvPgogIDxwYXRoIGQ9Ik04IDE1aDEyIiAvPgogIDxwYXRoIGQ9Ik00IDN2MTQiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjE5IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/blinds\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Blinds: IconNode = [\n ['path', { d: 'M3 3h18' }],\n ['path', { d: 'M20 7H8' }],\n ['path', { d: 'M20 11H8' }],\n ['path', { d: 'M10 19h10' }],\n ['path', { d: 'M8 15h12' }],\n ['path', { d: 'M4 3v14' }],\n ['circle', { cx: '4', cy: '19', r: '2' }],\n];\n\nexport default Blinds;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bluetooth-connected\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3IiAvPgogIDxsaW5lIHgxPSIxOCIgeDI9IjIxIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMyIgeDI9IjYiIHkxPSIxMiIgeTI9IjEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bluetooth-connected\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BluetoothConnected: IconNode = [\n ['path', { d: 'm7 7 10 10-5 5V2l5 5L7 17' }],\n ['line', { x1: '18', x2: '21', y1: '12', y2: '12' }],\n ['line', { x1: '3', x2: '6', y1: '12', y2: '12' }],\n];\n\nexport default BluetoothConnected;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name blocks\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjJWN2ExIDEgMCAwIDAtMS0xSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTVhMSAxIDAgMCAwLTEtMUgyIiAvPgogIDxyZWN0IHg9IjE0IiB5PSIyIiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/blocks\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Blocks: IconNode = [\n [\n 'path',\n {\n d: 'M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2',\n },\n ],\n ['rect', { x: '14', y: '2', width: '8', height: '8', rx: '1' }],\n];\n\nexport default Blocks;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bluetooth-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTctNSA1VjEybC01IDUiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMTQuNSA5LjUgMTcgN2wtNS01djQuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/bluetooth-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BluetoothOff: IconNode = [\n ['path', { d: 'm17 17-5 5V12l-5 5' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M14.5 9.5 17 7l-5-5v4.5' }],\n];\n\nexport default BluetoothOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bluetooth-searching\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3IiAvPgogIDxwYXRoIGQ9Ik0yMC44MyAxNC44M2E0IDQgMCAwIDAgMC01LjY2IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bluetooth-searching\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BluetoothSearching: IconNode = [\n ['path', { d: 'm7 7 10 10-5 5V2l5 5L7 17' }],\n ['path', { d: 'M20.83 14.83a4 4 0 0 0 0-5.66' }],\n ['path', { d: 'M18 12h.01' }],\n];\n\nexport default BluetoothSearching;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bold\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxMmg5YTQgNCAwIDAgMSAwIDhIN2ExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMWg3YTQgNCAwIDAgMSAwIDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bold\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bold: IconNode = [\n ['path', { d: 'M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8' }],\n];\n\nexport default Bold;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bluetooth\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bluetooth\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bluetooth: IconNode = [['path', { d: 'm7 7 10 10-5 5V2l5 5L7 17' }]];\n\nexport default Bluetooth;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bomb\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjEzIiByPSI5IiAvPgogIDxwYXRoIGQ9Ik0xNC4zNSA0LjY1IDE2LjMgMi43YTIuNDEgMi40MSAwIDAgMSAzLjQgMGwxLjYgMS42YTIuNCAyLjQgMCAwIDEgMCAzLjRsLTEuOTUgMS45NSIgLz4KICA8cGF0aCBkPSJtMjIgMi0xLjUgMS41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bomb\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bomb: IconNode = [\n ['circle', { cx: '11', cy: '13', r: '9' }],\n [\n 'path',\n { d: 'M14.35 4.65 16.3 2.7a2.41 2.41 0 0 1 3.4 0l1.6 1.6a2.4 2.4 0 0 1 0 3.4l-1.95 1.95' },\n ],\n ['path', { d: 'm22 2-1.5 1.5' }],\n];\n\nexport default Bomb;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bolt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bolt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bolt: IconNode = [\n [\n 'path',\n {\n d: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n];\n\nexport default Bolt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTBjLjctLjcgMS42OSAwIDIuNSAwYTIuNSAyLjUgMCAxIDAgMC01IC41LjUgMCAwIDEtLjUtLjUgMi41IDIuNSAwIDEgMC01IDBjMCAuODEuNyAxLjggMCAyLjVsLTcgN2MtLjcuNy0xLjY5IDAtMi41IDBhMi41IDIuNSAwIDAgMCAwIDVjLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAxIDAgNSAwYzAtLjgxLS43LTEuOCAwLTIuNVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bone: IconNode = [\n [\n 'path',\n {\n d: 'M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z',\n },\n ],\n];\n\nexport default Bone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-a\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJtOCAxMyA0LTcgNCA3IiAvPgogIDxwYXRoIGQ9Ik05LjEgMTFoNS43IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-a\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookA: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'm8 13 4-7 4 7' }],\n ['path', { d: 'M9.1 11h5.7' }],\n];\n\nexport default BookA;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiA2djMiIC8+CiAgPHBhdGggZD0iTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookAlert: IconNode = [\n ['path', { d: 'M12 13h.01' }],\n ['path', { d: 'M12 6v3' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n];\n\nexport default BookAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJtOSA5LjUgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookCheck: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'm9 9.5 2 2 4-4' }],\n];\n\nexport default BookCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-audio\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY3IiAvPgogIDxwYXRoIGQ9Ik0xNiA4djMiIC8+CiAgPHBhdGggZD0iTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIC8+CiAgPHBhdGggZD0iTTggOHYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-audio\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookAudio: IconNode = [\n ['path', { d: 'M12 6v7' }],\n ['path', { d: 'M16 8v3' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'M8 8v3' }],\n];\n\nexport default BookAudio;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-copy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA3YTIgMiAwIDAgMC0yIDJ2MTEiIC8+CiAgPHBhdGggZD0iTTUuODAzIDE4SDVhMiAyIDAgMCAwIDAgNGg5LjVhLjUuNSAwIDAgMCAuNS0uNVYyMSIgLz4KICA8cGF0aCBkPSJNOSAxNVY0YTIgMiAwIDAgMSAyLTJoOS41YS41LjUgMCAwIDEgLjUuNXYxNGEuNS41IDAgMCAxLS41LjVIMTFhMiAyIDAgMCAxIDAtNGgxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-copy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookCopy: IconNode = [\n ['path', { d: 'M5 7a2 2 0 0 0-2 2v11' }],\n ['path', { d: 'M5.803 18H5a2 2 0 0 0 0 4h9.5a.5.5 0 0 0 .5-.5V21' }],\n [\n 'path',\n { d: 'M9 15V4a2 2 0 0 1 2-2h9.5a.5.5 0 0 1 .5.5v14a.5.5 0 0 1-.5.5H11a2 2 0 0 1 0-4h10' },\n ],\n];\n\nexport default BookCopy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTdoMS41IiAvPgogIDxwYXRoIGQ9Ik0xMiAyMmgxLjUiIC8+CiAgPHBhdGggZD0iTTEyIDJoMS41IiAvPgogIDxwYXRoIGQ9Ik0xNy41IDIySDE5YTEgMSAwIDAgMCAxLTEiIC8+CiAgPHBhdGggZD0iTTE3LjUgMkgxOWExIDEgMCAwIDEgMSAxdjEuNSIgLz4KICA8cGF0aCBkPSJNMjAgMTR2M2gtMi41IiAvPgogIDxwYXRoIGQ9Ik0yMCA4LjVWMTAiIC8+CiAgPHBhdGggZD0iTTQgMTBWOC41IiAvPgogIDxwYXRoIGQ9Ik00IDE5LjVWMTQiIC8+CiAgPHBhdGggZD0iTTQgNC41QTIuNSAyLjUgMCAwIDEgNi41IDJIOCIgLz4KICA8cGF0aCBkPSJNOCAyMkg2LjVhMSAxIDAgMCAxIDAtNUg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookDashed: IconNode = [\n ['path', { d: 'M12 17h1.5' }],\n ['path', { d: 'M12 22h1.5' }],\n ['path', { d: 'M12 2h1.5' }],\n ['path', { d: 'M17.5 22H19a1 1 0 0 0 1-1' }],\n ['path', { d: 'M17.5 2H19a1 1 0 0 1 1 1v1.5' }],\n ['path', { d: 'M20 14v3h-2.5' }],\n ['path', { d: 'M20 8.5V10' }],\n ['path', { d: 'M4 10V8.5' }],\n ['path', { d: 'M4 19.5V14' }],\n ['path', { d: 'M4 4.5A2.5 2.5 0 0 1 6.5 2H8' }],\n ['path', { d: 'M8 22H6.5a1 1 0 0 1 0-5H8' }],\n];\n\nexport default BookDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNWNyIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJtOSAxMCAzIDMgMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookDown: IconNode = [\n ['path', { d: 'M12 13V7' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'm9 10 3 3 3-3' }],\n];\n\nexport default BookDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-headphones\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJNOCAxMnYtMmE0IDQgMCAwIDEgOCAwdjIiIC8+CiAgPGNpcmNsZSBjeD0iMTUiIGN5PSIxMiIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-headphones\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookHeadphones: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'M8 12v-2a4 4 0 0 1 8 0v2' }],\n ['circle', { cx: '15', cy: '12', r: '1' }],\n ['circle', { cx: '9', cy: '12', r: '1' }],\n];\n\nexport default BookHeadphones;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJNOC42MiA5LjhBMi4yNSAyLjI1IDAgMSAxIDEyIDYuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookHeart: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n [\n 'path',\n {\n d: 'M8.62 9.8A2.25 2.25 0 1 1 12 6.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z',\n },\n ],\n];\n\nexport default BookHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-image\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjAgMTMuNy0yLjEtMi4xYTIgMiAwIDAgMC0yLjggMEw5LjcgMTciIC8+CiAgPHBhdGggZD0iTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-image\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookImage: IconNode = [\n ['path', { d: 'm20 13.7-2.1-2.1a2 2 0 0 0-2.8 0L9.7 17' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['circle', { cx: '10', cy: '8', r: '2' }],\n];\n\nexport default BookImage;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMkg2LjVBMi41IDIuNSAwIDAgMCA0IDQuNXYxNSIgLz4KICA8cGF0aCBkPSJNMTcgMnY2IiAvPgogIDxwYXRoIGQ9Ik0xNyA0aDIiIC8+CiAgPHBhdGggZD0iTTIwIDE1LjJWMjFhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjEwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookKey: IconNode = [\n ['path', { d: 'M13 2H6.5A2.5 2.5 0 0 0 4 4.5v15' }],\n ['path', { d: 'M17 2v6' }],\n ['path', { d: 'M17 4h2' }],\n ['path', { d: 'M20 15.2V21a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' }],\n ['circle', { cx: '17', cy: '10', r: '2' }],\n];\n\nexport default BookKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNlY0YTIgMiAwIDEgMC00IDB2MiIgLz4KICA8cGF0aCBkPSJNMjAgMTV2NmExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiAvPgogIDxwYXRoIGQ9Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTAiIC8+CiAgPHJlY3QgeD0iMTIiIHk9IjYiIHdpZHRoPSI4IiBoZWlnaHQ9IjUiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookLock: IconNode = [\n ['path', { d: 'M18 6V4a2 2 0 1 0-4 0v2' }],\n ['path', { d: 'M20 15v6a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' }],\n ['path', { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H10' }],\n ['rect', { x: '12', y: '6', width: '8', height: '5', rx: '1' }],\n];\n\nexport default BookLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-marked\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnY4bDMtMyAzIDNWMiIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-marked\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookMarked: IconNode = [\n ['path', { d: 'M10 2v8l3-3 3 3V2' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n];\n\nexport default BookMarked;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJNOSAxMGg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookMinus: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'M9 10h6' }],\n];\n\nexport default BookMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-open-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjFWNyIgLz4KICA8cGF0aCBkPSJtMTYgMTIgMiAyIDQtNCIgLz4KICA8cGF0aCBkPSJNMjIgNlY0YTEgMSAwIDAgMC0xLTFoLTVhNCA0IDAgMCAwLTQgNCA0IDQgMCAwIDAtNC00SDNhMSAxIDAgMCAwLTEgMXYxM2ExIDEgMCAwIDAgMSAxaDZhMyAzIDAgMCAxIDMgMyAzIDMgMCAwIDEgMy0zaDZhMSAxIDAgMCAwIDEtMXYtMS4zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-open-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookOpenCheck: IconNode = [\n ['path', { d: 'M12 21V7' }],\n ['path', { d: 'm16 12 2 2 4-4' }],\n [\n 'path',\n {\n d: 'M22 6V4a1 1 0 0 0-1-1h-5a4 4 0 0 0-4 4 4 4 0 0 0-4-4H3a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h6a3 3 0 0 1 3 3 3 3 0 0 1 3-3h6a1 1 0 0 0 1-1v-1.3',\n },\n ],\n];\n\nexport default BookOpenCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-open-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3YxNCIgLz4KICA8cGF0aCBkPSJNMTYgMTJoMiIgLz4KICA8cGF0aCBkPSJNMTYgOGgyIiAvPgogIDxwYXRoIGQ9Ik0zIDE4YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDVhNCA0IDAgMCAxIDQgNCA0IDQgMCAwIDEgNC00aDVhMSAxIDAgMCAxIDEgMXYxM2ExIDEgMCAwIDEtMSAxaC02YTMgMyAwIDAgMC0zIDMgMyAzIDAgMCAwLTMtM3oiIC8+CiAgPHBhdGggZD0iTTYgMTJoMiIgLz4KICA8cGF0aCBkPSJNNiA4aDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-open-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookOpenText: IconNode = [\n ['path', { d: 'M12 7v14' }],\n ['path', { d: 'M16 12h2' }],\n ['path', { d: 'M16 8h2' }],\n [\n 'path',\n {\n d: 'M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z',\n },\n ],\n ['path', { d: 'M6 12h2' }],\n ['path', { d: 'M6 8h2' }],\n];\n\nexport default BookOpenText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3YxNCIgLz4KICA8cGF0aCBkPSJNMyAxOGExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg1YTQgNCAwIDAgMSA0IDQgNCA0IDAgMCAxIDQtNGg1YTEgMSAwIDAgMSAxIDF2MTNhMSAxIDAgMCAxLTEgMWgtNmEzIDMgMCAwIDAtMyAzIDMgMyAwIDAgMC0zLTN6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookOpen: IconNode = [\n ['path', { d: 'M12 7v14' }],\n [\n 'path',\n {\n d: 'M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z',\n },\n ],\n];\n\nexport default BookOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y2IiAvPgogIDxwYXRoIGQ9Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiAvPgogIDxwYXRoIGQ9Ik05IDEwaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookPlus: IconNode = [\n ['path', { d: 'M12 7v6' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'M9 10h6' }],\n];\n\nexport default BookPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjJINS41YTEgMSAwIDAgMSAwLTVoNC41MDEiIC8+CiAgPHBhdGggZD0ibTIxIDIyLTEuODc5LTEuODc4IiAvPgogIDxwYXRoIGQ9Ik0zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4IiAvPgogIDxjaXJjbGUgY3g9IjE3IiBjeT0iMTgiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookSearch: IconNode = [\n ['path', { d: 'M11 22H5.5a1 1 0 0 1 0-5h4.501' }],\n ['path', { d: 'm21 22-1.879-1.878' }],\n ['path', { d: 'M3 19.5v-15A2.5 2.5 0 0 1 5.5 2H18a1 1 0 0 1 1 1v8' }],\n ['circle', { cx: '17', cy: '18', r: '3' }],\n];\n\nexport default BookSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJNOCAxMWg4IiAvPgogIDxwYXRoIGQ9Ik04IDdoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookText: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'M8 11h8' }],\n ['path', { d: 'M8 7h6' }],\n];\n\nexport default BookText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-type\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNoNCIgLz4KICA8cGF0aCBkPSJNMTIgNnY3IiAvPgogIDxwYXRoIGQ9Ik0xNiA4VjZIOHYyIiAvPgogIDxwYXRoIGQ9Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-type\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookType: IconNode = [\n ['path', { d: 'M10 13h4' }],\n ['path', { d: 'M12 6v7' }],\n ['path', { d: 'M16 8V6H8v2' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n];\n\nexport default BookType;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-up-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNWNyIgLz4KICA8cGF0aCBkPSJNMTggMmgxYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAyIiAvPgogIDxwYXRoIGQ9Im05IDEwIDMtMyAzIDMiIC8+CiAgPHBhdGggZD0ibTkgNSAzLTMgMyAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-up-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookUp2: IconNode = [\n ['path', { d: 'M12 13V7' }],\n ['path', { d: 'M18 2h1a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' }],\n ['path', { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2' }],\n ['path', { d: 'm9 10 3-3 3 3' }],\n ['path', { d: 'm9 5 3-3 3 3' }],\n];\n\nexport default BookUp2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNWNyIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJtOSAxMCAzLTMgMyAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookUp: IconNode = [\n ['path', { d: 'M12 13V7' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'm9 10 3-3 3 3' }],\n];\n\nexport default BookUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTNhMyAzIDAgMSAwLTYgMCIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjgiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/book-user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookUser: IconNode = [\n ['path', { d: 'M15 13a3 3 0 1 0-6 0' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['circle', { cx: '12', cy: '8', r: '2' }],\n];\n\nexport default BookUser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuNSA3LTUgNSIgLz4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KICA8cGF0aCBkPSJtOS41IDcgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/book-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookX: IconNode = [\n ['path', { d: 'm14.5 7-5 5' }],\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n ['path', { d: 'm9.5 7 5 5' }],\n];\n\nexport default BookX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name book\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/book\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Book: IconNode = [\n [\n 'path',\n { d: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' },\n ],\n];\n\nexport default Book;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IiAvPgogIDxwYXRoIGQ9Im05IDEwIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bookmark-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookmarkCheck: IconNode = [\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'm9 10 2 2 4-4' }],\n];\n\nexport default BookmarkCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTBIOSIgLz4KICA8cGF0aCBkPSJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bookmark-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookmarkMinus: IconNode = [\n ['path', { d: 'M15 10H9' }],\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n];\n\nexport default BookmarkMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y2IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMEg5IiAvPgogIDxwYXRoIGQ9Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bookmark-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookmarkPlus: IconNode = [\n ['path', { d: 'M12 7v6' }],\n ['path', { d: 'M15 10H9' }],\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n];\n\nexport default BookmarkPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuNSA3LjUtNSA1IiAvPgogIDxwYXRoIGQ9Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoiIC8+CiAgPHBhdGggZD0ibTkuNSA3LjUgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bookmark-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BookmarkX: IconNode = [\n ['path', { d: 'm14.5 7.5-5 5' }],\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'm9.5 7.5 5 5' }],\n];\n\nexport default BookmarkX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bookmark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bookmark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bookmark: IconNode = [\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z',\n },\n ],\n];\n\nexport default Bookmark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name boom-box\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA5VjVhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQiIC8+CiAgPHBhdGggZD0iTTggOHYxIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djEiIC8+CiAgPHBhdGggZD0iTTE2IDh2MSIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjkiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjgiIGN5PSIxNSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/boom-box\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BoomBox: IconNode = [\n ['path', { d: 'M4 9V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4' }],\n ['path', { d: 'M8 8v1' }],\n ['path', { d: 'M12 8v1' }],\n ['path', { d: 'M16 8v1' }],\n ['rect', { width: '20', height: '12', x: '2', y: '9', rx: '2' }],\n ['circle', { cx: '8', cy: '15', r: '2' }],\n ['circle', { cx: '16', cy: '15', r: '2' }],\n];\n\nexport default BoomBox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bot-message-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNlYySDgiIC8+CiAgPHBhdGggZD0iTTE1IDExdjIiIC8+CiAgPHBhdGggZD0iTTIgMTJoMiIgLz4KICA8cGF0aCBkPSJNMjAgMTJoMiIgLz4KICA8cGF0aCBkPSJNMjAgMTZhMiAyIDAgMCAxLTIgMkg4LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgNCAyMC4yODZWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik05IDExdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot-message-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BotMessageSquare: IconNode = [\n ['path', { d: 'M12 6V2H8' }],\n ['path', { d: 'M15 11v2' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'M20 12h2' }],\n [\n 'path',\n {\n d: 'M20 16a2 2 0 0 1-2 2H8.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 4 20.286V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M9 11v2' }],\n];\n\nexport default BotMessageSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOFY0SDgiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiB4PSI0IiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05IDEzdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bot: IconNode = [\n ['path', { d: 'M12 8V4H8' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2' }],\n ['path', { d: 'M2 14h2' }],\n ['path', { d: 'M20 14h2' }],\n ['path', { d: 'M15 13v2' }],\n ['path', { d: 'M9 13v2' }],\n];\n\nexport default Bot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bot-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNjcgOEgxOGEyIDIgMCAwIDEgMiAydjQuMzMiIC8+CiAgPHBhdGggZD0iTTIgMTRoMiIgLz4KICA8cGF0aCBkPSJNMjAgMTRoMiIgLz4KICA8cGF0aCBkPSJNMjIgMjIgMiAyIiAvPgogIDxwYXRoIGQ9Ik04IDhINmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMS40MTQtLjU4NiIgLz4KICA8cGF0aCBkPSJNOSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05LjY3IDRIMTJ2Mi4zMyIgLz4KPC9zdmc+) - https://lucide.dev/icons/bot-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BotOff: IconNode = [\n ['path', { d: 'M13.67 8H18a2 2 0 0 1 2 2v4.33' }],\n ['path', { d: 'M2 14h2' }],\n ['path', { d: 'M20 14h2' }],\n ['path', { d: 'M22 22 2 2' }],\n ['path', { d: 'M8 8H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 1.414-.586' }],\n ['path', { d: 'M9 13v2' }],\n ['path', { d: 'M9.67 4H12v2.33' }],\n];\n\nexport default BotOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bottle-wine\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgM2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTYgNiAwIDAgMCAxLjIgMy42bC42LjhBNiA2IDAgMCAxIDE3IDEzdjhhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LThhNiA2IDAgMCAxIDEuMi0zLjZsLjYtLjhBNiA2IDAgMCAwIDEwIDV6IiAvPgogIDxwYXRoIGQ9Ik0xNyAxM2gtNGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bottle-wine\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BottleWine: IconNode = [\n [\n 'path',\n {\n d: 'M10 3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a6 6 0 0 0 1.2 3.6l.6.8A6 6 0 0 1 17 13v8a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-8a6 6 0 0 1 1.2-3.6l.6-.8A6 6 0 0 0 10 5z',\n },\n ],\n ['path', { d: 'M17 13h-4a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h4' }],\n];\n\nexport default BottleWine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bow-arrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2g0djQiIC8+CiAgPHBhdGggZD0iTTE4LjU3NSAxMS4wODJhMTMgMTMgMCAwIDEgMS4wNDggOS4wMjcgMS4xNyAxLjE3IDAgMCAxLTEuOTE0LjU5N0wxNCAxNyIgLz4KICA8cGF0aCBkPSJNNyAxMCAzLjI5IDYuMjlhMS4xNyAxLjE3IDAgMCAxIC42LTEuOTEgMTMgMTMgMCAwIDEgOS4wMyAxLjA1IiAvPgogIDxwYXRoIGQ9Ik03IDE0YTEuNyAxLjcgMCAwIDAtMS4yMDcuNWwtMi42NDYgMi42NDZBLjUuNSAwIDAgMCAzLjUgMThINWExIDEgMCAwIDEgMSAxdjEuNWEuNS41IDAgMCAwIC44NTQuMzU0TDkuNSAxOC4yMDdBMS43IDEuNyAwIDAgMCAxMCAxN3YtMmExIDEgMCAwIDAtMS0xeiIgLz4KICA8cGF0aCBkPSJNOS43MDcgMTQuMjkzIDIxIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bow-arrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BowArrow: IconNode = [\n ['path', { d: 'M17 3h4v4' }],\n ['path', { d: 'M18.575 11.082a13 13 0 0 1 1.048 9.027 1.17 1.17 0 0 1-1.914.597L14 17' }],\n ['path', { d: 'M7 10 3.29 6.29a1.17 1.17 0 0 1 .6-1.91 13 13 0 0 1 9.03 1.05' }],\n [\n 'path',\n {\n d: 'M7 14a1.7 1.7 0 0 0-1.207.5l-2.646 2.646A.5.5 0 0 0 3.5 18H5a1 1 0 0 1 1 1v1.5a.5.5 0 0 0 .854.354L9.5 18.207A1.7 1.7 0 0 0 10 17v-2a1 1 0 0 0-1-1z',\n },\n ],\n ['path', { d: 'M9.707 14.293 21 3' }],\n];\n\nexport default BowArrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name box\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZaIiAvPgogIDxwYXRoIGQ9Im0zLjMgNyA4LjcgNSA4LjctNSIgLz4KICA8cGF0aCBkPSJNMTIgMjJWMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/box\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Box: IconNode = [\n [\n 'path',\n {\n d: 'M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z',\n },\n ],\n ['path', { d: 'm3.3 7 8.7 5 8.7-5' }],\n ['path', { d: 'M12 22V12' }],\n];\n\nexport default Box;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name boxes\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45NyAxMi45MkEyIDIgMCAwIDAgMiAxNC42M3YzLjI0YTIgMiAwIDAgMCAuOTcgMS43MWwzIDEuOGEyIDIgMCAwIDAgMi4wNiAwTDEyIDE5di01LjVsLTUtMy00LjAzIDIuNDJaIiAvPgogIDxwYXRoIGQ9Im03IDE2LjUtNC43NC0yLjg1IiAvPgogIDxwYXRoIGQ9Im03IDE2LjUgNS0zIiAvPgogIDxwYXRoIGQ9Ik03IDE2LjV2NS4xNyIgLz4KICA8cGF0aCBkPSJNMTIgMTMuNVYxOWwzLjk3IDIuMzhhMiAyIDAgMCAwIDIuMDYgMGwzLTEuOGEyIDIgMCAwIDAgLjk3LTEuNzF2LTMuMjRhMiAyIDAgMCAwLS45Ny0xLjcxTDE3IDEwLjVsLTUgM1oiIC8+CiAgPHBhdGggZD0ibTE3IDE2LjUtNS0zIiAvPgogIDxwYXRoIGQ9Im0xNyAxNi41IDQuNzQtMi44NSIgLz4KICA8cGF0aCBkPSJNMTcgMTYuNXY1LjE3IiAvPgogIDxwYXRoIGQ9Ik03Ljk3IDQuNDJBMiAyIDAgMCAwIDcgNi4xM3Y0LjM3bDUgMyA1LTNWNi4xM2EyIDIgMCAwIDAtLjk3LTEuNzFsLTMtMS44YTIgMiAwIDAgMC0yLjA2IDBsLTMgMS44WiIgLz4KICA8cGF0aCBkPSJNMTIgOCA3LjI2IDUuMTUiIC8+CiAgPHBhdGggZD0ibTEyIDggNC43NC0yLjg1IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMy41VjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/boxes\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Boxes: IconNode = [\n [\n 'path',\n {\n d: 'M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z',\n },\n ],\n ['path', { d: 'm7 16.5-4.74-2.85' }],\n ['path', { d: 'm7 16.5 5-3' }],\n ['path', { d: 'M7 16.5v5.17' }],\n [\n 'path',\n {\n d: 'M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z',\n },\n ],\n ['path', { d: 'm17 16.5-5-3' }],\n ['path', { d: 'm17 16.5 4.74-2.85' }],\n ['path', { d: 'M17 16.5v5.17' }],\n [\n 'path',\n {\n d: 'M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z',\n },\n ],\n ['path', { d: 'M12 8 7.26 5.15' }],\n ['path', { d: 'm12 8 4.74-2.85' }],\n ['path', { d: 'M12 13.5V8' }],\n];\n\nexport default Boxes;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name braces\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzSDdhMiAyIDAgMCAwLTIgMnY1YTIgMiAwIDAgMS0yIDIgMiAyIDAgMCAxIDIgMnY1YzAgMS4xLjkgMiAyIDJoMSIgLz4KICA8cGF0aCBkPSJNMTYgMjFoMWEyIDIgMCAwIDAgMi0ydi01YzAtMS4xLjktMiAyLTJhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMC0yLTJoLTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/braces\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Braces: IconNode = [\n ['path', { d: 'M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1' }],\n ['path', { d: 'M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1' }],\n];\n\nexport default Braces;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brackets\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2gzYTEgMSAwIDAgMSAxIDF2MTZhMSAxIDAgMCAxLTEgMWgtMyIgLz4KICA8cGF0aCBkPSJNOCAyMUg1YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brackets\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Brackets: IconNode = [\n ['path', { d: 'M16 3h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-3' }],\n ['path', { d: 'M8 21H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h3' }],\n];\n\nexport default Brackets;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brain-circuit\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNWEzIDMgMCAxIDAtNS45OTcuMTI1IDQgNCAwIDAgMC0yLjUyNiA1Ljc3IDQgNCAwIDAgMCAuNTU2IDYuNTg4QTQgNCAwIDEgMCAxMiAxOFoiIC8+CiAgPHBhdGggZD0iTTkgMTNhNC41IDQuNSAwIDAgMCAzLTQiIC8+CiAgPHBhdGggZD0iTTYuMDAzIDUuMTI1QTMgMyAwIDAgMCA2LjQwMSA2LjUiIC8+CiAgPHBhdGggZD0iTTMuNDc3IDEwLjg5NmE0IDQgMCAwIDEgLjU4NS0uMzk2IiAvPgogIDxwYXRoIGQ9Ik02IDE4YTQgNCAwIDAgMS0xLjk2Ny0uNTE2IiAvPgogIDxwYXRoIGQ9Ik0xMiAxM2g0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGg2YTIgMiAwIDAgMSAyIDJ2MSIgLz4KICA8cGF0aCBkPSJNMTIgOGg4IiAvPgogIDxwYXRoIGQ9Ik0xNiA4VjVhMiAyIDAgMCAxIDItMiIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjEzIiByPSIuNSIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMiIHI9Ii41IiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMjEiIHI9Ii41IiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iOCIgcj0iLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brain-circuit\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrainCircuit: IconNode = [\n [\n 'path',\n { d: 'M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z' },\n ],\n ['path', { d: 'M9 13a4.5 4.5 0 0 0 3-4' }],\n ['path', { d: 'M6.003 5.125A3 3 0 0 0 6.401 6.5' }],\n ['path', { d: 'M3.477 10.896a4 4 0 0 1 .585-.396' }],\n ['path', { d: 'M6 18a4 4 0 0 1-1.967-.516' }],\n ['path', { d: 'M12 13h4' }],\n ['path', { d: 'M12 18h6a2 2 0 0 1 2 2v1' }],\n ['path', { d: 'M12 8h8' }],\n ['path', { d: 'M16 8V5a2 2 0 0 1 2-2' }],\n ['circle', { cx: '16', cy: '13', r: '.5' }],\n ['circle', { cx: '18', cy: '3', r: '.5' }],\n ['circle', { cx: '20', cy: '21', r: '.5' }],\n ['circle', { cx: '20', cy: '8', r: '.5' }],\n];\n\nexport default BrainCircuit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brain-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyIgLz4KICA8cGF0aCBkPSJtMTAuODUyIDkuMjI4LS4zODMtLjkyMyIgLz4KICA8cGF0aCBkPSJtMTMuMTQ4IDE0Ljc3Mi4zODIuOTI0IiAvPgogIDxwYXRoIGQ9Im0xMy41MzEgOC4zMDUtLjM4My45MjMiIC8+CiAgPHBhdGggZD0ibTE0Ljc3MiAxMC44NTIuOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE0Ljc3MiAxMy4xNDguOTIzLjM4MyIgLz4KICA8cGF0aCBkPSJNMTcuNTk4IDYuNUEzIDMgMCAxIDAgMTIgNWEzIDMgMCAwIDAtNS42My0xLjQ0NiAzIDMgMCAwIDAtLjM2OCAxLjU3MSA0IDQgMCAwIDAtMi41MjUgNS43NzEiIC8+CiAgPHBhdGggZD0iTTE3Ljk5OCA1LjEyNWE0IDQgMCAwIDEgMi41MjUgNS43NzEiIC8+CiAgPHBhdGggZD0iTTE5LjUwNSAxMC4yOTRhNCA0IDAgMCAxLTEuNSA3LjcwNiIgLz4KICA8cGF0aCBkPSJNNC4wMzIgMTcuNDgzQTQgNCAwIDAgMCAxMS40NjQgMjBjLjE4LS4zMTEuODkyLS4zMTEgMS4wNzIgMGE0IDQgMCAwIDAgNy40MzItMi41MTYiIC8+CiAgPHBhdGggZD0iTTQuNSAxMC4yOTFBNCA0IDAgMCAwIDYgMTgiIC8+CiAgPHBhdGggZD0iTTYuMDAyIDUuMTI1YTMgMyAwIDAgMCAuNCAxLjM3NSIgLz4KICA8cGF0aCBkPSJtOS4yMjggMTAuODUyLS45MjMtLjM4MyIgLz4KICA8cGF0aCBkPSJtOS4yMjggMTMuMTQ4LS45MjMuMzgzIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brain-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrainCog: IconNode = [\n ['path', { d: 'm10.852 14.772-.383.923' }],\n ['path', { d: 'm10.852 9.228-.383-.923' }],\n ['path', { d: 'm13.148 14.772.382.924' }],\n ['path', { d: 'm13.531 8.305-.383.923' }],\n ['path', { d: 'm14.772 10.852.923-.383' }],\n ['path', { d: 'm14.772 13.148.923.383' }],\n [\n 'path',\n {\n d: 'M17.598 6.5A3 3 0 1 0 12 5a3 3 0 0 0-5.63-1.446 3 3 0 0 0-.368 1.571 4 4 0 0 0-2.525 5.771',\n },\n ],\n ['path', { d: 'M17.998 5.125a4 4 0 0 1 2.525 5.771' }],\n ['path', { d: 'M19.505 10.294a4 4 0 0 1-1.5 7.706' }],\n [\n 'path',\n { d: 'M4.032 17.483A4 4 0 0 0 11.464 20c.18-.311.892-.311 1.072 0a4 4 0 0 0 7.432-2.516' },\n ],\n ['path', { d: 'M4.5 10.291A4 4 0 0 0 6 18' }],\n ['path', { d: 'M6.002 5.125a3 3 0 0 0 .4 1.375' }],\n ['path', { d: 'm9.228 10.852-.923-.383' }],\n ['path', { d: 'm9.228 13.148-.923.383' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default BrainCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brain\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMThWNSIgLz4KICA8cGF0aCBkPSJNMTUgMTNhNC4xNyA0LjE3IDAgMCAxLTMtNCA0LjE3IDQuMTcgMCAwIDEtMyA0IiAvPgogIDxwYXRoIGQ9Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDEgMC01LjU5OCAxLjUiIC8+CiAgPHBhdGggZD0iTTE3Ljk5NyA1LjEyNWE0IDQgMCAwIDEgMi41MjYgNS43NyIgLz4KICA8cGF0aCBkPSJNMTggMThhNCA0IDAgMCAwIDItNy40NjQiIC8+CiAgPHBhdGggZD0iTTE5Ljk2NyAxNy40ODNBNCA0IDAgMSAxIDEyIDE4YTQgNCAwIDEgMS03Ljk2Ny0uNTE3IiAvPgogIDxwYXRoIGQ9Ik02IDE4YTQgNCAwIDAgMS0yLTcuNDY0IiAvPgogIDxwYXRoIGQ9Ik02LjAwMyA1LjEyNWE0IDQgMCAwIDAtMi41MjYgNS43NyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/brain\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Brain: IconNode = [\n ['path', { d: 'M12 18V5' }],\n ['path', { d: 'M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4' }],\n ['path', { d: 'M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5' }],\n ['path', { d: 'M17.997 5.125a4 4 0 0 1 2.526 5.77' }],\n ['path', { d: 'M18 18a4 4 0 0 0 2-7.464' }],\n ['path', { d: 'M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517' }],\n ['path', { d: 'M6 18a4 4 0 0 1-2-7.464' }],\n ['path', { d: 'M6.003 5.125a4 4 0 0 0-2.526 5.77' }],\n];\n\nexport default Brain;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brick-wall-fire\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM3YyLjEwNyIgLz4KICA8cGF0aCBkPSJNMTcgOWMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAyMiAxN2E1IDUgMCAwIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDMTMgMTEuNSAxNiA5IDE3IDkiIC8+CiAgPHBhdGggZD0iTTIxIDguMjc0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjkzOCIgLz4KICA8cGF0aCBkPSJNMyAxNWg1LjI1MyIgLz4KICA8cGF0aCBkPSJNMyA5aDguMjI4IiAvPgogIDxwYXRoIGQ9Ik04IDE1djYiIC8+CiAgPHBhdGggZD0iTTggM3Y2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/brick-wall-fire\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrickWallFire: IconNode = [\n ['path', { d: 'M16 3v2.107' }],\n [\n 'path',\n {\n d: 'M17 9c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 22 17a5 5 0 0 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C13 11.5 16 9 17 9',\n },\n ],\n ['path', { d: 'M21 8.274V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.938' }],\n ['path', { d: 'M3 15h5.253' }],\n ['path', { d: 'M3 9h8.228' }],\n ['path', { d: 'M8 15v6' }],\n ['path', { d: 'M8 3v6' }],\n];\n\nexport default BrickWallFire;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brick-wall-shield\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOXYxLjI1OCIgLz4KICA8cGF0aCBkPSJNMTYgM3Y1LjQ2IiAvPgogIDxwYXRoIGQ9Ik0yMSA5LjExOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNS43NSIgLz4KICA8cGF0aCBkPSJNMjIgMTcuNWMwIDIuNDk5LTEuNzUgMy43NDktMy44MyA0LjQ3NGEuNS41IDAgMCAxLS4zMzUtLjAwNWMtMi4wODUtLjcyLTMuODM1LTEuOTctMy44MzUtNC40N1YxNGEuNS41IDAgMCAxIC41LS40OTljMSAwIDIuMjUtLjYgMy4xMi0xLjM2YS42LjYgMCAwIDEgLjc2LS4wMDFjLjg3NS43NjUgMi4xMiAxLjM2IDMuMTIgMS4zNmEuNS41IDAgMCAxIC41LjV6IiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDciIC8+CiAgPHBhdGggZD0iTTMgOWgxMi4xNDIiIC8+CiAgPHBhdGggZD0iTTggMTV2NiIgLz4KICA8cGF0aCBkPSJNOCAzdjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brick-wall-shield\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrickWallShield: IconNode = [\n ['path', { d: 'M12 9v1.258' }],\n ['path', { d: 'M16 3v5.46' }],\n ['path', { d: 'M21 9.118V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h5.75' }],\n [\n 'path',\n {\n d: 'M22 17.5c0 2.499-1.75 3.749-3.83 4.474a.5.5 0 0 1-.335-.005c-2.085-.72-3.835-1.97-3.835-4.47V14a.5.5 0 0 1 .5-.499c1 0 2.25-.6 3.12-1.36a.6.6 0 0 1 .76-.001c.875.765 2.12 1.36 3.12 1.36a.5.5 0 0 1 .5.5z',\n },\n ],\n ['path', { d: 'M3 15h7' }],\n ['path', { d: 'M3 9h12.142' }],\n ['path', { d: 'M8 15v6' }],\n ['path', { d: 'M8 3v6' }],\n];\n\nexport default BrickWallShield;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name briefcase-business\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIiIC8+CiAgPHBhdGggZD0iTTIyIDEzYTE4LjE1IDE4LjE1IDAgMCAxLTIwIDAiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiB4PSIyIiB5PSI2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/briefcase-business\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BriefcaseBusiness: IconNode = [\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2' }],\n ['path', { d: 'M22 13a18.15 18.15 0 0 1-20 0' }],\n ['rect', { width: '20', height: '14', x: '2', y: '6', rx: '2' }],\n];\n\nexport default BriefcaseBusiness;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brick-wall\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiA5djYiIC8+CiAgPHBhdGggZD0iTTE2IDE1djYiIC8+CiAgPHBhdGggZD0iTTE2IDN2NiIgLz4KICA8cGF0aCBkPSJNMyAxNWgxOCIgLz4KICA8cGF0aCBkPSJNMyA5aDE4IiAvPgogIDxwYXRoIGQ9Ik04IDE1djYiIC8+CiAgPHBhdGggZD0iTTggM3Y2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/brick-wall\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrickWall: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M12 9v6' }],\n ['path', { d: 'M16 15v6' }],\n ['path', { d: 'M16 3v6' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'M8 15v6' }],\n ['path', { d: 'M8 3v6' }],\n];\n\nexport default BrickWall;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name briefcase-conveyor-belt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjB2MiIgLz4KICA8cGF0aCBkPSJNMTQgMjB2MiIgLz4KICA8cGF0aCBkPSJNMTggMjB2MiIgLz4KICA8cGF0aCBkPSJNMjEgMjBIMyIgLz4KICA8cGF0aCBkPSJNNiAyMHYyIiAvPgogIDxwYXRoIGQ9Ik04IDE2VjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MTIiIC8+CiAgPHJlY3QgeD0iNCIgeT0iNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjEwIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/briefcase-conveyor-belt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BriefcaseConveyorBelt: IconNode = [\n ['path', { d: 'M10 20v2' }],\n ['path', { d: 'M14 20v2' }],\n ['path', { d: 'M18 20v2' }],\n ['path', { d: 'M21 20H3' }],\n ['path', { d: 'M6 20v2' }],\n ['path', { d: 'M8 16V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v12' }],\n ['rect', { x: '4', y: '6', width: '16', height: '10', rx: '2' }],\n];\n\nexport default BriefcaseConveyorBelt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name briefcase-medical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTF2NCIgLz4KICA8cGF0aCBkPSJNMTQgMTNoLTQiIC8+CiAgPHBhdGggZD0iTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiIgLz4KICA8cGF0aCBkPSJNMTggNnYxNCIgLz4KICA8cGF0aCBkPSJNNiA2djE0IiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iNiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/briefcase-medical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BriefcaseMedical: IconNode = [\n ['path', { d: 'M12 11v4' }],\n ['path', { d: 'M14 13h-4' }],\n ['path', { d: 'M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2' }],\n ['path', { d: 'M18 6v14' }],\n ['path', { d: 'M6 6v14' }],\n ['rect', { width: '20', height: '14', x: '2', y: '6', rx: '2' }],\n];\n\nexport default BriefcaseMedical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name briefcase\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjBWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MTYiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiB4PSIyIiB5PSI2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/briefcase\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Briefcase: IconNode = [\n ['path', { d: 'M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16' }],\n ['rect', { width: '20', height: '14', x: '2', y: '6', rx: '2' }],\n];\n\nexport default Briefcase;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bring-to-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSI4IiB5PSI4IiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNCAxMGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTE0IDIwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bring-to-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BringToFront: IconNode = [\n ['rect', { x: '8', y: '8', width: '8', height: '8', rx: '2' }],\n ['path', { d: 'M4 10a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2' }],\n ['path', { d: 'M14 20a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2' }],\n];\n\nexport default BringToFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brush-cleaning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMjItMS00IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNGExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJoLTNhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC00IDB2NWExIDEgMCAwIDEtMSAxSDZhMiAyIDAgMCAwLTIgMnYxYTEgMSAwIDAgMCAxIDEiIC8+CiAgPHBhdGggZD0iTTE5IDE0SDVsLTEuOTczIDYuNzY3QTEgMSAwIDAgMCA0IDIyaDE2YTEgMSAwIDAgMCAuOTczLTEuMjMzeiIgLz4KICA8cGF0aCBkPSJtOCAyMiAxLTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brush-cleaning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BrushCleaning: IconNode = [\n ['path', { d: 'm16 22-1-4' }],\n [\n 'path',\n {\n d: 'M19 14a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2h-3a1 1 0 0 1-1-1V4a2 2 0 0 0-4 0v5a1 1 0 0 1-1 1H6a2 2 0 0 0-2 2v1a1 1 0 0 0 1 1',\n },\n ],\n ['path', { d: 'M19 14H5l-1.973 6.767A1 1 0 0 0 4 22h16a1 1 0 0 0 .973-1.233z' }],\n ['path', { d: 'm8 22 1-4' }],\n];\n\nexport default BrushCleaning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name brush\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTAgMyAzIiAvPgogIDxwYXRoIGQ9Ik02LjUgMjFBMy41IDMuNSAwIDEgMCAzIDE3LjVhMi42MiAyLjYyIDAgMCAxLS43MDggMS43OTJBMSAxIDAgMCAwIDMgMjF6IiAvPgogIDxwYXRoIGQ9Ik05Ljk2OSAxNy4wMzEgMjEuMzc4IDUuNjI0YTEgMSAwIDAgMC0zLjAwMi0zLjAwMkw2Ljk2NyAxNC4wMzEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/brush\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Brush: IconNode = [\n ['path', { d: 'm11 10 3 3' }],\n ['path', { d: 'M6.5 21A3.5 3.5 0 1 0 3 17.5a2.62 2.62 0 0 1-.708 1.792A1 1 0 0 0 3 21z' }],\n ['path', { d: 'M9.969 17.031 21.378 5.624a1 1 0 0 0-3.002-3.002L6.967 14.031' }],\n];\n\nexport default Brush;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bubbles\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNy4wMDEgMTUuMDg1QTEuNSAxLjUgMCAwIDEgOSAxNi41IiAvPgogIDxjaXJjbGUgY3g9IjE4LjUiIGN5PSI4LjUiIHI9IjMuNSIgLz4KICA8Y2lyY2xlIGN4PSI3LjUiIGN5PSIxNi41IiByPSI1LjUiIC8+CiAgPGNpcmNsZSBjeD0iNy41IiBjeT0iNC41IiByPSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bubbles\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bubbles: IconNode = [\n ['path', { d: 'M7.001 15.085A1.5 1.5 0 0 1 9 16.5' }],\n ['circle', { cx: '18.5', cy: '8.5', r: '3.5' }],\n ['circle', { cx: '7.5', cy: '16.5', r: '5.5' }],\n ['circle', { cx: '7.5', cy: '4.5', r: '2.5' }],\n];\n\nexport default Bubbles;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bug-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjB2LTgiIC8+CiAgPHBhdGggZD0iTTEyLjY1NiA3SDE0YTQgNCAwIDAgMSA0IDR2MS4zNDQiIC8+CiAgPHBhdGggZD0iTTE0LjEyIDMuODggMTYgMiIgLz4KICA8cGF0aCBkPSJNMTcuMTIzIDE3LjEyM0E2IDYgMCAwIDEgNiAxNHYtM2E0IDQgMCAwIDEgMS43Mi0zLjI4NyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTciIC8+CiAgPHBhdGggZD0iTTIyIDEzaC0zLjM0NCIgLz4KICA8cGF0aCBkPSJNMyAyMWE0IDQgMCAwIDEgMy44MS00IiAvPgogIDxwYXRoIGQ9Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyIgLz4KICA8cGF0aCBkPSJNNiAxM0gyIiAvPgogIDxwYXRoIGQ9Im04IDIgMS44OCAxLjg4IiAvPgogIDxwYXRoIGQ9Ik05LjcxMiA0LjA2QTMgMyAwIDAgMSAxNSA2djEuMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bug-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BugOff: IconNode = [\n ['path', { d: 'M12 20v-8' }],\n ['path', { d: 'M12.656 7H14a4 4 0 0 1 4 4v1.344' }],\n ['path', { d: 'M14.12 3.88 16 2' }],\n ['path', { d: 'M17.123 17.123A6 6 0 0 1 6 14v-3a4 4 0 0 1 1.72-3.287' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M21 5a4 4 0 0 1-3.55 3.97' }],\n ['path', { d: 'M22 13h-3.344' }],\n ['path', { d: 'M3 21a4 4 0 0 1 3.81-4' }],\n ['path', { d: 'M3 5a4 4 0 0 0 3.55 3.97' }],\n ['path', { d: 'M6 13H2' }],\n ['path', { d: 'm8 2 1.88 1.88' }],\n ['path', { d: 'M9.712 4.06A3 3 0 0 1 15 6v1.13' }],\n];\n\nexport default BugOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bug-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTkuNjU1QTYgNiAwIDAgMSA2IDE0di0zYTQgNCAwIDAgMSA0LTRoNGE0IDQgMCAwIDEgNCAzLjk3IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6IiAvPgogIDxwYXRoIGQ9Ik0xNC4xMiAzLjg4IDE2IDIiIC8+CiAgPHBhdGggZD0iTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyIgLz4KICA8cGF0aCBkPSJNMyAyMWE0IDQgMCAwIDEgMy44MS00IiAvPgogIDxwYXRoIGQ9Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyIgLz4KICA8cGF0aCBkPSJNNiAxM0gyIiAvPgogIDxwYXRoIGQ9Im04IDIgMS44OCAxLjg4IiAvPgogIDxwYXRoIGQ9Ik05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bug-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BugPlay: IconNode = [\n ['path', { d: 'M10 19.655A6 6 0 0 1 6 14v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 3.97' }],\n [\n 'path',\n {\n d: 'M14 15.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z',\n },\n ],\n ['path', { d: 'M14.12 3.88 16 2' }],\n ['path', { d: 'M21 5a4 4 0 0 1-3.55 3.97' }],\n ['path', { d: 'M3 21a4 4 0 0 1 3.81-4' }],\n ['path', { d: 'M3 5a4 4 0 0 0 3.55 3.97' }],\n ['path', { d: 'M6 13H2' }],\n ['path', { d: 'm8 2 1.88 1.88' }],\n ['path', { d: 'M9 7.13V6a3 3 0 1 1 6 0v1.13' }],\n];\n\nexport default BugPlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bug\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjB2LTkiIC8+CiAgPHBhdGggZD0iTTE0IDdhNCA0IDAgMCAxIDQgNHYzYTYgNiAwIDAgMS0xMiAwdi0zYTQgNCAwIDAgMSA0LTR6IiAvPgogIDxwYXRoIGQ9Ik0xNC4xMiAzLjg4IDE2IDIiIC8+CiAgPHBhdGggZD0iTTIxIDIxYTQgNCAwIDAgMC0zLjgxLTQiIC8+CiAgPHBhdGggZD0iTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyIgLz4KICA8cGF0aCBkPSJNMjIgMTNoLTQiIC8+CiAgPHBhdGggZD0iTTMgMjFhNCA0IDAgMCAxIDMuODEtNCIgLz4KICA8cGF0aCBkPSJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTciIC8+CiAgPHBhdGggZD0iTTYgMTNIMiIgLz4KICA8cGF0aCBkPSJtOCAyIDEuODggMS44OCIgLz4KICA8cGF0aCBkPSJNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bug\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bug: IconNode = [\n ['path', { d: 'M12 20v-9' }],\n ['path', { d: 'M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z' }],\n ['path', { d: 'M14.12 3.88 16 2' }],\n ['path', { d: 'M21 21a4 4 0 0 0-3.81-4' }],\n ['path', { d: 'M21 5a4 4 0 0 1-3.55 3.97' }],\n ['path', { d: 'M22 13h-4' }],\n ['path', { d: 'M3 21a4 4 0 0 1 3.81-4' }],\n ['path', { d: 'M3 5a4 4 0 0 0 3.55 3.97' }],\n ['path', { d: 'M6 13H2' }],\n ['path', { d: 'm8 2 1.88 1.88' }],\n ['path', { d: 'M9 7.13V6a3 3 0 1 1 6 0v1.13' }],\n];\n\nexport default Bug;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name building-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJoNCIgLz4KICA8cGF0aCBkPSJNMTAgOGg0IiAvPgogIDxwYXRoIGQ9Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMiIC8+CiAgPHBhdGggZD0iTTYgMTBINGEyIDIgMCAwIDAtMiAydjdhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjlhMiAyIDAgMCAwLTItMmgtMiIgLz4KICA8cGF0aCBkPSJNNiAyMVY1YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/building-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Building2: IconNode = [\n ['path', { d: 'M10 12h4' }],\n ['path', { d: 'M10 8h4' }],\n ['path', { d: 'M14 21v-3a2 2 0 0 0-4 0v3' }],\n ['path', { d: 'M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2' }],\n ['path', { d: 'M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16' }],\n];\n\nexport default Building2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name building\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTYgNmguMDEiIC8+CiAgPHBhdGggZD0iTTggMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNOCA2aC4wMSIgLz4KICA8cGF0aCBkPSJNOSAyMnYtM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYzIiAvPgogIDxyZWN0IHg9IjQiIHk9IjIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIyMCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/building\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Building: IconNode = [\n ['path', { d: 'M12 10h.01' }],\n ['path', { d: 'M12 14h.01' }],\n ['path', { d: 'M12 6h.01' }],\n ['path', { d: 'M16 10h.01' }],\n ['path', { d: 'M16 14h.01' }],\n ['path', { d: 'M16 6h.01' }],\n ['path', { d: 'M8 10h.01' }],\n ['path', { d: 'M8 14h.01' }],\n ['path', { d: 'M8 6h.01' }],\n ['path', { d: 'M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3' }],\n ['rect', { x: '4', y: '2', width: '16', height: '20', rx: '2' }],\n];\n\nexport default Building;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bus-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA2IDIgNyIgLz4KICA8cGF0aCBkPSJNMTAgNmg0IiAvPgogIDxwYXRoIGQ9Im0yMiA3LTItMSIgLz4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHg9IjQiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik00IDExaDE2IiAvPgogIDxwYXRoIGQ9Ik04IDE1aC4wMSIgLz4KICA8cGF0aCBkPSJNMTYgMTVoLjAxIiAvPgogIDxwYXRoIGQ9Ik02IDE5djIiIC8+CiAgPHBhdGggZD0iTTE4IDIxdi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bus-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst BusFront: IconNode = [\n ['path', { d: 'M4 6 2 7' }],\n ['path', { d: 'M10 6h4' }],\n ['path', { d: 'm22 7-2-1' }],\n ['rect', { width: '16', height: '16', x: '4', y: '3', rx: '2' }],\n ['path', { d: 'M4 11h16' }],\n ['path', { d: 'M8 15h.01' }],\n ['path', { d: 'M16 15h.01' }],\n ['path', { d: 'M6 19v2' }],\n ['path', { d: 'M18 21v-2' }],\n];\n\nexport default BusFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name bus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCA2djYiIC8+CiAgPHBhdGggZD0iTTE1IDZ2NiIgLz4KICA8cGF0aCBkPSJNMiAxMmgxOS42IiAvPgogIDxwYXRoIGQ9Ik0xOCAxOGgzcy41LTEuNy44LTIuOGMuMS0uNC4yLS44LjItMS4yIDAtLjQtLjEtLjgtLjItMS4ybC0xLjQtNUMyMC4xIDYuOCAxOS4xIDYgMTggNkg0YTIgMiAwIDAgMC0yIDJ2MTBoMyIgLz4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iMTgiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTkgMThoNSIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE4IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Bus: IconNode = [\n ['path', { d: 'M8 6v6' }],\n ['path', { d: 'M15 6v6' }],\n ['path', { d: 'M2 12h19.6' }],\n [\n 'path',\n {\n d: 'M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3',\n },\n ],\n ['circle', { cx: '7', cy: '18', r: '2' }],\n ['path', { d: 'M9 18h5' }],\n ['circle', { cx: '16', cy: '18', r: '2' }],\n];\n\nexport default Bus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cable-car\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgM2guMDEiIC8+CiAgPHBhdGggZD0iTTE0IDJoLjAxIiAvPgogIDxwYXRoIGQ9Im0yIDkgMjAtNSIgLz4KICA8cGF0aCBkPSJNMTIgMTJWNi41IiAvPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxMCIgeD0iNCIgeT0iMTIiIHJ4PSIzIiAvPgogIDxwYXRoIGQ9Ik05IDEydjUiIC8+CiAgPHBhdGggZD0iTTE1IDEydjUiIC8+CiAgPHBhdGggZD0iTTQgMTdoMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cable-car\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CableCar: IconNode = [\n ['path', { d: 'M10 3h.01' }],\n ['path', { d: 'M14 2h.01' }],\n ['path', { d: 'm2 9 20-5' }],\n ['path', { d: 'M12 12V6.5' }],\n ['rect', { width: '16', height: '10', x: '4', y: '12', rx: '3' }],\n ['path', { d: 'M9 12v5' }],\n ['path', { d: 'M15 12v5' }],\n ['path', { d: 'M4 17h16' }],\n];\n\nexport default CableCar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cable\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTlhMSAxIDAgMCAxLTEtMXYtMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDIgMnYyYTEgMSAwIDAgMS0xIDF6IiAvPgogIDxwYXRoIGQ9Ik0xNyAyMXYtMiIgLz4KICA8cGF0aCBkPSJNMTkgMTRWNi41YTEgMSAwIDAgMC03IDB2MTFhMSAxIDAgMCAxLTcgMFYxMCIgLz4KICA8cGF0aCBkPSJNMjEgMjF2LTIiIC8+CiAgPHBhdGggZD0iTTMgNVYzIiAvPgogIDxwYXRoIGQ9Ik00IDEwYTIgMiAwIDAgMS0yLTJWNmExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJ6IiAvPgogIDxwYXRoIGQ9Ik03IDVWMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cable\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cable: IconNode = [\n ['path', { d: 'M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z' }],\n ['path', { d: 'M17 21v-2' }],\n ['path', { d: 'M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10' }],\n ['path', { d: 'M21 21v-2' }],\n ['path', { d: 'M3 5V3' }],\n ['path', { d: 'M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z' }],\n ['path', { d: 'M7 5V3' }],\n];\n\nexport default Cable;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cake-slice\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTNIMyIgLz4KICA8cGF0aCBkPSJNMTYgMTdIMyIgLz4KICA8cGF0aCBkPSJtNy4yIDcuOS0zLjM4OCAyLjVBMiAyIDAgMCAwIDMgMTIuMDFWMjBhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xdi04LjY1NGMwLTItMi40NC02LjAyNi02LjQ0LTguMDI2YTEgMSAwIDAgMC0xLjA4Mi4wNTdMMTAuNCA1LjYiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjciIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cake-slice\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CakeSlice: IconNode = [\n ['path', { d: 'M16 13H3' }],\n ['path', { d: 'M16 17H3' }],\n [\n 'path',\n {\n d: 'm7.2 7.9-3.388 2.5A2 2 0 0 0 3 12.01V20a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-8.654c0-2-2.44-6.026-6.44-8.026a1 1 0 0 0-1.082.057L10.4 5.6',\n },\n ],\n ['circle', { cx: '9', cy: '7', r: '2' }],\n];\n\nexport default CakeSlice;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cake\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjF2LThhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2OCIgLz4KICA8cGF0aCBkPSJNNCAxNnMuNS0xIDItMSAyLjUgMiA0IDIgMi41LTIgNC0yIDIuNSAyIDQgMiAyLTEgMi0xIiAvPgogIDxwYXRoIGQ9Ik0yIDIxaDIwIiAvPgogIDxwYXRoIGQ9Ik03IDh2MyIgLz4KICA8cGF0aCBkPSJNMTIgOHYzIiAvPgogIDxwYXRoIGQ9Ik0xNyA4djMiIC8+CiAgPHBhdGggZD0iTTcgNGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDRoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNyA0aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cake\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cake: IconNode = [\n ['path', { d: 'M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8' }],\n ['path', { d: 'M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1' }],\n ['path', { d: 'M2 21h20' }],\n ['path', { d: 'M7 8v3' }],\n ['path', { d: 'M12 8v3' }],\n ['path', { d: 'M17 8v3' }],\n ['path', { d: 'M7 4h.01' }],\n ['path', { d: 'M12 4h.01' }],\n ['path', { d: 'M17 4h.01' }],\n];\n\nexport default Cake;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calculator\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHg9IjQiIHk9IjIiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSI2IiB5Mj0iNiIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIxNiIgeTE9IjE0IiB5Mj0iMTgiIC8+CiAgPHBhdGggZD0iTTE2IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTRoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calculator\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Calculator: IconNode = [\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2' }],\n ['line', { x1: '8', x2: '16', y1: '6', y2: '6' }],\n ['line', { x1: '16', x2: '16', y1: '14', y2: '18' }],\n ['path', { d: 'M16 10h.01' }],\n ['path', { d: 'M12 10h.01' }],\n ['path', { d: 'M8 10h.01' }],\n ['path', { d: 'M12 14h.01' }],\n ['path', { d: 'M8 14h.01' }],\n ['path', { d: 'M12 18h.01' }],\n ['path', { d: 'M8 18h.01' }],\n];\n\nexport default Calculator;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTRoMXY0IiAvPgogIDxwYXRoIGQ9Ik0xNiAydjQiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Calendar1: IconNode = [\n ['path', { d: 'M11 14h1v4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n ['rect', { x: '3', y: '4', width: '18', height: '18', rx: '2' }],\n];\n\nexport default Calendar1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTggNCA0IDQtNCIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0xOCAxNHY4IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMS4zNTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMzQzIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarArrowDown: IconNode = [\n ['path', { d: 'm14 18 4 4 4-4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M18 14v8' }],\n ['path', { d: 'M21 11.354V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.343' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTggNC00IDQgNCIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0xOCAyMnYtOCIgLz4KICA8cGF0aCBkPSJNMjEgMTEuMzQzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg5IiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarArrowUp: IconNode = [\n ['path', { d: 'm14 18 4-4 4 4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M18 22v-8' }],\n ['path', { d: 'M21 11.343V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h9' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-check-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cGF0aCBkPSJNMjEgMTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0ibTE2IDIwIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-check-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarCheck2: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M21 14V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'm16 20 2 2 4-4' }],\n];\n\nexport default CalendarCheck2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Im05IDE2IDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarCheck: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'm9 16 2 2 4-4' }],\n];\n\nexport default CalendarCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTR2Mi4ybDEuNiAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAydjQiIC8+CiAgPHBhdGggZD0iTTIxIDcuNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMy41IiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDUiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iMTYiIHI9IjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarClock: IconNode = [\n ['path', { d: 'M16 14v2.2l1.6 1' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5' }],\n ['path', { d: 'M3 10h5' }],\n ['path', { d: 'M8 2v4' }],\n ['circle', { cx: '16', cy: '16', r: '6' }],\n];\n\nexport default CalendarClock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE1LjIyOCAxOS4xNDgtLjkyMy4zODMiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cGF0aCBkPSJtMTYuNDcgMTQuMzA1LjM4Mi45MjMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAyMC43NzItLjM4My45MjQiIC8+CiAgPHBhdGggZD0ibTE5LjE0OCAxNS4yMjguMzgzLS45MjMiIC8+CiAgPHBhdGggZD0ibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQiIC8+CiAgPHBhdGggZD0ibTIwLjc3MiAxNi44NTIuOTI0LS4zODMiIC8+CiAgPHBhdGggZD0ibTIwLjc3MiAxOS4xNDguOTI0LjM4MyIgLz4KICA8cGF0aCBkPSJNMjEgMTAuNTkyVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2IiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDJ2NCIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarCog: IconNode = [\n ['path', { d: 'm15.228 16.852-.923-.383' }],\n ['path', { d: 'm15.228 19.148-.923.383' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'm16.47 14.305.382.923' }],\n ['path', { d: 'm16.852 20.772-.383.924' }],\n ['path', { d: 'm19.148 15.228.383-.923' }],\n ['path', { d: 'm19.53 21.696-.382-.924' }],\n ['path', { d: 'm20.772 16.852.924-.383' }],\n ['path', { d: 'm20.772 19.148.924.383' }],\n ['path', { d: 'M21 10.592V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default CalendarCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-days\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTRoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTggMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-days\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarDays: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 14h.01' }],\n ['path', { d: 'M12 14h.01' }],\n ['path', { d: 'M16 14h.01' }],\n ['path', { d: 'M8 18h.01' }],\n ['path', { d: 'M12 18h.01' }],\n ['path', { d: 'M16 18h.01' }],\n];\n\nexport default CalendarDays;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-fold\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAyMGEyIDIgMCAwIDAgMiAyaDEwYTIuNCAyLjQgMCAwIDAgMS43MDYtLjcwNmwzLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDIxIDE2VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ6IiAvPgogIDxwYXRoIGQ9Ik0xNSAyMnYtNWExIDEgMCAwIDEgMS0xaDUiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxwYXRoIGQ9Ik0xNiAydjQiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-fold\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarFold: IconNode = [\n [\n 'path',\n {\n d: 'M3 20a2 2 0 0 0 2 2h10a2.4 2.4 0 0 0 1.706-.706l3.588-3.588A2.4 2.4 0 0 0 21 16V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z',\n },\n ],\n ['path', { d: 'M15 22v-5a1 1 0 0 1 1-1h5' }],\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M3 10h18' }],\n];\n\nexport default CalendarFold;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMTI3IDIySDVhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjEyNSIgLz4KICA8cGF0aCBkPSJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarHeart: IconNode = [\n ['path', { d: 'M12.127 22H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.125' }],\n [\n 'path',\n {\n d: 'M14.62 18.8A2.25 2.25 0 1 1 18 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z',\n },\n ],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-minus-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik0xMCAxNmg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar-minus-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarMinus2: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M10 16h4' }],\n];\n\nexport default CalendarMinus2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTloNiIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOC41IiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik04IDJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarMinus: IconNode = [\n ['path', { d: 'M16 19h6' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M21 15V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC4yIDQuMkEyIDIgMCAwIDAgMyA2djE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDEuODItMS4xOCIgLz4KICA8cGF0aCBkPSJNMjEgMTUuNVY2YTIgMiAwIDAgMC0yLTJIOS41IiAvPgogIDxwYXRoIGQ9Ik0xNiAydjQiIC8+CiAgPHBhdGggZD0iTTMgMTBoNyIgLz4KICA8cGF0aCBkPSJNMjEgMTBoLTUuNSIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarOff: IconNode = [\n ['path', { d: 'M4.2 4.2A2 2 0 0 0 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 1.82-1.18' }],\n ['path', { d: 'M21 15.5V6a2 2 0 0 0-2-2H9.5' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M3 10h7' }],\n ['path', { d: 'M21 10h-5.5' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default CalendarOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-plus-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Ik0xMCAxNmg0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar-plus-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarPlus2: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M10 16h4' }],\n ['path', { d: 'M12 14v4' }],\n];\n\nexport default CalendarPlus2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTloNiIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNnY2IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMi41OThWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSIgLz4KICA8cGF0aCBkPSJNMyAxMGgxOCIgLz4KICA8cGF0aCBkPSJNOCAydjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarPlus: IconNode = [\n ['path', { d: 'M16 19h6' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M19 16v6' }],\n ['path', { d: 'M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-range\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNiAydjQiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxwYXRoIGQ9Ik0xNyAxNGgtNiIgLz4KICA8cGF0aCBkPSJNMTMgMThINyIgLz4KICA8cGF0aCBkPSJNNyAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTE3IDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-range\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarRange: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M17 14h-6' }],\n ['path', { d: 'M13 18H7' }],\n ['path', { d: 'M7 14h.01' }],\n ['path', { d: 'M17 18h.01' }],\n];\n\nexport default CalendarRange;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMS43NVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4yNSIgLz4KICA8cGF0aCBkPSJtMjIgMjItMS44NzUtMS44NzUiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0iTTggMnY0IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarSearch: IconNode = [\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M21 11.75V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.25' }],\n ['path', { d: 'm22 22-1.875-1.875' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'M8 2v4' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default CalendarSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-sync\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTB2NGg0IiAvPgogIDxwYXRoIGQ9Im0xMSAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cGF0aCBkPSJtMjEgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41IiAvPgogIDxwYXRoIGQ9Ik0yMSAyMnYtNGgtNCIgLz4KICA8cGF0aCBkPSJNMjEgOC41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg0LjMiIC8+CiAgPHBhdGggZD0iTTMgMTBoNCIgLz4KICA8cGF0aCBkPSJNOCAydjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendar-sync\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarSync: IconNode = [\n ['path', { d: 'M11 10v4h4' }],\n ['path', { d: 'm11 14 1.535-1.605a5 5 0 0 1 8 1.5' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'm21 18-1.535 1.605a5 5 0 0 1-8-1.5' }],\n ['path', { d: 'M21 22v-4h-4' }],\n ['path', { d: 'M21 8.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4.3' }],\n ['path', { d: 'M3 10h4' }],\n ['path', { d: 'M8 2v4' }],\n];\n\nexport default CalendarSync;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-x-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cGF0aCBkPSJNMjEgMTNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgiIC8+CiAgPHBhdGggZD0iTTMgMTBoMTgiIC8+CiAgPHBhdGggZD0ibTE3IDIyIDUtNSIgLz4KICA8cGF0aCBkPSJtMTcgMTcgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar-x-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarX2: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'm17 22 5-5' }],\n ['path', { d: 'm17 17 5 5' }],\n];\n\nexport default CalendarX2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgogIDxwYXRoIGQ9Im0xNCAxNC00IDQiIC8+CiAgPHBhdGggZD0ibTEwIDE0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calendar-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CalendarX: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n ['path', { d: 'm14 14-4 4' }],\n ['path', { d: 'm10 14 4 4' }],\n];\n\nexport default CalendarX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendar\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Calendar: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2' }],\n ['path', { d: 'M3 10h18' }],\n];\n\nexport default Calendar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name calendars\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNS43MjYgMjEuMDFBMiAyIDAgMCAxIDE0IDIySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgMi0yIiAvPgogIDxwYXRoIGQ9Ik0xOCAydjIiIC8+CiAgPHBhdGggZD0iTTIgMTNoMiIgLz4KICA8cGF0aCBkPSJNOCA4aDE0IiAvPgogIDxyZWN0IHg9IjgiIHk9IjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/calendars\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Calendars: IconNode = [\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M15.726 21.01A2 2 0 0 1 14 22H4a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2' }],\n ['path', { d: 'M18 2v2' }],\n ['path', { d: 'M2 13h2' }],\n ['path', { d: 'M8 8h14' }],\n ['rect', { x: '8', y: '3', width: '14', height: '14', rx: '2' }],\n];\n\nexport default Calendars;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name camera-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTY0IDE0LjU1OGEzIDMgMCAxIDEtNC4xMjItNC4xMjEiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgLjgxOS0uMTc1IiAvPgogIDxwYXRoIGQ9Ik05LjY5NSA0LjAyNEEyIDIgMCAwIDEgMTAuMDA0IDRoMy45OTNhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2Ny4zNDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/camera-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CameraOff: IconNode = [\n ['path', { d: 'M14.564 14.558a3 3 0 1 1-4.122-4.121' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20 20H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 .819-.175' }],\n [\n 'path',\n {\n d: 'M9.695 4.024A2 2 0 0 1 10.004 4h3.993a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v7.344',\n },\n ],\n];\n\nexport default CameraOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name camera\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuOTk3IDRhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2OWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIDEuNzU5LTEuMDQ4bC40ODktLjkwNEEyIDIgMCAwIDEgMTAuMDA0IDR6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTMiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/camera\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Camera: IconNode = [\n [\n 'path',\n {\n d: 'M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z',\n },\n ],\n ['circle', { cx: '12', cy: '13', r: '3' }],\n];\n\nexport default Camera;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name candy-cane\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNS43IDIxYTIgMiAwIDAgMS0zLjUtMmw4LjYtMTRhNiA2IDAgMCAxIDEwLjQgNiAyIDIgMCAxIDEtMy40NjQtMiAyIDIgMCAxIDAtMy40NjQtMloiIC8+CiAgPHBhdGggZD0iTTE3Ljc1IDcgMTUgMi4xIiAvPgogIDxwYXRoIGQ9Ik0xMC45IDQuOCAxMyA5IiAvPgogIDxwYXRoIGQ9Im03LjkgOS43IDIgNC40IiAvPgogIDxwYXRoIGQ9Ik00LjkgMTQuNyA3IDE4LjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/candy-cane\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CandyCane: IconNode = [\n [\n 'path',\n { d: 'M5.7 21a2 2 0 0 1-3.5-2l8.6-14a6 6 0 0 1 10.4 6 2 2 0 1 1-3.464-2 2 2 0 1 0-3.464-2Z' },\n ],\n ['path', { d: 'M17.75 7 15 2.1' }],\n ['path', { d: 'M10.9 4.8 13 9' }],\n ['path', { d: 'm7.9 9.7 2 4.4' }],\n ['path', { d: 'M4.9 14.7 7 18.9' }],\n];\n\nexport default CandyCane;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name candy-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTB2Ny45IiAvPgogIDxwYXRoIGQ9Ik0xMS44MDIgNi4xNDVhNSA1IDAgMCAxIDYuMDUzIDYuMDUzIiAvPgogIDxwYXRoIGQ9Ik0xNCA2LjF2Mi4yNDMiIC8+CiAgPHBhdGggZD0ibTE1LjUgMTUuNTcxLS45NjQuOTY0YTUgNSAwIDAgMS03LjA3MSAwIDUgNSAwIDAgMSAwLTcuMDdsLjk2NC0uOTY1IiAvPgogIDxwYXRoIGQ9Ik0xNiA3VjNhMSAxIDAgMCAxIDEuNzA3LS43MDcgMi41IDIuNSAwIDAgMCAyLjE1Mi43MTcgMSAxIDAgMCAxIDEuMTMxIDEuMTMxIDIuNSAyLjUgMCAwIDAgLjcxNyAyLjE1MkExIDEgMCAwIDEgMjEgOGgtNCIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/candy-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CandyOff: IconNode = [\n ['path', { d: 'M10 10v7.9' }],\n ['path', { d: 'M11.802 6.145a5 5 0 0 1 6.053 6.053' }],\n ['path', { d: 'M14 6.1v2.243' }],\n ['path', { d: 'm15.5 15.571-.964.964a5 5 0 0 1-7.071 0 5 5 0 0 1 0-7.07l.964-.965' }],\n [\n 'path',\n {\n d: 'M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n [\n 'path',\n {\n d: 'M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4',\n },\n ],\n];\n\nexport default CandyOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name candy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgN3YxMC45IiAvPgogIDxwYXRoIGQ9Ik0xNCA2LjFWMTciIC8+CiAgPHBhdGggZD0iTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00IiAvPgogIDxwYXRoIGQ9Ik0xNi41MzYgNy40NjVhNSA1IDAgMCAwLTcuMDcyIDBsLTIgMmE1IDUgMCAwIDAgMCA3LjA3IDUgNSAwIDAgMCA3LjA3MiAwbDItMmE1IDUgMCAwIDAgMC03LjA3IiAvPgogIDxwYXRoIGQ9Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/candy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Candy: IconNode = [\n ['path', { d: 'M10 7v10.9' }],\n ['path', { d: 'M14 6.1V17' }],\n [\n 'path',\n {\n d: 'M16 7V3a1 1 0 0 1 1.707-.707 2.5 2.5 0 0 0 2.152.717 1 1 0 0 1 1.131 1.131 2.5 2.5 0 0 0 .717 2.152A1 1 0 0 1 21 8h-4',\n },\n ],\n [\n 'path',\n {\n d: 'M16.536 7.465a5 5 0 0 0-7.072 0l-2 2a5 5 0 0 0 0 7.07 5 5 0 0 0 7.072 0l2-2a5 5 0 0 0 0-7.07',\n },\n ],\n [\n 'path',\n {\n d: 'M8 17v4a1 1 0 0 1-1.707.707 2.5 2.5 0 0 0-2.152-.717 1 1 0 0 1-1.131-1.131 2.5 2.5 0 0 0-.717-2.152A1 1 0 0 1 3 16h4',\n },\n ],\n];\n\nexport default Candy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cannabis-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTRjMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSIgLz4KICA8cGF0aCBkPSJNMTMuOTg4IDguMzI3QzEzLjkwMiA2LjA1NCAxMy4zNjUgMy44MiAxMiAyYTkuMyA5LjMgMCAwIDAtMS40NDUgMi45IiAvPgogIDxwYXRoIGQ9Ik0xNy4zNzUgMTEuNzI1QzE4Ljg4MiAxMC41MyAyMSA3Ljg0MSAyMSA2Yy0yLjMyNCAwLTUuMDggMS4yOTYtNi42NjIgMi42ODQiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMjEuMDI0IDE1LjM3OEExNSAxNSAwIDAgMCAyMiAxNWMtLjQyNi0xLjI3OS0yLjY3LTIuNTU3LTQuMjUtMi45MDciIC8+CiAgPHBhdGggZD0iTTYuOTk1IDYuOTkyQzUuNzE0IDYuNCA0LjI5IDYgMyA2YzAgMiAyLjUgNSA0IDYtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cannabis-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CannabisOff: IconNode = [\n ['path', { d: 'M12 22v-4c1.5 1.5 3.5 3 6 3 0-1.5-.5-3.5-2-5' }],\n ['path', { d: 'M13.988 8.327C13.902 6.054 13.365 3.82 12 2a9.3 9.3 0 0 0-1.445 2.9' }],\n ['path', { d: 'M17.375 11.725C18.882 10.53 21 7.841 21 6c-2.324 0-5.08 1.296-6.662 2.684' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M21.024 15.378A15 15 0 0 0 22 15c-.426-1.279-2.67-2.557-4.25-2.907' }],\n [\n 'path',\n {\n d: 'M6.995 6.992C5.714 6.4 4.29 6 3 6c0 2 2.5 5 4 6-1.5 0-4.5 1.5-5 3 3.5 1.5 6 1 6 1-1.5 1.5-2 3.5-2 5 2.5 0 4.5-1.5 6-3',\n },\n ],\n];\n\nexport default CannabisOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cannabis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTQiIC8+CiAgPHBhdGggZD0iTTcgMTJjLTEuNSAwLTQuNSAxLjUtNSAzIDMuNSAxLjUgNiAxIDYgMS0xLjUgMS41LTIgMy41LTIgNSAyLjUgMCA0LjUtMS41IDYtMyAxLjUgMS41IDMuNSAzIDYgMyAwLTEuNS0uNS0zLjUtMi01IDAgMCAyLjUuNSA2LTEtLjUtMS41LTMuNS0zLTUtMyAxLjUtMSA0LTQgNC02LTIuNSAwLTUuNSAxLjUtNyAzIDAtMi41LS41LTUtMi03LTEuNSAyLTIgNC41LTIgNy0xLjUtMS41LTQuNS0zLTctMyAwIDIgMi41IDUgNCA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cannabis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cannabis: IconNode = [\n ['path', { d: 'M12 22v-4' }],\n [\n 'path',\n {\n d: 'M7 12c-1.5 0-4.5 1.5-5 3 3.5 1.5 6 1 6 1-1.5 1.5-2 3.5-2 5 2.5 0 4.5-1.5 6-3 1.5 1.5 3.5 3 6 3 0-1.5-.5-3.5-2-5 0 0 2.5.5 6-1-.5-1.5-3.5-3-5-3 1.5-1 4-4 4-6-2.5 0-5.5 1.5-7 3 0-2.5-.5-5-2-7-1.5 2-2 4.5-2 7-1.5-1.5-4.5-3-7-3 0 2 2.5 5 4 6',\n },\n ],\n];\n\nexport default Cannabis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name captions-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSA1SDE5YTIgMiAwIDAgMSAyIDJ2OC41IiAvPgogIDxwYXRoIGQ9Ik0xNyAxMWgtLjUiIC8+CiAgPHBhdGggZD0iTTE5IDE5SDVhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTIiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNNyAxMWg0IiAvPgogIDxwYXRoIGQ9Ik03IDE1aDIuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/captions-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CaptionsOff: IconNode = [\n ['path', { d: 'M10.5 5H19a2 2 0 0 1 2 2v8.5' }],\n ['path', { d: 'M17 11h-.5' }],\n ['path', { d: 'M19 19H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M7 11h4' }],\n ['path', { d: 'M7 15h2.5' }],\n];\n\nexport default CaptionsOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name captions\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTQiIHg9IjMiIHk9IjUiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNyAxNWg0TTE1IDE1aDJNNyAxMWgyTTEzIDExaDQiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/captions\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Captions: IconNode = [\n ['rect', { width: '18', height: '14', x: '3', y: '5', rx: '2', ry: '2' }],\n ['path', { d: 'M7 15h4M15 15h2M7 11h2M13 11h4' }],\n];\n\nexport default Captions;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name car-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCIgLz4KICA8cGF0aCBkPSJNNyAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTE3IDE0aC4wMSIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iOCIgeD0iMyIgeT0iMTAiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik01IDE4djIiIC8+CiAgPHBhdGggZD0iTTE5IDE4djIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/car-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CarFront: IconNode = [\n ['path', { d: 'm21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8' }],\n ['path', { d: 'M7 14h.01' }],\n ['path', { d: 'M17 14h.01' }],\n ['rect', { width: '18', height: '8', x: '3', y: '10', rx: '2' }],\n ['path', { d: 'M5 18v2' }],\n ['path', { d: 'M19 18v2' }],\n];\n\nexport default CarFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name car-taxi-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMmg0IiAvPgogIDxwYXRoIGQ9Im0yMSA4LTIgMi0xLjUtMy43QTIgMiAwIDAgMCAxNS42NDYgNUg4LjRhMiAyIDAgMCAwLTEuOTAzIDEuMjU3TDUgMTAgMyA4IiAvPgogIDxwYXRoIGQ9Ik03IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTcgMTRoLjAxIiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSI4IiB4PSIzIiB5PSIxMCIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTUgMTh2MiIgLz4KICA8cGF0aCBkPSJNMTkgMTh2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/car-taxi-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CarTaxiFront: IconNode = [\n ['path', { d: 'M10 2h4' }],\n ['path', { d: 'm21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8' }],\n ['path', { d: 'M7 14h.01' }],\n ['path', { d: 'M17 14h.01' }],\n ['rect', { width: '18', height: '8', x: '3', y: '10', rx: '2' }],\n ['path', { d: 'M5 18v2' }],\n ['path', { d: 'M19 18v2' }],\n];\n\nexport default CarTaxiFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name car\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTdoMmMuNiAwIDEtLjQgMS0xdi0zYzAtLjktLjctMS43LTEuNS0xLjlDMTguNyAxMC42IDE2IDEwIDE2IDEwcy0xLjMtMS40LTIuMi0yLjNjLS41LS40LTEuMS0uNy0xLjgtLjdINWMtLjYgMC0xLjEuNC0xLjQuOWwtMS40IDIuOUEzLjcgMy43IDAgMCAwIDIgMTJ2NGMwIC42LjQgMSAxIDFoMiIgLz4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iMTciIHI9IjIiIC8+CiAgPHBhdGggZD0iTTkgMTdoNiIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE3IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/car\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Car: IconNode = [\n [\n 'path',\n {\n d: 'M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2',\n },\n ],\n ['circle', { cx: '7', cy: '17', r: '2' }],\n ['path', { d: 'M9 17h6' }],\n ['circle', { cx: '17', cy: '17', r: '2' }],\n];\n\nexport default Car;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name caravan\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTlWOWE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHY4YTIgMiAwIDAgMCAyIDJoMiIgLz4KICA8cGF0aCBkPSJNMiA5aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMiIgLz4KICA8cGF0aCBkPSJNMjIgMTd2MWExIDEgMCAwIDEtMSAxSDEwdi05YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjkiIC8+CiAgPGNpcmNsZSBjeD0iOCIgY3k9IjE5IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/caravan\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Caravan: IconNode = [\n ['path', { d: 'M18 19V9a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v8a2 2 0 0 0 2 2h2' }],\n ['path', { d: 'M2 9h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H2' }],\n ['path', { d: 'M22 17v1a1 1 0 0 1-1 1H10v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9' }],\n ['circle', { cx: '8', cy: '19', r: '2' }],\n];\n\nexport default Caravan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name card-sim\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTR2NCIgLz4KICA8cGF0aCBkPSJNMTQuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4NmwzLjgyOCAzLjgyOEEyIDIgMCAwIDEgMjAgNy44MjhWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNOCAxNGg4IiAvPgogIDxyZWN0IHg9IjgiIHk9IjEwIiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/card-sim\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CardSim: IconNode = [\n ['path', { d: 'M12 14v4' }],\n [\n 'path',\n {\n d: 'M14.172 2a2 2 0 0 1 1.414.586l3.828 3.828A2 2 0 0 1 20 7.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'M8 14h8' }],\n ['rect', { x: '8', y: '10', width: '8', height: '8', rx: '1' }],\n];\n\nexport default CardSim;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name carrot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4yNyAyMS43czkuODctMy41IDEyLjczLTYuMzZhNC41IDQuNSAwIDAgMC02LjM2LTYuMzdDNS43NyAxMS44NCAyLjI3IDIxLjcgMi4yNyAyMS43ek04LjY0IDE0bC0yLjA1LTIuMDRNMTUuMzQgMTVsLTIuNDYtMi40NiIgLz4KICA8cGF0aCBkPSJNMjIgOXMtMS4zMy0yLTMuNS0yQzE2Ljg2IDcgMTUgOSAxNSA5czEuMzMgMiAzLjUgMlMyMiA5IDIyIDl6IiAvPgogIDxwYXRoIGQ9Ik0xNSAycy0yIDEuMzMtMiAzLjVTMTUgOSAxNSA5czItMS44NCAyLTMuNUMxNyAzLjMzIDE1IDIgMTUgMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/carrot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Carrot: IconNode = [\n [\n 'path',\n {\n d: 'M2.27 21.7s9.87-3.5 12.73-6.36a4.5 4.5 0 0 0-6.36-6.37C5.77 11.84 2.27 21.7 2.27 21.7zM8.64 14l-2.05-2.04M15.34 15l-2.46-2.46',\n },\n ],\n ['path', { d: 'M22 9s-1.33-2-3.5-2C16.86 7 15 9 15 9s1.33 2 3.5 2S22 9 22 9z' }],\n ['path', { d: 'M15 2s-2 1.33-2 3.5S15 9 15 9s2-1.84 2-3.5C17 3.33 15 2 15 2z' }],\n];\n\nexport default Carrot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name case-lower\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOXY3IiAvPgogIDxwYXRoIGQ9Ik0xNCA2djEwIiAvPgogIDxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxMi41IiByPSIzLjUiIC8+CiAgPGNpcmNsZSBjeD0iNi41IiBjeT0iMTIuNSIgcj0iMy41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/case-lower\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CaseLower: IconNode = [\n ['path', { d: 'M10 9v7' }],\n ['path', { d: 'M14 6v10' }],\n ['circle', { cx: '17.5', cy: '12.5', r: '3.5' }],\n ['circle', { cx: '6.5', cy: '12.5', r: '3.5' }],\n];\n\nexport default CaseLower;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name case-sensitive\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik0yMiA5djciIC8+CiAgPHBhdGggZD0iTTMuMzA0IDEzaDYuMzkyIiAvPgogIDxjaXJjbGUgY3g9IjE4LjUiIGN5PSIxMi41IiByPSIzLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/case-sensitive\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CaseSensitive: IconNode = [\n ['path', { d: 'm2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16' }],\n ['path', { d: 'M22 9v7' }],\n ['path', { d: 'M3.304 13h6.392' }],\n ['circle', { cx: '18.5', cy: '12.5', r: '3.5' }],\n];\n\nexport default CaseSensitive;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name case-upper\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTFoNC41YTEgMSAwIDAgMSAwIDVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDNhMSAxIDAgMCAxIDAgNSIgLz4KICA8cGF0aCBkPSJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik0zLjMwNCAxM2g2LjM5MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/case-upper\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CaseUpper: IconNode = [\n [\n 'path',\n { d: 'M15 11h4.5a1 1 0 0 1 0 5h-4a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h3a1 1 0 0 1 0 5' },\n ],\n ['path', { d: 'm2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16' }],\n ['path', { d: 'M3.304 13h6.392' }],\n];\n\nexport default CaseUpper;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cassette-tape\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjgiIGN5PSIxMCIgcj0iMiIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iMTAiIHI9IjIiIC8+CiAgPHBhdGggZD0ibTYgMjAgLjctMi45QTEuNCAxLjQgMCAwIDEgOC4xIDE2aDcuOGExLjQgMS40IDAgMCAxIDEuNCAxbC43IDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cassette-tape\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CassetteTape: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['circle', { cx: '8', cy: '10', r: '2' }],\n ['path', { d: 'M8 12h8' }],\n ['circle', { cx: '16', cy: '10', r: '2' }],\n ['path', { d: 'm6 20 .7-2.9A1.4 1.4 0 0 1 8.1 16h7.8a1.4 1.4 0 0 1 1.4 1l.7 3' }],\n];\n\nexport default CassetteTape;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cast\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA4VjZhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJoLTYiIC8+CiAgPHBhdGggZD0iTTIgMTJhOSA5IDAgMCAxIDggOCIgLz4KICA8cGF0aCBkPSJNMiAxNmE1IDUgMCAwIDEgNCA0IiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMi4wMSIgeTE9IjIwIiB5Mj0iMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cast\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cast: IconNode = [\n ['path', { d: 'M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6' }],\n ['path', { d: 'M2 12a9 9 0 0 1 8 8' }],\n ['path', { d: 'M2 16a5 5 0 0 1 4 4' }],\n ['line', { x1: '2', x2: '2.01', y1: '20', y2: '20' }],\n];\n\nexport default Cast;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name castle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNVYzIiAvPgogIDxwYXRoIGQ9Ik0xNCA1VjMiIC8+CiAgPHBhdGggZD0iTTE1IDIxdi0zYTMgMyAwIDAgMC02IDB2MyIgLz4KICA8cGF0aCBkPSJNMTggM3Y4IiAvPgogIDxwYXRoIGQ9Ik0xOCA1SDYiIC8+CiAgPHBhdGggZD0iTTIyIDExSDIiIC8+CiAgPHBhdGggZD0iTTIyIDl2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOSIgLz4KICA8cGF0aCBkPSJNNiAzdjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/castle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Castle: IconNode = [\n ['path', { d: 'M10 5V3' }],\n ['path', { d: 'M14 5V3' }],\n ['path', { d: 'M15 21v-3a3 3 0 0 0-6 0v3' }],\n ['path', { d: 'M18 3v8' }],\n ['path', { d: 'M18 5H6' }],\n ['path', { d: 'M22 11H2' }],\n ['path', { d: 'M22 9v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9' }],\n ['path', { d: 'M6 3v8' }],\n];\n\nexport default Castle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNWMuNjcgMCAxLjM1LjA5IDIgLjI2IDEuNzgtMiA1LjAzLTIuODQgNi40Mi0yLjI2IDEuNC41OC0uNDIgNy0uNDIgNyAuNTcgMS4wNyAxIDIuMjQgMSAzLjQ0QzIxIDE3LjkgMTYuOTcgMjEgMTIgMjFzLTktMy05LTcuNTZjMC0xLjI1LjUtMi40IDEtMy40NCAwIDAtMS44OS02LjQyLS41LTcgMS4zOS0uNTggNC43Mi4yMyA2LjUgMi4yM0E5LjA0IDkuMDQgMCAwIDEgMTIgNVoiIC8+CiAgPHBhdGggZD0iTTggMTR2LjUiIC8+CiAgPHBhdGggZD0iTTE2IDE0di41IiAvPgogIDxwYXRoIGQ9Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTdsLS43NS0uNzVaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cat: IconNode = [\n [\n 'path',\n {\n d: 'M12 5c.67 0 1.35.09 2 .26 1.78-2 5.03-2.84 6.42-2.26 1.4.58-.42 7-.42 7 .57 1.07 1 2.24 1 3.44C21 17.9 16.97 21 12 21s-9-3-9-7.56c0-1.25.5-2.4 1-3.44 0 0-1.89-6.42-.5-7 1.39-.58 4.72.23 6.5 2.23A9.04 9.04 0 0 1 12 5Z',\n },\n ],\n ['path', { d: 'M8 14v.5' }],\n ['path', { d: 'M16 14v.5' }],\n ['path', { d: 'M11.25 16.25h1.5L12 17l-.75-.75Z' }],\n];\n\nexport default Cat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cctv\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuNzUgMTJoMy42MzJhMSAxIDAgMCAxIC44OTQgMS40NDdsLTIuMDM0IDQuMDY5YTEgMSAwIDAgMS0xLjcwOC4xMzRsLTIuMTI0LTIuOTciIC8+CiAgPHBhdGggZD0iTTE3LjEwNiA5LjA1M2ExIDEgMCAwIDEgLjQ0NyAxLjM0MWwtMy4xMDYgNi4yMTFhMSAxIDAgMCAxLTEuMzQyLjQ0N0wzLjYxIDEyLjNhMi45MiAyLjkyIDAgMCAxLTEuMy0zLjkxTDMuNjkgNS42YTIuOTIgMi45MiAwIDAgMSAzLjkyLTEuM3oiIC8+CiAgPHBhdGggZD0iTTIgMTloMy43NmEyIDIgMCAwIDAgMS44LTEuMUw5IDE1IiAvPgogIDxwYXRoIGQ9Ik0yIDIxdi00IiAvPgogIDxwYXRoIGQ9Ik03IDloLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cctv\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cctv: IconNode = [\n [\n 'path',\n { d: 'M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97' },\n ],\n [\n 'path',\n {\n d: 'M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z',\n },\n ],\n ['path', { d: 'M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15' }],\n ['path', { d: 'M2 21v-4' }],\n ['path', { d: 'M7 9h.01' }],\n];\n\nexport default Cctv;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-area\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTEuMjA3YS41LjUgMCAwIDEgLjE0Ni0uMzUzbDItMmEuNS41IDAgMCAxIC43MDggMGwzLjI5MiAzLjI5MmEuNS41IDAgMCAwIC43MDggMGw0LjI5Mi00LjI5MmEuNS41IDAgMCAxIC44NTQuMzUzVjE2YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-area\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartArea: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n [\n 'path',\n {\n d: 'M7 11.207a.5.5 0 0 1 .146-.353l2-2a.5.5 0 0 1 .708 0l3.292 3.292a.5.5 0 0 0 .708 0l4.292-4.292a.5.5 0 0 1 .854.353V16a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z',\n },\n ],\n];\n\nexport default ChartArea;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-bar-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHJlY3QgeD0iNyIgeT0iMTMiIHdpZHRoPSI5IiBoZWlnaHQ9IjQiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjciIHk9IjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSI0IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-bar-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartBarBig: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['rect', { x: '7', y: '13', width: '9', height: '4', rx: '1' }],\n ['rect', { x: '7', y: '5', width: '12', height: '4', rx: '1' }],\n];\n\nexport default ChartBarBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-bar-decreasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTFoOCIgLz4KICA8cGF0aCBkPSJNNyAxNmgzIiAvPgogIDxwYXRoIGQ9Ik03IDZoMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-bar-decreasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartBarDecreasing: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M7 11h8' }],\n ['path', { d: 'M7 16h3' }],\n ['path', { d: 'M7 6h12' }],\n];\n\nexport default ChartBarDecreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-bar-increasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTFoOCIgLz4KICA8cGF0aCBkPSJNNyAxNmgxMiIgLz4KICA8cGF0aCBkPSJNNyA2aDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-bar-increasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartBarIncreasing: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M7 11h8' }],\n ['path', { d: 'M7 16h12' }],\n ['path', { d: 'M7 6h3' }],\n];\n\nexport default ChartBarIncreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-bar-stacked\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTN2NCIgLz4KICA8cGF0aCBkPSJNMTUgNXY0IiAvPgogIDxwYXRoIGQ9Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgLz4KICA8cmVjdCB4PSI3IiB5PSIxMyIgd2lkdGg9IjkiIGhlaWdodD0iNCIgcng9IjEiIC8+CiAgPHJlY3QgeD0iNyIgeT0iNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chart-bar-stacked\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartBarStacked: IconNode = [\n ['path', { d: 'M11 13v4' }],\n ['path', { d: 'M15 5v4' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['rect', { x: '7', y: '13', width: '9', height: '4', rx: '1' }],\n ['rect', { x: '7', y: '5', width: '12', height: '4', rx: '1' }],\n];\n\nexport default ChartBarStacked;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-candlestick\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSA1djQiIC8+CiAgPHJlY3Qgd2lkdGg9IjQiIGhlaWdodD0iNiIgeD0iNyIgeT0iOSIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTkgMTV2MiIgLz4KICA8cGF0aCBkPSJNMTcgM3YyIiAvPgogIDxyZWN0IHdpZHRoPSI0IiBoZWlnaHQ9IjgiIHg9IjE1IiB5PSI1IiByeD0iMSIgLz4KICA8cGF0aCBkPSJNMTcgMTN2MyIgLz4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-candlestick\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartCandlestick: IconNode = [\n ['path', { d: 'M9 5v4' }],\n ['rect', { width: '4', height: '6', x: '7', y: '9', rx: '1' }],\n ['path', { d: 'M9 15v2' }],\n ['path', { d: 'M17 3v2' }],\n ['rect', { width: '4', height: '8', x: '15', y: '5', rx: '1' }],\n ['path', { d: 'M17 13v3' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n];\n\nexport default ChartCandlestick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-column-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHJlY3QgeD0iMTUiIHk9IjUiIHdpZHRoPSI0IiBoZWlnaHQ9IjEyIiByeD0iMSIgLz4KICA8cmVjdCB4PSI3IiB5PSI4IiB3aWR0aD0iNCIgaGVpZ2h0PSI5IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-column-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartColumnBig: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['rect', { x: '15', y: '5', width: '4', height: '12', rx: '1' }],\n ['rect', { x: '7', y: '8', width: '4', height: '9', rx: '1' }],\n];\n\nexport default ChartColumnBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-column-decreasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTdWOSIgLz4KICA8cGF0aCBkPSJNMTggMTd2LTMiIC8+CiAgPHBhdGggZD0iTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2IiAvPgogIDxwYXRoIGQ9Ik04IDE3VjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-column-decreasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartColumnDecreasing: IconNode = [\n ['path', { d: 'M13 17V9' }],\n ['path', { d: 'M18 17v-3' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M8 17V5' }],\n];\n\nexport default ChartColumnDecreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-bar\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTZoOCIgLz4KICA8cGF0aCBkPSJNNyAxMWgxMiIgLz4KICA8cGF0aCBkPSJNNyA2aDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-bar\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartBar: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M7 16h8' }],\n ['path', { d: 'M7 11h12' }],\n ['path', { d: 'M7 6h3' }],\n];\n\nexport default ChartBar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-column-increasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTdWOSIgLz4KICA8cGF0aCBkPSJNMTggMTdWNSIgLz4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTggMTd2LTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-column-increasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartColumnIncreasing: IconNode = [\n ['path', { d: 'M13 17V9' }],\n ['path', { d: 'M18 17V5' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M8 17v-3' }],\n];\n\nexport default ChartColumnIncreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-column-stacked\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTNINyIgLz4KICA8cGF0aCBkPSJNMTkgOWgtNCIgLz4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHJlY3QgeD0iMTUiIHk9IjUiIHdpZHRoPSI0IiBoZWlnaHQ9IjEyIiByeD0iMSIgLz4KICA8cmVjdCB4PSI3IiB5PSI4IiB3aWR0aD0iNCIgaGVpZ2h0PSI5IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-column-stacked\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartColumnStacked: IconNode = [\n ['path', { d: 'M11 13H7' }],\n ['path', { d: 'M19 9h-4' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['rect', { x: '15', y: '5', width: '4', height: '12', rx: '1' }],\n ['rect', { x: '7', y: '8', width: '4', height: '9', rx: '1' }],\n];\n\nexport default ChartColumnStacked;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-column\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTE4IDE3VjkiIC8+CiAgPHBhdGggZD0iTTEzIDE3VjUiIC8+CiAgPHBhdGggZD0iTTggMTd2LTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-column\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartColumn: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M18 17V9' }],\n ['path', { d: 'M13 17V5' }],\n ['path', { d: 'M8 17v-3' }],\n];\n\nexport default ChartColumn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-gantt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNmg4IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNmg2IiAvPgogIDxwYXRoIGQ9Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgLz4KICA8cGF0aCBkPSJNOCAxMWg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chart-gantt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartGantt: IconNode = [\n ['path', { d: 'M10 6h8' }],\n ['path', { d: 'M12 16h6' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M8 11h7' }],\n];\n\nexport default ChartGantt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0ibTE5IDktNSA1LTQtNC0zIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartLine: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'm19 9-5 5-4-4-3 3' }],\n];\n\nexport default ChartLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-network\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMuMTEgNy42NjQgMS43OCAyLjY3MiIgLz4KICA8cGF0aCBkPSJtMTQuMTYyIDEyLjc4OC0zLjMyNCAxLjQyNCIgLz4KICA8cGF0aCBkPSJtMjAgNC02LjA2IDEuNTE1IiAvPgogIDxwYXRoIGQ9Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjYiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxMiIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTUiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-network\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNetwork: IconNode = [\n ['path', { d: 'm13.11 7.664 1.78 2.672' }],\n ['path', { d: 'm14.162 12.788-3.324 1.424' }],\n ['path', { d: 'm20 4-6.06 1.515' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['circle', { cx: '12', cy: '6', r: '2' }],\n ['circle', { cx: '16', cy: '12', r: '2' }],\n ['circle', { cx: '9', cy: '15', r: '2' }],\n];\n\nexport default ChartNetwork;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-no-axes-column-decreasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMVYzIiAvPgogIDxwYXRoIGQ9Ik0xMiAyMVY5IiAvPgogIDxwYXRoIGQ9Ik0xOSAyMXYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-no-axes-column-decreasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNoAxesColumnDecreasing: IconNode = [\n ['path', { d: 'M5 21V3' }],\n ['path', { d: 'M12 21V9' }],\n ['path', { d: 'M19 21v-6' }],\n];\n\nexport default ChartNoAxesColumnDecreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-no-axes-column-increasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMXYtNiIgLz4KICA8cGF0aCBkPSJNMTIgMjFWOSIgLz4KICA8cGF0aCBkPSJNMTkgMjFWMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-no-axes-column-increasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNoAxesColumnIncreasing: IconNode = [\n ['path', { d: 'M5 21v-6' }],\n ['path', { d: 'M12 21V9' }],\n ['path', { d: 'M19 21V3' }],\n];\n\nexport default ChartNoAxesColumnIncreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-no-axes-column\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMXYtNiIgLz4KICA8cGF0aCBkPSJNMTIgMjFWMyIgLz4KICA8cGF0aCBkPSJNMTkgMjFWOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-no-axes-column\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNoAxesColumn: IconNode = [\n ['path', { d: 'M5 21v-6' }],\n ['path', { d: 'M12 21V3' }],\n ['path', { d: 'M19 21V9' }],\n];\n\nexport default ChartNoAxesColumn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-no-axes-combined\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZ2NSIgLz4KICA8cGF0aCBkPSJNMTYgMTR2NyIgLz4KICA8cGF0aCBkPSJNMjAgMTB2MTEiIC8+CiAgPHBhdGggZD0ibTIyIDMtOC42NDYgOC42NDZhLjUuNSAwIDAgMS0uNzA4IDBMOS4zNTQgOC4zNTRhLjUuNSAwIDAgMC0uNzA3IDBMMiAxNSIgLz4KICA8cGF0aCBkPSJNNCAxOHYzIiAvPgogIDxwYXRoIGQ9Ik04IDE0djciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-no-axes-combined\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNoAxesCombined: IconNode = [\n ['path', { d: 'M12 16v5' }],\n ['path', { d: 'M16 14v7' }],\n ['path', { d: 'M20 10v11' }],\n ['path', { d: 'm22 3-8.646 8.646a.5.5 0 0 1-.708 0L9.354 8.354a.5.5 0 0 0-.707 0L2 15' }],\n ['path', { d: 'M4 18v3' }],\n ['path', { d: 'M8 14v7' }],\n];\n\nexport default ChartNoAxesCombined;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-no-axes-gantt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA1aDEyIiAvPgogIDxwYXRoIGQ9Ik00IDEyaDEwIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOWg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chart-no-axes-gantt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartNoAxesGantt: IconNode = [\n ['path', { d: 'M6 5h12' }],\n ['path', { d: 'M4 12h10' }],\n ['path', { d: 'M12 19h8' }],\n];\n\nexport default ChartNoAxesGantt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-pie\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJjLjU1MiAwIDEuMDA1LS40NDkuOTUtLjk5OGExMCAxMCAwIDAgMC04Ljk1My04Ljk1MWMtLjU1LS4wNTUtLjk5OC4zOTgtLjk5OC45NXY4YTEgMSAwIDAgMCAxIDF6IiAvPgogIDxwYXRoIGQ9Ik0yMS4yMSAxNS44OUExMCAxMCAwIDEgMSA4IDIuODMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chart-pie\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartPie: IconNode = [\n [\n 'path',\n {\n d: 'M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z',\n },\n ],\n ['path', { d: 'M21.21 15.89A10 10 0 1 1 8 2.83' }],\n];\n\nexport default ChartPie;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-scatter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI3LjUiIGN5PSI3LjUiIHI9Ii41IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPGNpcmNsZSBjeD0iMTguNSIgY3k9IjUuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSIxMS41IiBjeT0iMTEuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSI3LjUiIGN5PSIxNi41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgogIDxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNC41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgogIDxwYXRoIGQ9Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chart-scatter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartScatter: IconNode = [\n ['circle', { cx: '7.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '18.5', cy: '5.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '11.5', cy: '11.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '7.5', cy: '16.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '17.5', cy: '14.5', r: '.5', fill: 'currentColor' }],\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n];\n\nexport default ChartScatter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chart-spline\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYiIC8+CiAgPHBhdGggZD0iTTcgMTZjLjUtMiAxLjUtNyA0LTcgMiAwIDIgMyA0IDMgMi41IDAgNC41LTUgNS03IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chart-spline\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChartSpline: IconNode = [\n ['path', { d: 'M3 3v16a2 2 0 0 0 2 2h16' }],\n ['path', { d: 'M7 16c.5-2 1.5-7 4-7 2 0 2 3 4 3 2.5 0 4.5-5 5-7' }],\n];\n\nexport default ChartSpline;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name check-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNEw5IDE1IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOUwzIDE5IiAvPgogIDxwYXRoIGQ9Ik05IDE1TDQgMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CheckLine: IconNode = [\n ['path', { d: 'M20 4L9 15' }],\n ['path', { d: 'M21 19L3 19' }],\n ['path', { d: 'M9 15L4 10' }],\n];\n\nexport default CheckLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name check-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA3IDE3bC01LTUiIC8+CiAgPHBhdGggZD0ibTIyIDEwLTcuNSA3LjVMMTMgMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CheckCheck: IconNode = [\n ['path', { d: 'M18 6 7 17l-5-5' }],\n ['path', { d: 'm22 10-7.5 7.5L13 16' }],\n];\n\nexport default CheckCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chef-hat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMjFhMSAxIDAgMCAwIDEtMXYtNS4zNWMwLS40NTcuMzE2LS44NDQuNzI3LTEuMDQxYTQgNCAwIDAgMC0yLjEzNC03LjU4OSA1IDUgMCAwIDAtOS4xODYgMCA0IDQgMCAwIDAtMi4xMzQgNy41ODhjLjQxMS4xOTguNzI3LjU4NS43MjcgMS4wNDFWMjBhMSAxIDAgMCAwIDEgMVoiIC8+CiAgPHBhdGggZD0iTTYgMTdoMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chef-hat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChefHat: IconNode = [\n [\n 'path',\n {\n d: 'M17 21a1 1 0 0 0 1-1v-5.35c0-.457.316-.844.727-1.041a4 4 0 0 0-2.134-7.589 5 5 0 0 0-9.186 0 4 4 0 0 0-2.134 7.588c.411.198.727.585.727 1.041V20a1 1 0 0 0 1 1Z',\n },\n ],\n ['path', { d: 'M6 17h12' }],\n];\n\nexport default ChefHat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cherry\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oiIC8+CiAgPHBhdGggZD0iTTEyIDE3YTUgNSAwIDAgMCAxMCAwYzAtMi43Ni0yLjUtNS01LTMtMi41LTItNSAuMjQtNSAzWiIgLz4KICA8cGF0aCBkPSJNNyAxNGMzLjIyLTIuOTEgNC4yOS04Ljc1IDUtMTIgMS42NiAyLjM4IDQuOTQgOSA1IDEyIiAvPgogIDxwYXRoIGQ9Ik0yMiA5Yy00LjI5IDAtNy4xNC0yLjMzLTEwLTcgNS43MSAwIDEwIDQuNjcgMTAgN1oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cherry\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cherry: IconNode = [\n ['path', { d: 'M2 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z' }],\n ['path', { d: 'M12 17a5 5 0 0 0 10 0c0-2.76-2.5-5-5-3-2.5-2-5 .24-5 3Z' }],\n ['path', { d: 'M7 14c3.22-2.91 4.29-8.75 5-12 1.66 2.38 4.94 9 5 12' }],\n ['path', { d: 'M22 9c-4.29 0-7.14-2.33-10-7 5.71 0 10 4.67 10 7Z' }],\n];\n\nexport default Cherry;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Check: IconNode = [['path', { d: 'M20 6 9 17l-5-5' }]];\n\nexport default Check;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-bishop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0iTTE1IDE4YzEuNS0uNjE1IDMtMi40NjEgMy00LjkyM0MxOCA4Ljc2OSAxNC41IDQuNDYyIDEyIDIgOS41IDQuNDYyIDYgOC43NyA2IDEzLjA3NyA2IDE1LjUzOSA3LjUgMTcuMzg1IDkgMTgiIC8+CiAgPHBhdGggZD0ibTE2IDctMi41IDIuNSIgLz4KICA8cGF0aCBkPSJNOSAyaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chess-bishop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessBishop: IconNode = [\n ['path', { d: 'M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z' }],\n [\n 'path',\n {\n d: 'M15 18c1.5-.615 3-2.461 3-4.923C18 8.769 14.5 4.462 12 2 9.5 4.462 6 8.77 6 13.077 6 15.539 7.5 17.385 9 18',\n },\n ],\n ['path', { d: 'm16 7-2.5 2.5' }],\n ['path', { d: 'M9 2h6' }],\n];\n\nexport default ChessBishop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-king\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0ibTYuNyAxOC0xLTFDNC4zNSAxNS42ODIgMyAxNC4wOSAzIDEyYTUgNSAwIDAgMSA0Ljk1LTVjMS41ODQgMCAyLjcuNDU1IDQuMDUgMS44MThDMTMuMzUgNy40NTUgMTQuNDY2IDcgMTYuMDUgN0E1IDUgMCAwIDEgMjEgMTJjMCAyLjA4Mi0xLjM1OSAzLjY3My0yLjcgNWwtMSAxIiAvPgogIDxwYXRoIGQ9Ik0xMCA0aDQiIC8+CiAgPHBhdGggZD0iTTEyIDJ2Ni44MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chess-king\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessKing: IconNode = [\n ['path', { d: 'M4 20a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z' }],\n [\n 'path',\n {\n d: 'm6.7 18-1-1C4.35 15.682 3 14.09 3 12a5 5 0 0 1 4.95-5c1.584 0 2.7.455 4.05 1.818C13.35 7.455 14.466 7 16.05 7A5 5 0 0 1 21 12c0 2.082-1.359 3.673-2.7 5l-1 1',\n },\n ],\n ['path', { d: 'M10 4h4' }],\n ['path', { d: 'M12 2v6.818' }],\n];\n\nexport default ChessKing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-pawn\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0ibTE0LjUgMTAgMS41IDgiIC8+CiAgPHBhdGggZD0iTTcgMTBoMTAiIC8+CiAgPHBhdGggZD0ibTggMTggMS41LTgiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI2IiByPSI0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chess-pawn\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessPawn: IconNode = [\n ['path', { d: 'M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z' }],\n ['path', { d: 'm14.5 10 1.5 8' }],\n ['path', { d: 'M7 10h10' }],\n ['path', { d: 'm8 18 1.5-8' }],\n ['circle', { cx: '12', cy: '6', r: '4' }],\n];\n\nexport default ChessPawn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-queen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDVhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0ibTEyLjQ3NCA1Ljk0MyAxLjU2NyA1LjM0YTEgMSAwIDAgMCAxLjc1LjMyOGwyLjYxNi0zLjQwMiIgLz4KICA8cGF0aCBkPSJtMjAgOS0zIDkiIC8+CiAgPHBhdGggZD0ibTUuNTk0IDguMjA5IDIuNjE1IDMuNDAzYTEgMSAwIDAgMCAxLjc1LS4zMjlsMS41NjctNS4zNCIgLz4KICA8cGF0aCBkPSJNNyAxOCA0IDkiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI0IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iNyIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI0IiBjeT0iNyIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chess-queen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessQueen: IconNode = [\n ['path', { d: 'M4 20a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z' }],\n ['path', { d: 'm12.474 5.943 1.567 5.34a1 1 0 0 0 1.75.328l2.616-3.402' }],\n ['path', { d: 'm20 9-3 9' }],\n ['path', { d: 'm5.594 8.209 2.615 3.403a1 1 0 0 0 1.75-.329l1.567-5.34' }],\n ['path', { d: 'M7 18 4 9' }],\n ['circle', { cx: '12', cy: '4', r: '2' }],\n ['circle', { cx: '20', cy: '7', r: '2' }],\n ['circle', { cx: '4', cy: '7', r: '2' }],\n];\n\nexport default ChessQueen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-knight\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0iTTE2LjUgMThjMS0yIDIuNS01IDIuNS05YTcgNyAwIDAgMC03LTdINi42MzVhMSAxIDAgMCAwLS43NjggMS42NEw3IDVsLTIuMzIgNS44MDJhMiAyIDAgMCAwIC45NSAyLjUyNmwyLjg3IDEuNDU2IiAvPgogIDxwYXRoIGQ9Im0xNSA1IDEuNDI1LTEuNDI1IiAvPgogIDxwYXRoIGQ9Im0xNyA4IDEuNTMtMS41MyIgLz4KICA8cGF0aCBkPSJNOS43MTMgMTIuMTg1IDcgMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chess-knight\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessKnight: IconNode = [\n ['path', { d: 'M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z' }],\n [\n 'path',\n {\n d: 'M16.5 18c1-2 2.5-5 2.5-9a7 7 0 0 0-7-7H6.635a1 1 0 0 0-.768 1.64L7 5l-2.32 5.802a2 2 0 0 0 .95 2.526l2.87 1.456',\n },\n ],\n ['path', { d: 'm15 5 1.425-1.425' }],\n ['path', { d: 'm17 8 1.53-1.53' }],\n ['path', { d: 'M9.713 12.185 7 18' }],\n];\n\nexport default ChessKnight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chess-rook\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0iTTEwIDJ2MiIgLz4KICA8cGF0aCBkPSJNMTQgMnYyIiAvPgogIDxwYXRoIGQ9Im0xNyAxOC0xLTkiIC8+CiAgPHBhdGggZD0iTTYgMnY1YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjIiIC8+CiAgPHBhdGggZD0iTTYgNGgxMiIgLz4KICA8cGF0aCBkPSJtNyAxOCAxLTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chess-rook\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChessRook: IconNode = [\n ['path', { d: 'M5 20a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z' }],\n ['path', { d: 'M10 2v2' }],\n ['path', { d: 'M14 2v2' }],\n ['path', { d: 'm17 18-1-9' }],\n ['path', { d: 'M6 2v5a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2' }],\n ['path', { d: 'M6 4h12' }],\n ['path', { d: 'm7 18 1-9' }],\n];\n\nexport default ChessRook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronDown: IconNode = [['path', { d: 'm6 9 6 6 6-6' }]];\n\nexport default ChevronDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-first\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTgtNi02IDYtNiIgLz4KICA8cGF0aCBkPSJNNyA2djEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-first\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronFirst: IconNode = [\n ['path', { d: 'm17 18-6-6 6-6' }],\n ['path', { d: 'M7 6v12' }],\n];\n\nexport default ChevronFirst;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-last\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxOCA2LTYtNi02IiAvPgogIDxwYXRoIGQ9Ik0xNyA2djEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-last\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronLast: IconNode = [\n ['path', { d: 'm7 18 6-6-6-6' }],\n ['path', { d: 'M17 6v12' }],\n];\n\nexport default ChevronLast;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronLeft: IconNode = [['path', { d: 'm15 18-6-6 6-6' }]];\n\nexport default ChevronLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronRight: IconNode = [['path', { d: 'm9 18 6-6-6-6' }]];\n\nexport default ChevronRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevron-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTUtNi02LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronUp: IconNode = [['path', { d: 'm18 15-6-6-6 6' }]];\n\nexport default ChevronUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-down-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAyMCA1LTUgNSA1IiAvPgogIDxwYXRoIGQ9Im03IDQgNSA1IDUtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-down-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsDownUp: IconNode = [\n ['path', { d: 'm7 20 5-5 5 5' }],\n ['path', { d: 'm7 4 5 5 5-5' }],\n];\n\nexport default ChevronsDownUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyA2IDUgNSA1LTUiIC8+CiAgPHBhdGggZD0ibTcgMTMgNSA1IDUtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsDown: IconNode = [\n ['path', { d: 'm7 6 5 5 5-5' }],\n ['path', { d: 'm7 13 5 5 5-5' }],\n];\n\nexport default ChevronsDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-left-right-ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMmguMDEiIC8+CiAgPHBhdGggZD0ibTE3IDcgNSA1LTUgNSIgLz4KICA8cGF0aCBkPSJtNyA3LTUgNSA1IDUiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevrons-left-right-ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsLeftRightEllipsis: IconNode = [\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M16 12h.01' }],\n ['path', { d: 'm17 7 5 5-5 5' }],\n ['path', { d: 'm7 7-5 5 5 5' }],\n ['path', { d: 'M8 12h.01' }],\n];\n\nexport default ChevronsLeftRightEllipsis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-left-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSA3LTUgNSA1IDUiIC8+CiAgPHBhdGggZD0ibTE1IDcgNSA1LTUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-left-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsLeftRight: IconNode = [\n ['path', { d: 'm9 7-5 5 5 5' }],\n ['path', { d: 'm15 7 5 5-5 5' }],\n];\n\nexport default ChevronsLeftRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTctNS01IDUtNSIgLz4KICA8cGF0aCBkPSJtMTggMTctNS01IDUtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsLeft: IconNode = [\n ['path', { d: 'm11 17-5-5 5-5' }],\n ['path', { d: 'm18 17-5-5 5-5' }],\n];\n\nexport default ChevronsLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-right-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjAgMTctNS01IDUtNSIgLz4KICA8cGF0aCBkPSJtNCAxNyA1LTUtNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevrons-right-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsRightLeft: IconNode = [\n ['path', { d: 'm20 17-5-5 5-5' }],\n ['path', { d: 'm4 17 5-5-5-5' }],\n];\n\nexport default ChevronsRightLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNyA1LTUtNS01IiAvPgogIDxwYXRoIGQ9Im0xMyAxNyA1LTUtNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevrons-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsRight: IconNode = [\n ['path', { d: 'm6 17 5-5-5-5' }],\n ['path', { d: 'm13 17 5-5-5-5' }],\n];\n\nexport default ChevronsRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTEtNS01LTUgNSIgLz4KICA8cGF0aCBkPSJtMTcgMTgtNS01LTUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsUp: IconNode = [\n ['path', { d: 'm17 11-5-5-5 5' }],\n ['path', { d: 'm17 18-5-5-5 5' }],\n];\n\nexport default ChevronsUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chromium\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuODggMjEuOTQgMTUuNDYgMTQiIC8+CiAgPHBhdGggZD0iTTIxLjE3IDhIMTIiIC8+CiAgPHBhdGggZD0iTTMuOTUgNi4wNiA4LjU0IDE0IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chromium\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=chromium instead. This icon will be removed in v1.0\n */\nconst Chromium: IconNode = [\n ['path', { d: 'M10.88 21.94 15.46 14' }],\n ['path', { d: 'M21.17 8H12' }],\n ['path', { d: 'M3.95 6.06 8.54 14' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n];\n\nexport default Chromium;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name chevrons-up-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxNSA1IDUgNS01IiAvPgogIDxwYXRoIGQ9Im03IDkgNS01IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-up-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ChevronsUpDown: IconNode = [\n ['path', { d: 'm7 15 5 5 5-5' }],\n ['path', { d: 'm7 9 5-5 5 5' }],\n];\n\nexport default ChevronsUpDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cigarette-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxMyIgLz4KICA8cGF0aCBkPSJNMTggOGMwLTIuNS0yLTIuNS0yLTUiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMjEgMTJhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0uNS44NjYiIC8+CiAgPHBhdGggZD0iTTIyIDhjMC0yLjUtMi0yLjUtMi01IiAvPgogIDxwYXRoIGQ9Ik03IDEydjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cigarette-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CigaretteOff: IconNode = [\n ['path', { d: 'M12 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h13' }],\n ['path', { d: 'M18 8c0-2.5-2-2.5-2-5' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M21 12a1 1 0 0 1 1 1v2a1 1 0 0 1-.5.866' }],\n ['path', { d: 'M22 8c0-2.5-2-2.5-2-5' }],\n ['path', { d: 'M7 12v4' }],\n];\n\nexport default CigaretteOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name church\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOWg0IiAvPgogIDxwYXRoIGQ9Ik0xMiA3djUiIC8+CiAgPHBhdGggZD0iTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyIgLz4KICA8cGF0aCBkPSJtMTggOSAzLjUyIDIuMTQ3YTEgMSAwIDAgMSAuNDguODU0VjE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi02Ljk5OWExIDEgMCAwIDEgLjQ4LS44NTRMNiA5IiAvPgogIDxwYXRoIGQ9Ik02IDIxVjdhMSAxIDAgMCAxIC4zNzYtLjc4Mmw1LTMuOTk5YTEgMSAwIDAgMSAxLjI0OS4wMDFsNSA0QTEgMSAwIDAgMSAxOCA3djE0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/church\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Church: IconNode = [\n ['path', { d: 'M10 9h4' }],\n ['path', { d: 'M12 7v5' }],\n ['path', { d: 'M14 21v-3a2 2 0 0 0-4 0v3' }],\n [\n 'path',\n {\n d: 'm18 9 3.52 2.147a1 1 0 0 1 .48.854V19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-6.999a1 1 0 0 1 .48-.854L6 9',\n },\n ],\n ['path', { d: 'M6 21V7a1 1 0 0 1 .376-.782l5-3.999a1 1 0 0 1 1.249.001l5 4A1 1 0 0 1 18 7v14' }],\n];\n\nexport default Church;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cigarette\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTJIM2ExIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMWgxNCIgLz4KICA8cGF0aCBkPSJNMTggOGMwLTIuNS0yLTIuNS0yLTUiIC8+CiAgPHBhdGggZD0iTTIxIDE2YTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMSIgLz4KICA8cGF0aCBkPSJNMjIgOGMwLTIuNS0yLTIuNS0yLTUiIC8+CiAgPHBhdGggZD0iTTcgMTJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cigarette\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cigarette: IconNode = [\n ['path', { d: 'M17 12H3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h14' }],\n ['path', { d: 'M18 8c0-2.5-2-2.5-2-5' }],\n ['path', { d: 'M21 16a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1' }],\n ['path', { d: 'M22 8c0-2.5-2-2.5-2-5' }],\n ['path', { d: 'M7 12v4' }],\n];\n\nexport default Cigarette;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjgiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMi4wMSIgeTE9IjE2IiB5Mj0iMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleAlert: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '12' }],\n ['line', { x1: '12', x2: '12.01', y1: '16', y2: '16' }],\n];\n\nexport default CircleAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgOHY4IiAvPgogIDxwYXRoIGQ9Im04IDEyIDQgNCA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowDown: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 8v8' }],\n ['path', { d: 'm8 12 4 4 4-4' }],\n];\n\nexport default CircleArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTIgOC00IDQgNCA0IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMkg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-arrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowLeft: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm12 8-4 4 4 4' }],\n ['path', { d: 'M16 12H8' }],\n];\n\nexport default CircleArrowLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-out-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMmExMCAxMCAwIDEgMSAxMCAxMCIgLz4KICA8cGF0aCBkPSJtMiAyMiAxMC0xMCIgLz4KICA8cGF0aCBkPSJNOCAyMkgydi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-arrow-out-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowOutDownLeft: IconNode = [\n ['path', { d: 'M2 12a10 10 0 1 1 10 10' }],\n ['path', { d: 'm2 22 10-10' }],\n ['path', { d: 'M8 22H2v-6' }],\n];\n\nexport default CircleArrowOutDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-out-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJhMTAgMTAgMCAxIDEgMTAtMTAiIC8+CiAgPHBhdGggZD0iTTIyIDIyIDEyIDEyIiAvPgogIDxwYXRoIGQ9Ik0yMiAxNnY2aC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-arrow-out-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowOutDownRight: IconNode = [\n ['path', { d: 'M12 22a10 10 0 1 1 10-10' }],\n ['path', { d: 'M22 22 12 12' }],\n ['path', { d: 'M22 16v6h-6' }],\n];\n\nexport default CircleArrowOutDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-out-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA4VjJoNiIgLz4KICA8cGF0aCBkPSJtMiAyIDEwIDEwIiAvPgogIDxwYXRoIGQ9Ik0xMiAyQTEwIDEwIDAgMSAxIDIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-arrow-out-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowOutUpLeft: IconNode = [\n ['path', { d: 'M2 8V2h6' }],\n ['path', { d: 'm2 2 10 10' }],\n ['path', { d: 'M12 2A10 10 0 1 1 2 12' }],\n];\n\nexport default CircleArrowOutUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-out-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTJBMTAgMTAgMCAxIDEgMTIgMiIgLz4KICA8cGF0aCBkPSJNMjIgMiAxMiAxMiIgLz4KICA8cGF0aCBkPSJNMTYgMmg2djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-arrow-out-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowOutUpRight: IconNode = [\n ['path', { d: 'M22 12A10 10 0 1 1 12 2' }],\n ['path', { d: 'M22 2 12 12' }],\n ['path', { d: 'M16 2h6v6' }],\n];\n\nexport default CircleArrowOutUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTIgMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-arrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowRight: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm12 16 4-4-4-4' }],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default CircleArrowRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTYgMTItNC00LTQgNCIgLz4KICA8cGF0aCBkPSJNMTIgMTZWOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleArrowUp: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm16 12-4-4-4 4' }],\n ['path', { d: 'M12 16V8' }],\n];\n\nexport default CircleArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-check-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1IiAvPgogIDxwYXRoIGQ9Im05IDExIDMgM0wyMiA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-check-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleCheckBig: IconNode = [\n ['path', { d: 'M21.801 10A10 10 0 1 1 17 3.335' }],\n ['path', { d: 'm9 11 3 3L22 4' }],\n];\n\nexport default CircleCheckBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleCheck: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default CircleCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-chevron-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTYgMTAtNCA0LTQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-chevron-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleChevronDown: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm16 10-4 4-4-4' }],\n];\n\nexport default CircleChevronDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-chevron-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTQgMTYtNC00IDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-chevron-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleChevronLeft: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm14 16-4-4 4-4' }],\n];\n\nexport default CircleChevronLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-chevron-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTAgOCA0IDQtNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-chevron-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleChevronRight: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm10 8 4 4-4 4' }],\n];\n\nexport default CircleChevronRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-chevron-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtOCAxNCA0LTQgNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-chevron-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleChevronUp: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm8 14 4-4 4 4' }],\n];\n\nexport default CircleChevronUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCIgLz4KICA8cGF0aCBkPSJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAiIC8+CiAgPHBhdGggZD0iTTE3LjYwOSAzLjcyMWExMCAxMCAwIDAgMSAyLjY5IDIuNyIgLz4KICA8cGF0aCBkPSJNMi4xODIgMTMuOWExMCAxMCAwIDAgMSAwLTMuOCIgLz4KICA8cGF0aCBkPSJNMjAuMjc5IDE3LjYwOWExMCAxMCAwIDAgMS0yLjcgMi42OSIgLz4KICA8cGF0aCBkPSJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgiIC8+CiAgPHBhdGggZD0iTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5IiAvPgogIDxwYXRoIGQ9Ik02LjM5MSAyMC4yNzlhMTAgMTAgMCAwIDEtMi42OS0yLjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleDashed: IconNode = [\n ['path', { d: 'M10.1 2.182a10 10 0 0 1 3.8 0' }],\n ['path', { d: 'M13.9 21.818a10 10 0 0 1-3.8 0' }],\n ['path', { d: 'M17.609 3.721a10 10 0 0 1 2.69 2.7' }],\n ['path', { d: 'M2.182 13.9a10 10 0 0 1 0-3.8' }],\n ['path', { d: 'M20.279 17.609a10 10 0 0 1-2.7 2.69' }],\n ['path', { d: 'M21.818 10.1a10 10 0 0 1 0 3.8' }],\n ['path', { d: 'M3.721 6.391a10 10 0 0 1 2.7-2.69' }],\n ['path', { d: 'M6.391 20.279a10 10 0 0 1-2.69-2.7' }],\n];\n\nexport default CircleDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-divide\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iOCIgeDI9IjE2IiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjE2IiB5Mj0iMTYiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSI4IiB5Mj0iOCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-divide\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleDivide: IconNode = [\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12' }],\n ['line', { x1: '12', x2: '12', y1: '16', y2: '16' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '8' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CircleDivide;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-dollar-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTYgOGgtNmEyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMSAxIDAgNEg4IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOFY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-dollar-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleDollarSign: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8' }],\n ['path', { d: 'M12 18V6' }],\n];\n\nexport default CircleDollarSign;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-dot-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMSAyLjE4YTkuOTMgOS45MyAwIDAgMSAzLjggMCIgLz4KICA8cGF0aCBkPSJNMTcuNiAzLjcxYTkuOTUgOS45NSAwIDAgMSAyLjY5IDIuNyIgLz4KICA8cGF0aCBkPSJNMjEuODIgMTAuMWE5LjkzIDkuOTMgMCAwIDEgMCAzLjgiIC8+CiAgPHBhdGggZD0iTTIwLjI5IDE3LjZhOS45NSA5Ljk1IDAgMCAxLTIuNyAyLjY5IiAvPgogIDxwYXRoIGQ9Ik0xMy45IDIxLjgyYTkuOTQgOS45NCAwIDAgMS0zLjggMCIgLz4KICA8cGF0aCBkPSJNNi40IDIwLjI5YTkuOTUgOS45NSAwIDAgMS0yLjY5LTIuNyIgLz4KICA8cGF0aCBkPSJNMi4xOCAxMy45YTkuOTMgOS45MyAwIDAgMSAwLTMuOCIgLz4KICA8cGF0aCBkPSJNMy43MSA2LjRhOS45NSA5Ljk1IDAgMCAxIDIuNy0yLjY5IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-dot-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleDotDashed: IconNode = [\n ['path', { d: 'M10.1 2.18a9.93 9.93 0 0 1 3.8 0' }],\n ['path', { d: 'M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7' }],\n ['path', { d: 'M21.82 10.1a9.93 9.93 0 0 1 0 3.8' }],\n ['path', { d: 'M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69' }],\n ['path', { d: 'M13.9 21.82a9.94 9.94 0 0 1-3.8 0' }],\n ['path', { d: 'M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7' }],\n ['path', { d: 'M2.18 13.9a9.93 9.93 0 0 1 0-3.8' }],\n ['path', { d: 'M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n];\n\nexport default CircleDotDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleDot: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n];\n\nexport default CircleDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTcgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTcgMTJoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleEllipsis: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M17 12h.01' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M7 12h.01' }],\n];\n\nexport default CircleEllipsis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-equal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxMGgxMCIgLz4KICA8cGF0aCBkPSJNNyAxNGgxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-equal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleEqual: IconNode = [\n ['path', { d: 'M7 10h10' }],\n ['path', { d: 'M7 14h10' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CircleEqual;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-fading-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1IiAvPgogIDxwYXRoIGQ9Im0xNiAxMi00LTQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNlY4IiAvPgogIDxwYXRoIGQ9Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyIgLz4KICA8cGF0aCBkPSJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCIgLz4KICA8cGF0aCBkPSJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3IiAvPgogIDxwYXRoIGQ9Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-fading-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleFadingArrowUp: IconNode = [\n ['path', { d: 'M12 2a10 10 0 0 1 7.38 16.75' }],\n ['path', { d: 'm16 12-4-4-4 4' }],\n ['path', { d: 'M12 16V8' }],\n ['path', { d: 'M2.5 8.875a10 10 0 0 0-.5 3' }],\n ['path', { d: 'M2.83 16a10 10 0 0 0 2.43 3.4' }],\n ['path', { d: 'M4.636 5.235a10 10 0 0 1 .891-.857' }],\n ['path', { d: 'M8.644 21.42a10 10 0 0 0 7.631-.38' }],\n];\n\nexport default CircleFadingArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-fading-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1IiAvPgogIDxwYXRoIGQ9Ik0xMiA4djgiIC8+CiAgPHBhdGggZD0iTTE2IDEySDgiIC8+CiAgPHBhdGggZD0iTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIiAvPgogIDxwYXRoIGQ9Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40IiAvPgogIDxwYXRoIGQ9Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTciIC8+CiAgPHBhdGggZD0iTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCIgLz4KPC9zdmc+) - https://lucide.dev/icons/circle-fading-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleFadingPlus: IconNode = [\n ['path', { d: 'M12 2a10 10 0 0 1 7.38 16.75' }],\n ['path', { d: 'M12 8v8' }],\n ['path', { d: 'M16 12H8' }],\n ['path', { d: 'M2.5 8.875a10 10 0 0 0-.5 3' }],\n ['path', { d: 'M2.83 16a10 10 0 0 0 2.43 3.4' }],\n ['path', { d: 'M4.636 5.235a10 10 0 0 1 .891-.857' }],\n ['path', { d: 'M8.644 21.42a10 10 0 0 0 7.631-.38' }],\n];\n\nexport default CircleFadingPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-gauge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNiAyLjdhMTAgMTAgMCAxIDAgNS43IDUuNyIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0xMy40IDEwLjYgMTkgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-gauge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleGauge: IconNode = [\n ['path', { d: 'M15.6 2.7a10 10 0 1 0 5.7 5.7' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['path', { d: 'M13.4 10.6 19 5' }],\n];\n\nexport default CircleGauge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleMinus: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default CircleMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-parking-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNjU2IDdIMTNhMyAzIDAgMCAxIDIuOTg0IDMuMzA3IiAvPgogIDxwYXRoIGQ9Ik0xMyAxM0g5IiAvPgogIDxwYXRoIGQ9Ik0xOS4wNzEgMTkuMDcxQTEgMSAwIDAgMSA0LjkzIDQuOTMiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNOC4zNTcgMi42ODdhMTAgMTAgMCAwIDEgMTIuOTU2IDEyLjk1NiIgLz4KICA8cGF0aCBkPSJNOSAxN1Y5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-parking-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleParkingOff: IconNode = [\n ['path', { d: 'M12.656 7H13a3 3 0 0 1 2.984 3.307' }],\n ['path', { d: 'M13 13H9' }],\n ['path', { d: 'M19.071 19.071A1 1 0 0 1 4.93 4.93' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.357 2.687a10 10 0 0 1 12.956 12.956' }],\n ['path', { d: 'M9 17V9' }],\n];\n\nexport default CircleParkingOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSIgLz4KICA8cGF0aCBkPSJNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleOff: IconNode = [\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.35 2.69A10 10 0 0 1 21.3 15.65' }],\n ['path', { d: 'M19.08 19.08A10 10 0 1 1 4.92 4.92' }],\n];\n\nexport default CircleOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-parking\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-parking\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleParking: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M9 17V7h4a3 3 0 0 1 0 6H9' }],\n];\n\nexport default CircleParking;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iMTAiIHgyPSIxMCIgeTE9IjE1IiB5Mj0iOSIgLz4KICA8bGluZSB4MT0iMTQiIHgyPSIxNCIgeTE9IjE1IiB5Mj0iOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePause: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['line', { x1: '10', x2: '10', y1: '15', y2: '9' }],\n ['line', { x1: '14', x2: '14', y1: '15', y2: '9' }],\n];\n\nexport default CirclePause;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0iTTkgOWguMDEiIC8+CiAgPHBhdGggZD0iTTE1IDE1aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePercent: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'M9 9h.01' }],\n ['path', { d: 'M15 15h.01' }],\n];\n\nexport default CirclePercent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSA5LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdBMSAxIDAgMCAxIDkgMTQuOTk2eiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePlay: IconNode = [\n [\n 'path',\n {\n d: 'M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CirclePlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-pile\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxOSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxMiIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjE5IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjQiIGN5PSIxOSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI4IiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/circle-pile\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePile: IconNode = [\n ['circle', { cx: '12', cy: '19', r: '2' }],\n ['circle', { cx: '12', cy: '5', r: '2' }],\n ['circle', { cx: '16', cy: '12', r: '2' }],\n ['circle', { cx: '20', cy: '19', r: '2' }],\n ['circle', { cx: '4', cy: '19', r: '2' }],\n ['circle', { cx: '8', cy: '12', r: '2' }],\n];\n\nexport default CirclePile;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMiA4djgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePlus: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'M12 8v8' }],\n];\n\nexport default CirclePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-pound-sterling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTZWOS41YTEgMSAwIDAgMSA1IDAiIC8+CiAgPHBhdGggZD0iTTggMTJoNCIgLz4KICA8cGF0aCBkPSJNOCAxNmg3IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-pound-sterling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePoundSterling: IconNode = [\n ['path', { d: 'M10 16V9.5a1 1 0 0 1 5 0' }],\n ['path', { d: 'M8 12h4' }],\n ['path', { d: 'M8 16h7' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CirclePoundSterling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-power\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y0IiAvPgogIDxwYXRoIGQ9Ik03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-power\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CirclePower: IconNode = [\n ['path', { d: 'M12 7v4' }],\n ['path', { d: 'M7.998 9.003a5 5 0 1 0 8-.005' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CirclePower;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleQuestionMark: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default CircleQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-slash-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMiAyIDIyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-slash-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleSlash2: IconNode = [\n ['path', { d: 'M22 2 2 22' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CircleSlash2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjE1IiB5MT0iMTUiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleSlash: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['line', { x1: '9', x2: '15', y1: '15', y2: '9' }],\n];\n\nexport default CircleSlash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-small\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-small\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleSmall: IconNode = [['circle', { cx: '12', cy: '12', r: '6' }]];\n\nexport default CircleSmall;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDUxIDcuNjE2YTEgMSAwIDAgMSAxLjkwOS4wMjRsLjczNyAxLjQ1MmExIDEgMCAwIDAgLjczNy41MzVsMS42MzQuMjU2YTEgMSAwIDAgMSAuNTg4IDEuODA2bC0xLjE3MiAxLjE2OGExIDEgMCAwIDAtLjI4Mi44NjZsLjI1OSAxLjYxM2ExIDEgMCAwIDEtMS41NDEgMS4xMzRsLTEuNDY1LS43NWExIDEgMCAwIDAtLjkxMiAwbC0xLjQ2NS43NWExIDEgMCAwIDEtMS41MzktMS4xMzNsLjI1OC0xLjYxM2ExIDEgMCAwIDAtLjI4Mi0uODY3bC0xLjE1Ni0xLjE1MmExIDEgMCAwIDEgLjU3Mi0xLjgyMmwxLjYzMy0uMjU2YTEgMSAwIDAgMCAuNzM3LS41MzV6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleStar: IconNode = [\n [\n 'path',\n {\n d: 'M11.051 7.616a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.867l-1.156-1.152a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CircleStar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-stop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-stop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleStop: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['rect', { x: '9', y: '9', width: '6', height: '6', rx: '1' }],\n];\n\nexport default CircleStop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-user-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMjBhNiA2IDAgMCAwLTEyIDAiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMCIgcj0iNCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-user-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleUserRound: IconNode = [\n ['path', { d: 'M18 20a6 6 0 0 0-12 0' }],\n ['circle', { cx: '12', cy: '10', r: '4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default CircleUserRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEwIiByPSIzIiAvPgogIDxwYXRoIGQ9Ik03IDIwLjY2MlYxOWEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxLjY2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle-user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleUser: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662' }],\n];\n\nexport default CircleUser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0ibTkgOSA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircleX: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'm9 9 6 6' }],\n];\n\nexport default CircleX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Circle: IconNode = [['circle', { cx: '12', cy: '12', r: '10' }]];\n\nexport default Circle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name circuit-board\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMSA5aDRhMiAyIDAgMCAwIDItMlYzIiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSI5IiByPSIyIiAvPgogIDxwYXRoIGQ9Ik03IDIxdi00YTIgMiAwIDAgMSAyLTJoNCIgLz4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjE1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circuit-board\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CircuitBoard: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M11 9h4a2 2 0 0 0 2-2V3' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n ['path', { d: 'M7 21v-4a2 2 0 0 1 2-2h4' }],\n ['circle', { cx: '15', cy: '15', r: '2' }],\n];\n\nexport default CircuitBoard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name citrus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuNjYgMTcuNjdhMS4wOCAxLjA4IDAgMCAxLS4wNCAxLjZBMTIgMTIgMCAwIDEgNC43MyAyLjM4YTEuMSAxLjEgMCAwIDEgMS42MS0uMDR6IiAvPgogIDxwYXRoIGQ9Ik0xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0IiAvPgogIDxwYXRoIGQ9Im0xNCAxMC01LjUgNS41IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNy44NVYxMEg2LjE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/citrus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Citrus: IconNode = [\n [\n 'path',\n { d: 'M21.66 17.67a1.08 1.08 0 0 1-.04 1.6A12 12 0 0 1 4.73 2.38a1.1 1.1 0 0 1 1.61-.04z' },\n ],\n ['path', { d: 'M19.65 15.66A8 8 0 0 1 8.35 4.34' }],\n ['path', { d: 'm14 10-5.5 5.5' }],\n ['path', { d: 'M14 17.85V10H6.15' }],\n];\n\nexport default Citrus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clapperboard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuMiA2IDMgMTFsLS45LTIuNGMtLjMtMS4xLjMtMi4yIDEuMy0yLjVsMTMuNS00YzEuMS0uMyAyLjIuMyAyLjUgMS4zWiIgLz4KICA8cGF0aCBkPSJtNi4yIDUuMyAzLjEgMy45IiAvPgogIDxwYXRoIGQ9Im0xMi40IDMuNCAzLjEgNCIgLz4KICA8cGF0aCBkPSJNMyAxMWgxOHY4YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yWiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clapperboard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clapperboard: IconNode = [\n ['path', { d: 'M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3Z' }],\n ['path', { d: 'm6.2 5.3 3.1 3.9' }],\n ['path', { d: 'm12.4 3.4 3.1 4' }],\n ['path', { d: 'M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z' }],\n];\n\nexport default Clapperboard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Im05IDE0IDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clipboard-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardCheck: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'm9 14 2 2 4-4' }],\n];\n\nexport default ClipboardCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTR2Mi4ybDEuNiAxIiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYuODMyIiAvPgogIDxwYXRoIGQ9Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMiIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSI2IiAvPgogIDxyZWN0IHg9IjgiIHk9IjIiIHdpZHRoPSI4IiBoZWlnaHQ9IjQiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard-clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardClock: IconNode = [\n ['path', { d: 'M16 14v2.2l1.6 1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v.832' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2' }],\n ['circle', { cx: '16', cy: '16', r: '6' }],\n ['rect', { x: '8', y: '2', width: '8', height: '4', rx: '1' }],\n];\n\nexport default ClipboardClock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-copy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnY0IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNEgxMSIgLz4KICA8cGF0aCBkPSJtMTUgMTAtNCA0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clipboard-copy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardCopy: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v4' }],\n ['path', { d: 'M21 14H11' }],\n ['path', { d: 'm15 10-4 4 4 4' }],\n];\n\nexport default ClipboardCopy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-list\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMWg0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNmg0IiAvPgogIDxwYXRoIGQ9Ik04IDExaC4wMSIgLz4KICA8cGF0aCBkPSJNOCAxNmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clipboard-list\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardList: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M12 11h4' }],\n ['path', { d: 'M12 16h4' }],\n ['path', { d: 'M8 11h.01' }],\n ['path', { d: 'M8 16h.01' }],\n];\n\nexport default ClipboardList;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik05IDE0aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clipboard-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardMinus: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M9 14h6' }],\n];\n\nexport default ClipboardMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-paste\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTRoMTAiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjEuMzQ0IiAvPgogIDxwYXRoIGQ9Im0xNyAxOCA0LTQtNC00IiAvPgogIDxwYXRoIGQ9Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNzkzLTEuMTEzIiAvPgogIDxyZWN0IHg9IjgiIHk9IjIiIHdpZHRoPSI4IiBoZWlnaHQ9IjQiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard-paste\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardPaste: IconNode = [\n ['path', { d: 'M11 14h10' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v1.344' }],\n ['path', { d: 'm17 18 4-4-4-4' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113' }],\n ['rect', { x: '8', y: '2', width: '8', height: '4', rx: '1' }],\n];\n\nexport default ClipboardPaste;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-pen-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgLz4KICA8cGF0aCBkPSJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LS41IiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDEuNzMgMSIgLz4KICA8cGF0aCBkPSJNOCAxOGgxIiAvPgogIDxwYXRoIGQ9Ik0yMS4zNzggMTIuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clipboard-pen-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardPenLine: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1' }],\n ['path', { d: 'M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.5' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 1.73 1' }],\n ['path', { d: 'M8 18h1' }],\n [\n 'path',\n {\n d: 'M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n];\n\nexport default ClipboardPenLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgLz4KICA8cGF0aCBkPSJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNS41IiAvPgogIDxwYXRoIGQ9Ik00IDEzLjVWNmEyIDIgMCAwIDEgMi0yaDIiIC8+CiAgPHBhdGggZD0iTTEzLjM3OCAxNS42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clipboard-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardPen: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5' }],\n ['path', { d: 'M4 13.5V6a2 2 0 0 1 2-2h2' }],\n [\n 'path',\n {\n d: 'M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n];\n\nexport default ClipboardPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik05IDE0aDYiIC8+CiAgPHBhdGggZD0iTTEyIDE3di02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardPlus: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M9 14h6' }],\n ['path', { d: 'M12 17v-6' }],\n];\n\nexport default ClipboardPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-type\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik05IDEydi0xaDZ2MSIgLz4KICA8cGF0aCBkPSJNMTEgMTdoMiIgLz4KICA8cGF0aCBkPSJNMTIgMTF2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clipboard-type\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardType: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M9 12v-1h6v1' }],\n ['path', { d: 'M11 17h2' }],\n ['path', { d: 'M12 11v6' }],\n];\n\nexport default ClipboardType;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Im0xNSAxMS02IDYiIC8+CiAgPHBhdGggZD0ibTkgMTEgNiA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClipboardX: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'm15 11-6 6' }],\n ['path', { d: 'm9 11 6 6' }],\n];\n\nexport default ClipboardX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDItNCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock1: IconNode = [\n ['path', { d: 'M12 6v6l2-4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clipboard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSI4IiB5PSIyIiByeD0iMSIgcnk9IjEiIC8+CiAgPHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clipboard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clipboard: IconNode = [\n ['rect', { width: '8', height: '4', x: '8', y: '2', rx: '1', ry: '1' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2' }],\n];\n\nexport default Clipboard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-10\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bC00LTIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-10\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock10: IconNode = [\n ['path', { d: 'M12 6v6l-4-2' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock10;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-11\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bC0yLTQiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-11\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock11: IconNode = [\n ['path', { d: 'M12 6v6l-2-4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock11;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-12\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clock-12\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock12: IconNode = [\n ['path', { d: 'M12 6v6' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock12;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQtMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock2: IconNode = [\n ['path', { d: 'M12 6v6l4-2' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2aDQiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock3: IconNode = [\n ['path', { d: 'M12 6v6h4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock4: IconNode = [\n ['path', { d: 'M12 6v6l4 2' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-5\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDIgNCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-5\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock5: IconNode = [\n ['path', { d: 'M12 6v6l2 4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock5;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-6\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnYxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-6\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock6: IconNode = [\n ['path', { d: 'M12 6v10' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock6;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-7\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bC0yIDQiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-7\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock7: IconNode = [\n ['path', { d: 'M12 6v6l-2 4' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock7;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-8\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bC00IDIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-8\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock8: IconNode = [\n ['path', { d: 'M12 6v6l-4 2' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock8;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-9\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2SDgiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-9\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock9: IconNode = [\n ['path', { d: 'M12 6v6H8' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock9;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDIgMSIgLz4KICA8cGF0aCBkPSJNMTIuMzM3IDIxLjk5NGExMCAxMCAwIDEgMSA5LjU4OC04Ljc2NyIgLz4KICA8cGF0aCBkPSJtMTQgMTggNCA0IDQtNCIgLz4KICA8cGF0aCBkPSJNMTggMTR2OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockArrowDown: IconNode = [\n ['path', { d: 'M12 6v6l2 1' }],\n ['path', { d: 'M12.337 21.994a10 10 0 1 1 9.588-8.767' }],\n ['path', { d: 'm14 18 4 4 4-4' }],\n ['path', { d: 'M18 14v8' }],\n];\n\nexport default ClockArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KICA8cGF0aCBkPSJNMjAgMTJ2NSIgLz4KICA8cGF0aCBkPSJNMjAgMjFoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yMS4yNSA4LjJBMTAgMTAgMCAxIDAgMTYgMjEuMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockAlert: IconNode = [\n ['path', { d: 'M12 6v6l4 2' }],\n ['path', { d: 'M20 12v5' }],\n ['path', { d: 'M20 21h.01' }],\n ['path', { d: 'M21.25 8.2A10 10 0 1 0 16 21.16' }],\n];\n\nexport default ClockAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDEuNTYuNzgiIC8+CiAgPHBhdGggZD0iTTEzLjIyNyAyMS45MjVhMTAgMTAgMCAxIDEgOC43NjctOS41ODgiIC8+CiAgPHBhdGggZD0ibTE0IDE4IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTE4IDIydi04IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clock-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockArrowUp: IconNode = [\n ['path', { d: 'M12 6v6l1.56.78' }],\n ['path', { d: 'M13.227 21.925a10 10 0 1 1 8.767-9.588' }],\n ['path', { d: 'm14 18 4-4 4 4' }],\n ['path', { d: 'M18 22v-8' }],\n];\n\nexport default ClockArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KICA8cGF0aCBkPSJNMjIgMTJhMTAgMTAgMCAxIDAtMTEgOS45NSIgLz4KICA8cGF0aCBkPSJtMjIgMTYtNS41IDUuNUwxNCAxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockCheck: IconNode = [\n ['path', { d: 'M12 6v6l4 2' }],\n ['path', { d: 'M22 12a10 10 0 1 0-11 9.95' }],\n ['path', { d: 'm22 16-5.5 5.5L14 19' }],\n];\n\nexport default ClockCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-fading\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1IiAvPgogIDxwYXRoIGQ9Ik0xMiA2djZsNCAyIiAvPgogIDxwYXRoIGQ9Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyIgLz4KICA8cGF0aCBkPSJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCIgLz4KICA8cGF0aCBkPSJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3IiAvPgogIDxwYXRoIGQ9Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-fading\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockFading: IconNode = [\n ['path', { d: 'M12 2a10 10 0 0 1 7.38 16.75' }],\n ['path', { d: 'M12 6v6l4 2' }],\n ['path', { d: 'M2.5 8.875a10 10 0 0 0-.5 3' }],\n ['path', { d: 'M2.83 16a10 10 0 0 0 2.43 3.4' }],\n ['path', { d: 'M4.636 5.235a10 10 0 0 1 .891-.857' }],\n ['path', { d: 'M8.644 21.42a10 10 0 0 0 7.631-.38' }],\n];\n\nexport default ClockFading;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDMuNjQ0IDEuODIyIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOWg2IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNnY2IiAvPgogIDxwYXRoIGQ9Ik0yMS45MiAxMy4yNjdhMTAgMTAgMCAxIDAtOC42NTMgOC42NTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/clock-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClockPlus: IconNode = [\n ['path', { d: 'M12 6v6l3.644 1.822' }],\n ['path', { d: 'M16 19h6' }],\n ['path', { d: 'M19 16v6' }],\n ['path', { d: 'M21.92 13.267a10 10 0 1 0-8.653 8.653' }],\n];\n\nexport default ClockPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnY2bDQgMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clock: IconNode = [\n ['path', { d: 'M12 6v6l4 2' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Clock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name closed-caption\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOS4xN2EzIDMgMCAxIDAgMCA1LjY2IiAvPgogIDxwYXRoIGQ9Ik0xNyA5LjE3YTMgMyAwIDEgMCAwIDUuNjYiIC8+CiAgPHJlY3QgeD0iMiIgeT0iNSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/closed-caption\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ClosedCaption: IconNode = [\n ['path', { d: 'M10 9.17a3 3 0 1 0 0 5.66' }],\n ['path', { d: 'M17 9.17a3 3 0 1 0 0 5.66' }],\n ['rect', { x: '2', y: '5', width: '20', height: '14', rx: '2' }],\n];\n\nexport default ClosedCaption;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJ2NCIgLz4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04LjEyOCAxNi45NDlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWExIDEgMCAwIDEgMCA5aC0xLjY0MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudAlert: IconNode = [\n ['path', { d: 'M12 12v4' }],\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M8.128 16.949A7 7 0 1 1 15.71 8h1.79a1 1 0 0 1 0 9h-1.642' }],\n];\n\nexport default CloudAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-backup\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNSA4aC0xLjc5QTcgNyAwIDEgMCAzIDEzLjYwNyIgLz4KICA8cGF0aCBkPSJNNyAxMXY0aDQiIC8+CiAgPHBhdGggZD0iTTggMTlhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjUgNC44MiA0LjgyIDAgMCAwLTMuNDEgMS40MUw3IDE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-backup\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudBackup: IconNode = [\n ['path', { d: 'M21 15.251A4.5 4.5 0 0 0 17.5 8h-1.79A7 7 0 1 0 3 13.607' }],\n ['path', { d: 'M7 11v4h4' }],\n ['path', { d: 'M8 19a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5 4.82 4.82 0 0 0-3.41 1.41L7 15' }],\n];\n\nexport default CloudBackup;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTUtNS41IDUuNUw5IDE4IiAvPgogIDxwYXRoIGQ9Ik01LjUxNiAxNi4wN0E3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMy41MDEgNy4zMjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudCheck: IconNode = [\n ['path', { d: 'm17 15-5.5 5.5L9 18' }],\n ['path', { d: 'M5.516 16.07A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 3.501 7.327' }],\n];\n\nexport default CloudCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuODUyIDE5Ljc3Mi0uMzgzLjkyNCIgLz4KICA8cGF0aCBkPSJtMTMuMTQ4IDE0LjIyOC4zODMtLjkyMyIgLz4KICA8cGF0aCBkPSJNMTMuMTQ4IDE5Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyIgLz4KICA8cGF0aCBkPSJtMTMuNTMgMjAuNjk2LS4zODItLjkyNGEzIDMgMCAxIDEtMi4yOTYtNS41NDQiIC8+CiAgPHBhdGggZD0ibTE0Ljc3MiAxNS44NTIuOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE0Ljc3MiAxOC4xNDguOTIzLjM4MyIgLz4KICA8cGF0aCBkPSJNNC4yIDE1LjFhNyA3IDAgMSAxIDkuOTMtOS44NThBNyA3IDAgMCAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjIiIC8+CiAgPHBhdGggZD0ibTkuMjI4IDE1Ljg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTkuMjI4IDE4LjE0OC0uOTIzLjM4MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudCog: IconNode = [\n ['path', { d: 'm10.852 19.772-.383.924' }],\n ['path', { d: 'm13.148 14.228.383-.923' }],\n ['path', { d: 'M13.148 19.772a3 3 0 1 0-2.296-5.544l-.383-.923' }],\n ['path', { d: 'm13.53 20.696-.382-.924a3 3 0 1 1-2.296-5.544' }],\n ['path', { d: 'm14.772 15.852.923-.383' }],\n ['path', { d: 'm14.772 18.148.923.383' }],\n ['path', { d: 'M4.2 15.1a7 7 0 1 1 9.93-9.858A7 7 0 0 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.2' }],\n ['path', { d: 'm9.228 15.852-.923-.383' }],\n ['path', { d: 'm9.228 18.148-.923.383' }],\n];\n\nexport default CloudCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-download\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2OGwtNC00IiAvPgogIDxwYXRoIGQ9Im0xMiAyMSA0LTQiIC8+CiAgPHBhdGggZD0iTTQuMzkzIDE1LjI2OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi40MzYgOC4yODQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-download\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudDownload: IconNode = [\n ['path', { d: 'M12 13v8l-4-4' }],\n ['path', { d: 'm12 21 4-4' }],\n ['path', { d: 'M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284' }],\n];\n\nexport default CloudDownload;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-drizzle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJNOCAxOXYxIiAvPgogIDxwYXRoIGQ9Ik04IDE0djEiIC8+CiAgPHBhdGggZD0iTTE2IDE5djEiIC8+CiAgPHBhdGggZD0iTTE2IDE0djEiIC8+CiAgPHBhdGggZD0iTTEyIDIxdjEiIC8+CiAgPHBhdGggZD0iTTEyIDE2djEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-drizzle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudDrizzle: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'M8 19v1' }],\n ['path', { d: 'M8 14v1' }],\n ['path', { d: 'M16 19v1' }],\n ['path', { d: 'M16 14v1' }],\n ['path', { d: 'M12 21v1' }],\n ['path', { d: 'M12 16v1' }],\n];\n\nexport default CloudDrizzle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-fog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJNMTYgMTdINyIgLz4KICA8cGF0aCBkPSJNMTcgMjFIOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-fog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudFog: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'M16 17H7' }],\n ['path', { d: 'M17 21H9' }],\n];\n\nexport default CloudFog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-hail\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJNMTYgMTR2MiIgLz4KICA8cGF0aCBkPSJNOCAxNHYyIiAvPgogIDxwYXRoIGQ9Ik0xNiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTggMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNnYyIiAvPgogIDxwYXRoIGQ9Ik0xMiAyMmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-hail\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudHail: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'M16 14v2' }],\n ['path', { d: 'M8 14v2' }],\n ['path', { d: 'M16 20h.01' }],\n ['path', { d: 'M8 20h.01' }],\n ['path', { d: 'M12 16v2' }],\n ['path', { d: 'M12 22h.01' }],\n];\n\nexport default CloudHail;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-moon-rain\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjB2MiIgLz4KICA8cGF0aCBkPSJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2IiAvPgogIDxwYXRoIGQ9Ik0zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0IiAvPgogIDxwYXRoIGQ9Ik03IDE5djIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-moon-rain\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudMoonRain: IconNode = [\n ['path', { d: 'M11 20v2' }],\n [\n 'path',\n {\n d: 'M18.376 14.512a6 6 0 0 0 3.461-4.127c.148-.625-.659-.97-1.248-.714a4 4 0 0 1-5.259-5.26c.255-.589-.09-1.395-.716-1.248a6 6 0 0 0-4.594 5.36',\n },\n ],\n ['path', { d: 'M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24' }],\n ['path', { d: 'M7 19v2' }],\n];\n\nexport default CloudMoonRain;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-lightning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxNi4zMjZBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIC41IDguOTczIiAvPgogIDxwYXRoIGQ9Im0xMyAxMi0zIDVoNGwtMyA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-lightning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudLightning: IconNode = [\n ['path', { d: 'M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973' }],\n ['path', { d: 'm13 12-3 5h4l-3 5' }],\n];\n\nexport default CloudLightning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-moon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTZhMyAzIDAgMCAxIDAgNkg3YTUgNSAwIDEgMSA0LjktNnoiIC8+CiAgPHBhdGggZD0iTTE4LjM3NiAxNC41MTJhNiA2IDAgMCAwIDMuNDYxLTQuMTI3Yy4xNDgtLjYyNS0uNjU5LS45Ny0xLjI0OC0uNzE0YTQgNCAwIDAgMS01LjI1OS01LjI2Yy4yNTUtLjU4OS0uMDktMS4zOTUtLjcxNi0xLjI0OGE2IDYgMCAwIDAtNC41OTQgNS4zNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-moon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudMoon: IconNode = [\n ['path', { d: 'M13 16a3 3 0 0 1 0 6H7a5 5 0 1 1 4.9-6z' }],\n [\n 'path',\n {\n d: 'M18.376 14.512a6 6 0 0 0 3.461-4.127c.148-.625-.659-.97-1.248-.714a4 4 0 0 1-5.259-5.26c.255-.589-.09-1.395-.716-1.248a6 6 0 0 0-4.594 5.36',\n },\n ],\n];\n\nexport default CloudMoon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuOTQgNS4yNzRBNyA3IDAgMCAxIDE1LjcxIDEwaDEuNzlhNC41IDQuNSAwIDAgMSA0LjIyMiA2LjA1NyIgLz4KICA8cGF0aCBkPSJNMTguNzk2IDE4LjgxQTQuNSA0LjUgMCAwIDEgMTcuNSAxOUg5QTcgNyAwIDAgMSA1Ljc5IDUuNzgiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudOff: IconNode = [\n ['path', { d: 'M10.94 5.274A7 7 0 0 1 15.71 10h1.79a4.5 4.5 0 0 1 4.222 6.057' }],\n ['path', { d: 'M18.796 18.81A4.5 4.5 0 0 1 17.5 19H9A7 7 0 0 1 5.79 5.78' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default CloudOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-rain-wind\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJtOS4yIDIyIDMtNyIgLz4KICA8cGF0aCBkPSJtOSAxMy0zIDciIC8+CiAgPHBhdGggZD0ibTE3IDEzLTMgNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-rain-wind\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudRainWind: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'm9.2 22 3-7' }],\n ['path', { d: 'm9 13-3 7' }],\n ['path', { d: 'm17 13-3 7' }],\n];\n\nexport default CloudRainWind;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-rain\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJNMTYgMTR2NiIgLz4KICA8cGF0aCBkPSJNOCAxNHY2IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-rain\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudRain: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'M16 14v6' }],\n ['path', { d: 'M8 14v6' }],\n ['path', { d: 'M12 16v6' }],\n];\n\nexport default CloudRain;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-snow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJNOCAxNWguMDEiIC8+CiAgPHBhdGggZD0iTTggMTloLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxN2guMDEiIC8+CiAgPHBhdGggZD0iTTEyIDIxaC4wMSIgLz4KICA8cGF0aCBkPSJNMTYgMTVoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-snow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudSnow: IconNode = [\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'M8 15h.01' }],\n ['path', { d: 'M8 19h.01' }],\n ['path', { d: 'M12 17h.01' }],\n ['path', { d: 'M12 21h.01' }],\n ['path', { d: 'M16 15h.01' }],\n ['path', { d: 'M16 19h.01' }],\n];\n\nexport default CloudSnow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-sun-rain\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Im00LjkzIDQuOTMgMS40MSAxLjQxIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im0xOS4wNyA0LjkzLTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMTUuOTQ3IDEyLjY1YTQgNCAwIDAgMC01LjkyNS00LjEyOCIgLz4KICA8cGF0aCBkPSJNMyAyMGE1IDUgMCAxIDEgOC45LTRIMTNhMyAzIDAgMCAxIDIgNS4yNCIgLz4KICA8cGF0aCBkPSJNMTEgMjB2MiIgLz4KICA8cGF0aCBkPSJNNyAxOXYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-sun-rain\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudSunRain: IconNode = [\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41' }],\n ['path', { d: 'M20 12h2' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41' }],\n ['path', { d: 'M15.947 12.65a4 4 0 0 0-5.925-4.128' }],\n ['path', { d: 'M3 20a5 5 0 1 1 8.9-4H13a3 3 0 0 1 2 5.24' }],\n ['path', { d: 'M11 20v2' }],\n ['path', { d: 'M7 19v2' }],\n];\n\nexport default CloudSunRain;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-sun\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Im00LjkzIDQuOTMgMS40MSAxLjQxIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im0xOS4wNyA0LjkzLTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMTUuOTQ3IDEyLjY1YTQgNCAwIDAgMC01LjkyNS00LjEyOCIgLz4KICA8cGF0aCBkPSJNMTMgMjJIN2E1IDUgMCAxIDEgNC45LTZIMTNhMyAzIDAgMCAxIDAgNloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-sun\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudSun: IconNode = [\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41' }],\n ['path', { d: 'M20 12h2' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41' }],\n ['path', { d: 'M15.947 12.65a4 4 0 0 0-5.925-4.128' }],\n ['path', { d: 'M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z' }],\n];\n\nexport default CloudSun;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-sync\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41IiAvPgogIDxwYXRoIGQ9Ik0xNyAyMnYtNGgtNCIgLz4KICA8cGF0aCBkPSJNMjAuOTk2IDE1LjI1MUE0LjUgNC41IDAgMCAwIDE3LjQ5NSA4aC0xLjc5YTcgNyAwIDEgMC0xMi43MDkgNS42MDciIC8+CiAgPHBhdGggZD0iTTcgMTB2NGg0IiAvPgogIDxwYXRoIGQ9Im03IDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-sync\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudSync: IconNode = [\n ['path', { d: 'm17 18-1.535 1.605a5 5 0 0 1-8-1.5' }],\n ['path', { d: 'M17 22v-4h-4' }],\n ['path', { d: 'M20.996 15.251A4.5 4.5 0 0 0 17.495 8h-1.79a7 7 0 1 0-12.709 5.607' }],\n ['path', { d: 'M7 10v4h4' }],\n ['path', { d: 'm7 14 1.535-1.605a5 5 0 0 1 8 1.5' }],\n];\n\nexport default CloudSync;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud-upload\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2OCIgLz4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJtOCAxNyA0LTQgNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-upload\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CloudUpload: IconNode = [\n ['path', { d: 'M12 13v8' }],\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242' }],\n ['path', { d: 'm8 17 4-4 4 4' }],\n];\n\nexport default CloudUpload;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloud\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuNSAxOUg5YTcgNyAwIDEgMSA2LjcxLTloMS43OWE0LjUgNC41IDAgMSAxIDAgOVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cloud: IconNode = [['path', { d: 'M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z' }]];\n\nexport default Cloud;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cloudy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuNSAxMmExIDEgMCAxIDEgMCA5SDkuMDA2YTcgNyAwIDEgMSA2LjcwMi05eiIgLz4KICA8cGF0aCBkPSJNMjEuODMyIDlBMyAzIDAgMCAwIDE5IDdoLTIuMjA3YTUuNSA1LjUgMCAwIDAtMTAuNzIuNjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloudy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cloudy: IconNode = [\n ['path', { d: 'M17.5 12a1 1 0 1 1 0 9H9.006a7 7 0 1 1 6.702-9z' }],\n ['path', { d: 'M21.832 9A3 3 0 0 0 19 7h-2.207a5.5 5.5 0 0 0-10.72.61' }],\n];\n\nexport default Cloudy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name clover\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuMTcgNy44MyAyIDIyIiAvPgogIDxwYXRoIGQ9Ik00LjAyIDEyYTIuODI3IDIuODI3IDAgMSAxIDMuODEtNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiA0LjAyYTIuODI3IDIuODI3IDAgMSAxIDQuMTcgMy44MUEyLjgyNyAyLjgyNyAwIDEgMSAxOS45OCAxMmEyLjgyNyAyLjgyNyAwIDEgMS0zLjgxIDQuMTdBMi44MjcgMi44MjcgMCAxIDEgMTIgMTkuOThhMi44MjcgMi44MjcgMCAxIDEtNC4xNy0zLjgxQTEgMSAwIDEgMSA0IDEyIiAvPgogIDxwYXRoIGQ9Im03LjgzIDcuODMgOC4zNCA4LjM0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/clover\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Clover: IconNode = [\n ['path', { d: 'M16.17 7.83 2 22' }],\n [\n 'path',\n {\n d: 'M4.02 12a2.827 2.827 0 1 1 3.81-4.17A2.827 2.827 0 1 1 12 4.02a2.827 2.827 0 1 1 4.17 3.81A2.827 2.827 0 1 1 19.98 12a2.827 2.827 0 1 1-3.81 4.17A2.827 2.827 0 1 1 12 19.98a2.827 2.827 0 1 1-4.17-3.81A1 1 0 1 1 4 12',\n },\n ],\n ['path', { d: 'm7.83 7.83 8.34 8.34' }],\n];\n\nexport default Clover;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name club\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuMjggOS4wNWE1LjUgNS41IDAgMSAwLTEwLjU2IDBBNS41IDUuNSAwIDEgMCAxMiAxNy42NmE1LjUgNS41IDAgMSAwIDUuMjgtOC42WiIgLz4KICA8cGF0aCBkPSJNMTIgMTcuNjZMMTIgMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/club\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Club: IconNode = [\n [\n 'path',\n { d: 'M17.28 9.05a5.5 5.5 0 1 0-10.56 0A5.5 5.5 0 1 0 12 17.66a5.5 5.5 0 1 0 5.28-8.6Z' },\n ],\n ['path', { d: 'M12 17.66L12 22' }],\n];\n\nexport default Club;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name code-xml\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJtNiA4LTQgNCA0IDQiIC8+CiAgPHBhdGggZD0ibTE0LjUgNC01IDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/code-xml\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CodeXml: IconNode = [\n ['path', { d: 'm18 16 4-4-4-4' }],\n ['path', { d: 'm6 8-4 4 4 4' }],\n ['path', { d: 'm14.5 4-5 16' }],\n];\n\nexport default CodeXml;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTggNi02LTYtNiIgLz4KICA8cGF0aCBkPSJtOCA2LTYgNiA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Code: IconNode = [\n ['path', { d: 'm16 18 6-6-6-6' }],\n ['path', { d: 'm8 6-6 6 6 6' }],\n];\n\nexport default Code;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name codepen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjEyIDIgMjIgOC41IDIyIDE1LjUgMTIgMjIgMiAxNS41IDIgOC41IDEyIDIiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSIyMiIgeTI9IjE1LjUiIC8+CiAgPHBvbHlsaW5lIHBvaW50cz0iMjIgOC41IDEyIDE1LjUgMiA4LjUiIC8+CiAgPHBvbHlsaW5lIHBvaW50cz0iMiAxNS41IDEyIDguNSAyMiAxNS41IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMiIgeTI9IjguNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/codepen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=codepen instead. This icon will be removed in v1.0\n */\nconst Codepen: IconNode = [\n ['polygon', { points: '12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '15.5' }],\n ['polyline', { points: '22 8.5 12 15.5 2 8.5' }],\n ['polyline', { points: '2 15.5 12 8.5 22 15.5' }],\n ['line', { x1: '12', x2: '12', y1: '2', y2: '8.5' }],\n];\n\nexport default Codepen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name codesandbox\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjcuNSA0LjIxIDEyIDYuODEgMTYuNSA0LjIxIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjcuNSAxOS43OSA3LjUgMTQuNiAzIDEyIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjIxIDEyIDE2LjUgMTQuNiAxNi41IDE5Ljc5IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjcgNi45NiAxMiAxMi4wMSAyMC43MyA2Ljk2IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIuMDgiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/codesandbox\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=codesandbox instead. This icon will be removed in v1.0\n */\nconst Codesandbox: IconNode = [\n [\n 'path',\n {\n d: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',\n },\n ],\n ['polyline', { points: '7.5 4.21 12 6.81 16.5 4.21' }],\n ['polyline', { points: '7.5 19.79 7.5 14.6 3 12' }],\n ['polyline', { points: '21 12 16.5 14.6 16.5 19.79' }],\n ['polyline', { points: '3.27 6.96 12 12.01 20.73 6.96' }],\n ['line', { x1: '12', x2: '12', y1: '22.08', y2: '12' }],\n];\n\nexport default Codesandbox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name coffee\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNCAydjIiIC8+CiAgPHBhdGggZD0iTTE2IDhhMSAxIDAgMCAxIDEgMXY4YTQgNCAwIDAgMS00IDRIN2E0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMWgxNGE0IDQgMCAxIDEgMCA4aC0xIiAvPgogIDxwYXRoIGQ9Ik02IDJ2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/coffee\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Coffee: IconNode = [\n ['path', { d: 'M10 2v2' }],\n ['path', { d: 'M14 2v2' }],\n [\n 'path',\n {\n d: 'M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1',\n },\n ],\n ['path', { d: 'M6 2v2' }],\n];\n\nexport default Coffee;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTAuMjcgNyAzLjM0IiAvPgogIDxwYXRoIGQ9Im0xMSAxMy43My00IDYuOTMiIC8+CiAgPHBhdGggZD0iTTEyIDIydi0yIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTE0IDEyaDgiIC8+CiAgPHBhdGggZD0ibTE3IDIwLjY2LTEtMS43MyIgLz4KICA8cGF0aCBkPSJtMTcgMy4zNC0xIDEuNzMiIC8+CiAgPHBhdGggZD0iTTIgMTJoMiIgLz4KICA8cGF0aCBkPSJtMjAuNjYgMTctMS43My0xIiAvPgogIDxwYXRoIGQ9Im0yMC42NiA3LTEuNzMgMSIgLz4KICA8cGF0aCBkPSJtMy4zNCAxNyAxLjczLTEiIC8+CiAgPHBhdGggZD0ibTMuMzQgNyAxLjczIDEiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cog: IconNode = [\n ['path', { d: 'M11 10.27 7 3.34' }],\n ['path', { d: 'm11 13.73-4 6.93' }],\n ['path', { d: 'M12 22v-2' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M14 12h8' }],\n ['path', { d: 'm17 20.66-1-1.73' }],\n ['path', { d: 'm17 3.34-1 1.73' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'm20.66 17-1.73-1' }],\n ['path', { d: 'm20.66 7-1.73 1' }],\n ['path', { d: 'm3.34 17 1.73-1' }],\n ['path', { d: 'm3.34 7 1.73 1' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['circle', { cx: '12', cy: '12', r: '8' }],\n];\n\nexport default Cog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name coins\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNiIgLz4KICA8cGF0aCBkPSJNMTguMDkgMTAuMzdBNiA2IDAgMSAxIDEwLjM0IDE4IiAvPgogIDxwYXRoIGQ9Ik03IDZoMXY0IiAvPgogIDxwYXRoIGQ9Im0xNi43MSAxMy44OC43LjcxLTIuODIgMi44MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/coins\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Coins: IconNode = [\n ['circle', { cx: '8', cy: '8', r: '6' }],\n ['path', { d: 'M18.09 10.37A6 6 0 1 1 10.34 18' }],\n ['path', { d: 'M7 6h1v4' }],\n ['path', { d: 'm16.71 13.88.7.71-2.82 2.82' }],\n];\n\nexport default Coins;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name columns-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/columns-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Columns2: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M12 3v18' }],\n];\n\nexport default Columns2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name columns-3-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NS41IiAvPgogIDxwYXRoIGQ9Im0xNC4zIDE5LjYgMS0uNCIgLz4KICA8cGF0aCBkPSJNMTUgM3Y3LjUiIC8+CiAgPHBhdGggZD0ibTE1LjIgMTYuOS0uOS0uMyIgLz4KICA8cGF0aCBkPSJtMTYuNiAyMS43LjMtLjkiIC8+CiAgPHBhdGggZD0ibTE2LjggMTUuMy0uNC0xIiAvPgogIDxwYXRoIGQ9Im0xOS4xIDE1LjIuMy0uOSIgLz4KICA8cGF0aCBkPSJtMTkuNiAyMS43LS40LTEiIC8+CiAgPHBhdGggZD0ibTIwLjcgMTYuOCAxLS40IiAvPgogIDxwYXRoIGQ9Im0yMS43IDE5LjQtLjktLjMiIC8+CiAgPHBhdGggZD0iTTkgM3YxOCIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/columns-3-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Columns3Cog: IconNode = [\n ['path', { d: 'M10.5 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.5' }],\n ['path', { d: 'm14.3 19.6 1-.4' }],\n ['path', { d: 'M15 3v7.5' }],\n ['path', { d: 'm15.2 16.9-.9-.3' }],\n ['path', { d: 'm16.6 21.7.3-.9' }],\n ['path', { d: 'm16.8 15.3-.4-1' }],\n ['path', { d: 'm19.1 15.2.3-.9' }],\n ['path', { d: 'm19.6 21.7-.4-1' }],\n ['path', { d: 'm20.7 16.8 1-.4' }],\n ['path', { d: 'm21.7 19.4-.9-.3' }],\n ['path', { d: 'M9 3v18' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default Columns3Cog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name columns-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+CiAgPHBhdGggZD0iTTE1IDN2MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/columns-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Columns3: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 3v18' }],\n ['path', { d: 'M15 3v18' }],\n];\n\nexport default Columns3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name columns-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03LjUgM3YxOCIgLz4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cGF0aCBkPSJNMTYuNSAzdjE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/columns-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Columns4: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7.5 3v18' }],\n ['path', { d: 'M12 3v18' }],\n ['path', { d: 'M16.5 3v18' }],\n];\n\nexport default Columns4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name combine\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSIgLz4KICA8cGF0aCBkPSJNMTkgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSIgLz4KICA8cGF0aCBkPSJtNyAxNSAzIDMiIC8+CiAgPHBhdGggZD0ibTcgMjEgMy0zSDVhMiAyIDAgMCAxLTItMnYtMiIgLz4KICA8cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/combine\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Combine: IconNode = [\n ['path', { d: 'M14 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1' }],\n ['path', { d: 'M19 3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1' }],\n ['path', { d: 'm7 15 3 3' }],\n ['path', { d: 'm7 21 3-3H5a2 2 0 0 1-2-2v-2' }],\n ['rect', { x: '14', y: '14', width: '7', height: '7', rx: '1' }],\n ['rect', { x: '3', y: '3', width: '7', height: '7', rx: '1' }],\n];\n\nexport default Combine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name command\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNnYxMmEzIDMgMCAxIDAgMy0zSDZhMyAzIDAgMSAwIDMgM1Y2YTMgMyAwIDEgMC0zIDNoMTJhMyAzIDAgMSAwLTMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/command\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Command: IconNode = [\n ['path', { d: 'M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3' }],\n];\n\nexport default Command;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name compass\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYuMjQgNy43Ni0xLjgwNCA1LjQxMWEyIDIgMCAwIDEtMS4yNjUgMS4yNjVMNy43NiAxNi4yNGwxLjgwNC01LjQxMWEyIDIgMCAwIDEgMS4yNjUtMS4yNjV6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/compass\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Compass: IconNode = [\n [\n 'path',\n {\n d: 'm16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Compass;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name component\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNTM2IDExLjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NiAyLjM3N2ExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3N2ExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6IiAvPgogIDxwYXRoIGQ9Ik0yLjI5NyAxMS4yOTNhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzcgMi4zNzdhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzdhMSAxIDAgMCAwIDAtMS40MTRMNi4wODggOC45MTZhMSAxIDAgMCAwLTEuNDE0IDB6IiAvPgogIDxwYXRoIGQ9Ik04LjkxNiAxNy45MTJhMSAxIDAgMCAwIDAgMS40MTVsMi4zNzcgMi4zNzZhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzZhMSAxIDAgMCAwIDAtMS40MTVsLTIuMzc3LTIuMzc2YTEgMSAwIDAgMC0xLjQxNCAweiIgLz4KICA8cGF0aCBkPSJNOC45MTYgNC42NzRhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzcgMi4zNzZhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzZhMSAxIDAgMCAwIDAtMS40MTRsLTIuMzc3LTIuMzc3YTEgMSAwIDAgMC0xLjQxNCAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/component\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Component: IconNode = [\n [\n 'path',\n {\n d: 'M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M2.297 11.293a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M8.916 17.912a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z',\n },\n ],\n];\n\nexport default Component;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name computer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iOCIgeD0iNSIgeT0iMiIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHg9IjIiIHk9IjE0IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNiAxOGgyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/computer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Computer: IconNode = [\n ['rect', { width: '14', height: '8', x: '5', y: '2', rx: '2' }],\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2' }],\n ['path', { d: 'M6 18h2' }],\n ['path', { d: 'M12 18h6' }],\n];\n\nexport default Computer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name concierge-bell\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAyMGExIDEgMCAwIDEtMS0xdi0xYTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFaIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNmE4IDggMCAxIDAtMTYgMCIgLz4KICA8cGF0aCBkPSJNMTIgNHY0IiAvPgogIDxwYXRoIGQ9Ik0xMCA0aDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/concierge-bell\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ConciergeBell: IconNode = [\n ['path', { d: 'M3 20a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1Z' }],\n ['path', { d: 'M20 16a8 8 0 1 0-16 0' }],\n ['path', { d: 'M12 4v4' }],\n ['path', { d: 'M10 4h4' }],\n];\n\nexport default ConciergeBell;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjAuOSAxOC41NS04LTE1Ljk4YTEgMSAwIDAgMC0xLjggMGwtOCAxNS45OCIgLz4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSIxOSIgcng9IjkiIHJ5PSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cone: IconNode = [\n ['path', { d: 'm20.9 18.55-8-15.98a1 1 0 0 0-1.8 0l-8 15.98' }],\n ['ellipse', { cx: '12', cy: '19', rx: '9', ry: '3' }],\n];\n\nexport default Cone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name contact-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNy45MTUgMjJhNiA2IDAgMCAwLTEyIDAiIC8+CiAgPHBhdGggZD0iTTggMnYyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjQiIC8+CiAgPHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/contact-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ContactRound: IconNode = [\n ['path', { d: 'M16 2v2' }],\n ['path', { d: 'M17.915 22a6 6 0 0 0-12 0' }],\n ['path', { d: 'M8 2v2' }],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['rect', { x: '3', y: '4', width: '18', height: '18', rx: '2' }],\n];\n\nexport default ContactRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name construction\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTE3IDE0djciIC8+CiAgPHBhdGggZD0iTTcgMTR2NyIgLz4KICA8cGF0aCBkPSJNMTcgM3YzIiAvPgogIDxwYXRoIGQ9Ik03IDN2MyIgLz4KICA8cGF0aCBkPSJNMTAgMTQgMi4zIDYuMyIgLz4KICA8cGF0aCBkPSJtMTQgNiA3LjcgNy43IiAvPgogIDxwYXRoIGQ9Im04IDYgOCA4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/construction\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Construction: IconNode = [\n ['rect', { x: '2', y: '6', width: '20', height: '8', rx: '1' }],\n ['path', { d: 'M17 14v7' }],\n ['path', { d: 'M7 14v7' }],\n ['path', { d: 'M17 3v3' }],\n ['path', { d: 'M7 3v3' }],\n ['path', { d: 'M10 14 2.3 6.3' }],\n ['path', { d: 'm14 6 7.7 7.7' }],\n ['path', { d: 'm8 6 8 8' }],\n];\n\nexport default Construction;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name contact\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMnYyIiAvPgogIDxwYXRoIGQ9Ik03IDIydi0yYTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjIiIC8+CiAgPHBhdGggZD0iTTggMnYyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTEiIHI9IjMiIC8+CiAgPHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/contact\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Contact: IconNode = [\n ['path', { d: 'M16 2v2' }],\n ['path', { d: 'M7 22v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M8 2v2' }],\n ['circle', { cx: '12', cy: '11', r: '3' }],\n ['rect', { x: '3', y: '4', width: '18', height: '18', rx: '2' }],\n];\n\nexport default Contact;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name container\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgNy43YzAtLjYtLjQtMS4yLS44LTEuNWwtNi4zLTMuOWExLjcyIDEuNzIgMCAwIDAtMS43IDBsLTEwLjMgNmMtLjUuMi0uOS44LS45IDEuNHY2LjZjMCAuNS40IDEuMi44IDEuNWw2LjMgMy45YTEuNzIgMS43MiAwIDAgMCAxLjcgMGwxMC4zLTZjLjUtLjMuOS0xIC45LTEuNVoiIC8+CiAgPHBhdGggZD0iTTEwIDIxLjlWMTRMMi4xIDkuMSIgLz4KICA8cGF0aCBkPSJtMTAgMTQgMTEuOS02LjkiIC8+CiAgPHBhdGggZD0iTTE0IDE5Ljh2LTguMSIgLz4KICA8cGF0aCBkPSJNMTggMTcuNVY5LjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/container\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Container: IconNode = [\n [\n 'path',\n {\n d: 'M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z',\n },\n ],\n ['path', { d: 'M10 21.9V14L2.1 9.1' }],\n ['path', { d: 'm10 14 11.9-6.9' }],\n ['path', { d: 'M14 19.8v-8.1' }],\n ['path', { d: 'M18 17.5V9.4' }],\n];\n\nexport default Container;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cookie\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTUiIC8+CiAgPHBhdGggZD0iTTguNSA4LjV2LjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNS41di4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTJ2LjAxIiAvPgogIDxwYXRoIGQ9Ik0xMSAxN3YuMDEiIC8+CiAgPHBhdGggZD0iTTcgMTR2LjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cookie\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cookie: IconNode = [\n ['path', { d: 'M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5' }],\n ['path', { d: 'M8.5 8.5v.01' }],\n ['path', { d: 'M16 15.5v.01' }],\n ['path', { d: 'M12 12v.01' }],\n ['path', { d: 'M11 17v.01' }],\n ['path', { d: 'M7 14v.01' }],\n];\n\nexport default Cookie;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name contrast\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMThhNiA2IDAgMCAwIDAtMTJ2MTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/contrast\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Contrast: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 18a6 6 0 0 0 0-12v12z' }],\n];\n\nexport default Contrast;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cooking-pot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KICA8cGF0aCBkPSJNMjAgMTJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCIgLz4KICA8cGF0aCBkPSJtNCA4IDE2LTQiIC8+CiAgPHBhdGggZD0ibTguODYgNi43OC0uNDUtMS44MWEyIDIgMCAwIDEgMS40NS0yLjQzbDEuOTQtLjQ4YTIgMiAwIDAgMSAyLjQzIDEuNDZsLjQ1IDEuOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cooking-pot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CookingPot: IconNode = [\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8' }],\n ['path', { d: 'm4 8 16-4' }],\n ['path', { d: 'm8.86 6.78-.45-1.81a2 2 0 0 1 1.45-2.43l1.94-.48a2 2 0 0 1 2.43 1.46l.45 1.8' }],\n];\n\nexport default CookingPot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTUgMiAyIDQtNCIgLz4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CopyCheck: IconNode = [\n ['path', { d: 'm12 15 2 2 4-4' }],\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default CopyCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxOCIgeTE9IjE1IiB5Mj0iMTUiIC8+CiAgPHJlY3Qgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB4PSI4IiB5PSI4IiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/copy-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CopyMinus: IconNode = [\n ['line', { x1: '12', x2: '18', y1: '15', y2: '15' }],\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default CopyMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTUiIHgyPSIxNSIgeTE9IjEyIiB5Mj0iMTgiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTgiIHkxPSIxNSIgeTI9IjE1IiAvPgogIDxyZWN0IHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgeD0iOCIgeT0iOCIgcng9IjIiIHJ5PSIyIiAvPgogIDxwYXRoIGQ9Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/copy-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CopyPlus: IconNode = [\n ['line', { x1: '15', x2: '15', y1: '12', y2: '18' }],\n ['line', { x1: '12', x2: '18', y1: '15', y2: '15' }],\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default CopyPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy-slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxOCIgeTE9IjE4IiB5Mj0iMTIiIC8+CiAgPHJlY3Qgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB4PSI4IiB5PSI4IiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/copy-slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CopySlash: IconNode = [\n ['line', { x1: '12', x2: '18', y1: '18', y2: '12' }],\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default CopySlash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxOCIgeTE9IjEyIiB5Mj0iMTgiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTgiIHkxPSIxOCIgeTI9IjEyIiAvPgogIDxyZWN0IHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgeD0iOCIgeT0iOCIgcng9IjIiIHJ5PSIyIiAvPgogIDxwYXRoIGQ9Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/copy-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CopyX: IconNode = [\n ['line', { x1: '12', x2: '18', y1: '12', y2: '18' }],\n ['line', { x1: '12', x2: '18', y1: '18', y2: '12' }],\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default CopyX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Copy: IconNode = [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' }],\n];\n\nexport default Copy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copyleft\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOS4xNyAxNC44M2E0IDQgMCAxIDAgMC01LjY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copyleft\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Copyleft: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M9.17 14.83a4 4 0 1 0 0-5.66' }],\n];\n\nexport default Copyleft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name copyright\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTQuODMgMTQuODNhNCA0IDAgMSAxIDAtNS42NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/copyright\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Copyright: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M14.83 14.83a4 4 0 1 1 0-5.66' }],\n];\n\nexport default Copyright;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCIgLz4KICA8cGF0aCBkPSJtOSAxMC01IDUgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/corner-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerDownLeft: IconNode = [\n ['path', { d: 'M20 4v7a4 4 0 0 1-4 4H4' }],\n ['path', { d: 'm9 10-5 5 5 5' }],\n];\n\nexport default CornerDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTAgNSA1LTUgNSIgLz4KICA8cGF0aCBkPSJNNCA0djdhNCA0IDAgMCAwIDQgNGgxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/corner-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerDownRight: IconNode = [\n ['path', { d: 'm15 10 5 5-5 5' }],\n ['path', { d: 'M4 4v7a4 4 0 0 0 4 4h12' }],\n];\n\nexport default CornerDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-left-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTUtNSA1LTUtNSIgLz4KICA8cGF0aCBkPSJNMjAgNGgtN2E0IDQgMCAwIDAtNCA0djEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/corner-left-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerLeftDown: IconNode = [\n ['path', { d: 'm14 15-5 5-5-5' }],\n ['path', { d: 'M20 4h-7a4 4 0 0 0-4 4v12' }],\n];\n\nexport default CornerLeftDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-left-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgOSA5IDQgNCA5IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGgtN2E0IDQgMCAwIDEtNC00VjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/corner-left-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerLeftUp: IconNode = [\n ['path', { d: 'M14 9 9 4 4 9' }],\n ['path', { d: 'M20 20h-7a4 4 0 0 1-4-4V4' }],\n];\n\nexport default CornerLeftUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-right-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTUgNSA1IDUtNSIgLz4KICA8cGF0aCBkPSJNNCA0aDdhNCA0IDAgMCAxIDQgNHYxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/corner-right-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerRightDown: IconNode = [\n ['path', { d: 'm10 15 5 5 5-5' }],\n ['path', { d: 'M4 4h7a4 4 0 0 1 4 4v12' }],\n];\n\nexport default CornerRightDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-right-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgOSA1LTUgNSA1IiAvPgogIDxwYXRoIGQ9Ik00IDIwaDdhNCA0IDAgMCAwIDQtNFY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/corner-right-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerRightUp: IconNode = [\n ['path', { d: 'm10 9 5-5 5 5' }],\n ['path', { d: 'M4 20h7a4 4 0 0 0 4-4V4' }],\n];\n\nexport default CornerRightUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjB2LTdhNCA0IDAgMCAwLTQtNEg0IiAvPgogIDxwYXRoIGQ9Ik05IDE0IDQgOWw1LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/corner-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerUpLeft: IconNode = [\n ['path', { d: 'M20 20v-7a4 4 0 0 0-4-4H4' }],\n ['path', { d: 'M9 14 4 9l5-5' }],\n];\n\nexport default CornerUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name corner-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTQgNS01LTUtNSIgLz4KICA8cGF0aCBkPSJNNCAyMHYtN2E0IDQgMCAwIDEgNC00aDEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/corner-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CornerUpRight: IconNode = [\n ['path', { d: 'm15 14 5-5-5-5' }],\n ['path', { d: 'M4 20v-7a4 4 0 0 1 4-4h12' }],\n];\n\nexport default CornerUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cpu\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjB2MiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNyAyMHYyIiAvPgogIDxwYXRoIGQ9Ik0xNyAydjIiIC8+CiAgPHBhdGggZD0iTTIgMTJoMiIgLz4KICA8cGF0aCBkPSJNMiAxN2gyIiAvPgogIDxwYXRoIGQ9Ik0yIDdoMiIgLz4KICA8cGF0aCBkPSJNMjAgMTJoMiIgLz4KICA8cGF0aCBkPSJNMjAgMTdoMiIgLz4KICA8cGF0aCBkPSJNMjAgN2gyIiAvPgogIDxwYXRoIGQ9Ik03IDIwdjIiIC8+CiAgPHBhdGggZD0iTTcgMnYyIiAvPgogIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgcng9IjIiIC8+CiAgPHJlY3QgeD0iOCIgeT0iOCIgd2lkdGg9IjgiIGhlaWdodD0iOCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cpu\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cpu: IconNode = [\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M17 20v2' }],\n ['path', { d: 'M17 2v2' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'M2 17h2' }],\n ['path', { d: 'M2 7h2' }],\n ['path', { d: 'M20 12h2' }],\n ['path', { d: 'M20 17h2' }],\n ['path', { d: 'M20 7h2' }],\n ['path', { d: 'M7 20v2' }],\n ['path', { d: 'M7 2v2' }],\n ['rect', { x: '4', y: '4', width: '16', height: '16', rx: '2' }],\n ['rect', { x: '8', y: '8', width: '8', height: '8', rx: '1' }],\n];\n\nexport default Cpu;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name creative-commons\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTAgOS4zYTIuOCAyLjggMCAwIDAtMy41IDEgMy4xIDMuMSAwIDAgMCAwIDMuNCAyLjcgMi43IDAgMCAwIDMuNSAxIiAvPgogIDxwYXRoIGQ9Ik0xNyA5LjNhMi44IDIuOCAwIDAgMC0zLjUgMSAzLjEgMy4xIDAgMCAwIDAgMy40IDIuNyAyLjcgMCAwIDAgMy41IDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/creative-commons\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CreativeCommons: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M10 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1' }],\n ['path', { d: 'M17 9.3a2.8 2.8 0 0 0-3.5 1 3.1 3.1 0 0 0 0 3.4 2.7 2.7 0 0 0 3.5 1' }],\n];\n\nexport default CreativeCommons;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name credit-card\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjUiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIxMCIgeTI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/credit-card\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CreditCard: IconNode = [\n ['rect', { width: '20', height: '14', x: '2', y: '5', rx: '2' }],\n ['line', { x1: '2', x2: '22', y1: '10', y2: '10' }],\n];\n\nexport default CreditCard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name croissant\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMiAxOEg0Ljc3NGExLjUgMS41IDAgMCAxLTEuMzUyLS45NyAxMSAxMSAwIDAgMSAuMTMyLTYuNDg3IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMC4yVjQuNzc0YTEuNSAxLjUgMCAwIDAtLjk3LTEuMzUyIDExIDExIDAgMCAwLTYuNDg2LjEzMiIgLz4KICA8cGF0aCBkPSJNMTggNWE0IDMgMCAwIDEgNCAzIDIgMiAwIDAgMS0yIDIgMTAgMTAgMCAwIDAtNS4xMzkgMS40MiIgLz4KICA8cGF0aCBkPSJNNSAxOGEzIDQgMCAwIDAgMyA0IDIgMiAwIDAgMCAyLTIgMTAgMTAgMCAwIDEgMS40Mi01LjE0IiAvPgogIDxwYXRoIGQ9Ik04LjcwOSAyLjU1NGExMCAxMCAwIDAgMC02LjE1NSA2LjE1NSAxLjUgMS41IDAgMCAwIC42NzYgMS42MjZsOS44MDcgNS40MmEyIDIgMCAwIDAgMi43MTgtMi43MThsLTUuNDItOS44MDdhMS41IDEuNSAwIDAgMC0xLjYyNi0uNjc2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/croissant\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Croissant: IconNode = [\n ['path', { d: 'M10.2 18H4.774a1.5 1.5 0 0 1-1.352-.97 11 11 0 0 1 .132-6.487' }],\n ['path', { d: 'M18 10.2V4.774a1.5 1.5 0 0 0-.97-1.352 11 11 0 0 0-6.486.132' }],\n ['path', { d: 'M18 5a4 3 0 0 1 4 3 2 2 0 0 1-2 2 10 10 0 0 0-5.139 1.42' }],\n ['path', { d: 'M5 18a3 4 0 0 0 3 4 2 2 0 0 0 2-2 10 10 0 0 1 1.42-5.14' }],\n [\n 'path',\n {\n d: 'M8.709 2.554a10 10 0 0 0-6.155 6.155 1.5 1.5 0 0 0 .676 1.626l9.807 5.42a2 2 0 0 0 2.718-2.718l-5.42-9.807a1.5 1.5 0 0 0-1.626-.676',\n },\n ],\n];\n\nexport default Croissant;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name crop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAydjE0YTIgMiAwIDAgMCAyIDJoMTQiIC8+CiAgPHBhdGggZD0iTTE4IDIyVjhhMiAyIDAgMCAwLTItMkgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/crop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Crop: IconNode = [\n ['path', { d: 'M6 2v14a2 2 0 0 0 2 2h14' }],\n ['path', { d: 'M18 22V8a2 2 0 0 0-2-2H2' }],\n];\n\nexport default Crop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cross\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA5YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDRhMSAxIDAgMCAxIDEgMXY0YTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi00YTEgMSAwIDAgMSAxLTFoNGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTRhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMS0xIDF6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cross\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cross: IconNode = [\n [\n 'path',\n {\n d: 'M4 9a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h4a1 1 0 0 1 1 1v4a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-4a1 1 0 0 1 1-1h4a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-4a1 1 0 0 1-1-1V4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4a1 1 0 0 1-1 1z',\n },\n ],\n];\n\nexport default Cross;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name crosshair\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iMjIiIHgyPSIxOCIgeTE9IjEyIiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjYiIHgyPSIyIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjYiIHkyPSIyIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/crosshair\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Crosshair: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['line', { x1: '22', x2: '18', y1: '12', y2: '12' }],\n ['line', { x1: '6', x2: '2', y1: '12', y2: '12' }],\n ['line', { x1: '12', x2: '12', y1: '6', y2: '2' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '18' }],\n];\n\nexport default Crosshair;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name crown\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNTYyIDMuMjY2YS41LjUgMCAwIDEgLjg3NiAwTDE1LjM5IDguODdhMSAxIDAgMCAwIDEuNTE2LjI5NEwyMS4xODMgNS41YS41LjUgMCAwIDEgLjc5OC41MTlsLTIuODM0IDEwLjI0NmExIDEgMCAwIDEtLjk1Ni43MzRINS44MWExIDEgMCAwIDEtLjk1Ny0uNzM0TDIuMDIgNi4wMmEuNS41IDAgMCAxIC43OTgtLjUxOWw0LjI3NiAzLjY2NGExIDEgMCAwIDAgMS41MTYtLjI5NHoiIC8+CiAgPHBhdGggZD0iTTUgMjFoMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/crown\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Crown: IconNode = [\n [\n 'path',\n {\n d: 'M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z',\n },\n ],\n ['path', { d: 'M5 21h14' }],\n];\n\nexport default Crown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cuboid\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuMTIgNi40LTYuMDUtNC4wNmEyIDIgMCAwIDAtMi4xNy0uMDVMMi45NSA4LjQxYTIgMiAwIDAgMC0uOTUgMS43djUuODJhMiAyIDAgMCAwIC44OCAxLjY2bDYuMDUgNC4wN2EyIDIgMCAwIDAgMi4xNy4wNWw5Ljk1LTYuMTJhMiAyIDAgMCAwIC45NS0xLjdWOC4wNmEyIDIgMCAwIDAtLjg4LTEuNjZaIiAvPgogIDxwYXRoIGQ9Ik0xMCAyMnYtOEwyLjI1IDkuMTUiIC8+CiAgPHBhdGggZD0ibTEwIDE0IDExLjc3LTYuODciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cuboid\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cuboid: IconNode = [\n [\n 'path',\n {\n d: 'm21.12 6.4-6.05-4.06a2 2 0 0 0-2.17-.05L2.95 8.41a2 2 0 0 0-.95 1.7v5.82a2 2 0 0 0 .88 1.66l6.05 4.07a2 2 0 0 0 2.17.05l9.95-6.12a2 2 0 0 0 .95-1.7V8.06a2 2 0 0 0-.88-1.66Z',\n },\n ],\n ['path', { d: 'M10 22v-8L2.25 9.15' }],\n ['path', { d: 'm10 14 11.77-6.87' }],\n];\n\nexport default Cuboid;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cup-soda\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA4IDEuNzUgMTIuMjhhMiAyIDAgMCAwIDIgMS43Mmg0LjU0YTIgMiAwIDAgMCAyLTEuNzJMMTggOCIgLz4KICA8cGF0aCBkPSJNNSA4aDE0IiAvPgogIDxwYXRoIGQ9Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NyA2LjQ3IDAgMCAwIDUgMCIgLz4KICA8cGF0aCBkPSJtMTIgOCAxLTZoMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cup-soda\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst CupSoda: IconNode = [\n ['path', { d: 'm6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8' }],\n ['path', { d: 'M5 8h14' }],\n ['path', { d: 'M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0' }],\n ['path', { d: 'm12 8 1-6h2' }],\n];\n\nexport default CupSoda;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name cylinder\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSI1IiByeD0iOSIgcnk9IjMiIC8+CiAgPHBhdGggZD0iTTMgNXYxNGE5IDMgMCAwIDAgMTggMFY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cylinder\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Cylinder: IconNode = [\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3' }],\n ['path', { d: 'M3 5v14a9 3 0 0 0 18 0V5' }],\n];\n\nexport default Cylinder;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name currency\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiAvPgogIDxsaW5lIHgxPSIzIiB4Mj0iNiIgeTE9IjMiIHkyPSI2IiAvPgogIDxsaW5lIHgxPSIyMSIgeDI9IjE4IiB5MT0iMyIgeTI9IjYiIC8+CiAgPGxpbmUgeDE9IjMiIHgyPSI2IiB5MT0iMjEiIHkyPSIxOCIgLz4KICA8bGluZSB4MT0iMjEiIHgyPSIxOCIgeTE9IjIxIiB5Mj0iMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/currency\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Currency: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '8' }],\n ['line', { x1: '3', x2: '6', y1: '3', y2: '6' }],\n ['line', { x1: '21', x2: '18', y1: '3', y2: '6' }],\n ['line', { x1: '3', x2: '6', y1: '21', y2: '18' }],\n ['line', { x1: '21', x2: '18', y1: '21', y2: '18' }],\n];\n\nexport default Currency;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name database-backup\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSI1IiByeD0iOSIgcnk9IjMiIC8+CiAgPHBhdGggZD0iTTMgMTJhOSAzIDAgMCAwIDUgMi42OSIgLz4KICA8cGF0aCBkPSJNMjEgOS4zVjUiIC8+CiAgPHBhdGggZD0iTTMgNXYxNGE5IDMgMCAwIDAgNi40NyAyLjg4IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnY0aDQiIC8+CiAgPHBhdGggZD0iTTEzIDIwYTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTIgMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/database-backup\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DatabaseBackup: IconNode = [\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3' }],\n ['path', { d: 'M3 12a9 3 0 0 0 5 2.69' }],\n ['path', { d: 'M21 9.3V5' }],\n ['path', { d: 'M3 5v14a9 3 0 0 0 6.47 2.88' }],\n ['path', { d: 'M12 12v4h4' }],\n ['path', { d: 'M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16' }],\n];\n\nexport default DatabaseBackup;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dam\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTEuMzFjMS4xNy41NiAxLjU0IDEuNjkgMy41IDEuNjkgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIiAvPgogIDxwYXRoIGQ9Ik0xMS43NSAxOGMuMzUuNSAxLjQ1IDEgMi43NSAxIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSIgLz4KICA8cGF0aCBkPSJNMiAxMGg0IiAvPgogIDxwYXRoIGQ9Ik0yIDE0aDQiIC8+CiAgPHBhdGggZD0iTTIgMThoNCIgLz4KICA8cGF0aCBkPSJNMiA2aDQiIC8+CiAgPHBhdGggZD0iTTcgM2ExIDEgMCAwIDAtMSAxdjE2YTEgMSAwIDAgMCAxIDFoNGExIDEgMCAwIDAgMS0xTDEwIDRhMSAxIDAgMCAwLTEtMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dam\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dam: IconNode = [\n ['path', { d: 'M11 11.31c1.17.56 1.54 1.69 3.5 1.69 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1' }],\n ['path', { d: 'M11.75 18c.35.5 1.45 1 2.75 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1' }],\n ['path', { d: 'M2 10h4' }],\n ['path', { d: 'M2 14h4' }],\n ['path', { d: 'M2 18h4' }],\n ['path', { d: 'M2 6h4' }],\n ['path', { d: 'M7 3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1L10 4a1 1 0 0 0-1-1z' }],\n];\n\nexport default Dam;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name database-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTEuNjkzVjUiIC8+CiAgPHBhdGggZD0ibTIyIDIyLTEuODc1LTEuODc1IiAvPgogIDxwYXRoIGQ9Ik0zIDEyYTkgMyAwIDAgMCA4LjY5NyAyLjk5OCIgLz4KICA8cGF0aCBkPSJNMyA1djE0YTkgMyAwIDAgMCA5LjI4IDIuOTk5IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+CiAgPGVsbGlwc2UgY3g9IjEyIiBjeT0iNSIgcng9IjkiIHJ5PSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/database-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DatabaseSearch: IconNode = [\n ['path', { d: 'M21 11.693V5' }],\n ['path', { d: 'm22 22-1.875-1.875' }],\n ['path', { d: 'M3 12a9 3 0 0 0 8.697 2.998' }],\n ['path', { d: 'M3 5v14a9 3 0 0 0 9.28 2.999' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3' }],\n];\n\nexport default DatabaseSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name database-zap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSI1IiByeD0iOSIgcnk9IjMiIC8+CiAgPHBhdGggZD0iTTMgNVYxOUE5IDMgMCAwIDAgMTUgMjEuODQiIC8+CiAgPHBhdGggZD0iTTIxIDVWOCIgLz4KICA8cGF0aCBkPSJNMjEgMTJMMTggMTdIMjJMMTkgMjIiIC8+CiAgPHBhdGggZD0iTTMgMTJBOSAzIDAgMCAwIDE0LjU5IDE0Ljg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/database-zap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DatabaseZap: IconNode = [\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3' }],\n ['path', { d: 'M3 5V19A9 3 0 0 0 15 21.84' }],\n ['path', { d: 'M21 5V8' }],\n ['path', { d: 'M21 12L18 17H22L19 22' }],\n ['path', { d: 'M3 12A9 3 0 0 0 14.59 14.87' }],\n];\n\nexport default DatabaseZap;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name database\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSI1IiByeD0iOSIgcnk9IjMiIC8+CiAgPHBhdGggZD0iTTMgNVYxOUE5IDMgMCAwIDAgMjEgMTlWNSIgLz4KICA8cGF0aCBkPSJNMyAxMkE5IDMgMCAwIDAgMjEgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/database\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Database: IconNode = [\n ['ellipse', { cx: '12', cy: '5', rx: '9', ry: '3' }],\n ['path', { d: 'M3 5V19A9 3 0 0 0 21 19V5' }],\n ['path', { d: 'M3 12A9 3 0 0 0 21 12' }],\n];\n\nexport default Database;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name decimals-arrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMgMjEtMy0zIDMtMyIgLz4KICA8cGF0aCBkPSJNMjAgMThIMTAiIC8+CiAgPHBhdGggZD0iTTMgMTFoLjAxIiAvPgogIDxyZWN0IHg9IjYiIHk9IjMiIHdpZHRoPSI1IiBoZWlnaHQ9IjgiIHJ4PSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/decimals-arrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DecimalsArrowLeft: IconNode = [\n ['path', { d: 'm13 21-3-3 3-3' }],\n ['path', { d: 'M20 18H10' }],\n ['path', { d: 'M3 11h.01' }],\n ['rect', { x: '6', y: '3', width: '5', height: '8', rx: '2.5' }],\n];\n\nexport default DecimalsArrowLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name decimals-arrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMThoMTAiIC8+CiAgPHBhdGggZD0ibTE3IDIxIDMtMy0zLTMiIC8+CiAgPHBhdGggZD0iTTMgMTFoLjAxIiAvPgogIDxyZWN0IHg9IjE1IiB5PSIzIiB3aWR0aD0iNSIgaGVpZ2h0PSI4IiByeD0iMi41IiAvPgogIDxyZWN0IHg9IjYiIHk9IjMiIHdpZHRoPSI1IiBoZWlnaHQ9IjgiIHJ4PSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/decimals-arrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DecimalsArrowRight: IconNode = [\n ['path', { d: 'M10 18h10' }],\n ['path', { d: 'm17 21 3-3-3-3' }],\n ['path', { d: 'M3 11h.01' }],\n ['rect', { x: '15', y: '3', width: '5', height: '8', rx: '2.5' }],\n ['rect', { x: '6', y: '3', width: '5', height: '8', rx: '2.5' }],\n];\n\nexport default DecimalsArrowRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name delete\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNWEyIDIgMCAwIDAtMS4zNDQuNTE5bC02LjMyOCA1Ljc0YTEgMSAwIDAgMCAwIDEuNDgxbDYuMzI4IDUuNzQxQTIgMiAwIDAgMCAxMCAxOWgxMGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMnoiIC8+CiAgPHBhdGggZD0ibTEyIDkgNiA2IiAvPgogIDxwYXRoIGQ9Im0xOCA5LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/delete\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Delete: IconNode = [\n [\n 'path',\n {\n d: 'M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z',\n },\n ],\n ['path', { d: 'm12 9 6 6' }],\n ['path', { d: 'm18 9-6 6' }],\n];\n\nexport default Delete;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dessert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMTYyIDMuMTY3QTEwIDEwIDAgMCAwIDIgMTNhMiAyIDAgMCAwIDQgMHYtMWEyIDIgMCAwIDEgNCAwdjRhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAwIDQtLjAwNiAxMCAxMCAwIDAgMC04LjE2MS05LjgyNiIgLz4KICA8cGF0aCBkPSJNMjAuODA0IDE0Ljg2OWE5IDkgMCAwIDEtMTcuNjA4IDAiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI0IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dessert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dessert: IconNode = [\n [\n 'path',\n {\n d: 'M10.162 3.167A10 10 0 0 0 2 13a2 2 0 0 0 4 0v-1a2 2 0 0 1 4 0v4a2 2 0 0 0 4 0v-4a2 2 0 0 1 4 0v1a2 2 0 0 0 4-.006 10 10 0 0 0-8.161-9.826',\n },\n ],\n ['path', { d: 'M20.804 14.869a9 9 0 0 1-17.608 0' }],\n ['circle', { cx: '12', cy: '4', r: '2' }],\n];\n\nexport default Dessert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diameter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjE5IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSIyIiAvPgogIDxwYXRoIGQ9Ik02LjQ4IDMuNjZhMTAgMTAgMCAwIDEgMTMuODYgMTMuODYiIC8+CiAgPHBhdGggZD0ibTYuNDEgNi40MSAxMS4xOCAxMS4xOCIgLz4KICA8cGF0aCBkPSJNMy42NiA2LjQ4YTEwIDEwIDAgMCAwIDEzLjg2IDEzLjg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/diameter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Diameter: IconNode = [\n ['circle', { cx: '19', cy: '19', r: '2' }],\n ['circle', { cx: '5', cy: '5', r: '2' }],\n ['path', { d: 'M6.48 3.66a10 10 0 0 1 13.86 13.86' }],\n ['path', { d: 'm6.41 6.41 11.18 11.18' }],\n ['path', { d: 'M3.66 6.48a10 10 0 0 0 13.86 13.86' }],\n];\n\nexport default Diameter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diamond-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KPC9zdmc+) - https://lucide.dev/icons/diamond-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DiamondMinus: IconNode = [\n [\n 'path',\n {\n d: 'M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z',\n },\n ],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default DiamondMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diamond-percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMFoiIC8+CiAgPHBhdGggZD0iTTkuMiA5LjJoLjAxIiAvPgogIDxwYXRoIGQ9Im0xNC41IDkuNS01IDUiIC8+CiAgPHBhdGggZD0iTTE0LjcgMTQuOGguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/diamond-percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DiamondPercent: IconNode = [\n [\n 'path',\n {\n d: 'M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0Z',\n },\n ],\n ['path', { d: 'M9.2 9.2h.01' }],\n ['path', { d: 'm14.5 9.5-5 5' }],\n ['path', { d: 'M14.7 14.8h.01' }],\n];\n\nexport default DiamondPercent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diamond-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOHY4IiAvPgogIDxwYXRoIGQ9Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweiIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/diamond-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DiamondPlus: IconNode = [\n ['path', { d: 'M12 8v8' }],\n [\n 'path',\n {\n d: 'M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z',\n },\n ],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default DiamondPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diamond\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MWwtNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/diamond\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Diamond: IconNode = [\n [\n 'path',\n {\n d: 'M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41l-7.59-7.59a2.41 2.41 0 0 0-3.41 0Z',\n },\n ],\n];\n\nexport default Diamond;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTIgMTJoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dice-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice1: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M12 12h.01' }],\n];\n\nexport default Dice1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTUgOWguMDEiIC8+CiAgPHBhdGggZD0iTTkgMTVoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dice-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice2: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M15 9h.01' }],\n ['path', { d: 'M9 15h.01' }],\n];\n\nexport default Dice2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNOCAxNmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dice-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice3: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M16 8h.01' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M8 16h.01' }],\n];\n\nexport default Dice3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTggOGguMDEiIC8+CiAgPHBhdGggZD0iTTggMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dice-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice4: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M16 8h.01' }],\n ['path', { d: 'M8 8h.01' }],\n ['path', { d: 'M8 16h.01' }],\n ['path', { d: 'M16 16h.01' }],\n];\n\nexport default Dice4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-5\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTggOGguMDEiIC8+CiAgPHBhdGggZD0iTTggMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNmguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDEyaC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/dice-5\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice5: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M16 8h.01' }],\n ['path', { d: 'M8 8h.01' }],\n ['path', { d: 'M8 16h.01' }],\n ['path', { d: 'M16 16h.01' }],\n ['path', { d: 'M12 12h.01' }],\n];\n\nexport default Dice5;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dice-6\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTYgMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDhoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNOCAxNmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dice-6\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dice6: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M16 8h.01' }],\n ['path', { d: 'M16 12h.01' }],\n ['path', { d: 'M16 16h.01' }],\n ['path', { d: 'M8 8h.01' }],\n ['path', { d: 'M8 12h.01' }],\n ['path', { d: 'M8 16h.01' }],\n];\n\nexport default Dice6;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dices\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjEwIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0ibTE3LjkyIDE0IDMuNS0zLjVhMi4yNCAyLjI0IDAgMCAwIDAtM2wtNS00LjkyYTIuMjQgMi4yNCAwIDAgMC0zIDBMMTAgNiIgLz4KICA8cGF0aCBkPSJNNiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTEwIDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTUgNmguMDEiIC8+CiAgPHBhdGggZD0iTTE4IDloLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dices\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dices: IconNode = [\n ['rect', { width: '12', height: '12', x: '2', y: '10', rx: '2', ry: '2' }],\n ['path', { d: 'm17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'M10 14h.01' }],\n ['path', { d: 'M15 6h.01' }],\n ['path', { d: 'M18 9h.01' }],\n];\n\nexport default Dices;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name diff\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxNCIgLz4KICA8cGF0aCBkPSJNNSAxMGgxNCIgLz4KICA8cGF0aCBkPSJNNSAyMWgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/diff\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Diff: IconNode = [\n ['path', { d: 'M12 3v14' }],\n ['path', { d: 'M5 10h14' }],\n ['path', { d: 'M5 21h14' }],\n];\n\nexport default Diff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name disc-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/disc-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Disc2: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M12 12h.01' }],\n];\n\nexport default Disc2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name disc-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNNiAxMmMwLTEuNy43LTMuMiAxLjgtNC4yIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTE4IDEyYzAgMS43LS43IDMuMi0xLjggNC4yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/disc-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Disc3: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M6 12c0-1.7.7-3.2 1.8-4.2' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['path', { d: 'M18 12c0 1.7-.7 3.2-1.8 4.2' }],\n];\n\nexport default Disc3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name disc-album\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjUiIC8+CiAgPHBhdGggZD0iTTEyIDEyaC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/disc-album\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DiscAlbum: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['circle', { cx: '12', cy: '12', r: '5' }],\n ['path', { d: 'M12 12h.01' }],\n];\n\nexport default DiscAlbum;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name disc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/disc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Disc: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default Disc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name divide\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjYiIHI9IjEiIC8+CiAgPGxpbmUgeDE9IjUiIHgyPSIxOSIgeTE9IjEyIiB5Mj0iMTIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxOCIgcj0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/divide\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Divide: IconNode = [\n ['circle', { cx: '12', cy: '6', r: '1' }],\n ['line', { x1: '5', x2: '19', y1: '12', y2: '12' }],\n ['circle', { cx: '12', cy: '18', r: '1' }],\n];\n\nexport default Divide;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dna-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMmMtMS4zNSAxLjUtMi4wOTIgMy0yLjUgNC41TDE0IDgiIC8+CiAgPHBhdGggZD0ibTE3IDYtMi44OTEtMi44OTEiIC8+CiAgPHBhdGggZD0iTTIgMTVjMy4zMzMtMyA2LjY2Ny0zIDEwLTMiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJtMjAgOSAuODkxLjg5MSIgLz4KICA8cGF0aCBkPSJNMjIgOWMtMS41IDEuMzUtMyAyLjA5Mi00LjUgMi41bC0xLTEiIC8+CiAgPHBhdGggZD0iTTMuMTA5IDE0LjEwOSA0IDE1IiAvPgogIDxwYXRoIGQ9Im02LjUgMTIuNSAxIDEiIC8+CiAgPHBhdGggZD0ibTcgMTggMi44OTEgMi44OTEiIC8+CiAgPHBhdGggZD0iTTkgMjJjMS4zNS0xLjUgMi4wOTItMyAyLjUtNC41TDEwIDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dna-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DnaOff: IconNode = [\n ['path', { d: 'M15 2c-1.35 1.5-2.092 3-2.5 4.5L14 8' }],\n ['path', { d: 'm17 6-2.891-2.891' }],\n ['path', { d: 'M2 15c3.333-3 6.667-3 10-3' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'm20 9 .891.891' }],\n ['path', { d: 'M22 9c-1.5 1.35-3 2.092-4.5 2.5l-1-1' }],\n ['path', { d: 'M3.109 14.109 4 15' }],\n ['path', { d: 'm6.5 12.5 1 1' }],\n ['path', { d: 'm7 18 2.891 2.891' }],\n ['path', { d: 'M9 22c1.35-1.5 2.092-3 2.5-4.5L10 16' }],\n];\n\nexport default DnaOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dna\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTYgMS41IDEuNSIgLz4KICA8cGF0aCBkPSJtMTQgOC0xLjUtMS41IiAvPgogIDxwYXRoIGQ9Ik0xNSAyYy0xLjc5OCAxLjk5OC0yLjUxOCAzLjk5NS0yLjgwNyA1Ljk5MyIgLz4KICA8cGF0aCBkPSJtMTYuNSAxMC41IDEgMSIgLz4KICA8cGF0aCBkPSJtMTcgNi0yLjg5MS0yLjg5MSIgLz4KICA8cGF0aCBkPSJNMiAxNWM2LjY2Ny02IDEzLjMzMyAwIDIwLTYiIC8+CiAgPHBhdGggZD0ibTIwIDkgLjg5MS44OTEiIC8+CiAgPHBhdGggZD0iTTMuMTA5IDE0LjEwOSA0IDE1IiAvPgogIDxwYXRoIGQ9Im02LjUgMTIuNSAxIDEiIC8+CiAgPHBhdGggZD0ibTcgMTggMi44OTEgMi44OTEiIC8+CiAgPHBhdGggZD0iTTkgMjJjMS43OTgtMS45OTggMi41MTgtMy45OTUgMi44MDctNS45OTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dna\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dna: IconNode = [\n ['path', { d: 'm10 16 1.5 1.5' }],\n ['path', { d: 'm14 8-1.5-1.5' }],\n ['path', { d: 'M15 2c-1.798 1.998-2.518 3.995-2.807 5.993' }],\n ['path', { d: 'm16.5 10.5 1 1' }],\n ['path', { d: 'm17 6-2.891-2.891' }],\n ['path', { d: 'M2 15c6.667-6 13.333 0 20-6' }],\n ['path', { d: 'm20 9 .891.891' }],\n ['path', { d: 'M3.109 14.109 4 15' }],\n ['path', { d: 'm6.5 12.5 1 1' }],\n ['path', { d: 'm7 18 2.891 2.891' }],\n ['path', { d: 'M9 22c1.798-1.998 2.518-3.995 2.807-5.993' }],\n];\n\nexport default Dna;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMjUgMTYuMjVoMS41TDEyIDE3eiIgLz4KICA8cGF0aCBkPSJNMTYgMTR2LjUiIC8+CiAgPHBhdGggZD0iTTQuNDIgMTEuMjQ3QTEzLjE1MiAxMy4xNTIgMCAwIDAgNCAxNC41NTZDNCAxOC43MjggNy41ODIgMjEgMTIgMjFzOC0yLjI3MiA4LTYuNDQ0YTExLjcwMiAxMS43MDIgMCAwIDAtLjQ5My0zLjMwOSIgLz4KICA8cGF0aCBkPSJNOCAxNHYuNSIgLz4KICA8cGF0aCBkPSJNOC41IDguNWMtLjM4NCAxLjA1LTEuMDgzIDIuMDI4LTIuMzQ0IDIuNS0xLjkzMS43MjItMy41NzYtLjI5Ny0zLjY1Ni0xLS4xMTMtLjk5NCAxLjE3Ny02LjUzIDQtNyAxLjkyMy0uMzIxIDMuNjUxLjg0NSAzLjY1MSAyLjIzNUE3LjQ5NyA3LjQ5NyAwIDAgMSAxNCA1LjI3N2MwLTEuMzkgMS44NDQtMi41OTggMy43NjctMi4yNzcgMi44MjMuNDcgNC4xMTMgNi4wMDYgNCA3LS4wOC43MDMtMS43MjUgMS43MjItMy42NTYgMS0xLjI2MS0uNDcyLTEuODU1LTEuNDUtMi4yMzktMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dog: IconNode = [\n ['path', { d: 'M11.25 16.25h1.5L12 17z' }],\n ['path', { d: 'M16 14v.5' }],\n [\n 'path',\n {\n d: 'M4.42 11.247A13.152 13.152 0 0 0 4 14.556C4 18.728 7.582 21 12 21s8-2.272 8-6.444a11.702 11.702 0 0 0-.493-3.309',\n },\n ],\n ['path', { d: 'M8 14v.5' }],\n [\n 'path',\n {\n d: 'M8.5 8.5c-.384 1.05-1.083 2.028-2.344 2.5-1.931.722-3.576-.297-3.656-1-.113-.994 1.177-6.53 4-7 1.923-.321 3.651.845 3.651 2.235A7.497 7.497 0 0 1 14 5.277c0-1.39 1.844-2.598 3.767-2.277 2.823.47 4.113 6.006 4 7-.08.703-1.725 1.722-3.656 1-1.261-.472-1.855-1.45-2.239-2.5',\n },\n ],\n];\n\nexport default Dog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dollar-sign\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSIyMiIgLz4KICA8cGF0aCBkPSJNMTcgNUg5LjVhMy41IDMuNSAwIDAgMCAwIDdoNWEzLjUgMy41IDAgMCAxIDAgN0g2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dollar-sign\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DollarSign: IconNode = [\n ['line', { x1: '12', x2: '12', y1: '2', y2: '22' }],\n ['path', { d: 'M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6' }],\n];\n\nexport default DollarSign;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA4aDIwIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNiIgeD0iMiIgeT0iNCIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTYgMTZoMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dock: IconNode = [\n ['path', { d: 'M2 8h20' }],\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M6 16h12' }],\n];\n\nexport default Dock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name donut\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuNSAxMGEyLjUgMi41IDAgMCAxLTIuNC0zSDE4YTIuOTUgMi45NSAwIDAgMS0yLjYtNC40IDEwIDEwIDAgMSAwIDYuMyA3LjFjLS4zLjItLjguMy0xLjIuMyIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/donut\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Donut: IconNode = [\n [\n 'path',\n {\n d: 'M20.5 10a2.5 2.5 0 0 1-2.4-3H18a2.95 2.95 0 0 1-2.6-4.4 10 10 0 1 0 6.3 7.1c-.3.2-.8.3-1.2.3',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default Donut;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name door-closed-locked\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xOCA5VjZhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTQiIC8+CiAgPHBhdGggZD0iTTIgMjBoOCIgLz4KICA8cGF0aCBkPSJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIiAvPgogIDxyZWN0IHg9IjE0IiB5PSIxNyIgd2lkdGg9IjgiIGhlaWdodD0iNSIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/door-closed-locked\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DoorClosedLocked: IconNode = [\n ['path', { d: 'M10 12h.01' }],\n ['path', { d: 'M18 9V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14' }],\n ['path', { d: 'M2 20h8' }],\n ['path', { d: 'M20 17v-2a2 2 0 1 0-4 0v2' }],\n ['rect', { x: '14', y: '17', width: '8', height: '5', rx: '1' }],\n];\n\nexport default DoorClosedLocked;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name door-closed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xOCAyMFY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0IiAvPgogIDxwYXRoIGQ9Ik0yIDIwaDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/door-closed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DoorClosed: IconNode = [\n ['path', { d: 'M10 12h.01' }],\n ['path', { d: 'M18 20V6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14' }],\n ['path', { d: 'M2 20h20' }],\n];\n\nexport default DoorClosed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name door-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjBIMiIgLz4KICA8cGF0aCBkPSJNMTEgNC41NjJ2MTYuMTU3YTEgMSAwIDAgMCAxLjI0Mi45N0wxOSAyMFY1LjU2MmEyIDIgMCAwIDAtMS41MTUtMS45NGwtNC0xQTIgMiAwIDAgMCAxMSA0LjU2MXoiIC8+CiAgPHBhdGggZD0iTTExIDRIOGEyIDIgMCAwIDAtMiAydjE0IiAvPgogIDxwYXRoIGQ9Ik0xNCAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTIyIDIwaC0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/door-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DoorOpen: IconNode = [\n ['path', { d: 'M11 20H2' }],\n [\n 'path',\n {\n d: 'M11 4.562v16.157a1 1 0 0 0 1.242.97L19 20V5.562a2 2 0 0 0-1.515-1.94l-4-1A2 2 0 0 0 11 4.561z',\n },\n ],\n ['path', { d: 'M11 4H8a2 2 0 0 0-2 2v14' }],\n ['path', { d: 'M14 12h.01' }],\n ['path', { d: 'M22 20h-3' }],\n];\n\nexport default DoorOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMi4xIiBjeT0iMTIuMSIgcj0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dot: IconNode = [['circle', { cx: '12.1', cy: '12.1', r: '1' }]];\n\nexport default Dot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name download\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTVWMyIgLz4KICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIgLz4KICA8cGF0aCBkPSJtNyAxMCA1IDUgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/download\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Download: IconNode = [\n ['path', { d: 'M12 15V3' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4' }],\n ['path', { d: 'm7 10 5 5 5-5' }],\n];\n\nexport default Download;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drafting-compass\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIuOTkgNi43NCAxLjkzIDMuNDQiIC8+CiAgPHBhdGggZD0iTTE5LjEzNiAxMmExMCAxMCAwIDAgMS0xNC4yNzEgMCIgLz4KICA8cGF0aCBkPSJtMjEgMjEtMi4xNi0zLjg0IiAvPgogIDxwYXRoIGQ9Im0zIDIxIDguMDItMTQuMjYiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/drafting-compass\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DraftingCompass: IconNode = [\n ['path', { d: 'm12.99 6.74 1.93 3.44' }],\n ['path', { d: 'M19.136 12a10 10 0 0 1-14.271 0' }],\n ['path', { d: 'm21 21-2.16-3.84' }],\n ['path', { d: 'm3 21 8.02-14.26' }],\n ['circle', { cx: '12', cy: '5', r: '2' }],\n];\n\nexport default DraftingCompass;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dribbble\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTkuMTMgNS4wOUMxNS4yMiA5LjE0IDEwIDEwLjQ0IDIuMjUgMTAuOTQiIC8+CiAgPHBhdGggZD0iTTIxLjc1IDEyLjg0Yy02LjYyLTEuNDEtMTIuMTQgMS0xNi4zOCA2LjMyIiAvPgogIDxwYXRoIGQ9Ik04LjU2IDIuNzVjNC4zNyA2IDYgOS40MiA4IDE3LjcyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/dribbble\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=dribbble instead. This icon will be removed in v1.0\n */\nconst Dribbble: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M19.13 5.09C15.22 9.14 10 10.44 2.25 10.94' }],\n ['path', { d: 'M21.75 12.84c-6.62-1.41-12.14 1-16.38 6.32' }],\n ['path', { d: 'M8.56 2.75c4.37 6 6 9.42 8 17.72' }],\n];\n\nexport default Dribbble;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drama\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTFoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNCA2aC4wMSIgLz4KICA8cGF0aCBkPSJNMTggNmguMDEiIC8+CiAgPHBhdGggZD0iTTYuNSAxMy4xaC4wMSIgLz4KICA8cGF0aCBkPSJNMjIgNWMwIDktNCAxMi02IDEycy02LTMtNi0xMmMwLTIgMi0zIDYtM3M2IDEgNiAzIiAvPgogIDxwYXRoIGQ9Ik0xNy40IDkuOWMtLjguOC0yIC44LTIuOCAwIiAvPgogIDxwYXRoIGQ9Ik0xMC4xIDcuMUM5IDcuMiA3LjcgNy43IDYgOC42Yy0zLjUgMi00LjcgMy45LTMuNyA1LjYgNC41IDcuOCA5LjUgOC40IDExLjIgNy40LjktLjUgMS45LTIuMSAxLjktNC43IiAvPgogIDxwYXRoIGQ9Ik05LjEgMTYuNWMuMy0xLjEgMS40LTEuNyAyLjQtMS40IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/drama\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Drama: IconNode = [\n ['path', { d: 'M10 11h.01' }],\n ['path', { d: 'M14 6h.01' }],\n ['path', { d: 'M18 6h.01' }],\n ['path', { d: 'M6.5 13.1h.01' }],\n ['path', { d: 'M22 5c0 9-4 12-6 12s-6-3-6-12c0-2 2-3 6-3s6 1 6 3' }],\n ['path', { d: 'M17.4 9.9c-.8.8-2 .8-2.8 0' }],\n [\n 'path',\n {\n d: 'M10.1 7.1C9 7.2 7.7 7.7 6 8.6c-3.5 2-4.7 3.9-3.7 5.6 4.5 7.8 9.5 8.4 11.2 7.4.9-.5 1.9-2.1 1.9-4.7',\n },\n ],\n ['path', { d: 'M9.1 16.5c.3-1.1 1.4-1.7 2.4-1.4' }],\n];\n\nexport default Drama;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drill\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMThhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINWEzIDMgMCAwIDEtMy0zIDEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik0xMyAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMSAxIDAgMCAxIDEgMXY2YTEgMSAwIDAgMS0xIDFsLS44MSAzLjI0MmExIDEgMCAwIDEtLjk3Ljc1OEg4IiAvPgogIDxwYXRoIGQ9Ik0xNCA0aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTMiIC8+CiAgPHBhdGggZD0iTTE4IDZoNCIgLz4KICA8cGF0aCBkPSJtNSAxMC0yIDgiIC8+CiAgPHBhdGggZD0ibTcgMTggMi04IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/drill\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Drill: IconNode = [\n ['path', { d: 'M10 18a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H5a3 3 0 0 1-3-3 1 1 0 0 1 1-1z' }],\n [\n 'path',\n {\n d: 'M13 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1l-.81 3.242a1 1 0 0 1-.97.758H8',\n },\n ],\n ['path', { d: 'M14 4h3a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-3' }],\n ['path', { d: 'M18 6h4' }],\n ['path', { d: 'm5 10-2 8' }],\n ['path', { d: 'm7 18 2-8' }],\n];\n\nexport default Drill;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTAgNyA3IiAvPgogIDxwYXRoIGQ9Im0xMCAxNC0zIDMiIC8+CiAgPHBhdGggZD0ibTE0IDEwIDMtMyIgLz4KICA8cGF0aCBkPSJtMTQgMTQgMyAzIiAvPgogIDxwYXRoIGQ9Ik0xNC4yMDUgNC4xMzlhNCA0IDAgMSAxIDUuNDM5IDUuODYzIiAvPgogIDxwYXRoIGQ9Ik0xOS42MzcgMTRhNCA0IDAgMSAxLTUuNDMyIDUuODY4IiAvPgogIDxwYXRoIGQ9Ik00LjM2NyAxMGE0IDQgMCAxIDEgNS40MzgtNS44NjIiIC8+CiAgPHBhdGggZD0iTTkuNzk1IDE5Ljg2MmE0IDQgMCAxIDEtNS40MjktNS44NzMiIC8+CiAgPHJlY3QgeD0iMTAiIHk9IjgiIHdpZHRoPSI0IiBoZWlnaHQ9IjgiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/drone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Drone: IconNode = [\n ['path', { d: 'M10 10 7 7' }],\n ['path', { d: 'm10 14-3 3' }],\n ['path', { d: 'm14 10 3-3' }],\n ['path', { d: 'm14 14 3 3' }],\n ['path', { d: 'M14.205 4.139a4 4 0 1 1 5.439 5.863' }],\n ['path', { d: 'M19.637 14a4 4 0 1 1-5.432 5.868' }],\n ['path', { d: 'M4.367 10a4 4 0 1 1 5.438-5.862' }],\n ['path', { d: 'M9.795 19.862a4 4 0 1 1-5.429-5.873' }],\n ['rect', { x: '10', y: '8', width: '4', height: '8', rx: '1' }],\n];\n\nexport default Drone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name droplet-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguNzE1IDEzLjE4NkMxOC4yOSAxMS44NTggMTcuMzg0IDEwLjYwNyAxNiA5LjVjLTItMS42LTMuNS00LTQtNi41YTEwLjcgMTAuNyAwIDAgMS0uODg0IDIuNTg2IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTguNzk1IDguNzk3QTExIDExIDAgMCAxIDggOS41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDEzLjIyMiAzLjIwOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/droplet-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst DropletOff: IconNode = [\n [\n 'path',\n {\n d: 'M18.715 13.186C18.29 11.858 17.384 10.607 16 9.5c-2-1.6-3.5-4-4-6.5a10.7 10.7 0 0 1-.884 2.586',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.795 8.797A11 11 0 0 1 8 9.5C6 11.1 5 13 5 15a7 7 0 0 0 13.222 3.208' }],\n];\n\nexport default DropletOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name droplet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJhNyA3IDAgMCAwIDctN2MwLTItMS0zLjktMy01LjVzLTMuNS00LTQtNi41Yy0uNSAyLjUtMiA0LjktNCA2LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgNyA3eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/droplet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Droplet: IconNode = [\n [\n 'path',\n {\n d: 'M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z',\n },\n ],\n];\n\nexport default Droplet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name droplets\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxNi4zYzIuMiAwIDQtMS44MyA0LTQuMDUgMC0xLjE2LS41Ny0yLjI2LTEuNzEtMy4xOVM3LjI5IDYuNzUgNyA1LjNjLS4yOSAxLjQ1LTEuMTQgMi44NC0yLjI5IDMuNzZTMyAxMS4xIDMgMTIuMjVjMCAyLjIyIDEuOCA0LjA1IDQgNC4wNXoiIC8+CiAgPHBhdGggZD0iTTEyLjU2IDYuNkExMC45NyAxMC45NyAwIDAgMCAxNCAzLjAyYy41IDIuNSAyIDQuOSA0IDYuNXMzIDMuNSAzIDUuNWE2Ljk4IDYuOTggMCAwIDEtMTEuOTEgNC45NyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/droplets\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Droplets: IconNode = [\n [\n 'path',\n {\n d: 'M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z',\n },\n ],\n [\n 'path',\n {\n d: 'M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97',\n },\n ],\n];\n\nexport default Droplets;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drum\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDggOCIgLz4KICA8cGF0aCBkPSJtMjIgMi04IDgiIC8+CiAgPGVsbGlwc2UgY3g9IjEyIiBjeT0iOSIgcng9IjEwIiByeT0iNSIgLz4KICA8cGF0aCBkPSJNNyAxMy40djcuOSIgLz4KICA8cGF0aCBkPSJNMTIgMTR2OCIgLz4KICA8cGF0aCBkPSJNMTcgMTMuNHY3LjkiIC8+CiAgPHBhdGggZD0iTTIgOXY4YTEwIDUgMCAwIDAgMjAgMFY5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/drum\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Drum: IconNode = [\n ['path', { d: 'm2 2 8 8' }],\n ['path', { d: 'm22 2-8 8' }],\n ['ellipse', { cx: '12', cy: '9', rx: '10', ry: '5' }],\n ['path', { d: 'M7 13.4v7.9' }],\n ['path', { d: 'M12 14v8' }],\n ['path', { d: 'M17 13.4v7.9' }],\n ['path', { d: 'M2 9v8a10 5 0 0 0 20 0V9' }],\n];\n\nexport default Drum;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name drumstick\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNCAxNS42M2E3Ljg3NSA2IDEzNSAxIDEgNi4yMy02LjIzIDQuNSAzLjQzIDEzNSAwIDAtNi4yMyA2LjIzIiAvPgogIDxwYXRoIGQ9Im04LjI5IDEyLjcxLTIuNiAyLjZhMi41IDIuNSAwIDEgMC0xLjY1IDQuNjVBMi41IDIuNSAwIDEgMCA4LjcgMTguM2wyLjU5LTIuNTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/drumstick\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Drumstick: IconNode = [\n ['path', { d: 'M15.4 15.63a7.875 6 135 1 1 6.23-6.23 4.5 3.43 135 0 0-6.23 6.23' }],\n ['path', { d: 'm8.29 12.71-2.6 2.6a2.5 2.5 0 1 0-1.65 4.65A2.5 2.5 0 1 0 8.7 18.3l2.59-2.59' }],\n];\n\nexport default Drumstick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name dumbbell\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuNTk2IDEyLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTEuNzY4LTEuNzY3YTIgMiAwIDAgMCAyLjgyOC0yLjgyOWwtMi44MjgtMi44MjhhMiAyIDAgMCAwLTIuODI5IDIuODI4bC0xLjc2Ny0xLjc2OGEyIDIgMCAxIDAtMi44MjkgMi44Mjl6IiAvPgogIDxwYXRoIGQ9Im0yLjUgMjEuNSAxLjQtMS40IiAvPgogIDxwYXRoIGQ9Im0yMC4xIDMuOSAxLjQtMS40IiAvPgogIDxwYXRoIGQ9Ik01LjM0MyAyMS40ODVhMiAyIDAgMSAwIDIuODI5LTIuODI4bDEuNzY3IDEuNzY4YTIgMiAwIDEgMCAyLjgyOS0yLjgyOWwtNi4zNjQtNi4zNjRhMiAyIDAgMSAwLTIuODI5IDIuODI5bDEuNzY4IDEuNzY3YTIgMiAwIDAgMC0yLjgyOCAyLjgyOXoiIC8+CiAgPHBhdGggZD0ibTkuNiAxNC40IDQuOC00LjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/dumbbell\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Dumbbell: IconNode = [\n [\n 'path',\n {\n d: 'M17.596 12.768a2 2 0 1 0 2.829-2.829l-1.768-1.767a2 2 0 0 0 2.828-2.829l-2.828-2.828a2 2 0 0 0-2.829 2.828l-1.767-1.768a2 2 0 1 0-2.829 2.829z',\n },\n ],\n ['path', { d: 'm2.5 21.5 1.4-1.4' }],\n ['path', { d: 'm20.1 3.9 1.4-1.4' }],\n [\n 'path',\n {\n d: 'M5.343 21.485a2 2 0 1 0 2.829-2.828l1.767 1.768a2 2 0 1 0 2.829-2.829l-6.364-6.364a2 2 0 1 0-2.829 2.829l1.768 1.767a2 2 0 0 0-2.828 2.829z',\n },\n ],\n ['path', { d: 'm9.6 14.4 4.8-4.8' }],\n];\n\nexport default Dumbbell;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ear-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxOC41YTMuNSAzLjUgMCAxIDAgNyAwYzAtMS41Ny45Mi0yLjUyIDIuMDQtMy40NiIgLz4KICA8cGF0aCBkPSJNNiA4LjVjMC0uNzUuMTMtMS40Ny4zNi0yLjE0IiAvPgogIDxwYXRoIGQ9Ik04LjggMy4xNUE2LjUgNi41IDAgMCAxIDE5IDguNWMwIDEuNjMtLjQ0IDIuODEtMS4wOSAzLjc2IiAvPgogIDxwYXRoIGQ9Ik0xMi41IDZBMi41IDIuNSAwIDAgMSAxNSA4LjVNMTAgMTNhMiAyIDAgMCAwIDEuODItMS4xOCIgLz4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ear-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EarOff: IconNode = [\n ['path', { d: 'M6 18.5a3.5 3.5 0 1 0 7 0c0-1.57.92-2.52 2.04-3.46' }],\n ['path', { d: 'M6 8.5c0-.75.13-1.47.36-2.14' }],\n ['path', { d: 'M8.8 3.15A6.5 6.5 0 0 1 19 8.5c0 1.63-.44 2.81-1.09 3.76' }],\n ['path', { d: 'M12.5 6A2.5 2.5 0 0 1 15 8.5M10 13a2 2 0 0 0 1.82-1.18' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default EarOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name earth-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAzLjM0VjVhMyAzIDAgMCAwIDMgMyIgLz4KICA8cGF0aCBkPSJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSIgLz4KICA8cGF0aCBkPSJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0IiAvPgogIDxwYXRoIGQ9Ik0xMiAyYTEwIDEwIDAgMSAwIDkuNTQgMTMiIC8+CiAgPHBhdGggZD0iTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iNSIgeD0iMTQiIHk9IjYiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/earth-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EarthLock: IconNode = [\n ['path', { d: 'M7 3.34V5a3 3 0 0 0 3 3' }],\n ['path', { d: 'M11 21.95V18a2 2 0 0 0-2-2 2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05' }],\n ['path', { d: 'M21.54 15H17a2 2 0 0 0-2 2v4.54' }],\n ['path', { d: 'M12 2a10 10 0 1 0 9.54 13' }],\n ['path', { d: 'M20 6V4a2 2 0 1 0-4 0v2' }],\n ['rect', { width: '8', height: '5', x: '14', y: '6', rx: '1' }],\n];\n\nexport default EarthLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ear\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA4LjVhNi41IDYuNSAwIDEgMSAxMyAwYzAgNi02IDYtNiAxMGEzLjUgMy41IDAgMSAxLTcgMCIgLz4KICA8cGF0aCBkPSJNMTUgOC41YTIuNSAyLjUgMCAwIDAtNSAwdjFhMiAyIDAgMSAxIDAgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ear\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ear: IconNode = [\n ['path', { d: 'M6 8.5a6.5 6.5 0 1 1 13 0c0 6-6 6-6 10a3.5 3.5 0 1 1-7 0' }],\n ['path', { d: 'M15 8.5a2.5 2.5 0 0 0-5 0v1a2 2 0 1 1 0 4' }],\n];\n\nexport default Ear;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name earth\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0IiAvPgogIDxwYXRoIGQ9Ik03IDMuMzRWNWEzIDMgMCAwIDAgMyAzYTIgMiAwIDAgMSAyIDJjMCAxLjEuOSAyIDIgMmEyIDIgMCAwIDAgMi0yYzAtMS4xLjktMiAyLTJoMy4xNyIgLz4KICA8cGF0aCBkPSJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/earth\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Earth: IconNode = [\n ['path', { d: 'M21.54 15H17a2 2 0 0 0-2 2v4.54' }],\n [\n 'path',\n { d: 'M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17' },\n ],\n ['path', { d: 'M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Earth;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eclipse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMmE3IDcgMCAxIDAgMTAgMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/eclipse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Eclipse: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 2a7 7 0 1 0 10 10' }],\n];\n\nexport default Eclipse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name egg-fried\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMS41IiBjeT0iMTIuNSIgcj0iMy41IiAvPgogIDxwYXRoIGQ9Ik0zIDhjMC0zLjUgMi41LTYgNi41LTYgNSAwIDQuODMgMyA3LjUgNXM1IDIgNSA2YzAgNC41LTIuNSA2LjUtNyA2LjUtMi41IDAtMi41IDIuNS02IDIuNXMtNy0yLTctNS41YzAtMyAxLjUtMyAxLjUtNUMzLjUgMTAgMyA5IDMgOFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/egg-fried\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EggFried: IconNode = [\n ['circle', { cx: '11.5', cy: '12.5', r: '3.5' }],\n [\n 'path',\n {\n d: 'M3 8c0-3.5 2.5-6 6.5-6 5 0 4.83 3 7.5 5s5 2 5 6c0 4.5-2.5 6.5-7 6.5-2.5 0-2.5 2.5-6 2.5s-7-2-7-5.5c0-3 1.5-3 1.5-5C3.5 10 3 9 3 8Z',\n },\n ],\n];\n\nexport default EggFried;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name egg-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNC4zNDdWMTRjMC02LTQtMTItOC0xMi0xLjA3OCAwLTIuMTU3LjQzNi0zLjE1NyAxLjE5IiAvPgogIDxwYXRoIGQ9Ik02LjIwNiA2LjIxQzQuODcxIDguNCA0IDExLjIgNCAxNGE4IDggMCAwIDAgMTQuNTY4IDQuNTY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/egg-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EggOff: IconNode = [\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20 14.347V14c0-6-4-12-8-12-1.078 0-2.157.436-3.157 1.19' }],\n ['path', { d: 'M6.206 6.21C4.871 8.4 4 11.2 4 14a8 8 0 0 0 14.568 4.568' }],\n];\n\nexport default EggOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name egg\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMkM4IDIgNCA4IDQgMTRhOCA4IDAgMCAwIDE2IDBjMC02LTQtMTItOC0xMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/egg\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Egg: IconNode = [['path', { d: 'M12 2C8 2 4 8 4 14a8 8 0 0 0 16 0c0-6-4-12-8-12' }]];\n\nexport default Egg;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ellipsis-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EllipsisVertical: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1' }],\n ['circle', { cx: '12', cy: '5', r: '1' }],\n ['circle', { cx: '12', cy: '19', r: '1' }],\n];\n\nexport default EllipsisVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ellipsis: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1' }],\n ['circle', { cx: '19', cy: '12', r: '1' }],\n ['circle', { cx: '5', cy: '12', r: '1' }],\n];\n\nexport default Ellipsis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name equal-approximately\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxNWE2LjUgNi41IDAgMCAxIDcgMCA2LjUgNi41IDAgMCAwIDcgMCIgLz4KICA8cGF0aCBkPSJNNSA5YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/equal-approximately\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EqualApproximately: IconNode = [\n ['path', { d: 'M5 15a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0' }],\n ['path', { d: 'M5 9a6.5 6.5 0 0 1 7 0 6.5 6.5 0 0 0 7 0' }],\n];\n\nexport default EqualApproximately;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name equal-not\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNSIgeDI9IjE5IiB5MT0iOSIgeTI9IjkiIC8+CiAgPGxpbmUgeDE9IjUiIHgyPSIxOSIgeTE9IjE1IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjE5IiB4Mj0iNSIgeTE9IjUiIHkyPSIxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/equal-not\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EqualNot: IconNode = [\n ['line', { x1: '5', x2: '19', y1: '9', y2: '9' }],\n ['line', { x1: '5', x2: '19', y1: '15', y2: '15' }],\n ['line', { x1: '19', x2: '5', y1: '5', y2: '19' }],\n];\n\nexport default EqualNot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name equal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNSIgeDI9IjE5IiB5MT0iOSIgeTI9IjkiIC8+CiAgPGxpbmUgeDE9IjUiIHgyPSIxOSIgeTE9IjE1IiB5Mj0iMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/equal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Equal: IconNode = [\n ['line', { x1: '5', x2: '19', y1: '9', y2: '9' }],\n ['line', { x1: '5', x2: '19', y1: '15', y2: '15' }],\n];\n\nexport default Equal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ethernet-port\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMjAgMy0zaDJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjlhMiAyIDAgMCAwIDIgMmgybDMgM3oiIC8+CiAgPHBhdGggZD0iTTYgOHYxIiAvPgogIDxwYXRoIGQ9Ik0xMCA4djEiIC8+CiAgPHBhdGggZD0iTTE0IDh2MSIgLz4KICA8cGF0aCBkPSJNMTggOHYxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ethernet-port\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EthernetPort: IconNode = [\n [\n 'path',\n { d: 'm15 20 3-3h2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h2l3 3z' },\n ],\n ['path', { d: 'M6 8v1' }],\n ['path', { d: 'M10 8v1' }],\n ['path', { d: 'M14 8v1' }],\n ['path', { d: 'M18 8v1' }],\n];\n\nexport default EthernetPort;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eraser\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMjFIOGEyIDIgMCAwIDEtMS40Mi0uNTg3bC0zLjk5NC0zLjk5OWEyIDIgMCAwIDEgMC0yLjgyOGwxMC0xMGEyIDIgMCAwIDEgMi44MjkgMGw1Ljk5OSA2YTIgMiAwIDAgMSAwIDIuODI4TDEyLjgzNCAyMSIgLz4KICA8cGF0aCBkPSJtNS4wODIgMTEuMDkgOC44MjggOC44MjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/eraser\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Eraser: IconNode = [\n [\n 'path',\n {\n d: 'M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21',\n },\n ],\n ['path', { d: 'm5.082 11.09 8.828 8.828' }],\n];\n\nexport default Eraser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name euro\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGgxMiIgLz4KICA8cGF0aCBkPSJNNCAxNGg5IiAvPgogIDxwYXRoIGQ9Ik0xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/euro\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Euro: IconNode = [\n ['path', { d: 'M4 10h12' }],\n ['path', { d: 'M4 14h9' }],\n [\n 'path',\n { d: 'M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2' },\n ],\n];\n\nexport default Euro;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ev-charger\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTNoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAwIDQgMHYtNi45OThhMiAyIDAgMCAwLS41OS0xLjQyTDE4IDUiIC8+CiAgPHBhdGggZD0iTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYiIC8+CiAgPHBhdGggZD0iTTIgMjFoMTMiIC8+CiAgPHBhdGggZD0iTTMgN2gxMSIgLz4KICA8cGF0aCBkPSJtOSAxMS0yIDNoM2wtMiAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ev-charger\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EvCharger: IconNode = [\n ['path', { d: 'M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5' }],\n ['path', { d: 'M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16' }],\n ['path', { d: 'M2 21h13' }],\n ['path', { d: 'M3 7h11' }],\n ['path', { d: 'm9 11-2 3h3l-2 3' }],\n];\n\nexport default EvCharger;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name expand\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTUgNiA2IiAvPgogIDxwYXRoIGQ9Im0xNSA5IDYtNiIgLz4KICA8cGF0aCBkPSJNMjEgMTZ2NWgtNSIgLz4KICA8cGF0aCBkPSJNMjEgOFYzaC01IiAvPgogIDxwYXRoIGQ9Ik0zIDE2djVoNSIgLz4KICA8cGF0aCBkPSJtMyAyMSA2LTYiIC8+CiAgPHBhdGggZD0iTTMgOFYzaDUiIC8+CiAgPHBhdGggZD0iTTkgOSAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/expand\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Expand: IconNode = [\n ['path', { d: 'm15 15 6 6' }],\n ['path', { d: 'm15 9 6-6' }],\n ['path', { d: 'M21 16v5h-5' }],\n ['path', { d: 'M21 8V3h-5' }],\n ['path', { d: 'M3 16v5h5' }],\n ['path', { d: 'm3 21 6-6' }],\n ['path', { d: 'M3 8V3h5' }],\n ['path', { d: 'M9 9 3 3' }],\n];\n\nexport default Expand;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name external-link\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM2g2djYiIC8+CiAgPHBhdGggZD0iTTEwIDE0IDIxIDMiIC8+CiAgPHBhdGggZD0iTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ExternalLink: IconNode = [\n ['path', { d: 'M15 3h6v6' }],\n ['path', { d: 'M10 14 21 3' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6' }],\n];\n\nexport default ExternalLink;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eye-closed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtLjcyMi0zLjI1IiAvPgogIDxwYXRoIGQ9Ik0yIDhhMTAuNjQ1IDEwLjY0NSAwIDAgMCAyMCAwIiAvPgogIDxwYXRoIGQ9Im0yMCAxNS0xLjcyNi0yLjA1IiAvPgogIDxwYXRoIGQ9Im00IDE1IDEuNzI2LTIuMDUiIC8+CiAgPHBhdGggZD0ibTkgMTggLjcyMi0zLjI1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye-closed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EyeClosed: IconNode = [\n ['path', { d: 'm15 18-.722-3.25' }],\n ['path', { d: 'M2 8a10.645 10.645 0 0 0 20 0' }],\n ['path', { d: 'm20 15-1.726-2.05' }],\n ['path', { d: 'm4 15 1.726-2.05' }],\n ['path', { d: 'm9 18 .722-3.25' }],\n];\n\nexport default EyeClosed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eye\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Eye: IconNode = [\n [\n 'path',\n {\n d: 'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default Eye;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name eye-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5IiAvPgogIDxwYXRoIGQ9Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiIgLz4KICA8cGF0aCBkPSJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst EyeOff: IconNode = [\n [\n 'path',\n {\n d: 'M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49',\n },\n ],\n ['path', { d: 'M14.084 14.158a3 3 0 0 1-4.242-4.242' }],\n [\n 'path',\n {\n d: 'M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default EyeOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name facebook\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMmgtM2E1IDUgMCAwIDAtNSA1djNIN3Y0aDN2OGg0di04aDNsMS00aC00VjdhMSAxIDAgMCAxIDEtMWgzeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/facebook\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=facebook instead. This icon will be removed in v1.0\n */\nconst Facebook: IconNode = [\n ['path', { d: 'M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z' }],\n];\n\nexport default Facebook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name factory\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNmguMDEiIC8+CiAgPHBhdGggZD0iTTMgMTlhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjguNWEuNS41IDAgMCAwLS43NjktLjQyMmwtNC40NjIgMi44NDRBLjUuNSAwIDAgMSAxNSAxMC41di0yYS41LjUgMCAwIDAtLjc2OS0uNDIyTDkuNzcgMTAuOTIyQS41LjUgMCAwIDEgOSAxMC41VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ6IiAvPgogIDxwYXRoIGQ9Ik04IDE2aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/factory\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Factory: IconNode = [\n ['path', { d: 'M12 16h.01' }],\n ['path', { d: 'M16 16h.01' }],\n [\n 'path',\n {\n d: 'M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z',\n },\n ],\n ['path', { d: 'M8 16h.01' }],\n];\n\nexport default Factory;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fan\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuODI3IDE2LjM3OWE2LjA4MiA2LjA4MiAwIDAgMS04LjYxOC03LjAwMmw1LjQxMiAxLjQ1YTYuMDgyIDYuMDgyIDAgMCAxIDcuMDAyLTguNjE4bC0xLjQ1IDUuNDEyYTYuMDgyIDYuMDgyIDAgMCAxIDguNjE4IDcuMDAybC01LjQxMi0xLjQ1YTYuMDgyIDYuMDgyIDAgMCAxLTcuMDAyIDguNjE4bDEuNDUtNS40MTJaIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnYuMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/fan\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Fan: IconNode = [\n [\n 'path',\n {\n d: 'M10.827 16.379a6.082 6.082 0 0 1-8.618-7.002l5.412 1.45a6.082 6.082 0 0 1 7.002-8.618l-1.45 5.412a6.082 6.082 0 0 1 8.618 7.002l-5.412-1.45a6.082 6.082 0 0 1-7.002 8.618l1.45-5.412Z',\n },\n ],\n ['path', { d: 'M12 12v.01' }],\n];\n\nexport default Fan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fast-forward\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNmEyIDIgMCAwIDEgMy40MTQtMS40MTRsNiA2YTIgMiAwIDAgMSAwIDIuODI4bC02IDZBMiAyIDAgMCAxIDEyIDE4eiIgLz4KICA8cGF0aCBkPSJNMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMiAxOHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/fast-forward\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FastForward: IconNode = [\n ['path', { d: 'M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z' }],\n ['path', { d: 'M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z' }],\n];\n\nexport default FastForward;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name feather\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNjcgMTlhMiAyIDAgMCAwIDEuNDE2LS41ODhsNi4xNTQtNi4xNzJhNiA2IDAgMCAwLTguNDktOC40OUw1LjU4NiA5LjkxNEEyIDIgMCAwIDAgNSAxMS4zMjhWMThhMSAxIDAgMCAwIDEgMXoiIC8+CiAgPHBhdGggZD0iTTE2IDggMiAyMiIgLz4KICA8cGF0aCBkPSJNMTcuNSAxNUg5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/feather\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Feather: IconNode = [\n [\n 'path',\n {\n d: 'M12.67 19a2 2 0 0 0 1.416-.588l6.154-6.172a6 6 0 0 0-8.49-8.49L5.586 9.914A2 2 0 0 0 5 11.328V18a1 1 0 0 0 1 1z',\n },\n ],\n ['path', { d: 'M16 8 2 22' }],\n ['path', { d: 'M17.5 15H9' }],\n];\n\nexport default Feather;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fence\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAzIDIgNXYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIiAvPgogIDxwYXRoIGQ9Ik02IDhoNCIgLz4KICA8cGF0aCBkPSJNNiAxOGg0IiAvPgogIDxwYXRoIGQ9Im0xMiAzLTIgMnYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIiAvPgogIDxwYXRoIGQ9Ik0xNCA4aDQiIC8+CiAgPHBhdGggZD0iTTE0IDE4aDQiIC8+CiAgPHBhdGggZD0ibTIwIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/fence\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Fence: IconNode = [\n ['path', { d: 'M4 3 2 5v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z' }],\n ['path', { d: 'M6 8h4' }],\n ['path', { d: 'M6 18h4' }],\n ['path', { d: 'm12 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z' }],\n ['path', { d: 'M14 8h4' }],\n ['path', { d: 'M14 18h4' }],\n ['path', { d: 'm20 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z' }],\n];\n\nexport default Fence;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ferris-wheel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjQiIC8+CiAgPHBhdGggZD0ibTYuOCAxNS0zLjUgMiIgLz4KICA8cGF0aCBkPSJtMjAuNyA3LTMuNSAyIiAvPgogIDxwYXRoIGQ9Ik02LjggOSAzLjMgNyIgLz4KICA8cGF0aCBkPSJtMjAuNyAxNy0zLjUtMiIgLz4KICA8cGF0aCBkPSJtOSAyMiAzLTggMyA4IiAvPgogIDxwYXRoIGQ9Ik04IDIyaDgiIC8+CiAgPHBhdGggZD0iTTE4IDE4LjdhOSA5IDAgMSAwLTEyIDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ferris-wheel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FerrisWheel: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'm6.8 15-3.5 2' }],\n ['path', { d: 'm20.7 7-3.5 2' }],\n ['path', { d: 'M6.8 9 3.3 7' }],\n ['path', { d: 'm20.7 17-3.5-2' }],\n ['path', { d: 'm9 22 3-8 3 8' }],\n ['path', { d: 'M8 22h8' }],\n ['path', { d: 'M18 18.7a9 9 0 1 0-12 0' }],\n];\n\nexport default FerrisWheel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name figma\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA1LjVBMy41IDMuNSAwIDAgMSA4LjUgMkgxMnY3SDguNUEzLjUgMy41IDAgMCAxIDUgNS41eiIgLz4KICA8cGF0aCBkPSJNMTIgMmgzLjVhMy41IDMuNSAwIDEgMSAwIDdIMTJWMnoiIC8+CiAgPHBhdGggZD0iTTEyIDEyLjVhMy41IDMuNSAwIDEgMSA3IDAgMy41IDMuNSAwIDEgMS03IDB6IiAvPgogIDxwYXRoIGQ9Ik01IDE5LjVBMy41IDMuNSAwIDAgMSA4LjUgMTZIMTJ2My41YTMuNSAzLjUgMCAxIDEtNyAweiIgLz4KICA8cGF0aCBkPSJNNSAxMi41QTMuNSAzLjUgMCAwIDEgOC41IDlIMTJ2N0g4LjVBMy41IDMuNSAwIDAgMSA1IDEyLjV6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/figma\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=figma instead. This icon will be removed in v1.0\n */\nconst Figma: IconNode = [\n ['path', { d: 'M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z' }],\n ['path', { d: 'M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z' }],\n ['path', { d: 'M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z' }],\n ['path', { d: 'M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z' }],\n ['path', { d: 'M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z' }],\n];\n\nexport default Figma;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-archive\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTEuNSIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxMnYtMSIgLz4KICA8cGF0aCBkPSJNOCAxOHYtMiIgLz4KICA8cGF0aCBkPSJNOCA3VjYiIC8+CiAgPGNpcmNsZSBjeD0iOCIgY3k9IjIwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-archive\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileArchive: IconNode = [\n [\n 'path',\n {\n d: 'M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 12v-1' }],\n ['path', { d: 'M8 18v-2' }],\n ['path', { d: 'M8 7V6' }],\n ['circle', { cx: '8', cy: '20', r: '2' }],\n];\n\nexport default FileArchive;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-axis-3d\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtOCAxOCA0LTQiIC8+CiAgPHBhdGggZD0iTTggMTB2OGg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-axis-3d\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileAxis3d: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm8 18 4-4' }],\n ['path', { d: 'M8 10v8h8' }],\n];\n\nexport default FileAxis3d;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-badge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuMyIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtNy42OSAxNi40NzkgMS4yOSA0Ljg4YS41LjUgMCAwIDEtLjY5OC41OTFsLTEuODQzLS44NDlhMSAxIDAgMCAwLS44NzkuMDAxbC0xLjg0Ni44NWEuNS41IDAgMCAxLS42OTItLjU5M2wxLjI5LTQuODgiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjE0IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-badge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileBadge: IconNode = [\n [\n 'path',\n {\n d: 'M13 22h5a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.3',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n {\n d: 'm7.69 16.479 1.29 4.88a.5.5 0 0 1-.698.591l-1.843-.849a1 1 0 0 0-.879.001l-1.846.85a.5.5 0 0 1-.692-.593l1.29-4.88',\n },\n ],\n ['circle', { cx: '6', cy: '14', r: '3' }],\n];\n\nexport default FileBadge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-braces-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMjJoNGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTUgMTRhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMCAxIDEiIC8+CiAgPHBhdGggZD0iTTkgMjJhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTJhMSAxIDAgMCAwLTEtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-braces-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileBracesCorner: IconNode = [\n [\n 'path',\n {\n d: 'M14 22h4a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M5 14a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1 1 1 0 0 1 1 1v2a1 1 0 0 0 1 1' }],\n ['path', { d: 'M9 22a1 1 0 0 0 1-1v-2a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-2a1 1 0 0 0-1-1' }],\n];\n\nexport default FileBracesCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-box\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuOCIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTEuNyAxNC4yIDcgMTdsLTQuNy0yLjgiIC8+CiAgPHBhdGggZD0iTTMgMTMuMWEyIDIgMCAwIDAtLjk5OSAxLjc2djMuMjRhMiAyIDAgMCAwIC45NjkgMS43OEw2IDIxLjdhMiAyIDAgMCAwIDIuMDMuMDFMMTEgMTkuOWEyIDIgMCAwIDAgMS0xLjc2VjE0LjlhMiAyIDAgMCAwLS45Ny0xLjc4TDggMTEuM2EyIDIgMCAwIDAtMi4wMy0uMDF6IiAvPgogIDxwYXRoIGQ9Ik03IDE3djUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-box\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileBox: IconNode = [\n [\n 'path',\n {\n d: 'M14.5 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.8',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M11.7 14.2 7 17l-4.7-2.8' }],\n [\n 'path',\n {\n d: 'M3 13.1a2 2 0 0 0-.999 1.76v3.24a2 2 0 0 0 .969 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01z',\n },\n ],\n ['path', { d: 'M7 17v5' }],\n];\n\nexport default FileBox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-braces\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMTJhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMCAxIDEiIC8+CiAgPHBhdGggZD0iTTE0IDE4YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMC0xLTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-braces\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileBraces: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1' }],\n ['path', { d: 'M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1' }],\n];\n\nexport default FileBraces;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-chart-column-increasing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxOHYtMiIgLz4KICA8cGF0aCBkPSJNMTIgMTh2LTQiIC8+CiAgPHBhdGggZD0iTTE2IDE4di02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-chart-column-increasing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileChartColumnIncreasing: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 18v-2' }],\n ['path', { d: 'M12 18v-4' }],\n ['path', { d: 'M16 18v-6' }],\n];\n\nexport default FileChartColumnIncreasing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-chart-column\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxOHYtMSIgLz4KICA8cGF0aCBkPSJNMTIgMTh2LTYiIC8+CiAgPHBhdGggZD0iTTE2IDE4di0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-chart-column\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileChartColumn: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 18v-1' }],\n ['path', { d: 'M12 18v-6' }],\n ['path', { d: 'M16 18v-3' }],\n];\n\nexport default FileChartColumn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-chart-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtMTYgMTMtMy41IDMuNS0yLTJMOCAxNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-chart-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileChartLine: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm16 13-3.5 3.5-2-2L8 17' }],\n];\n\nexport default FileChartLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-chart-pie\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuOTQxIDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My41MTIiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTQuMDE3IDExLjUxMmE2IDYgMCAxIDAgOC40NjYgOC40NzUiIC8+CiAgPHBhdGggZD0iTTkgMTZhMSAxIDAgMCAxLTEtMXYtNGMwLS41NTIuNDUtMS4wMDguOTk1LS45MTdhNiA2IDAgMCAxIDQuOTIyIDQuOTIyYy4wOTEuNTQ0LS4zNjUuOTk1LS45MTcuOTk1eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-chart-pie\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileChartPie: IconNode = [\n [\n 'path',\n {\n d: 'M15.941 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.704l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.512',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M4.017 11.512a6 6 0 1 0 8.466 8.475' }],\n [\n 'path',\n {\n d: 'M9 16a1 1 0 0 1-1-1v-4c0-.552.45-1.008.995-.917a6 6 0 0 1 4.922 4.922c.091.544-.365.995-.917.995z',\n },\n ],\n];\n\nexport default FileChartPie;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-check-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djYiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0ibTE0IDIwIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-check-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCheckCorner: IconNode = [\n [\n 'path',\n {\n d: 'M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm14 20 2 2 4-4' }],\n];\n\nexport default FileCheckCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjJoMmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjIuODUiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTggMTR2Mi4ybDEuNiAxIiAvPgogIDxjaXJjbGUgY3g9IjgiIGN5PSIxNiIgcj0iNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileClock: IconNode = [\n [\n 'path',\n {\n d: 'M16 22h2a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v2.85',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 14v2.2l1.6 1' }],\n ['circle', { cx: '8', cy: '16', r: '6' }],\n];\n\nexport default FileClock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtOSAxNSAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCheck: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm9 15 2 2 4-4' }],\n];\n\nexport default FileCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-code-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMi4xNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMy4zNSIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtNSAxNi0zIDMgMyAzIiAvPgogIDxwYXRoIGQ9Im05IDIyIDMtMy0zLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-code-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCodeCorner: IconNode = [\n [\n 'path',\n {\n d: 'M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm5 16-3 3 3 3' }],\n ['path', { d: 'm9 22 3-3-3-3' }],\n];\n\nexport default FileCodeCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMTIuNSA4IDE1bDIgMi41IiAvPgogIDxwYXRoIGQ9Im0xNCAxMi41IDIgMi41LTIgMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCode: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 12.5 8 15l2 2.5' }],\n ['path', { d: 'm14 12.5 2 2.5-2 2.5' }],\n];\n\nexport default FileCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgOGExIDEgMCAwIDEtMS0xVjJhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4eiIgLz4KICA8cGF0aCBkPSJNMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC00LjE4MiIgLz4KICA8cGF0aCBkPSJtMy4zMDUgMTkuNTMuOTIzLS4zODIiIC8+CiAgPHBhdGggZD0iTTQgMTAuNTkyVjRhMiAyIDAgMCAxIDItMmg4IiAvPgogIDxwYXRoIGQ9Im00LjIyOCAxNi44NTItLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im01Ljg1MiAxNS4yMjgtLjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im01Ljg1MiAyMC43NzItLjM4My45MjQiIC8+CiAgPHBhdGggZD0ibTguMTQ4IDE1LjIyOC4zODMtLjkyMyIgLz4KICA8cGF0aCBkPSJtOC41MyAyMS42OTYtLjM4Mi0uOTI0IiAvPgogIDxwYXRoIGQ9Im05Ljc3MyAxNi44NTIuOTIyLS4zODMiIC8+CiAgPHBhdGggZD0ibTkuNzczIDE5LjE0OC45MjIuMzgzIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileCog: IconNode = [\n ['path', { d: 'M15 8a1 1 0 0 1-1-1V2a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8z' }],\n ['path', { d: 'M20 8v12a2 2 0 0 1-2 2h-4.182' }],\n ['path', { d: 'm3.305 19.53.923-.382' }],\n ['path', { d: 'M4 10.592V4a2 2 0 0 1 2-2h8' }],\n ['path', { d: 'm4.228 16.852-.924-.383' }],\n ['path', { d: 'm5.852 15.228-.383-.923' }],\n ['path', { d: 'm5.852 20.772-.383.924' }],\n ['path', { d: 'm8.148 15.228.383-.923' }],\n ['path', { d: 'm8.53 21.696-.382-.924' }],\n ['path', { d: 'm9.773 16.852.922-.383' }],\n ['path', { d: 'm9.773 19.148.922.383' }],\n ['circle', { cx: '7', cy: '18', r: '3' }],\n];\n\nexport default FileCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-diff\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNOSAxMGg2IiAvPgogIDxwYXRoIGQ9Ik0xMiAxM1Y3IiAvPgogIDxwYXRoIGQ9Ik05IDE3aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-diff\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileDiff: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M9 10h6' }],\n ['path', { d: 'M12 13V7' }],\n ['path', { d: 'M9 17h6' }],\n];\n\nexport default FileDiff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-digit\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMTZoMnY2IiAvPgogIDxwYXRoIGQ9Ik0xMCAyMmg0IiAvPgogIDxyZWN0IHg9IjIiIHk9IjE2IiB3aWR0aD0iNCIgaGVpZ2h0PSI2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-digit\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileDigit: IconNode = [\n [\n 'path',\n {\n d: 'M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 16h2v6' }],\n ['path', { d: 'M10 22h4' }],\n ['rect', { x: '2', y: '16', width: '4', height: '6', rx: '2' }],\n];\n\nexport default FileDigit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTIgMTh2LTYiIC8+CiAgPHBhdGggZD0ibTkgMTUgMyAzIDMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileDown: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M12 18v-6' }],\n ['path', { d: 'm9 15 3 3 3-3' }],\n];\n\nexport default FileDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-exclamation-point\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTIgOXY0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxN2guMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-exclamation-point\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileExclamationPoint: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M12 9v4' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default FileExclamationPoint;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-headphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA2LjgzNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtLjM0MyIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMiAxOWEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAxLTQgMHYtNGE2IDYgMCAwIDEgMTIgMHY0YTIgMiAwIDAgMS00IDB2LTFhMiAyIDAgMCAxIDQgMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-headphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileHeadphone: IconNode = [\n [\n 'path',\n {\n d: 'M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n { d: 'M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0' },\n ],\n];\n\nexport default FileHeadphone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjciIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTMuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgNyAxNS44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YTEgMSAwIDAgMS0xLjUwNyAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileHeart: IconNode = [\n [\n 'path',\n {\n d: 'M13 22h5a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v7',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n {\n d: 'M3.62 18.8A2.25 2.25 0 1 1 7 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a1 1 0 0 1-1.507 0z',\n },\n ],\n];\n\nexport default FileHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-image\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjEyIiByPSIyIiAvPgogIDxwYXRoIGQ9Im0yMCAxNy0xLjI5Ni0xLjI5NmEyLjQxIDIuNDEgMCAwIDAtMy40MDggMEw5IDIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-image\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileImage: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['circle', { cx: '10', cy: '12', r: '2' }],\n ['path', { d: 'm20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22' }],\n];\n\nexport default FileImage;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-input\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTEiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTIgMTVoMTAiIC8+CiAgPHBhdGggZD0ibTkgMTggMy0zLTMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-input\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileInput: IconNode = [\n [\n 'path',\n {\n d: 'M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-1',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M2 15h10' }],\n ['path', { d: 'm9 18 3-3-3-3' }],\n];\n\nexport default FileInput;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNNCAxMnY2IiAvPgogIDxwYXRoIGQ9Ik00IDE0aDIiIC8+CiAgPHBhdGggZD0iTTkuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY0IiAvPgogIDxjaXJjbGUgY3g9IjQiIGN5PSIyMCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileKey: IconNode = [\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M4 12v6' }],\n ['path', { d: 'M4 14h2' }],\n [\n 'path',\n {\n d: 'M9.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v4',\n },\n ],\n ['circle', { cx: '4', cy: '20', r: '2' }],\n];\n\nexport default FileKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA5LjhWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLTMiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTkgMTd2LTJhMiAyIDAgMCAwLTQgMHYyIiAvPgogIDxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjUiIHg9IjMiIHk9IjE3IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileLock: IconNode = [\n [\n 'path',\n {\n d: 'M4 9.8V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M9 17v-2a2 2 0 0 0-4 0v2' }],\n ['rect', { width: '8', height: '5', x: '3', y: '17', rx: '1' }],\n];\n\nexport default FileLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-minus-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTRWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTQgMThoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-minus-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileMinusCorner: IconNode = [\n [\n 'path',\n {\n d: 'M20 14V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M14 18h6' }],\n];\n\nexport default FileMinusCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOSAxNWg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileMinus: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M9 15h6' }],\n];\n\nexport default FileMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-music\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxMC4zNSIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAyMHYtN2wzIDEuNDc0IiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSIyMCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-music\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileMusic: IconNode = [\n [\n 'path',\n {\n d: 'M11.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v10.35',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 20v-7l3 1.474' }],\n ['circle', { cx: '6', cy: '20', r: '2' }],\n];\n\nexport default FileMusic;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-output\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC4yMjYgMjAuOTI1QTIgMiAwIDAgMCA2IDIyaDEyYTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My4xMjciIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0ibTUgMTEtMyAzIiAvPgogIDxwYXRoIGQ9Im01IDE3LTMtM2gxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-output\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileOutput: IconNode = [\n [\n 'path',\n {\n d: 'M4.226 20.925A2 2 0 0 0 6 22h12a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.127',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm5 11-3 3' }],\n ['path', { d: 'm5 17-3-3h10' }],\n];\n\nexport default FileOutput;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-pen-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTguMjI2IDUuMjI2LTIuNTItMi41MkEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtLjM1MSIgLz4KICA8cGF0aCBkPSJNMjEuMzc4IDEyLjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6IiAvPgogIDxwYXRoIGQ9Ik04IDE4aDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-pen-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FilePenLine: IconNode = [\n [\n 'path',\n {\n d: 'm18.226 5.226-2.52-2.52A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.351',\n },\n ],\n [\n 'path',\n {\n d: 'M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n ['path', { d: 'M8 18h1' }],\n];\n\nexport default FilePenLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2OS4zNCIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAuMzc4IDEyLjYyMmExIDEgMCAwIDEgMyAzLjAwM0w4LjM2IDIwLjYzN2EyIDIgMCAwIDEtLjg1NC41MDZsLTIuODY3LjgzN2EuNS41IDAgMCAxLS42Mi0uNjJsLjgzNi0yLjg2OWEyIDIgMCAwIDEgLjUwNi0uODUzeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FilePen: IconNode = [\n [\n 'path',\n {\n d: 'M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n {\n d: 'M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z',\n },\n ],\n];\n\nexport default FilePen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTUuMDMzIDEzLjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZ2LTQuNzA0YS42NDUuNjQ1IDAgMCAxIC45NjctLjU2eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FilePlay: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n {\n d: 'M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z',\n },\n ],\n];\n\nexport default FilePlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-plus-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMzUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1LjM1IiAvPgogIDxwYXRoIGQ9Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiAvPgogIDxwYXRoIGQ9Ik0xNCAxOWg2IiAvPgogIDxwYXRoIGQ9Ik0xNyAxNnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-plus-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FilePlusCorner: IconNode = [\n [\n 'path',\n {\n d: 'M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M14 19h6' }],\n ['path', { d: 'M17 16v6' }],\n];\n\nexport default FilePlusCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgogIDxwYXRoIGQ9Ik05LjEgOWEzIDMgMCAwIDEgNS44MiAxYzAgMi0zIDMtMyAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileQuestionMark: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M12 17h.01' }],\n ['path', { d: 'M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3' }],\n];\n\nexport default FileQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOSAxNWg2IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOHYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FilePlus: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M9 15h6' }],\n ['path', { d: 'M12 18v-6' }],\n];\n\nexport default FilePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-scan\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmg0LjM1IiAvPgogIDxwYXRoIGQ9Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiAvPgogIDxwYXRoIGQ9Ik0xNiAxNGEyIDIgMCAwIDAtMiAyIiAvPgogIDxwYXRoIGQ9Ik0xNiAyMmEyIDIgMCAwIDEtMi0yIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGEyIDIgMCAwIDEgMiAyIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMmEyIDIgMCAwIDAgMi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-scan\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileScan: IconNode = [\n [\n 'path',\n {\n d: 'M20 10V8a2.4 2.4 0 0 0-.706-1.704l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.35',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M16 14a2 2 0 0 0-2 2' }],\n ['path', { d: 'M16 22a2 2 0 0 1-2-2' }],\n ['path', { d: 'M20 14a2 2 0 0 1 2 2' }],\n ['path', { d: 'M20 22a2 2 0 0 0 2-2' }],\n];\n\nexport default FileScan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8Y2lyY2xlIGN4PSIxMS41IiBjeT0iMTQuNSIgcj0iMi41IiAvPgogIDxwYXRoIGQ9Ik0xMy4zIDE2LjMgMTUgMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSearch: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['circle', { cx: '11.5', cy: '14.5', r: '2.5' }],\n ['path', { d: 'M13.3 16.3 15 18' }],\n];\n\nexport default FileSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-search-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODkgMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djMuMjUiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0ibTIxIDIyLTIuODgtMi44OCIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE3IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-search-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSearchCorner: IconNode = [\n [\n 'path',\n {\n d: 'M11.1 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.589 3.588A2.4 2.4 0 0 1 20 8v3.25',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm21 22-2.88-2.88' }],\n ['circle', { cx: '16', cy: '17', r: '3' }],\n];\n\nexport default FileSearchCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-signal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxNWguMDEiIC8+CiAgPHBhdGggZD0iTTExLjUgMTMuNWEyLjUgMi41IDAgMCAxIDAgMyIgLz4KICA8cGF0aCBkPSJNMTUgMTJhNSA1IDAgMCAxIDAgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-signal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSignal: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 15h.01' }],\n ['path', { d: 'M11.5 13.5a2.5 2.5 0 0 1 0 3' }],\n ['path', { d: 'M15 12a5 5 0 0 1 0 6' }],\n];\n\nexport default FileSignal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-sliders\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMCAxMXYyIiAvPgogIDxwYXRoIGQ9Ik04IDE3aDgiIC8+CiAgPHBhdGggZD0iTTE0IDE2djIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-sliders\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSliders: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'M10 11v2' }],\n ['path', { d: 'M8 17h8' }],\n ['path', { d: 'M14 16v2' }],\n];\n\nexport default FileSliders;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-spreadsheet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxM2gyIiAvPgogIDxwYXRoIGQ9Ik0xNCAxM2gyIiAvPgogIDxwYXRoIGQ9Ik04IDE3aDIiIC8+CiAgPHBhdGggZD0iTTE0IDE3aDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-spreadsheet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSpreadsheet: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 13h2' }],\n ['path', { d: 'M14 13h2' }],\n ['path', { d: 'M8 17h2' }],\n ['path', { d: 'M14 17h2' }],\n];\n\nexport default FileSpreadsheet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-stack\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjFhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTF2LThhMSAxIDAgMCAxIDEtMSIgLz4KICA8cGF0aCBkPSJNMTYgMTZhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTFWOGExIDEgMCAwIDEgMS0xIiAvPgogIDxwYXRoIGQ9Ik0yMSA2YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0yLTJBMiAyIDAgMCAwIDE3IDJoLTNhMSAxIDAgMCAwLTEgMXY4YTEgMSAwIDAgMCAxIDFoNmExIDEgMCAwIDAgMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-stack\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileStack: IconNode = [\n ['path', { d: 'M11 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1' }],\n ['path', { d: 'M16 16a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1' }],\n [\n 'path',\n {\n d: 'M21 6a2 2 0 0 0-.586-1.414l-2-2A2 2 0 0 0 17 2h-3a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1z',\n },\n ],\n];\n\nexport default FileStack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-symlink\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3IiAvPgogIDxwYXRoIGQ9Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiAvPgogIDxwYXRoIGQ9Im0xMCAxOCAzLTMtMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-symlink\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileSymlink: IconNode = [\n [\n 'path',\n {\n d: 'M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm10 18 3-3-3-3' }],\n];\n\nexport default FileSymlink;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-terminal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtOCAxNiAyLTItMi0yIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-terminal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileTerminal: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm8 16 2-2-2-2' }],\n ['path', { d: 'M12 18h4' }],\n];\n\nexport default FileTerminal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgOUg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxM0g4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileText: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 9H8' }],\n ['path', { d: 'M16 13H8' }],\n ['path', { d: 'M16 17H8' }],\n];\n\nexport default FileText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-type-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJoNmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYiIC8+CiAgPHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiIC8+CiAgPHBhdGggZD0iTTMgMTZ2LTEuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41VjE2IiAvPgogIDxwYXRoIGQ9Ik02IDIyaDIiIC8+CiAgPHBhdGggZD0iTTcgMTR2OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-type-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileTypeCorner: IconNode = [\n [\n 'path',\n {\n d: 'M12 22h6a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M3 16v-1.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5V16' }],\n ['path', { d: 'M6 22h2' }],\n ['path', { d: 'M7 14v8' }],\n];\n\nexport default FileTypeCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-type\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTEgMThoMiIgLz4KICA8cGF0aCBkPSJNMTIgMTJ2NiIgLz4KICA8cGF0aCBkPSJNOSAxM3YtLjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgLjUuNXYuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-type\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileType: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M11 18h2' }],\n ['path', { d: 'M12 12v6' }],\n ['path', { d: 'M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5' }],\n];\n\nexport default FileType;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTIgMTJ2NiIgLz4KICA8cGF0aCBkPSJtMTUgMTUtMy0zLTMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileUp: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M12 12v6' }],\n ['path', { d: 'm15 15-3-3-3 3' }],\n];\n\nexport default FileUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTYgMjJhNCA0IDAgMCAwLTggMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE1IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileUser: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M16 22a4 4 0 0 0-8 0' }],\n ['circle', { cx: '12', cy: '15', r: '3' }],\n];\n\nexport default FileUser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-video-camera\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtMTAgMTcuODQzIDMuMDMzLTEuNzU1YS42NC42NCAwIDAgMSAuOTY3LjU2djQuNzA0YS42NS42NSAwIDAgMS0uOTY3LjU2TDEwIDIwLjE1NyIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI2IiB4PSIzIiB5PSIxNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-video-camera\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileVideoCamera: IconNode = [\n [\n 'path',\n {\n d: 'M4 12V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n [\n 'path',\n { d: 'm10 17.843 3.033-1.755a.64.64 0 0 1 .967.56v4.704a.65.65 0 0 1-.967.56L10 20.157' },\n ],\n ['rect', { width: '7', height: '6', x: '3', y: '16', rx: '1' }],\n];\n\nexport default FileVideoCamera;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-volume\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMS41NVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMS45NSIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTIgMTVhNSA1IDAgMCAxIDAgNiIgLz4KICA8cGF0aCBkPSJNOCAxNC41MDJhLjUuNSAwIDAgMC0uODI2LS4zODFsLTEuODkzIDEuNjMxYTEgMSAwIDAgMS0uNjUxLjI0M0gzLjVhLjUuNSAwIDAgMC0uNS41MDF2My4wMDZhLjUuNSAwIDAgMCAuNS41MDFoMS4xMjlhMSAxIDAgMCAxIC42NTIuMjQzbDEuODkzIDEuNjMzYS41LjUgMCAwIDAgLjgyNi0uMzh6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-volume\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileVolume: IconNode = [\n [\n 'path',\n {\n d: 'M4 11.55V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-1.95',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M12 15a5 5 0 0 1 0 6' }],\n [\n 'path',\n {\n d: 'M8 14.502a.5.5 0 0 0-.826-.381l-1.893 1.631a1 1 0 0 1-.651.243H3.5a.5.5 0 0 0-.5.501v3.006a.5.5 0 0 0 .5.501h1.129a1 1 0 0 1 .652.243l1.893 1.633a.5.5 0 0 0 .826-.38z',\n },\n ],\n];\n\nexport default FileVolume;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-x-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1IiAvPgogIDxwYXRoIGQ9Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1IiAvPgogIDxwYXRoIGQ9Im0xNSAxNyA1IDUiIC8+CiAgPHBhdGggZD0ibTIwIDE3LTUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file-x-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileXCorner: IconNode = [\n [\n 'path',\n {\n d: 'M11 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm15 17 5 5' }],\n ['path', { d: 'm20 17-5 5' }],\n];\n\nexport default FileXCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJtMTQuNSAxMi41LTUgNSIgLz4KICA8cGF0aCBkPSJtOS41IDEyLjUgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FileX: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'm14.5 12.5-5 5' }],\n ['path', { d: 'm9.5 12.5 5 5' }],\n];\n\nexport default FileX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name file\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst File: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n];\n\nexport default File;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name files\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMmgtNGEyIDIgMCAwIDAtMiAydjExYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjgiIC8+CiAgPHBhdGggZD0iTTE2LjcwNiAyLjcwNkEyLjQgMi40IDAgMCAwIDE1IDJ2NWExIDEgMCAwIDAgMSAxaDVhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2eiIgLz4KICA8cGF0aCBkPSJNNSA3YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAxLjczMi0xIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/files\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Files: IconNode = [\n ['path', { d: 'M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8' }],\n ['path', { d: 'M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z' }],\n ['path', { d: 'M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1' }],\n];\n\nexport default Files;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name film\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDN2MTgiIC8+CiAgPHBhdGggZD0iTTMgNy41aDQiIC8+CiAgPHBhdGggZD0iTTMgMTJoMTgiIC8+CiAgPHBhdGggZD0iTTMgMTYuNWg0IiAvPgogIDxwYXRoIGQ9Ik0xNyAzdjE4IiAvPgogIDxwYXRoIGQ9Ik0xNyA3LjVoNCIgLz4KICA8cGF0aCBkPSJNMTcgMTYuNWg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/film\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Film: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 3v18' }],\n ['path', { d: 'M3 7.5h4' }],\n ['path', { d: 'M3 12h18' }],\n ['path', { d: 'M3 16.5h4' }],\n ['path', { d: 'M17 3v18' }],\n ['path', { d: 'M17 7.5h4' }],\n ['path', { d: 'M17 16.5h4' }],\n];\n\nexport default Film;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fingerprint-pattern\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTBhMiAyIDAgMCAwLTIgMmMwIDEuMDItLjEgMi41MS0uMjYgNCIgLz4KICA8cGF0aCBkPSJNMTQgMTMuMTJjMCAyLjM4IDAgNi4zOC0xIDguODgiIC8+CiAgPHBhdGggZD0iTTE3LjI5IDIxLjAyYy4xMi0uNi40My0yLjMuNS0zLjAyIiAvPgogIDxwYXRoIGQ9Ik0yIDEyYTEwIDEwIDAgMCAxIDE4LTYiIC8+CiAgPHBhdGggZD0iTTIgMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yMS44IDE2Yy4yLTIgLjEzMS01LjM1NCAwLTYiIC8+CiAgPHBhdGggZD0iTTUgMTkuNUM1LjUgMTggNiAxNSA2IDEyYTYgNiAwIDAgMSAuMzQtMiIgLz4KICA8cGF0aCBkPSJNOC42NSAyMmMuMjEtLjY2LjQ1LTEuMzIuNTctMiIgLz4KICA8cGF0aCBkPSJNOSA2LjhhNiA2IDAgMCAxIDkgNS4ydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/fingerprint-pattern\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FingerprintPattern: IconNode = [\n ['path', { d: 'M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4' }],\n ['path', { d: 'M14 13.12c0 2.38 0 6.38-1 8.88' }],\n ['path', { d: 'M17.29 21.02c.12-.6.43-2.3.5-3.02' }],\n ['path', { d: 'M2 12a10 10 0 0 1 18-6' }],\n ['path', { d: 'M2 16h.01' }],\n ['path', { d: 'M21.8 16c.2-2 .131-5.354 0-6' }],\n ['path', { d: 'M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2' }],\n ['path', { d: 'M8.65 22c.21-.66.45-1.32.57-2' }],\n ['path', { d: 'M9 6.8a6 6 0 0 1 9 5.2v2' }],\n];\n\nexport default FingerprintPattern;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fire-extinguisher\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNi41VjNhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMuNSIgLz4KICA8cGF0aCBkPSJNOSAxOGg4IiAvPgogIDxwYXRoIGQ9Ik0xOCAzaC0zIiAvPgogIDxwYXRoIGQ9Ik0xMSAzYTYgNiAwIDAgMC02IDZ2MTEiIC8+CiAgPHBhdGggZD0iTTUgMTNoNCIgLz4KICA8cGF0aCBkPSJNMTcgMTBhNCA0IDAgMCAwLTggMHYxMGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/fire-extinguisher\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FireExtinguisher: IconNode = [\n ['path', { d: 'M15 6.5V3a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3.5' }],\n ['path', { d: 'M9 18h8' }],\n ['path', { d: 'M18 3h-3' }],\n ['path', { d: 'M11 3a6 6 0 0 0-6 6v11' }],\n ['path', { d: 'M5 13h4' }],\n ['path', { d: 'M17 10a4 4 0 0 0-8 0v10a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2Z' }],\n];\n\nexport default FireExtinguisher;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fish-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTIuNDd2LjAzbTAtLjV2LjQ3bS0uNDc1IDUuMDU2QTYuNzQ0IDYuNzQ0IDAgMCAxIDE1IDE4Yy0zLjU2IDAtNy41Ni0yLjUzLTguNS02IC4zNDgtMS4yOCAxLjExNC0yLjQzMyAyLjEyMS0zLjM4bTMuNDQ0LTIuMDg4QTguODAyIDguODAyIDAgMCAxIDE1IDZjMy41NiAwIDYuMDYgMi41NCA3IDYtLjMwOSAxLjE0LS43ODYgMi4xNzctMS40MTMgMy4wNTgiIC8+CiAgPHBhdGggZD0iTTcgMTAuNjdDNyA4IDUuNTggNS45NyAyLjczIDUuNWMtMSAxLjUtMSA1IC4yMyA2LjUtMS4yNCAxLjUtMS4yNCA1LS4yMyA2LjVDNS41OCAxOC4wMyA3IDE2IDcgMTMuMzNtNy40OC00LjM3MkE5Ljc3IDkuNzcgMCAwIDEgMTYgNi4wN20wIDExLjg2YTkuNzcgOS43NyAwIDAgMS0xLjcyOC0zLjYxOCIgLz4KICA8cGF0aCBkPSJtMTYuMDEgMTcuOTMtLjIzIDEuNEEyIDIgMCAwIDEgMTMuOCAyMUg5LjVhNS45NiA1Ljk2IDAgMCAwIDEuNDktMy45OE04LjUzIDNoNS4yN2EyIDIgMCAwIDEgMS45OCAxLjY3bC4yMyAxLjRNMiAybDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/fish-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FishOff: IconNode = [\n [\n 'path',\n {\n d: 'M18 12.47v.03m0-.5v.47m-.475 5.056A6.744 6.744 0 0 1 15 18c-3.56 0-7.56-2.53-8.5-6 .348-1.28 1.114-2.433 2.121-3.38m3.444-2.088A8.802 8.802 0 0 1 15 6c3.56 0 6.06 2.54 7 6-.309 1.14-.786 2.177-1.413 3.058',\n },\n ],\n [\n 'path',\n {\n d: 'M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33m7.48-4.372A9.77 9.77 0 0 1 16 6.07m0 11.86a9.77 9.77 0 0 1-1.728-3.618',\n },\n ],\n [\n 'path',\n {\n d: 'm16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98M8.53 3h5.27a2 2 0 0 1 1.98 1.67l.23 1.4M2 2l20 20',\n },\n ],\n];\n\nexport default FishOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fish-symbol\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxNnM5LTE1IDIwLTRDMTEgMjMgMiA4IDIgOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/fish-symbol\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FishSymbol: IconNode = [['path', { d: 'M2 16s9-15 20-4C11 23 2 8 2 8' }]];\n\nexport default FishSymbol;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fish\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNi41IDEyYy45NC0zLjQ2IDQuOTQtNiA4LjUtNiAzLjU2IDAgNi4wNiAyLjU0IDcgNi0uOTQgMy40Ny0zLjQ0IDYtNyA2cy03LjU2LTIuNTMtOC41LTZaIiAvPgogIDxwYXRoIGQ9Ik0xOCAxMnYuNSIgLz4KICA8cGF0aCBkPSJNMTYgMTcuOTNhOS43NyA5Ljc3IDAgMCAxIDAtMTEuODYiIC8+CiAgPHBhdGggZD0iTTcgMTAuNjdDNyA4IDUuNTggNS45NyAyLjczIDUuNWMtMSAxLjUtMSA1IC4yMyA2LjUtMS4yNCAxLjUtMS4yNCA1LS4yMyA2LjVDNS41OCAxOC4wMyA3IDE2IDcgMTMuMzMiIC8+CiAgPHBhdGggZD0iTTEwLjQ2IDcuMjZDMTAuMiA1Ljg4IDkuMTcgNC4yNCA4IDNoNS44YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNCIgLz4KICA8cGF0aCBkPSJtMTYuMDEgMTcuOTMtLjIzIDEuNEEyIDIgMCAwIDEgMTMuOCAyMUg5LjVhNS45NiA1Ljk2IDAgMCAwIDEuNDktMy45OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/fish\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Fish: IconNode = [\n [\n 'path',\n {\n d: 'M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z',\n },\n ],\n ['path', { d: 'M18 12v.5' }],\n ['path', { d: 'M16 17.93a9.77 9.77 0 0 1 0-11.86' }],\n [\n 'path',\n {\n d: 'M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33',\n },\n ],\n ['path', { d: 'M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4' }],\n ['path', { d: 'm16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98' }],\n];\n\nexport default Fish;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fishing-hook\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcuNTg2IDExLjQxNC01LjkzIDUuOTNhMSAxIDAgMCAxLTgtOGwzLjEzNy0zLjEzN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy41VjEwIiAvPgogIDxwYXRoIGQ9Ik0yMC40MTQgOC41ODYgMjIgNyIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjEwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/fishing-hook\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FishingHook: IconNode = [\n ['path', { d: 'm17.586 11.414-5.93 5.93a1 1 0 0 1-8-8l3.137-3.137a.707.707 0 0 1 1.207.5V10' }],\n ['path', { d: 'M20.414 8.586 22 7' }],\n ['circle', { cx: '19', cy: '10', r: '2' }],\n];\n\nexport default FishingHook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flag-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTZjLTMgMC01LTItOC0yYTYgNiAwIDAgMC00IDEuNTI4IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTQgMjJWNCIgLz4KICA8cGF0aCBkPSJNNy42NTYgMkg4YzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTAuMzQ3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/flag-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlagOff: IconNode = [\n ['path', { d: 'M16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M4 22V4' }],\n ['path', { d: 'M7.656 2H8c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10.347' }],\n];\n\nexport default FlagOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flag-triangle-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMjJWMi44YS44LjggMCAwIDAtMS4xNy0uNzFMNS40NSA3Ljc4YS44LjggMCAwIDAgMCAxLjQ0TDE4IDE1LjUiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/flag-triangle-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlagTriangleLeft: IconNode = [\n ['path', { d: 'M18 22V2.8a.8.8 0 0 0-1.17-.71L5.45 7.78a.8.8 0 0 0 0 1.44L18 15.5' }],\n];\n\nexport default FlagTriangleLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flag-triangle-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMlYyLjhhLjguOCAwIDAgMSAxLjE3LS43MWwxMS4zOCA1LjY5YS44LjggMCAwIDEgMCAxLjQ0TDYgMTUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/flag-triangle-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlagTriangleRight: IconNode = [\n ['path', { d: 'M6 22V2.8a.8.8 0 0 1 1.17-.71l11.38 5.69a.8.8 0 0 1 0 1.44L6 15.5' }],\n];\n\nexport default FlagTriangleRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMlY0YTEgMSAwIDAgMSAuNC0uOEE2IDYgMCAwIDEgOCAyYzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTBhMSAxIDAgMCAxLS40LjhBNiA2IDAgMCAxIDE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/flag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flag: IconNode = [\n [\n 'path',\n {\n d: 'M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528',\n },\n ],\n];\n\nexport default Flag;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flame-kindling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAxNyAxMGE1IDUgMCAxIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDOCA0LjUgMTEgMiAxMiAyWiIgLz4KICA8cGF0aCBkPSJtNSAyMiAxNC00IiAvPgogIDxwYXRoIGQ9Im01IDE4IDE0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flame-kindling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlameKindling: IconNode = [\n [\n 'path',\n {\n d: 'M12 2c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 17 10a5 5 0 1 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C8 4.5 11 2 12 2Z',\n },\n ],\n ['path', { d: 'm5 22 14-4' }],\n ['path', { d: 'm5 18 14 4' }],\n];\n\nexport default FlameKindling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flame\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3ExIDQgNCA2LjV0MyA1LjVhMSAxIDAgMCAxLTE0IDAgNSA1IDAgMCAxIDEtMyAxIDEgMCAwIDAgNSAwYzAtMi0xLjUtMy0xLjUtNXEwLTIgMi41LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flame\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flame: IconNode = [\n [\n 'path',\n {\n d: 'M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4',\n },\n ],\n];\n\nexport default Flame;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flashlight-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNjUyIDZIMTgiIC8+CiAgPHBhdGggZD0iTTEyIDEzdjEiIC8+CiAgPHBhdGggZD0iTTE2IDE2djRhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0ydi04YTQgNCAwIDAgMC0uOC0yLjRsLS42LS44QTMgMyAwIDAgMSA2IDdWNiIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik03LjY0OSAySDE3YTEgMSAwIDAgMSAxIDF2NGEzIDMgMCAwIDEtLjYgMS44bC0uNi44YTQgNCAwIDAgMC0uNTUgMS4wMDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flashlight-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlashlightOff: IconNode = [\n ['path', { d: 'M11.652 6H18' }],\n ['path', { d: 'M12 13v1' }],\n [\n 'path',\n { d: 'M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V6' },\n ],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M7.649 2H17a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8a4 4 0 0 0-.55 1.007' }],\n];\n\nexport default FlashlightOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flashlight\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2MSIgLz4KICA8cGF0aCBkPSJNMTcgMmExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOEE0IDQgMCAwIDAgMTYgMTJ2OGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LThhNCA0IDAgMCAwLS44LTIuNGwtLjYtLjhBMyAzIDAgMCAxIDYgN1YzYTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik02IDZoMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flashlight\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flashlight: IconNode = [\n ['path', { d: 'M12 13v1' }],\n [\n 'path',\n {\n d: 'M17 2a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8A4 4 0 0 0 16 12v8a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V3a1 1 0 0 1 1-1z',\n },\n ],\n ['path', { d: 'M6 6h12' }],\n];\n\nexport default Flashlight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flask-conical-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnYyLjM0MyIgLz4KICA8cGF0aCBkPSJNMTQgMnY2LjM0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTEuNzU1LTIuOTZsNS4yMjctOS41NjMiIC8+CiAgPHBhdGggZD0iTTYuNDUzIDE1SDE1IiAvPgogIDxwYXRoIGQ9Ik04LjUgMmg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/flask-conical-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlaskConicalOff: IconNode = [\n ['path', { d: 'M10 2v2.343' }],\n ['path', { d: 'M14 2v6.343' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20 20a2 2 0 0 1-2 2H6a2 2 0 0 1-1.755-2.96l5.227-9.563' }],\n ['path', { d: 'M6.453 15H15' }],\n ['path', { d: 'M8.5 2h7' }],\n];\n\nexport default FlaskConicalOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flask-conical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMnY2YTIgMiAwIDAgMCAuMjQ1Ljk2bDUuNTEgMTAuMDhBMiAyIDAgMCAxIDE4IDIySDZhMiAyIDAgMCAxLTEuNzU1LTIuOTZsNS41MS0xMC4wOEEyIDIgMCAwIDAgMTAgOFYyIiAvPgogIDxwYXRoIGQ9Ik02LjQ1MyAxNWgxMS4wOTQiIC8+CiAgPHBhdGggZD0iTTguNSAyaDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flask-conical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlaskConical: IconNode = [\n [\n 'path',\n {\n d: 'M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2',\n },\n ],\n ['path', { d: 'M6.453 15h11.094' }],\n ['path', { d: 'M8.5 2h7' }],\n];\n\nexport default FlaskConical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flask-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnY2LjI5MmE3IDcgMCAxIDAgNCAwVjIiIC8+CiAgPHBhdGggZD0iTTUgMTVoMTQiIC8+CiAgPHBhdGggZD0iTTguNSAyaDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flask-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlaskRound: IconNode = [\n ['path', { d: 'M10 2v6.292a7 7 0 1 0 4 0V2' }],\n ['path', { d: 'M5 15h14' }],\n ['path', { d: 'M8.5 2h7' }],\n];\n\nexport default FlaskRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flip-horizontal-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyA3IDUgNS01IDVWNyIgLz4KICA8cGF0aCBkPSJtMjEgNy01IDUgNSA1VjciIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0iTTEyIDE0djIiIC8+CiAgPHBhdGggZD0iTTEyIDh2MiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/flip-horizontal-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlipHorizontal2: IconNode = [\n ['path', { d: 'm3 7 5 5-5 5V7' }],\n ['path', { d: 'm21 7-5 5 5 5V7' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'M12 14v2' }],\n ['path', { d: 'M12 8v2' }],\n ['path', { d: 'M12 2v2' }],\n];\n\nexport default FlipHorizontal2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flip-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDMiIC8+CiAgPHBhdGggZD0iTTE2IDNoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTMiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0iTTEyIDE0djIiIC8+CiAgPHBhdGggZD0iTTEyIDh2MiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/flip-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlipHorizontal: IconNode = [\n ['path', { d: 'M8 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h3' }],\n ['path', { d: 'M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'M12 14v2' }],\n ['path', { d: 'M12 8v2' }],\n ['path', { d: 'M12 2v2' }],\n];\n\nexport default FlipHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flip-vertical-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMy01IDUtNS01aDEwIiAvPgogIDxwYXRoIGQ9Im0xNyAyMS01LTUtNSA1aDEwIiAvPgogIDxwYXRoIGQ9Ik00IDEySDIiIC8+CiAgPHBhdGggZD0iTTEwIDEySDgiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC0yIiAvPgogIDxwYXRoIGQ9Ik0yMiAxMmgtMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/flip-vertical-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlipVertical2: IconNode = [\n ['path', { d: 'm17 3-5 5-5-5h10' }],\n ['path', { d: 'm17 21-5-5-5 5h10' }],\n ['path', { d: 'M4 12H2' }],\n ['path', { d: 'M10 12H8' }],\n ['path', { d: 'M16 12h-2' }],\n ['path', { d: 'M22 12h-2' }],\n];\n\nexport default FlipVertical2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flip-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjMiIC8+CiAgPHBhdGggZD0iTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMiIC8+CiAgPHBhdGggZD0iTTQgMTJIMiIgLz4KICA8cGF0aCBkPSJNMTAgMTJIOCIgLz4KICA8cGF0aCBkPSJNMTYgMTJoLTIiIC8+CiAgPHBhdGggZD0iTTIyIDEyaC0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/flip-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FlipVertical: IconNode = [\n ['path', { d: 'M21 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v3' }],\n ['path', { d: 'M21 16v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3' }],\n ['path', { d: 'M4 12H2' }],\n ['path', { d: 'M10 12H8' }],\n ['path', { d: 'M16 12h-2' }],\n ['path', { d: 'M22 12h-2' }],\n];\n\nexport default FlipVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flower-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNWEzIDMgMCAxIDEgMyAzbS0zLTNhMyAzIDAgMSAwLTMgM20zLTN2MU05IDhhMyAzIDAgMSAwIDMgM005IDhoMW01IDBhMyAzIDAgMSAxLTMgM20zLTNoLTFtLTIgM3YtMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjgiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDEwdjEyIiAvPgogIDxwYXRoIGQ9Ik0xMiAyMmM0LjIgMCA3LTEuNjY3IDctNS00LjIgMC03IDEuNjY3LTcgNVoiIC8+CiAgPHBhdGggZD0iTTEyIDIyYy00LjIgMC03LTEuNjY3LTctNSA0LjIgMCA3IDEuNjY3IDcgNVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flower-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flower2: IconNode = [\n [\n 'path',\n {\n d: 'M12 5a3 3 0 1 1 3 3m-3-3a3 3 0 1 0-3 3m3-3v1M9 8a3 3 0 1 0 3 3M9 8h1m5 0a3 3 0 1 1-3 3m3-3h-1m-2 3v-1',\n },\n ],\n ['circle', { cx: '12', cy: '8', r: '2' }],\n ['path', { d: 'M12 10v12' }],\n ['path', { d: 'M12 22c4.2 0 7-1.667 7-5-4.2 0-7 1.667-7 5Z' }],\n ['path', { d: 'M12 22c-4.2 0-7-1.667-7-5 4.2 0 7 1.667 7 5Z' }],\n];\n\nexport default Flower2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name flower\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNi41QTQuNSA0LjUgMCAxIDEgNy41IDEyIDQuNSA0LjUgMCAxIDEgMTIgNy41YTQuNSA0LjUgMCAxIDEgNC41IDQuNSA0LjUgNC41IDAgMSAxLTQuNSA0LjUiIC8+CiAgPHBhdGggZD0iTTEyIDcuNVY5IiAvPgogIDxwYXRoIGQ9Ik03LjUgMTJIOSIgLz4KICA8cGF0aCBkPSJNMTYuNSAxMkgxNSIgLz4KICA8cGF0aCBkPSJNMTIgMTYuNVYxNSIgLz4KICA8cGF0aCBkPSJtOCA4IDEuODggMS44OCIgLz4KICA8cGF0aCBkPSJNMTQuMTIgOS44OCAxNiA4IiAvPgogIDxwYXRoIGQ9Im04IDE2IDEuODgtMS44OCIgLz4KICA8cGF0aCBkPSJNMTQuMTIgMTQuMTIgMTYgMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/flower\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Flower: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '3' }],\n [\n 'path',\n {\n d: 'M12 16.5A4.5 4.5 0 1 1 7.5 12 4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 1 1 4.5 4.5 4.5 4.5 0 1 1-4.5 4.5',\n },\n ],\n ['path', { d: 'M12 7.5V9' }],\n ['path', { d: 'M7.5 12H9' }],\n ['path', { d: 'M16.5 12H15' }],\n ['path', { d: 'M12 16.5V15' }],\n ['path', { d: 'm8 8 1.88 1.88' }],\n ['path', { d: 'M14.12 9.88 16 8' }],\n ['path', { d: 'm8 16 1.88-1.88' }],\n ['path', { d: 'M14.12 14.12 16 16' }],\n];\n\nexport default Flower;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name focus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIiIC8+CiAgPHBhdGggZD0iTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIiIC8+CiAgPHBhdGggZD0iTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/focus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Focus: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n];\n\nexport default Focus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fold-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMmg2IiAvPgogIDxwYXRoIGQ9Ik0yMiAxMmgtNiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djIiIC8+CiAgPHBhdGggZD0iTTEyIDE0djIiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0ibTE5IDktMyAzIDMgMyIgLz4KICA8cGF0aCBkPSJtNSAxNSAzLTMtMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/fold-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FoldHorizontal: IconNode = [\n ['path', { d: 'M2 12h6' }],\n ['path', { d: 'M22 12h-6' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M12 8v2' }],\n ['path', { d: 'M12 14v2' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'm19 9-3 3 3 3' }],\n ['path', { d: 'm5 15 3-3-3-3' }],\n];\n\nexport default FoldHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fold-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTYiIC8+CiAgPHBhdGggZD0iTTEyIDhWMiIgLz4KICA8cGF0aCBkPSJNNCAxMkgyIiAvPgogIDxwYXRoIGQ9Ik0xMCAxMkg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMmgtMiIgLz4KICA8cGF0aCBkPSJNMjIgMTJoLTIiIC8+CiAgPHBhdGggZD0ibTE1IDE5LTMtMy0zIDMiIC8+CiAgPHBhdGggZD0ibTE1IDUtMyAzLTMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/fold-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FoldVertical: IconNode = [\n ['path', { d: 'M12 22v-6' }],\n ['path', { d: 'M12 8V2' }],\n ['path', { d: 'M4 12H2' }],\n ['path', { d: 'M10 12H8' }],\n ['path', { d: 'M16 12h-2' }],\n ['path', { d: 'M22 12h-2' }],\n ['path', { d: 'm15 19-3-3-3 3' }],\n ['path', { d: 'm15 5-3 3-3-3' }],\n];\n\nexport default FoldVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgogIDxwYXRoIGQ9Im05IDEzIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderCheck: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'm9 13 2 2 4-4' }],\n];\n\nexport default FolderCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-archive\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjE5IiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0yMC45IDE5LjhBMiAyIDAgMCAwIDIyIDE4VjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMmg1LjEiIC8+CiAgPHBhdGggZD0iTTE1IDExdi0xIiAvPgogIDxwYXRoIGQ9Ik0xNSAxN3YtMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-archive\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderArchive: IconNode = [\n ['circle', { cx: '15', cy: '19', r: '2' }],\n [\n 'path',\n {\n d: 'M20.9 19.8A2 2 0 0 0 22 18V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h5.1',\n },\n ],\n ['path', { d: 'M15 11v-1' }],\n ['path', { d: 'M15 17v-2' }],\n];\n\nexport default FolderArchive;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-clock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTR2Mi4ybDEuNiAxIiAvPgogIDxwYXRoIGQ9Ik03IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDIiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-clock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderClock: IconNode = [\n ['path', { d: 'M16 14v2.2l1.6 1' }],\n [\n 'path',\n {\n d: 'M7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2',\n },\n ],\n ['circle', { cx: '16', cy: '16', r: '6' }],\n];\n\nexport default FolderClock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-closed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgogIDxwYXRoIGQ9Ik0yIDEwaDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-closed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderClosed: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'M2 10h20' }],\n];\n\nexport default FolderClosed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTAuNSA4IDEzbDIgMi41IiAvPgogIDxwYXRoIGQ9Im0xNCAxMC41IDIgMi41LTIgMi41IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderCode: IconNode = [\n ['path', { d: 'M10 10.5 8 13l2 2.5' }],\n ['path', { d: 'm14 10.5 2 2.5-2 2.5' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z',\n },\n ],\n];\n\nexport default FolderCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOThhMiAyIDAgMCAxIDEuNjkuOWwuNjYgMS4yQTIgMiAwIDAgMCAxMiA2aDhhMiAyIDAgMCAxIDIgMnYzLjMiIC8+CiAgPHBhdGggZD0ibTE0LjMwNSAxOS41My45MjMtLjM4MiIgLz4KICA8cGF0aCBkPSJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0IiAvPgogIDxwYXRoIGQ9Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0IiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderCog: IconNode = [\n [\n 'path',\n {\n d: 'M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3',\n },\n ],\n ['path', { d: 'm14.305 19.53.923-.382' }],\n ['path', { d: 'm15.228 16.852-.923-.383' }],\n ['path', { d: 'm16.852 15.228-.383-.923' }],\n ['path', { d: 'm16.852 20.772-.383.924' }],\n ['path', { d: 'm19.148 15.228.383-.923' }],\n ['path', { d: 'm19.53 21.696-.382-.924' }],\n ['path', { d: 'm20.772 16.852.924-.383' }],\n ['path', { d: 'm20.772 19.148.924.383' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default FolderCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderDot: IconNode = [\n [\n 'path',\n {\n d: 'M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z',\n },\n ],\n ['circle', { cx: '12', cy: '13', r: '1' }],\n];\n\nexport default FolderDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMHY2IiAvPgogIDxwYXRoIGQ9Im0xNSAxMy0zIDMtMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderDown: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'M12 10v6' }],\n ['path', { d: 'm15 13-3 3-3-3' }],\n];\n\nexport default FolderDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-git-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTlhNSA1IDAgMCAxLTUtNXY4IiAvPgogIDxwYXRoIGQ9Ik05IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2NSIgLz4KICA8Y2lyY2xlIGN4PSIxMyIgY3k9IjEyIiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMTkiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-git-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderGit2: IconNode = [\n ['path', { d: 'M18 19a5 5 0 0 1-5-5v8' }],\n [\n 'path',\n {\n d: 'M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5',\n },\n ],\n ['circle', { cx: '13', cy: '12', r: '2' }],\n ['circle', { cx: '20', cy: '19', r: '2' }],\n];\n\nexport default FolderGit2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-git\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiIC8+CiAgPHBhdGggZD0iTTE0IDEzaDMiIC8+CiAgPHBhdGggZD0iTTcgMTNoMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-git\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderGit: IconNode = [\n ['circle', { cx: '12', cy: '13', r: '2' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'M14 13h3' }],\n ['path', { d: 'M7 13h3' }],\n];\n\nexport default FolderGit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNjM4IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2My40MTciIC8+CiAgPHBhdGggZD0iTTE0LjYyIDE4LjhBMi4yNSAyLjI1IDAgMSAxIDE4IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderHeart: IconNode = [\n [\n 'path',\n {\n d: 'M10.638 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v3.417',\n },\n ],\n [\n 'path',\n {\n d: 'M14.62 18.8A2.25 2.25 0 1 1 18 15.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z',\n },\n ],\n];\n\nexport default FolderHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-input\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMSIgLz4KICA8cGF0aCBkPSJNMiAxM2gxMCIgLz4KICA8cGF0aCBkPSJtOSAxNiAzLTMtMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-input\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderInput: IconNode = [\n [\n 'path',\n {\n d: 'M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1',\n },\n ],\n ['path', { d: 'M2 13h10' }],\n ['path', { d: 'm9 16 3-3-3-3' }],\n];\n\nexport default FolderInput;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-kanban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiIgLz4KICA8cGF0aCBkPSJNOCAxMHY0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMHYyIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMHY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-kanban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderKanban: IconNode = [\n [\n 'path',\n {\n d: 'M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z',\n },\n ],\n ['path', { d: 'M8 10v4' }],\n ['path', { d: 'M12 10v2' }],\n ['path', { d: 'M16 10v6' }],\n];\n\nexport default FolderKanban;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxLjM2IiAvPgogIDxwYXRoIGQ9Ik0xOSAxMnY2IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNGgyIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMjAiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderKey: IconNode = [\n [\n 'path',\n {\n d: 'M13 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v1.36',\n },\n ],\n ['path', { d: 'M19 12v6' }],\n ['path', { d: 'M19 14h2' }],\n ['circle', { cx: '19', cy: '20', r: '2' }],\n];\n\nexport default FolderKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI1IiB4PSIxNCIgeT0iMTciIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0xMCAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjIuNSIgLz4KICA8cGF0aCBkPSJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderLock: IconNode = [\n ['rect', { width: '8', height: '5', x: '14', y: '17', rx: '1' }],\n [\n 'path',\n {\n d: 'M10 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v2.5',\n },\n ],\n ['path', { d: 'M20 17v-2a2 2 0 1 0-4 0v2' }],\n];\n\nexport default FolderLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxM2g2IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderMinus: IconNode = [\n ['path', { d: 'M9 13h6' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n];\n\nexport default FolderMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-open-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNCAxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiIgLz4KICA8Y2lyY2xlIGN4PSIxNCIgY3k9IjE1IiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-open-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderOpenDot: IconNode = [\n [\n 'path',\n {\n d: 'm6 14 1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.55 6a2 2 0 0 1-1.94 1.5H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H18a2 2 0 0 1 2 2v2',\n },\n ],\n ['circle', { cx: '14', cy: '15', r: '1' }],\n];\n\nexport default FolderOpenDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNCAxLjUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NCA2YTIgMiAwIDAgMS0xLjk1IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgxOGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderOpen: IconNode = [\n [\n 'path',\n {\n d: 'm6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2',\n },\n ],\n];\n\nexport default FolderOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-output\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA3LjVWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0xLjUiIC8+CiAgPHBhdGggZD0iTTIgMTNoMTAiIC8+CiAgPHBhdGggZD0ibTUgMTAtMyAzIDMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-output\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderOutput: IconNode = [\n [\n 'path',\n {\n d: 'M2 7.5V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-1.5',\n },\n ],\n ['path', { d: 'M2 13h10' }],\n ['path', { d: 'm5 10-3 3 3 3' }],\n];\n\nexport default FolderOutput;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMS41VjVhMiAyIDAgMCAxIDItMmgzLjljLjcgMCAxLjMuMyAxLjcuOWwuOCAxLjJjLjQuNiAxIC45IDEuNy45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtOS41IiAvPgogIDxwYXRoIGQ9Ik0xMS4zNzggMTMuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderPen: IconNode = [\n [\n 'path',\n {\n d: 'M2 11.5V5a2 2 0 0 1 2-2h3.9c.7 0 1.3.3 1.7.9l.8 1.2c.4.6 1 .9 1.7.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-9.5',\n },\n ],\n [\n 'path',\n {\n d: 'M11.378 13.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n];\n\nexport default FolderPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTB2NiIgLz4KICA8cGF0aCBkPSJNOSAxM2g2IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderPlus: IconNode = [\n ['path', { d: 'M12 10v6' }],\n ['path', { d: 'M9 13h6' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n];\n\nexport default FolderPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-root\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNXY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-root\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderRoot: IconNode = [\n [\n 'path',\n {\n d: 'M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z',\n },\n ],\n ['circle', { cx: '12', cy: '13', r: '2' }],\n ['path', { d: 'M12 15v5' }],\n];\n\nexport default FolderRoot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-search-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMS41IiBjeT0iMTIuNSIgcj0iMi41IiAvPgogIDxwYXRoIGQ9Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloiIC8+CiAgPHBhdGggZD0iTTEzLjMgMTQuMyAxNSAxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-search-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderSearch2: IconNode = [\n ['circle', { cx: '11.5', cy: '12.5', r: '2.5' }],\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'M13.3 14.3 15 16' }],\n];\n\nexport default FolderSearch2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjQuMSIgLz4KICA8cGF0aCBkPSJtMjEgMjEtMS45LTEuOSIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE3IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderSearch: IconNode = [\n [\n 'path',\n {\n d: 'M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1',\n },\n ],\n ['path', { d: 'm21 21-1.9-1.9' }],\n ['circle', { cx: '17', cy: '17', r: '3' }],\n];\n\nexport default FolderSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-symlink\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5LjM1VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDciIC8+CiAgPHBhdGggZD0ibTggMTYgMy0zLTMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-symlink\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderSymlink: IconNode = [\n [\n 'path',\n {\n d: 'M2 9.35V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7',\n },\n ],\n ['path', { d: 'm8 16 3-3-3-3' }],\n];\n\nexport default FolderSymlink;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-sync\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydi41IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMHY0aDQiIC8+CiAgPHBhdGggZD0ibTEyIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSIgLz4KICA8cGF0aCBkPSJNMjIgMjJ2LTRoLTQiIC8+CiAgPHBhdGggZD0ibTIyIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folder-sync\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderSync: IconNode = [\n [\n 'path',\n {\n d: 'M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v.5',\n },\n ],\n ['path', { d: 'M12 10v4h4' }],\n ['path', { d: 'm12 14 1.535-1.605a5 5 0 0 1 8 1.5' }],\n ['path', { d: 'M22 22v-4h-4' }],\n ['path', { d: 'm22 18-1.535 1.605a5 5 0 0 1-8-1.5' }],\n];\n\nexport default FolderSync;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-tree\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBhMSAxIDAgMCAwIDEtMVY2YTEgMSAwIDAgMC0xLTFoLTIuNWExIDEgMCAwIDEtLjgtLjRsLS45LTEuMkExIDEgMCAwIDAgMTUgM2gtMmExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMVoiIC8+CiAgPHBhdGggZD0iTTIwIDIxYTEgMSAwIDAgMCAxLTF2LTNhMSAxIDAgMCAwLTEtMWgtMi45YTEgMSAwIDAgMS0uODgtLjU1bC0uNDItLjg1YTEgMSAwIDAgMC0uOTItLjZIMTNhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFaIiAvPgogIDxwYXRoIGQ9Ik0zIDVhMiAyIDAgMCAwIDIgMmgzIiAvPgogIDxwYXRoIGQ9Ik0zIDN2MTNhMiAyIDAgMCAwIDIgMmgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder-tree\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderTree: IconNode = [\n [\n 'path',\n {\n d: 'M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z',\n },\n ],\n [\n 'path',\n {\n d: 'M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z',\n },\n ],\n ['path', { d: 'M3 5a2 2 0 0 0 2 2h3' }],\n ['path', { d: 'M3 3v13a2 2 0 0 0 2 2h3' }],\n];\n\nexport default FolderTree;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMHY2IiAvPgogIDxwYXRoIGQ9Im05IDEzIDMtMyAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderUp: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'M12 10v6' }],\n ['path', { d: 'm9 13 3-3 3 3' }],\n];\n\nexport default FolderUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgogIDxwYXRoIGQ9Im05LjUgMTAuNSA1IDUiIC8+CiAgPHBhdGggZD0ibTE0LjUgMTAuNS01IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/folder-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FolderX: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n ['path', { d: 'm9.5 10.5 5 5' }],\n ['path', { d: 'm14.5 10.5-5 5' }],\n];\n\nexport default FolderX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folder\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Folder: IconNode = [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n },\n ],\n];\n\nexport default Folder;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name folders\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNWEyIDIgMCAwIDEgMiAydjdhMiAyIDAgMCAxLTIgMkg5YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDIuNWExLjUgMS41IDAgMCAxIDEuMi42bC42LjhhMS41IDEuNSAwIDAgMCAxLjIuNnoiIC8+CiAgPHBhdGggZD0iTTMgOC4yNjhhMiAyIDAgMCAwLTEgMS43MzhWMTlhMiAyIDAgMCAwIDIgMmgxMWEyIDIgMCAwIDAgMS43MzItMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/folders\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Folders: IconNode = [\n [\n 'path',\n {\n d: 'M20 5a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h2.5a1.5 1.5 0 0 1 1.2.6l.6.8a1.5 1.5 0 0 0 1.2.6z',\n },\n ],\n ['path', { d: 'M3 8.268a2 2 0 0 0-1 1.738V19a2 2 0 0 0 2 2h11a2 2 0 0 0 1.732-1' }],\n];\n\nexport default Folders;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name forklift\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJINWEyIDIgMCAwIDAtMiAydjUiIC8+CiAgPGNpcmNsZSBjeD0iMTMiIGN5PSIxOSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iMTkiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTggMTloM201LTE3djE3aDZNNiAxMlY3YzAtMS4xLjktMiAyLTJoM2w1IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/forklift\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Forklift: IconNode = [\n ['path', { d: 'M12 12H5a2 2 0 0 0-2 2v5' }],\n ['circle', { cx: '13', cy: '19', r: '2' }],\n ['circle', { cx: '5', cy: '19', r: '2' }],\n ['path', { d: 'M8 19h3m5-17v17h6M6 12V7c0-1.1.9-2 2-2h3l5 5' }],\n];\n\nexport default Forklift;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name footprints\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNnYtMi4zOEM0IDExLjUgMi45NyAxMC41IDMgOGMuMDMtMi43MiAxLjQ5LTYgNC41LTZDOS4zNyAyIDEwIDMuOCAxMCA1LjVjMCAzLjExLTIgNS42Ni0yIDguNjhWMTZhMiAyIDAgMSAxLTQgMFoiIC8+CiAgPHBhdGggZD0iTTIwIDIwdi0yLjM4YzAtMi4xMiAxLjAzLTMuMTIgMS01LjYyLS4wMy0yLjcyLTEuNDktNi00LjUtNkMxNC42MyA2IDE0IDcuOCAxNCA5LjVjMCAzLjExIDIgNS42NiAyIDguNjhWMjBhMiAyIDAgMSAwIDQgMFoiIC8+CiAgPHBhdGggZD0iTTE2IDE3aDQiIC8+CiAgPHBhdGggZD0iTTQgMTNoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/footprints\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Footprints: IconNode = [\n [\n 'path',\n {\n d: 'M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z',\n },\n ],\n [\n 'path',\n {\n d: 'M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z',\n },\n ],\n ['path', { d: 'M16 17h4' }],\n ['path', { d: 'M4 13h4' }],\n];\n\nexport default Footprints;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name form\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNGg2IiAvPgogIDxwYXRoIGQ9Ik00IDJoMTAiIC8+CiAgPHJlY3QgeD0iNCIgeT0iMTgiIHdpZHRoPSIxNiIgaGVpZ2h0PSI0IiByeD0iMSIgLz4KICA8cmVjdCB4PSI0IiB5PSI2IiB3aWR0aD0iMTYiIGhlaWdodD0iNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/form\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Form: IconNode = [\n ['path', { d: 'M4 14h6' }],\n ['path', { d: 'M4 2h10' }],\n ['rect', { x: '4', y: '18', width: '16', height: '4', rx: '1' }],\n ['rect', { x: '4', y: '6', width: '16', height: '4', rx: '1' }],\n];\n\nexport default Form;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name forward\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTcgNS01LTUtNSIgLz4KICA8cGF0aCBkPSJNNCAxOHYtMmE0IDQgMCAwIDEgNC00aDEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/forward\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Forward: IconNode = [\n ['path', { d: 'm15 17 5-5-5-5' }],\n ['path', { d: 'M4 18v-2a4 4 0 0 1 4-4h12' }],\n];\n\nexport default Forward;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name frame\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMjIiIHgyPSIyIiB5MT0iNiIgeTI9IjYiIC8+CiAgPGxpbmUgeDE9IjIyIiB4Mj0iMiIgeTE9IjE4IiB5Mj0iMTgiIC8+CiAgPGxpbmUgeDE9IjYiIHgyPSI2IiB5MT0iMiIgeTI9IjIyIiAvPgogIDxsaW5lIHgxPSIxOCIgeDI9IjE4IiB5MT0iMiIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/frame\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Frame: IconNode = [\n ['line', { x1: '22', x2: '2', y1: '6', y2: '6' }],\n ['line', { x1: '22', x2: '2', y1: '18', y2: '18' }],\n ['line', { x1: '6', x2: '6', y1: '2', y2: '22' }],\n ['line', { x1: '18', x2: '18', y1: '2', y2: '22' }],\n];\n\nexport default Frame;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name framer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxNlY5aDE0VjJINWwxNCAxNGgtN20tNyAwIDcgN3YtN20tNyAwaDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/framer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=framer instead. This icon will be removed in v1.0\n */\nconst Framer: IconNode = [['path', { d: 'M5 16V9h14V2H5l14 14h-7m-7 0 7 7v-7m-7 0h7' }]];\n\nexport default Framer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name frown\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIiAvPgogIDxsaW5lIHgxPSI5IiB4Mj0iOS4wMSIgeTE9IjkiIHkyPSI5IiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjE1LjAxIiB5MT0iOSIgeTI9IjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/frown\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Frown: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M16 16s-1.5-2-4-2-4 2-4 2' }],\n ['line', { x1: '9', x2: '9.01', y1: '9', y2: '9' }],\n ['line', { x1: '15', x2: '15.01', y1: '9', y2: '9' }],\n];\n\nexport default Frown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fuel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTNoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAwIDQgMHYtNi45OThhMiAyIDAgMCAwLS41OS0xLjQyTDE4IDUiIC8+CiAgPHBhdGggZD0iTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYiIC8+CiAgPHBhdGggZD0iTTIgMjFoMTMiIC8+CiAgPHBhdGggZD0iTTMgOWgxMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/fuel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Fuel: IconNode = [\n ['path', { d: 'M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5' }],\n ['path', { d: 'M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16' }],\n ['path', { d: 'M2 21h13' }],\n ['path', { d: 'M3 9h11' }],\n];\n\nexport default Fuel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name fullscreen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSI4IiB4PSI3IiB5PSI4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/fullscreen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Fullscreen: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['rect', { width: '10', height: '8', x: '7', y: '8', rx: '1' }],\n];\n\nexport default Fullscreen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name funnel-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuMzU0IDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbDEuMjE4LTEuMzQ4IiAvPgogIDxwYXRoIGQ9Ik0xNiA2aDYiIC8+CiAgPHBhdGggZD0iTTE5IDN2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/funnel-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FunnelPlus: IconNode = [\n [\n 'path',\n {\n d: 'M13.354 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l1.218-1.348',\n },\n ],\n ['path', { d: 'M16 6h6' }],\n ['path', { d: 'M19 3v6' }],\n];\n\nexport default FunnelPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name funnel-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNTMxIDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbC40MjctLjQ3MyIgLz4KICA8cGF0aCBkPSJtMTYuNSAzLjUgNSA1IiAvPgogIDxwYXRoIGQ9Im0yMS41IDMuNS01IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/funnel-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst FunnelX: IconNode = [\n [\n 'path',\n {\n d: 'M12.531 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l.427-.473',\n },\n ],\n ['path', { d: 'm16.5 3.5 5 5' }],\n ['path', { d: 'm21.5 3.5-5 5' }],\n];\n\nexport default FunnelX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name funnel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjBhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFMMjEuNzQgNC42N0ExIDEgMCAwIDAgMjEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/funnel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Funnel: IconNode = [\n [\n 'path',\n {\n d: 'M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z',\n },\n ],\n];\n\nexport default Funnel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gallery-horizontal-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA3djEwIiAvPgogIDxwYXRoIGQ9Ik02IDV2MTQiIC8+CiAgPHJlY3Qgd2lkdGg9IjEyIiBoZWlnaHQ9IjE4IiB4PSIxMCIgeT0iMyIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gallery-horizontal-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GalleryHorizontalEnd: IconNode = [\n ['path', { d: 'M2 7v10' }],\n ['path', { d: 'M6 5v14' }],\n ['rect', { width: '12', height: '18', x: '10', y: '3', rx: '2' }],\n];\n\nexport default GalleryHorizontalEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gallery-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAzdjE4IiAvPgogIDxyZWN0IHdpZHRoPSIxMiIgaGVpZ2h0PSIxOCIgeD0iNiIgeT0iMyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTIyIDN2MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gallery-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GalleryHorizontal: IconNode = [\n ['path', { d: 'M2 3v18' }],\n ['rect', { width: '12', height: '18', x: '6', y: '3', rx: '2' }],\n ['path', { d: 'M22 3v18' }],\n];\n\nexport default GalleryHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gallery-thumbnails\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTQiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik00IDIxaDEiIC8+CiAgPHBhdGggZD0iTTkgMjFoMSIgLz4KICA8cGF0aCBkPSJNMTQgMjFoMSIgLz4KICA8cGF0aCBkPSJNMTkgMjFoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/gallery-thumbnails\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GalleryThumbnails: IconNode = [\n ['rect', { width: '18', height: '14', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M4 21h1' }],\n ['path', { d: 'M9 21h1' }],\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'M19 21h1' }],\n];\n\nexport default GalleryThumbnails;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gallery-vertical-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAyaDEwIiAvPgogIDxwYXRoIGQ9Ik01IDZoMTQiIC8+CiAgPHJlY3Qgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiB4PSIzIiB5PSIxMCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gallery-vertical-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GalleryVerticalEnd: IconNode = [\n ['path', { d: 'M7 2h10' }],\n ['path', { d: 'M5 6h14' }],\n ['rect', { width: '18', height: '12', x: '3', y: '10', rx: '2' }],\n];\n\nexport default GalleryVerticalEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gallery-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAyaDE4IiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgeD0iMyIgeT0iNiIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTMgMjJoMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gallery-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GalleryVertical: IconNode = [\n ['path', { d: 'M3 2h18' }],\n ['rect', { width: '18', height: '12', x: '3', y: '6', rx: '2' }],\n ['path', { d: 'M3 22h18' }],\n];\n\nexport default GalleryVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gamepad-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNiIgeDI9IjEwIiB5MT0iMTEiIHkyPSIxMSIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjgiIHkxPSI5IiB5Mj0iMTMiIC8+CiAgPGxpbmUgeDE9IjE1IiB4Mj0iMTUuMDEiIHkxPSIxMiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIxOCIgeDI9IjE4LjAxIiB5MT0iMTAiIHkyPSIxMCIgLz4KICA8cGF0aCBkPSJNMTcuMzIgNUg2LjY4YTQgNCAwIDAgMC0zLjk3OCAzLjU5Yy0uMDA2LjA1Mi0uMDEuMTAxLS4wMTcuMTUyQzIuNjA0IDkuNDE2IDIgMTQuNDU2IDIgMTZhMyAzIDAgMCAwIDMgM2MxIDAgMS41LS41IDItMWwxLjQxNC0xLjQxNEEyIDIgMCAwIDEgOS44MjggMTZoNC4zNDRhMiAyIDAgMCAxIDEuNDE0LjU4NkwxNyAxOGMuNS41IDEgMSAyIDFhMyAzIDAgMCAwIDMtM2MwLTEuNTQ1LS42MDQtNi41ODQtLjY4NS03LjI1OC0uMDA3LS4wNS0uMDExLS4xLS4wMTctLjE1MUE0IDQgMCAwIDAgMTcuMzIgNXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gamepad-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gamepad2: IconNode = [\n ['line', { x1: '6', x2: '10', y1: '11', y2: '11' }],\n ['line', { x1: '8', x2: '8', y1: '9', y2: '13' }],\n ['line', { x1: '15', x2: '15.01', y1: '12', y2: '12' }],\n ['line', { x1: '18', x2: '18.01', y1: '10', y2: '10' }],\n [\n 'path',\n {\n d: 'M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z',\n },\n ],\n];\n\nexport default Gamepad2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gamepad-directional\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgPHBhdGgKICAgIGQ9Ik0xMS4xNDYgMTUuODU0YTEuMjA3IDEuMjA3IDAgMCAxIDEuNzA4IDBsMS41NiAxLjU2QTIgMiAwIDAgMSAxNSAxOC44MjhWMjFhMSAxIDAgMCAxLTEgMWgtNGExIDEgMCAwIDEtMS0xdi0yLjE3MmEyIDIgMCAwIDEgLjU4Ni0xLjQxNHoiIC8+CiAgPHBhdGgKICAgIGQ9Ik0xOC44MjggMTVhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTEuNTYtMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwLTEuNzA4bDEuNTYtMS41NkEyIDIgMCAwIDEgMTguODI4IDlIMjFhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDF6IiAvPgogIDxwYXRoCiAgICBkPSJNNi41ODYgMTQuNDE0QTIgMiAwIDAgMSA1LjE3MiAxNUgzYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWgyLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDEuNTYgMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4eiIgLz4KICA8cGF0aAogICAgZD0iTTkgM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyLjE3MmEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA4IDBsLTEuNTYtMS41NkEyIDIgMCAwIDEgOSA1LjE3MnoiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/gamepad-directional\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GamepadDirectional: IconNode = [\n [\n 'path',\n {\n d: 'M11.146 15.854a1.207 1.207 0 0 1 1.708 0l1.56 1.56A2 2 0 0 1 15 18.828V21a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-2.172a2 2 0 0 1 .586-1.414z',\n },\n ],\n [\n 'path',\n {\n d: 'M18.828 15a2 2 0 0 1-1.414-.586l-1.56-1.56a1.207 1.207 0 0 1 0-1.708l1.56-1.56A2 2 0 0 1 18.828 9H21a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1z',\n },\n ],\n [\n 'path',\n {\n d: 'M6.586 14.414A2 2 0 0 1 5.172 15H3a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h2.172a2 2 0 0 1 1.414.586l1.56 1.56a1.207 1.207 0 0 1 0 1.708z',\n },\n ],\n [\n 'path',\n {\n d: 'M9 3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2.172a2 2 0 0 1-.586 1.414l-1.56 1.56a1.207 1.207 0 0 1-1.708 0l-1.56-1.56A2 2 0 0 1 9 5.172z',\n },\n ],\n];\n\nexport default GamepadDirectional;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gamepad\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNiIgeDI9IjEwIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjgiIHkxPSIxMCIgeTI9IjE0IiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjE1LjAxIiB5MT0iMTMiIHkyPSIxMyIgLz4KICA8bGluZSB4MT0iMTgiIHgyPSIxOC4wMSIgeTE9IjExIiB5Mj0iMTEiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjEyIiB4PSIyIiB5PSI2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/gamepad\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gamepad: IconNode = [\n ['line', { x1: '6', x2: '10', y1: '12', y2: '12' }],\n ['line', { x1: '8', x2: '8', y1: '10', y2: '14' }],\n ['line', { x1: '15', x2: '15.01', y1: '13', y2: '13' }],\n ['line', { x1: '18', x2: '18.01', y1: '11', y2: '11' }],\n ['rect', { width: '20', height: '12', x: '2', y: '6', rx: '2' }],\n];\n\nexport default Gamepad;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gauge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTQgNC00IiAvPgogIDxwYXRoIGQ9Ik0zLjM0IDE5YTEwIDEwIDAgMSAxIDE3LjMyIDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gauge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gauge: IconNode = [\n ['path', { d: 'm12 14 4-4' }],\n ['path', { d: 'M3.34 19a10 10 0 1 1 17.32 0' }],\n];\n\nexport default Gauge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gavel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM2w4LjM4NC04LjM4MSIgLz4KICA8cGF0aCBkPSJtMTYgMTYgNi02IiAvPgogIDxwYXRoIGQ9Im0yMS41IDEwLjUtOC04IiAvPgogIDxwYXRoIGQ9Im04IDggNi02IiAvPgogIDxwYXRoIGQ9Im04LjUgNy41IDggOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/gavel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gavel: IconNode = [\n ['path', { d: 'm14 13-8.381 8.38a1 1 0 0 1-3.001-3l8.384-8.381' }],\n ['path', { d: 'm16 16 6-6' }],\n ['path', { d: 'm21.5 10.5-8-8' }],\n ['path', { d: 'm8 8 6-6' }],\n ['path', { d: 'm8.5 7.5 8 8' }],\n];\n\nexport default Gavel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gem\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSAzIDggOWw0IDEzIDQtMTMtMi41LTYiIC8+CiAgPHBhdGggZD0iTTE3IDNhMiAyIDAgMCAxIDEuNi44bDMgNGEyIDIgMCAwIDEgLjAxMyAyLjM4MmwtNy45OSAxMC45ODZhMiAyIDAgMCAxLTMuMjQ3IDBsLTcuOTktMTAuOTg2QTIgMiAwIDAgMSAyLjQgNy44bDIuOTk4LTMuOTk3QTIgMiAwIDAgMSA3IDN6IiAvPgogIDxwYXRoIGQ9Ik0yIDloMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gem\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gem: IconNode = [\n ['path', { d: 'M10.5 3 8 9l4 13 4-13-2.5-6' }],\n [\n 'path',\n {\n d: 'M17 3a2 2 0 0 1 1.6.8l3 4a2 2 0 0 1 .013 2.382l-7.99 10.986a2 2 0 0 1-3.247 0l-7.99-10.986A2 2 0 0 1 2.4 7.8l2.998-3.997A2 2 0 0 1 7 3z',\n },\n ],\n ['path', { d: 'M2 9h20' }],\n];\n\nexport default Gem;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name georgian-lari\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNSAyMWE3LjUgNy41IDAgMSAxIDcuMzUtOSIgLz4KICA8cGF0aCBkPSJNMTMgMTJWMyIgLz4KICA8cGF0aCBkPSJNNCAyMWgxNiIgLz4KICA8cGF0aCBkPSJNOSAxMlYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/georgian-lari\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GeorgianLari: IconNode = [\n ['path', { d: 'M11.5 21a7.5 7.5 0 1 1 7.35-9' }],\n ['path', { d: 'M13 12V3' }],\n ['path', { d: 'M4 21h16' }],\n ['path', { d: 'M9 12V3' }],\n];\n\nexport default GeorgianLari;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ghost\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxMGguMDEiIC8+CiAgPHBhdGggZD0iTTE1IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMmE4IDggMCAwIDAtOCA4djEybDMtMyAyLjUgMi41TDEyIDE5bDIuNSAyLjVMMTcgMTlsMyAzVjEwYTggOCAwIDAgMC04LTh6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ghost\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ghost: IconNode = [\n ['path', { d: 'M9 10h.01' }],\n ['path', { d: 'M15 10h.01' }],\n ['path', { d: 'M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z' }],\n];\n\nexport default Ghost;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-branch-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNmE5IDkgMCAwIDAtOSA5VjMiIC8+CiAgPHBhdGggZD0iTTIxIDE4aC02IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTgiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/git-branch-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitBranchMinus: IconNode = [\n ['path', { d: 'M15 6a9 9 0 0 0-9 9V3' }],\n ['path', { d: 'M21 18h-6' }],\n ['circle', { cx: '18', cy: '6', r: '3' }],\n ['circle', { cx: '6', cy: '18', r: '3' }],\n];\n\nexport default GitBranchMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-branch-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAzdjEyIiAvPgogIDxwYXRoIGQ9Ik0xOCA5YTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnoiIC8+CiAgPHBhdGggZD0iTTYgMjFhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eiIgLz4KICA8cGF0aCBkPSJNMTUgNmE5IDkgMCAwIDAtOSA5IiAvPgogIDxwYXRoIGQ9Ik0xOCAxNXY2IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOGgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-branch-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitBranchPlus: IconNode = [\n ['path', { d: 'M6 3v12' }],\n ['path', { d: 'M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' }],\n ['path', { d: 'M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' }],\n ['path', { d: 'M15 6a9 9 0 0 0-9 9' }],\n ['path', { d: 'M18 15v6' }],\n ['path', { d: 'M21 18h-6' }],\n];\n\nexport default GitBranchPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gift\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIzIiB5PSI4IiB3aWR0aD0iMTgiIGhlaWdodD0iNCIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTEyIDh2MTMiIC8+CiAgPHBhdGggZD0iTTE5IDEydjdhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJ2LTciIC8+CiAgPHBhdGggZD0iTTcuNSA4YTIuNSAyLjUgMCAwIDEgMC01QTQuOCA4IDAgMCAxIDEyIDhhNC44IDggMCAwIDEgNC41LTUgMi41IDIuNSAwIDAgMSAwIDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/gift\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gift: IconNode = [\n ['rect', { x: '3', y: '8', width: '18', height: '4', rx: '1' }],\n ['path', { d: 'M12 8v13' }],\n ['path', { d: 'M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7' }],\n ['path', { d: 'M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5' }],\n];\n\nexport default Gift;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-branch\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNmE5IDkgMCAwIDAtOSA5VjMiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSI2IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-branch\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitBranch: IconNode = [\n ['path', { d: 'M15 6a9 9 0 0 0-9 9V3' }],\n ['circle', { cx: '18', cy: '6', r: '3' }],\n ['circle', { cx: '6', cy: '18', r: '3' }],\n];\n\nexport default GitBranch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-commit-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgogIDxsaW5lIHgxPSIzIiB4Mj0iOSIgeTE9IjEyIiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjE1IiB4Mj0iMjEiIHkxPSIxMiIgeTI9IjEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-commit-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitCommitHorizontal: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['line', { x1: '3', x2: '9', y1: '12', y2: '12' }],\n ['line', { x1: '15', x2: '21', y1: '12', y2: '12' }],\n];\n\nexport default GitCommitHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-commit-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3Y2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTEyIDE1djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/git-commit-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitCommitVertical: IconNode = [\n ['path', { d: 'M12 3v6' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['path', { d: 'M12 15v6' }],\n];\n\nexport default GitCommitVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-compare-arrows\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NyIgLz4KICA8cGF0aCBkPSJtMTUgOS0zLTMgMy0zIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTgiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTEyIDE4SDdhMiAyIDAgMCAxLTItMlY5IiAvPgogIDxwYXRoIGQ9Im05IDE1IDMgMy0zIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/git-compare-arrows\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitCompareArrows: IconNode = [\n ['circle', { cx: '5', cy: '6', r: '3' }],\n ['path', { d: 'M12 6h5a2 2 0 0 1 2 2v7' }],\n ['path', { d: 'm15 9-3-3 3-3' }],\n ['circle', { cx: '19', cy: '18', r: '3' }],\n ['path', { d: 'M12 18H7a2 2 0 0 1-2-2V9' }],\n ['path', { d: 'm9 15 3 3-3 3' }],\n];\n\nexport default GitCompareArrows;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-compare\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3IiAvPgogIDxwYXRoIGQ9Ik0xMSAxOEg4YTIgMiAwIDAgMS0yLTJWOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-compare\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitCompare: IconNode = [\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M13 6h3a2 2 0 0 1 2 2v7' }],\n ['path', { d: 'M11 18H8a2 2 0 0 1-2-2V9' }],\n];\n\nexport default GitCompare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-fork\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTggOXYyYzAgLjYtLjQgMS0xIDFIN2MtLjYgMC0xLS40LTEtMVY5IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-fork\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitFork: IconNode = [\n ['circle', { cx: '12', cy: '18', r: '3' }],\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['circle', { cx: '18', cy: '6', r: '3' }],\n ['path', { d: 'M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9' }],\n ['path', { d: 'M12 12v3' }],\n];\n\nexport default GitFork;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-graph\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNNSA5djYiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE4IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjE4IiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTYgMTUuN0E5IDkgMCAwIDAgMTkgOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-graph\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitGraph: IconNode = [\n ['circle', { cx: '5', cy: '6', r: '3' }],\n ['path', { d: 'M5 9v6' }],\n ['circle', { cx: '5', cy: '18', r: '3' }],\n ['path', { d: 'M12 3v18' }],\n ['circle', { cx: '19', cy: '6', r: '3' }],\n ['path', { d: 'M16 15.7A9 9 0 0 0 19 9' }],\n];\n\nexport default GitGraph;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-merge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik02IDIxVjlhOSA5IDAgMCAwIDkgOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-merge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitMerge: IconNode = [\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M6 21V9a9 9 0 0 0 9 9' }],\n];\n\nexport default GitMerge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request-arrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNNSA5djEyIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTgiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTE1IDktMy0zIDMtMyIgLz4KICA8cGF0aCBkPSJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2NyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-pull-request-arrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequestArrow: IconNode = [\n ['circle', { cx: '5', cy: '6', r: '3' }],\n ['path', { d: 'M5 9v12' }],\n ['circle', { cx: '19', cy: '18', r: '3' }],\n ['path', { d: 'm15 9-3-3 3-3' }],\n ['path', { d: 'M12 6h5a2 2 0 0 1 2 2v7' }],\n];\n\nexport default GitPullRequestArrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request-closed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNNiA5djEyIiAvPgogIDxwYXRoIGQ9Im0yMSAzLTYgNiIgLz4KICA8cGF0aCBkPSJtMjEgOS02LTYiIC8+CiAgPHBhdGggZD0iTTE4IDExLjVWMTUiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-pull-request-closed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequestClosed: IconNode = [\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M6 9v12' }],\n ['path', { d: 'm21 3-6 6' }],\n ['path', { d: 'm21 9-6-6' }],\n ['path', { d: 'M18 11.5V15' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default GitPullRequestClosed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request-create-arrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNNSA5djEyIiAvPgogIDxwYXRoIGQ9Im0xNSA5LTMtMyAzLTMiIC8+CiAgPHBhdGggZD0iTTEyIDZoNWEyIDIgMCAwIDEgMiAydjMiIC8+CiAgPHBhdGggZD0iTTE5IDE1djYiIC8+CiAgPHBhdGggZD0iTTIyIDE4aC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-pull-request-create-arrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequestCreateArrow: IconNode = [\n ['circle', { cx: '5', cy: '6', r: '3' }],\n ['path', { d: 'M5 9v12' }],\n ['path', { d: 'm15 9-3-3 3-3' }],\n ['path', { d: 'M12 6h5a2 2 0 0 1 2 2v3' }],\n ['path', { d: 'M19 15v6' }],\n ['path', { d: 'M22 18h-6' }],\n];\n\nexport default GitPullRequestCreateArrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request-create\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNNiA5djEyIiAvPgogIDxwYXRoIGQ9Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnYzIiAvPgogIDxwYXRoIGQ9Ik0xOCAxNXY2IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOGgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-pull-request-create\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequestCreate: IconNode = [\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M6 9v12' }],\n ['path', { d: 'M13 6h3a2 2 0 0 1 2 2v3' }],\n ['path', { d: 'M18 15v6' }],\n ['path', { d: 'M21 18h-6' }],\n];\n\nexport default GitPullRequestCreate;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request-draft\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xOCA2VjUiIC8+CiAgPHBhdGggZD0iTTE4IDExdi0xIiAvPgogIDxsaW5lIHgxPSI2IiB4Mj0iNiIgeTE9IjkiIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-pull-request-draft\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequestDraft: IconNode = [\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M18 6V5' }],\n ['path', { d: 'M18 11v-1' }],\n ['line', { x1: '6', x2: '6', y1: '9', y2: '21' }],\n];\n\nexport default GitPullRequestDraft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name git-pull-request\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3IiAvPgogIDxsaW5lIHgxPSI2IiB4Mj0iNiIgeTE9IjkiIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/git-pull-request\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GitPullRequest: IconNode = [\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M13 6h3a2 2 0 0 1 2 2v7' }],\n ['line', { x1: '6', x2: '6', y1: '9', y2: '21' }],\n];\n\nexport default GitPullRequest;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name github\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjJ2LTRhNC44IDQuOCAwIDAgMC0xLTMuNWMzIDAgNi0yIDYtNS41LjA4LTEuMjUtLjI3LTIuNDgtMS0zLjUuMjgtMS4xNS4yOC0yLjM1IDAtMy41IDAgMC0xIDAtMyAxLjUtMi42NC0uNS01LjM2LS41LTggMEM2IDIgNSAyIDUgMmMtLjMgMS4xNS0uMyAyLjM1IDAgMy41QTUuNDAzIDUuNDAzIDAgMCAwIDQgOWMwIDMuNSAzIDUuNSA2IDUuNS0uMzkuNDktLjY4IDEuMDUtLjg1IDEuNjUtLjE3LjYtLjIyIDEuMjMtLjE1IDEuODV2NCIgLz4KICA8cGF0aCBkPSJNOSAxOGMtNC41MSAyLTUtMi03LTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/github\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=github instead. This icon will be removed in v1.0\n */\nconst Github: IconNode = [\n [\n 'path',\n {\n d: 'M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4',\n },\n ],\n ['path', { d: 'M9 18c-4.51 2-5-2-7-2' }],\n];\n\nexport default Github;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gitlab\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgMTMuMjktMy4zMy0xMGEuNDIuNDIgMCAwIDAtLjE0LS4xOC4zOC4zOCAwIDAgMC0uMjItLjExLjM5LjM5IDAgMCAwLS4yMy4wNy40Mi40MiAwIDAgMC0uMTQuMThsLTIuMjYgNi42N0g4LjMyTDYuMSAzLjI2YS40Mi40MiAwIDAgMC0uMS0uMTguMzguMzggMCAwIDAtLjI2LS4wOC4zOS4zOSAwIDAgMC0uMjMuMDcuNDIuNDIgMCAwIDAtLjE0LjE4TDIgMTMuMjlhLjc0Ljc0IDAgMCAwIC4yNy44M0wxMiAyMWw5LjY5LTYuODhhLjcxLjcxIDAgMCAwIC4zMS0uODNaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/gitlab\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=gitlab instead. This icon will be removed in v1.0\n */\nconst Gitlab: IconNode = [\n [\n 'path',\n {\n d: 'm22 13.29-3.33-10a.42.42 0 0 0-.14-.18.38.38 0 0 0-.22-.11.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18l-2.26 6.67H8.32L6.1 3.26a.42.42 0 0 0-.1-.18.38.38 0 0 0-.26-.08.39.39 0 0 0-.23.07.42.42 0 0 0-.14.18L2 13.29a.74.74 0 0 0 .27.83L12 21l9.69-6.88a.71.71 0 0 0 .31-.83Z',\n },\n ],\n];\n\nexport default Gitlab;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name glass-water\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNS4xMTYgNC4xMDRBMSAxIDAgMCAxIDYuMTEgM2gxMS43OGExIDEgMCAwIDEgLjk5NCAxLjEwNUwxNy4xOSAyMC4yMUEyIDIgMCAwIDEgMTUuMiAyMkg4LjhhMiAyIDAgMCAxLTItMS43OXoiIC8+CiAgPHBhdGggZD0iTTYgMTJhNSA1IDAgMCAxIDYgMCA1IDUgMCAwIDAgNiAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/glass-water\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GlassWater: IconNode = [\n [\n 'path',\n {\n d: 'M5.116 4.104A1 1 0 0 1 6.11 3h11.78a1 1 0 0 1 .994 1.105L17.19 20.21A2 2 0 0 1 15.2 22H8.8a2 2 0 0 1-2-1.79z',\n },\n ],\n ['path', { d: 'M6 12a5 5 0 0 1 6 0 5 5 0 0 0 6 0' }],\n];\n\nexport default GlassWater;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name glasses\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTUiIHI9IjQiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxNSIgcj0iNCIgLz4KICA8cGF0aCBkPSJNMTQgMTVhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAyIiAvPgogIDxwYXRoIGQ9Ik0yLjUgMTMgNSA3Yy43LTEuMyAxLjQtMiAzLTIiIC8+CiAgPHBhdGggZD0iTTIxLjUgMTMgMTkgN2MtLjctMS4zLTEuNS0yLTMtMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/glasses\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Glasses: IconNode = [\n ['circle', { cx: '6', cy: '15', r: '4' }],\n ['circle', { cx: '18', cy: '15', r: '4' }],\n ['path', { d: 'M14 15a2 2 0 0 0-2-2 2 2 0 0 0-2 2' }],\n ['path', { d: 'M2.5 13 5 7c.7-1.3 1.4-2 3-2' }],\n ['path', { d: 'M21.5 13 19 7c-.7-1.3-1.5-2-3-2' }],\n];\n\nexport default Glasses;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name globe-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNjg2IDE1QTE0LjUgMTQuNSAwIDAgMSAxMiAyMmExNC41IDE0LjUgMCAwIDEgMC0yMCAxMCAxMCAwIDEgMCA5LjU0MiAxMyIgLz4KICA8cGF0aCBkPSJNMiAxMmg4LjUiIC8+CiAgPHBhdGggZD0iTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iNSIgeD0iMTQiIHk9IjYiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/globe-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GlobeLock: IconNode = [\n ['path', { d: 'M15.686 15A14.5 14.5 0 0 1 12 22a14.5 14.5 0 0 1 0-20 10 10 0 1 0 9.542 13' }],\n ['path', { d: 'M2 12h8.5' }],\n ['path', { d: 'M20 6V4a2 2 0 1 0-4 0v2' }],\n ['rect', { width: '8', height: '5', x: '14', y: '6', rx: '1' }],\n];\n\nexport default GlobeLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name globe\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgMC0yMCIgLz4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/globe\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Globe: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20' }],\n ['path', { d: 'M2 12h20' }],\n];\n\nexport default Globe;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name globe-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMyA1IDUiIC8+CiAgPHBhdGggZD0iTTIgMTJoMjBBMTAgMTAgMCAxIDEgMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgNC0xMCIgLz4KICA8cGF0aCBkPSJtMjEgMy01IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/globe-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GlobeX: IconNode = [\n ['path', { d: 'm16 3 5 5' }],\n ['path', { d: 'M2 12h20A10 10 0 1 1 12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 4-10' }],\n ['path', { d: 'm21 3-5 5' }],\n];\n\nexport default GlobeX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name goal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNWMmw4IDQtOCA0IiAvPgogIDxwYXRoIGQ9Ik0yMC41NjEgMTAuMjIyYTkgOSAwIDEgMS0xMi41NS01LjI5IiAvPgogIDxwYXRoIGQ9Ik04LjAwMiA5Ljk5N2E1IDUgMCAxIDAgOC45IDIuMDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/goal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Goal: IconNode = [\n ['path', { d: 'M12 13V2l8 4-8 4' }],\n ['path', { d: 'M20.561 10.222a9 9 0 1 1-12.55-5.29' }],\n ['path', { d: 'M8.002 9.997a5 5 0 1 0 8.9 2.02' }],\n];\n\nexport default Goal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name gpu\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMVYzIiAvPgogIDxwYXRoIGQ9Ik0yIDVoMThhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMi4yNiIgLz4KICA8cGF0aCBkPSJNNyAxN3YzYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi0zIiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iMTEiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iOCIgY3k9IjExIiByPSIyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/gpu\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Gpu: IconNode = [\n ['path', { d: 'M2 21V3' }],\n ['path', { d: 'M2 5h18a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2.26' }],\n ['path', { d: 'M7 17v3a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-3' }],\n ['circle', { cx: '16', cy: '11', r: '2' }],\n ['circle', { cx: '8', cy: '11', r: '2' }],\n];\n\nexport default Gpu;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name graduation-cap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuNDIgMTAuOTIyYTEgMSAwIDAgMC0uMDE5LTEuODM4TDEyLjgzIDUuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgOS4wOGExIDEgMCAwIDAgMCAxLjgzMmw4LjU3IDMuOTA4YTIgMiAwIDAgMCAxLjY2IDB6IiAvPgogIDxwYXRoIGQ9Ik0yMiAxMHY2IiAvPgogIDxwYXRoIGQ9Ik02IDEyLjVWMTZhNiAzIDAgMCAwIDEyIDB2LTMuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/graduation-cap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GraduationCap: IconNode = [\n [\n 'path',\n {\n d: 'M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z',\n },\n ],\n ['path', { d: 'M22 10v6' }],\n ['path', { d: 'M6 12.5V16a6 3 0 0 0 12 0v-3.5' }],\n];\n\nexport default GraduationCap;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grape\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgNVYybC01Ljg5IDUuODkiIC8+CiAgPGNpcmNsZSBjeD0iMTYuNiIgY3k9IjE1Ljg5IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjguMTEiIGN5PSI3LjQiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iMTIuMzUiIGN5PSIxMS42NSIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSIxMy45MSIgY3k9IjUuODUiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iMTguMTUiIGN5PSIxMC4wOSIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSI2LjU2IiBjeT0iMTMuMiIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSIxMC44IiBjeT0iMTcuNDQiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE5IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/grape\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grape: IconNode = [\n ['path', { d: 'M22 5V2l-5.89 5.89' }],\n ['circle', { cx: '16.6', cy: '15.89', r: '3' }],\n ['circle', { cx: '8.11', cy: '7.4', r: '3' }],\n ['circle', { cx: '12.35', cy: '11.65', r: '3' }],\n ['circle', { cx: '13.91', cy: '5.85', r: '3' }],\n ['circle', { cx: '18.15', cy: '10.09', r: '3' }],\n ['circle', { cx: '6.56', cy: '13.2', r: '3' }],\n ['circle', { cx: '10.8', cy: '17.44', r: '3' }],\n ['circle', { cx: '5', cy: '19', r: '3' }],\n];\n\nexport default Grape;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-2x2-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyIgLz4KICA8cGF0aCBkPSJtMTYgMTkgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/grid-2x2-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid2x2Check: IconNode = [\n [\n 'path',\n {\n d: 'M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3',\n },\n ],\n ['path', { d: 'm16 19 2 2 4-4' }],\n];\n\nexport default Grid2x2Check;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-2x2-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyIgLz4KICA8cGF0aCBkPSJNMTYgMTloNiIgLz4KICA8cGF0aCBkPSJNMTkgMjJ2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grid-2x2-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid2x2Plus: IconNode = [\n [\n 'path',\n {\n d: 'M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3',\n },\n ],\n ['path', { d: 'M16 19h6' }],\n ['path', { d: 'M19 22v-6' }],\n];\n\nexport default Grid2x2Plus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-2x2-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyIgLz4KICA8cGF0aCBkPSJtMTYgMTYgNSA1IiAvPgogIDxwYXRoIGQ9Im0xNiAyMSA1LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grid-2x2-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid2x2X: IconNode = [\n [\n 'path',\n {\n d: 'M12 3v17a1 1 0 0 1-1 1H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v6a1 1 0 0 1-1 1H3',\n },\n ],\n ['path', { d: 'm16 16 5 5' }],\n ['path', { d: 'm16 21 5-5' }],\n];\n\nexport default Grid2x2X;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-2x2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cGF0aCBkPSJNMyAxMmgxOCIgLz4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/grid-2x2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid2x2: IconNode = [\n ['path', { d: 'M12 3v18' }],\n ['path', { d: 'M3 12h18' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default Grid2x2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-3x2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM3YxOCIgLz4KICA8cGF0aCBkPSJNMyAxMmgxOCIgLz4KICA8cGF0aCBkPSJNOSAzdjE4IiAvPgogIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grid-3x2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid3x2: IconNode = [\n ['path', { d: 'M15 3v18' }],\n ['path', { d: 'M3 12h18' }],\n ['path', { d: 'M9 3v18' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default Grid3x2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grid-3x3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0iTTMgMTVoMTgiIC8+CiAgPHBhdGggZD0iTTkgM3YxOCIgLz4KICA8cGF0aCBkPSJNMTUgM3YxOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/grid-3x3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grid3x3: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'M9 3v18' }],\n ['path', { d: 'M15 3v18' }],\n];\n\nexport default Grid3x3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grip-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjkiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSI5IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSI5IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTUiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSIxNSIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iMTUiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grip-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GripHorizontal: IconNode = [\n ['circle', { cx: '12', cy: '9', r: '1' }],\n ['circle', { cx: '19', cy: '9', r: '1' }],\n ['circle', { cx: '5', cy: '9', r: '1' }],\n ['circle', { cx: '12', cy: '15', r: '1' }],\n ['circle', { cx: '19', cy: '15', r: '1' }],\n ['circle', { cx: '5', cy: '15', r: '1' }],\n];\n\nexport default GripHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grip-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjUiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjE5IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE1IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTUiIGN5PSI1IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE1IiBjeT0iMTkiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/grip-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst GripVertical: IconNode = [\n ['circle', { cx: '9', cy: '12', r: '1' }],\n ['circle', { cx: '9', cy: '5', r: '1' }],\n ['circle', { cx: '9', cy: '19', r: '1' }],\n ['circle', { cx: '15', cy: '12', r: '1' }],\n ['circle', { cx: '15', cy: '5', r: '1' }],\n ['circle', { cx: '15', cy: '19', r: '1' }],\n];\n\nexport default GripVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name grip\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSI1IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSIxMiIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSI1IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxOSIgcj0iMSIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjE5IiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSIxOSIgcj0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/grip\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Grip: IconNode = [\n ['circle', { cx: '12', cy: '5', r: '1' }],\n ['circle', { cx: '19', cy: '5', r: '1' }],\n ['circle', { cx: '5', cy: '5', r: '1' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n ['circle', { cx: '19', cy: '12', r: '1' }],\n ['circle', { cx: '5', cy: '12', r: '1' }],\n ['circle', { cx: '12', cy: '19', r: '1' }],\n ['circle', { cx: '19', cy: '19', r: '1' }],\n ['circle', { cx: '5', cy: '19', r: '1' }],\n];\n\nexport default Grip;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name group\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVjMC0xLjEuOS0yIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJjMS4xIDAgMiAuOSAyIDJ2MiIgLz4KICA8cGF0aCBkPSJNMjEgMTd2MmMwIDEuMS0uOSAyLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNNyAyMUg1Yy0xLjEgMC0yLS45LTItMnYtMiIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI1IiB4PSI3IiB5PSI3IiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI1IiB4PSIxMCIgeT0iMTIiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/group\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Group: IconNode = [\n ['path', { d: 'M3 7V5c0-1.1.9-2 2-2h2' }],\n ['path', { d: 'M17 3h2c1.1 0 2 .9 2 2v2' }],\n ['path', { d: 'M21 17v2c0 1.1-.9 2-2 2h-2' }],\n ['path', { d: 'M7 21H5c-1.1 0-2-.9-2-2v-2' }],\n ['rect', { width: '7', height: '5', x: '7', y: '7', rx: '1' }],\n ['rect', { width: '7', height: '5', x: '10', y: '12', rx: '1' }],\n];\n\nexport default Group;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name guitar\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEuOSAxMi4xIDQuNTE0LTQuNTE0IiAvPgogIDxwYXRoIGQ9Ik0yMC4xIDIuM2ExIDEgMCAwIDAtMS40IDBsLTEuMTE0IDEuMTE0QTIgMiAwIDAgMCAxNyA0LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMTcuODI4IDdoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMjEuNyA1LjNhMSAxIDAgMCAwIDAtMS40eiIgLz4KICA8cGF0aCBkPSJtNiAxNiAyIDIiIC8+CiAgPHBhdGggZD0iTTguMjMgOS44NUEzIDMgMCAwIDEgMTEgOGE1IDUgMCAwIDEgNSA1IDMgMyAwIDAgMS0xLjg1IDIuNzdsLS45Mi4zOEEyIDIgMCAwIDAgMTIgMThhNCA0IDAgMCAxLTQgNCA2IDYgMCAwIDEtNi02IDQgNCAwIDAgMSA0LTQgMiAyIDAgMCAwIDEuODUtMS4yM3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/guitar\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Guitar: IconNode = [\n ['path', { d: 'm11.9 12.1 4.514-4.514' }],\n [\n 'path',\n {\n d: 'M20.1 2.3a1 1 0 0 0-1.4 0l-1.114 1.114A2 2 0 0 0 17 4.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 17.828 7h1.344a2 2 0 0 0 1.414-.586L21.7 5.3a1 1 0 0 0 0-1.4z',\n },\n ],\n ['path', { d: 'm6 16 2 2' }],\n [\n 'path',\n {\n d: 'M8.23 9.85A3 3 0 0 1 11 8a5 5 0 0 1 5 5 3 3 0 0 1-1.85 2.77l-.92.38A2 2 0 0 0 12 18a4 4 0 0 1-4 4 6 6 0 0 1-6-6 4 4 0 0 1 4-4 2 2 0 0 0 1.85-1.23z',\n },\n ],\n];\n\nexport default Guitar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ham\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuMTQ0IDIxLjE0NEE3LjI3NCAxMC40NDUgNDUgMSAwIDIuODU2IDEwLjg1NiIgLz4KICA8cGF0aCBkPSJNMTMuMTQ0IDIxLjE0NEE3LjI3NCA0LjM2NSA0NSAwIDAgMi44NTYgMTAuODU2YTcuMjc0IDQuMzY1IDQ1IDAgMCAxMC4yODggMTAuMjg4IiAvPgogIDxwYXRoIGQ9Ik0xNi41NjUgMTAuNDM1IDE4LjYgOC40YTIuNTAxIDIuNTAxIDAgMSAwIDEuNjUtNC42NSAyLjUgMi41IDAgMSAwLTQuNjYgMS42NmwtMi4wMjQgMi4wMjUiIC8+CiAgPHBhdGggZD0ibTguNSAxNi41LTEtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ham\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ham: IconNode = [\n ['path', { d: 'M13.144 21.144A7.274 10.445 45 1 0 2.856 10.856' }],\n [\n 'path',\n { d: 'M13.144 21.144A7.274 4.365 45 0 0 2.856 10.856a7.274 4.365 45 0 0 10.288 10.288' },\n ],\n [\n 'path',\n {\n d: 'M16.565 10.435 18.6 8.4a2.501 2.501 0 1 0 1.65-4.65 2.5 2.5 0 1 0-4.66 1.66l-2.024 2.025',\n },\n ],\n ['path', { d: 'm8.5 16.5-1-1' }],\n];\n\nexport default Ham;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hamburger\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZINGEyIDIgMCAxIDEgMC00aDE2YTIgMiAwIDEgMSAwIDRoLTQuMjUiIC8+CiAgPHBhdGggZD0iTTUgMTJhMiAyIDAgMCAxLTItMiA5IDcgMCAwIDEgMTggMCAyIDIgMCAwIDEtMiAyIiAvPgogIDxwYXRoIGQ9Ik01IDE2YTIgMiAwIDAgMC0yIDIgMyAzIDAgMCAwIDMgM2gxMmEzIDMgMCAwIDAgMy0zIDIgMiAwIDAgMC0yLTJxMCAwIDAgMCIgLz4KICA8cGF0aCBkPSJtNi42NyAxMiA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hamburger\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hamburger: IconNode = [\n ['path', { d: 'M12 16H4a2 2 0 1 1 0-4h16a2 2 0 1 1 0 4h-4.25' }],\n ['path', { d: 'M5 12a2 2 0 0 1-2-2 9 7 0 0 1 18 0 2 2 0 0 1-2 2' }],\n ['path', { d: 'M5 16a2 2 0 0 0-2 2 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 2 2 0 0 0-2-2q0 0 0 0' }],\n ['path', { d: 'm6.67 12 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2' }],\n];\n\nexport default Hamburger;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hammer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTItOS4zNzMgOS4zNzNhMSAxIDAgMCAxLTMuMDAxLTNMMTIgOSIgLz4KICA8cGF0aCBkPSJtMTggMTUgNC00IiAvPgogIDxwYXRoIGQ9Im0yMS41IDExLjUtMS45MTQtMS45MTRBMiAyIDAgMCAxIDE5IDguMTcydi0uMzQ0YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0xLjY1Ny0xLjY1N0E2IDYgMCAwIDAgMTIuNTE2IDNIOWwxLjI0MyAxLjI0M0E2IDYgMCAwIDEgMTIgOC40ODVWMTBsMiAyaDEuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZMMTguNSAxNC41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hammer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hammer: IconNode = [\n ['path', { d: 'm15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9' }],\n ['path', { d: 'm18 15 4-4' }],\n [\n 'path',\n {\n d: 'm21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5',\n },\n ],\n];\n\nexport default Hammer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-coins\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTVoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTciIC8+CiAgPHBhdGggZD0ibTcgMjEgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSIgLz4KICA8cGF0aCBkPSJtMiAxNiA2IDYiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSI5IiByPSIyLjkiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjUiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hand-coins\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandCoins: IconNode = [\n ['path', { d: 'M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17' }],\n [\n 'path',\n {\n d: 'm7 21 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9',\n },\n ],\n ['path', { d: 'm2 16 6 6' }],\n ['circle', { cx: '16', cy: '9', r: '2.9' }],\n ['circle', { cx: '6', cy: '5', r: '3' }],\n];\n\nexport default HandCoins;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-fist\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMDM1IDE3LjAxMmEzIDMgMCAwIDAtMy0zbC0uMzExLS4wMDJhLjcyLjcyIDAgMCAxLS41MDUtMS4yMjlsMS4xOTUtMS4xOTVBMiAyIDAgMCAxIDEwLjgyOCAxMUgxMmEyIDIgMCAwIDAgMC00SDkuMjQzYTMgMyAwIDAgMC0yLjEyMi44NzlsLTIuNzA3IDIuNzA3QTQuODMgNC44MyAwIDAgMCAzIDE0YTggOCAwIDAgMCA4IDhoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHYyYTIgMiAwIDEgMCA0IDAiIC8+CiAgPHBhdGggZD0iTTEzLjg4OCA5LjY2MkEyIDIgMCAwIDAgMTcgOFY1QTIgMiAwIDEgMCAxMyA1IiAvPgogIDxwYXRoIGQ9Ik05IDVBMiAyIDAgMSAwIDUgNVYxMCIgLz4KICA8cGF0aCBkPSJNOSA3VjRBMiAyIDAgMSAxIDEzIDRWNy4yNjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hand-fist\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandFist: IconNode = [\n [\n 'path',\n {\n d: 'M12.035 17.012a3 3 0 0 0-3-3l-.311-.002a.72.72 0 0 1-.505-1.229l1.195-1.195A2 2 0 0 1 10.828 11H12a2 2 0 0 0 0-4H9.243a3 3 0 0 0-2.122.879l-2.707 2.707A4.83 4.83 0 0 0 3 14a8 8 0 0 0 8 8h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v2a2 2 0 1 0 4 0',\n },\n ],\n ['path', { d: 'M13.888 9.662A2 2 0 0 0 17 8V5A2 2 0 1 0 13 5' }],\n ['path', { d: 'M9 5A2 2 0 1 0 5 5V10' }],\n ['path', { d: 'M9 7V4A2 2 0 1 1 13 4V7.268' }],\n];\n\nexport default HandFist;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-grab\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTEuNVY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxLjQiIC8+CiAgPHBhdGggZD0iTTE0IDEwVjhhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjIiIC8+CiAgPHBhdGggZD0iTTEwIDkuOVY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnY1IiAvPgogIDxwYXRoIGQ9Ik02IDE0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiIgLz4KICA8cGF0aCBkPSJNMTggMTFhMiAyIDAgMSAxIDQgMHYzYTggOCAwIDAgMS04IDhoLTRhOCA4IDAgMCAxLTgtOCAyIDIgMCAxIDEgNCAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hand-grab\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandGrab: IconNode = [\n ['path', { d: 'M18 11.5V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4' }],\n ['path', { d: 'M14 10V8a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2' }],\n ['path', { d: 'M10 9.9V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v5' }],\n ['path', { d: 'M6 14a2 2 0 0 0-2-2a2 2 0 0 0-2 2' }],\n ['path', { d: 'M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-4a8 8 0 0 1-8-8 2 2 0 1 1 4 0' }],\n];\n\nexport default HandGrab;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTRoMmEyIDIgMCAwIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTYiIC8+CiAgPHBhdGggZD0ibTE0LjQ1IDEzLjM5IDUuMDUtNC42OTRDMjAuMTk2IDggMjEgNi44NSAyMSA1Ljc1YTIuNzUgMi43NSAwIDAgMC00Ljc5Ny0xLjgzNy4yNzYuMjc2IDAgMCAxLS40MDYgMEEyLjc1IDIuNzUgMCAwIDAgMTEgNS43NWMwIDEuMi44MDIgMi4yNDggMS41IDIuOTQ2TDE2IDExLjk1IiAvPgogIDxwYXRoIGQ9Im0yIDE1IDYgNiIgLz4KICA8cGF0aCBkPSJtNyAyMCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGExIDEgMCAwIDAtMi43NS0yLjkxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hand-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandHeart: IconNode = [\n ['path', { d: 'M11 14h2a2 2 0 0 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 16' }],\n [\n 'path',\n {\n d: 'm14.45 13.39 5.05-4.694C20.196 8 21 6.85 21 5.75a2.75 2.75 0 0 0-4.797-1.837.276.276 0 0 1-.406 0A2.75 2.75 0 0 0 11 5.75c0 1.2.802 2.248 1.5 2.946L16 11.95',\n },\n ],\n ['path', { d: 'm2 15 6 6' }],\n [\n 'path',\n { d: 'm7 20 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a1 1 0 0 0-2.75-2.91' },\n ],\n];\n\nexport default HandHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-helping\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTJoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTQiIC8+CiAgPHBhdGggZD0ibTcgMTggMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSIgLz4KICA8cGF0aCBkPSJtMiAxMyA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hand-helping\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandHelping: IconNode = [\n ['path', { d: 'M11 12h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 14' }],\n [\n 'path',\n {\n d: 'm7 18 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9',\n },\n ],\n ['path', { d: 'm2 13 6 6' }],\n];\n\nexport default HandHelping;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-metal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTIuNVYxMGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40IiAvPgogIDxwYXRoIGQ9Ik0xNCAxMVY5YTIgMiAwIDEgMC00IDB2MiIgLz4KICA8cGF0aCBkPSJNMTAgMTAuNVY1YTIgMiAwIDEgMC00IDB2OSIgLz4KICA8cGF0aCBkPSJtNyAxNS0xLjc2LTEuNzZhMiAyIDAgMCAwLTIuODMgMi44MmwzLjYgMy42QzcuNSAyMS4xNCA5LjIgMjIgMTIgMjJoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHY1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hand-metal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandMetal: IconNode = [\n ['path', { d: 'M18 12.5V10a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1.4' }],\n ['path', { d: 'M14 11V9a2 2 0 1 0-4 0v2' }],\n ['path', { d: 'M10 10.5V5a2 2 0 1 0-4 0v9' }],\n [\n 'path',\n {\n d: 'm7 15-1.76-1.76a2 2 0 0 0-2.83 2.82l3.6 3.6C7.5 21.14 9.2 22 12 22h2a8 8 0 0 0 8-8V7a2 2 0 1 0-4 0v5',\n },\n ],\n];\n\nexport default HandMetal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand-platter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM1YyIiAvPgogIDxwYXRoIGQ9Im0xNS40IDE3LjQgMy4yLTIuOGEyIDIgMCAxIDEgMi44IDIuOWwtMy42IDMuM2MtLjcuOC0xLjcgMS4yLTIuOCAxLjJoLTRjLTEuMSAwLTIuMS0uNC0yLjgtMS4ybC0xLjMwMi0xLjQ2NEExIDEgMCAwIDAgNi4xNTEgMTlINSIgLz4KICA8cGF0aCBkPSJNMiAxNGgxMmEyIDIgMCAwIDEgMCA0aC0yIiAvPgogIDxwYXRoIGQ9Ik00IDEwaDE2IiAvPgogIDxwYXRoIGQ9Ik01IDEwYTcgNyAwIDAgMSAxNCAwIiAvPgogIDxwYXRoIGQ9Ik01IDE0djZhMSAxIDAgMCAxLTEgMUgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hand-platter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HandPlatter: IconNode = [\n ['path', { d: 'M12 3V2' }],\n [\n 'path',\n {\n d: 'm15.4 17.4 3.2-2.8a2 2 0 1 1 2.8 2.9l-3.6 3.3c-.7.8-1.7 1.2-2.8 1.2h-4c-1.1 0-2.1-.4-2.8-1.2l-1.302-1.464A1 1 0 0 0 6.151 19H5',\n },\n ],\n ['path', { d: 'M2 14h12a2 2 0 0 1 0 4h-2' }],\n ['path', { d: 'M4 10h16' }],\n ['path', { d: 'M5 10a7 7 0 0 1 14 0' }],\n ['path', { d: 'M5 14v6a1 1 0 0 1-1 1H2' }],\n];\n\nexport default HandPlatter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hand\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTFWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDIiIC8+CiAgPHBhdGggZD0iTTE0IDEwVjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjIiIC8+CiAgPHBhdGggZD0iTTEwIDEwLjVWNmEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2OCIgLz4KICA8cGF0aCBkPSJNMTggOGEyIDIgMCAxIDEgNCAwdjZhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hand\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hand: IconNode = [\n ['path', { d: 'M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2' }],\n ['path', { d: 'M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2' }],\n ['path', { d: 'M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8' }],\n [\n 'path',\n {\n d: 'M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15',\n },\n ],\n];\n\nexport default Hand;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name handbag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNDggMTguNTY2QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjk1Mi0yLjQzNGwtMi05QTIgMiAwIDAgMCAxOCA4SDZhMiAyIDAgMCAwLTEuOTUyIDEuNTY2eiIgLz4KICA8cGF0aCBkPSJNOCAxMVY2YTQgNCAwIDAgMSA4IDB2NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/handbag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Handbag: IconNode = [\n [\n 'path',\n {\n d: 'M2.048 18.566A2 2 0 0 0 4 21h16a2 2 0 0 0 1.952-2.434l-2-9A2 2 0 0 0 18 8H6a2 2 0 0 0-1.952 1.566z',\n },\n ],\n ['path', { d: 'M8 11V6a4 4 0 0 1 8 0v5' }],\n];\n\nexport default Handbag;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name handshake\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTcgMiAyYTEgMSAwIDEgMCAzLTMiIC8+CiAgPHBhdGggZD0ibTE0IDE0IDIuNSAyLjVhMSAxIDAgMSAwIDMtM2wtMy44OC0zLjg4YTMgMyAwIDAgMC00LjI0IDBsLS44OC44OGExIDEgMCAxIDEtMy0zbDIuODEtMi44MWE1Ljc5IDUuNzkgMCAwIDEgNy4wNi0uODdsLjQ3LjI4YTIgMiAwIDAgMCAxLjQyLjI1TDIxIDQiIC8+CiAgPHBhdGggZD0ibTIxIDMgMSAxMWgtMiIgLz4KICA8cGF0aCBkPSJNMyAzIDIgMTRsNi41IDYuNWExIDEgMCAxIDAgMy0zIiAvPgogIDxwYXRoIGQ9Ik0zIDRoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/handshake\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Handshake: IconNode = [\n ['path', { d: 'm11 17 2 2a1 1 0 1 0 3-3' }],\n [\n 'path',\n {\n d: 'm14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4',\n },\n ],\n ['path', { d: 'm21 3 1 11h-2' }],\n ['path', { d: 'M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3' }],\n ['path', { d: 'M3 4h8' }],\n];\n\nexport default Handshake;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hard-drive-download\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY4IiAvPgogIDxwYXRoIGQ9Im0xNiA2LTQgNC00LTQiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHg9IjIiIHk9IjE0IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTEwIDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hard-drive-download\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HardDriveDownload: IconNode = [\n ['path', { d: 'M12 2v8' }],\n ['path', { d: 'm16 6-4 4-4-4' }],\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'M10 18h.01' }],\n];\n\nexport default HardDriveDownload;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hard-drive-upload\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgNi00LTQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjgiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHg9IjIiIHk9IjE0IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTEwIDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hard-drive-upload\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HardDriveUpload: IconNode = [\n ['path', { d: 'm16 6-4-4-4 4' }],\n ['path', { d: 'M12 2v8' }],\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'M10 18h.01' }],\n];\n\nexport default HardDriveUpload;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hard-drive\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yLjIxMiAxMS41NzdhMiAyIDAgMCAwLS4yMTIuODk2VjE4YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNS41MjdhMiAyIDAgMCAwLS4yMTItLjg5NkwxOC41NSA1LjExQTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXoiIC8+CiAgPHBhdGggZD0iTTIxLjk0NiAxMi4wMTNIMi4wNTQiIC8+CiAgPHBhdGggZD0iTTYgMTZoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hard-drive\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HardDrive: IconNode = [\n ['path', { d: 'M10 16h.01' }],\n [\n 'path',\n {\n d: 'M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z',\n },\n ],\n ['path', { d: 'M21.946 12.013H2.054' }],\n ['path', { d: 'M6 16h.01' }],\n];\n\nexport default HardDrive;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hard-hat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTBWNWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY1IiAvPgogIDxwYXRoIGQ9Ik0xNCA2YTYgNiAwIDAgMSA2IDZ2MyIgLz4KICA8cGF0aCBkPSJNNCAxNXYtM2E2IDYgMCAwIDEgNi02IiAvPgogIDxyZWN0IHg9IjIiIHk9IjE1IiB3aWR0aD0iMjAiIGhlaWdodD0iNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hard-hat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HardHat: IconNode = [\n ['path', { d: 'M10 10V5a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v5' }],\n ['path', { d: 'M14 6a6 6 0 0 1 6 6v3' }],\n ['path', { d: 'M4 15v-3a6 6 0 0 1 6-6' }],\n ['rect', { x: '2', y: '15', width: '20', height: '4', rx: '1' }],\n];\n\nexport default HardHat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iOSIgeTI9IjkiIC8+CiAgPGxpbmUgeDE9IjQiIHgyPSIyMCIgeTE9IjE1IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjEwIiB4Mj0iOCIgeTE9IjMiIHkyPSIyMSIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIxNCIgeTE9IjMiIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hash: IconNode = [\n ['line', { x1: '4', x2: '20', y1: '9', y2: '9' }],\n ['line', { x1: '4', x2: '20', y1: '15', y2: '15' }],\n ['line', { x1: '10', x2: '8', y1: '3', y2: '21' }],\n ['line', { x1: '16', x2: '14', y1: '3', y2: '21' }],\n];\n\nexport default Hash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hat-glasses\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMThhMiAyIDAgMCAwLTQgMCIgLz4KICA8cGF0aCBkPSJtMTkgMTEtMi4xMS02LjY1N2EyIDIgMCAwIDAtMi43NTItMS4xNDhsLTEuMjc2LjYxQTIgMiAwIDAgMSAxMiA0SDguNWEyIDIgMCAwIDAtMS45MjUgMS40NTZMNSAxMSIgLz4KICA8cGF0aCBkPSJNMiAxMWgyMCIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hat-glasses\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HatGlasses: IconNode = [\n ['path', { d: 'M14 18a2 2 0 0 0-4 0' }],\n [\n 'path',\n {\n d: 'm19 11-2.11-6.657a2 2 0 0 0-2.752-1.148l-1.276.61A2 2 0 0 1 12 4H8.5a2 2 0 0 0-1.925 1.456L5 11',\n },\n ],\n ['path', { d: 'M2 11h20' }],\n ['circle', { cx: '17', cy: '18', r: '3' }],\n ['circle', { cx: '7', cy: '18', r: '3' }],\n];\n\nexport default HatGlasses;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name haze\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNS4yIDYuMiAxLjQgMS40IiAvPgogIDxwYXRoIGQ9Ik0yIDEzaDIiIC8+CiAgPHBhdGggZD0iTTIwIDEzaDIiIC8+CiAgPHBhdGggZD0ibTE3LjQgNy42IDEuNC0xLjQiIC8+CiAgPHBhdGggZD0iTTIyIDE3SDIiIC8+CiAgPHBhdGggZD0iTTIyIDIxSDIiIC8+CiAgPHBhdGggZD0iTTE2IDEzYTQgNCAwIDAgMC04IDAiIC8+CiAgPHBhdGggZD0iTTEyIDVWMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/haze\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Haze: IconNode = [\n ['path', { d: 'm5.2 6.2 1.4 1.4' }],\n ['path', { d: 'M2 13h2' }],\n ['path', { d: 'M20 13h2' }],\n ['path', { d: 'm17.4 7.6 1.4-1.4' }],\n ['path', { d: 'M22 17H2' }],\n ['path', { d: 'M22 21H2' }],\n ['path', { d: 'M16 13a4 4 0 0 0-8 0' }],\n ['path', { d: 'M12 5V2.5' }],\n];\n\nexport default Haze;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hd\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJINiIgLz4KICA8cGF0aCBkPSJNMTAgMTVWOSIgLz4KICA8cGF0aCBkPSJNMTQgMTQuNWEuNS41IDAgMCAwIC41LjVoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFBMi41IDIuNSAwIDAgMCAxNS41IDloLTFhLjUuNSAwIDAgMC0uNS41eiIgLz4KICA8cGF0aCBkPSJNNiAxNVY5IiAvPgogIDxyZWN0IHg9IjIiIHk9IjUiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/hd\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hd: IconNode = [\n ['path', { d: 'M10 12H6' }],\n ['path', { d: 'M10 15V9' }],\n [\n 'path',\n {\n d: 'M14 14.5a.5.5 0 0 0 .5.5h1a2.5 2.5 0 0 0 2.5-2.5v-1A2.5 2.5 0 0 0 15.5 9h-1a.5.5 0 0 0-.5.5z',\n },\n ],\n ['path', { d: 'M6 15V9' }],\n ['rect', { x: '2', y: '5', width: '20', height: '14', rx: '2' }],\n];\n\nexport default Hd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hdmi-port\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgOWExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoMWwyIDJoMTJsMi0yaDFhMSAxIDAgMCAwIDEtMVoiIC8+CiAgPHBhdGggZD0iTTcuNSAxMmg5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hdmi-port\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HdmiPort: IconNode = [\n [\n 'path',\n { d: 'M22 9a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1l2 2h12l2-2h1a1 1 0 0 0 1-1Z' },\n ],\n ['path', { d: 'M7.5 12h9' }],\n];\n\nexport default HdmiPort;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPHBhdGggZD0ibTE3IDEyIDMtMnY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heading-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading1: IconNode = [\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n ['path', { d: 'M12 18V6' }],\n ['path', { d: 'm17 12 3-2v8' }],\n];\n\nexport default Heading1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPHBhdGggZD0iTTIxIDE4aC00YzAtNCA0LTMgNC02IDAtMS41LTItMi41LTQtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heading-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading2: IconNode = [\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n ['path', { d: 'M12 18V6' }],\n ['path', { d: 'M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1' }],\n];\n\nexport default Heading2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPHBhdGggZD0iTTE3LjUgMTAuNWMxLjctMSAzLjUgMCAzLjUgMS41YTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTE3IDE3LjVjMiAxLjUgNCAuMyA0LTEuNWEyIDIgMCAwIDAtMi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heading-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading3: IconNode = [\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n ['path', { d: 'M12 18V6' }],\n ['path', { d: 'M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2' }],\n ['path', { d: 'M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2' }],\n];\n\nexport default Heading3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMThWNiIgLz4KICA8cGF0aCBkPSJNMTcgMTB2M2ExIDEgMCAwIDAgMSAxaDMiIC8+CiAgPHBhdGggZD0iTTIxIDEwdjgiIC8+CiAgPHBhdGggZD0iTTQgMTJoOCIgLz4KICA8cGF0aCBkPSJNNCAxOFY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heading-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading4: IconNode = [\n ['path', { d: 'M12 18V6' }],\n ['path', { d: 'M17 10v3a1 1 0 0 0 1 1h3' }],\n ['path', { d: 'M21 10v8' }],\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n];\n\nexport default Heading4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-5\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPHBhdGggZD0iTTE3IDEzdi0zaDQiIC8+CiAgPHBhdGggZD0iTTE3IDE3LjdjLjQuMi44LjMgMS4zLjMgMS41IDAgMi43LTEuMSAyLjctMi41UzE5LjggMTMgMTguMyAxM0gxNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heading-5\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading5: IconNode = [\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n ['path', { d: 'M12 18V6' }],\n ['path', { d: 'M17 13v-3h4' }],\n ['path', { d: 'M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17' }],\n];\n\nexport default Heading5;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading-6\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSIxNiIgcj0iMiIgLz4KICA8cGF0aCBkPSJNMjAgMTBjLTIgMi0zIDMuNS0zIDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/heading-6\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading6: IconNode = [\n ['path', { d: 'M4 12h8' }],\n ['path', { d: 'M4 18V6' }],\n ['path', { d: 'M12 18V6' }],\n ['circle', { cx: '19', cy: '16', r: '2' }],\n ['path', { d: 'M20 10c-2 2-3 3.5-3 6' }],\n];\n\nexport default Heading6;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heading\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxMmgxMiIgLz4KICA8cGF0aCBkPSJNNiAyMFY0IiAvPgogIDxwYXRoIGQ9Ik0xOCAyMFY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heading\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heading: IconNode = [\n ['path', { d: 'M6 12h12' }],\n ['path', { d: 'M6 20V4' }],\n ['path', { d: 'M18 20V4' }],\n];\n\nexport default Heading;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name headphone-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTRoLTEuMzQzIiAvPgogIDxwYXRoIGQ9Ik05LjEyOCAzLjQ3QTkgOSAwIDAgMSAyMSAxMnYzLjM0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMC40MTQgMjAuNDE0QTIgMiAwIDAgMSAxOSAyMWgtMWEyIDIgMCAwIDEtMi0ydi0zIiAvPgogIDxwYXRoIGQ9Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAyLjYzNi02LjM2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/headphone-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeadphoneOff: IconNode = [\n ['path', { d: 'M21 14h-1.343' }],\n ['path', { d: 'M9.128 3.47A9 9 0 0 1 21 12v3.343' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20.414 20.414A2 2 0 0 1 19 21h-1a2 2 0 0 1-2-2v-3' }],\n ['path', { d: 'M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 2.636-6.364' }],\n];\n\nexport default HeadphoneOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name headphones\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxNGgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtN2E5IDkgMCAwIDEgMTggMHY3YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/headphones\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Headphones: IconNode = [\n [\n 'path',\n {\n d: 'M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3',\n },\n ],\n];\n\nexport default Headphones;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-crack\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNDA5IDUuODI0Yy0uNzAyLjc5Mi0xLjE1IDEuNDk2LTEuNDE1IDIuMTY2bDIuMTUzIDIuMTU2YS41LjUgMCAwIDEgMCAuNzA3bC0yLjI5MyAyLjI5M2EuNS41IDAgMCAwIDAgLjcwN0wxMiAxNSIgLz4KICA8cGF0aCBkPSJNMTMuNTA4IDIwLjMxM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ny42LjYgMCAwIDAgLjgxOC4wMDFBNS41IDUuNSAwIDAgMSAyMiA5LjVjMCAyLjI5LTEuNSA0LTMgNS41eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heart-crack\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartCrack: IconNode = [\n [\n 'path',\n {\n d: 'M12.409 5.824c-.702.792-1.15 1.496-1.415 2.166l2.153 2.156a.5.5 0 0 1 0 .707l-2.293 2.293a.5.5 0 0 0 0 .707L12 15',\n },\n ],\n [\n 'path',\n {\n d: 'M13.508 20.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.677.6.6 0 0 0 .818.001A5.5 5.5 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5z',\n },\n ],\n];\n\nexport default HeartCrack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name headset\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNnYyYTQgNCAwIDAgMS00IDRoLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/headset\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Headset: IconNode = [\n [\n 'path',\n {\n d: 'M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z',\n },\n ],\n ['path', { d: 'M21 16v2a4 4 0 0 1-4 4h-5' }],\n];\n\nexport default Headset;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-handshake\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuNDE0IDE0LjQxNEMyMSAxMi44MjggMjIgMTEuNSAyMiA5LjVhNS41IDUuNSAwIDAgMC05LjU5MS0zLjY3Ni42LjYgMCAwIDEtLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyIDkuNWMwIDIuMyAxLjUgNCAzIDUuNWw1LjUzNSA1LjM2MmEyIDIgMCAwIDAgMi44NzkuMDUyIDIuMTIgMi4xMiAwIDAgMC0uMDA0LTMgMi4xMjQgMi4xMjQgMCAxIDAgMy0zIDIuMTI0IDIuMTI0IDAgMCAwIDMuMDA0IDAgMiAyIDAgMCAwIDAtMi44MjhsLTEuODgxLTEuODgyYTIuNDEgMi40MSAwIDAgMC0zLjQwOSAwbC0xLjcxIDEuNzFhMiAyIDAgMCAxLTIuODI4IDAgMiAyIDAgMCAxIDAtMi44MjhsMi44MjMtMi43NjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/heart-handshake\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartHandshake: IconNode = [\n [\n 'path',\n {\n d: 'M19.414 14.414C21 12.828 22 11.5 22 9.5a5.5 5.5 0 0 0-9.591-3.676.6.6 0 0 1-.818.001A5.5 5.5 0 0 0 2 9.5c0 2.3 1.5 4 3 5.5l5.535 5.362a2 2 0 0 0 2.879.052 2.12 2.12 0 0 0-.004-3 2.124 2.124 0 1 0 3-3 2.124 2.124 0 0 0 3.004 0 2 2 0 0 0 0-2.828l-1.881-1.882a2.41 2.41 0 0 0-3.409 0l-1.71 1.71a2 2 0 0 1-2.828 0 2 2 0 0 1 0-2.828l2.823-2.762',\n },\n ],\n];\n\nexport default HeartHandshake;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuODc2IDE4Ljk5LTEuMzY4IDEuMzIzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjI0NCAxLjU3MiIgLz4KICA8cGF0aCBkPSJNMTUgMTVoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heart-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartMinus: IconNode = [\n [\n 'path',\n {\n d: 'm14.876 18.99-1.368 1.323a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5a5.2 5.2 0 0 1-.244 1.572',\n },\n ],\n ['path', { d: 'M15 15h6' }],\n];\n\nexport default HeartMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSA0Ljg5M2E1LjUgNS41IDAgMCAxIDEuMDkxLjkzMS41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDEuODcyLTEuMDAyIDMuMzU2LTIuMTg3IDQuNjU1IiAvPgogIDxwYXRoIGQ9Im0xNi45NjcgMTYuOTY3LTMuNDU5IDMuMzQ2YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDIuNzQ3LTQuNzYxIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/heart-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartOff: IconNode = [\n [\n 'path',\n {\n d: 'M10.5 4.893a5.5 5.5 0 0 1 1.091.931.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 1.872-1.002 3.356-2.187 4.655',\n },\n ],\n [\n 'path',\n {\n d: 'm16.967 16.967-3.459 3.346a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 2.747-4.761',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default HeartOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-pulse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSIgLz4KICA8cGF0aCBkPSJNMy4yMiAxM0g5LjVsLjUtMSAyIDQuNSAyLTcgMS41IDMuNWg1LjI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heart-pulse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartPulse: IconNode = [\n [\n 'path',\n {\n d: 'M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5',\n },\n ],\n ['path', { d: 'M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27' }],\n];\n\nexport default HeartPulse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuNDc5IDE5LjM3NC0uOTcxLjkzOWEyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWE1LjIgNS4yIDAgMCAxLS4yMTkgMS40OSIgLz4KICA8cGF0aCBkPSJNMTUgMTVoNiIgLz4KICA8cGF0aCBkPSJNMTggMTJ2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heart-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HeartPlus: IconNode = [\n [\n 'path',\n {\n d: 'm14.479 19.374-.971.939a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5a5.2 5.2 0 0 1-.219 1.49',\n },\n ],\n ['path', { d: 'M15 15h6' }],\n ['path', { d: 'M18 12v6' }],\n];\n\nexport default HeartPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heart: IconNode = [\n [\n 'path',\n {\n d: 'M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5',\n },\n ],\n];\n\nexport default Heart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name heater\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgOGMyLTMtMi0zIDAtNiIgLz4KICA8cGF0aCBkPSJNMTUuNSA4YzItMy0yLTMgMC02IiAvPgogIDxwYXRoIGQ9Ik02IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNNiAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTEwIDE2di00IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNnYtNCIgLz4KICA8cGF0aCBkPSJNMTggMTZ2LTQiIC8+CiAgPHBhdGggZD0iTTIwIDZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMyIgLz4KICA8cGF0aCBkPSJNNSAyMHYyIiAvPgogIDxwYXRoIGQ9Ik0xOSAyMHYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heater\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Heater: IconNode = [\n ['path', { d: 'M11 8c2-3-2-3 0-6' }],\n ['path', { d: 'M15.5 8c2-3-2-3 0-6' }],\n ['path', { d: 'M6 10h.01' }],\n ['path', { d: 'M6 14h.01' }],\n ['path', { d: 'M10 16v-4' }],\n ['path', { d: 'M14 16v-4' }],\n ['path', { d: 'M18 16v-4' }],\n ['path', { d: 'M20 6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3' }],\n ['path', { d: 'M5 20v2' }],\n ['path', { d: 'M19 20v2' }],\n];\n\nexport default Heater;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name helicopter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTd2NCIgLz4KICA8cGF0aCBkPSJNMTQgM3Y4YTIgMiAwIDAgMCAyIDJoNS44NjUiIC8+CiAgPHBhdGggZD0iTTE3IDE3djQiIC8+CiAgPHBhdGggZD0iTTE4IDE3YTQgNCAwIDAgMCA0LTQgOCA2IDAgMCAwLTgtNiA2IDUgMCAwIDAtNiA1djNhMiAyIDAgMCAwIDIgMnoiIC8+CiAgPHBhdGggZD0iTTIgMTB2NSIgLz4KICA8cGF0aCBkPSJNNiAzaDE2IiAvPgogIDxwYXRoIGQ9Ik03IDIxaDE0IiAvPgogIDxwYXRoIGQ9Ik04IDEzSDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/helicopter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Helicopter: IconNode = [\n ['path', { d: 'M11 17v4' }],\n ['path', { d: 'M14 3v8a2 2 0 0 0 2 2h5.865' }],\n ['path', { d: 'M17 17v4' }],\n ['path', { d: 'M18 17a4 4 0 0 0 4-4 8 6 0 0 0-8-6 6 5 0 0 0-6 5v3a2 2 0 0 0 2 2z' }],\n ['path', { d: 'M2 10v5' }],\n ['path', { d: 'M6 3h16' }],\n ['path', { d: 'M7 21h14' }],\n ['path', { d: 'M8 13H2' }],\n];\n\nexport default Helicopter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hexagon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hexagon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hexagon: IconNode = [\n [\n 'path',\n {\n d: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',\n },\n ],\n];\n\nexport default Hexagon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name highlighter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxMS02IDZ2M2g5bDMtMyIgLz4KICA8cGF0aCBkPSJtMjIgMTItNC42IDQuNmEyIDIgMCAwIDEtMi44IDBsLTUuMi01LjJhMiAyIDAgMCAxIDAtMi44TDE0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/highlighter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Highlighter: IconNode = [\n ['path', { d: 'm9 11-6 6v3h9l3-3' }],\n ['path', { d: 'm22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4' }],\n];\n\nexport default Highlighter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name history\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4IiAvPgogIDxwYXRoIGQ9Ik0zIDN2NWg1IiAvPgogIDxwYXRoIGQ9Ik0xMiA3djVsNCAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/history\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst History: IconNode = [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n ['path', { d: 'M12 7v5l4 2' }],\n];\n\nexport default History;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuODIgMTYuMTJjMS42OS42IDMuOTEuNzkgNS4xOC44NS41NS4wMyAxLS40Mi45Ny0uOTctLjA2LTEuMjctLjI2LTMuNS0uODUtNS4xOCIgLz4KICA8cGF0aCBkPSJNMTEuNSA2LjVjMS42NCAwIDUtLjM4IDYuNzEtMS4wNy41Mi0uMi41NS0uODIuMTItMS4xN0ExMCAxMCAwIDAgMCA0LjI2IDE4LjMzYy4zNS40My45Ni40IDEuMTctLjEyLjY5LTEuNzEgMS4wNy01LjA3IDEuMDctNi43MSAxLjM0LjQ1IDMuMS45IDQuODguNjJhLjg4Ljg4IDAgMCAwIC43My0uNzRjLjMtMi4xNC0uMTUtMy41LS42MS00Ljg4IiAvPgogIDxwYXRoIGQ9Ik0xNS42MiAxNi45NWMuMi44NS42MiAyLjc2LjUgNC4yOGEuNzcuNzcgMCAwIDEtLjkuNyAxNi42NCAxNi42NCAwIDAgMS00LjA4LTEuMzYiIC8+CiAgPHBhdGggZD0iTTE2LjEzIDIxLjA1YzEuNjUuNjMgMy42OC44NCA0Ljg3LjkxYS45LjkgMCAwIDAgLjk2LS45NiAxNy42OCAxNy42OCAwIDAgMC0uOS00Ljg3IiAvPgogIDxwYXRoIGQ9Ik0xNi45NCAxNS42MmMuODYuMiAyLjc3LjYyIDQuMjkuNWEuNzcuNzcgMCAwIDAgLjctLjkgMTYuNjQgMTYuNjQgMCAwIDAtMS4zNi00LjA4IiAvPgogIDxwYXRoIGQ9Ik0xNy45OSA1LjUyYTIwLjgyIDIwLjgyIDAgMCAxIDMuMTUgNC41LjguOCAwIDAgMS0uNjggMS4xM2MtMi4zMy4yLTUuMy0uMzItOC4yNy0xLjU3IiAvPgogIDxwYXRoIGQ9Ik00LjkzIDQuOTMgMyAzYS43LjcgMCAwIDEgMC0xIiAvPgogIDxwYXRoIGQ9Ik05LjU4IDEyLjE4YzEuMjQgMi45OCAxLjc3IDUuOTUgMS41NyA4LjI4YS44LjggMCAwIDEtMS4xMy42OCAyMC44MiAyMC44MiAwIDAgMS00LjUtMy4xNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hop: IconNode = [\n [\n 'path',\n { d: 'M10.82 16.12c1.69.6 3.91.79 5.18.85.55.03 1-.42.97-.97-.06-1.27-.26-3.5-.85-5.18' },\n ],\n [\n 'path',\n {\n d: 'M11.5 6.5c1.64 0 5-.38 6.71-1.07.52-.2.55-.82.12-1.17A10 10 0 0 0 4.26 18.33c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.88.88 0 0 0 .73-.74c.3-2.14-.15-3.5-.61-4.88',\n },\n ],\n [\n 'path',\n { d: 'M15.62 16.95c.2.85.62 2.76.5 4.28a.77.77 0 0 1-.9.7 16.64 16.64 0 0 1-4.08-1.36' },\n ],\n [\n 'path',\n { d: 'M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .96-.96 17.68 17.68 0 0 0-.9-4.87' },\n ],\n [\n 'path',\n { d: 'M16.94 15.62c.86.2 2.77.62 4.29.5a.77.77 0 0 0 .7-.9 16.64 16.64 0 0 0-1.36-4.08' },\n ],\n [\n 'path',\n { d: 'M17.99 5.52a20.82 20.82 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-2.33.2-5.3-.32-8.27-1.57' },\n ],\n ['path', { d: 'M4.93 4.93 3 3a.7.7 0 0 1 0-1' }],\n [\n 'path',\n {\n d: 'M9.58 12.18c1.24 2.98 1.77 5.95 1.57 8.28a.8.8 0 0 1-1.13.68 20.82 20.82 0 0 1-4.5-3.15',\n },\n ],\n];\n\nexport default Hop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hop-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuODIgMTYuMTJjMS42OS42IDMuOTEuNzkgNS4xOC44NS4yOC4wMS41My0uMDkuNy0uMjciIC8+CiAgPHBhdGggZD0iTTExLjE0IDIwLjU3Yy41Mi4yNCAyLjQ0IDEuMTIgNC4wOCAxLjM3LjQ2LjA2Ljg2LS4yNS45LS43MS4xMi0xLjUyLS4zLTMuNDMtLjUtNC4yOCIgLz4KICA8cGF0aCBkPSJNMTYuMTMgMjEuMDVjMS42NS42MyAzLjY4Ljg0IDQuODcuOTFhLjkuOSAwIDAgMCAuNy0uMjYiIC8+CiAgPHBhdGggZD0iTTE3Ljk5IDUuNTJhMjAuODMgMjAuODMgMCAwIDEgMy4xNSA0LjUuOC44IDAgMCAxLS42OCAxLjEzYy0xLjE3LjEtMi41LjAyLTMuOS0uMjUiIC8+CiAgPHBhdGggZD0iTTIwLjU3IDExLjE0Yy4yNC41MiAxLjEyIDIuNDQgMS4zNyA0LjA4LjA0LjMtLjA4LjU5LS4zMS43NSIgLz4KICA8cGF0aCBkPSJNNC45MyA0LjkzYTEwIDEwIDAgMCAwLS42NyAxMy40Yy4zNS40My45Ni40IDEuMTctLjEyLjY5LTEuNzEgMS4wNy01LjA3IDEuMDctNi43MSAxLjM0LjQ1IDMuMS45IDQuODguNjJhLjg1Ljg1IDAgMCAwIC40OC0uMjQiIC8+CiAgPHBhdGggZD0iTTUuNTIgMTcuOTljMS4wNS45NSAyLjkxIDIuNDIgNC41IDMuMTVhLjguOCAwIDAgMCAxLjEzLS42OGMuMi0yLjM0LS4zMy01LjMtMS41Ny04LjI4IiAvPgogIDxwYXRoIGQ9Ik04LjM1IDIuNjhhMTAgMTAgMCAwIDEgOS45OCAxLjU4Yy40My4zNS40Ljk2LS4xMiAxLjE3LTEuNS42LTQuMy45OC02LjA3IDEuMDUiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hop-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HopOff: IconNode = [\n ['path', { d: 'M10.82 16.12c1.69.6 3.91.79 5.18.85.28.01.53-.09.7-.27' }],\n [\n 'path',\n { d: 'M11.14 20.57c.52.24 2.44 1.12 4.08 1.37.46.06.86-.25.9-.71.12-1.52-.3-3.43-.5-4.28' },\n ],\n ['path', { d: 'M16.13 21.05c1.65.63 3.68.84 4.87.91a.9.9 0 0 0 .7-.26' }],\n [\n 'path',\n { d: 'M17.99 5.52a20.83 20.83 0 0 1 3.15 4.5.8.8 0 0 1-.68 1.13c-1.17.1-2.5.02-3.9-.25' },\n ],\n ['path', { d: 'M20.57 11.14c.24.52 1.12 2.44 1.37 4.08.04.3-.08.59-.31.75' }],\n [\n 'path',\n {\n d: 'M4.93 4.93a10 10 0 0 0-.67 13.4c.35.43.96.4 1.17-.12.69-1.71 1.07-5.07 1.07-6.71 1.34.45 3.1.9 4.88.62a.85.85 0 0 0 .48-.24',\n },\n ],\n [\n 'path',\n { d: 'M5.52 17.99c1.05.95 2.91 2.42 4.5 3.15a.8.8 0 0 0 1.13-.68c.2-2.34-.33-5.3-1.57-8.28' },\n ],\n ['path', { d: 'M8.35 2.68a10 10 0 0 1 9.98 1.58c.43.35.4.96-.12 1.17-1.5.6-4.3.98-6.07 1.05' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default HopOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hospital\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y0IiAvPgogIDxwYXRoIGQ9Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMiIC8+CiAgPHBhdGggZD0iTTE0IDloLTQiIC8+CiAgPHBhdGggZD0iTTE4IDExaDJhMiAyIDAgMCAxIDIgMnY2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAyLTJoMiIgLz4KICA8cGF0aCBkPSJNMTggMjFWNWEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/hospital\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hospital: IconNode = [\n ['path', { d: 'M12 7v4' }],\n ['path', { d: 'M14 21v-3a2 2 0 0 0-4 0v3' }],\n ['path', { d: 'M14 9h-4' }],\n ['path', { d: 'M18 11h2a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M18 21V5a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16' }],\n];\n\nexport default Hospital;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hotel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjJ2LTYuNTciIC8+CiAgPHBhdGggZD0iTTEyIDExaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgN2guMDEiIC8+CiAgPHBhdGggZD0iTTE0IDE1LjQzVjIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNmE1IDUgMCAwIDAtNiAwIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMWguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDdoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDExaC4wMSIgLz4KICA8cGF0aCBkPSJNOCA3aC4wMSIgLz4KICA8cmVjdCB4PSI0IiB5PSIyIiB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hotel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hotel: IconNode = [\n ['path', { d: 'M10 22v-6.57' }],\n ['path', { d: 'M12 11h.01' }],\n ['path', { d: 'M12 7h.01' }],\n ['path', { d: 'M14 15.43V22' }],\n ['path', { d: 'M15 16a5 5 0 0 0-6 0' }],\n ['path', { d: 'M16 11h.01' }],\n ['path', { d: 'M16 7h.01' }],\n ['path', { d: 'M8 11h.01' }],\n ['path', { d: 'M8 7h.01' }],\n ['rect', { x: '4', y: '2', width: '16', height: '20', rx: '2' }],\n];\n\nexport default Hotel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name hourglass\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMmgxNCIgLz4KICA8cGF0aCBkPSJNNSAyaDE0IiAvPgogIDxwYXRoIGQ9Ik0xNyAyMnYtNC4xNzJhMiAyIDAgMCAwLS41ODYtMS40MTRMMTIgMTJsLTQuNDE0IDQuNDE0QTIgMiAwIDAgMCA3IDE3LjgyOFYyMiIgLz4KICA8cGF0aCBkPSJNNyAydjQuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0TDEyIDEybDQuNDE0LTQuNDE0QTIgMiAwIDAgMCAxNyA2LjE3MlYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/hourglass\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Hourglass: IconNode = [\n ['path', { d: 'M5 22h14' }],\n ['path', { d: 'M5 2h14' }],\n ['path', { d: 'M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22' }],\n ['path', { d: 'M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2' }],\n];\n\nexport default Hourglass;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOC42MiAxMy44QTIuMjUgMi4yNSAwIDEgMSAxMiAxMC44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6IiAvPgogIDxwYXRoIGQ9Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/house-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HouseHeart: IconNode = [\n [\n 'path',\n {\n d: 'M8.62 13.8A2.25 2.25 0 1 1 12 10.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\n },\n ],\n];\n\nexport default HouseHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house-plug\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJWOC45NjQiIC8+CiAgPHBhdGggZD0iTTE0IDEyVjguOTY0IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMmExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMi0ydi0yYTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik04LjUgMjFINWEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMmgtNWEyIDIgMCAwIDEtMi0ydi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/house-plug\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HousePlug: IconNode = [\n ['path', { d: 'M10 12V8.964' }],\n ['path', { d: 'M14 12V8.964' }],\n ['path', { d: 'M15 12a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-2a1 1 0 0 1 1-1z' }],\n [\n 'path',\n {\n d: 'M8.5 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-2',\n },\n ],\n];\n\nexport default HousePlug;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMzUgMjFINWEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAuNzEtMS41M2w3LTZhMiAyIDAgMCAxIDIuNTggMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjIuMzUiIC8+CiAgPHBhdGggZD0iTTE0LjggMTIuNEExIDEgMCAwIDAgMTQgMTJoLTRhMSAxIDAgMCAwLTEgMXY4IiAvPgogIDxwYXRoIGQ9Ik0xNSAxOGg2IiAvPgogIDxwYXRoIGQ9Ik0xOCAxNXY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/house-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HousePlus: IconNode = [\n [\n 'path',\n {\n d: 'M12.35 21H5a2 2 0 0 1-2-2v-9a2 2 0 0 1 .71-1.53l7-6a2 2 0 0 1 2.58 0l7 6A2 2 0 0 1 21 10v2.35',\n },\n ],\n ['path', { d: 'M14.8 12.4A1 1 0 0 0 14 12h-4a1 1 0 0 0-1 1v8' }],\n ['path', { d: 'M15 18h6' }],\n ['path', { d: 'M18 15v6' }],\n];\n\nexport default HousePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house-wifi\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOS41IDEzLjg2NmE0IDQgMCAwIDEgNSAuMDEiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KICA8cGF0aCBkPSJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIgLz4KICA8cGF0aCBkPSJNNyAxMC43NTRhOCA4IDAgMCAxIDEwIDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/house-wifi\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst HouseWifi: IconNode = [\n ['path', { d: 'M9.5 13.866a4 4 0 0 1 5 .01' }],\n ['path', { d: 'M12 17h.01' }],\n [\n 'path',\n {\n d: 'M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\n },\n ],\n ['path', { d: 'M7 10.754a8 8 0 0 1 10 0' }],\n];\n\nexport default HouseWifi;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name house\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjF2LThhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjgiIC8+CiAgPHBhdGggZD0iTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/house\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst House: IconNode = [\n ['path', { d: 'M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8' }],\n [\n 'path',\n {\n d: 'M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\n },\n ],\n];\n\nexport default House;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ice-cream-bowl\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTdjNSAwIDgtMi42OSA4LTZINGMwIDMuMzEgMyA2IDggNm0tNCA0aDhtLTQtM3YzTTUuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAiIC8+CiAgPHBhdGggZD0iTTEyLjE0IDExYTMuNSAzLjUgMCAxIDEgNi43MSAwIiAvPgogIDxwYXRoIGQ9Ik0xNS41IDYuNWEzLjUgMy41IDAgMSAwLTcgMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ice-cream-bowl\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IceCreamBowl: IconNode = [\n [\n 'path',\n { d: 'M12 17c5 0 8-2.69 8-6H4c0 3.31 3 6 8 6m-4 4h8m-4-3v3M5.14 11a3.5 3.5 0 1 1 6.71 0' },\n ],\n ['path', { d: 'M12.14 11a3.5 3.5 0 1 1 6.71 0' }],\n ['path', { d: 'M15.5 6.5a3.5 3.5 0 1 0-7 0' }],\n];\n\nexport default IceCreamBowl;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ice-cream-cone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxMSA0LjA4IDEwLjM1YTEgMSAwIDAgMCAxLjg0IDBMMTcgMTEiIC8+CiAgPHBhdGggZD0iTTE3IDdBNSA1IDAgMCAwIDcgNyIgLz4KICA8cGF0aCBkPSJNMTcgN2EyIDIgMCAwIDEgMCA0SDdhMiAyIDAgMCAxIDAtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ice-cream-cone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IceCreamCone: IconNode = [\n ['path', { d: 'm7 11 4.08 10.35a1 1 0 0 0 1.84 0L17 11' }],\n ['path', { d: 'M17 7A5 5 0 0 0 7 7' }],\n ['path', { d: 'M17 7a2 2 0 0 1 0 4H7a2 2 0 0 1 0-4' }],\n];\n\nexport default IceCreamCone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name id-card-lanyard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNSA4aC0zIiAvPgogIDxwYXRoIGQ9Im0xNSAyLTEgMmgzYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDMiIC8+CiAgPHBhdGggZD0iTTE2Ljg5OSAyMkE1IDUgMCAwIDAgNy4xIDIyIiAvPgogIDxwYXRoIGQ9Im05IDIgMyA2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTUiIHI9IjMiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/id-card-lanyard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IdCardLanyard: IconNode = [\n ['path', { d: 'M13.5 8h-3' }],\n ['path', { d: 'm15 2-1 2h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h3' }],\n ['path', { d: 'M16.899 22A5 5 0 0 0 7.1 22' }],\n ['path', { d: 'm9 2 3 6' }],\n ['circle', { cx: '12', cy: '15', r: '3' }],\n];\n\nexport default IdCardLanyard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name id-card\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTBoMiIgLz4KICA8cGF0aCBkPSJNMTYgMTRoMiIgLz4KICA8cGF0aCBkPSJNNi4xNyAxNWEzIDMgMCAwIDEgNS42NiAwIiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSIxMSIgcj0iMiIgLz4KICA8cmVjdCB4PSIyIiB5PSI1IiB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/id-card\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IdCard: IconNode = [\n ['path', { d: 'M16 10h2' }],\n ['path', { d: 'M16 14h2' }],\n ['path', { d: 'M6.17 15a3 3 0 0 1 5.66 0' }],\n ['circle', { cx: '9', cy: '11', r: '2' }],\n ['rect', { x: '2', y: '5', width: '20', height: '14', rx: '2' }],\n];\n\nexport default IdCard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxIiAvPgogIDxwYXRoIGQ9Im0xNCAxOSAzIDN2LTUuNSIgLz4KICA8cGF0aCBkPSJtMTcgMjIgMy0zIiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSI5IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/image-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImageDown: IconNode = [\n [\n 'path',\n {\n d: 'M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21',\n },\n ],\n ['path', { d: 'm14 19 3 3v-5.5' }],\n ['path', { d: 'm17 22 3-3' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n];\n\nexport default ImageDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOXYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNyIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIyMiIgeTE9IjUiIHkyPSI1IiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSI5IiByPSIyIiAvPgogIDxwYXRoIGQ9Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/image-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImageMinus: IconNode = [\n ['path', { d: 'M21 9v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7' }],\n ['line', { x1: '16', x2: '22', y1: '5', y2: '5' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21' }],\n];\n\nexport default ImageMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgogIDxwYXRoIGQ9Ik0xMC40MSAxMC40MWEyIDIgMCAxIDEtMi44My0yLjgzIiAvPgogIDxsaW5lIHgxPSIxMy41IiB4Mj0iNiIgeTE9IjEzLjUiIHkyPSIyMSIgLz4KICA8bGluZSB4MT0iMTgiIHgyPSIyMSIgeTE9IjEyIiB5Mj0iMTUiIC8+CiAgPHBhdGggZD0iTTMuNTkgMy41OUExLjk5IDEuOTkgMCAwIDAgMyA1djE0YTIgMiAwIDAgMCAyIDJoMTRjLjU1IDAgMS4wNTItLjIyIDEuNDEtLjU5IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNVY1YTIgMiAwIDAgMC0yLTJIOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImageOff: IconNode = [\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n ['path', { d: 'M10.41 10.41a2 2 0 1 1-2.83-2.83' }],\n ['line', { x1: '13.5', x2: '6', y1: '13.5', y2: '21' }],\n ['line', { x1: '18', x2: '21', y1: '12', y2: '15' }],\n ['path', { d: 'M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59' }],\n ['path', { d: 'M21 15V5a2 2 0 0 0-2-2H9' }],\n];\n\nexport default ImageOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiIgLz4KICA8cGF0aCBkPSJNMjEgMTIuMTdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYiIC8+CiAgPHBhdGggZD0ibTYgMjEgNS01IiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSI5IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/image-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImagePlay: IconNode = [\n [\n 'path',\n {\n d: 'M15 15.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z',\n },\n ],\n ['path', { d: 'M21 12.17V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6' }],\n ['path', { d: 'm6 21 5-5' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n];\n\nexport default ImagePlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNWg2IiAvPgogIDxwYXRoIGQ9Ik0xOSAydjYiIC8+CiAgPHBhdGggZD0iTTIxIDExLjVWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcuNSIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImagePlus: IconNode = [\n ['path', { d: 'M16 5h6' }],\n ['path', { d: 'M19 2v6' }],\n ['path', { d: 'M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n];\n\nexport default ImagePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMyAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTBsLTMuMS0zLjFhMiAyIDAgMCAwLTIuODE0LjAxNEw2IDIxIiAvPgogIDxwYXRoIGQ9Im0xNCAxOS41IDMtMyAzIDMiIC8+CiAgPHBhdGggZD0iTTE3IDIydi01LjUiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/image-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImageUp: IconNode = [\n [\n 'path',\n {\n d: 'M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21',\n },\n ],\n ['path', { d: 'm14 19.5 3-3 3 3' }],\n ['path', { d: 'M17 22v-5.5' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n];\n\nexport default ImageUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Image: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['circle', { cx: '9', cy: '9', r: '2' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21' }],\n];\n\nexport default Image;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name image-upscale\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2g1djUiIC8+CiAgPHBhdGggZD0iTTE3IDIxaDJhMiAyIDAgMCAwIDItMiIgLz4KICA8cGF0aCBkPSJNMjEgMTJ2MyIgLz4KICA8cGF0aCBkPSJtMjEgMy01IDUiIC8+CiAgPHBhdGggZD0iTTMgN1Y1YTIgMiAwIDAgMSAyLTIiIC8+CiAgPHBhdGggZD0ibTUgMjEgNC4xNDQtNC4xNDRhMS4yMSAxLjIxIDAgMCAxIDEuNzEyIDBMMTMgMTkiIC8+CiAgPHBhdGggZD0iTTkgM2gzIiAvPgogIDxyZWN0IHg9IjMiIHk9IjExIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/image-upscale\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ImageUpscale: IconNode = [\n ['path', { d: 'M16 3h5v5' }],\n ['path', { d: 'M17 21h2a2 2 0 0 0 2-2' }],\n ['path', { d: 'M21 12v3' }],\n ['path', { d: 'm21 3-5 5' }],\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2' }],\n ['path', { d: 'm5 21 4.144-4.144a1.21 1.21 0 0 1 1.712 0L13 19' }],\n ['path', { d: 'M9 3h3' }],\n ['rect', { x: '3', y: '11', width: '10', height: '10', rx: '1' }],\n];\n\nexport default ImageUpscale;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name images\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgMTEtMS4yOTYtMS4yOTZhMi40IDIuNCAwIDAgMC0zLjQwOCAwTDExIDE2IiAvPgogIDxwYXRoIGQ9Ik00IDhhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDEwYTIgMiAwIDAgMCAyLTIiIC8+CiAgPGNpcmNsZSBjeD0iMTMiIGN5PSI3IiByPSIxIiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPHJlY3QgeD0iOCIgeT0iMiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/images\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Images: IconNode = [\n ['path', { d: 'm22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16' }],\n ['path', { d: 'M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2' }],\n ['circle', { cx: '13', cy: '7', r: '1', fill: 'currentColor' }],\n ['rect', { x: '8', y: '2', width: '14', height: '14', rx: '2' }],\n];\n\nexport default Images;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name import\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxMiIgLz4KICA8cGF0aCBkPSJtOCAxMSA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik04IDVINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/import\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Import: IconNode = [\n ['path', { d: 'M12 3v12' }],\n ['path', { d: 'm8 11 4 4 4-4' }],\n ['path', { d: 'M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4' }],\n];\n\nexport default Import;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name inbox\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWxpbmUgcG9pbnRzPSIyMiAxMiAxNiAxMiAxNCAxNSAxMCAxNSA4IDEyIDIgMTIiIC8+CiAgPHBhdGggZD0iTTUuNDUgNS4xMSAyIDEydjZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi02bC0zLjQ1LTYuODlBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/inbox\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Inbox: IconNode = [\n ['polyline', { points: '22 12 16 12 14 15 10 15 8 12 2 12' }],\n [\n 'path',\n {\n d: 'M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z',\n },\n ],\n];\n\nexport default Inbox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name indian-rupee\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAzaDEyIiAvPgogIDxwYXRoIGQ9Ik02IDhoMTIiIC8+CiAgPHBhdGggZD0ibTYgMTMgOC41IDgiIC8+CiAgPHBhdGggZD0iTTYgMTNoMyIgLz4KICA8cGF0aCBkPSJNOSAxM2M2LjY2NyAwIDYuNjY3LTEwIDAtMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/indian-rupee\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IndianRupee: IconNode = [\n ['path', { d: 'M6 3h12' }],\n ['path', { d: 'M6 8h12' }],\n ['path', { d: 'm6 13 8.5 8' }],\n ['path', { d: 'M6 13h3' }],\n ['path', { d: 'M9 13c6.667 0 6.667-10 0-10' }],\n];\n\nexport default IndianRupee;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name infinity\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxNmM1IDAgNy04IDEyLThhNCA0IDAgMCAxIDAgOGMtNSAwLTctOC0xMi04YTQgNCAwIDEgMCAwIDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/infinity\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Infinity: IconNode = [\n ['path', { d: 'M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8' }],\n];\n\nexport default Infinity;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name info\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMTZ2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDhoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/info\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Info: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M12 16v-4' }],\n ['path', { d: 'M12 8h.01' }],\n];\n\nexport default Info;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name inspection-panel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDdoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNyA3aC4wMSIgLz4KICA8cGF0aCBkPSJNNyAxN2guMDEiIC8+CiAgPHBhdGggZD0iTTE3IDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/inspection-panel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst InspectionPanel: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 7h.01' }],\n ['path', { d: 'M17 7h.01' }],\n ['path', { d: 'M7 17h.01' }],\n ['path', { d: 'M17 17h.01' }],\n];\n\nexport default InspectionPanel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name instagram\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHg9IjIiIHk9IjIiIHJ4PSI1IiByeT0iNSIgLz4KICA8cGF0aCBkPSJNMTYgMTEuMzdBNCA0IDAgMSAxIDEyLjYzIDggNCA0IDAgMCAxIDE2IDExLjM3eiIgLz4KICA8bGluZSB4MT0iMTcuNSIgeDI9IjE3LjUxIiB5MT0iNi41IiB5Mj0iNi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/instagram\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=instagram instead. This icon will be removed in v1.0\n */\nconst Instagram: IconNode = [\n ['rect', { width: '20', height: '20', x: '2', y: '2', rx: '5', ry: '5' }],\n ['path', { d: 'M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z' }],\n ['line', { x1: '17.5', x2: '17.51', y1: '6.5', y2: '6.5' }],\n];\n\nexport default Instagram;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name iteration-ccw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTQgNCA0LTQgNCIgLz4KICA8cGF0aCBkPSJNMjAgMTBhOCA4IDAgMSAwLTggOGg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/iteration-ccw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IterationCcw: IconNode = [\n ['path', { d: 'm16 14 4 4-4 4' }],\n ['path', { d: 'M20 10a8 8 0 1 0-8 8h8' }],\n];\n\nexport default IterationCcw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name italic\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTkiIHgyPSIxMCIgeTE9IjQiIHkyPSI0IiAvPgogIDxsaW5lIHgxPSIxNCIgeDI9IjUiIHkxPSIyMCIgeTI9IjIwIiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjkiIHkxPSI0IiB5Mj0iMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/italic\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Italic: IconNode = [\n ['line', { x1: '19', x2: '10', y1: '4', y2: '4' }],\n ['line', { x1: '14', x2: '5', y1: '20', y2: '20' }],\n ['line', { x1: '15', x2: '9', y1: '4', y2: '20' }],\n];\n\nexport default Italic;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name iteration-cw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGE4IDggMCAxIDEgOCA4SDQiIC8+CiAgPHBhdGggZD0ibTggMjItNC00IDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/iteration-cw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst IterationCw: IconNode = [\n ['path', { d: 'M4 10a8 8 0 1 1 8 8H4' }],\n ['path', { d: 'm8 22-4-4 4-4' }],\n];\n\nexport default IterationCw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name japanese-yen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOS41VjIxbTAtMTEuNUw2IDNtNiA2LjVMMTggMyIgLz4KICA8cGF0aCBkPSJNNiAxNWgxMiIgLz4KICA8cGF0aCBkPSJNNiAxMWgxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/japanese-yen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst JapaneseYen: IconNode = [\n ['path', { d: 'M12 9.5V21m0-11.5L6 3m6 6.5L18 3' }],\n ['path', { d: 'M6 15h12' }],\n ['path', { d: 'M6 11h12' }],\n];\n\nexport default JapaneseYen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name joystick\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTJaIiAvPgogIDxwYXRoIGQ9Ik02IDE1di0yIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNVY5IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iNiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/joystick\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Joystick: IconNode = [\n ['path', { d: 'M21 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2Z' }],\n ['path', { d: 'M6 15v-2' }],\n ['path', { d: 'M12 15V9' }],\n ['circle', { cx: '12', cy: '6', r: '3' }],\n];\n\nexport default Joystick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name kanban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAzdjE0IiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjgiIC8+CiAgPHBhdGggZD0iTTE5IDN2MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/kanban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Kanban: IconNode = [\n ['path', { d: 'M5 3v14' }],\n ['path', { d: 'M12 3v8' }],\n ['path', { d: 'M19 3v18' }],\n];\n\nexport default Kanban;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name kayak\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTdhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMCAyLTJ6IiAvPgogIDxwYXRoIGQ9Ik0yMC45NyAzLjYxYS40NS40NSAwIDAgMC0uNTgtLjU4QzEwLjIgNi42IDYuNiAxMC4yIDMuMDMgMjAuMzlhLjQ1LjQ1IDAgMCAwIC41OC41OEMxMy44IDE3LjQgMTcuNCAxMy44IDIwLjk3IDMuNjEiIC8+CiAgPHBhdGggZD0ibTYuNzA3IDYuNzA3IDEwLjU4NiAxMC41ODYiIC8+CiAgPHBhdGggZD0iTTcgNWEyIDIgMCAxIDAtMiAyaDFhMSAxIDAgMCAwIDEtMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/kayak\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Kayak: IconNode = [\n ['path', { d: 'M18 17a1 1 0 0 0-1 1v1a2 2 0 1 0 2-2z' }],\n [\n 'path',\n {\n d: 'M20.97 3.61a.45.45 0 0 0-.58-.58C10.2 6.6 6.6 10.2 3.03 20.39a.45.45 0 0 0 .58.58C13.8 17.4 17.4 13.8 20.97 3.61',\n },\n ],\n ['path', { d: 'm6.707 6.707 10.586 10.586' }],\n ['path', { d: 'M7 5a2 2 0 1 0-2 2h1a1 1 0 0 0 1-1z' }],\n];\n\nexport default Kayak;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name key-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41ODYgMTcuNDE0QTIgMiAwIDAgMCAyIDE4LjgyOFYyMWExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaC4xNzJhMiAyIDAgMCAwIDEuNDE0LS41ODZsLjgxNC0uODE0YTYuNSA2LjUgMCAxIDAtNC00eiIgLz4KICA8Y2lyY2xlIGN4PSIxNi41IiBjeT0iNy41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/key-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst KeyRound: IconNode = [\n [\n 'path',\n {\n d: 'M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z',\n },\n ],\n ['circle', { cx: '16.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n];\n\nexport default KeyRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name key-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNCAyLjdhMi41IDIuNSAwIDAgMSAzLjQgMGw1LjUgNS41YTIuNSAyLjUgMCAwIDEgMCAzLjRsLTMuNyAzLjdhMi41IDIuNSAwIDAgMS0zLjQgMEw4LjcgOS44YTIuNSAyLjUgMCAwIDEgMC0zLjR6IiAvPgogIDxwYXRoIGQ9Im0xNCA3IDMgMyIgLz4KICA8cGF0aCBkPSJtOS40IDEwLjYtNi44MTQgNi44MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/key-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst KeySquare: IconNode = [\n [\n 'path',\n {\n d: 'M12.4 2.7a2.5 2.5 0 0 1 3.4 0l5.5 5.5a2.5 2.5 0 0 1 0 3.4l-3.7 3.7a2.5 2.5 0 0 1-3.4 0L8.7 9.8a2.5 2.5 0 0 1 0-3.4z',\n },\n ],\n ['path', { d: 'm14 7 3 3' }],\n [\n 'path',\n {\n d: 'm9.4 10.6-6.814 6.814A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814',\n },\n ],\n];\n\nexport default KeySquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuNSA3LjUgMi4zIDIuM2ExIDEgMCAwIDAgMS40IDBsMi4xLTIuMWExIDEgMCAwIDAgMC0xLjRMMTkgNCIgLz4KICA8cGF0aCBkPSJtMjEgMi05LjYgOS42IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjE1LjUiIHI9IjUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Key: IconNode = [\n ['path', { d: 'm15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4' }],\n ['path', { d: 'm21 2-9.6 9.6' }],\n ['circle', { cx: '7.5', cy: '15.5', r: '5.5' }],\n];\n\nexport default Key;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name keyboard-music\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik02IDhoNCIgLz4KICA8cGF0aCBkPSJNMTQgOGguMDEiIC8+CiAgPHBhdGggZD0iTTE4IDhoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDIwIiAvPgogIDxwYXRoIGQ9Ik02IDEydjQiIC8+CiAgPHBhdGggZD0iTTEwIDEydjQiIC8+CiAgPHBhdGggZD0iTTE0IDEydjQiIC8+CiAgPHBhdGggZD0iTTE4IDEydjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/keyboard-music\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst KeyboardMusic: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M6 8h4' }],\n ['path', { d: 'M14 8h.01' }],\n ['path', { d: 'M18 8h.01' }],\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'M6 12v4' }],\n ['path', { d: 'M10 12v4' }],\n ['path', { d: 'M14 12v4' }],\n ['path', { d: 'M18 12v4' }],\n];\n\nexport default KeyboardMusic;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name keyboard-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNIDIwIDQgQTIgMiAwIDAgMSAyMiA2IiAvPgogIDxwYXRoIGQ9Ik0gMjIgNiBMIDIyIDE2LjQxIiAvPgogIDxwYXRoIGQ9Ik0gNyAxNiBMIDE2IDE2IiAvPgogIDxwYXRoIGQ9Ik0gOS42OSA0IEwgMjAgNCIgLz4KICA8cGF0aCBkPSJNMTQgOGguMDEiIC8+CiAgPHBhdGggZD0iTTE4IDhoLjAxIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTIiIC8+CiAgPHBhdGggZD0iTTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/keyboard-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst KeyboardOff: IconNode = [\n ['path', { d: 'M 20 4 A2 2 0 0 1 22 6' }],\n ['path', { d: 'M 22 6 L 22 16.41' }],\n ['path', { d: 'M 7 16 L 16 16' }],\n ['path', { d: 'M 9.69 4 L 20 4' }],\n ['path', { d: 'M14 8h.01' }],\n ['path', { d: 'M18 8h.01' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2' }],\n ['path', { d: 'M6 8h.01' }],\n ['path', { d: 'M8 12h.01' }],\n];\n\nexport default KeyboardOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name keyboard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTQgOGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTggOGguMDEiIC8+CiAgPHBhdGggZD0iTTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMTZoMTAiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNiIgeD0iMiIgeT0iNCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/keyboard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Keyboard: IconNode = [\n ['path', { d: 'M10 8h.01' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M14 8h.01' }],\n ['path', { d: 'M16 12h.01' }],\n ['path', { d: 'M18 8h.01' }],\n ['path', { d: 'M6 8h.01' }],\n ['path', { d: 'M7 16h10' }],\n ['path', { d: 'M8 12h.01' }],\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n];\n\nexport default Keyboard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp-ceiling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY1IiAvPgogIDxwYXRoIGQ9Ik0xNC44MjkgMTUuOTk4YTMgMyAwIDEgMS01LjY1OCAwIiAvPgogIDxwYXRoIGQ9Ik0yMC45MiAxNC42MDZBMSAxIDAgMCAxIDIwIDE2SDRhMSAxIDAgMCAxLS45Mi0xLjM5NGwzLTdBMSAxIDAgMCAxIDcgN2gxMGExIDEgMCAwIDEgLjkyLjYwNnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lamp-ceiling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LampCeiling: IconNode = [\n ['path', { d: 'M12 2v5' }],\n ['path', { d: 'M14.829 15.998a3 3 0 1 1-5.658 0' }],\n [\n 'path',\n {\n d: 'M20.92 14.606A1 1 0 0 1 20 16H4a1 1 0 0 1-.92-1.394l3-7A1 1 0 0 1 7 7h10a1 1 0 0 1 .92.606z',\n },\n ],\n];\n\nexport default LampCeiling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp-desk\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjkzIDIuMjkzYTEgMSAwIDAgMSAxLjQxNCAwbDIuNSAyLjUgNS45OTQgMS4yMjdhMSAxIDAgMCAxIC41MDYgMS42ODdsLTcgN2ExIDEgMCAwIDEtMS42ODctLjUwNmwtMS4yMjctNS45OTQtMi41LTIuNWExIDEgMCAwIDEgMC0xLjQxNHoiIC8+CiAgPHBhdGggZD0ibTE0LjIwNyA0Ljc5My0zLjQxNCAzLjQxNCIgLz4KICA8cGF0aCBkPSJNMyAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xeiIgLz4KICA8cGF0aCBkPSJtOS4wODYgNi41LTQuNzkzIDQuNzkzYTEgMSAwIDAgMC0uMTggMS4xN0w3IDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lamp-desk\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LampDesk: IconNode = [\n [\n 'path',\n {\n d: 'M10.293 2.293a1 1 0 0 1 1.414 0l2.5 2.5 5.994 1.227a1 1 0 0 1 .506 1.687l-7 7a1 1 0 0 1-1.687-.506l-1.227-5.994-2.5-2.5a1 1 0 0 1 0-1.414z',\n },\n ],\n ['path', { d: 'm14.207 4.793-3.414 3.414' }],\n ['path', { d: 'M3 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z' }],\n ['path', { d: 'm9.086 6.5-4.793 4.793a1 1 0 0 0-.18 1.17L7 18' }],\n];\n\nexport default LampDesk;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp-floor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTB2MTIiIC8+CiAgPHBhdGggZD0iTTE3LjkyOSA3LjYyOUExIDEgMCAwIDEgMTcgOUg3YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgOSAyaDZhMSAxIDAgMCAxIC45MjguNjI5eiIgLz4KICA8cGF0aCBkPSJNOSAyMmg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lamp-floor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LampFloor: IconNode = [\n ['path', { d: 'M12 10v12' }],\n [\n 'path',\n {\n d: 'M17.929 7.629A1 1 0 0 1 17 9H7a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 9 2h6a1 1 0 0 1 .928.629z',\n },\n ],\n ['path', { d: 'M9 22h6' }],\n];\n\nexport default LampFloor;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp-wall-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuOTI5IDE4LjYyOUExIDEgMCAwIDEgMTkgMjBIOWExIDEgMCAwIDEtLjkyOC0xLjM3MWwyLTVBMSAxIDAgMCAxIDExIDEzaDZhMSAxIDAgMCAxIC45MjguNjI5eiIgLz4KICA8cGF0aCBkPSJNNiAzYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAySDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik04IDZoNGEyIDIgMCAwIDEgMiAydjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lamp-wall-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LampWallDown: IconNode = [\n [\n 'path',\n {\n d: 'M19.929 18.629A1 1 0 0 1 19 20H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 13h6a1 1 0 0 1 .928.629z',\n },\n ],\n ['path', { d: 'M6 3a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z' }],\n ['path', { d: 'M8 6h4a2 2 0 0 1 2 2v5' }],\n];\n\nexport default LampWallDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp-wall-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuOTI5IDkuNjI5QTEgMSAwIDAgMSAxOSAxMUg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgNGg2YTEgMSAwIDAgMSAuOTI4LjYyOXoiIC8+CiAgPHBhdGggZD0iTTYgMTVhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik04IDE4aDRhMiAyIDAgMCAwIDItMnYtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/lamp-wall-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LampWallUp: IconNode = [\n [\n 'path',\n {\n d: 'M19.929 9.629A1 1 0 0 1 19 11H9a1 1 0 0 1-.928-1.371l2-5A1 1 0 0 1 11 4h6a1 1 0 0 1 .928.629z',\n },\n ],\n ['path', { d: 'M6 15a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z' }],\n ['path', { d: 'M8 18h4a2 2 0 0 0 2-2v-5' }],\n];\n\nexport default LampWallUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lamp\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJ2NiIgLz4KICA8cGF0aCBkPSJNNC4wNzcgMTAuNjE1QTEgMSAwIDAgMCA1IDEyaDE0YTEgMSAwIDAgMCAuOTIzLTEuMzg1bC0zLjA3Ny03LjM4NEEyIDIgMCAwIDAgMTUgMkg5YTIgMiAwIDAgMC0xLjg0NiAxLjIzWiIgLz4KICA8cGF0aCBkPSJNOCAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/lamp\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lamp: IconNode = [\n ['path', { d: 'M12 12v6' }],\n [\n 'path',\n {\n d: 'M4.077 10.615A1 1 0 0 0 5 12h14a1 1 0 0 0 .923-1.385l-3.077-7.384A2 2 0 0 0 15 2H9a2 2 0 0 0-1.846 1.23Z',\n },\n ],\n ['path', { d: 'M8 20a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1z' }],\n];\n\nexport default Lamp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name landmark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTh2LTciIC8+CiAgPHBhdGggZD0iTTExLjEyIDIuMTk4YTIgMiAwIDAgMSAxLjc2LjAwNmw3Ljg2NiAzLjg0N2MuNDc2LjIzMy4zMS45NDktLjIyLjk0OUgzLjQ3NGMtLjUzIDAtLjY5NS0uNzE2LS4yMi0uOTQ5eiIgLz4KICA8cGF0aCBkPSJNMTQgMTh2LTciIC8+CiAgPHBhdGggZD0iTTE4IDE4di03IiAvPgogIDxwYXRoIGQ9Ik0zIDIyaDE4IiAvPgogIDxwYXRoIGQ9Ik02IDE4di03IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/landmark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Landmark: IconNode = [\n ['path', { d: 'M10 18v-7' }],\n [\n 'path',\n {\n d: 'M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z',\n },\n ],\n ['path', { d: 'M14 18v-7' }],\n ['path', { d: 'M18 18v-7' }],\n ['path', { d: 'M3 22h18' }],\n ['path', { d: 'M6 18v-7' }],\n];\n\nexport default Landmark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name land-plot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgOCA2LTMtNi0zdjEwIiAvPgogIDxwYXRoIGQ9Im04IDExLjk5LTUuNSAzLjE0YTEgMSAwIDAgMCAwIDEuNzRsOC41IDQuODZhMiAyIDAgMCAwIDIgMGw4LjUtNC44NmExIDEgMCAwIDAgMC0xLjc0TDE2IDEyIiAvPgogIDxwYXRoIGQ9Im02LjQ5IDEyLjg1IDExLjAyIDYuMyIgLz4KICA8cGF0aCBkPSJNMTcuNTEgMTIuODUgNi41IDE5LjE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/land-plot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LandPlot: IconNode = [\n ['path', { d: 'm12 8 6-3-6-3v10' }],\n [\n 'path',\n {\n d: 'm8 11.99-5.5 3.14a1 1 0 0 0 0 1.74l8.5 4.86a2 2 0 0 0 2 0l8.5-4.86a1 1 0 0 0 0-1.74L16 12',\n },\n ],\n ['path', { d: 'm6.49 12.85 11.02 6.3' }],\n ['path', { d: 'M17.51 12.85 6.5 19.15' }],\n];\n\nexport default LandPlot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name languages\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNSA4IDYgNiIgLz4KICA8cGF0aCBkPSJtNCAxNCA2LTYgMi0zIiAvPgogIDxwYXRoIGQ9Ik0yIDVoMTIiIC8+CiAgPHBhdGggZD0iTTcgMmgxIiAvPgogIDxwYXRoIGQ9Im0yMiAyMi01LTEwLTUgMTAiIC8+CiAgPHBhdGggZD0iTTE0IDE4aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/languages\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Languages: IconNode = [\n ['path', { d: 'm5 8 6 6' }],\n ['path', { d: 'm4 14 6-6 2-3' }],\n ['path', { d: 'M2 5h12' }],\n ['path', { d: 'M7 2h1' }],\n ['path', { d: 'm22 22-5-10-5 10' }],\n ['path', { d: 'M14 18h6' }],\n];\n\nexport default Languages;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name laptop-minimal-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGgyMCIgLz4KICA8cGF0aCBkPSJtOSAxMCAyIDIgNC00IiAvPgogIDxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/laptop-minimal-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LaptopMinimalCheck: IconNode = [\n ['path', { d: 'M2 20h20' }],\n ['path', { d: 'm9 10 2 2 4-4' }],\n ['rect', { x: '3', y: '4', width: '18', height: '12', rx: '2' }],\n];\n\nexport default LaptopMinimalCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name laptop-minimal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIHg9IjMiIHk9IjQiIHJ4PSIyIiByeT0iMiIgLz4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMjAiIHkyPSIyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/laptop-minimal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LaptopMinimal: IconNode = [\n ['rect', { width: '18', height: '12', x: '3', y: '4', rx: '2', ry: '2' }],\n ['line', { x1: '2', x2: '22', y1: '20', y2: '20' }],\n];\n\nexport default LaptopMinimal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name laptop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNWEyIDIgMCAwIDEgMiAydjguNTI2YTIgMiAwIDAgMCAuMjEyLjg5N2wxLjA2OCAyLjEyN2ExIDEgMCAwIDEtLjkgMS40NUgzLjYyYTEgMSAwIDAgMS0uOS0xLjQ1bDEuMDY4LTIuMTI3QTIgMiAwIDAgMCA0IDE1LjUyNlY3YTIgMiAwIDAgMSAyLTJ6IiAvPgogIDxwYXRoIGQ9Ik0yMC4wNTQgMTUuOTg3SDMuOTQ2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/laptop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Laptop: IconNode = [\n [\n 'path',\n {\n d: 'M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'M20.054 15.987H3.946' }],\n];\n\nexport default Laptop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lasso-select\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAyMmE1IDUgMCAwIDEtMi00IiAvPgogIDxwYXRoIGQ9Ik03IDE2LjkzYy45Ni40MyAxLjk2Ljc0IDIuOTkuOTEiIC8+CiAgPHBhdGggZD0iTTMuMzQgMTRBNi44IDYuOCAwIDAgMSAyIDEwYzAtNC40MiA0LjQ4LTggMTAtOHMxMCAzLjU4IDEwIDhhNy4xOSA3LjE5IDAgMCAxLS4zMyAyIiAvPgogIDxwYXRoIGQ9Ik01IDE4YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHoiIC8+CiAgPHBhdGggZD0iTTE0LjMzIDIyaC0uMDlhLjM1LjM1IDAgMCAxLS4yNC0uMzJ2LTEwYS4zNC4zNCAwIDAgMSAuMzMtLjM0Yy4wOCAwIC4xNS4wMy4yMS4wOGw3LjM0IDZhLjMzLjMzIDAgMCAxLS4yMS41OWgtNC40OWwtMi41NyAzLjg1YS4zNS4zNSAwIDAgMS0uMjguMTR6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lasso-select\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LassoSelect: IconNode = [\n ['path', { d: 'M7 22a5 5 0 0 1-2-4' }],\n ['path', { d: 'M7 16.93c.96.43 1.96.74 2.99.91' }],\n [\n 'path',\n { d: 'M3.34 14A6.8 6.8 0 0 1 2 10c0-4.42 4.48-8 10-8s10 3.58 10 8a7.19 7.19 0 0 1-.33 2' },\n ],\n ['path', { d: 'M5 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z' }],\n [\n 'path',\n {\n d: 'M14.33 22h-.09a.35.35 0 0 1-.24-.32v-10a.34.34 0 0 1 .33-.34c.08 0 .15.03.21.08l7.34 6a.33.33 0 0 1-.21.59h-4.49l-2.57 3.85a.35.35 0 0 1-.28.14z',\n },\n ],\n];\n\nexport default LassoSelect;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lasso\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy43MDQgMTQuNDY3YTEwIDggMCAxIDEgMy4xMTUgMi4zNzUiIC8+CiAgPHBhdGggZD0iTTcgMjJhNSA1IDAgMCAxLTItMy45OTQiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE2IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lasso\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lasso: IconNode = [\n ['path', { d: 'M3.704 14.467a10 8 0 1 1 3.115 2.375' }],\n ['path', { d: 'M7 22a5 5 0 0 1-2-3.994' }],\n ['circle', { cx: '5', cy: '16', r: '2' }],\n];\n\nexport default Lasso;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name laugh\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTggMTNhNiA2IDAgMCAxLTYgNSA2IDYgMCAwIDEtNi01aDEyWiIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjkuMDEiIHkxPSI5IiB5Mj0iOSIgLz4KICA8bGluZSB4MT0iMTUiIHgyPSIxNS4wMSIgeTE9IjkiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/laugh\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Laugh: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z' }],\n ['line', { x1: '9', x2: '9.01', y1: '9', y2: '9' }],\n ['line', { x1: '15', x2: '15.01', y1: '9', y2: '9' }],\n];\n\nexport default Laugh;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layers-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTMuNzRhMiAyIDAgMCAxLTIgMEwyLjUgOC44N2ExIDEgMCAwIDEgMC0xLjc0TDExIDIuMjZhMiAyIDAgMCAxIDIgMGw4LjUgNC44N2ExIDEgMCAwIDEgMCAxLjc0eiIgLz4KICA8cGF0aCBkPSJtMjAgMTQuMjg1IDEuNS44NDVhMSAxIDAgMCAxIDAgMS43NEwxMyAyMS43NGEyIDIgMCAwIDEtMiAwbC04LjUtNC44N2ExIDEgMCAwIDEgMC0xLjc0bDEuNS0uODQ1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/layers-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Layers2: IconNode = [\n [\n 'path',\n {\n d: 'M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z',\n },\n ],\n [\n 'path',\n {\n d: 'm20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845',\n },\n ],\n];\n\nexport default Layers2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layers-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44MzF6IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN2g2IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNHY2IiAvPgogIDxwYXRoIGQ9Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4IiAvPgogIDxwYXRoIGQ9Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGwyLjExNi0uOTYyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/layers-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayersPlus: IconNode = [\n [\n 'path',\n {\n d: 'M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 .83.18 2 2 0 0 0 .83-.18l8.58-3.9a1 1 0 0 0 0-1.831z',\n },\n ],\n ['path', { d: 'M16 17h6' }],\n ['path', { d: 'M19 14v6' }],\n ['path', { d: 'M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 .825.178' }],\n ['path', { d: 'M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l2.116-.962' }],\n];\n\nexport default LayersPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layers\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAxLjY2IDBsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44M3oiIC8+CiAgPHBhdGggZD0iTTIgMTJhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxMiIgLz4KICA8cGF0aCBkPSJNMiAxN2ExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDE3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/layers\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Layers: IconNode = [\n [\n 'path',\n {\n d: 'M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z',\n },\n ],\n ['path', { d: 'M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12' }],\n ['path', { d: 'M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17' }],\n];\n\nexport default Layers;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-dashboard\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI5IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI1IiB4PSIxNCIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iOSIgeD0iMTQiIHk9IjEyIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI1IiB4PSIzIiB5PSIxNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-dashboard\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutDashboard: IconNode = [\n ['rect', { width: '7', height: '9', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '5', x: '14', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '9', x: '14', y: '12', rx: '1' }],\n ['rect', { width: '7', height: '5', x: '3', y: '16', rx: '1' }],\n];\n\nexport default LayoutDashboard;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-grid\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIxNCIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iNyIgeD0iMTQiIHk9IjE0IiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-grid\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutGrid: IconNode = [\n ['rect', { width: '7', height: '7', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '14', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '14', y: '14', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '3', y: '14', rx: '1' }],\n];\n\nexport default LayoutGrid;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-list\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIxNCIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTE0IDRoNyIgLz4KICA8cGF0aCBkPSJNMTQgOWg3IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNWg3IiAvPgogIDxwYXRoIGQ9Ik0xNCAyMGg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/layout-list\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutList: IconNode = [\n ['rect', { width: '7', height: '7', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '3', y: '14', rx: '1' }],\n ['path', { d: 'M14 4h7' }],\n ['path', { d: 'M14 9h7' }],\n ['path', { d: 'M14 15h7' }],\n ['path', { d: 'M14 20h7' }],\n];\n\nexport default LayoutList;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-panel-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxOCIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iNyIgeD0iMTQiIHk9IjMiIHJ4PSIxIiAvPgogIDxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjciIHg9IjE0IiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-panel-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutPanelLeft: IconNode = [\n ['rect', { width: '7', height: '18', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '14', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '14', y: '14', rx: '1' }],\n];\n\nexport default LayoutPanelLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-panel-top\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iNyIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iNyIgeD0iMyIgeT0iMTQiIHJ4PSIxIiAvPgogIDxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjciIHg9IjE0IiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-panel-top\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutPanelTop: IconNode = [\n ['rect', { width: '18', height: '7', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '3', y: '14', rx: '1' }],\n ['rect', { width: '7', height: '7', x: '14', y: '14', rx: '1' }],\n];\n\nexport default LayoutPanelTop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name layout-template\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iNyIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjkiIGhlaWdodD0iNyIgeD0iMyIgeT0iMTQiIHJ4PSIxIiAvPgogIDxyZWN0IHdpZHRoPSI1IiBoZWlnaHQ9IjciIHg9IjE2IiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-template\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LayoutTemplate: IconNode = [\n ['rect', { width: '18', height: '7', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '9', height: '7', x: '3', y: '14', rx: '1' }],\n ['rect', { width: '5', height: '7', x: '16', y: '14', rx: '1' }],\n];\n\nexport default LayoutTemplate;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name leaf\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjBBNyA3IDAgMCAxIDkuOCA2LjFDMTUuNSA1IDE3IDQuNDggMTkgMmMxIDIgMiA0LjE4IDIgOCAwIDUuNS00Ljc4IDEwLTEwIDEwWiIgLz4KICA8cGF0aCBkPSJNMiAyMWMwLTMgMS44NS01LjM2IDUuMDgtNkM5LjUgMTQuNTIgMTIgMTMgMTMgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/leaf\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Leaf: IconNode = [\n [\n 'path',\n { d: 'M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z' },\n ],\n ['path', { d: 'M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12' }],\n];\n\nexport default Leaf;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name leafy-green\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMmMxLjI1LS45ODcgMi4yNy0xLjk3NSAzLjktMi4yYTUuNTYgNS41NiAwIDAgMSAzLjggMS41IDQgNCAwIDAgMCA2LjE4Ny0yLjM1MyAzLjUgMy41IDAgMCAwIDMuNjktNS4xMTZBMy41IDMuNSAwIDAgMCAyMC45NSA4IDMuNSAzLjUgMCAxIDAgMTYgMy4wNWEzLjUgMy41IDAgMCAwLTUuODMxIDEuMzczIDMuNSAzLjUgMCAwIDAtNS4xMTYgMy42OSA0IDQgMCAwIDAtMi4zNDggNi4xNTVDMy40OTkgMTUuNDIgNC40MDkgMTYuNzEyIDQuMiAxOC4xIDMuOTI2IDE5Ljc0MyAzLjAxNCAyMC43MzIgMiAyMiIgLz4KICA8cGF0aCBkPSJNMiAyMiAxNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/leafy-green\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LeafyGreen: IconNode = [\n [\n 'path',\n {\n d: 'M2 22c1.25-.987 2.27-1.975 3.9-2.2a5.56 5.56 0 0 1 3.8 1.5 4 4 0 0 0 6.187-2.353 3.5 3.5 0 0 0 3.69-5.116A3.5 3.5 0 0 0 20.95 8 3.5 3.5 0 1 0 16 3.05a3.5 3.5 0 0 0-5.831 1.373 3.5 3.5 0 0 0-5.116 3.69 4 4 0 0 0-2.348 6.155C3.499 15.42 4.409 16.712 4.2 18.1 3.926 19.743 3.014 20.732 2 22',\n },\n ],\n ['path', { d: 'M2 22 17 7' }],\n];\n\nexport default LeafyGreen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lectern\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMiIC8+CiAgPHBhdGggZD0iTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zIiAvPgogIDxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjEyIiB4PSI4IiB5PSIxMCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lectern\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lectern: IconNode = [\n [\n 'path',\n {\n d: 'M16 12h3a2 2 0 0 0 1.902-1.38l1.056-3.333A1 1 0 0 0 21 6H3a1 1 0 0 0-.958 1.287l1.056 3.334A2 2 0 0 0 5 12h3',\n },\n ],\n ['path', { d: 'M18 6V3a1 1 0 0 0-1-1h-3' }],\n ['rect', { width: '8', height: '12', x: '8', y: '10', rx: '1' }],\n];\n\nexport default Lectern;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name library-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSIxOCIgeD0iMyIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTcgM3YxOCIgLz4KICA8cGF0aCBkPSJNMjAuNCAxOC45Yy4yLjUtLjEgMS4xLS42IDEuM2wtMS45LjdjLS41LjItMS4xLS4xLTEuMy0uNkwxMS4xIDUuMWMtLjItLjUuMS0xLjEuNi0xLjNsMS45LS43Yy41LS4yIDEuMS4xIDEuMy42WiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/library-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LibraryBig: IconNode = [\n ['rect', { width: '8', height: '18', x: '3', y: '3', rx: '1' }],\n ['path', { d: 'M7 3v18' }],\n [\n 'path',\n {\n d: 'M20.4 18.9c.2.5-.1 1.1-.6 1.3l-1.9.7c-.5.2-1.1-.1-1.3-.6L11.1 5.1c-.2-.5.1-1.1.6-1.3l1.9-.7c.5-.2 1.1.1 1.3.6Z',\n },\n ],\n];\n\nexport default LibraryBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name library\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgNiA0IDE0IiAvPgogIDxwYXRoIGQ9Ik0xMiA2djE0IiAvPgogIDxwYXRoIGQ9Ik04IDh2MTIiIC8+CiAgPHBhdGggZD0iTTQgNHYxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/library\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Library: IconNode = [\n ['path', { d: 'm16 6 4 14' }],\n ['path', { d: 'M12 6v14' }],\n ['path', { d: 'M8 8v12' }],\n ['path', { d: 'M4 4v16' }],\n];\n\nexport default Library;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name life-buoy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtNC45MyA0LjkzIDQuMjQgNC4yNCIgLz4KICA8cGF0aCBkPSJtMTQuODMgOS4xNyA0LjI0LTQuMjQiIC8+CiAgPHBhdGggZD0ibTE0LjgzIDE0LjgzIDQuMjQgNC4yNCIgLz4KICA8cGF0aCBkPSJtOS4xNyAxNC44My00LjI0IDQuMjQiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/life-buoy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LifeBuoy: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'm4.93 4.93 4.24 4.24' }],\n ['path', { d: 'm14.83 9.17 4.24-4.24' }],\n ['path', { d: 'm14.83 14.83 4.24 4.24' }],\n ['path', { d: 'm9.17 14.83-4.24 4.24' }],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n];\n\nexport default LifeBuoy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ligature\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTJoMnY4IiAvPgogIDxwYXRoIGQ9Ik0xNCAyMGg0IiAvPgogIDxwYXRoIGQ9Ik02IDEyaDQiIC8+CiAgPHBhdGggZD0iTTYgMjBoNCIgLz4KICA8cGF0aCBkPSJNOCAyMFY4YTQgNCAwIDAgMSA3LjQ2NC0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ligature\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ligature: IconNode = [\n ['path', { d: 'M14 12h2v8' }],\n ['path', { d: 'M14 20h4' }],\n ['path', { d: 'M6 12h4' }],\n ['path', { d: 'M6 20h4' }],\n ['path', { d: 'M8 20V8a4 4 0 0 1 7.464-2' }],\n];\n\nexport default Ligature;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lightbulb-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuOCAxMS4yYy44LS45IDEuMi0yIDEuMi0zLjJhNiA2IDAgMCAwLTkuMy01IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTYuMyA2LjNhNC42NyA0LjY3IDAgMCAwIDEuMiA1LjJjLjcuNyAxLjMgMS41IDEuNSAyLjUiIC8+CiAgPHBhdGggZD0iTTkgMThoNiIgLz4KICA8cGF0aCBkPSJNMTAgMjJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/lightbulb-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LightbulbOff: IconNode = [\n ['path', { d: 'M16.8 11.2c.8-.9 1.2-2 1.2-3.2a6 6 0 0 0-9.3-5' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M6.3 6.3a4.67 4.67 0 0 0 1.2 5.2c.7.7 1.3 1.5 1.5 2.5' }],\n ['path', { d: 'M9 18h6' }],\n ['path', { d: 'M10 22h4' }],\n];\n\nexport default LightbulbOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lightbulb\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTRjLjItMSAuNy0xLjcgMS41LTIuNSAxLS45IDEuNS0yLjIgMS41LTMuNUE2IDYgMCAwIDAgNiA4YzAgMSAuMiAyLjIgMS41IDMuNS43LjcgMS4zIDEuNSAxLjUgMi41IiAvPgogIDxwYXRoIGQ9Ik05IDE4aDYiIC8+CiAgPHBhdGggZD0iTTEwIDIyaDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lightbulb\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lightbulb: IconNode = [\n [\n 'path',\n {\n d: 'M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5',\n },\n ],\n ['path', { d: 'M9 18h6' }],\n ['path', { d: 'M10 22h4' }],\n];\n\nexport default Lightbulb;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name line-squiggle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAzLjVjNS0yIDcgMi41IDMgNEMxLjUgMTAgMiAxNSA1IDE2YzUgMiA5LTEwIDE0LTdzLjUgMTMuNS00IDEyYy01LTIuNS41LTExIDYtMiIgLz4KPC9zdmc+) - https://lucide.dev/icons/line-squiggle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LineSquiggle: IconNode = [\n [\n 'path',\n { d: 'M7 3.5c5-2 7 2.5 3 4C1.5 10 2 15 5 16c5 2 9-10 14-7s.5 13.5-4 12c-5-2.5.5-11 6-2' },\n ],\n];\n\nexport default LineSquiggle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name link-2-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxN0g3QTUgNSAwIDAgMSA3IDciIC8+CiAgPHBhdGggZD0iTTE1IDdoMmE1IDUgMCAwIDEgNCA4IiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTIiIHkxPSIxMiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIyIiB5Mj0iMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/link-2-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Link2Off: IconNode = [\n ['path', { d: 'M9 17H7A5 5 0 0 1 7 7' }],\n ['path', { d: 'M15 7h2a5 5 0 0 1 4 8' }],\n ['line', { x1: '8', x2: '12', y1: '12', y2: '12' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default Link2Off;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name link-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxN0g3QTUgNSAwIDAgMSA3IDdoMiIgLz4KICA8cGF0aCBkPSJNMTUgN2gyYTUgNSAwIDEgMSAwIDEwaC0yIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSIxMiIgeTI9IjEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/link-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Link2: IconNode = [\n ['path', { d: 'M9 17H7A5 5 0 0 1 7 7h2' }],\n ['path', { d: 'M15 7h2a5 5 0 1 1 0 10h-2' }],\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12' }],\n];\n\nexport default Link2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name link\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNhNSA1IDAgMCAwIDcuNTQuNTRsMy0zYTUgNSAwIDAgMC03LjA3LTcuMDdsLTEuNzIgMS43MSIgLz4KICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/link\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Link: IconNode = [\n ['path', { d: 'M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71' }],\n ['path', { d: 'M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71' }],\n];\n\nexport default Link;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name linkedin\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgOGE2IDYgMCAwIDEgNiA2djdoLTR2LTdhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAydjdoLTR2LTdhNiA2IDAgMCAxIDYtNnoiIC8+CiAgPHJlY3Qgd2lkdGg9IjQiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjkiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjQiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/linkedin\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=linkedin instead. This icon will be removed in v1.0\n */\nconst Linkedin: IconNode = [\n ['path', { d: 'M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z' }],\n ['rect', { width: '4', height: '12', x: '2', y: '9' }],\n ['circle', { cx: '4', cy: '4', r: '2' }],\n];\n\nexport default Linkedin;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxOUgzIiAvPgogIDxwYXRoIGQ9Im0xNSAxOCAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListCheck: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M16 12H3' }],\n ['path', { d: 'M11 19H3' }],\n ['path', { d: 'm15 18 2 2 4-4' }],\n];\n\nexport default ListCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-checks\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNWg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxOWg4IiAvPgogIDxwYXRoIGQ9Im0zIDE3IDIgMiA0LTQiIC8+CiAgPHBhdGggZD0ibTMgNyAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-checks\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListChecks: IconNode = [\n ['path', { d: 'M13 5h8' }],\n ['path', { d: 'M13 12h8' }],\n ['path', { d: 'M13 19h8' }],\n ['path', { d: 'm3 17 2 2 4-4' }],\n ['path', { d: 'm3 7 2 2 4-4' }],\n];\n\nexport default ListChecks;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-chevrons-down-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDgiIC8+CiAgPHBhdGggZD0iTTMgMTJoOCIgLz4KICA8cGF0aCBkPSJNMyAxOWg4IiAvPgogIDxwYXRoIGQ9Im0xNSA1IDMgMyAzLTMiIC8+CiAgPHBhdGggZD0ibTE1IDE5IDMtMyAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list-chevrons-down-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListChevronsDownUp: IconNode = [\n ['path', { d: 'M3 5h8' }],\n ['path', { d: 'M3 12h8' }],\n ['path', { d: 'M3 19h8' }],\n ['path', { d: 'm15 5 3 3 3-3' }],\n ['path', { d: 'm15 19 3-3 3 3' }],\n];\n\nexport default ListChevronsDownUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-chevrons-up-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDgiIC8+CiAgPHBhdGggZD0iTTMgMTJoOCIgLz4KICA8cGF0aCBkPSJNMyAxOWg4IiAvPgogIDxwYXRoIGQ9Im0xNSA4IDMtMyAzIDMiIC8+CiAgPHBhdGggZD0ibTE1IDE2IDMgMyAzLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list-chevrons-up-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListChevronsUpDown: IconNode = [\n ['path', { d: 'M3 5h8' }],\n ['path', { d: 'M3 12h8' }],\n ['path', { d: 'M3 19h8' }],\n ['path', { d: 'm15 8 3-3 3 3' }],\n ['path', { d: 'm15 16 3 3 3-3' }],\n];\n\nexport default ListChevronsUpDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-collapse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNWgxMSIgLz4KICA8cGF0aCBkPSJNMTAgMTJoMTEiIC8+CiAgPHBhdGggZD0iTTEwIDE5aDExIiAvPgogIDxwYXRoIGQ9Im0zIDEwIDMtMy0zLTMiIC8+CiAgPHBhdGggZD0ibTMgMjAgMy0zLTMtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-collapse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListCollapse: IconNode = [\n ['path', { d: 'M10 5h11' }],\n ['path', { d: 'M10 12h11' }],\n ['path', { d: 'M10 19h11' }],\n ['path', { d: 'm3 10 3-3-3-3' }],\n ['path', { d: 'm3 20 3-3-3-3' }],\n];\n\nexport default ListCollapse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMkgzIiAvPgogIDxwYXRoIGQ9Ik05IDE5SDMiIC8+CiAgPHBhdGggZD0ibTE2IDE2LTMgMyAzIDMiIC8+CiAgPHBhdGggZD0iTTIxIDV2MTJhMiAyIDAgMCAxLTIgMmgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListEnd: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M16 12H3' }],\n ['path', { d: 'M9 19H3' }],\n ['path', { d: 'm16 16-3 3 3 3' }],\n ['path', { d: 'M21 5v12a2 2 0 0 1-2 2h-6' }],\n];\n\nexport default ListEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-filter-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNUgyIiAvPgogIDxwYXRoIGQ9Ik02IDEyaDEyIiAvPgogIDxwYXRoIGQ9Ik05IDE5aDYiIC8+CiAgPHBhdGggZD0iTTE2IDVoNiIgLz4KICA8cGF0aCBkPSJNMTkgOFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-filter-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListFilterPlus: IconNode = [\n ['path', { d: 'M12 5H2' }],\n ['path', { d: 'M6 12h12' }],\n ['path', { d: 'M9 19h6' }],\n ['path', { d: 'M16 5h6' }],\n ['path', { d: 'M19 8V2' }],\n];\n\nexport default ListFilterPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-filter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA1aDIwIiAvPgogIDxwYXRoIGQ9Ik02IDEyaDEyIiAvPgogIDxwYXRoIGQ9Ik05IDE5aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list-filter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListFilter: IconNode = [\n ['path', { d: 'M2 5h20' }],\n ['path', { d: 'M6 12h12' }],\n ['path', { d: 'M9 19h6' }],\n];\n\nexport default ListFilter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-indent-decrease\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgxMSIgLz4KICA8cGF0aCBkPSJNMjEgMTJIMTEiIC8+CiAgPHBhdGggZD0iTTIxIDE5SDExIiAvPgogIDxwYXRoIGQ9Im03IDgtNCA0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-indent-decrease\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListIndentDecrease: IconNode = [\n ['path', { d: 'M21 5H11' }],\n ['path', { d: 'M21 12H11' }],\n ['path', { d: 'M21 19H11' }],\n ['path', { d: 'm7 8-4 4 4 4' }],\n];\n\nexport default ListIndentDecrease;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-indent-increase\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgxMSIgLz4KICA8cGF0aCBkPSJNMjEgMTJIMTEiIC8+CiAgPHBhdGggZD0iTTIxIDE5SDExIiAvPgogIDxwYXRoIGQ9Im0zIDggNCA0LTQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-indent-increase\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListIndentIncrease: IconNode = [\n ['path', { d: 'M21 5H11' }],\n ['path', { d: 'M21 12H11' }],\n ['path', { d: 'M21 19H11' }],\n ['path', { d: 'm3 8 4 4-4 4' }],\n];\n\nexport default ListIndentIncrease;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListMinus: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M11 12H3' }],\n ['path', { d: 'M16 19H3' }],\n ['path', { d: 'M21 12h-6' }],\n];\n\nexport default ListMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-music\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNlY1IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTYiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list-music\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListMusic: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M11 12H3' }],\n ['path', { d: 'M11 19H3' }],\n ['path', { d: 'M21 16V5' }],\n ['circle', { cx: '18', cy: '16', r: '3' }],\n];\n\nexport default ListMusic;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-ordered\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNWgxMCIgLz4KICA8cGF0aCBkPSJNMTEgMTJoMTAiIC8+CiAgPHBhdGggZD0iTTExIDE5aDEwIiAvPgogIDxwYXRoIGQ9Ik00IDRoMXY1IiAvPgogIDxwYXRoIGQ9Ik00IDloMiIgLz4KICA8cGF0aCBkPSJNNi41IDIwSDMuNGMwLTEgMi42LTEuOTI1IDIuNi0zLjVhMS41IDEuNSAwIDAgMC0yLjYtMS4wMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-ordered\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListOrdered: IconNode = [\n ['path', { d: 'M11 5h10' }],\n ['path', { d: 'M11 12h10' }],\n ['path', { d: 'M11 19h10' }],\n ['path', { d: 'M4 4h1v5' }],\n ['path', { d: 'M4 9h2' }],\n ['path', { d: 'M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02' }],\n];\n\nexport default ListOrdered;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0xOCA5djYiIC8+CiAgPHBhdGggZD0iTTIxIDEyaC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListPlus: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M11 12H3' }],\n ['path', { d: 'M16 19H3' }],\n ['path', { d: 'M18 9v6' }],\n ['path', { d: 'M21 12h-6' }],\n];\n\nexport default ListPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-restart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik03IDEySDMiIC8+CiAgPHBhdGggZD0iTTcgMTlIMyIgLz4KICA8cGF0aCBkPSJNMTIgMThhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjVjLTEuMzMgMC0yLjU0LjU0LTMuNDEgMS40MUwxMSAxNCIgLz4KICA8cGF0aCBkPSJNMTEgMTB2NGg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-restart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListRestart: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M7 12H3' }],\n ['path', { d: 'M7 19H3' }],\n ['path', { d: 'M12 18a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14' }],\n ['path', { d: 'M11 10v4h4' }],\n];\n\nexport default ListRestart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDYiIC8+CiAgPHBhdGggZD0iTTMgMTJoMTMiIC8+CiAgPHBhdGggZD0iTTMgMTloMTMiIC8+CiAgPHBhdGggZD0ibTE2IDgtMy0zIDMtMyIgLz4KICA8cGF0aCBkPSJNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListStart: IconNode = [\n ['path', { d: 'M3 5h6' }],\n ['path', { d: 'M3 12h13' }],\n ['path', { d: 'M3 19h13' }],\n ['path', { d: 'm16 8-3-3 3-3' }],\n ['path', { d: 'M21 19V7a2 2 0 0 0-2-2h-6' }],\n];\n\nexport default ListStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-todo\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNWg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxOWg4IiAvPgogIDxwYXRoIGQ9Im0zIDE3IDIgMiA0LTQiIC8+CiAgPHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list-todo\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListTodo: IconNode = [\n ['path', { d: 'M13 5h8' }],\n ['path', { d: 'M13 12h8' }],\n ['path', { d: 'M13 19h8' }],\n ['path', { d: 'm3 17 2 2 4-4' }],\n ['rect', { x: '3', y: '4', width: '6', height: '6', rx: '1' }],\n];\n\nexport default ListTodo;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-tree\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCA1aDEzIiAvPgogIDxwYXRoIGQ9Ik0xMyAxMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMyAxOWg4IiAvPgogIDxwYXRoIGQ9Ik0zIDEwYTIgMiAwIDAgMCAyIDJoMyIgLz4KICA8cGF0aCBkPSJNMyA1djEyYTIgMiAwIDAgMCAyIDJoMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-tree\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListTree: IconNode = [\n ['path', { d: 'M8 5h13' }],\n ['path', { d: 'M13 12h8' }],\n ['path', { d: 'M13 19h8' }],\n ['path', { d: 'M3 10a2 2 0 0 0 2 2h3' }],\n ['path', { d: 'M3 5v12a2 2 0 0 0 2 2h3' }],\n];\n\nexport default ListTree;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-video\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMCAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xMCAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMi4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-video\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListVideo: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M10 12H3' }],\n ['path', { d: 'M10 19H3' }],\n [\n 'path',\n {\n d: 'M15 12.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z',\n },\n ],\n];\n\nexport default ListVideo;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOUgzIiAvPgogIDxwYXRoIGQ9Im0xNS41IDkuNSA1IDUiIC8+CiAgPHBhdGggZD0ibTIwLjUgOS41LTUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/list-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ListX: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M11 12H3' }],\n ['path', { d: 'M16 19H3' }],\n ['path', { d: 'm15.5 9.5 5 5' }],\n ['path', { d: 'm20.5 9.5-5 5' }],\n];\n\nexport default ListX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name list\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aC4wMSIgLz4KICA8cGF0aCBkPSJNMyAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTMgMTloLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDVoMTMiIC8+CiAgPHBhdGggZD0iTTggMTJoMTMiIC8+CiAgPHBhdGggZD0iTTggMTloMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst List: IconNode = [\n ['path', { d: 'M3 5h.01' }],\n ['path', { d: 'M3 12h.01' }],\n ['path', { d: 'M3 19h.01' }],\n ['path', { d: 'M8 5h13' }],\n ['path', { d: 'M8 12h13' }],\n ['path', { d: 'M8 19h13' }],\n];\n\nexport default List;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name loader-circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LoaderCircle: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56' }]];\n\nexport default LoaderCircle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name loader\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY0IiAvPgogIDxwYXRoIGQ9Im0xNi4yIDcuOCAyLjktMi45IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmg0IiAvPgogIDxwYXRoIGQ9Im0xNi4yIDE2LjIgMi45IDIuOSIgLz4KICA8cGF0aCBkPSJNMTIgMTh2NCIgLz4KICA8cGF0aCBkPSJtNC45IDE5LjEgMi45LTIuOSIgLz4KICA8cGF0aCBkPSJNMiAxMmg0IiAvPgogIDxwYXRoIGQ9Im00LjkgNC45IDIuOSAyLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/loader\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Loader: IconNode = [\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'm16.2 7.8 2.9-2.9' }],\n ['path', { d: 'M18 12h4' }],\n ['path', { d: 'm16.2 16.2 2.9 2.9' }],\n ['path', { d: 'M12 18v4' }],\n ['path', { d: 'm4.9 19.1 2.9-2.9' }],\n ['path', { d: 'M2 12h4' }],\n ['path', { d: 'm4.9 4.9 2.9 2.9' }],\n];\n\nexport default Loader;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name loader-pinwheel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTJhMSAxIDAgMCAxLTEwIDAgMSAxIDAgMCAwLTEwIDAiIC8+CiAgPHBhdGggZD0iTTcgMjAuN2ExIDEgMCAxIDEgNS04LjcgMSAxIDAgMSAwIDUtOC42IiAvPgogIDxwYXRoIGQ9Ik03IDMuM2ExIDEgMCAxIDEgNSA4LjYgMSAxIDAgMSAwIDUgOC42IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/loader-pinwheel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LoaderPinwheel: IconNode = [\n ['path', { d: 'M22 12a1 1 0 0 1-10 0 1 1 0 0 0-10 0' }],\n ['path', { d: 'M7 20.7a1 1 0 1 1 5-8.7 1 1 0 1 0 5-8.6' }],\n ['path', { d: 'M7 3.3a1 1 0 1 1 5 8.6 1 1 0 1 0 5 8.6' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default LoaderPinwheel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name locate-fixed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMiIgeDI9IjUiIHkxPSIxMiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIxOSIgeDI9IjIyIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSI1IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTkiIHkyPSIyMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI3IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/locate-fixed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LocateFixed: IconNode = [\n ['line', { x1: '2', x2: '5', y1: '12', y2: '12' }],\n ['line', { x1: '19', x2: '22', y1: '12', y2: '12' }],\n ['line', { x1: '12', x2: '12', y1: '2', y2: '5' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22' }],\n ['circle', { cx: '12', cy: '12', r: '7' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default LocateFixed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name locate-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTIgMnYzIiAvPgogIDxwYXRoIGQ9Ik0xOC44OSAxMy4yNGE3IDcgMCAwIDAtOC4xMy04LjEzIiAvPgogIDxwYXRoIGQ9Ik0xOSAxMmgzIiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDMiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNNy4wNSA3LjA1YTcgNyAwIDAgMCA5LjkgOS45IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/locate-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LocateOff: IconNode = [\n ['path', { d: 'M12 19v3' }],\n ['path', { d: 'M12 2v3' }],\n ['path', { d: 'M18.89 13.24a7 7 0 0 0-8.13-8.13' }],\n ['path', { d: 'M19 12h3' }],\n ['path', { d: 'M2 12h3' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M7.05 7.05a7 7 0 0 0 9.9 9.9' }],\n];\n\nexport default LocateOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name locate\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMiIgeDI9IjUiIHkxPSIxMiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIxOSIgeDI9IjIyIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSI1IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTkiIHkyPSIyMiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/locate\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Locate: IconNode = [\n ['line', { x1: '2', x2: '5', y1: '12', y2: '12' }],\n ['line', { x1: '19', x2: '22', y1: '12', y2: '12' }],\n ['line', { x1: '12', x2: '12', y1: '2', y2: '5' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22' }],\n ['circle', { cx: '12', cy: '12', r: '7' }],\n];\n\nexport default Locate;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lock-keyhole\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE2IiByPSIxIiAvPgogIDxyZWN0IHg9IjMiIHk9IjEwIiB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDEwVjdhNSA1IDAgMCAxIDEwIDB2MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/lock-keyhole\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LockKeyhole: IconNode = [\n ['circle', { cx: '12', cy: '16', r: '1' }],\n ['rect', { x: '3', y: '10', width: '18', height: '12', rx: '2' }],\n ['path', { d: 'M7 10V7a5 5 0 0 1 10 0v3' }],\n];\n\nexport default LockKeyhole;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lock-keyhole-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE2IiByPSIxIiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgeD0iMyIgeT0iMTAiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDEwVjdhNSA1IDAgMCAxIDkuMzMtMi41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lock-keyhole-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LockKeyholeOpen: IconNode = [\n ['circle', { cx: '12', cy: '16', r: '1' }],\n ['rect', { width: '18', height: '12', x: '3', y: '10', rx: '2' }],\n ['path', { d: 'M7 10V7a5 5 0 0 1 9.33-2.5' }],\n];\n\nexport default LockKeyholeOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHg9IjMiIHk9IjExIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lock: IconNode = [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4' }],\n];\n\nexport default Lock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lock-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHg9IjMiIHk9IjExIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgOS45LTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lock-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LockOpen: IconNode = [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 9.9-1' }],\n];\n\nexport default LockOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name log-in\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTcgNS01LTUtNSIgLz4KICA8cGF0aCBkPSJNMTUgMTJIMyIgLz4KICA8cGF0aCBkPSJNMTUgM2g0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/log-in\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LogIn: IconNode = [\n ['path', { d: 'm10 17 5-5-5-5' }],\n ['path', { d: 'M15 12H3' }],\n ['path', { d: 'M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4' }],\n];\n\nexport default LogIn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name logs\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDEiIC8+CiAgPHBhdGggZD0iTTMgMTJoMSIgLz4KICA8cGF0aCBkPSJNMyAxOWgxIiAvPgogIDxwYXRoIGQ9Ik04IDVoMSIgLz4KICA8cGF0aCBkPSJNOCAxMmgxIiAvPgogIDxwYXRoIGQ9Ik04IDE5aDEiIC8+CiAgPHBhdGggZD0iTTEzIDVoOCIgLz4KICA8cGF0aCBkPSJNMTMgMTJoOCIgLz4KICA8cGF0aCBkPSJNMTMgMTloOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/logs\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Logs: IconNode = [\n ['path', { d: 'M3 5h1' }],\n ['path', { d: 'M3 12h1' }],\n ['path', { d: 'M3 19h1' }],\n ['path', { d: 'M8 5h1' }],\n ['path', { d: 'M8 12h1' }],\n ['path', { d: 'M8 19h1' }],\n ['path', { d: 'M13 5h8' }],\n ['path', { d: 'M13 12h8' }],\n ['path', { d: 'M13 19h8' }],\n];\n\nexport default Logs;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name log-out\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTcgNS01LTUtNSIgLz4KICA8cGF0aCBkPSJNMjEgMTJIOSIgLz4KICA8cGF0aCBkPSJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/log-out\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst LogOut: IconNode = [\n ['path', { d: 'm16 17 5-5-5-5' }],\n ['path', { d: 'M21 12H9' }],\n ['path', { d: 'M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4' }],\n];\n\nexport default LogOut;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name lollipop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxwYXRoIGQ9Im0yMSAyMS00LjMtNC4zIiAvPgogIDxwYXRoIGQ9Ik0xMSAxMWEyIDIgMCAwIDAgNCAwIDQgNCAwIDAgMC04IDAgNiA2IDAgMCAwIDEyIDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/lollipop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Lollipop: IconNode = [\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n ['path', { d: 'M11 11a2 2 0 0 0 4 0 4 4 0 0 0-8 0 6 6 0 0 0 12 0' }],\n];\n\nexport default Lollipop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name luggage\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTggMThWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxNCIgLz4KICA8cGF0aCBkPSJNMTAgMjBoNCIgLz4KICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjIwIiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjgiIGN5PSIyMCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/luggage\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Luggage: IconNode = [\n ['path', { d: 'M6 20a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2' }],\n ['path', { d: 'M8 18V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v14' }],\n ['path', { d: 'M10 20h4' }],\n ['circle', { cx: '16', cy: '20', r: '2' }],\n ['circle', { cx: '8', cy: '20', r: '2' }],\n];\n\nexport default Luggage;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name magnet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTUgNCA0IiAvPgogIDxwYXRoIGQ9Ik0yLjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMDI5LTYuMDI5YTEgMSAwIDEgMSAzIDNsLTYuMDI5IDYuMDI5YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjM2NS02LjM2N0ExIDEgMCAwIDAgOC43MTYgNC4yODJ6IiAvPgogIDxwYXRoIGQ9Im01IDggNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/magnet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Magnet: IconNode = [\n ['path', { d: 'm12 15 4 4' }],\n [\n 'path',\n {\n d: 'M2.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.029-6.029a1 1 0 1 1 3 3l-6.029 6.029a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.365-6.367A1 1 0 0 0 8.716 4.282z',\n },\n ],\n ['path', { d: 'm5 8 4 4' }],\n];\n\nexport default Magnet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgiIC8+CiAgPHBhdGggZD0ibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIC8+CiAgPHBhdGggZD0ibTE2IDE5IDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mail-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailCheck: IconNode = [\n ['path', { d: 'M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'm16 19 2 2 4-4' }],\n];\n\nexport default MailCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgiIC8+CiAgPHBhdGggZD0ibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIC8+CiAgPHBhdGggZD0iTTE2IDE5aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mail-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailMinus: IconNode = [\n ['path', { d: 'M22 15V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'M16 19h6' }],\n];\n\nexport default MailMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMiA4LjRjLjUuMzguOC45Ny44IDEuNnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgLjgtMS42bDgtNmEyIDIgMCAwIDEgMi40IDBsOCA2WiIgLz4KICA8cGF0aCBkPSJtMjIgMTAtOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mail-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailOpen: IconNode = [\n [\n 'path',\n {\n d: 'M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z',\n },\n ],\n ['path', { d: 'm22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10' }],\n];\n\nexport default MailOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgiIC8+CiAgPHBhdGggZD0ibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIC8+CiAgPHBhdGggZD0iTTE5IDE2djYiIC8+CiAgPHBhdGggZD0iTTE2IDE5aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mail-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailPlus: IconNode = [\n ['path', { d: 'M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'M19 16v6' }],\n ['path', { d: 'M16 19h6' }],\n];\n\nexport default MailPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTAuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMTIuNSIgLz4KICA8cGF0aCBkPSJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyIgLz4KICA8cGF0aCBkPSJNMTggMTUuMjhjLjItLjQuNS0uOC45LTFhMi4xIDIuMSAwIDAgMSAyLjYuNGMuMy40LjUuOC41IDEuMyAwIDEuMy0yIDItMiAyIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMnYuMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mail-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailQuestionMark: IconNode = [\n ['path', { d: 'M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'M18 15.28c.2-.4.5-.8.9-1a2.1 2.1 0 0 1 2.6.4c.3.4.5.8.5 1.3 0 1.3-2 2-2 2' }],\n ['path', { d: 'M20 22v.01' }],\n];\n\nexport default MailQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTIuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNy41IiAvPgogIDxwYXRoIGQ9Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3IiAvPgogIDxwYXRoIGQ9Ik0xOCAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTIyIDIyLTEuNS0xLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mail-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailSearch: IconNode = [\n ['path', { d: 'M22 12.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h7.5' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'M18 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['path', { d: 'm22 22-1.5-1.5' }],\n];\n\nexport default MailSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-warning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTAuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMTIuNSIgLz4KICA8cGF0aCBkPSJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyIgLz4KICA8cGF0aCBkPSJNMjAgMTR2NCIgLz4KICA8cGF0aCBkPSJNMjAgMjJ2LjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mail-warning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailWarning: IconNode = [\n ['path', { d: 'M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'M20 14v4' }],\n ['path', { d: 'M20 22v.01' }],\n];\n\nexport default MailWarning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDciIC8+CiAgPHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mail\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mail: IconNode = [\n ['path', { d: 'm22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7' }],\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2' }],\n];\n\nexport default Mail;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mail-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDkiIC8+CiAgPHBhdGggZD0ibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDciIC8+CiAgPHBhdGggZD0ibTE3IDE3IDQgNCIgLz4KICA8cGF0aCBkPSJtMjEgMTctNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mail-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MailX: IconNode = [\n ['path', { d: 'M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9' }],\n ['path', { d: 'm22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' }],\n ['path', { d: 'm17 17 4 4' }],\n ['path', { d: 'm21 17-4 4' }],\n];\n\nexport default MailX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mailbox\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOS41QzIgNyA0IDUgNi41IDVIMThjMi4yIDAgNCAxLjggNCA0djhaIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjE1LDkgMTgsOSAxOCwxMSIgLz4KICA8cGF0aCBkPSJNNi41IDVDOSA1IDExIDcgMTEgOS41VjE3YTIgMiAwIDAgMS0yIDIiIC8+CiAgPGxpbmUgeDE9IjYiIHgyPSI3IiB5MT0iMTAiIHkyPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mailbox\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mailbox: IconNode = [\n ['path', { d: 'M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z' }],\n ['polyline', { points: '15,9 18,9 18,11' }],\n ['path', { d: 'M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2' }],\n ['line', { x1: '6', x2: '7', y1: '10', y2: '10' }],\n];\n\nexport default Mailbox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mails\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDEtMS43MzIiIC8+CiAgPHBhdGggZD0ibTIyIDUuNS02LjQxOSA0LjE3OWEyIDIgMCAwIDEtMi4xNjIgMEw3IDUuNSIgLz4KICA8cmVjdCB4PSI3IiB5PSIzIiB3aWR0aD0iMTUiIGhlaWdodD0iMTIiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mails\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mails: IconNode = [\n ['path', { d: 'M17 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 1-1.732' }],\n ['path', { d: 'm22 5.5-6.419 4.179a2 2 0 0 1-2.162 0L7 5.5' }],\n ['rect', { x: '7', y: '3', width: '15', height: '12', rx: '2' }],\n];\n\nexport default Mails;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxNCIgLz4KICA8cGF0aCBkPSJNMTUgNS43NjRWMTQiIC8+CiAgPHBhdGggZD0iTTIxIDE4aC02IiAvPgogIDxwYXRoIGQ9Ik05IDMuMjM2djE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/map-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapMinus: IconNode = [\n [\n 'path',\n {\n d: 'm11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V14',\n },\n ],\n ['path', { d: 'M15 5.764V14' }],\n ['path', { d: 'M21 18h-6' }],\n ['path', { d: 'M9 3.236v15' }],\n];\n\nexport default MapMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-check-inside\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxwYXRoIGQ9Im05IDEwIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-check-inside\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinCheckInside: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n },\n ],\n ['path', { d: 'm9 10 2 2 4-4' }],\n];\n\nexport default MapPinCheckInside;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMCIgcj0iMyIgLz4KICA8cGF0aCBkPSJtMTYgMTggMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/map-pin-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinCheck: IconNode = [\n [\n 'path',\n {\n d: 'M19.43 12.935c.357-.967.57-1.955.57-2.935a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32.197 32.197 0 0 0 .813-.728',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'm16 18 2 2 4-4' }],\n];\n\nexport default MapPinCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-house\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjJhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgLjQ0NS0uODMybDMtMmExIDEgMCAwIDEgMS4xMSAwbDMgMkExIDEgMCAwIDEgMjIgMTd2NGExIDEgMCAwIDEtMSAxeiIgLz4KICA8cGF0aCBkPSJNMTggMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAuNjAxLjIiIC8+CiAgPHBhdGggZD0iTTE4IDIydi0zIiAvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iMTAiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-house\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinHouse: IconNode = [\n [\n 'path',\n {\n d: 'M15 22a1 1 0 0 1-1-1v-4a1 1 0 0 1 .445-.832l3-2a1 1 0 0 1 1.11 0l3 2A1 1 0 0 1 22 17v4a1 1 0 0 1-1 1z',\n },\n ],\n ['path', { d: 'M18 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 .601.2' }],\n ['path', { d: 'M18 22v-3' }],\n ['circle', { cx: '10', cy: '10', r: '3' }],\n];\n\nexport default MapPinHouse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-minus-inside\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxwYXRoIGQ9Ik05IDEwaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-minus-inside\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinMinusInside: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n },\n ],\n ['path', { d: 'M9 10h6' }],\n];\n\nexport default MapPinMinusInside;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguOTc3IDE0QzE5LjYgMTIuNzAxIDIwIDExLjM0MyAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTE2IDE4aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinMinus: IconNode = [\n [\n 'path',\n {\n d: 'M18.977 14C19.6 12.701 20 11.343 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'M16 18h6' }],\n];\n\nexport default MapPinMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNzUgNy4wOWEzIDMgMCAwIDEgMi4xNiAyLjE2IiAvPgogIDxwYXRoIGQ9Ik0xNy4wNzIgMTcuMDcyYy0xLjYzNCAyLjE3LTMuNTI3IDMuOTEyLTQuNDcxIDQuNzI3YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxLjQzMi00LjU2OCIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik04LjQ3NSAyLjgxOEE4IDggMCAwIDEgMjAgMTBjMCAxLjE4My0uMzEgMi4zNzctLjgxIDMuNTMzIiAvPgogIDxwYXRoIGQ9Ik05LjEzIDkuMTNhMyAzIDAgMCAwIDMuNzQgMy43NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/map-pin-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinOff: IconNode = [\n ['path', { d: 'M12.75 7.09a3 3 0 0 1 2.16 2.16' }],\n [\n 'path',\n {\n d: 'M17.072 17.072c-1.634 2.17-3.527 3.912-4.471 4.727a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 1.432-4.568',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.475 2.818A8 8 0 0 1 20 10c0 1.183-.31 2.377-.81 3.533' }],\n ['path', { d: 'M9.13 9.13a3 3 0 0 0 3.74 3.74' }],\n];\n\nexport default MapPinOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuOTcgOS4zMDRBOCA4IDAgMCAwIDIgMTBjMCA0LjY5IDQuODg3IDkuNTYyIDcuMDIyIDExLjQ2OCIgLz4KICA8cGF0aCBkPSJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6IiAvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iMTAiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinPen: IconNode = [\n ['path', { d: 'M17.97 9.304A8 8 0 0 0 2 10c0 4.69 4.887 9.562 7.022 11.468' }],\n [\n 'path',\n {\n d: 'M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n ['circle', { cx: '10', cy: '10', r: '3' }],\n];\n\nexport default MapPinPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-plus-inside\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxwYXRoIGQ9Ik0xMiA3djYiIC8+CiAgPHBhdGggZD0iTTkgMTBoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/map-pin-plus-inside\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinPlusInside: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n },\n ],\n ['path', { d: 'M12 7v6' }],\n ['path', { d: 'M9 10h6' }],\n];\n\nexport default MapPinPlusInside;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuOTE0IDExLjEwNUE3LjI5OCA3LjI5OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTE2IDE4aDYiIC8+CiAgPHBhdGggZD0iTTE5IDE1djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinPlus: IconNode = [\n [\n 'path',\n {\n d: 'M19.914 11.105A7.298 7.298 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 32 32 0 0 0 .824-.738',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'M16 18h6' }],\n ['path', { d: 'M19 15v6' }],\n];\n\nexport default MapPinPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-x-inside\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxwYXRoIGQ9Im0xNC41IDcuNS01IDUiIC8+CiAgPHBhdGggZD0ibTkuNSA3LjUgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/map-pin-x-inside\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinXInside: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n },\n ],\n ['path', { d: 'm14.5 7.5-5 5' }],\n ['path', { d: 'm9.5 7.5 5 5' }],\n];\n\nexport default MapPinXInside;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuNzUyIDExLjkwMUE3Ljc4IDcuNzggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDE5IDE5IDAgMCAwIC4wOS0uMDc3IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTIxLjUgMTUuNS01IDUiIC8+CiAgPHBhdGggZD0ibTIxLjUgMjAuNS01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinX: IconNode = [\n [\n 'path',\n {\n d: 'M19.752 11.901A7.78 7.78 0 0 0 20 10a8 8 0 0 0-16 0c0 4.993 5.539 10.193 7.399 11.799a1 1 0 0 0 1.202 0 19 19 0 0 0 .09-.077',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'm21.5 15.5-5 5' }],\n ['path', { d: 'm21.5 20.5-5-5' }],\n];\n\nexport default MapPinX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pin\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/map-pin\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPin: IconNode = [\n [\n 'path',\n {\n d: 'M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0',\n },\n ],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n];\n\nexport default MapPin;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-pinned\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggOGMwIDMuNjEzLTMuODY5IDcuNDI5LTUuMzkzIDguNzk1YTEgMSAwIDAgMS0xLjIxNCAwQzkuODcgMTUuNDI5IDYgMTEuNjEzIDYgOGE2IDYgMCAwIDEgMTIgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjgiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTguNzE0IDE0aC0zLjcxYTEgMSAwIDAgMC0uOTQ4LjY4M2wtMi4wMDQgNkExIDEgMCAwIDAgMyAyMmgxOGExIDEgMCAwIDAgLjk0OC0xLjMxNmwtMi02YTEgMSAwIDAgMC0uOTQ5LS42ODRoLTMuNzEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/map-pinned\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPinned: IconNode = [\n [\n 'path',\n {\n d: 'M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0',\n },\n ],\n ['circle', { cx: '12', cy: '8', r: '2' }],\n [\n 'path',\n {\n d: 'M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712',\n },\n ],\n];\n\nexport default MapPinned;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxMiIgLz4KICA8cGF0aCBkPSJNMTUgNS43NjRWMTIiIC8+CiAgPHBhdGggZD0iTTE4IDE1djYiIC8+CiAgPHBhdGggZD0iTTIxIDE4aC02IiAvPgogIDxwYXRoIGQ9Ik05IDMuMjM2djE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/map-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MapPlus: IconNode = [\n [\n 'path',\n {\n d: 'm11 19-1.106-.552a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0l4.212 2.106a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619V12',\n },\n ],\n ['path', { d: 'M15 5.764V12' }],\n ['path', { d: 'M18 15v6' }],\n ['path', { d: 'M21 18h-6' }],\n ['path', { d: 'M9 3.236v15' }],\n];\n\nexport default MapPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name map\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuMTA2IDUuNTUzYTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5djEyLjc2NGExIDEgMCAwIDEtLjU1My44OTRsLTQuNTUzIDIuMjc3YTIgMiAwIDAgMS0xLjc4OCAwbC00LjIxMi0yLjEwNmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMHoiIC8+CiAgPHBhdGggZD0iTTE1IDUuNzY0djE1IiAvPgogIDxwYXRoIGQ9Ik05IDMuMjM2djE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/map\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Map: IconNode = [\n [\n 'path',\n {\n d: 'M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z',\n },\n ],\n ['path', { d: 'M15 5.764v15' }],\n ['path', { d: 'M9 3.236v15' }],\n];\n\nexport default Map;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mars-stroke\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgNiA0IDQiIC8+CiAgPHBhdGggZD0iTTE3IDNoNHY0IiAvPgogIDxwYXRoIGQ9Im0yMSAzLTcuNzUgNy43NSIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTUiIHI9IjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mars-stroke\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MarsStroke: IconNode = [\n ['path', { d: 'm14 6 4 4' }],\n ['path', { d: 'M17 3h4v4' }],\n ['path', { d: 'm21 3-7.75 7.75' }],\n ['circle', { cx: '9', cy: '15', r: '6' }],\n];\n\nexport default MarsStroke;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mars\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2g1djUiIC8+CiAgPHBhdGggZD0ibTIxIDMtNi43NSA2Ljc1IiAvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iMTQiIHI9IjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mars\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mars: IconNode = [\n ['path', { d: 'M16 3h5v5' }],\n ['path', { d: 'm21 3-6.75 6.75' }],\n ['circle', { cx: '10', cy: '14', r: '6' }],\n];\n\nexport default Mars;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name martini\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMXYxMSIgLz4KICA8cGF0aCBkPSJtMTkgMy03IDgtNy04WiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/martini\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Martini: IconNode = [\n ['path', { d: 'M8 22h8' }],\n ['path', { d: 'M12 11v11' }],\n ['path', { d: 'm19 3-7 8-7-8Z' }],\n];\n\nexport default Martini;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name maximize-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM2g2djYiIC8+CiAgPHBhdGggZD0ibTIxIDMtNyA3IiAvPgogIDxwYXRoIGQ9Im0zIDIxIDctNyIgLz4KICA8cGF0aCBkPSJNOSAyMUgzdi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/maximize-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Maximize2: IconNode = [\n ['path', { d: 'M15 3h6v6' }],\n ['path', { d: 'm21 3-7 7' }],\n ['path', { d: 'm3 21 7-7' }],\n ['path', { d: 'M9 21H3v-6' }],\n];\n\nexport default Maximize2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name maximize\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzSDVhMiAyIDAgMCAwLTIgMnYzIiAvPgogIDxwYXRoIGQ9Ik0yMSA4VjVhMiAyIDAgMCAwLTItMmgtMyIgLz4KICA8cGF0aCBkPSJNMyAxNnYzYTIgMiAwIDAgMCAyIDJoMyIgLz4KICA8cGF0aCBkPSJNMTYgMjFoM2EyIDIgMCAwIDAgMi0ydi0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/maximize\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Maximize: IconNode = [\n ['path', { d: 'M8 3H5a2 2 0 0 0-2 2v3' }],\n ['path', { d: 'M21 8V5a2 2 0 0 0-2-2h-3' }],\n ['path', { d: 'M3 16v3a2 2 0 0 0 2 2h3' }],\n ['path', { d: 'M16 21h3a2 2 0 0 0 2-2v-3' }],\n];\n\nexport default Maximize;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name medal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNy4yMSAxNSAyLjY2IDcuMTRhMiAyIDAgMCAxIC4xMy0yLjJMNC40IDIuOEEyIDIgMCAwIDEgNiAyaDEyYTIgMiAwIDAgMSAxLjYuOGwxLjYgMi4xNGEyIDIgMCAwIDEgLjE0IDIuMkwxNi43OSAxNSIgLz4KICA8cGF0aCBkPSJNMTEgMTIgNS4xMiAyLjIiIC8+CiAgPHBhdGggZD0ibTEzIDEyIDUuODgtOS44IiAvPgogIDxwYXRoIGQ9Ik04IDdoOCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE3IiByPSI1IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOHYtMmgtLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/medal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Medal: IconNode = [\n [\n 'path',\n {\n d: 'M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15',\n },\n ],\n ['path', { d: 'M11 12 5.12 2.2' }],\n ['path', { d: 'm13 12 5.88-9.8' }],\n ['path', { d: 'M8 7h8' }],\n ['circle', { cx: '12', cy: '17', r: '5' }],\n ['path', { d: 'M12 18v-2h-.5' }],\n];\n\nexport default Medal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name megaphone-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNjM2IDZBMTMgMTMgMCAwIDAgMTkuNCAzLjIgMSAxIDAgMCAxIDIxIDR2MTEuMzQ0IiAvPgogIDxwYXRoIGQ9Ik0xNC4zNzggMTQuMzU3QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMSIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik02IDE0YTEyIDEyIDAgMCAwIDIuNCA3LjIgMiAyIDAgMCAwIDMuMi0yLjRBOCA4IDAgMCAxIDEwIDE0IiAvPgogIDxwYXRoIGQ9Ik04IDh2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/megaphone-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MegaphoneOff: IconNode = [\n ['path', { d: 'M11.636 6A13 13 0 0 0 19.4 3.2 1 1 0 0 1 21 4v11.344' }],\n ['path', { d: 'M14.378 14.357A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h1' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14' }],\n ['path', { d: 'M8 8v6' }],\n];\n\nexport default MegaphoneOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name megaphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNmExMyAxMyAwIDAgMCA4LjQtMi44QTEgMSAwIDAgMSAyMSA0djEyYTEgMSAwIDAgMS0xLjYuOEExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCIgLz4KICA8cGF0aCBkPSJNOCA2djgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/megaphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Megaphone: IconNode = [\n [\n 'path',\n {\n d: 'M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14' }],\n ['path', { d: 'M8 6v8' }],\n];\n\nexport default Megaphone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name meh\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjE2IiB5MT0iMTUiIHkyPSIxNSIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjkuMDEiIHkxPSI5IiB5Mj0iOSIgLz4KICA8bGluZSB4MT0iMTUiIHgyPSIxNS4wMSIgeTE9IjkiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/meh\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Meh: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['line', { x1: '8', x2: '16', y1: '15', y2: '15' }],\n ['line', { x1: '9', x2: '9.01', y1: '9', y2: '9' }],\n ['line', { x1: '15', x2: '15.01', y1: '9', y2: '9' }],\n];\n\nexport default Meh;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name menu\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA1aDE2IiAvPgogIDxwYXRoIGQ9Ik00IDEyaDE2IiAvPgogIDxwYXRoIGQ9Ik00IDE5aDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/menu\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Menu: IconNode = [\n ['path', { d: 'M4 5h16' }],\n ['path', { d: 'M4 12h16' }],\n ['path', { d: 'M4 19h16' }],\n];\n\nexport default Menu;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name memory-stick\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJ2LTIiIC8+CiAgPHBhdGggZD0iTTEyIDE4di0yIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMnYtMiIgLz4KICA8cGF0aCBkPSJNMTYgMTh2LTIiIC8+CiAgPHBhdGggZD0iTTIgMTFoMS41IiAvPgogIDxwYXRoIGQ9Ik0yMCAxOHYtMiIgLz4KICA8cGF0aCBkPSJNMjAuNSAxMUgyMiIgLz4KICA8cGF0aCBkPSJNNCAxOHYtMiIgLz4KICA8cGF0aCBkPSJNOCAxMnYtMiIgLz4KICA8cGF0aCBkPSJNOCAxOHYtMiIgLz4KICA8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMjAiIGhlaWdodD0iMTAiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/memory-stick\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MemoryStick: IconNode = [\n ['path', { d: 'M12 12v-2' }],\n ['path', { d: 'M12 18v-2' }],\n ['path', { d: 'M16 12v-2' }],\n ['path', { d: 'M16 18v-2' }],\n ['path', { d: 'M2 11h1.5' }],\n ['path', { d: 'M20 18v-2' }],\n ['path', { d: 'M20.5 11H22' }],\n ['path', { d: 'M4 18v-2' }],\n ['path', { d: 'M8 12v-2' }],\n ['path', { d: 'M8 18v-2' }],\n ['rect', { x: '2', y: '6', width: '20', height: '10', rx: '2' }],\n];\n\nexport default MemoryStick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name merge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOCA2IDQtNCA0IDQiIC8+CiAgPHBhdGggZD0iTTEyIDJ2MTAuM2E0IDQgMCAwIDEtMS4xNzIgMi44NzJMNCAyMiIgLz4KICA8cGF0aCBkPSJtMjAgMjItNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/merge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Merge: IconNode = [\n ['path', { d: 'm8 6 4-4 4 4' }],\n ['path', { d: 'M12 2v10.3a4 4 0 0 1-1.172 2.872L4 22' }],\n ['path', { d: 'm20 22-5-5' }],\n];\n\nexport default Merge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgOS0zIDMgMyAzIiAvPgogIDxwYXRoIGQ9Im0xNCAxNSAzLTMtMy0zIiAvPgogIDxwYXRoIGQ9Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-circle-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleCode: IconNode = [\n ['path', { d: 'm10 9-3 3 3 3' }],\n ['path', { d: 'm14 15 3-3-3-3' }],\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n];\n\nexport default MessageCircleCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCIgLz4KICA8cGF0aCBkPSJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAiIC8+CiAgPHBhdGggZD0iTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43IiAvPgogIDxwYXRoIGQ9Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44IiAvPgogIDxwYXRoIGQ9Ik0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSIgLz4KICA8cGF0aCBkPSJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgiIC8+CiAgPHBhdGggZD0iTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5IiAvPgogIDxwYXRoIGQ9Im02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-circle-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleDashed: IconNode = [\n ['path', { d: 'M10.1 2.182a10 10 0 0 1 3.8 0' }],\n ['path', { d: 'M13.9 21.818a10 10 0 0 1-3.8 0' }],\n ['path', { d: 'M17.609 3.72a10 10 0 0 1 2.69 2.7' }],\n ['path', { d: 'M2.182 13.9a10 10 0 0 1 0-3.8' }],\n ['path', { d: 'M20.28 17.61a10 10 0 0 1-2.7 2.69' }],\n ['path', { d: 'M21.818 10.1a10 10 0 0 1 0 3.8' }],\n ['path', { d: 'M3.721 6.391a10 10 0 0 1 2.7-2.69' }],\n ['path', { d: 'm6.163 21.117-2.906.85a1 1 0 0 1-1.236-1.169l.965-2.98' }],\n];\n\nexport default MessageCircleDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0iTTcuODI4IDEzLjA3QTMgMyAwIDAgMSAxMiA4Ljc2NGEzIDMgMCAwIDEgNS4wMDQgMi4yMjQgMyAzIDAgMCAxLS44MzIgMi4wODNsLTMuNDQ3IDMuNjJhMSAxIDAgMCAxLTEuNDUtLjAwMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleHeart: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n [\n 'path',\n {\n d: 'M7.828 13.07A3 3 0 0 1 12 8.764a3 3 0 0 1 5.004 2.224 3 3 0 0 1-.832 2.083l-3.447 3.62a1 1 0 0 1-1.45-.001z',\n },\n ],\n];\n\nexport default MessageCircleHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-more\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-circle-more\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleMore: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'M8 12h.01' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M16 12h.01' }],\n];\n\nexport default MessageCircleMore;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik00LjkzIDQuOTI5YTEwIDEwIDAgMCAwLTEuOTM4IDExLjQxMiAyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMCAwIDExLjMwMi0xLjk4OSIgLz4KICA8cGF0aCBkPSJNOC4zNSAyLjY5QTEwIDEwIDAgMCAxIDIxLjMgMTUuNjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleOff: IconNode = [\n ['path', { d: 'm2 2 20 20' }],\n [\n 'path',\n {\n d: 'M4.93 4.929a10 10 0 0 0-1.938 11.412 2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 0 0 11.302-1.989',\n },\n ],\n ['path', { d: 'M8.35 2.69A10 10 0 0 1 21.3 15.65' }],\n];\n\nexport default MessageCircleOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KICA8cGF0aCBkPSJNMTIgOHY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-circle-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCirclePlus: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'M12 8v8' }],\n];\n\nexport default MessageCirclePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0iTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxN2guMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleQuestionMark: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default MessageCircleQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-warning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0iTTEyIDh2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-circle-warning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleWarning: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'M12 8v4' }],\n ['path', { d: 'M12 16h.01' }],\n];\n\nexport default MessageCircleWarning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-reply\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0ibTEwIDE1LTMtMyAzLTMiIC8+CiAgPHBhdGggZD0iTTcgMTJoOGEyIDIgMCAwIDEgMiAydjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle-reply\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleReply: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'm10 15-3-3 3-3' }],\n ['path', { d: 'M7 12h8a2 2 0 0 1 2 2v1' }],\n];\n\nexport default MessageCircleReply;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+CiAgPHBhdGggZD0ibTE1IDktNiA2IiAvPgogIDxwYXRoIGQ9Im05IDkgNiA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-circle-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircleX: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'm9 9 6 6' }],\n];\n\nexport default MessageCircleX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageCircle: IconNode = [\n [\n 'path',\n {\n d: 'M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719',\n },\n ],\n];\n\nexport default MessageCircle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Im0xMCA4LTMgMyAzIDMiIC8+CiAgPHBhdGggZD0ibTE0IDE0IDMtMy0zLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-square-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareCode: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'm10 8-3 3 3 3' }],\n ['path', { d: 'm14 14 3-3-3-3' }],\n];\n\nexport default MessageSquareCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgM2gyIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOWgtMiIgLz4KICA8cGF0aCBkPSJNMiAxMnYtMiIgLz4KICA8cGF0aCBkPSJNMiAxNnY1LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDEuMTQ5LTEuMTQ5IiAvPgogIDxwYXRoIGQ9Ik0yMCAxOWEyIDIgMCAwIDAgMi0ydi0xIiAvPgogIDxwYXRoIGQ9Ik0yMiAxMHYyIiAvPgogIDxwYXRoIGQ9Ik0yMiA2VjVhMiAyIDAgMCAwLTItMiIgLz4KICA8cGF0aCBkPSJNNCAzYTIgMiAwIDAgMC0yIDJ2MSIgLz4KICA8cGF0aCBkPSJNOCAxOWgyIiAvPgogIDxwYXRoIGQ9Ik04IDNoMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareDashed: IconNode = [\n ['path', { d: 'M14 3h2' }],\n ['path', { d: 'M16 19h-2' }],\n ['path', { d: 'M2 12v-2' }],\n ['path', { d: 'M2 16v5.286a.71.71 0 0 0 1.212.502l1.149-1.149' }],\n ['path', { d: 'M20 19a2 2 0 0 0 2-2v-1' }],\n ['path', { d: 'M22 10v2' }],\n ['path', { d: 'M22 6V5a2 2 0 0 0-2-2' }],\n ['path', { d: 'M4 3a2 2 0 0 0-2 2v1' }],\n ['path', { d: 'M8 19h2' }],\n ['path', { d: 'M8 3h2' }],\n];\n\nexport default MessageSquareDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-diff\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0xMCAxNWg0IiAvPgogIDxwYXRoIGQ9Ik0xMCA5aDQiIC8+CiAgPHBhdGggZD0iTTEyIDd2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-diff\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareDiff: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M10 15h4' }],\n ['path', { d: 'M10 9h4' }],\n ['path', { d: 'M12 7v4' }],\n];\n\nexport default MessageSquareDiff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNyAzSDRhMiAyIDAgMCAwLTIgMnYxNi4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwyLjIwMi0yLjIwMkEyIDIgMCAwIDEgNi44MjggMTlIMjBhMiAyIDAgMCAwIDItMnYtNC43IiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iNiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareDot: IconNode = [\n [\n 'path',\n {\n d: 'M12.7 3H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H20a2 2 0 0 0 2-2v-4.7',\n },\n ],\n ['circle', { cx: '19', cy: '6', r: '3' }],\n];\n\nexport default MessageSquareDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik03LjUgOS41YzAgLjY4Ny4yNjUgMS4zODMuNjk3IDEuODQ0bDMuMDA5IDMuMjY0YTEuMTQgMS4xNCAwIDAgMCAuNDA3LjMxNCAxIDEgMCAwIDAgLjc4My0uMDA0IDEuMTQgMS4xNCAwIDAgMCAuMzk4LS4zMWwzLjAwOC0zLjI2NEEyLjc3IDIuNzcgMCAwIDAgMTYuNSA5LjUgMi41IDIuNSAwIDAgMCAxMiA4YTIuNSAyLjUgMCAwIDAtNC41IDEuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareHeart: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n [\n 'path',\n {\n d: 'M7.5 9.5c0 .687.265 1.383.697 1.844l3.009 3.264a1.14 1.14 0 0 0 .407.314 1 1 0 0 0 .783-.004 1.14 1.14 0 0 0 .398-.31l3.008-3.264A2.77 2.77 0 0 0 16.5 9.5 2.5 2.5 0 0 0 12 8a2.5 2.5 0 0 0-4.5 1.5',\n },\n ],\n];\n\nexport default MessageSquareHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNXYtMmEyIDIgMCAwIDAtNCAwdjIiIC8+CiAgPHJlY3QgeD0iMTQiIHk9IjE1IiB3aWR0aD0iOCIgaGVpZ2h0PSI1IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareLock: IconNode = [\n [\n 'path',\n {\n d: 'M22 8.5V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H10',\n },\n ],\n ['path', { d: 'M20 15v-2a2 2 0 0 0-4 0v2' }],\n ['rect', { x: '14', y: '15', width: '8', height: '5', rx: '1' }],\n];\n\nexport default MessageSquareLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-more\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMWguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDExaC4wMSIgLz4KICA8cGF0aCBkPSJNOCAxMWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-square-more\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareMore: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M12 11h.01' }],\n ['path', { d: 'M16 11h.01' }],\n ['path', { d: 'M8 11h.01' }],\n];\n\nexport default MessageSquareMore;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTlINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcuNyAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareOff: IconNode = [\n [\n 'path',\n {\n d: 'M19 19H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.7.7 0 0 1 2 21.286V5a2 2 0 0 1 1.184-1.826',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8.656 3H20a2 2 0 0 1 2 2v11.344' }],\n];\n\nexport default MessageSquareOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0xMiA4djYiIC8+CiAgPHBhdGggZD0iTTkgMTFoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquarePlus: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M12 8v6' }],\n ['path', { d: 'M9 11h6' }],\n];\n\nexport default MessageSquarePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-quote\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTRhMiAyIDAgMCAwIDItMlY4aC0yIiAvPgogIDxwYXRoIGQ9Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoiIC8+CiAgPHBhdGggZD0iTTggMTRhMiAyIDAgMCAwIDItMlY4SDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/message-square-quote\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareQuote: IconNode = [\n ['path', { d: 'M14 14a2 2 0 0 0 2-2V8h-2' }],\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M8 14a2 2 0 0 0 2-2V8H8' }],\n];\n\nexport default MessageSquareQuote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-reply\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Im0xMCA4LTMgMyAzIDMiIC8+CiAgPHBhdGggZD0iTTE3IDE0di0xYTIgMiAwIDAgMC0yLTJINyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-reply\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareReply: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'm10 8-3 3 3 3' }],\n ['path', { d: 'M17 14v-1a2 2 0 0 0-2-2H7' }],\n];\n\nexport default MessageSquareReply;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-share\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM0g0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDIwYTIgMiAwIDAgMCAyLTJ2LTQiIC8+CiAgPHBhdGggZD0iTTE2IDNoNnY2IiAvPgogIDxwYXRoIGQ9Im0xNiA5IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-share\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareShare: IconNode = [\n [\n 'path',\n {\n d: 'M12 3H4a2 2 0 0 0-2 2v16.286a.71.71 0 0 0 1.212.502l2.202-2.202A2 2 0 0 1 6.828 19H20a2 2 0 0 0 2-2v-4',\n },\n ],\n ['path', { d: 'M16 3h6v6' }],\n ['path', { d: 'm16 9 6-6' }],\n];\n\nexport default MessageSquareShare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik03IDExaDEwIiAvPgogIDxwYXRoIGQ9Ik03IDE1aDYiIC8+CiAgPHBhdGggZD0iTTcgN2g4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareText: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M7 11h10' }],\n ['path', { d: 'M7 15h6' }],\n ['path', { d: 'M7 7h8' }],\n];\n\nexport default MessageSquareText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-warning\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNWguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDd2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/message-square-warning\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareWarning: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'M12 15h.01' }],\n ['path', { d: 'M12 7v4' }],\n];\n\nexport default MessageSquareWarning;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Im0xNC41IDguNS01IDUiIC8+CiAgPHBhdGggZD0ibTkuNSA4LjUgNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquareX: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n ['path', { d: 'm14.5 8.5-5 5' }],\n ['path', { d: 'm9.5 8.5 5 5' }],\n];\n\nexport default MessageSquareX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name message-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessageSquare: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n },\n ],\n];\n\nexport default MessageSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name messages-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6IiAvPgogIDxwYXRoIGQ9Ik0yMCA5YTIgMiAwIDAgMSAyIDJ2MTAuMjg2YS43MS43MSAwIDAgMS0xLjIxMi41MDJsLTIuMjAyLTIuMjAyQTIgMiAwIDAgMCAxNy4xNzIgMTlIMTBhMiAyIDAgMCAxLTItMnYtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/messages-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MessagesSquare: IconNode = [\n [\n 'path',\n {\n d: 'M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z',\n },\n ],\n [\n 'path',\n {\n d: 'M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1',\n },\n ],\n];\n\nexport default MessagesSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mic-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMiIC8+CiAgPHBhdGggZD0iTTE2Ljk1IDE2Ljk1QTcgNyAwIDAgMSA1IDEydi0yIiAvPgogIDxwYXRoIGQ9Ik0xOC44OSAxMy4yM0E3IDcgMCAwIDAgMTkgMTJ2LTIiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNOSA5djNhMyAzIDAgMCAwIDUuMTIgMi4xMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mic-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MicOff: IconNode = [\n ['path', { d: 'M12 19v3' }],\n ['path', { d: 'M15 9.34V5a3 3 0 0 0-5.68-1.33' }],\n ['path', { d: 'M16.95 16.95A7 7 0 0 1 5 12v-2' }],\n ['path', { d: 'M18.89 13.23A7 7 0 0 0 19 12v-2' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M9 9v3a3 3 0 0 0 5.12 2.12' }],\n];\n\nexport default MicOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mic-vocal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgNy42MDEtNS45OTQgOC4xOWExIDEgMCAwIDAgLjEgMS4yOThsLjgxNy44MThhMSAxIDAgMCAwIDEuMzE0LjA4N0wxNS4wOSAxMiIgLz4KICA8cGF0aCBkPSJNMTYuNSAyMS4xNzRDMTUuNSAyMC41IDE0LjM3MiAyMCAxMyAyMGMtMi4wNTggMC0zLjkyOCAyLjM1Ni02IDItMi4wNzItLjM1Ni0yLjc3NS0zLjM2OS0xLjUtNC41IiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iNyIgcj0iNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mic-vocal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MicVocal: IconNode = [\n ['path', { d: 'm11 7.601-5.994 8.19a1 1 0 0 0 .1 1.298l.817.818a1 1 0 0 0 1.314.087L15.09 12' }],\n [\n 'path',\n {\n d: 'M16.5 21.174C15.5 20.5 14.372 20 13 20c-2.058 0-3.928 2.356-6 2-2.072-.356-2.775-3.369-1.5-4.5',\n },\n ],\n ['circle', { cx: '16', cy: '7', r: '5' }],\n];\n\nexport default MicVocal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mic\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTkgMTB2MmE3IDcgMCAwIDEtMTQgMHYtMiIgLz4KICA8cmVjdCB4PSI5IiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSIxMyIgcng9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mic: IconNode = [\n ['path', { d: 'M12 19v3' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2' }],\n ['rect', { x: '9', y: '2', width: '6', height: '13', rx: '3' }],\n];\n\nexport default Mic;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name microchip\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTJoNCIgLz4KICA8cGF0aCBkPSJNMTAgMTdoNCIgLz4KICA8cGF0aCBkPSJNMTAgN2g0IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0xOCAxOGgyIiAvPgogIDxwYXRoIGQ9Ik0xOCA2aDIiIC8+CiAgPHBhdGggZD0iTTQgMTJoMiIgLz4KICA8cGF0aCBkPSJNNCAxOGgyIiAvPgogIDxwYXRoIGQ9Ik00IDZoMiIgLz4KICA8cmVjdCB4PSI2IiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/microchip\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Microchip: IconNode = [\n ['path', { d: 'M10 12h4' }],\n ['path', { d: 'M10 17h4' }],\n ['path', { d: 'M10 7h4' }],\n ['path', { d: 'M18 12h2' }],\n ['path', { d: 'M18 18h2' }],\n ['path', { d: 'M18 6h2' }],\n ['path', { d: 'M4 12h2' }],\n ['path', { d: 'M4 18h2' }],\n ['path', { d: 'M4 6h2' }],\n ['rect', { x: '6', y: '2', width: '12', height: '20', rx: '2' }],\n];\n\nexport default Microchip;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name microscope\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxOGg4IiAvPgogIDxwYXRoIGQ9Ik0zIDIyaDE4IiAvPgogIDxwYXRoIGQ9Ik0xNCAyMmE3IDcgMCAxIDAgMC0xNGgtMSIgLz4KICA8cGF0aCBkPSJNOSAxNGgyIiAvPgogIDxwYXRoIGQ9Ik05IDEyYTIgMiAwIDAgMS0yLTJWNmg2djRhMiAyIDAgMCAxLTIgMloiIC8+CiAgPHBhdGggZD0iTTEyIDZWM2ExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/microscope\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Microscope: IconNode = [\n ['path', { d: 'M6 18h8' }],\n ['path', { d: 'M3 22h18' }],\n ['path', { d: 'M14 22a7 7 0 1 0 0-14h-1' }],\n ['path', { d: 'M9 14h2' }],\n ['path', { d: 'M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z' }],\n ['path', { d: 'M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3' }],\n];\n\nexport default Microscope;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name microwave\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTUiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjciIHg9IjYiIHk9IjgiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0xOCA4djciIC8+CiAgPHBhdGggZD0iTTYgMTl2MiIgLz4KICA8cGF0aCBkPSJNMTggMTl2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/microwave\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Microwave: IconNode = [\n ['rect', { width: '20', height: '15', x: '2', y: '4', rx: '2' }],\n ['rect', { width: '8', height: '7', x: '6', y: '8', rx: '1' }],\n ['path', { d: 'M18 8v7' }],\n ['path', { d: 'M6 19v2' }],\n ['path', { d: 'M18 19v2' }],\n];\n\nexport default Microwave;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name milestone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2OCIgLz4KICA8cGF0aCBkPSJNMTIgM3YzIiAvPgogIDxwYXRoIGQ9Ik00IDZhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoMTNhMiAyIDAgMCAwIDEuMTUyLS4zNjVsMy40MjQtMi4zMTdhMSAxIDAgMCAwIDAtMS42MzVsLTMuNDI0LTIuMzE4QTIgMiAwIDAgMCAxNyA2eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/milestone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Milestone: IconNode = [\n ['path', { d: 'M12 13v8' }],\n ['path', { d: 'M12 3v3' }],\n [\n 'path',\n {\n d: 'M4 6a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h13a2 2 0 0 0 1.152-.365l3.424-2.317a1 1 0 0 0 0-1.635l-3.424-2.318A2 2 0 0 0 17 6z',\n },\n ],\n];\n\nexport default Milestone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name milk-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyaDgiIC8+CiAgPHBhdGggZD0iTTkgMnYxLjM0M00xNSAydjIuNzg5YTQgNCAwIDAgMCAuNjcyIDIuMjE5bC42NTYuOTg0YTQgNCAwIDAgMSAuNjcyIDIuMjJ2MS4xMzFNNy44IDcuOGwtLjEyOC4xOTJBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi0zIiAvPgogIDxwYXRoIGQ9Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NzIgNi40NzIgMCAwIDAgMy40MzUuNDM1IiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIyIiB5Mj0iMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/milk-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MilkOff: IconNode = [\n ['path', { d: 'M8 2h8' }],\n [\n 'path',\n {\n d: 'M9 2v1.343M15 2v2.789a4 4 0 0 0 .672 2.219l.656.984a4 4 0 0 1 .672 2.22v1.131M7.8 7.8l-.128.192A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-3',\n },\n ],\n ['path', { d: 'M7 15a6.47 6.47 0 0 1 5 0 6.472 6.472 0 0 0 3.435.435' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default MilkOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name minimize-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTAgNy03IiAvPgogIDxwYXRoIGQ9Ik0yMCAxMGgtNlY0IiAvPgogIDxwYXRoIGQ9Im0zIDIxIDctNyIgLz4KICA8cGF0aCBkPSJNNCAxNGg2djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/minimize-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Minimize2: IconNode = [\n ['path', { d: 'm14 10 7-7' }],\n ['path', { d: 'M20 10h-6V4' }],\n ['path', { d: 'm3 21 7-7' }],\n ['path', { d: 'M4 14h6v6' }],\n];\n\nexport default Minimize2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name milk\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyaDgiIC8+CiAgPHBhdGggZD0iTTkgMnYyLjc4OWE0IDQgMCAwIDEtLjY3MiAyLjIxOWwtLjY1Ni45ODRBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi05Ljc4OWE0IDQgMCAwIDAtLjY3Mi0yLjIxOWwtLjY1Ni0uOTg0QTQgNCAwIDAgMSAxNSA0Ljc4OFYyIiAvPgogIDxwYXRoIGQ9Ik03IDE1YTYuNDcyIDYuNDcyIDAgMCAxIDUgMCA2LjQ3IDYuNDcgMCAwIDAgNSAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/milk\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Milk: IconNode = [\n ['path', { d: 'M8 2h8' }],\n [\n 'path',\n {\n d: 'M9 2v2.789a4 4 0 0 1-.672 2.219l-.656.984A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-9.789a4 4 0 0 0-.672-2.219l-.656-.984A4 4 0 0 1 15 4.788V2',\n },\n ],\n ['path', { d: 'M7 15a6.472 6.472 0 0 1 5 0 6.47 6.47 0 0 0 5 0' }],\n];\n\nexport default Milk;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name minimize\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzdjNhMiAyIDAgMCAxLTIgMkgzIiAvPgogIDxwYXRoIGQ9Ik0yMSA4aC0zYTIgMiAwIDAgMS0yLTJWMyIgLz4KICA8cGF0aCBkPSJNMyAxNmgzYTIgMiAwIDAgMSAyIDJ2MyIgLz4KICA8cGF0aCBkPSJNMTYgMjF2LTNhMiAyIDAgMCAxIDItMmgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/minimize\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Minimize: IconNode = [\n ['path', { d: 'M8 3v3a2 2 0 0 1-2 2H3' }],\n ['path', { d: 'M21 8h-3a2 2 0 0 1-2-2V3' }],\n ['path', { d: 'M3 16h3a2 2 0 0 1 2 2v3' }],\n ['path', { d: 'M16 21v-3a2 2 0 0 1 2-2h3' }],\n];\n\nexport default Minimize;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Minus: IconNode = [['path', { d: 'M5 12h14' }]];\n\nexport default Minus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxMCAyIDIgNC00IiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iMyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorCheck: IconNode = [\n ['path', { d: 'm9 10 2 2 4-4' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n];\n\nexport default MonitorCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-cloud\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTNhMyAzIDAgMSAxIDIuODMtNEgxNGEyIDIgMCAwIDEgMCA0eiIgLz4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJNOCAyMWg4IiAvPgogIDxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-cloud\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorCloud: IconNode = [\n ['path', { d: 'M11 13a3 3 0 1 1 2.83-4H14a2 2 0 0 1 0 4z' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n ['rect', { x: '2', y: '3', width: '20', height: '14', rx: '2' }],\n];\n\nexport default MonitorCloud;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJtMTQuMzA1IDcuNTMuOTIzLS4zODIiIC8+CiAgPHBhdGggZD0ibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyIgLz4KICA8cGF0aCBkPSJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0IiAvPgogIDxwYXRoIGQ9Im0xOS41MyA5LjY5Ni0uMzgyLS45MjQiIC8+CiAgPHBhdGggZD0ibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyIgLz4KICA8cGF0aCBkPSJtMjAuNzcyIDcuMTQ4LjkyNC4zODMiIC8+CiAgPHBhdGggZD0iTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDciIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjYiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorCog: IconNode = [\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'm14.305 7.53.923-.382' }],\n ['path', { d: 'm15.228 4.852-.923-.383' }],\n ['path', { d: 'm16.852 3.228-.383-.924' }],\n ['path', { d: 'm16.852 8.772-.383.923' }],\n ['path', { d: 'm19.148 3.228.383-.924' }],\n ['path', { d: 'm19.53 9.696-.382-.924' }],\n ['path', { d: 'm20.772 4.852.924-.383' }],\n ['path', { d: 'm20.772 7.148.924.383' }],\n ['path', { d: 'M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7' }],\n ['path', { d: 'M8 21h8' }],\n ['circle', { cx: '18', cy: '6', r: '3' }],\n];\n\nexport default MonitorCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJNMjIgMTIuMzA3VjE1YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg4LjY5MyIgLz4KICA8cGF0aCBkPSJNOCAyMWg4IiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iNiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorDot: IconNode = [\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M22 12.307V15a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h8.693' }],\n ['path', { d: 'M8 21h8' }],\n ['circle', { cx: '19', cy: '6', r: '3' }],\n];\n\nexport default MonitorDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTNWNyIgLz4KICA8cGF0aCBkPSJtMTUgMTAtMyAzLTMtMyIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxN3Y0IiAvPgogIDxwYXRoIGQ9Ik04IDIxaDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorDown: IconNode = [\n ['path', { d: 'M12 13V7' }],\n ['path', { d: 'm15 10-3 3-3-3' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n];\n\nexport default MonitorDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJNMTcgMTdINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDEuMTg0LTEuODI2IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KICA8cGF0aCBkPSJNOC42NTYgM0gyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0uMjkzIDEuMDQyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/monitor-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorOff: IconNode = [\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M17 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 1.184-1.826' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M8 21h8' }],\n ['path', { d: 'M8.656 3H20a2 2 0 0 1 2 2v10a2 2 0 0 1-.293 1.042' }],\n];\n\nexport default MonitorOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNWNyIgLz4KICA8cGF0aCBkPSJNMTQgMTNWNyIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxN3Y0IiAvPgogIDxwYXRoIGQ9Ik04IDIxaDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorPause: IconNode = [\n ['path', { d: 'M10 13V7' }],\n ['path', { d: 'M14 13V7' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n];\n\nexport default MonitorPause;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMDMzIDkuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NlY3LjY0OGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KICA8cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/monitor-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorPlay: IconNode = [\n [\n 'path',\n {\n d: 'M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z',\n },\n ],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n ['rect', { x: '2', y: '3', width: '20', height: '14', rx: '2' }],\n];\n\nexport default MonitorPlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-smartphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjdhMiAyIDAgMCAwIDIgMmg4IiAvPgogIDxwYXRoIGQ9Ik0xMCAxOXYtMy45NiAzLjE1IiAvPgogIDxwYXRoIGQ9Ik03IDE5aDUiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMTAiIHg9IjE2IiB5PSIxMiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-smartphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorSmartphone: IconNode = [\n ['path', { d: 'M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8' }],\n ['path', { d: 'M10 19v-3.96 3.15' }],\n ['path', { d: 'M7 19h5' }],\n ['rect', { width: '6', height: '10', x: '16', y: '12', rx: '2' }],\n];\n\nexport default MonitorSmartphone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-speaker\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNS41IDIwSDgiIC8+CiAgPHBhdGggZD0iTTE3IDloLjAxIiAvPgogIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSIxNiIgeD0iMTIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDZINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg0IiAvPgogIDxjaXJjbGUgY3g9IjE3IiBjeT0iMTUiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-speaker\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorSpeaker: IconNode = [\n ['path', { d: 'M5.5 20H8' }],\n ['path', { d: 'M17 9h.01' }],\n ['rect', { width: '10', height: '16', x: '12', y: '4', rx: '2' }],\n ['path', { d: 'M8 6H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4' }],\n ['circle', { cx: '17', cy: '15', r: '1' }],\n];\n\nexport default MonitorSpeaker;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-stop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJNOCAyMWg4IiAvPgogIDxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgcng9IjIiIC8+CiAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/monitor-stop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorStop: IconNode = [\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n ['rect', { x: '2', y: '3', width: '20', height: '14', rx: '2' }],\n ['rect', { x: '9', y: '7', width: '6', height: '6', rx: '1' }],\n];\n\nexport default MonitorStop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxMCAzLTMgMyAzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxM1Y3IiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iMyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorUp: IconNode = [\n ['path', { d: 'm9 10 3-3 3 3' }],\n ['path', { d: 'M12 13V7' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n];\n\nexport default MonitorUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuNSAxMi41LTUtNSIgLz4KICA8cGF0aCBkPSJtOS41IDEyLjUgNS01IiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iMyIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0iTTggMjFoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MonitorX: IconNode = [\n ['path', { d: 'm14.5 12.5-5-5' }],\n ['path', { d: 'm9.5 12.5 5-5' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n];\n\nexport default MonitorX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name monitor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSIyMSIgeTI9IjIxIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTciIHkyPSIyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/monitor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Monitor: IconNode = [\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n ['line', { x1: '8', x2: '16', y1: '21', y2: '21' }],\n ['line', { x1: '12', x2: '12', y1: '17', y2: '21' }],\n];\n\nexport default Monitor;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name moon-star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNWg0IiAvPgogIDxwYXRoIGQ9Ik0yMCAzdjQiIC8+CiAgPHBhdGggZD0iTTIwLjk4NSAxMi40ODZhOSA5IDAgMSAxLTkuNDczLTkuNDcyYy40MDUtLjAyMi42MTcuNDYuNDAyLjgwM2E2IDYgMCAwIDAgOC4yNjggOC4yNjhjLjM0NC0uMjE1LjgyNS0uMDA0LjgwMy40MDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/moon-star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoonStar: IconNode = [\n ['path', { d: 'M18 5h4' }],\n ['path', { d: 'M20 3v4' }],\n [\n 'path',\n {\n d: 'M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401',\n },\n ],\n];\n\nexport default MoonStar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name moon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuOTg1IDEyLjQ4NmE5IDkgMCAxIDEtOS40NzMtOS40NzJjLjQwNS0uMDIyLjYxNy40Ni40MDIuODAzYTYgNiAwIDAgMCA4LjI2OCA4LjI2OGMuMzQ0LS4yMTUuODI1LS4wMDQuODAzLjQwMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/moon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Moon: IconNode = [\n [\n 'path',\n {\n d: 'M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401',\n },\n ],\n];\n\nexport default Moon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name motorbike\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTQtMS0zIiAvPgogIDxwYXRoIGQ9Im0zIDkgNiAyYTIgMiAwIDAgMSAyLTJoMmEyIDIgMCAwIDEgMS45OSAxLjgxIiAvPgogIDxwYXRoIGQ9Ik04IDE3aDNhMSAxIDAgMCAwIDEtMSA2IDYgMCAwIDEgNi02IDEgMSAwIDAgMCAxLTF2LS43NUE1IDUgMCAwIDAgMTcgNSIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjE3IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSIxNyIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/motorbike\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Motorbike: IconNode = [\n ['path', { d: 'm18 14-1-3' }],\n ['path', { d: 'm3 9 6 2a2 2 0 0 1 2-2h2a2 2 0 0 1 1.99 1.81' }],\n ['path', { d: 'M8 17h3a1 1 0 0 0 1-1 6 6 0 0 1 6-6 1 1 0 0 0 1-1v-.75A5 5 0 0 0 17 5' }],\n ['circle', { cx: '19', cy: '17', r: '3' }],\n ['circle', { cx: '5', cy: '17', r: '3' }],\n];\n\nexport default Motorbike;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mountain-snow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3oiIC8+CiAgPHBhdGggZD0iTTQuMTQgMTUuMDhjMi42Mi0xLjU3IDUuMjQtMS40MyA3Ljg2LjQyIDIuNzQgMS45NCA1LjQ5IDIgOC4yMy4xOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mountain-snow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MountainSnow: IconNode = [\n ['path', { d: 'm8 3 4 8 5-5 5 15H2L8 3z' }],\n ['path', { d: 'M4.14 15.08c2.62-1.57 5.24-1.43 7.86.42 2.74 1.94 5.49 2 8.23.19' }],\n];\n\nexport default MountainSnow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mountain\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOCAzIDQgOCA1LTUgNSAxNUgyTDggM3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mountain\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mountain: IconNode = [['path', { d: 'm8 3 4 8 5-5 5 15H2L8 3z' }]];\n\nexport default Mountain;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNnYuMzQzIiAvPgogIDxwYXRoIGQ9Ik0xOC4yMTggMTguMjE4QTcgNyAwIDAgMSA1IDE1VjlhNyA3IDAgMCAxIC43ODItMy4yMTgiIC8+CiAgPHBhdGggZD0iTTE5IDEzLjM0M1Y5QTcgNyAwIDAgMCA4LjU2IDIuOTAyIiAvPgogIDxwYXRoIGQ9Ik0yMiAyMiAyIDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mouse-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MouseOff: IconNode = [\n ['path', { d: 'M12 6v.343' }],\n ['path', { d: 'M18.218 18.218A7 7 0 0 1 5 15V9a7 7 0 0 1 .782-3.218' }],\n ['path', { d: 'M19 13.343V9A7 7 0 0 0 8.56 2.902' }],\n ['path', { d: 'M22 22 2 2' }],\n];\n\nexport default MouseOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-pointer-2-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUuNTUgOC40NSA1LjEzOCAyLjA4N2EuNS41IDAgMCAxLS4wNjMuOTQ3bC02LjEyNCAxLjU4YTIgMiAwIDAgMC0xLjQzOCAxLjQzNWwtMS41NzkgNi4xMjZhLjUuNSAwIDAgMS0uOTQ3LjA2M0w4LjQ1IDE1LjU1MSIgLz4KICA8cGF0aCBkPSJNMjIgMiAyIDIyIiAvPgogIDxwYXRoIGQ9Im02LjgxNiAxMS41MjgtMi43NzktNi44NGEuNDk1LjQ5NSAwIDAgMSAuNjUxLS42NTFsNi44NCAyLjc3OSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mouse-pointer-2-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MousePointer2Off: IconNode = [\n [\n 'path',\n {\n d: 'm15.55 8.45 5.138 2.087a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063L8.45 15.551',\n },\n ],\n ['path', { d: 'M22 2 2 22' }],\n ['path', { d: 'm6.816 11.528-2.779-6.84a.495.495 0 0 1 .651-.651l6.84 2.779' }],\n];\n\nexport default MousePointer2Off;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-pointer-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC4wMzcgNC42ODhhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDE2IDYuNWEuNS41IDAgMCAxLS4wNjMuOTQ3bC02LjEyNCAxLjU4YTIgMiAwIDAgMC0xLjQzOCAxLjQzNWwtMS41NzkgNi4xMjZhLjUuNSAwIDAgMS0uOTQ3LjA2M3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mouse-pointer-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MousePointer2: IconNode = [\n [\n 'path',\n {\n d: 'M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z',\n },\n ],\n];\n\nexport default MousePointer2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-pointer-ban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wMzQgMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDRMOC4yMDQgNy41NDVhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjYgMy40NDNhLjUuNSAwIDAgMS0uOTQ0LjAzM3oiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iNiIgLz4KICA8cGF0aCBkPSJtMTEuOCAxMS44IDguNCA4LjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mouse-pointer-ban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MousePointerBan: IconNode = [\n [\n 'path',\n {\n d: 'M2.034 2.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.944L8.204 7.545a1 1 0 0 0-.66.66l-1.066 3.443a.5.5 0 0 1-.944.033z',\n },\n ],\n ['circle', { cx: '16', cy: '16', r: '6' }],\n ['path', { d: 'm11.8 11.8 8.4 8.4' }],\n];\n\nexport default MousePointerBan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-pointer-click\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNC4xIDEyIDYiIC8+CiAgPHBhdGggZD0ibTUuMSA4LTIuOS0uOCIgLz4KICA8cGF0aCBkPSJtNiAxMi0xLjkgMiIgLz4KICA8cGF0aCBkPSJNNy4yIDIuMiA4IDUuMSIgLz4KICA8cGF0aCBkPSJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mouse-pointer-click\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MousePointerClick: IconNode = [\n ['path', { d: 'M14 4.1 12 6' }],\n ['path', { d: 'm5.1 8-2.9-.8' }],\n ['path', { d: 'm6 12-1.9 2' }],\n ['path', { d: 'M7.2 2.2 8 5.1' }],\n [\n 'path',\n {\n d: 'M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z',\n },\n ],\n];\n\nexport default MousePointerClick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse-pointer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNTg2IDEyLjU4NiAxOSAxOSIgLz4KICA8cGF0aCBkPSJNMy42ODggMy4wMzdhLjQ5Ny40OTcgMCAwIDAtLjY1MS42NTFsNi41IDE1Ljk5OWEuNTAxLjUwMSAwIDAgMCAuOTQ3LS4wNjJsMS41NjktNi4wODNhMiAyIDAgMCAxIDEuNDQ4LTEuNDc5bDYuMTI0LTEuNTc5YS41LjUgMCAwIDAgLjA2My0uOTQ3eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mouse-pointer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MousePointer: IconNode = [\n ['path', { d: 'M12.586 12.586 19 19' }],\n [\n 'path',\n {\n d: 'M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z',\n },\n ],\n];\n\nexport default MousePointer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name mouse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSI1IiB5PSIyIiB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHJ4PSI3IiAvPgogIDxwYXRoIGQ9Ik0xMiA2djQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/mouse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Mouse: IconNode = [\n ['rect', { x: '5', y: '2', width: '14', height: '20', rx: '7' }],\n ['path', { d: 'M12 6v4' }],\n];\n\nexport default Mouse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-3d\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAzdjE2aDE2IiAvPgogIDxwYXRoIGQ9Im01IDE5IDYtNiIgLz4KICA8cGF0aCBkPSJtMiA2IDMtMyAzIDMiIC8+CiAgPHBhdGggZD0ibTE4IDE2IDMgMy0zIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/move-3d\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Move3d: IconNode = [\n ['path', { d: 'M5 3v16h16' }],\n ['path', { d: 'm5 19 6-6' }],\n ['path', { d: 'm2 6 3-3 3 3' }],\n ['path', { d: 'm18 16 3 3-3 3' }],\n];\n\nexport default Move3d;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-diagonal-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTN2NmgtNiIgLz4KICA8cGF0aCBkPSJNNSAxMVY1aDYiIC8+CiAgPHBhdGggZD0ibTUgNSAxNCAxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-diagonal-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveDiagonal2: IconNode = [\n ['path', { d: 'M19 13v6h-6' }],\n ['path', { d: 'M5 11V5h6' }],\n ['path', { d: 'm5 5 14 14' }],\n];\n\nexport default MoveDiagonal2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-diagonal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTlINXYtNiIgLz4KICA8cGF0aCBkPSJNMTMgNWg2djYiIC8+CiAgPHBhdGggZD0iTTE5IDUgNSAxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-diagonal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveDiagonal: IconNode = [\n ['path', { d: 'M11 19H5v-6' }],\n ['path', { d: 'M13 5h6v6' }],\n ['path', { d: 'M19 5 5 19' }],\n];\n\nexport default MoveDiagonal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTlINVYxMyIgLz4KICA8cGF0aCBkPSJNMTkgNUw1IDE5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/move-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveDownLeft: IconNode = [\n ['path', { d: 'M11 19H5V13' }],\n ['path', { d: 'M19 5L5 19' }],\n];\n\nexport default MoveDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTNWMTlIMTMiIC8+CiAgPHBhdGggZD0iTTUgNUwxOSAxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveDownRight: IconNode = [\n ['path', { d: 'M19 13V19H13' }],\n ['path', { d: 'M5 5L19 19' }],\n];\n\nexport default MoveDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAxOEwxMiAyMkwxNiAxOCIgLz4KICA8cGF0aCBkPSJNMTIgMlYyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveDown: IconNode = [\n ['path', { d: 'M8 18L12 22L16 18' }],\n ['path', { d: 'M12 2V22' }],\n];\n\nexport default MoveDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggOCA0IDQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDIwIiAvPgogIDxwYXRoIGQ9Im02IDgtNCA0IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveHorizontal: IconNode = [\n ['path', { d: 'm18 8 4 4-4 4' }],\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'm6 8-4 4 4 4' }],\n];\n\nexport default MoveHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA4TDIgMTJMNiAxNiIgLz4KICA8cGF0aCBkPSJNMiAxMkgyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveLeft: IconNode = [\n ['path', { d: 'M6 8L2 12L6 16' }],\n ['path', { d: 'M2 12H22' }],\n];\n\nexport default MoveLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggOEwyMiAxMkwxOCAxNiIgLz4KICA8cGF0aCBkPSJNMiAxMkgyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveRight: IconNode = [\n ['path', { d: 'M18 8L22 12L18 16' }],\n ['path', { d: 'M2 12H22' }],\n];\n\nexport default MoveRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMVY1SDExIiAvPgogIDxwYXRoIGQ9Ik01IDVMMTkgMTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/move-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveUpLeft: IconNode = [\n ['path', { d: 'M5 11V5H11' }],\n ['path', { d: 'M5 5L19 19' }],\n];\n\nexport default MoveUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNUgxOVYxMSIgLz4KICA8cGF0aCBkPSJNMTkgNUw1IDE5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/move-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveUpRight: IconNode = [\n ['path', { d: 'M13 5H19V11' }],\n ['path', { d: 'M19 5L5 19' }],\n];\n\nexport default MoveUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCA2TDEyIDJMMTYgNiIgLz4KICA8cGF0aCBkPSJNMTIgMlYyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveUp: IconNode = [\n ['path', { d: 'M8 6L12 2L16 6' }],\n ['path', { d: 'M12 2V22' }],\n];\n\nexport default MoveUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KICA8cGF0aCBkPSJtOCAxOCA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Im04IDYgNC00IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/move-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst MoveVertical: IconNode = [\n ['path', { d: 'M12 2v20' }],\n ['path', { d: 'm8 18 4 4 4-4' }],\n ['path', { d: 'm8 6 4-4 4 4' }],\n];\n\nexport default MoveVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name move\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KICA8cGF0aCBkPSJtMTUgMTktMyAzLTMtMyIgLz4KICA8cGF0aCBkPSJtMTkgOSAzIDMtMyAzIiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDIwIiAvPgogIDxwYXRoIGQ9Im01IDktMyAzIDMgMyIgLz4KICA8cGF0aCBkPSJtOSA1IDMtMyAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/move\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Move: IconNode = [\n ['path', { d: 'M12 2v20' }],\n ['path', { d: 'm15 19-3 3-3-3' }],\n ['path', { d: 'm19 9 3 3-3 3' }],\n ['path', { d: 'M2 12h20' }],\n ['path', { d: 'm5 9-3 3 3 3' }],\n ['path', { d: 'm9 5 3-3 3 3' }],\n];\n\nexport default Move;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name music-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI4IiBjeT0iMTgiIHI9IjQiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjJsNyA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/music-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Music2: IconNode = [\n ['circle', { cx: '8', cy: '18', r: '4' }],\n ['path', { d: 'M12 18V2l7 4' }],\n];\n\nexport default Music2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name music-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE4IiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xNiAxOFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/music-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Music3: IconNode = [\n ['circle', { cx: '12', cy: '18', r: '4' }],\n ['path', { d: 'M16 18V2' }],\n];\n\nexport default Music3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name music-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxOFY1bDEyLTJ2MTMiIC8+CiAgPHBhdGggZD0ibTkgOSAxMi0yIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE2IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/music-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Music4: IconNode = [\n ['path', { d: 'M9 18V5l12-2v13' }],\n ['path', { d: 'm9 9 12-2' }],\n ['circle', { cx: '6', cy: '18', r: '3' }],\n ['circle', { cx: '18', cy: '16', r: '3' }],\n];\n\nexport default Music4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name music\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxOFY1bDEyLTJ2MTMiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTYiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/music\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Music: IconNode = [\n ['path', { d: 'M9 18V5l12-2v13' }],\n ['circle', { cx: '6', cy: '18', r: '3' }],\n ['circle', { cx: '18', cy: '16', r: '3' }],\n];\n\nexport default Music;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name navigation-2-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOS4zMSA5LjMxIDUgMjFsNy00IDcgNC0xLjE3LTMuMTciIC8+CiAgPHBhdGggZD0iTTE0LjUzIDguODggMTIgMmwtMS4xNyAzLjE3IiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIyIiB5Mj0iMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/navigation-2-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Navigation2Off: IconNode = [\n ['path', { d: 'M9.31 9.31 5 21l7-4 7 4-1.17-3.17' }],\n ['path', { d: 'M14.53 8.88 12 2l-1.17 3.17' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default Navigation2Off;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name navigation-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjEyIDIgMTkgMjEgMTIgMTcgNSAyMSAxMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/navigation-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Navigation2: IconNode = [['polygon', { points: '12 2 19 21 12 17 5 21 12 2' }]];\n\nexport default Navigation2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name navigation\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjMgMTEgMjIgMiAxMyAyMSAxMSAxMyAzIDExIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/navigation\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Navigation: IconNode = [['polygon', { points: '3 11 22 2 13 21 11 13 3 11' }]];\n\nexport default Navigation;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name navigation-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOC40MyA4LjQzIDMgMTFsOCAyIDIgOCAyLjU3LTUuNDMiIC8+CiAgPHBhdGggZD0iTTE3LjM5IDExLjczIDIyIDJsLTkuNzMgNC42MSIgLz4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/navigation-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NavigationOff: IconNode = [\n ['path', { d: 'M8.43 8.43 3 11l8 2 2 8 2.57-5.43' }],\n ['path', { d: 'M17.39 11.73 22 2l-9.73 4.61' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default NavigationOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name network\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNiIgeT0iMTYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjIiIHk9IjE2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgLz4KICA8cmVjdCB4PSI5IiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgLz4KICA8cGF0aCBkPSJNNSAxNnYtM2ExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2MyIgLz4KICA8cGF0aCBkPSJNMTIgMTJWOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/network\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Network: IconNode = [\n ['rect', { x: '16', y: '16', width: '6', height: '6', rx: '1' }],\n ['rect', { x: '2', y: '16', width: '6', height: '6', rx: '1' }],\n ['rect', { x: '9', y: '2', width: '6', height: '6', rx: '1' }],\n ['path', { d: 'M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3' }],\n ['path', { d: 'M12 12V8' }],\n];\n\nexport default Network;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name newspaper\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMThoLTUiIC8+CiAgPHBhdGggZD0iTTE4IDE0aC04IiAvPgogIDxwYXRoIGQ9Ik00IDIyaDE2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDEtNCAwdi05YTIgMiAwIDAgMSAyLTJoMiIgLz4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI0IiB4PSIxMCIgeT0iNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/newspaper\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Newspaper: IconNode = [\n ['path', { d: 'M15 18h-5' }],\n ['path', { d: 'M18 14h-8' }],\n [\n 'path',\n {\n d: 'M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2',\n },\n ],\n ['rect', { width: '8', height: '4', x: '10', y: '6', rx: '1' }],\n];\n\nexport default Newspaper;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name nfc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA4LjMyYTcuNDMgNy40MyAwIDAgMSAwIDcuMzYiIC8+CiAgPHBhdGggZD0iTTkuNDYgNi4yMWExMS43NiAxMS43NiAwIDAgMSAwIDExLjU4IiAvPgogIDxwYXRoIGQ9Ik0xMi45MSA0LjFhMTUuOTEgMTUuOTEgMCAwIDEgLjAxIDE1LjgiIC8+CiAgPHBhdGggZD0iTTE2LjM3IDJhMjAuMTYgMjAuMTYgMCAwIDEgMCAyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/nfc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Nfc: IconNode = [\n ['path', { d: 'M6 8.32a7.43 7.43 0 0 1 0 7.36' }],\n ['path', { d: 'M9.46 6.21a11.76 11.76 0 0 1 0 11.58' }],\n ['path', { d: 'M12.91 4.1a15.91 15.91 0 0 1 .01 15.8' }],\n ['path', { d: 'M16.37 2a20.16 20.16 0 0 1 0 20' }],\n];\n\nexport default Nfc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name non-binary\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxMCIgLz4KICA8cGF0aCBkPSJtOC41IDQgNyA0IiAvPgogIDxwYXRoIGQ9Im04LjUgOCA3LTQiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxNyIgcj0iNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/non-binary\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NonBinary: IconNode = [\n ['path', { d: 'M12 2v10' }],\n ['path', { d: 'm8.5 4 7 4' }],\n ['path', { d: 'm8.5 8 7-4' }],\n ['circle', { cx: '12', cy: '17', r: '5' }],\n];\n\nexport default NonBinary;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notebook-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTcuNCIgLz4KICA8cGF0aCBkPSJNMiA2aDQiIC8+CiAgPHBhdGggZD0iTTIgMTBoNCIgLz4KICA8cGF0aCBkPSJNMiAxNGg0IiAvPgogIDxwYXRoIGQ9Ik0yIDE4aDQiIC8+CiAgPHBhdGggZD0iTTIxLjM3OCA1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/notebook-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NotebookPen: IconNode = [\n ['path', { d: 'M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4' }],\n ['path', { d: 'M2 6h4' }],\n ['path', { d: 'M2 10h4' }],\n ['path', { d: 'M2 14h4' }],\n ['path', { d: 'M2 18h4' }],\n [\n 'path',\n {\n d: 'M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n];\n\nexport default NotebookPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notebook-tabs\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA2aDQiIC8+CiAgPHBhdGggZD0iTTIgMTBoNCIgLz4KICA8cGF0aCBkPSJNMiAxNGg0IiAvPgogIDxwYXRoIGQ9Ik0yIDE4aDQiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjIwIiB4PSI0IiB5PSIyIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTUgMnYyMCIgLz4KICA8cGF0aCBkPSJNMTUgN2g1IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMmg1IiAvPgogIDxwYXRoIGQ9Ik0xNSAxN2g1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/notebook-tabs\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NotebookTabs: IconNode = [\n ['path', { d: 'M2 6h4' }],\n ['path', { d: 'M2 10h4' }],\n ['path', { d: 'M2 14h4' }],\n ['path', { d: 'M2 18h4' }],\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2' }],\n ['path', { d: 'M15 2v20' }],\n ['path', { d: 'M15 7h5' }],\n ['path', { d: 'M15 12h5' }],\n ['path', { d: 'M15 17h5' }],\n];\n\nexport default NotebookTabs;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notebook-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA2aDQiIC8+CiAgPHBhdGggZD0iTTIgMTBoNCIgLz4KICA8cGF0aCBkPSJNMiAxNGg0IiAvPgogIDxwYXRoIGQ9Ik0yIDE4aDQiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjIwIiB4PSI0IiB5PSIyIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNOS41IDhoNSIgLz4KICA8cGF0aCBkPSJNOS41IDEySDE2IiAvPgogIDxwYXRoIGQ9Ik05LjUgMTZIMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/notebook-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NotebookText: IconNode = [\n ['path', { d: 'M2 6h4' }],\n ['path', { d: 'M2 10h4' }],\n ['path', { d: 'M2 14h4' }],\n ['path', { d: 'M2 18h4' }],\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2' }],\n ['path', { d: 'M9.5 8h5' }],\n ['path', { d: 'M9.5 12H16' }],\n ['path', { d: 'M9.5 16H14' }],\n];\n\nexport default NotebookText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notebook\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA2aDQiIC8+CiAgPHBhdGggZD0iTTIgMTBoNCIgLz4KICA8cGF0aCBkPSJNMiAxNGg0IiAvPgogIDxwYXRoIGQ9Ik0yIDE4aDQiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjIwIiB4PSI0IiB5PSIyIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTYgMnYyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/notebook\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Notebook: IconNode = [\n ['path', { d: 'M2 6h4' }],\n ['path', { d: 'M2 10h4' }],\n ['path', { d: 'M2 14h4' }],\n ['path', { d: 'M2 18h4' }],\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2' }],\n ['path', { d: 'M16 2v20' }],\n];\n\nexport default Notebook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notepad-text-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTEyIDJ2NCIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxwYXRoIGQ9Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxOHYyYTIgMiAwIDAgMS0yIDJoLTEiIC8+CiAgPHBhdGggZD0iTTEzIDIyaC0yIiAvPgogIDxwYXRoIGQ9Ik03IDIySDZhMiAyIDAgMCAxLTItMnYtMiIgLz4KICA8cGF0aCBkPSJNNCAxNHYtMiIgLz4KICA8cGF0aCBkPSJNNCA4VjZhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik04IDEwaDYiIC8+CiAgPHBhdGggZD0iTTggMTRoOCIgLz4KICA8cGF0aCBkPSJNOCAxOGg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/notepad-text-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NotepadTextDashed: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['path', { d: 'M16 4h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M20 12v2' }],\n ['path', { d: 'M20 18v2a2 2 0 0 1-2 2h-1' }],\n ['path', { d: 'M13 22h-2' }],\n ['path', { d: 'M7 22H6a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M4 14v-2' }],\n ['path', { d: 'M4 8V6a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M8 10h6' }],\n ['path', { d: 'M8 14h8' }],\n ['path', { d: 'M8 18h5' }],\n];\n\nexport default NotepadTextDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name notepad-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTEyIDJ2NCIgLz4KICA8cGF0aCBkPSJNMTYgMnY0IiAvPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxOCIgeD0iNCIgeT0iNCIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTggMTBoNiIgLz4KICA8cGF0aCBkPSJNOCAxNGg4IiAvPgogIDxwYXRoIGQ9Ik04IDE4aDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/notepad-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NotepadText: IconNode = [\n ['path', { d: 'M8 2v4' }],\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'M16 2v4' }],\n ['rect', { width: '16', height: '18', x: '4', y: '4', rx: '2' }],\n ['path', { d: 'M8 10h6' }],\n ['path', { d: 'M8 14h8' }],\n ['path', { d: 'M8 18h5' }],\n];\n\nexport default NotepadText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name nut\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNFYyIiAvPgogIDxwYXRoIGQ9Ik01IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MkE3LjAwMyA3LjAwMyAwIDAgMCAxOSAxNHYtNCIgLz4KICA8cGF0aCBkPSJNMTIgNEM4IDQgNC41IDYgNCA4Yy0uMjQzLjk3LS45MTkgMS45NTItMiAzIDEuMzEtLjA4MiAxLjk3Mi0uMjkgMy0xIC41NC45Mi45ODIgMS4zNTYgMiAyIDEuNDUyLS42NDcgMS45NTQtMS4wOTggMi41LTIgLjU5NS45OTUgMS4xNTEgMS40MjcgMi41IDIgMS4zMS0uNjIxIDEuODYyLTEuMDU4IDIuNS0yIC42MjkuOTc3IDEuMTYyIDEuNDIzIDIuNSAyIDEuMjA5LS41NDggMS42OC0uOTY3IDItMiAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/nut\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Nut: IconNode = [\n ['path', { d: 'M12 4V2' }],\n [\n 'path',\n {\n d: 'M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592A7.003 7.003 0 0 0 19 14v-4',\n },\n ],\n [\n 'path',\n {\n d: 'M12 4C8 4 4.5 6 4 8c-.243.97-.919 1.952-2 3 1.31-.082 1.972-.29 3-1 .54.92.982 1.356 2 2 1.452-.647 1.954-1.098 2.5-2 .595.995 1.151 1.427 2.5 2 1.31-.621 1.862-1.058 2.5-2 .629.977 1.162 1.423 2.5 2 1.209-.548 1.68-.967 2-2 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4Z',\n },\n ],\n];\n\nexport default Nut;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name nut-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNFYyIiAvPgogIDxwYXRoIGQ9Ik01IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MmE3LjAxIDcuMDEgMCAwIDAgNC4xMjUtMi45MzkiIC8+CiAgPHBhdGggZD0iTTE5IDEwdjMuMzQzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmMtMS4zNDktLjU3My0xLjkwNS0xLjAwNS0yLjUtMi0uNTQ2LjkwMi0xLjA0OCAxLjM1My0yLjUgMi0xLjAxOC0uNjQ0LTEuNDYtMS4wOC0yLTItMS4wMjguNzEtMS42OS45MTgtMyAxIDEuMDgxLTEuMDQ4IDEuNzU3LTIuMDMgMi0zIC4xOTQtLjc3Ni44NC0xLjU1MSAxLjc5LTIuMjFtMTEuNjU0IDUuOTk3Yy44ODctLjQ1NyAxLjI4LS44OTEgMS41NTYtMS43ODcgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTQtLjc0IDAtMS40NjEuMDY4LTIuMTUuMTkyIiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIyIiB5Mj0iMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/nut-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst NutOff: IconNode = [\n ['path', { d: 'M12 4V2' }],\n [\n 'path',\n {\n d: 'M5 10v4a7.004 7.004 0 0 0 5.277 6.787c.412.104.802.292 1.102.592L12 22l.621-.621c.3-.3.69-.488 1.102-.592a7.01 7.01 0 0 0 4.125-2.939',\n },\n ],\n ['path', { d: 'M19 10v3.343' }],\n [\n 'path',\n {\n d: 'M12 12c-1.349-.573-1.905-1.005-2.5-2-.546.902-1.048 1.353-2.5 2-1.018-.644-1.46-1.08-2-2-1.028.71-1.69.918-3 1 1.081-1.048 1.757-2.03 2-3 .194-.776.84-1.551 1.79-2.21m11.654 5.997c.887-.457 1.28-.891 1.556-1.787 1.032.916 1.683 1.157 3 1-1.297-1.036-1.758-2.03-2-3-.5-2-4-4-8-4-.74 0-1.461.068-2.15.192',\n },\n ],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default NutOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name octagon-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djQiIC8+CiAgPHBhdGggZD0iTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/octagon-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst OctagonAlert: IconNode = [\n ['path', { d: 'M12 16h.01' }],\n ['path', { d: 'M12 8v4' }],\n [\n 'path',\n {\n d: 'M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z',\n },\n ],\n];\n\nexport default OctagonAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name octagon-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/octagon-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst OctagonMinus: IconNode = [\n [\n 'path',\n {\n d: 'M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z',\n },\n ],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default OctagonMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name octagon-pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTVWOSIgLz4KICA8cGF0aCBkPSJNMTQgMTVWOSIgLz4KICA8cGF0aCBkPSJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/octagon-pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst OctagonPause: IconNode = [\n ['path', { d: 'M10 15V9' }],\n ['path', { d: 'M14 15V9' }],\n [\n 'path',\n {\n d: 'M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z',\n },\n ],\n];\n\nexport default OctagonPause;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name octagon-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0iTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6IiAvPgogIDxwYXRoIGQ9Im05IDkgNiA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/octagon-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst OctagonX: IconNode = [\n ['path', { d: 'm15 9-6 6' }],\n [\n 'path',\n {\n d: 'M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z',\n },\n ],\n ['path', { d: 'm9 9 6 6' }],\n];\n\nexport default OctagonX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name octagon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/octagon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Octagon: IconNode = [\n [\n 'path',\n {\n d: 'M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z',\n },\n ],\n];\n\nexport default Octagon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name omega\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAyMGg0LjVhLjUuNSAwIDAgMCAuNS0uNXYtLjI4MmEuNTIuNTIgMCAwIDAtLjI0Ny0uNDM3IDggOCAwIDEgMSA4LjQ5NC0uMDAxLjUyLjUyIDAgMCAwLS4yNDcuNDM4di4yODJhLjUuNSAwIDAgMCAuNS41SDIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/omega\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Omega: IconNode = [\n [\n 'path',\n {\n d: 'M3 20h4.5a.5.5 0 0 0 .5-.5v-.282a.52.52 0 0 0-.247-.437 8 8 0 1 1 8.494-.001.52.52 0 0 0-.247.438v.282a.5.5 0 0 0 .5.5H21',\n },\n ],\n];\n\nexport default Omega;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name orbit\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuMzQxIDYuNDg0QTEwIDEwIDAgMCAxIDEwLjI2NiAyMS44NSIgLz4KICA8cGF0aCBkPSJNMy42NTkgMTcuNTE2QTEwIDEwIDAgMCAxIDEzLjc0IDIuMTUyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSI1IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSIxOSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/orbit\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Orbit: IconNode = [\n ['path', { d: 'M20.341 6.484A10 10 0 0 1 10.266 21.85' }],\n ['path', { d: 'M3.659 17.516A10 10 0 0 1 13.74 2.152' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['circle', { cx: '19', cy: '5', r: '2' }],\n ['circle', { cx: '5', cy: '19', r: '2' }],\n];\n\nexport default Orbit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name option\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzaDZsNiAxOGg2IiAvPgogIDxwYXRoIGQ9Ik0xNCAzaDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/option\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Option: IconNode = [\n ['path', { d: 'M3 3h6l6 18h6' }],\n ['path', { d: 'M14 3h7' }],\n];\n\nexport default Option;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name origami\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJWNGExIDEgMCAwIDEgMS0xaDYuMjk3YTEgMSAwIDAgMSAuNjUxIDEuNzU5bC00LjY5NiA0LjAyNSIgLz4KICA8cGF0aCBkPSJtMTIgMjEtNy40MTQtNy40MTRBMiAyIDAgMCAxIDQgMTIuMTcyVjYuNDE1YTEuMDAyIDEuMDAyIDAgMCAxIDEuNzA3LS43MDdMMjAgMjAuMDA5IiAvPgogIDxwYXRoIGQ9Im0xMi4yMTQgMy4zODEgOC40MTQgMTQuOTY2YTEgMSAwIDAgMS0uMTY3IDEuMTk5bC0xLjE2OCAxLjE2M2ExIDEgMCAwIDEtLjcwNi4yOTFINi4zNTFhMSAxIDAgMCAxLS42MjUtLjIxOUwzLjI1IDE4LjhhMSAxIDAgMCAxIC42MzEtMS43ODFsNC4xNjUuMDI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/origami\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Origami: IconNode = [\n ['path', { d: 'M12 12V4a1 1 0 0 1 1-1h6.297a1 1 0 0 1 .651 1.759l-4.696 4.025' }],\n [\n 'path',\n { d: 'm12 21-7.414-7.414A2 2 0 0 1 4 12.172V6.415a1.002 1.002 0 0 1 1.707-.707L20 20.009' },\n ],\n [\n 'path',\n {\n d: 'm12.214 3.381 8.414 14.966a1 1 0 0 1-.167 1.199l-1.168 1.163a1 1 0 0 1-.706.291H6.351a1 1 0 0 1-.625-.219L3.25 18.8a1 1 0 0 1 .631-1.781l4.165.027',\n },\n ],\n];\n\nexport default Origami;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3Y2IiAvPgogIDxwYXRoIGQ9Ik0xNi43NiAzYTIgMiAwIDAgMSAxLjggMS4xbDIuMjMgNC40NzlhMiAyIDAgMCAxIC4yMS44OTFWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOS40NzJhMiAyIDAgMCAxIC4yMTEtLjg5NEw1LjQ1IDQuMUEyIDIgMCAwIDEgNy4yNCAzeiIgLz4KICA8cGF0aCBkPSJNMy4wNTQgOS4wMTNoMTcuODkzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/package-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Package2: IconNode = [\n ['path', { d: 'M12 3v6' }],\n [\n 'path',\n {\n d: 'M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z',\n },\n ],\n ['path', { d: 'M3.054 9.013h17.893' }],\n];\n\nexport default Package2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTYgMiAyIDQtNCIgLz4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/package-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackageCheck: IconNode = [\n ['path', { d: 'm16 16 2 2 4-4' }],\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12' }],\n];\n\nexport default PackageCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTZoNiIgLz4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/package-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackageMinus: IconNode = [\n ['path', { d: 'M16 16h6' }],\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12' }],\n];\n\nexport default PackageMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTkiIC8+CiAgPHBhdGggZD0iTTE1LjE3IDIuMjFhMS42NyAxLjY3IDAgMCAxIDEuNjMgMEwyMSA0LjU3YTEuOTMgMS45MyAwIDAgMSAwIDMuMzZMOC44MiAxNC43OWExLjY1NSAxLjY1NSAwIDAgMS0xLjY0IDBMMyAxMi40M2ExLjkzIDEuOTMgMCAwIDEgMC0zLjM2eiIgLz4KICA8cGF0aCBkPSJNMjAgMTN2My44N2EyLjA2IDIuMDYgMCAwIDEtMS4xMSAxLjgzbC02IDMuMDhhMS45MyAxLjkzIDAgMCAxLTEuNzggMGwtNi0zLjA4QTIuMDYgMi4wNiAwIDAgMSA0IDE2Ljg3VjEzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMi40M2ExLjkzIDEuOTMgMCAwIDAgMC0zLjM2TDguODMgMi4yYTEuNjQgMS42NCAwIDAgMC0xLjYzIDBMMyA0LjU3YTEuOTMgMS45MyAwIDAgMCAwIDMuMzZsMTIuMTggNi44NmExLjYzNiAxLjYzNiAwIDAgMCAxLjYzIDB6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/package-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackageOpen: IconNode = [\n ['path', { d: 'M12 22v-9' }],\n [\n 'path',\n {\n d: 'M15.17 2.21a1.67 1.67 0 0 1 1.63 0L21 4.57a1.93 1.93 0 0 1 0 3.36L8.82 14.79a1.655 1.655 0 0 1-1.64 0L3 12.43a1.93 1.93 0 0 1 0-3.36z',\n },\n ],\n [\n 'path',\n {\n d: 'M20 13v3.87a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13',\n },\n ],\n [\n 'path',\n {\n d: 'M21 12.43a1.93 1.93 0 0 0 0-3.36L8.83 2.2a1.64 1.64 0 0 0-1.63 0L3 4.57a1.93 1.93 0 0 0 0 3.36l12.18 6.86a1.636 1.636 0 0 0 1.63 0z',\n },\n ],\n];\n\nexport default PackageOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTZoNiIgLz4KICA8cGF0aCBkPSJNMTkgMTN2NiIgLz4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/package-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackagePlus: IconNode = [\n ['path', { d: 'M16 16h6' }],\n ['path', { d: 'M19 13v6' }],\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12' }],\n];\n\nexport default PackagePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KICA8Y2lyY2xlIGN4PSIxOC41IiBjeT0iMTUuNSIgcj0iMi41IiAvPgogIDxwYXRoIGQ9Ik0yMC4yNyAxNy4yNyAyMiAxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/package-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackageSearch: IconNode = [\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12' }],\n ['circle', { cx: '18.5', cy: '15.5', r: '2.5' }],\n ['path', { d: 'M20.27 17.27 22 19' }],\n];\n\nexport default PackageSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KICA8cGF0aCBkPSJtMTcgMTMgNSA1bS01IDAgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/package-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PackageX: IconNode = [\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12' }],\n ['path', { d: 'm17 13 5 5m-5 0 5-5' }],\n];\n\nexport default PackageX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name package\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMjEuNzNhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M3oiIC8+CiAgPHBhdGggZD0iTTEyIDIyVjEyIiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxwYXRoIGQ9Im03LjUgNC4yNyA5IDUuMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/package\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Package: IconNode = [\n [\n 'path',\n {\n d: 'M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z',\n },\n ],\n ['path', { d: 'M12 22V12' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7' }],\n ['path', { d: 'm7.5 4.27 9 5.15' }],\n];\n\nexport default Package;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paint-roller\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeD0iMiIgeT0iMiIgcng9IjIiIC8+CiAgPHBhdGggZD0iTTEwIDE2di0yYTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtMiIgLz4KICA8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI2IiB4PSI4IiB5PSIxNiIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paint-roller\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PaintRoller: IconNode = [\n ['rect', { width: '16', height: '6', x: '2', y: '2', rx: '2' }],\n ['path', { d: 'M10 16v-2a2 2 0 0 1 2-2h8a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2' }],\n ['rect', { width: '4', height: '6', x: '8', y: '16', rx: '1' }],\n];\n\nexport default PaintRoller;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paint-bucket\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNyA2IDIiIC8+CiAgPHBhdGggZD0iTTE4Ljk5MiAxMkgyLjA0MSIgLz4KICA8cGF0aCBkPSJNMjEuMTQ1IDE4LjM4QTMuMzQgMy4zNCAwIDAgMSAyMCAxNi41YTMuMyAzLjMgMCAwIDEtMS4xNDUgMS44OGMtLjU3NS40Ni0uODU1IDEuMDItLjg1NSAxLjU5NUEyIDIgMCAwIDAgMjAgMjJhMiAyIDAgMCAwIDItMi4wMjVjMC0uNTgtLjI4NS0xLjEzLS44NTUtMS41OTUiIC8+CiAgPHBhdGggZD0ibTguNSA0LjUgMi4xNDgtMi4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMS43MDQgMGw3LjI5NiA3LjI5NmExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC03LjU5MiA3LjU5MmEzLjYxNSAzLjYxNSAwIDAgMS01LjExMiAwbC0zLjg4OC0zLjg4OGEzLjYxNSAzLjYxNSAwIDAgMSAwLTUuMTEyTDUuNjcgNy4zMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/paint-bucket\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PaintBucket: IconNode = [\n ['path', { d: 'M11 7 6 2' }],\n ['path', { d: 'M18.992 12H2.041' }],\n [\n 'path',\n {\n d: 'M21.145 18.38A3.34 3.34 0 0 1 20 16.5a3.3 3.3 0 0 1-1.145 1.88c-.575.46-.855 1.02-.855 1.595A2 2 0 0 0 20 22a2 2 0 0 0 2-2.025c0-.58-.285-1.13-.855-1.595',\n },\n ],\n [\n 'path',\n {\n d: 'm8.5 4.5 2.148-2.148a1.205 1.205 0 0 1 1.704 0l7.296 7.296a1.205 1.205 0 0 1 0 1.704l-7.592 7.592a3.615 3.615 0 0 1-5.112 0l-3.888-3.888a3.615 3.615 0 0 1 0-5.112L5.67 7.33',\n },\n ],\n];\n\nexport default PaintBucket;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paintbrush-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNCAydjQiIC8+CiAgPHBhdGggZD0iTTE3IDJhMSAxIDAgMCAxIDEgMXY5SDZWM2ExIDEgMCAwIDEgMS0xeiIgLz4KICA8cGF0aCBkPSJNNiAxMmExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMCAwIDIgMmgyYTEgMSAwIDAgMSAxIDF2Mi45YTIgMiAwIDEgMCA0IDBWMTdhMSAxIDAgMCAxIDEtMWgyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/paintbrush-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PaintbrushVertical: IconNode = [\n ['path', { d: 'M10 2v2' }],\n ['path', { d: 'M14 2v4' }],\n ['path', { d: 'M17 2a1 1 0 0 1 1 1v9H6V3a1 1 0 0 1 1-1z' }],\n [\n 'path',\n {\n d: 'M6 12a1 1 0 0 0-1 1v1a2 2 0 0 0 2 2h2a1 1 0 0 1 1 1v2.9a2 2 0 1 0 4 0V17a1 1 0 0 1 1-1h2a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1',\n },\n ],\n];\n\nexport default PaintbrushVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paintbrush\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuNjIyIDE3Ljg5Ny0xMC42OC0yLjkxMyIgLz4KICA8cGF0aCBkPSJNMTguMzc2IDIuNjIyYTEgMSAwIDEgMSAzLjAwMiAzLjAwMkwxNy4zNiA5LjY0M2EuNS41IDAgMCAwIDAgLjcwN2wuOTQ0Ljk0NGEyLjQxIDIuNDEgMCAwIDEgMCAzLjQwOGwtLjk0NC45NDRhLjUuNSAwIDAgMS0uNzA3IDBMOC4zNTQgNy4zNDhhLjUuNSAwIDAgMSAwLS43MDdsLjk0NC0uOTQ0YTIuNDEgMi40MSAwIDAgMSAzLjQwOCAwbC45NDQuOTQ0YS41LjUgMCAwIDAgLjcwNyAweiIgLz4KICA8cGF0aCBkPSJNOSA4Yy0xLjgwNCAyLjcxLTMuOTcgMy40Ni02LjU4MyAzLjk0OGEuNTA3LjUwNyAwIDAgMC0uMzAyLjgxOWw3LjMyIDguODgzYTEgMSAwIDAgMCAxLjE4NS4yMDRDMTIuNzM1IDIwLjQwNSAxNiAxNi43OTIgMTYgMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paintbrush\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Paintbrush: IconNode = [\n ['path', { d: 'm14.622 17.897-10.68-2.913' }],\n [\n 'path',\n {\n d: 'M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15',\n },\n ],\n];\n\nexport default Paintbrush;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name palette\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJhMSAxIDAgMCAxIDAtMjAgMTAgOSAwIDAgMSAxMCA5IDUgNSAwIDAgMS01IDVoLTIuMjVhMS43NSAxLjc1IDAgMCAwLTEuNCAyLjhsLjMuNGExLjc1IDEuNzUgMCAwIDEtMS40IDIuOHoiIC8+CiAgPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjYuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTAuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8Y2lyY2xlIGN4PSI2LjUiIGN5PSIxMi41IiByPSIuNSIgZmlsbD0iY3VycmVudENvbG9yIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/palette\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Palette: IconNode = [\n [\n 'path',\n {\n d: 'M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z',\n },\n ],\n ['circle', { cx: '13.5', cy: '6.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '17.5', cy: '10.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '6.5', cy: '12.5', r: '.5', fill: 'currentColor' }],\n ['circle', { cx: '8.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n];\n\nexport default Palette;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panda\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMjUgMTcuMjVoMS41TDEyIDE4eiIgLz4KICA8cGF0aCBkPSJtMTUgMTIgMiAyIiAvPgogIDxwYXRoIGQ9Ik0xOCA2LjVhLjUuNSAwIDAgMC0uNS0uNSIgLz4KICA8cGF0aCBkPSJNMjAuNjkgOS42N2E0LjUgNC41IDAgMSAwLTcuMDQtNS41IDguMzUgOC4zNSAwIDAgMC0zLjMgMCA0LjUgNC41IDAgMSAwLTcuMDQgNS41QzIuNDkgMTEuMiAyIDEyLjg4IDIgMTQuNSAyIDE5LjQ3IDYuNDggMjIgMTIgMjJzMTAtMi41MyAxMC03LjVjMC0xLjYyLS40OC0zLjMtMS4zLTQuODMiIC8+CiAgPHBhdGggZD0iTTYgNi41YS40OTUuNDk1IDAgMCAxIC41LS41IiAvPgogIDxwYXRoIGQ9Im05IDEyLTIgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panda\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Panda: IconNode = [\n ['path', { d: 'M11.25 17.25h1.5L12 18z' }],\n ['path', { d: 'm15 12 2 2' }],\n ['path', { d: 'M18 6.5a.5.5 0 0 0-.5-.5' }],\n [\n 'path',\n {\n d: 'M20.69 9.67a4.5 4.5 0 1 0-7.04-5.5 8.35 8.35 0 0 0-3.3 0 4.5 4.5 0 1 0-7.04 5.5C2.49 11.2 2 12.88 2 14.5 2 19.47 6.48 22 12 22s10-2.53 10-7.5c0-1.62-.48-3.3-1.3-4.83',\n },\n ],\n ['path', { d: 'M6 6.5a.495.495 0 0 1 .5-.5' }],\n ['path', { d: 'm9 12-2 2' }],\n];\n\nexport default Panda;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-bottom-close\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDE4IiAvPgogIDxwYXRoIGQ9Im0xNSA4LTMgMy0zLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-bottom-close\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelBottomClose: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'm15 8-3 3-3-3' }],\n];\n\nexport default PanelBottomClose;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-bottom-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNCAxNWgxIiAvPgogIDxwYXRoIGQ9Ik0xOSAxNWgyIiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDIiIC8+CiAgPHBhdGggZD0iTTkgMTVoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-bottom-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelBottomDashed: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M14 15h1' }],\n ['path', { d: 'M19 15h2' }],\n ['path', { d: 'M3 15h2' }],\n ['path', { d: 'M9 15h1' }],\n];\n\nexport default PanelBottomDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-bottom-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDE4IiAvPgogIDxwYXRoIGQ9Im05IDEwIDMtMyAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-bottom-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelBottomOpen: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'm9 10 3-3 3 3' }],\n];\n\nexport default PanelBottomOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-bottom\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panel-bottom\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelBottom: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 15h18' }],\n];\n\nexport default PanelBottom;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-left-close\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+CiAgPHBhdGggZD0ibTE2IDE1LTMtMyAzLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-left-close\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelLeftClose: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 3v18' }],\n ['path', { d: 'm16 15-3-3 3-3' }],\n];\n\nexport default PanelLeftClose;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-left-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDE0djEiIC8+CiAgPHBhdGggZD0iTTkgMTl2MiIgLz4KICA8cGF0aCBkPSJNOSAzdjIiIC8+CiAgPHBhdGggZD0iTTkgOXYxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panel-left-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelLeftDashed: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 14v1' }],\n ['path', { d: 'M9 19v2' }],\n ['path', { d: 'M9 3v2' }],\n ['path', { d: 'M9 9v1' }],\n];\n\nexport default PanelLeftDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-left-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+CiAgPHBhdGggZD0ibTE0IDkgMyAzLTMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-left-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelLeftOpen: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 3v18' }],\n ['path', { d: 'm14 9 3 3-3 3' }],\n];\n\nexport default PanelLeftOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-left-right-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTBWOSIgLz4KICA8cGF0aCBkPSJNMTUgMTV2LTEiIC8+CiAgPHBhdGggZD0iTTE1IDIxdi0yIiAvPgogIDxwYXRoIGQ9Ik0xNSA1VjMiIC8+CiAgPHBhdGggZD0iTTkgMTBWOSIgLz4KICA8cGF0aCBkPSJNOSAxNXYtMSIgLz4KICA8cGF0aCBkPSJNOSAyMXYtMiIgLz4KICA8cGF0aCBkPSJNOSA1VjMiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-left-right-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelLeftRightDashed: IconNode = [\n ['path', { d: 'M15 10V9' }],\n ['path', { d: 'M15 15v-1' }],\n ['path', { d: 'M15 21v-2' }],\n ['path', { d: 'M15 5V3' }],\n ['path', { d: 'M9 10V9' }],\n ['path', { d: 'M9 15v-1' }],\n ['path', { d: 'M9 21v-2' }],\n ['path', { d: 'M9 5V3' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default PanelLeftRightDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 3v18' }],\n];\n\nexport default PanelLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-right-close\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAzdjE4IiAvPgogIDxwYXRoIGQ9Im04IDkgMyAzLTMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-right-close\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelRightClose: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M15 3v18' }],\n ['path', { d: 'm8 9 3 3-3 3' }],\n];\n\nexport default PanelRightClose;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-right-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNHYxIiAvPgogIDxwYXRoIGQ9Ik0xNSAxOXYyIiAvPgogIDxwYXRoIGQ9Ik0xNSAzdjIiIC8+CiAgPHBhdGggZD0iTTE1IDl2MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-right-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelRightDashed: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M15 14v1' }],\n ['path', { d: 'M15 19v2' }],\n ['path', { d: 'M15 3v2' }],\n ['path', { d: 'M15 9v1' }],\n];\n\nexport default PanelRightDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-right-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAzdjE4IiAvPgogIDxwYXRoIGQ9Im0xMCAxNS0zLTMgMy0zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panel-right-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelRightOpen: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M15 3v18' }],\n ['path', { d: 'm10 15-3-3 3-3' }],\n];\n\nexport default PanelRightOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAzdjE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panel-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelRight: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M15 3v18' }],\n];\n\nexport default PanelRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-top-bottom-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTVoMSIgLz4KICA8cGF0aCBkPSJNMTQgOWgxIiAvPgogIDxwYXRoIGQ9Ik0xOSAxNWgyIiAvPgogIDxwYXRoIGQ9Ik0xOSA5aDIiIC8+CiAgPHBhdGggZD0iTTMgMTVoMiIgLz4KICA8cGF0aCBkPSJNMyA5aDIiIC8+CiAgPHBhdGggZD0iTTkgMTVoMSIgLz4KICA8cGF0aCBkPSJNOSA5aDEiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-top-bottom-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelTopBottomDashed: IconNode = [\n ['path', { d: 'M14 15h1' }],\n ['path', { d: 'M14 9h1' }],\n ['path', { d: 'M19 15h2' }],\n ['path', { d: 'M19 9h2' }],\n ['path', { d: 'M3 15h2' }],\n ['path', { d: 'M3 9h2' }],\n ['path', { d: 'M9 15h1' }],\n ['path', { d: 'M9 9h1' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default PanelTopBottomDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-top-close\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0ibTkgMTYgMy0zIDMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panel-top-close\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelTopClose: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'm9 16 3-3 3 3' }],\n];\n\nexport default PanelTopClose;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-top-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNCA5aDEiIC8+CiAgPHBhdGggZD0iTTE5IDloMiIgLz4KICA8cGF0aCBkPSJNMyA5aDIiIC8+CiAgPHBhdGggZD0iTTkgOWgxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panel-top-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelTopDashed: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M14 9h1' }],\n ['path', { d: 'M19 9h2' }],\n ['path', { d: 'M3 9h2' }],\n ['path', { d: 'M9 9h1' }],\n];\n\nexport default PanelTopDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-top-open\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0ibTE1IDE0LTMgMy0zLTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-top-open\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelTopOpen: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'm15 14-3 3-3-3' }],\n];\n\nexport default PanelTopOpen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panel-top\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panel-top\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelTop: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n];\n\nexport default PanelTop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panels-left-bottom\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDN2MTgiIC8+CiAgPHBhdGggZD0iTTkgMTVoMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/panels-left-bottom\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelsLeftBottom: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 3v18' }],\n ['path', { d: 'M9 15h12' }],\n];\n\nexport default PanelsLeftBottom;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panels-right-bottom\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDE1aDEyIiAvPgogIDxwYXRoIGQ9Ik0xNSAzdjE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/panels-right-bottom\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelsRightBottom: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 15h12' }],\n ['path', { d: 'M15 3v18' }],\n];\n\nexport default PanelsRightBottom;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name panels-top-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0iTTkgMjFWOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/panels-top-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PanelsTopLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'M9 21V9' }],\n];\n\nexport default PanelsTopLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paperclip\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgNi04LjQxNCA4LjU4NmEyIDIgMCAwIDAgMi44MjkgMi44MjlsOC40MTQtOC41ODZhNCA0IDAgMSAwLTUuNjU3LTUuNjU3bC04LjM3OSA4LjU1MWE2IDYgMCAxIDAgOC40ODUgOC40ODVsOC4zNzktOC41NTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paperclip\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Paperclip: IconNode = [\n [\n 'path',\n {\n d: 'm16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551',\n },\n ],\n];\n\nexport default Paperclip;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name parentheses\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyMXMtNC0zLTQtOSA0LTkgNC05IiAvPgogIDxwYXRoIGQ9Ik0xNiAzczQgMyA0IDktNCA5LTQgOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/parentheses\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Parentheses: IconNode = [\n ['path', { d: 'M8 21s-4-3-4-9 4-9 4-9' }],\n ['path', { d: 'M16 3s4 3 4 9-4 9-4 9' }],\n];\n\nexport default Parentheses;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name parking-meter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTVoMiIgLz4KICA8cGF0aCBkPSJNMTIgMTJ2MyIgLz4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KICA8cGF0aCBkPSJNMTUuMjgyIDE5YTEgMSAwIDAgMCAuOTQ4LS42OGwyLjM3LTYuOTg4YTcgNyAwIDEgMC0xMy4yIDBsMi4zNyA2Ljk4OGExIDEgMCAwIDAgLjk0OC42OHoiIC8+CiAgPHBhdGggZD0iTTkgOWEzIDMgMCAxIDEgNiAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/parking-meter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ParkingMeter: IconNode = [\n ['path', { d: 'M11 15h2' }],\n ['path', { d: 'M12 12v3' }],\n ['path', { d: 'M12 19v3' }],\n [\n 'path',\n {\n d: 'M15.282 19a1 1 0 0 0 .948-.68l2.37-6.988a7 7 0 1 0-13.2 0l2.37 6.988a1 1 0 0 0 .948.68z',\n },\n ],\n ['path', { d: 'M9 9a3 3 0 1 1 6 0' }],\n];\n\nexport default ParkingMeter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name party-popper\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNS44IDExLjMgMiAyMmwxMC43LTMuNzkiIC8+CiAgPHBhdGggZD0iTTQgM2guMDEiIC8+CiAgPHBhdGggZD0iTTIyIDhoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNSAyaC4wMSIgLz4KICA8cGF0aCBkPSJNMjIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Im0yMiAyLTIuMjQuNzVhMi45IDIuOSAwIDAgMC0xLjk2IDMuMTJjLjEuODYtLjU3IDEuNjMtMS40NSAxLjYzaC0uMzhjLS44NiAwLTEuNi42LTEuNzYgMS40NEwxNCAxMCIgLz4KICA8cGF0aCBkPSJtMjIgMTMtLjgyLS4zM2MtLjg2LS4zNC0xLjgyLjItMS45OCAxLjExYy0uMTEuNy0uNzIgMS4yMi0xLjQzIDEuMjJIMTciIC8+CiAgPHBhdGggZD0ibTExIDIgLjMzLjgyYy4zNC44Ni0uMiAxLjgyLTEuMTEgMS45OEM5LjUyIDQuOSA5IDUuNTIgOSA2LjIzVjciIC8+CiAgPHBhdGggZD0iTTExIDEzYzEuOTMgMS45MyAyLjgzIDQuMTcgMiA1LS44My44My0zLjA3LS4wNy01LTItMS45My0xLjkzLTIuODMtNC4xNy0yLTUgLjgzLS44MyAzLjA3LjA3IDUgMloiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/party-popper\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PartyPopper: IconNode = [\n ['path', { d: 'M5.8 11.3 2 22l10.7-3.79' }],\n ['path', { d: 'M4 3h.01' }],\n ['path', { d: 'M22 8h.01' }],\n ['path', { d: 'M15 2h.01' }],\n ['path', { d: 'M22 20h.01' }],\n [\n 'path',\n {\n d: 'm22 2-2.24.75a2.9 2.9 0 0 0-1.96 3.12c.1.86-.57 1.63-1.45 1.63h-.38c-.86 0-1.6.6-1.76 1.44L14 10',\n },\n ],\n ['path', { d: 'm22 13-.82-.33c-.86-.34-1.82.2-1.98 1.11c-.11.7-.72 1.22-1.43 1.22H17' }],\n ['path', { d: 'm11 2 .33.82c.34.86-.2 1.82-1.11 1.98C9.52 4.9 9 5.52 9 6.23V7' }],\n [\n 'path',\n {\n d: 'M11 13c1.93 1.93 2.83 4.17 2 5-.83.83-3.07-.07-5-2-1.93-1.93-2.83-4.17-2-5 .83-.83 3.07.07 5 2Z',\n },\n ],\n];\n\nexport default PartyPopper;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNCIgeT0iMyIgd2lkdGg9IjUiIGhlaWdodD0iMTgiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjUiIHk9IjMiIHdpZHRoPSI1IiBoZWlnaHQ9IjE4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pause: IconNode = [\n ['rect', { x: '14', y: '3', width: '5', height: '18', rx: '1' }],\n ['rect', { x: '5', y: '3', width: '5', height: '18', rx: '1' }],\n];\n\nexport default Pause;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name paw-print\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjQiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSI4IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMTYiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTkgMTBhNSA1IDAgMCAxIDUgNXYzLjVhMy41IDMuNSAwIDAgMS02Ljg0IDEuMDQ1UTYuNTIgMTcuNDggNC40NiAxNi44NEEzLjUgMy41IDAgMCAxIDUuNSAxMFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paw-print\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PawPrint: IconNode = [\n ['circle', { cx: '11', cy: '4', r: '2' }],\n ['circle', { cx: '18', cy: '8', r: '2' }],\n ['circle', { cx: '20', cy: '16', r: '2' }],\n [\n 'path',\n {\n d: 'M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z',\n },\n ],\n];\n\nexport default PawPrint;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pc-case\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHg9IjUiIHk9IjIiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNGguMDEiIC8+CiAgPHBhdGggZD0iTTkgNmg2IiAvPgogIDxwYXRoIGQ9Ik05IDEwaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pc-case\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PcCase: IconNode = [\n ['rect', { width: '14', height: '20', x: '5', y: '2', rx: '2' }],\n ['path', { d: 'M15 14h.01' }],\n ['path', { d: 'M9 6h6' }],\n ['path', { d: 'M9 10h6' }],\n];\n\nexport default PcCase;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pen-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjFoOCIgLz4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pen-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PenLine: IconNode = [\n ['path', { d: 'M13 21h8' }],\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n },\n ],\n];\n\nexport default PenLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pen-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTAtNi4xNTcgNi4xNjJhMiAyIDAgMCAwLS41LjgzM2wtMS4zMjIgNC4zNmEuNS41IDAgMCAwIC42MjIuNjI0bDQuMzU4LTEuMzIzYTIgMiAwIDAgMCAuODMtLjVMMTQgMTMuOTgyIiAvPgogIDxwYXRoIGQ9Im0xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pen-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PenOff: IconNode = [\n [\n 'path',\n {\n d: 'm10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982',\n },\n ],\n ['path', { d: 'm12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default PenOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pen-tool\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNzA3IDIxLjI5M2ExIDEgMCAwIDEtMS40MTQgMGwtMS41ODYtMS41ODZhMSAxIDAgMCAxIDAtMS40MTRsNS41ODYtNS41ODZhMSAxIDAgMCAxIDEuNDE0IDBsMS41ODYgMS41ODZhMSAxIDAgMCAxIDAgMS40MTR6IiAvPgogIDxwYXRoIGQ9Im0xOCAxMy0xLjM3NS02Ljg3NGExIDEgMCAwIDAtLjc0Ni0uNzc2TDMuMjM1IDIuMDI4YTEgMSAwIDAgMC0xLjIwNyAxLjIwN0w1LjM1IDE1Ljg3OWExIDEgMCAwIDAgLjc3Ni43NDZMMTMgMTgiIC8+CiAgPHBhdGggZD0ibTIuMyAyLjMgNy4yODYgNy4yODYiIC8+CiAgPGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pen-tool\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PenTool: IconNode = [\n [\n 'path',\n {\n d: 'M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z',\n },\n ],\n [\n 'path',\n {\n d: 'm18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18',\n },\n ],\n ['path', { d: 'm2.3 2.3 7.286 7.286' }],\n ['circle', { cx: '11', cy: '11', r: '2' }],\n];\n\nexport default PenTool;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pen: IconNode = [\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n },\n ],\n];\n\nexport default Pen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pencil-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjFoOCIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+CiAgPHBhdGggZD0iTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pencil-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PencilLine: IconNode = [\n ['path', { d: 'M13 21h8' }],\n ['path', { d: 'm15 5 4 4' }],\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n },\n ],\n];\n\nexport default PencilLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pencil-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTAtNi4xNTcgNi4xNjJhMiAyIDAgMCAwLS41LjgzM2wtMS4zMjIgNC4zNmEuNS41IDAgMCAwIC42MjIuNjI0bDQuMzU4LTEuMzIzYTIgMiAwIDAgMCAuODMtLjVMMTQgMTMuOTgyIiAvPgogIDxwYXRoIGQ9Im0xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MyIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pencil-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PencilOff: IconNode = [\n [\n 'path',\n {\n d: 'm10 10-6.157 6.162a2 2 0 0 0-.5.833l-1.322 4.36a.5.5 0 0 0 .622.624l4.358-1.323a2 2 0 0 0 .83-.5L14 13.982',\n },\n ],\n ['path', { d: 'm12.829 7.172 4.359-4.346a1 1 0 1 1 3.986 3.986l-4.353 4.353' }],\n ['path', { d: 'm15 5 4 4' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default PencilOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pencil-ruler\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNyA4LjcgMi43YTIuNDEgMi40MSAwIDAgMC0zLjQgMEwyLjcgNS4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNEw3IDEzIiAvPgogIDxwYXRoIGQ9Im04IDYgMi0yIiAvPgogIDxwYXRoIGQ9Im0xOCAxNiAyLTIiIC8+CiAgPHBhdGggZD0ibTE3IDExIDQuMyA0LjNjLjk0Ljk0Ljk0IDIuNDYgMCAzLjRsLTIuNiAyLjZjLS45NC45NC0yLjQ2Ljk0LTMuNCAwTDExIDE3IiAvPgogIDxwYXRoIGQ9Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6IiAvPgogIDxwYXRoIGQ9Im0xNSA1IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pencil-ruler\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PencilRuler: IconNode = [\n ['path', { d: 'M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13' }],\n ['path', { d: 'm8 6 2-2' }],\n ['path', { d: 'm18 16 2-2' }],\n ['path', { d: 'm17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17' }],\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n },\n ],\n ['path', { d: 'm15 5 4 4' }],\n];\n\nexport default PencilRuler;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pentagon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuODMgMi4zOGEyIDIgMCAwIDEgMi4zNCAwbDggNS43NGEyIDIgMCAwIDEgLjczIDIuMjVsLTMuMDQgOS4yNmEyIDIgMCAwIDEtMS45IDEuMzdINy4wNGEyIDIgMCAwIDEtMS45LTEuMzdMMi4xIDEwLjM3YTIgMiAwIDAgMSAuNzMtMi4yNXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pentagon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pentagon: IconNode = [\n [\n 'path',\n {\n d: 'M10.83 2.38a2 2 0 0 1 2.34 0l8 5.74a2 2 0 0 1 .73 2.25l-3.04 9.26a2 2 0 0 1-1.9 1.37H7.04a2 2 0 0 1-1.9-1.37L2.1 10.37a2 2 0 0 1 .73-2.25z',\n },\n ],\n];\n\nexport default Pentagon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pencil\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiIgLz4KICA8cGF0aCBkPSJtMTUgNSA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pencil: IconNode = [\n [\n 'path',\n {\n d: 'M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z',\n },\n ],\n ['path', { d: 'm15 5 4 4' }],\n];\n\nexport default Pencil;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTkiIHgyPSI1IiB5MT0iNSIgeTI9IjE5IiAvPgogIDxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iMi41IiAvPgogIDxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNy41IiByPSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Percent: IconNode = [\n ['line', { x1: '19', x2: '5', y1: '5', y2: '19' }],\n ['circle', { cx: '6.5', cy: '6.5', r: '2.5' }],\n ['circle', { cx: '17.5', cy: '17.5', r: '2.5' }],\n];\n\nexport default Percent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name person-standing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEiIC8+CiAgPHBhdGggZD0ibTkgMjAgMy02IDMgNiIgLz4KICA8cGF0aCBkPSJtNiA4IDYgMiA2LTIiIC8+CiAgPHBhdGggZD0iTTEyIDEwdjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/person-standing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PersonStanding: IconNode = [\n ['circle', { cx: '12', cy: '5', r: '1' }],\n ['path', { d: 'm9 20 3-6 3 6' }],\n ['path', { d: 'm6 8 6 2 6-2' }],\n ['path', { d: 'M12 10v4' }],\n];\n\nexport default PersonStanding;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name philippine-peso\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTFINCIgLz4KICA8cGF0aCBkPSJNMjAgN0g0IiAvPgogIDxwYXRoIGQ9Ik03IDIxVjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAwIDEySDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/philippine-peso\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhilippinePeso: IconNode = [\n ['path', { d: 'M20 11H4' }],\n ['path', { d: 'M20 7H4' }],\n ['path', { d: 'M7 21V4a1 1 0 0 1 1-1h4a1 1 0 0 1 0 12H7' }],\n];\n\nexport default PhilippinePeso;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-call\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMmE5IDkgMCAwIDEgOSA5IiAvPgogIDxwYXRoIGQ9Ik0xMyA2YTUgNSAwIDAgMSA1IDUiIC8+CiAgPHBhdGggZD0iTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/phone-call\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneCall: IconNode = [\n ['path', { d: 'M13 2a9 9 0 0 1 9 9' }],\n ['path', { d: 'M13 6a5 5 0 0 1 5 5' }],\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default PhoneCall;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-forwarded\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNmg4IiAvPgogIDxwYXRoIGQ9Im0xOCAyIDQgNC00IDQiIC8+CiAgPHBhdGggZD0iTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/phone-forwarded\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneForwarded: IconNode = [\n ['path', { d: 'M14 6h8' }],\n ['path', { d: 'm18 2 4 4-4 4' }],\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default PhoneForwarded;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-incoming\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMnY2aDYiIC8+CiAgPHBhdGggZD0ibTIyIDItNiA2IiAvPgogIDxwYXRoIGQ9Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/phone-incoming\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneIncoming: IconNode = [\n ['path', { d: 'M16 2v6h6' }],\n ['path', { d: 'm22 2-6 6' }],\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default PhoneIncoming;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-missed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMiA2IDYiIC8+CiAgPHBhdGggZD0ibTIyIDItNiA2IiAvPgogIDxwYXRoIGQ9Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/phone-missed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneMissed: IconNode = [\n ['path', { d: 'm16 2 6 6' }],\n ['path', { d: 'm22 2-6 6' }],\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default PhoneMissed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMSAxMy45YTE0IDE0IDAgMCAwIDMuNzMyIDIuNjY4IDEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMiAxOCAxOCAwIDAgMS0xMi43MjgtNS4yNzIiIC8+CiAgPHBhdGggZD0iTTIyIDIgMiAyMiIgLz4KICA8cGF0aCBkPSJNNC43NiAxMy41ODJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgLjI0NC40NzMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/phone-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneOff: IconNode = [\n [\n 'path',\n {\n d: 'M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272',\n },\n ],\n ['path', { d: 'M22 2 2 22' }],\n [\n 'path',\n {\n d: 'M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473',\n },\n ],\n];\n\nexport default PhoneOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone-outgoing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgOCA2LTYiIC8+CiAgPHBhdGggZD0iTTIyIDhWMmgtNiIgLz4KICA8cGF0aCBkPSJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/phone-outgoing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PhoneOutgoing: IconNode = [\n ['path', { d: 'm16 8 6-6' }],\n ['path', { d: 'M22 8V2h-6' }],\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default PhoneOutgoing;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name phone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/phone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Phone: IconNode = [\n [\n 'path',\n {\n d: 'M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384',\n },\n ],\n];\n\nexport default Phone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pi\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iOSIgeDI9IjkiIHkxPSI0IiB5Mj0iMjAiIC8+CiAgPHBhdGggZD0iTTQgN2MwLTEuNyAxLjMtMyAzLTNoMTMiIC8+CiAgPHBhdGggZD0iTTE4IDIwYy0xLjcgMC0zLTEuMy0zLTNWNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pi\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pi: IconNode = [\n ['line', { x1: '9', x2: '9', y1: '4', y2: '20' }],\n ['path', { d: 'M4 7c0-1.7 1.3-3 3-3h13' }],\n ['path', { d: 'M18 20c-1.7 0-3-1.3-3-3V4' }],\n];\n\nexport default Pi;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name piano\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguNSA4Yy0xLjQgMC0yLjYtLjgtMy4yLTJBNi44NyA2Ljg3IDAgMCAwIDIgOXYxMWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTguNUMyMiA5LjYgMjAuNCA4IDE4LjUgOCIgLz4KICA8cGF0aCBkPSJNMiAxNGgyMCIgLz4KICA8cGF0aCBkPSJNNiAxNHY0IiAvPgogIDxwYXRoIGQ9Ik0xMCAxNHY0IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNHY0IiAvPgogIDxwYXRoIGQ9Ik0xOCAxNHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/piano\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Piano: IconNode = [\n [\n 'path',\n {\n d: 'M18.5 8c-1.4 0-2.6-.8-3.2-2A6.87 6.87 0 0 0 2 9v11a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8.5C22 9.6 20.4 8 18.5 8',\n },\n ],\n ['path', { d: 'M2 14h20' }],\n ['path', { d: 'M6 14v4' }],\n ['path', { d: 'M10 14v4' }],\n ['path', { d: 'M14 14v4' }],\n ['path', { d: 'M18 14v4' }],\n];\n\nexport default Piano;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pickaxe\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQgMTMtOC4zODEgOC4zOGExIDEgMCAwIDEtMy4wMDEtM0wxMSA5Ljk5OSIgLz4KICA8cGF0aCBkPSJNMTUuOTczIDQuMDI3QTEzIDEzIDAgMCAwIDUuOTAyIDIuMzczYy0xLjM5OC4zNDItMS4wOTIgMi4xNTguMjc3IDIuNjAxYTE5LjkgMTkuOSAwIDAgMSA1LjgyMiAzLjAyNCIgLz4KICA8cGF0aCBkPSJNMTYuMDAxIDExLjk5OWExOS45IDE5LjkgMCAwIDEgMy4wMjQgNS44MjRjLjQ0NCAxLjM2OSAyLjI2IDEuNjc2IDIuNjAzLjI3OEExMyAxMyAwIDAgMCAyMCA4LjA2OSIgLz4KICA8cGF0aCBkPSJNMTguMzUyIDMuMzUyYTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBsLTUuMjk2IDUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw1LjI5Ni01LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwLTEuNzA0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pickaxe\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pickaxe: IconNode = [\n ['path', { d: 'm14 13-8.381 8.38a1 1 0 0 1-3.001-3L11 9.999' }],\n [\n 'path',\n {\n d: 'M15.973 4.027A13 13 0 0 0 5.902 2.373c-1.398.342-1.092 2.158.277 2.601a19.9 19.9 0 0 1 5.822 3.024',\n },\n ],\n [\n 'path',\n {\n d: 'M16.001 11.999a19.9 19.9 0 0 1 3.024 5.824c.444 1.369 2.26 1.676 2.603.278A13 13 0 0 0 20 8.069',\n },\n ],\n [\n 'path',\n {\n d: 'M18.352 3.352a1.205 1.205 0 0 0-1.704 0l-5.296 5.296a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l5.296-5.296a1.205 1.205 0 0 0 0-1.704z',\n },\n ],\n];\n\nexport default Pickaxe;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name picture-in-picture-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYzAgMS4xLjkgMiAyIDJoNCIgLz4KICA8cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iNyIgeD0iMTIiIHk9IjEzIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/picture-in-picture-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PictureInPicture2: IconNode = [\n ['path', { d: 'M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4' }],\n ['rect', { width: '10', height: '7', x: '12', y: '13', rx: '2' }],\n];\n\nexport default PictureInPicture2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name piggy-bank\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTdoM3YyYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTMuMTYgMy4xNiAwIDAgMCAyLTJoMWExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTFoLTFhNSA1IDAgMCAwLTItNFYzYTQgNCAwIDAgMC0zLjIgMS42bC0uMy40SDExYTYgNiAwIDAgMC02IDZ2MWE1IDUgMCAwIDAgMiA0djNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF6IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMGguMDEiIC8+CiAgPHBhdGggZD0iTTIgOHYxYTIgMiAwIDAgMCAyIDJoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/piggy-bank\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PiggyBank: IconNode = [\n [\n 'path',\n {\n d: 'M11 17h3v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a3.16 3.16 0 0 0 2-2h1a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-1a5 5 0 0 0-2-4V3a4 4 0 0 0-3.2 1.6l-.3.4H11a6 6 0 0 0-6 6v1a5 5 0 0 0 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1z',\n },\n ],\n ['path', { d: 'M16 10h.01' }],\n ['path', { d: 'M2 8v1a2 2 0 0 0 2 2h1' }],\n];\n\nexport default PiggyBank;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name picture-in-picture\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMGg2VjQiIC8+CiAgPHBhdGggZD0ibTIgNCA2IDYiIC8+CiAgPHBhdGggZD0iTTIxIDEwVjdhMiAyIDAgMCAwLTItMmgtNyIgLz4KICA8cGF0aCBkPSJNMyAxNHYyYTIgMiAwIDAgMCAyIDJoMyIgLz4KICA8cmVjdCB4PSIxMiIgeT0iMTQiIHdpZHRoPSIxMCIgaGVpZ2h0PSI3IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/picture-in-picture\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PictureInPicture: IconNode = [\n ['path', { d: 'M2 10h6V4' }],\n ['path', { d: 'm2 4 6 6' }],\n ['path', { d: 'M21 10V7a2 2 0 0 0-2-2h-7' }],\n ['path', { d: 'M3 14v2a2 2 0 0 0 2 2h3' }],\n ['rect', { x: '12', y: '14', width: '10', height: '7', rx: '1' }],\n];\n\nexport default PictureInPicture;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pilcrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgM3YxMSIgLz4KICA8cGF0aCBkPSJNMTQgOWgtM2EzIDMgMCAwIDEgMC02aDkiIC8+CiAgPHBhdGggZD0iTTE4IDN2MTEiIC8+CiAgPHBhdGggZD0iTTIyIDE4SDJsNC00IiAvPgogIDxwYXRoIGQ9Im02IDIyLTQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pilcrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PilcrowLeft: IconNode = [\n ['path', { d: 'M14 3v11' }],\n ['path', { d: 'M14 9h-3a3 3 0 0 1 0-6h9' }],\n ['path', { d: 'M18 3v11' }],\n ['path', { d: 'M22 18H2l4-4' }],\n ['path', { d: 'm6 22-4-4' }],\n];\n\nexport default PilcrowLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pilcrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgM3YxMSIgLz4KICA8cGF0aCBkPSJNMTAgOUg3YTEgMSAwIDAgMSAwLTZoOCIgLz4KICA8cGF0aCBkPSJNMTQgM3YxMSIgLz4KICA8cGF0aCBkPSJtMTggMTQgNCA0SDIiIC8+CiAgPHBhdGggZD0ibTIyIDE4LTQgNCIgLz4KPC9zdmc+) - https://lucide.dev/icons/pilcrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PilcrowRight: IconNode = [\n ['path', { d: 'M10 3v11' }],\n ['path', { d: 'M10 9H7a1 1 0 0 1 0-6h8' }],\n ['path', { d: 'M14 3v11' }],\n ['path', { d: 'm18 14 4 4H2' }],\n ['path', { d: 'm22 18-4 4' }],\n];\n\nexport default PilcrowRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pilcrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTcgNHYxNiIgLz4KICA8cGF0aCBkPSJNMTkgNEg5LjVhNC41IDQuNSAwIDAgMCAwIDlIMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pilcrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pilcrow: IconNode = [\n ['path', { d: 'M13 4v16' }],\n ['path', { d: 'M17 4v16' }],\n ['path', { d: 'M19 4H9.5a4.5 4.5 0 0 0 0 9H13' }],\n];\n\nexport default Pilcrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pill-bottle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTFoLTRhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoNCIgLz4KICA8cGF0aCBkPSJNNiA3djEzYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjciIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjUiIHg9IjQiIHk9IjIiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pill-bottle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PillBottle: IconNode = [\n ['path', { d: 'M18 11h-4a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h4' }],\n ['path', { d: 'M6 7v13a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7' }],\n ['rect', { width: '16', height: '5', x: '4', y: '2', rx: '1' }],\n];\n\nexport default PillBottle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pill\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuNSAyMC41IDEwLTEwYTQuOTUgNC45NSAwIDEgMC03LTdsLTEwIDEwYTQuOTUgNC45NSAwIDEgMCA3IDdaIiAvPgogIDxwYXRoIGQ9Im04LjUgOC41IDcgNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pill\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pill: IconNode = [\n ['path', { d: 'm10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z' }],\n ['path', { d: 'm8.5 8.5 7 7' }],\n];\n\nexport default Pill;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pin-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NSIgLz4KICA8cGF0aCBkPSJNMTUgOS4zNFY3YTEgMSAwIDAgMSAxLTEgMiAyIDAgMCAwIDAtNEg3Ljg5IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+CiAgPHBhdGggZD0iTTkgOXYxLjc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNFYxNmExIDEgMCAwIDAgMSAxaDExIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pin-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PinOff: IconNode = [\n ['path', { d: 'M12 17v5' }],\n ['path', { d: 'M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11' }],\n];\n\nexport default PinOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pin\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NSIgLz4KICA8cGF0aCBkPSJNOSAxMC43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0uNzZhMiAyIDAgMCAwLTEuMTEtMS43OWwtMS43OC0uOUEyIDIgMCAwIDEgMTUgMTAuNzZWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRIOGEyIDIgMCAwIDAgMCA0IDEgMSAwIDAgMSAxIDF6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pin\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pin: IconNode = [\n ['path', { d: 'M12 17v5' }],\n [\n 'path',\n {\n d: 'M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z',\n },\n ],\n];\n\nexport default Pin;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pipette\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgOS04LjQxNCA4LjQxNEEyIDIgMCAwIDAgMyAxOC44Mjh2MS4zNDRhMiAyIDAgMCAxLS41ODYgMS40MTRBMiAyIDAgMCAxIDMuODI4IDIxaDEuMzQ0YTIgMiAwIDAgMCAxLjQxNC0uNTg2TDE1IDEyIiAvPgogIDxwYXRoIGQ9Im0xOCA5IC40LjRhMSAxIDAgMSAxLTMgM2wtMy44LTMuOGExIDEgMCAxIDEgMy0zbC40LjQgMy40LTMuNGExIDEgMCAxIDEgMyAzeiIgLz4KICA8cGF0aCBkPSJtMiAyMiAuNDE0LS40MTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pipette\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pipette: IconNode = [\n [\n 'path',\n {\n d: 'm12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12',\n },\n ],\n ['path', { d: 'm18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z' }],\n ['path', { d: 'm2 22 .414-.414' }],\n];\n\nexport default Pipette;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pizza\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTQtMSAxIiAvPgogIDxwYXRoIGQ9Im0xMy43NSAxOC4yNS0xLjI1IDEuNDIiIC8+CiAgPHBhdGggZD0iTTE3Ljc3NSA1LjY1NGExNS42OCAxNS42OCAwIDAgMC0xMi4xMjEgMTIuMTIiIC8+CiAgPHBhdGggZD0iTTE4LjggOS4zYTEgMSAwIDAgMCAyLjEgNy43IiAvPgogIDxwYXRoIGQ9Ik0yMS45NjQgMjAuNzMyYTEgMSAwIDAgMS0xLjIzMiAxLjIzMmwtMTgtNWExIDEgMCAwIDEtLjY5NS0xLjIzMkExOS42OCAxOS42OCAwIDAgMSAxNS43MzIgMi4wMzdhMSAxIDAgMCAxIDEuMjMyLjY5NXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pizza\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pizza: IconNode = [\n ['path', { d: 'm12 14-1 1' }],\n ['path', { d: 'm13.75 18.25-1.25 1.42' }],\n ['path', { d: 'M17.775 5.654a15.68 15.68 0 0 0-12.121 12.12' }],\n ['path', { d: 'M18.8 9.3a1 1 0 0 0 2.1 7.7' }],\n [\n 'path',\n {\n d: 'M21.964 20.732a1 1 0 0 1-1.232 1.232l-18-5a1 1 0 0 1-.695-1.232A19.68 19.68 0 0 1 15.732 2.037a1 1 0 0 1 1.232.695z',\n },\n ],\n];\n\nexport default Pizza;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plane-landing\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMmgyMCIgLz4KICA8cGF0aCBkPSJNMy43NyAxMC43NyAyIDlsMi00LjUgMS4xLjU1Yy41NS4yOC45Ljg0LjkgMS40NXMuMzUgMS4xNy45IDEuNDVMOCA4LjVsMy02IDEuMDUuNTNhMiAyIDAgMCAxIDEuMDkgMS41MmwuNzIgNS40YTIgMiAwIDAgMCAxLjA5IDEuNTJsNC40IDIuMmMuNDIuMjIuNzguNTUgMS4wMS45NmwuNiAxLjAzYy40OS44OC0uMDYgMS45OC0xLjA2IDIuMWwtMS4xOC4xNWMtLjQ3LjA2LS45NS0uMDItMS4zNy0uMjRMNC4yOSAxMS4xNWEyIDIgMCAwIDEtLjUyLS4zOFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/plane-landing\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PlaneLanding: IconNode = [\n ['path', { d: 'M2 22h20' }],\n [\n 'path',\n {\n d: 'M3.77 10.77 2 9l2-4.5 1.1.55c.55.28.9.84.9 1.45s.35 1.17.9 1.45L8 8.5l3-6 1.05.53a2 2 0 0 1 1.09 1.52l.72 5.4a2 2 0 0 0 1.09 1.52l4.4 2.2c.42.22.78.55 1.01.96l.6 1.03c.49.88-.06 1.98-1.06 2.1l-1.18.15c-.47.06-.95-.02-1.37-.24L4.29 11.15a2 2 0 0 1-.52-.38Z',\n },\n ],\n];\n\nexport default PlaneLanding;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plane-takeoff\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMmgyMCIgLz4KICA8cGF0aCBkPSJNNi4zNiAxNy40IDQgMTdsLTItNCAxLjEtLjU1YTIgMiAwIDAgMSAxLjggMGwuMTcuMWEyIDIgMCAwIDAgMS44IDBMOCAxMiA1IDZsLjktLjQ1YTIgMiAwIDAgMSAyLjA5LjJsNC4wMiAzYTIgMiAwIDAgMCAyLjEuMmw0LjE5LTIuMDZhMi40MSAyLjQxIDAgMCAxIDEuNzMtLjE3TDIxIDdhMS40IDEuNCAwIDAgMSAuODcgMS45OWwtLjM4Ljc2Yy0uMjMuNDYtLjYuODQtMS4wNyAxLjA4TDcuNTggMTcuMmEyIDIgMCAwIDEtMS4yMi4xOFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/plane-takeoff\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PlaneTakeoff: IconNode = [\n ['path', { d: 'M2 22h20' }],\n [\n 'path',\n {\n d: 'M6.36 17.4 4 17l-2-4 1.1-.55a2 2 0 0 1 1.8 0l.17.1a2 2 0 0 0 1.8 0L8 12 5 6l.9-.45a2 2 0 0 1 2.09.2l4.02 3a2 2 0 0 0 2.1.2l4.19-2.06a2.41 2.41 0 0 1 1.73-.17L21 7a1.4 1.4 0 0 1 .87 1.99l-.38.76c-.23.46-.6.84-1.07 1.08L7.58 17.2a2 2 0 0 1-1.22.18Z',\n },\n ],\n];\n\nexport default PlaneTakeoff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plane\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuOCAxOS4yIDE2IDExbDMuNS0zLjVDMjEgNiAyMS41IDQgMjEgM2MtMS0uNS0zIDAtNC41IDEuNUwxMyA4IDQuOCA2LjJjLS41LS4xLS45LjEtMS4xLjVsLS4zLjVjLS4yLjUtLjEgMSAuMyAxLjNMOSAxMmwtMiAzSDRsLTEgMSAzIDIgMiAzIDEtMXYtM2wzLTIgMy41IDUuM2MuMy40LjguNSAxLjMuM2wuNS0uMmMuNC0uMy42LS43LjUtMS4yeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plane\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Plane: IconNode = [\n [\n 'path',\n {\n d: 'M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z',\n },\n ],\n];\n\nexport default Plane;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA1YTIgMiAwIDAgMSAzLjAwOC0xLjcyOGwxMS45OTcgNi45OThhMiAyIDAgMCAxIC4wMDMgMy40NThsLTEyIDdBMiAyIDAgMCAxIDUgMTl6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Play: IconNode = [\n [\n 'path',\n { d: 'M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z' },\n ],\n];\n\nexport default Play;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plug-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAydjYiIC8+CiAgPHBhdGggZD0iTTE1IDJ2NiIgLz4KICA8cGF0aCBkPSJNMTIgMTd2NSIgLz4KICA8cGF0aCBkPSJNNSA4aDE0IiAvPgogIDxwYXRoIGQ9Ik02IDExVjhoMTJ2M2E2IDYgMCAxIDEtMTIgMFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/plug-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Plug2: IconNode = [\n ['path', { d: 'M9 2v6' }],\n ['path', { d: 'M15 2v6' }],\n ['path', { d: 'M12 17v5' }],\n ['path', { d: 'M5 8h14' }],\n ['path', { d: 'M6 11V8h12v3a6 6 0 1 1-12 0Z' }],\n];\n\nexport default Plug2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plug-zap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFoiIC8+CiAgPHBhdGggZD0ibTIgMjIgMy0zIiAvPgogIDxwYXRoIGQ9Ik03LjUgMTMuNSAxMCAxMSIgLz4KICA8cGF0aCBkPSJNMTAuNSAxNi41IDEzIDE0IiAvPgogIDxwYXRoIGQ9Im0xOCAzLTQgNGg2bC00IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/plug-zap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PlugZap: IconNode = [\n ['path', { d: 'M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z' }],\n ['path', { d: 'm2 22 3-3' }],\n ['path', { d: 'M7.5 13.5 10 11' }],\n ['path', { d: 'M10.5 16.5 13 14' }],\n ['path', { d: 'm18 3-4 4h6l-4 4' }],\n];\n\nexport default PlugZap;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plug\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTUiIC8+CiAgPHBhdGggZD0iTTE1IDhWMiIgLz4KICA8cGF0aCBkPSJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoiIC8+CiAgPHBhdGggZD0iTTkgOFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/plug\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Plug: IconNode = [\n ['path', { d: 'M12 22v-5' }],\n ['path', { d: 'M15 8V2' }],\n ['path', { d: 'M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z' }],\n ['path', { d: 'M9 8V2' }],\n];\n\nexport default Plug;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Plus: IconNode = [\n ['path', { d: 'M5 12h14' }],\n ['path', { d: 'M12 5v14' }],\n];\n\nexport default Plus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pocket-knife\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAydjFjMCAxIDIgMSAyIDJTMyA2IDMgN3MyIDEgMiAyLTIgMS0yIDIgMiAxIDIgMiIgLz4KICA8cGF0aCBkPSJNMTggNmguMDEiIC8+CiAgPHBhdGggZD0iTTYgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yMC44MyA4LjgzYTQgNCAwIDAgMC01LjY2LTUuNjZsLTEyIDEyYTQgNCAwIDEgMCA1LjY2IDUuNjZaIiAvPgogIDxwYXRoIGQ9Ik0xOCAxMS42NlYyMmE0IDQgMCAwIDAgNC00VjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pocket-knife\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PocketKnife: IconNode = [\n ['path', { d: 'M3 2v1c0 1 2 1 2 2S3 6 3 7s2 1 2 2-2 1-2 2 2 1 2 2' }],\n ['path', { d: 'M18 6h.01' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'M20.83 8.83a4 4 0 0 0-5.66-5.66l-12 12a4 4 0 1 0 5.66 5.66Z' }],\n ['path', { d: 'M18 11.66V22a4 4 0 0 0 4-4V6' }],\n];\n\nexport default PocketKnife;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name podcast\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTdhMSAxIDAgMSAwLTIgMGwuNSA0LjVhMC41IDAuNSAwIDAgMCAxIDB6IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPHBhdGggZD0iTTE2Ljg1IDE4LjU4YTkgOSAwIDEgMC05LjcgMCIgLz4KICA8cGF0aCBkPSJNOCAxNGE1IDUgMCAxIDEgOCAwIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTEiIHI9IjEiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/podcast\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Podcast: IconNode = [\n ['path', { d: 'M13 17a1 1 0 1 0-2 0l.5 4.5a0.5 0.5 0 0 0 1 0z', fill: 'currentColor' }],\n ['path', { d: 'M16.85 18.58a9 9 0 1 0-9.7 0' }],\n ['path', { d: 'M8 14a5 5 0 1 1 8 0' }],\n ['circle', { cx: '12', cy: '11', r: '1', fill: 'currentColor' }],\n];\n\nexport default Podcast;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pocket\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgM2EyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTIwIDBWNWEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJtOCAxMCA0IDQgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pocket\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=pocket instead. This icon will be removed in v1.0\n */\nconst Pocket: IconNode = [\n ['path', { d: 'M20 3a2 2 0 0 1 2 2v6a1 1 0 0 1-20 0V5a2 2 0 0 1 2-2z' }],\n ['path', { d: 'm8 10 4 4 4-4' }],\n];\n\nexport default Pocket;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pointer-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNC41VjRhMiAyIDAgMCAwLTIuNDEtMS45NTciIC8+CiAgPHBhdGggZD0iTTEzLjkgOC40YTIgMiAwIDAgMC0xLjI2LTEuMjk1IiAvPgogIDxwYXRoIGQ9Ik0yMS43IDE2LjJBOCA4IDAgMCAwIDIyIDE0di0zYTIgMiAwIDEgMC00IDB2LTFhMiAyIDAgMCAwLTMuNjMtMS4xNTgiIC8+CiAgPHBhdGggZD0ibTcgMTUtMS44LTEuOGEyIDIgMCAwIDAtMi43OSAyLjg2TDYgMTkuN2E3Ljc0IDcuNzQgMCAwIDAgNiAyLjNoMmE4IDggMCAwIDAgNS42NTctMi4zNDMiIC8+CiAgPHBhdGggZD0iTTYgNnY4IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pointer-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PointerOff: IconNode = [\n ['path', { d: 'M10 4.5V4a2 2 0 0 0-2.41-1.957' }],\n ['path', { d: 'M13.9 8.4a2 2 0 0 0-1.26-1.295' }],\n ['path', { d: 'M21.7 16.2A8 8 0 0 0 22 14v-3a2 2 0 1 0-4 0v-1a2 2 0 0 0-3.63-1.158' }],\n [\n 'path',\n { d: 'm7 15-1.8-1.8a2 2 0 0 0-2.79 2.86L6 19.7a7.74 7.74 0 0 0 6 2.3h2a8 8 0 0 0 5.657-2.343' },\n ],\n ['path', { d: 'M6 6v8' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default PointerOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pointer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTRhOCA4IDAgMCAxLTggOCIgLz4KICA8cGF0aCBkPSJNMTggMTF2LTFhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIiAvPgogIDxwYXRoIGQ9Ik0xNCAxMFY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxIiAvPgogIDxwYXRoIGQ9Ik0xMCA5LjVWNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MTAiIC8+CiAgPHBhdGggZD0iTTE4IDExYTIgMiAwIDEgMSA0IDB2M2E4IDggMCAwIDEtOCA4aC0yYy0yLjggMC00LjUtLjg2LTUuOTktMi4zNGwtMy42LTMuNmEyIDIgMCAwIDEgMi44My0yLjgyTDcgMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pointer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pointer: IconNode = [\n ['path', { d: 'M22 14a8 8 0 0 1-8 8' }],\n ['path', { d: 'M18 11v-1a2 2 0 0 0-2-2a2 2 0 0 0-2 2' }],\n ['path', { d: 'M14 10V9a2 2 0 0 0-2-2a2 2 0 0 0-2 2v1' }],\n ['path', { d: 'M10 9.5V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v10' }],\n [\n 'path',\n {\n d: 'M18 11a2 2 0 1 1 4 0v3a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15',\n },\n ],\n];\n\nexport default Pointer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name popcorn\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggOGEyIDIgMCAwIDAgMC00IDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMCAwIDQiIC8+CiAgPHBhdGggZD0iTTEwIDIyIDkgOCIgLz4KICA8cGF0aCBkPSJtMTQgMjIgMS0xNCIgLz4KICA8cGF0aCBkPSJNMjAgOGMuNSAwIC45LjQuOCAxbC0yLjYgMTJjLS4xLjUtLjcgMS0xLjIgMUg3Yy0uNiAwLTEuMS0uNC0xLjItMUwzLjIgOWMtLjEtLjYuMy0xIC44LTFaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/popcorn\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Popcorn: IconNode = [\n ['path', { d: 'M18 8a2 2 0 0 0 0-4 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0-4 0 2 2 0 0 0 0 4' }],\n ['path', { d: 'M10 22 9 8' }],\n ['path', { d: 'm14 22 1-14' }],\n [\n 'path',\n {\n d: 'M20 8c.5 0 .9.4.8 1l-2.6 12c-.1.5-.7 1-1.2 1H7c-.6 0-1.1-.4-1.2-1L3.2 9c-.1-.6.3-1 .8-1Z',\n },\n ],\n];\n\nexport default Popcorn;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name popsicle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguNiAxNC40Yy44LS44LjgtMiAwLTIuOGwtOC4xLTguMWE0Ljk1IDQuOTUgMCAxIDAtNy4xIDcuMWw4LjEgOC4xYy45LjcgMi4xLjcgMi45LS4xWiIgLz4KICA8cGF0aCBkPSJtMjIgMjItNS41LTUuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/popsicle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Popsicle: IconNode = [\n [\n 'path',\n { d: 'M18.6 14.4c.8-.8.8-2 0-2.8l-8.1-8.1a4.95 4.95 0 1 0-7.1 7.1l8.1 8.1c.9.7 2.1.7 2.9-.1Z' },\n ],\n ['path', { d: 'm22 22-5.5-5.5' }],\n];\n\nexport default Popsicle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pound-sterling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggN2MwLTUuMzMzLTgtNS4zMzMtOCAwIiAvPgogIDxwYXRoIGQ9Ik0xMCA3djE0IiAvPgogIDxwYXRoIGQ9Ik02IDIxaDEyIiAvPgogIDxwYXRoIGQ9Ik02IDEzaDEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pound-sterling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PoundSterling: IconNode = [\n ['path', { d: 'M18 7c0-5.333-8-5.333-8 0' }],\n ['path', { d: 'M10 7v14' }],\n ['path', { d: 'M6 21h12' }],\n ['path', { d: 'M6 13h10' }],\n];\n\nexport default PoundSterling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name power-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguMzYgNi42NEE5IDkgMCAwIDEgMjAuNzcgMTUiIC8+CiAgPHBhdGggZD0iTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgiIC8+CiAgPHBhdGggZD0iTTEyIDJ2NCIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/power-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PowerOff: IconNode = [\n ['path', { d: 'M18.36 6.64A9 9 0 0 1 20.77 15' }],\n ['path', { d: 'M6.16 6.16a9 9 0 1 0 12.68 12.68' }],\n ['path', { d: 'M12 2v4' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default PowerOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name power\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxMCIgLz4KICA8cGF0aCBkPSJNMTguNCA2LjZhOSA5IDAgMSAxLTEyLjc3LjA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/power\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Power: IconNode = [\n ['path', { d: 'M12 2v10' }],\n ['path', { d: 'M18.4 6.6a9 9 0 1 1-12.77.04' }],\n];\n\nexport default Power;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name printer-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNSAyMkg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdi41IiAvPgogIDxwYXRoIGQ9Im0xNiAxOSAyIDIgNC00IiAvPgogIDxwYXRoIGQ9Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MiIgLz4KICA8cGF0aCBkPSJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/printer-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PrinterCheck: IconNode = [\n ['path', { d: 'M13.5 22H7a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v.5' }],\n ['path', { d: 'm16 19 2 2 4-4' }],\n ['path', { d: 'M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6' }],\n];\n\nexport default PrinterCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name presentation\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAzaDIwIiAvPgogIDxwYXRoIGQ9Ik0yMSAzdjExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjMiIC8+CiAgPHBhdGggZD0ibTcgMjEgNS01IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/presentation\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Presentation: IconNode = [\n ['path', { d: 'M2 3h20' }],\n ['path', { d: 'M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3' }],\n ['path', { d: 'm7 21 5-5 5 5' }],\n];\n\nexport default Presentation;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name printer-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNTMxIDIySDdhMSAxIDAgMCAxLTEtMXYtNmExIDEgMCAwIDEgMS0xaDYuMzc3IiAvPgogIDxwYXRoIGQ9Im0xNi41IDE2LjUgNSA1IiAvPgogIDxwYXRoIGQ9Im0xNi41IDIxLjUgNS01IiAvPgogIDxwYXRoIGQ9Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MS41IiAvPgogIDxwYXRoIGQ9Ik02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/printer-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst PrinterX: IconNode = [\n ['path', { d: 'M12.531 22H7a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h6.377' }],\n ['path', { d: 'm16.5 16.5 5 5' }],\n ['path', { d: 'm16.5 21.5 5-5' }],\n ['path', { d: 'M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.5' }],\n ['path', { d: 'M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6' }],\n];\n\nexport default PrinterX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name printer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYiIC8+CiAgPHJlY3QgeD0iNiIgeT0iMTQiIHdpZHRoPSIxMiIgaGVpZ2h0PSI4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/printer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Printer: IconNode = [\n ['path', { d: 'M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6' }],\n ['rect', { x: '6', y: '14', width: '12', height: '8', rx: '1' }],\n];\n\nexport default Printer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name projector\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA3IDMgNSIgLz4KICA8cGF0aCBkPSJNOSA2VjMiIC8+CiAgPHBhdGggZD0ibTEzIDcgMi0yIiAvPgogIDxjaXJjbGUgY3g9IjkiIGN5PSIxMyIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTEuODMgMTJIMjBhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi00YTIgMiAwIDAgMSAyLTJoMi4xNyIgLz4KICA8cGF0aCBkPSJNMTYgMTZoMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/projector\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Projector: IconNode = [\n ['path', { d: 'M5 7 3 5' }],\n ['path', { d: 'M9 6V3' }],\n ['path', { d: 'm13 7 2-2' }],\n ['circle', { cx: '9', cy: '13', r: '3' }],\n [\n 'path',\n { d: 'M11.83 12H20a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h2.17' },\n ],\n ['path', { d: 'M16 16h2' }],\n];\n\nexport default Projector;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name proportions\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiA5djExIiAvPgogIDxwYXRoIGQ9Ik0yIDloMTNhMiAyIDAgMCAxIDIgMnY5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/proportions\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Proportions: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M12 9v11' }],\n ['path', { d: 'M2 9h13a2 2 0 0 1 2 2v9' }],\n];\n\nexport default Proportions;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name puzzle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/puzzle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Puzzle: IconNode = [\n [\n 'path',\n {\n d: 'M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z',\n },\n ],\n];\n\nexport default Puzzle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name pyramid\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41IDE2Ljg4YTEgMSAwIDAgMS0uMzItMS40M2w5LTEzLjAyYTEgMSAwIDAgMSAxLjY0IDBsOSAxMy4wMWExIDEgMCAwIDEtLjMyIDEuNDRsLTguNTEgNC44NmEyIDIgMCAwIDEtMS45OCAwWiIgLz4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pyramid\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Pyramid: IconNode = [\n [\n 'path',\n {\n d: 'M2.5 16.88a1 1 0 0 1-.32-1.43l9-13.02a1 1 0 0 1 1.64 0l9 13.01a1 1 0 0 1-.32 1.44l-8.51 4.86a2 2 0 0 1-1.98 0Z',\n },\n ],\n ['path', { d: 'M12 2v20' }],\n];\n\nexport default Pyramid;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name qr-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiB4PSIxNiIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjUiIGhlaWdodD0iNSIgeD0iMyIgeT0iMTYiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNmgtM2EyIDIgMCAwIDAtMiAydjMiIC8+CiAgPHBhdGggZD0iTTIxIDIxdi4wMSIgLz4KICA8cGF0aCBkPSJNMTIgN3YzYTIgMiAwIDAgMS0yIDJINyIgLz4KICA8cGF0aCBkPSJNMyAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDNoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNnYuMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaDEiIC8+CiAgPHBhdGggZD0iTTIxIDEydi4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMjF2LTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/qr-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst QrCode: IconNode = [\n ['rect', { width: '5', height: '5', x: '3', y: '3', rx: '1' }],\n ['rect', { width: '5', height: '5', x: '16', y: '3', rx: '1' }],\n ['rect', { width: '5', height: '5', x: '3', y: '16', rx: '1' }],\n ['path', { d: 'M21 16h-3a2 2 0 0 0-2 2v3' }],\n ['path', { d: 'M21 21v.01' }],\n ['path', { d: 'M12 7v3a2 2 0 0 1-2 2H7' }],\n ['path', { d: 'M3 12h.01' }],\n ['path', { d: 'M12 3h.01' }],\n ['path', { d: 'M12 16v.01' }],\n ['path', { d: 'M16 12h1' }],\n ['path', { d: 'M21 12v.01' }],\n ['path', { d: 'M12 21v-1' }],\n];\n\nexport default QrCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name quote\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2EyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMiAxIDEgMCAwIDEgMSAxdjFhMiAyIDAgMCAxLTIgMiAxIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMSA2IDYgMCAwIDAgNi02VjVhMiAyIDAgMCAwLTItMnoiIC8+CiAgPHBhdGggZD0iTTUgM2EyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMiAxIDEgMCAwIDEgMSAxdjFhMiAyIDAgMCAxLTIgMiAxIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMSA2IDYgMCAwIDAgNi02VjVhMiAyIDAgMCAwLTItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/quote\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Quote: IconNode = [\n [\n 'path',\n {\n d: 'M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z',\n },\n ],\n [\n 'path',\n {\n d: 'M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z',\n },\n ],\n];\n\nexport default Quote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rabbit\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTZhMyAzIDAgMCAxIDIuMjQgNSIgLz4KICA8cGF0aCBkPSJNMTggMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xOCAyMWgtOGE0IDQgMCAwIDEtNC00IDcgNyAwIDAgMSA3LTdoLjJMOS42IDYuNGExIDEgMCAxIDEgMi44LTIuOEwxNS44IDdoLjJjMy4zIDAgNiAyLjcgNiA2djFhMiAyIDAgMCAxLTIgMmgtMWEzIDMgMCAwIDAtMyAzIiAvPgogIDxwYXRoIGQ9Ik0yMCA4LjU0VjRhMiAyIDAgMSAwLTQgMHYzIiAvPgogIDxwYXRoIGQ9Ik03LjYxMiAxMi41MjRhMyAzIDAgMSAwLTEuNiA0LjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rabbit\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rabbit: IconNode = [\n ['path', { d: 'M13 16a3 3 0 0 1 2.24 5' }],\n ['path', { d: 'M18 12h.01' }],\n [\n 'path',\n {\n d: 'M18 21h-8a4 4 0 0 1-4-4 7 7 0 0 1 7-7h.2L9.6 6.4a1 1 0 1 1 2.8-2.8L15.8 7h.2c3.3 0 6 2.7 6 6v1a2 2 0 0 1-2 2h-1a3 3 0 0 0-3 3',\n },\n ],\n ['path', { d: 'M20 8.54V4a2 2 0 1 0-4 0v3' }],\n ['path', { d: 'M7.612 12.524a3 3 0 1 0-1.6 4.3' }],\n];\n\nexport default Rabbit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radar\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuMDcgNC45M0ExMCAxMCAwIDAgMCA2Ljk5IDMuMzQiIC8+CiAgPHBhdGggZD0iTTQgNmguMDEiIC8+CiAgPHBhdGggZD0iTTIuMjkgOS42MkExMCAxMCAwIDEgMCAyMS4zMSA4LjM1IiAvPgogIDxwYXRoIGQ9Ik0xNi4yNCA3Ljc2QTYgNiAwIDEgMCA4LjIzIDE2LjY3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxOGguMDEiIC8+CiAgPHBhdGggZD0iTTE3Ljk5IDExLjY2QTYgNiAwIDAgMSAxNS43NyAxNi42NyIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgogIDxwYXRoIGQ9Im0xMy40MSAxMC41OSA1LjY2LTUuNjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/radar\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Radar: IconNode = [\n ['path', { d: 'M19.07 4.93A10 10 0 0 0 6.99 3.34' }],\n ['path', { d: 'M4 6h.01' }],\n ['path', { d: 'M2.29 9.62A10 10 0 1 0 21.31 8.35' }],\n ['path', { d: 'M16.24 7.76A6 6 0 1 0 8.23 16.67' }],\n ['path', { d: 'M12 18h.01' }],\n ['path', { d: 'M17.99 11.66A6 6 0 0 1 15.77 16.67' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n ['path', { d: 'm13.41 10.59 5.66-5.66' }],\n];\n\nexport default Radar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radiation\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNCAxNS40NjQxYTQgNCAwIDAgMS00IDBMNy41Mjc4NiAxOS43NDU5NyBBIDEgMSAwIDAgMCA3Ljk5MzAzIDIxLjE2MjExIDEwIDEwIDAgMCAwIDE2LjAwNjk3IDIxLjE2MjExIDEgMSAwIDAgMCAxNi40NzIxNCAxOS43NDU5N3oiIC8+CiAgPHBhdGggZD0iTTE2IDEyYTQgNCAwIDAgMC0yLTMuNDY0bDIuNDcyLTQuMjgyYTEgMSAwIDAgMSAxLjQ2LS4zMDUgMTAgMTAgMCAwIDEgNC4wMDYgNi45NEExIDEgMCAwIDEgMjEgMTJ6IiAvPgogIDxwYXRoIGQ9Ik04IDEyYTQgNCAwIDAgMSAyLTMuNDY0TDcuNTI4IDQuMjU0YTEgMSAwIDAgMC0xLjQ2LS4zMDUgMTAgMTAgMCAwIDAtNC4wMDYgNi45NEExIDEgMCAwIDAgMyAxMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/radiation\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Radiation: IconNode = [\n ['path', { d: 'M12 12h.01' }],\n [\n 'path',\n {\n d: 'M14 15.4641a4 4 0 0 1-4 0L7.52786 19.74597 A 1 1 0 0 0 7.99303 21.16211 10 10 0 0 0 16.00697 21.16211 1 1 0 0 0 16.47214 19.74597z',\n },\n ],\n [\n 'path',\n {\n d: 'M16 12a4 4 0 0 0-2-3.464l2.472-4.282a1 1 0 0 1 1.46-.305 10 10 0 0 1 4.006 6.94A1 1 0 0 1 21 12z',\n },\n ],\n [\n 'path',\n {\n d: 'M8 12a4 4 0 0 1 2-3.464L7.528 4.254a1 1 0 0 0-1.46-.305 10 10 0 0 0-4.006 6.94A1 1 0 0 0 3 12z',\n },\n ],\n];\n\nexport default Radiation;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/radical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Radical: IconNode = [\n [\n 'path',\n {\n d: 'M3 12h3.28a1 1 0 0 1 .948.684l2.298 7.934a.5.5 0 0 0 .96-.044L13.82 4.771A1 1 0 0 1 14.792 4H21',\n },\n ],\n];\n\nexport default Radical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radio-receiver\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxNnYyIiAvPgogIDxwYXRoIGQ9Ik0xOSAxNnYyIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiB4PSIyIiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMTggMTJoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/radio-receiver\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RadioReceiver: IconNode = [\n ['path', { d: 'M5 16v2' }],\n ['path', { d: 'M19 16v2' }],\n ['rect', { width: '20', height: '8', x: '2', y: '8', rx: '2' }],\n ['path', { d: 'M18 12h.01' }],\n];\n\nexport default RadioReceiver;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radio-tower\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC45IDE2LjFDMSAxMi4yIDEgNS44IDQuOSAxLjkiIC8+CiAgPHBhdGggZD0iTTcuOCA0LjdhNi4xNCA2LjE0IDAgMCAwLS44IDcuNSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjkiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTE2LjIgNC44YzIgMiAyLjI2IDUuMTEuOCA3LjQ3IiAvPgogIDxwYXRoIGQ9Ik0xOS4xIDEuOWE5Ljk2IDkuOTYgMCAwIDEgMCAxNC4xIiAvPgogIDxwYXRoIGQ9Ik05LjUgMThoNSIgLz4KICA8cGF0aCBkPSJtOCAyMiA0LTExIDQgMTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/radio-tower\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RadioTower: IconNode = [\n ['path', { d: 'M4.9 16.1C1 12.2 1 5.8 4.9 1.9' }],\n ['path', { d: 'M7.8 4.7a6.14 6.14 0 0 0-.8 7.5' }],\n ['circle', { cx: '12', cy: '9', r: '2' }],\n ['path', { d: 'M16.2 4.8c2 2 2.26 5.11.8 7.47' }],\n ['path', { d: 'M19.1 1.9a9.96 9.96 0 0 1 0 14.1' }],\n ['path', { d: 'M9.5 18h5' }],\n ['path', { d: 'm8 22 4-11 4 11' }],\n];\n\nexport default RadioTower;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radio\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuMjQ3IDcuNzYxYTYgNiAwIDAgMSAwIDguNDc4IiAvPgogIDxwYXRoIGQ9Ik0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMCAxNC4xMzQiIC8+CiAgPHBhdGggZD0iTTQuOTI1IDE5LjA2N2ExMCAxMCAwIDAgMSAwLTE0LjEzNCIgLz4KICA8cGF0aCBkPSJNNy43NTMgMTYuMjM5YTYgNiAwIDAgMSAwLTguNDc4IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/radio\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Radio: IconNode = [\n ['path', { d: 'M16.247 7.761a6 6 0 0 1 0 8.478' }],\n ['path', { d: 'M19.075 4.933a10 10 0 0 1 0 14.134' }],\n ['path', { d: 'M4.925 19.067a10 10 0 0 1 0-14.134' }],\n ['path', { d: 'M7.753 16.239a6 6 0 0 1 0-8.478' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default Radio;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name radius\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuMzQgMTcuNTJhMTAgMTAgMCAxIDAtMi44MiAyLjgyIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTkiIHI9IjIiIC8+CiAgPHBhdGggZD0ibTEzLjQxIDEzLjQxIDQuMTggNC4xOCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/radius\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Radius: IconNode = [\n ['path', { d: 'M20.34 17.52a10 10 0 1 0-2.82 2.82' }],\n ['circle', { cx: '19', cy: '19', r: '2' }],\n ['path', { d: 'm13.41 13.41 4.18 4.18' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default Radius;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rail-symbol\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxNWgxNCIgLz4KICA8cGF0aCBkPSJNNSA5aDE0IiAvPgogIDxwYXRoIGQ9Im0xNCAyMC01LTUgNi02LTUtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/rail-symbol\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=rail-symbol instead. This icon will be removed in v1.0\n */\nconst RailSymbol: IconNode = [\n ['path', { d: 'M5 15h14' }],\n ['path', { d: 'M5 9h14' }],\n ['path', { d: 'm14 20-5-5 6-6-5-5' }],\n];\n\nexport default RailSymbol;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rainbow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCIgLz4KICA8cGF0aCBkPSJNNiAxN2E2IDYgMCAwIDEgMTIgMCIgLz4KICA8cGF0aCBkPSJNMTAgMTdhMiAyIDAgMCAxIDQgMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/rainbow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rainbow: IconNode = [\n ['path', { d: 'M22 17a10 10 0 0 0-20 0' }],\n ['path', { d: 'M6 17a6 6 0 0 1 12 0' }],\n ['path', { d: 'M10 17a2 2 0 0 1 4 0' }],\n];\n\nexport default Rainbow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjJINGEyIDIgMCAwIDEgMC00aDEyIiAvPgogIDxwYXRoIGQ9Ik0xMy4yMzYgMThhMyAzIDAgMCAwLTIuMi01IiAvPgogIDxwYXRoIGQ9Ik0xNiA5aC4wMSIgLz4KICA8cGF0aCBkPSJNMTYuODIgMy45NGEzIDMgMCAxIDEgMy4yMzcgNC44NjhsMS44MTUgMi41ODdhMS41IDEuNSAwIDAgMS0xLjUgMi4xbC0yLjg3Mi0uNDUzYTMgMyAwIDAgMC0zLjUgMyIgLz4KICA8cGF0aCBkPSJNMTcgNC45ODhhMyAzIDAgMSAwLTUuMiAyLjA1MkE3IDcgMCAwIDAgNCAxNC4wMTUgNCA0IDAgMCAwIDggMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rat: IconNode = [\n ['path', { d: 'M13 22H4a2 2 0 0 1 0-4h12' }],\n ['path', { d: 'M13.236 18a3 3 0 0 0-2.2-5' }],\n ['path', { d: 'M16 9h.01' }],\n [\n 'path',\n {\n d: 'M16.82 3.94a3 3 0 1 1 3.237 4.868l1.815 2.587a1.5 1.5 0 0 1-1.5 2.1l-2.872-.453a3 3 0 0 0-3.5 3',\n },\n ],\n ['path', { d: 'M17 4.988a3 3 0 1 0-5.2 2.052A7 7 0 0 0 4 14.015 4 4 0 0 0 8 18' }],\n];\n\nexport default Rat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ratio\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHg9IjYiIHk9IjIiIHJ4PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxMiIgeD0iMiIgeT0iNiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ratio\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ratio: IconNode = [\n ['rect', { width: '12', height: '20', x: '6', y: '2', rx: '2' }],\n ['rect', { width: '20', height: '12', x: '2', y: '6', rx: '2' }],\n];\n\nexport default Ratio;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-cent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNMTIgNi41djExIiAvPgogIDxwYXRoIGQ9Ik0xNSA5LjRhNCA0IDAgMSAwIDAgNS4yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/receipt-cent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptCent: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M12 6.5v11' }],\n ['path', { d: 'M15 9.4a4 4 0 1 0 0 5.2' }],\n];\n\nexport default ReceiptCent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-euro\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNOCAxMmg1IiAvPgogIDxwYXRoIGQ9Ik0xNiA5LjVhNCA0IDAgMSAwIDAgNS4yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/receipt-euro\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptEuro: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M8 12h5' }],\n ['path', { d: 'M16 9.5a4 4 0 1 0 0 5.2' }],\n];\n\nexport default ReceiptEuro;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-indian-rupee\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNOCA3aDgiIC8+CiAgPHBhdGggZD0iTTEyIDE3LjUgOCAxNWgxYTQgNCAwIDAgMCAwLTgiIC8+CiAgPHBhdGggZD0iTTggMTFoOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/receipt-indian-rupee\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptIndianRupee: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M8 7h8' }],\n ['path', { d: 'M12 17.5 8 15h1a4 4 0 0 0 0-8' }],\n ['path', { d: 'M8 11h8' }],\n];\n\nexport default ReceiptIndianRupee;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-japanese-yen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJtMTIgMTAgMy0zIiAvPgogIDxwYXRoIGQ9Im05IDcgMyAzdjcuNSIgLz4KICA8cGF0aCBkPSJNOSAxMWg2IiAvPgogIDxwYXRoIGQ9Ik05IDE1aDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/receipt-japanese-yen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptJapaneseYen: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'm12 10 3-3' }],\n ['path', { d: 'm9 7 3 3v7.5' }],\n ['path', { d: 'M9 11h6' }],\n ['path', { d: 'M9 15h6' }],\n];\n\nexport default ReceiptJapaneseYen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-pound-sterling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNOCAxM2g1IiAvPgogIDxwYXRoIGQ9Ik0xMCAxN1Y5LjVhMi41IDIuNSAwIDAgMSA1IDAiIC8+CiAgPHBhdGggZD0iTTggMTdoNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/receipt-pound-sterling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptPoundSterling: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M8 13h5' }],\n ['path', { d: 'M10 17V9.5a2.5 2.5 0 0 1 5 0' }],\n ['path', { d: 'M8 17h7' }],\n];\n\nexport default ReceiptPoundSterling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-russian-ruble\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNOCAxNWg1IiAvPgogIDxwYXRoIGQ9Ik04IDExaDVhMiAyIDAgMSAwIDAtNGgtM3YxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/receipt-russian-ruble\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptRussianRuble: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M8 15h5' }],\n ['path', { d: 'M8 11h5a2 2 0 1 0 0-4h-3v10' }],\n];\n\nexport default ReceiptRussianRuble;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-swiss-franc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNMTAgMTdWN2g1IiAvPgogIDxwYXRoIGQ9Ik0xMCAxMWg0IiAvPgogIDxwYXRoIGQ9Ik04IDE1aDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/receipt-swiss-franc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptSwissFranc: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M10 17V7h5' }],\n ['path', { d: 'M10 11h4' }],\n ['path', { d: 'M8 15h5' }],\n];\n\nexport default ReceiptSwissFranc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTZIOCIgLz4KICA8cGF0aCBkPSJNMTQgOEg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMkg4IiAvPgogIDxwYXRoIGQ9Ik00IDNhMSAxIDAgMCAxIDEtMSAxLjMgMS4zIDAgMCAxIC43LjJsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzNC0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTM0LjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42QTEuMyAxLjMgMCAwIDEgMTkgMmExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDEgMS4zIDEuMyAwIDAgMS0uNy0uMmwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTM0LjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzMy0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0xLjQgMGwtLjkzNC0uNmExLjMgMS4zIDAgMCAwLTEuNCAwbC0uOTMzLjZhMS4zIDEuMyAwIDAgMS0uNy4yIDEgMSAwIDAgMS0xLTF6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/receipt-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptText: IconNode = [\n ['path', { d: 'M13 16H8' }],\n ['path', { d: 'M14 8H8' }],\n ['path', { d: 'M16 12H8' }],\n [\n 'path',\n {\n d: 'M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z',\n },\n ],\n];\n\nexport default ReceiptText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt-turkish-lira\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNi41djExYTUuNSA1LjUgMCAwIDAgNS41LTUuNSIgLz4KICA8cGF0aCBkPSJtMTQgOC02IDMiIC8+CiAgPHBhdGggZD0iTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/receipt-turkish-lira\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReceiptTurkishLira: IconNode = [\n ['path', { d: 'M10 6.5v11a5.5 5.5 0 0 0 5.5-5.5' }],\n ['path', { d: 'm14 8-6 3' }],\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1z' }],\n];\n\nexport default ReceiptTurkishLira;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name receipt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiIgLz4KICA8cGF0aCBkPSJNMTYgOGgtNmEyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMSAxIDAgNEg4IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNy41di0xMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/receipt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Receipt: IconNode = [\n ['path', { d: 'M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z' }],\n ['path', { d: 'M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8' }],\n ['path', { d: 'M12 17.5v-11' }],\n];\n\nexport default Receipt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rectangle-circle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNHYxNkgzYTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xeiIgLz4KICA8Y2lyY2xlIGN4PSIxNCIgY3k9IjEyIiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rectangle-circle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RectangleCircle: IconNode = [\n ['path', { d: 'M14 4v16H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z' }],\n ['circle', { cx: '14', cy: '12', r: '8' }],\n];\n\nexport default RectangleCircle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rectangle-ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjYiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTE3IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNNyAxMmguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rectangle-ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RectangleEllipsis: IconNode = [\n ['rect', { width: '20', height: '12', x: '2', y: '6', rx: '2' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M17 12h.01' }],\n ['path', { d: 'M7 12h.01' }],\n];\n\nexport default RectangleEllipsis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rectangle-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjYiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rectangle-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RectangleHorizontal: IconNode = [\n ['rect', { width: '20', height: '12', x: '2', y: '6', rx: '2' }],\n];\n\nexport default RectangleHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rectangle-goggles\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMS42LS44bC0xLjYtMi4xM2ExIDEgMCAwIDAtMS42IDBMOS42IDE3LjJBMiAyIDAgMCAxIDggMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rectangle-goggles\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RectangleGoggles: IconNode = [\n [\n 'path',\n {\n d: 'M20 6a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-4a2 2 0 0 1-1.6-.8l-1.6-2.13a1 1 0 0 0-1.6 0L9.6 17.2A2 2 0 0 1 8 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z',\n },\n ],\n];\n\nexport default RectangleGoggles;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rectangle-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHg9IjYiIHk9IjIiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rectangle-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RectangleVertical: IconNode = [\n ['rect', { width: '12', height: '20', x: '6', y: '2', rx: '2' }],\n];\n\nexport default RectangleVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name recycle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxOUg0LjgxNWExLjgzIDEuODMgMCAwIDEtMS41Ny0uODgxIDEuNzg1IDEuNzg1IDAgMCAxLS4wMDQtMS43ODRMNy4xOTYgOS41IiAvPgogIDxwYXRoIGQ9Ik0xMSAxOWg4LjIwM2ExLjgzIDEuODMgMCAwIDAgMS41NTYtLjg5IDEuNzg0IDEuNzg0IDAgMCAwIDAtMS43NzVsLTEuMjI2LTIuMTIiIC8+CiAgPHBhdGggZD0ibTE0IDE2LTMgMyAzIDMiIC8+CiAgPHBhdGggZD0iTTguMjkzIDEzLjU5NiA3LjE5NiA5LjUgMy4xIDEwLjU5OCIgLz4KICA8cGF0aCBkPSJtOS4zNDQgNS44MTEgMS4wOTMtMS44OTJBMS44MyAxLjgzIDAgMCAxIDExLjk4NSAzYTEuNzg0IDEuNzg0IDAgMCAxIDEuNTQ2Ljg4OGwzLjk0MyA2Ljg0MyIgLz4KICA8cGF0aCBkPSJtMTMuMzc4IDkuNjMzIDQuMDk2IDEuMDk4IDEuMDk3LTQuMDk2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/recycle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Recycle: IconNode = [\n ['path', { d: 'M7 19H4.815a1.83 1.83 0 0 1-1.57-.881 1.785 1.785 0 0 1-.004-1.784L7.196 9.5' }],\n ['path', { d: 'M11 19h8.203a1.83 1.83 0 0 0 1.556-.89 1.784 1.784 0 0 0 0-1.775l-1.226-2.12' }],\n ['path', { d: 'm14 16-3 3 3 3' }],\n ['path', { d: 'M8.293 13.596 7.196 9.5 3.1 10.598' }],\n [\n 'path',\n {\n d: 'm9.344 5.811 1.093-1.892A1.83 1.83 0 0 1 11.985 3a1.784 1.784 0 0 1 1.546.888l3.943 6.843',\n },\n ],\n ['path', { d: 'm13.378 9.633 4.096 1.098 1.097-4.096' }],\n];\n\nexport default Recycle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name redo-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE3IiByPSIxIiAvPgogIDxwYXRoIGQ9Ik0yMSA3djZoLTYiIC8+CiAgPHBhdGggZD0iTTMgMTdhOSA5IDAgMCAxIDktOSA5IDkgMCAwIDEgNiAyLjNsMyAyLjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/redo-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RedoDot: IconNode = [\n ['circle', { cx: '12', cy: '17', r: '1' }],\n ['path', { d: 'M21 7v6h-6' }],\n ['path', { d: 'M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7' }],\n];\n\nexport default RedoDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name redo-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTQgNS01LTUtNSIgLz4KICA8cGF0aCBkPSJNMjAgOUg5LjVBNS41IDUuNSAwIDAgMCA0IDE0LjVBNS41IDUuNSAwIDAgMCA5LjUgMjBIMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/redo-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Redo2: IconNode = [\n ['path', { d: 'm15 14 5-5-5-5' }],\n ['path', { d: 'M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13' }],\n];\n\nexport default Redo2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name redo\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgN3Y2aC02IiAvPgogIDxwYXRoIGQ9Ik0zIDE3YTkgOSAwIDAgMSA5LTkgOSA5IDAgMCAxIDYgMi4zbDMgMi43IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/redo\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Redo: IconNode = [\n ['path', { d: 'M21 7v6h-6' }],\n ['path', { d: 'M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7' }],\n];\n\nexport default Redo;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refresh-ccw-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMCAwLTktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCIgLz4KICA8cGF0aCBkPSJNMyAzdjVoNSIgLz4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDAgOSA5IDkuNzUgOS43NSAwIDAgMCA2Ljc0LTIuNzRMMjEgMTYiIC8+CiAgPHBhdGggZD0iTTE2IDE2aDV2NSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/refresh-ccw-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RefreshCcwDot: IconNode = [\n ['path', { d: 'M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n ['path', { d: 'M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16' }],\n ['path', { d: 'M16 16h5v5' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n];\n\nexport default RefreshCcwDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refresh-ccw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMCAwLTktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCIgLz4KICA8cGF0aCBkPSJNMyAzdjVoNSIgLz4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDAgOSA5IDkuNzUgOS43NSAwIDAgMCA2Ljc0LTIuNzRMMjEgMTYiIC8+CiAgPHBhdGggZD0iTTE2IDE2aDV2NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/refresh-ccw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RefreshCcw: IconNode = [\n ['path', { d: 'M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n ['path', { d: 'M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16' }],\n ['path', { d: 'M16 16h5v5' }],\n];\n\nexport default RefreshCcw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refresh-cw-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOEwxOC43NCA1Ljc0QTkuNzUgOS43NSAwIDAgMCAxMiAzQzExIDMgMTAuMDMgMy4xNiA5LjEzIDMuNDciIC8+CiAgPHBhdGggZD0iTTggMTZIM3Y1IiAvPgogIDxwYXRoIGQ9Ik0zIDEyQzMgOS41MSA0IDcuMjYgNS42NCA1LjY0IiAvPgogIDxwYXRoIGQ9Im0zIDE2IDIuMjYgMi4yNkE5Ljc1IDkuNzUgMCAwIDAgMTIgMjFjMi40OSAwIDQuNzQtMSA2LjM2LTIuNjQiIC8+CiAgPHBhdGggZD0iTTIxIDEyYzAgMS0uMTYgMS45Ny0uNDcgMi44NyIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMiAyMiAyIDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RefreshCwOff: IconNode = [\n ['path', { d: 'M21 8L18.74 5.74A9.75 9.75 0 0 0 12 3C11 3 10.03 3.16 9.13 3.47' }],\n ['path', { d: 'M8 16H3v5' }],\n ['path', { d: 'M3 12C3 9.51 4 7.26 5.64 5.64' }],\n ['path', { d: 'm3 16 2.26 2.26A9.75 9.75 0 0 0 12 21c2.49 0 4.74-1 6.36-2.64' }],\n ['path', { d: 'M21 12c0 1-.16 1.97-.47 2.87' }],\n ['path', { d: 'M21 3v5h-5' }],\n ['path', { d: 'M22 22 2 2' }],\n];\n\nexport default RefreshCwOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refresh-cw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiIgLz4KICA8cGF0aCBkPSJNOCAxNkgzdjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RefreshCw: IconNode = [\n ['path', { d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8' }],\n ['path', { d: 'M21 3v5h-5' }],\n ['path', { d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16' }],\n ['path', { d: 'M8 16H3v5' }],\n];\n\nexport default RefreshCw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name refrigerator\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA2YTQgNCAwIDAgMSA0LTRoNmE0IDQgMCAwIDEgNCA0djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZaIiAvPgogIDxwYXRoIGQ9Ik01IDEwaDE0IiAvPgogIDxwYXRoIGQ9Ik0xNSA3djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refrigerator\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Refrigerator: IconNode = [\n ['path', { d: 'M5 6a4 4 0 0 1 4-4h6a4 4 0 0 1 4 4v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6Z' }],\n ['path', { d: 'M5 10h14' }],\n ['path', { d: 'M15 7v6' }],\n];\n\nexport default Refrigerator;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name regex\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM3YxMCIgLz4KICA8cGF0aCBkPSJtMTIuNjcgNS41IDguNjYgNSIgLz4KICA8cGF0aCBkPSJtMTIuNjcgMTAuNSA4LjY2LTUiIC8+CiAgPHBhdGggZD0iTTkgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJhMiAyIDAgMCAwIDItMnYtMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/regex\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Regex: IconNode = [\n ['path', { d: 'M17 3v10' }],\n ['path', { d: 'm12.67 5.5 8.66 5' }],\n ['path', { d: 'm12.67 10.5 8.66-5' }],\n ['path', { d: 'M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z' }],\n];\n\nexport default Regex;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name remove-formatting\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA3VjRoMTZ2MyIgLz4KICA8cGF0aCBkPSJNNSAyMGg2IiAvPgogIDxwYXRoIGQ9Ik0xMyA0IDggMjAiIC8+CiAgPHBhdGggZD0ibTE1IDE1IDUgNSIgLz4KICA8cGF0aCBkPSJtMjAgMTUtNSA1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/remove-formatting\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RemoveFormatting: IconNode = [\n ['path', { d: 'M4 7V4h16v3' }],\n ['path', { d: 'M5 20h6' }],\n ['path', { d: 'M13 4 8 20' }],\n ['path', { d: 'm15 15 5 5' }],\n ['path', { d: 'm20 15-5 5' }],\n];\n\nexport default RemoveFormatting;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name repeat-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiA5IDMtMyAzIDMiIC8+CiAgPHBhdGggZD0iTTEzIDE4SDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Im0yMiAxNS0zIDMtMy0zIiAvPgogIDxwYXRoIGQ9Ik0xMSA2aDZhMiAyIDAgMCAxIDIgMnYxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/repeat-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Repeat2: IconNode = [\n ['path', { d: 'm2 9 3-3 3 3' }],\n ['path', { d: 'M13 18H7a2 2 0 0 1-2-2V6' }],\n ['path', { d: 'm22 15-3 3-3-3' }],\n ['path', { d: 'M11 6h6a2 2 0 0 1 2 2v10' }],\n];\n\nexport default Repeat2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name repeat-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMiA0IDQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0zIDExdi0xYTQgNCAwIDAgMSA0LTRoMTQiIC8+CiAgPHBhdGggZD0ibTcgMjItNC00IDQtNCIgLz4KICA8cGF0aCBkPSJNMjEgMTN2MWE0IDQgMCAwIDEtNCA0SDMiIC8+CiAgPHBhdGggZD0iTTExIDEwaDF2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/repeat-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Repeat1: IconNode = [\n ['path', { d: 'm17 2 4 4-4 4' }],\n ['path', { d: 'M3 11v-1a4 4 0 0 1 4-4h14' }],\n ['path', { d: 'm7 22-4-4 4-4' }],\n ['path', { d: 'M21 13v1a4 4 0 0 1-4 4H3' }],\n ['path', { d: 'M11 10h1v4' }],\n];\n\nexport default Repeat1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name repeat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMiA0IDQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0zIDExdi0xYTQgNCAwIDAgMSA0LTRoMTQiIC8+CiAgPHBhdGggZD0ibTcgMjItNC00IDQtNCIgLz4KICA8cGF0aCBkPSJNMjEgMTN2MWE0IDQgMCAwIDEtNCA0SDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/repeat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Repeat: IconNode = [\n ['path', { d: 'm17 2 4 4-4 4' }],\n ['path', { d: 'M3 11v-1a4 4 0 0 1 4-4h14' }],\n ['path', { d: 'm7 22-4-4 4-4' }],\n ['path', { d: 'M21 13v1a4 4 0 0 1-4 4H3' }],\n];\n\nexport default Repeat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name replace-all\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEiIC8+CiAgPHBhdGggZD0iTTE0IDRhMSAxIDAgMCAxIDEtMSIgLz4KICA8cGF0aCBkPSJNMTUgMTBhMSAxIDAgMCAxLTEtMSIgLz4KICA8cGF0aCBkPSJNMTkgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEiIC8+CiAgPHBhdGggZD0iTTIxIDRhMSAxIDAgMCAwLTEtMSIgLz4KICA8cGF0aCBkPSJNMjEgOWExIDEgMCAwIDEtMSAxIiAvPgogIDxwYXRoIGQ9Im0zIDcgMyAzIDMtMyIgLz4KICA8cGF0aCBkPSJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiIgLz4KICA8cmVjdCB4PSIzIiB5PSIxNCIgd2lkdGg9IjciIGhlaWdodD0iNyIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/replace-all\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReplaceAll: IconNode = [\n ['path', { d: 'M14 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1' }],\n ['path', { d: 'M14 4a1 1 0 0 1 1-1' }],\n ['path', { d: 'M15 10a1 1 0 0 1-1-1' }],\n ['path', { d: 'M19 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1' }],\n ['path', { d: 'M21 4a1 1 0 0 0-1-1' }],\n ['path', { d: 'M21 9a1 1 0 0 1-1 1' }],\n ['path', { d: 'm3 7 3 3 3-3' }],\n ['path', { d: 'M6 10V5a2 2 0 0 1 2-2h2' }],\n ['rect', { x: '3', y: '14', width: '7', height: '7', rx: '1' }],\n];\n\nexport default ReplaceAll;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name replace\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNGExIDEgMCAwIDEgMS0xIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMGExIDEgMCAwIDEtMS0xIiAvPgogIDxwYXRoIGQ9Ik0yMSA0YTEgMSAwIDAgMC0xLTEiIC8+CiAgPHBhdGggZD0iTTIxIDlhMSAxIDAgMCAxLTEgMSIgLz4KICA8cGF0aCBkPSJtMyA3IDMgMyAzLTMiIC8+CiAgPHBhdGggZD0iTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMTQiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/replace\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Replace: IconNode = [\n ['path', { d: 'M14 4a1 1 0 0 1 1-1' }],\n ['path', { d: 'M15 10a1 1 0 0 1-1-1' }],\n ['path', { d: 'M21 4a1 1 0 0 0-1-1' }],\n ['path', { d: 'M21 9a1 1 0 0 1-1 1' }],\n ['path', { d: 'm3 7 3 3 3-3' }],\n ['path', { d: 'M6 10V5a2 2 0 0 1 2-2h2' }],\n ['rect', { x: '3', y: '14', width: '7', height: '7', rx: '1' }],\n];\n\nexport default Replace;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name reply-all\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTctNS01IDUtNSIgLz4KICA8cGF0aCBkPSJNMjIgMTh2LTJhNCA0IDAgMCAwLTQtNEg3IiAvPgogIDxwYXRoIGQ9Im03IDE3LTUtNSA1LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/reply-all\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ReplyAll: IconNode = [\n ['path', { d: 'm12 17-5-5 5-5' }],\n ['path', { d: 'M22 18v-2a4 4 0 0 0-4-4H7' }],\n ['path', { d: 'm7 17-5-5 5-5' }],\n];\n\nexport default ReplyAll;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name reply\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTh2LTJhNCA0IDAgMCAwLTQtNEg0IiAvPgogIDxwYXRoIGQ9Im05IDE3LTUtNSA1LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/reply\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Reply: IconNode = [\n ['path', { d: 'M20 18v-2a4 4 0 0 0-4-4H4' }],\n ['path', { d: 'm9 17-5-5 5-5' }],\n];\n\nexport default Reply;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rewind\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNmEyIDIgMCAwIDAtMy40MTQtMS40MTRsLTYgNmEyIDIgMCAwIDAgMCAyLjgyOGw2IDZBMiAyIDAgMCAwIDEyIDE4eiIgLz4KICA8cGF0aCBkPSJNMjIgNmEyIDIgMCAwIDAtMy40MTQtMS40MTRsLTYgNmEyIDIgMCAwIDAgMCAyLjgyOGw2IDZBMiAyIDAgMCAwIDIyIDE4eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/rewind\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rewind: IconNode = [\n ['path', { d: 'M12 6a2 2 0 0 0-3.414-1.414l-6 6a2 2 0 0 0 0 2.828l6 6A2 2 0 0 0 12 18z' }],\n ['path', { d: 'M22 6a2 2 0 0 0-3.414-1.414l-6 6a2 2 0 0 0 0 2.828l6 6A2 2 0 0 0 22 18z' }],\n];\n\nexport default Rewind;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ribbon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTEuMjJDMTEgOS45OTcgMTAgOSAxMCA4YTIgMiAwIDAgMSA0IDBjMCAxLS45OTggMi4wMDItMi4wMSAzLjIyIiAvPgogIDxwYXRoIGQ9Im0xMiAxOCAyLjU3LTMuNSIgLz4KICA8cGF0aCBkPSJNNi4yNDMgOS4wMTZhNyA3IDAgMCAxIDExLjUwNy0uMDA5IiAvPgogIDxwYXRoIGQ9Ik05LjM1IDE0LjUzIDEyIDExLjIyIiAvPgogIDxwYXRoIGQ9Ik05LjM1IDE0LjUzQzcuNzI4IDEyLjI0NiA2IDEwLjIyMSA2IDdhNiA1IDAgMCAxIDEyIDBjLS4wMDUgMy4yMi0xLjc3OCA1LjIzNS0zLjQzIDcuNWwzLjU1NyA0LjUyN2ExIDEgMCAwIDEtLjIwMyAxLjQzbC0xLjg5NCAxLjM2YTEgMSAwIDAgMS0xLjM4NC0uMjE1TDEyIDE4bC0yLjY3OSAzLjU5M2ExIDEgMCAwIDEtMS4zOS4yMTNsLTEuODY1LTEuMzUzYTEgMSAwIDAgMS0uMjAzLTEuNDIyeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ribbon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ribbon: IconNode = [\n ['path', { d: 'M12 11.22C11 9.997 10 9 10 8a2 2 0 0 1 4 0c0 1-.998 2.002-2.01 3.22' }],\n ['path', { d: 'm12 18 2.57-3.5' }],\n ['path', { d: 'M6.243 9.016a7 7 0 0 1 11.507-.009' }],\n ['path', { d: 'M9.35 14.53 12 11.22' }],\n [\n 'path',\n {\n d: 'M9.35 14.53C7.728 12.246 6 10.221 6 7a6 5 0 0 1 12 0c-.005 3.22-1.778 5.235-3.43 7.5l3.557 4.527a1 1 0 0 1-.203 1.43l-1.894 1.36a1 1 0 0 1-1.384-.215L12 18l-2.679 3.593a1 1 0 0 1-1.39.213l-1.865-1.353a1 1 0 0 1-.203-1.422z',\n },\n ],\n];\n\nexport default Ribbon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rocket\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC41IDE2LjVjLTEuNSAxLjI2LTIgNS0yIDVzMy43NC0uNSA1LTJjLjcxLS44NC43LTIuMTMtLjA5LTIuOTFhMi4xOCAyLjE4IDAgMCAwLTIuOTEtLjA5eiIgLz4KICA8cGF0aCBkPSJtMTIgMTUtMy0zYTIyIDIyIDAgMCAxIDItMy45NUExMi44OCAxMi44OCAwIDAgMSAyMiAyYzAgMi43Mi0uNzggNy41LTYgMTFhMjIuMzUgMjIuMzUgMCAwIDEtNCAyeiIgLz4KICA8cGF0aCBkPSJNOSAxMkg0cy41NS0zLjAzIDItNGMxLjYyLTEuMDggNSAwIDUgMCIgLz4KICA8cGF0aCBkPSJNMTIgMTV2NXMzLjAzLS41NSA0LTJjMS4wOC0xLjYyIDAtNSAwLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rocket\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rocket: IconNode = [\n [\n 'path',\n {\n d: 'M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z',\n },\n ],\n [\n 'path',\n {\n d: 'm12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z',\n },\n ],\n ['path', { d: 'M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0' }],\n ['path', { d: 'M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5' }],\n];\n\nexport default Rocket;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rocking-chair\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWxpbmUgcG9pbnRzPSIzLjUgMiA2LjUgMTIuNSAxOCAxMi41IiAvPgogIDxsaW5lIHgxPSI5LjUiIHgyPSI1LjUiIHkxPSIxMi41IiB5Mj0iMjAiIC8+CiAgPGxpbmUgeDE9IjE1IiB4Mj0iMTguNSIgeTE9IjEyLjUiIHkyPSIyMCIgLz4KICA8cGF0aCBkPSJNMi43NSAxOGExMyAxMyAwIDAgMCAxOC41IDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rocking-chair\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RockingChair: IconNode = [\n ['polyline', { points: '3.5 2 6.5 12.5 18 12.5' }],\n ['line', { x1: '9.5', x2: '5.5', y1: '12.5', y2: '20' }],\n ['line', { x1: '15', x2: '18.5', y1: '12.5', y2: '20' }],\n ['path', { d: 'M2.75 18a13 13 0 0 0 18.5 0' }],\n];\n\nexport default RockingChair;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name roller-coaster\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxOVY1IiAvPgogIDxwYXRoIGQ9Ik0xMCAxOVY2LjgiIC8+CiAgPHBhdGggZD0iTTE0IDE5di03LjgiIC8+CiAgPHBhdGggZD0iTTE4IDV2NCIgLz4KICA8cGF0aCBkPSJNMTggMTl2LTYiIC8+CiAgPHBhdGggZD0iTTIyIDE5VjkiIC8+CiAgPHBhdGggZD0iTTIgMTlWOWE0IDQgMCAwIDEgNC00YzIgMCA0IDEuMzMgNiA0czQgNCA2IDRhNCA0IDAgMSAwLTMtNi42NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/roller-coaster\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RollerCoaster: IconNode = [\n ['path', { d: 'M6 19V5' }],\n ['path', { d: 'M10 19V6.8' }],\n ['path', { d: 'M14 19v-7.8' }],\n ['path', { d: 'M18 5v4' }],\n ['path', { d: 'M18 19v-6' }],\n ['path', { d: 'M22 19V9' }],\n ['path', { d: 'M2 19V9a4 4 0 0 1 4-4c2 0 4 1.33 6 4s4 4 6 4a4 4 0 1 0-3-6.65' }],\n];\n\nexport default RollerCoaster;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rose\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTBoLTFhNCA0IDAgMSAxIDQtNHYuNTM0IiAvPgogIDxwYXRoIGQ9Ik0xNyA2aDFhNCA0IDAgMCAxIDEuNDIgNy43NGwtMi4yOS44N2E2IDYgMCAwIDEtNS4zMzktMTAuNjhsMi4wNjktMS4zMSIgLz4KICA8cGF0aCBkPSJNNC41IDE3YzIuOC0uNSA0LjQgMCA1LjUuOHMxLjggMi4yIDIuMyAzLjdjLTIgLjQtMy41LjQtNC44LS4zLTEuMi0uNi0yLjMtMS45LTMtNC4yIiAvPgogIDxwYXRoIGQ9Ik05Ljc3IDEyQzQgMTUgMiAyMiAyIDIyIiAvPgogIDxjaXJjbGUgY3g9IjE3IiBjeT0iOCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/rose\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rose: IconNode = [\n ['path', { d: 'M17 10h-1a4 4 0 1 1 4-4v.534' }],\n ['path', { d: 'M17 6h1a4 4 0 0 1 1.42 7.74l-2.29.87a6 6 0 0 1-5.339-10.68l2.069-1.31' }],\n [\n 'path',\n { d: 'M4.5 17c2.8-.5 4.4 0 5.5.8s1.8 2.2 2.3 3.7c-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2' },\n ],\n ['path', { d: 'M9.77 12C4 15 2 22 2 22' }],\n ['circle', { cx: '17', cy: '8', r: '2' }],\n];\n\nexport default Rose;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-3d\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuNDY2IDcuNUMxNS42NDMgNC4yMzcgMTMuOTUyIDIgMTIgMiA5LjIzOSAyIDcgNi40NzcgNyAxMnMyLjIzOSAxMCA1IDEwYy4zNDIgMCAuNjc3LS4wNjkgMS0uMiIgLz4KICA8cGF0aCBkPSJtMTUuMTk0IDEzLjcwNyAzLjgxNCAxLjg2LTEuODYgMy44MTQiIC8+CiAgPHBhdGggZD0iTTE5IDE1LjU3Yy0xLjgwNC44ODUtNC4yNzQgMS40My03IDEuNDMtNS41MjMgMC0xMC0yLjIzOS0xMC01czQuNDc3LTUgMTAtNWM0LjgzOCAwIDguODczIDEuNzE4IDkuOCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rotate-3d\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rotate3d: IconNode = [\n [\n 'path',\n {\n d: 'M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2',\n },\n ],\n ['path', { d: 'm15.194 13.707 3.814 1.86-1.86 3.814' }],\n [\n 'path',\n {\n d: 'M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4',\n },\n ],\n];\n\nexport default Rotate3d;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-ccw-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y2IiAvPgogIDxwYXRoIGQ9Ik0xMiA5aDIiIC8+CiAgPHBhdGggZD0iTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc0IDkuNzQgMCAwIDAtNi43NCAyLjc0TDMgOCIgLz4KICA8cGF0aCBkPSJNMyAzdjVoNSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rotate-ccw-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCcwKey: IconNode = [\n ['path', { d: 'M12 7v6' }],\n ['path', { d: 'M12 9h2' }],\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.74 9.74 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n ['circle', { cx: '12', cy: '15', r: '2' }],\n];\n\nexport default RotateCcwKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-ccw-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgOVY3YTIgMiAwIDAgMC0yLTJoLTYiIC8+CiAgPHBhdGggZD0ibTE1IDItMyAzIDMgMyIgLz4KICA8cGF0aCBkPSJNMjAgMTN2NWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/rotate-ccw-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCcwSquare: IconNode = [\n ['path', { d: 'M20 9V7a2 2 0 0 0-2-2h-6' }],\n ['path', { d: 'm15 2-3 3 3 3' }],\n ['path', { d: 'M20 13v5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2' }],\n];\n\nexport default RotateCcwSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-ccw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4IiAvPgogIDxwYXRoIGQ9Ik0zIDN2NWg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rotate-ccw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCcw: IconNode = [\n ['path', { d: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8' }],\n ['path', { d: 'M3 3v5h5' }],\n];\n\nexport default RotateCcw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-cw-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNUg2YTIgMiAwIDAgMC0yIDJ2MyIgLz4KICA8cGF0aCBkPSJtOSA4IDMtMy0zLTMiIC8+CiAgPHBhdGggZD0iTTQgMTR2NGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rotate-cw-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCwSquare: IconNode = [\n ['path', { d: 'M12 5H6a2 2 0 0 0-2 2v3' }],\n ['path', { d: 'm9 8 3-3-3-3' }],\n ['path', { d: 'M4 14v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2' }],\n];\n\nexport default RotateCwSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rotate-cw\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTktOWMyLjUyIDAgNC45MyAxIDYuNzQgMi43NEwyMSA4IiAvPgogIDxwYXRoIGQ9Ik0yMSAzdjVoLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rotate-cw\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RotateCw: IconNode = [\n ['path', { d: 'M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8' }],\n ['path', { d: 'M21 3v5h-5' }],\n];\n\nexport default RotateCw;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name route-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTkiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTkgMTloOC41Yy40IDAgLjktLjEgMS4zLS4yIiAvPgogIDxwYXRoIGQ9Ik01LjIgNS4yQTMuNSAzLjUzIDAgMCAwIDYuNSAxMkgxMiIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNS4zYTMuNSAzLjUgMCAwIDAtMy4zLTMuMyIgLz4KICA8cGF0aCBkPSJNMTUgNWgtNC4zIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iNSIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/route-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RouteOff: IconNode = [\n ['circle', { cx: '6', cy: '19', r: '3' }],\n ['path', { d: 'M9 19h8.5c.4 0 .9-.1 1.3-.2' }],\n ['path', { d: 'M5.2 5.2A3.5 3.53 0 0 0 6.5 12H12' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M21 15.3a3.5 3.5 0 0 0-3.3-3.3' }],\n ['path', { d: 'M15 5h-4.3' }],\n ['circle', { cx: '18', cy: '5', r: '3' }],\n];\n\nexport default RouteOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name route\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTkiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTkgMTloOC41YTMuNSAzLjUgMCAwIDAgMC03aC0xMWEzLjUgMy41IDAgMCAxIDAtN0gxNSIgLz4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjUiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/route\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Route: IconNode = [\n ['circle', { cx: '6', cy: '19', r: '3' }],\n ['path', { d: 'M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15' }],\n ['circle', { cx: '18', cy: '5', r: '3' }],\n];\n\nexport default Route;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name router\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iOCIgeD0iMiIgeT0iMTQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik02LjAxIDE4SDYiIC8+CiAgPHBhdGggZD0iTTEwLjAxIDE4SDEwIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMHY0IiAvPgogIDxwYXRoIGQ9Ik0xNy44NCA3LjE3YTQgNCAwIDAgMC01LjY2IDAiIC8+CiAgPHBhdGggZD0iTTIwLjY2IDQuMzRhOCA4IDAgMCAwLTExLjMxIDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/router\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Router: IconNode = [\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2' }],\n ['path', { d: 'M6.01 18H6' }],\n ['path', { d: 'M10.01 18H10' }],\n ['path', { d: 'M15 10v4' }],\n ['path', { d: 'M17.84 7.17a4 4 0 0 0-5.66 0' }],\n ['path', { d: 'M20.66 4.34a8 8 0 0 0-11.31 0' }],\n];\n\nexport default Router;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rows-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEyaDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rows-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rows2: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 12h18' }],\n];\n\nexport default Rows2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rows-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMSA5SDMiIC8+CiAgPHBhdGggZD0iTTIxIDE1SDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rows-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rows3: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M21 9H3' }],\n ['path', { d: 'M21 15H3' }],\n];\n\nexport default Rows3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rows-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMSA3LjVIMyIgLz4KICA8cGF0aCBkPSJNMjEgMTJIMyIgLz4KICA8cGF0aCBkPSJNMjEgMTYuNUgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rows-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rows4: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M21 7.5H3' }],\n ['path', { d: 'M21 12H3' }],\n ['path', { d: 'M21 16.5H3' }],\n];\n\nexport default Rows4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name rss\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMWE5IDkgMCAwIDEgOSA5IiAvPgogIDxwYXRoIGQ9Ik00IDRhMTYgMTYgMCAwIDEgMTYgMTYiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE5IiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/rss\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Rss: IconNode = [\n ['path', { d: 'M4 11a9 9 0 0 1 9 9' }],\n ['path', { d: 'M4 4a16 16 0 0 1 16 16' }],\n ['circle', { cx: '5', cy: '19', r: '1' }],\n];\n\nexport default Rss;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ruler-dimension-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTV2LTMiIC8+CiAgPHBhdGggZD0iTTE0IDE1di0zIiAvPgogIDxwYXRoIGQ9Ik0xOCAxNXYtMyIgLz4KICA8cGF0aCBkPSJNMiA4VjQiIC8+CiAgPHBhdGggZD0iTTIyIDZIMiIgLz4KICA8cGF0aCBkPSJNMjIgOFY0IiAvPgogIDxwYXRoIGQ9Ik02IDE1di0zIiAvPgogIDxyZWN0IHg9IjIiIHk9IjEyIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ruler-dimension-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RulerDimensionLine: IconNode = [\n ['path', { d: 'M10 15v-3' }],\n ['path', { d: 'M14 15v-3' }],\n ['path', { d: 'M18 15v-3' }],\n ['path', { d: 'M2 8V4' }],\n ['path', { d: 'M22 6H2' }],\n ['path', { d: 'M22 8V4' }],\n ['path', { d: 'M6 15v-3' }],\n ['rect', { x: '2', y: '12', width: '20', height: '8', rx: '2' }],\n];\n\nexport default RulerDimensionLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name russian-ruble\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxMWg4YTQgNCAwIDAgMCAwLThIOXYxOCIgLz4KICA8cGF0aCBkPSJNNiAxNWg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/russian-ruble\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst RussianRuble: IconNode = [\n ['path', { d: 'M6 11h8a4 4 0 0 0 0-8H9v18' }],\n ['path', { d: 'M6 15h8' }],\n];\n\nexport default RussianRuble;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ruler\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFoiIC8+CiAgPHBhdGggZD0ibTE0LjUgMTIuNSAyLTIiIC8+CiAgPHBhdGggZD0ibTExLjUgOS41IDItMiIgLz4KICA8cGF0aCBkPSJtOC41IDYuNSAyLTIiIC8+CiAgPHBhdGggZD0ibTE3LjUgMTUuNSAyLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ruler\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ruler: IconNode = [\n [\n 'path',\n {\n d: 'M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z',\n },\n ],\n ['path', { d: 'm14.5 12.5 2-2' }],\n ['path', { d: 'm11.5 9.5 2-2' }],\n ['path', { d: 'm8.5 6.5 2-2' }],\n ['path', { d: 'm17.5 15.5 2-2' }],\n];\n\nexport default Ruler;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name salad\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAyMWgxMCIgLz4KICA8cGF0aCBkPSJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIiAvPgogIDxwYXRoIGQ9Ik0xMS4zOCAxMmEyLjQgMi40IDAgMCAxLS40LTQuNzcgMi40IDIuNCAwIDAgMSAzLjItMi43NyAyLjQgMi40IDAgMCAxIDMuNDctLjYzIDIuNCAyLjQgMCAwIDEgMy4zNyAzLjM3IDIuNCAyLjQgMCAwIDEtMS4xIDMuNyAyLjUxIDIuNTEgMCAwIDEgLjAzIDEuMSIgLz4KICA8cGF0aCBkPSJtMTMgMTIgNC00IiAvPgogIDxwYXRoIGQ9Ik0xMC45IDcuMjVBMy45OSAzLjk5IDAgMCAwIDQgMTBjMCAuNzMuMiAxLjQxLjU0IDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/salad\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Salad: IconNode = [\n ['path', { d: 'M7 21h10' }],\n ['path', { d: 'M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z' }],\n [\n 'path',\n {\n d: 'M11.38 12a2.4 2.4 0 0 1-.4-4.77 2.4 2.4 0 0 1 3.2-2.77 2.4 2.4 0 0 1 3.47-.63 2.4 2.4 0 0 1 3.37 3.37 2.4 2.4 0 0 1-1.1 3.7 2.51 2.51 0 0 1 .03 1.1',\n },\n ],\n ['path', { d: 'm13 12 4-4' }],\n ['path', { d: 'M10.9 7.25A3.99 3.99 0 0 0 4 10c0 .73.2 1.41.54 2' }],\n];\n\nexport default Salad;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sailboat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnYxNSIgLz4KICA8cGF0aCBkPSJNNyAyMmE0IDQgMCAwIDEtNC00IDEgMSAwIDAgMSAxLTFoMTZhMSAxIDAgMCAxIDEgMSA0IDQgMCAwIDEtNCA0eiIgLz4KICA8cGF0aCBkPSJNOS4xNTkgMi40NmExIDEgMCAwIDEgMS41MjEtLjE5M2w5Ljk3NyA4Ljk4QTEgMSAwIDAgMSAyMCAxM0g0YTEgMSAwIDAgMS0uODI0LTEuNTY3eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sailboat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sailboat: IconNode = [\n ['path', { d: 'M10 2v15' }],\n ['path', { d: 'M7 22a4 4 0 0 1-4-4 1 1 0 0 1 1-1h16a1 1 0 0 1 1 1 4 4 0 0 1-4 4z' }],\n [\n 'path',\n { d: 'M9.159 2.46a1 1 0 0 1 1.521-.193l9.977 8.98A1 1 0 0 1 20 13H4a1 1 0 0 1-.824-1.567z' },\n ],\n];\n\nexport default Sailboat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sandwich\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMi4zNyAxMS4yMjMgOC4zNzItNi43NzdhMiAyIDAgMCAxIDIuNTE2IDBsOC4zNzEgNi43NzciIC8+CiAgPHBhdGggZD0iTTIxIDE1YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC01LjI1IiAvPgogIDxwYXRoIGQ9Ik0zIDE1YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDkiIC8+CiAgPHBhdGggZD0ibTYuNjcgMTUgNi4xMyA0LjZhMiAyIDAgMCAwIDIuOC0uNGwzLjE1LTQuMiIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNCIgeD0iMiIgeT0iMTEiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sandwich\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sandwich: IconNode = [\n ['path', { d: 'm2.37 11.223 8.372-6.777a2 2 0 0 1 2.516 0l8.371 6.777' }],\n ['path', { d: 'M21 15a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5.25' }],\n ['path', { d: 'M3 15a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9' }],\n ['path', { d: 'm6.67 15 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2' }],\n ['rect', { width: '20', height: '4', x: '2', y: '11', rx: '1' }],\n];\n\nexport default Sandwich;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name satellite-dish\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGE3LjMxIDcuMzEgMCAwIDAgMTAgMTBaIiAvPgogIDxwYXRoIGQ9Im05IDE1IDMtMyIgLz4KICA8cGF0aCBkPSJNMTcgMTNhNiA2IDAgMCAwLTYtNiIgLz4KICA8cGF0aCBkPSJNMjEgMTNBMTAgMTAgMCAwIDAgMTEgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/satellite-dish\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SatelliteDish: IconNode = [\n ['path', { d: 'M4 10a7.31 7.31 0 0 0 10 10Z' }],\n ['path', { d: 'm9 15 3-3' }],\n ['path', { d: 'M17 13a6 6 0 0 0-6-6' }],\n ['path', { d: 'M21 13A10 10 0 0 0 11 3' }],\n];\n\nexport default SatelliteDish;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name satellite\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMuNSA2LjUtMy4xNDgtMy4xNDhhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMEw2LjM1MiA1LjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0TDkuNSAxMC41IiAvPgogIDxwYXRoIGQ9Ik0xNi41IDcuNSAxOSA1IiAvPgogIDxwYXRoIGQ9Im0xNy41IDEwLjUgMy4xNDggMy4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDEtMS43MDQgMEwxMy41IDE0LjUiIC8+CiAgPHBhdGggZD0iTTkgMjFhNiA2IDAgMCAwLTYtNiIgLz4KICA8cGF0aCBkPSJNOS4zNTIgMTAuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw0LjI5Ni00LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwLTEuNzA0bC0yLjI5Ni0yLjI5NmExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/satellite\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Satellite: IconNode = [\n [\n 'path',\n {\n d: 'm13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5',\n },\n ],\n ['path', { d: 'M16.5 7.5 19 5' }],\n [\n 'path',\n {\n d: 'm17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5',\n },\n ],\n ['path', { d: 'M9 21a6 6 0 0 0-6-6' }],\n [\n 'path',\n {\n d: 'M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z',\n },\n ],\n];\n\nexport default Satellite;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name saudi-riyal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjAgMTkuNS01LjUgMS4yIiAvPgogIDxwYXRoIGQ9Ik0xNC41IDR2MTEuMjJhMSAxIDAgMCAwIDEuMjQyLjk3TDIwIDE1LjIiIC8+CiAgPHBhdGggZD0ibTIuOTc4IDE5LjM1MSA1LjU0OS0xLjM2M0EyIDIgMCAwIDAgMTAgMTZWMiIgLz4KICA8cGF0aCBkPSJNMjAgMTAgNCAxMy41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/saudi-riyal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SaudiRiyal: IconNode = [\n ['path', { d: 'm20 19.5-5.5 1.2' }],\n ['path', { d: 'M14.5 4v11.22a1 1 0 0 0 1.242.97L20 15.2' }],\n ['path', { d: 'm2.978 19.351 5.549-1.363A2 2 0 0 0 10 16V2' }],\n ['path', { d: 'M20 10 4 13.5' }],\n];\n\nexport default SaudiRiyal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name save-all\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnYzYTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTggMTh2LTZhMSAxIDAgMCAwLTEtMWgtNmExIDEgMCAwIDAtMSAxdjYiIC8+CiAgPHBhdGggZD0iTTE4IDIySDRhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik04IDE4YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDkuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMi44MjggMi44MjhBMiAyIDAgMCAxIDIyIDYuODI4VjE2YTIgMiAwIDAgMS0yLjAxIDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/save-all\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SaveAll: IconNode = [\n ['path', { d: 'M10 2v3a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M18 18v-6a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v6' }],\n ['path', { d: 'M18 22H4a2 2 0 0 1-2-2V6' }],\n [\n 'path',\n {\n d: 'M8 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9.172a2 2 0 0 1 1.414.586l2.828 2.828A2 2 0 0 1 22 6.828V16a2 2 0 0 1-2.01 2z',\n },\n ],\n];\n\nexport default SaveAll;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name save-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMTNIOGExIDEgMCAwIDAtMSAxdjciIC8+CiAgPHBhdGggZD0iTTE0IDhoMSIgLz4KICA8cGF0aCBkPSJNMTcgMjF2LTQiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMjAuNDEgMjAuNDFBMiAyIDAgMCAxIDE5IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAuNTktMS40MSIgLz4KICA8cGF0aCBkPSJNMjkuNSAxMS41czUgNSA0IDUiIC8+CiAgPHBhdGggZD0iTTkgM2g2LjJhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/save-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SaveOff: IconNode = [\n ['path', { d: 'M13 13H8a1 1 0 0 0-1 1v7' }],\n ['path', { d: 'M14 8h1' }],\n ['path', { d: 'M17 21v-4' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20.41 20.41A2 2 0 0 1 19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 .59-1.41' }],\n ['path', { d: 'M29.5 11.5s5 5 4 5' }],\n ['path', { d: 'M9 3h6.2a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V15' }],\n];\n\nexport default SaveOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name save\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMiAzYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTcgMjF2LTdhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDF2NyIgLz4KICA8cGF0aCBkPSJNNyAzdjRhMSAxIDAgMCAwIDEgMWg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/save\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Save: IconNode = [\n [\n 'path',\n {\n d: 'M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z',\n },\n ],\n ['path', { d: 'M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7' }],\n ['path', { d: 'M7 3v4a1 1 0 0 0 1 1h7' }],\n];\n\nexport default Save;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scale-3d\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA3djExYTEgMSAwIDAgMCAxIDFoMTEiIC8+CiAgPHBhdGggZD0iTTUuMjkzIDE4LjcwNyAxMSAxMyIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjE5IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjUiIGN5PSI1IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/scale-3d\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scale3d: IconNode = [\n ['path', { d: 'M5 7v11a1 1 0 0 0 1 1h11' }],\n ['path', { d: 'M5.293 18.707 11 13' }],\n ['circle', { cx: '19', cy: '19', r: '2' }],\n ['circle', { cx: '5', cy: '5', r: '2' }],\n];\n\nexport default Scale3d;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scale\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cGF0aCBkPSJtMTkgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyIgLz4KICA8cGF0aCBkPSJNMyA3aDFhMTcgMTcgMCAwIDAgOC0yIDE3IDE3IDAgMCAwIDggMmgxIiAvPgogIDxwYXRoIGQ9Im01IDggMyA4YTUgNSAwIDAgMS02IDB6VjciIC8+CiAgPHBhdGggZD0iTTcgMjFoMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scale\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scale: IconNode = [\n ['path', { d: 'M12 3v18' }],\n ['path', { d: 'm19 8 3 8a5 5 0 0 1-6 0zV7' }],\n ['path', { d: 'M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1' }],\n ['path', { d: 'm5 8 3 8a5 5 0 0 1-6 0zV7' }],\n ['path', { d: 'M7 21h10' }],\n];\n\nexport default Scale;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scaling\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNUg5di01IiAvPgogIDxwYXRoIGQ9Ik0xNiAzaDV2NSIgLz4KICA8cGF0aCBkPSJNMjEgMyA5IDE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/scaling\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scaling: IconNode = [\n ['path', { d: 'M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7' }],\n ['path', { d: 'M14 15H9v-5' }],\n ['path', { d: 'M16 3h5v5' }],\n ['path', { d: 'M21 3 9 15' }],\n];\n\nexport default Scaling;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-eye\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIC8+CiAgPHBhdGggZD0iTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/scan-eye\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanEye: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n [\n 'path',\n {\n d: 'M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0',\n },\n ],\n];\n\nexport default ScanEye;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-barcode\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik04IDd2MTAiIC8+CiAgPHBhdGggZD0iTTEyIDd2MTAiIC8+CiAgPHBhdGggZD0iTTE3IDd2MTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scan-barcode\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanBarcode: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M8 7v10' }],\n ['path', { d: 'M12 7v10' }],\n ['path', { d: 'M17 7v10' }],\n];\n\nexport default ScanBarcode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-face\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIiAvPgogIDxwYXRoIGQ9Ik05IDloLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNSA5aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/scan-face\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanFace: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M8 14s1.5 2 4 2 4-2 4-2' }],\n ['path', { d: 'M9 9h.01' }],\n ['path', { d: 'M15 9h.01' }],\n];\n\nexport default ScanFace;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-heart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiIgLz4KICA8cGF0aCBkPSJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIiAvPgogIDxwYXRoIGQ9Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDQuMTcyIDQuMzA2bC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ0OSAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/scan-heart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanHeart: IconNode = [\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n [\n 'path',\n { d: 'M7.828 13.07A3 3 0 0 1 12 8.764a3 3 0 0 1 4.172 4.306l-3.447 3.62a1 1 0 0 1-1.449 0z' },\n ],\n];\n\nexport default ScanHeart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-line\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik03IDEyaDEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/scan-line\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanLine: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M7 12h10' }],\n];\n\nexport default ScanLine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-qr-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTJ2NGExIDEgMCAwIDEtMSAxaC00IiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNyA4VjciIC8+CiAgPHBhdGggZD0iTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiIgLz4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik03IDE3aC4wMSIgLz4KICA8cGF0aCBkPSJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIiIC8+CiAgPHJlY3QgeD0iNyIgeT0iNyIgd2lkdGg9IjUiIGhlaWdodD0iNSIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scan-qr-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanQrCode: IconNode = [\n ['path', { d: 'M17 12v4a1 1 0 0 1-1 1h-4' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M17 8V7' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M7 17h.01' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['rect', { x: '7', y: '7', width: '5', height: '5', rx: '1' }],\n];\n\nexport default ScanQrCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTE2IDE2LTEuOS0xLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scan-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanSearch: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['path', { d: 'm16 16-1.9-1.9' }],\n];\n\nexport default ScanSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxwYXRoIGQ9Ik03IDhoOCIgLz4KICA8cGF0aCBkPSJNNyAxMmgxMCIgLz4KICA8cGF0aCBkPSJNNyAxNmg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/scan-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScanText: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M7 8h8' }],\n ['path', { d: 'M7 12h10' }],\n ['path', { d: 'M7 16h6' }],\n];\n\nexport default ScanText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scan\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/scan\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scan: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2' }],\n];\n\nexport default Scan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name school\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIiAvPgogIDxwYXRoIGQ9Ik0xOCA1djE2IiAvPgogIDxwYXRoIGQ9Im00IDYgNy4xMDYtMy43OWEyIDIgMCAwIDEgMS43ODggMEwyMCA2IiAvPgogIDxwYXRoIGQ9Im02IDExLTMuNTIgMi4xNDdhMSAxIDAgMCAwLS40OC44NTRWMTlhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0uNDgtLjg1M0wxOCAxMSIgLz4KICA8cGF0aCBkPSJNNiA1djE2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iOSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/school\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst School: IconNode = [\n ['path', { d: 'M14 21v-3a2 2 0 0 0-4 0v3' }],\n ['path', { d: 'M18 5v16' }],\n ['path', { d: 'm4 6 7.106-3.79a2 2 0 0 1 1.788 0L20 6' }],\n [\n 'path',\n {\n d: 'm6 11-3.52 2.147a1 1 0 0 0-.48.854V19a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a1 1 0 0 0-.48-.853L18 11',\n },\n ],\n ['path', { d: 'M6 5v16' }],\n ['circle', { cx: '12', cy: '9', r: '2' }],\n];\n\nexport default School;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scissors-line-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNS40MiA5LjQyIDggMTIiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjgiIHI9IjIiIC8+CiAgPHBhdGggZD0ibTE0IDYtOC41OCA4LjU4IiAvPgogIDxjaXJjbGUgY3g9IjQiIGN5PSIxNiIgcj0iMiIgLz4KICA8cGF0aCBkPSJNMTAuOCAxNC44IDE0IDE4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMmgtMiIgLz4KICA8cGF0aCBkPSJNMjIgMTJoLTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scissors-line-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScissorsLineDashed: IconNode = [\n ['path', { d: 'M5.42 9.42 8 12' }],\n ['circle', { cx: '4', cy: '8', r: '2' }],\n ['path', { d: 'm14 6-8.58 8.58' }],\n ['circle', { cx: '4', cy: '16', r: '2' }],\n ['path', { d: 'M10.8 14.8 14 18' }],\n ['path', { d: 'M16 12h-2' }],\n ['path', { d: 'M22 12h-2' }],\n];\n\nexport default ScissorsLineDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scissors\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNOC4xMiA4LjEyIDEyIDEyIiAvPgogIDxwYXRoIGQ9Ik0yMCA0IDguMTIgMTUuODgiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xNC44IDE0LjggMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scissors\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scissors: IconNode = [\n ['circle', { cx: '6', cy: '6', r: '3' }],\n ['path', { d: 'M8.12 8.12 12 12' }],\n ['path', { d: 'M20 4 8.12 15.88' }],\n ['circle', { cx: '6', cy: '18', r: '3' }],\n ['path', { d: 'M14.8 14.8 20 20' }],\n];\n\nexport default Scissors;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scooter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNGgtMy41bDIgMTEuMDUiIC8+CiAgPHBhdGggZD0iTTYuOTUgMTdoNS4xNDJjLjUyMyAwIC45NS0uNDA2IDEuMDYzLS45MTZhNi41IDYuNSAwIDAgMSA1LjM0NS01LjAwOSIgLz4KICA8Y2lyY2xlIGN4PSIxOS41IiBjeT0iMTcuNSIgcj0iMi41IiAvPgogIDxjaXJjbGUgY3g9IjQuNSIgY3k9IjE3LjUiIHI9IjIuNSIgLz4KPC9zdmc+) - https://lucide.dev/icons/scooter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scooter: IconNode = [\n ['path', { d: 'M21 4h-3.5l2 11.05' }],\n ['path', { d: 'M6.95 17h5.142c.523 0 .95-.406 1.063-.916a6.5 6.5 0 0 1 5.345-5.009' }],\n ['circle', { cx: '19.5', cy: '17.5', r: '2.5' }],\n ['circle', { cx: '4.5', cy: '17.5', r: '2.5' }],\n];\n\nexport default Scooter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name screen-share-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zIiAvPgogIDxwYXRoIGQ9Ik04IDIxaDgiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0ibTIyIDMtNSA1IiAvPgogIDxwYXRoIGQ9Im0xNyAzIDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/screen-share-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScreenShareOff: IconNode = [\n ['path', { d: 'M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3' }],\n ['path', { d: 'M8 21h8' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'm22 3-5 5' }],\n ['path', { d: 'm17 3 5 5' }],\n];\n\nexport default ScreenShareOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name screen-share\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0zIiAvPgogIDxwYXRoIGQ9Ik04IDIxaDgiIC8+CiAgPHBhdGggZD0iTTEyIDE3djQiIC8+CiAgPHBhdGggZD0ibTE3IDggNS01IiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDV2NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/screen-share\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScreenShare: IconNode = [\n ['path', { d: 'M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3' }],\n ['path', { d: 'M8 21h8' }],\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'm17 8 5-5' }],\n ['path', { d: 'M17 3h5v5' }],\n];\n\nexport default ScreenShare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scroll\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQiIC8+CiAgPHBhdGggZD0iTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/scroll\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Scroll: IconNode = [\n ['path', { d: 'M19 17V5a2 2 0 0 0-2-2H4' }],\n [\n 'path',\n {\n d: 'M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3',\n },\n ],\n];\n\nexport default Scroll;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name scroll-text\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMTJoLTUiIC8+CiAgPHBhdGggZD0iTTE1IDhoLTUiIC8+CiAgPHBhdGggZD0iTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0IiAvPgogIDxwYXRoIGQ9Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scroll-text\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ScrollText: IconNode = [\n ['path', { d: 'M15 12h-5' }],\n ['path', { d: 'M15 8h-5' }],\n ['path', { d: 'M19 17V5a2 2 0 0 0-2-2H4' }],\n [\n 'path',\n {\n d: 'M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3',\n },\n ],\n];\n\nexport default ScrollText;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxwYXRoIGQ9Im0yMSAyMS00LjMtNC4zIiAvPgogIDxwYXRoIGQ9Ik0xMSA3djQiIC8+CiAgPHBhdGggZD0iTTExIDE1aC4wMSIgLz4KPC9zdmc+) - https://lucide.dev/icons/search-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SearchAlert: IconNode = [\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n ['path', { d: 'M11 7v4' }],\n ['path', { d: 'M11 15h.01' }],\n];\n\nexport default SearchAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOCAxMSAyIDIgNC00IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+CiAgPHBhdGggZD0ibTIxIDIxLTQuMy00LjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SearchCheck: IconNode = [\n ['path', { d: 'm8 11 2 2 4-4' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n];\n\nexport default SearchCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMgMTMuNSAyLTIuNS0yLTIuNSIgLz4KICA8cGF0aCBkPSJtMjEgMjEtNC4zLTQuMyIgLz4KICA8cGF0aCBkPSJNOSA4LjUgNyAxMWwyIDIuNSIgLz4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/search-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SearchCode: IconNode = [\n ['path', { d: 'm13 13.5 2-2.5-2-2.5' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n ['path', { d: 'M9 8.5 7 11l2 2.5' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n];\n\nexport default SearchCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search-slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMuNSA4LjUtNSA1IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+CiAgPHBhdGggZD0ibTIxIDIxLTQuMy00LjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search-slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SearchSlash: IconNode = [\n ['path', { d: 'm13.5 8.5-5 5' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n];\n\nexport default SearchSlash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTMuNSA4LjUtNSA1IiAvPgogIDxwYXRoIGQ9Im04LjUgOC41IDUgNSIgLz4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxwYXRoIGQ9Im0yMSAyMS00LjMtNC4zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/search-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SearchX: IconNode = [\n ['path', { d: 'm13.5 8.5-5 5' }],\n ['path', { d: 'm8.5 8.5 5 5' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['path', { d: 'm21 21-4.3-4.3' }],\n];\n\nexport default SearchX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Search: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34' }],\n ['circle', { cx: '11', cy: '11', r: '8' }],\n];\n\nexport default Search;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name section\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNWE0IDMgMCAwIDAtOCAwYzAgNCA4IDMgOCA3YTQgMyAwIDAgMS04IDAiIC8+CiAgPHBhdGggZD0iTTggMTlhNCAzIDAgMCAwIDggMGMwLTQtOC0zLTgtN2E0IDMgMCAwIDEgOCAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/section\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Section: IconNode = [\n ['path', { d: 'M16 5a4 3 0 0 0-8 0c0 4 8 3 8 7a4 3 0 0 1-8 0' }],\n ['path', { d: 'M8 19a4 3 0 0 0 8 0c0-4-8-3-8-7a4 3 0 0 1 8 0' }],\n];\n\nexport default Section;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name send-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy43MTQgMy4wNDhhLjQ5OC40OTggMCAwIDAtLjY4My42MjdsMi44NDMgNy42MjdhMiAyIDAgMCAxIDAgMS4zOTZsLTIuODQyIDcuNjI3YS40OTguNDk4IDAgMCAwIC42ODIuNjI3bDE4LTguNWEuNS41IDAgMCAwIDAtLjkwNHoiIC8+CiAgPHBhdGggZD0iTTYgMTJoMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/send-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SendHorizontal: IconNode = [\n [\n 'path',\n {\n d: 'M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z',\n },\n ],\n ['path', { d: 'M6 12h16' }],\n];\n\nexport default SendHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name send-to-back\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIyIiAvPgogIDxyZWN0IHg9IjIiIHk9IjIiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDE0djFhMiAyIDAgMCAwIDIgMmgxIiAvPgogIDxwYXRoIGQ9Ik0xNCA3aDFhMiAyIDAgMCAxIDIgMnYxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send-to-back\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SendToBack: IconNode = [\n ['rect', { x: '14', y: '14', width: '8', height: '8', rx: '2' }],\n ['rect', { x: '2', y: '2', width: '8', height: '8', rx: '2' }],\n ['path', { d: 'M7 14v1a2 2 0 0 0 2 2h1' }],\n ['path', { d: 'M14 7h1a2 2 0 0 1 2 2v1' }],\n];\n\nexport default SendToBack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name send\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6IiAvPgogIDxwYXRoIGQ9Im0yMS44NTQgMi4xNDctMTAuOTQgMTAuOTM5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Send: IconNode = [\n [\n 'path',\n {\n d: 'M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939' }],\n];\n\nexport default Send;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name separator-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cGF0aCBkPSJtMTYgMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJtOCA4LTQgNCA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/separator-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SeparatorVertical: IconNode = [\n ['path', { d: 'M12 3v18' }],\n ['path', { d: 'm16 16 4-4-4-4' }],\n ['path', { d: 'm8 8-4 4 4 4' }],\n];\n\nexport default SeparatorVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name separator-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTYtNCA0LTQtNCIgLz4KICA8cGF0aCBkPSJNMyAxMmgxOCIgLz4KICA8cGF0aCBkPSJtOCA4IDQtNCA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/separator-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SeparatorHorizontal: IconNode = [\n ['path', { d: 'm16 16-4 4-4-4' }],\n ['path', { d: 'M3 12h18' }],\n ['path', { d: 'm8 8 4-4 4 4' }],\n];\n\nexport default SeparatorHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name server-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyIgLz4KICA8cGF0aCBkPSJNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyIgLz4KICA8cGF0aCBkPSJtMTMuMTQ4IDkuMjI4LjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xMy41MyAxNS42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCIgLz4KICA8cGF0aCBkPSJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyIgLz4KICA8cGF0aCBkPSJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIiAvPgogIDxwYXRoIGQ9Ik00LjUgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtLjUiIC8+CiAgPHBhdGggZD0iTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUiIC8+CiAgPHBhdGggZD0iTTYgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik02IDZoLjAxIiAvPgogIDxwYXRoIGQ9Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIiAvPgogIDxwYXRoIGQ9Im05LjIyOCAxMy4xNDgtLjkyMy4zODMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/server-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ServerCog: IconNode = [\n ['path', { d: 'm10.852 14.772-.383.923' }],\n ['path', { d: 'M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923' }],\n ['path', { d: 'm13.148 9.228.383-.923' }],\n ['path', { d: 'm13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544' }],\n ['path', { d: 'm14.772 10.852.923-.383' }],\n ['path', { d: 'm14.772 13.148.923.383' }],\n ['path', { d: 'M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5' }],\n ['path', { d: 'M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'M6 6h.01' }],\n ['path', { d: 'm9.228 10.852-.923-.383' }],\n ['path', { d: 'm9.228 13.148-.923.383' }],\n];\n\nexport default ServerCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name server-crash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC0yIiAvPgogIDxwYXRoIGQ9Ik02IDE0SDRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC0yIiAvPgogIDxwYXRoIGQ9Ik02IDZoLjAxIiAvPgogIDxwYXRoIGQ9Ik02IDE4aC4wMSIgLz4KICA8cGF0aCBkPSJtMTMgNi00IDZoNmwtNCA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/server-crash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ServerCrash: IconNode = [\n ['path', { d: 'M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2' }],\n ['path', { d: 'M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2' }],\n ['path', { d: 'M6 6h.01' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'm13 6-4 6h6l-4 6' }],\n];\n\nexport default ServerCrash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name server-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAyaDEzYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC01IiAvPgogIDxwYXRoIGQ9Ik0xMCAxMCAyLjUgMi41QzIgMiAyIDIuNSAyIDV2M2EyIDIgMCAwIDAgMiAyaDZ6IiAvPgogIDxwYXRoIGQ9Ik0yMiAxN3YtMWEyIDIgMCAwIDAtMi0yaC0xIiAvPgogIDxwYXRoIGQ9Ik00IDE0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2LjVsMS0uNS41LjUtOC04SDR6IiAvPgogIDxwYXRoIGQ9Ik02IDE4aC4wMSIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/server-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ServerOff: IconNode = [\n ['path', { d: 'M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5' }],\n ['path', { d: 'M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z' }],\n ['path', { d: 'M22 17v-1a2 2 0 0 0-2-2h-1' }],\n ['path', { d: 'M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z' }],\n ['path', { d: 'M6 18h.01' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default ServerOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name server\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iOCIgeD0iMiIgeT0iMiIgcng9IjIiIHJ5PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiB4PSIyIiB5PSIxNCIgcng9IjIiIHJ5PSIyIiAvPgogIDxsaW5lIHgxPSI2IiB4Mj0iNi4wMSIgeTE9IjYiIHkyPSI2IiAvPgogIDxsaW5lIHgxPSI2IiB4Mj0iNi4wMSIgeTE9IjE4IiB5Mj0iMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/server\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Server: IconNode = [\n ['rect', { width: '20', height: '8', x: '2', y: '2', rx: '2', ry: '2' }],\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2', ry: '2' }],\n ['line', { x1: '6', x2: '6.01', y1: '6', y2: '6' }],\n ['line', { x1: '6', x2: '6.01', y1: '18', y2: '18' }],\n];\n\nexport default Server;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name settings-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTdINSIgLz4KICA8cGF0aCBkPSJNMTkgN2gtOSIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE3IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSI3IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/settings-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Settings2: IconNode = [\n ['path', { d: 'M14 17H5' }],\n ['path', { d: 'M19 7h-9' }],\n ['circle', { cx: '17', cy: '17', r: '3' }],\n ['circle', { cx: '7', cy: '7', r: '3' }],\n];\n\nexport default Settings2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name settings\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOS42NzEgNC4xMzZhMi4zNCAyLjM0IDAgMCAxIDQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwIDMuMzE5IDEuOTE1IDIuMzQgMi4zNCAwIDAgMSAyLjMzIDQuMDMzIDIuMzQgMi4zNCAwIDAgMCAwIDMuODMxIDIuMzQgMi4zNCAwIDAgMS0yLjMzIDQuMDMzIDIuMzQgMi4zNCAwIDAgMC0zLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEtNC42NTkgMCAyLjM0IDIuMzQgMCAwIDAtMy4zMi0xLjkxNSAyLjM0IDIuMzQgMCAwIDEtMi4zMy00LjAzMyAyLjM0IDIuMzQgMCAwIDAgMC0zLjgzMUEyLjM0IDIuMzQgMCAwIDEgNi4zNSA2LjA1MWEyLjM0IDIuMzQgMCAwIDAgMy4zMTktMS45MTUiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/settings\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Settings: IconNode = [\n [\n 'path',\n {\n d: 'M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n];\n\nexport default Settings;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shapes\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOC4zIDEwYS43LjcgMCAwIDEtLjYyNi0xLjA3OUwxMS40IDNhLjcuNyAwIDAgMSAxLjE5OC0uMDQzTDE2LjMgOC45YS43LjcgMCAwIDEtLjU3MiAxLjFaIiAvPgogIDxyZWN0IHg9IjMiIHk9IjE0IiB3aWR0aD0iNyIgaGVpZ2h0PSI3IiByeD0iMSIgLz4KICA8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTcuNSIgcj0iMy41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shapes\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shapes: IconNode = [\n [\n 'path',\n {\n d: 'M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z',\n },\n ],\n ['rect', { x: '3', y: '14', width: '7', height: '7', rx: '1' }],\n ['circle', { cx: '17.5', cy: '17.5', r: '3.5' }],\n];\n\nexport default Shapes;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name share-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjUiIHI9IjMiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjEyIiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTkiIHI9IjMiIC8+CiAgPGxpbmUgeDE9IjguNTkiIHgyPSIxNS40MiIgeTE9IjEzLjUxIiB5Mj0iMTcuNDkiIC8+CiAgPGxpbmUgeDE9IjE1LjQxIiB4Mj0iOC41OSIgeTE9IjYuNTEiIHkyPSIxMC40OSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/share-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Share2: IconNode = [\n ['circle', { cx: '18', cy: '5', r: '3' }],\n ['circle', { cx: '6', cy: '12', r: '3' }],\n ['circle', { cx: '18', cy: '19', r: '3' }],\n ['line', { x1: '8.59', x2: '15.42', y1: '13.51', y2: '17.49' }],\n ['line', { x1: '15.41', x2: '8.59', y1: '6.51', y2: '10.49' }],\n];\n\nexport default Share2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name share\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYxMyIgLz4KICA8cGF0aCBkPSJtMTYgNi00LTQtNCA0IiAvPgogIDxwYXRoIGQ9Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/share\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Share: IconNode = [\n ['path', { d: 'M12 2v13' }],\n ['path', { d: 'm16 6-4-4-4 4' }],\n ['path', { d: 'M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8' }],\n];\n\nexport default Share;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sheet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8bGluZSB4MT0iMyIgeDI9IjIxIiB5MT0iOSIgeTI9IjkiIC8+CiAgPGxpbmUgeDE9IjMiIHgyPSIyMSIgeTE9IjE1IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjkiIHgyPSI5IiB5MT0iOSIgeTI9IjIxIiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjE1IiB5MT0iOSIgeTI9IjIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sheet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sheet: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['line', { x1: '3', x2: '21', y1: '9', y2: '9' }],\n ['line', { x1: '3', x2: '21', y1: '15', y2: '15' }],\n ['line', { x1: '9', x2: '9', y1: '9', y2: '21' }],\n ['line', { x1: '15', x2: '15', y1: '9', y2: '21' }],\n];\n\nexport default Sheet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shell\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTFhMiAyIDAgMSAxLTQgMCA0IDQgMCAwIDEgOCAwIDYgNiAwIDAgMS0xMiAwIDggOCAwIDAgMSAxNiAwIDEwIDEwIDAgMSAxLTIwIDAgMTEuOTMgMTEuOTMgMCAwIDEgMi40Mi03LjIyIDIgMiAwIDEgMSAzLjE2IDIuNDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shell\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shell: IconNode = [\n [\n 'path',\n {\n d: 'M14 11a2 2 0 1 1-4 0 4 4 0 0 1 8 0 6 6 0 0 1-12 0 8 8 0 0 1 16 0 10 10 0 1 1-20 0 11.93 11.93 0 0 1 2.42-7.22 2 2 0 1 1 3.16 2.44',\n },\n ],\n];\n\nexport default Shell;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTEyIDh2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTZoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shield-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldAlert: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M12 8v4' }],\n ['path', { d: 'M12 16h.01' }],\n];\n\nexport default ShieldAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-ban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTQuMjQzIDUuMjEgMTQuMzkgMTIuNDcyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shield-ban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldBan: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'm4.243 5.21 14.39 12.472' }],\n];\n\nexport default ShieldBan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTkgMTIgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldCheck: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default ShieldCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-ellipsis\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-ellipsis\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldEllipsis: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M8 12h.01' }],\n ['path', { d: 'M12 12h.01' }],\n ['path', { d: 'M16 12h.01' }],\n];\n\nexport default ShieldEllipsis;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-half\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTEyIDIyVjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield-half\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldHalf: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M12 22V2' }],\n];\n\nexport default ShieldHalf;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTkgMTJoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldMinus: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M9 12h6' }],\n];\n\nexport default ShieldMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik01IDVhMSAxIDAgMCAwLTEgMXY3YzAgNSAzLjUgNy41IDcuNjcgOC45NGExIDEgMCAwIDAgLjY3LjAxYzIuMzUtLjgyIDQuNDgtMS45NyA1LjktMy43MSIgLz4KICA8cGF0aCBkPSJNOS4zMDkgMy42NTJBMTIuMjUyIDEyLjI1MiAwIDAgMCAxMS4yNCAyLjI4YTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXY3YTkuNzg0IDkuNzg0IDAgMCAxLS4wOCAxLjI2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldOff: IconNode = [\n ['path', { d: 'm2 2 20 20' }],\n [\n 'path',\n {\n d: 'M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71',\n },\n ],\n [\n 'path',\n {\n d: 'M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264',\n },\n ],\n];\n\nexport default ShieldOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTkgMTJoNiIgLz4KICA8cGF0aCBkPSJNMTIgOXY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shield-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldPlus: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M9 12h6' }],\n ['path', { d: 'M12 9v6' }],\n];\n\nexport default ShieldPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-question-mark\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTkuMSA5YTMgMyAwIDAgMSA1LjgyIDFjMCAyLTMgMy0zIDMiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shield-question-mark\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldQuestionMark: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default ShieldQuestionMark;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0iTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTEiIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield-user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldUser: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'M6.376 18.91a6 6 0 0 1 11.249.003' }],\n ['circle', { cx: '12', cy: '11', r: '4' }],\n];\n\nexport default ShieldUser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+CiAgPHBhdGggZD0ibTE0LjUgOS41LTUgNSIgLz4KICA8cGF0aCBkPSJtOS41IDkuNSA1IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShieldX: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n ['path', { d: 'm14.5 9.5-5 5' }],\n ['path', { d: 'm9.5 9.5 5 5' }],\n];\n\nexport default ShieldX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shield\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shield: IconNode = [\n [\n 'path',\n {\n d: 'M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z',\n },\n ],\n];\n\nexport default Shield;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ship-wheel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjcuNSIgLz4KICA8cGF0aCBkPSJtMTkgNS01LjIzIDUuMjMiIC8+CiAgPHBhdGggZD0iTTIyIDEyaC03LjUiIC8+CiAgPHBhdGggZD0ibTE5IDE5LTUuMjMtNS4yMyIgLz4KICA8cGF0aCBkPSJNMTIgMTQuNVYyMiIgLz4KICA8cGF0aCBkPSJNMTAuMjMgMTMuNzcgNSAxOSIgLz4KICA8cGF0aCBkPSJNOS41IDEySDIiIC8+CiAgPHBhdGggZD0iTTEwLjIzIDEwLjIzIDUgNSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyLjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ship-wheel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShipWheel: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '8' }],\n ['path', { d: 'M12 2v7.5' }],\n ['path', { d: 'm19 5-5.23 5.23' }],\n ['path', { d: 'M22 12h-7.5' }],\n ['path', { d: 'm19 19-5.23-5.23' }],\n ['path', { d: 'M12 14.5V22' }],\n ['path', { d: 'M10.23 13.77 5 19' }],\n ['path', { d: 'M9.5 12H2' }],\n ['path', { d: 'M10.23 10.23 5 5' }],\n ['circle', { cx: '12', cy: '12', r: '2.5' }],\n];\n\nexport default ShipWheel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ship\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTAuMTg5VjE0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjMiIC8+CiAgPHBhdGggZD0iTTE5IDEzVjdhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2NiIgLz4KICA8cGF0aCBkPSJNMTkuMzggMjBBMTEuNiAxMS42IDAgMCAwIDIxIDE0bC04LjE4OC0zLjYzOWEyIDIgMCAwIDAtMS42MjQgMEwzIDE0YTExLjYgMTEuNiAwIDAgMCAyLjgxIDcuNzYiIC8+CiAgPHBhdGggZD0iTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDFzMS4yIDEgMi41IDFjMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ship\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ship: IconNode = [\n ['path', { d: 'M12 10.189V14' }],\n ['path', { d: 'M12 2v3' }],\n ['path', { d: 'M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6' }],\n [\n 'path',\n {\n d: 'M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76',\n },\n ],\n [\n 'path',\n {\n d: 'M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n];\n\nexport default Ship;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shirt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAuMzggMy40NiAxNiAyYTQgNCAwIDAgMS04IDBMMy42MiAzLjQ2YTIgMiAwIDAgMC0xLjM0IDIuMjNsLjU4IDMuNDdhMSAxIDAgMCAwIC45OS44NEg2djEwYzAgMS4xLjkgMiAyIDJoOGEyIDIgMCAwIDAgMi0yVjEwaDIuMTVhMSAxIDAgMCAwIC45OS0uODRsLjU4LTMuNDdhMiAyIDAgMCAwLTEuMzQtMi4yM3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shirt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shirt: IconNode = [\n [\n 'path',\n {\n d: 'M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z',\n },\n ],\n];\n\nexport default Shirt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shopping-bag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTBhNCA0IDAgMCAxLTggMCIgLz4KICA8cGF0aCBkPSJNMy4xMDMgNi4wMzRoMTcuNzk0IiAvPgogIDxwYXRoIGQ9Ik0zLjQgNS40NjdhMiAyIDAgMCAwLS40IDEuMlYyMGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNi42NjdhMiAyIDAgMCAwLS40LTEuMmwtMi0yLjY2N0EyIDIgMCAwIDAgMTcgMkg3YTIgMiAwIDAgMC0xLjYuOHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shopping-bag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShoppingBag: IconNode = [\n ['path', { d: 'M16 10a4 4 0 0 1-8 0' }],\n ['path', { d: 'M3.103 6.034h17.794' }],\n [\n 'path',\n {\n d: 'M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z',\n },\n ],\n];\n\nexport default ShoppingBag;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shopping-basket\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTEtMSA5IiAvPgogIDxwYXRoIGQ9Im0xOSAxMS00LTciIC8+CiAgPHBhdGggZD0iTTIgMTFoMjAiIC8+CiAgPHBhdGggZD0ibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQiIC8+CiAgPHBhdGggZD0iTTQuNSAxNS41aDE1IiAvPgogIDxwYXRoIGQ9Im01IDExIDQtNyIgLz4KICA8cGF0aCBkPSJtOSAxMSAxIDkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shopping-basket\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShoppingBasket: IconNode = [\n ['path', { d: 'm15 11-1 9' }],\n ['path', { d: 'm19 11-4-7' }],\n ['path', { d: 'M2 11h20' }],\n ['path', { d: 'm3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4' }],\n ['path', { d: 'M4.5 15.5h15' }],\n ['path', { d: 'm5 11 4-7' }],\n ['path', { d: 'm9 11 1 9' }],\n];\n\nexport default ShoppingBasket;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shopping-cart\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI4IiBjeT0iMjEiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iMTkiIGN5PSIyMSIgcj0iMSIgLz4KICA8cGF0aCBkPSJNMi4wNSAyLjA1aDJsMi42NiAxMi40MmEyIDIgMCAwIDAgMiAxLjU4aDkuNzhhMiAyIDAgMCAwIDEuOTUtMS41N2wxLjY1LTcuNDNINS4xMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shopping-cart\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShoppingCart: IconNode = [\n ['circle', { cx: '8', cy: '21', r: '1' }],\n ['circle', { cx: '19', cy: '21', r: '1' }],\n [\n 'path',\n { d: 'M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12' },\n ],\n];\n\nexport default ShoppingCart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shovel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEuNTYgNC41NmExLjUgMS41IDAgMCAxIDAgMi4xMjJsLS40Ny40N2EzIDMgMCAwIDEtNC4yMTItLjAzIDMgMyAwIDAgMSAwLTQuMjQzbC40NC0uNDRhMS41IDEuNSAwIDAgMSAyLjEyMSAweiIgLz4KICA8cGF0aCBkPSJNMyAyMmExIDEgMCAwIDEtMS0xdi0zLjU4NmExIDEgMCAwIDEgLjI5My0uNzA3bDMuMzU1LTMuMzU1YTEuMjA1IDEuMjA1IDAgMCAxIDEuNzA0IDBsMy4yOTYgMy4yOTZhMS4yMDUgMS4yMDUgMCAwIDEgMCAxLjcwNGwtMy4zNTUgMy4zNTVhMSAxIDAgMCAxLS43MDcuMjkzeiIgLz4KICA8cGF0aCBkPSJtOSAxNSA3Ljg3OS03Ljg3OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shovel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shovel: IconNode = [\n [\n 'path',\n {\n d: 'M21.56 4.56a1.5 1.5 0 0 1 0 2.122l-.47.47a3 3 0 0 1-4.212-.03 3 3 0 0 1 0-4.243l.44-.44a1.5 1.5 0 0 1 2.121 0z',\n },\n ],\n [\n 'path',\n {\n d: 'M3 22a1 1 0 0 1-1-1v-3.586a1 1 0 0 1 .293-.707l3.355-3.355a1.205 1.205 0 0 1 1.704 0l3.296 3.296a1.205 1.205 0 0 1 0 1.704l-3.355 3.355a1 1 0 0 1-.707.293z',\n },\n ],\n ['path', { d: 'm9 15 7.879-7.878' }],\n];\n\nexport default Shovel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shower-head\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNCA0IDIuNSAyLjUiIC8+CiAgPHBhdGggZD0iTTEzLjUgNi41YTQuOTUgNC45NSAwIDAgMC03IDciIC8+CiAgPHBhdGggZD0iTTE1IDUgNSAxNSIgLz4KICA8cGF0aCBkPSJNMTQgMTd2LjAxIiAvPgogIDxwYXRoIGQ9Ik0xMCAxNnYuMDEiIC8+CiAgPHBhdGggZD0iTTEzIDEzdi4wMSIgLz4KICA8cGF0aCBkPSJNMTYgMTB2LjAxIiAvPgogIDxwYXRoIGQ9Ik0xMSAyMHYuMDEiIC8+CiAgPHBhdGggZD0iTTE3IDE0di4wMSIgLz4KICA8cGF0aCBkPSJNMjAgMTF2LjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shower-head\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ShowerHead: IconNode = [\n ['path', { d: 'm4 4 2.5 2.5' }],\n ['path', { d: 'M13.5 6.5a4.95 4.95 0 0 0-7 7' }],\n ['path', { d: 'M15 5 5 15' }],\n ['path', { d: 'M14 17v.01' }],\n ['path', { d: 'M10 16v.01' }],\n ['path', { d: 'M13 13v.01' }],\n ['path', { d: 'M16 10v.01' }],\n ['path', { d: 'M11 20v.01' }],\n ['path', { d: 'M17 14v.01' }],\n ['path', { d: 'M20 11v.01' }],\n];\n\nexport default ShowerHead;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shredder\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxM1Y0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NSIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMjJ2LTUiIC8+CiAgPHBhdGggZD0iTTE0IDE5di0yIiAvPgogIDxwYXRoIGQ9Ik0xOCAyMHYtMyIgLz4KICA8cGF0aCBkPSJNMiAxM2gyMCIgLz4KICA8cGF0aCBkPSJNNiAyMHYtMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shredder\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shredder: IconNode = [\n [\n 'path',\n { d: 'M4 13V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5' },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M10 22v-5' }],\n ['path', { d: 'M14 19v-2' }],\n ['path', { d: 'M18 20v-3' }],\n ['path', { d: 'M2 13h20' }],\n ['path', { d: 'M6 20v-3' }],\n];\n\nexport default Shredder;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shrimp\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMyAyMmMuNS0uNSAxLjEyLTEgMi41LTEtMS4zOCAwLTItLjUtMi41LTEiIC8+CiAgPHBhdGggZD0iTTE0IDJhMy4yOCAzLjI4IDAgMCAxLTMuMjI3IDEuNzk4bC02LjE3LS41NjFBMi4zODcgMi4zODcgMCAxIDAgNC4zODcgOEgxNS41YTEgMSAwIDAgMSAwIDEzIDEgMSAwIDAgMCAwLTVIMTJhNyA3IDAgMCAxLTctN1Y4IiAvPgogIDxwYXRoIGQ9Ik0xNCA4YTguNSA4LjUgMCAwIDEgMCA4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxNmMyIDAgNC41LTQgNC02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shrimp\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shrimp: IconNode = [\n ['path', { d: 'M11 12h.01' }],\n ['path', { d: 'M13 22c.5-.5 1.12-1 2.5-1-1.38 0-2-.5-2.5-1' }],\n [\n 'path',\n {\n d: 'M14 2a3.28 3.28 0 0 1-3.227 1.798l-6.17-.561A2.387 2.387 0 1 0 4.387 8H15.5a1 1 0 0 1 0 13 1 1 0 0 0 0-5H12a7 7 0 0 1-7-7V8',\n },\n ],\n ['path', { d: 'M14 8a8.5 8.5 0 0 1 0 8' }],\n ['path', { d: 'M16 16c2 0 4.5-4 4-6' }],\n];\n\nexport default Shrimp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shrink\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTUgNiA2bS02LTZ2NC44bTAtNC44aDQuOCIgLz4KICA8cGF0aCBkPSJNOSAxOS44VjE1bTAgMEg0LjJNOSAxNWwtNiA2IiAvPgogIDxwYXRoIGQ9Ik0xNSA0LjJWOW0wIDBoNC44TTE1IDlsNi02IiAvPgogIDxwYXRoIGQ9Ik05IDQuMlY5bTAgMEg0LjJNOSA5IDMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/shrink\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shrink: IconNode = [\n ['path', { d: 'm15 15 6 6m-6-6v4.8m0-4.8h4.8' }],\n ['path', { d: 'M9 19.8V15m0 0H4.2M9 15l-6 6' }],\n ['path', { d: 'M15 4.2V9m0 0h4.8M15 9l6-6' }],\n ['path', { d: 'M9 4.2V9m0 0H4.2M9 9 3 3' }],\n];\n\nexport default Shrink;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shuffle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTQgNCA0LTQgNCIgLz4KICA8cGF0aCBkPSJtMTggMiA0IDQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0yIDE4aDEuOTczYTQgNCAwIDAgMCAzLjMtMS43bDUuNDU0LTguNmE0IDQgMCAwIDEgMy4zLTEuN0gyMiIgLz4KICA8cGF0aCBkPSJNMiA2aDEuOTcyYTQgNCAwIDAgMSAzLjYgMi4yIiAvPgogIDxwYXRoIGQ9Ik0yMiAxOGgtNi4wNDFhNCA0IDAgMCAxLTMuMy0xLjhsLS4zNTktLjQ1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/shuffle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shuffle: IconNode = [\n ['path', { d: 'm18 14 4 4-4 4' }],\n ['path', { d: 'm18 2 4 4-4 4' }],\n ['path', { d: 'M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22' }],\n ['path', { d: 'M2 6h1.972a4 4 0 0 1 3.6 2.2' }],\n ['path', { d: 'M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45' }],\n];\n\nexport default Shuffle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name shrub\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTUuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDkuNSAxMy41IiAvPgogIDxwYXRoIGQ9Ik0xNC41IDE0LjUgMTIgMTciIC8+CiAgPHBhdGggZD0iTTE3IDguOEE2IDYgMCAwIDEgMTMuOCAyMEgxMEE2LjUgNi41IDAgMCAxIDcgOGE1IDUgMCAwIDEgMTAgMHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shrub\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Shrub: IconNode = [\n ['path', { d: 'M12 22v-5.172a2 2 0 0 0-.586-1.414L9.5 13.5' }],\n ['path', { d: 'M14.5 14.5 12 17' }],\n ['path', { d: 'M17 8.8A6 6 0 0 1 13.8 20H10A6.5 6.5 0 0 1 7 8a5 5 0 0 1 10 0z' }],\n];\n\nexport default Shrub;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sigma\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggN1Y1YTEgMSAwIDAgMC0xLTFINi41YS41LjUgMCAwIDAtLjQuOGw0LjUgNmEyIDIgMCAwIDEgMCAyLjRsLTQuNSA2YS41LjUgMCAwIDAgLjQuOEgxN2ExIDEgMCAwIDAgMS0xdi0yIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sigma\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sigma: IconNode = [\n [\n 'path',\n {\n d: 'M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2',\n },\n ],\n];\n\nexport default Sigma;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signal-high\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMjB2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDIwdi04IiAvPgogIDxwYXRoIGQ9Ik0xNyAyMFY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/signal-high\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SignalHigh: IconNode = [\n ['path', { d: 'M2 20h.01' }],\n ['path', { d: 'M7 20v-4' }],\n ['path', { d: 'M12 20v-8' }],\n ['path', { d: 'M17 20V8' }],\n];\n\nexport default SignalHigh;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signal-low\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMjB2LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/signal-low\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SignalLow: IconNode = [\n ['path', { d: 'M2 20h.01' }],\n ['path', { d: 'M7 20v-4' }],\n];\n\nexport default SignalLow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signal-medium\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMjB2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDIwdi04IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/signal-medium\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SignalMedium: IconNode = [\n ['path', { d: 'M2 20h.01' }],\n ['path', { d: 'M7 20v-4' }],\n ['path', { d: 'M12 20v-8' }],\n];\n\nexport default SignalMedium;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signal-zero\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/signal-zero\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SignalZero: IconNode = [['path', { d: 'M2 20h.01' }]];\n\nexport default SignalZero;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMjB2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDIwdi04IiAvPgogIDxwYXRoIGQ9Ik0xNyAyMFY4IiAvPgogIDxwYXRoIGQ9Ik0yMiA0djE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/signal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Signal: IconNode = [\n ['path', { d: 'M2 20h.01' }],\n ['path', { d: 'M7 20v-4' }],\n ['path', { d: 'M12 20v-8' }],\n ['path', { d: 'M17 20V8' }],\n ['path', { d: 'M22 4v16' }],\n];\n\nexport default Signal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signature\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCIgLz4KICA8cGF0aCBkPSJNMyAyMWgxOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/signature\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Signature: IconNode = [\n [\n 'path',\n {\n d: 'm21 17-2.156-1.868A.5.5 0 0 0 18 15.5v.5a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1c0-2.545-3.991-3.97-8.5-4a1 1 0 0 0 0 5c4.153 0 4.745-11.295 5.708-13.5a2.5 2.5 0 1 1 3.31 3.284',\n },\n ],\n ['path', { d: 'M3 21h18' }],\n];\n\nexport default Signature;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signpost-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOUg0TDIgN2wyLTJoNiIgLz4KICA8cGF0aCBkPSJNMTQgNWg2bDIgMi0yIDJoLTYiIC8+CiAgPHBhdGggZD0iTTEwIDIyVjRhMiAyIDAgMSAxIDQgMHYxOCIgLz4KICA8cGF0aCBkPSJNOCAyMmg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/signpost-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SignpostBig: IconNode = [\n ['path', { d: 'M10 9H4L2 7l2-2h6' }],\n ['path', { d: 'M14 5h6l2 2-2 2h-6' }],\n ['path', { d: 'M10 22V4a2 2 0 1 1 4 0v18' }],\n ['path', { d: 'M8 22h8' }],\n];\n\nexport default SignpostBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name signpost\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2OCIgLz4KICA8cGF0aCBkPSJNMTIgM3YzIiAvPgogIDxwYXRoIGQ9Ik0xOCA2YTIgMiAwIDAgMSAxLjM4Ny41NmwyLjMwNyAyLjIyYTEgMSAwIDAgMSAwIDEuNDRsLTIuMzA3IDIuMjJBMiAyIDAgMCAxIDE4IDEzSDZhMiAyIDAgMCAxLTEuMzg3LS41NmwtMi4zMDYtMi4yMmExIDEgMCAwIDEgMC0xLjQ0bDIuMzA2LTIuMjJBMiAyIDAgMCAxIDYgNnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/signpost\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Signpost: IconNode = [\n ['path', { d: 'M12 13v8' }],\n ['path', { d: 'M12 3v3' }],\n [\n 'path',\n {\n d: 'M18 6a2 2 0 0 1 1.387.56l2.307 2.22a1 1 0 0 1 0 1.44l-2.307 2.22A2 2 0 0 1 18 13H6a2 2 0 0 1-1.387-.56l-2.306-2.22a1 1 0 0 1 0-1.44l2.306-2.22A2 2 0 0 1 6 6z',\n },\n ],\n];\n\nexport default Signpost;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name siren\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxOHYtNmE1IDUgMCAxIDEgMTAgMHY2IiAvPgogIDxwYXRoIGQ9Ik01IDIxYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnoiIC8+CiAgPHBhdGggZD0iTTIxIDEyaDEiIC8+CiAgPHBhdGggZD0iTTE4LjUgNC41IDE4IDUiIC8+CiAgPHBhdGggZD0iTTIgMTJoMSIgLz4KICA8cGF0aCBkPSJNMTIgMnYxIiAvPgogIDxwYXRoIGQ9Im00LjkyOSA0LjkyOS43MDcuNzA3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/siren\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Siren: IconNode = [\n ['path', { d: 'M7 18v-6a5 5 0 1 1 10 0v6' }],\n ['path', { d: 'M5 21a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2z' }],\n ['path', { d: 'M21 12h1' }],\n ['path', { d: 'M18.5 4.5 18 5' }],\n ['path', { d: 'M2 12h1' }],\n ['path', { d: 'M12 2v1' }],\n ['path', { d: 'm4.929 4.929.707.707' }],\n ['path', { d: 'M12 12v6' }],\n];\n\nexport default Siren;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name skip-back\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuOTcxIDQuMjg1QTIgMiAwIDAgMSAyMSA2djEyYTIgMiAwIDAgMS0zLjAyOSAxLjcxNWwtOS45OTctNS45OThhMiAyIDAgMCAxLS4wMDMtMy40MzJ6IiAvPgogIDxwYXRoIGQ9Ik0zIDIwVjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/skip-back\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SkipBack: IconNode = [\n [\n 'path',\n {\n d: 'M17.971 4.285A2 2 0 0 1 21 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z',\n },\n ],\n ['path', { d: 'M3 20V4' }],\n];\n\nexport default SkipBack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name skip-forward\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNHYxNiIgLz4KICA8cGF0aCBkPSJNNi4wMjkgNC4yODVBMiAyIDAgMCAwIDMgNnYxMmEyIDIgMCAwIDAgMy4wMjkgMS43MTVsOS45OTctNS45OThhMiAyIDAgMCAwIC4wMDMtMy40MzJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/skip-forward\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SkipForward: IconNode = [\n ['path', { d: 'M21 4v16' }],\n [\n 'path',\n { d: 'M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z' },\n ],\n];\n\nexport default SkipForward;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name skull\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIuNSAxNy0uNS0xLS41IDFoMXoiIC8+CiAgPHBhdGggZD0iTTE1IDIyYTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwIDEuNTYtMy4yNSA4IDggMCAxIDAtMTEuMTIgMEEyIDIgMCAwIDAgOCAyMHYxYTEgMSAwIDAgMCAxIDF6IiAvPgogIDxjaXJjbGUgY3g9IjE1IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/skull\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Skull: IconNode = [\n ['path', { d: 'm12.5 17-.5-1-.5 1h1z' }],\n [\n 'path',\n {\n d: 'M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z',\n },\n ],\n ['circle', { cx: '15', cy: '12', r: '1' }],\n ['circle', { cx: '9', cy: '12', r: '1' }],\n];\n\nexport default Skull;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name slack\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSI4IiB4PSIxMyIgeT0iMiIgcng9IjEuNSIgLz4KICA8cGF0aCBkPSJNMTkgOC41VjEwaDEuNUExLjUgMS41IDAgMSAwIDE5IDguNSIgLz4KICA8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSI4IiB4PSI4IiB5PSIxNCIgcng9IjEuNSIgLz4KICA8cGF0aCBkPSJNNSAxNS41VjE0SDMuNUExLjUgMS41IDAgMSAwIDUgMTUuNSIgLz4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSIzIiB4PSIxNCIgeT0iMTMiIHJ4PSIxLjUiIC8+CiAgPHBhdGggZD0iTTE1LjUgMTlIMTR2MS41YTEuNSAxLjUgMCAxIDAgMS41LTEuNSIgLz4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSIzIiB4PSIyIiB5PSI4IiByeD0iMS41IiAvPgogIDxwYXRoIGQ9Ik04LjUgNUgxMFYzLjVBMS41IDEuNSAwIDEgMCA4LjUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/slack\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=slack instead. This icon will be removed in v1.0\n */\nconst Slack: IconNode = [\n ['rect', { width: '3', height: '8', x: '13', y: '2', rx: '1.5' }],\n ['path', { d: 'M19 8.5V10h1.5A1.5 1.5 0 1 0 19 8.5' }],\n ['rect', { width: '3', height: '8', x: '8', y: '14', rx: '1.5' }],\n ['path', { d: 'M5 15.5V14H3.5A1.5 1.5 0 1 0 5 15.5' }],\n ['rect', { width: '8', height: '3', x: '14', y: '13', rx: '1.5' }],\n ['path', { d: 'M15.5 19H14v1.5a1.5 1.5 0 1 0 1.5-1.5' }],\n ['rect', { width: '8', height: '3', x: '2', y: '8', rx: '1.5' }],\n ['path', { d: 'M8.5 5H10V3.5A1.5 1.5 0 1 0 8.5 5' }],\n];\n\nexport default Slack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMiAyIDIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Slash: IconNode = [['path', { d: 'M22 2 2 22' }]];\n\nexport default Slash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name slice\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTYuNTg2VjE5YTEgMSAwIDAgMS0xIDFIMkwxOC4zNyAzLjYzYTEgMSAwIDEgMSAzIDNsLTkuNjYzIDkuNjYzYTEgMSAwIDAgMS0xLjQxNCAwTDggMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/slice\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Slice: IconNode = [\n [\n 'path',\n {\n d: 'M11 16.586V19a1 1 0 0 1-1 1H2L18.37 3.63a1 1 0 1 1 3 3l-9.663 9.663a1 1 0 0 1-1.414 0L8 14',\n },\n ],\n];\n\nexport default Slice;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sliders-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0xNCAzdjQiIC8+CiAgPHBhdGggZD0iTTE2IDE3djQiIC8+CiAgPHBhdGggZD0iTTIxIDEyaC05IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOWgtNSIgLz4KICA8cGF0aCBkPSJNMjEgNWgtNyIgLz4KICA8cGF0aCBkPSJNOCAxMHY0IiAvPgogIDxwYXRoIGQ9Ik04IDEySDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sliders-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SlidersHorizontal: IconNode = [\n ['path', { d: 'M10 5H3' }],\n ['path', { d: 'M12 19H3' }],\n ['path', { d: 'M14 3v4' }],\n ['path', { d: 'M16 17v4' }],\n ['path', { d: 'M21 12h-9' }],\n ['path', { d: 'M21 19h-5' }],\n ['path', { d: 'M21 5h-7' }],\n ['path', { d: 'M8 10v4' }],\n ['path', { d: 'M8 12H3' }],\n];\n\nexport default SlidersHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sliders-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOGg0IiAvPgogIDxwYXRoIGQ9Ik0xMiAyMXYtOSIgLz4KICA8cGF0aCBkPSJNMTIgOFYzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNmg0IiAvPgogIDxwYXRoIGQ9Ik0xOSAxMlYzIiAvPgogIDxwYXRoIGQ9Ik0xOSAyMXYtNSIgLz4KICA8cGF0aCBkPSJNMyAxNGg0IiAvPgogIDxwYXRoIGQ9Ik01IDEwVjMiIC8+CiAgPHBhdGggZD0iTTUgMjF2LTciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sliders-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SlidersVertical: IconNode = [\n ['path', { d: 'M10 8h4' }],\n ['path', { d: 'M12 21v-9' }],\n ['path', { d: 'M12 8V3' }],\n ['path', { d: 'M17 16h4' }],\n ['path', { d: 'M19 12V3' }],\n ['path', { d: 'M19 21v-5' }],\n ['path', { d: 'M3 14h4' }],\n ['path', { d: 'M5 10V3' }],\n ['path', { d: 'M5 21v-7' }],\n];\n\nexport default SlidersVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smartphone-charging\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHg9IjUiIHk9IjIiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTIuNjY3IDggMTAgMTJoNGwtMi42NjcgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/smartphone-charging\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SmartphoneCharging: IconNode = [\n ['rect', { width: '14', height: '20', x: '5', y: '2', rx: '2', ry: '2' }],\n ['path', { d: 'M12.667 8 10 12h4l-2.667 4' }],\n];\n\nexport default SmartphoneCharging;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smartphone-nfc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIxMiIgeD0iMiIgeT0iNiIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTEzIDguMzJhNy40MyA3LjQzIDAgMCAxIDAgNy4zNiIgLz4KICA8cGF0aCBkPSJNMTYuNDYgNi4yMWExMS43NiAxMS43NiAwIDAgMSAwIDExLjU4IiAvPgogIDxwYXRoIGQ9Ik0xOS45MSA0LjFhMTUuOTEgMTUuOTEgMCAwIDEgLjAxIDE1LjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/smartphone-nfc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SmartphoneNfc: IconNode = [\n ['rect', { width: '7', height: '12', x: '2', y: '6', rx: '1' }],\n ['path', { d: 'M13 8.32a7.43 7.43 0 0 1 0 7.36' }],\n ['path', { d: 'M16.46 6.21a11.76 11.76 0 0 1 0 11.58' }],\n ['path', { d: 'M19.91 4.1a15.91 15.91 0 0 1 .01 15.8' }],\n];\n\nexport default SmartphoneNfc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smartphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHg9IjUiIHk9IjIiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNMTIgMThoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smartphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Smartphone: IconNode = [\n ['rect', { width: '14', height: '20', x: '5', y: '2', rx: '2', ry: '2' }],\n ['path', { d: 'M12 18h.01' }],\n];\n\nexport default Smartphone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smile-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTF2MWExMCAxMCAwIDEgMS05LTEwIiAvPgogIDxwYXRoIGQ9Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIiAvPgogIDxsaW5lIHgxPSI5IiB4Mj0iOS4wMSIgeTE9IjkiIHkyPSI5IiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjE1LjAxIiB5MT0iOSIgeTI9IjkiIC8+CiAgPHBhdGggZD0iTTE2IDVoNiIgLz4KICA8cGF0aCBkPSJNMTkgMnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smile-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SmilePlus: IconNode = [\n ['path', { d: 'M22 11v1a10 10 0 1 1-9-10' }],\n ['path', { d: 'M8 14s1.5 2 4 2 4-2 4-2' }],\n ['line', { x1: '9', x2: '9.01', y1: '9', y2: '9' }],\n ['line', { x1: '15', x2: '15.01', y1: '9', y2: '9' }],\n ['path', { d: 'M16 5h6' }],\n ['path', { d: 'M19 2v6' }],\n];\n\nexport default SmilePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name smile\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjkuMDEiIHkxPSI5IiB5Mj0iOSIgLz4KICA8bGluZSB4MT0iMTUiIHgyPSIxNS4wMSIgeTE9IjkiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smile\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Smile: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['path', { d: 'M8 14s1.5 2 4 2 4-2 4-2' }],\n ['line', { x1: '9', x2: '9.01', y1: '9', y2: '9' }],\n ['line', { x1: '15', x2: '15.01', y1: '9', y2: '9' }],\n];\n\nexport default Smile;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name snail\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxM2E2IDYgMCAxIDAgMTIgMCA0IDQgMCAxIDAtOCAwIDIgMiAwIDAgMCA0IDAiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSIxMyIgcj0iOCIgLz4KICA8cGF0aCBkPSJNMiAyMWgxMmM0LjQgMCA4LTMuNiA4LThWN2EyIDIgMCAxIDAtNCAwdjYiIC8+CiAgPHBhdGggZD0iTTE4IDMgMTkuMSA1LjIiIC8+CiAgPHBhdGggZD0iTTIyIDMgMjAuOSA1LjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/snail\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Snail: IconNode = [\n ['path', { d: 'M2 13a6 6 0 1 0 12 0 4 4 0 1 0-8 0 2 2 0 0 0 4 0' }],\n ['circle', { cx: '10', cy: '13', r: '8' }],\n ['path', { d: 'M2 21h12c4.4 0 8-3.6 8-8V7a2 2 0 1 0-4 0v6' }],\n ['path', { d: 'M18 3 19.1 5.2' }],\n ['path', { d: 'M22 3 20.9 5.2' }],\n];\n\nexport default Snail;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name soap-dispenser-droplet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSAydjQiIC8+CiAgPHBhdGggZD0iTTE0IDJIN2EyIDIgMCAwIDAtMiAyIiAvPgogIDxwYXRoIGQ9Ik0xOS4yOSAxNC43NkE2LjY3IDYuNjcgMCAwIDEgMTcgMTFhNi42IDYuNiAwIDAgMS0yLjI5IDMuNzZjLTEuMTUuOTItMS43MSAyLjA0LTEuNzEgMy4xOSAwIDIuMjIgMS44IDQuMDUgNCA0LjA1czQtMS44MyA0LTQuMDVjMC0xLjE2LS41Ny0yLjI2LTEuNzEtMy4xOSIgLz4KICA8cGF0aCBkPSJNOS42MDcgMjFINmEyIDIgMCAwIDEtMi0ydi03YTIgMiAwIDAgMSAyLTJoN1Y3YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/soap-dispenser-droplet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SoapDispenserDroplet: IconNode = [\n ['path', { d: 'M10.5 2v4' }],\n ['path', { d: 'M14 2H7a2 2 0 0 0-2 2' }],\n [\n 'path',\n {\n d: 'M19.29 14.76A6.67 6.67 0 0 1 17 11a6.6 6.6 0 0 1-2.29 3.76c-1.15.92-1.71 2.04-1.71 3.19 0 2.22 1.8 4.05 4 4.05s4-1.83 4-4.05c0-1.16-.57-2.26-1.71-3.19',\n },\n ],\n ['path', { d: 'M9.607 21H6a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h7V7a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3' }],\n];\n\nexport default SoapDispenserDroplet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name snowflake\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMjAtMS4yNS0yLjVMNiAxOCIgLz4KICA8cGF0aCBkPSJNMTAgNCA4Ljc1IDYuNSA2IDYiIC8+CiAgPHBhdGggZD0ibTE0IDIwIDEuMjUtMi41TDE4IDE4IiAvPgogIDxwYXRoIGQ9Im0xNCA0IDEuMjUgMi41TDE4IDYiIC8+CiAgPHBhdGggZD0ibTE3IDIxLTMtNmgtNCIgLz4KICA8cGF0aCBkPSJtMTcgMy0zIDYgMS41IDMiIC8+CiAgPHBhdGggZD0iTTIgMTJoNi41TDEwIDkiIC8+CiAgPHBhdGggZD0ibTIwIDEwLTEuNSAyIDEuNSAyIiAvPgogIDxwYXRoIGQ9Ik0yMiAxMmgtNi41TDE0IDE1IiAvPgogIDxwYXRoIGQ9Im00IDEwIDEuNSAyTDQgMTQiIC8+CiAgPHBhdGggZD0ibTcgMjEgMy02LTEuNS0zIiAvPgogIDxwYXRoIGQ9Im03IDMgMyA2aDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/snowflake\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Snowflake: IconNode = [\n ['path', { d: 'm10 20-1.25-2.5L6 18' }],\n ['path', { d: 'M10 4 8.75 6.5 6 6' }],\n ['path', { d: 'm14 20 1.25-2.5L18 18' }],\n ['path', { d: 'm14 4 1.25 2.5L18 6' }],\n ['path', { d: 'm17 21-3-6h-4' }],\n ['path', { d: 'm17 3-3 6 1.5 3' }],\n ['path', { d: 'M2 12h6.5L10 9' }],\n ['path', { d: 'm20 10-1.5 2 1.5 2' }],\n ['path', { d: 'M22 12h-6.5L14 15' }],\n ['path', { d: 'm4 10 1.5 2L4 14' }],\n ['path', { d: 'm7 21 3-6-1.5-3' }],\n ['path', { d: 'm7 3 3 6h4' }],\n];\n\nexport default Snowflake;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sofa\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgOVY2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjMiIC8+CiAgPHBhdGggZD0iTTIgMTZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiIgLz4KICA8cGF0aCBkPSJNNCAxOHYyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxOHYyIiAvPgogIDxwYXRoIGQ9Ik0xMiA0djkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sofa\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sofa: IconNode = [\n ['path', { d: 'M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3' }],\n [\n 'path',\n {\n d: 'M2 16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z',\n },\n ],\n ['path', { d: 'M4 18v2' }],\n ['path', { d: 'M20 18v2' }],\n ['path', { d: 'M12 4v9' }],\n];\n\nexport default Sofa;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name solar-panel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMmgyIiAvPgogIDxwYXRoIGQ9Im0xNC4yOCAxNC00LjU2IDgiIC8+CiAgPHBhdGggZD0ibTIxIDIyLTEuNTU4LTRINC41NTgiIC8+CiAgPHBhdGggZD0iTTMgMTB2MiIgLz4KICA8cGF0aCBkPSJNNi4yNDUgMTUuMDRBMiAyIDAgMCAxIDggMTRoMTJhMSAxIDAgMCAxIC44NjQgMS41MDVsLTMuMTEgNS40NTdBMiAyIDAgMCAxIDE2IDIySDRhMSAxIDAgMCAxLS44NjMtMS41MDZ6IiAvPgogIDxwYXRoIGQ9Ik03IDJhNCA0IDAgMCAxLTQgNCIgLz4KICA8cGF0aCBkPSJtOC42NiA3LjY2IDEuNDEgMS40MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/solar-panel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SolarPanel: IconNode = [\n ['path', { d: 'M11 2h2' }],\n ['path', { d: 'm14.28 14-4.56 8' }],\n ['path', { d: 'm21 22-1.558-4H4.558' }],\n ['path', { d: 'M3 10v2' }],\n [\n 'path',\n {\n d: 'M6.245 15.04A2 2 0 0 1 8 14h12a1 1 0 0 1 .864 1.505l-3.11 5.457A2 2 0 0 1 16 22H4a1 1 0 0 1-.863-1.506z',\n },\n ],\n ['path', { d: 'M7 2a4 4 0 0 1-4 4' }],\n ['path', { d: 'm8.66 7.66 1.41 1.41' }],\n];\n\nexport default SolarPanel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name soup\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjFhOSA5IDAgMCAwIDktOUgzYTkgOSAwIDAgMCA5IDlaIiAvPgogIDxwYXRoIGQ9Ik03IDIxaDEwIiAvPgogIDxwYXRoIGQ9Ik0xOS41IDEyIDIyIDYiIC8+CiAgPHBhdGggZD0iTTE2LjI1IDNjLjI3LjEuOC41My43NSAxLjM2LS4wNi44My0uOTMgMS4yLTEgMi4wMi0uMDUuNzguMzQgMS4yNC43MyAxLjYyIiAvPgogIDxwYXRoIGQ9Ik0xMS4yNSAzYy4yNy4xLjguNTMuNzQgMS4zNi0uMDUuODMtLjkzIDEuMi0uOTggMi4wMi0uMDYuNzguMzMgMS4yNC43MiAxLjYyIiAvPgogIDxwYXRoIGQ9Ik02LjI1IDNjLjI3LjEuOC41My43NSAxLjM2LS4wNi44My0uOTMgMS4yLTEgMi4wMi0uMDUuNzguMzQgMS4yNC43NCAxLjYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/soup\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Soup: IconNode = [\n ['path', { d: 'M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z' }],\n ['path', { d: 'M7 21h10' }],\n ['path', { d: 'M19.5 12 22 6' }],\n ['path', { d: 'M16.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.73 1.62' }],\n ['path', { d: 'M11.25 3c.27.1.8.53.74 1.36-.05.83-.93 1.2-.98 2.02-.06.78.33 1.24.72 1.62' }],\n ['path', { d: 'M6.25 3c.27.1.8.53.75 1.36-.06.83-.93 1.2-1 2.02-.05.78.34 1.24.74 1.62' }],\n];\n\nexport default Soup;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name space\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTd2MWMwIC41LS41IDEtMSAxSDNjLS41IDAtMS0uNS0xLTF2LTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/space\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Space: IconNode = [['path', { d: 'M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1' }]];\n\nexport default Space;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spade\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTh2NCIgLz4KICA8cGF0aCBkPSJNMiAxNC40OTlhNS41IDUuNSAwIDAgMCA5LjU5MSAzLjY3NS42LjYgMCAwIDEgLjgxOC4wMDFBNS41IDUuNSAwIDAgMCAyMiAxNC41YzAtMi4yOS0xLjUtNC0zLTUuNWwtNS40OTItNS4zMTJhMiAyIDAgMCAwLTMtLjAyTDUgOC45OTljLTEuNSAxLjUtMyAzLjItMyA1LjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/spade\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Spade: IconNode = [\n ['path', { d: 'M12 18v4' }],\n [\n 'path',\n {\n d: 'M2 14.499a5.5 5.5 0 0 0 9.591 3.675.6.6 0 0 1 .818.001A5.5 5.5 0 0 0 22 14.5c0-2.29-1.5-4-3-5.5l-5.492-5.312a2 2 0 0 0-3-.02L5 8.999c-1.5 1.5-3 3.2-3 5.5',\n },\n ],\n];\n\nexport default Spade;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sparkle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sparkle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sparkle: IconNode = [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n },\n ],\n];\n\nexport default Sparkle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sparkles\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6IiAvPgogIDxwYXRoIGQ9Ik0yMCAydjQiIC8+CiAgPHBhdGggZD0iTTIyIDRoLTQiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjIwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sparkles\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sparkles: IconNode = [\n [\n 'path',\n {\n d: 'M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z',\n },\n ],\n ['path', { d: 'M20 2v4' }],\n ['path', { d: 'M22 4h-4' }],\n ['circle', { cx: '4', cy: '20', r: '2' }],\n];\n\nexport default Sparkles;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name speaker\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHg9IjQiIHk9IjIiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiA2aC4wMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE0IiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNGguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/speaker\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Speaker: IconNode = [\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2' }],\n ['path', { d: 'M12 6h.01' }],\n ['circle', { cx: '12', cy: '14', r: '4' }],\n ['path', { d: 'M12 14h.01' }],\n];\n\nexport default Speaker;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name speech\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOC44IDIwdi00LjFsMS45LjJhMi4zIDIuMyAwIDAgMCAyLjE2NC0yLjFWOC4zQTUuMzcgNS4zNyAwIDAgMCAyIDguMjVjMCAyLjguNjU2IDMuMDU0IDEgNC41NWE1Ljc3IDUuNzcgMCAwIDEgLjAyOSAyLjc1OEwyIDIwIiAvPgogIDxwYXRoIGQ9Ik0xOS44IDE3LjhhNy41IDcuNSAwIDAgMCAuMDAzLTEwLjYwMyIgLz4KICA8cGF0aCBkPSJNMTcgMTVhMy41IDMuNSAwIDAgMC0uMDI1LTQuOTc1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/speech\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Speech: IconNode = [\n [\n 'path',\n {\n d: 'M8.8 20v-4.1l1.9.2a2.3 2.3 0 0 0 2.164-2.1V8.3A5.37 5.37 0 0 0 2 8.25c0 2.8.656 3.054 1 4.55a5.77 5.77 0 0 1 .029 2.758L2 20',\n },\n ],\n ['path', { d: 'M19.8 17.8a7.5 7.5 0 0 0 .003-10.603' }],\n ['path', { d: 'M17 15a3.5 3.5 0 0 0-.025-4.975' }],\n];\n\nexport default Speech;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spell-check-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNiA2LTEyIDYgMTIiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KICA8cGF0aCBkPSJNNCAyMWMxLjEgMCAxLjEtMSAyLjMtMXMxLjEgMSAyLjMgMWMxLjEgMCAxLjEtMSAyLjMtMSAxLjEgMCAxLjEgMSAyLjMgMSAxLjEgMCAxLjEtMSAyLjMtMSAxLjEgMCAxLjEgMSAyLjMgMSAxLjEgMCAxLjEtMSAyLjMtMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/spell-check-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SpellCheck2: IconNode = [\n ['path', { d: 'm6 16 6-12 6 12' }],\n ['path', { d: 'M8 12h8' }],\n [\n 'path',\n {\n d: 'M4 21c1.1 0 1.1-1 2.3-1s1.1 1 2.3 1c1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1 1.1 0 1.1 1 2.3 1 1.1 0 1.1-1 2.3-1',\n },\n ],\n];\n\nexport default SpellCheck2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spell-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNiA2LTEyIDYgMTIiIC8+CiAgPHBhdGggZD0iTTggMTJoOCIgLz4KICA8cGF0aCBkPSJtMTYgMjAgMiAyIDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/spell-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SpellCheck: IconNode = [\n ['path', { d: 'm6 16 6-12 6 12' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'm16 20 2 2 4-4' }],\n];\n\nexport default SpellCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spline-pointer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oiIC8+CiAgPHBhdGggZD0iTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjUiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE5IiByPSIyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/spline-pointer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SplinePointer: IconNode = [\n [\n 'path',\n {\n d: 'M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z',\n },\n ],\n ['path', { d: 'M5 17A12 12 0 0 1 17 5' }],\n ['circle', { cx: '19', cy: '5', r: '2' }],\n ['circle', { cx: '5', cy: '19', r: '2' }],\n];\n\nexport default SplinePointer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spline\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjUiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjE5IiByPSIyIiAvPgogIDxwYXRoIGQ9Ik01IDE3QTEyIDEyIDAgMCAxIDE3IDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/spline\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Spline: IconNode = [\n ['circle', { cx: '19', cy: '5', r: '2' }],\n ['circle', { cx: '5', cy: '19', r: '2' }],\n ['path', { d: 'M5 17A12 12 0 0 1 17 5' }],\n];\n\nexport default Spline;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name split\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2g1djUiIC8+CiAgPHBhdGggZD0iTTggM0gzdjUiIC8+CiAgPHBhdGggZD0iTTEyIDIydi04LjNhNCA0IDAgMCAwLTEuMTcyLTIuODcyTDMgMyIgLz4KICA8cGF0aCBkPSJtMTUgOSA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/split\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Split: IconNode = [\n ['path', { d: 'M16 3h5v5' }],\n ['path', { d: 'M8 3H3v5' }],\n ['path', { d: 'M12 22v-8.3a4 4 0 0 0-1.172-2.872L3 3' }],\n ['path', { d: 'm15 9 6-6' }],\n];\n\nexport default Split;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spool\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTMuNDQgNC40NDIgMTcuMDgyQTIgMiAwIDAgMCA0Ljk4MiAyMUgxOWEyIDIgMCAwIDAgLjU1OC0zLjkyMWwtMS4xMTUtLjMyQTIgMiAwIDAgMSAxNyAxNC44MzdWNy42NiIgLz4KICA8cGF0aCBkPSJtNyAxMC41NiAxMi41NTgtMy42NDJBMiAyIDAgMCAwIDE5LjAxOCAzSDVhMiAyIDAgMCAwLS41NTggMy45MjFsMS4xMTUuMzJBMiAyIDAgMCAxIDcgOS4xNjN2Ny4xNzgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/spool\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Spool: IconNode = [\n [\n 'path',\n {\n d: 'M17 13.44 4.442 17.082A2 2 0 0 0 4.982 21H19a2 2 0 0 0 .558-3.921l-1.115-.32A2 2 0 0 1 17 14.837V7.66',\n },\n ],\n [\n 'path',\n {\n d: 'm7 10.56 12.558-3.642A2 2 0 0 0 19.018 3H5a2 2 0 0 0-.558 3.921l1.115.32A2 2 0 0 1 7 9.163v7.178',\n },\n ],\n];\n\nexport default Spool;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spotlight\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMjk1IDE5LjU2MiAxNiAyMiIgLz4KICA8cGF0aCBkPSJtMTcgMTYgMy43NTggMi4wOTgiIC8+CiAgPHBhdGggZD0ibTE5IDEyLjUgMy4wMjYtLjU5OCIgLz4KICA8cGF0aCBkPSJNNy42MSA2LjNhMyAzIDAgMCAwLTMuOTIgMS4zbC0xLjM4IDIuNzlhMyAzIDAgMCAwIDEuMyAzLjkxbDYuODkgMy41OTdhMSAxIDAgMCAwIDEuMzQyLS40NDdsMy4xMDYtNi4yMTFhMSAxIDAgMCAwLS40NDctMS4zNDF6IiAvPgogIDxwYXRoIGQ9Ik04IDlWMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/spotlight\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Spotlight: IconNode = [\n ['path', { d: 'M15.295 19.562 16 22' }],\n ['path', { d: 'm17 16 3.758 2.098' }],\n ['path', { d: 'm19 12.5 3.026-.598' }],\n [\n 'path',\n {\n d: 'M7.61 6.3a3 3 0 0 0-3.92 1.3l-1.38 2.79a3 3 0 0 0 1.3 3.91l6.89 3.597a1 1 0 0 0 1.342-.447l3.106-6.211a1 1 0 0 0-.447-1.341z',\n },\n ],\n ['path', { d: 'M8 9V2' }],\n];\n\nexport default Spotlight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name spray-can\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAzaC4wMSIgLz4KICA8cGF0aCBkPSJNNyA1aC4wMSIgLz4KICA8cGF0aCBkPSJNMTEgN2guMDEiIC8+CiAgPHBhdGggZD0iTTMgN2guMDEiIC8+CiAgPHBhdGggZD0iTTcgOWguMDEiIC8+CiAgPHBhdGggZD0iTTMgMTFoLjAxIiAvPgogIDxyZWN0IHdpZHRoPSI0IiBoZWlnaHQ9IjQiIHg9IjE1IiB5PSI1IiAvPgogIDxwYXRoIGQ9Im0xOSA5IDIgMnYxMGMwIC42LS40IDEtMSAxaC02Yy0uNiAwLTEtLjQtMS0xVjExbDItMiIgLz4KICA8cGF0aCBkPSJtMTMgMTQgOC0yIiAvPgogIDxwYXRoIGQ9Im0xMyAxOSA4LTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/spray-can\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SprayCan: IconNode = [\n ['path', { d: 'M3 3h.01' }],\n ['path', { d: 'M7 5h.01' }],\n ['path', { d: 'M11 7h.01' }],\n ['path', { d: 'M3 7h.01' }],\n ['path', { d: 'M7 9h.01' }],\n ['path', { d: 'M3 11h.01' }],\n ['rect', { width: '4', height: '4', x: '15', y: '5' }],\n ['path', { d: 'm19 9 2 2v10c0 .6-.4 1-1 1h-6c-.6 0-1-.4-1-1V11l2-2' }],\n ['path', { d: 'm13 14 8-2' }],\n ['path', { d: 'm13 19 8-2' }],\n];\n\nexport default SprayCan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sprout\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgOS41MzZWN2E0IDQgMCAwIDEgNC00aDEuNWEuNS41IDAgMCAxIC41LjVWNWE0IDQgMCAwIDEtNCA0IDQgNCAwIDAgMC00IDRjMCAyIDEgMyAxIDVhNSA1IDAgMCAxLTEgMyIgLz4KICA8cGF0aCBkPSJNNCA5YTUgNSAwIDAgMSA4IDQgNSA1IDAgMCAxLTgtNCIgLz4KICA8cGF0aCBkPSJNNSAyMWgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sprout\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sprout: IconNode = [\n [\n 'path',\n {\n d: 'M14 9.536V7a4 4 0 0 1 4-4h1.5a.5.5 0 0 1 .5.5V5a4 4 0 0 1-4 4 4 4 0 0 0-4 4c0 2 1 3 1 5a5 5 0 0 1-1 3',\n },\n ],\n ['path', { d: 'M4 9a5 5 0 0 1 8 4 5 5 0 0 1-8-4' }],\n ['path', { d: 'M5 21h14' }],\n];\n\nexport default Sprout;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xNiA4LTggOCIgLz4KICA8cGF0aCBkPSJNMTYgMTZIOFY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-arrow-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowDownLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm16 8-8 8' }],\n ['path', { d: 'M16 16H8V8' }],\n];\n\nexport default SquareArrowDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-activity\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNyAxMmgtMmwtMiA1LTItMTAtMiA1SDciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-activity\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareActivity: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M17 12h-2l-2 5-2-10-2 5H7' }],\n];\n\nexport default SquareActivity;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im04IDggOCA4IiAvPgogIDxwYXRoIGQ9Ik0xNiA4djhIOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-arrow-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowDownRight: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm8 8 8 8' }],\n ['path', { d: 'M16 8v8H8' }],\n];\n\nexport default SquareArrowDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djgiIC8+CiAgPHBhdGggZD0ibTggMTIgNCA0IDQtNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowDown: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M12 8v8' }],\n ['path', { d: 'm8 12 4 4 4-4' }],\n];\n\nexport default SquareArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xMiA4LTQgNCA0IDQiIC8+CiAgPHBhdGggZD0iTTE2IDEySDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-arrow-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm12 8-4 4 4 4' }],\n ['path', { d: 'M16 12H8' }],\n];\n\nexport default SquareArrowLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-out-down-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgMjFoNmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2NiIgLz4KICA8cGF0aCBkPSJtMyAyMSA5LTkiIC8+CiAgPHBhdGggZD0iTTkgMjFIM3YtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-arrow-out-down-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowOutDownLeft: IconNode = [\n ['path', { d: 'M13 21h6a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v6' }],\n ['path', { d: 'm3 21 9-9' }],\n ['path', { d: 'M9 21H3v-6' }],\n];\n\nexport default SquareArrowOutDownLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-out-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTYiIC8+CiAgPHBhdGggZD0ibTMgMyA5IDkiIC8+CiAgPHBhdGggZD0iTTMgOVYzaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-arrow-out-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowOutUpLeft: IconNode = [\n ['path', { d: 'M13 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-6' }],\n ['path', { d: 'm3 3 9 9' }],\n ['path', { d: 'M3 9V3h6' }],\n];\n\nexport default SquareArrowOutUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-out-down-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYiIC8+CiAgPHBhdGggZD0ibTIxIDIxLTktOSIgLz4KICA8cGF0aCBkPSJNMjEgMTV2NmgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-arrow-out-down-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowOutDownRight: IconNode = [\n ['path', { d: 'M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6' }],\n ['path', { d: 'm21 21-9-9' }],\n ['path', { d: 'M21 15v6h-6' }],\n];\n\nexport default SquareArrowOutDownRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-out-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNiIgLz4KICA8cGF0aCBkPSJtMjEgMy05IDkiIC8+CiAgPHBhdGggZD0iTTE1IDNoNnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-arrow-out-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowOutUpRight: IconNode = [\n ['path', { d: 'M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6' }],\n ['path', { d: 'm21 3-9 9' }],\n ['path', { d: 'M15 3h6v6' }],\n];\n\nexport default SquareArrowOutUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+CiAgPHBhdGggZD0ibTEyIDE2IDQtNC00LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-arrow-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowRight: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'm12 16 4-4-4-4' }],\n];\n\nexport default SquareArrowRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-up-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDE2VjhoOCIgLz4KICA8cGF0aCBkPSJNMTYgMTYgOCA4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-arrow-up-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowUpLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 16V8h8' }],\n ['path', { d: 'M16 16 8 8' }],\n];\n\nexport default SquareArrowUpLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-up-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDhoOHY4IiAvPgogIDxwYXRoIGQ9Im04IDE2IDgtOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-arrow-up-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowUpRight: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 8h8v8' }],\n ['path', { d: 'm8 16 8-8' }],\n];\n\nexport default SquareArrowUpRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xNiAxMi00LTQtNCA0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNlY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareArrowUp: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm16 12-4-4-4 4' }],\n ['path', { d: 'M12 16V8' }],\n];\n\nexport default SquareArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-asterisk\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiA4djgiIC8+CiAgPHBhdGggZD0ibTguNSAxNCA3LTQiIC8+CiAgPHBhdGggZD0ibTguNSAxMCA3IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-asterisk\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareAsterisk: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M12 8v8' }],\n ['path', { d: 'm8.5 14 7-4' }],\n ['path', { d: 'm8.5 10 7 4' }],\n];\n\nexport default SquareAsterisk;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-bottom-dashed-scissors\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNSIgeTE9IjMiIHgyPSIxOSIgeTI9IjMiIC8+CiAgPGxpbmUgeDE9IjMiIHkxPSI1IiB4Mj0iMyIgeTI9IjE5IiAvPgogIDxsaW5lIHgxPSIyMSIgeTE9IjUiIHgyPSIyMSIgeTI9IjE5IiAvPgogIDxsaW5lIHgxPSI5IiB5MT0iMjEiIHgyPSIxMCIgeTI9IjIxIiAvPgogIDxsaW5lIHgxPSIxNCIgeTE9IjIxIiB4Mj0iMTUiIHkyPSIyMSIgLz4KICA8cGF0aCBkPSJNIDMgNSBBMiAyIDAgMCAxIDUgMyIgLz4KICA8cGF0aCBkPSJNIDE5IDMgQTIgMiAwIDAgMSAyMSA1IiAvPgogIDxwYXRoIGQ9Ik0gNSAyMSBBMiAyIDAgMCAxIDMgMTkiIC8+CiAgPHBhdGggZD0iTSAyMSAxOSBBMiAyIDAgMCAxIDE5IDIxIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjguNSIgcj0iMS41IiAvPgogIDxsaW5lIHgxPSI5LjU2MDY2IiB5MT0iOS41NjA2NiIgeDI9IjEyIiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjE3IiB5MT0iMTciIHgyPSIxNC44MiIgeTI9IjE0LjgyIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjE1LjUiIHI9IjEuNSIgLz4KICA8bGluZSB4MT0iOS41NjA2NiIgeTE9IjE0LjQzOTM0IiB4Mj0iMTciIHkyPSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-bottom-dashed-scissors\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareBottomDashedScissors: IconNode = [\n ['line', { x1: '5', y1: '3', x2: '19', y2: '3' }],\n ['line', { x1: '3', y1: '5', x2: '3', y2: '19' }],\n ['line', { x1: '21', y1: '5', x2: '21', y2: '19' }],\n ['line', { x1: '9', y1: '21', x2: '10', y2: '21' }],\n ['line', { x1: '14', y1: '21', x2: '15', y2: '21' }],\n ['path', { d: 'M 3 5 A2 2 0 0 1 5 3' }],\n ['path', { d: 'M 19 3 A2 2 0 0 1 21 5' }],\n ['path', { d: 'M 5 21 A2 2 0 0 1 3 19' }],\n ['path', { d: 'M 21 19 A2 2 0 0 1 19 21' }],\n ['circle', { cx: '8.5', cy: '8.5', r: '1.5' }],\n ['line', { x1: '9.56066', y1: '9.56066', x2: '12', y2: '12' }],\n ['line', { x1: '17', y1: '17', x2: '14.82', y2: '14.82' }],\n ['circle', { cx: '8.5', cy: '15.5', r: '1.5' }],\n ['line', { x1: '9.56066', y1: '14.43934', x2: '17', y2: '7' }],\n];\n\nexport default SquareBottomDashedScissors;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-chart-gantt\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDhoNyIgLz4KICA8cGF0aCBkPSJNOCAxMmg2IiAvPgogIDxwYXRoIGQ9Ik0xMSAxNmg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-chart-gantt\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareChartGantt: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 8h7' }],\n ['path', { d: 'M8 12h6' }],\n ['path', { d: 'M11 16h5' }],\n];\n\nexport default SquareChartGantt;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-check-big\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTAuNjU2VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMi4zNDQiIC8+CiAgPHBhdGggZD0ibTkgMTEgMyAzTDIyIDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-check-big\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareCheckBig: IconNode = [\n ['path', { d: 'M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344' }],\n ['path', { d: 'm9 11 3 3L22 4' }],\n];\n\nexport default SquareCheckBig;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im05IDEyIDIgMiA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareCheck: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default SquareCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-chevron-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xNiAxMC00IDQtNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-chevron-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareChevronDown: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm16 10-4 4-4-4' }],\n];\n\nexport default SquareChevronDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-chevron-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xNCAxNi00LTQgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-chevron-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareChevronLeft: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm14 16-4-4 4-4' }],\n];\n\nexport default SquareChevronLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-chevron-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xMCA4IDQgNC00IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-chevron-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareChevronRight: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm10 8 4 4-4 4' }],\n];\n\nexport default SquareChevronRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-chevron-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im04IDE0IDQtNCA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-chevron-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareChevronUp: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm8 14 4-4 4 4' }],\n];\n\nexport default SquareChevronUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed-bottom-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOS41IDggMTJsMiAyLjUiIC8+CiAgPHBhdGggZD0iTTE0IDIxaDEiIC8+CiAgPHBhdGggZD0ibTE0IDkuNSAyIDIuNS0yIDIuNSIgLz4KICA8cGF0aCBkPSJNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTkgMjFoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-dashed-bottom-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashedBottomCode: IconNode = [\n ['path', { d: 'M10 9.5 8 12l2 2.5' }],\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'm14 9.5 2 2.5-2 2.5' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2' }],\n ['path', { d: 'M9 21h1' }],\n];\n\nexport default SquareDashedBottomCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-code\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgOS0zIDMgMyAzIiAvPgogIDxwYXRoIGQ9Im0xNCAxNSAzLTMtMy0zIiAvPgogIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-code\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareCode: IconNode = [\n ['path', { d: 'm10 9-3 3 3 3' }],\n ['path', { d: 'm14 15 3-3-3-3' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default SquareCode;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed-bottom\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTkgMjFoMSIgLz4KICA8cGF0aCBkPSJNMTQgMjFoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-dashed-bottom\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashedBottom: IconNode = [\n ['path', { d: 'M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2' }],\n ['path', { d: 'M9 21h1' }],\n ['path', { d: 'M14 21h1' }],\n];\n\nexport default SquareDashedBottom;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed-kanban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCA3djciIC8+CiAgPHBhdGggZD0iTTEyIDd2NCIgLz4KICA8cGF0aCBkPSJNMTYgN3Y5IiAvPgogIDxwYXRoIGQ9Ik01IDNhMiAyIDAgMCAwLTIgMiIgLz4KICA8cGF0aCBkPSJNOSAzaDEiIC8+CiAgPHBhdGggZD0iTTE0IDNoMSIgLz4KICA8cGF0aCBkPSJNMTkgM2EyIDIgMCAwIDEgMiAyIiAvPgogIDxwYXRoIGQ9Ik0yMSA5djEiIC8+CiAgPHBhdGggZD0iTTIxIDE0djEiIC8+CiAgPHBhdGggZD0iTTIxIDE5YTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTE0IDIxaDEiIC8+CiAgPHBhdGggZD0iTTkgMjFoMSIgLz4KICA8cGF0aCBkPSJNNSAyMWEyIDIgMCAwIDEtMi0yIiAvPgogIDxwYXRoIGQ9Ik0zIDE0djEiIC8+CiAgPHBhdGggZD0iTTMgOXYxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-dashed-kanban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashedKanban: IconNode = [\n ['path', { d: 'M8 7v7' }],\n ['path', { d: 'M12 7v4' }],\n ['path', { d: 'M16 7v9' }],\n ['path', { d: 'M5 3a2 2 0 0 0-2 2' }],\n ['path', { d: 'M9 3h1' }],\n ['path', { d: 'M14 3h1' }],\n ['path', { d: 'M19 3a2 2 0 0 1 2 2' }],\n ['path', { d: 'M21 9v1' }],\n ['path', { d: 'M21 14v1' }],\n ['path', { d: 'M21 19a2 2 0 0 1-2 2' }],\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'M9 21h1' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2' }],\n ['path', { d: 'M3 14v1' }],\n ['path', { d: 'M3 9v1' }],\n];\n\nexport default SquareDashedKanban;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed-mouse-pointer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oiIC8+CiAgPHBhdGggZD0iTTUgM2EyIDIgMCAwIDAtMiAyIiAvPgogIDxwYXRoIGQ9Ik0xOSAzYTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTUgMjFhMiAyIDAgMCAxLTItMiIgLz4KICA8cGF0aCBkPSJNOSAzaDEiIC8+CiAgPHBhdGggZD0iTTkgMjFoMiIgLz4KICA8cGF0aCBkPSJNMTQgM2gxIiAvPgogIDxwYXRoIGQ9Ik0zIDl2MSIgLz4KICA8cGF0aCBkPSJNMjEgOXYyIiAvPgogIDxwYXRoIGQ9Ik0zIDE0djEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-dashed-mouse-pointer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashedMousePointer: IconNode = [\n [\n 'path',\n {\n d: 'M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z',\n },\n ],\n ['path', { d: 'M5 3a2 2 0 0 0-2 2' }],\n ['path', { d: 'M19 3a2 2 0 0 1 2 2' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2' }],\n ['path', { d: 'M9 3h1' }],\n ['path', { d: 'M9 21h2' }],\n ['path', { d: 'M14 3h1' }],\n ['path', { d: 'M3 9v1' }],\n ['path', { d: 'M21 9v2' }],\n ['path', { d: 'M3 14v1' }],\n];\n\nexport default SquareDashedMousePointer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAzYTIgMiAwIDAgMC0yIDIiIC8+CiAgPHBhdGggZD0iTTE5IDNhMiAyIDAgMCAxIDIgMiIgLz4KICA8cGF0aCBkPSJNMjEgMTlhMiAyIDAgMCAxLTIgMiIgLz4KICA8cGF0aCBkPSJNNSAyMWEyIDIgMCAwIDEtMi0yIiAvPgogIDxwYXRoIGQ9Ik05IDNoMSIgLz4KICA8cGF0aCBkPSJNOSAyMWgxIiAvPgogIDxwYXRoIGQ9Ik0xNCAzaDEiIC8+CiAgPHBhdGggZD0iTTE0IDIxaDEiIC8+CiAgPHBhdGggZD0iTTMgOXYxIiAvPgogIDxwYXRoIGQ9Ik0yMSA5djEiIC8+CiAgPHBhdGggZD0iTTMgMTR2MSIgLz4KICA8cGF0aCBkPSJNMjEgMTR2MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashed: IconNode = [\n ['path', { d: 'M5 3a2 2 0 0 0-2 2' }],\n ['path', { d: 'M19 3a2 2 0 0 1 2 2' }],\n ['path', { d: 'M21 19a2 2 0 0 1-2 2' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2' }],\n ['path', { d: 'M9 3h1' }],\n ['path', { d: 'M9 21h1' }],\n ['path', { d: 'M14 3h1' }],\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'M3 9v1' }],\n ['path', { d: 'M21 9v1' }],\n ['path', { d: 'M3 14v1' }],\n ['path', { d: 'M21 14v1' }],\n];\n\nexport default SquareDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dashed-top-solid\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMjFoMSIgLz4KICA8cGF0aCBkPSJNMjEgMTR2MSIgLz4KICA8cGF0aCBkPSJNMjEgMTlhMiAyIDAgMCAxLTIgMiIgLz4KICA8cGF0aCBkPSJNMjEgOXYxIiAvPgogIDxwYXRoIGQ9Ik0zIDE0djEiIC8+CiAgPHBhdGggZD0iTTMgNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTMgOXYxIiAvPgogIDxwYXRoIGQ9Ik01IDIxYTIgMiAwIDAgMS0yLTIiIC8+CiAgPHBhdGggZD0iTTkgMjFoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-dashed-top-solid\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDashedTopSolid: IconNode = [\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'M21 14v1' }],\n ['path', { d: 'M21 19a2 2 0 0 1-2 2' }],\n ['path', { d: 'M21 9v1' }],\n ['path', { d: 'M3 14v1' }],\n ['path', { d: 'M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2' }],\n ['path', { d: 'M3 9v1' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2' }],\n ['path', { d: 'M9 21h1' }],\n];\n\nexport default SquareDashedTopSolid;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-divide\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjE2IiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjE2IiB5Mj0iMTYiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSI4IiB5Mj0iOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-divide\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDivide: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['line', { x1: '8', x2: '16', y1: '12', y2: '12' }],\n ['line', { x1: '12', x2: '12', y1: '16', y2: '16' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '8' }],\n];\n\nexport default SquareDivide;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareDot: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n];\n\nexport default SquareDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-equal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDEwaDEwIiAvPgogIDxwYXRoIGQ9Ik03IDE0aDEwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-equal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareEqual: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 10h10' }],\n ['path', { d: 'M7 14h10' }],\n];\n\nexport default SquareEqual;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-function\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNOSAxN2MyIDAgMi44LTEgMi44LTIuOFYxMGMwLTIgMS0zLjMgMy4yLTMiIC8+CiAgPHBhdGggZD0iTTkgMTEuMmg1LjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-function\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareFunction: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3' }],\n ['path', { d: 'M9 11.2h5.7' }],\n];\n\nexport default SquareFunction;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-kanban\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDd2NyIgLz4KICA8cGF0aCBkPSJNMTIgN3Y0IiAvPgogIDxwYXRoIGQ9Ik0xNiA3djkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-kanban\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareKanban: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 7v7' }],\n ['path', { d: 'M12 7v4' }],\n ['path', { d: 'M16 7v9' }],\n];\n\nexport default SquareKanban;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-library\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDd2MTAiIC8+CiAgPHBhdGggZD0iTTExIDd2MTAiIC8+CiAgPHBhdGggZD0ibTE1IDcgMiAxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-library\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareLibrary: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 7v10' }],\n ['path', { d: 'M11 7v10' }],\n ['path', { d: 'm15 7 2 10' }],\n];\n\nexport default SquareLibrary;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-m\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAxNlY4LjVhLjUuNSAwIDAgMSAuOS0uM2wyLjcgMy41OTlhLjUuNSAwIDAgMCAuOCAwbDIuNy0zLjZhLjUuNSAwIDAgMSAuOS4zVjE2IiAvPgogIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-m\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareM: IconNode = [\n [\n 'path',\n { d: 'M8 16V8.5a.5.5 0 0 1 .9-.3l2.7 3.599a.5.5 0 0 0 .8 0l2.7-3.6a.5.5 0 0 1 .9.3V16' },\n ],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default SquareM;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-menu\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDhoMTAiIC8+CiAgPHBhdGggZD0iTTcgMTJoMTAiIC8+CiAgPHBhdGggZD0iTTcgMTZoMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-menu\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareMenu: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 8h10' }],\n ['path', { d: 'M7 12h10' }],\n ['path', { d: 'M7 16h10' }],\n];\n\nexport default SquareMenu;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareMinus: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 12h8' }],\n];\n\nexport default SquareMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-mouse-pointer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oiIC8+CiAgPHBhdGggZD0iTTIxIDExVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-mouse-pointer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareMousePointer: IconNode = [\n [\n 'path',\n {\n d: 'M12.034 12.681a.498.498 0 0 1 .647-.647l9 3.5a.5.5 0 0 1-.033.943l-3.444 1.068a1 1 0 0 0-.66.66l-1.067 3.443a.5.5 0 0 1-.943.033z',\n },\n ],\n ['path', { d: 'M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6' }],\n];\n\nexport default SquareMousePointer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-parking-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy42IDMuNkEyIDIgMCAwIDEgNSAzaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLS41OSAxLjQxIiAvPgogIDxwYXRoIGQ9Ik0zIDguN1YxOWEyIDIgMCAwIDAgMiAyaDEwLjMiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJNMTMgMTNhMyAzIDAgMSAwIDAtNkg5djIiIC8+CiAgPHBhdGggZD0iTTkgMTd2LTIuMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-parking-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareParkingOff: IconNode = [\n ['path', { d: 'M3.6 3.6A2 2 0 0 1 5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-.59 1.41' }],\n ['path', { d: 'M3 8.7V19a2 2 0 0 0 2 2h10.3' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M13 13a3 3 0 1 0 0-6H9v2' }],\n ['path', { d: 'M9 17v-2.3' }],\n];\n\nexport default SquareParkingOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-parking\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDE3VjdoNGEzIDMgMCAwIDEgMCA2SDkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-parking\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareParking: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M9 17V7h4a3 3 0 0 1 0 6H9' }],\n];\n\nexport default SquareParking;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-pause\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSIxMCIgeDI9IjEwIiB5MT0iMTUiIHkyPSI5IiAvPgogIDxsaW5lIHgxPSIxNCIgeDI9IjE0IiB5MT0iMTUiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-pause\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePause: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['line', { x1: '10', x2: '10', y1: '15', y2: '9' }],\n ['line', { x1: '14', x2: '14', y1: '15', y2: '9' }],\n];\n\nexport default SquarePause;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03IiAvPgogIDxwYXRoIGQ9Ik0xOC4zNzUgMi42MjVhMSAxIDAgMCAxIDMgM2wtOS4wMTMgOS4wMTRhMiAyIDAgMCAxLS44NTMuNTA1bC0yLjg3My44NGEuNS41IDAgMCAxLS42Mi0uNjJsLjg0LTIuODczYTIgMiAwIDAgMSAuNTA2LS44NTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePen: IconNode = [\n ['path', { d: 'M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7' }],\n [\n 'path',\n {\n d: 'M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z',\n },\n ],\n];\n\nexport default SquarePen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-pi\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik03IDdoMTAiIC8+CiAgPHBhdGggZD0iTTEwIDd2MTAiIC8+CiAgPHBhdGggZD0iTTE2IDE3YTIgMiAwIDAgMS0yLTJWNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-pi\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePi: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 7h10' }],\n ['path', { d: 'M10 7v10' }],\n ['path', { d: 'M16 17a2 2 0 0 1-2-2V7' }],\n];\n\nexport default SquarePi;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Im0xNSA5LTYgNiIgLz4KICA8cGF0aCBkPSJNOSA5aC4wMSIgLz4KICA8cGF0aCBkPSJNMTUgMTVoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePercent: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'M9 9h.01' }],\n ['path', { d: 'M15 15h.01' }],\n];\n\nexport default SquarePercent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-pilcrow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMkg5LjVhMi41IDIuNSAwIDAgMSAwLTVIMTciIC8+CiAgPHBhdGggZD0iTTEyIDd2MTAiIC8+CiAgPHBhdGggZD0iTTE2IDd2MTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-pilcrow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePilcrow: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M12 12H9.5a2.5 2.5 0 0 1 0-5H17' }],\n ['path', { d: 'M12 7v10' }],\n ['path', { d: 'M16 7v10' }],\n];\n\nexport default SquarePilcrow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik05IDkuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N0ExIDEgMCAwIDEgOSAxNC45OTZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePlay: IconNode = [\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n [\n 'path',\n {\n d: 'M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z',\n },\n ],\n];\n\nexport default SquarePlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+CiAgPHBhdGggZD0iTTEyIDh2OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePlus: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M8 12h8' }],\n ['path', { d: 'M12 8v8' }],\n];\n\nexport default SquarePlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-power\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgN3Y0IiAvPgogIDxwYXRoIGQ9Ik03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1IiAvPgogIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-power\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquarePower: IconNode = [\n ['path', { d: 'M12 7v4' }],\n ['path', { d: 'M7.998 9.003a5 5 0 1 0 8-.005' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default SquarePower;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-round-corner\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTFhOCA4IDAgMCAwLTgtOCIgLz4KICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-round-corner\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareRoundCorner: IconNode = [\n ['path', { d: 'M21 11a8 8 0 0 0-8-8' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4' }],\n];\n\nexport default SquareRoundCorner;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-radical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxMmgybDIgNSAyLTEwaDQiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-radical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareRadical: IconNode = [\n ['path', { d: 'M7 12h2l2 5 2-10h4' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default SquareRadical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-scissors\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjguNSIgcj0iMS41IiAvPgogIDxsaW5lIHgxPSI5LjU2MDY2IiB5MT0iOS41NjA2NiIgeDI9IjEyIiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjE3IiB5MT0iMTciIHgyPSIxNC44MiIgeTI9IjE0LjgyIiAvPgogIDxjaXJjbGUgY3g9IjguNSIgY3k9IjE1LjUiIHI9IjEuNSIgLz4KICA8bGluZSB4MT0iOS41NjA2NiIgeTE9IjE0LjQzOTM0IiB4Mj0iMTciIHkyPSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-scissors\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareScissors: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['circle', { cx: '8.5', cy: '8.5', r: '1.5' }],\n ['line', { x1: '9.56066', y1: '9.56066', x2: '12', y2: '12' }],\n ['line', { x1: '17', y1: '17', x2: '14.82', y2: '14.82' }],\n ['circle', { cx: '8.5', cy: '15.5', r: '1.5' }],\n ['line', { x1: '9.56066', y1: '14.43934', x2: '17', y2: '7' }],\n];\n\nexport default SquareScissors;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-sigma\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNiA4LjlWN0g4bDQgNS00IDVoOHYtMS45IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-sigma\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareSigma: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M16 8.9V7H8l4 5-4 5h8v-1.9' }],\n];\n\nexport default SquareSigma;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI5IiB4Mj0iMTUiIHkxPSIxNSIgeTI9IjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareSlash: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['line', { x1: '9', x2: '15', y1: '15', y2: '9' }],\n];\n\nexport default SquareSlash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-split-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAxOUg1Yy0xIDAtMi0xLTItMlY3YzAtMSAxLTIgMi0yaDMiIC8+CiAgPHBhdGggZD0iTTE2IDVoM2MxIDAgMiAxIDIgMnYxMGMwIDEtMSAyLTIgMmgtMyIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjQiIHkyPSIyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-split-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareSplitHorizontal: IconNode = [\n ['path', { d: 'M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3' }],\n ['path', { d: 'M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3' }],\n ['line', { x1: '12', x2: '12', y1: '4', y2: '20' }],\n];\n\nexport default SquareSplitHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-split-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSA4VjVjMC0xIDEtMiAyLTJoMTBjMSAwIDIgMSAyIDJ2MyIgLz4KICA8cGF0aCBkPSJNMTkgMTZ2M2MwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMnYtMyIgLz4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iMTIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-split-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareSplitVertical: IconNode = [\n ['path', { d: 'M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3' }],\n ['path', { d: 'M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3' }],\n ['line', { x1: '4', x2: '20', y1: '12', y2: '12' }],\n];\n\nexport default SquareSplitVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-stack\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMGMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDRjMS4xIDAgMiAuOSAyIDIiIC8+CiAgPHBhdGggZD0iTTEwIDE2Yy0xLjEgMC0yLS45LTItMnYtNGMwLTEuMS45LTIgMi0yaDRjMS4xIDAgMiAuOSAyIDIiIC8+CiAgPHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgeD0iMTQiIHk9IjE0IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-stack\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareStack: IconNode = [\n ['path', { d: 'M4 10c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2' }],\n ['path', { d: 'M10 16c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2' }],\n ['rect', { width: '8', height: '8', x: '14', y: '14', rx: '2' }],\n];\n\nexport default SquareStack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiAvPgogIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSI4IiBoZWlnaHQ9IjgiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareSquare: IconNode = [\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n ['rect', { x: '8', y: '8', width: '8', height: '8', rx: '1' }],\n];\n\nexport default SquareSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMDM1IDcuNjlhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareStar: IconNode = [\n [\n 'path',\n {\n d: 'M11.035 7.69a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.866l-1.156-1.153a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z',\n },\n ],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n];\n\nexport default SquareStar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-stop\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-stop\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareStop: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['rect', { x: '9', y: '9', width: '6', height: '6', rx: '1' }],\n];\n\nexport default SquareStop;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-terminal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxMSAyLTItMi0yIiAvPgogIDxwYXRoIGQ9Ik0xMSAxM2g0IiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgeD0iMyIgeT0iMyIgcng9IjIiIHJ5PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-terminal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareTerminal: IconNode = [\n ['path', { d: 'm7 11 2-2-2-2' }],\n ['path', { d: 'M11 13h4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n];\n\nexport default SquareTerminal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-user-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMjFhNiA2IDAgMCAwLTEyIDAiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMSIgcj0iNCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-user-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareUserRound: IconNode = [\n ['path', { d: 'M18 21a6 6 0 0 0-12 0' }],\n ['circle', { cx: '12', cy: '11', r: '4' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n];\n\nexport default SquareUserRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTcgMjF2LTJhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareUser: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'M7 21v-2a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2' }],\n];\n\nexport default SquareUser;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0ibTkgOSA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquareX: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'm9 9 6 6' }],\n];\n\nexport default SquareX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Square: IconNode = [['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }]];\n\nexport default Square;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squares-exclude\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTJ2MmEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAwLTEgMXYzYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yaDAiIC8+CiAgPHBhdGggZD0iTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMS0xIDFoLTVhMiAyIDAgMCAwLTIgMnYyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/squares-exclude\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquaresExclude: IconNode = [\n [\n 'path',\n {\n d: 'M16 12v2a2 2 0 0 1-2 2H9a1 1 0 0 0-1 1v3a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2h0',\n },\n ],\n [\n 'path',\n {\n d: 'M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 1-1 1h-5a2 2 0 0 0-2 2v2',\n },\n ],\n];\n\nexport default SquaresExclude;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squares-intersect\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjJhMiAyIDAgMCAxLTItMiIgLz4KICA8cGF0aCBkPSJNMTQgMmEyIDIgMCAwIDEgMiAyIiAvPgogIDxwYXRoIGQ9Ik0xNiAyMmgtMiIgLz4KICA8cGF0aCBkPSJNMiAxMFY4IiAvPgogIDxwYXRoIGQ9Ik0yIDRhMiAyIDAgMCAxIDItMiIgLz4KICA8cGF0aCBkPSJNMjAgOGEyIDIgMCAwIDEgMiAyIiAvPgogIDxwYXRoIGQ9Ik0yMiAxNHYyIiAvPgogIDxwYXRoIGQ9Ik0yMiAyMGEyIDIgMCAwIDEtMiAyIiAvPgogIDxwYXRoIGQ9Ik00IDE2YTIgMiAwIDAgMS0yLTIiIC8+CiAgPHBhdGggZD0iTTggMTBhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMSAxIDF2NWEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAxLTEtMXoiIC8+CiAgPHBhdGggZD0iTTggMmgyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/squares-intersect\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquaresIntersect: IconNode = [\n ['path', { d: 'M10 22a2 2 0 0 1-2-2' }],\n ['path', { d: 'M14 2a2 2 0 0 1 2 2' }],\n ['path', { d: 'M16 22h-2' }],\n ['path', { d: 'M2 10V8' }],\n ['path', { d: 'M2 4a2 2 0 0 1 2-2' }],\n ['path', { d: 'M20 8a2 2 0 0 1 2 2' }],\n ['path', { d: 'M22 14v2' }],\n ['path', { d: 'M22 20a2 2 0 0 1-2 2' }],\n ['path', { d: 'M4 16a2 2 0 0 1-2-2' }],\n ['path', { d: 'M8 10a2 2 0 0 1 2-2h5a1 1 0 0 1 1 1v5a2 2 0 0 1-2 2H9a1 1 0 0 1-1-1z' }],\n ['path', { d: 'M8 2h2' }],\n];\n\nexport default SquaresIntersect;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squares-subtract\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjJhMiAyIDAgMCAxLTItMiIgLz4KICA8cGF0aCBkPSJNMTYgMjJoLTIiIC8+CiAgPHBhdGggZD0iTTE2IDRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgzYTEgMSAwIDAgMCAxLTF2LTVhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMCAxLTF6IiAvPgogIDxwYXRoIGQ9Ik0yMCA4YTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTIyIDE0djIiIC8+CiAgPHBhdGggZD0iTTIyIDIwYTIgMiAwIDAgMS0yIDIiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/squares-subtract\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquaresSubtract: IconNode = [\n ['path', { d: 'M10 22a2 2 0 0 1-2-2' }],\n ['path', { d: 'M16 22h-2' }],\n [\n 'path',\n {\n d: 'M16 4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h3a1 1 0 0 0 1-1v-5a2 2 0 0 1 2-2h5a1 1 0 0 0 1-1z',\n },\n ],\n ['path', { d: 'M20 8a2 2 0 0 1 2 2' }],\n ['path', { d: 'M22 14v2' }],\n ['path', { d: 'M22 20a2 2 0 0 1-2 2' }],\n];\n\nexport default SquaresSubtract;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squares-unite\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjNhMSAxIDAgMCAwIDEgMWgzYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkgxMGEyIDIgMCAwIDEtMi0ydi0zYTEgMSAwIDAgMC0xLTF6IiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/squares-unite\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquaresUnite: IconNode = [\n [\n 'path',\n {\n d: 'M4 16a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3a1 1 0 0 0 1 1h3a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-3a1 1 0 0 0-1-1z',\n },\n ],\n];\n\nexport default SquaresUnite;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squircle-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNzcgMy4wNDNhMzQgMzQgMCAwIDAtMy41NCAwIiAvPgogIDxwYXRoIGQ9Ik0xMy43NzEgMjAuOTU2YTMzIDMzIDAgMCAxLTMuNTQxLjAwMSIgLz4KICA8cGF0aCBkPSJNMjAuMTggMTcuNzRjLS41MSAxLjE1LTEuMjkgMS45My0yLjQzOSAyLjQ0IiAvPgogIDxwYXRoIGQ9Ik0yMC4xOCA2LjI1OWMtLjUxLTEuMTQ4LTEuMjkxLTEuOTI5LTIuNDQtMi40MzgiIC8+CiAgPHBhdGggZD0iTTIwLjk1NyAxMC4yM2EzMyAzMyAwIDAgMSAwIDMuNTQiIC8+CiAgPHBhdGggZD0iTTMuMDQzIDEwLjIzYTM0IDM0IDAgMCAwIC4wMDEgMy41NDEiIC8+CiAgPHBhdGggZD0iTTYuMjYgMjAuMTc5Yy0xLjE1LS41MDgtMS45My0xLjI5LTIuNDQtMi40MzgiIC8+CiAgPHBhdGggZD0iTTYuMjYgMy44MmMtMS4xNDkuNTEtMS45MyAxLjI5MS0yLjQ0IDIuNDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/squircle-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SquircleDashed: IconNode = [\n ['path', { d: 'M13.77 3.043a34 34 0 0 0-3.54 0' }],\n ['path', { d: 'M13.771 20.956a33 33 0 0 1-3.541.001' }],\n ['path', { d: 'M20.18 17.74c-.51 1.15-1.29 1.93-2.439 2.44' }],\n ['path', { d: 'M20.18 6.259c-.51-1.148-1.291-1.929-2.44-2.438' }],\n ['path', { d: 'M20.957 10.23a33 33 0 0 1 0 3.54' }],\n ['path', { d: 'M3.043 10.23a34 34 0 0 0 .001 3.541' }],\n ['path', { d: 'M6.26 20.179c-1.15-.508-1.93-1.29-2.44-2.438' }],\n ['path', { d: 'M6.26 3.82c-1.149.51-1.93 1.291-2.44 2.44' }],\n];\n\nexport default SquircleDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squircle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM2M3LjIgMCA5IDEuOCA5IDlzLTEuOCA5LTkgOS05LTEuOC05LTkgMS44LTkgOS05IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/squircle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Squircle: IconNode = [\n ['path', { d: 'M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9-9-1.8-9-9 1.8-9 9-9' }],\n];\n\nexport default Squircle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name squirrel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMjM2IDIyYTMgMyAwIDAgMC0yLjItNSIgLz4KICA8cGF0aCBkPSJNMTYgMjBhMyAzIDAgMCAxIDMtM2gxYTIgMiAwIDAgMCAyLTJ2LTJhNCA0IDAgMCAwLTQtNFY0IiAvPgogIDxwYXRoIGQ9Ik0xOCAxM2guMDEiIC8+CiAgPHBhdGggZD0iTTE4IDZhNCA0IDAgMCAwLTQgNCA3IDcgMCAwIDAtNyA3YzAtNSA0LTUgNC0xMC41YTQuNSA0LjUgMCAxIDAtOSAwIDIuNSAyLjUgMCAwIDAgNSAwQzcgMTAgMyAxMSAzIDE3YzAgMi44IDIuMiA1IDUgNWgxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/squirrel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Squirrel: IconNode = [\n ['path', { d: 'M15.236 22a3 3 0 0 0-2.2-5' }],\n ['path', { d: 'M16 20a3 3 0 0 1 3-3h1a2 2 0 0 0 2-2v-2a4 4 0 0 0-4-4V4' }],\n ['path', { d: 'M18 13h.01' }],\n [\n 'path',\n {\n d: 'M18 6a4 4 0 0 0-4 4 7 7 0 0 0-7 7c0-5 4-5 4-10.5a4.5 4.5 0 1 0-9 0 2.5 2.5 0 0 0 5 0C7 10 3 11 3 17c0 2.8 2.2 5 5 5h10',\n },\n ],\n];\n\nexport default Squirrel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name stamp\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTNWOC41QzE0IDcgMTUgNyAxNSA1YTMgMyAwIDAgMC02IDBjMCAyIDEgMiAxIDMuNVYxMyIgLz4KICA8cGF0aCBkPSJNMjAgMTUuNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTExQTIuNSAyLjUgMCAwIDAgNCAxNS41VjE3YTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMXoiIC8+CiAgPHBhdGggZD0iTTUgMjJoMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/stamp\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Stamp: IconNode = [\n ['path', { d: 'M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-6 0c0 2 1 2 1 3.5V13' }],\n [\n 'path',\n {\n d: 'M20 15.5a2.5 2.5 0 0 0-2.5-2.5h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1z',\n },\n ],\n ['path', { d: 'M5 22h14' }],\n];\n\nexport default Stamp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name star-half\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTguMzM4YTIuMSAyLjEgMCAwIDAtLjk4Ny4yNDRMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyIDIuMTIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWEyLjEyIDIuMTIgMCAwIDAgMS41OTctMS4xNmwyLjMwOS00LjY3OUEuNTMuNTMgMCAwIDEgMTIgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/star-half\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StarHalf: IconNode = [\n [\n 'path',\n {\n d: 'M12 18.338a2.1 2.1 0 0 0-.987.244L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16l2.309-4.679A.53.53 0 0 1 12 2',\n },\n ],\n];\n\nexport default StarHalf;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name star-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuMzQ0IDQuNjg4IDEuMTgxLTIuMzkzYS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIgMi4xMiAwIDAgMCAxLjU5NSAxLjE2bDUuMTY2Ljc1NmEuNTMuNTMgMCAwIDEgLjI5NC45MDRsLTMuMjM3IDMuMTUyIiAvPgogIDxwYXRoIGQ9Im0xNy45NDUgMTcuOTQ1LjQzIDIuNTA1YS41My41MyAwIDAgMS0uNzcxLjU2bC00LjYxOC0yLjQyOGEyLjEyIDIuMTIgMCAwIDAtMS45NzMgMEw2LjM5NiAyMS4wMWEuNTMuNTMgMCAwIDEtLjc3LS41NmwuODgxLTUuMTM5YTIuMTIgMi4xMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTggOCAwIDAgMCAuNC0uMDk5IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/star-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StarOff: IconNode = [\n [\n 'path',\n {\n d: 'm10.344 4.688 1.181-2.393a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.237 3.152',\n },\n ],\n [\n 'path',\n {\n d: 'm17.945 17.945.43 2.505a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a8 8 0 0 0 .4-.099',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default StarOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Star: IconNode = [\n [\n 'path',\n {\n d: 'M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z',\n },\n ],\n];\n\nexport default Star;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name step-back\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuOTcxIDQuMjg1QTIgMiAwIDAgMSAxNyA2djEyYTIgMiAwIDAgMS0zLjAyOSAxLjcxNWwtOS45OTctNS45OThhMiAyIDAgMCAxLS4wMDMtMy40MzJ6IiAvPgogIDxwYXRoIGQ9Ik0yMSAyMFY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/step-back\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StepBack: IconNode = [\n [\n 'path',\n {\n d: 'M13.971 4.285A2 2 0 0 1 17 6v12a2 2 0 0 1-3.029 1.715l-9.997-5.998a2 2 0 0 1-.003-3.432z',\n },\n ],\n ['path', { d: 'M21 20V4' }],\n];\n\nexport default StepBack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name step-forward\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMDI5IDQuMjg1QTIgMiAwIDAgMCA3IDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiIgLz4KICA8cGF0aCBkPSJNMyA0djE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/step-forward\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StepForward: IconNode = [\n [\n 'path',\n { d: 'M10.029 4.285A2 2 0 0 0 7 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z' },\n ],\n ['path', { d: 'M3 4v16' }],\n];\n\nexport default StepForward;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name stethoscope\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMnYyIiAvPgogIDxwYXRoIGQ9Ik01IDJ2MiIgLz4KICA8cGF0aCBkPSJNNSAzSDRhMiAyIDAgMCAwLTIgMnY0YTYgNiAwIDAgMCAxMiAwVjVhMiAyIDAgMCAwLTItMmgtMSIgLz4KICA8cGF0aCBkPSJNOCAxNWE2IDYgMCAwIDAgMTIgMHYtMyIgLz4KICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjEwIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/stethoscope\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Stethoscope: IconNode = [\n ['path', { d: 'M11 2v2' }],\n ['path', { d: 'M5 2v2' }],\n ['path', { d: 'M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1' }],\n ['path', { d: 'M8 15a6 6 0 0 0 12 0v-3' }],\n ['circle', { cx: '20', cy: '10', r: '2' }],\n];\n\nexport default Stethoscope;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sticker\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTUgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTUgM3Y1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNOCAxM2guMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEzaC4wMSIgLz4KICA8cGF0aCBkPSJNMTAgMTZzLjggMSAyIDFjMS4zIDAgMi0xIDItMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sticker\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sticker: IconNode = [\n [\n 'path',\n {\n d: 'M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z',\n },\n ],\n ['path', { d: 'M15 3v5a1 1 0 0 0 1 1h5' }],\n ['path', { d: 'M8 13h.01' }],\n ['path', { d: 'M16 13h.01' }],\n ['path', { d: 'M10 16s.8 1 2 1c1.3 0 2-1 2-1' }],\n];\n\nexport default Sticker;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sticky-note\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTUgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTUgM3Y1YTEgMSAwIDAgMCAxIDFoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sticky-note\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StickyNote: IconNode = [\n [\n 'path',\n {\n d: 'M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z',\n },\n ],\n ['path', { d: 'M15 3v5a1 1 0 0 0 1 1h5' }],\n];\n\nexport default StickyNote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name stone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMjY0IDIuMjA1QTQgNCAwIDAgMCA2LjQyIDQuMjExbC00IDhhNCA0IDAgMCAwIDEuMzU5IDUuMTE3bDYgNGE0IDQgMCAwIDAgNC40MzggMGw2LTRhNCA0IDAgMCAwIDEuNTc2LTQuNTkybC0yLTZhNCA0IDAgMCAwLTIuNTMtMi41M3oiIC8+CiAgPHBhdGggZD0iTTExLjk5IDIyIDE0IDEybDcuODIyIDMuMTg0IiAvPgogIDxwYXRoIGQ9Ik0xNCAxMiA4LjQ3IDIuMzAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/stone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Stone: IconNode = [\n [\n 'path',\n {\n d: 'M11.264 2.205A4 4 0 0 0 6.42 4.211l-4 8a4 4 0 0 0 1.359 5.117l6 4a4 4 0 0 0 4.438 0l6-4a4 4 0 0 0 1.576-4.592l-2-6a4 4 0 0 0-2.53-2.53z',\n },\n ],\n ['path', { d: 'M11.99 22 14 12l7.822 3.184' }],\n ['path', { d: 'M14 12 8.47 2.302' }],\n];\n\nexport default Stone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name store\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUiIC8+CiAgPHBhdGggZD0iTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCIgLz4KICA8cGF0aCBkPSJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/store\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Store: IconNode = [\n ['path', { d: 'M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5' }],\n [\n 'path',\n {\n d: 'M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244',\n },\n ],\n ['path', { d: 'M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05' }],\n];\n\nexport default Store;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name stretch-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNiIgeD0iMiIgeT0iNCIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjYiIHg9IjIiIHk9IjE0IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/stretch-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StretchHorizontal: IconNode = [\n ['rect', { width: '20', height: '6', x: '2', y: '4', rx: '2' }],\n ['rect', { width: '20', height: '6', x: '2', y: '14', rx: '2' }],\n];\n\nexport default StretchHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name stretch-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIyMCIgeD0iNCIgeT0iMiIgcng9IjIiIC8+CiAgPHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMjAiIHg9IjE0IiB5PSIyIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/stretch-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst StretchVertical: IconNode = [\n ['rect', { width: '6', height: '20', x: '4', y: '2', rx: '2' }],\n ['rect', { width: '6', height: '20', x: '14', y: '2', rx: '2' }],\n];\n\nexport default StretchVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name strikethrough\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNEg5YTMgMyAwIDAgMC0yLjgzIDQiIC8+CiAgPHBhdGggZD0iTTE0IDEyYTQgNCAwIDAgMSAwIDhINiIgLz4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iMTIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/strikethrough\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Strikethrough: IconNode = [\n ['path', { d: 'M16 4H9a3 3 0 0 0-2.83 4' }],\n ['path', { d: 'M14 12a4 4 0 0 1 0 8H6' }],\n ['line', { x1: '4', x2: '20', y1: '12', y2: '12' }],\n];\n\nexport default Strikethrough;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name subscript\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNCA1IDggOCIgLz4KICA8cGF0aCBkPSJtMTIgNS04IDgiIC8+CiAgPHBhdGggZD0iTTIwIDE5aC00YzAtMS41LjQ0LTIgMS41LTIuNVMyMCAxNS4zMyAyMCAxNGMwLS40Ny0uMTctLjkzLS40OC0xLjI5YTIuMTEgMi4xMSAwIDAgMC0yLjYyLS40NGMtLjQyLjI0LS43NC42Mi0uOSAxLjA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/subscript\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Subscript: IconNode = [\n ['path', { d: 'm4 5 8 8' }],\n ['path', { d: 'm12 5-8 8' }],\n [\n 'path',\n {\n d: 'M20 19h-4c0-1.5.44-2 1.5-2.5S20 15.33 20 14c0-.47-.17-.93-.48-1.29a2.11 2.11 0 0 0-2.62-.44c-.42.24-.74.62-.9 1.07',\n },\n ],\n];\n\nexport default Subscript;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun-dim\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiA0aC4wMSIgLz4KICA8cGF0aCBkPSJNMjAgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMiAyMGguMDEiIC8+CiAgPHBhdGggZD0iTTQgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNy42NTcgNi4zNDNoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNy42NTcgMTcuNjU3aC4wMSIgLz4KICA8cGF0aCBkPSJNNi4zNDMgMTcuNjU3aC4wMSIgLz4KICA8cGF0aCBkPSJNNi4zNDMgNi4zNDNoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sun-dim\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SunDim: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M12 4h.01' }],\n ['path', { d: 'M20 12h.01' }],\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M4 12h.01' }],\n ['path', { d: 'M17.657 6.343h.01' }],\n ['path', { d: 'M17.657 17.657h.01' }],\n ['path', { d: 'M6.343 17.657h.01' }],\n ['path', { d: 'M6.343 6.343h.01' }],\n];\n\nexport default SunDim;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun-medium\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjEiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjEiIC8+CiAgPHBhdGggZD0iTTMgMTJoMSIgLz4KICA8cGF0aCBkPSJNMjAgMTJoMSIgLz4KICA8cGF0aCBkPSJtMTguMzY0IDUuNjM2LS43MDcuNzA3IiAvPgogIDxwYXRoIGQ9Im02LjM0MyAxNy42NTctLjcwNy43MDciIC8+CiAgPHBhdGggZD0ibTUuNjM2IDUuNjM2LjcwNy43MDciIC8+CiAgPHBhdGggZD0ibTE3LjY1NyAxNy42NTcuNzA3LjcwNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sun-medium\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SunMedium: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M12 3v1' }],\n ['path', { d: 'M12 20v1' }],\n ['path', { d: 'M3 12h1' }],\n ['path', { d: 'M20 12h1' }],\n ['path', { d: 'm18.364 5.636-.707.707' }],\n ['path', { d: 'm6.343 17.657-.707.707' }],\n ['path', { d: 'm5.636 5.636.707.707' }],\n ['path', { d: 'm17.657 17.657.707.707' }],\n];\n\nexport default SunMedium;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun-moon\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNC44MzcgMTYuMzg1YTYgNiAwIDEgMS03LjIyMy03LjIyMmMuNjI0LS4xNDcuOTcuNjYuNzE1IDEuMjQ4YTQgNCAwIDAgMCA1LjI2IDUuMjU5Yy41ODktLjI1NSAxLjM5Ni4wOSAxLjI0OC43MTUiIC8+CiAgPHBhdGggZD0iTTE2IDEyYTQgNCAwIDAgMC00LTQiIC8+CiAgPHBhdGggZD0ibTE5IDUtMS4yNTYgMS4yNTYiIC8+CiAgPHBhdGggZD0iTTIwIDEyaDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sun-moon\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SunMoon: IconNode = [\n ['path', { d: 'M12 2v2' }],\n [\n 'path',\n {\n d: 'M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715',\n },\n ],\n ['path', { d: 'M16 12a4 4 0 0 0-4-4' }],\n ['path', { d: 'm19 5-1.256 1.256' }],\n ['path', { d: 'M20 12h2' }],\n];\n\nexport default SunMoon;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun-snow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjF2LTEiIC8+CiAgPHBhdGggZD0iTTEwIDRWMyIgLz4KICA8cGF0aCBkPSJNMTAgOWEzIDMgMCAwIDAgMCA2IiAvPgogIDxwYXRoIGQ9Im0xNCAyMCAxLjI1LTIuNUwxOCAxOCIgLz4KICA8cGF0aCBkPSJtMTQgNCAxLjI1IDIuNUwxOCA2IiAvPgogIDxwYXRoIGQ9Im0xNyAyMS0zLTYgMS41LTNIMjIiIC8+CiAgPHBhdGggZD0ibTE3IDMtMyA2IDEuNSAzIiAvPgogIDxwYXRoIGQ9Ik0yIDEyaDEiIC8+CiAgPHBhdGggZD0ibTIwIDEwLTEuNSAyIDEuNSAyIiAvPgogIDxwYXRoIGQ9Im0zLjY0IDE4LjM2LjctLjciIC8+CiAgPHBhdGggZD0ibTQuMzQgNi4zNC0uNy0uNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sun-snow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SunSnow: IconNode = [\n ['path', { d: 'M10 21v-1' }],\n ['path', { d: 'M10 4V3' }],\n ['path', { d: 'M10 9a3 3 0 0 0 0 6' }],\n ['path', { d: 'm14 20 1.25-2.5L18 18' }],\n ['path', { d: 'm14 4 1.25 2.5L18 6' }],\n ['path', { d: 'm17 21-3-6 1.5-3H22' }],\n ['path', { d: 'm17 3-3 6 1.5 3' }],\n ['path', { d: 'M2 12h1' }],\n ['path', { d: 'm20 10-1.5 2 1.5 2' }],\n ['path', { d: 'm3.64 18.36.7-.7' }],\n ['path', { d: 'm4.34 6.34-.7-.7' }],\n];\n\nexport default SunSnow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sun\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0ibTQuOTMgNC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0ibTE3LjY2IDE3LjY2IDEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMiAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im02LjM0IDE3LjY2LTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJtMTkuMDcgNC45My0xLjQxIDEuNDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sun\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sun: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '4' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41' }],\n ['path', { d: 'm17.66 17.66 1.41 1.41' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'M20 12h2' }],\n ['path', { d: 'm6.34 17.66-1.41 1.41' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41' }],\n];\n\nexport default Sun;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sunrise\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY4IiAvPgogIDxwYXRoIGQ9Im00LjkzIDEwLjkzIDEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMiAxOGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxOGgyIiAvPgogIDxwYXRoIGQ9Im0xOS4wNyAxMC45My0xLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0iTTIyIDIySDIiIC8+CiAgPHBhdGggZD0ibTggNiA0LTQgNCA0IiAvPgogIDxwYXRoIGQ9Ik0xNiAxOGE0IDQgMCAwIDAtOCAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/sunrise\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sunrise: IconNode = [\n ['path', { d: 'M12 2v8' }],\n ['path', { d: 'm4.93 10.93 1.41 1.41' }],\n ['path', { d: 'M2 18h2' }],\n ['path', { d: 'M20 18h2' }],\n ['path', { d: 'm19.07 10.93-1.41 1.41' }],\n ['path', { d: 'M22 22H2' }],\n ['path', { d: 'm8 6 4-4 4 4' }],\n ['path', { d: 'M16 18a4 4 0 0 0-8 0' }],\n];\n\nexport default Sunrise;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sunset\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTBWMiIgLz4KICA8cGF0aCBkPSJtNC45MyAxMC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0iTTIgMThoMiIgLz4KICA8cGF0aCBkPSJNMjAgMThoMiIgLz4KICA8cGF0aCBkPSJtMTkuMDcgMTAuOTMtMS40MSAxLjQxIiAvPgogIDxwYXRoIGQ9Ik0yMiAyMkgyIiAvPgogIDxwYXRoIGQ9Im0xNiA2LTQgNC00LTQiIC8+CiAgPHBhdGggZD0iTTE2IDE4YTQgNCAwIDAgMC04IDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sunset\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sunset: IconNode = [\n ['path', { d: 'M12 10V2' }],\n ['path', { d: 'm4.93 10.93 1.41 1.41' }],\n ['path', { d: 'M2 18h2' }],\n ['path', { d: 'M20 18h2' }],\n ['path', { d: 'm19.07 10.93-1.41 1.41' }],\n ['path', { d: 'M22 22H2' }],\n ['path', { d: 'm16 6-4 4-4-4' }],\n ['path', { d: 'M16 18a4 4 0 0 0-8 0' }],\n];\n\nexport default Sunset;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name superscript\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNCAxOSA4LTgiIC8+CiAgPHBhdGggZD0ibTEyIDE5LTgtOCIgLz4KICA8cGF0aCBkPSJNMjAgMTJoLTRjMC0xLjUuNDQyLTIgMS41LTIuNVMyMCA4LjMzNCAyMCA3LjAwMmMwLS40NzItLjE3LS45My0uNDg0LTEuMjlhMi4xMDUgMi4xMDUgMCAwIDAtMi42MTctLjQzNmMtLjQyLjIzOS0uNzM4LjYxNC0uODk5IDEuMDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/superscript\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Superscript: IconNode = [\n ['path', { d: 'm4 19 8-8' }],\n ['path', { d: 'm12 19-8-8' }],\n [\n 'path',\n {\n d: 'M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06',\n },\n ],\n];\n\nexport default Superscript;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name swatch-book\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTdhNCA0IDAgMCAxLTggMFY1YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyWiIgLz4KICA8cGF0aCBkPSJNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3IiAvPgogIDxwYXRoIGQ9Ik0gNyAxN2guMDEiIC8+CiAgPHBhdGggZD0ibTExIDggMi4zLTIuM2EyLjQgMi40IDAgMCAxIDMuNDA0LjAwNEwxOC42IDcuNmEyLjQgMi40IDAgMCAxIC4wMjYgMy40MzRMOS45IDE5LjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/swatch-book\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SwatchBook: IconNode = [\n ['path', { d: 'M11 17a4 4 0 0 1-8 0V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2Z' }],\n ['path', { d: 'M16.7 13H19a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H7' }],\n ['path', { d: 'M 7 17h.01' }],\n [\n 'path',\n { d: 'm11 8 2.3-2.3a2.4 2.4 0 0 1 3.404.004L18.6 7.6a2.4 2.4 0 0 1 .026 3.434L9.9 19.8' },\n ],\n];\n\nexport default SwatchBook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name swiss-franc\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjFWM2g4IiAvPgogIDxwYXRoIGQ9Ik02IDE2aDkiIC8+CiAgPHBhdGggZD0iTTEwIDkuNWg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/swiss-franc\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SwissFranc: IconNode = [\n ['path', { d: 'M10 21V3h8' }],\n ['path', { d: 'M6 16h9' }],\n ['path', { d: 'M10 9.5h7' }],\n];\n\nexport default SwissFranc;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name switch-camera\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgMTlINGEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDItMmg1IiAvPgogIDxwYXRoIGQ9Ik0xMyA1aDdhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC01IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTE4IDIyLTMtMyAzLTMiIC8+CiAgPHBhdGggZD0ibTYgMiAzIDMtMyAzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/switch-camera\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst SwitchCamera: IconNode = [\n ['path', { d: 'M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5' }],\n ['path', { d: 'M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5' }],\n ['circle', { cx: '12', cy: '12', r: '3' }],\n ['path', { d: 'm18 22-3-3 3-3' }],\n ['path', { d: 'm6 2 3 3-3 3' }],\n];\n\nexport default SwitchCamera;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name sword\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTEgMTktNi02IiAvPgogIDxwYXRoIGQ9Im01IDIxLTItMiIgLz4KICA8cGF0aCBkPSJtOCAxNi00IDQiIC8+CiAgPHBhdGggZD0iTTkuNSAxNy41IDIxIDZWM2gtM0w2LjUgMTQuNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sword\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Sword: IconNode = [\n ['path', { d: 'm11 19-6-6' }],\n ['path', { d: 'm5 21-2-2' }],\n ['path', { d: 'm8 16-4 4' }],\n ['path', { d: 'M9.5 17.5 21 6V3h-3L6.5 14.5' }],\n];\n\nexport default Sword;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name swords\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWxpbmUgcG9pbnRzPSIxNC41IDE3LjUgMyA2IDMgMyA2IDMgMTcuNSAxNC41IiAvPgogIDxsaW5lIHgxPSIxMyIgeDI9IjE5IiB5MT0iMTkiIHkyPSIxMyIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIyMCIgeTE9IjE2IiB5Mj0iMjAiIC8+CiAgPGxpbmUgeDE9IjE5IiB4Mj0iMjEiIHkxPSIyMSIgeTI9IjE5IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjE0LjUgNi41IDE4IDMgMjEgMyAyMSA2IDE3LjUgOS41IiAvPgogIDxsaW5lIHgxPSI1IiB4Mj0iOSIgeTE9IjE0IiB5Mj0iMTgiIC8+CiAgPGxpbmUgeDE9IjciIHgyPSI0IiB5MT0iMTciIHkyPSIyMCIgLz4KICA8bGluZSB4MT0iMyIgeDI9IjUiIHkxPSIxOSIgeTI9IjIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/swords\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Swords: IconNode = [\n ['polyline', { points: '14.5 17.5 3 6 3 3 6 3 17.5 14.5' }],\n ['line', { x1: '13', x2: '19', y1: '19', y2: '13' }],\n ['line', { x1: '16', x2: '20', y1: '16', y2: '20' }],\n ['line', { x1: '19', x2: '21', y1: '21', y2: '19' }],\n ['polyline', { points: '14.5 6.5 18 3 21 3 21 6 17.5 9.5' }],\n ['line', { x1: '5', x2: '9', y1: '14', y2: '18' }],\n ['line', { x1: '7', x2: '4', y1: '17', y2: '20' }],\n ['line', { x1: '3', x2: '5', y1: '19', y2: '21' }],\n];\n\nexport default Swords;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name syringe\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMiA0IDQiIC8+CiAgPHBhdGggZD0ibTE3IDcgMy0zIiAvPgogIDxwYXRoIGQ9Ik0xOSA5IDguNyAxOS4zYy0xIDEtMi41IDEtMy40IDBsLS42LS42Yy0xLTEtMS0yLjUgMC0zLjRMMTUgNSIgLz4KICA8cGF0aCBkPSJtOSAxMSA0IDQiIC8+CiAgPHBhdGggZD0ibTUgMTktMyAzIiAvPgogIDxwYXRoIGQ9Im0xNCA0IDYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/syringe\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Syringe: IconNode = [\n ['path', { d: 'm18 2 4 4' }],\n ['path', { d: 'm17 7 3-3' }],\n ['path', { d: 'M19 9 8.7 19.3c-1 1-2.5 1-3.4 0l-.6-.6c-1-1-1-2.5 0-3.4L15 5' }],\n ['path', { d: 'm9 11 4 4' }],\n ['path', { d: 'm5 19-3 3' }],\n ['path', { d: 'm14 4 6 6' }],\n];\n\nexport default Syringe;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAzSDVhMiAyIDAgMCAwLTIgMnY0bTYtNmgxMGEyIDIgMCAwIDEgMiAydjRNOSAzdjE4bTAgMGgxMGEyIDIgMCAwIDAgMi0yVjlNOSAyMUg1YTIgMiAwIDAgMS0yLTJWOW0wIDBoMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Table2: IconNode = [\n [\n 'path',\n {\n d: 'M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18',\n },\n ],\n];\n\nexport default Table2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-cells-merge\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjF2LTYiIC8+CiAgPHBhdGggZD0iTTEyIDlWMyIgLz4KICA8cGF0aCBkPSJNMyAxNWgxOCIgLz4KICA8cGF0aCBkPSJNMyA5aDE4IiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgeD0iMyIgeT0iMyIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table-cells-merge\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableCellsMerge: IconNode = [\n ['path', { d: 'M12 21v-6' }],\n ['path', { d: 'M12 9V3' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'M3 9h18' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n];\n\nexport default TableCellsMerge;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-cells-split\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTVWOSIgLz4KICA8cGF0aCBkPSJNMyAxNWgxOCIgLz4KICA8cGF0aCBkPSJNMyA5aDE4IiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgeD0iMyIgeT0iMyIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table-cells-split\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableCellsSplit: IconNode = [\n ['path', { d: 'M12 15V9' }],\n ['path', { d: 'M3 15h18' }],\n ['path', { d: 'M3 9h18' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n];\n\nexport default TableCellsSplit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-columns-split\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTR2MiIgLz4KICA8cGF0aCBkPSJNMTQgMjB2MiIgLz4KICA8cGF0aCBkPSJNMTQgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xNCA4djIiIC8+CiAgPHBhdGggZD0iTTIgMTVoOCIgLz4KICA8cGF0aCBkPSJNMiAzaDZhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDIiIC8+CiAgPHBhdGggZD0iTTIgOWg4IiAvPgogIDxwYXRoIGQ9Ik0yMiAxNWgtNCIgLz4KICA8cGF0aCBkPSJNMjIgM2gtMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMiIgLz4KICA8cGF0aCBkPSJNMjIgOWgtNCIgLz4KICA8cGF0aCBkPSJNNSAzdjE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/table-columns-split\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableColumnsSplit: IconNode = [\n ['path', { d: 'M14 14v2' }],\n ['path', { d: 'M14 20v2' }],\n ['path', { d: 'M14 2v2' }],\n ['path', { d: 'M14 8v2' }],\n ['path', { d: 'M2 15h8' }],\n ['path', { d: 'M2 3h6a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2' }],\n ['path', { d: 'M2 9h8' }],\n ['path', { d: 'M22 15h-4' }],\n ['path', { d: 'M22 3h-2a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h2' }],\n ['path', { d: 'M22 9h-4' }],\n ['path', { d: 'M5 3v18' }],\n];\n\nexport default TableColumnsSplit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-of-contents\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNiAxOUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSA1aC4wMSIgLz4KICA8cGF0aCBkPSJNMjEgMTJoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yMSAxOWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table-of-contents\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableOfContents: IconNode = [\n ['path', { d: 'M16 5H3' }],\n ['path', { d: 'M16 12H3' }],\n ['path', { d: 'M16 19H3' }],\n ['path', { d: 'M21 5h.01' }],\n ['path', { d: 'M21 12h.01' }],\n ['path', { d: 'M21 19h.01' }],\n];\n\nexport default TableOfContents;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-properties\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM3YxOCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yMSA5SDMiIC8+CiAgPHBhdGggZD0iTTIxIDE1SDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table-properties\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableProperties: IconNode = [\n ['path', { d: 'M15 3v18' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M21 9H3' }],\n ['path', { d: 'M21 15H3' }],\n];\n\nexport default TableProperties;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table-rows-split\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTBoMiIgLz4KICA8cGF0aCBkPSJNMTUgMjJ2LTgiIC8+CiAgPHBhdGggZD0iTTE1IDJ2NCIgLz4KICA8cGF0aCBkPSJNMiAxMGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMGgyIiAvPgogIDxwYXRoIGQ9Ik0zIDE5aDE4IiAvPgogIDxwYXRoIGQ9Ik0zIDIydi02YTIgMiAxMzUgMCAxIDItMmgxNGEyIDIgNDUgMCAxIDIgMnY2IiAvPgogIDxwYXRoIGQ9Ik0zIDJ2MmEyIDIgNDUgMCAwIDIgMmgxNGEyIDIgMTM1IDAgMCAyLTJWMiIgLz4KICA8cGF0aCBkPSJNOCAxMGgyIiAvPgogIDxwYXRoIGQ9Ik05IDIydi04IiAvPgogIDxwYXRoIGQ9Ik05IDJ2NCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/table-rows-split\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TableRowsSplit: IconNode = [\n ['path', { d: 'M14 10h2' }],\n ['path', { d: 'M15 22v-8' }],\n ['path', { d: 'M15 2v4' }],\n ['path', { d: 'M2 10h2' }],\n ['path', { d: 'M20 10h2' }],\n ['path', { d: 'M3 19h18' }],\n ['path', { d: 'M3 22v-6a2 2 135 0 1 2-2h14a2 2 45 0 1 2 2v6' }],\n ['path', { d: 'M3 2v2a2 2 45 0 0 2 2h14a2 2 135 0 0 2-2V2' }],\n ['path', { d: 'M8 10h2' }],\n ['path', { d: 'M9 22v-8' }],\n ['path', { d: 'M9 2v4' }],\n];\n\nexport default TableRowsSplit;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name table\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0iTTMgMTVoMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Table: IconNode = [\n ['path', { d: 'M12 3v18' }],\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9h18' }],\n ['path', { d: 'M3 15h18' }],\n];\n\nexport default Table;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tablet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHg9IjQiIHk9IjIiIHJ4PSIyIiByeT0iMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMi4wMSIgeTE9IjE4IiB5Mj0iMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tablet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tablet: IconNode = [\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2', ry: '2' }],\n ['line', { x1: '12', x2: '12.01', y1: '18', y2: '18' }],\n];\n\nexport default Tablet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tablet-smartphone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTAiIGhlaWdodD0iMTQiIHg9IjMiIHk9IjgiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik01IDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjE2YTIgMiAwIDAgMS0yIDJoLTIuNCIgLz4KICA8cGF0aCBkPSJNOCAxOGguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tablet-smartphone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TabletSmartphone: IconNode = [\n ['rect', { width: '10', height: '14', x: '3', y: '8', rx: '2' }],\n ['path', { d: 'M5 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2h-2.4' }],\n ['path', { d: 'M8 18h.01' }],\n];\n\nexport default TabletSmartphone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tablets\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iNyIgcj0iNSIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE3IiByPSI1IiAvPgogIDxwYXRoIGQ9Ik0xMiAxN2gxMCIgLz4KICA8cGF0aCBkPSJtMy40NiAxMC41NCA3LjA4LTcuMDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tablets\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tablets: IconNode = [\n ['circle', { cx: '7', cy: '7', r: '5' }],\n ['circle', { cx: '17', cy: '17', r: '5' }],\n ['path', { d: 'M12 17h10' }],\n ['path', { d: 'm3.46 10.54 7.08-7.08' }],\n];\n\nexport default Tablets;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tag\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuNTg2IDIuNTg2QTIgMiAwIDAgMCAxMS4xNzIgMkg0YTIgMiAwIDAgMC0yIDJ2Ny4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsOC43MDQgOC43MDRhMi40MjYgMi40MjYgMCAwIDAgMy40MiAwbDYuNTgtNi41OGEyLjQyNiAyLjQyNiAwIDAgMCAwLTMuNDJ6IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tag\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tag: IconNode = [\n [\n 'path',\n {\n d: 'M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z',\n },\n ],\n ['circle', { cx: '7.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n];\n\nexport default Tag;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tags\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4Nmw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMSAwIDMuNDA4bC00LjU5MiA0LjU5MmEyLjQgMi40IDAgMCAxLTMuNDA4IDBsLTYuNzEtNi43MUEyIDIgMCAwIDEgNiA5LjE3MlYzYTEgMSAwIDAgMSAxLTF6IiAvPgogIDxwYXRoIGQ9Ik0yIDd2Ni4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDAgMy4xOTEuMTkzIiAvPgogIDxjaXJjbGUgY3g9IjEwLjUiIGN5PSI2LjUiIHI9Ii41IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tags\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tags: IconNode = [\n [\n 'path',\n {\n d: 'M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z',\n },\n ],\n ['path', { d: 'M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193' }],\n ['circle', { cx: '10.5', cy: '6.5', r: '.5', fill: 'currentColor' }],\n];\n\nexport default Tags;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tally-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA0djE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tally-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tally1: IconNode = [['path', { d: 'M4 4v16' }]];\n\nexport default Tally1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tally-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA0djE2IiAvPgogIDxwYXRoIGQ9Ik05IDR2MTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tally-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tally2: IconNode = [\n ['path', { d: 'M4 4v16' }],\n ['path', { d: 'M9 4v16' }],\n];\n\nexport default Tally2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tally-3\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA0djE2IiAvPgogIDxwYXRoIGQ9Ik05IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE0IDR2MTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tally-3\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tally3: IconNode = [\n ['path', { d: 'M4 4v16' }],\n ['path', { d: 'M9 4v16' }],\n ['path', { d: 'M14 4v16' }],\n];\n\nexport default Tally3;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tally-4\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA0djE2IiAvPgogIDxwYXRoIGQ9Ik05IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE0IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE5IDR2MTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tally-4\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tally4: IconNode = [\n ['path', { d: 'M4 4v16' }],\n ['path', { d: 'M9 4v16' }],\n ['path', { d: 'M14 4v16' }],\n ['path', { d: 'M19 4v16' }],\n];\n\nexport default Tally4;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tally-5\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCA0djE2IiAvPgogIDxwYXRoIGQ9Ik05IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE0IDR2MTYiIC8+CiAgPHBhdGggZD0iTTE5IDR2MTYiIC8+CiAgPHBhdGggZD0iTTIyIDYgMiAxOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tally-5\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tally5: IconNode = [\n ['path', { d: 'M4 4v16' }],\n ['path', { d: 'M9 4v16' }],\n ['path', { d: 'M14 4v16' }],\n ['path', { d: 'M19 4v16' }],\n ['path', { d: 'M22 6 2 18' }],\n];\n\nexport default Tally5;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tangent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjQiIHI9IjIiIC8+CiAgPHBhdGggZD0iTTE1LjU5IDUuNDEgNS40MSAxNS41OSIgLz4KICA8Y2lyY2xlIGN4PSI0IiBjeT0iMTciIHI9IjIiIC8+CiAgPHBhdGggZD0iTTEyIDIycy00LTktMS41LTExLjVTMjIgMTIgMjIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tangent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tangent: IconNode = [\n ['circle', { cx: '17', cy: '4', r: '2' }],\n ['path', { d: 'M15.59 5.41 5.41 15.59' }],\n ['circle', { cx: '4', cy: '17', r: '2' }],\n ['path', { d: 'M12 22s-4-9-1.5-11.5S22 12 22 12' }],\n];\n\nexport default Tangent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name target\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/target\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Target: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10' }],\n ['circle', { cx: '12', cy: '12', r: '6' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default Target;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name telescope\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuMDY1IDEyLjQ5My02LjE4IDEuMzE4YS45MzQuOTM0IDAgMCAxLTEuMTA4LS43MDJsLS41MzctMi4xNWExLjA3IDEuMDcgMCAwIDEgLjY5MS0xLjI2NWwxMy41MDQtNC40NCIgLz4KICA8cGF0aCBkPSJtMTMuNTYgMTEuNzQ3IDQuMzMyLS45MjQiIC8+CiAgPHBhdGggZD0ibTE2IDIxLTMuMTA1LTYuMjEiIC8+CiAgPHBhdGggZD0iTTE2LjQ4NSA1Ljk0YTIgMiAwIDAgMSAxLjQ1NS0yLjQyNWwxLjA5LS4yNzJhMSAxIDAgMCAxIDEuMjEyLjcyN2wxLjUxNSA2LjA2YTEgMSAwIDAgMS0uNzI3IDEuMjEzbC0xLjA5LjI3MmEyIDIgMCAwIDEtMi40MjUtMS40NTV6IiAvPgogIDxwYXRoIGQ9Im02LjE1OCA4LjYzMyAxLjExNCA0LjQ1NiIgLz4KICA8cGF0aCBkPSJtOCAyMSAzLjEwNS02LjIxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTMiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/telescope\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Telescope: IconNode = [\n [\n 'path',\n {\n d: 'm10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44',\n },\n ],\n ['path', { d: 'm13.56 11.747 4.332-.924' }],\n ['path', { d: 'm16 21-3.105-6.21' }],\n [\n 'path',\n {\n d: 'M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z',\n },\n ],\n ['path', { d: 'm6.158 8.633 1.114 4.456' }],\n ['path', { d: 'm8 21 3.105-6.21' }],\n ['circle', { cx: '12', cy: '13', r: '2' }],\n];\n\nexport default Telescope;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tent-tree\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI0IiBjeT0iNCIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMTQgNSAzLTMgMyAzIiAvPgogIDxwYXRoIGQ9Im0xNCAxMCAzLTMgMyAzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNFYyIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNEg3bC01IDhoMjBaIiAvPgogIDxwYXRoIGQ9Ik04IDE0djgiIC8+CiAgPHBhdGggZD0ibTkgMTQgNSA4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tent-tree\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TentTree: IconNode = [\n ['circle', { cx: '4', cy: '4', r: '2' }],\n ['path', { d: 'm14 5 3-3 3 3' }],\n ['path', { d: 'm14 10 3-3 3 3' }],\n ['path', { d: 'M17 14V2' }],\n ['path', { d: 'M17 14H7l-5 8h20Z' }],\n ['path', { d: 'M8 14v8' }],\n ['path', { d: 'm9 14 5 8' }],\n];\n\nexport default TentTree;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy41IDIxIDE0IDMiIC8+CiAgPHBhdGggZD0iTTIwLjUgMjEgMTAgMyIgLz4KICA8cGF0aCBkPSJNMTUuNSAyMSAxMiAxNWwtMy41IDYiIC8+CiAgPHBhdGggZD0iTTIgMjFoMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tent: IconNode = [\n ['path', { d: 'M3.5 21 14 3' }],\n ['path', { d: 'M20.5 21 10 3' }],\n ['path', { d: 'M15.5 21 12 15l-3.5 6' }],\n ['path', { d: 'M2 21h20' }],\n];\n\nexport default Tent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name terminal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTloOCIgLz4KICA8cGF0aCBkPSJtNCAxNyA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Terminal: IconNode = [\n ['path', { d: 'M12 19h8' }],\n ['path', { d: 'm4 17 6-6-6-6' }],\n];\n\nexport default Terminal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name test-tube-diagonal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNyA2LjgyIDIxLjE4YTIuODMgMi44MyAwIDAgMS0zLjk5LS4wMWEyLjgzIDIuODMgMCAwIDEgMC00TDE3IDMiIC8+CiAgPHBhdGggZD0ibTE2IDIgNiA2IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNkg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/test-tube-diagonal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TestTubeDiagonal: IconNode = [\n ['path', { d: 'M21 7 6.82 21.18a2.83 2.83 0 0 1-3.99-.01a2.83 2.83 0 0 1 0-4L17 3' }],\n ['path', { d: 'm16 2 6 6' }],\n ['path', { d: 'M12 16H4' }],\n];\n\nexport default TestTubeDiagonal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name test-tube\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNSAydjE3LjVjMCAxLjQtMS4xIDIuNS0yLjUgMi41Yy0xLjQgMC0yLjUtMS4xLTIuNS0yLjVWMiIgLz4KICA8cGF0aCBkPSJNOC41IDJoNyIgLz4KICA8cGF0aCBkPSJNMTQuNSAxNmgtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/test-tube\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TestTube: IconNode = [\n ['path', { d: 'M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2' }],\n ['path', { d: 'M8.5 2h7' }],\n ['path', { d: 'M14.5 16h-5' }],\n];\n\nexport default TestTube;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name test-tubes\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAydjE3LjVBMi41IDIuNSAwIDAgMSA2LjUgMjJBMi41IDIuNSAwIDAgMSA0IDE5LjVWMiIgLz4KICA8cGF0aCBkPSJNMjAgMnYxNy41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMiIgLz4KICA8cGF0aCBkPSJNMyAyaDciIC8+CiAgPHBhdGggZD0iTTE0IDJoNyIgLz4KICA8cGF0aCBkPSJNOSAxNkg0IiAvPgogIDxwYXRoIGQ9Ik0yMCAxNmgtNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/test-tubes\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TestTubes: IconNode = [\n ['path', { d: 'M9 2v17.5A2.5 2.5 0 0 1 6.5 22A2.5 2.5 0 0 1 4 19.5V2' }],\n ['path', { d: 'M20 2v17.5a2.5 2.5 0 0 1-2.5 2.5a2.5 2.5 0 0 1-2.5-2.5V2' }],\n ['path', { d: 'M3 2h7' }],\n ['path', { d: 'M14 2h7' }],\n ['path', { d: 'M9 16H4' }],\n ['path', { d: 'M20 16h-5' }],\n];\n\nexport default TestTubes;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-align-center\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxMkg3IiAvPgogIDxwYXRoIGQ9Ik0xOSAxOUg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-center\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextAlignCenter: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M17 12H7' }],\n ['path', { d: 'M19 19H5' }],\n];\n\nexport default TextAlignCenter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-align-end\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMkg5IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOUg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-end\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextAlignEnd: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M21 12H9' }],\n ['path', { d: 'M21 19H7' }],\n];\n\nexport default TextAlignEnd;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-align-justify\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDE4IiAvPgogIDxwYXRoIGQ9Ik0zIDEyaDE4IiAvPgogIDxwYXRoIGQ9Ik0zIDE5aDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-justify\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextAlignJustify: IconNode = [\n ['path', { d: 'M3 5h18' }],\n ['path', { d: 'M3 12h18' }],\n ['path', { d: 'M3 19h18' }],\n];\n\nexport default TextAlignJustify;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-cursor-input\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLTFhMiAyIDAgMCAxLTItMiAyIDIgMCAwIDEtMiAySDYiIC8+CiAgPHBhdGggZD0iTTEzIDhoN2EyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNyIgLz4KICA8cGF0aCBkPSJNNSAxNkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmgxIiAvPgogIDxwYXRoIGQ9Ik02IDRoMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMSAyLTJoMSIgLz4KICA8cGF0aCBkPSJNOSA2djEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-cursor-input\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextCursorInput: IconNode = [\n ['path', { d: 'M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6' }],\n ['path', { d: 'M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7' }],\n ['path', { d: 'M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1' }],\n ['path', { d: 'M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1' }],\n ['path', { d: 'M9 6v12' }],\n];\n\nexport default TextCursorInput;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-align-start\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxOUgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-start\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextAlignStart: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M15 12H3' }],\n ['path', { d: 'M17 19H3' }],\n];\n\nexport default TextAlignStart;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-cursor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMjJoLTFhNCA0IDAgMCAxLTQtNFY2YTQgNCAwIDAgMSA0LTRoMSIgLz4KICA8cGF0aCBkPSJNNyAyMmgxYTQgNCAwIDAgMCA0LTR2LTEiIC8+CiAgPHBhdGggZD0iTTcgMmgxYTQgNCAwIDAgMSA0IDR2MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/text-cursor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextCursor: IconNode = [\n ['path', { d: 'M17 22h-1a4 4 0 0 1-4-4V6a4 4 0 0 1 4-4h1' }],\n ['path', { d: 'M7 22h1a4 4 0 0 0 4-4v-1' }],\n ['path', { d: 'M7 2h1a4 4 0 0 1 4 4v1' }],\n];\n\nexport default TextCursor;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-initial\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNWg2IiAvPgogIDxwYXRoIGQ9Ik0xNSAxMmg2IiAvPgogIDxwYXRoIGQ9Ik0zIDE5aDE4IiAvPgogIDxwYXRoIGQ9Im0zIDEyIDMuNTUzLTcuNzI0YS41LjUgMCAwIDEgLjg5NCAwTDExIDEyIiAvPgogIDxwYXRoIGQ9Ik0zLjkyIDEwaDYuMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/text-initial\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextInitial: IconNode = [\n ['path', { d: 'M15 5h6' }],\n ['path', { d: 'M15 12h6' }],\n ['path', { d: 'M3 19h18' }],\n ['path', { d: 'm3 12 3.553-7.724a.5.5 0 0 1 .894 0L11 12' }],\n ['path', { d: 'M3.92 10h6.16' }],\n];\n\nexport default TextInitial;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-quote\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgNUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMkg4IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOUg4IiAvPgogIDxwYXRoIGQ9Ik0zIDEydjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/text-quote\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextQuote: IconNode = [\n ['path', { d: 'M17 5H3' }],\n ['path', { d: 'M21 12H8' }],\n ['path', { d: 'M21 19H8' }],\n ['path', { d: 'M3 12v7' }],\n];\n\nexport default TextQuote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xMCAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xMCAxOUgzIiAvPgogIDxjaXJjbGUgY3g9IjE3IiBjeT0iMTUiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTIxIDE5LTEuOS0xLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/text-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextSearch: IconNode = [\n ['path', { d: 'M21 5H3' }],\n ['path', { d: 'M10 12H3' }],\n ['path', { d: 'M10 19H3' }],\n ['circle', { cx: '17', cy: '15', r: '3' }],\n ['path', { d: 'm21 19-1.9-1.9' }],\n];\n\nexport default TextSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-select\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMjFoMSIgLz4KICA8cGF0aCBkPSJNMTQgM2gxIiAvPgogIDxwYXRoIGQ9Ik0xOSAzYTIgMiAwIDAgMSAyIDIiIC8+CiAgPHBhdGggZD0iTTIxIDE0djEiIC8+CiAgPHBhdGggZD0iTTIxIDE5YTIgMiAwIDAgMS0yIDIiIC8+CiAgPHBhdGggZD0iTTIxIDl2MSIgLz4KICA8cGF0aCBkPSJNMyAxNHYxIiAvPgogIDxwYXRoIGQ9Ik0zIDl2MSIgLz4KICA8cGF0aCBkPSJNNSAyMWEyIDIgMCAwIDEtMi0yIiAvPgogIDxwYXRoIGQ9Ik01IDNhMiAyIDAgMCAwLTIgMiIgLz4KICA8cGF0aCBkPSJNNyAxMmgxMCIgLz4KICA8cGF0aCBkPSJNNyAxNmg2IiAvPgogIDxwYXRoIGQ9Ik03IDhoOCIgLz4KICA8cGF0aCBkPSJNOSAyMWgxIiAvPgogIDxwYXRoIGQ9Ik05IDNoMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/text-select\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextSelect: IconNode = [\n ['path', { d: 'M14 21h1' }],\n ['path', { d: 'M14 3h1' }],\n ['path', { d: 'M19 3a2 2 0 0 1 2 2' }],\n ['path', { d: 'M21 14v1' }],\n ['path', { d: 'M21 19a2 2 0 0 1-2 2' }],\n ['path', { d: 'M21 9v1' }],\n ['path', { d: 'M3 14v1' }],\n ['path', { d: 'M3 9v1' }],\n ['path', { d: 'M5 21a2 2 0 0 1-2-2' }],\n ['path', { d: 'M5 3a2 2 0 0 0-2 2' }],\n ['path', { d: 'M7 12h10' }],\n ['path', { d: 'M7 16h6' }],\n ['path', { d: 'M7 8h8' }],\n ['path', { d: 'M9 21h1' }],\n ['path', { d: 'M9 3h1' }],\n];\n\nexport default TextSelect;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name text-wrap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTYtMyAzIDMgMyIgLz4KICA8cGF0aCBkPSJNMyAxMmgxNC41YTEgMSAwIDAgMSAwIDdIMTMiIC8+CiAgPHBhdGggZD0iTTMgMTloNiIgLz4KICA8cGF0aCBkPSJNMyA1aDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-wrap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TextWrap: IconNode = [\n ['path', { d: 'm16 16-3 3 3 3' }],\n ['path', { d: 'M3 12h14.5a1 1 0 0 1 0 7H13' }],\n ['path', { d: 'M3 19h6' }],\n ['path', { d: 'M3 5h18' }],\n];\n\nexport default TextWrap;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name theater\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxMHMzLTMgMy04IiAvPgogIDxwYXRoIGQ9Ik0yMiAxMHMtMy0zLTMtOCIgLz4KICA8cGF0aCBkPSJNMTAgMmMwIDQuNC0zLjYgOC04IDgiIC8+CiAgPHBhdGggZD0iTTE0IDJjMCA0LjQgMy42IDggOCA4IiAvPgogIDxwYXRoIGQ9Ik0yIDEwczIgMiAyIDUiIC8+CiAgPHBhdGggZD0iTTIyIDEwcy0yIDItMiA1IiAvPgogIDxwYXRoIGQ9Ik04IDE1aDgiIC8+CiAgPHBhdGggZD0iTTIgMjJ2LTFhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MSIgLz4KICA8cGF0aCBkPSJNMTQgMjJ2LTFhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/theater\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Theater: IconNode = [\n ['path', { d: 'M2 10s3-3 3-8' }],\n ['path', { d: 'M22 10s-3-3-3-8' }],\n ['path', { d: 'M10 2c0 4.4-3.6 8-8 8' }],\n ['path', { d: 'M14 2c0 4.4 3.6 8 8 8' }],\n ['path', { d: 'M2 10s2 2 2 5' }],\n ['path', { d: 'M22 10s-2 2-2 5' }],\n ['path', { d: 'M8 15h8' }],\n ['path', { d: 'M2 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1' }],\n ['path', { d: 'M14 22v-1a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v1' }],\n];\n\nexport default Theater;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thermometer-snowflake\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMjAtMS4yNS0yLjVMNiAxOCIgLz4KICA8cGF0aCBkPSJNMTAgNCA4Ljc1IDYuNSA2IDYiIC8+CiAgPHBhdGggZD0iTTEwLjU4NSAxNUgxMCIgLz4KICA8cGF0aCBkPSJNMiAxMmg2LjVMMTAgOSIgLz4KICA8cGF0aCBkPSJNMjAgMTQuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDB6IiAvPgogIDxwYXRoIGQ9Im00IDEwIDEuNSAyTDQgMTQiIC8+CiAgPHBhdGggZD0ibTcgMjEgMy02LTEuNS0zIiAvPgogIDxwYXRoIGQ9Im03IDMgMyA2aDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/thermometer-snowflake\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThermometerSnowflake: IconNode = [\n ['path', { d: 'm10 20-1.25-2.5L6 18' }],\n ['path', { d: 'M10 4 8.75 6.5 6 6' }],\n ['path', { d: 'M10.585 15H10' }],\n ['path', { d: 'M2 12h6.5L10 9' }],\n ['path', { d: 'M20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z' }],\n ['path', { d: 'm4 10 1.5 2L4 14' }],\n ['path', { d: 'm7 21 3-6-1.5-3' }],\n ['path', { d: 'm7 3 3 6h2' }],\n];\n\nexport default ThermometerSnowflake;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thermometer-sun\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0xMiA4YTQgNCAwIDAgMC0xLjY0NSA3LjY0NyIgLz4KICA8cGF0aCBkPSJNMiAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMHoiIC8+CiAgPHBhdGggZD0ibTQuOTMgNC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0ibTYuMzQgMTcuNjYtMS40MSAxLjQxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/thermometer-sun\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThermometerSun: IconNode = [\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M12 8a4 4 0 0 0-1.645 7.647' }],\n ['path', { d: 'M2 12h2' }],\n ['path', { d: 'M20 14.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41' }],\n ['path', { d: 'm6.34 17.66-1.41 1.41' }],\n];\n\nexport default ThermometerSun;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thermometer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNHYxMC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMFoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/thermometer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Thermometer: IconNode = [['path', { d: 'M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z' }]];\n\nexport default Thermometer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thumbs-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxOC4xMiAxMCAxNEg0LjE3YTIgMiAwIDAgMS0xLjkyLTIuNTZsMi4zMy04QTIgMiAwIDAgMSA2LjUgMkgyMGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi43NmEyIDIgMCAwIDAtMS43OSAxLjExTDEyIDIyYTMuMTMgMy4xMyAwIDAgMS0zLTMuODhaIiAvPgogIDxwYXRoIGQ9Ik0xNyAxNFYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/thumbs-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThumbsDown: IconNode = [\n [\n 'path',\n {\n d: 'M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z',\n },\n ],\n ['path', { d: 'M17 14V2' }],\n];\n\nexport default ThumbsDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name thumbs-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNS44OCAxNCAxMGg1LjgzYTIgMiAwIDAgMSAxLjkyIDIuNTZsLTIuMzMgOEEyIDIgMCAwIDEgMTcuNSAyMkg0YTIgMiAwIDAgMS0yLTJ2LThhMiAyIDAgMCAxIDItMmgyLjc2YTIgMiAwIDAgMCAxLjc5LTEuMTFMMTIgMmEzLjEzIDMuMTMgMCAwIDEgMyAzLjg4WiIgLz4KICA8cGF0aCBkPSJNNyAxMHYxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/thumbs-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ThumbsUp: IconNode = [\n [\n 'path',\n {\n d: 'M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z',\n },\n ],\n ['path', { d: 'M7 10v12' }],\n];\n\nexport default ThumbsUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ticket-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketCheck: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'm9 12 2 2 4-4' }],\n];\n\nexport default TicketCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJNOSAxMmg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ticket-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketMinus: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'M9 12h6' }],\n];\n\nexport default TicketMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-percent\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDEgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMSAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJNOSA5aC4wMSIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0iTTE1IDE1aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ticket-percent\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketPercent: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'M9 9h.01' }],\n ['path', { d: 'm15 9-6 6' }],\n ['path', { d: 'M15 15h.01' }],\n];\n\nexport default TicketPercent;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJNOSAxMmg2IiAvPgogIDxwYXRoIGQ9Ik0xMiA5djYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/ticket-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketPlus: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'M9 12h6' }],\n ['path', { d: 'M12 9v6' }],\n];\n\nexport default TicketPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-slash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJtOS41IDE0LjUgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ticket-slash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketSlash: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'm9.5 14.5 5-5' }],\n];\n\nexport default TicketSlash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJtOS41IDE0LjUgNS01IiAvPgogIDxwYXRoIGQ9Im05LjUgOS41IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/ticket-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketX: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'm9.5 14.5 5-5' }],\n ['path', { d: 'm9.5 9.5 5 5' }],\n];\n\nexport default TicketX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ticket\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiIgLz4KICA8cGF0aCBkPSJNMTMgNXYyIiAvPgogIDxwYXRoIGQ9Ik0xMyAxN3YyIiAvPgogIDxwYXRoIGQ9Ik0xMyAxMXYyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ticket\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ticket: IconNode = [\n [\n 'path',\n {\n d: 'M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z',\n },\n ],\n ['path', { d: 'M13 5v2' }],\n ['path', { d: 'M13 17v2' }],\n ['path', { d: 'M13 11v2' }],\n];\n\nexport default Ticket;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tickets-plane\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNSAxN2gxLjIyN2EyIDIgMCAwIDAgMS4zNDUtLjUyTDE4IDEyIiAvPgogIDxwYXRoIGQ9Im0xMiAxMy41IDMuNzk0LjUwNiIgLz4KICA8cGF0aCBkPSJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCIgLz4KICA8cGF0aCBkPSJNNiAxMFY4IiAvPgogIDxwYXRoIGQ9Ik02IDE0djEiIC8+CiAgPHBhdGggZD0iTTYgMTl2MiIgLz4KICA8cmVjdCB4PSIyIiB5PSI4IiB3aWR0aD0iMjAiIGhlaWdodD0iMTMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tickets-plane\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TicketsPlane: IconNode = [\n ['path', { d: 'M10.5 17h1.227a2 2 0 0 0 1.345-.52L18 12' }],\n ['path', { d: 'm12 13.5 3.794.506' }],\n ['path', { d: 'm3.173 8.18 11-5a2 2 0 0 1 2.647.993L18.56 8' }],\n ['path', { d: 'M6 10V8' }],\n ['path', { d: 'M6 14v1' }],\n ['path', { d: 'M6 19v2' }],\n ['rect', { x: '2', y: '8', width: '20', height: '13', rx: '2' }],\n];\n\nexport default TicketsPlane;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name timer-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMmg0IiAvPgogIDxwYXRoIGQ9Ik00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjciIC8+CiAgPHBhdGggZD0iTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnYtMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/timer-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TimerOff: IconNode = [\n ['path', { d: 'M10 2h4' }],\n ['path', { d: 'M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7' }],\n ['path', { d: 'M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M12 12v-2' }],\n];\n\nexport default TimerOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tickets\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCIgLz4KICA8cGF0aCBkPSJNNiAxMFY4IiAvPgogIDxwYXRoIGQ9Ik02IDE0djEiIC8+CiAgPHBhdGggZD0iTTYgMTl2MiIgLz4KICA8cmVjdCB4PSIyIiB5PSI4IiB3aWR0aD0iMjAiIGhlaWdodD0iMTMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tickets\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tickets: IconNode = [\n ['path', { d: 'm3.173 8.18 11-5a2 2 0 0 1 2.647.993L18.56 8' }],\n ['path', { d: 'M6 10V8' }],\n ['path', { d: 'M6 14v1' }],\n ['path', { d: 'M6 19v2' }],\n ['rect', { x: '2', y: '8', width: '20', height: '13', rx: '2' }],\n];\n\nexport default Tickets;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name timer-reset\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMmg0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNHYtNCIgLz4KICA8cGF0aCBkPSJNNCAxM2E4IDggMCAwIDEgOC03IDggOCAwIDEgMS01LjMgMTRMNCAxNy42IiAvPgogIDxwYXRoIGQ9Ik05IDE3SDR2NSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/timer-reset\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TimerReset: IconNode = [\n ['path', { d: 'M10 2h4' }],\n ['path', { d: 'M12 14v-4' }],\n ['path', { d: 'M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6' }],\n ['path', { d: 'M9 17H4v5' }],\n];\n\nexport default TimerReset;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name timer\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTAiIHgyPSIxNCIgeTE9IjIiIHkyPSIyIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjE1IiB5MT0iMTQiIHkyPSIxMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE0IiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/timer\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Timer: IconNode = [\n ['line', { x1: '10', x2: '14', y1: '2', y2: '2' }],\n ['line', { x1: '12', x2: '15', y1: '14', y2: '11' }],\n ['circle', { cx: '12', cy: '14', r: '8' }],\n];\n\nexport default Timer;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name toggle-left\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjMiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiB4PSIyIiB5PSI1IiByeD0iNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/toggle-left\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ToggleLeft: IconNode = [\n ['circle', { cx: '9', cy: '12', r: '3' }],\n ['rect', { width: '20', height: '14', x: '2', y: '5', rx: '7' }],\n];\n\nexport default ToggleLeft;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name toggle-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjEyIiByPSIzIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNCIgeD0iMiIgeT0iNSIgcng9IjciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/toggle-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ToggleRight: IconNode = [\n ['circle', { cx: '15', cy: '12', r: '3' }],\n ['rect', { width: '20', height: '14', x: '2', y: '5', rx: '7' }],\n];\n\nexport default ToggleRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name toilet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAxMmgxM2ExIDEgMCAwIDEgMSAxIDUgNSAwIDAgMS01IDVoLS41OThhLjUuNSAwIDAgMC0uNDI0Ljc2NWwxLjU0NCAyLjQ3YS41LjUgMCAwIDEtLjQyNC43NjVINS40MDJhLjUuNSAwIDAgMS0uNDI0LS43NjVMNyAxOCIgLz4KICA8cGF0aCBkPSJNOCAxOGE1IDUgMCAwIDEtNS01VjRhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2OCIgLz4KPC9zdmc+) - https://lucide.dev/icons/toilet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Toilet: IconNode = [\n [\n 'path',\n {\n d: 'M7 12h13a1 1 0 0 1 1 1 5 5 0 0 1-5 5h-.598a.5.5 0 0 0-.424.765l1.544 2.47a.5.5 0 0 1-.424.765H5.402a.5.5 0 0 1-.424-.765L7 18',\n },\n ],\n ['path', { d: 'M8 18a5 5 0 0 1-5-5V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8' }],\n];\n\nexport default Toilet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tool-case\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTVoNCIgLz4KICA8cGF0aCBkPSJtMTQuODE3IDEwLjk5NS0uOTcxLTEuNDUgMS4wMzQtMS4yMzJhMiAyIDAgMCAwLTIuMDI1LTMuMjM4bC0xLjgyLjM2NEw5LjkxIDMuODg1YTIgMiAwIDAgMC0zLjYyNS43NDhMNi4xNDEgNi41NWwtMS43MjUuNDI2YTIgMiAwIDAgMC0uMTkgMy43NTZsLjY1Ny4yNyIgLz4KICA8cGF0aCBkPSJtMTguODIyIDEwLjk5NSAyLjI2LTUuMzhhMSAxIDAgMCAwLS41NTctMS4zMThMMTYuOTU0IDIuOWExIDEgMCAwIDAtMS4yODEuNTMzbC0uOTI0IDIuMTIyIiAvPgogIDxwYXRoIGQ9Ik00IDEyLjAwNkExIDEgMCAwIDEgNC45OTQgMTFIMTlhMSAxIDAgMCAxIDEgMXY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tool-case\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ToolCase: IconNode = [\n ['path', { d: 'M10 15h4' }],\n [\n 'path',\n {\n d: 'm14.817 10.995-.971-1.45 1.034-1.232a2 2 0 0 0-2.025-3.238l-1.82.364L9.91 3.885a2 2 0 0 0-3.625.748L6.141 6.55l-1.725.426a2 2 0 0 0-.19 3.756l.657.27',\n },\n ],\n [\n 'path',\n {\n d: 'm18.822 10.995 2.26-5.38a1 1 0 0 0-.557-1.318L16.954 2.9a1 1 0 0 0-1.281.533l-.924 2.122',\n },\n ],\n ['path', { d: 'M4 12.006A1 1 0 0 1 4.994 11H19a1 1 0 0 1 1 1v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z' }],\n];\n\nexport default ToolCase;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name toolbox\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTJ2NCIgLz4KICA8cGF0aCBkPSJNMTYgNmEyIDIgMCAwIDEgMS40MTQuNTg2bDQgNEEyIDIgMCAwIDEgMjIgMTJ2N2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LTRBMiAyIDAgMCAxIDggNnoiIC8+CiAgPHBhdGggZD0iTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyMCIgLz4KICA8cGF0aCBkPSJNOCAxMnY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/toolbox\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Toolbox: IconNode = [\n ['path', { d: 'M16 12v4' }],\n [\n 'path',\n {\n d: 'M16 6a2 2 0 0 1 1.414.586l4 4A2 2 0 0 1 22 12v7a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 .586-1.414l4-4A2 2 0 0 1 8 6z',\n },\n ],\n ['path', { d: 'M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2' }],\n ['path', { d: 'M2 14h20' }],\n ['path', { d: 'M8 12v4' }],\n];\n\nexport default Toolbox;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tornado\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNEgzIiAvPgogIDxwYXRoIGQ9Ik0xOCA4SDYiIC8+CiAgPHBhdGggZD0iTTE5IDEySDkiIC8+CiAgPHBhdGggZD0iTTE2IDE2aC02IiAvPgogIDxwYXRoIGQ9Ik0xMSAyMEg5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tornado\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tornado: IconNode = [\n ['path', { d: 'M21 4H3' }],\n ['path', { d: 'M18 8H6' }],\n ['path', { d: 'M19 12H9' }],\n ['path', { d: 'M16 16h-6' }],\n ['path', { d: 'M11 20H9' }],\n];\n\nexport default Tornado;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name torus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8ZWxsaXBzZSBjeD0iMTIiIGN5PSIxMSIgcng9IjMiIHJ5PSIyIiAvPgogIDxlbGxpcHNlIGN4PSIxMiIgY3k9IjEyLjUiIHJ4PSIxMCIgcnk9IjguNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/torus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Torus: IconNode = [\n ['ellipse', { cx: '12', cy: '11', rx: '3', ry: '2' }],\n ['ellipse', { cx: '12', cy: '12.5', rx: '10', ry: '8.5' }],\n];\n\nexport default Torus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name touchpad-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjB2LTYiIC8+CiAgPHBhdGggZD0iTTE5LjY1NiAxNEgyMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgxMiIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yIiAvPgogIDxwYXRoIGQ9Ik05LjY1NiA0SDIwYTIgMiAwIDAgMSAyIDJ2MTAuMzQ0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/touchpad-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TouchpadOff: IconNode = [\n ['path', { d: 'M12 20v-6' }],\n ['path', { d: 'M19.656 14H22' }],\n ['path', { d: 'M2 14h12' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M20 20H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2' }],\n ['path', { d: 'M9.656 4H20a2 2 0 0 1 2 2v10.344' }],\n];\n\nexport default TouchpadOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name touchpad\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yIDE0aDIwIiAvPgogIDxwYXRoIGQ9Ik0xMiAyMHYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/touchpad\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Touchpad: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M2 14h20' }],\n ['path', { d: 'M12 20v-6' }],\n];\n\nexport default Touchpad;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tower-control\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTguMiAxMi4yNyAyMCA2SDRsMS44IDYuMjdhMSAxIDAgMCAwIC45NS43M2gxMC41YTEgMSAwIDAgMCAuOTYtLjczWiIgLz4KICA8cGF0aCBkPSJNOCAxM3Y5IiAvPgogIDxwYXRoIGQ9Ik0xNiAyMnYtOSIgLz4KICA8cGF0aCBkPSJtOSA2IDEgNyIgLz4KICA8cGF0aCBkPSJtMTUgNi0xIDciIC8+CiAgPHBhdGggZD0iTTEyIDZWMiIgLz4KICA8cGF0aCBkPSJNMTMgMmgtMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tower-control\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TowerControl: IconNode = [\n ['path', { d: 'M18.2 12.27 20 6H4l1.8 6.27a1 1 0 0 0 .95.73h10.5a1 1 0 0 0 .96-.73Z' }],\n ['path', { d: 'M8 13v9' }],\n ['path', { d: 'M16 22v-9' }],\n ['path', { d: 'm9 6 1 7' }],\n ['path', { d: 'm15 6-1 7' }],\n ['path', { d: 'M12 6V2' }],\n ['path', { d: 'M13 2h-2' }],\n];\n\nexport default TowerControl;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name toy-brick\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIHg9IjMiIHk9IjgiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyIgLz4KICA8cGF0aCBkPSJNMTkgOFY1YzAtLjYtLjQtMS0xLTFoLTNhMSAxIDAgMCAwLTEgMXYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/toy-brick\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ToyBrick: IconNode = [\n ['rect', { width: '18', height: '12', x: '3', y: '8', rx: '1' }],\n ['path', { d: 'M10 8V5c0-.6-.4-1-1-1H6a1 1 0 0 0-1 1v3' }],\n ['path', { d: 'M19 8V5c0-.6-.4-1-1-1h-3a1 1 0 0 0-1 1v3' }],\n];\n\nexport default ToyBrick;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tractor\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAgMTEgMTEgLjlhMSAxIDAgMCAxIC44IDEuMWwtLjY2NSA0LjE1OGExIDEgMCAwIDEtLjk4OC44NDJIMjAiIC8+CiAgPHBhdGggZD0iTTE2IDE4aC01IiAvPgogIDxwYXRoIGQ9Ik0xOCA1YTEgMSAwIDAgMC0xIDF2NS41NzMiIC8+CiAgPHBhdGggZD0iTTMgNGg4LjEyOWExIDEgMCAwIDEgLjk5Ljg2M0wxMyAxMS4yNDYiIC8+CiAgPHBhdGggZD0iTTQgMTFWNCIgLz4KICA8cGF0aCBkPSJNNyAxNWguMDEiIC8+CiAgPHBhdGggZD0iTTggMTAuMVY0IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iNyIgY3k9IjE1IiByPSI1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tractor\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tractor: IconNode = [\n ['path', { d: 'm10 11 11 .9a1 1 0 0 1 .8 1.1l-.665 4.158a1 1 0 0 1-.988.842H20' }],\n ['path', { d: 'M16 18h-5' }],\n ['path', { d: 'M18 5a1 1 0 0 0-1 1v5.573' }],\n ['path', { d: 'M3 4h8.129a1 1 0 0 1 .99.863L13 11.246' }],\n ['path', { d: 'M4 11V4' }],\n ['path', { d: 'M7 15h.01' }],\n ['path', { d: 'M8 10.1V4' }],\n ['circle', { cx: '18', cy: '18', r: '2' }],\n ['circle', { cx: '7', cy: '15', r: '5' }],\n];\n\nexport default Tractor;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name traffic-cone\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuMDUgMTAuOTY2YTUgMi41IDAgMCAxLTguMSAwIiAvPgogIDxwYXRoIGQ9Im0xNi45MjMgMTQuMDQ5IDQuNDggMi4wNGExIDEgMCAwIDEgLjAwMSAxLjgzMWwtOC41NzQgMy45YTIgMiAwIDAgMS0xLjY2IDBsLTguNTc0LTMuOTFhMSAxIDAgMCAxIDAtMS44M2w0LjQ4NC0yLjA0IiAvPgogIDxwYXRoIGQ9Ik0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoiIC8+CiAgPHBhdGggZD0iTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/traffic-cone\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrafficCone: IconNode = [\n ['path', { d: 'M16.05 10.966a5 2.5 0 0 1-8.1 0' }],\n [\n 'path',\n {\n d: 'm16.923 14.049 4.48 2.04a1 1 0 0 1 .001 1.831l-8.574 3.9a2 2 0 0 1-1.66 0l-8.574-3.91a1 1 0 0 1 0-1.83l4.484-2.04',\n },\n ],\n ['path', { d: 'M16.949 14.14a5 2.5 0 1 1-9.9 0L10.063 3.5a2 2 0 0 1 3.874 0z' }],\n ['path', { d: 'M9.194 6.57a5 2.5 0 0 0 5.61 0' }],\n];\n\nexport default TrafficCone;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name train-front-tunnel\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIiAvPgogIDxwYXRoIGQ9Ik0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgiIC8+CiAgPHBhdGggZD0iTTEwIDE1aC4wMSIgLz4KICA8cGF0aCBkPSJNMTQgMTVoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoiIC8+CiAgPHBhdGggZD0ibTkgMTktMiAzIiAvPgogIDxwYXRoIGQ9Im0xNSAxOSAyIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/train-front-tunnel\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrainFrontTunnel: IconNode = [\n ['path', { d: 'M2 22V12a10 10 0 1 1 20 0v10' }],\n ['path', { d: 'M15 6.8v1.4a3 2.8 0 1 1-6 0V6.8' }],\n ['path', { d: 'M10 15h.01' }],\n ['path', { d: 'M14 15h.01' }],\n ['path', { d: 'M10 19a4 4 0 0 1-4-4v-3a6 6 0 1 1 12 0v3a4 4 0 0 1-4 4Z' }],\n ['path', { d: 'm9 19-2 3' }],\n ['path', { d: 'm15 19 2 3' }],\n];\n\nexport default TrainFrontTunnel;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name train-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzLjFWN2E0IDQgMCAwIDAgOCAwVjMuMSIgLz4KICA8cGF0aCBkPSJtOSAxNS0xLTEiIC8+CiAgPHBhdGggZD0ibTE1IDE1IDEtMSIgLz4KICA8cGF0aCBkPSJNOSAxOWMtMi44IDAtNS0yLjItNS01di00YTggOCAwIDAgMSAxNiAwdjRjMCAyLjgtMi4yIDUtNSA1WiIgLz4KICA8cGF0aCBkPSJtOCAxOS0yIDMiIC8+CiAgPHBhdGggZD0ibTE2IDE5IDIgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/train-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrainFront: IconNode = [\n ['path', { d: 'M8 3.1V7a4 4 0 0 0 8 0V3.1' }],\n ['path', { d: 'm9 15-1-1' }],\n ['path', { d: 'm15 15 1-1' }],\n ['path', { d: 'M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z' }],\n ['path', { d: 'm8 19-2 3' }],\n ['path', { d: 'm16 19 2 3' }],\n];\n\nexport default TrainFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name train-track\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAxNyAxNyAyIiAvPgogIDxwYXRoIGQ9Im0yIDE0IDggOCIgLz4KICA8cGF0aCBkPSJtNSAxMSA4IDgiIC8+CiAgPHBhdGggZD0ibTggOCA4IDgiIC8+CiAgPHBhdGggZD0ibTExIDUgOCA4IiAvPgogIDxwYXRoIGQ9Im0xNCAyIDggOCIgLz4KICA8cGF0aCBkPSJNNyAyMiAyMiA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/train-track\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrainTrack: IconNode = [\n ['path', { d: 'M2 17 17 2' }],\n ['path', { d: 'm2 14 8 8' }],\n ['path', { d: 'm5 11 8 8' }],\n ['path', { d: 'm8 8 8 8' }],\n ['path', { d: 'm11 5 8 8' }],\n ['path', { d: 'm14 2 8 8' }],\n ['path', { d: 'M7 22 22 7' }],\n];\n\nexport default TrainTrack;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tram-front\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHg9IjQiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik00IDExaDE2IiAvPgogIDxwYXRoIGQ9Ik0xMiAzdjgiIC8+CiAgPHBhdGggZD0ibTggMTktMiAzIiAvPgogIDxwYXRoIGQ9Im0xOCAyMi0yLTMiIC8+CiAgPHBhdGggZD0iTTggMTVoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxNWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tram-front\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TramFront: IconNode = [\n ['rect', { width: '16', height: '16', x: '4', y: '3', rx: '2' }],\n ['path', { d: 'M4 11h16' }],\n ['path', { d: 'M12 3v8' }],\n ['path', { d: 'm8 19-2 3' }],\n ['path', { d: 'm18 22-2-3' }],\n ['path', { d: 'M8 15h.01' }],\n ['path', { d: 'M16 15h.01' }],\n];\n\nexport default TramFront;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name transgender\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTZ2NiIgLz4KICA8cGF0aCBkPSJNMTQgMjBoLTQiIC8+CiAgPHBhdGggZD0iTTE4IDJoNHY0IiAvPgogIDxwYXRoIGQ9Im0yIDIgNy4xNyA3LjE3IiAvPgogIDxwYXRoIGQ9Ik0yIDUuMzU1VjJoMy4zNTciIC8+CiAgPHBhdGggZD0ibTIyIDItNy4xNyA3LjE3IiAvPgogIDxwYXRoIGQ9Ik04IDUgNSA4IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/transgender\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Transgender: IconNode = [\n ['path', { d: 'M12 16v6' }],\n ['path', { d: 'M14 20h-4' }],\n ['path', { d: 'M18 2h4v4' }],\n ['path', { d: 'm2 2 7.17 7.17' }],\n ['path', { d: 'M2 5.355V2h3.357' }],\n ['path', { d: 'm22 2-7.17 7.17' }],\n ['path', { d: 'M8 5 5 8' }],\n ['circle', { cx: '12', cy: '12', r: '4' }],\n];\n\nexport default Transgender;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trash-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTQgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik0zIDZoMTgiIC8+CiAgPHBhdGggZD0iTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trash2: IconNode = [\n ['path', { d: 'M10 11v6' }],\n ['path', { d: 'M14 11v6' }],\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6' }],\n ['path', { d: 'M3 6h18' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2' }],\n];\n\nexport default Trash2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trash\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2IiAvPgogIDxwYXRoIGQ9Ik0zIDZoMTgiIC8+CiAgPHBhdGggZD0iTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/trash\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trash: IconNode = [\n ['path', { d: 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6' }],\n ['path', { d: 'M3 6h18' }],\n ['path', { d: 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2' }],\n];\n\nexport default Trash;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tree-deciduous\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAxOWE0IDQgMCAwIDEtMi4yNC03LjMyQTMuNSAzLjUgMCAwIDEgOSA2LjAzVjZhMyAzIDAgMSAxIDYgMHYuMDRhMy41IDMuNSAwIDAgMSAzLjI0IDUuNjVBNCA0IDAgMCAxIDE2IDE5WiIgLz4KICA8cGF0aCBkPSJNMTIgMTl2MyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tree-deciduous\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TreeDeciduous: IconNode = [\n [\n 'path',\n {\n d: 'M8 19a4 4 0 0 1-2.24-7.32A3.5 3.5 0 0 1 9 6.03V6a3 3 0 1 1 6 0v.04a3.5 3.5 0 0 1 3.24 5.65A4 4 0 0 1 16 19Z',\n },\n ],\n ['path', { d: 'M12 19v3' }],\n];\n\nexport default TreeDeciduous;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tree-palm\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgOGMwLTIuNzYtMi40Ni01LTUuNS01UzIgNS4yNCAyIDhoMmwxLTEgMSAxaDQiIC8+CiAgPHBhdGggZD0iTTEzIDcuMTRBNS44MiA1LjgyIDAgMCAxIDE2LjUgNmMzLjA0IDAgNS41IDIuMjQgNS41IDVoLTNsLTEtMS0xIDFoLTMiIC8+CiAgPHBhdGggZD0iTTUuODkgOS43MWMtMi4xNSAyLjE1LTIuMyA1LjQ3LS4zNSA3LjQzbDQuMjQtNC4yNS43LS43LjcxLS43MSAyLjEyLTIuMTJjLTEuOTUtMS45Ni01LjI3LTEuOC03LjQyLjM1IiAvPgogIDxwYXRoIGQ9Ik0xMSAxNS41Yy41IDIuNS0uMTcgNC41LTEgNi41aDRjMi01LjUtLjUtMTItMS0xNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tree-palm\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TreePalm: IconNode = [\n ['path', { d: 'M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4' }],\n ['path', { d: 'M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3' }],\n [\n 'path',\n {\n d: 'M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35',\n },\n ],\n ['path', { d: 'M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14' }],\n];\n\nexport default TreePalm;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tree-pine\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMTQgMyAzLjNhMSAxIDAgMCAxLS43IDEuN0g0LjdhMSAxIDAgMCAxLS43LTEuN0w3IDE0aC0uM2ExIDEgMCAwIDEtLjctMS43TDkgOWgtLjJBMSAxIDAgMCAxIDggNy4zTDEyIDNsNCA0LjNhMSAxIDAgMCAxLS44IDEuN0gxNWwzIDMuM2ExIDEgMCAwIDEtLjcgMS43SDE3WiIgLz4KICA8cGF0aCBkPSJNMTIgMjJ2LTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tree-pine\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TreePine: IconNode = [\n [\n 'path',\n {\n d: 'm17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z',\n },\n ],\n ['path', { d: 'M12 22v-3' }],\n];\n\nexport default TreePine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trees\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiIgLz4KICA8cGF0aCBkPSJNNyAxNnY2IiAvPgogIDxwYXRoIGQ9Ik0xMyAxOXYzIiAvPgogIDxwYXRoIGQ9Ik0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trees\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trees: IconNode = [\n ['path', { d: 'M10 10v.2A3 3 0 0 1 8.9 16H5a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z' }],\n ['path', { d: 'M7 16v6' }],\n ['path', { d: 'M13 19v3' }],\n [\n 'path',\n {\n d: 'M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5',\n },\n ],\n];\n\nexport default Trees;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trello\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSI5IiB4PSI3IiB5PSI3IiAvPgogIDxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjUiIHg9IjE0IiB5PSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trello\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=trello instead. This icon will be removed in v1.0\n */\nconst Trello: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2' }],\n ['rect', { width: '3', height: '9', x: '7', y: '7' }],\n ['rect', { width: '3', height: '5', x: '14', y: '7' }],\n];\n\nexport default Trello;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trending-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTdoNnYtNiIgLz4KICA8cGF0aCBkPSJtMjIgMTctOC41LTguNS01IDVMMiA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trending-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrendingDown: IconNode = [\n ['path', { d: 'M16 17h6v-6' }],\n ['path', { d: 'm22 17-8.5-8.5-5 5L2 7' }],\n];\n\nexport default TrendingDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trending-up-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuODI4IDE0LjgyOCAyMSAyMSIgLz4KICA8cGF0aCBkPSJNMjEgMTZ2NWgtNSIgLz4KICA8cGF0aCBkPSJtMjEgMy05IDktNC00LTYgNiIgLz4KICA8cGF0aCBkPSJNMjEgOFYzaC01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trending-up-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrendingUpDown: IconNode = [\n ['path', { d: 'M14.828 14.828 21 21' }],\n ['path', { d: 'M21 16v5h-5' }],\n ['path', { d: 'm21 3-9 9-4-4-6 6' }],\n ['path', { d: 'M21 8V3h-5' }],\n];\n\nexport default TrendingUpDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trending-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgN2g2djYiIC8+CiAgPHBhdGggZD0ibTIyIDctOC41IDguNS01LTVMMiAxNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/trending-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TrendingUp: IconNode = [\n ['path', { d: 'M16 7h6v6' }],\n ['path', { d: 'm22 7-8.5 8.5-5-5L2 17' }],\n];\n\nexport default TrendingUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name triangle-alert\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiIC8+CiAgPHBhdGggZD0iTTEyIDl2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TriangleAlert: IconNode = [\n ['path', { d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3' }],\n ['path', { d: 'M12 9v4' }],\n ['path', { d: 'M12 17h.01' }],\n];\n\nexport default TriangleAlert;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name triangle-dashed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMTcgNC4xOTNhMiAyIDAgMCAxIDMuNjY2LjAxMyIgLz4KICA8cGF0aCBkPSJNMTQgMjFoMiIgLz4KICA8cGF0aCBkPSJtMTUuODc0IDcuNzQzIDEgMS43MzIiIC8+CiAgPHBhdGggZD0ibTE4Ljg0OSAxMi45NTIgMSAxLjczMiIgLz4KICA8cGF0aCBkPSJNMjEuODI0IDE4LjE4YTIgMiAwIDAgMS0xLjgzNSAyLjgyNCIgLz4KICA8cGF0aCBkPSJNNC4wMjQgMjFhMiAyIDAgMCAxLTEuODM5LTIuODM5IiAvPgogIDxwYXRoIGQ9Im01LjEzNiAxMi45NTItMSAxLjczMiIgLz4KICA8cGF0aCBkPSJNOCAyMWgyIiAvPgogIDxwYXRoIGQ9Im04LjEwMiA3Ljc0My0xIDEuNzMyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-dashed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TriangleDashed: IconNode = [\n ['path', { d: 'M10.17 4.193a2 2 0 0 1 3.666.013' }],\n ['path', { d: 'M14 21h2' }],\n ['path', { d: 'm15.874 7.743 1 1.732' }],\n ['path', { d: 'm18.849 12.952 1 1.732' }],\n ['path', { d: 'M21.824 18.18a2 2 0 0 1-1.835 2.824' }],\n ['path', { d: 'M4.024 21a2 2 0 0 1-1.839-2.839' }],\n ['path', { d: 'm5.136 12.952-1 1.732' }],\n ['path', { d: 'M8 21h2' }],\n ['path', { d: 'm8.102 7.743-1 1.732' }],\n];\n\nexport default TriangleDashed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name triangle-right\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMThhMiAyIDAgMCAxLTIgMkgzYy0xLjEgMC0xLjMtLjYtLjQtMS4zTDIwLjQgNC4zYy45LS43IDEuNi0uNCAxLjYuN1oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/triangle-right\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TriangleRight: IconNode = [\n ['path', { d: 'M22 18a2 2 0 0 1-2 2H3c-1.1 0-1.3-.6-.4-1.3L20.4 4.3c.9-.7 1.6-.4 1.6.7Z' }],\n];\n\nexport default TriangleRight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name triangle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Triangle: IconNode = [\n ['path', { d: 'M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z' }],\n];\n\nexport default Triangle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name truck-electric\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTlWN2EyIDIgMCAwIDAtMi0ySDkiIC8+CiAgPHBhdGggZD0iTTE1IDE5SDkiIC8+CiAgPHBhdGggZD0iTTE5IDE5aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MkwxOC4zIDkuMzhhMSAxIDAgMCAwLS43OC0uMzhIMTQiIC8+CiAgPHBhdGggZD0iTTIgMTN2NWExIDEgMCAwIDAgMSAxaDIiIC8+CiAgPHBhdGggZD0iTTQgMyAyLjE1IDUuMTVhLjQ5NS40OTUgMCAwIDAgLjM1Ljg2aDIuMTVhLjQ3LjQ3IDAgMCAxIC4zNS44NkwzIDkuMDIiIC8+CiAgPGNpcmNsZSBjeD0iMTciIGN5PSIxOSIgcj0iMiIgLz4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iMTkiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/truck-electric\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TruckElectric: IconNode = [\n ['path', { d: 'M14 19V7a2 2 0 0 0-2-2H9' }],\n ['path', { d: 'M15 19H9' }],\n ['path', { d: 'M19 19h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.62L18.3 9.38a1 1 0 0 0-.78-.38H14' }],\n ['path', { d: 'M2 13v5a1 1 0 0 0 1 1h2' }],\n ['path', { d: 'M4 3 2.15 5.15a.495.495 0 0 0 .35.86h2.15a.47.47 0 0 1 .35.86L3 9.02' }],\n ['circle', { cx: '17', cy: '19', r: '2' }],\n ['circle', { cx: '7', cy: '19', r: '2' }],\n];\n\nexport default TruckElectric;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name trophy\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4IiAvPgogIDxwYXRoIGQ9Ik0xNCAxNC42NnYxLjYyNmEyIDIgMCAwIDAgLjk3NiAxLjY5NkE1IDUgMCAwIDEgMTcgMjEuOTc4IiAvPgogIDxwYXRoIGQ9Ik0xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4IiAvPgogIDxwYXRoIGQ9Ik00IDIyaDE2IiAvPgogIDxwYXRoIGQ9Ik02IDlhNiA2IDAgMCAwIDEyIDBWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXoiIC8+CiAgPHBhdGggZD0iTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trophy\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Trophy: IconNode = [\n ['path', { d: 'M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978' }],\n ['path', { d: 'M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978' }],\n ['path', { d: 'M18 9h1.5a1 1 0 0 0 0-5H18' }],\n ['path', { d: 'M4 22h16' }],\n ['path', { d: 'M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z' }],\n ['path', { d: 'M6 9H4.5a1 1 0 0 1 0-5H6' }],\n];\n\nexport default Trophy;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name truck\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIiIC8+CiAgPHBhdGggZD0iTTE1IDE4SDkiIC8+CiAgPHBhdGggZD0iTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MjRsLTMuNDgtNC4zNUExIDEgMCAwIDAgMTcuNTIgOEgxNCIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE4IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSIxOCIgcj0iMiIgLz4KPC9zdmc+) - https://lucide.dev/icons/truck\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Truck: IconNode = [\n ['path', { d: 'M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2' }],\n ['path', { d: 'M15 18H9' }],\n [\n 'path',\n { d: 'M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14' },\n ],\n ['circle', { cx: '17', cy: '18', r: '2' }],\n ['circle', { cx: '7', cy: '18', r: '2' }],\n];\n\nexport default Truck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name turkish-lira\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNCA1IDkiIC8+CiAgPHBhdGggZD0ibTE1IDguNS0xMCA1IiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmE5IDkgMCAwIDEtOSA5VjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/turkish-lira\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TurkishLira: IconNode = [\n ['path', { d: 'M15 4 5 9' }],\n ['path', { d: 'm15 8.5-10 5' }],\n ['path', { d: 'M18 12a9 9 0 0 1-9 9V3' }],\n];\n\nexport default TurkishLira;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name turntable\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTIuMDFoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xOCA4djRhOCA4IDAgMCAxLTEuMDcgNCIgLz4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjEyIiByPSI0IiAvPgogIDxyZWN0IHg9IjIiIHk9IjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/turntable\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Turntable: IconNode = [\n ['path', { d: 'M10 12.01h.01' }],\n ['path', { d: 'M18 8v4a8 8 0 0 1-1.07 4' }],\n ['circle', { cx: '10', cy: '12', r: '4' }],\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2' }],\n];\n\nexport default Turntable;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name turtle\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTAgMiA0djNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhOCA4IDAgMSAwLTE2IDB2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtM2wyLTRoNFoiIC8+CiAgPHBhdGggZD0iTTQuODIgNy45IDggMTAiIC8+CiAgPHBhdGggZD0iTTE1LjE4IDcuOSAxMiAxMCIgLz4KICA8cGF0aCBkPSJNMTYuOTMgMTBIMjBhMiAyIDAgMCAxIDAgNEgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/turtle\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Turtle: IconNode = [\n [\n 'path',\n {\n d: 'm12 10 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a8 8 0 1 0-16 0v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3l2-4h4Z',\n },\n ],\n ['path', { d: 'M4.82 7.9 8 10' }],\n ['path', { d: 'M15.18 7.9 12 10' }],\n ['path', { d: 'M16.93 10H20a2 2 0 0 1 0 4H2' }],\n];\n\nexport default Turtle;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tv-minimal-play\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMDMzIDkuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NlY3LjY0OGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoiIC8+CiAgPHBhdGggZD0iTTcgMjFoMTAiIC8+CiAgPHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiB4PSIyIiB5PSIzIiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/tv-minimal-play\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TvMinimalPlay: IconNode = [\n [\n 'path',\n {\n d: 'M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z',\n },\n ],\n ['path', { d: 'M7 21h10' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n];\n\nexport default TvMinimalPlay;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tv-minimal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNyAyMWgxMCIgLz4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHg9IjIiIHk9IjMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/tv-minimal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TvMinimal: IconNode = [\n ['path', { d: 'M7 21h10' }],\n ['rect', { width: '20', height: '14', x: '2', y: '3', rx: '2' }],\n];\n\nexport default TvMinimal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name tv\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTcgMi01IDUtNS01IiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNSIgeD0iMiIgeT0iNyIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/tv\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Tv: IconNode = [\n ['path', { d: 'm17 2-5 5-5-5' }],\n ['rect', { width: '20', height: '15', x: '2', y: '7', rx: '2' }],\n];\n\nexport default Tv;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name twitch\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMkgzdjE2aDV2NGw0LTRoNWw0LTRWMnptLTEwIDlWN201IDRWNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/twitch\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=twitch instead. This icon will be removed in v1.0\n */\nconst Twitch: IconNode = [['path', { d: 'M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7' }]];\n\nexport default Twitch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name twitter\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgNHMtLjcgMi4xLTIgMy40YzEuNiAxMC05LjQgMTcuMy0xOCAxMS42IDIuMi4xIDQuNC0uNiA2LTJDMyAxNS41LjUgOS42IDMgNWMyLjIgMi42IDUuNiA0LjEgOSA0LS45LTQuMiA0LTYuNiA3LTMuOCAxLjEgMCAzLTEuMiAzLTEuMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/twitter\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=twitter instead. This icon will be removed in v1.0\n */\nconst Twitter: IconNode = [\n [\n 'path',\n {\n d: 'M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z',\n },\n ],\n];\n\nexport default Twitter;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name type-outline\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMTYuNWEuNS41IDAgMCAwIC41LjVoLjVhMiAyIDAgMCAxIDAgNEg5YTIgMiAwIDAgMSAwLTRoLjVhLjUuNSAwIDAgMCAuNS0uNXYtOWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVY4YTIgMiAwIDAgMS00IDBWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtNCAwdi0uNWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/type-outline\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst TypeOutline: IconNode = [\n [\n 'path',\n {\n d: 'M14 16.5a.5.5 0 0 0 .5.5h.5a2 2 0 0 1 0 4H9a2 2 0 0 1 0-4h.5a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V8a2 2 0 0 1-4 0V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 1-4 0v-.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5Z',\n },\n ],\n];\n\nexport default TypeOutline;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name type\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNHYxNiIgLz4KICA8cGF0aCBkPSJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIiIC8+CiAgPHBhdGggZD0iTTkgMjBoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/type\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Type: IconNode = [\n ['path', { d: 'M12 4v16' }],\n ['path', { d: 'M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2' }],\n ['path', { d: 'M9 20h6' }],\n];\n\nexport default Type;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name umbrella-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2N2EyIDIgMCAwIDAgNCAwIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTE4LjY1NiAxM2gyLjMzNmExIDEgMCAwIDAgLjk3LTEuMjc0IDEwLjI4NCAxMC4yODQgMCAwIDAtMTIuMDctNy41MSIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgogIDxwYXRoIGQ9Ik01Ljk2MSA1Ljk1N2ExMC4yOCAxMC4yOCAwIDAgMC0zLjkyMiA1Ljc2OUExIDEgMCAwIDAgMyAxM2gxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/umbrella-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UmbrellaOff: IconNode = [\n ['path', { d: 'M12 13v7a2 2 0 0 0 4 0' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M18.656 13h2.336a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-12.07-7.51' }],\n ['path', { d: 'm2 2 20 20' }],\n ['path', { d: 'M5.961 5.957a10.28 10.28 0 0 0-3.922 5.769A1 1 0 0 0 3 13h10' }],\n];\n\nexport default UmbrellaOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name umbrella\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2N2EyIDIgMCAwIDAgNCAwIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTIwLjk5MiAxM2ExIDEgMCAwIDAgLjk3LTEuMjc0IDEwLjI4NCAxMC4yODQgMCAwIDAtMTkuOTIzIDBBMSAxIDAgMCAwIDMgMTN6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/umbrella\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Umbrella: IconNode = [\n ['path', { d: 'M12 13v7a2 2 0 0 0 4 0' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M20.992 13a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-19.923 0A1 1 0 0 0 3 13z' }],\n];\n\nexport default Umbrella;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name underline\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA0djZhNiA2IDAgMCAwIDEyIDBWNCIgLz4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iMjAiIHkyPSIyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/underline\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Underline: IconNode = [\n ['path', { d: 'M6 4v6a6 6 0 0 0 12 0V4' }],\n ['line', { x1: '4', x2: '20', y1: '20', y2: '20' }],\n];\n\nexport default Underline;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name undo-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxNCA0IDlsNS01IiAvPgogIDxwYXRoIGQ9Ik00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/undo-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Undo2: IconNode = [\n ['path', { d: 'M9 14 4 9l5-5' }],\n ['path', { d: 'M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11' }],\n];\n\nexport default Undo2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name undo-dot\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTdhOSA5IDAgMCAwLTE1LTYuN0wzIDEzIiAvPgogIDxwYXRoIGQ9Ik0zIDd2Nmg2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTciIHI9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/undo-dot\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UndoDot: IconNode = [\n ['path', { d: 'M21 17a9 9 0 0 0-15-6.7L3 13' }],\n ['path', { d: 'M3 7v6h6' }],\n ['circle', { cx: '12', cy: '17', r: '1' }],\n];\n\nexport default UndoDot;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name undo\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3djZoNiIgLz4KICA8cGF0aCBkPSJNMjEgMTdhOSA5IDAgMCAwLTktOSA5IDkgMCAwIDAtNiAyLjNMMyAxMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/undo\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Undo: IconNode = [\n ['path', { d: 'M3 7v6h6' }],\n ['path', { d: 'M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13' }],\n];\n\nexport default Undo;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name unfold-horizontal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTJoNiIgLz4KICA8cGF0aCBkPSJNOCAxMkgyIiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTEyIDh2MiIgLz4KICA8cGF0aCBkPSJNMTIgMTR2MiIgLz4KICA8cGF0aCBkPSJNMTIgMjB2MiIgLz4KICA8cGF0aCBkPSJtMTkgMTUgMy0zLTMtMyIgLz4KICA8cGF0aCBkPSJtNSA5LTMgMyAzIDMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/unfold-horizontal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UnfoldHorizontal: IconNode = [\n ['path', { d: 'M16 12h6' }],\n ['path', { d: 'M8 12H2' }],\n ['path', { d: 'M12 2v2' }],\n ['path', { d: 'M12 8v2' }],\n ['path', { d: 'M12 14v2' }],\n ['path', { d: 'M12 20v2' }],\n ['path', { d: 'm19 15 3-3-3-3' }],\n ['path', { d: 'm5 9-3 3 3 3' }],\n];\n\nexport default UnfoldHorizontal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name unfold-vertical\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJ2LTYiIC8+CiAgPHBhdGggZD0iTTEyIDhWMiIgLz4KICA8cGF0aCBkPSJNNCAxMkgyIiAvPgogIDxwYXRoIGQ9Ik0xMCAxMkg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxMmgtMiIgLz4KICA8cGF0aCBkPSJNMjIgMTJoLTIiIC8+CiAgPHBhdGggZD0ibTE1IDE5LTMgMy0zLTMiIC8+CiAgPHBhdGggZD0ibTE1IDUtMy0zLTMgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/unfold-vertical\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UnfoldVertical: IconNode = [\n ['path', { d: 'M12 22v-6' }],\n ['path', { d: 'M12 8V2' }],\n ['path', { d: 'M4 12H2' }],\n ['path', { d: 'M10 12H8' }],\n ['path', { d: 'M16 12h-2' }],\n ['path', { d: 'M22 12h-2' }],\n ['path', { d: 'm15 19-3 3-3-3' }],\n ['path', { d: 'm15 5-3-3-3 3' }],\n];\n\nexport default UnfoldVertical;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name ungroup\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI2IiB4PSI1IiB5PSI0IiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI2IiB4PSIxMSIgeT0iMTQiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ungroup\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Ungroup: IconNode = [\n ['rect', { width: '8', height: '6', x: '5', y: '4', rx: '1' }],\n ['rect', { width: '8', height: '6', x: '11', y: '14', rx: '1' }],\n];\n\nexport default Ungroup;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name university\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIiAvPgogIDxwYXRoIGQ9Ik0xOCAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTE4IDE2aC4wMSIgLz4KICA8cGF0aCBkPSJNMjIgN2ExIDEgMCAwIDAtMS0xaC0yYTIgMiAwIDAgMS0xLjE0My0uMzU5TDEzLjE0MyAyLjM2YTIgMiAwIDAgMC0yLjI4Ni0uMDAxTDYuMTQzIDUuNjRBMiAyIDAgMCAxIDUgNkgzYTEgMSAwIDAgMC0xIDF2MTJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yeiIgLz4KICA8cGF0aCBkPSJNNiAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTYgMTZoLjAxIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/university\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst University: IconNode = [\n ['path', { d: 'M14 21v-3a2 2 0 0 0-4 0v3' }],\n ['path', { d: 'M18 12h.01' }],\n ['path', { d: 'M18 16h.01' }],\n [\n 'path',\n {\n d: 'M22 7a1 1 0 0 0-1-1h-2a2 2 0 0 1-1.143-.359L13.143 2.36a2 2 0 0 0-2.286-.001L6.143 5.64A2 2 0 0 1 5 6H3a1 1 0 0 0-1 1v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2z',\n },\n ],\n ['path', { d: 'M6 12h.01' }],\n ['path', { d: 'M6 16h.01' }],\n ['circle', { cx: '12', cy: '10', r: '2' }],\n];\n\nexport default University;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name unlink\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTguODQgMTIuMjUgMS43Mi0xLjcxaC0uMDJhNS4wMDQgNS4wMDQgMCAwIDAtLjEyLTcuMDcgNS4wMDYgNS4wMDYgMCAwIDAtNi45NSAwbC0xLjcyIDEuNzEiIC8+CiAgPHBhdGggZD0ibTUuMTcgMTEuNzUtMS43MSAxLjcxYTUuMDA0IDUuMDA0IDAgMCAwIC4xMiA3LjA3IDUuMDA2IDUuMDA2IDAgMCAwIDYuOTUgMGwxLjcxLTEuNzEiIC8+CiAgPGxpbmUgeDE9IjgiIHgyPSI4IiB5MT0iMiIgeTI9IjUiIC8+CiAgPGxpbmUgeDE9IjIiIHgyPSI1IiB5MT0iOCIgeTI9IjgiIC8+CiAgPGxpbmUgeDE9IjE2IiB4Mj0iMTYiIHkxPSIxOSIgeTI9IjIyIiAvPgogIDxsaW5lIHgxPSIxOSIgeDI9IjIyIiB5MT0iMTYiIHkyPSIxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/unlink\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Unlink: IconNode = [\n [\n 'path',\n {\n d: 'm18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71',\n },\n ],\n [\n 'path',\n { d: 'm5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71' },\n ],\n ['line', { x1: '8', x2: '8', y1: '2', y2: '5' }],\n ['line', { x1: '2', x2: '5', y1: '8', y2: '8' }],\n ['line', { x1: '16', x2: '16', y1: '19', y2: '22' }],\n ['line', { x1: '19', x2: '22', y1: '16', y2: '16' }],\n];\n\nexport default Unlink;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name unlink-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgN2gyYTUgNSAwIDAgMSAwIDEwaC0ybS02IDBIN0E1IDUgMCAwIDEgNyA3aDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/unlink-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Unlink2: IconNode = [['path', { d: 'M15 7h2a5 5 0 0 1 0 10h-2m-6 0H7A5 5 0 0 1 7 7h2' }]];\n\nexport default Unlink2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name unplug\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTkgNSAzLTMiIC8+CiAgPHBhdGggZD0ibTIgMjIgMy0zIiAvPgogIDxwYXRoIGQ9Ik02LjMgMjAuM2EyLjQgMi40IDAgMCAwIDMuNCAwTDEyIDE4bC02LTYtMi4zIDIuM2EyLjQgMi40IDAgMCAwIDAgMy40WiIgLz4KICA8cGF0aCBkPSJNNy41IDEzLjUgMTAgMTEiIC8+CiAgPHBhdGggZD0iTTEwLjUgMTYuNSAxMyAxNCIgLz4KICA8cGF0aCBkPSJtMTIgNiA2IDYgMi4zLTIuM2EyLjQgMi40IDAgMCAwIDAtMy40bC0yLjYtMi42YTIuNCAyLjQgMCAwIDAtMy40IDBaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/unplug\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Unplug: IconNode = [\n ['path', { d: 'm19 5 3-3' }],\n ['path', { d: 'm2 22 3-3' }],\n ['path', { d: 'M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z' }],\n ['path', { d: 'M7.5 13.5 10 11' }],\n ['path', { d: 'M10.5 16.5 13 14' }],\n ['path', { d: 'm12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z' }],\n];\n\nexport default Unplug;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name upload\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxMiIgLz4KICA8cGF0aCBkPSJtMTcgOC01LTUtNSA1IiAvPgogIDxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/upload\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Upload: IconNode = [\n ['path', { d: 'M12 3v12' }],\n ['path', { d: 'm17 8-5-5-5 5' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4' }],\n];\n\nexport default Upload;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name usb\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjciIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjIwIiByPSIxIiAvPgogIDxwYXRoIGQ9Ik00LjcgMTkuMyAxOSA1IiAvPgogIDxwYXRoIGQ9Im0yMSAzLTMgMSAyIDJaIiAvPgogIDxwYXRoIGQ9Ik05LjI2IDcuNjggNSAxMmwyIDUiIC8+CiAgPHBhdGggZD0ibTEwIDE0IDUgMiAzLjUtMy41IiAvPgogIDxwYXRoIGQ9Im0xOCAxMiAxLTEgMSAxLTEgMVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/usb\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Usb: IconNode = [\n ['circle', { cx: '10', cy: '7', r: '1' }],\n ['circle', { cx: '4', cy: '20', r: '1' }],\n ['path', { d: 'M4.7 19.3 19 5' }],\n ['path', { d: 'm21 3-3 1 2 2Z' }],\n ['path', { d: 'M9.26 7.68 5 12l2 5' }],\n ['path', { d: 'm10 14 5 2 3.5-3.5' }],\n ['path', { d: 'm18 12 1-1 1 1-1 1Z' }],\n];\n\nexport default Usb;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTEgMiAyIDQtNCIgLz4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserCheck: IconNode = [\n ['path', { d: 'm16 11 2 2 4-4' }],\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n];\n\nexport default UserCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTVINmE0IDQgMCAwIDAtNCA0djIiIC8+CiAgPHBhdGggZD0ibTE0LjMwNSAxNi41My45MjMtLjM4MiIgLz4KICA8cGF0aCBkPSJtMTUuMjI4IDEzLjg1Mi0uOTIzLS4zODMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAxMi4yMjgtLjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xNi44NTIgMTcuNzcyLS4zODMuOTI0IiAvPgogIDxwYXRoIGQ9Im0xOS4xNDggMTIuMjI4LjM4My0uOTIzIiAvPgogIDxwYXRoIGQ9Im0xOS41MyAxOC42OTYtLjM4Mi0uOTI0IiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTMuODUyLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTYuMTQ4LjkyNC4zODMiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxNSIgcj0iMyIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserCog: IconNode = [\n ['path', { d: 'M10 15H6a4 4 0 0 0-4 4v2' }],\n ['path', { d: 'm14.305 16.53.923-.382' }],\n ['path', { d: 'm15.228 13.852-.923-.383' }],\n ['path', { d: 'm16.852 12.228-.383-.923' }],\n ['path', { d: 'm16.852 17.772-.383.924' }],\n ['path', { d: 'm19.148 12.228.383-.923' }],\n ['path', { d: 'm19.53 18.696-.382-.924' }],\n ['path', { d: 'm20.772 13.852.924-.383' }],\n ['path', { d: 'm20.772 16.148.924.383' }],\n ['circle', { cx: '18', cy: '15', r: '3' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n];\n\nexport default UserCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMTF2NiIgLz4KICA8cGF0aCBkPSJNMjAgMTNoMiIgLz4KICA8cGF0aCBkPSJNMyAyMXYtMmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDIuMDcyLjU3OCIgLz4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjciIHI9IjQiIC8+CiAgPGNpcmNsZSBjeD0iMjAiIGN5PSIxOSIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserKey: IconNode = [\n ['path', { d: 'M20 11v6' }],\n ['path', { d: 'M20 13h2' }],\n ['path', { d: 'M3 21v-2a4 4 0 0 1 4-4h6a4 4 0 0 1 2.072.578' }],\n ['circle', { cx: '10', cy: '7', r: '4' }],\n ['circle', { cx: '20', cy: '19', r: '2' }],\n];\n\nexport default UserKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-lock\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTZ2LTJhMiAyIDAgMCAwLTQgMHYyIiAvPgogIDxwYXRoIGQ9Ik05LjUgMTVIN2E0IDQgMCAwIDAtNCA0djIiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI3IiByPSI0IiAvPgogIDxyZWN0IHg9IjEzIiB5PSIxNiIgd2lkdGg9IjgiIGhlaWdodD0iNSIgcng9Ii44OTkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-lock\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserLock: IconNode = [\n ['path', { d: 'M19 16v-2a2 2 0 0 0-4 0v2' }],\n ['path', { d: 'M9.5 15H7a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '10', cy: '7', r: '4' }],\n ['rect', { x: '13', y: '16', width: '8', height: '5', rx: '.899' }],\n];\n\nexport default UserLock;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KICA8bGluZSB4MT0iMjIiIHgyPSIxNiIgeTE9IjExIiB5Mj0iMTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserMinus: IconNode = [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n ['line', { x1: '22', x2: '16', y1: '11', y2: '11' }],\n];\n\nexport default UserMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNSAxNUg3YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8cGF0aCBkPSJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6IiAvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iNyIgcj0iNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserPen: IconNode = [\n ['path', { d: 'M11.5 15H7a4 4 0 0 0-4 4v2' }],\n [\n 'path',\n {\n d: 'M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n ['circle', { cx: '10', cy: '7', r: '4' }],\n];\n\nexport default UserPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KICA8bGluZSB4MT0iMTkiIHgyPSIxOSIgeTE9IjgiIHkyPSIxNCIgLz4KICA8bGluZSB4MT0iMjIiIHgyPSIxNiIgeTE9IjExIiB5Mj0iMTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserPlus: IconNode = [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n ['line', { x1: '19', x2: '19', y1: '8', y2: '14' }],\n ['line', { x1: '22', x2: '16', y1: '11', y2: '11' }],\n];\n\nexport default UserPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-check\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxwYXRoIGQ9Im0xNiAxOSAyIDIgNC00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/user-round-check\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundCheck: IconNode = [\n ['path', { d: 'M2 21a8 8 0 0 1 13.292-6' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'm16 19 2 2 4-4' }],\n];\n\nexport default UserRoundCheck;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuMzA1IDE5LjUzLjkyMy0uMzgyIiAvPgogIDxwYXRoIGQ9Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyIgLz4KICA8cGF0aCBkPSJtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAyMC43NzItLjM4My45MjQiIC8+CiAgPHBhdGggZD0ibTE5LjE0OCAxNS4yMjguMzgzLS45MjMiIC8+CiAgPHBhdGggZD0ibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQiIC8+CiAgPHBhdGggZD0iTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-round-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundCog: IconNode = [\n ['path', { d: 'm14.305 19.53.923-.382' }],\n ['path', { d: 'm15.228 16.852-.923-.383' }],\n ['path', { d: 'm16.852 15.228-.383-.923' }],\n ['path', { d: 'm16.852 20.772-.383.924' }],\n ['path', { d: 'm19.148 15.228.383-.923' }],\n ['path', { d: 'm19.53 21.696-.382-.924' }],\n ['path', { d: 'M2 21a8 8 0 0 1 10.434-7.62' }],\n ['path', { d: 'm20.772 16.852.924-.383' }],\n ['path', { d: 'm20.772 19.148.924.383' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default UserRoundCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-key\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTF2NiIgLz4KICA8cGF0aCBkPSJNMTkgMTNoMiIgLz4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTIuODY4LTYuMzQ5IiAvPgogIDxjaXJjbGUgY3g9IjEwIiBjeT0iOCIgcj0iNSIgLz4KICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjE5IiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/user-round-key\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundKey: IconNode = [\n ['path', { d: 'M19 11v6' }],\n ['path', { d: 'M19 13h2' }],\n ['path', { d: 'M2 21a8 8 0 0 1 12.868-6.349' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['circle', { cx: '19', cy: '19', r: '2' }],\n];\n\nexport default UserRoundKey;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-minus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxwYXRoIGQ9Ik0yMiAxOWgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-round-minus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundMinus: IconNode = [\n ['path', { d: 'M2 21a8 8 0 0 1 13.292-6' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'M22 19h-6' }],\n];\n\nexport default UserRoundMinus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTAuODIxLTcuNDg3IiAvPgogIDxwYXRoIGQ9Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/user-round-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundPen: IconNode = [\n ['path', { d: 'M2 21a8 8 0 0 1 10.821-7.487' }],\n [\n 'path',\n {\n d: 'M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n];\n\nexport default UserRoundPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-plus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxwYXRoIGQ9Ik0xOSAxNnY2IiAvPgogIDxwYXRoIGQ9Ik0yMiAxOWgtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-round-plus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundPlus: IconNode = [\n ['path', { d: 'M2 21a8 8 0 0 1 13.292-6' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'M19 16v6' }],\n ['path', { d: 'M22 19h-6' }],\n];\n\nexport default UserRoundPlus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjgiIHI9IjUiIC8+CiAgPHBhdGggZD0iTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjMiIC8+CiAgPHBhdGggZD0ibTIyIDIyLTEuOS0xLjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-round-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundSearch: IconNode = [\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'M2 21a8 8 0 0 1 10.434-7.62' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n ['path', { d: 'm22 22-1.9-1.9' }],\n];\n\nexport default UserRoundSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMWE4IDggMCAwIDEgMTEuODczLTciIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxwYXRoIGQ9Im0xNyAxNyA1IDUiIC8+CiAgPHBhdGggZD0ibTIyIDE3LTUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-round-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRoundX: IconNode = [\n ['path', { d: 'M2 21a8 8 0 0 1 11.873-7' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'm17 17 5 5' }],\n ['path', { d: 'm22 17-5 5' }],\n];\n\nexport default UserRoundX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjgiIHI9IjUiIC8+CiAgPHBhdGggZD0iTTIwIDIxYTggOCAwIDAgMC0xNiAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/user-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserRound: IconNode = [\n ['circle', { cx: '12', cy: '8', r: '5' }],\n ['path', { d: 'M20 21a8 8 0 0 0-16 0' }],\n];\n\nexport default UserRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-search\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjciIHI9IjQiIC8+CiAgPHBhdGggZD0iTTEwLjMgMTVIN2E0IDQgMCAwIDAtNCA0djIiIC8+CiAgPGNpcmNsZSBjeD0iMTciIGN5PSIxNyIgcj0iMyIgLz4KICA8cGF0aCBkPSJtMjEgMjEtMS45LTEuOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-search\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserSearch: IconNode = [\n ['circle', { cx: '10', cy: '7', r: '4' }],\n ['path', { d: 'M10.3 15H7a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '17', cy: '17', r: '3' }],\n ['path', { d: 'm21 21-1.9-1.9' }],\n];\n\nexport default UserSearch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-star\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYuMDUxIDEyLjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2NmwtMS4xNTYtMS4xNTNhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiIgLz4KICA8cGF0aCBkPSJNOCAxNUg3YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSIxMCIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-star\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserStar: IconNode = [\n [\n 'path',\n {\n d: 'M16.051 12.616a1 1 0 0 1 1.909.024l.737 1.452a1 1 0 0 0 .737.535l1.634.256a1 1 0 0 1 .588 1.806l-1.172 1.168a1 1 0 0 0-.282.866l.259 1.613a1 1 0 0 1-1.541 1.134l-1.465-.75a1 1 0 0 0-.912 0l-1.465.75a1 1 0 0 1-1.539-1.133l.258-1.613a1 1 0 0 0-.282-.866l-1.156-1.153a1 1 0 0 1 .572-1.822l1.633-.256a1 1 0 0 0 .737-.535z',\n },\n ],\n ['path', { d: 'M8 15H7a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '10', cy: '7', r: '4' }],\n];\n\nexport default UserStar;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KICA8bGluZSB4MT0iMTciIHgyPSIyMiIgeTE9IjgiIHkyPSIxMyIgLz4KICA8bGluZSB4MT0iMjIiIHgyPSIxNyIgeTE9IjgiIHkyPSIxMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/user-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UserX: IconNode = [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n ['line', { x1: '17', x2: '22', y1: '8', y2: '13' }],\n ['line', { x1: '22', x2: '17', y1: '8', y2: '13' }],\n];\n\nexport default UserX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name user\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst User: IconNode = [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2' }],\n ['circle', { cx: '12', cy: '7', r: '4' }],\n];\n\nexport default User;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name users-round\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMjFhOCA4IDAgMCAwLTE2IDAiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSI4IiByPSI1IiAvPgogIDxwYXRoIGQ9Ik0yMiAyMGMwLTMuMzctMi02LjUtNC04YTUgNSAwIDAgMC0uNDUtOC4zIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/users-round\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UsersRound: IconNode = [\n ['path', { d: 'M18 21a8 8 0 0 0-16 0' }],\n ['circle', { cx: '10', cy: '8', r: '5' }],\n ['path', { d: 'M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3' }],\n];\n\nexport default UsersRound;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name users\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8cGF0aCBkPSJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQiIC8+CiAgPHBhdGggZD0iTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODciIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/users\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Users: IconNode = [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' }],\n ['path', { d: 'M16 3.128a4 4 0 0 1 0 7.744' }],\n ['path', { d: 'M22 21v-2a4 4 0 0 0-3-3.87' }],\n ['circle', { cx: '9', cy: '7', r: '4' }],\n];\n\nexport default Users;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name utensils-crossed\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMi0yLjMgMi4zYTMgMyAwIDAgMCAwIDQuMmwxLjggMS44YTMgMyAwIDAgMCA0LjIgMEwyMiA4IiAvPgogIDxwYXRoIGQ9Ik0xNSAxNSAzLjMgMy4zYTQuMiA0LjIgMCAwIDAgMCA2bDcuMyA3LjNjLjcuNyAyIC43IDIuOCAwTDE1IDE1Wm0wIDAgNyA3IiAvPgogIDxwYXRoIGQ9Im0yLjEgMjEuOCA2LjQtNi4zIiAvPgogIDxwYXRoIGQ9Im0xOSA1LTcgNyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/utensils-crossed\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UtensilsCrossed: IconNode = [\n ['path', { d: 'm16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8' }],\n ['path', { d: 'M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7' }],\n ['path', { d: 'm2.1 21.8 6.4-6.3' }],\n ['path', { d: 'm19 5-7 7' }],\n];\n\nexport default UtensilsCrossed;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name utensils\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAydjdjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWMiIgLz4KICA8cGF0aCBkPSJNNyAydjIwIiAvPgogIDxwYXRoIGQ9Ik0yMSAxNVYyYTUgNSAwIDAgMC01IDV2NmMwIDEuMS45IDIgMiAyaDNabTAgMHY3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/utensils\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Utensils: IconNode = [\n ['path', { d: 'M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2' }],\n ['path', { d: 'M7 2v20' }],\n ['path', { d: 'M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7' }],\n];\n\nexport default Utensils;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name utility-pole\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnYyMCIgLz4KICA8cGF0aCBkPSJNMiA1aDIwIiAvPgogIDxwYXRoIGQ9Ik0zIDN2MiIgLz4KICA8cGF0aCBkPSJNNyAzdjIiIC8+CiAgPHBhdGggZD0iTTE3IDN2MiIgLz4KICA8cGF0aCBkPSJNMjEgM3YyIiAvPgogIDxwYXRoIGQ9Im0xOSA1LTcgNy03LTciIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/utility-pole\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst UtilityPole: IconNode = [\n ['path', { d: 'M12 2v20' }],\n ['path', { d: 'M2 5h20' }],\n ['path', { d: 'M3 3v2' }],\n ['path', { d: 'M7 3v2' }],\n ['path', { d: 'M17 3v2' }],\n ['path', { d: 'M21 3v2' }],\n ['path', { d: 'm19 5-7 7-7-7' }],\n];\n\nexport default UtilityPole;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name van\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMgNnY1YTEgMSAwIDAgMCAxIDFoNi4xMDJhMSAxIDAgMCAxIC43MTIuMjk4bC44OTguOTFhMSAxIDAgMCAxIC4yODguNzAyVjE3YTEgMSAwIDAgMS0xIDFoLTMiIC8+CiAgPHBhdGggZD0iTTUgMThIM2ExIDEgMCAwIDEtMS0xVjhhMiAyIDAgMCAxIDItMmgxMmMxLjEgMCAyLjEuOCAyLjQgMS44bDEuMTc2IDQuMiIgLz4KICA8cGF0aCBkPSJNOSAxOGg1IiAvPgogIDxjaXJjbGUgY3g9IjE2IiBjeT0iMTgiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iNyIgY3k9IjE4IiByPSIyIiAvPgo8L3N2Zz4=) - https://lucide.dev/icons/van\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Van: IconNode = [\n [\n 'path',\n {\n d: 'M13 6v5a1 1 0 0 0 1 1h6.102a1 1 0 0 1 .712.298l.898.91a1 1 0 0 1 .288.702V17a1 1 0 0 1-1 1h-3',\n },\n ],\n ['path', { d: 'M5 18H3a1 1 0 0 1-1-1V8a2 2 0 0 1 2-2h12c1.1 0 2.1.8 2.4 1.8l1.176 4.2' }],\n ['path', { d: 'M9 18h5' }],\n ['circle', { cx: '16', cy: '18', r: '2' }],\n ['circle', { cx: '7', cy: '18', r: '2' }],\n];\n\nexport default Van;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name variable\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyMXMtNC0zLTQtOSA0LTkgNC05IiAvPgogIDxwYXRoIGQ9Ik0xNiAzczQgMyA0IDktNCA5LTQgOSIgLz4KICA8bGluZSB4MT0iMTUiIHgyPSI5IiB5MT0iOSIgeTI9IjE1IiAvPgogIDxsaW5lIHgxPSI5IiB4Mj0iMTUiIHkxPSI5IiB5Mj0iMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/variable\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Variable: IconNode = [\n ['path', { d: 'M8 21s-4-3-4-9 4-9 4-9' }],\n ['path', { d: 'M16 3s4 3 4 9-4 9-4 9' }],\n ['line', { x1: '15', x2: '9', y1: '9', y2: '15' }],\n ['line', { x1: '9', x2: '15', y1: '9', y2: '15' }],\n];\n\nexport default Variable;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vault\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjcuNSIgcj0iLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIgLz4KICA8cGF0aCBkPSJtNy45IDcuOSAyLjcgMi43IiAvPgogIDxjaXJjbGUgY3g9IjE2LjUiIGN5PSI3LjUiIHI9Ii41IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPHBhdGggZD0ibTEzLjQgMTAuNiAyLjctMi43IiAvPgogIDxjaXJjbGUgY3g9IjcuNSIgY3k9IjE2LjUiIHI9Ii41IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPHBhdGggZD0ibTcuOSAxNi4xIDIuNy0yLjciIC8+CiAgPGNpcmNsZSBjeD0iMTYuNSIgY3k9IjE2LjUiIHI9Ii41IiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CiAgPHBhdGggZD0ibTEzLjQgMTMuNCAyLjcgMi43IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/vault\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Vault: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['circle', { cx: '7.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n ['path', { d: 'm7.9 7.9 2.7 2.7' }],\n ['circle', { cx: '16.5', cy: '7.5', r: '.5', fill: 'currentColor' }],\n ['path', { d: 'm13.4 10.6 2.7-2.7' }],\n ['circle', { cx: '7.5', cy: '16.5', r: '.5', fill: 'currentColor' }],\n ['path', { d: 'm7.9 16.1 2.7-2.7' }],\n ['circle', { cx: '16.5', cy: '16.5', r: '.5', fill: 'currentColor' }],\n ['path', { d: 'm13.4 13.4 2.7 2.7' }],\n ['circle', { cx: '12', cy: '12', r: '2' }],\n];\n\nexport default Vault;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vector-square\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkuNSA3YTI0IDI0IDAgMCAxIDAgMTAiIC8+CiAgPHBhdGggZD0iTTQuNSA3YTI0IDI0IDAgMCAwIDAgMTAiIC8+CiAgPHBhdGggZD0iTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwIiAvPgogIDxwYXRoIGQ9Ik03IDQuNWEyNCAyNCAwIDAgMSAxMCAwIiAvPgogIDxyZWN0IHg9IjE3IiB5PSIxNyIgd2lkdGg9IjUiIGhlaWdodD0iNSIgcng9IjEiIC8+CiAgPHJlY3QgeD0iMTciIHk9IjIiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjIiIHk9IjE3IiB3aWR0aD0iNSIgaGVpZ2h0PSI1IiByeD0iMSIgLz4KICA8cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iNSIgaGVpZ2h0PSI1IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/vector-square\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VectorSquare: IconNode = [\n ['path', { d: 'M19.5 7a24 24 0 0 1 0 10' }],\n ['path', { d: 'M4.5 7a24 24 0 0 0 0 10' }],\n ['path', { d: 'M7 19.5a24 24 0 0 0 10 0' }],\n ['path', { d: 'M7 4.5a24 24 0 0 1 10 0' }],\n ['rect', { x: '17', y: '17', width: '5', height: '5', rx: '1' }],\n ['rect', { x: '17', y: '2', width: '5', height: '5', rx: '1' }],\n ['rect', { x: '2', y: '17', width: '5', height: '5', rx: '1' }],\n ['rect', { x: '2', y: '2', width: '5', height: '5', rx: '1' }],\n];\n\nexport default VectorSquare;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vegan\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgOHE2IDAgNi02LTYgMC02IDYiIC8+CiAgPHBhdGggZD0iTTE3LjQxIDMuNTlhMTAgMTAgMCAxIDAgMyAzIiAvPgogIDxwYXRoIGQ9Ik0yIDJhMjYuNiAyNi42IDAgMCAxIDEwIDIwYy45LTYuODIgMS41LTkuNSA0LTE0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/vegan\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Vegan: IconNode = [\n ['path', { d: 'M16 8q6 0 6-6-6 0-6 6' }],\n ['path', { d: 'M17.41 3.59a10 10 0 1 0 3 3' }],\n ['path', { d: 'M2 2a26.6 26.6 0 0 1 10 20c.9-6.82 1.5-9.5 4-14' }],\n];\n\nexport default Vegan;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name venetian-mask\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTFjLTEuNSAwLTIuNS41LTMgMiIgLz4KICA8cGF0aCBkPSJNNCA2YTIgMiAwIDAgMC0yIDJ2NGE1IDUgMCAwIDAgNSA1IDggOCAwIDAgMSA1IDIgOCA4IDAgMCAxIDUtMiA1IDUgMCAwIDAgNS01VjhhMiAyIDAgMCAwLTItMmgtM2E4IDggMCAwIDAtNSAyIDggOCAwIDAgMC01LTJ6IiAvPgogIDxwYXRoIGQ9Ik02IDExYzEuNSAwIDIuNS41IDMgMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/venetian-mask\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VenetianMask: IconNode = [\n ['path', { d: 'M18 11c-1.5 0-2.5.5-3 2' }],\n [\n 'path',\n {\n d: 'M4 6a2 2 0 0 0-2 2v4a5 5 0 0 0 5 5 8 8 0 0 1 5 2 8 8 0 0 1 5-2 5 5 0 0 0 5-5V8a2 2 0 0 0-2-2h-3a8 8 0 0 0-5 2 8 8 0 0 0-5-2z',\n },\n ],\n ['path', { d: 'M6 11c1.5 0 2.5.5 3 2' }],\n];\n\nexport default VenetianMask;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name venus-and-mars\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjBoNCIgLz4KICA8cGF0aCBkPSJNMTIgMTZ2NiIgLz4KICA8cGF0aCBkPSJNMTcgMmg0djQiIC8+CiAgPHBhdGggZD0ibTIxIDItNS40NiA1LjQ2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTEiIHI9IjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/venus-and-mars\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VenusAndMars: IconNode = [\n ['path', { d: 'M10 20h4' }],\n ['path', { d: 'M12 16v6' }],\n ['path', { d: 'M17 2h4v4' }],\n ['path', { d: 'm21 2-5.46 5.46' }],\n ['circle', { cx: '12', cy: '11', r: '5' }],\n];\n\nexport default VenusAndMars;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name venus\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTV2NyIgLz4KICA8cGF0aCBkPSJNOSAxOWg2IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iOSIgcj0iNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/venus\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Venus: IconNode = [\n ['path', { d: 'M12 15v7' }],\n ['path', { d: 'M9 19h6' }],\n ['circle', { cx: '12', cy: '9', r: '6' }],\n];\n\nexport default Venus;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vibrate-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiA4IDIgMi0yIDIgMiAyLTIgMiIgLz4KICA8cGF0aCBkPSJtMjIgOC0yIDIgMiAyLTIgMiAyIDIiIC8+CiAgPHBhdGggZD0iTTggOHYxMGMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMXYtMiIgLz4KICA8cGF0aCBkPSJNMTYgMTAuMzRWNmMwLS41NS0uNDUtMS0xLTFoLTQuMzQiIC8+CiAgPGxpbmUgeDE9IjIiIHgyPSIyMiIgeTE9IjIiIHkyPSIyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/vibrate-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VibrateOff: IconNode = [\n ['path', { d: 'm2 8 2 2-2 2 2 2-2 2' }],\n ['path', { d: 'm22 8-2 2 2 2-2 2 2 2' }],\n ['path', { d: 'M8 8v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2' }],\n ['path', { d: 'M16 10.34V6c0-.55-.45-1-1-1h-4.34' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default VibrateOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vibrate\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiA4IDIgMi0yIDIgMiAyLTIgMiIgLz4KICA8cGF0aCBkPSJtMjIgOC0yIDIgMiAyLTIgMiAyIDIiIC8+CiAgPHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjUiIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/vibrate\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Vibrate: IconNode = [\n ['path', { d: 'm2 8 2 2-2 2 2 2-2 2' }],\n ['path', { d: 'm22 8-2 2 2 2-2 2 2 2' }],\n ['rect', { width: '8', height: '14', x: '8', y: '5', rx: '1' }],\n];\n\nexport default Vibrate;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name video-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNjYgNkgxNGEyIDIgMCAwIDEgMiAydjIuNWw1LjI0OC0zLjA2MkEuNS41IDAgMCAxIDIyIDcuODd2OC4xOTYiIC8+CiAgPHBhdGggZD0iTTE2IDE2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/video-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VideoOff: IconNode = [\n ['path', { d: 'M10.66 6H14a2 2 0 0 1 2 2v2.5l5.248-3.062A.5.5 0 0 1 22 7.87v8.196' }],\n ['path', { d: 'M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default VideoOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name video\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTMgNS4yMjMgMy40ODJhLjUuNSAwIDAgMCAuNzc3LS40MTZWNy44N2EuNS41IDAgMCAwLS43NTItLjQzMkwxNiAxMC41IiAvPgogIDxyZWN0IHg9IjIiIHk9IjYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/video\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Video: IconNode = [\n ['path', { d: 'm16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5' }],\n ['rect', { x: '2', y: '6', width: '14', height: '12', rx: '2' }],\n];\n\nexport default Video;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name videotape\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHg9IjIiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0yIDhoMjAiIC8+CiAgPGNpcmNsZSBjeD0iOCIgY3k9IjE0IiByPSIyIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+CiAgPGNpcmNsZSBjeD0iMTYiIGN5PSIxNCIgcj0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/videotape\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Videotape: IconNode = [\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2' }],\n ['path', { d: 'M2 8h20' }],\n ['circle', { cx: '8', cy: '14', r: '2' }],\n ['path', { d: 'M8 12h8' }],\n ['circle', { cx: '16', cy: '14', r: '2' }],\n];\n\nexport default Videotape;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name view\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTd2MmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtMiIgLz4KICA8cGF0aCBkPSJNMjEgN1Y1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMSIgLz4KICA8cGF0aCBkPSJNMTguOTQ0IDEyLjMzYTEgMSAwIDAgMCAwLS42NiA3LjUgNy41IDAgMCAwLTEzLjg4OCAwIDEgMSAwIDAgMCAwIC42NiA3LjUgNy41IDAgMCAwIDEzLjg4OCAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/view\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst View: IconNode = [\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2' }],\n ['path', { d: 'M21 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2' }],\n ['circle', { cx: '12', cy: '12', r: '1' }],\n [\n 'path',\n {\n d: 'M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0',\n },\n ],\n];\n\nexport default View;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name voicemail\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iMTIiIHI9IjQiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxMiIgcj0iNCIgLz4KICA8bGluZSB4MT0iNiIgeDI9IjE4IiB5MT0iMTYiIHkyPSIxNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/voicemail\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Voicemail: IconNode = [\n ['circle', { cx: '6', cy: '12', r: '4' }],\n ['circle', { cx: '18', cy: '12', r: '4' }],\n ['line', { x1: '6', x2: '18', y1: '16', y2: '16' }],\n];\n\nexport default Voicemail;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volleyball\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuMSA3LjFhMTYuNTUgMTYuNTUgMCAwIDEgMTAuOSA0IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMmExMi42IDEyLjYgMCAwIDEtOC43IDUiIC8+CiAgPHBhdGggZD0iTTE2LjggMTMuNmExNi41NSAxNi41NSAwIDAgMS05IDcuNSIgLz4KICA8cGF0aCBkPSJNMjAuNyAxN2ExMi44IDEyLjggMCAwIDAtOC43LTUgMTMuMyAxMy4zIDAgMCAxIDAtMTAiIC8+CiAgPHBhdGggZD0iTTYuMyAzLjhhMTYuNTUgMTYuNTUgMCAwIDAgMS45IDExLjUiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volleyball\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Volleyball: IconNode = [\n ['path', { d: 'M11.1 7.1a16.55 16.55 0 0 1 10.9 4' }],\n ['path', { d: 'M12 12a12.6 12.6 0 0 1-8.7 5' }],\n ['path', { d: 'M16.8 13.6a16.55 16.55 0 0 1-9 7.5' }],\n ['path', { d: 'M20.7 17a12.8 12.8 0 0 0-8.7-5 13.3 13.3 0 0 1 0-10' }],\n ['path', { d: 'M6.3 3.8a16.55 16.55 0 0 0 1.9 11.5' }],\n ['circle', { cx: '12', cy: '12', r: '10' }],\n];\n\nexport default Volleyball;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-1\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPHBhdGggZD0iTTE2IDlhNSA1IDAgMCAxIDAgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/volume-1\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Volume1: IconNode = [\n [\n 'path',\n {\n d: 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',\n },\n ],\n ['path', { d: 'M16 9a5 5 0 0 1 0 6' }],\n];\n\nexport default Volume1;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-2\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPHBhdGggZD0iTTE2IDlhNSA1IDAgMCAxIDAgNiIgLz4KICA8cGF0aCBkPSJNMTkuMzY0IDE4LjM2NGE5IDkgMCAwIDAgMC0xMi43MjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-2\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Volume2: IconNode = [\n [\n 'path',\n {\n d: 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',\n },\n ],\n ['path', { d: 'M16 9a5 5 0 0 1 0 6' }],\n ['path', { d: 'M19.364 18.364a9 9 0 0 0 0-12.728' }],\n];\n\nexport default Volume2;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgOWE1IDUgMCAwIDEgLjk1IDIuMjkzIiAvPgogIDxwYXRoIGQ9Ik0xOS4zNjQgNS42MzZhOSA5IDAgMCAxIDEuODg5IDkuOTYiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KICA8cGF0aCBkPSJtNyA3LS41ODcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4VjExIiAvPgogIDxwYXRoIGQ9Ik05LjgyOCA0LjE3MkEuNjg2LjY4NiAwIDAgMSAxMSA0LjY1N3YuNjg2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/volume-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VolumeOff: IconNode = [\n ['path', { d: 'M16 9a5 5 0 0 1 .95 2.293' }],\n ['path', { d: 'M19.364 5.636a9 9 0 0 1 1.889 9.96' }],\n ['path', { d: 'm2 2 20 20' }],\n [\n 'path',\n {\n d: 'm7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11',\n },\n ],\n ['path', { d: 'M9.828 4.172A.686.686 0 0 1 11 4.657v.686' }],\n];\n\nexport default VolumeOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume-x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPGxpbmUgeDE9IjIyIiB4Mj0iMTYiIHkxPSI5IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjE2IiB4Mj0iMjIiIHkxPSI5IiB5Mj0iMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst VolumeX: IconNode = [\n [\n 'path',\n {\n d: 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',\n },\n ],\n ['line', { x1: '22', x2: '16', y1: '9', y2: '15' }],\n ['line', { x1: '16', x2: '22', y1: '9', y2: '15' }],\n];\n\nexport default VolumeX;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name vote\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxMiAyIDIgNC00IiAvPgogIDxwYXRoIGQ9Ik01IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1oiIC8+CiAgPHBhdGggZD0iTTIyIDE5SDIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/vote\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Vote: IconNode = [\n ['path', { d: 'm9 12 2 2 4-4' }],\n ['path', { d: 'M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v12H5V7Z' }],\n ['path', { d: 'M22 19H2' }],\n];\n\nexport default Vote;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name volume\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Volume: IconNode = [\n [\n 'path',\n {\n d: 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',\n },\n ],\n];\n\nexport default Volume;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wallet-cards\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDlhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAyIiAvPgogIDxwYXRoIGQ9Ik0zIDExaDNjLjggMCAxLjYuMyAyLjEuOWwxLjEuOWMxLjYgMS42IDQuMSAxLjYgNS43IDBsMS4xLS45Yy41LS41IDEuMy0uOSAyLjEtLjlIMjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wallet-cards\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WalletCards: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2' }],\n [\n 'path',\n { d: 'M3 11h3c.8 0 1.6.3 2.1.9l1.1.9c1.6 1.6 4.1 1.6 5.7 0l1.1-.9c.5-.5 1.3-.9 2.1-.9H21' },\n ],\n];\n\nexport default WalletCards;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wallet-minimal\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTRoLjAxIiAvPgogIDxwYXRoIGQ9Ik03IDdoMTJhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wallet-minimal\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WalletMinimal: IconNode = [\n ['path', { d: 'M17 14h.01' }],\n ['path', { d: 'M7 7h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14' }],\n];\n\nexport default WalletMinimal;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wallet\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIiAvPgogIDxwYXRoIGQ9Ik0zIDV2MTRhMiAyIDAgMCAwIDIgMmgxNWExIDEgMCAwIDAgMS0xdi00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wallet\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wallet: IconNode = [\n [\n 'path',\n {\n d: 'M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1',\n },\n ],\n ['path', { d: 'M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4' }],\n];\n\nexport default Wallet;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wallpaper\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTd2NCIgLz4KICA8cGF0aCBkPSJNOCAyMWg4IiAvPgogIDxwYXRoIGQ9Im05IDE3IDYuMS02LjFhMiAyIDAgMCAxIDIuODEuMDFMMjIgMTUiIC8+CiAgPGNpcmNsZSBjeD0iOCIgY3k9IjkiIHI9IjIiIC8+CiAgPHJlY3QgeD0iMiIgeT0iMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE0IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wallpaper\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wallpaper: IconNode = [\n ['path', { d: 'M12 17v4' }],\n ['path', { d: 'M8 21h8' }],\n ['path', { d: 'm9 17 6.1-6.1a2 2 0 0 1 2.81.01L22 15' }],\n ['circle', { cx: '8', cy: '9', r: '2' }],\n ['rect', { x: '2', y: '3', width: '20', height: '14', rx: '2' }],\n];\n\nexport default Wallpaper;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wand-sparkles\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNjQgMy42NC0xLjI4LTEuMjhhMS4yMSAxLjIxIDAgMCAwLTEuNzIgMEwyLjM2IDE4LjY0YTEuMjEgMS4yMSAwIDAgMCAwIDEuNzJsMS4yOCAxLjI4YTEuMiAxLjIgMCAwIDAgMS43MiAwTDIxLjY0IDUuMzZhMS4yIDEuMiAwIDAgMCAwLTEuNzIiIC8+CiAgPHBhdGggZD0ibTE0IDcgMyAzIiAvPgogIDxwYXRoIGQ9Ik01IDZ2NCIgLz4KICA8cGF0aCBkPSJNMTkgMTR2NCIgLz4KICA8cGF0aCBkPSJNMTAgMnYyIiAvPgogIDxwYXRoIGQ9Ik03IDhIMyIgLz4KICA8cGF0aCBkPSJNMjEgMTZoLTQiIC8+CiAgPHBhdGggZD0iTTExIDNIOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wand-sparkles\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WandSparkles: IconNode = [\n [\n 'path',\n {\n d: 'm21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72',\n },\n ],\n ['path', { d: 'm14 7 3 3' }],\n ['path', { d: 'M5 6v4' }],\n ['path', { d: 'M19 14v4' }],\n ['path', { d: 'M10 2v2' }],\n ['path', { d: 'M7 8H3' }],\n ['path', { d: 'M21 16h-4' }],\n ['path', { d: 'M11 3H9' }],\n];\n\nexport default WandSparkles;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wand\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgNFYyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxNnYtMiIgLz4KICA8cGF0aCBkPSJNOCA5aDIiIC8+CiAgPHBhdGggZD0iTTIwIDloMiIgLz4KICA8cGF0aCBkPSJNMTcuOCAxMS44IDE5IDEzIiAvPgogIDxwYXRoIGQ9Ik0xNSA5aC4wMSIgLz4KICA8cGF0aCBkPSJNMTcuOCA2LjIgMTkgNSIgLz4KICA8cGF0aCBkPSJtMyAyMSA5LTkiIC8+CiAgPHBhdGggZD0iTTEyLjIgNi4yIDExIDUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wand\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wand: IconNode = [\n ['path', { d: 'M15 4V2' }],\n ['path', { d: 'M15 16v-2' }],\n ['path', { d: 'M8 9h2' }],\n ['path', { d: 'M20 9h2' }],\n ['path', { d: 'M17.8 11.8 19 13' }],\n ['path', { d: 'M15 9h.01' }],\n ['path', { d: 'M17.8 6.2 19 5' }],\n ['path', { d: 'm3 21 9-9' }],\n ['path', { d: 'M12.2 6.2 11 5' }],\n];\n\nexport default Wand;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name warehouse\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMjFWMTBhMSAxIDAgMCAwLTEtMUg3YTEgMSAwIDAgMC0xIDF2MTEiIC8+CiAgPHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDEuMTMyLTEuODAzbDcuOTUtMy45NzRhMiAyIDAgMCAxIDEuODM3IDBsNy45NDggMy45NzRBMiAyIDAgMCAxIDIyIDh6IiAvPgogIDxwYXRoIGQ9Ik02IDEzaDEyIiAvPgogIDxwYXRoIGQ9Ik02IDE3aDEyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/warehouse\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Warehouse: IconNode = [\n ['path', { d: 'M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11' }],\n [\n 'path',\n {\n d: 'M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z',\n },\n ],\n ['path', { d: 'M6 13h12' }],\n ['path', { d: 'M6 17h12' }],\n];\n\nexport default Warehouse;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name washing-machine\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA2aDMiIC8+CiAgPHBhdGggZD0iTTE3IDZoLjAxIiAvPgogIDxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIyMCIgeD0iMyIgeT0iMiIgcng9IjIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMyIgcj0iNSIgLz4KICA8cGF0aCBkPSJNMTIgMThhMi41IDIuNSAwIDAgMCAwLTUgMi41IDIuNSAwIDAgMSAwLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/washing-machine\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WashingMachine: IconNode = [\n ['path', { d: 'M3 6h3' }],\n ['path', { d: 'M17 6h.01' }],\n ['rect', { width: '18', height: '20', x: '3', y: '2', rx: '2' }],\n ['circle', { cx: '12', cy: '13', r: '5' }],\n ['path', { d: 'M12 18a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 1 0-5' }],\n];\n\nexport default WashingMachine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name watch\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTB2Mi4ybDEuNiAxIiAvPgogIDxwYXRoIGQ9Im0xNi4xMyA3LjY2LS44MS00LjA1YTIgMiAwIDAgMC0yLTEuNjFoLTIuNjhhMiAyIDAgMCAwLTIgMS42MWwtLjc4IDQuMDUiIC8+CiAgPHBhdGggZD0ibTcuODggMTYuMzYuOCA0YTIgMiAwIDAgMCAyIDEuNjFoMi43MmEyIDIgMCAwIDAgMi0xLjYxbC44MS00LjA1IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/watch\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Watch: IconNode = [\n ['path', { d: 'M12 10v2.2l1.6 1' }],\n ['path', { d: 'm16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05' }],\n ['path', { d: 'm7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05' }],\n ['circle', { cx: '12', cy: '12', r: '6' }],\n];\n\nexport default Watch;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name waves-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTBMMTIgMiIgLz4KICA8cGF0aCBkPSJNMTYgNkwxMiAxMEw4IDYiIC8+CiAgPHBhdGggZD0iTTIgMTVDMi42IDE1LjUgMy4yIDE2IDQuNSAxNkM3IDE2IDcgMTQgOS41IDE0QzEyLjEgMTQgMTEuOSAxNiAxNC41IDE2QzE3IDE2IDE3IDE0IDE5LjUgMTRDMjAuOCAxNCAyMS40IDE0LjUgMjIgMTUiIC8+CiAgPHBhdGggZD0iTTIgMjFDMi42IDIxLjUgMy4yIDIyIDQuNSAyMkM3IDIyIDcgMjAgOS41IDIwQzEyLjEgMjAgMTEuOSAyMiAxNC41IDIyQzE3IDIyIDE3IDIwIDE5LjUgMjBDMjAuOCAyMCAyMS40IDIwLjUgMjIgMjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/waves-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WavesArrowDown: IconNode = [\n ['path', { d: 'M12 10L12 2' }],\n ['path', { d: 'M16 6L12 10L8 6' }],\n [\n 'path',\n {\n d: 'M2 15C2.6 15.5 3.2 16 4.5 16C7 16 7 14 9.5 14C12.1 14 11.9 16 14.5 16C17 16 17 14 19.5 14C20.8 14 21.4 14.5 22 15',\n },\n ],\n [\n 'path',\n {\n d: 'M2 21C2.6 21.5 3.2 22 4.5 22C7 22 7 20 9.5 20C12.1 20 11.9 22 14.5 22C17 22 17 20 19.5 20C20.8 20 21.4 20.5 22 21',\n },\n ],\n];\n\nexport default WavesArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name waves-arrow-up\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMnY4IiAvPgogIDxwYXRoIGQ9Ik0yIDE1Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEiIC8+CiAgPHBhdGggZD0iTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSIgLz4KICA8cGF0aCBkPSJtOCA2IDQtNCA0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/waves-arrow-up\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WavesArrowUp: IconNode = [\n ['path', { d: 'M12 2v8' }],\n [\n 'path',\n {\n d: 'M2 15c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n [\n 'path',\n {\n d: 'M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n ['path', { d: 'm8 6 4-4 4 4' }],\n];\n\nexport default WavesArrowUp;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name waves-ladder\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgNWEyIDIgMCAwIDAtMiAydjExIiAvPgogIDxwYXRoIGQ9Ik0yIDE4Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEiIC8+CiAgPHBhdGggZD0iTTcgMTNoMTAiIC8+CiAgPHBhdGggZD0iTTcgOWgxMCIgLz4KICA8cGF0aCBkPSJNOSA1YTIgMiAwIDAgMC0yIDJ2MTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/waves-ladder\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WavesLadder: IconNode = [\n ['path', { d: 'M19 5a2 2 0 0 0-2 2v11' }],\n [\n 'path',\n {\n d: 'M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n ['path', { d: 'M7 13h10' }],\n ['path', { d: 'M7 9h10' }],\n ['path', { d: 'M9 5a2 2 0 0 0-2 2v11' }],\n];\n\nexport default WavesLadder;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name waves\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA2Yy42LjUgMS4yIDEgMi41IDFDNyA3IDcgNSA5LjUgNWMyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIiAvPgogIDxwYXRoIGQ9Ik0yIDEyYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEiIC8+CiAgPHBhdGggZD0iTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/waves\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Waves: IconNode = [\n [\n 'path',\n { d: 'M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1' },\n ],\n [\n 'path',\n {\n d: 'M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n [\n 'path',\n {\n d: 'M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1',\n },\n ],\n];\n\nexport default Waves;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name waypoints\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTAuNTg2IDUuNDE0LTUuMTcyIDUuMTcyIiAvPgogIDxwYXRoIGQ9Im0xOC41ODYgMTMuNDE0LTUuMTcyIDUuMTcyIiAvPgogIDxwYXRoIGQ9Ik02IDEyaDEyIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMjAiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSI0IiByPSIyIiAvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMTIiIHI9IjIiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjEyIiByPSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/waypoints\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Waypoints: IconNode = [\n ['path', { d: 'm10.586 5.414-5.172 5.172' }],\n ['path', { d: 'm18.586 13.414-5.172 5.172' }],\n ['path', { d: 'M6 12h12' }],\n ['circle', { cx: '12', cy: '20', r: '2' }],\n ['circle', { cx: '12', cy: '4', r: '2' }],\n ['circle', { cx: '20', cy: '12', r: '2' }],\n ['circle', { cx: '4', cy: '12', r: '2' }],\n];\n\nexport default Waypoints;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name webcam\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEwIiByPSI4IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTcgMjJoMTAiIC8+CiAgPHBhdGggZD0iTTEyIDIydi00IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/webcam\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Webcam: IconNode = [\n ['circle', { cx: '12', cy: '10', r: '8' }],\n ['circle', { cx: '12', cy: '10', r: '3' }],\n ['path', { d: 'M7 22h10' }],\n ['path', { d: 'M12 22v-4' }],\n];\n\nexport default Webcam;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name webhook-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTdoLTVjLTEuMDktLjAyLTEuOTQuOTItMi41IDEuOUEzIDMgMCAxIDEgMi41NyAxNSIgLz4KICA8cGF0aCBkPSJNOSAzLjRhNCA0IDAgMCAxIDYuNTIuNjYiIC8+CiAgPHBhdGggZD0ibTYgMTcgMy4xLTUuOGEyLjUgMi41IDAgMCAwIC4wNTctMi4wNSIgLz4KICA8cGF0aCBkPSJNMjAuMyAyMC4zYTQgNCAwIDAgMS0yLjMuNyIgLz4KICA8cGF0aCBkPSJNMTguNiAxM2E0IDQgMCAwIDEgMy4zNTcgMy40MTQiIC8+CiAgPHBhdGggZD0ibTEyIDYgLjYgMSIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/webhook-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WebhookOff: IconNode = [\n ['path', { d: 'M17 17h-5c-1.09-.02-1.94.92-2.5 1.9A3 3 0 1 1 2.57 15' }],\n ['path', { d: 'M9 3.4a4 4 0 0 1 6.52.66' }],\n ['path', { d: 'm6 17 3.1-5.8a2.5 2.5 0 0 0 .057-2.05' }],\n ['path', { d: 'M20.3 20.3a4 4 0 0 1-2.3.7' }],\n ['path', { d: 'M18.6 13a4 4 0 0 1 3.357 3.414' }],\n ['path', { d: 'm12 6 .6 1' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default WebhookOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name webhook\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggMTYuOThoLTUuOTljLTEuMSAwLTEuOTUuOTQtMi40OCAxLjlBNCA0IDAgMCAxIDIgMTdjLjAxLS43LjItMS40LjU3LTIiIC8+CiAgPHBhdGggZD0ibTYgMTcgMy4xMy01Ljc4Yy41My0uOTcuMS0yLjE4LS41LTMuMWE0IDQgMCAxIDEgNi44OS00LjA2IiAvPgogIDxwYXRoIGQ9Im0xMiA2IDMuMTMgNS43M0MxNS42NiAxMi43IDE2LjkgMTMgMTggMTNhNCA0IDAgMCAxIDAgOCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/webhook\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Webhook: IconNode = [\n ['path', { d: 'M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2' }],\n ['path', { d: 'm6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06' }],\n ['path', { d: 'm12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8' }],\n];\n\nexport default Webhook;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name weight-tilde\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNi41IDhhMiAyIDAgMCAwLTEuOTA2IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDh6IiAvPgogIDxwYXRoIGQ9Ik03Ljk5OSAxNWEyLjUgMi41IDAgMCAxIDQgMCAyLjUgMi41IDAgMCAwIDQgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/weight-tilde\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WeightTilde: IconNode = [\n [\n 'path',\n {\n d: 'M6.5 8a2 2 0 0 0-1.906 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8z',\n },\n ],\n ['path', { d: 'M7.999 15a2.5 2.5 0 0 1 4 0 2.5 2.5 0 0 0 4 0' }],\n ['circle', { cx: '12', cy: '5', r: '3' }],\n];\n\nexport default WeightTilde;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wheat-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyMiAxMC0xMCIgLz4KICA8cGF0aCBkPSJtMTYgOC0xLjE3IDEuMTciIC8+CiAgPHBhdGggZD0iTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiIgLz4KICA8cGF0aCBkPSJtOCA4LS41My41M2EzLjUgMy41IDAgMCAwIDAgNC45NEw5IDE1bDEuNTMtMS41M2MuNTUtLjU1Ljg4LTEuMjUuOTgtMS45NyIgLz4KICA8cGF0aCBkPSJNMTAuOTEgNS4yNmMuMTUtLjI2LjM0LS41MS41Ni0uNzNMMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAuMjggNC42MiIgLz4KICA8cGF0aCBkPSJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIiAvPgogIDxwYXRoIGQ9Ik0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiIgLz4KICA8cGF0aCBkPSJtMTYgMTYtLjUzLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDkgMTVsMS41My0xLjUzYTMuNDkgMy40OSAwIDAgMSAxLjk3LS45OCIgLz4KICA8cGF0aCBkPSJNMTguNzQgMTMuMDljLjI2LS4xNS41MS0uMzQuNzMtLjU2TDIxIDExbC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMC00LjYyLS4yOCIgLz4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wheat-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WheatOff: IconNode = [\n ['path', { d: 'm2 22 10-10' }],\n ['path', { d: 'm16 8-1.17 1.17' }],\n [\n 'path',\n { d: 'M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z' },\n ],\n ['path', { d: 'm8 8-.53.53a3.5 3.5 0 0 0 0 4.94L9 15l1.53-1.53c.55-.55.88-1.25.98-1.97' }],\n ['path', { d: 'M10.91 5.26c.15-.26.34-.51.56-.73L13 3l1.53 1.53a3.5 3.5 0 0 1 .28 4.62' }],\n ['path', { d: 'M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z' }],\n [\n 'path',\n {\n d: 'M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z',\n },\n ],\n ['path', { d: 'm16 16-.53.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.49 3.49 0 0 1 1.97-.98' }],\n ['path', { d: 'M18.74 13.09c.26-.15.51-.34.73-.56L21 11l-1.53-1.53a3.5 3.5 0 0 0-4.62-.28' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default WheatOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name weight\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTYuNSA4YTIgMiAwIDAgMC0xLjkwNSAxLjQ2TDIuMSAxOC41QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjkyNS0yLjU0TDE5LjQgOS41QTIgMiAwIDAgMCAxNy40OCA4WiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/weight\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Weight: IconNode = [\n ['circle', { cx: '12', cy: '5', r: '3' }],\n [\n 'path',\n {\n d: 'M6.5 8a2 2 0 0 0-1.905 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8Z',\n },\n ],\n];\n\nexport default Weight;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wheat\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAyMiAxNiA4IiAvPgogIDxwYXRoIGQ9Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoiIC8+CiAgPHBhdGggZD0iTTcuNDcgOC41MyA5IDdsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDkgMTVsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoiIC8+CiAgPHBhdGggZD0iTTExLjQ3IDQuNTMgMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMMTMgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoiIC8+CiAgPHBhdGggZD0iTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiIgLz4KICA8cGF0aCBkPSJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoiIC8+CiAgPHBhdGggZD0iTTE1LjQ3IDEzLjQ3IDE3IDE1bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIiAvPgogIDxwYXRoIGQ9Ik0xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wheat\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wheat: IconNode = [\n ['path', { d: 'M2 22 16 8' }],\n [\n 'path',\n { d: 'M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z' },\n ],\n [\n 'path',\n { d: 'M7.47 8.53 9 7l1.53 1.53a3.5 3.5 0 0 1 0 4.94L9 15l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z' },\n ],\n [\n 'path',\n { d: 'M11.47 4.53 13 3l1.53 1.53a3.5 3.5 0 0 1 0 4.94L13 11l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z' },\n ],\n ['path', { d: 'M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z' }],\n [\n 'path',\n {\n d: 'M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z',\n },\n ],\n [\n 'path',\n {\n d: 'M15.47 13.47 17 15l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z',\n },\n ],\n [\n 'path',\n {\n d: 'M19.47 9.47 21 11l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L13 11l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z',\n },\n ],\n];\n\nexport default Wheat;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name whole-word\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI3IiBjeT0iMTIiIHI9IjMiIC8+CiAgPHBhdGggZD0iTTEwIDl2NiIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjEyIiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xNCA3djgiIC8+CiAgPHBhdGggZD0iTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/whole-word\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WholeWord: IconNode = [\n ['circle', { cx: '7', cy: '12', r: '3' }],\n ['path', { d: 'M10 9v6' }],\n ['circle', { cx: '17', cy: '12', r: '3' }],\n ['path', { d: 'M14 7v8' }],\n ['path', { d: 'M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1' }],\n];\n\nexport default WholeWord;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-cog\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTQuMzA1IDE5LjUzLjkyMy0uMzgyIiAvPgogIDxwYXRoIGQ9Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyIgLz4KICA8cGF0aCBkPSJtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMiIC8+CiAgPHBhdGggZD0ibTE2Ljg1MiAyMC43NzItLjM4My45MjQiIC8+CiAgPHBhdGggZD0ibTE5LjE0OCAxNS4yMjguMzgzLS45MjMiIC8+CiAgPHBhdGggZD0ibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQiIC8+CiAgPHBhdGggZD0iTTIgNy44MmExNSAxNSAwIDAgMSAyMCAwIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIiAvPgogIDxwYXRoIGQ9Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMiIC8+CiAgPHBhdGggZD0iTTUgMTEuODU4YTEwIDEwIDAgMCAxIDExLjUtMS43ODUiIC8+CiAgPHBhdGggZD0iTTguNSAxNS40MjlhNSA1IDAgMCAxIDIuNDEzLTEuMzEiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wifi-cog\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiCog: IconNode = [\n ['path', { d: 'm14.305 19.53.923-.382' }],\n ['path', { d: 'm15.228 16.852-.923-.383' }],\n ['path', { d: 'm16.852 15.228-.383-.923' }],\n ['path', { d: 'm16.852 20.772-.383.924' }],\n ['path', { d: 'm19.148 15.228.383-.923' }],\n ['path', { d: 'm19.53 21.696-.382-.924' }],\n ['path', { d: 'M2 7.82a15 15 0 0 1 20 0' }],\n ['path', { d: 'm20.772 16.852.924-.383' }],\n ['path', { d: 'm20.772 19.148.924.383' }],\n ['path', { d: 'M5 11.858a10 10 0 0 1 11.5-1.785' }],\n ['path', { d: 'M8.5 15.429a5 5 0 0 1 2.413-1.31' }],\n ['circle', { cx: '18', cy: '18', r: '3' }],\n];\n\nexport default WifiCog;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-high\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxNCAwIiAvPgogIDxwYXRoIGQ9Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wifi-high\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiHigh: IconNode = [\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M5 12.859a10 10 0 0 1 14 0' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 7 0' }],\n];\n\nexport default WifiHigh;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-low\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wifi-low\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiLow: IconNode = [\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 7 0' }],\n];\n\nexport default WifiLow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAiIC8+CiAgPHBhdGggZD0iTTUgMTIuODU5YTEwIDEwIDAgMCAxIDUuMTctMi42OSIgLz4KICA8cGF0aCBkPSJNMTkgMTIuODU5YTEwIDEwIDAgMCAwLTIuMDA3LTEuNTIzIiAvPgogIDxwYXRoIGQ9Ik0yIDguODJhMTUgMTUgMCAwIDEgNC4xNzctMi42NDMiIC8+CiAgPHBhdGggZD0iTTIyIDguODJhMTUgMTUgMCAwIDAtMTEuMjg4LTMuNzY0IiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wifi-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiOff: IconNode = [\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 7 0' }],\n ['path', { d: 'M5 12.859a10 10 0 0 1 5.17-2.69' }],\n ['path', { d: 'M19 12.859a10 10 0 0 0-2.007-1.523' }],\n ['path', { d: 'M2 8.82a15 15 0 0 1 4.177-2.643' }],\n ['path', { d: 'M22 8.82a15 15 0 0 0-11.288-3.764' }],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default WifiOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-pen\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAiIC8+CiAgPHBhdGggZD0iTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiIgLz4KICA8cGF0aCBkPSJNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTAuNS0yLjIyMiIgLz4KICA8cGF0aCBkPSJNOC41IDE2LjQyOWE1IDUgMCAwIDEgMy0xLjQwNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/wifi-pen\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiPen: IconNode = [\n ['path', { d: 'M2 8.82a15 15 0 0 1 20 0' }],\n [\n 'path',\n {\n d: 'M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z',\n },\n ],\n ['path', { d: 'M5 12.859a10 10 0 0 1 10.5-2.222' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 3-1.406' }],\n];\n\nexport default WifiPen;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-sync\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuOTY1IDEwLjEwNXY0TDEzLjUgMTIuNWE1IDUgMCAwIDEgOCAxLjUiIC8+CiAgPHBhdGggZD0iTTExLjk2NSAxNC4xMDVoNCIgLz4KICA8cGF0aCBkPSJNMTcuOTY1IDE4LjEwNWg0TDIwLjQzIDE5LjcxYTUgNSAwIDAgMS04LTEuNSIgLz4KICA8cGF0aCBkPSJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAiIC8+CiAgPHBhdGggZD0iTTIxLjk2NSAyMi4xMDV2LTQiIC8+CiAgPHBhdGggZD0iTTUgMTIuODZhMTAgMTAgMCAwIDEgMy0yLjAzMiIgLz4KICA8cGF0aCBkPSJNOC41IDE2LjQyOWguMDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wifi-sync\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiSync: IconNode = [\n ['path', { d: 'M11.965 10.105v4L13.5 12.5a5 5 0 0 1 8 1.5' }],\n ['path', { d: 'M11.965 14.105h4' }],\n ['path', { d: 'M17.965 18.105h4L20.43 19.71a5 5 0 0 1-8-1.5' }],\n ['path', { d: 'M2 8.82a15 15 0 0 1 20 0' }],\n ['path', { d: 'M21.965 22.105v-4' }],\n ['path', { d: 'M5 12.86a10 10 0 0 1 3-2.032' }],\n ['path', { d: 'M8.5 16.429h.01' }],\n];\n\nexport default WifiSync;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi-zero\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wifi-zero\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WifiZero: IconNode = [['path', { d: 'M12 20h.01' }]];\n\nexport default WifiZero;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wifi\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCIgLz4KICA8cGF0aCBkPSJNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTQgMCIgLz4KICA8cGF0aCBkPSJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wifi\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wifi: IconNode = [\n ['path', { d: 'M12 20h.01' }],\n ['path', { d: 'M2 8.82a15 15 0 0 1 20 0' }],\n ['path', { d: 'M5 12.859a10 10 0 0 1 14 0' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 7 0' }],\n];\n\nexport default Wifi;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wind-arrow-down\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMnY4IiAvPgogIDxwYXRoIGQ9Ik0xMi44IDIxLjZBMiAyIDAgMSAwIDE0IDE4SDIiIC8+CiAgPHBhdGggZD0iTTE3LjUgMTBhMi41IDIuNSAwIDEgMSAyIDRIMiIgLz4KICA8cGF0aCBkPSJtNiA2IDQgNCA0LTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/wind-arrow-down\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WindArrowDown: IconNode = [\n ['path', { d: 'M10 2v8' }],\n ['path', { d: 'M12.8 21.6A2 2 0 1 0 14 18H2' }],\n ['path', { d: 'M17.5 10a2.5 2.5 0 1 1 2 4H2' }],\n ['path', { d: 'm6 6 4 4 4-4' }],\n];\n\nexport default WindArrowDown;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wind\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuOCAxOS42QTIgMiAwIDEgMCAxNCAxNkgyIiAvPgogIDxwYXRoIGQ9Ik0xNy41IDhhMi41IDIuNSAwIDEgMSAyIDRIMiIgLz4KICA8cGF0aCBkPSJNOS44IDQuNEEyIDIgMCAxIDEgMTEgOEgyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wind\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wind: IconNode = [\n ['path', { d: 'M12.8 19.6A2 2 0 1 0 14 16H2' }],\n ['path', { d: 'M17.5 8a2.5 2.5 0 1 1 2 4H2' }],\n ['path', { d: 'M9.8 4.4A2 2 0 1 1 11 8H2' }],\n];\n\nexport default Wind;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wine\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyMmg4IiAvPgogIDxwYXRoIGQ9Ik03IDEwaDEwIiAvPgogIDxwYXRoIGQ9Ik0xMiAxNXY3IiAvPgogIDxwYXRoIGQ9Ik0xMiAxNWE1IDUgMCAwIDAgNS01YzAtMi0uNS00LTItOEg5Yy0xLjUgNC0yIDYtMiA4YTUgNSAwIDAgMCA1IDVaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wine\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wine: IconNode = [\n ['path', { d: 'M8 22h8' }],\n ['path', { d: 'M7 10h10' }],\n ['path', { d: 'M12 15v7' }],\n ['path', { d: 'M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z' }],\n];\n\nexport default Wine;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name workflow\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4PSIzIiB5PSIzIiByeD0iMiIgLz4KICA8cGF0aCBkPSJNNyAxMXY0YTIgMiAwIDAgMCAyIDJoNCIgLz4KICA8cmVjdCB3aWR0aD0iOCIgaGVpZ2h0PSI4IiB4PSIxMyIgeT0iMTMiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/workflow\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Workflow: IconNode = [\n ['rect', { width: '8', height: '8', x: '3', y: '3', rx: '2' }],\n ['path', { d: 'M7 11v4a2 2 0 0 0 2 2h4' }],\n ['rect', { width: '8', height: '8', x: '13', y: '13', rx: '2' }],\n];\n\nexport default Workflow;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wine-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAyMmg4IiAvPgogIDxwYXRoIGQ9Ik03IDEwaDNtNyAwaC0xLjM0MyIgLz4KICA8cGF0aCBkPSJNMTIgMTV2NyIgLz4KICA8cGF0aCBkPSJNNy4zMDcgNy4zMDdBMTIuMzMgMTIuMzMgMCAwIDAgNyAxMGE1IDUgMCAwIDAgNy4zOTEgNC4zOTFNOC42MzggMi45ODFDOC43NSAyLjY2OCA4Ljg3MiAyLjM0IDkgMmg2YzEuNSA0IDIgNiAyIDggMCAuNDA3LS4wNS44MDktLjE0NSAxLjE5OCIgLz4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wine-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst WineOff: IconNode = [\n ['path', { d: 'M8 22h8' }],\n ['path', { d: 'M7 10h3m7 0h-1.343' }],\n ['path', { d: 'M12 15v7' }],\n [\n 'path',\n {\n d: 'M7.307 7.307A12.33 12.33 0 0 0 7 10a5 5 0 0 0 7.391 4.391M8.638 2.981C8.75 2.668 8.872 2.34 9 2h6c1.5 4 2 6 2 8 0 .407-.05.809-.145 1.198',\n },\n ],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22' }],\n];\n\nexport default WineOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name worm\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTkgMTItMS41IDMiIC8+CiAgPHBhdGggZD0iTTE5LjYzIDE4LjgxIDIyIDIwIiAvPgogIDxwYXRoIGQ9Ik02LjQ3IDguMjNhMS42OCAxLjY4IDAgMCAxIDIuNDQgMS45M2wtLjY0IDIuMDhhNi43NiA2Ljc2IDAgMCAwIDEwLjE2IDcuNjdsLjQyLS4yN2ExIDEgMCAxIDAtMi43My00LjIxbC0uNDIuMjdhMS43NiAxLjc2IDAgMCAxLTIuNjMtMS45OWwuNjQtMi4wOEE2LjY2IDYuNjYgMCAwIDAgMy45NCAzLjlsLS43LjRhMSAxIDAgMSAwIDIuNTUgNC4zNHoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/worm\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Worm: IconNode = [\n ['path', { d: 'm19 12-1.5 3' }],\n ['path', { d: 'M19.63 18.81 22 20' }],\n [\n 'path',\n {\n d: 'M6.47 8.23a1.68 1.68 0 0 1 2.44 1.93l-.64 2.08a6.76 6.76 0 0 0 10.16 7.67l.42-.27a1 1 0 1 0-2.73-4.21l-.42.27a1.76 1.76 0 0 1-2.63-1.99l.64-2.08A6.66 6.66 0 0 0 3.94 3.9l-.7.4a1 1 0 1 0 2.55 4.34z',\n },\n ],\n];\n\nexport default Worm;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name x\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst X: IconNode = [\n ['path', { d: 'M18 6 6 18' }],\n ['path', { d: 'm6 6 12 12' }],\n];\n\nexport default X;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name youtube\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi41IDE3YTI0LjEyIDI0LjEyIDAgMCAxIDAtMTAgMiAyIDAgMCAxIDEuNC0xLjQgNDkuNTYgNDkuNTYgMCAwIDEgMTYuMiAwQTIgMiAwIDAgMSAyMS41IDdhMjQuMTIgMjQuMTIgMCAwIDEgMCAxMCAyIDIgMCAwIDEtMS40IDEuNCA0OS41NSA0OS41NSAwIDAgMS0xNi4yIDBBMiAyIDAgMCAxIDIuNSAxNyIgLz4KICA8cGF0aCBkPSJtMTAgMTUgNS0zLTUtM3oiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/youtube\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=youtube instead. This icon will be removed in v1.0\n */\nconst Youtube: IconNode = [\n [\n 'path',\n {\n d: 'M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17',\n },\n ],\n ['path', { d: 'm10 15 5-3-5-3z' }],\n];\n\nexport default Youtube;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name wrench\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuMTA2LTMuMTA1Yy4zMi0uMzIyLjg2My0uMjIuOTgzLjIxOGE2IDYgMCAwIDEtOC4yNTkgNy4wNTdsLTcuOTEgNy45MWExIDEgMCAwIDEtMi45OTktM2w3LjkxLTcuOTFhNiA2IDAgMCAxIDcuMDU3LTguMjU5Yy40MzguMTIuNTQuNjYyLjIxOS45ODR6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wrench\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Wrench: IconNode = [\n [\n 'path',\n {\n d: 'M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z',\n },\n ],\n];\n\nexport default Wrench;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name zap-off\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNTEzIDQuODU2IDEzLjEyIDIuMTdhLjUuNSAwIDAgMSAuODYuNDZsLTEuMzc3IDQuMzE3IiAvPgogIDxwYXRoIGQ9Ik0xNS42NTYgMTBIMjBhMSAxIDAgMCAxIC43OCAxLjYzbC0xLjcyIDEuNzczIiAvPgogIDxwYXRoIGQ9Ik0xNi4yNzMgMTYuMjczIDEwLjg4IDIxLjgzYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0SDRhMSAxIDAgMCAxLS43OC0xLjYzbDQuNTA3LTQuNjQzIiAvPgogIDxwYXRoIGQ9Im0yIDIgMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/zap-off\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ZapOff: IconNode = [\n ['path', { d: 'M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317' }],\n ['path', { d: 'M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773' }],\n [\n 'path',\n {\n d: 'M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643',\n },\n ],\n ['path', { d: 'm2 2 20 20' }],\n];\n\nexport default ZapOff;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name zap\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zap\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst Zap: IconNode = [\n [\n 'path',\n {\n d: 'M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z',\n },\n ],\n];\n\nexport default Zap;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name zoom-out\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxsaW5lIHgxPSIyMSIgeDI9IjE2LjY1IiB5MT0iMjEiIHkyPSIxNi42NSIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjE0IiB5MT0iMTEiIHkyPSIxMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zoom-out\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ZoomOut: IconNode = [\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['line', { x1: '21', x2: '16.65', y1: '21', y2: '16.65' }],\n ['line', { x1: '8', x2: '14', y1: '11', y2: '11' }],\n];\n\nexport default ZoomOut;\n", "import defaultAttributes from '../defaultAttributes';\nimport type { IconNode } from '../types';\n\n/**\n * @name zoom-in\n * @description Lucide SVG icon node.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxsaW5lIHgxPSIyMSIgeDI9IjE2LjY1IiB5MT0iMjEiIHkyPSIxNi42NSIgLz4KICA8bGluZSB4MT0iMTEiIHgyPSIxMSIgeTE9IjgiIHkyPSIxNCIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjE0IiB5MT0iMTEiIHkyPSIxMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zoom-in\n * @see https://lucide.dev/guide/packages/lucide - Documentation\n *\n * @returns {Array}\n *\n */\nconst ZoomIn: IconNode = [\n ['circle', { cx: '11', cy: '11', r: '8' }],\n ['line', { x1: '21', x2: '16.65', y1: '21', y2: '16.65' }],\n ['line', { x1: '11', x2: '11', y1: '8', y2: '14' }],\n ['line', { x1: '8', x2: '14', y1: '11', y2: '11' }],\n];\n\nexport default ZoomIn;\n", "import replaceElement from './replaceElement';\nimport * as iconAndAliases from './iconsAndAliases';\nimport { Icons, SVGProps } from './types';\n\nexport interface CreateIconsOptions {\n icons?: Icons;\n nameAttr?: string;\n attrs?: SVGProps;\n root?: Element | Document | DocumentFragment;\n inTemplates?: boolean;\n}\n\n/**\n * Replaces all elements with matching nameAttr with the defined icons\n * @param {CreateIconsOptions} options\n */\nconst createIcons = ({\n icons = {},\n nameAttr = 'data-lucide',\n attrs = {},\n root = document,\n inTemplates,\n}: CreateIconsOptions = {}) => {\n if (!Object.values(icons).length) {\n throw new Error(\n \"Please provide an icons object.\\nIf you want to use all the icons you can import it like:\\n `import { createIcons, icons } from 'lucide';\\nlucide.createIcons({icons});`\",\n );\n }\n\n if (typeof root === 'undefined') {\n throw new Error('`createIcons()` only works in a browser environment.');\n }\n\n const elementsToReplace = Array.from(root.querySelectorAll(`[${nameAttr}]`));\n\n elementsToReplace.forEach((element) => replaceElement(element, { nameAttr, icons, attrs }));\n\n if (inTemplates) {\n const templates = Array.from(root.querySelectorAll('template'));\n\n templates.forEach((template) =>\n createIcons({\n icons,\n nameAttr,\n attrs,\n root: template.content,\n inTemplates,\n }),\n );\n }\n\n /** @todo: remove this block in v1.0 */\n if (nameAttr === 'data-lucide') {\n const deprecatedElements = root.querySelectorAll('[icon-name]');\n if (deprecatedElements.length > 0) {\n console.warn(\n '[Lucide] Some icons were found with the now deprecated icon-name attribute. These will still be replaced for backwards compatibility, but will no longer be supported in v1.0 and you should switch to data-lucide',\n );\n Array.from(deprecatedElements).forEach((element) =>\n replaceElement(element, { nameAttr: 'icon-name', icons, attrs }),\n );\n }\n }\n};\n\nexport { createIcons };\n\n/*\n Create Element function export.\n*/\nexport { default as createElement } from './createElement';\n\n/*\n Icons exports.\n*/\nexport { iconAndAliases as icons };\nexport * from './icons';\nexport * from './aliases';\n\n/*\n Types exports.\n*/\nexport * from './types';\n", "import { html } from '@design.estate/dees-element';\nimport { icons, type IconWithPrefix } from '../dees-icon/dees-icon.js';\nimport * as lucideIcons from 'lucide';\n\nexport const demoFunc = () => {\n // Group FontAwesome icons by type\n const faIcons = Object.keys(icons.fa);\n \n // Extract Lucide icons from the lucideIcons object directly\n // Log the first few keys to understand the structure\n console.log('First few Lucide keys:', Object.keys(lucideIcons).slice(0, 5));\n \n // Get all icon functions from lucideIcons (they have PascalCase names)\n const lucideIconsList = Object.keys(lucideIcons)\n .filter(key => {\n // Skip utility functions and focus on icon components (first letter is uppercase)\n const isUppercaseFirst = key[0] === key[0].toUpperCase() && key[0] !== key[0].toLowerCase();\n const isFunction = typeof lucideIcons[key] === 'function';\n const notUtility = !['createElement', 'createIcons', 'default'].includes(key);\n return isFunction && isUppercaseFirst && notUtility;\n })\n .map(pascalName => {\n // Convert PascalCase to camelCase\n return pascalName.charAt(0).toLowerCase() + pascalName.slice(1);\n });\n \n // Log how many icons we found\n console.log(`Found ${lucideIconsList.length} Lucide icons`);\n \n // If we didn't find any, try an alternative approach\n if (lucideIconsList.length === 0) {\n console.log('Trying alternative approach to find Lucide icons');\n \n // Try to get icon names from a known property if available\n if (lucideIcons.icons) {\n const iconSource = lucideIcons.icons || {};\n lucideIconsList.push(...Object.keys(iconSource));\n console.log(`Found ${lucideIconsList.length} icons via alternative method`);\n }\n }\n\n // Define the functions in TS scope instead of script tags\n const copyAllIconNames = () => {\n // Generate complete list of all icon names with prefixes\n const faIconsList = faIcons.map(name => `fa:${name}`);\n const lucideIconsListPrefixed = lucideIconsList.map(name => `lucide:${name}`);\n const allIcons = [...faIconsList, ...lucideIconsListPrefixed];\n const textToCopy = allIcons.join('\\n');\n \n navigator.clipboard.writeText(textToCopy).then(() => {\n // Show feedback\n const currentEvent = window.event as MouseEvent;\n const button = currentEvent.currentTarget as HTMLElement;\n const originalText = button.textContent;\n button.textContent = `\u2713 Copied ${allIcons.length} icon names!`;\n \n setTimeout(() => {\n button.textContent = originalText;\n }, 2000);\n });\n };\n \n const searchIcons = (event: InputEvent) => {\n const searchTerm = (event.target as HTMLInputElement).value.toLowerCase().trim();\n // Get the demo container first, then search within it\n const demoContainer = (event.target as HTMLElement).closest('.demoContainer');\n const containers = demoContainer.querySelectorAll('.iconContainer');\n \n containers.forEach(container => {\n const iconName = container.getAttribute('data-name');\n \n if (searchTerm === '') {\n container.classList.remove('hidden');\n } else if (iconName && iconName.includes(searchTerm)) {\n container.classList.remove('hidden');\n } else {\n container.classList.add('hidden');\n }\n });\n \n // Update counts - search within demoContainer\n demoContainer.querySelectorAll('.section-container').forEach(section => {\n const visibleIcons = section.querySelectorAll('.iconContainer:not(.hidden)').length;\n const countElement = section.querySelector('.icon-count');\n if (countElement) {\n const totalIconsCount = section.classList.contains('fa-section') \n ? faIcons.length \n : lucideIconsList.length;\n \n countElement.textContent = visibleIcons === totalIconsCount \n ? `${totalIconsCount} icons` \n : `${visibleIcons} of ${totalIconsCount} icons`;\n }\n });\n };\n \n const copyIconName = (iconNameToCopy: string, type: 'fa' | 'lucide') => {\n // Use the new prefix format\n const textToCopy = `${type}:${iconNameToCopy}`;\n \n navigator.clipboard.writeText(textToCopy).then(() => {\n // Find the event target\n const currentEvent = window.event as MouseEvent;\n const currentTarget = currentEvent.currentTarget as HTMLElement;\n // Show feedback\n const tooltip = currentTarget.querySelector('.copy-tooltip');\n if (tooltip) {\n tooltip.textContent = 'Copied!';\n \n setTimeout(() => {\n tooltip.textContent = 'Click to copy';\n }, 2000);\n }\n });\n };\n\n return html`\n \n \n
      \n
      \n \n \n
      \n \n
      \n New API: Use icon=\"fa:iconName\" or icon=\"lucide:iconName\" instead of iconFA. \n Click any icon to copy its new format to clipboard.\n
      \n \n
      \n
      \n FontAwesome Icons\n ${faIcons.length} icons\n
      \n
      \n ${faIcons.map(\n (iconName) => {\n const prefixedName = `fa:${iconName}`;\n return html`\n
      copyIconName(iconName, 'fa')}>\n \n
      fa:${iconName}
      \n Click to copy\n
      \n `;\n }\n )}\n
      \n
      \n\n
      \n
      \n Lucide Icons\n ${lucideIconsList.length} icons\n
      \n
      \n ${lucideIconsList.map(\n (iconName) => {\n const prefixedName = `lucide:${iconName}`;\n return html`\n
      copyIconName(iconName, 'lucide')}>\n \n
      lucide:${iconName}
      \n Click to copy\n
      \n `;\n }\n )}\n
      \n
      \n
      \n `;\n};\n", "import {\n DeesElement,\n html,\n property,\n customElement,\n cssManager,\n css,\n type CSSResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nimport { icon, type IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport {\n faFacebook,\n faGoogle,\n faLinkedin,\n faMedium,\n faSlackHash,\n faTwitter,\n faInstagram,\n faTiktok,\n} from '@fortawesome/free-brands-svg-icons';\n\nimport {\n faCopy as faCopyRegular,\n faCircleCheck as faCircleCheckRegular,\n faCircleXmark as faCircleXmarkRegular,\n faMessage as faMessageRegular,\n faPaste as faPasteRegular,\n faSun as faSunRegular,\n faTrashCan as faTrashCanRegular,\n} from '@fortawesome/free-regular-svg-icons';\nimport {\n faArrowRight as faArrowRightSolid,\n faArrowUpRightFromSquare as faArrowUpRightFromSquareSolid,\n faBell as faBellSolid,\n faBug as faBugSolid,\n faBuilding as faBuildingSolid,\n faCaretLeft as faCaretLeftSolid,\n faCaretRight as faCaretRightSolid,\n faCheck as faCheckSolid,\n faCircleInfo as faCircleInfoSolid,\n faCircleCheck as faCircleCheckSolid,\n faCircleXmark as faCircleXmarkSolid,\n faClockRotateLeft as faClockRotateLeftSolid,\n faCopy as faCopySolid,\n faDesktop as faDesktopSolid,\n faEye as faEyeSolid,\n faEyeSlash as faEyeSlashSolid,\n faFileInvoice as faFileInvoiceSolid,\n faFileInvoiceDollar as faFileInvoiceDollarSolid,\n faGear as faGearSolid,\n faGrip as faGripSolid,\n faMagnifyingGlass as faMagnifyingGlassSolid,\n faMessage as faMessageSolid,\n faMoneyCheckDollar as faMoneyCheckDollarSolid,\n faMugHot as faMugHotSolid,\n faMinus as faMinusSolid,\n faNetworkWired as faNetworkWiredSolid,\n faPaperclip as faPaperclipSolid,\n faPaste as faPasteSolid,\n faPenToSquare as faPenToSquareSolid,\n faPlus as faPlusSolid,\n faReceipt as faReceiptSolid,\n faRss as faRssSolid,\n faUsers as faUsersSolid,\n faShare as faShareSolid,\n faSun as faSunSolid,\n faTerminal as faTerminalSolid,\n faTrash as faTrashSolid,\n faTrashCan as faTrashCanSolid,\n faWallet as faWalletSolid,\n faXmark as faXmarkSolid,\n} from '@fortawesome/free-solid-svg-icons';\nimport { demoFunc } from './dees-icon.demo.js';\n\n// Import Lucide icons and the createElement function\nimport * as lucideIcons from 'lucide';\nimport { createElement } from 'lucide';\n\n// Collect FontAwesome icons\nconst faIcons = {\n // normal\n arrowRight: faArrowRightSolid,\n arrowUpRightFromSquare: faArrowUpRightFromSquareSolid,\n bell: faBellSolid,\n bug: faBugSolid,\n building: faBuildingSolid,\n caretLeft: faCaretLeftSolid,\n caretRight: faCaretRightSolid,\n check: faCheckSolid,\n circleInfo: faCircleInfoSolid,\n circleCheck: faCircleCheckRegular,\n circleCheckSolid: faCircleCheckSolid,\n circleXmark: faCircleXmarkRegular,\n circleXmarkSolid: faCircleXmarkSolid,\n clockRotateLeft: faClockRotateLeftSolid,\n copy: faCopyRegular,\n copySolid: faCopySolid,\n desktop: faDesktopSolid,\n eye: faEyeSolid,\n eyeSlash: faEyeSlashSolid,\n fileInvoice: faFileInvoiceSolid,\n fileInvoiceDoller: faFileInvoiceDollarSolid,\n gear: faGearSolid,\n grip: faGripSolid,\n magnifyingGlass: faMagnifyingGlassSolid,\n message: faMessageRegular,\n messageSolid: faMessageSolid,\n moneyCheckDollar: faMoneyCheckDollarSolid,\n mugHot: faMugHotSolid,\n minus: faMinusSolid,\n networkWired: faNetworkWiredSolid,\n paperclip: faPaperclipSolid,\n paste: faPasteRegular,\n pasteSolid: faPasteSolid,\n penToSquare: faPenToSquareSolid,\n plus: faPlusSolid,\n receipt: faReceiptSolid,\n rss: faRssSolid,\n share: faShareSolid,\n sun: faSunRegular,\n sunSolid: faSunSolid,\n terminal: faTerminalSolid,\n trash: faTrashSolid,\n trashSolid: faTrashSolid,\n trashCan: faTrashCanRegular,\n trashCanSolid: faTrashCanSolid,\n users: faUsersSolid,\n wallet: faWalletSolid,\n xmark: faXmarkSolid,\n // brands\n facebook: faFacebook,\n google: faGoogle,\n instagram: faInstagram,\n linkedin: faLinkedin,\n medium: faMedium,\n slack: faSlackHash,\n tiktok: faTiktok,\n twitter: faTwitter,\n};\n\n// Create a string literal type for all FA icons\ntype FAIconKey = keyof typeof faIcons;\n\n// Create union types for the icons with prefixes\nexport type IconWithPrefix = `fa:${FAIconKey}` | `lucide:${string}`;\n\n// Export only FontAwesome icons directly\nexport const icons = {\n fa: faIcons\n};\n\n// Legacy type for backward compatibility\nexport type TIconKey = FAIconKey | `lucide:${string}`;\n\n// Use a global static cache for all icons to reduce rendering\nconst iconCache = new Map();\n\n// Clear cache items occasionally to prevent memory leaks \nconst MAX_CACHE_SIZE = 500;\nfunction limitCacheSize() {\n if (iconCache.size > MAX_CACHE_SIZE) {\n // Remove oldest entries (first 20% of items)\n const keysToDelete = Array.from(iconCache.keys()).slice(0, MAX_CACHE_SIZE / 5);\n keysToDelete.forEach(key => iconCache.delete(key));\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-icon': DeesIcon;\n }\n}\n\n@customElement('dees-icon')\nexport class DeesIcon extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n /**\n * @deprecated Use the `icon` property instead with format \"fa:iconName\" or \"lucide:iconName\"\n */\n @property({\n type: String,\n converter: {\n // Convert attribute string to property (for reflected attributes)\n fromAttribute: (value: string): TIconKey => value as TIconKey,\n // Convert property to attribute (for reflection)\n toAttribute: (value: TIconKey): string => value\n }\n })\n accessor iconFA: TIconKey | undefined = undefined;\n\n /**\n * The preferred icon property. Use format \"fa:iconName\" or \"lucide:iconName\"\n * Examples: \"fa:check\", \"lucide:menu\"\n */\n @property({\n type: String,\n converter: {\n fromAttribute: (value: string): IconWithPrefix => value as IconWithPrefix,\n toAttribute: (value: IconWithPrefix): string => value\n }\n })\n accessor icon: IconWithPrefix | undefined = undefined;\n\n @property({ type: Number })\n accessor iconSize: number;\n\n @property({ type: String })\n accessor color: string = 'currentColor';\n\n @property({ type: Number })\n accessor strokeWidth: number = 2;\n\n // For tracking when we need to re-render\n private lastIcon: IconWithPrefix | TIconKey | null = null;\n private lastIconSize: number | null = null;\n private lastColor: string | null = null;\n private lastStrokeWidth: number | null = null;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n /**\n * Gets the effective icon value, supporting both the new `icon` property\n * and the legacy `iconFA` property for backward compatibility.\n * Prefers `icon` if both are set.\n */\n private getEffectiveIcon(): IconWithPrefix | TIconKey | null {\n // Prefer the new API\n if (this.icon) {\n return this.icon;\n }\n \n // Fall back to the old API\n if (this.iconFA) {\n // If iconFA is already in the proper format (lucide:name), use it directly\n if (this.iconFA.startsWith('lucide:')) {\n return this.iconFA;\n }\n \n // For FontAwesome icons with no prefix, add the prefix\n return `fa:${this.iconFA}` as IconWithPrefix;\n }\n \n return null;\n }\n \n /**\n * Parses an icon string into its type and name parts\n * @param iconStr The icon string in format \"type:name\"\n * @returns Object with type and name properties\n */\n private parseIconString(iconStr: string): { type: 'fa' | 'lucide', name: string } {\n const lowerStr = iconStr.toLowerCase();\n if (lowerStr.startsWith('fa:')) {\n return {\n type: 'fa',\n name: iconStr.substring(3) // Remove 'fa:' prefix\n };\n } else if (lowerStr.startsWith('lucide:')) {\n return {\n type: 'lucide',\n name: iconStr.substring(7) // Remove 'lucide:' prefix\n };\n } else {\n // Default to Lucide when no prefix is provided\n return {\n type: 'lucide',\n name: iconStr\n };\n }\n }\n\n private renderLucideIcon(iconName: string): string {\n // Create a cache key based on all visual properties\n const cacheKey = `lucide:${iconName}:${this.iconSize}:${this.color}:${this.strokeWidth}`;\n \n // Check if we already have this icon in the cache\n if (iconCache.has(cacheKey)) {\n return iconCache.get(cacheKey) || '';\n }\n\n try {\n // Get the Pascal case icon name (Menu instead of menu)\n const pascalCaseName = iconName.charAt(0).toUpperCase() + iconName.slice(1);\n \n // Check if the icon exists in lucideIcons\n if (!lucideIcons[pascalCaseName]) {\n console.warn(`Lucide icon '${pascalCaseName}' not found in lucideIcons object`);\n return '';\n }\n \n // Use the exact pattern from Lucide documentation\n const svgElement = createElement(lucideIcons[pascalCaseName], {\n color: this.color,\n size: this.iconSize,\n strokeWidth: this.strokeWidth\n });\n \n if (!svgElement) {\n console.warn(`createElement returned empty result for ${pascalCaseName}`);\n return '';\n }\n \n // Get the HTML\n const result = svgElement.outerHTML;\n \n // Cache the result for future use\n iconCache.set(cacheKey, result);\n limitCacheSize();\n \n return result;\n } catch (error) {\n console.error(`Error rendering Lucide icon ${iconName}:`, error);\n \n // Create a fallback SVG with the icon name\n return `\n ${iconName}\n `;\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n vertical-align: middle;\n }\n\n /* Improve rendering performance */\n #iconContainer svg {\n display: block;\n height: 100%;\n width: 100%;\n will-change: transform; /* Helps with animations */\n contain: strict; /* Performance optimization */\n }\n `,\n ];\n\n public render() {\n return html`\n ${domtools.elementBasic.styles}\n \n
      \n `;\n }\n\n public updated() {\n // If size is not specified, use font size as a base\n if (!this.iconSize) {\n this.iconSize = parseInt(globalThis.getComputedStyle(this).fontSize.replace(/\\D/g,''));\n }\n \n // Get the effective icon (either from icon or iconFA property)\n const effectiveIcon = this.getEffectiveIcon();\n \n // Check if we actually need to update the icon\n // This prevents unnecessary DOM operations when properties haven't changed\n if (this.lastIcon === effectiveIcon && \n this.lastIconSize === this.iconSize && \n this.lastColor === this.color && \n this.lastStrokeWidth === this.strokeWidth) {\n return; // No visual changes - skip update\n }\n \n // Update our \"last properties\" for future change detection\n this.lastIcon = effectiveIcon;\n this.lastIconSize = this.iconSize;\n this.lastColor = this.color;\n this.lastStrokeWidth = this.strokeWidth;\n \n const container = this.shadowRoot?.querySelector('#iconContainer');\n if (!container || !effectiveIcon) return;\n\n try {\n // Parse the icon string to get type and name\n const { type, name } = this.parseIconString(effectiveIcon);\n \n if (type === 'lucide') {\n // For Lucide, use direct DOM manipulation as shown in the docs\n // This approach avoids HTML string issues\n container.innerHTML = ''; // Clear container\n \n try {\n // Convert to PascalCase\n const pascalCaseName = name.charAt(0).toUpperCase() + name.slice(1);\n \n if (lucideIcons[pascalCaseName]) {\n // Use the documented pattern from Lucide docs\n const svgElement = createElement(lucideIcons[pascalCaseName], {\n color: this.color,\n size: this.iconSize,\n strokeWidth: this.strokeWidth\n });\n \n if (svgElement) {\n // Directly append the element\n container.appendChild(svgElement);\n return; // Exit early since we've added the element\n }\n }\n \n // If we reach here, something went wrong\n throw new Error(`Could not create element for ${pascalCaseName}`);\n } catch (error) {\n console.error(`Error rendering Lucide icon:`, error);\n \n // Fall back to the string-based approach\n const iconHtml = this.renderLucideIcon(name);\n if (iconHtml) {\n container.innerHTML = iconHtml;\n }\n }\n } else {\n // Use FontAwesome rendering via HTML string\n const faIcon = icons.fa[name as FAIconKey];\n if (faIcon) {\n const iconHtml = icon(faIcon).html[0];\n container.innerHTML = iconHtml;\n } else {\n console.warn(`FontAwesome icon not found: ${name}`);\n }\n }\n } catch (error) {\n console.error(`Error updating icon ${effectiveIcon}:`, error);\n }\n }\n\n // Clean up resources when element is removed\n async disconnectedCallback() {\n super.disconnectedCallback();\n \n // Clear our references\n this.lastIcon = null;\n this.lastIconSize = null;\n this.lastColor = null;\n this.lastStrokeWidth = null;\n }\n}", "import * as plugins from '../../00plugins.js';\nimport { demoFunc } from './dees-contextmenu.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesWindowLayer } from '../dees-windowlayer/dees-windowlayer.js';\nimport { zIndexLayers } from '../../00zindex.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-contextmenu': DeesContextmenu;\n }\n}\n\n@customElement('dees-contextmenu')\nexport class DeesContextmenu extends DeesElement {\n // DEMO\n public static demo = demoFunc\n public static demoGroups = ['Overlay'];\n\n // STATIC\n // This will store all the accumulated menu items\n public static contextMenuDeactivated = false;\n public static accumulatedMenuItems: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean; submenu?: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean } | { divider: true })[] } | { divider: true })[] = [];\n\n // Add a global event listener for the right-click context menu\n public static initializeGlobalListener() {\n document.addEventListener('contextmenu', (event: MouseEvent) => {\n if (this.contextMenuDeactivated) {\n return;\n }\n event.preventDefault();\n\n // Clear previously accumulated items\n DeesContextmenu.accumulatedMenuItems = [];\n\n // Use composedPath to properly traverse shadow DOM boundaries\n const path = event.composedPath();\n \n // Traverse the composed path to accumulate menu items\n for (const element of path) {\n if ((element as any).getContextMenuItems) {\n const items = (element as any).getContextMenuItems();\n if (items && items.length > 0) {\n if (DeesContextmenu.accumulatedMenuItems.length > 0) {\n DeesContextmenu.accumulatedMenuItems.push({ divider: true });\n }\n DeesContextmenu.accumulatedMenuItems.push(...items);\n }\n }\n }\n\n // Open the context menu with the accumulated items\n DeesContextmenu.openContextMenuWithOptions(event, DeesContextmenu.accumulatedMenuItems);\n });\n }\n\n // allows opening of a contextmenu with options\n public static async openContextMenuWithOptions(eventArg: MouseEvent, menuItemsArg: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean; submenu?: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean } | { divider: true })[] } | { divider: true })[]) {\n if (this.contextMenuDeactivated) {\n return;\n }\n eventArg.preventDefault();\n eventArg.stopPropagation();\n const contextMenu = new DeesContextmenu();\n contextMenu.style.position = 'fixed';\n contextMenu.style.zIndex = String(zIndexLayers.overlay.contextMenu);\n contextMenu.style.opacity = '0';\n contextMenu.style.transform = 'scale(0.95) translateY(-10px)';\n contextMenu.menuItems = menuItemsArg;\n contextMenu.windowLayer = await DeesWindowLayer.createAndShow();\n contextMenu.windowLayer.addEventListener('click', async (event) => {\n // Check if click is on the context menu or its submenus\n const clickedElement = event.target as HTMLElement;\n const isContextMenu = clickedElement.closest('dees-contextmenu');\n if (!isContextMenu) {\n await contextMenu.destroy();\n }\n })\n document.body.append(contextMenu);\n \n // Get dimensions after adding to DOM\n await domtools.plugins.smartdelay.delayFor(0);\n const rect = contextMenu.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n \n // Calculate position\n let top = eventArg.clientY;\n let left = eventArg.clientX;\n \n // Adjust if menu would go off right edge\n if (left + rect.width > windowWidth) {\n left = windowWidth - rect.width - 10;\n }\n \n // Adjust if menu would go off bottom edge\n if (top + rect.height > windowHeight) {\n top = windowHeight - rect.height - 10;\n }\n \n // Ensure menu doesn't go off left or top edge\n if (left < 10) left = 10;\n if (top < 10) top = 10;\n \n contextMenu.style.top = `${top}px`;\n contextMenu.style.left = `${left}px`;\n contextMenu.style.transformOrigin = 'top left';\n \n // Animate in\n await domtools.plugins.smartdelay.delayFor(0);\n contextMenu.style.opacity = '1';\n contextMenu.style.transform = 'scale(1) translateY(0)';\n }\n\n // INSTANCE\n @property({\n type: Array,\n })\n accessor menuItems: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean; submenu?: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean } | { divider: true })[]; divider?: never } | { divider: true })[] = [];\n windowLayer: DeesWindowLayer;\n \n private submenu: DeesContextmenu | null = null;\n private submenuTimeout: any = null;\n private parentMenu: DeesContextmenu | null = null;\n private isDestroying: boolean = false;\n\n constructor() {\n super();\n this.tabIndex = 0;\n }\n\n /**\n * STATIC STYLES\n */\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n transition: opacity 0.2s, transform 0.2s;\n outline: none;\n }\n\n .mainbox {\n min-width: 200px;\n max-width: 280px;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n border-radius: 4px;\n box-shadow: ${cssManager.bdTheme(\n '0 4px 12px rgba(0, 0, 0, 0.15)',\n '0 4px 12px rgba(0, 0, 0, 0.3)'\n )};\n user-select: none;\n padding: 4px 0;\n font-size: 12px;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n }\n\n .menuitem {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: default;\n transition: background 0.1s;\n line-height: 1;\n position: relative;\n }\n\n .menuitem:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.08)')};\n }\n \n .menuitem.has-submenu::after {\n content: '\u203A';\n position: absolute;\n right: 8px;\n font-size: 16px;\n opacity: 0.5;\n }\n\n .menuitem:active:not(.has-submenu) {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.12)')};\n }\n \n .menuitem.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .menuitem dees-icon {\n font-size: 14px;\n opacity: 0.7;\n }\n\n .menuitem-text {\n flex: 1;\n }\n\n .menuitem-shortcut {\n font-size: 11px;\n color: ${cssManager.bdTheme('#999', '#666')};\n margin-left: auto;\n opacity: 0.7;\n }\n\n .menu-divider {\n height: 1px;\n background: ${cssManager.bdTheme('#e0e0e0', '#202020')};\n margin: 4px 0;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.menuItems.map((menuItemArg) => {\n if ('divider' in menuItemArg && menuItemArg.divider) {\n return html`
      `;\n }\n \n const menuItem = menuItemArg as plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean; submenu?: any };\n const hasSubmenu = menuItem.submenu && menuItem.submenu.length > 0;\n return html`\n
      !menuItem.disabled && !hasSubmenu && this.handleClick(menuItem)}\n @mouseenter=${() => this.handleMenuItemHover(menuItem, hasSubmenu)}\n @mouseleave=${() => this.handleMenuItemLeave()}\n >\n ${menuItem.iconName ? html`\n \n ` : ''}\n ${menuItem.name}\n ${menuItem.shortcut && !hasSubmenu ? html`\n ${menuItem.shortcut}\n ` : ''}\n
      \n `;\n })}\n ${this.menuItems.length === 0 ? html`\n
      {\n DeesContextmenu.contextMenuDeactivated = true;\n this.destroy();\n }}>\n \n Allow native context\n
      \n ` : html``}\n
      \n `;\n }\n\n public async firstUpdated() {\n // Focus on the menu for keyboard navigation\n this.focus();\n \n // Add keyboard event listeners\n this.addEventListener('keydown', this.handleKeydown);\n }\n \n private handleKeydown = (event: KeyboardEvent) => {\n const menuItems = Array.from(this.shadowRoot.querySelectorAll('.menuitem:not(.disabled)'));\n const currentIndex = menuItems.findIndex(item => item.matches(':hover'));\n \n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n const nextIndex = currentIndex + 1 < menuItems.length ? currentIndex + 1 : 0;\n (menuItems[nextIndex] as HTMLElement).dispatchEvent(new MouseEvent('mouseenter'));\n break;\n \n case 'ArrowUp':\n event.preventDefault();\n const prevIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : menuItems.length - 1;\n (menuItems[prevIndex] as HTMLElement).dispatchEvent(new MouseEvent('mouseenter'));\n break;\n \n case 'Enter':\n event.preventDefault();\n if (currentIndex >= 0) {\n (menuItems[currentIndex] as HTMLElement).click();\n }\n break;\n \n case 'Escape':\n event.preventDefault();\n this.destroy();\n break;\n }\n }\n\n public async handleClick(menuItem: plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean }) {\n menuItem.action();\n \n // Close all menus in the chain (this menu and all parent menus)\n await this.destroyAll();\n }\n \n private async handleMenuItemHover(menuItem: plugins.tsclass.website.IMenuItem & { submenu?: any }, hasSubmenu: boolean) {\n // Clear any existing timeout\n if (this.submenuTimeout) {\n clearTimeout(this.submenuTimeout);\n this.submenuTimeout = null;\n }\n \n // Hide any existing submenu if hovering a different item\n if (this.submenu) {\n await this.hideSubmenu();\n }\n \n // Show submenu if this item has one\n if (hasSubmenu && menuItem.submenu) {\n this.submenuTimeout = setTimeout(() => {\n this.showSubmenu(menuItem);\n }, 200); // Small delay to prevent accidental triggers\n }\n }\n \n private handleMenuItemLeave() {\n // Add a delay before hiding to allow moving to submenu\n if (this.submenuTimeout) {\n clearTimeout(this.submenuTimeout);\n }\n \n this.submenuTimeout = setTimeout(() => {\n if (this.submenu && !this.submenu.matches(':hover')) {\n this.hideSubmenu();\n }\n }, 300);\n }\n \n private async showSubmenu(menuItem: plugins.tsclass.website.IMenuItem & { submenu?: any }) {\n if (!menuItem.submenu || menuItem.submenu.length === 0) return;\n \n // Find the menu item element\n const menuItems = Array.from(this.shadowRoot.querySelectorAll('.menuitem'));\n const menuItemElement = menuItems.find(el => el.querySelector('.menuitem-text')?.textContent === menuItem.name) as HTMLElement;\n if (!menuItemElement) return;\n \n // Create submenu\n this.submenu = new DeesContextmenu();\n this.submenu.menuItems = menuItem.submenu;\n this.submenu.parentMenu = this;\n this.submenu.style.position = 'fixed';\n this.submenu.style.zIndex = String(parseInt(this.style.zIndex) + 1);\n this.submenu.style.opacity = '0';\n this.submenu.style.transform = 'scale(0.95)';\n \n // Don't create a window layer for submenus\n document.body.append(this.submenu);\n \n // Position submenu\n await domtools.plugins.smartdelay.delayFor(0);\n const itemRect = menuItemElement.getBoundingClientRect();\n const menuRect = this.getBoundingClientRect();\n const submenuRect = this.submenu.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n \n let left = menuRect.right - 4; // Slight overlap\n let top = itemRect.top;\n \n // Check if submenu would go off right edge\n if (left + submenuRect.width > windowWidth - 10) {\n // Show on left side instead\n left = menuRect.left - submenuRect.width + 4;\n }\n \n // Adjust vertical position if needed\n if (top + submenuRect.height > window.innerHeight - 10) {\n top = window.innerHeight - submenuRect.height - 10;\n }\n \n this.submenu.style.left = `${left}px`;\n this.submenu.style.top = `${top}px`;\n \n // Animate in\n await domtools.plugins.smartdelay.delayFor(0);\n this.submenu.style.opacity = '1';\n this.submenu.style.transform = 'scale(1)';\n \n // Handle submenu hover\n this.submenu.addEventListener('mouseenter', () => {\n if (this.submenuTimeout) {\n clearTimeout(this.submenuTimeout);\n this.submenuTimeout = null;\n }\n });\n \n this.submenu.addEventListener('mouseleave', () => {\n this.handleMenuItemLeave();\n });\n }\n \n private async hideSubmenu() {\n if (!this.submenu) return;\n \n await this.submenu.destroy();\n this.submenu = null;\n }\n\n public async destroy() {\n // Guard against double-destruction\n if (this.isDestroying) {\n return;\n }\n this.isDestroying = true;\n\n // Clear timeout\n if (this.submenuTimeout) {\n clearTimeout(this.submenuTimeout);\n this.submenuTimeout = null;\n }\n\n // Destroy submenu first\n if (this.submenu) {\n await this.submenu.destroy();\n this.submenu = null;\n }\n\n // Only destroy window layer if this is not a submenu\n // Don't await - let cleanup happen in background for instant visual feedback\n if (this.windowLayer && !this.parentMenu) {\n this.windowLayer.destroy();\n }\n\n this.style.opacity = '0';\n this.style.transform = 'scale(0.95) translateY(-10px)';\n await domtools.plugins.smartdelay.delayFor(100);\n\n if (this.parentElement) {\n this.parentElement.removeChild(this);\n }\n }\n \n /**\n * Destroys this menu and all parent menus in the chain\n */\n public async destroyAll() {\n // Find the root menu (top-level parent)\n let rootMenu: DeesContextmenu = this;\n while (rootMenu.parentMenu) {\n rootMenu = rootMenu.parentMenu;\n }\n\n // Destroy from the root - this will cascade through all submenus\n await rootMenu.destroy();\n }\n}\n\nDeesContextmenu.initializeGlobalListener();\n", null, null, "import { html, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport type { DeesAppuiActivitylog } from './dees-appui-activitylog.js';\n\nexport const demoFunc = () => {\n // Create the activity log element\n const activityLog = document.createElement('dees-appui-activitylog') as DeesAppuiActivitylog;\n\n // Add demo entries after the element is connected\n setTimeout(() => {\n activityLog.addMany([\n { type: 'login', user: 'John Doe', message: 'logged in from Chrome on macOS' },\n { type: 'create', user: 'John Doe', message: 'created a new project \"Frontend App\"' },\n { type: 'update', user: 'Jane Smith', message: 'updated API documentation' },\n { type: 'view', user: 'John Doe', message: 'viewed dashboard analytics' },\n { type: 'delete', user: 'Admin', message: 'removed deprecated endpoint' },\n { type: 'custom', user: 'System', message: 'scheduled backup completed', iconName: 'lucide:database' },\n { type: 'logout', user: 'Alice Brown', message: 'logged out' },\n { type: 'create', user: 'Jane Smith', message: 'created invoice #1234' },\n ]);\n\n // Subscribe to updates\n activityLog.entries$.subscribe((entries) => {\n console.log('Activity log updated:', entries.length, 'entries');\n });\n }, 100);\n\n return html`\n \n \n
      \n ${activityLog}\n
      \n
      \n `;\n};\n", "import {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport type { IActivityEntry, IActivityLogAPI } from '../../interfaces/appconfig.js';\nimport { demoFunc } from './dees-appui-activitylog.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-appui-activitylog')\nexport class DeesAppuiActivitylog extends DeesElement implements IActivityLogAPI {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE PROPERTIES\n @state()\n accessor entries: IActivityEntry[] = [];\n\n @state()\n accessor searchQuery: string = '';\n\n @state()\n accessor filterCriteria: { user?: string; type?: IActivityEntry['type'] } = {};\n\n // RxJS Subject for reactive updates\n public entries$ = new domtools.plugins.smartrx.rxjs.Subject();\n\n // STYLES\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n /* CSS Variables aligned with secondary menu */\n --activitylog-bg: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n --activitylog-fg: ${cssManager.bdTheme('#525252', '#a3a3a3')};\n --activitylog-fg-muted: ${cssManager.bdTheme('#737373', '#737373')};\n --activitylog-fg-active: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n --activitylog-border: ${cssManager.bdTheme('#e5e5e5', '#1a1a1a')};\n --activitylog-hover: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.06)')};\n --activitylog-accent: ${cssManager.bdTheme('#78716c', '#b5a99a')};\n\n color: var(--activitylog-fg);\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n background: var(--activitylog-bg);\n font-family: 'Geist Sans', -apple-system, BlinkMacSystemFont, sans-serif;\n border-left: 1px solid var(--activitylog-border);\n cursor: default;\n overflow: hidden;\n }\n\n .maincontainer {\n position: absolute;\n top: 0px;\n left: 0px;\n height: 100%;\n width: 280px;\n }\n\n /* Header with streaming indicator */\n .topbar {\n position: absolute;\n top: 0px;\n height: 48px;\n width: 100%;\n padding: 0px 12px;\n background: var(--activitylog-bg);\n border-bottom: 1px solid var(--activitylog-border);\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n }\n\n .topbar .heading {\n font-weight: 600;\n font-size: 14px;\n color: var(--activitylog-fg-active);\n }\n\n .live-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 10px;\n font-weight: 500;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--activitylog-fg-muted);\n }\n\n .live-indicator .dot {\n width: 6px;\n height: 6px;\n background: ${cssManager.bdTheme('#22c55e', '#22c55e')};\n border-radius: 50%;\n animation: pulse 2s ease-in-out infinite;\n }\n\n @keyframes pulse {\n 0%, 100% { opacity: 0.5; transform: scale(0.9); }\n 50% { opacity: 1; transform: scale(1.1); }\n }\n\n /* Activity container */\n .activityContainer {\n position: absolute;\n top: 48px;\n bottom: 48px;\n width: 100%;\n padding: 8px 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n scrollbar-color: ${cssManager.bdTheme('#d4d4d4', '#333333')} transparent;\n }\n\n .activityContainer::-webkit-scrollbar {\n width: 6px;\n }\n\n .activityContainer::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .activityContainer::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('#d4d4d4', '#333333')};\n border-radius: 3px;\n }\n\n .activityContainer::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('#a3a3a3', '#525252')};\n }\n\n .empty-state {\n font-size: 13px;\n text-align: center;\n padding: 40px 16px;\n color: var(--activitylog-fg-muted);\n }\n\n /* Date separator - warm taupe styling */\n .date-separator {\n padding: 12px 12px 6px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--activitylog-accent);\n position: sticky;\n top: 0;\n z-index: 1;\n background: var(--activitylog-bg);\n }\n\n /* Activity entry - modern stacked layout */\n .activityentry {\n font-size: 12px;\n padding: 8px 12px;\n margin: 2px 4px;\n border-radius: 6px;\n transition: background 0.15s ease;\n display: flex;\n align-items: flex-start;\n gap: 10px;\n line-height: 1.4;\n animation: fadeIn 0.2s ease-out;\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-2px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .activityentry:hover {\n background: var(--activitylog-hover);\n }\n\n .activity-icon {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.06)')};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n font-size: 13px;\n color: var(--activitylog-fg-muted);\n margin-top: 1px;\n }\n\n .activity-icon.login {\n background: ${cssManager.bdTheme('rgba(34, 197, 94, 0.08)', 'rgba(34, 197, 94, 0.12)')};\n color: ${cssManager.bdTheme('#16a34a', '#4ade80')};\n }\n\n .activity-icon.logout {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.08)', 'rgba(239, 68, 68, 0.12)')};\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n }\n\n .activity-icon.view {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.08)', 'rgba(59, 130, 246, 0.12)')};\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n\n .activity-icon.create {\n background: ${cssManager.bdTheme('rgba(168, 85, 247, 0.08)', 'rgba(168, 85, 247, 0.12)')};\n color: ${cssManager.bdTheme('#9333ea', '#c084fc')};\n }\n\n .activity-icon.update {\n background: ${cssManager.bdTheme('rgba(251, 146, 60, 0.08)', 'rgba(251, 146, 60, 0.12)')};\n color: ${cssManager.bdTheme('#ea580c', '#fb923c')};\n }\n\n .activity-icon.delete {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.08)', 'rgba(239, 68, 68, 0.12)')};\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n }\n\n .activity-icon.custom {\n background: ${cssManager.bdTheme('rgba(100, 116, 139, 0.08)', 'rgba(100, 116, 139, 0.12)')};\n color: ${cssManager.bdTheme('#475569', '#94a3b8')};\n }\n\n .activity-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .activity-header {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .activity-user {\n font-weight: 600;\n font-size: 12px;\n color: var(--activitylog-fg-active);\n }\n\n .activity-separator {\n color: var(--activitylog-fg-muted);\n font-size: 10px;\n }\n\n .timestamp {\n color: var(--activitylog-fg-muted);\n font-weight: 400;\n font-size: 11px;\n font-variant-numeric: tabular-nums;\n font-family: 'Geist Mono', monospace;\n }\n\n .activity-message {\n color: var(--activitylog-fg);\n font-size: 12px;\n line-height: 1.5;\n word-break: break-word;\n }\n\n /* Search box - refined styling */\n .searchbox {\n position: absolute;\n bottom: 0px;\n width: 100%;\n height: 48px;\n background: var(--activitylog-bg);\n border-top: 1px solid var(--activitylog-border);\n padding: 8px 12px;\n box-sizing: border-box;\n }\n\n .search-wrapper {\n position: relative;\n width: 100%;\n height: 32px;\n }\n\n .search-icon {\n position: absolute;\n left: 10px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--activitylog-fg-muted);\n font-size: 13px;\n pointer-events: none;\n transition: color 0.15s ease;\n }\n\n .searchbox input {\n color: var(--activitylog-fg-active);\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.03)', 'rgba(255, 255, 255, 0.04)')};\n width: 100%;\n height: 100%;\n border: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.08)')};\n border-radius: 6px;\n padding: 0 12px 0 34px;\n font-family: 'Geist Sans', sans-serif;\n font-size: 12px;\n transition: all 0.15s ease;\n }\n\n .searchbox input::placeholder {\n color: var(--activitylog-fg-muted);\n }\n\n .searchbox input:focus {\n outline: none;\n border-color: ${cssManager.bdTheme('rgba(0, 0, 0, 0.15)', 'rgba(255, 255, 255, 0.15)')};\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.02)', 'rgba(255, 255, 255, 0.06)')};\n }\n\n .search-wrapper:has(input:focus) .search-icon {\n color: var(--activitylog-fg);\n }\n `,\n ];\n\n // RENDER\n public render(): TemplateResult {\n const filteredEntries = this.getFilteredEntries();\n const groupedEntries = this.groupEntriesByDate(filteredEntries);\n\n return html`\n ${domtools.elementBasic.styles}\n \n
      \n
      \n
      Activity Log
      \n ${filteredEntries.length > 0\n ? html`
      Live
      `\n : ''}\n
      \n
      \n ${filteredEntries.length === 0\n ? html`
      No activity entries
      `\n : groupedEntries.map(\n (group) => html`\n
      ${group.label}
      \n ${group.entries.map((entry) => this.renderActivityEntry(entry))}\n `\n )}\n
      \n
      \n
      \n \n \n
      \n
      \n
      \n `;\n }\n\n private renderActivityEntry(entry: IActivityEntry): TemplateResult {\n const timestamp = entry.timestamp || new Date();\n const timeStr = this.formatTime(timestamp);\n const iconName = entry.iconName || this.getIconForType(entry.type);\n\n return html`\n this.handleContextMenu(e, entry)}\n >\n
      \n \n
      \n
      \n
      \n ${entry.user}\n \u00B7\n ${timeStr}\n
      \n
      ${entry.message}
      \n
      \n \n `;\n }\n\n // API METHODS\n public add(entry: IActivityEntry): void {\n const newEntry: IActivityEntry = {\n ...entry,\n id: entry.id || this.generateId(),\n timestamp: entry.timestamp || new Date(),\n };\n this.entries = [newEntry, ...this.entries];\n this.entries$.next(this.entries);\n }\n\n public addMany(entries: IActivityEntry[]): void {\n const newEntries = entries.map((entry) => ({\n ...entry,\n id: entry.id || this.generateId(),\n timestamp: entry.timestamp || new Date(),\n }));\n this.entries = [...newEntries.reverse(), ...this.entries];\n this.entries$.next(this.entries);\n }\n\n public clear(): void {\n this.entries = [];\n this.entries$.next(this.entries);\n }\n\n public getEntries(): IActivityEntry[] {\n return [...this.entries];\n }\n\n public filter(criteria: { user?: string; type?: IActivityEntry['type'] }): IActivityEntry[] {\n return this.entries.filter((entry) => {\n if (criteria.user && entry.user !== criteria.user) return false;\n if (criteria.type && entry.type !== criteria.type) return false;\n return true;\n });\n }\n\n public search(query: string): IActivityEntry[] {\n const lowerQuery = query.toLowerCase();\n return this.entries.filter(\n (entry) =>\n entry.message.toLowerCase().includes(lowerQuery) ||\n entry.user.toLowerCase().includes(lowerQuery)\n );\n }\n\n // PRIVATE HELPERS\n private generateId(): string {\n return `activity-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n }\n\n private getFilteredEntries(): IActivityEntry[] {\n let result = this.entries;\n\n if (this.searchQuery) {\n const lowerQuery = this.searchQuery.toLowerCase();\n result = result.filter(\n (entry) =>\n entry.message.toLowerCase().includes(lowerQuery) ||\n entry.user.toLowerCase().includes(lowerQuery)\n );\n }\n\n if (this.filterCriteria.user || this.filterCriteria.type) {\n result = result.filter((entry) => {\n if (this.filterCriteria.user && entry.user !== this.filterCriteria.user) return false;\n if (this.filterCriteria.type && entry.type !== this.filterCriteria.type) return false;\n return true;\n });\n }\n\n return result;\n }\n\n private groupEntriesByDate(\n entries: IActivityEntry[]\n ): Array<{ label: string; entries: IActivityEntry[] }> {\n const groups: Map = new Map();\n const today = new Date();\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n\n for (const entry of entries) {\n const date = entry.timestamp || new Date();\n let label: string;\n\n if (this.isSameDay(date, today)) {\n label = 'Today';\n } else if (this.isSameDay(date, yesterday)) {\n label = 'Yesterday';\n } else {\n label = date.toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: date.getFullYear() !== today.getFullYear() ? 'numeric' : undefined,\n });\n }\n\n if (!groups.has(label)) {\n groups.set(label, []);\n }\n groups.get(label)!.push(entry);\n }\n\n return Array.from(groups.entries()).map(([label, entries]) => ({\n label,\n entries,\n }));\n }\n\n private isSameDay(date1: Date, date2: Date): boolean {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n private formatTime(date: Date): string {\n return date.toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n }\n\n private getIconForType(type: IActivityEntry['type']): string {\n const icons: Record = {\n login: 'lucide:logIn',\n logout: 'lucide:logOut',\n view: 'lucide:eye',\n create: 'lucide:plus',\n update: 'lucide:edit',\n delete: 'lucide:trash2',\n custom: 'lucide:activity',\n };\n return icons[type] || icons.custom;\n }\n\n private handleSearchInput(e: InputEvent): void {\n const target = e.target as HTMLInputElement;\n this.searchQuery = target.value;\n }\n\n private handleContextMenu(e: MouseEvent, entry: IActivityEntry): void {\n e.preventDefault();\n DeesContextmenu.openContextMenuWithOptions(e, [\n {\n name: 'Copy activity',\n iconName: 'lucide:copy',\n action: async () => {\n await navigator.clipboard.writeText(`${entry.user} ${entry.message}`);\n },\n },\n {\n name: 'Filter by user',\n iconName: 'lucide:user',\n action: async () => {\n this.filterCriteria = { user: entry.user };\n },\n },\n {\n name: 'Filter by type',\n iconName: 'lucide:filter',\n action: async () => {\n this.filterCriteria = { type: entry.type };\n },\n },\n {\n name: 'Clear filters',\n iconName: 'lucide:x',\n action: async () => {\n this.filterCriteria = {};\n this.searchQuery = '';\n },\n },\n ]);\n }\n}\n", "export * from './dees-appui-activitylog.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2ludGVyZmFjZXMvdGFiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "import * as plugins from '../00plugins.js';\n\n/**\n * Divider menu item\n */\nexport interface IAppBarMenuDivider {\n divider: true;\n}\n\n/**\n * Regular menu item\n */\nexport interface IAppBarMenuItemRegular extends plugins.tsclass.website.IMenuItem {\n id?: string;\n shortcut?: string; // e.g., \"Cmd+S\" or \"Ctrl+S\"\n submenu?: IAppBarMenuItem[];\n disabled?: boolean;\n checked?: boolean; // For checkbox menu items\n radioGroup?: string; // For radio button menu items\n}\n\n/**\n * Extended menu item interface for app bar menus\n * Can be either a regular menu item or a divider\n */\nexport type IAppBarMenuItem = IAppBarMenuItemRegular | IAppBarMenuDivider;\n\n/**\n * Interface for the menu bar configuration\n */\nexport interface IMenuBar {\n menuItems: IAppBarMenuItem[];\n onMenuSelect?: (item: IAppBarMenuItem) => void;\n}", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2ludGVyZmFjZXMvbWVudWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2ludGVyZmFjZXMvYXBwY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "/**\n * Secondary Menu Item Types\n *\n * Supports 8 item types:\n * 1. Tab - selectable, stays highlighted (existing behavior)\n * 2. Action - executes without selection (primary = blue)\n * 3. Danger Action - red styling with optional confirmation\n * 4. Filter - checkbox toggle, emits immediately\n * 5. Multi-Filter - collapsible box with multiple checkboxes\n * 6. Divider - visual separator\n * 7. Header - non-interactive label\n * 8. Link - opens URL\n */\n\n// Base properties shared by interactive items\nexport interface ISecondaryMenuItemBase {\n key: string;\n iconName?: string;\n disabled?: boolean;\n hidden?: boolean;\n}\n\n// 1. Tab - existing behavior (selectable, stays highlighted)\nexport interface ISecondaryMenuItemTab extends ISecondaryMenuItemBase {\n type?: 'tab'; // default if omitted for backward compatibility\n action: () => void;\n badge?: string | number;\n badgeVariant?: 'default' | 'success' | 'warning' | 'error';\n}\n\n// 2 & 3. Action - executes without selection\nexport interface ISecondaryMenuItemAction extends ISecondaryMenuItemBase {\n type: 'action';\n action: () => void | Promise;\n variant?: 'primary' | 'danger'; // primary = blue (default), danger = red\n confirmMessage?: string; // Shows confirmation dialog before executing\n}\n\n// 4. Single filter toggle\nexport interface ISecondaryMenuItemFilter extends ISecondaryMenuItemBase {\n type: 'filter';\n active: boolean;\n onToggle: (active: boolean) => void;\n}\n\n// 5. Multi-select filter group (collapsible)\nexport interface ISecondaryMenuItemMultiFilter extends ISecondaryMenuItemBase {\n type: 'multiFilter';\n collapsed?: boolean; // Accordion state\n options: Array<{\n key: string;\n label: string;\n checked: boolean;\n iconName?: string;\n }>;\n onChange: (selectedKeys: string[]) => void;\n}\n\n// 6. Divider\nexport interface ISecondaryMenuItemDivider {\n type: 'divider';\n}\n\n// 7. Header/Label\nexport interface ISecondaryMenuItemHeader {\n type: 'header';\n label: string;\n}\n\n// 8. External link\nexport interface ISecondaryMenuItemLink extends ISecondaryMenuItemBase {\n type: 'link';\n href: string;\n external?: boolean; // Opens in new tab (default: true if href starts with http)\n}\n\n// Union type for all secondary menu items\nexport type ISecondaryMenuItem =\n | ISecondaryMenuItemTab\n | ISecondaryMenuItemAction\n | ISecondaryMenuItemFilter\n | ISecondaryMenuItemMultiFilter\n | ISecondaryMenuItemDivider\n | ISecondaryMenuItemHeader\n | ISecondaryMenuItemLink;\n\n// Group interface for secondary menu\nexport interface ISecondaryMenuGroup {\n name: string;\n iconName?: string;\n collapsed?: boolean;\n items: ISecondaryMenuItem[];\n}\n", "export * from './tab.js';\nexport * from './appbarmenuitem.js';\nexport * from './menugroup.js';\nexport * from './appconfig.js';\nexport * from './secondarymenu.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport type { DeesAppuiBar } from './component.js';\nimport type { IAppBarMenuItem } from '../../interfaces/appbarmenuitem.js';\nimport '@design.estate/dees-wcctools/demotools';\nimport './component.js';\n\nexport const demoFunc = () => {\n // Sample menu items with various configurations\n // Note: Following standard desktop UI patterns, top-level menu items don't have icons\n // Icons are only used in dropdown menu items for better visual hierarchy\n const menuItems: IAppBarMenuItem[] = [\n {\n name: 'File',\n action: async () => {}, // No-op action for menu with submenu\n submenu: [\n { name: 'New File', shortcut: 'Cmd+N', iconName: 'file-plus', action: async () => console.log('New file') },\n { name: 'Open...', shortcut: 'Cmd+O', iconName: 'folder-open', action: async () => console.log('Open') },\n { name: 'Open Recent', action: async () => {}, submenu: [\n { name: 'project-alpha.ts', action: async () => console.log('Open recent 1') },\n { name: 'config.json', action: async () => console.log('Open recent 2') },\n { name: 'readme.md', action: async () => console.log('Open recent 3') },\n ]},\n { divider: true },\n { name: 'Save', shortcut: 'Cmd+S', iconName: 'save', action: async () => console.log('Save') },\n { name: 'Save As...', shortcut: 'Cmd+Shift+S', action: async () => console.log('Save as'), disabled: true },\n { divider: true },\n { name: 'Exit', shortcut: 'Cmd+Q', action: async () => console.log('Exit') },\n ]\n },\n {\n name: 'Edit',\n action: async () => {}, // No-op action for menu with submenu\n submenu: [\n { name: 'Undo', shortcut: 'Cmd+Z', iconName: 'undo', action: async () => console.log('Undo') },\n { name: 'Redo', shortcut: 'Cmd+Shift+Z', iconName: 'redo', action: async () => console.log('Redo') },\n { divider: true },\n { name: 'Cut', shortcut: 'Cmd+X', iconName: 'scissors', action: async () => console.log('Cut') },\n { name: 'Copy', shortcut: 'Cmd+C', iconName: 'copy', action: async () => console.log('Copy') },\n { name: 'Paste', shortcut: 'Cmd+V', iconName: 'clipboard', action: async () => console.log('Paste') },\n { divider: true },\n { name: 'Find', shortcut: 'Cmd+F', iconName: 'search', action: async () => console.log('Find') },\n { name: 'Replace', shortcut: 'Cmd+H', action: async () => console.log('Replace') },\n ]\n },\n {\n name: 'View',\n action: async () => {}, // No-op action for menu with submenu\n submenu: [\n { name: 'Toggle Fullscreen', shortcut: 'F11', iconName: 'expand', action: async () => console.log('Fullscreen') },\n { name: 'Zoom In', shortcut: 'Cmd++', iconName: 'zoom-in', action: async () => console.log('Zoom in') },\n { name: 'Zoom Out', shortcut: 'Cmd+-', iconName: 'zoom-out', action: async () => console.log('Zoom out') },\n { name: 'Reset Zoom', shortcut: 'Cmd+0', action: async () => console.log('Reset zoom') },\n { divider: true },\n { name: 'Toggle Sidebar', shortcut: 'Cmd+B', action: async () => console.log('Toggle sidebar') },\n { name: 'Toggle Terminal', shortcut: 'Cmd+J', iconName: 'terminal', action: async () => console.log('Toggle terminal') },\n ]\n },\n {\n name: 'Help',\n action: async () => {}, // No-op action for menu with submenu\n submenu: [\n { name: 'Documentation', iconName: 'book', action: async () => console.log('Documentation') },\n { name: 'Release Notes', iconName: 'file-text', action: async () => console.log('Release notes') },\n { divider: true },\n { name: 'Report Issue', iconName: 'bug', action: async () => console.log('Report issue') },\n { name: 'About', iconName: 'info', action: async () => console.log('About') },\n ]\n }\n ];\n\n return html`\n {\n const appbar = elementArg.querySelector('#appbar') as DeesAppuiBar;\n \n // Set up status toggle\n const statusButtons = elementArg.querySelectorAll('.status-toggle dees-button');\n statusButtons[0].addEventListener('click', () => {\n appbar.user = { ...appbar.user, status: 'online' };\n });\n statusButtons[1].addEventListener('click', () => {\n appbar.user = { ...appbar.user, status: 'busy' };\n });\n statusButtons[2].addEventListener('click', () => {\n appbar.user = { ...appbar.user, status: 'away' };\n });\n statusButtons[3].addEventListener('click', () => {\n appbar.user = { ...appbar.user, status: 'offline' };\n });\n \n // Set up window controls toggle\n const windowControlsButton = elementArg.querySelector('.window-controls-toggle dees-button');\n windowControlsButton.addEventListener('click', () => {\n appbar.showWindowControls = !appbar.showWindowControls;\n });\n \n // Set up breadcrumb buttons\n const breadcrumbButtons = elementArg.querySelectorAll('.breadcrumb-toggle dees-button');\n breadcrumbButtons[0].addEventListener('click', () => {\n appbar.breadcrumbs = 'Home > Documents > Projects > MyApp > src > index.ts';\n });\n breadcrumbButtons[1].addEventListener('click', () => {\n appbar.breadcrumbs = 'Dashboard';\n });\n }}>\n \n \n
      \n src > components > AppBar.ts'}\n .breadcrumbSeparator=${' > '}\n .showWindowControls=${true}\n .showSearch=${true}\n .theme=${'dark'}\n .user=${{\n name: 'John Doe',\n status: 'online' as 'online' | 'offline' | 'busy' | 'away'\n }}\n @menu-select=${(e: CustomEvent) => console.log('Menu selected:', e.detail.item)}\n @breadcrumb-navigate=${(e: CustomEvent) => console.log('Breadcrumb clicked:', e.detail)}\n @search-click=${() => console.log('Search clicked')}\n @user-menu-open=${() => console.log('User menu clicked')}\n >\n \n
      \n

      App Bar Demo

      \n

      This demo shows various features of the app bar component:

      \n
        \n
      • Dynamic menu items with icons, shortcuts, and submenus
      • \n
      • Breadcrumb navigation
      • \n
      • User account section with status indicator
      • \n
      • Search icon
      • \n
      • Window controls (platform-specific)
      • \n
      • Dark/light theme support
      • \n
      • Keyboard navigation (Tab, Enter, Escape)
      • \n
      • Custom events for all interactions
      • \n
      \n
      \n \n
      \n
      \n \n \n Dark\n Light\n \n
      \n \n
      \n \n \n Online\n Busy\n Away\n Offline\n \n
      \n \n
      \n \n \n Toggle\n \n
      \n \n
      \n \n \n Long Path\n Short Path\n \n
      \n
      \n
      \n
      \n `;\n};", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const appuiAppbarStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n /* CSS Variables for theming */\n --appbar-height: 40px;\n --appbar-font-size: 12px;\n \n display: block;\n position: relative;\n width: 100%;\n height: var(--appbar-height);\n border-bottom: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n color: ${cssManager.bdTheme('#00000080', '#ffffff80')};\n font-size: var(--appbar-font-size);\n display: grid;\n grid-template-columns: auto 1fr auto;\n -webkit-app-region: drag;\n user-select: none;\n }\n\n .menus {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 0 8px;\n cursor: default;\n }\n\n .menuItem {\n position: relative;\n line-height: 24px;\n padding: 0px 12px;\n margin: 8px 0px;\n border-radius: 4px;\n -webkit-app-region: no-drag;\n transition: all 0.2s ease;\n cursor: default;\n outline: none;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n /* Optional: Style for menu items with icons (not typically used for top-level items) */\n .menuItem dees-icon {\n font-size: 14px;\n opacity: 0.8;\n }\n\n .menuItem:hover {\n background: ${cssManager.bdTheme('#00000010', '#ffffff20')};\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .menuItem.active {\n background: ${cssManager.bdTheme('#00000020', '#ffffff30')};\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .menuItem[disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .menuItem:focus-visible {\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('#00000080', '#ffffff80')};\n }\n\n\n /* Dropdown styles */\n .dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n min-width: 200px;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n border-radius: 4px;\n box-shadow: ${cssManager.bdTheme('0 4px 12px rgba(0, 0, 0, 0.15)', '0 4px 12px rgba(0, 0, 0, 0.3)')};\n margin-top: 4px;\n z-index: 1000;\n opacity: 0;\n transform: translateY(-10px);\n transition: opacity 0.2s, transform 0.2s;\n pointer-events: none;\n }\n\n .dropdown.open {\n opacity: 1;\n transform: translateY(0);\n pointer-events: auto;\n }\n\n .dropdown-item {\n padding: 8px 16px;\n cursor: default;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: background 0.1s;\n }\n\n .dropdown-item:hover,\n .dropdown-item.focused {\n background: ${cssManager.bdTheme('#00000010', '#ffffff20')};\n }\n\n .dropdown-divider {\n height: 1px;\n background: ${cssManager.bdTheme('#e0e0e0', '#202020')};\n margin: 4px 0;\n }\n\n .dropdown-item[disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .dropdown-item .shortcut {\n margin-left: auto;\n opacity: 0.6;\n font-size: 11px;\n }\n\n /* Breadcrumbs */\n .breadcrumbs {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 0 16px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .breadcrumb-item {\n color: ${cssManager.bdTheme('#00000080', '#ffffff80')};\n cursor: default;\n transition: color 0.2s;\n }\n\n .breadcrumb-item:hover {\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .breadcrumb-separator {\n margin: 0 8px;\n opacity: 0.5;\n }\n\n /* Account section */\n .account {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 0 16px;\n gap: 12px;\n }\n\n .search-icon {\n cursor: default;\n opacity: 0.7;\n transition: opacity 0.2s;\n }\n\n .search-icon:hover {\n opacity: 1;\n }\n\n .user-info {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: default;\n padding: 4px 8px;\n border-radius: 4px;\n transition: background 0.2s;\n }\n\n .user-info:hover {\n background: ${cssManager.bdTheme('#00000010', '#ffffff20')};\n }\n\n .user-avatar {\n position: relative;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('#00000020', '#ffffff30')};\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: bold;\n }\n\n .user-avatar img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n object-fit: cover;\n }\n\n .user-status {\n position: absolute;\n bottom: -2px;\n right: -2px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n border: 2px solid ${cssManager.bdTheme('#ffffff', '#000000')};\n }\n\n .user-status.online {\n background: #4caf50;\n }\n\n .user-status.offline {\n background: #757575;\n }\n\n .user-status.busy {\n background: #f44336;\n }\n\n .user-status.away {\n background: #ff9800;\n }\n\n /* Activity log toggle button */\n .activity-toggle {\n display: flex;\n align-items: center;\n gap: 2px;\n height: 28px;\n padding: 0 8px;\n border-radius: 6px;\n cursor: default;\n -webkit-app-region: no-drag;\n color: ${cssManager.bdTheme('#00000060', '#ffffff60')};\n border: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n transition: all 0.15s ease;\n }\n\n .activity-toggle:hover {\n background: ${cssManager.bdTheme('#00000010', '#ffffff15')};\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n border-color: transparent;\n }\n\n .activity-toggle.active {\n background: ${cssManager.bdTheme('#00000015', '#ffffff20')};\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n border-color: transparent;\n }\n\n .activity-toggle dees-icon {\n font-size: 14px;\n }\n\n .activity-badge {\n position: relative;\n margin-left: 4px;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n background: ${cssManager.bdTheme('#525252', '#525252')};\n color: #fafafa;\n font-size: 10px;\n font-weight: 600;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n }\n `,\n ];\n\n", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport type { DeesAppuiBar } from './component.js';\n\nexport const renderAppuiAppbar = (component: DeesAppuiBar): TemplateResult => {\n return html`\n
      \n ${component.showWindowControls ? html`` : ''}\n ${component.renderMenuItems()}\n
      \n
      \n ${component.renderBreadcrumbs()}\n
      \n
      \n ${component.renderAccountSection()}\n
      \n `;\n \n};\n", "import {\n customElement,\n DeesElement,\n domtools,\n type TemplateResult,\n html,\n property,\n type CSSResult,\n state,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-windowcontrols': DeesWindowControls;\n }\n}\n\n@customElement('dees-windowcontrols')\nexport class DeesWindowControls extends DeesElement {\n // STATIC\n public static demo = () => html``;\n public static demoGroups = ['Utility'];\n\n // Instance\n @property({\n reflect: true,\n })\n accessor type: 'mac' | 'linux' | 'windows' = 'mac';\n\n @property({\n reflect: true,\n })\n accessor position: 'left' | 'right' = 'left';\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: relative;\n display: block;\n box-sizing: border-box;\n padding-left: 16px;\n padding-right: 16px;\n }\n\n .windowControls {\n height: 100%;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .windowControls div {\n width: 12px;\n height: 12px;\n display: inline-block;\n border-radius: 50%;\n margin: 0px;\n padding: 0px;\n background: #222222;\n }\n\n .windowControls div.close {\n background: #ff5f57;\n margin-right: 12px;\n }\n\n .windowControls div.toDock {\n background: #ffbd2e;\n margin-right: 12px;\n }\n\n .windowControls div.minMax {\n background: #27c93f;\n }\n\n .windowControls div:hover {\n background: #333333;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n ${(this.type === 'mac' && this.position === 'left') ||\n ((this.type === 'linux' || this.type === 'windows') && this.position === 'right')\n ? html`\n
      \n
      \n
      \n
      \n
      \n `\n : html``}\n `;\n }\n}\n", "import * as plugins from '../../00plugins.js';\nimport { zIndexLayers } from '../../00zindex.js';\n\nimport {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-appui-profiledropdown')\nexport class DeesAppuiProfileDropdown extends DeesElement {\n public static demo = () => html`\n console.log('Profile') },\n { name: 'Account', iconName: 'settings', action: async () => console.log('Account') },\n { divider: true },\n { name: 'Help & Support', iconName: 'helpCircle', action: async () => console.log('Help') },\n { name: 'Keyboard Shortcuts', iconName: 'keyboard', shortcut: 'Cmd+K', action: async () => console.log('Shortcuts') },\n { divider: true },\n { name: 'Sign Out', iconName: 'logOut', action: async () => console.log('Sign out') }\n ]}\n .isOpen=${true}\n >\n `;\n public static demoGroups = ['App UI'];\n\n @property({ type: Object })\n accessor user: {\n name: string;\n email?: string;\n avatar?: string;\n status?: 'online' | 'offline' | 'busy' | 'away';\n } | undefined = undefined;\n\n @property({ type: Array })\n accessor menuItems: (plugins.tsclass.website.IMenuItem & { shortcut?: string } | { divider: true })[] = [];\n\n @property({ type: Boolean, reflect: true })\n accessor isOpen: boolean = false;\n\n @property({ type: String })\n accessor position: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' = 'top-right';\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n pointer-events: none;\n }\n\n .dropdown {\n position: absolute;\n min-width: 220px;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n border-radius: 4px;\n box-shadow: ${cssManager.bdTheme(\n '0 4px 12px rgba(0, 0, 0, 0.15)',\n '0 4px 12px rgba(0, 0, 0, 0.3)'\n )};\n z-index: ${zIndexLayers.overlay.dropdown};\n opacity: 0;\n transform: scale(0.95) translateY(-10px);\n transition: opacity 0.2s, transform 0.2s;\n pointer-events: none;\n overflow: hidden;\n font-size: 12px;\n }\n\n :host([isopen]) .dropdown {\n opacity: 1;\n transform: scale(1) translateY(0);\n pointer-events: auto;\n }\n \n .backdrop {\n display: none;\n }\n\n /* Position variants */\n .dropdown.top-right {\n top: 100%;\n right: 0;\n margin-top: 4px;\n }\n\n .dropdown.top-left {\n top: 100%;\n left: 0;\n margin-top: 8px;\n }\n\n .dropdown.bottom-right {\n bottom: 100%;\n right: 0;\n margin-bottom: 8px;\n }\n\n .dropdown.bottom-left {\n bottom: 100%;\n left: 0;\n margin-bottom: 8px;\n }\n\n /* User section */\n .user-section {\n padding: 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n }\n\n .user-info {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .user-avatar {\n position: relative;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('#f0f0f0', '#1a1a1a')};\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#666', '#999')};\n overflow: hidden;\n }\n\n .user-avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .user-status {\n position: absolute;\n bottom: 0;\n right: 0;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n border: 2px solid ${cssManager.bdTheme('#ffffff', '#000000')};\n }\n\n .user-status.online {\n background: #4caf50;\n }\n\n .user-status.offline {\n background: #757575;\n }\n\n .user-status.busy {\n background: #f44336;\n }\n\n .user-status.away {\n background: #ff9800;\n }\n\n .user-details {\n flex: 1;\n min-width: 0;\n }\n\n .user-name {\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#000', '#fff')};\n line-height: 1.2;\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-email {\n font-size: 11px;\n color: ${cssManager.bdTheme('#666', '#999')};\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* Menu section */\n .menu-section {\n padding: 4px 0;\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: default;\n transition: background 0.1s;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n font-size: 12px;\n line-height: 1;\n user-select: none;\n }\n\n .menu-item:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.08)')};\n }\n\n .menu-item:active {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.12)')};\n }\n\n .menu-item dees-icon {\n font-size: 14px;\n opacity: 0.7;\n }\n\n .menu-item-text {\n flex: 1;\n }\n\n .menu-shortcut {\n font-size: 11px;\n color: ${cssManager.bdTheme('#999', '#666')};\n margin-left: auto;\n opacity: 0.7;\n }\n\n .menu-divider {\n height: 1px;\n background: ${cssManager.bdTheme('#e0e0e0', '#202020')};\n margin: 4px 0;\n }\n\n /* Backdrop for mobile */\n @media (max-width: 768px) {\n .backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n z-index: ${zIndexLayers.backdrop.dropdown};\n opacity: 0;\n transition: opacity 0.2s;\n display: none;\n }\n\n :host([isopen]) .backdrop {\n display: block;\n opacity: 1;\n pointer-events: auto;\n }\n\n .dropdown {\n position: fixed;\n top: 50%;\n left: 50%;\n right: auto;\n bottom: auto;\n transform: translate(-50%, -50%) scale(0.95);\n margin: 0;\n max-width: calc(100vw - 32px);\n max-height: calc(100vh - 32px);\n overflow-y: auto;\n overscroll-behavior: contain;\n }\n\n :host([isopen]) .dropdown {\n transform: translate(-50%, -50%) scale(1);\n }\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      this.close()}>
      \n
      \n ${this.user ? html`\n
      \n
      \n
      \n ${this.user.avatar \n ? html`\"${this.user.name}\"`\n : this.getInitials(this.user.name)\n }\n ${this.user.status ? html`\n
      \n ` : ''}\n
      \n
      \n
      ${this.user.name}
      \n ${this.user.email ? html`\n
      ${this.user.email}
      \n ` : ''}\n
      \n
      \n
      \n ` : ''}\n \n
      \n ${this.menuItems.map(item => this.renderMenuItem(item))}\n
      \n
      \n `;\n }\n\n private renderMenuItem(item: plugins.tsclass.website.IMenuItem & { shortcut?: string } | { divider: true }): TemplateResult {\n if ('divider' in item && item.divider) {\n return html`
      `;\n }\n\n const menuItem = item as plugins.tsclass.website.IMenuItem & { iconName?: string; shortcut?: string };\n return html`\n
      this.handleMenuClick(menuItem)}>\n ${menuItem.iconName ? html`\n \n ` : ''}\n ${menuItem.name}\n ${menuItem.shortcut ? html`\n ${menuItem.shortcut}\n ` : ''}\n
      \n `;\n }\n\n private getInitials(name: string): string {\n return name\n .split(' ')\n .map(part => part[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n }\n\n private async handleMenuClick(item: plugins.tsclass.website.IMenuItem & { iconName?: string; shortcut?: string }) {\n await item.action();\n this.close();\n \n // Emit menu-select event\n this.dispatchEvent(new CustomEvent('menu-select', {\n detail: { item },\n bubbles: true,\n composed: true\n }));\n }\n\n public open() {\n this.isOpen = true;\n }\n\n public close() {\n this.isOpen = false;\n }\n\n public toggle() {\n this.isOpen = !this.isOpen;\n }\n\n // Handle clicks outside the dropdown\n async connectedCallback() {\n await super.connectedCallback();\n this.handleOutsideClick = this.handleOutsideClick.bind(this);\n document.addEventListener('click', this.handleOutsideClick);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('click', this.handleOutsideClick);\n }\n\n private handleOutsideClick(event: MouseEvent) {\n if (this.isOpen && !this.contains(event.target as Node)) {\n // Check if the click is on the parent element (which contains the profile button)\n const parentElement = this.parentElement;\n if (parentElement && parentElement.contains(event.target as Node)) {\n // Don't close if clicking within the parent element (e.g., on the profile button)\n return;\n }\n this.close();\n }\n }\n}", "import {\n DeesElement,\n type TemplateResult,\n customElement,\n property,\n state,\n html,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport * as interfaces from '../../interfaces/index.js';\nimport * as plugins from '../../00plugins.js';\nimport { demoFunc } from './demo.js';\nimport { appuiAppbarStyles } from './styles.js';\nimport { renderAppuiAppbar } from './template.js';\n\n// Import required components\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-utility/dees-windowcontrols/dees-windowcontrols.js';\nimport '../dees-appui-profiledropdown/dees-appui-profiledropdown.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-appui-appbar': DeesAppuiBar;\n }\n}\n\n@customElement('dees-appui-appbar')\nexport class DeesAppuiBar extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE PROPERTIES\n @property({ type: Array })\n accessor menuItems: interfaces.IAppBarMenuItem[] = [];\n\n @property({ type: String })\n accessor breadcrumbs: string = '';\n\n @property({ type: String })\n accessor breadcrumbSeparator: string = ' > ';\n\n @property({ type: Boolean })\n accessor showWindowControls: boolean = true;\n\n\n @property({ type: Object })\n accessor user: {\n name: string;\n email?: string;\n avatar?: string;\n status?: 'online' | 'offline' | 'busy' | 'away';\n } | undefined = undefined;\n\n @property({ type: Array })\n accessor profileMenuItems: (plugins.tsclass.website.IMenuItem & { shortcut?: string } | { divider: true })[] = [];\n\n @property({ type: Boolean })\n accessor showSearch: boolean = false;\n\n // Activity log toggle\n @property({ type: Boolean })\n accessor showActivityLogToggle: boolean = false;\n\n @property({ type: Number })\n accessor activityLogCount: number = 0;\n\n @property({ type: Boolean })\n accessor activityLogActive: boolean = false;\n\n // STATE\n @state()\n accessor activeMenu: string | null = null;\n\n @state()\n accessor openDropdowns: Set = new Set();\n\n @state()\n accessor focusedItem: string | null = null;\n\n @state()\n accessor focusedDropdownItem: number = -1;\n\n @state()\n accessor isProfileDropdownOpen: boolean = false;\n\n public static styles = appuiAppbarStyles;\n\n // INSTANCE\n public render(): TemplateResult {\n return renderAppuiAppbar(this);\n }\n\n\n\n public renderMenuItems(): TemplateResult {\n return html`\n ${this.menuItems.map((item, index) => this.renderMenuItem(item, `menu-${index}`))}\n `;\n }\n\n private renderMenuItem(item: interfaces.IAppBarMenuItem, itemId: string): TemplateResult {\n if ('divider' in item && item.divider) {\n return html`
      `;\n }\n\n const menuItem = item as interfaces.IAppBarMenuItemRegular;\n const isActive = this.activeMenu === itemId;\n const hasSubmenu = menuItem.submenu && menuItem.submenu.length > 0;\n\n return html`\n this.handleMenuClick(menuItem, itemId)}\n @keydown=${(e: KeyboardEvent) => this.handleMenuKeydown(e, menuItem, itemId)}\n role=\"menuitem\"\n aria-haspopup=\"${hasSubmenu}\"\n aria-expanded=\"${isActive}\"\n >\n ${menuItem.iconName ? html`` : ''}\n ${menuItem.name}\n ${hasSubmenu ? this.renderDropdown(menuItem.submenu, itemId, isActive) : ''}\n \n `;\n }\n\n private renderDropdown(items: interfaces.IAppBarMenuItem[], parentId: string, isOpen: boolean): TemplateResult {\n return html`\n
      e.stopPropagation()}\n @keydown=${(e: KeyboardEvent) => this.handleDropdownKeydown(e, items, parentId)}\n tabindex=\"${isOpen ? 0 : -1}\"\n role=\"menu\"\n >\n ${items.map((item, index) => this.renderDropdownItem(item, `${parentId}-${index}`))}\n
      \n `;\n }\n\n private renderDropdownItem(item: interfaces.IAppBarMenuItem, itemId: string): TemplateResult {\n if ('divider' in item && item.divider) {\n return html`
      `;\n }\n\n const menuItem = item as interfaces.IAppBarMenuItemRegular;\n const itemIndex = parseInt(itemId.split('-').pop() || '0');\n const isFocused = this.focusedDropdownItem === itemIndex;\n \n return html`\n this.handleDropdownItemClick(menuItem)}\n @mouseenter=${() => this.focusedDropdownItem = itemIndex}\n role=\"menuitem\"\n tabindex=\"${menuItem.disabled ? -1 : 0}\"\n >\n ${menuItem.iconName ? html`` : ''}\n ${menuItem.name}\n ${menuItem.shortcut ? html`${menuItem.shortcut}` : ''}\n \n `;\n }\n\n public renderBreadcrumbs(): TemplateResult {\n if (!this.breadcrumbs) {\n return html``;\n }\n\n const parts = this.breadcrumbs.split(this.breadcrumbSeparator);\n return html`\n ${parts.map((part, index) => html`\n ${index > 0 ? html`${this.breadcrumbSeparator}` : ''}\n this.handleBreadcrumbClick(part, index)}\n >\n ${part}\n \n `)}\n `;\n }\n\n public renderAccountSection(): TemplateResult {\n return html`\n ${this.showSearch ? html`\n \n ` : ''}\n ${this.user ? html`\n
      \n
      \n
      \n ${this.user.avatar ? \n html`\"${this.user.name}\"` : \n html`${this.user.name.charAt(0).toUpperCase()}`\n }\n ${this.user.status ? html`\n
      \n ` : ''}\n
      \n ${this.user.name}\n
      \n this.handleProfileMenuSelect(e)}\n >\n
      \n ` : ''}\n ${this.showActivityLogToggle ? html`\n \n \n ${this.activityLogCount > 0 ? html`\n ${this.activityLogCount > 99 ? '99+' : this.activityLogCount}\n ` : ''}\n \n ` : ''}\n `;\n }\n\n // Event handlers\n private handleMenuClick(item: interfaces.IAppBarMenuItemRegular, itemId: string) {\n if (item.disabled) return;\n\n if (item.submenu && item.submenu.length > 0) {\n // Toggle dropdown\n if (this.activeMenu === itemId) {\n this.activeMenu = null;\n } else {\n this.activeMenu = itemId;\n }\n } else {\n // Execute action\n this.activeMenu = null;\n if (item.action) {\n item.action();\n }\n this.dispatchEvent(new CustomEvent('menu-select', { \n detail: { item },\n bubbles: true,\n composed: true \n }));\n }\n }\n\n private handleDropdownItemClick(item: interfaces.IAppBarMenuItemRegular) {\n if (item.disabled) return;\n\n this.activeMenu = null;\n if (item.action) {\n item.action();\n }\n this.dispatchEvent(new CustomEvent('menu-select', { \n detail: { item },\n bubbles: true,\n composed: true \n }));\n }\n\n private handleMenuKeydown(e: KeyboardEvent, item: interfaces.IAppBarMenuItemRegular, itemId: string) {\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n this.handleMenuClick(item, itemId);\n break;\n case 'ArrowDown':\n if (item.submenu && this.activeMenu === itemId) {\n e.preventDefault();\n // Focus first non-disabled item in dropdown\n this.focusedDropdownItem = 0;\n const firstValidItem = this.findNextValidItem(item.submenu, -1, 1);\n if (firstValidItem !== -1) {\n this.focusedDropdownItem = firstValidItem;\n // Focus the dropdown element\n setTimeout(() => {\n const dropdown = this.renderRoot.querySelector('.dropdown.open');\n if (dropdown) {\n (dropdown as HTMLElement).focus();\n }\n }, 0);\n }\n }\n break;\n case 'Escape':\n this.activeMenu = null;\n this.focusedDropdownItem = -1;\n break;\n case 'Tab':\n // Let default tab navigation work but close dropdown\n if (this.activeMenu === itemId) {\n this.activeMenu = null;\n this.focusedDropdownItem = -1;\n }\n break;\n case 'ArrowRight':\n e.preventDefault();\n this.focusNextMenuItem(itemId, 1);\n break;\n case 'ArrowLeft':\n e.preventDefault();\n this.focusNextMenuItem(itemId, -1);\n break;\n }\n }\n\n private handleBreadcrumbClick(breadcrumb: string, index: number) {\n this.dispatchEvent(new CustomEvent('breadcrumb-navigate', { \n detail: { breadcrumb, index },\n bubbles: true,\n composed: true \n }));\n }\n\n private handleSearchClick() {\n this.dispatchEvent(new CustomEvent('search-click', {\n bubbles: true,\n composed: true\n }));\n }\n\n private handleActivityToggle() {\n this.dispatchEvent(new CustomEvent('activity-toggle', {\n bubbles: true,\n composed: true\n }));\n }\n\n private handleUserClick() {\n this.isProfileDropdownOpen = !this.isProfileDropdownOpen;\n \n // Also emit the event for backward compatibility\n this.dispatchEvent(new CustomEvent('user-menu-open', { \n bubbles: true,\n composed: true \n }));\n }\n\n private handleProfileMenuSelect(e: CustomEvent) {\n this.isProfileDropdownOpen = false;\n \n // Re-emit the event\n this.dispatchEvent(new CustomEvent('profile-menu-select', { \n detail: e.detail,\n bubbles: true,\n composed: true \n }));\n }\n\n // Lifecycle\n async connectedCallback() {\n await super.connectedCallback();\n // Add global click listener to close dropdowns\n this.addEventListener('click', this.handleGlobalClick);\n document.addEventListener('click', this.handleDocumentClick);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('click', this.handleDocumentClick);\n }\n\n private handleGlobalClick = (e: Event) => {\n // Prevent closing when clicking inside\n e.stopPropagation();\n }\n\n private handleDocumentClick = () => {\n // Close all dropdowns when clicking outside\n this.activeMenu = null;\n this.focusedDropdownItem = -1;\n // Note: Profile dropdown handles its own outside clicks\n }\n\n private handleDropdownKeydown(e: KeyboardEvent, items: interfaces.IAppBarMenuItem[], _parentId: string) {\n const validItems = items.filter(item => !('divider' in item && item.divider));\n \n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n const nextIndex = this.findNextValidItem(items, this.focusedDropdownItem, 1);\n if (nextIndex !== -1) {\n this.focusedDropdownItem = nextIndex;\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n const prevIndex = this.findNextValidItem(items, this.focusedDropdownItem, -1);\n if (prevIndex !== -1) {\n this.focusedDropdownItem = prevIndex;\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (this.focusedDropdownItem !== -1) {\n const focusedItem = validItems[this.focusedDropdownItem];\n if (focusedItem && 'action' in focusedItem && !focusedItem.disabled) {\n this.handleDropdownItemClick(focusedItem as interfaces.IAppBarMenuItemRegular);\n }\n }\n break;\n case 'Home':\n e.preventDefault();\n const firstIndex = this.findNextValidItem(items, -1, 1);\n if (firstIndex !== -1) {\n this.focusedDropdownItem = firstIndex;\n }\n break;\n case 'End':\n e.preventDefault();\n const lastIndex = this.findNextValidItem(items, items.length, -1);\n if (lastIndex !== -1) {\n this.focusedDropdownItem = lastIndex;\n }\n break;\n case 'Escape':\n e.preventDefault();\n this.activeMenu = null;\n this.focusedDropdownItem = -1;\n // Return focus to menu item\n const menuItem = this.renderRoot.querySelector(`.menuItem.active`);\n if (menuItem) {\n (menuItem as HTMLElement).focus();\n }\n break;\n }\n }\n\n private findNextValidItem(items: interfaces.IAppBarMenuItem[], currentIndex: number, direction: number): number {\n let index = currentIndex + direction;\n \n while (index >= 0 && index < items.length) {\n const item = items[index];\n // Skip dividers and disabled items\n if (!('divider' in item && item.divider) && !('disabled' in item && item.disabled)) {\n return index;\n }\n index += direction;\n }\n \n return -1;\n }\n\n private focusNextMenuItem(currentItemId: string, direction: number) {\n const menuItems = Array.from(this.renderRoot.querySelectorAll('.menuItem'));\n const currentIndex = menuItems.findIndex(item => item.getAttribute('data-item-id') === currentItemId);\n \n if (currentIndex === -1) return;\n \n let nextIndex = currentIndex + direction;\n \n // Wrap around\n if (nextIndex < 0) {\n nextIndex = menuItems.length - 1;\n } else if (nextIndex >= menuItems.length) {\n nextIndex = 0;\n }\n \n // Find next non-disabled item\n let attempts = 0;\n while (attempts < menuItems.length) {\n const nextItem = menuItems[nextIndex] as HTMLElement;\n if (!nextItem.hasAttribute('disabled')) {\n nextItem.focus();\n // Close current dropdown if open\n if (this.activeMenu) {\n this.activeMenu = null;\n this.focusedDropdownItem = -1;\n }\n break;\n }\n nextIndex = (nextIndex + direction + menuItems.length) % menuItems.length;\n attempts++;\n }\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\nimport type { DeesAppuiBottombar } from './dees-appui-bottombar.js';\nimport '@design.estate/dees-wcctools/demotools';\n\nexport const demoFunc = () => {\n return html`\n \n \n
      \n
      \n
      Bottom bar with status widgets and actions
      \n
      \n \n
      \n
      \n\n
      \n
      Controls
      \n
      \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n
      \n `;\n};\n", "import {\n DeesElement,\n type TemplateResult,\n customElement,\n html,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport type {\n IBottomBarWidget,\n IBottomBarAction,\n IBottomBarAPI,\n} from '../../interfaces/appconfig.js';\nimport { demoFunc } from './dees-appui-bottombar.demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-appui-bottombar': DeesAppuiBottombar;\n }\n}\n\n@customElement('dees-appui-bottombar')\nexport class DeesAppuiBottombar extends DeesElement implements IBottomBarAPI {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE PROPERTIES\n @state()\n accessor widgets: IBottomBarWidget[] = [];\n\n @state()\n accessor actions: IBottomBarAction[] = [];\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n height: 24px;\n flex-shrink: 0;\n user-select: none;\n }\n\n .bottom-bar {\n height: 24px;\n display: flex;\n align-items: center;\n padding: 0 8px;\n gap: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 6%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n font-size: 11px;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .widget {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 6px;\n border-radius: 3px;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease;\n white-space: nowrap;\n }\n\n .widget:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};\n }\n\n .widget dees-icon {\n flex-shrink: 0;\n }\n\n .widget-separator {\n width: 1px;\n height: 14px;\n background: ${cssManager.bdTheme('hsl(0 0% 80%)', 'hsl(0 0% 20%)')};\n margin: 0 4px;\n }\n\n /* Status colors matching dees-workspace-bottombar */\n .widget.active {\n color: ${cssManager.bdTheme('hsl(210 100% 45%)', 'hsl(210 100% 60%)')};\n }\n\n .widget.success {\n color: ${cssManager.bdTheme('hsl(142 70% 35%)', 'hsl(142 70% 50%)')};\n }\n\n .widget.warning {\n color: ${cssManager.bdTheme('hsl(38 92% 45%)', 'hsl(38 92% 55%)')};\n }\n\n .widget.error {\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .spinning {\n animation: spin 1s linear infinite;\n }\n\n .spacer {\n flex: 1;\n }\n\n .action-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: 3px;\n cursor: pointer;\n transition: background 0.15s ease;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .action-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};\n }\n\n .action-button.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .action-button.disabled:hover {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n const leftWidgets = this.widgets\n .filter(w => w.position !== 'right')\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n\n const rightWidgets = this.widgets\n .filter(w => w.position === 'right')\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n\n const leftActions = this.actions.filter(a => a.position === 'left');\n const rightActions = this.actions.filter(a => a.position !== 'left');\n\n return html`\n
      \n \n ${leftActions.map(action => this.renderAction(action))}\n\n \n ${leftWidgets.map((widget, index) => html`\n ${index > 0 || leftActions.length > 0 ? html`
      ` : ''}\n ${this.renderWidget(widget)}\n `)}\n\n
      \n\n \n ${rightWidgets.map((widget, index) => html`\n ${this.renderWidget(widget)}\n ${index < rightWidgets.length - 1 || rightActions.length > 0 ? html`
      ` : ''}\n `)}\n\n \n ${rightActions.map(action => this.renderAction(action))}\n
      \n `;\n }\n\n private renderWidget(widget: IBottomBarWidget): TemplateResult {\n const statusClass = widget.status && widget.status !== 'idle' ? widget.status : '';\n const iconName = widget.iconName\n ? (widget.iconName.startsWith('lucide:') ? widget.iconName : `lucide:${widget.iconName}`)\n : '';\n\n return html`\n widget.onClick?.()}\n @contextmenu=${(e: MouseEvent) => this.handleWidgetContextMenu(e, widget)}\n >\n ${iconName ? html`\n \n ` : ''}\n ${widget.label ? html`${widget.label}` : ''}\n \n `;\n }\n\n private renderAction(action: IBottomBarAction): TemplateResult {\n const iconName = action.iconName.startsWith('lucide:')\n ? action.iconName\n : `lucide:${action.iconName}`;\n\n return html`\n !action.disabled && action.onClick?.()}\n >\n \n \n `;\n }\n\n private async handleWidgetContextMenu(e: MouseEvent, widget: IBottomBarWidget): Promise {\n if (!widget.contextMenuItems || widget.contextMenuItems.length === 0) return;\n\n e.preventDefault();\n\n const menuItems: Parameters[1] = [];\n\n for (const item of widget.contextMenuItems) {\n if (item.divider) {\n menuItems.push({ divider: true });\n } else {\n menuItems.push({\n name: item.name,\n iconName: item.iconName,\n action: async () => { await item.action(); },\n disabled: item.disabled,\n });\n }\n }\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n // ==========================================\n // API METHODS (implements IBottomBarAPI)\n // ==========================================\n\n /**\n * Add a widget to the bottom bar\n */\n public addWidget(widget: IBottomBarWidget): void {\n // Remove existing widget with same ID if present\n this.widgets = this.widgets.filter(w => w.id !== widget.id);\n this.widgets = [...this.widgets, widget];\n }\n\n /**\n * Update an existing widget by ID\n */\n public updateWidget(id: string, update: Partial): void {\n this.widgets = this.widgets.map(w =>\n w.id === id ? { ...w, ...update } : w\n );\n }\n\n /**\n * Remove a widget by ID\n */\n public removeWidget(id: string): void {\n this.widgets = this.widgets.filter(w => w.id !== id);\n }\n\n /**\n * Get a widget by ID\n */\n public getWidget(id: string): IBottomBarWidget | undefined {\n return this.widgets.find(w => w.id === id);\n }\n\n /**\n * Clear all widgets\n */\n public clearWidgets(): void {\n this.widgets = [];\n }\n\n /**\n * Add an action button\n */\n public addAction(action: IBottomBarAction): void {\n this.actions = this.actions.filter(a => a.id !== action.id);\n this.actions = [...this.actions, action];\n }\n\n /**\n * Remove an action by ID\n */\n public removeAction(id: string): void {\n this.actions = this.actions.filter(a => a.id !== id);\n }\n\n /**\n * Clear all actions\n */\n public clearActions(): void {\n this.actions = [];\n }\n}\n", "export * from './dees-appui-bottombar.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n \n
      \n
      \n

      Default Panels

      \n \n \n

      The panel component automatically follows the theme and provides consistent styling for grouped content.

      \n

      It's perfect for creating sections in your application with proper spacing and borders.

      \n
      \n \n
      \n \n

      Grid layouts work great with panels for creating dashboards and feature sections.

      \n Learn More\n
      \n \n \n

      Each panel maintains consistent spacing and styling across your application.

      \n Get Started\n
      \n
      \n \n

      Panel Variants

      \n \n \n

      The default variant has a white background, subtle border, and minimal shadow. It's the standard choice for most content.

      \n

      Use variant=\"default\" or omit the variant property.

      \n
      \n \n \n

      The outline variant removes the background color and shadow, keeping only the border.

      \n

      Use variant=\"outline\" for a lighter visual weight.

      \n
      \n \n \n

      The ghost variant has no border or background by default, only showing a subtle background on hover.

      \n

      Use variant=\"ghost\" for the most minimal appearance.

      \n
      \n \n

      Panel Sizes

      \n \n
      \n \n

      Compact padding for dense layouts.

      \n

      Use size=\"sm\"

      \n
      \n \n \n

      Default size with balanced spacing.

      \n

      Use size=\"md\" or omit.

      \n
      \n \n \n

      Generous padding for prominent sections.

      \n

      Use size=\"lg\"

      \n
      \n
      \n \n

      Complex Examples

      \n \n \n \n \n \n \n Create Project\n \n \n \n \n

      You can nest panels to create more complex layouts:

      \n \n \n

      This is a nested panel with outline variant and small size.

      \n
      \n \n \n

      This is another nested panel with ghost variant.

      \n
      \n
      \n \n

      Untitled Panels

      \n \n \n

      Panels work great even without a title for simple content grouping.

      \n

      They provide visual separation and consistent padding throughout your interface.

      \n
      \n \n
      \n \n

      Custom Content

      \n

      You can add your own headings and structure within untitled panels.

      \n
      \n \n \n

      Minimal Style

      \n

      Ghost panels without titles create very subtle content sections.

      \n
      \n
      \n
      \n
      \n`;", "import { unsafeCSS } from '@design.estate/dees-element';\n\n/**\n * Geist Sans font family - Main font for the design system\n * Already available in the environment, no need to load\n */\nexport const geistSansFont = 'Geist Sans';\n\n/**\n * Intel One Mono font family - Monospace font for code and technical content\n * Already available in the environment, no need to load\n */\nexport const intelOneMonoFont = 'Intel One Mono';\n\n/**\n * Complete font family stacks with fallbacks\n */\nexport const geistFontFamily = `'${geistSansFont}', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif`;\n\nexport const monoFontFamily = `'${intelOneMonoFont}', 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', 'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace`;\n\n/**\n * CSS-ready font family values using unsafeCSS\n * Use these in component styles\n */\nexport const cssGeistFontFamily = unsafeCSS(geistFontFamily);\nexport const cssMonoFontFamily = unsafeCSS(monoFontFamily);\n\n/**\n * Cal Sans font for headings - Display font\n * May need to be loaded separately\n */\nexport const calSansFont = 'Cal Sans';\nexport const calSansFontFamily = `'${calSansFont}', ${geistFontFamily}`;\nexport const cssCalSansFontFamily = unsafeCSS(calSansFontFamily);\n\n/**\n * Roboto Slab font for special content - Serif font\n * May need to be loaded separately\n */\nexport const robotoSlabFont = 'Roboto Slab';\nexport const robotoSlabFontFamily = `'${robotoSlabFont}', Georgia, serif`;\nexport const cssRobotoSlabFontFamily = unsafeCSS(robotoSlabFontFamily);\n\n/**\n * Base font styles that can be applied to components\n */\nexport const baseFontStyles = unsafeCSS(`\n font-family: ${geistFontFamily};\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-feature-settings: 'cv11', 'tnum', 'cv05' 1;\n`);", "import {\n customElement,\n DeesElement,\n html,\n css,\n cssManager,\n property,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { demoFunc } from './dees-panel.demo.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-panel': DeesPanel;\n }\n}\n\n@customElement('dees-panel')\nexport class DeesPanel extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n\n @property({ type: String })\n accessor title: string = '';\n\n @property({ type: String })\n accessor subtitle: string = '';\n\n @property({ type: String })\n accessor variant: 'default' | 'outline' | 'ghost' = 'default';\n\n @property({ type: String })\n accessor size: 'sm' | 'md' | 'lg' = 'md';\n\n @property({ attribute: false })\n accessor runAfterRender: ((elementArg: HTMLElement) => void | Promise) | undefined = undefined;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n font-family: ${cssGeistFontFamily};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border-radius: 6px;\n padding: 24px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n /* Variant: default */\n :host([variant=\"default\"]) {\n box-shadow: 0 1px 2px 0 hsl(0 0% 0% / 0.05);\n }\n\n /* Variant: outline */\n :host([variant=\"outline\"]) {\n background: transparent;\n box-shadow: none;\n }\n\n /* Variant: ghost */\n :host([variant=\"ghost\"]) {\n background: transparent;\n border-color: transparent;\n box-shadow: none;\n padding: 16px;\n }\n\n /* Size variations */\n :host([size=\"sm\"]) {\n padding: 16px;\n }\n\n :host([size=\"lg\"]) {\n padding: 32px;\n }\n\n .header {\n margin-bottom: 16px;\n }\n\n .header:empty {\n display: none;\n }\n\n .title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n letter-spacing: -0.025em;\n line-height: 1.5;\n }\n\n /* Title size variations */\n :host([size=\"sm\"]) .title {\n font-size: 16px;\n }\n\n :host([size=\"lg\"]) .title {\n font-size: 20px;\n }\n\n .subtitle {\n margin: 4px 0 0 0;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n letter-spacing: -0.006em;\n line-height: 1.5;\n }\n\n /* Subtitle size variations */\n :host([size=\"sm\"]) .subtitle {\n font-size: 13px;\n }\n\n :host([size=\"lg\"]) .subtitle {\n font-size: 15px;\n margin-top: 6px;\n }\n\n .content {\n color: ${cssManager.bdTheme('hsl(215.3 25% 26.7%)', 'hsl(217.9 10.6% 84.9%)')};\n font-size: 14px;\n line-height: 1.6;\n }\n\n /* Content size variations */\n :host([size=\"sm\"]) .content {\n font-size: 13px;\n }\n\n :host([size=\"lg\"]) .content {\n font-size: 15px;\n }\n\n /* Remove margins from first and last children */\n .content ::slotted(*:first-child) {\n margin-top: 0;\n }\n\n .content ::slotted(*:last-child) {\n margin-bottom: 0;\n }\n\n /* Interactive states for default variant */\n :host([variant=\"default\"]:hover) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n box-shadow: 0 4px 6px -1px hsl(0 0% 0% / 0.1), 0 2px 4px -2px hsl(0 0% 0% / 0.1);\n }\n\n /* Interactive states for outline variant */\n :host([variant=\"outline\"]:hover) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 98%)', 'hsl(0 0% 7.8%)')};\n }\n\n /* Interactive states for ghost variant */\n :host([variant=\"ghost\"]:hover) {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n }\n\n /* Focus states */\n :host(:focus-within) {\n outline: none;\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n /* Nested panels spacing */\n ::slotted(dees-panel) {\n margin-top: 16px;\n }\n\n ::slotted(dees-panel:first-child) {\n margin-top: 0;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.title ? html`

      ${this.title}

      ` : ''}\n ${this.subtitle ? html`

      ${this.subtitle}

      ` : ''}\n
      \n
      \n \n
      \n `;\n }\n\n public async firstUpdated() {\n if (this.runAfterRender) {\n await this.runAfterRender(this);\n }\n }\n}", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { IStatsTile, ICpuCore, IPartitionData, IDiskData } from '../dees-statsgrid/dees-statsgrid.js';\n\n// Helper function to generate random CPU core data\nconst generateCpuCores = (count: number): ICpuCore[] => {\n return Array.from({ length: count }, (_, i) => ({\n id: i,\n usage: Math.round(Math.random() * 100),\n label: `${i}`,\n }));\n};\n\nexport const demoFunc = () => {\n return html`\n \n \n \n
      \n \n {\n const output = document.querySelector('#action-output');\n if (output) {\n output.textContent = 'Viewing revenue details: $125,420 (+12.5%)';\n }\n }\n },\n {\n name: 'Export Data',\n iconName: 'lucide:download',\n action: async () => {\n const output = document.querySelector('#action-output');\n if (output) {\n output.textContent = 'Exporting revenue data to CSV...';\n }\n }\n }\n ]\n },\n {\n id: 'users',\n title: 'Active Users',\n value: 3847,\n type: 'number',\n icon: 'lucide:users',\n description: '324 new this week',\n actions: [\n {\n name: 'View User List',\n iconName: 'lucide:list',\n action: async () => {\n const output = document.querySelector('#action-output');\n if (output) {\n output.textContent = 'Opening user list...';\n }\n }\n }\n ]\n },\n {\n id: 'cpu',\n title: 'CPU Usage',\n value: 73,\n unit: '%',\n type: 'gauge',\n icon: 'lucide:cpu',\n gaugeOptions: {\n min: 0,\n max: 100,\n thresholds: [\n { value: 0, color: 'hsl(142.1 76.2% 36.3%)' },\n { value: 60, color: 'hsl(45.4 93.4% 47.5%)' },\n { value: 80, color: 'hsl(0 84.2% 60.2%)' }\n ]\n }\n },\n {\n id: 'storage',\n title: 'Storage Used',\n value: 65,\n type: 'percentage',\n icon: 'lucide:hard-drive',\n description: '650 GB of 1 TB',\n },\n {\n id: 'latency',\n title: 'Response Time',\n value: 142,\n unit: 'ms',\n type: 'trend',\n icon: 'lucide:activity',\n trendData: [150, 145, 148, 142, 138, 140, 135, 145, 142],\n description: 'P95'\n },\n {\n id: 'uptime',\n title: 'System Uptime',\n value: '99.95%',\n type: 'text',\n icon: 'lucide:check-circle',\n color: 'hsl(142.1 76.2% 36.3%)',\n description: 'Last 30 days'\n }\n ]}\n .gridActions=${[\n {\n name: 'Refresh',\n iconName: 'lucide:refresh-cw',\n action: async () => {\n const grid = document.querySelector('dees-statsgrid');\n if (grid) {\n grid.style.opacity = '0.5';\n setTimeout(() => {\n grid.style.opacity = '1';\n }, 300);\n }\n }\n },\n {\n name: 'Export',\n iconName: 'lucide:share',\n action: async () => {\n const output = document.querySelector('#action-output');\n if (output) {\n output.textContent = 'Exporting dashboard report...';\n }\n }\n },\n {\n name: 'Settings',\n iconName: 'lucide:settings',\n action: async () => {\n const output = document.querySelector('#action-output');\n if (output) {\n output.textContent = 'Opening dashboard settings...';\n }\n }\n }\n ]}\n .minTileWidth=${250}\n .gap=${16}\n >\n \n
      \n Click on tile actions or grid actions to see the result...\n
      \n
      \n \n \n \n \n
      \n
      \n
      Configuration Options
      \n
      \n Each tile type supports different properties:\n
        \n
      • Number: value, unit, color, description
      • \n
      • Gauge: value, unit, gaugeOptions (min, max, thresholds)
      • \n
      • Percentage: value (0-100), color, description
      • \n
      • Trend: value, unit, trendData array, description
      • \n
      • Text: value (string), color, description
      • \n
      \n
      \n
      \n
      \n
      \n \n \n

      Compact Layout (180px tiles)

      \n \n \n

      Spacious Layout (320px tiles)

      \n \n
      \n \n \n {\n const grid = document.querySelector('#cpu-cores-grid') as any;\n if (!grid) return;\n const tiles = grid.tiles.map((tile: any) => {\n if (tile.type === 'cpuCores' && tile.coresData) {\n return {\n ...tile,\n coresData: tile.coresData.map((core: any) => ({\n ...core,\n usage: Math.round(Math.random() * 100)\n }))\n };\n }\n return tile;\n });\n grid.tiles = tiles;\n }\n }\n ]}\n .minTileWidth=${250}\n .gap=${16}\n >\n \n\n \n {\n const grid = document.querySelector('#interactive-grid') as any;\n if (!grid) return;\n const tile = grid.tiles.find((t: any) => t.id === 'counter');\n tile.value = typeof tile.value === 'number' ? tile.value + 1 : 1;\n grid.tiles = [...grid.tiles];\n }\n },\n {\n name: 'Reset',\n iconName: 'lucide:rotate-ccw',\n action: async () => {\n const grid = document.querySelector('#interactive-grid') as any;\n if (!grid) return;\n const tile = grid.tiles.find((t: any) => t.id === 'counter');\n tile.value = 0;\n grid.tiles = [...grid.tiles];\n }\n }\n ]\n }\n ]}\n .gridActions=${[\n {\n name: 'Start Live Updates',\n iconName: 'lucide:play',\n action: async function() {\n // Toggle live updates\n if (!(window as any).liveUpdateInterval) {\n (window as any).liveUpdateInterval = setInterval(() => {\n const grid = document.querySelector('#interactive-grid') as any;\n if (grid) {\n const tiles = [...grid.tiles];\n \n // Update CPU gauge\n const cpuTile = tiles.find(t => t.id === 'live-cpu');\n cpuTile.value = Math.max(0, Math.min(100, cpuTile.value + (Math.random() * 20 - 10)));\n \n // Update requests trend\n const requestsTile = tiles.find(t => t.id === 'live-requests');\n const newValue = requestsTile.value + Math.round(Math.random() * 50 - 25);\n requestsTile.value = Math.max(800, newValue);\n requestsTile.trendData = [...requestsTile.trendData.slice(1), requestsTile.value];\n \n // Update memory percentage\n const memoryTile = tiles.find(t => t.id === 'live-memory');\n memoryTile.value = Math.max(0, Math.min(100, memoryTile.value + (Math.random() * 10 - 5)));\n \n grid.tiles = tiles;\n }\n }, 1000);\n \n this.name = 'Stop Live Updates';\n this.iconName = 'lucide:pause';\n } else {\n clearInterval((window as any).liveUpdateInterval);\n (window as any).liveUpdateInterval = null;\n this.name = 'Start Live Updates';\n this.iconName = 'lucide:play';\n }\n }\n }\n ]}\n .minTileWidth=${250}\n .gap=${16}\n >\n \n \n \n
      ${`const tiles: IStatsTile[] = [\n {\n id: 'revenue',\n title: 'Total Revenue',\n value: 125420,\n unit: '$',\n type: 'number',\n icon: 'lucide:dollar-sign',\n description: '+12.5% from last month',\n actions: [\n {\n name: 'View Details',\n iconName: 'lucide:trending-up',\n action: async () => {\n console.log('View revenue details');\n }\n }\n ]\n },\n {\n id: 'cpu',\n title: 'CPU Usage',\n value: 73,\n unit: '%',\n type: 'gauge',\n icon: 'lucide:cpu',\n gaugeOptions: {\n min: 0,\n max: 100,\n thresholds: [\n { value: 0, color: 'hsl(142.1 76.2% 36.3%)' },\n { value: 60, color: 'hsl(45.4 93.4% 47.5%)' },\n { value: 80, color: 'hsl(0 84.2% 60.2%)' }\n ]\n }\n }\n];\n\n// Render the stats grid\nhtml\\`\n console.log('Refresh')\n }\n ]}\n >\n\\`;`}
      \n
      \n\n \n \n\n
      \n
      \n
      Partition Tile Properties
      \n
      \n
        \n
      • partitionData.used: Used space in bytes (auto-formatted)
      • \n
      • partitionData.total: Total capacity in bytes
      • \n
      • partitionData.filesystem: Filesystem type (ext4, xfs, ntfs)
      • \n
      • partitionData.mountPoint: Mount point path (optional)
      • \n
      \n Color thresholds: Normal (<75%), Warning (75-90%), Critical (>90%)\n
      \n
      \n
      \n
      Disk Tile Properties
      \n
      \n
        \n
      • diskData.capacity: Total capacity in bytes
      • \n
      • diskData.model: Disk model name (optional)
      • \n
      • diskData.type: Disk type: 'ssd', 'hdd', or 'nvme'
      • \n
      • diskData.iops: Read/write IOPS (optional)
      • \n
      • diskData.health: Health percentage 0-100 (optional)
      • \n
      \n Health thresholds: Good (70-100%), Warning (30-70%), Critical (<30%)\n
      \n
      \n
      \n
      \n
      \n\n \n
      \n `;\n};", "import {\n DeesElement,\n property,\n css,\n type CSSResult,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\n\n/**\n * Base class for all dees-input components\n * Provides unified margin system and layout mode support\n */\nexport abstract class DeesInputBase extends DeesElement {\n /**\n * Layout mode for the input component\n * - vertical: Traditional form layout (label on top)\n * - horizontal: Inline layout (label position configurable)\n * - auto: Detect from parent context\n */\n @property({ type: String })\n accessor layoutMode: 'vertical' | 'horizontal' | 'auto' = 'auto';\n\n /**\n * Position of the label relative to the input\n */\n @property({ type: String })\n accessor labelPosition: 'top' | 'left' | 'right' | 'none' = 'top';\n\n /**\n * Common properties for all inputs\n */\n @property({ type: String })\n accessor key: string;\n\n @property({ type: String })\n accessor label: string;\n\n @property({ type: Boolean })\n accessor required: boolean = false;\n\n @property({ type: Boolean })\n accessor disabled: boolean = false;\n\n @property({ type: String })\n accessor description: string;\n\n /**\n * Common styles for all input components\n */\n public static get baseStyles(): CSSResult[] {\n return [\n css`\n /* CSS Variables for consistent spacing */\n :host {\n --dees-input-spacing-unit: 8px;\n --dees-input-label-gap: var(--dees-input-spacing-unit); /* 8px */\n }\n\n /* Default block display with no margins - spacing is container-driven */\n :host {\n display: block;\n margin: 0;\n }\n\n /* Horizontal layout mode - activated by attribute */\n :host([layout-mode=\"horizontal\"]) {\n display: inline-block;\n }\n\n /* Label position variations */\n :host([label-position=\"left\"]) .input-wrapper {\n display: grid;\n grid-template-columns: auto 1fr;\n gap: var(--dees-input-label-gap);\n align-items: center;\n }\n\n :host([label-position=\"right\"]) .input-wrapper {\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--dees-input-label-gap);\n align-items: center;\n }\n\n :host([label-position=\"top\"]) .input-wrapper {\n display: block;\n }\n\n :host([label-position=\"none\"]) dees-label {\n display: none;\n }\n `,\n ];\n }\n\n /**\n * Subject for value changes that all inputs should implement\n */\n public changeSubject = new domtools.plugins.smartrx.rxjs.Subject();\n\n /**\n * Called when the element is connected to the DOM\n * Sets up layout mode detection\n */\n async connectedCallback() {\n await super.connectedCallback();\n this.detectLayoutMode();\n }\n\n /**\n * Detects the appropriate layout mode based on parent context\n */\n private detectLayoutMode() {\n if (this.layoutMode !== 'auto') {\n this.setAttribute('layout-mode', this.layoutMode);\n return;\n }\n\n // Check if parent is a form with horizontal layout\n const parentForm = this.closest('dees-form');\n if (parentForm && parentForm.hasAttribute('horizontal-layout')) {\n this.setAttribute('layout-mode', 'horizontal');\n } else {\n this.setAttribute('layout-mode', 'vertical');\n }\n }\n\n /**\n * Updates the layout mode attribute when property changes\n */\n updated(changedProperties: Map) {\n super.updated(changedProperties);\n \n if (changedProperties.has('layoutMode')) {\n this.detectLayoutMode();\n }\n\n if (changedProperties.has('labelPosition')) {\n this.setAttribute('label-position', this.labelPosition);\n }\n }\n\n /**\n * Standard method for freezing input (disabling)\n */\n public async freeze() {\n this.disabled = true;\n }\n\n /**\n * Standard method for unfreezing input (enabling)\n */\n public async unfreeze() {\n this.disabled = false;\n }\n\n /**\n * Abstract method that child classes must implement to get their value\n */\n public abstract getValue(): any;\n\n /**\n * Abstract method that child classes must implement to set their value\n */\n public abstract setValue(value: any): void;\n}", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesInputCheckbox } from '../dees-input-checkbox/dees-input-checkbox.js';\nimport '../../00group-button/dees-button/dees-button.js';\n\nexport const demoFunc = () => html`\n {\n // Get all checkboxes for demo interactions\n const checkboxes = elementArg.querySelectorAll('dees-input-checkbox');\n \n // Example of programmatic interaction\n const selectAllBtn = elementArg.querySelector('#select-all-btn');\n const clearAllBtn = elementArg.querySelector('#clear-all-btn');\n \n if (selectAllBtn && clearAllBtn) {\n selectAllBtn.addEventListener('click', () => {\n checkboxes.forEach((checkbox: DeesInputCheckbox) => {\n if (!checkbox.disabled && checkbox.key?.startsWith('feature')) {\n checkbox.value = true;\n }\n });\n });\n \n clearAllBtn.addEventListener('click', () => {\n checkboxes.forEach((checkbox: DeesInputCheckbox) => {\n if (!checkbox.disabled && checkbox.key?.startsWith('feature')) {\n checkbox.value = false;\n }\n });\n });\n }\n }}>\n \n \n
      \n \n
      \n \n \n \n \n \n
      \n
      \n \n \n
      \n \n \n \n \n \n \n \n \n \n
      \n
      \n \n \n
      \n \n \n \n \n \n \n \n
      \n
      \n \n \n
      \n Select All\n Clear All\n
      \n \n
      \n
      \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n \n
      \n

      Privacy Preferences

      \n \n
      \n \n \n \n \n \n \n \n
      \n
      \n
      \n \n \n
      \n {\n const output = document.querySelector('#checkbox-output');\n if (output && event.detail) {\n const isChecked = event.detail.getValue();\n output.textContent = `Feature is ${isChecked ? 'enabled' : 'disabled'}`;\n }\n }}\n >\n \n {\n const output = document.querySelector('#debug-output');\n if (output && event.detail) {\n const isChecked = event.detail.getValue();\n output.textContent = `Debug mode: ${isChecked ? 'ON' : 'OFF'}`;\n }\n }}\n >\n
      \n \n
      \n
      Feature is disabled
      \n
      Debug mode: OFF
      \n
      \n
      \n
      \n
      \n`;", "import {\n customElement,\n type TemplateResult,\n property,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-checkbox.demo.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-checkbox': DeesInputCheckbox;\n }\n}\n\n@customElement('dees-input-checkbox')\nexport class DeesInputCheckbox extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n\n @property({\n type: Boolean,\n })\n accessor value: boolean = false;\n\n @property({ type: Boolean })\n accessor indeterminate: boolean = false;\n\n\n constructor() {\n super();\n this.labelPosition = 'right'; // Checkboxes default to label on the right\n }\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n * {\n box-sizing: border-box;\n }\n\n :host {\n position: relative;\n cursor: default;\n font-family: ${cssGeistFontFamily};\n }\n\n .maincontainer {\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n cursor: pointer;\n user-select: none;\n transition: all 0.15s ease;\n }\n\n .checkbox {\n position: relative;\n height: 18px;\n width: 18px;\n flex-shrink: 0;\n border-radius: 4px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n transition: all 0.15s ease;\n margin-top: 1px;\n }\n\n .maincontainer:hover .checkbox {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .checkbox.selected {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n }\n\n .checkbox:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n /* Checkmark using Lucide icon style */\n .checkbox .checkmark {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n opacity: 0;\n transition: opacity 0.15s ease;\n }\n\n .checkbox.selected .checkmark {\n opacity: 1;\n }\n\n .checkbox .checkmark svg {\n width: 12px;\n height: 12px;\n stroke: white;\n stroke-width: 3;\n }\n\n /* Disabled state */\n .maincontainer.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .checkbox.disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n /* Label */\n .label-container {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n }\n\n .checkbox-label {\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n transition: color 0.15s ease;\n letter-spacing: -0.01em;\n }\n\n .maincontainer:hover .checkbox-label {\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .maincontainer.disabled:hover .checkbox-label {\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n /* Description */\n .description-text {\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n line-height: 1.5;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n
      \n ${this.value\n ? html`\n \n \n \n \n \n `\n : this.indeterminate\n ? html`\n \n \n \n \n \n `\n : html``}\n
      \n
      \n ${this.label ? html`
      ${this.label}
      ` : ''}\n ${this.description ? html`
      ${this.description}
      ` : ''}\n
      \n
      \n
      \n `;\n }\n\n public async toggleSelected() {\n if (this.disabled) {\n return;\n }\n this.value = !this.value;\n this.dispatchEvent(\n new CustomEvent('newValue', {\n detail: this.value,\n bubbles: true,\n })\n );\n this.changeSubject.next(this);\n }\n\n public getValue(): boolean {\n return this.value;\n }\n\n public setValue(value: boolean): void {\n this.value = value;\n }\n\n public focus(): void {\n const checkboxDiv = this.shadowRoot.querySelector('.checkbox');\n if (checkboxDiv) {\n (checkboxDiv as any).focus();\n }\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.toggleSelected();\n }\n }\n}\n", "export const dark = {\n blue: '#0050b9',\n blueActive: '#0069f2',\n blueMuted: '#012452',\n text: '#ffffff',\n}\n\nexport const bright = {\n blue: '#0050b9',\n blueActive: '#0069f2',\n blueMuted: '#0069f2',\n text: '#333333',\n}", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport { DeesModal } from '../dees-modal/dees-modal.js';\n\nexport const demoFunc = () => html`\n \n \n
      \n
      \n

      Header Buttons

      \n

      Modals can have optional header buttons for help and closing.

      \n
      \n {\n DeesModal.createAndShow({\n heading: 'With Help Button',\n showHelpButton: true,\n onHelp: async () => {\n const helpModal = await DeesModal.createAndShow({\n heading: 'Help',\n width: 'small',\n showCloseButton: true,\n showHelpButton: false,\n content: html`\n

      This is the help content for the modal.

      \n

      You can provide context-specific help here.

      \n `,\n menuOptions: [{\n name: 'Got it',\n action: async (modal) => modal.destroy()\n }],\n });\n },\n content: html`\n

      This modal has a help button in the header. Click it to see help content.

      \n

      The close button is also visible by default.

      \n `,\n menuOptions: [{\n name: 'OK',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>With Help Button
      \n \n {\n DeesModal.createAndShow({\n heading: 'No Close Button',\n showCloseButton: false,\n content: html`\n

      This modal has no close button in the header.

      \n

      You must use the action buttons or click outside to close it.

      \n `,\n menuOptions: [{\n name: 'Close',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>No Close Button
      \n \n {\n DeesModal.createAndShow({\n heading: 'Both Buttons',\n showHelpButton: true,\n showCloseButton: true,\n onHelp: () => alert('Help clicked!'),\n content: html`\n

      This modal has both help and close buttons.

      \n `,\n menuOptions: [{\n name: 'Done',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Both Buttons
      \n \n {\n DeesModal.createAndShow({\n heading: 'Clean Header',\n showCloseButton: false,\n showHelpButton: false,\n content: html`\n

      This modal has a clean header with no buttons.

      \n `,\n menuOptions: [{\n name: 'Close',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Clean Header
      \n
      \n
      \n \n
      \n

      Modal Width Variations

      \n

      Modals can have different widths: small, medium, large, fullscreen, or custom pixel values.

      \n
      \n {\n DeesModal.createAndShow({\n heading: 'Small Modal',\n width: 'small',\n content: html`\n

      This is a small modal with a width of 380px. Perfect for simple confirmations or brief messages.

      \n `,\n menuOptions: [{\n name: 'Cancel',\n action: async (modal) => modal.destroy()\n }, {\n name: 'OK',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Small Modal
      \n \n {\n DeesModal.createAndShow({\n heading: 'Medium Modal (Default)',\n width: 'medium',\n content: html`\n \n \n \n \n \n `,\n menuOptions: [{\n name: 'Cancel',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Sign Up',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Medium Modal\n \n {\n DeesModal.createAndShow({\n heading: 'Large Modal',\n width: 'large',\n content: html`\n

      Wide Content Area

      \n

      This large modal is 800px wide and perfect for displaying more complex content like forms with multiple columns, tables, or detailed information.

      \n
      \n \n \n \n \n
      \n `,\n menuOptions: [{\n name: 'Cancel',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Save',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Large Modal
      \n \n {\n DeesModal.createAndShow({\n heading: 'Fullscreen Editor',\n width: 'fullscreen',\n showHelpButton: true,\n onHelp: async () => {\n alert('In a real app, this would show editor documentation');\n },\n content: html`\n

      Fullscreen Experience with Header Controls

      \n

      This modal takes up almost the entire viewport with a 20px margin on all sides. The header buttons are particularly useful in fullscreen mode.

      \n

      The content area can be as tall as needed and will scroll if necessary.

      \n
      \n Large content area\n
      \n `,\n menuOptions: [{\n name: 'Save',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Cancel',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Fullscreen Modal
      \n
      \n
      \n \n
      \n

      Custom Width & Constraints

      \n

      You can also set custom pixel widths and min/max constraints.

      \n
      \n {\n DeesModal.createAndShow({\n heading: 'Custom Width (700px)',\n width: 700,\n content: html`\n

      This modal has a custom width of exactly 700 pixels.

      \n `,\n menuOptions: [{\n name: 'Close',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Custom 700px
      \n \n {\n DeesModal.createAndShow({\n heading: 'With Max Width',\n width: 'large',\n maxWidth: 600,\n content: html`\n

      This modal is set to 'large' but constrained by a maxWidth of 600px.

      \n `,\n menuOptions: [{\n name: 'Got it',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Max Width 600px
      \n \n {\n DeesModal.createAndShow({\n heading: 'With Min Width',\n width: 300,\n minWidth: 400,\n content: html`\n

      This modal width is set to 300px but has a minWidth of 400px, so it will be 400px wide.

      \n `,\n menuOptions: [{\n name: 'OK',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Min Width 400px
      \n
      \n
      \n \n
      \n

      Button Variations

      \n

      Modals can have different button configurations with proper spacing.

      \n
      \n {\n DeesModal.createAndShow({\n heading: 'Multiple Actions',\n content: html`\n

      This modal demonstrates multiple buttons with proper spacing between them.

      \n `,\n menuOptions: [{\n name: 'Delete',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Cancel',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Save Changes',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Three Buttons
      \n \n {\n DeesModal.createAndShow({\n heading: 'Single Action',\n content: html`\n

      Sometimes you just need one button.

      \n `,\n menuOptions: [{\n name: 'Acknowledge',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Single Button
      \n \n {\n DeesModal.createAndShow({\n heading: 'No Actions',\n content: html`\n

      This modal has no bottom buttons. Use the X button or click outside to close.

      \n

      This is useful for informational modals that don't require user action.

      \n `,\n menuOptions: [],\n });\n }}>No Buttons
      \n \n {\n DeesModal.createAndShow({\n heading: 'Long Button Labels',\n content: html`\n

      Testing button layout with longer labels.

      \n `,\n menuOptions: [{\n name: 'Discard All Changes',\n action: async (modal) => modal.destroy()\n }, {\n name: 'Save and Continue Editing',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Long Labels
      \n
      \n
      \n \n
      \n

      Responsive Behavior

      \n

      All modals automatically become full-width on mobile devices (< 768px viewport width) for better usability.

      \n {\n DeesModal.createAndShow({\n heading: 'Responsive Modal',\n width: 'large',\n showHelpButton: true,\n onHelp: () => console.log('Help requested for responsive modal'),\n content: html`\n

      Resize your browser window to see how this modal adapts. On mobile viewports, it will automatically take the full width minus margins.

      \n

      The header buttons remain accessible at all viewport sizes.

      \n `,\n menuOptions: [{\n name: 'Close',\n action: async (modal) => modal.destroy()\n }],\n });\n }}>Test Responsive
      \n
      \n
      \n`", "import * as colors from '../../00colors.js';\nimport * as plugins from '../../00plugins.js';\nimport { zIndexLayers, zIndexRegistry } from '../../00zindex.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\n\nimport { demoFunc } from './dees-modal.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n unsafeHTML,\n state,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesWindowLayer } from '../dees-windowlayer/dees-windowlayer.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-modal': DeesModal;\n }\n}\n\n@customElement('dees-modal')\nexport class DeesModal extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Overlay'];\n\n public static async createAndShow(optionsArg: {\n heading: string;\n content: TemplateResult;\n menuOptions: plugins.tsclass.website.IMenuItem[];\n width?: 'small' | 'medium' | 'large' | 'fullscreen' | number;\n maxWidth?: number;\n minWidth?: number;\n showCloseButton?: boolean;\n showHelpButton?: boolean;\n onHelp?: () => void | Promise;\n mobileFullscreen?: boolean;\n contentPadding?: number;\n }) {\n const body = document.body;\n const modal = new DeesModal();\n modal.heading = optionsArg.heading;\n modal.content = optionsArg.content;\n modal.menuOptions = optionsArg.menuOptions;\n if (optionsArg.width) modal.width = optionsArg.width;\n if (optionsArg.maxWidth) modal.maxWidth = optionsArg.maxWidth;\n if (optionsArg.minWidth) modal.minWidth = optionsArg.minWidth;\n if (optionsArg.showCloseButton !== undefined) modal.showCloseButton = optionsArg.showCloseButton;\n if (optionsArg.showHelpButton !== undefined) modal.showHelpButton = optionsArg.showHelpButton;\n if (optionsArg.onHelp) modal.onHelp = optionsArg.onHelp;\n if (optionsArg.mobileFullscreen !== undefined) modal.mobileFullscreen = optionsArg.mobileFullscreen;\n if (optionsArg.contentPadding !== undefined) modal.contentPadding = optionsArg.contentPadding;\n modal.windowLayer = await DeesWindowLayer.createAndShow({\n blur: true,\n });\n modal.windowLayer.addEventListener('click', async () => {\n await modal.destroy();\n });\n body.append(modal.windowLayer);\n body.append(modal);\n \n // Get z-index for modal (should be above window layer)\n modal.modalZIndex = zIndexRegistry.getNextZIndex();\n zIndexRegistry.register(modal, modal.modalZIndex);\n \n return modal;\n }\n\n // INSTANCE\n\n @property({\n type: String,\n })\n accessor heading = '';\n\n @state({})\n accessor content: TemplateResult;\n\n @state({})\n accessor menuOptions: plugins.tsclass.website.IMenuItem[] = [];\n\n @property({ type: String })\n accessor width: 'small' | 'medium' | 'large' | 'fullscreen' | number = 'medium';\n\n @property({ type: Number })\n accessor maxWidth: number;\n\n @property({ type: Number })\n accessor minWidth: number;\n\n @property({ type: Boolean })\n accessor showCloseButton: boolean = true;\n\n @property({ type: Boolean })\n accessor showHelpButton: boolean = false;\n\n @property({ attribute: false })\n accessor onHelp: () => void | Promise;\n\n @property({ type: Boolean })\n accessor mobileFullscreen: boolean = false;\n\n @property({ type: Number })\n accessor contentPadding: number = 16;\n\n @state()\n accessor modalZIndex: number = 1000;\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: ${cssGeistFontFamily};\n color: ${cssManager.bdTheme('#333', '#fff')};\n will-change: transform;\n }\n .modalContainer {\n display: flex;\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100vw;\n height: 100vh;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n }\n .modal {\n will-change: transform;\n transform: translateY(0px) scale(0.95);\n opacity: 0;\n min-height: 120px;\n max-height: calc(100vh - 40px);\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border-radius: 6px;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n transition: all 0.2s ease;\n overflow: hidden;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n margin: 20px;\n display: flex;\n flex-direction: column;\n overscroll-behavior: contain;\n }\n\n /* Width variations */\n .modal.width-small {\n width: 380px;\n }\n\n .modal.width-medium {\n width: 560px;\n }\n\n .modal.width-large {\n width: 800px;\n }\n\n .modal.width-fullscreen {\n width: calc(100vw - 40px);\n height: calc(100vh - 40px);\n max-height: calc(100vh - 40px);\n }\n\n @media (max-width: 768px) {\n .modal {\n width: calc(100vw - 40px) !important;\n max-width: none !important;\n }\n \n /* Allow full height on mobile when content needs it */\n .modalContainer {\n padding: 10px;\n }\n \n .modal {\n margin: 10px;\n max-height: calc(100vh - 20px);\n }\n \n /* Full screen mode on mobile */\n .modal.mobile-fullscreen {\n width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh !important;\n margin: 0;\n border-radius: 0;\n border: none;\n }\n }\n\n .modal.show {\n opacity: 1;\n transform: translateY(0px) scale(1);\n }\n\n .modal.show.predestroy {\n opacity: 0;\n transform: translateY(10px) scale(1);\n }\n\n .modal .heading {\n height: 40px;\n min-height: 40px;\n font-family: ${cssGeistFontFamily};\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n position: relative;\n flex-shrink: 0;\n }\n\n .modal .heading .header-buttons {\n display: flex;\n align-items: center;\n gap: 4px;\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n }\n\n .modal .heading .header-button {\n width: 28px;\n height: 28px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.15s ease;\n background: transparent;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .modal .heading .header-button:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .modal .heading .header-button:active {\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n }\n\n .modal .heading .header-button dees-icon {\n width: 16px;\n height: 16px;\n display: block;\n }\n\n .modal .heading .heading-text {\n flex: 1;\n text-align: center;\n font-weight: 600;\n font-size: 14px;\n line-height: 40px;\n padding: 0 40px;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .modal .content {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n }\n .modal .bottomButtons {\n display: flex;\n flex-direction: row;\n border-top: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n justify-content: flex-end;\n gap: 8px;\n padding: 8px;\n flex-shrink: 0;\n }\n\n .modal .bottomButtons .bottomButton {\n padding: 8px 16px;\n border-radius: 4px;\n line-height: 16px;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n user-select: none;\n transition: all 0.15s ease;\n background: ${cssManager.bdTheme('#ffffff', '#27272a')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n white-space: nowrap;\n }\n\n .modal .bottomButtons .bottomButton:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#3f3f46')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#52525b')};\n }\n .modal .bottomButtons .bottomButton:active {\n background: ${cssManager.bdTheme('#e5e7eb', '#52525b')};\n }\n .modal .bottomButtons .bottomButton:last-child {\n border-right: none;\n }\n\n .modal .bottomButtons .bottomButton.primary {\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n border-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n color: #ffffff;\n }\n .modal .bottomButtons .bottomButton.primary:hover {\n background: ${cssManager.bdTheme('#2563eb', '#2563eb')};\n border-color: ${cssManager.bdTheme('#2563eb', '#2563eb')};\n }\n .modal .bottomButtons .bottomButton.primary:active {\n background: ${cssManager.bdTheme('#1d4ed8', '#1d4ed8')};\n border-color: ${cssManager.bdTheme('#1d4ed8', '#1d4ed8')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n const widthClass = typeof this.width === 'string' ? `width-${this.width}` : '';\n const customWidth = typeof this.width === 'number' ? `${this.width}px` : '';\n const maxWidthStyle = this.maxWidth ? `${this.maxWidth}px` : '';\n const minWidthStyle = this.minWidth ? `${this.minWidth}px` : '';\n const mobileFullscreenClass = this.mobileFullscreen ? 'mobile-fullscreen' : '';\n\n return html`\n \n
      \n
      \n
      \n
      ${this.heading}
      \n
      \n ${this.showHelpButton ? html`\n
      \n \n
      \n ` : ''}\n ${this.showCloseButton ? html`\n
      this.destroy()} title=\"Close\">\n \n
      \n ` : ''}\n
      \n
      \n
      ${this.content}
      \n ${this.menuOptions.length > 0 ? html`\n
      \n ${this.menuOptions.map(\n (actionArg, index) => html`\n
      {\n actionArg.action(this);\n }}>${actionArg.name}
      \n `\n )}\n
      \n ` : ''}\n
      \n
      \n `;\n }\n\n private windowLayer: DeesWindowLayer;\n public async firstUpdated(_changedProperties: Map) {\n super.firstUpdated(_changedProperties);\n const domtools = await this.domtoolsPromise;\n await domtools.convenience.smartdelay.delayFor(30);\n const modal = this.shadowRoot.querySelector('.modal');\n modal.classList.add('show');\n }\n\n public async handleOutsideClick(eventArg: MouseEvent) {\n eventArg.stopPropagation();\n const modalContainer = this.shadowRoot.querySelector('.modalContainer');\n if (eventArg.target === modalContainer) {\n await this.destroy();\n }\n }\n\n public async destroy() {\n const domtools = await this.domtoolsPromise;\n const modal = this.shadowRoot.querySelector('.modal');\n modal.classList.add('predestroy');\n await domtools.convenience.smartdelay.delayFor(200);\n document.body.removeChild(this);\n await this.windowLayer.destroy();\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n }\n\n private async handleHelp() {\n if (this.onHelp) {\n await this.onHelp();\n }\n }\n}\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => {\n return html`\n \n `;\n}", "import * as plugins from '../../00plugins.js';\nimport * as colors from '../../00colors.js';\n\nimport {\n customElement,\n html,\n css,\n cssManager,\n DeesElement,\n property,\n unsafeCSS,\n query,\n} from '@design.estate/dees-element';\n\nimport { demoFunc } from './dees-label.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-label')\nexport class DeesLabel extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout', 'Input'];\n\n // INSTANCE\n\n @property({\n type: String,\n reflect: true,\n })\n accessor label = '';\n\n @property({\n type: String,\n reflect: true,\n })\n accessor description: string;\n\n @property({\n type: Boolean,\n reflect: true,\n })\n accessor required: boolean = false;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n }\n\n .label {\n display: inline-block;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n font-size: 14px;\n font-weight: 500;\n line-height: 1.5;\n margin-bottom: 6px;\n cursor: default;\n user-select: none;\n letter-spacing: -0.01em;\n }\n\n .required {\n color: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 72.2% 50.6%)')};\n margin-left: 2px;\n }\n\n dees-icon {\n display: inline-block;\n font-size: 12px;\n transform: translateY(1px);\n margin-left: 4px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n cursor: help;\n }\n `,\n ];\n\n public render() {\n return html`\n ${this.label\n ? html`\n
      \n ${this.label}\n ${this.required ? html`*` : ''}\n ${this.description\n ? html`\n \n \n `\n : html``}\n
      \n `\n : html``}\n `;\n }\n}\n", "// Auto-generated by scripts/update-monaco-version.cjs\nexport const MONACO_VERSION = '0.55.1';\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { MONACO_VERSION } from './version.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nimport type * as monaco from 'monaco-editor';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-monaco': DeesWorkspaceMonaco;\n }\n}\n\n@customElement('dees-workspace-monaco')\nexport class DeesWorkspaceMonaco extends DeesElement {\n // DEMO\n public static demo = () => html``;\n public static demoGroups = ['Workspace'];\n\n // STATIC\n public static monacoDeferred: ReturnType;\n\n // INSTANCE\n public editorDeferred = domtools.plugins.smartpromise.defer();\n\n @property({\n type: String\n })\n accessor content = \"function hello() {\\n\\talert('Hello world!');\\n}\";\n\n @property({\n type: String\n })\n accessor language = 'typescript';\n\n @property({\n type: String\n })\n accessor filePath: string = '';\n\n @property({\n type: Object\n })\n accessor contentSubject = new domtools.plugins.smartrx.rxjs.Subject();\n\n @property({\n type: Boolean\n })\n accessor wordWrap: monaco.editor.IStandaloneEditorConstructionOptions['wordWrap'] = 'off';\n\n private monacoThemeSubscription: domtools.plugins.smartrx.rxjs.Subscription | null = null;\n private isUpdatingFromExternal: boolean = false;\n\n constructor() {\n super();\n domtools.DomTools.setupDomTools();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .mainbox {\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n #container {\n position: absolute;\n height: 100%;\n width: 100%;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n
      \n `;\n }\n\n public async firstUpdated(\n _changedProperties: Map\n ): Promise {\n super.firstUpdated(_changedProperties);\n const container = this.shadowRoot.getElementById('container');\n const monacoCdnBase = `https://cdn.jsdelivr.net/npm/monaco-editor@${MONACO_VERSION}`;\n\n if (!DeesWorkspaceMonaco.monacoDeferred) {\n DeesWorkspaceMonaco.monacoDeferred = domtools.plugins.smartpromise.defer();\n const scriptUrl = `${monacoCdnBase}/min/vs/loader.js`;\n const script = document.createElement('script');\n script.src = scriptUrl;\n script.onload = () => {\n DeesWorkspaceMonaco.monacoDeferred.resolve();\n };\n document.head.appendChild(script);\n }\n await DeesWorkspaceMonaco.monacoDeferred.promise;\n\n (window as any).require.config({\n paths: { vs: `${monacoCdnBase}/min/vs` },\n });\n (window as any).require(['vs/editor/editor.main'], async () => {\n // Get current theme from domtools\n const domtoolsInstance = await this.domtoolsPromise;\n const isBright = domtoolsInstance.themeManager.goBrightBoolean;\n const initialTheme = isBright ? 'vs' : 'vs-dark';\n\n const monacoInstance = (window as any).monaco as typeof monaco;\n\n // Create or get model with proper file URI for TypeScript IntelliSense\n let model: monaco.editor.ITextModel | null = null;\n if (this.filePath) {\n const uri = monacoInstance.Uri.parse(`file://${this.filePath}`);\n model = monacoInstance.editor.getModel(uri);\n if (!model) {\n model = monacoInstance.editor.createModel(this.content, this.language, uri);\n } else {\n model.setValue(this.content);\n }\n }\n\n const editor = (monacoInstance.editor as typeof monaco.editor).create(container, {\n model: model || undefined,\n value: model ? undefined : this.content,\n language: model ? undefined : this.language,\n theme: initialTheme,\n useShadowDOM: true,\n fontSize: 16,\n automaticLayout: true,\n wordWrap: this.wordWrap,\n hover: {\n enabled: true,\n delay: 300,\n sticky: true,\n above: false,\n },\n });\n\n // Subscribe to theme changes\n this.monacoThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe((goBright: boolean) => {\n const newTheme = goBright ? 'vs' : 'vs-dark';\n editor.updateOptions({ theme: newTheme });\n });\n\n this.editorDeferred.resolve(editor);\n });\n const css = await (\n await fetch(`${monacoCdnBase}/min/vs/editor/editor.main.css`)\n ).text();\n const styleElement = document.createElement('style');\n styleElement.textContent = css;\n this.shadowRoot.append(styleElement);\n\n\n // editor is setup let do the rest\n const editor = await this.editorDeferred.promise;\n editor.onDidChangeModelContent(async eventArg => {\n // Don't emit events when we're programmatically updating the content\n if (this.isUpdatingFromExternal) return;\n\n const value = editor.getValue();\n this.contentSubject.next(value);\n this.dispatchEvent(new CustomEvent('content-change', {\n detail: value,\n bubbles: true,\n composed: true,\n }));\n });\n this.contentSubject.next(editor.getValue());\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n\n const monacoInstance = (window as any).monaco as typeof monaco;\n if (!monacoInstance) return;\n\n // Handle filePath changes - switch to different model\n if (changedProperties.has('filePath') && this.filePath) {\n const editor = await this.editorDeferred.promise;\n const uri = monacoInstance.Uri.parse(`file://${this.filePath}`);\n let model = monacoInstance.editor.getModel(uri);\n\n if (!model) {\n model = monacoInstance.editor.createModel(this.content, this.language, uri);\n } else {\n // Update model content if different\n if (model.getValue() !== this.content) {\n this.isUpdatingFromExternal = true;\n model.setValue(this.content);\n this.isUpdatingFromExternal = false;\n }\n }\n\n // Switch editor to use this model\n const currentModel = editor.getModel();\n if (currentModel?.uri.toString() !== uri.toString()) {\n editor.setModel(model);\n }\n return; // filePath change handles content too\n }\n\n // Handle content changes (when no filePath or filePath unchanged)\n if (changedProperties.has('content')) {\n const editor = await this.editorDeferred.promise;\n const currentValue = editor.getValue();\n if (currentValue !== this.content) {\n this.isUpdatingFromExternal = true;\n editor.setValue(this.content);\n this.isUpdatingFromExternal = false;\n }\n }\n\n // Handle language changes\n if (changedProperties.has('language')) {\n const editor = await this.editorDeferred.promise;\n const model = editor.getModel();\n if (model) {\n monacoInstance.editor.setModelLanguage(model, this.language);\n }\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.monacoThemeSubscription) {\n this.monacoThemeSubscription.unsubscribe();\n this.monacoThemeSubscription = null;\n }\n }\n\n /**\n * Update content from external source with optional cursor preservation.\n * Use this when the file content changes externally (e.g., file changed on disk).\n * @param newContent The new content to set\n * @param preserveCursor Whether to preserve cursor/scroll position (default: true)\n */\n public async setContentExternal(\n newContent: string,\n preserveCursor: boolean = true\n ): Promise {\n const editor = await this.editorDeferred.promise;\n const currentValue = editor.getValue();\n\n if (currentValue === newContent) return;\n\n // Save cursor state if preserving\n const position = preserveCursor ? editor.getPosition() : null;\n const selections = preserveCursor ? editor.getSelections() : null;\n const scrollTop = preserveCursor ? editor.getScrollTop() : 0;\n const scrollLeft = preserveCursor ? editor.getScrollLeft() : 0;\n\n // Update content\n this.isUpdatingFromExternal = true;\n editor.setValue(newContent);\n this.isUpdatingFromExternal = false;\n\n // Restore cursor state if preserving\n if (preserveCursor) {\n if (position) {\n // Clamp position to valid range\n const model = editor.getModel();\n const lineCount = model?.getLineCount() || 1;\n const clampedLine = Math.min(position.lineNumber, lineCount);\n const lineLength = model?.getLineMaxColumn(clampedLine) || 1;\n const clampedColumn = Math.min(position.column, lineLength);\n editor.setPosition({ lineNumber: clampedLine, column: clampedColumn });\n }\n if (selections && selections.length > 0) {\n // Selections may be invalid after content change, wrap in try-catch\n try {\n editor.setSelections(selections);\n } catch {\n // Ignore invalid selections\n }\n }\n editor.setScrollPosition({ scrollTop, scrollLeft });\n }\n }\n}\n", "import { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport {\n customElement,\n type TemplateResult,\n property,\n html,\n cssManager,\n css,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-layout/dees-label/dees-label.js';\nimport '../../00group-workspace/dees-workspace-monaco/dees-workspace-monaco.js';\nimport { DeesWorkspaceMonaco } from '../../00group-workspace/dees-workspace-monaco/dees-workspace-monaco.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-code': DeesInputCode;\n }\n}\n\n// Common programming languages for the language selector\nconst LANGUAGES = [\n { key: 'typescript', label: 'TypeScript' },\n { key: 'javascript', label: 'JavaScript' },\n { key: 'json', label: 'JSON' },\n { key: 'html', label: 'HTML' },\n { key: 'css', label: 'CSS' },\n { key: 'scss', label: 'SCSS' },\n { key: 'markdown', label: 'Markdown' },\n { key: 'yaml', label: 'YAML' },\n { key: 'xml', label: 'XML' },\n { key: 'sql', label: 'SQL' },\n { key: 'python', label: 'Python' },\n { key: 'java', label: 'Java' },\n { key: 'csharp', label: 'C#' },\n { key: 'cpp', label: 'C++' },\n { key: 'go', label: 'Go' },\n { key: 'rust', label: 'Rust' },\n { key: 'shell', label: 'Shell' },\n { key: 'plaintext', label: 'Plain Text' },\n];\n\n@customElement('dees-input-code')\nexport class DeesInputCode extends DeesInputBase {\n public static demo = () => html`\n \n `;\n public static demoGroups = ['Input', 'Workspace'];\n\n // INSTANCE\n @property({ type: String })\n accessor value: string = '';\n\n @property({ type: String })\n accessor language: string = 'typescript';\n\n @property({ type: String })\n accessor height: string = '200px';\n\n @property({ type: String })\n accessor wordWrap: 'on' | 'off' = 'off';\n\n @property({ type: Boolean })\n accessor showLineNumbers: boolean = true;\n\n @state()\n accessor isLanguageDropdownOpen: boolean = false;\n\n @state()\n accessor copySuccess: boolean = false;\n\n private editorElement: DeesWorkspaceMonaco | null = null;\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n * {\n box-sizing: border-box;\n }\n\n :host {\n display: flex;\n flex-direction: column;\n min-height: 0;\n }\n\n .input-wrapper,\n :host([label-position=\"top\"]) .input-wrapper,\n :host([label-position=\"left\"]) .input-wrapper,\n :host([label-position=\"right\"]) .input-wrapper {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n }\n\n .code-container {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n overflow: hidden;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n }\n\n .toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n gap: 8px;\n }\n\n .toolbar-left {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .toolbar-right {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .language-selector {\n position: relative;\n }\n\n .language-button {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n font-size: 12px;\n font-weight: 500;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 12%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 20%)')};\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n transition: all 0.15s ease;\n }\n\n .language-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 15%)')};\n }\n\n .language-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 20%)')};\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n z-index: 100;\n max-height: 250px;\n overflow-y: auto;\n min-width: 140px;\n }\n\n .language-option {\n padding: 8px 12px;\n font-size: 12px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n transition: background 0.15s ease;\n }\n\n .language-option:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 15%)')};\n }\n\n .language-option.selected {\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 20%)')};\n }\n\n .toolbar-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .toolbar-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 15%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n }\n\n .toolbar-button.active {\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n }\n\n .toolbar-button.success {\n color: hsl(142.1 76.2% 36.3%);\n }\n\n .editor-wrapper {\n position: relative;\n flex: 1;\n min-height: 0;\n }\n\n dees-workspace-monaco {\n display: block;\n height: 100%;\n }\n\n .toolbar-divider {\n width: 1px;\n height: 20px;\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n margin: 0 4px;\n }\n\n :host([disabled]) .code-container {\n opacity: 0.5;\n pointer-events: none;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const currentLanguage = LANGUAGES.find(l => l.key === this.language) || LANGUAGES[0];\n\n return html`\n \n
      \n \n
      \n
      \n
      \n
      \n \n ${currentLanguage.label}\n \n \n ${this.isLanguageDropdownOpen ? html`\n
      \n ${LANGUAGES.map(lang => html`\n this.selectLanguage(e, lang.key)}\n >\n ${lang.label}\n
      \n `)}\n
      \n ` : ''}\n
      \n
      \n
      \n \n \n \n \n \n \n
      \n \n \n \n \n \n \n
      \n
      \n
      \n \n
      \n
      \n \n `;\n }\n\n async firstUpdated() {\n this.editorElement = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (this.editorElement) {\n // Subscribe to content changes from the editor\n this.editorElement.contentSubject.subscribe((newContent: string) => {\n if (this.value !== newContent) {\n this.value = newContent;\n this.changeSubject.next(this as any);\n }\n });\n }\n }\n\n private toggleLanguageDropdown() {\n this.isLanguageDropdownOpen = !this.isLanguageDropdownOpen;\n }\n\n private handleLanguageBlur() {\n // Small delay to allow click events on dropdown items\n setTimeout(() => {\n this.isLanguageDropdownOpen = false;\n }, 150);\n }\n\n private async selectLanguage(e: Event, languageKey: string) {\n e.preventDefault();\n this.language = languageKey;\n this.isLanguageDropdownOpen = false;\n\n // Update the editor language\n if (this.editorElement) {\n this.editorElement.language = languageKey;\n const editor = await this.editorElement.editorDeferred.promise;\n const model = editor.getModel();\n if (model) {\n (window as any).monaco.editor.setModelLanguage(model, languageKey);\n }\n }\n }\n\n private toggleWordWrap() {\n this.wordWrap = this.wordWrap === 'on' ? 'off' : 'on';\n this.updateEditorOption('wordWrap', this.wordWrap);\n }\n\n private toggleLineNumbers() {\n this.showLineNumbers = !this.showLineNumbers;\n this.updateEditorOption('lineNumbers', this.showLineNumbers ? 'on' : 'off');\n }\n\n private async updateEditorOption(option: string, value: any) {\n if (this.editorElement) {\n const editor = await this.editorElement.editorDeferred.promise;\n editor.updateOptions({ [option]: value });\n }\n }\n\n private async copyCode() {\n try {\n await navigator.clipboard.writeText(this.value);\n this.copySuccess = true;\n setTimeout(() => {\n this.copySuccess = false;\n }, 2000);\n } catch (err) {\n console.error('Failed to copy code:', err);\n }\n }\n\n private handleContentChange(e: CustomEvent) {\n const newContent = e.detail;\n if (this.value !== newContent) {\n this.value = newContent;\n this.changeSubject.next(this as any);\n }\n }\n\n public async openFullscreen() {\n const currentValue = this.value;\n let modalEditorElement: DeesWorkspaceMonaco | null = null;\n\n // Modal-specific state\n let modalLanguage = this.language;\n let modalWordWrap = this.wordWrap;\n let modalShowLineNumbers = this.showLineNumbers;\n let modalLanguageDropdownOpen = false;\n let modalCopySuccess = false;\n\n // Helper to get current language label\n const getLanguageLabel = () => {\n const lang = LANGUAGES.find(l => l.key === modalLanguage);\n return lang ? lang.label : 'TypeScript';\n };\n\n // Helper to update toolbar UI\n const updateToolbarUI = (modal: DeesModal) => {\n const toolbar = modal.shadowRoot?.querySelector('.modal-toolbar');\n if (!toolbar) return;\n\n // Update language button text\n const langBtn = toolbar.querySelector('.language-button span');\n if (langBtn) langBtn.textContent = getLanguageLabel();\n\n // Update word wrap button\n const wrapBtn = toolbar.querySelector('.wrap-btn') as HTMLElement;\n if (wrapBtn) {\n wrapBtn.classList.toggle('active', modalWordWrap === 'on');\n }\n\n // Update line numbers button\n const linesBtn = toolbar.querySelector('.lines-btn') as HTMLElement;\n if (linesBtn) {\n linesBtn.classList.toggle('active', modalShowLineNumbers);\n }\n\n // Update copy button\n const copyBtn = toolbar.querySelector('.copy-btn') as HTMLElement;\n const copyIcon = copyBtn?.querySelector('dees-icon') as any;\n if (copyBtn && copyIcon) {\n copyBtn.classList.toggle('success', modalCopySuccess);\n copyIcon.icon = modalCopySuccess ? 'lucide:Check' : 'lucide:Copy';\n }\n\n // Update dropdown visibility\n const dropdown = toolbar.querySelector('.language-dropdown') as HTMLElement;\n if (dropdown) {\n dropdown.style.display = modalLanguageDropdownOpen ? 'block' : 'none';\n }\n };\n\n const modal = await DeesModal.createAndShow({\n heading: this.label || 'Code Editor',\n width: 'fullscreen',\n contentPadding: 0,\n content: html`\n \n
      \n
      \n
      \n \n
      \n ${LANGUAGES.map(lang => html`\n \n ${lang.label}\n
      \n `)}\n
      \n
      \n
      \n
      \n \n \n
      \n \n
      \n \n
      \n \n
      \n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modalRef) => {\n await modalRef.destroy();\n },\n },\n {\n name: 'Save & Close',\n action: async (modalRef) => {\n // Get the editor content from the modal\n modalEditorElement = modalRef.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (modalEditorElement) {\n const editor = await modalEditorElement.editorDeferred.promise;\n const newValue = editor.getValue();\n this.setValue(newValue);\n }\n await modalRef.destroy();\n },\n },\n ],\n });\n\n // Wait for modal to render\n await new Promise(resolve => setTimeout(resolve, 100));\n modalEditorElement = modal.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n\n // Wire up toolbar event handlers\n const toolbar = modal.shadowRoot?.querySelector('.modal-toolbar');\n if (toolbar) {\n // Language button click\n const langBtn = toolbar.querySelector('.language-button');\n langBtn?.addEventListener('click', () => {\n modalLanguageDropdownOpen = !modalLanguageDropdownOpen;\n updateToolbarUI(modal);\n });\n\n // Language option clicks\n const langOptions = toolbar.querySelectorAll('.language-option');\n langOptions.forEach((option) => {\n option.addEventListener('click', async () => {\n const newLang = (option as HTMLElement).dataset.lang;\n if (newLang && modalEditorElement) {\n modalLanguage = newLang;\n modalLanguageDropdownOpen = false;\n\n // Update editor language\n const editor = await modalEditorElement.editorDeferred.promise;\n const model = editor.getModel();\n if (model) {\n (window as any).monaco.editor.setModelLanguage(model, newLang);\n }\n\n // Update selected state\n langOptions.forEach(opt => opt.classList.remove('selected'));\n option.classList.add('selected');\n\n updateToolbarUI(modal);\n }\n });\n });\n\n // Word wrap button\n const wrapBtn = toolbar.querySelector('.wrap-btn');\n wrapBtn?.addEventListener('click', async () => {\n modalWordWrap = modalWordWrap === 'on' ? 'off' : 'on';\n if (modalEditorElement) {\n const editor = await modalEditorElement.editorDeferred.promise;\n editor.updateOptions({ wordWrap: modalWordWrap });\n }\n updateToolbarUI(modal);\n });\n\n // Line numbers button\n const linesBtn = toolbar.querySelector('.lines-btn');\n linesBtn?.addEventListener('click', async () => {\n modalShowLineNumbers = !modalShowLineNumbers;\n if (modalEditorElement) {\n const editor = await modalEditorElement.editorDeferred.promise;\n editor.updateOptions({ lineNumbers: modalShowLineNumbers ? 'on' : 'off' });\n }\n updateToolbarUI(modal);\n });\n\n // Copy button\n const copyBtn = toolbar.querySelector('.copy-btn');\n copyBtn?.addEventListener('click', async () => {\n if (modalEditorElement) {\n const editor = await modalEditorElement.editorDeferred.promise;\n const content = editor.getValue();\n try {\n await navigator.clipboard.writeText(content);\n modalCopySuccess = true;\n updateToolbarUI(modal);\n setTimeout(() => {\n modalCopySuccess = false;\n updateToolbarUI(modal);\n }, 2000);\n } catch (err) {\n console.error('Failed to copy code:', err);\n }\n }\n });\n\n // Close dropdown when clicking outside\n document.addEventListener('click', (e) => {\n if (modalLanguageDropdownOpen && !langBtn?.contains(e.target as Node)) {\n modalLanguageDropdownOpen = false;\n updateToolbarUI(modal);\n }\n }, { once: true });\n }\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n if (this.editorElement) {\n this.editorElement.content = value;\n // Also update the Monaco editor directly if it's already loaded\n this.editorElement.editorDeferred.promise.then(editor => {\n if (editor.getValue() !== value) {\n editor.setValue(value);\n }\n });\n }\n this.changeSubject.next(this as any);\n }\n}\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport './component.js';\nimport type { DeesInputDatepicker } from './component.js';\n\nexport const demoFunc = () => html`\n \n \n
      \n {\n // Demonstrate basic date picker functionality\n const datePicker = elementArg.querySelector('dees-input-datepicker');\n \n if (datePicker) {\n datePicker.addEventListener('change', (event: CustomEvent) => {\n console.log('Basic date selected:', (event.target as DeesInputDatepicker).value);\n });\n }\n }}>\n \n \n \n \n\n {\n // Demonstrate date and time picker\n const dateTimePicker = elementArg.querySelector('dees-input-datepicker[label=\"Event Date & Time\"]');\n const appointmentPicker = elementArg.querySelector('dees-input-datepicker[label=\"Appointment\"]');\n \n if (dateTimePicker) {\n dateTimePicker.addEventListener('change', (event: CustomEvent) => {\n const value = (event.target as DeesInputDatepicker).value;\n console.log('24h format datetime:', value);\n });\n }\n \n if (appointmentPicker) {\n appointmentPicker.addEventListener('change', (event: CustomEvent) => {\n const value = (event.target as DeesInputDatepicker).value;\n console.log('12h format datetime:', value);\n });\n }\n }}>\n \n \n \n \n \n \n\n {\n // Demonstrate timezone functionality\n const timezonePickers = elementArg.querySelectorAll('dees-input-datepicker');\n \n timezonePickers.forEach((picker) => {\n picker.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputDatepicker;\n console.log(`${target.label} value:`, target.value);\n const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;\n if (input) {\n console.log(`${target.label} formatted:`, input.value);\n }\n });\n });\n }}>\n \n \n \n \n \n \n\n {\n // Demonstrate date constraints\n const futureDatePicker = elementArg.querySelector('dees-input-datepicker');\n \n if (futureDatePicker) {\n // Show the min/max constraints in action\n futureDatePicker.addEventListener('change', (event: CustomEvent) => {\n const value = (event.target as DeesInputDatepicker).value;\n if (value) {\n const selectedDate = new Date(value);\n const today = new Date();\n const daysDiff = Math.floor((selectedDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24));\n console.log(`Selected date is ${daysDiff} days from today`);\n }\n });\n }\n }}>\n \n \n \n \n\n {\n // Demonstrate different date formats\n const formatters = {\n 'DD/MM/YYYY': 'European',\n 'MM/DD/YYYY': 'US',\n 'YYYY-MM-DD': 'ISO'\n };\n \n const datePickers = elementArg.querySelectorAll('dees-input-datepicker');\n datePickers.forEach((picker) => {\n picker.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputDatepicker;\n // Log the formatted value that's displayed in the input\n const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;\n if (input) {\n console.log(`${target.label} format:`, input.value);\n }\n });\n });\n }}>\n \n
      \n \n \n \n \n \n
      \n
      \n
      \n\n {\n // Demonstrate required field validation\n const requiredPicker = elementArg.querySelector('dees-input-datepicker[required]');\n \n if (requiredPicker) {\n // Monitor blur events for validation\n requiredPicker.addEventListener('blur', () => {\n const picker = requiredPicker as DeesInputDatepicker;\n const value = picker.getValue();\n if (!value) {\n console.log('Required date field is empty');\n }\n });\n }\n }}>\n \n \n \n \n \n \n\n {\n // Demonstrate week start customization\n const usPicker = elementArg.querySelector('dees-input-datepicker[label=\"US Calendar\"]');\n const euPicker = elementArg.querySelector('dees-input-datepicker[label=\"EU Calendar\"]');\n \n if (usPicker) {\n console.log('US Calendar starts on Sunday (0)');\n }\n if (euPicker) {\n console.log('EU Calendar starts on Monday (1)');\n }\n }}>\n \n
      \n \n \n \n
      \n
      \n
      \n\n {\n // Generate weekend dates for the current month\n const generateWeekends = () => {\n const weekends = [];\n const now = new Date();\n const year = now.getFullYear();\n const month = now.getMonth();\n \n // Get all weekends for current month\n const date = new Date(year, month, 1);\n while (date.getMonth() === month) {\n if (date.getDay() === 0 || date.getDay() === 6) {\n weekends.push(new Date(date).toISOString());\n }\n date.setDate(date.getDate() + 1);\n }\n return weekends;\n };\n \n const picker = elementArg.querySelector('dees-input-datepicker');\n if (picker) {\n picker.disabledDates = generateWeekends();\n console.log('Disabled weekend dates for current month');\n }\n }}>\n \n \n \n \n\n {\n // Generate sample events for the calendar\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear();\n \n const sampleEvents = [\n // Current week events\n {\n date: `${currentYear}-${(currentMonth + 1).toString().padStart(2, '0')}-${today.getDate().toString().padStart(2, '0')}`,\n title: \"Team Meeting\",\n type: \"info\" as const,\n count: 2\n },\n {\n date: `${currentYear}-${(currentMonth + 1).toString().padStart(2, '0')}-${(today.getDate() + 1).toString().padStart(2, '0')}`,\n title: \"Project Deadline\",\n type: \"warning\" as const\n },\n {\n date: `${currentYear}-${(currentMonth + 1).toString().padStart(2, '0')}-${(today.getDate() + 2).toString().padStart(2, '0')}`,\n title: \"Release Day\",\n type: \"success\" as const\n },\n {\n date: `${currentYear}-${(currentMonth + 1).toString().padStart(2, '0')}-${(today.getDate() + 5).toString().padStart(2, '0')}`,\n title: \"Urgent Fix Required\",\n type: \"error\" as const\n },\n // Multiple events on one day\n {\n date: `${currentYear}-${(currentMonth + 1).toString().padStart(2, '0')}-${(today.getDate() + 7).toString().padStart(2, '0')}`,\n title: \"Multiple Events Today\",\n type: \"info\" as const,\n count: 5\n },\n // Next month event\n {\n date: `${currentYear}-${(currentMonth + 2).toString().padStart(2, '0')}-15`,\n title: \"Future Planning Session\",\n type: \"info\" as const\n }\n ];\n \n const picker = elementArg.querySelector('dees-input-datepicker');\n if (picker) {\n picker.events = sampleEvents;\n console.log('Calendar events loaded:', sampleEvents);\n }\n }}>\n \n \n \n
      \n Event Legend:
      \n \u25CF Info | \n \u25CF Warning | \n \u25CF Success | \n \u25CF Error
      \n Days with more than 3 events show a count badge\n
      \n
      \n
      \n\n {\n // Interactive event demonstration\n const picker = elementArg.querySelector('dees-input-datepicker');\n const output = elementArg.querySelector('#event-output');\n \n if (picker && output) {\n picker.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputDatepicker;\n const value = target.value;\n if (value) {\n const date = new Date(value);\n // Get the formatted value from the input element\n const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;\n const formattedValue = input?.value || 'N/A';\n output.innerHTML = `\n Event triggered!
      \n ISO Value: ${value}
      \n Formatted: ${formattedValue}
      \n Date object: ${date.toLocaleString()}\n `;\n } else {\n output.innerHTML = 'Date cleared';\n }\n });\n \n picker.addEventListener('blur', () => {\n console.log('Datepicker lost focus');\n });\n }\n }}>\n \n \n \n
      \n Select a date to see event details...\n
      \n
      \n
      \n
      \n`;", "import { css, cssManager } from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\n\nexport const datepickerStyles = [\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: relative;\n }\n\n .input-container {\n position: relative;\n width: 100%;\n }\n\n .date-input {\n width: 100%;\n height: 40px;\n padding: 0 12px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n border-radius: 6px;\n font-size: 14px;\n line-height: 1.5;\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n cursor: pointer;\n transition: all 0.2s ease;\n outline: none;\n font-family: inherit;\n }\n\n .date-input::placeholder {\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .date-input:hover:not(:disabled) {\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n }\n\n .date-input:focus,\n .date-input.open {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')},\n 0 0 0 4px ${cssManager.bdTheme('hsl(222.2 47.4% 11.2% / 0.1)', 'hsl(210 20% 98% / 0.1)')};\n }\n\n .date-input:disabled {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Icon container using flexbox for better positioning */\n .icon-container {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 0 12px;\n pointer-events: none;\n }\n\n .icon-container > * {\n pointer-events: auto;\n }\n\n .calendar-icon {\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n pointer-events: none;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .clear-button {\n width: 20px;\n height: 20px;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n transition: opacity 0.2s ease, background-color 0.2s ease;\n padding: 0;\n flex-shrink: 0;\n }\n\n .clear-button:hover {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n }\n\n .clear-button:disabled {\n display: none;\n }\n\n /* Calendar Popup Styles */\n .calendar-popup {\n will-change: transform, opacity;\n pointer-events: none;\n transition: all 0.2s ease;\n opacity: 0;\n transform: translateY(-4px);\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n box-shadow: ${cssManager.bdTheme(\n '0 10px 15px -3px hsl(0 0% 0% / 0.1), 0 4px 6px -4px hsl(0 0% 0% / 0.1)',\n '0 10px 15px -3px hsl(0 0% 0% / 0.2), 0 4px 6px -4px hsl(0 0% 0% / 0.2)'\n )};\n border-radius: 6px;\n padding: 12px;\n position: absolute;\n user-select: none;\n margin-top: 4px;\n z-index: 50;\n left: 0;\n min-width: 280px;\n }\n\n .calendar-popup.top {\n bottom: calc(100% + 4px);\n top: auto;\n margin-top: 0;\n margin-bottom: 4px;\n transform: translateY(4px);\n }\n\n .calendar-popup.bottom {\n top: 100%;\n }\n\n .calendar-popup.show {\n pointer-events: all;\n transform: translateY(0);\n opacity: 1;\n }\n\n /* Calendar Header */\n .calendar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n gap: 8px;\n }\n\n .month-year-display {\n font-weight: 500;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n flex: 1;\n text-align: center;\n }\n\n .nav-button {\n width: 28px;\n height: 28px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n transition: all 0.2s ease;\n }\n\n .nav-button:hover {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n }\n\n .nav-button:active {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n /* Weekday headers */\n .weekdays {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 0;\n margin-bottom: 4px;\n }\n\n .weekday {\n text-align: center;\n font-size: 12px;\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n padding: 0 0 8px 0;\n }\n\n /* Days grid */\n .days-grid {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 2px;\n }\n\n .day {\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 6px;\n font-size: 14px;\n transition: all 0.2s ease;\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n border: none;\n width: 36px;\n height: 36px;\n background: transparent;\n }\n\n .day:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n }\n\n .day.other-month {\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n opacity: 0.5;\n }\n\n .day.today {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n font-weight: 500;\n }\n\n .day.selected {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n color: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(222.2 47.4% 11.2%)')};\n font-weight: 500;\n }\n\n .day.disabled {\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n cursor: not-allowed;\n opacity: 0.3;\n }\n\n /* Event indicators */\n .day.has-event {\n position: relative;\n }\n\n .event-indicator {\n position: absolute;\n bottom: 4px;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n gap: 2px;\n justify-content: center;\n }\n\n .event-dot {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .event-dot.info {\n background: ${cssManager.bdTheme('hsl(211 70% 52%)', 'hsl(211 70% 62%)')};\n }\n\n .event-dot.warning {\n background: ${cssManager.bdTheme('hsl(45 90% 45%)', 'hsl(45 90% 55%)')};\n }\n\n .event-dot.success {\n background: ${cssManager.bdTheme('hsl(142 69% 45%)', 'hsl(142 69% 55%)')};\n }\n\n .event-dot.error {\n background: ${cssManager.bdTheme('hsl(0 72% 51%)', 'hsl(0 72% 61%)')};\n }\n\n .event-count {\n position: absolute;\n top: 2px;\n right: 2px;\n min-width: 16px;\n height: 16px;\n padding: 0 4px;\n background: ${cssManager.bdTheme('hsl(0 72% 51%)', 'hsl(0 72% 61%)')};\n color: white;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n }\n\n /* Tooltip for event details */\n .event-tooltip {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n background: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 0%)')};\n padding: 8px 12px;\n border-radius: 6px;\n font-size: 12px;\n white-space: nowrap;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 10;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n }\n\n .event-tooltip::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 4px solid transparent;\n border-top-color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n }\n\n .day.has-event:hover .event-tooltip {\n opacity: 1;\n }\n\n /* Time selector */\n .time-selector {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n .time-selector-title {\n font-size: 12px;\n font-weight: 500;\n margin-bottom: 8px;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .time-inputs {\n display: flex;\n gap: 8px;\n align-items: center;\n }\n\n .time-input {\n width: 65px;\n height: 36px;\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n border-radius: 6px;\n padding: 0 12px;\n font-size: 14px;\n text-align: center;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n transition: all 0.2s ease;\n }\n\n .time-input:hover {\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n }\n\n .time-input:focus {\n outline: none;\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(222.2 47.4% 11.2% / 0.1)', 'hsl(210 20% 98% / 0.1)')};\n }\n\n .time-separator {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .am-pm-selector {\n display: flex;\n gap: 4px;\n margin-left: 8px;\n }\n\n .am-pm-button {\n padding: 6px 12px;\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .am-pm-button.selected {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n color: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(222.2 47.4% 11.2%)')};\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n }\n\n .am-pm-button:hover:not(.selected) {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n /* Action buttons */\n .calendar-actions {\n display: flex;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n .action-button {\n flex: 1;\n height: 36px;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .today-button {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n }\n\n .today-button:hover {\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n .today-button:active {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n .clear-button {\n background: transparent;\n border: 1px solid transparent;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .clear-button:hover {\n background: ${cssManager.bdTheme('hsl(0 72.2% 50.6% / 0.1)', 'hsl(0 62.8% 30.6% / 0.1)')};\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n }\n\n .clear-button:active {\n background: ${cssManager.bdTheme('hsl(0 72.2% 50.6% / 0.2)', 'hsl(0 62.8% 30.6% / 0.2)')};\n }\n\n /* Timezone selector */\n .timezone-selector {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n }\n\n .timezone-selector-title {\n font-size: 12px;\n font-weight: 500;\n margin-bottom: 8px;\n color: ${cssManager.bdTheme('hsl(220 8.9% 46.1%)', 'hsl(215 20.2% 65.1%)')};\n }\n\n .timezone-select {\n width: 100%;\n height: 36px;\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n border-radius: 6px;\n padding: 0 12px;\n font-size: 14px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(224 71.4% 4.1%)')};\n color: ${cssManager.bdTheme('hsl(224 71.4% 4.1%)', 'hsl(210 20% 98%)')};\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .timezone-select:hover {\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(217.2 32.6% 17.5%)')};\n background: ${cssManager.bdTheme('hsl(210 20% 98%)', 'hsl(215 27.9% 16.9%)')};\n }\n\n .timezone-select:focus {\n outline: none;\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 11.2%)', 'hsl(210 20% 98%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(222.2 47.4% 11.2% / 0.1)', 'hsl(210 20% 98% / 0.1)')};\n }\n `,\n ];", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport type { DeesInputDatepicker } from './component.js';\n\nexport const renderDatepicker = (component: DeesInputDatepicker): TemplateResult => {\n const monthNames = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'\n ];\n\n const weekDays = component.weekStartsOn === 1 \n ? ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']\n : ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\n const days = component.getDaysInMonth();\n const isAM = component.selectedHour < 12;\n const timezones = component.getTimezones();\n\n return html`\n
      \n \n
      \n \n
      \n ${component.value && !component.disabled ? html`\n \n ` : ''}\n \n
      \n \n \n
      \n \n
      \n \n
      \n ${monthNames[component.viewDate.getMonth()]} ${component.viewDate.getFullYear()}\n
      \n \n
      \n\n \n
      \n ${weekDays.map(day => html`
      ${day}
      `)}\n
      \n\n \n
      \n ${days.map(day => {\n const isToday = component.isToday(day);\n const isSelected = component.isSelected(day);\n const isOtherMonth = day.getMonth() !== component.viewDate.getMonth();\n const isDisabled = component.isDisabled(day);\n const dayEvents = component.getEventsForDate(day);\n const hasEvents = dayEvents.length > 0;\n const totalEventCount = dayEvents.reduce((sum, event) => sum + (event.count || 1), 0);\n\n return html`\n
      !isDisabled && component.selectDate(day)}\n >\n ${day.getDate()}\n ${hasEvents ? html`\n ${totalEventCount > 3 ? html`\n
      ${totalEventCount}
      \n ` : html`\n
      \n ${dayEvents.slice(0, 3).map(event => html`\n
      \n `)}\n
      \n `}\n ${dayEvents[0].title ? html`\n
      \n ${dayEvents[0].title}\n ${totalEventCount > 1 ? html` (+${totalEventCount - 1} more)` : ''}\n
      \n ` : ''}\n ` : ''}\n
      \n `;\n })}\n
      \n\n \n ${component.enableTime ? html`\n
      \n
      Time
      \n
      \n 12 ? component.selectedHour - 12 : component.selectedHour).toString().padStart(2, '0')\n : component.selectedHour.toString().padStart(2, '0')}\n @input=${(e: InputEvent) => component.handleHourInput(e)}\n min=\"${component.timeFormat === '12h' ? 1 : 0}\"\n max=\"${component.timeFormat === '12h' ? 12 : 23}\"\n />\n :\n component.handleMinuteInput(e)}\n min=\"0\"\n max=\"59\"\n step=\"${component.minuteIncrement || 1}\"\n />\n ${component.timeFormat === '12h' ? html`\n
      \n \n \n
      \n ` : ''}\n
      \n
      \n ` : ''}\n\n \n ${component.enableTimezone ? html`\n
      \n
      Timezone
      \n \n
      \n ` : ''}\n\n \n
      \n \n \n
      \n
      \n
      \n
      \n `;\n \n};\n", "import {\n customElement,\n type TemplateResult,\n property,\n state,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './demo.js';\nimport { datepickerStyles } from './styles.js';\nimport { renderDatepicker } from './template.js';\nimport type { IDateEvent } from './types.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-layout/dees-label/dees-label.js';\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-datepicker': DeesInputDatepicker;\n }\n}\n\n@customElement('dees-input-datepicker')\nexport class DeesInputDatepicker extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n @property({ type: String })\n accessor value: string = '';\n\n @property({ type: Boolean })\n accessor enableTime: boolean = false;\n\n @property({ type: String })\n accessor timeFormat: '24h' | '12h' = '24h';\n\n @property({ type: Number })\n accessor minuteIncrement: number = 1;\n\n @property({ type: String })\n accessor dateFormat: string = 'YYYY-MM-DD';\n\n @property({ type: String })\n accessor minDate: string = '';\n\n @property({ type: String })\n accessor maxDate: string = '';\n\n @property({ type: Array })\n accessor disabledDates: string[] = [];\n\n @property({ type: Number })\n accessor weekStartsOn: 0 | 1 = 1; // Default to Monday\n\n @property({ type: String })\n accessor placeholder: string = 'YYYY-MM-DD';\n\n @property({ type: Boolean })\n accessor enableTimezone: boolean = false;\n\n @property({ type: String })\n accessor timezone: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n @property({ type: Array })\n accessor events: IDateEvent[] = [];\n\n @state()\n accessor isOpened: boolean = false;\n\n @state()\n accessor opensToTop: boolean = false;\n\n @state()\n accessor selectedDate: Date | null = null;\n\n @state()\n accessor viewDate: Date = new Date();\n\n @state()\n accessor selectedHour: number = 0;\n\n @state()\n accessor selectedMinute: number = 0;\n\n public static styles = datepickerStyles;\n\n\n\n public getTimezones(): { value: string; label: string }[] {\n // Common timezones with their display names\n return [\n { value: 'UTC', label: 'UTC (Coordinated Universal Time)' },\n { value: 'America/New_York', label: 'Eastern Time (US & Canada)' },\n { value: 'America/Chicago', label: 'Central Time (US & Canada)' },\n { value: 'America/Denver', label: 'Mountain Time (US & Canada)' },\n { value: 'America/Los_Angeles', label: 'Pacific Time (US & Canada)' },\n { value: 'America/Phoenix', label: 'Arizona' },\n { value: 'America/Anchorage', label: 'Alaska' },\n { value: 'Pacific/Honolulu', label: 'Hawaii' },\n { value: 'Europe/London', label: 'London' },\n { value: 'Europe/Paris', label: 'Paris' },\n { value: 'Europe/Berlin', label: 'Berlin' },\n { value: 'Europe/Moscow', label: 'Moscow' },\n { value: 'Asia/Dubai', label: 'Dubai' },\n { value: 'Asia/Kolkata', label: 'India Standard Time' },\n { value: 'Asia/Shanghai', label: 'China Standard Time' },\n { value: 'Asia/Tokyo', label: 'Tokyo' },\n { value: 'Australia/Sydney', label: 'Sydney' },\n { value: 'Pacific/Auckland', label: 'Auckland' },\n ];\n }\n\n public render(): TemplateResult {\n return renderDatepicker(this);\n }\n\n\n\n async connectedCallback() {\n super.connectedCallback();\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n async firstUpdated() {\n // Initialize with empty value if not set\n if (!this.value) {\n this.value = '';\n }\n\n // Initialize view date and selected time\n if (this.value) {\n try {\n const date = new Date(this.value);\n if (!isNaN(date.getTime())) {\n this.selectedDate = date;\n this.viewDate = new Date(date);\n this.selectedHour = date.getHours();\n this.selectedMinute = date.getMinutes();\n }\n } catch {\n // Invalid date\n }\n } else {\n const now = new Date();\n this.viewDate = new Date(now);\n this.selectedHour = now.getHours();\n this.selectedMinute = 0;\n }\n }\n\n public formatDate(isoString: string): string {\n if (!isoString) return '';\n\n try {\n const date = new Date(isoString);\n if (isNaN(date.getTime())) return '';\n\n let formatted = this.dateFormat;\n \n // Basic date formatting\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear().toString();\n \n // Replace in correct order to avoid conflicts\n formatted = formatted.replace('YYYY', year);\n formatted = formatted.replace('YY', year.slice(-2));\n formatted = formatted.replace('MM', month);\n formatted = formatted.replace('DD', day);\n\n // Time formatting if enabled\n if (this.enableTime) {\n const hours24 = date.getHours();\n const hours12 = hours24 === 0 ? 12 : hours24 > 12 ? hours24 - 12 : hours24;\n const minutes = date.getMinutes().toString().padStart(2, '0');\n const ampm = hours24 >= 12 ? 'PM' : 'AM';\n\n if (this.timeFormat === '12h') {\n formatted += ` ${hours12}:${minutes} ${ampm}`;\n } else {\n formatted += ` ${hours24.toString().padStart(2, '0')}:${minutes}`;\n }\n }\n\n // Timezone formatting if enabled\n if (this.enableTimezone) {\n const formatter = new Intl.DateTimeFormat('en-US', {\n timeZoneName: 'short',\n timeZone: this.timezone\n });\n const parts = formatter.formatToParts(date);\n const tzPart = parts.find(part => part.type === 'timeZoneName');\n if (tzPart) {\n formatted += ` ${tzPart.value}`;\n }\n }\n\n return formatted;\n } catch {\n return '';\n }\n }\n\n private handleClickOutside = (event: MouseEvent) => {\n const path = event.composedPath();\n if (!path.includes(this)) {\n this.isOpened = false;\n document.removeEventListener('click', this.handleClickOutside);\n }\n };\n\n public async toggleCalendar(): Promise {\n if (this.disabled) return;\n\n this.isOpened = !this.isOpened;\n\n if (this.isOpened) {\n // Check available space and set position\n const inputContainer = this.shadowRoot!.querySelector('.input-container') as HTMLElement;\n const rect = inputContainer.getBoundingClientRect();\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n \n // Determine if we should open upwards (approximate height of 400px)\n this.opensToTop = spaceBelow < 400 && spaceAbove > spaceBelow;\n\n // Add click outside listener\n setTimeout(() => {\n document.addEventListener('click', this.handleClickOutside);\n }, 0);\n } else {\n document.removeEventListener('click', this.handleClickOutside);\n }\n }\n\n public getDaysInMonth(): Date[] {\n const year = this.viewDate.getFullYear();\n const month = this.viewDate.getMonth();\n const firstDay = new Date(year, month, 1);\n const lastDay = new Date(year, month + 1, 0);\n const days: Date[] = [];\n\n // Adjust for week start\n const startOffset = this.weekStartsOn === 1 \n ? (firstDay.getDay() === 0 ? 6 : firstDay.getDay() - 1)\n : firstDay.getDay();\n\n // Add days from previous month\n for (let i = startOffset; i > 0; i--) {\n days.push(new Date(year, month, 1 - i));\n }\n\n // Add days of current month\n for (let i = 1; i <= lastDay.getDate(); i++) {\n days.push(new Date(year, month, i));\n }\n\n // Add days from next month to complete the grid (6 rows)\n const remainingDays = 42 - days.length;\n for (let i = 1; i <= remainingDays; i++) {\n days.push(new Date(year, month + 1, i));\n }\n\n return days;\n }\n\n public isToday(date: Date): boolean {\n const today = new Date();\n return date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear();\n }\n\n public isSelected(date: Date): boolean {\n if (!this.selectedDate) return false;\n return date.getDate() === this.selectedDate.getDate() &&\n date.getMonth() === this.selectedDate.getMonth() &&\n date.getFullYear() === this.selectedDate.getFullYear();\n }\n\n public isDisabled(date: Date): boolean {\n // Check min date\n if (this.minDate) {\n const min = new Date(this.minDate);\n if (date < min) return true;\n }\n\n // Check max date\n if (this.maxDate) {\n const max = new Date(this.maxDate);\n if (date > max) return true;\n }\n\n // Check disabled dates\n if (this.disabledDates && this.disabledDates.length > 0) {\n return this.disabledDates.some(disabledStr => {\n try {\n const disabled = new Date(disabledStr);\n return date.getDate() === disabled.getDate() &&\n date.getMonth() === disabled.getMonth() &&\n date.getFullYear() === disabled.getFullYear();\n } catch {\n return false;\n }\n });\n }\n\n return false;\n }\n\n public getEventsForDate(date: Date): IDateEvent[] {\n if (!this.events || this.events.length === 0) return [];\n \n const dateStr = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;\n return this.events.filter(event => event.date === dateStr);\n }\n\n public selectDate(date: Date): void {\n this.selectedDate = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n this.selectedHour,\n this.selectedMinute\n );\n \n this.value = this.formatValueWithTimezone(this.selectedDate);\n this.changeSubject.next(this);\n \n if (!this.enableTime) {\n this.isOpened = false;\n }\n }\n\n public selectToday(): void {\n const today = new Date();\n this.selectedDate = today;\n this.viewDate = new Date(today);\n this.selectedHour = today.getHours();\n this.selectedMinute = today.getMinutes();\n \n this.value = this.formatValueWithTimezone(this.selectedDate);\n this.changeSubject.next(this);\n \n if (!this.enableTime) {\n this.isOpened = false;\n }\n }\n\n public clear(): void {\n this.value = '';\n this.selectedDate = null;\n this.changeSubject.next(this);\n this.isOpened = false;\n }\n\n public previousMonth(): void {\n this.viewDate = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth() - 1, 1);\n }\n\n public nextMonth(): void {\n this.viewDate = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth() + 1, 1);\n }\n\n public handleHourInput(e: InputEvent): void {\n const input = e.target as HTMLInputElement;\n let value = parseInt(input.value) || 0;\n \n if (this.timeFormat === '12h') {\n value = Math.max(1, Math.min(12, value));\n // Convert to 24h format\n if (this.selectedHour >= 12 && value !== 12) {\n this.selectedHour = value + 12;\n } else if (this.selectedHour < 12 && value === 12) {\n this.selectedHour = 0;\n } else {\n this.selectedHour = value;\n }\n } else {\n this.selectedHour = Math.max(0, Math.min(23, value));\n }\n \n this.updateSelectedDateTime();\n }\n\n public handleMinuteInput(e: InputEvent): void {\n const input = e.target as HTMLInputElement;\n let value = parseInt(input.value) || 0;\n value = Math.max(0, Math.min(59, value));\n \n if (this.minuteIncrement && this.minuteIncrement > 1) {\n value = Math.round(value / this.minuteIncrement) * this.minuteIncrement;\n }\n \n this.selectedMinute = value;\n this.updateSelectedDateTime();\n }\n\n public setAMPM(period: 'am' | 'pm'): void {\n if (period === 'am' && this.selectedHour >= 12) {\n this.selectedHour -= 12;\n } else if (period === 'pm' && this.selectedHour < 12) {\n this.selectedHour += 12;\n }\n this.updateSelectedDateTime();\n }\n\n private updateSelectedDateTime(): void {\n if (this.selectedDate) {\n this.selectedDate = new Date(\n this.selectedDate.getFullYear(),\n this.selectedDate.getMonth(),\n this.selectedDate.getDate(),\n this.selectedHour,\n this.selectedMinute\n );\n this.value = this.formatValueWithTimezone(this.selectedDate);\n this.changeSubject.next(this);\n }\n }\n\n public handleTimezoneChange(e: Event): void {\n const select = e.target as HTMLSelectElement;\n this.timezone = select.value;\n this.updateSelectedDateTime();\n }\n\n private formatValueWithTimezone(date: Date): string {\n if (!this.enableTimezone) {\n return date.toISOString();\n }\n \n // Format the date with timezone offset\n const formatter = new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n timeZone: this.timezone,\n timeZoneName: 'short'\n });\n \n const parts = formatter.formatToParts(date);\n const dateParts: any = {};\n parts.forEach(part => {\n dateParts[part.type] = part.value;\n });\n \n // Create ISO-like format with timezone\n const isoString = `${dateParts.year}-${dateParts.month}-${dateParts.day}T${dateParts.hour}:${dateParts.minute}:${dateParts.second}`;\n \n // Get timezone offset\n const tzOffset = this.getTimezoneOffset(date, this.timezone);\n return `${isoString}${tzOffset}`;\n }\n\n private getTimezoneOffset(date: Date, timezone: string): string {\n // Create a date in the target timezone\n const tzDate = new Date(date.toLocaleString('en-US', { timeZone: timezone }));\n const utcDate = new Date(date.toLocaleString('en-US', { timeZone: 'UTC' }));\n \n const offsetMinutes = (tzDate.getTime() - utcDate.getTime()) / (1000 * 60);\n const hours = Math.floor(Math.abs(offsetMinutes) / 60);\n const minutes = Math.abs(offsetMinutes) % 60;\n const sign = offsetMinutes >= 0 ? '+' : '-';\n \n return `${sign}${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;\n }\n\n public handleKeydown(e: KeyboardEvent): void {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.toggleCalendar();\n } else if (e.key === 'Escape' && this.isOpened) {\n e.preventDefault();\n this.isOpened = false;\n }\n }\n\n public clearValue(e: Event): void {\n e.stopPropagation();\n this.value = '';\n this.selectedDate = null;\n this.changeSubject.next(this);\n }\n\n public handleManualInput(e: InputEvent): void {\n const input = e.target as HTMLInputElement;\n const inputValue = input.value.trim();\n \n if (!inputValue) {\n // Clear the value if input is empty\n this.value = '';\n this.selectedDate = null;\n return;\n }\n\n const parsedDate = this.parseManualDate(inputValue);\n if (parsedDate && !isNaN(parsedDate.getTime())) {\n // Update internal state without triggering re-render of input\n this.value = parsedDate.toISOString();\n this.selectedDate = parsedDate;\n this.viewDate = new Date(parsedDate);\n this.selectedHour = parsedDate.getHours();\n this.selectedMinute = parsedDate.getMinutes();\n this.changeSubject.next(this);\n }\n }\n\n public handleInputBlur(e: FocusEvent): void {\n const input = e.target as HTMLInputElement;\n const inputValue = input.value.trim();\n \n if (!inputValue) {\n this.value = '';\n this.selectedDate = null;\n this.changeSubject.next(this);\n return;\n }\n\n const parsedDate = this.parseManualDate(inputValue);\n if (parsedDate && !isNaN(parsedDate.getTime())) {\n this.value = parsedDate.toISOString();\n this.selectedDate = parsedDate;\n this.viewDate = new Date(parsedDate);\n this.selectedHour = parsedDate.getHours();\n this.selectedMinute = parsedDate.getMinutes();\n this.changeSubject.next(this);\n // Update the input with formatted date\n input.value = this.formatDate(this.value);\n } else {\n // Revert to previous valid value on blur if parsing failed\n input.value = this.formatDate(this.value);\n }\n }\n\n private parseManualDate(input: string): Date | null {\n if (!input) return null;\n\n // Split date and time parts if present\n const parts = input.split(' ');\n let datePart = parts[0];\n let timePart = parts[1] || '';\n\n let parsedDate: Date | null = null;\n\n // Try different date formats\n // Format 1: YYYY-MM-DD (ISO-like)\n const isoMatch = datePart.match(/^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/);\n if (isoMatch) {\n const [_, year, month, day] = isoMatch;\n parsedDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n }\n\n // Format 2: DD.MM.YYYY (European)\n if (!parsedDate) {\n const euMatch = datePart.match(/^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{4})$/);\n if (euMatch) {\n const [_, day, month, year] = euMatch;\n parsedDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n }\n }\n\n // Format 3: MM/DD/YYYY (US)\n if (!parsedDate) {\n const usMatch = datePart.match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/);\n if (usMatch) {\n const [_, month, day, year] = usMatch;\n parsedDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));\n }\n }\n\n // If no date was parsed, return null\n if (!parsedDate || isNaN(parsedDate.getTime())) {\n return null;\n }\n\n // Parse time if present (HH:MM format)\n if (timePart) {\n const timeMatch = timePart.match(/^(\\d{1,2}):(\\d{2})$/);\n if (timeMatch) {\n const [_, hours, minutes] = timeMatch;\n parsedDate.setHours(parseInt(hours));\n parsedDate.setMinutes(parseInt(minutes));\n }\n } else if (!this.enableTime) {\n // If time is not enabled and not provided, use current time\n const now = new Date();\n parsedDate.setHours(now.getHours());\n parsedDate.setMinutes(now.getMinutes());\n parsedDate.setSeconds(0);\n parsedDate.setMilliseconds(0);\n }\n\n return parsedDate;\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n if (value) {\n try {\n const date = new Date(value);\n if (!isNaN(date.getTime())) {\n this.selectedDate = date;\n this.viewDate = new Date(date);\n this.selectedHour = date.getHours();\n this.selectedMinute = date.getMinutes();\n }\n } catch {\n // Invalid date\n }\n }\n }\n}", "export * from './component.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesInputText } from '../dees-input-text/dees-input-text.js';\n\nexport const demoFunc = () => html`\n \n \n
      \n {\n // Demonstrate basic text input functionality\n const inputs = elementArg.querySelectorAll('dees-input-text');\n \n inputs.forEach((input: DeesInputText) => {\n input.addEventListener('changeSubject', (event: CustomEvent) => {\n console.log(`Input \"${input.label}\" changed to:`, input.getValue());\n });\n \n input.addEventListener('blur', () => {\n console.log(`Input \"${input.label}\" lost focus`);\n });\n });\n \n // Show password visibility toggle\n const passwordInput = elementArg.querySelector('dees-input-text[key=\"password\"]') as DeesInputText;\n if (passwordInput) {\n console.log('Password input includes visibility toggle');\n }\n }}>\n \n
      \n \n\n \n\n \n
      \n
      \n
      \n \n {\n // Demonstrate horizontal layout behavior\n const horizontalInputs = elementArg.querySelectorAll('dees-input-text');\n \n // Check that inputs are properly spaced horizontally\n horizontalInputs.forEach((input: DeesInputText) => {\n const computedStyle = window.getComputedStyle(input);\n console.log(`Horizontal input \"${input.label}\" display:`, computedStyle.display);\n });\n \n // Track value changes\n const firstNameInput = elementArg.querySelector('dees-input-text[key=\"firstName\"]');\n const lastNameInput = elementArg.querySelector('dees-input-text[key=\"lastName\"]');\n \n if (firstNameInput && lastNameInput) {\n const updateFullName = () => {\n const firstName = (firstNameInput as DeesInputText).getValue();\n const lastName = (lastNameInput as DeesInputText).getValue();\n console.log(`Full name: ${firstName} ${lastName}`);\n };\n \n firstNameInput.addEventListener('changeSubject', updateFullName);\n lastNameInput.addEventListener('changeSubject', updateFullName);\n }\n }}>\n \n
      \n \n \n \n \n \n
      \n
      \n
      \n \n {\n // Demonstrate different label positions\n const inputs = elementArg.querySelectorAll('dees-input-text');\n \n inputs.forEach((input: DeesInputText) => {\n const position = input.labelPosition;\n console.log(`Input \"${input.label}\" has label position: ${position}`);\n });\n \n // Show how label position affects layout\n const leftLabelInputs = elementArg.querySelectorAll('dees-input-text[labelPosition=\"left\"]');\n if (leftLabelInputs.length > 0) {\n console.log(`${leftLabelInputs.length} inputs have left-aligned labels for inline layout`);\n }\n }}>\n \n
      \n \n\n \n\n
      \n \n \n \n
      \n
      \n
      \n
      \n \n {\n // Demonstrate validation states\n const requiredInput = elementArg.querySelector('dees-input-text[required]') as DeesInputText;\n const disabledInput = elementArg.querySelector('dees-input-text[disabled]') as DeesInputText;\n const errorInput = elementArg.querySelector('dees-input-text[validationState=\"invalid\"]') as DeesInputText;\n \n if (requiredInput) {\n // Show validation on blur for empty required field\n requiredInput.addEventListener('blur', () => {\n if (!requiredInput.getValue()) {\n console.log('Required field is empty!');\n }\n });\n }\n \n if (disabledInput) {\n console.log('Disabled input cannot be edited');\n }\n \n if (errorInput) {\n console.log('Error input shows validation message:', errorInput.validationText);\n \n // Simulate fixing the error\n errorInput.addEventListener('changeSubject', () => {\n const value = errorInput.getValue();\n if (value.includes('@') && value.includes('.')) {\n errorInput.validationState = 'valid';\n errorInput.validationText = '';\n console.log('Email validation passed!');\n }\n });\n }\n }}>\n \n
      \n \n\n \n\n \n
      \n
      \n
      \n \n {\n // Track password visibility toggles\n const passwordInputs = elementArg.querySelectorAll('dees-input-text[isPasswordBool]');\n \n passwordInputs.forEach((input: DeesInputText) => {\n // Monitor for toggle button clicks within shadow DOM\n const checkToggle = () => {\n const inputEl = input.shadowRoot?.querySelector('input');\n if (inputEl) {\n console.log(`Password field \"${input.label}\" type:`, inputEl.type);\n }\n };\n \n // Use MutationObserver to detect changes\n if (input.shadowRoot) {\n const observer = new MutationObserver(checkToggle);\n const inputEl = input.shadowRoot.querySelector('input');\n if (inputEl) {\n observer.observe(inputEl, { attributes: true, attributeFilter: ['type'] });\n }\n }\n });\n }}>\n \n
      \n \n\n \n
      \n
      \n
      \n \n {\n // Set up interactive example\n const dynamicInput = elementArg.querySelector('dees-input-text');\n const output = elementArg.querySelector('#text-input-output');\n \n if (dynamicInput && output) {\n // Update output on every change\n dynamicInput.addEventListener('changeSubject', (event: CustomEvent) => {\n const value = (event.detail as DeesInputText).getValue();\n output.textContent = `Current value: \"${value}\"`;\n });\n \n // Also track focus/blur events\n dynamicInput.addEventListener('focus', () => {\n console.log('Input focused');\n });\n \n dynamicInput.addEventListener('blur', () => {\n console.log('Input blurred');\n });\n \n // Track keypress events\n let keypressCount = 0;\n dynamicInput.addEventListener('keydown', () => {\n keypressCount++;\n console.log(`Keypress count: ${keypressCount}`);\n });\n }\n }}>\n \n \n \n
      \n
      Current value: \"\"
      \n
      \n
      \n
      \n
      \n`;", "import * as colors from '../../00colors.js';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-text.demo.js';\nimport { cssGeistFontFamily, cssMonoFontFamily } from '../../00fonts.js';\n\nimport {\n customElement,\n type TemplateResult,\n property,\n html,\n cssManager,\n css,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-text': DeesInputText;\n }\n}\n\n@customElement('dees-input-text')\nexport class DeesInputText extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @property({\n type: String,\n reflect: true,\n })\n accessor value: string = '';\n\n @property({\n type: Boolean,\n reflect: true,\n })\n accessor isPasswordBool = false;\n\n @property({\n type: Boolean,\n reflect: true,\n })\n accessor showPasswordBool = false;\n\n @property({\n type: Boolean,\n reflect: true,\n })\n accessor validationState: 'valid' | 'warn' | 'invalid';\n\n @property({\n reflect: true,\n })\n accessor validationText: string = '';\n\n @property({})\n accessor validationFunction: (value: string) => boolean;\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n * {\n box-sizing: border-box;\n }\n\n :host {\n position: relative;\n z-index: auto;\n font-family: ${cssGeistFontFamily};\n }\n\n .maincontainer {\n position: relative;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n input {\n display: flex;\n height: 40px;\n width: 100%;\n padding: 0 12px;\n font-size: 14px;\n line-height: 40px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n outline: none;\n cursor: text;\n font-family: inherit;\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n }\n\n input::placeholder {\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n input:hover:not(:disabled):not(:focus) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n input:focus {\n outline: none;\n border-color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 9% / 0.05)', 'hsl(0 0% 98% / 0.05)')};\n }\n\n input:disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Password toggle button */\n .showPassword {\n position: absolute;\n right: 1px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 38px;\n height: 38px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n transition: all 0.15s ease;\n border-radius: 0 5px 5px 0;\n }\n\n .showPassword:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n /* Validation styles */\n .validationContainer {\n margin-top: 4px;\n padding: 4px 8px;\n font-size: 12px;\n font-weight: 500;\n border-radius: 4px;\n transition: all 0.2s ease;\n overflow: hidden;\n }\n\n .validationContainer.error {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2% / 0.1)', 'hsl(0 72.2% 50.6% / 0.1)')};\n color: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 72.2% 50.6%)')};\n }\n\n .validationContainer.warn {\n background: ${cssManager.bdTheme('hsl(25 95% 53% / 0.1)', 'hsl(25 95% 63% / 0.1)')};\n color: ${cssManager.bdTheme('hsl(25 95% 53%)', 'hsl(25 95% 63%)')};\n }\n\n .validationContainer.valid {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3% / 0.1)', 'hsl(142.1 70.6% 45.3% / 0.1)')};\n color: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n }\n\n /* Error state for input */\n :host([validation-state=\"invalid\"]) input {\n border-color: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 72.2% 50.6%)')};\n }\n\n :host([validation-state=\"invalid\"]) input:focus {\n border-color: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 72.2% 50.6%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 84.2% 60.2% / 0.05)', 'hsl(0 72.2% 50.6% / 0.05)')};\n }\n\n /* Warning state for input */\n :host([validation-state=\"warn\"]) input {\n border-color: ${cssManager.bdTheme('hsl(25 95% 53%)', 'hsl(25 95% 63%)')};\n }\n\n :host([validation-state=\"warn\"]) input:focus {\n border-color: ${cssManager.bdTheme('hsl(25 95% 53%)', 'hsl(25 95% 63%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(25 95% 53% / 0.05)', 'hsl(25 95% 63% / 0.05)')};\n }\n\n /* Valid state for input */\n :host([validation-state=\"valid\"]) input {\n border-color: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n }\n\n :host([validation-state=\"valid\"]) input:focus {\n border-color: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(142.1 76.2% 36.3% / 0.05)', 'hsl(142.1 70.6% 45.3% / 0.05)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n \n
      \n \n
      \n \n ${this.isPasswordBool\n ? html`\n
      \n \n
      \n `\n : html``}\n ${this.validationText\n ? html`\n
      \n ${this.validationText}\n
      \n `\n : html`
      `}\n
      \n
      \n `;\n }\n\n firstUpdated() {\n // Input event handling is already done in updateValue method\n }\n\n public async updateValue(eventArg: Event) {\n const target: any = eventArg.target;\n this.value = target.value;\n this.changeSubject.next(this);\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n }\n\n public async togglePasswordView() {\n this.showPasswordBool = !this.showPasswordBool;\n }\n\n public async focus() {\n const textInput = this.shadowRoot.querySelector('input');\n textInput.focus();\n }\n\n public async blur() {\n const textInput = this.shadowRoot.querySelector('input');\n textInput.blur();\n }\n}\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesShoppingProductcard } from '../dees-shopping-productcard/dees-shopping-productcard.js';\n\nexport const demoFunc = () => html`\n \n \n \n
      \n \n
      \n \n\n \n\n \n
      \n
      \n\n {\n const products = [\n { id: 'laptop', element: null, data: { name: 'MacBook Pro 14\"', category: 'Computers', description: 'M3 Pro chip with 18GB RAM', price: 1999, originalPrice: 2199, iconName: 'lucide:laptop' }},\n { id: 'ipad', element: null, data: { name: 'iPad Air', category: 'Tablets', description: '10.9\" Liquid Retina display', price: 599, iconName: 'lucide:tablet' }},\n { id: 'keyboard', element: null, data: { name: 'Magic Keyboard', category: 'Accessories', description: 'Wireless keyboard with Touch ID', price: 149, iconName: 'lucide:keyboard' }}\n ];\n\n const updateCartSummary = () => {\n let total = 0;\n const items = [];\n \n products.forEach(product => {\n const element = elementArg.querySelector(`#${product.id}`) as DeesShoppingProductcard;\n if (element && element.quantity > 0) {\n const subtotal = product.data.price * element.quantity;\n total += subtotal;\n items.push(`\n
      \n ${product.data.name} (${element.quantity})\n $${subtotal.toFixed(2)}\n
      \n `);\n }\n });\n \n const summary = elementArg.querySelector('#interactive-cart-summary');\n if (summary) {\n summary.innerHTML = `\n ${items.join('')}\n ${items.length === 0 ? '
      Your cart is empty
      ' : ''}\n
      \n Total\n $${total.toFixed(2)}\n
      \n `;\n }\n };\n \n // Initial update\n setTimeout(updateCartSummary, 100);\n \n // Set up listeners\n elementArg.querySelectorAll('dees-shopping-productcard').forEach(card => {\n card.addEventListener('quantityChange', updateCartSummary);\n });\n }}>\n
      \n \n\n \n\n \n
      \n\n
      \n

      Shopping Cart

      \n
      \n \n
      \n
      \n
      \n\n \n
      \n {\n const output = document.querySelector('#selection-output');\n if (output) {\n const selectedCards = document.querySelectorAll('dees-shopping-productcard[selectable]');\n const selectedProducts = [];\n selectedCards.forEach((card: DeesShoppingProductcard) => {\n if (card.selected) {\n selectedProducts.push(card.productData.name);\n }\n });\n output.textContent = selectedProducts.length > 0 \n ? `Selected: ${selectedProducts.join(', ')}` \n : 'No products selected';\n }\n }}\n >\n\n {\n const output = document.querySelector('#selection-output');\n if (output) {\n const selectedCards = document.querySelectorAll('dees-shopping-productcard[selectable]');\n const selectedProducts = [];\n selectedCards.forEach((card: DeesShoppingProductcard) => {\n if (card.selected) {\n selectedProducts.push(card.productData.name);\n }\n });\n output.textContent = selectedProducts.length > 0 \n ? `Selected: ${selectedProducts.join(', ')}` \n : 'No products selected';\n }\n }}\n >\n\n {\n const output = document.querySelector('#selection-output');\n if (output) {\n const selectedCards = document.querySelectorAll('dees-shopping-productcard[selectable]');\n const selectedProducts = [];\n selectedCards.forEach((card: DeesShoppingProductcard) => {\n if (card.selected) {\n selectedProducts.push(card.productData.name);\n }\n });\n output.textContent = selectedProducts.length > 0 \n ? `Selected: ${selectedProducts.join(', ')}` \n : 'No products selected';\n }\n }}\n >\n
      \n \n
      \n No products selected\n
      \n
      \n\n \n
      \n \n\n \n\n \n
      \n
      \n
      \n
      \n`;", "import {\n customElement,\n property,\n html,\n css,\n cssManager,\n type TemplateResult,\n DeesElement,\n} from '@design.estate/dees-element';\nimport { demoFunc } from './dees-shopping-productcard.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-shopping-productcard': DeesShoppingProductcard;\n }\n}\n\nexport interface IProductData {\n name: string;\n category?: string;\n description?: string;\n price: number;\n originalPrice?: number;\n currency?: string;\n inStock?: boolean;\n stockText?: string;\n imageUrl?: string;\n iconName?: string;\n}\n\n@customElement('dees-shopping-productcard')\nexport class DeesShoppingProductcard extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Simple'];\n\n @property({ type: Object })\n accessor productData: IProductData = {\n name: 'Product Name',\n price: 0,\n };\n\n @property({ type: Number })\n accessor quantity: number = 0;\n\n @property({ type: Boolean })\n accessor showQuantitySelector: boolean = true;\n\n @property({ type: Boolean })\n accessor selectable: boolean = false;\n\n @property({ type: Boolean })\n accessor selected: boolean = false;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n }\n\n .product-card {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20.2% 11.8%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n display: flex;\n flex-direction: column;\n height: 100%;\n position: relative;\n }\n\n .product-card:hover {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n box-shadow: 0 4px 6px -1px hsl(0 0% 0% / 0.1), 0 2px 4px -2px hsl(0 0% 0% / 0.1);\n }\n\n .product-card.selectable {\n cursor: pointer;\n }\n\n .product-card.selected {\n border-color: ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(217.2 91.2% 59.8% / 0.1)', 'hsl(213.1 93.9% 67.8% / 0.1)')};\n }\n\n .product-image {\n width: 100%;\n height: 180px;\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n overflow: hidden;\n }\n\n .product-image img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .product-image dees-icon {\n font-size: 48px;\n color: ${cssManager.bdTheme('hsl(215 20.2% 65.1%)', 'hsl(215 20.2% 35.1%)')};\n }\n\n .selection-checkbox {\n position: absolute;\n top: 12px;\n right: 12px;\n width: 20px;\n height: 20px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 30% 6.8%)')};\n border: 2px solid ${cssManager.bdTheme('hsl(215 20.2% 65.1%)', 'hsl(215 20.2% 35.1%)')};\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n cursor: pointer;\n }\n\n .selection-checkbox.checked {\n background: ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n border-color: ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n }\n\n .selection-checkbox dees-icon {\n color: white;\n font-size: 12px;\n opacity: 0;\n transform: scale(0);\n transition: all 0.2s ease;\n }\n\n .selection-checkbox.checked dees-icon {\n opacity: 1;\n transform: scale(1);\n }\n\n .product-content {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1;\n }\n \n .product-header {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .product-category {\n font-size: 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n line-height: 1.3;\n }\n \n .product-name {\n font-size: 16px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n line-height: 1.4;\n }\n\n .product-description {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n line-height: 1.5;\n flex: 1;\n }\n \n .product-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding-top: 12px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .product-price {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .price-current {\n font-size: 20px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .price-original {\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-decoration: line-through;\n }\n\n .stock-status {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n margin-top: 8px;\n }\n\n .stock-status.in-stock {\n color: ${cssManager.bdTheme('hsl(142.1 70.6% 45.3%)', 'hsl(142.1 76.2% 36.3%)')};\n }\n\n .stock-status.out-of-stock {\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n }\n\n .stock-status dees-icon {\n font-size: 14px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const {\n name,\n category,\n description,\n price,\n originalPrice,\n currency = '$',\n inStock = true,\n stockText = inStock ? 'In Stock' : 'Out of Stock',\n imageUrl,\n iconName = 'lucide:package',\n } = this.productData;\n\n const formatPrice = (value: number) => {\n return `${currency}${value.toFixed(2)}`;\n };\n\n return html`\n
      \n
      \n ${imageUrl ? html`\n \"${name}\"\n ` : html`\n \n `}\n ${this.selectable ? html`\n
      {\n e.stopPropagation();\n this.handleSelectionToggle();\n }}\n >\n \n
      \n ` : ''}\n
      \n
      \n
      \n ${category ? html`
      ${category}
      ` : ''}\n
      ${name}
      \n
      \n ${description ? html`\n
      ${description}
      \n ` : ''}\n
      \n \n ${stockText}\n
      \n
      \n
      \n ${formatPrice(price)}\n ${originalPrice && originalPrice > price ? html`\n ${formatPrice(originalPrice)}\n ` : ''}\n
      \n ${this.showQuantitySelector ? html`\n {\n this.quantity = e.detail.getValue();\n this.dispatchEvent(new CustomEvent('quantityChange', {\n detail: { \n quantity: this.quantity,\n productData: this.productData \n },\n bubbles: true,\n composed: true\n }));\n }}\n >\n ` : ''}\n
      \n
      \n
      \n `;\n }\n\n private handleCardClick() {\n if (this.selectable) {\n this.selected = !this.selected;\n this.dispatchEvent(new CustomEvent('selectionChange', {\n detail: { \n selected: this.selected,\n productData: this.productData \n },\n bubbles: true,\n composed: true\n }));\n }\n }\n\n private handleSelectionToggle() {\n this.selected = !this.selected;\n this.dispatchEvent(new CustomEvent('selectionChange', {\n detail: { \n selected: this.selected,\n productData: this.productData \n },\n bubbles: true,\n composed: true\n }));\n }\n}", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '../../00group-simple/dees-shopping-productcard/dees-shopping-productcard.js';\n\nexport const demoFunc = () => html`\n \n \n \n
      \n \n
      \n \n\n \n
      \n
      \n \n {\n const updateCartSummary = () => {\n const card1 = elementArg.querySelector('#headphones-qty') as any;\n const card2 = elementArg.querySelector('#mouse-qty') as any;\n const card3 = elementArg.querySelector('#keyboard-qty') as any;\n \n const qty1 = card1?.quantity || 0;\n const qty2 = card2?.quantity || 0;\n const qty3 = card3?.quantity || 0;\n \n const price1 = 349.99 * qty1;\n const price2 = 99.99 * qty2;\n const price3 = 79.99 * qty3;\n const total = price1 + price2 + price3;\n \n const summary = elementArg.querySelector('#cart-summary-content');\n if (summary) {\n summary.innerHTML = `\n ${qty1 > 0 ? `
      \n Sony WH-1000XM5 (${qty1})\n $${price1.toFixed(2)}\n
      ` : ''}\n ${qty2 > 0 ? `
      \n Logitech MX Master 3S (${qty2})\n $${price2.toFixed(2)}\n
      ` : ''}\n ${qty3 > 0 ? `
      \n Keychron K2 (${qty3})\n $${price3.toFixed(2)}\n
      ` : ''}\n ${total === 0 ? '
      Your cart is empty
      ' : ''}\n
      \n Total\n $${total.toFixed(2)}\n
      \n `;\n }\n };\n \n // Initial update\n setTimeout(updateCartSummary, 100);\n \n // Set up listeners\n elementArg.querySelectorAll('dees-shopping-productcard').forEach(card => {\n card.addEventListener('quantityChange', updateCartSummary);\n });\n }}>\n
      \n \n \n \n \n \n
      \n\n
      \n

      Order Summary

      \n
      \n \n
      \n
      \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n \n \n \n \n \n \n \n \n
      \n
      \n`;", "import { customElement, property, html, type TemplateResult, css, cssManager } from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-quantityselector.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-quantityselector': DeesInputQuantitySelector;\n }\n}\n\n@customElement('dees-input-quantityselector')\nexport class DeesInputQuantitySelector extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n\n @property({\n type: Number\n })\n accessor value: number = 1;\n\n\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n width: auto;\n user-select: none;\n }\n\n .quantity-container {\n transition: all 0.15s ease;\n font-size: 14px;\n display: inline-flex;\n align-items: center;\n background: transparent;\n height: 40px;\n padding: 0;\n min-width: 120px;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n overflow: hidden;\n }\n \n .quantity-container.disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n opacity: 0.5;\n pointer-events: none;\n }\n\n .quantity-container:hover:not(.disabled) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .quantity-container:focus-within {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .selector {\n flex: 0 0 40px;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n position: relative;\n }\n\n .selector:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .selector:active {\n background: ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 11%)')};\n }\n\n .selector.minus {\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .selector.plus {\n border-left: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .quantity {\n flex: 1;\n text-align: center;\n font-weight: 500;\n font-variant-numeric: tabular-nums;\n letter-spacing: -0.006em;\n }\n\n /* Keyboard navigation focus styles */\n .selector:focus {\n outline: none;\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n z-index: 1;\n }\n\n /* Min value state */\n .quantity-container[data-min=\"true\"] .selector.minus {\n opacity: 0.3;\n cursor: not-allowed;\n }\n\n .quantity-container[data-min=\"true\"] .selector.minus:hover {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n }\n\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.label ? html`` : ''}\n
      \n
      {this.decrease();}}\"\n tabindex=\"${this.disabled ? '-1' : '0'}\"\n @keydown=\"${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.decrease();\n }\n }}\"\n role=\"button\"\n aria-label=\"Decrease quantity\"\n >\u2212
      \n
      ${this.value}
      \n
      {this.increase();}}\"\n tabindex=\"${this.disabled ? '-1' : '0'}\"\n @keydown=\"${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.increase();\n }\n }}\"\n role=\"button\"\n aria-label=\"Increase quantity\"\n >+
      \n
      \n
      \n `;\n }\n\n public increase() {\n if (!this.disabled) {\n this.value++;\n this.changeSubject.next(this);\n }\n }\n\n public decrease() {\n if (!this.disabled && this.value > 0) {\n this.value--;\n this.changeSubject.next(this);\n }\n }\n\n public getValue(): number {\n return this.value;\n }\n\n public setValue(value: number): void {\n this.value = value;\n }\n}\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\n\nexport const demoFunc = () => html`\n \n \n \n
      \n \n
      \n \n \n \n
      \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n \n {\n const display = document.querySelector('#region-result');\n if (display) {\n display.textContent = 'Selected: ' + JSON.stringify(e.detail.value, null, 2);\n }\n }}\n >\n
      Selected: { \"region\": \"eu-central-1\", \"latency\": 50 }
      \n
      \n \n \n
      \n \n \n \n
      \n
      \n \n \n
      \n \n \n \n
      \n
      \n \n \n
      \n \n\n \n\n \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n`;", "import {\n customElement,\n type TemplateResult,\n property,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-radiogroup.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-radiogroup': DeesInputRadiogroup;\n }\n}\n\ntype RadioOption = string | { option: string; key: string; payload?: any };\n\n@customElement('dees-input-radiogroup')\nexport class DeesInputRadiogroup extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n\n @property({ type: Array })\n accessor options: RadioOption[] = [];\n\n @property()\n accessor selectedOption: string = '';\n\n @property({ type: String })\n accessor direction: 'vertical' | 'horizontal' = 'vertical';\n\n @property({ type: String, reflect: true })\n accessor validationState: 'valid' | 'invalid' | 'warn' | 'pending' = null;\n\n // Form compatibility\n public get value() {\n const option = this.getOptionByKey(this.selectedOption);\n if (typeof option === 'object' && option.payload !== undefined) {\n return option.payload;\n }\n return this.selectedOption;\n }\n\n public set value(val: string | any) {\n if (typeof val === 'string') {\n this.selectedOption = val;\n } else {\n // Try to find option by payload\n const option = this.options.find(opt => \n typeof opt === 'object' && opt.payload === val\n );\n if (option && typeof option === 'object') {\n this.selectedOption = option.key;\n }\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n * {\n box-sizing: border-box;\n }\n\n :host {\n display: block;\n position: relative;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n }\n\n .maincontainer {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .maincontainer.horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 20px;\n }\n\n .radio-option {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 0;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n position: relative;\n border-radius: 4px;\n }\n\n .maincontainer.horizontal .radio-option {\n padding: 6px 20px 6px 0;\n }\n\n .radio-option:hover .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(215 20.2% 65.1%)', 'hsl(215 20.2% 35.1%)')};\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 11.8%)')};\n }\n\n .radio-option:hover .radio-label {\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n }\n\n .radio-circle {\n width: 20px;\n height: 20px;\n border-radius: 50%;\n border: 2px solid ${cssManager.bdTheme('hsl(215 20.2% 65.1%)', 'hsl(215 20.2% 35.1%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 30% 6.8%)')};\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .radio-option.selected .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n background: ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n }\n\n .radio-option.selected .radio-circle::after {\n content: '';\n position: absolute;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 30% 6.8%)')};\n transform: scale(0);\n transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .radio-option.selected .radio-circle::after {\n transform: scale(1);\n }\n\n .radio-circle:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 30% 3.9%)')},\n 0 0 0 4px ${cssManager.bdTheme('hsl(217.2 91.2% 59.8%)', 'hsl(213.1 93.9% 67.8%)')};\n }\n\n .radio-label {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.3 25% 26.7%)', 'hsl(217.9 10.6% 74.9%)')};\n transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n letter-spacing: -0.006em;\n line-height: 20px;\n }\n\n .radio-option.selected .radio-label {\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n }\n\n :host([disabled]) .radio-option {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n :host([disabled]) .radio-option:hover .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(215 20.2% 65.1%)', 'hsl(215 20.2% 35.1%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 30% 6.8%)')};\n }\n\n :host([disabled]) .radio-option:hover .radio-label {\n color: ${cssManager.bdTheme('hsl(215.3 25% 26.7%)', 'hsl(217.9 10.6% 74.9%)')};\n }\n\n .label-text {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n margin-bottom: 10px;\n letter-spacing: -0.006em;\n line-height: 20px;\n }\n\n .description-text {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n margin-top: 10px;\n line-height: 1.5;\n letter-spacing: -0.003em;\n }\n\n /* Validation styles */\n :host([validationState=\"invalid\"]) .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n }\n\n :host([validationState=\"invalid\"]) .radio-option.selected .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n background: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n }\n\n :host([validationState=\"valid\"]) .radio-option.selected .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(142.1 70.6% 45.3%)', 'hsl(142.1 76.2% 36.3%)')};\n background: ${cssManager.bdTheme('hsl(142.1 70.6% 45.3%)', 'hsl(142.1 76.2% 36.3%)')};\n }\n\n :host([validationState=\"warn\"]) .radio-option.selected .radio-circle {\n border-color: ${cssManager.bdTheme('hsl(45.4 93.4% 47.5%)', 'hsl(45.4 93.4% 47.5%)')};\n background: ${cssManager.bdTheme('hsl(45.4 93.4% 47.5%)', 'hsl(45.4 93.4% 47.5%)')};\n }\n\n /* Override base grid layout for radiogroup to prevent large gaps */\n :host([label-position=\"left\"]) .input-wrapper {\n grid-template-columns: auto auto;\n }\n\n :host([label-position=\"right\"]) .input-wrapper {\n grid-template-columns: auto auto;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.label ? html`
      ${this.label}
      ` : ''}\n
      \n ${this.options.map((option) => {\n const optionKey = this.getOptionKey(option);\n const optionLabel = this.getOptionLabel(option);\n const isSelected = this.selectedOption === optionKey;\n \n return html`\n
      this.selectOption(optionKey)}\"\n @keydown=\"${(e: KeyboardEvent) => this.handleKeydown(e, optionKey)}\"\n >\n
      \n
      ${optionLabel}
      \n
      \n `;\n })}\n
      \n ${this.description ? html`
      ${this.description}
      ` : ''}\n
      \n `;\n }\n\n private getOptionKey(option: RadioOption): string {\n if (typeof option === 'string') {\n return option;\n }\n return option.key;\n }\n\n private getOptionLabel(option: RadioOption): string {\n if (typeof option === 'string') {\n return option;\n }\n return option.option;\n }\n\n private getOptionByKey(key: string): RadioOption | undefined {\n return this.options.find(opt => this.getOptionKey(opt) === key);\n }\n\n private selectOption(key: string): void {\n if (this.disabled) {\n return;\n }\n\n const oldValue = this.selectedOption;\n this.selectedOption = key;\n\n if (oldValue !== key) {\n this.dispatchEvent(new CustomEvent('change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n }));\n \n this.dispatchEvent(new CustomEvent('input', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n }));\n \n this.changeSubject.next(this);\n }\n }\n\n public getValue(): string | any {\n return this.value;\n }\n\n public setValue(val: string | any): void {\n this.value = val;\n }\n\n public async validate(): Promise {\n if (this.required && !this.selectedOption) {\n this.validationState = 'invalid';\n return false;\n }\n \n this.validationState = 'valid';\n return true;\n }\n\n public async firstUpdated() {\n // Auto-select first option if none selected and not required\n if (!this.selectedOption && this.options.length > 0 && !this.required) {\n const firstOption = this.options[0];\n this.selectedOption = this.getOptionKey(firstOption);\n }\n }\n\n private handleKeydown(event: KeyboardEvent, optionKey: string) {\n if (this.disabled) return;\n \n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.selectOption(optionKey);\n } else if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {\n event.preventDefault();\n this.focusNextOption();\n } else if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {\n event.preventDefault();\n this.focusPreviousOption();\n }\n }\n\n private focusNextOption() {\n const radioCircles = Array.from(this.shadowRoot.querySelectorAll('.radio-circle'));\n const currentIndex = radioCircles.findIndex(el => el === this.shadowRoot.activeElement);\n const nextIndex = (currentIndex + 1) % radioCircles.length;\n (radioCircles[nextIndex] as HTMLElement).focus();\n }\n\n private focusPreviousOption() {\n const radioCircles = Array.from(this.shadowRoot.querySelectorAll('.radio-circle'));\n const currentIndex = radioCircles.findIndex(el => el === this.shadowRoot.activeElement);\n const prevIndex = currentIndex <= 0 ? radioCircles.length - 1 : currentIndex - 1;\n (radioCircles[prevIndex] as HTMLElement).focus();\n }\n}", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
      \n
      \n

      Basic Usage

      \n
      \n Submit Form\n \n
      \n
      \n\n
      \n

      With Icons (inherited from DeesButton)

      \n
      \n Submit\n Save Form\n Continue\n
      \n
      \n\n
      \n

      Button Types

      \n
      \n Highlighted\n Normal\n Discreet\n
      \n
      \n\n
      \n

      Sizes

      \n
      \n Small\n Normal\n Large\n
      \n
      \n\n
      \n

      States

      \n
      \n Normal\n Pending\n Success\n Error\n Disabled\n
      \n
      \n\n
      \n

      In a Form Context

      \n \n \n \n Submit Form\n \n
      \n
      \n`;\n", "import { demoFunc } from './dees-form-submit.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n css,\n cssManager,\n property,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport type { DeesForm } from '../dees-form/dees-form.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-form-submit': DeesFormSubmit;\n }\n}\n\n@customElement('dees-form-submit')\nexport class DeesFormSubmit extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Form', 'Button'];\n\n // =============================================\n // Properties forwarded to internal dees-button\n // =============================================\n\n @property({ type: Boolean, reflect: true })\n accessor disabled = false;\n\n @property({ type: String })\n accessor text: string;\n\n @property({ type: String })\n accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';\n\n @property({ type: String, reflect: true })\n accessor type: 'default' | 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link' | 'normal' | 'highlighted' | 'discreet' | 'big' = 'default';\n\n @property({ type: String, reflect: true })\n accessor size: 'sm' | 'default' | 'lg' | 'icon' | 'small' | 'normal' | 'large' = 'default';\n\n @property({ type: String })\n accessor icon: string;\n\n @property({ type: String })\n accessor iconPosition: 'left' | 'right' = 'left';\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: inline-block;\n }\n dees-button {\n width: 100%;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n \n \n \n `;\n }\n\n public async submit() {\n if (this.disabled) {\n return;\n }\n // Walk up the DOM tree to find the nearest dees-form element\n const parentFormElement = this.closest('dees-form') as DeesForm;\n if (parentFormElement && parentFormElement.gatherAndDispatch) {\n parentFormElement.gatherAndDispatch();\n }\n }\n\n public async focus() {\n const domtools = await this.domtoolsPromise;\n if (!this.disabled) {\n await domtools.convenience.smartdelay.delayFor(0);\n this.submit();\n }\n }\n}\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport '../../00group-form/dees-form/dees-form.js';\nimport '../../00group-form/dees-form-submit/dees-form-submit.js';\n\nexport const demoFunc = () => html`\n \n \n
      \n {\n // Demonstrate programmatic interaction with basic dropdowns\n const countryDropdown = elementArg.querySelector('dees-input-dropdown[label=\"Select Country\"]');\n const roleDropdown = elementArg.querySelector('dees-input-dropdown[label=\"Select Role\"]');\n \n // Log when country changes\n if (countryDropdown) {\n countryDropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n console.log('Country selected:', event.detail);\n });\n }\n \n // Log when role changes\n if (roleDropdown) {\n roleDropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n console.log('Role selected:', event.detail);\n });\n }\n }}>\n \n
      \n \n\n \n
      \n
      \n
      \n \n {\n // Demonstrate simpler dropdown without search\n const priorityDropdown = elementArg.querySelector('dees-input-dropdown');\n \n if (priorityDropdown) {\n priorityDropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n console.log(`Priority changed to: ${event.detail.option}`);\n });\n }\n }}>\n \n \n \n \n \n {\n // Demonstrate horizontal layout with multiple dropdowns\n const dropdowns = elementArg.querySelectorAll('dees-input-dropdown');\n \n // Log all changes from horizontal dropdowns\n dropdowns.forEach((dropdown) => {\n dropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n const label = dropdown.getAttribute('label');\n console.log(`${label}: ${event.detail.option}`);\n });\n });\n }}>\n \n
      \n \n \n \n \n \n
      \n
      \n
      \n \n {\n // Demonstrate state handling\n const requiredDropdown = elementArg.querySelector('dees-input-dropdown[required]');\n \n if (requiredDropdown) {\n // Show validation state changes\n requiredDropdown.addEventListener('blur', () => {\n console.log('Required dropdown lost focus');\n });\n }\n }}>\n \n
      \n \n\n \n
      \n
      \n
      \n \n
      \n (Spacer to test dropdown positioning)\n
      \n \n {\n // This dropdown demonstrates automatic positioning\n const dropdown = elementArg.querySelector('dees-input-dropdown');\n \n if (dropdown) {\n dropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n console.log('Bottom dropdown selected:', event.detail);\n });\n \n // Note: The dropdown automatically detects available space\n // and opens upward when near the bottom of the viewport\n }\n }}>\n \n \n \n \n\n {\n // Setup the interactive payload display\n const dropdown = elementArg.querySelector('dees-input-dropdown');\n const output = elementArg.querySelector('#selection-output');\n \n if (dropdown && output) {\n // Initialize output\n output.innerHTML = 'Select a product to see details...';\n \n // Handle dropdown changes\n dropdown.addEventListener('change', (event: CustomEvent) => {\n if (event.detail.value) {\n output.innerHTML = `\n Selected: ${event.detail.value.option}
      \n Key: ${event.detail.value.key}
      \n Price: $${event.detail.value.payload?.price || 'N/A'}
      \n Features: ${event.detail.value.payload?.features?.join(', ') || 'N/A'}\n `;\n }\n });\n }\n }}>\n \n \n \n
      \n
      \n
      \n\n {\n // Demonstrate form integration and validation\n const form = elementArg.querySelector('dees-form');\n const projectTypeDropdown = elementArg.querySelector('dees-input-dropdown[key=\"projectType\"]');\n const frameworkDropdown = elementArg.querySelector('dees-input-dropdown[key=\"framework\"]');\n \n if (form) {\n form.addEventListener('formData', (event: CustomEvent) => {\n console.log('Form submitted with data:', event.detail.data);\n });\n }\n \n if (projectTypeDropdown && frameworkDropdown) {\n // Filter frameworks based on project type\n projectTypeDropdown.addEventListener('selectedOption', (event: CustomEvent) => {\n const selectedType = event.detail.key;\n console.log(`Project type changed to: ${selectedType}`);\n \n // In a real app, you could filter the framework options based on project type\n // For demo purposes, we just log the change\n });\n }\n }}>\n \n \n \n \n \n \n \n \n \n \n
      \n`", "import {\n customElement,\n type TemplateResult,\n property,\n state,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-input-dropdown.demo.js';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-dropdown': DeesInputDropdown;\n }\n}\n\n@customElement('dees-input-dropdown')\nexport class DeesInputDropdown extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n\n @property()\n accessor options: { option: string; key: string; payload?: any }[] = [];\n\n @property()\n accessor selectedOption: { option: string; key: string; payload?: any } = null;\n\n // Add value property for form compatibility\n public get value() {\n return this.selectedOption;\n }\n\n public set value(val: { option: string; key: string; payload?: any }) {\n this.selectedOption = val;\n }\n\n @property({\n type: Boolean,\n })\n accessor enableSearch: boolean = true;\n\n @state()\n accessor opensToTop: boolean = false;\n\n @state()\n accessor filteredOptions: { option: string; key: string; payload?: any }[] = [];\n\n @state()\n accessor highlightedIndex: number = 0;\n\n @state()\n accessor isOpened = false;\n\n @state()\n accessor searchValue: string = '';\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n * {\n box-sizing: border-box;\n }\n\n :host {\n font-family: ${cssGeistFontFamily};\n position: relative;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n .maincontainer {\n display: block;\n position: relative;\n }\n\n .selectedBox {\n user-select: none;\n position: relative;\n width: 100%;\n height: 40px;\n line-height: 38px;\n padding: 0 40px 0 12px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n transition: all 0.15s ease;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .selectedBox:hover:not(.disabled) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .selectedBox:focus-visible {\n outline: none;\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .selectedBox.disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n /* Dropdown arrow */\n .selectedBox::after {\n content: '';\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n width: 0;\n height: 0;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 4px solid ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n transition: transform 0.15s ease;\n }\n\n .selectedBox.open::after {\n transform: translateY(-50%) rotate(180deg);\n }\n\n .selectionBox {\n will-change: transform, opacity;\n pointer-events: none;\n transition: all 0.15s ease;\n opacity: 0;\n transform: translateY(-8px) scale(0.98);\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n box-shadow: 0 4px 6px -1px hsl(0 0% 0% / 0.1), 0 2px 4px -2px hsl(0 0% 0% / 0.1);\n min-height: 40px;\n max-height: 300px;\n overflow: hidden;\n border-radius: 6px;\n position: absolute;\n user-select: none;\n margin-top: 4px;\n z-index: 50;\n left: 0;\n right: 0;\n }\n \n .selectionBox.top {\n bottom: calc(100% + 4px);\n top: auto;\n margin-top: 0;\n margin-bottom: 4px;\n transform: translateY(8px) scale(0.98);\n }\n \n .selectionBox.bottom {\n top: 100%;\n }\n\n .selectionBox.show {\n pointer-events: all;\n transform: translateY(0) scale(1);\n opacity: 1;\n }\n\n /* Options container */\n .options-container {\n max-height: 250px;\n overflow-y: auto;\n padding: 4px;\n }\n\n /* Options */\n .option {\n transition: all 0.15s ease;\n line-height: 32px;\n padding: 0 8px;\n border-radius: 4px;\n margin: 2px 0;\n cursor: pointer;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n .option.highlighted {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n }\n\n .option:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n /* No options message */\n .no-options {\n padding: 8px;\n text-align: center;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n font-style: italic;\n }\n\n /* Search */\n .search {\n padding: 4px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n margin-bottom: 4px;\n }\n \n .search.bottom {\n border-bottom: none;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n margin-bottom: 0;\n margin-top: 4px;\n }\n \n .search input {\n display: block;\n width: 100%;\n height: 32px;\n padding: 0 8px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n color: inherit;\n font-size: 14px;\n font-family: inherit;\n outline: none;\n transition: border-color 0.15s ease;\n }\n\n .search input::placeholder {\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n }\n\n .search input:focus {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n }\n\n /* Scrollbar styling */\n .options-container::-webkit-scrollbar {\n width: 8px;\n }\n\n .options-container::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .options-container::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n }\n\n .options-container::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n \n
      \n !this.disabled && this.toggleSelectionBox()}\"\n tabindex=\"${this.disabled ? '-1' : '0'}\"\n @keydown=\"${this.handleSelectedBoxKeydown}\"\n >\n ${this.selectedOption?.option || 'Select an option'}\n
      \n
      \n ${this.enableSearch\n ? html`\n
      \n e.stopPropagation()}\"\n @keydown=\"${this.handleSearchKeydown}\"\n />\n
      \n `\n : null}\n
      \n ${this.filteredOptions.length === 0\n ? html`
      No options found
      `\n : this.filteredOptions.map((option, index) => {\n const isHighlighted = this.highlightedIndex === index;\n return html`\n this.updateSelection(option)}\"\n @mouseenter=\"${() => this.highlightedIndex = index}\"\n >\n ${option.option}\n
      \n `;\n })\n }\n
      \n
      \n \n \n `;\n }\n\n async connectedCallback() {\n super.connectedCallback();\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n firstUpdated() {\n this.selectedOption = this.selectedOption || null;\n this.filteredOptions = this.options;\n }\n\n updated(changedProperties: Map) {\n super.updated(changedProperties);\n \n if (changedProperties.has('options')) {\n this.filteredOptions = this.options;\n }\n }\n\n public async updateSelection(selectedOption: { option: string; key: string; payload?: any }) {\n this.selectedOption = selectedOption;\n this.isOpened = false;\n this.searchValue = '';\n this.filteredOptions = this.options;\n this.highlightedIndex = 0;\n\n this.dispatchEvent(\n new CustomEvent('selectedOption', {\n detail: selectedOption,\n bubbles: true,\n })\n );\n \n this.changeSubject.next(this);\n }\n\n private handleClickOutside = (event: MouseEvent) => {\n const path = event.composedPath();\n if (!path.includes(this)) {\n this.isOpened = false;\n this.searchValue = '';\n this.filteredOptions = this.options;\n document.removeEventListener('click', this.handleClickOutside);\n }\n };\n \n public async toggleSelectionBox() {\n this.isOpened = !this.isOpened;\n \n if (this.isOpened) {\n // Check available space and set position\n const selectedBox = this.shadowRoot.querySelector('.selectedBox') as HTMLElement;\n const rect = selectedBox.getBoundingClientRect();\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n \n // Determine if we should open upwards\n this.opensToTop = spaceBelow < 300 && spaceAbove > spaceBelow;\n \n // Focus search input if present\n await this.updateComplete;\n const searchInput = this.shadowRoot.querySelector('.search input') as HTMLInputElement;\n if (searchInput) {\n searchInput.focus();\n }\n \n // Add click outside listener\n setTimeout(() => {\n document.addEventListener('click', this.handleClickOutside);\n }, 0);\n } else {\n // Cleanup\n this.searchValue = '';\n this.filteredOptions = this.options;\n document.removeEventListener('click', this.handleClickOutside);\n }\n }\n\n private handleSearch(event: Event): void {\n const searchTerm = (event.target as HTMLInputElement).value;\n this.searchValue = searchTerm;\n const searchLower = searchTerm.toLowerCase();\n this.filteredOptions = this.options.filter((option) =>\n option.option.toLowerCase().includes(searchLower)\n );\n this.highlightedIndex = 0;\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n const key = event.key;\n const maxIndex = this.filteredOptions.length - 1;\n\n if (key === 'ArrowDown') {\n event.preventDefault();\n this.highlightedIndex = this.highlightedIndex + 1 > maxIndex ? 0 : this.highlightedIndex + 1;\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n this.highlightedIndex = this.highlightedIndex - 1 < 0 ? maxIndex : this.highlightedIndex - 1;\n } else if (key === 'Enter') {\n event.preventDefault();\n if (this.filteredOptions[this.highlightedIndex]) {\n this.updateSelection(this.filteredOptions[this.highlightedIndex]);\n }\n } else if (key === 'Escape') {\n event.preventDefault();\n this.isOpened = false;\n }\n }\n\n private handleSearchKeydown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Enter') {\n this.handleKeyDown(event);\n }\n }\n\n private handleSelectedBoxKeydown(event: KeyboardEvent) {\n if (this.disabled) return;\n \n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.toggleSelectionBox();\n } else if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!this.isOpened) {\n this.toggleSelectionBox();\n }\n } else if (event.key === 'Escape') {\n event.preventDefault();\n if (this.isOpened) {\n this.isOpened = false;\n }\n }\n }\n\n public getValue(): { option: string; key: string; payload?: any } {\n return this.selectedOption;\n }\n\n public setValue(value: { option: string; key: string; payload?: any }): void {\n this.selectedOption = value;\n }\n \n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('click', this.handleClickOutside);\n }\n}", "import { css, cssManager, html } from '@design.estate/dees-element';\nimport './component.js';\nimport '../../00group-layout/dees-panel/dees-panel.js';\n\nexport const demoFunc = () => html`\n \n \n\n
      \n \n
      \n
      \n \n\n \n
      \n\n
      \n \n\n \n
      \n
      \n \n\n \n
      \n \n
      \n \n\n \n\n \n\n \n\n \n\n \n
      \n
      \n\n
      \n Good to know:\n
        \n
      • Drag & drop highlights the dropzone and supports keyboard activation.
      • \n
      • Accepted file types are summarised automatically from the accept attribute.
      • \n
      • Image uploads show live previews generated via URL.createObjectURL.
      • \n
      • File size and file-count limits surface inline validation messages.
      • \n
      • The component stays compatible with dees-form value accessors.
      • \n
      \n
      \n
      \n \n
      \n
      \n`;\n", "import { css, cssManager } from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\n\nexport const fileuploadStyles = [\n cssManager.defaultStyles,\n ...DeesInputBase.baseStyles,\n css`\n :host {\n position: relative;\n display: block;\n }\n\n\n .input-wrapper {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .dropzone {\n position: relative;\n padding: 20px;\n border-radius: 12px;\n border: 1.5px dashed ${cssManager.bdTheme('hsl(215 16% 80%)', 'hsl(217 20% 25%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 12%)')};\n transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;\n cursor: pointer;\n outline: none;\n }\n\n .dropzone:focus-visible {\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 12%)')},\n 0 0 0 4px ${cssManager.bdTheme('hsl(217 91% 60% / 0.5)', 'hsl(213 93% 68% / 0.4)')};\n border-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .dropzone--active {\n border-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n box-shadow: 0 12px 32px ${cssManager.bdTheme('rgba(15, 23, 42, 0.12)', 'rgba(0, 0, 0, 0.35)')};\n background: ${cssManager.bdTheme('hsl(217 91% 60% / 0.06)', 'hsl(213 93% 68% / 0.12)')};\n }\n\n .dropzone--has-files {\n background: ${cssManager.bdTheme('hsl(0 0% 99%)', 'hsl(215 20% 11%)')};\n }\n\n .dropzone--disabled {\n opacity: 0.6;\n pointer-events: none;\n cursor: not-allowed;\n }\n\n .dropzone__body {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .dropzone__icon {\n width: 48px;\n height: 48px;\n border-radius: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n background: ${cssManager.bdTheme('hsl(217 91% 60% / 0.12)', 'hsl(213 93% 68% / 0.12)')};\n position: relative;\n flex-shrink: 0;\n }\n\n .dropzone__icon dees-icon {\n font-size: 22px;\n }\n\n .dropzone__loader {\n width: 20px;\n height: 20px;\n border-radius: 999px;\n border: 2px solid ${cssManager.bdTheme('rgba(15, 23, 42, 0.15)', 'rgba(255, 255, 255, 0.15)')};\n border-top-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n animation: loader-spin 0.6s linear infinite;\n }\n\n .dropzone__content {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n }\n\n .dropzone__headline {\n font-size: 15px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(222 47% 11%)', 'hsl(210 20% 96%)')};\n }\n\n .dropzone__subline {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(215 16% 46%)', 'hsl(215 16% 70%)')};\n }\n\n .dropzone__browse {\n appearance: none;\n border: none;\n background: none;\n padding: 0;\n margin-left: 4px;\n color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n font-weight: 600;\n cursor: pointer;\n text-decoration: none;\n }\n\n .dropzone__browse:hover {\n text-decoration: underline;\n }\n\n .dropzone__browse:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n\n .dropzone__meta {\n margin-top: 14px;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215 16% 50%)', 'hsl(215 16% 72%)')};\n }\n\n .dropzone__meta span {\n padding: 4px 10px;\n border-radius: 999px;\n background: ${cssManager.bdTheme('hsl(217 91% 95%)', 'hsl(213 93% 18%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(217 91% 90%)', 'hsl(213 93% 24%)')};\n }\n\n .file-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: 20px;\n padding-top: 20px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(217 91% 90%)', 'hsl(213 93% 24%)')};\n }\n\n .file-list__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 13px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 68%)')};\n }\n\n .file-list__clear {\n appearance: none;\n border: none;\n background: none;\n color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n cursor: pointer;\n font-weight: 500;\n font-size: 13px;\n padding: 0;\n }\n\n .file-list__clear:hover {\n text-decoration: underline;\n }\n\n .file-list__items {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .file-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n background: ${cssManager.bdTheme('hsl(0 0% 100% / 0.5)', 'hsl(215 20% 16% / 0.5)')};\n border: 1px solid ${cssManager.bdTheme('hsl(213 27% 92%)', 'hsl(217 25% 26%)')};\n border-radius: 8px;\n transition: background 0.15s ease;\n }\n\n .file-row:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 100% / 0.8)', 'hsl(215 20% 16% / 0.8)')};\n }\n\n .file-thumb {\n width: 36px;\n height: 36px;\n border-radius: 8px;\n background: ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 32% 18%)')};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .file-thumb dees-icon {\n font-size: 18px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 70%)')};\n display: block;\n width: 18px;\n height: 18px;\n line-height: 1;\n flex-shrink: 0;\n }\n\n\n .thumb-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .file-meta {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n }\n\n .file-name {\n font-weight: 600;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(222 47% 11%)', 'hsl(210 20% 96%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .file-details {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215 16% 46%)', 'hsl(215 16% 70%)')};\n }\n\n .file-size {\n font-variant-numeric: tabular-nums;\n }\n\n .file-type {\n padding: 2px 8px;\n border-radius: 999px;\n border: 1px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 32% 28%)')};\n color: ${cssManager.bdTheme('hsl(215 16% 46%)', 'hsl(215 16% 70%)')};\n text-transform: uppercase;\n letter-spacing: 0.08em;\n line-height: 1;\n }\n\n .file-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-left: auto;\n }\n\n .remove-button {\n width: 28px;\n height: 28px;\n border-radius: 6px;\n background: transparent;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease, transform 0.15s ease, color 0.15s ease;\n color: ${cssManager.bdTheme('hsl(215 16% 52%)', 'hsl(215 16% 68%)')};\n }\n\n .remove-button:hover {\n background: ${cssManager.bdTheme('hsl(0 72% 50% / 0.08)', 'hsl(0 62% 32% / 0.15)')};\n color: ${cssManager.bdTheme('hsl(0 72% 46%)', 'hsl(0 70% 70%)')};\n }\n\n .remove-button:active {\n transform: scale(0.96);\n }\n\n .remove-button dees-icon {\n display: block;\n width: 14px;\n height: 14px;\n font-size: 14px;\n line-height: 1;\n flex-shrink: 0;\n }\n\n .validation-message {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(0 72% 40%)', 'hsl(0 70% 68%)')};\n line-height: 1.5;\n }\n\n @keyframes loader-spin {\n to {\n transform: rotate(360deg);\n }\n }\n `,\n];\n", "import { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './demo.js';\nimport { fileuploadStyles } from './styles.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-layout/dees-label/dees-label.js';\n\nimport {\n customElement,\n html,\n property,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-fileupload': DeesInputFileupload;\n }\n}\n\n@customElement('dees-input-fileupload')\nexport class DeesInputFileupload extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n @property({ attribute: false })\n accessor value: File[] = [];\n\n @state()\n accessor state: 'idle' | 'dragOver' | 'dropped' | 'uploading' | 'completed' = 'idle';\n\n @state()\n accessor isLoading: boolean = false;\n\n @property({ type: String })\n accessor buttonText: string = 'Select files';\n\n @property({ type: String })\n accessor accept: string = '';\n\n @property({ type: Boolean })\n accessor multiple: boolean = true;\n\n @property({ type: Number })\n accessor maxSize: number = 0; // 0 means no limit\n\n @property({ type: Number })\n accessor maxFiles: number = 0; // 0 means no limit\n\n @property({ type: String, reflect: true })\n accessor validationState: 'valid' | 'invalid' | 'warn' | 'pending' = null;\n\n accessor validationMessage: string = '';\n\n private previewUrlMap: WeakMap = new WeakMap();\n private dropArea: HTMLElement | null = null;\n\n public static styles = fileuploadStyles;\n\n public render(): TemplateResult {\n const acceptedSummary = this.getAcceptedSummary();\n const metaEntries: string[] = [\n this.multiple ? 'Multiple files supported' : 'Single file only',\n this.maxSize > 0 ? `Max ${this.formatFileSize(this.maxSize)}` : 'No size limit',\n ];\n\n if (acceptedSummary) {\n metaEntries.push(`Accepts ${acceptedSummary}`);\n }\n\n return html`\n
      \n \n 0 ? 'dropzone--has-files' : ''}\"\n role=\"button\"\n tabindex=${this.disabled ? -1 : 0}\n aria-disabled=${this.disabled}\n aria-label=${`Select files${acceptedSummary ? ` (${acceptedSummary})` : ''}`}\n @click=${this.handleDropzoneClick}\n @keydown=${this.handleDropzoneKeydown}\n >\n \n
      \n
      \n ${this.isLoading\n ? html``\n : html``}\n
      \n
      \n ${this.buttonText || 'Select files'}\n \n Drag and drop files here or\n \n browse\n \n \n
      \n
      \n
      \n ${metaEntries.map((entry) => html`${entry}`)}\n
      \n ${this.renderFileList()}\n
      \n ${this.validationMessage\n ? html`
      ${this.validationMessage}
      `\n : html``}\n \n `;\n }\n\n private renderFileList(): TemplateResult {\n if (this.value.length === 0) {\n return html``;\n }\n\n return html`\n
      \n
      \n ${this.value.length} file${this.value.length === 1 ? '' : 's'} selected\n ${this.value.length > 0\n ? html``\n : html``}\n
      \n
      \n ${this.value.map((file) => this.renderFileRow(file))}\n
      \n
      \n `;\n }\n\n private renderFileRow(file: File): TemplateResult {\n const fileType = this.getFileType(file);\n const previewUrl = this.canShowPreview(file) ? this.getPreviewUrl(file) : null;\n\n return html`\n
      \n
      \n ${previewUrl\n ? html`${`Preview`\n : html``}\n
      \n
      \n
      ${file.name}
      \n
      \n ${this.formatFileSize(file.size)}\n ${fileType !== 'file' ? html`${fileType}` : html``}\n
      \n
      \n
      \n this.removeFile(file)}\n aria-label=${`Remove ${file.name}`}\n >\n \n \n
      \n
      \n `;\n }\n\n private handleFileInputChange = async (event: Event) => {\n this.isLoading = false;\n const target = event.target as HTMLInputElement;\n const files = Array.from(target.files ?? []);\n if (files.length > 0) {\n await this.addFiles(files);\n }\n target.value = '';\n };\n\n private handleDropzoneClick = (event: MouseEvent) => {\n if (this.disabled) {\n return;\n }\n // Don't open file selector if clicking on the browse button or file list\n if ((event.target as HTMLElement).closest('.dropzone__browse, .file-list')) {\n return;\n }\n this.openFileSelector();\n };\n\n private handleBrowseClick = (event: MouseEvent) => {\n if (this.disabled) {\n return;\n }\n event.stopPropagation(); // Stop propagation to prevent double trigger\n this.openFileSelector();\n };\n\n private handleDropzoneKeydown = (event: KeyboardEvent) => {\n if (this.disabled) {\n return;\n }\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.openFileSelector();\n }\n };\n\n private handleClearAll = (event: MouseEvent) => {\n event.preventDefault();\n this.clearAll();\n };\n\n private handleDragEvent = async (event: DragEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled) {\n return;\n }\n\n if (event.type === 'dragenter' || event.type === 'dragover') {\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'copy';\n }\n this.state = 'dragOver';\n return;\n }\n\n if (event.type === 'dragleave') {\n if (!this.dropArea) {\n this.state = 'idle';\n return;\n }\n const rect = this.dropArea.getBoundingClientRect();\n const { clientX = 0, clientY = 0 } = event;\n if (clientX <= rect.left || clientX >= rect.right || clientY <= rect.top || clientY >= rect.bottom) {\n this.state = 'idle';\n }\n return;\n }\n\n if (event.type === 'drop') {\n this.state = 'idle';\n const files = Array.from(event.dataTransfer?.files ?? []);\n if (files.length > 0) {\n await this.addFiles(files);\n }\n }\n };\n\n private attachDropListeners(): void {\n if (!this.dropArea) {\n return;\n }\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\n this.dropArea!.addEventListener(eventName, this.handleDragEvent);\n });\n }\n\n private detachDropListeners(): void {\n if (!this.dropArea) {\n return;\n }\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\n this.dropArea!.removeEventListener(eventName, this.handleDragEvent);\n });\n }\n\n private rebindInteractiveElements(): void {\n const newDropArea = this.shadowRoot?.querySelector('.dropzone') as HTMLElement | null;\n\n if (newDropArea !== this.dropArea) {\n this.detachDropListeners();\n this.dropArea = newDropArea;\n this.attachDropListeners();\n }\n }\n\n public formatFileSize(bytes: number): string {\n const units = ['Bytes', 'KB', 'MB', 'GB'];\n if (bytes === 0) return '0 Bytes';\n const exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);\n const size = bytes / Math.pow(1024, exponent);\n return `${Math.round(size * 100) / 100} ${units[exponent]}`;\n }\n\n public getFileType(file: File): string {\n const type = file.type.toLowerCase();\n if (type.startsWith('image/')) return 'image';\n if (type === 'application/pdf') return 'pdf';\n if (type.includes('word') || type.includes('document')) return 'doc';\n if (type.includes('sheet') || type.includes('excel')) return 'spreadsheet';\n if (type.includes('presentation') || type.includes('powerpoint')) return 'presentation';\n if (type.startsWith('video/')) return 'video';\n if (type.startsWith('audio/')) return 'audio';\n if (type.includes('zip') || type.includes('compressed')) return 'archive';\n return 'file';\n }\n\n public getFileIcon(file: File): string {\n const fileType = this.getFileType(file);\n const iconMap: Record = {\n image: 'lucide:FileImage',\n pdf: 'lucide:FileText',\n doc: 'lucide:FileText',\n spreadsheet: 'lucide:FileSpreadsheet',\n presentation: 'lucide:FileBarChart',\n video: 'lucide:FileVideo',\n audio: 'lucide:FileAudio',\n archive: 'lucide:FileArchive',\n file: 'lucide:File',\n };\n return iconMap[fileType] ?? 'lucide:File';\n }\n\n public canShowPreview(file: File): boolean {\n return file.type.startsWith('image/') && file.size < 5 * 1024 * 1024;\n }\n\n private validateFile(file: File): boolean {\n if (this.maxSize > 0 && file.size > this.maxSize) {\n this.validationMessage = `File \"${file.name}\" exceeds the maximum size of ${this.formatFileSize(this.maxSize)}`;\n this.validationState = 'invalid';\n return false;\n }\n\n if (this.accept) {\n const acceptedTypes = this.accept\n .split(',')\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n\n if (acceptedTypes.length > 0) {\n let isAccepted = false;\n for (const acceptType of acceptedTypes) {\n if (acceptType.startsWith('.')) {\n if (file.name.toLowerCase().endsWith(acceptType.toLowerCase())) {\n isAccepted = true;\n break;\n }\n } else if (acceptType.endsWith('/*')) {\n const prefix = acceptType.slice(0, -2);\n if (file.type.startsWith(prefix)) {\n isAccepted = true;\n break;\n }\n } else if (file.type === acceptType) {\n isAccepted = true;\n break;\n }\n }\n\n if (!isAccepted) {\n this.validationMessage = `File type not accepted. Allowed: ${acceptedTypes.join(', ')}`;\n this.validationState = 'invalid';\n return false;\n }\n }\n }\n\n return true;\n }\n\n private getPreviewUrl(file: File): string {\n let url = this.previewUrlMap.get(file);\n if (!url) {\n url = URL.createObjectURL(file);\n this.previewUrlMap.set(file, url);\n }\n return url;\n }\n\n private releasePreview(file: File): void {\n const url = this.previewUrlMap.get(file);\n if (url) {\n URL.revokeObjectURL(url);\n this.previewUrlMap.delete(file);\n }\n }\n\n private getAcceptedSummary(): string | null {\n if (!this.accept) {\n return null;\n }\n\n const formatted = Array.from(\n new Set(\n this.accept\n .split(',')\n .map((token) => token.trim())\n .filter((token) => token.length > 0)\n .map((token) => this.formatAcceptToken(token))\n )\n ).filter(Boolean);\n\n if (formatted.length === 0) {\n return null;\n }\n\n if (formatted.length === 1) {\n return formatted[0];\n }\n\n if (formatted.length === 2) {\n return `${formatted[0]}, ${formatted[1]}`;\n }\n\n return `${formatted.slice(0, 2).join(', ')}\u2026`;\n }\n\n private formatAcceptToken(token: string): string {\n if (token === '*/*') {\n return 'All files';\n }\n\n if (token.endsWith('/*')) {\n const family = token.split('/')[0];\n if (!family) {\n return 'All files';\n }\n return `${family.charAt(0).toUpperCase()}${family.slice(1)} files`;\n }\n\n if (token.startsWith('.')) {\n return token.slice(1).toUpperCase();\n }\n\n if (token.includes('pdf')) return 'PDF';\n if (token.includes('zip')) return 'ZIP';\n if (token.includes('json')) return 'JSON';\n if (token.includes('msword')) return 'DOC';\n if (token.includes('wordprocessingml')) return 'DOCX';\n if (token.includes('excel')) return 'XLS';\n if (token.includes('presentation')) return 'PPT';\n\n const segments = token.split('/');\n const lastSegment = segments.pop() ?? token;\n return lastSegment.toUpperCase();\n }\n\n private attachLifecycleListeners(): void {\n this.rebindInteractiveElements();\n }\n\n public firstUpdated(changedProperties: Map) {\n super.firstUpdated(changedProperties);\n this.attachLifecycleListeners();\n }\n\n public updated(changedProperties: Map) {\n super.updated(changedProperties);\n if (changedProperties.has('value')) {\n void this.validate();\n }\n this.rebindInteractiveElements();\n }\n\n public async disconnectedCallback(): Promise {\n this.detachDropListeners();\n this.value.forEach((file) => this.releasePreview(file));\n this.previewUrlMap = new WeakMap();\n await super.disconnectedCallback();\n }\n\n public async openFileSelector() {\n if (this.disabled || this.isLoading) {\n return;\n }\n\n this.isLoading = true;\n\n // Ensure we have the latest reference to the file input\n const inputFile = this.shadowRoot?.querySelector('.file-input') as HTMLInputElement | null;\n\n if (!inputFile) {\n this.isLoading = false;\n return;\n }\n\n const handleFocus = () => {\n setTimeout(() => {\n if (!inputFile.files || inputFile.files.length === 0) {\n this.isLoading = false;\n }\n window.removeEventListener('focus', handleFocus);\n }, 300);\n };\n\n window.addEventListener('focus', handleFocus);\n\n // Click the input to open file selector\n inputFile.click();\n }\n\n public removeFile(file: File) {\n const index = this.value.indexOf(file);\n if (index > -1) {\n this.releasePreview(file);\n this.value.splice(index, 1);\n this.requestUpdate('value');\n void this.validate();\n this.changeSubject.next(this);\n }\n }\n\n public clearAll() {\n const existingFiles = [...this.value];\n this.value = [];\n existingFiles.forEach((file) => this.releasePreview(file));\n this.requestUpdate('value');\n void this.validate();\n this.changeSubject.next(this);\n this.buttonText = 'Select files';\n }\n\n public async updateValue(eventArg: Event) {\n const target = eventArg.target as HTMLInputElement;\n this.value = Array.from(target.files ?? []);\n this.changeSubject.next(this);\n }\n\n public setValue(value: File[]): void {\n this.value.forEach((file) => this.releasePreview(file));\n this.value = value;\n if (value.length > 0) {\n this.buttonText = this.multiple ? 'Add more files' : 'Replace file';\n } else {\n this.buttonText = 'Select files';\n }\n this.requestUpdate('value');\n void this.validate();\n }\n\n public getValue(): File[] {\n return this.value;\n }\n\n private async addFiles(files: File[]) {\n const filesToAdd: File[] = [];\n\n for (const file of files) {\n if (this.validateFile(file)) {\n filesToAdd.push(file);\n }\n }\n\n if (filesToAdd.length === 0) {\n this.isLoading = false;\n return;\n }\n\n if (this.maxFiles > 0) {\n const totalFiles = this.value.length + filesToAdd.length;\n if (totalFiles > this.maxFiles) {\n const allowedCount = this.maxFiles - this.value.length;\n if (allowedCount <= 0) {\n this.validationMessage = `Maximum ${this.maxFiles} files allowed`;\n this.validationState = 'invalid';\n this.isLoading = false;\n return;\n }\n filesToAdd.splice(allowedCount);\n this.validationMessage = `Only ${allowedCount} more file(s) can be added`;\n this.validationState = 'warn';\n }\n }\n\n if (!this.multiple && filesToAdd.length > 0) {\n this.value.forEach((file) => this.releasePreview(file));\n this.value = [filesToAdd[0]];\n } else {\n this.value.push(...filesToAdd);\n }\n\n this.validationMessage = '';\n this.validationState = null;\n this.requestUpdate('value');\n await this.validate();\n this.changeSubject.next(this);\n this.isLoading = false;\n\n if (this.value.length > 0) {\n this.buttonText = this.multiple ? 'Add more files' : 'Replace file';\n } else {\n this.buttonText = 'Select files';\n }\n }\n\n public async validate(): Promise {\n this.validationMessage = '';\n\n if (this.required && this.value.length === 0) {\n this.validationState = 'invalid';\n this.validationMessage = 'Please select at least one file';\n return false;\n }\n\n for (const file of this.value) {\n if (!this.validateFile(file)) {\n return false;\n }\n }\n\n this.validationState = this.value.length > 0 ? 'valid' : null;\n return true;\n }\n}\n", "export * from './component.js';\n", "/*!\n * @license\n * Copyright Sa\u0161a Jovani\u0107\n * Licensed under the Mozilla Public License, Version 2.0 or the MIT license,\n * at your option. This file may not be copied, modified, or distributed\n * except according to those terms.\n * SPDX-FileCopyrightText: Sa\u0161a Jovani\u0107\n * SPDX-License-Identifier: MIT or MPL/2.0\n */\n/**\n * Validation, extraction and creation of IBAN, BBAN, BIC/SWIFT numbers plus some other helpful stuff\n * @package Documentation\n * @author Sa\u0161a Jovani\u0107\n * @module ibantools\n * @version 4.5.1\n * @license MIT or MPL-2.0\n * @preferred\n */\n'use strict';\n/**\n * Validate IBAN\n * ```\n * // returns true\n * ibantools.isValidIBAN(\"NL91ABNA0417164300\");\n * ```\n * ```\n * // returns false\n * ibantools.isValidIBAN(\"NL92ABNA0517164300\");\n * ```\n * ```\n * // returns true\n * ibantools.isValidIBAN('CH4431999123000889012');\n * ```\n * ```\n * // returns false\n * ibantools.isValidIBAN('CH4431999123000889012', { allowQRIBAN: false });\n * ```\n */\nexport function isValidIBAN(iban, validationOptions) {\n if (validationOptions === void 0) { validationOptions = { allowQRIBAN: true }; }\n if (iban === undefined || iban === null)\n return false;\n var reg = new RegExp('^[0-9]{2}$', '');\n var countryCode = iban.slice(0, 2);\n var spec = countrySpecs[countryCode];\n if (spec === undefined || spec.bban_regexp === undefined || spec.bban_regexp === null || spec.chars === undefined)\n return false;\n return (spec.chars === iban.length &&\n reg.test(iban.slice(2, 4)) &&\n isValidBBAN(iban.slice(4), countryCode) &&\n isValidIBANChecksum(iban) &&\n (validationOptions.allowQRIBAN || !isQRIBAN(iban)));\n}\n/**\n * IBAM validation errors\n */\nexport var ValidationErrorsIBAN;\n(function (ValidationErrorsIBAN) {\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"NoIBANProvided\"] = 0] = \"NoIBANProvided\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"NoIBANCountry\"] = 1] = \"NoIBANCountry\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongBBANLength\"] = 2] = \"WrongBBANLength\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongBBANFormat\"] = 3] = \"WrongBBANFormat\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"ChecksumNotNumber\"] = 4] = \"ChecksumNotNumber\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongIBANChecksum\"] = 5] = \"WrongIBANChecksum\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongAccountBankBranchChecksum\"] = 6] = \"WrongAccountBankBranchChecksum\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"QRIBANNotAllowed\"] = 7] = \"QRIBANNotAllowed\";\n})(ValidationErrorsIBAN || (ValidationErrorsIBAN = {}));\n/**\n * validateIBAN\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateIBAN(\"NL91ABNA0417164300\");\n * ```\n * ```\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateIBAN('CH4431999123000889012');\n * ```\n * ```\n * // returns {errorCodes: [7], valid: false}\n * ibantools.validateIBAN('CH4431999123000889012', { allowQRIBAN: false });\n * ```\n */\nexport function validateIBAN(iban, validationOptions) {\n if (validationOptions === void 0) { validationOptions = { allowQRIBAN: true }; }\n var result = { errorCodes: [], valid: true };\n if (iban !== undefined && iban !== null && iban !== '') {\n var spec = countrySpecs[iban.slice(0, 2)];\n if (!spec || !(spec.bban_regexp || spec.chars)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.NoIBANCountry);\n return result;\n }\n if (spec && spec.chars && spec.chars !== iban.length) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongBBANLength);\n }\n if (spec && spec.bban_regexp && !checkFormatBBAN(iban.slice(4), spec.bban_regexp)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongBBANFormat);\n }\n if (spec && spec.bban_validation_func && !spec.bban_validation_func(iban.slice(4))) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongAccountBankBranchChecksum);\n }\n var reg = new RegExp('^[0-9]{2}$', '');\n if (!reg.test(iban.slice(2, 4))) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.ChecksumNotNumber);\n }\n if (result.errorCodes.indexOf(ValidationErrorsIBAN.WrongBBANFormat) !== -1 || !isValidIBANChecksum(iban)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongIBANChecksum);\n }\n if (!validationOptions.allowQRIBAN && isQRIBAN(iban)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.QRIBANNotAllowed);\n }\n }\n else {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.NoIBANProvided);\n }\n return result;\n}\n/**\n * Validate BBAN\n *\n * ```\n * // returns true\n * ibantools.isValidBBAN(\"ABNA0417164300\", \"NL\");\n * ```\n * ```\n * // returns false\n * ibantools.isValidBBAN(\"A7NA0517164300\", \"NL\");\n * ```\n */\nexport function isValidBBAN(bban, countryCode) {\n if (bban === undefined || bban === null || countryCode === undefined || countryCode === null)\n return false;\n var spec = countrySpecs[countryCode];\n if (spec === undefined ||\n spec === null ||\n spec.bban_regexp === undefined ||\n spec.bban_regexp === null ||\n spec.chars === undefined ||\n spec.chars === null)\n return false;\n if (spec.chars - 4 === bban.length && checkFormatBBAN(bban, spec.bban_regexp)) {\n if (spec.bban_validation_func) {\n return spec.bban_validation_func(bban.replace(/[\\s.]+/g, ''));\n }\n return true;\n }\n return false;\n}\n/**\n * Validate if country code is from a SEPA country\n * ```\n * // returns true\n * ibantools.isSEPACountry(\"NL\");\n * ```\n * ```\n * // returns false\n * ibantools.isSEPACountry(\"PK\");\n * ```\n */\nexport function isSEPACountry(countryCode) {\n if (countryCode !== undefined && countryCode !== null) {\n var spec = countrySpecs[countryCode];\n if (spec !== undefined) {\n return spec.SEPA ? spec.SEPA : false;\n }\n }\n return false;\n}\n/**\n * Check if IBAN is QR-IBAN\n * ```\n * // returns true\n * ibantools.isQRIBAN(\"CH4431999123000889012\");\n * ```\n * ```\n * // returns false\n * ibantools.isQRIBAN(\"NL92ABNA0517164300\");\n * ```\n */\nexport function isQRIBAN(iban) {\n if (iban === undefined || iban === null)\n return false;\n var countryCode = iban.slice(0, 2);\n var QRIBANCountries = ['LI', 'CH'];\n if (!QRIBANCountries.includes(countryCode))\n return false;\n var reg = new RegExp('^3[0-1]{1}[0-9]{3}$', '');\n return reg.test(iban.slice(4, 9));\n}\n/**\n * composeIBAN\n *\n * ```\n * // returns NL91ABNA0417164300\n * ibantools.composeIBAN({ countryCode: \"NL\", bban: \"ABNA0417164300\" });\n * ```\n */\nexport function composeIBAN(params) {\n var formated_bban = electronicFormatIBAN(params.bban) || '';\n if (params.countryCode === null || params.countryCode === undefined) {\n return null;\n }\n var spec = countrySpecs[params.countryCode];\n if (formated_bban !== '' &&\n spec !== undefined &&\n spec.chars &&\n spec.chars !== null &&\n spec.chars === formated_bban.length + 4 &&\n spec.bban_regexp &&\n spec.bban_regexp !== null &&\n checkFormatBBAN(formated_bban, spec.bban_regexp)) {\n var checksom = mod9710Iban(params.countryCode + '00' + formated_bban);\n return params.countryCode + ('0' + (98 - checksom)).slice(-2) + formated_bban;\n }\n return null;\n}\n/**\n * extractIBAN\n * ```\n * // returns {iban: \"NL91ABNA0417164300\", bban: \"ABNA0417164300\", countryCode: \"NL\", valid: true, accountNumber: '0417164300', bankIdentifier: 'ABNA'}\n * ibantools.extractIBAN(\"NL91 ABNA 0417 1643 00\");\n * ```\n */\nexport function extractIBAN(iban) {\n var result = {};\n var eFormatIBAN = electronicFormatIBAN(iban);\n result.iban = eFormatIBAN || iban;\n if (!!eFormatIBAN && isValidIBAN(eFormatIBAN)) {\n result.bban = eFormatIBAN.slice(4);\n result.countryCode = eFormatIBAN.slice(0, 2);\n result.valid = true;\n var spec = countrySpecs[result.countryCode];\n if (spec.account_indentifier) {\n var ac = spec.account_indentifier.split('-');\n var starting = parseInt(ac[0]);\n var ending = parseInt(ac[1]);\n result.accountNumber = result.iban.slice(starting, ending + 1);\n }\n if (spec.bank_identifier) {\n var ac = spec.bank_identifier.split('-');\n var starting = parseInt(ac[0]);\n var ending = parseInt(ac[1]);\n result.bankIdentifier = result.bban.slice(starting, ending + 1);\n }\n if (spec.branch_indentifier) {\n var ac = spec.branch_indentifier.split('-');\n var starting = parseInt(ac[0]);\n var ending = parseInt(ac[1]);\n result.branchIdentifier = result.bban.slice(starting, ending + 1);\n }\n }\n else {\n result.valid = false;\n }\n return result;\n}\n/**\n * Check BBAN format\n *\n * @ignore\n */\nfunction checkFormatBBAN(bban, bformat) {\n var reg = new RegExp(bformat, '');\n return reg.test(bban);\n}\n/**\n * Get IBAN in electronic format (no spaces)\n * IBAN validation is not performed.\n * When non-string value for IBAN is provided, returns null.\n * ```\n * // returns \"NL91ABNA0417164300\"\n * ibantools.electronicFormatIBAN(\"NL91 ABNA 0417 1643 00\");\n * ```\n */\nexport function electronicFormatIBAN(iban) {\n if (typeof iban !== 'string') {\n return null;\n }\n return iban.replace(/[-\\ ]/g, '').toUpperCase();\n}\n/**\n * Get IBAN in friendly format (separated after every 4 characters)\n * IBAN validation is not performed.\n * When non-string value for IBAN is provided, returns null.\n * ```\n * // returns \"NL91 ABNA 0417 1643 00\"\n * ibantools.friendlyFormatIBAN(\"NL91ABNA0417164300\");\n * ```\n * ```\n * // returns \"NL91-ABNA-0417-1643-00\"\n * ibantools.friendlyFormatIBAN(\"NL91ABNA0417164300\",\"-\");\n * ```\n */\nexport function friendlyFormatIBAN(iban, separator) {\n if (typeof iban !== 'string') {\n return null;\n }\n if (separator === undefined || separator === null) {\n separator = ' ';\n }\n var electronic_iban = electronicFormatIBAN(iban);\n /* istanbul ignore if */\n if (electronic_iban === null) {\n return null;\n }\n return electronic_iban.replace(/(.{4})(?!$)/g, '$1' + separator);\n}\n/**\n * Calculate checksum of IBAN and compares it with checksum provided in IBAN Registry\n *\n * @ignore\n */\nfunction isValidIBANChecksum(iban) {\n var countryCode = iban.slice(0, 2);\n var providedChecksum = parseInt(iban.slice(2, 4), 10);\n var bban = iban.slice(4);\n // Wikipedia[validating_iban] says there are a specif way to check if a IBAN is valid but\n // it. It says 'If the remainder is 1, the check digit test is passed and the\n // IBAN might be valid.'. might, MIGHT!\n // We don't want might but want yes or no. Since every BBAN is IBAN from the fifth\n // (slice(4)) we can generate the IBAN from BBAN and country code(two first characters)\n // from in the IBAN.\n // To generate the (generate the iban check digits)[generating-iban-check]\n // Move the country code to the end\n // remove the checksum from the begging\n // Add \"00\" to the end\n // modulo 97 on the amount\n // subtract remainder from 98, (98 - remainder)\n // Add a leading 0 if the remainder is less then 10 (padStart(2, \"0\")) (we skip this\n // since we compare int, not string)\n //\n // [validating_iban][https://en.wikipedia.org/wiki/International_Bank_Account_Number#Validating_the_IBAN]\n // [generating-iban-check][https://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits]\n var validationString = replaceCharaterWithCode(\"\".concat(bban).concat(countryCode, \"00\"));\n var rest = mod9710(validationString);\n return 98 - rest === providedChecksum;\n}\n/**\n * Iban contain characters and should be converted to intereger by 55 substracted\n * from there ascii value\n *\n * @ignore\n */\nfunction replaceCharaterWithCode(str) {\n // It is slower but alot more readable\n // https://jsbench.me/ttkzgsekae/1\n return str\n .split('')\n .map(function (c) {\n var code = c.charCodeAt(0);\n return code >= 65 ? (code - 55).toString() : c;\n })\n .join('');\n}\n/**\n * MOD-97-10\n *\n * @ignore\n */\nfunction mod9710Iban(iban) {\n return mod9710(replaceCharaterWithCode(iban.slice(4) + iban.slice(0, 4)));\n}\n/**\n * Returns specifications for all countries, even those who are not\n * members of IBAN registry. `IBANRegistry` field indicates if country\n * is member of not.\n *\n * ```\n * // Validating IBAN form field after user selects his country\n * // \n * $(\"#countries\").select(function() {\n * // Find country\n * let country = ibantools.getCountrySpecifications()[$(this).val()];\n * // Add country code letters to IBAN form field\n * $(\"input#iban\").value($(this).val());\n * // Add New value to \"pattern\" attribute to #iban input text field\n * $(\"input#iban\").attr(\"pattern\", $(this).val() + \"[0-9]{2}\" + country.bban_regexp.slice(1).replace(\"$\",\"\"));\n * });\n * ```\n */\nexport function getCountrySpecifications() {\n var countyMap = {};\n for (var countyCode in countrySpecs) {\n var county = countrySpecs[countyCode];\n countyMap[countyCode] = {\n chars: county.chars || null,\n bban_regexp: county.bban_regexp || null,\n IBANRegistry: county.IBANRegistry || false,\n SEPA: county.SEPA || false,\n };\n }\n return countyMap;\n}\n/**\n * Validate BIC/SWIFT\n *\n * ```\n * // returns true\n * ibantools.isValidBIC(\"ABNANL2A\");\n *\n * // returns true\n * ibantools.isValidBIC(\"NEDSZAJJXXX\");\n *\n * // returns false\n * ibantools.isValidBIC(\"ABN4NL2A\");\n *\n * // returns false\n * ibantools.isValidBIC(\"ABNA NL 2A\");\n * ```\n */\nexport function isValidBIC(bic) {\n if (!bic) {\n return false;\n }\n var reg = new RegExp('^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$', '');\n var spec = countrySpecs[bic.toUpperCase().slice(4, 6)];\n return reg.test(bic) && spec !== undefined;\n}\n/**\n * BIC validation errors\n */\nexport var ValidationErrorsBIC;\n(function (ValidationErrorsBIC) {\n ValidationErrorsBIC[ValidationErrorsBIC[\"NoBICProvided\"] = 0] = \"NoBICProvided\";\n ValidationErrorsBIC[ValidationErrorsBIC[\"NoBICCountry\"] = 1] = \"NoBICCountry\";\n ValidationErrorsBIC[ValidationErrorsBIC[\"WrongBICFormat\"] = 2] = \"WrongBICFormat\";\n})(ValidationErrorsBIC || (ValidationErrorsBIC = {}));\n/**\n * validateBIC\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateBIC(\"NEDSZAJJXXX\");\n * ```\n */\nexport function validateBIC(bic) {\n var result = { errorCodes: [], valid: true };\n if (bic !== undefined && bic !== null && bic !== '') {\n var spec = countrySpecs[bic.toUpperCase().slice(4, 6)];\n if (spec === undefined) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.NoBICCountry);\n }\n else {\n var reg = new RegExp('^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$', '');\n if (!reg.test(bic)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.WrongBICFormat);\n }\n }\n }\n else {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.NoBICProvided);\n }\n return result;\n}\n/**\n * extractBIC\n * ```\n * // returns {bankCode: \"ABNA\", countryCode: \"NL\", locationCode: \"2A\", branchCode: null, testBIC: false, valid: true}\n * ibantools.extractBIC(\"ABNANL2A\");\n * ```\n */\nexport function extractBIC(inputBic) {\n var result = {};\n var bic = inputBic.toUpperCase();\n if (isValidBIC(bic)) {\n result.bankCode = bic.slice(0, 4);\n result.countryCode = bic.slice(4, 6);\n result.locationCode = bic.slice(6, 8);\n result.testBIC = result.locationCode[1] === '0' ? true : false;\n result.branchCode = bic.length > 8 ? bic.slice(8) : null;\n result.valid = true;\n }\n else {\n result.valid = false;\n }\n return result;\n}\n/**\n * Used for Norway BBAN check\n *\n * @ignore\n */\nvar checkNorwayBBAN = function (bban) {\n var weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];\n var bbanWithoutSpacesAndPeriods = bban.replace(/[\\s.]+/g, '');\n var controlDigit = parseInt(bbanWithoutSpacesAndPeriods.charAt(10), 10);\n var bbanWithoutControlDigit = bbanWithoutSpacesAndPeriods.substring(0, 10);\n var sum = 0;\n for (var index = 0; index < 10; index++) {\n sum += parseInt(bbanWithoutControlDigit.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 11;\n return controlDigit === (remainder === 0 ? 0 : 11 - remainder);\n};\n/**\n * Used for Belgian BBAN check\n *\n * @ignore\n */\nvar checkBelgianBBAN = function (bban) {\n var stripped = bban.replace(/[\\s.]+/g, '');\n var checkingPart = parseInt(stripped.substring(0, stripped.length - 2), 10);\n var checksum = parseInt(stripped.substring(stripped.length - 2, stripped.length), 10);\n var remainder = checkingPart % 97 === 0 ? 97 : checkingPart % 97;\n return remainder === checksum;\n};\n/**\n * Mod 97/10 calculation\n *\n * @ignore\n */\nvar mod9710 = function (validationString) {\n while (validationString.length > 2) {\n // > Any computer programming language or software package that is used to compute D\n // > mod 97 directly must have the ability to handle integers of more than 30 digits.\n // > In practice, this can only be done by software that either supports\n // > arbitrary-precision arithmetic or that can handle 219-bit (unsigned) integers\n // https://en.wikipedia.org/wiki/International_Bank_Account_Number#Modulo_operation_on_IBAN\n var part = validationString.slice(0, 6);\n var partInt = parseInt(part, 10);\n if (isNaN(partInt)) {\n return NaN;\n }\n validationString = (partInt % 97) + validationString.slice(part.length);\n }\n return parseInt(validationString, 10) % 97;\n};\n/**\n * Check BBAN based on Mod97/10 calculation for countries that support it:\n * BA, ME, MK, PT, RS, SI\n *\n * @ignore\n */\nvar checkMod9710BBAN = function (bban) {\n var stripped = bban.replace(/[\\s.]+/g, '');\n var reminder = mod9710(stripped);\n return reminder === 1;\n};\n/**\n * Used for Poland BBAN check\n *\n * @ignore\n */\nvar checkPolandBBAN = function (bban) {\n var weights = [3, 9, 7, 1, 3, 9, 7];\n var controlDigit = parseInt(bban.charAt(7), 10);\n var toCheck = bban.substring(0, 7);\n var sum = 0;\n for (var index = 0; index < 7; index++) {\n sum += parseInt(toCheck.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 10;\n return controlDigit === (remainder === 0 ? 0 : 10 - remainder);\n};\n/**\n * Spain (ES) BBAN check\n *\n * @ignore\n */\nvar checkSpainBBAN = function (bban) {\n var weightsBankBranch = [4, 8, 5, 10, 9, 7, 3, 6];\n var weightsAccount = [1, 2, 4, 8, 5, 10, 9, 7, 3, 6];\n var controlBankBranch = parseInt(bban.charAt(8), 10);\n var controlAccount = parseInt(bban.charAt(9), 10);\n var bankBranch = bban.substring(0, 8);\n var account = bban.substring(10, 20);\n var sum = 0;\n for (var index = 0; index < 8; index++) {\n sum += parseInt(bankBranch.charAt(index), 10) * weightsBankBranch[index];\n }\n var remainder = sum % 11;\n if (controlBankBranch !== (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder)) {\n return false;\n }\n sum = 0;\n for (var index = 0; index < 10; index++) {\n sum += parseInt(account.charAt(index), 10) * weightsAccount[index];\n }\n remainder = sum % 11;\n return controlAccount === (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder);\n};\n/**\n * Mod 11/10 check\n *\n * @ignore\n */\nvar checkMod1110 = function (toCheck, control) {\n var nr = 10;\n for (var index = 0; index < toCheck.length; index++) {\n nr += parseInt(toCheck.charAt(index), 10);\n if (nr % 10 !== 0) {\n nr = nr % 10;\n }\n nr = nr * 2;\n nr = nr % 11;\n }\n return control === (11 - nr === 10 ? 0 : 11 - nr);\n};\n/**\n * Croatian (HR) BBAN check\n *\n * @ignore\n */\nvar checkCroatianBBAN = function (bban) {\n var controlBankBranch = parseInt(bban.charAt(6), 10);\n var controlAccount = parseInt(bban.charAt(16), 10);\n var bankBranch = bban.substring(0, 6);\n var account = bban.substring(7, 16);\n return checkMod1110(bankBranch, controlBankBranch) && checkMod1110(account, controlAccount);\n};\n/**\n * Czech (CZ) and Slowak (SK) BBAN check\n *\n * @ignore\n */\nvar checkCzechAndSlovakBBAN = function (bban) {\n var weightsPrefix = [10, 5, 8, 4, 2, 1];\n var weightsSuffix = [6, 3, 7, 9, 10, 5, 8, 4, 2, 1];\n var controlPrefix = parseInt(bban.charAt(9), 10);\n var controlSuffix = parseInt(bban.charAt(19), 10);\n var prefix = bban.substring(4, 9);\n var suffix = bban.substring(10, 19);\n var sum = 0;\n for (var index = 0; index < prefix.length; index++) {\n sum += parseInt(prefix.charAt(index), 10) * weightsPrefix[index];\n }\n var remainder = sum % 11;\n if (controlPrefix !== (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder)) {\n return false;\n }\n sum = 0;\n for (var index = 0; index < suffix.length; index++) {\n sum += parseInt(suffix.charAt(index), 10) * weightsSuffix[index];\n }\n remainder = sum % 11;\n return controlSuffix === (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder);\n};\n/**\n * Estonian (EE) BBAN check\n *\n * @ignore\n */\nvar checkEstonianBBAN = function (bban) {\n var weights = [7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7];\n var controlDigit = parseInt(bban.charAt(15), 10);\n var toCheck = bban.substring(2, 15);\n var sum = 0;\n for (var index = 0; index < toCheck.length; index++) {\n sum += parseInt(toCheck.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 10;\n return controlDigit === (remainder === 0 ? 0 : 10 - remainder);\n};\n/**\n * Check French (FR) BBAN\n * Also for Monaco (MC)\n *\n * @ignore\n */\nvar checkFrenchBBAN = function (bban) {\n var stripped = bban.replace(/[\\s.]+/g, '');\n var normalized = Array.from(stripped);\n for (var index = 0; index < stripped.length; index++) {\n var c = normalized[index].charCodeAt(0);\n if (c >= 65) {\n switch (c) {\n case 65:\n case 74:\n normalized[index] = '1';\n break;\n case 66:\n case 75:\n case 83:\n normalized[index] = '2';\n break;\n case 67:\n case 76:\n case 84:\n normalized[index] = '3';\n break;\n case 68:\n case 77:\n case 85:\n normalized[index] = '4';\n break;\n case 69:\n case 78:\n case 86:\n normalized[index] = '5';\n break;\n case 70:\n case 79:\n case 87:\n normalized[index] = '6';\n break;\n case 71:\n case 80:\n case 88:\n normalized[index] = '7';\n break;\n case 72:\n case 81:\n case 89:\n normalized[index] = '8';\n break;\n case 73:\n case 82:\n case 90:\n normalized[index] = '9';\n break;\n }\n }\n }\n var remainder = mod9710(normalized.join(''));\n return remainder === 0;\n};\n/**\n * Hungarian (HU) BBAN check\n *\n * @ignore\n */\nvar checkHungarianBBAN = function (bban) {\n var weights = [9, 7, 3, 1, 9, 7, 3, 1, 9, 7, 3, 1, 9, 7, 3];\n var controlDigitBankBranch = parseInt(bban.charAt(7), 10);\n var toCheckBankBranch = bban.substring(0, 7);\n var sum = 0;\n for (var index = 0; index < toCheckBankBranch.length; index++) {\n sum += parseInt(toCheckBankBranch.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 10;\n if (controlDigitBankBranch !== (remainder === 0 ? 0 : 10 - remainder)) {\n return false;\n }\n sum = 0;\n if (bban.endsWith('00000000')) {\n var toCheckAccount = bban.substring(8, 15);\n var controlDigitAccount = parseInt(bban.charAt(15), 10);\n for (var index = 0; index < toCheckAccount.length; index++) {\n sum += parseInt(toCheckAccount.charAt(index), 10) * weights[index];\n }\n var remainder_1 = sum % 10;\n return controlDigitAccount === (remainder_1 === 0 ? 0 : 10 - remainder_1);\n }\n else {\n var toCheckAccount = bban.substring(8, 23);\n var controlDigitAccount = parseInt(bban.charAt(23), 10);\n for (var index = 0; index < toCheckAccount.length; index++) {\n sum += parseInt(toCheckAccount.charAt(index), 10) * weights[index];\n }\n var remainder_2 = sum % 10;\n return controlDigitAccount === (remainder_2 === 0 ? 0 : 10 - remainder_2);\n }\n};\n/**\n * Set custom BBAN validation function for country.\n *\n * If `bban_validation_func` already exists for the corresponding country,\n * it will be overwritten.\n */\nexport var setCountryBBANValidation = function (country, func) {\n if (typeof countrySpecs[country] === 'undefined') {\n return false;\n }\n countrySpecs[country].bban_validation_func = func;\n return true;\n};\n/**\n * Country specifications\n */\nexport var countrySpecs = {\n AD: {\n chars: 24,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n account_indentifier: '8-24',\n },\n AE: {\n chars: 23,\n bban_regexp: '^[0-9]{3}[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-2',\n account_indentifier: '7-23',\n },\n AF: {},\n AG: {},\n AI: {},\n AL: {\n chars: 28,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$',\n IBANRegistry: true,\n branch_indentifier: '3-7',\n bank_identifier: '0-2',\n account_indentifier: '12-28',\n },\n AM: {},\n AO: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n },\n AQ: {},\n AR: {},\n AS: {},\n AT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true, bank_identifier: '0-4' },\n AU: {},\n AW: {},\n AX: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n },\n AZ: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{20}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '4-28',\n },\n BA: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n branch_indentifier: '3-5',\n bank_identifier: '0-2',\n },\n BB: {},\n BD: {},\n BE: {\n chars: 16,\n bban_regexp: '^[0-9]{12}$',\n bban_validation_func: checkBelgianBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-2',\n account_indentifier: '0-16',\n },\n BF: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n BG: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[0-9]{6}[A-Z0-9]{8}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n },\n BH: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-22',\n },\n BI: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n account_indentifier: '14-27',\n },\n BJ: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n BL: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n },\n BM: {},\n BN: {},\n BO: {},\n BQ: {},\n BR: {\n chars: 29,\n bban_regexp: '^[0-9]{23}[A-Z]{1}[A-Z0-9]{1}$',\n IBANRegistry: true,\n branch_indentifier: '8-12',\n bank_identifier: '0-7',\n account_indentifier: '17-29',\n },\n BS: {},\n BT: {},\n BV: {},\n BW: {},\n BY: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n },\n BZ: {},\n CA: {},\n CC: {},\n CD: {},\n CF: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CG: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CH: {\n chars: 21,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-4',\n },\n CI: {\n chars: 28,\n bban_regexp: '^[A-Z]{1}[0-9]{23}$',\n },\n CK: {},\n CL: {},\n CM: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CN: {},\n CO: {},\n CR: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-22',\n },\n CU: {},\n CV: { chars: 25, bban_regexp: '^[0-9]{21}$' },\n CW: {},\n CX: {},\n CY: {\n chars: 28,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '3-7',\n bank_identifier: '0-2',\n account_indentifier: '12-28',\n },\n CZ: {\n chars: 24,\n bban_regexp: '^[0-9]{20}$',\n bban_validation_func: checkCzechAndSlovakBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n },\n DE: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-7',\n account_indentifier: '13-22',\n },\n DJ: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n account_indentifier: '14-27',\n },\n DK: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '4-18',\n },\n DM: {},\n DO: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-28',\n },\n DZ: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n },\n EC: {},\n EE: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n bban_validation_func: checkEstonianBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-1',\n account_indentifier: '8-20',\n },\n EG: {\n chars: 29,\n bban_regexp: '^[0-9]{25}',\n IBANRegistry: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n account_indentifier: '17-29',\n },\n EH: {},\n ER: {},\n ES: {\n chars: 24,\n bban_validation_func: checkSpainBBAN,\n bban_regexp: '^[0-9]{20}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n account_indentifier: '14-24',\n },\n ET: {},\n FI: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-2',\n account_indentifier: '0-0',\n },\n FJ: {},\n FK: {\n chars: 18,\n bban_regexp: '^[A-Z]{2}[0-9]{12}$',\n bank_identifier: '0-1',\n account_indentifier: '6-18',\n },\n FM: {},\n FO: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '4-18',\n },\n FR: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n bban_validation_func: checkFrenchBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-4',\n branch_indentifier: '5-9',\n account_indentifier: '14-24',\n },\n GA: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n GB: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-9',\n bank_identifier: '0-3',\n },\n GD: {},\n GE: {\n chars: 22,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '6-22',\n },\n GF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n GG: {},\n GH: {},\n GI: {\n chars: 23,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{15}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '8-23',\n },\n GL: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '4-18',\n },\n GM: {},\n GN: {},\n GP: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n GQ: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n GR: {\n chars: 27,\n bban_regexp: '^[0-9]{7}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '3-6',\n bank_identifier: '0-2',\n account_indentifier: '7-27',\n },\n GS: {},\n GT: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{24}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-28',\n },\n GU: {},\n GW: {\n chars: 25,\n bban_regexp: '^[A-Z]{2}[0-9]{19}$',\n },\n GY: {},\n HK: {},\n HM: {},\n HN: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n },\n HR: {\n chars: 21,\n bban_regexp: '^[0-9]{17}$',\n bban_validation_func: checkCroatianBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-6',\n },\n HT: {},\n HU: {\n chars: 28,\n bban_regexp: '^[0-9]{24}$',\n bban_validation_func: checkHungarianBBAN,\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '3-6',\n bank_identifier: '0-2',\n },\n ID: {},\n IE: {\n chars: 22,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-9',\n bank_identifier: '0-3',\n },\n IL: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n branch_indentifier: '3-5',\n bank_identifier: '0-2',\n },\n IM: {},\n IN: {},\n IO: {},\n IQ: {\n chars: 23,\n bban_regexp: '^[A-Z]{4}[0-9]{15}$',\n IBANRegistry: true,\n branch_indentifier: '4-6',\n bank_identifier: '0-3',\n account_indentifier: '11-23',\n },\n IR: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n },\n IS: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '2-3',\n bank_identifier: '0-1',\n },\n IT: {\n chars: 27,\n bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '6-10',\n bank_identifier: '1-5',\n account_indentifier: '4-27',\n },\n JE: {},\n JM: {},\n JO: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{18}$',\n IBANRegistry: true,\n branch_indentifier: '4-7',\n bank_identifier: '4-7',\n },\n JP: {},\n KE: {},\n KG: {},\n KH: {},\n KI: {},\n KM: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n KN: {},\n KP: {},\n KR: {},\n KW: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{22}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '20-30',\n },\n KY: {},\n KZ: {\n chars: 20,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$',\n IBANRegistry: true,\n bank_identifier: '0-2',\n account_indentifier: '0-20',\n },\n LA: {},\n LB: {\n chars: 28,\n bban_regexp: '^[0-9]{4}[A-Z0-9]{20}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '14-28',\n },\n LC: {\n chars: 32,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{24}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-32',\n },\n LI: {\n chars: 21,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-4',\n },\n LK: {},\n LR: {},\n LS: {},\n LT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true, bank_identifier: '0-4' },\n LU: {\n chars: 20,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-2',\n },\n LV: {\n chars: 21,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{13}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '0-21',\n },\n LY: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n IBANRegistry: true,\n branch_indentifier: '3-5',\n bank_identifier: '0-2',\n account_indentifier: '10-25',\n },\n MA: {\n chars: 28,\n bban_regexp: '^[0-9]{24}$',\n },\n MC: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n bban_validation_func: checkFrenchBBAN,\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n },\n MD: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{2}[A-Z0-9]{18}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '6-24',\n },\n ME: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n bank_identifier: '0-2',\n account_indentifier: '4-22',\n },\n MF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n MG: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n MH: {},\n MK: {\n chars: 19,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{10}[0-9]{2}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n bank_identifier: '0-2',\n },\n ML: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n MM: {},\n MN: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-20',\n },\n MO: {},\n MP: {},\n MQ: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n MR: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n IBANRegistry: true,\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n account_indentifier: '4-27',\n },\n MS: {},\n MT: {\n chars: 31,\n bban_regexp: '^[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-8',\n bank_identifier: '0-3',\n account_indentifier: '15-31',\n },\n MU: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[0-9]{19}[A-Z]{3}$',\n IBANRegistry: true,\n branch_indentifier: '6-7',\n bank_identifier: '0-5',\n account_indentifier: '0-30',\n },\n MV: {},\n MW: {},\n MX: {},\n MY: {},\n MZ: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n },\n NA: {},\n NC: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n NE: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n NF: {},\n NG: {},\n NI: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n bank_identifier: '0-3',\n IBANRegistry: true,\n account_indentifier: '8-28',\n },\n NL: {\n chars: 18,\n bban_regexp: '^[A-Z]{4}[0-9]{10}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '8-18',\n },\n NO: {\n chars: 15,\n bban_regexp: '^[0-9]{11}$',\n bban_validation_func: checkNorwayBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '4-15',\n },\n NP: {},\n NR: {},\n NU: {},\n NZ: {},\n OM: {\n chars: 23,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: false,\n bank_identifier: '0-2',\n },\n PA: {},\n PE: {},\n PF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n PG: {},\n PH: {},\n PK: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n },\n PL: {\n chars: 28,\n bban_validation_func: checkPolandBBAN,\n bban_regexp: '^[0-9]{24}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '0-7',\n account_indentifier: '2-28',\n },\n PM: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n PN: {},\n PR: {},\n PS: {\n chars: 29,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{21}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '17-29',\n },\n PT: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n },\n PW: {},\n PY: {},\n QA: {\n chars: 29,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{21}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-29',\n },\n RE: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n RO: {\n chars: 24,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '0-24',\n },\n RS: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n bank_identifier: '0-2',\n },\n RU: {\n chars: 33,\n bban_regexp: '^[0-9]{14}[A-Z0-9]{15}$',\n IBANRegistry: true,\n branch_indentifier: '9-13',\n bank_identifier: '0-8',\n account_indentifier: '13-33',\n },\n RW: {},\n SA: {\n chars: 24,\n bban_regexp: '^[0-9]{2}[A-Z0-9]{18}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '12-24',\n },\n SB: {},\n SC: {\n chars: 31,\n bban_regexp: '^[A-Z]{4}[0-9]{20}[A-Z]{3}$',\n IBANRegistry: true,\n branch_indentifier: '6-7',\n bank_identifier: '0-5',\n account_indentifier: '12-28',\n },\n SD: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '6-18',\n },\n SE: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true, bank_identifier: '0-2' },\n SG: {},\n SH: {},\n SI: {\n chars: 19,\n bban_regexp: '^[0-9]{15}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '2-4',\n bank_identifier: '0-1',\n account_indentifier: '9-16',\n },\n SJ: {},\n SK: {\n chars: 24,\n bban_regexp: '^[0-9]{20}$',\n bban_validation_func: checkCzechAndSlovakBBAN,\n IBANRegistry: true,\n SEPA: true,\n },\n SL: {},\n SM: {\n chars: 27,\n bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '6-10',\n },\n SN: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n SO: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n branch_indentifier: '4-6',\n account_indentifier: '11-23',\n },\n SR: {},\n SS: {},\n ST: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n IBANRegistry: true,\n branch_indentifier: '4-7',\n },\n SV: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n IBANRegistry: true,\n account_indentifier: '8-28',\n },\n SX: {},\n SY: {},\n SZ: {},\n TC: {},\n TD: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n TF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n TG: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n TH: {},\n TJ: {},\n TK: {},\n TL: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n account_indentifier: '4-23',\n },\n TM: {},\n TN: {\n chars: 24,\n bban_regexp: '^[0-9]{20}$',\n IBANRegistry: true,\n branch_indentifier: '2-4',\n account_indentifier: '4-24',\n },\n TO: {},\n TR: {\n chars: 26,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{17}$',\n IBANRegistry: true,\n },\n TT: {},\n TV: {},\n TW: {},\n TZ: {},\n UA: {\n chars: 29,\n bban_regexp: '^[0-9]{6}[A-Z0-9]{19}$',\n IBANRegistry: true,\n account_indentifier: '15-29',\n },\n UG: {},\n UM: {},\n US: {},\n UY: {},\n UZ: {},\n VA: {\n chars: 22,\n bban_regexp: '^[0-9]{18}',\n IBANRegistry: true,\n SEPA: true,\n account_indentifier: '7-22',\n },\n VC: {},\n VE: {},\n VG: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$',\n IBANRegistry: true,\n account_indentifier: '8-24',\n },\n VI: {},\n VN: {},\n VU: {},\n WF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n WS: {},\n XK: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n IBANRegistry: true,\n branch_indentifier: '2-3',\n account_indentifier: '4-20',\n },\n YE: {},\n YT: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n ZA: {},\n ZM: {},\n ZW: {},\n};\n", "import { html, css } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n \n \n
      \n \n
      \n \n\n \n
      \n
      \n \n \n
      \n \n \n \n
      \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n \n \n \n \n \n \n \n \n
      \n
      \n`;", "import {\n customElement,\n type TemplateResult,\n state,\n html,\n property,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport * as ibantools from 'ibantools';\nimport { demoFunc } from './dees-input-iban.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-input-iban')\nexport class DeesInputIban extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @state()\n accessor enteredString: string = '';\n\n @state()\n accessor enteredIbanIsValid: boolean = false;\n\n @property({\n type: String,\n })\n accessor value = '';\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n /* IBAN input specific styles can go here */\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n \n {\n this.validateIban(eventArg);\n }}\n >\n
      \n `;\n }\n\n public firstUpdated(_changedProperties: Map) {\n super.firstUpdated(_changedProperties);\n const deesInputText = this.shadowRoot.querySelector('dees-input-text') as any;\n if (deesInputText && deesInputText.changeSubject) {\n deesInputText.changeSubject.subscribe(() => {\n this.changeSubject.next(this);\n });\n }\n }\n\n public async validateIban(eventArg: InputEvent): Promise {\n const inputElement: HTMLInputElement = eventArg.target as HTMLInputElement;\n let enteredString = inputElement?.value;\n enteredString = enteredString || '';\n if (this.enteredString !== enteredString) {\n this.enteredString = ibantools.friendlyFormatIBAN(enteredString) || '';\n if (inputElement) {\n inputElement.value = this.enteredString;\n this.value = this.enteredString;\n this.changeSubject.next(this);\n }\n }\n this.enteredIbanIsValid = ibantools.isValidIBAN(this.enteredString.replace(/ /g, ''));\n const deesInputText = this.shadowRoot.querySelector('dees-input-text');\n deesInputText.validationText = `IBAN is valid: ${this.enteredIbanIsValid}`;\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n this.enteredString = ibantools.friendlyFormatIBAN(value) || '';\n }\n}\n", "import { html, css, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n \n \n
      \n
      \n
      Multi-Option Toggle
      \n
      Select from multiple options with a smooth sliding indicator animation.
      \n \n \n \n

      \n \n \n
      \n \n
      \n
      Boolean Toggle
      \n
      Simple on/off switches with customizable labels for clearer context.
      \n \n \n \n

      \n \n \n
      \n \n
      \n
      Settings Grid
      \n
      Configuration options arranged in a responsive grid layout.
      \n \n
      \n \n \n \n \n \n \n \n
      \n
      \n \n
      \n
      States & Form Integration
      \n
      Examples of disabled states and integration within forms.
      \n \n \n \n

      \n \n \n \n \n \n \n
      \n
      \n
      \n`;", "import {\n customElement,\n type TemplateResult,\n html,\n property,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\n\nimport * as colors from '../../00colors.js'\n\nimport { demoFunc } from './dees-input-multitoggle.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-multitoggle': DeesInputMultitoggle;\n }\n}\n\n@customElement('dees-input-multitoggle')\nexport class DeesInputMultitoggle extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n\n @property()\n accessor type: 'boolean' | 'multi' | 'single' = 'multi';\n\n @property()\n accessor booleanTrueName: string = 'true';\n\n @property()\n accessor booleanFalseName: string = 'false';\n\n @property({\n type: Array,\n })\n accessor options: string[] = [];\n\n @property()\n accessor selectedOption: string = '';\n\n @property({ type: Boolean })\n accessor boolValue: boolean = false;\n\n // Add value property for form compatibility\n public get value(): string | boolean {\n if (this.type === 'boolean') {\n return this.selectedOption === this.booleanTrueName;\n }\n return this.selectedOption;\n }\n\n public set value(val: string | boolean) {\n if (this.type === 'boolean' && typeof val === 'boolean') {\n this.selectedOption = val ? this.booleanTrueName : this.booleanFalseName;\n } else {\n this.selectedOption = val as string;\n }\n this.requestUpdate();\n // Defer indicator update to next frame if component not yet updated\n if (this.hasUpdated) {\n requestAnimationFrame(() => {\n this.setIndicator();\n });\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n user-select: none;\n }\n\n .selections {\n position: relative;\n display: inline-flex;\n align-items: center;\n background: ${cssManager.bdTheme('#ffffff', '#18181b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n padding: 4px;\n border-radius: 8px;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n }\n\n .option {\n position: relative;\n padding: 8px 20px;\n border-radius: 6px;\n cursor: pointer;\n white-space: nowrap;\n transition: color 0.2s ease;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n line-height: 1;\n z-index: 2;\n }\n\n .option:hover {\n color: ${cssManager.bdTheme('#18181b', '#e4e4e7')};\n }\n\n .option.selected {\n color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n }\n\n .indicator {\n opacity: 0;\n position: absolute;\n height: calc(100% - 8px);\n top: 4px;\n border-radius: 6px;\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.15)', 'rgba(59, 130, 246, 0.15)')};\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n z-index: 1;\n }\n \n .indicator.no-transition {\n transition: none;\n }\n \n :host([disabled]) .selections {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n :host([disabled]) .option {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n :host([disabled]) .indicator {\n background: ${cssManager.bdTheme('rgba(113, 113, 122, 0.15)', 'rgba(113, 113, 122, 0.15)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n \n
      \n
      \n
      \n ${this.options.map(\n (option) =>\n html`
      this.handleSelection(option)}>\n ${option}\n
      `\n )}\n
      \n
      \n
      \n `;\n }\n\n public async connectedCallback() {\n await super.connectedCallback();\n // Initialize boolean options early\n if (this.type === 'boolean' && this.options.length === 0) {\n this.options = [this.booleanTrueName || 'true', this.booleanFalseName || 'false'];\n // Set default selection for boolean if not set\n if (!this.selectedOption) {\n this.selectedOption = this.booleanFalseName || 'false';\n }\n }\n // Set default selection to first option if not set\n if (!this.selectedOption && this.options.length > 0) {\n this.selectedOption = this.options[0];\n }\n }\n\n public async firstUpdated(_changedProperties: Map) {\n super.firstUpdated(_changedProperties);\n // Update boolean options if they changed\n if (this.type === 'boolean') {\n this.options = [this.booleanTrueName || 'true', this.booleanFalseName || 'false'];\n }\n // Wait for the next frame to ensure DOM is fully rendered\n await this.updateComplete;\n \n // Wait for fonts to load\n if (document.fonts) {\n await document.fonts.ready;\n }\n \n // Wait one more frame after fonts are loaded\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Now set the indicator\n this.setIndicator();\n }\n\n public async handleSelection(optionArg: string) {\n if (this.disabled) return;\n this.selectedOption = optionArg;\n this.requestUpdate();\n this.changeSubject.next(this);\n await this.updateComplete;\n this.setIndicator();\n }\n \n private indicatorInitialized = false;\n\n public async setIndicator() {\n const indicator: HTMLDivElement = this.shadowRoot.querySelector('.indicator');\n const selectedIndex = this.options.indexOf(this.selectedOption);\n \n // If no valid selection, hide indicator\n if (selectedIndex === -1 || !indicator) {\n if (indicator) {\n indicator.style.opacity = '0';\n }\n return;\n }\n \n const option: HTMLDivElement = this.shadowRoot.querySelector(\n `.option:nth-child(${selectedIndex + 2})`\n );\n \n if (indicator && option) {\n // Only disable transition for the very first positioning\n if (!this.indicatorInitialized) {\n indicator.classList.add('no-transition');\n this.indicatorInitialized = true;\n \n // Remove the no-transition class after a brief delay\n setTimeout(() => {\n indicator.classList.remove('no-transition');\n }, 50);\n }\n \n indicator.style.width = `${option.clientWidth}px`;\n indicator.style.left = `${option.offsetLeft}px`;\n indicator.style.opacity = '1';\n }\n }\n\n public getValue(): string | boolean {\n if (this.type === 'boolean') {\n return this.selectedOption === this.booleanTrueName;\n }\n return this.selectedOption;\n }\n\n public setValue(value: string | boolean): void {\n if (this.type === 'boolean' && typeof value === 'boolean') {\n this.selectedOption = value ? (this.booleanTrueName || 'true') : (this.booleanFalseName || 'false');\n } else {\n this.selectedOption = value as string;\n }\n this.requestUpdate();\n if (this.hasUpdated) {\n requestAnimationFrame(() => {\n this.setIndicator();\n });\n }\n }\n}\n", "import { html, css } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n \n \n
      \n \n
      \n \n\n \n
      \n
      \n \n \n
      \n \n \n \n
      \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n \n \n \n \n \n \n \n
      \n
      \n`;", "import {\n customElement,\n type TemplateResult,\n property,\n state,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-phone.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-phone': DeesInputPhone;\n }\n}\n\n@customElement('dees-input-phone')\nexport class DeesInputPhone extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @state()\n accessor formattedPhone: string = '';\n\n @property({ type: String })\n accessor value: string = '';\n\n @property({ type: String })\n accessor placeholder: string = '+1 (555) 123-4567';\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n /* Phone input specific styles can go here */\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n \n this.handlePhoneInput(event)}\n >\n
      \n `;\n }\n\n public firstUpdated(_changedProperties: Map) {\n super.firstUpdated(_changedProperties);\n // Initialize formatted phone from value\n if (this.value) {\n this.formattedPhone = this.formatPhoneNumber(this.value);\n }\n \n // Subscribe to the inner input's changes\n const innerInput = this.shadowRoot.querySelector('dees-input-text') as any;\n if (innerInput && innerInput.changeSubject) {\n innerInput.changeSubject.subscribe(() => {\n this.changeSubject.next(this);\n });\n }\n }\n\n private handlePhoneInput(event: InputEvent) {\n const input = event.target as HTMLInputElement;\n const cleanedValue = this.cleanPhoneNumber(input.value);\n const formatted = this.formatPhoneNumber(cleanedValue);\n \n // Update the input with formatted value\n if (input.value !== formatted) {\n const cursorPosition = input.selectionStart || 0;\n input.value = formatted;\n \n // Try to maintain cursor position intelligently\n const newCursorPos = this.calculateCursorPosition(cleanedValue, formatted, cursorPosition);\n input.setSelectionRange(newCursorPos, newCursorPos);\n }\n \n this.formattedPhone = formatted;\n this.value = cleanedValue;\n this.changeSubject.next(this);\n }\n\n private cleanPhoneNumber(value: string): string {\n // Remove all non-numeric characters\n return value.replace(/\\D/g, '');\n }\n\n private formatPhoneNumber(value: string): string {\n // Basic US phone number formatting\n // This can be enhanced to support international formats\n const cleaned = this.cleanPhoneNumber(value);\n \n if (cleaned.length === 0) return '';\n if (cleaned.length <= 3) return cleaned;\n if (cleaned.length <= 6) return `(${cleaned.slice(0, 3)}) ${cleaned.slice(3)}`;\n if (cleaned.length <= 10) return `(${cleaned.slice(0, 3)}) ${cleaned.slice(3, 6)}-${cleaned.slice(6)}`;\n \n // For numbers longer than 10 digits, format as international\n return `+${cleaned.slice(0, cleaned.length - 10)} (${cleaned.slice(-10, -7)}) ${cleaned.slice(-7, -4)}-${cleaned.slice(-4)}`;\n }\n\n private calculateCursorPosition(cleaned: string, formatted: string, oldPos: number): number {\n // Simple cursor position calculation\n // Count how many formatting characters are before the cursor\n let formattingChars = 0;\n for (let i = 0; i < oldPos && i < formatted.length; i++) {\n if (!/\\d/.test(formatted[i])) {\n formattingChars++;\n }\n }\n return Math.min(oldPos + formattingChars, formatted.length);\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n this.formattedPhone = this.formatPhoneNumber(value);\n }\n}", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesInputToggle } from './dees-input-toggle.js';\n\nexport const demoFunc = () => html`\n {\n // Example of programmatic interaction\n const toggleAllOnBtn = elementArg.querySelector('#toggle-all-on');\n const toggleAllOffBtn = elementArg.querySelector('#toggle-all-off');\n const featureToggles = elementArg.querySelectorAll('.feature-toggles dees-input-toggle');\n\n if (toggleAllOnBtn && toggleAllOffBtn) {\n toggleAllOnBtn.addEventListener('click', () => {\n featureToggles.forEach((toggle: DeesInputToggle) => {\n if (!toggle.disabled && !toggle.required) {\n toggle.value = true;\n }\n });\n });\n\n toggleAllOffBtn.addEventListener('click', () => {\n featureToggles.forEach((toggle: DeesInputToggle) => {\n if (!toggle.disabled && !toggle.required) {\n toggle.value = false;\n }\n });\n });\n }\n }}>\n \n\n
      \n \n
      \n \n\n \n\n \n
      \n

      Tip: You can drag the toggle knob to switch states

      \n
      \n\n \n
      \n \n\n \n\n \n\n \n\n \n
      \n
      \n\n \n
      \n \n\n \n\n \n\n \n
      \n
      \n\n \n
      \n

      Notification Settings

      \n\n
      \n \n\n \n\n \n\n \n
      \n
      \n
      \n\n \n
      \n Enable All\n Disable All\n
      \n\n
      \n
      \n \n\n \n\n \n\n \n\n \n
      \n
      \n
      \n\n \n
      \n {\n const output = document.querySelector('#airplane-output');\n if (output) {\n output.textContent = `Airplane mode: ${event.detail ? 'ON' : 'OFF'}`;\n }\n }}\n >\n\n {\n const output = document.querySelector('#dnd-output');\n if (output) {\n output.textContent = `Do not disturb: ${event.detail ? 'ENABLED' : 'DISABLED'}`;\n }\n }}\n >\n
      \n\n
      \n
      Airplane mode: OFF
      \n
      Do not disturb: DISABLED
      \n
      \n
      \n
      \n
      \n`;\n", "import {\n customElement,\n type TemplateResult,\n property,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './dees-input-toggle.demo.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-toggle': DeesInputToggle;\n }\n}\n\n@customElement('dees-input-toggle')\nexport class DeesInputToggle extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n\n @property({ type: Boolean, reflect: true })\n accessor value: boolean = false;\n\n /**\n * Knob position tracking (0 = off, maxTravel = on)\n */\n private currentX = 0;\n\n /**\n * Drag state\n */\n private isDragging = false;\n private hasDragged = false;\n private startX = 0;\n\n // Toggle dimensions\n private readonly trackWidth = 36;\n private readonly trackHeight = 20;\n private readonly knobSize = 14;\n private readonly padding = 2;\n private readonly maxTravel = 16; // trackWidth - knobSize - (padding * 2) - border\n\n constructor() {\n super();\n this.labelPosition = 'right'; // Toggle defaults to label on the right\n }\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n * {\n box-sizing: border-box;\n }\n\n :host {\n position: relative;\n cursor: default;\n font-family: ${cssGeistFontFamily};\n }\n\n .maincontainer {\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n cursor: pointer;\n user-select: none;\n transition: all 0.15s ease;\n }\n\n .toggle-track {\n position: relative;\n flex-shrink: 0;\n height: 20px;\n width: 36px;\n border-radius: 10px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n overflow: hidden;\n transition: all 0.15s ease;\n margin-top: 1px;\n }\n\n .maincontainer:hover .toggle-track {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n :host([value]) .toggle-track {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n }\n\n .toggle-track:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .toggle-knob {\n position: absolute;\n top: 2px;\n width: 14px;\n height: 14px;\n border-radius: 7px;\n background: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n transition: left 0.15s ease, background 0.15s ease;\n touch-action: none;\n }\n\n .toggle-knob.dragging {\n transition: background 0.15s ease;\n }\n\n :host([value]) .toggle-knob {\n background: white;\n }\n\n /* Disabled state */\n .maincontainer.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .toggle-track.disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n /* Required state (locked on) */\n :host([required][value]) .toggle-track {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 61.2%)', 'hsl(217.2 91.2% 49.8%)')};\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 61.2%)', 'hsl(217.2 91.2% 49.8%)')};\n cursor: not-allowed;\n }\n\n :host([required][value]) .toggle-knob {\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 70%)')};\n }\n\n /* Label */\n .label-container {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n }\n\n .toggle-label {\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n transition: color 0.15s ease;\n letter-spacing: -0.01em;\n }\n\n .maincontainer:hover .toggle-label {\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .maincontainer.disabled:hover .toggle-label {\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n /* Description */\n .description-text {\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n line-height: 1.5;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n \n
      \n
      \n
      \n ${this.label ? html`
      ${this.label}
      ` : ''}\n ${this.description ? html`
      ${this.description}
      ` : ''}\n
      \n \n \n `;\n }\n\n public async firstUpdated(_changedProperties: Map) {\n await super.firstUpdated(_changedProperties);\n // Initialize knob position based on initial value\n if (this.required && !this.value) {\n this.value = true;\n }\n this.currentX = this.value ? this.maxTravel : 0;\n this.requestUpdate();\n }\n\n /**\n * Click handler - toggles the value\n */\n private async handleClick(event: MouseEvent) {\n if (this.isDragging || this.hasDragged) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n\n if (this.disabled) {\n return;\n }\n\n if (this.required) {\n // Bounce animation for required toggles\n this.currentX = this.maxTravel;\n this.requestUpdate();\n await new Promise((r) => setTimeout(r, 10));\n this.currentX = this.maxTravel - 3;\n this.requestUpdate();\n await domtools.plugins.smartdelay.delayFor(150);\n this.currentX = this.maxTravel;\n this.requestUpdate();\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n this.value = !this.value;\n this.currentX = this.value ? this.maxTravel : 0;\n this.requestUpdate();\n\n this.dispatchEvent(\n new CustomEvent('newValue', {\n detail: this.value,\n bubbles: true,\n })\n );\n this.changeSubject.next(this);\n\n domtools.plugins.smartdelay.delayFor(0).then(() => {\n this.hasDragged = false;\n });\n }\n\n /**\n * Pointer down - start dragging\n */\n private onPointerDown(event: PointerEvent) {\n if (this.required || this.disabled) {\n return;\n }\n\n this.isDragging = true;\n this.startX = event.clientX - this.currentX;\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n }\n\n /**\n * Pointer move - track drag position\n */\n private onPointerMove(event: PointerEvent) {\n if (!this.isDragging) return;\n const newX = event.clientX - this.startX;\n this.hasDragged = true;\n\n const toggleKnob = this.shadowRoot?.querySelector('.toggle-knob') as HTMLDivElement;\n if (toggleKnob) {\n toggleKnob.classList.add('dragging');\n }\n\n this.currentX = Math.max(0, Math.min(newX, this.maxTravel));\n this.requestUpdate();\n }\n\n /**\n * Pointer up - complete drag and snap to nearest side\n */\n private onPointerUp(event: PointerEvent) {\n if (!this.isDragging) return;\n (event.target as HTMLElement).releasePointerCapture(event.pointerId);\n this.isDragging = false;\n\n if (!this.hasDragged) {\n return;\n }\n\n const toggleKnob = this.shadowRoot?.querySelector('.toggle-knob') as HTMLDivElement;\n if (toggleKnob) {\n toggleKnob.classList.remove('dragging');\n }\n\n // Snap to nearest side based on midpoint\n const midpoint = this.maxTravel / 2;\n this.value = this.currentX > midpoint;\n this.currentX = this.value ? this.maxTravel : 0;\n this.requestUpdate();\n\n this.dispatchEvent(\n new CustomEvent('newValue', {\n detail: this.value,\n bubbles: true,\n })\n );\n this.changeSubject.next(this);\n\n domtools.plugins.smartdelay.delayFor(0).then(() => {\n this.hasDragged = false;\n });\n }\n\n /**\n * Sync knob position when value is changed externally\n */\n updated(changedProperties: Map): void {\n super.updated(changedProperties);\n if (\n changedProperties.has('value') &&\n !this.isDragging &&\n !this.hasDragged\n ) {\n this.currentX = this.value ? this.maxTravel : 0;\n this.requestUpdate();\n }\n }\n\n /**\n * Keyboard support\n */\n private handleKeydown(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.handleClick(event as unknown as MouseEvent);\n }\n }\n\n // DeesInputBase interface implementation\n public getValue(): boolean {\n return this.value;\n }\n\n public setValue(valueArg: boolean): void {\n this.value = valueArg;\n }\n\n public focus(): void {\n const track = this.shadowRoot?.querySelector('.toggle-track');\n if (track) {\n (track as HTMLElement).focus();\n }\n }\n}\n", "import { html, css } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n \n \n
      \n \n
      \n \n\n \n
      \n
      \n \n \n
      \n \n\n
      \n \n \n \n
      \n
      \n
      \n \n \n
      \n \n\n \n
      \n
      \n \n \n \n \n \n \n \n \n \n
      \n Tip: Type a value and press Enter to add it to the list. Click on any item to remove it.\n
      \n
      \n
      \n
      \n`;", "import {\n customElement,\n type TemplateResult,\n state,\n html,\n property,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\n\nimport { demoFunc } from './dees-input-typelist.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-input-typelist')\nexport class DeesInputTypelist extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n\n // INSTANCE\n\n @property({ type: Array })\n accessor value: string[] = [];\n\n @state()\n accessor inputValue: string = '';\n\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('#333', '#fff')};\n }\n .mainbox {\n border-radius: 3px;\n background: ${cssManager.bdTheme('#fafafa', '#222222')};\n overflow: hidden;\n border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};\n border-bottom: ${cssManager.bdTheme('1px solid #CCC', '1px solid #222')};\n border-right: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};\n border-left: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};\n box-shadow: ${cssManager.bdTheme('0px 1px 4px rgba(0,0,0,0.3)', 'none')};\n transition: all 0.2s;\n position: relative;\n }\n \n .mainbox:hover {\n filter: ${cssManager.bdTheme('brightness(0.98)', 'brightness(1.05)')};\n }\n \n .mainbox:focus-within {\n outline: 2px solid ${cssManager.bdTheme('#0069f2', '#0084ff')};\n outline-offset: -2px;\n }\n\n .tags {\n padding: 16px;\n cursor: default;\n }\n\n .notags {\n text-align: center;\n color: ${cssManager.bdTheme('#999', '#666')};\n font-size: 13px;\n font-style: italic;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n background: ${cssManager.bdTheme('#f5f5f5', '#181818')};\n width: 100%;\n outline: none;\n border: none;\n color: inherit;\n padding: 0px 16px;\n overflow: hidden;\n line-height: 32px;\n height: 0px;\n transition: height 0.2s;\n border-top: 1px solid ${cssManager.bdTheme('#e0e0e0', '#333')};\n }\n\n input:focus {\n height: 32px;\n background: ${cssManager.bdTheme('#fafafa', '#1a1a1a')};\n }\n \n input::placeholder {\n color: ${cssManager.bdTheme('#999', '#666')};\n }\n\n .tag {\n display: inline-block;\n background: ${cssManager.bdTheme('#e8f5e9', '#2d3a2d')};\n color: ${cssManager.bdTheme('#2e7d32', '#81c784')};\n padding: 4px 10px;\n border-radius: 4px;\n margin: 3px;\n font-size: 13px;\n font-weight: 500;\n transition: all 0.2s;\n border: 1px solid ${cssManager.bdTheme('#c8e6c9', '#1b5e20')};\n }\n \n .tag:hover {\n background: ${cssManager.bdTheme('#c8e6c9', '#3d4f3d')};\n transform: translateY(-1px);\n }\n\n .tag .remove {\n margin-left: 8px;\n cursor: pointer;\n opacity: 0.7;\n font-weight: 700;\n font-size: 16px;\n line-height: 1;\n transition: opacity 0.2s;\n }\n\n .tag .remove:hover {\n opacity: 1;\n color: ${cssManager.bdTheme('#c62828', '#ef5350')};\n }\n \n /* Disabled state */\n :host([disabled]) .mainbox {\n opacity: 0.6;\n cursor: not-allowed;\n }\n \n :host([disabled]) .tags {\n cursor: not-allowed;\n }\n \n :host([disabled]) .tag {\n pointer-events: none;\n }\n \n :host([disabled]) input {\n cursor: not-allowed;\n background: ${cssManager.bdTheme('#f0f0f0', '#1a1a1a')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n \n
      \n
      {\n this.shadowRoot.querySelector('input').focus();\n }}>\n ${this.value.length === 0\n ? html`
      No tags yet
      `\n : this.value.map(\n (tag) => html`\n \n ${tag}\n {\n e.stopPropagation();\n this.removeTag(tag);\n }}>\u00D7\n \n `\n )}\n
      \n {\n this.inputValue = (e.target as HTMLInputElement).value;\n }}\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' && this.inputValue.trim()) {\n e.preventDefault();\n this.addTag(this.inputValue.trim());\n }\n }}\n .disabled=${this.disabled}\n />\n
      \n
      \n `;\n }\n\n private addTag(tag: string) {\n if (!this.value.includes(tag)) {\n this.value = [...this.value, tag];\n this.inputValue = '';\n this.changeSubject.next(this);\n }\n }\n\n private removeTag(tag: string) {\n this.value = this.value.filter((t) => t !== tag);\n this.changeSubject.next(this);\n }\n\n public getValue(): string[] {\n return this.value;\n }\n\n public setValue(value: string[]): void {\n this.value = value;\n }\n}\n", "import { type ITableAction } from './dees-table.js';\nimport * as plugins from '../../00plugins.js';\nimport { html, css, cssManager } from '@design.estate/dees-element';\n\ninterface ITableDemoData {\n date: string;\n amount: string;\n description: string;\n}\n\nexport const demoFunc = () => html`\n \n
      \n {\n document.body.classList.toggle('bright');\n document.body.classList.toggle('dark');\n }}>Toggle Theme\n \n
      \n
      \n

      Basic Table with Actions

      \n

      A standard table with row actions, editable fields, and context menu support. Double-click on descriptions to edit. Grid lines are enabled by default.

      \n {\n alert(optionsArg.item.amount);\n },\n },\n {\n name: 'visibility',\n iconName: 'copy',\n type: ['inRow'],\n useTableBehaviour: 'preview',\n actionFunc: async (itemArg: any) => {},\n },\n {\n name: 'create new',\n iconName: 'instagram',\n type: ['header'],\n useTableBehaviour: 'preview',\n actionFunc: async (itemArg: any) => {},\n },\n {\n name: 'to gallery',\n iconName: 'message',\n type: ['footer'],\n useTableBehaviour: 'preview',\n actionFunc: async (itemArg: any) => {},\n },\n {\n name: 'copy',\n iconName: 'copySolid',\n type: ['contextmenu', 'inRow'],\n action: async () => {\n return null;\n },\n },\n {\n name: 'edit (from demo)',\n iconName: 'penToSquare',\n type: ['contextmenu'],\n action: async () => {\n return null;\n },\n },\n {\n name: 'paste',\n iconName: 'pasteSolid',\n type: ['contextmenu'],\n action: async () => {\n return null;\n },\n },\n {\n name: 'preview',\n type: ['doubleClick', 'contextmenu'],\n iconName: 'eye',\n actionFunc: async (itemArg) => {\n alert(itemArg.item.amount);\n return null;\n },\n }\n ] as ITableAction[]}\"\n >\n
      \n \n
      \n

      Table with Vertical Lines

      \n

      Enhanced column separation for better data tracking.

      \n \n
      \n \n
      \n

      Table with Full Grid

      \n

      Complete grid lines for maximum readability and structure.

      \n {\n console.log('Connecting to:', optionsArg.item.server);\n },\n },\n {\n name: 'View Logs',\n iconName: 'lucide:file-text',\n type: ['inRow', 'contextmenu'],\n actionFunc: async (optionsArg) => {\n console.log('Viewing logs for:', optionsArg.item.server);\n },\n },\n {\n name: 'Restart Server',\n iconName: 'lucide:refresh-cw',\n type: ['contextmenu'],\n actionFunc: async (optionsArg) => {\n console.log('Restarting:', optionsArg.item.server);\n },\n }\n ] as ITableAction[]}\"\n >\n
      \n \n
      \n

      Table with Horizontal Lines Only

      \n

      Emphasis on row separation without column dividers.

      \n \n
      \n \n
      \n

      Simple Table (No Grid)

      \n

      Clean, minimal design without grid lines. Set showGrid to false to disable the default grid.

      \n \n
      \n \n
      \n

      Table with Custom Display Function

      \n

      Transform data for display using custom formatting.

      \n ({\n Product: item.product,\n 'Units Sold': item.units.toLocaleString(),\n Revenue: '$' + item.revenue.toLocaleString(),\n Growth: (item.growth * 100).toFixed(1) + '%',\n 'Q1 2024 Forecast': '$' + item.forecast.toLocaleString()\n })}\n dataName=\"products\"\n >\n
      \n \n
      \n

      Empty Table State

      \n

      How the table looks when no data is available.

      \n \n
      \n\n
      \n

      Schema-First Columns (New)

      \n

      Defines columns explicitly and renders via schema. No displayFunction needed.

      \n html`${v}` },\n { key: 'joinedAt', header: 'Joined', renderer: (v: string) => new Date(v).toLocaleDateString() },\n ]}\n .data=${[\n { name: 'Alice', email: 'alice@example.com', joinedAt: '2022-08-01' },\n { name: 'Bob', email: 'bob@example.com', joinedAt: '2021-12-11' },\n { name: 'Carol', email: 'carol@example.com', joinedAt: '2023-03-22' },\n ]}\n dataName=\"users\"\n >\n
      \n\n
      \n

      Partial Schema + Augment (New)

      \n

      Provides only the important columns; the rest are merged in from displayFunction.

      \n ({ name: u.name, email: u.email, role: u.role })}\n .augmentFromDisplayFunction=${true}\n .data=${[\n { name: 'Erin', email: 'erin@example.com', role: 'Admin' },\n { name: 'Finn', email: 'finn@example.com', role: 'User' },\n { name: 'Gina', email: 'gina@example.com', role: 'User' },\n ]}\n dataName=\"users\"\n >\n
      \n\n
      { console.log('Selection changed', e.detail); }}\n @search-changed=${(e: CustomEvent) => {\n const tbl = document.getElementById('tableFilterSelectDemo') as any;\n if (tbl) tbl.setFilterText(e.detail.value);\n }}\n @search-submit=${(e: CustomEvent) => {\n const tbl = document.getElementById('tableFilterSelectDemo') as any;\n if (tbl) tbl.setFilterText(e.detail.value);\n }}\n >\n

      Filtering + Multi-Selection (New)

      \n

      Use the search bar to filter rows; toggle selection via checkboxes. Click headers to sort.

      \n \n
      \n \n
      \n\n
      \n

      Column Filters + Sticky Header (New)

      \n

      Per-column quick filters and sticky header with internal scroll. Try filtering the Name column. Uses --table-max-height var.

      \n \n \n
      \n\n
      {\n const { query } = e.detail || { query: '' };\n const table = document.getElementById('serverSearchDemo') as any;\n const baseData = [\n { id: 1, name: 'Alice', city: 'Berlin', title: 'Engineer' },\n { id: 2, name: 'Bob', city: 'Paris', title: 'Designer' },\n { id: 3, name: 'Charlie', city: 'London', title: 'Manager' },\n { id: 4, name: 'Diana', city: 'Madrid', title: 'Engineer' },\n { id: 5, name: 'Ethan', city: 'Rome', title: 'Support' },\n ];\n // Simulate async request\n await new Promise((r) => setTimeout(r, 300));\n const q = String(query || '').toLowerCase();\n const filtered = q\n ? baseData.filter((r) => Object.values(r).some((v) => String(v).toLowerCase().includes(q)))\n : baseData;\n table.data = filtered;\n }}\n >\n

      Server Search (New)

      \n

      Select Server mode, type a query, and watch the table fetch simulated results.

      \n \n
      \n\n
      \n

      Wide Properties + Many Actions

      \n

      A table with many columns and rich actions to stress test layout and sticky Actions.

      \n { console.log('view', item); } },\n { name: 'Edit', iconName: 'lucide:edit', type: ['inRow', 'contextmenu'], actionFunc: async ({ item }) => { console.log('edit', item); } },\n { name: 'Delete', iconName: 'lucide:trash', type: ['inRow', 'contextmenu'], actionFunc: async ({ item }) => { console.log('delete', item); } },\n { name: 'Message', iconName: 'lucide:message-square', type: ['inRow'], actionFunc: async ({ item }) => { console.log('message', item); } },\n { name: 'History', iconName: 'lucide:clock', type: ['inRow'], actionFunc: async ({ item }) => { console.log('history', item); } },\n { name: 'Add New', iconName: 'lucide:plus', type: ['header'], actionFunc: async ({ table }) => { console.log('add'); } },\n { name: 'Export CSV', iconName: 'lucide:download', type: ['header'], actionFunc: async ({ table }) => { console.log('export'); } },\n { name: 'Bulk Delete', iconName: 'lucide:trash-2', type: ['footer'], actionFunc: async ({ table }) => { console.log('bulk delete'); } },\n ] as ITableAction[]}\n >\n
      \n\n
      \n

      Scrollable Small Height

      \n

      Same as above, but with many items and a small fixed height to force vertical scrolling inside the table. Actions remain visible on the right; horizontal scroll appears if needed.

      \n \n ({\n id: i + 1,\n name: `User ${i + 1}`,\n role: ['Engineer','Designer','Manager','QA','Support'][i % 5],\n department: ['R&D','Design','Ops','QA','CS'][i % 5],\n email: `user${i+1}@corp.com`,\n phone: `+1 202 555 ${String(1000 + i).slice(-4)}`,\n location: ['Berlin','Paris','London','Madrid','Rome'][i % 5],\n status: ['Active','Inactive','On Leave'][i % 3],\n createdAt: `2023-${String((i%12)+1).padStart(2,'0')}-${String((i%28)+1).padStart(2,'0')}`,\n updatedAt: `2024-${String(((i+3)%12)+1).padStart(2,'0')}-${String(((i+7)%28)+1).padStart(2,'0')}`,\n lastLogin: `2024-${String(((i+6)%12)+1).padStart(2,'0')}-${String(((i+10)%28)+1).padStart(2,'0')}`,\n projects: (i % 12),\n tags: i % 2 ? 'typescript' : 'design',\n notes: i % 3 ? '' : 'Note',\n }))}\n .dataActions=${[\n { name: 'View', iconName: 'lucide:eye', type: ['inRow'], actionFunc: async ({ item }) => {} },\n { name: 'Edit', iconName: 'lucide:edit', type: ['inRow'], actionFunc: async ({ item }) => {} },\n { name: 'Delete', iconName: 'lucide:trash', type: ['inRow'], actionFunc: async ({ item }) => {} },\n ] as ITableAction[]}\n >\n
      \n
      \n
      \n`;\n", "import { cssManager, css, type CSSResult } from '@design.estate/dees-element';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nexport const tableStyles: CSSResult[] = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n width: 100%;\n }\n\n .mainbox {\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n font-family: ${cssGeistFontFamily};\n font-weight: 400;\n font-size: 14px;\n display: block;\n width: 100%;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n overflow: hidden;\n cursor: default;\n }\n\n .header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 24px;\n min-height: 64px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .headingContainer {\n flex: 1;\n }\n\n .heading {\n line-height: 1.5;\n }\n\n .heading1 {\n font-size: 18px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n letter-spacing: -0.025em;\n }\n \n .heading2 {\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n margin-top: 2px;\n }\n\n .headingSeparation {\n display: none;\n }\n\n .headerActions {\n user-select: none;\n display: flex;\n flex-direction: row;\n gap: 8px;\n }\n \n .headerAction {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .headerAction:hover {\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .headerAction dees-icon {\n width: 14px;\n height: 14px;\n }\n\n .searchGrid {\n display: grid;\n grid-gap: 16px;\n grid-template-columns: 1fr max-content;\n padding: 16px 24px;\n background: ${cssManager.bdTheme('hsl(210 40% 98%)', 'hsl(0 0% 3.9%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n transition: all 0.2s ease;\n }\n\n @media (max-width: 900px) {\n .searchGrid {\n grid-template-columns: 1fr;\n }\n }\n\n /* let search mode size to content (no forced width) */\n\n .searchGrid.hidden {\n height: 0px;\n opacity: 0;\n overflow: hidden;\n padding: 0px 24px;\n border-bottom-width: 0px;\n }\n\n .tableScroll {\n /* enable horizontal scroll only when content exceeds width */\n overflow-x: auto;\n /* prevent vertical scroll inside the table container */\n overflow-y: hidden;\n /* avoid reserving extra space for classic scrollbars where possible */\n scrollbar-gutter: stable both-edges;\n }\n /* Hide horizontal scrollbar entirely when not using sticky header */\n :host(:not([sticky-header])) .tableScroll {\n -ms-overflow-style: none; /* IE/Edge */\n scrollbar-width: none; /* Firefox (hides both axes) */\n }\n :host(:not([sticky-header])) .tableScroll::-webkit-scrollbar {\n display: none; /* Chrome/Safari */\n }\n /* In sticky-header mode, hide only the horizontal scrollbar in WebKit/Blink */\n :host([sticky-header]) .tableScroll::-webkit-scrollbar:horizontal {\n height: 0px;\n }\n :host([sticky-header]) .tableScroll {\n max-height: var(--table-max-height, 360px);\n overflow: auto;\n }\n\n table {\n /* allow table to grow wider than container so actions column can stick */\n width: max-content;\n min-width: 100%;\n caption-side: bottom;\n font-size: 14px;\n border-collapse: separate;\n border-spacing: 0;\n }\n \n .noDataSet {\n padding: 48px 24px;\n text-align: center;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n }\n \n thead {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 9%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n :host([sticky-header]) thead th {\n position: sticky;\n top: 0;\n z-index: 2;\n }\n \n tbody tr {\n transition: background-color 0.15s ease;\n position: relative;\n }\n \n /* Default horizontal lines (bottom border only) */\n tbody tr {\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n tbody tr:last-child {\n border-bottom: none;\n }\n \n /* Full horizontal lines when enabled */\n :host([show-horizontal-lines]) tbody tr {\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n :host([show-horizontal-lines]) tbody tr:first-child {\n border-top: none;\n }\n \n :host([show-horizontal-lines]) tbody tr:last-child {\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n tbody tr:hover {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1% / 0.5)', 'hsl(0 0% 14.9% / 0.5)')};\n }\n \n /* Column hover effect for better traceability */\n td {\n position: relative;\n }\n \n td::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: ${cssManager.bdTheme('hsl(210 40% 96.1% / 0.3)', 'hsl(0 0% 14.9% / 0.3)')};\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease;\n z-index: -1;\n }\n \n td:hover::after {\n opacity: 1;\n }\n \n /* Grid mode - shows both vertical and horizontal lines */\n :host([show-grid]) th {\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-left: none;\n border-top: none;\n }\n \n :host([show-grid]) td {\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-left: none;\n border-top: none;\n }\n \n :host([show-grid]) th:first-child,\n :host([show-grid]) td:first-child {\n border-left: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n :host([show-grid]) tbody tr:first-child td {\n border-top: none;\n }\n\n /* Sticky Actions column (right pinned) */\n thead th.actionsCol,\n tbody td.actionsCol {\n position: sticky;\n right: 0;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n }\n thead th.actionsCol { z-index: 3; }\n tbody td.actionsCol {\n z-index: 1;\n box-shadow: -1px 0 0 0 ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n tbody tr.selected {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 14.9%)')};\n }\n\n tbody tr.hasAttachment {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3% / 0.1)', 'hsl(142.1 76.2% 36.3% / 0.1)')};\n }\n\n th {\n height: 48px;\n padding: 12px 24px;\n text-align: left;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n letter-spacing: -0.01em;\n }\n \n :host([show-vertical-lines]) th {\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n td {\n padding: 12px 24px;\n vertical-align: middle;\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n }\n \n :host([show-vertical-lines]) td {\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n \n th:first-child,\n td:first-child {\n padding-left: 24px;\n }\n \n th:last-child,\n td:last-child {\n padding-right: 24px;\n }\n \n :host([show-vertical-lines]) th:last-child,\n :host([show-vertical-lines]) td:last-child {\n border-right: none;\n }\n \n .innerCellContainer {\n position: relative;\n min-height: 24px;\n line-height: 24px;\n }\n td input {\n position: absolute;\n top: 4px;\n bottom: 4px;\n left: 20px;\n right: 20px;\n width: calc(100% - 40px);\n height: calc(100% - 8px);\n padding: 0 12px;\n outline: none;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n transition: all 0.15s ease;\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n }\n \n td input:focus {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.2)', 'hsl(217.2 91.2% 59.8% / 0.2)')};\n }\n\n /* filter row */\n thead tr.filtersRow th {\n padding: 8px 12px 12px 12px;\n }\n thead tr.filtersRow th input[type='text'] {\n width: 100%;\n box-sizing: border-box;\n padding: 6px 8px;\n font-size: 13px;\n border-radius: 6px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n }\n .actionsContainer {\n display: flex;\n flex-direction: row;\n gap: 4px;\n }\n \n .action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 6px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .action:hover {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .action:active {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 11.8%)')};\n }\n \n .action dees-icon {\n width: 16px;\n height: 16px;\n }\n\n .footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 52px;\n padding: 0 24px;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 9%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .tableStatistics {\n font-weight: 500;\n }\n\n .footerActions {\n display: flex;\n gap: 8px;\n }\n\n .footerActions .footerAction {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n border-radius: 6px;\n cursor: pointer;\n user-select: none;\n transition: all 0.15s ease;\n }\n\n .footerActions .footerAction:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .footerActions .footerAction dees-icon {\n width: 14px;\n height: 14px;\n }\n `,\n];\n", "import type { Column, TDisplayFunction } from './types.js';\n\nexport function computeColumnsFromDisplayFunction(\n displayFunction: TDisplayFunction,\n data: T[]\n): Column[] {\n if (!data || data.length === 0) return [];\n const firstTransformedItem = displayFunction(data[0]);\n const keys: string[] = Object.keys(firstTransformedItem);\n return keys.map((key) => ({\n key,\n header: key,\n value: (row: T) => displayFunction(row)[key],\n }));\n}\n\nexport function computeEffectiveColumns(\n columns: Column[] | undefined,\n augmentFromDisplayFunction: boolean,\n displayFunction: TDisplayFunction,\n data: T[]\n): Column[] {\n const base = (columns || []).slice();\n if (!augmentFromDisplayFunction) return base;\n const fromDisplay = computeColumnsFromDisplayFunction(displayFunction, data);\n const existingKeys = new Set(base.map((c) => String(c.key)));\n for (const col of fromDisplay) {\n if (!existingKeys.has(String(col.key))) {\n base.push(col);\n }\n }\n return base;\n}\n\nexport function getCellValue(row: T, col: Column, displayFunction?: TDisplayFunction): any {\n return col.value ? col.value(row) : (row as any)[col.key as any];\n}\n\nexport function getViewData(\n data: T[],\n effectiveColumns: Column[],\n sortKey?: string,\n sortDir?: 'asc' | 'desc' | null,\n filterText?: string,\n columnFilters?: Record,\n filterMode: 'table' | 'data' = 'table',\n lucenePredicate?: (row: T) => boolean\n): T[] {\n let arr = data.slice();\n const ft = (filterText || '').trim().toLowerCase();\n const cf = columnFilters || {};\n const cfKeys = Object.keys(cf).filter((k) => (cf[k] ?? '').trim().length > 0);\n if (ft || cfKeys.length > 0) {\n arr = arr.filter((row) => {\n // column filters (AND across columns)\n for (const k of cfKeys) {\n if (filterMode === 'data') {\n // raw object check for that key\n const val = (row as any)[k];\n const s = String(val ?? '').toLowerCase();\n const needle = String(cf[k]).toLowerCase();\n if (!s.includes(needle)) return false;\n } else {\n const col = effectiveColumns.find((c) => String(c.key) === k);\n if (!col || col.hidden || col.filterable === false) continue;\n const val = getCellValue(row, col);\n const s = String(val ?? '').toLowerCase();\n const needle = String(cf[k]).toLowerCase();\n if (!s.includes(needle)) return false;\n }\n }\n // global filter (OR across visible columns) or lucene predicate\n if (ft) {\n if (lucenePredicate) {\n if (!lucenePredicate(row)) return false;\n return true;\n }\n let any = false;\n if (filterMode === 'data') {\n for (const val of Object.values(row as any)) {\n const s = String(val ?? '').toLowerCase();\n if (s.includes(ft)) { any = true; break; }\n }\n } else {\n for (const col of effectiveColumns) {\n if (col.hidden) continue;\n const val = getCellValue(row, col);\n const s = String(val ?? '').toLowerCase();\n if (s.includes(ft)) { any = true; break; }\n }\n }\n if (!any) return false;\n }\n return true;\n });\n }\n if (!sortKey || !sortDir) return arr;\n const col = effectiveColumns.find((c) => String(c.key) === sortKey);\n if (!col) return arr;\n const dir = sortDir === 'asc' ? 1 : -1;\n arr.sort((a, b) => {\n const va = getCellValue(a, col);\n const vb = getCellValue(b, col);\n if (va == null && vb == null) return 0;\n if (va == null) return -1 * dir;\n if (vb == null) return 1 * dir;\n if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir;\n const sa = String(va).toLowerCase();\n const sb = String(vb).toLowerCase();\n if (sa < sb) return -1 * dir;\n if (sa > sb) return 1 * dir;\n return 0;\n });\n return arr;\n}\n", "import type { Column } from './types.js';\n\ntype FilterMode = 'table' | 'data';\n\nexport type RowPredicate = (row: T) => boolean;\n\ninterface Term {\n field?: string; // if undefined, match across all fields\n value?: string; // lowercased string\n negate?: boolean;\n range?: { lower: string; upper: string; inclusive: boolean };\n}\n\ninterface Clause {\n terms: Term[]; // AND across terms\n}\n\ninterface LuceneQuery {\n clauses: Clause[]; // OR across clauses\n}\n\nfunction stripQuotes(s: string): string {\n if ((s.startsWith('\"') && s.endsWith('\"')) || (s.startsWith(\"'\") && s.endsWith(\"'\"))) {\n return s.slice(1, -1);\n }\n return s;\n}\n\nfunction splitByOr(input: string): string[] {\n return input.split(/\\s+OR\\s+/i).map((s) => s.trim()).filter(Boolean);\n}\n\nfunction splitByAnd(input: string): string[] {\n return input.split(/\\s+AND\\s+/i).map((s) => s.trim()).filter(Boolean);\n}\n\nfunction parseTerm(raw: string): Term | null {\n if (!raw) return null;\n let negate = false;\n // handle NOT prefix or leading '-'\n const notMatch = raw.match(/^\\s*(NOT\\s+|-)\\s*(.*)$/i);\n if (notMatch) {\n negate = true;\n raw = notMatch[2];\n }\n // range: field:[lower TO upper]\n const rangeMatch = raw.match(/^([^:\\s]+)\\s*:\\s*\\[(.*?)\\s+TO\\s+(.*?)\\]$/i);\n if (rangeMatch) {\n return {\n field: rangeMatch[1],\n negate,\n range: { lower: stripQuotes(rangeMatch[2]).toLowerCase(), upper: stripQuotes(rangeMatch[3]).toLowerCase(), inclusive: true },\n };\n }\n // field:value (value may be quoted)\n const m = raw.match(/^([^:\\s]+)\\s*:\\s*(\"[^\"]*\"|'[^']*'|[^\"'\\s]+)$/);\n if (m) {\n return { field: m[1], value: stripQuotes(m[2]).toLowerCase(), negate };\n }\n // plain term\n if (raw.length > 0) {\n return { value: stripQuotes(raw).toLowerCase(), negate };\n }\n return null;\n}\n\nfunction parseLucene(input: string): LuceneQuery | null {\n if (!input) return null;\n const clauses = splitByOr(input).map((clauseStr) => {\n const terms = splitByAnd(clauseStr)\n .map(parseTerm)\n .filter((t): t is Term => !!t && !!t.value);\n return { terms } as Clause;\n }).filter((c) => c.terms.length > 0);\n if (clauses.length === 0) return null;\n return { clauses };\n}\n\nexport function compileLucenePredicate(\n input: string,\n mode: FilterMode,\n columns: Column[]\n): RowPredicate | null {\n const ast = parseLucene(input);\n if (!ast) return null;\n const colMap = new Map>(\n columns.map((c) => [String(c.key), c])\n );\n const cmp = (a: string, b: string) => (a < b ? -1 : a > b ? 1 : 0);\n const coerce = (s: any) => {\n const str = String(s ?? '').toLowerCase();\n const num = Number(str);\n const date = Date.parse(str);\n if (!Number.isNaN(num) && str.trim() !== '') return { t: 'n' as const, v: num };\n if (!Number.isNaN(date)) return { t: 'd' as const, v: date };\n return { t: 's' as const, v: str };\n };\n const inRange = (val: any, lower: string, upper: string) => {\n const a = coerce(val);\n const lo = coerce(lower);\n const up = coerce(upper);\n // All strings: lexical compare\n if (a.t === 's' && lo.t === 's' && up.t === 's') {\n const av = a.v as string;\n return cmp(av, lo.v as string) >= 0 && cmp(av, up.v as string) <= 0;\n }\n // All numbers\n if (a.t === 'n' && lo.t === 'n' && up.t === 'n') {\n const av = a.v as number;\n return av >= (lo.v as number) && av <= (up.v as number);\n }\n // All dates (as numbers)\n if (a.t === 'd' && lo.t === 'd' && up.t === 'd') {\n const av = a.v as number;\n return av >= (lo.v as number) && av <= (up.v as number);\n }\n // Fallback: compare string forms\n const as = String(val ?? '').toLowerCase();\n return cmp(as, lower) >= 0 && cmp(as, upper) <= 0;\n };\n return (row: T) => {\n for (const clause of ast.clauses) {\n let clauseOk = true;\n for (const term of clause.terms) {\n let ok = false;\n if (term.range && term.field) {\n // range compare on field\n if (mode === 'data') {\n ok = inRange((row as any)[term.field], term.range.lower, term.range.upper);\n } else {\n const col = colMap.get(term.field);\n if (!col || col.hidden) { ok = false; } else {\n const val = col.value ? col.value(row) : (row as any)[col.key as any];\n ok = inRange(val, term.range.lower, term.range.upper);\n }\n }\n } else if (term.field && term.value != null) {\n if (mode === 'data') {\n const s = String((row as any)[term.field] ?? '').toLowerCase();\n ok = s.includes(term.value);\n } else {\n const col = colMap.get(term.field);\n if (!col || col.hidden === true) { ok = false; }\n else {\n const val = col.value ? col.value(row) : (row as any)[col.key as any];\n const s = String(val ?? '').toLowerCase();\n ok = s.includes(term.value);\n }\n }\n } else if (term.value != null) {\n // search across all visible/raw fields\n if (mode === 'data') {\n ok = Object.values(row as any).some((v) => String(v ?? '').toLowerCase().includes(term.value!));\n } else {\n ok = columns.some((col) => {\n if (col.hidden) return false;\n const val = col.value ? col.value(row) : (row as any)[col.key as any];\n const s = String(val ?? '').toLowerCase();\n return s.includes(term.value!);\n });\n }\n }\n if (term.negate) ok = !ok;\n if (!ok) { clauseOk = false; break; }\n }\n if (clauseOk) return true;\n }\n return false;\n };\n}\n", "import * as plugins from '../../00plugins.js';\nimport { demoFunc } from './dees-table.demo.js';\nimport { customElement, html, DeesElement, property, type TemplateResult, directives } from '@design.estate/dees-element';\n\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { type TIconKey } from '../../00group-utility/dees-icon/dees-icon.js';\nimport { tableStyles } from './styles.js';\nimport type { Column, ITableAction, ITableActionDataArg, TDisplayFunction } from './types.js';\nimport {\n computeColumnsFromDisplayFunction as computeColumnsFromDisplayFunctionFn,\n computeEffectiveColumns as computeEffectiveColumnsFn,\n getCellValue as getCellValueFn,\n getViewData as getViewDataFn,\n} from './data.js';\nimport { compileLucenePredicate } from './lucene.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nexport type { Column, ITableAction, ITableActionDataArg, TDisplayFunction } from './types.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-table': DeesTable;\n }\n}\n\n// interfaces moved to ./types.ts and re-exported above\n\n// the table implementation\n@customElement('dees-table')\nexport class DeesTable extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Data View'];\n\n // INSTANCE\n @property({\n type: String,\n })\n accessor heading1: string = 'heading 1';\n\n @property({\n type: String,\n })\n accessor heading2: string = 'heading 2';\n\n @property({\n type: Array,\n })\n accessor data: T[] = [];\n\n // dees-form compatibility -----------------------------------------\n @property({\n type: String,\n })\n accessor key: string;\n\n @property({\n type: String,\n })\n accessor label: string;\n\n @property({\n type: Boolean,\n })\n accessor disabled: boolean = false;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean = false;\n\n get value() {\n return this.data;\n }\n set value(_valueArg) {}\n public changeSubject = new domtools.plugins.smartrx.rxjs.Subject>();\n // end dees-form compatibility -----------------------------------------\n\n /**\n * What does a row of data represent?\n */\n @property({\n type: String,\n reflect: true,\n })\n accessor dataName: string;\n\n\n @property({\n type: Boolean,\n })\n accessor searchable: boolean = true;\n\n @property({\n type: Array,\n })\n accessor dataActions: ITableAction[] = [];\n\n // schema-first columns API\n @property({ attribute: false })\n accessor columns: Column[] = [];\n\n /**\n * Stable row identity for selection and updates. If provided as a function,\n * it is only usable as a property (not via attribute).\n */\n @property({ attribute: false })\n accessor rowKey: keyof T | ((row: T) => string) | undefined = undefined;\n\n /**\n * When true and columns are provided, merge any missing columns discovered\n * via displayFunction into the effective schema.\n */\n @property({ type: Boolean })\n accessor augmentFromDisplayFunction: boolean = false;\n\n @property({\n attribute: false,\n })\n accessor displayFunction: TDisplayFunction = (itemArg: T) => itemArg as any;\n\n @property({\n attribute: false,\n })\n accessor reverseDisplayFunction: (itemArg: any) => T = (itemArg: any) => itemArg as T;\n\n @property({\n type: Object,\n })\n accessor selectedDataRow: T;\n\n @property({\n type: Array,\n })\n accessor editableFields: string[] = [];\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'show-vertical-lines'\n })\n accessor showVerticalLines: boolean = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'show-horizontal-lines'\n })\n accessor showHorizontalLines: boolean = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'show-grid'\n })\n accessor showGrid: boolean = true;\n\n public files: File[] = [];\n public fileWeakMap = new WeakMap();\n\n public dataChangeSubject = new domtools.plugins.smartrx.rxjs.Subject();\n\n // simple client-side sorting (Phase 1)\n @property({ attribute: false })\n accessor sortKey: string | undefined = undefined;\n @property({ attribute: false })\n accessor sortDir: 'asc' | 'desc' | null = null;\n\n // simple client-side filtering (Phase 1)\n @property({ type: String })\n accessor filterText: string = '';\n // per-column quick filters\n @property({ attribute: false })\n accessor columnFilters: Record = {};\n @property({ type: Boolean, attribute: 'show-column-filters' })\n accessor showColumnFilters: boolean = false;\n @property({ type: Boolean, reflect: true, attribute: 'sticky-header' })\n accessor stickyHeader: boolean = false;\n\n // search row state\n @property({ type: String })\n accessor searchMode: 'table' | 'data' | 'server' = 'table';\n private __searchTextSub?: { unsubscribe?: () => void };\n private __searchModeSub?: { unsubscribe?: () => void };\n\n // selection (Phase 1)\n @property({ type: String })\n accessor selectionMode: 'none' | 'single' | 'multi' = 'none';\n @property({ attribute: false })\n accessor selectedIds: Set = new Set();\n private _rowIdMap = new WeakMap();\n private _rowIdCounter = 0;\n\n constructor() {\n super();\n }\n\n public static styles = tableStyles;\n\n public render(): TemplateResult {\n const usingColumns = Array.isArray(this.columns) && this.columns.length > 0;\n const effectiveColumns: Column[] = usingColumns\n ? computeEffectiveColumnsFn(this.columns, this.augmentFromDisplayFunction, this.displayFunction, this.data)\n : computeColumnsFromDisplayFunctionFn(this.displayFunction, this.data);\n\n const lucenePred = compileLucenePredicate(\n this.filterText,\n this.searchMode === 'data' ? 'data' : 'table',\n effectiveColumns\n );\n\n const viewData = getViewDataFn(\n this.data,\n effectiveColumns,\n this.sortKey,\n this.sortDir,\n this.filterText,\n this.columnFilters,\n this.searchMode === 'data' ? 'data' : 'table',\n lucenePred || undefined\n );\n (this as any)._lastViewData = viewData;\n return html`\n
      \n \n
      \n
      \n
      ${this.label || this.heading1}
      \n
      ${this.heading2}
      \n
      \n
      \n ${directives.resolveExec(async () => {\n const resultArray: TemplateResult[] = [];\n for (const action of this.dataActions) {\n if (!action.type?.includes('header')) continue;\n resultArray.push(\n html` {\n action.actionFunc({\n item: this.selectedDataRow,\n table: this,\n });\n }}\n >\n ${action.iconName\n ? html`\n ${action.name}`\n : action.name}\n
      `\n );\n }\n return resultArray;\n })}\n
      \n
      \n
      \n
      \n \n \n
      \n\n \n \n ${this.data.length > 0\n ? html`\n
      \n \n \n \n ${this.selectionMode !== 'none'\n ? html`\n \n `\n : html``}\n ${effectiveColumns\n .filter((c) => !c.hidden)\n .map((col) => {\n const isSortable = !!col.sortable;\n const ariaSort = this.getAriaSort(col);\n return html`\n (isSortable ? this.toggleSort(col) : null)}\n >\n ${col.header ?? (col.key as any)}\n ${this.renderSortIndicator(col)}\n `;\n })}\n ${(() => {\n if (this.dataActions && this.dataActions.length > 0) {\n return html` `;\n }\n })()}\n \n ${this.showColumnFilters\n ? html`\n ${this.selectionMode !== 'none'\n ? html``\n : html``}\n ${effectiveColumns\n .filter((c) => !c.hidden)\n .map((col) => {\n const key = String(col.key);\n if (col.filterable === false) return html``;\n return html``;\n })}\n ${(() => {\n if (this.dataActions && this.dataActions.length > 0) {\n return html` `;\n }\n })()}\n `\n : html``}\n \n \n ${viewData.map((itemArg, rowIndex) => {\n const getTr = (elementArg: HTMLElement): HTMLElement => {\n if (elementArg.tagName === 'TR') {\n return elementArg;\n } else {\n return getTr(elementArg.parentElement);\n }\n };\n return html`\n {\n this.selectedDataRow = itemArg;\n if (this.selectionMode === 'single') {\n const id = this.getRowId(itemArg);\n this.selectedIds.clear();\n this.selectedIds.add(id);\n this.emitSelectionChange();\n this.requestUpdate();\n }\n }}\n @dragenter=${async (eventArg: DragEvent) => {\n eventArg.preventDefault();\n eventArg.stopPropagation();\n const realTarget = getTr(eventArg.target as HTMLElement);\n setTimeout(() => {\n realTarget.classList.add('hasAttachment');\n }, 0);\n }}\n @dragleave=${async (eventArg: DragEvent) => {\n eventArg.preventDefault();\n eventArg.stopPropagation();\n const realTarget = getTr(eventArg.target as HTMLElement);\n realTarget.classList.remove('hasAttachment');\n }}\n @dragover=${async (eventArg: DragEvent) => {\n eventArg.preventDefault();\n }}\n @drop=${async (eventArg: DragEvent) => {\n eventArg.preventDefault();\n const newFiles = [];\n for (const file of Array.from(eventArg.dataTransfer.files)) {\n this.files.push(file);\n newFiles.push(file);\n this.requestUpdate();\n }\n const result: File[] = this.fileWeakMap.get(itemArg as object);\n if (!result) {\n this.fileWeakMap.set(itemArg as object, newFiles);\n } else {\n result.push(...newFiles);\n }\n }}\n @contextmenu=${async (eventArg: MouseEvent) => {\n DeesContextmenu.openContextMenuWithOptions(\n eventArg,\n this.getActionsForType('contextmenu').map((action) => {\n const menuItem: plugins.tsclass.website.IMenuItem = {\n name: action.name,\n iconName: action.iconName as any,\n action: async () => {\n await action.actionFunc({\n item: itemArg,\n table: this,\n });\n return null;\n },\n };\n return menuItem;\n })\n );\n }}\n class=\"${itemArg === this.selectedDataRow ? 'selected' : ''}\"\n >\n ${this.selectionMode !== 'none'\n ? html``\n : html``}\n ${effectiveColumns\n .filter((c) => !c.hidden)\n .map((col, colIndex) => {\n const value = getCellValueFn(itemArg, col, this.displayFunction);\n const content = col.renderer\n ? col.renderer(value, itemArg, { rowIndex, colIndex, column: col })\n : value;\n const editKey = String(col.key);\n return html`\n {\n const dblAction = this.dataActions.find((actionArg) =>\n actionArg.type?.includes('doubleClick')\n );\n if (this.editableFields.includes(editKey)) {\n this.handleCellEditing(e, itemArg, editKey);\n } else if (dblAction) {\n dblAction.actionFunc({ item: itemArg, table: this });\n }\n }}\n >\n
      ${content}
      \n \n `;\n })}\n ${(() => {\n if (this.dataActions && this.dataActions.length > 0) {\n return html`\n
      \n `;\n }\n })()}\n `;\n })}\n \n
      \n ${this.selectionMode === 'multi'\n ? html`\n ) => {\n e.stopPropagation();\n this.setSelectVisible(e.detail === true);\n }}\n >\n `\n : html``}\n Actions
      \n this.setColumnFilter(key, (e.target as HTMLInputElement).value)} />\n
      \n ) => {\n e.stopPropagation();\n this.setRowSelected(itemArg, e.detail === true);\n }}\n >\n \n
      \n ${this.getActionsForType('inRow').map(\n (actionArg) => html`\n \n actionArg.actionFunc({\n item: itemArg,\n table: this,\n })}\n >\n ${actionArg.iconName\n ? html` `\n : actionArg.name}\n
      \n `\n )}\n \n
      \n
      \n `\n : html`
      No data set!
      `}\n
      \n
      \n ${this.data.length} ${this.dataName || 'data rows'} (total) |\n ${this.selectedDataRow ? '# ' + `${this.data.indexOf(this.selectedDataRow) + 1}` : `No`}\n selected\n
      \n
      \n ${directives.resolveExec(async () => {\n const resultArray: TemplateResult[] = [];\n for (const action of this.dataActions) {\n if (!action.type?.includes('footer')) continue;\n resultArray.push(\n html` {\n action.actionFunc({\n item: this.selectedDataRow,\n table: this,\n });\n }}\n >\n ${action.iconName\n ? html`\n ${action.name}`\n : action.name}\n
      `\n );\n }\n return resultArray;\n })}\n
      \n \n \n `;\n }\n\n public async firstUpdated() {\n \n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n this.determineColumnWidths();\n if (this.searchable) {\n const existing = this.dataActions.find((actionArg) => actionArg.type?.includes('header') && actionArg.name === 'Search');\n if (!existing) {\n this.dataActions.unshift({\n name: 'Search',\n iconName: 'lucide:Search',\n type: ['header'],\n actionFunc: async () => {\n console.log('open search');\n const searchGrid = this.shadowRoot.querySelector('.searchGrid');\n searchGrid.classList.toggle('hidden');\n }\n });\n console.log(this.dataActions);\n this.requestUpdate();\n };\n // wire search inputs\n this.wireSearchInputs();\n }\n }\n\n private __debounceTimer?: any;\n private debounceRun(fn: () => void, ms = 200) {\n if (this.__debounceTimer) clearTimeout(this.__debounceTimer);\n this.__debounceTimer = setTimeout(fn, ms);\n }\n\n private wireSearchInputs() {\n const searchTextEl: any = this.shadowRoot?.querySelector('.searchGrid dees-input-text');\n const searchModeEl: any = this.shadowRoot?.querySelector('.searchGrid dees-input-multitoggle');\n if (searchTextEl && !this.__searchTextSub) {\n this.__searchTextSub = searchTextEl.changeSubject.subscribe((el: any) => {\n const val: string = el?.value ?? '';\n this.debounceRun(() => {\n if (this.searchMode === 'server') {\n this.dispatchEvent(\n new CustomEvent('searchRequest', {\n detail: { query: val, mode: 'server' },\n bubbles: true,\n })\n );\n } else {\n this.setFilterText(val);\n }\n });\n });\n }\n if (searchModeEl && !this.__searchModeSub) {\n this.__searchModeSub = searchModeEl.changeSubject.subscribe((el: any) => {\n const mode: string = el?.selectedOption || el?.value || 'table';\n if (mode === 'table' || mode === 'data' || mode === 'server') {\n this.searchMode = mode as any;\n // When switching modes, re-apply current text input\n const val: string = searchTextEl?.value ?? '';\n this.debounceRun(() => {\n if (this.searchMode === 'server') {\n this.dispatchEvent(new CustomEvent('searchRequest', { detail: { query: val, mode: 'server' }, bubbles: true }));\n } else {\n this.setFilterText(val);\n }\n });\n }\n });\n }\n }\n\n public async determineColumnWidths() {\n const domtools = await this.domtoolsPromise;\n await domtools.convenience.smartdelay.delayFor(0);\n // Get the table element\n const table = this.shadowRoot.querySelector('table');\n if (!table) return;\n\n // Get the first row's cells to measure the widths\n const cells = table.rows[0].cells;\n\n const handleColumnByIndex = async (i: number, waitForRenderArg: boolean = false) => {\n const done = plugins.smartpromise.defer();\n const cell = cells[i];\n\n // Get computed width\n const width = window.getComputedStyle(cell).width;\n if (cell.textContent.includes('Actions')) {\n const neededWidth =\n this.dataActions.filter((actionArg) => actionArg.type?.includes('inRow')).length * 36;\n cell.style.width = `${Math.max(neededWidth, 68)}px`;\n } else {\n cell.style.width = width;\n }\n if (waitForRenderArg) {\n requestAnimationFrame(() => {\n done.resolve();\n });\n await done.promise;\n }\n };\n\n if (cells[cells.length - 1].textContent.includes('Actions')) {\n await handleColumnByIndex(cells.length - 1, true);\n }\n\n for (let i = 0; i < cells.length; i++) {\n if (cells[i].textContent.includes('Actions')) {\n continue;\n }\n await handleColumnByIndex(i);\n }\n table.style.tableLayout = 'fixed';\n }\n\n // compute helpers moved to ./data.ts\n\n private toggleSort(col: Column) {\n const key = String(col.key);\n if (this.sortKey !== key) {\n this.sortKey = key;\n this.sortDir = 'asc';\n } else {\n if (this.sortDir === 'asc') this.sortDir = 'desc';\n else if (this.sortDir === 'desc') {\n this.sortDir = null;\n this.sortKey = undefined;\n } else this.sortDir = 'asc';\n }\n this.dispatchEvent(\n new CustomEvent('sortChange', {\n detail: { key: this.sortKey, dir: this.sortDir },\n bubbles: true,\n })\n );\n this.requestUpdate();\n }\n\n private getAriaSort(col: Column): 'none' | 'ascending' | 'descending' {\n if (String(col.key) !== this.sortKey || !this.sortDir) return 'none';\n return this.sortDir === 'asc' ? 'ascending' : 'descending';\n }\n\n private renderSortIndicator(col: Column) {\n if (String(col.key) !== this.sortKey || !this.sortDir) return html``;\n return html`${this.sortDir === 'asc' ? '\u25B2' : '\u25BC'}`;\n }\n\n // filtering helpers\n public setFilterText(value: string) {\n const prev = this.filterText;\n this.filterText = value ?? '';\n if (prev !== this.filterText) {\n this.dispatchEvent(\n new CustomEvent('filterChange', {\n detail: { text: this.filterText, columns: { ...this.columnFilters } },\n bubbles: true,\n })\n );\n this.requestUpdate();\n }\n }\n\n public setColumnFilter(key: string, value: string) {\n this.columnFilters = { ...this.columnFilters, [key]: value };\n this.dispatchEvent(\n new CustomEvent('filterChange', {\n detail: { text: this.filterText, columns: { ...this.columnFilters } },\n bubbles: true,\n })\n );\n this.requestUpdate();\n }\n\n // selection helpers\n private getRowId(row: T): string {\n if (this.rowKey) {\n if (typeof this.rowKey === 'function') return this.rowKey(row);\n return String((row as any)[this.rowKey]);\n }\n const key = row as any as object;\n if (!this._rowIdMap.has(key)) {\n this._rowIdMap.set(key, String(++this._rowIdCounter));\n }\n return this._rowIdMap.get(key);\n }\n\n private isRowSelected(row: T): boolean {\n return this.selectedIds.has(this.getRowId(row));\n }\n\n private toggleRowSelected(row: T) {\n const id = this.getRowId(row);\n if (this.selectionMode === 'single') {\n this.selectedIds.clear();\n this.selectedIds.add(id);\n } else if (this.selectionMode === 'multi') {\n if (this.selectedIds.has(id)) this.selectedIds.delete(id);\n else this.selectedIds.add(id);\n }\n this.emitSelectionChange();\n this.requestUpdate();\n }\n\n private setRowSelected(row: T, checked: boolean) {\n const id = this.getRowId(row);\n if (this.selectionMode === 'single') {\n this.selectedIds.clear();\n if (checked) this.selectedIds.add(id);\n } else if (this.selectionMode === 'multi') {\n if (checked) this.selectedIds.add(id);\n else this.selectedIds.delete(id);\n }\n this.emitSelectionChange();\n this.requestUpdate();\n }\n\n private areAllVisibleSelected(): boolean {\n const view: T[] = (this as any)._lastViewData || [];\n if (view.length === 0) return false;\n for (const r of view) {\n if (!this.selectedIds.has(this.getRowId(r))) return false;\n }\n return true;\n }\n\n private isVisibleSelectionIndeterminate(): boolean {\n const view: T[] = (this as any)._lastViewData || [];\n if (view.length === 0) return false;\n let count = 0;\n for (const r of view) {\n if (this.selectedIds.has(this.getRowId(r))) count++;\n }\n return count > 0 && count < view.length;\n }\n\n private setSelectVisible(checked: boolean) {\n const view: T[] = (this as any)._lastViewData || [];\n if (checked) {\n for (const r of view) this.selectedIds.add(this.getRowId(r));\n } else {\n for (const r of view) this.selectedIds.delete(this.getRowId(r));\n }\n this.emitSelectionChange();\n this.requestUpdate();\n }\n\n private emitSelectionChange() {\n const selectedIds = Array.from(this.selectedIds);\n const selectedRows = this.data.filter((r) => this.selectedIds.has(this.getRowId(r)));\n this.dispatchEvent(\n new CustomEvent('selectionChange', {\n detail: { selectedIds, selectedRows },\n bubbles: true,\n })\n );\n }\n\n getActionsForType(typeArg: ITableAction['type'][0]) {\n const actions: ITableAction[] = [];\n for (const action of this.dataActions) {\n if (!action.type?.includes(typeArg)) continue;\n actions.push(action);\n }\n return actions;\n }\n\n async handleCellEditing(event: Event, itemArg: T, key: string) {\n await this.domtoolsPromise;\n const target = event.target as HTMLElement;\n const originalColor = target.style.color;\n target.style.color = 'transparent';\n const transformedItem = this.displayFunction(itemArg);\n const initialValue = ((transformedItem as any)[key] ?? (itemArg as any)[key] ?? '') as string;\n // Create an input element\n const input = document.createElement('input');\n input.type = 'text';\n input.value = initialValue;\n\n const blurInput = async (blurArg = true, saveArg = false) => {\n if (blurArg) {\n input.blur();\n }\n if (saveArg) {\n itemArg[key] = input.value as any; // Convert string to T (you might need better type casting depending on your data structure)\n this.changeSubject.next(this);\n }\n input.remove();\n target.style.color = originalColor;\n this.requestUpdate();\n };\n\n // When the input loses focus or the Enter key is pressed, update the data\n input.addEventListener('blur', () => {\n blurInput(false, false);\n });\n input.addEventListener('keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n blurInput(true, true); // This will trigger the blur event handler above\n }\n });\n\n // Replace the cell's content with the input\n target.appendChild(input);\n input.focus();\n }\n}\n", "export * from './dees-table.js';\n", "import { html, css, domtools, cssManager } from '@design.estate/dees-element';\nimport type { DeesForm } from './dees-form.js';\nimport '@design.estate/dees-wcctools/demotools';\n\nexport const demoFunc = () => html`\n \n \n
      \n {\n const form = elementArg.querySelector('dees-form') as DeesForm;\n const outputDiv = elementArg.querySelector('.form-output');\n \n if (form && outputDiv) {\n form.addEventListener('formData', async (eventArg: CustomEvent) => {\n const data = eventArg.detail.data;\n console.log('Form submitted with data:', data);\n \n // Show processing state\n form.setStatus('pending', 'Processing your registration...');\n outputDiv.innerHTML = `Submitted Data:\\n${JSON.stringify(data, null, 2)}`;\n \n // Simulate API call\n await domtools.plugins.smartdelay.delayFor(2000);\n \n // Show success\n form.setStatus('success', 'Registration completed successfully!');\n \n // Reset form after delay\n await domtools.plugins.smartdelay.delayFor(2000);\n form.reset();\n outputDiv.innerHTML = 'Form has been reset';\n });\n \n // Track individual field changes\n const inputs = form.querySelectorAll('dees-input-text, dees-input-dropdown, dees-input-checkbox');\n inputs.forEach((input) => {\n input.addEventListener('changeSubject', () => {\n console.log('Field changed:', input.getAttribute('key'));\n });\n });\n }\n }}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Create Account\n \n \n
      \n Submit the form to see the collected data...\n
      \n
      \n
      \n \n {\n const form = elementArg.querySelector('dees-form') as DeesForm;\n \n if (form) {\n // Track horizontal layout behavior\n console.log('Horizontal form layout active');\n \n // Monitor filter changes\n form.addEventListener('formData', (event: CustomEvent) => {\n const filters = event.detail.data;\n console.log('Filter applied:', filters);\n \n // Simulate search\n const resultsCount = Math.floor(Math.random() * 100) + 1;\n console.log(`Found ${resultsCount} results with filters:`, filters);\n });\n \n // Setup real-time filter updates\n const inputs = form.querySelectorAll('[key]');\n inputs.forEach((input) => {\n input.addEventListener('changeSubject', async () => {\n // Get current form data\n const formData = await form.collectFormData();\n console.log('Live filter update:', formData);\n });\n });\n }\n }}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n const form = elementArg.querySelector('dees-form') as DeesForm;\n const statusDiv = elementArg.querySelector('#status-display');\n \n if (form) {\n form.addEventListener('formData', async (eventArg: CustomEvent) => {\n const data = eventArg.detail.data;\n console.log('Advanced form data:', data);\n \n // Show validation in progress\n form.setStatus('pending', 'Validating your information...');\n \n // Simulate validation\n await domtools.plugins.smartdelay.delayFor(1500);\n \n // Check IBAN validity (simple check)\n if (data.iban && data.iban.length > 15) {\n form.setStatus('success', 'Application submitted successfully!');\n \n if (statusDiv) {\n statusDiv.className = 'status-message success';\n statusDiv.textContent = '\u2713 Your application has been submitted. We will contact you soon.';\n }\n } else {\n form.setStatus('error', 'Please check your IBAN');\n \n if (statusDiv) {\n statusDiv.className = 'status-message error';\n statusDiv.textContent = '\u2717 Invalid IBAN format. Please check and try again.';\n }\n }\n \n console.log('Form data logged:', data);\n });\n \n // Monitor file uploads\n const fileUpload = form.querySelector('dees-input-fileupload');\n if (fileUpload) {\n fileUpload.addEventListener('change', (event: any) => {\n const files = event.detail?.files || [];\n console.log(`${files.length} file(s) selected for upload`);\n });\n }\n }\n }}>\n \n \n \n \n \n \n \n \n \n \n \n \n Submit Application\n \n \n
      \n
      \n
      \n
      \n`;", "import {\n customElement,\n html,\n css,\n type TemplateResult,\n DeesElement,\n type CSSResult,\n property,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\n\nimport { DeesInputCheckbox } from '../../00group-input/dees-input-checkbox/dees-input-checkbox.js';\nimport { DeesInputCode } from '../../00group-input/dees-input-code/dees-input-code.js';\nimport { DeesInputDatepicker } from '../../00group-input/dees-input-datepicker/index.js';\nimport { DeesInputText } from '../../00group-input/dees-input-text/dees-input-text.js';\nimport { DeesInputQuantitySelector } from '../../00group-input/dees-input-quantityselector/dees-input-quantityselector.js';\nimport { DeesInputRadiogroup } from '../../00group-input/dees-input-radiogroup/dees-input-radiogroup.js';\nimport { DeesInputDropdown } from '../../00group-input/dees-input-dropdown/dees-input-dropdown.js';\nimport { DeesInputFileupload } from '../../00group-input/dees-input-fileupload/index.js';\nimport { DeesInputIban } from '../../00group-input/dees-input-iban/dees-input-iban.js';\nimport { DeesInputMultitoggle } from '../../00group-input/dees-input-multitoggle/dees-input-multitoggle.js';\nimport { DeesInputPhone } from '../../00group-input/dees-input-phone/dees-input-phone.js';\nimport { DeesInputToggle } from '../../00group-input/dees-input-toggle/dees-input-toggle.js';\nimport { DeesInputTypelist } from '../../00group-input/dees-input-typelist/dees-input-typelist.js';\nimport { DeesFormSubmit } from '../dees-form-submit/dees-form-submit.js';\nimport { DeesTable } from '../../00group-dataview/dees-table/index.js';\nimport { demoFunc } from './dees-form.demo.js';\n\n// Unified set for form input types\nconst FORM_INPUT_TYPES = [\n DeesInputCheckbox,\n DeesInputCode,\n DeesInputDatepicker,\n DeesInputDropdown,\n DeesInputFileupload,\n DeesInputIban,\n DeesInputMultitoggle,\n DeesInputPhone,\n DeesInputQuantitySelector,\n DeesInputRadiogroup,\n DeesInputText,\n DeesInputToggle,\n DeesInputTypelist,\n DeesTable,\n];\n\nexport type TFormInputElement =\n | DeesInputCheckbox\n | DeesInputCode\n | DeesInputDatepicker\n | DeesInputDropdown\n | DeesInputFileupload\n | DeesInputIban\n | DeesInputMultitoggle\n | DeesInputPhone\n | DeesInputQuantitySelector\n | DeesInputRadiogroup\n | DeesInputText\n | DeesInputToggle\n | DeesInputTypelist\n | DeesTable;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-form': DeesForm;\n }\n}\n\n@customElement('dees-form')\nexport class DeesForm extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Form'];\n\n public name: string = 'myform';\n public changeSubject = new domtools.plugins.smartrx.rxjs.Subject();\n public readyDeferred = domtools.plugins.smartpromise.defer();\n\n /**\n * Controls the layout mode of child input components\n * When true, sets all child inputs to horizontal layout\n */\n @property({ type: Boolean, reflect: true, attribute: 'horizontal-layout' })\n accessor horizontalLayout: boolean = false;\n\n public static styles = [\n css`\n :host {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n :host([horizontal-layout]) {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: 16px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n \n `;\n }\n\n public async firstUpdated() {\n const formChildren = this.getFormElements();\n this.updateRequiredStatus();\n this.updateChildrenLayoutMode();\n\n for (const child of formChildren) {\n child.changeSubject.subscribe(async () => {\n const valueObject = await this.collectFormData();\n this.changeSubject.next(valueObject);\n console.log(valueObject);\n this.updateRequiredStatus();\n });\n }\n await this.addBehaviours();\n this.readyDeferred.resolve();\n }\n\n public getFormElements(): Array {\n return Array.from(this.children).filter((child) =>\n FORM_INPUT_TYPES.includes(child.constructor as any)\n ) as unknown as TFormInputElement[];\n }\n\n public getSubmitButton(): DeesFormSubmit | undefined {\n return Array.from(this.children).find(\n (child) => child instanceof DeesFormSubmit\n ) as DeesFormSubmit;\n }\n\n public async updateRequiredStatus() {\n console.log('checking the required status.');\n\n let requiredOK = true;\n for (const childArg of this.getFormElements()) {\n if (childArg.required && !childArg.value) {\n requiredOK = false;\n }\n }\n if (this.getSubmitButton()) {\n this.getSubmitButton().disabled = !requiredOK;\n }\n }\n\n /**\n * collects the form data\n * @returns\n */\n public async collectFormData() {\n const children = this.getFormElements();\n const valueObject: { [key: string]: string | number | boolean | any[] | File[] | { option: string; key: string; payload?: any } } = {};\n \n for (const child of children) {\n if (!child.key) {\n console.log(`form element with label \"${child.label}\" has no key. skipping.`);\n continue;\n }\n \n valueObject[child.key] = child.value;\n }\n \n return valueObject;\n }\n\n public async gatherAndDispatch() {\n const valueObject = await this.collectFormData();\n const formDataEvent = new CustomEvent('formData', {\n detail: {\n data: valueObject,\n },\n bubbles: true,\n });\n this.dispatchEvent(formDataEvent);\n console.log('dispatched data:');\n console.log(valueObject);\n }\n\n public setStatus(\n visualStateArg: 'normal' | 'pending' | 'error' | 'success',\n textStateArg: string\n ) {\n const inputChildren = this.getFormElements();\n const submitButton = this.getSubmitButton();\n\n switch (visualStateArg) {\n case 'normal':\n submitButton.disabled = false;\n submitButton.status = 'normal';\n for (const inputChild of inputChildren) {\n inputChild.disabled = false;\n }\n break;\n case 'pending':\n submitButton.disabled = true;\n submitButton.status = 'pending';\n for (const inputChild of inputChildren) {\n inputChild.disabled = true;\n }\n break;\n case 'success':\n submitButton.disabled = true;\n submitButton.status = 'success';\n for (const inputChild of inputChildren) {\n inputChild.disabled = true;\n }\n break;\n case 'error':\n submitButton.disabled = true;\n submitButton.status = 'error';\n for (const inputChild of inputChildren) {\n inputChild.disabled = true;\n }\n break;\n }\n\n submitButton.text = textStateArg;\n }\n\n /**\n * resets the form\n */\n reset() {\n const inputChildren = this.getFormElements();\n const submitButton = this.getSubmitButton();\n\n for (const inputChild of inputChildren) {\n inputChild.value = null;\n }\n this.setStatus('normal', 'Submit');\n }\n\n public async addBehaviours() {\n // Use event delegation\n this.addEventListener('keydown', (event: KeyboardEvent) => {\n const target = event.target as DeesElement;\n if (!FORM_INPUT_TYPES.includes(target.constructor as any)) return;\n\n if (event.key === 'Enter') {\n const children = this.getFormElements();\n const currentIndex = children.indexOf(target as any);\n if (currentIndex < children.length - 1) {\n children[currentIndex + 1].focus();\n } else {\n target.blur();\n this.getSubmitButton()?.focus();\n }\n }\n });\n }\n\n /**\n * Updates the layout mode of child input components based on form's horizontalLayout property\n */\n private updateChildrenLayoutMode() {\n const formChildren = this.getFormElements();\n for (const child of formChildren) {\n if ('layoutMode' in child) {\n // The child's auto mode will detect this form's horizontal-layout attribute\n (child as any).layoutMode = 'auto';\n }\n }\n }\n\n /**\n * Called when properties change\n */\n updated(changedProperties: Map) {\n super.updated(changedProperties);\n \n if (changedProperties.has('horizontalLayout')) {\n this.updateChildrenLayoutMode();\n }\n }\n}\n", "import { html, css, cssManager, domtools } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport '../../00group-form/dees-form/dees-form.js';\nimport '../../00group-form/dees-form-submit/dees-form-submit.js';\nimport '../../00group-input/dees-input-text/dees-input-text.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport type { DeesButton } from '../dees-button/dees-button.js';\n\nexport const demoFunc = () => html`\n \n \n
      \n {\n // Log button clicks for demo purposes\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach((button) => {\n button.addEventListener('clicked', () => {\n const type = button.getAttribute('type') || 'default';\n console.log(`Button variant clicked: ${type}`);\n });\n });\n }}>\n \n
      \n Default\n Secondary\n Destructive\n Outline\n Ghost\n Link Button\n
      \n
      \n
      \n \n {\n // Demonstrate size differences programmatically\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach((button) => {\n button.addEventListener('clicked', () => {\n const size = button.getAttribute('size') || 'default';\n console.log(`Button size: ${size}`);\n });\n });\n }}>\n \n
      \n Small Button\n Default Size\n Large Button\n \n
      \n \n
      \n Small Secondary\n Default Destructive\n Large Outline\n
      \n
      \n
      \n \n {\n // Track icon button clicks\n const iconButtons = elementArg.querySelectorAll('dees-button');\n iconButtons.forEach((button) => {\n button.addEventListener('clicked', () => {\n const hasIcon = button.querySelector('dees-icon');\n if (hasIcon) {\n const iconName = hasIcon.getAttribute('iconFA') || 'unknown';\n console.log(`Icon button clicked: ${iconName}`);\n }\n });\n });\n }}>\n \n
      \n \n \n Add Item\n \n \n \n Delete\n \n \n \n Download\n \n
      \n\n
      \n \n \n Settings\n \n \n \n Back\n \n \n Next\n \n \n
      \n\n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n\n {\n // Track icon property button clicks\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach((button) => {\n button.addEventListener('clicked', () => {\n const icon = button.getAttribute('icon') || 'none';\n const position = button.getAttribute('iconPosition') || 'left';\n console.log(`Icon property button: icon=${icon}, position=${position}`);\n });\n });\n }}>\n \n
      \n Add Item\n Delete\n Download\n
      \n\n
      \n Settings\n Back\n Next\n
      \n\n
      \n \n \n \n \n \n
      \n\n
      \n
      \n <dees-button icon=\"fa:plus\">Add Item</dees-button>
      \n <dees-button icon=\"fa:caretRight\" iconPosition=\"right\">Next</dees-button>\n
      \n
      \n
      \n
      \n\n {\n // Demonstrate status changes\n const pendingButton = elementArg.querySelector('dees-button[status=\"pending\"]');\n const successButton = elementArg.querySelector('dees-button[status=\"success\"]');\n const errorButton = elementArg.querySelector('dees-button[status=\"error\"]');\n \n // Simulate status changes\n if (pendingButton) {\n setTimeout(() => {\n console.log('Pending button is showing loading state');\n }, 1000);\n }\n \n if (successButton) {\n successButton.addEventListener('clicked', () => {\n console.log('Success state button clicked');\n });\n }\n \n if (errorButton) {\n errorButton.addEventListener('clicked', () => {\n console.log('Error state button clicked');\n });\n }\n }}>\n \n
      \n Normal\n Processing...\n Success!\n Error!\n Disabled\n
      \n \n
      \n Small Loading\n Default Loading\n Large Loading\n
      \n
      \n
      \n \n {\n // Set up click handlers with the output element\n const output = elementArg.querySelector('#click-output');\n \n const clickMeBtn = elementArg.querySelector('dees-button:first-of-type');\n const dataBtn = elementArg.querySelector('dees-button[type=\"secondary\"]');\n const asyncBtn = elementArg.querySelector('dees-button[type=\"destructive\"]');\n \n if (clickMeBtn && output) {\n clickMeBtn.addEventListener('clicked', () => {\n output.textContent = `Clicked: Default button at ${new Date().toLocaleTimeString()}`;\n });\n }\n \n if (dataBtn && output) {\n dataBtn.addEventListener('clicked', (e: CustomEvent) => {\n output.textContent = `Clicked: Secondary button with data: ${e.detail.data}`;\n });\n }\n \n if (asyncBtn && output) {\n asyncBtn.addEventListener('clicked', async () => {\n output.textContent = 'Processing...';\n await domtools.plugins.smartdelay.delayFor(2000);\n output.textContent = 'Action completed!';\n });\n }\n }}>\n \n
      \n Click Me\n \n Click with Data\n \n Async Action\n
      \n \n
      \n Click a button to see the result...\n
      \n
      \n
      \n \n {\n // Set up form submission handling\n const form = elementArg.querySelector('dees-form');\n const output = elementArg.querySelector('#form-output');\n \n if (form && output) {\n form.addEventListener('formData', (e: CustomEvent) => {\n output.innerHTML = 'Form submitted with data:
      ' + \n JSON.stringify(e.detail.data, null, 2);\n });\n }\n \n // Track non-submit button clicks\n const draftBtn = elementArg.querySelector('dees-button[type=\"secondary\"]');\n const cancelBtn = elementArg.querySelector('dees-button[type=\"ghost\"]');\n \n if (draftBtn) {\n draftBtn.addEventListener('clicked', () => {\n console.log('Save Draft clicked');\n });\n }\n \n if (cancelBtn) {\n cancelBtn.addEventListener('clicked', () => {\n console.log('Cancel clicked');\n });\n }\n }}>\n \n \n \n \n \n \n Save Draft\n Cancel\n Submit Form\n \n \n
      \n Submit the form to see the data...\n
      \n
      \n
      \n \n {\n // Log legacy type mappings\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach((button) => {\n const type = button.getAttribute('type');\n if (type) {\n console.log(`Legacy type \"${type}\" is supported for backward compatibility`);\n }\n });\n }}>\n \n
      \n Normal \u2192 Default\n Highlighted \u2192 Destructive\n Discreet \u2192 Outline\n Big \u2192 Large Size\n
      \n \n

      \n These legacy type values are maintained for backward compatibility but we recommend using the new variant system.\n

      \n
      \n
      \n \n {\n // Track action group clicks\n const actionGroup = elementArg.querySelectorAll('.vertical-group')[0];\n const dangerGroup = elementArg.querySelectorAll('.vertical-group')[1];\n \n if (actionGroup) {\n const buttons = actionGroup.querySelectorAll('dees-button');\n buttons.forEach((button, index) => {\n button.addEventListener('clicked', () => {\n const action = ['Save Changes', 'Discard', 'Help'][index];\n console.log(`Action group: ${action} clicked`);\n });\n });\n }\n \n if (dangerGroup) {\n const buttons = dangerGroup.querySelectorAll('dees-button');\n buttons.forEach((button, index) => {\n button.addEventListener('clicked', () => {\n const action = ['Delete Account', 'Archive Data', 'Not Available'][index];\n if (index !== 2) { // Skip disabled button\n console.log(`Danger zone: ${action} clicked`);\n }\n });\n });\n }\n }}>\n \n
      \n
      \n

      Action Group

      \n \n \n Save Changes\n \n \n \n Discard\n \n \n \n Help\n \n
      \n\n
      \n

      Danger Zone

      \n \n \n Delete Account\n \n \n \n Archive Data\n \n \n \n Not Available\n \n
      \n
      \n \n
      \n

      Code Example:

      \n
      \n <dees-button type=\"default\" size=\"sm\" icon=\"lucide:Save\" @clicked=\"\\${handleClick}\">
      \n   Save Changes
      \n </dees-button>\n
      \n
      \n
      \n
      \n
      \n`;", "import {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-button.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-button': DeesButton;\n }\n}\n\n@customElement('dees-button')\nexport class DeesButton extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Button'];\n\n @property({\n reflect: true,\n hasChanged() {\n return true;\n }\n })\n accessor text: string;\n\n @property()\n accessor eventDetailData: string;\n\n @property({\n type: Boolean,\n reflect: true,\n })\n accessor disabled = false;\n\n @property({\n type: Boolean\n })\n accessor isHidden = false;\n\n @property({\n type: String\n })\n accessor type: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link' | 'normal' | 'highlighted' | 'discreet' | 'big' = 'default';\n\n @property({\n type: String\n })\n accessor size: 'default' | 'sm' | 'lg' | 'icon' = 'default';\n\n @property({\n type: String\n })\n accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';\n\n @property({\n type: Boolean,\n reflect: true\n })\n accessor insideForm: boolean = false;\n\n @property({ type: String, reflect: true })\n accessor icon: string;\n\n @property({ type: String, reflect: true })\n accessor iconPosition: 'left' | 'right' = 'left';\n\n constructor() {\n super();\n }\n\n public async connectedCallback() {\n await super.connectedCallback();\n // Auto-detect if inside a form\n if (!this.insideForm && this.closest('dees-form')) {\n this.insideForm = true;\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-block;\n box-sizing: border-box;\n font-family: inherit;\n }\n :host([hidden]) {\n display: none;\n }\n\n /* Form spacing styles */\n :host([inside-form]) {\n margin-bottom: 16px;\n }\n \n :host([inside-form]:last-child) {\n margin-bottom: 0;\n }\n \n dees-form[horizontal-layout] :host([inside-form]) {\n display: inline-block;\n margin-right: 16px;\n margin-bottom: 0;\n }\n \n dees-form[horizontal-layout] :host([inside-form]:last-child) {\n margin-right: 0;\n }\n\n .button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n border-radius: 6px;\n font-weight: 500;\n transition: all 0.15s ease;\n cursor: pointer;\n user-select: none;\n outline: none;\n letter-spacing: -0.01em;\n gap: 8px;\n }\n\n /* Size variants */\n .button.size-default {\n height: 36px;\n padding: 0 16px;\n font-size: 14px;\n }\n\n .button.size-sm {\n height: 32px;\n padding: 0 12px;\n font-size: 13px;\n }\n\n .button.size-lg {\n height: 44px;\n padding: 0 24px;\n font-size: 16px;\n }\n\n .button.size-icon {\n height: 36px;\n width: 36px;\n padding: 0;\n }\n\n /* Default variant */\n .button.default {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20.2% 11.8%)')};\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 16.8%)')};\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n }\n\n .button.default:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 10.2%)')};\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 85%)', 'hsl(215 20.2% 20%)')};\n }\n\n .button.default:active:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 9%)')};\n }\n\n /* Destructive variant */\n .button.destructive {\n background: hsl(0 84.2% 60.2%);\n color: hsl(0 0% 98%);\n border: 1px solid transparent;\n }\n\n .button.destructive:hover:not(.disabled) {\n background: hsl(0 84.2% 56.2%);\n }\n\n .button.destructive:active:not(.disabled) {\n background: hsl(0 84.2% 52.2%);\n }\n\n /* Outline variant */\n .button.outline {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 21.8%)')};\n }\n\n .button.outline:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n border-color: ${cssManager.bdTheme('hsl(214.3 31.8% 85%)', 'hsl(215 20.2% 26.8%)')};\n }\n\n .button.outline:active:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 13.8%)')};\n }\n\n /* Secondary variant */\n .button.secondary {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n border: 1px solid transparent;\n }\n\n .button.secondary:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 13.8%)')};\n }\n\n .button.secondary:active:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 85%)', 'hsl(215 20.2% 11.8%)')};\n }\n\n /* Ghost variant */\n .button.ghost {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n border: 1px solid transparent;\n }\n\n .button.ghost:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n }\n\n .button.ghost:active:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(214.3 31.8% 91.4%)', 'hsl(215 20.2% 13.8%)')};\n }\n\n /* Link variant */\n .button.link {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(213.1 93.9% 67.8%)')};\n border: none;\n text-decoration: underline;\n text-decoration-color: transparent;\n height: auto;\n padding: 0;\n }\n\n .button.link:hover:not(.disabled) {\n text-decoration-color: currentColor;\n }\n\n /* Status states */\n .button.pending,\n .button.success,\n .button.error {\n pointer-events: none;\n padding-left: 36px; /* Space for spinner */\n }\n \n .button.size-sm.pending,\n .button.size-sm.success,\n .button.size-sm.error {\n padding-left: 32px;\n }\n \n .button.size-lg.pending,\n .button.size-lg.success,\n .button.size-lg.error {\n padding-left: 44px;\n }\n\n .button.pending {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(213.1 93.9% 67.8% / 0.2)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(213.1 93.9% 67.8%)')};\n border: 1px solid transparent;\n }\n\n .button.success {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3% / 0.2)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(142.1 70.6% 45.3%)')};\n border: 1px solid transparent;\n }\n\n .button.error {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 62.8% 70.6% / 0.2)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 62.8% 70.6%)')};\n border: 1px solid transparent;\n }\n\n /* Disabled state */\n .button.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* Hidden state */\n .button.hidden {\n display: none;\n }\n\n /* Focus state */\n .button:focus-visible {\n outline: 2px solid ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(213.1 93.9% 67.8%)')};\n outline-offset: 2px;\n }\n\n /* Loading spinner */\n dees-spinner {\n position: absolute;\n left: 10px;\n width: 16px;\n height: 16px;\n }\n \n .button.size-sm dees-spinner {\n left: 8px;\n width: 14px;\n height: 14px;\n }\n \n .button.size-lg dees-spinner {\n left: 14px;\n width: 18px;\n height: 18px;\n }\n \n /* Icon sizing within buttons */\n .button dees-icon {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n }\n \n .button.size-sm dees-icon {\n width: 14px;\n height: 14px;\n }\n \n .button.size-lg dees-icon {\n width: 18px;\n height: 18px;\n }\n\n /* Text alignment */\n .textbox {\n display: flex;\n align-items: center;\n }\n\n `,\n ];\n\n /**\n * Extracts icon and text from light DOM and sets properties\n */\n private extractLightDom(): void {\n const iconElement = this.querySelector('dees-icon') as any;\n\n // Get all text content from light DOM\n const textContent = Array.from(this.childNodes)\n .filter(node => node.nodeType === Node.TEXT_NODE)\n .map(node => node.textContent?.trim())\n .filter(Boolean)\n .join(' ');\n\n if (textContent && !this.text) {\n this.text = textContent;\n }\n\n if (iconElement) {\n // Get icon value\n const iconValue = iconElement.icon || iconElement.getAttribute('icon') ||\n (iconElement.iconFA ? `fa:${iconElement.iconFA}` : null);\n\n if (iconValue) {\n // Determine position based on DOM order\n const children = Array.from(this.childNodes);\n const iconIndex = children.indexOf(iconElement);\n const textNodes = children.filter(node =>\n node.nodeType === Node.TEXT_NODE && node.textContent?.trim()\n );\n\n if (textNodes.length > 0) {\n const firstTextIndex = children.indexOf(textNodes[0]);\n this.iconPosition = iconIndex < firstTextIndex ? 'left' : 'right';\n }\n\n // Set the icon property\n this.icon = iconValue;\n }\n\n // Remove the light DOM icon element\n iconElement.remove();\n }\n\n // Clear all remaining light DOM\n this.innerHTML = '';\n }\n\n public render(): TemplateResult {\n // Map old types to new types for backward compatibility\n const typeMap: {[key: string]: string} = {\n 'normal': 'default',\n 'highlighted': 'destructive',\n 'discreet': 'outline',\n 'big': 'default' // Will use size instead\n };\n\n const actualType = typeMap[this.type] || this.type;\n const actualSize = this.type === 'big' ? 'lg' : this.size;\n\n const leftIcon = this.iconPosition === 'left' && this.icon\n ? html``\n : '';\n const rightIcon = this.iconPosition === 'right' && this.icon\n ? html``\n : '';\n\n // For icon-only buttons, hide the textbox\n const isIconOnly = actualSize === 'icon' && this.icon;\n\n return html`\n \n ${this.status === 'normal' ? html``: html`\n \n `}\n ${leftIcon}\n ${isIconOnly ? '' : html`
      ${this.text || 'Button'}
      `}\n ${rightIcon}\n \n `;\n }\n\n public async dispatchClick() {\n if (this.disabled) {\n return;\n }\n\n this.dispatchEvent(\n new CustomEvent('clicked', {\n detail: {\n data: this.eventDetailData,\n },\n bubbles: true,\n })\n );\n }\n\n public async firstUpdated() {\n // Extract light DOM content (icon + text) and set as properties\n this.extractLightDom();\n }\n}\n", "import { demoFunc } from './dees-statsgrid.demo.js';\nimport * as plugins from '../../00plugins.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n state,\n css,\n unsafeCSS,\n cssManager,\n} from '@design.estate/dees-element';\nimport type { TemplateResult } from '@design.estate/dees-element';\n\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '../../00group-button/dees-button/dees-button.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-statsgrid': DeesStatsGrid;\n }\n}\n\nexport interface ICpuCore {\n id: string | number;\n usage: number; // 0-100\n label?: string;\n}\n\nexport interface IPartitionData {\n used: number; // bytes\n total: number; // bytes\n filesystem: string; // e.g., 'ext4', 'NTFS', 'btrfs'\n mountPoint?: string; // e.g., '/', '/home', 'C:'\n}\n\nexport interface IDiskData {\n capacity: number; // bytes\n model?: string; // e.g., 'Samsung 970 EVO Plus'\n type?: 'ssd' | 'hdd' | 'nvme';\n iops?: {\n read: number;\n write: number;\n };\n health?: number; // 0-100 (100 = new, 0 = end of life)\n}\n\nexport interface IStatsTile {\n id: string;\n title: string;\n value: number | string;\n unit?: string;\n type: 'number' | 'gauge' | 'percentage' | 'trend' | 'text' | 'multiPercentage' | 'cpuCores' | 'partition' | 'disk';\n\n // Layout options\n columnSpan?: number; // Number of columns to span (default: 1)\n\n // For gauge type\n gaugeOptions?: {\n min: number;\n max: number;\n thresholds?: Array<{value: number; color: string}>;\n };\n\n // For trend type\n trendData?: number[];\n\n // For multiPercentage type\n percentages?: Array<{\n label: string;\n value: number;\n color?: string;\n }>;\n\n // For cpuCores type\n coresData?: ICpuCore[];\n\n // For partition type\n partitionData?: IPartitionData;\n\n // For disk type\n diskData?: IDiskData;\n\n // Visual customization\n color?: string;\n icon?: string;\n description?: string;\n\n // Tile-specific actions\n actions?: plugins.tsclass.website.IMenuItem[];\n}\n\n@customElement('dees-statsgrid')\nexport class DeesStatsGrid extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Data View'];\n\n @property({ type: Array })\n accessor tiles: IStatsTile[] = [];\n\n @property({ type: Number })\n accessor minTileWidth: number = 250;\n\n @property({ type: Number })\n accessor gap: number = 16;\n\n @property({ type: Array })\n accessor gridActions: plugins.tsclass.website.IMenuItem[] = [];\n\n @state()\n accessor contextMenuVisible = false;\n\n @state()\n accessor contextMenuPosition = { x: 0, y: 0 };\n\n @state()\n accessor contextMenuActions: plugins.tsclass.website.IMenuItem[] = [];\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n width: 100%;\n font-family: ${cssGeistFontFamily};\n }\n\n /* CSS Variables for consistent spacing and sizing */\n :host {\n --grid-gap: 12px;\n --tile-padding: 16px;\n --header-spacing: 12px;\n --content-min-height: 40px;\n --value-font-size: 26px;\n --unit-font-size: 14px;\n --label-font-size: 12px;\n --title-font-size: 13px;\n --description-spacing: 8px;\n --border-radius: 6px;\n --transition-duration: 0.15s;\n }\n\n /* Grid Layout */\n .grid-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: calc(var(--grid-gap) * 1.5);\n min-height: 40px;\n }\n\n .grid-title {\n font-size: 16px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n letter-spacing: -0.01em;\n }\n\n .grid-actions {\n display: flex;\n gap: 6px;\n }\n\n .grid-actions dees-button {\n font-size: var(--label-font-size);\n }\n\n .stats-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(${unsafeCSS(250)}px, 1fr));\n gap: ${unsafeCSS(16)}px;\n width: 100%;\n }\n\n /* Tile Base Styles */\n .stats-tile {\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};\n border-radius: var(--border-radius);\n padding: var(--tile-padding);\n transition: all var(--transition-duration) ease;\n cursor: default;\n position: relative;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .stats-tile:hover {\n background: ${cssManager.bdTheme('#fafafa', '#0d0d0d')};\n border-color: ${cssManager.bdTheme('#d0d0d0', '#2a2a2a')};\n }\n\n .stats-tile.clickable {\n cursor: pointer;\n }\n\n .stats-tile.clickable:hover {\n transform: translateY(-1px);\n box-shadow: 0 2px 6px ${cssManager.bdTheme('rgba(0,0,0,0.03)', 'rgba(0,0,0,0.15)')};\n }\n\n /* Tile Header */\n .tile-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: var(--header-spacing);\n flex-shrink: 0;\n }\n\n .tile-title {\n font-size: var(--title-font-size);\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n margin: 0;\n letter-spacing: -0.01em;\n line-height: 1.2;\n }\n\n .tile-icon {\n opacity: 0.7;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n font-size: 16px;\n flex-shrink: 0;\n }\n\n /* Tile Content */\n .tile-content {\n min-height: var(--content-min-height);\n display: flex;\n flex-direction: column;\n flex: 1;\n }\n\n .tile-value {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n display: flex;\n align-items: baseline;\n gap: 4px;\n letter-spacing: -0.025em;\n }\n\n .tile-unit {\n font-size: var(--unit-font-size);\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n letter-spacing: -0.01em;\n }\n\n .tile-description {\n font-size: var(--label-font-size);\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n margin-top: var(--description-spacing);\n letter-spacing: -0.01em;\n flex-shrink: 0;\n }\n\n /* Gauge Styles */\n .gauge-wrapper {\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .gauge-container {\n width: 120px;\n height: 70px;\n position: relative;\n margin-top: -8px;\n }\n\n .gauge-svg {\n width: 100%;\n height: 100%;\n }\n\n .gauge-background {\n fill: none;\n stroke: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n stroke-width: 6;\n }\n\n .gauge-fill {\n fill: none;\n stroke-width: 6;\n stroke-linecap: round;\n transition: stroke-dashoffset 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .gauge-text {\n fill: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n font-family: ${cssGeistFontFamily};\n font-size: var(--value-font-size);\n font-weight: 600;\n text-anchor: middle;\n letter-spacing: -0.025em;\n }\n \n .gauge-unit {\n font-size: var(--unit-font-size);\n fill: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n font-weight: 400;\n font-family: ${cssGeistFontFamily};\n }\n\n /* Percentage Styles */\n .percentage-wrapper {\n width: 100%;\n position: relative;\n display: flex;\n flex-direction: column;\n flex: 1;\n }\n\n .percentage-value {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n margin-bottom: 8px;\n }\n\n .percentage-bar {\n width: 100%;\n height: 6px;\n background: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n border-radius: 3px;\n overflow: hidden;\n margin-top: auto;\n }\n\n .percentage-fill {\n height: 100%;\n background: ${cssManager.bdTheme('#333333', '#e0e0e0')};\n transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n border-radius: 3px;\n }\n\n /* Multi Percentage Styles */\n .multi-percentage-wrapper {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n }\n\n .multi-percentage-items {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin-top: auto;\n }\n\n .multi-percentage-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .multi-percentage-header {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .multi-percentage-label {\n font-size: 11px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n letter-spacing: -0.01em;\n }\n\n .multi-percentage-value {\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n letter-spacing: -0.01em;\n }\n\n .multi-percentage-bar {\n width: 100%;\n height: 4px;\n background: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n border-radius: 2px;\n overflow: hidden;\n }\n\n .multi-percentage-fill {\n height: 100%;\n background: ${cssManager.bdTheme('#333333', '#e0e0e0')};\n transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n border-radius: 2px;\n }\n\n /* CPU Cores Styles */\n .cpu-cores-wrapper {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 80px;\n }\n\n .cpu-cores-header {\n display: flex;\n align-items: baseline;\n gap: 8px;\n margin-bottom: 12px;\n }\n\n .cpu-cores-value {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n }\n\n .cpu-cores-unit {\n font-size: var(--unit-font-size);\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n letter-spacing: -0.01em;\n }\n\n .cpu-cores-label {\n font-size: var(--label-font-size);\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n letter-spacing: -0.01em;\n margin-left: auto;\n }\n\n .cpu-cores-bars {\n display: flex;\n align-items: flex-end;\n gap: 3px;\n flex: 1;\n min-height: 60px;\n padding: 4px 0;\n }\n\n .cpu-cores-bars.centered {\n justify-content: center;\n }\n\n .cpu-core-bar-container {\n flex: 1;\n min-width: 6px;\n max-width: 24px;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n }\n\n .cpu-core-bar-wrapper {\n flex: 1;\n width: 100%;\n background: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n border-radius: 2px;\n position: relative;\n overflow: hidden;\n min-height: 40px;\n }\n\n .cpu-core-bar-fill {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n background: ${cssManager.bdTheme('#666666', '#888888')};\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s ease;\n border-radius: 2px 2px 0 0;\n }\n\n .cpu-core-bar-fill.low {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n }\n\n .cpu-core-bar-fill.medium {\n background: ${cssManager.bdTheme('hsl(45.4 93.4% 47.5%)', 'hsl(45.4 93.4% 47.5%)')};\n }\n\n .cpu-core-bar-fill.high {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 84.2% 60.2%)')};\n }\n\n .cpu-core-label {\n font-size: 9px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n\n /* Partition Styles */\n .partition-wrapper {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 8px;\n }\n\n .partition-header {\n display: flex;\n align-items: baseline;\n gap: 8px;\n }\n\n .partition-percentage {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n }\n\n .partition-bar {\n width: 100%;\n height: 6px;\n background: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n border-radius: 3px;\n overflow: hidden;\n }\n\n .partition-bar-fill {\n height: 100%;\n background: ${cssManager.bdTheme('#333333', '#e0e0e0')};\n transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n border-radius: 3px;\n }\n\n .partition-bar-fill.warning {\n background: ${cssManager.bdTheme('hsl(45.4 93.4% 47.5%)', 'hsl(45.4 93.4% 47.5%)')};\n }\n\n .partition-bar-fill.critical {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 84.2% 60.2%)')};\n }\n\n .partition-stats {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: auto;\n }\n\n .partition-stat {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .partition-stat-label {\n font-size: 10px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-transform: uppercase;\n letter-spacing: 0.02em;\n }\n\n .partition-stat-value {\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n letter-spacing: -0.01em;\n }\n\n .partition-meta {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 4px;\n }\n\n .partition-filesystem {\n font-size: 11px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n padding: 2px 6px;\n border-radius: 3px;\n }\n\n .partition-mountpoint {\n font-size: 11px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n }\n\n /* Disk Styles */\n .disk-wrapper {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 8px;\n }\n\n .disk-capacity {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n }\n\n .disk-model {\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .disk-type-badge {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n padding: 2px 6px;\n border-radius: 3px;\n }\n\n .disk-metrics {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: auto;\n }\n\n .disk-iops {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .disk-iops-item {\n display: flex;\n align-items: baseline;\n gap: 4px;\n }\n\n .disk-iops-label {\n font-size: 10px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-transform: uppercase;\n }\n\n .disk-iops-value {\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n }\n\n .disk-health {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .disk-health-header {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .disk-health-label {\n font-size: 10px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n text-transform: uppercase;\n }\n\n .disk-health-value {\n font-size: 12px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n }\n\n .disk-health-bar {\n width: 100%;\n height: 4px;\n background: ${cssManager.bdTheme('#e8e8e8', '#1a1a1a')};\n border-radius: 2px;\n overflow: hidden;\n }\n\n .disk-health-fill {\n height: 100%;\n transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);\n border-radius: 2px;\n }\n\n .disk-health-fill.good {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n }\n\n .disk-health-fill.warning {\n background: ${cssManager.bdTheme('hsl(45.4 93.4% 47.5%)', 'hsl(45.4 93.4% 47.5%)')};\n }\n\n .disk-health-fill.critical {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 84.2% 60.2%)')};\n }\n\n /* Trend Styles */\n .trend-container {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n }\n\n .trend-header {\n display: flex;\n align-items: baseline;\n gap: 8px;\n }\n\n .trend-value {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n }\n\n .trend-unit {\n font-size: var(--unit-font-size);\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n letter-spacing: -0.01em;\n }\n\n .trend-label {\n font-size: var(--label-font-size);\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n letter-spacing: -0.01em;\n margin-left: auto;\n }\n\n .trend-graph {\n width: 100%;\n height: 28px;\n position: relative;\n margin-top: auto;\n }\n\n .trend-svg {\n width: 100%;\n height: 100%;\n display: block;\n }\n\n .trend-line {\n fill: none;\n stroke: ${cssManager.bdTheme('#999999', '#666666')};\n stroke-width: 1.5;\n stroke-linejoin: round;\n stroke-linecap: round;\n }\n\n .trend-area {\n fill: ${cssManager.bdTheme('rgba(150, 150, 150, 0.08)', 'rgba(100, 100, 100, 0.08)')};\n }\n\n /* Text Value Styles */\n .text-value {\n font-size: var(--value-font-size);\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215.3 25% 8.8%)', 'hsl(210 40% 98%)')};\n line-height: 1.1;\n letter-spacing: -0.025em;\n }\n\n /* Context Menu */\n dees-contextmenu {\n position: fixed;\n z-index: 1000;\n }\n `,\n ];\n\n constructor() {\n super();\n }\n\n public render(): TemplateResult {\n return html`\n ${this.gridActions.length > 0 ? html`\n
      \n
      \n
      \n ${this.gridActions.map(action => html`\n this.handleGridAction(action)}\n type=\"outline\"\n size=\"sm\"\n >\n ${action.iconName ? html`` : ''}\n ${action.name}\n \n `)}\n
      \n
      \n ` : ''}\n \n
      \n ${this.tiles.map(tile => this.renderTile(tile))}\n
      \n\n ${this.contextMenuVisible ? html`\n this.contextMenuVisible = false}\n >\n ` : ''}\n `;\n }\n\n private renderTile(tile: IStatsTile): TemplateResult {\n const hasActions = tile.actions && tile.actions.length > 0;\n const clickable = hasActions && tile.actions.length === 1;\n const columnSpan = tile.columnSpan && tile.columnSpan > 1 ? tile.columnSpan : undefined;\n\n return html`\n this.handleTileAction(tile.actions![0], tile) : undefined}\n @contextmenu=${hasActions ? (e: MouseEvent) => this.showContextMenu(e, tile) : undefined}\n >\n
      \n

      ${tile.title}

      \n ${tile.icon ? html`\n \n ` : ''}\n
      \n \n
      \n ${this.renderTileContent(tile)}\n
      \n \n ${tile.description && tile.type !== 'trend' ? html`\n
      ${tile.description}
      \n ` : ''}\n \n `;\n }\n\n private renderTileContent(tile: IStatsTile): TemplateResult {\n switch (tile.type) {\n case 'number':\n return html`\n
      \n ${tile.value}\n ${tile.unit ? html`${tile.unit}` : ''}\n
      \n `;\n\n case 'gauge':\n return this.renderGauge(tile);\n\n case 'percentage':\n return this.renderPercentage(tile);\n\n case 'trend':\n return this.renderTrend(tile);\n\n case 'multiPercentage':\n return this.renderMultiPercentage(tile);\n\n case 'cpuCores':\n return this.renderCpuCores(tile);\n\n case 'partition':\n return this.renderPartition(tile);\n\n case 'disk':\n return this.renderDisk(tile);\n\n case 'text':\n return html`\n
      \n ${tile.value}\n
      \n `;\n\n default:\n return html`
      ${tile.value}
      `;\n }\n }\n\n private renderGauge(tile: IStatsTile): TemplateResult {\n const value = typeof tile.value === 'number' ? tile.value : parseFloat(tile.value);\n const options = tile.gaugeOptions || { min: 0, max: 100 };\n const percentage = ((value - options.min) / (options.max - options.min)) * 100;\n\n // SVG dimensions and calculations\n const width = 120;\n const height = 70;\n const strokeWidth = 6;\n const padding = strokeWidth / 2 + 2;\n const radius = 40;\n const centerX = width / 2;\n const centerY = height - padding;\n \n // Arc path\n const startX = centerX - radius;\n const startY = centerY;\n const endX = centerX + radius;\n const endY = centerY;\n const arcPath = `M ${startX} ${startY} A ${radius} ${radius} 0 0 1 ${endX} ${endY}`;\n \n // Calculate stroke dasharray and dashoffset\n const circumference = Math.PI * radius;\n const strokeDashoffset = circumference - (circumference * percentage) / 100;\n\n let strokeColor = tile.color || cssManager.bdTheme('hsl(215.3 25% 28.8%)', 'hsl(210 40% 78%)');\n if (options.thresholds) {\n const sortedThresholds = [...options.thresholds].sort((a, b) => b.value - a.value);\n for (const threshold of sortedThresholds) {\n if (value >= threshold.value) {\n strokeColor = threshold.color;\n break;\n }\n }\n }\n\n return html`\n
      \n
      \n \n \n \n \n \n \n \n ${value}${tile.unit ? html`${tile.unit}` : ''}\n \n \n
      \n
      \n `;\n }\n\n private renderPercentage(tile: IStatsTile): TemplateResult {\n const value = typeof tile.value === 'number' ? tile.value : parseFloat(tile.value);\n const percentage = Math.min(100, Math.max(0, value));\n\n return html`\n
      \n
      ${percentage}%
      \n
      \n
      \n
      \n
      \n `;\n }\n\n private renderTrend(tile: IStatsTile): TemplateResult {\n if (!tile.trendData || tile.trendData.length < 2) {\n return html`
      ${tile.value}
      `;\n }\n\n const data = tile.trendData;\n const max = Math.max(...data);\n const min = Math.min(...data);\n const range = max - min || 1;\n const width = 300;\n const height = 32;\n \n // Add padding to prevent clipping\n const padding = 2;\n const points = data.map((value, index) => {\n const x = (index / (data.length - 1)) * width;\n const y = padding + (height - 2 * padding) - ((value - min) / range) * (height - 2 * padding);\n return `${x},${y}`;\n }).join(' ');\n\n const areaPoints = `0,${height} ${points} ${width},${height}`;\n\n return html`\n
      \n
      \n ${tile.value}\n ${tile.unit ? html`${tile.unit}` : ''}\n ${tile.description ? html`${tile.description}` : ''}\n
      \n
      \n \n \n \n \n
      \n
      \n `;\n }\n\n private renderMultiPercentage(tile: IStatsTile): TemplateResult {\n if (!tile.percentages || tile.percentages.length === 0) {\n return html`
      ${tile.value}
      `;\n }\n\n // Limit to 3 percentages\n const items = tile.percentages.slice(0, 3);\n\n return html`\n
      \n
      \n ${items.map(item => {\n const percentage = Math.min(100, Math.max(0, item.value));\n return html`\n
      \n
      \n ${item.label}\n ${percentage}%\n
      \n
      \n
      \n
      \n
      \n `;\n })}\n
      \n \n `;\n }\n\n private renderCpuCores(tile: IStatsTile): TemplateResult {\n if (!tile.coresData || tile.coresData.length === 0) {\n return html`
      ${tile.value}
      `;\n }\n\n const cores = tile.coresData;\n const avgUsage = Math.round(cores.reduce((sum, core) => sum + core.usage, 0) / cores.length);\n\n // Determine color class based on usage\n const getColorClass = (usage: number): string => {\n if (usage < 50) return 'low';\n if (usage < 80) return 'medium';\n return 'high';\n };\n\n // Calculate if bars should be centered (when they take up less than 66.6% of available width)\n // Max bar width = cores * 24px + (cores - 1) * 3px gap\n const maxBarsWidth = cores.length * 24 + (cores.length - 1) * 3;\n // Estimate tile content width based on columnSpan and minTileWidth (subtract padding)\n const columnSpan = tile.columnSpan || 1;\n const estimatedTileWidth = (this.minTileWidth * columnSpan) + ((columnSpan - 1) * this.gap) - 32; // 32px for padding\n const shouldCenter = maxBarsWidth < estimatedTileWidth * 0.666;\n\n return html`\n
      \n
      \n ${avgUsage}\n %\n ${cores.length} cores\n
      \n
      \n ${cores.map(core => {\n const usage = Math.min(100, Math.max(0, core.usage));\n const colorClass = getColorClass(usage);\n return html`\n
      \n
      \n
      \n
      \n ${cores.length <= 16 ? html`\n ${core.label || core.id}\n ` : ''}\n
      \n `;\n })}\n
      \n \n `;\n }\n\n private formatBytes(bytes: number): string {\n if (bytes === 0) return '0 B';\n const k = 1024;\n const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];\n }\n\n private renderPartition(tile: IStatsTile): TemplateResult {\n if (!tile.partitionData) {\n return html`
      ${tile.value}
      `;\n }\n\n const { used, total, filesystem, mountPoint } = tile.partitionData;\n const percentage = Math.min(100, Math.max(0, (used / total) * 100));\n const free = total - used;\n\n // Determine color class based on usage\n const getColorClass = (): string => {\n if (percentage >= 90) return 'critical';\n if (percentage >= 75) return 'warning';\n return '';\n };\n\n return html`\n
      \n
      \n ${Math.round(percentage)}%\n
      \n
      \n
      \n
      \n
      \n
      \n Used\n ${this.formatBytes(used)}\n
      \n
      \n Free\n ${this.formatBytes(free)}\n
      \n
      \n
      \n ${filesystem}\n ${mountPoint ? html`${mountPoint}` : ''}\n
      \n \n `;\n }\n\n private renderDisk(tile: IStatsTile): TemplateResult {\n if (!tile.diskData) {\n return html`
      ${tile.value}
      `;\n }\n\n const { capacity, model, type, iops, health } = tile.diskData;\n\n // Determine health color class (inverted - high is good)\n const getHealthClass = (value: number): string => {\n if (value >= 70) return 'good';\n if (value >= 30) return 'warning';\n return 'critical';\n };\n\n return html`\n
      \n
      ${this.formatBytes(capacity)}
      \n ${model || type ? html`\n
      \n ${model ? html`${model}` : ''}\n ${type ? html`${type}` : ''}\n
      \n ` : ''}\n
      \n ${iops ? html`\n
      \n
      \n Read\n ${iops.read.toLocaleString()}\n
      \n
      \n Write\n ${iops.write.toLocaleString()}\n
      \n
      \n ` : ''}\n ${health !== undefined ? html`\n
      \n
      \n Health\n ${health}%\n
      \n
      \n
      \n
      \n
      \n ` : ''}\n
      \n \n `;\n }\n\n private async handleGridAction(action: plugins.tsclass.website.IMenuItem) {\n if (action.action) {\n await action.action();\n }\n }\n\n private async handleTileAction(action: plugins.tsclass.website.IMenuItem, _tile: IStatsTile) {\n if (action.action) {\n await action.action();\n }\n // Note: tile data is available through closure when defining actions\n }\n\n private showContextMenu(event: MouseEvent, tile: IStatsTile) {\n if (!tile.actions || tile.actions.length === 0) return;\n \n event.preventDefault();\n this.contextMenuPosition = { x: event.clientX, y: event.clientY };\n this.contextMenuActions = tile.actions;\n this.contextMenuVisible = true;\n\n // Close context menu on click outside\n const closeHandler = () => {\n this.contextMenuVisible = false;\n document.removeEventListener('click', closeHandler);\n };\n setTimeout(() => {\n document.addEventListener('click', closeHandler);\n }, 100);\n }\n}", "import { html, css, DeesElement, customElement, state } from '@design.estate/dees-element';\nimport type { DeesAppui } from './dees-appui.js';\nimport type { IAppConfig, IViewActivationContext } from '../../interfaces/appconfig.js';\nimport type * as interfaces from '../../interfaces/index.js';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';\nimport type { IStatsTile } from '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';\n\n// Demo view component with lifecycle hooks\n@customElement('demo-dashboard-view')\nclass DemoDashboardView extends DeesElement {\n @state()\n accessor activated: boolean = false;\n\n private ctx: IViewActivationContext;\n\n private statsTiles: IStatsTile[] = [\n {\n id: 'users',\n title: 'Active Users',\n value: 1234,\n type: 'number',\n icon: 'lucide:users',\n description: 'Online now',\n color: '#22c55e'\n },\n {\n id: 'api-calls',\n title: 'API Calls',\n value: 45200,\n type: 'trend',\n icon: 'lucide:activity',\n description: '+12% from last hour',\n color: '#3b82f6',\n trendData: [32000, 35000, 38000, 41000, 39000, 42000, 45200]\n },\n {\n id: 'health',\n title: 'System Health',\n value: 99.9,\n unit: '%',\n type: 'gauge',\n icon: 'lucide:heart-pulse',\n description: 'All systems operational',\n color: '#10b981',\n gaugeOptions: {\n min: 0,\n max: 100,\n thresholds: [\n { value: 80, color: '#ef4444' },\n { value: 95, color: '#f59e0b' },\n { value: 100, color: '#10b981' }\n ]\n }\n },\n {\n id: 'response',\n title: 'Avg Response',\n value: 127,\n unit: 'ms',\n type: 'number',\n icon: 'lucide:timer',\n description: '-15ms from yesterday',\n color: '#8b5cf6'\n },\n {\n id: 'resources',\n title: 'Resource Usage',\n value: '',\n type: 'multiPercentage',\n icon: 'lucide:server',\n percentages: [\n { label: 'CPU', value: 67, color: '#3b82f6' },\n { label: 'Memory', value: 84, color: '#8b5cf6' },\n { label: 'Disk', value: 45, color: '#10b981' }\n ]\n },\n {\n id: 'requests',\n title: 'Requests/sec',\n value: 1850,\n type: 'trend',\n icon: 'lucide:zap',\n description: 'Current throughput',\n color: '#06b6d4',\n trendData: [1200, 1400, 1350, 1600, 1750, 1680, 1850]\n }\n ];\n\n onActivate(context: IViewActivationContext) {\n this.ctx = context;\n this.activated = true;\n console.log('Dashboard activated with context:', context);\n\n // Set view-specific secondary menu with new item types\n context.appui.setSecondaryMenu({\n heading: 'Dashboard',\n groups: [\n {\n name: 'Quick Access',\n iconName: 'lucide:zap',\n items: [\n { key: 'Overview', iconName: 'layoutDashboard', action: () => console.log('Overview') },\n { key: 'Recent', iconName: 'clock', badge: 5, action: () => console.log('Recent') },\n { type: 'divider' },\n { type: 'action', key: 'Refresh Data', iconName: 'lucide:refreshCw', action: () => alert('Refreshing dashboard data...') },\n ] as interfaces.ISecondaryMenuItem[]\n },\n {\n name: 'Filters',\n iconName: 'lucide:filter',\n items: [\n { type: 'header', label: 'Time Range' },\n { type: 'filter', key: 'Live Updates', iconName: 'lucide:radio', active: true, onToggle: (active) => console.log('Live updates:', active) },\n { type: 'filter', key: 'Show Archived', iconName: 'lucide:archive', active: false, onToggle: (active) => console.log('Show archived:', active) },\n { type: 'divider' },\n { type: 'multiFilter', key: 'Data Sources', iconName: 'lucide:database', options: [\n { key: 'api', label: 'API Server', checked: true, iconName: 'lucide:server' },\n { key: 'web', label: 'Web Traffic', checked: true, iconName: 'lucide:globe' },\n { key: 'mobile', label: 'Mobile App', checked: false, iconName: 'lucide:smartphone' },\n ], onChange: (keys) => console.log('Data sources:', keys) },\n ] as interfaces.ISecondaryMenuItem[]\n },\n {\n name: 'Analytics',\n iconName: 'lucide:barChart3',\n items: [\n { key: 'Metrics', iconName: 'activity', action: () => console.log('Metrics') },\n { key: 'Reports', iconName: 'fileText', badge: 'new', badgeVariant: 'success', action: () => console.log('Reports') },\n { type: 'divider' },\n { type: 'link', key: 'Analytics Docs', iconName: 'lucide:externalLink', href: 'https://docs.example.com/analytics' },\n ] as interfaces.ISecondaryMenuItem[]\n }\n ]\n });\n\n // Set content tabs for dashboard\n context.appui.setContentTabs([\n { key: 'Overview', iconName: 'lucide:layoutDashboard', action: () => console.log('Overview tab') },\n { key: 'Analytics', iconName: 'lucide:barChart', action: () => console.log('Analytics tab') },\n { key: 'Reports', iconName: 'lucide:fileText', action: () => console.log('Reports tab') },\n ]);\n }\n\n onDeactivate() {\n this.activated = false;\n console.log('Dashboard deactivated');\n }\n\n render() {\n return html`\n \n

      Dashboard

      \n

      Welcome back! Here's an overview of your system.

      \n console.log('Tile action:', e.detail)}\n >\n\n
      \n

      Context Actions (ctx.appui)

      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n `;\n }\n\n private tabCounter = 0;\n\n private addCloseableTab() {\n if (!this.ctx) return;\n this.tabCounter++;\n const tabKey = `Tab ${this.tabCounter}`;\n this.ctx.appui.addContentTab({\n key: tabKey,\n iconName: 'lucide:file',\n action: () => console.log(`Selected ${tabKey}`),\n closeable: true,\n onClose: () => {\n this.ctx?.appui.removeContentTab(tabKey);\n }\n });\n }\n}\n\n// Settings view with route params and canDeactivate guard\n@customElement('demo-settings-view')\nclass DemoSettingsView extends DeesElement {\n @state()\n accessor section: string = 'general';\n\n @state()\n accessor hasChanges: boolean = false;\n\n private appui: DeesAppui;\n\n onActivate(context: IViewActivationContext) {\n this.appui = context.appui as any;\n console.log('Settings activated with params:', context.params);\n\n if (context.params?.section) {\n this.section = context.params.section;\n }\n\n // Set settings-specific secondary menu\n context.appui.setSecondaryMenu({\n heading: 'Settings',\n groups: [\n {\n name: 'Account',\n iconName: 'lucide:user',\n items: [\n { key: 'general', iconName: 'settings', action: () => this.showSection('general') },\n { key: 'profile', iconName: 'user', action: () => this.showSection('profile') },\n { key: 'security', iconName: 'shield', action: () => this.showSection('security') },\n ]\n },\n {\n name: 'Preferences',\n iconName: 'lucide:sliders',\n items: [\n { key: 'notifications', iconName: 'bell', badge: 3, action: () => this.showSection('notifications') },\n { key: 'appearance', iconName: 'palette', action: () => this.showSection('appearance') },\n ]\n }\n ]\n });\n\n context.appui.setSecondaryMenuSelection(this.section);\n\n // Clear content tabs for settings\n context.appui.setContentTabs([]);\n }\n\n onDeactivate() {\n console.log('Settings deactivated');\n this.hasChanges = false;\n }\n\n canDeactivate(): boolean | string {\n if (this.hasChanges) {\n return 'You have unsaved changes. Leave anyway?';\n }\n return true;\n }\n\n showSection(section: string) {\n this.section = section;\n this.appui?.setSecondaryMenuSelection(section);\n }\n\n simulateChange() {\n this.hasChanges = true;\n }\n\n render() {\n return html`\n \n

      Settings

      \n

      Manage your account and application preferences.

      \n
      \n Current section: ${this.section}\n
      \n
      \n \n
      \n ${this.hasChanges ? html`

      You have unsaved changes. Navigation will prompt for confirmation.

      ` : ''}\n `;\n }\n}\n\n// Projects view\n@customElement('demo-projects-view')\nclass DemoProjectsView extends DeesElement {\n onActivate(context: IViewActivationContext) {\n context.appui.setSecondaryMenu({\n heading: 'Projects',\n groups: [\n {\n name: 'My Projects',\n iconName: 'lucide:folder',\n items: [\n { key: 'Active', iconName: 'folder', badge: 3, action: () => console.log('Active') },\n { key: 'Archived', iconName: 'archive', action: () => console.log('Archived') },\n { key: 'Shared', iconName: 'users', badge: 2, badgeVariant: 'warning', action: () => console.log('Shared') },\n ] as interfaces.ISecondaryMenuItem[]\n },\n {\n name: 'Quick Actions',\n iconName: 'lucide:zap',\n items: [\n { type: 'action', key: 'New Project', iconName: 'lucide:folderPlus', action: () => alert('Create new project') },\n { type: 'action', key: 'Import', iconName: 'lucide:download', action: () => alert('Import project') },\n { type: 'divider' },\n { type: 'link', key: 'Templates', iconName: 'lucide:layoutTemplate', href: 'https://templates.example.com' },\n ] as interfaces.ISecondaryMenuItem[]\n }\n ]\n });\n\n context.appui.setContentTabs([\n { key: 'Grid', iconName: 'lucide:grid', action: () => console.log('Grid view') },\n { key: 'List', iconName: 'lucide:list', action: () => console.log('List view') },\n { key: 'Board', iconName: 'lucide:kanban', action: () => console.log('Board view') },\n ]);\n }\n\n render() {\n return html`\n \n

      Projects

      \n
      \n
      \n

      Frontend App Active

      \n

      React-based dashboard application

      \n
      \n
      \n

      API Server Active

      \n

      Node.js REST API backend

      \n
      \n
      \n

      Mobile App Active

      \n

      React Native iOS/Android app

      \n
      \n
      \n

      Documentation

      \n

      Technical documentation site

      \n
      \n
      \n `;\n }\n}\n\n// Tasks view showing inline template content\n@customElement('demo-tasks-view')\nclass DemoTasksView extends DeesElement {\n onActivate(context: IViewActivationContext) {\n context.appui.setSecondaryMenu({\n heading: 'Tasks',\n groups: [\n {\n name: 'Views',\n iconName: 'lucide:eye',\n items: [\n { key: 'All Tasks', iconName: 'list', badge: 12, action: () => console.log('All') },\n { key: 'Today', iconName: 'calendar', badge: 3, action: () => console.log('Today') },\n { key: 'Upcoming', iconName: 'clock', action: () => console.log('Upcoming') },\n { key: 'Completed', iconName: 'checkCircle', action: () => console.log('Completed') },\n ] as interfaces.ISecondaryMenuItem[]\n },\n {\n name: 'Filters',\n iconName: 'lucide:filter',\n items: [\n { type: 'header', label: 'Priority' },\n { type: 'multiFilter', key: 'Priority', iconName: 'lucide:flag', options: [\n { key: 'high', label: 'High', checked: true, iconName: 'lucide:alertCircle' },\n { key: 'medium', label: 'Medium', checked: true, iconName: 'lucide:minusCircle' },\n { key: 'low', label: 'Low', checked: false, iconName: 'lucide:circle' },\n ], onChange: (keys) => console.log('Priority filter:', keys) },\n { type: 'divider' },\n { type: 'header', label: 'Options' },\n { type: 'filter', key: 'Show Subtasks', iconName: 'lucide:listTree', active: true, onToggle: (active) => console.log('Show subtasks:', active) },\n { type: 'filter', key: 'Show Completed', iconName: 'lucide:checkSquare', active: false, onToggle: (active) => console.log('Show completed:', active) },\n ] as interfaces.ISecondaryMenuItem[]\n },\n {\n name: 'Actions',\n iconName: 'lucide:zap',\n items: [\n { type: 'action', key: 'Add Task', iconName: 'lucide:plus', action: () => alert('Add new task') },\n { type: 'action', key: 'Import Tasks', iconName: 'lucide:upload', action: () => alert('Import tasks') },\n { type: 'divider' },\n { type: 'action', key: 'Clear Completed', iconName: 'lucide:trash2', variant: 'danger', confirmMessage: 'Delete all completed tasks?', action: () => alert('Cleared completed tasks') },\n ] as interfaces.ISecondaryMenuItem[]\n }\n ]\n });\n\n context.appui.setContentTabs([\n { key: 'List', iconName: 'lucide:list', action: () => console.log('List') },\n { key: 'Calendar', iconName: 'lucide:calendar', action: () => console.log('Calendar') },\n ]);\n }\n\n render() {\n return html`\n \n

      Tasks

      \n
      \n
      \n
      \n Review pull request #42\n Today\n High\n
      \n
      \n
      \n Update documentation\n Tomorrow\n Medium\n
      \n
      \n
      \n Write unit tests\n Dec 20\n
      \n
      \n `;\n }\n}\n\nexport const demoFunc = () => {\n // App configuration using the new unified API\n const appConfig: IAppConfig = {\n branding: {\n logoIcon: 'lucide:box',\n logoText: 'Acme App'\n },\n\n appBar: {\n menuItems: [\n {\n name: 'File',\n action: async () => {},\n submenu: [\n { name: 'New Project', shortcut: 'Cmd+N', iconName: 'filePlus', action: async () => console.log('New') },\n { name: 'Open...', shortcut: 'Cmd+O', iconName: 'folderOpen', action: async () => console.log('Open') },\n { name: 'Recent Projects', action: async () => {}, submenu: [\n { name: 'my-app', action: async () => console.log('Open my-app') },\n { name: 'component-lib', action: async () => console.log('Open component-lib') },\n ]},\n { divider: true },\n { name: 'Save All', shortcut: 'Cmd+S', iconName: 'save', action: async () => console.log('Save') },\n ]\n },\n {\n name: 'Edit',\n action: async () => {},\n submenu: [\n { name: 'Undo', shortcut: 'Cmd+Z', iconName: 'undo', action: async () => console.log('Undo') },\n { name: 'Redo', shortcut: 'Cmd+Shift+Z', iconName: 'redo', action: async () => console.log('Redo') },\n { divider: true },\n { name: 'Cut', shortcut: 'Cmd+X', iconName: 'scissors', action: async () => console.log('Cut') },\n { name: 'Copy', shortcut: 'Cmd+C', iconName: 'copy', action: async () => console.log('Copy') },\n { name: 'Paste', shortcut: 'Cmd+V', iconName: 'clipboard', action: async () => console.log('Paste') },\n ]\n },\n {\n name: 'View',\n action: async () => {},\n submenu: [\n { name: 'Toggle Sidebar', shortcut: 'Cmd+B', action: async () => console.log('Toggle sidebar') },\n { name: 'Toggle Activity Log', shortcut: 'Cmd+Shift+A', action: async () => console.log('Toggle activity') },\n ]\n },\n {\n name: 'Help',\n action: async () => {},\n submenu: [\n { name: 'Documentation', iconName: 'book', action: async () => console.log('Docs') },\n { name: 'Keyboard Shortcuts', iconName: 'keyboard', shortcut: 'Cmd+/', action: async () => console.log('Shortcuts') },\n { divider: true },\n { name: 'About', iconName: 'info', action: async () => console.log('About') },\n ]\n }\n ],\n breadcrumbs: 'Dashboard',\n showWindowControls: true,\n showSearch: true,\n user: {\n name: 'Jane Smith',\n email: 'jane.smith@example.com',\n status: 'online'\n },\n profileMenuItems: [\n { name: 'Profile', iconName: 'user', action: async () => console.log('Profile') },\n { name: 'Account Settings', iconName: 'settings', action: async () => console.log('Settings') },\n { divider: true },\n { name: 'Help & Support', iconName: 'helpCircle', action: async () => console.log('Help') },\n { divider: true },\n { name: 'Sign Out', iconName: 'logOut', action: async () => console.log('Sign out') }\n ]\n },\n\n views: [\n {\n id: 'dashboard',\n name: 'Dashboard',\n iconName: 'lucide:home',\n content: 'demo-dashboard-view',\n route: 'dashboard'\n },\n {\n id: 'projects',\n name: 'Projects',\n iconName: 'lucide:folder',\n content: 'demo-projects-view',\n route: 'projects',\n badge: 3\n },\n {\n id: 'tasks',\n name: 'Tasks',\n iconName: 'lucide:checkSquare',\n content: 'demo-tasks-view',\n route: 'tasks',\n badge: 12\n },\n {\n id: 'settings',\n name: 'Settings',\n iconName: 'lucide:settings',\n content: 'demo-settings-view',\n route: 'settings/:section?'\n },\n ],\n\n mainMenu: {\n sections: [\n { name: 'Main', views: ['dashboard'] },\n { name: 'Workspace', views: ['projects', 'tasks'] },\n ],\n bottomItems: ['settings']\n },\n\n defaultView: 'dashboard',\n\n bottomBar: {\n visible: true,\n widgets: [\n {\n id: 'status',\n iconName: 'lucide:activity',\n label: 'System Online',\n status: 'success',\n tooltip: 'All systems operational',\n onClick: () => console.log('Status clicked'),\n },\n {\n id: 'notifications',\n iconName: 'lucide:bell',\n label: '3 notifications',\n status: 'warning',\n tooltip: 'You have unread notifications',\n onClick: () => console.log('Notifications clicked'),\n },\n {\n id: 'version',\n iconName: 'lucide:gitBranch',\n label: 'v1.2.3',\n position: 'right',\n tooltip: 'Current version',\n },\n ],\n actions: [\n {\n id: 'terminal',\n iconName: 'lucide:terminal',\n tooltip: 'Open Terminal',\n position: 'right',\n onClick: () => console.log('Terminal clicked'),\n },\n ],\n },\n\n onViewChange: (viewId, view) => {\n console.log(`View changed to: ${viewId} (${view.name})`);\n },\n\n onSearch: (query) => {\n console.log('Search query:', query);\n }\n };\n\n // Use a container element to properly initialize the demo\n const containerElement = document.createElement('div');\n containerElement.className = 'demo-container';\n containerElement.style.cssText = 'position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden;';\n\n const appuiElement = document.createElement('dees-appui') as DeesAppui;\n containerElement.appendChild(appuiElement);\n\n // Initialize after element is connected\n setTimeout(async () => {\n await appuiElement.updateComplete;\n\n // Configure using the unified API\n appuiElement.configure(appConfig);\n\n // Add demo activity entries\n setTimeout(() => {\n appuiElement.activityLog.addMany([\n {\n type: 'login',\n user: 'Jane Smith',\n message: 'logged in from Chrome on macOS'\n },\n {\n type: 'create',\n user: 'Jane Smith',\n message: 'created project \"Frontend App\"'\n },\n {\n type: 'update',\n user: 'John Doe',\n message: 'updated API documentation'\n },\n {\n type: 'view',\n user: 'Jane Smith',\n message: 'viewed dashboard analytics'\n },\n {\n type: 'delete',\n user: 'Admin',\n message: 'removed deprecated endpoint'\n },\n {\n type: 'custom',\n user: 'System',\n message: 'scheduled backup completed',\n iconName: 'lucide:database'\n }\n ]);\n }, 500);\n\n // Subscribe to view changes\n appuiElement.viewChanged$.subscribe((event) => {\n console.log('View changed event:', event);\n // Update breadcrumbs based on view\n appuiElement.setBreadcrumbs(event.view.name);\n });\n\n // Subscribe to lifecycle events\n appuiElement.viewLifecycle$.subscribe((event) => {\n console.log('Lifecycle event:', event.type, event.viewId);\n });\n\n // Demo: Dynamically update a badge after 5 seconds\n setTimeout(() => {\n appuiElement.setMainMenuBadge('tasks', 15);\n appuiElement.activityLog.add({\n type: 'update',\n user: 'System',\n message: 'new tasks added'\n });\n }, 5000);\n }, 0);\n\n return html`\n \n ${containerElement}\n \n `;\n};\n", "import { html, render, type TemplateResult } from '@design.estate/dees-element';\nimport type {\n IViewDefinition,\n IViewActivationContext,\n IViewLifecycle,\n TDeesAppui\n} from '../../interfaces/appconfig.js';\n\n/**\n * Registry for managing views and their lifecycle\n *\n * Key features:\n * - View caching with hide/show pattern (not destroy/create)\n * - Async content loading support (lazy loading)\n * - View lifecycle hooks (onActivate, onDeactivate, canDeactivate)\n */\nexport class ViewRegistry {\n private views: Map = new Map();\n private instances: Map = new Map();\n private currentViewId: string | null = null;\n private appui: TDeesAppui | null = null;\n\n /**\n * Set the appui reference for view activation context\n */\n public setAppuiRef(appui: TDeesAppui): void {\n this.appui = appui;\n }\n\n /**\n * Register a single view\n */\n public register(view: IViewDefinition): void {\n if (this.views.has(view.id)) {\n console.warn(`View with id \"${view.id}\" already registered. Overwriting.`);\n }\n this.views.set(view.id, view);\n }\n\n /**\n * Register multiple views\n */\n public registerAll(views: IViewDefinition[]): void {\n views.forEach((view) => this.register(view));\n }\n\n /**\n * Get a view definition by ID\n */\n public get(viewId: string): IViewDefinition | undefined {\n return this.views.get(viewId);\n }\n\n /**\n * Get all registered view IDs\n */\n public getViewIds(): string[] {\n return Array.from(this.views.keys());\n }\n\n /**\n * Get all views\n */\n public getAll(): IViewDefinition[] {\n return Array.from(this.views.values());\n }\n\n /**\n * Get route for a view\n */\n public getRoute(viewId: string): string {\n const view = this.views.get(viewId);\n return view?.route || view?.id || '';\n }\n\n /**\n * Find view by route (supports parameterized routes like 'settings/:section')\n */\n public findByRoute(route: string): { view: IViewDefinition; params: Record } | undefined {\n for (const view of this.views.values()) {\n const viewRoute = view.route || view.id;\n const params = this.matchRoute(viewRoute, route);\n if (params !== null) {\n return { view, params };\n }\n }\n return undefined;\n }\n\n /**\n * Match a route pattern against an actual route\n * Returns params if matched, null otherwise\n */\n private matchRoute(pattern: string, route: string): Record | null {\n const patternParts = pattern.split('/');\n const routeParts = route.split('/');\n\n // Check for optional trailing param (ends with ?)\n const hasOptionalParam = patternParts.length > 0 &&\n patternParts[patternParts.length - 1].endsWith('?');\n\n if (hasOptionalParam) {\n // Allow route to be shorter by 1\n if (routeParts.length < patternParts.length - 1 || routeParts.length > patternParts.length) {\n return null;\n }\n } else if (patternParts.length !== routeParts.length) {\n return null;\n }\n\n const params: Record = {};\n\n for (let i = 0; i < patternParts.length; i++) {\n let part = patternParts[i];\n const isOptional = part.endsWith('?');\n if (isOptional) {\n part = part.slice(0, -1);\n }\n\n if (part.startsWith(':')) {\n // This is a parameter\n const paramName = part.slice(1);\n if (routeParts[i] !== undefined) {\n params[paramName] = routeParts[i];\n } else if (!isOptional) {\n return null;\n }\n } else if (routeParts[i] !== part) {\n return null;\n }\n }\n\n return params;\n }\n\n /**\n * Check if navigation away from current view is allowed\n */\n public async canLeaveCurrentView(): Promise {\n if (!this.currentViewId) return true;\n\n const instance = this.instances.get(this.currentViewId);\n if (!instance) return true;\n\n const lifecycle = instance as unknown as IViewLifecycle;\n if (typeof lifecycle.canDeactivate === 'function') {\n return await lifecycle.canDeactivate();\n }\n\n return true;\n }\n\n /**\n * Activate a view - handles caching, lifecycle, and rendering\n */\n public async activateView(\n viewId: string,\n container: HTMLElement,\n params?: Record\n ): Promise {\n const view = this.views.get(viewId);\n if (!view) {\n console.error(`View \"${viewId}\" not found in registry`);\n return null;\n }\n\n // Check if caching is enabled for this view (default: true)\n const shouldCache = view.cache !== false;\n\n // Deactivate current view\n if (this.currentViewId && this.currentViewId !== viewId) {\n await this.deactivateView(this.currentViewId);\n }\n\n // Check for cached instance\n let element = shouldCache ? this.instances.get(viewId) : undefined;\n\n if (element) {\n // Reuse cached instance - just show it\n element.style.display = '';\n } else {\n // Create new instance\n element = await this.createViewElement(view);\n if (!element) {\n console.error(`Failed to create element for view \"${viewId}\"`);\n return null;\n }\n\n // Add to container\n container.appendChild(element);\n\n // Cache if enabled\n if (shouldCache) {\n this.instances.set(viewId, element);\n }\n }\n\n this.currentViewId = viewId;\n\n // Call onActivate lifecycle hook\n await this.callOnActivate(element, viewId, params);\n\n return element;\n }\n\n /**\n * Deactivate a view (hide and call lifecycle hook)\n */\n private async deactivateView(viewId: string): Promise {\n const instance = this.instances.get(viewId);\n if (!instance) return;\n\n // Call onDeactivate lifecycle hook\n const lifecycle = instance as unknown as IViewLifecycle;\n if (typeof lifecycle.onDeactivate === 'function') {\n await lifecycle.onDeactivate();\n }\n\n // Hide the element\n instance.style.display = 'none';\n }\n\n /**\n * Create a view element from its definition (supports async content)\n */\n private async createViewElement(view: IViewDefinition): Promise {\n let content = view.content;\n\n // Handle async content (lazy loading)\n if (typeof content === 'function' &&\n !(content.prototype instanceof HTMLElement) &&\n content.constructor.name === 'AsyncFunction') {\n try {\n content = await (content as () => Promise HTMLElement) | (() => TemplateResult)>)();\n } catch (error) {\n console.error(`Failed to load async content for view \"${view.id}\":`, error);\n return null;\n }\n }\n\n let element: HTMLElement;\n\n if (typeof content === 'string') {\n // Tag name string\n element = document.createElement(content);\n } else if (typeof content === 'function') {\n // Check if it's a class constructor or template function\n if (content.prototype instanceof HTMLElement) {\n // Element class constructor\n element = new (content as new () => HTMLElement)();\n } else {\n // Template function - wrap in a container and use Lit's render\n const wrapper = document.createElement('div');\n wrapper.className = 'view-content-wrapper';\n wrapper.style.cssText = 'display: contents;';\n const template = (content as () => TemplateResult)();\n render(template, wrapper);\n element = wrapper;\n }\n } else {\n console.error(`Invalid content type for view \"${view.id}\"`);\n return null;\n }\n\n // Add view ID as data attribute for debugging\n element.dataset.viewId = view.id;\n\n return element;\n }\n\n /**\n * Call onActivate lifecycle hook on a view element\n */\n private async callOnActivate(\n element: HTMLElement,\n viewId: string,\n params?: Record\n ): Promise {\n const lifecycle = element as unknown as IViewLifecycle;\n if (typeof lifecycle.onActivate === 'function') {\n const context: IViewActivationContext = {\n appui: this.appui!,\n viewId,\n params,\n };\n await lifecycle.onActivate(context);\n }\n }\n\n /**\n * Legacy method - renders view without caching\n * @deprecated Use activateView instead\n */\n public renderView(viewId: string, container: HTMLElement): HTMLElement | null {\n const view = this.views.get(viewId);\n if (!view) {\n console.error(`View \"${viewId}\" not found in registry`);\n return null;\n }\n\n // For legacy compatibility, clear container\n container.innerHTML = '';\n\n let element: HTMLElement;\n const content = view.content;\n\n if (typeof content === 'string') {\n element = document.createElement(content);\n } else if (typeof content === 'function') {\n if ((content as any).prototype instanceof HTMLElement) {\n element = new (content as new () => HTMLElement)();\n } else {\n const wrapper = document.createElement('div');\n wrapper.className = 'view-content-wrapper';\n wrapper.style.cssText = 'display: contents;';\n const template = (content as () => TemplateResult)();\n render(template, wrapper);\n element = wrapper;\n }\n } else {\n console.error(`Invalid content type for view \"${viewId}\"`);\n return null;\n }\n\n container.appendChild(element);\n this.instances.set(viewId, element);\n this.currentViewId = viewId;\n\n return element;\n }\n\n /**\n * Get currently active view ID\n */\n public getCurrentViewId(): string | null {\n return this.currentViewId;\n }\n\n /**\n * Get cached instance of a view\n */\n public getInstance(viewId: string): HTMLElement | undefined {\n return this.instances.get(viewId);\n }\n\n /**\n * Clear a specific cached instance\n */\n public clearInstance(viewId: string): void {\n const instance = this.instances.get(viewId);\n if (instance && instance.parentNode) {\n instance.parentNode.removeChild(instance);\n }\n this.instances.delete(viewId);\n if (this.currentViewId === viewId) {\n this.currentViewId = null;\n }\n }\n\n /**\n * Clear all instances\n */\n public clearInstances(): void {\n for (const [viewId, instance] of this.instances) {\n if (instance.parentNode) {\n instance.parentNode.removeChild(instance);\n }\n }\n this.instances.clear();\n this.currentViewId = null;\n }\n\n /**\n * Unregister a view\n */\n public unregister(viewId: string): boolean {\n this.clearInstance(viewId);\n return this.views.delete(viewId);\n }\n\n /**\n * Clear the registry\n */\n public clear(): void {\n this.views.clear();\n this.clearInstances();\n }\n\n /**\n * Check if a view is registered\n */\n public has(viewId: string): boolean {\n return this.views.has(viewId);\n }\n\n /**\n * Get the number of registered views\n */\n public get size(): number {\n return this.views.size;\n }\n}\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
      \n console.log('Dashboard') },\n { key: 'Inbox', iconName: 'lucide:inbox', action: () => console.log('Inbox') },\n ]\n },\n {\n name: 'Workspace',\n tabs: [\n { key: 'Projects', iconName: 'lucide:folder', action: () => console.log('Projects') },\n { key: 'Tasks', iconName: 'lucide:checkSquare', action: () => console.log('Tasks') },\n { key: 'Documents', iconName: 'lucide:fileText', action: () => console.log('Documents') },\n ]\n },\n {\n name: 'Analytics',\n tabs: [\n { key: 'Reports', iconName: 'lucide:barChart3', action: () => console.log('Reports') },\n { key: 'Insights', iconName: 'lucide:lightbulb', action: () => console.log('Insights') },\n ]\n }\n ]}\n .bottomTabs=${[\n { key: 'Settings', iconName: 'lucide:settings', action: () => console.log('Settings') },\n { key: 'Help', iconName: 'lucide:helpCircle', action: () => console.log('Help') },\n ]}\n >\n
      \n
      \n`;\n", "import * as plugins from '../../00plugins.js';\nimport * as interfaces from '../../interfaces/index.js';\nimport { zIndexLayers } from '../../00zindex.js';\n\nimport {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { demoFunc } from './dees-appui-mainmenu.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n/**\n * the most left menu\n * usually used as organization selector\n */\n@customElement('dees-appui-mainmenu')\nexport class DeesAppuiMainmenu extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE\n\n // Logo properties\n @property({ type: String })\n accessor logoIcon: string = '';\n\n @property({ type: String })\n accessor logoText: string = '';\n\n // Menu groups (new way)\n @property({ type: Array })\n accessor menuGroups: interfaces.IMenuGroup[] = [];\n\n // Bottom tabs (pinned to bottom)\n @property({ type: Array })\n accessor bottomTabs: interfaces.IMenuItem[] = [];\n\n // Legacy tabs property (for backward compatibility)\n @property({ type: Array })\n accessor tabs: interfaces.IMenuItem[] = [];\n\n @property()\n accessor selectedTab: interfaces.IMenuItem;\n\n @property({ type: Boolean, reflect: true })\n accessor collapsed: boolean = false;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n --menu-width-expanded: 200px;\n --menu-width-collapsed: 56px;\n --tooltip-bg: ${cssManager.bdTheme('#18181b', '#fafafa')};\n --tooltip-fg: ${cssManager.bdTheme('#fafafa', '#18181b')};\n position: relative;\n display: block;\n height: 100%;\n }\n\n .mainContainer {\n color: ${cssManager.bdTheme('#666', '#ccc')};\n z-index: ${zIndexLayers.fixed.appBar};\n display: flex;\n flex-direction: column;\n position: relative;\n width: var(--menu-width-expanded);\n height: 100%;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n user-select: none;\n border-right: 1px solid ${cssManager.bdTheme('#e5e5e5', '#1a1a1a')};\n font-family: 'Geist Sans', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\n transition: width 0.25s ease;\n }\n\n :host([collapsed]) .mainContainer {\n width: var(--menu-width-collapsed);\n }\n\n /* Floating collapse toggle button */\n .collapse-toggle {\n position: absolute;\n right: -12px;\n top: 24px;\n transform: translateY(-50%);\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('#ffffff', '#27272a')};\n border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#3f3f46')};\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n cursor: pointer;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#737373', '#a1a1aa')};\n opacity: 0;\n transition: opacity 0.2s ease, background 0.15s ease;\n padding: 0;\n }\n\n .collapse-toggle:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#3f3f46')};\n color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n }\n\n :host(:hover) .collapse-toggle {\n opacity: 1;\n }\n\n .collapse-toggle dees-icon {\n font-size: 14px;\n }\n\n /* Logo Section */\n .logoSection {\n display: flex;\n align-items: center;\n gap: 10px;\n height: 48px;\n padding: 0 14px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e5e5', '#1a1a1a')};\n flex-shrink: 0;\n box-sizing: border-box;\n }\n\n .logoSection .logoIcon {\n font-size: 22px;\n color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n flex-shrink: 0;\n }\n\n .logoSection .logoText {\n flex: 1;\n font-size: 15px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity 0.2s ease, width 0.25s ease;\n }\n\n :host([collapsed]) .logoSection {\n justify-content: center;\n padding: 0;\n gap: 0;\n }\n\n :host([collapsed]) .logoSection .logoText {\n display: none;\n }\n\n /* Middle Section (scrollable) */\n .menuSection {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n padding: 8px 0;\n }\n\n .menuSection::-webkit-scrollbar {\n width: 6px;\n }\n\n .menuSection::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .menuSection::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.15)', 'rgba(255, 255, 255, 0.15)')};\n border-radius: 3px;\n }\n\n .menuSection::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.25)', 'rgba(255, 255, 255, 0.25)')};\n }\n\n /* Menu Group */\n .menuGroup {\n padding: 0 8px;\n margin-bottom: 8px;\n }\n\n .menuGroup:last-child {\n margin-bottom: 0;\n }\n\n .groupHeader {\n padding: 8px 12px 6px;\n font-size: 11px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#737373', '#737373')};\n text-transform: uppercase;\n letter-spacing: 0.5px;\n white-space: nowrap;\n overflow: hidden;\n transition: opacity 0.2s ease, max-height 0.25s ease;\n max-height: 30px;\n }\n\n :host([collapsed]) .groupHeader {\n opacity: 0;\n max-height: 0;\n padding: 0;\n margin: 0;\n }\n\n .groupTabs {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n :host([collapsed]) .menuGroup {\n padding: 0 4px;\n }\n\n /* Tab Item */\n .tab {\n position: relative;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n font-size: 13px;\n font-weight: 500;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('#525252', '#a3a3a3')};\n }\n\n .tab:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.06)')};\n color: ${cssManager.bdTheme('#262626', '#e5e5e5')};\n }\n\n .tab:active {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.08)')};\n }\n\n .tab.selectedTab {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.08)')};\n color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n }\n\n .tab.selectedTab::before {\n content: '';\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3px;\n height: 16px;\n background: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n border-radius: 0 2px 2px 0;\n }\n\n .tab dees-icon {\n font-size: 18px;\n opacity: 0.85;\n flex-shrink: 0;\n }\n\n .tab.selectedTab dees-icon {\n opacity: 1;\n }\n\n .tab .tabLabel {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity 0.2s ease, width 0.25s ease;\n }\n\n /* Collapsed tab styles */\n :host([collapsed]) .tab {\n justify-content: center;\n padding: 10px;\n gap: 0;\n }\n\n :host([collapsed]) .tab .tabLabel {\n opacity: 0;\n width: 0;\n position: absolute;\n }\n\n :host([collapsed]) .tab.selectedTab::before {\n left: -4px;\n }\n\n /* Tooltip for collapsed state */\n .tab-tooltip {\n position: absolute;\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-left: 12px;\n padding: 6px 12px;\n background: var(--tooltip-bg);\n color: var(--tooltip-fg);\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease;\n z-index: 1000;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n }\n\n .tab-tooltip::before {\n content: '';\n position: absolute;\n left: -4px;\n top: 50%;\n transform: translateY(-50%);\n border: 4px solid transparent;\n border-right-color: var(--tooltip-bg);\n }\n\n :host([collapsed]) .tab:hover .tab-tooltip {\n opacity: 1;\n transition-delay: 1s;\n }\n\n /* Badge styles */\n .badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 6px;\n font-size: 11px;\n font-weight: 600;\n border-radius: 9px;\n margin-left: auto;\n }\n\n .badge.default {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#3f3f46', '#a1a1aa')};\n }\n\n .badge.success {\n background: ${cssManager.bdTheme('#dcfce7', '#14532d')};\n color: ${cssManager.bdTheme('#166534', '#4ade80')};\n }\n\n .badge.warning {\n background: ${cssManager.bdTheme('#fef3c7', '#451a03')};\n color: ${cssManager.bdTheme('#92400e', '#fbbf24')};\n }\n\n .badge.error {\n background: ${cssManager.bdTheme('#fee2e2', '#450a0a')};\n color: ${cssManager.bdTheme('#991b1b', '#f87171')};\n }\n\n :host([collapsed]) .badge {\n display: none;\n }\n\n /* Bottom Section */\n .bottomSection {\n flex-shrink: 0;\n padding: 8px;\n border-top: 1px solid ${cssManager.bdTheme('#e5e5e5', '#1a1a1a')};\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n :host([collapsed]) .bottomSection {\n padding: 8px 4px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n // Get all tabs for selection (from groups or legacy tabs)\n const allTabs = this.getAllTabs();\n\n return html`\n
      {\n DeesContextmenu.openContextMenuWithOptions(eventArg, [{\n name: 'app settings',\n action: async () => {},\n iconName: 'gear',\n }])\n }}>\n ${this.logoIcon || this.logoText ? html`\n
      \n ${this.logoIcon ? html`` : ''}\n ${this.logoText ? html`${this.logoText}` : ''}\n
      \n ` : ''}\n\n
      \n ${this.menuGroups.length > 0 ? this.renderMenuGroups() : this.renderLegacyTabs()}\n
      \n\n ${this.bottomTabs.length > 0 ? html`\n
      \n ${this.bottomTabs.map((tabArg) => this.renderTab(tabArg))}\n
      \n ` : ''}\n
      \n \n `;\n }\n\n private renderMenuGroups(): TemplateResult {\n return html`\n ${this.menuGroups.map((group) => html`\n
      \n ${group.name ? html`
      ${group.name}
      ` : ''}\n
      \n ${group.items.map((tabArg) => this.renderTab(tabArg))}\n
      \n
      \n `)}\n `;\n }\n\n private renderLegacyTabs(): TemplateResult {\n return html`\n
      \n
      \n ${this.tabs.map((tabArg) => this.renderTab(tabArg))}\n
      \n
      \n `;\n }\n\n private renderTab(tabArg: interfaces.IMenuItem): TemplateResult {\n return html`\n {\n this.updateTab(tabArg);\n }}\"\n >\n \n ${tabArg.key}\n ${tabArg.badge !== undefined ? html`\n ${tabArg.badge}\n ` : ''}\n ${tabArg.key}\n \n `;\n }\n\n private getAllTabs(): interfaces.IMenuItem[] {\n if (this.menuGroups.length > 0) {\n const groupTabs = this.menuGroups.flatMap(group => group.items);\n return [...groupTabs, ...this.bottomTabs];\n }\n return [...this.tabs, ...this.bottomTabs];\n }\n\n updateTab(tabArg: interfaces.IMenuItem) {\n this.selectedTab = tabArg;\n this.selectedTab.action();\n\n // Emit tab-select event\n this.dispatchEvent(new CustomEvent('tab-select', {\n detail: { tab: tabArg },\n bubbles: true,\n composed: true\n }));\n }\n\n firstUpdated() {\n const allTabs = this.getAllTabs();\n if (allTabs.length > 0) {\n this.updateTab(allTabs[0]);\n }\n }\n\n public toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n this.dispatchEvent(new CustomEvent('collapse-change', {\n detail: { collapsed: this.collapsed },\n bubbles: true,\n composed: true\n }));\n }\n}\n", "import { html } from '@design.estate/dees-element';\nimport type * as interfaces from '../../interfaces/index.js';\n\nexport const demoFunc = () => html`\n \n
      \n console.log('Dashboard clicked'), badge: 3, badgeVariant: 'warning' },\n { key: 'Projects', iconName: 'lucide:folder', action: () => console.log('Projects clicked'), badge: 'new', badgeVariant: 'success' },\n { key: 'Analytics', iconName: 'lucide:barChart2', action: () => console.log('Analytics clicked') },\n ] as interfaces.ISecondaryMenuItemTab[]\n },\n // Group 2: Actions\n {\n name: 'Actions',\n iconName: 'lucide:zap',\n items: [\n { type: 'action', key: 'Create New', iconName: 'lucide:plus', action: () => alert('Create New clicked!') },\n { type: 'action', key: 'Import Data', iconName: 'lucide:upload', action: () => alert('Import Data clicked!') },\n { type: 'divider' },\n { type: 'action', key: 'Delete All', iconName: 'lucide:trash2', variant: 'danger', confirmMessage: 'Are you sure you want to delete all items?', action: () => alert('Deleted!') },\n ] as interfaces.ISecondaryMenuItem[]\n },\n // Group 3: Filters\n {\n name: 'Filters',\n iconName: 'lucide:filter',\n items: [\n { type: 'header', label: 'Status' },\n { type: 'filter', key: 'Show Active', iconName: 'lucide:checkCircle', active: true, onToggle: (active) => console.log('Show Active:', active) },\n { type: 'filter', key: 'Show Archived', iconName: 'lucide:archive', active: false, onToggle: (active) => console.log('Show Archived:', active) },\n { type: 'divider' },\n { type: 'multiFilter', key: 'Categories', iconName: 'lucide:tag', collapsed: false, options: [\n { key: 'frontend', label: 'Frontend', checked: true, iconName: 'lucide:monitor' },\n { key: 'backend', label: 'Backend', checked: true, iconName: 'lucide:server' },\n { key: 'devops', label: 'DevOps', checked: false, iconName: 'lucide:cloud' },\n { key: 'design', label: 'Design', checked: false, iconName: 'lucide:palette' },\n ], onChange: (keys) => console.log('Selected categories:', keys) },\n ] as interfaces.ISecondaryMenuItem[]\n },\n // Group 4: Links and misc\n {\n name: 'Resources',\n iconName: 'lucide:bookOpen',\n collapsed: true,\n items: [\n { type: 'header', label: 'Documentation' },\n { type: 'link', key: 'API Reference', iconName: 'lucide:fileText', href: 'https://api.example.com/docs' },\n { type: 'link', key: 'User Guide', iconName: 'lucide:book', href: 'https://docs.example.com/guide' },\n { type: 'divider' },\n { type: 'header', label: 'Support' },\n { type: 'link', key: 'Help Center', iconName: 'lucide:helpCircle', href: '/help', external: false },\n { type: 'link', key: 'GitHub Issues', iconName: 'lucide:github', href: 'https://github.com/example/issues' },\n ] as interfaces.ISecondaryMenuItem[]\n }\n ] as interfaces.ISecondaryMenuGroup[]}\n @item-select=${(e: CustomEvent) => console.log('Tab selected:', e.detail)}\n @action-click=${(e: CustomEvent) => console.log('Action clicked:', e.detail)}\n @filter-toggle=${(e: CustomEvent) => console.log('Filter toggled:', e.detail)}\n @multifilter-change=${(e: CustomEvent) => console.log('Multi-filter changed:', e.detail)}\n @link-click=${(e: CustomEvent) => console.log('Link clicked:', e.detail)}\n >\n
      \n

      Secondary Menu Demo

      \n

      This demo showcases all 8 item types:

      \n
        \n
      • tab - Selectable items (Navigation group)
      • \n
      • action - Blue actions (Actions group)
      • \n
      • action with variant: 'danger' - Red danger action
      • \n
      • filter - Checkbox toggles (Filters group)
      • \n
      • multiFilter - Collapsible multi-select (Categories)
      • \n
      • divider - Visual separators
      • \n
      • header - Section labels
      • \n
      • link - External/internal links (Resources group)
      • \n
      \n

      Try the collapse toggle on the left edge!

      \n
      \n
      \n`;\n", "import * as plugins from '../../00plugins.js';\nimport * as interfaces from '../../interfaces/index.js';\n\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\nimport {\n DeesElement,\n type TemplateResult,\n property,\n state,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { demoFunc } from './dees-appui-secondarymenu.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n/**\n * Secondary navigation menu for sub-navigation within MainMenu views\n *\n * Supports 8 item types:\n * 1. Tab - selectable, stays highlighted (default)\n * 2. Action - executes without selection (blue)\n * 3. Danger Action - red styling with optional confirmation\n * 4. Filter - checkbox toggle\n * 5. Multi-Filter - collapsible box with multiple checkboxes\n * 6. Divider - visual separator\n * 7. Header - non-interactive label\n * 8. Link - opens URL\n */\n@customElement('dees-appui-secondarymenu')\nexport class DeesAppuiSecondarymenu extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE\n\n /** Dynamic heading - typically shows the selected MainMenu item */\n @property({ type: String })\n accessor heading: string = 'Menu';\n\n /** Grouped items with collapse support - supports new ISecondaryMenuGroup */\n @property({ type: Array })\n accessor groups: interfaces.ISecondaryMenuGroup[] = [];\n\n /** Legacy flat list support for backward compatibility */\n @property({ type: Array })\n accessor selectionOptions: (interfaces.IMenuItem | { divider: true })[] = [];\n\n /** Currently selected tab item */\n @property({ type: Object })\n accessor selectedItem: interfaces.ISecondaryMenuItemTab | null = null;\n\n /** Internal state for collapsed groups */\n @state()\n accessor collapsedGroups: Set = new Set();\n\n /** Internal state for collapsed multi-filters */\n @state()\n accessor collapsedMultiFilters: Set = new Set();\n\n /** Render counter to force re-renders when items are mutated */\n @state()\n private accessor renderCounter: number = 0;\n\n /** Horizontal collapse state */\n @property({ type: Boolean, reflect: true })\n accessor collapsed: boolean = false;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n --sidebar-width-expanded: 240px;\n --sidebar-width-collapsed: 56px;\n --sidebar-bg: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n --sidebar-fg: ${cssManager.bdTheme('#525252', '#a3a3a3')};\n --sidebar-fg-muted: ${cssManager.bdTheme('#737373', '#737373')};\n --sidebar-fg-active: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n --sidebar-border: ${cssManager.bdTheme('#e5e5e5', '#1a1a1a')};\n --sidebar-hover: ${cssManager.bdTheme('rgba(0, 0, 0, 0.04)', 'rgba(255, 255, 255, 0.06)')};\n --sidebar-active: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.08)')};\n --sidebar-accent: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n --tooltip-bg: ${cssManager.bdTheme('#18181b', '#fafafa')};\n --tooltip-fg: ${cssManager.bdTheme('#fafafa', '#18181b')};\n\n /* Badge colors */\n --badge-default-bg: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n --badge-default-fg: ${cssManager.bdTheme('#3f3f46', '#a1a1aa')};\n --badge-success-bg: ${cssManager.bdTheme('#dcfce7', '#14532d')};\n --badge-success-fg: ${cssManager.bdTheme('#166534', '#4ade80')};\n --badge-warning-bg: ${cssManager.bdTheme('#fef3c7', '#451a03')};\n --badge-warning-fg: ${cssManager.bdTheme('#92400e', '#fbbf24')};\n --badge-error-bg: ${cssManager.bdTheme('#fee2e2', '#450a0a')};\n --badge-error-fg: ${cssManager.bdTheme('#991b1b', '#f87171')};\n\n /* Action colors */\n --action-primary: ${cssManager.bdTheme('#2563eb', '#3b82f6')};\n --action-primary-hover: ${cssManager.bdTheme('#1d4ed8', '#60a5fa')};\n --action-danger: ${cssManager.bdTheme('#dc2626', '#ef4444')};\n --action-danger-hover: ${cssManager.bdTheme('#b91c1c', '#f87171')};\n\n position: relative;\n display: block;\n height: 100%;\n width: var(--sidebar-width-expanded);\n background: var(--sidebar-bg);\n border-right: 1px solid var(--sidebar-border);\n font-family: 'Geist Sans', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\n user-select: none;\n transition: width 0.25s ease;\n }\n\n :host([collapsed]) {\n width: var(--sidebar-width-collapsed);\n }\n\n .maincontainer {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n position: relative;\n }\n\n /* Floating collapse toggle button */\n .collapse-toggle {\n position: absolute;\n right: -12px;\n top: 24px;\n transform: translateY(-50%);\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('#ffffff', '#27272a')};\n border: 1px solid ${cssManager.bdTheme('#e5e5e5', '#3f3f46')};\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n cursor: pointer;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#737373', '#a1a1aa')};\n opacity: 0;\n transition: opacity 0.2s ease, background 0.15s ease;\n padding: 0;\n }\n\n .collapse-toggle:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#3f3f46')};\n color: ${cssManager.bdTheme('#0a0a0a', '#fafafa')};\n }\n\n :host(:hover) .collapse-toggle {\n opacity: 1;\n }\n\n .collapse-toggle dees-icon {\n font-size: 14px;\n }\n\n /* Header Section */\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 48px;\n padding: 0 16px;\n border-bottom: 1px solid var(--sidebar-border);\n flex-shrink: 0;\n box-sizing: border-box;\n }\n\n .header .heading {\n flex: 1;\n font-size: 14px;\n font-weight: 600;\n color: var(--sidebar-fg-active);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity 0.2s ease, width 0.25s ease;\n }\n\n :host([collapsed]) .header {\n justify-content: center;\n padding: 0 8px;\n }\n\n :host([collapsed]) .header .heading {\n opacity: 0;\n width: 0;\n overflow: hidden;\n }\n\n /* Scrollable Menu Section */\n .menuSection {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n padding: 8px 0;\n }\n\n .menuSection::-webkit-scrollbar {\n width: 6px;\n }\n\n .menuSection::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .menuSection::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.15)', 'rgba(255, 255, 255, 0.15)')};\n border-radius: 3px;\n }\n\n .menuSection::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.25)', 'rgba(255, 255, 255, 0.25)')};\n }\n\n /* Menu Group */\n .menuGroup {\n padding: 0 8px;\n margin-bottom: 4px;\n }\n\n :host([collapsed]) .menuGroup {\n padding: 0 4px;\n }\n\n .groupHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s ease, opacity 0.2s ease, max-height 0.25s ease;\n max-height: 40px;\n }\n\n .groupHeader:hover {\n border: 1px solid ${cssManager.bdTheme('rgba(140, 120, 100, 0.06)', 'rgba(180, 160, 140, 0.08)')};\n padding: 7px 11px;\n }\n\n .groupHeader:not(.collapsed) {\n background: ${cssManager.bdTheme('rgba(140, 120, 100, 0.06)', 'rgba(180, 160, 140, 0.08)')};\n border: none;\n padding: 8px 12px;\n }\n\n .groupHeader .groupTitle {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#78716c', '#b5a99a')};\n text-transform: uppercase;\n letter-spacing: 0.5px;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .groupHeader .groupTitle dees-icon {\n font-size: 16px;\n color: ${cssManager.bdTheme('#78716c', '#b5a99a')};\n }\n\n .groupHeader .chevron {\n font-size: 12px;\n transition: transform 0.2s ease;\n color: ${cssManager.bdTheme('#78716c', '#b5a99a')};\n }\n\n .groupHeader.collapsed .chevron {\n transform: rotate(-90deg);\n }\n\n /* Hide group headers when horizontally collapsed */\n :host([collapsed]) .groupHeader {\n opacity: 0;\n max-height: 0;\n padding: 0;\n margin: 0;\n pointer-events: none;\n }\n\n /* Group Items Container */\n .groupItems {\n overflow: hidden;\n transition: max-height 0.25s ease, opacity 0.2s ease, margin 0.25s ease;\n max-height: 1000px;\n opacity: 1;\n margin-bottom: 12px;\n }\n\n .groupItems.collapsed {\n max-height: 0;\n opacity: 0;\n margin-bottom: 0;\n }\n\n /* Always show items when horizontally collapsed (regardless of group collapse state) */\n :host([collapsed]) .groupItems {\n max-height: none;\n opacity: 1;\n }\n\n /* Menu Item Base */\n .menuItem {\n position: relative;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 12px;\n margin: 2px 0;\n font-size: 13px;\n font-weight: 450;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s ease;\n color: var(--sidebar-fg);\n }\n\n .menuItem:hover {\n background: var(--sidebar-hover);\n color: var(--sidebar-fg-active);\n }\n\n .menuItem:active {\n background: var(--sidebar-active);\n }\n\n .menuItem.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .menuItem.selected {\n background: var(--sidebar-active);\n color: var(--sidebar-fg-active);\n font-weight: 500;\n }\n\n .menuItem.selected::before {\n content: '';\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3px;\n height: 16px;\n background: var(--sidebar-accent);\n border-radius: 0 2px 2px 0;\n }\n\n .menuItem dees-icon {\n font-size: 16px;\n opacity: 0.7;\n flex-shrink: 0;\n }\n\n .menuItem.selected dees-icon {\n opacity: 1;\n }\n\n .menuItem .itemLabel {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity 0.2s ease, width 0.25s ease;\n }\n\n /* Action Item Styles */\n .menuItem.action-primary {\n color: var(--action-primary);\n }\n\n .menuItem.action-primary:hover {\n color: var(--action-primary-hover);\n background: ${cssManager.bdTheme('rgba(37, 99, 235, 0.08)', 'rgba(59, 130, 246, 0.12)')};\n }\n\n .menuItem.action-primary dees-icon {\n opacity: 1;\n }\n\n .menuItem.action-danger {\n color: var(--action-danger);\n }\n\n .menuItem.action-danger:hover {\n color: var(--action-danger-hover);\n background: ${cssManager.bdTheme('rgba(220, 38, 38, 0.08)', 'rgba(239, 68, 68, 0.12)')};\n }\n\n .menuItem.action-danger dees-icon {\n opacity: 1;\n }\n\n /* Filter Item Styles */\n .menuItem.filter {\n justify-content: space-between;\n }\n\n .menuItem.filter .filter-checkbox {\n width: 16px;\n height: 16px;\n border: 2px solid ${cssManager.bdTheme('#d4d4d4', '#525252')};\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .menuItem.filter .filter-checkbox.checked {\n background: var(--sidebar-accent);\n border-color: var(--sidebar-accent);\n }\n\n .menuItem.filter .filter-checkbox dees-icon {\n font-size: 12px;\n color: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n opacity: 1;\n }\n\n .menuItem.filter.active {\n color: var(--sidebar-fg-active);\n }\n\n /* Multi-Filter Container */\n .multiFilter {\n margin: 4px 0;\n border: 1px solid var(--sidebar-border);\n border-radius: 8px;\n overflow: hidden;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.02)', 'rgba(255, 255, 255, 0.02)')};\n }\n\n .multiFilter-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .multiFilter-header:hover {\n background: var(--sidebar-hover);\n }\n\n .multiFilter-header .multiFilter-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--sidebar-fg-active);\n }\n\n .multiFilter-header .multiFilter-title dees-icon {\n font-size: 16px;\n opacity: 0.7;\n }\n\n .multiFilter-header .multiFilter-count {\n font-size: 11px;\n color: var(--sidebar-fg-muted);\n background: var(--badge-default-bg);\n padding: 2px 6px;\n border-radius: 4px;\n }\n\n .multiFilter-header .chevron {\n font-size: 12px;\n transition: transform 0.2s ease;\n color: var(--sidebar-fg-muted);\n }\n\n .multiFilter-header.collapsed .chevron {\n transform: rotate(-90deg);\n }\n\n .multiFilter-options {\n border-top: 1px solid var(--sidebar-border);\n overflow: hidden;\n transition: max-height 0.25s ease, opacity 0.2s ease;\n max-height: 500px;\n opacity: 1;\n }\n\n .multiFilter-options.collapsed {\n max-height: 0;\n opacity: 0;\n border-top: none;\n }\n\n .multiFilter-option {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 12px;\n cursor: pointer;\n transition: background 0.15s ease;\n font-size: 13px;\n color: var(--sidebar-fg);\n }\n\n .multiFilter-option:hover {\n background: var(--sidebar-hover);\n color: var(--sidebar-fg-active);\n }\n\n .multiFilter-option .option-checkbox {\n width: 16px;\n height: 16px;\n border: 2px solid ${cssManager.bdTheme('#d4d4d4', '#525252')};\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .multiFilter-option .option-checkbox.checked {\n background: var(--sidebar-accent);\n border-color: var(--sidebar-accent);\n }\n\n .multiFilter-option .option-checkbox dees-icon {\n font-size: 12px;\n color: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n\n .multiFilter-option dees-icon.option-icon {\n font-size: 14px;\n opacity: 0.7;\n }\n\n /* Divider */\n .menuDivider {\n height: 1px;\n background: var(--sidebar-border);\n margin: 8px 12px;\n }\n\n :host([collapsed]) .menuDivider {\n margin: 8px 4px;\n }\n\n /* Header/Label */\n .menuHeader {\n padding: 12px 12px 4px 12px;\n font-size: 10px;\n font-weight: 600;\n color: var(--sidebar-fg-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n :host([collapsed]) .menuHeader {\n display: none;\n }\n\n /* Link Item */\n .menuItem.link .external-icon {\n font-size: 12px;\n opacity: 0.5;\n margin-left: auto;\n }\n\n /* Collapsed menu item styles */\n :host([collapsed]) .menuItem {\n justify-content: center;\n padding: 8px;\n gap: 0;\n }\n\n :host([collapsed]) .menuItem .itemLabel {\n opacity: 0;\n width: 0;\n position: absolute;\n }\n\n :host([collapsed]) .menuItem.selected::before {\n left: -4px;\n }\n\n :host([collapsed]) .menuItem .filter-checkbox,\n :host([collapsed]) .menuItem .external-icon {\n display: none;\n }\n\n :host([collapsed]) .multiFilter {\n display: none;\n }\n\n /* Tooltip for collapsed state */\n .item-tooltip {\n position: absolute;\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-left: 12px;\n padding: 6px 12px;\n background: var(--tooltip-bg);\n color: var(--tooltip-fg);\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease;\n z-index: 1000;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n }\n\n .item-tooltip::before {\n content: '';\n position: absolute;\n left: -4px;\n top: 50%;\n transform: translateY(-50%);\n border: 4px solid transparent;\n border-right-color: var(--tooltip-bg);\n }\n\n :host([collapsed]) .menuItem:hover .item-tooltip {\n opacity: 1;\n transition-delay: 1s;\n }\n\n /* Badge Styles */\n .badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 6px;\n font-size: 10px;\n font-weight: 600;\n border-radius: 9px;\n flex-shrink: 0;\n }\n\n .badge.default {\n background: var(--badge-default-bg);\n color: var(--badge-default-fg);\n }\n\n .badge.success {\n background: var(--badge-success-bg);\n color: var(--badge-success-fg);\n }\n\n .badge.warning {\n background: var(--badge-warning-bg);\n color: var(--badge-warning-fg);\n }\n\n .badge.error {\n background: var(--badge-error-bg);\n color: var(--badge-error-fg);\n }\n\n :host([collapsed]) .badge {\n display: none;\n }\n\n /* Legacy options container */\n .legacyOptions {\n padding: 0 8px;\n }\n\n /* Divider (legacy) */\n .divider {\n height: 1px;\n background: var(--sidebar-border);\n margin: 8px 12px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n ${this.heading}\n
      \n
      \n ${this.groups.length > 0\n ? this.renderGroups()\n : this.renderLegacyOptions()}\n
      \n
      \n \n `;\n }\n\n private renderGroups(): TemplateResult {\n return html`\n ${this.groups.map((group) => html`\n
      \n this.toggleGroup(group.name)}\"\n >\n \n ${group.iconName ? html`` : ''}\n ${group.name}\n \n \n
      \n
      \n ${group.items.map((item) => this.renderItem(item, group))}\n
      \n \n `)}\n `;\n }\n\n private renderItem(item: interfaces.ISecondaryMenuItem, group?: interfaces.ISecondaryMenuGroup): TemplateResult {\n // Check for hidden items\n if ('hidden' in item && item.hidden) {\n return html``;\n }\n\n // Determine item type\n const itemType = 'type' in item ? item.type : 'tab';\n\n switch (itemType) {\n case 'action':\n return this.renderActionItem(item as interfaces.ISecondaryMenuItemAction);\n case 'filter':\n return this.renderFilterItem(item as interfaces.ISecondaryMenuItemFilter);\n case 'multiFilter':\n return this.renderMultiFilterItem(item as interfaces.ISecondaryMenuItemMultiFilter);\n case 'divider':\n return this.renderDivider();\n case 'header':\n return this.renderHeader(item as interfaces.ISecondaryMenuItemHeader);\n case 'link':\n return this.renderLinkItem(item as interfaces.ISecondaryMenuItemLink);\n case 'tab':\n default:\n return this.renderTabItem(item as interfaces.ISecondaryMenuItemTab, group);\n }\n }\n\n private renderTabItem(item: interfaces.ISecondaryMenuItemTab, group?: interfaces.ISecondaryMenuGroup): TemplateResult {\n const isSelected = this.selectedItem?.key === item.key;\n const isDisabled = item.disabled === true;\n\n return html`\n !isDisabled && this.selectTabItem(item, group)}\"\n @contextmenu=\"${(e: MouseEvent) => this.handleContextMenu(e, item)}\"\n >\n ${item.iconName ? html`` : ''}\n ${item.key}\n ${item.badge !== undefined ? html`\n ${item.badge}\n ` : ''}\n ${item.key}\n \n `;\n }\n\n private renderActionItem(item: interfaces.ISecondaryMenuItemAction): TemplateResult {\n const variant = item.variant || 'primary';\n const isDisabled = item.disabled === true;\n\n return html`\n !isDisabled && this.handleActionClick(item)}\"\n >\n ${item.iconName ? html`` : ''}\n ${item.key}\n ${item.key}\n \n `;\n }\n\n private renderFilterItem(item: interfaces.ISecondaryMenuItemFilter): TemplateResult {\n const isDisabled = item.disabled === true;\n\n return html`\n !isDisabled && this.handleFilterToggle(item)}\"\n >\n ${item.iconName ? html`` : ''}\n ${item.key}\n
      \n ${item.active ? html`` : ''}\n
      \n ${item.key}\n \n `;\n }\n\n private renderMultiFilterItem(item: interfaces.ISecondaryMenuItemMultiFilter): TemplateResult {\n const isCollapsed = this.collapsedMultiFilters.has(item.key);\n const checkedCount = item.options.filter(opt => opt.checked).length;\n\n return html`\n
      \n this.toggleMultiFilter(item.key)}\"\n >\n \n ${item.iconName ? html`` : ''}\n ${item.key}\n \n ${checkedCount > 0 ? html`${checkedCount}` : ''}\n \n
      \n
      \n ${item.options.map(option => html`\n this.handleMultiFilterOptionToggle(item, option.key)}\"\n >\n
      \n ${option.checked ? html`` : ''}\n
      \n ${option.iconName ? html`` : ''}\n ${option.label}\n
      \n `)}\n \n \n `;\n }\n\n private renderDivider(): TemplateResult {\n return html`
      `;\n }\n\n private renderHeader(item: interfaces.ISecondaryMenuItemHeader): TemplateResult {\n return html`
      ${item.label}
      `;\n }\n\n private renderLinkItem(item: interfaces.ISecondaryMenuItemLink): TemplateResult {\n const isExternal = item.external ?? item.href.startsWith('http');\n const isDisabled = item.disabled === true;\n\n return html`\n !isDisabled && this.handleLinkClick(item)}\"\n >\n ${item.iconName ? html`` : ''}\n ${item.key}\n ${isExternal ? html`` : ''}\n ${item.key}\n \n `;\n }\n\n private renderLegacyOptions(): TemplateResult {\n return html`\n
      \n ${this.selectionOptions.map((option) => {\n if ('divider' in option && option.divider) {\n return html`
      `;\n }\n const item = option as interfaces.IMenuItem;\n // Convert legacy IMenuItem to ISecondaryMenuItemTab\n const tabItem: interfaces.ISecondaryMenuItemTab = {\n key: item.key,\n iconName: item.iconName,\n action: item.action,\n badge: item.badge,\n badgeVariant: item.badgeVariant,\n };\n return this.renderTabItem(tabItem);\n })}\n
      \n `;\n }\n\n // Helper to normalize icon names\n private normalizeIcon(iconName: string): string {\n return iconName.startsWith('lucide:') ? iconName : `lucide:${iconName}`;\n }\n\n private toggleGroup(groupName: string): void {\n const newCollapsed = new Set(this.collapsedGroups);\n if (newCollapsed.has(groupName)) {\n newCollapsed.delete(groupName);\n } else {\n newCollapsed.add(groupName);\n }\n this.collapsedGroups = newCollapsed;\n }\n\n private toggleMultiFilter(filterKey: string): void {\n const newCollapsed = new Set(this.collapsedMultiFilters);\n if (newCollapsed.has(filterKey)) {\n newCollapsed.delete(filterKey);\n } else {\n newCollapsed.add(filterKey);\n }\n this.collapsedMultiFilters = newCollapsed;\n }\n\n public toggleCollapse(): void {\n this.collapsed = !this.collapsed;\n this.dispatchEvent(new CustomEvent('collapse-change', {\n detail: { collapsed: this.collapsed },\n bubbles: true,\n composed: true\n }));\n }\n\n private selectTabItem(item: interfaces.ISecondaryMenuItemTab, group?: interfaces.ISecondaryMenuGroup): void {\n this.selectedItem = item;\n item.action();\n\n this.dispatchEvent(new CustomEvent('item-select', {\n detail: { item, group },\n bubbles: true,\n composed: true\n }));\n }\n\n private async handleActionClick(item: interfaces.ISecondaryMenuItemAction): Promise {\n // Handle confirmation if required\n if (item.confirmMessage) {\n const confirmed = window.confirm(item.confirmMessage);\n if (!confirmed) {\n return;\n }\n }\n\n await item.action();\n\n this.dispatchEvent(new CustomEvent('action-click', {\n detail: { item },\n bubbles: true,\n composed: true\n }));\n }\n\n private handleFilterToggle(item: interfaces.ISecondaryMenuItemFilter): void {\n const newActive = !item.active;\n // Update the item's active state\n item.active = newActive;\n item.onToggle(newActive);\n\n // Force re-render by incrementing the render counter\n this.renderCounter++;\n\n this.dispatchEvent(new CustomEvent('filter-toggle', {\n detail: { item, active: newActive },\n bubbles: true,\n composed: true\n }));\n }\n\n private handleMultiFilterOptionToggle(item: interfaces.ISecondaryMenuItemMultiFilter, optionKey: string): void {\n // Update the option's checked state\n const option = item.options.find(opt => opt.key === optionKey);\n if (option) {\n option.checked = !option.checked;\n }\n\n // Calculate the new selected keys\n const selectedKeys = item.options\n .filter(opt => opt.checked)\n .map(opt => opt.key);\n\n item.onChange(selectedKeys);\n\n // Force re-render by incrementing the render counter\n this.renderCounter++;\n\n this.dispatchEvent(new CustomEvent('multifilter-change', {\n detail: { item, selectedKeys },\n bubbles: true,\n composed: true\n }));\n }\n\n private handleLinkClick(item: interfaces.ISecondaryMenuItemLink): void {\n const isExternal = item.external ?? item.href.startsWith('http');\n\n if (isExternal) {\n window.open(item.href, '_blank', 'noopener,noreferrer');\n } else {\n window.location.href = item.href;\n }\n\n this.dispatchEvent(new CustomEvent('link-click', {\n detail: { item },\n bubbles: true,\n composed: true\n }));\n }\n\n private handleContextMenu(event: MouseEvent, item: interfaces.ISecondaryMenuItemTab): void {\n DeesContextmenu.openContextMenuWithOptions(event, [\n {\n name: 'View details',\n action: async () => {},\n iconName: 'lucide:eye',\n },\n {\n name: 'Edit',\n action: async () => {},\n iconName: 'lucide:pencil',\n },\n ]);\n }\n\n async firstUpdated(_changedProperties: Map) {\n await super.firstUpdated(_changedProperties);\n\n // Initialize collapsed state from group defaults\n if (this.groups.length > 0) {\n const initialCollapsed = new Set();\n const initialMultiFilterCollapsed = new Set();\n\n this.groups.forEach(group => {\n if (group.collapsed) {\n initialCollapsed.add(group.name);\n }\n\n // Check for collapsed multi-filters\n group.items.forEach(item => {\n if ('type' in item && item.type === 'multiFilter') {\n const multiFilter = item as interfaces.ISecondaryMenuItemMultiFilter;\n if (multiFilter.collapsed) {\n initialMultiFilterCollapsed.add(multiFilter.key);\n }\n }\n });\n });\n\n this.collapsedGroups = initialCollapsed;\n this.collapsedMultiFilters = initialMultiFilterCollapsed;\n\n // Auto-select first tab item if none selected\n if (!this.selectedItem) {\n for (const group of this.groups) {\n for (const item of group.items) {\n const itemType = 'type' in item ? item.type : 'tab';\n if (itemType === 'tab' || itemType === undefined) {\n const tabItem = item as interfaces.ISecondaryMenuItemTab;\n if (!tabItem.disabled) {\n this.selectTabItem(tabItem, group);\n return;\n }\n }\n }\n }\n }\n } else if (this.selectionOptions.length > 0) {\n // Legacy mode: select first non-divider option\n const firstOption = this.selectionOptions.find(opt => !('divider' in opt)) as interfaces.IMenuItem;\n if (firstOption && !this.selectedItem) {\n const tabItem: interfaces.ISecondaryMenuItemTab = {\n key: firstOption.key,\n iconName: firstOption.iconName,\n action: firstOption.action,\n };\n this.selectTabItem(tabItem);\n }\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-appui-secondarymenu': DeesAppuiSecondarymenu;\n }\n}\n", "import { html, cssManager, css, DeesElement, customElement, state } from '@design.estate/dees-element';\nimport * as interfaces from '../../interfaces/index.js';\nimport type { DeesAppuiTabs } from './dees-appui-tabs.js';\n\n// Interactive demo component for closeable tabs\n@customElement('demo-closeable-tabs')\nclass DemoCloseableTabs extends DeesElement {\n @state()\n accessor tabs: interfaces.IMenuItem[] = [\n { key: 'Main', iconName: 'lucide:home', action: () => console.log('Main clicked') },\n ];\n\n @state()\n accessor tabCounter: number = 0;\n\n static styles = [\n css`\n :host {\n display: block;\n }\n .controls {\n display: flex;\n gap: 8px;\n margin-top: 16px;\n }\n button {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(59, 130, 246, 0.1)')};\n border: 1px solid ${cssManager.bdTheme('rgba(59, 130, 246, 0.3)', 'rgba(59, 130, 246, 0.3)')};\n color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n padding: 8px 16px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n button:hover {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.2)', 'rgba(59, 130, 246, 0.2)')};\n }\n .info {\n margin-top: 16px;\n padding: 12px 16px;\n background: ${cssManager.bdTheme('rgba(0,0,0,0.02)', 'rgba(255,255,255,0.02)')};\n border-radius: 6px;\n font-size: 13px;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n `\n ];\n\n private addTab() {\n this.tabCounter++;\n const tabKey = `Document ${this.tabCounter}`;\n this.tabs = [\n ...this.tabs,\n {\n key: tabKey,\n iconName: 'lucide:file',\n action: () => console.log(`${tabKey} clicked`),\n closeable: true,\n onClose: () => this.removeTab(tabKey)\n }\n ];\n }\n\n private removeTab(tabKey: string) {\n this.tabs = this.tabs.filter(t => t.key !== tabKey);\n }\n\n render() {\n return html`\n this.removeTab(e.detail.tab.key)}\n >\n
      \n \n
      \n
      \n Click the X button on tabs to close them. The \"Main\" tab is not closeable.\n
      Current tabs: ${this.tabs.length}\n
      \n `;\n }\n}\n\n// Interactive demo for auto-hide feature\n@customElement('demo-autohide-tabs')\nclass DemoAutoHideTabs extends DeesElement {\n @state()\n accessor tabs: interfaces.IMenuItem[] = [\n { key: 'Tab 1', iconName: 'lucide:file', action: () => console.log('Tab 1') },\n { key: 'Tab 2', iconName: 'lucide:file', action: () => console.log('Tab 2') },\n ];\n\n @state()\n accessor autoHide: boolean = true;\n\n @state()\n accessor threshold: number = 1;\n\n static styles = [\n css`\n :host {\n display: block;\n }\n .tabs-container {\n min-height: 60px;\n border: 1px dashed ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .tabs-container dees-appui-tabs {\n width: 100%;\n }\n .placeholder {\n color: ${cssManager.bdTheme('#a1a1aa', '#71717a')};\n font-size: 13px;\n font-style: italic;\n }\n .controls {\n display: flex;\n gap: 8px;\n margin-top: 16px;\n flex-wrap: wrap;\n }\n button {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(59, 130, 246, 0.1)')};\n border: 1px solid ${cssManager.bdTheme('rgba(59, 130, 246, 0.3)', 'rgba(59, 130, 246, 0.3)')};\n color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n padding: 8px 16px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n button:hover {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.2)', 'rgba(59, 130, 246, 0.2)')};\n }\n button.danger {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.1)', 'rgba(239, 68, 68, 0.1)')};\n border-color: ${cssManager.bdTheme('rgba(239, 68, 68, 0.3)', 'rgba(239, 68, 68, 0.3)')};\n color: ${cssManager.bdTheme('#ef4444', '#f87171')};\n }\n button.danger:hover {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.2)', 'rgba(239, 68, 68, 0.2)')};\n }\n .info {\n margin-top: 16px;\n padding: 12px 16px;\n background: ${cssManager.bdTheme('rgba(0,0,0,0.02)', 'rgba(255,255,255,0.02)')};\n border-radius: 6px;\n font-size: 13px;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n `\n ];\n\n private tabCounter = 2;\n\n private addTab() {\n this.tabCounter++;\n this.tabs = [...this.tabs, {\n key: `Tab ${this.tabCounter}`,\n iconName: 'lucide:file',\n action: () => console.log(`Tab ${this.tabCounter}`)\n }];\n }\n\n private removeLastTab() {\n if (this.tabs.length > 0) {\n this.tabs = this.tabs.slice(0, -1);\n }\n }\n\n private clearTabs() {\n this.tabs = [];\n }\n\n render() {\n const shouldHide = this.autoHide && this.tabs.length <= this.threshold;\n\n return html`\n
      \n ${shouldHide\n ? html`Tabs hidden (${this.tabs.length} tabs \u2264 threshold ${this.threshold})`\n : html``\n }\n
      \n
      \n \n \n \n \n \n \n
      \n
      \n Auto-hide: ${this.autoHide ? 'ON' : 'OFF'} | Threshold: ${this.threshold} | Tabs: ${this.tabs.length}\n
      Tabs will hide when count \u2264 threshold.\n
      \n `;\n }\n}\n\nexport const demoFunc = () => {\n const horizontalTabs: interfaces.IMenuItem[] = [\n { key: 'Home', iconName: 'lucide:home', action: () => console.log('Home clicked') },\n { key: 'Analytics Dashboard', iconName: 'lucide:lineChart', action: () => console.log('Analytics clicked') },\n { key: 'Reports', iconName: 'lucide:fileText', action: () => console.log('Reports clicked') },\n { key: 'User Settings', iconName: 'lucide:settings', action: () => console.log('Settings clicked') },\n { key: 'Help', iconName: 'lucide:helpCircle', action: () => console.log('Help clicked') },\n ];\n\n const verticalTabs: interfaces.IMenuItem[] = [\n { key: 'Profile', iconName: 'lucide:user', action: () => console.log('Profile clicked') },\n { key: 'Security', iconName: 'lucide:shield', action: () => console.log('Security clicked') },\n { key: 'Notifications', iconName: 'lucide:bell', action: () => console.log('Notifications clicked') },\n { key: 'Integrations', iconName: 'lucide:link', action: () => console.log('Integrations clicked') },\n { key: 'Advanced', iconName: 'lucide:code', action: () => console.log('Advanced clicked') },\n ];\n\n const noIndicatorTabs: interfaces.IMenuItem[] = [\n { key: 'All', action: () => console.log('All clicked') },\n { key: 'Active', action: () => console.log('Active clicked') },\n { key: 'Completed', action: () => console.log('Completed clicked') },\n { key: 'Archived', action: () => console.log('Archived clicked') },\n ];\n\n const demoContent = (text: string) => html`\n
      \n ${text}\n
      \n `;\n\n return html`\n \n
      \n
      \n
      Horizontal Tabs with Animated Indicator
      \n \n ${demoContent('Select a tab to see the smooth sliding animation of the indicator. The indicator automatically adjusts its width to match the tab content with minimal padding.')}\n
      \n\n
      \n
      Closeable Tabs (Browser-style)
      \n \n
      \n\n
      \n
      Auto-hide Tabs
      \n \n
      \n\n
      \n
      Vertical Tabs Layout
      \n
      \n \n ${demoContent('Vertical tabs work great for settings pages and navigation menus. The animated indicator smoothly transitions between selections.')}\n
      \n
      \n\n
      \n
      Without Indicator
      \n \n ${demoContent('Tabs can also be used without the animated indicator by setting showTabIndicator to false.')}\n
      \n
      \n `;\n};\n", "import * as interfaces from '../../interfaces/index.js';\n\nimport {\n DeesElement,\n type TemplateResult,\n property,\n state,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-appui-tabs.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-appui-tabs')\nexport class DeesAppuiTabs extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // INSTANCE\n @property({\n type: Array,\n })\n accessor tabs: interfaces.IMenuItem[] = [];\n\n @property({ type: Object })\n accessor selectedTab: interfaces.IMenuItem | null = null;\n\n @property({ type: Boolean })\n accessor showTabIndicator: boolean = true;\n\n @property({ type: String })\n accessor tabStyle: 'horizontal' | 'vertical' = 'horizontal';\n\n @property({ type: Boolean })\n accessor autoHide: boolean = false;\n\n @property({ type: Number })\n accessor autoHideThreshold: number = 0;\n\n // Scroll state for fade indicators\n @state()\n private accessor canScrollLeft: boolean = false;\n\n @state()\n private accessor canScrollRight: boolean = false;\n\n private resizeObserver: ResizeObserver | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n position: relative;\n width: 100%;\n min-width: 0;\n overflow: hidden;\n }\n\n .tabs-wrapper {\n position: relative;\n min-width: 0;\n }\n\n .tabs-wrapper.horizontal-wrapper {\n height: 48px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n box-sizing: border-box;\n overflow: hidden;\n }\n\n /* Scroll fade indicators */\n .scroll-fade {\n position: absolute;\n top: 0;\n bottom: 1px;\n width: 48px;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 10;\n }\n\n .scroll-fade-left {\n left: 0;\n background: linear-gradient(to right,\n ${cssManager.bdTheme('#ffffff', '#161616')} 0%,\n ${cssManager.bdTheme('rgba(255,255,255,0)', 'rgba(22,22,22,0)')} 100%);\n }\n\n .scroll-fade-right {\n right: 0;\n background: linear-gradient(to left,\n ${cssManager.bdTheme('#ffffff', '#161616')} 0%,\n ${cssManager.bdTheme('rgba(255,255,255,0)', 'rgba(22,22,22,0)')} 100%);\n }\n\n .scroll-fade.visible {\n opacity: 1;\n }\n\n .tabsContainer {\n position: relative;\n user-select: none;\n min-width: 0;\n }\n\n .tabsContainer.horizontal {\n display: flex;\n align-items: center;\n font-size: 14px;\n overflow-x: auto;\n overflow-y: hidden;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n height: 100%;\n padding: 0 16px;\n gap: 4px;\n }\n\n /* Show scrollbar on hover */\n .tabs-wrapper:hover .tabsContainer.horizontal {\n scrollbar-color: ${cssManager.bdTheme('rgba(0,0,0,0.2)', 'rgba(255,255,255,0.2)')} transparent;\n }\n\n .tabsContainer.horizontal::-webkit-scrollbar {\n height: 4px;\n }\n\n .tabsContainer.horizontal::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .tabsContainer.horizontal::-webkit-scrollbar-thumb {\n background: transparent;\n border-radius: 2px;\n transition: background 0.2s ease;\n }\n\n .tabs-wrapper:hover .tabsContainer.horizontal::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('rgba(0,0,0,0.2)', 'rgba(255,255,255,0.2)')};\n }\n\n .tabs-wrapper:hover .tabsContainer.horizontal::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('rgba(0,0,0,0.35)', 'rgba(255,255,255,0.35)')};\n }\n\n .tabsContainer.vertical {\n display: flex;\n flex-direction: column;\n padding: 8px;\n font-size: 14px;\n gap: 2px;\n position: relative;\n background: ${cssManager.bdTheme('#f9fafb', '#18181b')};\n border-radius: 8px;\n }\n\n .tab {\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n white-space: nowrap;\n cursor: pointer;\n transition: color 0.15s ease;\n font-weight: 500;\n position: relative;\n z-index: 2;\n }\n\n .horizontal .tab {\n padding: 0 16px;\n height: 100%;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n position: relative;\n border-radius: 6px 6px 0 0;\n transition: background-color 0.15s ease;\n }\n \n .horizontal .tab:not(:last-child)::after {\n content: '';\n position: absolute;\n right: -2px;\n top: 50%;\n transform: translateY(-50%);\n height: 20px;\n width: 1px;\n background: ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n opacity: 0.5;\n }\n \n .horizontal .tab .tab-content {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n }\n\n .vertical .tab {\n padding: 10px 16px;\n border-radius: 6px;\n width: 100%;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.15s ease;\n }\n\n .tab:hover {\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n \n .horizontal .tab:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.03)', 'rgba(255, 255, 255, 0.03)')};\n }\n \n .horizontal .tab:hover::after,\n .horizontal .tab:hover + .tab::after {\n opacity: 0;\n }\n\n .vertical .tab:hover {\n background: ${cssManager.bdTheme('rgba(244, 244, 245, 0.5)', 'rgba(39, 39, 42, 0.5)')};\n }\n\n .horizontal .tab.selectedTab {\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n \n .horizontal .tab.selectedTab::after,\n .horizontal .tab.selectedTab + .tab::after {\n opacity: 0;\n }\n\n .vertical .tab.selectedTab {\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .tab dees-icon {\n font-size: 16px;\n }\n\n .tabIndicator {\n position: absolute;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n opacity: 0;\n }\n \n .tabIndicator.no-transition {\n transition: none;\n }\n\n .tabs-wrapper .tabIndicator {\n height: 3px;\n bottom: 0;\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n border-radius: 3px 3px 0 0;\n z-index: 3;\n }\n\n .vertical-wrapper {\n position: relative;\n }\n\n .vertical-wrapper .tabIndicator {\n left: 8px;\n right: 8px;\n border-radius: 6px;\n background: ${cssManager.bdTheme('#ffffff', '#27272a')};\n z-index: 1;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n }\n\n /* Close button */\n .tab-close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n border-radius: 4px;\n margin-left: 8px;\n opacity: 0.4;\n transition: opacity 0.15s, background 0.15s;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n }\n\n .tab:hover .tab-close {\n opacity: 0.7;\n }\n\n .tab-close:hover {\n opacity: 1;\n background: ${cssManager.bdTheme('rgba(0,0,0,0.1)', 'rgba(255,255,255,0.1)')};\n color: ${cssManager.bdTheme('#ef4444', '#f87171')};\n }\n\n .tab.selectedTab .tab-close {\n opacity: 0.5;\n }\n\n .tab.selectedTab:hover .tab-close {\n opacity: 0.8;\n }\n\n .tab.selectedTab .tab-close:hover {\n opacity: 1;\n }\n `,\n ];\n\n public render(): TemplateResult {\n // Auto-hide when enabled and tab count is at or below threshold\n if (this.autoHide && this.tabs.length <= this.autoHideThreshold) {\n return html``;\n }\n return html`\n ${this.renderTabsWrapper()}\n `;\n }\n\n private renderTabsWrapper(): TemplateResult {\n const isHorizontal = this.tabStyle === 'horizontal';\n const wrapperClass = isHorizontal ? 'tabs-wrapper horizontal-wrapper' : 'vertical-wrapper';\n const containerClass = `tabsContainer ${this.tabStyle}`;\n\n if (isHorizontal) {\n return html`\n
      \n
      \n
      \n ${this.tabs.map(tab => this.renderTab(tab, isHorizontal))}\n
      \n
      \n ${this.showTabIndicator ? html`
      ` : ''}\n
      \n `;\n }\n\n return html`\n
      \n
      \n ${this.tabs.map(tab => this.renderTab(tab, isHorizontal))}\n
      \n ${this.showTabIndicator ? html`
      ` : ''}\n
      \n `;\n }\n\n private renderTab(tab: interfaces.IMenuItem, isHorizontal: boolean): TemplateResult {\n const isSelected = tab === this.selectedTab;\n const classes = `tab ${isSelected ? 'selectedTab' : ''}`;\n\n const closeButton = tab.closeable ? html`\n this.closeTab(e, tab)}\">\n \n \n ` : '';\n\n const content = isHorizontal ? html`\n \n ${this.renderTabIcon(tab)}\n ${tab.key}\n \n ${closeButton}\n ` : html`\n ${this.renderTabIcon(tab)}\n ${tab.key}\n ${closeButton}\n `;\n\n return html`\n this.selectTab(tab)}\"\n >\n ${content}\n \n `;\n }\n\n private renderTabIcon(tab: interfaces.IMenuItem): TemplateResult | '' {\n return tab.iconName ? html`` : '';\n }\n\n private selectTab(tabArg: interfaces.IMenuItem) {\n this.selectedTab = tabArg;\n tabArg.action();\n\n // Scroll selected tab into view\n requestAnimationFrame(() => {\n this.scrollTabIntoView(tabArg);\n });\n\n // Emit tab-select event\n this.dispatchEvent(new CustomEvent('tab-select', {\n detail: { tab: tabArg },\n bubbles: true,\n composed: true\n }));\n }\n\n private closeTab(e: Event, tab: interfaces.IMenuItem) {\n e.stopPropagation(); // Don't select tab when closing\n\n // Call the tab's onClose callback if defined\n if (tab.onClose) {\n tab.onClose();\n }\n\n // Also emit event for parent components\n this.dispatchEvent(new CustomEvent('tab-close', {\n detail: { tab },\n bubbles: true,\n composed: true\n }));\n }\n\n firstUpdated() {\n if (this.tabs && this.tabs.length > 0) {\n this.selectTab(this.tabs[0]);\n }\n\n // Set up ResizeObserver for scroll state updates\n this.setupResizeObserver();\n\n // Initial scroll state check\n requestAnimationFrame(() => {\n this.updateScrollState();\n });\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n private setupResizeObserver() {\n if (this.tabStyle !== 'horizontal') return;\n\n this.resizeObserver = new ResizeObserver(() => {\n this.updateScrollState();\n });\n\n const container = this.shadowRoot?.querySelector('.tabsContainer.horizontal');\n if (container) {\n this.resizeObserver.observe(container);\n }\n }\n\n private handleScroll = () => {\n this.updateScrollState();\n };\n\n private updateScrollState() {\n const container = this.shadowRoot?.querySelector('.tabsContainer.horizontal') as HTMLElement;\n if (!container) return;\n\n const scrollLeft = container.scrollLeft;\n const scrollWidth = container.scrollWidth;\n const clientWidth = container.clientWidth;\n\n // Small threshold to account for rounding\n const threshold = 2;\n\n this.canScrollLeft = scrollLeft > threshold;\n this.canScrollRight = scrollLeft < scrollWidth - clientWidth - threshold;\n }\n\n private scrollTabIntoView(tab: interfaces.IMenuItem) {\n if (this.tabStyle !== 'horizontal') return;\n\n const tabIndex = this.tabs.indexOf(tab);\n if (tabIndex === -1) return;\n\n const container = this.shadowRoot?.querySelector('.tabsContainer.horizontal') as HTMLElement;\n const tabElement = container?.querySelector(`.tab:nth-child(${tabIndex + 1})`) as HTMLElement;\n\n if (tabElement && container) {\n const containerRect = container.getBoundingClientRect();\n const tabRect = tabElement.getBoundingClientRect();\n\n // Check if tab is fully visible\n const isFullyVisible =\n tabRect.left >= containerRect.left &&\n tabRect.right <= containerRect.right;\n\n if (!isFullyVisible) {\n tabElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });\n }\n }\n }\n\n async updated(changedProperties: Map) {\n super.updated(changedProperties);\n\n if (changedProperties.has('tabs') && this.tabs && this.tabs.length > 0 && !this.selectedTab) {\n this.selectTab(this.tabs[0]);\n }\n\n if (changedProperties.has('selectedTab') || changedProperties.has('tabs')) {\n await this.updateComplete;\n // Wait for fonts to load on first update\n if (!this.indicatorInitialized && document.fonts) {\n await document.fonts.ready;\n }\n requestAnimationFrame(() => {\n this.updateTabIndicator();\n this.updateScrollState();\n });\n }\n }\n\n private indicatorInitialized = false;\n\n private updateTabIndicator() {\n if (!this.shouldShowIndicator()) return;\n\n const selectedTabElement = this.getSelectedTabElement();\n if (!selectedTabElement) return;\n\n const indicator = this.getIndicatorElement();\n if (!indicator) return;\n\n this.handleInitialTransition(indicator);\n \n if (this.tabStyle === 'horizontal') {\n this.updateHorizontalIndicator(indicator, selectedTabElement);\n } else {\n this.updateVerticalIndicator(indicator, selectedTabElement);\n }\n\n indicator.style.opacity = '1';\n }\n\n private shouldShowIndicator(): boolean {\n return this.selectedTab && this.showTabIndicator && this.tabs.includes(this.selectedTab);\n }\n\n private getSelectedTabElement(): HTMLElement | null {\n const selectedIndex = this.tabs.indexOf(this.selectedTab);\n const isHorizontal = this.tabStyle === 'horizontal';\n const selector = isHorizontal \n ? `.tabs-wrapper .tabsContainer .tab:nth-child(${selectedIndex + 1})`\n : `.vertical-wrapper .tabsContainer .tab:nth-child(${selectedIndex + 1})`;\n \n return this.shadowRoot.querySelector(selector);\n }\n\n private getIndicatorElement(): HTMLElement | null {\n return this.shadowRoot.querySelector('.tabIndicator');\n }\n\n private handleInitialTransition(indicator: HTMLElement): void {\n if (!this.indicatorInitialized) {\n indicator.classList.add('no-transition');\n this.indicatorInitialized = true;\n \n setTimeout(() => {\n indicator.classList.remove('no-transition');\n }, 50);\n }\n }\n\n private updateHorizontalIndicator(indicator: HTMLElement, tabElement: HTMLElement): void {\n const tabContent = tabElement.querySelector('.tab-content') as HTMLElement;\n if (!tabContent) return;\n\n const wrapperRect = indicator.parentElement.getBoundingClientRect();\n const contentRect = tabContent.getBoundingClientRect();\n \n const contentLeft = contentRect.left - wrapperRect.left;\n const indicatorWidth = contentRect.width + 8;\n const indicatorLeft = contentLeft - 4;\n \n indicator.style.width = `${indicatorWidth}px`;\n indicator.style.left = `${indicatorLeft}px`;\n }\n\n private updateVerticalIndicator(indicator: HTMLElement, tabElement: HTMLElement): void {\n const tabsContainer = this.shadowRoot.querySelector('.vertical-wrapper .tabsContainer') as HTMLElement;\n if (!tabsContainer) return;\n \n indicator.style.top = `${tabElement.offsetTop + tabsContainer.offsetTop}px`;\n indicator.style.height = `${tabElement.clientHeight}px`;\n }\n}", "import * as interfaces from '../../interfaces/index.js';\n\nimport {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport '../dees-appui-tabs/dees-appui-tabs.js';\nimport type { DeesAppuiTabs } from '../dees-appui-tabs/dees-appui-tabs.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-appui-maincontent')\nexport class DeesAppuiMaincontent extends DeesElement {\n public static demo = () => html`\n console.log('Overview') },\n { key: 'Details', iconName: 'lucide:file', action: () => console.log('Details') },\n { key: 'Settings', iconName: 'lucide:settings', action: () => console.log('Settings') },\n ]}\n >\n
      \n

      Main Content Area

      \n

      This is where your application content goes.

      \n
      \n \n `;\n public static demoGroups = ['App UI'];\n\n // INSTANCE\n @property({\n type: Array,\n })\n accessor tabs: interfaces.IMenuItem[] = [\n { key: '\u26A0\uFE0F Please set tabs', action: () => console.warn('No tabs configured for maincontent') },\n ];\n\n @property({ type: Object })\n accessor selectedTab: interfaces.IMenuItem | null = null;\n\n @property({ type: Boolean })\n accessor showTabs: boolean = true;\n\n @property({ type: Boolean })\n accessor tabsAutoHide: boolean = false;\n\n @property({ type: Number })\n accessor tabsAutoHideThreshold: number = 0;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('#333', '#fff')};\n display: grid;\n grid-template-rows: auto 1fr;\n width: 100%;\n height: 100%;\n background: ${cssManager.bdTheme('#ffffff', '#161616')};\n }\n\n .maincontainer {\n display: contents;\n }\n\n .topbar {\n display: grid;\n grid-template-rows: 1fr;\n overflow: hidden;\n user-select: none;\n transition: grid-template-rows 0.3s ease;\n }\n\n .topbar > * {\n min-height: 0;\n }\n\n .content-area {\n overflow: auto;\n min-height: 0;\n overscroll-behavior: contain;\n }\n\n :host([notabs]) .topbar {\n grid-template-rows: 0fr;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n this.handleTabSelect(e)}\n @tab-close=${(e: CustomEvent) => this.handleTabClose(e)}\n >\n
      \n
      \n \n \n
      \n
      \n `;\n }\n\n private handleTabSelect(e: CustomEvent) {\n this.selectedTab = e.detail.tab;\n\n // Re-emit the event\n this.dispatchEvent(new CustomEvent('tab-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleTabClose(e: CustomEvent) {\n // Re-emit the event\n this.dispatchEvent(new CustomEvent('tab-close', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n updated(changedProperties: Map) {\n super.updated(changedProperties);\n if (changedProperties.has('showTabs')) {\n if (this.showTabs) {\n this.removeAttribute('notabs');\n } else {\n this.setAttribute('notabs', '');\n }\n }\n }\n\n async firstUpdated(_changedProperties: Map) {\n await super.firstUpdated(_changedProperties);\n // Apply initial notabs state\n if (!this.showTabs) {\n this.setAttribute('notabs', '');\n }\n // Tab selection is now handled by the dees-appui-tabs component\n // But we need to ensure the tabs component is ready\n const tabsComponent = this.shadowRoot.querySelector('dees-appui-tabs') as DeesAppuiTabs;\n if (tabsComponent) {\n await tabsComponent.updateComplete;\n }\n }\n}\n", "import {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport * as interfaces from '../../interfaces/index.js';\nimport type { DeesAppuiBar } from '../dees-appui-appbar/index.js';\nimport type { DeesAppuiMainmenu } from '../dees-appui-mainmenu/dees-appui-mainmenu.js';\nimport type { DeesAppuiSecondarymenu } from '../dees-appui-secondarymenu/dees-appui-secondarymenu.js';\nimport type { DeesAppuiMaincontent } from '../dees-appui-maincontent/dees-appui-maincontent.js';\nimport type { DeesAppuiActivitylog } from '../dees-appui-activitylog/dees-appui-activitylog.js';\nimport type { DeesAppuiBottombar } from '../dees-appui-bottombar/dees-appui-bottombar.js';\nimport { demoFunc } from './dees-appui.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n// View registry for managing views\nimport { ViewRegistry } from './view.registry.js';\n\n// Import child components\nimport '../dees-appui-appbar/index.js';\nimport '../dees-appui-bottombar/dees-appui-bottombar.js';\nimport '../dees-appui-mainmenu/dees-appui-mainmenu.js';\nimport '../dees-appui-secondarymenu/dees-appui-secondarymenu.js';\nimport '../dees-appui-maincontent/dees-appui-maincontent.js';\nimport '../dees-appui-activitylog/dees-appui-activitylog.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-appui': DeesAppui;\n }\n}\n\n@customElement('dees-appui')\nexport class DeesAppui extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['App UI'];\n\n // ==========================================\n // REACTIVE OBSERVABLES (RxJS Subjects)\n // ==========================================\n\n /** Observable stream of view lifecycle events */\n public viewLifecycle$ = new domtools.plugins.smartrx.rxjs.Subject();\n\n /** Observable stream of view change events */\n public viewChanged$ = new domtools.plugins.smartrx.rxjs.Subject();\n\n // ==========================================\n // INTERNAL PROPERTIES (Properties for child components)\n // ==========================================\n\n // Properties for appbar\n @property({ type: Array })\n accessor appbarMenuItems: interfaces.IAppBarMenuItem[] = [];\n\n @property({ type: String })\n accessor appbarBreadcrumbs: string = '';\n\n @property({ type: String })\n accessor appbarBreadcrumbSeparator: string = ' > ';\n\n @property({ type: Boolean })\n accessor appbarShowWindowControls: boolean = true;\n\n @property({ type: Object })\n accessor appbarUser: interfaces.IAppUser | undefined = undefined;\n\n @property({ type: Array })\n accessor appbarProfileMenuItems: interfaces.IAppBarMenuItem[] = [];\n\n @property({ type: Boolean })\n accessor appbarShowSearch: boolean = false;\n\n // Properties for mainmenu\n @property({ type: String })\n accessor mainmenuLogoIcon: string = '';\n\n @property({ type: String })\n accessor mainmenuLogoText: string = '';\n\n @property({ type: Array })\n accessor mainmenuGroups: interfaces.IMenuGroup[] = [];\n\n @property({ type: Array })\n accessor mainmenuBottomTabs: interfaces.IMenuItem[] = [];\n\n @property({ type: Array })\n accessor mainmenuTabs: interfaces.IMenuItem[] = [];\n\n @property({ type: Object })\n accessor mainmenuSelectedTab: interfaces.IMenuItem | undefined = undefined;\n\n // Properties for secondarymenu\n @property({ type: String })\n accessor secondarymenuHeading: string = '';\n\n @property({ type: Array })\n accessor secondarymenuGroups: interfaces.ISecondaryMenuGroup[] = [];\n\n @property({ type: Object })\n accessor secondarymenuSelectedItem: interfaces.ISecondaryMenuItemTab | undefined = undefined;\n\n // Collapse states\n @property({ type: Boolean })\n accessor mainmenuCollapsed: boolean = false;\n\n @property({ type: Boolean })\n accessor secondarymenuCollapsed: boolean = false;\n\n // Visibility states\n @property({ type: Boolean })\n accessor mainmenuVisible: boolean = true;\n\n @property({ type: Boolean })\n accessor secondarymenuVisible: boolean = true;\n\n @property({ type: Boolean })\n accessor maincontentTabsVisible: boolean = true;\n\n @property({ type: Boolean })\n accessor contentTabsAutoHide: boolean = false;\n\n @property({ type: Number })\n accessor contentTabsAutoHideThreshold: number = 0;\n\n // Activity log visibility and count\n @state()\n accessor activityLogVisible: boolean = false;\n\n @state()\n accessor activityLogCount: number = 0;\n\n // Properties for maincontent\n @property({ type: Array })\n accessor maincontentTabs: interfaces.IMenuItem[] = [];\n\n @property({ type: Object })\n accessor maincontentSelectedTab: interfaces.IMenuItem | undefined = undefined;\n\n // References to child components\n @state()\n accessor appbar: DeesAppuiBar | undefined = undefined;\n\n @state()\n accessor mainmenu: DeesAppuiMainmenu | undefined = undefined;\n\n @state()\n accessor secondarymenu: DeesAppuiSecondarymenu | undefined = undefined;\n\n @state()\n accessor maincontent: DeesAppuiMaincontent | undefined = undefined;\n\n @state()\n accessor activitylogElement: DeesAppuiActivitylog | undefined = undefined;\n\n @state()\n accessor bottombarElement: DeesAppuiBottombar | undefined = undefined;\n\n @state()\n accessor bottombarVisible: boolean = true;\n\n // Current view state\n @state()\n accessor currentView: interfaces.IViewDefinition | undefined = undefined;\n\n // Internal services\n private viewRegistry: ViewRegistry = new ViewRegistry();\n private routerCleanup: (() => void) | null = null;\n private searchCallback: ((query: string) => void) | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: absolute;\n height: 100%;\n width: 100%;\n background: ${cssManager.bdTheme('#f0f0f0', '#1a1a1a')};\n }\n .maingrid {\n position: absolute;\n top: 40px;\n height: calc(100% - 40px - 24px);\n width: 100%;\n display: grid;\n /* grid-template-columns set dynamically in template */\n grid-template-rows: 1fr;\n transition: grid-template-columns 0.3s ease, height 0.3s ease;\n overflow: hidden;\n }\n\n :host([bottombar-hidden]) .maingrid {\n height: calc(100% - 40px);\n }\n\n dees-appui-bottombar {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 4;\n }\n\n /* Z-index layering for proper stacking */\n .maingrid > dees-appui-mainmenu {\n position: relative;\n z-index: 3;\n }\n\n .maingrid > dees-appui-secondarymenu {\n position: relative;\n z-index: 2;\n }\n\n .maingrid > dees-appui-maincontent {\n position: relative;\n z-index: 1;\n min-height: 0;\n }\n\n .maingrid > dees-appui-activitylog {\n position: relative;\n z-index: 1;\n overflow: hidden;\n transition: opacity 0.3s ease, transform 0.3s ease;\n }\n\n .maingrid > dees-appui-activitylog.hidden {\n opacity: 0;\n transform: translateX(20px);\n pointer-events: none;\n }\n\n .maingrid > dees-appui-activitylog.visible {\n opacity: 1;\n transform: translateX(0);\n }\n\n /* View container for dynamically loaded views */\n .view-container {\n display: contents;\n }\n\n .view-container:empty {\n display: none;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n this.handleAppbarMenuSelect(e)}\n @breadcrumb-navigate=${(e: CustomEvent) => this.handleAppbarBreadcrumbNavigate(e)}\n @search-click=${() => this.handleAppbarSearchClick()}\n @search-query=${(e: CustomEvent) => this.handleAppbarSearchQuery(e)}\n @user-menu-open=${() => this.handleAppbarUserMenuOpen()}\n @profile-menu-select=${(e: CustomEvent) => this.handleAppbarProfileMenuSelect(e)}\n @activity-toggle=${() => this.toggleActivityLog()}\n >\n
      \n ${this.mainmenuVisible ? html`\n this.handleMainmenuTabSelect(e)}\n @collapse-change=${(e: CustomEvent) => this.handleMainmenuCollapseChange(e)}\n >\n ` : ''}\n ${this.secondarymenuVisible ? html`\n this.handleSecondarymenuItemSelect(e)}\n @collapse-change=${(e: CustomEvent) => this.handleSecondarymenuCollapseChange(e)}\n >\n ` : ''}\n this.handleContentTabSelect(e)}\n @tab-close=${(e: CustomEvent) => this.handleContentTabClose(e)}\n >\n
      \n \n \n \n
      \n ${this.bottombarVisible ? html`\n \n ` : ''}\n `;\n }\n\n async firstUpdated() {\n // Get references to child components\n this.appbar = this.shadowRoot!.querySelector('dees-appui-appbar') as DeesAppuiBar;\n this.mainmenu = this.shadowRoot!.querySelector('dees-appui-mainmenu') as DeesAppuiMainmenu;\n this.secondarymenu = this.shadowRoot!.querySelector('dees-appui-secondarymenu') as DeesAppuiSecondarymenu;\n this.maincontent = this.shadowRoot!.querySelector('dees-appui-maincontent') as DeesAppuiMaincontent;\n this.activitylogElement = this.shadowRoot!.querySelector('dees-appui-activitylog') as DeesAppuiActivitylog;\n this.bottombarElement = this.shadowRoot!.querySelector('dees-appui-bottombar') as DeesAppuiBottombar;\n\n // Subscribe to activity log entry changes for badge count\n if (this.activitylogElement) {\n this.activitylogElement.entries$.subscribe((entries) => {\n this.activityLogCount = entries.length;\n });\n }\n\n // Set appui reference in view registry for lifecycle context\n this.viewRegistry.setAppuiRef(this as unknown as interfaces.TDeesAppui);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Clean up router listener\n if (this.routerCleanup) {\n this.routerCleanup();\n this.routerCleanup = null;\n }\n // Complete subjects\n this.viewLifecycle$.complete();\n this.viewChanged$.complete();\n }\n\n // ==========================================\n // PROGRAMMATIC API: APP BAR\n // ==========================================\n\n /**\n * Set the app bar menu items (File, Edit, View, etc.)\n */\n public setAppBarMenus(menus: interfaces.IAppBarMenuItem[]): void {\n this.appbarMenuItems = [...menus];\n }\n\n /**\n * Update a single app bar menu by name\n */\n public updateAppBarMenu(name: string, update: Partial): void {\n this.appbarMenuItems = this.appbarMenuItems.map(menu => {\n // Check if it's not a divider and has a name property\n if ('name' in menu && menu.name === name) {\n return { ...menu, ...update };\n }\n return menu;\n });\n }\n\n /**\n * Set the breadcrumbs (string or array)\n */\n public setBreadcrumbs(breadcrumbs: string | string[]): void {\n if (Array.isArray(breadcrumbs)) {\n this.appbarBreadcrumbs = breadcrumbs.join(this.appbarBreadcrumbSeparator);\n } else {\n this.appbarBreadcrumbs = breadcrumbs;\n }\n }\n\n /**\n * Set the current user\n */\n public setUser(user: interfaces.IAppUser | undefined): void {\n this.appbarUser = user;\n }\n\n /**\n * Set the profile dropdown menu items\n */\n public setProfileMenuItems(items: interfaces.IAppBarMenuItem[]): void {\n this.appbarProfileMenuItems = [...items];\n }\n\n /**\n * Set search bar visibility\n */\n public setSearchVisible(visible: boolean): void {\n this.appbarShowSearch = visible;\n }\n\n /**\n * Set window controls visibility\n */\n public setWindowControlsVisible(visible: boolean): void {\n this.appbarShowWindowControls = visible;\n }\n\n /**\n * Register a search callback\n */\n public onSearch(callback: (query: string) => void): void {\n this.searchCallback = callback;\n }\n\n // ==========================================\n // PROGRAMMATIC API: MAIN MENU\n // ==========================================\n\n /**\n * Set the entire main menu configuration\n */\n public setMainMenu(config: interfaces.IMainMenuConfig): void {\n if (config.logoIcon !== undefined) {\n this.mainmenuLogoIcon = config.logoIcon;\n }\n if (config.logoText !== undefined) {\n this.mainmenuLogoText = config.logoText;\n }\n if (config.groups !== undefined) {\n this.mainmenuGroups = [...config.groups];\n }\n if (config.bottomTabs !== undefined) {\n this.mainmenuBottomTabs = [...config.bottomTabs];\n }\n }\n\n /**\n * Update a specific menu group by name\n */\n public updateMainMenuGroup(groupName: string, update: Partial): void {\n this.mainmenuGroups = this.mainmenuGroups.map(group =>\n group.name === groupName ? { ...group, ...update } : group\n );\n }\n\n /**\n * Add a menu item to a specific group\n */\n public addMainMenuItem(groupName: string, tab: interfaces.IMenuItem): void {\n this.mainmenuGroups = this.mainmenuGroups.map(group => {\n if (group.name === groupName) {\n return {\n ...group,\n items: [...(group.items || []), tab],\n };\n }\n return group;\n });\n }\n\n /**\n * Remove a menu item from a group by key\n */\n public removeMainMenuItem(groupName: string, tabKey: string): void {\n this.mainmenuGroups = this.mainmenuGroups.map(group => {\n if (group.name === groupName) {\n return {\n ...group,\n items: (group.items || []).filter(t => t.key !== tabKey),\n };\n }\n return group;\n });\n }\n\n /**\n * Set the selected main menu item by key\n */\n public setMainMenuSelection(tabKey: string): void {\n for (const group of this.mainmenuGroups) {\n const tab = group.items?.find(t => t.key === tabKey);\n if (tab) {\n this.mainmenuSelectedTab = tab;\n return;\n }\n }\n // Check bottom tabs\n const bottomTab = this.mainmenuBottomTabs.find(t => t.key === tabKey);\n if (bottomTab) {\n this.mainmenuSelectedTab = bottomTab;\n }\n }\n\n /**\n * Set main menu collapsed state\n */\n public setMainMenuCollapsed(collapsed: boolean): void {\n this.mainmenuCollapsed = collapsed;\n }\n\n /**\n * Set main menu visibility\n */\n public setMainMenuVisible(visible: boolean): void {\n this.mainmenuVisible = visible;\n }\n\n /**\n * Set secondary menu collapsed state\n */\n public setSecondaryMenuCollapsed(collapsed: boolean): void {\n this.secondarymenuCollapsed = collapsed;\n }\n\n /**\n * Set secondary menu visibility\n */\n public setSecondaryMenuVisible(visible: boolean): void {\n this.secondarymenuVisible = visible;\n }\n\n /**\n * Set content tabs visibility\n */\n public setContentTabsVisible(visible: boolean): void {\n this.maincontentTabsVisible = visible;\n }\n\n /**\n * Set content tabs auto-hide behavior\n * @param enabled - Enable auto-hide feature\n * @param threshold - Hide when tabs.length <= threshold (default 0 = hide when no tabs)\n */\n public setContentTabsAutoHide(enabled: boolean, threshold: number = 0): void {\n this.contentTabsAutoHide = enabled;\n this.contentTabsAutoHideThreshold = threshold;\n }\n\n /**\n * Set a badge on a main menu item\n */\n public setMainMenuBadge(tabKey: string, badge: string | number): void {\n this.mainmenuGroups = this.mainmenuGroups.map(group => ({\n ...group,\n items: (group.items || []).map(tab =>\n tab.key === tabKey ? { ...tab, badge } : tab\n ),\n }));\n // Also check bottom tabs\n this.mainmenuBottomTabs = this.mainmenuBottomTabs.map(tab =>\n tab.key === tabKey ? { ...tab, badge } : tab\n );\n }\n\n /**\n * Clear a badge from a main menu item\n */\n public clearMainMenuBadge(tabKey: string): void {\n this.mainmenuGroups = this.mainmenuGroups.map(group => ({\n ...group,\n items: (group.items || []).map(tab => {\n if (tab.key === tabKey) {\n const { badge, ...rest } = tab;\n return rest;\n }\n return tab;\n }),\n }));\n // Also check bottom tabs\n this.mainmenuBottomTabs = this.mainmenuBottomTabs.map(tab => {\n if (tab.key === tabKey) {\n const { badge, ...rest } = tab;\n return rest;\n }\n return tab;\n });\n }\n\n // ==========================================\n // PROGRAMMATIC API: SECONDARY MENU\n // ==========================================\n\n /**\n * Set the secondary menu configuration\n */\n public setSecondaryMenu(config: { heading?: string; groups: interfaces.ISecondaryMenuGroup[] }): void {\n if (config.heading !== undefined) {\n this.secondarymenuHeading = config.heading;\n }\n this.secondarymenuGroups = [...config.groups];\n }\n\n /**\n * Update a specific secondary menu group\n */\n public updateSecondaryMenuGroup(groupName: string, update: Partial): void {\n this.secondarymenuGroups = this.secondarymenuGroups.map(group =>\n group.name === groupName ? { ...group, ...update } : group\n );\n }\n\n /**\n * Add an item to a secondary menu group\n */\n public addSecondaryMenuItem(\n groupName: string,\n item: interfaces.ISecondaryMenuItem\n ): void {\n this.secondarymenuGroups = this.secondarymenuGroups.map(group => {\n if (group.name === groupName) {\n return {\n ...group,\n items: [...group.items, item],\n };\n }\n return group;\n });\n }\n\n /**\n * Set the selected secondary menu item by key (for tab items only)\n */\n public setSecondaryMenuSelection(itemKey: string): void {\n for (const group of this.secondarymenuGroups) {\n const item = group.items.find(i => 'key' in i && i.key === itemKey);\n if (item && (!('type' in item) || item.type === 'tab' || item.type === undefined)) {\n this.secondarymenuSelectedItem = item as interfaces.ISecondaryMenuItemTab;\n return;\n }\n }\n }\n\n /**\n * Clear the secondary menu\n */\n public clearSecondaryMenu(): void {\n this.secondarymenuHeading = '';\n this.secondarymenuGroups = [];\n this.secondarymenuSelectedItem = undefined;\n }\n\n // ==========================================\n // PROGRAMMATIC API: CONTENT TABS\n // ==========================================\n\n /**\n * Set the content tabs\n */\n public setContentTabs(tabs: interfaces.IMenuItem[]): void {\n this.maincontentTabs = [...tabs];\n if (tabs.length > 0 && !this.maincontentSelectedTab) {\n this.maincontentSelectedTab = tabs[0];\n }\n }\n\n /**\n * Add a content tab\n */\n public addContentTab(tab: interfaces.IMenuItem): void {\n this.maincontentTabs = [...this.maincontentTabs, tab];\n }\n\n /**\n * Remove a content tab by key\n */\n public removeContentTab(tabKey: string): void {\n this.maincontentTabs = this.maincontentTabs.filter(t => t.key !== tabKey);\n if (this.maincontentSelectedTab?.key === tabKey) {\n this.maincontentSelectedTab = this.maincontentTabs[0];\n }\n }\n\n /**\n * Select a content tab by key\n */\n public selectContentTab(tabKey: string): void {\n const tab = this.maincontentTabs.find(t => t.key === tabKey);\n if (tab) {\n this.maincontentSelectedTab = tab;\n }\n }\n\n /**\n * Get the currently selected content tab\n */\n public getSelectedContentTab(): interfaces.IMenuItem | undefined {\n return this.maincontentSelectedTab;\n }\n\n // ==========================================\n // PROGRAMMATIC API: ACTIVITY LOG\n // ==========================================\n\n /**\n * Get the activity log API\n */\n public get activityLog(): interfaces.IActivityLogAPI {\n if (!this.activitylogElement) {\n // Return a deferred API that will work after firstUpdated\n return {\n add: (entry) => {\n this.updateComplete.then(() => this.activitylogElement?.add(entry));\n },\n addMany: (entries) => {\n this.updateComplete.then(() => this.activitylogElement?.addMany(entries));\n },\n clear: () => {\n this.updateComplete.then(() => this.activitylogElement?.clear());\n },\n getEntries: () => this.activitylogElement?.getEntries() || [],\n filter: (criteria) => this.activitylogElement?.filter(criteria) || [],\n search: (query) => this.activitylogElement?.search(query) || [],\n };\n }\n return {\n add: (entry) => this.activitylogElement!.add(entry),\n addMany: (entries) => this.activitylogElement!.addMany(entries),\n clear: () => this.activitylogElement!.clear(),\n getEntries: () => this.activitylogElement!.getEntries(),\n filter: (criteria) => this.activitylogElement!.filter(criteria),\n search: (query) => this.activitylogElement!.search(query),\n };\n }\n\n /**\n * Set activity log visibility\n */\n public setActivityLogVisible(visible: boolean): void {\n this.activityLogVisible = visible;\n }\n\n /**\n * Toggle activity log visibility\n */\n public toggleActivityLog(): void {\n this.activityLogVisible = !this.activityLogVisible;\n }\n\n /**\n * Get activity log visibility state\n */\n public getActivityLogVisible(): boolean {\n return this.activityLogVisible;\n }\n\n // ==========================================\n // PROGRAMMATIC API: BOTTOM BAR\n // ==========================================\n\n /**\n * Get the bottom bar API for widget/action management\n */\n public get bottomBar(): interfaces.IBottomBarAPI {\n if (!this.bottombarElement) {\n // Return a deferred API that will work after firstUpdated\n return {\n addWidget: (widget) => {\n this.updateComplete.then(() => this.bottombarElement?.addWidget(widget));\n },\n updateWidget: (id, update) => {\n this.updateComplete.then(() => this.bottombarElement?.updateWidget(id, update));\n },\n removeWidget: (id) => {\n this.updateComplete.then(() => this.bottombarElement?.removeWidget(id));\n },\n getWidget: (id) => this.bottombarElement?.getWidget(id),\n clearWidgets: () => {\n this.updateComplete.then(() => this.bottombarElement?.clearWidgets());\n },\n addAction: (action) => {\n this.updateComplete.then(() => this.bottombarElement?.addAction(action));\n },\n removeAction: (id) => {\n this.updateComplete.then(() => this.bottombarElement?.removeAction(id));\n },\n clearActions: () => {\n this.updateComplete.then(() => this.bottombarElement?.clearActions());\n },\n };\n }\n return {\n addWidget: (widget) => this.bottombarElement!.addWidget(widget),\n updateWidget: (id, update) => this.bottombarElement!.updateWidget(id, update),\n removeWidget: (id) => this.bottombarElement!.removeWidget(id),\n getWidget: (id) => this.bottombarElement!.getWidget(id),\n clearWidgets: () => this.bottombarElement!.clearWidgets(),\n addAction: (action) => this.bottombarElement!.addAction(action),\n removeAction: (id) => this.bottombarElement!.removeAction(id),\n clearActions: () => this.bottombarElement!.clearActions(),\n };\n }\n\n /**\n * Set bottom bar visibility\n */\n public setBottomBarVisible(visible: boolean): void {\n this.bottombarVisible = visible;\n if (!visible) {\n this.setAttribute('bottombar-hidden', '');\n } else {\n this.removeAttribute('bottombar-hidden');\n }\n }\n\n /**\n * Get bottom bar visibility state\n */\n public getBottomBarVisible(): boolean {\n return this.bottombarVisible;\n }\n\n // ==========================================\n // PROGRAMMATIC API: NAVIGATION\n // ==========================================\n\n /**\n * Navigate to a view by ID\n */\n public async navigateToView(viewId: string, params?: Record): Promise {\n const view = this.viewRegistry.get(viewId);\n if (!view) {\n console.warn(`Cannot navigate to unknown view: ${viewId}`);\n return false;\n }\n\n // Check if current view allows navigation\n const canLeave = await this.viewRegistry.canLeaveCurrentView();\n if (canLeave !== true) {\n if (typeof canLeave === 'string') {\n // Show confirmation dialog\n const confirmed = window.confirm(canLeave);\n if (!confirmed) return false;\n } else {\n return false;\n }\n }\n\n // Emit loading event\n this.viewLifecycle$.next({ type: 'loading', viewId });\n\n try {\n await this.loadView(view, params);\n\n // Update URL hash\n const route = view.route || viewId;\n const newHash = `#${route}`;\n if (window.location.hash !== newHash) {\n window.history.pushState({ viewId }, '', newHash);\n }\n\n return true;\n } catch (error) {\n this.viewLifecycle$.next({ type: 'loadError', viewId, error });\n return false;\n }\n }\n\n /**\n * Get the current view\n */\n public getCurrentView(): interfaces.IViewDefinition | undefined {\n return this.currentView;\n }\n\n /**\n * Get access to the view registry (for advanced use)\n */\n public getViewRegistry(): ViewRegistry {\n return this.viewRegistry;\n }\n\n // ==========================================\n // UNIFIED CONFIGURATION\n // ==========================================\n\n /**\n * Configure the app shell with a unified config object\n */\n public configure(config: interfaces.IAppConfig): void {\n // Register views\n if (config.views) {\n this.viewRegistry.clear();\n this.viewRegistry.registerAll(config.views);\n }\n\n // Apply branding\n if (config.branding) {\n this.mainmenuLogoIcon = config.branding.logoIcon || '';\n this.mainmenuLogoText = config.branding.logoText || '';\n }\n\n // Apply app bar config\n if (config.appBar) {\n this.appbarMenuItems = config.appBar.menuItems || [];\n this.appbarBreadcrumbs = config.appBar.breadcrumbs || '';\n this.appbarBreadcrumbSeparator = config.appBar.breadcrumbSeparator || ' > ';\n this.appbarShowWindowControls = config.appBar.showWindowControls ?? true;\n this.appbarShowSearch = config.appBar.showSearch ?? false;\n this.appbarUser = config.appBar.user;\n this.appbarProfileMenuItems = config.appBar.profileMenuItems || [];\n }\n\n // Build main menu from view references or direct config\n if (config.mainMenu) {\n if (config.mainMenu.sections) {\n this.mainmenuGroups = this.buildMainMenuFromSections(config);\n } else if (config.mainMenu.groups) {\n this.mainmenuGroups = config.mainMenu.groups;\n }\n\n if (config.mainMenu.logoIcon) {\n this.mainmenuLogoIcon = config.mainMenu.logoIcon;\n }\n if (config.mainMenu.logoText) {\n this.mainmenuLogoText = config.mainMenu.logoText;\n }\n if (config.mainMenu.bottomTabs) {\n this.mainmenuBottomTabs = config.mainMenu.bottomTabs;\n } else if (config.mainMenu.bottomItems) {\n this.mainmenuBottomTabs = this.buildBottomTabsFromItems(config.mainMenu.bottomItems);\n }\n }\n\n // Apply bottom bar config\n if (config.bottomBar) {\n this.setBottomBarVisible(config.bottomBar.visible ?? true);\n\n if (config.bottomBar.widgets) {\n config.bottomBar.widgets.forEach(widget => {\n this.bottomBar.addWidget(widget);\n });\n }\n\n if (config.bottomBar.actions) {\n config.bottomBar.actions.forEach(action => {\n this.bottomBar.addAction(action);\n });\n }\n }\n\n // Setup domtools.router integration\n this.setupRouterIntegration(config);\n\n // Bind event callbacks\n if (config.onViewChange) {\n this.viewChanged$.subscribe((event) => {\n config.onViewChange!(event.viewId, event.view);\n });\n }\n\n if (config.onSearch) {\n this.searchCallback = config.onSearch;\n }\n\n // Navigate to default view\n if (config.defaultView) {\n this.navigateToView(config.defaultView);\n }\n }\n\n // ==========================================\n // PRIVATE HELPER METHODS\n // ==========================================\n\n private setupRouterIntegration(config: interfaces.IAppConfig): void {\n // Handle hash change events\n const handleHashChange = () => {\n const hash = window.location.hash.slice(1); // Remove #\n if (!hash) return;\n\n const match = this.viewRegistry.findByRoute(hash);\n if (match) {\n this.navigateToView(match.view.id, match.params);\n }\n };\n\n window.addEventListener('hashchange', handleHashChange);\n\n // Store cleanup function\n this.routerCleanup = () => {\n window.removeEventListener('hashchange', handleHashChange);\n };\n\n // Handle initial route from hash\n const currentHash = window.location.hash.slice(1);\n if (currentHash) {\n const match = this.viewRegistry.findByRoute(currentHash);\n if (match) {\n // Use setTimeout to allow component to fully initialize\n setTimeout(() => this.navigateToView(match.view.id, match.params), 0);\n }\n }\n }\n\n private buildMainMenuFromSections(config: interfaces.IAppConfig): interfaces.IMenuGroup[] {\n if (!config.mainMenu?.sections) return [];\n\n return config.mainMenu.sections.map((section) => ({\n name: section.name,\n items: section.views\n .map((viewId) => {\n const view = this.viewRegistry.get(viewId);\n if (!view) {\n console.warn(`View \"${viewId}\" not found in registry`);\n return null;\n }\n return {\n key: view.id,\n iconName: view.iconName,\n action: () => this.navigateToView(viewId),\n badge: view.badge,\n } as interfaces.IMenuItem;\n })\n .filter(Boolean) as interfaces.IMenuItem[],\n }));\n }\n\n private buildBottomTabsFromItems(items: string[]): interfaces.IMenuItem[] {\n return items\n .map((viewId) => {\n const view = this.viewRegistry.get(viewId);\n if (!view) {\n console.warn(`View \"${viewId}\" not found in registry`);\n return null;\n }\n return {\n key: view.id,\n iconName: view.iconName,\n action: () => this.navigateToView(viewId),\n } as interfaces.IMenuItem;\n })\n .filter(Boolean) as interfaces.IMenuItem[];\n }\n\n private async loadView(\n view: interfaces.IViewDefinition,\n params?: Record\n ): Promise {\n const previousView = this.currentView;\n this.currentView = view;\n\n // Get view container\n const viewContainer = this.maincontent?.querySelector('.view-container')\n || this.shadowRoot?.querySelector('.view-container');\n\n if (viewContainer) {\n // Activate view with caching and lifecycle hooks\n const element = await this.viewRegistry.activateView(\n view.id,\n viewContainer as HTMLElement,\n params\n );\n\n if (element) {\n // Emit lifecycle event\n this.viewLifecycle$.next({\n type: 'activated',\n viewId: view.id,\n element,\n params,\n });\n }\n }\n\n // Apply view-specific secondary menu\n if (view.secondaryMenu) {\n this.secondarymenuGroups = view.secondaryMenu;\n this.secondarymenuHeading = view.name;\n }\n\n // Apply view-specific content tabs\n if (view.contentTabs) {\n this.maincontentTabs = view.contentTabs;\n }\n\n // Update main menu selection\n this.setMainMenuSelection(view.id);\n\n // Emit view change event\n const changeEvent: interfaces.IViewChangeEvent = {\n viewId: view.id,\n view,\n previousView,\n params,\n };\n this.viewChanged$.next(changeEvent);\n\n // Also dispatch DOM event for backwards compatibility\n this.dispatchEvent(\n new CustomEvent('view-change', {\n detail: changeEvent,\n bubbles: true,\n composed: true,\n })\n );\n }\n\n // ==========================================\n // EVENT HANDLERS (Internal)\n // ==========================================\n\n private handleAppbarMenuSelect(e: CustomEvent) {\n this.dispatchEvent(new CustomEvent('appbar-menu-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleAppbarBreadcrumbNavigate(e: CustomEvent) {\n this.dispatchEvent(new CustomEvent('appbar-breadcrumb-navigate', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleAppbarSearchClick() {\n this.dispatchEvent(new CustomEvent('appbar-search-click', {\n bubbles: true,\n composed: true\n }));\n }\n\n private handleAppbarSearchQuery(e: CustomEvent) {\n if (this.searchCallback) {\n this.searchCallback(e.detail.query);\n }\n this.dispatchEvent(new CustomEvent('search-query', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleAppbarUserMenuOpen() {\n this.dispatchEvent(new CustomEvent('appbar-user-menu-open', {\n bubbles: true,\n composed: true\n }));\n }\n\n private handleAppbarProfileMenuSelect(e: CustomEvent) {\n this.dispatchEvent(new CustomEvent('appbar-profile-menu-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleMainmenuTabSelect(e: CustomEvent) {\n this.mainmenuSelectedTab = e.detail.tab;\n this.dispatchEvent(new CustomEvent('mainmenu-tab-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleSecondarymenuItemSelect(e: CustomEvent) {\n this.secondarymenuSelectedItem = e.detail.item;\n this.dispatchEvent(new CustomEvent('secondarymenu-item-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleMainmenuCollapseChange(e: CustomEvent) {\n this.mainmenuCollapsed = e.detail.collapsed;\n this.dispatchEvent(new CustomEvent('mainmenu-collapse-change', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleSecondarymenuCollapseChange(e: CustomEvent) {\n this.secondarymenuCollapsed = e.detail.collapsed;\n this.dispatchEvent(new CustomEvent('secondarymenu-collapse-change', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleContentTabSelect(e: CustomEvent) {\n this.maincontentSelectedTab = e.detail.tab;\n this.dispatchEvent(new CustomEvent('content-tab-select', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n\n private handleContentTabClose(e: CustomEvent) {\n this.dispatchEvent(new CustomEvent('content-tab-close', {\n detail: e.detail,\n bubbles: true,\n composed: true\n }));\n }\n}\n", "export * from './dees-appui.js';\nexport * from './view.registry.js';\n", "export * from './dees-appui-maincontent.js';\n", "export * from './dees-appui-mainmenu.js';\n", "export * from './dees-appui-secondarymenu.js';\n", "export * from './dees-appui-profiledropdown.js';\n", "export * from './dees-appui-tabs.js';\n", "import * as plugins from '../../00plugins.js';\nimport { zIndexRegistry } from '../../00zindex.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport {\n cssManager,\n css,\n type CSSResult,\n customElement,\n DeesElement,\n domtools,\n html,\n property,\n state,\n} from '@design.estate/dees-element';\nimport { DeesWindowLayer } from '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-mobilenavigation')\nexport class DeesMobilenavigation extends DeesElement {\n // STATIC\n public static demoGroups = ['App UI'];\n public static demo = () => html`\n {\n DeesMobilenavigation.createAndShow([\n {\n name: 'Dashboard',\n iconName: 'lucide:layout-dashboard',\n action: async (deesMobileNav) => {\n console.log('Navigate to dashboard');\n return null;\n },\n },\n {\n name: 'Profile',\n iconName: 'lucide:user',\n action: async (deesMobileNav) => {\n console.log('Navigate to profile');\n return null;\n },\n },\n {\n name: 'Settings',\n iconName: 'lucide:settings',\n action: async (deesMobileNav) => {\n console.log('Navigate to settings');\n return null;\n },\n },\n { divider: true } as any,\n {\n name: 'Help',\n iconName: 'lucide:help-circle',\n action: async (deesMobileNav) => {\n console.log('Show help');\n return null;\n },\n },\n {\n name: 'Sign Out',\n iconName: 'lucide:log-out',\n action: async (deesMobileNav) => {\n console.log('Sign out');\n return null;\n },\n },\n ]);\n }}>Open Mobile Navigation\n `;\n\n private static singletonRef: DeesMobilenavigation;\n public static async createAndShow(menuItemsArg: plugins.tsclass.website.IMenuItem[]) {\n if (!this.singletonRef) {\n this.singletonRef = new DeesMobilenavigation();\n document.body.append(this.singletonRef);\n await this.singletonRef.init();\n }\n this.singletonRef.menuItems = menuItemsArg;\n await this.singletonRef.readyDeferred.promise;\n this.singletonRef.show();\n return this.singletonRef;\n }\n\n // INSTANCE\n @property({\n type: String,\n })\n accessor heading: string = `Menu`;\n\n @property({\n type: Array,\n })\n accessor menuItems: plugins.tsclass.website.IMenuItem[] = [];\n\n @state()\n accessor mobileNavZIndex: number = 1000;\n\n readyDeferred: plugins.smartpromise.Deferred = domtools.plugins.smartpromise.defer();\n\n constructor() {\n super();\n /* this.init().then(() => {\n this.show();\n }); */\n }\n\n /**\n * inits the mobile navigation\n */\n public async init() {\n await this.updateComplete;\n this.readyDeferred.resolve();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: ${cssGeistFontFamily};\n }\n\n .main {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: transform;\n position: fixed;\n height: 100vh;\n width: 100%;\n max-width: 320px;\n transform: translateX(100%);\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n z-index: var(--z-index);\n opacity: 0;\n right: 0px;\n top: 0px;\n bottom: 0px;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border-left: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n pointer-events: none;\n box-shadow: ${cssManager.bdTheme(\n '-20px 0 25px -5px rgba(0, 0, 0, 0.1), -10px 0 10px -5px rgba(0, 0, 0, 0.04)',\n '-20px 0 25px -5px rgba(0, 0, 0, 0.3), -10px 0 10px -5px rgba(0, 0, 0, 0.2)'\n )};\n display: flex;\n flex-direction: column;\n }\n\n .main.show {\n pointer-events: all;\n transform: translateX(0px);\n opacity: 1;\n }\n\n .header {\n padding: 24px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n }\n\n .heading {\n font-size: 18px;\n font-weight: 600;\n letter-spacing: -0.02em;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n margin: 0;\n }\n\n .menu-container {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n }\n\n .menuItem {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n margin-bottom: 2px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n position: relative;\n user-select: none;\n }\n\n .menuItem:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .menuItem:active {\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n transform: scale(0.98);\n }\n\n .menuItem dees-icon {\n flex-shrink: 0;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n transition: color 0.15s ease;\n }\n\n .menuItem:hover dees-icon {\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .menuItem-text {\n flex: 1;\n letter-spacing: -0.01em;\n }\n\n .menuItem-divider {\n height: 1px;\n background: ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n margin: 8px 16px;\n }\n\n /* Mobile responsiveness */\n @media (max-width: 400px) {\n .main {\n max-width: 100vw;\n width: 85vw;\n }\n }\n\n /* Animation for menu items */\n @keyframes slideInRight {\n from {\n opacity: 0;\n transform: translateX(20px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n\n .main.show .menuItem {\n animation: slideInRight 0.3s ease-out forwards;\n animation-delay: calc(var(--item-index, 0) * 0.05s);\n opacity: 0;\n }\n\n /* Scrollbar styling */\n .menu-container::-webkit-scrollbar {\n width: 6px;\n }\n\n .menu-container::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .menu-container::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n border-radius: 3px;\n }\n\n .menu-container::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('#d1d5db', '#52525b')};\n }\n `,\n ];\n\n public render() {\n return html`\n \n
      \n
      \n

      ${this.heading}

      \n
      \n
      \n ${this.menuItems.map((menuItem, index) => {\n if ('divider' in menuItem && menuItem.divider) {\n return html`
      `;\n }\n return html`\n {\n this.hide();\n menuItem.action(this);\n }}\"\n >\n ${menuItem.iconName ? html`\n \n ` : ''}\n ${menuItem.name}\n
      \n `;\n })}\n
      \n \n `;\n }\n\n private windowLayer: DeesWindowLayer;\n\n /**\n * inits the show\n */\n public async show() {\n const domtools = await this.domtoolsPromise;\n const main = this.shadowRoot.querySelector('.main');\n \n // Create window layer first (it will get its own z-index)\n if (!this.windowLayer) {\n this.windowLayer = await DeesWindowLayer.createAndShow({\n blur: true,\n });\n this.windowLayer.addEventListener('click', () => {\n this.hide();\n });\n } else {\n document.body.append(this.windowLayer);\n await this.windowLayer.show();\n }\n \n // Get z-index for mobile nav (will be above window layer)\n this.mobileNavZIndex = zIndexRegistry.getNextZIndex();\n zIndexRegistry.register(this, this.mobileNavZIndex);\n\n await domtools.convenience.smartdelay.delayFor(10);\n main.classList.add('show');\n }\n\n /**\n * inits the hide function\n */\n public async hide() {\n const domtools = await this.domtoolsPromise;\n const main = this.shadowRoot.querySelector('.main');\n main.classList.remove('show');\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n \n if (this.windowLayer) {\n await this.windowLayer.destroy();\n }\n }\n\n async disconnectedCallback() {\n super.disconnectedCallback();\n \n // Cleanup\n zIndexRegistry.unregister(this);\n \n if (this.windowLayer) {\n await this.windowLayer.destroy();\n }\n }\n}\n", "export * from './dees-mobilenavigation.js';\n", "// App UI Components\nexport * from './dees-appui-activitylog/index.js';\nexport * from './dees-appui-appbar/index.js';\nexport * from './dees-appui-bottombar/index.js';\nexport * from './dees-appui/index.js';\nexport * from './dees-appui-maincontent/index.js';\nexport * from './dees-appui-mainmenu/index.js';\nexport * from './dees-appui-secondarymenu/index.js';\nexport * from './dees-appui-profiledropdown/index.js';\nexport * from './dees-appui-tabs/index.js';\nexport * from './dees-mobilenavigation/index.js';\n", "export * from './dees-button.js';\n", "import {\n cssManager,\n customElement,\n DeesElement,\n html,\n type TemplateResult,\n css,\n type CSSResult,\n state,\n property\n} from '@design.estate/dees-element';\n\n@customElement('dees-button-exit')\nexport class DeesButtonExit extends DeesElement {\n // DEMO\n public static demo = () => html`\n \n `;\n public static demoGroups = ['Button'];\n\n // INSTANCE\n @property({\n type: Number\n })\n accessor size: number = 24;\n\n public styles = [\n cssManager.defaultStyles,\n css`\n\n `\n ]\n\n public render (): TemplateResult {\n return html`\n \n
      \n
      \n
      \n
      \n `;\n }\n}", "export * from './dees-button-exit.js';\n", "import { html, css } from '@design.estate/dees-element';\n\nexport const demoFunc = () => {\n return html`\n \n
      \n
      \n

      Basic Button Groups

      \n

      Button groups without labels for simple grouping

      \n \n \n Option 1\n Option 2\n Option 3\n \n
      \n\n
      \n

      Labeled Button Groups

      \n

      Button groups with descriptive labels

      \n \n \n Grid\n List\n Cards\n \n
      \n\n
      \n

      Multiple Groups

      \n

      Multiple button groups used together

      \n \n
      \n \n System\n Network\n Sales\n \n \n \n 1H\n 24H\n 7D\n 30D\n \n \n \n Refresh\n Export\n \n
      \n
      \n\n
      \n

      Vertical Button Groups

      \n

      Button groups with vertical layout

      \n \n
      \n \n Dashboard\n Analytics\n Reports\n Settings\n \n \n \n Add Item\n Edit Item\n Delete Item\n \n
      \n
      \n\n
      \n

      Mixed Button Types

      \n

      Different button types within groups

      \n \n \n Active\n Pending\n Inactive\n \n
      \n
      \n `;\n};", "import {\n DeesElement,\n css,\n cssManager,\n customElement,\n html,\n property,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-button-group.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-button-group': DeesButtonGroup;\n }\n}\n\n@customElement('dees-button-group')\nexport class DeesButtonGroup extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Button'];\n\n @property()\n accessor label: string = '';\n\n @property()\n accessor direction: 'horizontal' | 'vertical' = 'horizontal';\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-block;\n }\n\n .button-group {\n display: flex;\n gap: 8px;\n align-items: center;\n padding: 8px;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.05)', 'rgba(255, 255, 255, 0.05)')};\n border-radius: 6px;\n }\n\n .button-group.vertical {\n flex-direction: column;\n align-items: stretch;\n }\n\n .label {\n color: ${cssManager.bdTheme('#666', '#999')};\n font-size: 12px;\n font-family: 'Geist Sans', sans-serif;\n margin-right: 8px;\n white-space: nowrap;\n }\n\n .button-group.vertical .label {\n margin-right: 0;\n margin-bottom: 8px;\n }\n\n ::slotted(*) {\n margin: 0 !important;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.label ? html`${this.label}` : ''}\n \n
      \n `;\n }\n}", "export * from './dees-button-group.js';\n", "// Button Components\nexport * from './dees-button/index.js';\nexport * from './dees-button-exit/index.js';\nexport * from './dees-button-group/index.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport type { DeesChartArea } from './component.js';\nimport '@design.estate/dees-wcctools/demotools';\nimport './component.js';\n\nexport const demoFunc = () => {\n // Initial dataset values\n const initialDatasets = {\n system: {\n label: 'System Usage (%)',\n series: [\n {\n name: 'CPU',\n data: [\n { x: new Date(Date.now() - 300000).toISOString(), y: 25 },\n { x: new Date(Date.now() - 240000).toISOString(), y: 30 },\n { x: new Date(Date.now() - 180000).toISOString(), y: 28 },\n { x: new Date(Date.now() - 120000).toISOString(), y: 35 },\n { x: new Date(Date.now() - 60000).toISOString(), y: 32 },\n { x: new Date().toISOString(), y: 38 },\n ],\n },\n {\n name: 'Memory',\n data: [\n { x: new Date(Date.now() - 300000).toISOString(), y: 45 },\n { x: new Date(Date.now() - 240000).toISOString(), y: 48 },\n { x: new Date(Date.now() - 180000).toISOString(), y: 46 },\n { x: new Date(Date.now() - 120000).toISOString(), y: 52 },\n { x: new Date(Date.now() - 60000).toISOString(), y: 50 },\n { x: new Date().toISOString(), y: 55 },\n ],\n },\n ],\n },\n };\n \n const initialFormatters = {\n system: (val: number) => `${val}%`,\n };\n \n return html`\n {\n // Get the chart elements\n const chartElement = elementArg.querySelector('#main-chart') as DeesChartArea;\n const connectionsChartElement = elementArg.querySelector('#connections-chart') as DeesChartArea;\n let intervalId: number;\n let connectionsIntervalId: number;\n let currentDataset = 'system';\n\n // Y-axis formatters for different datasets\n const formatters = {\n system: (val: number) => `${val}%`,\n network: (val: number) => `${val} Mbps`,\n sales: (val: number) => `$${val.toLocaleString()}`,\n };\n \n // Time window configuration (in milliseconds)\n const TIME_WINDOW = 2 * 60 * 1000; // 2 minutes\n const UPDATE_INTERVAL = 1000; // 1 second\n const DATA_POINT_INTERVAL = 5000; // Show data points every 5 seconds\n \n // Store previous values for smooth transitions\n let previousValues = {\n cpu: 30,\n memory: 50,\n download: 150,\n upload: 30,\n connections: 150\n };\n\n // Generate initial data points for time window\n const generateInitialData = (baseValue: number, variance: number, interval: number = DATA_POINT_INTERVAL) => {\n const data = [];\n const now = Date.now();\n const pointCount = Math.floor(TIME_WINDOW / interval);\n \n for (let i = pointCount; i >= 0; i--) {\n const timestamp = new Date(now - (i * interval)).toISOString();\n const value = baseValue + (Math.random() - 0.5) * variance;\n data.push({ x: timestamp, y: Math.round(value) });\n }\n return data;\n };\n \n // Different datasets to showcase\n const datasets = {\n system: {\n label: 'System Usage (%)',\n series: [\n {\n name: 'CPU',\n data: generateInitialData(previousValues.cpu, 10),\n },\n {\n name: 'Memory',\n data: generateInitialData(previousValues.memory, 8),\n },\n ],\n },\n network: {\n label: 'Network Traffic (Mbps)',\n series: [\n {\n name: 'Download',\n data: generateInitialData(previousValues.download, 30),\n },\n {\n name: 'Upload',\n data: generateInitialData(previousValues.upload, 10),\n },\n ],\n },\n sales: {\n label: 'Sales Analytics',\n series: [\n {\n name: 'Revenue',\n data: [\n { x: '2025-01-01', y: 45000 },\n { x: '2025-01-02', y: 52000 },\n { x: '2025-01-03', y: 48000 },\n { x: '2025-01-04', y: 61000 },\n { x: '2025-01-05', y: 58000 },\n { x: '2025-01-06', y: 65000 },\n ],\n },\n {\n name: 'Profit',\n data: [\n { x: '2025-01-01', y: 12000 },\n { x: '2025-01-02', y: 14000 },\n { x: '2025-01-03', y: 11000 },\n { x: '2025-01-04', y: 18000 },\n { x: '2025-01-05', y: 16000 },\n { x: '2025-01-06', y: 20000 },\n ],\n },\n ],\n },\n };\n\n // Generate smooth value transitions\n const getNextValue = (current: number, min: number, max: number, maxChange: number = 5) => {\n // Add some randomness but keep it close to current value\n const change = (Math.random() - 0.5) * maxChange * 2;\n let newValue = current + change;\n \n // Apply some \"pressure\" to move towards center of range\n const center = (min + max) / 2;\n const pressure = (center - newValue) * 0.1;\n newValue += pressure;\n \n // Ensure within bounds\n newValue = Math.max(min, Math.min(max, newValue));\n return Math.round(newValue);\n };\n\n // Track time of last data point\n let lastDataPointTime = Date.now();\n let connectionsLastUpdate = Date.now();\n \n // Add real-time data\n const addRealtimeData = () => {\n if (!chartElement) return;\n \n const now = Date.now();\n \n // Only add new data point every DATA_POINT_INTERVAL\n const shouldAddPoint = (now - lastDataPointTime) >= DATA_POINT_INTERVAL;\n \n if (shouldAddPoint) {\n lastDataPointTime = now;\n const newTimestamp = new Date(now).toISOString();\n \n // Generate smooth transitions for new values\n if (currentDataset === 'system') {\n // Generate new values\n previousValues.cpu = getNextValue(previousValues.cpu, 20, 50, 3);\n previousValues.memory = getNextValue(previousValues.memory, 40, 70, 2);\n \n // Get current data and add new points\n const currentSeries = chartElement.chartSeries.map((series, index) => ({\n name: series.name,\n data: [\n ...(series.data as Array<{x: any; y: any}>),\n index === 0 \n ? { x: newTimestamp, y: previousValues.cpu }\n : { x: newTimestamp, y: previousValues.memory }\n ]\n }));\n \n chartElement.updateSeries(currentSeries, false);\n \n } else if (currentDataset === 'network') {\n // Generate new values\n previousValues.download = getNextValue(previousValues.download, 100, 200, 10);\n previousValues.upload = getNextValue(previousValues.upload, 20, 50, 5);\n \n // Get current data and add new points\n const currentSeries = chartElement.chartSeries.map((series, index) => ({\n name: series.name,\n data: [\n ...(series.data as Array<{x: any; y: any}>),\n index === 0 \n ? { x: newTimestamp, y: previousValues.download }\n : { x: newTimestamp, y: previousValues.upload }\n ]\n }));\n \n chartElement.updateSeries(currentSeries, false);\n }\n }\n };\n\n // Update connections chart data\n const updateConnections = () => {\n if (!connectionsChartElement) return;\n \n const now = Date.now();\n const newTimestamp = new Date(now).toISOString();\n \n // Generate new connections value with discrete changes\n const change = Math.floor(Math.random() * 21) - 10; // -10 to +10 connections\n previousValues.connections = Math.max(50, Math.min(300, previousValues.connections + change));\n \n // Get current data and add new point\n const currentSeries = connectionsChartElement.chartSeries;\n const newData = [{\n name: currentSeries[0]?.name || 'Connections',\n data: [\n ...(currentSeries[0]?.data as Array<{x: any; y: any}> || []),\n { x: newTimestamp, y: previousValues.connections }\n ]\n }];\n \n connectionsChartElement.updateSeries(newData, false);\n };\n\n // Switch dataset\n const switchDataset = (name: string) => {\n currentDataset = name;\n const dataset = datasets[name];\n chartElement.label = dataset.label;\n chartElement.series = dataset.series;\n chartElement.yAxisFormatter = formatters[name];\n \n // Set appropriate y-axis scaling\n if (name === 'system') {\n chartElement.yAxisScaling = 'percentage';\n chartElement.yAxisMax = 100;\n } else if (name === 'network') {\n chartElement.yAxisScaling = 'dynamic';\n } else {\n chartElement.yAxisScaling = 'dynamic';\n }\n \n // Reset last data point time to get fresh data immediately\n lastDataPointTime = Date.now() - DATA_POINT_INTERVAL;\n };\n\n // Start/stop real-time updates\n const startRealtime = () => {\n if (!intervalId && (currentDataset === 'system' || currentDataset === 'network')) {\n chartElement.realtimeMode = true;\n // Only add data every 5 seconds, chart auto-scrolls independently\n intervalId = window.setInterval(() => addRealtimeData(), DATA_POINT_INTERVAL);\n }\n \n // Start connections updates\n if (!connectionsIntervalId) {\n connectionsChartElement.realtimeMode = true;\n // Update connections every second\n connectionsIntervalId = window.setInterval(() => updateConnections(), UPDATE_INTERVAL);\n }\n };\n\n const stopRealtime = () => {\n if (intervalId) {\n window.clearInterval(intervalId);\n intervalId = null;\n chartElement.realtimeMode = false;\n }\n \n // Stop connections updates\n if (connectionsIntervalId) {\n window.clearInterval(connectionsIntervalId);\n connectionsIntervalId = null;\n connectionsChartElement.realtimeMode = false;\n }\n };\n\n // Randomize current data (spike/drop simulation)\n const randomizeData = () => {\n if (currentDataset === 'system') {\n // Simulate CPU/Memory spike\n previousValues.cpu = Math.random() > 0.5 ? 85 : 25;\n previousValues.memory = Math.random() > 0.5 ? 80 : 45;\n } else if (currentDataset === 'network') {\n // Simulate network traffic spike\n previousValues.download = Math.random() > 0.5 ? 250 : 100;\n previousValues.upload = Math.random() > 0.5 ? 80 : 20;\n }\n \n // Also spike connections\n previousValues.connections = Math.random() > 0.5 ? 280 : 80;\n \n // Force immediate update by resetting timers\n lastDataPointTime = 0;\n connectionsLastUpdate = 0;\n };\n\n // Wire up button click handlers\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n if (text === 'System Usage') {\n button.addEventListener('click', () => switchDataset('system'));\n } else if (text === 'Network Traffic') {\n button.addEventListener('click', () => switchDataset('network'));\n } else if (text === 'Sales Data') {\n button.addEventListener('click', () => switchDataset('sales'));\n } else if (text === 'Start Live') {\n button.addEventListener('click', () => startRealtime());\n } else if (text === 'Stop Live') {\n button.addEventListener('click', () => stopRealtime());\n } else if (text === 'Spike Values') {\n button.addEventListener('click', () => randomizeData());\n }\n });\n \n // Update button states based on current dataset\n const updateButtonStates = () => {\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n if (text === 'System Usage') {\n button.type = currentDataset === 'system' ? 'highlighted' : 'normal';\n } else if (text === 'Network Traffic') {\n button.type = currentDataset === 'network' ? 'highlighted' : 'normal';\n } else if (text === 'Sales Data') {\n button.type = currentDataset === 'sales' ? 'highlighted' : 'normal';\n }\n });\n };\n \n // Configure main chart with rolling window\n chartElement.rollingWindow = TIME_WINDOW;\n chartElement.realtimeMode = false; // Will be enabled when starting live updates\n chartElement.yAxisScaling = 'percentage'; // Initial system dataset uses percentage\n chartElement.yAxisMax = 100;\n chartElement.autoScrollInterval = 1000; // Auto-scroll every second\n \n // Set initial time window\n setTimeout(() => {\n chartElement.updateTimeWindow();\n }, 100);\n \n // Update button states when dataset changes\n const originalSwitchDataset = switchDataset;\n const switchDatasetWithButtonUpdate = (name: string) => {\n originalSwitchDataset(name);\n updateButtonStates();\n };\n \n // Replace switchDataset with the one that updates buttons\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n if (text === 'System Usage') {\n button.removeEventListener('click', () => switchDataset('system'));\n button.addEventListener('click', () => switchDatasetWithButtonUpdate('system'));\n } else if (text === 'Network Traffic') {\n button.removeEventListener('click', () => switchDataset('network'));\n button.addEventListener('click', () => switchDatasetWithButtonUpdate('network'));\n } else if (text === 'Sales Data') {\n button.removeEventListener('click', () => switchDataset('sales'));\n button.addEventListener('click', () => switchDatasetWithButtonUpdate('sales'));\n }\n });\n \n // Initialize connections chart with data\n if (connectionsChartElement) {\n const initialConnectionsData = generateInitialData(previousValues.connections, 30, UPDATE_INTERVAL);\n connectionsChartElement.series = [{\n name: 'Connections',\n data: initialConnectionsData\n }];\n \n // Configure connections chart\n connectionsChartElement.rollingWindow = TIME_WINDOW;\n connectionsChartElement.realtimeMode = false; // Will be enabled when starting live updates\n connectionsChartElement.yAxisScaling = 'fixed';\n connectionsChartElement.yAxisMax = 350;\n connectionsChartElement.autoScrollInterval = 1000; // Auto-scroll every second\n \n // Set initial time window\n setTimeout(() => {\n connectionsChartElement.updateTimeWindow();\n }, 100);\n }\n }}>\n \n
      \n
      \n \n System Usage\n Network Traffic\n Sales Data\n \n \n \n Start Live\n Stop Live\n \n \n \n Spike Values\n \n
      \n \n
      \n \n
      \n \n
      \n \n }]}\n .yAxisFormatter=${(val: number) => `${val}`}\n >\n
      \n \n
      \n Real-time monitoring with 2-minute rolling window \u2022 \n Updates every second with smooth value transitions \u2022 \n Click 'Spike Values' to simulate load spikes\n
      \n
      \n
      \n `;\n};", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const chartAreaStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n font-weight: 400;\n font-size: 14px;\n }\n .mainbox {\n position: relative;\n width: 100%;\n height: 400px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n overflow: hidden;\n }\n\n .chartTitle {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n text-align: left;\n padding: 16px 24px;\n z-index: 10;\n font-size: 14px;\n font-weight: 500;\n letter-spacing: -0.01em;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 63.9%)')};\n }\n .chartContainer {\n position: absolute;\n top: 0px;\n left: 0px;\n bottom: 0px;\n right: 0px;\n padding: 44px 16px 16px 0px;\n overflow: hidden;\n background: transparent; /* Ensure container doesn't override chart background */\n }\n \n /* ApexCharts theme overrides */\n .apexcharts-canvas {\n background: transparent !important;\n }\n \n .apexcharts-inner {\n background: transparent !important;\n }\n \n .apexcharts-graphical {\n background: transparent !important;\n }\n `,\n ];\n\n", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport type { DeesChartArea } from './component.js';\n\nexport const renderChartArea = (component: DeesChartArea): TemplateResult => {\n return html`\n
      \n
      ${component.label}
      \n
      \n
      \n `;\n \n};\n", "/**\n * CDN versions for lazy-loaded libraries.\n * Keep these in sync with package.json for type compatibility.\n */\nexport const CDN_VERSIONS = {\n xterm: '5.3.0',\n xtermAddonFit: '0.8.0',\n xtermAddonSearch: '0.13.0',\n highlightJs: '11.11.1',\n apexcharts: '5.3.6',\n tiptap: '2.23.0',\n fontawesome: '7.1.0',\n} as const;\n\n/**\n * Base CDN URL for jsdelivr ESM imports\n */\nexport const CDN_BASE = 'https://cdn.jsdelivr.net/npm';\n", "import { CDN_BASE, CDN_VERSIONS } from './versions.js';\n\n// Type imports (no runtime overhead)\nimport type { Terminal, ITerminalOptions } from 'xterm';\nimport type { FitAddon } from 'xterm-addon-fit';\nimport type { HLJSApi } from 'highlight.js';\nimport type ApexChartsType from 'apexcharts';\nimport type { Editor, EditorOptions } from '@tiptap/core';\nimport type { StarterKitOptions } from '@tiptap/starter-kit';\nimport type { UnderlineOptions } from '@tiptap/extension-underline';\nimport type { TextAlignOptions } from '@tiptap/extension-text-align';\nimport type { LinkOptions } from '@tiptap/extension-link';\n\n/**\n * Bundle type for xterm and its addons\n */\nexport interface IXtermBundle {\n Terminal: typeof Terminal;\n}\n\n/**\n * Bundle type for xterm-addon-fit\n */\nexport interface IXtermFitAddonBundle {\n FitAddon: typeof FitAddon;\n}\n\n/**\n * Bundle type for xterm-addon-search\n * SearchAddon is loaded from CDN, so we use a minimal interface\n */\nexport interface IXtermSearchAddonBundle {\n SearchAddon: new () => IXtermSearchAddon;\n}\n\n/**\n * Minimal interface for xterm SearchAddon\n */\nexport interface IXtermSearchAddon {\n activate(terminal: Terminal): void;\n dispose(): void;\n findNext(term: string, searchOptions?: { regex?: boolean; wholeWord?: boolean; caseSensitive?: boolean; incremental?: boolean }): boolean;\n findPrevious(term: string, searchOptions?: { regex?: boolean; wholeWord?: boolean; caseSensitive?: boolean; incremental?: boolean }): boolean;\n}\n\n/**\n * Bundle type for Tiptap editor and extensions\n */\nexport interface ITiptapBundle {\n Editor: typeof Editor;\n StarterKit: { configure: (options?: Partial) => any };\n Underline: { configure: (options?: Partial) => any };\n TextAlign: { configure: (options?: Partial) => any };\n Link: { configure: (options?: Partial) => any };\n Typography: { configure: (options?: any) => any };\n}\n\n/**\n * Singleton service for lazy-loading heavy libraries from CDN.\n *\n * This reduces initial bundle size by loading libraries only when needed.\n * Libraries are cached after first load to avoid duplicate fetches.\n *\n * @example\n * ```typescript\n * const libLoader = DeesServiceLibLoader.getInstance();\n * const xterm = await libLoader.loadXterm();\n * const terminal = new xterm.Terminal({ ... });\n * ```\n */\nexport class DeesServiceLibLoader {\n private static instance: DeesServiceLibLoader;\n\n // Cached library references\n private xtermLib: IXtermBundle | null = null;\n private xtermFitAddonLib: IXtermFitAddonBundle | null = null;\n private xtermSearchAddonLib: IXtermSearchAddonBundle | null = null;\n private highlightJsLib: HLJSApi | null = null;\n private apexChartsLib: typeof ApexChartsType | null = null;\n private tiptapLib: ITiptapBundle | null = null;\n\n // Loading promises to prevent duplicate concurrent loads\n private xtermLoadingPromise: Promise | null = null;\n private xtermFitAddonLoadingPromise: Promise | null = null;\n private xtermSearchAddonLoadingPromise: Promise | null = null;\n private highlightJsLoadingPromise: Promise | null = null;\n private apexChartsLoadingPromise: Promise | null = null;\n private tiptapLoadingPromise: Promise | null = null;\n\n private constructor() {}\n\n /**\n * Get the singleton instance of DeesServiceLibLoader\n */\n public static getInstance(): DeesServiceLibLoader {\n if (!DeesServiceLibLoader.instance) {\n DeesServiceLibLoader.instance = new DeesServiceLibLoader();\n }\n return DeesServiceLibLoader.instance;\n }\n\n /**\n * Load xterm terminal emulator from CDN\n * @returns Promise resolving to xterm module with Terminal class\n */\n public async loadXterm(): Promise {\n if (this.xtermLib) {\n return this.xtermLib;\n }\n\n if (this.xtermLoadingPromise) {\n return this.xtermLoadingPromise;\n }\n\n this.xtermLoadingPromise = (async () => {\n const url = `${CDN_BASE}/xterm@${CDN_VERSIONS.xterm}/+esm`;\n const module = await import(/* @vite-ignore */ url);\n\n // Also load and inject xterm CSS\n await this.injectXtermStyles();\n\n this.xtermLib = {\n Terminal: module.Terminal,\n };\n return this.xtermLib;\n })();\n\n return this.xtermLoadingPromise;\n }\n\n /**\n * Load xterm-addon-fit from CDN\n * @returns Promise resolving to FitAddon class\n */\n public async loadXtermFitAddon(): Promise {\n if (this.xtermFitAddonLib) {\n return this.xtermFitAddonLib;\n }\n\n if (this.xtermFitAddonLoadingPromise) {\n return this.xtermFitAddonLoadingPromise;\n }\n\n this.xtermFitAddonLoadingPromise = (async () => {\n const url = `${CDN_BASE}/xterm-addon-fit@${CDN_VERSIONS.xtermAddonFit}/+esm`;\n const module = await import(/* @vite-ignore */ url);\n\n this.xtermFitAddonLib = {\n FitAddon: module.FitAddon,\n };\n return this.xtermFitAddonLib;\n })();\n\n return this.xtermFitAddonLoadingPromise;\n }\n\n /**\n * Load xterm-addon-search from CDN\n * @returns Promise resolving to SearchAddon class\n */\n public async loadXtermSearchAddon(): Promise {\n if (this.xtermSearchAddonLib) {\n return this.xtermSearchAddonLib;\n }\n\n if (this.xtermSearchAddonLoadingPromise) {\n return this.xtermSearchAddonLoadingPromise;\n }\n\n this.xtermSearchAddonLoadingPromise = (async () => {\n const url = `${CDN_BASE}/xterm-addon-search@${CDN_VERSIONS.xtermAddonSearch}/+esm`;\n const module = await import(/* @vite-ignore */ url);\n\n this.xtermSearchAddonLib = {\n SearchAddon: module.SearchAddon,\n };\n return this.xtermSearchAddonLib;\n })();\n\n return this.xtermSearchAddonLoadingPromise;\n }\n\n /**\n * Inject xterm CSS styles into the document head\n */\n private async injectXtermStyles(): Promise {\n const styleId = 'xterm-cdn-styles';\n if (document.getElementById(styleId)) {\n return; // Already injected\n }\n\n const cssUrl = `${CDN_BASE}/xterm@${CDN_VERSIONS.xterm}/css/xterm.css`;\n const response = await fetch(cssUrl);\n const cssText = await response.text();\n\n // Fix for xterm.js WidthCache measurement container causing horizontal scrollbar\n // xterm.js creates this on document.body with width: 50000px, top: -50000px\n // Moving it off-screen horizontally prevents scrollWidth expansion\n const xtermMeasurementFix = `\n/* Fix xterm.js WidthCache measurement container causing horizontal scrollbar */\n/* xterm creates this on document.body - move it off-screen horizontally too */\nbody > div[style*=\"top: -50000px\"][style*=\"width: 50000px\"] {\n left: -50000px !important;\n}\n`;\n\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = cssText + xtermMeasurementFix;\n document.head.appendChild(style);\n }\n\n /**\n * Load highlight.js syntax highlighter from CDN\n * @returns Promise resolving to highlight.js API\n */\n public async loadHighlightJs(): Promise {\n if (this.highlightJsLib) {\n return this.highlightJsLib;\n }\n\n if (this.highlightJsLoadingPromise) {\n return this.highlightJsLoadingPromise;\n }\n\n this.highlightJsLoadingPromise = (async () => {\n const url = `${CDN_BASE}/highlight.js@${CDN_VERSIONS.highlightJs}/+esm`;\n const module = await import(/* @vite-ignore */ url);\n\n this.highlightJsLib = module.default;\n return this.highlightJsLib;\n })();\n\n return this.highlightJsLoadingPromise;\n }\n\n /**\n * Load ApexCharts charting library from CDN\n * @returns Promise resolving to ApexCharts constructor\n */\n public async loadApexCharts(): Promise {\n if (this.apexChartsLib) {\n return this.apexChartsLib;\n }\n\n if (this.apexChartsLoadingPromise) {\n return this.apexChartsLoadingPromise;\n }\n\n this.apexChartsLoadingPromise = (async () => {\n const url = `${CDN_BASE}/apexcharts@${CDN_VERSIONS.apexcharts}/+esm`;\n const module = await import(/* @vite-ignore */ url);\n\n this.apexChartsLib = module.default;\n return this.apexChartsLib;\n })();\n\n return this.apexChartsLoadingPromise;\n }\n\n /**\n * Load Tiptap rich text editor and extensions from CDN\n * @returns Promise resolving to Tiptap bundle with Editor and extensions\n */\n public async loadTiptap(): Promise {\n if (this.tiptapLib) {\n return this.tiptapLib;\n }\n\n if (this.tiptapLoadingPromise) {\n return this.tiptapLoadingPromise;\n }\n\n this.tiptapLoadingPromise = (async () => {\n const version = CDN_VERSIONS.tiptap;\n\n // Load all Tiptap modules in parallel\n const [\n coreModule,\n starterKitModule,\n underlineModule,\n textAlignModule,\n linkModule,\n typographyModule,\n ] = await Promise.all([\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/core@${version}/+esm`),\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/starter-kit@${version}/+esm`),\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/extension-underline@${version}/+esm`),\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/extension-text-align@${version}/+esm`),\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/extension-link@${version}/+esm`),\n import(/* @vite-ignore */ `${CDN_BASE}/@tiptap/extension-typography@${version}/+esm`),\n ]);\n\n this.tiptapLib = {\n Editor: coreModule.Editor,\n StarterKit: starterKitModule.default || starterKitModule.StarterKit,\n Underline: underlineModule.default || underlineModule.Underline,\n TextAlign: textAlignModule.default || textAlignModule.TextAlign,\n Link: linkModule.default || linkModule.Link,\n Typography: typographyModule.default || typographyModule.Typography,\n };\n\n return this.tiptapLib;\n })();\n\n return this.tiptapLoadingPromise;\n }\n\n /**\n * Preload multiple libraries in parallel\n * Useful for warming the cache before components are rendered\n */\n public async preloadAll(): Promise {\n await Promise.all([\n this.loadXterm(),\n this.loadXtermFitAddon(),\n this.loadXtermSearchAddon(),\n this.loadHighlightJs(),\n this.loadApexCharts(),\n this.loadTiptap(),\n ]);\n }\n\n /**\n * Check if a specific library is already loaded\n */\n public isLoaded(library: 'xterm' | 'xtermFitAddon' | 'xtermSearchAddon' | 'highlightJs' | 'apexCharts' | 'tiptap'): boolean {\n switch (library) {\n case 'xterm':\n return this.xtermLib !== null;\n case 'xtermFitAddon':\n return this.xtermFitAddonLib !== null;\n case 'xtermSearchAddon':\n return this.xtermSearchAddonLib !== null;\n case 'highlightJs':\n return this.highlightJsLib !== null;\n case 'apexCharts':\n return this.apexChartsLib !== null;\n case 'tiptap':\n return this.tiptapLib !== null;\n default:\n return false;\n }\n }\n}\n", "export { DeesServiceLibLoader } from './DeesServiceLibLoader.js';\nexport type { IXtermBundle, IXtermFitAddonBundle, IXtermSearchAddonBundle, IXtermSearchAddon, ITiptapBundle } from './DeesServiceLibLoader.js';\nexport { CDN_BASE, CDN_VERSIONS } from './versions.js';\n", "import {\n DeesElement,\n customElement,\n property,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './demo.js';\nimport { chartAreaStyles } from './styles.js';\nimport { renderChartArea } from './template.js';\n\nimport type ApexCharts from 'apexcharts';\n\ntype ApexAxisChartSeries = {\n name?: string;\n type?: string;\n color?: string;\n group?: string;\n hidden?: boolean;\n zIndex?: number;\n data: (number | null)[] | { x: any; y: any; [key: string]: any }[] | [number, number | null][] | number[][];\n}[];\nimport { DeesServiceLibLoader } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-chart-area': DeesChartArea;\n }\n}\n\n@customElement('dees-chart-area')\nexport class DeesChartArea extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Chart'];\n\n // instance\n @state()\n accessor chart: ApexCharts;\n\n @property()\n accessor label: string = 'Untitled Chart';\n\n @property({ type: Array })\n accessor series: ApexAxisChartSeries = [];\n\n // Override getter to return internal chart data\n get chartSeries(): ApexAxisChartSeries {\n return this.internalChartData.length > 0 ? this.internalChartData : this.series;\n }\n\n @property({ attribute: false })\n accessor yAxisFormatter: (value: number) => string = (val) => `${val} Mbps`;\n\n @property({ type: Number })\n accessor rollingWindow: number = 0; // 0 means no rolling window\n\n @property({ type: Boolean })\n accessor realtimeMode: boolean = false;\n\n @property({ type: String })\n accessor yAxisScaling: 'fixed' | 'dynamic' | 'percentage' = 'dynamic';\n\n @property({ type: Number })\n accessor yAxisMax: number = 100; // Used when yAxisScaling is 'fixed' or 'percentage'\n\n @property({ type: Number })\n accessor autoScrollInterval: number = 1000; // Auto-scroll interval in milliseconds (0 to disable)\n\n private resizeObserver: ResizeObserver;\n private resizeTimeout: number;\n private internalChartData: ApexAxisChartSeries = [];\n private autoScrollTimer: number | null = null;\n private readonly DEBUG_RESIZE = false; // Set to true to enable resize debugging\n \n // Chart color schemes\n private readonly CHART_COLORS = {\n dark: [\n 'hsl(217.2 91.2% 59.8%)', // Blue\n 'hsl(173.4 80.4% 40%)', // Teal\n 'hsl(280.3 87.4% 66.7%)', // Purple\n 'hsl(24.6 95% 53.1%)', // Orange\n ],\n light: [\n 'hsl(222.2 47.4% 51.2%)', // Blue (shadcn primary)\n 'hsl(142.1 76.2% 36.3%)', // Green (shadcn success)\n 'hsl(280.3 47.7% 50.2%)', // Purple (muted)\n 'hsl(20.5 90.2% 48.2%)', // Orange (shadcn destructive variant)\n ]\n };\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n\n this.resizeObserver = new ResizeObserver((entries) => {\n // Debounce resize calls to prevent excessive updates\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n \n this.resizeTimeout = window.setTimeout(() => {\n // Simply resize if we have a chart, since we're only observing the mainbox\n if (this.chart) {\n // Log resize event for debugging\n if (this.DEBUG_RESIZE && entries.length > 0) {\n const entry = entries[0];\n console.log('DeesChartArea - Resize detected:', {\n width: entry.contentRect.width,\n height: entry.contentRect.height\n });\n }\n this.resizeChart();\n }\n }, 100); // 100ms debounce\n });\n \n // Note: ResizeObserver is now set up after chart initialization in firstUpdated()\n // to ensure proper timing and avoid race conditions\n \n this.registerGarbageFunction(async () => {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n this.stopAutoScroll();\n \n // Critical: Destroy chart instance to prevent memory leak\n if (this.chart) {\n try {\n this.chart.destroy();\n this.chart = null;\n } catch (error) {\n console.error('Error destroying chart:', error);\n }\n }\n });\n }\n \n public async connectedCallback() {\n super.connectedCallback();\n \n // Trigger resize when element is connected to DOM\n // This helps with dynamically added charts\n if (this.chart) {\n // Wait a frame for layout to settle\n await new Promise(resolve => requestAnimationFrame(resolve));\n await this.resizeChart();\n }\n }\n\n public static styles = chartAreaStyles;\n\n public render(): TemplateResult {\n return renderChartArea(this);\n }\n\n\n\n public async firstUpdated() {\n await this.domtoolsPromise;\n\n // Load ApexCharts from CDN\n const ApexChartsLib = await DeesServiceLibLoader.getInstance().loadApexCharts();\n\n // Wait for next animation frame to ensure layout is complete\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Get actual dimensions of the container\n const mainbox: HTMLDivElement = this.shadowRoot.querySelector('.mainbox');\n const chartContainer: HTMLDivElement = this.shadowRoot.querySelector('.chartContainer');\n \n if (!mainbox || !chartContainer) {\n console.error('Chart containers not found');\n return;\n }\n \n // Calculate initial dimensions\n const styleChartContainer = window.getComputedStyle(chartContainer);\n const paddingTop = parseInt(styleChartContainer.paddingTop, 10);\n const paddingBottom = parseInt(styleChartContainer.paddingBottom, 10);\n const paddingLeft = parseInt(styleChartContainer.paddingLeft, 10);\n const paddingRight = parseInt(styleChartContainer.paddingRight, 10);\n \n const initialWidth = mainbox.clientWidth - paddingLeft - paddingRight;\n const initialHeight = mainbox.offsetHeight - paddingTop - paddingBottom;\n \n // Use provided series data or default demo data\n const chartSeries = this.series.length > 0 ? this.series : [\n {\n name: 'cpu',\n data: [\n { x: '2025-01-15T03:00:00', y: 25 },\n { x: '2025-01-15T07:00:00', y: 30 },\n { x: '2025-01-15T11:00:00', y: 20 },\n { x: '2025-01-15T15:00:00', y: 35 },\n { x: '2025-01-15T19:00:00', y: 25 },\n ],\n },\n {\n name: 'memory',\n data: [\n { x: '2025-01-15T03:00:00', y: 10 },\n { x: '2025-01-15T07:00:00', y: 12 },\n { x: '2025-01-15T11:00:00', y: 10 },\n { x: '2025-01-15T15:00:00', y: 30 },\n { x: '2025-01-15T19:00:00', y: 40 },\n ],\n },\n ];\n \n // Store internal data\n this.internalChartData = chartSeries;\n \n // Get current theme\n const isDark = !this.goBright;\n const theme = isDark ? 'dark' : 'light';\n \n var options: ApexCharts.ApexOptions = {\n series: chartSeries,\n chart: {\n width: initialWidth || 100, // Use actual width or fallback\n height: initialHeight || 100, // Use actual height or fallback\n type: 'area',\n background: 'transparent', // Transparent background to inherit from container\n toolbar: {\n show: false, // This line disables the toolbar\n },\n animations: {\n enabled: !this.realtimeMode, // Disable animations in realtime mode\n speed: 400,\n animateGradually: {\n enabled: false, // Disable gradual animation for cleaner updates\n delay: 0\n },\n dynamicAnimation: {\n enabled: !this.realtimeMode,\n speed: 350\n }\n },\n zoom: {\n enabled: false, // Disable zoom for cleaner interaction\n },\n selection: {\n enabled: false, // Disable selection\n },\n },\n dataLabels: {\n enabled: false,\n },\n stroke: {\n width: 2,\n curve: 'smooth',\n },\n xaxis: {\n type: 'datetime', // Time-series data\n labels: {\n format: 'HH:mm:ss', // Time formatting with seconds\n datetimeUTC: false,\n style: {\n colors: [isDark ? 'hsl(0 0% 63.9%)' : 'hsl(0 0% 20%)'], // Label color\n fontSize: '12px',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n fontWeight: '400',\n },\n },\n axisBorder: {\n show: false, // Hide x-axis border\n },\n axisTicks: {\n show: false, // Hide x-axis ticks\n },\n },\n yaxis: {\n min: 0,\n max: this.yAxisScaling === 'dynamic' ? undefined : this.yAxisMax,\n labels: {\n formatter: this.yAxisFormatter,\n style: {\n colors: [isDark ? 'hsl(0 0% 63.9%)' : 'hsl(0 0% 20%)'], // Label color\n fontSize: '12px',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n fontWeight: '400',\n },\n },\n axisBorder: {\n show: false, // Hide y-axis border\n },\n axisTicks: {\n show: false, // Hide y-axis ticks\n },\n },\n tooltip: {\n shared: true, // Enables the tooltip to display across series\n intersect: false, // Allows hovering anywhere on the chart\n followCursor: true, // Makes tooltip follow mouse even between points\n x: {\n format: 'dd/MM/yy HH:mm',\n },\n custom: ({ series, dataPointIndex, w }: any) => {\n // Iterate through each series and get its value\n // Note: We can't access component instance here, so we'll use w.config.theme.mode\n const currentTheme = w.config.theme.mode;\n const isDarkMode = currentTheme === 'dark';\n const bgColor = isDarkMode ? 'hsl(0 0% 9%)' : 'hsl(0 0% 100%)';\n const textColor = isDarkMode ? 'hsl(0 0% 95%)' : 'hsl(0 0% 9%)';\n const borderColor = isDarkMode ? 'hsl(0 0% 14.9%)' : 'hsl(0 0% 89.8%)';\n \n // Get formatter from chart config\n const formatter = w.config.yaxis[0]?.labels?.formatter || ((val: number) => val.toString());\n \n let tooltipContent = `
      `;\n\n series.forEach((s: number[], index: number) => {\n const label = w.globals.seriesNames[index]; // Get series label\n const value = s[dataPointIndex]; // Get value at data point\n const color = w.globals.colors[index];\n const formattedValue = formatter(value);\n tooltipContent += `
      0 ? '6px' : '0'} 0;\">\n \n ${label}:\n ${formattedValue}\n
      `;\n });\n\n tooltipContent += `
      `;\n return tooltipContent;\n },\n },\n grid: {\n xaxis: {\n lines: {\n show: false, // Hide vertical grid lines for cleaner look\n },\n },\n yaxis: {\n lines: {\n show: true,\n },\n },\n borderColor: isDark ? 'hsl(0 0% 14.9%)' : 'hsl(0 0% 94%)', // Very subtle grid lines\n strokeDashArray: 0, // Solid line\n padding: {\n top: 10,\n right: 20,\n bottom: 10,\n left: 20,\n },\n },\n fill: {\n type: 'gradient', // Gradient fill for the area\n gradient: {\n shade: isDark ? 'dark' : 'light',\n type: 'vertical',\n shadeIntensity: 0.1,\n opacityFrom: isDark ? 0.2 : 0.3,\n opacityTo: 0,\n stops: [0, 100],\n },\n },\n colors: isDark ? this.CHART_COLORS.dark : this.CHART_COLORS.light,\n theme: {\n mode: theme,\n },\n };\n \n try {\n this.chart = new ApexChartsLib(this.shadowRoot.querySelector('.chartContainer'), options);\n await this.chart.render();\n \n // Give the chart a moment to fully initialize before resizing\n await new Promise(resolve => setTimeout(resolve, 100));\n await this.resizeChart();\n \n // Ensure resize observer is watching the mainbox\n const mainbox = this.shadowRoot.querySelector('.mainbox');\n if (mainbox && this.resizeObserver) {\n // Disconnect any previous observations\n this.resizeObserver.disconnect();\n // Start observing the mainbox\n this.resizeObserver.observe(mainbox);\n if (this.DEBUG_RESIZE) {\n console.log('DeesChartArea - ResizeObserver attached to mainbox');\n }\n }\n } catch (error) {\n console.error('Failed to initialize chart:', error);\n // Optionally, you could set an error state here\n // this.chartState = 'error';\n // this.errorMessage = 'Failed to initialize chart';\n }\n }\n\n public async updated(changedProperties: Map) {\n super.updated(changedProperties);\n \n // Update chart theme when goBright changes\n if (changedProperties.has('goBright') && this.chart) {\n await this.updateChartTheme();\n }\n \n // Update chart if series data changes\n if (changedProperties.has('series') && this.chart && this.series.length > 0) {\n await this.updateSeries(this.series);\n }\n \n // Update y-axis formatter if it changes\n if (changedProperties.has('yAxisFormatter') && this.chart) {\n await this.chart.updateOptions({\n yaxis: {\n labels: {\n formatter: this.yAxisFormatter,\n },\n },\n });\n }\n \n // Handle realtime mode changes\n if (changedProperties.has('realtimeMode') && this.chart) {\n await this.chart.updateOptions({\n chart: {\n animations: {\n enabled: !this.realtimeMode,\n speed: 400,\n animateGradually: {\n enabled: false,\n delay: 0\n },\n dynamicAnimation: {\n enabled: !this.realtimeMode,\n speed: 350\n }\n }\n }\n });\n \n // Start/stop auto-scroll based on realtime mode\n if (this.realtimeMode && this.rollingWindow > 0 && this.autoScrollInterval > 0) {\n this.startAutoScroll();\n } else {\n this.stopAutoScroll();\n }\n }\n \n // Handle auto-scroll interval changes\n if (changedProperties.has('autoScrollInterval') && this.chart) {\n this.stopAutoScroll();\n if (this.realtimeMode && this.rollingWindow > 0 && this.autoScrollInterval > 0) {\n this.startAutoScroll();\n }\n }\n \n // Handle y-axis scaling changes\n if ((changedProperties.has('yAxisScaling') || changedProperties.has('yAxisMax')) && this.chart) {\n await this.chart.updateOptions({\n yaxis: {\n min: 0,\n max: this.yAxisScaling === 'dynamic' ? undefined : this.yAxisMax\n }\n });\n }\n }\n\n public async updateSeries(newSeries: ApexAxisChartSeries, animate: boolean = true) {\n if (!this.chart) {\n return;\n }\n \n try {\n // Store the new data first\n this.internalChartData = newSeries;\n \n // Handle rolling window if enabled\n if (this.rollingWindow > 0 && this.realtimeMode) {\n const now = Date.now();\n const cutoffTime = now - this.rollingWindow;\n \n // Filter data to only include points within the rolling window\n const filteredSeries = newSeries.map(series => ({\n name: series.name,\n data: (series.data as any[]).filter(point => {\n if (typeof point === 'object' && point !== null && 'x' in point) {\n return new Date(point.x).getTime() > cutoffTime;\n }\n return false;\n })\n }));\n \n // Only update if we have data\n if (filteredSeries.some(s => s.data.length > 0)) {\n // Handle y-axis scaling first\n if (this.yAxisScaling === 'dynamic') {\n const allValues = filteredSeries.flatMap(s => (s.data as any[]).map(d => d.y));\n if (allValues.length > 0) {\n const maxValue = Math.max(...allValues);\n const dynamicMax = Math.ceil(maxValue * 1.1);\n await this.chart.updateOptions({\n yaxis: {\n min: 0,\n max: dynamicMax\n }\n }, false, false);\n }\n }\n \n await this.chart.updateSeries(filteredSeries, false);\n }\n } else {\n await this.chart.updateSeries(newSeries, animate);\n }\n } catch (error) {\n console.error('Failed to update chart series:', error);\n }\n }\n \n // Update just the x-axis for smooth scrolling in realtime mode\n // Public for advanced usage in demos, but typically handled automatically\n public async updateTimeWindow() {\n if (!this.chart || this.rollingWindow <= 0) {\n return;\n }\n \n const now = Date.now();\n const cutoffTime = now - this.rollingWindow;\n \n await this.chart.updateOptions({\n xaxis: {\n min: cutoffTime,\n max: now,\n labels: {\n format: 'HH:mm:ss',\n datetimeUTC: false,\n style: {\n colors: [!this.goBright ? 'hsl(0 0% 63.9%)' : 'hsl(0 0% 20%)'],\n fontSize: '12px',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n fontWeight: '400',\n },\n },\n tickAmount: 6,\n }\n }, false, false);\n }\n\n public async appendData(newData: { data: any[] }[]) {\n if (!this.chart) {\n return;\n }\n \n // Use ApexCharts' appendData method for smoother real-time updates\n this.chart.appendData(newData);\n }\n \n public async updateOptions(options: ApexCharts.ApexOptions, redrawPaths?: boolean, animate?: boolean) {\n if (!this.chart) {\n return;\n }\n \n return this.chart.updateOptions(options, redrawPaths, animate);\n }\n\n public async resizeChart() {\n if (!this.chart) {\n return;\n }\n \n if (this.DEBUG_RESIZE) {\n console.log('DeesChartArea - resizeChart called');\n }\n \n try {\n const mainbox: HTMLDivElement = this.shadowRoot.querySelector('.mainbox');\n const chartContainer: HTMLDivElement = this.shadowRoot.querySelector('.chartContainer');\n \n if (!mainbox || !chartContainer) {\n return;\n }\n\n // Force layout recalculation\n void mainbox.offsetHeight;\n\n // Get computed style of the element\n const styleChartContainer = window.getComputedStyle(chartContainer);\n\n // Extract padding values\n const paddingTop = parseInt(styleChartContainer.paddingTop, 10);\n const paddingBottom = parseInt(styleChartContainer.paddingBottom, 10);\n const paddingLeft = parseInt(styleChartContainer.paddingLeft, 10);\n const paddingRight = parseInt(styleChartContainer.paddingRight, 10);\n\n // Calculate the actual width and height to use, subtracting padding\n const actualWidth = mainbox.clientWidth - paddingLeft - paddingRight;\n const actualHeight = mainbox.offsetHeight - paddingTop - paddingBottom;\n \n // Validate dimensions\n if (actualWidth > 0 && actualHeight > 0) {\n if (this.DEBUG_RESIZE) {\n console.log('DeesChartArea - Updating chart dimensions:', {\n width: actualWidth,\n height: actualHeight\n });\n }\n \n await this.chart.updateOptions({\n chart: {\n width: actualWidth,\n height: actualHeight,\n },\n }, true, false); // Redraw paths but don't animate\n }\n } catch (error) {\n console.error('Failed to resize chart:', error);\n }\n }\n \n /**\n * Manually trigger a chart resize. Useful when automatic detection doesn't work.\n * This is a convenience method that can be called from outside the component.\n */\n public async forceResize() {\n await this.resizeChart();\n }\n \n private startAutoScroll() {\n if (this.autoScrollTimer) {\n return; // Already running\n }\n \n this.autoScrollTimer = window.setInterval(() => {\n this.updateTimeWindow();\n }, this.autoScrollInterval);\n }\n \n private stopAutoScroll() {\n if (this.autoScrollTimer) {\n window.clearInterval(this.autoScrollTimer);\n this.autoScrollTimer = null;\n }\n }\n \n private async updateChartTheme() {\n if (!this.chart) {\n return;\n }\n \n const isDark = !this.goBright;\n const theme = isDark ? 'dark' : 'light';\n \n await this.chart.updateOptions({\n theme: {\n mode: theme,\n },\n colors: isDark ? this.CHART_COLORS.dark : this.CHART_COLORS.light,\n xaxis: {\n labels: {\n style: {\n colors: [isDark ? 'hsl(0 0% 63.9%)' : 'hsl(0 0% 20%)'],\n },\n },\n },\n yaxis: {\n labels: {\n style: {\n colors: [isDark ? 'hsl(0 0% 63.9%)' : 'hsl(0 0% 20%)'],\n },\n },\n },\n grid: {\n borderColor: isDark ? 'hsl(0 0% 14.9%)' : 'hsl(0 0% 94%)',\n },\n fill: {\n gradient: {\n shade: isDark ? 'dark' : 'light',\n opacityFrom: isDark ? 0.2 : 0.3,\n },\n },\n });\n }\n}\n", "export * from './component.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport type { DeesChartLog } from '../dees-chart-log/dees-chart-log.js';\nimport '@design.estate/dees-wcctools/demotools';\n\nexport const demoFunc = () => {\n return html`\n {\n // Get the log elements\n const structuredLog = elementArg.querySelector('#structured-log') as DeesChartLog;\n const rawLog = elementArg.querySelector('#raw-log') as DeesChartLog;\n let structuredIntervalId: number;\n let rawIntervalId: number;\n\n const serverSources = ['Server', 'Database', 'API', 'Auth', 'Cache', 'Queue', 'WebSocket', 'Scheduler'];\n\n const logTemplates = {\n debug: [\n 'Loading module: {{module}}',\n 'Cache hit for key: {{key}}',\n 'SQL query executed in {{time}}ms',\n 'Request headers: {{headers}}',\n 'Environment variable loaded: {{var}}',\n ],\n info: [\n 'Request received: {{method}} {{path}}',\n 'User {{userId}} authenticated successfully',\n 'Processing job {{jobId}} from queue',\n 'Scheduled task \"{{task}}\" started',\n 'WebSocket connection established from {{ip}}',\n ],\n warn: [\n 'Slow query detected: {{query}} ({{time}}ms)',\n 'Memory usage at {{percent}}%',\n 'Rate limit approaching for IP {{ip}}',\n 'Deprecated API endpoint called: {{endpoint}}',\n 'Certificate expires in {{days}} days',\n ],\n error: [\n 'Database connection lost: {{error}}',\n 'Failed to process request: {{error}}',\n 'Authentication failed for user {{user}}',\n 'File not found: {{path}}',\n 'Service unavailable: {{service}}',\n ],\n success: [\n 'Server started successfully on port {{port}}',\n 'Database migration completed',\n 'Backup completed: {{size}} MB',\n 'SSL certificate renewed',\n 'Health check passed: all systems operational',\n ],\n };\n\n // Docker-like raw log lines with ANSI colors\n const dockerLogTemplates = [\n '\\x1b[90m2024-01-15T10:23:45.123Z\\x1b[0m \\x1b[36mINFO\\x1b[0m [nginx] GET /api/health 200 - 2ms',\n '\\x1b[90m2024-01-15T10:23:45.456Z\\x1b[0m \\x1b[33mWARN\\x1b[0m [redis] Connection pool running low: 3/10',\n '\\x1b[90m2024-01-15T10:23:45.789Z\\x1b[0m \\x1b[31mERROR\\x1b[0m [mongodb] Query timeout after 30000ms',\n '\\x1b[90m2024-01-15T10:23:46.012Z\\x1b[0m \\x1b[36mINFO\\x1b[0m [app] Processing batch job #{{jobId}}',\n '\\x1b[90m2024-01-15T10:23:46.345Z\\x1b[0m \\x1b[32mOK\\x1b[0m [health] All services healthy',\n '\\x1b[90m2024-01-15T10:23:46.678Z\\x1b[0m \\x1b[36mINFO\\x1b[0m [kafka] Message consumed from topic: events',\n '\\x1b[90m2024-01-15T10:23:47.001Z\\x1b[0m \\x1b[35mDEBUG\\x1b[0m [grpc] Request received: GetUser(id={{userId}})',\n '\\x1b[90m2024-01-15T10:23:47.234Z\\x1b[0m \\x1b[31mERROR\\x1b[0m [auth] Token validation failed: expired',\n '\\x1b[90m2024-01-15T10:23:47.567Z\\x1b[0m \\x1b[33mWARN\\x1b[0m [rate-limit] IP {{ip}} approaching rate limit',\n '\\x1b[90m2024-01-15T10:23:47.890Z\\x1b[0m \\x1b[36mINFO\\x1b[0m [websocket] Client connected: session={{session}}',\n // Multi-line log entry like stack traces\n '\\x1b[31mError: Connection refused\\x1b[0m\\n at TcpConnection.connect (/app/node_modules/pg/lib/connection.js:12:15)\\n at Pool.connect (/app/node_modules/pg/lib/pool.js:45:23)\\n at async DatabaseService.query (/app/src/db/service.ts:89:12)',\n ];\n\n const generateRandomLog = () => {\n const levels: Array<'debug' | 'info' | 'warn' | 'error' | 'success'> = ['debug', 'info', 'warn', 'error', 'success'];\n const weights = [0.2, 0.5, 0.15, 0.1, 0.05];\n\n const random = Math.random();\n let cumulative = 0;\n let level: typeof levels[0] = 'info';\n\n for (let i = 0; i < weights.length; i++) {\n cumulative += weights[i];\n if (random < cumulative) {\n level = levels[i];\n break;\n }\n }\n\n const source = serverSources[Math.floor(Math.random() * serverSources.length)];\n const templates = logTemplates[level];\n const template = templates[Math.floor(Math.random() * templates.length)];\n\n // Replace placeholders with random values\n const message = template\n .replace('{{module}}', ['express', 'mongoose', 'redis', 'socket.io'][Math.floor(Math.random() * 4)])\n .replace('{{key}}', 'user:' + Math.floor(Math.random() * 1000))\n .replace('{{time}}', String(Math.floor(Math.random() * 500) + 50))\n .replace('{{headers}}', 'Content-Type: application/json, Authorization: Bearer ...')\n .replace('{{var}}', ['NODE_ENV', 'DATABASE_URL', 'API_KEY', 'PORT'][Math.floor(Math.random() * 4)])\n .replace('{{method}}', ['GET', 'POST', 'PUT', 'DELETE'][Math.floor(Math.random() * 4)])\n .replace('{{path}}', ['/api/users', '/api/auth/login', '/api/products', '/health'][Math.floor(Math.random() * 4)])\n .replace('{{userId}}', String(Math.floor(Math.random() * 10000)))\n .replace('{{jobId}}', 'job_' + Math.random().toString(36).substring(2, 11))\n .replace('{{task}}', ['cleanup', 'backup', 'report-generation', 'cache-refresh'][Math.floor(Math.random() * 4)])\n .replace('{{ip}}', `192.168.1.${Math.floor(Math.random() * 255)}`)\n .replace('{{query}}', 'SELECT * FROM users WHERE ...')\n .replace('{{percent}}', String(Math.floor(Math.random() * 30) + 70))\n .replace('{{endpoint}}', '/api/v1/legacy')\n .replace('{{days}}', String(Math.floor(Math.random() * 30) + 1))\n .replace('{{error}}', ['ECONNREFUSED', 'ETIMEDOUT', 'ENOTFOUND'][Math.floor(Math.random() * 3)])\n .replace('{{user}}', 'user_' + Math.floor(Math.random() * 1000))\n .replace('{{service}}', ['Redis', 'MongoDB', 'ElasticSearch'][Math.floor(Math.random() * 3)])\n .replace('{{port}}', String(3000 + Math.floor(Math.random() * 10)))\n .replace('{{size}}', String(Math.floor(Math.random() * 500) + 100));\n\n structuredLog.addLog(level, message, source);\n };\n\n const generateDockerLog = () => {\n const template = dockerLogTemplates[Math.floor(Math.random() * dockerLogTemplates.length)];\n const now = new Date().toISOString();\n\n const logLine = template\n .replace(/2024-01-15T10:23:\\d{2}\\.\\d{3}Z/g, now)\n .replace('{{jobId}}', String(Math.floor(Math.random() * 10000)))\n .replace('{{userId}}', String(Math.floor(Math.random() * 10000)))\n .replace('{{ip}}', `192.168.1.${Math.floor(Math.random() * 255)}`)\n .replace('{{session}}', Math.random().toString(36).substring(2, 11));\n\n rawLog.writelnRaw(logLine);\n };\n\n const startStructuredSimulation = () => {\n if (!structuredIntervalId) {\n const scheduleNext = () => {\n generateRandomLog();\n const nextDelay = Math.random() * 2000 + 500;\n structuredIntervalId = window.setTimeout(() => {\n if (structuredIntervalId) {\n scheduleNext();\n }\n }, nextDelay);\n };\n scheduleNext();\n }\n };\n\n const stopStructuredSimulation = () => {\n if (structuredIntervalId) {\n window.clearTimeout(structuredIntervalId);\n structuredIntervalId = null;\n }\n };\n\n const startRawSimulation = () => {\n if (!rawIntervalId) {\n const scheduleNext = () => {\n generateDockerLog();\n const nextDelay = Math.random() * 1000 + 200;\n rawIntervalId = window.setTimeout(() => {\n if (rawIntervalId) {\n scheduleNext();\n }\n }, nextDelay);\n };\n scheduleNext();\n }\n };\n\n const stopRawSimulation = () => {\n if (rawIntervalId) {\n window.clearTimeout(rawIntervalId);\n rawIntervalId = null;\n }\n };\n\n // Wire up button click handlers\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n switch (text) {\n case 'Add Structured Log':\n button.addEventListener('click', () => generateRandomLog());\n break;\n case 'Start Structured':\n button.addEventListener('click', () => startStructuredSimulation());\n break;\n case 'Stop Structured':\n button.addEventListener('click', () => stopStructuredSimulation());\n break;\n case 'Add Docker Log':\n button.addEventListener('click', () => generateDockerLog());\n break;\n case 'Start Docker':\n button.addEventListener('click', () => startRawSimulation());\n break;\n case 'Stop Docker':\n button.addEventListener('click', () => stopRawSimulation());\n break;\n }\n });\n }}>\n \n
      \n \n
      \n
      Structured Logs (ILogEntry)
      \n
      \n Structured log entries with level, message, and source. Supports search and keyword highlighting.\n
      \n
      \n Add Structured Log\n Start Structured\n Stop Structured\n
      \n \n
      \n\n \n
      \n
      Raw Logs (Docker/Container Style)
      \n
      \n Raw log output with ANSI escape sequences for real Docker/container logs.\n
      \n
      \n Add Docker Log\n Start Docker\n Stop Docker\n
      \n \n
      \n
      \n
      \n `;\n};\n", "import {\n DeesElement,\n css,\n cssManager,\n customElement,\n html,\n property,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-chart-log.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { DeesServiceLibLoader, type IXtermSearchAddon, CDN_BASE, CDN_VERSIONS } from '../../../services/index.js';\n\n// Type imports (no runtime overhead)\nimport type { Terminal } from 'xterm';\nimport type { FitAddon } from 'xterm-addon-fit';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-chart-log': DeesChartLog;\n }\n}\n\nexport interface ILogEntry {\n timestamp: string;\n level: 'debug' | 'info' | 'warn' | 'error' | 'success';\n message: string;\n source?: string;\n}\n\nexport interface ILogMetrics {\n debug: number;\n info: number;\n warn: number;\n error: number;\n success: number;\n total: number;\n rate: number; // logs per second (rolling average)\n}\n\n@customElement('dees-chart-log')\nexport class DeesChartLog extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Chart', 'Workspace'];\n\n @property()\n accessor label: string = 'Server Logs';\n\n @property({ type: String })\n accessor mode: 'structured' | 'raw' = 'structured';\n\n @property({ type: Array })\n accessor logEntries: ILogEntry[] = [];\n\n @property({ type: Boolean })\n accessor autoScroll: boolean = true;\n\n @property({ type: Number })\n accessor maxEntries: number = 10000;\n\n @property({ type: Array })\n accessor highlightKeywords: string[] = [];\n\n @property({ type: Boolean })\n accessor showMetrics: boolean = true;\n\n @state()\n accessor searchQuery: string = '';\n\n @state()\n accessor filterMode: boolean = false;\n\n @state()\n accessor metrics: ILogMetrics = { debug: 0, info: 0, warn: 0, error: 0, success: 0, total: 0, rate: 0 };\n\n @state()\n accessor terminalReady: boolean = false;\n\n // Buffer of all log entries for filter mode\n private logBuffer: ILogEntry[] = [];\n\n // Track trailing hidden entries count for live updates in filter mode\n private trailingHiddenCount: number = 0;\n\n // xterm instances\n private terminal: Terminal | null = null;\n private fitAddon: FitAddon | null = null;\n private searchAddon: IXtermSearchAddon | null = null;\n private resizeObserver: ResizeObserver | null = null;\n private terminalThemeSubscription: any = null;\n private domtoolsInstance: any = null;\n\n // Rate calculation\n private rateBuffer: number[] = [];\n private rateInterval: ReturnType | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n }\n\n .mainbox {\n position: relative;\n width: 100%;\n height: 400px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .header {\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};\n padding: 8px 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n flex-wrap: wrap;\n }\n\n .title {\n font-weight: 500;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n white-space: nowrap;\n }\n\n .search-box {\n display: flex;\n align-items: center;\n gap: 4px;\n flex: 1;\n min-width: 150px;\n max-width: 300px;\n }\n\n .search-box input {\n flex: 1;\n padding: 4px 8px;\n font-size: 12px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n outline: none;\n }\n\n .search-box input:focus {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n }\n\n .search-box input::placeholder {\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n }\n\n .search-nav {\n display: flex;\n gap: 2px;\n }\n\n .search-nav button {\n padding: 4px 6px;\n font-size: 11px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 14.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 3px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n cursor: pointer;\n line-height: 1;\n }\n\n .search-nav button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .filter-toggle {\n padding: 4px 8px;\n font-size: 11px;\n font-weight: 500;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 14.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n cursor: pointer;\n transition: all 0.15s;\n white-space: nowrap;\n }\n\n .filter-toggle:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .filter-toggle.active {\n background: ${cssManager.bdTheme('hsl(45 93% 47%)', 'hsl(45 93% 47%)')};\n border-color: ${cssManager.bdTheme('hsl(45 93% 47%)', 'hsl(45 93% 47%)')};\n color: hsl(0 0% 9%);\n }\n\n .controls {\n display: flex;\n gap: 6px;\n margin-left: auto;\n }\n\n .control-button {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 14.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n padding: 4px 10px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n transition: all 0.15s;\n }\n\n .control-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 20%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 25%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .control-button.active {\n background: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n color: white;\n }\n\n .terminal-container {\n flex: 1;\n overflow: hidden;\n padding: 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n }\n\n .terminal-container .xterm {\n height: 100%;\n }\n\n .loading-state {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n font-style: italic;\n font-size: 13px;\n }\n\n .metrics-bar {\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n padding: 6px 12px;\n display: flex;\n gap: 16px;\n font-size: 11px;\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .metric {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .metric::before {\n content: '';\n width: 8px;\n height: 8px;\n border-radius: 50%;\n }\n\n .metric.error::before {\n background: hsl(0 84.2% 60.2%);\n }\n\n .metric.warn::before {\n background: hsl(25 95% 53%);\n }\n\n .metric.info::before {\n background: hsl(222.2 47.4% 51.2%);\n }\n\n .metric.success::before {\n background: hsl(142.1 76.2% 36.3%);\n }\n\n .metric.debug::before {\n background: hsl(0 0% 63.9%);\n }\n\n .metric.rate {\n margin-left: auto;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n .metric.rate::before {\n display: none;\n }\n `,\n ];\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public render(): TemplateResult {\n return html`\n
      \n
      \n
      ${this.label}
      \n
      \n this.handleSearchInput(e)}\n @keydown=${(e: KeyboardEvent) => this.handleSearchKeydown(e)}\n />\n
      \n \n \n
      \n this.toggleFilterMode()}\n title=\"${this.filterMode ? 'Switch to highlight mode' : 'Switch to filter mode'}\"\n >\n ${this.filterMode ? 'Filter' : 'Highlight'}\n \n
      \n
      \n this.toggleAutoScroll()}\n >\n Auto Scroll\n \n \n
      \n
      \n\n
      \n ${!this.terminalReady\n ? html`
      Loading terminal...
      `\n : ''}\n
      \n\n ${this.showMetrics\n ? html`\n
      \n errors: ${this.metrics.error}\n warns: ${this.metrics.warn}\n info: ${this.metrics.info}\n success: ${this.metrics.success}\n debug: ${this.metrics.debug}\n ${this.metrics.rate.toFixed(1)} logs/sec\n
      \n `\n : ''}\n
      \n `;\n }\n\n public async firstUpdated() {\n this.domtoolsInstance = await this.domtoolsPromise;\n await this.initializeTerminal();\n\n // initializeTerminal() already replayed logBuffer (from addLog/updateLog).\n // Now handle logEntries set via property binding before terminal was ready.\n if (this.logEntries.length > 0 && this.logBuffer.length === 0) {\n this.logBuffer = [...this.logEntries];\n for (const entry of this.logEntries) {\n this.updateMetrics(entry.level);\n this.writeLogEntry(entry);\n }\n } else if (this.logEntries.length > 0 && this.logBuffer.length > 0) {\n const bufferSet = new Set(this.logBuffer.map(e => `${e.timestamp}|${e.message}`));\n for (const entry of this.logEntries) {\n if (!bufferSet.has(`${entry.timestamp}|${entry.message}`)) {\n this.logBuffer.push(entry);\n this.updateMetrics(entry.level);\n this.writeLogEntry(entry);\n }\n }\n }\n }\n\n private async initializeTerminal() {\n const libLoader = DeesServiceLibLoader.getInstance();\n\n const [xtermBundle, fitBundle, searchBundle] = await Promise.all([\n libLoader.loadXterm(),\n libLoader.loadXtermFitAddon(),\n libLoader.loadXtermSearchAddon(),\n ]);\n\n // Inject xterm CSS into shadow root (needed because shadow DOM doesn't inherit from document.head)\n await this.injectXtermStylesIntoShadow();\n\n this.terminal = new xtermBundle.Terminal({\n cursorBlink: false,\n disableStdin: true,\n fontSize: 12,\n fontFamily: \"'SF Mono', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace\",\n theme: this.getTerminalTheme(),\n scrollback: this.maxEntries,\n convertEol: true,\n });\n\n this.fitAddon = new fitBundle.FitAddon();\n this.searchAddon = new searchBundle.SearchAddon();\n\n this.terminal.loadAddon(this.fitAddon);\n this.terminal.loadAddon(this.searchAddon);\n\n const container = this.shadowRoot!.querySelector('.terminal-container') as HTMLElement;\n this.terminal.open(container);\n\n // Fit after a small delay to ensure proper sizing\n await new Promise((resolve) => requestAnimationFrame(resolve));\n this.fitAddon.fit();\n\n // Set up resize observer\n this.resizeObserver = new ResizeObserver(() => {\n this.fitAddon?.fit();\n });\n this.resizeObserver.observe(container);\n\n // Subscribe to theme changes\n this.terminalThemeSubscription = this.domtoolsInstance.themeManager.themeObservable.subscribe(() => {\n if (this.terminal) {\n this.terminal.options.theme = this.getTerminalTheme();\n }\n });\n\n // Start rate calculation interval\n this.rateInterval = setInterval(() => this.calculateRate(), 1000);\n\n this.terminalReady = true;\n\n // Replay any entries that arrived via updateLog()/addLog() before terminal was ready\n for (const entry of this.logBuffer) {\n this.writeLogEntry(entry);\n }\n }\n\n public updated(changedProperties: Map) {\n super.updated(changedProperties);\n if (changedProperties.has('logEntries') && this.terminalReady && this.logEntries.length > 0) {\n const oldEntries: ILogEntry[] = changedProperties.get('logEntries') || [];\n const newEntries = this.logEntries;\n\n // Same content? Skip entirely.\n if (\n oldEntries.length === newEntries.length &&\n oldEntries.length > 0 &&\n oldEntries[oldEntries.length - 1].timestamp === newEntries[newEntries.length - 1].timestamp &&\n oldEntries[oldEntries.length - 1].message === newEntries[newEntries.length - 1].message\n ) {\n return;\n }\n\n // Append-only? Write only the new tail entries incrementally.\n if (\n newEntries.length > oldEntries.length &&\n oldEntries.length > 0 &&\n oldEntries[oldEntries.length - 1].timestamp === newEntries[oldEntries.length - 1].timestamp &&\n oldEntries[oldEntries.length - 1].message === newEntries[oldEntries.length - 1].message\n ) {\n const tailEntries = newEntries.slice(oldEntries.length);\n for (const entry of tailEntries) {\n this.logBuffer.push(entry);\n this.updateMetrics(entry.level);\n\n // Enforce maxEntries\n if (this.logBuffer.length > this.maxEntries) {\n this.logBuffer.shift();\n }\n\n // Respect filter mode\n if (!this.filterMode || !this.searchQuery || this.entryMatchesFilter(entry)) {\n this.writeLogEntry(entry);\n }\n }\n return;\n }\n\n // Different content \u2014 full re-render\n this.logBuffer = [...newEntries];\n this.reRenderFilteredLogs();\n }\n }\n\n private getTerminalTheme() {\n const isDark = this.domtoolsInstance?.themeManager?.isDarkMode ?? true;\n return isDark\n ? {\n background: '#0a0a0a',\n foreground: '#e0e0e0',\n cursor: '#e0e0e0',\n selectionBackground: '#404040',\n black: '#000000',\n red: '#ff5555',\n green: '#50fa7b',\n yellow: '#f1fa8c',\n blue: '#6272a4',\n magenta: '#ff79c6',\n cyan: '#8be9fd',\n white: '#f8f8f2',\n brightBlack: '#6272a4',\n brightRed: '#ff6e6e',\n brightGreen: '#69ff94',\n brightYellow: '#ffffa5',\n brightBlue: '#d6acff',\n brightMagenta: '#ff92df',\n brightCyan: '#a4ffff',\n brightWhite: '#ffffff',\n }\n : {\n background: '#ffffff',\n foreground: '#333333',\n cursor: '#333333',\n selectionBackground: '#add6ff',\n black: '#000000',\n red: '#cd3131',\n green: '#00bc00',\n yellow: '#949800',\n blue: '#0451a5',\n magenta: '#bc05bc',\n cyan: '#0598bc',\n white: '#555555',\n brightBlack: '#666666',\n brightRed: '#cd3131',\n brightGreen: '#14ce14',\n brightYellow: '#b5ba00',\n brightBlue: '#0451a5',\n brightMagenta: '#bc05bc',\n brightCyan: '#0598bc',\n brightWhite: '#a5a5a5',\n };\n }\n\n /**\n * Inject xterm CSS styles into shadow root\n * This is needed because shadow DOM doesn't inherit styles from document.head\n */\n private async injectXtermStylesIntoShadow(): Promise {\n const styleId = 'xterm-shadow-styles';\n if (this.shadowRoot!.getElementById(styleId)) {\n return; // Already injected\n }\n\n const cssUrl = `${CDN_BASE}/xterm@${CDN_VERSIONS.xterm}/css/xterm.css`;\n const response = await fetch(cssUrl);\n const cssText = await response.text();\n\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = cssText;\n this.shadowRoot!.appendChild(style);\n }\n\n // =====================\n // Structured Log Methods\n // =====================\n\n /**\n * Add a single structured log entry\n */\n public addLog(level: ILogEntry['level'], message: string, source?: string) {\n const entry: ILogEntry = {\n timestamp: new Date().toISOString(),\n level,\n message,\n source,\n };\n\n // Add to buffer\n this.logBuffer.push(entry);\n if (this.logBuffer.length > this.maxEntries) {\n this.logBuffer.shift();\n }\n\n // Handle display based on filter mode\n if (!this.filterMode || !this.searchQuery) {\n // No filtering - show all entries\n this.writeLogEntry(entry);\n } else if (this.entryMatchesFilter(entry)) {\n // Entry matches filter - reset trailing count and write entry\n this.trailingHiddenCount = 0;\n this.writeLogEntry(entry);\n } else {\n // Entry doesn't match - update trailing placeholder\n this.updateTrailingPlaceholder();\n }\n\n this.updateMetrics(entry.level);\n }\n\n /**\n * Add multiple structured log entries\n */\n public updateLog(entries?: ILogEntry[]) {\n if (!entries) return;\n for (const entry of entries) {\n // Add to buffer\n this.logBuffer.push(entry);\n if (this.logBuffer.length > this.maxEntries) {\n this.logBuffer.shift();\n }\n\n // Handle display based on filter mode\n if (!this.filterMode || !this.searchQuery) {\n // No filtering - show all entries\n this.writeLogEntry(entry);\n } else if (this.entryMatchesFilter(entry)) {\n // Entry matches filter - reset trailing count and write entry\n this.trailingHiddenCount = 0;\n this.writeLogEntry(entry);\n } else {\n // Entry doesn't match - update trailing placeholder\n this.updateTrailingPlaceholder();\n }\n\n this.updateMetrics(entry.level);\n }\n }\n\n /**\n * Update the trailing hidden placeholder in real-time\n * Clears the last line if a placeholder already exists, then writes updated count\n */\n private updateTrailingPlaceholder() {\n if (!this.terminal) return;\n\n if (this.trailingHiddenCount > 0) {\n // Clear the previous placeholder line (move up, clear line, move to start)\n this.terminal.write('\\x1b[1A\\x1b[2K\\r');\n }\n\n this.trailingHiddenCount++;\n this.writeHiddenPlaceholder(this.trailingHiddenCount);\n\n if (this.autoScroll) {\n this.terminal.scrollToBottom();\n }\n }\n\n /**\n * Check if a log entry matches the current filter\n */\n private entryMatchesFilter(entry: ILogEntry): boolean {\n if (!this.searchQuery) return true;\n const query = this.searchQuery.toLowerCase();\n return (\n entry.message.toLowerCase().includes(query) ||\n entry.level.toLowerCase().includes(query) ||\n (entry.source?.toLowerCase().includes(query) ?? false)\n );\n }\n\n private writeLogEntry(entry: ILogEntry) {\n if (!this.terminal) return;\n\n const formatted = this.formatLogEntry(entry);\n this.terminal.writeln(formatted);\n\n if (this.autoScroll) {\n this.terminal.scrollToBottom();\n }\n }\n\n private formatLogEntry(entry: ILogEntry): string {\n const timestamp = this.formatTimestamp(entry.timestamp);\n const levelColors: Record = {\n debug: '\\x1b[90m', // Gray\n info: '\\x1b[36m', // Cyan\n warn: '\\x1b[33m', // Yellow\n error: '\\x1b[31m', // Red\n success: '\\x1b[32m', // Green\n };\n const reset = '\\x1b[0m';\n const dim = '\\x1b[2m';\n\n const levelStr = `${levelColors[entry.level]}[${entry.level.toUpperCase().padEnd(7)}]${reset}`;\n const sourceStr = entry.source ? `${dim}[${entry.source}]${reset} ` : '';\n const messageStr = this.applyHighlights(entry.message);\n\n return `${dim}${timestamp}${reset} ${levelStr} ${sourceStr}${messageStr}`;\n }\n\n private formatTimestamp(isoString: string): string {\n const date = new Date(isoString);\n return date.toLocaleTimeString('en-US', {\n hour12: false,\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n fractionalSecondDigits: 3,\n } as Intl.DateTimeFormatOptions);\n }\n\n private applyHighlights(text: string): string {\n // Collect all keywords to highlight\n const keywords = [...this.highlightKeywords];\n\n // In filter mode, also highlight the search query\n if (this.filterMode && this.searchQuery) {\n keywords.push(this.searchQuery);\n }\n\n if (keywords.length === 0) return text;\n\n let result = text;\n for (const keyword of keywords) {\n // Escape regex special characters\n const escaped = keyword.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const regex = new RegExp(`(${escaped})`, 'gi');\n // Yellow background, black text for highlights\n result = result.replace(regex, '\\x1b[43m\\x1b[30m$1\\x1b[0m');\n }\n return result;\n }\n\n // =====================\n // Raw Log Methods\n // =====================\n\n /**\n * Write raw data to the terminal (for Docker logs, etc.)\n */\n public writeRaw(data: string) {\n if (!this.terminal) return;\n this.terminal.write(data);\n this.recordLogEvent();\n\n if (this.autoScroll) {\n this.terminal.scrollToBottom();\n }\n }\n\n /**\n * Write a raw line to the terminal\n */\n public writelnRaw(line: string) {\n if (!this.terminal) return;\n this.terminal.writeln(line);\n this.recordLogEvent();\n\n if (this.autoScroll) {\n this.terminal.scrollToBottom();\n }\n }\n\n // =====================\n // Search Methods\n // =====================\n\n private handleSearchInput(e: InputEvent) {\n const input = e.target as HTMLInputElement;\n const newQuery = input.value;\n const queryChanged = this.searchQuery !== newQuery;\n this.searchQuery = newQuery;\n\n if (this.filterMode && queryChanged) {\n // Re-render with filtered logs\n this.reRenderFilteredLogs();\n } else if (this.searchQuery) {\n // Just highlight/search in current view\n this.searchAddon?.findNext(this.searchQuery);\n }\n }\n\n private handleSearchKeydown(e: KeyboardEvent) {\n if (e.key === 'Enter') {\n if (e.shiftKey) {\n this.searchPrevious();\n } else {\n this.searchNext();\n }\n } else if (e.key === 'Escape') {\n this.searchQuery = '';\n (e.target as HTMLInputElement).value = '';\n }\n }\n\n /**\n * Search for a query in the terminal\n */\n public search(query: string): void {\n this.searchQuery = query;\n this.searchAddon?.findNext(query);\n }\n\n /**\n * Find next search match\n */\n public searchNext(): void {\n if (this.searchQuery) {\n this.searchAddon?.findNext(this.searchQuery);\n }\n }\n\n /**\n * Find previous search match\n */\n public searchPrevious(): void {\n if (this.searchQuery) {\n this.searchAddon?.findPrevious(this.searchQuery);\n }\n }\n\n // =====================\n // Control Methods\n // =====================\n\n private toggleAutoScroll() {\n this.autoScroll = !this.autoScroll;\n if (this.autoScroll && this.terminal) {\n this.terminal.scrollToBottom();\n }\n }\n\n /**\n * Toggle between filter mode and highlight mode\n */\n private toggleFilterMode() {\n this.filterMode = !this.filterMode;\n this.reRenderFilteredLogs();\n }\n\n /**\n * Re-render logs based on current filter state\n * In filter mode: show matching logs with placeholders for hidden entries\n * In highlight mode: show all logs\n */\n private reRenderFilteredLogs() {\n if (!this.terminal) return;\n\n // Clear terminal and re-render\n this.terminal.clear();\n\n // Reset trailing count for fresh render\n this.trailingHiddenCount = 0;\n\n if (!this.filterMode || !this.searchQuery) {\n // No filtering - show all entries\n for (const entry of this.logBuffer) {\n const formatted = this.formatLogEntry(entry);\n this.terminal.writeln(formatted);\n }\n } else {\n // Filter mode with placeholders for hidden entries\n let hiddenCount = 0;\n\n for (const entry of this.logBuffer) {\n if (this.entryMatchesFilter(entry)) {\n // Output placeholder for hidden entries if any\n if (hiddenCount > 0) {\n this.writeHiddenPlaceholder(hiddenCount);\n hiddenCount = 0;\n }\n // Output the matching entry\n const formatted = this.formatLogEntry(entry);\n this.terminal.writeln(formatted);\n } else {\n hiddenCount++;\n }\n }\n\n // Handle trailing hidden entries\n if (hiddenCount > 0) {\n this.writeHiddenPlaceholder(hiddenCount);\n // Store trailing count for live updates\n this.trailingHiddenCount = hiddenCount;\n }\n }\n\n if (this.autoScroll) {\n this.terminal.scrollToBottom();\n }\n }\n\n /**\n * Write a placeholder line showing how many log entries are hidden by filter\n */\n private writeHiddenPlaceholder(count: number) {\n const dim = '\\x1b[2m';\n const reset = '\\x1b[0m';\n const text = count === 1\n ? `[1 log line hidden by filter ...]`\n : `[${count} log lines hidden by filter ...]`;\n this.terminal?.writeln(`${dim}${text}${reset}`);\n }\n\n /**\n * Clear all logs and reset metrics\n */\n public clearLogs() {\n this.terminal?.clear();\n this.logBuffer = [];\n this.trailingHiddenCount = 0;\n this.resetMetrics();\n }\n\n /**\n * Scroll to the bottom of the log\n */\n public scrollToBottom() {\n this.terminal?.scrollToBottom();\n }\n\n // =====================\n // Metrics Methods\n // =====================\n\n private updateMetrics(level: ILogEntry['level']) {\n this.metrics = {\n ...this.metrics,\n [level]: this.metrics[level] + 1,\n total: this.metrics.total + 1,\n };\n this.recordLogEvent();\n }\n\n private recordLogEvent() {\n this.rateBuffer.push(Date.now());\n }\n\n private calculateRate() {\n const now = Date.now();\n // Keep only events from the last 10 seconds\n this.rateBuffer = this.rateBuffer.filter((t) => now - t < 10000);\n const rate = this.rateBuffer.length / 10;\n\n if (rate !== this.metrics.rate) {\n this.metrics = { ...this.metrics, rate };\n }\n }\n\n private resetMetrics() {\n this.metrics = { debug: 0, info: 0, warn: 0, error: 0, success: 0, total: 0, rate: 0 };\n this.rateBuffer = [];\n }\n\n // =====================\n // Lifecycle\n // =====================\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.terminalThemeSubscription) {\n this.terminalThemeSubscription.unsubscribe();\n }\n\n if (this.rateInterval) {\n clearInterval(this.rateInterval);\n }\n\n if (this.terminal) {\n this.terminal.dispose();\n }\n }\n}\n", "export * from './dees-chart-log.js';\n", "// Chart Components\nexport * from './dees-chart-area/index.js';\nexport * from './dees-chart-log/index.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
      \n
      \n
      TypeScript Code Example
      \n
      A comprehensive TypeScript code example with various syntax highlighting.
      \n \ninterface User {\n id: number;\n name: string;\n email: string;\n isActive: boolean;\n}\n\nclass UserService {\n private users: User[] = [];\n \n constructor(private apiUrl: string) {\n console.log('UserService initialized');\n }\n \n async getUsers(): Promise {\n try {\n const response = await fetch(this.apiUrl);\n const data = await response.json();\n return data.users;\n } catch (error) {\n console.error('Failed to fetch users:', error);\n return [];\n }\n }\n \n addUser(user: User): void {\n this.users.push(user);\n }\n}\n\n// Usage example\nconst service = new UserService('https://api.example.com/users');\nconst users = await service.getUsers();\nconsole.log('Found users:', users.length);\n \n
      \n \n
      \n
      JavaScript Example
      \n
      Modern JavaScript with ES6+ features.
      \n \n// Array manipulation examples\nconst numbers = [1, 2, 3, 4, 5];\nconst doubled = numbers.map(n => n * 2);\nconst filtered = numbers.filter(n => n > 3);\n\n// Object destructuring\nconst user = { name: 'John', age: 30, city: 'New York' };\nconst { name, age } = user;\n\n// Promise handling\nconst fetchData = async (url) => {\n const response = await fetch(url);\n return response.json();\n};\n\n// Modern syntax\nconst greet = (name = 'World') => \\`Hello, \\${name}!\\`;\nconsole.log(greet('ShadCN'));\n \n
      \n \n
      \n
      Python Example
      \n
      Python code with classes and type hints.
      \n \nfrom typing import List, Optional\nimport asyncio\n\nclass DataProcessor:\n \"\"\"A simple data processor class\"\"\"\n \n def __init__(self, name: str):\n self.name = name\n self.data: List[dict] = []\n \n async def process_data(self, items: List[dict]) -> List[dict]:\n \"\"\"Process data items asynchronously\"\"\"\n results = []\n for item in items:\n # Simulate async processing\n await asyncio.sleep(0.1)\n results.append({\n 'id': item.get('id'),\n 'processed': True,\n 'processor': self.name\n })\n return results\n \n def get_summary(self) -> dict:\n return {\n 'processor': self.name,\n 'items_processed': len(self.data)\n }\n\n# Usage\nprocessor = DataProcessor(\"Main\")\ndata = await processor.process_data([{'id': 1}, {'id': 2}])\n \n
      \n \n
      \n
      CSS Example
      \n
      Modern CSS with custom properties and animations. Note the shorter language label.
      \n \n/* Modern CSS with custom properties */\n:root {\n --primary-color: #3b82f6;\n --secondary-color: #10b981;\n --background: #ffffff;\n --text-color: #09090b;\n --border-radius: 6px;\n}\n\n.card {\n background: var(--background);\n border: 1px solid #e5e7eb;\n border-radius: var(--border-radius);\n padding: 24px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n transition: all 0.2s ease;\n}\n\n.card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n@keyframes fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n}\n \n
      \n \n
      \n
      JSON Example
      \n
      JSON configuration with proper formatting.
      \n \n{\n \"name\": \"@design.estate/dees-catalog\",\n \"version\": \"1.10.7\",\n \"description\": \"A comprehensive catalog of web components\",\n \"main\": \"dist_ts_web/index.js\",\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"tsbuild tsfolders --allowimplicitany && tsbundle element --production\",\n \"watch\": \"tswatch element\",\n \"test\": \"tstest test/ --web --verbose\"\n },\n \"dependencies\": {\n \"@design.estate/dees-element\": \"^2.0.45\",\n \"highlight.js\": \"^11.9.0\"\n }\n}\n \n
      \n
      \n`", "import { demoFunc } from './dees-dataview-codebox.demo.js';\nimport {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport { cssGeistFontFamily, cssMonoFontFamily } from '../../00fonts.js';\n\nimport type { HLJSApi } from 'highlight.js';\n\nimport * as smartstring from '@push.rocks/smartstring';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { DeesServiceLibLoader } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-dataview-codebox': DeesDataviewCodebox;\n }\n}\n\n@customElement('dees-dataview-codebox')\nexport class DeesDataviewCodebox extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Data View', 'Workspace'];\n\n @property()\n accessor progLang: string = 'typescript';\n\n @property({\n type: String,\n reflect: true,\n })\n accessor codeToDisplay: string = '';\n\n constructor() {\n super();\n }\n\n render(): TemplateResult {\n return html`\n ${domtools.elementBasic.styles}\n \n {\n DeesContextmenu.openContextMenuWithOptions(eventArg, [\n {\n name: 'About',\n iconName: 'circleInfo',\n action: async () => {\n return null;\n },\n },\n ]);\n }}\"\n >\n
      \n
      index.ts
      \n
      \n
      \n
      \n ${(() => {\n let lineCounter = 0;\n return this.codeToDisplay.split('\\n').map((lineArg) => {\n lineCounter++;\n return html`
      ${lineCounter}
      `;\n });\n })()}\n
      \n
      \n
      \n
      \n
      Spaces: 2
      \n
      ${this.progLang}
      \n
      \n \n `;\n }\n\n private codeToDisplayStore = '';\n private highlightJs: HLJSApi | null = null;\n\n public async updated(_changedProperties) {\n super.updated(_changedProperties);\n console.log('highlighting now');\n console.log(this.childNodes);\n const slottedCodeNodes: Text[] = [];\n this.childNodes.forEach((childNode) => {\n if (childNode.nodeName === '#text') {\n slottedCodeNodes.push(childNode as Text);\n }\n });\n if (this.codeToDisplay && this.codeToDisplay !== this.codeToDisplayStore) {\n this.codeToDisplayStore = smartstring.indent.normalize(this.codeToDisplay).trimStart();\n }\n if (slottedCodeNodes[0] && slottedCodeNodes[0].wholeText && !this.codeToDisplay) {\n this.codeToDisplayStore = smartstring.indent\n .normalize(slottedCodeNodes[0].wholeText)\n .trimStart();\n this.codeToDisplay = this.codeToDisplayStore;\n }\n await domtools.plugins.smartdelay.delayFor(0);\n\n // Load highlight.js from CDN if not already loaded\n if (!this.highlightJs) {\n this.highlightJs = await DeesServiceLibLoader.getInstance().loadHighlightJs();\n }\n\n const localCodeNode = this.shadowRoot.querySelector('code');\n const highlightedHtml = this.highlightJs.highlight(this.codeToDisplayStore, {\n language: this.progLang,\n ignoreIllegals: true,\n });\n localCodeNode.innerHTML = highlightedHtml.value;\n }\n}\n", "export * from './dees-dataview-codebox.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\nimport * as tsclass from '@tsclass/tsclass';\n\nexport const demoFunc = () => html` \n
      \n
      \n Right-click on any detail row to copy the value, key, or key:value combination\n
      \n
      \n
      \n
      Service Health Status
      \n \n \n
      \n \n
      \n
      Database Cluster Status
      \n \n \n
      \n \n
      \n
      Build Pipeline Status
      \n \n \n
      \n
      \n
      `;\n", "import * as colors from '../../00colors.js';\nimport * as plugins from '../../00plugins.js';\n\nimport { demoFunc } from './dees-dataview-statusobject.demo.js';\nimport {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n css,\n type CSSResult,\n} from '@design.estate/dees-element';\n\nimport * as tsclass from '@tsclass/tsclass';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-dataview-statusobject': DeesDataviewStatusobject;\n }\n}\n\n@customElement('dees-dataview-statusobject')\nexport class DeesDataviewStatusobject extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Data View'];\n\n @property({ type: Object }) accessor statusObject: tsclass.code.IStatusObject;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n }\n\n .mainbox {\n border-radius: 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n box-shadow: 0 1px 3px 0 hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);\n min-height: 48px;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n cursor: default;\n overflow: hidden;\n }\n\n .heading {\n display: grid;\n align-items: center;\n grid-template-columns: 48px auto 100px;\n height: 56px;\n padding: 0 16px;\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n h1 {\n display: block;\n margin: 0px;\n padding: 0px 12px;\n font-size: 14px;\n font-weight: 500;\n letter-spacing: -0.01em;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .statusdot {\n height: 10px;\n width: 10px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n margin: auto;\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(0 0% 63.9% / 0.2)', 'hsl(0 0% 45.1% / 0.2)')};\n transition: all 0.2s ease;\n }\n\n .copyMain {\n font-size: 12px;\n font-weight: 500;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 14.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n text-align: center;\n padding: 6px 12px;\n border-radius: 6px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n user-select: none;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .copyMain:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .copyMain:active {\n background: ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 14.9%)')};\n transform: scale(0.98);\n }\n\n .statusdot.ok {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(142.1 76.2% 36.3% / 0.2)', 'hsl(142.1 70.6% 45.3% / 0.2)')};\n }\n\n .statusdot.not_ok {\n background: ${cssManager.bdTheme('hsl(0 84.2% 60.2%)', 'hsl(0 72.2% 50.6%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(0 84.2% 60.2% / 0.2)', 'hsl(0 72.2% 50.6% / 0.2)')};\n }\n\n .statusdot.partly_ok {\n background: ${cssManager.bdTheme('hsl(25 95% 53%)', 'hsl(25 95% 63%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(25 95% 53% / 0.2)', 'hsl(25 95% 63% / 0.2)')};\n }\n\n .detail {\n min-height: 60px;\n align-items: center;\n display: grid;\n grid-template-columns: 48px auto;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 14.9%)')};\n transition: background-color 0.15s ease;\n padding-right: 16px;\n cursor: context-menu;\n }\n\n .detail:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};\n }\n\n .detail:active {\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 9%)')};\n }\n\n .detail .detailsText {\n padding: 12px;\n word-break: break-all;\n }\n\n .detail .detailsText .label {\n font-size: 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')}\n margin-bottom: 2px;\n letter-spacing: -0.01em;\n }\n\n .detail .detailsText .value {\n font-size: 14px;\n font-family: 'Intel One Mono', 'Geist Mono', monospace;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n line-height: 1.5;\n }\n `,\n ];\n\n render(): TemplateResult {\n return html`\n
      \n
      \n
      \n

      ${this.statusObject?.name || 'No status object assigned'}

      \n
      Copy JSON
      \n
      \n ${this.statusObject?.details?.map((detailArg) => {\n return html`\n
      {\n event.preventDefault();\n DeesContextmenu.openContextMenuWithOptions(event, [\n {\n name: 'Copy Value',\n iconName: 'lucide:copy',\n action: async () => {\n await this.copyToClipboard(detailArg.value, 'Value');\n },\n },\n {\n name: 'Copy Key',\n iconName: 'lucide:key',\n action: async () => {\n await this.copyToClipboard(detailArg.name, 'Key');\n },\n },\n {\n name: 'Copy Key:Value',\n iconName: 'lucide:copy-plus',\n action: async () => {\n await this.copyToClipboard(`${detailArg.name}: ${detailArg.value}`, 'Key:Value');\n },\n },\n ]);\n }}\n >\n
      \n
      \n
      ${detailArg.name}
      \n
      ${detailArg.value}
      \n
      \n
      \n `;\n })}\n
      \n `;\n }\n\n async firstUpdated() {}\n\n private async copyToClipboard(text: string, type: string = 'Text') {\n try {\n await navigator.clipboard.writeText(text);\n console.log(`${type} copied to clipboard`);\n // You could add visual feedback here if needed\n } catch (err) {\n console.error(`Failed to copy ${type}:`, err);\n }\n }\n\n private async handleCopyAsJson() {\n if (!this.statusObject) return;\n \n try {\n await navigator.clipboard.writeText(JSON.stringify(this.statusObject, null, 2));\n \n // Show feedback\n const button = this.shadowRoot.querySelector('.copyMain') as HTMLElement;\n const originalText = button.textContent;\n button.textContent = 'Copied!';\n \n // Apply success styles based on theme\n const isDark = !this.goBright;\n button.style.background = isDark ? 'hsl(142.1 70.6% 45.3% / 0.1)' : 'hsl(142.1 76.2% 36.3% / 0.1)';\n button.style.borderColor = isDark ? 'hsl(142.1 70.6% 45.3%)' : 'hsl(142.1 76.2% 36.3%)';\n button.style.color = isDark ? 'hsl(142.1 70.6% 45.3%)' : 'hsl(142.1 76.2% 36.3%)';\n \n setTimeout(() => {\n button.textContent = originalText;\n button.style.background = '';\n button.style.borderColor = '';\n button.style.color = '';\n }, 1500);\n } catch (err) {\n console.error('Failed to copy:', err);\n }\n }\n}\n", "export * from './dees-dataview-statusobject.js';\n", "export * from './dees-statsgrid.js';\n", "// Data View Components\nexport * from './dees-dataview-codebox/index.js';\nexport * from './dees-dataview-statusobject/index.js';\nexport * from './dees-table/index.js';\nexport * from './dees-statsgrid/index.js';\n", "import {\n customElement,\n DeesElement,\n type TemplateResult,\n html,\n css,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport type {\n IActionBarOptions,\n IActionBarResult,\n IActionBarQueueItem,\n IActionBarAction,\n} from './actionbar.interfaces.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-actionbar': DeesActionbar;\n }\n}\n\n@customElement('dees-actionbar')\nexport class DeesActionbar extends DeesElement {\n // STATIC\n public static demoGroups = ['Feedback', 'Overlay'];\n public static demo = () => {\n const getActionbar = (e: Event) => {\n const button = e.currentTarget as HTMLElement;\n const container = button.closest('.demo-container');\n return container?.querySelector('dees-actionbar') as DeesActionbar | null;\n };\n\n const showActionBar = async (e: Event) => {\n const actionbar = getActionbar(e);\n if (!actionbar) return;\n const result = await actionbar.show({\n message: 'File changed externally. Reload?',\n type: 'warning',\n icon: 'lucide:alertTriangle',\n actions: [\n { id: 'reload', label: 'Reload', primary: true },\n { id: 'ignore', label: 'Ignore' },\n ],\n timeout: { duration: 5000, defaultActionId: 'reload' },\n dismissible: true,\n });\n console.log('Action bar result:', result);\n };\n\n const showErrorBar = async (e: Event) => {\n const actionbar = getActionbar(e);\n if (!actionbar) return;\n const result = await actionbar.show({\n message: 'Process failed with exit code 1',\n type: 'error',\n icon: 'lucide:xCircle',\n actions: [\n { id: 'retry', label: 'Retry', primary: true },\n { id: 'dismiss', label: 'Dismiss' },\n ],\n timeout: { duration: 10000, defaultActionId: 'dismiss' },\n });\n console.log('Error bar result:', result);\n };\n\n const showQuestionBar = async (e: Event) => {\n const actionbar = getActionbar(e);\n if (!actionbar) return;\n const result = await actionbar.show({\n message: 'Save changes before closing?',\n type: 'question',\n icon: 'lucide:helpCircle',\n actions: [\n { id: 'save', label: 'Save', primary: true },\n { id: 'discard', label: 'Discard' },\n { id: 'cancel', label: 'Cancel' },\n ],\n });\n console.log('Question bar result:', result);\n };\n\n return html`\n \n
      \n
      \n Warning\n Error\n Question\n
      \n \n
      \n `;\n };\n\n // Queue of pending action bars\n private queue: IActionBarQueueItem[] = [];\n\n // Current active bar state\n @state() accessor currentBar: IActionBarOptions | null = null;\n @state() accessor timeRemaining: number = 0;\n @state() accessor progressPercent: number = 100;\n @state() accessor isVisible: boolean = false;\n\n // Timeout handling\n private timeoutInterval: ReturnType | null = null;\n private currentResolve: ((result: IActionBarResult) => void) | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n }\n\n .actionbar-item {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 0.2s ease-out;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 12%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 20%)')};\n }\n\n :host(.visible) .actionbar-item {\n grid-template-rows: 1fr;\n }\n\n .actionbar-content {\n overflow: hidden;\n min-height: 0;\n opacity: 0;\n transition: opacity 0.2s ease-out;\n }\n\n :host(.visible) .actionbar-content {\n opacity: 1;\n }\n\n .progress-bar {\n height: 3px;\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 18%)')};\n overflow: hidden;\n }\n\n .progress-bar-fill {\n height: 100%;\n background: ${cssManager.bdTheme('hsl(210 100% 50%)', 'hsl(210 100% 60%)')};\n transition: width 0.1s linear;\n }\n\n .progress-bar-fill.warning {\n background: ${cssManager.bdTheme('hsl(38 92% 50%)', 'hsl(38 92% 55%)')};\n }\n\n .progress-bar-fill.error {\n background: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 55%)')};\n }\n\n .progress-bar-fill.question {\n background: ${cssManager.bdTheme('hsl(270 70% 50%)', 'hsl(270 70% 60%)')};\n }\n\n .content {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n gap: 12px;\n min-height: 32px;\n }\n\n .message-section {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .message-icon {\n flex-shrink: 0;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .message-icon.info {\n color: ${cssManager.bdTheme('hsl(210 100% 45%)', 'hsl(210 100% 60%)')};\n }\n\n .message-icon.warning {\n color: ${cssManager.bdTheme('hsl(38 92% 45%)', 'hsl(38 92% 55%)')};\n }\n\n .message-icon.error {\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 55%)')};\n }\n\n .message-icon.question {\n color: ${cssManager.bdTheme('hsl(270 70% 50%)', 'hsl(270 70% 60%)')};\n }\n\n .message-text {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 85%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .actions-section {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n }\n\n .action-button {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n border: 1px solid transparent;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .action-button.secondary {\n background: transparent;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 70%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 80%)', 'hsl(0 0% 30%)')};\n }\n\n .action-button.secondary:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 92%)', 'hsl(0 0% 18%)')};\n }\n\n .action-button.primary {\n background: ${cssManager.bdTheme('hsl(210 100% 50%)', 'hsl(210 100% 55%)')};\n color: white;\n }\n\n .action-button.primary:hover {\n background: ${cssManager.bdTheme('hsl(210 100% 45%)', 'hsl(210 100% 50%)')};\n }\n\n .action-button.primary.warning {\n background: ${cssManager.bdTheme('hsl(38 92% 45%)', 'hsl(38 92% 50%)')};\n }\n\n .action-button.primary.warning:hover {\n background: ${cssManager.bdTheme('hsl(38 92% 40%)', 'hsl(38 92% 45%)')};\n }\n\n .action-button.primary.error {\n background: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 55%)')};\n }\n\n .action-button.primary.error:hover {\n background: ${cssManager.bdTheme('hsl(0 70% 45%)', 'hsl(0 70% 50%)')};\n }\n\n .action-button.primary.question {\n background: ${cssManager.bdTheme('hsl(270 70% 50%)', 'hsl(270 70% 55%)')};\n }\n\n .action-button.primary.question:hover {\n background: ${cssManager.bdTheme('hsl(270 70% 45%)', 'hsl(270 70% 50%)')};\n }\n\n .countdown {\n font-size: 11px;\n opacity: 0.8;\n margin-left: 2px;\n }\n\n .dismiss-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n transition: all 0.15s ease;\n }\n\n .dismiss-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 22%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 70%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n const bar = this.currentBar;\n const type = bar?.type || 'info';\n const hasTimeout = bar?.timeout && this.timeRemaining > 0;\n\n // ALWAYS render wrapper - required for grid animation to work\n return html`\n
      \n
      \n ${bar ? html`\n ${hasTimeout ? html`\n
      \n
      \n
      \n ` : ''}\n
      \n
      \n ${bar.icon ? html`\n \n ` : ''}\n ${bar.message}\n
      \n
      \n ${bar.actions.map(action => this.renderActionButton(action, bar, hasTimeout))}\n ${bar.dismissible ? html`\n this.handleDismiss()}\n title=\"Dismiss\"\n >\n \n
      \n ` : ''}\n
      \n
      \n ` : ''}\n \n \n `;\n }\n\n private renderActionButton(\n action: IActionBarAction,\n bar: IActionBarOptions,\n hasTimeout: boolean | undefined\n ): TemplateResult {\n const isPrimary = action.primary;\n const type = bar.type || 'info';\n const isDefaultAction = bar.timeout?.defaultActionId === action.id;\n const showCountdown = hasTimeout && isDefaultAction;\n const seconds = Math.ceil(this.timeRemaining / 1000);\n\n return html`\n this.handleAction(action.id, false)}\n >\n ${action.icon ? html`\n \n ` : ''}\n ${action.label}\n ${showCountdown ? html`\n (${seconds}s)\n ` : ''}\n \n `;\n }\n\n // ========== Public API ==========\n\n /**\n * Show an action bar with the given options.\n * Returns a promise that resolves when an action is taken.\n */\n public async show(options: IActionBarOptions): Promise {\n return new Promise((resolve) => {\n // Add to queue\n this.queue.push({ options, resolve });\n\n // If no current bar, process queue\n if (!this.currentBar) {\n this.processQueue();\n }\n });\n }\n\n /**\n * Dismiss the current action bar without triggering any action.\n */\n public dismiss(): void {\n this.handleDismiss();\n }\n\n /**\n * Clear all pending action bars in the queue.\n */\n public clearQueue(): void {\n // Resolve all queued items with dismiss\n for (const item of this.queue) {\n item.resolve({ actionId: 'dismissed', timedOut: false });\n }\n this.queue = [];\n }\n\n // ========== Private Methods ==========\n\n /**\n * Hide the current actionbar with animation.\n * Removes visible class first to trigger CSS transition, then clears content after animation.\n */\n private async hideCurrentBar(): Promise {\n // Remove visible class to start close animation\n this.classList.remove('visible');\n this.isVisible = false;\n\n // Wait for animation to complete (200ms transition + buffer)\n await new Promise(resolve => setTimeout(resolve, 220));\n\n // Now safe to clear content\n this.currentBar = null;\n this.currentResolve = null;\n }\n\n private async processQueue(): Promise {\n if (this.queue.length === 0) {\n // Hide with animation - don't await, let it run async\n this.hideCurrentBar();\n return;\n }\n\n const item = this.queue.shift()!;\n this.currentBar = item.options;\n this.currentResolve = item.resolve;\n this.isVisible = true;\n\n // Wait for Lit render, then add class on next frame to trigger animation\n await this.updateComplete;\n requestAnimationFrame(() => {\n this.classList.add('visible');\n });\n\n // Setup timeout if configured\n if (item.options.timeout) {\n this.startTimeout(item.options.timeout.duration, item.options.timeout.defaultActionId);\n }\n }\n\n private startTimeout(duration: number, defaultActionId: string): void {\n this.timeRemaining = duration;\n this.progressPercent = 100;\n\n const startTime = Date.now();\n const updateInterval = 50; // Update every 50ms for smooth animation\n\n this.timeoutInterval = setInterval(() => {\n const elapsed = Date.now() - startTime;\n this.timeRemaining = Math.max(0, duration - elapsed);\n this.progressPercent = (this.timeRemaining / duration) * 100;\n\n if (this.timeRemaining <= 0) {\n this.clearTimeoutInterval();\n this.handleAction(defaultActionId, true);\n }\n }, updateInterval);\n }\n\n private clearTimeoutInterval(): void {\n if (this.timeoutInterval) {\n clearInterval(this.timeoutInterval);\n this.timeoutInterval = null;\n }\n }\n\n private handleAction(actionId: string, timedOut: boolean): void {\n this.clearTimeoutInterval();\n\n if (this.currentResolve) {\n this.currentResolve({ actionId, timedOut });\n }\n\n // Process next item in queue\n this.processQueue();\n }\n\n private handleDismiss(): void {\n this.handleAction('dismissed', false);\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.clearTimeoutInterval();\n }\n}\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYmFyLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1mZWVkYmFjay9kZWVzLWFjdGlvbmJhci9hY3Rpb25iYXIuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './dees-actionbar.js';\nexport * from './actionbar.interfaces.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n
      \n \n \n \n \n \n \n
      \n`;", "import {\n DeesElement,\n css,\n cssManager,\n customElement,\n html,\n property,\n type CSSResult,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-badge.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-badge': DeesBadge;\n }\n}\n\n@customElement('dees-badge')\nexport class DeesBadge extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Feedback'];\n\n @property({ type: String })\n accessor type: 'default' | 'primary' | 'success' | 'warning' | 'error' = 'default';\n\n @property({ type: String })\n accessor text: string = '';\n\n @property({ type: Boolean })\n accessor rounded: boolean = false;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-block;\n }\n\n .badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 2px 8px;\n font-size: 12px;\n font-weight: 500;\n line-height: 1.5;\n border-radius: 4px;\n white-space: nowrap;\n }\n\n .badge.rounded {\n border-radius: 12px;\n }\n\n .badge.default {\n background: ${cssManager.bdTheme('#f5f5f5', '#333')};\n color: ${cssManager.bdTheme('#666', '#ccc')};\n }\n\n .badge.primary {\n background: #0050b9;\n color: #ffffff;\n }\n\n .badge.success {\n background: #2e7d32;\n color: #ffffff;\n }\n\n .badge.warning {\n background: #ed6c02;\n color: #ffffff;\n }\n\n .badge.error {\n background: #e4002b;\n color: #ffffff;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.text}\n
      \n `;\n }\n}", "export * from './dees-badge.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n`;\n", "import {\n DeesElement,\n css,\n cssManager,\n customElement,\n html,\n property,\n type CSSResult,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-hint.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-hint': DeesHint;\n }\n}\n\n@customElement('dees-hint')\nexport class DeesHint extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Feedback'];\n\n @property({ type: String })\n accessor type: 'info' | 'warn' | 'error' | 'critical' = 'info';\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [themeDefaultStyles, cssManager.defaultStyles, css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n `];\n\n public render(): TemplateResult {\n return html`
      `;\n }\n}\n", "export * from './dees-hint.js';\n", "import { html } from '@design.estate/dees-element';\n\nimport { DeesProgressbar } from '../dees-progressbar/dees-progressbar.js';\n\nexport const demoFunc = () => {\n return html`\n \n `;\n}", "import * as plugins from '../../00plugins.js';\nimport * as colors from '../../00colors.js';\nimport { demoFunc } from './dees-progressbar.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n unsafeHTML,\n state,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-progressbar')\nexport class DeesProgressbar extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Feedback'];\n\n // INSTANCE\n @property({\n type: Number,\n })\n accessor percentage = 0;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme(colors.bright.text, colors.dark.text)};\n }\n .progressBarContainer {\n padding: 8px;\n min-width: 200px;\n }\n\n .progressBar {\n background: ${cssManager.bdTheme('#eeeeeb', '#444')};\n height: 8px;\n width: 100%;\n border-radius: 4px;\n border-top: 0.5px solid ${cssManager.bdTheme('none', '#555')};\n }\n\n .progressBarFill {\n background: ${cssManager.bdTheme(colors.dark.blueActive, colors.bright.blueActive)};\n height: 8px;\n margin-top: -0.5px;\n transition: 0.2s width;\n border-radius: 4px;\n width: 0px;\n border-top: 0.5 solid ${cssManager.bdTheme('none', '#398fff')};\n }\n\n .progressText {\n padding: 8px;\n text-align: center;\n }\n `\n ];\n\n public render() {\n return html`\n
      \n
      \n
      \n
      \n ${this.percentage}%\n
      \n
      \n
      \n `\n }\n\n firstUpdated (_changedProperties: Map): void {\n super.firstUpdated(_changedProperties);\n this.updateComplete.then(() => {\n this.updatePercentage();\n });\n }\n\n public async updatePercentage() {\n const progressBarFill = this.shadowRoot.querySelector('.progressBarFill') as HTMLElement;\n progressBarFill.style.width = `${this.percentage}%`;\n }\n\n updated(){\n this.updatePercentage();\n }\n}", "export * from './dees-progressbar.js';\n", "import {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-spinner': DeesSpinner;\n }\n}\n\n@customElement('dees-spinner')\nexport class DeesSpinner extends DeesElement {\n public static demoGroups = ['Feedback'];\n public static demo = () => html`\n \n \n \n \n \n `;\n\n @property({\n type: Number,\n })\n accessor size = 20;\n\n @property({\n type: String,\n })\n accessor bnw: boolean = false;\n\n @property()\n accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n }\n\n #loading {\n position: relative;\n transition: none;\n display: flex;\n justify-content: center;\n align-content: center;\n background: #8bc34a00;\n border: 3px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.3)')};\n border-radius: 50%;\n border-top-color: ${cssManager.bdTheme('#333', '#fff')};\n animation: spin 1s ease-in-out infinite;\n -webkit-animation: spin 1s ease-in-out infinite;\n }\n\n #loading.success {\n border: none;\n border-radius: 50%;\n animation: none;\n -webkit-animation: none;\n }\n\n #loading.error {\n border: none;\n border-radius: 50%;\n animation: none;\n -webkit-animation: none;\n }\n\n @keyframes spin {\n to {\n -webkit-transform: rotate(360deg);\n }\n }\n @-webkit-keyframes spin {\n to {\n -webkit-transform: rotate(360deg);\n }\n }\n\n dees-icon {\n position: absolute;\n height: 100%;\n width: 100%;\n }\n `,\n ];\n\n render() {\n return html`\n \n
      \n ${(() => {\n if (this.status === 'success') {\n return html``;\n } else if (this.status === 'error') {\n return html``;\n }\n })()}\n
      \n `;\n }\n}\n", "export * from './dees-spinner.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport { DeesToast } from '../dees-toast/dees-toast.js';\nimport '../../00group-button/dees-button/dees-button.js';\n\nexport const demoFunc = () => html`\n \n\n
      \n {\n document.body.classList.toggle('bright');\n }}>Toggle Theme\n\n
      \n

      Toast Types

      \n

      \n Different toast types for various notification scenarios. Click any button to show a toast.\n

      \n
      \n {\n DeesToast.info('This is an informational message');\n }}>Info Toast\n \n {\n DeesToast.success('Operation completed successfully!');\n }}>Success Toast\n \n {\n DeesToast.warning('Please review before proceeding');\n }}>Warning Toast\n \n {\n DeesToast.error('An error occurred while processing');\n }}>Error Toast\n
      \n
      \n\n
      \n

      Toast Positions

      \n

      \n Toasts can appear in different positions on the screen.\n

      \n
      \n {\n DeesToast.show({\n message: 'Top Right Position',\n type: 'info',\n position: 'top-right'\n });\n }}>Top Right\n \n {\n DeesToast.show({\n message: 'Top Left Position',\n type: 'info',\n position: 'top-left'\n });\n }}>Top Left\n \n {\n DeesToast.show({\n message: 'Bottom Right Position',\n type: 'info',\n position: 'bottom-right'\n });\n }}>Bottom Right\n \n {\n DeesToast.show({\n message: 'Bottom Left Position',\n type: 'info',\n position: 'bottom-left'\n });\n }}>Bottom Left\n \n {\n DeesToast.show({\n message: 'Top Center Position',\n type: 'info',\n position: 'top-center'\n });\n }}>Top Center\n \n {\n DeesToast.show({\n message: 'Bottom Center Position',\n type: 'info',\n position: 'bottom-center'\n });\n }}>Bottom Center\n
      \n
      \n\n
      \n

      Duration Options

      \n

      \n Control how long toasts stay visible. Duration in milliseconds.\n

      \n
      \n {\n DeesToast.show({\n message: 'Quick toast (1 second)',\n type: 'info',\n duration: 1000\n });\n }}>1 Second\n \n {\n DeesToast.show({\n message: 'Standard toast (3 seconds)',\n type: 'info',\n duration: 3000\n });\n }}>3 Seconds (Default)\n \n {\n DeesToast.show({\n message: 'Long toast (5 seconds)',\n type: 'info',\n duration: 5000\n });\n }}>5 Seconds\n \n {\n DeesToast.show({\n message: 'Manual dismiss only (click to close)',\n type: 'warning',\n duration: 0\n });\n }}>No Auto-Dismiss\n
      \n
      \n\n
      \n

      Multiple Toasts

      \n

      \n Multiple toasts stack automatically. They maintain their order and animate smoothly.\n

      \n
      \n {\n DeesToast.info('First notification');\n setTimeout(() => DeesToast.success('Second notification'), 200);\n setTimeout(() => DeesToast.warning('Third notification'), 400);\n setTimeout(() => DeesToast.error('Fourth notification'), 600);\n }}>Show Multiple\n \n {\n for (let i = 1; i <= 5; i++) {\n setTimeout(() => {\n DeesToast.show({\n message: `Notification #${i}`,\n type: i % 2 === 0 ? 'success' : 'info',\n duration: 2000 + (i * 500)\n });\n }, i * 100);\n }\n }}>Rapid Fire\n
      \n
      \n\n
      \n

      Real-World Examples

      \n

      \n Common use cases for toast notifications in applications.\n

      \n
      \n {\n const toast = await DeesToast.show({\n message: 'Saving changes...',\n type: 'info',\n duration: 0\n });\n \n // Simulate save operation\n setTimeout(() => {\n toast.dismiss();\n DeesToast.success('Changes saved successfully!');\n }, 2000);\n }}>Save Operation\n \n {\n DeesToast.error('Failed to connect to server. Please check your internet connection.');\n }}>Network Error\n \n {\n DeesToast.warning('Your session will expire in 5 minutes');\n }}>Session Warning\n \n {\n DeesToast.success('File uploaded successfully!');\n }}>Upload Complete\n
      \n
      \n\n
      \n

      Programmatic Control

      \n

      \n Advanced control over toast behavior.\n

      \n
      \n {\n const toast = await DeesToast.show({\n message: 'This toast can be dismissed programmatically',\n type: 'info',\n duration: 0\n });\n \n setTimeout(() => {\n toast.dismiss();\n DeesToast.success('Toast dismissed after 2 seconds');\n }, 2000);\n }}>Programmatic Dismiss\n \n {\n // Using the convenience methods\n DeesToast.info('Info message', 2000);\n setTimeout(() => DeesToast.success('Success message', 2000), 500);\n setTimeout(() => DeesToast.warning('Warning message', 2000), 1000);\n setTimeout(() => DeesToast.error('Error message', 2000), 1500);\n }}>Convenience Methods\n
      \n
      \n
      \n `;\n", "import { customElement, DeesElement, type TemplateResult, html, css, property, cssManager } from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { zIndexLayers } from '../../00zindex.js';\nimport { demoFunc } from './dees-toast.demo.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-toast': DeesToast;\n }\n}\n\nexport type ToastType = 'info' | 'success' | 'warning' | 'error';\nexport type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';\n\nexport interface IToastOptions {\n message: string;\n type?: ToastType;\n duration?: number;\n position?: ToastPosition;\n}\n\n@customElement('dees-toast')\nexport class DeesToast extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Feedback', 'Overlay'];\n\n private static toastContainers = new Map();\n\n private static getOrCreateContainer(position: ToastPosition): HTMLDivElement {\n if (!this.toastContainers.has(position)) {\n const container = document.createElement('div');\n container.className = `toast-container toast-container-${position}`;\n container.style.cssText = `\n position: fixed;\n z-index: ${zIndexLayers.overlay.toast};\n pointer-events: none;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n `;\n\n // Position the container\n switch (position) {\n case 'top-right':\n container.style.top = '0';\n container.style.right = '0';\n break;\n case 'top-left':\n container.style.top = '0';\n container.style.left = '0';\n break;\n case 'bottom-right':\n container.style.bottom = '0';\n container.style.right = '0';\n break;\n case 'bottom-left':\n container.style.bottom = '0';\n container.style.left = '0';\n break;\n case 'top-center':\n container.style.top = '0';\n container.style.left = '50%';\n container.style.transform = 'translateX(-50%)';\n break;\n case 'bottom-center':\n container.style.bottom = '0';\n container.style.left = '50%';\n container.style.transform = 'translateX(-50%)';\n break;\n }\n\n document.body.appendChild(container);\n this.toastContainers.set(position, container);\n }\n return this.toastContainers.get(position)!;\n }\n\n public static async show(options: IToastOptions | string) {\n const opts: IToastOptions = typeof options === 'string' \n ? { message: options } \n : options;\n\n const toast = new DeesToast();\n toast.message = opts.message;\n toast.type = opts.type || 'info';\n toast.duration = opts.duration || 3000;\n\n const container = this.getOrCreateContainer(opts.position || 'top-right');\n container.appendChild(toast);\n\n // Trigger animation\n await toast.updateComplete;\n requestAnimationFrame(() => {\n toast.isVisible = true;\n });\n\n // Auto dismiss\n if (toast.duration > 0) {\n setTimeout(() => {\n toast.dismiss();\n }, toast.duration);\n }\n\n return toast;\n }\n\n // Alias for consistency with DeesModal\n public static async createAndShow(options: IToastOptions | string) {\n return this.show(options);\n }\n\n // Convenience methods\n public static info(message: string, duration?: number) {\n return this.show({ message, type: 'info', duration });\n }\n\n public static success(message: string, duration?: number) {\n return this.show({ message, type: 'success', duration });\n }\n\n public static warning(message: string, duration?: number) {\n return this.show({ message, type: 'warning', duration });\n }\n\n public static error(message: string, duration?: number) {\n return this.show({ message, type: 'error', duration });\n }\n\n // INSTANCE\n @property({ type: String })\n accessor message: string = '';\n\n @property({ type: String })\n accessor type: ToastType = 'info';\n\n @property({ type: Number })\n accessor duration: number = 3000;\n\n @property({ type: Boolean, reflect: true })\n accessor isVisible: boolean = false;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n pointer-events: auto;\n font-family: ${cssGeistFontFamily};\n opacity: 0;\n transform: translateY(-10px);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n :host([isvisible]) {\n opacity: 1;\n transform: translateY(0);\n }\n\n .toast {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n border-radius: 8px;\n background: ${cssManager.bdTheme('#fff', '#222')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#333')};\n box-shadow: 0 4px 12px ${cssManager.bdTheme('rgba(0,0,0,0.1)', 'rgba(0,0,0,0.3)')};\n min-width: 300px;\n max-width: 500px;\n cursor: pointer;\n }\n\n .toast:hover {\n transform: scale(1.02);\n }\n\n .icon {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .icon svg {\n width: 100%;\n height: 100%;\n }\n\n .message {\n flex: 1;\n font-size: 14px;\n line-height: 1.5;\n color: ${cssManager.bdTheme('#333', '#fff')};\n }\n\n .close {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n opacity: 0.5;\n cursor: pointer;\n transition: opacity 0.2s;\n }\n\n .close:hover {\n opacity: 1;\n }\n\n .close svg {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n\n /* Type-specific styles */\n :host([type=\"info\"]) .icon {\n color: #0084ff;\n }\n\n :host([type=\"success\"]) .icon {\n color: #22c55e;\n }\n\n :host([type=\"warning\"]) .icon {\n color: #f59e0b;\n }\n\n :host([type=\"error\"]) .icon {\n color: #ef4444;\n }\n\n /* Progress bar */\n .progress {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 3px;\n background: currentColor;\n opacity: 0.2;\n border-radius: 0 0 8px 8px;\n overflow: hidden;\n }\n\n .progress-bar {\n height: 100%;\n background: currentColor;\n opacity: 0.8;\n transform-origin: left;\n animation: progress linear forwards;\n }\n\n @keyframes progress {\n from {\n transform: scaleX(1);\n }\n to {\n transform: scaleX(0);\n }\n }\n `\n ];\n\n public render(): TemplateResult {\n const icons = {\n info: html`\n \n `,\n success: html`\n \n `,\n warning: html`\n \n `,\n error: html`\n \n `\n };\n\n return html`\n
      \n
      \n ${icons[this.type]}\n
      \n
      ${this.message}
      \n
      \n \n \n \n
      \n ${this.duration > 0 ? html`\n
      \n
      \n
      \n ` : ''}\n
      \n `;\n }\n\n public async dismiss() {\n this.isVisible = false;\n await new Promise(resolve => setTimeout(resolve, 300));\n this.remove();\n \n // Clean up empty containers\n const container = this.parentElement;\n if (container && container.children.length === 0) {\n container.remove();\n for (const [position, cont] of DeesToast.toastContainers.entries()) {\n if (cont === container) {\n DeesToast.toastContainers.delete(position);\n break;\n }\n }\n }\n }\n\n public firstUpdated() {\n // Set the type attribute for CSS\n this.setAttribute('type', this.type);\n }\n}", "export * from './dees-toast.js';\n", "// Feedback Components\nexport * from './dees-actionbar/index.js';\nexport * from './dees-badge/index.js';\nexport * from './dees-hint/index.js';\nexport * from './dees-progressbar/index.js';\nexport * from './dees-spinner/index.js';\nexport * from './dees-toast/index.js';\n", "export * from './dees-form.js';\n", "export * from './dees-form-submit.js';\n", "// Form Components\nexport * from './dees-form/index.js';\nexport * from './dees-form-submit/index.js';\n", "export * from './dees-input-base.js';\n", "export * from './dees-input-checkbox.js';\n", "export * from './dees-input-code.js';\n", "export * from './dees-input-dropdown.js';\n", "export * from './dees-input-iban.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport '../../00group-form/dees-form/dees-form.js';\nimport '../dees-input-text/dees-input-text.js';\nimport '../../00group-form/dees-form-submit/dees-form-submit.js';\n\nexport const demoFunc = () => html`\n \n \n \n
      \n \n \n
      \n \uD83D\uDCA1 Double-click any item to quickly edit it inline\n
      \n
      \n\n \n \n
      \n \uD83D\uDD04 Drag the grip handle to reorder tasks by priority\n
      \n
      \n\n \n
      \n \n \n \n
      \n
      \n\n \n \n \n\n \n \n \n\n \n \n \n \n
      \n \n \n \n
      \n \n \n \n \n
      \n
      \n\n \n {\n const preview = document.querySelector('#list-json');\n if (preview) {\n const data = {\n items: e.detail.value,\n count: e.detail.value.length,\n timestamp: new Date().toISOString()\n };\n preview.textContent = JSON.stringify(data, null, 2);\n }\n }}\n >\n \n
      \n {\n \"items\": [],\n \"count\": 0,\n \"timestamp\": \"${new Date().toISOString()}\"\n }\n
      \n \n
      \n \u2728 Add, edit, remove, and reorder items to see the JSON output update in real-time\n
      \n
      \n\n \n \n \n\n \n \n \n
      \n
      \n`;", "import {\n customElement,\n html,\n css,\n cssManager,\n property,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-button/dees-button/dees-button.js';\nimport { demoFunc } from './dees-input-list.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-list': DeesInputList;\n }\n}\n\n@customElement('dees-input-list')\nexport class DeesInputList extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @property({ type: Array })\n accessor value: string[] = [];\n\n @property({ type: String })\n accessor placeholder: string = 'Add new item...';\n\n @property({ type: Number })\n accessor maxItems: number = 0; // 0 means unlimited\n\n @property({ type: Number })\n accessor minItems: number = 0;\n\n @property({ type: Boolean })\n accessor allowDuplicates: boolean = false;\n\n @property({ type: Boolean })\n accessor sortable: boolean = false;\n\n @property({ type: Boolean })\n accessor confirmDelete: boolean = false;\n\n @property({ type: String })\n accessor validationText: string = '';\n\n @state()\n accessor inputValue: string = '';\n\n @state()\n accessor editingIndex: number = -1;\n\n @state()\n accessor editingValue: string = '';\n\n @state()\n accessor draggedIndex: number = -1;\n\n @state()\n accessor dragOverIndex: number = -1;\n\n // Enhanced drag state for interactive reordering\n @state()\n accessor dragStartY: number = 0;\n\n @state()\n accessor dragCurrentY: number = 0;\n\n @state()\n accessor targetIndex: number = -1;\n\n @state()\n accessor itemHeight: number = 0;\n\n // Bound event handlers for cleanup\n private boundHandleGlobalDragOver: ((e: DragEvent) => void) | null = null;\n private boundHandleGlobalDragEnd: (() => void) | null = null;\n\n // Store original item positions for accurate hit detection (before transforms)\n private originalItemRects: DOMRect[] = [];\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n }\n\n .input-wrapper {\n width: 100%;\n }\n\n .list-container {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n }\n\n .list-container:hover:not(.disabled) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .list-container:focus-within {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .list-container.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .list-items {\n max-height: 400px;\n overflow-y: auto;\n }\n\n .list-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n transition: transform 0.2s ease, background 0.15s ease, box-shadow 0.15s ease;\n position: relative;\n overflow: hidden; /* Prevent animation from affecting scroll bounds */\n }\n\n .list-item:last-of-type {\n border-bottom: none;\n }\n\n .list-items:not(.is-dragging) .list-item:hover:not(.disabled) {\n background: ${cssManager.bdTheme('hsl(0 0% 97.5%)', 'hsl(0 0% 6.9%)')};\n }\n\n /* Dragging item - follows cursor */\n .list-item.dragging {\n position: relative;\n z-index: 100;\n background: ${cssManager.bdTheme('hsl(210 40% 98%)', 'hsl(215 20.2% 12%)')};\n box-shadow: 0 4px 12px ${cssManager.bdTheme('rgba(0, 0, 0, 0.15)', 'rgba(0, 0, 0, 0.4)')};\n border-radius: 6px;\n transition: box-shadow 0.15s ease, background 0.15s ease;\n }\n\n /* Items that need to move up to make space */\n .list-item.move-up {\n transform: translateY(calc(-1 * var(--item-height, 48px)));\n }\n\n /* Items that need to move down to make space */\n .list-item.move-down {\n transform: translateY(var(--item-height, 48px));\n }\n\n\n .drag-handle {\n display: flex;\n align-items: center;\n cursor: move;\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n transition: color 0.15s ease;\n }\n\n .drag-handle:hover {\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n .drag-handle dees-icon {\n width: 16px;\n height: 16px;\n }\n\n .item-content {\n flex: 1;\n display: flex;\n align-items: center;\n min-width: 0;\n }\n\n .item-text {\n flex: 1;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n font-size: 14px;\n line-height: 20px;\n word-break: break-word;\n }\n\n .item-edit-input {\n flex: 1;\n padding: 4px 8px;\n font-size: 14px;\n font-family: inherit;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n border-radius: 4px;\n outline: none;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .item-actions {\n display: flex;\n gap: 4px;\n align-items: center;\n }\n\n .action-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n background: transparent;\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n .action-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .action-button.save {\n color: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3%)', 'hsl(142.1 70.6% 45.3%)')};\n }\n\n .action-button.save:hover {\n background: ${cssManager.bdTheme('hsl(142.1 76.2% 36.3% / 0.1)', 'hsl(142.1 70.6% 45.3% / 0.1)')};\n }\n\n .action-button.cancel {\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 50.6%)')};\n }\n\n .action-button.cancel:hover {\n background: ${cssManager.bdTheme('hsl(0 72.2% 50.6% / 0.1)', 'hsl(0 62.8% 50.6% / 0.1)')};\n }\n\n .action-button.delete {\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 50.6%)')};\n }\n\n .action-button.delete:hover {\n background: ${cssManager.bdTheme('hsl(0 72.2% 50.6% / 0.1)', 'hsl(0 62.8% 50.6% / 0.1)')};\n }\n\n .action-button dees-icon {\n width: 14px;\n height: 14px;\n }\n\n .add-item-container {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n background: ${cssManager.bdTheme('hsl(0 0% 97.5%)', 'hsl(0 0% 6.9%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n }\n\n .add-input {\n flex: 1;\n padding: 8px 12px;\n font-size: 14px;\n font-family: inherit;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n outline: none;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n transition: all 0.15s ease;\n }\n\n .add-input:focus {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .add-input::placeholder {\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n }\n\n .add-input:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .add-button {\n padding: 8px 16px;\n }\n\n .empty-state {\n padding: 32px 16px;\n text-align: center;\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n font-size: 14px;\n font-style: italic;\n }\n\n .validation-message {\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n font-size: 13px;\n margin-top: 6px;\n line-height: 1.5;\n }\n\n .description {\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n font-size: 13px;\n margin-top: 6px;\n line-height: 1.5;\n }\n\n /* Scrollbar styling */\n .list-items::-webkit-scrollbar {\n width: 8px;\n }\n\n .list-items::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .list-items::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 24.9%)')};\n border-radius: 4px;\n }\n\n .list-items::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 34.9%)')};\n }\n\n /* Disable transitions during drop to prevent flash */\n .list-items.dropping .list-item {\n transition: none !important;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
      \n ${this.label ? html`` : ''}\n \n
      \n
      \n ${this.value.length > 0 ? this.value.map((item, index) => html`\n this.handleDragStart(e, index)}\n @dragend=${this.handleDragEnd}\n @dragover=${(e: DragEvent) => this.handleDragOver(e, index)}\n @drop=${(e: DragEvent) => this.handleDrop(e, index)}\n >\n ${this.sortable && !this.disabled ? html`\n
      \n \n
      \n ` : ''}\n \n
      \n ${this.editingIndex === index ? html`\n this.editingValue = (e.target as HTMLInputElement).value}\n @keydown=${(e: KeyboardEvent) => this.handleEditKeyDown(e, index)}\n @blur=${() => this.saveEdit(index)}\n />\n ` : html`\n
      !this.disabled && this.startEdit(index)}>\n ${item}\n
      \n `}\n
      \n \n
      \n ${this.editingIndex === index ? html`\n \n \n ` : html`\n ${!this.disabled ? html`\n \n \n ` : ''}\n `}\n
      \n
      \n `) : html`\n
      \n No items added yet\n
      \n `}\n
      \n \n ${!this.disabled && (!this.maxItems || this.value.length < this.maxItems) ? html`\n
      \n \n \n Add\n \n
      \n ` : ''}\n
      \n\n ${this.validationText ? html`\n
      ${this.validationText}
      \n ` : ''}\n \n ${this.description ? html`\n
      ${this.description}
      \n ` : ''}\n
      \n `;\n }\n\n private handleInput(e: InputEvent) {\n this.inputValue = (e.target as HTMLInputElement).value;\n }\n\n private handleAddKeyDown(e: KeyboardEvent) {\n if (e.key === 'Enter' && this.inputValue.trim()) {\n e.preventDefault();\n this.addItem();\n }\n }\n\n private handleEditKeyDown(e: KeyboardEvent, index: number) {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.saveEdit(index);\n } else if (e.key === 'Escape') {\n e.preventDefault();\n this.cancelEdit();\n }\n }\n\n private addItem() {\n const trimmedValue = this.inputValue.trim();\n if (!trimmedValue) return;\n\n if (!this.allowDuplicates && this.value.includes(trimmedValue)) {\n this.validationText = 'This item already exists in the list';\n setTimeout(() => this.validationText = '', 3000);\n return;\n }\n\n if (this.maxItems && this.value.length >= this.maxItems) {\n this.validationText = `Maximum ${this.maxItems} items allowed`;\n setTimeout(() => this.validationText = '', 3000);\n return;\n }\n\n this.value = [...this.value, trimmedValue];\n this.inputValue = '';\n this.validationText = '';\n \n // Clear the input\n const input = this.shadowRoot?.querySelector('.add-input') as HTMLInputElement;\n if (input) {\n input.value = '';\n input.focus();\n }\n\n this.emitChange();\n }\n\n private startEdit(index: number) {\n this.editingIndex = index;\n this.editingValue = this.value[index];\n \n // Focus the input after render\n this.updateComplete.then(() => {\n const input = this.shadowRoot?.querySelector('.item-edit-input') as HTMLInputElement;\n if (input) {\n input.focus();\n input.select();\n }\n });\n }\n\n private saveEdit(index: number) {\n const trimmedValue = this.editingValue.trim();\n \n if (!trimmedValue) {\n this.cancelEdit();\n return;\n }\n\n if (!this.allowDuplicates && trimmedValue !== this.value[index] && this.value.includes(trimmedValue)) {\n this.validationText = 'This item already exists in the list';\n setTimeout(() => this.validationText = '', 3000);\n return;\n }\n\n const newValue = [...this.value];\n newValue[index] = trimmedValue;\n this.value = newValue;\n \n this.editingIndex = -1;\n this.editingValue = '';\n this.validationText = '';\n this.emitChange();\n }\n\n private cancelEdit() {\n this.editingIndex = -1;\n this.editingValue = '';\n }\n\n private async removeItem(index: number) {\n if (this.confirmDelete) {\n const confirmed = await this.showConfirmDialog(`Delete \"${this.value[index]}\"?`);\n if (!confirmed) return;\n }\n\n this.value = this.value.filter((_, i) => i !== index);\n this.emitChange();\n }\n\n private async showConfirmDialog(message: string): Promise {\n // For now, use native confirm. In production, this should use a proper modal\n return confirm(message);\n }\n\n // Drag and drop handlers - Interactive implementation\n private handleDragStart(e: DragEvent, index: number) {\n if (!this.sortable || this.disabled) return;\n\n this.draggedIndex = index;\n this.targetIndex = index;\n e.dataTransfer!.effectAllowed = 'move';\n e.dataTransfer!.setData('text/plain', index.toString());\n\n // Hide the default drag image\n const emptyImg = new Image();\n emptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n e.dataTransfer!.setDragImage(emptyImg, 0, 0);\n\n // Store initial mouse position\n this.dragStartY = e.clientY;\n this.dragCurrentY = e.clientY;\n\n // Measure item height and store all original positions before any transforms\n const listItems = this.shadowRoot?.querySelector('.list-items');\n const allItems = Array.from(listItems?.querySelectorAll('.list-item') || []) as HTMLElement[];\n\n if (allItems[index]) {\n this.itemHeight = allItems[index].offsetHeight;\n }\n\n // Store original positions for accurate hit detection (before any transforms are applied)\n this.originalItemRects = allItems.map(item => item.getBoundingClientRect());\n\n // Add class to container\n listItems?.classList.add('is-dragging');\n\n // Set up global event listeners\n this.boundHandleGlobalDragOver = this.handleGlobalDragOver.bind(this);\n this.boundHandleGlobalDragEnd = this.handleGlobalDragEnd.bind(this);\n document.addEventListener('dragover', this.boundHandleGlobalDragOver);\n document.addEventListener('dragend', this.boundHandleGlobalDragEnd);\n }\n\n private handleGlobalDragOver(e: DragEvent) {\n e.preventDefault();\n if (this.draggedIndex === -1) return;\n\n this.dragCurrentY = e.clientY;\n\n // Calculate which position the item should move to\n const listItems = this.shadowRoot?.querySelector('.list-items');\n if (!listItems) return;\n\n const items = Array.from(listItems.querySelectorAll('.list-item')) as HTMLElement[];\n const draggedElement = items[this.draggedIndex];\n if (!draggedElement) return;\n\n // Apply transform to dragged item\n const deltaY = this.dragCurrentY - this.dragStartY;\n draggedElement.style.transform = `translateY(${deltaY}px)`;\n\n // Calculate the dragged item's current center position\n const draggedRect = this.originalItemRects[this.draggedIndex];\n if (!draggedRect) return;\n const draggedCenter = draggedRect.top + draggedRect.height / 2 + deltaY;\n\n // Determine target index: swap when dragged item's center crosses another item's center\n // Account for items that have already shifted (their visual position changed)\n let newTargetIndex = this.draggedIndex;\n\n for (let i = 0; i < items.length; i++) {\n if (i === this.draggedIndex) continue;\n\n const rect = this.originalItemRects[i];\n if (!rect) continue;\n\n // Adjust item center based on whether it has shifted\n let itemCenter = rect.top + rect.height / 2;\n\n // If item has moved, use its shifted position\n if (items[i].classList.contains('move-up')) {\n itemCenter -= this.itemHeight;\n } else if (items[i].classList.contains('move-down')) {\n itemCenter += this.itemHeight;\n }\n\n if (draggedCenter < itemCenter && i < this.draggedIndex) {\n newTargetIndex = i;\n break;\n } else if (draggedCenter > itemCenter && i > this.draggedIndex) {\n newTargetIndex = i;\n }\n }\n\n // Update target index and apply move classes\n if (newTargetIndex !== this.targetIndex) {\n this.targetIndex = newTargetIndex;\n this.updateItemPositions(items);\n }\n }\n\n private updateItemPositions(items: HTMLElement[]) {\n const draggedIdx = this.draggedIndex;\n const targetIdx = this.targetIndex;\n\n // Set CSS variable for item height\n const listItems = this.shadowRoot?.querySelector('.list-items') as HTMLElement;\n if (listItems) {\n listItems.style.setProperty('--item-height', `${this.itemHeight}px`);\n }\n\n items.forEach((item, i) => {\n if (i === draggedIdx) return; // Skip dragged item\n\n item.classList.remove('move-up', 'move-down');\n item.style.setProperty('--item-height', `${this.itemHeight}px`);\n\n if (draggedIdx < targetIdx) {\n // Dragging down: items between draggedIdx and targetIdx move up\n if (i > draggedIdx && i <= targetIdx) {\n item.classList.add('move-up');\n }\n } else if (draggedIdx > targetIdx) {\n // Dragging up: items between targetIdx and draggedIdx move down\n if (i >= targetIdx && i < draggedIdx) {\n item.classList.add('move-down');\n }\n }\n });\n }\n\n private handleGlobalDragEnd() {\n // Clean up event listeners\n if (this.boundHandleGlobalDragOver) {\n document.removeEventListener('dragover', this.boundHandleGlobalDragOver);\n this.boundHandleGlobalDragOver = null;\n }\n if (this.boundHandleGlobalDragEnd) {\n document.removeEventListener('dragend', this.boundHandleGlobalDragEnd);\n this.boundHandleGlobalDragEnd = null;\n }\n\n const listItems = this.shadowRoot?.querySelector('.list-items');\n const items = listItems?.querySelectorAll('.list-item') as NodeListOf;\n const draggedElement = items?.[this.draggedIndex];\n\n // If no reorder needed, animate back and clean up\n if (this.draggedIndex === -1 || this.targetIndex === -1 || this.draggedIndex === this.targetIndex) {\n // Animate dragged item back to original position\n if (draggedElement && this.draggedIndex !== -1) {\n draggedElement.style.transition = 'transform 0.15s ease';\n draggedElement.style.transform = 'translateY(0)';\n\n let handled = false;\n const onReturn = () => {\n if (handled) return;\n handled = true;\n draggedElement.removeEventListener('transitionend', onReturn);\n this.cleanupDragState(listItems, items);\n };\n\n draggedElement.addEventListener('transitionend', onReturn, { once: true });\n setTimeout(onReturn, 200);\n } else {\n this.cleanupDragState(listItems, items);\n }\n return;\n }\n\n // Calculate final position for dragged item\n const draggedRect = this.originalItemRects[this.draggedIndex];\n const targetRect = this.originalItemRects[this.targetIndex];\n\n if (!draggedRect || !targetRect || !draggedElement) {\n this.cleanupDragState(listItems, items);\n return;\n }\n\n // Calculate where dragged item needs to go\n let finalY: number;\n if (this.targetIndex > this.draggedIndex) {\n // Moving down: go to bottom of target\n finalY = targetRect.bottom - draggedRect.bottom;\n } else {\n // Moving up: go to top of target\n finalY = targetRect.top - draggedRect.top;\n }\n\n // Animate dragged item to final position\n draggedElement.style.transition = 'transform 0.15s ease';\n draggedElement.style.transform = `translateY(${finalY}px)`;\n\n // After animation completes, update data\n let handled = false;\n const onTransitionEnd = () => {\n if (handled) return;\n handled = true;\n draggedElement.removeEventListener('transitionend', onTransitionEnd);\n\n // Disable all transitions\n listItems?.classList.add('dropping');\n\n // Force reflow so dropping class takes effect immediately\n void (listItems as HTMLElement)?.offsetHeight;\n\n // Clean up all element state\n items?.forEach(item => {\n item.classList.remove('move-up', 'move-down', 'dragging');\n item.style.removeProperty('transform');\n item.style.removeProperty('transition');\n });\n\n // Update data\n const newValue = [...this.value];\n const [draggedItem] = newValue.splice(this.draggedIndex, 1);\n newValue.splice(this.targetIndex, 0, draggedItem);\n this.value = newValue;\n this.emitChange();\n\n // Reset state\n this.draggedIndex = -1;\n this.dragOverIndex = -1;\n this.targetIndex = -1;\n this.dragStartY = 0;\n this.dragCurrentY = 0;\n this.originalItemRects = [];\n\n // After render, ensure no animation then re-enable transitions\n this.updateComplete.then(() => {\n // Set inline transition:none on fresh elements\n const freshItems = this.shadowRoot?.querySelectorAll('.list-item') as NodeListOf;\n freshItems?.forEach(item => {\n item.style.transition = 'none';\n });\n\n // Force reflow\n void (this.shadowRoot?.querySelector('.list-items') as HTMLElement)?.offsetHeight;\n\n // Now re-enable transitions\n requestAnimationFrame(() => {\n freshItems?.forEach(item => {\n item.style.removeProperty('transition');\n });\n listItems?.classList.remove('dropping', 'is-dragging');\n });\n });\n };\n\n draggedElement.addEventListener('transitionend', onTransitionEnd, { once: true });\n\n // Fallback timeout in case transitionend doesn't fire\n setTimeout(onTransitionEnd, 200);\n }\n\n private cleanupDragState(listItems: Element | null | undefined, items: NodeListOf | undefined) {\n listItems?.classList.add('dropping');\n\n // Force reflow so dropping class takes effect immediately\n void (listItems as HTMLElement)?.offsetHeight;\n\n items?.forEach(item => {\n item.classList.remove('move-up', 'move-down', 'dragging');\n item.style.removeProperty('transform');\n item.style.removeProperty('transition');\n });\n\n this.draggedIndex = -1;\n this.dragOverIndex = -1;\n this.targetIndex = -1;\n this.dragStartY = 0;\n this.dragCurrentY = 0;\n this.originalItemRects = [];\n\n this.updateComplete.then(() => {\n const freshItems = this.shadowRoot?.querySelectorAll('.list-item') as NodeListOf;\n freshItems?.forEach(item => {\n item.style.transition = 'none';\n });\n\n void (this.shadowRoot?.querySelector('.list-items') as HTMLElement)?.offsetHeight;\n\n requestAnimationFrame(() => {\n freshItems?.forEach(item => {\n item.style.removeProperty('transition');\n });\n listItems?.classList.remove('dropping', 'is-dragging');\n });\n });\n }\n\n private handleDragEnd() {\n // This is called by the native dragend on the element\n // The actual cleanup is done in handleGlobalDragEnd\n this.handleGlobalDragEnd();\n }\n\n private handleDragOver(e: DragEvent, index: number) {\n if (!this.sortable || this.disabled) return;\n e.preventDefault();\n e.dataTransfer!.dropEffect = 'move';\n // We handle positioning in handleGlobalDragOver now\n }\n\n private handleDragLeave() {\n // No longer needed for visual feedback - handled by transform\n }\n\n private handleDrop(e: DragEvent, dropIndex: number) {\n if (!this.sortable || this.disabled) return;\n e.preventDefault();\n // The actual reorder happens in handleGlobalDragEnd\n }\n\n private emitChange() {\n this.dispatchEvent(new CustomEvent('change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true\n }));\n this.changeSubject.next(this);\n }\n\n public getValue(): string[] {\n return this.value;\n }\n\n public setValue(value: string[]): void {\n this.value = value || [];\n }\n\n public async validate(): Promise {\n if (this.required && (!this.value || this.value.length === 0)) {\n this.validationText = 'At least one item is required';\n return false;\n }\n \n if (this.minItems && this.value.length < this.minItems) {\n this.validationText = `At least ${this.minItems} items required`;\n return false;\n }\n \n this.validationText = '';\n return true;\n }\n}", "export * from './dees-input-list.js';\n", "export * from './dees-input-multitoggle.js';\n", "export * from './dees-input-phone.js';\n", "export * from './dees-input-quantityselector.js';\n", "export * from './dees-input-radiogroup.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport './component.js';\nimport '../../00group-layout/dees-panel/dees-panel.js';\n\nexport const demoFunc = () => html`\n \n \n \n
      \n \n Welcome to the Rich Text Editor!

      This is a feature-rich editor built with TipTap. You can:

      • Format text with various styles
      • Create different heading levels
      • Add links to external resources
      • Write inline code or code blocks

      Use the toolbar above to explore all the formatting options available!

      Start typing to see the magic happen...

      '}\n .description=${'Use the toolbar to format your content with headings, lists, links, and more'}\n .showWordCount=${true}\n >
      \n
      \n \n \n \n \n \n \n
      \n \n \n \n
      \n
      \n \n \n Installation Guide

      To install the package, run the following command:

      npm install @design.estate/dees-catalog

      Then import the component in your TypeScript file:

      import { DeesInputRichtext } from \"@design.estate/dees-catalog\";

      You can now use the <dees-input-richtext> element in your templates.

      '}\n .minHeight=${250}\n .showWordCount=${true}\n >
      \n
      \n \n \n The Future of Web Components

      Web Components have revolutionized how we build modern web applications...

      \"The future of web development lies in reusable, encapsulated components.\"

      '}\n .disabled=${true}\n .showWordCount=${true}\n >
      \n
      \n \n \n {\n const output = document.querySelector('#output-preview');\n if (output) {\n output.textContent = e.detail.value;\n }\n }}\n >\n \n
      \n HTML output will appear here...\n
      \n
      \n
      \n
      \n`;", "import { css, cssManager } from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\n\nexport const richtextStyles = [\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: relative;\n font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .input-wrapper {\n position: relative;\n }\n\n .label {\n display: block;\n margin-bottom: 8px;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .editor-container {\n display: flex;\n flex-direction: column;\n min-height: ${cssManager.bdTheme('200px', '200px')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n overflow: hidden;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .editor-container:hover {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .editor-container.focused {\n border-color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 9% / 0.05)', 'hsl(0 0% 98% / 0.05)')};\n }\n\n .editor-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n padding: 8px 12px;\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 14.9%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n align-items: center;\n position: relative;\n }\n\n .toolbar-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n transition: all 0.15s ease;\n user-select: none;\n }\n\n .toolbar-button dees-icon {\n width: 16px;\n height: 16px;\n }\n\n .toolbar-button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .toolbar-button.active {\n background: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n }\n\n .toolbar-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .toolbar-divider {\n width: 1px;\n height: 24px;\n background: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n margin: 0 4px;\n }\n\n .editor-content {\n flex: 1;\n padding: 16px;\n overflow-y: auto;\n min-height: var(--min-height, 200px);\n }\n\n .editor-content .ProseMirror {\n outline: none;\n line-height: 1.6;\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n min-height: 100%;\n }\n\n .editor-content .ProseMirror p {\n margin: 0.5em 0;\n }\n\n .editor-content .ProseMirror p:first-child {\n margin-top: 0;\n }\n\n .editor-content .ProseMirror p:last-child {\n margin-bottom: 0;\n }\n\n .editor-content .ProseMirror h1 {\n font-size: 2em;\n font-weight: bold;\n margin: 1em 0 0.5em 0;\n line-height: 1.2;\n }\n\n .editor-content .ProseMirror h2 {\n font-size: 1.5em;\n font-weight: bold;\n margin: 1em 0 0.5em 0;\n line-height: 1.3;\n }\n\n .editor-content .ProseMirror h3 {\n font-size: 1.25em;\n font-weight: bold;\n margin: 1em 0 0.5em 0;\n line-height: 1.4;\n }\n\n .editor-content .ProseMirror ul,\n .editor-content .ProseMirror ol {\n padding-left: 1.5em;\n margin: 0.5em 0;\n }\n\n .editor-content .ProseMirror li {\n margin: 0.25em 0;\n }\n\n .editor-content .ProseMirror blockquote {\n border-left: 4px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n margin: 1em 0;\n padding-left: 1em;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n font-style: italic;\n }\n\n .editor-content .ProseMirror code {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-radius: 3px;\n padding: 0.2em 0.4em;\n font-family: 'Intel One Mono', 'Fira Code', 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New', monospace;\n font-size: 0.9em;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .editor-content .ProseMirror pre {\n background: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 98%)', 'hsl(0 0% 3.9%)')};\n border-radius: 6px;\n padding: 1em;\n margin: 1em 0;\n overflow-x: auto;\n }\n\n .editor-content .ProseMirror pre code {\n background: none;\n color: inherit;\n padding: 0;\n border-radius: 0;\n }\n\n .editor-content .ProseMirror a {\n color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n text-decoration: underline;\n cursor: pointer;\n }\n\n .editor-content .ProseMirror a:hover {\n color: ${cssManager.bdTheme('hsl(222.2 47.4% 41.2%)', 'hsl(217.2 91.2% 69.8%)')};\n }\n\n .editor-footer {\n padding: 8px 12px;\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(0 0% 14.9%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .word-count {\n font-weight: 500;\n }\n\n .link-input {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n padding: 12px;\n z-index: 1000;\n }\n\n .link-input.show {\n display: block;\n }\n\n .link-input input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n outline: none;\n font-size: 14px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .link-input input:focus {\n border-color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('hsl(0 0% 9% / 0.05)', 'hsl(0 0% 98% / 0.05)')};\n }\n\n .link-input-buttons {\n display: flex;\n gap: 8px;\n margin-top: 8px;\n }\n\n .link-input-buttons button {\n padding: 6px 12px;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n cursor: pointer;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n transition: all 0.15s ease;\n font-weight: 500;\n }\n\n .link-input-buttons button:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n .link-input-buttons button.primary {\n background: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n }\n\n .link-input-buttons button.primary:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};\n }\n\n .description {\n margin-top: 8px;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 46.9%)', 'hsl(215 20.2% 65.1%)')};\n line-height: 1.4;\n }\n\n :host([disabled]) .editor-container {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n :host([disabled]) .toolbar-button,\n :host([disabled]) .editor-content {\n pointer-events: none;\n }\n `,\n ];\n\n", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport type { DeesInputRichtext } from './component.js';\n\nexport const renderRichtext = (component: DeesInputRichtext): TemplateResult => {\n return html`\n
      \n ${component.label ? html`` : ''}\n
      \n
      \n ${component.renderToolbar()}\n \n
      \n
      \n ${component.showWordCount\n ? html`\n
      \n ${component.wordCount} word${component.wordCount !== 1 ? 's' : ''}\n
      \n `\n : ''}\n
      \n ${component.description ? html`
      ${component.description}
      ` : ''}\n
      \n `;\n \n};\n", "import { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from './demo.js';\nimport { richtextStyles } from './styles.js';\nimport { renderRichtext } from './template.js';\nimport type { IToolbarButton } from './types.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\nimport {\n customElement,\n type TemplateResult,\n property,\n html,\n state,\n query,\n} from '@design.estate/dees-element';\n\nimport type { Editor } from '@tiptap/core';\nimport { DeesServiceLibLoader, type ITiptapBundle } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-richtext': DeesInputRichtext;\n }\n}\n\n\n\n@customElement('dees-input-richtext')\nexport class DeesInputRichtext extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @property({\n type: String,\n reflect: true,\n })\n accessor value: string = '';\n\n @property({\n type: String,\n })\n accessor placeholder: string = '';\n\n @property({\n type: Boolean,\n })\n accessor showWordCount: boolean = true;\n\n @property({\n type: Number,\n })\n accessor minHeight: number = 200;\n\n @state()\n accessor showLinkInput: boolean = false;\n\n @state()\n accessor wordCount: number = 0;\n\n private editorElement: HTMLElement;\n private linkInputElement: HTMLInputElement;\n private tiptapBundle: ITiptapBundle | null = null;\n\n public editor: Editor;\n\n public static styles = richtextStyles;\n\n public render(): TemplateResult {\n return renderRichtext(this);\n }\n\n\n\n public renderToolbar(): TemplateResult {\n const buttons: IToolbarButton[] = this.getToolbarButtons();\n\n return html`\n ${buttons.map((button) => {\n if (button.isDivider) {\n return html`
      `;\n }\n return html`\n \n \n \n `;\n })}\n `;\n }\n\n private getToolbarButtons(): IToolbarButton[] {\n if (!this.editor) return [];\n\n return [\n {\n name: 'bold',\n icon: 'lucide:bold',\n title: 'Bold (Ctrl+B)',\n action: () => this.editor.chain().focus().toggleBold().run(),\n isActive: () => this.editor.isActive('bold'),\n },\n {\n name: 'italic',\n icon: 'lucide:italic',\n title: 'Italic (Ctrl+I)',\n action: () => this.editor.chain().focus().toggleItalic().run(),\n isActive: () => this.editor.isActive('italic'),\n },\n {\n name: 'underline',\n icon: 'lucide:underline',\n title: 'Underline (Ctrl+U)',\n action: () => this.editor.chain().focus().toggleUnderline().run(),\n isActive: () => this.editor.isActive('underline'),\n },\n {\n name: 'strike',\n icon: 'lucide:strikethrough',\n title: 'Strikethrough',\n action: () => this.editor.chain().focus().toggleStrike().run(),\n isActive: () => this.editor.isActive('strike'),\n },\n { name: 'divider1', title: '', isDivider: true },\n {\n name: 'h1',\n icon: 'lucide:heading1',\n title: 'Heading 1',\n action: () => this.editor.chain().focus().toggleHeading({ level: 1 }).run(),\n isActive: () => this.editor.isActive('heading', { level: 1 }),\n },\n {\n name: 'h2',\n icon: 'lucide:heading2',\n title: 'Heading 2',\n action: () => this.editor.chain().focus().toggleHeading({ level: 2 }).run(),\n isActive: () => this.editor.isActive('heading', { level: 2 }),\n },\n {\n name: 'h3',\n icon: 'lucide:heading3',\n title: 'Heading 3',\n action: () => this.editor.chain().focus().toggleHeading({ level: 3 }).run(),\n isActive: () => this.editor.isActive('heading', { level: 3 }),\n },\n { name: 'divider2', title: '', isDivider: true },\n {\n name: 'bulletList',\n icon: 'lucide:list',\n title: 'Bullet List',\n action: () => this.editor.chain().focus().toggleBulletList().run(),\n isActive: () => this.editor.isActive('bulletList'),\n },\n {\n name: 'orderedList',\n icon: 'lucide:listOrdered',\n title: 'Numbered List',\n action: () => this.editor.chain().focus().toggleOrderedList().run(),\n isActive: () => this.editor.isActive('orderedList'),\n },\n {\n name: 'blockquote',\n icon: 'lucide:quote',\n title: 'Quote',\n action: () => this.editor.chain().focus().toggleBlockquote().run(),\n isActive: () => this.editor.isActive('blockquote'),\n },\n {\n name: 'code',\n icon: 'lucide:code',\n title: 'Code',\n action: () => this.editor.chain().focus().toggleCode().run(),\n isActive: () => this.editor.isActive('code'),\n },\n {\n name: 'codeBlock',\n icon: 'lucide:fileCode',\n title: 'Code Block',\n action: () => this.editor.chain().focus().toggleCodeBlock().run(),\n isActive: () => this.editor.isActive('codeBlock'),\n },\n { name: 'divider3', title: '', isDivider: true },\n {\n name: 'link',\n icon: 'lucide:link',\n title: 'Add Link',\n action: () => this.toggleLink(),\n isActive: () => this.editor.isActive('link'),\n },\n {\n name: 'alignLeft',\n icon: 'lucide:alignLeft',\n title: 'Align Left',\n action: () => this.editor.chain().focus().setTextAlign('left').run(),\n isActive: () => this.editor.isActive({ textAlign: 'left' }),\n },\n {\n name: 'alignCenter',\n icon: 'lucide:alignCenter',\n title: 'Align Center',\n action: () => this.editor.chain().focus().setTextAlign('center').run(),\n isActive: () => this.editor.isActive({ textAlign: 'center' }),\n },\n {\n name: 'alignRight',\n icon: 'lucide:alignRight',\n title: 'Align Right',\n action: () => this.editor.chain().focus().setTextAlign('right').run(),\n isActive: () => this.editor.isActive({ textAlign: 'right' }),\n },\n { name: 'divider4', title: '', isDivider: true },\n {\n name: 'undo',\n icon: 'lucide:undo',\n title: 'Undo (Ctrl+Z)',\n action: () => this.editor.chain().focus().undo().run(),\n },\n {\n name: 'redo',\n icon: 'lucide:redo',\n title: 'Redo (Ctrl+Y)',\n action: () => this.editor.chain().focus().redo().run(),\n },\n ];\n }\n\n public async firstUpdated() {\n await this.updateComplete;\n\n // Load Tiptap from CDN\n this.tiptapBundle = await DeesServiceLibLoader.getInstance().loadTiptap();\n\n this.editorElement = this.shadowRoot.querySelector('.editor-content');\n this.linkInputElement = this.shadowRoot.querySelector('.link-input input');\n this.initializeEditor();\n }\n\n private initializeEditor(): void {\n if (this.disabled || !this.tiptapBundle) return;\n\n const { Editor, StarterKit, Underline, TextAlign, Link, Typography } = this.tiptapBundle;\n\n this.editor = new Editor({\n element: this.editorElement,\n extensions: [\n StarterKit.configure({\n heading: {\n levels: [1, 2, 3],\n },\n }),\n Underline.configure({}),\n TextAlign.configure({\n types: ['heading', 'paragraph'],\n }),\n Link.configure({\n openOnClick: false,\n HTMLAttributes: {\n class: 'editor-link',\n },\n }),\n Typography.configure({}),\n ],\n content: this.value || (this.placeholder ? `

      ${this.placeholder}

      ` : ''),\n onUpdate: ({ editor }) => {\n this.value = editor.getHTML();\n this.updateWordCount();\n this.dispatchEvent(\n new CustomEvent('input', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n this.dispatchEvent(\n new CustomEvent('change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n })\n );\n },\n onSelectionUpdate: () => {\n this.requestUpdate();\n },\n onFocus: () => {\n this.requestUpdate();\n },\n onBlur: () => {\n this.requestUpdate();\n },\n });\n\n this.updateWordCount();\n }\n\n private updateWordCount(): void {\n if (!this.editor) return;\n const text = this.editor.getText();\n this.wordCount = text.trim() ? text.trim().split(/\\s+/).length : 0;\n }\n\n private toggleLink(): void {\n if (!this.editor) return;\n\n if (this.editor.isActive('link')) {\n const href = this.editor.getAttributes('link').href;\n this.showLinkInput = true;\n requestAnimationFrame(() => {\n if (this.linkInputElement) {\n this.linkInputElement.value = href || '';\n this.linkInputElement.focus();\n this.linkInputElement.select();\n }\n });\n } else {\n this.showLinkInput = true;\n requestAnimationFrame(() => {\n if (this.linkInputElement) {\n this.linkInputElement.value = '';\n this.linkInputElement.focus();\n }\n });\n }\n }\n\n public saveLink(): void {\n if (!this.editor || !this.linkInputElement) return;\n\n const url = this.linkInputElement.value;\n if (url) {\n this.editor.chain().focus().setLink({ href: url }).run();\n }\n this.hideLinkInput();\n }\n\n public removeLink(): void {\n if (!this.editor) return;\n this.editor.chain().focus().unsetLink().run();\n this.hideLinkInput();\n }\n\n public hideLinkInput(): void {\n this.showLinkInput = false;\n this.editor?.commands.focus();\n }\n\n public handleLinkInputKeydown(e: KeyboardEvent): void {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.saveLink();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n this.hideLinkInput();\n }\n }\n\n public setValue(value: string): void {\n this.value = value;\n if (this.editor && value !== this.editor.getHTML()) {\n this.editor.commands.setContent(value);\n }\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public clear(): void {\n this.setValue('');\n }\n\n public focus(): void {\n this.editor?.commands.focus();\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.editor) {\n this.editor.destroy();\n }\n }\n}", "export * from './component.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1pbnB1dC1zZWFyY2hzZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1pbnB1dC9kZWVzLWlucHV0LXNlYXJjaHNlbGVjdC9kZWVzLWlucHV0LXNlYXJjaHNlbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './dees-input-searchselect.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\n\nexport const demoFunc = () => html`\n \n \n \n
      \n \n \n \n\n \n \n \n\n \n
      \n \n \n \n
      \n
      \n\n \n \n \n\n \n \n \n\n \n \n \n \n
      \n \n \n \n
      \n \n \n \n \n
      \n
      \n\n \n {\n const preview = document.querySelector('#tags-preview');\n const tags = e.detail.value;\n if (preview) {\n if (tags.length === 0) {\n preview.innerHTML = 'No tags added yet...';\n } else {\n preview.innerHTML = tags.map((tag: string) => \n `${tag}`\n ).join('');\n }\n }\n }}\n >\n \n
      \n No tags added yet...\n
      \n \n
      \n JSON output will appear here...\n
      \n \n \n
      \n
      \n
      \n`;", "import {\n customElement,\n html,\n css,\n cssManager,\n property,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demoFunc } from './dees-input-tags.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-tags': DeesInputTags;\n }\n}\n\n@customElement('dees-input-tags')\nexport class DeesInputTags extends DeesInputBase {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n // INSTANCE\n @property({ type: Array })\n accessor value: string[] = [];\n\n @property({ type: String })\n accessor placeholder: string = 'Add tags...';\n\n @property({ type: Number })\n accessor maxTags: number = 0; // 0 means unlimited\n\n @property({ type: Array })\n accessor suggestions: string[] = [];\n\n @state()\n accessor inputValue: string = '';\n\n @state()\n accessor showSuggestions: boolean = false;\n\n @state()\n accessor highlightedSuggestionIndex: number = -1;\n\n @property({ type: String })\n accessor validationText: string = '';\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n }\n\n .input-wrapper {\n width: 100%;\n }\n\n .tags-container {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n min-height: 40px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n transition: all 0.15s ease;\n cursor: text;\n }\n\n .tags-container:hover:not(.disabled) {\n border-color: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n\n .tags-container:focus-within {\n border-color: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2%)', 'hsl(217.2 91.2% 59.8%)')};\n box-shadow: 0 0 0 3px ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.1)', 'hsl(217.2 91.2% 59.8% / 0.1)')};\n }\n\n .tags-container.disabled {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n border-color: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: ${cssManager.bdTheme('hsl(215 20.2% 65.1% / 0.2)', 'hsl(215 20.2% 35.1% / 0.2)')};\n color: ${cssManager.bdTheme('hsl(215.3 25% 26.7%)', 'hsl(217.9 10.6% 74.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(215 20.2% 65.1% / 0.3)', 'hsl(215 20.2% 35.1% / 0.3)')};\n border-radius: 4px;\n font-size: 13px;\n font-weight: 500;\n line-height: 18px;\n user-select: none;\n animation: tagAppear 0.15s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n @keyframes tagAppear {\n from {\n transform: scale(0.95);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n .tag-remove {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n height: 14px;\n margin-left: 2px;\n border-radius: 3px;\n cursor: pointer;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(215.3 25% 46.7%)', 'hsl(217.9 10.6% 54.9%)')};\n }\n\n .tag-remove:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.08)', 'hsl(0 0% 100% / 0.08)')};\n color: ${cssManager.bdTheme('hsl(215.3 25% 26.7%)', 'hsl(217.9 10.6% 74.9%)')};\n }\n\n .tag-remove dees-icon {\n width: 10px;\n height: 10px;\n }\n\n .tag-input {\n flex: 1;\n min-width: 120px;\n border: none;\n background: transparent;\n outline: none;\n font-size: 14px;\n font-family: inherit;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n padding: 2px 4px;\n line-height: 20px;\n }\n\n .tag-input::placeholder {\n color: ${cssManager.bdTheme('hsl(0 0% 63.9%)', 'hsl(0 0% 45.1%)')};\n }\n\n .tag-input:disabled {\n cursor: not-allowed;\n }\n\n /* Suggestions dropdown */\n .suggestions-container {\n position: relative;\n }\n\n .suggestions-dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n margin-top: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 6px;\n box-shadow: 0 4px 6px -1px hsl(0 0% 0% / 0.1), 0 2px 4px -2px hsl(0 0% 0% / 0.1);\n max-height: 200px;\n overflow-y: auto;\n z-index: 1000;\n }\n\n .suggestion {\n padding: 6px 10px;\n cursor: pointer;\n transition: all 0.15s ease;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n .suggestion:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95.1%)', 'hsl(0 0% 14.9%)')};\n }\n\n .suggestion.highlighted {\n background: ${cssManager.bdTheme('hsl(210 40% 96.1%)', 'hsl(215 20.2% 16.8%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 95%)')};\n }\n\n /* Validation styles */\n .validation-message {\n color: ${cssManager.bdTheme('hsl(0 72.2% 50.6%)', 'hsl(0 62.8% 30.6%)')};\n font-size: 13px;\n margin-top: 6px;\n line-height: 1.5;\n }\n\n /* Description styles */\n .description {\n color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};\n font-size: 13px;\n margin-top: 6px;\n line-height: 1.5;\n }\n\n /* Scrollbar styling */\n .suggestions-dropdown::-webkit-scrollbar {\n width: 8px;\n }\n\n .suggestions-dropdown::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .suggestions-dropdown::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 4px;\n }\n\n .suggestions-dropdown::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 79.8%)', 'hsl(0 0% 20.9%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n const filteredSuggestions = this.suggestions.filter(\n suggestion => \n !this.value.includes(suggestion) &&\n suggestion.toLowerCase().includes(this.inputValue.toLowerCase())\n );\n\n return html`\n
      \n ${this.label ? html`` : ''}\n \n
      \n \n ${this.value.map(tag => html`\n
      \n ${tag}\n ${!this.disabled ? html`\n
      this.removeTag(e, tag)}>\n \n
      \n ` : ''}\n
      \n `)}\n \n ${!this.disabled && (!this.maxTags || this.value.length < this.maxTags) ? html`\n \n ` : ''}\n
      \n\n ${this.showSuggestions && filteredSuggestions.length > 0 ? html`\n
      \n ${filteredSuggestions.map((suggestion, index) => html`\n {\n e.preventDefault(); // Prevent blur\n this.addTag(suggestion);\n }}\n @mouseenter=${() => this.highlightedSuggestionIndex = index}\n >\n ${suggestion}\n
      \n `)}\n
      \n ` : ''}\n
      \n\n ${this.validationText ? html`\n
      ${this.validationText}
      \n ` : ''}\n \n ${this.description ? html`\n
      ${this.description}
      \n ` : ''}\n \n `;\n }\n\n private handleContainerClick(e: Event) {\n if (this.disabled) return;\n \n const input = this.shadowRoot?.querySelector('.tag-input') as HTMLInputElement;\n if (input && e.target !== input) {\n input.focus();\n }\n }\n\n private handleInput(e: Event) {\n const input = e.target as HTMLInputElement;\n this.inputValue = input.value;\n \n // Check for comma or semicolon to add tag\n if (this.inputValue.includes(',') || this.inputValue.includes(';')) {\n const tag = this.inputValue.replace(/[,;]/g, '').trim();\n if (tag) {\n this.addTag(tag);\n }\n }\n }\n\n private handleKeyDown(e: KeyboardEvent) {\n const input = e.target as HTMLInputElement;\n \n if (e.key === 'Enter') {\n e.preventDefault();\n if (this.highlightedSuggestionIndex >= 0 && this.showSuggestions) {\n const filteredSuggestions = this.suggestions.filter(\n suggestion => \n !this.value.includes(suggestion) &&\n suggestion.toLowerCase().includes(this.inputValue.toLowerCase())\n );\n if (filteredSuggestions[this.highlightedSuggestionIndex]) {\n this.addTag(filteredSuggestions[this.highlightedSuggestionIndex]);\n }\n } else if (this.inputValue.trim()) {\n this.addTag(this.inputValue.trim());\n }\n } else if (e.key === 'Backspace' && !this.inputValue && this.value.length > 0) {\n // Remove last tag when backspace is pressed on empty input\n this.removeTag(e, this.value[this.value.length - 1]);\n } else if (e.key === 'ArrowDown' && this.showSuggestions) {\n e.preventDefault();\n const filteredCount = this.suggestions.filter(\n s => !this.value.includes(s) && s.toLowerCase().includes(this.inputValue.toLowerCase())\n ).length;\n this.highlightedSuggestionIndex = Math.min(\n this.highlightedSuggestionIndex + 1,\n filteredCount - 1\n );\n } else if (e.key === 'ArrowUp' && this.showSuggestions) {\n e.preventDefault();\n this.highlightedSuggestionIndex = Math.max(this.highlightedSuggestionIndex - 1, 0);\n } else if (e.key === 'Escape') {\n this.showSuggestions = false;\n this.highlightedSuggestionIndex = -1;\n }\n }\n\n private handleFocus() {\n if (this.suggestions.length > 0) {\n this.showSuggestions = true;\n }\n }\n\n private handleBlur() {\n // Delay to allow click on suggestions\n setTimeout(() => {\n this.showSuggestions = false;\n this.highlightedSuggestionIndex = -1;\n }, 200);\n }\n\n private addTag(tag: string) {\n if (!tag || this.value.includes(tag)) return;\n if (this.maxTags && this.value.length >= this.maxTags) return;\n\n this.value = [...this.value, tag];\n this.inputValue = '';\n this.showSuggestions = false;\n this.highlightedSuggestionIndex = -1;\n \n // Clear the input\n const input = this.shadowRoot?.querySelector('.tag-input') as HTMLInputElement;\n if (input) {\n input.value = '';\n }\n\n this.emitChange();\n }\n\n private removeTag(e: Event, tag: string) {\n e.stopPropagation();\n this.value = this.value.filter(t => t !== tag);\n this.emitChange();\n }\n\n private emitChange() {\n this.dispatchEvent(new CustomEvent('change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true\n }));\n this.changeSubject.next(this);\n }\n\n public getValue(): string[] {\n return this.value;\n }\n\n public setValue(value: string[]): void {\n this.value = value || [];\n }\n\n public async validate(): Promise {\n if (this.required && (!this.value || this.value.length === 0)) {\n this.validationText = 'At least one tag is required';\n return false;\n }\n this.validationText = '';\n return true;\n }\n}", "export * from './dees-input-tags.js';\n", "export * from './dees-input-text.js';\n", "export * from './dees-input-toggle.js';\n", "export * from './dees-input-typelist.js';\n", "import { html, css, type TemplateResult } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesInputWysiwyg } from './dees-input-wysiwyg/dees-input-wysiwyg.js';\nimport type { IBlock } from './dees-input-wysiwyg/wysiwyg.types.js';\n\ninterface IDemoEditor {\n basic: DeesInputWysiwyg;\n article: DeesInputWysiwyg;\n dragDrop: DeesInputWysiwyg;\n tutorial: DeesInputWysiwyg;\n meeting: DeesInputWysiwyg;\n recipe: DeesInputWysiwyg;\n technical: DeesInputWysiwyg;\n formIntegration: DeesInputWysiwyg;\n programmatic: DeesInputWysiwyg;\n exportDemo: DeesInputWysiwyg;\n}\n\n// Sample content generators\nconst generateReportBlocks = (): IBlock[] => {\n const timestamp = Date.now();\n return [\n {\n id: `title-${timestamp}`,\n type: 'heading-1',\n content: 'System Performance Report'\n },\n {\n id: `date-${timestamp + 1}`,\n type: 'paragraph',\n content: `Generated on: ${new Date().toLocaleString()}`\n },\n {\n id: `summary-heading-${timestamp + 2}`,\n type: 'heading-2',\n content: 'Executive Summary'\n },\n {\n id: `summary-${timestamp + 3}`,\n type: 'paragraph',\n content: 'This report provides an analysis of system performance metrics over the last 30 days.'\n },\n {\n id: `metrics-heading-${timestamp + 4}`,\n type: 'heading-2',\n content: 'Key Metrics'\n },\n {\n id: `metrics-list-${timestamp + 5}`,\n type: 'list',\n content: 'Average response time: 124ms\\nUptime: 99.97%\\nCPU utilization: 45%\\nMemory usage: 2.3GB / 8GB',\n metadata: { listType: 'bullet' }\n },\n {\n id: `analysis-heading-${timestamp + 6}`,\n type: 'heading-2',\n content: 'Performance Analysis'\n },\n {\n id: `analysis-quote-${timestamp + 7}`,\n type: 'quote',\n content: 'System performance remains within acceptable parameters with room for optimization in memory management.'\n },\n {\n id: `code-heading-${timestamp + 8}`,\n type: 'heading-3',\n content: 'Sample Query Performance'\n },\n {\n id: `code-block-${timestamp + 9}`,\n type: 'code',\n content: 'SELECT AVG(response_time) as avg_time,\\n COUNT(*) as total_requests,\\n DATE(created_at) as date\\nFROM performance_logs\\nWHERE created_at >= NOW() - INTERVAL 30 DAY\\nGROUP BY DATE(created_at)\\nORDER BY date DESC;',\n metadata: { language: 'sql' }\n },\n {\n id: `divider-${timestamp + 10}`,\n type: 'divider',\n content: ''\n },\n {\n id: `footer-${timestamp + 11}`,\n type: 'paragraph',\n content: 'Report generated automatically by System Monitor v2.5.0'\n }\n ];\n};\n\nconst generateRecipeBlocks = (): IBlock[] => {\n const timestamp = Date.now();\n return [\n {\n id: `recipe-title-${timestamp}`,\n type: 'heading-1',\n content: 'Classic Margherita Pizza'\n },\n {\n id: `recipe-intro-${timestamp + 1}`,\n type: 'paragraph',\n content: 'A traditional Italian pizza with fresh basil, mozzarella, and tomato sauce.'\n },\n {\n id: `ingredients-heading-${timestamp + 2}`,\n type: 'heading-2',\n content: '\uD83C\uDF55 Ingredients'\n },\n {\n id: `dough-heading-${timestamp + 3}`,\n type: 'heading-3',\n content: 'For the Dough:'\n },\n {\n id: `dough-list-${timestamp + 4}`,\n type: 'list',\n content: '500g tipo \"00\" flour\\n325ml warm water\\n10g salt\\n7g active dry yeast\\n2 tbsp olive oil',\n metadata: { listType: 'bullet' }\n },\n {\n id: `toppings-heading-${timestamp + 5}`,\n type: 'heading-3',\n content: 'For the Toppings:'\n },\n {\n id: `toppings-list-${timestamp + 6}`,\n type: 'list',\n content: '400g canned San Marzano tomatoes\\n250g fresh mozzarella\\nFresh basil leaves\\nExtra virgin olive oil\\nSalt and pepper to taste',\n metadata: { listType: 'bullet' }\n },\n {\n id: `instructions-heading-${timestamp + 7}`,\n type: 'heading-2',\n content: '\uD83D\uDC68\u200D\uD83C\uDF73 Instructions'\n },\n {\n id: `steps-list-${timestamp + 8}`,\n type: 'list',\n content: 'Dissolve yeast in warm water and let stand for 5 minutes\\nMix flour and salt, create a well in center\\nAdd yeast mixture and olive oil\\nKnead for 10 minutes until smooth\\nLet rise for 1-2 hours until doubled\\nPunch down and divide into portions\\nRoll out each portion to 12-inch circles\\nTop with crushed tomatoes, mozzarella, and basil\\nBake at 475\u00B0F (245\u00B0C) for 10-12 minutes',\n metadata: { listType: 'ordered' }\n },\n {\n id: `tip-${timestamp + 9}`,\n type: 'quote',\n content: 'Pro tip: For an authentic taste, use a pizza stone and preheat it in the oven for at least 30 minutes before baking.'\n },\n {\n id: `divider-${timestamp + 10}`,\n type: 'divider',\n content: ''\n },\n {\n id: `servings-${timestamp + 11}`,\n type: 'paragraph',\n content: 'Servings: 4 pizzas | Prep time: 2 hours | Cook time: 12 minutes'\n }\n ];\n};\n\nconst initializeEditors = (container: HTMLElement): IDemoEditor => {\n const editors: Partial = {};\n \n // Get all editor references\n editors.basic = container.querySelector('#editor-basic') as DeesInputWysiwyg;\n editors.article = container.querySelector('#editor-article') as DeesInputWysiwyg;\n editors.dragDrop = container.querySelector('#editor-dragdrop') as DeesInputWysiwyg;\n editors.tutorial = container.querySelector('#editor-tutorial') as DeesInputWysiwyg;\n editors.meeting = container.querySelector('#editor-meeting') as DeesInputWysiwyg;\n editors.recipe = container.querySelector('#editor-recipe') as DeesInputWysiwyg;\n editors.technical = container.querySelector('#editor-technical') as DeesInputWysiwyg;\n editors.formIntegration = container.querySelector('#editor-form-integration') as DeesInputWysiwyg;\n editors.programmatic = container.querySelector('#editor-programmatic') as DeesInputWysiwyg;\n editors.exportDemo = container.querySelector('#editor-export') as DeesInputWysiwyg;\n \n return editors as IDemoEditor;\n};\n\nconst setupProgrammaticDemo = (container: HTMLElement, editor: DeesInputWysiwyg) => {\n const reportBtn = container.querySelector('#btn-generate-report') as HTMLButtonElement;\n const recipeBtn = container.querySelector('#btn-generate-recipe') as HTMLButtonElement;\n const clearBtn = container.querySelector('#btn-clear-editor') as HTMLButtonElement;\n \n if (reportBtn) {\n reportBtn.addEventListener('click', () => {\n editor.importBlocks(generateReportBlocks());\n });\n }\n \n if (recipeBtn) {\n recipeBtn.addEventListener('click', () => {\n editor.importBlocks(generateRecipeBlocks());\n });\n }\n \n if (clearBtn) {\n clearBtn.addEventListener('click', () => {\n editor.importBlocks([]);\n });\n }\n};\n\nconst setupExportDemo = (container: HTMLElement, editor: DeesInputWysiwyg) => {\n const exportBlocksBtn = container.querySelector('#btn-export-blocks') as HTMLButtonElement;\n const exportHtmlBtn = container.querySelector('#btn-export-html') as HTMLButtonElement;\n const exportMarkdownBtn = container.querySelector('#btn-export-markdown') as HTMLButtonElement;\n const saveStateBtn = container.querySelector('#btn-save-state') as HTMLButtonElement;\n const restoreStateBtn = container.querySelector('#btn-restore-state') as HTMLButtonElement;\n \n let savedState: any = null;\n \n if (exportBlocksBtn) {\n exportBlocksBtn.addEventListener('click', () => {\n const blocks = editor.exportBlocks();\n console.log('Exported blocks:', blocks);\n alert(`Exported ${blocks.length} blocks to console. Check developer tools.`);\n });\n }\n \n if (exportHtmlBtn) {\n exportHtmlBtn.addEventListener('click', () => {\n const html = editor.exportAsHtml();\n console.log('HTML Export:', html);\n alert('HTML exported to console. Check developer tools.');\n });\n }\n \n if (exportMarkdownBtn) {\n exportMarkdownBtn.addEventListener('click', () => {\n const markdown = editor.exportAsMarkdown();\n console.log('Markdown Export:', markdown);\n alert('Markdown exported to console. Check developer tools.');\n });\n }\n \n if (saveStateBtn) {\n saveStateBtn.addEventListener('click', () => {\n savedState = editor.exportState();\n console.log('Saved state:', savedState);\n alert('Editor state saved!');\n });\n }\n \n if (restoreStateBtn) {\n restoreStateBtn.addEventListener('click', () => {\n if (savedState) {\n editor.importState(savedState);\n alert('Editor state restored!');\n } else {\n alert('No saved state found. Save state first!');\n }\n });\n }\n};\n\nconst setupOutputFormatDemo = (\n container: HTMLElement,\n htmlEditor?: DeesInputWysiwyg,\n markdownEditor?: DeesInputWysiwyg,\n) => {\n const htmlBtn = container.querySelector('#btn-show-html-output') as HTMLButtonElement | null;\n const htmlPreview = container.querySelector('#output-preview-html') as HTMLElement | null;\n if (htmlBtn && htmlPreview && htmlEditor) {\n htmlBtn.addEventListener('click', () => {\n htmlPreview.textContent = htmlEditor.getValue();\n htmlPreview.classList.add('visible');\n });\n }\n\n const markdownBtn = container.querySelector('#btn-show-markdown-output') as HTMLButtonElement | null;\n const markdownPreview = container.querySelector('#output-preview-markdown') as HTMLElement | null;\n if (markdownBtn && markdownPreview && markdownEditor) {\n markdownBtn.addEventListener('click', () => {\n markdownPreview.textContent = markdownEditor.getValue();\n markdownPreview.classList.add('visible');\n });\n }\n};\n\nconst populateInitialContent = (editors: IDemoEditor) => {\n // Article editor content\n if (editors.article) {\n setTimeout(() => {\n const articleBlocks: IBlock[] = [\n {\n id: 'intro-heading-' + Date.now(),\n type: 'heading-2',\n content: 'Introduction to Modern Web Development'\n },\n {\n id: 'intro-para-' + Date.now(),\n type: 'paragraph',\n content: 'Modern web development has evolved significantly over the past decade. In this article, we\\'ll explore the key technologies and best practices that define web development in 2024.'\n },\n {\n id: 'tech-heading-' + Date.now(),\n type: 'heading-3',\n content: 'Key Technologies'\n },\n {\n id: 'tech-list-' + Date.now(),\n type: 'list',\n content: 'TypeScript - Type-safe JavaScript development\\nWeb Components - Native component model\\nES Modules - Modern module system\\nWebAssembly - High-performance computing',\n metadata: { listType: 'ordered' }\n },\n {\n id: 'quote-' + Date.now(),\n type: 'quote',\n content: 'The best way to predict the future is to invent it. - Alan Kay'\n },\n {\n id: 'example-heading-' + Date.now(),\n type: 'heading-3',\n content: 'Code Example'\n },\n {\n id: 'code-example-' + Date.now(),\n type: 'code',\n content: 'class ModernWebApp extends HTMLElement {\\n constructor() {\\n super();\\n this.attachShadow({ mode: \\'open\\' });\\n }\\n \\n connectedCallback() {\\n this.render();\\n }\\n}',\n metadata: { language: 'javascript' }\n }\n ];\n editors.article.importBlocks(articleBlocks);\n }, 500);\n }\n \n // Drag & Drop demo content\n if (editors.dragDrop) {\n setTimeout(() => {\n const dragBlocks: IBlock[] = [\n {\n id: 'drag-title-' + Date.now(),\n type: 'heading-1',\n content: 'Drag & Drop Demo'\n },\n {\n id: 'drag-intro-' + Date.now(),\n type: 'paragraph',\n content: 'This editor demonstrates drag and drop functionality. Try dragging these blocks around!'\n },\n {\n id: 'drag-heading-' + Date.now(),\n type: 'heading-2',\n content: 'How It Works'\n },\n {\n id: 'drag-list-' + Date.now(),\n type: 'list',\n content: 'Hover over any block to see the drag handle\\nClick and hold the handle to start dragging\\nDrag to reorder blocks\\nRelease to drop in the new position',\n metadata: { listType: 'ordered' }\n },\n {\n id: 'drag-quote-' + Date.now(),\n type: 'quote',\n content: 'The drag and drop feature makes it easy to reorganize your content without cutting and pasting.'\n },\n {\n id: 'drag-divider-' + Date.now(),\n type: 'divider',\n content: ''\n },\n {\n id: 'drag-footer-' + Date.now(),\n type: 'paragraph',\n content: 'Note: Divider blocks cannot be dragged, but other blocks can be moved around them.'\n }\n ];\n editors.dragDrop.importBlocks(dragBlocks);\n }, 600);\n }\n};\n\nexport const demoFunc = (): TemplateResult => html`\n {\n // Wait for elements to be ready\n await new Promise(resolve => setTimeout(resolve, 500));\n \n const editors = initializeEditors(elementArg);\n \n // Setup programmatic demo\n if (editors.programmatic) {\n setupProgrammaticDemo(elementArg, editors.programmatic);\n }\n \n // Setup export demo\n if (editors.exportDemo) {\n setupExportDemo(elementArg, editors.exportDemo);\n }\n\n // Setup output format preview buttons\n setupOutputFormatDemo(elementArg, editors.meeting, editors.recipe);\n\n // Populate initial content\n populateInitialContent(editors);\n \n // Log initialization\n console.log('WYSIWYG Demo initialized with editors:', Object.keys(editors));\n }}>\n \n \n
      \n \n

      \n A powerful block-based editor with slash commands, keyboard shortcuts, and multiple output formats. \n Perfect for content creation, blog posts, documentation, and more.\n

      \n \n
      \n
      \n \u2713\n Slash commands (/)\n
      \n
      \n \u2713\n Keyboard shortcuts\n
      \n
      \n \u2713\n Block-based editing\n
      \n
      \n \u2713\n Drag & drop reordering\n
      \n
      \n \u2713\n HTML & Markdown output\n
      \n
      \n \u2713\n Dark mode support\n
      \n
      \n \u2713\n Mobile responsive\n
      \n
      \n \n \n\n
      \n

      \u2328\uFE0F Keyboard Shortcuts

      \n
      \n
      \n / Slash commands\n
      \n
      \n # Heading 1\n
      \n
      \n ## Heading 2\n
      \n
      \n ### Heading 3\n
      \n
      \n > Quote\n
      \n
      \n \\`\\`\\` Code block\n
      \n
      \n * or - Bullet list\n
      \n
      \n 1. Numbered list\n
      \n
      \n --- Divider\n
      \n
      \n
      \n
      \n \n \n

      \n Perfect for creating rich content with multiple block types. \n The editor preserves formatting and provides a clean editing experience.\n

      \n \n \n
      \n\n \n

      \n Easily rearrange your content blocks by dragging them. \n Hover over any block to reveal the drag handle on the left side.\n

      \n \n \n \n
      \n \uD83D\uDCA1 Tips:\n
        \n
      • Hover over any block to see the drag handle (\u22EE\u22EE) on the left
      • \n
      • Click and hold the drag handle to start dragging
      • \n
      • Blue indicators show where the block will be dropped
      • \n
      • Divider blocks cannot be dragged
      • \n
      • The editor maintains focus on the moved block after dropping
      • \n
      \n
      \n
      \n\n \n

      \n Create comprehensive tutorials and documentation with code examples, lists, and structured content.\n

      \n \n README.md\ngit add README.md\n\\`\\`\\`\n\n#### Committing Changes\n\n\\`\\`\\`bash\ngit commit -m "Initial commit"\n\\`\\`\\`\n\n> **Best Practice:** Write clear, descriptive commit messages that explain what changes were made and why.\n\n### 4. Working with Branches\n\nBranches allow you to work on features independently:\n\n\\`\\`\\`bash\n# Create and switch to a new branch\ngit checkout -b feature-branch\n\n# Make changes and commit\ngit add .\ngit commit -m "Add new feature"\n\n# Switch back to main\ngit checkout main\n\n# Merge the feature\ngit merge feature-branch\n\\`\\`\\`\n\n---\n\n## Common Commands Reference\n\n| Command | Description |\n|---------|-------------|\n| \\`git status\\` | Check repository status |\n| \\`git log\\` | View commit history |\n| \\`git diff\\` | Show changes |\n| \\`git pull\\` | Fetch and merge changes |\n| \\`git push\\` | Upload changes to remote |\n\n## Next Steps\n\n1. Learn about remote repositories\n2. Explore advanced Git features\n3. Practice with real projects\n4. Contribute to open source\n\n**Happy coding!** \uD83D\uDE80\"\n >\n
      \n\n \n

      \n Choose between HTML and Markdown output formats depending on your needs. \n Perfect for static site generators, documentation systems, or any content management workflow.\n

      \n \n
      \n
      \n Q4 Planning Meeting

      Date: December 15, 2024
      Attendees: Product Team, Engineering, Design

      Agenda Items

      1. Review Q3 achievements
      2. Set Q4 objectives
      3. Resource allocation
      4. Timeline discussion

      Key Decisions

      • Launch new dashboard feature by end of January
      • Increase engineering team by 2 developers
      • Implement weekly design reviews
      "Focus on user experience improvements based on Q3 feedback" - Product Manager

      Action Items

      • Sarah: Create detailed project timeline
      • Mike: Draft technical requirements
      • Lisa: Schedule user research sessions

      Next meeting: January 5, 2025

      \"\n >
      \n
      \n \n
      \n
      \n          
      \n \n
      \n **Pro tip:** Room temperature ingredients mix better and create a more uniform dough.\n\n### Step 4: Add Wet Ingredients\n\nBeat in eggs one at a time, then add vanilla extract.\n\n### Step 5: Combine and Bake\n\nGradually blend in flour mixture, then stir in chocolate chips. Drop rounded tablespoons onto ungreased cookie sheets.\n\n---\n\n**Baking time:** 9-11 minutes or until golden brown\n\n**Yield:** About 5 dozen cookies\"\n >\n
      \n \n
      \n
      \n          
      \n
      \n
      \n\n \n

      \n Create complex documents with mixed content types. The editor handles all formatting seamlessly.\n

      \n \n API Documentation

      Welcome to our API documentation. Below you'll find examples of how to use our endpoints.

      Authentication

      All API requests require authentication using an API key:

      Authorization: Bearer YOUR_API_KEY

      Endpoints

      GET /users

      Retrieve a list of users from the system.

      curl -X GET https://api.example.com/users \\\\\n  -H "Authorization: Bearer YOUR_API_KEY"
      Note: Rate limiting applies to all endpoints. You can make up to 100 requests per minute.

      POST /users

      Create a new user in the system.

      {\n  "name": "John Doe",\n  "email": "john@example.com",\n  "role": "user"\n}

      For more information, please refer to our complete documentation.

      \"\n outputFormat=\"html\"\n >
      \n
      \n\n \n

      \n Seamlessly integrates with dees-form for complete form solutions. \n All standard form features like validation, required fields, and data binding work out of the box.\n

      \n \n \n \n \n \n \n \n \n
      \n\n \n

      \n Create content programmatically using the block API for dynamic document generation.\n

      \n \n \n \n
      \n \n \n \n \n \n
      \n
      \n\n \n

      \n The WYSIWYG editor provides multiple export formats and lossless save/restore capabilities for maximum flexibility.\n

      \n \n
      \n
      \n Lossless Blocks\n

      Export and import raw block structure for perfect round-trip editing

      \n
      \n
      \n HTML Export\n

      Get clean, semantic HTML regardless of output format setting

      \n
      \n
      \n Markdown Export\n

      Export as Markdown for docs, READMEs, and static sites

      \n
      \n
      \n State Management\n

      Save and restore complete editor state including settings

      \n
      \n
      \n \n Software Release Notes

      Version 2.5.0 - Released December 15, 2024

      \uD83C\uDF89 New Features

      • Added dark mode support across all components
      • Implemented real-time collaboration features
      • New dashboard analytics widgets
      • Export functionality for all report types

      \uD83D\uDC1B Bug Fixes

      • Fixed memory leak in data processing module
      • Resolved authentication timeout issues
      • Corrected timezone handling in scheduled tasks

      \u26A1 Performance Improvements

      Page load times reduced by 40% through lazy loading and code splitting

      \uD83D\uDD27 Technical Details

      // New API endpoint for batch operations\nPOST /api/v2/batch\n{\n  "operations": [\n    { "method": "GET", "path": "/users/123" },\n    { "method": "PUT", "path": "/settings", "body": {...} }\n  ]\n}

      \uD83D\uDCA1 Migration Guide

      1. Update your dependencies to the latest versions
      2. Run database migrations: npm run migrate
      3. Clear cache: npm run cache:clear
      4. Restart all services

      For questions or issues, please contact the development team or file a ticket in our issue tracker.

      \"\n >\n \n
      \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n
      \n`;\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWlucHV0L2RlZXMtaW5wdXQtd3lzaXd5Zy93eXNpd3lnLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "import { type IBlock, type IShortcutPattern, type ISlashMenuItem } from './wysiwyg.types.js';\n\nexport class WysiwygShortcuts {\n static readonly HEADING_PATTERNS: IShortcutPattern[] = [\n { pattern: /^#[\\s\\u00A0]$/, type: 'heading-1' },\n { pattern: /^##[\\s\\u00A0]$/, type: 'heading-2' },\n { pattern: /^###[\\s\\u00A0]$/, type: 'heading-3' }\n ];\n\n static readonly LIST_PATTERNS: IShortcutPattern[] = [\n { pattern: /^[*-][\\s\\u00A0]$/, type: 'bullet' },\n { pattern: /^(\\d+)\\.[\\s\\u00A0]$/, type: 'ordered' },\n { pattern: /^(\\d+)\\)[\\s\\u00A0]$/, type: 'ordered' }\n ];\n\n static readonly QUOTE_PATTERN = /^>[\\s\\u00A0]$/;\n static readonly CODE_PATTERN = /^```$/;\n static readonly DIVIDER_PATTERNS = ['---', '***', '___'];\n\n static checkHeadingShortcut(content: string): { type: IBlock['type'] } | null {\n for (const { pattern, type } of this.HEADING_PATTERNS) {\n if (pattern.test(content)) {\n return { type: type as IBlock['type'] };\n }\n }\n return null;\n }\n\n static checkListShortcut(content: string): { type: 'list', listType: 'bullet' | 'ordered' } | null {\n for (const { pattern, type } of this.LIST_PATTERNS) {\n if (pattern.test(content)) {\n return { type: 'list', listType: type as 'bullet' | 'ordered' };\n }\n }\n return null;\n }\n\n static checkQuoteShortcut(content: string): boolean {\n return this.QUOTE_PATTERN.test(content);\n }\n\n static checkCodeShortcut(content: string): boolean {\n return this.CODE_PATTERN.test(content);\n }\n\n static checkDividerShortcut(content: string): boolean {\n return this.DIVIDER_PATTERNS.includes(content);\n }\n\n static getSlashMenuItems(): ISlashMenuItem[] {\n return [\n { type: 'paragraph', label: 'Paragraph', icon: 'lucide:pilcrow' },\n { type: 'heading-1', label: 'Heading 1', icon: 'lucide:heading1' },\n { type: 'heading-2', label: 'Heading 2', icon: 'lucide:heading2' },\n { type: 'heading-3', label: 'Heading 3', icon: 'lucide:heading3' },\n { type: 'quote', label: 'Quote', icon: 'lucide:quote' },\n { type: 'code', label: 'Code Block', icon: 'lucide:fileCode' },\n { type: 'list', label: 'Bullet List', icon: 'lucide:list' },\n { type: 'image', label: 'Image', icon: 'lucide:image' },\n { type: 'divider', label: 'Divider', icon: 'lucide:minus' },\n { type: 'youtube', label: 'YouTube', icon: 'lucide:youtube' },\n { type: 'markdown', label: 'Markdown', icon: 'lucide:fileText' },\n { type: 'html', label: 'HTML', icon: 'lucide:code' },\n { type: 'attachment', label: 'File Attachment', icon: 'lucide:paperclip' },\n ];\n }\n\n static generateBlockId(): string {\n return `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n }\n}\n\n// Re-export the type that is used in this module\nexport type { ISlashMenuItem } from './wysiwyg.types.js';", "import {\n customElement,\n html,\n DeesElement,\n type TemplateResult,\n cssManager,\n css,\n state,\n} from '@design.estate/dees-element';\nimport { zIndexRegistry } from '../../00zindex.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\nimport { type ISlashMenuItem } from './wysiwyg.types.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-slash-menu': DeesSlashMenu;\n }\n}\n\n@customElement('dees-slash-menu')\nexport class DeesSlashMenu extends DeesElement {\n private static instance: DeesSlashMenu;\n \n public static getInstance(): DeesSlashMenu {\n if (!DeesSlashMenu.instance) {\n DeesSlashMenu.instance = new DeesSlashMenu();\n document.body.appendChild(DeesSlashMenu.instance);\n }\n return DeesSlashMenu.instance;\n }\n\n @state()\n accessor visible: boolean = false;\n\n @state()\n accessor position: { x: number; y: number } = { x: 0, y: 0 };\n\n @state()\n accessor filter: string = '';\n\n @state()\n accessor selectedIndex: number = 0;\n\n @state()\n accessor menuZIndex: number = 1000;\n\n private callback: ((type: string) => void) | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: fixed;\n pointer-events: none;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n }\n\n .slash-menu {\n position: fixed;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 4px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n padding: 4px;\n min-width: 220px;\n max-height: 300px;\n overflow-y: auto;\n pointer-events: auto;\n user-select: none;\n animation: fadeInScale 0.15s ease-out;\n }\n\n @keyframes fadeInScale {\n from {\n opacity: 0;\n transform: scale(0.98) translateY(-2px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n .slash-menu-item {\n padding: 8px 10px;\n cursor: pointer;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n gap: 12px;\n border-radius: 3px;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n font-size: 14px;\n }\n\n .slash-menu-item:hover,\n .slash-menu-item.selected {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .slash-menu-item .icon {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .slash-menu-item:hover .icon,\n .slash-menu-item.selected .icon {\n color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n `,\n ];\n\n render(): TemplateResult {\n if (!this.visible) return html``;\n\n // Ensure z-index is applied to host element\n this.style.zIndex = this.menuZIndex.toString();\n\n const menuItems = this.getFilteredMenuItems();\n\n return html`\n
      \n ${menuItems.map((item, index) => html`\n
      \n \n ${item.label}\n
      \n `)}\n
      \n `;\n }\n\n private getFilteredMenuItems(): ISlashMenuItem[] {\n const allItems = WysiwygShortcuts.getSlashMenuItems();\n return allItems.filter(item => \n this.filter === '' || \n item.label.toLowerCase().includes(this.filter.toLowerCase())\n );\n }\n\n private selectItem(type: string): void {\n if (this.callback) {\n this.callback(type);\n }\n this.hide();\n }\n\n public show(position: { x: number; y: number }, callback: (type: string) => void): void {\n this.position = position;\n this.callback = callback;\n this.filter = '';\n this.selectedIndex = 0;\n \n // Get z-index from registry and apply immediately\n this.menuZIndex = zIndexRegistry.getNextZIndex();\n zIndexRegistry.register(this, this.menuZIndex);\n this.style.zIndex = this.menuZIndex.toString();\n \n this.visible = true;\n }\n\n public hide(): void {\n this.visible = false;\n this.callback = null;\n this.filter = '';\n this.selectedIndex = 0;\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n }\n\n public updateFilter(filter: string): void {\n this.filter = filter;\n this.selectedIndex = 0;\n }\n\n public navigate(direction: 'up' | 'down'): void {\n const items = this.getFilteredMenuItems();\n if (direction === 'down') {\n this.selectedIndex = (this.selectedIndex + 1) % items.length;\n } else {\n this.selectedIndex = this.selectedIndex === 0 \n ? items.length - 1 \n : this.selectedIndex - 1;\n }\n }\n\n public selectCurrent(): void {\n const items = this.getFilteredMenuItems();\n if (items[this.selectedIndex]) {\n this.selectItem(items[this.selectedIndex].type);\n }\n }\n \n public firstUpdated(): void {\n // Set up event delegation\n this.shadowRoot?.addEventListener('mousedown', (e: MouseEvent) => {\n const menu = this.shadowRoot?.querySelector('.slash-menu');\n if (menu && menu.contains(e.target as Node)) {\n // Prevent focus loss\n e.preventDefault();\n e.stopPropagation();\n }\n });\n \n this.shadowRoot?.addEventListener('click', (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const menuItem = target.closest('.slash-menu-item') as HTMLElement;\n \n if (menuItem) {\n e.preventDefault();\n e.stopPropagation();\n \n const itemType = menuItem.getAttribute('data-item-type');\n if (itemType) {\n this.selectItem(itemType);\n }\n }\n });\n \n this.shadowRoot?.addEventListener('mouseenter', (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const menuItem = target.closest('.slash-menu-item') as HTMLElement;\n \n if (menuItem) {\n const index = parseInt(menuItem.getAttribute('data-item-index') || '0', 10);\n this.selectedIndex = index;\n }\n }, true); // Use capture phase\n \n this.shadowRoot?.addEventListener('focus', (e: FocusEvent) => {\n const menu = this.shadowRoot?.querySelector('.slash-menu');\n if (menu && menu.contains(e.target as Node)) {\n // Prevent menu from taking focus\n e.preventDefault();\n e.stopPropagation();\n }\n }, true); // Use capture phase\n }\n}", "/**\n * Utilities for handling selection across Shadow DOM boundaries\n */\n\nexport interface SelectionInfo {\n startContainer: Node;\n startOffset: number;\n endContainer: Node;\n endOffset: number;\n collapsed: boolean;\n}\n\n// Type for the extended caretPositionFromPoint with Shadow DOM support\ntype CaretPositionFromPointExtended = (x: number, y: number, ...shadowRoots: ShadowRoot[]) => CaretPosition | null;\n\nexport class WysiwygSelection {\n /**\n * Gets selection info that works across Shadow DOM boundaries\n * @param shadowRoots - Shadow roots to include in the selection search\n */\n static getSelectionInfo(...shadowRoots: ShadowRoot[]): SelectionInfo | null {\n const selection = window.getSelection();\n console.log('WysiwygSelection.getSelectionInfo - selection:', selection, 'rangeCount:', selection?.rangeCount);\n if (!selection) return null;\n\n // Try using getComposedRanges if available (better Shadow DOM support)\n if ('getComposedRanges' in selection && typeof selection.getComposedRanges === 'function') {\n console.log('Using getComposedRanges with', shadowRoots.length, 'shadow roots');\n try {\n // Pass shadow roots in the correct format as per MDN\n const ranges = selection.getComposedRanges({ shadowRoots });\n console.log('getComposedRanges returned', ranges.length, 'ranges');\n if (ranges.length > 0) {\n const range = ranges[0];\n return {\n startContainer: range.startContainer,\n startOffset: range.startOffset,\n endContainer: range.endContainer,\n endOffset: range.endOffset,\n collapsed: range.collapsed\n };\n }\n } catch (error) {\n console.warn('getComposedRanges failed, falling back to getRangeAt:', error);\n }\n } else {\n console.log('getComposedRanges not available, using fallback');\n }\n\n // Fallback to traditional selection API\n if (selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n return {\n startContainer: range.startContainer,\n startOffset: range.startOffset,\n endContainer: range.endContainer,\n endOffset: range.endOffset,\n collapsed: range.collapsed\n };\n }\n\n return null;\n }\n\n /**\n * Checks if a selection is within a specific element (considering Shadow DOM)\n */\n static isSelectionInElement(element: Element, shadowRoot?: ShadowRoot): boolean {\n const selectionInfo = shadowRoot \n ? this.getSelectionInfo(shadowRoot)\n : this.getSelectionInfo();\n \n if (!selectionInfo) return false;\n\n // Check if the selection's common ancestor is within the element\n return element.contains(selectionInfo.startContainer) || \n element.contains(selectionInfo.endContainer);\n }\n\n /**\n * Gets the selected text across Shadow DOM boundaries\n */\n static getSelectedText(): string {\n const selection = window.getSelection();\n return selection ? selection.toString() : '';\n }\n\n /**\n * Creates a range from selection info\n */\n static createRangeFromInfo(info: SelectionInfo): Range {\n const range = document.createRange();\n range.setStart(info.startContainer, info.startOffset);\n range.setEnd(info.endContainer, info.endOffset);\n return range;\n }\n\n /**\n * Sets selection from a range (works with Shadow DOM)\n */\n static setSelectionFromRange(range: Range): void {\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n /**\n * Gets cursor position relative to a specific element\n */\n static getCursorPositionInElement(element: Element, ...shadowRoots: ShadowRoot[]): number | null {\n const selectionInfo = shadowRoots.length > 0\n ? this.getSelectionInfo(...shadowRoots)\n : this.getSelectionInfo();\n \n if (!selectionInfo || !selectionInfo.collapsed) return null;\n \n // Create a range from start of element to cursor position\n try {\n const range = document.createRange();\n range.selectNodeContents(element);\n \n // Handle case where selection is in a text node that's a child of the element\n // Use our Shadow DOM-aware contains method\n const isContained = this.containsAcrossShadowDOM(element, selectionInfo.startContainer);\n \n if (isContained) {\n range.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n const position = range.toString().length;\n return position;\n } else {\n // Selection might be in shadow DOM or different context\n // Try to find the equivalent position in the element\n const text = element.textContent || '';\n const selectionText = selectionInfo.startContainer.textContent || '';\n \n // If the selection is at the beginning or end, handle those cases\n if (selectionInfo.startOffset === 0) {\n return 0;\n } else if (selectionInfo.startOffset === selectionText.length) {\n return text.length;\n }\n \n // For other cases, try to match based on text content\n console.warn('Selection container not within element, using text matching fallback');\n return selectionInfo.startOffset;\n }\n } catch (error) {\n console.warn('Failed to get cursor position:', error);\n return null;\n }\n }\n\n /**\n * Gets cursor position from mouse coordinates with Shadow DOM support\n */\n static getCursorPositionFromPoint(x: number, y: number, container: HTMLElement, ...shadowRoots: ShadowRoot[]): number | null {\n // Try modern API with shadow root support\n if ('caretPositionFromPoint' in document && document.caretPositionFromPoint) {\n let caretPos: CaretPosition | null = null;\n \n // Try with shadow roots first (newer API)\n try {\n caretPos = (document.caretPositionFromPoint as any)(x, y, ...shadowRoots);\n } catch (e) {\n // Fallback to standard API without shadow roots\n caretPos = document.caretPositionFromPoint(x, y);\n }\n \n if (caretPos && container.contains(caretPos.offsetNode)) {\n // Calculate total offset within the container\n return this.getOffsetInElement(caretPos.offsetNode, caretPos.offset, container);\n }\n }\n \n // Safari/WebKit fallback\n if ('caretRangeFromPoint' in document) {\n const range = (document as any).caretRangeFromPoint(x, y);\n if (range && container.contains(range.startContainer)) {\n return this.getOffsetInElement(range.startContainer, range.startOffset, container);\n }\n }\n \n return null;\n }\n \n /**\n * Helper to get the total character offset of a position within an element\n */\n private static getOffsetInElement(node: Node, offset: number, container: HTMLElement): number {\n let totalOffset = 0;\n let found = false;\n \n const walker = document.createTreeWalker(\n container,\n NodeFilter.SHOW_TEXT,\n null\n );\n \n let textNode: Node | null;\n while (textNode = walker.nextNode()) {\n if (textNode === node) {\n totalOffset += offset;\n found = true;\n break;\n } else {\n totalOffset += textNode.textContent?.length || 0;\n }\n }\n \n return found ? totalOffset : 0;\n }\n\n /**\n * Sets cursor position in an element\n */\n static setCursorPosition(element: Element, position: number): void {\n const walker = document.createTreeWalker(\n element,\n NodeFilter.SHOW_TEXT,\n null\n );\n\n let currentPosition = 0;\n let targetNode: Text | null = null;\n let targetOffset = 0;\n\n while (walker.nextNode()) {\n const node = walker.currentNode as Text;\n const nodeLength = node.textContent?.length || 0;\n \n if (currentPosition + nodeLength >= position) {\n targetNode = node;\n targetOffset = position - currentPosition;\n break;\n }\n \n currentPosition += nodeLength;\n }\n\n if (targetNode) {\n const range = document.createRange();\n range.setStart(targetNode, targetOffset);\n range.collapse(true);\n this.setSelectionFromRange(range);\n }\n }\n\n /**\n * Check if a node is contained within an element across Shadow DOM boundaries\n * This is needed because element.contains() doesn't work across Shadow DOM\n */\n static containsAcrossShadowDOM(container: Node, node: Node): boolean {\n if (!container || !node) return false;\n \n // Start with the node and traverse up\n let current: Node | null = node;\n \n while (current) {\n // Direct match\n if (current === container) {\n return true;\n }\n \n // If we're at a shadow root, check its host\n if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE && (current as any).host) {\n const shadowRoot = current as ShadowRoot;\n // Check if the container is within this shadow root\n if (shadowRoot.contains(container)) {\n return false; // Container is in a child shadow DOM\n }\n // Move to the host element\n current = shadowRoot.host;\n } else {\n // Regular DOM traversal\n current = current.parentNode;\n }\n }\n \n return false;\n }\n}", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport { WysiwygSelection } from './wysiwyg.selection.js';\n\nexport interface IFormatButton {\n command: string;\n icon: string;\n label: string;\n shortcut?: string;\n action?: () => void;\n}\n\n/**\n * Handles text formatting with smart toggle behavior:\n * - If selection contains ANY instance of a format, removes ALL instances\n * - If selection has no formatting, applies the format\n * - Works correctly with Shadow DOM using range-based operations\n */\nexport class WysiwygFormatting {\n static readonly formatButtons: IFormatButton[] = [\n { command: 'bold', icon: 'B', label: 'Bold', shortcut: '\u2318B' },\n { command: 'italic', icon: 'I', label: 'Italic', shortcut: '\u2318I' },\n { command: 'underline', icon: 'U', label: 'Underline', shortcut: '\u2318U' },\n { command: 'strikeThrough', icon: 'S\u0336', label: 'Strikethrough' },\n { command: 'code', icon: '{ }', label: 'Inline Code' },\n { command: 'link', icon: '\uD83D\uDD17', label: 'Link', shortcut: '\u2318K' },\n ];\n\n static renderFormattingMenu(\n position: { x: number; y: number },\n onFormat: (command: string) => void\n ): TemplateResult {\n return html`\n
      { e.preventDefault(); e.stopPropagation(); }}\"\n @click=\"${(e: MouseEvent) => e.stopPropagation()}\"\n >\n ${this.formatButtons.map(button => html`\n \n `)}\n
      \n `;\n }\n\n static applyFormat(command: string, value?: string, range?: Range, shadowRoots?: ShadowRoot[]): boolean {\n // If range is provided, use it directly (Shadow DOM case)\n // Otherwise fall back to window.getSelection()\n let workingRange: Range;\n \n if (range) {\n workingRange = range;\n } else {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return false;\n workingRange = selection.getRangeAt(0);\n }\n \n // Apply format based on command\n switch (command) {\n case 'bold':\n this.wrapSelection(workingRange, 'strong');\n break;\n \n case 'italic':\n this.wrapSelection(workingRange, 'em');\n break;\n \n case 'underline':\n this.wrapSelection(workingRange, 'u');\n break;\n \n case 'strikeThrough':\n this.wrapSelection(workingRange, 's');\n break;\n \n case 'code':\n this.wrapSelection(workingRange, 'code');\n break;\n \n case 'link':\n // Don't use prompt - return false to indicate we need async input\n if (!value) {\n return false;\n }\n this.wrapSelectionWithLink(workingRange, value);\n break;\n }\n \n // If we have shadow roots, use our Shadow DOM selection utility\n if (shadowRoots && shadowRoots.length > 0) {\n WysiwygSelection.setSelectionFromRange(workingRange);\n } else {\n // Regular selection restoration\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(workingRange);\n }\n }\n \n return true;\n }\n \n private static wrapSelection(range: Range, tagName: string): void {\n const selection = window.getSelection();\n if (!selection) return;\n \n // Check if ANY part of the selection contains this formatting\n const hasFormatting = this.selectionContainsTag(range, tagName);\n \n if (hasFormatting) {\n // Remove all instances of this tag from the selection\n this.removeTagFromSelection(range, tagName);\n } else {\n // Wrap selection with the tag\n const wrapper = document.createElement(tagName);\n try {\n // Extract and wrap contents\n const contents = range.extractContents();\n wrapper.appendChild(contents);\n range.insertNode(wrapper);\n \n // Select the wrapped content\n range.selectNodeContents(wrapper);\n selection.removeAllRanges();\n selection.addRange(range);\n } catch (e) {\n console.error('Failed to wrap selection:', e);\n }\n }\n }\n \n /**\n * Check if the selection contains or is within any instances of a tag\n */\n private static selectionContainsTag(range: Range, tagName: string): boolean {\n // First check: Are we inside a tag? (even if selection doesn't include the tag)\n let node: Node | null = range.startContainer;\n \n while (node && node !== range.commonAncestorContainer.ownerDocument) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n if (element.tagName.toLowerCase() === tagName) {\n return true;\n }\n }\n node = node.parentNode;\n }\n \n // Also check the end container\n node = range.endContainer;\n \n while (node && node !== range.commonAncestorContainer.ownerDocument) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n if (element.tagName.toLowerCase() === tagName) {\n return true;\n }\n }\n node = node.parentNode;\n }\n \n // Second check: Does the selection contain any complete tags?\n const tempDiv = document.createElement('div');\n const contents = range.cloneContents();\n tempDiv.appendChild(contents);\n const tags = tempDiv.getElementsByTagName(tagName);\n \n return tags.length > 0;\n }\n \n /**\n * Remove all instances of a tag from the selection\n */\n private static removeTagFromSelection(range: Range, tagName: string): void {\n const selection = window.getSelection();\n if (!selection) return;\n \n // Special handling: Check if we need to expand the selection to include parent tags\n let expandedRange = range.cloneRange();\n \n // Check if start is inside a tag\n let startNode: Node | null = range.startContainer;\n let startTag: Element | null = null;\n while (startNode && startNode !== range.commonAncestorContainer.ownerDocument) {\n if (startNode.nodeType === Node.ELEMENT_NODE && (startNode as Element).tagName.toLowerCase() === tagName) {\n startTag = startNode as Element;\n break;\n }\n startNode = startNode.parentNode;\n }\n \n // Check if end is inside a tag\n let endNode: Node | null = range.endContainer;\n let endTag: Element | null = null;\n while (endNode && endNode !== range.commonAncestorContainer.ownerDocument) {\n if (endNode.nodeType === Node.ELEMENT_NODE && (endNode as Element).tagName.toLowerCase() === tagName) {\n endTag = endNode as Element;\n break;\n }\n endNode = endNode.parentNode;\n }\n \n // Expand range to include the tags if needed\n if (startTag) {\n expandedRange.setStartBefore(startTag);\n }\n if (endTag) {\n expandedRange.setEndAfter(endTag);\n }\n \n // Extract the contents using the expanded range\n const fragment = expandedRange.extractContents();\n \n // Process the fragment to remove tags\n const processedFragment = this.removeTagsFromFragment(fragment, tagName);\n \n // Insert the processed content back\n expandedRange.insertNode(processedFragment);\n \n // Restore selection to match the original selection intent\n // Find the text nodes that correspond to the original selection\n const textNodes: Node[] = [];\n const walker = document.createTreeWalker(\n processedFragment,\n NodeFilter.SHOW_TEXT,\n null\n );\n \n let node;\n while (node = walker.nextNode()) {\n textNodes.push(node);\n }\n \n if (textNodes.length > 0) {\n const newRange = document.createRange();\n newRange.setStart(textNodes[0], 0);\n newRange.setEnd(textNodes[textNodes.length - 1], textNodes[textNodes.length - 1].textContent?.length || 0);\n selection.removeAllRanges();\n selection.addRange(newRange);\n }\n }\n \n /**\n * Remove all instances of a tag from a document fragment\n */\n private static removeTagsFromFragment(fragment: DocumentFragment, tagName: string): DocumentFragment {\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(fragment);\n \n // Find all instances of the tag\n const tags = tempDiv.getElementsByTagName(tagName);\n \n // Convert to array to avoid live collection issues\n const tagArray = Array.from(tags);\n \n // Unwrap each tag\n tagArray.forEach(tag => {\n const parent = tag.parentNode;\n if (parent) {\n // Move all children out of the tag\n while (tag.firstChild) {\n parent.insertBefore(tag.firstChild, tag);\n }\n // Remove the empty tag\n parent.removeChild(tag);\n }\n });\n \n // Create a new fragment from the processed content\n const newFragment = document.createDocumentFragment();\n while (tempDiv.firstChild) {\n newFragment.appendChild(tempDiv.firstChild);\n }\n \n return newFragment;\n }\n \n private static wrapSelectionWithLink(range: Range, url: string): void {\n const selection = window.getSelection();\n if (!selection) return;\n \n // First remove any existing links in the selection\n if (this.selectionContainsTag(range, 'a')) {\n this.removeTagFromSelection(range, 'a');\n // Re-get the range after modification\n if (selection.rangeCount > 0) {\n range = selection.getRangeAt(0);\n }\n }\n \n const link = document.createElement('a');\n link.href = url;\n link.target = '_blank';\n link.rel = 'noopener noreferrer';\n \n try {\n const contents = range.extractContents();\n link.appendChild(contents);\n range.insertNode(link);\n \n // Select the link\n range.selectNodeContents(link);\n selection.removeAllRanges();\n selection.addRange(range);\n } catch (e) {\n console.error('Failed to create link:', e);\n }\n }\n\n static getSelectionCoordinates(...shadowRoots: ShadowRoot[]): { x: number, y: number } | null {\n // Get selection info using the new utility that handles Shadow DOM\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n console.log('getSelectionCoordinates - selectionInfo:', selectionInfo);\n \n if (!selectionInfo) {\n console.log('No selection info available');\n return null;\n }\n\n // Create a range from the selection info to get bounding rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n console.log('Range rect:', rect);\n \n if (rect.width === 0 && rect.height === 0) {\n console.log('Rect width and height are 0, trying different approach');\n // Sometimes the rect is collapsed, let's try getting the caret position\n if ('caretPositionFromPoint' in document) {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const tempSpan = document.createElement('span');\n tempSpan.textContent = '\\u200B'; // Zero-width space\n range.insertNode(tempSpan);\n const spanRect = tempSpan.getBoundingClientRect();\n tempSpan.remove();\n \n if (spanRect.width > 0 || spanRect.height > 0) {\n const coords = {\n x: spanRect.left,\n y: Math.max(45, spanRect.top - 45)\n };\n console.log('Used span trick for coords:', coords);\n return coords;\n }\n }\n }\n return null;\n }\n\n const coords = {\n x: rect.left + (rect.width / 2),\n y: Math.max(45, rect.top - 45) // Position above selection, but ensure it's not negative\n };\n \n console.log('Returning coords:', coords);\n return coords;\n }\n}", "import {\n customElement,\n html,\n DeesElement,\n type TemplateResult,\n cssManager,\n css,\n state,\n} from '@design.estate/dees-element';\nimport { zIndexRegistry } from '../../00zindex.js';\n\nimport { WysiwygFormatting } from './wysiwyg.formatting.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-formatting-menu': DeesFormattingMenu;\n }\n}\n\n@customElement('dees-formatting-menu')\nexport class DeesFormattingMenu extends DeesElement {\n private static instance: DeesFormattingMenu;\n \n public static getInstance(): DeesFormattingMenu {\n if (!DeesFormattingMenu.instance) {\n DeesFormattingMenu.instance = new DeesFormattingMenu();\n document.body.appendChild(DeesFormattingMenu.instance);\n }\n return DeesFormattingMenu.instance;\n }\n\n @state()\n accessor visible: boolean = false;\n\n @state()\n accessor position: { x: number; y: number } = { x: 0, y: 0 };\n\n @state()\n accessor menuZIndex: number = 1000;\n\n private callback: ((command: string) => void | Promise) | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: fixed;\n pointer-events: none;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n }\n\n .formatting-menu {\n position: fixed;\n background: ${cssManager.bdTheme('#ffffff', '#262626')};\n border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#404040')};\n border-radius: 6px;\n box-shadow: 0 2px 16px rgba(0, 0, 0, 0.15);\n padding: 4px;\n display: flex;\n gap: 2px;\n pointer-events: auto;\n user-select: none;\n animation: fadeInScale 0.15s ease-out;\n }\n\n @keyframes fadeInScale {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(5px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n .format-button {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#000000', '#e0e0e0')};\n font-weight: 600;\n font-size: 14px;\n position: relative;\n }\n\n .format-button:hover {\n background: ${cssManager.bdTheme('#f0f0f0', '#333333')};\n color: ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n }\n\n .format-button:active {\n transform: scale(0.95);\n }\n\n .format-button.bold {\n font-weight: 700;\n }\n\n .format-button.italic {\n font-style: italic;\n }\n\n .format-button.underline {\n text-decoration: underline;\n }\n\n .format-button .code-icon {\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 12px;\n }\n `,\n ];\n\n render(): TemplateResult {\n if (!this.visible) return html``;\n\n // Apply z-index to host element\n this.style.zIndex = this.menuZIndex.toString();\n\n return html`\n
      \n ${WysiwygFormatting.formatButtons.map(button => html`\n \n `)}\n
      \n `;\n }\n\n private applyFormat(command: string): void {\n if (this.callback) {\n this.callback(command);\n }\n // Don't hide menu after applying format (except for link)\n if (command === 'link') {\n this.hide();\n }\n }\n\n public show(position: { x: number; y: number }, callback: (command: string) => void | Promise): void {\n console.log('FormattingMenu.show called:', { position, visible: this.visible });\n this.position = position;\n this.callback = callback;\n \n // Get z-index from registry and apply immediately\n this.menuZIndex = zIndexRegistry.getNextZIndex();\n zIndexRegistry.register(this, this.menuZIndex);\n this.style.zIndex = this.menuZIndex.toString();\n \n this.visible = true;\n }\n\n public hide(): void {\n this.visible = false;\n this.callback = null;\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n }\n\n public updatePosition(position: { x: number; y: number }): void {\n this.position = position;\n }\n \n public firstUpdated(): void {\n // Set up event delegation for the menu\n this.shadowRoot?.addEventListener('mousedown', (e: MouseEvent) => {\n const menu = this.shadowRoot?.querySelector('.formatting-menu');\n if (menu && menu.contains(e.target as Node)) {\n // Prevent focus loss\n e.preventDefault();\n e.stopPropagation();\n }\n });\n \n this.shadowRoot?.addEventListener('click', (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const button = target.closest('.format-button') as HTMLElement;\n \n if (button) {\n e.preventDefault();\n e.stopPropagation();\n \n const command = button.getAttribute('data-command');\n if (command) {\n this.applyFormat(command);\n }\n }\n });\n \n this.shadowRoot?.addEventListener('focus', (e: FocusEvent) => {\n const menu = this.shadowRoot?.querySelector('.formatting-menu');\n if (menu && menu.contains(e.target as Node)) {\n // Prevent menu from taking focus\n e.preventDefault();\n e.stopPropagation();\n }\n }, true); // Use capture phase\n }\n}", "import { type TemplateResult } from '@design.estate/dees-element';\nimport { type IBlock } from './wysiwyg.types.js';\nimport { DeesSlashMenu } from './dees-slash-menu.js';\nimport { DeesFormattingMenu } from './dees-formatting-menu.js';\n\n/**\n * Interface for the main wysiwyg component\n */\nexport interface IWysiwygComponent {\n // State\n blocks: IBlock[];\n selectedBlockId: string | null;\n shadowRoot: ShadowRoot | null;\n editorContentRef: HTMLDivElement;\n draggedBlockId: string | null;\n dragOverBlockId: string | null;\n dragOverPosition: 'before' | 'after' | null;\n isComposing: boolean;\n \n // Menus\n slashMenu: DeesSlashMenu;\n formattingMenu: DeesFormattingMenu;\n \n // Methods\n updateValue(): void;\n requestUpdate(): void;\n updateComplete: Promise;\n insertBlock(type: string): Promise;\n closeSlashMenu(clearSlash?: boolean): void;\n applyFormat(command: string): Promise;\n handleSlashMenuKeyboard(e: KeyboardEvent): void;\n createBlockElement(block: IBlock): HTMLElement;\n updateBlockElement(blockId: string): void;\n handleDrop(e: DragEvent, targetBlock: IBlock): void;\n renderBlocksProgrammatically(): void;\n saveToHistory(debounce?: boolean): void;\n \n // Handlers\n blockOperations: IBlockOperations;\n}\n\n/**\n * Interface for block operations\n */\nexport interface IBlockOperations {\n createBlock(type?: IBlock['type'], content?: string, metadata?: any): IBlock;\n insertBlockAfter(afterBlock: IBlock, newBlock: IBlock, focusNewBlock?: boolean): Promise;\n removeBlock(blockId: string): void;\n findBlock(blockId: string): IBlock | undefined;\n getBlockIndex(blockId: string): number;\n focusBlock(blockId: string, cursorPosition?: 'start' | 'end' | number): Promise;\n updateBlockContent(blockId: string, content: string): void;\n transformBlock(blockId: string, newType: IBlock['type'], metadata?: any): void;\n moveBlock(blockId: string, targetIndex: number): void;\n getPreviousBlock(blockId: string): IBlock | null;\n getNextBlock(blockId: string): IBlock | null;\n}\n\n/**\n * Interface for block component\n */\nexport interface IWysiwygBlockComponent {\n block: IBlock;\n isSelected: boolean;\n blockElement: HTMLDivElement | null;\n \n focus(): void;\n focusWithCursor(position: 'start' | 'end' | number): void;\n getContent(): string;\n setContent(content: string): void;\n setCursorToStart(): void;\n setCursorToEnd(): void;\n focusListItem(): void;\n getSplitContent(splitPosition: number): { before: string; after: string };\n}\n\n/**\n * Event handler interfaces\n */\nexport interface IBlockEventHandlers {\n onInput: (e: InputEvent) => void;\n onKeyDown: (e: KeyboardEvent) => void;\n onFocus: () => void;\n onBlur: () => void;\n onCompositionStart: () => void;\n onCompositionEnd: () => void;\n onMouseUp?: (e: MouseEvent) => void;\n onRequestUpdate?: () => void; // Request immediate re-render of the block\n}", "/**\n * Shared constants for the WYSIWYG editor\n */\n\n/**\n * Available programming languages for code blocks\n */\nexport const PROGRAMMING_LANGUAGES = [\n 'JavaScript',\n 'TypeScript', \n 'Python',\n 'Java',\n 'C++',\n 'C#',\n 'Go',\n 'Rust',\n 'HTML',\n 'CSS',\n 'SQL',\n 'Shell',\n 'JSON',\n 'YAML',\n 'Markdown',\n 'Plain Text'\n] as const;\n\nexport type ProgrammingLanguage = typeof PROGRAMMING_LANGUAGES[number];", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const wysiwygStyles = css`\n :host {\n display: block;\n position: relative;\n }\n\n .wysiwyg-container {\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 6px;\n min-height: 200px;\n padding: 24px;\n position: relative;\n transition: all 0.2s ease;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .wysiwyg-container:hover {\n border-color: ${cssManager.bdTheme('#d1d5db', '#3f3f46')};\n }\n\n .wysiwyg-container:focus-within {\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('#f4f4f5', '#18181b')}, 0 0 0 4px ${cssManager.bdTheme('rgba(59, 130, 246, 0.5)', 'rgba(59, 130, 246, 0.5)')};\n border-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n /* Visual hint for text selection */\n .editor-content:hover {\n cursor: text;\n }\n\n .editor-content {\n outline: none;\n min-height: 160px;\n margin: 0 -8px;\n padding: 0 8px;\n }\n\n .block {\n margin: 0;\n padding: 4px 0;\n position: relative;\n transition: all 0.15s ease;\n min-height: 1.6em;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n /* First and last blocks don't need extra spacing */\n .block-wrapper:first-child .block {\n margin-top: 0 !important;\n }\n\n .block-wrapper:last-child .block {\n margin-bottom: 0;\n }\n\n .block.selected {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.05)', 'rgba(59, 130, 246, 0.05)')};\n outline: 2px solid ${cssManager.bdTheme('rgba(59, 130, 246, 0.2)', 'rgba(59, 130, 246, 0.2)')};\n outline-offset: -2px;\n border-radius: 4px;\n margin-left: -8px;\n margin-right: -8px;\n padding-left: 8px;\n padding-right: 8px;\n }\n\n .block[contenteditable] {\n outline: none;\n }\n\n .block.paragraph {\n font-size: 16px;\n line-height: 1.6;\n font-weight: 400;\n }\n\n .block.paragraph:empty::before {\n content: \"Type '/' for commands...\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-size: 16px;\n line-height: 1.6;\n font-weight: 400;\n }\n\n .block.heading-1 {\n font-size: 32px;\n font-weight: 700;\n line-height: 1.2;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .block.heading-1:empty::before {\n content: \"Heading 1\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-size: 32px;\n line-height: 1.2;\n font-weight: 700;\n }\n\n .block.heading-2 {\n font-size: 24px;\n font-weight: 600;\n line-height: 1.3;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .block.heading-2:empty::before {\n content: \"Heading 2\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-size: 24px;\n line-height: 1.3;\n font-weight: 600;\n }\n\n .block.heading-3 {\n font-size: 20px;\n font-weight: 600;\n line-height: 1.4;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .block.heading-3:empty::before {\n content: \"Heading 3\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-size: 20px;\n line-height: 1.4;\n font-weight: 600;\n }\n\n .block.quote {\n border-left: 2px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n padding-left: 20px;\n font-style: italic;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n margin-left: 0;\n margin-right: 0;\n line-height: 1.6;\n }\n\n .block.quote:empty::before {\n content: \"Quote\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-size: 16px;\n line-height: 1.6;\n font-weight: 400;\n font-style: italic;\n }\n\n .code-block-container {\n position: relative;\n margin: 20px 0;\n }\n\n .code-language {\n position: absolute;\n top: 0;\n right: 0;\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n padding: 4px 12px;\n font-size: 12px;\n border-radius: 0 4px 0 4px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n text-transform: lowercase;\n z-index: 1;\n }\n\n .block.code {\n background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 4px;\n padding: 16px;\n padding-top: 32px; /* Make room for language indicator */\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 14px;\n line-height: 1.5;\n white-space: pre-wrap;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n overflow-x: auto;\n }\n\n .block.code:empty::before {\n content: \"// Code block\";\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n pointer-events: none;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 14px;\n line-height: 1.6;\n font-weight: 400;\n }\n\n .block.list {\n padding-left: 0;\n }\n\n .block.list ul,\n .block.list ol {\n margin: 0;\n padding: 0 0 0 24px;\n list-style-position: outside;\n }\n\n .block.list ul {\n list-style: disc;\n }\n\n .block.list ol {\n list-style: decimal;\n }\n\n .block.list li {\n margin-bottom: 8px;\n line-height: 1.6;\n }\n\n .block.list li:last-child {\n margin-bottom: 0;\n }\n\n .block.divider {\n text-align: center;\n padding: 20px 0;\n cursor: default;\n pointer-events: none;\n }\n\n .block.divider hr {\n border: none;\n border-top: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n margin: 0;\n }\n\n .slash-menu {\n position: absolute;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 4px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n padding: 4px;\n z-index: 1000;\n min-width: 220px;\n max-height: 300px;\n overflow-y: auto;\n pointer-events: auto;\n user-select: none;\n }\n\n .slash-menu-item {\n padding: 8px 10px;\n cursor: pointer;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n gap: 12px;\n border-radius: 3px;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n font-size: 14px;\n }\n\n .slash-menu-item:hover,\n .slash-menu-item.selected {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .slash-menu-item .icon {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n font-weight: 600;\n }\n\n .slash-menu-item:hover .icon,\n .slash-menu-item.selected .icon {\n color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n .toolbar {\n position: absolute;\n top: -40px;\n left: 0;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 4px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n padding: 4px;\n display: none;\n gap: 4px;\n z-index: 1000;\n }\n\n .toolbar.visible {\n display: flex;\n }\n\n .toolbar-button {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 3px;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .toolbar-button:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n /* Drag and Drop Styles */\n .block-wrapper {\n position: relative;\n transition: transform 0.3s ease, opacity 0.2s ease;\n }\n\n /* Ensure proper spacing context for blocks */\n .block-wrapper + .block-wrapper .block {\n margin-top: 16px;\n }\n\n /* Override for headings following other blocks */\n .block-wrapper + .block-wrapper .block.heading-1,\n .block-wrapper + .block-wrapper .block.heading-2,\n .block-wrapper + .block-wrapper .block.heading-3 {\n margin-top: 24px;\n }\n\n /* Code and quote blocks need consistent spacing */\n .block-wrapper + .block-wrapper .block.code,\n .block-wrapper + .block-wrapper .block.quote {\n margin-top: 20px;\n }\n\n .drag-handle {\n position: absolute;\n left: -28px;\n top: 50%;\n transform: translateY(-50%);\n width: 24px;\n height: 24px;\n cursor: grab;\n opacity: 0;\n transition: opacity 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n border-radius: 4px;\n }\n\n .drag-handle::before {\n content: \"\u22EE\u22EE\";\n font-size: 12px;\n letter-spacing: -2px;\n }\n\n .block-wrapper:hover .drag-handle {\n opacity: 1;\n }\n\n .drag-handle:hover {\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n }\n\n .drag-handle:active {\n cursor: grabbing;\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n }\n\n .block-wrapper.dragging {\n opacity: 0.8;\n pointer-events: none;\n position: relative;\n z-index: 2001;\n transition: none !important;\n }\n\n\n /* Blocks that should move out of the way */\n .block-wrapper.move-down {\n transform: translateY(var(--drag-offset, 0px));\n }\n\n .block-wrapper.move-up {\n transform: translateY(calc(-1 * var(--drag-offset, 0px)));\n }\n\n /* Drop indicator */\n .drop-indicator {\n position: absolute;\n left: 0;\n right: 0;\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.05)', 'rgba(59, 130, 246, 0.05)')};\n border: 2px dashed ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n border-radius: 4px;\n transition: top 0.2s ease, height 0.2s ease;\n pointer-events: none;\n z-index: 1999;\n box-sizing: border-box;\n }\n\n /* Remove old drag-over styles */\n .block-wrapper.drag-over-before,\n .block-wrapper.drag-over-after {\n /* No longer needed, using drop indicator instead */\n }\n\n .editor-content.dragging * {\n user-select: none;\n }\n\n /* Block Settings Button - Removed in favor of context menu */\n\n /* Text Selection Styles */\n .block ::selection {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.2)', 'rgba(59, 130, 246, 0.2)')};\n color: inherit;\n }\n\n /* Formatting Menu */\n .formatting-menu {\n position: absolute;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 4px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n padding: 4px;\n display: flex;\n gap: 2px;\n z-index: 1001;\n animation: fadeInScale 0.15s ease-out;\n }\n\n @keyframes fadeInScale {\n from {\n opacity: 0;\n transform: scale(0.98) translateY(2px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n }\n\n .format-button {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 3px;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n font-weight: 600;\n font-size: 14px;\n position: relative;\n }\n\n .format-button:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n .format-button:active {\n transform: scale(0.95);\n }\n\n .format-button.bold {\n font-weight: 700;\n }\n\n .format-button.italic {\n font-style: italic;\n }\n\n .format-button.underline {\n text-decoration: underline;\n }\n\n .format-button .code-icon {\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 12px;\n }\n\n /* Applied format styles in content */\n .block strong,\n .block b {\n font-weight: 600;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .block em,\n .block i {\n font-style: italic;\n }\n\n .block u {\n text-decoration: underline;\n }\n\n .block strike,\n .block s {\n text-decoration: line-through;\n opacity: 0.7;\n }\n\n .block code {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n padding: 2px 6px;\n border-radius: 3px;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 0.9em;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .block a {\n color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n text-decoration: none;\n border-bottom: 1px solid transparent;\n transition: border-color 0.15s ease;\n }\n\n .block a:hover {\n border-bottom-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n`;", "import { type IBlock } from './wysiwyg.types.js';\n\nexport class WysiwygConverters {\n static escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n\n static formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n\n static getHtmlOutput(blocks: IBlock[]): string {\n return blocks.map(block => {\n // Check if content already contains HTML formatting\n const content = block.content.includes('<') && block.content.includes('>') \n ? block.content // Already contains HTML formatting\n : this.escapeHtml(block.content);\n \n switch (block.type) {\n case 'paragraph':\n return block.content ? `

      ${content}

      ` : '';\n case 'heading-1':\n return `

      ${content}

      `;\n case 'heading-2':\n return `

      ${content}

      `;\n case 'heading-3':\n return `

      ${content}

      `;\n case 'quote':\n return `
      ${content}
      `;\n case 'code':\n return `
      ${this.escapeHtml(block.content)}
      `;\n case 'list':\n const items = block.content.split('\\n').filter(item => item.trim());\n if (items.length > 0) {\n const listTag = block.metadata?.listType === 'ordered' ? 'ol' : 'ul';\n // Don't escape HTML in list items to preserve formatting\n return `<${listTag}>${items.map(item => `
    • ${item}
    • `).join('')}`;\n }\n return '';\n case 'divider':\n return '
      ';\n case 'image':\n const imageUrl = block.metadata?.url;\n if (imageUrl) {\n const altText = this.escapeHtml(block.content || 'Image');\n return `\"${altText}\"`;\n }\n return '';\n case 'youtube':\n const videoId = block.metadata?.videoId;\n if (videoId) {\n return ``;\n }\n return '';\n case 'markdown':\n // Return the raw markdown content wrapped in a div\n return `
      ${this.escapeHtml(block.content)}
      `;\n case 'html':\n // Return the raw HTML content (already HTML)\n return block.content;\n case 'attachment':\n const files = block.metadata?.files || [];\n if (files.length > 0) {\n return `
      ${files.map((file: any) => \n `
      \n ${this.escapeHtml(file.name)}\n (${this.formatFileSize(file.size)})\n
      `\n ).join('')}
      `;\n }\n return '';\n default:\n return `

      ${content}

      `;\n }\n }).filter(html => html !== '').join('\\n');\n }\n\n static getMarkdownOutput(blocks: IBlock[]): string {\n return blocks.map(block => {\n switch (block.type) {\n case 'paragraph':\n return block.content;\n case 'heading-1':\n return `# ${block.content}`;\n case 'heading-2':\n return `## ${block.content}`;\n case 'heading-3':\n return `### ${block.content}`;\n case 'quote':\n return `> ${block.content}`;\n case 'code':\n return `\\`\\`\\`\\n${block.content}\\n\\`\\`\\``;\n case 'list':\n const items = block.content.split('\\n').filter(item => item.trim());\n if (block.metadata?.listType === 'ordered') {\n return items.map((item, index) => `${index + 1}. ${item}`).join('\\n');\n } else {\n return items.map(item => `- ${item}`).join('\\n');\n }\n case 'divider':\n return '---';\n case 'image':\n const imageUrl = block.metadata?.url;\n const altText = block.content || 'Image';\n return imageUrl ? `![${altText}](${imageUrl})` : '';\n case 'youtube':\n const videoId = block.metadata?.videoId;\n const url = block.metadata?.url || (videoId ? `https://youtube.com/watch?v=${videoId}` : '');\n return url ? `[YouTube Video](${url})` : '';\n case 'markdown':\n // Return the raw markdown content\n return block.content;\n case 'html':\n // Return as HTML comment in markdown\n return ``;\n case 'attachment':\n const files = block.metadata?.files || [];\n if (files.length > 0) {\n return files.map((file: any) => `- [${file.name}](${file.data})`).join('\\n');\n }\n return '';\n default:\n return block.content;\n }\n }).filter(md => md !== '').join('\\n\\n');\n }\n\n static parseHtmlToBlocks(html: string): IBlock[] {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n const blocks: IBlock[] = [];\n \n const processNode = (node: Node) => {\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'paragraph',\n content: node.textContent.trim(),\n });\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n const tagName = element.tagName.toLowerCase();\n \n switch (tagName) {\n case 'p':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'paragraph',\n content: element.innerHTML || '',\n });\n break;\n case 'h1':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-1',\n content: element.innerHTML || '',\n });\n break;\n case 'h2':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-2',\n content: element.innerHTML || '',\n });\n break;\n case 'h3':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-3',\n content: element.innerHTML || '',\n });\n break;\n case 'blockquote':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'quote',\n content: element.innerHTML || '',\n });\n break;\n case 'pre':\n case 'code':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'code',\n content: element.textContent || '',\n });\n break;\n case 'ul':\n case 'ol':\n const listItems = Array.from(element.querySelectorAll('li'));\n // Use innerHTML to preserve formatting\n const content = listItems.map(li => li.innerHTML || '').join('\\n');\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'list',\n content: content,\n metadata: { listType: tagName === 'ol' ? 'ordered' : 'bullet' }\n });\n break;\n case 'hr':\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'divider',\n content: ' ',\n });\n break;\n case 'img':\n const imgElement = element as HTMLImageElement;\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'image',\n content: imgElement.alt || '',\n metadata: { url: imgElement.src }\n });\n break;\n default:\n // Process children for other elements\n element.childNodes.forEach(child => processNode(child));\n }\n }\n };\n \n doc.body.childNodes.forEach(node => processNode(node));\n return blocks;\n }\n\n static parseMarkdownToBlocks(markdown: string): IBlock[] {\n const lines = markdown.split('\\n');\n const blocks: IBlock[] = [];\n let currentListItems: string[] = [];\n \n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n \n if (line.startsWith('# ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-1',\n content: line.substring(2),\n });\n } else if (line.startsWith('## ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-2',\n content: line.substring(3),\n });\n } else if (line.startsWith('### ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'heading-3',\n content: line.substring(4),\n });\n } else if (line.startsWith('> ')) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'quote',\n content: line.substring(2),\n });\n } else if (line.startsWith('```')) {\n const codeLines: string[] = [];\n i++;\n while (i < lines.length && !lines[i].startsWith('```')) {\n codeLines.push(lines[i]);\n i++;\n }\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'code',\n content: codeLines.join('\\n'),\n });\n } else if (line.match(/^(\\*|-) /)) {\n currentListItems.push(line.substring(2));\n // Check if next line is not a list item\n if (i === lines.length - 1 || (!lines[i + 1].match(/^(\\*|-) /))) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'list',\n content: currentListItems.join('\\n'),\n metadata: { listType: 'bullet' }\n });\n currentListItems = [];\n }\n } else if (line.match(/^\\d+\\. /)) {\n currentListItems.push(line.replace(/^\\d+\\. /, ''));\n // Check if next line is not a numbered list item\n if (i === lines.length - 1 || (!lines[i + 1].match(/^\\d+\\. /))) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'list',\n content: currentListItems.join('\\n'),\n metadata: { listType: 'ordered' }\n });\n currentListItems = [];\n }\n } else if (line === '---' || line === '***' || line === '___') {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'divider',\n content: ' ',\n });\n } else if (line.match(/^!\\[([^\\]]*)\\]\\(([^\\)]+)\\)$/)) {\n // Parse markdown image syntax ![alt](url)\n const match = line.match(/^!\\[([^\\]]*)\\]\\(([^\\)]+)\\)$/);\n if (match) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'image',\n content: match[1] || '',\n metadata: { url: match[2] }\n });\n }\n } else if (line.trim()) {\n blocks.push({\n id: `block-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`,\n type: 'paragraph',\n content: line,\n });\n }\n }\n \n return blocks;\n }\n}", "import { html, type TemplateResult } from '@design.estate/dees-element';\nimport { type IBlock } from './wysiwyg.types.js';\nimport { WysiwygConverters } from './wysiwyg.converters.js';\n\nexport class WysiwygBlocks {\n static renderListContent(content: string, metadata?: any): string {\n const items = content.split('\\n').filter(item => item.trim());\n if (items.length === 0) return '';\n const listTag = metadata?.listType === 'ordered' ? 'ol' : 'ul';\n // Don't escape HTML to preserve formatting\n return `<${listTag}>${items.map(item => `
    • ${item}
    • `).join('')}`;\n }\n\n static renderBlock(\n block: IBlock,\n isSelected: boolean,\n handlers: {\n onInput: (e: InputEvent) => void;\n onKeyDown: (e: KeyboardEvent) => void;\n onFocus: () => void;\n onBlur: () => void;\n onCompositionStart: () => void;\n onCompositionEnd: () => void;\n onMouseUp?: (e: MouseEvent) => void;\n }\n ): TemplateResult {\n if (block.type === 'divider') {\n return html`\n \n
      \n \n `;\n }\n\n if (block.type === 'list') {\n return html`\n {\n console.log('Block mouseup event fired');\n if (handlers.onMouseUp) handlers.onMouseUp(e);\n }}\"\n .innerHTML=\"${this.renderListContent(block.content, block.metadata)}\"\n >\n `;\n }\n \n // Special rendering for code blocks with language indicator\n if (block.type === 'code') {\n const language = block.metadata?.language || 'plain text';\n return html`\n
      \n
      ${language}
      \n {\n console.log('Block mouseup event fired');\n if (handlers.onMouseUp) handlers.onMouseUp(e);\n }}\"\n .textContent=\"${block.content || ''}\"\n >
      \n \n `;\n }\n \n const blockElement = html`\n {\n console.log('Block mouseup event fired');\n if (handlers.onMouseUp) handlers.onMouseUp(e);\n }}\"\n .innerHTML=\"${block.content || ''}\"\n >\n `;\n \n return blockElement;\n }\n\n static setCursorToEnd(element: HTMLElement): void {\n const sel = window.getSelection();\n if (!sel) return;\n \n const range = document.createRange();\n \n // Handle different content types\n if (element.childNodes.length === 0) {\n // Empty element - add a zero-width space to enable cursor\n const textNode = document.createTextNode('\\u200B');\n element.appendChild(textNode);\n range.setStart(textNode, 1);\n range.collapse(true);\n } else {\n // Find the last text node or element\n const lastNode = this.getLastNode(element);\n if (lastNode.nodeType === Node.TEXT_NODE) {\n range.setStart(lastNode, lastNode.textContent?.length || 0);\n } else {\n range.setStartAfter(lastNode);\n }\n range.collapse(true);\n }\n \n sel.removeAllRanges();\n sel.addRange(range);\n \n // Remove zero-width space if it was added\n if (element.textContent === '\\u200B') {\n element.textContent = '';\n }\n }\n\n static setCursorToStart(element: HTMLElement): void {\n const sel = window.getSelection();\n if (!sel) return;\n \n const range = document.createRange();\n \n // Handle different content types\n if (element.childNodes.length === 0) {\n // Empty element\n range.setStart(element, 0);\n range.collapse(true);\n } else {\n // Find the first text node or element\n const firstNode = this.getFirstNode(element);\n if (firstNode.nodeType === Node.TEXT_NODE) {\n range.setStart(firstNode, 0);\n } else {\n range.setStartBefore(firstNode);\n }\n range.collapse(true);\n }\n \n sel.removeAllRanges();\n sel.addRange(range);\n }\n \n private static getLastNode(element: Node): Node {\n if (element.childNodes.length === 0) {\n return element;\n }\n \n const lastChild = element.childNodes[element.childNodes.length - 1];\n if (lastChild.nodeType === Node.TEXT_NODE || lastChild.childNodes.length === 0) {\n return lastChild;\n }\n \n return this.getLastNode(lastChild);\n }\n \n private static getFirstNode(element: Node): Node {\n if (element.childNodes.length === 0) {\n return element;\n }\n \n const firstChild = element.childNodes[0];\n if (firstChild.nodeType === Node.TEXT_NODE || firstChild.childNodes.length === 0) {\n return firstChild;\n }\n \n return this.getFirstNode(firstChild);\n }\n\n static focusListItem(listElement: HTMLElement): void {\n const firstLi = listElement.querySelector('li');\n if (firstLi) {\n firstLi.focus();\n const range = document.createRange();\n const sel = window.getSelection();\n range.selectNodeContents(firstLi);\n range.collapse(true);\n sel!.removeAllRanges();\n sel!.addRange(range);\n }\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { WysiwygBlocks } from './wysiwyg.blocks.js';\n\nexport class WysiwygBlockOperations {\n private component: IWysiwygComponent;\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Creates a new block with the specified parameters\n */\n createBlock(type: IBlock['type'] = 'paragraph', content: string = '', metadata?: any): IBlock {\n return {\n id: WysiwygShortcuts.generateBlockId(),\n type,\n content,\n ...(metadata && { metadata })\n };\n }\n\n /**\n * Inserts a block after the specified block\n */\n async insertBlockAfter(afterBlock: IBlock, newBlock: IBlock, focusNewBlock: boolean = true): Promise {\n const blocks = this.component.blocks;\n const blockIndex = blocks.findIndex((b: IBlock) => b.id === afterBlock.id);\n \n this.component.blocks = [\n ...blocks.slice(0, blockIndex + 1), \n newBlock, \n ...blocks.slice(blockIndex + 1)\n ];\n \n // Insert the new block element programmatically if we have the editor\n if (this.component.editorContentRef) {\n const afterWrapper = this.component.editorContentRef.querySelector(`[data-block-id=\"${afterBlock.id}\"]`);\n if (afterWrapper) {\n const newWrapper = this.component.createBlockElement(newBlock);\n afterWrapper.insertAdjacentElement('afterend', newWrapper);\n }\n }\n \n this.component.updateValue();\n \n if (focusNewBlock && newBlock.type !== 'divider') {\n // Give DOM time to settle\n await new Promise(resolve => setTimeout(resolve, 0));\n \n // Focus the new block\n await this.focusBlock(newBlock.id, 'start');\n }\n }\n\n /**\n * Removes a block by its ID\n */\n removeBlock(blockId: string): void {\n // Save checkpoint before deletion\n this.component.saveToHistory(false);\n \n this.component.blocks = this.component.blocks.filter((b: IBlock) => b.id !== blockId);\n \n // Remove the block element programmatically if we have the editor\n if (this.component.editorContentRef) {\n const wrapper = this.component.editorContentRef.querySelector(`[data-block-id=\"${blockId}\"]`);\n if (wrapper) {\n wrapper.remove();\n }\n }\n \n this.component.updateValue();\n }\n\n /**\n * Finds a block by its ID\n */\n findBlock(blockId: string): IBlock | undefined {\n return this.component.blocks.find((b: IBlock) => b.id === blockId);\n }\n\n /**\n * Gets the index of a block\n */\n getBlockIndex(blockId: string): number {\n return this.component.blocks.findIndex((b: IBlock) => b.id === blockId);\n }\n\n /**\n * Focuses a specific block\n */\n async focusBlock(blockId: string, cursorPosition: 'start' | 'end' | number = 'start'): Promise {\n const wrapperElement = this.component.shadowRoot!.querySelector(`[data-block-id=\"${blockId}\"]`);\n if (wrapperElement) {\n const blockComponent = wrapperElement.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n // Wait a frame to ensure the block is rendered\n await new Promise(resolve => requestAnimationFrame(resolve));\n \n // Now focus with cursor position\n blockComponent.focusWithCursor(cursorPosition);\n }\n }\n }\n\n /**\n * Updates the content of a block\n */\n updateBlockContent(blockId: string, content: string): void {\n const block = this.findBlock(blockId);\n if (block) {\n block.content = content;\n this.component.updateValue();\n }\n }\n\n /**\n * Transforms a block to a different type\n */\n transformBlock(blockId: string, newType: IBlock['type'], metadata?: any): void {\n const block = this.findBlock(blockId);\n if (block) {\n // Save checkpoint before transformation\n this.component.saveToHistory(false);\n \n block.type = newType;\n block.content = '';\n if (metadata) {\n block.metadata = metadata;\n }\n \n // Update the block element programmatically if we have the editor\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(blockId);\n }\n \n this.component.updateValue();\n }\n }\n\n /**\n * Moves a block to a new position\n */\n moveBlock(blockId: string, targetIndex: number): void {\n const blocks = [...this.component.blocks];\n const currentIndex = this.getBlockIndex(blockId);\n \n if (currentIndex === -1 || targetIndex < 0 || targetIndex >= blocks.length) {\n return;\n }\n \n const [movedBlock] = blocks.splice(currentIndex, 1);\n blocks.splice(targetIndex, 0, movedBlock);\n \n this.component.blocks = blocks;\n this.component.updateValue();\n }\n\n /**\n * Gets the previous block\n */\n getPreviousBlock(blockId: string): IBlock | null {\n const index = this.getBlockIndex(blockId);\n return index > 0 ? this.component.blocks[index - 1] : null;\n }\n\n /**\n * Gets the next block\n */\n getNextBlock(blockId: string): IBlock | null {\n const index = this.getBlockIndex(blockId);\n return index < this.component.blocks.length - 1 ? this.component.blocks[index + 1] : null;\n }\n}", "import type { IBlock } from '../wysiwyg.types.js';\nimport type { IBlockEventHandlers } from '../wysiwyg.interfaces.js';\n\n// Re-export types from the interfaces\nexport type { IBlockEventHandlers } from '../wysiwyg.interfaces.js';\n\nexport interface IBlockContext {\n shadowRoot: ShadowRoot;\n component: any; // Reference to the wysiwyg-block component\n}\n\nexport interface IBlockHandler {\n type: string;\n render(block: IBlock, isSelected: boolean): string;\n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void;\n getStyles(): string;\n getPlaceholder?(): string;\n \n // Optional methods for editable blocks - now with context\n getContent?(element: HTMLElement, context?: IBlockContext): string;\n setContent?(element: HTMLElement, content: string, context?: IBlockContext): void;\n getCursorPosition?(element: HTMLElement, context?: IBlockContext): number | null;\n setCursorToStart?(element: HTMLElement, context?: IBlockContext): void;\n setCursorToEnd?(element: HTMLElement, context?: IBlockContext): void;\n focus?(element: HTMLElement, context?: IBlockContext): void;\n focusWithCursor?(element: HTMLElement, position: 'start' | 'end' | number, context?: IBlockContext): void;\n getSplitContent?(element: HTMLElement, context?: IBlockContext): { before: string; after: string } | null;\n}\n\n\nexport abstract class BaseBlockHandler implements IBlockHandler {\n abstract type: string;\n abstract render(block: IBlock, isSelected: boolean): string;\n \n // Default implementation for common setup\n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n // Common setup logic\n }\n \n // Common styles can be defined here\n getStyles(): string {\n return '';\n }\n}", "import type { IBlockHandler } from './block.base.js';\n\nexport class BlockRegistry {\n private static handlers = new Map();\n \n static register(type: string, handler: IBlockHandler): void {\n this.handlers.set(type, handler);\n }\n \n static getHandler(type: string): IBlockHandler | undefined {\n return this.handlers.get(type);\n }\n \n static getAllTypes(): string[] {\n return Array.from(this.handlers.keys());\n }\n}", "/**\n * Common styles shared across all block types\n */\n\nexport const commonBlockStyles = `\n /* Common block spacing and layout */\n /* TODO: Extract common spacing from existing blocks */\n \n /* Common focus states */\n /* TODO: Extract common focus styles */\n \n /* Common selected states */\n /* TODO: Extract common selection styles */\n \n /* Common hover states */\n /* TODO: Extract common hover styles */\n \n /* Common transition effects */\n /* TODO: Extract common transitions */\n \n /* Common placeholder styles */\n /* TODO: Extract common placeholder styles */\n \n /* Common error states */\n /* TODO: Extract common error styles */\n \n /* Common loading states */\n /* TODO: Extract common loading styles */\n`;\n\n/**\n * Helper function to generate consistent block classes\n */\nexport const getBlockClasses = (\n type: string,\n isSelected: boolean,\n additionalClasses: string[] = []\n): string => {\n const classes = ['block', type];\n if (isSelected) {\n classes.push('selected');\n }\n classes.push(...additionalClasses);\n return classes.join(' ');\n};\n\n/**\n * Helper function to generate consistent data attributes\n */\nexport const getBlockDataAttributes = (\n blockId: string,\n blockType: string,\n additionalAttributes: Record = {}\n): string => {\n const attributes = {\n 'data-block-id': blockId,\n 'data-block-type': blockType,\n ...additionalAttributes\n };\n \n return Object.entries(attributes)\n .map(([key, value]) => `${key}=\"${value}\"`)\n .join(' ');\n};", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class ParagraphBlockHandler extends BaseBlockHandler {\n type = 'paragraph';\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const placeholder = this.getPlaceholder();\n \n \n return `\n \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) {\n console.error('ParagraphBlockHandler.setup: No paragraph block element found');\n return;\n }\n \n \n // Set initial content if needed\n if (block.content && !paragraphBlock.innerHTML) {\n paragraphBlock.innerHTML = block.content;\n }\n \n // Input handler with cursor tracking\n paragraphBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler with cursor tracking\n paragraphBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n paragraphBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n paragraphBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n paragraphBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n paragraphBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n paragraphBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n handlers.onMouseUp?.(e);\n });\n \n // Click handler with delayed cursor tracking\n paragraphBlock.addEventListener('click', (e: MouseEvent) => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler for additional cursor tracking\n paragraphBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection change handler\n this.setupSelectionHandler(element, paragraphBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, paragraphBlock: HTMLDivElement, block: IBlock): void {\n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root - traverse from shadow root\n const wysiwygBlock = (paragraphBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n this.selectionHandler = checkSelection;\n \n // Clean up on disconnect (will be called by dees-wysiwyg-block)\n const wysiwygBlock = element.closest('dees-wysiwyg-block');\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n return `\n /* Paragraph specific styles */\n .block.paragraph {\n font-size: 16px;\n line-height: 1.6;\n font-weight: 400;\n }\n `;\n }\n \n getPlaceholder(): string {\n return \"Type '/' for commands...\";\n }\n \n /**\n * Helper to get the last text node in an element\n */\n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n \n // Helper methods for paragraph functionality\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n // Get the actual paragraph element\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n return null;\n }\n \n if (!WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(paragraphBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n \n return position;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return '';\n \n // For paragraphs, get the innerHTML which includes formatting tags\n const content = paragraphBlock.innerHTML || '';\n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === paragraphBlock || \n element.shadowRoot?.activeElement === paragraphBlock;\n \n paragraphBlock.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n paragraphBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (paragraphBlock) {\n WysiwygBlocks.setCursorToStart(paragraphBlock);\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (paragraphBlock) {\n WysiwygBlocks.setCursorToEnd(paragraphBlock);\n }\n }\n \n focus(element: HTMLElement, context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return;\n \n // Ensure the element is focusable\n if (!paragraphBlock.hasAttribute('contenteditable')) {\n paragraphBlock.setAttribute('contenteditable', 'true');\n }\n \n paragraphBlock.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== paragraphBlock && element.shadowRoot?.activeElement !== paragraphBlock) {\n Promise.resolve().then(() => {\n paragraphBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) return;\n \n \n // Ensure element is focusable first\n if (!paragraphBlock.hasAttribute('contenteditable')) {\n paragraphBlock.setAttribute('contenteditable', 'true');\n }\n \n // For 'end' position, we need to set up selection before focus to prevent browser default\n if (position === 'end' && paragraphBlock.textContent && paragraphBlock.textContent.length > 0) {\n // Set up the selection first\n const sel = window.getSelection();\n if (sel) {\n const range = document.createRange();\n const lastNode = this.getLastTextNode(paragraphBlock) || paragraphBlock;\n if (lastNode.nodeType === Node.TEXT_NODE) {\n range.setStart(lastNode, lastNode.textContent?.length || 0);\n range.setEnd(lastNode, lastNode.textContent?.length || 0);\n } else {\n range.selectNodeContents(lastNode);\n range.collapse(false);\n }\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n \n // Now focus the element\n paragraphBlock.focus();\n \n // Set cursor position after focus is established (for non-end positions)\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end' && (!paragraphBlock.textContent || paragraphBlock.textContent.length === 0)) {\n // Only call setCursorToEnd for empty blocks\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // Use the selection utility to set cursor position\n WysiwygSelection.setCursorPosition(paragraphBlock, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === paragraphBlock || element.shadowRoot?.activeElement === paragraphBlock) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === paragraphBlock || element.shadowRoot?.activeElement === paragraphBlock) {\n setCursor();\n } else {\n // Try again with a small delay - sometimes focus needs more time\n setTimeout(() => {\n if (document.activeElement === paragraphBlock || element.shadowRoot?.activeElement === paragraphBlock) {\n setCursor();\n }\n }, 10);\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const paragraphBlock = element.querySelector('.block.paragraph') as HTMLDivElement;\n if (!paragraphBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = paragraphBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(paragraphBlock, selectionInfo.startContainer)) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = paragraphBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Get cursor position first\n const cursorPos = this.getCursorPosition(element, context);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n return {\n before: '',\n after: paragraphBlock.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(paragraphBlock, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(paragraphBlock, paragraphBlock.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class HeadingBlockHandler extends BaseBlockHandler {\n type: string;\n private level: 1 | 2 | 3;\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n constructor(type: 'heading-1' | 'heading-2' | 'heading-3') {\n super();\n this.type = type;\n this.level = parseInt(type.split('-')[1]) as 1 | 2 | 3;\n }\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const placeholder = this.getPlaceholder();\n \n \n return `\n \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) {\n console.error('HeadingBlockHandler.setup: No heading block element found');\n return;\n }\n \n \n // Set initial content if needed\n if (block.content && !headingBlock.innerHTML) {\n headingBlock.innerHTML = block.content;\n }\n \n // Input handler with cursor tracking\n headingBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler with cursor tracking\n headingBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n headingBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n headingBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n headingBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n headingBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n headingBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n handlers.onMouseUp?.(e);\n });\n \n // Click handler with delayed cursor tracking\n headingBlock.addEventListener('click', (e: MouseEvent) => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler for additional cursor tracking\n headingBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection change handler\n this.setupSelectionHandler(element, headingBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, headingBlock: HTMLDivElement, block: IBlock): void {\n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root - in setup, we need to traverse\n const wysiwygBlock = (headingBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n this.selectionHandler = checkSelection;\n \n // Clean up on disconnect (will be called by dees-wysiwyg-block)\n const wysiwygBlock = (headingBlock.getRootNode() as ShadowRoot).host as any;\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n // Return styles for all heading levels\n return `\n .block.heading-1 {\n font-size: 32px;\n font-weight: 700;\n line-height: 1.2;\n margin: 24px 0 8px 0;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .block.heading-2 {\n font-size: 24px;\n font-weight: 600;\n line-height: 1.3;\n margin: 20px 0 6px 0;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .block.heading-3 {\n font-size: 20px;\n font-weight: 600;\n line-height: 1.4;\n margin: 16px 0 4px 0;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n `;\n }\n \n getPlaceholder(): string {\n switch(this.level) {\n case 1:\n return 'Heading 1';\n case 2:\n return 'Heading 2';\n case 3:\n return 'Heading 3';\n default:\n return 'Heading';\n }\n }\n \n /**\n * Helper to get the last text node in an element\n */\n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n \n // Helper methods for heading functionality (mostly the same as paragraph)\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n // Get the actual heading element\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n return null;\n }\n \n if (!WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(headingBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n \n return position;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return '';\n \n // For headings, get the innerHTML which includes formatting tags\n const content = headingBlock.innerHTML || '';\n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === headingBlock || \n element.shadowRoot?.activeElement === headingBlock;\n \n headingBlock.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n headingBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (headingBlock) {\n WysiwygBlocks.setCursorToStart(headingBlock);\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (headingBlock) {\n WysiwygBlocks.setCursorToEnd(headingBlock);\n }\n }\n \n focus(element: HTMLElement, context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return;\n \n // Ensure the element is focusable\n if (!headingBlock.hasAttribute('contenteditable')) {\n headingBlock.setAttribute('contenteditable', 'true');\n }\n \n headingBlock.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== headingBlock && element.shadowRoot?.activeElement !== headingBlock) {\n Promise.resolve().then(() => {\n headingBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) return;\n \n \n // Ensure element is focusable first\n if (!headingBlock.hasAttribute('contenteditable')) {\n headingBlock.setAttribute('contenteditable', 'true');\n }\n \n // For 'end' position, we need to set up selection before focus to prevent browser default\n if (position === 'end' && headingBlock.textContent && headingBlock.textContent.length > 0) {\n // Set up the selection first\n const sel = window.getSelection();\n if (sel) {\n const range = document.createRange();\n const lastNode = this.getLastTextNode(headingBlock) || headingBlock;\n if (lastNode.nodeType === Node.TEXT_NODE) {\n range.setStart(lastNode, lastNode.textContent?.length || 0);\n range.setEnd(lastNode, lastNode.textContent?.length || 0);\n } else {\n range.selectNodeContents(lastNode);\n range.collapse(false);\n }\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n \n // Now focus the element\n headingBlock.focus();\n \n // Set cursor position after focus is established (for non-end positions)\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end' && (!headingBlock.textContent || headingBlock.textContent.length === 0)) {\n // Only call setCursorToEnd for empty blocks\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // Use the selection utility to set cursor position\n WysiwygSelection.setCursorPosition(headingBlock, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === headingBlock || element.shadowRoot?.activeElement === headingBlock) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === headingBlock || element.shadowRoot?.activeElement === headingBlock) {\n setCursor();\n } else {\n // Try again with a small delay - sometimes focus needs more time\n setTimeout(() => {\n if (document.activeElement === headingBlock || element.shadowRoot?.activeElement === headingBlock) {\n setCursor();\n }\n }, 10);\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const headingBlock = element.querySelector(`.block.heading-${this.level}`) as HTMLDivElement;\n if (!headingBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = headingBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(headingBlock, selectionInfo.startContainer)) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = headingBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Get cursor position first\n const cursorPos = this.getCursorPosition(element, context);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n return {\n before: '',\n after: headingBlock.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(headingBlock, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(headingBlock, headingBlock.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class QuoteBlockHandler extends BaseBlockHandler {\n type = 'quote';\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const placeholder = this.getPlaceholder();\n \n \n return `\n \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) {\n console.error('QuoteBlockHandler.setup: No quote block element found');\n return;\n }\n \n // Set initial content if needed\n if (block.content && !quoteBlock.innerHTML) {\n quoteBlock.innerHTML = block.content;\n }\n \n // Input handler with cursor tracking\n quoteBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler with cursor tracking\n quoteBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n quoteBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n quoteBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n quoteBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n quoteBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n quoteBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n handlers.onMouseUp?.(e);\n });\n \n // Click handler with delayed cursor tracking\n quoteBlock.addEventListener('click', (e: MouseEvent) => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler for additional cursor tracking\n quoteBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection change handler\n this.setupSelectionHandler(element, quoteBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, quoteBlock: HTMLDivElement, block: IBlock): void {\n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root - traverse from shadow root\n const wysiwygBlock = (quoteBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n this.selectionHandler = checkSelection;\n \n // Clean up on disconnect (will be called by dees-wysiwyg-block)\n const wysiwygBlock = (quoteBlock.getRootNode() as ShadowRoot).host as any;\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n return `\n /* Quote specific styles */\n .block.quote {\n border-left: 3px solid ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n padding-left: 20px;\n color: ${cssManager.bdTheme('#555', '#b0b0b0')};\n font-style: italic;\n line-height: 1.6;\n margin: 16px 0;\n }\n `;\n }\n \n getPlaceholder(): string {\n return 'Add a quote...';\n }\n \n // Helper methods for quote functionality\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n // Get the actual quote element\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n return null;\n }\n \n if (!WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(quoteBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n \n return position;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return '';\n \n // For quotes, get the innerHTML which includes formatting tags\n const content = quoteBlock.innerHTML || '';\n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === quoteBlock || \n element.shadowRoot?.activeElement === quoteBlock;\n \n quoteBlock.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n quoteBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (quoteBlock) {\n WysiwygBlocks.setCursorToStart(quoteBlock);\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (quoteBlock) {\n WysiwygBlocks.setCursorToEnd(quoteBlock);\n }\n }\n \n focus(element: HTMLElement, context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return;\n \n // Ensure the element is focusable\n if (!quoteBlock.hasAttribute('contenteditable')) {\n quoteBlock.setAttribute('contenteditable', 'true');\n }\n \n quoteBlock.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== quoteBlock && element.shadowRoot?.activeElement !== quoteBlock) {\n Promise.resolve().then(() => {\n quoteBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) return;\n \n // Ensure element is focusable first\n if (!quoteBlock.hasAttribute('contenteditable')) {\n quoteBlock.setAttribute('contenteditable', 'true');\n }\n \n // Focus the element\n quoteBlock.focus();\n \n // Set cursor position after focus is established\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end') {\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // Use the selection utility to set cursor position\n WysiwygSelection.setCursorPosition(quoteBlock, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === quoteBlock || element.shadowRoot?.activeElement === quoteBlock) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === quoteBlock || element.shadowRoot?.activeElement === quoteBlock) {\n setCursor();\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const quoteBlock = element.querySelector('.block.quote') as HTMLDivElement;\n if (!quoteBlock) {\n return null;\n }\n \n // Get shadow roots from context\n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n \n if (!selectionInfo) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = quoteBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(quoteBlock, selectionInfo.startContainer)) {\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = quoteBlock.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // Get cursor position first\n const cursorPos = this.getCursorPosition(element, context);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n return {\n before: '',\n after: quoteBlock.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(quoteBlock, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(quoteBlock, quoteBlock.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\nimport type { HLJSApi } from 'highlight.js';\nimport { cssGeistFontFamily, cssMonoFontFamily } from '../../../../00fonts.js';\nimport { PROGRAMMING_LANGUAGES } from '../../wysiwyg.constants.js';\nimport { DeesServiceLibLoader } from '../../../../../services/index.js';\n\n/**\n * CodeBlockHandler with improved architecture\n * \n * Key features:\n * 1. Simple DOM structure\n * 2. Line number handling\n * 3. Syntax highlighting only when not focused (grey text while editing)\n * 4. Clean event handling\n * 5. Copy button functionality\n */\nexport class CodeBlockHandler extends BaseBlockHandler {\n type = 'code';\n\n private highlightTimer: any = null;\n private highlightJs: HLJSApi | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const language = block.metadata?.language || 'typescript';\n const content = block.content || '';\n const lineCount = content.split('\\n').length;\n \n // Generate line numbers\n let lineNumbersHtml = '';\n for (let i = 1; i <= lineCount; i++) {\n lineNumbersHtml += `
      ${i}
      `;\n }\n \n // Generate language options\n const languageOptions = PROGRAMMING_LANGUAGES.map(lang => {\n const value = lang.toLowerCase();\n return ``;\n }).join('');\n \n return `\n
      \n
      \n \n \n
      \n
      \n
      ${lineNumbersHtml}
      \n
      \n
      ${this.escapeHtml(content)}
      \n
      \n
      \n
      \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n const container = element.querySelector('.code-block-container') as HTMLElement;\n const copyButton = element.querySelector('.copy-button') as HTMLButtonElement;\n const languageSelector = element.querySelector('.language-selector') as HTMLSelectElement;\n \n if (!editor || !container) return;\n \n // Setup language selector\n if (languageSelector) {\n languageSelector.addEventListener('change', (e) => {\n const newLanguage = (e.target as HTMLSelectElement).value;\n block.metadata = { ...block.metadata, language: newLanguage };\n container.setAttribute('data-language', newLanguage);\n \n // Update the syntax highlighting if content exists and not focused\n if (block.content && document.activeElement !== editor) {\n this.applyHighlighting(element, block);\n }\n \n // Notify about the change\n if (handlers.onInput) {\n handlers.onInput(new InputEvent('input'));\n }\n });\n }\n \n // Setup copy button\n if (copyButton) {\n copyButton.addEventListener('click', async () => {\n const content = editor.textContent || '';\n \n try {\n await navigator.clipboard.writeText(content);\n \n // Show feedback\n const copyText = copyButton.querySelector('.copy-text') as HTMLElement;\n const originalText = copyText.textContent;\n copyText.textContent = 'Copied!';\n copyButton.classList.add('copied');\n \n // Reset after 2 seconds\n setTimeout(() => {\n copyText.textContent = originalText;\n copyButton.classList.remove('copied');\n }, 2000);\n } catch (err) {\n console.error('Failed to copy:', err);\n // Fallback for older browsers\n const textArea = document.createElement('textarea');\n textArea.value = content;\n textArea.style.position = 'fixed';\n textArea.style.opacity = '0';\n document.body.appendChild(textArea);\n textArea.select();\n try {\n // @ts-ignore - execCommand is deprecated but needed for fallback\n document.execCommand('copy');\n // Show feedback\n const copyText = copyButton.querySelector('.copy-text') as HTMLElement;\n const originalText = copyText.textContent;\n copyText.textContent = 'Copied!';\n copyButton.classList.add('copied');\n \n setTimeout(() => {\n copyText.textContent = originalText;\n copyButton.classList.remove('copied');\n }, 2000);\n } catch (err) {\n console.error('Fallback copy failed:', err);\n }\n document.body.removeChild(textArea);\n }\n });\n }\n \n // Track if we're currently editing\n let isEditing = false;\n \n // Focus handler\n editor.addEventListener('focus', () => {\n isEditing = true;\n container.classList.add('editing');\n \n // Remove all syntax highlighting when focused\n const content = editor.textContent || '';\n editor.textContent = content; // This removes all HTML formatting\n \n // Restore cursor position after removing highlighting\n requestAnimationFrame(() => {\n const range = document.createRange();\n const selection = window.getSelection();\n if (editor.firstChild) {\n range.setStart(editor.firstChild, 0);\n range.collapse(true);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n });\n \n handlers.onFocus();\n });\n \n // Blur handler\n editor.addEventListener('blur', () => {\n isEditing = false;\n container.classList.remove('editing');\n // Apply final highlighting on blur\n this.applyHighlighting(element, block);\n handlers.onBlur();\n });\n \n // Input handler\n editor.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Update line numbers\n this.updateLineNumbers(element);\n \n // Clear any pending highlight timer (no highlighting while editing)\n clearTimeout(this.highlightTimer);\n });\n \n // Keydown handler\n editor.addEventListener('keydown', (e) => {\n // Handle Tab key for code blocks\n if (e.key === 'Tab') {\n e.preventDefault();\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const textNode = document.createTextNode(' ');\n range.insertNode(textNode);\n range.setStartAfter(textNode);\n range.setEndAfter(textNode);\n selection.removeAllRanges();\n selection.addRange(range);\n handlers.onInput(new InputEvent('input'));\n this.updateLineNumbers(element);\n }\n return;\n }\n \n // Check cursor position for navigation keys\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key)) {\n const cursorPos = this.getCursorPosition(element);\n const textLength = editor.textContent?.length || 0;\n \n // For ArrowLeft at position 0 or ArrowRight at end, let parent handle navigation\n if ((e.key === 'ArrowLeft' && cursorPos === 0) || \n (e.key === 'ArrowRight' && cursorPos === textLength)) {\n // Pass to parent handler for inter-block navigation\n handlers.onKeyDown(e);\n return;\n }\n \n // For ArrowUp/Down, check if we're at first/last line\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n const lines = (editor.textContent || '').split('\\n');\n const currentLine = this.getCurrentLineIndex(editor);\n \n if ((e.key === 'ArrowUp' && currentLine === 0) ||\n (e.key === 'ArrowDown' && currentLine === lines.length - 1)) {\n // Let parent handle navigation to prev/next block\n handlers.onKeyDown(e);\n return;\n }\n }\n }\n \n // Pass other keys to parent handler\n handlers.onKeyDown(e);\n });\n \n // Paste handler - plain text only\n editor.addEventListener('paste', (e) => {\n e.preventDefault();\n const text = e.clipboardData?.getData('text/plain');\n if (text) {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n range.deleteContents();\n const textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.setStartAfter(textNode);\n range.setEndAfter(textNode);\n selection.removeAllRanges();\n selection.addRange(range);\n handlers.onInput(new InputEvent('input'));\n this.updateLineNumbers(element);\n }\n }\n });\n \n // Composition handlers\n editor.addEventListener('compositionstart', () => handlers.onCompositionStart());\n editor.addEventListener('compositionend', () => handlers.onCompositionEnd());\n \n // Initial syntax highlighting if content exists and not focused\n if (block.content && document.activeElement !== editor) {\n requestAnimationFrame(() => {\n this.applyHighlighting(element, block);\n });\n }\n }\n \n private updateLineNumbers(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n const lineNumbersContainer = element.querySelector('.line-numbers') as HTMLElement;\n \n if (!editor || !lineNumbersContainer) return;\n \n const content = editor.textContent || '';\n const lines = content.split('\\n');\n const lineCount = lines.length || 1;\n \n let lineNumbersHtml = '';\n for (let i = 1; i <= lineCount; i++) {\n lineNumbersHtml += `
      ${i}
      `;\n }\n \n lineNumbersContainer.innerHTML = lineNumbersHtml;\n }\n \n private getCurrentLineIndex(editor: HTMLElement): number {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return 0;\n \n const range = selection.getRangeAt(0);\n const preCaretRange = range.cloneRange();\n preCaretRange.selectNodeContents(editor);\n preCaretRange.setEnd(range.startContainer, range.startOffset);\n \n const textBeforeCursor = preCaretRange.toString();\n const linesBeforeCursor = textBeforeCursor.split('\\n');\n \n return linesBeforeCursor.length - 1; // 0-indexed\n }\n \n private async applyHighlighting(element: HTMLElement, block: IBlock): Promise {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return;\n\n // Load highlight.js from CDN if not already loaded\n if (!this.highlightJs) {\n this.highlightJs = await DeesServiceLibLoader.getInstance().loadHighlightJs();\n }\n\n // Store cursor position\n const cursorPos = this.getCursorPosition(element);\n\n // Get plain text content\n const content = editor.textContent || '';\n const language = block.metadata?.language || 'typescript';\n\n // Apply highlighting\n try {\n const result = this.highlightJs.highlight(content, {\n language: language,\n ignoreIllegals: true,\n });\n\n // Only update if we have valid highlighted content\n if (result.value) {\n editor.innerHTML = result.value;\n\n // Restore cursor position if editor is focused\n if (document.activeElement === editor && cursorPos !== null) {\n requestAnimationFrame(() => {\n WysiwygSelection.setCursorPosition(editor, cursorPos);\n });\n }\n }\n } catch (error) {\n // If highlighting fails, keep plain text\n console.warn('Syntax highlighting failed:', error);\n }\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n return editor?.textContent || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return;\n \n editor.textContent = content;\n this.updateLineNumbers(element);\n \n // Apply highlighting if not focused\n if (document.activeElement !== editor) {\n const block: IBlock = {\n id: editor.dataset.blockId || '',\n type: 'code',\n content: content,\n metadata: { \n language: element.querySelector('.code-block-container')?.getAttribute('data-language') || 'typescript'\n }\n };\n this.applyHighlighting(element, block);\n }\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return null;\n \n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return null;\n \n const range = selection.getRangeAt(0);\n if (!editor.contains(range.startContainer)) return null;\n \n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(editor);\n preCaretRange.setEnd(range.startContainer, range.startOffset);\n \n return preCaretRange.toString().length;\n }\n \n setCursorToStart(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (editor) {\n WysiwygSelection.setCursorPosition(editor, 0);\n }\n }\n \n setCursorToEnd(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (editor) {\n const length = editor.textContent?.length || 0;\n WysiwygSelection.setCursorPosition(editor, length);\n }\n }\n \n focus(element: HTMLElement): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n editor?.focus();\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n const editor = element.querySelector('.code-editor') as HTMLElement;\n if (!editor) return;\n \n editor.focus();\n \n requestAnimationFrame(() => {\n if (position === 'start') {\n this.setCursorToStart(element);\n } else if (position === 'end') {\n this.setCursorToEnd(element);\n } else if (typeof position === 'number') {\n WysiwygSelection.setCursorPosition(editor, position);\n }\n });\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n const position = this.getCursorPosition(element);\n if (position === null) return null;\n \n const content = this.getContent(element);\n return {\n before: content.substring(0, position),\n after: content.substring(position)\n };\n }\n \n getStyles(): string {\n return `\n /* Code Block Container - Minimalist shadcn style */\n .code-block-container {\n position: relative;\n margin: 12px 0;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n }\n \n .code-block-container.selected {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n .code-block-container.editing {\n border-color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n \n /* Header - Simplified */\n .code-header {\n background: transparent;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n padding: 8px 12px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n \n .language-selector {\n font-size: 12px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n font-weight: 500;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n font-family: ${cssGeistFontFamily};\n background: transparent;\n border: 1px solid transparent;\n border-radius: 4px;\n padding: 4px 8px;\n cursor: pointer;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .language-selector:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#e5e7eb', '#374151')};\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .language-selector:focus {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Copy Button - Minimal */\n .copy-button {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 4px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n font-size: 12px;\n font-family: ${cssGeistFontFamily};\n cursor: pointer;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .copy-button:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#e5e7eb', '#374151')};\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .copy-button:active {\n transform: scale(0.98);\n }\n \n .copy-button.copied {\n color: ${cssManager.bdTheme('#059669', '#10b981')};\n }\n \n .copy-icon {\n flex-shrink: 0;\n opacity: 0.7;\n }\n \n .copy-button:hover .copy-icon {\n opacity: 1;\n }\n \n .copy-text {\n min-width: 40px;\n text-align: center;\n }\n \n /* Code Body */\n .code-body {\n display: flex;\n position: relative;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n \n /* Line Numbers - Subtle */\n .line-numbers {\n flex-shrink: 0;\n padding: 12px 0;\n background: transparent;\n text-align: right;\n user-select: none;\n min-width: 40px;\n border-right: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n }\n \n .line-number {\n padding: 0 12px 0 8px;\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n font-family: ${cssMonoFontFamily};\n font-size: 13px;\n line-height: 20px;\n height: 20px;\n }\n \n /* Code Content */\n .code-content {\n flex: 1;\n overflow-x: auto;\n position: relative;\n }\n \n .code-pre {\n margin: 0;\n padding: 0;\n background: transparent;\n }\n \n .code-editor {\n display: block;\n padding: 12px 16px;\n margin: 0;\n font-family: ${cssMonoFontFamily};\n font-size: 13px;\n line-height: 20px;\n color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n background: transparent;\n border: none;\n outline: none;\n white-space: pre-wrap;\n word-wrap: break-word;\n min-height: 60px;\n overflow: visible;\n }\n \n /* Placeholder */\n .code-editor:empty::before {\n content: \"// Type or paste code here...\";\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n pointer-events: none;\n }\n \n /* When editing (focused), show grey text without highlighting */\n .code-block-container.editing .code-editor {\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')} !important;\n }\n \n .code-block-container.editing .code-editor * {\n color: inherit !important;\n }\n \n /* Syntax Highlighting - Muted colors */\n .code-editor .hljs-keyword {\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n font-weight: 500;\n }\n \n .code-editor .hljs-string {\n color: ${cssManager.bdTheme('#059669', '#10b981')};\n }\n \n .code-editor .hljs-number {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n .code-editor .hljs-function {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n \n .code-editor .hljs-comment {\n color: ${cssManager.bdTheme('#6b7280', '#6b7280')};\n font-style: italic;\n }\n \n .code-editor .hljs-variable,\n .code-editor .hljs-attr {\n color: ${cssManager.bdTheme('#ea580c', '#fb923c')};\n }\n \n .code-editor .hljs-class,\n .code-editor .hljs-title {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n font-weight: 500;\n }\n \n .code-editor .hljs-params {\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .code-editor .hljs-built_in {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n .code-editor .hljs-literal {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n .code-editor .hljs-meta {\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n }\n \n .code-editor .hljs-punctuation {\n color: ${cssManager.bdTheme('#374151', '#d1d5db')};\n }\n \n .code-editor .hljs-tag {\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n }\n \n .code-editor .hljs-attribute {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n \n .code-editor .hljs-selector-tag {\n color: ${cssManager.bdTheme('#dc2626', '#f87171')};\n }\n \n .code-editor .hljs-selector-class {\n color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};\n }\n \n .code-editor .hljs-selector-id {\n color: ${cssManager.bdTheme('#7c3aed', '#a78bfa')};\n }\n \n /* Selection */\n .code-editor::selection,\n .code-editor *::selection {\n background: ${cssManager.bdTheme('rgba(99, 102, 241, 0.2)', 'rgba(99, 102, 241, 0.3)')};\n }\n \n /* Scrollbar styling - Minimal */\n .code-content::-webkit-scrollbar {\n height: 6px;\n }\n \n .code-content::-webkit-scrollbar-track {\n background: transparent;\n }\n \n .code-content::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n border-radius: 3px;\n }\n \n .code-content::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\nimport { WysiwygBlocks } from '../../wysiwyg.blocks.js';\nimport { WysiwygSelection } from '../../wysiwyg.selection.js';\n\nexport class ListBlockHandler extends BaseBlockHandler {\n type = 'list';\n \n // Track cursor position and list state\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n private selectionHandler: (() => void) | null = null;\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n const listType = block.metadata?.listType || 'unordered';\n const listTag = listType === 'ordered' ? 'ol' : 'ul';\n \n // Render list content\n const listContent = this.renderListContent(block.content, block.metadata);\n \n return `\n ${listContent}\n `;\n }\n \n private renderListContent(content: string | undefined, metadata: any): string {\n if (!content) return '
      ';\n \n const listType = metadata?.listType || 'unordered';\n const listTag = listType === 'ordered' ? 'ol' : 'ul';\n \n // Split content by newlines to create list items\n const lines = content.split('\\n').filter(line => line.trim());\n if (lines.length === 0) {\n return `<${listTag}>
    • `;\n }\n \n const listItems = lines.map(line => `
    • ${line}
    • `).join('');\n return `<${listTag}>${listItems}`;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) {\n console.error('ListBlockHandler.setup: No list block element found');\n return;\n }\n \n // Set initial content if needed\n if (block.content && !listBlock.innerHTML) {\n listBlock.innerHTML = this.renderListContent(block.content, block.metadata);\n }\n \n // Input handler\n listBlock.addEventListener('input', (e) => {\n handlers.onInput(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Keydown handler\n listBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Special handling for Enter key in lists\n if (e.key === 'Enter' && !e.shiftKey) {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const currentLi = range.startContainer.parentElement?.closest('li');\n \n if (currentLi && currentLi.textContent === '') {\n // Empty list item - exit list mode\n e.preventDefault();\n handlers.onKeyDown(e);\n return;\n }\n // Otherwise, let browser create new list item naturally\n }\n }\n \n handlers.onKeyDown(e);\n });\n \n // Focus handler\n listBlock.addEventListener('focus', () => {\n handlers.onFocus();\n });\n \n // Blur handler\n listBlock.addEventListener('blur', () => {\n handlers.onBlur();\n });\n \n // Composition handlers for IME support\n listBlock.addEventListener('compositionstart', () => {\n handlers.onCompositionStart();\n });\n \n listBlock.addEventListener('compositionend', () => {\n handlers.onCompositionEnd();\n });\n \n // Mouse up handler\n listBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n handlers.onMouseUp?.(e);\n });\n \n // Click handler\n listBlock.addEventListener('click', (e: MouseEvent) => {\n setTimeout(() => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Keyup handler\n listBlock.addEventListener('keyup', (e) => {\n const pos = this.getCursorPosition(element);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set up selection handler\n this.setupSelectionHandler(element, listBlock, block);\n }\n \n private setupSelectionHandler(element: HTMLElement, listBlock: HTMLDivElement, block: IBlock): void {\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n return;\n }\n \n // Get parent wysiwyg component's shadow root\n const wysiwygBlock = (listBlock.getRootNode() as ShadowRoot).host as any;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = wysiwygBlock?.shadowRoot;\n \n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(listBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(listBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n this.dispatchSelectionEvent(element, {\n text: selectedText.trim(),\n blockId: block.id,\n range: range,\n rect: rect,\n hasSelection: true\n });\n }\n } else if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchSelectionEvent(element, {\n text: '',\n blockId: block.id,\n hasSelection: false\n });\n }\n };\n \n document.addEventListener('selectionchange', checkSelection);\n this.selectionHandler = checkSelection;\n \n // Cleanup on disconnect\n const wysiwygBlock = (listBlock.getRootNode() as ShadowRoot).host as any;\n if (wysiwygBlock) {\n const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;\n (wysiwygBlock as any).disconnectedCallback = async function() {\n if (this.selectionHandler) {\n document.removeEventListener('selectionchange', this.selectionHandler);\n this.selectionHandler = null;\n }\n if (originalDisconnectedCallback) {\n await originalDisconnectedCallback.call(wysiwygBlock);\n }\n }.bind(this);\n }\n }\n \n private dispatchSelectionEvent(element: HTMLElement, detail: any): void {\n const event = new CustomEvent('block-text-selected', {\n detail,\n bubbles: true,\n composed: true\n });\n element.dispatchEvent(event);\n }\n \n getStyles(): string {\n return `\n /* List specific styles */\n .block.list {\n padding: 0;\n }\n \n .block.list ul,\n .block.list ol {\n margin: 0;\n padding-left: 24px;\n }\n \n .block.list li {\n margin: 4px 0;\n line-height: 1.6;\n }\n \n .block.list li:last-child {\n margin-bottom: 0;\n }\n `;\n }\n \n getPlaceholder(): string {\n return '';\n }\n \n // Helper methods for list functionality\n \n getCursorPosition(element: HTMLElement, context?: any): number | null {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return null;\n \n const wysiwygBlock = context?.component;\n const parentComponent = wysiwygBlock?.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n const blockShadowRoot = context?.shadowRoot;\n \n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (blockShadowRoot) shadowRoots.push(blockShadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return null;\n \n if (!WysiwygSelection.containsAcrossShadowDOM(listBlock, selectionInfo.startContainer)) {\n return null;\n }\n \n // For lists, calculate position based on text content\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(listBlock);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n return preCaretRange.toString().length;\n }\n \n getContent(element: HTMLElement, context?: any): string {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return '';\n \n // Extract text content from list items\n const listItems = listBlock.querySelectorAll('li');\n const content = Array.from(listItems)\n .map(li => li.textContent || '')\n .join('\\n');\n \n return content;\n }\n \n setContent(element: HTMLElement, content: string, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n const hadFocus = document.activeElement === listBlock || \n element.shadowRoot?.activeElement === listBlock;\n \n // Get current metadata to preserve list type\n const listElement = listBlock.querySelector('ul, ol');\n const isOrdered = listElement?.tagName === 'OL';\n \n // Update content\n listBlock.innerHTML = this.renderListContent(content, { listType: isOrdered ? 'ordered' : 'unordered' });\n \n if (hadFocus) {\n listBlock.focus();\n }\n }\n \n setCursorToStart(element: HTMLElement, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n const firstLi = listBlock.querySelector('li');\n if (firstLi) {\n const textNode = this.getFirstTextNode(firstLi);\n if (textNode) {\n const range = document.createRange();\n const selection = window.getSelection();\n range.setStart(textNode, 0);\n range.setEnd(textNode, 0);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n }\n }\n \n setCursorToEnd(element: HTMLElement, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n const lastLi = listBlock.querySelector('li:last-child');\n if (lastLi) {\n const textNode = this.getLastTextNode(lastLi);\n if (textNode) {\n const range = document.createRange();\n const selection = window.getSelection();\n const textLength = textNode.textContent?.length || 0;\n range.setStart(textNode, textLength);\n range.setEnd(textNode, textLength);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n }\n }\n \n private getFirstTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = 0; i < element.childNodes.length; i++) {\n const firstText = this.getFirstTextNode(element.childNodes[i]);\n if (firstText) return firstText;\n }\n \n return null;\n }\n \n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n \n focus(element: HTMLElement, context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n if (!listBlock.hasAttribute('contenteditable')) {\n listBlock.setAttribute('contenteditable', 'true');\n }\n \n listBlock.focus();\n \n if (document.activeElement !== listBlock && element.shadowRoot?.activeElement !== listBlock) {\n Promise.resolve().then(() => {\n listBlock.focus();\n });\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end', context?: any): void {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return;\n \n if (!listBlock.hasAttribute('contenteditable')) {\n listBlock.setAttribute('contenteditable', 'true');\n }\n \n listBlock.focus();\n \n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart(element, context);\n } else if (position === 'end') {\n this.setCursorToEnd(element, context);\n } else if (typeof position === 'number') {\n // For numeric positions in lists, we need custom logic\n // This is complex due to list structure, so default to end\n this.setCursorToEnd(element, context);\n }\n };\n \n if (document.activeElement === listBlock || element.shadowRoot?.activeElement === listBlock) {\n setCursor();\n } else {\n Promise.resolve().then(() => {\n if (document.activeElement === listBlock || element.shadowRoot?.activeElement === listBlock) {\n setCursor();\n }\n });\n }\n }\n \n getSplitContent(element: HTMLElement, context?: any): { before: string; after: string } | null {\n const listBlock = element.querySelector('.block.list') as HTMLDivElement;\n if (!listBlock) return null;\n \n // For lists, we don't split content - instead let the keyboard handler\n // create a new paragraph block when Enter is pressed on empty list item\n return null;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * ImageBlockHandler - Handles image upload, display, and interactions\n * \n * Features:\n * - Click to upload\n * - Drag and drop support\n * - Base64 encoding (TODO: server upload in production)\n * - Loading states\n * - Alt text from filename\n */\nexport class ImageBlockHandler extends BaseBlockHandler {\n type = 'image';\n \n render(block: IBlock, isSelected: boolean): string {\n const imageUrl = block.metadata?.url;\n const altText = block.content || 'Image';\n const isLoading = block.metadata?.loading;\n \n return `\n
      \n ${isLoading ? this.renderLoading() : \n imageUrl ? this.renderImage(imageUrl, altText) : \n this.renderPlaceholder()}\n \n
      \n `;\n }\n \n private renderPlaceholder(): string {\n return `\n
      \n
      \n \n \n \n \n \n
      \n
      Click to upload an image
      \n
      or drag and drop
      \n
      \n `;\n }\n \n private renderImage(url: string, altText: string): string {\n return `\n
      \n \"${this.escapeHtml(altText)}\"\n
      \n `;\n }\n \n private renderLoading(): string {\n return `\n
      \n
      \n
      Uploading image...
      \n
      \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.image-block-container') as HTMLElement;\n const fileInput = element.querySelector('.image-file-input') as HTMLInputElement;\n \n if (!container) {\n console.error('ImageBlockHandler: Could not find container');\n return;\n }\n \n if (!fileInput) {\n console.error('ImageBlockHandler: Could not find file input');\n return;\n }\n \n // Click to upload (only on placeholder)\n const placeholder = container.querySelector('.image-upload-placeholder');\n if (placeholder) {\n placeholder.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n console.log('ImageBlockHandler: Placeholder clicked, opening file selector');\n fileInput.click();\n });\n }\n \n // Container click for focus\n container.addEventListener('click', () => {\n handlers.onFocus();\n });\n \n // File input change\n fileInput.addEventListener('change', async (e) => {\n const input = e.target as HTMLInputElement;\n const file = input.files?.[0];\n if (file) {\n console.log('ImageBlockHandler: File selected:', file.name);\n await this.handleFileUpload(file, block, handlers);\n }\n });\n \n // Drag and drop\n container.addEventListener('dragover', (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (!block.metadata?.url) {\n container.classList.add('drag-over');\n }\n });\n \n container.addEventListener('dragleave', (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n });\n \n container.addEventListener('drop', async (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n \n const file = e.dataTransfer?.files[0];\n if (file && file.type.startsWith('image/') && !block.metadata?.url) {\n await this.handleFileUpload(file, block, handlers);\n }\n });\n \n // Focus/blur\n container.addEventListener('focus', () => handlers.onFocus());\n container.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n container.addEventListener('keydown', (e) => {\n if (e.key === 'Delete' || e.key === 'Backspace') {\n if (block.metadata?.url) {\n // Clear the image\n block.metadata.url = undefined;\n block.metadata.loading = false;\n block.content = '';\n handlers.onInput(new InputEvent('input'));\n return;\n }\n }\n handlers.onKeyDown(e);\n });\n }\n \n private async handleFileUpload(\n file: File, \n block: IBlock, \n handlers: IBlockEventHandlers\n ): Promise {\n console.log('ImageBlockHandler: Starting file upload', { \n fileName: file.name, \n fileSize: file.size,\n blockId: block.id \n });\n \n // Validate file\n if (!file.type.startsWith('image/')) {\n console.error('Invalid file type:', file.type);\n return;\n }\n \n // Check file size (10MB limit)\n const maxSize = 10 * 1024 * 1024;\n if (file.size > maxSize) {\n console.error('File too large. Maximum size is 10MB');\n return;\n }\n \n // Set loading state\n if (!block.metadata) block.metadata = {};\n block.metadata.loading = true;\n block.metadata.fileName = file.name;\n block.metadata.fileSize = file.size;\n block.metadata.mimeType = file.type;\n \n console.log('ImageBlockHandler: Set loading state, requesting update');\n // Request immediate UI update for loading state\n handlers.onRequestUpdate?.();\n \n try {\n // Convert to base64\n const dataUrl = await this.fileToDataUrl(file);\n \n // Update block\n block.metadata.url = dataUrl;\n block.metadata.loading = false;\n \n // Set default alt text from filename\n const nameWithoutExt = file.name.replace(/\\.[^/.]+$/, '');\n block.content = nameWithoutExt;\n \n console.log('ImageBlockHandler: Upload complete, requesting update', {\n hasUrl: !!block.metadata.url,\n urlLength: dataUrl.length,\n altText: block.content\n });\n \n // Request immediate UI update to show uploaded image\n handlers.onRequestUpdate?.();\n \n } catch (error) {\n console.error('Failed to upload image:', error);\n block.metadata.loading = false;\n // Request UI update to clear loading state\n handlers.onRequestUpdate?.();\n }\n }\n \n private fileToDataUrl(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (e) => {\n const result = e.target?.result;\n if (typeof result === 'string') {\n resolve(result);\n } else {\n reject(new Error('Failed to read file'));\n }\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n // Content is the alt text\n const block = this.getBlockFromElement(element);\n return block?.content || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n // Content is the alt text\n const block = this.getBlockFromElement(element);\n if (block) {\n block.content = content;\n }\n }\n \n private getBlockFromElement(element: HTMLElement): IBlock | null {\n const container = element.querySelector('.image-block-container');\n const blockId = container?.getAttribute('data-block-id');\n if (!blockId) return null;\n \n // This is a simplified version - in real implementation,\n // we'd need access to the block data\n return {\n id: blockId,\n type: 'image',\n content: '',\n metadata: {}\n };\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n return null; // Images don't have cursor position\n }\n \n setCursorToStart(element: HTMLElement): void {\n this.focus(element);\n }\n \n setCursorToEnd(element: HTMLElement): void {\n this.focus(element);\n }\n \n focus(element: HTMLElement): void {\n const container = element.querySelector('.image-block-container') as HTMLElement;\n container?.focus();\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n this.focus(element);\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n return null; // Images can't be split\n }\n \n getStyles(): string {\n return `\n /* Image Block Container */\n .image-block-container {\n position: relative;\n margin: 12px 0;\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n outline: none;\n cursor: pointer;\n }\n \n .image-block-container.selected {\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('#6366f1', '#818cf8')};\n }\n \n /* Upload Placeholder */\n .image-upload-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n border: 2px dashed ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n transition: all 0.15s ease;\n }\n \n .image-block-container:hover .image-upload-placeholder {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n background: ${cssManager.bdTheme('#f9fafb', '#111827')};\n }\n \n .image-block-container.drag-over .image-upload-placeholder {\n border-color: ${cssManager.bdTheme('#6366f1', '#818cf8')};\n background: ${cssManager.bdTheme('#eff6ff', '#1e1b4b')};\n }\n \n .upload-icon {\n margin-bottom: 12px;\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n }\n \n .upload-text {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n margin-bottom: 4px;\n }\n \n .upload-hint {\n font-size: 12px;\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Image Container */\n .image-container {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 200px;\n background: ${cssManager.bdTheme('#f9fafb', '#111827')};\n }\n \n .image-container img {\n max-width: 100%;\n height: auto;\n display: block;\n border-radius: 4px;\n }\n \n /* Loading State */\n .image-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 24px;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n }\n \n .loading-spinner {\n width: 32px;\n height: 32px;\n border: 3px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-top-color: ${cssManager.bdTheme('#6366f1', '#818cf8')};\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n margin-bottom: 12px;\n }\n \n @keyframes spin {\n to { transform: rotate(360deg); }\n }\n \n .loading-text {\n font-size: 14px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n }\n \n /* File input hidden */\n .image-file-input {\n display: none !important;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * YouTubeBlockHandler - Handles YouTube video embedding\n * \n * Features:\n * - YouTube URL parsing and validation\n * - Video ID extraction from various YouTube URL formats\n * - Embedded iframe player\n * - Clean minimalist design\n */\nexport class YouTubeBlockHandler extends BaseBlockHandler {\n type = 'youtube';\n \n render(block: IBlock, isSelected: boolean): string {\n const videoId = block.metadata?.videoId;\n const url = block.metadata?.url || '';\n \n return `\n
      \n ${videoId ? this.renderVideo(videoId) : this.renderPlaceholder(url)}\n
      \n `;\n }\n \n private renderPlaceholder(url: string): string {\n return `\n
      \n
      \n \n \n \n
      \n
      Enter YouTube URL
      \n \n \n
      \n `;\n }\n \n private renderVideo(videoId: string): string {\n return `\n
      \n \n
      \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.youtube-block-container') as HTMLElement;\n if (!container) return;\n \n // If video is already embedded, just handle focus/blur\n if (block.metadata?.videoId) {\n container.setAttribute('tabindex', '0');\n container.addEventListener('focus', () => handlers.onFocus());\n container.addEventListener('blur', () => handlers.onBlur());\n \n // Handle deletion\n container.addEventListener('keydown', (e) => {\n if (e.key === 'Delete' || e.key === 'Backspace') {\n e.preventDefault();\n handlers.onKeyDown(e);\n } else {\n handlers.onKeyDown(e);\n }\n });\n return;\n }\n \n // Setup placeholder interactions\n const urlInput = element.querySelector('.youtube-url-input') as HTMLInputElement;\n const embedBtn = element.querySelector('.youtube-embed-btn') as HTMLButtonElement;\n \n if (!urlInput || !embedBtn) return;\n \n // Focus management\n urlInput.addEventListener('focus', () => handlers.onFocus());\n urlInput.addEventListener('blur', () => handlers.onBlur());\n \n // Handle embed button click\n embedBtn.addEventListener('click', () => {\n this.embedVideo(urlInput.value, block, handlers);\n });\n \n // Handle Enter key in input\n urlInput.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.embedVideo(urlInput.value, block, handlers);\n } else if (e.key === 'Escape') {\n e.preventDefault();\n urlInput.blur();\n }\n });\n \n // Handle paste event\n urlInput.addEventListener('paste', (e) => {\n // Allow paste to complete first\n setTimeout(() => {\n const pastedUrl = urlInput.value;\n if (this.extractYouTubeVideoId(pastedUrl)) {\n // Auto-embed if valid YouTube URL was pasted\n this.embedVideo(pastedUrl, block, handlers);\n }\n }, 0);\n });\n \n // Update URL in metadata as user types\n urlInput.addEventListener('input', () => {\n if (!block.metadata) block.metadata = {};\n block.metadata.url = urlInput.value;\n });\n }\n \n private embedVideo(url: string, block: IBlock, handlers: IBlockEventHandlers): void {\n const videoId = this.extractYouTubeVideoId(url);\n \n if (!videoId) {\n // Could show an error message here\n console.error('Invalid YouTube URL');\n return;\n }\n \n // Update block metadata\n if (!block.metadata) block.metadata = {};\n block.metadata.videoId = videoId;\n block.metadata.url = url;\n \n // Set content as video title (could be fetched from API in the future)\n block.content = `YouTube Video: ${videoId}`;\n \n // Request immediate UI update to show embedded video\n handlers.onRequestUpdate?.();\n }\n \n private extractYouTubeVideoId(url: string): string | null {\n // Handle various YouTube URL formats\n const patterns = [\n /(?:youtube\\.com\\/(?:[^\\/]+\\/.+\\/|(?:v|e(?:mbed)?)\\/|.*[?&]v=)|youtu\\.be\\/)([^\"&?\\/ ]{11})/,\n /youtube\\.com\\/embed\\/([^\"&?\\/ ]{11})/,\n /youtube\\.com\\/watch\\?v=([^\"&?\\/ ]{11})/,\n /youtu\\.be\\/([^\"&?\\/ ]{11})/\n ];\n \n for (const pattern of patterns) {\n const match = url.match(pattern);\n if (match) {\n return match[1];\n }\n }\n \n return null;\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n // Content is the video description/title\n const block = this.getBlockFromElement(element);\n return block?.content || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n // Content is the video description/title\n const block = this.getBlockFromElement(element);\n if (block) {\n block.content = content;\n }\n }\n \n private getBlockFromElement(element: HTMLElement): IBlock | null {\n const container = element.querySelector('.youtube-block-container');\n const blockId = container?.getAttribute('data-block-id');\n if (!blockId) return null;\n \n // Simplified version - in real implementation would need access to block data\n return {\n id: blockId,\n type: 'youtube',\n content: '',\n metadata: {}\n };\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n return null; // YouTube blocks don't have cursor position\n }\n \n setCursorToStart(element: HTMLElement): void {\n this.focus(element);\n }\n \n setCursorToEnd(element: HTMLElement): void {\n this.focus(element);\n }\n \n focus(element: HTMLElement): void {\n const container = element.querySelector('.youtube-block-container') as HTMLElement;\n const urlInput = element.querySelector('.youtube-url-input') as HTMLInputElement;\n \n if (urlInput) {\n urlInput.focus();\n } else if (container) {\n container.focus();\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n this.focus(element);\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n return null; // YouTube blocks can't be split\n }\n \n getStyles(): string {\n return `\n /* YouTube Block Container */\n .youtube-block-container {\n position: relative;\n margin: 12px 0;\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .youtube-block-container.selected {\n box-shadow: 0 0 0 2px ${cssManager.bdTheme('#6366f1', '#818cf8')};\n }\n \n /* YouTube Placeholder */\n .youtube-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 24px;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n background: ${cssManager.bdTheme('#fafafa', '#0a0a0a')};\n gap: 12px;\n }\n \n .placeholder-icon {\n color: ${cssManager.bdTheme('#dc2626', '#ef4444')};\n opacity: 0.8;\n }\n \n .placeholder-text {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .youtube-url-input {\n width: 100%;\n max-width: 400px;\n padding: 8px 12px;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n background: ${cssManager.bdTheme('#ffffff', '#111827')};\n color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n font-size: 13px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .youtube-url-input:focus {\n border-color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n background: ${cssManager.bdTheme('#ffffff', '#1f2937')};\n }\n \n .youtube-url-input::placeholder {\n color: ${cssManager.bdTheme('#9ca3af', '#4b5563')};\n }\n \n .youtube-embed-btn {\n padding: 6px 16px;\n background: ${cssManager.bdTheme('#111827', '#f9fafb')};\n color: ${cssManager.bdTheme('#f9fafb', '#111827')};\n border: 1px solid transparent;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 500;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n cursor: pointer;\n transition: all 0.15s ease;\n outline: none;\n }\n \n .youtube-embed-btn:hover {\n background: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .youtube-embed-btn:active {\n transform: scale(0.98);\n }\n \n /* YouTube Container */\n .youtube-container {\n position: relative;\n width: 100%;\n padding-bottom: 56.25%; /* 16:9 aspect ratio */\n background: ${cssManager.bdTheme('#000000', '#000000')};\n }\n \n .youtube-container iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n border-radius: 6px;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * AttachmentBlockHandler - Handles file attachments\n * \n * Features:\n * - Multiple file upload support\n * - Click to upload or drag and drop\n * - File type icons\n * - Remove individual files\n * - Base64 encoding (TODO: server upload in production)\n */\nexport class AttachmentBlockHandler extends BaseBlockHandler {\n type = 'attachment';\n \n render(block: IBlock, isSelected: boolean): string {\n const files = block.metadata?.files || [];\n \n return `\n
      \n
      \n
      \uD83D\uDCCE
      \n
      File Attachments
      \n
      \n
      \n ${files.length > 0 ? this.renderFiles(files) : this.renderPlaceholder()}\n
      \n \n ${files.length > 0 ? '' : ''}\n
      \n `;\n }\n \n private renderPlaceholder(): string {\n return `\n
      \n
      Click to add files
      \n
      or drag and drop
      \n
      \n `;\n }\n \n private renderFiles(files: any[]): string {\n return files.map((file: any) => `\n
      \n
      ${this.getFileIcon(file.type)}
      \n
      \n
      ${this.escapeHtml(file.name)}
      \n
      ${this.formatFileSize(file.size)}
      \n
      \n \n
      \n `).join('');\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.attachment-block-container') as HTMLElement;\n const fileInput = element.querySelector('.attachment-file-input') as HTMLInputElement;\n \n if (!container || !fileInput) {\n console.error('AttachmentBlockHandler: Could not find required elements');\n return;\n }\n \n // Initialize files array if needed\n if (!block.metadata) block.metadata = {};\n if (!block.metadata.files) block.metadata.files = [];\n \n // Click to upload on placeholder\n const placeholder = container.querySelector('.attachment-placeholder');\n if (placeholder) {\n placeholder.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n fileInput.click();\n });\n }\n \n // Add more files button\n const addMoreBtn = container.querySelector('.add-more-files') as HTMLButtonElement;\n if (addMoreBtn) {\n addMoreBtn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n fileInput.click();\n });\n }\n \n // File input change\n fileInput.addEventListener('change', async (e) => {\n const input = e.target as HTMLInputElement;\n const files = input.files;\n if (files && files.length > 0) {\n await this.handleFileAttachments(files, block, handlers);\n input.value = ''; // Clear input for next selection\n }\n });\n \n // Remove file buttons\n container.addEventListener('click', (e) => {\n const target = e.target as HTMLElement;\n if (target.classList.contains('remove-file')) {\n e.preventDefault();\n e.stopPropagation();\n const fileId = target.getAttribute('data-file-id');\n if (fileId) {\n this.removeFile(fileId, block, handlers);\n }\n }\n });\n \n // Drag and drop\n container.addEventListener('dragover', (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.add('drag-over');\n });\n \n container.addEventListener('dragleave', (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n });\n \n container.addEventListener('drop', async (e) => {\n e.preventDefault();\n e.stopPropagation();\n container.classList.remove('drag-over');\n \n const files = e.dataTransfer?.files;\n if (files && files.length > 0) {\n await this.handleFileAttachments(files, block, handlers);\n }\n });\n \n // Focus/blur\n container.addEventListener('focus', () => handlers.onFocus());\n container.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n container.addEventListener('keydown', (e) => {\n if (e.key === 'Delete' || e.key === 'Backspace') {\n // Only remove all files if container is focused, not when removing individual files\n if (document.activeElement === container && block.metadata?.files?.length > 0) {\n e.preventDefault();\n block.metadata.files = [];\n handlers.onRequestUpdate?.();\n return;\n }\n }\n handlers.onKeyDown(e);\n });\n }\n \n private async handleFileAttachments(\n files: FileList,\n block: IBlock,\n handlers: IBlockEventHandlers\n ): Promise {\n if (!block.metadata) block.metadata = {};\n if (!block.metadata.files) block.metadata.files = [];\n \n for (const file of Array.from(files)) {\n try {\n const dataUrl = await this.fileToDataUrl(file);\n const fileData = {\n id: this.generateId(),\n name: file.name,\n size: file.size,\n type: file.type,\n data: dataUrl\n };\n \n block.metadata.files.push(fileData);\n } catch (error) {\n console.error('Failed to attach file:', file.name, error);\n }\n }\n \n // Update block content with file count\n block.content = `${block.metadata.files.length} file${block.metadata.files.length !== 1 ? 's' : ''} attached`;\n \n // Request UI update\n handlers.onRequestUpdate?.();\n }\n \n private removeFile(fileId: string, block: IBlock, handlers: IBlockEventHandlers): void {\n if (!block.metadata?.files) return;\n \n block.metadata.files = block.metadata.files.filter((f: any) => f.id !== fileId);\n \n // Update content\n block.content = block.metadata.files.length > 0 \n ? `${block.metadata.files.length} file${block.metadata.files.length !== 1 ? 's' : ''} attached`\n : '';\n \n // Request UI update\n handlers.onRequestUpdate?.();\n }\n \n private fileToDataUrl(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (e) => {\n const result = e.target?.result;\n if (typeof result === 'string') {\n resolve(result);\n } else {\n reject(new Error('Failed to read file'));\n }\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n }\n \n private getFileIcon(mimeType: string): string {\n if (mimeType.startsWith('image/')) return '\uD83D\uDDBC\uFE0F';\n if (mimeType.startsWith('video/')) return '\uD83C\uDFA5';\n if (mimeType.startsWith('audio/')) return '\uD83C\uDFB5';\n if (mimeType.includes('pdf')) return '\uD83D\uDCC4';\n if (mimeType.includes('zip') || mimeType.includes('rar') || mimeType.includes('tar')) return '\uD83D\uDDC4\uFE0F';\n if (mimeType.includes('sheet')) return '\uD83D\uDCCA';\n if (mimeType.includes('document') || mimeType.includes('msword')) return '\uD83D\uDCDD';\n if (mimeType.includes('presentation')) return '\uD83D\uDCCB';\n if (mimeType.includes('text')) return '\uD83D\uDCC3';\n return '\uD83D\uDCC1';\n }\n \n private formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n }\n \n private generateId(): string {\n return `file-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n // Content is the description of attached files\n const block = this.getBlockFromElement(element);\n return block?.content || '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n // Content is the description of attached files\n const block = this.getBlockFromElement(element);\n if (block) {\n block.content = content;\n }\n }\n \n private getBlockFromElement(element: HTMLElement): IBlock | null {\n const container = element.querySelector('.attachment-block-container');\n const blockId = container?.getAttribute('data-block-id');\n if (!blockId) return null;\n \n // Simplified version - in real implementation would need access to block data\n return {\n id: blockId,\n type: 'attachment',\n content: '',\n metadata: {}\n };\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n return null; // Attachment blocks don't have cursor position\n }\n \n setCursorToStart(element: HTMLElement): void {\n this.focus(element);\n }\n \n setCursorToEnd(element: HTMLElement): void {\n this.focus(element);\n }\n \n focus(element: HTMLElement): void {\n const container = element.querySelector('.attachment-block-container') as HTMLElement;\n container?.focus();\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n this.focus(element);\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n return null; // Attachment blocks can't be split\n }\n \n getStyles(): string {\n return `\n /* Attachment Block Container */\n .attachment-block-container {\n position: relative;\n margin: 12px 0;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n outline: none;\n background: ${cssManager.bdTheme('#ffffff', '#111827')};\n }\n \n .attachment-block-container.selected {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n .attachment-block-container.drag-over {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#6366f1', '#818cf8')};\n }\n \n /* Header */\n .attachment-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n }\n \n .attachment-icon {\n font-size: 18px;\n opacity: 0.8;\n }\n \n .attachment-title {\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n /* File List */\n .attachment-list {\n padding: 8px;\n min-height: 80px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n \n /* Placeholder */\n .attachment-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n \n .attachment-placeholder:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n }\n \n .placeholder-text {\n font-size: 14px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n margin-bottom: 4px;\n }\n \n .placeholder-hint {\n font-size: 12px;\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* File Items */\n .attachment-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px 12px;\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n transition: all 0.15s ease;\n }\n \n .attachment-item:hover {\n background: ${cssManager.bdTheme('#f3f4f6', '#374151')};\n }\n \n .file-icon {\n font-size: 20px;\n flex-shrink: 0;\n }\n \n .file-info {\n flex: 1;\n min-width: 0;\n }\n \n .file-name {\n font-size: 13px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n \n .file-size {\n font-size: 11px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n margin-top: 2px;\n }\n \n .remove-file {\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 4px;\n color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n transition: all 0.15s ease;\n padding: 0;\n }\n \n .remove-file:hover {\n background: ${cssManager.bdTheme('#fee2e2', '#991b1b')};\n border-color: ${cssManager.bdTheme('#fca5a5', '#dc2626')};\n color: ${cssManager.bdTheme('#dc2626', '#fca5a5')};\n }\n \n /* Add More Files Button */\n .add-more-files {\n margin: 8px;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n font-size: 13px;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n cursor: pointer;\n transition: all 0.15s ease;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n }\n \n .add-more-files:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n }\n \n /* Hidden file input */\n .attachment-file-input {\n display: none !important;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\nexport class DividerBlockHandler extends BaseBlockHandler {\n type = 'divider';\n \n render(block: IBlock, isSelected: boolean): string {\n const selectedClass = isSelected ? ' selected' : '';\n return `\n
      \n
      \n
      \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const dividerBlock = element.querySelector('.block.divider') as HTMLDivElement;\n if (!dividerBlock) return;\n \n // Handle click to select\n dividerBlock.addEventListener('click', (e) => {\n e.stopPropagation();\n // Focus will trigger the selection\n dividerBlock.focus();\n // Ensure focus handler is called immediately\n handlers.onFocus?.();\n });\n \n // Handle focus/blur\n dividerBlock.addEventListener('focus', () => {\n handlers.onFocus?.();\n });\n \n dividerBlock.addEventListener('blur', () => {\n handlers.onBlur?.();\n });\n \n // Handle keyboard events\n dividerBlock.addEventListener('keydown', (e) => {\n if (e.key === 'Backspace' || e.key === 'Delete') {\n e.preventDefault();\n // Let the keyboard handler in the parent component handle the deletion\n handlers.onKeyDown?.(e);\n } else {\n // Handle navigation keys\n handlers.onKeyDown?.(e);\n }\n });\n }\n \n getStyles(): string {\n return `\n .block.divider {\n padding: 8px 0;\n margin: 16px 0;\n cursor: pointer;\n position: relative;\n border-radius: 4px;\n transition: all 0.15s ease;\n }\n\n .block.divider:focus {\n outline: none;\n }\n\n .block.divider.selected {\n background: ${cssManager.bdTheme('rgba(0, 102, 204, 0.05)', 'rgba(77, 148, 255, 0.08)')};\n box-shadow: inset 0 0 0 2px ${cssManager.bdTheme('rgba(0, 102, 204, 0.2)', 'rgba(77, 148, 255, 0.2)')};\n }\n\n .block.divider hr {\n border: none;\n border-top: 1px solid ${cssManager.bdTheme('#e0e0e0', '#333')};\n margin: 0;\n pointer-events: none;\n }\n `;\n }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * MarkdownBlockHandler - Handles markdown content with preview/edit toggle\n * \n * Features:\n * - Live markdown preview\n * - Edit/preview mode toggle\n * - Syntax highlighting in edit mode\n * - Common markdown shortcuts\n * - Auto-save on mode switch\n */\nexport class MarkdownBlockHandler extends BaseBlockHandler {\n type = 'markdown';\n \n render(block: IBlock, isSelected: boolean): string {\n const isEditMode = block.metadata?.isEditMode ?? true;\n const content = block.content || '';\n \n return `\n
      \n
      \n
      M\u2193
      \n
      Markdown
      \n \n
      \n
      \n ${isEditMode ? this.renderEditor(content) : this.renderPreview(content)}\n
      \n
      \n `;\n }\n \n private renderEditor(content: string): string {\n return `\n \n `;\n }\n \n private renderPreview(content: string): string {\n const html = this.parseMarkdown(content);\n return `\n
      \n ${html || '
      No content to preview
      '}\n
      \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.markdown-block-container') as HTMLElement;\n const toggleBtn = element.querySelector('.markdown-toggle-mode') as HTMLButtonElement;\n \n if (!container || !toggleBtn) {\n console.error('MarkdownBlockHandler: Could not find required elements');\n return;\n }\n \n // Initialize metadata\n if (!block.metadata) block.metadata = {};\n if (block.metadata.isEditMode === undefined) block.metadata.isEditMode = true;\n \n // Toggle mode button\n toggleBtn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n \n // Save current content if in edit mode\n if (block.metadata.isEditMode) {\n const editor = container.querySelector('.markdown-editor') as HTMLTextAreaElement;\n if (editor) {\n block.content = editor.value;\n }\n }\n \n // Toggle mode\n block.metadata.isEditMode = !block.metadata.isEditMode;\n \n // Request UI update\n handlers.onRequestUpdate?.();\n });\n \n // Setup based on mode\n if (block.metadata.isEditMode) {\n this.setupEditor(element, block, handlers);\n } else {\n this.setupPreview(element, block, handlers);\n }\n }\n \n private setupEditor(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n if (!editor) return;\n \n // Focus handling\n editor.addEventListener('focus', () => handlers.onFocus());\n editor.addEventListener('blur', () => handlers.onBlur());\n \n // Content changes\n editor.addEventListener('input', () => {\n block.content = editor.value;\n });\n \n // Keyboard shortcuts\n editor.addEventListener('keydown', (e) => {\n // Tab handling for indentation\n if (e.key === 'Tab') {\n e.preventDefault();\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const value = editor.value;\n \n if (e.shiftKey) {\n // Unindent\n const beforeCursor = value.substring(0, start);\n const lastNewline = beforeCursor.lastIndexOf('\\n');\n const lineStart = lastNewline + 1;\n const lineContent = value.substring(lineStart, start);\n \n if (lineContent.startsWith(' ')) {\n editor.value = value.substring(0, lineStart) + lineContent.substring(2) + value.substring(start);\n editor.selectionStart = editor.selectionEnd = start - 2;\n }\n } else {\n // Indent\n editor.value = value.substring(0, start) + ' ' + value.substring(end);\n editor.selectionStart = editor.selectionEnd = start + 2;\n }\n \n block.content = editor.value;\n return;\n }\n \n // Bold shortcut (Ctrl/Cmd + B)\n if ((e.ctrlKey || e.metaKey) && e.key === 'b') {\n e.preventDefault();\n this.wrapSelection(editor, '**', '**');\n block.content = editor.value;\n return;\n }\n \n // Italic shortcut (Ctrl/Cmd + I)\n if ((e.ctrlKey || e.metaKey) && e.key === 'i') {\n e.preventDefault();\n this.wrapSelection(editor, '_', '_');\n block.content = editor.value;\n return;\n }\n \n // Link shortcut (Ctrl/Cmd + K)\n if ((e.ctrlKey || e.metaKey) && e.key === 'k') {\n e.preventDefault();\n this.insertLink(editor);\n block.content = editor.value;\n return;\n }\n \n // Pass other key events to handlers\n handlers.onKeyDown(e);\n });\n \n // Auto-resize\n this.autoResize(editor);\n editor.addEventListener('input', () => this.autoResize(editor));\n }\n \n private setupPreview(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.markdown-block-container') as HTMLElement;\n const preview = element.querySelector('.markdown-preview') as HTMLElement;\n \n if (!container || !preview) return;\n \n // Make preview focusable\n preview.setAttribute('tabindex', '0');\n \n // Focus handling\n preview.addEventListener('focus', () => handlers.onFocus());\n preview.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n preview.addEventListener('keydown', (e) => {\n // Switch to edit mode on Enter\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n block.metadata.isEditMode = true;\n handlers.onRequestUpdate?.();\n return;\n }\n \n handlers.onKeyDown(e);\n });\n }\n \n private wrapSelection(editor: HTMLTextAreaElement, before: string, after: string): void {\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const selectedText = editor.value.substring(start, end);\n const replacement = before + (selectedText || 'text') + after;\n \n editor.value = editor.value.substring(0, start) + replacement + editor.value.substring(end);\n \n if (selectedText) {\n editor.selectionStart = start;\n editor.selectionEnd = start + replacement.length;\n } else {\n editor.selectionStart = start + before.length;\n editor.selectionEnd = start + before.length + 4; // 'text'.length\n }\n \n editor.focus();\n }\n \n private insertLink(editor: HTMLTextAreaElement): void {\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const selectedText = editor.value.substring(start, end);\n const linkText = selectedText || 'link text';\n const replacement = `[${linkText}](url)`;\n \n editor.value = editor.value.substring(0, start) + replacement + editor.value.substring(end);\n \n // Select the URL part\n editor.selectionStart = start + linkText.length + 3; // '[linktext]('.length\n editor.selectionEnd = start + linkText.length + 6; // '[linktext](url'.length\n \n editor.focus();\n }\n \n private autoResize(editor: HTMLTextAreaElement): void {\n editor.style.height = 'auto';\n editor.style.height = editor.scrollHeight + 'px';\n }\n \n private parseMarkdown(markdown: string): string {\n // Basic markdown parsing - in production, use a proper markdown parser\n let html = this.escapeHtml(markdown);\n \n // Headers\n html = html.replace(/^### (.+)$/gm, '

      $1

      ');\n html = html.replace(/^## (.+)$/gm, '

      $1

      ');\n html = html.replace(/^# (.+)$/gm, '

      $1

      ');\n \n // Bold\n html = html.replace(/\\*\\*(.+?)\\*\\*/g, '$1');\n html = html.replace(/__(.+?)__/g, '$1');\n \n // Italic\n html = html.replace(/\\*(.+?)\\*/g, '$1');\n html = html.replace(/_(.+?)_/g, '$1');\n \n // Code blocks\n html = html.replace(/```([\\s\\S]*?)```/g, '
      $1
      ');\n \n // Inline code\n html = html.replace(/`(.+?)`/g, '$1');\n \n // Links\n html = html.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '$1');\n \n // Lists\n html = html.replace(/^\\* (.+)$/gm, '
    • $1
    • ');\n html = html.replace(/^- (.+)$/gm, '
    • $1
    • ');\n html = html.replace(/^\\d+\\. (.+)$/gm, '
    • $1
    • ');\n \n // Wrap consecutive list items\n html = html.replace(/(
    • .*<\\/li>\\n?)+/g, (match) => {\n return '
        ' + match + '
      ';\n });\n \n // Paragraphs\n html = html.replace(/\\n\\n/g, '

      ');\n html = '

      ' + html + '

      ';\n \n // Clean up empty paragraphs\n html = html.replace(/

      <\\/p>/g, '');\n html = html.replace(/

      ()/g, '$1');\n html = html.replace(/(<\\/h[1-3]>)<\\/p>/g, '$1');\n html = html.replace(/

      (

        )/g, '$1');\n html = html.replace(/(<\\/ul>)<\\/p>/g, '$1');\n html = html.replace(/

        (

        )/g, '$1');\n    html = html.replace(/(<\\/pre>)<\\/p>/g, '$1');\n    \n    return html;\n  }\n  \n  private escapeHtml(text: string): string {\n    const div = document.createElement('div');\n    div.textContent = text;\n    return div.innerHTML;\n  }\n  \n  getContent(element: HTMLElement): string {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      return editor.value;\n    }\n    \n    // If in preview mode, return the stored content\n    const container = element.querySelector('.markdown-block-container');\n    const blockId = container?.getAttribute('data-block-id');\n    // In real implementation, would need access to block data\n    return '';\n  }\n  \n  setContent(element: HTMLElement, content: string): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      editor.value = content;\n      this.autoResize(editor);\n    }\n  }\n  \n  getCursorPosition(element: HTMLElement): number | null {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    return editor ? editor.selectionStart : null;\n  }\n  \n  setCursorToStart(element: HTMLElement): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      editor.selectionStart = editor.selectionEnd = 0;\n      editor.focus();\n    } else {\n      this.focus(element);\n    }\n  }\n  \n  setCursorToEnd(element: HTMLElement): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      const length = editor.value.length;\n      editor.selectionStart = editor.selectionEnd = length;\n      editor.focus();\n    } else {\n      this.focus(element);\n    }\n  }\n  \n  focus(element: HTMLElement): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      editor.focus();\n    } else {\n      const preview = element.querySelector('.markdown-preview') as HTMLElement;\n      preview?.focus();\n    }\n  }\n  \n  focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (editor) {\n      if (position === 'start') {\n        this.setCursorToStart(element);\n      } else if (position === 'end') {\n        this.setCursorToEnd(element);\n      } else if (typeof position === 'number') {\n        editor.selectionStart = editor.selectionEnd = position;\n        editor.focus();\n      }\n    } else {\n      this.focus(element);\n    }\n  }\n  \n  getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n    const editor = element.querySelector('.markdown-editor') as HTMLTextAreaElement;\n    if (!editor) return null;\n    \n    const cursorPos = editor.selectionStart;\n    return {\n      before: editor.value.substring(0, cursorPos),\n      after: editor.value.substring(cursorPos)\n    };\n  }\n  \n  getStyles(): string {\n    return `\n      /* Markdown Block Container */\n      .markdown-block-container {\n        position: relative;\n        margin: 12px 0;\n        border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        border-radius: 6px;\n        overflow: hidden;\n        transition: all 0.15s ease;\n        background: ${cssManager.bdTheme('#ffffff', '#111827')};\n      }\n      \n      .markdown-block-container.selected {\n        border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n      }\n      \n      /* Header */\n      .markdown-header {\n        display: flex;\n        align-items: center;\n        gap: 8px;\n        padding: 8px 12px;\n        border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n      }\n      \n      .markdown-icon {\n        font-size: 14px;\n        font-weight: 600;\n        opacity: 0.8;\n      }\n      \n      .markdown-title {\n        flex: 1;\n        font-size: 13px;\n        font-weight: 500;\n        color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n      }\n      \n      .markdown-toggle-mode {\n        padding: 4px 8px;\n        background: transparent;\n        border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        border-radius: 4px;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.15s ease;\n      }\n      \n      .markdown-toggle-mode:hover {\n        background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n        border-color: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n      }\n      \n      /* Content */\n      .markdown-content {\n        position: relative;\n        min-height: 120px;\n      }\n      \n      /* Editor */\n      .markdown-editor {\n        width: 100%;\n        min-height: 120px;\n        padding: 12px;\n        background: transparent;\n        border: none;\n        outline: none;\n        resize: none;\n        font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n        font-size: 13px;\n        line-height: 1.6;\n        color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n        overflow: hidden;\n      }\n      \n      .markdown-editor::placeholder {\n        color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n      }\n      \n      /* Preview */\n      .markdown-preview {\n        padding: 12px;\n        min-height: 96px;\n        outline: none;\n        font-size: 14px;\n        line-height: 1.6;\n        color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n      }\n      \n      .preview-empty {\n        color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n        font-style: italic;\n      }\n      \n      /* Markdown preview styles */\n      .markdown-preview h1 {\n        font-size: 24px;\n        font-weight: 600;\n        margin: 16px 0 8px 0;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview h2 {\n        font-size: 20px;\n        font-weight: 600;\n        margin: 14px 0 6px 0;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview h3 {\n        font-size: 18px;\n        font-weight: 600;\n        margin: 12px 0 4px 0;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview p {\n        margin: 8px 0;\n      }\n      \n      .markdown-preview ul,\n      .markdown-preview ol {\n        margin: 8px 0;\n        padding-left: 24px;\n      }\n      \n      .markdown-preview li {\n        margin: 4px 0;\n      }\n      \n      .markdown-preview code {\n        background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n        padding: 2px 4px;\n        border-radius: 3px;\n        font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n        font-size: 0.9em;\n      }\n      \n      .markdown-preview pre {\n        background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n        padding: 12px;\n        border-radius: 4px;\n        overflow-x: auto;\n        margin: 8px 0;\n      }\n      \n      .markdown-preview pre code {\n        background: transparent;\n        padding: 0;\n      }\n      \n      .markdown-preview strong {\n        font-weight: 600;\n        color: ${cssManager.bdTheme('#111827', '#f9fafb')};\n      }\n      \n      .markdown-preview em {\n        font-style: italic;\n      }\n      \n      .markdown-preview a {\n        color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n        text-decoration: none;\n      }\n      \n      .markdown-preview a:hover {\n        text-decoration: underline;\n      }\n      \n      .markdown-preview blockquote {\n        border-left: 3px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n        padding-left: 12px;\n        margin: 8px 0;\n        color: ${cssManager.bdTheme('#6b7280', '#9ca3af')};\n      }\n    `;\n  }\n}", "import { BaseBlockHandler, type IBlockEventHandlers } from '../block.base.js';\nimport type { IBlock } from '../../wysiwyg.types.js';\nimport { cssManager } from '@design.estate/dees-element';\n\n/**\n * HTMLBlockHandler - Handles raw HTML content with preview/edit toggle\n * \n * Features:\n * - Live HTML preview (sandboxed)\n * - Edit/preview mode toggle\n * - Syntax highlighting in edit mode\n * - HTML validation hints\n * - Auto-save on mode switch\n */\nexport class HtmlBlockHandler extends BaseBlockHandler {\n  type = 'html';\n  \n  render(block: IBlock, isSelected: boolean): string {\n    const isEditMode = block.metadata?.isEditMode ?? true;\n    const content = block.content || '';\n    \n    return `\n      
        \n
        \n
        </>
        \n
        HTML
        \n \n
        \n
        \n ${isEditMode ? this.renderEditor(content) : this.renderPreview(content)}\n
        \n
        \n `;\n }\n \n private renderEditor(content: string): string {\n return `\n \n `;\n }\n \n private renderPreview(content: string): string {\n return `\n
        \n ${content || '
        No content to preview
        '}\n
        \n `;\n }\n \n setup(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.html-block-container') as HTMLElement;\n const toggleBtn = element.querySelector('.html-toggle-mode') as HTMLButtonElement;\n \n if (!container || !toggleBtn) {\n console.error('HtmlBlockHandler: Could not find required elements');\n return;\n }\n \n // Initialize metadata\n if (!block.metadata) block.metadata = {};\n if (block.metadata.isEditMode === undefined) block.metadata.isEditMode = true;\n \n // Toggle mode button\n toggleBtn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n \n // Save current content if in edit mode\n if (block.metadata.isEditMode) {\n const editor = container.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n block.content = editor.value;\n }\n }\n \n // Toggle mode\n block.metadata.isEditMode = !block.metadata.isEditMode;\n \n // Request UI update\n handlers.onRequestUpdate?.();\n });\n \n // Setup based on mode\n if (block.metadata.isEditMode) {\n this.setupEditor(element, block, handlers);\n } else {\n this.setupPreview(element, block, handlers);\n }\n }\n \n private setupEditor(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (!editor) return;\n \n // Focus handling\n editor.addEventListener('focus', () => handlers.onFocus());\n editor.addEventListener('blur', () => handlers.onBlur());\n \n // Content changes\n editor.addEventListener('input', () => {\n block.content = editor.value;\n this.validateHtml(editor.value);\n });\n \n // Keyboard shortcuts\n editor.addEventListener('keydown', (e) => {\n // Tab handling for indentation\n if (e.key === 'Tab') {\n e.preventDefault();\n const start = editor.selectionStart;\n const end = editor.selectionEnd;\n const value = editor.value;\n \n if (e.shiftKey) {\n // Unindent\n const beforeCursor = value.substring(0, start);\n const lastNewline = beforeCursor.lastIndexOf('\\n');\n const lineStart = lastNewline + 1;\n const lineContent = value.substring(lineStart, start);\n \n if (lineContent.startsWith(' ')) {\n editor.value = value.substring(0, lineStart) + lineContent.substring(2) + value.substring(start);\n editor.selectionStart = editor.selectionEnd = start - 2;\n }\n } else {\n // Indent\n editor.value = value.substring(0, start) + ' ' + value.substring(end);\n editor.selectionStart = editor.selectionEnd = start + 2;\n }\n \n block.content = editor.value;\n return;\n }\n \n // Auto-close tags (Ctrl/Cmd + /)\n if ((e.ctrlKey || e.metaKey) && e.key === '/') {\n e.preventDefault();\n this.autoCloseTag(editor);\n block.content = editor.value;\n return;\n }\n \n // Pass other key events to handlers\n handlers.onKeyDown(e);\n });\n \n // Auto-resize\n this.autoResize(editor);\n editor.addEventListener('input', () => this.autoResize(editor));\n }\n \n private setupPreview(element: HTMLElement, block: IBlock, handlers: IBlockEventHandlers): void {\n const container = element.querySelector('.html-block-container') as HTMLElement;\n const preview = element.querySelector('.html-preview') as HTMLElement;\n \n if (!container || !preview) return;\n \n // Make preview focusable\n preview.setAttribute('tabindex', '0');\n \n // Focus handling\n preview.addEventListener('focus', () => handlers.onFocus());\n preview.addEventListener('blur', () => handlers.onBlur());\n \n // Keyboard navigation\n preview.addEventListener('keydown', (e) => {\n // Switch to edit mode on Enter\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n block.metadata.isEditMode = true;\n handlers.onRequestUpdate?.();\n return;\n }\n \n handlers.onKeyDown(e);\n });\n \n // Sandbox styles and scripts in preview\n this.sandboxContent(preview);\n }\n \n private autoCloseTag(editor: HTMLTextAreaElement): void {\n const cursorPos = editor.selectionStart;\n const text = editor.value;\n \n // Find the opening tag\n let tagStart = cursorPos;\n while (tagStart > 0 && text[tagStart - 1] !== '<') {\n tagStart--;\n }\n \n if (tagStart > 0) {\n const tagContent = text.substring(tagStart, cursorPos);\n const tagMatch = tagContent.match(/^(\\w+)/);\n \n if (tagMatch) {\n const tagName = tagMatch[1];\n const closingTag = ``;\n \n // Insert closing tag\n editor.value = text.substring(0, cursorPos) + '>' + closingTag + text.substring(cursorPos);\n editor.selectionStart = editor.selectionEnd = cursorPos + 1;\n }\n }\n }\n \n private autoResize(editor: HTMLTextAreaElement): void {\n editor.style.height = 'auto';\n editor.style.height = editor.scrollHeight + 'px';\n }\n \n private validateHtml(html: string): boolean {\n // Basic HTML validation\n const openTags: string[] = [];\n const tagRegex = /<\\/?([a-zA-Z][a-zA-Z0-9]*)\\b[^>]*>/g;\n let match;\n \n while ((match = tagRegex.exec(html)) !== null) {\n const isClosing = match[0].startsWith('')) {\n // Not a self-closing tag\n openTags.push(tagName);\n }\n }\n \n if (openTags.length > 0) {\n console.warn(`Unclosed tags: ${openTags.join(', ')}`);\n return false;\n }\n \n return true;\n }\n \n private sandboxContent(preview: HTMLElement): void {\n // Remove any script tags\n const scripts = preview.querySelectorAll('script');\n scripts.forEach(script => script.remove());\n \n // Remove event handlers\n const allElements = preview.querySelectorAll('*');\n allElements.forEach(el => {\n // Remove all on* attributes\n Array.from(el.attributes).forEach(attr => {\n if (attr.name.startsWith('on')) {\n el.removeAttribute(attr.name);\n }\n });\n });\n \n // Prevent forms from submitting\n const forms = preview.querySelectorAll('form');\n forms.forEach(form => {\n form.addEventListener('submit', (e) => {\n e.preventDefault();\n e.stopPropagation();\n });\n });\n }\n \n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n \n getContent(element: HTMLElement): string {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n return editor.value;\n }\n \n // If in preview mode, return the stored content\n const container = element.querySelector('.html-block-container');\n const blockId = container?.getAttribute('data-block-id');\n // In real implementation, would need access to block data\n return '';\n }\n \n setContent(element: HTMLElement, content: string): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n editor.value = content;\n this.autoResize(editor);\n }\n }\n \n getCursorPosition(element: HTMLElement): number | null {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n return editor ? editor.selectionStart : null;\n }\n \n setCursorToStart(element: HTMLElement): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n editor.selectionStart = editor.selectionEnd = 0;\n editor.focus();\n } else {\n this.focus(element);\n }\n }\n \n setCursorToEnd(element: HTMLElement): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n const length = editor.value.length;\n editor.selectionStart = editor.selectionEnd = length;\n editor.focus();\n } else {\n this.focus(element);\n }\n }\n \n focus(element: HTMLElement): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n editor.focus();\n } else {\n const preview = element.querySelector('.html-preview') as HTMLElement;\n preview?.focus();\n }\n }\n \n focusWithCursor(element: HTMLElement, position: 'start' | 'end' | number = 'end'): void {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (editor) {\n if (position === 'start') {\n this.setCursorToStart(element);\n } else if (position === 'end') {\n this.setCursorToEnd(element);\n } else if (typeof position === 'number') {\n editor.selectionStart = editor.selectionEnd = position;\n editor.focus();\n }\n } else {\n this.focus(element);\n }\n }\n \n getSplitContent(element: HTMLElement): { before: string; after: string } | null {\n const editor = element.querySelector('.html-editor') as HTMLTextAreaElement;\n if (!editor) return null;\n \n const cursorPos = editor.selectionStart;\n return {\n before: editor.value.substring(0, cursorPos),\n after: editor.value.substring(cursorPos)\n };\n }\n \n getStyles(): string {\n return `\n /* HTML Block Container */\n .html-block-container {\n position: relative;\n margin: 12px 0;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 6px;\n overflow: hidden;\n transition: all 0.15s ease;\n background: ${cssManager.bdTheme('#ffffff', '#111827')};\n }\n \n .html-block-container.selected {\n border-color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Header */\n .html-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n }\n \n .html-icon {\n font-size: 14px;\n font-weight: 600;\n opacity: 0.8;\n font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n }\n \n .html-title {\n flex: 1;\n font-size: 13px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#374151', '#e5e7eb')};\n }\n \n .html-toggle-mode {\n padding: 4px 8px;\n background: transparent;\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n border-radius: 4px;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n \n .html-toggle-mode:hover {\n background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#4b5563')};\n }\n \n /* Content */\n .html-content {\n position: relative;\n min-height: 120px;\n }\n \n /* Editor */\n .html-editor {\n width: 100%;\n min-height: 120px;\n padding: 12px;\n background: transparent;\n border: none;\n outline: none;\n resize: none;\n font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n font-size: 13px;\n line-height: 1.6;\n color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n overflow: hidden;\n }\n \n .html-editor::placeholder {\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n }\n \n /* Preview */\n .html-preview {\n padding: 12px;\n min-height: 96px;\n outline: none;\n font-size: 14px;\n line-height: 1.6;\n color: ${cssManager.bdTheme('#1f2937', '#f3f4f6')};\n }\n \n .preview-empty {\n color: ${cssManager.bdTheme('#9ca3af', '#6b7280')};\n font-style: italic;\n }\n \n /* Sandboxed HTML preview styles */\n .html-preview * {\n max-width: 100%;\n }\n \n .html-preview img {\n height: auto;\n }\n \n .html-preview a {\n color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n text-decoration: none;\n }\n \n .html-preview a:hover {\n text-decoration: underline;\n }\n \n .html-preview table {\n border-collapse: collapse;\n width: 100%;\n margin: 8px 0;\n }\n \n .html-preview th,\n .html-preview td {\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#374151')};\n padding: 8px;\n text-align: left;\n }\n \n .html-preview th {\n background: ${cssManager.bdTheme('#f9fafb', '#1f2937')};\n font-weight: 600;\n }\n \n .html-preview pre {\n background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n padding: 12px;\n border-radius: 4px;\n overflow-x: auto;\n margin: 8px 0;\n }\n \n .html-preview code {\n background: ${cssManager.bdTheme('#f3f4f6', '#1f2937')};\n padding: 2px 4px;\n border-radius: 3px;\n font-family: 'Monaco', 'Consolas', 'Courier New', monospace;\n font-size: 0.9em;\n }\n \n .html-preview pre code {\n background: transparent;\n padding: 0;\n }\n `;\n }\n}", "/**\n * Main exports for the blocks module\n */\n\n// Core interfaces and base classes\nexport { \n type IBlockHandler, \n type IBlockEventHandlers, \n BaseBlockHandler \n} from './block.base.js';\n\n// Block registry for registration and retrieval\nexport { BlockRegistry } from './block.registry.js';\n\n// Common styles and helpers\nexport { \n commonBlockStyles,\n getBlockClasses,\n getBlockDataAttributes \n} from './block.styles.js';\n\n// Text block handlers\nexport { ParagraphBlockHandler } from './text/paragraph.block.js';\nexport { HeadingBlockHandler } from './text/heading.block.js';\nexport { QuoteBlockHandler } from './text/quote.block.js';\nexport { CodeBlockHandler } from './text/code.block.js';\nexport { ListBlockHandler } from './text/list.block.js';\n\n// Media block handlers\nexport { ImageBlockHandler } from './media/image.block.js';\nexport { YouTubeBlockHandler } from './media/youtube.block.js';\nexport { AttachmentBlockHandler } from './media/attachment.block.js';\n\n// Content block handlers\nexport { DividerBlockHandler } from './content/divider.block.js';\nexport { MarkdownBlockHandler } from './content/markdown.block.js';\nexport { HtmlBlockHandler } from './content/html.block.js';\n\n// Utilities\n// TODO: Export when implemented\n// export * from './utils/file.utils.js';\n// export * from './utils/media.utils.js';\n// export * from './utils/markdown.utils.js';", "/**\n * Block Registration Module\n * Handles registration of all block handlers with the BlockRegistry\n * \n * Phase 2 Complete: Divider block has been successfully migrated\n * to the new block handler architecture.\n * Phase 3 Complete: Paragraph block has been successfully migrated\n * to the new block handler architecture.\n * Phase 4 Complete: All heading blocks (h1, h2, h3) have been successfully migrated\n * to the new block handler architecture using a unified HeadingBlockHandler.\n * Phase 5 Complete: Quote, Code, and List blocks have been successfully migrated\n * to the new block handler architecture.\n * Phase 6 Complete: Image, YouTube, and Attachment blocks have been successfully migrated\n * to the new block handler architecture.\n * Phase 7 Complete: Markdown and HTML blocks have been successfully migrated\n * to the new block handler architecture.\n */\n\nimport { \n BlockRegistry, \n DividerBlockHandler,\n ParagraphBlockHandler,\n HeadingBlockHandler,\n QuoteBlockHandler,\n CodeBlockHandler,\n ListBlockHandler,\n ImageBlockHandler,\n YouTubeBlockHandler,\n AttachmentBlockHandler,\n MarkdownBlockHandler,\n HtmlBlockHandler\n} from './blocks/index.js';\n\n// Initialize and register all block handlers\nexport function registerAllBlockHandlers(): void {\n // Register content blocks\n BlockRegistry.register('divider', new DividerBlockHandler());\n \n // Register text blocks\n BlockRegistry.register('paragraph', new ParagraphBlockHandler());\n BlockRegistry.register('heading-1', new HeadingBlockHandler('heading-1'));\n BlockRegistry.register('heading-2', new HeadingBlockHandler('heading-2'));\n BlockRegistry.register('heading-3', new HeadingBlockHandler('heading-3'));\n BlockRegistry.register('quote', new QuoteBlockHandler());\n BlockRegistry.register('code', new CodeBlockHandler());\n BlockRegistry.register('list', new ListBlockHandler());\n \n // Register media blocks\n BlockRegistry.register('image', new ImageBlockHandler());\n BlockRegistry.register('youtube', new YouTubeBlockHandler());\n BlockRegistry.register('attachment', new AttachmentBlockHandler());\n \n // Register other content blocks\n BlockRegistry.register('markdown', new MarkdownBlockHandler());\n BlockRegistry.register('html', new HtmlBlockHandler());\n}\n\n// Ensure blocks are registered when this module is imported\nregisterAllBlockHandlers();", "import { html, type TemplateResult, cssManager } from '@design.estate/dees-element';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\nimport { type IBlock } from './wysiwyg.types.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { PROGRAMMING_LANGUAGES } from './wysiwyg.constants.js';\n\nexport class WysiwygModalManager {\n /**\n * Shows language selection modal for code blocks\n */\n static async showLanguageSelectionModal(): Promise {\n return new Promise((resolve) => {\n let selectedLanguage: string | null = null;\n \n DeesModal.createAndShow({\n heading: 'Select Programming Language',\n content: html`\n \n
        \n
        \n ${this.getLanguages().map(lang => html`\n
        {\n selectedLanguage = lang.toLowerCase();\n // Close modal by finding it in DOM\n const modal = document.querySelector('dees-modal');\n if (modal && typeof (modal as any).destroy === 'function') {\n (modal as any).destroy();\n }\n resolve(selectedLanguage);\n }}\">\n ${lang}\n
        \n `)}\n
        \n
        \n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modal) => {\n modal.destroy();\n resolve(null);\n }\n }\n ]\n });\n });\n }\n\n /**\n * Shows block settings modal\n */\n static async showBlockSettingsModal(\n block: IBlock, \n onUpdate: (block: IBlock) => void\n ): Promise {\n \n const content = html`\n \n
        \n ${this.getBlockTypeSelector(block, onUpdate)}\n ${block.type === 'code' ? this.getCodeBlockSettings(block, onUpdate) : ''}\n
        \n `;\n \n DeesModal.createAndShow({\n heading: 'Block Settings',\n content,\n menuOptions: [\n {\n name: 'Done',\n action: async (modal) => {\n modal.destroy();\n }\n }\n ]\n });\n }\n\n /**\n * Gets code block settings content\n */\n private static getCodeBlockSettings(\n block: IBlock, \n onUpdate: (block: IBlock) => void\n ): TemplateResult {\n const currentLanguage = block.metadata?.language || 'javascript';\n \n return html`\n \n
        \n
        Programming Language
        \n
        \n ${this.getLanguages().map(lang => html`\n
        {\n if (!block.metadata) block.metadata = {};\n block.metadata.language = lang.toLowerCase();\n onUpdate(block);\n \n // Close modal immediately\n const modal = document.querySelector('dees-modal');\n if (modal && typeof (modal as any).destroy === 'function') {\n (modal as any).destroy();\n }\n }}\"\n data-lang=\"${lang}\"\n >${lang}
        \n `)}\n
        \n
        \n `;\n }\n\n /**\n * Gets available programming languages\n */\n private static getLanguages(): string[] {\n return [...PROGRAMMING_LANGUAGES];\n }\n\n /**\n * Gets block type selector\n */\n private static getBlockTypeSelector(\n block: IBlock,\n onUpdate: (block: IBlock) => void\n ): TemplateResult {\n const blockTypes = WysiwygShortcuts.getSlashMenuItems().filter(item => item.type !== 'divider');\n \n return html`\n
        \n
        Block Type
        \n
        \n ${blockTypes.map(item => html`\n
        {\n const button = e.currentTarget as HTMLElement;\n \n const oldType = block.type;\n block.type = item.type as IBlock['type'];\n \n // Reset metadata for type change\n if (oldType === 'code' && block.type !== 'code') {\n delete block.metadata?.language;\n } else if (oldType === 'list' && block.type !== 'list') {\n delete block.metadata?.listType;\n } else if (block.type === 'list' && !block.metadata?.listType) {\n block.metadata = { listType: 'bullet' };\n } else if (block.type === 'code' && !block.metadata?.language) {\n // Ask for language if changing to code block\n const language = await this.showLanguageSelectionModal();\n if (language) {\n block.metadata = { language };\n } else {\n // User cancelled, revert\n block.type = oldType;\n return;\n }\n }\n \n onUpdate(block);\n \n // Close modal immediately\n const modal = document.querySelector('dees-modal');\n if (modal && typeof (modal as any).destroy === 'function') {\n (modal as any).destroy();\n }\n }}\"\n >\n ${item.icon}\n ${item.label}\n
        \n `)}\n
        \n
        \n `;\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport { WysiwygBlocks } from './wysiwyg.blocks.js';\nimport { WysiwygBlockOperations } from './wysiwyg.blockoperations.js';\nimport { WysiwygModalManager } from './wysiwyg.modalmanager.js';\n\nexport class WysiwygInputHandler {\n private component: IWysiwygComponent;\n private saveTimeout: any = null;\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Handles input events for blocks\n */\n handleBlockInput(e: InputEvent, block: IBlock): void {\n if (this.component.isComposing) return;\n \n const target = e.target as HTMLDivElement;\n const textContent = target.textContent || '';\n \n // Check for block type transformations BEFORE updating content\n const detectedType = this.detectBlockTypeIntent(textContent);\n if (detectedType && detectedType.type !== block.type) {\n e.preventDefault();\n this.handleBlockTransformation(block, detectedType, target);\n return;\n }\n \n // Handle slash commands\n this.handleSlashCommand(textContent, target);\n \n // Don't update block content immediately - let the block handle its own content\n // This prevents re-renders during typing\n \n // Schedule auto-save (which will sync content later)\n this.scheduleAutoSave();\n }\n\n /**\n * Updates block content based on its type\n */\n private updateBlockContent(block: IBlock, target: HTMLDivElement): void {\n // Get the block component for proper content extraction\n const wrapperElement = target.closest('.block-wrapper');\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent) {\n // Use the block component's getContent method for consistency\n const newContent = blockComponent.getContent();\n // Only update if content actually changed to avoid unnecessary updates\n if (block.content !== newContent) {\n block.content = newContent;\n }\n \n // Update list metadata if needed\n if (block.type === 'list') {\n const listElement = target.querySelector('ol, ul');\n if (listElement) {\n block.metadata = { \n listType: listElement.tagName.toLowerCase() === 'ol' ? 'ordered' : 'bullet' \n };\n }\n }\n } else {\n // Fallback if block component not found\n if (block.type === 'list') {\n const listItems = target.querySelectorAll('li');\n // Use innerHTML to preserve formatting\n block.content = Array.from(listItems).map(li => li.innerHTML || '').join('\\n');\n \n const listElement = target.querySelector('ol, ul');\n if (listElement) {\n block.metadata = { \n listType: listElement.tagName.toLowerCase() === 'ol' ? 'ordered' : 'bullet' \n };\n }\n } else if (block.type === 'code') {\n block.content = target.textContent || '';\n } else {\n block.content = target.innerHTML || '';\n }\n }\n }\n\n /**\n * Detects if the user is trying to create a specific block type\n */\n private detectBlockTypeIntent(content: string): { type: IBlock['type'], listType?: 'bullet' | 'ordered' } | null {\n // Check heading patterns\n const headingResult = WysiwygShortcuts.checkHeadingShortcut(content);\n if (headingResult) {\n return headingResult;\n }\n \n // Check list patterns\n const listResult = WysiwygShortcuts.checkListShortcut(content);\n if (listResult) {\n return listResult;\n }\n \n // Check quote pattern\n if (WysiwygShortcuts.checkQuoteShortcut(content)) {\n return { type: 'quote' };\n }\n \n // Check code pattern\n if (WysiwygShortcuts.checkCodeShortcut(content)) {\n return { type: 'code' };\n }\n \n // Check divider pattern\n if (WysiwygShortcuts.checkDividerShortcut(content)) {\n return { type: 'divider' };\n }\n \n return null;\n }\n\n /**\n * Handles block type transformation\n */\n private async handleBlockTransformation(\n block: IBlock, \n detectedType: { type: IBlock['type'], listType?: 'bullet' | 'ordered' }, \n target: HTMLDivElement\n ): Promise {\n const blockOps = this.component.blockOperations;\n \n if (detectedType.type === 'list') {\n block.type = 'list';\n block.content = '';\n block.metadata = { listType: detectedType.listType };\n \n const listTag = detectedType.listType === 'ordered' ? 'ol' : 'ul';\n target.innerHTML = `<${listTag}>
      • `;\n \n this.component.updateValue();\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n setTimeout(() => {\n WysiwygBlocks.focusListItem(target);\n }, 0);\n } else if (detectedType.type === 'divider') {\n block.type = 'divider';\n block.content = ' ';\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n const newBlock = blockOps.createBlock();\n blockOps.insertBlockAfter(block, newBlock);\n \n this.component.updateValue();\n } else if (detectedType.type === 'code') {\n const language = await WysiwygModalManager.showLanguageSelectionModal();\n if (language) {\n block.type = 'code';\n block.content = '';\n block.metadata = { language };\n target.textContent = '';\n \n this.component.updateValue();\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n // Focus the code block\n setTimeout(async () => {\n await blockOps.focusBlock(block.id, 'start');\n }, 50);\n }\n } else {\n block.type = detectedType.type;\n block.content = '';\n target.textContent = '';\n \n this.component.updateValue();\n \n // Update the block element programmatically\n if (this.component.editorContentRef) {\n this.component.updateBlockElement(block.id);\n }\n \n // Focus the transformed block\n setTimeout(async () => {\n await blockOps.focusBlock(block.id, 'start');\n }, 50);\n }\n }\n\n /**\n * Handles slash command detection and menu display\n */\n private handleSlashCommand(textContent: string, target: HTMLDivElement): void {\n const slashMenu = this.component.slashMenu;\n const isSlashMenuVisible = slashMenu && slashMenu.visible;\n \n if (textContent === '/' || (textContent.startsWith('/') && isSlashMenuVisible)) {\n if (!isSlashMenuVisible && textContent === '/') {\n // Get position for menu based on cursor location\n const rect = this.getCaretCoordinates(target);\n \n // Show the slash menu at the cursor position\n slashMenu.show(\n { x: rect.left, y: rect.bottom + 4 },\n (type: string) => {\n this.component.insertBlock(type);\n }\n );\n \n // Ensure the block maintains focus\n requestAnimationFrame(() => {\n if (document.activeElement !== target) {\n target.focus();\n }\n });\n }\n // Update filter\n if (slashMenu) {\n slashMenu.updateFilter(textContent.slice(1));\n }\n } else if (!textContent.startsWith('/')) {\n this.component.closeSlashMenu();\n }\n }\n \n /**\n * Gets the coordinates of the caret/cursor\n */\n private getCaretCoordinates(element: HTMLElement): DOMRect {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const rect = range.getBoundingClientRect();\n if (rect.width > 0 || rect.height > 0) {\n return rect;\n }\n }\n \n // Fallback to element position\n return element.getBoundingClientRect();\n }\n\n /**\n * Schedules auto-save after a delay\n */\n private scheduleAutoSave(): void {\n if (this.saveTimeout) {\n clearTimeout(this.saveTimeout);\n }\n // Don't auto-save if slash menu is open\n if (this.component.slashMenu && this.component.slashMenu.visible) {\n return;\n }\n this.saveTimeout = setTimeout(() => {\n // Sync all block content from DOM before saving\n this.syncAllBlockContent();\n // Only update value, don't trigger any re-renders\n this.component.updateValue();\n // Don't call requestUpdate() as it's not needed\n }, 2000); // Increased delay to reduce interference with typing\n }\n \n /**\n * Syncs content from all block DOMs to the data model\n */\n private syncAllBlockContent(): void {\n this.component.blocks.forEach((block: IBlock) => {\n const wrapperElement = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent && blockComponent.getContent) {\n const newContent = blockComponent.getContent();\n // Only update if content actually changed\n if (block.content !== newContent) {\n block.content = newContent;\n }\n }\n });\n }\n\n /**\n * Cleans up resources\n */\n destroy(): void {\n if (this.saveTimeout) {\n clearTimeout(this.saveTimeout);\n }\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\nimport { WysiwygSelection } from './wysiwyg.selection.js';\n\nexport class WysiwygKeyboardHandler {\n private component: IWysiwygComponent;\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Handles keyboard events for blocks\n */\n async handleBlockKeyDown(e: KeyboardEvent, block: IBlock): Promise {\n // Handle slash menu navigation\n if (this.component.slashMenu.visible && this.isSlashMenuKey(e.key)) {\n this.component.handleSlashMenuKeyboard(e);\n return;\n }\n\n // Handle formatting shortcuts\n if (this.handleFormattingShortcuts(e)) {\n return;\n }\n\n // Handle special keys\n switch (e.key) {\n case 'Tab':\n this.handleTab(e, block);\n break;\n case 'Enter':\n await this.handleEnter(e, block);\n break;\n case 'Backspace':\n await this.handleBackspace(e, block);\n break;\n case 'Delete':\n await this.handleDelete(e, block);\n break;\n case 'ArrowUp':\n await this.handleArrowUp(e, block);\n break;\n case 'ArrowDown':\n await this.handleArrowDown(e, block);\n break;\n case 'ArrowLeft':\n await this.handleArrowLeft(e, block);\n break;\n case 'ArrowRight':\n await this.handleArrowRight(e, block);\n break;\n }\n }\n\n /**\n * Checks if key is for slash menu navigation\n */\n private isSlashMenuKey(key: string): boolean {\n return ['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(key);\n }\n\n /**\n * Handles formatting keyboard shortcuts\n */\n private handleFormattingShortcuts(e: KeyboardEvent): boolean {\n if (!(e.metaKey || e.ctrlKey)) return false;\n\n switch (e.key.toLowerCase()) {\n case 'b':\n e.preventDefault();\n // Use Promise to ensure focus is maintained\n Promise.resolve().then(() => this.component.applyFormat('bold'));\n return true;\n case 'i':\n e.preventDefault();\n Promise.resolve().then(() => this.component.applyFormat('italic'));\n return true;\n case 'u':\n e.preventDefault();\n Promise.resolve().then(() => this.component.applyFormat('underline'));\n return true;\n case 'k':\n e.preventDefault();\n Promise.resolve().then(() => this.component.applyFormat('link'));\n return true;\n }\n return false;\n }\n\n /**\n * Handles Tab key\n */\n private handleTab(e: KeyboardEvent, block: IBlock): void {\n if (block.type === 'code') {\n // Allow tab in code blocks - handled by CodeBlockHandler\n // Let it bubble to the block handler\n return;\n } else if (block.type === 'list') {\n // Future: implement list indentation\n e.preventDefault();\n }\n }\n\n /**\n * Handles Enter key\n */\n private async handleEnter(e: KeyboardEvent, block: IBlock): Promise {\n const blockOps = this.component.blockOperations;\n\n // For non-editable blocks, create a new paragraph after\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n return;\n }\n\n if (block.type === 'code') {\n if (e.shiftKey) {\n // Shift+Enter in code blocks creates a new block\n e.preventDefault();\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n // Normal Enter in code blocks creates new line (let browser handle it)\n return;\n }\n\n if (!e.shiftKey) {\n if (block.type === 'list') {\n await this.handleEnterInList(e, block);\n } else {\n // Split content at cursor position\n e.preventDefault();\n \n // Get the block component - need to search in the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent && blockComponent.getSplitContent) {\n const splitContent = blockComponent.getSplitContent();\n \n if (splitContent) {\n // Update current block with content before cursor\n blockComponent.setContent(splitContent.before);\n block.content = splitContent.before;\n \n // Create new block with content after cursor\n const newBlock = blockOps.createBlock('paragraph', splitContent.after);\n \n // Insert the new block\n await blockOps.insertBlockAfter(block, newBlock);\n \n // Update the value after both blocks are set\n this.component.updateValue();\n } else {\n // Fallback - just create empty block\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n } else {\n // No block component or method, just create empty block\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n }\n }\n // Shift+Enter creates line break (let browser handle it)\n }\n\n /**\n * Handles Enter key in list blocks\n */\n private async handleEnterInList(e: KeyboardEvent, block: IBlock): Promise {\n const selection = window.getSelection();\n \n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n const currentLi = range.startContainer.parentElement?.closest('li');\n \n if (currentLi && currentLi.textContent === '') {\n // Empty list item - exit list mode\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const newBlock = blockOps.createBlock();\n await blockOps.insertBlockAfter(block, newBlock);\n }\n // Otherwise, let browser create new list item\n }\n }\n\n /**\n * Handles Backspace key\n */\n private async handleBackspace(e: KeyboardEvent, block: IBlock): Promise {\n const blockOps = this.component.blockOperations;\n \n // Handle non-editable blocks\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n \n // If it's the only block, delete it and create a new paragraph\n if (this.component.blocks.length === 1) {\n // Save state for undo\n this.component.saveToHistory(false);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Create a new paragraph block\n const newBlock = blockOps.createBlock('paragraph', '');\n this.component.blocks = [newBlock];\n \n // Re-render blocks\n this.component.renderBlocksProgrammatically();\n \n // Focus the new block\n await blockOps.focusBlock(newBlock.id, 'start');\n \n // Update value\n this.component.updateValue();\n return;\n }\n \n // Save state for undo\n this.component.saveToHistory(false);\n \n // Find the previous block to focus\n const prevBlock = blockOps.getPreviousBlock(block.id);\n const nextBlock = blockOps.getNextBlock(block.id);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Focus the appropriate block\n if (prevBlock && prevBlock.type !== 'divider' && prevBlock.type !== 'image') {\n await blockOps.focusBlock(prevBlock.id, 'end');\n } else if (nextBlock && nextBlock.type !== 'divider' && nextBlock.type !== 'image') {\n await blockOps.focusBlock(nextBlock.id, 'start');\n } else if (prevBlock) {\n // If previous block is also non-editable, just select it\n await blockOps.focusBlock(prevBlock.id);\n } else if (nextBlock) {\n // If next block is also non-editable, just select it\n await blockOps.focusBlock(nextBlock.id);\n }\n \n return;\n }\n \n // Get the block component to check cursor position\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get cursor position\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n \n const actualContent = blockComponent.getContent ? blockComponent.getContent() : target.textContent;\n \n // Check if cursor is at the beginning of the block\n if (cursorPos === 0) {\n e.preventDefault();\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n // If previous block is non-editable, select it first\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(prevBlock.type)) {\n await blockOps.focusBlock(prevBlock.id);\n return;\n }\n \n \n // Save checkpoint for undo\n this.component.saveToHistory(false);\n \n // Special handling for different block types\n if (prevBlock.type === 'code' && block.type !== 'code') {\n // Can't merge non-code into code block, just remove empty block\n if (block.content === '') {\n blockOps.removeBlock(block.id);\n await blockOps.focusBlock(prevBlock.id, 'end');\n }\n return;\n }\n \n if (block.type === 'code' && prevBlock.type !== 'code') {\n // Can't merge code into non-code block\n const actualContent = blockComponent.getContent ? blockComponent.getContent() : block.content;\n if (actualContent === '' || actualContent.trim() === '') {\n blockOps.removeBlock(block.id);\n await blockOps.focusBlock(prevBlock.id, 'end');\n }\n return;\n }\n \n // Get the content of both blocks\n const prevBlockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${prevBlock.id}\"]`);\n const prevBlockComponent = prevBlockWrapper?.querySelector('dees-wysiwyg-block') as any;\n const prevContent = prevBlockComponent?.getContent() || prevBlock.content || '';\n const currentContent = blockComponent.getContent() || block.content || '';\n \n // Merge content\n let mergedContent = '';\n if (prevBlock.type === 'code' && block.type === 'code') {\n // For code blocks, join with newline\n mergedContent = prevContent + (prevContent && currentContent ? '\\n' : '') + currentContent;\n } else if (prevBlock.type === 'list' && block.type === 'list') {\n // For lists, combine the list items\n mergedContent = prevContent + (prevContent && currentContent ? '\\n' : '') + currentContent;\n } else {\n // For other blocks, join with space if both have content\n mergedContent = prevContent + (prevContent && currentContent ? ' ' : '') + currentContent;\n }\n \n // Store cursor position (where the merge point is)\n const mergePoint = prevContent.length;\n \n // Update previous block with merged content\n blockOps.updateBlockContent(prevBlock.id, mergedContent);\n if (prevBlockComponent) {\n prevBlockComponent.setContent(mergedContent);\n }\n \n // Remove current block\n blockOps.removeBlock(block.id);\n \n // Focus previous block at merge point\n await blockOps.focusBlock(prevBlock.id, mergePoint);\n }\n } else if (this.component.blocks.length > 1) {\n // Check if block is actually empty by getting current content from DOM\n const currentContent = blockComponent.getContent ? blockComponent.getContent() : block.content;\n \n if (currentContent === '' || currentContent.trim() === '') {\n // Empty block - just remove it\n e.preventDefault();\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n blockOps.removeBlock(block.id);\n \n if (prevBlock.type !== 'divider') {\n await blockOps.focusBlock(prevBlock.id, 'end');\n }\n }\n }\n }\n // Otherwise, let browser handle normal backspace\n }\n\n /**\n * Handles Delete key\n */\n private async handleDelete(e: KeyboardEvent, block: IBlock): Promise {\n const blockOps = this.component.blockOperations;\n \n // Handle non-editable blocks - same as backspace\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n \n // If it's the only block, delete it and create a new paragraph\n if (this.component.blocks.length === 1) {\n // Save state for undo\n this.component.saveToHistory(false);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Create a new paragraph block\n const newBlock = blockOps.createBlock('paragraph', '');\n this.component.blocks = [newBlock];\n \n // Re-render blocks\n this.component.renderBlocksProgrammatically();\n \n // Focus the new block\n await blockOps.focusBlock(newBlock.id, 'start');\n \n // Update value\n this.component.updateValue();\n return;\n }\n \n // Save state for undo\n this.component.saveToHistory(false);\n \n // Find the previous block to focus\n const prevBlock = blockOps.getPreviousBlock(block.id);\n const nextBlock = blockOps.getNextBlock(block.id);\n \n // Remove the block\n blockOps.removeBlock(block.id);\n \n // Focus the appropriate block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nextBlock && !nonEditableTypes.includes(nextBlock.type)) {\n await blockOps.focusBlock(nextBlock.id, 'start');\n } else if (prevBlock && !nonEditableTypes.includes(prevBlock.type)) {\n await blockOps.focusBlock(prevBlock.id, 'end');\n } else if (nextBlock) {\n // If next block is also non-editable, just select it\n await blockOps.focusBlock(nextBlock.id);\n } else if (prevBlock) {\n // If previous block is also non-editable, just select it\n await blockOps.focusBlock(prevBlock.id);\n }\n \n return;\n }\n \n // For editable blocks, check if we're at the end and next block is non-editable\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get cursor position\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n const textLength = target.textContent?.length || 0;\n \n // Check if cursor is at the end of the block\n if (cursorPos === textLength) {\n const nextBlock = blockOps.getNextBlock(block.id);\n \n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nextBlock && nonEditableTypes.includes(nextBlock.type)) {\n e.preventDefault();\n await blockOps.focusBlock(nextBlock.id);\n return;\n }\n }\n \n // Otherwise, let browser handle normal delete\n }\n\n /**\n * Handles ArrowUp key - navigate to previous block if at beginning or first line\n */\n private async handleArrowUp(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, always navigate to previous block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n await blockOps.focusBlock(prevBlock.id, nonEditableTypes.includes(prevBlock.type) ? undefined : 'end');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if we're on the first line\n if (this.isOnFirstLine(selectionInfo, target, ...shadowRoots)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(prevBlock.id, nonEditableTypes.includes(prevBlock.type) ? undefined : 'end');\n }\n }\n // Otherwise, let browser handle normal navigation\n }\n\n /**\n * Handles ArrowDown key - navigate to next block if at end or last line\n */\n private async handleArrowDown(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, always navigate to next block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if we're on the last line\n if (this.isOnLastLine(selectionInfo, target, ...shadowRoots)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n }\n // Otherwise, let browser handle normal navigation\n }\n\n /**\n * Helper to get the last text node in an element\n */\n private getLastTextNode(element: Node): Text | null {\n if (element.nodeType === Node.TEXT_NODE) {\n return element as Text;\n }\n \n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const lastText = this.getLastTextNode(element.childNodes[i]);\n if (lastText) return lastText;\n }\n \n return null;\n }\n\n /**\n * Handles ArrowLeft key - navigate to previous block if at beginning\n */\n private async handleArrowLeft(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, navigate to previous block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(prevBlock.id, nonEditableTypes.includes(prevBlock.type) ? undefined : 'end');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if cursor is at the beginning of the block\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n \n if (cursorPos === 0) {\n const blockOps = this.component.blockOperations;\n const prevBlock = blockOps.getPreviousBlock(block.id);\n \n if (prevBlock) {\n e.preventDefault();\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n const position = nonEditableTypes.includes(prevBlock.type) ? undefined : 'end';\n await blockOps.focusBlock(prevBlock.id, position);\n }\n }\n // Otherwise, let the browser handle normal left arrow navigation\n }\n\n /**\n * Handles ArrowRight key - navigate to next block if at end\n */\n private async handleArrowRight(e: KeyboardEvent, block: IBlock): Promise {\n // For non-editable blocks, navigate to next block\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n if (nonEditableTypes.includes(block.type)) {\n e.preventDefault();\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n return;\n }\n \n // Get the block component from the wysiwyg component's shadow DOM\n const blockWrapper = this.component.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block');\n if (!blockComponent || !blockComponent.shadowRoot) return;\n \n // Get the actual editable element - code blocks now use .code-editor\n const target = block.type === 'code' \n ? blockComponent.shadowRoot.querySelector('.code-editor') as HTMLElement\n : blockComponent.shadowRoot.querySelector('.block') as HTMLElement;\n if (!target) return;\n \n // Get selection info with proper shadow DOM support\n const parentComponent = blockComponent.closest('dees-input-wysiwyg');\n const shadowRoots: ShadowRoot[] = [];\n if (parentComponent?.shadowRoot) shadowRoots.push(parentComponent.shadowRoot);\n shadowRoots.push(blockComponent.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo || !selectionInfo.collapsed) return;\n \n // Check if cursor is at the end of the block\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n const textLength = target.textContent?.length || 0;\n \n if (cursorPos === textLength) {\n const blockOps = this.component.blockOperations;\n const nextBlock = blockOps.getNextBlock(block.id);\n \n if (nextBlock) {\n e.preventDefault();\n const nonEditableTypes = ['divider', 'image', 'youtube', 'attachment'];\n await blockOps.focusBlock(nextBlock.id, nonEditableTypes.includes(nextBlock.type) ? undefined : 'start');\n }\n }\n // Otherwise, let the browser handle normal right arrow navigation\n }\n\n /**\n * Handles slash menu keyboard navigation\n * Note: This is now handled by the component directly\n */\n \n /**\n * Check if cursor is on the first line of a block\n */\n private isOnFirstLine(selectionInfo: any, target: HTMLElement, ...shadowRoots: ShadowRoot[]): boolean {\n try {\n // Create a range from the selection info\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Get the container element\n let container = range.commonAncestorContainer;\n if (container.nodeType === Node.TEXT_NODE) {\n container = container.parentElement;\n }\n \n // Get the top position of the container\n const containerRect = (container as Element).getBoundingClientRect();\n \n // Check if we're near the top (within 5px tolerance for line height variations)\n const isNearTop = rect.top - containerRect.top < 5;\n \n // For single-line content, also check if we're at the beginning\n if (container.textContent && !container.textContent.includes('\\n')) {\n const cursorPos = WysiwygSelection.getCursorPositionInElement(container as Element, ...shadowRoots);\n return cursorPos === 0;\n }\n \n return isNearTop;\n } catch (e) {\n console.warn('Error checking first line:', e);\n // Fallback to position-based check\n const cursorPos = selectionInfo.startOffset;\n return cursorPos === 0;\n }\n }\n \n /**\n * Check if cursor is on the last line of a block\n */\n private isOnLastLine(selectionInfo: any, target: HTMLElement, ...shadowRoots: ShadowRoot[]): boolean {\n try {\n // Create a range from the selection info\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Get the container element\n let container = range.commonAncestorContainer;\n if (container.nodeType === Node.TEXT_NODE) {\n container = container.parentElement;\n }\n \n // Get the bottom position of the container\n const containerRect = (container as Element).getBoundingClientRect();\n \n // Check if we're near the bottom (within 5px tolerance for line height variations)\n const isNearBottom = containerRect.bottom - rect.bottom < 5;\n \n // For single-line content, also check if we're at the end\n if (container.textContent && !container.textContent.includes('\\n')) {\n const textLength = target.textContent?.length || 0;\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n return cursorPos === textLength;\n }\n \n return isNearBottom;\n } catch (e) {\n console.warn('Error checking last line:', e);\n // Fallback to position-based check\n const textLength = target.textContent?.length || 0;\n const cursorPos = WysiwygSelection.getCursorPositionInElement(target, ...shadowRoots);\n return cursorPos === textLength;\n }\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\nimport { type IWysiwygComponent } from './wysiwyg.interfaces.js';\n\nexport class WysiwygDragDropHandler {\n private component: IWysiwygComponent;\n private draggedBlockId: string | null = null;\n private dragOverBlockId: string | null = null;\n private dragOverPosition: 'before' | 'after' | null = null;\n private dropIndicator: HTMLElement | null = null;\n private initialMouseY: number = 0;\n private initialBlockY: number = 0;\n private draggedBlockElement: HTMLElement | null = null;\n private draggedBlockHeight: number = 0;\n private draggedBlockContentHeight: number = 0;\n private draggedBlockMarginTop: number = 0;\n private lastUpdateTime: number = 0;\n private updateThrottle: number = 80; // milliseconds\n\n constructor(component: IWysiwygComponent) {\n this.component = component;\n }\n\n /**\n * Gets the current drag state\n */\n get dragState() {\n return {\n draggedBlockId: this.draggedBlockId,\n dragOverBlockId: this.dragOverBlockId,\n dragOverPosition: this.dragOverPosition\n };\n }\n\n /**\n * Handles drag start\n */\n handleDragStart(e: DragEvent, block: IBlock): void {\n if (!e.dataTransfer) return;\n \n this.draggedBlockId = block.id;\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setData('text/plain', block.id);\n \n // Hide the default drag image\n const emptyImg = new Image();\n emptyImg.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n e.dataTransfer.setDragImage(emptyImg, 0, 0);\n \n // Store initial mouse position and block element\n this.initialMouseY = e.clientY;\n this.draggedBlockElement = this.component.editorContentRef.querySelector(`[data-block-id=\"${block.id}\"]`);\n \n \n if (this.draggedBlockElement) {\n // Get the wrapper rect for measurements\n const rect = this.draggedBlockElement.getBoundingClientRect();\n this.initialBlockY = rect.top;\n \n // Get the inner block element for proper measurements\n const innerBlock = this.draggedBlockElement.querySelector('.block');\n if (innerBlock) {\n const innerRect = innerBlock.getBoundingClientRect();\n const computedStyle = window.getComputedStyle(innerBlock);\n this.draggedBlockMarginTop = parseInt(computedStyle.marginTop) || 0;\n this.draggedBlockContentHeight = innerRect.height;\n }\n \n // The drop indicator should match the wrapper height exactly\n // The wrapper already includes all the space the block occupies\n this.draggedBlockHeight = rect.height;\n \n console.log('Drag measurements:', {\n wrapperHeight: rect.height,\n marginTop: this.draggedBlockMarginTop,\n dropIndicatorHeight: this.draggedBlockHeight,\n contentHeight: this.draggedBlockContentHeight,\n blockId: block.id\n });\n \n // Create drop indicator\n this.createDropIndicator();\n \n // Set up drag event listeners\n document.addEventListener('dragover', this.handleGlobalDragOver);\n document.addEventListener('dragend', this.handleGlobalDragEnd);\n }\n \n // Update component state\n this.component.draggedBlockId = this.draggedBlockId;\n \n // Add dragging class after a small delay\n setTimeout(() => {\n if (this.draggedBlockElement) {\n this.draggedBlockElement.classList.add('dragging');\n }\n if (this.component.editorContentRef) {\n this.component.editorContentRef.classList.add('dragging');\n }\n }, 10);\n }\n\n /**\n * Handles drag end\n */\n handleDragEnd(): void {\n // Clean up visual state\n const allBlocks = this.component.editorContentRef.querySelectorAll('.block-wrapper');\n allBlocks.forEach((block: HTMLElement) => {\n block.classList.remove('dragging', 'move-up', 'move-down');\n block.style.removeProperty('--drag-offset');\n block.style.removeProperty('transform');\n });\n \n // Remove dragging class from editor\n if (this.component.editorContentRef) {\n this.component.editorContentRef.classList.remove('dragging');\n }\n \n // Reset drag state\n this.draggedBlockId = null;\n this.dragOverBlockId = null;\n this.dragOverPosition = null;\n this.draggedBlockElement = null;\n this.draggedBlockHeight = 0;\n this.draggedBlockContentHeight = 0;\n this.draggedBlockMarginTop = 0;\n this.initialBlockY = 0;\n \n // Update component state\n this.component.draggedBlockId = null;\n this.component.dragOverBlockId = null;\n this.component.dragOverPosition = null;\n }\n\n /**\n * Handles drag over\n */\n handleDragOver(e: DragEvent, block: IBlock): void {\n e.preventDefault();\n if (!e.dataTransfer || !this.draggedBlockId || this.draggedBlockId === block.id) return;\n \n e.dataTransfer.dropEffect = 'move';\n \n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const midpoint = rect.top + rect.height / 2;\n \n this.dragOverBlockId = block.id;\n this.dragOverPosition = e.clientY < midpoint ? 'before' : 'after';\n \n // Update component state\n this.component.dragOverBlockId = this.dragOverBlockId;\n this.component.dragOverPosition = this.dragOverPosition;\n \n // The parent component already handles drag-over classes programmatically\n }\n\n /**\n * Handles drag leave\n */\n handleDragLeave(block: IBlock): void {\n if (this.dragOverBlockId === block.id) {\n this.dragOverBlockId = null;\n this.dragOverPosition = null;\n \n // Update component state\n this.component.dragOverBlockId = null;\n this.component.dragOverPosition = null;\n \n // The parent component already handles removing drag-over classes programmatically\n }\n }\n\n /**\n * Handles drop\n */\n handleDrop(e: DragEvent, targetBlock: IBlock): void {\n e.preventDefault();\n \n if (!this.draggedBlockId || this.draggedBlockId === targetBlock.id) return;\n \n // The parent component already has a handleDrop method that handles this programmatically\n // We'll delegate to that to ensure proper programmatic rendering\n this.component.handleDrop(e, targetBlock);\n }\n\n\n /**\n * Checks if a block is being dragged\n */\n isDragging(blockId: string): boolean {\n return this.draggedBlockId === blockId;\n }\n\n /**\n * Checks if a block has drag over state\n */\n isDragOver(blockId: string): boolean {\n return this.dragOverBlockId === blockId;\n }\n\n /**\n * Gets drag over CSS classes for a block\n */\n getDragOverClasses(blockId: string): string {\n if (!this.isDragOver(blockId)) return '';\n return this.dragOverPosition === 'before' ? 'drag-over-before' : 'drag-over-after';\n }\n\n\n /**\n * Creates the drop indicator element\n */\n private createDropIndicator(): void {\n this.dropIndicator = document.createElement('div');\n this.dropIndicator.className = 'drop-indicator';\n this.dropIndicator.style.display = 'none';\n this.component.editorContentRef.appendChild(this.dropIndicator);\n }\n\n /**\n * Handles global dragover to update dragged block position and move other blocks\n */\n private handleGlobalDragOver = (e: DragEvent): void => {\n e.preventDefault();\n \n if (!this.draggedBlockElement) return;\n \n // Calculate vertical offset from initial position\n const deltaY = e.clientY - this.initialMouseY;\n \n // Apply transform to move the dragged block vertically\n this.draggedBlockElement.style.transform = `translateY(${deltaY}px)`;\n \n // Throttle position updates to reduce stuttering\n const now = Date.now();\n if (now - this.lastUpdateTime < this.updateThrottle) {\n return;\n }\n this.lastUpdateTime = now;\n \n // Calculate which blocks should move\n this.updateBlockPositions(e.clientY);\n };\n\n /**\n * Updates block positions based on cursor position\n */\n private updateBlockPositions(mouseY: number): void {\n const blocks = Array.from(this.component.editorContentRef.querySelectorAll('.block-wrapper')) as HTMLElement[];\n const draggedIndex = blocks.findIndex(b => b.getAttribute('data-block-id') === this.draggedBlockId);\n \n if (draggedIndex === -1) return;\n \n // Reset all transforms first (except the dragged block)\n blocks.forEach(block => {\n if (block.getAttribute('data-block-id') !== this.draggedBlockId) {\n block.classList.remove('move-up', 'move-down');\n block.style.removeProperty('--drag-offset');\n }\n });\n \n // Calculate where the dragged block should be inserted\n let newIndex = blocks.length; // Default to end\n \n for (let i = 0; i < blocks.length; i++) {\n if (i === draggedIndex) continue;\n \n const block = blocks[i];\n const rect = block.getBoundingClientRect();\n const blockTop = rect.top;\n \n // Check if mouse is above this block's middle\n if (mouseY < blockTop + (rect.height * 0.5)) {\n newIndex = i;\n break;\n }\n }\n \n \n // Apply transforms to move blocks out of the way\n for (let i = 0; i < blocks.length; i++) {\n if (i === draggedIndex) continue;\n \n const block = blocks[i];\n \n // Determine if this block needs to move\n if (draggedIndex < newIndex) {\n // Dragging down: blocks between original and new position move up\n if (i > draggedIndex && i < newIndex) {\n block.classList.add('move-up');\n block.style.setProperty('--drag-offset', `${this.draggedBlockHeight}px`);\n }\n } else if (draggedIndex > newIndex) {\n // Dragging up: blocks between new and original position move down\n if (i >= newIndex && i < draggedIndex) {\n block.classList.add('move-down');\n block.style.setProperty('--drag-offset', `${this.draggedBlockHeight}px`);\n }\n }\n }\n \n // Update drop indicator position\n this.updateDropIndicator(blocks, newIndex, draggedIndex);\n }\n\n /**\n * Updates the drop indicator position\n */\n private updateDropIndicator(blocks: HTMLElement[], targetIndex: number, draggedIndex: number): void {\n if (!this.dropIndicator || !this.draggedBlockElement) return;\n \n this.dropIndicator.style.display = 'block';\n \n const containerRect = this.component.editorContentRef.getBoundingClientRect();\n let topPosition = 0;\n \n // Build array of visual block positions (excluding dragged block)\n const visualBlocks: { index: number, top: number, bottom: number }[] = [];\n \n for (let i = 0; i < blocks.length; i++) {\n if (i === draggedIndex) continue; // Skip the dragged block\n \n const block = blocks[i];\n const rect = block.getBoundingClientRect();\n let top = rect.top - containerRect.top;\n let bottom = rect.bottom - containerRect.top;\n \n // Account for any transforms\n const transform = window.getComputedStyle(block).transform;\n if (transform && transform !== 'none') {\n const matrix = new DOMMatrix(transform);\n const yOffset = matrix.m42;\n top += yOffset;\n bottom += yOffset;\n }\n \n visualBlocks.push({ index: i, top, bottom });\n }\n \n // Sort by visual position\n visualBlocks.sort((a, b) => a.top - b.top);\n \n // Adjust targetIndex to account for excluded dragged block\n let adjustedTargetIndex = targetIndex;\n if (targetIndex > draggedIndex) {\n adjustedTargetIndex--; // Reduce by 1 since dragged block is not in visualBlocks\n }\n \n // Calculate drop position\n // Get the margin that will be applied based on the dragged block type\n let blockMargin = 16; // default margin\n if (this.draggedBlockElement) {\n const draggedBlock = this.component.blocks.find(b => b.id === this.draggedBlockId);\n if (draggedBlock) {\n const blockType = draggedBlock.type;\n if (blockType === 'heading-1' || blockType === 'heading-2' || blockType === 'heading-3') {\n blockMargin = 24;\n } else if (blockType === 'code' || blockType === 'quote') {\n blockMargin = 20;\n }\n }\n }\n \n if (adjustedTargetIndex === 0) {\n // Insert at the very top - no margin needed for first block\n topPosition = 0;\n } else if (adjustedTargetIndex >= visualBlocks.length) {\n // Insert at the end\n const lastBlock = visualBlocks[visualBlocks.length - 1];\n if (lastBlock) {\n topPosition = lastBlock.bottom;\n // Add margin that will be applied to the dropped block\n topPosition += blockMargin;\n }\n } else {\n // Insert between blocks\n const blockBefore = visualBlocks[adjustedTargetIndex - 1];\n if (blockBefore) {\n topPosition = blockBefore.bottom;\n // Add margin that will be applied to the dropped block\n topPosition += blockMargin;\n }\n }\n \n // Set the indicator height to match the dragged block\n this.dropIndicator.style.height = `${this.draggedBlockHeight}px`;\n \n // Set position\n this.dropIndicator.style.top = `${Math.max(0, topPosition)}px`;\n \n console.log('Drop indicator update:', {\n targetIndex,\n adjustedTargetIndex,\n draggedIndex,\n topPosition,\n height: this.draggedBlockHeight,\n blockMargin,\n visualBlocks: visualBlocks.map(b => ({ index: b.index, top: b.top, bottom: b.bottom }))\n });\n }\n\n /**\n * Handles global drag end\n */\n private handleGlobalDragEnd = (): void => {\n // Clean up event listeners\n document.removeEventListener('dragover', this.handleGlobalDragOver);\n document.removeEventListener('dragend', this.handleGlobalDragEnd);\n \n // Remove drop indicator\n if (this.dropIndicator) {\n this.dropIndicator.remove();\n this.dropIndicator = null;\n }\n \n // Trigger the actual drop if we have a dragged block\n if (this.draggedBlockId) {\n // Small delay to ensure transforms are applied\n requestAnimationFrame(() => {\n this.performDrop();\n // Call the regular drag end handler after drop\n this.handleDragEnd();\n });\n } else {\n // Call the regular drag end handler\n this.handleDragEnd();\n }\n };\n\n /**\n * Performs the actual drop operation\n */\n private performDrop(): void {\n if (!this.draggedBlockId) return;\n \n // Get the visual order of blocks based on their positions\n const blockElements = Array.from(this.component.editorContentRef.querySelectorAll('.block-wrapper')) as HTMLElement[];\n const draggedElement = blockElements.find(el => el.getAttribute('data-block-id') === this.draggedBlockId);\n \n if (!draggedElement) return;\n \n \n // Create an array of blocks with their visual positions\n const visualOrder = blockElements.map(el => {\n const id = el.getAttribute('data-block-id');\n const rect = el.getBoundingClientRect();\n const centerY = rect.top + rect.height / 2;\n return { id, centerY, element: el };\n });\n \n // Sort by visual Y position\n visualOrder.sort((a, b) => a.centerY - b.centerY);\n \n // Get the new order of block IDs\n const newBlockIds = visualOrder.map(item => item.id).filter(id => id !== null);\n \n // Find the original block data\n const originalBlocks = [...this.component.blocks];\n const draggedBlock = originalBlocks.find(b => b.id === this.draggedBlockId);\n \n if (!draggedBlock) return;\n \n // Check if order actually changed\n const oldOrder = originalBlocks.map(b => b.id);\n const orderChanged = !newBlockIds.every((id, index) => id === oldOrder[index]);\n \n if (!orderChanged) {\n return;\n }\n \n // Reorder blocks based on visual positions\n const newBlocks = newBlockIds.map(id => originalBlocks.find(b => b.id === id)!).filter(Boolean);\n \n // Update blocks\n this.component.blocks = newBlocks;\n \n // Re-render blocks programmatically\n this.component.renderBlocksProgrammatically();\n \n // Update value\n this.component.updateValue();\n \n // Focus the moved block after a delay\n setTimeout(() => {\n if (draggedBlock.type !== 'divider') {\n this.component.blockOperations.focusBlock(draggedBlock.id);\n }\n }, 100);\n }\n}", "import { type IBlock } from './wysiwyg.types.js';\n\nexport interface IHistoryState {\n blocks: IBlock[];\n selectedBlockId: string | null;\n cursorPosition?: {\n blockId: string;\n offset: number;\n };\n timestamp: number;\n}\n\nexport class WysiwygHistory {\n private history: IHistoryState[] = [];\n private currentIndex: number = -1;\n private maxHistorySize: number = 50;\n private lastSaveTime: number = 0;\n private saveDebounceMs: number = 500; // Debounce saves to avoid too many snapshots\n \n constructor() {\n // Initialize with empty state\n this.history = [];\n this.currentIndex = -1;\n }\n \n /**\n * Save current state to history\n */\n saveState(blocks: IBlock[], selectedBlockId: string | null, cursorPosition?: { blockId: string; offset: number }): void {\n const now = Date.now();\n \n // Debounce rapid changes (like typing)\n if (now - this.lastSaveTime < this.saveDebounceMs && this.currentIndex >= 0) {\n // Update the current state instead of creating a new one\n this.history[this.currentIndex] = {\n blocks: this.cloneBlocks(blocks),\n selectedBlockId,\n cursorPosition: cursorPosition ? { ...cursorPosition } : undefined,\n timestamp: now\n };\n return;\n }\n \n // Remove any states after current index (when we save after undoing)\n if (this.currentIndex < this.history.length - 1) {\n this.history = this.history.slice(0, this.currentIndex + 1);\n }\n \n // Add new state\n const newState: IHistoryState = {\n blocks: this.cloneBlocks(blocks),\n selectedBlockId,\n cursorPosition: cursorPosition ? { ...cursorPosition } : undefined,\n timestamp: now\n };\n \n this.history.push(newState);\n this.currentIndex++;\n \n // Limit history size\n if (this.history.length > this.maxHistorySize) {\n this.history.shift();\n this.currentIndex--;\n }\n \n this.lastSaveTime = now;\n }\n \n /**\n * Force save a checkpoint (useful for operations like block deletion)\n */\n saveCheckpoint(blocks: IBlock[], selectedBlockId: string | null, cursorPosition?: { blockId: string; offset: number }): void {\n this.lastSaveTime = 0; // Reset debounce\n this.saveState(blocks, selectedBlockId, cursorPosition);\n }\n \n /**\n * Undo to previous state\n */\n undo(): IHistoryState | null {\n if (!this.canUndo()) {\n return null;\n }\n \n this.currentIndex--;\n return this.cloneState(this.history[this.currentIndex]);\n }\n \n /**\n * Redo to next state\n */\n redo(): IHistoryState | null {\n if (!this.canRedo()) {\n return null;\n }\n \n this.currentIndex++;\n return this.cloneState(this.history[this.currentIndex]);\n }\n \n /**\n * Check if undo is available\n */\n canUndo(): boolean {\n return this.currentIndex > 0;\n }\n \n /**\n * Check if redo is available\n */\n canRedo(): boolean {\n return this.currentIndex < this.history.length - 1;\n }\n \n /**\n * Get current state\n */\n getCurrentState(): IHistoryState | null {\n if (this.currentIndex >= 0 && this.currentIndex < this.history.length) {\n return this.cloneState(this.history[this.currentIndex]);\n }\n return null;\n }\n \n /**\n * Clear history\n */\n clear(): void {\n this.history = [];\n this.currentIndex = -1;\n this.lastSaveTime = 0;\n }\n \n /**\n * Deep clone blocks\n */\n private cloneBlocks(blocks: IBlock[]): IBlock[] {\n return blocks.map(block => ({\n ...block,\n metadata: block.metadata ? { ...block.metadata } : undefined\n }));\n }\n \n /**\n * Clone a history state\n */\n private cloneState(state: IHistoryState): IHistoryState {\n return {\n blocks: this.cloneBlocks(state.blocks),\n selectedBlockId: state.selectedBlockId,\n cursorPosition: state.cursorPosition ? { ...state.cursorPosition } : undefined,\n timestamp: state.timestamp\n };\n }\n \n /**\n * Get history info for debugging\n */\n getHistoryInfo(): { size: number; currentIndex: number; canUndo: boolean; canRedo: boolean } {\n return {\n size: this.history.length,\n currentIndex: this.currentIndex,\n canUndo: this.canUndo(),\n canRedo: this.canRedo()\n };\n }\n}", "import {\n customElement,\n property,\n static as html,\n DeesElement,\n type TemplateResult,\n cssManager,\n css,\n} from '@design.estate/dees-element';\n\nimport { type IBlock } from './wysiwyg.types.js';\nimport { WysiwygBlocks } from './wysiwyg.blocks.js';\nimport { WysiwygSelection } from './wysiwyg.selection.js';\nimport { BlockRegistry, type IBlockEventHandlers } from './blocks/index.js';\nimport './wysiwyg.blockregistration.js';\nimport { WysiwygShortcuts } from './wysiwyg.shortcuts.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-wysiwyg-block': DeesWysiwygBlock;\n }\n}\n\n@customElement('dees-wysiwyg-block')\nexport class DeesWysiwygBlock extends DeesElement {\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Clean up selection handler\n if ((this as any)._selectionHandler) {\n document.removeEventListener('selectionchange', (this as any)._selectionHandler);\n }\n }\n @property({ type: Object })\n accessor block: IBlock;\n\n @property({ type: Boolean })\n accessor isSelected: boolean = false;\n\n @property({ type: Object })\n accessor handlers: IBlockEventHandlers;\n\n @property({ type: Object })\n accessor wysiwygComponent: any; // Reference to parent dees-input-wysiwyg\n\n // Reference to the editable block element\n private blockElement: HTMLDivElement | null = null;\n \n // Track if we've initialized the content\n private contentInitialized: boolean = false;\n \n // Track cursor position\n private lastKnownCursorPosition: number = 0;\n private lastSelectedText: string = '';\n\n private handlerStylesInjected = false;\n \n // Block types that don't support contenteditable\n private static readonly NON_EDITABLE_TYPES = ['image', 'divider', 'youtube'];\n \n private injectHandlerStyles(): void {\n // Only inject once per instance\n if (this.handlerStylesInjected) return;\n this.handlerStylesInjected = true;\n \n // Get styles from all registered block handlers\n let styles = '';\n const blockTypes = BlockRegistry.getAllTypes();\n for (const type of blockTypes) {\n const handler = BlockRegistry.getHandler(type);\n if (handler) {\n styles += handler.getStyles();\n }\n }\n \n if (styles) {\n // Create and inject style element\n const styleElement = document.createElement('style');\n styleElement.textContent = styles;\n this.shadowRoot?.appendChild(styleElement);\n }\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n }\n\n .block {\n padding: 4px 0;\n min-height: 1.6em;\n outline: none;\n width: 100%;\n word-wrap: break-word;\n position: relative;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('#000000', '#e0e0e0')};\n }\n\n .block:empty:not(:focus)::before {\n content: attr(data-placeholder);\n color: ${cssManager.bdTheme('#999', '#666')};\n position: absolute;\n pointer-events: none;\n }\n\n /* Block-specific styles moved to handlers */\n\n\n /* Formatting styles */\n .block :is(b, strong) {\n font-weight: 600;\n color: ${cssManager.bdTheme('#000000', '#ffffff')};\n }\n\n .block :is(i, em) {\n font-style: italic;\n }\n\n .block u {\n text-decoration: underline;\n }\n\n .block s {\n text-decoration: line-through;\n }\n\n .block code {\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n font-size: 0.9em;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.1)')};\n padding: 2px 6px;\n border-radius: 3px;\n color: ${cssManager.bdTheme('#d14', '#ff6b6b')};\n }\n\n .block a {\n color: ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n text-decoration: none;\n border-bottom: 1px solid transparent;\n transition: border-color 0.15s ease;\n cursor: pointer;\n }\n\n .block a:hover {\n border-bottom-color: ${cssManager.bdTheme('#0066cc', '#4d94ff')};\n }\n\n /* Code block container and language styles moved to handler */\n\n /* Selection styles */\n .block ::selection {\n background: ${cssManager.bdTheme('rgba(0, 102, 204, 0.3)', 'rgba(77, 148, 255, 0.3)')};\n color: inherit;\n }\n\n\n /* Strike through */\n .block :is(s, strike) {\n text-decoration: line-through;\n opacity: 0.7;\n }\n\n\n /* Block margin adjustments based on type */\n :host-context(.block-wrapper:first-child) .block {\n margin-top: 0 !important;\n }\n\n :host-context(.block-wrapper:last-child) .block {\n margin-bottom: 0;\n }\n\n /* Selected state */\n .block.selected {\n background: ${cssManager.bdTheme('rgba(0, 102, 204, 0.05)', 'rgba(77, 148, 255, 0.08)')};\n box-shadow: inset 0 0 0 2px ${cssManager.bdTheme('rgba(0, 102, 204, 0.2)', 'rgba(77, 148, 255, 0.2)')};\n border-radius: 4px;\n margin-left: -8px;\n margin-right: -8px;\n padding-left: 8px;\n padding-right: 8px;\n }\n\n\n\n\n `,\n ];\n\n protected shouldUpdate(changedProperties: Map): boolean {\n // If selection state changed, update the selected class without re-rendering\n if (changedProperties.has('isSelected') && this.block) {\n // Find the block element based on block type\n let element: HTMLElement | null = null;\n \n // Build the specific selector based on block type\n const blockType = this.block.type;\n const selector = `.block.${blockType}`;\n \n element = this.shadowRoot?.querySelector(selector) as HTMLElement;\n \n if (element) {\n if (this.isSelected) {\n element.classList.add('selected');\n } else {\n element.classList.remove('selected');\n }\n }\n return false; // Don't re-render, just update the class\n }\n \n // Never update if only the block content changed\n if (changedProperties.has('block') && this.block) {\n const oldBlock = changedProperties.get('block');\n if (oldBlock && oldBlock.id && oldBlock.type && oldBlock.id === this.block.id && oldBlock.type === this.block.type) {\n // Only content or metadata changed, don't re-render\n return false;\n }\n }\n \n // Only update if the block type or id changes\n return !this.blockElement || this.block?.type !== this.blockElement.dataset.blockType;\n }\n \n public firstUpdated(): void {\n // Mark that content has been initialized\n this.contentInitialized = true;\n \n // Inject handler styles if not already done\n this.injectHandlerStyles();\n \n // First, populate the container with the rendered content\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLDivElement;\n if (container && this.block) {\n container.innerHTML = this.renderBlockContent();\n }\n \n // Check if we have a registered handler for this block type\n if (this.block) {\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler) {\n const blockElement = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n if (blockElement) {\n handler.setup(blockElement, this.block, this.handlers);\n }\n return; // Block handler takes care of all setup\n }\n }\n \n // Handle special block types\n \n // Now find the actual editable block element\n const editableBlock = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n // Ensure the block element maintains its content\n if (editableBlock) {\n editableBlock.setAttribute('data-block-id', this.block.id);\n editableBlock.setAttribute('data-block-type', this.block.type);\n \n // Set up all event handlers manually to avoid Lit re-renders\n editableBlock.addEventListener('input', (e) => {\n this.handlers?.onInput?.(e as InputEvent);\n \n // Track cursor position after input\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n editableBlock.addEventListener('keydown', (e) => {\n // Track cursor position before keydown\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n this.handlers?.onKeyDown?.(e);\n });\n \n \n editableBlock.addEventListener('focus', () => {\n this.handlers?.onFocus?.();\n });\n \n editableBlock.addEventListener('blur', () => {\n this.handlers?.onBlur?.();\n });\n \n editableBlock.addEventListener('compositionstart', () => {\n this.handlers?.onCompositionStart?.();\n });\n \n editableBlock.addEventListener('compositionend', () => {\n this.handlers?.onCompositionEnd?.();\n });\n \n editableBlock.addEventListener('mouseup', (e) => {\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n \n // Selection will be handled by selectionchange event\n this.handlers?.onMouseUp?.(e);\n });\n \n editableBlock.addEventListener('click', () => {\n // Small delay to let browser set cursor position\n setTimeout(() => {\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n }, 0);\n });\n \n // Add selection change handler\n const checkSelection = () => {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n \n const selectedText = selection.toString();\n if (selectedText.length === 0) {\n // Clear selection if no text\n if (this.lastSelectedText) {\n this.lastSelectedText = '';\n this.dispatchEvent(new CustomEvent('block-text-selected', {\n detail: {\n text: '',\n blockId: this.block.id,\n hasSelection: false\n },\n bubbles: true,\n composed: true\n }));\n }\n return;\n }\n \n // Get fresh reference to the editable block\n const currentEditableBlock = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!currentEditableBlock) return;\n \n // Get parent wysiwyg component's shadow root\n const parentComponent = this.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n \n // Use getComposedRanges with shadow roots as per MDN docs\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n // Get selection info using our Shadow DOM-aware utility\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Check if selection is within this block\n const startInBlock = WysiwygSelection.containsAcrossShadowDOM(currentEditableBlock, selectionInfo.startContainer);\n const endInBlock = WysiwygSelection.containsAcrossShadowDOM(currentEditableBlock, selectionInfo.endContainer);\n \n if (startInBlock || endInBlock) {\n if (selectedText !== this.lastSelectedText) {\n this.lastSelectedText = selectedText;\n \n // Create range and get rect\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n const rect = range.getBoundingClientRect();\n \n // Dispatch event\n this.dispatchEvent(new CustomEvent('block-text-selected', {\n detail: {\n text: selectedText.trim(),\n blockId: this.block.id,\n range: range,\n rect: rect,\n hasSelection: true\n },\n bubbles: true,\n composed: true\n }));\n }\n } else if (this.lastSelectedText) {\n // Clear selection if no longer in this block\n this.lastSelectedText = '';\n this.dispatchEvent(new CustomEvent('block-text-selected', {\n detail: {\n text: '',\n blockId: this.block.id,\n hasSelection: false\n },\n bubbles: true,\n composed: true\n }));\n }\n };\n \n // Listen for selection changes\n document.addEventListener('selectionchange', checkSelection);\n \n // Store the handler for cleanup\n (this as any)._selectionHandler = checkSelection;\n \n // Add keyup handler for cursor position tracking\n editableBlock.addEventListener('keyup', () => {\n // Track cursor position\n const pos = this.getCursorPosition(editableBlock);\n if (pos !== null) {\n this.lastKnownCursorPosition = pos;\n }\n });\n \n // Set initial content if needed\n if (this.block.content) {\n editableBlock.innerHTML = this.block.content;\n }\n }\n \n // Store reference to the block element for quick access\n this.blockElement = editableBlock;\n }\n\n render(): TemplateResult {\n if (!this.block) return html``;\n\n // Since we need dynamic content, we'll render an empty container\n // and set the innerHTML in firstUpdated\n return html`
        `;\n }\n \n private renderBlockContent(): string {\n if (!this.block) return '';\n\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler) {\n return handler.render(this.block, this.isSelected);\n }\n\n // Default rendering for blocks without handlers\n const selectedClass = this.isSelected ? ' selected' : '';\n return `\n \n `;\n }\n\n\n\n public focus(): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.focus) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.focus(container, context);\n }\n \n // Handle non-editable blocks\n if (this.block && DeesWysiwygBlock.NON_EDITABLE_TYPES.includes(this.block.type)) {\n const blockElement = this.shadowRoot?.querySelector(`.block.${this.block.type}`) as HTMLDivElement;\n if (blockElement) {\n blockElement.focus();\n }\n return;\n }\n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return;\n \n // Ensure the element is focusable\n if (!editableElement.hasAttribute('contenteditable')) {\n editableElement.setAttribute('contenteditable', 'true');\n }\n \n editableElement.focus();\n \n // If focus failed, try again after a microtask\n if (document.activeElement !== editableElement && this.shadowRoot?.activeElement !== editableElement) {\n Promise.resolve().then(() => {\n editableElement.focus();\n });\n }\n }\n \n public focusWithCursor(position: 'start' | 'end' | number = 'end'): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.focusWithCursor) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.focusWithCursor(container, position, context);\n }\n \n // Non-editable blocks don't support cursor positioning\n if (this.block && DeesWysiwygBlock.NON_EDITABLE_TYPES.includes(this.block.type)) {\n this.focus();\n return;\n }\n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return;\n \n // Ensure element is focusable first\n if (!editableElement.hasAttribute('contenteditable')) {\n editableElement.setAttribute('contenteditable', 'true');\n }\n \n // Focus the element\n editableElement.focus();\n \n // Set cursor position after focus is established\n const setCursor = () => {\n if (position === 'start') {\n this.setCursorToStart();\n } else if (position === 'end') {\n this.setCursorToEnd();\n } else if (typeof position === 'number') {\n // Use the new selection utility to set cursor position\n WysiwygSelection.setCursorPosition(editableElement, position);\n }\n };\n \n // Ensure cursor is set after focus\n if (document.activeElement === editableElement || this.shadowRoot?.activeElement === editableElement) {\n setCursor();\n } else {\n // Wait for focus to be established\n Promise.resolve().then(() => {\n if (document.activeElement === editableElement || this.shadowRoot?.activeElement === editableElement) {\n setCursor();\n }\n });\n }\n }\n \n \n\n /**\n * Get cursor position in the editable element\n */\n public getCursorPosition(element: HTMLElement): number | null {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.getCursorPosition) {\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.getCursorPosition(element, context);\n }\n \n // Get parent wysiwyg component's shadow root\n const parentComponent = this.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n console.log('getCursorPosition: Selection info from shadow DOMs:', {\n selectionInfo,\n shadowRootsCount: shadowRoots.length\n });\n \n if (!selectionInfo) {\n console.log('getCursorPosition: No selection found');\n return null;\n }\n \n console.log('getCursorPosition: Range info:', {\n startContainer: selectionInfo.startContainer,\n startOffset: selectionInfo.startOffset,\n collapsed: selectionInfo.collapsed,\n startContainerText: selectionInfo.startContainer.textContent\n });\n \n if (!element.contains(selectionInfo.startContainer)) {\n console.log('getCursorPosition: Range not in element');\n return null;\n }\n \n // Create a range from start of element to cursor position\n const preCaretRange = document.createRange();\n preCaretRange.selectNodeContents(element);\n preCaretRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // Get the text content length up to cursor\n const position = preCaretRange.toString().length;\n console.log('getCursorPosition: Calculated position:', {\n position,\n preCaretText: preCaretRange.toString(),\n elementText: element.textContent,\n elementTextLength: element.textContent?.length\n });\n \n return position;\n }\n\n public getContent(): string {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.getContent) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.getContent(container, context);\n }\n \n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return '';\n \n // Get the innerHTML which includes formatting tags\n const content = editableElement.innerHTML || '';\n console.log('Getting content from block:', content);\n return content;\n }\n\n public setContent(content: string): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.setContent) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.setContent(container, content, context);\n }\n \n // Get the actual editable element\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) return;\n \n // Store if we have focus\n const hadFocus = document.activeElement === editableElement || this.shadowRoot?.activeElement === editableElement;\n \n editableElement.innerHTML = content;\n \n // Restore focus if we had it\n if (hadFocus) {\n editableElement.focus();\n }\n }\n\n public setCursorToStart(): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.setCursorToStart) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.setCursorToStart(container, context);\n }\n \n // Always find the element fresh, don't rely on cached blockElement\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n if (editableElement) {\n WysiwygBlocks.setCursorToStart(editableElement);\n }\n }\n\n public setCursorToEnd(): void {\n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n if (handler && handler.setCursorToEnd) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n const context = { shadowRoot: this.shadowRoot!, component: this };\n return handler.setCursorToEnd(container, context);\n }\n \n // Always find the element fresh, don't rely on cached blockElement\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n if (editableElement) {\n WysiwygBlocks.setCursorToEnd(editableElement);\n }\n }\n\n\n\n\n \n\n \n /**\n * Get context menu items for this block\n */\n public getContextMenuItems(): any[] {\n if (!this.block || this.block.type === 'divider') {\n return [];\n }\n \n const blockTypes = WysiwygShortcuts.getSlashMenuItems();\n const currentType = this.block.type;\n \n // Use the parent reference passed from dees-input-wysiwyg\n const wysiwygComponent = this.wysiwygComponent;\n const blockId = this.block.id;\n \n \n // Create submenu items for block type change\n const blockTypeItems = blockTypes\n .filter(item => item.type !== currentType && item.type !== 'divider')\n .map(item => ({\n name: item.label,\n iconName: item.icon.replace('lucide:', ''),\n action: async () => {\n if (wysiwygComponent && wysiwygComponent.blockOperations) {\n // Transform the block type\n const blockToTransform = wysiwygComponent.blocks.find((b: IBlock) => b.id === blockId);\n if (blockToTransform) {\n blockToTransform.type = item.type;\n blockToTransform.content = blockToTransform.content || '';\n \n // Handle special metadata for different block types\n if (item.type === 'code') {\n blockToTransform.metadata = { language: 'typescript' };\n } else if (item.type === 'list') {\n blockToTransform.metadata = { listType: 'bullet' };\n } else if (item.type === 'image') {\n blockToTransform.content = '';\n blockToTransform.metadata = { url: '', loading: false };\n } else if (item.type === 'youtube') {\n blockToTransform.content = '';\n blockToTransform.metadata = { videoId: '', url: '' };\n } else if (item.type === 'markdown') {\n blockToTransform.metadata = { showPreview: false };\n } else if (item.type === 'html') {\n blockToTransform.metadata = { showPreview: false };\n } else if (item.type === 'attachment') {\n blockToTransform.content = '';\n blockToTransform.metadata = { files: [] };\n }\n \n // Update the block element\n wysiwygComponent.updateBlockElement(blockId);\n wysiwygComponent.updateValue();\n \n // Focus the block after transformation\n requestAnimationFrame(() => {\n wysiwygComponent.blockOperations.focusBlock(blockId);\n });\n }\n }\n }\n }));\n \n const menuItems: any[] = [\n {\n name: 'Change Type',\n iconName: 'type',\n submenu: blockTypeItems\n }\n ];\n \n // Add copy/cut/paste for editable blocks\n if (!['image', 'divider', 'youtube', 'attachment'].includes(this.block.type)) {\n menuItems.push(\n { divider: true },\n {\n name: 'Cut',\n iconName: 'scissors',\n shortcut: 'Cmd+X',\n action: async () => {\n document.execCommand('cut');\n }\n },\n {\n name: 'Copy',\n iconName: 'copy',\n shortcut: 'Cmd+C',\n action: async () => {\n document.execCommand('copy');\n }\n },\n {\n name: 'Paste',\n iconName: 'clipboard',\n shortcut: 'Cmd+V',\n action: async () => {\n document.execCommand('paste');\n }\n }\n );\n }\n \n // Add delete option\n menuItems.push(\n { divider: true },\n {\n name: 'Delete Block',\n iconName: 'trash2',\n action: async () => {\n if (wysiwygComponent && wysiwygComponent.blockOperations) {\n wysiwygComponent.blockOperations.deleteBlock(blockId);\n }\n }\n }\n );\n \n return menuItems;\n }\n\n /**\n * Gets content split at cursor position\n */\n public getSplitContent(): { before: string; after: string } | null {\n console.log('getSplitContent: Starting...');\n \n // Check if we have a registered handler for this block type\n const handler = BlockRegistry.getHandler(this.block.type);\n console.log('getSplitContent: Checking for handler', { \n blockType: this.block.type, \n hasHandler: !!handler,\n hasSplitMethod: !!(handler && handler.getSplitContent)\n });\n \n if (handler && handler.getSplitContent) {\n const container = this.shadowRoot?.querySelector('.wysiwyg-block-container') as HTMLElement;\n console.log('getSplitContent: Found container', { \n container: !!container,\n containerHTML: container?.innerHTML?.substring(0, 100)\n });\n const context = {\n shadowRoot: this.shadowRoot!,\n component: this\n };\n return handler.getSplitContent(container, context);\n }\n \n \n // Get the actual editable element first\n const editableElement = this.shadowRoot?.querySelector('.block') as HTMLDivElement;\n \n if (!editableElement) {\n console.log('getSplitContent: No editable element found');\n return null;\n }\n \n console.log('getSplitContent: Element info:', {\n blockType: this.block.type,\n innerHTML: editableElement.innerHTML,\n textContent: editableElement.textContent,\n textLength: editableElement.textContent?.length\n });\n \n // Get parent wysiwyg component's shadow root\n const parentComponent = this.closest('dees-input-wysiwyg');\n const parentShadowRoot = parentComponent?.shadowRoot;\n \n // Get selection info with both shadow roots for proper traversal\n const shadowRoots: ShadowRoot[] = [];\n if (parentShadowRoot) shadowRoots.push(parentShadowRoot);\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n console.log('getSplitContent: Selection info from shadow DOMs:', {\n selectionInfo,\n shadowRootsCount: shadowRoots.length\n });\n \n if (!selectionInfo) {\n console.log('getSplitContent: No selection, using last known position:', this.lastKnownCursorPosition);\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = editableElement.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n console.log('getSplitContent: Splitting with last known position:', {\n pos,\n fullTextLength: fullText.length,\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n });\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n console.log('getSplitContent: Selection range:', {\n startContainer: selectionInfo.startContainer,\n startOffset: selectionInfo.startOffset,\n startContainerInElement: editableElement.contains(selectionInfo.startContainer)\n });\n \n // Make sure the selection is within this block\n if (!WysiwygSelection.containsAcrossShadowDOM(editableElement, selectionInfo.startContainer)) {\n console.log('getSplitContent: Selection not in this block, using last known position:', this.lastKnownCursorPosition);\n // Try using last known cursor position\n if (this.lastKnownCursorPosition !== null) {\n const fullText = editableElement.textContent || '';\n const pos = Math.min(this.lastKnownCursorPosition, fullText.length);\n return {\n before: fullText.substring(0, pos),\n after: fullText.substring(pos)\n };\n }\n return null;\n }\n \n // For HTML content, get cursor position first\n const cursorPos = this.getCursorPosition(editableElement);\n console.log('getSplitContent: Cursor position for HTML split:', cursorPos);\n \n if (cursorPos === null || cursorPos === 0) {\n // If cursor is at start or can't determine position, move all content\n console.log('getSplitContent: Cursor at start or null, moving all content');\n return {\n before: '',\n after: editableElement.innerHTML\n };\n }\n \n // For HTML content, split using ranges to preserve formatting\n const beforeRange = document.createRange();\n const afterRange = document.createRange();\n \n // Before range: from start of element to cursor\n beforeRange.setStart(editableElement, 0);\n beforeRange.setEnd(selectionInfo.startContainer, selectionInfo.startOffset);\n \n // After range: from cursor to end of element\n afterRange.setStart(selectionInfo.startContainer, selectionInfo.startOffset);\n afterRange.setEnd(editableElement, editableElement.childNodes.length);\n \n // Extract HTML content\n const beforeFragment = beforeRange.cloneContents();\n const afterFragment = afterRange.cloneContents();\n \n // Convert to HTML strings\n const tempDiv = document.createElement('div');\n tempDiv.appendChild(beforeFragment);\n const beforeHtml = tempDiv.innerHTML;\n \n tempDiv.innerHTML = '';\n tempDiv.appendChild(afterFragment);\n const afterHtml = tempDiv.innerHTML;\n \n console.log('getSplitContent: Final split result:', {\n cursorPos,\n beforeHtml,\n beforeLength: beforeHtml.length,\n beforeHtmlPreview: beforeHtml.substring(0, 100) + (beforeHtml.length > 100 ? '...' : ''),\n afterHtml,\n afterLength: afterHtml.length,\n afterHtmlPreview: afterHtml.substring(0, 100) + (afterHtml.length > 100 ? '...' : '')\n });\n \n return { \n before: beforeHtml, \n after: afterHtml \n };\n }\n \n}\n", "export * from './dees-input-wysiwyg.js';\nexport * from './wysiwyg.types.js';\nexport * from './wysiwyg.interfaces.js';\nexport * from './wysiwyg.constants.js';\nexport * from './wysiwyg.styles.js';\nexport * from './wysiwyg.converters.js';\nexport * from './wysiwyg.shortcuts.js';\nexport * from './wysiwyg.formatting.js';\nexport * from './wysiwyg.selection.js';\nexport * from './wysiwyg.blocks.js';\nexport * from './wysiwyg.blockoperations.js';\nexport * from './wysiwyg.blockregistration.js';\nexport * from './wysiwyg.inputhandler.js';\nexport * from './wysiwyg.keyboardhandler.js';\nexport * from './wysiwyg.dragdrophandler.js';\nexport * from './wysiwyg.modalmanager.js';\nexport * from './wysiwyg.history.js';\nexport * from './dees-slash-menu.js';\nexport * from './dees-formatting-menu.js';\nexport * from './dees-wysiwyg-block.js';\n", "import { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport { demoFunc } from '../dees-input-wysiwyg.demo.js';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\n\nimport {\n customElement,\n type TemplateResult,\n property,\n static as html,\n cssManager,\n state,\n} from '@design.estate/dees-element';\n\nimport {\n type IBlock,\n type OutputFormat,\n wysiwygStyles,\n WysiwygConverters,\n WysiwygShortcuts,\n WysiwygFormatting,\n WysiwygBlockOperations,\n WysiwygInputHandler,\n WysiwygKeyboardHandler,\n WysiwygDragDropHandler,\n WysiwygModalManager,\n WysiwygHistory,\n WysiwygSelection,\n DeesSlashMenu,\n DeesFormattingMenu\n} from './index.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-wysiwyg': DeesInputWysiwyg;\n }\n}\n\n@customElement('dees-input-wysiwyg')\nexport class DeesInputWysiwyg extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input', 'Workspace'];\n\n @property({ type: String })\n accessor value: string = '';\n\n @property({ type: String })\n accessor outputFormat: OutputFormat = 'html';\n\n @state()\n accessor blocks: IBlock[] = [\n {\n id: WysiwygShortcuts.generateBlockId(),\n type: 'paragraph',\n content: '',\n }\n ];\n\n // Not using @state to avoid re-renders when selection changes\n public selectedBlockId: string | null = null;\n\n // Slash menu is now globally rendered\n public slashMenu = DeesSlashMenu.getInstance();\n\n @state()\n accessor draggedBlockId: string | null = null;\n\n @state()\n accessor dragOverBlockId: string | null = null;\n\n @state()\n accessor dragOverPosition: 'before' | 'after' | null = null;\n\n // Formatting menu is now globally rendered\n public formattingMenu = DeesFormattingMenu.getInstance();\n\n @state()\n accessor selectedText: string = '';\n\n public editorContentRef: HTMLDivElement;\n public isComposing: boolean = false;\n \n // Handler instances\n public blockOperations: WysiwygBlockOperations;\n private inputHandler: WysiwygInputHandler;\n private keyboardHandler: WysiwygKeyboardHandler;\n private dragDropHandler: WysiwygDragDropHandler;\n private history: WysiwygHistory;\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n wysiwygStyles\n ];\n\n constructor() {\n super();\n // Initialize handlers\n this.blockOperations = new WysiwygBlockOperations(this);\n this.inputHandler = new WysiwygInputHandler(this);\n this.keyboardHandler = new WysiwygKeyboardHandler(this);\n this.dragDropHandler = new WysiwygDragDropHandler(this);\n this.history = new WysiwygHistory();\n }\n\n async connectedCallback() {\n await super.connectedCallback();\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Selection listeners are now handled at block level\n // Clean up handlers\n this.inputHandler?.destroy();\n // Clean up blur timeout\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n this.blurTimeout = null;\n }\n }\n\n async firstUpdated() {\n if (this.value && this.value.trim().length > 0) {\n const parsedBlocks =\n this.outputFormat === 'html'\n ? WysiwygConverters.parseHtmlToBlocks(this.value)\n : WysiwygConverters.parseMarkdownToBlocks(this.value);\n\n if (parsedBlocks.length > 0) {\n this.blocks = parsedBlocks;\n }\n }\n\n this.updateValue();\n this.editorContentRef = this.shadowRoot!.querySelector('.editor-content') as HTMLDivElement;\n \n // Add click handler to editor content\n if (this.editorContentRef) {\n this.editorContentRef.addEventListener('click', (e) => this.handleEditorClick(e));\n }\n \n // We now rely on block-level selection detection\n // No global selection listener needed\n \n // Listen for custom selection events from blocks\n this.addEventListener('block-text-selected', (e: CustomEvent) => {\n \n if (!this.slashMenu.visible && e.detail.hasSelection && e.detail.text.length > 0) {\n this.selectedText = e.detail.text;\n \n // Use the rect from the event if available\n if (e.detail.rect) {\n const coords = {\n x: e.detail.rect.left + (e.detail.rect.width / 2),\n y: Math.max(45, e.detail.rect.top - 45)\n };\n \n \n // Show the formatting menu at the calculated position\n this.formattingMenu.show(\n coords,\n async (command: string) => await this.applyFormat(command)\n );\n }\n }\n });\n \n // Hide formatting menu when clicking outside\n document.addEventListener('mousedown', (e) => {\n // Check if click is on the formatting menu itself\n const formattingMenuElement = this.formattingMenu.shadowRoot?.querySelector('.formatting-menu');\n if (formattingMenuElement && formattingMenuElement.contains(e.target as Node)) {\n return;\n }\n \n // Check if we have an active selection\n const selection = window.getSelection();\n if (selection && selection.toString().trim().length > 0) {\n // Don't hide if we still have a selection\n return;\n }\n \n // Hide the menu\n if (this.formattingMenu.visible) {\n this.hideFormattingMenu();\n }\n });\n \n // Add global keyboard listener for undo/redo\n this.addEventListener('keydown', (e: KeyboardEvent) => {\n // Check if the event is from within our editor\n const target = e.target as HTMLElement;\n if (!this.contains(target) && !this.shadowRoot?.contains(target)) {\n return;\n }\n \n // Handle undo/redo\n if ((e.metaKey || e.ctrlKey) && !e.shiftKey && e.key === 'z') {\n e.preventDefault();\n this.undo();\n } else if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.key === 'z') {\n e.preventDefault();\n this.redo();\n }\n });\n \n // Save initial state to history\n this.history.saveState(this.blocks, this.selectedBlockId);\n \n // Render blocks programmatically\n this.renderBlocksProgrammatically();\n }\n \n /**\n * Renders all blocks programmatically without triggering re-renders\n */\n public renderBlocksProgrammatically() {\n if (!this.editorContentRef) return;\n \n // Clear existing blocks\n this.editorContentRef.innerHTML = '';\n \n // Create and append block elements\n this.blocks.forEach(block => {\n const blockWrapper = this.createBlockElement(block);\n this.editorContentRef.appendChild(blockWrapper);\n });\n }\n \n /**\n * Creates a block element programmatically\n */\n public createBlockElement(block: IBlock): HTMLElement {\n const wrapper = document.createElement('div');\n wrapper.className = 'block-wrapper';\n wrapper.setAttribute('data-block-id', block.id);\n \n // Add drag handle for non-divider blocks\n if (block.type !== 'divider') {\n const dragHandle = document.createElement('div');\n dragHandle.className = 'drag-handle';\n dragHandle.draggable = true;\n dragHandle.addEventListener('dragstart', (e) => this.dragDropHandler.handleDragStart(e, block));\n wrapper.appendChild(dragHandle);\n }\n \n // Create the block component\n const blockComponent = document.createElement('dees-wysiwyg-block') as any;\n blockComponent.block = block;\n blockComponent.isSelected = this.selectedBlockId === block.id;\n blockComponent.wysiwygComponent = this; // Pass parent reference\n blockComponent.handlers = {\n onInput: (e: InputEvent) => this.inputHandler.handleBlockInput(e, block),\n onKeyDown: (e: KeyboardEvent) => this.keyboardHandler.handleBlockKeyDown(e, block),\n onFocus: () => this.handleBlockFocus(block),\n onBlur: () => this.handleBlockBlur(block),\n onCompositionStart: () => this.isComposing = true,\n onCompositionEnd: () => this.isComposing = false,\n onMouseUp: (e: MouseEvent) => this.handleTextSelection(e),\n onRequestUpdate: () => this.updateBlockElement(block.id),\n };\n wrapper.appendChild(blockComponent);\n \n // Remove settings button - context menu will handle this\n \n // Add drag event listeners\n wrapper.addEventListener('dragover', (e) => this.dragDropHandler.handleDragOver(e, block));\n wrapper.addEventListener('drop', (e) => this.dragDropHandler.handleDrop(e, block));\n wrapper.addEventListener('dragleave', () => this.dragDropHandler.handleDragLeave(block));\n \n return wrapper;\n }\n \n /**\n * Updates a specific block element\n */\n public updateBlockElement(blockId: string) {\n const block = this.blocks.find(b => b.id === blockId);\n if (!block) return;\n \n const wrapper = this.editorContentRef.querySelector(`[data-block-id=\"${blockId}\"]`);\n if (!wrapper) return;\n \n // Replace with new element\n const newWrapper = this.createBlockElement(block);\n wrapper.replaceWith(newWrapper);\n }\n\n\n render(): TemplateResult {\n return html`\n \n
        \n
        \n \n
        \n
        \n `;\n }\n\n // Old renderBlock method removed - using programmatic rendering instead\n\n\n\n\n public handleSlashMenuKeyboard(e: KeyboardEvent) {\n switch(e.key) {\n case 'ArrowDown':\n e.preventDefault();\n this.slashMenu.navigate('down');\n break;\n case 'ArrowUp':\n e.preventDefault();\n this.slashMenu.navigate('up');\n break;\n case 'Enter':\n e.preventDefault();\n this.slashMenu.selectCurrent();\n break;\n case 'Escape':\n e.preventDefault();\n this.closeSlashMenu(true);\n break;\n }\n }\n\n public closeSlashMenu(clearSlash: boolean = false) {\n if (clearSlash && this.selectedBlockId) {\n // Clear the slash command from the content if menu is closing without selection\n const currentBlock = this.blocks.find(b => b.id === this.selectedBlockId);\n if (currentBlock) {\n const wrapperElement = this.shadowRoot!.querySelector(`[data-block-id=\"${currentBlock.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent) {\n const content = blockComponent.getContent();\n if (content.startsWith('/')) {\n // Remove the entire slash command (slash + any filter text)\n const cleanContent = content.replace(/^\\/[^\\s]*\\s*/, '').trim();\n blockComponent.setContent(cleanContent);\n currentBlock.content = cleanContent;\n \n // Focus and set cursor at beginning\n requestAnimationFrame(() => {\n blockComponent.focusWithCursor(0);\n });\n }\n }\n }\n }\n \n this.slashMenu.hide();\n }\n\n private handleBlockFocus(block: IBlock) {\n // Clear any pending blur timeout when focusing\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n this.blurTimeout = null;\n }\n \n const prevSelectedId = this.selectedBlockId;\n this.selectedBlockId = block.id;\n \n // Only update selection UI if it changed\n if (prevSelectedId !== block.id) {\n // Update the previous block's selection state\n if (prevSelectedId) {\n const prevWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${prevSelectedId}\"]`);\n const prevBlockComponent = prevWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (prevBlockComponent) {\n prevBlockComponent.isSelected = false;\n }\n }\n \n // Update the new block's selection state\n const wrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = wrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n blockComponent.isSelected = true;\n }\n }\n }\n\n private blurTimeout: any = null;\n \n private handleBlockBlur(block: IBlock) {\n // Clear any existing blur timeout\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout);\n }\n \n // Don't update value if slash menu is visible\n if (this.slashMenu.visible) {\n return;\n }\n \n // Sync content from the block that's losing focus\n const wrapperElement = this.shadowRoot?.querySelector(`[data-block-id=\"${block.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n if (blockComponent && blockComponent.getContent) {\n const newContent = blockComponent.getContent();\n // Only update if content actually changed\n if (block.content !== newContent) {\n block.content = newContent;\n }\n }\n \n // Delay the blur handling to avoid interfering with typing\n this.blurTimeout = setTimeout(() => {\n // Check if we've refocused on another block\n const activeElement = this.shadowRoot?.activeElement;\n const isBlockFocused = activeElement?.classList.contains('block');\n \n if (!isBlockFocused) {\n // Only update value if we're truly blurring away from all blocks\n this.updateValue();\n }\n }, 100);\n \n // Don't immediately clear selectedBlockId or close menus\n // Let click handlers decide what to do\n }\n\n private handleEditorClick(e: MouseEvent) {\n const target = e.target as HTMLElement;\n \n // Close slash menu if clicking outside of it\n if (this.slashMenu.visible) {\n this.closeSlashMenu(true);\n }\n \n // Focus last block if clicking on empty editor area\n if (target.classList.contains('editor-content')) {\n const lastBlock = this.blocks[this.blocks.length - 1];\n this.blockOperations.focusBlock(lastBlock.id, lastBlock.type === 'divider' || lastBlock.type === 'image' ? undefined : 'end');\n }\n }\n\n private createNewBlock(type: IBlock['type'] = 'paragraph', content: string = '', metadata?: any): IBlock {\n return {\n id: WysiwygShortcuts.generateBlockId(),\n type,\n content,\n ...(metadata && { metadata })\n };\n }\n\n private async insertBlockAfter(afterBlock: IBlock, newBlock: IBlock, focusNewBlock: boolean = true): Promise {\n const blockIndex = this.blocks.findIndex(b => b.id === afterBlock.id);\n this.blocks = [...this.blocks.slice(0, blockIndex + 1), newBlock, ...this.blocks.slice(blockIndex + 1)];\n \n // Insert the new block element programmatically\n const afterWrapper = this.editorContentRef.querySelector(`[data-block-id=\"${afterBlock.id}\"]`);\n if (afterWrapper) {\n const newWrapper = this.createBlockElement(newBlock);\n afterWrapper.insertAdjacentElement('afterend', newWrapper);\n }\n \n this.updateValue();\n \n if (focusNewBlock && newBlock.type !== 'divider') {\n // Give DOM time to settle\n await new Promise(resolve => setTimeout(resolve, 0));\n await this.blockOperations.focusBlock(newBlock.id, 'start');\n }\n }\n\n public async insertBlock(type: IBlock['type']) {\n const currentBlock = this.blocks.find(b => b.id === this.selectedBlockId);\n \n if (!currentBlock) {\n this.closeSlashMenu();\n return;\n }\n\n // Get the block component to extract clean content\n const wrapperElement = this.shadowRoot!.querySelector(`[data-block-id=\"${currentBlock.id}\"]`);\n const blockComponent = wrapperElement?.querySelector('dees-wysiwyg-block') as any;\n \n // Clear the slash command from the content before transforming\n if (blockComponent) {\n const content = blockComponent.getContent();\n if (content.startsWith('/')) {\n // Remove the slash and any filter text (including non-word characters)\n const cleanContent = content.replace(/^\\/[^\\s]*\\s*/, '').trim();\n blockComponent.setContent(cleanContent);\n currentBlock.content = cleanContent;\n }\n }\n \n // Close menu\n this.closeSlashMenu(false);\n \n // If it's a code block, default to TypeScript\n if (type === 'code') {\n currentBlock.metadata = { language: 'typescript' };\n }\n \n // Transform the current block\n currentBlock.type = type;\n currentBlock.content = currentBlock.content || '';\n \n if (type === 'divider') {\n currentBlock.content = ' ';\n const newBlock = this.createNewBlock();\n this.insertBlockAfter(currentBlock, newBlock);\n } else if (type === 'list') {\n currentBlock.metadata = { listType: 'bullet' };\n // For lists, ensure we start with empty content\n currentBlock.content = '';\n } else if (type === 'image') {\n // For image blocks, clear content and set empty metadata\n currentBlock.content = '';\n currentBlock.metadata = { url: '', loading: false };\n } else if (type === 'youtube') {\n // For YouTube blocks, clear content and set empty metadata\n currentBlock.content = '';\n currentBlock.metadata = { videoId: '', url: '' };\n } else if (type === 'markdown') {\n // For Markdown blocks, preserve content and default to edit mode\n currentBlock.metadata = { showPreview: false };\n } else if (type === 'html') {\n // For HTML blocks, preserve content and default to edit mode\n currentBlock.metadata = { showPreview: false };\n } else if (type === 'attachment') {\n // For attachment blocks, clear content and set empty files array\n currentBlock.content = '';\n currentBlock.metadata = { files: [] };\n } else {\n // For all other block types, ensure content is clean\n currentBlock.content = currentBlock.content || '';\n }\n \n // Update the block element programmatically\n this.updateBlockElement(currentBlock.id);\n this.updateValue();\n \n // Give DOM time to settle\n await new Promise(resolve => setTimeout(resolve, 0));\n \n // Focus the block after rendering\n if (type === 'list') {\n this.blockOperations.focusBlock(currentBlock.id, 'start');\n // Additional list-specific focus handling\n requestAnimationFrame(() => {\n const blockWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${currentBlock.id}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n blockComponent.focusListItem();\n }\n });\n } else if (type !== 'divider' && type !== 'image' && type !== 'youtube' && type !== 'markdown' && type !== 'html' && type !== 'attachment') {\n this.blockOperations.focusBlock(currentBlock.id, 'start');\n } else if (type === 'image' || type === 'youtube' || type === 'markdown' || type === 'html' || type === 'attachment') {\n // Focus the non-editable block\n this.blockOperations.focusBlock(currentBlock.id);\n }\n }\n\n public updateValue() {\n if (this.outputFormat === 'html') {\n this.value = WysiwygConverters.getHtmlOutput(this.blocks);\n } else {\n this.value = WysiwygConverters.getMarkdownOutput(this.blocks);\n }\n this.changeSubject.next(this.value);\n \n // Save to history (debounced)\n this.saveToHistory(true);\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n \n if (this.outputFormat === 'html') {\n this.blocks = WysiwygConverters.parseHtmlToBlocks(value);\n } else {\n this.blocks = WysiwygConverters.parseMarkdownToBlocks(value);\n }\n \n if (this.blocks.length === 0) {\n this.blocks = [{\n id: WysiwygShortcuts.generateBlockId(),\n type: 'paragraph',\n content: '',\n }];\n }\n \n this.changeSubject.next(this.value);\n \n // Re-render blocks programmatically if we have the editor\n if (this.editorContentRef) {\n this.renderBlocksProgrammatically();\n }\n }\n\n /**\n * Export the editor content as raw blocks (lossless)\n */\n public exportBlocks(): IBlock[] {\n return JSON.parse(JSON.stringify(this.blocks));\n }\n\n /**\n * Import raw blocks (lossless)\n */\n public importBlocks(blocks: IBlock[]): void {\n this.blocks = JSON.parse(JSON.stringify(blocks));\n this.updateValue();\n \n // Re-render blocks programmatically if we have the editor\n if (this.editorContentRef) {\n this.renderBlocksProgrammatically();\n }\n }\n\n /**\n * Export content as HTML regardless of outputFormat setting\n */\n public exportAsHtml(): string {\n return WysiwygConverters.getHtmlOutput(this.blocks);\n }\n\n /**\n * Export content as Markdown regardless of outputFormat setting\n */\n public exportAsMarkdown(): string {\n return WysiwygConverters.getMarkdownOutput(this.blocks);\n }\n\n /**\n * Get a JSON representation of the editor state (for saving)\n */\n public exportState(): { blocks: IBlock[], outputFormat: OutputFormat } {\n return {\n blocks: this.exportBlocks(),\n outputFormat: this.outputFormat\n };\n }\n\n /**\n * Restore editor state from JSON\n */\n public importState(state: { blocks: IBlock[], outputFormat?: OutputFormat }): void {\n if (state.outputFormat) {\n this.outputFormat = state.outputFormat;\n }\n this.importBlocks(state.blocks);\n }\n\n private handleDragEnd(): void {\n // Remove all drag-related classes\n if (this.draggedBlockId) {\n const wrapper = this.editorContentRef.querySelector(`[data-block-id=\"${this.draggedBlockId}\"]`);\n if (wrapper) {\n wrapper.classList.remove('dragging');\n }\n }\n \n // Remove all drag-over classes\n const allWrappers = this.editorContentRef.querySelectorAll('.block-wrapper');\n allWrappers.forEach(wrapper => {\n wrapper.classList.remove('drag-over-before', 'drag-over-after');\n });\n \n // Remove dragging class from editor content\n this.editorContentRef.classList.remove('dragging');\n \n this.draggedBlockId = null;\n this.dragOverBlockId = null;\n this.dragOverPosition = null;\n }\n\n public handleDrop(e: DragEvent, targetBlock: IBlock): void {\n e.preventDefault();\n \n if (!this.draggedBlockId || this.draggedBlockId === targetBlock.id) return;\n \n const draggedIndex = this.blocks.findIndex(b => b.id === this.draggedBlockId);\n const targetIndex = this.blocks.findIndex(b => b.id === targetBlock.id);\n \n if (draggedIndex === -1 || targetIndex === -1) return;\n \n // Remove the dragged block\n const [draggedBlock] = this.blocks.splice(draggedIndex, 1);\n \n // Calculate the new index\n let newIndex = targetIndex;\n if (this.dragOverPosition === 'after') {\n newIndex = draggedIndex < targetIndex ? targetIndex : targetIndex + 1;\n } else {\n newIndex = draggedIndex < targetIndex ? targetIndex - 1 : targetIndex;\n }\n \n // Insert at new position\n this.blocks.splice(newIndex, 0, draggedBlock);\n \n // Re-render blocks programmatically to reflect the new order\n this.renderBlocksProgrammatically();\n \n // Update state\n this.updateValue();\n this.handleDragEnd();\n \n // Focus the moved block\n setTimeout(() => {\n const movedBlockElement = this.shadowRoot!.querySelector(`[data-block-id=\"${draggedBlock.id}\"] .block`) as HTMLDivElement;\n if (movedBlockElement && draggedBlock.type !== 'divider') {\n movedBlockElement.focus();\n }\n }, 100);\n }\n\n\n private handleTextSelection(_e: MouseEvent): void {\n // Don't interfere with slash menu\n if (this.slashMenu.visible) return;\n \n // Let the block component handle selection via custom event\n }\n\n \n\n private updateFormattingMenuPosition(): void {\n \n // Get all shadow roots\n const shadowRoots: ShadowRoot[] = [];\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n // Find all block shadow roots\n const blockWrappers = this.shadowRoot?.querySelectorAll('.block-wrapper');\n blockWrappers?.forEach(wrapper => {\n const blockComponent = wrapper.querySelector('dees-wysiwyg-block');\n if (blockComponent?.shadowRoot) {\n shadowRoots.push(blockComponent.shadowRoot);\n }\n });\n \n const coords = WysiwygFormatting.getSelectionCoordinates(...shadowRoots);\n \n if (coords) {\n // Show the global formatting menu at absolute coordinates\n this.formattingMenu.show(\n { x: coords.x, y: coords.y },\n async (command: string) => await this.applyFormat(command)\n );\n } else {\n }\n }\n\n private hideFormattingMenu(): void {\n this.formattingMenu.hide();\n this.selectedText = '';\n }\n\n public async applyFormat(command: string): Promise {\n // Get all shadow roots\n const shadowRoots: ShadowRoot[] = [];\n if (this.shadowRoot) shadowRoots.push(this.shadowRoot);\n \n // Find all block shadow roots\n const blockWrappers = this.shadowRoot?.querySelectorAll('.block-wrapper');\n blockWrappers?.forEach(wrapper => {\n const blockComponent = wrapper.querySelector('dees-wysiwyg-block');\n if (blockComponent?.shadowRoot) {\n shadowRoots.push(blockComponent.shadowRoot);\n }\n });\n \n // Get selection info using Shadow DOM-aware utilities\n const selectionInfo = WysiwygSelection.getSelectionInfo(...shadowRoots);\n if (!selectionInfo) return;\n \n // Find which block contains the selection\n let targetBlock: IBlock | undefined;\n let targetBlockComponent: any;\n \n const wrappers = this.shadowRoot!.querySelectorAll('.block-wrapper');\n for (let i = 0; i < wrappers.length; i++) {\n const wrapper = wrappers[i];\n const blockComponent = wrapper.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent?.shadowRoot) {\n const block = blockComponent.shadowRoot.querySelector('.block');\n if (block && (\n block.contains(selectionInfo.startContainer) || \n block.contains(selectionInfo.endContainer)\n )) {\n const blockId = wrapper.getAttribute('data-block-id');\n targetBlock = this.blocks.find(b => b.id === blockId);\n targetBlockComponent = blockComponent;\n break;\n }\n }\n }\n \n if (!targetBlock || !targetBlockComponent) return;\n\n // Create a range from our selection info\n const range = WysiwygSelection.createRangeFromInfo(selectionInfo);\n \n // Handle link command specially\n if (command === 'link') {\n const url = await this.showLinkDialog();\n if (!url) {\n // User cancelled - restore focus to block\n targetBlockComponent.focus();\n return;\n }\n // Apply link format\n WysiwygFormatting.applyFormat(command, url, range, shadowRoots);\n } else {\n // Apply the format\n WysiwygFormatting.applyFormat(command, undefined, range, shadowRoots);\n }\n\n // Update content after a microtask to ensure DOM is updated\n await new Promise(resolve => setTimeout(resolve, 10));\n \n // Force content update\n targetBlock.content = targetBlockComponent.getContent();\n \n // Update value to persist changes\n this.updateValue();\n \n // Restore focus to the block\n targetBlockComponent.focus();\n \n // For link command, close the formatting menu\n if (command === 'link') {\n this.hideFormattingMenu();\n } else {\n // Let selection handler update menu position\n this.selectedText = '';\n }\n }\n\n private async showLinkDialog(): Promise {\n return new Promise((resolve) => {\n let linkUrl: string | null = null;\n \n DeesModal.createAndShow({\n heading: 'Add Link',\n content: html`\n \n {\n if (e.key === 'Enter') {\n const input = e.target as HTMLInputElement;\n linkUrl = input.value;\n // Find and click the OK button\n const modal = input.closest('dees-modal');\n if (modal) {\n const okButton = modal.shadowRoot?.querySelector('.bottomButton:last-child') as HTMLElement;\n if (okButton) okButton.click();\n }\n }\n }}\"\n @input=\"${(e: InputEvent) => {\n linkUrl = (e.target as HTMLInputElement).value;\n }}\"\n />\n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modal) => {\n modal.destroy();\n resolve(null);\n }\n },\n {\n name: 'Add Link',\n action: async (modal) => {\n modal.destroy();\n resolve(linkUrl);\n }\n }\n ]\n });\n \n // Focus the input after modal is shown\n setTimeout(() => {\n const input = document.querySelector('dees-modal .link-input') as HTMLInputElement;\n if (input) {\n input.focus();\n }\n }, 100);\n });\n }\n \n /**\n * Undo the last action\n */\n private undo(): void {\n const state = this.history.undo();\n if (state) {\n this.restoreState(state);\n }\n }\n \n /**\n * Redo the next action\n */\n private redo(): void {\n const state = this.history.redo();\n if (state) {\n this.restoreState(state);\n }\n }\n \n /**\n * Restore editor state from history\n */\n private restoreState(state: { blocks: IBlock[]; selectedBlockId: string | null; cursorPosition?: { blockId: string; offset: number } }): void {\n // Update blocks\n this.blocks = state.blocks;\n this.selectedBlockId = state.selectedBlockId;\n \n // Re-render blocks\n this.renderBlocksProgrammatically();\n \n // Restore cursor position if available\n if (state.cursorPosition) {\n setTimeout(() => {\n const blockWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${state.cursorPosition!.blockId}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent) {\n blockComponent.focusWithCursor(state.cursorPosition!.offset);\n }\n }, 50);\n } else if (state.selectedBlockId) {\n // Just focus the selected block\n setTimeout(() => {\n this.blockOperations.focusBlock(state.selectedBlockId!);\n }, 50);\n }\n \n // Update value\n this.updateValue();\n }\n \n /**\n * Save current state to history with cursor position\n */\n \n public saveToHistory(debounce: boolean = true): void {\n // Get current cursor position if a block is focused\n let cursorPosition: { blockId: string; offset: number } | undefined;\n \n if (this.selectedBlockId) {\n const blockWrapper = this.shadowRoot?.querySelector(`[data-block-id=\"${this.selectedBlockId}\"]`);\n const blockComponent = blockWrapper?.querySelector('dees-wysiwyg-block') as any;\n if (blockComponent && typeof blockComponent.getCursorPosition === 'function') {\n const editableElement = blockComponent.shadowRoot?.querySelector('.block') as HTMLElement;\n if (editableElement) {\n const offset = blockComponent.getCursorPosition(editableElement);\n if (offset !== null) {\n cursorPosition = {\n blockId: this.selectedBlockId,\n offset\n };\n }\n }\n }\n }\n \n if (debounce) {\n this.history.saveState(this.blocks, this.selectedBlockId, cursorPosition);\n } else {\n this.history.saveCheckpoint(this.blocks, this.selectedBlockId, cursorPosition);\n }\n }\n}\n", "// Re-export the component and related helpers from the dedicated subdirectory\nexport { DeesInputWysiwyg } from './dees-input-wysiwyg/dees-input-wysiwyg.js';\nexport * from './dees-input-wysiwyg/index.js';\n", "import type { ProfileShape } from './dees-input-profilepicture.js';\n\nexport interface CropperOptions {\n container: HTMLElement;\n image: string;\n shape: ProfileShape;\n aspectRatio: number;\n minSize?: number;\n outputSize?: number;\n outputQuality?: number;\n}\n\nexport class ImageCropper {\n private options: CropperOptions;\n private canvas: HTMLCanvasElement;\n private ctx: CanvasRenderingContext2D;\n private img: HTMLImageElement;\n private overlayCanvas: HTMLCanvasElement;\n private overlayCtx: CanvasRenderingContext2D;\n \n // Crop area properties\n private cropX: number = 0;\n private cropY: number = 0;\n private cropSize: number = 200;\n private minCropSize: number = 50;\n \n // Interaction state\n private isDragging: boolean = false;\n private isResizing: boolean = false;\n private dragStartX: number = 0;\n private dragStartY: number = 0;\n private resizeHandle: string = '';\n \n // Image properties\n private imageScale: number = 1;\n private imageOffsetX: number = 0;\n private imageOffsetY: number = 0;\n\n constructor(options: CropperOptions) {\n this.options = {\n minSize: 50,\n outputSize: 800, // Higher default resolution\n outputQuality: 0.95, // Higher quality\n ...options\n };\n \n this.canvas = document.createElement('canvas');\n this.ctx = this.canvas.getContext('2d')!;\n \n this.overlayCanvas = document.createElement('canvas');\n this.overlayCtx = this.overlayCanvas.getContext('2d')!;\n \n this.img = new Image();\n }\n\n async initialize(): Promise {\n // Load image\n await this.loadImage();\n \n // Setup canvases\n this.setupCanvases();\n \n // Setup event listeners\n this.setupEventListeners();\n \n // Initial render\n this.render();\n }\n\n private async loadImage(): Promise {\n return new Promise((resolve, reject) => {\n this.img.onload = () => resolve();\n this.img.onerror = reject;\n this.img.src = this.options.image;\n });\n }\n\n private setupCanvases(): void {\n const container = this.options.container;\n const containerSize = Math.min(container.clientWidth, container.clientHeight);\n \n // Set canvas sizes\n this.canvas.width = containerSize;\n this.canvas.height = containerSize;\n this.canvas.style.width = '100%';\n this.canvas.style.height = '100%';\n this.canvas.style.position = 'absolute';\n this.canvas.style.top = '0';\n this.canvas.style.left = '0';\n \n this.overlayCanvas.width = containerSize;\n this.overlayCanvas.height = containerSize;\n this.overlayCanvas.style.width = '100%';\n this.overlayCanvas.style.height = '100%';\n this.overlayCanvas.style.position = 'absolute';\n this.overlayCanvas.style.top = '0';\n this.overlayCanvas.style.left = '0';\n this.overlayCanvas.style.cursor = 'move';\n \n container.appendChild(this.canvas);\n container.appendChild(this.overlayCanvas);\n \n // Calculate image scale to fit within container (not fill)\n const scale = Math.min(\n containerSize / this.img.width,\n containerSize / this.img.height\n );\n \n this.imageScale = scale;\n this.imageOffsetX = (containerSize - this.img.width * scale) / 2;\n this.imageOffsetY = (containerSize - this.img.height * scale) / 2;\n \n // Initialize crop area\n // Make the crop area fit within the actual image bounds\n const scaledImageWidth = this.img.width * scale;\n const scaledImageHeight = this.img.height * scale;\n const maxCropSize = Math.min(scaledImageWidth, scaledImageHeight, containerSize * 0.8);\n \n this.cropSize = maxCropSize * 0.8; // Start at 80% of max possible size\n this.cropX = (containerSize - this.cropSize) / 2;\n this.cropY = (containerSize - this.cropSize) / 2;\n }\n\n private setupEventListeners(): void {\n this.overlayCanvas.addEventListener('mousedown', this.handleMouseDown.bind(this));\n this.overlayCanvas.addEventListener('mousemove', this.handleMouseMove.bind(this));\n this.overlayCanvas.addEventListener('mouseup', this.handleMouseUp.bind(this));\n this.overlayCanvas.addEventListener('mouseleave', this.handleMouseUp.bind(this));\n \n // Touch events\n this.overlayCanvas.addEventListener('touchstart', this.handleTouchStart.bind(this));\n this.overlayCanvas.addEventListener('touchmove', this.handleTouchMove.bind(this));\n this.overlayCanvas.addEventListener('touchend', this.handleTouchEnd.bind(this));\n }\n\n private handleMouseDown(e: MouseEvent): void {\n const rect = this.overlayCanvas.getBoundingClientRect();\n const x = (e.clientX - rect.left) * (this.overlayCanvas.width / rect.width);\n const y = (e.clientY - rect.top) * (this.overlayCanvas.height / rect.height);\n \n const handle = this.getResizeHandle(x, y);\n \n if (handle) {\n this.isResizing = true;\n this.resizeHandle = handle;\n } else if (this.isInsideCropArea(x, y)) {\n this.isDragging = true;\n }\n \n this.dragStartX = x;\n this.dragStartY = y;\n }\n\n private handleMouseMove(e: MouseEvent): void {\n const rect = this.overlayCanvas.getBoundingClientRect();\n const x = (e.clientX - rect.left) * (this.overlayCanvas.width / rect.width);\n const y = (e.clientY - rect.top) * (this.overlayCanvas.height / rect.height);\n \n // Update cursor\n const handle = this.getResizeHandle(x, y);\n if (handle) {\n this.overlayCanvas.style.cursor = this.getResizeCursor(handle);\n } else if (this.isInsideCropArea(x, y)) {\n this.overlayCanvas.style.cursor = 'move';\n } else {\n this.overlayCanvas.style.cursor = 'default';\n }\n \n // Handle dragging\n if (this.isDragging) {\n const dx = x - this.dragStartX;\n const dy = y - this.dragStartY;\n \n // Constrain crop area to image bounds\n const minX = this.imageOffsetX;\n const maxX = this.imageOffsetX + this.img.width * this.imageScale - this.cropSize;\n const minY = this.imageOffsetY;\n const maxY = this.imageOffsetY + this.img.height * this.imageScale - this.cropSize;\n \n this.cropX = Math.max(minX, Math.min(maxX, this.cropX + dx));\n this.cropY = Math.max(minY, Math.min(maxY, this.cropY + dy));\n \n this.dragStartX = x;\n this.dragStartY = y;\n this.render();\n }\n \n // Handle resizing\n if (this.isResizing) {\n this.handleResize(x, y);\n this.dragStartX = x;\n this.dragStartY = y;\n this.render();\n }\n }\n\n private handleMouseUp(): void {\n this.isDragging = false;\n this.isResizing = false;\n this.resizeHandle = '';\n }\n\n private handleTouchStart(e: TouchEvent): void {\n e.preventDefault();\n const touch = e.touches[0];\n const mouseEvent = new MouseEvent('mousedown', {\n clientX: touch.clientX,\n clientY: touch.clientY\n });\n this.handleMouseDown(mouseEvent);\n }\n\n private handleTouchMove(e: TouchEvent): void {\n e.preventDefault();\n const touch = e.touches[0];\n const mouseEvent = new MouseEvent('mousemove', {\n clientX: touch.clientX,\n clientY: touch.clientY\n });\n this.handleMouseMove(mouseEvent);\n }\n\n private handleTouchEnd(e: TouchEvent): void {\n e.preventDefault();\n this.handleMouseUp();\n }\n\n private getResizeHandle(x: number, y: number): string {\n const handleSize = 20;\n const handles = {\n 'nw': { x: this.cropX, y: this.cropY },\n 'ne': { x: this.cropX + this.cropSize, y: this.cropY },\n 'sw': { x: this.cropX, y: this.cropY + this.cropSize },\n 'se': { x: this.cropX + this.cropSize, y: this.cropY + this.cropSize }\n };\n \n for (const [key, pos] of Object.entries(handles)) {\n if (Math.abs(x - pos.x) < handleSize && Math.abs(y - pos.y) < handleSize) {\n return key;\n }\n }\n \n return '';\n }\n\n private getResizeCursor(handle: string): string {\n const cursors: Record = {\n 'nw': 'nw-resize',\n 'ne': 'ne-resize',\n 'sw': 'sw-resize',\n 'se': 'se-resize'\n };\n return cursors[handle] || 'default';\n }\n\n private isInsideCropArea(x: number, y: number): boolean {\n return x >= this.cropX && x <= this.cropX + this.cropSize &&\n y >= this.cropY && y <= this.cropY + this.cropSize;\n }\n\n private handleResize(x: number, y: number): void {\n const dx = x - this.dragStartX;\n const dy = y - this.dragStartY;\n \n // Get image bounds\n const imgLeft = this.imageOffsetX;\n const imgTop = this.imageOffsetY;\n const imgRight = this.imageOffsetX + this.img.width * this.imageScale;\n const imgBottom = this.imageOffsetY + this.img.height * this.imageScale;\n \n switch (this.resizeHandle) {\n case 'se':\n this.cropSize = Math.max(this.minCropSize, Math.min(\n this.cropSize + Math.max(dx, dy),\n Math.min(\n imgRight - this.cropX,\n imgBottom - this.cropY\n )\n ));\n break;\n case 'nw':\n const newSize = Math.max(this.minCropSize, this.cropSize - Math.max(dx, dy));\n const sizeDiff = this.cropSize - newSize;\n const newX = this.cropX + sizeDiff;\n const newY = this.cropY + sizeDiff;\n if (newX >= imgLeft && newY >= imgTop) {\n this.cropX = newX;\n this.cropY = newY;\n this.cropSize = newSize;\n }\n break;\n case 'ne':\n const neSizeDx = Math.max(dx, -dy);\n const neNewSize = Math.max(this.minCropSize, this.cropSize + neSizeDx);\n const neSizeDiff = neNewSize - this.cropSize;\n const neNewY = this.cropY - neSizeDiff;\n if (neNewY >= imgTop && this.cropX + neNewSize <= imgRight) {\n this.cropY = neNewY;\n this.cropSize = neNewSize;\n }\n break;\n case 'sw':\n const swSizeDx = Math.max(-dx, dy);\n const swNewSize = Math.max(this.minCropSize, this.cropSize + swSizeDx);\n const swSizeDiff = swNewSize - this.cropSize;\n const swNewX = this.cropX - swSizeDiff;\n if (swNewX >= imgLeft && this.cropY + swNewSize <= imgBottom) {\n this.cropX = swNewX;\n this.cropSize = swNewSize;\n }\n break;\n }\n }\n\n private render(): void {\n // Clear canvases\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n this.overlayCtx.clearRect(0, 0, this.overlayCanvas.width, this.overlayCanvas.height);\n \n // Fill background\n this.ctx.fillStyle = '#000000';\n this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\n \n // Draw image\n this.ctx.drawImage(\n this.img,\n this.imageOffsetX,\n this.imageOffsetY,\n this.img.width * this.imageScale,\n this.img.height * this.imageScale\n );\n \n // Draw overlay only over the image area\n this.overlayCtx.fillStyle = 'rgba(0, 0, 0, 0.5)';\n this.overlayCtx.fillRect(\n this.imageOffsetX,\n this.imageOffsetY,\n this.img.width * this.imageScale,\n this.img.height * this.imageScale\n );\n \n // Clear crop area\n this.overlayCtx.save();\n \n if (this.options.shape === 'round') {\n this.overlayCtx.beginPath();\n this.overlayCtx.arc(\n this.cropX + this.cropSize / 2,\n this.cropY + this.cropSize / 2,\n this.cropSize / 2,\n 0,\n Math.PI * 2\n );\n this.overlayCtx.clip();\n } else {\n this.overlayCtx.beginPath();\n this.overlayCtx.rect(this.cropX, this.cropY, this.cropSize, this.cropSize);\n this.overlayCtx.clip();\n }\n \n this.overlayCtx.clearRect(0, 0, this.overlayCanvas.width, this.overlayCanvas.height);\n this.overlayCtx.restore();\n \n // Draw crop border\n this.overlayCtx.strokeStyle = 'white';\n this.overlayCtx.lineWidth = 2;\n \n if (this.options.shape === 'round') {\n this.overlayCtx.beginPath();\n this.overlayCtx.arc(\n this.cropX + this.cropSize / 2,\n this.cropY + this.cropSize / 2,\n this.cropSize / 2,\n 0,\n Math.PI * 2\n );\n this.overlayCtx.stroke();\n } else {\n this.overlayCtx.strokeRect(this.cropX, this.cropY, this.cropSize, this.cropSize);\n }\n \n // Draw resize handles\n this.drawResizeHandles();\n }\n\n private drawResizeHandles(): void {\n const handleSize = 8;\n const handles = [\n { x: this.cropX, y: this.cropY },\n { x: this.cropX + this.cropSize, y: this.cropY },\n { x: this.cropX, y: this.cropY + this.cropSize },\n { x: this.cropX + this.cropSize, y: this.cropY + this.cropSize }\n ];\n \n this.overlayCtx.fillStyle = 'white';\n \n handles.forEach(handle => {\n this.overlayCtx.beginPath();\n this.overlayCtx.arc(handle.x, handle.y, handleSize, 0, Math.PI * 2);\n this.overlayCtx.fill();\n });\n }\n\n async getCroppedImage(): Promise {\n const cropCanvas = document.createElement('canvas');\n const cropCtx = cropCanvas.getContext('2d')!;\n \n // Calculate the actual crop size in original image pixels\n const scale = 1 / this.imageScale;\n const originalCropSize = this.cropSize * scale;\n \n // Use requested output size, but warn if upscaling\n const outputSize = this.options.outputSize!;\n \n if (outputSize > originalCropSize) {\n console.info(`Profile picture: Upscaling from ${Math.round(originalCropSize)}px to ${outputSize}px`);\n }\n \n cropCanvas.width = outputSize;\n cropCanvas.height = outputSize;\n \n // Calculate source coordinates\n const sx = (this.cropX - this.imageOffsetX) * scale;\n const sy = (this.cropY - this.imageOffsetY) * scale;\n const sSize = this.cropSize * scale;\n \n // Apply shape mask if round\n if (this.options.shape === 'round') {\n cropCtx.beginPath();\n cropCtx.arc(outputSize / 2, outputSize / 2, outputSize / 2, 0, Math.PI * 2);\n cropCtx.clip();\n }\n \n // Enable image smoothing for quality\n cropCtx.imageSmoothingEnabled = true;\n cropCtx.imageSmoothingQuality = 'high';\n \n // Draw cropped image\n cropCtx.drawImage(\n this.img,\n sx, sy, sSize, sSize,\n 0, 0, outputSize, outputSize\n );\n \n // Detect format from original image\n const isPng = this.options.image.includes('image/png');\n const format = isPng ? 'image/png' : 'image/jpeg';\n \n return cropCanvas.toDataURL(format, this.options.outputQuality);\n }\n\n destroy(): void {\n this.canvas.remove();\n this.overlayCanvas.remove();\n }\n}", "import {\n DeesElement,\n customElement,\n html,\n property,\n css,\n cssManager,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport * as colors from '../../00colors.js';\nimport { cssGeistFontFamily } from '../../00fonts.js';\nimport { zIndexRegistry } from '../../00zindex.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-button/dees-button/dees-button.js';\nimport '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport { DeesWindowLayer } from '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport { ImageCropper } from './profilepicture.cropper.js';\nimport type { ProfileShape } from './dees-input-profilepicture.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\n@customElement('dees-profilepicture-modal')\nexport class ProfilePictureModal extends DeesElement {\n @property({ type: String })\n accessor initialImage: string = '';\n\n @property({ type: String })\n accessor shape: ProfileShape = 'round';\n\n @property({ type: Number })\n accessor outputSize: number = 800;\n\n @property({ type: Number })\n accessor outputQuality: number = 0.95;\n\n @state()\n accessor currentStep: 'crop' | 'preview' = 'crop';\n\n @state()\n accessor croppedImage: string = '';\n\n @state()\n accessor isProcessing: boolean = false;\n\n private cropper: ImageCropper | null = null;\n private windowLayer: any;\n private zIndex: number = 0;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n font-family: ${cssGeistFontFamily};\n color: ${cssManager.bdTheme('#333', '#fff')};\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: var(--z-index);\n }\n\n .modal-container {\n background: ${cssManager.bdTheme('#ffffff', '#0a0a0a')};\n border-radius: 12px;\n border: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.08)')};\n box-shadow: ${cssManager.bdTheme(\n '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n '0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2)'\n )};\n width: 480px;\n max-width: calc(100vw - 32px);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transform: translateY(10px) scale(0.98);\n opacity: 0;\n animation: modalShow 0.25s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n\n @keyframes modalShow {\n to {\n opacity: 1;\n transform: translateY(0px) scale(1);\n }\n }\n\n .modal-header {\n height: 52px;\n padding: 0 20px;\n border-bottom: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.06)')};\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n flex-shrink: 0;\n }\n\n .modal-title {\n font-size: 15px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n letter-spacing: -0.01em;\n }\n\n .close-button {\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n transition: all 0.15s ease;\n }\n\n .close-button:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.05)', 'rgba(255, 255, 255, 0.05)')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .close-button:active {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.08)', 'rgba(255, 255, 255, 0.08)')};\n }\n\n .modal-body {\n flex: 1;\n padding: 24px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n }\n\n .cropper-container {\n width: 100%;\n max-width: 360px;\n aspect-ratio: 1;\n position: relative;\n background: ${cssManager.bdTheme('#000000', '#000000')};\n border-radius: 12px;\n overflow: hidden;\n box-shadow: ${cssManager.bdTheme(\n 'inset 0 2px 4px rgba(0, 0, 0, 0.06)',\n 'inset 0 2px 4px rgba(0, 0, 0, 0.2)'\n )};\n }\n\n .preview-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n }\n\n .preview-image {\n width: 180px;\n height: 180px;\n object-fit: cover;\n border: 4px solid ${cssManager.bdTheme('#ffffff', '#18181b')};\n box-shadow: ${cssManager.bdTheme(\n '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n '0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2)'\n )};\n }\n\n .preview-image.round {\n border-radius: 50%;\n }\n\n .preview-image.square {\n border-radius: 16px;\n }\n\n .success-message {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 20px;\n background: ${cssManager.bdTheme('#10b981', '#10b981')};\n color: white;\n border-radius: 100px;\n font-weight: 500;\n font-size: 14px;\n animation: successPulse 0.4s ease-out;\n }\n\n @keyframes successPulse {\n 0% { transform: scale(0.9); opacity: 0; }\n 50% { transform: scale(1.02); }\n 100% { transform: scale(1); opacity: 1; }\n }\n\n .modal-footer {\n padding: 20px 24px;\n border-top: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.06)')};\n display: flex;\n gap: 10px;\n justify-content: flex-end;\n }\n\n .instructions {\n text-align: center;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n font-size: 13px;\n line-height: 1.5;\n max-width: 320px;\n }\n\n .loading-spinner {\n width: 40px;\n height: 40px;\n border: 3px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n border-top-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @media (max-width: 768px) {\n .modal-container {\n width: calc(100vw - 32px);\n margin: 16px;\n }\n \n .modal-body {\n padding: 24px;\n }\n }\n `,\n ];\n\n async connectedCallback() {\n super.connectedCallback();\n \n // Create window layer first (it will get its own z-index)\n this.windowLayer = await DeesWindowLayer.createAndShow({\n blur: true,\n });\n this.windowLayer.addEventListener('click', () => this.close());\n \n // Now get z-index for modal (will be above window layer)\n this.zIndex = zIndexRegistry.getNextZIndex();\n this.style.setProperty('--z-index', this.zIndex.toString());\n \n // Register with z-index registry\n zIndexRegistry.register(this, this.zIndex);\n }\n\n async disconnectedCallback() {\n super.disconnectedCallback();\n \n // Cleanup\n if (this.cropper) {\n this.cropper.destroy();\n }\n \n if (this.windowLayer) {\n await this.windowLayer.destroy();\n }\n \n // Unregister from z-index registry\n zIndexRegistry.unregister(this);\n }\n\n render(): TemplateResult {\n return html`\n
        e.stopPropagation()}>\n
        \n

        \n ${this.currentStep === 'crop' ? 'Adjust Image' : 'Success'}\n

        \n \n
        \n \n
        \n ${this.currentStep === 'crop' ? html`\n
        \n Position and resize the square to select your profile area\n
        \n
        \n ` : html`\n
        \n ${this.isProcessing ? html`\n
        \n
        Saving...
        \n ` : html`\n \"Cropped\n
        \n \n Looking good!\n
        \n `}\n
        \n `}\n
        \n \n
        \n ${this.currentStep === 'crop' ? html`\n \n Cancel\n \n \n Save\n \n ` : ''}\n
        \n
        \n `;\n }\n\n async firstUpdated() {\n if (this.currentStep === 'crop') {\n await this.initializeCropper();\n }\n }\n\n private async initializeCropper(): Promise {\n await this.updateComplete;\n \n const container = this.shadowRoot!.getElementById('cropperContainer');\n if (!container) return;\n \n this.cropper = new ImageCropper({\n container,\n image: this.initialImage,\n shape: this.shape,\n aspectRatio: 1,\n outputSize: this.outputSize,\n outputQuality: this.outputQuality,\n });\n \n await this.cropper.initialize();\n }\n\n private async handleCrop(): Promise {\n if (!this.cropper) return;\n \n try {\n this.isProcessing = true;\n this.currentStep = 'preview';\n await this.updateComplete;\n \n // Get cropped image\n const croppedData = await this.cropper.getCroppedImage();\n this.croppedImage = croppedData;\n \n // Simulate processing time for better UX\n await new Promise(resolve => setTimeout(resolve, 800));\n \n this.isProcessing = false;\n \n // Emit save event\n this.dispatchEvent(new CustomEvent('save', {\n detail: { croppedImage: this.croppedImage },\n bubbles: true,\n composed: true\n }));\n \n // Auto close after showing success\n setTimeout(() => {\n this.close();\n }, 1500);\n \n } catch (error) {\n console.error('Error cropping image:', error);\n this.isProcessing = false;\n }\n }\n\n private close(): void {\n this.remove();\n }\n}", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport './dees-input-profilepicture.js';\nimport type { DeesInputProfilePicture } from './dees-input-profilepicture.js';\n\nexport const demoFunc = () => html`\n \n \n
        \n {\n // Basic demo with round profile picture\n const roundProfile = elementArg.querySelector('dees-input-profilepicture[shape=\"round\"]');\n \n if (roundProfile) {\n roundProfile.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputProfilePicture;\n console.log('Round profile picture changed:', target.value?.substring(0, 50) + '...');\n });\n }\n }}>\n \n
        \n \n \n \n
        \n
        \n
        \n\n {\n // Different sizes demo\n const profiles = elementArg.querySelectorAll('dees-input-profilepicture');\n profiles.forEach((profile) => {\n profile.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputProfilePicture;\n console.log(`Profile (size ${target.size}) changed`);\n });\n });\n }}>\n \n
        \n \n \n \n \n \n
        \n
        \n
        \n\n {\n // Pre-filled profile with placeholder\n const sampleImageUrl = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcz4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZ3JhZGllbnQiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMTAwJSIgeTI9IjEwMCUiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjNjY3ZWVhIiAvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM3NjRiYTIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8cmVjdCB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0idXJsKCNncmFkaWVudCkiIC8+CiAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSI4MCIgZmlsbD0id2hpdGUiPkpEPC90ZXh0Pgo8L3N2Zz4=';\n \n const prefilledProfile = elementArg.querySelector('#prefilled-profile') as DeesInputProfilePicture;\n if (prefilledProfile) {\n prefilledProfile.value = sampleImageUrl;\n \n prefilledProfile.addEventListener('change', (event: CustomEvent) => {\n const target = event.target as DeesInputProfilePicture;\n const output = elementArg.querySelector('#prefilled-output');\n if (output) {\n output.textContent = target.value ? \n `Image data: ${target.value.substring(0, 80)}...` : \n 'No image selected';\n }\n });\n }\n }}>\n \n \n \n
        \n Image data will appear here when changed\n
        \n
        \n
        \n\n {\n // Disabled state demo\n const disabledProfile = elementArg.querySelector('#disabled-profile') as DeesInputProfilePicture;\n if (disabledProfile) {\n disabledProfile.value = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iI2NjY2NjYyIgLz4KICA8dGV4dCB4PSI1MCUiIHk9IjUwJSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9IkFyaWFsIiBmb250LXNpemU9IjYwIiBmaWxsPSJ3aGl0ZSI+TkE8L3RleHQ+Cjwvc3ZnPg==';\n }\n }}>\n \n
        \n \n \n \n \n \n
        \n
        \n
        \n\n \n \n
          \n
        • Image Upload: Click to upload or drag & drop images
        • \n
        • Image Cropping: Interactive crop tool with resize handles
        • \n
        • Shape Support: Round or square profile pictures
        • \n
        • Size Customization: Adjustable dimensions
        • \n
        • Preview & Edit: Hover overlay with edit and delete options
        • \n
        • File Validation: Format and size restrictions
        • \n
        • Responsive Design: Works on desktop and mobile devices
        • \n
        • Form Integration: Standard form value binding and validation
        • \n
        • Accessibility: Keyboard navigation and screen reader support
        • \n
        • Z-Index Management: Proper modal stacking with registry
        • \n
        \n \n
        \n Supported Formats: JPEG, PNG, WebP
        \n Max File Size: 5MB (configurable)
        \n Output Format: Base64 encoded JPEG\n
        \n
        \n
        \n
        \n`;", "import {\n customElement,\n html,\n property,\n css,\n cssManager,\n state,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { DeesInputBase } from '../dees-input-base/dees-input-base.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-layout/dees-label/dees-label.js';\nimport { ProfilePictureModal } from './profilepicture.modal.js';\nimport { demoFunc } from './dees-input-profilepicture.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-input-profilepicture': DeesInputProfilePicture;\n }\n}\n\nexport type ProfileShape = 'square' | 'round';\n\n@customElement('dees-input-profilepicture')\nexport class DeesInputProfilePicture extends DeesInputBase {\n public static demo = demoFunc;\n public static demoGroups = ['Input'];\n\n @property({ type: String })\n accessor value: string = ''; // Base64 encoded image or URL\n\n @property({ type: String })\n accessor shape: ProfileShape = 'round';\n\n @property({ type: Number })\n accessor size: number = 120;\n\n @property({ type: String })\n accessor placeholder: string = '';\n\n @property({ type: Boolean })\n accessor allowUpload: boolean = true;\n\n @property({ type: Boolean })\n accessor allowDelete: boolean = true;\n\n @property({ type: Number })\n accessor maxFileSize: number = 5 * 1024 * 1024; // 5MB\n\n @property({ type: Array })\n accessor acceptedFormats: string[] = ['image/jpeg', 'image/png', 'image/webp'];\n\n @property({ type: Number })\n accessor outputSize: number = 800; // Output resolution in pixels\n\n @property({ type: Number })\n accessor outputQuality: number = 0.95; // 0-1 quality for JPEG\n\n @state()\n accessor isHovered: boolean = false;\n\n @state()\n accessor isDragging: boolean = false;\n\n @state()\n accessor isLoading: boolean = false;\n\n private modalInstance: ProfilePictureModal | null = null;\n\n public static styles = [\n themeDefaultStyles,\n ...DeesInputBase.baseStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n position: relative;\n }\n\n .input-wrapper {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .profile-container {\n position: relative;\n display: inline-block;\n cursor: pointer;\n transition: all 0.3s ease;\n }\n\n .profile-container:hover {\n transform: scale(1.02);\n }\n\n .profile-picture {\n width: var(--size, 120px);\n height: var(--size, 120px);\n background: ${cssManager.bdTheme('#f5f5f5', '#18181b')};\n border: 3px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n transition: all 0.3s ease;\n }\n\n .profile-picture.round {\n border-radius: 50%;\n }\n\n .profile-picture.square {\n border-radius: 12px;\n }\n\n .profile-picture.dragging {\n border-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n box-shadow: 0 0 0 4px ${cssManager.bdTheme('rgba(59, 130, 246, 0.15)', 'rgba(96, 165, 250, 0.15)')};\n }\n\n .profile-picture:hover {\n border-color: ${cssManager.bdTheme('#d4d4d8', '#3f3f46')};\n }\n\n .profile-picture:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .profile-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .placeholder-icon {\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none;\n }\n\n .profile-container:hover .overlay {\n opacity: 1;\n }\n\n .overlay-content {\n display: flex;\n gap: 12px;\n }\n\n .overlay-button {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('rgba(255, 255, 255, 0.95)', 'rgba(39, 39, 42, 0.95)')};\n border: 1px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n pointer-events: auto;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n\n .overlay-button:hover {\n background: ${cssManager.bdTheme('#ffffff', '#3f3f46')};\n transform: scale(1.1);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n }\n\n .overlay-button.delete {\n background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.9)', 'rgba(220, 38, 38, 0.9)')};\n color: white;\n border-color: transparent;\n }\n\n .overlay-button.delete:hover {\n background: ${cssManager.bdTheme('#ef4444', '#dc2626')};\n }\n\n .drop-zone-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n text-align: center;\n color: white;\n font-weight: 500;\n pointer-events: none;\n }\n\n .hidden-input {\n display: none;\n }\n\n /* Loading animation */\n .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${cssManager.bdTheme('rgba(255, 255, 255, 0.8)', 'rgba(0, 0, 0, 0.8)')};\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: inherit;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease;\n }\n\n .loading-overlay.show {\n opacity: 1;\n pointer-events: auto;\n }\n\n .loading-spinner {\n width: 40px;\n height: 40px;\n border: 3px solid ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n border-top-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.8;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n .profile-picture.clicking {\n animation: pulse 0.3s ease-out;\n }\n `,\n ];\n\n render(): TemplateResult {\n return html`\n
        \n \n \n
        \n
        \n ${this.value ? html`\n \"Profile\n ` : html`\n \n `}\n \n ${this.isDragging ? html`\n
        \n
        \n Drop image here\n
        \n
        \n ` : ''}\n \n ${this.value && !this.disabled ? html`\n
        \n
        \n ${this.allowUpload ? html`\n \n ` : ''}\n ${this.allowDelete ? html`\n \n ` : ''}\n
        \n
        \n ` : ''}\n \n ${this.isLoading && !this.value ? html`\n
        \n
        \n
        \n ` : ''}\n
        \n
        \n \n \n
        \n `;\n }\n\n private handleClick(): void {\n if (this.disabled || !this.allowUpload) return;\n \n if (!this.value) {\n // If no image, open file picker\n this.isLoading = true;\n const input = this.shadowRoot!.querySelector('.hidden-input') as HTMLInputElement;\n \n // Set up a focus handler to detect when the dialog is closed without selection\n const handleFocus = () => {\n setTimeout(() => {\n // Check if no file was selected\n if (!input.files || input.files.length === 0) {\n this.isLoading = false;\n }\n window.removeEventListener('focus', handleFocus);\n }, 300);\n };\n \n window.addEventListener('focus', handleFocus);\n input.click();\n }\n }\n\n private handleFileSelect(event: Event): void {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n \n // Always reset loading state when file dialog interaction completes\n this.isLoading = false;\n \n if (file) {\n this.processFile(file);\n }\n \n // Reset input to allow selecting the same file again\n input.value = '';\n }\n\n private handleDragOver(event: DragEvent): void {\n event.preventDefault();\n if (!this.disabled && this.allowUpload) {\n this.isDragging = true;\n }\n }\n\n private handleDragLeave(): void {\n this.isDragging = false;\n }\n\n private handleDrop(event: DragEvent): void {\n event.preventDefault();\n this.isDragging = false;\n \n if (this.disabled || !this.allowUpload) return;\n \n const file = event.dataTransfer?.files[0];\n if (file) {\n this.processFile(file);\n }\n }\n\n private async processFile(file: File): Promise {\n // Validate file type\n if (!this.acceptedFormats.includes(file.type)) {\n console.error('Invalid file type:', file.type);\n return;\n }\n \n // Validate file size\n if (file.size > this.maxFileSize) {\n console.error('File too large:', file.size);\n return;\n }\n \n // Read file as base64\n const reader = new FileReader();\n reader.onload = async (e) => {\n const base64 = e.target?.result as string;\n \n // Open modal for cropping\n await this.openModal(base64);\n };\n reader.readAsDataURL(file);\n }\n\n private async openModal(initialImage?: string): Promise {\n const imageToEdit = initialImage || this.value;\n \n if (!imageToEdit) {\n // If no image provided, open file picker\n const input = this.shadowRoot!.querySelector('.hidden-input') as HTMLInputElement;\n input.click();\n return;\n }\n \n // Create and show modal\n this.modalInstance = new ProfilePictureModal();\n this.modalInstance.shape = this.shape;\n this.modalInstance.initialImage = imageToEdit;\n this.modalInstance.outputSize = this.outputSize;\n this.modalInstance.outputQuality = this.outputQuality;\n \n this.modalInstance.addEventListener('save', (event: CustomEvent) => {\n this.value = event.detail.croppedImage;\n this.changeSubject.next(this);\n });\n \n document.body.appendChild(this.modalInstance);\n }\n\n private deletePicture(): void {\n this.value = '';\n this.changeSubject.next(this);\n }\n\n public getValue(): string {\n return this.value;\n }\n\n public setValue(value: string): void {\n this.value = value;\n }\n}", "// Input Components\nexport * from './dees-input-base/index.js';\nexport * from './dees-input-checkbox/index.js';\nexport * from './dees-input-code/index.js';\nexport * from './dees-input-datepicker/index.js';\nexport * from './dees-input-dropdown/index.js';\nexport * from './dees-input-fileupload/index.js';\nexport * from './dees-input-iban/index.js';\nexport * from './dees-input-list/index.js';\nexport * from './dees-input-multitoggle/index.js';\nexport * from './dees-input-phone/index.js';\nexport * from './dees-input-quantityselector/index.js';\nexport * from './dees-input-radiogroup/index.js';\nexport * from './dees-input-richtext/index.js';\nexport * from './dees-input-searchselect/index.js';\nexport * from './dees-input-tags/index.js';\nexport * from './dees-input-text/index.js';\nexport * from './dees-input-toggle/index.js';\nexport * from './dees-input-typelist/index.js';\nexport * from './dees-input-wysiwyg.js';\nexport * from './profilepicture/dees-input-profilepicture.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
        \n
        \n
        Non-Selectable Chips
        \n
        Basic chips without selection capability. Use for display-only tags.
        \n \n
        \n \n
        \n
        Single Selection Chips
        \n
        Click to select one chip at a time. Useful for filters and options.
        \n \n
        \n \n
        \n
        Multiple Selection Chips
        \n
        Select multiple chips simultaneously. Great for tag selection.
        \n \n
        \n \n
        \n
        Removable Chips with Keys
        \n
        Chips with remove buttons and key-value pairs. Perfect for dynamic lists.
        \n \n
        \n \n
        \n
        Mixed Content Example
        \n
        Combining different chip types for complex UIs.
        \n \n
        \n
        \n`;\n", "import {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { demoFunc } from './dees-chips.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-chips': DeesChips;\n }\n}\n\ntype Tag = { key: string; value: string };\n\n@customElement('dees-chips')\nexport class DeesChips extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n\n @property()\n accessor selectionMode: 'none' | 'single' | 'multiple' = 'single';\n\n @property({\n type: Boolean,\n })\n accessor chipsAreRemovable: boolean = false;\n\n @property({\n type: Array,\n })\n accessor selectableChips: Tag[] = [];\n\n @property()\n accessor selectedChip: Tag = null;\n\n @property({\n type: Array,\n })\n accessor selectedChips: Tag[] = [];\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: block;\n box-sizing: border-box;\n }\n\n .mainbox {\n user-select: none;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .chip {\n background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n display: inline-flex;\n align-items: center;\n height: 32px;\n padding: 0px 12px;\n font-size: 14px;\n font-weight: 500;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n border-radius: 6px;\n position: relative;\n cursor: pointer;\n transition: all 0.15s ease;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n }\n\n .chip:hover {\n background: ${cssManager.bdTheme('#e5e7eb', '#3f3f46')};\n border-color: ${cssManager.bdTheme('#d1d5db', '#52525b')};\n }\n\n .chip:active {\n transform: scale(0.98);\n }\n\n .chip.selected {\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n border-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n color: #ffffff;\n }\n\n .chip.selected:hover {\n background: ${cssManager.bdTheme('#2563eb', '#2563eb')};\n border-color: ${cssManager.bdTheme('#2563eb', '#2563eb')};\n }\n\n .chipKey {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.06)', 'rgba(255, 255, 255, 0.1)')};\n height: 20px;\n line-height: 20px;\n display: inline-flex;\n align-items: center;\n margin-left: -8px;\n padding: 0px 8px;\n margin-right: 8px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .chip.selected .chipKey {\n background: rgba(255, 255, 255, 0.2);\n color: rgba(255, 255, 255, 0.9);\n }\n\n dees-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-left: 8px;\n margin-right: -6px;\n border-radius: 3px;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};\n }\n\n .chip.selected dees-icon {\n color: rgba(255, 255, 255, 0.8);\n }\n\n dees-icon:hover {\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.1)')};\n color: ${cssManager.bdTheme('#ef4444', '#ef4444')};\n }\n\n .chip.selected dees-icon:hover {\n background: rgba(255, 255, 255, 0.2);\n color: #ffffff;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
        \n ${this.selectableChips.map(\n (chip) => html`\n this.selectChip(chip)}\n class=\"chip ${this.isSelected(chip) ? 'selected' : ''}\"\n >\n ${chip.key ? html`
        ${chip.key}
        ` : html``} ${chip.value}\n ${this.chipsAreRemovable\n ? html`\n {\n event.stopPropagation(); // prevent the selectChip event from being triggered\n this.removeChip(chip);\n }}\n .icon=${'fa:xmark'}\n >\n `\n : html``}\n
        \n `\n )}\n \n `;\n }\n\n public async firstUpdated() {\n // Component initialized\n }\n\n private isSelected(chip: Tag): boolean {\n if (this.selectionMode === 'single') {\n return this.selectedChip ? this.isSameChip(this.selectedChip, chip) : false;\n } else {\n return this.selectedChips.some((selected) => this.isSameChip(selected, chip));\n }\n }\n \n private isSameChip(chip1: Tag, chip2: Tag): boolean {\n // If both have keys, compare by key\n if (chip1.key && chip2.key) {\n return chip1.key === chip2.key;\n }\n // Otherwise compare by value (and key if present)\n return chip1.value === chip2.value && chip1.key === chip2.key;\n }\n\n public async selectChip(chip: Tag) {\n if (this.selectionMode === 'none') {\n return;\n }\n\n if (this.selectionMode === 'single') {\n if (this.isSelected(chip)) {\n this.selectedChip = null;\n this.selectedChips = [];\n } else {\n this.selectedChip = chip;\n this.selectedChips = [chip];\n }\n } else if (this.selectionMode === 'multiple') {\n if (this.isSelected(chip)) {\n this.selectedChips = this.selectedChips.filter((selected) => !this.isSameChip(selected, chip));\n } else {\n this.selectedChips = [...this.selectedChips, chip];\n }\n this.requestUpdate();\n }\n console.log(this.selectedChips);\n }\n\n public removeChip(chipToRemove: Tag): void {\n // Remove the chip from selectableChips\n this.selectableChips = this.selectableChips.filter((chip) => !this.isSameChip(chip, chipToRemove));\n\n // Remove the chip from selectedChips if present\n this.selectedChips = this.selectedChips.filter((chip) => !this.isSameChip(chip, chipToRemove));\n\n // If the removed chip was the selectedChip, set selectedChip to null\n if (this.selectedChip && this.isSameChip(this.selectedChip, chipToRemove)) {\n this.selectedChip = null;\n }\n\n // Trigger an update to re-render the component\n this.requestUpdate();\n }\n}\n", "export * from './dees-chips.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\nimport type { DeesDashboardgrid } from './dees-dashboardgrid.js';\nimport '@design.estate/dees-wcctools/demotools';\n\nexport const demoFunc = () => {\n return html`\n {\n const grid = elementArg.querySelector('#dashboardGrid') as DeesDashboardgrid;\n\n const seedWidgets = [\n {\n id: 'metrics1',\n x: 0,\n y: 0,\n w: 3,\n h: 2,\n title: 'Revenue',\n icon: 'lucide:dollarSign',\n content: html`\n
        \n
        $124,563
        \n
        \u2191 12.5% from last month
        \n
        \n `,\n },\n {\n id: 'metrics2',\n x: 3,\n y: 0,\n w: 3,\n h: 2,\n title: 'Users',\n icon: 'lucide:users',\n content: html`\n
        \n
        8,234
        \n
        \u2191 5.2% from last week
        \n
        \n `,\n },\n {\n id: 'chart1',\n x: 6,\n y: 0,\n w: 6,\n h: 4,\n title: 'Analytics',\n icon: 'lucide:lineChart',\n content: html`\n
        \n
        \n \n
        Chart visualization area
        \n
        \n
        \n `,\n },\n ];\n\n grid.widgets = seedWidgets.map(widget => ({ ...widget }));\n grid.cellHeight = 80;\n grid.margin = { top: 10, right: 10, bottom: 10, left: 10 };\n grid.enableAnimation = true;\n grid.showGridLines = false;\n\n const baseLayout = grid.getLayout().map(item => ({ ...item }));\n const mobileLayout = grid.widgets.map((widget, index) => ({\n id: widget.id,\n x: 0,\n y: index === 0 ? 0 : grid.widgets.slice(0, index).reduce((acc, prev) => acc + prev.h, 0),\n w: grid.columns,\n h: widget.h,\n }));\n\n grid.layouts = {\n base: baseLayout,\n mobile: mobileLayout,\n };\n\n const statusEl = elementArg.querySelector('#dashboardLayoutStatus') as HTMLElement;\n const updateStatus = () => {\n const layout = grid.getLayout();\n statusEl.textContent = `Active breakpoint: ${grid.activeBreakpoint} \u2022 Tiles: ${layout.length}`;\n };\n\n const mediaQuery = window.matchMedia('(max-width: 768px)');\n const handleBreakpoint = () => {\n const target = mediaQuery.matches ? 'mobile' : 'base';\n grid.applyBreakpointLayout(target);\n updateStatus();\n };\n if (typeof mediaQuery.addEventListener === 'function') {\n mediaQuery.addEventListener('change', handleBreakpoint);\n } else {\n (mediaQuery as MediaQueryList & {\n addListener?: (listener: (this: MediaQueryList, ev: MediaQueryListEvent) => void) => void;\n }).addListener?.(handleBreakpoint);\n }\n handleBreakpoint();\n\n let widgetCounter = 4;\n\n const buttons = elementArg.querySelectorAll('dees-button');\n buttons.forEach(button => {\n const text = button.textContent?.trim();\n\n switch (text) {\n case 'Toggle Animation':\n button.addEventListener('click', () => {\n grid.enableAnimation = !grid.enableAnimation;\n });\n break;\n case 'Toggle Grid Lines':\n button.addEventListener('click', () => {\n grid.showGridLines = !grid.showGridLines;\n });\n break;\n case 'Add Widget':\n button.addEventListener('click', () => {\n const newWidget = {\n id: `widget${widgetCounter++}`,\n x: 0,\n y: 0,\n w: 3,\n h: 2,\n autoPosition: true,\n title: `Widget ${widgetCounter - 1}`,\n icon: 'lucide:package',\n content: html`\n
        \n
        New widget content
        \n
        ${Math.floor(\n Math.random() * 1000,\n )}
        \n
        \n `,\n };\n grid.addWidget(newWidget, true);\n });\n break;\n case 'Compact Grid':\n button.addEventListener('click', () => {\n grid.compact();\n });\n break;\n case 'Toggle Edit Mode':\n button.addEventListener('click', () => {\n grid.editable = !grid.editable;\n button.textContent = grid.editable ? 'Lock Grid' : 'Unlock Grid';\n });\n break;\n case 'Reset Layout':\n button.addEventListener('click', () => {\n grid.applyBreakpointLayout(grid.activeBreakpoint);\n });\n break;\n default:\n break;\n }\n });\n\n // Enhanced logging for reflow events\n let lastPlaceholderPosition = null;\n let moveEventCounter = 0;\n\n // Helper function to log grid state\n const logGridState = (eventName: string, details?: any) => {\n const layout = grid.getLayout();\n console.group(`\uD83D\uDD04 ${eventName} [Event #${++moveEventCounter}]`);\n console.log('Timestamp:', new Date().toISOString());\n console.log('Grid Configuration:', {\n columns: grid.columns,\n cellHeight: grid.cellHeight,\n margin: grid.margin,\n editable: grid.editable,\n activeBreakpoint: grid.activeBreakpoint\n });\n console.log('Current Layout:', layout);\n console.log('Widget Count:', layout.length);\n console.log('Grid Bounds:', {\n totalWidgets: grid.widgets.length,\n maxY: Math.max(...layout.map(w => w.y + w.h)),\n occupied: layout.map(w => `${w.id}: (${w.x},${w.y}) ${w.w}x${w.h}`).join(', ')\n });\n if (details) {\n console.log('Event Details:', details);\n }\n console.groupEnd();\n };\n\n // Monitor placeholder position changes using MutationObserver\n const placeholderObserver = new MutationObserver(() => {\n const placeholder = grid.shadowRoot?.querySelector('.placeholder') as HTMLElement;\n if (placeholder) {\n const currentPosition = {\n left: placeholder.style.left,\n top: placeholder.style.top,\n width: placeholder.style.width,\n height: placeholder.style.height\n };\n\n if (JSON.stringify(currentPosition) !== JSON.stringify(lastPlaceholderPosition)) {\n console.group('\uD83D\uDCCD Placeholder Position Changed');\n console.log('Previous:', lastPlaceholderPosition);\n console.log('Current:', currentPosition);\n\n // Extract grid coordinates from style\n const gridInfo = grid.shadowRoot?.querySelector('.grid-container');\n if (gridInfo) {\n console.log('Grid Container Dimensions:', {\n width: gridInfo.clientWidth,\n height: gridInfo.clientHeight\n });\n }\n console.groupEnd();\n lastPlaceholderPosition = currentPosition;\n }\n }\n });\n\n // Start observing the shadow DOM for placeholder changes\n if (grid.shadowRoot) {\n placeholderObserver.observe(grid.shadowRoot, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style']\n });\n }\n\n // Log initial state\n logGridState('Initial Grid State');\n\n grid.addEventListener('widget-move', (e: CustomEvent) => {\n logGridState('Widget Move', {\n widget: e.detail.widget,\n displaced: e.detail.displaced,\n swappedWith: e.detail.swappedWith\n });\n });\n\n grid.addEventListener('widget-resize', (e: CustomEvent) => {\n logGridState('Widget Resize', {\n widget: e.detail.widget,\n displaced: e.detail.displaced,\n swappedWith: e.detail.swappedWith\n });\n });\n\n grid.addEventListener('widget-remove', (e: CustomEvent) => {\n logGridState('Widget Remove', {\n removedWidget: e.detail.widget\n });\n updateStatus();\n });\n\n grid.addEventListener('layout-change', () => {\n logGridState('Layout Change');\n updateStatus();\n });\n\n // Monitor during drag/resize operations using pointer events\n grid.addEventListener('pointerdown', (e: PointerEvent) => {\n const isHeader = (e.target as HTMLElement).closest('.widget-header');\n const isResizeHandle = (e.target as HTMLElement).closest('.resize-handle');\n\n if (isHeader || isResizeHandle) {\n console.group(`\uD83C\uDFAF Interaction Started: ${isHeader ? 'Drag' : 'Resize'}`);\n console.log('Target Widget:', (e.target as HTMLElement).closest('.widget')?.getAttribute('data-widget-id'));\n console.log('Pointer Position:', { x: e.clientX, y: e.clientY });\n console.groupEnd();\n\n // Track pointer move during interaction\n const handlePointerMove = (moveEvent: PointerEvent) => {\n const widget = (e.target as HTMLElement).closest('.widget');\n if (widget) {\n console.log(`\u2194\uFE0F Pointer Move:`, {\n widgetId: widget.getAttribute('data-widget-id'),\n position: { x: moveEvent.clientX, y: moveEvent.clientY },\n delta: {\n x: moveEvent.clientX - e.clientX,\n y: moveEvent.clientY - e.clientY\n }\n });\n }\n };\n\n const handlePointerUp = () => {\n console.group('\uD83C\uDFC1 Interaction Ended');\n logGridState('Final State After Interaction');\n console.groupEnd();\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp);\n };\n\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp);\n }\n });\n\n // Log when widgets are added\n const originalAddWidget = grid.addWidget.bind(grid);\n grid.addWidget = (widget: any, autoPosition?: boolean) => {\n console.group('\u2795 Adding Widget');\n console.log('New Widget:', widget);\n console.log('Auto Position:', autoPosition);\n const result = originalAddWidget(widget, autoPosition);\n logGridState('After Widget Added');\n console.groupEnd();\n return result;\n };\n\n // Log compact operations\n const originalCompact = grid.compact.bind(grid);\n grid.compact = (direction?: string) => {\n console.group('\uD83D\uDDDC\uFE0F Compacting Grid');\n console.log('Direction:', direction || 'vertical');\n logGridState('Before Compact');\n const result = originalCompact(direction);\n logGridState('After Compact');\n console.groupEnd();\n return result;\n };\n\n updateStatus();\n }}>\n \n
        \n
        \n \n Toggle Animation\n \n\n \n Toggle Grid Lines\n \n\n \n Add Widget\n Compact Grid\n Reset Layout\n \n\n \n Toggle Edit Mode\n \n
        \n\n
        \n \n
        \n\n
        \n
        Drag to reposition, resize from handles, or right-click a header to delete a tile.
        \n
        \n
        \n
        \n
        \n `;\n};\n", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const dashboardGridStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n position: relative;\n }\n\n .grid-container {\n position: relative;\n width: 100%;\n min-height: 400px;\n box-sizing: border-box;\n }\n\n .grid-widget {\n position: absolute;\n will-change: auto;\n }\n \n :host([enableanimation]) .grid-widget {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .grid-widget.dragging {\n z-index: 1000;\n transition: none !important;\n opacity: 0.8;\n cursor: grabbing;\n pointer-events: none;\n will-change: transform;\n }\n \n .grid-widget.placeholder {\n pointer-events: none;\n z-index: 1;\n }\n \n .grid-widget.placeholder .widget-content {\n background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(59, 130, 246, 0.1)')};\n border: 2px dashed ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n box-shadow: none;\n }\n\n .grid-widget.resizing {\n transition: none !important;\n }\n\n .widget-content {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n overflow: hidden;\n background: ${cssManager.bdTheme('#ffffff', '#09090b')};\n border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n border-radius: 8px;\n box-shadow: ${cssManager.bdTheme(\n '0 1px 3px rgba(0, 0, 0, 0.1)',\n '0 1px 3px rgba(0, 0, 0, 0.3)'\n )};\n transition: box-shadow 0.2s ease;\n }\n\n .grid-widget:hover .widget-content {\n box-shadow: ${cssManager.bdTheme(\n '0 4px 12px rgba(0, 0, 0, 0.15)',\n '0 4px 12px rgba(0, 0, 0, 0.4)'\n )};\n }\n\n .grid-widget.dragging .widget-content {\n box-shadow: ${cssManager.bdTheme(\n '0 16px 48px rgba(0, 0, 0, 0.25)',\n '0 16px 48px rgba(0, 0, 0, 0.6)'\n )};\n transform: scale(1.05);\n }\n\n .widget-header {\n padding: 12px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n cursor: grab;\n user-select: none;\n }\n \n .widget-header:hover {\n background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};\n }\n \n .widget-header:active {\n cursor: grabbing;\n }\n\n .widget-header.locked {\n cursor: default;\n }\n \n .widget-header.locked:hover {\n background: ${cssManager.bdTheme('#f9fafb', '#0a0a0a')};\n }\n\n .widget-header dees-icon {\n font-size: 16px;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n }\n\n .widget-body {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: auto;\n color: ${cssManager.bdTheme('#09090b', '#fafafa')};\n }\n\n .widget-body.has-header {\n top: 45px;\n }\n\n .resize-handle {\n position: absolute;\n background: transparent;\n z-index: 10;\n }\n\n .resize-handle:hover {\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n opacity: 0.3;\n }\n\n .resize-handle-e {\n cursor: ew-resize;\n width: 12px;\n right: -6px;\n top: 10%;\n height: 80%;\n }\n\n .resize-handle-s {\n cursor: ns-resize;\n height: 12px;\n width: 80%;\n bottom: -6px;\n left: 10%;\n }\n\n .resize-handle-se {\n cursor: se-resize;\n width: 20px;\n height: 20px;\n right: -2px;\n bottom: -2px;\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n \n .resize-handle-se::after {\n content: '';\n position: absolute;\n right: 4px;\n bottom: 4px;\n width: 6px;\n height: 6px;\n border-right: 2px solid ${cssManager.bdTheme('#71717a', '#71717a')};\n border-bottom: 2px solid ${cssManager.bdTheme('#71717a', '#71717a')};\n }\n\n .grid-widget:hover .resize-handle-se {\n opacity: 0.7;\n }\n\n .resize-handle-se:hover {\n opacity: 1 !important;\n }\n \n .resize-handle-se:hover::after {\n border-color: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n }\n\n .grid-placeholder {\n position: absolute;\n background: ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n opacity: 0.1;\n border-radius: 8px;\n border: 2px dashed ${cssManager.bdTheme('#3b82f6', '#3b82f6')};\n transition: all 0.2s ease;\n pointer-events: none;\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 400px;\n color: ${cssManager.bdTheme('#71717a', '#71717a')};\n text-align: center;\n padding: 32px;\n }\n\n .empty-state dees-icon {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.5;\n }\n \n .grid-lines {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: -1;\n }\n \n .grid-line-vertical {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 1px;\n background: ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n opacity: 0.3;\n }\n \n .grid-line-horizontal {\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background: ${cssManager.bdTheme('#e5e7eb', '#27272a')};\n opacity: 0.3;\n }\n `,\n];\n", "import type {\n DashboardResolvedMargins,\n DashboardMargin,\n DashboardWidget,\n DashboardLayoutItem,\n GridCellMetrics,\n LayoutDirection,\n} from './types.js';\n\nexport const DEFAULT_MARGIN = 10;\n\nexport const resolveMargins = (margin: DashboardMargin): DashboardResolvedMargins => {\n if (typeof margin === 'number') {\n return {\n horizontal: margin,\n vertical: margin,\n top: margin,\n right: margin,\n bottom: margin,\n left: margin,\n };\n }\n\n const resolved = {\n top: margin.top ?? DEFAULT_MARGIN,\n right: margin.right ?? DEFAULT_MARGIN,\n bottom: margin.bottom ?? DEFAULT_MARGIN,\n left: margin.left ?? DEFAULT_MARGIN,\n };\n\n return {\n ...resolved,\n horizontal: (resolved.left + resolved.right) / 2,\n vertical: (resolved.top + resolved.bottom) / 2,\n };\n};\n\nexport const calculateCellMetrics = (\n containerWidth: number,\n columns: number,\n margins: DashboardResolvedMargins,\n cellHeight: number,\n cellHeightUnit: string,\n): GridCellMetrics => {\n const totalMarginWidth = margins.horizontal * (columns + 1);\n const availableWidth = Math.max(containerWidth - totalMarginWidth, 0);\n const cellWidthPx = columns > 0 ? availableWidth / columns : 0;\n const cellHeightPx = cellHeightUnit === 'auto' ? cellWidthPx : cellHeight;\n\n return {\n containerWidth,\n cellWidthPx,\n marginHorizontalPx: margins.horizontal,\n cellHeightPx,\n marginVerticalPx: margins.vertical,\n };\n};\n\nexport const calculateGridHeight = (\n widgets: DashboardWidget[],\n margins: DashboardResolvedMargins,\n cellHeight: number,\n): number => {\n if (widgets.length === 0) return 0;\n const maxY = Math.max(...widgets.map(widget => widget.y + widget.h), 0);\n return maxY * cellHeight + (maxY + 1) * margins.vertical;\n};\n\nconst overlaps = (\n widget: DashboardWidget,\n x: number,\n y: number,\n w: number,\n h: number,\n) => x < widget.x + widget.w && x + w > widget.x && y < widget.y + widget.h && y + h > widget.y;\n\nexport const collectCollisions = (\n widgets: DashboardWidget[],\n target: DashboardWidget,\n nextX: number,\n nextY: number,\n nextW: number = target.w,\n nextH: number = target.h,\n): DashboardWidget[] => {\n return widgets.filter(widget => {\n if (widget.id === target.id) return false;\n return overlaps(widget, nextX, nextY, nextW, nextH);\n });\n};\n\nexport const checkCollision = (\n widgets: DashboardWidget[],\n target: DashboardWidget,\n nextX: number,\n nextY: number,\n): boolean => collectCollisions(widgets, target, nextX, nextY).length > 0;\n\nexport const cloneWidget = (widget: DashboardWidget): DashboardWidget => ({ ...widget });\n\nexport const cloneWidgets = (widgets: DashboardWidget[]): DashboardWidget[] => widgets.map(cloneWidget);\n\nexport const findAvailablePosition = (\n widgets: DashboardWidget[],\n width: number,\n height: number,\n columns: number,\n): { x: number; y: number } => {\n for (let y = 0; y < 200; y++) {\n for (let x = 0; x <= columns - width; x++) {\n const isFree = !widgets.some(widget => overlaps(widget, x, y, width, height));\n if (isFree) {\n return { x, y };\n }\n }\n }\n\n const maxY = widgets.reduce((acc, widget) => Math.max(acc, widget.y + widget.h), 0);\n return { x: 0, y: maxY };\n};\n\nexport interface PlacementResult {\n widgets: DashboardWidget[];\n movedWidgets: string[];\n swappedWith?: string;\n}\n\nexport const resolveWidgetPlacement = (\n widgets: DashboardWidget[],\n widgetId: string,\n next: { x: number; y: number; w?: number; h?: number },\n columns: number,\n previousPosition?: DashboardLayoutItem,\n): PlacementResult | null => {\n const sourceWidgets = cloneWidgets(widgets);\n const moving = sourceWidgets.find(widget => widget.id === widgetId);\n const original = widgets.find(widget => widget.id === widgetId);\n if (!moving || !original) {\n return null;\n }\n\n const target = {\n x: next.x,\n y: next.y,\n w: next.w ?? moving.w,\n h: next.h ?? moving.h,\n };\n\n moving.x = target.x;\n moving.y = target.y;\n moving.w = target.w;\n moving.h = target.h;\n\n const collisions = collectCollisions(sourceWidgets, moving, target.x, target.y, target.w, target.h);\n\n if (collisions.length === 0) {\n return { widgets: sourceWidgets, movedWidgets: [moving.id] };\n }\n\n if (collisions.length === 1) {\n const other = collisions[0];\n if (!other.locked && !other.noMove && other.w === moving.w && other.h === moving.h) {\n const otherClone = sourceWidgets.find(widget => widget.id === other.id);\n if (otherClone) {\n // Use the original position of the moving widget for a clean swap\n // This prevents the \"snapping together\" issue where both widgets end up at the same position\n const swapTarget = original;\n const previousOtherPosition = { x: otherClone.x, y: otherClone.y };\n otherClone.x = swapTarget.x;\n otherClone.y = swapTarget.y;\n\n const swapValid =\n collectCollisions(sourceWidgets, moving, moving.x, moving.y, moving.w, moving.h).length === 0 &&\n collectCollisions(sourceWidgets, otherClone, otherClone.x, otherClone.y, otherClone.w, otherClone.h).length === 0;\n\n if (swapValid) {\n return { widgets: sourceWidgets, movedWidgets: [moving.id, otherClone.id], swappedWith: otherClone.id };\n }\n\n otherClone.x = previousOtherPosition.x;\n otherClone.y = previousOtherPosition.y;\n }\n }\n }\n\n // attempt displacement cascade\n const movedIds = new Set([moving.id]);\n for (const offending of collisions) {\n if (offending.locked || offending.noMove) {\n return null;\n }\n const clone = sourceWidgets.find(widget => widget.id === offending.id);\n if (!clone) continue;\n const remaining = sourceWidgets.filter(widget => widget.id !== offending.id);\n const position = findAvailablePosition(remaining, clone.w, clone.h, columns);\n clone.x = position.x;\n clone.y = position.y;\n movedIds.add(clone.id);\n }\n\n // verify no overlaps remain\n const verify = collectCollisions(sourceWidgets, moving, moving.x, moving.y, moving.w, moving.h);\n if (verify.length > 0) {\n return null;\n }\n\n return { widgets: sourceWidgets, movedWidgets: Array.from(movedIds) };\n};\n\nexport const compactLayout = (\n widgets: DashboardWidget[],\n direction: LayoutDirection = 'vertical',\n) => {\n const sorted = [...widgets].sort((a, b) => {\n if (direction === 'vertical') {\n if (a.y !== b.y) return a.y - b.y;\n return a.x - b.x;\n }\n\n if (a.x !== b.x) return a.x - b.x;\n return a.y - b.y;\n });\n\n for (const widget of sorted) {\n if (widget.locked || widget.noMove) continue;\n\n if (direction === 'vertical') {\n while (widget.y > 0 && !checkCollision(widgets, widget, widget.x, widget.y - 1)) {\n widget.y -= 1;\n }\n } else {\n while (widget.x > 0 && !checkCollision(widgets, widget, widget.x - 1, widget.y)) {\n widget.x -= 1;\n }\n }\n }\n};\n\nexport const applyLayout = (\n widgets: DashboardWidget[],\n layout: DashboardLayoutItem[],\n): DashboardWidget[] => {\n return widgets.map(widget => {\n const layoutItem = layout.find(item => item.id === widget.id);\n return layoutItem ? { ...widget, ...layoutItem } : widget;\n });\n};\n", "import type { DashboardWidget, GridCellMetrics } from './types.js';\n\nexport interface PointerPosition {\n clientX: number;\n clientY: number;\n}\n\nexport interface DragComputationArgs {\n pointer: PointerPosition;\n containerRect: DOMRect;\n metrics: GridCellMetrics;\n columns: number;\n widget: DashboardWidget;\n rtl: boolean;\n dragOffsetX?: number;\n dragOffsetY?: number;\n}\n\nexport const computeGridCoordinates = ({\n pointer,\n containerRect,\n metrics,\n columns,\n widget,\n rtl,\n dragOffsetX = 0,\n dragOffsetY = 0,\n}: DragComputationArgs): { x: number; y: number } => {\n const relativeX = pointer.clientX - containerRect.left - dragOffsetX;\n const relativeY = pointer.clientY - containerRect.top - dragOffsetY;\n\n const marginX = metrics.marginHorizontalPx;\n const marginY = metrics.marginVerticalPx;\n const cellWidth = metrics.cellWidthPx;\n const cellHeight = metrics.cellHeightPx;\n\n const clamp = (value: number, min: number, max: number) => Math.max(min, Math.min(max, value));\n\n const adjustedX = clamp(relativeX - marginX, 0, containerRect.width - marginX);\n const adjustedY = clamp(relativeY - marginY, 0, Number.POSITIVE_INFINITY);\n\n const cellPlusMarginX = cellWidth + marginX;\n const cellPlusMarginY = cellHeight + marginY;\n\n let gridX = Math.round(adjustedX / cellPlusMarginX);\n if (rtl) {\n gridX = columns - widget.w - gridX;\n }\n gridX = clamp(gridX, 0, columns - widget.w);\n\n const gridY = clamp(Math.round(adjustedY / cellPlusMarginY), 0, Number.MAX_SAFE_INTEGER);\n\n return { x: gridX, y: gridY };\n};\n\nexport interface ResizeComputationArgs {\n pointer: PointerPosition;\n containerRect: DOMRect;\n metrics: GridCellMetrics;\n startWidth: number;\n startHeight: number;\n startPointer: PointerPosition;\n handler: 'e' | 's' | 'se';\n widget: DashboardWidget;\n columns: number;\n}\n\nexport const computeResizeDimensions = ({\n pointer,\n containerRect,\n metrics,\n startWidth,\n startHeight,\n startPointer,\n handler,\n widget,\n columns,\n}: ResizeComputationArgs): { width: number; height: number } => {\n const deltaX = pointer.clientX - startPointer.clientX;\n const deltaY = pointer.clientY - startPointer.clientY;\n\n let width = startWidth;\n let height = startHeight;\n\n const cellPlusMarginX = metrics.cellWidthPx + metrics.marginHorizontalPx;\n const cellPlusMarginY = metrics.cellHeightPx + metrics.marginVerticalPx;\n\n if (handler.includes('e')) {\n const deltaCols = Math.round(deltaX / cellPlusMarginX);\n width = startWidth + deltaCols;\n }\n\n if (handler.includes('s')) {\n const deltaRows = Math.round(deltaY / cellPlusMarginY);\n height = startHeight + deltaRows;\n }\n\n const clampedWidth = Math.max(widget.minW || 1, Math.min(width, widget.maxW || columns - widget.x));\n const clampedHeight = Math.max(widget.minH || 1, Math.min(height, widget.maxH || Number.MAX_SAFE_INTEGER));\n\n return {\n width: clampedWidth,\n height: clampedHeight,\n };\n};\n", "import type { DashboardWidget } from './types.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport type { DeesDashboardgrid } from './dees-dashboardgrid.js';\nimport * as plugins from '../../00plugins.js';\n\nexport interface WidgetContextMenuOptions {\n widget: DashboardWidget;\n host: DeesDashboardgrid;\n event: MouseEvent;\n}\n\nexport const openWidgetContextMenu = ({\n widget,\n host,\n event,\n}: WidgetContextMenuOptions) => {\n const items: (plugins.tsclass.website.IMenuItem | { divider: true })[] = [\n {\n name: 'Delete tile',\n iconName: 'lucide:trash2' as any,\n action: async () => {\n host.removeWidget(widget.id);\n return null;\n },\n },\n ];\n\n DeesContextmenu.openContextMenuWithOptions(event, items as any);\n};\n", "import {\n DeesElement,\n customElement,\n property,\n state,\n html,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { demoFunc } from './dees-dashboardgrid.demo.js';\nimport { dashboardGridStyles } from './styles.js';\nimport {\n resolveMargins,\n calculateCellMetrics,\n calculateGridHeight,\n findAvailablePosition,\n compactLayout,\n applyLayout,\n resolveWidgetPlacement,\n type PlacementResult,\n} from './layout.js';\nimport {\n computeGridCoordinates,\n computeResizeDimensions,\n type PointerPosition,\n} from './interaction.js';\nimport { openWidgetContextMenu } from './contextmenu.js';\nimport type {\n DashboardWidget,\n DashboardMargin,\n DashboardResolvedMargins,\n GridCellMetrics,\n DashboardLayoutItem,\n LayoutDirection,\n CellHeightUnit,\n} from './types.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-dashboardgrid': DeesDashboardgrid;\n }\n}\n\ntype DragState = {\n widgetId: string;\n pointerId: number;\n offsetX: number;\n offsetY: number;\n start: DashboardLayoutItem;\n previousPosition: DashboardLayoutItem;\n currentPointer: PointerPosition;\n lastPlacement: PlacementResult | null;\n};\n\ntype ResizeState = {\n widgetId: string;\n pointerId: number;\n handler: 'e' | 's' | 'se';\n startPointer: PointerPosition;\n start: DashboardLayoutItem;\n startWidth: number;\n startHeight: number;\n lastPlacement: PlacementResult | null;\n};\n\n@customElement('dees-dashboardgrid')\nexport class DeesDashboardgrid extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n public static styles = dashboardGridStyles;\n\n @property({ type: Array })\n accessor widgets: DashboardWidget[] = [];\n\n @property({ type: Number })\n accessor cellHeight: number = 80;\n\n @property({ type: Object })\n accessor margin: DashboardMargin = 10;\n\n @property({ type: Number })\n accessor columns: number = 12;\n\n @property({ type: Boolean })\n accessor editable: boolean = true;\n\n @property({ type: Boolean, reflect: true })\n accessor enableAnimation: boolean = true;\n\n @property({ type: String })\n accessor cellHeightUnit: CellHeightUnit = 'px';\n\n @property({ type: Boolean })\n accessor rtl: boolean = false;\n\n @property({ type: Boolean })\n accessor showGridLines: boolean = false;\n\n @property({ attribute: false })\n accessor layouts: Record | undefined = undefined;\n\n @property({ type: String })\n accessor activeBreakpoint: string = 'base';\n\n @state()\n accessor placeholderPosition: DashboardLayoutItem | null = null;\n\n @state()\n accessor metrics: GridCellMetrics | null = null;\n\n @state()\n accessor resolvedMargins: DashboardResolvedMargins | null = null;\n\n @state()\n accessor previewWidgets: DashboardWidget[] | null = null;\n\n private containerBounds: DOMRect | null = null;\n private dragState: DragState | null = null;\n private resizeState: ResizeState | null = null;\n private resizeObserver?: ResizeObserver;\n private interactionActive = false;\n\n public override async connectedCallback(): Promise {\n await super.connectedCallback();\n this.computeMetrics();\n this.observeResize();\n }\n\n public override async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.disconnectResizeObserver();\n this.releasePointerEvents();\n }\n\n protected updated(changed: Map): void {\n if (\n changed.has('margin') ||\n changed.has('columns') ||\n changed.has('cellHeight') ||\n changed.has('cellHeightUnit')\n ) {\n this.computeMetrics();\n }\n\n if (changed.has('widgets') && !this.interactionActive) {\n this.notifyLayoutChange();\n }\n }\n\n public render(): TemplateResult {\n const baseWidgets = this.widgets;\n if (baseWidgets.length === 0) {\n return html`\n
        \n \n
        No widgets configured
        \n
        Add widgets to populate the dashboard
        \n
        \n `;\n }\n\n const metrics = this.ensureMetrics();\n const margins = this.resolvedMargins ?? resolveMargins(this.margin);\n const cellHeight = metrics.cellHeightPx;\n const layoutForHeight = this.previewWidgets ?? this.widgets;\n const gridHeight = calculateGridHeight(layoutForHeight, margins, cellHeight);\n const previewMap = this.previewWidgets ? new Map(this.previewWidgets.map(widget => [widget.id, widget])) : null;\n\n return html`\n
        \n ${this.showGridLines ? this.renderGridLines(metrics, gridHeight) : null}\n ${baseWidgets.map(widget => this.renderWidget(widget, metrics, margins, previewMap))}\n ${this.placeholderPosition ? this.renderPlaceholder(metrics, margins) : null}\n
        \n `;\n }\n\n private renderGridLines(metrics: GridCellMetrics, gridHeight: number): TemplateResult {\n const vertical: TemplateResult[] = [];\n const horizontal: TemplateResult[] = [];\n const cellPlusMarginX = metrics.cellWidthPx + metrics.marginHorizontalPx;\n const cellPlusMarginY = metrics.cellHeightPx + metrics.marginVerticalPx;\n\n for (let i = 0; i <= this.columns; i++) {\n const leftPx = i * cellPlusMarginX + metrics.marginHorizontalPx;\n const leftPercent = this.pxToPercent(leftPx, metrics.containerWidth);\n vertical.push(html`
        `);\n }\n\n const rows = Math.ceil(gridHeight / cellPlusMarginY);\n for (let row = 0; row <= rows; row++) {\n const top = row * cellPlusMarginY;\n horizontal.push(html`
        `);\n }\n\n return html`\n
        \n ${vertical}\n ${horizontal}\n
        \n `;\n }\n\n private renderWidget(\n widget: DashboardWidget,\n metrics: GridCellMetrics,\n margins: DashboardResolvedMargins,\n previewMap: Map | null,\n ): TemplateResult {\n const isDragging = this.dragState?.widgetId === widget.id;\n const isResizing = this.resizeState?.widgetId === widget.id;\n const isLocked = widget.locked || !this.editable;\n const previewWidget = previewMap?.get(widget.id) ?? null;\n const layoutForRender = isDragging ? widget : previewWidget ?? widget;\n const rect = this.computeWidgetRect(layoutForRender, metrics, margins);\n\n const sideProperty = this.rtl ? 'right' : 'left';\n const sideValue = this.pxToPercent(rect.left, metrics.containerWidth);\n const widthPercent = this.pxToPercent(rect.width, metrics.containerWidth);\n\n let transform = '';\n if (isDragging && this.dragState?.currentPointer) {\n const pointer = this.dragState.currentPointer;\n const bounds = this.containerBounds ?? this.getBoundingClientRect();\n const translateX = pointer.clientX - bounds.left - this.dragState.offsetX - rect.left;\n const translateY = pointer.clientY - bounds.top - this.dragState.offsetY - rect.top;\n transform = `transform: translate(${translateX}px, ${translateY}px);`;\n }\n\n return html`\n \n
        \n ${widget.title\n ? html`\n this.startDrag(evt, widget)\n : null}\n @contextmenu=${(evt: MouseEvent) => this.handleWidgetContextMenu(evt, widget)}\n tabindex=${!isLocked && !widget.noMove ? 0 : -1}\n @keydown=${(evt: KeyboardEvent) => this.handleHeaderKeydown(evt, widget)}\n >\n ${widget.icon ? html`` : null}\n ${widget.title}\n
        \n `\n : null}\n
        \n ${widget.content}\n
        \n ${!isLocked && !widget.noResize\n ? html`\n this.startResize(evt, widget, 'e')}\n >\n this.startResize(evt, widget, 's')}\n >\n this.startResize(evt, widget, 'se')}\n >\n `\n : null}\n \n \n `;\n }\n\n private renderPlaceholder(\n metrics: GridCellMetrics,\n margins: DashboardResolvedMargins,\n ): TemplateResult {\n if (!this.placeholderPosition) {\n return html``;\n }\n\n const rect = this.computeWidgetRect(this.placeholderPosition, metrics, margins);\n const sideProperty = this.rtl ? 'right' : 'left';\n const sideValue = this.pxToPercent(rect.left, metrics.containerWidth);\n const widthPercent = this.pxToPercent(rect.width, metrics.containerWidth);\n\n return html`\n \n
        \n \n `;\n }\n\n private startDrag(event: PointerEvent, widget: DashboardWidget): void {\n if (!this.editable || widget.noMove || widget.locked) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const widgetElement = (event.currentTarget as HTMLElement).closest('.grid-widget') as HTMLElement | null;\n if (!widgetElement) {\n return;\n }\n\n const widgetRect = widgetElement.getBoundingClientRect();\n this.containerBounds = this.getBoundingClientRect();\n this.ensureMetrics();\n\n this.dragState = {\n widgetId: widget.id,\n pointerId: event.pointerId,\n offsetX: event.clientX - widgetRect.left,\n offsetY: event.clientY - widgetRect.top,\n start: { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h },\n previousPosition: { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h },\n currentPointer: { clientX: event.clientX, clientY: event.clientY },\n lastPlacement: null,\n };\n\n this.interactionActive = true;\n (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n document.addEventListener('pointermove', this.handleDragMove);\n document.addEventListener('pointerup', this.handleDragEnd);\n\n this.placeholderPosition = { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h };\n }\n\n private handleDragMove = (event: PointerEvent): void => {\n if (!this.dragState) return;\n const metrics = this.ensureMetrics();\n const activeWidgets = this.widgets;\n const widget = activeWidgets.find(item => item.id === this.dragState!.widgetId);\n if (!widget) return;\n\n event.preventDefault();\n\n const previousPosition = this.dragState.previousPosition;\n\n const coords = computeGridCoordinates({\n pointer: { clientX: event.clientX, clientY: event.clientY },\n containerRect: this.containerBounds ?? this.getBoundingClientRect(),\n metrics,\n columns: this.columns,\n widget,\n rtl: this.rtl,\n dragOffsetX: this.dragState.offsetX,\n dragOffsetY: this.dragState.offsetY,\n });\n\n const placement = resolveWidgetPlacement(\n activeWidgets,\n widget.id,\n { x: coords.x, y: coords.y },\n this.columns,\n previousPosition,\n );\n if (placement) {\n const updatedWidget = placement.widgets.find(item => item.id === widget.id);\n this.dragState = {\n ...this.dragState,\n currentPointer: { clientX: event.clientX, clientY: event.clientY },\n lastPlacement: placement,\n previousPosition: updatedWidget\n ? { id: updatedWidget.id, x: updatedWidget.x, y: updatedWidget.y, w: updatedWidget.w, h: updatedWidget.h }\n : { id: widget.id, x: coords.x, y: coords.y, w: widget.w, h: widget.h },\n };\n this.previewWidgets = placement.widgets;\n const previewWidget = placement.widgets.find(item => item.id === widget.id);\n if (previewWidget) {\n this.placeholderPosition = {\n id: previewWidget.id,\n x: previewWidget.x,\n y: previewWidget.y,\n w: previewWidget.w,\n h: previewWidget.h,\n };\n } else {\n this.placeholderPosition = { id: widget.id, x: coords.x, y: coords.y, w: widget.w, h: widget.h };\n }\n } else {\n this.previewWidgets = null;\n this.placeholderPosition = null;\n }\n\n this.requestUpdate();\n };\n\n private handleDragEnd = (event: PointerEvent): void => {\n const dragState = this.dragState;\n if (!dragState || event.pointerId !== dragState.pointerId) {\n return;\n }\n\n const layoutSource = this.widgets;\n this.previewWidgets = null;\n\n // Always validate the final position, don't rely on lastPlacement from drag\n const target = this.placeholderPosition ?? dragState.start;\n const placement = resolveWidgetPlacement(\n layoutSource,\n dragState.widgetId,\n { x: target.x, y: target.y },\n this.columns,\n dragState.previousPosition,\n );\n\n if (placement) {\n // Verify that the placement doesn't result in overlapping widgets\n const finalWidget = placement.widgets.find(w => w.id === dragState.widgetId);\n if (finalWidget) {\n const hasOverlap = placement.widgets.some(w => {\n if (w.id === dragState.widgetId) return false;\n return (\n finalWidget.x < w.x + w.w &&\n finalWidget.x + finalWidget.w > w.x &&\n finalWidget.y < w.y + w.h &&\n finalWidget.y + finalWidget.h > w.y\n );\n });\n\n if (!hasOverlap) {\n this.commitPlacement(placement, dragState.widgetId, 'widget-move');\n } else {\n // Return to start position if overlap detected\n this.widgets = this.widgets.map(widget =>\n widget.id === dragState.widgetId ? { ...widget, x: dragState.start.x, y: dragState.start.y } : widget,\n );\n }\n }\n } else {\n // Return to start position if no valid placement\n this.widgets = this.widgets.map(widget =>\n widget.id === dragState.widgetId ? { ...widget, x: dragState.start.x, y: dragState.start.y } : widget,\n );\n }\n\n this.placeholderPosition = null;\n this.dragState = null;\n this.interactionActive = false;\n this.releasePointerEvents();\n };\n\n private startResize(event: PointerEvent, widget: DashboardWidget, handler: 'e' | 's' | 'se'): void {\n if (!this.editable || widget.noResize || widget.locked) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n this.ensureMetrics();\n\n this.resizeState = {\n widgetId: widget.id,\n pointerId: event.pointerId,\n handler,\n startPointer: { clientX: event.clientX, clientY: event.clientY },\n start: { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h },\n startWidth: widget.w,\n startHeight: widget.h,\n lastPlacement: null,\n };\n\n this.interactionActive = true;\n (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n document.addEventListener('pointermove', this.handleResizeMove);\n document.addEventListener('pointerup', this.handleResizeEnd);\n\n this.placeholderPosition = { id: widget.id, x: widget.x, y: widget.y, w: widget.w, h: widget.h };\n }\n\n private handleResizeMove = (event: PointerEvent): void => {\n if (!this.resizeState) return;\n const metrics = this.ensureMetrics();\n const activeWidgets = this.widgets;\n const widget = activeWidgets.find(item => item.id === this.resizeState!.widgetId);\n if (!widget) return;\n\n event.preventDefault();\n\n const nextSize = computeResizeDimensions({\n pointer: { clientX: event.clientX, clientY: event.clientY },\n containerRect: this.containerBounds ?? this.getBoundingClientRect(),\n metrics,\n startWidth: this.resizeState.startWidth,\n startHeight: this.resizeState.startHeight,\n startPointer: this.resizeState.startPointer,\n handler: this.resizeState.handler,\n widget,\n columns: this.columns,\n });\n\n const placement = resolveWidgetPlacement(\n activeWidgets,\n widget.id,\n { x: widget.x, y: widget.y, w: nextSize.width, h: nextSize.height },\n this.columns,\n this.resizeState.start,\n );\n\n if (placement) {\n this.resizeState = { ...this.resizeState, lastPlacement: placement };\n this.previewWidgets = placement.widgets;\n const previewWidget = placement.widgets.find(item => item.id === widget.id);\n if (previewWidget) {\n this.placeholderPosition = {\n id: previewWidget.id,\n x: previewWidget.x,\n y: previewWidget.y,\n w: previewWidget.w,\n h: previewWidget.h,\n };\n } else {\n this.placeholderPosition = {\n id: widget.id,\n x: widget.x,\n y: widget.y,\n w: nextSize.width,\n h: nextSize.height,\n };\n }\n } else {\n this.previewWidgets = null;\n this.placeholderPosition = null;\n }\n\n this.requestUpdate();\n };\n\n private handleResizeEnd = (event: PointerEvent): void => {\n const resizeState = this.resizeState;\n if (!resizeState || event.pointerId !== resizeState.pointerId) {\n return;\n }\n\n const layoutSource = this.widgets;\n this.previewWidgets = null;\n const placement =\n resizeState.lastPlacement ??\n resolveWidgetPlacement(\n layoutSource,\n resizeState.widgetId,\n {\n x: this.placeholderPosition?.x ?? resizeState.start.x,\n y: this.placeholderPosition?.y ?? resizeState.start.y,\n w: this.placeholderPosition?.w ?? resizeState.start.w,\n h: this.placeholderPosition?.h ?? resizeState.start.h,\n },\n this.columns,\n resizeState.start,\n );\n\n if (placement) {\n this.commitPlacement(placement, resizeState.widgetId, 'widget-resize');\n } else {\n this.widgets = this.widgets.map(widget =>\n widget.id === resizeState.widgetId ? { ...widget, w: resizeState.start.w, h: resizeState.start.h } : widget,\n );\n }\n\n this.placeholderPosition = null;\n this.resizeState = null;\n this.interactionActive = false;\n this.releasePointerEvents();\n };\n\n private handleHeaderKeydown(event: KeyboardEvent, widget: DashboardWidget): void {\n if (!this.editable || widget.noMove || widget.locked) {\n return;\n }\n\n const key = event.key;\n const isResize = event.shiftKey;\n let placement: PlacementResult | null = null;\n\n if (isResize && ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(key)) {\n event.preventDefault();\n const delta = key === 'ArrowRight' || key === 'ArrowDown' ? 1 : -1;\n\n if (key === 'ArrowLeft' || key === 'ArrowRight') {\n const maxWidth = widget.maxW ?? this.columns - widget.x;\n const nextWidth = Math.max(widget.minW ?? 1, Math.min(maxWidth, widget.w + delta));\n placement = resolveWidgetPlacement(\n this.widgets,\n widget.id,\n { x: widget.x, y: widget.y, w: nextWidth, h: widget.h },\n this.columns,\n );\n } else {\n const maxHeight = widget.maxH ?? Number.POSITIVE_INFINITY;\n const nextHeight = Math.max(widget.minH ?? 1, Math.min(maxHeight, widget.h + delta));\n placement = resolveWidgetPlacement(\n this.widgets,\n widget.id,\n { x: widget.x, y: widget.y, w: widget.w, h: nextHeight },\n this.columns,\n );\n }\n\n if (placement) {\n this.commitPlacement(placement, widget.id, 'widget-resize');\n }\n return;\n }\n\n const moveMap: Record = {\n ArrowLeft: { dx: -1, dy: 0 },\n ArrowRight: { dx: 1, dy: 0 },\n ArrowUp: { dx: 0, dy: -1 },\n ArrowDown: { dx: 0, dy: 1 },\n };\n\n const delta = moveMap[key];\n if (!delta) {\n return;\n }\n\n event.preventDefault();\n const targetX = Math.max(0, Math.min(this.columns - widget.w, widget.x + delta.dx));\n const targetY = Math.max(0, widget.y + delta.dy);\n\n placement = resolveWidgetPlacement(this.widgets, widget.id, { x: targetX, y: targetY }, this.columns);\n if (placement) {\n this.commitPlacement(placement, widget.id, 'widget-move');\n }\n }\n\n private handleWidgetContextMenu(event: MouseEvent, widget: DashboardWidget): void {\n event.preventDefault();\n event.stopPropagation();\n openWidgetContextMenu({ widget, host: this, event });\n }\n\n private commitPlacement(result: PlacementResult, widgetId: string, type: 'widget-move' | 'widget-resize'): void {\n this.previewWidgets = null;\n this.widgets = result.widgets;\n const subject = this.widgets.find(item => item.id === widgetId);\n if (subject) {\n this.dispatchEvent(\n new CustomEvent(type, {\n detail: {\n widget: subject,\n displaced: result.movedWidgets.filter(id => id !== widgetId),\n swappedWith: result.swappedWith,\n },\n bubbles: true,\n composed: true,\n }),\n );\n }\n }\n\n public removeWidget(widgetId: string): void {\n const target = this.widgets.find(widget => widget.id === widgetId);\n if (!target) return;\n this.widgets = this.widgets.filter(widget => widget.id !== widgetId);\n this.dispatchEvent(\n new CustomEvent('widget-remove', {\n detail: { widget: target },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n public updateWidget(widgetId: string, updates: Partial): void {\n this.widgets = this.widgets.map(widget => (widget.id === widgetId ? { ...widget, ...updates } : widget));\n }\n\n public getLayout(): DashboardLayoutItem[] {\n return this.widgets.map(({ id, x, y, w, h }) => ({ id, x, y, w, h }));\n }\n\n public setLayout(layout: DashboardLayoutItem[]): void {\n this.widgets = applyLayout(this.widgets, layout);\n }\n\n public lockGrid(): void {\n this.editable = false;\n }\n\n public unlockGrid(): void {\n this.editable = true;\n }\n\n public addWidget(widget: DashboardWidget, autoPosition = false): void {\n const nextWidget = { ...widget };\n if (autoPosition || nextWidget.autoPosition) {\n const position = findAvailablePosition(this.widgets, nextWidget.w, nextWidget.h, this.columns);\n nextWidget.x = position.x;\n nextWidget.y = position.y;\n }\n\n this.widgets = [...this.widgets, nextWidget];\n }\n\n public compact(direction: LayoutDirection = 'vertical'): void {\n const nextWidgets = this.widgets.map(widget => ({ ...widget }));\n compactLayout(nextWidgets, direction);\n this.widgets = nextWidgets;\n }\n\n public applyBreakpointLayout(breakpoint: string): void {\n this.activeBreakpoint = breakpoint;\n const layout = this.layouts?.[breakpoint];\n if (layout) {\n this.setLayout(layout);\n }\n }\n\n public notifyLayoutChange(): void {\n this.dispatchEvent(\n new CustomEvent('layout-change', {\n detail: { layout: this.getLayout() },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private ensureMetrics(): GridCellMetrics {\n if (!this.metrics) {\n this.computeMetrics();\n }\n return this.metrics!;\n }\n\n private computeMetrics(): void {\n if (!this.isConnected) return;\n const bounds = this.getBoundingClientRect();\n this.containerBounds = bounds;\n const margins = resolveMargins(this.margin);\n this.resolvedMargins = margins;\n this.metrics = calculateCellMetrics(bounds.width, this.columns, margins, this.cellHeight, this.cellHeightUnit);\n }\n\n private observeResize(): void {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(() => {\n this.computeMetrics();\n });\n this.resizeObserver.observe(this);\n }\n\n private disconnectResizeObserver(): void {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n\n private releasePointerEvents(): void {\n document.removeEventListener('pointermove', this.handleDragMove);\n document.removeEventListener('pointerup', this.handleDragEnd);\n document.removeEventListener('pointermove', this.handleResizeMove);\n document.removeEventListener('pointerup', this.handleResizeEnd);\n }\n\n private pxToPercent(value: number, container: number): number {\n if (!container) return 0;\n return Number(((value / container) * 100).toFixed(4));\n }\n\n private computeWidgetRect(\n widget: Pick,\n metrics: GridCellMetrics,\n margins: DashboardResolvedMargins,\n ) {\n const cellWidth = metrics.cellWidthPx;\n const cellHeight = metrics.cellHeightPx;\n const left = widget.x * (cellWidth + margins.horizontal) + margins.horizontal;\n const top = widget.y * (cellHeight + margins.vertical) + margins.vertical;\n const width = widget.w * cellWidth + Math.max(0, widget.w - 1) * margins.horizontal;\n const height = widget.h * cellHeight + Math.max(0, widget.h - 1) * margins.vertical;\n\n return { left, top, width, height };\n }\n}\n", "export * from './dees-dashboardgrid.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport function demoFunc() {\n return html`\n This is a H1 heading\n This is a H2 heading\n This is a H3 heading\n This is a H4 heading\n This is a H5 heading\n This is a H6 heading\n This is an hr heading\n This is an hr small heading\n `;\n}", "import {\n customElement,\n html,\n css,\n property,\n cssManager,\n type TemplateResult,\n DeesElement,\n type CSSResult,\n} from '@design.estate/dees-element';\n\nimport { demoFunc } from './dees-heading.demo.js';\nimport { cssCalSansFontFamily } from '../../00fonts.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-heading': DeesHeading;\n }\n}\n\n@customElement('dees-heading')\nexport class DeesHeading extends DeesElement {\n // demo\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n\n // properties\n /**\n * Heading level: 1-6 for h1-h6, or 'hr' for horizontal rule style\n */\n @property({ type: String, reflect: true })\n accessor level: '1' | '2' | '3' | '4' | '5' | '6' | 'hr' | 'hr-small' = '1';\n\n // STATIC STYLES\n public static styles: CSSResult[] = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n /* Heading styles */\n h1, h2, h3, h4, h5, h6 {\n margin: 16px 0 8px;\n font-weight: 600;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n h1 { font-size: 32px; font-family: ${cssCalSansFontFamily}; letter-spacing: 0.025em;}\n h2 { font-size: 28px; }\n h3 { font-size: 24px; }\n h4 { font-size: 20px; }\n h5 { font-size: 16px; }\n h6 { font-size: 14px; }\n /* Horizontal rule style heading */\n .heading-hr {\n display: flex;\n align-items: center;\n text-align: center;\n margin: 16px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n /* Fade lines toward and away from text for hr style */\n .heading-hr::before {\n content: '';\n flex: 1;\n height: 1px;\n /* fade in toward center */\n background: ${cssManager.bdTheme(\n 'linear-gradient(to right, transparent, #ccc)',\n 'linear-gradient(to right, transparent, #333)'\n )};\n margin: 0 8px;\n }\n .heading-hr::after {\n content: '';\n flex: 1;\n height: 1px;\n /* fade out away from center */\n background: ${cssManager.bdTheme(\n 'linear-gradient(to right, #ccc, transparent)',\n 'linear-gradient(to right, #333, transparent)'\n )};\n margin: 0 8px;\n }\n /* Small hr variant with reduced margins */\n .heading-hr.heading-hr-small {\n margin: 8px 0;\n font-size: 12px;\n }\n .heading-hr.heading-hr-small::before,\n .heading-hr.heading-hr-small::after {\n margin: 0 8px;\n }\n `,\n ];\n\n\n // INSTANCE\n public render(): TemplateResult {\n switch (this.level) {\n case '1':\n return html`

        `;\n case '2':\n return html`

        `;\n case '3':\n return html`

        `;\n case '4':\n return html`

        `;\n case '5':\n return html`
        `;\n case '6':\n return html`
        `;\n case 'hr':\n return html`
        `;\n case 'hr-small':\n return html`
        `;\n default:\n return html`

        `;\n }\n }\n}", "export * from './dees-heading.js';\n", "export * from './dees-label.js';\n", "import { html } from '@design.estate/dees-element';\n\n/**\n * Demo for dees-pagination component\n */\nexport const demoFunc = () => html`\n
        \n \n
        \n 5 pages, starting at 1:\n console.log('Page changed to', e.detail.page)}\n >\n
        \n\n \n
        \n 15 pages, starting at 8:\n console.log('Page changed to', e.detail.page)}\n >\n
        \n
        \n`;", "import { customElement, html, DeesElement, property, css, cssManager, type TemplateResult } from '@design.estate/dees-element';\nimport { demoFunc } from './dees-pagination.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pagination': DeesPagination;\n }\n}\n\n/**\n * A simple pagination component.\n * @fires page-change - Emitted when the page is changed. detail: { page: number }\n */\n@customElement('dees-pagination')\nexport class DeesPagination extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Layout'];\n /** Current page (1-based) */\n @property({ type: Number, reflect: true })\n accessor page = 1;\n\n /** Total number of pages */\n @property({ type: Number, reflect: true })\n accessor total = 1;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n display: inline-flex;\n align-items: center;\n }\n button {\n background: none;\n border: none;\n margin: 0 2px;\n padding: 6px 10px;\n font-size: 14px;\n cursor: pointer;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n border-radius: 3px;\n transition: background 0.2s;\n }\n button:hover:not(:disabled) {\n background: ${cssManager.bdTheme('#eee', '#444')};\n }\n button:disabled {\n cursor: default;\n color: ${cssManager.bdTheme('#aaa', '#666')};\n }\n button.current {\n background: #0050b9;\n color: #fff;\n cursor: default;\n }\n span.ellipsis {\n margin: 0 4px;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n }\n `,\n ];\n\n private get pages(): (number | string)[] {\n const pages: (number | string)[] = [];\n const total = this.total;\n const current = this.page;\n if (total <= 7) {\n for (let i = 1; i <= total; i++) {\n pages.push(i);\n }\n } else {\n pages.push(1);\n if (current > 4) {\n pages.push('...');\n }\n const start = Math.max(2, current - 2);\n const end = Math.min(total - 1, current + 2);\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n if (current < total - 3) {\n pages.push('...');\n }\n pages.push(total);\n }\n return pages;\n }\n\n public render(): TemplateResult {\n return html`\n this.changePage(this.page - 1)}\n ?disabled=${this.page <= 1}\n aria-label=\"Previous page\"\n >\n \u2039\n \n ${this.pages.map((p) =>\n p === '...'\n ? html`\u2026`\n : html`\n this.changePage(p as number)}\n ?disabled=${p === this.page}\n aria-label=\"Page ${p}\"\n >\n ${p}\n \n `\n )}\n this.changePage(this.page + 1)}\n ?disabled=${this.page >= this.total}\n aria-label=\"Next page\"\n >\n \u203A\n \n `;\n }\n\n private changePage(newPage: number) {\n if (newPage < 1 || newPage > this.total || newPage === this.page) {\n return;\n }\n this.page = newPage;\n this.dispatchEvent(\n new CustomEvent('page-change', {\n detail: { page: this.page },\n bubbles: true,\n })\n );\n }\n}", "export * from './dees-pagination.js';\n", "export * from './dees-panel.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const stepperDemo = () => html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Profile Details',\n content: html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Contact Information',\n content: html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Team Size',\n content: html`\n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Goals',\n content: html`\n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Brand Preferences',\n content: html`\n \n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Integrations',\n content: html`\n \n \n Continue\n \n `,\n validationFunc: async (stepperArg, elementArg) => {\n const deesForm = elementArg.querySelector('dees-form');\n deesForm.addEventListener('formData', () => stepperArg.goNext(), { once: true });\n },\n },\n {\n title: 'Review & Launch',\n content: html`\n \n

        Almost there! Review your selections and launch whenever you're ready.

        \n
        \n `,\n },\n ] as const}\n >\n`;\n", "import * as plugins from '../../00plugins.js';\nimport * as colors from '../../00colors.js';\n\nimport {\n DeesElement,\n customElement,\n html,\n css,\n unsafeCSS,\n type CSSResult,\n cssManager,\n property,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport * as domtools from '@design.estate/dees-domtools';\nimport { stepperDemo } from './dees-stepper.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\nexport interface IStep {\n title: string;\n content: TemplateResult;\n validationFunc?: (stepper: DeesStepper, htmlElement: HTMLElement, signal?: AbortSignal) => Promise;\n onReturnToStepFunc?: (stepper: DeesStepper, htmlElement: HTMLElement) => Promise;\n validationFuncCalled?: boolean;\n abortController?: AbortController;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-stepper': DeesStepper;\n }\n}\n\n@customElement('dees-stepper')\nexport class DeesStepper extends DeesElement {\n public static demo = stepperDemo;\n public static demoGroups = ['Layout', 'Form'];\n\n @property({\n type: Array,\n })\n accessor steps: IStep[] = [];\n\n @property({\n type: Object,\n })\n accessor selectedStep: IStep;\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n .stepperContainer {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n\n .step {\n position: relative;\n pointer-events: none;\n overflow: hidden;\n transition: transform 0.7s cubic-bezier(0.87, 0, 0.13, 1), box-shadow 0.7s cubic-bezier(0.87, 0, 0.13, 1), filter 0.7s cubic-bezier(0.87, 0, 0.13, 1), border 0.7s cubic-bezier(0.87, 0, 0.13, 1);\n max-width: 500px;\n min-height: 300px;\n border-radius: 12px;\n background: ${cssManager.bdTheme('#ffffff', '#0f0f11')};\n border: 1px solid ${cssManager.bdTheme('#e2e8f0', '#272729')};\n color: ${cssManager.bdTheme('#0f172a', '#f5f5f5')};\n margin: auto;\n margin-bottom: 20px;\n filter: opacity(0.55) saturate(0.85);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n user-select: none;\n }\n\n .step.selected {\n pointer-events: all;\n filter: opacity(1) saturate(1);\n user-select: auto;\n }\n\n .step.hiddenStep {\n filter: opacity(0);\n }\n\n .step.entrance {\n transition: transform 0.35s ease, box-shadow 0.35s ease, filter 0.35s ease, border 0.35s ease;\n }\n\n .step.entrance.hiddenStep {\n transform: translateY(16px);\n }\n\n .step:last-child {\n margin-bottom: 100vh;\n }\n\n .step .stepCounter {\n color: ${cssManager.bdTheme('#64748b', '#a1a1aa')};\n position: absolute;\n top: 12px;\n right: 12px;\n padding: 6px 14px;\n font-size: 12px;\n border-radius: 999px;\n background: ${cssManager.bdTheme('rgba(226, 232, 240, 0.5)', 'rgba(63, 63, 70, 0.45)')};\n border: 1px solid ${cssManager.bdTheme('rgba(226, 232, 240, 0.7)', 'rgba(63, 63, 70, 0.6)')};\n }\n\n .step .goBack {\n position: absolute;\n top: 12px;\n left: 12px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n border-radius: 999px;\n border: 1px solid ${cssManager.bdTheme('rgba(226, 232, 240, 0.9)', 'rgba(63, 63, 70, 0.85)')};\n background: ${cssManager.bdTheme('rgba(255, 255, 255, 0.9)', 'rgba(39, 39, 42, 0.85)')};\n color: ${cssManager.bdTheme('#475569', '#d4d4d8')};\n cursor: pointer;\n transition: border 0.2s ease, color 0.2s ease, background 0.2s ease, transform 0.2s ease;\n }\n\n .step .goBack:hover {\n color: ${cssManager.bdTheme('#0f172a', '#fafafa')};\n border-color: ${cssManager.bdTheme(colors.dark.blue, colors.dark.blue)};\n background: ${cssManager.bdTheme('rgba(226, 232, 240, 0.95)', 'rgba(63, 63, 70, 0.7)')};\n transform: translateX(-2px);\n }\n\n .step .goBack:active {\n color: ${cssManager.bdTheme('#0f172a', '#fafafa')};\n border-color: ${cssManager.bdTheme(colors.dark.blueActive, colors.dark.blueActive)};\n background: ${cssManager.bdTheme('rgba(226, 232, 240, 0.85)', 'rgba(63, 63, 70, 0.6)')};\n }\n\n .step .goBack span {\n transition: transform 0.2s ease;\n display: inline-block;\n }\n\n .step .goBack:hover span {\n transform: translateX(-2px);\n }\n\n .step .title {\n text-align: center;\n padding-top: 64px;\n font-family: 'Geist Sans', sans-serif;\n font-size: 24px;\n font-weight: 600;\n letter-spacing: -0.01em;\n color: inherit;\n }\n\n .step .content {\n padding: 32px;\n }\n `,\n ];\n\n public render() {\n return html`\n
        \n ${this.steps.map(\n (stepArg) =>\n html` this.getIndexOfStep(this.selectedStep)\n ? 'hiddenStep'\n : ''} ${this.getIndexOfStep(stepArg) === 0 ? 'entrance' : ''}\"\n >\n ${this.getIndexOfStep(stepArg) > 0\n ? html`
        <- go to previous step
        `\n : ``}\n
        \n Step ${this.steps.findIndex((elementArg) => elementArg === stepArg) + 1} of\n ${this.steps.length}\n
        \n
        ${stepArg.title}
        \n
        ${stepArg.content}
        \n
        `\n )}\n \n `;\n }\n\n public getIndexOfStep = (stepArg: IStep): number => {\n return this.steps.findIndex((stepArg2) => stepArg === stepArg2);\n };\n\n public async firstUpdated() {\n await this.domtoolsPromise;\n await this.domtools.convenience.smartdelay.delayFor(0);\n this.selectedStep = this.steps[0];\n this.setScrollStatus();\n // Remove entrance class after initial animation completes\n await this.domtools.convenience.smartdelay.delayFor(350);\n this.shadowRoot.querySelector('.step.entrance')?.classList.remove('entrance');\n }\n\n public async updated() {\n this.setScrollStatus();\n }\n\n public scroller: typeof domtools.plugins.SweetScroll.prototype;\n\n public async setScrollStatus() {\n const stepperContainer: HTMLElement = this.shadowRoot.querySelector('.stepperContainer');\n const firstStepElement: HTMLElement = this.shadowRoot.querySelector('.step');\n const selectedStepElement: HTMLElement = this.shadowRoot.querySelector('.selected');\n if (!selectedStepElement) {\n return;\n }\n if (!stepperContainer.style.paddingTop) {\n stepperContainer.style.paddingTop = `${\n stepperContainer.offsetHeight / 2 - selectedStepElement.offsetHeight / 2\n }px`;\n }\n console.log('Setting scroll status');\n console.log(selectedStepElement);\n const scrollPosition =\n selectedStepElement.offsetTop -\n stepperContainer.offsetHeight / 2 +\n selectedStepElement.offsetHeight / 2;\n console.log(scrollPosition);\n const domtoolsInstance = await domtools.DomTools.setupDomTools();\n if (!this.scroller) {\n this.scroller = new domtools.plugins.SweetScroll(\n {\n vertical: true,\n horizontal: false,\n easing: 'easeInOutExpo',\n duration: 700,\n },\n stepperContainer\n );\n }\n if (!this.selectedStep.validationFuncCalled && this.selectedStep.validationFunc) {\n this.selectedStep.abortController = new AbortController();\n this.selectedStep.validationFuncCalled = true;\n await this.selectedStep.validationFunc(this, selectedStepElement, this.selectedStep.abortController.signal);\n }\n this.scroller.to(scrollPosition);\n }\n\n public async goBack() {\n const currentIndex = this.steps.findIndex((stepArg) => stepArg === this.selectedStep);\n if (currentIndex <= 0) {\n return;\n }\n // Abort any active listeners on current step\n if (this.selectedStep.abortController) {\n this.selectedStep.abortController.abort();\n }\n const currentStep = this.steps[currentIndex];\n currentStep.validationFuncCalled = false;\n const previousStep = this.steps[currentIndex - 1];\n previousStep.validationFuncCalled = false;\n this.selectedStep = previousStep;\n await this.domtoolsPromise;\n await this.domtools.convenience.smartdelay.delayFor(100);\n this.selectedStep.onReturnToStepFunc?.(this, this.shadowRoot.querySelector('.selected'));\n }\n\n public goNext() {\n const currentIndex = this.steps.findIndex((stepArg) => stepArg === this.selectedStep);\n if (currentIndex < 0 || currentIndex >= this.steps.length - 1) {\n return;\n }\n // Abort any active listeners on current step\n if (this.selectedStep.abortController) {\n this.selectedStep.abortController.abort();\n }\n const currentStep = this.steps[currentIndex];\n currentStep.validationFuncCalled = false;\n const nextStep = this.steps[currentIndex + 1];\n nextStep.validationFuncCalled = false;\n this.selectedStep = nextStep;\n }\n}\n", "export * from './dees-stepper.js';\n", "// Layout Components\nexport * from './dees-chips/index.js';\nexport * from './dees-dashboardgrid/index.js';\nexport * from './dees-heading/index.js';\nexport * from './dees-label/index.js';\nexport * from './dees-pagination/index.js';\nexport * from './dees-panel/index.js';\nexport * from './dees-stepper/index.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
        \n
        \n
        JPEG Image with Toolbar
        \n
        A landscape photo with zoom, pan, fit, and download controls.
        \n \n
        \n\n
        \n
        PNG with Transparency
        \n
        Transparent PNG displayed on a checkerboard background.
        \n \n
        \n\n
        \n
        SVG Image
        \n
        Scalable vector graphic.
        \n \n
        \n\n
        \n
        No Toolbar Variant
        \n
        Image viewer with the toolbar hidden.
        \n \n
        \n
        \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-image-viewer': DeesImageViewer;\n }\n}\n\n@customElement('dees-image-viewer')\nexport class DeesImageViewer extends DeesElement {\n public static demo = demo;\n public static demoGroups = ['Media'];\n\n @property()\n accessor src: string = '';\n\n @property()\n accessor alt: string = '';\n\n @property()\n accessor fit: 'contain' | 'cover' | 'actual' = 'contain';\n\n @property({ type: Boolean })\n accessor showToolbar: boolean = true;\n\n @state()\n accessor zoom: number = 1;\n\n @state()\n accessor panX: number = 0;\n\n @state()\n accessor panY: number = 0;\n\n @state()\n accessor isDragging: boolean = false;\n\n @state()\n accessor loading: boolean = true;\n\n @state()\n accessor error: string = '';\n\n @state()\n accessor imageNaturalWidth: number = 0;\n\n @state()\n accessor imageNaturalHeight: number = 0;\n\n private dragStartX = 0;\n private dragStartY = 0;\n private dragStartPanX = 0;\n private dragStartPanY = 0;\n\n public render(): TemplateResult {\n return html`\n \n\n
        \n ${this.showToolbar ? html`\n
        \n
        \n \n \n \n
        \n
        \n \n \n
        \n
        \n \n
        \n ${this.imageNaturalWidth > 0 ? html`\n
        \n ${this.imageNaturalWidth} x ${this.imageNaturalHeight}\n
        \n ` : ''}\n
        \n ` : ''}\n\n \n
        \n
        \n ${this.src ? html`\n \n ` : ''}\n
        \n ${this.loading && this.src ? html`\n
        \n
        \n
        \n ` : ''}\n ${this.error ? html`\n
        \n \n ${this.error}\n
        \n ` : ''}\n
        \n \n `;\n }\n\n public zoomIn(): void {\n this.zoom = Math.min(10, this.zoom * 1.25);\n }\n\n public zoomOut(): void {\n this.zoom = Math.max(0.1, this.zoom / 1.25);\n if (this.zoom <= 1) {\n this.panX = 0;\n this.panY = 0;\n }\n }\n\n public resetZoom(): void {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n }\n\n public fitToScreen(): void {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n this.fit = 'contain';\n }\n\n public actualSize(): void {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n this.fit = 'actual';\n }\n\n public download(): void {\n if (!this.src) return;\n const link = document.createElement('a');\n link.href = this.src;\n link.download = this.src.split('/').pop() || 'image';\n link.click();\n }\n\n private handleImageLoad(e: Event): void {\n const img = e.target as HTMLImageElement;\n this.loading = false;\n this.error = '';\n this.imageNaturalWidth = img.naturalWidth;\n this.imageNaturalHeight = img.naturalHeight;\n }\n\n private handleImageError(): void {\n this.loading = false;\n this.error = 'Failed to load image';\n }\n\n private handleWheel(e: WheelEvent): void {\n e.preventDefault();\n const delta = e.deltaY > 0 ? 0.9 : 1.1;\n const newZoom = Math.min(10, Math.max(0.1, this.zoom * delta));\n this.zoom = newZoom;\n if (this.zoom <= 1) {\n this.panX = 0;\n this.panY = 0;\n }\n }\n\n private handleMouseDown(e: MouseEvent): void {\n if (this.zoom <= 1) return;\n this.isDragging = true;\n this.dragStartX = e.clientX;\n this.dragStartY = e.clientY;\n this.dragStartPanX = this.panX;\n this.dragStartPanY = this.panY;\n }\n\n private handleMouseMove(e: MouseEvent): void {\n if (!this.isDragging) return;\n this.panX = this.dragStartPanX + (e.clientX - this.dragStartX);\n this.panY = this.dragStartPanY + (e.clientY - this.dragStartY);\n }\n\n private handleMouseUp(): void {\n this.isDragging = false;\n }\n\n private handleDoubleClick(): void {\n if (this.zoom === 1) {\n this.zoom = 2;\n } else {\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n }\n }\n\n public updated(changedProperties: Map): void {\n super.updated(changedProperties);\n if (changedProperties.has('src')) {\n this.loading = true;\n this.error = '';\n this.zoom = 1;\n this.panX = 0;\n this.panY = 0;\n this.imageNaturalWidth = 0;\n this.imageNaturalHeight = 0;\n }\n }\n}\n", "export * from './component.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
        \n
        \n
        Audio with Waveform
        \n
        Audio player with waveform visualization and full transport controls.
        \n \n
        \n\n
        \n
        Audio without Waveform
        \n
        Simple audio player with a seekbar instead of a waveform.
        \n \n
        \n\n
        \n
        Minimal Audio Player
        \n
        No title or artist metadata \u2014 just the player.
        \n \n
        \n
        \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-audio-viewer': DeesAudioViewer;\n }\n}\n\n@customElement('dees-audio-viewer')\nexport class DeesAudioViewer extends DeesElement {\n public static demo = demo;\n public static demoGroups = ['Media'];\n\n @property()\n accessor src: string = '';\n\n @property()\n accessor title: string = '';\n\n @property()\n accessor artist: string = '';\n\n @property({ type: Boolean })\n accessor showWaveform: boolean = true;\n\n @property({ type: Boolean })\n accessor autoplay: boolean = false;\n\n @property({ type: Boolean })\n accessor loop: boolean = false;\n\n @state()\n accessor isPlaying: boolean = false;\n\n @state()\n accessor currentTime: number = 0;\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor volume: number = 1;\n\n @state()\n accessor isMuted: boolean = false;\n\n @state()\n accessor loading: boolean = false;\n\n @state()\n accessor error: string = '';\n\n @state()\n accessor waveformData: number[] = [];\n\n @state()\n accessor waveformReady: boolean = false;\n\n private audioElement: HTMLAudioElement | null = null;\n private canvasElement: HTMLCanvasElement | null = null;\n private animFrameId: number = 0;\n private volumeBeforeMute: number = 1;\n\n public render(): TemplateResult {\n const titleText = this.title && this.artist\n ? `${this.title} \u2014 ${this.artist}`\n : this.title || this.artist || '';\n\n return html`\n \n\n
        \n
        \n
        \n \n \n ${this.formatTime(this.currentTime)} / ${this.formatTime(this.duration)}\n \n
        \n\n ${titleText ? html`\n ${titleText}\n ` : ''}\n\n
        \n \n \n \n\n
        \n \n \n
        \n
        \n
        \n\n
        \n ${this.error ? html`\n
        \n \n ${this.error}\n
        \n ` : this.loading ? html`\n
        \n
        \n
        \n ` : this.showWaveform ? html`\n
        \n \n
        \n ` : html`\n
        \n
        \n
        \n `}\n
        \n
        \n `;\n }\n\n public async connectedCallback(): Promise {\n await super.connectedCallback();\n if (this.src) {\n this.initAudio();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.cleanup();\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src) {\n this.cleanup();\n this.initAudio();\n }\n if (changedProperties.has('waveformData') || changedProperties.has('currentTime')) {\n this.drawWaveform();\n }\n }\n\n public play(): void {\n this.audioElement?.play();\n }\n\n public pause(): void {\n this.audioElement?.pause();\n }\n\n public togglePlay(): void {\n if (this.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n public seek(time: number): void {\n if (this.audioElement) {\n this.audioElement.currentTime = time;\n }\n }\n\n public setVolume(v: number): void {\n this.volume = Math.max(0, Math.min(1, v));\n if (this.audioElement) {\n this.audioElement.volume = this.volume;\n }\n if (this.volume > 0) {\n this.isMuted = false;\n }\n }\n\n public toggleMute(): void {\n if (this.isMuted) {\n this.isMuted = false;\n this.volume = this.volumeBeforeMute || 0.5;\n if (this.audioElement) {\n this.audioElement.volume = this.volume;\n }\n } else {\n this.volumeBeforeMute = this.volume;\n this.isMuted = true;\n if (this.audioElement) {\n this.audioElement.volume = 0;\n }\n }\n }\n\n private toggleLoop(): void {\n this.loop = !this.loop;\n if (this.audioElement) {\n this.audioElement.loop = this.loop;\n }\n }\n\n private initAudio(): void {\n this.audioElement = new Audio();\n this.audioElement.crossOrigin = 'anonymous';\n this.audioElement.src = this.src;\n this.audioElement.volume = this.isMuted ? 0 : this.volume;\n this.audioElement.loop = this.loop;\n\n this.audioElement.addEventListener('loadedmetadata', () => {\n this.duration = this.audioElement!.duration;\n this.loading = false;\n });\n\n this.audioElement.addEventListener('play', () => {\n this.isPlaying = true;\n this.startTimeUpdate();\n });\n\n this.audioElement.addEventListener('pause', () => {\n this.isPlaying = false;\n this.stopTimeUpdate();\n });\n\n this.audioElement.addEventListener('ended', () => {\n this.isPlaying = false;\n this.stopTimeUpdate();\n });\n\n this.audioElement.addEventListener('error', () => {\n this.error = 'Failed to load audio';\n this.loading = false;\n });\n\n this.audioElement.addEventListener('timeupdate', () => {\n this.currentTime = this.audioElement!.currentTime;\n });\n\n if (this.autoplay) {\n this.audioElement.play().catch(() => {\n // Autoplay blocked by browser\n });\n }\n\n if (this.showWaveform) {\n this.loadWaveform();\n }\n }\n\n private async loadWaveform(): Promise {\n try {\n this.loading = true;\n const response = await fetch(this.src);\n const arrayBuffer = await response.arrayBuffer();\n const audioContext = new AudioContext();\n const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);\n\n const channelData = audioBuffer.getChannelData(0);\n const bars = 200;\n const blockSize = Math.floor(channelData.length / bars);\n const waveform: number[] = [];\n\n for (let i = 0; i < bars; i++) {\n let sum = 0;\n for (let j = 0; j < blockSize; j++) {\n sum += Math.abs(channelData[i * blockSize + j]);\n }\n waveform.push(sum / blockSize);\n }\n\n // Normalize\n const max = Math.max(...waveform);\n this.waveformData = waveform.map((v) => (max > 0 ? v / max : 0));\n this.waveformReady = true;\n this.loading = false;\n\n await audioContext.close();\n } catch {\n this.waveformReady = false;\n this.loading = false;\n }\n }\n\n private drawWaveform(): void {\n if (!this.showWaveform || !this.waveformReady) return;\n\n const canvas = this.shadowRoot?.querySelector('canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n this.canvasElement = canvas;\n const container = canvas.parentElement!;\n const dpr = window.devicePixelRatio || 1;\n const width = container.clientWidth;\n const height = container.clientHeight;\n\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, width, height);\n\n const bars = this.waveformData.length;\n if (bars === 0) return;\n\n const barWidth = width / bars;\n const playedRatio = this.duration > 0 ? this.currentTime / this.duration : 0;\n const playedBars = Math.floor(playedRatio * bars);\n\n const isDark = document.body.classList.contains('theme-dark') ||\n window.matchMedia('(prefers-color-scheme: dark)').matches;\n const playedColor = isDark ? 'hsl(213 93% 68%)' : 'hsl(217 91% 60%)';\n const unplayedColor = isDark ? 'hsl(217 25% 22%)' : 'hsl(214 31% 86%)';\n\n for (let i = 0; i < bars; i++) {\n const amplitude = this.waveformData[i];\n const barHeight = Math.max(2, amplitude * (height - 4));\n const x = i * barWidth;\n const y = (height - barHeight) / 2;\n\n ctx.fillStyle = i < playedBars ? playedColor : unplayedColor;\n ctx.fillRect(x + 0.5, y, barWidth - 1, barHeight);\n }\n }\n\n private handleWaveformClick(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const ratio = (e.clientX - rect.left) / rect.width;\n this.seek(ratio * this.duration);\n }\n\n private handleSeekbarClick(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const ratio = (e.clientX - rect.left) / rect.width;\n this.seek(ratio * this.duration);\n }\n\n private handleVolumeChange(e: Event): void {\n const value = parseFloat((e.target as HTMLInputElement).value);\n this.setVolume(value);\n }\n\n private startTimeUpdate(): void {\n this.stopTimeUpdate();\n const update = () => {\n if (this.audioElement && this.isPlaying) {\n this.currentTime = this.audioElement.currentTime;\n this.animFrameId = requestAnimationFrame(update);\n }\n };\n this.animFrameId = requestAnimationFrame(update);\n }\n\n private stopTimeUpdate(): void {\n if (this.animFrameId) {\n cancelAnimationFrame(this.animFrameId);\n this.animFrameId = 0;\n }\n }\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n\n private cleanup(): void {\n this.stopTimeUpdate();\n if (this.audioElement) {\n this.audioElement.pause();\n this.audioElement.src = '';\n this.audioElement = null;\n }\n this.isPlaying = false;\n this.currentTime = 0;\n this.duration = 0;\n this.waveformData = [];\n this.waveformReady = false;\n }\n}\n", "export * from './component.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
        \n
        \n
        Video with Custom Controls
        \n
        A video player with overlay controls, seeking, and volume adjustment.
        \n \n
        \n\n
        \n
        Autoplay Muted
        \n
        Video that autoplays muted, commonly used for previews.
        \n \n
        \n\n
        \n
        Native Controls
        \n
        Video using browser-native controls instead of custom overlay.
        \n \n
        \n
        \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-video-viewer': DeesVideoViewer;\n }\n}\n\n@customElement('dees-video-viewer')\nexport class DeesVideoViewer extends DeesElement {\n public static demo = demo;\n public static demoGroups = ['Media'];\n\n @property()\n accessor src: string = '';\n\n @property()\n accessor poster: string = '';\n\n @property({ type: Boolean })\n accessor showControls: boolean = true;\n\n @property({ type: Boolean })\n accessor autoplay: boolean = false;\n\n @property({ type: Boolean })\n accessor loop: boolean = false;\n\n @property({ type: Boolean })\n accessor muted: boolean = false;\n\n @state()\n accessor isPlaying: boolean = false;\n\n @state()\n accessor currentTime: number = 0;\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor volume: number = 1;\n\n @state()\n accessor loading: boolean = true;\n\n @state()\n accessor error: string = '';\n\n @state()\n accessor isFullscreen: boolean = false;\n\n @state()\n accessor controlsVisible: boolean = true;\n\n private hideControlsTimer: ReturnType | null = null;\n private videoElement: HTMLVideoElement | null = null;\n\n public render(): TemplateResult {\n return html`\n \n\n \n { this.loading = true; }}\n @canplay=${() => { this.loading = false; }}\n >\n\n ${this.showControls ? html`\n
        \n
        \n \n
        \n\n
        e.stopPropagation()}>\n
        \n
        \n
        \n\n
        \n \n\n \n ${this.formatTime(this.currentTime)} / ${this.formatTime(this.duration)}\n \n\n \n\n
        \n \n \n
        \n\n \n
        \n
        \n
        \n ` : ''}\n\n ${this.loading && !this.error ? html`\n
        \n
        \n
        \n ` : ''}\n\n ${this.error ? html`\n
        \n \n ${this.error}\n
        \n ` : ''}\n \n `;\n }\n\n public async firstUpdated(): Promise {\n this.videoElement = this.shadowRoot?.querySelector('video') || null;\n document.addEventListener('fullscreenchange', this.handleFullscreenChange);\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n document.removeEventListener('fullscreenchange', this.handleFullscreenChange);\n if (this.hideControlsTimer) {\n clearTimeout(this.hideControlsTimer);\n }\n }\n\n public play(): void {\n this.videoElement?.play();\n }\n\n public pause(): void {\n this.videoElement?.pause();\n }\n\n public togglePlay(): void {\n if (this.isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n public seek(time: number): void {\n if (this.videoElement) {\n this.videoElement.currentTime = time;\n }\n }\n\n public setVolume(v: number): void {\n this.volume = Math.max(0, Math.min(1, v));\n if (this.videoElement) {\n this.videoElement.volume = this.volume;\n }\n }\n\n public toggleFullscreen(): void {\n const container = this.shadowRoot?.querySelector('.video-container') as HTMLElement;\n if (!container) return;\n\n if (this.isFullscreen) {\n document.exitFullscreen?.();\n } else {\n container.requestFullscreen?.();\n }\n }\n\n private handleLoadedMetadata(): void {\n if (this.videoElement) {\n this.duration = this.videoElement.duration;\n this.loading = false;\n }\n }\n\n private handlePlay(): void {\n this.isPlaying = true;\n this.scheduleHideControls();\n }\n\n private handlePause(): void {\n this.isPlaying = false;\n this.controlsVisible = true;\n }\n\n private handleEnded(): void {\n this.isPlaying = false;\n this.controlsVisible = true;\n }\n\n private handleTimeUpdate(): void {\n if (this.videoElement) {\n this.currentTime = this.videoElement.currentTime;\n }\n }\n\n private handleError(): void {\n this.error = 'Failed to load video';\n this.loading = false;\n }\n\n private handleOverlayClick(): void {\n this.togglePlay();\n }\n\n private handleSeek(e: MouseEvent): void {\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const ratio = (e.clientX - rect.left) / rect.width;\n this.seek(ratio * this.duration);\n }\n\n private handleVolumeChange(e: Event): void {\n const value = parseFloat((e.target as HTMLInputElement).value);\n this.setVolume(value);\n this.muted = value === 0;\n }\n\n private toggleMute(): void {\n this.muted = !this.muted;\n if (this.videoElement) {\n this.videoElement.muted = this.muted;\n }\n }\n\n private handleMouseMove(): void {\n this.controlsVisible = true;\n this.scheduleHideControls();\n }\n\n private handleMouseLeave(): void {\n if (this.isPlaying) {\n this.controlsVisible = false;\n }\n }\n\n private scheduleHideControls(): void {\n if (this.hideControlsTimer) {\n clearTimeout(this.hideControlsTimer);\n }\n if (this.isPlaying) {\n this.hideControlsTimer = setTimeout(() => {\n this.controlsVisible = false;\n }, 3000);\n }\n }\n\n private handleFullscreenChange = (): void => {\n this.isFullscreen = !!document.fullscreenElement;\n };\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n}\n", "export * from './component.js';\n", "import { domtools } from '@design.estate/dees-element';\n\nexport class PdfManager {\n private static pdfjsLib: any;\n private static initialized = false;\n\n public static async initialize() {\n if (this.initialized) return;\n\n // @ts-ignore\n this.pdfjsLib = await import('https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/+esm');\n this.pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/build/pdf.worker.mjs';\n\n this.initialized = true;\n }\n\n public static async loadDocument(url: string): Promise {\n await this.initialize();\n\n // IMPORTANT: Disabled caching to ensure component isolation\n // Each viewer instance gets its own document to prevent state sharing\n // This fixes issues where multiple viewers interfere with each other\n const loadingTask = this.pdfjsLib.getDocument(url);\n const document = await loadingTask.promise;\n\n return document;\n }\n\n public static releaseDocument(_url: string) {\n // No-op since we're not caching documents anymore\n // Each viewer manages its own document lifecycle\n }\n\n // Cache methods removed to ensure component isolation\n // Each viewer now manages its own document lifecycle\n}\n", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const viewerStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n width: 100%;\n height: 600px;\n position: relative;\n font-family: 'Geist Sans', sans-serif;\n contain: layout style;\n }\n\n .pdf-viewer {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(215 20% 10%)')};\n position: relative;\n overflow: hidden;\n }\n\n .toolbar {\n height: 48px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 15%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(214 31% 91%)', 'hsl(217 25% 22%)')};\n display: flex;\n align-items: center;\n padding: 0 16px;\n gap: 16px;\n flex-shrink: 0;\n }\n\n .toolbar-group {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .toolbar-group--end {\n margin-left: auto;\n }\n\n .toolbar-button {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n background: transparent;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .toolbar-button:hover:not(:disabled) {\n background: ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 25% 22%)')};\n }\n\n .toolbar-button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .toolbar-button dees-icon {\n font-size: 16px;\n }\n\n .page-info {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 0 8px;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .page-input {\n width: 48px;\n height: 28px;\n border-radius: 4px;\n border: 1px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 28%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 12%)')};\n color: ${cssManager.bdTheme('hsl(222 47% 11%)', 'hsl(210 20% 96%)')};\n text-align: center;\n font-size: 14px;\n font-family: inherit;\n outline: none;\n }\n\n .page-input:focus {\n border-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .page-separator {\n color: ${cssManager.bdTheme('hsl(215 16% 60%)', 'hsl(215 16% 50%)')};\n }\n\n .zoom-level {\n font-size: 13px;\n font-weight: 500;\n min-width: 48px;\n text-align: center;\n }\n\n .viewer-container {\n flex: 1;\n display: flex;\n overflow: hidden;\n position: relative;\n min-height: 0;\n }\n\n .sidebar {\n width: 200px;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(215 20% 15%)')};\n border-right: 1px solid ${cssManager.bdTheme('hsl(214 31% 91%)', 'hsl(217 25% 22%)')};\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .sidebar-header {\n height: 40px;\n padding: 0 12px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(214 31% 91%)', 'hsl(217 25% 22%)')};\n font-size: 13px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .sidebar-close {\n width: 24px;\n height: 24px;\n border-radius: 4px;\n background: transparent;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n transition: background 0.15s ease;\n }\n\n .sidebar-close:hover {\n background: ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 25% 22%)')};\n }\n\n .sidebar-close dees-icon {\n font-size: 14px;\n }\n\n .sidebar-content {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 12px;\n display: block;\n overscroll-behavior: contain;\n min-height: 0;\n }\n\n .thumbnail {\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n cursor: pointer;\n border: 2px solid transparent;\n transition: border-color 0.15s ease;\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(215 20% 18%)')};\n display: block;\n width: 100%;\n margin-bottom: 12px;\n /* Default A4 aspect ratio (297mm / 210mm \u2248 1.414) */\n min-height: calc(176px * 1.414);\n }\n\n .thumbnail:last-child {\n margin-bottom: 0;\n }\n\n .thumbnail:hover {\n border-color: ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 35%)')};\n }\n\n .thumbnail.active {\n border-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .thumbnail-canvas {\n display: block;\n width: 100%;\n height: auto;\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n }\n\n .thumbnail-number {\n position: absolute;\n bottom: 4px;\n right: 4px;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.7)', 'rgba(0, 0, 0, 0.8)')};\n color: white;\n font-size: 11px;\n font-weight: 500;\n padding: 2px 6px;\n border-radius: 4px;\n }\n\n .viewer-main {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 20px;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n min-height: 0;\n position: relative;\n }\n\n .loading-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n gap: 16px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .loading-spinner {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n border: 3px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 28%)')};\n border-top-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n animation: spin 0.8s linear infinite;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n .loading-text {\n font-size: 14px;\n font-weight: 500;\n }\n\n .pages-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n }\n\n .page-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n }\n\n .canvas-container {\n background: white;\n box-shadow: 0 2px 12px ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(0, 0, 0, 0.3)')};\n border-radius: 4px;\n overflow: hidden;\n display: inline-block;\n position: relative;\n }\n\n .page-canvas {\n display: block;\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n }\n\n /* Text layer for selection */\n .text-layer {\n position: absolute;\n inset: 0;\n overflow: visible;\n line-height: 1;\n text-size-adjust: none;\n forced-color-adjust: none;\n transform-origin: 0 0;\n z-index: 1;\n user-select: text;\n -webkit-user-select: text;\n }\n\n .text-layer span,\n .text-layer br {\n color: transparent;\n position: absolute;\n white-space: pre;\n cursor: text;\n transform-origin: 0% 0%;\n user-select: text;\n -webkit-user-select: text;\n }\n\n .text-layer ::selection {\n background: rgba(0, 100, 200, 0.3);\n }\n\n .text-layer br::selection {\n background: transparent;\n }\n\n .text-layer .endOfContent {\n display: block;\n position: absolute;\n inset: 100% 0 0;\n z-index: 0;\n cursor: default;\n user-select: none;\n }\n\n .text-layer.selecting .endOfContent {\n top: 0;\n }\n\n .pdf-viewer.with-sidebar .viewer-main {\n margin-left: 0;\n }\n `,\n];", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
        \n
        \n

        Full Featured PDF Viewer with Toolbar

        \n \n
        \n\n
        \n

        PDF Viewer with Sidebar Navigation

        \n \n
        \n\n
        \n

        Compact Viewer without Controls

        \n \n
        \n
        \n`;", "import { DeesElement, property, html, customElement, type TemplateResult, directives } from '@design.estate/dees-element';\nimport { PdfManager } from '../dees-pdf-shared/PdfManager.js';\nimport { viewerStyles } from './styles.js';\nimport { demo as demoFunc } from './demo.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pdf-viewer': DeesPdfViewer;\n }\n}\n\ntype RenderState = 'idle' | 'loading' | 'rendering-main' | 'rendering-thumbs' | 'rendered' | 'error' | 'disposed';\n\n@customElement('dees-pdf-viewer')\nexport class DeesPdfViewer extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Media', 'PDF'];\n public static styles = viewerStyles;\n\n @property({ type: String })\n accessor pdfUrl: string = '';\n\n @property({ type: Number })\n accessor initialPage: number = 1;\n\n @property({ type: String })\n accessor initialZoom: 'auto' | 'page-fit' | 'page-width' | number = 'auto';\n\n @property({ type: Boolean })\n accessor showToolbar: boolean = true;\n\n @property({ type: Boolean })\n accessor showSidebar: boolean = false;\n\n @property({ type: Number })\n accessor currentPage: number = 1;\n\n @property({ type: Number })\n accessor totalPages: number = 1;\n\n @property({ type: Number })\n accessor currentZoom: number = 1;\n\n @property({ type: Boolean })\n accessor loading: boolean = false;\n\n @property({ type: String })\n accessor documentId: string = '';\n\n @property({ type: Array })\n accessor thumbnailData: Array<{page: number, rendered: boolean}> = [];\n\n @property({ type: Array })\n accessor pageData: Array<{page: number, rendered: boolean, rendering: boolean, textLayerRendered: boolean}> = [];\n\n private pdfDocument: any;\n private renderState: RenderState = 'idle';\n private renderAbortController: AbortController | null = null;\n private pageRendering: boolean = false;\n private pageNumPending: number | null = null;\n private currentRenderTask: any = null;\n private currentRenderPromise: Promise | null = null;\n private thumbnailRenderTasks: any[] = [];\n private pageRenderTasks: Map = new Map();\n private textLayerRenderTasks: Map = new Map();\n private canvas: HTMLCanvasElement | undefined;\n private ctx: CanvasRenderingContext2D | undefined;\n private viewerMain: HTMLElement | null = null;\n private resizeObserver?: ResizeObserver;\n private intersectionObserver?: IntersectionObserver;\n private scrollThrottleTimeout?: number;\n private viewportDimensions = { width: 0, height: 0 };\n private viewportMode: 'auto' | 'page-fit' | 'page-width' | 'custom' = 'auto';\n private readonly MANUAL_MIN_ZOOM = 0.5;\n private readonly MANUAL_MAX_ZOOM = 3;\n private readonly ABSOLUTE_MIN_ZOOM = 0.1;\n private readonly ABSOLUTE_MAX_ZOOM = 4;\n private readonly PAGE_GAP = 20;\n private readonly RENDER_BUFFER = 3;\n\n constructor() {\n super();\n }\n\n public render(): TemplateResult {\n return html`\n
        \n ${this.showToolbar ? html`\n
        \n
        \n \n \n \n
        \n \n /\n ${this.totalPages}\n
        \n = this.totalPages}\n >\n \n \n
        \n\n
        \n \n \n \n \n ${Math.round(this.currentZoom * 100)}%\n \n \n \n \n
        \n\n
        \n \n \n \n \n \n \n
        \n\n
        \n this.showSidebar = !this.showSidebar}\n title=\"${this.showSidebar ? 'Hide thumbnails' : 'Show thumbnails'}\"\n >\n \n \n \n \n \n \n \n \n
        \n
        \n ` : ''}\n\n
        \n ${this.showSidebar ? html`\n
        \n
        \n Pages\n this.showSidebar = false}\n >\n \n \n
        \n
        \n ${directives.keyed(this.documentId, html`\n ${directives.repeat(\n this.thumbnailData,\n (item) => item.page,\n (item) => html`\n \n \n ${item.page}\n
        \n `\n )}\n `)}\n
        \n
        \n ` : ''}\n\n
        \n ${this.loading ? html`\n
        \n
        \n
        Loading PDF...
        \n
        \n ` : html`\n
        \n ${directives.repeat(\n this.pageData,\n (item) => item.page,\n (item) => html`\n
        \n
        \n \n
        \n
        \n
        \n `\n )}\n
        \n `}\n
        \n
        \n \n `;\n }\n\n public async connectedCallback() {\n await super.connectedCallback();\n await this.updateComplete;\n this.ensureViewerRefs();\n\n // Generate a unique document ID for this connection\n if (this.pdfUrl) {\n this.documentId = `${this.pdfUrl}-${Date.now()}-${Math.random()}`;\n await this.loadPdf();\n }\n }\n\n public async disconnectedCallback() {\n await super.disconnectedCallback();\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n this.intersectionObserver?.disconnect();\n this.intersectionObserver = undefined;\n\n // Clear scroll timeout\n if (this.scrollThrottleTimeout) {\n clearTimeout(this.scrollThrottleTimeout);\n this.scrollThrottleTimeout = undefined;\n }\n\n // Mark as disposed and clean up\n this.renderState = 'disposed';\n await this.cleanupDocument();\n\n // Clear all references\n this.canvas = undefined;\n this.ctx = undefined;\n }\n\n public async updated(changedProperties: Map) {\n super.updated(changedProperties);\n\n if (changedProperties.has('pdfUrl') && this.pdfUrl) {\n const previousUrl = changedProperties.get('pdfUrl') as string | undefined;\n if (previousUrl) {\n PdfManager.releaseDocument(previousUrl);\n }\n // Generate new document ID for new URL\n this.documentId = `${this.pdfUrl}-${Date.now()}-${Math.random()}`;\n await this.loadPdf();\n }\n\n // Re-render thumbnails when sidebar becomes visible and document is loaded\n if (changedProperties.has('showSidebar') && this.showSidebar && this.pdfDocument) {\n // Use requestAnimationFrame to ensure DOM is ready\n await new Promise(resolve => requestAnimationFrame(resolve));\n // Force re-render of thumbnails by resetting their rendered state\n this.thumbnailData.forEach(thumb => thumb.rendered = false);\n await this.renderThumbnails();\n // Re-setup intersection observer for lazy loading of pages\n this.setupIntersectionObserver();\n // Scroll to active thumbnail after rendering\n this.scrollThumbnailIntoView(this.currentPage);\n }\n }\n\n private async loadPdf() {\n this.loading = true;\n this.renderState = 'loading';\n\n try {\n await this.cleanupDocument();\n\n // Create new abort controller for this load operation\n this.renderAbortController = new AbortController();\n const signal = this.renderAbortController.signal;\n\n this.pdfDocument = await PdfManager.loadDocument(this.pdfUrl);\n if (signal.aborted) return;\n\n this.totalPages = this.pdfDocument.numPages;\n this.currentPage = this.initialPage;\n this.resolveInitialViewportMode();\n\n // Initialize thumbnail and page data arrays\n this.thumbnailData = Array.from({length: this.totalPages}, (_, i) => ({\n page: i + 1,\n rendered: false\n }));\n\n this.pageData = Array.from({length: this.totalPages}, (_, i) => ({\n page: i + 1,\n rendered: false,\n rendering: false,\n textLayerRendered: false,\n }));\n\n // Set loading to false to render the pages\n this.loading = false;\n await this.updateComplete;\n this.ensureViewerRefs();\n this.setupIntersectionObserver();\n\n // Wait for next frame to ensure DOM is ready\n await new Promise(resolve => requestAnimationFrame(resolve));\n if (signal.aborted) return;\n\n this.renderState = 'rendering-main';\n\n // Render initial visible pages\n await this.renderVisiblePages();\n if (signal.aborted) return;\n\n // Scroll to initial page\n if (this.initialPage > 1) {\n await this.scrollToPage(this.initialPage, false);\n }\n\n if (this.showSidebar) {\n // Ensure sidebar is in DOM after loading = false\n await this.updateComplete;\n // Wait for next frame to ensure DOM is fully ready\n await new Promise(resolve => requestAnimationFrame(resolve));\n if (signal.aborted) return;\n\n await this.renderThumbnails();\n if (signal.aborted) return;\n }\n\n this.renderState = 'rendered';\n } catch (error) {\n console.error('Error loading PDF:', error);\n this.loading = false;\n this.renderState = 'error';\n }\n }\n\n private setupIntersectionObserver() {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n }\n\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n const pageWrapper = entry.target as HTMLElement;\n const pageNum = parseInt(pageWrapper.dataset.page || '1');\n\n if (entry.isIntersecting) {\n this.renderPageIfNeeded(pageNum);\n }\n }\n },\n {\n root: this.viewerMain,\n rootMargin: `${this.RENDER_BUFFER * 100}px 0px`,\n threshold: 0.01\n }\n );\n\n // Observe all page wrappers\n const pageWrappers = this.shadowRoot?.querySelectorAll('.page-wrapper');\n if (pageWrappers) {\n pageWrappers.forEach(wrapper => {\n this.intersectionObserver?.observe(wrapper);\n });\n }\n }\n\n private async renderVisiblePages() {\n if (!this.viewerMain) return;\n\n // Find visible pages based on scroll position\n const clientHeight = this.viewerMain.clientHeight;\n\n for (const pageInfo of this.pageData) {\n const pageWrapper = this.shadowRoot?.querySelector(`.page-wrapper[data-page=\"${pageInfo.page}\"]`) as HTMLElement;\n if (!pageWrapper) continue;\n\n const rect = pageWrapper.getBoundingClientRect();\n const viewerRect = this.viewerMain.getBoundingClientRect();\n const relativeTop = rect.top - viewerRect.top;\n const relativeBottom = relativeTop + rect.height;\n\n // Check if page is visible or within buffer zone\n const buffer = this.RENDER_BUFFER * clientHeight;\n if (relativeBottom >= -buffer && relativeTop <= clientHeight + buffer) {\n await this.renderPageIfNeeded(pageInfo.page);\n }\n }\n }\n\n private async renderPageIfNeeded(pageNum: number) {\n const pageInfo = this.pageData.find(p => p.page === pageNum);\n if (!pageInfo || pageInfo.rendered || pageInfo.rendering) return;\n\n pageInfo.rendering = true;\n\n try {\n const canvas = this.shadowRoot?.querySelector(`.page-canvas[data-page=\"${pageNum}\"]`) as HTMLCanvasElement;\n if (!canvas) {\n pageInfo.rendering = false;\n return;\n }\n\n const page = await this.pdfDocument.getPage(pageNum);\n const viewport = this.computeViewport(page);\n\n // Set canvas dimensions with device pixel ratio for sharp rendering\n const dpr = window.devicePixelRatio || 1;\n canvas.width = Math.floor(viewport.width * dpr);\n canvas.height = Math.floor(viewport.height * dpr);\n canvas.style.width = `${viewport.width}px`;\n canvas.style.height = `${viewport.height}px`;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n page.cleanup?.();\n pageInfo.rendering = false;\n return;\n }\n\n // Scale context for high-DPI displays\n ctx.scale(dpr, dpr);\n\n const renderContext = {\n canvasContext: ctx,\n viewport: viewport,\n };\n\n const renderTask = page.render(renderContext);\n this.pageRenderTasks.set(pageNum, renderTask);\n\n await renderTask.promise;\n\n page.cleanup?.();\n pageInfo.rendered = true;\n pageInfo.rendering = false;\n this.pageRenderTasks.delete(pageNum);\n\n // Render text layer for selection\n await this.renderTextLayer(pageNum);\n\n // Update page data to reflect rendered state\n this.requestUpdate('pageData');\n } catch (error: any) {\n if (error?.name !== 'RenderingCancelledException') {\n console.error(`Error rendering page ${pageNum}:`, error);\n }\n pageInfo.rendering = false;\n this.pageRenderTasks.delete(pageNum);\n }\n }\n\n private async renderTextLayer(pageNum: number): Promise {\n const pageInfo = this.pageData.find(p => p.page === pageNum);\n if (!pageInfo || pageInfo.textLayerRendered) return;\n\n try {\n const textLayerDiv = this.shadowRoot?.querySelector(\n `.text-layer[data-page=\"${pageNum}\"]`\n ) as HTMLElement;\n if (!textLayerDiv) return;\n\n textLayerDiv.innerHTML = '';\n\n const page = await this.pdfDocument.getPage(pageNum);\n const textContent = await page.getTextContent();\n const viewport = this.computeViewport(page);\n\n // @ts-ignore - Dynamic import of pdfjs\n const pdfjs = await import('https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/+esm');\n\n textLayerDiv.style.width = `${viewport.width}px`;\n textLayerDiv.style.height = `${viewport.height}px`;\n\n // Set the scale factor CSS variable - required by PDF.js text layer\n textLayerDiv.style.setProperty('--scale-factor', String(viewport.scale));\n\n const textLayerRenderTask = pdfjs.renderTextLayer({\n textContentSource: textContent,\n container: textLayerDiv,\n viewport: viewport,\n });\n\n this.textLayerRenderTasks.set(pageNum, textLayerRenderTask);\n await textLayerRenderTask.promise;\n\n // Add endOfContent for selection boundary\n const endOfContent = document.createElement('div');\n endOfContent.className = 'endOfContent';\n textLayerDiv.appendChild(endOfContent);\n\n // Custom drag selection for Shadow DOM compatibility\n // caretRangeFromPoint doesn't pierce shadow DOM, so we find spans manually\n let isDragging = false;\n let anchorNode: Node | null = null;\n let anchorOffset = 0;\n\n const getTextPositionFromPoint = (x: number, y: number): { node: Node; offset: number } | null => {\n // Find span at coordinates by checking bounding rects\n const spans = Array.from(textLayerDiv.querySelectorAll('span'));\n for (const span of spans) {\n const rect = span.getBoundingClientRect();\n if (x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom) {\n const textNode = span.firstChild;\n if (textNode && textNode.nodeType === Node.TEXT_NODE) {\n // Calculate character offset based on x position\n const text = textNode.textContent || '';\n const charWidth = rect.width / text.length;\n const relativeX = x - rect.left;\n const offset = Math.min(Math.round(relativeX / charWidth), text.length);\n return { node: textNode, offset };\n }\n }\n }\n return null;\n };\n\n const handleMouseUp = () => {\n if (isDragging) {\n isDragging = false;\n anchorNode = null;\n textLayerDiv.classList.remove('selecting');\n }\n document.removeEventListener('mouseup', handleMouseUp);\n document.removeEventListener('mousemove', handleMouseMove);\n };\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging || !anchorNode) return;\n\n e.preventDefault();\n const pos = getTextPositionFromPoint(e.clientX, e.clientY);\n if (pos) {\n const selection = window.getSelection();\n if (selection) {\n try {\n selection.setBaseAndExtent(anchorNode, anchorOffset, pos.node, pos.offset);\n } catch (err) {\n // Ignore errors from invalid selections\n }\n }\n }\n };\n\n textLayerDiv.addEventListener('mousedown', (e: MouseEvent) => {\n if (e.button !== 0) return;\n\n const pos = getTextPositionFromPoint(e.clientX, e.clientY);\n if (pos) {\n // Prevent native selection behavior\n e.preventDefault();\n\n isDragging = true;\n anchorNode = pos.node;\n anchorOffset = pos.offset;\n textLayerDiv.classList.add('selecting');\n\n // Clear existing selection\n const selection = window.getSelection();\n selection?.removeAllRanges();\n\n // Add document-level listeners for drag\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n }\n });\n\n pageInfo.textLayerRendered = true;\n page.cleanup?.();\n this.textLayerRenderTasks.delete(pageNum);\n } catch (error: any) {\n if (error?.name !== 'RenderingCancelledException') {\n console.error(`Error rendering text layer for page ${pageNum}:`, error);\n }\n this.textLayerRenderTasks.delete(pageNum);\n }\n }\n\n private handleScroll = () => {\n // Throttle scroll events\n if (this.scrollThrottleTimeout) {\n clearTimeout(this.scrollThrottleTimeout);\n }\n\n this.scrollThrottleTimeout = window.setTimeout(() => {\n this.updateCurrentPage();\n this.renderVisiblePages();\n }, 50);\n }\n\n private updateCurrentPage() {\n if (!this.viewerMain) return;\n\n const scrollTop = this.viewerMain.scrollTop;\n const clientHeight = this.viewerMain.clientHeight;\n const centerY = scrollTop + clientHeight / 2;\n\n // Find which page is at the center of the viewport\n for (let i = 0; i < this.pageData.length; i++) {\n const pageWrapper = this.shadowRoot?.querySelector(`.page-wrapper[data-page=\"${i + 1}\"]`) as HTMLElement;\n if (!pageWrapper) continue;\n\n const rect = pageWrapper.getBoundingClientRect();\n const viewerRect = this.viewerMain.getBoundingClientRect();\n const relativeTop = rect.top - viewerRect.top + scrollTop;\n const relativeBottom = relativeTop + rect.height;\n\n if (centerY >= relativeTop && centerY <= relativeBottom) {\n if (this.currentPage !== i + 1) {\n this.currentPage = i + 1;\n // Scroll the thumbnail into view if sidebar is visible\n if (this.showSidebar) {\n this.scrollThumbnailIntoView(i + 1);\n }\n }\n break;\n }\n }\n }\n\n private scrollThumbnailIntoView(pageNum: number) {\n const thumbnail = this.shadowRoot?.querySelector(`.thumbnail[data-page=\"${pageNum}\"]`) as HTMLElement;\n const sidebarContent = this.shadowRoot?.querySelector('.sidebar-content') as HTMLElement;\n\n if (thumbnail && sidebarContent) {\n // Get the thumbnail's position relative to the sidebar\n const thumbnailRect = thumbnail.getBoundingClientRect();\n const sidebarRect = sidebarContent.getBoundingClientRect();\n\n // Check if thumbnail is outside the visible area\n const isAbove = thumbnailRect.top < sidebarRect.top;\n const isBelow = thumbnailRect.bottom > sidebarRect.bottom;\n\n if (isAbove || isBelow) {\n // Calculate the scroll position to center the thumbnail\n const thumbnailOffset = thumbnail.offsetTop;\n const thumbnailHeight = thumbnail.offsetHeight;\n const sidebarHeight = sidebarContent.clientHeight;\n const targetScrollTop = thumbnailOffset - (sidebarHeight / 2) + (thumbnailHeight / 2);\n\n // Scroll the sidebar to center the thumbnail\n sidebarContent.scrollTo({\n top: Math.max(0, targetScrollTop),\n behavior: 'smooth'\n });\n }\n }\n }\n\n private async scrollToPage(pageNum: number, smooth: boolean = true) {\n await this.updateComplete;\n const pageWrapper = this.shadowRoot?.querySelector(`.page-wrapper[data-page=\"${pageNum}\"]`) as HTMLElement;\n if (pageWrapper && this.viewerMain) {\n // Calculate the offset of the page wrapper relative to the viewer\n const pageRect = pageWrapper.getBoundingClientRect();\n const viewerRect = this.viewerMain.getBoundingClientRect();\n const currentScrollTop = this.viewerMain.scrollTop;\n\n // Calculate the target scroll position\n const targetScrollTop = currentScrollTop + (pageRect.top - viewerRect.top) - this.viewerMain.clientTop;\n\n // Scroll to the calculated position\n if (smooth) {\n this.viewerMain.scrollTo({\n top: targetScrollTop,\n behavior: 'smooth'\n });\n } else {\n this.viewerMain.scrollTop = targetScrollTop;\n }\n\n // Update current page\n this.currentPage = pageNum;\n\n // Scroll thumbnail into view if sidebar is visible\n if (this.showSidebar) {\n this.scrollThumbnailIntoView(pageNum);\n }\n\n // Ensure the page is rendered\n await this.renderPageIfNeeded(pageNum);\n }\n }\n\n private async renderThumbnails() {\n // Check if document is loaded\n if (!this.pdfDocument) {\n return;\n }\n\n // Check if already rendered\n if (this.thumbnailData.length > 0 && this.thumbnailData.every(t => t.rendered)) {\n return;\n }\n\n // Check abort signal\n if (this.renderAbortController?.signal.aborted) {\n return;\n }\n\n const signal = this.renderAbortController?.signal;\n this.renderState = 'rendering-thumbs';\n\n // Cancel any existing thumbnail render tasks\n for (const task of this.thumbnailRenderTasks) {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n }\n this.thumbnailRenderTasks = [];\n\n try {\n await this.updateComplete;\n const thumbnails = this.shadowRoot?.querySelectorAll('.thumbnail') as NodeListOf;\n const thumbnailCanvases = this.shadowRoot?.querySelectorAll('.thumbnail-canvas') as NodeListOf;\n const sidebarContent = this.shadowRoot?.querySelector('.sidebar-content') as HTMLElement;\n\n // Get the actual available width for thumbnails (sidebar width minus padding)\n const sidebarStyles = window.getComputedStyle(sidebarContent);\n const sidebarPadding = parseFloat(sidebarStyles.paddingLeft) + parseFloat(sidebarStyles.paddingRight);\n const maxThumbnailWidth = 200 - sidebarPadding - 4; // Account for border\n\n // Clear all canvases first to prevent conflicts\n for (const canvas of Array.from(thumbnailCanvases)) {\n const context = canvas.getContext('2d');\n if (context) {\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n }\n\n for (let i = 0; i < thumbnailCanvases.length; i++) {\n if (signal?.aborted) return;\n\n const canvas = thumbnailCanvases[i];\n const thumbnail = thumbnails[i];\n const pageNum = parseInt(canvas.dataset.page || '1');\n const page = await this.pdfDocument.getPage(pageNum);\n\n // Get the page's natural dimensions\n const initialViewport = page.getViewport({ scale: 1 });\n\n // Calculate scale to fit within the max thumbnail width\n const scale = maxThumbnailWidth / initialViewport.width;\n const viewport = page.getViewport({ scale });\n\n // Set canvas dimensions with device pixel ratio for sharp thumbnails\n const dpr = window.devicePixelRatio || 1;\n canvas.width = Math.floor(viewport.width * dpr);\n canvas.height = Math.floor(viewport.height * dpr);\n\n // Set the display size via style to ensure proper display\n canvas.style.width = `${viewport.width}px`;\n canvas.style.height = `${viewport.height}px`;\n\n // Set the actual thumbnail container height\n thumbnail.style.height = `${viewport.height}px`;\n thumbnail.style.minHeight = `${viewport.height}px`;\n\n const context = canvas.getContext('2d');\n if (!context) {\n page.cleanup?.();\n continue;\n }\n\n // Scale context for high-DPI displays\n context.scale(dpr, dpr);\n\n const renderContext = {\n canvasContext: context,\n viewport: viewport,\n };\n\n const renderTask = page.render(renderContext);\n this.thumbnailRenderTasks.push(renderTask);\n await renderTask.promise;\n page.cleanup?.();\n\n // Mark this thumbnail as rendered\n const thumbData = this.thumbnailData.find(t => t.page === pageNum);\n if (thumbData) {\n thumbData.rendered = true;\n }\n }\n\n // Trigger update to reflect rendered state\n this.requestUpdate('thumbnailData');\n } catch (error: any) {\n // Only log non-cancellation errors\n if (error?.name !== 'RenderingCancelledException') {\n console.error('Error rendering thumbnails:', error);\n }\n } finally {\n this.thumbnailRenderTasks = [];\n }\n }\n\n private previousPage() {\n if (this.currentPage > 1) {\n this.scrollToPage(this.currentPage - 1);\n }\n }\n\n private nextPage() {\n if (this.currentPage < this.totalPages) {\n this.scrollToPage(this.currentPage + 1);\n }\n }\n\n\n private handleThumbnailClick(e: Event) {\n const target = e.currentTarget as HTMLElement;\n const pageNum = parseInt(target.dataset.page || '1');\n this.scrollToPage(pageNum);\n }\n\n private handlePageInput(e: Event) {\n const input = e.target as HTMLInputElement;\n const pageNum = parseInt(input.value);\n this.scrollToPage(pageNum);\n }\n\n private zoomIn() {\n const nextZoom = Math.min(this.MANUAL_MAX_ZOOM, this.currentZoom * 1.2);\n this.viewportMode = 'custom';\n if (nextZoom !== this.currentZoom) {\n this.currentZoom = nextZoom;\n this.reRenderAllPages();\n }\n }\n\n private zoomOut() {\n const nextZoom = Math.max(this.MANUAL_MIN_ZOOM, this.currentZoom / 1.2);\n this.viewportMode = 'custom';\n if (nextZoom !== this.currentZoom) {\n this.currentZoom = nextZoom;\n this.reRenderAllPages();\n }\n }\n\n private resetZoom() {\n this.viewportMode = 'custom';\n this.currentZoom = 1;\n this.reRenderAllPages();\n }\n\n private fitToPage() {\n this.viewportMode = 'page-fit';\n this.reRenderAllPages();\n }\n\n private fitToWidth() {\n this.viewportMode = 'page-width';\n this.reRenderAllPages();\n }\n\n private reRenderAllPages() {\n // Clear all rendered pages to force re-render with new zoom\n this.pageData.forEach(page => {\n page.rendered = false;\n page.rendering = false;\n page.textLayerRendered = false;\n });\n\n // Cancel any ongoing render tasks\n this.pageRenderTasks.forEach(task => {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.pageRenderTasks.clear();\n\n // Cancel text layer render tasks\n this.textLayerRenderTasks.forEach(task => {\n try {\n task.cancel?.();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.textLayerRenderTasks.clear();\n\n // Request update to re-render pages\n this.requestUpdate();\n\n // Render visible pages after update\n this.updateComplete.then(() => {\n this.renderVisiblePages();\n });\n }\n\n private async downloadPdf() {\n if (!this.pdfDocument) return;\n\n try {\n // Get raw PDF data from the loaded document\n const data = await this.pdfDocument.getData();\n const blob = new Blob([data.buffer], { type: 'application/pdf' });\n const blobUrl = URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n link.href = blobUrl;\n link.download = this.pdfUrl ? this.pdfUrl.split('/').pop() || 'document.pdf' : 'document.pdf';\n link.click();\n\n // Clean up blob URL after short delay\n setTimeout(() => URL.revokeObjectURL(blobUrl), 1000);\n } catch (error) {\n console.error('Error downloading PDF:', error);\n }\n }\n\n private async printPdf() {\n if (!this.pdfDocument) return;\n\n try {\n // Get raw PDF data from the loaded document\n const data = await this.pdfDocument.getData();\n const blob = new Blob([data.buffer], { type: 'application/pdf' });\n const pdfUrl = URL.createObjectURL(blob);\n\n // Create an HTML wrapper page that embeds the PDF and handles print/close\n // This gives us control over the afterprint event (direct PDF URLs don't support it)\n const htmlContent = `\n \n \n \n Print PDF\n \n \n \n \n \n \n \n `;\n const htmlBlob = new Blob([htmlContent], { type: 'text/html' });\n const htmlUrl = URL.createObjectURL(htmlBlob);\n\n const printWindow = window.open(htmlUrl, '_blank', 'width=800,height=600');\n if (printWindow) {\n // Cleanup blob URLs when window closes\n const checkClosed = setInterval(() => {\n if (printWindow.closed) {\n clearInterval(checkClosed);\n URL.revokeObjectURL(pdfUrl);\n URL.revokeObjectURL(htmlUrl);\n }\n }, 500);\n // Safety cleanup after 2 minutes\n setTimeout(() => {\n clearInterval(checkClosed);\n URL.revokeObjectURL(pdfUrl);\n URL.revokeObjectURL(htmlUrl);\n }, 120000);\n } else {\n // Popup blocked - fall back to direct navigation\n window.open(pdfUrl, '_blank');\n setTimeout(() => URL.revokeObjectURL(pdfUrl), 60000);\n URL.revokeObjectURL(htmlUrl);\n }\n } catch (error) {\n console.error('Error printing PDF:', error);\n }\n }\n\n /**\n * Provide context menu items for right-click functionality\n */\n public getContextMenuItems() {\n const items: any[] = [];\n\n // Add copy option if text is selected\n const selection = window.getSelection();\n const selectedText = selection?.toString() || '';\n if (selectedText) {\n items.push({\n name: 'Copy',\n iconName: 'lucide:Copy',\n action: async () => {\n await navigator.clipboard.writeText(selectedText);\n }\n });\n items.push({ divider: true });\n }\n\n items.push(\n {\n name: 'Download PDF',\n iconName: 'lucide:Download',\n action: async () => {\n await this.downloadPdf();\n }\n },\n {\n name: 'Print PDF',\n iconName: 'lucide:Printer',\n action: async () => {\n await this.printPdf();\n }\n }\n );\n\n return items;\n }\n\n private get canZoomIn(): boolean {\n return this.viewportMode !== 'custom' || this.currentZoom < this.MANUAL_MAX_ZOOM;\n }\n\n private get canZoomOut(): boolean {\n return this.viewportMode !== 'custom' || this.currentZoom > this.MANUAL_MIN_ZOOM;\n }\n\n private ensureViewerRefs() {\n if (!this.viewerMain) {\n this.viewerMain = this.shadowRoot?.querySelector('.viewer-main') as HTMLElement;\n }\n if (this.viewerMain && !this.resizeObserver) {\n this.resizeObserver = new ResizeObserver(() => {\n this.measureViewportDimensions();\n if (this.pdfDocument) {\n // Re-render all pages when viewport size changes\n this.reRenderAllPages();\n }\n });\n this.resizeObserver.observe(this.viewerMain);\n this.measureViewportDimensions();\n\n // Prevent scroll propagation to parent when scrolling inside viewer\n this.viewerMain.addEventListener('wheel', (e) => {\n const element = e.currentTarget as HTMLElement;\n const scrollTop = element.scrollTop;\n const scrollHeight = element.scrollHeight;\n const clientHeight = element.clientHeight;\n const deltaY = e.deltaY;\n\n // Check if we're at the boundaries\n const isAtTop = scrollTop === 0;\n const isAtBottom = Math.abs(scrollTop + clientHeight - scrollHeight) < 1;\n\n // Prevent propagation if we're scrolling within bounds\n if ((deltaY < 0 && !isAtTop) || (deltaY > 0 && !isAtBottom)) {\n e.stopPropagation();\n } else if ((deltaY < 0 && isAtTop) || (deltaY > 0 && isAtBottom)) {\n // Prevent default and propagation when at boundaries\n e.preventDefault();\n e.stopPropagation();\n }\n }, { passive: false });\n }\n }\n\n private measureViewportDimensions() {\n if (!this.viewerMain) {\n this.viewportDimensions = { width: 0, height: 0 };\n return;\n }\n\n const styles = getComputedStyle(this.viewerMain);\n const paddingX = parseFloat(styles.paddingLeft || '0') + parseFloat(styles.paddingRight || '0');\n const paddingY = parseFloat(styles.paddingTop || '0') + parseFloat(styles.paddingBottom || '0');\n const width = Math.max(this.viewerMain.clientWidth - paddingX, 0);\n const height = Math.max(this.viewerMain.clientHeight - paddingY, 0);\n this.viewportDimensions = { width, height };\n }\n\n private resolveInitialViewportMode() {\n if (typeof this.initialZoom === 'number') {\n this.viewportMode = 'custom';\n this.currentZoom = this.normalizeZoom(this.initialZoom, true);\n } else if (this.initialZoom === 'page-width') {\n this.viewportMode = 'page-width';\n } else if (this.initialZoom === 'page-fit' || this.initialZoom === 'auto') {\n this.viewportMode = 'page-fit';\n } else {\n this.viewportMode = 'auto';\n }\n\n if (this.viewportMode !== 'custom') {\n this.currentZoom = 1;\n }\n }\n\n private computeViewport(page: any) {\n this.measureViewportDimensions();\n const baseViewport = page.getViewport({ scale: 1 });\n let scale: number;\n\n switch (this.viewportMode) {\n case 'page-width': {\n const availableWidth = this.viewportDimensions.width || baseViewport.width;\n scale = availableWidth / baseViewport.width;\n break;\n }\n case 'page-fit':\n case 'auto': {\n const availableWidth = this.viewportDimensions.width || baseViewport.width;\n const availableHeight = this.viewportDimensions.height || baseViewport.height;\n const widthScale = availableWidth / baseViewport.width;\n const heightScale = availableHeight / baseViewport.height;\n scale = Math.min(widthScale, heightScale);\n break;\n }\n case 'custom':\n default: {\n scale = this.normalizeZoom(this.currentZoom || 1, false);\n break;\n }\n }\n\n if (!Number.isFinite(scale) || scale <= 0) {\n scale = 1;\n }\n\n const clampedScale = this.viewportMode === 'custom'\n ? this.normalizeZoom(scale, true)\n : this.normalizeZoom(scale, false);\n\n if (this.viewportMode !== 'custom') {\n this.currentZoom = clampedScale;\n }\n\n return page.getViewport({ scale: clampedScale });\n }\n\n private normalizeZoom(value: number, clampToManualRange: boolean) {\n const min = clampToManualRange ? this.MANUAL_MIN_ZOOM : this.ABSOLUTE_MIN_ZOOM;\n const max = clampToManualRange ? this.MANUAL_MAX_ZOOM : this.ABSOLUTE_MAX_ZOOM;\n return Math.min(Math.max(value, min), max);\n }\n\n private async cleanupDocument() {\n // Abort any ongoing render operations\n if (this.renderAbortController) {\n this.renderAbortController.abort();\n this.renderAbortController = null;\n }\n\n // Wait for any existing render to complete\n if (this.currentRenderPromise) {\n try {\n await this.currentRenderPromise;\n } catch (error) {\n // Ignore errors\n }\n this.currentRenderPromise = null;\n }\n\n // Clear the render task reference\n this.currentRenderTask = null;\n\n // Cancel any page render tasks\n this.pageRenderTasks.forEach(task => {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.pageRenderTasks.clear();\n\n // Cancel text layer render tasks\n this.textLayerRenderTasks.forEach(task => {\n try {\n task.cancel?.();\n } catch (error) {\n // Ignore cancellation errors\n }\n });\n this.textLayerRenderTasks.clear();\n\n // Cancel any thumbnail render tasks\n for (const task of (this.thumbnailRenderTasks || [])) {\n try {\n task.cancel();\n } catch (error) {\n // Ignore cancellation errors\n }\n }\n this.thumbnailRenderTasks = [];\n\n // Reset all state flags\n this.renderState = 'idle';\n this.pageRendering = false;\n this.pageNumPending = null;\n this.thumbnailData = [];\n this.pageData = [];\n this.documentId = '';\n\n // Clear canvas content\n if (this.canvas && this.ctx) {\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n }\n\n // Destroy the document to free memory\n if (this.pdfDocument) {\n try {\n this.pdfDocument.destroy();\n } catch (error) {\n console.error('Error destroying PDF document:', error);\n }\n }\n\n // Finally null the document reference\n this.pdfDocument = null;\n\n // Request update to reflect state changes\n this.requestUpdate();\n }\n}\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n\n
        \n
        \n
        Image Preview (URL)
        \n
        Auto-detects image from URL extension and renders with the image viewer.
        \n \n
        \n\n
        \n
        PDF Preview (URL)
        \n
        Auto-detects PDF and displays with the PDF viewer including toolbar.
        \n \n
        \n\n
        \n
        Code Preview (Text Content)
        \n
        TypeScript code displayed with syntax highlighting via the codebox.
        \n Hello World\\`;\n }\n}`}\n >\n
        \n\n
        \n
        Audio Preview (URL)
        \n
        Audio file detected by extension, shown with waveform player.
        \n \n
        \n\n
        \n
        Video Preview (URL)
        \n
        Video file detected from URL, rendered with custom video controls.
        \n \n
        \n\n
        \n
        Explicit Type Override
        \n
        Force content type to 'text' even though the URL has no extension.
        \n \n
        \n\n
        \n
        Unknown Type
        \n
        When content type cannot be detected, shows a placeholder.
        \n \n
        \n
        \n`;\n", "import {\n DeesElement,\n html,\n customElement,\n type TemplateResult,\n property,\n state,\n cssManager,\n} from '@design.estate/dees-element';\nimport '../dees-image-viewer/component.js';\nimport '../dees-audio-viewer/component.js';\nimport '../dees-video-viewer/component.js';\nimport '../../00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js';\nimport '../dees-pdf-viewer/component.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { demoFunc } from './dees-preview.demo.js';\n\nexport type TPreviewContentType = 'image' | 'pdf' | 'audio' | 'video' | 'code' | 'text' | 'unknown';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-preview': DeesPreview;\n }\n}\n\nconst EXTENSION_MAP: Record = {\n // Image\n jpg: 'image', jpeg: 'image', png: 'image', gif: 'image', webp: 'image',\n svg: 'image', bmp: 'image', avif: 'image', ico: 'image',\n // PDF\n pdf: 'pdf',\n // Audio\n mp3: 'audio', wav: 'audio', ogg: 'audio', flac: 'audio', aac: 'audio',\n m4a: 'audio', opus: 'audio', weba: 'audio',\n // Video\n mp4: 'video', webm: 'video', mov: 'video', avi: 'video', mkv: 'video', ogv: 'video',\n // Code\n ts: 'code', js: 'code', jsx: 'code', tsx: 'code', json: 'code',\n html: 'code', css: 'code', scss: 'code', less: 'code',\n py: 'code', java: 'code', go: 'code', rs: 'code',\n yaml: 'code', yml: 'code', xml: 'code', sql: 'code',\n sh: 'code', bash: 'code', zsh: 'code', md: 'code',\n c: 'code', cpp: 'code', h: 'code', hpp: 'code',\n rb: 'code', php: 'code', swift: 'code', kt: 'code',\n // Text\n txt: 'text', log: 'text', csv: 'text', env: 'text',\n};\n\nconst MIME_PREFIX_MAP: Record = {\n 'image/': 'image',\n 'audio/': 'audio',\n 'video/': 'video',\n 'application/pdf': 'pdf',\n};\n\nconst EXTENSION_LANG_MAP: Record = {\n ts: 'typescript', tsx: 'typescript',\n js: 'javascript', jsx: 'javascript',\n json: 'json', html: 'xml', xml: 'xml',\n css: 'css', scss: 'scss', less: 'less',\n py: 'python', java: 'java', go: 'go', rs: 'rust',\n yaml: 'yaml', yml: 'yaml', sql: 'sql',\n sh: 'bash', bash: 'bash', zsh: 'bash',\n c: 'c', cpp: 'cpp', h: 'c', hpp: 'cpp',\n rb: 'ruby', php: 'php', swift: 'swift', kt: 'kotlin',\n md: 'markdown',\n};\n\nconst TYPE_ICONS: Record = {\n image: 'lucide:Image',\n pdf: 'lucide:FileText',\n audio: 'lucide:Music',\n video: 'lucide:Video',\n code: 'lucide:Code',\n text: 'lucide:FileText',\n unknown: 'lucide:File',\n};\n\n@customElement('dees-preview')\nexport class DeesPreview extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Media', 'Data View'];\n\n // Content sources (use one)\n @property()\n accessor url: string = '';\n\n @property({ attribute: false })\n accessor file: File | undefined = undefined;\n\n @property()\n accessor base64: string = '';\n\n @property()\n accessor textContent: string = '';\n\n // Hints & overrides\n @property()\n accessor contentType: TPreviewContentType | undefined = undefined;\n\n @property()\n accessor language: string = '';\n\n @property()\n accessor mimeType: string = '';\n\n @property()\n accessor filename: string = '';\n\n // UI\n @property({ type: Boolean })\n accessor showToolbar: boolean = true;\n\n @property({ type: Boolean })\n accessor showFilename: boolean = true;\n\n // Internal\n @state()\n accessor resolvedType: TPreviewContentType = 'unknown';\n\n @state()\n accessor resolvedSrc: string = '';\n\n @state()\n accessor resolvedText: string = '';\n\n @state()\n accessor resolvedLang: string = 'text';\n\n @state()\n accessor loading: boolean = false;\n\n @state()\n accessor error: string = '';\n\n private objectUrl: string = '';\n\n public render(): TemplateResult {\n const displayName = this.filename || this.file?.name || this.getFilenameFromUrl() || '';\n\n return html`\n \n\n
        \n ${this.showFilename && displayName ? html`\n
        \n \n ${displayName}\n ${this.resolvedType}\n
        \n ` : ''}\n\n
        \n ${this.error ? html`\n
        \n \n ${this.error}\n
        \n ` : this.loading ? html`\n
        \n
        \n
        \n ` : this.renderContent()}\n
        \n
        \n `;\n }\n\n private renderContent(): TemplateResult {\n switch (this.resolvedType) {\n case 'image':\n return html`\n \n `;\n case 'pdf':\n return html`\n \n `;\n case 'audio':\n return html`\n \n `;\n case 'video':\n return html`\n \n `;\n case 'code':\n return html`\n \n `;\n case 'text':\n return html`
        ${this.resolvedText}
        `;\n default:\n return html`\n
        \n \n Preview not available\n
        \n `;\n }\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n\n const relevant = ['url', 'file', 'base64', 'textContent', 'contentType', 'language', 'mimeType', 'filename'];\n const needsResolve = relevant.some((key) => changedProperties.has(key));\n if (needsResolve) {\n await this.resolveContent();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.revokeObjectUrl();\n }\n\n private async resolveContent(): Promise {\n this.error = '';\n this.revokeObjectUrl();\n\n // Detect type\n this.resolvedType = this.detectType();\n\n // Resolve source\n try {\n if (this.url) {\n this.resolvedSrc = this.url;\n if (this.resolvedType === 'code' || this.resolvedType === 'text') {\n if (!this.textContent) {\n this.loading = true;\n const response = await fetch(this.url);\n this.resolvedText = await response.text();\n this.loading = false;\n } else {\n this.resolvedText = this.textContent;\n }\n }\n } else if (this.file) {\n this.objectUrl = URL.createObjectURL(this.file);\n this.resolvedSrc = this.objectUrl;\n if (this.resolvedType === 'code' || this.resolvedType === 'text') {\n this.loading = true;\n this.resolvedText = await this.file.text();\n this.loading = false;\n }\n } else if (this.base64) {\n const mime = this.mimeType || 'application/octet-stream';\n this.resolvedSrc = `data:${mime};base64,${this.base64}`;\n } else if (this.textContent) {\n this.resolvedText = this.textContent;\n }\n } catch {\n this.error = 'Failed to load content';\n this.loading = false;\n }\n\n // Resolve language for code\n this.resolvedLang = this.resolveLanguage();\n }\n\n private detectType(): TPreviewContentType {\n // 1. Explicit override\n if (this.contentType) return this.contentType;\n\n // 2. MIME type\n const mime = this.mimeType || this.file?.type || '';\n if (mime) {\n if (mime === 'application/pdf') return 'pdf';\n for (const [prefix, type] of Object.entries(MIME_PREFIX_MAP)) {\n if (mime.startsWith(prefix)) return type;\n }\n if (mime.startsWith('text/')) return 'text';\n }\n\n // 3. File extension\n const ext = this.getExtension();\n if (ext && EXTENSION_MAP[ext]) return EXTENSION_MAP[ext];\n\n // 4. If textContent is provided, assume code or text\n if (this.textContent) {\n return this.language ? 'code' : 'text';\n }\n\n return 'unknown';\n }\n\n private getExtension(): string {\n const name = this.filename || this.file?.name || '';\n if (name) {\n const parts = name.split('.');\n if (parts.length > 1) return parts.pop()!.toLowerCase();\n }\n if (this.url) {\n try {\n const pathname = new URL(this.url, 'https://placeholder.com').pathname;\n const parts = pathname.split('.');\n if (parts.length > 1) return parts.pop()!.toLowerCase();\n } catch {\n // Invalid URL\n }\n }\n return '';\n }\n\n private getFilenameFromUrl(): string {\n if (!this.url) return '';\n try {\n const pathname = new URL(this.url, 'https://placeholder.com').pathname;\n return pathname.split('/').pop() || '';\n } catch {\n return '';\n }\n }\n\n private resolveLanguage(): string {\n if (this.language) return this.language;\n const ext = this.getExtension();\n return EXTENSION_LANG_MAP[ext] || 'text';\n }\n\n private revokeObjectUrl(): void {\n if (this.objectUrl) {\n URL.revokeObjectURL(this.objectUrl);\n this.objectUrl = '';\n }\n }\n}\n", "export * from './dees-preview.js';\n", "import { DeesElement, property, html, customElement, domtools, type TemplateResult, type CSSResult, } from '@design.estate/dees-element';\n\nimport { Deferred } from '@push.rocks/smartpromise';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\n// import type pdfjsTypes from 'pdfjs-dist';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pdf': DeesPdf;\n }\n}\n\n/**\n * @deprecated Use DeesPdfViewer or DeesTilePdf instead\n * - DeesPdfViewer: Full-featured PDF viewing with controls, navigation, zoom\n * - DeesTilePdf: Lightweight, performance-optimized tile preview for grids\n */\n@customElement('dees-pdf')\nexport class DeesPdf extends DeesElement {\n // DEMO\n public static demo = () => html` `;\n public static demoGroups = ['Media', 'PDF'];\n\n // INSTANCE\n\n @property()\n accessor pdfUrl: string =\n 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/examples/learning/helloworld.pdf';\n\n\n\n constructor() {\n super();\n\n // you have access to all kinds of things through this.\n // this.setAttribute('gotIt','true');\n }\n\n public render(): TemplateResult {\n return html`\n \n \n `;\n }\n\n public static pdfJsReady: Promise;\n public static pdfjsLib: any // typeof pdfjsTypes;\n public async connectedCallback() {\n super.connectedCallback();\n if (!DeesPdf.pdfJsReady) {\n const pdfJsReadyDeferred = domtools.plugins.smartpromise.defer();\n DeesPdf.pdfJsReady = pdfJsReadyDeferred.promise;\n // @ts-ignore\n DeesPdf.pdfjsLib = await import('https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/+esm');\n DeesPdf.pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.0.379/build/pdf.worker.mjs';\n pdfJsReadyDeferred.resolve();\n }\n await DeesPdf.pdfJsReady;\n this.displayContent();\n\n\n }\n\n public async displayContent() {\n await DeesPdf.pdfJsReady;\n\n // Asynchronous download of PDF\n const loadingTask = DeesPdf.pdfjsLib.getDocument(this.pdfUrl);\n loadingTask.promise.then(\n (pdf) => {\n console.log('PDF loaded');\n\n // Fetch the first page\n const pageNumber = 1;\n pdf.getPage(pageNumber).then((page) => {\n console.log('Page loaded');\n\n const scale = 10;\n const viewport = page.getViewport({ scale: scale });\n\n // Prepare canvas using PDF page dimensions\n const canvas: any = this.shadowRoot.querySelector('#pdfcanvas');\n const context = canvas.getContext('2d');\n canvas.height = viewport.height;\n canvas.width = viewport.width;\n\n // Render PDF page into canvas context\n const renderContext = {\n canvasContext: context,\n viewport: viewport,\n };\n\n const renderTask = page.render(renderContext);\n renderTask.promise.then(function () {\n console.log('Page rendered');\n });\n });\n },\n (reason) => {\n // PDF loading error\n console.error(reason);\n }\n );\n }\n\n /**\n * Provide context menu items for the global context menu handler\n */\n public getContextMenuItems() {\n return [\n {\n name: 'Open PDF in New Tab',\n iconName: 'lucide:ExternalLink',\n action: async () => {\n window.open(this.pdfUrl, '_blank');\n }\n },\n { divider: true },\n {\n name: 'Copy PDF URL',\n iconName: 'lucide:Copy',\n action: async () => {\n await navigator.clipboard.writeText(this.pdfUrl);\n }\n },\n {\n name: 'Download PDF',\n iconName: 'lucide:Download',\n action: async () => {\n const link = document.createElement('a');\n link.href = this.pdfUrl;\n link.download = this.pdfUrl.split('/').pop() || 'document.pdf';\n link.click();\n }\n }\n ];\n }\n}", "export * from './component.js';\n", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const tileBaseStyles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: inline-block;\n position: relative;\n }\n\n .tile-container {\n position: relative;\n width: 200px;\n height: 260px;\n background: ${cssManager.bdTheme('hsl(0 0% 98%)', 'hsl(215 20% 14%)')};\n border-radius: 4px;\n overflow: hidden;\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n box-shadow: 0 1px 3px ${cssManager.bdTheme('rgba(0, 0, 0, 0.12)', 'rgba(0, 0, 0, 0.24)')};\n }\n\n .tile-container.clickable {\n cursor: pointer;\n }\n\n .tile-container.clickable:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 24px ${cssManager.bdTheme('rgba(0, 0, 0, 0.12)', 'rgba(0, 0, 0, 0.3)')};\n }\n\n .tile-container.clickable:hover .tile-overlay {\n opacity: 1;\n }\n\n .tile-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n overflow: hidden;\n }\n\n .tile-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.7)', 'rgba(0, 0, 0, 0.8)')};\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 20;\n }\n\n .tile-overlay dees-icon {\n font-size: 24px;\n color: white;\n }\n\n .tile-overlay span {\n font-size: 14px;\n font-weight: 500;\n color: white;\n }\n\n .tile-info {\n position: absolute;\n bottom: 8px;\n left: 8px;\n right: 8px;\n padding: 6px 10px;\n background: ${cssManager.bdTheme('hsl(0 0% 100% / 0.92)', 'hsl(215 20% 12% / 0.92)')};\n border-radius: 6px;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n backdrop-filter: blur(12px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n z-index: 10;\n }\n\n .tile-info dees-icon {\n font-size: 13px;\n color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n }\n\n .tile-info-text {\n font-weight: 500;\n font-size: 11px;\n }\n\n .tile-badge {\n position: absolute;\n top: 8px;\n left: 8px;\n right: 8px;\n padding: 5px 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.7)', 'hsl(0 0% 100% / 0.9)')};\n color: ${cssManager.bdTheme('white', 'hsl(215 20% 12%)')};\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n text-align: center;\n backdrop-filter: blur(12px);\n z-index: 15;\n pointer-events: none;\n animation: fadeIn 0.2s ease;\n }\n\n .tile-badge-corner {\n position: absolute;\n bottom: 8px;\n right: 8px;\n padding: 3px 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.6)', 'hsl(0 0% 100% / 0.85)')};\n color: ${cssManager.bdTheme('white', 'hsl(215 20% 12%)')};\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n backdrop-filter: blur(8px);\n z-index: 10;\n pointer-events: none;\n }\n\n .tile-badge-topright {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 3px 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.6)', 'hsl(0 0% 100% / 0.85)')};\n color: ${cssManager.bdTheme('white', 'hsl(215 20% 12%)')};\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n backdrop-filter: blur(8px);\n z-index: 15;\n pointer-events: none;\n }\n\n /* Shift bottom badges up when label is present */\n .tile-container:has(.tile-label) .tile-badge-corner {\n bottom: 33px;\n }\n\n .tile-container:has(.tile-label) .tile-info {\n bottom: 33px;\n }\n\n .tile-loading,\n .tile-error {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n color: ${cssManager.bdTheme('hsl(215 16% 45%)', 'hsl(215 16% 75%)')};\n }\n\n .tile-loading {\n background: ${cssManager.bdTheme('hsl(0 0% 99%)', 'hsl(215 20% 14%)')};\n }\n\n .tile-error {\n background: ${cssManager.bdTheme('hsl(0 72% 98%)', 'hsl(0 62% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 72% 40%)', 'hsl(0 70% 68%)')};\n }\n\n .tile-error dees-icon {\n font-size: 32px;\n }\n\n .tile-spinner {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 2px solid ${cssManager.bdTheme('hsl(214 31% 86%)', 'hsl(217 25% 28%)')};\n border-top-color: ${cssManager.bdTheme('hsl(217 91% 60%)', 'hsl(213 93% 68%)')};\n animation: spin 0.8s linear infinite;\n }\n\n .tile-loading-text,\n .tile-error-text {\n font-size: 13px;\n font-weight: 500;\n }\n\n .tile-label {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 6px 10px;\n background: ${cssManager.bdTheme('hsl(0 0% 100% / 0.95)', 'hsl(215 20% 12% / 0.95)')};\n font-size: 11px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(215 16% 35%)', 'hsl(215 16% 75%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n z-index: 10;\n backdrop-filter: blur(12px);\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n /* Size variants */\n :host([size=\"small\"]) .tile-container {\n width: 150px;\n height: 195px;\n }\n\n :host([size=\"large\"]) .tile-container {\n width: 250px;\n height: 325px;\n }\n\n /* Grid optimizations */\n :host([grid-mode]) .tile-container {\n will-change: auto;\n }\n `,\n];\n", "import {\n DeesElement,\n html,\n property,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { tileBaseStyles } from './styles.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\n\nexport abstract class DeesTileBase extends DeesElement {\n public static styles: CSSResult[] = tileBaseStyles as any;\n\n @property({ type: Boolean })\n accessor clickable: boolean = true;\n\n @property({ type: Boolean })\n accessor loading: boolean = false;\n\n @property({ type: Boolean })\n accessor error: boolean = false;\n\n @property({ type: String, reflect: true })\n accessor size: 'small' | 'default' | 'large' = 'default';\n\n @property({ type: String })\n accessor label: string = '';\n\n private observer: IntersectionObserver | undefined;\n private _visible: boolean = false;\n\n /** Whether this tile is currently visible in the viewport */\n protected get isVisible(): boolean {\n return this._visible;\n }\n\n public render(): TemplateResult {\n return html`\n \n ${this.loading ? html`\n
        \n
        \n
        Loading...
        \n
        \n ` : ''}\n\n ${this.error ? html`\n
        \n \n
        Failed to load
        \n
        \n ` : ''}\n\n ${!this.loading && !this.error ? this.renderTileContent() : ''}\n\n ${this.label ? html`\n
        ${this.label}
        \n ` : ''}\n \n `;\n }\n\n /** Subclasses implement this to render their specific content */\n protected abstract renderTileContent(): TemplateResult;\n\n public async connectedCallback(): Promise {\n await super.connectedCallback();\n this.setupIntersectionObserver();\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n }\n\n private setupIntersectionObserver(): void {\n this.observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n const wasVisible = this._visible;\n this._visible = entry.isIntersecting;\n if (this._visible && !wasVisible) {\n this.onBecameVisible();\n }\n }\n },\n { root: null, rootMargin: '200px', threshold: 0.01 }\n );\n this.observer.observe(this);\n }\n\n /** Called when the tile first enters the viewport. Override for lazy loading. */\n protected onBecameVisible(): void {\n // Subclasses can override\n }\n\n /** Called when mouse enters the tile container. Override in subclasses. */\n protected onTileMouseEnter(): void {}\n\n /** Called when mouse leaves the tile container. Override in subclasses. */\n protected onTileMouseLeave(): void {}\n\n /** Called when mouse moves over the tile container. Override in subclasses. */\n protected onTileMouseMove(_e: MouseEvent): void {}\n\n protected handleTileClick(): void {\n if (!this.clickable) return;\n this.dispatchEvent(\n new CustomEvent('tile-click', {\n detail: this.getTileClickDetail(),\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /** Return the detail object for tile-click events. Override in subclasses. */\n protected getTileClickDetail(): Record {\n return {};\n }\n}\n", "export interface PooledCanvas {\n canvas: HTMLCanvasElement;\n ctx: CanvasRenderingContext2D;\n inUse: boolean;\n lastUsed: number;\n}\n\nexport class CanvasPool {\n private static pool: PooledCanvas[] = [];\n private static maxPoolSize = 20;\n private static readonly MIN_CANVAS_SIZE = 256;\n private static readonly MAX_CANVAS_SIZE = 4096;\n\n public static acquire(width: number, height: number): PooledCanvas {\n // Try to find a suitable canvas from the pool\n const suitable = this.pool.find(\n (item) => !item.inUse &&\n item.canvas.width >= width &&\n item.canvas.height >= height &&\n item.canvas.width <= width * 1.5 &&\n item.canvas.height <= height * 1.5\n );\n\n if (suitable) {\n suitable.inUse = true;\n suitable.lastUsed = Date.now();\n\n // Clear and resize if needed\n suitable.canvas.width = width;\n suitable.canvas.height = height;\n suitable.ctx.clearRect(0, 0, width, height);\n\n return suitable;\n }\n\n // Create new canvas if pool not full\n if (this.pool.length < this.maxPoolSize) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d', {\n alpha: true,\n desynchronized: true,\n }) as CanvasRenderingContext2D;\n\n canvas.width = Math.min(Math.max(width, this.MIN_CANVAS_SIZE), this.MAX_CANVAS_SIZE);\n canvas.height = Math.min(Math.max(height, this.MIN_CANVAS_SIZE), this.MAX_CANVAS_SIZE);\n\n const pooledCanvas: PooledCanvas = {\n canvas,\n ctx,\n inUse: true,\n lastUsed: Date.now(),\n };\n\n this.pool.push(pooledCanvas);\n return pooledCanvas;\n }\n\n // Evict and reuse least recently used canvas\n const lru = this.pool\n .filter((item) => !item.inUse)\n .sort((a, b) => a.lastUsed - b.lastUsed)[0];\n\n if (lru) {\n lru.canvas.width = width;\n lru.canvas.height = height;\n lru.ctx.clearRect(0, 0, width, height);\n lru.inUse = true;\n lru.lastUsed = Date.now();\n return lru;\n }\n\n // Fallback: create temporary canvas (shouldn't normally happen)\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n canvas.width = width;\n canvas.height = height;\n\n return {\n canvas,\n ctx,\n inUse: true,\n lastUsed: Date.now(),\n };\n }\n\n public static release(pooledCanvas: PooledCanvas) {\n if (this.pool.includes(pooledCanvas)) {\n pooledCanvas.inUse = false;\n // Clear canvas to free memory\n pooledCanvas.ctx.clearRect(0, 0, pooledCanvas.canvas.width, pooledCanvas.canvas.height);\n }\n }\n\n public static releaseAll() {\n for (const item of this.pool) {\n item.inUse = false;\n item.ctx.clearRect(0, 0, item.canvas.width, item.canvas.height);\n }\n }\n\n public static destroy() {\n for (const item of this.pool) {\n item.canvas.width = 0;\n item.canvas.height = 0;\n }\n this.pool = [];\n }\n\n public static getStats() {\n return {\n poolSize: this.pool.length,\n maxPoolSize: this.maxPoolSize,\n inUse: this.pool.filter((item) => item.inUse).length,\n available: this.pool.filter((item) => !item.inUse).length,\n };\n }\n\n public static adjustPoolSize(newSize: number) {\n if (newSize < this.pool.length) {\n // Remove excess canvases\n const toRemove = this.pool.length - newSize;\n const removed = this.pool\n .filter((item) => !item.inUse)\n .slice(0, toRemove);\n\n for (const item of removed) {\n const index = this.pool.indexOf(item);\n if (index > -1) {\n this.pool.splice(index, 1);\n }\n }\n }\n this.maxPoolSize = newSize;\n }\n}", "export function debounce any>(\n func: T,\n wait: number\n): (...args: Parameters) => void {\n let timeout: number | undefined;\n\n return function executedFunction(...args: Parameters) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n\n clearTimeout(timeout);\n timeout = window.setTimeout(later, wait);\n };\n}\n\nexport function throttle any>(\n func: T,\n limit: number\n): (...args: Parameters) => void {\n let inThrottle: boolean;\n\n return function executedFunction(...args: Parameters) {\n if (!inThrottle) {\n func.apply(this, args);\n inThrottle = true;\n setTimeout(() => inThrottle = false, limit);\n }\n };\n}\n\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return Math.round(bytes / Math.pow(k, i) * 100) / 100 + ' ' + sizes[i];\n}\n\nexport function isInViewport(element: Element, margin = 0): boolean {\n const rect = element.getBoundingClientRect();\n return (\n rect.top >= -margin &&\n rect.left >= -margin &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) + margin &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) + margin\n );\n}\n\nexport class PerformanceMonitor {\n private static marks = new Map();\n private static measures: Array<{ name: string; duration: number }> = [];\n\n public static mark(name: string) {\n this.marks.set(name, performance.now());\n }\n\n public static measure(name: string, startMark: string) {\n const start = this.marks.get(startMark);\n if (start) {\n const duration = performance.now() - start;\n this.measures.push({ name, duration });\n this.marks.delete(startMark);\n return duration;\n }\n return 0;\n }\n\n public static getReport() {\n const report = {\n measures: [...this.measures],\n averages: {} as Record,\n };\n\n // Calculate averages for repeated measures\n const grouped = new Map();\n for (const measure of this.measures) {\n if (!grouped.has(measure.name)) {\n grouped.set(measure.name, []);\n }\n grouped.get(measure.name)!.push(measure.duration);\n }\n\n for (const [name, durations] of grouped) {\n report.averages[name] = durations.reduce((a, b) => a + b, 0) / durations.length;\n }\n\n return report;\n }\n\n public static clear() {\n this.marks.clear();\n this.measures = [];\n }\n}", "import { css, cssManager } from '@design.estate/dees-element';\n\nexport const tilePdfStyles = css`\n .preview-stack {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n overflow: hidden;\n }\n\n .preview-stack.non-a4 {\n padding: 12px;\n }\n\n .preview-canvas {\n position: relative;\n background: white;\n display: block;\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n object-fit: contain;\n image-rendering: auto;\n -webkit-font-smoothing: antialiased;\n box-shadow: 0 1px 3px ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(0, 0, 0, 0.3)')};\n }\n\n .non-a4 .preview-canvas {\n border: 1px solid ${cssManager.bdTheme('hsl(214 31% 92%)', 'hsl(217 25% 24%)')};\n border-radius: 4px;\n }\n\n /* Grid optimizations */\n :host([grid-mode]) .preview-canvas {\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n }\n`;\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => {\n const samplePdfs = [\n 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/examples/learning/helloworld.pdf',\n 'https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf',\n ];\n\n const generateGridItems = (count: number) => {\n const items = [];\n for (let i = 0; i < count; i++) {\n const pdfUrl = samplePdfs[i % samplePdfs.length];\n items.push(html`\n {\n console.log('PDF Tile clicked:', e.detail);\n alert(`PDF clicked: ${e.detail.pageCount} pages`);\n }}\n >\n `);\n }\n return items;\n };\n\n return html`\n \n\n
        \n
        \n

        Single PDF Tile

        \n \n
        \n\n
        \n

        Different Sizes

        \n
        \n
        Small:
        \n \n
        \n\n
        \n
        Default:
        \n \n
        \n\n
        \n
        Large:
        \n \n
        \n
        \n\n
        \n

        With Label

        \n \n
        \n\n
        \n

        Non-Clickable

        \n \n
        \n\n
        \n

        Grid - 20 PDFs with Lazy Loading

        \n
        \n ${generateGridItems(20)}\n
        \n
        \n
        \n `;\n};\n", "import { property, html, customElement, type TemplateResult, type CSSResult } from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { PdfManager } from '../dees-pdf-shared/PdfManager.js';\nimport { CanvasPool, type PooledCanvas } from '../dees-pdf-shared/CanvasPool.js';\nimport { PerformanceMonitor, throttle } from '../dees-pdf-shared/utils.js';\nimport { tilePdfStyles } from './styles.js';\nimport { demo as demoFunc } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-pdf': DeesTilePdf;\n }\n}\n\n@customElement('dees-tile-pdf')\nexport class DeesTilePdf extends DeesTileBase {\n public static demo = demoFunc;\n public static demoGroups = ['Media', 'PDF'];\n public static styles = [...tileBaseStyles, tilePdfStyles] as any;\n\n @property({ type: String })\n accessor pdfUrl: string = '';\n\n @property({ type: Number })\n accessor currentPreviewPage: number = 1;\n\n @property({ type: Number })\n accessor pageCount: number = 0;\n\n @property({ type: Boolean })\n accessor rendered: boolean = false;\n\n @property({ type: Boolean })\n accessor isHovering: boolean = false;\n\n @property({ type: Boolean })\n accessor isA4Format: boolean = true;\n\n private renderPagesTask: Promise | null = null;\n private renderPagesQueued: boolean = false;\n private pdfDocument: any;\n private canvases: PooledCanvas[] = [];\n private resizeObserver?: ResizeObserver;\n private stackElement: HTMLElement | null = null;\n private loadedPdfUrl: string | null = null;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
        \n \n
        \n\n ${this.pageCount > 1 && this.isHovering ? html`\n
        \n Page ${this.currentPreviewPage} of ${this.pageCount}\n
        \n ` : ''}\n\n ${this.pageCount > 0 && !this.isHovering ? html`\n
        \n ${this.pageCount} page${this.pageCount > 1 ? 's' : ''}\n
        \n ` : ''}\n\n ${this.clickable ? html`\n
        \n \n View PDF\n
        \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n pdfUrl: this.pdfUrl,\n pageCount: this.pageCount,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.rendered && this.pdfUrl) {\n this.loadAndRenderPreview();\n }\n }\n\n protected onTileMouseEnter(): void {\n this.isHovering = true;\n }\n\n protected onTileMouseLeave(): void {\n this.isHovering = false;\n if (this.currentPreviewPage !== 1) {\n this.currentPreviewPage = 1;\n void this.scheduleRenderPages();\n }\n }\n\n protected onTileMouseMove(e: MouseEvent): void {\n if (!this.isHovering || this.pageCount <= 1) return;\n\n const rect = this.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const width = rect.width;\n\n const percentage = Math.max(0, Math.min(1, x / width));\n const newPage = Math.ceil(percentage * this.pageCount) || 1;\n\n if (newPage !== this.currentPreviewPage) {\n this.currentPreviewPage = newPage;\n void this.scheduleRenderPages();\n }\n }\n\n public async connectedCallback(): Promise {\n await super.connectedCallback();\n await this.updateComplete;\n this.cacheElements();\n this.setupResizeObserver();\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n this.cleanup();\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n }\n\n private async loadAndRenderPreview(): Promise {\n if (this.rendered || this.loading) return;\n\n this.loading = true;\n this.error = false;\n PerformanceMonitor.mark(`preview-load-${this.pdfUrl}`);\n\n try {\n this.pdfDocument = await PdfManager.loadDocument(this.pdfUrl);\n this.pageCount = this.pdfDocument.numPages;\n this.currentPreviewPage = 1;\n this.loadedPdfUrl = this.pdfUrl;\n\n this.loading = false;\n await this.updateComplete;\n this.cacheElements();\n\n await this.scheduleRenderPages();\n this.rendered = true;\n\n const duration = PerformanceMonitor.measure(`preview-render-${this.pdfUrl}`, `preview-load-${this.pdfUrl}`);\n console.log(`PDF tile rendered in ${duration}ms`);\n } catch (error) {\n console.error('Failed to load PDF tile:', error);\n this.error = true;\n this.loading = false;\n }\n }\n\n private scheduleRenderPages(): Promise {\n if (!this.pdfDocument) {\n return Promise.resolve();\n }\n\n if (this.renderPagesTask) {\n this.renderPagesQueued = true;\n return this.renderPagesTask;\n }\n\n this.renderPagesTask = (async () => {\n try {\n await this.performRenderPages();\n } catch (error) {\n console.error('Failed to render PDF tile pages:', error);\n }\n })().finally(() => {\n this.renderPagesTask = null;\n if (this.renderPagesQueued) {\n this.renderPagesQueued = false;\n void this.scheduleRenderPages();\n }\n });\n\n return this.renderPagesTask;\n }\n\n private async performRenderPages(): Promise {\n if (!this.pdfDocument) return;\n\n await new Promise(resolve => requestAnimationFrame(resolve));\n\n const canvas = this.shadowRoot?.querySelector('.preview-canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n this.clearCanvases();\n this.cacheElements();\n\n const { availableWidth, availableHeight } = this.getAvailableSize();\n\n try {\n const pageNum = this.currentPreviewPage;\n const page = await this.pdfDocument.getPage(pageNum);\n\n const initialViewport = page.getViewport({ scale: 1 });\n const aspectRatio = initialViewport.height / initialViewport.width;\n\n const a4PortraitRatio = 1.414;\n const a4LandscapeRatio = 0.707;\n const letterPortraitRatio = 1.294;\n const letterLandscapeRatio = 0.773;\n const tolerance = 0.05;\n\n const isA4Portrait = Math.abs(aspectRatio - a4PortraitRatio) < (a4PortraitRatio * tolerance);\n const isA4Landscape = Math.abs(aspectRatio - a4LandscapeRatio) < (a4LandscapeRatio * tolerance);\n const isLetterPortrait = Math.abs(aspectRatio - letterPortraitRatio) < (letterPortraitRatio * tolerance);\n const isLetterLandscape = Math.abs(aspectRatio - letterLandscapeRatio) < (letterLandscapeRatio * tolerance);\n\n this.isA4Format = isA4Portrait || isA4Landscape || isLetterPortrait || isLetterLandscape;\n\n const adjustedWidth = this.isA4Format ? availableWidth : availableWidth - 24;\n const adjustedHeight = this.isA4Format ? availableHeight : availableHeight - 24;\n\n const scaleX = adjustedWidth > 0 ? adjustedWidth / initialViewport.width : 0;\n const scaleY = adjustedHeight > 0 ? adjustedHeight / initialViewport.height : 0;\n const baseScale = Math.min(scaleX || 0.5, scaleY || scaleX || 0.5);\n const renderScale = Math.min(baseScale * 2, 3.0);\n\n if (!Number.isFinite(renderScale) || renderScale <= 0) {\n page.cleanup?.();\n return;\n }\n\n const viewport = page.getViewport({ scale: renderScale });\n\n const pooledCanvas = CanvasPool.acquire(viewport.width, viewport.height);\n this.canvases.push(pooledCanvas);\n\n const renderContext = {\n canvasContext: pooledCanvas.ctx,\n viewport: viewport,\n };\n\n await page.render(renderContext).promise;\n\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n\n const displayWidth = adjustedWidth;\n const displayHeight = (viewport.height / viewport.width) * adjustedWidth;\n\n if (displayHeight > adjustedHeight) {\n const altDisplayHeight = adjustedHeight;\n const altDisplayWidth = (viewport.width / viewport.height) * adjustedHeight;\n canvas.style.width = `${altDisplayWidth}px`;\n canvas.style.height = `${altDisplayHeight}px`;\n } else {\n canvas.style.width = `${displayWidth}px`;\n canvas.style.height = `${displayHeight}px`;\n }\n\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = 'high';\n ctx.drawImage(pooledCanvas.canvas, 0, 0);\n }\n\n page.cleanup();\n } catch (error) {\n console.error(`Failed to render page ${this.currentPreviewPage}:`, error);\n }\n }\n\n private clearCanvases(): void {\n for (const pooledCanvas of this.canvases) {\n CanvasPool.release(pooledCanvas);\n }\n this.canvases = [];\n }\n\n private cleanup(): void {\n this.clearCanvases();\n\n if (this.pdfDocument) {\n PdfManager.releaseDocument(this.loadedPdfUrl ?? this.pdfUrl);\n this.pdfDocument = null;\n }\n\n this.renderPagesQueued = false;\n this.pageCount = 0;\n this.currentPreviewPage = 1;\n this.isHovering = false;\n this.isA4Format = true;\n this.stackElement = null;\n this.loadedPdfUrl = null;\n this.rendered = false;\n this.loading = false;\n this.error = false;\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n\n if (changedProperties.has('pdfUrl') && this.pdfUrl) {\n const previousUrl = changedProperties.get('pdfUrl') as string | undefined;\n if (previousUrl) {\n PdfManager.releaseDocument(previousUrl);\n }\n this.cleanup();\n this.rendered = false;\n this.currentPreviewPage = 1;\n\n const rect = this.getBoundingClientRect();\n if (rect.top < window.innerHeight && rect.bottom > 0) {\n this.loadAndRenderPreview();\n }\n }\n\n if (changedProperties.has('currentPreviewPage') && this.rendered) {\n await this.scheduleRenderPages();\n }\n }\n\n public getContextMenuItems(): any[] {\n const items: any[] = [];\n\n if (this.clickable) {\n items.push({\n name: 'View PDF',\n iconName: 'lucide:Eye',\n action: async () => {\n this.dispatchEvent(new CustomEvent('tile-click', {\n detail: this.getTileClickDetail(),\n bubbles: true,\n composed: true,\n }));\n }\n });\n items.push({ divider: true });\n }\n\n items.push(\n {\n name: 'Open PDF in New Tab',\n iconName: 'lucide:ExternalLink',\n action: async () => {\n window.open(this.pdfUrl, '_blank');\n }\n },\n { divider: true },\n {\n name: 'Copy PDF URL',\n iconName: 'lucide:Copy',\n action: async () => {\n await navigator.clipboard.writeText(this.pdfUrl);\n }\n },\n {\n name: 'Download PDF',\n iconName: 'lucide:Download',\n action: async () => {\n const link = document.createElement('a');\n link.href = this.pdfUrl;\n link.download = this.pdfUrl.split('/').pop() || 'document.pdf';\n link.click();\n }\n }\n );\n\n if (this.pageCount > 0) {\n items.push(\n { divider: true },\n {\n name: `${this.pageCount} page${this.pageCount > 1 ? 's' : ''}`,\n iconName: 'lucide:FileText',\n disabled: true,\n action: async () => {}\n }\n );\n }\n\n return items;\n }\n\n private cacheElements(): void {\n if (!this.stackElement) {\n this.stackElement = this.shadowRoot?.querySelector('.preview-stack') as HTMLElement;\n }\n }\n\n private setupResizeObserver(): void {\n if (this.resizeObserver) return;\n\n this.resizeObserver = new ResizeObserver(() => {\n if (this.rendered && this.pdfDocument && !this.loading) {\n void this.scheduleRenderPages();\n }\n });\n\n this.resizeObserver.observe(this);\n }\n\n private getAvailableSize(): { availableWidth: number; availableHeight: number } {\n if (!this.stackElement) {\n this.stackElement = this.shadowRoot?.querySelector('.preview-stack') as HTMLElement;\n }\n\n if (!this.stackElement) {\n return { availableWidth: 200, availableHeight: 260 };\n }\n\n const rect = this.stackElement.getBoundingClientRect();\n const availableWidth = Math.max(rect.width, 0) || 200;\n const availableHeight = Math.max(rect.height, 0) || 260;\n\n return { availableWidth, availableHeight };\n }\n}\n", "import { customElement } from '@design.estate/dees-element';\nimport { DeesTilePdf } from '../dees-tile-pdf/component.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-pdf-preview': DeesPdfPreview;\n }\n}\n\n/**\n * @deprecated Use instead. This component will be removed in a future release.\n */\n@customElement('dees-pdf-preview')\nexport class DeesPdfPreview extends DeesTilePdf {\n public static demoGroups: never[] = []; // Hide from demo catalog\n\n public connectedCallback(): Promise {\n console.warn(\n '[dees-pdf-preview] is deprecated. Use instead. ' +\n 'This component will be removed in a future release.'\n );\n return super.connectedCallback();\n }\n}\n", "export * from './component.js';\n", "export * from './CanvasPool.js';\nexport * from './PdfManager.js';\nexport * from './utils.js';\n", "export * from './component.js';\n", "export { DeesTileBase } from './DeesTileBase.js';\nexport { tileBaseStyles } from './styles.js';\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
        \n
        \n

        Image Tiles

        \n
        \n console.log('Image clicked:', e.detail)}\n >\n\n \n\n \n
        \n
        \n\n
        \n

        Size Variants

        \n
        \n \n\n \n\n \n
        \n
        \n\n
        \n

        Error State (broken URL)

        \n \n
        \n
        \n`;\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-image': DeesTileImage;\n }\n}\n\n@customElement('dees-tile-image')\nexport class DeesTileImage extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .image-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n background: ${cssManager.bdTheme(\n 'repeating-conic-gradient(#e8e8e8 0% 25%, white 0% 50%) 50% / 16px 16px',\n 'repeating-conic-gradient(hsl(215 20% 18%) 0% 25%, hsl(215 20% 14%) 0% 50%) 50% / 16px 16px'\n )};\n }\n\n .image-wrapper img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n transition: opacity 0.3s ease;\n }\n\n .image-wrapper img.loaded {\n opacity: 1;\n }\n\n .image-wrapper img.loading {\n opacity: 0;\n }\n\n .tile-badge-topright.dimension-badge {\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n\n .tile-container.clickable:hover .tile-badge-topright.dimension-badge {\n opacity: 1;\n }\n `,\n ] as any;\n\n @property({ type: String })\n accessor src: string = '';\n\n @property({ type: String })\n accessor alt: string = '';\n\n @state()\n accessor imageLoaded: boolean = false;\n\n @state()\n accessor imageWidth: number = 0;\n\n @state()\n accessor imageHeight: number = 0;\n\n private hasStartedLoading: boolean = false;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
        \n ${this.hasStartedLoading ? html`\n \n ` : ''}\n
        \n\n ${this.imageWidth > 0 && this.imageHeight > 0 ? html`\n
        \n ${this.imageWidth} \u00D7 ${this.imageHeight}\n
        \n ` : ''}\n\n ${this.imageLoaded ? html`\n
        \n \n ${this.imageWidth} \u00D7 ${this.imageHeight}\n
        \n ` : ''}\n\n ${this.clickable ? html`\n
        \n \n View Image\n
        \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n src: this.src,\n alt: this.alt,\n width: this.imageWidth,\n height: this.imageHeight,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.hasStartedLoading && this.src) {\n this.hasStartedLoading = true;\n this.loading = true;\n this.requestUpdate();\n }\n }\n\n private handleImageLoad(e: Event): void {\n const img = e.target as HTMLImageElement;\n this.imageWidth = img.naturalWidth;\n this.imageHeight = img.naturalHeight;\n this.imageLoaded = true;\n this.loading = false;\n }\n\n private handleImageError(): void {\n this.error = true;\n this.loading = false;\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src && this.isVisible) {\n this.hasStartedLoading = true;\n this.imageLoaded = false;\n this.loading = true;\n }\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
        \n
        \n

        Audio Tiles

        \n
        \n console.log('Audio clicked:', e.detail)}\n >\n\n \n\n \n
        \n
        \n\n
        \n

        Size Variants

        \n
        \n \n\n \n\n \n
        \n
        \n
        \n`;\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-audio': DeesTileAudio;\n }\n}\n\n@customElement('dees-tile-audio')\nexport class DeesTileAudio extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .audio-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n background: ${cssManager.bdTheme(\n 'linear-gradient(135deg, hsl(250 40% 96%), hsl(280 30% 94%))',\n 'linear-gradient(135deg, hsl(250 30% 16%), hsl(280 25% 14%))'\n )};\n }\n\n .music-icon {\n font-size: 48px;\n color: ${cssManager.bdTheme('hsl(250 60% 65%)', 'hsl(250 60% 70%)')};\n opacity: 0.8;\n }\n\n .audio-title {\n font-size: 12px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(250 20% 35%)', 'hsl(250 20% 80%)')};\n text-align: center;\n padding: 0 16px;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .audio-artist {\n font-size: 11px;\n font-weight: 400;\n color: ${cssManager.bdTheme('hsl(250 15% 50%)', 'hsl(250 15% 65%)')};\n text-align: center;\n padding: 0 16px;\n margin-top: -12px;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .waveform-container {\n width: calc(100% - 32px);\n height: 40px;\n position: relative;\n overflow: hidden;\n }\n\n .waveform-container canvas {\n width: 100%;\n height: 100%;\n display: block;\n }\n\n\n .play-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.2s ease;\n z-index: 18;\n pointer-events: none;\n }\n\n .tile-container.clickable:hover .play-overlay {\n opacity: 1;\n }\n\n .play-circle {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n backdrop-filter: blur(8px);\n }\n\n .play-circle dees-icon {\n font-size: 20px;\n color: white;\n }\n `,\n ] as any;\n\n @property({ type: String })\n accessor src: string = '';\n\n @property({ type: String })\n accessor title: string = '';\n\n @property({ type: String })\n accessor artist: string = '';\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor waveformData: number[] = [];\n\n @state()\n accessor waveformReady: boolean = false;\n\n @state()\n accessor isPreviewPlaying: boolean = false;\n\n private audioElement: HTMLAudioElement | null = null;\n private previewTimeout: ReturnType | null = null;\n private hasLoadedWaveform: boolean = false;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
        \n \n\n ${this.title ? html`
        ${this.title}
        ` : ''}\n ${this.artist ? html`
        ${this.artist}
        ` : ''}\n\n ${this.waveformReady ? html`\n
        \n \n
        \n ` : ''}\n
        \n\n ${this.duration > 0 ? html`\n
        ${this.formatTime(this.duration)}
        \n ` : ''}\n\n
        \n
        \n \n
        \n
        \n\n ${this.clickable ? html`\n
        \n \n Play Audio\n
        \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n src: this.src,\n title: this.title,\n artist: this.artist,\n duration: this.duration,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.hasLoadedWaveform && this.src) {\n this.hasLoadedWaveform = true;\n this.loadAudioMeta();\n }\n }\n\n private async loadAudioMeta(): Promise {\n this.loading = true;\n\n try {\n // Load duration via Audio element\n const audio = new Audio();\n audio.crossOrigin = 'anonymous';\n audio.preload = 'metadata';\n\n await new Promise((resolve, reject) => {\n audio.addEventListener('loadedmetadata', () => {\n this.duration = audio.duration;\n resolve();\n }, { once: true });\n audio.addEventListener('error', () => reject(new Error('Failed to load audio')), { once: true });\n audio.src = this.src;\n });\n\n // Load waveform data\n await this.loadWaveform();\n this.loading = false;\n } catch {\n this.loading = false;\n // Don't set error - audio may still be playable, just no waveform\n }\n }\n\n private async loadWaveform(): Promise {\n try {\n const response = await fetch(this.src);\n const arrayBuffer = await response.arrayBuffer();\n const audioContext = new AudioContext();\n const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);\n\n const channelData = audioBuffer.getChannelData(0);\n const bars = 80;\n const blockSize = Math.floor(channelData.length / bars);\n const waveform: number[] = [];\n\n for (let i = 0; i < bars; i++) {\n let sum = 0;\n for (let j = 0; j < blockSize; j++) {\n sum += Math.abs(channelData[i * blockSize + j]);\n }\n waveform.push(sum / blockSize);\n }\n\n const max = Math.max(...waveform);\n this.waveformData = waveform.map((v) => (max > 0 ? v / max : 0));\n this.waveformReady = true;\n\n await audioContext.close();\n await this.updateComplete;\n this.drawWaveform();\n } catch {\n this.waveformReady = false;\n }\n }\n\n private drawWaveform(): void {\n if (!this.waveformReady) return;\n\n const canvas = this.shadowRoot?.querySelector('.waveform-container canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n const container = canvas.parentElement!;\n const dpr = window.devicePixelRatio || 1;\n const width = container.clientWidth;\n const height = container.clientHeight;\n\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, width, height);\n\n const bars = this.waveformData.length;\n if (bars === 0) return;\n\n const barWidth = width / bars;\n\n const isDark = document.body.classList.contains('theme-dark') ||\n window.matchMedia('(prefers-color-scheme: dark)').matches;\n const barColor = isDark ? 'hsl(250 50% 60%)' : 'hsl(250 50% 70%)';\n\n ctx.fillStyle = barColor;\n for (let i = 0; i < bars; i++) {\n const amplitude = this.waveformData[i];\n const barHeight = Math.max(2, amplitude * (height - 4));\n const x = i * barWidth;\n const y = (height - barHeight) / 2;\n ctx.fillRect(x + 0.5, y, barWidth - 1, barHeight);\n }\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src && this.isVisible) {\n this.hasLoadedWaveform = true;\n this.waveformReady = false;\n this.duration = 0;\n this.loadAudioMeta();\n }\n if (changedProperties.has('waveformReady') && this.waveformReady) {\n await this.updateComplete;\n this.drawWaveform();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.previewTimeout) {\n clearTimeout(this.previewTimeout);\n }\n if (this.audioElement) {\n this.audioElement.pause();\n this.audioElement.src = '';\n this.audioElement = null;\n }\n }\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => html`\n \n\n
        \n
        \n

        Video Tiles

        \n
        \n console.log('Video clicked:', e.detail)}\n >\n\n \n\n \n
        \n
        \n\n
        \n

        Size Variants

        \n
        \n \n\n \n\n \n
        \n
        \n\n
        \n

        With Poster Image

        \n \n
        \n
        \n`;\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-video': DeesTileVideo;\n }\n}\n\n@customElement('dees-tile-video')\nexport class DeesTileVideo extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .video-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background: #000;\n }\n\n .video-wrapper video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .video-wrapper canvas {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .poster-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n\n .play-overlay {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 15;\n pointer-events: none;\n transition: opacity 0.2s ease;\n }\n\n .play-overlay dees-icon {\n font-size: 20px;\n color: white;\n }\n\n .tile-container.clickable:hover .play-overlay {\n opacity: 0;\n }\n\n .video-hover-preview {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n z-index: 5;\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n\n .video-hover-preview.active {\n opacity: 1;\n }\n `,\n ] as any;\n\n @property({ type: String })\n accessor src: string = '';\n\n @property({ type: String })\n accessor poster: string = '';\n\n @state()\n accessor duration: number = 0;\n\n @state()\n accessor thumbnailCaptured: boolean = false;\n\n @state()\n accessor isHovering: boolean = false;\n\n private thumbnailCanvas: HTMLCanvasElement | null = null;\n private hoverVideo: HTMLVideoElement | null = null;\n private hasStartedLoading: boolean = false;\n\n protected renderTileContent(): TemplateResult {\n return html`\n
        \n ${this.poster ? html`\n \"\"\n ` : this.thumbnailCaptured ? html`\n \n ` : html`\n
        \n `}\n\n ${this.isHovering && this.src ? html`\n \n ` : ''}\n
        \n\n ${this.duration > 0 ? html`\n
        ${this.formatTime(this.duration)}
        \n ` : ''}\n\n ${!this.isHovering ? html`\n
        \n \n
        \n ` : ''}\n\n ${this.clickable ? html`\n
        \n \n Play Video\n
        \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n src: this.src,\n poster: this.poster,\n duration: this.duration,\n };\n }\n\n protected onBecameVisible(): void {\n if (!this.hasStartedLoading && this.src) {\n this.hasStartedLoading = true;\n this.captureFirstFrame();\n }\n }\n\n private async captureFirstFrame(): Promise {\n if (this.poster) {\n // If poster is provided, just load duration\n this.loadDuration();\n return;\n }\n\n this.loading = true;\n\n try {\n const video = document.createElement('video');\n video.crossOrigin = 'anonymous';\n video.muted = true;\n video.preload = 'metadata';\n\n await new Promise((resolve, reject) => {\n video.addEventListener('loadeddata', () => {\n this.duration = video.duration;\n\n // Capture the first frame\n video.currentTime = 0.1; // Slightly after start for better frame\n video.addEventListener('seeked', () => {\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.drawImage(video, 0, 0);\n this.thumbnailCanvas = canvas;\n this.thumbnailCaptured = true;\n }\n\n // Clean up\n video.src = '';\n video.load();\n resolve();\n }, { once: true });\n }, { once: true });\n\n video.addEventListener('error', () => reject(new Error('Failed to load video')), { once: true });\n video.src = this.src;\n });\n\n this.loading = false;\n\n // Copy thumbnail to shadow DOM canvas\n await this.updateComplete;\n this.copyThumbnailToCanvas();\n } catch {\n this.loading = false;\n // Don't set error for thumbnail failure\n this.loadDuration();\n }\n }\n\n private loadDuration(): void {\n const video = document.createElement('video');\n video.preload = 'metadata';\n video.addEventListener('loadedmetadata', () => {\n this.duration = video.duration;\n video.src = '';\n video.load();\n });\n video.src = this.src;\n }\n\n private copyThumbnailToCanvas(): void {\n if (!this.thumbnailCanvas) return;\n const canvas = this.shadowRoot?.querySelector('.video-wrapper canvas') as HTMLCanvasElement;\n if (!canvas) return;\n\n canvas.width = this.thumbnailCanvas.width;\n canvas.height = this.thumbnailCanvas.height;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.drawImage(this.thumbnailCanvas, 0, 0);\n }\n }\n\n protected onTileMouseEnter(): void {\n this.isHovering = true;\n }\n\n protected onTileMouseLeave(): void {\n this.isHovering = false;\n // The video element will be removed from DOM by the template\n this.hoverVideo = null;\n }\n\n private handleHoverVideoLoaded(e: Event): void {\n this.hoverVideo = e.target as HTMLVideoElement;\n this.hoverVideo.play().catch(() => {\n // Autoplay may be blocked\n });\n }\n\n public async updated(changedProperties: Map): Promise {\n super.updated(changedProperties);\n if (changedProperties.has('src') && this.src && this.isVisible) {\n this.hasStartedLoading = true;\n this.thumbnailCaptured = false;\n this.duration = 0;\n this.captureFirstFrame();\n }\n if (changedProperties.has('thumbnailCaptured') && this.thumbnailCaptured) {\n await this.updateComplete;\n this.copyThumbnailToCanvas();\n }\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n if (this.hoverVideo) {\n this.hoverVideo.pause();\n this.hoverVideo.src = '';\n this.hoverVideo = null;\n }\n this.thumbnailCanvas = null;\n }\n\n private formatTime(seconds: number): string {\n if (!isFinite(seconds) || seconds < 0) return '0:00';\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, '0')}`;\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demo = () => {\n const sampleCode = `import { html } from 'lit';\n\nexport class MyComponent {\n private items: string[] = [];\n\n render() {\n return html\\`\n
        \n \\${this.items.map(item => html\\`\n \\${item}\n \\`)}\n
        \n \\`;\n }\n}`;\n\n const sampleText = `Meeting Notes - Q4 Planning\nDate: January 15, 2026\nAttendees: Alice, Bob, Charlie\n\nKey Decisions:\n1. Launch new feature by March\n2. Hire 2 more engineers\n3. Migrate to new CI/CD pipeline\n4. Update design system to v3\n\nAction Items:\n- Alice: Draft PRD by next week\n- Bob: Set up interview pipeline\n- Charlie: Evaluate Jenkins vs GitHub Actions`;\n\n const sampleJson = `{\n \"name\": \"@design.estate/dees-catalog\",\n \"version\": \"3.38.0\",\n \"description\": \"Design component catalog\",\n \"dependencies\": {\n \"@design.estate/dees-element\": \"^2.0.0\",\n \"lit\": \"^3.1.0\"\n },\n \"scripts\": {\n \"build\": \"tsbuild\",\n \"test\": \"tstest\"\n }\n}`;\n\n return html`\n \n\n
        \n
        \n

        Note Tiles

        \n
        \n console.log('Note clicked:', e.detail)}\n >\n\n \n\n \n
        \n
        \n\n
        \n

        Size Variants

        \n
        \n \n\n \n\n \n
        \n
        \n\n
        \n

        Without Title

        \n \n
        \n
        \n `;\n};\n", "import {\n property,\n state,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-note': DeesTileNote;\n }\n}\n\n@customElement('dees-tile-note')\nexport class DeesTileNote extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .note-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('#ffffff', 'hsl(60 5% 96%)')};\n overflow: hidden;\n }\n\n .note-header {\n padding: 12px 14px 8px;\n flex-shrink: 0;\n }\n\n .note-title {\n font-size: 12px;\n font-weight: 700;\n color: ${cssManager.bdTheme('hsl(215 20% 20%)', 'hsl(215 20% 20%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.3;\n }\n\n .note-body {\n flex: 1;\n padding: 0 14px 14px;\n position: relative;\n overflow: hidden;\n }\n\n .note-text {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 10px;\n line-height: 1.5;\n color: ${cssManager.bdTheme('hsl(215 10% 40%)', 'hsl(215 10% 35%)')};\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow: hidden;\n margin: 0;\n }\n\n .note-fade {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n background: linear-gradient(\n transparent,\n ${cssManager.bdTheme('#ffffff', 'hsl(60 5% 96%)')}\n );\n pointer-events: none;\n }\n\n .tile-badge-topright.note-language {\n background: ${cssManager.bdTheme('hsl(215 20% 92%)', 'hsl(215 20% 88%)')};\n color: ${cssManager.bdTheme('hsl(215 16% 50%)', 'hsl(215 16% 40%)')};\n font-size: 9px;\n text-transform: uppercase;\n z-index: 5;\n }\n\n .note-lines {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 34px;\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 70% 85%)', 'hsl(0 50% 80%)')};\n display: flex;\n flex-direction: column;\n padding-top: 12px;\n }\n\n .line-number {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-size: 9px;\n line-height: 15px; /* matches 10px * 1.5 line-height */\n color: ${cssManager.bdTheme('hsl(215 10% 75%)', 'hsl(215 10% 70%)')};\n text-align: right;\n padding-right: 6px;\n }\n\n `,\n ] as any;\n\n @property({ type: String })\n accessor title: string = '';\n\n @property({ type: String })\n accessor content: string = '';\n\n @property({ type: String })\n accessor language: string = '';\n\n @state()\n accessor isHovering: boolean = false;\n\n private noteBodyElement: HTMLElement | null = null;\n\n protected renderTileContent(): TemplateResult {\n const lines = this.content.split('\\n');\n\n return html`\n
        \n ${this.language ? html`\n
        ${this.language}
        \n ` : ''}\n\n ${this.title ? html`\n
        \n
        ${this.title}
        \n
        \n ` : ''}\n\n
        \n
        ${lines.join('\\n')}
        \n ${!this.isHovering ? html`
        ` : ''}\n
        \n\n ${this.isHovering && lines.length > 12 ? html`\n
        \n Line ${this.getVisibleLineRange(lines.length)}\n
        \n ` : ''}\n
        \n\n ${this.clickable ? html`\n
        \n \n Open Note\n
        \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n title: this.title,\n content: this.content,\n language: this.language,\n };\n }\n\n protected onTileMouseEnter(): void {\n this.isHovering = true;\n if (!this.noteBodyElement) {\n this.noteBodyElement = this.shadowRoot?.querySelector('.note-body') as HTMLElement;\n }\n }\n\n protected onTileMouseLeave(): void {\n this.isHovering = false;\n if (this.noteBodyElement) {\n this.noteBodyElement.scrollTop = 0;\n }\n }\n\n protected onTileMouseMove(e: MouseEvent): void {\n if (!this.isHovering || !this.noteBodyElement) return;\n\n const totalLines = this.content.split('\\n').length;\n if (totalLines <= 12) return;\n\n const rect = this.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const percentage = Math.max(0, Math.min(1, x / rect.width));\n\n const maxScroll = this.noteBodyElement.scrollHeight - this.noteBodyElement.clientHeight;\n this.noteBodyElement.scrollTop = percentage * maxScroll;\n }\n\n private getVisibleLineRange(totalLines: number): string {\n if (!this.noteBodyElement) return `1\u201312 of ${totalLines}`;\n const lineHeight = 15; // 10px font \u00D7 1.5 line-height\n const firstLine = Math.floor(this.noteBodyElement.scrollTop / lineHeight) + 1;\n const visibleCount = Math.floor(this.noteBodyElement.clientHeight / lineHeight);\n const lastLine = Math.min(firstLine + visibleCount - 1, totalLines);\n return `${firstLine}\u2013${lastLine} of ${totalLines}`;\n }\n}\n", "export * from './component.js';\n", "import { html } from '@design.estate/dees-element';\nimport type { ITileFolderItem } from './component.js';\n\nexport const demo = () => {\n const photosFolder: ITileFolderItem[] = [\n { type: 'image', name: 'sunset.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=1' },\n { type: 'image', name: 'mountain.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=2' },\n { type: 'image', name: 'ocean.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=3' },\n { type: 'image', name: 'forest.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=4' },\n { type: 'image', name: 'city.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=5' },\n { type: 'image', name: 'desert.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=6' },\n ];\n\n const projectFolder: ITileFolderItem[] = [\n { type: 'note', name: 'README.md' },\n { type: 'note', name: 'package.json' },\n { type: 'folder', name: 'src' },\n { type: 'folder', name: 'test' },\n { type: 'note', name: 'tsconfig.json' },\n { type: 'pdf', name: 'docs.pdf' },\n { type: 'image', name: 'logo.png', thumbnailSrc: 'https://picsum.photos/100/100?random=10' },\n ];\n\n const mediaFolder: ITileFolderItem[] = [\n { type: 'video', name: 'intro.mp4' },\n { type: 'audio', name: 'background.mp3' },\n { type: 'image', name: 'thumbnail.jpg', thumbnailSrc: 'https://picsum.photos/200/200?random=20' },\n { type: 'pdf', name: 'storyboard.pdf' },\n ];\n\n const emptyFolder: ITileFolderItem[] = [];\n\n const singleItemFolder: ITileFolderItem[] = [\n { type: 'pdf', name: 'report.pdf' },\n ];\n\n return html`\n \n\n
        \n
        \n

        Folder Tiles

        \n
        \n console.log('Folder clicked:', e.detail)}\n >\n\n \n\n \n
        \n
        \n\n
        \n

        Edge Cases

        \n
        \n \n\n \n
        \n
        \n\n
        \n

        Size Variants

        \n
        \n \n\n \n\n \n
        \n
        \n
        \n `;\n};\n", "import {\n property,\n html,\n customElement,\n css,\n cssManager,\n type TemplateResult,\n type CSSResult,\n} from '@design.estate/dees-element';\nimport { DeesTileBase } from '../dees-tile-shared/DeesTileBase.js';\nimport { tileBaseStyles } from '../dees-tile-shared/styles.js';\nimport { demo } from './demo.js';\n\nexport interface ITileFolderItem {\n type: 'pdf' | 'image' | 'audio' | 'video' | 'note' | 'folder' | 'unknown';\n thumbnailSrc?: string;\n name: string;\n}\n\nconst TYPE_ICON_MAP: Record = {\n pdf: 'lucide:FileText',\n image: 'lucide:Image',\n audio: 'lucide:Music',\n video: 'lucide:Video',\n note: 'lucide:FileCode',\n folder: 'lucide:Folder',\n unknown: 'lucide:File',\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-tile-folder': DeesTileFolder;\n }\n}\n\n@customElement('dees-tile-folder')\nexport class DeesTileFolder extends DeesTileBase {\n public static demo = demo;\n public static demoGroups = ['Media'];\n public static styles = [\n ...tileBaseStyles,\n css`\n .folder-content {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('hsl(40 30% 97%)', 'hsl(215 20% 14%)')};\n overflow: hidden;\n }\n\n .folder-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 14px 8px;\n flex-shrink: 0;\n }\n\n .folder-icon {\n font-size: 18px;\n color: ${cssManager.bdTheme('hsl(40 80% 50%)', 'hsl(40 70% 60%)')};\n }\n\n .folder-name {\n font-size: 12px;\n font-weight: 700;\n color: ${cssManager.bdTheme('hsl(215 20% 20%)', 'hsl(215 16% 80%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n }\n\n .preview-grid {\n flex: 1;\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr 1fr;\n gap: 4px;\n padding: 0 14px 14px;\n min-height: 0;\n }\n\n .grid-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n overflow: hidden;\n background: ${cssManager.bdTheme('hsl(215 20% 94%)', 'hsl(215 20% 18%)')};\n position: relative;\n }\n\n .grid-cell img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n .grid-cell dees-icon {\n font-size: 20px;\n color: ${cssManager.bdTheme('hsl(215 16% 60%)', 'hsl(215 16% 55%)')};\n }\n\n .grid-cell-empty {\n background: ${cssManager.bdTheme('hsl(215 15% 96%)', 'hsl(215 20% 16%)')};\n }\n\n `,\n ] as any;\n\n @property({ type: String })\n accessor name: string = '';\n\n @property({ attribute: false })\n accessor items: ITileFolderItem[] = [];\n\n protected renderTileContent(): TemplateResult {\n const previewItems = this.items.slice(0, 4);\n const emptyCells = 4 - previewItems.length;\n\n return html`\n
        \n
        \n \n
        ${this.name || 'Untitled Folder'}
        \n
        \n\n
        \n ${previewItems.map((item) => html`\n
        \n ${item.thumbnailSrc ? html`\n \"${item.name}\"\n ` : html`\n \n `}\n
        \n `)}\n ${Array.from({ length: emptyCells }).map(() => html`\n
        \n `)}\n
        \n
        \n\n
        \n ${this.items.length} item${this.items.length !== 1 ? 's' : ''}\n
        \n\n ${this.clickable ? html`\n
        \n \n Open Folder\n
        \n ` : ''}\n `;\n }\n\n protected getTileClickDetail(): Record {\n return {\n name: this.name,\n itemCount: this.items.length,\n items: this.items,\n };\n }\n}\n", "export * from './component.js';\n", "// Media Viewer Components\nexport * from './dees-image-viewer/index.js';\nexport * from './dees-audio-viewer/index.js';\nexport * from './dees-video-viewer/index.js';\nexport * from './dees-preview/index.js';\n\n// PDF Components\nexport * from './dees-pdf/index.js'; // @deprecated - Use dees-pdf-viewer or dees-tile-pdf instead\nexport * from './dees-pdf-preview/index.js'; // @deprecated - Use dees-tile-pdf instead\nexport * from './dees-pdf-shared/index.js';\nexport * from './dees-pdf-viewer/index.js';\n\n// Tile Components\nexport * from './dees-tile-shared/index.js';\nexport * from './dees-tile-pdf/index.js';\nexport * from './dees-tile-image/index.js';\nexport * from './dees-tile-audio/index.js';\nexport * from './dees-tile-video/index.js';\nexport * from './dees-tile-note/index.js';\nexport * from './dees-tile-folder/index.js';\n", "export * from './dees-contextmenu.js';\n", "export * from './dees-modal.js';\n", "import { html, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => {\n return html`\n \n
        \n \n `;\n};", "import * as colors from '../../00colors.js';\nimport * as plugins from '../../00plugins.js';\n\nimport { demoFunc } from './dees-speechbubble.demo.js';\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n type CSSResult,\n unsafeCSS,\n domtools,\n directives,\n unsafeHTML,\n} from '@design.estate/dees-element';\nimport { DeesWindowLayer } from '../dees-windowlayer/dees-windowlayer.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-speechbubble': DeesSpeechbubble;\n }\n}\n\n@customElement('dees-speechbubble')\nexport class DeesSpeechbubble extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Overlay'];\n\n // STATIC\n public static async createAndShow(refElement: HTMLElement, textArg: string) {\n const windowLayer = await DeesWindowLayer.createAndShow({\n blur: false,\n });\n const speechbubble = document.createElement('dees-speechbubble');\n speechbubble.windowLayer = windowLayer;\n speechbubble.reffedElement = refElement;\n speechbubble.text = textArg;\n speechbubble.manifested = true;\n windowLayer.appendChild(speechbubble);\n windowLayer.style.pointerEvents = 'none';\n (windowLayer.shadowRoot.querySelector('.windowOverlay') as HTMLElement).style.pointerEvents = 'none';\n return speechbubble;\n }\n\n // INSTANCE\n @property({\n type: Object,\n })\n accessor reffedElement: HTMLElement;\n\n @property({\n type: String,\n reflect: true,\n })\n accessor text: string;\n\n @property({\n type: Boolean,\n })\n accessor wave: boolean = false;\n\n @property({\n type: Boolean,\n })\n accessor manifested = false;\n\n @property({\n type: String,\n })\n accessor status: 'normal' | 'pending' | 'success' | 'error' = 'normal';\n\n public windowLayer: DeesWindowLayer;\n\n constructor() {\n super();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n box-sizing: border-box;\n color: ${cssManager.bdTheme('#333', '#fff')};\n user-select: none;\n }\n\n .maincontainer {\n position: relative;\n will-change: transform;\n transition: transform 0.2s;\n transform: translateX(0px);\n transition: all 0.2s;\n margin-left: 0px;\n filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.2));\n pointer-events: none;\n opacity: 0;\n transition: all 0.2s;\n }\n\n .arrow {\n position: absolute;\n transform: rotate(45deg);\n background: ${cssManager.bdTheme('#fff', '#333')};\n height: 15px;\n width: 15px;\n left: 2px;\n top: 12px;\n border-radius: 3px;\n }\n\n .speechbubble {\n background: ${cssManager.bdTheme('#fff', '#333')};\n padding: 0px 16px;\n border-radius: 3px;\n position: absolute;\n min-width: 240px;\n font-size: 12px;\n top: 0px;\n left: 8px;\n }\n\n .wave {\n animation-name: wave-animation; /* Refers to the name of your @keyframes element below */\n animation-duration: 2.5s; /* Change to speed up or slow down */\n animation-iteration-count: infinite; /* Never stop waving :) */\n transform-origin: 70% 70%; /* Pivot around the bottom-left palm */\n display: inline-block;\n }\n\n @keyframes wave-animation {\n 0% {\n transform: rotate(0deg);\n }\n 10% {\n transform: rotate(14deg);\n } /* The following five values can be played with to make the waving more or less extreme */\n 20% {\n transform: rotate(-8deg);\n }\n 30% {\n transform: rotate(14deg);\n }\n 40% {\n transform: rotate(-4deg);\n }\n 50% {\n transform: rotate(10deg);\n }\n 60% {\n transform: rotate(0deg);\n } /* Reset for the last half to pause */\n 100% {\n transform: rotate(0deg);\n }\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n ${this.manifested\n ? html`\n
        \n
        \n
        \n ${this.wave ? html`\uD83D\uDC4B` : html``}\n ${directives.resolve(this.getHtml())}\n
        \n
        \n `\n : html``}\n `;\n }\n\n public async handleClick() {\n console.log('speechbubble got clicked.');\n }\n\n public async firstUpdated() {\n // lets make sure we have a ref\n if (!this.reffedElement) {\n this.reffedElement = this.previousElementSibling as HTMLElement;\n }\n if (this.manifested) {\n await this.updatePosition();\n (this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '1';\n } else {\n // lets make sure we instrument it\n let speechbubble: DeesSpeechbubble;\n this.reffedElement.addEventListener('mouseenter', async () => {\n speechbubble = await DeesSpeechbubble.createAndShow(this.reffedElement, this.text);\n });\n this.reffedElement.addEventListener('mouseleave', () => {\n speechbubble.destroy();\n });\n }\n }\n\n public async updatePosition() {\n const refElement = this.reffedElement;\n const boundingClientRect = refElement.getBoundingClientRect();\n this.style.position = 'fixed';\n this.style.top = `${boundingClientRect.top - 13}px`;\n this.style.left = `${boundingClientRect.left + refElement.clientWidth + 4}px`;\n if (boundingClientRect.right > 250) {\n this.style.width = `250px`;\n }\n }\n\n public async getHtml(): Promise {\n if (!this.text) {\n return '';\n }\n const normalized = domtools.plugins.smartstring.normalize.standard(this.text);\n const result = await domtools.plugins.smartmarkdown.SmartMarkdown.easyMarkdownToHtml(\n normalized\n );\n return unsafeHTML(result);\n }\n\n public async show() {}\n\n public async destroy() {\n (this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '0';\n this.windowLayer.destroy();\n }\n}\n", "export * from './dees-speechbubble.js';\n", "export * from './dees-windowlayer.js';\n", "// Overlay Components\nexport * from './dees-contextmenu/index.js';\nexport * from './dees-modal/index.js';\nexport * from './dees-speechbubble/index.js';\nexport * from './dees-windowlayer/index.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUV4ZWN1dGlvbkVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtcnVudGltZS9pbnRlcmZhY2VzL0lFeGVjdXRpb25FbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=", "export * from './IExecutionEnvironment.js';\n", "export const DEFAULT_EDITOR_ORIGIN = 'https://stackblitz.com';\nexport const SEARCH_PARAM_AUTH_CODE = 'code';\nexport const SEARCH_PARAM_ERROR = 'error';\nexport const SEARCH_PARAM_ERROR_DESCRIPTION = 'error_description';\nexport const BROADCAST_CHANNEL_NAME = '__wc_api_bc__';\nexport const STORAGE_TOKENS_NAME = '__wc_api_tokens__';\nexport const STORAGE_CODE_VERIFIER_NAME = '__wc_api_verifier__';\nexport const STORAGE_POPUP_NAME = '__wc_api_popup__';\n", "export class TypedEventTarget {\n _bus = new EventTarget();\n listen(listener) {\n function wrappedListener(event) {\n listener(event.data);\n }\n this._bus.addEventListener('message', wrappedListener);\n return () => this._bus.removeEventListener('message', wrappedListener);\n }\n fireEvent(data) {\n this._bus.dispatchEvent(new MessageEvent('message', { data }));\n }\n}\n", "import { STORAGE_TOKENS_NAME } from './constants.js';\nimport { TypedEventTarget } from './TypedEventTarget.js';\nconst IGNORED_ERROR = new Error();\nIGNORED_ERROR.stack = '';\nconst accessTokenChangedListeners = new TypedEventTarget();\n/**\n * @internal\n */\nexport class Tokens {\n origin;\n refresh;\n access;\n expires;\n _revoked = new AbortController();\n constructor(\n // editor origin that those tokens are bound to, mostly used for development\n origin, \n // token to use to get a new access token\n refresh, \n // token to provide to webcontainer\n access, \n // time in UTC when the token expires\n expires) {\n this.origin = origin;\n this.refresh = refresh;\n this.access = access;\n this.expires = expires;\n }\n async activate(onFailedRefresh) {\n if (this._revoked.signal.aborted) {\n throw new Error('Token revoked');\n }\n // if the access token expired we fetch a new one\n if (this.expires < Date.now()) {\n if (!(await this._fetchNewAccessToken())) {\n return false;\n }\n }\n this._sync();\n this._startRefreshTokensLoop(onFailedRefresh);\n return true;\n }\n async revoke(clientId, ignoreRevokeError) {\n this._revoked.abort();\n try {\n const response = await fetch(`${this.origin}/oauth/revoke`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({ token: this.refresh, token_type_hint: 'refresh_token', client_id: clientId }),\n mode: 'cors',\n });\n if (!response.ok) {\n throw new Error(`Failed to logout`);\n }\n }\n catch (error) {\n if (!ignoreRevokeError) {\n throw error;\n }\n }\n clearTokensInStorage();\n }\n static fromStorage() {\n const savedTokens = readTokensFromStorage();\n if (!savedTokens) {\n return null;\n }\n return new Tokens(savedTokens.origin, savedTokens.refresh, savedTokens.access, savedTokens.expires);\n }\n static async fromAuthCode({ editorOrigin, clientId, codeVerifier, authCode, redirectUri, }) {\n const response = await fetch(`${editorOrigin}/oauth/token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n client_id: clientId,\n code: authCode,\n code_verifier: codeVerifier,\n grant_type: 'authorization_code',\n redirect_uri: redirectUri,\n }),\n mode: 'cors',\n });\n if (!response.ok) {\n throw new Error(`Failed to fetch token: ${response.status}`);\n }\n const tokenResponse = await response.json();\n assertTokenResponse(tokenResponse);\n const { access_token: access, refresh_token: refresh } = tokenResponse;\n const expires = getExpiresFromTokenResponse(tokenResponse);\n return new Tokens(editorOrigin, refresh, access, expires);\n }\n async _fetchNewAccessToken() {\n try {\n const response = await fetch(`${this.origin}/oauth/token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: new URLSearchParams({\n grant_type: 'refresh_token',\n refresh_token: this.refresh,\n }),\n mode: 'cors',\n signal: this._revoked.signal,\n });\n if (!response.ok) {\n throw IGNORED_ERROR;\n }\n const tokenResponse = await response.json();\n assertTokenResponse(tokenResponse);\n const { access_token: access, refresh_token: refresh } = tokenResponse;\n const expires = getExpiresFromTokenResponse(tokenResponse);\n this.access = access;\n this.expires = expires;\n this.refresh = refresh;\n return true;\n }\n catch {\n clearTokensInStorage();\n return false;\n }\n }\n _sync() {\n persistTokensInStorage(this);\n fireAccessTokenChanged(this.access);\n }\n async _startRefreshTokensLoop(onFailedRefresh) {\n while (true) {\n const expiresIn = this.expires - Date.now() - 1000;\n await wait(Math.max(expiresIn, 1000));\n if (this._revoked.signal.aborted) {\n return;\n }\n if (!this._fetchNewAccessToken()) {\n onFailedRefresh();\n return;\n }\n this._sync();\n }\n }\n}\n/**\n * @internal\n */\nexport function clearTokensInStorage() {\n localStorage.removeItem(STORAGE_TOKENS_NAME);\n}\n/**\n * @internal\n */\nexport function addAccessTokenChangedListener(listener) {\n return accessTokenChangedListeners.listen(listener);\n}\nfunction readTokensFromStorage() {\n const serializedTokens = localStorage.getItem(STORAGE_TOKENS_NAME);\n if (!serializedTokens) {\n return null;\n }\n try {\n return JSON.parse(serializedTokens);\n }\n catch {\n return null;\n }\n}\nfunction persistTokensInStorage(tokens) {\n localStorage.setItem(STORAGE_TOKENS_NAME, JSON.stringify(tokens));\n}\nfunction getExpiresFromTokenResponse({ created_at, expires_in }) {\n return (created_at + expires_in) * 1000;\n}\nfunction assertTokenResponse(token) {\n if (typeof token !== 'object' || !token) {\n throw new Error('Invalid Token Response');\n }\n if (typeof token.access_token !== 'string' ||\n typeof token.refresh_token !== 'string' ||\n typeof token.created_at !== 'number' ||\n typeof token.expires_in !== 'number') {\n throw new Error('Invalid Token Response');\n }\n}\nfunction wait(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\nfunction fireAccessTokenChanged(accessToken) {\n accessTokenChangedListeners.fireEvent(accessToken);\n}\n", "import { DEFAULT_EDITOR_ORIGIN } from './constants.js';\nconst params = {};\nlet editorOrigin = null;\nexport const iframeSettings = {\n get editorOrigin() {\n if (editorOrigin == null) {\n editorOrigin = new URL(globalThis.WEBCONTAINER_API_IFRAME_URL ?? DEFAULT_EDITOR_ORIGIN).origin;\n }\n return editorOrigin;\n },\n set editorOrigin(newOrigin) {\n editorOrigin = new URL(newOrigin).origin;\n },\n setQueryParam(key, value) {\n params[key] = value;\n },\n get url() {\n const url = new URL(this.editorOrigin);\n url.pathname = '/headless';\n for (const param in params) {\n url.searchParams.set(param, params[param]);\n }\n url.searchParams.set('version', \"1.6.1\");\n return url;\n },\n};\n", "/**\n * Implementation of https://www.rfc-editor.org/rfc/rfc7636#section-4.2 that can\n * run in the browser.\n *\n * @internal\n *\n * @param input Code verifier.\n */\nexport async function S256(input) {\n // input here is assumed to match https://www.rfc-editor.org/rfc/rfc3986#section-2.3\n const ascii = new TextEncoder().encode(input);\n const sha256 = new Uint8Array(await crypto.subtle.digest('SHA-256', ascii));\n // base64url encode, based on https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\n return btoa(sha256.reduce((binary, byte) => binary + String.fromCodePoint(byte), ''))\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '');\n}\n/**\n * Implementation of https://www.rfc-editor.org/rfc/rfc7636#section-4.1 with\n * a slight deviation:\n *\n * - We use 128 characters (it's expected to be between 43 and 128)\n * - We use 64 characters instead of 66\n *\n * So the entropy is lower given the space size is 64^128 instead of 66^128.\n * It still satisfies the entropy constraint given that 64^128 > 66^43.\n *\n * @internal\n */\nexport function newCodeVerifier() {\n const random = new Uint8Array(96);\n crypto.getRandomValues(random);\n let codeVerifier = '';\n for (let i = 0; i < 32; ++i) {\n codeVerifier += nextFourChars(random[3 * i + 0], random[3 * i + 1], random[3 * i + 2]);\n }\n return codeVerifier;\n}\nfunction nextFourChars(byte1, byte2, byte3) {\n const char1 = byte1 >> 2;\n const char2 = ((byte1 & 3) << 4) | (byte2 >> 4);\n const char3 = (byte2 & 15) | ((byte3 & 192) >> 2);\n const char4 = byte3 & 63;\n return [char1, char2, char3, char4].map(unreservedCharacters).join('');\n}\nfunction unreservedCharacters(code) {\n let offset;\n if (code < 26) {\n offset = code + 65; // [A-Z]\n }\n else if (code < 52) {\n offset = code - 26 + 97; // [a-z]\n }\n else if (code < 62) {\n offset = code - 52 + 48; // [0-9]\n }\n else {\n offset = code === 62 ? 30 /* _ */ : 45 /* - */;\n }\n return String.fromCharCode(offset);\n}\n", "/**\n * @internal\n */\nexport function resettablePromise() {\n let resolve;\n let promise;\n function reset() {\n promise = new Promise((_resolve) => (resolve = _resolve));\n }\n reset();\n return {\n get promise() {\n return promise;\n },\n resolve(value) {\n return resolve(value);\n },\n reset,\n };\n}\n", "import { Tokens, clearTokensInStorage } from './tokens.js';\nimport { SEARCH_PARAM_AUTH_CODE, SEARCH_PARAM_ERROR, STORAGE_CODE_VERIFIER_NAME, BROADCAST_CHANNEL_NAME, STORAGE_POPUP_NAME, SEARCH_PARAM_ERROR_DESCRIPTION, } from './constants.js';\nimport { iframeSettings } from './iframe-url.js';\nimport { S256, newCodeVerifier } from './code.js';\nimport { resettablePromise } from './reset-promise.js';\nimport { TypedEventTarget } from './TypedEventTarget.js';\n/**\n * @internal\n */\nexport const authState = {\n initialized: false,\n bootCalled: false,\n authComplete: resettablePromise(),\n clientId: '',\n oauthScope: '',\n broadcastChannel: null,\n get editorOrigin() {\n return iframeSettings.editorOrigin;\n },\n tokens: null,\n};\nconst authFailedListeners = new TypedEventTarget();\nconst loggedOutListeners = new TypedEventTarget();\nfunction broadcastMessage(message) {\n if (!authState.broadcastChannel) {\n return;\n }\n authState.broadcastChannel.postMessage(message);\n // check if we are in a popup mode\n if (localStorage.getItem(STORAGE_POPUP_NAME) === 'true' && message.type !== 'auth-logout') {\n localStorage.removeItem(STORAGE_POPUP_NAME);\n // wait a tick to make sure the posted message has been sent\n setTimeout(() => {\n window.close();\n });\n }\n}\nexport const auth = {\n init({ editorOrigin, clientId, scope }) {\n if (authState.initialized) {\n throw new Error('Init should only be called once');\n }\n let enterprise = true;\n if (enterprise && authState.bootCalled) {\n throw new Error('`auth.init` should always be called before `WebContainer.boot`');\n }\n authState.initialized = true;\n authState.tokens = Tokens.fromStorage();\n authState.clientId = clientId;\n authState.oauthScope = scope;\n authState.broadcastChannel = new BroadcastChannel(BROADCAST_CHANNEL_NAME);\n // configure iframe url\n iframeSettings.setQueryParam('client_id', clientId);\n if (editorOrigin) {\n iframeSettings.editorOrigin = new URL(editorOrigin).origin;\n }\n loggedOutListeners.listen(() => authState.authComplete.reset());\n // if authentication or logout are done in another page, we want to reflect the state on this page as well\n authState.broadcastChannel.addEventListener('message', onChannelMessage);\n async function onChannelMessage(event) {\n const typedEvent = event.data;\n if (typedEvent.type === 'auth-complete') {\n authState.tokens = Tokens.fromStorage();\n // we ignore the possible error here because they can't have expired just yet\n await authState.tokens.activate(onFailedTokenRefresh);\n authState.authComplete.resolve();\n return;\n }\n if (typedEvent.type === 'auth-failed') {\n authFailedListeners.fireEvent(typedEvent);\n return;\n }\n if (typedEvent.type === 'auth-logout') {\n loggedOutListeners.fireEvent();\n return;\n }\n }\n if (authState.tokens) {\n const tokens = authState.tokens;\n if (tokens.origin === authState.editorOrigin) {\n /**\n * Here we assume that the refresh token never expires which\n * might not be correct. If that is the case though, we will\n * emit a 'logged-out' event to signal that the user has been\n * logged out, which could also happen at a later time anyway.\n *\n * Because this flow is done entirely locally, we do not broadcast\n * anything to the other tabs. They should be performing a similar\n * check.\n */\n (async () => {\n const success = await tokens.activate(onFailedTokenRefresh);\n if (!success) {\n // if we got new token in the meantime we discard this error\n if (authState.tokens !== tokens) {\n return;\n }\n loggedOutListeners.fireEvent();\n return;\n }\n authState.authComplete.resolve();\n })();\n return { status: 'authorized' };\n }\n clearTokensInStorage();\n authState.tokens = null;\n }\n const locationURL = new URL(window.location.href);\n const { searchParams } = locationURL;\n const updateURL = () => window.history.replaceState({}, document.title, locationURL);\n // check for errors first, aka the user declined the authorisation or stackblitz did\n if (searchParams.has(SEARCH_PARAM_ERROR)) {\n const error = searchParams.get(SEARCH_PARAM_ERROR);\n const description = searchParams.get(SEARCH_PARAM_ERROR_DESCRIPTION);\n searchParams.delete(SEARCH_PARAM_ERROR);\n searchParams.delete(SEARCH_PARAM_ERROR_DESCRIPTION);\n updateURL();\n broadcastMessage({ type: 'auth-failed', error, description });\n return { status: 'auth-failed', error, description };\n }\n // if there's an auth code\n if (searchParams.has(SEARCH_PARAM_AUTH_CODE)) {\n const authCode = searchParams.get(SEARCH_PARAM_AUTH_CODE);\n const editorOrigin = authState.editorOrigin;\n searchParams.delete(SEARCH_PARAM_AUTH_CODE);\n updateURL();\n const codeVerifier = localStorage.getItem(STORAGE_CODE_VERIFIER_NAME);\n if (!codeVerifier) {\n return { status: 'need-auth' };\n }\n localStorage.removeItem(STORAGE_CODE_VERIFIER_NAME);\n Tokens.fromAuthCode({\n editorOrigin,\n clientId: authState.clientId,\n authCode,\n codeVerifier,\n redirectUri: defaultRedirectUri(),\n })\n .then(async (tokens) => {\n authState.tokens = tokens;\n assertAuthTokens(authState.tokens);\n const success = await authState.tokens.activate(onFailedTokenRefresh);\n // if authentication failed we throw, and we'll mark auth as failed\n if (!success) {\n throw new Error();\n }\n authState.authComplete.resolve();\n broadcastMessage({ type: 'auth-complete' });\n })\n .catch((error) => {\n // this should never happen unless the rails app is now down for some reason?\n console.error(error);\n // treat it as a logged out event so that the user can retry to login\n loggedOutListeners.fireEvent();\n broadcastMessage({ type: 'auth-logout' });\n });\n return { status: 'authorized' };\n }\n return { status: 'need-auth' };\n },\n async startAuthFlow({ popup } = {}) {\n if (!authState.initialized) {\n throw new Error('auth.init must be called first');\n }\n if (popup) {\n localStorage.setItem(STORAGE_POPUP_NAME, 'true');\n const height = 500;\n const width = 620;\n const left = window.screenLeft + (window.outerWidth - width) / 2;\n const top = window.screenTop + (window.outerHeight - height) / 2;\n window.open(await generateOAuthRequest(), '_blank', `popup,width=${width},height=${height},left=${left},top=${top}`);\n }\n else {\n window.location.href = await generateOAuthRequest();\n }\n },\n async logout({ ignoreRevokeError } = {}) {\n await authState.tokens?.revoke(authState.clientId, ignoreRevokeError ?? false);\n loggedOutListeners.fireEvent();\n broadcastMessage({ type: 'auth-logout' });\n },\n loggedIn() {\n return authState.authComplete.promise;\n },\n on(event, listener) {\n switch (event) {\n case 'auth-failed': {\n return authFailedListeners.listen(listener);\n }\n case 'logged-out': {\n return loggedOutListeners.listen(listener);\n }\n default: {\n throw new Error(`Unsupported event type '${event}'.`);\n }\n }\n },\n};\nfunction onFailedTokenRefresh() {\n loggedOutListeners.fireEvent();\n broadcastMessage({ type: 'auth-logout' });\n}\nfunction defaultRedirectUri() {\n return window.location.href;\n}\nasync function generateOAuthRequest() {\n const codeVerifier = newCodeVerifier();\n localStorage.setItem(STORAGE_CODE_VERIFIER_NAME, codeVerifier);\n const codeChallenge = await S256(codeVerifier);\n const url = new URL('/oauth/authorize', authState.editorOrigin);\n const { searchParams } = url;\n searchParams.append('response_type', 'code');\n searchParams.append('client_id', authState.clientId);\n searchParams.append('redirect_uri', defaultRedirectUri());\n searchParams.append('scope', authState.oauthScope);\n searchParams.append('code_challenge', codeChallenge);\n searchParams.append('code_challenge_method', 'S256');\n return url.toString();\n}\n/**\n * @internal\n */\nexport function assertAuthTokens(tokens) {\n if (!tokens) {\n throw new Error('Oops! Tokens is not defined when it always should be.');\n }\n}\n", "/**\n * This type is in a separate module so that localservice can import it\n * without bundling all the other webcontainer specific stuff.\n */\nexport var PreviewMessageType;\n(function (PreviewMessageType) {\n PreviewMessageType[\"UncaughtException\"] = \"PREVIEW_UNCAUGHT_EXCEPTION\";\n PreviewMessageType[\"UnhandledRejection\"] = \"PREVIEW_UNHANDLED_REJECTION\";\n PreviewMessageType[\"ConsoleError\"] = \"PREVIEW_CONSOLE_ERROR\";\n})(PreviewMessageType || (PreviewMessageType = {}));\n", "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// dist/vendor/comlink.js\nvar comlink_exports = {};\n__export(comlink_exports, {\n createEndpoint: () => createEndpoint,\n expose: () => expose,\n proxy: () => proxy,\n proxyMarker: () => proxyMarker,\n releaseProxy: () => releaseProxy,\n transfer: () => transfer,\n transferHandlers: () => transferHandlers,\n windowEndpoint: () => windowEndpoint,\n wrap: () => wrap\n});\n\n// ../../node_modules/comlink/dist/esm/comlink.mjs\nvar proxyMarker = Symbol(\"Comlink.proxy\");\nvar createEndpoint = Symbol(\"Comlink.endpoint\");\nvar releaseProxy = Symbol(\"Comlink.releaseProxy\");\nvar throwMarker = Symbol(\"Comlink.thrown\");\nvar isObject = (val) => typeof val === \"object\" && val !== null || typeof val === \"function\";\nvar proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n }\n};\nvar throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack\n }\n };\n } else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n }\n};\nvar transferHandlers = /* @__PURE__ */ new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler]\n]);\nfunction expose(obj, ep = self) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj2, prop) => obj2[prop], obj);\n const rawValue = path.reduce((obj2, prop) => obj2[prop], obj);\n switch (type) {\n case 0:\n {\n returnValue = rawValue;\n }\n break;\n case 1:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case 2:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case 3:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case 4:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case 5:\n {\n returnValue = void 0;\n }\n break;\n }\n } catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue).catch((value) => {\n return { value, [throwMarker]: 0 };\n }).then((returnValue2) => {\n const [wireValue, transferables] = toWireValue(returnValue2);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === 5) {\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n }\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n return createProxy(ep, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction createProxy(ep, path = [], target = function() {\n}) {\n let isProxyReleased = false;\n const proxy2 = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n return requestResponseMessage(ep, {\n type: 5,\n path: path.map((p) => p.toString())\n }).then(() => {\n closeEndPoint(ep);\n isProxyReleased = true;\n });\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy2 };\n }\n const r = requestResponseMessage(ep, {\n type: 0,\n path: path.map((p) => p.toString())\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, {\n type: 1,\n path: [...path, prop].map((p) => p.toString()),\n value\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, {\n type: 4\n }).then(fromWireValue);\n }\n if (last === \"bind\") {\n return createProxy(ep, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: 2,\n path: path.map((p) => p.toString()),\n argumentList\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: 3,\n path: path.map((p) => p.toString()),\n argumentList\n }, transferables).then(fromWireValue);\n }\n });\n return proxy2;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nvar transferCache = /* @__PURE__ */ new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = self, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context)\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: 3,\n name,\n value: serializedValue\n },\n transferables\n ];\n }\n }\n return [\n {\n type: 0,\n value\n },\n transferCache.get(value) || []\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case 3:\n return transferHandlers.get(value.name).deserialize(value.value);\n case 0:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n ep.addEventListener(\"message\", function l(ev) {\n if (!ev.data || !ev.data.id || ev.data.id !== id) {\n return;\n }\n ep.removeEventListener(\"message\", l);\n resolve(ev.data);\n });\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4).fill(0).map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16)).join(\"-\");\n}\nexport {\n comlink_exports as Comlink\n};\n", "/**\n * This function reloads the provided iframe.\n *\n * @param preview The iframe page to reload.\n * @param hardRefreshTimeout The timeout after which the preview is reset if it hasn't responded to the reload event.\n */\nexport function reloadPreview(preview, hardRefreshTimeout = 200) {\n const { port1, port2 } = new MessageChannel();\n let resolve;\n const promise = new Promise((_resolve) => {\n resolve = _resolve;\n });\n const done = () => {\n resolve();\n port2.close();\n };\n const timeout = setTimeout(() => {\n const iframeSrc = preview.src;\n preview.src = iframeSrc;\n done();\n }, hardRefreshTimeout);\n port2.addEventListener('message', (event) => {\n const data = event.data;\n if (data == null || typeof data !== 'object') {\n return;\n }\n if (data.type === 'LOCALSERVICE_WINDOW_RELOADED') {\n clearTimeout(timeout);\n done();\n }\n });\n preview.contentWindow?.postMessage({\n type: 'LOCALSERVICE_RELOAD_WINDOW',\n callback: port1,\n }, '*', [port1]);\n return promise;\n}\n", "import { PreviewMessageType } from '../preview-message-types.js';\nconst PREVIEW_MESSAGE_TYPES = [\n PreviewMessageType.ConsoleError,\n PreviewMessageType.UncaughtException,\n PreviewMessageType.UnhandledRejection,\n];\nexport function isPreviewMessage(data) {\n if (data == null || typeof data !== 'object') {\n return false;\n }\n if (!('type' in data) || !PREVIEW_MESSAGE_TYPES.includes(data.type)) {\n return false;\n }\n return true;\n}\n", "export { reloadPreview } from './utils/reload-preview.js';\nexport { PreviewMessageType } from './preview-message-types.js';\nexport { isPreviewMessage } from './utils/is-preview-message.js';\n", "/**\n * @internal\n */\nexport function nullPrototype(source) {\n const prototype = Object.create(null);\n if (!source) {\n return prototype;\n }\n return Object.assign(prototype, source);\n}\n", "import { nullPrototype } from './null-prototype.js';\nconst binaryDecoder = new TextDecoder('latin1');\n/**\n * @internal\n */\nexport function toInternalFileSystemTree(tree) {\n const newTree = { d: {} };\n for (const name of Object.keys(tree)) {\n const entry = tree[name];\n if ('file' in entry) {\n if ('symlink' in entry.file) {\n newTree.d[name] = { f: { l: entry.file.symlink } };\n continue;\n }\n const contents = entry.file.contents;\n const stringContents = typeof contents === 'string' ? contents : binaryDecoder.decode(contents);\n const binary = typeof contents === 'string' ? {} : { b: true };\n newTree.d[name] = { f: { c: stringContents, ...binary } };\n continue;\n }\n const newEntry = toInternalFileSystemTree(entry.directory);\n newTree.d[name] = newEntry;\n }\n return newTree;\n}\n/**\n * @internal\n */\nexport function toExternalFileSystemTree(tree) {\n const newTree = nullPrototype();\n if ('f' in tree) {\n throw new Error('It is not possible to export a single file in the JSON format.');\n }\n if ('d' in tree) {\n for (const name of Object.keys(tree.d)) {\n const entry = tree.d[name];\n if ('d' in entry) {\n newTree[name] = nullPrototype({\n directory: toExternalFileSystemTree(entry),\n });\n }\n else if ('f' in entry) {\n if ('c' in entry.f) {\n newTree[name] = nullPrototype({\n file: nullPrototype({\n contents: entry.f.b ? fromBinaryString(entry.f.c) : entry.f.c,\n }),\n });\n }\n else if ('l' in entry.f) {\n newTree[name] = nullPrototype({\n file: nullPrototype({\n symlink: entry.f.l,\n }),\n });\n }\n }\n }\n }\n return newTree;\n}\nfunction fromBinaryString(s) {\n const encoded = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++) {\n encoded[i] = s[i].charCodeAt(0);\n }\n return encoded;\n}\n", "/**\n * The WebContainer Public API allows you build custom applications on top of an in-browser Node.js runtime.\n *\n * Its main entrypoint is the {@link WebContainer} class.\n *\n * @packageDocumentation\n */\nimport { authState, assertAuthTokens } from './internal/auth-state.js';\nimport { PreviewMessageType } from './preview-message-types.js';\nimport { Comlink } from './vendor/index.js';\nimport { auth as authImpl } from './internal/auth-state.js';\nimport { addAccessTokenChangedListener } from './internal/tokens.js';\nimport { iframeSettings } from './internal/iframe-url.js';\nimport { isPreviewMessage } from './utils.js';\nimport { toExternalFileSystemTree, toInternalFileSystemTree } from './utils/file-system.js';\nexport const auth = authImpl;\nexport { PreviewMessageType };\nexport * from './utils.js';\nlet bootPromise = null;\nlet cachedServerPromise = null;\nlet cachedBootOptions = {};\nconst decoder = new TextDecoder();\nconst encoder = new TextEncoder();\n/**\n * The main export of this library. An instance of `WebContainer` represents a runtime\n * ready to be used.\n */\nexport class WebContainer {\n _instance;\n _runtimeInfo;\n /**\n * Gives access to the underlying file system.\n */\n fs;\n /** @internal */\n static _instance = null;\n /** @internal */\n static _teardownPromise = null;\n _tornDown = false;\n _unsubscribeFromTokenChangedListener = () => { };\n /** @internal */\n constructor(\n /** @internal */\n _instance, fs, previewScript, \n /** @internal */\n _runtimeInfo) {\n this._instance = _instance;\n this._runtimeInfo = _runtimeInfo;\n this.fs = new FileSystemAPIClient(fs);\n // forward the credentials to webcontainer if needed\n if (authState.initialized) {\n this._unsubscribeFromTokenChangedListener = addAccessTokenChangedListener((accessToken) => {\n this._instance.setCredentials({ accessToken, editorOrigin: authState.editorOrigin });\n });\n (async () => {\n await authState.authComplete.promise;\n if (this._tornDown) {\n return;\n }\n assertAuthTokens(authState.tokens);\n await this._instance.setCredentials({\n accessToken: authState.tokens.access,\n editorOrigin: authState.editorOrigin,\n });\n })().catch((error) => {\n // print the error as this is likely a bug in webcontainer\n console.error(error);\n });\n }\n }\n async spawn(command, optionsOrArgs, options) {\n let args = [];\n if (Array.isArray(optionsOrArgs)) {\n args = optionsOrArgs;\n }\n else {\n options = optionsOrArgs;\n }\n let output = undefined;\n let outputStream = new ReadableStream();\n if (options?.output !== false) {\n const result = streamWithPush();\n output = result.push;\n outputStream = result.stream;\n }\n let stdout = undefined;\n let stdoutStream;\n let stderr = undefined;\n let stderrStream;\n const wrappedOutput = proxyListener(binaryListener(output));\n const wrappedStdout = proxyListener(binaryListener(stdout));\n const wrappedStderr = proxyListener(binaryListener(stderr));\n const process = await this._instance.run({\n command,\n args,\n cwd: options?.cwd,\n env: options?.env,\n terminal: options?.terminal,\n }, wrappedStdout, wrappedStderr, wrappedOutput);\n return new WebContainerProcessImpl(process, outputStream, stdoutStream, stderrStream);\n }\n async export(path, options) {\n const serializeOptions = {\n format: options?.format ?? 'json',\n includes: options?.includes,\n excludes: options?.excludes,\n external: true,\n };\n const result = await this._instance.serialize(path, serializeOptions);\n if (serializeOptions.format === 'json') {\n const data = JSON.parse(decoder.decode(result));\n return toExternalFileSystemTree(data);\n }\n return result;\n }\n on(event, listener) {\n if (event === 'preview-message') {\n const originalListener = listener;\n listener = ((message) => {\n if (isPreviewMessage(message)) {\n originalListener(message);\n }\n });\n }\n const { listener: wrapped, subscribe } = syncSubscription(listener);\n return subscribe(this._instance.on(event, Comlink.proxy(wrapped)));\n }\n /**\n * Mounts a tree of files into the filesystem. This can be specified as a tree object ({@link FileSystemTree})\n * or as a binary snapshot generated by [`@webcontainer/snapshot`](https://www.npmjs.com/package/@webcontainer/snapshot).\n *\n * @param snapshotOrTree - A tree of files, or a binary snapshot. Note that binary payloads will be transferred.\n * @param options.mountPoint - Specifies a nested path where the tree should be mounted.\n */\n mount(snapshotOrTree, options) {\n const payload = snapshotOrTree instanceof Uint8Array\n ? snapshotOrTree\n : snapshotOrTree instanceof ArrayBuffer\n ? new Uint8Array(snapshotOrTree)\n : encoder.encode(JSON.stringify(toInternalFileSystemTree(snapshotOrTree)));\n return this._instance.loadFiles(Comlink.transfer(payload, [payload.buffer]), {\n mountPoints: options?.mountPoint,\n });\n }\n /**\n * Set a custom script to be injected into all previews. When this function is called, every\n * future page reload will contain the provided script tag on all HTML responses.\n *\n * Note:\n *\n * When this function resolves, every preview reloaded _after_ will have the new script.\n * Existing preview have to be explicitely reloaded.\n *\n * To reload a preview you can use `reloadPreview`.\n *\n * @param scriptSrc Source for the script tag.\n * @param options Options to define which type of script this is.\n */\n setPreviewScript(scriptSrc, options) {\n return this._instance.setPreviewScript(scriptSrc, options);\n }\n /**\n * The default value of the `PATH` environment variable for processes started through {@link spawn}.\n */\n get path() {\n return this._runtimeInfo.path;\n }\n /**\n * The full path to the working directory (see {@link FileSystemAPI}).\n */\n get workdir() {\n return this._runtimeInfo.cwd;\n }\n /**\n * Destroys the WebContainer instance, turning it unusable, and releases its resources. After this,\n * a new WebContainer instance can be obtained by calling {@link WebContainer.boot | `boot`}.\n *\n * All entities derived from this instance (e.g. processes, the file system, etc.) also become unusable\n * after calling this method.\n */\n teardown() {\n if (this._tornDown) {\n throw new Error('WebContainer already torn down');\n }\n this._tornDown = true;\n this._unsubscribeFromTokenChangedListener();\n const teardownFn = async () => {\n try {\n await this.fs._teardown();\n await this._instance.teardown();\n }\n finally {\n this._instance[Comlink.releaseProxy]();\n if (WebContainer._instance === this) {\n WebContainer._instance = null;\n }\n }\n };\n WebContainer._teardownPromise = teardownFn();\n }\n /**\n * Boots a WebContainer. Only a single instance of WebContainer can be booted concurrently\n * (see {@link WebContainer.teardown | `teardown`}).\n *\n * Booting WebContainer is an expensive operation.\n */\n static async boot(options = {}) {\n await this._teardownPromise;\n WebContainer._teardownPromise = null;\n const { workdirName } = options;\n if (window.crossOriginIsolated && options.coep === 'none') {\n console.warn(`A Cross-Origin-Embedder-Policy header is required in cross origin isolated environments.\\nSet the 'coep' option to 'require-corp'.`);\n }\n if (workdirName?.includes('/') || workdirName === '..' || workdirName === '.') {\n throw new Error('workdirName should be a valid folder name');\n }\n // signal that boot was called to auth module as calling auth.init after boot is likely incorrect\n authState.bootCalled = true;\n // try to \"acquire the lock\", i.e. wait for any ongoing boot request to finish\n while (bootPromise) {\n await bootPromise;\n }\n if (WebContainer._instance) {\n throw new Error('Only a single WebContainer instance can be booted');\n }\n const instancePromise = unsynchronizedBoot(options);\n // the \"lock\" is a promise for the ongoing boot that never fails\n bootPromise = instancePromise.catch(() => { });\n try {\n const instance = await instancePromise;\n WebContainer._instance = instance;\n return instance;\n }\n finally {\n // release the \"lock\"\n bootPromise = null;\n }\n }\n}\n/**\n * Configure an API key to be used for this instance of WebContainer.\n *\n * @param key WebContainer API key.\n */\nexport function configureAPIKey(key) {\n if (authState.bootCalled) {\n throw new Error('`configureAPIKey` should always be called before `WebContainer.boot`');\n }\n iframeSettings.setQueryParam('client_id', key);\n}\nconst DIR_ENTRY_TYPE_FILE = 1;\nconst DIR_ENTRY_TYPE_DIR = 2;\n/**\n * @internal\n */\nclass DirEntImpl {\n name;\n _type;\n constructor(name, _type) {\n this.name = name;\n this._type = _type;\n }\n isFile() {\n return this._type === DIR_ENTRY_TYPE_FILE;\n }\n isDirectory() {\n return this._type === DIR_ENTRY_TYPE_DIR;\n }\n}\nclass FSWatcher {\n _apiClient;\n _path;\n _options;\n _listener;\n _wrappedListener;\n _watcher;\n _closed = false;\n constructor(_apiClient, _path, _options, _listener) {\n this._apiClient = _apiClient;\n this._path = _path;\n this._options = _options;\n this._listener = _listener;\n this._apiClient._watchers.add(this);\n this._wrappedListener = (event, filename) => {\n if (this._listener && !this._closed) {\n this._listener(event, filename);\n }\n };\n this._apiClient._fs\n .watch(this._path, this._options, proxyListener(this._wrappedListener))\n .then((_watcher) => {\n this._watcher = _watcher;\n if (this._closed) {\n return this._teardown();\n }\n return undefined;\n })\n .catch(console.error);\n }\n async close() {\n if (!this._closed) {\n this._closed = true;\n this._apiClient._watchers.delete(this);\n await this._teardown();\n }\n }\n /**\n * @internal\n */\n async _teardown() {\n await this._watcher?.close().finally(() => {\n this._watcher?.[Comlink.releaseProxy]();\n });\n }\n}\n/**\n * @internal\n */\nclass WebContainerProcessImpl {\n output;\n input;\n exit;\n _process;\n stdout;\n stderr;\n constructor(process, output, stdout, stderr) {\n this.output = output;\n this._process = process;\n this.input = new WritableStream({\n write: (data) => {\n // this promise is not supposed to fail anyway\n this._getProcess()\n ?.write(data)\n .catch(() => { });\n },\n });\n this.exit = this._onExit();\n this.stdout = stdout;\n this.stderr = stderr;\n }\n kill() {\n this._process?.kill();\n }\n resize(dimensions) {\n this._getProcess()?.resize(dimensions);\n }\n async _onExit() {\n try {\n return await this._process.onExit;\n }\n finally {\n this._process?.[Comlink.releaseProxy]();\n this._process = null;\n }\n }\n _getProcess() {\n if (this._process == null) {\n console.warn('This process already exited');\n }\n return this._process;\n }\n}\n/**\n * @internal\n */\nclass FileSystemAPIClient {\n _fs;\n _watchers = new Set([]);\n constructor(fs) {\n this._fs = fs;\n }\n rm(...args) {\n return this._fs.rm(...args);\n }\n async readFile(path, encoding) {\n return await this._fs.readFile(path, encoding);\n }\n async rename(oldPath, newPath) {\n return await this._fs.rename(oldPath, newPath);\n }\n async writeFile(path, data, options) {\n if (data instanceof Uint8Array) {\n const buffer = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);\n data = Comlink.transfer(new Uint8Array(buffer), [buffer]);\n }\n await this._fs.writeFile(path, data, options);\n }\n async readdir(path, options) {\n const result = await this._fs.readdir(path, options);\n if (isStringArray(result)) {\n return result;\n }\n if (isTypedArrayCollection(result)) {\n return result;\n }\n const entries = result.map((entry) => new DirEntImpl(entry.name, entry['Symbol(type)']));\n return entries;\n }\n async mkdir(path, options) {\n return await this._fs.mkdir(path, options);\n }\n watch(path, options, listener) {\n if (typeof options === 'function') {\n listener = options;\n options = null;\n }\n return new FSWatcher(this, path, options, listener);\n }\n /**\n * @internal\n */\n async _teardown() {\n this._fs[Comlink.releaseProxy]();\n await Promise.all([...this._watchers].map((watcher) => watcher.close()));\n }\n}\nasync function unsynchronizedBoot(options) {\n const { serverPromise } = serverFactory(options);\n const server = await serverPromise;\n const instance = await server.build({\n host: window.location.host,\n version: \"1.6.1\",\n workdirName: options.workdirName,\n forwardPreviewErrors: options.forwardPreviewErrors,\n });\n const [fs, previewScript, runtimeInfo] = await Promise.all([\n instance.fs(),\n instance.previewScript(),\n instance.runtimeInfo(),\n ]);\n return new WebContainer(instance, fs, previewScript, runtimeInfo);\n}\nfunction binaryListener(listener) {\n if (listener == null) {\n return undefined;\n }\n return (data) => {\n if (data instanceof Uint8Array) {\n listener(decoder.decode(data));\n }\n else if (data == null) {\n listener(null);\n }\n };\n}\nfunction proxyListener(listener) {\n if (listener == null) {\n return undefined;\n }\n return Comlink.proxy(listener);\n}\nfunction serverFactory(options) {\n if (cachedServerPromise != null) {\n if (options.coep !== cachedBootOptions.coep) {\n console.warn(`Attempting to boot WebContainer with 'coep: ${options.coep}'`);\n console.warn(`First boot had 'coep: ${cachedBootOptions.coep}', new settings will not take effect!`);\n }\n return { serverPromise: cachedServerPromise };\n }\n if (options.coep) {\n iframeSettings.setQueryParam('coep', options.coep);\n }\n if (options.experimentalNode) {\n iframeSettings.setQueryParam('experimental_node', '1');\n }\n const iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.setAttribute('allow', 'cross-origin-isolated');\n const url = iframeSettings.url;\n iframe.src = url.toString();\n const { origin } = url;\n cachedBootOptions = { ...options };\n cachedServerPromise = new Promise((resolve) => {\n const onMessage = (event) => {\n if (event.origin !== origin) {\n return;\n }\n const { data } = event;\n if (data.type === 'init') {\n resolve(Comlink.wrap(event.ports[0]));\n return;\n }\n if (data.type === 'warning') {\n console[data.level].call(console, data.message);\n return;\n }\n };\n window.addEventListener('message', onMessage);\n });\n document.body.insertBefore(iframe, null);\n return { serverPromise: cachedServerPromise };\n}\nfunction isStringArray(list) {\n return typeof list[0] === 'string';\n}\nfunction isTypedArrayCollection(list) {\n return list[0] instanceof Uint8Array;\n}\nfunction streamWithPush() {\n let controller = null;\n const stream = new ReadableStream({\n start(controller_) {\n controller = controller_;\n },\n });\n const push = (item) => {\n if (item != null) {\n controller?.enqueue(item);\n }\n else {\n controller?.close();\n controller = null;\n }\n };\n return { stream, push };\n}\nfunction syncSubscription(listener) {\n let stopped = false;\n let unsubscribe = () => { };\n const wrapped = ((...args) => {\n if (stopped) {\n return;\n }\n listener(...args);\n });\n return {\n subscribe(promise) {\n promise.then((unsubscribe_) => {\n unsubscribe = unsubscribe_;\n if (stopped) {\n unsubscribe();\n }\n });\n return () => {\n stopped = true;\n unsubscribe();\n };\n },\n listener: wrapped,\n };\n}\n", "import * as webcontainer from '@tempfix/webcontainer__api';\nimport type { IExecutionEnvironment, IFileEntry, IFileWatcher, IProcessHandle } from '../interfaces/IExecutionEnvironment.js';\n\n/**\n * WebContainer-based execution environment.\n * Runs Node.js and shell commands in the browser using WebContainer API.\n */\nexport class WebContainerEnvironment implements IExecutionEnvironment {\n // Static shared state - WebContainer only allows ONE boot per page\n private static sharedContainer: webcontainer.WebContainer | null = null;\n private static bootPromise: Promise | null = null;\n\n private _ready: boolean = false;\n\n public readonly type = 'webcontainer' as const;\n\n public get ready(): boolean {\n return this._ready;\n }\n\n private get container(): webcontainer.WebContainer | null {\n return WebContainerEnvironment.sharedContainer;\n }\n\n // ============ Lifecycle ============\n\n public async init(): Promise {\n // Already initialized (this instance)\n if (this._ready && WebContainerEnvironment.sharedContainer) {\n return;\n }\n\n // If boot is in progress (by any instance), wait for it\n if (WebContainerEnvironment.bootPromise) {\n await WebContainerEnvironment.bootPromise;\n this._ready = true;\n return;\n }\n\n // If already booted by another instance, just mark ready\n if (WebContainerEnvironment.sharedContainer) {\n this._ready = true;\n return;\n }\n\n // Check if SharedArrayBuffer is available (required for WebContainer)\n if (typeof SharedArrayBuffer === 'undefined') {\n throw new Error(\n 'WebContainer requires SharedArrayBuffer which is not available. ' +\n 'Ensure your server sends these headers:\\n' +\n ' Cross-Origin-Opener-Policy: same-origin\\n' +\n ' Cross-Origin-Embedder-Policy: require-corp'\n );\n }\n\n // Start boot process\n WebContainerEnvironment.bootPromise = webcontainer.WebContainer.boot();\n\n try {\n WebContainerEnvironment.sharedContainer = await WebContainerEnvironment.bootPromise;\n this._ready = true;\n } catch (error) {\n // Reset promise on failure so retry is possible\n WebContainerEnvironment.bootPromise = null;\n throw error;\n }\n }\n\n public async destroy(): Promise {\n if (WebContainerEnvironment.sharedContainer) {\n WebContainerEnvironment.sharedContainer.teardown();\n WebContainerEnvironment.sharedContainer = null;\n WebContainerEnvironment.bootPromise = null;\n this._ready = false;\n }\n }\n\n // ============ Filesystem Operations ============\n\n public async readFile(path: string): Promise {\n this.ensureReady();\n return await this.container!.fs.readFile(path, 'utf-8');\n }\n\n public async writeFile(path: string, contents: string): Promise {\n this.ensureReady();\n await this.container!.fs.writeFile(path, contents, 'utf-8');\n }\n\n public async readDir(path: string): Promise {\n this.ensureReady();\n const entries = await this.container!.fs.readdir(path, { withFileTypes: true });\n\n return entries.map((entry) => ({\n type: entry.isDirectory() ? 'directory' as const : 'file' as const,\n name: entry.name,\n path: path === '/' ? `/${entry.name}` : `${path}/${entry.name}`,\n }));\n }\n\n public async mkdir(path: string): Promise {\n this.ensureReady();\n await this.container!.fs.mkdir(path, { recursive: true });\n }\n\n public async rm(path: string, options?: { recursive?: boolean }): Promise {\n this.ensureReady();\n await this.container!.fs.rm(path, { recursive: options?.recursive ?? false });\n }\n\n public async exists(path: string): Promise {\n this.ensureReady();\n try {\n await this.container!.fs.readFile(path);\n return true;\n } catch {\n try {\n await this.container!.fs.readdir(path);\n return true;\n } catch {\n return false;\n }\n }\n }\n\n public watch(\n path: string,\n callback: (event: 'rename' | 'change', filename: string | null) => void,\n options?: { recursive?: boolean }\n ): IFileWatcher {\n this.ensureReady();\n const watcher = this.container!.fs.watch(\n path,\n { recursive: options?.recursive ?? false },\n callback\n );\n return {\n stop: () => watcher.close(),\n };\n }\n\n // ============ Process Execution ============\n\n public async spawn(command: string, args: string[] = []): Promise {\n this.ensureReady();\n\n const process = await this.container!.spawn(command, args);\n\n return {\n output: process.output as unknown as ReadableStream,\n input: process.input as unknown as { getWriter(): WritableStreamDefaultWriter },\n exit: process.exit,\n kill: () => process.kill(),\n };\n }\n\n // ============ WebContainer-specific methods ============\n\n /**\n * Mount files into the virtual filesystem.\n * This is a WebContainer-specific operation.\n * @param files - File tree structure to mount\n */\n public async mount(files: webcontainer.FileSystemTree): Promise {\n this.ensureReady();\n await this.container!.mount(files);\n }\n\n /**\n * Get the underlying WebContainer instance.\n * Use sparingly - prefer the interface methods.\n */\n public getContainer(): webcontainer.WebContainer {\n this.ensureReady();\n return this.container!;\n }\n\n // ============ Private Helpers ============\n\n private ensureReady(): void {\n if (!this._ready || !this.container) {\n throw new Error('WebContainerEnvironment not initialized. Call init() first.');\n }\n }\n}\n", "export * from './WebContainerEnvironment.js';\n", "// Runtime Interfaces\nexport * from './interfaces/index.js';\n\n// Environment Implementations\nexport * from './environments/index.js';\n", "export * from './dees-shopping-productcard.js';\n", "import type { Terminal, ITerminalOptions } from 'xterm';\nimport type { FitAddon } from 'xterm-addon-fit';\nimport type { ITerminalTab, ICreateTerminalTabOptions, TTerminalTabType } from './interfaces.js';\nimport type { IXtermBundle, IXtermFitAddonBundle } from '../../../services/index.js';\n\n/**\n * Manages terminal tabs lifecycle and state\n */\nexport class TerminalTabManager {\n private tabs: Map = new Map();\n private tabCounter: number = 0;\n private xtermBundle: IXtermBundle | null = null;\n private xtermFitAddonBundle: IXtermFitAddonBundle | null = null;\n\n /**\n * Initialize the manager with loaded xterm modules.\n * Must be called before creating tabs.\n */\n public setXtermModules(xtermBundle: IXtermBundle, fitAddonBundle: IXtermFitAddonBundle): void {\n this.xtermBundle = xtermBundle;\n this.xtermFitAddonBundle = fitAddonBundle;\n }\n\n /**\n * Generate unique tab ID\n */\n private generateTabId(): string {\n this.tabCounter++;\n return `terminal-${this.tabCounter}-${Date.now()}`;\n }\n\n /**\n * Get default label for tab type\n */\n private getDefaultLabel(type: TTerminalTabType, metadata?: ITerminalTab['metadata']): string {\n switch (type) {\n case 'shell':\n return 'bash';\n case 'script':\n return metadata?.scriptName || 'script';\n case 'package-update':\n return metadata?.packageName ? `update ${metadata.packageName}` : 'update';\n case 'custom':\n return metadata?.command || 'process';\n default:\n return 'terminal';\n }\n }\n\n /**\n * Get default icon for tab type\n */\n private getDefaultIcon(type: TTerminalTabType): string {\n switch (type) {\n case 'shell':\n return 'lucide:terminal';\n case 'script':\n return 'lucide:play';\n case 'package-update':\n return 'lucide:packageCheck';\n case 'custom':\n return 'lucide:code';\n default:\n return 'lucide:terminal';\n }\n }\n\n /**\n * Get terminal theme configuration\n */\n private getTerminalTheme(isBright: boolean): any {\n if (isBright) {\n return {\n background: '#ffffff',\n foreground: '#333333',\n cursor: '#333333',\n cursorAccent: '#ffffff',\n selection: 'rgba(0, 0, 0, 0.2)',\n black: '#000000',\n red: '#cd3131',\n green: '#00bc00',\n yellow: '#949800',\n blue: '#0451a5',\n magenta: '#bc05bc',\n cyan: '#0598bc',\n white: '#555555',\n brightBlack: '#666666',\n brightRed: '#cd3131',\n brightGreen: '#14ce14',\n brightYellow: '#b5ba00',\n brightBlue: '#0451a5',\n brightMagenta: '#bc05bc',\n brightCyan: '#0598bc',\n brightWhite: '#a5a5a5',\n };\n } else {\n return {\n background: '#000000',\n foreground: '#ffffff',\n cursor: '#ffffff',\n cursorAccent: '#000000',\n selection: 'rgba(255, 255, 255, 0.2)',\n };\n }\n }\n\n /**\n * Create a new tab instance\n */\n createTab(options: ICreateTerminalTabOptions, isBright: boolean): ITerminalTab {\n if (!this.xtermBundle || !this.xtermFitAddonBundle) {\n throw new Error('TerminalTabManager: xterm modules not initialized. Call setXtermModules() first.');\n }\n\n const id = this.generateTabId();\n const type = options.type;\n\n // Create xterm.js Terminal instance using CDN-loaded module\n const terminal = new this.xtermBundle.Terminal({\n convertEol: true,\n cursorBlink: true,\n theme: this.getTerminalTheme(isBright),\n fontFamily: 'Menlo, Monaco, \"Courier New\", monospace',\n fontSize: 13,\n lineHeight: 1.2,\n });\n\n // Create FitAddon using CDN-loaded module\n const fitAddon = new this.xtermFitAddonBundle.FitAddon();\n terminal.loadAddon(fitAddon);\n\n const tab: ITerminalTab = {\n id,\n label: options.label || this.getDefaultLabel(type, options.metadata),\n iconName: options.iconName || this.getDefaultIcon(type),\n type,\n closeable: options.closeable ?? (type !== 'shell'),\n terminal,\n fitAddon,\n process: null,\n inputWriter: null,\n exited: false,\n exitCode: null,\n createdAt: Date.now(),\n metadata: options.metadata,\n };\n\n this.tabs.set(id, tab);\n return tab;\n }\n\n /**\n * Get tab by ID\n */\n getTab(id: string): ITerminalTab | undefined {\n return this.tabs.get(id);\n }\n\n /**\n * Get all tabs as array (ordered by creation time)\n */\n getAllTabs(): ITerminalTab[] {\n return Array.from(this.tabs.values()).sort((a, b) => a.createdAt - b.createdAt);\n }\n\n /**\n * Get the number of tabs\n */\n getTabCount(): number {\n return this.tabs.size;\n }\n\n /**\n * Check if tab exists\n */\n hasTab(id: string): boolean {\n return this.tabs.has(id);\n }\n\n /**\n * Close and cleanup a tab\n */\n closeTab(id: string): boolean {\n const tab = this.tabs.get(id);\n if (!tab) return false;\n\n // Kill process if still running\n if (tab.process && !tab.exited) {\n try {\n tab.process.kill();\n } catch (e) {\n console.warn('Failed to kill process:', e);\n }\n }\n\n // Dispose terminal\n try {\n tab.terminal.dispose();\n } catch (e) {\n console.warn('Failed to dispose terminal:', e);\n }\n\n this.tabs.delete(id);\n return true;\n }\n\n /**\n * Rename a tab\n */\n renameTab(id: string, newLabel: string): boolean {\n const tab = this.tabs.get(id);\n if (!tab) return false;\n\n tab.label = newLabel;\n return true;\n }\n\n /**\n * Update tab process state to exited\n */\n markTabExited(id: string, exitCode: number): void {\n const tab = this.tabs.get(id);\n if (!tab) return;\n\n tab.exited = true;\n tab.exitCode = exitCode;\n }\n\n /**\n * Set process for a tab\n */\n setTabProcess(id: string, process: ITerminalTab['process'], inputWriter: ITerminalTab['inputWriter']): void {\n const tab = this.tabs.get(id);\n if (!tab) return;\n\n tab.process = process;\n tab.inputWriter = inputWriter;\n }\n\n /**\n * Update theme for all terminals\n */\n updateAllThemes(isBright: boolean): void {\n const theme = this.getTerminalTheme(isBright);\n for (const tab of this.tabs.values()) {\n tab.terminal.options.theme = theme;\n }\n }\n\n /**\n * Dispose all tabs and cleanup\n */\n disposeAll(): void {\n for (const [id] of this.tabs) {\n this.closeTab(id);\n }\n this.tabs.clear();\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\n\nimport type { Terminal } from 'xterm';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment } from '../../00group-runtime/index.js';\nimport { WebContainerEnvironment } from '../../00group-runtime/index.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport type { DeesActionbar } from '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport { TerminalTabManager } from './terminal-tab-manager.js';\nimport type {\n ITerminalTab,\n ICreateTerminalTabOptions,\n TTerminalTabType,\n} from './interfaces.js';\nimport { DeesServiceLibLoader } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-terminal': DeesWorkspaceTerminal;\n }\n}\n\n@customElement('dees-workspace-terminal')\nexport class DeesWorkspaceTerminal extends DeesElement {\n public static demo = () => {\n const env = new WebContainerEnvironment();\n return html``;\n };\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n private resizeObserver: ResizeObserver;\n private tabManager: TerminalTabManager;\n\n /**\n * The execution environment (required).\n * Use WebContainerEnvironment for browser-based execution.\n */\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n @property()\n accessor setupCommand = '';\n\n /**\n * Environment variables to set in the shell\n */\n @property()\n accessor environmentVariables: { [key: string]: string } = {};\n\n /**\n * Width of the tab bar in pixels\n */\n @property({ type: Number })\n accessor tabBarWidth: number = 160;\n\n /**\n * Whether to show the tab bar\n */\n @property({ type: Boolean })\n accessor showTabBar: boolean = true;\n\n // Tab state\n @state()\n accessor tabs: ITerminalTab[] = [];\n\n @state()\n accessor activeTabId: string | null = null;\n\n // Theme subscription for dynamic theme updates\n private terminalThemeSubscription: any = null;\n private isBright: boolean = false;\n\n // Actionbar reference for terminal-context notifications\n private terminalActionbar: DeesActionbar | null = null;\n\n /**\n * Promise that resolves when the environment is ready.\n * @deprecated Use executionEnvironment directly\n */\n private environmentDeferred = new domtools.plugins.smartpromise.Deferred();\n public environmentPromise = this.environmentDeferred.promise;\n\n constructor() {\n super();\n this.tabManager = new TerminalTabManager();\n this.resizeObserver = new ResizeObserver(() => {\n this.handleResize();\n });\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n position: absolute;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .terminal-container {\n display: flex;\n flex-direction: row;\n width: 100%;\n height: 100%;\n }\n\n .terminal-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n }\n\n #active-terminal-container {\n flex: 1;\n position: relative;\n min-height: 0;\n margin: 20px;\n }\n\n .terminal-content dees-actionbar {\n flex-shrink: 0;\n }\n\n /* Tab bar on the right side */\n .tab-bar {\n display: flex;\n flex-direction: column;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 7%)')};\n border-left: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .tab-bar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 10px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 55%)')};\n }\n\n .tab-bar-title {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .tab-bar-actions {\n display: flex;\n gap: 2px;\n }\n\n .tab-action {\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .tab-action:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 15%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n }\n\n .tab-list {\n flex: 1;\n overflow-y: auto;\n padding: 4px;\n }\n\n .terminal-tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 10px;\n margin-bottom: 2px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .terminal-tab:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 12%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 25%)', 'hsl(0 0% 80%)')};\n }\n\n .terminal-tab.active {\n background: ${cssManager.bdTheme('hsl(210 100% 95%)', 'hsl(210 30% 15%)')};\n color: ${cssManager.bdTheme('hsl(210 100% 40%)', 'hsl(210 100% 70%)')};\n }\n\n .terminal-tab.exited {\n opacity: 0.7;\n }\n\n .tab-icon {\n flex-shrink: 0;\n }\n\n .tab-icon.running {\n color: ${cssManager.bdTheme('hsl(142 70% 40%)', 'hsl(142 70% 55%)')};\n }\n\n .tab-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .exit-badge {\n font-size: 10px;\n padding: 1px 5px;\n border-radius: 8px;\n font-weight: 600;\n flex-shrink: 0;\n }\n\n .exit-badge.success {\n background: ${cssManager.bdTheme('hsl(142 70% 90%)', 'hsl(142 30% 20%)')};\n color: ${cssManager.bdTheme('hsl(142 70% 35%)', 'hsl(142 70% 60%)')};\n }\n\n .exit-badge.error {\n background: ${cssManager.bdTheme('hsl(0 70% 93%)', 'hsl(0 30% 20%)')};\n color: ${cssManager.bdTheme('hsl(0 70% 45%)', 'hsl(0 70% 60%)')};\n }\n\n .tab-close {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n opacity: 0;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .terminal-tab:hover .tab-close {\n opacity: 0.6;\n }\n\n .tab-close:hover {\n opacity: 1 !important;\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 25%)')};\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n font-size: 13px;\n gap: 8px;\n }\n\n /* xterm.js styles */\n .xterm {\n font-feature-settings: 'liga' 0;\n position: relative;\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n }\n\n .xterm.focus,\n .xterm:focus {\n outline: none;\n }\n\n .xterm .xterm-helpers {\n position: absolute;\n top: 0;\n z-index: 5;\n }\n\n .xterm .xterm-helper-textarea {\n padding: 0;\n border: 0;\n margin: 0;\n position: absolute;\n opacity: 0;\n left: -9999em;\n top: 0;\n width: 0;\n height: 0;\n z-index: -5;\n white-space: nowrap;\n overflow: hidden;\n resize: none;\n }\n\n .xterm .composition-view {\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n color: ${cssManager.bdTheme('#333333', '#ffffff')};\n display: none;\n position: absolute;\n white-space: nowrap;\n z-index: 1;\n }\n\n .xterm .composition-view.active {\n display: block;\n }\n\n .xterm .xterm-viewport {\n background-color: ${cssManager.bdTheme('#ffffff', '#000000')};\n overflow-y: scroll;\n cursor: default;\n position: absolute;\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n }\n\n .xterm .xterm-screen {\n position: relative;\n }\n\n .xterm .xterm-screen canvas {\n position: absolute;\n left: 0;\n top: 0;\n }\n\n .xterm .xterm-scroll-area {\n visibility: hidden;\n }\n\n .xterm-char-measure-element {\n display: inline-block;\n visibility: hidden;\n position: absolute;\n top: 0;\n left: -9999em;\n line-height: normal;\n }\n\n .xterm {\n cursor: text;\n }\n\n .xterm.enable-mouse-events {\n cursor: default;\n }\n\n .xterm.xterm-cursor-pointer {\n cursor: pointer;\n }\n\n .xterm.column-select.focus {\n cursor: crosshair;\n }\n\n .xterm .xterm-accessibility,\n .xterm .xterm-message {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 10;\n color: transparent;\n }\n\n .xterm .live-region {\n position: absolute;\n left: -9999px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n }\n\n .xterm-dim {\n opacity: 0.5;\n }\n\n .xterm-underline {\n text-decoration: underline;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const activeTab = this.activeTabId ? this.tabManager.getTab(this.activeTabId) : null;\n\n return html`\n
        \n \n
        \n ${activeTab ? html`\n
        \n ` : html`\n
        \n \n No terminal open\n
        \n `}\n \n
        \n\n \n ${this.showTabBar ? html`\n
        \n
        \n Terminals\n
        \n
        \n \n
        \n
        \n
        \n\n
        \n ${this.tabs.map(tab => html`\n this.switchToTab(tab.id)}\n >\n \n ${tab.label}\n ${tab.exited ? html`\n \n ${tab.exitCode}\n \n ` : ''}\n ${tab.closeable ? html`\n this.handleTabClose(e, tab.id)}>\n \n \n ` : ''}\n
        \n `)}\n
        \n
        \n ` : ''}\n \n `;\n }\n\n public async firstUpdated(): Promise {\n const domtoolsInstance = await this.domtoolsPromise;\n\n // Get current theme\n this.isBright = domtoolsInstance.themeManager.goBrightBoolean;\n\n // Subscribe to theme changes\n this.terminalThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe(\n (goBright: boolean) => {\n this.isBright = goBright;\n this.tabManager.updateAllThemes(goBright);\n }\n );\n\n // Load xterm from CDN\n const libLoader = DeesServiceLibLoader.getInstance();\n const [xtermBundle, fitAddonBundle] = await Promise.all([\n libLoader.loadXterm(),\n libLoader.loadXtermFitAddon(),\n ]);\n\n // Initialize tab manager with loaded modules\n this.tabManager.setXtermModules(xtermBundle, fitAddonBundle);\n\n // Create default shell tab\n await this.createShellTab();\n }\n\n async connectedCallback(): Promise {\n await super.connectedCallback();\n // ResizeObserver is set up in attachTerminalToContainer when the container exists\n }\n\n async disconnectedCallback(): Promise {\n // Unobserve the terminal container\n const container = this.shadowRoot?.getElementById('active-terminal-container');\n if (container) {\n this.resizeObserver.unobserve(container);\n }\n if (this.terminalThemeSubscription) {\n this.terminalThemeSubscription.unsubscribe();\n this.terminalThemeSubscription = null;\n }\n this.tabManager.disposeAll();\n await super.disconnectedCallback();\n }\n\n // ========== Tab Management ==========\n\n private async handleAddTab(): Promise {\n await this.createShellTab();\n }\n\n private handleTabClose(e: Event, tabId: string): void {\n e.stopPropagation();\n this.closeTab(tabId);\n }\n\n private switchToTab(tabId: string): void {\n if (tabId === this.activeTabId) return;\n\n const tab = this.tabManager.getTab(tabId);\n if (!tab) return;\n\n const previousTabId = this.activeTabId;\n\n // Detach current terminal from DOM\n if (this.activeTabId) {\n this.detachActiveTerminal();\n }\n\n // Update active tab\n this.activeTabId = tabId;\n this.tabs = this.tabManager.getAllTabs();\n\n // Wait for render then attach new terminal\n this.updateComplete.then(() => {\n this.attachTerminalToContainer(tab);\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-switched', {\n bubbles: true,\n composed: true,\n detail: { tabId, previousTabId },\n })\n );\n });\n }\n\n private detachActiveTerminal(): void {\n const container = this.shadowRoot?.getElementById('active-terminal-container');\n if (container) {\n container.innerHTML = '';\n }\n }\n\n private attachTerminalToContainer(tab: ITerminalTab): void {\n const container = this.shadowRoot?.getElementById('active-terminal-container');\n if (!container) return;\n\n // Observe container for resize (handles actionbar appearing/disappearing)\n // ResizeObserver.observe() is idempotent - safe to call multiple times\n this.resizeObserver.observe(container);\n\n // Clear container\n container.innerHTML = '';\n\n // Open terminal in container\n tab.terminal.open(container);\n tab.fitAddon.fit();\n tab.terminal.focus();\n }\n\n private handleResize(): void {\n if (this.activeTabId) {\n const tab = this.tabManager.getTab(this.activeTabId);\n if (tab) {\n tab.fitAddon.fit();\n }\n }\n }\n\n // ========== Process Management ==========\n\n private async spawnProcessForTab(\n tab: ITerminalTab,\n command: string,\n args: string[] = []\n ): Promise {\n if (!this.executionEnvironment) {\n tab.terminal.write('\\x1b[31m');\n tab.terminal.write('\u274C No execution environment available.\\r\\n');\n tab.terminal.write('\\x1b[0m');\n return;\n }\n\n try {\n // Initialize environment if needed\n if (!this.executionEnvironment.ready) {\n tab.terminal.write('Initializing environment...\\r\\n');\n await this.executionEnvironment.init();\n }\n\n // Spawn process\n const process = await this.executionEnvironment.spawn(command, args);\n\n // Set up output piping\n process.output.pipeTo(\n new WritableStream({\n write: (data) => {\n tab.terminal.write(data);\n },\n })\n );\n\n // Set up input for interactive processes\n const inputWriter = process.input.getWriter();\n tab.terminal.onData((data) => {\n inputWriter.write(data);\n });\n\n // Store process reference\n this.tabManager.setTabProcess(tab.id, process, inputWriter);\n this.tabs = this.tabManager.getAllTabs();\n\n // Handle process exit\n process.exit.then((exitCode) => {\n this.handleProcessExit(tab.id, exitCode);\n });\n } catch (error) {\n tab.terminal.write('\\x1b[31m');\n tab.terminal.write(`\u274C Failed to spawn process: ${error}\\r\\n`);\n tab.terminal.write('\\x1b[0m');\n console.error('Failed to spawn process:', error);\n }\n }\n\n private handleProcessExit(tabId: string, exitCode: number): void {\n const tab = this.tabManager.getTab(tabId);\n if (!tab) return;\n\n // Update tab state\n this.tabManager.markTabExited(tabId, exitCode);\n\n // Write exit message to terminal\n const message =\n exitCode === 0\n ? '\\r\\n\\x1b[32m[Process completed successfully]\\x1b[0m\\r\\n'\n : `\\r\\n\\x1b[31m[Process exited with code ${exitCode}]\\x1b[0m\\r\\n`;\n tab.terminal.write(message);\n\n // Update state to trigger re-render\n this.tabs = this.tabManager.getAllTabs();\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('process-complete', {\n bubbles: true,\n composed: true,\n detail: { tabId, exitCode },\n })\n );\n\n // Show actionbar to offer closing the tab (only if tab is closeable)\n if (tab.closeable) {\n this.showExitedTabActionbar(tabId, tab.label, exitCode);\n }\n }\n\n /**\n * Show actionbar offering to close an exited tab\n */\n private async showExitedTabActionbar(tabId: string, tabLabel: string, exitCode: number): Promise {\n const isSuccess = exitCode === 0;\n const result = await this.showActionbar({\n message: isSuccess\n ? `\"${tabLabel}\" completed. Close tab?`\n : `\"${tabLabel}\" exited (code ${exitCode}). Close tab?`,\n type: isSuccess ? 'info' : 'warning',\n icon: isSuccess ? 'lucide:checkCircle' : 'lucide:alertTriangle',\n actions: [\n { id: 'close', label: 'Close Tab', primary: true },\n { id: 'keep', label: 'Keep Open' },\n ],\n timeout: { duration: 10000, defaultActionId: 'close' },\n dismissible: true,\n });\n\n // Close tab if user clicked \"Close Tab\" or timeout triggered auto-close\n if (result.actionId === 'close') {\n this.closeTab(tabId);\n }\n }\n\n // ========== Public API ==========\n\n /**\n * Create a new shell tab\n */\n public async createShellTab(label?: string): Promise {\n const tab = this.tabManager.createTab(\n {\n type: 'shell',\n label: label || `bash ${this.tabManager.getTabCount() + 1}`,\n closeable: this.tabManager.getTabCount() > 0, // First tab not closeable\n },\n this.isBright\n );\n\n this.tabs = this.tabManager.getAllTabs();\n\n // Switch to new tab\n this.switchToTab(tab.id);\n\n // Wait for DOM update then spawn shell\n await this.updateComplete;\n await this.spawnProcessForTab(tab, 'jsh');\n\n // Run setup command if this is the first tab\n if (this.tabManager.getTabCount() === 1 && this.setupCommand) {\n await this.waitForPrompt(tab.terminal, '~/');\n if (tab.inputWriter) {\n tab.inputWriter.write(this.setupCommand);\n }\n }\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-created', {\n bubbles: true,\n composed: true,\n detail: { tabId: tab.id },\n })\n );\n\n return tab.id;\n }\n\n /**\n * Create a terminal tab for running a process\n */\n public async createProcessTab(options: ICreateTerminalTabOptions): Promise {\n const tab = this.tabManager.createTab(options, this.isBright);\n\n this.tabs = this.tabManager.getAllTabs();\n\n // Switch to new tab if requested (default: true)\n if (options.switchToTab !== false) {\n this.switchToTab(tab.id);\n }\n\n // Wait for DOM update\n await this.updateComplete;\n\n // Spawn process if command provided\n if (options.command) {\n await this.spawnProcessForTab(tab, options.command, options.args);\n }\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-created', {\n bubbles: true,\n composed: true,\n detail: { tabId: tab.id },\n })\n );\n\n return tab.id;\n }\n\n /**\n * Get the currently active tab\n */\n public getActiveTab(): ITerminalTab | null {\n if (!this.activeTabId) return null;\n return this.tabManager.getTab(this.activeTabId) || null;\n }\n\n /**\n * Get all tabs\n */\n public getTabs(): ITerminalTab[] {\n return this.tabManager.getAllTabs();\n }\n\n /**\n * Switch to a specific tab by ID\n */\n public selectTab(tabId: string): boolean {\n if (!this.tabManager.hasTab(tabId)) return false;\n this.switchToTab(tabId);\n return true;\n }\n\n /**\n * Close a tab by ID\n */\n public closeTab(tabId: string): boolean {\n const tab = this.tabManager.getTab(tabId);\n if (!tab || !tab.closeable) return false;\n\n // If closing active tab, switch to another\n if (tabId === this.activeTabId) {\n const allTabs = this.tabManager.getAllTabs();\n const currentIndex = allTabs.findIndex((t) => t.id === tabId);\n const nextTab = allTabs[currentIndex + 1] || allTabs[currentIndex - 1];\n\n if (nextTab) {\n this.switchToTab(nextTab.id);\n } else {\n this.activeTabId = null;\n this.detachActiveTerminal();\n }\n }\n\n // Close the tab\n this.tabManager.closeTab(tabId);\n this.tabs = this.tabManager.getAllTabs();\n\n // Dispatch event\n this.dispatchEvent(\n new CustomEvent('tab-closed', {\n bubbles: true,\n composed: true,\n detail: { tabId },\n })\n );\n\n return true;\n }\n\n /**\n * Write data to a tab's terminal\n */\n public writeToTab(tabId: string, data: string): boolean {\n const tab = this.tabManager.getTab(tabId);\n if (!tab) return false;\n tab.terminal.write(data);\n return true;\n }\n\n /**\n * Send input to a tab's process (if interactive)\n */\n public sendInputToTab(tabId: string, data: string): boolean {\n const tab = this.tabManager.getTab(tabId);\n if (!tab || !tab.inputWriter) return false;\n tab.inputWriter.write(data);\n return true;\n }\n\n /**\n * Show an actionbar notification in the terminal panel context.\n * Use this for terminal-related decisions (e.g., retry failed process, kill process, etc.)\n */\n public async showActionbar(\n options: Parameters[0]\n ): Promise> {\n if (!this.terminalActionbar) {\n this.terminalActionbar = this.shadowRoot?.querySelector('dees-actionbar') as DeesActionbar;\n }\n return this.terminalActionbar?.show(options);\n }\n\n // ========== Utility Methods ==========\n\n public async waitForPrompt(term: Terminal, prompt: string): Promise {\n return new Promise((resolve) => {\n const checkPrompt = () => {\n const lines = term.buffer.active;\n for (let i = 0; i < lines.length; i++) {\n const line = lines.getLine(i);\n if (line && line.translateToString().includes(prompt)) {\n setTimeout(() => {\n resolve();\n }, 100);\n return;\n }\n }\n setTimeout(checkPrompt, 100);\n };\n\n checkPrompt();\n });\n }\n\n public async setEnvironmentVariables(envArg: { [key: string]: string }): Promise {\n if (!this.executionEnvironment) {\n throw new Error('No execution environment available');\n }\n\n let envFile = '';\n for (const key in envArg) {\n envFile += `export ${key}=\"${envArg[key]}\"\\n`;\n }\n\n await this.executionEnvironment.writeFile('/source.env', envFile);\n }\n\n /**\n * Get the underlying execution environment.\n */\n public getExecutionEnvironment(): IExecutionEnvironment | null {\n return this.executionEnvironment;\n }\n}\n", "import { html, DeesElement, customElement, css, cssManager } from '@design.estate/dees-element';\nimport type { IView } from './dees-simple-appdash.js';\nimport '../../00group-form/dees-form/dees-form.js';\nimport '../../00group-input/dees-input-text/dees-input-text.js';\nimport '../../00group-input/dees-input-checkbox/dees-input-checkbox.js';\nimport '../../00group-input/dees-input-dropdown/dees-input-dropdown.js';\nimport '../../00group-input/dees-input-radiogroup/dees-input-radiogroup.js';\nimport '../../00group-form/dees-form-submit/dees-form-submit.js';\nimport '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';\nimport type { IStatsTile } from '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';\n\n// Create demo view components\n@customElement('demo-view-dashboard')\nclass DemoViewDashboard extends DeesElement {\n static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n padding: 40px;\n }\n h1 {\n margin: 0 0 20px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n dees-statsgrid {\n margin-top: 20px;\n }\n `\n ];\n \n private statsTiles: IStatsTile[] = [\n {\n id: 'users',\n title: 'Active Users',\n value: 1234,\n type: 'number',\n icon: 'faUsers',\n description: '+15% from last week',\n color: '#22c55e'\n },\n {\n id: 'pageviews',\n title: 'Page Views',\n value: 56700,\n type: 'number',\n icon: 'faEye',\n description: '56.7k total views',\n color: '#3b82f6'\n },\n {\n id: 'uptime',\n title: 'System Uptime',\n value: 89,\n unit: '%',\n type: 'gauge',\n icon: 'faServer',\n description: 'Last 30 days',\n color: '#10b981',\n gaugeOptions: {\n min: 0,\n max: 100,\n thresholds: [\n { value: 80, color: '#ef4444' },\n { value: 90, color: '#f59e0b' },\n { value: 100, color: '#10b981' }\n ]\n }\n },\n {\n id: 'response',\n title: 'Avg Response Time',\n value: 3.2,\n unit: 's',\n type: 'number',\n icon: 'faClock',\n description: '-0.5s improvement',\n color: '#f59e0b'\n },\n {\n id: 'revenue',\n title: 'Monthly Revenue',\n value: 48520,\n unit: '$',\n type: 'trend',\n icon: 'faDollarSign',\n description: '+8.2% growth',\n color: '#22c55e',\n trendData: [35000, 38000, 37500, 41000, 39800, 42000, 44100, 43200, 45600, 47100, 46800, 48520]\n },\n {\n id: 'traffic',\n title: 'Traffic Trend',\n value: 1680,\n type: 'trend',\n icon: 'faChartLine',\n description: 'Last 7 days',\n color: '#3b82f6',\n trendData: [1200, 1350, 1100, 1450, 1600, 1550, 1680]\n }\n ];\n \n render() {\n return html`\n

        Dashboard

        \n

        Welcome to your application dashboard. Here's an overview of your metrics:

        \n {\n console.log('Tile action:', e.detail);\n }}\n >\n `;\n }\n}\n\n@customElement('demo-view-analytics')\nclass DemoViewAnalytics extends DeesElement {\n static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n padding: 40px;\n }\n h1 {\n margin: 0 0 20px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n `\n ];\n \n render() {\n return html`\n

        Analytics

        \n

        This is the analytics view. You can add charts and metrics here.

        \n `;\n }\n}\n\n@customElement('demo-view-settings')\nclass DemoViewSettings extends DeesElement {\n static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n padding: 40px;\n }\n h1 {\n margin: 0 0 20px 0;\n color: ${cssManager.bdTheme('#000', '#fff')};\n }\n .settings-section {\n margin-top: 30px;\n }\n .settings-section h2 {\n font-size: 18px;\n margin: 0 0 15px 0;\n color: ${cssManager.bdTheme('#333', '#ccc')};\n }\n .horizontal-form-section {\n background: ${cssManager.bdTheme('#f5f5f5', '#1a1a1a')};\n padding: 20px;\n border-radius: 8px;\n margin: 15px 0;\n }\n `\n ];\n \n render() {\n return html`\n

        Settings

        \n

        Configure your application settings below:

        \n \n
        \n

        General Settings

        \n \n \n \n \n \n \n Save General Settings\n \n
        \n \n
        \n

        Display Preferences

        \n
        \n

        Quick display settings using horizontal layout:

        \n \n \n \n \n \n
        \n
        \n \n
        \n

        Notification Settings

        \n \n \n \n \n Update Notifications\n \n
        \n `;\n }\n}\n\nexport const demoFunc = () => html`\n \n
        \n {\n console.log('Logout event triggered');\n alert('Logout clicked!');\n }}\n @view-select=${(e: CustomEvent) => {\n console.log('View selected:', e.detail.view.name);\n }}\n >\n
        \n`;\n", "import { demoFunc } from './dees-simple-appdash.demo.js';\n\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n unsafeCSS,\n type CSSResult,\n state,\n domtools,\n} from '@design.estate/dees-element';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport type { DeesWorkspaceTerminal } from '../../00group-workspace/dees-workspace-terminal/dees-workspace-terminal.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-simple-appdash': DeesSimpleAppDash;\n }\n}\n\nexport interface IView {\n name: string;\n iconName?: string;\n element: DeesElement['constructor']['prototype'];\n}\n\n@customElement('dees-simple-appdash')\nexport class DeesSimpleAppDash extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Simple'];\n // INSTANCE\n\n @property()\n accessor name: string = 'Application Dashboard';\n\n @property({ type: Array })\n accessor viewTabs: IView[] = [];\n\n @property({ type: String })\n accessor terminalSetupCommand: string = `echo \"Terminal ready\"`;\n\n @state()\n accessor selectedView: IView;\n\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n user-select: none;\n display: block;\n overflow: hidden;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n .maincontainer {\n position: absolute;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n overflow: hidden;\n }\n\n .appbar {\n position: absolute;\n top: 0px;\n left: 0px;\n height: calc(100% - 24px);\n width: 240px;\n background: ${cssManager.bdTheme('hsl(0 0% 99%)', 'hsl(0 0% 7%)')};\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 13%)')};\n font-size: 13px;\n font-family: 'Geist Sans', sans-serif;\n z-index: 2;\n display: grid;\n grid-template-rows: auto 1fr min-content;\n overflow: hidden;\n }\n\n .sidebar-header {\n padding: 20px 16px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 13%)')};\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-icon-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border-radius: 10px;\n background: ${cssManager.bdTheme(\n 'linear-gradient(135deg, hsl(215 20% 95%) 0%, hsl(215 20% 90%) 100%)',\n 'linear-gradient(135deg, hsl(215 20% 18%) 0%, hsl(215 20% 14%) 100%)'\n )};\n box-shadow: ${cssManager.bdTheme(\n '0 1px 2px rgb(0 0 0 / 0.05), inset 0 1px 0 rgb(255 255 255 / 0.5)',\n '0 1px 2px rgb(0 0 0 / 0.2), inset 0 1px 0 rgb(255 255 255 / 0.05)'\n )};\n }\n\n .header-icon-wrapper dees-icon {\n font-size: 18px;\n color: ${cssManager.bdTheme('hsl(215 20% 40%)', 'hsl(215 20% 70%)')};\n }\n\n .appName {\n font-size: 15px;\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n letter-spacing: -0.02em;\n }\n\n .viewTabs-container {\n overflow-y: auto;\n padding: 12px 8px;\n scrollbar-width: thin;\n scrollbar-color: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')} transparent;\n }\n\n .viewTabs-container::-webkit-scrollbar {\n width: 6px;\n }\n\n .viewTabs-container::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .viewTabs-container::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n border-radius: 3px;\n }\n\n .viewTabs-container::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 75%)', 'hsl(0 0% 30%)')};\n }\n\n .section-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n padding: 8px 12px 8px;\n margin-bottom: 4px;\n }\n\n .viewTabs {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .viewTab {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n cursor: default;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 65%)')};\n user-select: none;\n position: relative;\n border-radius: 8px;\n }\n\n .viewTab:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.04)', 'hsl(0 0% 100% / 0.05)')};\n color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};\n }\n\n .viewTab:active {\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.06)', 'hsl(0 0% 100% / 0.07)')};\n transform: scale(0.99);\n }\n\n .viewTab.selected {\n background: ${cssManager.bdTheme('hsl(215 25% 95%)', 'hsl(215 20% 15%)')};\n color: ${cssManager.bdTheme('hsl(215 25% 30%)', 'hsl(215 25% 85%)')};\n font-weight: 500;\n }\n\n .viewTab.selected::before {\n content: '';\n position: absolute;\n left: 0;\n top: 8px;\n bottom: 8px;\n width: 3px;\n border-radius: 0 2px 2px 0;\n background: ${cssManager.bdTheme('hsl(215 70% 50%)', 'hsl(215 70% 60%)')};\n }\n\n .viewTab dees-icon {\n font-size: 16px;\n opacity: 0.55;\n transition: all 0.15s ease;\n }\n\n .viewTab:hover dees-icon {\n opacity: 0.75;\n }\n\n .viewTab.selected dees-icon {\n opacity: 0.9;\n color: ${cssManager.bdTheme('hsl(215 70% 45%)', 'hsl(215 70% 65%)')};\n }\n\n .viewTab span {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .appActions {\n padding: 12px 8px;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 91%)', 'hsl(0 0% 13%)')};\n }\n\n .action {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: default;\n transition: all 0.15s ease;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 65%)')};\n }\n\n .action:hover {\n background: ${cssManager.bdTheme('hsl(0 84% 60% / 0.08)', 'hsl(0 84% 60% / 0.12)')};\n color: ${cssManager.bdTheme('hsl(0 84% 45%)', 'hsl(0 84% 65%)')};\n }\n\n .action dees-icon {\n font-size: 16px;\n opacity: 0.6;\n transition: all 0.15s ease;\n }\n\n .action:hover dees-icon {\n opacity: 0.9;\n color: ${cssManager.bdTheme('hsl(0 84% 45%)', 'hsl(0 84% 65%)')};\n }\n\n .appcontent {\n z-index: 1;\n position: absolute;\n top: 0px;\n right: 0px;\n height: calc(100% - 24px);\n bottom: 24px;\n width: calc(100% - 240px);\n overflow: auto;\n background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 5%)')};\n overscroll-behavior: contain;\n }\n\n .controlbar {\n color: #fff;\n position: absolute;\n bottom: 0px;\n left: 0px;\n width: 100%;\n height: 24px;\n background: ${cssManager.bdTheme('hsl(220 13% 18%)', 'hsl(220 13% 12%)')};\n z-index: 2;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n flex-direction: row;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n }\n\n .control {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 12px;\n height: 100%;\n white-space: nowrap;\n cursor: default;\n color: hsl(0 0% 70%);\n transition: all 0.15s ease;\n border-left: 1px solid hsl(0 0% 100% / 0.08);\n }\n\n .control:first-child {\n border-left: none;\n }\n\n .control:hover {\n background: hsl(0 0% 100% / 0.06);\n color: hsl(0 0% 95%);\n }\n\n .control dees-icon {\n font-size: 13px;\n }\n\n .control.status-connected dees-icon {\n color: hsl(142 70% 50%);\n }\n\n .control.status-terminal dees-icon {\n color: hsl(45 90% 55%);\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
        \n
        \n
        \n
        \n \n
        \n
        ${this.name}
        \n
        \n
        \n
        Navigation
        \n
        \n ${this.viewTabs.map(\n (view) => html`\n this.loadView(view)}\n >\n ${view.iconName ? html`\n \n ` : html`\n \n `}\n ${view.name}\n
        \n `\n )}\n
        \n
        \n
        \n
        {\n this.dispatchEvent(new CustomEvent('logout', { bubbles: true, composed: true }));\n }}>\n \n Sign out\n
        \n
        \n
        \n
        \n \n
        \n
        \n
        \n \n Connected\n
        \n
        \n \n Terminal\n
        \n
        \n \n `;\n }\n\n public async firstUpdated(_changedProperties): Promise {\n const domtools = await this.domtoolsPromise;\n super.firstUpdated(_changedProperties);\n if (this.viewTabs && this.viewTabs.length > 0) {\n const viewToLoad = this.selectedView || this.viewTabs[0];\n await this.loadView(viewToLoad);\n }\n }\n \n public currentTerminal: DeesWorkspaceTerminal;\n public async launchTerminal() {\n const domtools = await this.domtoolsPromise;\n if (this.currentTerminal) {\n // If terminal already exists, remove it\n await this.closeTerminal();\n return;\n }\n\n const maincontainer = this.shadowRoot.querySelector('.maincontainer');\n const { DeesWorkspaceTerminal } = await import('../../00group-workspace/dees-workspace-terminal/dees-workspace-terminal.js');\n const terminal = new DeesWorkspaceTerminal();\n terminal.setupCommand = this.terminalSetupCommand;\n this.currentTerminal = terminal;\n maincontainer.appendChild(terminal);\n terminal.style.position = 'absolute';\n terminal.style.zIndex = '10';\n terminal.style.top = '0px';\n terminal.style.left = '240px';\n terminal.style.right = '0px';\n terminal.style.bottom = '24px';\n terminal.style.opacity = '0';\n terminal.style.transform = 'translateY(8px) scale(0.99)';\n terminal.style.transition = 'all 0.25s cubic-bezier(0.4, 0, 0.2, 1)';\n terminal.style.boxShadow = '0 25px 50px -12px rgb(0 0 0 / 0.5), 0 0 0 1px rgb(255 255 255 / 0.05)';\n terminal.style.maxWidth = `calc(${maincontainer.clientWidth}px -240px)`;\n terminal.style.maxHeight = `calc(${maincontainer.clientHeight}px - 24px)`;\n \n // Add close button to terminal\n terminal.addEventListener('close', () => this.closeTerminal());\n \n await domtools.convenience.smartdelay.delayFor(0);\n terminal.style.opacity = '1';\n terminal.style.transform = 'translateY(0) scale(1)';\n return terminal;\n }\n \n private async closeTerminal() {\n const domtools = await this.domtoolsPromise;\n if (this.currentTerminal) {\n this.currentTerminal.style.opacity = '0';\n this.currentTerminal.style.transform = 'translateY(8px) scale(0.99)';\n await domtools.convenience.smartdelay.delayFor(250);\n this.currentTerminal.remove();\n this.currentTerminal = null;\n }\n }\n\n\n private currentView: DeesElement;\n public async loadView(viewArg: IView) {\n const appcontent = this.shadowRoot.querySelector('.appcontent');\n const view = new viewArg.element();\n if (this.currentView) {\n this.currentView.remove();\n }\n appcontent.appendChild(view);\n this.currentView = view;\n this.selectedView = viewArg;\n \n // Emit view-select event\n this.dispatchEvent(new CustomEvent('view-select', {\n detail: { view: viewArg },\n bubbles: true,\n composed: true\n }));\n }\n}\n", "export * from './dees-simple-appdash.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
        \n {\n console.log('Login event received:', e.detail);\n const loginData = e.detail?.data || e.detail;\n if (loginData?.username && loginData?.password) {\n alert(`Login attempted with:\\nUsername: ${loginData.username}\\nPassword: ${loginData.password}`);\n // Here you would typically validate credentials and show the slotted content\n } else {\n console.error('Invalid login data structure:', e.detail);\n }\n }}\n >\n
        \n

        Welcome!

        \n

        This is the slotted content that appears after login.

        \n
        \n
        \n
        \n`;\n", "import { demoFunc } from './dees-simple-login.demo.js';\n\nimport {\n customElement,\n html,\n DeesElement,\n property,\n type TemplateResult,\n cssManager,\n css,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-simple-login': DeesSimpleLogin;\n }\n}\n\n@customElement('dees-simple-login')\nexport class DeesSimpleLogin extends DeesElement {\n // STATIC\n public static demo = demoFunc;\n public static demoGroups = ['Simple'];\n // INSTANCE\n\n @property()\n accessor name: string = 'Application';\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};\n user-select: none;\n display: block;\n width: 100%;\n height: 100%;\n font-family: 'Geist Sans', sans-serif;\n }\n\n .loginContainer {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};\n }\n\n .slotContainer {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n opacity: 0;\n transition: opacity 0.2s ease, transform 0.2s ease;\n pointer-events: none;\n }\n\n .login {\n width: 100%;\n max-width: 360px;\n display: flex;\n flex-direction: column;\n gap: 24px;\n }\n\n .login-header {\n display: flex;\n flex-direction: column;\n gap: 8px;\n text-align: center;\n }\n\n .header {\n font-size: 24px;\n font-weight: 600;\n letter-spacing: -0.025em;\n color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};\n }\n\n .subheader {\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};\n }\n\n .login-card {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};\n border-radius: 8px;\n padding: 24px;\n }\n\n .login-card dees-form {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .login-card dees-input-text {\n width: 100%;\n }\n\n .login-card dees-form-submit {\n margin-top: 8px;\n width: 100%;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
        \n
        \n
        \n
        Sign in
        \n
        Enter your credentials to access ${this.name}
        \n
        \n
        \n \n \n \n Sign in\n \n
        \n
        \n
        \n
        \n \n
        \n `;\n }\n\n public async firstUpdated(_changedProperties: Map): Promise {\n super.firstUpdated(_changedProperties);\n \n const form = this.shadowRoot.querySelector('dees-form') as any;\n if (form) {\n form.addEventListener('formData', (event: CustomEvent) => {\n this.dispatchEvent(new CustomEvent('login', { \n detail: event.detail, \n bubbles: true, \n composed: true \n }));\n });\n }\n }\n\n /**\n * allows switching to slotted content\n */\n public async switchToSlottedContent() {\n const domtools = await this.domtoolsPromise;\n const loginDiv: HTMLDivElement = this.shadowRoot.querySelector('.login');\n const loginContainerDiv: HTMLDivElement = this.shadowRoot.querySelector('.loginContainer');\n const slotContainerDiv: HTMLDivElement = this.shadowRoot.querySelector('.slotContainer');\n loginDiv.style.opacity = '0';\n loginDiv.style.transform = 'translateY(20px)';\n loginContainerDiv.style.pointerEvents = 'none';\n slotContainerDiv.style.transform = 'translateY(20px)';\n await domtools.convenience.smartdelay.delayFor(300);\n slotContainerDiv.style.opacity = '1';\n slotContainerDiv.style.transform = 'translateY(0px)';\n await domtools.convenience.smartdelay.delayFor(300);\n slotContainerDiv.style.pointerEvents = 'all';\n }\n}\n", "export * from './dees-simple-login.js';\n", "// Simple Components\nexport * from './dees-shopping-productcard/index.js';\nexport * from './dees-simple-appdash/index.js';\nexport * from './dees-simple-login/index.js';\n", "export * from './dees-icon.js';\n", "import { html } from '@design.estate/dees-element';\n\nexport const demoFunc = () => {\n const onChanged = (e: CustomEvent) => {\n // find the demo wrapper and update the 'changed' log inside it\n const wrapper = (e.target as HTMLElement).closest('.demoWrapper');\n const el = wrapper?.querySelector('#changed');\n if (el) el.textContent = `search-changed: ${e.detail.value}`;\n };\n const onSubmit = (e: CustomEvent) => {\n // find the demo wrapper and update the 'submitted' log inside it\n const wrapper = (e.target as HTMLElement).closest('.demoWrapper');\n const el = wrapper?.querySelector('#submitted');\n if (el) el.textContent = `search-submit: ${e.detail.value}`;\n };\n return html`\n \n
        \n \n
        \n
        search-changed:
        \n
        search-submit:
        \n
        \n
        \n `;\n};", "import {\n customElement,\n DeesElement,\n property,\n html,\n cssManager,\n unsafeCSS,\n css,\n type TemplateResult,\n domtools,\n query,\n} from '@design.estate/dees-element';\n\nimport * as colors from '../../00colors.js';\nimport { demoFunc } from './dees-searchbar.demo.js';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-searchbar': DeesSearchbar;\n }\n}\n\n@customElement('dees-searchbar')\nexport class DeesSearchbar extends DeesElement {\n // DEMO\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n // STATIC\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n :host {\n padding: 40px;\n font-family: Dees Sans;\n display: block;\n background: ${cssManager.bdTheme('#eeeeeb', '#000000')};\n }\n\n .searchboxContainer {\n position: relative;\n margin: auto;\n max-width: 800px;\n background: ${cssManager.bdTheme('#00000015', '#ffffff15')};\n --boxHeight: 60px;\n height: var(--boxHeight);\n border-radius: var(--boxHeight);\n display: grid;\n grid-template-columns: 1fr 140px;\n justify-content: center;\n align-items: center;\n border-top: 1px solid ${cssManager.bdTheme('#00000015', '#ffffff20')};\n }\n\n input {\n height: 100%;\n width: 100%;\n border: none;\n background: none;\n color: ${cssManager.bdTheme('#000000', '#eeeeeb')};\n padding-left: 25px;\n margin-right: -8px;\n outline: none;\n font-size: 16px;\n }\n\n .searchButton {\n --buttonPadding: 8px;\n background: ${cssManager.bdTheme('#eeeeeb', '#000000')};\n color: ${cssManager.bdTheme('#000000', '#eeeeeb')};\n line-height: calc(var(--boxHeight) - (var(--buttonPadding) * 2));\n border-radius: var(--boxHeight);\n transform: scale(1) ;\n transform-origin: 50% 50%;\n text-align: center;\n \n transition: transform 0.1s, background 0.1s;\n margin-right: var(--buttonPadding);\n user-select: none;\n }\n\n .searchButton:hover {\n color: #fff;\n background: ${cssManager.bdTheme(colors.bright.blue, colors.dark.blue)};\n }\n\n .searchButton:active {\n color: #fff;\n background: ${cssManager.bdTheme(colors.bright.blueActive, colors.dark.blueActive)};\n transform: scale(0.98);\n }\n\n .filters {\n margin: auto;\n max-width: 800px;\n }\n `,\n ];\n\n // INSTANCE\n\n @property()\n accessor filters = [];\n\n\n public searchInput!: HTMLInputElement;\n public searchButton!: HTMLElement;\n\n constructor() {\n super();\n }\n\n public render(): TemplateResult {\n return html`\n
        \n \n
        Search ->
        \n
        \n ${this.filters.length > 0 ? html`\n
        \n Filters\n \n
        \n ` : html``}\n `;\n }\n /**\n * Lifecycle: after first render, wire up events for input and submit actions\n */\n public firstUpdated(): void {\n // dispatch change on each input\n this.searchInput.addEventListener('input', () => {\n this.dispatchEvent(new CustomEvent('search-changed', {\n bubbles: true,\n composed: true,\n detail: { value: this.searchInput.value }\n }));\n });\n // submit on Enter key\n this.searchInput.addEventListener('keydown', (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this._dispatchSubmit();\n }\n });\n // submit on button click\n this.searchButton.addEventListener('click', () => this._dispatchSubmit());\n }\n\n /**\n * Dispatch a submit event with the current search value\n */\n private _dispatchSubmit(): void {\n this.dispatchEvent(new CustomEvent('search-submit', {\n bubbles: true,\n composed: true,\n detail: { value: this.searchInput.value }\n }));\n }\n}\n", "export * from './dees-searchbar.js';\n", "import { html, css, cssManager } from '@design.estate/dees-element';\n\nexport const demoFunc = () => html`\n \n
        \n \n
        \n
        Spacing Scale
        \n
        \n CSS variables: --dees-spacing-xs through --dees-spacing-3xl\n
        \n
        \n
        \n
        \n
        xs (4px)
        \n
        \n
        \n
        \n
        sm (8px)
        \n
        \n
        \n
        \n
        md (12px)
        \n
        \n
        \n
        \n
        lg (16px)
        \n
        \n
        \n
        \n
        xl (24px)
        \n
        \n
        \n
        \n
        2xl (32px)
        \n
        \n
        \n
        \n
        3xl (48px)
        \n
        \n
        \n
        \n\n
        \n
        Border Radius Scale
        \n
        \n CSS variables: --dees-radius-xs through --dees-radius-full\n
        \n
        \n
        \n
        xs
        \n
        2px
        \n
        \n
        \n
        sm
        \n
        4px
        \n
        \n
        \n
        md
        \n
        6px
        \n
        \n
        \n
        lg
        \n
        8px
        \n
        \n
        \n
        xl
        \n
        12px
        \n
        \n
        \n
        full
        \n
        999px
        \n
        \n
        \n
        \n\n
        \n
        Shadow Elevation Scale
        \n
        \n CSS variables: --dees-shadow-xs through --dees-shadow-lg\n
        \n
        \n
        \n
        xs
        \n
        minimal
        \n
        \n
        \n
        sm
        \n
        subtle
        \n
        \n
        \n
        md
        \n
        medium
        \n
        \n
        \n
        lg
        \n
        prominent
        \n
        \n
        \n
        \n\n
        \n
        Control Height Scale
        \n
        \n CSS variables: --dees-control-height-sm through --dees-control-height-xl\n
        \n
        \n
        \n
        sm
        \n
        32px
        \n
        \n
        \n
        md
        \n
        36px
        \n
        \n
        \n
        lg
        \n
        40px
        \n
        \n
        \n
        xl
        \n
        48px
        \n
        \n
        \n
        \n\n
        \n
        Transition Durations
        \n
        \n CSS variables: --dees-transition-fast through --dees-transition-slower\n
        \n
        \n
        \n
        --dees-transition-fast
        \n
        0.1s
        \n
        \n
        \n
        --dees-transition-default
        \n
        0.15s
        \n
        \n
        \n
        --dees-transition-slow
        \n
        0.2s
        \n
        \n
        \n
        --dees-transition-slower
        \n
        0.3s
        \n
        \n
        \n
        \n
        \n
        \n`;\n", "import {\n DeesElement,\n type TemplateResult,\n property,\n customElement,\n html,\n css,\n cssManager,\n} from '@design.estate/dees-element';\n\nimport {\n type ITheme,\n type IThemeColors,\n type IThemeSpacing,\n type IThemeRadius,\n type IThemeShadows,\n type IThemeTransitions,\n type IThemeControlHeights,\n themeDefaults,\n themeDefaultStyles,\n} from '../../00theme.js';\n\nimport { demoFunc } from './dees-theme.demo.js';\n\n/**\n * A theme provider component that wraps children and provides CSS custom properties.\n * Can be used at the app root or around specific sections to customize theming.\n *\n * Usage:\n * ```html\n * \n * \n * \n * ```\n *\n * With custom overrides:\n * ```html\n * \n * \n * \n * ```\n */\n@customElement('dees-theme')\nexport class DeesTheme extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n // ============================================\n // Properties for theme overrides\n // ============================================\n\n @property({ type: Object })\n accessor customSpacing: Partial | null = null;\n\n @property({ type: Object })\n accessor customRadius: Partial | null = null;\n\n @property({ type: Object })\n accessor customShadows: Partial | null = null;\n\n @property({ type: Object })\n accessor customTransitions: Partial | null = null;\n\n @property({ type: Object })\n accessor customControlHeights: Partial | null = null;\n\n // ============================================\n // Styles\n // ============================================\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: contents;\n }\n `,\n ];\n\n // ============================================\n // Render\n // ============================================\n\n public render(): TemplateResult {\n return html`\n \n \n `;\n }\n\n // ============================================\n // Private Methods\n // ============================================\n\n private generateCustomStyles(): string {\n const styles: string[] = [':host {'];\n\n // Custom spacing\n if (this.customSpacing) {\n for (const [key, value] of Object.entries(this.customSpacing)) {\n if (value) {\n styles.push(` --dees-spacing-${key}: ${value};`);\n }\n }\n }\n\n // Custom radius\n if (this.customRadius) {\n for (const [key, value] of Object.entries(this.customRadius)) {\n if (value) {\n styles.push(` --dees-radius-${key}: ${value};`);\n }\n }\n }\n\n // Custom shadows\n if (this.customShadows) {\n for (const [key, value] of Object.entries(this.customShadows)) {\n if (value) {\n styles.push(` --dees-shadow-${key}: ${value};`);\n }\n }\n }\n\n // Custom transitions\n if (this.customTransitions) {\n for (const [key, value] of Object.entries(this.customTransitions)) {\n if (value) {\n const cssKey = key === 'default' ? 'default' : key;\n styles.push(` --dees-transition-${cssKey}: ${value};`);\n }\n }\n }\n\n // Custom control heights\n if (this.customControlHeights) {\n for (const [key, value] of Object.entries(this.customControlHeights)) {\n if (value) {\n styles.push(` --dees-control-height-${key}: ${value};`);\n }\n }\n }\n\n styles.push('}');\n return styles.join('\\n');\n }\n\n // ============================================\n // Public API Methods\n // ============================================\n\n /**\n * Set a spacing value dynamically\n */\n public setSpacing(key: keyof IThemeSpacing, value: string): void {\n this.customSpacing = { ...this.customSpacing, [key]: value };\n }\n\n /**\n * Set a radius value dynamically\n */\n public setRadius(key: keyof IThemeRadius, value: string): void {\n this.customRadius = { ...this.customRadius, [key]: value };\n }\n\n /**\n * Set a shadow value dynamically\n */\n public setShadow(key: keyof IThemeShadows, value: string): void {\n this.customShadows = { ...this.customShadows, [key]: value };\n }\n\n /**\n * Set a transition value dynamically\n */\n public setTransition(key: keyof IThemeTransitions, value: string): void {\n this.customTransitions = { ...this.customTransitions, [key]: value };\n }\n\n /**\n * Set a control height value dynamically\n */\n public setControlHeight(key: keyof IThemeControlHeights, value: string): void {\n this.customControlHeights = { ...this.customControlHeights, [key]: value };\n }\n\n /**\n * Get the current theme configuration (defaults + overrides)\n */\n public getTheme(): ITheme {\n return {\n colors: themeDefaults.colors,\n spacing: { ...themeDefaults.spacing, ...this.customSpacing },\n radius: { ...themeDefaults.radius, ...this.customRadius },\n shadows: { ...themeDefaults.shadows, ...this.customShadows },\n transitions: { ...themeDefaults.transitions, ...this.customTransitions },\n controlHeights: { ...themeDefaults.controlHeights, ...this.customControlHeights },\n };\n }\n\n /**\n * Reset all custom overrides to defaults\n */\n public resetToDefaults(): void {\n this.customSpacing = null;\n this.customRadius = null;\n this.customShadows = null;\n this.customTransitions = null;\n this.customControlHeights = null;\n }\n\n /**\n * Apply a complete theme object\n */\n public applyTheme(theme: Partial): void {\n if (theme.spacing) this.customSpacing = theme.spacing;\n if (theme.radius) this.customRadius = theme.radius;\n if (theme.shadows) this.customShadows = theme.shadows;\n if (theme.transitions) this.customTransitions = theme.transitions;\n if (theme.controlHeights) this.customControlHeights = theme.controlHeights;\n }\n}\n", "export * from './dees-theme.js';\n", "import { html } from '@design.estate/dees-element';\n\nimport { DeesUpdater } from '../dees-updater/dees-updater.js';\n\nexport const demoFunc = async () => {\n const updater = await DeesUpdater.createAndShow();\n setTimeout(async () => {\n await updater.destroy();\n }, 10000);\n}", "import {\n customElement,\n DeesElement,\n type TemplateResult,\n html,\n property,\n type CSSResult,\n domtools,\n} from '@design.estate/dees-element';\nimport { demoFunc } from './dees-updater.demo.js';\n\nimport '../../00group-overlay/dees-windowlayer/dees-windowlayer.js';\nimport { css, cssManager } from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-updater': DeesUpdater;\n }\n}\n\n@customElement('dees-updater')\nexport class DeesUpdater extends DeesElement {\n public static demo = demoFunc;\n public static demoGroups = ['Utility'];\n\n public static async createAndShow() {\n const updater = new DeesUpdater();\n document.body.appendChild(updater);\n return updater;\n }\n\n @property({\n type: String,\n })\n accessor currentVersion: string;\n\n @property({\n type: String,\n })\n accessor updatedVersion: string;\n\n constructor() {\n super();\n domtools.elementBasic.setup();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n /* TODO: Migrate hardcoded values to --dees-* CSS variables */\n .modalContainer {\n will-change: transform;\n position: relative;\n background: ${cssManager.bdTheme('#eeeeeb', '#222')};\n max-width: 800px;\n border-radius: 8px;\n border-top: 1px solid ${cssManager.bdTheme('#eeeeeb', '#333')};\n }\n\n .headingContainer {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 40px 40px;\n }\n\n h1 {\n margin: none;\n font-size: 20px;\n color: ${cssManager.bdTheme('#333', '#fff')};\n margin-left: 20px;\n font-weight: normal;\n }\n\n .buttonContainer {\n display: grid;\n grid-template-columns: 50% 50%;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n \n
        \n
        \n \n

        Updating the application...

        \n
        \n
        \n \n
        \n
        \n More info\n Changelog\n
        \n
        >\n `;\n }\n\n public async destroy() {\n this.parentElement.removeChild(this);\n }\n\n private windowLayerClicked() {}\n}\n", "export * from './dees-updater.js';\n", "export * from './dees-windowcontrols.js';\n", "// Utility Components\nexport * from './dees-icon/index.js';\nexport * from './dees-searchbar/index.js';\nexport * from './dees-theme/index.js';\nexport * from './dees-updater/index.js';\nexport * from './dees-windowcontrols/index.js';\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment, IFileEntry, IFileWatcher } from '../../00group-runtime/index.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport { DeesModal } from '../../00group-overlay/dees-modal/dees-modal.js';\nimport '../../00group-input/dees-input-text/dees-input-text.js';\nimport { DeesInputText } from '../../00group-input/dees-input-text/dees-input-text.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-filetree': DeesWorkspaceFiletree;\n }\n}\n\ninterface ITreeNode extends IFileEntry {\n children?: ITreeNode[];\n expanded?: boolean;\n level: number;\n}\n\n@customElement('dees-workspace-filetree')\nexport class DeesWorkspaceFiletree extends DeesElement {\n public static demo = () => html`\n
        \n \n
        \n `;\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n @property({ type: String })\n accessor rootPath: string = '/';\n\n @property({ type: String })\n accessor selectedPath: string = '';\n\n @state()\n accessor treeData: ITreeNode[] = [];\n\n @state()\n accessor isLoading: boolean = false;\n\n @state()\n accessor errorMessage: string = '';\n\n private expandedPaths: Set = new Set();\n private loadTreeStarted: boolean = false;\n\n // Clipboard state for copy/paste operations\n private clipboardPath: string | null = null;\n private clipboardOperation: 'copy' | 'cut' | null = null;\n\n // File watcher for auto-refresh\n private fileWatcher: IFileWatcher | null = null;\n private refreshDebounceTimeout: ReturnType | null = null;\n private lastExecutionEnvironment: IExecutionEnvironment | null = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: auto;\n background: ${cssManager.bdTheme('hsl(0 0% 98%)', 'hsl(0 0% 9%)')};\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 13px;\n }\n\n .tree-container {\n padding: 8px 0;\n }\n\n .tree-item {\n display: flex;\n align-items: center;\n padding: 4px 8px;\n cursor: pointer;\n user-select: none;\n border-radius: 4px;\n margin: 1px 4px;\n transition: background 0.1s ease;\n }\n\n .tree-item:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 93%)', 'hsl(0 0% 14%)')};\n }\n\n .tree-item.selected {\n background: ${cssManager.bdTheme('hsl(210 100% 95%)', 'hsl(210 50% 20%)')};\n color: ${cssManager.bdTheme('hsl(210 100% 40%)', 'hsl(210 100% 70%)')};\n }\n\n .tree-item.selected:hover {\n background: ${cssManager.bdTheme('hsl(210 100% 92%)', 'hsl(210 50% 25%)')};\n }\n\n .indent {\n display: inline-block;\n width: 16px;\n flex-shrink: 0;\n }\n\n .expand-icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n transition: transform 0.15s ease;\n }\n\n .expand-icon.expanded {\n transform: rotate(90deg);\n }\n\n .expand-icon.hidden {\n visibility: hidden;\n }\n\n .file-icon {\n width: 16px;\n height: 16px;\n margin-right: 6px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .file-icon dees-icon {\n width: 16px;\n height: 16px;\n }\n\n .file-icon.folder {\n color: ${cssManager.bdTheme('hsl(45 80% 45%)', 'hsl(45 70% 55%)')};\n }\n\n .file-icon.file {\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .file-icon.typescript {\n color: hsl(211 60% 48%);\n }\n\n .file-icon.javascript {\n color: hsl(53 93% 54%);\n }\n\n .file-icon.json {\n color: hsl(45 80% 50%);\n }\n\n .file-icon.html {\n color: hsl(14 77% 52%);\n }\n\n .file-icon.css {\n color: hsl(228 77% 59%);\n }\n\n .file-icon.markdown {\n color: hsl(0 0% 50%);\n }\n\n .file-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 85%)')};\n }\n\n .loading {\n padding: 16px;\n text-align: center;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .error {\n padding: 16px;\n text-align: center;\n color: hsl(0 70% 50%);\n }\n\n .empty {\n padding: 16px;\n text-align: center;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n font-style: italic;\n }\n\n .filetree-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 36px;\n padding: 0 12px;\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 8%)')};\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n .toolbar-title {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .toolbar-actions {\n display: flex;\n gap: 4px;\n }\n\n .toolbar-button {\n padding: 4px;\n border-radius: 4px;\n cursor: pointer;\n opacity: 0.7;\n transition: opacity 0.15s, background 0.15s;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 70%)')};\n }\n\n .toolbar-button:hover {\n opacity: 1;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.08)', 'hsl(0 0% 100% / 0.1)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n if (!this.executionEnvironment) {\n return html`\n
        \n No execution environment provided.\n
        \n `;\n }\n\n if (this.isLoading) {\n return html`\n
        \n Loading files...\n
        \n `;\n }\n\n if (this.errorMessage) {\n return html`\n
        \n ${this.errorMessage}\n
        \n `;\n }\n\n return html`\n
        \n Explorer\n
        \n
        this.createNewFile('/')} title=\"New File\">\n \n
        \n
        this.createNewFolder('/')} title=\"New Folder\">\n \n
        \n
        \n
        \n ${this.treeData.length === 0\n ? html`
        No files found.
        `\n : html`\n
        \n ${this.renderTree(this.treeData)}\n
        \n `}\n `;\n }\n\n private renderTree(nodes: ITreeNode[]): TemplateResult[] {\n return nodes.map(node => this.renderNode(node));\n }\n\n private renderNode(node: ITreeNode): TemplateResult {\n const isDirectory = node.type === 'directory';\n const isExpanded = this.expandedPaths.has(node.path);\n const isSelected = node.path === this.selectedPath;\n const iconClass = this.getFileIconClass(node);\n\n return html`\n this.handleItemClick(e, node)}\n @contextmenu=${(e: MouseEvent) => this.handleContextMenu(e, node)}\n >\n \n \n \n \n \n \n ${node.name}\n \n ${isDirectory && isExpanded && node.children\n ? this.renderTree(node.children)\n : ''}\n `;\n }\n\n private getFileIcon(node: ITreeNode): string {\n if (node.type === 'directory') {\n return this.expandedPaths.has(node.path) ? 'lucide:folderOpen' : 'lucide:folder';\n }\n\n const ext = node.name.split('.').pop()?.toLowerCase();\n switch (ext) {\n case 'ts':\n case 'tsx':\n return 'lucide:fileCode';\n case 'js':\n case 'jsx':\n return 'lucide:fileCode';\n case 'json':\n return 'lucide:fileJson';\n case 'html':\n return 'lucide:fileCode';\n case 'css':\n case 'scss':\n case 'less':\n return 'lucide:fileCode';\n case 'md':\n return 'lucide:fileText';\n case 'png':\n case 'jpg':\n case 'jpeg':\n case 'gif':\n case 'svg':\n return 'lucide:image';\n default:\n return 'lucide:file';\n }\n }\n\n private getFileIconClass(node: ITreeNode): string {\n if (node.type === 'directory') return 'folder';\n\n const ext = node.name.split('.').pop()?.toLowerCase();\n switch (ext) {\n case 'ts':\n case 'tsx':\n return 'typescript';\n case 'js':\n case 'jsx':\n return 'javascript';\n case 'json':\n return 'json';\n case 'html':\n return 'html';\n case 'css':\n case 'scss':\n case 'less':\n return 'css';\n case 'md':\n return 'markdown';\n default:\n return 'file';\n }\n }\n\n private async handleItemClick(e: MouseEvent, node: ITreeNode) {\n e.stopPropagation();\n\n if (node.type === 'directory') {\n await this.toggleDirectory(node);\n } else {\n this.selectedPath = node.path;\n this.dispatchEvent(\n new CustomEvent('file-select', {\n detail: { path: node.path, name: node.name },\n bubbles: true,\n composed: true,\n })\n );\n }\n }\n\n private async toggleDirectory(node: ITreeNode) {\n if (this.expandedPaths.has(node.path)) {\n this.expandedPaths.delete(node.path);\n } else {\n this.expandedPaths.add(node.path);\n // Load children if not already loaded\n if (!node.children || node.children.length === 0) {\n await this.loadDirectoryContents(node);\n }\n }\n this.requestUpdate();\n }\n\n private async loadDirectoryContents(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n try {\n const entries = await this.executionEnvironment.readDir(node.path);\n node.children = this.sortEntries(entries).map(entry => ({\n ...entry,\n level: node.level + 1,\n expanded: false,\n children: entry.type === 'directory' ? [] : undefined,\n }));\n } catch (error) {\n console.error(`Failed to load directory ${node.path}:`, error);\n }\n }\n\n private async handleContextMenu(e: MouseEvent, node: ITreeNode) {\n e.preventDefault();\n e.stopPropagation();\n\n const menuItems = [];\n\n if (node.type === 'directory') {\n // Directory-specific options\n menuItems.push(\n {\n name: 'New File',\n iconName: 'filePlus',\n action: async () => this.createNewFile(node.path),\n },\n {\n name: 'New Folder',\n iconName: 'folderPlus',\n action: async () => this.createNewFolder(node.path),\n },\n { divider: true }\n );\n }\n\n // Common options for both files and directories\n menuItems.push(\n {\n name: 'Rename',\n iconName: 'pencil',\n action: async () => this.renameItem(node),\n },\n {\n name: 'Duplicate',\n iconName: 'files',\n action: async () => this.duplicateItem(node),\n },\n {\n name: 'Copy',\n iconName: 'copy',\n action: async () => this.copyItem(node),\n }\n );\n\n // Paste option (only for directories and when clipboard has content)\n if (node.type === 'directory' && this.clipboardPath) {\n menuItems.push({\n name: 'Paste',\n iconName: 'clipboard',\n action: async () => this.pasteItem(node.path),\n });\n }\n\n menuItems.push(\n { divider: true },\n {\n name: 'Delete',\n iconName: 'trash2',\n action: async () => this.deleteItem(node),\n }\n );\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async handleEmptySpaceContextMenu(e: MouseEvent) {\n // Only trigger if clicking on the container itself, not a tree item\n const target = e.target as HTMLElement;\n if (target.closest('.tree-item')) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n const menuItems: any[] = [\n {\n name: 'New File',\n iconName: 'filePlus',\n action: async () => this.createNewFile('/'),\n },\n {\n name: 'New Folder',\n iconName: 'folderPlus',\n action: async () => this.createNewFolder('/'),\n },\n ];\n\n // Add Paste option if clipboard has content\n if (this.clipboardPath) {\n menuItems.push(\n { divider: true },\n {\n name: 'Paste',\n iconName: 'clipboard',\n action: async () => this.pasteItem('/'),\n }\n );\n }\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async showInputModal(options: {\n heading: string;\n label: string;\n value?: string;\n buttonName?: string;\n }): Promise {\n return new Promise(async (resolve) => {\n const modal = await DeesModal.createAndShow({\n heading: options.heading,\n width: 'small',\n content: html`\n \n `,\n menuOptions: [\n {\n name: 'Cancel',\n action: async (modalRef) => {\n await modalRef.destroy();\n resolve(null);\n },\n },\n {\n name: options.buttonName || 'Create',\n action: async (modalRef) => {\n // Query the input element directly and read its value\n const contentEl = modalRef.shadowRoot?.querySelector('.modal .content');\n const inputElement = contentEl?.querySelector('dees-input-text') as DeesInputText | null;\n const inputValue = inputElement?.value?.trim() || '';\n\n await modalRef.destroy();\n resolve(inputValue || null);\n },\n },\n ],\n });\n\n // Focus the input after modal renders\n await modal.updateComplete;\n const contentEl = modal.shadowRoot?.querySelector('.modal .content');\n if (contentEl) {\n const inputElement = contentEl.querySelector('dees-input-text') as DeesInputText | null;\n if (inputElement) {\n await inputElement.updateComplete;\n inputElement.focus();\n }\n }\n });\n }\n\n private async createNewFile(parentPath: string) {\n const fileName = await this.showInputModal({\n heading: 'New File',\n label: 'File name',\n });\n if (!fileName || !this.executionEnvironment) return;\n\n const newPath = parentPath === '/' ? `/${fileName}` : `${parentPath}/${fileName}`;\n try {\n await this.executionEnvironment.writeFile(newPath, '');\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('file-created', {\n detail: { path: newPath },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to create file:', error);\n }\n }\n\n private async createNewFolder(parentPath: string) {\n const folderName = await this.showInputModal({\n heading: 'New Folder',\n label: 'Folder name',\n });\n if (!folderName || !this.executionEnvironment) return;\n\n const newPath = parentPath === '/' ? `/${folderName}` : `${parentPath}/${folderName}`;\n try {\n await this.executionEnvironment.mkdir(newPath);\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('folder-created', {\n detail: { path: newPath },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to create folder:', error);\n }\n }\n\n private async deleteItem(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n const confirmed = confirm(`Delete ${node.name}?`);\n if (!confirmed) return;\n\n try {\n await this.executionEnvironment.rm(node.path, { recursive: node.type === 'directory' });\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-deleted', {\n detail: { path: node.path, type: node.type },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to delete item:', error);\n }\n }\n\n /**\n * Rename a file or folder\n */\n private async renameItem(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n const newName = await this.showInputModal({\n heading: 'Rename',\n label: 'New name',\n value: node.name,\n buttonName: 'Rename',\n });\n if (!newName || newName === node.name) return;\n\n // Calculate new path\n const parentPath = node.path.substring(0, node.path.lastIndexOf('/')) || '/';\n const newPath = parentPath === '/' ? `/${newName}` : `${parentPath}/${newName}`;\n\n try {\n if (node.type === 'file') {\n // For files: read content, write to new path, delete old\n const content = await this.executionEnvironment.readFile(node.path);\n await this.executionEnvironment.writeFile(newPath, content);\n await this.executionEnvironment.rm(node.path);\n } else {\n // For directories: recursively copy contents then delete old\n await this.copyDirectoryContents(node.path, newPath);\n await this.executionEnvironment.rm(node.path, { recursive: true });\n }\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-renamed', {\n detail: { oldPath: node.path, newPath, type: node.type },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to rename item:', error);\n }\n }\n\n /**\n * Duplicate a file or folder\n */\n private async duplicateItem(node: ITreeNode) {\n if (!this.executionEnvironment) return;\n\n const parentPath = node.path.substring(0, node.path.lastIndexOf('/')) || '/';\n let newName: string;\n\n if (node.type === 'file') {\n // Add _copy before extension\n const lastDot = node.name.lastIndexOf('.');\n if (lastDot > 0) {\n const baseName = node.name.substring(0, lastDot);\n const ext = node.name.substring(lastDot);\n newName = `${baseName}_copy${ext}`;\n } else {\n newName = `${node.name}_copy`;\n }\n } else {\n newName = `${node.name}_copy`;\n }\n\n const newPath = parentPath === '/' ? `/${newName}` : `${parentPath}/${newName}`;\n\n try {\n if (node.type === 'file') {\n const content = await this.executionEnvironment.readFile(node.path);\n await this.executionEnvironment.writeFile(newPath, content);\n } else {\n await this.copyDirectoryContents(node.path, newPath);\n }\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-duplicated', {\n detail: { sourcePath: node.path, newPath, type: node.type },\n bubbles: true,\n composed: true,\n })\n );\n } catch (error) {\n console.error('Failed to duplicate item:', error);\n }\n }\n\n /**\n * Copy item path to clipboard\n */\n private async copyItem(node: ITreeNode) {\n this.clipboardPath = node.path;\n this.clipboardOperation = 'copy';\n }\n\n /**\n * Paste copied item to target directory\n */\n private async pasteItem(targetPath: string) {\n if (!this.executionEnvironment || !this.clipboardPath) return;\n\n // Get the name from clipboard path\n const name = this.clipboardPath.split('/').pop() || 'pasted';\n const newPath = targetPath === '/' ? `/${name}` : `${targetPath}/${name}`;\n\n try {\n // Check if source exists\n if (!(await this.executionEnvironment.exists(this.clipboardPath))) {\n console.error('Source file no longer exists');\n this.clipboardPath = null;\n this.clipboardOperation = null;\n return;\n }\n\n // Check if it's a file or directory by trying to read as file\n try {\n const content = await this.executionEnvironment.readFile(this.clipboardPath);\n await this.executionEnvironment.writeFile(newPath, content);\n } catch {\n // If reading fails, it's a directory\n await this.copyDirectoryContents(this.clipboardPath, newPath);\n }\n\n await this.refresh();\n this.dispatchEvent(\n new CustomEvent('item-pasted', {\n detail: { sourcePath: this.clipboardPath, targetPath: newPath },\n bubbles: true,\n composed: true,\n })\n );\n\n // Clear clipboard after paste\n this.clipboardPath = null;\n this.clipboardOperation = null;\n } catch (error) {\n console.error('Failed to paste item:', error);\n }\n }\n\n /**\n * Recursively copy directory contents to a new path\n */\n private async copyDirectoryContents(sourcePath: string, destPath: string) {\n if (!this.executionEnvironment) return;\n\n // Create destination directory\n await this.executionEnvironment.mkdir(destPath);\n\n // Read source directory contents\n const entries = await this.executionEnvironment.readDir(sourcePath);\n\n for (const entry of entries) {\n const srcEntryPath = sourcePath === '/' ? `/${entry.name}` : `${sourcePath}/${entry.name}`;\n const destEntryPath = destPath === '/' ? `/${entry.name}` : `${destPath}/${entry.name}`;\n\n if (entry.type === 'directory') {\n await this.copyDirectoryContents(srcEntryPath, destEntryPath);\n } else {\n const content = await this.executionEnvironment.readFile(srcEntryPath);\n await this.executionEnvironment.writeFile(destEntryPath, content);\n }\n }\n }\n\n public async firstUpdated() {\n await this.loadTree();\n }\n\n public async updated(changedProperties: Map) {\n if (changedProperties.has('executionEnvironment')) {\n // Stop watching the old environment\n if (this.lastExecutionEnvironment !== this.executionEnvironment) {\n this.stopFileWatcher();\n this.lastExecutionEnvironment = this.executionEnvironment;\n }\n\n if (this.executionEnvironment) {\n await this.loadTree();\n this.startFileWatcher();\n }\n }\n }\n\n public async disconnectedCallback() {\n await super.disconnectedCallback();\n this.stopFileWatcher();\n if (this.refreshDebounceTimeout) {\n clearTimeout(this.refreshDebounceTimeout);\n this.refreshDebounceTimeout = null;\n }\n }\n\n private startFileWatcher() {\n if (!this.executionEnvironment || this.fileWatcher) return;\n\n try {\n this.fileWatcher = this.executionEnvironment.watch(\n '/',\n (_event, _filename) => {\n // Debounce refresh to avoid excessive updates\n if (this.refreshDebounceTimeout) {\n clearTimeout(this.refreshDebounceTimeout);\n }\n this.refreshDebounceTimeout = setTimeout(() => {\n this.refresh();\n }, 300);\n },\n { recursive: true }\n );\n } catch (error) {\n console.warn('File watching not supported:', error);\n }\n }\n\n private stopFileWatcher() {\n if (this.fileWatcher) {\n this.fileWatcher.stop();\n this.fileWatcher = null;\n }\n }\n\n private async loadTree() {\n if (!this.executionEnvironment) return;\n\n // Prevent double loading on initial render\n if (this.loadTreeStarted) return;\n this.loadTreeStarted = true;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // Wait for environment to be ready\n if (!this.executionEnvironment.ready) {\n await this.executionEnvironment.init();\n }\n\n const entries = await this.executionEnvironment.readDir(this.rootPath);\n this.treeData = this.sortEntries(entries).map(entry => ({\n ...entry,\n level: 0,\n expanded: false,\n children: entry.type === 'directory' ? [] : undefined,\n }));\n } catch (error) {\n this.errorMessage = `Failed to load files: ${error}`;\n console.error('Failed to load file tree:', error);\n // Reset flag to allow retry\n this.loadTreeStarted = false;\n } finally {\n this.isLoading = false;\n }\n }\n\n private sortEntries(entries: IFileEntry[]): IFileEntry[] {\n return entries.sort((a, b) => {\n // Directories first\n if (a.type !== b.type) {\n return a.type === 'directory' ? -1 : 1;\n }\n // Then alphabetically\n return a.name.localeCompare(b.name);\n });\n }\n\n public async refresh() {\n this.expandedPaths.clear();\n this.loadTreeStarted = false; // Reset to allow loading\n await this.loadTree();\n }\n\n public selectFile(path: string) {\n this.selectedPath = path;\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport type { Terminal } from 'xterm';\nimport type { FitAddon } from 'xterm-addon-fit';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { DeesServiceLibLoader } from '../../../services/index.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-terminal-preview': DeesWorkspaceTerminalPreview;\n }\n}\n\n/**\n * A read-only terminal preview component using xterm.js for rendering.\n * Used during workspace initialization to show onInit command progress.\n */\n@customElement('dees-workspace-terminal-preview')\nexport class DeesWorkspaceTerminalPreview extends DeesElement {\n public static demo = () => html`\n \n `;\n public static demoGroups = ['Workspace'];\n\n /**\n * The command being displayed (shown in header)\n */\n @property({ type: String })\n accessor command: string = '';\n\n /**\n * Output lines to display\n */\n @property({ type: Array })\n accessor lines: string[] = [];\n\n private terminal: Terminal | null = null;\n private fitAddon: FitAddon | null = null;\n private lastLineCount: number = 0;\n private resizeObserver: ResizeObserver | null = null;\n private terminalThemeSubscription: any = null;\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n height: 200px;\n }\n\n .terminal-preview {\n height: 100%;\n border-radius: 8px;\n overflow: hidden;\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n border: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n display: flex;\n flex-direction: column;\n }\n\n .terminal-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 10%)')};\n font-size: 12px;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n flex-shrink: 0;\n }\n\n .terminal-header-icon {\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n }\n\n .terminal-header-command {\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};\n font-weight: 500;\n }\n\n .terminal-container {\n flex: 1;\n position: relative;\n padding: 8px;\n }\n\n #xterm-container {\n position: absolute;\n top: 8px;\n left: 8px;\n right: 8px;\n bottom: 8px;\n }\n\n /* xterm.js styles */\n .xterm {\n font-feature-settings: 'liga' 0;\n position: relative;\n user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n }\n\n .xterm.focus,\n .xterm:focus {\n outline: none;\n }\n\n .xterm .xterm-helpers {\n position: absolute;\n top: 0;\n z-index: 5;\n }\n\n .xterm .xterm-helper-textarea {\n padding: 0;\n border: 0;\n margin: 0;\n position: absolute;\n opacity: 0;\n left: -9999em;\n top: 0;\n width: 0;\n height: 0;\n z-index: -5;\n white-space: nowrap;\n overflow: hidden;\n resize: none;\n }\n\n .xterm .composition-view {\n background: ${cssManager.bdTheme('#ffffff', '#000000')};\n color: ${cssManager.bdTheme('#333333', '#ffffff')};\n display: none;\n position: absolute;\n white-space: nowrap;\n z-index: 1;\n }\n\n .xterm .composition-view.active {\n display: block;\n }\n\n .xterm .xterm-viewport {\n background-color: ${cssManager.bdTheme('#ffffff', '#000000')};\n overflow-y: scroll;\n cursor: default;\n position: absolute;\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n }\n\n .xterm .xterm-screen {\n position: relative;\n }\n\n .xterm .xterm-screen canvas {\n position: absolute;\n left: 0;\n top: 0;\n }\n\n .xterm .xterm-scroll-area {\n visibility: hidden;\n }\n\n .xterm-char-measure-element {\n display: inline-block;\n visibility: hidden;\n position: absolute;\n top: 0;\n left: -9999em;\n line-height: normal;\n }\n\n .xterm {\n cursor: text;\n }\n\n .xterm.enable-mouse-events {\n cursor: default;\n }\n\n .xterm.xterm-cursor-pointer {\n cursor: pointer;\n }\n\n .xterm.column-select.focus {\n cursor: crosshair;\n }\n\n .xterm .xterm-accessibility,\n .xterm .xterm-message {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n z-index: 10;\n color: transparent;\n }\n\n .xterm .live-region {\n position: absolute;\n left: -9999px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n }\n\n .xterm-dim {\n opacity: 0.5;\n }\n\n .xterm-underline {\n text-decoration: underline;\n }\n\n /* Custom scrollbar for xterm viewport */\n .xterm .xterm-viewport::-webkit-scrollbar {\n width: 8px;\n }\n\n .xterm .xterm-viewport::-webkit-scrollbar-track {\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 8%)')};\n }\n\n .xterm .xterm-viewport::-webkit-scrollbar-thumb {\n background: ${cssManager.bdTheme('hsl(0 0% 80%)', 'hsl(0 0% 25%)')};\n border-radius: 4px;\n }\n\n .xterm .xterm-viewport::-webkit-scrollbar-thumb:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 70%)', 'hsl(0 0% 35%)')};\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
        \n
        \n $\n ${this.command || 'Waiting...'}\n
        \n
        \n
        \n
        \n
        \n `;\n }\n\n /**\n * Get terminal theme colors based on bright/dark mode\n */\n private getTerminalTheme(isBright: boolean) {\n return isBright\n ? {\n background: '#ffffff',\n foreground: '#333333',\n cursor: '#333333',\n cursorAccent: '#ffffff',\n selectionBackground: 'rgba(0, 0, 0, 0.2)',\n }\n : {\n background: '#000000',\n foreground: '#cccccc',\n cursor: '#cccccc',\n cursorAccent: '#000000',\n selectionBackground: 'rgba(255, 255, 255, 0.2)',\n };\n }\n\n public async firstUpdated(\n _changedProperties: Map\n ): Promise {\n super.firstUpdated(_changedProperties);\n\n const container = this.shadowRoot?.getElementById('xterm-container');\n if (!container) return;\n\n // Get current theme from domtools\n const domtoolsInstance = await this.domtoolsPromise;\n const isBright = domtoolsInstance.themeManager.goBrightBoolean;\n\n // Load xterm from CDN\n const libLoader = DeesServiceLibLoader.getInstance();\n const [xtermBundle, fitAddonBundle] = await Promise.all([\n libLoader.loadXterm(),\n libLoader.loadXtermFitAddon(),\n ]);\n\n // Create xterm terminal in read-only mode using CDN-loaded module\n this.terminal = new xtermBundle.Terminal({\n convertEol: true,\n cursorBlink: false,\n disableStdin: true,\n fontSize: 12,\n fontFamily: \"'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace\",\n theme: this.getTerminalTheme(isBright),\n scrollback: 1000,\n });\n\n // Subscribe to theme changes\n this.terminalThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe((goBright: boolean) => {\n if (this.terminal) {\n this.terminal.options.theme = this.getTerminalTheme(goBright);\n }\n });\n\n this.fitAddon = new fitAddonBundle.FitAddon();\n this.terminal.loadAddon(this.fitAddon);\n this.terminal.open(container);\n this.fitAddon.fit();\n\n // Set up resize observer to refit terminal\n this.resizeObserver = new ResizeObserver(() => {\n if (this.fitAddon) {\n this.fitAddon.fit();\n }\n });\n this.resizeObserver.observe(container);\n\n // Write any existing lines\n this.writeNewLines();\n }\n\n public async updated(changedProperties: Map) {\n super.updated(changedProperties);\n\n if (changedProperties.has('lines')) {\n this.writeNewLines();\n }\n }\n\n private writeNewLines() {\n if (!this.terminal) return;\n\n // Write only new lines since last update\n const newLines = this.lines.slice(this.lastLineCount);\n for (const line of newLines) {\n this.terminal.writeln(line);\n }\n this.lastLineCount = this.lines.length;\n }\n\n public async disconnectedCallback(): Promise {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n if (this.terminalThemeSubscription) {\n this.terminalThemeSubscription.unsubscribe();\n this.terminalThemeSubscription = null;\n }\n if (this.terminal) {\n this.terminal.dispose();\n this.terminal = null;\n }\n await super.disconnectedCallback();\n }\n\n /**\n * Add a new line to the output\n */\n public addLine(line: string) {\n this.lines = [...this.lines, line];\n }\n\n /**\n * Clear all output lines\n */\n public clear() {\n this.lines = [];\n this.lastLineCount = 0;\n if (this.terminal) {\n this.terminal.clear();\n }\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment } from '../../00group-runtime/index.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport type { IRunProcessEventDetail, ITerminalProcessCompleteEventDetail } from '../dees-workspace-terminal/interfaces.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-bottombar': DeesWorkspaceBottombar;\n }\n}\n\ninterface IOutdatedPackage {\n name: string;\n current: string;\n wanted: string;\n latest: string;\n type: 'dependencies' | 'devDependencies';\n}\n\n@customElement('dees-workspace-bottombar')\nexport class DeesWorkspaceBottombar extends DeesElement {\n // INSTANCE\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n // Script runner state\n @state()\n accessor scripts: Record = {};\n\n // Package checker state\n @state()\n accessor packageStatus: 'checking' | 'up-to-date' | 'updates-available' | 'error' | 'idle' = 'idle';\n\n @state()\n accessor outdatedPackages: IOutdatedPackage[] = [];\n\n @state()\n accessor isCheckingPackages: boolean = false;\n\n // Track if we have a pending package update that should trigger refresh\n private pendingPackageUpdate: boolean = false;\n\n // Bound handler for process-complete events\n private handleProcessComplete = (e: CustomEvent) => {\n // If we have a pending package update and a process completed, refresh\n if (this.pendingPackageUpdate) {\n this.pendingPackageUpdate = false;\n // Small delay to let pnpm-lock.yaml update\n setTimeout(() => this.checkPackages(), 500);\n }\n };\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n height: 24px;\n flex-shrink: 0;\n }\n\n .bottom-bar {\n height: 24px;\n display: flex;\n align-items: center;\n padding: 0 8px;\n gap: 4px;\n background: ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 6%)')};\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n font-size: 11px;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .widget {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 6px;\n border-radius: 3px;\n cursor: pointer;\n transition: background 0.15s ease, color 0.15s ease;\n white-space: nowrap;\n }\n\n .widget:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};\n }\n\n .widget dees-icon {\n flex-shrink: 0;\n }\n\n .widget-separator {\n width: 1px;\n height: 14px;\n background: ${cssManager.bdTheme('hsl(0 0% 80%)', 'hsl(0 0% 20%)')};\n margin: 0 4px;\n }\n\n .widget.running {\n color: ${cssManager.bdTheme('hsl(210 100% 45%)', 'hsl(210 100% 60%)')};\n }\n\n .widget.up-to-date {\n color: ${cssManager.bdTheme('hsl(142 70% 35%)', 'hsl(142 70% 50%)')};\n }\n\n .widget.updates-available {\n color: ${cssManager.bdTheme('hsl(38 92% 45%)', 'hsl(38 92% 55%)')};\n }\n\n .widget.error {\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .spinning {\n animation: spin 1s linear infinite;\n }\n\n .spacer {\n flex: 1;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
        \n \n \n \n Scripts\n
        \n\n
        \n\n \n \n \n ${this.getPackageStatusText()}\n \n\n
        \n\n \n \n `;\n }\n\n public async connectedCallback() {\n await super.connectedCallback();\n // Listen for process-complete events to refresh after package updates\n window.addEventListener('process-complete', this.handleProcessComplete as EventListener);\n }\n\n public async disconnectedCallback() {\n await super.disconnectedCallback();\n window.removeEventListener('process-complete', this.handleProcessComplete as EventListener);\n }\n\n async firstUpdated() {\n await this.loadScripts();\n await this.checkPackages();\n }\n\n async updated(changedProperties: Map) {\n if (changedProperties.has('executionEnvironment') && this.executionEnvironment) {\n await this.loadScripts();\n await this.checkPackages();\n }\n }\n\n // ========== Script Runner ==========\n\n private async loadScripts(): Promise {\n if (!this.executionEnvironment) return;\n\n try {\n const packageJsonExists = await this.executionEnvironment.exists('/package.json');\n if (!packageJsonExists) {\n this.scripts = {};\n return;\n }\n\n const content = await this.executionEnvironment.readFile('/package.json');\n const packageJson = JSON.parse(content);\n this.scripts = packageJson.scripts || {};\n } catch (error) {\n console.warn('Failed to load scripts from package.json:', error);\n this.scripts = {};\n }\n }\n\n private async handleScriptClick(e: MouseEvent): Promise {\n e.stopPropagation();\n\n const scriptNames = Object.keys(this.scripts);\n if (scriptNames.length === 0) {\n return;\n }\n\n const menuItems = scriptNames.map(name => ({\n name: name,\n iconName: 'lucide:terminal' as const,\n action: async () => {\n await this.runScript(name);\n },\n }));\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async runScript(scriptName: string): Promise {\n if (!this.executionEnvironment) return;\n\n // Emit run-process event for the workspace to create a terminal tab\n const detail: IRunProcessEventDetail = {\n type: 'script',\n label: scriptName,\n command: 'pnpm',\n args: ['run', scriptName],\n metadata: { scriptName },\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n }\n\n // ========== Package Checker ==========\n\n private async checkPackages(): Promise {\n if (!this.executionEnvironment) {\n this.packageStatus = 'idle';\n return;\n }\n\n try {\n const packageJsonExists = await this.executionEnvironment.exists('/package.json');\n if (!packageJsonExists) {\n this.packageStatus = 'idle';\n return;\n }\n\n this.packageStatus = 'checking';\n this.isCheckingPackages = true;\n\n // Run pnpm outdated --json with timeout\n const process = await this.executionEnvironment.spawn('pnpm', ['outdated', '--json']);\n\n let output = '';\n\n // Collect output asynchronously - don't await, stream may not close if no output\n const outputReader = process.output.getReader();\n const readOutput = async () => {\n try {\n while (true) {\n const { done, value } = await outputReader.read();\n if (done) break;\n output += value;\n }\n } catch {\n // Ignore stream errors\n }\n };\n // Start reading but don't await - we'll use whatever we have when process exits\n readOutput();\n\n // Wait for process exit with timeout (10 seconds)\n const exitCode = await Promise.race([\n process.exit,\n new Promise((resolve) => setTimeout(() => resolve(-1), 10000)),\n ]);\n\n // Cancel reader when done\n try {\n await outputReader.cancel();\n } catch {\n // Ignore cancel errors\n }\n\n // Handle timeout\n if (exitCode === -1) {\n console.warn('Package check timed out');\n this.packageStatus = 'error';\n return;\n }\n\n // pnpm outdated returns exit code 1 if there are outdated packages\n if (exitCode === 0) {\n // No outdated packages\n this.packageStatus = 'up-to-date';\n this.outdatedPackages = [];\n } else {\n // Parse outdated packages\n try {\n const outdatedData = JSON.parse(output);\n this.outdatedPackages = this.parseOutdatedPackages(outdatedData);\n this.packageStatus = this.outdatedPackages.length > 0 ? 'updates-available' : 'up-to-date';\n } catch {\n // If parsing fails but exit code is 1, assume there are updates\n this.packageStatus = 'updates-available';\n this.outdatedPackages = [];\n }\n }\n } catch (error) {\n console.warn('Failed to check for package updates:', error);\n this.packageStatus = 'error';\n } finally {\n this.isCheckingPackages = false;\n }\n }\n\n private parseOutdatedPackages(data: any): IOutdatedPackage[] {\n const packages: IOutdatedPackage[] = [];\n\n // pnpm outdated --json returns an object with package names as keys\n if (typeof data === 'object' && data !== null) {\n for (const [name, info] of Object.entries(data)) {\n const pkgInfo = info as any;\n packages.push({\n name,\n current: pkgInfo.current || 'unknown',\n wanted: pkgInfo.wanted || pkgInfo.current || 'unknown',\n latest: pkgInfo.latest || pkgInfo.wanted || 'unknown',\n type: pkgInfo.dependencyType === 'devDependencies' ? 'devDependencies' : 'dependencies',\n });\n }\n }\n\n return packages;\n }\n\n private async handlePackageClick(e: MouseEvent): Promise {\n e.stopPropagation();\n\n const menuItems: Parameters[1] = [];\n\n // Refresh option - show output in terminal\n menuItems.push({\n name: this.isCheckingPackages ? 'Checking...' : 'Check for updates',\n iconName: 'lucide:refreshCw',\n action: async () => {\n if (this.isCheckingPackages) return;\n\n // Create terminal tab to show pnpm outdated output\n const detail: IRunProcessEventDetail = {\n type: 'package-update',\n label: 'check packages',\n command: 'pnpm',\n args: ['outdated'],\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n\n // Also refresh the widget status silently after a delay\n setTimeout(() => this.checkPackages(), 3000);\n },\n });\n\n if (this.outdatedPackages.length > 0) {\n menuItems.push({ divider: true });\n\n // Show outdated packages (max 10)\n const displayPackages = this.outdatedPackages.slice(0, 10);\n for (const pkg of displayPackages) {\n menuItems.push({\n name: `${pkg.name}: ${pkg.current} \u2192 ${pkg.latest}`,\n iconName: 'lucide:package',\n action: async () => {\n // Update single package\n await this.updatePackage(pkg.name);\n },\n });\n }\n\n if (this.outdatedPackages.length > 10) {\n menuItems.push({\n name: `... and ${this.outdatedPackages.length - 10} more`,\n iconName: 'lucide:moreHorizontal',\n action: async () => {},\n });\n }\n\n menuItems.push({ divider: true });\n\n menuItems.push({\n name: 'Update all packages',\n iconName: 'lucide:arrowUpCircle',\n action: async () => {\n await this.updateAllPackages();\n },\n });\n }\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private async updatePackage(packageName: string): Promise {\n if (!this.executionEnvironment) return;\n\n // Mark that we have a pending update - will trigger refresh when complete\n this.pendingPackageUpdate = true;\n\n // Emit run-process event for the workspace to create a terminal tab\n const detail: IRunProcessEventDetail = {\n type: 'package-update',\n label: `update ${packageName}`,\n command: 'pnpm',\n args: ['update', '--latest', packageName],\n metadata: { packageName },\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n }\n\n private async updateAllPackages(): Promise {\n if (!this.executionEnvironment) return;\n\n // Mark that we have a pending update - will trigger refresh when complete\n this.pendingPackageUpdate = true;\n\n // Emit run-process event for the workspace to create a terminal tab\n const detail: IRunProcessEventDetail = {\n type: 'package-update',\n label: 'update all',\n command: 'pnpm',\n args: ['update', '--latest'],\n };\n\n this.dispatchEvent(new CustomEvent('run-process', {\n bubbles: true,\n composed: true,\n detail,\n }));\n }\n\n // ========== Helper Methods ==========\n\n private getPackageStatusClass(): string {\n if (this.isCheckingPackages) return '';\n return this.packageStatus;\n }\n\n private getPackageIcon(): string {\n if (this.isCheckingPackages) return 'lucide:loader2';\n\n switch (this.packageStatus) {\n case 'up-to-date':\n return 'lucide:checkCircle';\n case 'updates-available':\n return 'lucide:alertCircle';\n case 'error':\n return 'lucide:xCircle';\n default:\n return 'lucide:package';\n }\n }\n\n private getPackageStatusText(): string {\n if (this.isCheckingPackages) return 'Checking...';\n\n switch (this.packageStatus) {\n case 'up-to-date':\n return 'Up to date';\n case 'updates-available':\n return `${this.outdatedPackages.length} update${this.outdatedPackages.length !== 1 ? 's' : ''}`;\n case 'error':\n return 'Check failed';\n default:\n return 'Packages';\n }\n }\n\n private getPackageTooltip(): string {\n if (this.isCheckingPackages) return 'Checking for package updates...';\n\n switch (this.packageStatus) {\n case 'up-to-date':\n return 'All packages are up to date';\n case 'updates-available':\n return `${this.outdatedPackages.length} package update${this.outdatedPackages.length !== 1 ? 's' : ''} available`;\n case 'error':\n return 'Failed to check for updates. Click to retry.';\n default:\n return 'Click to check for package updates';\n }\n }\n\n // ========== Public Methods ==========\n\n /**\n * Manually trigger a package check\n */\n public async refreshPackageStatus(): Promise {\n await this.checkPackages();\n }\n\n /**\n * Manually reload scripts from package.json\n */\n public async refreshScripts(): Promise {\n await this.loadScripts();\n }\n}\n", "import type * as monaco from 'monaco-editor';\nimport type { IExecutionEnvironment } from '../../00group-runtime/index.js';\n\n// Monaco TypeScript API types (runtime API still exists, types deprecated in 0.55+)\ninterface IExtraLibDisposable {\n dispose(): void;\n}\n\ninterface IMonacoTypeScriptAPI {\n typescriptDefaults: {\n setCompilerOptions(options: Record): void;\n setDiagnosticsOptions(options: Record): void;\n addExtraLib(content: string, filePath?: string): IExtraLibDisposable;\n setEagerModelSync(value: boolean): void;\n };\n ScriptTarget: { ES2020: number };\n ModuleKind: { ESNext: number };\n ModuleResolutionKind: { NodeJs: number; Bundler?: number };\n}\n\n/**\n * Manages TypeScript IntelliSense by loading type definitions\n * from the virtual filesystem into Monaco.\n */\nexport class TypeScriptIntelliSenseManager {\n private loadedLibs: Set = new Set();\n private notFoundPackages: Set = new Set(); // Packages checked but not found\n private monacoInstance: typeof monaco | null = null;\n private executionEnvironment: IExecutionEnvironment | null = null;\n\n // Cache of file contents for synchronous access and module resolution\n private fileCache: Map = new Map();\n\n // Track extra libs added for cleanup\n private addedExtraLibs: Map = new Map();\n\n /**\n * Get TypeScript API with proper typing for Monaco 0.55+\n */\n private get tsApi(): IMonacoTypeScriptAPI | null {\n if (!this.monacoInstance) return null;\n return (this.monacoInstance.languages as any).typescript as IMonacoTypeScriptAPI;\n }\n\n /**\n * Initialize with Monaco and execution environment\n */\n public async init(\n monacoInst: typeof monaco,\n env: IExecutionEnvironment\n ): Promise {\n this.monacoInstance = monacoInst;\n this.executionEnvironment = env;\n this.configureCompilerOptions();\n // Load all project TypeScript/JavaScript files into Monaco for cross-file resolution\n await this.loadAllProjectFiles();\n }\n\n /**\n * Recursively load all .ts/.js files from the virtual filesystem into Monaco\n */\n private async loadAllProjectFiles(): Promise {\n if (!this.executionEnvironment) return;\n await this.loadFilesFromDirectory('/');\n }\n\n /**\n * Recursively load files from a directory\n */\n private async loadFilesFromDirectory(dirPath: string): Promise {\n if (!this.executionEnvironment) return;\n\n try {\n const entries = await this.executionEnvironment.readDir(dirPath);\n\n for (const entry of entries) {\n const fullPath = dirPath === '/' ? `/${entry.name}` : `${dirPath}/${entry.name}`;\n\n // Skip node_modules - too large and handled separately via addExtraLib\n if (entry.name === 'node_modules') continue;\n\n if (entry.type === 'directory') {\n await this.loadFilesFromDirectory(fullPath);\n } else if (entry.type === 'file') {\n const ext = entry.name.split('.').pop()?.toLowerCase();\n if (ext === 'ts' || ext === 'tsx' || ext === 'js' || ext === 'jsx') {\n try {\n const content = await this.executionEnvironment.readFile(fullPath);\n this.addFileModel(fullPath, content);\n } catch {\n // Ignore files that can't be read\n }\n }\n }\n }\n } catch {\n // Directory might not exist or not be readable\n }\n }\n\n private configureCompilerOptions(): void {\n const ts = this.tsApi;\n if (!ts) return;\n\n ts.typescriptDefaults.setCompilerOptions({\n target: ts.ScriptTarget.ES2020,\n module: ts.ModuleKind.ESNext,\n // Use Bundler resolution if available (Monaco 0.45+), fallback to NodeJs\n moduleResolution: ts.ModuleResolutionKind.Bundler ?? ts.ModuleResolutionKind.NodeJs,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n strict: true,\n noEmit: true,\n allowJs: true,\n checkJs: false,\n allowNonTsExtensions: true,\n lib: ['es2020', 'dom', 'dom.iterable'],\n // Set baseUrl to root for resolving absolute imports\n baseUrl: '/',\n // Allow importing .ts extensions directly (useful for some setups)\n allowImportingTsExtensions: true,\n // Resolve JSON modules\n resolveJsonModule: true,\n });\n\n ts.typescriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: false,\n noSyntaxValidation: false,\n });\n\n // Enable eager model sync so TypeScript immediately processes all models\n // This is critical for cross-file IntelliSense to work without requiring edits\n ts.typescriptDefaults.setEagerModelSync(true);\n }\n\n /**\n * Parse imports from TypeScript/JavaScript content\n */\n public parseImports(content: string): string[] {\n const imports: string[] = [];\n\n // Match ES6 imports: import { x } from 'package' or import 'package'\n const importRegex = /import\\s+(?:[\\w*{}\\s,]+from\\s+)?['\"]([^'\"]+)['\"]/g;\n let match: RegExpExecArray | null;\n\n while ((match = importRegex.exec(content)) !== null) {\n const importPath = match[1];\n // Only process non-relative imports (npm packages)\n if (!importPath.startsWith('.') && !importPath.startsWith('/')) {\n const packageName = importPath.startsWith('@')\n ? importPath.split('/').slice(0, 2).join('/') // @scope/package\n : importPath.split('/')[0]; // package\n imports.push(packageName);\n }\n }\n\n // Match require calls: require('package')\n const requireRegex = /require\\s*\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/g;\n while ((match = requireRegex.exec(content)) !== null) {\n const importPath = match[1];\n if (!importPath.startsWith('.') && !importPath.startsWith('/')) {\n const packageName = importPath.startsWith('@')\n ? importPath.split('/').slice(0, 2).join('/')\n : importPath.split('/')[0];\n imports.push(packageName);\n }\n }\n\n return [...new Set(imports)];\n }\n\n /**\n * Load type definitions for a package from virtual FS\n */\n public async loadTypesForPackage(packageName: string): Promise {\n if (!this.monacoInstance || !this.executionEnvironment) return;\n if (this.loadedLibs.has(packageName)) return;\n if (this.notFoundPackages.has(packageName)) return; // Skip packages we already checked\n\n try {\n let typesLoaded = await this.tryLoadPackageTypes(packageName);\n if (!typesLoaded) {\n typesLoaded = await this.tryLoadAtTypesPackage(packageName);\n }\n if (typesLoaded) {\n this.loadedLibs.add(packageName);\n } else {\n // Cache that this package wasn't found to avoid repeated filesystem checks\n this.notFoundPackages.add(packageName);\n }\n } catch (error) {\n console.warn(`Failed to load types for ${packageName}:`, error);\n }\n }\n\n private async tryLoadPackageTypes(packageName: string): Promise {\n const ts = this.tsApi;\n if (!this.executionEnvironment || !ts) return false;\n\n const basePath = `/node_modules/${packageName}`;\n\n try {\n // Check package.json for types field\n const packageJsonPath = `${basePath}/package.json`;\n const packageJsonExists = await this.executionEnvironment.exists(packageJsonPath);\n\n if (packageJsonExists) {\n const packageJsonContent = await this.executionEnvironment.readFile(packageJsonPath);\n const packageJson = JSON.parse(packageJsonContent);\n\n // Add package.json to Monaco so TypeScript can resolve the types field\n ts.typescriptDefaults.addExtraLib(packageJsonContent, `file://${packageJsonPath}`);\n\n const typesPath = packageJson.types || packageJson.typings;\n if (typesPath) {\n // Load all .d.ts files from the package, not just the entry point\n // Modern packages often have multiple declaration files with imports\n await this.loadAllDtsFilesFromPackage(basePath);\n return true;\n }\n }\n\n // Try common locations - if any exist, load all .d.ts files\n const commonPaths = [\n `${basePath}/index.d.ts`,\n `${basePath}/dist/index.d.ts`,\n `${basePath}/lib/index.d.ts`,\n ];\n\n for (const dtsPath of commonPaths) {\n if (await this.executionEnvironment.exists(dtsPath)) {\n await this.loadAllDtsFilesFromPackage(basePath);\n return true;\n }\n }\n\n return false;\n } catch (error) {\n console.error(`Failed to load package types for ${packageName}:`, error);\n return false;\n }\n }\n\n /**\n * Recursively load all .d.ts files from a package directory\n */\n private async loadAllDtsFilesFromPackage(basePath: string): Promise {\n const ts = this.tsApi;\n if (!this.executionEnvironment || !ts) return;\n\n await this.loadDtsFilesFromDirectory(basePath);\n }\n\n /**\n * Recursively load .d.ts files from a directory\n */\n private async loadDtsFilesFromDirectory(dirPath: string): Promise {\n const ts = this.tsApi;\n if (!this.executionEnvironment || !ts) return;\n\n try {\n const entries = await this.executionEnvironment.readDir(dirPath);\n\n for (const entry of entries) {\n const fullPath = dirPath === '/' ? `/${entry.name}` : `${dirPath}/${entry.name}`;\n\n // Skip nested node_modules (shouldn't happen in a package but be safe)\n if (entry.name === 'node_modules') continue;\n\n if (entry.type === 'directory') {\n await this.loadDtsFilesFromDirectory(fullPath);\n } else if (entry.type === 'file' && entry.name.endsWith('.d.ts')) {\n try {\n const content = await this.executionEnvironment.readFile(fullPath);\n ts.typescriptDefaults.addExtraLib(content, `file://${fullPath}`);\n } catch {\n // Ignore files that can't be read\n }\n }\n }\n } catch {\n // Directory might not be readable\n }\n }\n\n private async tryLoadAtTypesPackage(packageName: string): Promise {\n if (!this.executionEnvironment) return false;\n\n // Handle scoped packages: @scope/package -> @types/scope__package\n const typesPackageName = packageName.startsWith('@')\n ? `@types/${packageName.slice(1).replace('/', '__')}`\n : `@types/${packageName}`;\n\n const basePath = `/node_modules/${typesPackageName}`;\n\n try {\n const indexPath = `${basePath}/index.d.ts`;\n if (await this.executionEnvironment.exists(indexPath)) {\n // Load all .d.ts files from the @types package\n await this.loadAllDtsFilesFromPackage(basePath);\n return true;\n }\n return false;\n } catch {\n return false;\n }\n }\n\n /**\n * Process content change and load types for any new imports\n */\n public async processContentChange(content: string): Promise {\n const imports = this.parseImports(content);\n\n for (const packageName of imports) {\n if (!this.loadedLibs.has(packageName)) {\n await this.loadTypesForPackage(packageName);\n }\n }\n }\n\n /**\n * Scan node_modules for packages and load types for any not yet loaded.\n * Called when node_modules changes (e.g., after pnpm install).\n */\n public async scanAndLoadNewPackageTypes(): Promise {\n if (!this.executionEnvironment) return;\n\n // Clear not-found cache so newly installed packages can be detected\n this.notFoundPackages.clear();\n\n try {\n // Check if node_modules exists\n if (!await this.executionEnvironment.exists('/node_modules')) return;\n\n // Read top-level node_modules\n const entries = await this.executionEnvironment.readDir('/node_modules');\n\n for (const entry of entries) {\n if (entry.type !== 'directory') continue;\n\n if (entry.name.startsWith('@')) {\n // Scoped package - read subdirectories\n try {\n const scopedPath = `/node_modules/${entry.name}`;\n const scopedEntries = await this.executionEnvironment.readDir(scopedPath);\n for (const scopedEntry of scopedEntries) {\n if (scopedEntry.type === 'directory') {\n const packageName = `${entry.name}/${scopedEntry.name}`;\n await this.loadTypesForPackage(packageName);\n }\n }\n } catch {\n // Skip if we can't read scoped directory\n }\n } else if (!entry.name.startsWith('.')) {\n // Regular package\n await this.loadTypesForPackage(entry.name);\n }\n }\n } catch (error) {\n console.warn('Failed to scan node_modules:', error);\n }\n }\n\n /**\n * Add a file model to Monaco for cross-file IntelliSense\n * Also registers the file with TypeScript via addExtraLib for module resolution\n */\n public addFileModel(path: string, content: string): void {\n if (!this.monacoInstance) return;\n\n // Cache the content for sync access\n this.fileCache.set(path, content);\n\n // Create/update the editor model\n const uri = this.monacoInstance.Uri.parse(`file://${path}`);\n const existingModel = this.monacoInstance.editor.getModel(uri);\n\n if (existingModel) {\n // Only update if content actually changed (prevents cursor reset)\n if (existingModel.getValue() !== content) {\n existingModel.setValue(content);\n }\n } else {\n const language = this.getLanguageFromPath(path);\n this.monacoInstance.editor.createModel(content, language, uri);\n }\n\n // Also add as extra lib for TypeScript module resolution\n // This is critical - TypeScript's resolver uses extra libs, not editor models\n this.addFileAsExtraLib(path, content);\n }\n\n /**\n * Add a file as an extra lib for TypeScript module resolution.\n * This enables TypeScript to resolve imports to project files.\n */\n private addFileAsExtraLib(path: string, content: string): void {\n const ts = this.tsApi;\n if (!ts) return;\n\n // Dispose existing lib if present (for updates)\n const existing = this.addedExtraLibs.get(path);\n if (existing) {\n existing.dispose();\n }\n\n // Add the file with its actual path\n const filePath = `file://${path}`;\n const disposable = ts.typescriptDefaults.addExtraLib(content, filePath);\n this.addedExtraLibs.set(path, disposable);\n\n // For .ts files, also add with .js extension to handle ESM imports\n // (e.g., import from './utils.js' should resolve to ./utils.ts)\n if (path.endsWith('.ts') && !path.endsWith('.d.ts')) {\n const jsPath = path.replace(/\\.ts$/, '.js');\n const jsFilePath = `file://${jsPath}`;\n const jsDisposable = ts.typescriptDefaults.addExtraLib(content, jsFilePath);\n this.addedExtraLibs.set(jsPath, jsDisposable);\n this.fileCache.set(jsPath, content);\n } else if (path.endsWith('.tsx')) {\n const jsxPath = path.replace(/\\.tsx$/, '.jsx');\n const jsxFilePath = `file://${jsxPath}`;\n const jsxDisposable = ts.typescriptDefaults.addExtraLib(content, jsxFilePath);\n this.addedExtraLibs.set(jsxPath, jsxDisposable);\n this.fileCache.set(jsxPath, content);\n }\n }\n\n /**\n * Get cached file content for synchronous access\n */\n public getFileContent(path: string): string | undefined {\n return this.fileCache.get(path);\n }\n\n private getLanguageFromPath(path: string): string {\n const ext = path.split('.').pop()?.toLowerCase();\n switch (ext) {\n case 'ts':\n case 'tsx':\n return 'typescript';\n case 'js':\n case 'jsx':\n return 'javascript';\n case 'json':\n return 'json';\n default:\n return 'plaintext';\n }\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { MONACO_VERSION } from '../dees-workspace-monaco/version.js';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport '../../00group-button/dees-button/dees-button.js';\n\nimport type * as monaco from 'monaco-editor';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-diff-editor': DeesWorkspaceDiffEditor;\n }\n}\n\n@customElement('dees-workspace-diff-editor')\nexport class DeesWorkspaceDiffEditor extends DeesElement {\n // DEMO\n public static demo = () => html`\n \n `;\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n public diffEditorDeferred = domtools.plugins.smartpromise.defer();\n\n @property({ type: String })\n accessor originalContent: string = '';\n\n @property({ type: String })\n accessor modifiedContent: string = '';\n\n @property({ type: String })\n accessor originalLabel: string = 'Disk Version';\n\n @property({ type: String })\n accessor modifiedLabel: string = 'Local Version';\n\n @property({ type: String })\n accessor language: string = 'typescript';\n\n @property({ type: String })\n accessor filePath: string = '';\n\n private diffEditor: monaco.editor.IStandaloneDiffEditor | null = null;\n private monacoThemeSubscription: domtools.plugins.smartrx.rxjs.Subscription | null = null;\n private originalModel: monaco.editor.ITextModel | null = null;\n private modifiedModel: monaco.editor.ITextModel | null = null;\n\n constructor() {\n super();\n domtools.DomTools.setupDomTools();\n }\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .diff-wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n\n .diff-toolbar {\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 16px;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 12%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 20%)')};\n flex-shrink: 0;\n }\n\n .diff-info {\n display: flex;\n align-items: center;\n gap: 12px;\n font-size: 14px;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n }\n\n .diff-filename {\n font-weight: 600;\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n }\n\n .diff-labels {\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .diff-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .diff-container {\n flex: 1;\n min-height: 0;\n width: 100%;\n }\n\n .nav-buttons {\n display: flex;\n gap: 4px;\n }\n\n .action-buttons {\n display: flex;\n gap: 8px;\n margin-left: 16px;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const fileName = this.filePath.split('/').pop() || 'file';\n\n return html`\n
        \n
        \n
        \n ${fileName}\n ${this.originalLabel} \u2194 ${this.modifiedLabel}\n
        \n
        \n
        \n Previous\n Next\n
        \n
        \n Use Local\n Use Disk\n Close\n
        \n
        \n
        \n
        \n
        \n `;\n }\n\n public async firstUpdated(): Promise {\n await super.firstUpdated(new Map());\n await this.initDiffEditor();\n }\n\n private async initDiffEditor(): Promise {\n const container = this.shadowRoot?.querySelector('.diff-container') as HTMLElement;\n if (!container) return;\n\n const monacoCdnBase = `https://cdn.jsdelivr.net/npm/monaco-editor@${MONACO_VERSION}`;\n\n // Wait for Monaco to be loaded (should already be loaded by dees-workspace-monaco)\n let monacoInstance = (window as any).monaco as typeof monaco;\n\n if (!monacoInstance) {\n // Monaco not loaded yet, wait for it\n await new Promise((resolve) => {\n const checkMonaco = setInterval(() => {\n if ((window as any).monaco) {\n clearInterval(checkMonaco);\n resolve();\n }\n }, 100);\n });\n monacoInstance = (window as any).monaco as typeof monaco;\n }\n\n // Get current theme from domtools\n const domtoolsInstance = await this.domtoolsPromise;\n const isBright = domtoolsInstance.themeManager.goBrightBoolean;\n const initialTheme = isBright ? 'vs' : 'vs-dark';\n\n // Create unique URIs for models\n const timestamp = Date.now();\n const originalUri = monacoInstance.Uri.parse(`diff://original/${timestamp}${this.filePath}`);\n const modifiedUri = monacoInstance.Uri.parse(`diff://modified/${timestamp}${this.filePath}`);\n\n // Create models\n this.originalModel = monacoInstance.editor.createModel(\n this.originalContent,\n this.language,\n originalUri\n );\n this.modifiedModel = monacoInstance.editor.createModel(\n this.modifiedContent,\n this.language,\n modifiedUri\n );\n\n // Create diff editor\n this.diffEditor = monacoInstance.editor.createDiffEditor(container, {\n automaticLayout: true,\n readOnly: false, // Allow editing the modified (local) side\n originalEditable: false, // Disk version is read-only\n renderSideBySide: true,\n ignoreTrimWhitespace: false,\n fontSize: 14,\n minimap: {\n enabled: false,\n },\n });\n\n // Set the theme\n monacoInstance.editor.setTheme(initialTheme);\n\n this.diffEditor.setModel({\n original: this.originalModel,\n modified: this.modifiedModel,\n });\n\n // Subscribe to theme changes\n this.monacoThemeSubscription = domtoolsInstance.themeManager.themeObservable.subscribe(\n (goBright: boolean) => {\n const newTheme = goBright ? 'vs' : 'vs-dark';\n monacoInstance.editor.setTheme(newTheme);\n }\n );\n\n // Inject Monaco CSS if not already present\n const cssId = 'monaco-diff-editor-css';\n if (!this.shadowRoot?.getElementById(cssId)) {\n const cssResponse = await fetch(`${monacoCdnBase}/min/vs/editor/editor.main.css`);\n const cssText = await cssResponse.text();\n const styleElement = document.createElement('style');\n styleElement.id = cssId;\n styleElement.textContent = cssText;\n this.shadowRoot?.append(styleElement);\n }\n\n // Navigate to first diff after a short delay\n setTimeout(() => {\n try {\n this.diffEditor?.revealFirstDiff();\n } catch {\n // Ignore if no diffs\n }\n }, 100);\n\n this.diffEditorDeferred.resolve(this.diffEditor);\n }\n\n public goToNextDiff(): void {\n try {\n this.diffEditor?.goToDiff('next');\n } catch {\n // Ignore if no more diffs\n }\n }\n\n public goToPreviousDiff(): void {\n try {\n this.diffEditor?.goToDiff('previous');\n } catch {\n // Ignore if no more diffs\n }\n }\n\n public acceptLocal(): void {\n // User wants to keep local version (potentially with edits made in diff view)\n const modifiedContent = this.diffEditor?.getModifiedEditor().getValue() || this.modifiedContent;\n this.dispatchEvent(\n new CustomEvent('diff-resolved', {\n detail: { action: 'use-local', content: modifiedContent },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public acceptDisk(): void {\n // User wants disk version\n this.dispatchEvent(\n new CustomEvent('diff-resolved', {\n detail: { action: 'use-disk', content: this.originalContent },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public close(): void {\n this.dispatchEvent(\n new CustomEvent('diff-closed', {\n bubbles: true,\n composed: true,\n })\n );\n }\n\n public async disconnectedCallback(): Promise {\n await super.disconnectedCallback();\n\n if (this.monacoThemeSubscription) {\n this.monacoThemeSubscription.unsubscribe();\n this.monacoThemeSubscription = null;\n }\n\n // Dispose models\n if (this.originalModel) {\n this.originalModel.dispose();\n this.originalModel = null;\n }\n if (this.modifiedModel) {\n this.modifiedModel.dispose();\n this.modifiedModel = null;\n }\n\n // Dispose editor\n if (this.diffEditor) {\n this.diffEditor.dispose();\n this.diffEditor = null;\n }\n }\n}\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n state,\n} from '@design.estate/dees-element';\nimport * as domtools from '@design.estate/dees-domtools';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport type { IExecutionEnvironment, IFileWatcher } from '../../00group-runtime/index.js';\nimport { WebContainerEnvironment } from '../../00group-runtime/index.js';\nimport type { FileSystemTree } from '@tempfix/webcontainer__api';\nimport '../dees-workspace-monaco/dees-workspace-monaco.js';\nimport '../dees-workspace-filetree/dees-workspace-filetree.js';\nimport { DeesWorkspaceFiletree } from '../dees-workspace-filetree/dees-workspace-filetree.js';\nimport '../dees-workspace-terminal/dees-workspace-terminal.js';\nimport { DeesWorkspaceTerminal } from '../dees-workspace-terminal/dees-workspace-terminal.js';\nimport type { IRunProcessEventDetail } from '../dees-workspace-terminal/interfaces.js';\nimport '../dees-workspace-terminal-preview/dees-workspace-terminal-preview.js';\nimport '../dees-workspace-bottombar/dees-workspace-bottombar.js';\nimport '../../00group-utility/dees-icon/dees-icon.js';\nimport { DeesWorkspaceMonaco } from '../dees-workspace-monaco/dees-workspace-monaco.js';\nimport { TypeScriptIntelliSenseManager } from './typescript-intellisense.js';\nimport { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport type { DeesActionbar } from '../../00group-feedback/dees-actionbar/dees-actionbar.js';\nimport '../dees-workspace-diff-editor/dees-workspace-diff-editor.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace': DeesWorkspace;\n }\n}\n\ninterface IOpenFile {\n path: string;\n name: string;\n content: string;\n modified: boolean;\n}\n\n@customElement('dees-workspace')\nexport class DeesWorkspace extends DeesElement {\n public static demo = () => {\n const env = new WebContainerEnvironment();\n\n // Mount initial TypeScript project files\n const mountPromise = (async () => {\n await env.init();\n\n const fileTree: FileSystemTree = {\n 'package.json': {\n file: {\n contents: JSON.stringify(\n {\n name: 'demo-project',\n version: '1.0.0',\n type: 'module',\n scripts: {\n build: 'tsc',\n dev: 'tsc --watch',\n },\n dependencies: {\n '@push.rocks/smartpromise': '^4.2.3',\n },\n devDependencies: {\n '@types/node': '^22.0.0',\n typescript: '^5.0.0',\n },\n },\n null,\n 2\n ),\n },\n },\n 'npmextra.json': {\n file: {\n contents: JSON.stringify(\n {\n deesEditorWorkspace: {\n onInit: 'pnpm install',\n },\n },\n null,\n 2\n ),\n },\n },\n 'tsconfig.json': {\n file: {\n contents: JSON.stringify(\n {\n compilerOptions: {\n target: 'ES2022',\n module: 'NodeNext',\n moduleResolution: 'NodeNext',\n strict: true,\n outDir: './dist',\n rootDir: './src',\n declaration: true,\n },\n include: ['src/**/*'],\n },\n null,\n 2\n ),\n },\n },\n src: {\n directory: {\n 'index.ts': {\n file: {\n contents: `// Main entry point\nimport { greet, formatName } from './utils.js';\n\nconst name = formatName('World');\nconsole.log(greet(name));\n\n// Example async function\nasync function main() {\n const result = await Promise.resolve('Hello from async!');\n console.log(result);\n}\n\nmain();\n`,\n },\n },\n 'utils.ts': {\n file: {\n contents: `// Utility functions\n\nexport interface IUser {\n firstName: string;\n lastName: string;\n}\n\nexport function greet(name: string): string {\n return \\`Hello, \\${name}!\\`;\n}\n\nexport function formatName(name: string): string {\n return name.trim().toUpperCase();\n}\n\nexport function createUser(firstName: string, lastName: string): IUser {\n return { firstName, lastName };\n}\n`,\n },\n },\n 'importtest.ts': {\n file: {\n contents: `// Test npm package imports\nimport * as smartpromise from '@push.rocks/smartpromise';\n\n// This should have IntelliSense showing defer() method\nconst deferred = smartpromise.defer();\n\n// Test using the deferred promise\nasync function testSmartPromise() {\n setTimeout(() => {\n deferred.resolve('Hello from smartpromise!');\n }, 100);\n\n const result = await deferred.promise;\n console.log(result);\n}\n\ntestSmartPromise();\n`,\n },\n },\n },\n },\n };\n\n await env.mount(fileTree);\n })();\n\n // Create container element for proper 100% height like dees-appui\n const containerElement = document.createElement('div');\n containerElement.style.cssText = 'position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden;';\n\n const workspaceElement = document.createElement('dees-workspace') as DeesWorkspace;\n workspaceElement.executionEnvironment = env;\n workspaceElement.initializationPromise = mountPromise;\n containerElement.appendChild(workspaceElement);\n\n return html`\n \n ${containerElement}\n \n `;\n };\n public static demoGroups = ['Workspace'];\n\n // INSTANCE\n @property({ type: Object })\n accessor executionEnvironment: IExecutionEnvironment | null = null;\n\n @property({ attribute: false })\n accessor initializationPromise: Promise | null = null;\n\n @property({ type: Boolean })\n accessor showFileTree: boolean = true;\n\n @property({ type: Boolean })\n accessor showTerminal: boolean = true;\n\n @property({ type: Number })\n accessor fileTreeWidth: number = 250;\n\n @property({ type: Number })\n accessor terminalHeight: number = 200;\n\n @state()\n accessor openFiles: IOpenFile[] = [];\n\n @state()\n accessor activeFilePath: string = '';\n\n @state()\n accessor isTerminalCollapsed: boolean = false;\n\n @state()\n accessor isFileTreeCollapsed: boolean = false;\n\n @state()\n accessor isInitializing: boolean = true;\n\n @state()\n accessor activeBottomPanel: 'terminal' | 'problems' = 'terminal';\n\n @state()\n accessor diagnosticMarkers: Array<{\n message: string;\n severity: number;\n startLineNumber: number;\n startColumn: number;\n endLineNumber: number;\n endColumn: number;\n source?: string;\n resource: { path: string };\n }> = [];\n\n private editorElement: DeesWorkspaceMonaco | null = null;\n private initializationStarted: boolean = false;\n private intelliSenseManager: TypeScriptIntelliSenseManager | null = null;\n private intelliSenseInitialized: boolean = false;\n\n // node_modules watcher for auto-loading types\n private nodeModulesWatcher: IFileWatcher | null = null;\n private nodeModulesDebounceTimeout: ReturnType | null = null;\n private intelliSenseDebounceTimeout: ReturnType | null = null;\n\n // Open file watchers for external change detection\n private openFileWatchers: Map = new Map();\n private fileChangeDebounce: Map> = new Map();\n private actionbarElement: DeesActionbar | null = null;\n\n // Auto-save functionality\n @state()\n accessor autoSave: boolean = false;\n private autoSaveInterval: ReturnType | null = null;\n\n // Init terminal preview state\n @state()\n accessor initCommand: string = '';\n\n @state()\n accessor initOutput: string[] = [];\n\n // Resize state\n @state()\n accessor currentFileTreeWidth: number = 250;\n\n @state()\n accessor currentTerminalHeight: number = 200;\n\n @state()\n accessor isDraggingFileTree: boolean = false;\n\n @state()\n accessor isDraggingTerminal: boolean = false;\n\n // Diff view state\n @state()\n accessor showDiffView: boolean = false;\n\n @state()\n accessor diffViewConfig: {\n filePath: string;\n originalContent: string;\n modifiedContent: string;\n language: string;\n } | null = null;\n\n // Keyboard shortcut handler (bound for proper cleanup)\n private keydownHandler = (e: KeyboardEvent) => {\n // Cmd+S (Mac) or Ctrl+S (Windows/Linux) - Save\n if ((e.metaKey || e.ctrlKey) && e.key === 's' && !e.shiftKey) {\n e.preventDefault();\n this.saveActiveFile();\n }\n\n // Cmd+Shift+S - Save All\n if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.key.toLowerCase() === 's') {\n e.preventDefault();\n this.saveAllFiles();\n }\n };\n\n // ========== Filetree Resize Handlers ==========\n private handleFileTreeMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this.isDraggingFileTree = true;\n document.addEventListener('mousemove', this.handleFileTreeMouseMove);\n document.addEventListener('mouseup', this.handleFileTreeMouseUp);\n };\n\n private handleFileTreeMouseMove = (e: MouseEvent) => {\n if (!this.isDraggingFileTree) return;\n\n const containerRect = this.getBoundingClientRect();\n const mouseX = e.clientX - containerRect.left;\n\n // Clamp to min/max (150px min, 50% of container max)\n const minWidth = 150;\n const maxWidth = containerRect.width * 0.5;\n const newWidth = Math.max(minWidth, Math.min(maxWidth, mouseX));\n\n this.currentFileTreeWidth = newWidth;\n };\n\n private handleFileTreeMouseUp = () => {\n this.isDraggingFileTree = false;\n document.removeEventListener('mousemove', this.handleFileTreeMouseMove);\n document.removeEventListener('mouseup', this.handleFileTreeMouseUp);\n\n // Notify Monaco editor of size change\n window.dispatchEvent(new Event('resize'));\n };\n\n // ========== Terminal Resize Handlers ==========\n private handleTerminalMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this.isDraggingTerminal = true;\n document.addEventListener('mousemove', this.handleTerminalMouseMove);\n document.addEventListener('mouseup', this.handleTerminalMouseUp);\n };\n\n private handleTerminalMouseMove = (e: MouseEvent) => {\n if (!this.isDraggingTerminal) return;\n\n const containerRect = this.getBoundingClientRect();\n const mouseY = e.clientY - containerRect.top;\n\n // Calculate terminal height from bottom\n const terminalHeight = containerRect.height - mouseY;\n\n // Clamp to min/max (100px min, 70% of container max)\n const minHeight = 100;\n const maxHeight = containerRect.height * 0.7;\n const newHeight = Math.max(minHeight, Math.min(maxHeight, terminalHeight));\n\n this.currentTerminalHeight = newHeight;\n };\n\n private handleTerminalMouseUp = () => {\n this.isDraggingTerminal = false;\n document.removeEventListener('mousemove', this.handleTerminalMouseMove);\n document.removeEventListener('mouseup', this.handleTerminalMouseUp);\n\n // Notify Monaco editor of size change\n window.dispatchEvent(new Event('resize'));\n };\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 7%)')};\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .workspace-outer {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n\n .workspace-container {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n width: 100%;\n }\n\n .editor-area {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n overflow: hidden;\n }\n\n .filetree-panel {\n position: relative;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .filetree-panel.collapsed {\n width: 0 !important;\n }\n\n .editor-panel {\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n flex: 1;\n min-width: 200px;\n }\n\n .terminal-panel {\n position: relative;\n border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .terminal-panel.collapsed {\n height: 32px !important;\n }\n\n .panel-header {\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 8px;\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 8%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n font-size: 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 40%)', 'hsl(0 0% 60%)')};\n }\n\n .panel-header-title {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .panel-header-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .panel-action {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n cursor: pointer;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n transition: all 0.15s ease;\n }\n\n .panel-action:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 18%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n }\n\n .tabs-bar {\n display: flex;\n align-items: stretch;\n height: 36px;\n background: ${cssManager.bdTheme('hsl(0 0% 96%)', 'hsl(0 0% 8%)')};\n border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 15%)')};\n overflow-x: auto;\n }\n\n .tab {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 12px;\n min-width: 120px;\n max-width: 200px;\n border-right: 1px solid ${cssManager.bdTheme('hsl(0 0% 88%)', 'hsl(0 0% 12%)')};\n cursor: pointer;\n font-size: 12px;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 10%)')};\n transition: all 0.15s ease;\n }\n\n .tab:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 92%)', 'hsl(0 0% 12%)')};\n }\n\n .tab.active {\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n border-bottom: 2px solid ${cssManager.bdTheme('hsl(210 100% 50%)', 'hsl(210 100% 60%)')};\n }\n\n .tab-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .tab-close {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n opacity: 0;\n transition: all 0.15s ease;\n }\n\n .tab:hover .tab-close {\n opacity: 1;\n }\n\n .tab-close:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 85%)', 'hsl(0 0% 25%)')};\n }\n\n .tab-modified {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n }\n\n .tabs-container {\n display: flex;\n flex: 1;\n overflow-x: auto;\n }\n\n .editor-menu-button {\n padding: 6px 8px;\n margin-right: 4px;\n margin-left: auto;\n border-radius: 4px;\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s, background 0.15s;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .editor-menu-button:hover {\n opacity: 1;\n background: ${cssManager.bdTheme('hsl(0 0% 0% / 0.08)', 'hsl(0 0% 100% / 0.1)')};\n }\n\n .editor-content {\n flex: 1;\n position: relative;\n }\n\n .terminal-content {\n position: absolute;\n top: 32px;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n .problems-content {\n position: absolute;\n top: 32px;\n left: 0;\n right: 0;\n bottom: 0;\n overflow-y: auto;\n background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 9%)')};\n }\n\n .panel-tabs {\n display: flex;\n align-items: center;\n gap: 0;\n }\n\n .panel-tab {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 12px;\n height: 32px;\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 55%)')};\n border-bottom: 2px solid transparent;\n transition: all 0.15s ease;\n }\n\n .panel-tab:hover {\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 75%)')};\n background: ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 12%)')};\n }\n\n .panel-tab.active {\n color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 90%)')};\n border-bottom-color: ${cssManager.bdTheme('hsl(210 100% 50%)', 'hsl(210 100% 60%)')};\n }\n\n .panel-tab-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n border-radius: 9px;\n font-size: 11px;\n font-weight: 600;\n background: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 45%)')};\n color: white;\n }\n\n .panel-tab-badge.warning {\n background: ${cssManager.bdTheme('hsl(40 70% 50%)', 'hsl(40 70% 45%)')};\n }\n\n .panel-tab-badge.none {\n display: none;\n }\n\n .problems-list {\n padding: 4px 0;\n }\n\n .problem-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 6px 12px;\n cursor: pointer;\n font-size: 12px;\n line-height: 1.4;\n color: ${cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 80%)')};\n transition: background 0.1s ease;\n }\n\n .problem-item:hover {\n background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 15%)')};\n }\n\n .problem-icon {\n flex-shrink: 0;\n margin-top: 2px;\n }\n\n .problem-icon.error {\n color: ${cssManager.bdTheme('hsl(0 70% 50%)', 'hsl(0 70% 60%)')};\n }\n\n .problem-icon.warning {\n color: ${cssManager.bdTheme('hsl(40 70% 50%)', 'hsl(40 70% 60%)')};\n }\n\n .problem-details {\n flex: 1;\n min-width: 0;\n }\n\n .problem-message {\n word-break: break-word;\n }\n\n .problem-location {\n margin-top: 2px;\n font-size: 11px;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 55%)')};\n }\n\n .problems-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 55%)', 'hsl(0 0% 50%)')};\n font-size: 13px;\n gap: 8px;\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 50%)')};\n font-size: 14px;\n gap: 8px;\n }\n\n .empty-state dees-icon {\n width: 48px;\n height: 48px;\n opacity: 0.5;\n }\n\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .initializing {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${cssManager.bdTheme('hsl(0 0% 50%)', 'hsl(0 0% 60%)')};\n font-size: 14px;\n gap: 12px;\n }\n\n .initializing dees-icon {\n animation: spin 1s linear infinite;\n }\n\n .initializing dees-workspace-terminal-preview {\n margin-top: 24px;\n width: 80%;\n max-width: 600px;\n height: 200px;\n }\n\n dees-workspace-filetree {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n dees-workspace-monaco {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n dees-workspace-terminal {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n /* Resize handles */\n .resize-handle-vertical {\n width: 6px;\n cursor: col-resize;\n background: transparent;\n transition: background 0.15s ease;\n position: relative;\n flex-shrink: 0;\n z-index: 10;\n }\n\n .resize-handle-vertical:hover,\n .resize-handle-vertical.dragging {\n background: ${cssManager.bdTheme('#3b82f6', '#58a6ff')};\n }\n\n .resize-handle-vertical::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 2px;\n height: 32px;\n background: ${cssManager.bdTheme('#9ca3af', '#6e7681')};\n border-radius: 1px;\n opacity: 0;\n transition: opacity 0.15s ease;\n }\n\n .resize-handle-vertical:hover::after,\n .resize-handle-vertical.dragging::after {\n opacity: 1;\n background: ${cssManager.bdTheme('#ffffff', '#ffffff')};\n }\n\n .resize-handle-horizontal {\n height: 6px;\n cursor: row-resize;\n background: transparent;\n transition: background 0.15s ease;\n position: relative;\n flex-shrink: 0;\n z-index: 10;\n }\n\n .resize-handle-horizontal:hover,\n .resize-handle-horizontal.dragging {\n background: ${cssManager.bdTheme('#3b82f6', '#58a6ff')};\n }\n\n .resize-handle-horizontal::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 32px;\n height: 2px;\n background: ${cssManager.bdTheme('#9ca3af', '#6e7681')};\n border-radius: 1px;\n opacity: 0;\n transition: opacity 0.15s ease;\n }\n\n .resize-handle-horizontal:hover::after,\n .resize-handle-horizontal.dragging::after {\n opacity: 1;\n background: ${cssManager.bdTheme('#ffffff', '#ffffff')};\n }\n\n /* Prevent text selection while dragging */\n .workspace-container.dragging {\n user-select: none;\n }\n\n .workspace-container.dragging .filetree-panel,\n .workspace-container.dragging .editor-panel,\n .workspace-container.dragging .terminal-panel {\n pointer-events: none;\n }\n\n `,\n ];\n\n public render(): TemplateResult {\n const containerClasses = [\n 'workspace-container',\n (this.isDraggingFileTree || this.isDraggingTerminal) ? 'dragging' : '',\n ].filter(Boolean).join(' ');\n\n if (this.isInitializing) {\n return html`\n
        \n \n Initializing workspace...\n \n
        \n `;\n }\n\n return html`\n
        \n
        \n \n ${this.showFileTree ? html`\n \n \n
        \n ${!this.isFileTreeCollapsed ? html`\n
        \n ` : ''}\n ` : ''}\n\n \n
        \n
        \n
        \n
        \n ${this.openFiles.map(file => html`\n this.activateFile(file.path)}\n >\n ${file.modified ? html`` : ''}\n ${file.name}\n this.closeFile(e, file.path)}>\n \n \n
        \n `)}\n
        \n
        \n \n
        \n
        \n
        \n ${this.showDiffView && this.diffViewConfig ? html`\n { this.showDiffView = false; this.diffViewConfig = null; }}\n >\n ` : this.openFiles.length === 0 ? html`\n
        \n \n Select a file to edit\n
        \n ` : html`\n \n `}\n
        \n \n
        \n\n \n ${this.showTerminal && !this.isTerminalCollapsed ? html`\n \n ` : ''}\n\n \n ${this.showTerminal ? html`\n \n
        \n
        \n this.activeBottomPanel = 'terminal'}\n >\n \n Terminal\n
        \n this.activeBottomPanel = 'problems'}\n >\n \n Problems\n ${this.diagnosticMarkers.length > 0 ? html`\n ${this.diagnosticMarkers.length}\n ` : ''}\n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n \n
        \n
        \n ${this.renderProblemsPanel()}\n
        \n \n ` : ''}\n \n \n\n \n \n \n `;\n }\n\n async connectedCallback() {\n await super.connectedCallback();\n document.addEventListener('keydown', this.keydownHandler);\n }\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n document.removeEventListener('keydown', this.keydownHandler);\n\n // Clean up resize event listeners\n document.removeEventListener('mousemove', this.handleFileTreeMouseMove);\n document.removeEventListener('mouseup', this.handleFileTreeMouseUp);\n document.removeEventListener('mousemove', this.handleTerminalMouseMove);\n document.removeEventListener('mouseup', this.handleTerminalMouseUp);\n\n if (this.autoSaveInterval) {\n clearInterval(this.autoSaveInterval);\n this.autoSaveInterval = null;\n }\n this.stopNodeModulesWatcher();\n this.stopAllFileWatchers();\n }\n\n public async firstUpdated() {\n // Initialize current sizes from properties\n this.currentFileTreeWidth = this.fileTreeWidth;\n this.currentTerminalHeight = this.terminalHeight;\n\n if (this.executionEnvironment) {\n await this.initializeWorkspace();\n }\n }\n\n public async updated(changedProperties: Map) {\n if (changedProperties.has('executionEnvironment') && this.executionEnvironment) {\n await this.initializeWorkspace();\n }\n\n // Capture actionbar reference when it becomes available (after initialization completes)\n if (!this.actionbarElement) {\n this.actionbarElement = this.shadowRoot?.querySelector('.editor-panel dees-actionbar') as DeesActionbar;\n }\n }\n\n private async initializeWorkspace() {\n if (!this.executionEnvironment) return;\n\n // Prevent double initialization\n if (this.initializationStarted) return;\n this.initializationStarted = true;\n\n this.isInitializing = true;\n\n try {\n // Wait for any external initialization (e.g., file mounting)\n if (this.initializationPromise) {\n await this.initializationPromise;\n } else if (!this.executionEnvironment.ready) {\n await this.executionEnvironment.init();\n }\n\n // Execute onInit command from npmextra.json if present\n await this.executeOnInitCommand();\n\n // IntelliSense is initialized lazily when first file is opened (Monaco loads on demand)\n } catch (error) {\n console.error('Failed to initialize workspace:', error);\n // Reset flag to allow retry\n this.initializationStarted = false;\n } finally {\n this.isInitializing = false;\n }\n }\n\n /**\n * Execute onInit command from npmextra.json if present\n * This allows automatic setup like `pnpm install` on workspace initialization\n */\n private async executeOnInitCommand(): Promise {\n if (!this.executionEnvironment) return;\n\n try {\n if (await this.executionEnvironment.exists('/npmextra.json')) {\n const content = await this.executionEnvironment.readFile('/npmextra.json');\n const config = JSON.parse(content);\n const onInit = config?.deesEditorWorkspace?.onInit;\n\n if (onInit && typeof onInit === 'string') {\n console.log('Executing onInit command:', onInit);\n\n // Set command for terminal preview display\n this.initCommand = onInit;\n this.initOutput = [];\n\n // Parse command and args\n const [cmd, ...args] = onInit.split(' ');\n const process = await this.executionEnvironment.spawn(cmd, args);\n\n // Capture stdout/stderr for terminal preview\n process.output.pipeTo(\n new WritableStream({\n write: (data) => {\n // Split data into lines and append\n const lines = data.split('\\n');\n for (const line of lines) {\n if (line) {\n this.initOutput = [...this.initOutput, line];\n }\n }\n },\n })\n );\n\n // Wait for completion\n const exitCode = await process.exit;\n console.log('onInit command completed with exit code:', exitCode);\n\n // Add completion message\n this.initOutput = [...this.initOutput, '', `Command completed with exit code: ${exitCode}`];\n }\n }\n } catch (error) {\n console.warn('Failed to execute onInit command:', error);\n }\n }\n\n private async initializeIntelliSense(): Promise {\n if (!this.executionEnvironment) return;\n if (this.intelliSenseInitialized) return;\n\n // Wait for Monaco to be available globally (with retry for timing)\n let monacoInstance = (window as any).monaco;\n if (!monacoInstance) {\n // Monaco loads asynchronously when the editor mounts, wait a bit\n await new Promise(resolve => setTimeout(resolve, 100));\n monacoInstance = (window as any).monaco;\n }\n\n if (!monacoInstance) {\n console.warn('Monaco not yet loaded, IntelliSense will be initialized later');\n return;\n }\n\n this.intelliSenseInitialized = true;\n this.intelliSenseManager = new TypeScriptIntelliSenseManager();\n await this.intelliSenseManager.init(monacoInstance, this.executionEnvironment);\n\n // Set up marker listener for Problems panel\n this.setupMarkerListener();\n\n // Start watching node_modules for package installations\n this.startNodeModulesWatcher();\n\n // Initial scan for any existing packages\n await this.intelliSenseManager.scanAndLoadNewPackageTypes();\n }\n\n /**\n * Watch node_modules for changes (e.g., after pnpm install)\n * and automatically load types for new packages\n */\n private startNodeModulesWatcher(): void {\n if (!this.executionEnvironment || this.nodeModulesWatcher) return;\n\n try {\n this.nodeModulesWatcher = this.executionEnvironment.watch(\n '/node_modules',\n (_event, _filename) => {\n // Debounce - pnpm install creates many file changes\n if (this.nodeModulesDebounceTimeout) {\n clearTimeout(this.nodeModulesDebounceTimeout);\n }\n this.nodeModulesDebounceTimeout = setTimeout(async () => {\n if (this.intelliSenseManager) {\n await this.intelliSenseManager.scanAndLoadNewPackageTypes();\n }\n }, 2000); // 2 second debounce for package installation\n },\n { recursive: true }\n );\n } catch (error) {\n console.warn('Could not watch node_modules:', error);\n }\n }\n\n private stopNodeModulesWatcher(): void {\n if (this.nodeModulesWatcher) {\n this.nodeModulesWatcher.stop();\n this.nodeModulesWatcher = null;\n }\n if (this.nodeModulesDebounceTimeout) {\n clearTimeout(this.nodeModulesDebounceTimeout);\n this.nodeModulesDebounceTimeout = null;\n }\n }\n\n // ========== Open File Watching for External Changes ==========\n\n /**\n * Start watching an open file for external changes\n */\n private startWatchingFile(path: string): void {\n if (!this.executionEnvironment || this.openFileWatchers.has(path)) return;\n\n try {\n const watcher = this.executionEnvironment.watch(\n path,\n (_event, _filename) => {\n // Debounce to avoid multiple rapid triggers\n const existingTimeout = this.fileChangeDebounce.get(path);\n if (existingTimeout) {\n clearTimeout(existingTimeout);\n }\n const timeout = setTimeout(() => {\n this.handleExternalFileChange(path);\n this.fileChangeDebounce.delete(path);\n }, 300);\n this.fileChangeDebounce.set(path, timeout);\n }\n );\n this.openFileWatchers.set(path, watcher);\n } catch (error) {\n console.warn(`Could not watch file ${path}:`, error);\n }\n }\n\n /**\n * Stop watching a file when it's closed\n */\n private stopWatchingFile(path: string): void {\n const watcher = this.openFileWatchers.get(path);\n if (watcher) {\n watcher.stop();\n this.openFileWatchers.delete(path);\n }\n const timeout = this.fileChangeDebounce.get(path);\n if (timeout) {\n clearTimeout(timeout);\n this.fileChangeDebounce.delete(path);\n }\n }\n\n /**\n * Stop all file watchers\n */\n private stopAllFileWatchers(): void {\n for (const watcher of this.openFileWatchers.values()) {\n watcher.stop();\n }\n this.openFileWatchers.clear();\n\n for (const timeout of this.fileChangeDebounce.values()) {\n clearTimeout(timeout);\n }\n this.fileChangeDebounce.clear();\n }\n\n /**\n * Handle external file change - show actionbar if file has local changes,\n * otherwise silently update with cursor preservation\n */\n private async handleExternalFileChange(path: string): Promise {\n const file = this.openFiles.find(f => f.path === path);\n if (!file || !this.executionEnvironment) return;\n\n try {\n // Read the new content from disk\n const newContent = await this.executionEnvironment.readFile(path);\n\n // If content is same as what we have, no action needed\n if (newContent === file.content) return;\n\n if (file.modified) {\n // File has unsaved local changes AND disk changed - conflict!\n const result = await this.actionbarElement?.show({\n message: `\"${file.name}\" changed on disk. What do you want to do?`,\n type: 'question',\n icon: 'lucide:gitMerge',\n actions: [\n { id: 'load-disk', label: 'Load from Disk', primary: true },\n { id: 'save-local', label: 'Save Local to Disk' },\n { id: 'compare', label: 'Compare' },\n ],\n timeout: { duration: 15000, defaultActionId: 'load-disk' },\n dismissible: true,\n });\n\n if (result?.actionId === 'load-disk') {\n // Discard local changes, load disk version\n await this.updateFileContent(path, newContent, false);\n } else if (result?.actionId === 'save-local') {\n // Keep local changes and save to disk (overwrite external)\n await this.executionEnvironment.writeFile(path, file.content);\n // Mark as saved\n this.openFiles = this.openFiles.map(f =>\n f.path === path ? { ...f, modified: false } : f\n );\n } else if (result?.actionId === 'compare') {\n // Open diff view\n this.openDiffView(path, file.content, newContent);\n }\n // If dismissed, do nothing - user can manually resolve later\n } else {\n // No local changes - silently update with cursor preservation\n await this.updateFileContent(path, newContent, true);\n }\n } catch (error) {\n console.warn(`Failed to handle external change for ${path}:`, error);\n }\n }\n\n /**\n * Update file content in state and optionally in the editor\n */\n private async updateFileContent(\n path: string,\n newContent: string,\n preserveCursor: boolean\n ): Promise {\n // Update internal state\n this.openFiles = this.openFiles.map(f =>\n f.path === path ? { ...f, content: newContent, modified: false } : f\n );\n\n // If this is the active file, update Monaco editor\n if (path === this.activeFilePath) {\n const editor = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editor) {\n await editor.setContentExternal(newContent, preserveCursor);\n }\n }\n }\n\n /**\n * Open the diff view to compare local and disk versions\n */\n private openDiffView(path: string, localContent: string, diskContent: string): void {\n this.diffViewConfig = {\n filePath: path,\n originalContent: diskContent,\n modifiedContent: localContent,\n language: this.getLanguageFromPath(path),\n };\n this.showDiffView = true;\n }\n\n /**\n * Handle diff view resolution\n */\n private async handleDiffResolved(e: CustomEvent): Promise {\n const { action, content } = e.detail;\n const path = this.diffViewConfig?.filePath;\n\n if (!path || !this.executionEnvironment) {\n this.showDiffView = false;\n this.diffViewConfig = null;\n return;\n }\n\n if (action === 'use-local') {\n // Save local content to disk\n await this.executionEnvironment.writeFile(path, content);\n this.openFiles = this.openFiles.map(f =>\n f.path === path ? { ...f, content, modified: false } : f\n );\n // Update editor if active\n if (path === this.activeFilePath) {\n const editor = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editor) {\n await editor.setContentExternal(content, false);\n }\n }\n } else if (action === 'use-disk') {\n // Update editor with disk content\n await this.updateFileContent(path, content, false);\n }\n\n this.showDiffView = false;\n this.diffViewConfig = null;\n }\n\n private async handleFileSelect(e: CustomEvent<{ path: string; name: string }>) {\n const { path, name } = e.detail;\n await this.openFile(path, name);\n }\n\n private async openFile(path: string, name: string) {\n // Check if already open\n const existingFile = this.openFiles.find(f => f.path === path);\n if (existingFile) {\n this.activeFilePath = path;\n return;\n }\n\n // Load file content\n if (!this.executionEnvironment) return;\n\n try {\n const content = await this.executionEnvironment.readFile(path);\n this.openFiles = [\n ...this.openFiles,\n { path, name, content, modified: false },\n ];\n this.activeFilePath = path;\n\n // Start watching for external changes\n this.startWatchingFile(path);\n\n // Initialize IntelliSense lazily after first file opens (Monaco loads on demand)\n if (!this.intelliSenseInitialized) {\n // Wait for Monaco editor to mount and load Monaco from CDN\n await this.updateComplete;\n // Give Monaco time to load via require.js\n await new Promise(resolve => setTimeout(resolve, 500));\n await this.initializeIntelliSense();\n\n // Process the initial file content for IntelliSense\n const language = this.getLanguageFromPath(path);\n if (this.intelliSenseManager && (language === 'typescript' || language === 'javascript')) {\n await this.intelliSenseManager.processContentChange(content);\n }\n }\n } catch (error) {\n console.error(`Failed to open file ${path}:`, error);\n }\n }\n\n private activateFile(path: string) {\n this.activeFilePath = path;\n }\n\n private closeFile(e: Event, path: string) {\n e.stopPropagation();\n\n const fileIndex = this.openFiles.findIndex(f => f.path === path);\n if (fileIndex === -1) return;\n\n // Check for unsaved changes\n const file = this.openFiles[fileIndex];\n if (file.modified) {\n const confirmed = confirm(`${file.name} has unsaved changes. Close anyway?`);\n if (!confirmed) return;\n }\n\n // Stop watching this file\n this.stopWatchingFile(path);\n\n this.openFiles = this.openFiles.filter(f => f.path !== path);\n\n // If closing the active file, activate another one\n if (this.activeFilePath === path) {\n if (this.openFiles.length > 0) {\n const newIndex = Math.min(fileIndex, this.openFiles.length - 1);\n this.activeFilePath = this.openFiles[newIndex].path;\n } else {\n this.activeFilePath = '';\n }\n }\n }\n\n private getActiveFileContent(): string {\n const file = this.openFiles.find(f => f.path === this.activeFilePath);\n return file?.content || '';\n }\n\n private handleContentChange(e: CustomEvent) {\n const newContent = e.detail;\n const fileIndex = this.openFiles.findIndex(f => f.path === this.activeFilePath);\n if (fileIndex === -1) return;\n\n const file = this.openFiles[fileIndex];\n if (file.content !== newContent) {\n this.openFiles = [\n ...this.openFiles.slice(0, fileIndex),\n { ...file, content: newContent, modified: true },\n ...this.openFiles.slice(fileIndex + 1),\n ];\n\n // Process content for IntelliSense (debounced to avoid parsing on every keystroke)\n const language = this.getLanguageFromPath(this.activeFilePath);\n if (this.intelliSenseManager && (language === 'typescript' || language === 'javascript')) {\n if (this.intelliSenseDebounceTimeout) {\n clearTimeout(this.intelliSenseDebounceTimeout);\n }\n this.intelliSenseDebounceTimeout = setTimeout(() => {\n this.intelliSenseManager?.processContentChange(newContent);\n }, 500); // 500ms debounce\n }\n }\n }\n\n private getLanguageFromPath(path: string): string {\n const ext = path.split('.').pop()?.toLowerCase();\n const languageMap: Record = {\n ts: 'typescript',\n tsx: 'typescript',\n js: 'javascript',\n jsx: 'javascript',\n json: 'json',\n html: 'html',\n css: 'css',\n scss: 'scss',\n less: 'less',\n md: 'markdown',\n yaml: 'yaml',\n yml: 'yaml',\n xml: 'xml',\n sql: 'sql',\n py: 'python',\n sh: 'shell',\n bash: 'shell',\n };\n return languageMap[ext || ''] || 'plaintext';\n }\n\n private toggleTerminal() {\n this.isTerminalCollapsed = !this.isTerminalCollapsed;\n }\n\n // ========== Save Operations ==========\n\n public async saveActiveFile(): Promise {\n const file = this.openFiles.find(f => f.path === this.activeFilePath);\n if (!file || !this.executionEnvironment) return;\n\n try {\n await this.executionEnvironment.writeFile(file.path, file.content);\n\n // Update file state to mark as saved\n this.openFiles = this.openFiles.map(f =>\n f.path === file.path ? { ...f, modified: false } : f\n );\n\n // Update IntelliSense manager with latest content\n if (this.intelliSenseManager) {\n this.intelliSenseManager.addFileModel(file.path, file.content);\n }\n } catch (error) {\n console.error('Failed to save file:', error);\n }\n }\n\n public async saveAllFiles(): Promise {\n if (!this.executionEnvironment) return;\n\n for (const file of this.openFiles.filter(f => f.modified)) {\n try {\n await this.executionEnvironment.writeFile(file.path, file.content);\n\n // Update IntelliSense manager\n if (this.intelliSenseManager) {\n this.intelliSenseManager.addFileModel(file.path, file.content);\n }\n } catch (error) {\n console.error(`Failed to save ${file.path}:`, error);\n }\n }\n\n // Mark all files as saved\n this.openFiles = this.openFiles.map(f => ({ ...f, modified: false }));\n }\n\n // ========== Editor Menu ==========\n\n private async showEditorMenu(e: MouseEvent) {\n e.stopPropagation();\n\n const menuItems: Parameters[1] = [\n {\n name: this.autoSave ? '\u2713 Auto Save' : 'Auto Save',\n iconName: 'lucide:save',\n action: async () => this.toggleAutoSave(),\n },\n { divider: true },\n {\n name: 'Save',\n iconName: 'lucide:save',\n action: async () => this.saveActiveFile(),\n },\n {\n name: 'Save All',\n iconName: 'lucide:save',\n action: async () => this.saveAllFiles(),\n },\n ];\n\n await DeesContextmenu.openContextMenuWithOptions(e, menuItems);\n }\n\n private toggleAutoSave() {\n this.autoSave = !this.autoSave;\n\n if (this.autoSave) {\n // Save every 2 seconds if there are changes\n this.autoSaveInterval = setInterval(() => {\n const hasUnsaved = this.openFiles.some(f => f.modified);\n if (hasUnsaved) {\n this.saveAllFiles();\n }\n }, 2000);\n } else {\n if (this.autoSaveInterval) {\n clearInterval(this.autoSaveInterval);\n this.autoSaveInterval = null;\n }\n }\n }\n\n private getErrorCount(): number {\n // Monaco MarkerSeverity: Error = 8, Warning = 4, Info = 2, Hint = 1\n return this.diagnosticMarkers.filter(m => m.severity === 8).length;\n }\n\n private renderProblemsPanel(): TemplateResult {\n if (this.diagnosticMarkers.length === 0) {\n return html`\n
        \n \n No problems detected\n
        \n `;\n }\n\n return html`\n
        \n ${this.diagnosticMarkers.map(marker => html`\n
        this.navigateToProblem(marker)}>\n \n
        \n
        ${marker.message}
        \n
        \n ${marker.resource.path.split('/').pop()} (${marker.startLineNumber}, ${marker.startColumn})\n ${marker.source ? `[${marker.source}]` : ''}\n
        \n
        \n
        \n `)}\n
        \n `;\n }\n\n private async navigateToProblem(marker: typeof this.diagnosticMarkers[0]) {\n // Extract file path from resource\n const filePath = marker.resource.path;\n const fileName = filePath.split('/').pop() || '';\n\n // Open the file if not already open\n const existingFile = this.openFiles.find(f => f.path === filePath);\n if (!existingFile) {\n await this.openFile(filePath, fileName);\n } else {\n this.activeFilePath = filePath;\n }\n\n // Wait for editor to be ready, then navigate to the line\n await this.updateComplete;\n const editorElement = this.shadowRoot?.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editorElement) {\n const editor = await editorElement.editorDeferred.promise;\n editor.revealLineInCenter(marker.startLineNumber);\n editor.setPosition({\n lineNumber: marker.startLineNumber,\n column: marker.startColumn,\n });\n editor.focus();\n }\n }\n\n private setupMarkerListener() {\n const monacoInstance = (window as any).monaco;\n if (!monacoInstance) return;\n\n // Listen for marker changes\n monacoInstance.editor.onDidChangeMarkers((uris: any[]) => {\n this.updateDiagnosticMarkers();\n });\n\n // Initial load\n this.updateDiagnosticMarkers();\n }\n\n private updateDiagnosticMarkers() {\n const monacoInstance = (window as any).monaco;\n if (!monacoInstance) return;\n\n // Get all markers from Monaco\n const allMarkers = monacoInstance.editor.getModelMarkers({});\n\n // Transform to our format\n this.diagnosticMarkers = allMarkers.map((m: any) => ({\n message: m.message,\n severity: m.severity,\n startLineNumber: m.startLineNumber,\n startColumn: m.startColumn,\n endLineNumber: m.endLineNumber,\n endColumn: m.endColumn,\n source: m.source,\n resource: { path: m.resource.path },\n }));\n }\n\n // ========== Bottom Bar Event Handlers ==========\n\n /**\n * Handle run-process events from bottom bar widgets\n * Creates a new terminal tab for the process\n */\n private async handleRunProcess(e: CustomEvent): Promise {\n const detail = e.detail;\n\n // Find the terminal component\n const terminal = this.shadowRoot?.querySelector('dees-workspace-terminal') as DeesWorkspaceTerminal;\n if (!terminal) {\n console.warn('Terminal component not found');\n return;\n }\n\n // Expand terminal if collapsed\n if (this.isTerminalCollapsed) {\n this.isTerminalCollapsed = false;\n }\n\n // Switch to terminal panel\n this.activeBottomPanel = 'terminal';\n\n // Wait for UI update\n await this.updateComplete;\n\n // Create a new terminal tab for the process\n await terminal.createProcessTab({\n type: detail.type,\n label: detail.label,\n command: detail.command,\n args: detail.args,\n metadata: detail.metadata,\n switchToTab: true,\n });\n }\n\n // ========== Public Layout Methods ==========\n\n /**\n * Programmatically set the file tree width\n */\n public setFileTreeWidth(width: number): void {\n const minWidth = 150;\n const maxWidth = this.getBoundingClientRect().width * 0.5;\n this.currentFileTreeWidth = Math.max(minWidth, Math.min(maxWidth, width));\n window.dispatchEvent(new Event('resize'));\n }\n\n /**\n * Programmatically set the terminal height\n */\n public setTerminalHeight(height: number): void {\n const minHeight = 100;\n const maxHeight = this.getBoundingClientRect().height * 0.7;\n this.currentTerminalHeight = Math.max(minHeight, Math.min(maxHeight, height));\n window.dispatchEvent(new Event('resize'));\n }\n\n /**\n * Reset layout to initial property values\n */\n public resetLayout(): void {\n this.currentFileTreeWidth = this.fileTreeWidth;\n this.currentTerminalHeight = this.terminalHeight;\n window.dispatchEvent(new Event('resize'));\n }\n}\n", "export * from './dees-workspace.js';\nexport * from './typescript-intellisense.js';\n", "export * from './dees-workspace-monaco.js';\n", "export * from './dees-workspace-filetree.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLXdvcmtzcGFjZS9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==", "export * from './dees-workspace-terminal.js';\nexport * from './interfaces.js';\nexport * from './terminal-tab-manager.js';\n", "export * from './dees-workspace-terminal-preview.js';\n", "import {\n DeesElement,\n property,\n html,\n customElement,\n type TemplateResult,\n css,\n cssManager,\n domtools,\n state,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { DeesWorkspaceMonaco } from '../dees-workspace-monaco/dees-workspace-monaco.js';\n\nconst deferred = domtools.plugins.smartpromise.defer();\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-markdown': DeesWorkspaceMarkdown;\n }\n}\n\n@customElement('dees-workspace-markdown')\nexport class DeesWorkspaceMarkdown extends DeesElement {\n public static demo = () => html``;\n public static demoGroups = ['Workspace'];\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n }\n\n .splitContainer {\n position: absolute;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n .editorContainer {\n position: relative;\n height: 100%;\n min-width: 100px;\n overflow: hidden;\n }\n\n .resizeHandle {\n width: 6px;\n height: 100%;\n background: ${cssManager.bdTheme('#e5e7eb', '#30363d')};\n cursor: col-resize;\n flex-shrink: 0;\n transition: background 0.15s ease;\n position: relative;\n }\n\n .resizeHandle:hover,\n .resizeHandle.dragging {\n background: ${cssManager.bdTheme('#3b82f6', '#58a6ff')};\n }\n\n .resizeHandle::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 2px;\n height: 32px;\n background: ${cssManager.bdTheme('#9ca3af', '#6e7681')};\n border-radius: 1px;\n opacity: 0.6;\n }\n\n .resizeHandle:hover::after,\n .resizeHandle.dragging::after {\n background: ${cssManager.bdTheme('#ffffff', '#ffffff')};\n opacity: 1;\n }\n\n .outletContainer {\n position: relative;\n height: 100%;\n min-width: 100px;\n background: ${cssManager.bdTheme('#ffffff', '#0d1117')};\n color: ${cssManager.bdTheme('#24292f', '#e6edf3')};\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\n padding: 20px;\n overflow-y: auto;\n box-sizing: border-box;\n }\n\n /* Prevent text selection while dragging */\n .splitContainer.dragging {\n user-select: none;\n }\n\n .splitContainer.dragging .editorContainer,\n .splitContainer.dragging .outletContainer {\n pointer-events: none;\n }\n `,\n ];\n\n /**\n * Initial split ratio for the editor (left) panel.\n * Value from 0 to 100 representing percentage width.\n * Default is 50 (50/50 split).\n */\n @property({ type: Number })\n accessor splitRatio: number = 50;\n\n /**\n * Minimum width percentage for either panel.\n */\n @property({ type: Number })\n accessor minPanelSize: number = 10;\n\n @state()\n accessor currentSplitRatio: number = 50;\n\n @state()\n accessor isDragging: boolean = false;\n\n private resizeHandleElement: HTMLElement;\n private containerElement: HTMLElement;\n\n public render() {\n return html`\n
        \n
        \n note:\nThere is something going on.\n\n\\`\\`\\`typescript\nconst hello = 'yes'\n\\`\\`\\`\n`}\n wordWrap=\"bounded\"\n >\n
        \n
        \n
        \n \n
        \n \n `;\n }\n\n public async firstUpdated(_changedPropertiesArg) {\n await super.firstUpdated(_changedPropertiesArg);\n\n // Initialize current ratio from property\n this.currentSplitRatio = this.splitRatio;\n\n // Cache elements\n this.containerElement = this.shadowRoot.querySelector('.splitContainer');\n this.resizeHandleElement = this.shadowRoot.querySelector('.resizeHandle');\n\n const editor = this.shadowRoot.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n\n // Wire up markdown rendering\n const markdownOutlet = this.shadowRoot.querySelector('dees-workspace-markdownoutlet');\n const smartmarkdownInstance = new domtools.plugins.smartmarkdown.SmartMarkdown();\n const mdParsedResult = await smartmarkdownInstance.getMdParsedResultFromMarkdown('loading...')\n editor.contentSubject.subscribe(async contentArg => {\n await mdParsedResult.updateFromMarkdownString(contentArg)\n const html = mdParsedResult.html;\n markdownOutlet.updateHtmlText(html);\n });\n }\n\n private handleMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this.isDragging = true;\n\n document.addEventListener('mousemove', this.handleMouseMove);\n document.addEventListener('mouseup', this.handleMouseUp);\n };\n\n private handleMouseMove = (e: MouseEvent) => {\n if (!this.isDragging || !this.containerElement) return;\n\n const containerRect = this.containerElement.getBoundingClientRect();\n const containerWidth = containerRect.width;\n const mouseX = e.clientX - containerRect.left;\n\n // Calculate percentage, accounting for the resize handle width (6px)\n let newRatio = (mouseX / containerWidth) * 100;\n\n // Clamp to min/max\n newRatio = Math.max(this.minPanelSize, Math.min(100 - this.minPanelSize, newRatio));\n\n this.currentSplitRatio = newRatio;\n };\n\n private handleMouseUp = () => {\n this.isDragging = false;\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n\n // Trigger resize on monaco editor\n const editor = this.shadowRoot.querySelector('dees-workspace-monaco') as DeesWorkspaceMonaco;\n if (editor) {\n // Monaco needs to be notified of size changes\n window.dispatchEvent(new Event('resize'));\n }\n };\n\n async disconnectedCallback() {\n await super.disconnectedCallback();\n // Clean up event listeners\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n }\n\n /**\n * Programmatically set the split ratio\n */\n public setSplitRatio(ratio: number) {\n this.currentSplitRatio = Math.max(this.minPanelSize, Math.min(100 - this.minPanelSize, ratio));\n }\n\n /**\n * Reset to initial split ratio\n */\n public resetSplitRatio() {\n this.currentSplitRatio = this.splitRatio;\n }\n}\n", "export * from './dees-workspace-markdown.js';\n", "import { html, css } from '@design.estate/dees-element';\nimport '@design.estate/dees-wcctools/demotools';\nimport '../../00group-layout/dees-panel/dees-panel.js';\nimport type { DeesWorkspaceMarkdownoutlet } from './dees-workspace-markdownoutlet.js';\n\nexport const demoFunc = () => html`\n \n \n\n
        \n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

        Heading Level 1

        \n

        Heading Level 2

        \n

        Heading Level 3

        \n

        Heading Level 4

        \n
        Heading Level 5
        \n
        Heading Level 6
        \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

        This is a paragraph with bold text and italic text.

        \n

        You can also use bold italic for emphasis.

        \n

        Here's a link example and some inline code.

        \n

        Press Ctrl + C to copy text.

        \n
        \n

        Above is a horizontal rule separator.

        \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

        Unordered List

        \n
          \n
        • First item
        • \n
        • Second item\n
            \n
          • Nested item 1
          • \n
          • Nested item 2
          • \n
          \n
        • \n
        • Third item
        • \n
        \n\n

        Ordered List

        \n
          \n
        1. Step one
        2. \n
        3. Step two
        4. \n
        5. Step three
        6. \n
        \n\n

        Task List

        \n
          \n
        • Completed task
        • \n
        • Pending task
        • \n
        • Another task
        • \n
        \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

        Inline code: const greeting = \"Hello, World!\";

        \n\n

        TypeScript Example

        \n
        import { html, css } from '@design.estate/dees-element';\n\ninterface IUser {\n  name: string;\n  email: string;\n  age?: number;\n}\n\nconst getUser = async (id: string): Promise<IUser> => {\n  const response = await fetch(\\`/api/users/\\${id}\\`);\n  return response.json();\n};
        \n\n

        JSON Example

        \n
        {\n  \"name\": \"dees-catalog\",\n  \"version\": \"3.0.0\",\n  \"dependencies\": {\n    \"@design.estate/dees-element\": \"^2.0.0\"\n  }\n}
        \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        FeatureStatusPriority
        Dark mode supportCompletedHigh
        Responsive designIn ProgressMedium
        AccessibilityPlannedHigh
        DocumentationIn ProgressLow
        \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n
        \n

        This is a standard blockquote. It's great for highlighting important information or quotes from other sources.

        \n
        \n\n
        \n

        Note: This is an informational note to draw attention to important details.

        \n
        \n\n
        \n

        Tip: Here's a helpful tip to improve your workflow.

        \n
        \n\n
        \n

        Important: This information is crucial for understanding the topic.

        \n
        \n\n
        \n

        Warning: Be careful when performing this action.

        \n
        \n\n
        \n

        Caution: This action may have unintended consequences.

        \n
        \n `);\n }}\n >\n \n \n\n \n {\n const outlet = panelEl.querySelector('dees-workspace-markdownoutlet') as DeesWorkspaceMarkdownoutlet;\n await outlet?.updateHtmlText(`\n

        Getting Started Guide

        \n

        Welcome to the dees-catalog component library. This guide will help you get up and running quickly.

        \n\n

        Installation

        \n

        Install the package using your preferred package manager:

        \n
        # Using pnpm (recommended)\npnpm add @design.estate/dees-catalog\n\n# Using npm\nnpm install @design.estate/dees-catalog
        \n\n

        Basic Usage

        \n

        Import and use components in your TypeScript files:

        \n
        import { DeesButton } from '@design.estate/dees-catalog';\n\n// Use in your templates\nhtml\\`<dees-button>Click me</dees-button>\\`
        \n\n
        \n

        Tip: Check the demo showcase for live examples of all components.

        \n
        \n\n

        Available Components

        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        ComponentDescription
        dees-buttonPrimary button component
        dees-input-textText input field
        dees-tableData table with sorting
        dees-modalModal dialog
        \n\n

        Next Steps

        \n \n\n
        \n

        \"The best component library is one that gets out of your way.\" \u2014 Design Systems Team

        \n
        \n `);\n }}\n >\n \n \n
        \n
        \n`;\n", "import {\n customElement,\n DeesElement,\n html,\n type TemplateResult,\n css,\n cssManager,\n} from '@design.estate/dees-element';\nimport { themeDefaultStyles } from '../../00theme.js';\nimport { demoFunc } from './dees-workspace-markdownoutlet.demo.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'dees-workspace-markdownoutlet': DeesWorkspaceMarkdownoutlet;\n }\n}\n\n@customElement('dees-workspace-markdownoutlet')\nexport class DeesWorkspaceMarkdownoutlet extends DeesElement {\n // DEMO\n public static demo = demoFunc;\n public static demoGroups = ['Workspace'];\n\n public static styles = [\n themeDefaultStyles,\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\n font-size: 16px;\n line-height: 1.6;\n color: ${cssManager.bdTheme('#24292f', '#e6edf3')};\n }\n\n .outlet {\n word-wrap: break-word;\n }\n\n /* Headings */\n h1, h2, h3, h4, h5, h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n color: ${cssManager.bdTheme('#1f2328', '#f0f6fc')};\n }\n\n h1 {\n font-size: 2em;\n padding-bottom: 0.3em;\n border-bottom: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n h2 {\n font-size: 1.5em;\n padding-bottom: 0.3em;\n border-bottom: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n h3 {\n font-size: 1.25em;\n }\n\n h4 {\n font-size: 1em;\n }\n\n h5 {\n font-size: 0.875em;\n }\n\n h6 {\n font-size: 0.85em;\n color: ${cssManager.bdTheme('#656d76', '#8b949e')};\n }\n\n /* Paragraphs and text */\n p {\n margin-top: 0;\n margin-bottom: 16px;\n }\n\n /* Links */\n a {\n color: ${cssManager.bdTheme('#0969da', '#58a6ff')};\n text-decoration: none;\n }\n\n a:hover {\n text-decoration: underline;\n }\n\n /* Strong and emphasis */\n strong {\n font-weight: 600;\n color: ${cssManager.bdTheme('#1f2328', '#f0f6fc')};\n }\n\n em {\n font-style: italic;\n }\n\n /* Lists */\n ul, ol {\n margin-top: 0;\n margin-bottom: 16px;\n padding-left: 2em;\n }\n\n li {\n margin-top: 4px;\n }\n\n li + li {\n margin-top: 4px;\n }\n\n ul ul, ul ol, ol ul, ol ol {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n /* Blockquotes */\n blockquote {\n margin: 0 0 16px 0;\n padding: 0 1em;\n color: ${cssManager.bdTheme('#656d76', '#8b949e')};\n border-left: 4px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n blockquote > :first-child {\n margin-top: 0;\n }\n\n blockquote > :last-child {\n margin-bottom: 0;\n }\n\n /* Inline code */\n code {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: 85%;\n font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n background-color: ${cssManager.bdTheme('rgba(175, 184, 193, 0.2)', 'rgba(110, 118, 129, 0.4)')};\n border-radius: 6px;\n white-space: break-spaces;\n }\n\n /* Code blocks */\n pre {\n margin-top: 0;\n margin-bottom: 16px;\n padding: 16px;\n overflow: auto;\n font-size: 85%;\n line-height: 1.45;\n font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n border-radius: 6px;\n word-wrap: normal;\n }\n\n pre code {\n display: block;\n padding: 0;\n margin: 0;\n overflow: visible;\n line-height: inherit;\n word-wrap: normal;\n background-color: transparent;\n border: 0;\n font-size: 100%;\n white-space: pre;\n }\n\n /* Tables */\n table {\n width: max-content;\n max-width: 100%;\n margin-top: 0;\n margin-bottom: 16px;\n border-spacing: 0;\n border-collapse: collapse;\n overflow: auto;\n display: block;\n }\n\n table th {\n font-weight: 600;\n padding: 6px 13px;\n border: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n color: ${cssManager.bdTheme('#1f2328', '#e6edf3')};\n }\n\n table td {\n padding: 6px 13px;\n border: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n color: ${cssManager.bdTheme('#1f2328', '#e6edf3')};\n }\n\n table tr {\n background-color: ${cssManager.bdTheme('#ffffff', '#0d1117')};\n border-top: 1px solid ${cssManager.bdTheme('#d1d9e0', '#21262d')};\n }\n\n table tr:nth-child(2n) {\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n }\n\n /* Horizontal rules */\n hr {\n height: 4px;\n padding: 0;\n margin: 24px 0;\n background-color: ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n border: 0;\n border-radius: 2px;\n }\n\n /* Images */\n img {\n max-width: 100%;\n box-sizing: border-box;\n border-radius: 6px;\n }\n\n /* Task lists */\n .task-list-item {\n list-style-type: none;\n }\n\n .task-list-item input {\n margin: 0 0.2em 0.25em -1.4em;\n vertical-align: middle;\n }\n\n /* Definition lists */\n dl {\n padding: 0;\n }\n\n dl dt {\n padding: 0;\n margin-top: 16px;\n font-size: 1em;\n font-style: italic;\n font-weight: 600;\n }\n\n dl dd {\n padding: 0 16px;\n margin-bottom: 16px;\n }\n\n /* Keyboard input */\n kbd {\n display: inline-block;\n padding: 3px 5px;\n font-size: 11px;\n font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;\n line-height: 10px;\n color: ${cssManager.bdTheme('#1f2328', '#e6edf3')};\n vertical-align: middle;\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n border: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n }\n\n /* Footnotes */\n .footnotes {\n font-size: 12px;\n color: ${cssManager.bdTheme('#656d76', '#8b949e')};\n border-top: 1px solid ${cssManager.bdTheme('#d1d9e0', '#30363d')};\n padding-top: 16px;\n margin-top: 32px;\n }\n\n /* Alerts/Admonitions */\n .markdown-alert {\n padding: 8px 16px;\n margin-bottom: 16px;\n border-left: 4px solid;\n border-radius: 6px;\n }\n\n .markdown-alert-note {\n border-color: ${cssManager.bdTheme('#0969da', '#58a6ff')};\n background-color: ${cssManager.bdTheme('rgba(9, 105, 218, 0.1)', 'rgba(56, 139, 253, 0.1)')};\n }\n\n .markdown-alert-warning {\n border-color: ${cssManager.bdTheme('#bf8700', '#d29922')};\n background-color: ${cssManager.bdTheme('rgba(191, 135, 0, 0.1)', 'rgba(187, 128, 9, 0.1)')};\n }\n\n .markdown-alert-important {\n border-color: ${cssManager.bdTheme('#8250df', '#a371f7')};\n background-color: ${cssManager.bdTheme('rgba(130, 80, 223, 0.1)', 'rgba(163, 113, 247, 0.1)')};\n }\n\n .markdown-alert-caution {\n border-color: ${cssManager.bdTheme('#cf222e', '#f85149')};\n background-color: ${cssManager.bdTheme('rgba(207, 34, 46, 0.1)', 'rgba(248, 81, 73, 0.1)')};\n }\n\n .markdown-alert-tip {\n border-color: ${cssManager.bdTheme('#1a7f37', '#3fb950')};\n background-color: ${cssManager.bdTheme('rgba(26, 127, 55, 0.1)', 'rgba(46, 160, 67, 0.1)')};\n }\n\n /* Syntax highlighting for code blocks */\n .hljs-comment,\n .hljs-quote {\n color: ${cssManager.bdTheme('#6a737d', '#8b949e')};\n }\n\n .hljs-keyword,\n .hljs-selector-tag,\n .hljs-addition {\n color: ${cssManager.bdTheme('#d73a49', '#ff7b72')};\n }\n\n .hljs-number,\n .hljs-string,\n .hljs-meta .hljs-meta-string,\n .hljs-literal,\n .hljs-doctag,\n .hljs-regexp {\n color: ${cssManager.bdTheme('#032f62', '#a5d6ff')};\n }\n\n .hljs-title,\n .hljs-section,\n .hljs-name,\n .hljs-selector-id,\n .hljs-selector-class {\n color: ${cssManager.bdTheme('#6f42c1', '#d2a8ff')};\n }\n\n .hljs-attribute,\n .hljs-attr,\n .hljs-variable,\n .hljs-template-variable,\n .hljs-class .hljs-title,\n .hljs-type {\n color: ${cssManager.bdTheme('#005cc5', '#79c0ff')};\n }\n\n .hljs-symbol,\n .hljs-bullet,\n .hljs-subst,\n .hljs-meta,\n .hljs-meta .hljs-keyword,\n .hljs-selector-attr,\n .hljs-selector-pseudo,\n .hljs-link {\n color: ${cssManager.bdTheme('#e36209', '#ffa657')};\n }\n\n .hljs-built_in,\n .hljs-deletion {\n color: ${cssManager.bdTheme('#b31d28', '#ffa198')};\n }\n\n .hljs-formula {\n background-color: ${cssManager.bdTheme('#f6f8fa', '#161b22')};\n }\n\n .hljs-emphasis {\n font-style: italic;\n }\n\n .hljs-strong {\n font-weight: bold;\n }\n `,\n ];\n\n // INSTANCE\n private outlet: HTMLElement;\n\n public render(): TemplateResult {\n return html`\n
        \n

        Markdown Preview

        \n

        Content will appear here when markdown is parsed.

        \n
        \n `;\n }\n\n public async firstUpdated(_changedProperties: Map) {\n await super.firstUpdated(_changedProperties);\n this.outlet = this.shadowRoot.querySelector('.outlet');\n }\n\n public async updateHtmlText(htmlTextArg: string) {\n await this.updateComplete;\n if (!this.outlet) {\n this.outlet = this.shadowRoot.querySelector('.outlet');\n }\n this.outlet.innerHTML = htmlTextArg;\n }\n}\n", "export * from './dees-workspace-markdownoutlet.js';\n", "export * from './dees-workspace-bottombar.js';\n", "export * from './dees-workspace-diff-editor.js';\n", "// Workspace Components\nexport * from './dees-workspace/index.js';\nexport * from './dees-workspace-monaco/index.js';\nexport * from './dees-workspace-filetree/index.js';\nexport * from './dees-workspace-terminal/index.js';\nexport * from './dees-workspace-terminal-preview/index.js';\nexport * from './dees-workspace-markdown/index.js';\nexport * from './dees-workspace-markdownoutlet/index.js';\nexport * from './dees-workspace-bottombar/index.js';\nexport * from './dees-workspace-diff-editor/index.js';\n", "export {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c193ZWIvZWxlbWVudHMvZGVlcy1zZWFyY2gvZGVlcy1zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9", "export * from './dees-search.js';\n", "import {} from '@design.estate/dees-element';", "export * from './dees-tooltip.js';\n", "export * from './00zindex.js';\nexport * from './00theme.js';\n\n// Component Groups\nexport * from './00group-appui/index.js';\nexport * from './00group-button/index.js';\nexport * from './00group-chart/index.js';\nexport * from './00group-dataview/index.js';\nexport * from './00group-feedback/index.js';\nexport * from './00group-form/index.js';\nexport * from './00group-input/index.js';\nexport * from './00group-layout/index.js';\nexport * from './00group-media/index.js';\nexport * from './00group-overlay/index.js';\nexport * from './00group-runtime/index.js';\nexport * from './00group-simple/index.js';\nexport * from './00group-utility/index.js';\nexport * from './00group-workspace/index.js';\n\n// Standalone Components\nexport * from './dees-search/index.js';\nexport * from './dees-tooltip/index.js';\n", "/**\n * autocreated commitinfo by @push.rocks/commitinfo\n */\nexport const commitinfo = {\n name: '@design.estate/dees-catalog',\n version: '3.43.3',\n description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'\n}\n", "export * from './elements/index.js';\nimport * as colors from './elements/00colors.js';\nexport { colors };\nexport { commitinfo } from './00_commitinfo_data.js';\n", "// @design.estate scope\nimport * as deesElement from '@design.estate/dees-element';\nimport * as deesCatalog from '@design.estate/dees-catalog';\n\nexport {\n deesElement,\n deesCatalog,\n};\n\n// domtools gives us TypedRequest, smartstate, smartrouter, and other utilities\nexport const domtools = deesElement.domtools;\n", "// @apiglobal scope\nimport * as typedrequestInterfaces from '@api.global/typedrequest-interfaces';\n\nexport {\n typedrequestInterfaces,\n};\n", "export interface IIdentity {\n jwt: string;\n userId: string;\n username: string;\n expiresAt: number;\n role: 'admin' | 'user';\n}\n", "export type TProviderType = 'gitea' | 'gitlab';\n\nexport interface IProviderConnection {\n id: string;\n name: string;\n providerType: TProviderType;\n baseUrl: string;\n token: string;\n createdAt: number;\n status: 'connected' | 'disconnected' | 'error';\n}\n", "export interface IProject {\n id: string;\n name: string;\n fullPath: string;\n description: string;\n defaultBranch: string;\n webUrl: string;\n connectionId: string;\n visibility: string;\n topics: string[];\n lastActivity: string;\n}\n", "export interface IGroup {\n id: string;\n name: string;\n fullPath: string;\n description: string;\n webUrl: string;\n connectionId: string;\n visibility: string;\n projectCount: number;\n}\n", "export interface ISecret {\n key: string;\n value: string;\n protected: boolean;\n masked: boolean;\n scope: 'project' | 'group';\n scopeId: string;\n connectionId: string;\n environment: string;\n}\n", "export type TPipelineStatus =\n | 'pending'\n | 'running'\n | 'success'\n | 'failed'\n | 'canceled'\n | 'skipped'\n | 'waiting'\n | 'manual';\n\nexport interface IPipeline {\n id: string;\n projectId: string;\n projectName: string;\n connectionId: string;\n status: TPipelineStatus;\n ref: string;\n sha: string;\n webUrl: string;\n duration: number;\n createdAt: string;\n source: string;\n}\n\nexport interface IPipelineJob {\n id: string;\n pipelineId: string;\n name: string;\n stage: string;\n status: TPipelineStatus;\n duration: number;\n}\n", "export * from './identity.ts';\nexport * from './connection.ts';\nexport * from './project.ts';\nexport * from './group.ts';\nexport * from './secret.ts';\nexport * from './pipeline.ts';\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_AdminLogin extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_AdminLogin\n> {\n method: 'adminLogin';\n request: {\n username: string;\n password: string;\n };\n response: {\n identity?: data.IIdentity;\n };\n}\n\nexport interface IReq_AdminLogout extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_AdminLogout\n> {\n method: 'adminLogout';\n request: {\n identity: data.IIdentity;\n };\n response: {\n ok: boolean;\n };\n}\n\nexport interface IReq_VerifyIdentity extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_VerifyIdentity\n> {\n method: 'verifyIdentity';\n request: {\n identity: data.IIdentity;\n };\n response: {\n valid: boolean;\n identity?: data.IIdentity;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetConnections extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetConnections\n> {\n method: 'getConnections';\n request: {\n identity: data.IIdentity;\n };\n response: {\n connections: data.IProviderConnection[];\n };\n}\n\nexport interface IReq_CreateConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_CreateConnection\n> {\n method: 'createConnection';\n request: {\n identity: data.IIdentity;\n name: string;\n providerType: data.TProviderType;\n baseUrl: string;\n token: string;\n };\n response: {\n connection: data.IProviderConnection;\n };\n}\n\nexport interface IReq_UpdateConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_UpdateConnection\n> {\n method: 'updateConnection';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n name?: string;\n baseUrl?: string;\n token?: string;\n };\n response: {\n connection: data.IProviderConnection;\n };\n}\n\nexport interface IReq_TestConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_TestConnection\n> {\n method: 'testConnection';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n };\n response: {\n ok: boolean;\n error?: string;\n };\n}\n\nexport interface IReq_DeleteConnection extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_DeleteConnection\n> {\n method: 'deleteConnection';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n };\n response: {\n ok: boolean;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetProjects extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetProjects\n> {\n method: 'getProjects';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n search?: string;\n page?: number;\n };\n response: {\n projects: data.IProject[];\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetGroups extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetGroups\n> {\n method: 'getGroups';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n search?: string;\n page?: number;\n };\n response: {\n groups: data.IGroup[];\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetSecrets extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetSecrets\n> {\n method: 'getSecrets';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n };\n response: {\n secrets: data.ISecret[];\n };\n}\n\nexport interface IReq_CreateSecret extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_CreateSecret\n> {\n method: 'createSecret';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n protected?: boolean;\n masked?: boolean;\n environment?: string;\n };\n response: {\n secret: data.ISecret;\n };\n}\n\nexport interface IReq_UpdateSecret extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_UpdateSecret\n> {\n method: 'updateSecret';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n protected?: boolean;\n masked?: boolean;\n environment?: string;\n };\n response: {\n secret: data.ISecret;\n };\n}\n\nexport interface IReq_DeleteSecret extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_DeleteSecret\n> {\n method: 'deleteSecret';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n };\n response: {\n ok: boolean;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetPipelines extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetPipelines\n> {\n method: 'getPipelines';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n page?: number;\n };\n response: {\n pipelines: data.IPipeline[];\n };\n}\n\nexport interface IReq_GetPipelineJobs extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetPipelineJobs\n> {\n method: 'getPipelineJobs';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n pipelineId: string;\n };\n response: {\n jobs: data.IPipelineJob[];\n };\n}\n\nexport interface IReq_RetryPipeline extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_RetryPipeline\n> {\n method: 'retryPipeline';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n pipelineId: string;\n };\n response: {\n ok: boolean;\n };\n}\n\nexport interface IReq_CancelPipeline extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_CancelPipeline\n> {\n method: 'cancelPipeline';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n pipelineId: string;\n };\n response: {\n ok: boolean;\n };\n}\n", "import * as plugins from '../plugins.ts';\nimport * as data from '../data/index.ts';\n\nexport interface IReq_GetJobLog extends plugins.typedrequestInterfaces.implementsTR<\n plugins.typedrequestInterfaces.ITypedRequest,\n IReq_GetJobLog\n> {\n method: 'getJobLog';\n request: {\n identity: data.IIdentity;\n connectionId: string;\n projectId: string;\n jobId: string;\n };\n response: {\n log: string;\n };\n}\n", "export * from './admin.ts';\nexport * from './connections.ts';\nexport * from './projects.ts';\nexport * from './groups.ts';\nexport * from './secrets.ts';\nexport * from './pipelines.ts';\nexport * from './logs.ts';\n", "export * from './plugins.ts';\n\n// Data types\nimport * as data from './data/index.ts';\nexport { data };\n\n// Request interfaces\nimport * as requests from './requests/index.ts';\nexport { requests };\n", "import * as plugins from './plugins.js';\nimport * as interfaces from '../ts_interfaces/index.js';\n\n// ============================================================================\n// Smartstate instance\n// ============================================================================\nexport const appState = new plugins.domtools.plugins.smartstate.Smartstate();\n\n// ============================================================================\n// State Part Interfaces\n// ============================================================================\n\nexport interface ILoginState {\n identity: interfaces.data.IIdentity | null;\n isLoggedIn: boolean;\n}\n\nexport interface IConnectionsState {\n connections: interfaces.data.IProviderConnection[];\n activeConnectionId: string | null;\n}\n\nexport interface IDataState {\n projects: interfaces.data.IProject[];\n groups: interfaces.data.IGroup[];\n secrets: interfaces.data.ISecret[];\n pipelines: interfaces.data.IPipeline[];\n pipelineJobs: interfaces.data.IPipelineJob[];\n currentJobLog: string;\n}\n\nexport interface IUiState {\n activeView: string;\n autoRefresh: boolean;\n refreshInterval: number;\n}\n\n// ============================================================================\n// State Parts\n// ============================================================================\n\nexport const loginStatePart = await appState.getStatePart(\n 'login',\n {\n identity: null,\n isLoggedIn: false,\n },\n 'persistent',\n);\n\nexport const connectionsStatePart = await appState.getStatePart(\n 'connections',\n {\n connections: [],\n activeConnectionId: null,\n },\n 'soft',\n);\n\nexport const dataStatePart = await appState.getStatePart(\n 'data',\n {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n },\n 'soft',\n);\n\nexport const uiStatePart = await appState.getStatePart(\n 'ui',\n {\n activeView: 'overview',\n autoRefresh: true,\n refreshInterval: 30000,\n },\n);\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\ninterface IActionContext {\n identity: interfaces.data.IIdentity | null;\n}\n\nconst getActionContext = (): IActionContext => {\n return { identity: loginStatePart.getState().identity };\n};\n\n// ============================================================================\n// Login Actions\n// ============================================================================\n\nexport const loginAction = loginStatePart.createAction<{\n username: string;\n password: string;\n}>(async (statePartArg, dataArg) => {\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_AdminLogin\n >('/typedrequest', 'adminLogin');\n\n const response = await typedRequest.fire({\n username: dataArg.username,\n password: dataArg.password,\n });\n\n return {\n identity: response.identity || null,\n isLoggedIn: !!response.identity,\n };\n } catch (err) {\n console.error('Login failed:', err);\n return { identity: null, isLoggedIn: false };\n }\n});\n\nexport const logoutAction = loginStatePart.createAction(async (_statePartArg) => {\n const context = getActionContext();\n try {\n if (context.identity) {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_AdminLogout\n >('/typedrequest', 'adminLogout');\n await typedRequest.fire({ identity: context.identity });\n }\n } catch (err) {\n console.error('Logout error:', err);\n }\n return { identity: null, isLoggedIn: false };\n});\n\n// ============================================================================\n// Connections Actions\n// ============================================================================\n\nexport const fetchConnectionsAction = connectionsStatePart.createAction(async (statePartArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetConnections\n >('/typedrequest', 'getConnections');\n const response = await typedRequest.fire({ identity: context.identity! });\n return { ...statePartArg.getState(), connections: response.connections };\n } catch (err) {\n console.error('Failed to fetch connections:', err);\n return statePartArg.getState();\n }\n});\n\nexport const createConnectionAction = connectionsStatePart.createAction<{\n name: string;\n providerType: interfaces.data.TProviderType;\n baseUrl: string;\n token: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_CreateConnection\n >('/typedrequest', 'createConnection');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetConnections\n >('/typedrequest', 'getConnections');\n const listResp = await listReq.fire({ identity: context.identity! });\n return { ...statePartArg.getState(), connections: listResp.connections };\n } catch (err) {\n console.error('Failed to create connection:', err);\n return statePartArg.getState();\n }\n});\n\nexport const testConnectionAction = connectionsStatePart.createAction<{\n connectionId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_TestConnection\n >('/typedrequest', 'testConnection');\n const result = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n });\n // Re-fetch to get updated status\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetConnections\n >('/typedrequest', 'getConnections');\n const listResp = await listReq.fire({ identity: context.identity! });\n return { ...statePartArg.getState(), connections: listResp.connections };\n } catch (err) {\n console.error('Failed to test connection:', err);\n return statePartArg.getState();\n }\n});\n\nexport const deleteConnectionAction = connectionsStatePart.createAction<{\n connectionId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_DeleteConnection\n >('/typedrequest', 'deleteConnection');\n await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n });\n const state = statePartArg.getState();\n return {\n ...state,\n connections: state.connections.filter((c) => c.id !== dataArg.connectionId),\n activeConnectionId: state.activeConnectionId === dataArg.connectionId ? null : state.activeConnectionId,\n };\n } catch (err) {\n console.error('Failed to delete connection:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Projects Actions\n// ============================================================================\n\nexport const fetchProjectsAction = dataStatePart.createAction<{\n connectionId: string;\n search?: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetProjects\n >('/typedrequest', 'getProjects');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n search: dataArg.search,\n });\n return { ...statePartArg.getState(), projects: response.projects };\n } catch (err) {\n console.error('Failed to fetch projects:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Groups Actions\n// ============================================================================\n\nexport const fetchGroupsAction = dataStatePart.createAction<{\n connectionId: string;\n search?: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetGroups\n >('/typedrequest', 'getGroups');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n search: dataArg.search,\n });\n return { ...statePartArg.getState(), groups: response.groups };\n } catch (err) {\n console.error('Failed to fetch groups:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Secrets Actions\n// ============================================================================\n\nexport const fetchSecretsAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetSecrets\n >('/typedrequest', 'getSecrets');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n scope: dataArg.scope,\n scopeId: dataArg.scopeId,\n });\n return { ...statePartArg.getState(), secrets: response.secrets };\n } catch (err) {\n console.error('Failed to fetch secrets:', err);\n return statePartArg.getState();\n }\n});\n\nexport const createSecretAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_CreateSecret\n >('/typedrequest', 'createSecret');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch secrets\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetSecrets\n >('/typedrequest', 'getSecrets');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n scope: dataArg.scope,\n scopeId: dataArg.scopeId,\n });\n return { ...statePartArg.getState(), secrets: listResp.secrets };\n } catch (err) {\n console.error('Failed to create secret:', err);\n return statePartArg.getState();\n }\n});\n\nexport const updateSecretAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n value: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_UpdateSecret\n >('/typedrequest', 'updateSecret');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetSecrets\n >('/typedrequest', 'getSecrets');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n scope: dataArg.scope,\n scopeId: dataArg.scopeId,\n });\n return { ...statePartArg.getState(), secrets: listResp.secrets };\n } catch (err) {\n console.error('Failed to update secret:', err);\n return statePartArg.getState();\n }\n});\n\nexport const deleteSecretAction = dataStatePart.createAction<{\n connectionId: string;\n scope: 'project' | 'group';\n scopeId: string;\n key: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_DeleteSecret\n >('/typedrequest', 'deleteSecret');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n const state = statePartArg.getState();\n return {\n ...state,\n secrets: state.secrets.filter((s) => s.key !== dataArg.key),\n };\n } catch (err) {\n console.error('Failed to delete secret:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Pipelines Actions\n// ============================================================================\n\nexport const fetchPipelinesAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelines\n >('/typedrequest', 'getPipelines');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n });\n return { ...statePartArg.getState(), pipelines: response.pipelines };\n } catch (err) {\n console.error('Failed to fetch pipelines:', err);\n return statePartArg.getState();\n }\n});\n\nexport const fetchPipelineJobsAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n pipelineId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelineJobs\n >('/typedrequest', 'getPipelineJobs');\n const response = await typedRequest.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n pipelineId: dataArg.pipelineId,\n });\n return { ...statePartArg.getState(), pipelineJobs: response.jobs };\n } catch (err) {\n console.error('Failed to fetch pipeline jobs:', err);\n return statePartArg.getState();\n }\n});\n\nexport const retryPipelineAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n pipelineId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_RetryPipeline\n >('/typedrequest', 'retryPipeline');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch pipelines\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelines\n >('/typedrequest', 'getPipelines');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n });\n return { ...statePartArg.getState(), pipelines: listResp.pipelines };\n } catch (err) {\n console.error('Failed to retry pipeline:', err);\n return statePartArg.getState();\n }\n});\n\nexport const cancelPipelineAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n pipelineId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_CancelPipeline\n >('/typedrequest', 'cancelPipeline');\n await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n // Re-fetch pipelines\n const listReq = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetPipelines\n >('/typedrequest', 'getPipelines');\n const listResp = await listReq.fire({\n identity: context.identity!,\n connectionId: dataArg.connectionId,\n projectId: dataArg.projectId,\n });\n return { ...statePartArg.getState(), pipelines: listResp.pipelines };\n } catch (err) {\n console.error('Failed to cancel pipeline:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// Logs Actions\n// ============================================================================\n\nexport const fetchJobLogAction = dataStatePart.createAction<{\n connectionId: string;\n projectId: string;\n jobId: string;\n}>(async (statePartArg, dataArg) => {\n const context = getActionContext();\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_GetJobLog\n >('/typedrequest', 'getJobLog');\n const response = await typedRequest.fire({\n identity: context.identity!,\n ...dataArg,\n });\n return { ...statePartArg.getState(), currentJobLog: response.log };\n } catch (err) {\n console.error('Failed to fetch job log:', err);\n return statePartArg.getState();\n }\n});\n\n// ============================================================================\n// UI Actions\n// ============================================================================\n\nexport const setActiveViewAction = uiStatePart.createAction<{ view: string }>(\n async (statePartArg, dataArg) => {\n return { ...statePartArg.getState(), activeView: dataArg.view };\n },\n);\n\nexport const toggleAutoRefreshAction = uiStatePart.createAction(async (statePartArg) => {\n const state = statePartArg.getState();\n return { ...state, autoRefresh: !state.autoRefresh };\n});\n", "import { css } from '@design.estate/dees-element';\n\nexport const viewHostCss = css`\n :host {\n display: block;\n margin: auto;\n max-width: 1280px;\n padding: 16px 16px;\n color: #fff;\n box-sizing: border-box;\n }\n .view-title {\n font-size: 24px;\n font-weight: 600;\n margin-bottom: 24px;\n }\n .view-description {\n font-size: 14px;\n color: #999;\n margin-bottom: 24px;\n }\n .toolbar {\n display: flex;\n gap: 16px;\n align-items: center;\n margin-bottom: 24px;\n flex-wrap: wrap;\n }\n`;\n", "export * from './css.js';\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\nimport { type IStatsTile } from '@design.estate/dees-catalog';\n\n@customElement('gitops-view-overview')\nexport class GitopsViewOverview extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connCount = this.connectionsState.connections.length;\n const projCount = this.dataState.projects.length;\n const groupCount = this.dataState.groups.length;\n const pipelineCount = this.dataState.pipelines.length;\n const failedPipelines = this.dataState.pipelines.filter((p) => p.status === 'failed').length;\n\n const tiles: IStatsTile[] = [\n { id: 'connections', title: 'Connections', value: connCount, type: 'number', icon: 'lucide:plug', color: '#00acff' },\n { id: 'projects', title: 'Projects', value: projCount, type: 'number', icon: 'lucide:folderGit2', color: '#00acff' },\n { id: 'groups', title: 'Groups', value: groupCount, type: 'number', icon: 'lucide:users', color: '#00acff' },\n { id: 'pipelines', title: 'Pipelines', value: pipelineCount, type: 'number', icon: 'lucide:play', color: '#00acff' },\n { id: 'failed', title: 'Failed Pipelines', value: failedPipelines, type: 'number', icon: 'lucide:triangleAlert', color: failedPipelines > 0 ? '#ff4444' : '#00ff88' },\n ];\n\n return html`\n
        Overview
        \n
        GitOps dashboard - manage your Gitea and GitLab instances
        \n \n `;\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-connections')\nexport class GitopsViewConnections extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n constructor() {\n super();\n const sub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(sub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n return html`\n
        Connections
        \n
        Manage your Gitea and GitLab provider connections
        \n
        \n this.addConnection()}>Add Connection\n this.refresh()}>Refresh\n
        \n ({\n Name: item.name,\n Type: item.providerType,\n URL: item.baseUrl,\n Status: item.status,\n Created: new Date(item.createdAt).toLocaleDateString(),\n })}\n .dataActions=${[\n {\n name: 'Test',\n iconName: 'lucide:plug',\n action: async (item: any) => {\n await appstate.connectionsStatePart.dispatchAction(\n appstate.testConnectionAction,\n { connectionId: item.id },\n );\n },\n },\n {\n name: 'Delete',\n iconName: 'lucide:trash2',\n action: async (item: any) => {\n const confirmed = await plugins.deesCatalog.DeesModal.createAndShow({\n heading: 'Delete Connection',\n content: html`

        Are you sure you want to delete connection \"${item.name}\"?

        `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Delete',\n action: async (modal: any) => {\n await appstate.connectionsStatePart.dispatchAction(\n appstate.deleteConnectionAction,\n { connectionId: item.id },\n );\n modal.destroy();\n },\n },\n ],\n });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await this.refresh();\n }\n\n private async refresh() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n }\n\n private async addConnection() {\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: 'Add Connection',\n content: html`\n \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n
        \n \n
        \n `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Add',\n action: async (modal: any) => {\n const inputs = modal.shadowRoot.querySelectorAll('dees-input-text, dees-input-dropdown');\n const data: any = {};\n for (const input of inputs) {\n if (input.key === 'providerType') {\n data[input.key] = input.selectedOption?.key || 'gitea';\n } else {\n data[input.key] = input.value || '';\n }\n }\n await appstate.connectionsStatePart.dispatchAction(\n appstate.createConnectionAction,\n {\n name: data.name,\n providerType: data.providerType,\n baseUrl: data.baseUrl,\n token: data.token,\n },\n );\n modal.destroy();\n },\n },\n ],\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-projects')\nexport class GitopsViewProjects extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n return html`\n
        Projects
        \n
        Browse projects from your connected providers
        \n
        \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadProjects();\n }}\n >\n this.loadProjects()}>Refresh\n
        \n ({\n Name: item.name,\n Path: item.fullPath,\n Visibility: item.visibility,\n Branch: item.defaultBranch,\n 'Last Activity': item.lastActivity ? new Date(item.lastActivity).toLocaleDateString() : '-',\n })}\n .dataActions=${[\n {\n name: 'View Secrets',\n iconName: 'lucide:key',\n action: async (item: any) => {\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: 'secrets' });\n },\n },\n {\n name: 'View Pipelines',\n iconName: 'lucide:play',\n action: async (item: any) => {\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: 'pipelines' });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadProjects();\n }\n }\n\n private async loadProjects() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-groups')\nexport class GitopsViewGroups extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n return html`\n
        Groups
        \n
        Browse organizations and groups from your connected providers
        \n
        \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadGroups();\n }}\n >\n this.loadGroups()}>Refresh\n
        \n ({\n Name: item.name,\n Path: item.fullPath,\n Visibility: item.visibility,\n Projects: String(item.projectCount),\n })}\n .dataActions=${[\n {\n name: 'View Secrets',\n iconName: 'lucide:key',\n action: async (item: any) => {\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: 'secrets' });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadGroups();\n }\n }\n\n private async loadGroups() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchGroupsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-secrets')\nexport class GitopsViewSecrets extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n @state()\n accessor selectedScope: 'project' | 'group' = 'project';\n\n @state()\n accessor selectedScopeId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n const scopeOptions = [\n { option: 'Project', key: 'project' },\n { option: 'Group', key: 'group' },\n ];\n\n const entityOptions = this.selectedScope === 'project'\n ? this.dataState.projects.map((p) => ({ option: p.fullPath || p.name, key: p.id }))\n : this.dataState.groups.map((g) => ({ option: g.fullPath || g.name, key: g.id }));\n\n return html`\n
        Secrets
        \n
        Manage CI/CD secrets and variables
        \n
        \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadEntities();\n }}\n >\n o.key === this.selectedScope)}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedScope = e.detail.key as 'project' | 'group';\n this.loadEntities();\n }}\n >\n o.key === this.selectedScopeId) || entityOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedScopeId = e.detail.key;\n this.loadSecrets();\n }}\n >\n this.addSecret()}>Add Secret\n this.loadSecrets()}>Refresh\n
        \n ({\n Key: item.key,\n Value: item.masked ? '******' : item.value,\n Protected: item.protected ? 'Yes' : 'No',\n Environment: item.environment || '*',\n })}\n .dataActions=${[\n {\n name: 'Edit',\n iconName: 'lucide:edit',\n action: async (item: any) => { await this.editSecret(item); },\n },\n {\n name: 'Delete',\n iconName: 'lucide:trash2',\n action: async (item: any) => {\n await appstate.dataStatePart.dispatchAction(appstate.deleteSecretAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n key: item.key,\n });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadEntities();\n }\n }\n\n private async loadEntities() {\n if (!this.selectedConnectionId) return;\n if (this.selectedScope === 'project') {\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n } else {\n await appstate.dataStatePart.dispatchAction(appstate.fetchGroupsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n }\n\n private async loadSecrets() {\n if (!this.selectedConnectionId || !this.selectedScopeId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchSecretsAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n });\n }\n\n private async addSecret() {\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: 'Add Secret',\n content: html`\n \n
        \n \n
        \n
        \n \n
        \n `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Create',\n action: async (modal: any) => {\n const inputs = modal.shadowRoot.querySelectorAll('dees-input-text');\n const data: any = {};\n for (const input of inputs) { data[input.key] = input.value || ''; }\n await appstate.dataStatePart.dispatchAction(appstate.createSecretAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n key: data.key,\n value: data.value,\n });\n modal.destroy();\n },\n },\n ],\n });\n }\n\n private async editSecret(item: any) {\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: `Edit Secret: ${item.key}`,\n content: html`\n \n
        \n \n
        \n `,\n menuOptions: [\n { name: 'Cancel', action: async (modal: any) => { modal.destroy(); } },\n {\n name: 'Update',\n action: async (modal: any) => {\n const input = modal.shadowRoot.querySelector('dees-input-text');\n await appstate.dataStatePart.dispatchAction(appstate.updateSecretAction, {\n connectionId: this.selectedConnectionId,\n scope: this.selectedScope,\n scopeId: this.selectedScopeId,\n key: item.key,\n value: input?.value || '',\n });\n modal.destroy();\n },\n },\n ],\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-pipelines')\nexport class GitopsViewPipelines extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n @state()\n accessor selectedProjectId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n css`\n .status-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n }\n .status-success { background: #1a3a1a; color: #00ff88; }\n .status-failed { background: #3a1a1a; color: #ff4444; }\n .status-running { background: #1a2a3a; color: #00acff; }\n .status-pending { background: #3a3a1a; color: #ffaa00; }\n .status-canceled { background: #2a2a2a; color: #999; }\n `,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n const projectOptions = this.dataState.projects.map((p) => ({\n option: p.fullPath || p.name,\n key: p.id,\n }));\n\n return html`\n
        Pipelines
        \n
        View and manage CI/CD pipelines
        \n
        \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadProjects();\n }}\n >\n o.key === this.selectedProjectId) || projectOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedProjectId = e.detail.key;\n this.loadPipelines();\n }}\n >\n this.loadPipelines()}>Refresh\n
        \n ({\n ID: item.id,\n Status: item.status,\n Ref: item.ref,\n Duration: item.duration ? `${Math.round(item.duration)}s` : '-',\n Source: item.source,\n Created: item.createdAt ? new Date(item.createdAt).toLocaleString() : '-',\n })}\n .dataActions=${[\n {\n name: 'View Jobs',\n iconName: 'lucide:list',\n action: async (item: any) => { await this.viewJobs(item); },\n },\n {\n name: 'Retry',\n iconName: 'lucide:refresh-cw',\n action: async (item: any) => {\n await appstate.dataStatePart.dispatchAction(appstate.retryPipelineAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n pipelineId: item.id,\n });\n },\n },\n {\n name: 'Cancel',\n iconName: 'lucide:x-circle',\n action: async (item: any) => {\n await appstate.dataStatePart.dispatchAction(appstate.cancelPipelineAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n pipelineId: item.id,\n });\n },\n },\n ]}\n >\n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadProjects();\n }\n }\n\n private async loadProjects() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n\n private async loadPipelines() {\n if (!this.selectedConnectionId || !this.selectedProjectId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchPipelinesAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n });\n }\n\n private async viewJobs(pipeline: any) {\n await appstate.dataStatePart.dispatchAction(appstate.fetchPipelineJobsAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n pipelineId: pipeline.id,\n });\n\n const jobs = appstate.dataStatePart.getState().pipelineJobs;\n await plugins.deesCatalog.DeesModal.createAndShow({\n heading: `Pipeline #${pipeline.id} - Jobs`,\n content: html`\n \n
        \n ${jobs.map((job: any) => html`\n
        \n ${job.name} (${job.stage})\n ${job.status} - ${job.duration ? `${Math.round(job.duration)}s` : '-'}\n
        \n `)}\n ${jobs.length === 0 ? html`

        No jobs found.

        ` : ''}\n
        \n `,\n menuOptions: [\n { name: 'Close', action: async (modal: any) => { modal.destroy(); } },\n ],\n });\n }\n}\n", "import * as plugins from '../../../plugins.js';\nimport * as appstate from '../../../appstate.js';\nimport { viewHostCss } from '../../shared/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\n@customElement('gitops-view-buildlog')\nexport class GitopsViewBuildlog extends DeesElement {\n @state()\n accessor connectionsState: appstate.IConnectionsState = {\n connections: [],\n activeConnectionId: null,\n };\n\n @state()\n accessor dataState: appstate.IDataState = {\n projects: [],\n groups: [],\n secrets: [],\n pipelines: [],\n pipelineJobs: [],\n currentJobLog: '',\n };\n\n @state()\n accessor selectedConnectionId: string = '';\n\n @state()\n accessor selectedProjectId: string = '';\n\n @state()\n accessor selectedJobId: string = '';\n\n constructor() {\n super();\n const connSub = appstate.connectionsStatePart\n .select((s) => s)\n .subscribe((s) => { this.connectionsState = s; });\n this.rxSubscriptions.push(connSub);\n\n const dataSub = appstate.dataStatePart\n .select((s) => s)\n .subscribe((s) => { this.dataState = s; });\n this.rxSubscriptions.push(dataSub);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n viewHostCss,\n css`\n .log-container {\n background: #0d0d0d;\n border: 1px solid #333;\n border-radius: 8px;\n padding: 16px;\n font-family: 'Fira Code', 'Courier New', monospace;\n font-size: 13px;\n line-height: 1.6;\n color: #ccc;\n max-height: 600px;\n overflow-y: auto;\n white-space: pre-wrap;\n word-break: break-all;\n }\n .log-empty {\n color: #666;\n text-align: center;\n padding: 40px;\n }\n .job-meta {\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n padding: 12px;\n background: #1a1a2e;\n border-radius: 8px;\n font-size: 14px;\n }\n .job-meta-item {\n color: #999;\n }\n .job-meta-item strong {\n color: #fff;\n }\n `,\n ];\n\n public render(): TemplateResult {\n const connectionOptions = this.connectionsState.connections.map((c) => ({\n option: `${c.name} (${c.providerType})`,\n key: c.id,\n }));\n\n const projectOptions = this.dataState.projects.map((p) => ({\n option: p.fullPath || p.name,\n key: p.id,\n }));\n\n const jobOptions = this.dataState.pipelineJobs.map((j) => ({\n option: `${j.name} (${j.status})`,\n key: j.id,\n }));\n\n return html`\n
        Build Log
        \n
        View raw build logs for CI/CD jobs
        \n
        \n o.key === this.selectedConnectionId) || connectionOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedConnectionId = e.detail.key;\n this.loadProjects();\n }}\n >\n o.key === this.selectedProjectId) || projectOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedProjectId = e.detail.key;\n }}\n >\n o.key === this.selectedJobId) || jobOptions[0]}\n @selectedOption=${(e: CustomEvent) => {\n this.selectedJobId = e.detail.key;\n }}\n >\n this.fetchLog()}>Fetch Log\n this.fetchLog()}>Refresh\n
        \n ${this.selectedJobId ? html`\n
        \n Job: ${this.selectedJobId}\n Project: ${this.selectedProjectId}\n
        \n ` : ''}\n
        \n ${this.dataState.currentJobLog\n ? this.dataState.currentJobLog\n : html`
        Select a connection, project, and job, then click \"Fetch Log\" to view build output.
        `\n }\n
        \n `;\n }\n\n async firstUpdated() {\n await appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n const conns = appstate.connectionsStatePart.getState().connections;\n if (conns.length > 0 && !this.selectedConnectionId) {\n this.selectedConnectionId = conns[0].id;\n await this.loadProjects();\n }\n }\n\n private async loadProjects() {\n if (!this.selectedConnectionId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchProjectsAction, {\n connectionId: this.selectedConnectionId,\n });\n }\n\n private async fetchLog() {\n if (!this.selectedConnectionId || !this.selectedProjectId || !this.selectedJobId) return;\n await appstate.dataStatePart.dispatchAction(appstate.fetchJobLogAction, {\n connectionId: this.selectedConnectionId,\n projectId: this.selectedProjectId,\n jobId: this.selectedJobId,\n });\n }\n}\n", "import * as plugins from '../plugins.js';\nimport * as appstate from '../appstate.js';\nimport * as interfaces from '../../ts_interfaces/index.js';\nimport {\n DeesElement,\n customElement,\n html,\n state,\n css,\n cssManager,\n type TemplateResult,\n} from '@design.estate/dees-element';\n\nimport type { GitopsViewOverview } from './views/overview/index.js';\nimport type { GitopsViewConnections } from './views/connections/index.js';\nimport type { GitopsViewProjects } from './views/projects/index.js';\nimport type { GitopsViewGroups } from './views/groups/index.js';\nimport type { GitopsViewSecrets } from './views/secrets/index.js';\nimport type { GitopsViewPipelines } from './views/pipelines/index.js';\nimport type { GitopsViewBuildlog } from './views/buildlog/index.js';\n\n@customElement('gitops-dashboard')\nexport class GitopsDashboard extends DeesElement {\n @state()\n accessor loginState: appstate.ILoginState = { identity: null, isLoggedIn: false };\n\n @state()\n accessor uiState: appstate.IUiState = {\n activeView: 'overview',\n autoRefresh: true,\n refreshInterval: 30000,\n };\n\n private viewTabs = [\n { name: 'Overview', iconName: 'lucide:layoutDashboard', element: (async () => (await import('./views/overview/index.js')).GitopsViewOverview)() },\n { name: 'Connections', iconName: 'lucide:plug', element: (async () => (await import('./views/connections/index.js')).GitopsViewConnections)() },\n { name: 'Projects', iconName: 'lucide:folderGit2', element: (async () => (await import('./views/projects/index.js')).GitopsViewProjects)() },\n { name: 'Groups', iconName: 'lucide:users', element: (async () => (await import('./views/groups/index.js')).GitopsViewGroups)() },\n { name: 'Secrets', iconName: 'lucide:key', element: (async () => (await import('./views/secrets/index.js')).GitopsViewSecrets)() },\n { name: 'Pipelines', iconName: 'lucide:play', element: (async () => (await import('./views/pipelines/index.js')).GitopsViewPipelines)() },\n { name: 'Build Log', iconName: 'lucide:scrollText', element: (async () => (await import('./views/buildlog/index.js')).GitopsViewBuildlog)() },\n ];\n\n private resolvedViewTabs: Array<{ name: string; iconName: string; element: any }> = [];\n\n constructor() {\n super();\n document.title = 'GitOps';\n\n const loginSubscription = appstate.loginStatePart\n .select((stateArg) => stateArg)\n .subscribe((loginState) => {\n this.loginState = loginState;\n if (loginState.isLoggedIn) {\n appstate.connectionsStatePart.dispatchAction(appstate.fetchConnectionsAction, null);\n }\n });\n this.rxSubscriptions.push(loginSubscription);\n\n const uiSubscription = appstate.uiStatePart\n .select((stateArg) => stateArg)\n .subscribe((uiState) => {\n this.uiState = uiState;\n this.syncAppdashView(uiState.activeView);\n });\n this.rxSubscriptions.push(uiSubscription);\n }\n\n public static styles = [\n cssManager.defaultStyles,\n css`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n .maincontainer {\n width: 100%;\n height: 100vh;\n }\n `,\n ];\n\n public render(): TemplateResult {\n return html`\n
        \n \n \n \n \n
        \n `;\n }\n\n public async firstUpdated() {\n // Resolve async view tab imports\n this.resolvedViewTabs = await Promise.all(\n this.viewTabs.map(async (tab) => ({\n name: tab.name,\n iconName: tab.iconName,\n element: await tab.element,\n })),\n );\n this.requestUpdate();\n await this.updateComplete;\n\n const simpleLogin = this.shadowRoot!.querySelector('dees-simple-login') as any;\n if (simpleLogin) {\n simpleLogin.addEventListener('login', (e: CustomEvent) => {\n this.login(e.detail.data.username, e.detail.data.password);\n });\n }\n\n const appDash = this.shadowRoot!.querySelector('dees-simple-appdash') as any;\n if (appDash) {\n appDash.addEventListener('view-select', (e: CustomEvent) => {\n const viewName = e.detail.view.name.toLowerCase();\n appstate.uiStatePart.dispatchAction(appstate.setActiveViewAction, { view: viewName });\n });\n appDash.addEventListener('logout', async () => {\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n });\n }\n\n // Load initial view on appdash\n if (appDash && this.resolvedViewTabs.length > 0) {\n const initialView = this.resolvedViewTabs.find(\n (t) => t.name.toLowerCase() === this.uiState.activeView,\n ) || this.resolvedViewTabs[0];\n await appDash.loadView(initialView);\n }\n\n // Check for stored session (persistent login state)\n const loginState = appstate.loginStatePart.getState();\n if (loginState.identity?.jwt) {\n if (loginState.identity.expiresAt > Date.now()) {\n try {\n const typedRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<\n interfaces.requests.IReq_VerifyIdentity\n >('/typedrequest', 'verifyIdentity');\n const response = await typedRequest.fire({ identity: loginState.identity });\n if (response.valid) {\n this.loginState = loginState;\n if (simpleLogin) {\n await simpleLogin.switchToSlottedContent();\n }\n } else {\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n }\n } catch (err) {\n console.warn('Stored session invalid, returning to login:', err);\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n }\n } else {\n await appstate.loginStatePart.dispatchAction(appstate.logoutAction, null);\n }\n }\n }\n\n private async login(username: string, password: string) {\n const domtools = await this.domtoolsPromise;\n const simpleLogin = this.shadowRoot!.querySelector('dees-simple-login') as any;\n const form = simpleLogin?.shadowRoot?.querySelector('dees-form') as any;\n\n if (form) {\n form.setStatus('pending', 'Logging in...');\n }\n\n const newState = await appstate.loginStatePart.dispatchAction(appstate.loginAction, {\n username,\n password,\n });\n\n if (newState.identity) {\n if (form) {\n form.setStatus('success', 'Logged in!');\n }\n if (simpleLogin) {\n await simpleLogin.switchToSlottedContent();\n }\n } else {\n if (form) {\n form.setStatus('error', 'Login failed!');\n await domtools.convenience.smartdelay.delayFor(2000);\n form.reset();\n }\n }\n }\n\n private syncAppdashView(viewName: string): void {\n const appDash = this.shadowRoot?.querySelector('dees-simple-appdash') as any;\n if (!appDash || this.resolvedViewTabs.length === 0) return;\n const targetTab = this.resolvedViewTabs.find((t) => t.name.toLowerCase() === viewName);\n if (!targetTab) return;\n appDash.loadView(targetTab);\n }\n}\n", "import './gitops-dashboard.js';\nimport './views/overview/index.js';\nimport './views/connections/index.js';\nimport './views/projects/index.js';\nimport './views/groups/index.js';\nimport './views/secrets/index.js';\nimport './views/pipelines/index.js';\nimport './views/buildlog/index.js';\n", "import * as plugins from './plugins.js';\nimport { html } from '@design.estate/dees-element';\nimport './elements/index.js';\n\nplugins.deesElement.render(html`\n \n`, document.body);\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASMA,GAKOC,GAsBPC,GAEAC,GASOC,GAgFAC,GAeAC,GA2BAC,GA8BAC;;;AAjMb,IAGMR,IAASS,YAKFR,IACXD,EAAOU,eAAAA,WACNV,EAAOW,YAA0BX,EAAOW,SAASC,iBAClD,wBAAwBC,SAASC,aACjC,aAAaC,cAAcD,WAkBvBZ,IAAoBc,uBAAAA,GAEpBb,IAAc,oBAAIc;AAAAA,IASXb,IATWa,MASXb;MAOX,YACEc,IACAC,KACAC,KAAAA;AAEA,YAVFC,KAAe,eAAA,MAUTD,QAAclB,EAChB,OAAUoB,MACR,mEAAA;AAGJD,aAAKH,UAAUA,IACfG,KAAKE,IAAWJ;MAClB;MAIA,IAAA,aAAIK;AAGF,YAAIA,KAAaH,KAAKI;AACtB,cAAMN,MAAUE,KAAKE;AACrB,YAAItB,KAAAA,WAA+BuB,IAA0B;AAC3D,gBAAME,MAAAA,WAAYP,OAA4C,MAAnBA,IAAQQ;AAC/CD,UAAAA,QACFF,KAAarB,EAAYyB,IAAIT,GAAAA,IAAAA,WAE3BK,QACDH,KAAKI,IAAcD,KAAa,IAAIT,iBAAiBc,YACpDR,KAAKH,OAAAA,GAEHQ,OACFvB,EAAY2B,IAAIX,KAASK,EAAAA;QAG/B;AACA,eAAOA;MACT;MAEA,WAAAO;AACE,eAAOV,KAAKH;MACd;IAAA;AAWF,IAsBab,IAAa2B,CAAAA,OACxB,IAAK5B,EACc,YAAA,OAAV4B,KAAqBA,KAAeA,KAAPC,IAAAA,QAEpC/B,CAAAA,GAWSI,IAAM,CACjBa,OACGe,QAAAA;AAEH,YAAMhB,MACe,MAAnBC,GAAQQ,SACJR,GAAQ,CAAA,IACRe,IAAOC,OACL,CAACC,KAAKC,KAAGC,QAAQF,OA7CAJ,CAAAA,QAAAA;AAEzB,YAAA,SAAKA,IAAkC,aACrC,QAAQA,IAAoBd;AACvB,YAAqB,YAAA,OAAVc,IAChB,QAAOA;AAEP,cAAUV,MACR,qEACKU,MADL,sFAAA;MAAA,GAqC6CK,GAAAA,IAAKlB,GAAQmB,MAAM,CAAA,GAC5DnB,GAAQ,CAAA,CAAA;AAEhB,aAAO,IAAKf,EACVc,KACAC,IACAjB,CAAAA;IAAAA,GAaSK,IAAc,CACzBgC,KACAC,QAAAA;AAEA,UAAIvC,EACDsC,CAAAA,IAA0BE,qBAAqBD,IAAOE,IAAKC,CAAAA,OAC1DA,cAAa5B,gBAAgB4B,KAAIA,GAAEnB,UAAAA;UAGrC,YAAWmB,OAAKH,KAAQ;AACtB,cAAMI,MAAQC,SAASC,cAAc,OAAA,GAE/BC,MAAS/C,EAAyB;AAAA,mBACpC+C,OACFH,IAAMI,aAAa,SAASD,GAAAA,GAE9BH,IAAMK,cAAeN,IAAgBzB,SACrCqB,IAAWW,YAAYN,GAAAA;MACzB;IAAA,GAYSpC,IACXP,IAEK0C,CAAAA,OAAyBA,KACzBA,CAAAA,OACCA,cAAa5B,iBAbYoC,CAAAA,QAAAA;AAC/B,UAAIjC,MAAU;AACd,iBAAWkC,OAAQD,IAAME,SACvBnC,CAAAA,OAAWkC,IAAKlC;AAElB,aAAOb,EAAUa,GAAAA;IAAAA,GAQ0CyB,EAAAA,IAAKA;;;;;IC/JhEW,IACAC,IACAC,GACAC,IACAC,IACAC,IAMIC,GAUAC,IAOAC,GAIAC,GAsGAC,GA6KOC,GAkDAC,GAGPC,GAqDgBC;;;;;AA9ZtB,KAAA,EAAMd,IACJA,IAAEC,gBACFA,IAAcC,0BACdA,GAAwBC,qBACxBA,IAAmBC,uBACnBA,IAAqBC,gBACrBA,OACEU,SAKET,IAASU,YAUTT,KAAgBD,EACnBC,cAMGC,IAAiCD,KAClCA,GAAaU,cACd,IAEER,IAEFH,EAAOY,gCAoGLR,IAA4B,CAChCS,IACAC,QACMD,IA0KKR,IAA8C,EACzD,YAAYU,IAAgBC,KAAAA;AAC1B,cAAQA,KAAAA;QACN,KAAKC;AACHF,UAAAA,KAAQA,KAAQb,IAAiC;AACjD;QACF,KAAKO;QACL,KAAKS;AAGHH,UAAAA,KAAiB,QAATA,KAAgBA,KAAQI,KAAKC,UAAUL,EAAAA;MAAAA;AAGnD,aAAOA;IACT,GAEA,cAAcA,IAAsBC,KAAAA;AAClC,UAAIK,MAAqBN;AACzB,cAAQC,KAAAA;QACN,KAAKC;AACHI,UAAAA,MAAsB,SAAVN;AACZ;QACF,KAAKO;AACHD,UAAAA,MAAsB,SAAVN,KAAiB,OAAOO,OAAOP,EAAAA;AAC3C;QACF,KAAKN;QACL,KAAKS;AAIH,cAAA;AAEEG,YAAAA,MAAYF,KAAKI,MAAMR,EAAAA;UACzB,SAASS,KAAAA;AACPH,YAAAA,MAAY;UACd;MAAA;AAGJ,aAAOA;IACT,EAAA,GAWWf,IAAuB,CAACS,IAAgBU,QAAAA,CAClD/B,GAAGqB,IAAOU,GAAAA,GAEPlB,IAAkD,EACtDmB,WAAAA,MACAV,MAAMW,QACNC,WAAWvB,GACXwB,SAAAA,OACAC,YAAAA,OACAC,YAAYzB,EAAAA;AAsBb0B,WAA8BC,aAAaD,uBAAO,UAAA,GAcnDhC,EAAOkC,wBAAwB,oBAAIC;AAAAA,IAWb3B,IAXa2B,cAoBzBC,YAAAA;MAqFR,OAAA,eAAsBC,IAAAA;AACpBC,aAAKC,KAAAA,IACJD,KAAKE,MAAkB,CAAA,GAAIC,KAAKJ,EAAAA;MACnC;MAuGA,WAAA,qBAAWK;AAOT,eALAJ,KAAKK,SAAAA,GAMHL,KAAKM,QAA4B,CAAA,GAAIN,KAAKM,KAAyBC,KAAAA,CAAAA;MAEvE;MA6BA,OAAA,eACEC,IACAC,MAA+BxC,GAAAA;AAc/B,YAXIwC,IAAQC,UACTD,IAAsDrB,YAAAA,QAEzDY,KAAKC,KAAAA,GAGDD,KAAKW,UAAUC,eAAeJ,EAAAA,OAChCC,MAAUtC,OAAO0C,OAAOJ,GAAAA,GAChBK,UAAAA,OAEVd,KAAKe,kBAAkBC,IAAIR,IAAMC,GAAAA,GAAAA,CAC5BA,IAAQQ,YAAY;AACvB,gBAAMC,MAIFxB,uBAAAA,GACEyB,KAAanB,KAAKoB,sBAAsBZ,IAAMU,KAAKT,GAAAA;AAAAA,qBACrDU,MACF9D,GAAe2C,KAAKW,WAAWH,IAAMW,EAAAA;QAEzC;MACF;MA6BU,OAAA,sBACRX,IACAU,KACAT,KAAAA;AAEA,cAAA,EAAMY,KAACA,KAAGL,KAAEA,IAAAA,IAAO1D,EAAyB0C,KAAKW,WAAWH,EAAAA,KAAS,EACnE,MAAAa;AACE,iBAAOrB,KAAKkB,GAAAA;QACd,GACA,IAA2BI,KAAAA;AACxBtB,eAAqDkB,GAAAA,IAAOI;QAC/D,EAAA;AAmBF,eAAO,EACLD,KAAAA,KACA,IAA2B5C,KAAAA;AACzB,gBAAM8C,KAAWF,KAAKG,KAAKxB,IAAAA;AAC3BgB,UAAAA,KAAKQ,KAAKxB,MAAMvB,GAAAA,GAChBuB,KAAKyB,cAAcjB,IAAMe,IAAUd,GAAAA;QACrC,GACAiB,cAAAA,MACAC,YAAAA,KAAY;MAEhB;MAgBA,OAAA,mBAA0BnB,IAAAA;AACxB,eAAOR,KAAKe,kBAAkBM,IAAIb,EAAAA,KAASvC;MAC7C;MAgBQ,OAAA,OAAOgC;AACb,YACED,KAAKY,eAAe9C,EAA0B,mBAAA,CAAA,EAG9C;AAGF,cAAM8D,KAAYnE,GAAeuC,IAAAA;AACjC4B,QAAAA,GAAUvB,SAAAA,GAAAA,WAKNuB,GAAU1B,MACZF,KAAKE,IAAgB,CAAA,GAAI0B,GAAU1B,CAAAA,IAGrCF,KAAKe,oBAAoB,IAAIc,IAAID,GAAUb,iBAAAA;MAC7C;MAaU,OAAA,WAAOV;AACf,YAAIL,KAAKY,eAAe9C,EAA0B,WAAA,CAAA,EAChD;AAMF,YAJAkC,KAAK8B,YAAAA,MACL9B,KAAKC,KAAAA,GAGDD,KAAKY,eAAe9C,EAA0B,YAAA,CAAA,GAAsB;AACtE,gBAAMiE,MAAQ/B,KAAKgC,YACbC,MAAW,CAAA,GACZ1E,GAAoBwE,GAAAA,GAAAA,GACpBvE,GAAsBuE,GAAAA,CAAAA;AAE3B,qBAAWG,OAAKD,IACdjC,MAAKmC,eAAeD,KAAGH,IAAMG,GAAAA,CAAAA;QAEjC;AAGA,cAAMvC,KAAWK,KAAKN,OAAOC,QAAAA;AAC7B,YAAiB,SAAbA,IAAmB;AACrB,gBAAMqC,MAAapC,oBAAoByB,IAAI1B,EAAAA;AAC3C,cAAA,WAAIqC,IACF,YAAK,CAAOE,KAAGzB,GAAAA,KAAYuB,IACzBhC,MAAKe,kBAAkBC,IAAIkB,KAAGzB,GAAAA;QAGpC;AAGAT,aAAKM,OAA2B,oBAAIuB;AACpC,mBAAK,CAAOK,KAAGzB,GAAAA,KAAYT,KAAKe,mBAAmB;AACjD,gBAAMqB,MAAOpC,KAAKqC,KAA2BH,KAAGzB,GAAAA;AAAAA,qBAC5C2B,OACFpC,KAAKM,KAAyBU,IAAIoB,KAAMF,GAAAA;QAE5C;AAEAlC,aAAKsC,gBAAgBtC,KAAKuC,eAAevC,KAAKwC,MAAAA;MAkBhD;MA4BU,OAAA,eACRA,KAAAA;AAEA,cAAMF,MAAgB,CAAA;AACtB,YAAI1D,MAAM6D,QAAQD,GAAAA,GAAS;AAIzB,gBAAMxB,MAAM,IAAI0B,IAAKF,IAA0BG,KAAKC,IAAAA,CAAAA,EAAUC,QAAAA,CAAAA;AAE9D,qBAAWC,OAAK9B,IACdsB,CAAAA,IAAcS,QAAQC,EAAmBF,GAAAA,CAAAA;QAE7C,MAAA,YAAWN,OACTF,IAAcnC,KAAK6C,EAAmBR,GAAAA,CAAAA;AAExC,eAAOF;MACT;MAaQ,OAAA,KACN9B,IACAC,KAAAA;AAEA,cAAMrB,MAAYqB,IAAQrB;AAC1B,eAAA,UAAOA,MAAAA,SAEkB,YAAA,OAAdA,MACLA,MACgB,YAAA,OAAToB,KACLA,GAAKyC,YAAAA,IAAAA;MAEf;MAiDA,cAAAC;AACEC,cAAAA,GA9WMnD,KAAAoD,OAAAA,QAuURpD,KAAAqD,kBAAAA,OAOArD,KAAAsD,aAAAA,OAwBQtD,KAAAuD,OAA2C,MASjDvD,KAAKwD,KAAAA;MACP;MAMQ,OAAAA;AACNxD,aAAKyD,OAAkB,IAAIC,QACxBC,CAAAA,OAAS3D,KAAK4D,iBAAiBD,EAAAA,GAElC3D,KAAK6D,OAAsB,oBAAIhC,OAG/B7B,KAAK8D,KAAAA,GAGL9D,KAAKyB,cAAAA,GACJzB,KAAKkD,YAAuChD,GAAe6D,QAASC,CAAAA,OACnEA,GAAEhE,IAAAA,CAAAA;MAEN;MAWA,cAAciE,IAAAA;AAAAA,SACXjE,KAAKkE,SAAkB,oBAAIxB,OAAOyB,IAAIF,EAAAA,GAAAA,WAKnCjE,KAAKoE,cAA4BpE,KAAKqE,eACxCJ,GAAWK,gBAAAA;MAEf;MAMA,iBAAiBL,IAAAA;AACfjE,aAAKkE,MAAeK,OAAON,EAAAA;MAC7B;MAQQ,OAAAH;AACN,cAAMU,KAAqB,oBAAI3C,OACzBd,MAAqBf,KAAKkD,YAC7BnC;AACH,mBAAWmB,OAAKnB,IAAkBR,KAAAA,EAC5BP,MAAKY,eAAesB,GAAAA,MACtBsC,GAAmBxD,IAAIkB,KAAGlC,KAAKkC,GAAAA,CAAAA,GAAAA,OACxBlC,KAAKkC,GAAAA;AAGZsC,QAAAA,GAAmBC,OAAO,MAC5BzE,KAAKoD,OAAuBoB;MAEhC;MAWU,mBAAAE;AACR,cAAMN,KACJpE,KAAK2E,cACL3E,KAAK4E,aACF5E,KAAKkD,YAAuC2B,iBAAAA;AAMjD,eAJAC,EACEV,IACCpE,KAAKkD,YAAuCZ,aAAAA,GAExC8B;MACT;MAOA,oBAAAW;AAEG/E,aAA4CoE,eAC3CpE,KAAK0E,iBAAAA,GACP1E,KAAK4D,eAAAA,IAAe,GACpB5D,KAAKkE,MAAeH,QAASiB,CAAAA,OAAMA,GAAEV,gBAAAA,CAAAA;MACvC;MAQU,eAAeW,IAAAA;MAA4B;MAQrD,uBAAAC;AACElF,aAAKkE,MAAeH,QAASiB,CAAAA,OAAMA,GAAEG,mBAAAA,CAAAA;MACvC;MAcA,yBACE3E,IACA4E,KACA3G,KAAAA;AAEAuB,aAAKqF,KAAsB7E,IAAM/B,GAAAA;MACnC;MAEQ,KAAsB+B,IAAmB/B,KAAAA;AAC/C,cAGMgC,MAFJT,KAAKkD,YACLnC,kBAC6BM,IAAIb,EAAAA,GAC7B4B,MACJpC,KAAKkD,YACLb,KAA2B7B,IAAMC,GAAAA;AACnC,YAAA,WAAI2B,OAAAA,SAAsB3B,IAAQlB,SAAkB;AAClD,gBAKM+F,MAAAA,WAJH7E,IAAQnB,WAAyCiG,cAE7C9E,IAAQnB,YACTvB,GACsBwH,YAAa9G,KAAOgC,IAAQ/B,IAAAA;AAwBxDsB,eAAKuD,OAAuB/C,IACX,QAAb8E,KACFtF,KAAKwF,gBAAgBpD,GAAAA,IAErBpC,KAAKyF,aAAarD,KAAMkD,EAAAA,GAG1BtF,KAAKuD,OAAuB;QAC9B;MACF;MAGA,KAAsB/C,IAAc/B,KAAAA;AAClC,cAAMiH,MAAO1F,KAAKkD,aAGZyC,MAAYD,IAAKpF,KAA0Ce,IAAIb,EAAAA;AAGrE,YAAA,WAAImF,OAA0B3F,KAAKuD,SAAyBoC,KAAU;AACpE,gBAAMlF,MAAUiF,IAAKE,mBAAmBD,GAAAA,GAClCrG,KACyB,cAAA,OAAtBmB,IAAQnB,YACX,EAACuG,eAAepF,IAAQnB,UAAAA,IAAAA,WACxBmB,IAAQnB,WAAWuG,gBACjBpF,IAAQnB,YACRvB;AAERiC,eAAKuD,OAAuBoC;AAC5B,gBAAMG,MAAiBxG,GAAUuG,cAAepH,KAAOgC,IAAQ/B,IAAAA;AAC/DsB,eAAK2F,GAAAA,IACHG,OACA9F,KAAK+F,MAAiB1E,IAAIsE,GAAAA,KAEzBG,KAEH9F,KAAKuD,OAAuB;QAC9B;MACF;MAsBA,cACE/C,IACAe,KACAd,KACAuF,MAAAA,OACAC,IAAAA;AAGA,YAAA,WAAIzF,IAAoB;AAOtB,gBAAMkF,MAAO1F,KAAKkD;AAiBlB,cAAA,UAhBI8C,QACFC,KAAWjG,KAAKQ,EAAAA,IAElBC,QAAYiF,IAAKE,mBAAmBpF,EAAAA,GAAAA,GAEjCC,IAAQhB,cAAczB,GAAUiI,IAAU1E,GAAAA,KAO1Cd,IAAQjB,cACPiB,IAAQlB,WACR0G,OAAajG,KAAK+F,MAAiB1E,IAAIb,EAAAA,KAAAA,CACtCR,KAAKkG,aAAaR,IAAKrD,KAA2B7B,IAAMC,GAAAA,CAAAA,GAK3D;AAHAT,eAAKmG,EAAiB3F,IAAMe,KAAUd,GAAAA;QAK1C;AAAA,kBACIT,KAAKqD,oBACPrD,KAAKyD,OAAkBzD,KAAKoG,KAAAA;MAEhC;MAKA,EACE5F,IACAe,KAAAA,EACA/B,YAACA,KAAUD,SAAEA,KAAOuB,SAAEA,GAAAA,GACtBuF,KAAAA;AAII7G,QAAAA,OAAAA,EAAgBQ,KAAK+F,SAAoB,oBAAIlE,OAAOyE,IAAI9F,EAAAA,MAC1DR,KAAK+F,KAAgB/E,IACnBR,IACA6F,OAAmB9E,OAAYvB,KAAKQ,EAAAA,CAAAA,GAAAA,SAIlCM,MAAAA,WAAoBuF,SAMrBrG,KAAK6D,KAAoByC,IAAI9F,EAAAA,MAG3BR,KAAKsD,cAAe9D,QACvB+B,MAAAA,SAEFvB,KAAK6D,KAAoB7C,IAAIR,IAAMe,GAAAA,IAAAA,SAMjChC,OAAoBS,KAAKuD,SAAyB/C,OACnDR,KAAKuG,SAA2B,oBAAI7D,OAAoByB,IAAI3D,EAAAA;MAEjE;MAKQ,MAAA,OAAM4F;AACZpG,aAAKqD,kBAAAA;AACL,YAAA;AAAA,gBAGQrD,KAAKyD;QACb,SAASvE,KAAAA;AAKPwE,kBAAQ8C,OAAOtH,GAAAA;QACjB;AACA,cAAMuH,KAASzG,KAAK0G,eAAAA;AAOpB,eAHc,QAAVD,MAAAA,MACIA,IAAAA,CAEAzG,KAAKqD;MACf;MAmBU,iBAAAqD;AAiBR,eAhBe1G,KAAK2G,cAAAA;MAiBtB;MAYU,gBAAAA;AAIR,YAAA,CAAK3G,KAAKqD,gBACR;AAGF,YAAA,CAAKrD,KAAKsD,YAAY;AA2BpB,cAxBCtD,KAA4CoE,eAC3CpE,KAAK0E,iBAAAA,GAuBH1E,KAAKoD,MAAsB;AAG7B,uBAAK,CAAOlB,KAAGzD,GAAAA,KAAUuB,KAAKoD,KAC5BpD,MAAKkC,GAAAA,IAAmBzD;AAE1BuB,iBAAKoD,OAAAA;UACP;AAUA,gBAAMrC,MAAqBf,KAAKkD,YAC7BnC;AACH,cAAIA,IAAkB0D,OAAO,EAC3B,YAAK,CAAOvC,KAAGzB,GAAAA,KAAYM,KAAmB;AAC5C,kBAAA,EAAMD,SAACA,IAAAA,IAAWL,KACZhC,MAAQuB,KAAKkC,GAAAA;AAAAA,qBAEjBpB,OACCd,KAAK6D,KAAoByC,IAAIpE,GAAAA,KAAAA,WAC9BzD,OAEAuB,KAAKmG,EAAiBjE,KAAAA,QAAczB,KAAShC,GAAAA;UAEjD;QAEJ;AACA,YAAImI,KAAAA;AACJ,cAAMC,MAAoB7G,KAAK6D;AAC/B,YAAA;AACE+C,UAAAA,KAAe5G,KAAK4G,aAAaC,GAAAA,GAC7BD,MACF5G,KAAK8G,WAAWD,GAAAA,GAChB7G,KAAKkE,MAAeH,QAASiB,CAAAA,QAAMA,IAAE+B,aAAAA,CAAAA,GACrC/G,KAAKgH,OAAOH,GAAAA,KAEZ7G,KAAKiH,KAAAA;QAET,SAAS/H,KAAAA;AAMP,gBAHA0H,KAAAA,OAEA5G,KAAKiH,KAAAA,GACC/H;QACR;AAEI0H,QAAAA,MACF5G,KAAKkH,KAAYL,GAAAA;MAErB;MAuBU,WAAWM,IAAAA;MAA2C;MAIhE,KAAYN,IAAAA;AACV7G,aAAKkE,MAAeH,QAASiB,CAAAA,QAAMA,IAAEoC,cAAAA,CAAAA,GAChCpH,KAAKsD,eACRtD,KAAKsD,aAAAA,MACLtD,KAAKqH,aAAaR,EAAAA,IAEpB7G,KAAKsH,QAAQT,EAAAA;MAiBf;MAEQ,OAAAI;AACNjH,aAAK6D,OAAsB,oBAAIhC,OAC/B7B,KAAKqD,kBAAAA;MACP;MAkBA,IAAA,iBAAIkE;AACF,eAAOvH,KAAKwH,kBAAAA;MACd;MAyBU,oBAAAA;AACR,eAAOxH,KAAKyD;MACd;MAUU,aAAa0D,IAAAA;AACrB,eAAA;MACF;MAWU,OAAOA,IAAAA;AAIfnH,aAAKuG,SAA2BvG,KAAKuG,KAAuBxC,QAAS7B,CAAAA,QACnElC,KAAKyH,KAAsBvF,KAAGlC,KAAKkC,GAAAA,CAAAA,CAAAA,GAErClC,KAAKiH,KAAAA;MACP;MAYU,QAAQE,IAAAA;MAAqC;MAkB7C,aAAaA,IAAAA;MAAqC;IAAA;AA7iCrDjJ,MAAAoE,gBAA0C,CAAA,GAiT1CpE,EAAA2G,oBAAoC,EAAC6C,MAAM,OAAA,GAiwBnDxJ,EACCJ,EAA0B,mBAAA,CAAA,IACxB,oBAAI+D,OACP3D,EACCJ,EAA0B,WAAA,CAAA,IACxB,oBAAI+D,OAGRhE,IAAkB,EAACK,iBAAAA,EAAAA,CAAAA,IAuClBR,EAAOiK,4BAA4B,CAAA,GAAIxH,KAAK,OAAA;;;;;ACh+B7C,SAASyH,EACPC,IACAC,KAAAA;AAOA,MAAA,CAAKC,GAAQF,EAAAA,KAAAA,CAASA,GAAIG,eAAe,KAAA,EAiBvC,OAAUC,MAhBI,gCAAA;AAkBhB,SAAA,WAAOC,KACHA,GAAOC,WAAWL,GAAAA,IACjBA;AACP;AAqWA,SAASM,EACPC,IACAC,KACAC,MAA0BF,IAC1BG,KAAAA;AAIA,MAAIF,QAAUG,EACZ,QAAOH;AAET,MAAII,KAAAA,WACFF,MACKD,IAAyBI,OAAeH,GAAAA,IACxCD,IAA+CK;AACtD,QAAMC,MAA2BC,GAAYR,GAAAA,IAAAA,SAGxCA,IAA2C;AAyBhD,SAxBII,IAAkBK,gBAAgBF,QAEpCH,IAAuD,OAAA,KAAI,GAAA,WACvDG,MACFH,KAAAA,UAEAA,KAAmB,IAAIG,IAAyBR,EAAAA,GAChDK,GAAiBM,KAAaX,IAAME,KAAQC,GAAAA,IAAAA,WAE1CA,OACAD,IAAyBI,SAAiB,CAAA,GAAIH,GAAAA,IAC9CE,KAEDH,IAAiCK,OAAcF,KAAAA,WAGhDA,OACFJ,MAAQF,EACNC,IACAK,GAAiBO,KAAUZ,IAAOC,IAA0BY,MAAAA,GAC5DR,IACAF,GAAAA,IAGGF;AACT;IAhpCMa,IAqOAC,IAOAC,IAUAnB,IAgFAoB,IAMAC,IAGAC,IAIAC,IAEAC,IAUAC,IAIAb,IAEAf,IACA6B,IAKAC,IAkBAC,GAKAC,GAIAC,GAwBAC,IASAC,GACAC,GAOAC,IAyGAC,GA+COC,IA0BAC,GA0BAC,GAMA/B,GAqBAgC,GASPC,GA0CAC,GAoEAC,GA+JAC,IA2OAC,GAkJAC,GAodAC,GAkKAC,GA6BAC,GAmCAC,GA0FAC,GA6DOC,GAoBPC,GA2COC;;;AArrEb,IAAMpC,KAASqC,YAqOTpC,KAKiBqC,CAAAA,OAAYA,IAE7BpC,KAAgBF,GAAyCE,cAUzDnB,KAASmB,KACXA,GAAaqC,aAAa,YAAY,EACpCvD,YAAawD,CAAAA,OAAMA,GAAAA,CAAAA,IAAAA,QA8EnBrC,KAAuB,SAMvBC,KAAS,OAAOqC,KAAKC,OAAAA,EAASC,QAAQ,CAAA,EAAGC,MAAM,CAAA,CAAA,KAG/CvC,KAAc,MAAMD,IAIpBE,KAAa,IAAID,EAAAA,KAEjBE,KAOAsC,UAGArC,KAAe,MAAMD,GAAEuC,cAAc,EAAA,GAIrCnD,KAAeR,CAAAA,OACT,SAAVA,MAAmC,YAAA,OAATA,MAAqC,cAAA,OAATA,IAClDP,KAAUmE,MAAMnE,SAChB6B,KAActB,CAAAA,OAClBP,GAAQO,EAAAA,KAEqC,cAAA,OAArCA,KAAgB6D,OAAOC,QAAAA,GAE3BvC,KAAa,cAkBbC,IAAe,uDAKfC,IAAkB,QAIlBC,IAAmB,MAwBnBC,KAAkBoC,OACtB,KAAKxC,EAAAA,qBAAgCA,EAAAA,KAAeA,EAAAA;2BACpD,GAAA,GAOIK,IAA0B,MAC1BC,IAA0B,MAO1BC,KAAiB,sCAyGjBC,IACmBiC,CAAAA,OACvB,CAACC,QAAkCrD,SAwB1B,EAELsD,YAAgBF,IAChBC,SAAAA,KACArD,QAAAA,IAAAA,IAiBOoB,KAAOD,EArJA,CAAA,GA+KPE,IAAMF,EA9KA,CAAA,GAwMNG,IAASH,EAvMA,CAAA,GA6MT5B,IAAW0D,uBAAOM,IAAI,cAAA,GAqBtBhC,IAAU0B,uBAAOM,IAAI,aAAA,GAS5B/B,IAAgB,oBAAIgC,WA0CpB/B,IAASjB,GAAEiD,iBACfjD,IACA,GAAA;AAkEF,IAAMkB,IAAkB,CACtB2B,IACAD,QAAAA;AAQA,YAAMM,MAAIL,GAAQM,SAAS,GAIrBC,MAA2B,CAAA;AACjC,UAMIC,KANAzC,KAzWa,MA0WfgC,MAAsB,UAzWJ,MAyWcA,MAAyB,WAAW,IASlEU,MAAQlD;AAEZ,eAASmD,MAAI,GAAGA,MAAIL,KAAGK,OAAK;AAC1B,cAAMtB,MAAIY,GAAQU,GAAAA;AAMlB,YACIC,IAEAC,IAHAC,KAAAA,IAEAC,KAAY;AAKhB,eAAOA,KAAY1B,IAAEkB,WAEnBG,IAAMK,YAAYA,IAClBF,KAAQH,IAAMM,KAAK3B,GAAAA,GACL,SAAVwB,MAGJE,CAAAA,KAAYL,IAAMK,WACdL,QAAUlD,IACiB,UAAzBqD,GAjcU,CAAA,IAkcZH,MAAQjD,IAAAA,WACCoD,GAncG,CAAA,IAqcZH,MAAQhD,IAAAA,WACCmD,GArcF,CAAA,KAscH/C,GAAemD,KAAKJ,GAtcjB,CAAA,CAAA,MAycLJ,MAAsBV,OAAO,OAAKc,GAzc7B,CAAA,GAycgD,GAAA,IAEvDH,MAAQ/C,MAAAA,WACCkD,GA3cM,CAAA,MAkdfH,MAAQ/C,MAED+C,QAAU/C,KACS,QAAxBkD,GAnbS,CAAA,KAsbXH,MAAQD,OAAmBjD,GAG3BsD,KAAAA,MAAmB,WACVD,GAzbI,CAAA,IA2bbC,KAAAA,MAEAA,KAAmBJ,IAAMK,YAAYF,GA5brB,CAAA,EA4b8CN,QAC9DK,KAAWC,GA9bE,CAAA,GA+bbH,MAAAA,WACEG,GA9bO,CAAA,IA+bHlD,KACsB,QAAtBkD,GAhcG,CAAA,IAicDhD,IACAD,KAGV8C,QAAU7C,KACV6C,QAAU9C,IAEV8C,MAAQ/C,KACC+C,QAAUjD,KAAmBiD,QAAUhD,IAChDgD,MAAQlD,KAIRkD,MAAQ/C,IACR8C,MAAAA;AA8BJ,cAAMS,KACJR,QAAU/C,MAAesC,GAAQU,MAAI,CAAA,EAAGQ,WAAW,IAAA,IAAQ,MAAM;AACnEnD,QAAAA,MACE0C,QAAUlD,IACN6B,MAAIlC,KACJ2D,MAAoB,KACjBN,IAAUY,KAAKR,EAAAA,GAChBvB,IAAEI,MAAM,GAAGqB,EAAAA,IACT9D,KACAqC,IAAEI,MAAMqB,EAAAA,IACV7D,KACAiE,MACA7B,MAAIpC,MAAAA,OAAU6D,KAA0BH,MAAIO;MACtD;AAQA,aAAO,CAAC5F,EAAwB2E,IAL9BjC,MACCiC,GAAQK,GAAAA,KAAM,UAhfA,MAifdN,MAAsB,WAhfL,MAgfgBA,MAAyB,YAAY,GAAA,GAGnBQ,GAAAA;IAAAA;AAKxD,IAAMjC,KAAN,MAAMA,GAAAA;MAMJ,YAAA9B,EAEEwD,SAACA,IAASC,YAAgBF,IAAAA,GAC1BqB,KAAAA;AAEA,YAAIlC;AAPNmC,aAAAC,QAA6B,CAAA;AAQ3B,YAAIC,KAAY,GACZC,KAAgB;AACpB,cAAMC,KAAYzB,GAAQM,SAAS,GAC7BgB,KAAQD,KAAKC,OAAAA,CAGZvD,IAAMwC,EAAAA,IAAalC,EAAgB2B,IAASD,GAAAA;AAKnD,YAJAsB,KAAKK,KAAKpD,GAASqD,cAAc5D,IAAMqD,GAAAA,GACvChD,EAAOwD,cAAcP,KAAKK,GAAGG,SA7gBd,MAghBX9B,OA/gBc,MA+gBSA,KAAwB;AACjD,gBAAM+B,MAAUT,KAAKK,GAAGG,QAAQE;AAChCD,UAAAA,IAAQE,YAAAA,GAAeF,IAAQG,UAAAA;QACjC;AAGA,eAAsC,UAA9B/C,MAAOd,EAAO8D,SAAAA,MAAwBZ,GAAMhB,SAASmB,MAAW;AACtE,cAAsB,MAAlBvC,IAAKiD,UAAgB;AAuBvB,gBAAKjD,IAAiBkD,cAAAA,EACpB,YAAWC,OAASnD,IAAiBoD,kBAAAA,EACnC,KAAID,IAAKE,SAASxF,EAAAA,GAAuB;AACvC,oBAAMyF,MAAWjC,GAAUiB,IAAAA,GAErBiB,MADSvD,IAAiBwD,aAAaL,GAAAA,EACvBM,MAAM3F,EAAAA,GACtB4F,MAAI,eAAe7B,KAAKyB,GAAAA;AAC9BlB,cAAAA,GAAMH,KAAK,EACTpB,MA/iBO,GAgjBP8C,OAAOtB,IACPc,MAAMO,IAAE,CAAA,GACR5C,SAASyC,KACTK,MACW,QAATF,IAAE,CAAA,IACElE,IACS,QAATkE,IAAE,CAAA,IACAjE,IACS,QAATiE,IAAE,CAAA,IACAhE,IACAH,EAAAA,CAAAA,GAEXS,IAAiB6D,gBAAgBV,GAAAA;YACpC,MAAWA,CAAAA,IAAKnB,WAAWlE,EAAAA,MACzBsE,GAAMH,KAAK,EACTpB,MA1jBK,GA2jBL8C,OAAOtB,GAAAA,CAAAA,GAERrC,IAAiB6D,gBAAgBV,GAAAA;AAMxC,gBAAIxE,GAAemD,KAAM9B,IAAiB8D,OAAAA,GAAU;AAIlD,oBAAMhD,MAAWd,IAAiB+D,YAAaN,MAAM3F,EAAAA,GAC/C8D,MAAYd,IAAQM,SAAS;AACnC,kBAAIQ,MAAY,GAAG;AAChB5B,gBAAAA,IAAiB+D,cAAcnG,KAC3BA,GAAaoG,cACd;AAGJ,yBAASxC,MAAI,GAAGA,MAAII,KAAWJ,MAC5BxB,CAAAA,IAAiBiE,OAAOnD,IAAQU,GAAAA,GAAItD,GAAAA,CAAAA,GAErCgB,EAAO8D,SAAAA,GACPZ,GAAMH,KAAK,EAACpB,MAvlBP,GAulByB8C,OAAAA,EAAStB,GAAAA,CAAAA;AAKxCrC,gBAAAA,IAAiBiE,OAAOnD,IAAQc,GAAAA,GAAY1D,GAAAA,CAAAA;cAC/C;YACF;UACF,WAA6B,MAAlB8B,IAAKiD,SAEd,KADcjD,IAAiBkE,SAClBnG,GACXqE,CAAAA,GAAMH,KAAK,EAACpB,MAlmBH,GAkmBqB8C,OAAOtB,GAAAA,CAAAA;eAChC;AACL,gBAAIb,MAAAA;AACJ,mBAAA,QAAQA,MAAKxB,IAAiBkE,KAAKC,QAAQrG,IAAQ0D,MAAI,CAAA,KAGrDY,CAAAA,GAAMH,KAAK,EAACpB,MAnmBH,GAmmBuB8C,OAAOtB,GAAAA,CAAAA,GAEvCb,OAAK1D,GAAOsD,SAAS;UAEzB;AAEFiB,UAAAA;QACF;MAkCF;MAIA,OAAA,cAAqBxD,IAAmBuF,KAAAA;AACtC,cAAM5B,MAAKvE,GAAEwE,cAAc,UAAA;AAE3B,eADAD,IAAG6B,YAAYxF,IACR2D;MACT;IAAA;AAmEF,IAAMnD,IAAN,MAAMA;MASJ,YAAYiF,IAAoBxH,KAAAA;AAPhCqF,aAAAoC,OAAmC,CAAA,GAKnCpC,KAAAqC,OAAAA,QAGErC,KAAKsC,OAAaH,IAClBnC,KAAKuC,OAAW5H;MAClB;MAGA,IAAA,aAAI6H;AACF,eAAOxC,KAAKuC,KAASC;MACvB;MAGA,IAAA,OAAIC;AACF,eAAOzC,KAAKuC,KAASE;MACvB;MAIA,EAAO1C,IAAAA;AACL,cAAA,EACEM,IAAAA,EAAIG,SAACA,IAAAA,GACLP,OAAOA,IAAAA,IACLD,KAAKsC,MACHI,OAAY3C,IAAS4C,iBAAiB7G,IAAG8G,WAAWpC,KAAAA,IAAS;AACnEzD,UAAOwD,cAAcmC;AAErB,YAAI7E,KAAOd,EAAO8D,SAAAA,GACdX,MAAY,GACZ2C,MAAY,GACZC,MAAe7C,IAAM,CAAA;AAEzB,eAAA,WAAO6C,OAA4B;AACjC,cAAI5C,QAAc4C,IAAatB,OAAO;AACpC,gBAAI/G;AArwBO,kBAswBPqI,IAAapE,OACfjE,MAAO,IAAI0C,EACTU,IACAA,GAAKkF,aACL/C,MACAD,EAAAA,IA5wBW,MA8wBJ+C,IAAapE,OACtBjE,MAAO,IAAIqI,IAAarB,KACtB5D,IACAiF,IAAa9B,MACb8B,IAAanE,SACbqB,MACAD,EAAAA,IA/wBS,MAixBF+C,IAAapE,SACtBjE,MAAO,IAAI+C,EAAYK,IAAqBmC,MAAMD,EAAAA,IAEpDC,KAAKoC,KAAQtC,KAAKrF,GAAAA,GAClBqI,MAAe7C,IAAAA,EAAQ4C,GAAAA;UACzB;AACI3C,UAAAA,QAAc4C,KAActB,UAC9B3D,KAAOd,EAAO8D,SAAAA,GACdX;QAEJ;AAKA,eADAnD,EAAOwD,cAAczE,IACd4G;MACT;MAEA,EAAQpH,IAAAA;AACN,YAAI+D,MAAI;AACR,mBAAW5E,OAAQuF,KAAKoC,KAAAA,YAClB3H,QAAAA,WAUGA,IAAuBkE,WACzBlE,IAAuBuI,KAAW1H,IAAQb,KAAuB4E,GAAAA,GAIlEA,OAAM5E,IAAuBkE,QAASM,SAAS,KAE/CxE,IAAKuI,KAAW1H,GAAO+D,GAAAA,CAAAA,IAG3BA;MAEJ;IAAA;AA8CF,IAAMlC,IAAN,MAAMA,GAAAA;MAwBJ,IAAA,OAAIsF;AAIF,eAAOzC,KAAKuC,MAAUE,QAAiBzC,KAAKiD;MAC9C;MAeA,YACEC,IACAC,KACAxI,KACAoF,KAAAA;AA/COC,aAAAtB,OA/2BQ,GAi3BjBsB,KAAAoD,OAA4BvG,GA+B5BmD,KAAAqC,OAAAA,QAgBErC,KAAKqD,OAAcH,IACnBlD,KAAKsD,OAAYH,KACjBnD,KAAKuC,OAAW5H,KAChBqF,KAAKD,UAAUA,KAIfC,KAAKiD,OAAgBlD,KAASwD,eAAAA;MAKhC;MAoBA,IAAA,aAAIf;AACF,YAAIA,KAAwBxC,KAAKqD,KAAab;AAC9C,cAAM7H,MAASqF,KAAKuC;AAUpB,eAAA,WARE5H,OACyB,OAAzB6H,IAAY1B,aAKZ0B,KAAc7H,IAAwC6H,aAEjDA;MACT;MAMA,IAAA,YAAIU;AACF,eAAOlD,KAAKqD;MACd;MAMA,IAAA,UAAIF;AACF,eAAOnD,KAAKsD;MACd;MAEA,KAAW5I,IAAgB8I,MAAmCxD,MAAAA;AAM5DtF,QAAAA,KAAQF,EAAiBwF,MAAMtF,IAAO8I,GAAAA,GAClCtI,GAAYR,EAAAA,IAIVA,OAAUmC,KAAoB,QAATnC,MAA2B,OAAVA,MACpCsF,KAAKoD,SAAqBvG,KAS5BmD,KAAKyD,KAAAA,GAEPzD,KAAKoD,OAAmBvG,KACfnC,OAAUsF,KAAKoD,QAAoB1I,OAAUG,KACtDmF,KAAK0D,EAAYhJ,EAAAA,IAAAA,WAGTA,GAAqC,aAC/CsF,KAAK2D,EAAsBjJ,EAAAA,IAAAA,WACjBA,GAAeoG,WAgBzBd,KAAK4D,EAAYlJ,EAAAA,IACRsB,GAAWtB,EAAAA,IACpBsF,KAAK6D,EAAgBnJ,EAAAA,IAGrBsF,KAAK0D,EAAYhJ,EAAAA;MAErB;MAEQ,EAAwBmD,IAAAA;AAC9B,eAAiBmC,KAAKqD,KAAab,WAAasB,aAC9CjG,IACAmC,KAAKsD,IAAAA;MAET;MAEQ,EAAY5I,IAAAA;AACdsF,aAAKoD,SAAqB1I,OAC5BsF,KAAKyD,KAAAA,GAoCLzD,KAAKoD,OAAmBpD,KAAK+D,EAAQrJ,EAAAA;MAEzC;MAEQ,EAAYA,IAAAA;AAKhBsF,aAAKoD,SAAqBvG,KAC1B3B,GAAY8E,KAAKoD,IAAAA,IAECpD,KAAKqD,KAAaN,YAcrBhB,OAAOrH,KAsBpBsF,KAAK4D,EAAY9H,GAAEkI,eAAetJ,EAAAA,CAAAA,GAUtCsF,KAAKoD,OAAmB1I;MAC1B;MAEQ,EACNuJ,IAAAA;AAGA,cAAA,EAAM3I,QAACA,KAAQsD,YAAgBF,IAAAA,IAAQuF,IAKjC9B,MACY,YAAA,OAATzD,MACHsB,KAAKkE,KAAcD,EAAAA,KAAAA,WAClBvF,IAAK2B,OACH3B,IAAK2B,KAAKpD,GAASqD,cAClBtG,EAAwB0E,IAAKyF,GAAGzF,IAAKyF,EAAE,CAAA,CAAA,GACvCnE,KAAKD,OAAAA,IAETrB;AAEN,YAAKsB,KAAKoD,MAAuCd,SAAeH,IAU7DnC,MAAKoD,KAAsCgB,EAAQ9I,GAAAA;aAC/C;AACL,gBAAM+I,MAAW,IAAInH,EAAiBiF,KAAsBnC,IAAAA,GACtD0C,MAAW2B,IAASC,EAAOtE,KAAKD,OAAAA;AAWtCsE,UAAAA,IAASD,EAAQ9I,GAAAA,GAWjB0E,KAAK4D,EAAYlB,GAAAA,GACjB1C,KAAKoD,OAAmBiB;QAC1B;MACF;MAIA,KAAcJ,IAAAA;AACZ,YAAI9B,MAAWrF,EAAcyH,IAAIN,GAAOtF,OAAAA;AAIxC,eAAA,WAHIwD,OACFrF,EAAc0H,IAAIP,GAAOtF,SAAUwD,MAAW,IAAIlF,GAASgH,EAAAA,CAAAA,GAEtD9B;MACT;MAEQ,EAAgBzH,IAAAA;AAWjBP,QAAAA,GAAQ6F,KAAKoD,IAAAA,MAChBpD,KAAKoD,OAAmB,CAAA,GACxBpD,KAAKyD,KAAAA;AAKP,cAAMgB,MAAYzE,KAAKoD;AACvB,YACIsB,KADA7B,MAAY;AAGhB,mBAAW8B,MAAQjK,GACbmI,CAAAA,QAAc4B,IAAUxF,SAK1BwF,IAAU3E,KACP4E,MAAW,IAAIvH,GACd6C,KAAK+D,EAAQhI,GAAAA,CAAAA,GACbiE,KAAK+D,EAAQhI,GAAAA,CAAAA,GACbiE,MACAA,KAAKD,OAAAA,CAAAA,IAKT2E,MAAWD,IAAU5B,GAAAA,GAEvB6B,IAAS1B,KAAW2B,EAAAA,GACpB9B;AAGEA,QAAAA,MAAY4B,IAAUxF,WAExBe,KAAKyD,KACHiB,OAAiBA,IAASpB,KAAYP,aACtCF,GAAAA,GAGF4B,IAAUxF,SAAS4D;MAEvB;MAaA,KACE+B,KAA+B5E,KAAKqD,KAAaN,aACjD8B,KAAAA;AAGA,aADA7E,KAAK8E,OAAAA,OAA4B,MAAaD,GAAAA,GACvCD,OAAU5E,KAAKsD,QAAW;AAI/B,gBAAMyB,MAAIvJ,GAAKoJ,EAAAA,EAAQ7B;AACvBvH,UAAAA,GAAKoJ,EAAAA,EAAQI,OAAAA,GACbJ,KAAQG;QACV;MACF;MASA,aAAaxB,IAAAA;AAAAA,mBACPvD,KAAKuC,SACPvC,KAAKiD,OAAgBM,IACrBvD,KAAK8E,OAA4BvB,EAAAA;MAOrC;IAAA;AA2BF,IAAMnG,IAAN,MAAMA;MA2BJ,IAAA,UAAIuE;AACF,eAAO3B,KAAKiF,QAAQtD;MACtB;MAGA,IAAA,OAAIc;AACF,eAAOzC,KAAKuC,KAASE;MACvB;MAEA,YACEwC,IACAjE,KACArC,KACAhE,KACAoF,IAAAA;AAxCOC,aAAAtB,OAp0CY,GAo1CrBsB,KAAAoD,OAA6CvG,GAM7CmD,KAAAqC,OAAAA,QAoBErC,KAAKiF,UAAUA,IACfjF,KAAKgB,OAAOA,KACZhB,KAAKuC,OAAW5H,KAChBqF,KAAKD,UAAUA,IACXpB,IAAQM,SAAS,KAAoB,OAAfN,IAAQ,CAAA,KAA4B,OAAfA,IAAQ,CAAA,KACrDqB,KAAKoD,OAAuB9E,MAAMK,IAAQM,SAAS,CAAA,EAAGiG,KAAK,IAAIC,QAAAA,GAC/DnF,KAAKrB,UAAUA,OAEfqB,KAAKoD,OAAmBvG;MAK5B;MAwBA,KACEnC,IACA8I,MAAmCxD,MACnCoF,KACAC,KAAAA;AAEA,cAAM1G,KAAUqB,KAAKrB;AAGrB,YAAI2G,MAAAA;AAEJ,YAAA,WAAI3G,GAEFjE,CAAAA,KAAQF,EAAiBwF,MAAMtF,IAAO8I,KAAiB,CAAA,GACvD8B,MAAAA,CACGpK,GAAYR,EAAAA,KACZA,OAAUsF,KAAKoD,QAAoB1I,OAAUG,GAC5CyK,QACFtF,KAAKoD,OAAmB1I;aAErB;AAEL,gBAAMY,MAASZ;AAGf,cAAI2E,KAAGkG;AACP,eAHA7K,KAAQiE,GAAQ,CAAA,GAGXU,MAAI,GAAGA,MAAIV,GAAQM,SAAS,GAAGI,MAClCkG,CAAAA,MAAI/K,EAAiBwF,MAAM1E,IAAO8J,MAAc/F,GAAAA,GAAImE,KAAiBnE,GAAAA,GAEjEkG,QAAM1K,MAER0K,MAAKvF,KAAKoD,KAAoC/D,GAAAA,IAEhDiG,QAAAA,CACGpK,GAAYqK,GAAAA,KAAMA,QAAOvF,KAAKoD,KAAoC/D,GAAAA,GACjEkG,QAAM1I,IACRnC,KAAQmC,IACCnC,OAAUmC,MACnBnC,OAAU6K,OAAK,MAAM5G,GAAQU,MAAI,CAAA,IAIlCW,KAAKoD,KAAoC/D,GAAAA,IAAKkG;QAEnD;AACID,QAAAA,OAAAA,CAAWD,OACbrF,KAAKwF,EAAa9K,EAAAA;MAEtB;MAGA,EAAaA,IAAAA;AACPA,QAAAA,OAAUmC,IACNmD,KAAKiF,QAAqBvD,gBAAgB1B,KAAKgB,IAAAA,IAoB/ChB,KAAKiF,QAAqBQ,aAC9BzF,KAAKgB,MACJtG,MAAS,EAAA;MAGhB;IAAA;AAIF,IAAM2C,IAAN,cAA2BD,EAAAA;MAA3B,cAAAjC;AAAAA,cAAAA,GAAAA,SAAAA,GACoB6E,KAAAtB,OAp+CE;MA6/CtB;MAtBW,EAAahE,IAAAA;AAoBnBsF,aAAKiF,QAAgBjF,KAAKgB,IAAAA,IAAQtG,OAAUmC,IAAAA,SAAsBnC;MACrE;IAAA;AAIF,IAAM4C,IAAN,cAAmCF,EAAAA;MAAnC,cAAAjC;AAAAA,cAAAA,GAAAA,SAAAA,GACoB6E,KAAAtB,OAhgDW;MAihD/B;MAdW,EAAahE,IAAAA;AASdsF,aAAKiF,QAAqBS,gBAC9B1F,KAAKgB,MAAAA,CAAAA,CACHtG,MAASA,OAAUmC,CAAAA;MAEzB;IAAA;AAkBF,IAAMU,IAAN,cAAwBH,EAAAA;MAGtB,YACE6H,IACAjE,KACArC,KACAhE,KACAoF,IAAAA;AAEA4F,cAAMV,IAASjE,KAAMrC,KAAShE,KAAQoF,EAAAA,GATtBC,KAAAtB,OAliDD;MAojDjB;MAKS,KACPkH,IACApC,MAAmCxD,MAAAA;AAInC,aAFA4F,KACEpL,EAAiBwF,MAAM4F,IAAapC,KAAiB,CAAA,KAAM3G,OACzChC,EAClB;AAEF,cAAMgL,MAAc7F,KAAKoD,MAInB0C,MACHF,OAAgB/I,KAAWgJ,QAAgBhJ,KAC3C+I,GAAyCG,YACvCF,IAAyCE,WAC3CH,GAAyCI,SACvCH,IAAyCG,QAC3CJ,GAAyCK,YACvCJ,IAAyCI,SAIxCC,KACJN,OAAgB/I,MACfgJ,QAAgBhJ,KAAWiJ;AAa1BA,QAAAA,OACF9F,KAAKiF,QAAQkB,oBACXnG,KAAKgB,MACLhB,MACA6F,GAAAA,GAGAK,MACFlG,KAAKiF,QAAQmB,iBACXpG,KAAKgB,MACLhB,MACA4F,EAAAA,GAGJ5F,KAAKoD,OAAmBwC;MAC1B;MAEA,YAAYS,IAAAA;AAC2B,sBAAA,OAA1BrG,KAAKoD,OACdpD,KAAKoD,KAAiBkD,KAAKtG,KAAKD,SAASwG,QAAQvG,KAAKiF,SAASoB,EAAAA,IAE9DrG,KAAKoD,KAAyCoD,YAAYH,EAAAA;MAE/D;IAAA;AAIF,IAAM7I,IAAN,MAAMA;MAiBJ,YACSyH,IACPtK,KACAoF,KAAAA;AAFOC,aAAAiF,UAAAA,IAjBAjF,KAAAtB,OA3nDU,GAuoDnBsB,KAAAqC,OAAAA,QASErC,KAAKuC,OAAW5H,KAChBqF,KAAKD,UAAUA;MACjB;MAGA,IAAA,OAAI0C;AACF,eAAOzC,KAAKuC,KAASE;MACvB;MAEA,KAAW/H,IAAAA;AAQTF,UAAiBwF,MAAMtF,EAAAA;MACzB;IAAA;AAqBK,IAAM+C,IAAO,EAElBgJ,GAAuB/K,IACvBgL,GAAS/K,IACTgL,GAAc/K,IACdgL,GAzsDkB,GA0sDlBC,GAAkB7J,GAElB8J,GACAC,GAAa/K,IACbgL,GAAmBxM,GACnByM,GAAY9J,GACZ+J,GACAC,GAAuB7J,GACvB8J,GAAY7J,GACZ8J,GAAehK,GACfiK,GAAc9J,EAAAA,GAIVE,IAEFnC,GAAOgM;AACX7J,QAAkBT,IAAUE,CAAAA,IAI3B5B,GAAOiM,oBAAoB,CAAA,GAAI1H,KAAK,OAAA;AAoC9B,IAAMnC,IAAS,CACpBjD,IACA+M,KACA1H,QAAAA;AAUA,YAAM2H,MAAgB3H,KAAS4H,gBAAgBF;AAG/C,UAAIhN,KAAmBiN,IAAkC;AAUzD,UAAA,WAAIjN,IAAoB;AACtB,cAAM0I,MAAUpD,KAAS4H,gBAAgB;AAGxCD,QAAAA,IAAkC,aAAIjN,KAAO,IAAI0C,EAChDsK,IAAU3D,aAAa/H,GAAAA,GAAgBoH,GAAAA,GACvCA,KAAAA,QAEApD,OAAW,CAAA,CAAA;MAEf;AAWA,aAVAtF,GAAKuI,KAAWtI,EAAAA,GAUTD;IAAAA;;;;;ICtpEHmN,IAmCOC,IAwHPC,IAuBOC;;;;;;;AAzLb,IAOMH,KAASI;AAmCT,IAAOH,KAAP,cAA0BI,EAAAA;MAAhC,cAAAC;AAAAA,cAAAA,GAAAA,SAAAA,GAOWC,KAAAC,gBAA+B,EAACC,MAAMF,KAAAA,GAEvCA,KAAAG,OAAAA;MA8FV;MAzFqB,mBAAAC;AACjB,cAAMC,KAAaC,MAAMF,iBAAAA;AAOzB,eADAJ,KAAKC,cAAcM,iBAAiBF,GAAYG,YACzCH;MACT;MASmB,OAAOI,IAAAA;AAIxB,cAAMC,MAAQV,KAAKW,OAAAA;AACdX,aAAKY,eACRZ,KAAKC,cAAcY,cAAcb,KAAKa,cAExCP,MAAMQ,OAAOL,EAAAA,GACbT,KAAKG,OAAcQ,EAAOD,KAAOV,KAAKK,YAAYL,KAAKC,aAAAA;MACzD;MAsBS,oBAAAc;AACPT,cAAMS,kBAAAA,GACNf,KAAKG,MAAaa,aAAAA,IAAa;MACjC;MAqBS,uBAAAC;AACPX,cAAMW,qBAAAA,GACNjB,KAAKG,MAAaa,aAAAA,KAAa;MACjC;MASU,SAAAL;AACR,eAAOO;MACT;IAAA;AApGOxB,IAAAA,GAAgB,gBAAA,MA8GxBA,GAC2B,WAAA,IAAA,MAI5BD,GAAO0B,2BAA2B,EAACzB,YAAAA,GAAAA,CAAAA;AAGnC,IAAMC,KAEFF,GAAO2B;AACXzB,IAAAA,KAAkB,EAACD,YAAAA,GAAAA,CAAAA;AAoBZ,IAAME,KAAO,EAClByB,MAAuB,CACrBC,IACAC,KACAb,QAAAA;AAGCY,MAAAA,GAAWD,KAAsBE,KAAMb,GAAAA;IAAAA,GAG1Cc,MAAsBF,CAAAA,OAAoBA,GAAWE,KAAAA;AAAAA,KAKtD/B,GAAOgC,uBAAuB,CAAA,GAAIC,KAAK,OAAA;;;;;ICxQ3BC;;;AAVb,IAUaA,KAAAA;;;;;ACvBb;AAAA;AAAA;AAA8B;AAAiB;AAAwC;AAAA;AAAA;;;;;;;;ACAhF,QAAMC,OAAM,CAACC,UAAiB,UAAS;AAC5C,aAAO,GAAGA,OAAM,IAAI,2BAA2B,QAAQ,SAAS,CAACC,QAAK;AACpE,cAAMC,MAAK,KAAK,OAAM,IAAK,KAAM;AACjC,cAAMC,KAAIF,QAAM,MAAMC,MAAKA,MAAI,IAAO;AACtC,eAAOC,GAAE,SAAS,EAAE;MACtB,CAAC,CAAC;IACJ;AANa,YAAA,MAAGJ;;;;;ACUhB,IAAa,UAyCA;AAzCb;;AAAM,IAAO,WAAP,MAAe;MAMZ,QAAK;AACV,YAAI,KAAK,SAAS;AAChB,gBAAM,IAAI,MAAM,0BAA0B;QAC5C;AACA,aAAK,UAAU;MACjB;MAIA,IAAW,WAAQ;AACjB,YAAI,KAAK,WAAW;AAClB,iBAAO,KAAK,YAAY,KAAK;QAC/B,OAAO;AACL,iBAAO,KAAK,IAAG,IAAK,KAAK;QAC3B;MACF;MAEA,cAAA;AAlBO,aAAA,UAAU;AAmBf,aAAK,UAAU,IAAI,QAAW,CAACK,UAAS,WAAU;AAChD,eAAK,UAAU,CAAC,aAAgC;AAC9C,iBAAK,SAAS;AACd,iBAAK,YAAY,KAAK,IAAG;AACzB,YAAAA,SAAQ,QAAQ;UAClB;AACA,eAAK,SAAS,CAAC,WAAe;AAC5B,iBAAK,SAAS;AACd,iBAAK,YAAY,KAAK,IAAG;AACzB,mBAAO,MAAM;UACf;AACA,eAAK,YAAY,KAAK,IAAG;AACzB,eAAK,SAAS;QAChB,CAAC;MACH;;AAGK,IAAM,QAAQ,MAAQ;AAC3B,aAAO,IAAI,SAAQ;IACrB;;;;;ACrDA,IAEa,oBA2BA;AA7Bb;;;AAEM,IAAO,qBAAP,MAAyB;MAK7B,cAAA;AAJQ,aAAA,sBAAsC,CAAA;AACtC,aAAA,WAAW,MAAK;AACjB,aAAA,UAAU,KAAK,SAAS;AAG7B,mBAAW,YAAW;AACpB,iBAAO,KAAK,oBAAoB,SAAS,GAAG;AAC1C,kBAAM,gBAAgB,KAAK,oBAAoB,MAAK;AACpD,kBAAM;UACR;AACA,eAAK,SAAS,QAAO;QACvB,GAAG,CAAC;MACN;MAEO,WAAQ;AACb,cAAM,OAAO,MAAK;AAClB,aAAK,WAAW,KAAK,OAAO;AAC5B,eAAO;MACT;MAEO,WAAW,YAAwB;AACxC,aAAK,oBAAoB,KAAK,UAAU;MAC1C;;AAIK,IAAM,kBAAkB,MAAK;AAClC,aAAO,IAAI,mBAAkB;IAC/B;;;;;AC/BA;;;;;;;;;;;;;;IASa,iBAOA,iBAcA,KAcA,aAiBA,oBAOA,qBAoBA;AAxFb;;;AAEA;AACA;AAMO,IAAM,kBAAkB,CAAIC,WAAyB;AAC1D,aAAO,QAAQ,QAAQA,MAAK;IAC9B;AAKO,IAAM,kBAAkB,CAAC,QAAO;AACrC,aAAO,QAAQ,OAAO,GAAG;IAC3B;AAYO,IAAM,MAAM,OAAU,UAAe,gBAAkC;AAC5E,YAAM,eAA+B,CAAA;AACrC,YAAM,cAAc,CAAA;AACpB,iBAAW,QAAQ,UAAU;AAC3B,cAAM,UAAwB,YAAY,IAAI;AAC9C,qBAAa,KAAK,OAAO;AACzB,gBAAQ,KAAK,CAACC,OAAK;AACjB,sBAAY,KAAKA,EAAC;QACpB,CAAC;MACH;AACA,YAAM,QAAQ,IAAI,YAAY;AAC9B,aAAO;IACT;AAEO,IAAM,cAAc,OACzB,YACA,gBACA,YAAY,SACV;AACF,aAAO,IAAI,QAAW,CAACC,UAAS,WAAU;AACxC,mBAAW,MAAK;AACd,cAAI,WAAW;AACb,mBAAO,IAAI,MAAM,SAAS,CAAC;UAC7B,OAAO;AACL,YAAAA,SAAQ,IAAI;UACd;QACF,GAAG,cAAc;AACjB,mBAAW,KAAKA,UAAS,MAAM;MACjC,CAAC;IACH;AAEO,IAAM,qBAAqB,OAChC,YACA,iBAAiB,QACf;AACF,aAAO,YAAY,YAAY,gBAAgB,KAAK;IACtD;AAEO,IAAM,sBAAsB,OAAO,gBAAmC;AAC3E,YAAM,OAAO,MAAK;AAClB,iBAAW,cAAc,aAAa;AACpC,mBAAW,KAAK,CAAC,cAAa;AAC5B,cAAI,cAAc,MAAM;AACtB,iBAAK,QAAQ,IAAI;UACnB;QACF,CAAC;MACH;AACA,cAAQ,IAAI,WAAW,EAAE,KAAK,MAAK;AACjC,aAAK,QAAQ,KAAK;MACpB,CAAC;AACD,aAAO,KAAK;IACd;AAOO,IAAM,eAAe,CAC1B,OACc;AACd,aAAO,IAAI,QAAQ,CAACA,UAAS,WAAU;AACrC,WAAG,CAAC,KAAK,WAAU;AACjB,cAAI,KAAK;AACP,mBAAO,GAAG;UACZ,OAAO;AACL,YAAAA,SAAQ,MAAW;UACrB;QACF,CAAC;MACH,CAAC;IACH;;;;;ACpGA;;;;;;;ACuBO,SAAS,UAAUC,IAAGC,IAAG;AAC9B,MAAI,OAAOA,OAAM,cAAcA,OAAM;AACjC,UAAM,IAAI,UAAU,yBAAyB,OAAOA,EAAC,IAAI,+BAA+B;AAC5F,gBAAcD,IAAGC,EAAC;AAClB,WAAS,KAAK;AAAE,SAAK,cAAcD;AAAA,EAAG;AACtC,EAAAA,GAAE,YAAYC,OAAM,OAAO,OAAO,OAAOA,EAAC,KAAK,GAAG,YAAYA,GAAE,WAAW,IAAI,GAAG;AACpF;AAaO,SAAS,OAAOC,KAAGC,KAAG;AAC3B,MAAIC,KAAI,CAAC;AACT,WAASC,MAAKH,IAAG,KAAI,OAAO,UAAU,eAAe,KAAKA,KAAGG,EAAC,KAAKF,IAAE,QAAQE,EAAC,IAAI;AAC9E,IAAAD,GAAEC,EAAC,IAAIH,IAAEG,EAAC;AACd,MAAIH,OAAK,QAAQ,OAAO,OAAO,0BAA0B;AACrD,aAASI,MAAI,GAAGD,KAAI,OAAO,sBAAsBH,GAAC,GAAGI,MAAID,GAAE,QAAQC,OAAK;AACpE,UAAIH,IAAE,QAAQE,GAAEC,GAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAKJ,KAAGG,GAAEC,GAAC,CAAC;AACzE,QAAAF,GAAEC,GAAEC,GAAC,CAAC,IAAIJ,IAAEG,GAAEC,GAAC,CAAC;AAAA,IACxB;AACJ,SAAOF;AACT;AAEO,SAAS,WAAW,YAAY,QAAQG,MAAK,MAAM;AACxD,MAAIC,MAAI,UAAU,QAAQC,MAAID,MAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQD,IAAG,IAAI,MAAMP;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,CAAAS,MAAI,QAAQ,SAAS,YAAY,QAAQF,MAAK,IAAI;AAAA,MACxH,UAASD,MAAI,WAAW,SAAS,GAAGA,OAAK,GAAGA,MAAK,KAAIN,KAAI,WAAWM,GAAC,EAAG,CAAAG,OAAKD,MAAI,IAAIR,GAAES,GAAC,IAAID,MAAI,IAAIR,GAAE,QAAQO,MAAKE,GAAC,IAAIT,GAAE,QAAQO,IAAG,MAAME;AAChJ,SAAOD,MAAI,KAAKC,OAAK,OAAO,eAAe,QAAQF,MAAKE,GAAC,GAAGA;AAC9D;AAEO,SAAS,QAAQ,YAAY,WAAW;AAC7C,SAAO,SAAU,QAAQF,MAAK;AAAE,cAAU,QAAQA,MAAK,UAAU;AAAA,EAAG;AACtE;AAEO,SAAS,aAAa,MAAM,cAAc,YAAY,WAAW,cAAc,mBAAmB;AACvG,WAAS,OAAOG,IAAG;AAAE,QAAIA,OAAM,UAAU,OAAOA,OAAM,WAAY,OAAM,IAAI,UAAU,mBAAmB;AAAG,WAAOA;AAAA,EAAG;AACtH,MAAI,OAAO,UAAU,MAAMH,OAAM,SAAS,WAAW,QAAQ,SAAS,WAAW,QAAQ;AACzF,MAAI,SAAS,CAAC,gBAAgB,OAAO,UAAU,QAAQ,IAAI,OAAO,KAAK,YAAY;AACnF,MAAI,aAAa,iBAAiB,SAAS,OAAO,yBAAyB,QAAQ,UAAU,IAAI,IAAI,CAAC;AACtG,MAAII,IAAG,OAAO;AACd,WAASL,MAAI,WAAW,SAAS,GAAGA,OAAK,GAAGA,OAAK;AAC7C,QAAIM,WAAU,CAAC;AACf,aAASP,MAAK,UAAW,CAAAO,SAAQP,EAAC,IAAIA,OAAM,WAAW,CAAC,IAAI,UAAUA,EAAC;AACvE,aAASA,MAAK,UAAU,OAAQ,CAAAO,SAAQ,OAAOP,EAAC,IAAI,UAAU,OAAOA,EAAC;AACtE,IAAAO,SAAQ,iBAAiB,SAAUF,IAAG;AAAE,UAAI,KAAM,OAAM,IAAI,UAAU,wDAAwD;AAAG,wBAAkB,KAAK,OAAOA,MAAK,IAAI,CAAC;AAAA,IAAG;AAC5K,QAAI,UAAU,GAAG,WAAWJ,GAAC,GAAG,SAAS,aAAa,EAAE,KAAK,WAAW,KAAK,KAAK,WAAW,IAAI,IAAI,WAAWC,IAAG,GAAGK,QAAO;AAC7H,QAAI,SAAS,YAAY;AACrB,UAAI,WAAW,OAAQ;AACvB,UAAI,WAAW,QAAQ,OAAO,WAAW,SAAU,OAAM,IAAI,UAAU,iBAAiB;AACxF,UAAID,KAAI,OAAO,OAAO,GAAG,EAAG,YAAW,MAAMA;AAC7C,UAAIA,KAAI,OAAO,OAAO,GAAG,EAAG,YAAW,MAAMA;AAC7C,UAAIA,KAAI,OAAO,OAAO,IAAI,EAAG,cAAa,QAAQA,EAAC;AAAA,IACvD,WACSA,KAAI,OAAO,MAAM,GAAG;AACzB,UAAI,SAAS,QAAS,cAAa,QAAQA,EAAC;AAAA,UACvC,YAAWJ,IAAG,IAAII;AAAA,IAC3B;AAAA,EACJ;AACA,MAAI,OAAQ,QAAO,eAAe,QAAQ,UAAU,MAAM,UAAU;AACpE,SAAO;AACT;AAEO,SAASE,mBAAkB,SAAS,cAAcC,QAAO;AAC9D,MAAI,WAAW,UAAU,SAAS;AAClC,WAASR,MAAI,GAAGA,MAAI,aAAa,QAAQA,OAAK;AAC1C,IAAAQ,SAAQ,WAAW,aAAaR,GAAC,EAAE,KAAK,SAASQ,MAAK,IAAI,aAAaR,GAAC,EAAE,KAAK,OAAO;AAAA,EAC1F;AACA,SAAO,WAAWQ,SAAQ;AAC5B;AAEO,SAAS,UAAUC,IAAG;AAC3B,SAAO,OAAOA,OAAM,WAAWA,KAAI,GAAG,OAAOA,EAAC;AAChD;AAEO,SAAS,kBAAkBL,IAAG,MAAMM,SAAQ;AACjD,MAAI,OAAO,SAAS,SAAU,QAAO,KAAK,cAAc,IAAI,OAAO,KAAK,aAAa,GAAG,IAAI;AAC5F,SAAO,OAAO,eAAeN,IAAG,QAAQ,EAAE,cAAc,MAAM,OAAOM,UAAS,GAAG,OAAOA,SAAQ,KAAK,IAAI,IAAI,KAAK,CAAC;AACrH;AAEO,SAAS,WAAW,aAAa,eAAe;AACrD,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,QAAO,QAAQ,SAAS,aAAa,aAAa;AAC/H;AAEO,SAAS,UAAU,SAAS,YAAYC,IAAG,WAAW;AAC3D,WAAS,MAAMH,QAAO;AAAE,WAAOA,kBAAiBG,KAAIH,SAAQ,IAAIG,GAAE,SAAUC,UAAS;AAAE,MAAAA,SAAQJ,MAAK;AAAA,IAAG,CAAC;AAAA,EAAG;AAC3G,SAAO,KAAKG,OAAMA,KAAI,UAAU,SAAUC,UAAS,QAAQ;AACvD,aAAS,UAAUJ,QAAO;AAAE,UAAI;AAAE,aAAK,UAAU,KAAKA,MAAK,CAAC;AAAA,MAAG,SAASX,KAAG;AAAE,eAAOA,GAAC;AAAA,MAAG;AAAA,IAAE;AAC1F,aAAS,SAASW,QAAO;AAAE,UAAI;AAAE,aAAK,UAAU,OAAO,EAAEA,MAAK,CAAC;AAAA,MAAG,SAASX,KAAG;AAAE,eAAOA,GAAC;AAAA,MAAG;AAAA,IAAE;AAC7F,aAAS,KAAK,QAAQ;AAAE,aAAO,OAAOe,SAAQ,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK,EAAE,KAAK,WAAW,QAAQ;AAAA,IAAG;AAC7G,UAAM,YAAY,UAAU,MAAM,SAAS,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC;AAAA,EACxE,CAAC;AACH;AAEO,SAAS,YAAY,SAASC,OAAM;AACzC,MAAIR,KAAI,EAAE,OAAO,GAAG,MAAM,WAAW;AAAE,QAAIP,GAAE,CAAC,IAAI,EAAG,OAAMA,GAAE,CAAC;AAAG,WAAOA,GAAE,CAAC;AAAA,EAAG,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,GAAGM,IAAGU,IAAGhB,IAAGiB,KAAI,OAAO,QAAQ,OAAO,aAAa,aAAa,WAAW,QAAQ,SAAS;AAC/L,SAAOA,GAAE,OAAO,KAAK,CAAC,GAAGA,GAAE,OAAO,IAAI,KAAK,CAAC,GAAGA,GAAE,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,WAAW,eAAeA,GAAE,OAAO,QAAQ,IAAI,WAAW;AAAE,WAAO;AAAA,EAAM,IAAIA;AAC1J,WAAS,KAAKC,KAAG;AAAE,WAAO,SAAUC,IAAG;AAAE,aAAO,KAAK,CAACD,KAAGC,EAAC,CAAC;AAAA,IAAG;AAAA,EAAG;AACjE,WAAS,KAAK,IAAI;AACd,QAAIb,GAAG,OAAM,IAAI,UAAU,iCAAiC;AAC5D,WAAOW,OAAMA,KAAI,GAAG,GAAG,CAAC,MAAMV,KAAI,KAAKA,GAAG,KAAI;AAC1C,UAAID,KAAI,GAAGU,OAAMhB,KAAI,GAAG,CAAC,IAAI,IAAIgB,GAAE,QAAQ,IAAI,GAAG,CAAC,IAAIA,GAAE,OAAO,OAAOhB,KAAIgB,GAAE,QAAQ,MAAMhB,GAAE,KAAKgB,EAAC,GAAG,KAAKA,GAAE,SAAS,EAAEhB,KAAIA,GAAE,KAAKgB,IAAG,GAAG,CAAC,CAAC,GAAG,KAAM,QAAOhB;AAC3J,UAAIgB,KAAI,GAAGhB,GAAG,MAAK,CAAC,GAAG,CAAC,IAAI,GAAGA,GAAE,KAAK;AACtC,cAAQ,GAAG,CAAC,GAAG;AAAA,QACX,KAAK;AAAA,QAAG,KAAK;AAAG,UAAAA,KAAI;AAAI;AAAA,QACxB,KAAK;AAAG,UAAAO,GAAE;AAAS,iBAAO,EAAE,OAAO,GAAG,CAAC,GAAG,MAAM,MAAM;AAAA,QACtD,KAAK;AAAG,UAAAA,GAAE;AAAS,UAAAS,KAAI,GAAG,CAAC;AAAG,eAAK,CAAC,CAAC;AAAG;AAAA,QACxC,KAAK;AAAG,eAAKT,GAAE,IAAI,IAAI;AAAG,UAAAA,GAAE,KAAK,IAAI;AAAG;AAAA,QACxC;AACI,cAAI,EAAEP,KAAIO,GAAE,MAAMP,KAAIA,GAAE,SAAS,KAAKA,GAAEA,GAAE,SAAS,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI;AAAE,YAAAO,KAAI;AAAG;AAAA,UAAU;AAC3G,cAAI,GAAG,CAAC,MAAM,MAAM,CAACP,MAAM,GAAG,CAAC,IAAIA,GAAE,CAAC,KAAK,GAAG,CAAC,IAAIA,GAAE,CAAC,IAAK;AAAE,YAAAO,GAAE,QAAQ,GAAG,CAAC;AAAG;AAAA,UAAO;AACrF,cAAI,GAAG,CAAC,MAAM,KAAKA,GAAE,QAAQP,GAAE,CAAC,GAAG;AAAE,YAAAO,GAAE,QAAQP,GAAE,CAAC;AAAG,YAAAA,KAAI;AAAI;AAAA,UAAO;AACpE,cAAIA,MAAKO,GAAE,QAAQP,GAAE,CAAC,GAAG;AAAE,YAAAO,GAAE,QAAQP,GAAE,CAAC;AAAG,YAAAO,GAAE,IAAI,KAAK,EAAE;AAAG;AAAA,UAAO;AAClE,cAAIP,GAAE,CAAC,EAAG,CAAAO,GAAE,IAAI,IAAI;AACpB,UAAAA,GAAE,KAAK,IAAI;AAAG;AAAA,MACtB;AACA,WAAKQ,MAAK,KAAK,SAASR,EAAC;AAAA,IAC7B,SAASR,KAAG;AAAE,WAAK,CAAC,GAAGA,GAAC;AAAG,MAAAiB,KAAI;AAAA,IAAG,UAAE;AAAU,MAAAV,KAAIN,KAAI;AAAA,IAAG;AACzD,QAAI,GAAG,CAAC,IAAI,EAAG,OAAM,GAAG,CAAC;AAAG,WAAO,EAAE,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,QAAQ,MAAM,KAAK;AAAA,EACnF;AACF;AAcO,SAAS,aAAaoB,IAAGC,KAAG;AACjC,WAASpB,MAAKmB,GAAG,KAAInB,OAAM,aAAa,CAAC,OAAO,UAAU,eAAe,KAAKoB,KAAGpB,EAAC,EAAG,iBAAgBoB,KAAGD,IAAGnB,EAAC;AAC9G;AAEO,SAAS,SAASoB,KAAG;AAC1B,MAAIvB,MAAI,OAAO,WAAW,cAAc,OAAO,UAAUsB,KAAItB,OAAKuB,IAAEvB,GAAC,GAAGI,MAAI;AAC5E,MAAIkB,GAAG,QAAOA,GAAE,KAAKC,GAAC;AACtB,MAAIA,OAAK,OAAOA,IAAE,WAAW,SAAU,QAAO;AAAA,IAC1C,MAAM,WAAY;AACd,UAAIA,OAAKnB,OAAKmB,IAAE,OAAQ,CAAAA,MAAI;AAC5B,aAAO,EAAE,OAAOA,OAAKA,IAAEnB,KAAG,GAAG,MAAM,CAACmB,IAAE;AAAA,IAC1C;AAAA,EACJ;AACA,QAAM,IAAI,UAAUvB,MAAI,4BAA4B,iCAAiC;AACvF;AAEO,SAAS,OAAOuB,KAAGH,KAAG;AAC3B,MAAIE,KAAI,OAAO,WAAW,cAAcC,IAAE,OAAO,QAAQ;AACzD,MAAI,CAACD,GAAG,QAAOC;AACf,MAAInB,MAAIkB,GAAE,KAAKC,GAAC,GAAGhB,KAAG,KAAK,CAAC,GAAGN;AAC/B,MAAI;AACA,YAAQmB,QAAM,UAAUA,QAAM,MAAM,EAAEb,MAAIH,IAAE,KAAK,GAAG,KAAM,IAAG,KAAKG,IAAE,KAAK;AAAA,EAC7E,SACO,OAAO;AAAE,IAAAN,MAAI,EAAE,MAAa;AAAA,EAAG,UACtC;AACI,QAAI;AACA,UAAIM,OAAK,CAACA,IAAE,SAASe,KAAIlB,IAAE,QAAQ,GAAI,CAAAkB,GAAE,KAAKlB,GAAC;AAAA,IACnD,UACA;AAAU,UAAIH,IAAG,OAAMA,IAAE;AAAA,IAAO;AAAA,EACpC;AACA,SAAO;AACT;AAGO,SAAS,WAAW;AACzB,WAAS,KAAK,CAAC,GAAGG,MAAI,GAAGA,MAAI,UAAU,QAAQA;AAC3C,SAAK,GAAG,OAAO,OAAO,UAAUA,GAAC,CAAC,CAAC;AACvC,SAAO;AACT;AAGO,SAAS,iBAAiB;AAC/B,WAASJ,MAAI,GAAGI,MAAI,GAAG,KAAK,UAAU,QAAQA,MAAI,IAAIA,MAAK,CAAAJ,OAAK,UAAUI,GAAC,EAAE;AAC7E,WAASG,MAAI,MAAMP,GAAC,GAAGwB,KAAI,GAAGpB,MAAI,GAAGA,MAAI,IAAIA;AACzC,aAASqB,KAAI,UAAUrB,GAAC,GAAGsB,KAAI,GAAG,KAAKD,GAAE,QAAQC,KAAI,IAAIA,MAAKF;AAC1D,MAAAjB,IAAEiB,EAAC,IAAIC,GAAEC,EAAC;AAClB,SAAOnB;AACT;AAEO,SAAS,cAAc,IAAIoB,OAAM,MAAM;AAC5C,MAAI,QAAQ,UAAU,WAAW,EAAG,UAASvB,MAAI,GAAGwB,KAAID,MAAK,QAAQ,IAAIvB,MAAIwB,IAAGxB,OAAK;AACjF,QAAI,MAAM,EAAEA,OAAKuB,QAAO;AACpB,UAAI,CAAC,GAAI,MAAK,MAAM,UAAU,MAAM,KAAKA,OAAM,GAAGvB,GAAC;AACnD,SAAGA,GAAC,IAAIuB,MAAKvB,GAAC;AAAA,IAClB;AAAA,EACJ;AACA,SAAO,GAAG,OAAO,MAAM,MAAM,UAAU,MAAM,KAAKuB,KAAI,CAAC;AACzD;AAEO,SAAS,QAAQN,IAAG;AACzB,SAAO,gBAAgB,WAAW,KAAK,IAAIA,IAAG,QAAQ,IAAI,QAAQA,EAAC;AACrE;AAEO,SAAS,iBAAiB,SAAS,YAAY,WAAW;AAC/D,MAAI,CAAC,OAAO,cAAe,OAAM,IAAI,UAAU,sCAAsC;AACrF,MAAIF,KAAI,UAAU,MAAM,SAAS,cAAc,CAAC,CAAC,GAAGf,KAAG,IAAI,CAAC;AAC5D,SAAOA,MAAI,OAAO,QAAQ,OAAO,kBAAkB,aAAa,gBAAgB,QAAQ,SAAS,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,UAAU,WAAW,GAAGA,IAAE,OAAO,aAAa,IAAI,WAAY;AAAE,WAAO;AAAA,EAAM,GAAGA;AACtN,WAAS,YAAYI,IAAG;AAAE,WAAO,SAAUa,IAAG;AAAE,aAAO,QAAQ,QAAQA,EAAC,EAAE,KAAKb,IAAG,MAAM;AAAA,IAAG;AAAA,EAAG;AAC9F,WAAS,KAAKY,KAAGZ,IAAG;AAAE,QAAIW,GAAEC,GAAC,GAAG;AAAE,MAAAhB,IAAEgB,GAAC,IAAI,SAAUC,IAAG;AAAE,eAAO,IAAI,QAAQ,SAAUI,IAAG1B,IAAG;AAAE,YAAE,KAAK,CAACqB,KAAGC,IAAGI,IAAG1B,EAAC,CAAC,IAAI,KAAK,OAAOqB,KAAGC,EAAC;AAAA,QAAG,CAAC;AAAA,MAAG;AAAG,UAAIb,GAAG,CAAAJ,IAAEgB,GAAC,IAAIZ,GAAEJ,IAAEgB,GAAC,CAAC;AAAA,IAAG;AAAA,EAAE;AACvK,WAAS,OAAOA,KAAGC,IAAG;AAAE,QAAI;AAAE,WAAKF,GAAEC,GAAC,EAAEC,EAAC,CAAC;AAAA,IAAG,SAASpB,KAAG;AAAE,aAAO,EAAE,CAAC,EAAE,CAAC,GAAGA,GAAC;AAAA,IAAG;AAAA,EAAE;AACjF,WAAS,KAAKM,KAAG;AAAE,IAAAA,IAAE,iBAAiB,UAAU,QAAQ,QAAQA,IAAE,MAAM,CAAC,EAAE,KAAK,SAAS,MAAM,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,GAAGA,GAAC;AAAA,EAAG;AACvH,WAAS,QAAQK,QAAO;AAAE,WAAO,QAAQA,MAAK;AAAA,EAAG;AACjD,WAAS,OAAOA,QAAO;AAAE,WAAO,SAASA,MAAK;AAAA,EAAG;AACjD,WAAS,OAAOJ,IAAGa,IAAG;AAAE,QAAIb,GAAEa,EAAC,GAAG,EAAE,MAAM,GAAG,EAAE,OAAQ,QAAO,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAAA,EAAG;AACnF;AAEO,SAAS,iBAAiBE,KAAG;AAClC,MAAInB,KAAGD;AACP,SAAOC,MAAI,CAAC,GAAG,KAAK,MAAM,GAAG,KAAK,SAAS,SAAUH,KAAG;AAAE,UAAMA;AAAA,EAAG,CAAC,GAAG,KAAK,QAAQ,GAAGG,IAAE,OAAO,QAAQ,IAAI,WAAY;AAAE,WAAO;AAAA,EAAM,GAAGA;AAC1I,WAAS,KAAKgB,KAAGZ,IAAG;AAAE,IAAAJ,IAAEgB,GAAC,IAAIG,IAAEH,GAAC,IAAI,SAAUC,IAAG;AAAE,cAAQlB,KAAI,CAACA,MAAK,EAAE,OAAO,QAAQoB,IAAEH,GAAC,EAAEC,EAAC,CAAC,GAAG,MAAM,MAAM,IAAIb,KAAIA,GAAEa,EAAC,IAAIA;AAAA,IAAG,IAAIb;AAAA,EAAG;AACvI;AAEO,SAAS,cAAce,KAAG;AAC/B,MAAI,CAAC,OAAO,cAAe,OAAM,IAAI,UAAU,sCAAsC;AACrF,MAAID,KAAIC,IAAE,OAAO,aAAa,GAAGnB;AACjC,SAAOkB,KAAIA,GAAE,KAAKC,GAAC,KAAKA,MAAI,OAAO,aAAa,aAAa,SAASA,GAAC,IAAIA,IAAE,OAAO,QAAQ,EAAE,GAAGnB,MAAI,CAAC,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,GAAGA,IAAE,OAAO,aAAa,IAAI,WAAY;AAAE,WAAO;AAAA,EAAM,GAAGA;AAC9M,WAAS,KAAKgB,KAAG;AAAE,IAAAhB,IAAEgB,GAAC,IAAIG,IAAEH,GAAC,KAAK,SAAUC,IAAG;AAAE,aAAO,IAAI,QAAQ,SAAUL,UAAS,QAAQ;AAAE,QAAAK,KAAIE,IAAEH,GAAC,EAAEC,EAAC,GAAG,OAAOL,UAAS,QAAQK,GAAE,MAAMA,GAAE,KAAK;AAAA,MAAG,CAAC;AAAA,IAAG;AAAA,EAAG;AAC/J,WAAS,OAAOL,UAAS,QAAQlB,IAAGuB,IAAG;AAAE,YAAQ,QAAQA,EAAC,EAAE,KAAK,SAASA,IAAG;AAAE,MAAAL,SAAQ,EAAE,OAAOK,IAAG,MAAMvB,GAAE,CAAC;AAAA,IAAG,GAAG,MAAM;AAAA,EAAG;AAC7H;AAEO,SAAS,qBAAqB,QAAQ+B,MAAK;AAChD,MAAI,OAAO,gBAAgB;AAAE,WAAO,eAAe,QAAQ,OAAO,EAAE,OAAOA,KAAI,CAAC;AAAA,EAAG,OAAO;AAAE,WAAO,MAAMA;AAAA,EAAK;AAC9G,SAAO;AACT;AAiBO,SAAS,aAAa,KAAK;AAChC,MAAI,OAAO,IAAI,WAAY,QAAO;AAClC,MAAI,SAAS,CAAC;AACd,MAAI,OAAO;AAAM,aAASL,KAAI,QAAQ,GAAG,GAAGpB,MAAI,GAAGA,MAAIoB,GAAE,QAAQpB,MAAK,KAAIoB,GAAEpB,GAAC,MAAM,UAAW,iBAAgB,QAAQ,KAAKoB,GAAEpB,GAAC,CAAC;AAAA;AAC/H,qBAAmB,QAAQ,GAAG;AAC9B,SAAO;AACT;AAEO,SAAS,gBAAgB,KAAK;AACnC,SAAQ,OAAO,IAAI,aAAc,MAAM,EAAE,SAAS,IAAI;AACxD;AAEO,SAAS,uBAAuB,UAAU,OAAO,MAAMI,IAAG;AAC/D,MAAI,SAAS,OAAO,CAACA,GAAG,OAAM,IAAI,UAAU,+CAA+C;AAC3F,MAAI,OAAO,UAAU,aAAa,aAAa,SAAS,CAACA,KAAI,CAAC,MAAM,IAAI,QAAQ,EAAG,OAAM,IAAI,UAAU,0EAA0E;AACjL,SAAO,SAAS,MAAMA,KAAI,SAAS,MAAMA,GAAE,KAAK,QAAQ,IAAIA,KAAIA,GAAE,QAAQ,MAAM,IAAI,QAAQ;AAC9F;AAEO,SAAS,uBAAuB,UAAU,OAAOI,QAAO,MAAMJ,IAAG;AACtE,MAAI,SAAS,IAAK,OAAM,IAAI,UAAU,gCAAgC;AACtE,MAAI,SAAS,OAAO,CAACA,GAAG,OAAM,IAAI,UAAU,+CAA+C;AAC3F,MAAI,OAAO,UAAU,aAAa,aAAa,SAAS,CAACA,KAAI,CAAC,MAAM,IAAI,QAAQ,EAAG,OAAM,IAAI,UAAU,yEAAyE;AAChL,SAAQ,SAAS,MAAMA,GAAE,KAAK,UAAUI,MAAK,IAAIJ,KAAIA,GAAE,QAAQI,SAAQ,MAAM,IAAI,UAAUA,MAAK,GAAIA;AACtG;AAEO,SAAS,sBAAsB,OAAO,UAAU;AACrD,MAAI,aAAa,QAAS,OAAO,aAAa,YAAY,OAAO,aAAa,WAAa,OAAM,IAAI,UAAU,wCAAwC;AACvJ,SAAO,OAAO,UAAU,aAAa,aAAa,QAAQ,MAAM,IAAI,QAAQ;AAC9E;AAEO,SAAS,wBAAwBkB,MAAKlB,QAAOmB,QAAO;AACzD,MAAInB,WAAU,QAAQA,WAAU,QAAQ;AACtC,QAAI,OAAOA,WAAU,YAAY,OAAOA,WAAU,WAAY,OAAM,IAAI,UAAU,kBAAkB;AACpG,QAAI,SAAS;AACb,QAAImB,QAAO;AACT,UAAI,CAAC,OAAO,aAAc,OAAM,IAAI,UAAU,qCAAqC;AACnF,gBAAUnB,OAAM,OAAO,YAAY;AAAA,IACrC;AACA,QAAI,YAAY,QAAQ;AACtB,UAAI,CAAC,OAAO,QAAS,OAAM,IAAI,UAAU,gCAAgC;AACzE,gBAAUA,OAAM,OAAO,OAAO;AAC9B,UAAImB,OAAO,SAAQ;AAAA,IACrB;AACA,QAAI,OAAO,YAAY,WAAY,OAAM,IAAI,UAAU,wBAAwB;AAC/E,QAAI,MAAO,WAAU,WAAW;AAAE,UAAI;AAAE,cAAM,KAAK,IAAI;AAAA,MAAG,SAAS9B,KAAG;AAAE,eAAO,QAAQ,OAAOA,GAAC;AAAA,MAAG;AAAA,IAAE;AACpG,IAAA6B,KAAI,MAAM,KAAK,EAAE,OAAOlB,QAAO,SAAkB,OAAOmB,OAAM,CAAC;AAAA,EACjE,WACSA,QAAO;AACd,IAAAD,KAAI,MAAM,KAAK,EAAE,OAAO,KAAK,CAAC;AAAA,EAChC;AACA,SAAOlB;AACT;AAOO,SAAS,mBAAmBkB,MAAK;AACtC,WAAS,KAAK7B,KAAG;AACf,IAAA6B,KAAI,QAAQA,KAAI,WAAW,IAAI,iBAAiB7B,KAAG6B,KAAI,OAAO,0CAA0C,IAAI7B;AAC5G,IAAA6B,KAAI,WAAW;AAAA,EACjB;AACA,MAAIvB,KAAGP,MAAI;AACX,WAASgC,QAAO;AACd,WAAOzB,MAAIuB,KAAI,MAAM,IAAI,GAAG;AAC1B,UAAI;AACF,YAAI,CAACvB,IAAE,SAASP,QAAM,EAAG,QAAOA,MAAI,GAAG8B,KAAI,MAAM,KAAKvB,GAAC,GAAG,QAAQ,QAAQ,EAAE,KAAKyB,KAAI;AACrF,YAAIzB,IAAE,SAAS;AACb,cAAI,SAASA,IAAE,QAAQ,KAAKA,IAAE,KAAK;AACnC,cAAIA,IAAE,MAAO,QAAOP,OAAK,GAAG,QAAQ,QAAQ,MAAM,EAAE,KAAKgC,OAAM,SAAS/B,KAAG;AAAE,iBAAKA,GAAC;AAAG,mBAAO+B,MAAK;AAAA,UAAG,CAAC;AAAA,QACxG,MACK,CAAAhC,OAAK;AAAA,MACZ,SACOC,KAAG;AACR,aAAKA,GAAC;AAAA,MACR;AAAA,IACF;AACA,QAAID,QAAM,EAAG,QAAO8B,KAAI,WAAW,QAAQ,OAAOA,KAAI,KAAK,IAAI,QAAQ,QAAQ;AAC/E,QAAIA,KAAI,SAAU,OAAMA,KAAI;AAAA,EAC9B;AACA,SAAOE,MAAK;AACd;AAEO,SAAS,iCAAiCC,OAAM,aAAa;AAClE,MAAI,OAAOA,UAAS,YAAY,WAAW,KAAKA,KAAI,GAAG;AACnD,WAAOA,MAAK,QAAQ,oDAAoD,SAAUX,IAAG,KAAKxB,IAAG,KAAK,IAAI;AAClG,aAAO,MAAM,cAAc,SAAS,QAAQA,OAAM,CAAC,OAAO,CAAC,MAAMwB,KAAKxB,KAAI,MAAM,MAAM,GAAG,YAAY,IAAI;AAAA,IAC7G,CAAC;AAAA,EACL;AACA,SAAOmC;AACT;AA7WA,IAgBI,eAeO,UAyHA,iBA2GP,oBAMA,SA8DA,kBAwCG;AA/WP;AAAA;AAgBA,IAAI,gBAAgB,SAASnC,IAAGC,IAAG;AACjC,sBAAgB,OAAO,kBAClB,EAAE,WAAW,CAAC,EAAE,aAAa,SAAS,SAAUD,IAAGC,IAAG;AAAE,QAAAD,GAAE,YAAYC;AAAA,MAAG,KAC1E,SAAUD,IAAGC,IAAG;AAAE,iBAASI,MAAKJ,GAAG,KAAI,OAAO,UAAU,eAAe,KAAKA,IAAGI,EAAC,EAAG,CAAAL,GAAEK,EAAC,IAAIJ,GAAEI,EAAC;AAAA,MAAG;AACpG,aAAO,cAAcL,IAAGC,EAAC;AAAA,IAC3B;AAUO,IAAI,WAAW,WAAW;AAC/B,iBAAW,OAAO,UAAU,SAASmC,UAAShC,IAAG;AAC7C,iBAASF,KAAGI,MAAI,GAAGgB,MAAI,UAAU,QAAQhB,MAAIgB,KAAGhB,OAAK;AACjD,UAAAJ,MAAI,UAAUI,GAAC;AACf,mBAASD,MAAKH,IAAG,KAAI,OAAO,UAAU,eAAe,KAAKA,KAAGG,EAAC,EAAG,CAAAD,GAAEC,EAAC,IAAIH,IAAEG,EAAC;AAAA,QAC/E;AACA,eAAOD;AAAA,MACX;AACA,aAAO,SAAS,MAAM,MAAM,SAAS;AAAA,IACvC;AAmDC;AAQA;AAIA;AAKA;AA4CM,IAAI,kBAAkB,OAAO,UAAU,SAASqB,KAAGD,IAAGE,IAAGW,KAAI;AAClE,UAAIA,QAAO,OAAW,CAAAA,MAAKX;AAC3B,UAAI,OAAO,OAAO,yBAAyBF,IAAGE,EAAC;AAC/C,UAAI,CAAC,SAAS,SAAS,OAAO,CAACF,GAAE,aAAa,KAAK,YAAY,KAAK,eAAe;AAC/E,eAAO,EAAE,YAAY,MAAM,KAAK,WAAW;AAAE,iBAAOA,GAAEE,EAAC;AAAA,QAAG,EAAE;AAAA,MAChE;AACA,aAAO,eAAeD,KAAGY,KAAI,IAAI;AAAA,IACnC,MAAM,SAASZ,KAAGD,IAAGE,IAAGW,KAAI;AAC1B,UAAIA,QAAO,OAAW,CAAAA,MAAKX;AAC3B,MAAAD,IAAEY,GAAE,IAAIb,GAAEE,EAAC;AAAA,IACb;AA+FC;AAED,IAAI,qBAAqB,OAAO,UAAU,SAASD,KAAGF,IAAG;AACvD,aAAO,eAAeE,KAAG,WAAW,EAAE,YAAY,MAAM,OAAOF,GAAE,CAAC;AAAA,IACpE,KAAK,SAASE,KAAGF,IAAG;AAClB,MAAAE,IAAE,SAAS,IAAIF;AAAA,IACjB;AAEA,IAAI,UAAU,SAASE,KAAG;AACxB,gBAAU,OAAO,uBAAuB,SAAUA,KAAG;AACnD,YAAI,KAAK,CAAC;AACV,iBAASC,MAAKD,IAAG,KAAI,OAAO,UAAU,eAAe,KAAKA,KAAGC,EAAC,EAAG,IAAG,GAAG,MAAM,IAAIA;AACjF,eAAO;AAAA,MACT;AACA,aAAO,QAAQD,GAAC;AAAA,IAClB;AAuDA,IAAI,mBAAmB,OAAO,oBAAoB,aAAa,kBAAkB,SAAU,OAAO,YAAYa,UAAS;AACrH,UAAInC,MAAI,IAAI,MAAMmC,QAAO;AACzB,aAAOnC,IAAE,OAAO,mBAAmBA,IAAE,QAAQ,OAAOA,IAAE,aAAa,YAAYA;AAAA,IACjF;AAqCA,IAAO,oBAAQ;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAAU;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AC5YM,SAAU,WAAW0B,QAAU;AACnC,SAAO,OAAOA,WAAU;AAC1B;AAFA;;;;;;ACKM,SAAU,iBAAoB,YAAgC;AAClE,MAAM,SAAS,SAAC,UAAa;AAC3B,UAAM,KAAK,QAAQ;AACnB,aAAS,QAAQ,IAAI,MAAK,EAAG;EAC/B;AAEA,MAAM,WAAW,WAAW,MAAM;AAClC,WAAS,YAAY,OAAO,OAAO,MAAM,SAAS;AAClD,WAAS,UAAU,cAAc;AACjC,SAAO;AACT;AAVA;;;;;;ACTA,IAkBa;AAlBb;;;AAkBO,IAAM,sBAA+C,iBAC1D,SAAC,QAAM;AACL,aAAA,SAAS,wBAAmC,QAA0B;AACpE,eAAO,IAAI;AACX,aAAK,UAAU,SACR,OAAO,SAAM,8CACxB,OAAO,IAAI,SAAC,KAAKC,KAAC;AAAK,iBAAGA,MAAI,IAAC,OAAK,IAAI,SAAQ;QAAzB,CAA6B,EAAE,KAAK,MAAM,IACzD;AACJ,aAAK,OAAO;AACZ,aAAK,SAAS;MAChB;IARA,CAQC;;;;;ACvBC,SAAU,UAAa,KAA6B,MAAO;AAC/D,MAAI,KAAK;AACP,QAAMC,SAAQ,IAAI,QAAQ,IAAI;AAC9B,SAAKA,UAAS,IAAI,OAAOA,QAAO,CAAC;;AAErC;AALA;;;;;;ACiMM,SAAU,eAAeC,QAAU;AACvC,SACEA,kBAAiB,gBAChBA,UAAS,YAAYA,UAAS,WAAWA,OAAM,MAAM,KAAK,WAAWA,OAAM,GAAG,KAAK,WAAWA,OAAM,WAAW;AAEpH;AAEA,SAAS,cAAc,WAAwC;AAC7D,MAAI,WAAW,SAAS,GAAG;AACzB,cAAS;SACJ;AACL,cAAU,YAAW;;AAEzB;IApMA,cAqLa;;;;AApMb;AACA;AAEA;AAYA,IAAA,gBAAA,WAAA;AAwBE,eAAAC,cAAoB,iBAA4B;AAA5B,aAAA,kBAAA;AAdb,aAAA,SAAS;AAER,aAAA,aAAmD;AAMnD,aAAA,cAAqD;MAMV;AAOnD,MAAAA,cAAA,UAAA,cAAA,WAAA;;AACE,YAAI;AAEJ,YAAI,CAAC,KAAK,QAAQ;AAChB,eAAK,SAAS;AAGN,cAAA,aAAe,KAAI;AAC3B,cAAI,YAAY;AACd,iBAAK,aAAa;AAClB,gBAAI,MAAM,QAAQ,UAAU,GAAG;;AAC7B,yBAAqB,eAAA,SAAA,UAAU,GAAA,iBAAA,aAAA,KAAA,GAAA,CAAA,eAAA,MAAA,iBAAA,aAAA,KAAA,GAAE;AAA5B,sBAAM,WAAM,eAAA;AACf,2BAAO,OAAO,IAAI;;;;;;;;;;;mBAEf;AACL,yBAAW,OAAO,IAAI;;;AAIlB,cAAiB,mBAAqB,KAAI;AAClD,cAAI,WAAW,gBAAgB,GAAG;AAChC,gBAAI;AACF,+BAAgB;qBACTC,KAAG;AACV,uBAASA,eAAa,sBAAsBA,IAAE,SAAS,CAACA,GAAC;;;AAIrD,cAAA,cAAgB,KAAI;AAC5B,cAAI,aAAa;AACf,iBAAK,cAAc;;AACnB,uBAAwB,gBAAA,SAAA,WAAW,GAAA,kBAAA,cAAA,KAAA,GAAA,CAAA,gBAAA,MAAA,kBAAA,cAAA,KAAA,GAAE;AAAhC,oBAAM,YAAS,gBAAA;AAClB,oBAAI;AACF,gCAAc,SAAS;yBAChB,KAAK;AACZ,2BAAS,WAAM,QAAN,WAAM,SAAN,SAAU,CAAA;AACnB,sBAAI,eAAe,qBAAqB;AACtC,6BAAM,cAAA,cAAA,CAAA,GAAA,OAAO,MAAM,CAAA,GAAA,OAAK,IAAI,MAAM,CAAA;yBAC7B;AACL,2BAAO,KAAK,GAAG;;;;;;;;;;;;;;AAMvB,cAAI,QAAQ;AACV,kBAAM,IAAI,oBAAoB,MAAM;;;MAG1C;AAoBA,MAAAD,cAAA,UAAA,MAAA,SAAI,UAAuB;;AAGzB,YAAI,YAAY,aAAa,MAAM;AACjC,cAAI,KAAK,QAAQ;AAGf,0BAAc,QAAQ;iBACjB;AACL,gBAAI,oBAAoBA,eAAc;AAGpC,kBAAI,SAAS,UAAU,SAAS,WAAW,IAAI,GAAG;AAChD;;AAEF,uBAAS,WAAW,IAAI;;AAE1B,aAAC,KAAK,eAAcE,OAAA,KAAK,iBAAW,QAAAA,SAAA,SAAAA,OAAI,CAAA,GAAI,KAAK,QAAQ;;;MAG/D;AAOQ,MAAAF,cAAA,UAAA,aAAR,SAAmB,QAAoB;AAC7B,YAAA,aAAe,KAAI;AAC3B,eAAO,eAAe,UAAW,MAAM,QAAQ,UAAU,KAAK,WAAW,SAAS,MAAM;MAC1F;AASQ,MAAAA,cAAA,UAAA,aAAR,SAAmB,QAAoB;AAC7B,YAAA,aAAe,KAAI;AAC3B,aAAK,aAAa,MAAM,QAAQ,UAAU,KAAK,WAAW,KAAK,MAAM,GAAG,cAAc,aAAa,CAAC,YAAY,MAAM,IAAI;MAC5H;AAMQ,MAAAA,cAAA,UAAA,gBAAR,SAAsB,QAAoB;AAChC,YAAA,aAAe,KAAI;AAC3B,YAAI,eAAe,QAAQ;AACzB,eAAK,aAAa;mBACT,MAAM,QAAQ,UAAU,GAAG;AACpC,oBAAU,YAAY,MAAM;;MAEhC;AAgBA,MAAAA,cAAA,UAAA,SAAA,SAAO,UAAsC;AACnC,YAAA,cAAgB,KAAI;AAC5B,uBAAe,UAAU,aAAa,QAAQ;AAE9C,YAAI,oBAAoBA,eAAc;AACpC,mBAAS,cAAc,IAAI;;MAE/B;AAjLc,MAAAA,cAAA,SAAS,WAAA;AACrB,YAAMG,SAAQ,IAAIH,cAAY;AAC9B,QAAAG,OAAM,SAAS;AACf,eAAOA;MACT,GAAE;AA8KJ,aAAAH;OAnLA;AAqLO,IAAM,qBAAqB,aAAa;;;;;AC7L/C,IAAa;AAAb;;AAAO,IAAM,SAAuB;MAClC,kBAAkB;MAClB,uBAAuB;MACvB,SAAS;MACT,uCAAuC;MACvC,0BAA0B;;;;;;ICGf;;;;AAAN,IAAM,kBAAmC;MAG9C,YAAA,SAAWI,UAAqBC,UAAgB;AAAE,YAAA,OAAA,CAAA;iBAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAO;AAAP,eAAA,KAAA,CAAA,IAAA,UAAA,EAAA;;AACxC,YAAA,WAAa,gBAAe;AACpC,YAAI,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,YAAY;AACxB,iBAAO,SAAS,WAAU,MAAnB,UAAQ,cAAA,CAAYD,UAASC,QAAO,GAAA,OAAK,IAAI,CAAA,CAAA;;AAEtD,eAAO,WAAU,MAAA,QAAA,cAAA,CAACD,UAASC,QAAO,GAAA,OAAK,IAAI,CAAA,CAAA;MAC7C;MACA,cAAA,SAAaC,SAAM;AACT,YAAA,WAAa,gBAAe;AACpC,iBAAQ,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,iBAAgB,cAAcA,OAAa;MAC/D;MACA,UAAU;;;;;;ACjBN,SAAU,qBAAqB,KAAQ;AAC3C,kBAAgB,WAAW,WAAA;AACjB,QAAA,mBAAqB,OAAM;AACnC,QAAI,kBAAkB;AAEpB,uBAAiB,GAAG;WACf;AAEL,YAAM;;EAEV,CAAC;AACH;AAvBA;;;AACA;;;;;ACAM,SAAU,OAAI;AAAK;AAAzB;;;;;;ACaM,SAAU,kBAAkB,OAAU;AAC1C,SAAO,mBAAmB,KAAK,QAAW,KAAK;AACjD;AAOM,SAAU,iBAAoBC,QAAQ;AAC1C,SAAO,mBAAmB,KAAKA,QAAO,MAAS;AACjD;AAQM,SAAU,mBAAmB,MAAuBA,QAAY,OAAU;AAC9E,SAAO;IACL;IACA,OAAKA;IACL;;AAEJ;AAhCA,IAAa;AAAb;;AAAO,IAAM,yBAAyB,WAAA;AAAM,aAAA,mBAAmB,KAAK,QAAW,MAAS;IAA5C,GAAsE;;;;;ACI5G,SAAU,aAAa,IAAc;AACzC,MAAI,OAAO,uCAAuC;AAChD,QAAM,SAAS,CAAC;AAChB,QAAI,QAAQ;AACV,gBAAU,EAAE,aAAa,OAAO,OAAO,KAAI;;AAE7C,OAAE;AACF,QAAI,QAAQ;AACJ,UAAAC,OAAyB,SAAvB,cAAWA,KAAA,aAAE,QAAKA,KAAA;AAC1B,gBAAU;AACV,UAAI,aAAa;AACf,cAAM;;;SAGL;AAGL,OAAE;;AAEN;AAMM,SAAU,aAAa,KAAQ;AACnC,MAAI,OAAO,yCAAyC,SAAS;AAC3D,YAAQ,cAAc;AACtB,YAAQ,QAAQ;;AAEpB;AAzCA,IAEI;AAFJ;;;AAEA,IAAI,UAAuD;;;;;ACyI3D,SAAS,KAAyC,IAAQ,SAAY;AACpE,SAAO,MAAM,KAAK,IAAI,OAAO;AAC/B;AAwFA,SAAS,qBAAqB,OAAU;AACtC,MAAI,OAAO,uCAAuC;AAChD,iBAAa,KAAK;SACb;AAGL,yBAAqB,KAAK;;AAE9B;AAQA,SAAS,oBAAoB,KAAQ;AACnC,QAAM;AACR;AAOA,SAAS,0BAA0B,cAA2C,YAA2B;AAC/F,MAAA,wBAA0B,OAAM;AACxC,2BAAyB,gBAAgB,WAAW,WAAA;AAAM,WAAA,sBAAsB,cAAc,UAAU;EAA9C,CAA+C;AAC3G;IA/OA,YAuHM,OAUN,kBAuCA,gBA8Ea;;;;AAxQb;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAUA,IAAA,cAAA,SAAA,QAAA;AAAmC,gBAAAC,aAAA,MAAA;AA4BjC,eAAAA,YAAY,aAA6C;AAAzD,YAAA,QACE,OAAA,KAAA,IAAA,KAAO;AATC,cAAA,YAAqB;AAU7B,YAAI,aAAa;AACf,gBAAK,cAAc;AAGnB,cAAI,eAAe,WAAW,GAAG;AAC/B,wBAAY,IAAI,KAAI;;eAEjB;AACL,gBAAK,cAAc;;;MAEvB;AAzBO,MAAAA,YAAA,SAAP,SAAiBC,OAAwB,OAA2B,UAAqB;AACvF,eAAO,IAAI,eAAeA,OAAM,OAAO,QAAQ;MACjD;AA+BA,MAAAD,YAAA,UAAA,OAAA,SAAKE,QAAQ;AACX,YAAI,KAAK,WAAW;AAClB,oCAA0B,iBAAiBA,MAAK,GAAG,IAAI;eAClD;AACL,eAAK,MAAMA,MAAM;;MAErB;AAQA,MAAAF,YAAA,UAAA,QAAA,SAAM,KAAS;AACb,YAAI,KAAK,WAAW;AAClB,oCAA0B,kBAAkB,GAAG,GAAG,IAAI;eACjD;AACL,eAAK,YAAY;AACjB,eAAK,OAAO,GAAG;;MAEnB;AAOA,MAAAA,YAAA,UAAA,WAAA,WAAA;AACE,YAAI,KAAK,WAAW;AAClB,oCAA0B,uBAAuB,IAAI;eAChD;AACL,eAAK,YAAY;AACjB,eAAK,UAAS;;MAElB;AAEA,MAAAA,YAAA,UAAA,cAAA,WAAA;AACE,YAAI,CAAC,KAAK,QAAQ;AAChB,eAAK,YAAY;AACjB,iBAAA,UAAM,YAAW,KAAA,IAAA;AACjB,eAAK,cAAc;;MAEvB;AAEU,MAAAA,YAAA,UAAA,QAAV,SAAgBE,QAAQ;AACtB,aAAK,YAAY,KAAKA,MAAK;MAC7B;AAEU,MAAAF,YAAA,UAAA,SAAV,SAAiB,KAAQ;AACvB,YAAI;AACF,eAAK,YAAY,MAAM,GAAG;;AAE1B,eAAK,YAAW;;MAEpB;AAEU,MAAAA,YAAA,UAAA,YAAV,WAAA;AACE,YAAI;AACF,eAAK,YAAY,SAAQ;;AAEzB,eAAK,YAAW;;MAEpB;AACF,aAAAA;IAAA,GAhHmC,YAAY;AAuH/C,IAAM,QAAQ,SAAS,UAAU;AAUjC,IAAA,oBAAA,WAAA;AACE,eAAAG,kBAAoB,iBAAqC;AAArC,aAAA,kBAAA;MAAwC;AAE5D,MAAAA,kBAAA,UAAA,OAAA,SAAKD,QAAQ;AACH,YAAA,kBAAoB,KAAI;AAChC,YAAI,gBAAgB,MAAM;AACxB,cAAI;AACF,4BAAgB,KAAKA,MAAK;mBACnB,OAAO;AACd,iCAAqB,KAAK;;;MAGhC;AAEA,MAAAC,kBAAA,UAAA,QAAA,SAAM,KAAQ;AACJ,YAAA,kBAAoB,KAAI;AAChC,YAAI,gBAAgB,OAAO;AACzB,cAAI;AACF,4BAAgB,MAAM,GAAG;mBAClB,OAAO;AACd,iCAAqB,KAAK;;eAEvB;AACL,+BAAqB,GAAG;;MAE5B;AAEA,MAAAA,kBAAA,UAAA,WAAA,WAAA;AACU,YAAA,kBAAoB,KAAI;AAChC,YAAI,gBAAgB,UAAU;AAC5B,cAAI;AACF,4BAAgB,SAAQ;mBACjB,OAAO;AACd,iCAAqB,KAAK;;;MAGhC;AACF,aAAAA;IAAA,GArCA;AAuCA,IAAA,kBAAA,SAAA,QAAA;AAAuC,gBAAAC,iBAAA,MAAA;AACrC,eAAAA,gBACE,gBACA,OACA,UAA8B;AAHhC,YAAA,QAKE,OAAA,KAAA,IAAA,KAAO;AAEP,YAAI;AACJ,YAAI,WAAW,cAAc,KAAK,CAAC,gBAAgB;AAGjD,4BAAkB;YAChB,MAAO,mBAAc,QAAd,mBAAc,SAAd,iBAAkB;YACzB,OAAO,UAAK,QAAL,UAAK,SAAL,QAAS;YAChB,UAAU,aAAQ,QAAR,aAAQ,SAAR,WAAY;;eAEnB;AAEL,cAAI;AACJ,cAAI,SAAQ,OAAO,0BAA0B;AAI3C,wBAAU,OAAO,OAAO,cAAc;AACtC,sBAAQ,cAAc,WAAA;AAAM,qBAAA,MAAK,YAAW;YAAhB;AAC5B,8BAAkB;cAChB,MAAM,eAAe,QAAQ,KAAK,eAAe,MAAM,SAAO;cAC9D,OAAO,eAAe,SAAS,KAAK,eAAe,OAAO,SAAO;cACjE,UAAU,eAAe,YAAY,KAAK,eAAe,UAAU,SAAO;;iBAEvE;AAEL,8BAAkB;;;AAMtB,cAAK,cAAc,IAAI,iBAAiB,eAAe;;MACzD;AACF,aAAAA;IAAA,GAzCuC,UAAU;AA8E1C,IAAM,iBAA6D;MACxE,QAAQ;MACR,MAAM;MACN,OAAO;MACP,UAAU;;;;;;ACtQZ,IAAa;AAAb;;AAAO,IAAM,cAA+B,WAAA;AAAM,aAAC,OAAO,WAAW,cAAc,OAAO,cAAe;IAAvD,GAAsE;;;;;ACoClH,SAAU,SAAYC,IAAI;AAC9B,SAAOA;AACT;AAFA;;;;;;ACmCM,SAAU,OAAI;AAAC,MAAA,MAAA,CAAA;WAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAsC;AAAtC,QAAA,EAAA,IAAA,UAAA,EAAA;;AACnB,SAAO,cAAc,GAAG;AAC1B;AAGM,SAAU,cAAoB,KAA+B;AACjE,MAAI,IAAI,WAAW,GAAG;AACpB,WAAO;;AAGT,MAAI,IAAI,WAAW,GAAG;AACpB,WAAO,IAAI,CAAC;;AAGd,SAAO,SAAS,MAAM,OAAQ;AAC5B,WAAO,IAAI,OAAO,SAAC,MAAW,IAAuB;AAAK,aAAA,GAAG,IAAI;IAAP,GAAU,KAAY;EAClF;AACF;AA9FA;;;;;;;AC4dA,SAAS,eAAe,aAA+C;;AACrE,UAAOC,OAAA,gBAAW,QAAX,gBAAW,SAAX,cAAe,OAAO,aAAO,QAAAA,SAAA,SAAAA,OAAI;AAC1C;AAEA,SAAS,WAAcC,QAAU;AAC/B,SAAOA,UAAS,WAAWA,OAAM,IAAI,KAAK,WAAWA,OAAM,KAAK,KAAK,WAAWA,OAAM,QAAQ;AAChG;AAEA,SAAS,aAAgBA,QAAU;AACjC,SAAQA,UAASA,kBAAiB,cAAgB,WAAWA,MAAK,KAAK,eAAeA,MAAK;AAC7F;AAreA,IAaA;AAbA;;;AACA;AAEA;AACA;AACA;AACA;AACA;AAMA,IAAA,cAAA,WAAA;AAiBE,eAAAC,YAAYC,YAA6E;AACvF,YAAIA,YAAW;AACb,eAAK,aAAaA;;MAEtB;AAwBA,MAAAD,YAAA,UAAA,OAAA,SAAQ,UAAyB;AAC/B,YAAME,cAAa,IAAIF,YAAU;AACjC,QAAAE,YAAW,SAAS;AACpB,QAAAA,YAAW,WAAW;AACtB,eAAOA;MACT;AA2IA,MAAAF,YAAA,UAAA,YAAA,SACE,gBACA,OACA,UAA8B;AAHhC,YAAA,QAAA;AAKE,YAAM,aAAa,aAAa,cAAc,IAAI,iBAAiB,IAAI,eAAe,gBAAgB,OAAO,QAAQ;AAErH,qBAAa,WAAA;AACL,cAAAF,OAAuB,OAArB,WAAQA,KAAA,UAAE,SAAMA,KAAA;AACxB,qBAAW,IACT,WAGI,SAAS,KAAK,YAAY,MAAM,IAChC,SAIA,MAAK,WAAW,UAAU,IAG1B,MAAK,cAAc,UAAU,CAAC;QAEtC,CAAC;AAED,eAAO;MACT;AAGU,MAAAE,YAAA,UAAA,gBAAV,SAAwB,MAAmB;AACzC,YAAI;AACF,iBAAO,KAAK,WAAW,IAAI;iBACpB,KAAK;AAIZ,eAAK,MAAM,GAAG;;MAElB;AA6DA,MAAAA,YAAA,UAAA,UAAA,SAAQG,OAA0B,aAAoC;AAAtE,YAAA,QAAA;AACE,sBAAc,eAAe,WAAW;AAExC,eAAO,IAAI,YAAkB,SAACC,UAAS,QAAM;AAC3C,cAAM,aAAa,IAAI,eAAkB;YACvC,MAAM,SAACL,QAAK;AACV,kBAAI;AACF,gBAAAI,MAAKJ,MAAK;uBACH,KAAK;AACZ,uBAAO,GAAG;AACV,2BAAW,YAAW;;YAE1B;YACA,OAAO;YACP,UAAUK;WACX;AACD,gBAAK,UAAU,UAAU;QAC3B,CAAC;MACH;AAGU,MAAAJ,YAAA,UAAA,aAAV,SAAqB,YAA2B;;AAC9C,gBAAOF,OAAA,KAAK,YAAM,QAAAA,SAAA,SAAA,SAAAA,KAAE,UAAU,UAAU;MAC1C;AAMA,MAAAE,YAAA,UAAC,UAAiB,IAAlB,WAAA;AACE,eAAO;MACT;AA4FA,MAAAA,YAAA,UAAA,OAAA,WAAA;AAAK,YAAA,aAAA,CAAA;iBAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAA2C;AAA3C,qBAAA,EAAA,IAAA,UAAA,EAAA;;AACH,eAAO,cAAc,UAAU,EAAE,IAAI;MACvC;AA4BA,MAAAA,YAAA,UAAA,YAAA,SAAU,aAAoC;AAA9C,YAAA,QAAA;AACE,sBAAc,eAAe,WAAW;AAExC,eAAO,IAAI,YAAY,SAACI,UAAS,QAAM;AACrC,cAAIL;AACJ,gBAAK,UACH,SAACM,IAAI;AAAK,mBAACN,SAAQM;UAAT,GACV,SAAC,KAAQ;AAAK,mBAAA,OAAO,GAAG;UAAV,GACd,WAAA;AAAM,mBAAAD,SAAQL,MAAK;UAAb,CAAc;QAExB,CAAC;MACH;AAraO,MAAAC,YAAA,SAAkC,SAAIC,YAAwD;AACnG,eAAO,IAAID,YAAcC,UAAS;MACpC;AAoaF,aAAAD;OArcA;;;;;ACNM,SAAU,QAAQ,QAAW;AACjC,SAAO,WAAW,WAAM,QAAN,WAAM,SAAA,SAAN,OAAQ,IAAI;AAChC;AAMM,SAAU,QACd,MAAqF;AAErF,SAAO,SAAC,QAAqB;AAC3B,QAAI,QAAQ,MAAM,GAAG;AACnB,aAAO,OAAO,KAAK,SAA+B,cAA2B;AAC3E,YAAI;AACF,iBAAO,KAAK,cAAc,IAAI;iBACvB,KAAK;AACZ,eAAK,MAAM,GAAG;;MAElB,CAAC;;AAEH,UAAM,IAAI,UAAU,wCAAwC;EAC9D;AACF;AA5BA;;;;;;;ACWM,SAAU,yBACd,aACA,QACA,YACA,SACA,YAAuB;AAEvB,SAAO,IAAI,mBAAmB,aAAa,QAAQ,YAAY,SAAS,UAAU;AACpF;IAMA;;;;AA5BA;AA4BA,IAAA,sBAAA,SAAA,QAAA;AAA2C,gBAAAM,qBAAA,MAAA;AAiBzC,eAAAA,oBACE,aACA,QACA,YACA,SACQ,YACA,mBAAiC;AAN3C,YAAA,QAoBE,OAAA,KAAA,MAAM,WAAW,KAAC;AAfV,cAAA,aAAA;AACA,cAAA,oBAAA;AAeR,cAAK,QAAQ,SACT,SAAuCC,QAAQ;AAC7C,cAAI;AACF,mBAAOA,MAAK;mBACL,KAAK;AACZ,wBAAY,MAAM,GAAG;;QAEzB,IACA,OAAA,UAAM;AACV,cAAK,SAAS,UACV,SAAuC,KAAQ;AAC7C,cAAI;AACF,oBAAQ,GAAG;mBACJC,MAAK;AAEZ,wBAAY,MAAMA,IAAG;;AAGrB,iBAAK,YAAW;;QAEpB,IACA,OAAA,UAAM;AACV,cAAK,YAAY,aACb,WAAA;AACE,cAAI;AACF,uBAAU;mBACH,KAAK;AAEZ,wBAAY,MAAM,GAAG;;AAGrB,iBAAK,YAAW;;QAEpB,IACA,OAAA,UAAM;;MACZ;AAEA,MAAAF,oBAAA,UAAA,cAAA,WAAA;;AACE,YAAI,CAAC,KAAK,qBAAqB,KAAK,kBAAiB,GAAI;AAC/C,cAAA,WAAW,KAAI;AACvB,iBAAA,UAAM,YAAW,KAAA,IAAA;AAEjB,WAAC,cAAUG,OAAA,KAAK,gBAAU,QAAAA,SAAA,SAAA,SAAAA,KAAA,KAAf,IAAI;;MAEnB;AACF,aAAAH;IAAA,GAnF2C,UAAU;;;;;ACoC/C,SAAU,WAAQ;AACtB,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,QAAI,aAAkC;AAErC,WAAe;AAEhB,QAAM,aAAa,yBAAyB,YAAY,QAAW,QAAW,QAAW,WAAA;AACvF,UAAI,CAAC,UAAW,OAAe,aAAa,KAAK,IAAI,EAAG,OAAe,WAAW;AAChF,qBAAa;AACb;;AA4BF,UAAM,mBAAoB,OAAe;AACzC,UAAM,OAAO;AACb,mBAAa;AAEb,UAAI,qBAAqB,CAAC,QAAQ,qBAAqB,OAAO;AAC5D,yBAAiB,YAAW;;AAG9B,iBAAW,YAAW;IACxB,CAAC;AAED,WAAO,UAAU,UAAU;AAE3B,QAAI,CAAC,WAAW,QAAQ;AACtB,mBAAc,OAAoC,QAAO;;EAE7D,CAAC;AACH;AAnHA;;;AACA;;;;;ICWA;;;;AAdA;AAEA;AACA;AACA;AACA;AASA,IAAA,yBAAA,SAAA,QAAA;AAA8C,gBAAAI,wBAAA,MAAA;AAgB5C,eAAAA,uBAAmB,QAAiC,gBAAgC;AAApF,YAAA,QACE,OAAA,KAAA,IAAA,KAAO;AADU,cAAA,SAAA;AAAiC,cAAA,iBAAA;AAf1C,cAAA,WAA8B;AAC9B,cAAA,YAAoB;AACpB,cAAA,cAAmC;AAkB3C,YAAI,QAAQ,MAAM,GAAG;AACnB,gBAAK,OAAO,OAAO;;;MAEvB;AAGU,MAAAA,uBAAA,UAAA,aAAV,SAAqB,YAAyB;AAC5C,eAAO,KAAK,WAAU,EAAG,UAAU,UAAU;MAC/C;AAEU,MAAAA,uBAAA,UAAA,aAAV,WAAA;AACE,YAAM,UAAU,KAAK;AACrB,YAAI,CAAC,WAAW,QAAQ,WAAW;AACjC,eAAK,WAAW,KAAK,eAAc;;AAErC,eAAO,KAAK;MACd;AAEU,MAAAA,uBAAA,UAAA,YAAV,WAAA;AACE,aAAK,YAAY;AACT,YAAA,cAAgB,KAAI;AAC5B,aAAK,WAAW,KAAK,cAAc;AACnC,wBAAW,QAAX,gBAAW,SAAA,SAAX,YAAa,YAAW;MAC1B;AAMA,MAAAA,uBAAA,UAAA,UAAA,WAAA;AAAA,YAAA,QAAA;AACE,YAAI,aAAa,KAAK;AACtB,YAAI,CAAC,YAAY;AACf,uBAAa,KAAK,cAAc,IAAI,aAAY;AAChD,cAAM,YAAU,KAAK,WAAU;AAC/B,qBAAW,IACT,KAAK,OAAO,UACV,yBACE,WACA,QACA,WAAA;AACE,kBAAK,UAAS;AACd,sBAAQ,SAAQ;UAClB,GACA,SAAC,KAAG;AACF,kBAAK,UAAS;AACd,sBAAQ,MAAM,GAAG;UACnB,GACA,WAAA;AAAM,mBAAA,MAAK,UAAS;UAAd,CAAgB,CACvB,CACF;AAGH,cAAI,WAAW,QAAQ;AACrB,iBAAK,cAAc;AACnB,yBAAa,aAAa;;;AAG9B,eAAO;MACT;AAMA,MAAAA,uBAAA,UAAA,WAAA,WAAA;AACE,eAAO,SAAmB,EAAG,IAAI;MACnC;AACF,aAAAA;IAAA,GAxF8C,UAAU;;;;;ACTxD,IAAa;AAAb;;AAAO,IAAM,+BAA6D;MACxE,KAAG,WAAA;AAGD,gBAAQ,6BAA6B,YAAY,aAAa,IAAG;MACnE;MACA,UAAU;;;;;;ICEC;;;;AAdb;AAcO,IAAM,yBAAiD;MAG5D,UAAA,SAAS,UAAQ;AACf,YAAI,UAAU;AACd,YAAI,SAAkD;AAC9C,YAAA,WAAa,uBAAsB;AAC3C,YAAI,UAAU;AACZ,oBAAU,SAAS;AACnB,mBAAS,SAAS;;AAEpB,YAAMC,UAAS,QAAQ,SAACC,YAAS;AAI/B,mBAAS;AACT,mBAASA,UAAS;QACpB,CAAC;AACD,eAAO,IAAI,aAAa,WAAA;AAAM,iBAAA,WAAM,QAAN,WAAM,SAAA,SAAN,OAASD,OAAM;QAAf,CAAgB;MAChD;MACA,uBAAqB,WAAA;AAAC,YAAA,OAAA,CAAA;iBAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAO;AAAP,eAAA,EAAA,IAAA,UAAA,EAAA;;AACZ,YAAA,WAAa,uBAAsB;AAC3C,iBAAQ,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,0BAAyB,uBAAsB,MAAA,QAAA,cAAA,CAAA,GAAA,OAAI,IAAI,CAAA,CAAA;MAC3E;MACA,sBAAoB,WAAA;AAAC,YAAA,OAAA,CAAA;iBAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAO;AAAP,eAAA,EAAA,IAAA,UAAA,EAAA;;AACX,YAAA,WAAa,uBAAsB;AAC3C,iBAAQ,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,yBAAwB,sBAAqB,MAAA,QAAA,cAAA,CAAA,GAAA,OAAI,IAAI,CAAA,CAAA;MACzE;MACA,UAAU;;;;;;ACgCN,SAAU,gBAAgB,mBAAqC;AACnE,SAAO,oBAAoB,uBAAuB,iBAAiB,IAAI;AACzE;AAMA,SAAS,uBAAuB,mBAAqC;AACnE,SAAO,IAAI,WAAmD,SAAC,YAAU;AAIvE,QAAM,WAAW,qBAAqB;AAMtC,QAAM,QAAQ,SAAS,IAAG;AAE1B,QAAI,KAAK;AACT,QAAM,MAAM,WAAA;AACV,UAAI,CAAC,WAAW,QAAQ;AACtB,aAAK,uBAAuB,sBAAsB,SAACE,YAAuC;AACxF,eAAK;AAQL,cAAMC,OAAM,SAAS,IAAG;AACxB,qBAAW,KAAK;YACd,WAAW,oBAAoBA,OAAMD;YACrC,SAASC,OAAM;WAChB;AACD,cAAG;QACL,CAAC;;IAEL;AAEA,QAAG;AAEH,WAAO,WAAA;AACL,UAAI,IAAI;AACN,+BAAuB,qBAAqB,EAAE;;IAElD;EACF,CAAC;AACH;AA7HA,IAmIM;AAnIN;;;AAEA;AACA;AAgIA,IAAM,2BAA2B,uBAAsB;;;;;ACnIvD,IAqBa;AArBb;;;AAqBO,IAAM,0BAAuD,iBAClE,SAAC,QAAM;AACL,aAAA,SAAS,8BAA2B;AAClC,eAAO,IAAI;AACX,aAAK,OAAO;AACZ,aAAK,UAAU;MACjB;IAJA,CAIC;;;;;ICXL,SA8IA;;;;AA7JA;AAEA;AAEA;AACA;AACA;AASA,IAAA,WAAA,SAAA,QAAA;AAAgC,gBAAAC,UAAA,MAAA;AAuB9B,eAAAA,WAAA;AAAA,YAAA,QAEE,OAAA,KAAA,IAAA,KAAO;AAxBT,cAAA,SAAS;AAED,cAAA,mBAAyC;AAGjD,cAAA,YAA2B,CAAA;AAE3B,cAAA,YAAY;AAEZ,cAAA,WAAW;AAEX,cAAA,cAAmB;;MAcnB;AAGA,MAAAA,SAAA,UAAA,OAAA,SAAQ,UAAwB;AAC9B,YAAM,UAAU,IAAI,iBAAiB,MAAM,IAAI;AAC/C,gBAAQ,WAAW;AACnB,eAAO;MACT;AAGU,MAAAA,SAAA,UAAA,iBAAV,WAAA;AACE,YAAI,KAAK,QAAQ;AACf,gBAAM,IAAI,wBAAuB;;MAErC;AAEA,MAAAA,SAAA,UAAA,OAAA,SAAKC,QAAQ;AAAb,YAAA,QAAA;AACE,qBAAa,WAAA;;AACX,gBAAK,eAAc;AACnB,cAAI,CAAC,MAAK,WAAW;AACnB,gBAAI,CAAC,MAAK,kBAAkB;AAC1B,oBAAK,mBAAmB,MAAM,KAAK,MAAK,SAAS;;;AAEnD,uBAAuB,KAAA,SAAA,MAAK,gBAAgB,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,GAAA,MAAA,KAAA,GAAA,KAAA,GAAE;AAAzC,oBAAM,WAAQ,GAAA;AACjB,yBAAS,KAAKA,MAAK;;;;;;;;;;;;QAGzB,CAAC;MACH;AAEA,MAAAD,SAAA,UAAA,QAAA,SAAM,KAAQ;AAAd,YAAA,QAAA;AACE,qBAAa,WAAA;AACX,gBAAK,eAAc;AACnB,cAAI,CAAC,MAAK,WAAW;AACnB,kBAAK,WAAW,MAAK,YAAY;AACjC,kBAAK,cAAc;AACX,gBAAA,YAAc,MAAI;AAC1B,mBAAO,UAAU,QAAQ;AACvB,wBAAU,MAAK,EAAI,MAAM,GAAG;;;QAGlC,CAAC;MACH;AAEA,MAAAA,SAAA,UAAA,WAAA,WAAA;AAAA,YAAA,QAAA;AACE,qBAAa,WAAA;AACX,gBAAK,eAAc;AACnB,cAAI,CAAC,MAAK,WAAW;AACnB,kBAAK,YAAY;AACT,gBAAA,YAAc,MAAI;AAC1B,mBAAO,UAAU,QAAQ;AACvB,wBAAU,MAAK,EAAI,SAAQ;;;QAGjC,CAAC;MACH;AAEA,MAAAA,SAAA,UAAA,cAAA,WAAA;AACE,aAAK,YAAY,KAAK,SAAS;AAC/B,aAAK,YAAY,KAAK,mBAAmB;MAC3C;AAEA,aAAA,eAAIA,SAAA,WAAA,YAAQ;aAAZ,WAAA;;AACE,mBAAOE,OAAA,KAAK,eAAS,QAAAA,SAAA,SAAA,SAAAA,KAAE,UAAS;QAClC;;;;AAGU,MAAAF,SAAA,UAAA,gBAAV,SAAwB,YAAyB;AAC/C,aAAK,eAAc;AACnB,eAAO,OAAA,UAAM,cAAa,KAAA,MAAC,UAAU;MACvC;AAGU,MAAAA,SAAA,UAAA,aAAV,SAAqB,YAAyB;AAC5C,aAAK,eAAc;AACnB,aAAK,wBAAwB,UAAU;AACvC,eAAO,KAAK,gBAAgB,UAAU;MACxC;AAGU,MAAAA,SAAA,UAAA,kBAAV,SAA0B,YAA2B;AAArD,YAAA,QAAA;AACQ,YAAAE,OAAqC,MAAnC,WAAQA,KAAA,UAAE,YAASA,KAAA,WAAE,YAASA,KAAA;AACtC,YAAI,YAAY,WAAW;AACzB,iBAAO;;AAET,aAAK,mBAAmB;AACxB,kBAAU,KAAK,UAAU;AACzB,eAAO,IAAI,aAAa,WAAA;AACtB,gBAAK,mBAAmB;AACxB,oBAAU,WAAW,UAAU;QACjC,CAAC;MACH;AAGU,MAAAF,SAAA,UAAA,0BAAV,SAAkC,YAA2B;AACrD,YAAAE,OAAuC,MAArC,WAAQA,KAAA,UAAE,cAAWA,KAAA,aAAE,YAASA,KAAA;AACxC,YAAI,UAAU;AACZ,qBAAW,MAAM,WAAW;mBACnB,WAAW;AACpB,qBAAW,SAAQ;;MAEvB;AAQA,MAAAF,SAAA,UAAA,eAAA,WAAA;AACE,YAAMG,cAAkB,IAAI,WAAU;AACtC,QAAAA,YAAW,SAAS;AACpB,eAAOA;MACT;AAxHO,MAAAH,SAAA,SAAkC,SAAI,aAA0B,QAAqB;AAC1F,eAAO,IAAI,iBAAoB,aAAa,MAAM;MACpD;AAuHF,aAAAA;OA5IgC,UAAU;AA8I1C,IAAA,oBAAA,SAAA,QAAA;AAAyC,gBAAAI,mBAAA,MAAA;AACvC,eAAAA,kBAES,aACP,QAAsB;AAHxB,YAAA,QAKE,OAAA,KAAA,IAAA,KAAO;AAHA,cAAA,cAAA;AAIP,cAAK,SAAS;;MAChB;AAEA,MAAAA,kBAAA,UAAA,OAAA,SAAKH,QAAQ;;AACX,SAAA,MAAAC,OAAA,KAAK,iBAAW,QAAAA,SAAA,SAAA,SAAAA,KAAE,UAAI,QAAA,OAAA,SAAA,SAAA,GAAA,KAAAA,MAAGD,MAAK;MAChC;AAEA,MAAAG,kBAAA,UAAA,QAAA,SAAM,KAAQ;;AACZ,SAAA,MAAAF,OAAA,KAAK,iBAAW,QAAAA,SAAA,SAAA,SAAAA,KAAE,WAAK,QAAA,OAAA,SAAA,SAAA,GAAA,KAAAA,MAAG,GAAG;MAC/B;AAEA,MAAAE,kBAAA,UAAA,WAAA,WAAA;;AACE,SAAA,MAAAF,OAAA,KAAK,iBAAW,QAAAA,SAAA,SAAA,SAAAA,KAAE,cAAQ,QAAA,OAAA,SAAA,SAAA,GAAA,KAAAA,IAAA;MAC5B;AAGU,MAAAE,kBAAA,UAAA,aAAV,SAAqB,YAAyB;;AAC5C,gBAAO,MAAAF,OAAA,KAAK,YAAM,QAAAA,SAAA,SAAA,SAAAA,KAAE,UAAU,UAAU,OAAC,QAAA,OAAA,SAAA,KAAI;MAC/C;AACF,aAAAE;IAAA,GA1ByC,OAAO;;;;;ICtJhD;;;;AARA;AAQA,IAAA,mBAAA,SAAA,QAAA;AAAwC,gBAAAC,kBAAA,MAAA;AACtC,eAAAA,iBAAoB,QAAS;AAA7B,YAAA,QACE,OAAA,KAAA,IAAA,KAAO;AADW,cAAA,SAAA;;MAEpB;AAEA,aAAA,eAAIA,iBAAA,WAAA,SAAK;aAAT,WAAA;AACE,iBAAO,KAAK,SAAQ;QACtB;;;;AAGU,MAAAA,iBAAA,UAAA,aAAV,SAAqB,YAAyB;AAC5C,YAAM,eAAe,OAAA,UAAM,WAAU,KAAA,MAAC,UAAU;AAChD,SAAC,aAAa,UAAU,WAAW,KAAK,KAAK,MAAM;AACnD,eAAO;MACT;AAEA,MAAAA,iBAAA,UAAA,WAAA,WAAA;AACQ,YAAAC,OAAoC,MAAlC,WAAQA,KAAA,UAAE,cAAWA,KAAA,aAAE,SAAMA,KAAA;AACrC,YAAI,UAAU;AACZ,gBAAM;;AAER,aAAK,eAAc;AACnB,eAAO;MACT;AAEA,MAAAD,iBAAA,UAAA,OAAA,SAAKE,QAAQ;AACX,eAAA,UAAM,KAAI,KAAA,MAAE,KAAK,SAASA,MAAM;MAClC;AACF,aAAAF;IAAA,GA5BwC,OAAO;;;;;ACF/C,IAAa;AAAb;;AAAO,IAAM,wBAA+C;MAC1D,KAAG,WAAA;AAGD,gBAAQ,sBAAsB,YAAY,MAAM,IAAG;MACrD;MACA,UAAU;;;;;;ICwBZ;;;;AApCA;AAIA;AAgCA,IAAA,iBAAA,SAAA,QAAA;AAAsC,gBAAAG,gBAAA,MAAA;AAUpC,eAAAA,eACU,aACA,aACA,oBAA6D;AAF7D,YAAA,gBAAA,QAAA;AAAA,wBAAA;QAAsB;AACtB,YAAA,gBAAA,QAAA;AAAA,wBAAA;QAAsB;AACtB,YAAA,uBAAA,QAAA;AAAA,+BAAA;QAA6D;AAHvE,YAAA,QAKE,OAAA,KAAA,IAAA,KAAO;AAJC,cAAA,cAAA;AACA,cAAA,cAAA;AACA,cAAA,qBAAA;AAZF,cAAA,UAA0B,CAAA;AAC1B,cAAA,sBAAsB;AAc5B,cAAK,sBAAsB,gBAAgB;AAC3C,cAAK,cAAc,KAAK,IAAI,GAAG,WAAW;AAC1C,cAAK,cAAc,KAAK,IAAI,GAAG,WAAW;;MAC5C;AAEA,MAAAA,eAAA,UAAA,OAAA,SAAKC,QAAQ;AACL,YAAAC,OAA+E,MAA7E,YAASA,KAAA,WAAE,UAAOA,KAAA,SAAE,sBAAmBA,KAAA,qBAAE,qBAAkBA,KAAA,oBAAE,cAAWA,KAAA;AAChF,YAAI,CAAC,WAAW;AACd,kBAAQ,KAAKD,MAAK;AAClB,WAAC,uBAAuB,QAAQ,KAAK,mBAAmB,IAAG,IAAK,WAAW;;AAE7E,aAAK,YAAW;AAChB,eAAA,UAAM,KAAI,KAAA,MAACA,MAAK;MAClB;AAGU,MAAAD,eAAA,UAAA,aAAV,SAAqB,YAAyB;AAC5C,aAAK,eAAc;AACnB,aAAK,YAAW;AAEhB,YAAM,eAAe,KAAK,gBAAgB,UAAU;AAE9C,YAAAE,OAAmC,MAAjC,sBAAmBA,KAAA,qBAAE,UAAOA,KAAA;AAGpC,YAAM,OAAO,QAAQ,MAAK;AAC1B,iBAASC,MAAI,GAAGA,MAAI,KAAK,UAAU,CAAC,WAAW,QAAQA,OAAK,sBAAsB,IAAI,GAAG;AACvF,qBAAW,KAAK,KAAKA,GAAC,CAAM;;AAG9B,aAAK,wBAAwB,UAAU;AAEvC,eAAO;MACT;AAEQ,MAAAH,eAAA,UAAA,cAAR,WAAA;AACQ,YAAAE,OAAoE,MAAlE,cAAWA,KAAA,aAAE,qBAAkBA,KAAA,oBAAE,UAAOA,KAAA,SAAE,sBAAmBA,KAAA;AAKrE,YAAM,sBAAsB,sBAAsB,IAAI,KAAK;AAC3D,sBAAc,YAAY,qBAAqB,QAAQ,UAAU,QAAQ,OAAO,GAAG,QAAQ,SAAS,kBAAkB;AAItH,YAAI,CAAC,qBAAqB;AACxB,cAAME,OAAM,mBAAmB,IAAG;AAClC,cAAIC,QAAO;AAGX,mBAASF,MAAI,GAAGA,MAAI,QAAQ,UAAW,QAAQA,GAAC,KAAgBC,MAAKD,OAAK,GAAG;AAC3E,YAAAE,QAAOF;;AAET,UAAAE,SAAQ,QAAQ,OAAO,GAAGA,QAAO,CAAC;;MAEtC;AACF,aAAAL;IAAA,GAzEsC,OAAO;;;;;IC7B7C;;;;AAPA;AAOA,IAAA,gBAAA,SAAA,QAAA;AAAqC,gBAAAM,eAAA,MAAA;AAArC,eAAAA,gBAAA;AAAA,YAAA,QAAA,WAAA,QAAA,OAAA,MAAA,MAAA,SAAA,KAAA;AACU,cAAA,SAAmB;AACnB,cAAA,YAAY;AACZ,cAAA,cAAc;;MA4BxB;AAzBY,MAAAA,cAAA,UAAA,0BAAV,SAAkC,YAAyB;AACnD,YAAAC,OAAuE,MAArE,WAAQA,KAAA,UAAE,YAASA,KAAA,WAAE,SAAMA,KAAA,QAAE,cAAWA,KAAA,aAAE,YAASA,KAAA,WAAE,cAAWA,KAAA;AACxE,YAAI,UAAU;AACZ,qBAAW,MAAM,WAAW;mBACnB,aAAa,aAAa;AACnC,uBAAa,WAAW,KAAK,MAAO;AACpC,qBAAW,SAAQ;;MAEvB;AAEA,MAAAD,cAAA,UAAA,OAAA,SAAKE,QAAQ;AACX,YAAI,CAAC,KAAK,WAAW;AACnB,eAAK,SAASA;AACd,eAAK,YAAY;;MAErB;AAEA,MAAAF,cAAA,UAAA,WAAA,WAAA;AACQ,YAAAC,OAAqC,MAAnC,YAASA,KAAA,WAAE,SAAMA,KAAA,QAAE,cAAWA,KAAA;AACtC,YAAI,CAAC,aAAa;AAChB,eAAK,cAAc;AACnB,uBAAa,OAAA,UAAM,KAAI,KAAA,MAAC,MAAO;AAC/B,iBAAA,UAAM,SAAQ,KAAA,IAAA;;MAElB;AACF,aAAAD;IAAA,GA/BqC,OAAO;;;;;ICS5C;;;;AAfA;AAeA,IAAA,UAAA,SAAA,QAAA;AAA+B,gBAAAG,SAAA,MAAA;AAC7B,eAAAA,QAAY,WAAsB,MAAmD;eACnF,OAAA,KAAA,IAAA,KAAO;MACT;AAWO,MAAAA,QAAA,UAAA,WAAP,SAAgB,OAAWC,QAAiB;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AAC1C,eAAO;MACT;AACF,aAAAD;IAAA,GAjB+B,YAAY;;;;;ICD9B;;;;AAAN,IAAM,mBAAqC;MAGhD,aAAA,SAAYE,UAAqBC,UAAgB;AAAE,YAAA,OAAA,CAAA;iBAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAO;AAAP,eAAA,KAAA,CAAA,IAAA,UAAA,EAAA;;AACzC,YAAA,WAAa,iBAAgB;AACrC,YAAI,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,aAAa;AACzB,iBAAO,SAAS,YAAW,MAApB,UAAQ,cAAA,CAAaD,UAASC,QAAO,GAAA,OAAK,IAAI,CAAA,CAAA;;AAEvD,eAAO,YAAW,MAAA,QAAA,cAAA,CAACD,UAASC,QAAO,GAAA,OAAK,IAAI,CAAA,CAAA;MAC9C;MACA,eAAA,SAAcC,SAAM;AACV,YAAA,WAAa,iBAAgB;AACrC,iBAAQ,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,kBAAiB,eAAeA,OAAa;MACjE;MACA,UAAU;;;;;;ICrBZ;;;;AARA;AAIA;AACA;AAGA,IAAA,eAAA,SAAA,QAAA;AAAoC,gBAAAC,cAAA,MAAA;AAOlC,eAAAA,aAAsB,WAAqC,MAAmD;AAA9G,YAAA,QACE,OAAA,KAAA,MAAM,WAAW,IAAI,KAAC;AADF,cAAA,YAAA;AAAqC,cAAA,OAAA;AAFjD,cAAA,UAAmB;;MAI7B;AAEO,MAAAA,aAAA,UAAA,WAAP,SAAgB,OAAWC,QAAiB;;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AAC1C,YAAI,KAAK,QAAQ;AACf,iBAAO;;AAIT,aAAK,QAAQ;AAEb,YAAM,KAAK,KAAK;AAChB,YAAM,YAAY,KAAK;AAuBvB,YAAI,MAAM,MAAM;AACd,eAAK,KAAK,KAAK,eAAe,WAAW,IAAIA,MAAK;;AAKpD,aAAK,UAAU;AAEf,aAAK,QAAQA;AAEb,aAAK,MAAKC,OAAA,KAAK,QAAE,QAAAA,SAAA,SAAAA,OAAI,KAAK,eAAe,WAAW,KAAK,IAAID,MAAK;AAElE,eAAO;MACT;AAEU,MAAAD,aAAA,UAAA,iBAAV,SAAyB,WAA2B,KAAmBC,QAAiB;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AACtF,eAAO,iBAAiB,YAAY,UAAU,MAAM,KAAK,WAAW,IAAI,GAAGA,MAAK;MAClF;AAEU,MAAAD,aAAA,UAAA,iBAAV,SAAyB,YAA4B,IAAkBC,QAAwB;AAAxB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAwB;AAE7F,YAAIA,UAAS,QAAQ,KAAK,UAAUA,UAAS,KAAK,YAAY,OAAO;AACnE,iBAAO;;AAIT,YAAI,MAAM,MAAM;AACd,2BAAiB,cAAc,EAAE;;AAGnC,eAAO;MACT;AAKO,MAAAD,aAAA,UAAA,UAAP,SAAe,OAAUC,QAAa;AACpC,YAAI,KAAK,QAAQ;AACf,iBAAO,IAAI,MAAM,8BAA8B;;AAGjD,aAAK,UAAU;AACf,YAAM,QAAQ,KAAK,SAAS,OAAOA,MAAK;AACxC,YAAI,OAAO;AACT,iBAAO;mBACE,KAAK,YAAY,SAAS,KAAK,MAAM,MAAM;AAcpD,eAAK,KAAK,KAAK,eAAe,KAAK,WAAW,KAAK,IAAI,IAAI;;MAE/D;AAEU,MAAAD,aAAA,UAAA,WAAV,SAAmB,OAAU,QAAc;AACzC,YAAI,UAAmB;AACvB,YAAI;AACJ,YAAI;AACF,eAAK,KAAK,KAAK;iBACRG,KAAG;AACV,oBAAU;AAIV,uBAAaA,MAAIA,MAAI,IAAI,MAAM,oCAAoC;;AAErE,YAAI,SAAS;AACX,eAAK,YAAW;AAChB,iBAAO;;MAEX;AAEA,MAAAH,aAAA,UAAA,cAAA,WAAA;AACE,YAAI,CAAC,KAAK,QAAQ;AACV,cAAAE,OAAoB,MAAlB,KAAEA,KAAA,IAAE,YAASA,KAAA;AACb,cAAA,UAAY,UAAS;AAE7B,eAAK,OAAO,KAAK,QAAQ,KAAK,YAAY;AAC1C,eAAK,UAAU;AAEf,oBAAU,SAAS,IAAI;AACvB,cAAI,MAAM,MAAM;AACd,iBAAK,KAAK,KAAK,eAAe,WAAW,IAAI,IAAI;;AAGnD,eAAK,QAAQ;AACb,iBAAA,UAAM,YAAW,KAAA,IAAA;;MAErB;AACF,aAAAF;IAAA,GA7IoC,MAAM;;;;;ACE1C,SAAS,mBAAmBI,SAAc;AACxC,MAAIA,WAAU,eAAe;AAC3B,WAAO,cAAcA,OAAM;AAC3B,WAAO;;AAET,SAAO;AACT;AAhBA,IAAI,YAEA,UACE,eAkBO,WAmBA;AAxCb;;IAAI,aAAa;AAGjB,IAAM,gBAAwC,CAAA;AAkBvC,IAAM,YAAY;MACvB,cAAA,SAAa,IAAc;AACzB,YAAMA,UAAS;AACf,sBAAcA,OAAM,IAAI;AACxB,YAAI,CAAC,UAAU;AACb,qBAAW,QAAQ,QAAO;;AAE5B,iBAAS,KAAK,WAAA;AAAM,iBAAA,mBAAmBA,OAAM,KAAK,GAAE;QAAhC,CAAkC;AACtD,eAAOA;MACT;MAEA,gBAAA,SAAeA,SAAc;AAC3B,2BAAmBA,OAAM;MAC3B;;AAMK,IAAM,YAAY;MACvB,SAAO,WAAA;AACL,eAAO,OAAO,KAAK,aAAa,EAAE;MACpC;;;;;;ICzCM,cAAc,gBAgBT;;;;AAlBb;AAEQ,IAAA,eAAiC,UAAS,cAA5B,iBAAmB,UAAS;AAgB3C,IAAM,oBAAuC;MAGlD,cAAY,WAAA;AAAC,YAAA,OAAA,CAAA;iBAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAO;AAAP,eAAA,EAAA,IAAA,UAAA,EAAA;;AACH,YAAA,WAAa,kBAAiB;AACtC,iBAAQ,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,iBAAgB,cAAa,MAAA,QAAA,cAAA,CAAA,GAAA,OAAI,IAAI,CAAA,CAAA;MACzD;MACA,gBAAA,SAAeC,SAAM;AACX,YAAA,WAAa,kBAAiB;AACtC,iBAAQ,aAAQ,QAAR,aAAQ,SAAA,SAAR,SAAU,mBAAkB,gBAAgBA,OAAa;MACnE;MACA,UAAU;;;;;;ICvBZ;;;;AANA;AAGA;AAGA,IAAA,cAAA,SAAA,QAAA;AAAmC,gBAAAC,aAAA,MAAA;AACjC,eAAAA,YAAsB,WAAoC,MAAmD;AAA7G,YAAA,QACE,OAAA,KAAA,MAAM,WAAW,IAAI,KAAC;AADF,cAAA,YAAA;AAAoC,cAAA,OAAA;;MAE1D;AAEU,MAAAA,YAAA,UAAA,iBAAV,SAAyB,WAA0B,IAAkBC,QAAiB;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AAEpF,YAAIA,WAAU,QAAQA,SAAQ,GAAG;AAC/B,iBAAO,OAAA,UAAM,eAAc,KAAA,MAAC,WAAW,IAAIA,MAAK;;AAGlD,kBAAU,QAAQ,KAAK,IAAI;AAI3B,eAAO,UAAU,eAAe,UAAU,aAAa,kBAAkB,aAAa,UAAU,MAAM,KAAK,WAAW,MAAS,CAAC;MAClI;AAEU,MAAAD,YAAA,UAAA,iBAAV,SAAyB,WAA0B,IAAkBC,QAAiB;;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AAIpF,YAAIA,UAAS,OAAOA,SAAQ,IAAI,KAAK,QAAQ,GAAG;AAC9C,iBAAO,OAAA,UAAM,eAAc,KAAA,MAAC,WAAW,IAAIA,MAAK;;AAK1C,YAAA,UAAY,UAAS;AAC7B,YAAI,MAAM,UAAQC,OAAA,QAAQ,QAAQ,SAAS,CAAC,OAAC,QAAAA,SAAA,SAAA,SAAAA,KAAE,QAAO,IAAI;AACxD,4BAAkB,eAAe,EAAE;AACnC,cAAI,UAAU,eAAe,IAAI;AAC/B,sBAAU,aAAa;;;AAI3B,eAAO;MACT;AACF,aAAAF;IAAA,GAtCmC,WAAW;;;;;ACH9C,IAoBA;AApBA;;;AAoBA,IAAA,aAAA,WAAA;AAGE,eAAAG,WAAoB,qBAAoCC,MAAiC;AAAjC,YAAAA,SAAA,QAAA;AAAA,UAAAA,OAAoBD,WAAU;QAAG;AAArE,aAAA,sBAAA;AAClB,aAAK,MAAMC;MACb;AA4BO,MAAAD,WAAA,UAAA,WAAP,SAAmB,MAAqDE,QAAmB,OAAS;AAA5B,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AACvF,eAAO,IAAI,KAAK,oBAAuB,MAAM,IAAI,EAAE,SAAS,OAAOA,MAAK;MAC1E;AAlCc,MAAAF,WAAA,MAAoB,sBAAsB;AAmC1D,aAAAA;OApCA;;;;;IClBA;;;;AALA;AAKA,IAAA,kBAAA,SAAA,QAAA;AAAoC,gBAAAG,iBAAA,MAAA;AAgBlC,eAAAA,gBAAY,iBAAgCC,MAAiC;AAAjC,YAAAA,SAAA,QAAA;AAAA,UAAAA,OAAoB,UAAU;QAAG;AAA7E,YAAA,QACE,OAAA,KAAA,MAAM,iBAAiBA,IAAG,KAAC;AAhBtB,cAAA,UAAmC,CAAA;AAMnC,cAAA,UAAmB;;MAW1B;AAEO,MAAAD,gBAAA,UAAA,QAAP,SAAa,QAAwB;AAC3B,YAAA,UAAY,KAAI;AAExB,YAAI,KAAK,SAAS;AAChB,kBAAQ,KAAK,MAAM;AACnB;;AAGF,YAAI;AACJ,aAAK,UAAU;AAEf,WAAG;AACD,cAAK,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,KAAK,GAAI;AACxD;;iBAEM,SAAS,QAAQ,MAAK;AAEhC,aAAK,UAAU;AAEf,YAAI,OAAO;AACT,iBAAQ,SAAS,QAAQ,MAAK,GAAM;AAClC,mBAAO,YAAW;;AAEpB,gBAAM;;MAEV;AACF,aAAAA;IAAA,GA9CoC,SAAS;;;;;ICF7C;;;;AAFA;AAEA,IAAA,iBAAA,SAAA,QAAA;AAAmC,gBAAAE,gBAAA,MAAA;AAAnC,eAAAA,iBAAA;;MAkCA;AAjCS,MAAAA,eAAA,UAAA,QAAP,SAAa,QAAyB;AACpC,aAAK,UAAU;AAUf,YAAM,UAAU,KAAK;AACrB,aAAK,aAAa;AAEV,YAAA,UAAY,KAAI;AACxB,YAAI;AACJ,iBAAS,UAAU,QAAQ,MAAK;AAEhC,WAAG;AACD,cAAK,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,KAAK,GAAI;AACxD;;kBAEM,SAAS,QAAQ,CAAC,MAAM,OAAO,OAAO,WAAW,QAAQ,MAAK;AAExE,aAAK,UAAU;AAEf,YAAI,OAAO;AACT,kBAAQ,SAAS,QAAQ,CAAC,MAAM,OAAO,OAAO,WAAW,QAAQ,MAAK,GAAI;AACxE,mBAAO,YAAW;;AAEpB,gBAAM;;MAEV;AACF,aAAAA;IAAA,GAlCmC,cAAc;;;;;ACHjD,IAsCa,eAKA;AA3Cb;;;AACA;AAqCO,IAAM,gBAAgB,IAAI,cAAc,UAAU;AAKlD,IAAM,OAAO;;;;;AC3CpB,IAkDa,gBAKA;AAvDb;;;AACA;AAiDO,IAAM,iBAAiB,IAAI,eAAe,WAAW;AAKrD,IAAM,QAAQ;;;;;ICjDrB;;;;AANA;AAMA,IAAA,eAAA,SAAA,QAAA;AAAoC,gBAAAC,cAAA,MAAA;AAClC,eAAAA,aAAsB,WAAqC,MAAmD;AAA9G,YAAA,QACE,OAAA,KAAA,MAAM,WAAW,IAAI,KAAC;AADF,cAAA,YAAA;AAAqC,cAAA,OAAA;;MAE3D;AAEO,MAAAA,aAAA,UAAA,WAAP,SAAgB,OAAWC,QAAiB;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AAC1C,YAAIA,SAAQ,GAAG;AACb,iBAAO,OAAA,UAAM,SAAQ,KAAA,MAAC,OAAOA,MAAK;;AAEpC,aAAK,QAAQA;AACb,aAAK,QAAQ;AACb,aAAK,UAAU,MAAM,IAAI;AACzB,eAAO;MACT;AAEO,MAAAD,aAAA,UAAA,UAAP,SAAe,OAAUC,QAAa;AACpC,eAAOA,SAAQ,KAAK,KAAK,SAAS,OAAA,UAAM,QAAO,KAAA,MAAC,OAAOA,MAAK,IAAI,KAAK,SAAS,OAAOA,MAAK;MAC5F;AAEU,MAAAD,aAAA,UAAA,iBAAV,SAAyB,WAA2B,IAAkBC,QAAiB;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AAKrF,YAAKA,UAAS,QAAQA,SAAQ,KAAOA,UAAS,QAAQ,KAAK,QAAQ,GAAI;AACrE,iBAAO,OAAA,UAAM,eAAc,KAAA,MAAC,WAAW,IAAIA,MAAK;;AAIlD,kBAAU,MAAM,IAAI;AAMpB,eAAO;MACT;AACF,aAAAD;IAAA,GArCoC,WAAW;;;;;ICJ/C;;;;AAFA;AAEA,IAAA,kBAAA,SAAA,QAAA;AAAoC,gBAAAE,iBAAA,MAAA;AAApC,eAAAA,kBAAA;;MACA;AAAA,aAAAA;IAAA,GADoC,cAAc;;;;;ACFlD,IAkEa,gBAKA;AAvEb;;;AACA;AAiEO,IAAM,iBAAiB,IAAI,eAAe,WAAW;AAKrD,IAAM,QAAQ;;;;;ICjErB;;;;AANA;AAGA;AAGA,IAAA,wBAAA,SAAA,QAAA;AAA6C,gBAAAC,uBAAA,MAAA;AAC3C,eAAAA,sBAAsB,WAA8C,MAAmD;AAAvH,YAAA,QACE,OAAA,KAAA,MAAM,WAAW,IAAI,KAAC;AADF,cAAA,YAAA;AAA8C,cAAA,OAAA;;MAEpE;AAEU,MAAAA,sBAAA,UAAA,iBAAV,SAAyB,WAAoC,IAAkBC,QAAiB;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AAE9F,YAAIA,WAAU,QAAQA,SAAQ,GAAG;AAC/B,iBAAO,OAAA,UAAM,eAAc,KAAA,MAAC,WAAW,IAAIA,MAAK;;AAGlD,kBAAU,QAAQ,KAAK,IAAI;AAI3B,eAAO,UAAU,eAAe,UAAU,aAAa,uBAAuB,sBAAsB,WAAA;AAAM,iBAAA,UAAU,MAAM,MAAS;QAAzB,CAA0B;MACtI;AAEU,MAAAD,sBAAA,UAAA,iBAAV,SAAyB,WAAoC,IAAkBC,QAAiB;;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AAI9F,YAAIA,UAAS,OAAOA,SAAQ,IAAI,KAAK,QAAQ,GAAG;AAC9C,iBAAO,OAAA,UAAM,eAAc,KAAA,MAAC,WAAW,IAAIA,MAAK;;AAK1C,YAAA,UAAY,UAAS;AAC7B,YAAI,MAAM,QAAQ,OAAO,UAAU,gBAAcC,OAAA,QAAQ,QAAQ,SAAS,CAAC,OAAC,QAAAA,SAAA,SAAA,SAAAA,KAAE,QAAO,IAAI;AACvF,iCAAuB,qBAAqB,EAAY;AACxD,oBAAU,aAAa;;AAGzB,eAAO;MACT;AACF,aAAAF;IAAA,GApC6C,WAAW;;;;;ICHxD;;;;AAFA;AAEA,IAAA,2BAAA,SAAA,QAAA;AAA6C,gBAAAG,0BAAA,MAAA;AAA7C,eAAAA,2BAAA;;MAuCA;AAtCS,MAAAA,yBAAA,UAAA,QAAP,SAAa,QAAyB;AACpC,aAAK,UAAU;AAUf,YAAI;AACJ,YAAI,QAAQ;AACV,oBAAU,OAAO;eACZ;AACL,oBAAU,KAAK;AACf,eAAK,aAAa;;AAGZ,YAAA,UAAY,KAAI;AACxB,YAAI;AACJ,iBAAS,UAAU,QAAQ,MAAK;AAEhC,WAAG;AACD,cAAK,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,KAAK,GAAI;AACxD;;kBAEM,SAAS,QAAQ,CAAC,MAAM,OAAO,OAAO,WAAW,QAAQ,MAAK;AAExE,aAAK,UAAU;AAEf,YAAI,OAAO;AACT,kBAAQ,SAAS,QAAQ,CAAC,MAAM,OAAO,OAAO,WAAW,QAAQ,MAAK,GAAI;AACxE,mBAAO,YAAW;;AAEpB,gBAAM;;MAEV;AACF,aAAAA;IAAA,GAvC6C,cAAc;;;;;ACH3D,IAmCa,yBAKA;AAxCb;;;AACA;AAkCO,IAAM,0BAA0B,IAAI,wBAAwB,oBAAoB;AAKhF,IAAM,iBAAiB;;;;;IClC9B,sBAwDA;;;;AA9DA;AACA;AACA;AAIA,IAAA,wBAAA,SAAA,QAAA;AAA0C,gBAAAC,uBAAA,MAAA;AAyBxC,eAAAA,sBAAY,qBAAuE,WAA4B;AAAnG,YAAA,wBAAA,QAAA;AAAA,gCAA0C;QAAoB;AAAS,YAAA,cAAA,QAAA;AAAA,sBAAA;QAA4B;AAA/G,YAAA,QACE,OAAA,KAAA,MAAM,qBAAqB,WAAA;AAAM,iBAAA,MAAK;QAAL,CAAU,KAAC;AADqC,cAAA,YAAA;AAf5E,cAAA,QAAgB;AAMhB,cAAA,QAAgB;;MAWvB;AAMO,MAAAA,sBAAA,UAAA,QAAP,WAAA;AACQ,YAAAC,OAAyB,MAAvB,UAAOA,KAAA,SAAE,YAASA,KAAA;AAC1B,YAAI;AACJ,YAAI;AAEJ,gBAAQ,SAAS,QAAQ,CAAC,MAAM,OAAO,SAAS,WAAW;AACzD,kBAAQ,MAAK;AACb,eAAK,QAAQ,OAAO;AAEpB,cAAK,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,KAAK,GAAI;AACxD;;;AAIJ,YAAI,OAAO;AACT,iBAAQ,SAAS,QAAQ,MAAK,GAAK;AACjC,mBAAO,YAAW;;AAEpB,gBAAM;;MAEV;AAnDO,MAAAD,sBAAA,kBAAkB;AAoD3B,aAAAA;OAtD0C,cAAc;AAwDxD,IAAA,iBAAA,SAAA,QAAA;AAAsC,gBAAAE,gBAAA,MAAA;AAGpC,eAAAA,eACY,WACA,MACAC,QAAsC;AAAtC,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAiB,UAAU,SAAS;QAAE;AAHlD,YAAA,QAKE,OAAA,KAAA,MAAM,WAAW,IAAI,KAAC;AAJZ,cAAA,YAAA;AACA,cAAA,OAAA;AACA,cAAA,QAAAA;AALF,cAAA,SAAkB;AAQ1B,cAAK,QAAQ,UAAU,QAAQA;;MACjC;AAEO,MAAAD,eAAA,UAAA,WAAP,SAAgB,OAAWE,QAAiB;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AAC1C,YAAI,OAAO,SAASA,MAAK,GAAG;AAC1B,cAAI,CAAC,KAAK,IAAI;AACZ,mBAAO,OAAA,UAAM,SAAQ,KAAA,MAAC,OAAOA,MAAK;;AAEpC,eAAK,SAAS;AAKd,cAAM,SAAS,IAAIF,eAAc,KAAK,WAAW,KAAK,IAAI;AAC1D,eAAK,IAAI,MAAM;AACf,iBAAO,OAAO,SAAS,OAAOE,MAAK;eAC9B;AAGL,iBAAO,aAAa;;MAExB;AAEU,MAAAF,eAAA,UAAA,iBAAV,SAAyB,WAAiC,IAAUE,QAAiB;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AACnF,aAAK,QAAQ,UAAU,QAAQA;AACvB,YAAA,UAAY,UAAS;AAC7B,gBAAQ,KAAK,IAAI;AAChB,gBAAoC,KAAKF,eAAc,WAAW;AACnE,eAAO;MACT;AAEU,MAAAA,eAAA,UAAA,iBAAV,SAAyB,WAAiC,IAAUE,QAAiB;AAAjB,YAAAA,WAAA,QAAA;AAAA,UAAAA,SAAA;QAAiB;AACnF,eAAO;MACT;AAEU,MAAAF,eAAA,UAAA,WAAV,SAAmB,OAAUE,QAAa;AACxC,YAAI,KAAK,WAAW,MAAM;AACxB,iBAAO,OAAA,UAAM,SAAQ,KAAA,MAAC,OAAOA,MAAK;;MAEtC;AAEe,MAAAF,eAAA,cAAf,SAA8BG,IAAqBC,IAAmB;AACpE,YAAID,GAAE,UAAUC,GAAE,OAAO;AACvB,cAAID,GAAE,UAAUC,GAAE,OAAO;AACvB,mBAAO;qBACED,GAAE,QAAQC,GAAE,OAAO;AAC5B,mBAAO;iBACF;AACL,mBAAO;;mBAEAD,GAAE,QAAQC,GAAE,OAAO;AAC5B,iBAAO;eACF;AACL,iBAAO;;MAEX;AACF,aAAAJ;IAAA,GAjEsC,WAAW;;;;;ACU3C,SAAU,MAAM,WAAyB;AAC7C,SAAO,YAAY,eAAe,SAAS,IAAI;AACjD;AAEA,SAAS,eAAe,WAAwB;AAC9C,SAAO,IAAI,WAAkB,SAAC,YAAU;AAAK,WAAA,UAAU,SAAS,WAAA;AAAM,aAAA,WAAW,SAAQ;IAAnB,CAAqB;EAA9C,CAA+C;AAC9F;AA9EA,IAiEa;AAjEb;;;AAiEO,IAAM,QAAQ,IAAI,WAAkB,SAAC,YAAU;AAAK,aAAA,WAAW,SAAQ;IAAnB,CAAqB;;;;;AC9D1E,SAAU,YAAYK,QAAU;AACpC,SAAOA,UAAS,WAAWA,OAAM,QAAQ;AAC3C;AAJA;;;;;;;ACGA,SAAS,KAAQ,KAAQ;AACvB,SAAO,IAAI,IAAI,SAAS,CAAC;AAC3B;AAEM,SAAU,kBAAkB,MAAW;AAC3C,SAAO,WAAW,KAAK,IAAI,CAAC,IAAI,KAAK,IAAG,IAAK;AAC/C;AAEM,SAAU,aAAa,MAAW;AACtC,SAAO,YAAY,KAAK,IAAI,CAAC,IAAI,KAAK,IAAG,IAAK;AAChD;AAEM,SAAU,UAAU,MAAa,cAAoB;AACzD,SAAO,OAAO,KAAK,IAAI,MAAM,WAAW,KAAK,IAAG,IAAM;AACxD;AAjBA;;;AACA;;;;;ACFA,IAAa;AAAb;;AAAO,IAAM,eAAe,SAAIC,IAAM;AAAwB,aAAAA,MAAK,OAAOA,GAAE,WAAW,YAAY,OAAOA,OAAM;IAAlD;;;;;ACMxD,SAAU,UAAUC,QAAU;AAClC,SAAO,WAAWA,WAAK,QAALA,WAAK,SAAA,SAALA,OAAO,IAAI;AAC/B;AARA;;;;;;;ACKM,SAAU,oBAAoB,OAAU;AAC5C,SAAO,WAAW,MAAM,UAAiB,CAAC;AAC5C;AANA;;;AACA;;;;;ACAM,SAAU,gBAAmB,KAAQ;AACzC,SAAO,OAAO,iBAAiB,WAAW,QAAG,QAAH,QAAG,SAAA,SAAH,IAAM,OAAO,aAAa,CAAC;AACvE;AAJA;;;;;;;ACIM,SAAU,iCAAiC,OAAU;AAEzD,SAAO,IAAI,UACT,mBACE,UAAU,QAAQ,OAAO,UAAU,WAAW,sBAAsB,MAAI,QAAK,OAAG,0HACwC;AAE9H;AAPA;;;;;;ACJM,SAAU,oBAAiB;AAC/B,MAAI,OAAO,WAAW,cAAc,CAAC,OAAO,UAAU;AACpD,WAAO;;AAGT,SAAO,OAAO;AAChB;AANA,IAQa;AARb;;AAQO,IAAM,WAAW,kBAAiB;;;;;ACJnC,SAAU,WAAW,OAAU;AACnC,SAAO,WAAW,UAAK,QAAL,UAAK,SAAA,SAAL,MAAQ,QAAe,CAAC;AAC5C;AANA;;;AACA;;;;;ACEM,SAAiB,mCAAsC,gBAAqC;;;;;;AAC1F,mBAAS,eAAe,UAAS;;;;;;oBAE1B,QAAA,CAAA,GAAA,CAAA;AACe,iBAAA,CAAA,GAAA,QAAM,OAAO,KAAI,CAAE,CAAA;;AAArC,UAAAC,OAAkB,GAAA,KAAA,GAAhBC,SAAKD,KAAA,OAAE,OAAIA,KAAA;eACf,KAAA,QAAA,CAAA,GAAA,CAAA;;;AACF,iBAAA,CAAA,GAAA,GAAA,KAAA,CAAA;;6BAEIC,MAAM,CAAA;;AAAZ,iBAAA,CAAA,GAAA,GAAA,KAAA,CAAA;;AAAA,aAAA,KAAA;;;;;AAGF,iBAAO,YAAW;;;;;;;;AAIhB,SAAU,qBAAwB,KAAQ;AAG9C,SAAO,WAAW,QAAG,QAAH,QAAG,SAAA,SAAH,IAAK,SAAS;AAClC;;;;AArBA;;;;;ACcM,SAAU,UAAa,OAAyB;AACpD,MAAI,iBAAiB,YAAY;AAC/B,WAAO;;AAET,MAAI,SAAS,MAAM;AACjB,QAAI,oBAAoB,KAAK,GAAG;AAC9B,aAAO,sBAAsB,KAAK;;AAEpC,QAAI,YAAY,KAAK,GAAG;AACtB,aAAO,cAAc,KAAK;;AAE5B,QAAI,UAAU,KAAK,GAAG;AACpB,aAAO,YAAY,KAAK;;AAE1B,QAAI,gBAAgB,KAAK,GAAG;AAC1B,aAAO,kBAAkB,KAAK;;AAEhC,QAAI,WAAW,KAAK,GAAG;AACrB,aAAO,aAAa,KAAK;;AAE3B,QAAI,qBAAqB,KAAK,GAAG;AAC/B,aAAO,uBAAuB,KAAK;;;AAIvC,QAAM,iCAAiC,KAAK;AAC9C;AAMM,SAAU,sBAAyB,KAAQ;AAC/C,SAAO,IAAI,WAAW,SAAC,YAAyB;AAC9C,QAAM,MAAM,IAAI,UAAiB,EAAC;AAClC,QAAI,WAAW,IAAI,SAAS,GAAG;AAC7B,aAAO,IAAI,UAAU,UAAU;;AAGjC,UAAM,IAAI,UAAU,gEAAgE;EACtF,CAAC;AACH;AASM,SAAU,cAAiB,OAAmB;AAClD,SAAO,IAAI,WAAW,SAAC,YAAyB;AAU9C,aAASC,MAAI,GAAGA,MAAI,MAAM,UAAU,CAAC,WAAW,QAAQA,OAAK;AAC3D,iBAAW,KAAK,MAAMA,GAAC,CAAC;;AAE1B,eAAW,SAAQ;EACrB,CAAC;AACH;AAEM,SAAU,YAAe,SAAuB;AACpD,SAAO,IAAI,WAAW,SAAC,YAAyB;AAC9C,YACG,KACC,SAACC,QAAK;AACJ,UAAI,CAAC,WAAW,QAAQ;AACtB,mBAAW,KAAKA,MAAK;AACrB,mBAAW,SAAQ;;IAEvB,GACA,SAAC,KAAQ;AAAK,aAAA,WAAW,MAAM,GAAG;IAApB,CAAqB,EAEpC,KAAK,MAAM,oBAAoB;EACpC,CAAC;AACH;AAEM,SAAU,aAAgB,UAAqB;AACnD,SAAO,IAAI,WAAW,SAAC,YAAyB;;;AAC9C,eAAoB,aAAA,SAAA,QAAQ,GAAA,eAAA,WAAA,KAAA,GAAA,CAAA,aAAA,MAAA,eAAA,WAAA,KAAA,GAAE;AAAzB,YAAMA,SAAK,aAAA;AACd,mBAAW,KAAKA,MAAK;AACrB,YAAI,WAAW,QAAQ;AACrB;;;;;;;;;;;;AAGJ,eAAW,SAAQ;EACrB,CAAC;AACH;AAEM,SAAU,kBAAqB,eAA+B;AAClE,SAAO,IAAI,WAAW,SAAC,YAAyB;AAC9C,IAAAC,SAAQ,eAAe,UAAU,EAAE,MAAM,SAAC,KAAG;AAAK,aAAA,WAAW,MAAM,GAAG;IAApB,CAAqB;EACzE,CAAC;AACH;AAEM,SAAU,uBAA0B,gBAAqC;AAC7E,SAAO,kBAAkB,mCAAmC,cAAc,CAAC;AAC7E;AAEA,SAAeA,SAAW,eAAiC,YAAyB;;;;;;;;;AACxD,4BAAA,cAAA,aAAa;;;;;;AAAtB,UAAAD,SAAK,kBAAA;AACpB,qBAAW,KAAKA,MAAK;AAGrB,cAAI,WAAW,QAAQ;AACrB,mBAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AAGJ,qBAAW,SAAQ;;;;;;;;;AAlIrB;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;;;ACMM,SAAU,gBACd,oBACA,WACA,MACAE,QACAC,SAAc;AADd,MAAAD,WAAA,QAAA;AAAA,IAAAA,SAAA;EAAS;AACT,MAAAC,YAAA,QAAA;AAAA,IAAAA,UAAA;EAAc;AAEd,MAAM,uBAAuB,UAAU,SAAS,WAAA;AAC9C,SAAI;AACJ,QAAIA,SAAQ;AACV,yBAAmB,IAAI,KAAK,SAAS,MAAMD,MAAK,CAAC;WAC5C;AACL,WAAK,YAAW;;EAEpB,GAAGA,MAAK;AAER,qBAAmB,IAAI,oBAAoB;AAE3C,MAAI,CAACC,SAAQ;AAKX,WAAO;;AAEX;AAzBA;;;;;;ACwCM,SAAU,UAAa,WAA0BC,QAAS;AAAT,MAAAA,WAAA,QAAA;AAAA,IAAAA,SAAA;EAAS;AAC9D,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,WAAO,UACL,yBACE,YACA,SAACC,QAAK;AAAK,aAAA,gBAAgB,YAAY,WAAW,WAAA;AAAM,eAAA,WAAW,KAAKA,MAAK;MAArB,GAAwBD,MAAK;IAA1E,GACX,WAAA;AAAM,aAAA,gBAAgB,YAAY,WAAW,WAAA;AAAM,eAAA,WAAW,SAAQ;MAAnB,GAAuBA,MAAK;IAAzE,GACN,SAAC,KAAG;AAAK,aAAA,gBAAgB,YAAY,WAAW,WAAA;AAAM,eAAA,WAAW,MAAM,GAAG;MAApB,GAAuBA,MAAK;IAAzE,CAA0E,CACpF;EAEL,CAAC;AACH;AAnEA;;;AACA;AACA;;;;;AC0DM,SAAU,YAAe,WAA0BE,QAAiB;AAAjB,MAAAA,WAAA,QAAA;AAAA,IAAAA,SAAA;EAAiB;AACxE,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,eAAW,IAAI,UAAU,SAAS,WAAA;AAAM,aAAA,OAAO,UAAU,UAAU;IAA3B,GAA8BA,MAAK,CAAC;EAC9E,CAAC;AACH;AAjEA;;;;;;;ACIM,SAAU,mBAAsB,OAA6B,WAAwB;AACzF,SAAO,UAAU,KAAK,EAAE,KAAK,YAAY,SAAS,GAAG,UAAU,SAAS,CAAC;AAC3E;AAPA;;;AACA;AACA;;;;;ACGM,SAAU,gBAAmB,OAAuB,WAAwB;AAChF,SAAO,UAAU,KAAK,EAAE,KAAK,YAAY,SAAS,GAAG,UAAU,SAAS,CAAC;AAC3E;AAPA;;;AACA;AACA;;;;;ACCM,SAAU,cAAiB,OAAqB,WAAwB;AAC5E,SAAO,IAAI,WAAc,SAAC,YAAU;AAElC,QAAIC,MAAI;AAER,WAAO,UAAU,SAAS,WAAA;AACxB,UAAIA,QAAM,MAAM,QAAQ;AAGtB,mBAAW,SAAQ;aACd;AAGL,mBAAW,KAAK,MAAMA,KAAG,CAAC;AAI1B,YAAI,CAAC,WAAW,QAAQ;AACtB,eAAK,SAAQ;;;IAGnB,CAAC;EACH,CAAC;AACH;AA1BA;;;;;;;ACWM,SAAU,iBAAoB,OAAoB,WAAwB;AAC9E,SAAO,IAAI,WAAc,SAAC,YAAU;AAClC,QAAIC;AAKJ,oBAAgB,YAAY,WAAW,WAAA;AAErC,MAAAA,YAAY,MAAc,QAAe,EAAC;AAE1C,sBACE,YACA,WACA,WAAA;;AACE,YAAIC;AACJ,YAAI;AACJ,YAAI;AAEF,UAACC,OAAkBF,UAAS,KAAI,GAA7BC,SAAKC,KAAA,OAAE,OAAIA,KAAA;iBACP,KAAK;AAEZ,qBAAW,MAAM,GAAG;AACpB;;AAGF,YAAI,MAAM;AAKR,qBAAW,SAAQ;eACd;AAEL,qBAAW,KAAKD,MAAK;;MAEzB,GACA,GACA,IAAI;IAER,CAAC;AAMD,WAAO,WAAA;AAAM,aAAA,WAAWD,cAAQ,QAARA,cAAQ,SAAA,SAARA,UAAU,MAAM,KAAKA,UAAS,OAAM;IAA/C;EACf,CAAC;AACH;AA3DA;;;AAEA;AACA;AACA;;;;;ACAM,SAAU,sBAAyB,OAAyB,WAAwB;AACxF,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,yBAAyB;;AAE3C,SAAO,IAAI,WAAc,SAAC,YAAU;AAClC,oBAAgB,YAAY,WAAW,WAAA;AACrC,UAAMG,YAAW,MAAM,OAAO,aAAa,EAAC;AAC5C,sBACE,YACA,WACA,WAAA;AACE,QAAAA,UAAS,KAAI,EAAG,KAAK,SAAC,QAAM;AAC1B,cAAI,OAAO,MAAM;AAGf,uBAAW,SAAQ;iBACd;AACL,uBAAW,KAAK,OAAO,KAAK;;QAEhC,CAAC;MACH,GACA,GACA,IAAI;IAER,CAAC;EACH,CAAC;AACH;AA7BA;;;AACA;;;;;ACGM,SAAU,2BAA8B,OAA8B,WAAwB;AAClG,SAAO,sBAAsB,mCAAmC,KAAK,GAAG,SAAS;AACnF;AALA;;;AACA;;;;;ACwBM,SAAU,UAAa,OAA2B,WAAwB;AAC9E,MAAI,SAAS,MAAM;AACjB,QAAI,oBAAoB,KAAK,GAAG;AAC9B,aAAO,mBAAmB,OAAO,SAAS;;AAE5C,QAAI,YAAY,KAAK,GAAG;AACtB,aAAO,cAAc,OAAO,SAAS;;AAEvC,QAAI,UAAU,KAAK,GAAG;AACpB,aAAO,gBAAgB,OAAO,SAAS;;AAEzC,QAAI,gBAAgB,KAAK,GAAG;AAC1B,aAAO,sBAAsB,OAAO,SAAS;;AAE/C,QAAI,WAAW,KAAK,GAAG;AACrB,aAAO,iBAAiB,OAAO,SAAS;;AAE1C,QAAI,qBAAqB,KAAK,GAAG;AAC/B,aAAO,2BAA2B,OAAO,SAAS;;;AAGtD,QAAM,iCAAiC,KAAK;AAC9C;AAjDA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;;;;;ACuFM,SAAU,KAAQ,OAA2B,WAAyB;AAC1E,SAAO,YAAY,UAAU,OAAO,SAAS,IAAI,UAAU,KAAK;AAClE;AArGA;;;AACA;;;;;AC4EM,SAAU,KAAE;AAAI,MAAA,OAAA,CAAA;WAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAiC;AAAjC,SAAA,EAAA,IAAA,UAAA,EAAA;;AACpB,MAAM,YAAY,aAAa,IAAI;AACnC,SAAO,KAAK,MAAa,SAAS;AACpC;AAhFA;;;AACA;;;;;ACqHM,SAAU,WAAW,qBAA0B,WAAyB;AAC5E,MAAM,eAAe,WAAW,mBAAmB,IAAI,sBAAsB,WAAA;AAAM,WAAA;EAAA;AACnF,MAAM,OAAO,SAAC,YAA6B;AAAK,WAAA,WAAW,MAAM,aAAY,CAAE;EAA/B;AAChD,SAAO,IAAI,WAAW,YAAY,SAAC,YAAU;AAAK,WAAA,UAAU,SAAS,MAAa,GAAG,UAAU;EAA7C,IAAiD,IAAI;AACzG;AA5HA;;;AAGA;;;;;ACoOM,SAAU,oBAAuB,cAAyC,UAA4B;;AACpG,MAAA,KAAyB,cAAvB,OAAI,GAAA,MAAEC,SAAK,GAAA,OAAE,QAAK,GAAA;AAC1B,MAAI,OAAO,SAAS,UAAU;AAC5B,UAAM,IAAI,UAAU,sCAAsC;;AAE5D,WAAS,OAAMC,OAAA,SAAS,UAAI,QAAAA,SAAA,SAAA,SAAAA,KAAA,KAAb,UAAgBD,MAAM,IAAI,SAAS,OAAM,KAAA,SAAS,WAAK,QAAA,OAAA,SAAA,SAAA,GAAA,KAAd,UAAiB,KAAK,KAAI,KAAA,SAAS,cAAQ,QAAA,OAAA,SAAA,SAAA,GAAA,KAAjB,QAAQ;AAC5F;AA3OA,IAUY,kBAsBZ;AAhCA;;;AACA;AACA;AACA;AAOA,KAAA,SAAYE,mBAAgB;AAC1B,MAAAA,kBAAA,MAAA,IAAA;AACA,MAAAA,kBAAA,OAAA,IAAA;AACA,MAAAA,kBAAA,UAAA,IAAA;IACF,GAJY,qBAAA,mBAAgB,CAAA,EAAA;AAsB5B,IAAA,gBAAA,WAAA;AA6BE,eAAAC,cAA4B,MAAuCH,QAA2B,OAAW;AAA7E,aAAA,OAAA;AAAuC,aAAA,QAAAA;AAA2B,aAAA,QAAA;AAC5F,aAAK,WAAW,SAAS;MAC3B;AAQA,MAAAG,cAAA,UAAA,UAAA,SAAQ,UAA4B;AAClC,eAAO,oBAAoB,MAAmC,QAAQ;MACxE;AA4BA,MAAAA,cAAA,UAAA,KAAA,SAAG,aAAiC,cAAmC,iBAA4B;AAC3F,YAAAF,OAAyB,MAAvB,OAAIA,KAAA,MAAED,SAAKC,KAAA,OAAE,QAAKA,KAAA;AAC1B,eAAO,SAAS,MAAM,gBAAW,QAAX,gBAAW,SAAA,SAAX,YAAcD,MAAM,IAAI,SAAS,MAAM,iBAAY,QAAZ,iBAAY,SAAA,SAAZ,aAAe,KAAK,IAAI,oBAAe,QAAf,oBAAe,SAAA,SAAf,gBAAe;MACtG;AAqCA,MAAAG,cAAA,UAAA,SAAA,SAAO,gBAA2D,OAA4B,UAAqB;;AACjH,eAAO,YAAWF,OAAC,oBAAsB,QAAAA,SAAA,SAAA,SAAAA,KAAE,IAAI,IAC3C,KAAK,QAAQ,cAAoC,IACjD,KAAK,GAAG,gBAAsC,OAAc,QAAe;MACjF;AASA,MAAAE,cAAA,UAAA,eAAA,WAAA;AACQ,YAAAF,OAAyB,MAAvB,OAAIA,KAAA,MAAED,SAAKC,KAAA,OAAE,QAAKA,KAAA;AAE1B,YAAM,SACJ,SAAS,MAEL,GAAGD,MAAM,IAEX,SAAS,MAEP,WAAW,WAAA;AAAM,iBAAA;QAAA,CAAK,IAExB,SAAS,MAEP,QAEA;AACN,YAAI,CAAC,QAAQ;AAIX,gBAAM,IAAI,UAAU,kCAAgC,IAAM;;AAE5D,eAAO;MACT;AAaO,MAAAG,cAAA,aAAP,SAAqBH,QAAQ;AAC3B,eAAO,IAAIG,cAAa,KAAKH,MAAK;MACpC;AAYO,MAAAG,cAAA,cAAP,SAAmB,KAAS;AAC1B,eAAO,IAAIA,cAAa,KAAK,QAAW,GAAG;MAC7C;AAUO,MAAAA,cAAA,iBAAP,WAAA;AACE,eAAOA,cAAa;MACtB;AAvCe,MAAAA,cAAA,uBAAuB,IAAIA,cAAa,GAAG;AAwC5D,aAAAA;OA5LA;;;;;ACjCA;;;;;;ACDA,IAsBa;AAtBb;;;AAsBO,IAAM,aAA6B,iBACxC,SAAC,QAAM;AACL,aAAA,SAAS,iBAAc;AACrB,eAAO,IAAI;AACX,aAAK,OAAO;AACZ,aAAK,UAAU;MACjB;IAJA,CAIC;;;;;AC3BL;;;;;;ACAA;;;;;;ACDA,IAoBa;AApBb;;;AAoBO,IAAM,0BAAuD,iBAClE,SAAC,QAAM;AACL,aAAA,SAAS,8BAA2B;AAClC,eAAO,IAAI;AACX,aAAK,OAAO;AACZ,aAAK,UAAU;MACjB;IAJA,CAIC;;;;;AC1BL,IAkBa;AAlBb;;;AAkBO,IAAM,gBAAmC,iBAC9C,SAAC,QAAM;AACL,aAAA,SAAS,kBAA6BC,UAAe;AACnD,eAAO,IAAI;AACX,aAAK,OAAO;AACZ,aAAK,UAAUA;MACjB;IAJA,CAIC;;;;;ACxBL,IAkBa;AAlBb;;;AAkBO,IAAM,gBAAmC,iBAC9C,SAAC,QAAM;AACL,aAAA,SAAS,kBAA6BC,UAAe;AACnD,eAAO,IAAI;AACX,aAAK,OAAO;AACZ,aAAK,UAAUA;MACjB;IAJA,CAIC;;;;;ACjBC,SAAU,YAAYC,QAAU;AACpC,SAAOA,kBAAiB,QAAQ,CAAC,MAAMA,MAAY;AACrD;AAFA;;;;;;ACmSM,SAAU,QACdC,SACA,cAA4B;AAStB,MAAAC,OAMD,YAAYD,OAAM,IAAI,EAAE,OAAOA,QAAM,IAAK,OAAOA,YAAW,WAAW,EAAE,MAAMA,QAAM,IAAKA,SAL7FE,SAAKD,KAAA,OACL,OAAIA,KAAA,MACJ,KAAAA,KAAA,MAAM,QAAK,OAAA,SAAG,sBAAmB,IACjC,KAAAA,KAAA,WAAA,YAAS,OAAA,SAAG,iBAAY,QAAZ,iBAAY,SAAZ,eAAgB,iBAAc,IAC1C,KAAAA,KAAA,MAAA,OAAI,OAAA,SAAG,OAAK;AAGd,MAAIC,UAAS,QAAQ,QAAQ,MAAM;AAEjC,UAAM,IAAI,UAAU,sBAAsB;;AAG5C,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAMhC,QAAI;AAGJ,QAAI;AAGJ,QAAI,YAAsB;AAG1B,QAAI,OAAO;AACX,QAAM,aAAa,SAACC,QAAa;AAC/B,0BAAoB,gBAClB,YACA,WACA,WAAA;AACE,YAAI;AACF,qCAA2B,YAAW;AACtC,oBACE,MAAO;YACL;YACA;YACA;WACD,CAAC,EACF,UAAU,UAAU;iBACf,KAAK;AACZ,qBAAW,MAAM,GAAG;;MAExB,GACAA,MAAK;IAET;AAEA,iCAA6B,OAAO,UAClC,yBACE,YACA,SAACC,QAAQ;AAEP,4BAAiB,QAAjB,sBAAiB,SAAA,SAAjB,kBAAmB,YAAW;AAC9B;AAEA,iBAAW,KAAM,YAAYA,MAAM;AAEnC,aAAQ,KAAK,WAAW,IAAK;IAC/B,GACA,QACA,QACA,WAAA;AACE,UAAI,EAAC,sBAAiB,QAAjB,sBAAiB,SAAA,SAAjB,kBAAmB,SAAQ;AAC9B,8BAAiB,QAAjB,sBAAiB,SAAA,SAAjB,kBAAmB,YAAW;;AAIhC,kBAAY;IACd,CAAC,CACF;AASH,KAAC,QAAQ,WAAWF,UAAS,OAAQ,OAAOA,WAAU,WAAWA,SAAQ,CAACA,SAAQ,UAAW,IAAG,IAAM,IAAK;EAC7G,CAAC;AACH;AAOA,SAAS,oBAAoB,MAAsB;AACjD,QAAM,IAAI,aAAa,IAAI;AAC7B;AAlZA,IAqFa;AArFb;;;AAEA;AAEA;AAEA;AACA;AACA;AACA;AA4EO,IAAM,eAAiC,iBAC5C,SAAC,QAAM;AACL,aAAA,SAAS,iBAA4B,MAAoC;AAApC,YAAA,SAAA,QAAA;AAAA,iBAAA;QAAoC;AACvE,eAAO,IAAI;AACX,aAAK,UAAU;AACf,aAAK,OAAO;AACZ,aAAK,OAAO;MACd;IALA,CAKC;;;;;AC9CC,SAAUG,KAAU,SAAyC,SAAa;AAC9E,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAEhC,QAAIC,SAAQ;AAGZ,WAAO,UACL,yBAAyB,YAAY,SAACC,QAAQ;AAG5C,iBAAW,KAAK,QAAQ,KAAK,SAASA,QAAOD,QAAO,CAAC;IACvD,CAAC,CAAC;EAEN,CAAC;AACH;AA3DA;;;AACA;;;;;ACGA,SAAS,YAAkB,IAA6B,MAAW;AAC/D,SAAO,QAAQ,IAAI,IAAI,GAAE,MAAA,QAAA,cAAA,CAAA,GAAA,OAAI,IAAI,CAAA,CAAA,IAAI,GAAG,IAAI;AAChD;AAMM,SAAU,iBAAuB,IAA2B;AAC9D,SAAOE,KAAI,SAAA,MAAI;AAAI,WAAA,YAAY,IAAI,IAAI;EAApB,CAAqB;AAC5C;IAZQ;;;;AAFR;AAEQ,IAAA,UAAY,MAAK;;;;;ACAzB;;;;;;ACAA;;;;;;ACHA;;;;;;ACoBM,SAAU,eACd,QACA,YACA,SACA,YACA,cACAC,SACA,mBACA,qBAAgC;AAGhC,MAAMC,UAAc,CAAA;AAEpB,MAAI,SAAS;AAEb,MAAIC,SAAQ;AAEZ,MAAI,aAAa;AAKjB,MAAM,gBAAgB,WAAA;AAIpB,QAAI,cAAc,CAACD,QAAO,UAAU,CAAC,QAAQ;AAC3C,iBAAW,SAAQ;;EAEvB;AAGA,MAAM,YAAY,SAACE,QAAQ;AAAK,WAAC,SAAS,aAAa,WAAWA,MAAK,IAAIF,QAAO,KAAKE,MAAK;EAA5D;AAEhC,MAAM,aAAa,SAACA,QAAQ;AAI1B,IAAAH,WAAU,WAAW,KAAKG,MAAY;AAItC;AAKA,QAAI,gBAAgB;AAGpB,cAAU,QAAQA,QAAOD,QAAO,CAAC,EAAE,UACjC,yBACE,YACA,SAAC,YAAU;AAGT,uBAAY,QAAZ,iBAAY,SAAA,SAAZ,aAAe,UAAU;AAEzB,UAAIF,SAAQ;AAGV,kBAAU,UAAiB;aACtB;AAEL,mBAAW,KAAK,UAAU;;IAE9B,GACA,WAAA;AAGE,sBAAgB;IAClB,GAEA,QACA,WAAA;AAIE,UAAI,eAAe;AAKjB,YAAI;AAIF;;AAME,gBAAM,gBAAgBC,QAAO,MAAK;AAIlC,gBAAI,mBAAmB;AACrB,8BAAgB,YAAY,mBAAmB,WAAA;AAAM,uBAAA,WAAW,aAAa;cAAxB,CAAyB;mBACzE;AACL,yBAAW,aAAa;;;AAR5B,iBAAOA,QAAO,UAAU,SAAS,YAAU;;;AAY3C,wBAAa;iBACN,KAAK;AACZ,qBAAW,MAAM,GAAG;;;IAG1B,CAAC,CACF;EAEL;AAGA,SAAO,UACL,yBAAyB,YAAY,WAAW,WAAA;AAE9C,iBAAa;AACb,kBAAa;EACf,CAAC,CAAC;AAKJ,SAAO,WAAA;AACL,4BAAmB,QAAnB,wBAAmB,SAAA,SAAnB,oBAAmB;EACrB;AACF;AAnJA;;;AAGA;AACA;;;;;AC2EM,SAAU,SACd,SACA,gBACA,YAA6B;AAA7B,MAAA,eAAA,QAAA;AAAA,iBAAA;EAA6B;AAE7B,MAAI,WAAW,cAAc,GAAG;AAE9B,WAAO,SAAS,SAACG,IAAGC,KAAC;AAAK,aAAAC,KAAI,SAACC,IAAQ,IAAU;AAAK,eAAA,eAAeH,IAAGG,IAAGF,KAAG,EAAE;MAA1B,CAA2B,EAAE,UAAU,QAAQD,IAAGC,GAAC,CAAC,CAAC;IAAjF,GAAoF,UAAU;aAC/G,OAAO,mBAAmB,UAAU;AAC7C,iBAAa;;AAGf,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAAK,WAAA,eAAe,QAAQ,YAAY,SAAS,UAAU;EAAtD,CAAuD;AAChG;AA5FA;;;AACA;AACA;AACA;AACA;;;;;AC0DM,SAAU,SAAyC,YAA6B;AAA7B,MAAA,eAAA,QAAA;AAAA,iBAAA;EAA6B;AACpF,SAAO,SAAS,UAAU,UAAU;AACtC;AAjEA;;;AACA;;;;;AC0DM,SAAU,YAAS;AACvB,SAAO,SAAS,CAAC;AACnB;AA7DA;;;;;;;ACgHM,SAAU,SAAM;AAAC,MAAA,OAAA,CAAA;WAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAc;AAAd,SAAA,EAAA,IAAA,UAAA,EAAA;;AACrB,SAAO,UAAS,EAAG,KAAK,MAAM,aAAa,IAAI,CAAC,CAAC;AACnD;AAhHA;;;AACA;AACA;;;;;ACJA;;;;;;ACCA;;;;;;ACDA;;;;;;AC+OM,SAAU,UACd,QACA,WACA,SACA,gBAAsC;AAEtC,MAAI,WAAW,OAAO,GAAG;AACvB,qBAAiB;AACjB,cAAU;;AAEZ,MAAI,gBAAgB;AAClB,WAAO,UAAa,QAAQ,WAAW,OAA+B,EAAE,KAAK,iBAAiB,cAAc,CAAC;;AAUzG,MAAAG,OAAA,OAEJ,cAAc,MAAM,IAChB,mBAAmB,IAAI,SAAC,YAAU;AAAK,WAAA,SAACC,UAAY;AAAK,aAAA,OAAO,UAAU,EAAE,WAAWA,UAAS,OAA+B;IAAtE;EAAlB,CAAyF,IAElI,wBAAwB,MAAM,IAC5B,wBAAwB,IAAI,wBAAwB,QAAQ,SAAS,CAAC,IACtE,0BAA0B,MAAM,IAChC,cAAc,IAAI,wBAAwB,QAAQ,SAAS,CAAC,IAC5D,CAAA,GAAE,CAAA,GATDC,OAAGF,KAAA,CAAA,GAAEG,UAAMH,KAAA,CAAA;AAgBlB,MAAI,CAACE,MAAK;AACR,QAAI,YAAY,MAAM,GAAG;AACvB,aAAO,SAAS,SAAC,WAAc;AAAK,eAAA,UAAU,WAAW,WAAW,OAA+B;MAA/D,CAAgE,EAClG,UAAU,MAAM,CAAC;;;AAOvB,MAAI,CAACA,MAAK;AACR,UAAM,IAAI,UAAU,sBAAsB;;AAG5C,SAAO,IAAI,WAAc,SAAC,YAAU;AAIlC,QAAMD,WAAU,WAAA;AAAC,UAAA,OAAA,CAAA;eAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAc;AAAd,aAAA,EAAA,IAAA,UAAA,EAAA;;AAAmB,aAAA,WAAW,KAAK,IAAI,KAAK,SAAS,OAAO,KAAK,CAAC,CAAC;IAAhD;AAEpC,IAAAC,KAAID,QAAO;AAEX,WAAO,WAAA;AAAM,aAAAE,QAAQF,QAAO;IAAf;EACf,CAAC;AACH;AASA,SAAS,wBAAwB,QAAa,WAAiB;AAC7D,SAAO,SAAC,YAAkB;AAAK,WAAA,SAACA,UAAY;AAAK,aAAA,OAAO,UAAU,EAAE,WAAWA,QAAO;IAArC;EAAlB;AACjC;AAOA,SAAS,wBAAwB,QAAW;AAC1C,SAAO,WAAW,OAAO,WAAW,KAAK,WAAW,OAAO,cAAc;AAC3E;AAOA,SAAS,0BAA0B,QAAW;AAC5C,SAAO,WAAW,OAAO,EAAE,KAAK,WAAW,OAAO,GAAG;AACvD;AAOA,SAAS,cAAc,QAAW;AAChC,SAAO,WAAW,OAAO,gBAAgB,KAAK,WAAW,OAAO,mBAAmB;AACrF;IA1UM,yBACA,oBACA;;;;AAVN;AACA;AACA;AACA;AACA;AACA;AAGA,IAAM,0BAA0B,CAAC,eAAe,gBAAgB;AAChE,IAAM,qBAAqB,CAAC,oBAAoB,qBAAqB;AACrE,IAAM,gBAAgB,CAAC,MAAM,KAAK;;;;;ACVlC;;;;A;;;;;;;;ACCA;;;;;;ACmIM,SAAU,MACd,SACA,qBACA,WAAyC;AAFzC,MAAA,YAAA,QAAA;AAAA,cAAA;EAA0B;AAE1B,MAAA,cAAA,QAAA;AAAA,gBAAA;EAAyC;AAIzC,MAAI,mBAAmB;AAEvB,MAAI,uBAAuB,MAAM;AAI/B,QAAI,YAAY,mBAAmB,GAAG;AACpC,kBAAY;WACP;AAGL,yBAAmB;;;AAIvB,SAAO,IAAI,WAAW,SAAC,YAAU;AAI/B,QAAI,MAAM,YAAY,OAAO,IAAI,CAAC,UAAU,UAAW,IAAG,IAAK;AAE/D,QAAI,MAAM,GAAG;AAEX,YAAM;;AAIR,QAAIG,MAAI;AAGR,WAAO,UAAU,SAAS,WAAA;AACxB,UAAI,CAAC,WAAW,QAAQ;AAEtB,mBAAW,KAAKA,KAAG;AAEnB,YAAI,KAAK,kBAAkB;AAGzB,eAAK,SAAS,QAAW,gBAAgB;eACpC;AAEL,qBAAW,SAAQ;;;IAGzB,GAAG,GAAG;EACR,CAAC;AACH;AAzLA;;;AAEA;AACA;AACA;;;;;ACHA;;;;;;ACCA;;;;;;ACuCM,SAAU,QAAK;AACnB,SAAO;AACT;AA3CA,IAoCa;AApCb;;;AACA;AAmCO,IAAM,QAAQ,IAAI,WAAkB,IAAI;;;;;ACpC/C;;;;;;ACEA;;;;;;AC0DM,SAAU,OAAU,WAAiD,SAAa;AACtF,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAEhC,QAAIC,SAAQ;AAIZ,WAAO,UAIL,yBAAyB,YAAY,SAACC,QAAK;AAAK,aAAA,UAAU,KAAK,SAASA,QAAOD,QAAO,KAAK,WAAW,KAAKC,MAAK;IAAhE,CAAiE,CAAC;EAEtH,CAAC;AACH;AAzEA;;;AACA;;;;;ACFA;;;;;;ACAA;;;;;;ACCA;;;;;;ACDA;;;;A;;;;;;;;ACAA;AAAA;AAAA;AAAA;;;ACGA;;;;;;ACHA;;;;;;AC4CM,SAAU,OAAU,iBAAqC;AAC7D,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAEhC,QAAI,gBAAqB,CAAA;AAGzB,WAAO,UACL,yBACE,YACA,SAACC,QAAK;AAAK,aAAA,cAAc,KAAKA,MAAK;IAAxB,GACX,WAAA;AACE,iBAAW,KAAK,aAAa;AAC7B,iBAAW,SAAQ;IACrB,CAAC,CACF;AAIH,cAAU,eAAe,EAAE,UACzB,yBACE,YACA,WAAA;AAEE,UAAMC,KAAI;AACV,sBAAgB,CAAA;AAChB,iBAAW,KAAKA,EAAC;IACnB,GACA,IAAI,CACL;AAGH,WAAO,WAAA;AAEL,sBAAgB;IAClB;EACF,CAAC;AACH;AA/EA;;;AACA;AACA;AACA;;;;;ACoDM,SAAU,YAAe,YAAoB,kBAAsC;AAAtC,MAAA,qBAAA,QAAA;AAAA,uBAAA;EAAsC;AAGvF,qBAAmB,qBAAgB,QAAhB,qBAAgB,SAAhB,mBAAoB;AAEvC,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,QAAI,UAAiB,CAAA;AACrB,QAAIC,SAAQ;AAEZ,WAAO,UACL,yBACE,YACA,SAACC,QAAK;;AACJ,UAAI,SAAuB;AAK3B,UAAID,WAAU,qBAAsB,GAAG;AACrC,gBAAQ,KAAK,CAAA,CAAE;;;AAIjB,iBAAqB,YAAA,SAAA,OAAO,GAAA,cAAA,UAAA,KAAA,GAAA,CAAA,YAAA,MAAA,cAAA,UAAA,KAAA,GAAE;AAAzB,cAAME,UAAM,YAAA;AACf,UAAAA,QAAO,KAAKD,MAAK;AAMjB,cAAI,cAAcC,QAAO,QAAQ;AAC/B,qBAAS,WAAM,QAAN,WAAM,SAAN,SAAU,CAAA;AACnB,mBAAO,KAAKA,OAAM;;;;;;;;;;;;AAItB,UAAI,QAAQ;;AAIV,mBAAqB,WAAA,SAAA,MAAM,GAAA,aAAA,SAAA,KAAA,GAAA,CAAA,WAAA,MAAA,aAAA,SAAA,KAAA,GAAE;AAAxB,gBAAMA,UAAM,WAAA;AACf,sBAAU,SAASA,OAAM;AACzB,uBAAW,KAAKA,OAAM;;;;;;;;;;;;IAG5B,GACA,WAAA;;;AAGE,iBAAqB,YAAA,SAAA,OAAO,GAAA,cAAA,UAAA,KAAA,GAAA,CAAA,YAAA,MAAA,cAAA,UAAA,KAAA,GAAE;AAAzB,cAAMA,UAAM,YAAA;AACf,qBAAW,KAAKA,OAAM;;;;;;;;;;;AAExB,iBAAW,SAAQ;IACrB,GAEA,QACA,WAAA;AAEE,gBAAU;IACZ,CAAC,CACF;EAEL,CAAC;AACH;;;;AAtHA;AACA;AACA;;;;;ACuEM,SAAU,WAAc,gBAAsB;;AAAE,MAAA,YAAA,CAAA;WAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAmB;AAAnB,cAAA,KAAA,CAAA,IAAA,UAAA,EAAA;;AACpD,MAAM,aAAYC,OAAA,aAAa,SAAS,OAAC,QAAAA,SAAA,SAAAA,OAAI;AAC7C,MAAM,0BAAyB,KAAC,UAAU,CAAC,OAAY,QAAA,OAAA,SAAA,KAAI;AAC3D,MAAM,gBAAiB,UAAU,CAAC,KAAgB;AAElD,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAEhC,QAAI,gBAA8D,CAAA;AAGlE,QAAI,gBAAgB;AAQpB,QAAM,OAAO,SAAC,QAA2C;AAC/C,UAAAC,UAAiB,OAAM,QAAf,OAAS,OAAM;AAC/B,WAAK,YAAW;AAChB,gBAAU,eAAe,MAAM;AAC/B,iBAAW,KAAKA,OAAM;AACtB,uBAAiB,YAAW;IAC9B;AAOA,QAAM,cAAc,WAAA;AAClB,UAAI,eAAe;AACjB,YAAM,OAAO,IAAI,aAAY;AAC7B,mBAAW,IAAI,IAAI;AACnB,YAAMA,UAAc,CAAA;AACpB,YAAM,WAAS;UACb,QAAMA;UACN;;AAEF,sBAAc,KAAK,QAAM;AACzB,wBAAgB,MAAM,WAAW,WAAA;AAAM,iBAAA,KAAK,QAAM;QAAX,GAAc,cAAc;;IAEvE;AAEA,QAAI,2BAA2B,QAAQ,0BAA0B,GAAG;AAIlE,sBAAgB,YAAY,WAAW,aAAa,wBAAwB,IAAI;WAC3E;AACL,sBAAgB;;AAGlB,gBAAW;AAEX,QAAM,uBAAuB,yBAC3B,YACA,SAACC,QAAQ;;AAKP,UAAM,cAAc,cAAe,MAAK;;AACxC,iBAAqB,gBAAA,SAAA,WAAW,GAAA,kBAAA,cAAA,KAAA,GAAA,CAAA,gBAAA,MAAA,kBAAA,cAAA,KAAA,GAAE;AAA7B,cAAM,SAAM,gBAAA;AAEP,cAAAD,UAAW,OAAM;AACzB,UAAAA,QAAO,KAAKC,MAAK;AAEjB,2BAAiBD,QAAO,UAAU,KAAK,MAAM;;;;;;;;;;;IAEjD,GACA,WAAA;AAGE,aAAO,kBAAa,QAAb,kBAAa,SAAA,SAAb,cAAe,QAAQ;AAC5B,mBAAW,KAAK,cAAc,MAAK,EAAI,MAAM;;AAE/C,+BAAoB,QAApB,yBAAoB,SAAA,SAApB,qBAAsB,YAAW;AACjC,iBAAW,SAAQ;AACnB,iBAAW,YAAW;IACxB,GAEA,QAEA,WAAA;AAAM,aAAC,gBAAgB;IAAjB,CAAsB;AAG9B,WAAO,UAAU,oBAAoB;EACvC,CAAC;AACH;;;;AApKA;AAEA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;;;ACLA;;;;;;ACEA;;;;;;ACJA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;A;;;;;;;;;;;;;;ACAA;;;;;;ACAA;;;;A;;;;;;;;;;;;;;ACEA;;;;;;ACDA;;;;;;ACgEM,SAAU,SAAY,kBAAoD;AAC9E,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,QAAI,WAAW;AACf,QAAI,YAAsB;AAE1B,QAAI,qBAA6C;AAEjD,QAAM,OAAO,WAAA;AAIX,6BAAkB,QAAlB,uBAAkB,SAAA,SAAlB,mBAAoB,YAAW;AAC/B,2BAAqB;AACrB,UAAI,UAAU;AAEZ,mBAAW;AACX,YAAME,SAAQ;AACd,oBAAY;AACZ,mBAAW,KAAKA,MAAK;;IAEzB;AAEA,WAAO,UACL,yBACE,YACA,SAACA,QAAQ;AAIP,6BAAkB,QAAlB,uBAAkB,SAAA,SAAlB,mBAAoB,YAAW;AAC/B,iBAAW;AACX,kBAAYA;AAGZ,2BAAqB,yBAAyB,YAAY,MAAM,IAAI;AAEpE,gBAAU,iBAAiBA,MAAK,CAAC,EAAE,UAAU,kBAAkB;IACjE,GACA,WAAA;AAGE,WAAI;AACJ,iBAAW,SAAQ;IACrB,GAEA,QACA,WAAA;AAEE,kBAAY,qBAAqB;IACnC,CAAC,CACF;EAEL,CAAC;AACH;AApHA;;;AACA;AACA;AACA;;;;;ACyDM,SAAU,aAAgB,SAAiB,WAAyC;AAAzC,MAAA,cAAA,QAAA;AAAA,gBAAA;EAAyC;AACxF,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,QAAI,aAAkC;AACtC,QAAI,YAAsB;AAC1B,QAAI,WAA0B;AAE9B,QAAM,OAAO,WAAA;AACX,UAAI,YAAY;AAEd,mBAAW,YAAW;AACtB,qBAAa;AACb,YAAMC,SAAQ;AACd,oBAAY;AACZ,mBAAW,KAAKA,MAAK;;IAEzB;AACA,aAAS,eAAY;AAInB,UAAM,aAAa,WAAY;AAC/B,UAAMC,OAAM,UAAU,IAAG;AACzB,UAAIA,OAAM,YAAY;AAEpB,qBAAa,KAAK,SAAS,QAAW,aAAaA,IAAG;AACtD,mBAAW,IAAI,UAAU;AACzB;;AAGF,WAAI;IACN;AAEA,WAAO,UACL,yBACE,YACA,SAACD,QAAQ;AACP,kBAAYA;AACZ,iBAAW,UAAU,IAAG;AAGxB,UAAI,CAAC,YAAY;AACf,qBAAa,UAAU,SAAS,cAAc,OAAO;AACrD,mBAAW,IAAI,UAAU;;IAE7B,GACA,WAAA;AAGE,WAAI;AACJ,iBAAW,SAAQ;IACrB,GAEA,QACA,WAAA;AAEE,kBAAY,aAAa;IAC3B,CAAC,CACF;EAEL,CAAC;AACH;AA1HA;;;AAGA;AACA;;;;;ACHA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACCA;;;;;;ACFA;;;;;;ACAA;;;;;;ACCA;;;;;;ACAA;;;;;;ACDA;;;;;;ACAA;;;;;;ACAA;;;;A;;;;;;;;ACEA;;;;;;ACCA;;;;;;ACFA;;;;;;ACDA;;;;;;ACCA;;;;;;ACAA;;;;;;ACEA;;;;;;ACDA;;;;;;ACDA;;;;;;ACDA;;;;;;ACCA;;;;A;;;;;;;;ACAA;;;;;;ACDA;;;;;;ACAA;;;;;;ACAA;;;;;;ACCA;;;;;;ACAA;;;;A;;;;;;;;;;;;;;ACDA;;;;;;ACEA;;;;A;;;;;;;;ACDA;;;;;;ACDA;;;;;;ACCA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;A;;;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACDA;;;;;;ACAA;;;;;;ACCA;;;;;;ACAA;;;;A;;;;;;;;ACDA;;;;;;ACCA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACyDM,SAAU,YAAS;AAAO,MAAA,SAAA,CAAA;WAAA,KAAA,GAAA,KAAA,UAAA,QAAA,MAAc;AAAd,WAAA,EAAA,IAAA,UAAA,EAAA;;AAC9B,MAAM,YAAY,aAAa,MAAM;AACrC,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAIhC,KAAC,YAAY,OAAO,QAAQ,QAAQ,SAAS,IAAI,OAAO,QAAQ,MAAM,GAAG,UAAU,UAAU;EAC/F,CAAC;AACH;AAlEA;;;AAEA;AACA;;;;;ACDA;;;;;;ACDA;;;;;;ACDA;;;;;;ACCA;;;;;;AC2CM,SAAU,UAAa,UAA8B;AACzD,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAChC,cAAU,QAAQ,EAAE,UAAU,yBAAyB,YAAY,WAAA;AAAM,aAAA,WAAW,SAAQ;IAAnB,GAAuB,IAAI,CAAC;AACrG,KAAC,WAAW,UAAU,OAAO,UAAU,UAAU;EACnD,CAAC;AACH;AAhDA;;;AACA;AACA;AACA;;;;;ACHA;;;;;;ACAA;;;;;;ACkFM,SAAU,SAAY,kBAAsDE,SAAuB;AACvG,SAAO,QAAQ,SAAC,QAAQ,YAAU;AAC1B,QAAAC,OAAuCD,YAAM,QAANA,YAAM,SAANA,UAAU,CAAA,GAA/C,KAAAC,KAAA,SAAA,UAAO,OAAA,SAAG,OAAI,IAAE,KAAAA,KAAA,UAAA,WAAQ,OAAA,SAAG,QAAK;AACxC,QAAI,WAAW;AACf,QAAI,YAAsB;AAC1B,QAAI,YAAiC;AACrC,QAAI,aAAa;AAEjB,QAAM,gBAAgB,WAAA;AACpB,oBAAS,QAAT,cAAS,SAAA,SAAT,UAAW,YAAW;AACtB,kBAAY;AACZ,UAAI,UAAU;AACZ,aAAI;AACJ,sBAAc,WAAW,SAAQ;;IAErC;AAEA,QAAM,oBAAoB,WAAA;AACxB,kBAAY;AACZ,oBAAc,WAAW,SAAQ;IACnC;AAEA,QAAM,gBAAgB,SAACC,QAAQ;AAC7B,aAAC,YAAY,UAAU,iBAAiBA,MAAK,CAAC,EAAE,UAAU,yBAAyB,YAAY,eAAe,iBAAiB,CAAC;IAAhI;AAEF,QAAM,OAAO,WAAA;AACX,UAAI,UAAU;AAIZ,mBAAW;AACX,YAAMA,SAAQ;AACd,oBAAY;AAEZ,mBAAW,KAAKA,MAAK;AACrB,SAAC,cAAc,cAAcA,MAAK;;IAEtC;AAEA,WAAO,UACL,yBACE,YAMA,SAACA,QAAK;AACJ,iBAAW;AACX,kBAAYA;AACZ,QAAE,aAAa,CAAC,UAAU,YAAY,UAAU,KAAI,IAAK,cAAcA,MAAK;IAC9E,GACA,WAAA;AACE,mBAAa;AACb,QAAE,YAAY,YAAY,aAAa,CAAC,UAAU,WAAW,WAAW,SAAQ;IAClF,CAAC,CACF;EAEL,CAAC;AACH;AA3IA;;;AACA;AACA;;;;;ACiDM,SAAU,aACd,UACA,WACAC,SAAuB;AADvB,MAAA,cAAA,QAAA;AAAA,gBAAA;EAAyC;AAGzC,MAAM,YAAY,MAAM,UAAU,SAAS;AAC3C,SAAO,SAAS,WAAA;AAAM,WAAA;EAAA,GAAWA,OAAM;AACzC;AA7DA;;;AACA;AAEA;;;;;ACHA;;;;;;ACAA;;;;;;ACCA;;;;;;ACCA;;;;A;;;;;;;;ACFA;;;;A;;;;;;;;ACEA;;;;A;;;;;;;;ACDA;;;;A;;;;;;;;;;;;;;ACcA;;;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAGA;AAGA;AACA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAGA;AAGA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AChNA,IAAAC,kBAAA;;;;A;;;;;;;;ACCA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;;;;;ACjHA;;;;;;;;;;;IAmBa;AAnBb;;AAEA;AAIA;AAaO,IAAM,MAAM;MACjB;MACA;MACA;MACA;MACA;MACA;MACA,KAAAC;MACA;MACA;MACA;;;;;;AC7BF,IAmBa;AAnBb;;;AACA;AAkBM,IAAO,gBAAP,MAAoB;MAA1B,cAAA;AACS,aAAA,oCAAoC,IAAI,MAAK;AAG7C,aAAA,mCAAmC,IAAI,MAAK;MAiDrD;;;;;MA3CS,0BACL,YACA,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AAA;AAAA,2BAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,aAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA,IAAAC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;;;ACtPA;AAAA;AAAA,MAAC,SAASC,IAAEC,KAAE;AAAC,kBAAU,OAAO,WAAS,eAAa,OAAO,SAAO,OAAO,UAAQA,IAAE,IAAE,cAAY,OAAO,UAAQ,OAAO,MAAI,OAAOA,GAAC,KAAGD,KAAE,eAAa,OAAO,aAAW,aAAWA,MAAG,MAAM,QAAMC,IAAE;AAAA,IAAC,GAAE,UAAM,WAAU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A;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAAA;;;AChHA,IAKa;AALb;AAAA;AAKO,IAAM,yBAAyB;AAAA,MACpC,MAAM;AAAA,MACN,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,QAAQ;AAAA,MA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A,SACA,WACA,oBACA,cAWA,MACF,gBACA,WACE,QACA,UACA,mBACA,aACA,YACA,QACA,OAEA,KACA,GACFC,IACE,GA6GF,GAMArB,IACEzB,KACFL,IACAoD,IACAhD,IACAE,IACA+C,IACAtD,KACAuD,IACArD,KACAE,IACAoD,IACAzD,KACA0D,IACAhD,IACAW,IACAsC,IACA5D,IACA6D,IACAC,IACAxB,KACAyB,IACA,GACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAnC,IACAoC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACA,GACAhD,KACA,IACE,IAwEA,IAkGA,IAmHF,IAwEE,IACF,IAUA,IACE,GACF9B,KACA+E,IACAC,IACA,IACE,IAQA,IAUF,IAQE,IASA,KACA,KAMF,KACE,KACF,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACE,KACF,KACA,KACAC,IACA,MACE,IAwEF,KAqBA,IAwEA,KACA,IACAC,IACA,KACA,KACA,KACA,IAKE,IAoBA,sBACA,eACA,oBACA,2BACA,eACA,wBACA,gCACA,aACA,WACA,6BACA,yBACA,qCACA,iBACA,YAeA,kBAQA,iBACA,kBAOA,iBACA,uBAEA,sBACA,uBAEA,sBACA,+BACA,uBACA,qBACA,wBACA,uBACA,iCACA,iBACA,kBAEA,SA2BA,UAqBA,SAEA5D,SA8BA,aAQA,KACA,sBA2BA,QAoFA,YAgBA,cAOA,WAqBA,KAKA,WAEA,WACA,WAOA,QAqCA,eAiBA6D,SAiEA,MACA,KAGA,eAeA,eA0CAjE,SACF,OACE,cACA,qBAIA,sBACA,YACA,aACA,YACA,eACA,UAcA,OA8GA,oBA0DA,oBAyDA,sBAGA,oBA2CA,SAuDA,UACA,QACA,WACA,qBA4EA,SACA,QAKA,KA0BAkE,QAqCA,KASA,aA2MA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AA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AA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A;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeH;AAAA,MACf,mBAAmBC;AAAA,MACnB,uBAAuBC;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA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AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA,mBAAmBC;AAAA,MACnB,mBAAmBC;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAWC;AAAA,MACX,cAAcC;AAAA,MACd;AAAA,MACA,aAAaC;AAAA,MACb,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,OAAOC;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,wBAAwBC;AAAA,MACxB,oBAAoBC;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAUC;AAAA,MACV,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA,OAAOC;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmBC;AAAA,MACnB,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,aAAaC;AAAA,MACb,eAAeC;AAAA,MACf,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA,qBAAqBC;AAAA,MACrB,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT,aAAaC;AAAA,MACb;AAAA,MACA,iBAAiBC;AAAA,MACjB,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,mBAAmBC;AAAA,MACnB,uBAAuBC;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkBC;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ,eAAeC;AAAA,MACf,gBAAgBC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,oBAAoBC;AAAA,MACpB,oBAAoBC;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAOC;AAAA,MACP;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,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AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQC;AAAA,MACR,WAAWC;AAAA,MACX,aAAaC;AAAA,MACb,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmBC;AAAA,MACnB,mBAAmBC;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,gBAAgBC;AAAA,MAChB,mBAAmBC;AAAA,MACnB;AAAA,MACA;AAAA,M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;AAAA,MACA;AAAA,MACA;AAAA,MACA,sBAAsBC;AAAA,MACtB,kBAAkBC;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQC;AAAA,MACR,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkBC;AAAA,MAClB,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmBC;AAAA,MACnB,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,qBAAqBC;AAAA,MACrB,iBAAiBC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQC;AAAA,MACR,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd,gBAAgBC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb;AAAA,MACA,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAUC;AAAA,MACV,YAAYC;AAAA,MACZ,QAAQC;AAAA,MACR;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,SAASC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiBC;AAAA,MACjB,aAAaC;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgBC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAYC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmBC;AAAA,MACnB,kBAAkBC;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAeC;AAAA,MACf,WAAWC;AAAA,MACX;AAAA,MACA;AAAA,MACA,aAAaC;AAAA,MACb,aAAaC;AAAA,MACb,eAAeC;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAcC;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA,QAAM,cAAc,CAAC;MACnB,OAAAX,SAAQ,CAAA;MACR,WAAW;MACX,QAAQ,CAAA;MACR,MAAAY,QAAO;MACP;IACF,IAAwB,CAAA,MAAO;AAC7B,UAAI,CAAC,OAAO,OAAOZ,MAAK,EAAE,QAAQ;AAChC,cAAM,IAAI;UACR;QAAA;MAEJ;AAEA,UAAI,OAAOY,UAAS,aAAa;AAC/B,cAAM,IAAI,MAAM,sDAAsD;MACxE;AAEA,YAAM,oBAAoB,MAAM,KAAKA,MAAK,iBAAiB,IAAI,QAAQ,GAAG,CAAC;AAE3E,wBAAkB,QAAQ,CAAClB,aAAY,eAAeA,UAAS,EAAE,UAAU,OAAAM,QAAO,MAAA,CAAO,CAAC;AAE1F,UAAI,aAAa;AACf,cAAM,YAAY,MAAM,KAAKY,MAAK,iBAAiB,UAAU,CAAC;AAE9D,kBAAU;UAAQ,CAAC,aACjB,YAAY;YACV,OAAAZ;YACA;YACA;YACA,MAAM,SAAS;YACf;UAAA,CACD;QAAA;MAEL;AAGA,UAAI,aAAa,eAAe;AAC9B,cAAM,qBAAqBY,MAAK,iBAAiB,aAAa;AAC9D,YAAI,mBAAmB,SAAS,GAAG;AACjC,kBAAQ;YACN;UAAA;AAEF,gBAAM,KAAK,kBAAkB,EAAE;YAAQ,CAAClB,aACtC,eAAeA,UAAS,EAAE,UAAU,aAAa,OAAAM,QAAO,MAAA,CAAO;UAAA;QAEnE;MACF;IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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", "names": ["global", "supportsAdoptingStyleSheets", "constructionToken", "cssTagCache", "CSSResult", "unsafeCSS", "css", "adoptStyles", "getCompatibleStyle", "globalThis", "ShadowRoot", "ShadyCSS", "nativeShadow", "Document", "prototype", "CSSStyleSheet", "Symbol", "WeakMap", "cssText", "strings", "safeToken", "this", "Error", "_strings", "styleSheet", "_styleSheet", "cacheable", "length", "get", "replaceSync", "set", "toString", "value", "String", "values", "reduce", "acc", "v", "idx", "renderRoot", "styles", "adoptedStyleSheets", "map", "s", "style", "document", "createElement", "nonce", "setAttribute", "textContent", "appendChild", "sheet", "rule", "cssRules", "is", "defineProperty", "getOwnPropertyDescriptor", "getOwnPropertyNames", "getOwnPropertySymbols", "getPrototypeOf", "global", "trustedTypes", "emptyStringForBooleanAttribute", "polyfillSupport", "JSCompiler_renameProperty", "defaultConverter", "notEqual", "defaultPropertyDeclaration", "ReactiveElement", "Object", "globalThis", "emptyScript", "reactiveElementPolyfillSupport", "prop", "_obj", "value", "type", "Boolean", "Array", "JSON", "stringify", "fromValue", "Number", "parse", "e", "old", "attribute", "String", "converter", "reflect", "useDefault", "hasChanged", "Symbol", "metadata", "litPropertyMetadata", "WeakMap", "HTMLElement", "initializer", "this", "__prepare", "_initializers", "push", "observedAttributes", "finalize", "__attributeToPropertyMap", "keys", "name", "options", "state", "prototype", "hasOwnProperty", "create", "wrapped", "elementProperties", "set", "noAccessor", "key", "descriptor", "getPropertyDescriptor", "get", "v", "oldValue", "call", "requestUpdate", "configurable", "enumerable", "superCtor", "Map", "finalized", "props", "properties", "propKeys", "p", "createProperty", "attr", "__attributeNameForProperty", "elementStyles", "finalizeStyles", "styles", "isArray", "Set", "flat", "Infinity", "reverse", "s", "unshift", "getCompatibleStyle", "toLowerCase", "constructor", "super", "__instanceProperties", "isUpdatePending", "hasUpdated", "__reflectingProperty", "__initialize", "__updatePromise", "Promise", "res", "enableUpdating", "_$changedProperties", "__saveInstanceProperties", "forEach", "i", "controller", "__controllers", "add", "renderRoot", "isConnected", "hostConnected", "delete", "instanceProperties", "size", "createRenderRoot", "shadowRoot", "attachShadow", "shadowRootOptions", "adoptStyles", "connectedCallback", "c", "_requestedUpdate", "disconnectedCallback", "hostDisconnected", "_old", "_$attributeToProperty", "attrValue", "toAttribute", "removeAttribute", "setAttribute", "ctor", "propName", "getPropertyOptions", "fromAttribute", "convertedValue", "__defaultValues", "useNewValue", "newValue", "hasAttribute", "_$changeProperty", "__enqueueUpdate", "initializeValue", "has", "__reflectingProperties", "reject", "result", "scheduleUpdate", "performUpdate", "shouldUpdate", "changedProperties", "willUpdate", "hostUpdate", "update", "__markUpdated", "_$didUpdate", "_changedProperties", "hostUpdated", "firstUpdated", "updated", "updateComplete", "getUpdateComplete", "__propertyToAttribute", "mode", "reactiveElementVersions", "trustFromTemplateString", "tsa", "stringFromTSA", "isArray", "hasOwnProperty", "Error", "policy", "createHTML", "resolveDirective", "part", "value", "parent", "attributeIndex", "noChange", "currentDirective", "__directives", "__directive", "nextDirectiveConstructor", "isPrimitive", "constructor", "_$initialize", "_$resolve", "values", "global", "wrap", "trustedTypes", "boundAttributeSuffix", "marker", "markerMatch", "nodeMarker", "d", "createMarker", "isIterable", "SPACE_CHAR", "textEndRegex", "commentEndRegex", "comment2EndRegex", "tagEndRegex", "singleQuoteAttrEndRegex", "doubleQuoteAttrEndRegex", "rawTextElement", "tag", "html", "svg", "mathml", "nothing", "templateCache", "walker", "getTemplateHtml", "Template", "TemplateInstance", "ChildPart", "AttributePart", "PropertyPart", "BooleanAttributePart", "EventPart", "ElementPart", "_$LH", "polyfillSupport", "render", "globalThis", "node", "createPolicy", "s", "Math", "random", "toFixed", "slice", "document", "createComment", "Array", "Symbol", "iterator", "RegExp", "type", "strings", "_$litType$", "for", "WeakMap", "createTreeWalker", "l", "length", "attrNames", "rawTextEndRegex", "regex", "i", "attrName", "match", "attrNameEndIndex", "lastIndex", "exec", "test", "end", "startsWith", "push", "options", "this", "parts", "nodeIndex", "attrNameIndex", "partCount", "el", "createElement", "currentNode", "content", "wrapper", "firstChild", "replaceWith", "childNodes", "nextNode", "nodeType", "hasAttributes", "name", "getAttributeNames", "endsWith", "realName", "statics", "getAttribute", "split", "m", "index", "ctor", "removeAttribute", "tagName", "textContent", "emptyScript", "append", "data", "indexOf", "_options", "innerHTML", "template", "_$parts", "_$disconnectableChildren", "_$template", "_$parent", "parentNode", "_$isConnected", "fragment", "creationScope", "importNode", "partIndex", "templatePart", "nextSibling", "_$setValue", "__isConnected", "startNode", "endNode", "_$committedValue", "_$startNode", "_$endNode", "isConnected", "directiveParent", "_$clear", "_commitText", "_commitTemplateResult", "_commitNode", "_commitIterable", "insertBefore", "_insert", "createTextNode", "result", "_$getTemplate", "h", "_update", "instance", "_clone", "get", "set", "itemParts", "itemPart", "item", "start", "from", "_$notifyConnectionChanged", "n", "remove", "element", "fill", "String", "valueIndex", "noCommit", "change", "v", "_commitValue", "setAttribute", "toggleAttribute", "super", "newListener", "oldListener", "shouldRemoveListener", "capture", "once", "passive", "shouldAddListener", "removeEventListener", "addEventListener", "event", "call", "host", "handleEvent", "_boundAttributeSuffix", "_marker", "_markerMatch", "_HTML_RESULT", "_getTemplateHtml", "_TemplateInstance", "_isIterable", "_resolveDirective", "_ChildPart", "_AttributePart", "_BooleanAttributePart", "_EventPart", "_PropertyPart", "_ElementPart", "litHtmlPolyfillSupport", "litHtmlVersions", "container", "partOwnerNode", "renderBefore", "global", "LitElement", "polyfillSupport", "_$LE", "globalThis", "ReactiveElement", "constructor", "this", "renderOptions", "host", "__childPart", "createRenderRoot", "renderRoot", "super", "renderBefore", "firstChild", "changedProperties", "value", "render", "hasUpdated", "isConnected", "update", "connectedCallback", "setConnected", "disconnectedCallback", "noChange", "litElementHydrateSupport", "litElementPolyfillSupport", "_$attributeToProperty", "el", "name", "_$changedProperties", "litElementVersions", "push", "isServer", "uni", "prefix", "c", "r", "v", "resolve", "value", "x", "resolve", "d", "b", "s", "e", "t", "p", "i", "key", "c", "r", "f", "_", "context", "__runInitializers", "value", "x", "prefix", "P", "resolve", "body", "y", "g", "n", "v", "m", "o", "k", "a", "j", "from", "l", "raw", "env", "async", "next", "path", "__assign", "k2", "message", "value", "i", "index", "value", "Subscription", "e", "_a", "empty", "handler", "timeout", "handle", "value", "_a", "Subscriber", "next", "value", "ConsumerObserver", "SafeSubscriber", "x", "_a", "value", "Observable", "subscribe", "observable", "next", "resolve", "x", "OperatorSubscriber", "value", "err", "_a", "ConnectableObservable", "handle", "timestamp", "timestamp", "now", "Subject", "value", "_a", "observable", "AnonymousSubject", "BehaviorSubject", "_a", "value", "ReplaySubject", "value", "_a", "i", "now", "last", "AsyncSubject", "_a", "value", "Action", "delay", "handler", "timeout", "handle", "AsyncAction", "delay", "_a", "e", "handle", "handle", "AsapAction", "delay", "_a", "Scheduler", "now", "delay", "AsyncScheduler", "now", "AsapScheduler", "QueueAction", "delay", "QueueScheduler", "AnimationFrameAction", "delay", "_a", "AnimationFrameScheduler", "VirtualTimeScheduler", "_a", "VirtualAction", "index", "delay", "a", "b", "value", "x", "value", "_a", "value", "i", "value", "process", "delay", "repeat", "delay", "value", "delay", "i", "iterator", "value", "_a", "iterator", "value", "_a", "NotificationKind", "Notification", "message", "message", "value", "config", "_a", "first", "delay", "value", "map", "index", "value", "map", "expand", "buffer", "index", "value", "a", "i", "map", "b", "_a", "handler", "add", "remove", "n", "index", "value", "value", "b", "count", "value", "buffer", "_a", "buffer", "value", "value", "value", "now", "config", "_a", "value", "config", "init_partition", "init_combineLatest", "init_concat", "init_merge", "init_partition", "init_race", "init_zip", "map", "i", "data", "dist_ts_exports", "init_dist_ts", "property", "options", "protoOrTarget", "nameOrContext", "standardProperty", "proto", "name", "hasOwnProperty", "constructor", "createProperty", "Object", "getOwnPropertyDescriptor", "undefined", "defaultPropertyDeclaration", "attribute", "type", "String", "converter", "defaultConverter", "reflect", "hasChanged", "notEqual", "target", "context", "kind", "metadata", "properties", "globalThis", "litPropertyMetadata", "get", "set", "Map", "create", "wrapped", "v", "oldValue", "call", "this", "requestUpdate", "_$changeProperty", "value", "Error", "init_property", "dist_ts_exports", "init_dist_ts", "timeout", "dist_ts_exports", "init_dist_ts", "string", "patterns", "string", "index", "dist_ts_exports", "init_dist_ts", "E", "m", "C", "w", "T", "s", "D", "e", "A", "t", "r", "b", "v", "k", "g", "n", "i", "a", "o", "h", "u", "d", "l", "y", "R", "p", "_", "x", "P", "f", "c", "M", "value", "context", "months", "days", "defaultOptions", "context", "normalize", "a", "b", "max", "context", "init_max", "min", "context", "init_min", "interval", "end", "min", "max", "init_max", "init_min", "index", "index", "days", "value", "init_isDate", "init_isDate", "number", "context", "interval", "end", "interval", "end", "interval", "end", "interval", "end", "interval", "end", "interval", "end", "interval", "end", "interval", "end", "index", "end", "end", "interval", "end", "defaultOptions", "now", "now", "count", "format", "value", "context", "index", "number", "string", "key", "findIndex", "value", "string", "value", "value", "index", "defaultOptions", "defaultOptions", "number", "milliseconds", "localize", "timestamp", "formatLong", "format", "defaultOptions", "formatter", "formatDistance", "defaultOptions", "months", "days", "init_formatDistance", "defaultOptions", "milliseconds", "days", "months", "formatDistance", "init_formatDistance", "defaultOptions", "format", "m", "value", "format", "format", "months", "days", "milliseconds", "formatRelative", "defaultOptions", "init_formatRelative", "lastDayOfMonth", "getDefaultOptions", "a", "b", "defaultOptions", "interval", "end", "init_interval", "interval", "end", "months", "days", "value", "value", "context", "match", "match", "value", "init_constants", "n", "init_constants", "match", "value", "match", "value", "value", "value", "match", "value", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "isLeapYear", "init_constants", "match", "value", "isLeapYear", "defaultOptions", "match", "value", "match", "value", "match", "value", "match", "value", "match", "value", "match", "value", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "init_constants", "match", "value", "value", "init_constants", "value", "init_constants", "value", "value", "value", "defaultOptions", "getDefaultOptions", "longFormattingTokensRegExp", "formattingTokensRegExp", "unescapedLatinCharacterRegExp", "cleanEscapedString", "a", "b", "index", "escapedStringRegExp", "doubleQuoteRegExp", "isMatch", "interval", "a", "b", "defaultOptions", "formattingTokensRegExp", "cleanEscapedString", "formatter", "unescapedLatinCharacterRegExp", "escapedStringRegExp", "doubleQuoteRegExp", "months", "days", "milliseconds", "milliseconds", "milliseconds", "months", "months", "timestamp", "value", "isLeapYearIndex", "setDefaultOptions", "defaultOptions", "milliseconds", "defaultOptions", "now", "now", "months", "days", "formatDistance", "formatRelative", "getDefaultOptions", "interval", "isMatch", "max", "min", "setDefaultOptions", "init_formatDistance", "init_formatRelative", "init_interval", "init_isDate", "init_max", "init_min", "t", "e", "n", "r", "i", "s", "u", "a", "o", "c", "f", "h", "d", "l", "$", "y", "M", "m", "v", "g", "D", "p", "S", "_", "w", "O", "b", "k", "e", "o", "t", "milliseconds", "value", "milliseconds", "value", "add", "days", "count", "init_dist_ts", "dayjs", "isToday", "e", "dist_ts_exports", "dayjs", "units", "dist_ts_exports", "dist_ts_exports", "init_dist_ts", "index", "root", "value", "node", "filter", "index", "root", "i", "init_dist_ts", "dist_ts_exports", "resolve", "next", "dist_ts_exports", "resolve", "keys", "key", "prefix", "c", "r", "v", "dist_ts_exports", "keys", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "dist_ts_exports", "symbolTree", "dist_ts_exports", "init_dist_ts", "value", "a", "b", "index", "string", "base64", "x", "isMatch", "index2", "_", "dist_ts_exports", "base64ToUint8Array", "isUint8Array", "base64", "init_dist_ts", "message", "dist_ts_exports", "init_dist_ts", "index", "dist_ts_exports", "init_dist_ts", "min", "max", "range", "stringArg", "match", "i", "a", "b", "c", "encoder", "i", "i", "stringArg", "dist_ts_exports", "init_dist_ts", "root", "map", "set", "value", "index", "n", "key", "e", "transform", "hasOwnProperty", "objectToString", "Buffer", "Symbol", "Uint8Array", "splice", "DataView", "Map", "Promise", "Set", "WeakMap", "data", "pairs", "isArray", "keys", "isObject", "isFunction", "buffer", "type", "isArrayLike", "data", "f", "node", "a", "b", "stringify", "i", "keys", "key", "value", "init_dist_ts", "stableJson2", "data", "value", "space", "parse", "text", "x", "isBufferLike", "isArray", "key", "buffer", "dist_ts_exports", "parse", "stringify", "init_dist_ts", "sanitize", "key", "e", "order", "a", "b", "base64", "lodashCloneDeep", "value", "resolve", "value", "version", "target", "c", "init_dist_ts", "dist_ts_exports", "key", "dist_ts_exports", "dist_ts_exports", "init_dist_ts", "init_dist_ts", "dist_ts_exports", "buffer", "value", "key", "d", "value", "key", "context", "metadata", "handler", "context", "delay", "delay", "dist_ts_exports", "key", "deferred", "timeout", "dist_ts_exports", "init_timeout", "init_timeout", "timeout", "data", "data", "dist_ts_exports", "init_dist_ts", "isounique", "init_dist_ts", "dist_ts_exports", "e", "dist_ts_exports", "value", "hooks", "handler", "path", "dist_ts_exports", "index", "key", "value", "isounique", "counter", "dist_ts_exports", "isounique", "dist_ts_exports", "init_dist_ts", "isPromise", "min", "max", "microSeconds", "iterator", "next", "value", "e", "create", "close", "postMessage", "onMessage", "canBeUsed", "averageResponseTime", "microSeconds", "type", "localStorage", "e", "postMessage", "key", "value", "listener", "create", "canBeUsed", "close", "onMessage", "averageResponseTime", "userAgent", "microSeconds", "type", "create", "microSeconds", "close", "postMessage", "onMessage", "canBeUsed", "averageResponseTime", "type", "m", "type", "isPromise", "s", "o", "listenerFn", "BroadcastChannel", "postMessage", "obj", "close", "add", "remove", "add", "isLeaderListener", "LeaderElectionWebLock", "listener", "resolved", "whenDeathListener", "fillOptionsWithDefaults", "LeaderElection", "hasLeaderListener", "hasLeader", "applyRun", "stopCriteriaPromiseResolve", "handleMessage", "awaitLeadership", "die", "listener", "init_dist_ts", "BroadcastChannel", "dist_ts_exports", "message", "dist_ts_exports", "init_dist_ts", "isObject", "toArray", "extend", "index", "key", "repeat", "string", "count", "number", "mark", "toString", "buffer", "position", "indent", "head", "end", "toString", "map", "data", "type", "index", "Schema", "definition", "data", "data", "data", "Schema", "data", "max", "data", "max", "c", "data", "max", "index", "value", "v", "d", "data", "value", "v", "d", "Schema", "Schema", "data", "match", "data", "data", "code", "max", "map", "data", "index", "data", "index", "keys", "data", "key", "Schema", "data", "_", "data", "params", "body", "isFunction", "Schema", "c", "key", "value", "i", "message", "throwError", "match", "handle", "prefix", "end", "index", "count", "type", "iterator", "map", "keys", "index", "type", "string", "handle", "position", "next", "c", "i", "indent", "match", "prefix", "end", "require_js_yaml", "__importStar", "plugins", "__importStar", "isArray", "isPlainObject", "key", "setProperty", "getProperty", "extend", "i", "value", "next", "index", "wrap", "value", "value", "point", "init_lib", "init_lib", "init_lib", "index", "init_lib", "path", "extname", "end", "index", "code", "normalize", "value", "path", "index", "assertPath", "path", "isUint8Array", "value", "init_lib", "index", "field", "basename", "dirname", "extname", "message", "decoder", "init_lib", "self", "value", "value", "node", "isUint8Array", "init_lib", "index", "extend", "key", "self", "resolve", "file", "tree", "compiler", "namespace", "add", "parameters", "plugins", "init_lib", "value", "count", "index", "code", "checks", "index", "all", "node", "key", "type", "value", "ok", "init_lib", "context", "init_lib", "d", "is", "node", "index", "value", "visit", "empty", "init_lib", "init_lib", "list", "pairs", "node", "index", "siblings", "handler", "find", "replace", "match", "position", "value", "init_lib", "init_lib", "node", "_", "domain", "path", "match", "prefix", "trail", "code", "init_lib", "init_lib", "value", "node", "_", "value", "exit", "index", "init_lib", "init_lib", "node", "_", "exit", "value", "init_lib", "init_lib", "value", "table", "row", "sizes", "columnIndex", "cell", "code", "key", "one", "value", "handlers", "own", "extension", "index", "key", "own", "map", "node", "_", "exit", "value", "map", "list", "index", "_", "index", "value", "index", "count", "max", "node", "node", "_", "raw", "exit", "value", "map", "node", "_", "exit", "value", "code", "code", "node", "_", "exit", "between", "close", "node", "index", "init_lib", "init_lib", "value", "index", "init_lib", "init_lib", "node", "node", "_", "exit", "subexit", "value", "node", "node", "_", "exit", "value", "node", "_", "type", "exit", "value", "node", "_", "value", "index", "match", "position", "node", "raw", "node", "_", "exit", "value", "node", "_", "type", "exit", "value", "text", "list", "node", "exit", "index", "value", "node", "exit", "value", "map", "index", "node", "_", "exit", "value", "init_lib", "init_lib", "node", "_", "d", "node", "_", "exit", "between", "close", "node", "_", "_", "value", "list", "join", "value", "characterReference", "value", "code", "value", "$2", "head", "hex", "node", "children", "index", "handle", "value", "children", "index", "value", "map", "match", "one", "config", "value", "index", "match", "position", "end", "a", "b", "config", "now", "value", "join", "exit", "value", "node", "config", "init_lib", "init_lib", "d", "value", "node", "_", "exit", "children", "index", "init_lib", "init_lib", "node", "head", "siblings", "index", "value", "init_lib", "init_lib", "init_lib", "init_lib", "list", "remove", "end", "all", "index", "extension", "code", "value", "list", "handlers", "type", "text", "ok", "self", "data", "code", "buffer", "trail", "index", "value", "replace", "value", "index", "skip", "code", "replace", "next", "init_html", "init_html", "constructs", "context", "index", "resolve", "context", "index", "text", "end", "ok", "attentionMarkers", "previous", "code", "close", "point", "ok", "code", "next", "ok", "type", "max", "code", "prefix", "ok", "code", "ok", "self", "code", "exit", "ok", "code", "ok", "self", "max", "code", "value", "ok", "self", "code", "effects", "nok", "start", "ok", "self", "code", "furtherStart", "index", "previous", "code", "ok", "self", "between", "data", "list", "initial", "index", "end", "count", "n", "index", "context", "previous", "start", "ok", "previous", "code", "self", "ok", "type", "max", "code", "raw", "ok", "type", "self", "code", "ok", "type", "code", "begin", "ok", "code", "ok", "self", "code", "titleBefore", "definition", "init_definition", "ok", "code", "context", "content", "text", "ok", "code", "data", "index", "ok", "self", "buffer", "code", "value", "ok", "self", "index", "code", "comment", "end", "value", "index", "context", "close", "text", "ok", "self", "code", "ok", "self", "code", "ok", "self", "code", "ok", "code", "ok", "code", "thematicBreak", "init_thematic_break", "ok", "self", "code", "thematicBreak", "list", "init_list", "init_thematic_break", "context", "index", "content", "text", "definition", "heading", "ok", "self", "code", "paragraph", "init_definition", "init_list", "init_thematic_break", "ok", "self", "index", "code", "context", "string", "data", "indent", "tokenizeIndent", "init_syntax", "config", "emptyOptions", "value", "own", "counter", "index", "init_html", "init_syntax", "init_html", "init_html", "single", "context", "index", "strikethrough", "text", "insideSpan", "ok", "previous", "code", "init_syntax", "init_html", "init_syntax", "value", "replace", "init_html", "remove", "add", "index", "a", "b", "element", "index", "ok", "self", "code", "index", "type", "next", "context", "cell", "map", "range", "now", "end", "a", "b", "table", "init_syntax", "init_html", "init_syntax", "filter", "value", "init_lib", "init_lib", "init_html", "ok", "self", "code", "close", "init_syntax", "init_html", "init_syntax", "self", "emptyOptions", "data", "init_lib", "init_lib", "buffer", "handlers", "data", "context", "encode", "raw", "compile", "index", "head", "body", "handle", "hasOwnProperty", "key", "value", "lineEnding", "previous", "count", "previous", "code", "data", "content", "init_content", "self", "code", "point", "index", "ok", "document", "self", "initial", "code", "self", "constructs", "text", "code", "data", "list", "index", "context", "init_text", "document", "flow", "string", "text", "init_text", "list", "definition", "thematicBreak", "from", "point", "exit", "context", "now", "value", "code", "type", "_", "constructs", "map", "all", "list", "ok", "head", "index", "parse", "constructs", "create", "content", "document", "text", "initial", "from", "init_parse", "init_content", "init_text", "buffer", "value", "end", "match", "next", "code", "value", "parse", "init_parse", "value", "parse", "config", "opener", "link", "heading", "blockQuote", "buffer", "codeText", "definition", "emphasis", "hardBreak", "html", "image", "listItem", "list", "paragraph", "strong", "thematicBreak", "configure", "data", "compile", "context", "exit", "index", "handler", "own", "point", "create", "node", "siblings", "close", "text", "string", "children", "type", "d", "extension", "key", "init_lib", "init_lib", "self", "init_lib", "init_lib", "namespace", "format", "i", "n", "c", "create", "format", "formatter", "import_format", "index", "option", "own", "flow", "index", "matter", "code", "buffer", "ok", "self", "position", "bufferIndex", "init_syntax", "init_html", "init_syntax", "init_html", "exit", "index", "matter", "close", "data", "node", "unsafe", "handlers", "fence", "handle", "pick", "init_lib", "init_lib", "self", "emptyOptions", "data", "init_lib", "init_lib", "init_types", "init_types", "$", "_", "index", "type", "value", "key", "map", "set", "message", "buffer", "EMPTY", "toString", "serialize", "init_types", "value", "type", "$", "_", "index", "key", "message", "serialize", "point", "type", "node", "position", "end", "init_lib", "init_lib", "node", "replace", "unsafe", "type", "element", "root", "text", "index", "value", "content", "own", "_", "children", "properties", "key", "safe", "definition", "ok", "position", "init_lib", "init_lib", "blockquote", "node", "init_blockquote", "hardBreak", "node", "init_break", "code", "node", "value", "properties", "init_code", "node", "emphasis", "node", "init_emphasis", "footnoteReference", "node", "index", "counter", "link", "heading", "node", "init_heading", "html", "node", "init_html", "node", "head", "imageReference", "node", "definition", "properties", "init_image_reference", "image", "node", "properties", "init_image", "inlineCode", "node", "text", "init_inline_code", "linkReference", "node", "definition", "properties", "init_link_reference", "link", "node", "properties", "init_link", "listItem", "node", "properties", "children", "head", "paragraph", "index", "init_list_item", "list", "node", "properties", "index", "init_list", "paragraph", "node", "init_paragraph", "root", "node", "init_root", "strong", "node", "init_strong", "node", "head", "body", "end", "node", "siblings", "cells", "cell", "properties", "result", "node", "value", "search", "match", "last", "end", "code", "text", "node", "init_text", "thematicBreak", "node", "init_thematic_break", "init_blockquote", "init_break", "init_code", "init_emphasis", "init_heading", "init_html", "init_image_reference", "init_image", "init_inline_code", "init_link_reference", "init_link", "init_list_item", "init_list", "init_paragraph", "init_root", "init_strong", "init_text", "init_thematic_break", "blockquote", "hardBreak", "code", "emphasis", "footnoteReference", "heading", "html", "imageReference", "image", "inlineCode", "linkReference", "link", "listItem", "list", "paragraph", "root", "strong", "text", "thematicBreak", "_", "definition", "content", "children", "listItem", "emptyOptions", "handlers", "all", "one", "patch", "wrap", "node", "map", "type", "handle", "own", "children", "unknown", "index", "head", "from", "position", "data", "value", "code", "node", "init_lib", "init_lib", "init_schema", "space", "merge", "space", "definition", "init_merge", "init_schema", "normalize", "value", "init_types", "key", "value", "init_types", "space", "index", "create", "definition", "properties", "value", "normalize", "init_schema", "aria", "init_types", "create", "_", "html", "init_html", "init_types", "create", "init_types", "create", "create", "_", "create", "create", "_", "find", "value", "normalize", "init_find", "html", "svg", "init_merge", "init_html", "init_find", "merge", "aria", "value", "index", "all", "code", "next", "value", "code", "next", "value", "code", "next", "own", "value", "code", "next", "code", "value", "init_lib", "init_lib", "comment", "node", "_2", "encode", "doctype", "_2", "_3", "parse", "value", "index", "end", "stringify", "parse", "value", "stringify", "empty", "value", "init_lib", "init_lib", "increment", "index", "siblings", "next", "handlers", "node", "index", "own", "_", "index", "next", "html", "p", "html", "node", "head", "child", "body", "index", "previous", "tbody", "element", "node", "index", "last", "svg", "content", "properties", "key", "value", "find", "x", "y", "stringify", "text", "node", "_", "init_text", "node", "index", "text", "init_text", "root", "node", "_2", "init_root", "invalid", "node", "unknown", "handle", "init_handle", "init_root", "init_text", "comment", "doctype", "element", "root", "text", "emptyOptions", "one", "all", "svg", "html", "node", "index", "handle", "children", "emptyChildren", "init_lib", "init_handle", "init_lib", "self", "handlers", "emptyOptions", "compiler", "init_lib", "init_lib", "self", "compiler", "init_lib", "init_lib", "extend", "i", "key", "repeat", "count", "string", "node", "is", "rules", "filter", "element", "isBlock", "isVoid", "text", "next", "Parser", "root", "e", "Node", "m", "content", "process", "self", "reduce", "join", "whitespace", "s2", "prefix", "index", "code", "match", "fence", "gfm", "strikethrough", "node", "content", "tr", "every", "n", "element", "index", "indexOf", "prefix", "key", "rules", "i", "dist_ts_exports", "init_dist_ts", "parse", "compile", "match", "stringify", "value", "message", "text", "index", "type", "path", "encode", "data", "params", "encoder", "decode", "keys", "key", "m", "i", "decoder", "end", "p", "first", "init_dist_ts", "message", "dist_ts_exports", "init_dist_ts", "init_plugins", "init_dist_ts", "n", "b", "W", "H", "a", "c", "d", "e", "f", "g", "h", "j", "i", "hex", "init_plugins", "buffer", "i", "value", "dist_ts_exports", "init_smartenv_plugins", "init_interfaces", "Smartenv", "init_smartenv_classes_smartenv", "init_smartenv_plugins", "init_interfaces", "t", "dist_ts_exports", "Smartenv", "init_dist_ts", "init_smartenv_classes_smartenv", "import_lodash", "import_fast_json_stable_stringify", "stableJson", "init_smartjson_plugins", "init_dist_ts", "stableJson2", "base64Encode", "data", "base64Decode", "stringify", "value", "space", "replacer", "parse", "text", "reviver", "isEncodedBuffer", "x", "isObject", "isString", "isBufferLike", "isArray", "init_bufferhandling", "init_smartjson_plugins", "key", "buffer", "dist_ts_exports", "Smartjson", "deepEqualJsonLStrings", "deepEqualObjects", "foldDec", "parse", "parseBase64", "parseJsonL", "stableOneWayStringify", "stringify", "stringifyBase64", "stringifyJsonL", "stringifyPretty", "init_dist_ts", "init_smartjson_plugins", "init_bufferhandling", "sanitize", "replacer", "key", "e", "order", "a", "b", "stableJson", "base64", "lodashCloneDeep", "value", "context", "init_dist_ts", "dist_ts_exports", "e", "resolved", "value", "dist_ts_exports", "init_dist_ts", "key", "path", "first", "value", "dist_ts_exports", "init_dist_ts", "init_webrequest_plugins", "init_dist_ts", "dist_ts_exports", "init_dist_ts", "init_webrequest_plugins", "buffer", "Deferred", "defer", "init_smartpromise_classes_deferred", "resolve", "CumulativeDeferred", "cumulativeDefer", "init_smartpromise_classes_cumulativedeferred", "init_smartpromise_classes_deferred", "defer", "dist_ts_exports", "CumulativeDeferred", "Deferred", "cumulativeDefer", "defer", "getFirstTrueOrFalse", "map", "rejectedPromise", "resolvedPromise", "timeoutAndContinue", "timeoutWrap", "init_dist_ts", "init_smartpromise_classes_deferred", "init_smartpromise_classes_cumulativedeferred", "value", "x", "resolve", "dist_ts_exports", "Timeout", "delayFor", "delayForRandom", "init_dist_ts", "timeout", "defer", "init_dist_ts", "init_dist_ts", "init_dist_ts", "init_dist_ts", "init_dist_ts", "init_code", "init_container", "init_dist_ts", "init_dist_ts", "init_content", "init_link", "init_link", "dist_ts_exports", "init_dist_ts", "init_code", "init_container", "init_content", "init_dist_ts", "init_interfaces", "init_interfaces", "init_interfaces", "init_interfaces", "dist_ts_exports", "dist_ts_exports", "init_dist_ts", "import_symbol_tree", "init_dist_ts", "FastMap", "keys", "key", "uni", "ObjectMap", "prefix", "c", "r", "v", "FastMap", "dist_ts_exports", "keys", "Stringmap", "dist_ts_exports", "clamp", "min", "max", "x", "y", "t", "n", "d", "debounce", "delay", "timer", "context", "from", "lerp", "content", "i", "element", "e", "path", "node", "data", "value", "global", "__assign", "t", "s", "i", "n", "p", "e", "isString", "isFunction", "isArray", "key", "_", "b", "c", "d", "$", "getSize", "listener", "m", "defaultOptions", "SweetScroll", "_a", "options", "value", "initial", "data", "type", "init_dist_ts", "ObjectMap", "Stringmap", "FastMap", "SweetScroll", "dist_ts_exports", "i", "dist_ts_exports", "Key", "keys", "dist_ts_exports", "key", "init_dist_ts", "dist_ts_exports", "b", "i", "SweetScroll", "dist_ts_exports", "import_sweet_scroll", "init_dist_ts", "dist_ts_exports", "init_dist_ts", "isounique", "init_plugins", "init_dist_ts", "init_property", "i", "n", "init_plugins", "init_dist_ts", "isounique", "i", "brand", "unwrapStaticValue", "unsafeStatic", "literal", "stringsCache", "withStatic", "html", "svg", "mathml", "Symbol", "for", "value", "r", "_$litStatic$", "strings", "values", "reduce", "acc", "v", "idx", "Error", "Map", "coreTag", "l", "length", "staticValue", "dynamicValue", "staticStrings", "dynamicValues", "s", "i", "hasStatics", "push", "key", "join", "get", "raw", "set", "coreHtml", "coreSvg", "coreMathml", "PartType", "directive", "Directive", "ATTRIBUTE", "CHILD", "PROPERTY", "BOOLEAN_ATTRIBUTE", "EVENT", "ELEMENT", "c", "values", "_$litDirective$", "_partInfo", "_$isConnected", "this", "_$parent", "part", "parent", "attributeIndex", "__part", "__attributeIndex", "props", "update", "_part", "render", "UnsafeHTMLDirective", "unsafeHTML", "Directive", "partInfo", "super", "this", "_value", "nothing", "type", "PartType", "CHILD", "Error", "constructor", "directiveName", "value", "_templateResult", "noChange", "strings", "raw", "_$litType$", "resultType", "values", "directive", "init_unsafe_html", "customElement", "tagName", "classOrTarget", "context", "addInitializer", "customElements", "define", "init_custom_element", "state", "options", "property", "attribute", "eventOptions", "options", "protoOrValue", "nameOrContext", "method", "Object", "assign", "desc", "obj", "name", "descriptor", "configurable", "enumerable", "Reflect", "decorate", "Object", "defineProperty", "query", "selector", "cache", "protoOrTarget", "nameOrContext", "descriptor", "doQuery", "el", "renderRoot", "querySelector", "get", "set", "key", "Symbol", "this", "v", "desc", "result", "call", "hasUpdated", "queryAll", "selector", "obj", "name", "desc", "get", "this", "renderRoot", "fragment", "document", "createDocumentFragment", "querySelectorAll", "queryAsync", "selector", "obj", "name", "desc", "get", "this", "updateComplete", "renderRoot", "querySelector", "queryAssignedElements", "options", "obj", "name", "slot", "selector", "slotSelector", "desc", "get", "slotEl", "this", "renderRoot", "querySelector", "elements", "assignedElements", "filter", "node", "matches", "queryAssignedNodes", "options", "obj", "name", "slot", "slotSelector", "desc", "get", "slotEl", "this", "renderRoot", "querySelector", "assignedNodes", "init_state", "init_plugins", "__esDecorate", "value", "__runInitializers", "dist_ts_exports", "domtools", "ChildPart", "wrap", "isPrimitive", "TemplateResultType", "isTemplateResult", "isCompiledTemplateResult", "isDirectiveResult", "getDirectiveClass", "isSingleExpression", "createMarker", "insertPart", "setChildPartValue", "RESET_VALUE", "setCommittedValue", "getCommittedValue", "removePart", "clearPart", "_ChildPart", "_$LH", "node", "value", "HTML", "SVG", "MATHML", "type", "h", "part", "strings", "document", "createComment", "containerPart", "refPart", "container", "_$startNode", "parentNode", "refNode", "_$endNode", "startNode", "insertBefore", "endNode", "options", "nextSibling", "oldParent", "_$parent", "parentChanged", "newConnectionState", "_$reparentDisconnectables", "_$notifyConnectionChanged", "_$isConnected", "start", "n", "directiveParent", "_$setValue", "_$committedValue", "_$clear", "remove", "reparentDisconnectables", "newParent", "this", "_$disconnectableChildren", "removeDisconnectableFromParent", "_$parent", "addDisconnectableToParent", "notifyChildPartConnectedChanged", "isConnected", "isClearingValue", "fromPartIndex", "value", "_$committedValue", "children", "size", "Array", "isArray", "i", "length", "notifyChildrenConnectedChanged", "installDisconnectAPI", "AsyncDirective", "parent", "obj", "delete", "Set", "has", "add", "type", "PartType", "CHILD", "_$notifyConnectionChanged", "_$reparentDisconnectables", "Directive", "constructor", "part", "attributeIndex", "super", "_$initialize", "_$isConnected", "isClearingDirective", "reconnected", "disconnected", "isSingleExpression", "__part", "_$setValue", "newValues", "__attributeIndex", "init_async_directive", "init_async_directive", "f", "value", "e", "init_async_directive", "init_dist_ts", "f", "observable", "v", "e", "init_async_directive", "init_dist_ts", "f", "observable", "v", "e", "forAwaitOf", "PseudoWeakRef", "Pauser", "async", "iterable", "callback", "v", "ref", "this", "_ref", "disconnect", "deref", "constructor", "_promise", "_resolve", "get", "pause", "Promise", "resolve", "resume", "isPromise", "_infinity", "UntilDirective", "until", "x", "isPrimitive", "then", "AsyncDirective", "constructor", "this", "__lastRenderedIndex", "__values", "__weakThis", "PseudoWeakRef", "__pauser", "Pauser", "args", "find", "noChange", "_part", "previousValues", "previousLength", "length", "weakThis", "pauser", "isConnected", "disconnected", "i", "value", "Promise", "resolve", "async", "result", "get", "_this", "deref", "index", "indexOf", "setValue", "disconnect", "pause", "reconnected", "reconnect", "resume", "directive", "init_until", "AsyncReplaceDirective", "asyncReplace", "AsyncDirective", "constructor", "this", "__weakThis", "PseudoWeakRef", "__pauser", "Pauser", "value", "_mapper", "noChange", "_part", "mapper", "isConnected", "disconnected", "__value", "i", "weakThis", "pauser", "forAwaitOf", "async", "v", "get", "_this", "deref", "commitValue", "_index", "setValue", "disconnect", "pause", "reconnected", "reconnect", "resume", "directive", "asyncAppend", "directive", "AsyncReplaceDirective", "partInfo", "super", "type", "PartType", "CHILD", "Error", "part", "params", "this", "__childPart", "update", "value", "index", "clearPart", "newPart", "insertPart", "setChildPartValue", "init_async_append", "keyed", "directive", "Directive", "constructor", "this", "key", "nothing", "k", "v", "part", "setCommittedValue", "init_keyed", "generateMap", "repeat", "list", "start", "end", "map", "Map", "i", "set", "directive", "Directive", "partInfo", "super", "type", "PartType", "CHILD", "Error", "items", "keyFnOrTemplate", "template", "keyFn", "keys", "values", "index", "item", "this", "_getValuesAndKeys", "containerPart", "oldParts", "getCommittedValue", "newValues", "newKeys", "Array", "isArray", "_itemKeys", "oldKeys", "newParts", "newKeyToIndexMap", "oldKeyToIndexMap", "oldHead", "oldTail", "length", "newHead", "newTail", "setChildPartValue", "insertPart", "has", "oldIndex", "get", "oldPart", "newPart", "removePart", "setCommittedValue", "noChange", "init_repeat", "c", "i", "m", "init_until", "init_async_append", "init_keyed", "init_repeat", "dist_ts_exports", "t", "b", "n", "e", "r", "u", "o", "s", "init_dist_ts", "init_unsafe_html", "init_custom_element", "element", "a", "b", "init_dist_ts", "init_address", "init_contact", "init_dist_ts", "init_mongodescriptor", "init_objectaction", "init_objectstatus", "init_wrappeddata", "database_exports", "init_database", "init_mongodescriptor", "init_objectaction", "init_objectstatus", "init_wrappeddata", "init_document", "init_database", "init_business", "init_checkingaccount", "init_dist_ts", "init_currency", "init_expense", "init_dist_ts", "init_dist_ts", "init_payment", "init_transaction", "finance_exports", "init_finance", "init_checkingaccount", "init_currency", "init_expense", "init_payment", "init_transaction", "init_job", "init_finance", "init_contact", "init_letter", "init_business", "init_finance", "init_pdf", "init_project", "business_exports", "init_business", "init_address", "init_contact", "init_document", "init_job", "init_letter", "init_pdf", "init_project", "init_commitinfo", "init_statusobject", "code_exports", "init_code", "init_commitinfo", "init_statusobject", "init_container", "init_volumemount", "container_exports", "init_container", "init_volumemount", "init_article", "init_dist_ts", "init_author", "init_dist_ts", "init_documentationset", "init_article", "content_exports", "init_content", "init_article", "init_author", "init_documentationset", "init_date", "init_time", "general_exports", "init_general", "init_date", "init_time", "init_cert", "ICnameDescriptor", "init_cname", "init_cert", "init_device", "init_dns", "init_dnschallenge", "init_domaindelegation", "init_jwt", "init_networknode", "init_request", "init_reverseproxy", "init_ssh", "network_exports", "ICnameDescriptor", "init_network", "init_cert", "init_cname", "init_device", "init_dns", "init_dnschallenge", "init_domaindelegation", "init_jwt", "init_networknode", "init_request", "init_reverseproxy", "init_ssh", "init_product", "init_subscriptionplan", "init_product", "saas_exports", "init_saas", "init_subscriptionplan", "init_product", "storage_exports", "init_storage", "init_link", "init_menuitem", "init_linkblock", "website_exports", "init_website", "init_link", "init_menuitem", "init_linkblock", "init_typefest_own", "dist_ts_exports", "business_exports", "code_exports", "container_exports", "content_exports", "database_exports", "finance_exports", "general_exports", "network_exports", "saas_exports", "storage_exports", "website_exports", "init_dist_ts", "init_business", "init_code", "init_container", "init_database", "init_finance", "init_content", "init_general", "init_network", "init_saas", "init_storage", "init_website", "init_typefest_own", "init_plugins", "init_dist_ts", "init_dist_ts", "init_plugins", "b", "init_dist_ts", "t", "r", "n", "__esDecorate", "value", "b", "dist_ts_exports", "DeesWindowLayer", "__runInitializers", "domtools", "r", "a", "e", "n", "t", "o", "F", "u", "l", "i", "f", "ownKeys", "p", "get", "element", "css", "toArray", "node", "styles", "transform", "_ref", "path", "config", "s", "toHtml", "children", "prefix", "icons", "icon", "params", "dt", "value", "index", "arr", "Z", "key", "k", "mixout", "hooks", "c", "content", "_ref2", "resolve", "i2svg", "comment", "mark", "style", "root", "hclAdd", "hclRemove", "next", "position", "replace", "end", "noop", "M", "d", "h", "g", "m", "y", "w", "x", "b", "I", "v", "S", "A", "P", "j", "B", "N", "D", "T", "C", "W", "K", "R", "L", "E", "_", "O", "$", "reduce", "parse", "text", "set", "bindInternal4", "keys", "iterator", "build", "lookup", "emptyCanonicalIcon", "Library", "add", "definition", "noAuto", "autoReplace", "begin", "render", "mask", "layer", "counter", "provides", "hasPseudoElement", "parseCSSRuleForPseudos", "selector", "providers", "watch", "parseTransformString", "first", "prefix", "faFontAwesome", "faFontAwesomeFlag", "faFontAwesomeLogoFull", "icons", "prefix", "faSquareMinus", "faMinusSquare", "faCalendarCheck", "faFaceKiss", "faKiss", "faPaste", "faFileClipboard", "faHandPointLeft", "faFileExcel", "faEnvelope", "faSquareCaretDown", "faCaretSquareDown", "faTruck", "faBell", "faMessage", "faCommentAlt", "faFaceDizzy", "faDizzy", "faCalendarDays", "faCalendarAlt", "faHandPointUp", "faHandLizard", "faSquareFull", "faCirclePause", "faPauseCircle", "faHardDrive", "faHdd", "faFileZipper", "faFileArchive", "faFloppyDisk", "faSave", "faFaceGrinTongueSquint", "faGrinTongueSquint", "faCamera", "faCameraAlt", "faFaceGrinStars", "faGrinStars", "faEye", "faFaceSadTear", "faSadTear", "faShareFromSquare", "faShareSquare", "faNoteSticky", "faStickyNote", "faHandBackFist", "faHandRock", "faChessQueen", "faFaceGrinTears", "faGrinTears", "faPenToSquare", "faEdit", "faFaceGrinBeamSweat", "faGrinBeamSweat", "faClock", "faClockFour", "faFaceLaughWink", "faLaughWink", "faPaperPlane", "faHeart", "faFontAwesome", "faFontAwesomeFlag", "faFontAwesomeLogoFull", "faClone", "faFolderOpen", "faWindowMinimize", "faStarHalf", "faAlarmClock", "faNewspaper", "faHospital", "faHospitalAlt", "faHospitalWide", "faCircleStop", "faStopCircle", "faObjectUngroup", "faComment", "faChessPawn", "faCalendarPlus", "faClipboard", "faThumbsDown", "faIdBadge", "faSquareCheck", "faCheckSquare", "faChessBishop", "faEnvelopeOpen", "faCircleXmark", "faTimesCircle", "faXmarkCircle", "faSquareCaretUp", "faCaretSquareUp", "faFileImage", "faSquareCaretRight", "faCaretSquareRight", "faSun", "faImage", "faLightbulb", "faAddressCard", "faContactCard", "faVcard", "faFaceMeh", "faMeh", "faMap", "faHandPointDown", "faFaceMehBlank", "faMehBlank", "faFaceGrinTongue", "faGrinTongue", "faFutbol", "faFutbolBall", "faSoccerBall", "faFaceSurprise", "faSurprise", "faFolder", "faFolderBlank", "faCloud", "faCircle", "faFaceGrinSquint", "faGrinSquint", "faCircleUser", "faUserCircle", "faRectangleList", "faListAlt", "faHand", "faHandPaper", "faThumbsUp", "faBuilding", "faChessRook", "faCircleQuestion", "faQuestionCircle", "faFile", "faFaceSadCry", "faSadCry", "faCalendarMinus", "faFaceTired", "faTired", "faHandPointRight", "faCircleUp", "faArrowAltCircleUp", "faHandScissors", "faGem", "faRectangleXmark", "faRectangleTimes", "faTimesRectangle", "faWindowClose", "faTrashCan", "faTrashAlt", "faLifeRing", "faCopyright", "faCircleLeft", "faArrowAltCircleLeft", "faCalendar", "faFaceFrownOpen", "faFrownOpen", "faChartBar", "faBarChart", "faWebAwesome", "faHouse", "faHome", "faHomeAlt", "faHomeLgAlt", "faFaceFrown", "faFrown", "faUser", "faUserAlt", "faUserLarge", "faSnowflake", "faBookmark", "faSquareCaretLeft", "faCaretSquareLeft", "faHandshake", "faHandshakeAlt", "faHandshakeSimple", "faFaceSmileWink", "faSmileWink", "faFaceGrinSquintTears", "faGrinSquintTears", "faFileAudio", "faCalendarXmark", "faCalendarTimes", "faCircleDown", "faArrowAltCircleDown", "faFileLines", "faFileAlt", "faFileText", "faComments", "faCircleCheck", "faCheckCircle", "faMoon", "faClosedCaptioning", "faImages", "faCircleRight", "faArrowAltCircleRight", "faIdCard", "faDriversLicense", "faCirclePlay", "faPlayCircle", "faFaceLaughBeam", "faLaughBeam", "faAddressBook", "faContactBook", "faHourglass", "faHourglassEmpty", "faHeadphones", "faHeadphonesAlt", "faHeadphonesSimple", "faFilePowerpoint", "faWindowMaximize", "faCommentDots", "faCommenting", "faFaceGrinTongueWink", "faGrinTongueWink", "faHourglassHalf", "faHourglass2", "faCreditCard", "faCreditCardAlt", "faHandSpock", "faBellSlash", "faStar", "faFlag", "faLemon", "faWindowRestore", "faFaceGrinHearts", "faGrinHearts", "faFaceKissBeam", "faKissBeam", "faFilePdf", "faFaceGrinWide", "faGrinAlt", "faFaceLaughSquint", "faLaughSquint", "faFaceKissWinkHeart", "faKissWinkHeart", "faCopy", "faChessKing", "faSquarePlus", "faPlusSquare", "faFileCode", "faFaceGrinWink", "faGrinWink", "faMoneyBill1", "faMoneyBillAlt", "faEyeSlash", "faFileWord", "faFaceAngry", "faAngry", "faChessKnight", "faFaceGrinBeam", "faGrinBeam", "faHandPeace", "faCompass", "faSquare", "faFaceGrin", "faGrin", "faFaceSmile", "faSmile", "faFaceSmileBeam", "faSmileBeam", "faFolderClosed", "faKeyboard", "faFaceRollingEyes", "faMehRollingEyes", "faFaceGrimace", "faGrimace", "faCircleDot", "faDotCircle", "faObjectGroup", "faHourglass3", "faFaceFlushed", "faFlushed", "faStarHalfStroke", "faStarHalfAlt", "faFileVideo", "faFaceLaugh", "faLaugh", "faHandPointer", "faRegistered", "icons", "children", "element", "createElement", "index", "string", "match", "p2", "icons", "Image", "Infinity", "Info", "Key", "Keyboard", "Layers", "Library", "Map", "Tag", "Timer", "X", "root", "demoFunc", "init_dist_ts", "faIcons", "icons", "key", "isFunction", "type", "b", "key", "lucideIcons", "faIcons", "icons", "init_dist_ts", "faBell", "faBuilding", "faCircleCheck", "faCircleXmark", "faCopy", "faEye", "faEyeSlash", "faMessage", "faPaste", "faPenToSquare", "faSun", "faTrashCan", "t", "n", "value", "__esDecorate", "demoFunc", "__runInitializers", "b", "type", "icon", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "DeesContextmenu", "path", "element", "__runInitializers", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "__runInitializers", "b", "resolve", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "timestamp", "e", "entries", "type", "icons", "init_dees_appui_activitylog", "init_plugins", "init_interfaces", "demoFunc", "init_dist_ts", "b", "e", "init_dist_ts", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "init_dist_ts", "init_interfaces", "init_plugins", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "index", "e", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "w", "a", "b", "index", "e", "init_dees_appui_bottombar", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "_a", "demoFunc", "init_dist_ts", "count", "_", "i", "b", "core", "t", "init_dist_ts", "n", "__esDecorate", "value", "__runInitializers", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "body", "DeesModal", "__runInitializers", "b", "index", "domtools", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "DeesWorkspaceMonaco", "editor", "css", "position", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "b", "__runInitializers", "l", "e", "option", "modal", "toolbar", "resolve", "content", "demoFunc", "init_demo", "init_dist_ts", "init_component", "b", "value", "formatters", "now", "init_styles", "init_dist_ts", "init_template", "init_dist_ts", "days", "b", "isToday", "e", "init_dist_ts", "init_demo", "init_styles", "init_template", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "now", "formatter", "path", "days", "i", "min", "max", "disabled", "e", "_", "init_component", "demoFunc", "init_dist_ts", "b", "position", "value", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "demoFunc", "init_dist_ts", "b", "element", "e", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "demoFunc", "init_dist_ts", "b", "e", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "option", "b", "e", "key", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "domtools", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "option", "index", "path", "key", "demoFunc", "init_demo", "init_dist_ts", "init_component", "b", "init_styles", "init_dist_ts", "init_demo", "init_styles", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "units", "type", "prefix", "index", "init_component", "params", "c", "code", "ValidationErrorsIBAN", "ValidationErrorsBIC", "index", "prefix", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "r", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "option", "resolve", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "r", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "i", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "r", "track", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "demoFunc", "init_plugins", "init_dist_ts", "b", "v", "u", "e", "table", "r", "_", "i", "init_styles", "init_dist_ts", "data", "keys", "key", "c", "k", "s", "col", "a", "b", "s", "raw", "m", "t", "c", "a", "b", "coerce", "lo", "ok", "v", "init_plugins", "init_dist_ts", "init_styles", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "c", "key", "content", "domtools", "table", "cells", "i", "cell", "r", "count", "init_dees_table", "demoFunc", "init_dist_ts", "b", "data", "dist_ts_exports", "init_dist_ts", "init_dees_table", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "children", "demoFunc", "init_dist_ts", "b", "type", "icon", "position", "e", "dist_ts_exports", "index", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "node", "children", "b", "init_plugins", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "a", "data", "max", "min", "range", "index", "x", "y", "core", "k", "i", "type", "demoFunc", "init_dist_ts", "t", "r", "__esDecorate", "value", "__runInitializers", "context", "keys", "b", "e", "init_dist_ts", "params", "i", "element", "content", "context", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_interfaces", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "demoFunc", "init_dist_ts", "b", "keys", "e", "init_plugins", "init_interfaces", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "option", "demoFunc", "init_dist_ts", "init_interfaces", "t", "r", "__esDecorate", "value", "__runInitializers", "b", "e", "text", "init_interfaces", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "tab", "e", "content", "init_interfaces", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "e", "init_dist_ts", "init_interfaces", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "config", "tab", "i", "params", "match", "element", "init_dees_appui", "init_dees_appui_maincontent", "init_dees_appui_mainmenu", "init_dees_appui_secondarymenu", "init_dees_appui_profiledropdown", "init_dees_appui_tabs", "init_plugins", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "b", "DeesMobilenavigation", "__runInitializers", "dist_ts_exports", "index", "domtools", "init_dees_mobilenavigation", "init_dees_appui_activitylog", "init_dees_appui_bottombar", "init_dees_appui", "init_dees_appui_maincontent", "init_dees_appui_mainmenu", "init_dees_appui_secondarymenu", "init_dees_appui_profiledropdown", "init_dees_appui_tabs", "init_dees_mobilenavigation", "init_dees_button", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "init_dees_button_exit", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_button_group", "init_dees_button", "init_dees_button_exit", "init_dees_button_group", "demoFunc", "init_demo", "init_dist_ts", "init_component", "b", "formatters", "interval", "data", "now", "i", "timestamp", "value", "min", "max", "index", "text", "buttons", "init_styles", "init_dist_ts", "init_template", "init_dist_ts", "b", "version", "library", "init_dist_ts", "init_demo", "init_styles", "init_template", "t", "r", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "resolve", "w", "formatter", "s", "index", "color", "mainbox", "now", "point", "d", "init_component", "demoFunc", "init_dist_ts", "b", "i", "message", "now", "text", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "resolve", "message", "timestamp", "text", "data", "count", "now", "init_dees_chart_log", "init_dees_chart_log", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_dataview_codebox", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "text", "type", "init_dees_dataview_statusobject", "init_dees_statsgrid", "init_dees_dataview_codebox", "init_dees_dataview_statusobject", "init_dees_table", "init_dees_statsgrid", "init_dist_ts", "t", "r", "__esDecorate", "value", "e", "b", "__runInitializers", "type", "resolve", "init_dees_actionbar", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_badge", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_hint", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_progressbar", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "init_dees_spinner", "demoFunc", "init_dist_ts", "b", "i", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "position", "DeesToast", "message", "__runInitializers", "icons", "b", "resolve", "init_dees_toast", "init_dees_actionbar", "init_dees_badge", "init_dees_hint", "init_dees_progressbar", "init_dees_spinner", "init_dees_toast", "init_dees_form", "init_dees_form_submit", "init_dees_form", "init_dees_form_submit", "init_dees_input_base", "init_dees_input_checkbox", "init_dees_input_code", "init_dees_input_dropdown", "init_dees_input_iban", "demoFunc", "init_dist_ts", "b", "e", "data", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "index", "e", "_", "i", "message", "handled", "init_dees_input_list", "init_dees_input_multitoggle", "init_dees_input_phone", "init_dees_input_quantityselector", "init_dees_input_radiogroup", "demoFunc", "init_demo", "init_dist_ts", "init_component", "b", "e", "init_styles", "init_dist_ts", "init_template", "init_dist_ts", "b", "init_demo", "init_styles", "init_template", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "text", "e", "init_component", "init_dees_input_searchselect", "_a", "demoFunc", "init_dist_ts", "b", "e", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "index", "s", "init_dees_input_tags", "init_dees_input_text", "init_dees_input_toggle", "init_dees_input_typelist", "demoFunc", "init_dist_ts", "timestamp", "html", "b", "resolve", "content", "type", "init_dist_ts", "t", "r", "__esDecorate", "value", "DeesSlashMenu", "__runInitializers", "b", "index", "type", "position", "filter", "e", "range", "element", "position", "text", "x", "y", "e", "node", "init_dist_ts", "position", "b", "e", "value", "range", "node", "element", "link", "coords", "init_dist_ts", "t", "r", "__esDecorate", "value", "DeesFormattingMenu", "__runInitializers", "b", "position", "e", "init_dist_ts", "init_dist_ts", "text", "k", "i", "content", "html", "index", "node", "element", "li", "match", "init_dist_ts", "content", "handlers", "b", "e", "element", "range", "type", "content", "b", "resolve", "index", "element", "handlers", "type", "handler", "init_dist_ts", "element", "handlers", "e", "wysiwygBlock", "range", "i", "context", "position", "content", "init_dist_ts", "type", "element", "handlers", "e", "wysiwygBlock", "range", "i", "context", "position", "content", "init_dist_ts", "element", "handlers", "e", "wysiwygBlock", "range", "context", "position", "content", "init_dist_ts", "content", "i", "value", "element", "handlers", "e", "err", "range", "text", "position", "init_dist_ts", "content", "element", "handlers", "e", "range", "wysiwygBlock", "context", "li", "i", "position", "init_dist_ts", "element", "handlers", "e", "resolve", "text", "content", "position", "init_dist_ts", "element", "handlers", "e", "patterns", "match", "text", "content", "position", "init_dist_ts", "element", "handlers", "e", "f", "resolve", "k", "i", "text", "content", "position", "init_dist_ts", "element", "handlers", "e", "init_dist_ts", "content", "html", "element", "handlers", "e", "end", "value", "match", "text", "position", "init_dist_ts", "content", "element", "handlers", "e", "end", "value", "text", "html", "match", "position", "init_dist_ts", "resolve", "b", "content", "e", "e", "li", "content", "type", "element", "range", "e", "key", "range", "nonEditableTypes", "actualContent", "element", "i", "position", "e", "now", "b", "i", "transform", "a", "blockElements", "index", "now", "init_dist_ts", "t", "n", "__esDecorate", "value", "__runInitializers", "styles", "type", "handler", "element", "e", "range", "u", "context", "DeesWysiwygBlock", "position", "content", "b", "init_dees_input_wysiwyg", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "e", "b", "u", "content", "type", "resolve", "blockComponent", "i", "range", "debounce", "init_dees_input_wysiwyg", "resolve", "e", "x", "y", "handle", "key", "format", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "__runInitializers", "b", "e", "resolve", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "base64", "init_dees_input_base", "init_dees_input_checkbox", "init_dees_input_code", "init_dees_input_dropdown", "init_dees_input_iban", "init_dees_input_list", "init_dees_input_multitoggle", "init_dees_input_phone", "init_dees_input_quantityselector", "init_dees_input_radiogroup", "init_dees_input_searchselect", "init_dees_input_tags", "init_dees_input_text", "init_dees_input_toggle", "init_dees_input_typelist", "init_dees_input_wysiwyg", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_chips", "demoFunc", "init_dist_ts", "b", "index", "text", "w", "e", "init_styles", "init_dist_ts", "resolved", "x", "y", "w", "h", "next", "position", "a", "b", "clamp", "value", "min", "max", "handler", "init_plugins", "init_dist_ts", "init_styles", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "i", "transform", "w", "handler", "key", "delta", "type", "x", "y", "h", "position", "init_dees_dashboardgrid", "demoFunc", "b", "init_dist_ts", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "init_dees_heading", "init_dees_label", "demoFunc", "init_dist_ts", "b", "e", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "i", "end", "b", "p", "init_dees_pagination", "init_dees_panel", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "__runInitializers", "b", "init_dees_stepper", "init_dees_chips", "init_dees_dashboardgrid", "init_dees_heading", "init_dees_label", "init_dees_pagination", "init_dees_panel", "init_dees_stepper", "init_demo", "init_dist_ts", "b", "init_dist_ts", "init_demo", "t", "n", "r", "__esDecorate", "value", "__runInitializers", "b", "link", "e", "init_component", "demo", "init_demo", "init_dist_ts", "b", "init_dist_ts", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "v", "i", "j", "max", "x", "y", "e", "init_component", "demo", "init_demo", "init_dist_ts", "b", "init_dist_ts", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "e", "v", "init_component", "init_dist_ts", "document", "init_styles", "init_dist_ts", "demo", "init_demo", "init_dist_ts", "b", "init_dist_ts", "init_styles", "init_demo", "t", "n", "__esDecorate", "value", "demo", "__runInitializers", "b", "resolve", "_", "i", "buffer", "p", "x", "y", "text", "e", "context", "data", "link", "element", "styles", "min", "max", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "init_component", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "key", "prefix", "type", "init_dees_preview", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "DeesPdf", "dist_ts_exports", "context", "link", "init_component", "init_styles", "init_dist_ts", "init_dist_ts", "init_styles", "n", "__esDecorate", "value", "__runInitializers", "b", "canvas", "ctx", "a", "b", "index", "debounce", "wait", "timeout", "throttle", "k", "i", "element", "init_utils", "a", "b", "init_styles", "init_dist_ts", "demo", "init_demo", "init_dist_ts", "count", "i", "b", "e", "init_dist_ts", "init_styles", "init_utils", "init_demo", "t", "n", "__esDecorate", "value", "demo", "__runInitializers", "b", "e", "x", "resolve", "link", "init_dist_ts", "init_component", "t", "__esDecorate", "__runInitializers", "init_component", "init_utils", "init_component", "init_styles", "init_component", "demo", "init_demo", "init_dist_ts", "b", "e", "init_dist_ts", "init_styles", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "e", "init_component", "demo", "init_demo", "init_dist_ts", "b", "e", "init_dist_ts", "init_styles", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "resolve", "i", "j", "max", "v", "x", "y", "init_component", "demo", "init_demo", "init_dist_ts", "b", "e", "init_dist_ts", "init_styles", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "resolve", "e", "init_component", "demo", "init_demo", "init_dist_ts", "b", "e", "init_dist_ts", "init_styles", "init_demo", "t", "n", "r", "__esDecorate", "value", "demo", "__runInitializers", "b", "e", "x", "init_component", "demo", "init_demo", "init_dist_ts", "b", "e", "init_dist_ts", "init_styles", "init_demo", "t", "n", "__esDecorate", "value", "demo", "__runInitializers", "b", "init_component", "init_dees_preview", "init_dees_contextmenu", "init_dees_modal", "demoFunc", "init_dist_ts", "b", "init_plugins", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "DeesSpeechbubble", "dist_ts_exports", "o", "init_dees_speechbubble", "init_dees_windowlayer", "init_dees_contextmenu", "init_dees_modal", "init_dees_speechbubble", "init_dees_windowlayer", "init_interfaces", "init_constants", "listener", "data", "listener", "resolve", "init_constants", "editorOrigin", "init_constants", "key", "value", "i", "code", "init_code", "resolve", "value", "message", "init_constants", "init_code", "editorOrigin", "listener", "PreviewMessageType", "type", "path", "value", "wrap", "p", "r", "last", "v", "w", "context", "handler", "resolve", "l", "__defProp", "__export", "isObject", "all", "data", "init_utils", "s", "i", "key", "listener", "data", "resolve", "onMessage", "list", "push", "auth", "init_utils", "process", "path", "message", "subscribe", "_listener", "buffer", "path", "process", "init_interfaces", "init_dees_shopping_productcard", "type", "tab", "a", "b", "e", "process", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "env", "b", "__runInitializers", "tab", "e", "process", "data", "message", "resolve", "i", "key", "demoFunc", "init_dist_ts", "t", "__esDecorate", "b", "e", "__runInitializers", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "domtools", "DeesWorkspaceTerminal", "init_dees_simple_appdash", "demoFunc", "init_dist_ts", "b", "e", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "domtools", "init_dees_simple_login", "init_dees_shopping_productcard", "init_dees_simple_appdash", "init_dees_simple_login", "init_dees_icon", "demoFunc", "init_dist_ts", "e", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "e", "init_dees_searchbar", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "__runInitializers", "b", "styles", "key", "init_dees_theme", "demoFunc", "init_dist_ts", "init_dist_ts", "t", "n", "__esDecorate", "value", "demoFunc", "DeesUpdater", "__runInitializers", "dist_ts_exports", "b", "init_dees_updater", "init_dees_windowcontrols", "init_dees_icon", "init_dees_searchbar", "init_dees_theme", "init_dees_updater", "init_dees_windowcontrols", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "b", "__runInitializers", "node", "e", "resolve", "contentEl", "content", "a", "path", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "__runInitializers", "e", "b", "content", "process", "resolve", "data", "env", "content", "match", "path", "init_dist_ts", "t", "n", "__esDecorate", "value", "b", "__runInitializers", "resolve", "timestamp", "init_dist_ts", "t", "n", "r", "__esDecorate", "value", "env", "b", "__runInitializers", "e", "content", "config", "process", "data", "resolve", "path", "timeout", "f", "m", "init_dees_workspace", "init_dees_workspace_monaco", "init_dees_workspace_filetree", "init_interfaces", "init_dees_workspace_terminal", "init_interfaces", "init_dees_workspace_terminal_preview", "init_dist_ts", "dist_ts_exports", "t", "n", "r", "__esDecorate", "value", "b", "__runInitializers", "html", "e", "init_dees_workspace_markdown", "demoFunc", "init_dist_ts", "b", "init_dist_ts", "t", "__esDecorate", "demoFunc", "b", "__runInitializers", "init_dees_workspace_markdownoutlet", "init_dees_workspace_bottombar", "init_dees_workspace_diff_editor", "init_dees_workspace", "init_dees_workspace_monaco", "init_dees_workspace_filetree", "init_dees_workspace_terminal", "init_dees_workspace_terminal_preview", "init_dees_workspace_markdown", "init_dees_workspace_markdownoutlet", "init_dees_workspace_bottombar", "init_dees_workspace_diff_editor", "init_dees_search", "init_dist_ts", "init_dees_tooltip", "init_dees_search", "init_dees_tooltip", "dist_ts_web_exports", "debounce", "icons", "throttle", "init_dist_ts_web", "init_plugins", "init_dist_ts", "init_dist_ts_web", "dist_ts_exports", "init_plugins", "init_dist_ts", "init_identity", "init_project", "init_data", "init_identity", "init_project", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "init_data", "init_plugins", "context", "c", "s", "init_dist_ts", "_a", "init_plugins", "init_dist_ts", "t", "r", "s", "p", "b", "_connectionsState_dec", "_a", "_init", "_connectionsState", "init_connections", "init_plugins", "init_dist_ts", "t", "r", "sub", "s", "b", "dist_ts_web_exports", "data", "_dataState_dec", "_connectionsState_dec", "_a", "_init", "_connectionsState", "_dataState", "init_projects", "init_plugins", "init_dist_ts", "t", "r", "s", "c", "b", "o", "e", "_selectedConnectionId_dec", "_dataState_dec", "_connectionsState_dec", "_a", "_init", "_connectionsState", "_dataState", "_selectedConnectionId", "init_groups", "init_plugins", "init_dist_ts", "t", "r", "s", "c", "b", "o", "e", "_selectedConnectionId_dec", "_dataState_dec", "_connectionsState_dec", "_a", "_init", "_connectionsState", "_dataState", "_selectedConnectionId", "init_secrets", "init_plugins", "init_dist_ts", "t", "r", "s", "c", "p", "g", "b", "o", "e", "dist_ts_web_exports", "data", "_selectedConnectionId_dec", "_dataState_dec", "_connectionsState_dec", "_a", "_init", "_connectionsState", "_dataState", "_selectedConnectionId", "init_pipelines", "init_plugins", "init_dist_ts", "t", "r", "s", "c", "p", "b", "o", "e", "dist_ts_web_exports", "_selectedProjectId_dec", "_selectedConnectionId_dec", "_dataState_dec", "_connectionsState_dec", "_a", "_init", "_connectionsState", "_dataState", "_selectedConnectionId", "_selectedProjectId", "init_plugins", "init_dist_ts", "t", "r", "s", "c", "p", "j", "b", "o", "e", "init_plugins", "init_dist_ts", "_a", "_init", "t", "r", "b", "tab", "e", "domtools", "init_connections", "init_projects", "init_groups", "init_secrets", "init_pipelines", "init_plugins", "init_dist_ts", "dist_ts_exports", "b"] } diff --git a/ts_bundled/bundle.ts b/ts_bundled/bundle.ts index 6ad9464..6d73466 100644 --- a/ts_bundled/bundle.ts +++ b/ts_bundled/bundle.ts @@ -2,7 +2,7 @@ export const files: { path: string; contentBase64: string }[] = [ { "path": "bundle.js", - "contentBase64": "dmFyIGJVPU9iamVjdC5jcmVhdGUsdVU9T2JqZWN0LmZyZWV6ZSxTbz1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHZVPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIGhNdD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgdU10PU9iamVjdC5nZXRQcm90b3R5cGVPZixmTXQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgeVU9KHQsZSk9PihlPVN5bWJvbFt0XSk/ZTpTeW1ib2wuZm9yKCJTeW1ib2wuIit0KSx5ND10PT57dGhyb3cgVHlwZUVycm9yKHQpfTt2YXIgeFU9KHQsZSxhKT0+ZSBpbiB0P1NvKHQsZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pOnRbZV09YTt2YXIgZlU9KHQsZSk9PlNvKHQsIm5hbWUiLHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMH0pLGRkPSh0PT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eSh0LHtnZXQ6KGUsYSk9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTplKVthXX0pOnQpKGZ1bmN0aW9uKHQpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJyt0KyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBiPSh0LGUpPT4oKT0+KHQmJihlPXQodD0wKSksZSk7dmFyIHB0PSh0LGUpPT4oKT0+KGV8fHQoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0cyksR2U9KHQsZSk9Pntmb3IodmFyIGEgaW4gZSlTbyh0LGEse2dldDplW2FdLGVudW1lcmFibGU6ITB9KX0sbU10PSh0LGUsYSxpKT0+e2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Inx8dHlwZW9mIGU9PSJmdW5jdGlvbiIpZm9yKGxldCByIG9mIGhNdChlKSkhZk10LmNhbGwodCxyKSYmciE9PWEmJlNvKHQscix7Z2V0OigpPT5lW3JdLGVudW1lcmFibGU6IShpPXZVKGUscikpfHxpLmVudW1lcmFibGV9KTtyZXR1cm4gdH07dmFyIGoxPSh0LGUsYSk9PihhPXQhPW51bGw/YlUodU10KHQpKTp7fSxtTXQoZXx8IXR8fCF0Ll9fZXNNb2R1bGU/U28oYSwiZGVmYXVsdCIse3ZhbHVlOnQsZW51bWVyYWJsZTohMH0pOmEsdCkpO3ZhciBJMj10PT5bLCwsYlUodD8uW3lVKCJtZXRhZGF0YSIpXT8/bnVsbCldLHdVPVsiY2xhc3MiLCJtZXRob2QiLCJnZXR0ZXIiLCJzZXR0ZXIiLCJhY2Nlc3NvciIsImZpZWxkIiwidmFsdWUiLCJnZXQiLCJzZXQiXSxlYz10PT50IT09dm9pZCAwJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIj95NCgiRnVuY3Rpb24gZXhwZWN0ZWQiKTp0LGdNdD0odCxlLGEsaSxyKT0+KHtraW5kOndVW3RdLG5hbWU6ZSxtZXRhZGF0YTppLGFkZEluaXRpYWxpemVyOnM9PmEuXz95NCgiQWxyZWFkeSBpbml0aWFsaXplZCIpOnIucHVzaChlYyhzfHxudWxsKSl9KSxiTXQ9KHQsZSk9PnhVKGUseVUoIm1ldGFkYXRhIiksdFszXSksamU9KHQsZSxhLGkpPT57Zm9yKHZhciByPTAscz10W2U+PjFdLG49cyYmcy5sZW5ndGg7cjxuO3IrKyllJjE/c1tyXS5jYWxsKGEpOmk9c1tyXS5jYWxsKGEsaSk7cmV0dXJuIGl9LHZ0PSh0LGUsYSxpLHIscyk9Pnt2YXIgbixvLGQsYyxwLGw9ZSY3LGY9ISEoZSY4KSxnPSEhKGUmMTYpLHk9bD4zP3QubGVuZ3RoKzE6bD9mPzE6MjowLHY9d1VbbCs1XSxtPWw+MyYmKHRbeS0xXT1bXSkseD10W3ldfHwodFt5XT1bXSksTT1sJiYoIWcmJiFmJiYocj1yLnByb3RvdHlwZSksbDw1JiYobD4zfHwhZykmJnZVKGw8ND9yOntnZXRbYV0oKXtyZXR1cm4gbVUodGhpcyxzKX0sc2V0W2FdKEYpe3JldHVybiBnVSh0aGlzLHMsRil9fSxhKSk7bD9nJiZsPDQmJmZVKHMsKGw+Mj8ic2V0ICI6bD4xPyJnZXQgIjoiIikrYSk6ZlUocixhKTtmb3IodmFyIFM9aS5sZW5ndGgtMTtTPj0wO1MtLSljPWdNdChsLGEsZD17fSx0WzNdLHgpLGwmJihjLnN0YXRpYz1mLGMucHJpdmF0ZT1nLHA9Yy5hY2Nlc3M9e2hhczpnP0Y9PnZNdChyLEYpOkY9PmEgaW4gRn0sbF4zJiYocC5nZXQ9Zz9GPT4obF4xP21VOnlNdCkoRixyLGxeND9zOk0uZ2V0KTpGPT5GW2FdKSxsPjImJihwLnNldD1nPyhGLF8pPT5nVShGLHIsXyxsXjQ/czpNLnNldCk6KEYsXyk9PkZbYV09XykpLG89KDAsaVtTXSkobD9sPDQ/Zz9zOk1bdl06bD40P3ZvaWQgMDp7Z2V0Ok0uZ2V0LHNldDpNLnNldH06cixjKSxkLl89MSxsXjR8fG89PT12b2lkIDA/ZWMobykmJihsPjQ/bS51bnNoaWZ0KG8pOmw/Zz9zPW86TVt2XT1vOnI9byk6dHlwZW9mIG8hPSJvYmplY3QifHxvPT09bnVsbD95NCgiT2JqZWN0IGV4cGVjdGVkIik6KGVjKG49by5nZXQpJiYoTS5nZXQ9biksZWMobj1vLnNldCkmJihNLnNldD1uKSxlYyhuPW8uaW5pdCkmJm0udW5zaGlmdChuKSk7cmV0dXJuIGx8fGJNdCh0LHIpLE0mJlNvKHIsYSxNKSxnP2xeND9zOk06cn0sbDI9KHQsZSxhKT0+eFUodCx0eXBlb2YgZSE9InN5bWJvbCI/ZSsiIjplLGEpLEN3PSh0LGUsYSk9PmUuaGFzKHQpfHx5NCgiQ2Fubm90ICIrYSksdk10PSh0LGUpPT5PYmplY3QoZSkhPT1lP3k0KCdDYW5ub3QgdXNlIHRoZSAiaW4iIG9wZXJhdG9yIG9uIHRoaXMgdmFsdWUnKTp0LmhhcyhlKSxtVT0odCxlLGEpPT4oQ3codCxlLCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZCIpLGE/YS5jYWxsKHQpOmUuZ2V0KHQpKSxSdD0odCxlLGEpPT5lLmhhcyh0KT95NCgiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZSIpOmUgaW5zdGFuY2VvZiBXZWFrU2V0P2UuYWRkKHQpOmUuc2V0KHQsYSksZ1U9KHQsZSxhLGkpPT4oQ3codCxlLCJ3cml0ZSB0byBwcml2YXRlIGZpZWxkIiksaT9pLmNhbGwodCxhKTplLnNldCh0LGEpLGEpLHlNdD0odCxlLGEpPT4oQ3codCxlLCJhY2Nlc3MgcHJpdmF0ZSBtZXRob2QiKSxhKTt2YXIgeDQ9KHQsZSk9PnVVKFNvKHQsInJhdyIse3ZhbHVlOnVVKGV8fHQuc2xpY2UoKSl9KSk7dmFyIHBkLHRjLF93LE1VLHc0LHF0LFEsaGQsYWMsVHc9YigoKT0+e3BkPWdsb2JhbFRoaXMsdGM9cGQuU2hhZG93Um9vdCYmKHBkLlNoYWR5Q1NTPT09dm9pZCAwfHxwZC5TaGFkeUNTUy5uYXRpdmVTaGFkb3cpJiYiYWRvcHRlZFN0eWxlU2hlZXRzImluIERvY3VtZW50LnByb3RvdHlwZSYmInJlcGxhY2UiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUsX3c9U3ltYm9sKCksTVU9bmV3IFdlYWtNYXAsdzQ9Y2xhc3N7Y29uc3RydWN0b3IoZSxhLGkpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLGkhPT1fdyl0aHJvdyBFcnJvcigiQ1NTUmVzdWx0IGlzIG5vdCBjb25zdHJ1Y3RhYmxlLiBVc2UgYHVuc2FmZUNTU2Agb3IgYGNzc2AgaW5zdGVhZC4iKTt0aGlzLmNzc1RleHQ9ZSx0aGlzLnQ9YX1nZXQgc3R5bGVTaGVldCgpe2xldCBlPXRoaXMubyxhPXRoaXMudDtpZih0YyYmZT09PXZvaWQgMCl7bGV0IGk9YSE9PXZvaWQgMCYmYS5sZW5ndGg9PT0xO2kmJihlPU1VLmdldChhKSksZT09PXZvaWQgMCYmKCh0aGlzLm89ZT1uZXcgQ1NTU3R5bGVTaGVldCkucmVwbGFjZVN5bmModGhpcy5jc3NUZXh0KSxpJiZNVS5zZXQoYSxlKSl9cmV0dXJuIGV9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5jc3NUZXh0fX0scXQ9dD0+bmV3IHc0KHR5cGVvZiB0PT0ic3RyaW5nIj90OnQrIiIsdm9pZCAwLF93KSxRPSh0LC4uLmUpPT57bGV0IGE9dC5sZW5ndGg9PT0xP3RbMF06ZS5yZWR1Y2UoKGkscixzKT0+aSsobj0+e2lmKG4uXyRjc3NSZXN1bHQkPT09ITApcmV0dXJuIG4uY3NzVGV4dDtpZih0eXBlb2Ygbj09Im51bWJlciIpcmV0dXJuIG47dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK24rIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkocikrdFtzKzFdLHRbMF0pO3JldHVybiBuZXcgdzQoYSx0LF93KX0saGQ9KHQsZSk9PntpZih0Yyl0LmFkb3B0ZWRTdHlsZVNoZWV0cz1lLm1hcChhPT5hIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9hOmEuc3R5bGVTaGVldCk7ZWxzZSBmb3IobGV0IGEgb2YgZSl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxyPXBkLmxpdE5vbmNlO3IhPT12b2lkIDAmJmkuc2V0QXR0cmlidXRlKCJub25jZSIsciksaS50ZXh0Q29udGVudD1hLmNzc1RleHQsdC5hcHBlbmRDaGlsZChpKX19LGFjPXRjP3Q9PnQ6dD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KGU9PntsZXQgYT0iIjtmb3IobGV0IGkgb2YgZS5jc3NSdWxlcylhKz1pLmNzc1RleHQ7cmV0dXJuIHF0KGEpfSkodCk6dH0pO3ZhciB4TXQsd010LE1NdCx6TXQsa010LFNNdCx1ZCx6VSxDTXQsX010LGljLE00LHJjLGtVLGxyLHNjPWIoKCk9PntUdygpO1R3KCk7KHtpczp4TXQsZGVmaW5lUHJvcGVydHk6d010LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpNTXQsZ2V0T3duUHJvcGVydHlOYW1lczp6TXQsZ2V0T3duUHJvcGVydHlTeW1ib2xzOmtNdCxnZXRQcm90b3R5cGVPZjpTTXR9PU9iamVjdCksdWQ9Z2xvYmFsVGhpcyx6VT11ZC50cnVzdGVkVHlwZXMsQ010PXpVP3pVLmVtcHR5U2NyaXB0OiIiLF9NdD11ZC5yZWFjdGl2ZUVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQsaWM9KHQsZSk9PnQsTTQ9e3RvQXR0cmlidXRlKHQsZSl7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjp0PXQ/Q010Om51bGw7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0PXQ9PW51bGw/dDpKU09OLnN0cmluZ2lmeSh0KX1yZXR1cm4gdH0sZnJvbUF0dHJpYnV0ZSh0LGUpe2xldCBhPXQ7c3dpdGNoKGUpe2Nhc2UgQm9vbGVhbjphPXQhPT1udWxsO2JyZWFrO2Nhc2UgTnVtYmVyOmE9dD09PW51bGw/bnVsbDpOdW1iZXIodCk7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0cnl7YT1KU09OLnBhcnNlKHQpfWNhdGNoe2E9bnVsbH19cmV0dXJuIGF9fSxyYz0odCxlKT0+IXhNdCh0LGUpLGtVPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOk00LHJlZmxlY3Q6ITEsdXNlRGVmYXVsdDohMSxoYXNDaGFuZ2VkOnJjfTtTeW1ib2wubWV0YWRhdGE/Pz1TeW1ib2woIm1ldGFkYXRhIiksdWQubGl0UHJvcGVydHlNZXRhZGF0YT8/PW5ldyBXZWFrTWFwO2xyPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGljIGFkZEluaXRpYWxpemVyKGUpe3RoaXMuXyRFaSgpLCh0aGlzLmw/Pz1bXSkucHVzaChlKX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiB0aGlzLmZpbmFsaXplKCksdGhpcy5fJEVoJiZbLi4udGhpcy5fJEVoLmtleXMoKV19c3RhdGljIGNyZWF0ZVByb3BlcnR5KGUsYT1rVSl7aWYoYS5zdGF0ZSYmKGEuYXR0cmlidXRlPSExKSx0aGlzLl8kRWkoKSx0aGlzLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShlKSYmKChhPU9iamVjdC5jcmVhdGUoYSkpLndyYXBwZWQ9ITApLHRoaXMuZWxlbWVudFByb3BlcnRpZXMuc2V0KGUsYSksIWEubm9BY2Nlc3Nvcil7bGV0IGk9U3ltYm9sKCkscj10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcihlLGksYSk7ciE9PXZvaWQgMCYmd010KHRoaXMucHJvdG90eXBlLGUscil9fXN0YXRpYyBnZXRQcm9wZXJ0eURlc2NyaXB0b3IoZSxhLGkpe2xldHtnZXQ6cixzZXQ6c309TU10KHRoaXMucHJvdG90eXBlLGUpPz97Z2V0KCl7cmV0dXJuIHRoaXNbYV19LHNldChuKXt0aGlzW2FdPW59fTtyZXR1cm57Z2V0OnIsc2V0KG4pe2xldCBvPXI/LmNhbGwodGhpcyk7cz8uY2FsbCh0aGlzLG4pLHRoaXMucmVxdWVzdFVwZGF0ZShlLG8saSl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1zdGF0aWMgZ2V0UHJvcGVydHlPcHRpb25zKGUpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKT8/a1V9c3RhdGljIF8kRWkoKXtpZih0aGlzLmhhc093blByb3BlcnR5KGljKCJlbGVtZW50UHJvcGVydGllcyIpKSlyZXR1cm47bGV0IGU9U010KHRoaXMpO2UuZmluYWxpemUoKSxlLmwhPT12b2lkIDAmJih0aGlzLmw9Wy4uLmUubF0pLHRoaXMuZWxlbWVudFByb3BlcnRpZXM9bmV3IE1hcChlLmVsZW1lbnRQcm9wZXJ0aWVzKX1zdGF0aWMgZmluYWxpemUoKXtpZih0aGlzLmhhc093blByb3BlcnR5KGljKCJmaW5hbGl6ZWQiKSkpcmV0dXJuO2lmKHRoaXMuZmluYWxpemVkPSEwLHRoaXMuXyRFaSgpLHRoaXMuaGFzT3duUHJvcGVydHkoaWMoInByb3BlcnRpZXMiKSkpe2xldCBhPXRoaXMucHJvcGVydGllcyxpPVsuLi56TXQoYSksLi4ua010KGEpXTtmb3IobGV0IHIgb2YgaSl0aGlzLmNyZWF0ZVByb3BlcnR5KHIsYVtyXSl9bGV0IGU9dGhpc1tTeW1ib2wubWV0YWRhdGFdO2lmKGUhPT1udWxsKXtsZXQgYT1saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChlKTtpZihhIT09dm9pZCAwKWZvcihsZXRbaSxyXW9mIGEpdGhpcy5lbGVtZW50UHJvcGVydGllcy5zZXQoaSxyKX10aGlzLl8kRWg9bmV3IE1hcDtmb3IobGV0W2EsaV1vZiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzKXtsZXQgcj10aGlzLl8kRXUoYSxpKTtyIT09dm9pZCAwJiZ0aGlzLl8kRWguc2V0KHIsYSl9dGhpcy5lbGVtZW50U3R5bGVzPXRoaXMuZmluYWxpemVTdHlsZXModGhpcy5zdHlsZXMpfXN0YXRpYyBmaW5hbGl6ZVN0eWxlcyhlKXtsZXQgYT1bXTtpZihBcnJheS5pc0FycmF5KGUpKXtsZXQgaT1uZXcgU2V0KGUuZmxhdCgxLzApLnJldmVyc2UoKSk7Zm9yKGxldCByIG9mIGkpYS51bnNoaWZ0KGFjKHIpKX1lbHNlIGUhPT12b2lkIDAmJmEucHVzaChhYyhlKSk7cmV0dXJuIGF9c3RhdGljIF8kRXUoZSxhKXtsZXQgaT1hLmF0dHJpYnV0ZTtyZXR1cm4gaT09PSExP3ZvaWQgMDp0eXBlb2YgaT09InN0cmluZyI/aTp0eXBlb2YgZT09InN0cmluZyI/ZS50b0xvd2VyQ2FzZSgpOnZvaWQgMH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fJEVwPXZvaWQgMCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMSx0aGlzLmhhc1VwZGF0ZWQ9ITEsdGhpcy5fJEVtPW51bGwsdGhpcy5fJEV2KCl9XyRFdigpe3RoaXMuXyRFUz1uZXcgUHJvbWlzZShlPT50aGlzLmVuYWJsZVVwZGF0aW5nPWUpLHRoaXMuXyRBTD1uZXcgTWFwLHRoaXMuXyRFXygpLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuY29uc3RydWN0b3IubD8uZm9yRWFjaChlPT5lKHRoaXMpKX1hZGRDb250cm9sbGVyKGUpeyh0aGlzLl8kRU8/Pz1uZXcgU2V0KS5hZGQoZSksdGhpcy5yZW5kZXJSb290IT09dm9pZCAwJiZ0aGlzLmlzQ29ubmVjdGVkJiZlLmhvc3RDb25uZWN0ZWQ/LigpfXJlbW92ZUNvbnRyb2xsZXIoZSl7dGhpcy5fJEVPPy5kZWxldGUoZSl9XyRFXygpe2xldCBlPW5ldyBNYXAsYT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzO2ZvcihsZXQgaSBvZiBhLmtleXMoKSl0aGlzLmhhc093blByb3BlcnR5KGkpJiYoZS5zZXQoaSx0aGlzW2ldKSxkZWxldGUgdGhpc1tpXSk7ZS5zaXplPjAmJih0aGlzLl8kRXA9ZSl9Y3JlYXRlUmVuZGVyUm9vdCgpe2xldCBlPXRoaXMuc2hhZG93Um9vdD8/dGhpcy5hdHRhY2hTaGFkb3codGhpcy5jb25zdHJ1Y3Rvci5zaGFkb3dSb290T3B0aW9ucyk7cmV0dXJuIGhkKGUsdGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50U3R5bGVzKSxlfWNvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5lbmFibGVVcGRhdGluZyghMCksdGhpcy5fJEVPPy5mb3JFYWNoKGU9PmUuaG9zdENvbm5lY3RlZD8uKCkpfWVuYWJsZVVwZGF0aW5nKGUpe31kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMuXyRFTz8uZm9yRWFjaChlPT5lLmhvc3REaXNjb25uZWN0ZWQ/LigpKX1hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soZSxhLGkpe3RoaXMuXyRBSyhlLGkpfV8kRVQoZSxhKXtsZXQgaT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChlKSxyPXRoaXMuY29uc3RydWN0b3IuXyRFdShlLGkpO2lmKHIhPT12b2lkIDAmJmkucmVmbGVjdD09PSEwKXtsZXQgcz0oaS5jb252ZXJ0ZXI/LnRvQXR0cmlidXRlIT09dm9pZCAwP2kuY29udmVydGVyOk00KS50b0F0dHJpYnV0ZShhLGkudHlwZSk7dGhpcy5fJEVtPWUscz09bnVsbD90aGlzLnJlbW92ZUF0dHJpYnV0ZShyKTp0aGlzLnNldEF0dHJpYnV0ZShyLHMpLHRoaXMuXyRFbT1udWxsfX1fJEFLKGUsYSl7bGV0IGk9dGhpcy5jb25zdHJ1Y3RvcixyPWkuXyRFaC5nZXQoZSk7aWYociE9PXZvaWQgMCYmdGhpcy5fJEVtIT09cil7bGV0IHM9aS5nZXRQcm9wZXJ0eU9wdGlvbnMociksbj10eXBlb2Ygcy5jb252ZXJ0ZXI9PSJmdW5jdGlvbiI/e2Zyb21BdHRyaWJ1dGU6cy5jb252ZXJ0ZXJ9OnMuY29udmVydGVyPy5mcm9tQXR0cmlidXRlIT09dm9pZCAwP3MuY29udmVydGVyOk00O3RoaXMuXyRFbT1yO2xldCBvPW4uZnJvbUF0dHJpYnV0ZShhLHMudHlwZSk7dGhpc1tyXT1vPz90aGlzLl8kRWo/LmdldChyKT8/byx0aGlzLl8kRW09bnVsbH19cmVxdWVzdFVwZGF0ZShlLGEsaSxyPSExLHMpe2lmKGUhPT12b2lkIDApe2xldCBuPXRoaXMuY29uc3RydWN0b3I7aWYocj09PSExJiYocz10aGlzW2VdKSxpPz89bi5nZXRQcm9wZXJ0eU9wdGlvbnMoZSksISgoaS5oYXNDaGFuZ2VkPz9yYykocyxhKXx8aS51c2VEZWZhdWx0JiZpLnJlZmxlY3QmJnM9PT10aGlzLl8kRWo/LmdldChlKSYmIXRoaXMuaGFzQXR0cmlidXRlKG4uXyRFdShlLGkpKSkpcmV0dXJuO3RoaXMuQyhlLGEsaSl9dGhpcy5pc1VwZGF0ZVBlbmRpbmc9PT0hMSYmKHRoaXMuXyRFUz10aGlzLl8kRVAoKSl9QyhlLGEse3VzZURlZmF1bHQ6aSxyZWZsZWN0OnIsd3JhcHBlZDpzfSxuKXtpJiYhKHRoaXMuXyRFaj8/PW5ldyBNYXApLmhhcyhlKSYmKHRoaXMuXyRFai5zZXQoZSxuPz9hPz90aGlzW2VdKSxzIT09ITB8fG4hPT12b2lkIDApfHwodGhpcy5fJEFMLmhhcyhlKXx8KHRoaXMuaGFzVXBkYXRlZHx8aXx8KGE9dm9pZCAwKSx0aGlzLl8kQUwuc2V0KGUsYSkpLHI9PT0hMCYmdGhpcy5fJEVtIT09ZSYmKHRoaXMuXyRFcT8/PW5ldyBTZXQpLmFkZChlKSl9YXN5bmMgXyRFUCgpe3RoaXMuaXNVcGRhdGVQZW5kaW5nPSEwO3RyeXthd2FpdCB0aGlzLl8kRVN9Y2F0Y2goYSl7UHJvbWlzZS5yZWplY3QoYSl9bGV0IGU9dGhpcy5zY2hlZHVsZVVwZGF0ZSgpO3JldHVybiBlIT1udWxsJiZhd2FpdCBlLCF0aGlzLmlzVXBkYXRlUGVuZGluZ31zY2hlZHVsZVVwZGF0ZSgpe3JldHVybiB0aGlzLnBlcmZvcm1VcGRhdGUoKX1wZXJmb3JtVXBkYXRlKCl7aWYoIXRoaXMuaXNVcGRhdGVQZW5kaW5nKXJldHVybjtpZighdGhpcy5oYXNVcGRhdGVkKXtpZih0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLl8kRXApe2ZvcihsZXRbcixzXW9mIHRoaXMuXyRFcCl0aGlzW3JdPXM7dGhpcy5fJEVwPXZvaWQgMH1sZXQgaT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzO2lmKGkuc2l6ZT4wKWZvcihsZXRbcixzXW9mIGkpe2xldHt3cmFwcGVkOm59PXMsbz10aGlzW3JdO24hPT0hMHx8dGhpcy5fJEFMLmhhcyhyKXx8bz09PXZvaWQgMHx8dGhpcy5DKHIsdm9pZCAwLHMsbyl9fWxldCBlPSExLGE9dGhpcy5fJEFMO3RyeXtlPXRoaXMuc2hvdWxkVXBkYXRlKGEpLGU/KHRoaXMud2lsbFVwZGF0ZShhKSx0aGlzLl8kRU8/LmZvckVhY2goaT0+aS5ob3N0VXBkYXRlPy4oKSksdGhpcy51cGRhdGUoYSkpOnRoaXMuXyRFTSgpfWNhdGNoKGkpe3Rocm93IGU9ITEsdGhpcy5fJEVNKCksaX1lJiZ0aGlzLl8kQUUoYSl9d2lsbFVwZGF0ZShlKXt9XyRBRShlKXt0aGlzLl8kRU8/LmZvckVhY2goYT0+YS5ob3N0VXBkYXRlZD8uKCkpLHRoaXMuaGFzVXBkYXRlZHx8KHRoaXMuaGFzVXBkYXRlZD0hMCx0aGlzLmZpcnN0VXBkYXRlZChlKSksdGhpcy51cGRhdGVkKGUpfV8kRU0oKXt0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMX1nZXQgdXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5nZXRVcGRhdGVDb21wbGV0ZSgpfWdldFVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuXyRFU31zaG91bGRVcGRhdGUoZSl7cmV0dXJuITB9dXBkYXRlKGUpe3RoaXMuXyRFcSYmPXRoaXMuXyRFcS5mb3JFYWNoKGE9PnRoaXMuXyRFVChhLHRoaXNbYV0pKSx0aGlzLl8kRU0oKX11cGRhdGVkKGUpe31maXJzdFVwZGF0ZWQoZSl7fX07bHIuZWxlbWVudFN0eWxlcz1bXSxsci5zaGFkb3dSb290T3B0aW9ucz17bW9kZToib3BlbiJ9LGxyW2ljKCJlbGVtZW50UHJvcGVydGllcyIpXT1uZXcgTWFwLGxyW2ljKCJmaW5hbGl6ZWQiKV09bmV3IE1hcCxfTXQ/Lih7UmVhY3RpdmVFbGVtZW50OmxyfSksKHVkLnJlYWN0aXZlRWxlbWVudFZlcnNpb25zPz89W10pLnB1c2goIjIuMS4yIil9KTtmdW5jdGlvbiBQVSh0LGUpe2lmKCFEdyh0KXx8IXQuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gQ1UhPT12b2lkIDA/Q1UuY3JlYXRlSFRNTChlKTplfWZ1bmN0aW9uIExvKHQsZSxhPXQsaSl7aWYoZT09PW0xKXJldHVybiBlO2xldCByPWkhPT12b2lkIDA/YS5fJENvPy5baV06YS5fJENsLHM9b2MoZSk/dm9pZCAwOmUuXyRsaXREaXJlY3RpdmUkO3JldHVybiByPy5jb25zdHJ1Y3RvciE9PXMmJihyPy5fJEFPPy4oITEpLHM9PT12b2lkIDA/cj12b2lkIDA6KHI9bmV3IHModCksci5fJEFUKHQsYSxpKSksaSE9PXZvaWQgMD8oYS5fJENvPz89W10pW2ldPXI6YS5fJENsPXIpLHIhPT12b2lkIDAmJihlPUxvKHQsci5fJEFTKHQsZS52YWx1ZXMpLHIsaSkpLGV9dmFyIEx3LFNVLGZkLENVLCR3LFFyLEF3LFRNdCxDbyxuYyxvYyxEdyxfVSxFdyxsYyxUVSxMVSxfbywkVSxBVSxEVSxQdyx3LEl3LE53LG0xLGsxLEVVLFRvLElVLGNjLG1kLHo0LCRvLGdkLGJkLHZkLHlkLEZ3LExNdCxybixfaT1iKCgpPT57THc9Z2xvYmFsVGhpcyxTVT10PT50LGZkPUx3LnRydXN0ZWRUeXBlcyxDVT1mZD9mZC5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDp0PT50fSk6dm9pZCAwLCR3PSIkbGl0JCIsUXI9YGxpdCQke01hdGgucmFuZG9tKCkudG9GaXhlZCg5KS5zbGljZSgyKX0kYCxBdz0iPyIrUXIsVE10PWA8JHtBd30+YCxDbz1kb2N1bWVudCxuYz0oKT0+Q28uY3JlYXRlQ29tbWVudCgiIiksb2M9dD0+dD09PW51bGx8fHR5cGVvZiB0IT0ib2JqZWN0IiYmdHlwZW9mIHQhPSJmdW5jdGlvbiIsRHc9QXJyYXkuaXNBcnJheSxfVT10PT5Edyh0KXx8dHlwZW9mIHQ/LltTeW1ib2wuaXRlcmF0b3JdPT0iZnVuY3Rpb24iLEV3PWBbIAkKXGZccl1gLGxjPS88KD86KCEtLXxcL1teYS16QS1aXSl8KFwvP1thLXpBLVpdW14+XHNdKil8KFwvPyQpKS9nLFRVPS8tLT4vZyxMVT0vPi9nLF9vPVJlZ0V4cChgPnwke0V3fSg/OihbXlxccyInPj0vXSspKCR7RXd9Kj0ke0V3fSooPzpbXiAJClxmXHIiJ1xgPD49XXwoInwnKXwpKXwkKWAsImciKSwkVT0vJy9nLEFVPS8iL2csRFU9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLFB3PXQ9PihlLC4uLmEpPT4oe18kbGl0VHlwZSQ6dCxzdHJpbmdzOmUsdmFsdWVzOmF9KSx3PVB3KDEpLEl3PVB3KDIpLE53PVB3KDMpLG0xPVN5bWJvbC5mb3IoImxpdC1ub0NoYW5nZSIpLGsxPVN5bWJvbC5mb3IoImxpdC1ub3RoaW5nIiksRVU9bmV3IFdlYWtNYXAsVG89Q28uY3JlYXRlVHJlZVdhbGtlcihDbywxMjkpO0lVPSh0LGUpPT57bGV0IGE9dC5sZW5ndGgtMSxpPVtdLHIscz1lPT09Mj8iPHN2Zz4iOmU9PT0zPyI8bWF0aD4iOiIiLG49bGM7Zm9yKGxldCBvPTA7bzxhO28rKyl7bGV0IGQ9dFtvXSxjLHAsbD0tMSxmPTA7Zm9yKDtmPGQubGVuZ3RoJiYobi5sYXN0SW5kZXg9ZixwPW4uZXhlYyhkKSxwIT09bnVsbCk7KWY9bi5sYXN0SW5kZXgsbj09PWxjP3BbMV09PT0iIS0tIj9uPVRVOnBbMV0hPT12b2lkIDA/bj1MVTpwWzJdIT09dm9pZCAwPyhEVS50ZXN0KHBbMl0pJiYocj1SZWdFeHAoIjwvIitwWzJdLCJnIikpLG49X28pOnBbM10hPT12b2lkIDAmJihuPV9vKTpuPT09X28/cFswXT09PSI+Ij8obj1yPz9sYyxsPS0xKTpwWzFdPT09dm9pZCAwP2w9LTI6KGw9bi5sYXN0SW5kZXgtcFsyXS5sZW5ndGgsYz1wWzFdLG49cFszXT09PXZvaWQgMD9fbzpwWzNdPT09JyInP0FVOiRVKTpuPT09QVV8fG49PT0kVT9uPV9vOm49PT1UVXx8bj09PUxVP249bGM6KG49X28scj12b2lkIDApO2xldCBnPW49PT1fbyYmdFtvKzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO3MrPW49PT1sYz9kK1RNdDpsPj0wPyhpLnB1c2goYyksZC5zbGljZSgwLGwpKyR3K2Quc2xpY2UobCkrUXIrZyk6ZCtRcisobD09PS0yP286Zyl9cmV0dXJuW1BVKHQscysodFthXXx8Ijw/PiIpKyhlPT09Mj8iPC9zdmc+IjplPT09Mz8iPC9tYXRoPiI6IiIpKSxpXX0sY2M9Y2xhc3MgdHtjb25zdHJ1Y3Rvcih7c3RyaW5nczplLF8kbGl0VHlwZSQ6YX0saSl7bGV0IHI7dGhpcy5wYXJ0cz1bXTtsZXQgcz0wLG49MCxvPWUubGVuZ3RoLTEsZD10aGlzLnBhcnRzLFtjLHBdPUlVKGUsYSk7aWYodGhpcy5lbD10LmNyZWF0ZUVsZW1lbnQoYyxpKSxUby5jdXJyZW50Tm9kZT10aGlzLmVsLmNvbnRlbnQsYT09PTJ8fGE9PT0zKXtsZXQgbD10aGlzLmVsLmNvbnRlbnQuZmlyc3RDaGlsZDtsLnJlcGxhY2VXaXRoKC4uLmwuY2hpbGROb2Rlcyl9Zm9yKDsocj1Uby5uZXh0Tm9kZSgpKSE9PW51bGwmJmQubGVuZ3RoPG87KXtpZihyLm5vZGVUeXBlPT09MSl7aWYoci5oYXNBdHRyaWJ1dGVzKCkpZm9yKGxldCBsIG9mIHIuZ2V0QXR0cmlidXRlTmFtZXMoKSlpZihsLmVuZHNXaXRoKCR3KSl7bGV0IGY9cFtuKytdLGc9ci5nZXRBdHRyaWJ1dGUobCkuc3BsaXQoUXIpLHk9LyhbLj9AXSk/KC4qKS8uZXhlYyhmKTtkLnB1c2goe3R5cGU6MSxpbmRleDpzLG5hbWU6eVsyXSxzdHJpbmdzOmcsY3Rvcjp5WzFdPT09Ii4iP2dkOnlbMV09PT0iPyI/YmQ6eVsxXT09PSJAIj92ZDokb30pLHIucmVtb3ZlQXR0cmlidXRlKGwpfWVsc2UgbC5zdGFydHNXaXRoKFFyKSYmKGQucHVzaCh7dHlwZTo2LGluZGV4OnN9KSxyLnJlbW92ZUF0dHJpYnV0ZShsKSk7aWYoRFUudGVzdChyLnRhZ05hbWUpKXtsZXQgbD1yLnRleHRDb250ZW50LnNwbGl0KFFyKSxmPWwubGVuZ3RoLTE7aWYoZj4wKXtyLnRleHRDb250ZW50PWZkP2ZkLmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgZz0wO2c8ZjtnKyspci5hcHBlbmQobFtnXSxuYygpKSxUby5uZXh0Tm9kZSgpLGQucHVzaCh7dHlwZToyLGluZGV4Oisrc30pO3IuYXBwZW5kKGxbZl0sbmMoKSl9fX1lbHNlIGlmKHIubm9kZVR5cGU9PT04KWlmKHIuZGF0YT09PUF3KWQucHVzaCh7dHlwZToyLGluZGV4OnN9KTtlbHNle2xldCBsPS0xO2Zvcig7KGw9ci5kYXRhLmluZGV4T2YoUXIsbCsxKSkhPT0tMTspZC5wdXNoKHt0eXBlOjcsaW5kZXg6c30pLGwrPVFyLmxlbmd0aC0xfXMrK319c3RhdGljIGNyZWF0ZUVsZW1lbnQoZSxhKXtsZXQgaT1Dby5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBpLmlubmVySFRNTD1lLGl9fTttZD1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuXyRBVj1bXSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBRD1lLHRoaXMuXyRBTT1hfWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXUoZSl7bGV0e2VsOntjb250ZW50OmF9LHBhcnRzOml9PXRoaXMuXyRBRCxyPShlPy5jcmVhdGlvblNjb3BlPz9DbykuaW1wb3J0Tm9kZShhLCEwKTtUby5jdXJyZW50Tm9kZT1yO2xldCBzPVRvLm5leHROb2RlKCksbj0wLG89MCxkPWlbMF07Zm9yKDtkIT09dm9pZCAwOyl7aWYobj09PWQuaW5kZXgpe2xldCBjO2QudHlwZT09PTI/Yz1uZXcgejQocyxzLm5leHRTaWJsaW5nLHRoaXMsZSk6ZC50eXBlPT09MT9jPW5ldyBkLmN0b3IocyxkLm5hbWUsZC5zdHJpbmdzLHRoaXMsZSk6ZC50eXBlPT09NiYmKGM9bmV3IHlkKHMsdGhpcyxlKSksdGhpcy5fJEFWLnB1c2goYyksZD1pWysrb119biE9PWQ/LmluZGV4JiYocz1Uby5uZXh0Tm9kZSgpLG4rKyl9cmV0dXJuIFRvLmN1cnJlbnROb2RlPUNvLHJ9cChlKXtsZXQgYT0wO2ZvcihsZXQgaSBvZiB0aGlzLl8kQVYpaSE9PXZvaWQgMCYmKGkuc3RyaW5ncyE9PXZvaWQgMD8oaS5fJEFJKGUsaSxhKSxhKz1pLnN0cmluZ3MubGVuZ3RoLTIpOmkuXyRBSShlW2FdKSksYSsrfX0sejQ9Y2xhc3MgdHtnZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0/Ll8kQVU/P3RoaXMuXyRDdn1jb25zdHJ1Y3RvcihlLGEsaSxyKXt0aGlzLnR5cGU9Mix0aGlzLl8kQUg9azEsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUE9ZSx0aGlzLl8kQUI9YSx0aGlzLl8kQU09aSx0aGlzLm9wdGlvbnM9cix0aGlzLl8kQ3Y9cj8uaXNDb25uZWN0ZWQ/PyEwfWdldCBwYXJlbnROb2RlKCl7bGV0IGU9dGhpcy5fJEFBLnBhcmVudE5vZGUsYT10aGlzLl8kQU07cmV0dXJuIGEhPT12b2lkIDAmJmU/Lm5vZGVUeXBlPT09MTEmJihlPWEucGFyZW50Tm9kZSksZX1nZXQgc3RhcnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQX1nZXQgZW5kTm9kZSgpe3JldHVybiB0aGlzLl8kQUJ9XyRBSShlLGE9dGhpcyl7ZT1Mbyh0aGlzLGUsYSksb2MoZSk/ZT09PWsxfHxlPT1udWxsfHxlPT09IiI/KHRoaXMuXyRBSCE9PWsxJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9azEpOmUhPT10aGlzLl8kQUgmJmUhPT1tMSYmdGhpcy5fKGUpOmUuXyRsaXRUeXBlJCE9PXZvaWQgMD90aGlzLiQoZSk6ZS5ub2RlVHlwZSE9PXZvaWQgMD90aGlzLlQoZSk6X1UoZSk/dGhpcy5rKGUpOnRoaXMuXyhlKX1PKGUpe3JldHVybiB0aGlzLl8kQUEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLl8kQUIpfVQoZSl7dGhpcy5fJEFIIT09ZSYmKHRoaXMuXyRBUigpLHRoaXMuXyRBSD10aGlzLk8oZSkpfV8oZSl7dGhpcy5fJEFIIT09azEmJm9jKHRoaXMuXyRBSCk/dGhpcy5fJEFBLm5leHRTaWJsaW5nLmRhdGE9ZTp0aGlzLlQoQ28uY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuXyRBSD1lfSQoZSl7bGV0e3ZhbHVlczphLF8kbGl0VHlwZSQ6aX09ZSxyPXR5cGVvZiBpPT0ibnVtYmVyIj90aGlzLl8kQUMoZSk6KGkuZWw9PT12b2lkIDAmJihpLmVsPWNjLmNyZWF0ZUVsZW1lbnQoUFUoaS5oLGkuaFswXSksdGhpcy5vcHRpb25zKSksaSk7aWYodGhpcy5fJEFIPy5fJEFEPT09cil0aGlzLl8kQUgucChhKTtlbHNle2xldCBzPW5ldyBtZChyLHRoaXMpLG49cy51KHRoaXMub3B0aW9ucyk7cy5wKGEpLHRoaXMuVChuKSx0aGlzLl8kQUg9c319XyRBQyhlKXtsZXQgYT1FVS5nZXQoZS5zdHJpbmdzKTtyZXR1cm4gYT09PXZvaWQgMCYmRVUuc2V0KGUuc3RyaW5ncyxhPW5ldyBjYyhlKSksYX1rKGUpe0R3KHRoaXMuXyRBSCl8fCh0aGlzLl8kQUg9W10sdGhpcy5fJEFSKCkpO2xldCBhPXRoaXMuXyRBSCxpLHI9MDtmb3IobGV0IHMgb2YgZSlyPT09YS5sZW5ndGg/YS5wdXNoKGk9bmV3IHQodGhpcy5PKG5jKCkpLHRoaXMuTyhuYygpKSx0aGlzLHRoaXMub3B0aW9ucykpOmk9YVtyXSxpLl8kQUkocykscisrO3I8YS5sZW5ndGgmJih0aGlzLl8kQVIoaSYmaS5fJEFCLm5leHRTaWJsaW5nLHIpLGEubGVuZ3RoPXIpfV8kQVIoZT10aGlzLl8kQUEubmV4dFNpYmxpbmcsYSl7Zm9yKHRoaXMuXyRBUD8uKCExLCEwLGEpO2UhPT10aGlzLl8kQUI7KXtsZXQgaT1TVShlKS5uZXh0U2libGluZztTVShlKS5yZW1vdmUoKSxlPWl9fXNldENvbm5lY3RlZChlKXt0aGlzLl8kQU09PT12b2lkIDAmJih0aGlzLl8kQ3Y9ZSx0aGlzLl8kQVA/LihlKSl9fSwkbz1jbGFzc3tnZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3RvcihlLGEsaSxyLHMpe3RoaXMudHlwZT0xLHRoaXMuXyRBSD1rMSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD1lLHRoaXMubmFtZT1hLHRoaXMuXyRBTT1yLHRoaXMub3B0aW9ucz1zLGkubGVuZ3RoPjJ8fGlbMF0hPT0iInx8aVsxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkoaS5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9aSk6dGhpcy5fJEFIPWsxfV8kQUkoZSxhPXRoaXMsaSxyKXtsZXQgcz10aGlzLnN0cmluZ3Msbj0hMTtpZihzPT09dm9pZCAwKWU9TG8odGhpcyxlLGEsMCksbj0hb2MoZSl8fGUhPT10aGlzLl8kQUgmJmUhPT1tMSxuJiYodGhpcy5fJEFIPWUpO2Vsc2V7bGV0IG89ZSxkLGM7Zm9yKGU9c1swXSxkPTA7ZDxzLmxlbmd0aC0xO2QrKyljPUxvKHRoaXMsb1tpK2RdLGEsZCksYz09PW0xJiYoYz10aGlzLl8kQUhbZF0pLG58fD0hb2MoYyl8fGMhPT10aGlzLl8kQUhbZF0sYz09PWsxP2U9azE6ZSE9PWsxJiYoZSs9KGM/PyIiKStzW2QrMV0pLHRoaXMuXyRBSFtkXT1jfW4mJiFyJiZ0aGlzLmooZSl9aihlKXtlPT09azE/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLGU/PyIiKX19LGdkPWNsYXNzIGV4dGVuZHMgJG97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT0zfWooZSl7dGhpcy5lbGVtZW50W3RoaXMubmFtZV09ZT09PWsxP3ZvaWQgMDplfX0sYmQ9Y2xhc3MgZXh0ZW5kcyAkb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTR9aihlKXt0aGlzLmVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKHRoaXMubmFtZSwhIWUmJmUhPT1rMSl9fSx2ZD1jbGFzcyBleHRlbmRzICRve2NvbnN0cnVjdG9yKGUsYSxpLHIscyl7c3VwZXIoZSxhLGkscixzKSx0aGlzLnR5cGU9NX1fJEFJKGUsYT10aGlzKXtpZigoZT1Mbyh0aGlzLGUsYSwwKT8/azEpPT09bTEpcmV0dXJuO2xldCBpPXRoaXMuXyRBSCxyPWU9PT1rMSYmaSE9PWsxfHxlLmNhcHR1cmUhPT1pLmNhcHR1cmV8fGUub25jZSE9PWkub25jZXx8ZS5wYXNzaXZlIT09aS5wYXNzaXZlLHM9ZSE9PWsxJiYoaT09PWsxfHxyKTtyJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxpKSxzJiZ0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxlKSx0aGlzLl8kQUg9ZX1oYW5kbGVFdmVudChlKXt0eXBlb2YgdGhpcy5fJEFIPT0iZnVuY3Rpb24iP3RoaXMuXyRBSC5jYWxsKHRoaXMub3B0aW9ucz8uaG9zdD8/dGhpcy5lbGVtZW50LGUpOnRoaXMuXyRBSC5oYW5kbGVFdmVudChlKX19LHlkPWNsYXNze2NvbnN0cnVjdG9yKGUsYSxpKXt0aGlzLmVsZW1lbnQ9ZSx0aGlzLnR5cGU9Nix0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBTT1hLHRoaXMub3B0aW9ucz1pfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkoZSl7TG8odGhpcyxlKX19LEZ3PXtNOiR3LFA6UXIsQTpBdyxDOjEsTDpJVSxSOm1kLEQ6X1UsVjpMbyxJOno0LEg6JG8sTjpiZCxVOnZkLEI6Z2QsRjp5ZH0sTE10PUx3LmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7TE10Py4oY2MsejQpLChMdy5saXRIdG1sVmVyc2lvbnM/Pz1bXSkucHVzaCgiMy4zLjIiKTtybj0odCxlLGEpPT57bGV0IGk9YT8ucmVuZGVyQmVmb3JlPz9lLHI9aS5fJGxpdFBhcnQkO2lmKHI9PT12b2lkIDApe2xldCBzPWE/LnJlbmRlckJlZm9yZT8/bnVsbDtpLl8kbGl0UGFydCQ9cj1uZXcgejQoZS5pbnNlcnRCZWZvcmUobmMoKSxzKSxzLHZvaWQgMCxhPz97fSl9cmV0dXJuIHIuXyRBSSh0KSxyfX0pO3ZhciBPdyxKciwkTXQsQU10LE5VPWIoKCk9PntzYygpO3NjKCk7X2koKTtfaSgpO093PWdsb2JhbFRoaXMsSnI9Y2xhc3MgZXh0ZW5kcyBscntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW5kZXJPcHRpb25zPXtob3N0OnRoaXN9LHRoaXMuXyREbz12b2lkIDB9Y3JlYXRlUmVuZGVyUm9vdCgpe2xldCBlPXN1cGVyLmNyZWF0ZVJlbmRlclJvb3QoKTtyZXR1cm4gdGhpcy5yZW5kZXJPcHRpb25zLnJlbmRlckJlZm9yZT8/PWUuZmlyc3RDaGlsZCxlfXVwZGF0ZShlKXtsZXQgYT10aGlzLnJlbmRlcigpO3RoaXMuaGFzVXBkYXRlZHx8KHRoaXMucmVuZGVyT3B0aW9ucy5pc0Nvbm5lY3RlZD10aGlzLmlzQ29ubmVjdGVkKSxzdXBlci51cGRhdGUoZSksdGhpcy5fJERvPXJuKGEsdGhpcy5yZW5kZXJSb290LHRoaXMucmVuZGVyT3B0aW9ucyl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCEwKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fJERvPy5zZXRDb25uZWN0ZWQoITEpfXJlbmRlcigpe3JldHVybiBtMX19O0pyLl8kbGl0RWxlbWVudCQ9ITAsSnIuZmluYWxpemVkPSEwLE93LmxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydD8uKHtMaXRFbGVtZW50OkpyfSk7JE10PU93LmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7JE10Py4oe0xpdEVsZW1lbnQ6SnJ9KTtBTXQ9e18kQUs6KHQsZSxhKT0+e3QuXyRBSyhlLGEpfSxfJEFMOnQ9PnQuXyRBTH07KE93LmxpdEVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCI0LjIuMiIpfSk7dmFyIERNdCxGVT1iKCgpPT57RE10PSExfSk7dmFyIGNyPWIoKCk9PntzYygpO19pKCk7TlUoKTtGVSgpfSk7dmFyIHdkPXB0KHhkPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh4ZCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkseGQudW5pPXZvaWQgMDt2YXIgRU10PSh0PSJ1bmkiKT0+YCR7dH1fJHsieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csZT0+e2xldCBhPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij9hOmEmM3w4KS50b1N0cmluZygxNil9KX1gO3hkLnVuaT1FTXR9KTt2YXIgTWQsc24semQ9YigoKT0+e01kPWNsYXNze2NsYWltKCl7aWYodGhpcy5jbGFpbWVkKXRocm93IG5ldyBFcnJvcigiRGVmZXJyZWQgYWxyZWFkeSBjbGFpbWVkIik7dGhpcy5jbGFpbWVkPSEwfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fWNvbnN0cnVjdG9yKCl7dGhpcy5jbGFpbWVkPSExLHRoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZSxhKT0+e3RoaXMucmVzb2x2ZT1pPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxlKGkpfSx0aGlzLnJlamVjdD1pPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLGEoaSl9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9fSxzbj0oKT0+bmV3IE1kfSk7dmFyIGtkLFBNdCxPVT1iKCgpPT57emQoKTtrZD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcz1bXSx0aGlzLmRlZmVycmVkPXNuKCksdGhpcy5wcm9taXNlPXRoaXMuZGVmZXJyZWQucHJvbWlzZSxzZXRUaW1lb3V0KGFzeW5jKCk9Pntmb3IoO3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5sZW5ndGg+MDspYXdhaXQgdGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnNoaWZ0KCk7dGhpcy5kZWZlcnJlZC5yZXNvbHZlKCl9LDApfXN1YkRlZmVyKCl7bGV0IGU9c24oKTtyZXR1cm4gdGhpcy5hZGRQcm9taXNlKGUucHJvbWlzZSksZX1hZGRQcm9taXNlKGUpe3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5wdXNoKGUpfX0sUE10PSgpPT5uZXcga2R9KTt2YXIgQmU9e307R2UoQmUse0N1bXVsYXRpdmVEZWZlcnJlZDooKT0+a2QsRGVmZXJyZWQ6KCk9Pk1kLGN1bXVsYXRpdmVEZWZlcjooKT0+UE10LGRlZmVyOigpPT5zbixmcm9tQ2FsbGJhY2s6KCk9PkJNdCxnZXRGaXJzdFRydWVPckZhbHNlOigpPT5STXQsbWFwOigpPT5GTXQscmVqZWN0ZWRQcm9taXNlOigpPT5OTXQscmVzb2x2ZWRQcm9taXNlOigpPT5JTXQsdGltZW91dEFuZENvbnRpbnVlOigpPT5PTXQsdGltZW91dFdyYXA6KCk9PlJVfSk7dmFyIElNdCxOTXQsRk10LFJVLE9NdCxSTXQsQk10LGMyPWIoKCk9Pnt6ZCgpO09VKCk7emQoKTtJTXQ9dD0+UHJvbWlzZS5yZXNvbHZlKHQpLE5NdD10PT5Qcm9taXNlLnJlamVjdCh0KSxGTXQ9YXN5bmModCxlKT0+e2xldCBhPVtdLGk9W107Zm9yKGxldCByIG9mIHQpe2xldCBzPWUocik7YS5wdXNoKHMpLHMudGhlbihuPT57aS5wdXNoKG4pfSl9cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGEpLGl9LFJVPWFzeW5jKHQsZSxhPSEwKT0+bmV3IFByb21pc2UoKGkscik9PntzZXRUaW1lb3V0KCgpPT57YT9yKG5ldyBFcnJvcigidGltZW91dCIpKTppKG51bGwpfSxlKSx0LnRoZW4oaSxyKX0pLE9NdD1hc3luYyh0LGU9NmU0KT0+UlUodCxlLCExKSxSTXQ9YXN5bmMgdD0+e2xldCBlPXNuKCk7Zm9yKGxldCBhIG9mIHQpYS50aGVuKGk9PntpPT09ITAmJmUucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwodCkudGhlbigoKT0+e2UucmVzb2x2ZSghMSl9KSxlLnByb21pc2V9LEJNdD10PT5uZXcgUHJvbWlzZSgoZSxhKT0+e3QoKGkscik9PntpP2EoaSk6ZShyKX0pfSl9KTt2YXIgU2Q9YigoKT0+e2MyKCl9KTtmdW5jdGlvbiBTdCh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGUpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO1J3KHQsZSk7ZnVuY3Rpb24gYSgpe3RoaXMuY29uc3RydWN0b3I9dH10LnByb3RvdHlwZT1lPT09bnVsbD9PYmplY3QuY3JlYXRlKGUpOihhLnByb3RvdHlwZT1lLnByb3RvdHlwZSxuZXcgYSl9ZnVuY3Rpb24gcU10KHQsZSl7dmFyIGE9e307Zm9yKHZhciBpIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJmUuaW5kZXhPZihpKTwwJiYoYVtpXT10W2ldKTtpZih0IT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIHI9MCxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7cjxpLmxlbmd0aDtyKyspZS5pbmRleE9mKGlbcl0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LGlbcl0pJiYoYVtpW3JdXT10W2lbcl1dKTtyZXR1cm4gYX1mdW5jdGlvbiBWTXQodCxlLGEsaSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aCxzPXI8Mz9lOmk9PT1udWxsP2k9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGEpOmksbjtpZih0eXBlb2YgUmVmbGVjdD09Im9iamVjdCImJnR5cGVvZiBSZWZsZWN0LmRlY29yYXRlPT0iZnVuY3Rpb24iKXM9UmVmbGVjdC5kZWNvcmF0ZSh0LGUsYSxpKTtlbHNlIGZvcih2YXIgbz10Lmxlbmd0aC0xO28+PTA7by0tKShuPXRbb10pJiYocz0ocjwzP24ocyk6cj4zP24oZSxhLHMpOm4oZSxhKSl8fHMpO3JldHVybiByPjMmJnMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGEscyksc31mdW5jdGlvbiBqTXQodCxlKXtyZXR1cm4gZnVuY3Rpb24oYSxpKXtlKGEsaSx0KX19ZnVuY3Rpb24gVU10KHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH1mdW5jdGlvbiBXTXQodCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9ZnVuY3Rpb24gR010KHQpe3JldHVybiB0eXBlb2YgdD09InN5bWJvbCI/dDoiIi5jb25jYXQodCl9ZnVuY3Rpb24gWU10KHQsZSxhKXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiJiYoZT1lLmRlc2NyaXB0aW9uPyJbIi5jb25jYXQoZS5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTphPyIiLmNvbmNhdChhLCIgIixlKTplfSl9ZnVuY3Rpb24gWk10KHQsZSl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YSh0LGUpfWZ1bmN0aW9uIFZ3KHQsZSxhLGkpe2Z1bmN0aW9uIHIocyl7cmV0dXJuIHMgaW5zdGFuY2VvZiBhP3M6bmV3IGEoZnVuY3Rpb24obil7bihzKX0pfXJldHVybiBuZXcoYXx8KGE9UHJvbWlzZSkpKGZ1bmN0aW9uKHMsbil7ZnVuY3Rpb24gbyhwKXt0cnl7YyhpLm5leHQocCkpfWNhdGNoKGwpe24obCl9fWZ1bmN0aW9uIGQocCl7dHJ5e2MoaS50aHJvdyhwKSl9Y2F0Y2gobCl7bihsKX19ZnVuY3Rpb24gYyhwKXtwLmRvbmU/cyhwLnZhbHVlKTpyKHAudmFsdWUpLnRoZW4obyxkKX1jKChpPWkuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX1mdW5jdGlvbiBkYyh0LGUpe3ZhciBhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihzWzBdJjEpdGhyb3cgc1sxXTtyZXR1cm4gc1sxXX0sdHJ5czpbXSxvcHM6W119LGkscixzLG49T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gbi5uZXh0PW8oMCksbi50aHJvdz1vKDEpLG4ucmV0dXJuPW8oMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG5bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbjtmdW5jdGlvbiBvKGMpe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gZChbYyxwXSl9fWZ1bmN0aW9uIGQoYyl7aWYoaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtuJiYobj0wLGNbMF0mJihhPTApKSxhOyl0cnl7aWYoaT0xLHImJihzPWNbMF0mMj9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgocz1yLnJldHVybikmJnMuY2FsbChyKSwwKTpyLm5leHQpJiYhKHM9cy5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIHM7c3dpdGNoKHI9MCxzJiYoYz1bY1swXSYyLHMudmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOnM9YzticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihzPWEudHJ5cywhKHM9cy5sZW5ndGg+MCYmc1tzLmxlbmd0aC0xXSkmJihjWzBdPT09Nnx8Y1swXT09PTIpKXthPTA7Y29udGludWV9aWYoY1swXT09PTMmJighc3x8Y1sxXT5zWzBdJiZjWzFdPHNbM10pKXthLmxhYmVsPWNbMV07YnJlYWt9aWYoY1swXT09PTYmJmEubGFiZWw8c1sxXSl7YS5sYWJlbD1zWzFdLHM9YzticmVha31pZihzJiZhLmxhYmVsPHNbMl0pe2EubGFiZWw9c1syXSxhLm9wcy5wdXNoKGMpO2JyZWFrfXNbMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1jPWUuY2FsbCh0LGEpfWNhdGNoKHApe2M9WzYscF0scj0wfWZpbmFsbHl7aT1zPTB9aWYoY1swXSY1KXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIFhNdCh0LGUpe2Zvcih2YXIgYSBpbiB0KWEhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSYmSHcoZSx0LGEpfWZ1bmN0aW9uIE4yKHQpe3ZhciBlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5pdGVyYXRvcixhPWUmJnRbZV0saT0wO2lmKGEpcmV0dXJuIGEuY2FsbCh0KTtpZih0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJmk+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W2krK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKGU/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfWZ1bmN0aW9uIFUxKHQsZSl7dmFyIGE9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFhKXJldHVybiB0O3ZhciBpPWEuY2FsbCh0KSxyLHM9W10sbjt0cnl7Zm9yKDsoZT09PXZvaWQgMHx8ZS0tID4wKSYmIShyPWkubmV4dCgpKS5kb25lOylzLnB1c2goci52YWx1ZSl9Y2F0Y2gobyl7bj17ZXJyb3I6b319ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKGE9aS5yZXR1cm4pJiZhLmNhbGwoaSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiBzfWZ1bmN0aW9uIEtNdCgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0PXQuY29uY2F0KFUxKGFyZ3VtZW50c1tlXSkpO3JldHVybiB0fWZ1bmN0aW9uIFFNdCgpe2Zvcih2YXIgdD0wLGU9MCxhPWFyZ3VtZW50cy5sZW5ndGg7ZTxhO2UrKyl0Kz1hcmd1bWVudHNbZV0ubGVuZ3RoO2Zvcih2YXIgaT1BcnJheSh0KSxyPTAsZT0wO2U8YTtlKyspZm9yKHZhciBzPWFyZ3VtZW50c1tlXSxuPTAsbz1zLmxlbmd0aDtuPG87bisrLHIrKylpW3JdPXNbbl07cmV0dXJuIGl9ZnVuY3Rpb24geDIodCxlLGEpe2lmKGF8fGFyZ3VtZW50cy5sZW5ndGg9PT0yKWZvcih2YXIgaT0wLHI9ZS5sZW5ndGgscztpPHI7aSsrKShzfHwhKGkgaW4gZSkpJiYoc3x8KHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwwLGkpKSxzW2ldPWVbaV0pO3JldHVybiB0LmNvbmNhdChzfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSl9ZnVuY3Rpb24gZXModCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBlcz8odGhpcy52PXQsdGhpcyk6bmV3IGVzKHQpfWZ1bmN0aW9uIGp3KHQsZSxhKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGk9YS5hcHBseSh0LGV8fFtdKSxyLHM9W107cmV0dXJuIHI9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSksbygibmV4dCIpLG8oInRocm93IiksbygicmV0dXJuIixuKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyO2Z1bmN0aW9uIG4oZyl7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybiBQcm9taXNlLnJlc29sdmUoeSkudGhlbihnLGwpfX1mdW5jdGlvbiBvKGcseSl7aVtnXSYmKHJbZ109ZnVuY3Rpb24odil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG0seCl7cy5wdXNoKFtnLHYsbSx4XSk+MXx8ZChnLHYpfSl9LHkmJihyW2ddPXkocltnXSkpKX1mdW5jdGlvbiBkKGcseSl7dHJ5e2MoaVtnXSh5KSl9Y2F0Y2godil7ZihzWzBdWzNdLHYpfX1mdW5jdGlvbiBjKGcpe2cudmFsdWUgaW5zdGFuY2VvZiBlcz9Qcm9taXNlLnJlc29sdmUoZy52YWx1ZS52KS50aGVuKHAsbCk6ZihzWzBdWzJdLGcpfWZ1bmN0aW9uIHAoZyl7ZCgibmV4dCIsZyl9ZnVuY3Rpb24gbChnKXtkKCJ0aHJvdyIsZyl9ZnVuY3Rpb24gZihnLHkpe2coeSkscy5zaGlmdCgpLHMubGVuZ3RoJiZkKHNbMF1bMF0sc1swXVsxXSl9fWZ1bmN0aW9uIEpNdCh0KXt2YXIgZSxhO3JldHVybiBlPXt9LGkoIm5leHQiKSxpKCJ0aHJvdyIsZnVuY3Rpb24ocil7dGhyb3cgcn0pLGkoInJldHVybiIpLGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlO2Z1bmN0aW9uIGkocixzKXtlW3JdPXRbcl0/ZnVuY3Rpb24obil7cmV0dXJuKGE9IWEpP3t2YWx1ZTplcyh0W3JdKG4pKSxkb25lOiExfTpzP3Mobik6bn06c319ZnVuY3Rpb24gVXcodCl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBlPXRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdLGE7cmV0dXJuIGU/ZS5jYWxsKHQpOih0PXR5cGVvZiBOMj09ImZ1bmN0aW9uIj9OMih0KTp0W1N5bWJvbC5pdGVyYXRvcl0oKSxhPXt9LGkoIm5leHQiKSxpKCJ0aHJvdyIpLGkoInJldHVybiIpLGFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGEpO2Z1bmN0aW9uIGkocyl7YVtzXT10W3NdJiZmdW5jdGlvbihuKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyxkKXtuPXRbc10obikscihvLGQsbi5kb25lLG4udmFsdWUpfSl9fWZ1bmN0aW9uIHIocyxuLG8sZCl7UHJvbWlzZS5yZXNvbHZlKGQpLnRoZW4oZnVuY3Rpb24oYyl7cyh7dmFsdWU6Yyxkb25lOm99KX0sbil9fWZ1bmN0aW9uIGV6dCh0LGUpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInJhdyIse3ZhbHVlOmV9KTp0LnJhdz1lLHR9ZnVuY3Rpb24gYXp0KHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZih0IT1udWxsKWZvcih2YXIgYT1xdyh0KSxpPTA7aTxhLmxlbmd0aDtpKyspYVtpXSE9PSJkZWZhdWx0IiYmSHcoZSx0LGFbaV0pO3JldHVybiB0enQoZSx0KSxlfWZ1bmN0aW9uIGl6dCh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gcnp0KHQsZSxhLGkpe2lmKGE9PT0iYSImJiFpKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iP3QhPT1lfHwhaTohZS5oYXModCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGE9PT0ibSI/aTphPT09ImEiP2kuY2FsbCh0KTppP2kudmFsdWU6ZS5nZXQodCl9ZnVuY3Rpb24gc3p0KHQsZSxhLGkscil7aWYoaT09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihpPT09ImEiJiYhcil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIj90IT09ZXx8IXI6IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGk9PT0iYSI/ci5jYWxsKHQsYSk6cj9yLnZhbHVlPWE6ZS5zZXQodCxhKSxhfWZ1bmN0aW9uIG56dCh0LGUpe2lmKGU9PT1udWxsfHx0eXBlb2YgZSE9Im9iamVjdCImJnR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP2U9PT10OnQuaGFzKGUpfWZ1bmN0aW9uIG96dCh0LGUsYSl7aWYoZSE9bnVsbCl7aWYodHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIGkscjtpZihhKXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2k9ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihpPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7aT1lW1N5bWJvbC5kaXNwb3NlXSxhJiYocj1pKX1pZih0eXBlb2YgaSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7ciYmKGk9ZnVuY3Rpb24oKXt0cnl7ci5jYWxsKHRoaXMpfWNhdGNoKHMpe3JldHVybiBQcm9taXNlLnJlamVjdChzKX19KSx0LnN0YWNrLnB1c2goe3ZhbHVlOmUsZGlzcG9zZTppLGFzeW5jOmF9KX1lbHNlIGEmJnQuc3RhY2sucHVzaCh7YXN5bmM6ITB9KTtyZXR1cm4gZX1mdW5jdGlvbiBjenQodCl7ZnVuY3Rpb24gZShzKXt0LmVycm9yPXQuaGFzRXJyb3I/bmV3IGx6dChzLHQuZXJyb3IsIkFuIGVycm9yIHdhcyBzdXBwcmVzc2VkIGR1cmluZyBkaXNwb3NhbC4iKTpzLHQuaGFzRXJyb3I9ITB9dmFyIGEsaT0wO2Z1bmN0aW9uIHIoKXtmb3IoO2E9dC5zdGFjay5wb3AoKTspdHJ5e2lmKCFhLmFzeW5jJiZpPT09MSlyZXR1cm4gaT0wLHQuc3RhY2sucHVzaChhKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKHIpO2lmKGEuZGlzcG9zZSl7dmFyIHM9YS5kaXNwb3NlLmNhbGwoYS52YWx1ZSk7aWYoYS5hc3luYylyZXR1cm4gaXw9MixQcm9taXNlLnJlc29sdmUocykudGhlbihyLGZ1bmN0aW9uKG4pe3JldHVybiBlKG4pLHIoKX0pfWVsc2UgaXw9MX1jYXRjaChuKXtlKG4pfWlmKGk9PT0xKXJldHVybiB0Lmhhc0Vycm9yP1Byb21pc2UucmVqZWN0KHQuZXJyb3IpOlByb21pc2UucmVzb2x2ZSgpO2lmKHQuaGFzRXJyb3IpdGhyb3cgdC5lcnJvcn1yZXR1cm4gcigpfWZ1bmN0aW9uIGR6dCh0LGUpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyImJi9eXC5cLj9cLy8udGVzdCh0KT90LnJlcGxhY2UoL1wuKHRzeCkkfCgoPzpcLmQpPykoKD86XC5bXi4vXSs/KT8pXC4oW2NtXT8pdHMkL2ksZnVuY3Rpb24oYSxpLHIscyxuKXtyZXR1cm4gaT9lPyIuanN4IjoiLmpzIjpyJiYoIXN8fCFuKT9hOnIrcysiLiIrbi50b0xvd2VyQ2FzZSgpKyJqcyJ9KTp0fXZhciBSdyxCdyxIdyx0enQscXcsbHp0LE1XdCxhMT1iKCgpPT57Unc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gUnc9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGEsaSl7YS5fX3Byb3RvX189aX18fGZ1bmN0aW9uKGEsaSl7Zm9yKHZhciByIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGkscikmJihhW3JdPWlbcl0pfSxSdyh0LGUpfTtCdz1mdW5jdGlvbigpe3JldHVybiBCdz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIGEsaT0xLHI9YXJndW1lbnRzLmxlbmd0aDtpPHI7aSsrKXthPWFyZ3VtZW50c1tpXTtmb3IodmFyIHMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxzKSYmKGVbc109YVtzXSl9cmV0dXJuIGV9LEJ3LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07SHc9T2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlLGEsaSl7aT09PXZvaWQgMCYmKGk9YSk7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGEpOyghcnx8KCJnZXQiaW4gcj8hZS5fX2VzTW9kdWxlOnIud3JpdGFibGV8fHIuY29uZmlndXJhYmxlKSkmJihyPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlW2FdfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkscil9KTooZnVuY3Rpb24odCxlLGEsaSl7aT09PXZvaWQgMCYmKGk9YSksdFtpXT1lW2FdfSk7dHp0PU9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKHQsZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmV9KX0pOmZ1bmN0aW9uKHQsZSl7dC5kZWZhdWx0PWV9LHF3PWZ1bmN0aW9uKHQpe3JldHVybiBxdz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24oZSl7dmFyIGE9W107Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJihhW2EubGVuZ3RoXT1pKTtyZXR1cm4gYX0scXcodCl9O2x6dD10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbih0LGUsYSl7dmFyIGk9bmV3IEVycm9yKGEpO3JldHVybiBpLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsaS5lcnJvcj10LGkuc3VwcHJlc3NlZD1lLGl9O01XdD17X19leHRlbmRzOlN0LF9fYXNzaWduOkJ3LF9fcmVzdDpxTXQsX19kZWNvcmF0ZTpWTXQsX19wYXJhbTpqTXQsX19lc0RlY29yYXRlOlVNdCxfX3J1bkluaXRpYWxpemVyczpXTXQsX19wcm9wS2V5OkdNdCxfX3NldEZ1bmN0aW9uTmFtZTpZTXQsX19tZXRhZGF0YTpaTXQsX19hd2FpdGVyOlZ3LF9fZ2VuZXJhdG9yOmRjLF9fY3JlYXRlQmluZGluZzpIdyxfX2V4cG9ydFN0YXI6WE10LF9fdmFsdWVzOk4yLF9fcmVhZDpVMSxfX3NwcmVhZDpLTXQsX19zcHJlYWRBcnJheXM6UU10LF9fc3ByZWFkQXJyYXk6eDIsX19hd2FpdDplcyxfX2FzeW5jR2VuZXJhdG9yOmp3LF9fYXN5bmNEZWxlZ2F0b3I6Sk10LF9fYXN5bmNWYWx1ZXM6VXcsX19tYWtlVGVtcGxhdGVPYmplY3Q6ZXp0LF9faW1wb3J0U3RhcjphenQsX19pbXBvcnREZWZhdWx0Oml6dCxfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OnJ6dCxfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0OnN6dCxfX2NsYXNzUHJpdmF0ZUZpZWxkSW46bnp0LF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOm96dCxfX2Rpc3Bvc2VSZXNvdXJjZXM6Y3p0LF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOmR6dH19KTtmdW5jdGlvbiBodCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiJ9dmFyIGQyPWIoKCk9Pnt9KTtmdW5jdGlvbiBNYSh0KXt2YXIgZT1mdW5jdGlvbihpKXtFcnJvci5jYWxsKGkpLGkuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2t9LGE9dChlKTtyZXR1cm4gYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLGEucHJvdG90eXBlLmNvbnN0cnVjdG9yPWEsYX12YXIgbm49YigoKT0+e30pO3ZhciBwYyxXdz1iKCgpPT57bm4oKTtwYz1NYShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oYSl7dCh0aGlzKSx0aGlzLm1lc3NhZ2U9YT9hLmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArYS5tYXAoZnVuY3Rpb24oaSxyKXtyZXR1cm4gcisxKyIpICIraS50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1hfX0pfSk7ZnVuY3Rpb24gVGkodCxlKXtpZih0KXt2YXIgYT10LmluZGV4T2YoZSk7MDw9YSYmdC5zcGxpY2UoYSwxKX19dmFyIGs0PWIoKCk9Pnt9KTtmdW5jdGlvbiBDZCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEYxfHx0JiYiY2xvc2VkImluIHQmJmh0KHQucmVtb3ZlKSYmaHQodC5hZGQpJiZodCh0LnVuc3Vic2NyaWJlKX1mdW5jdGlvbiBCVSh0KXtodCh0KT90KCk6dC51bnN1YnNjcmliZSgpfXZhciBGMSxHdyxkcj1iKCgpPT57YTEoKTtkMigpO1d3KCk7azQoKTtGMT0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMuaW5pdGlhbFRlYXJkb3duPWUsdGhpcy5jbG9zZWQ9ITEsdGhpcy5fcGFyZW50YWdlPW51bGwsdGhpcy5fZmluYWxpemVycz1udWxsfXJldHVybiB0LnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciBlLGEsaSxyLHM7aWYoIXRoaXMuY2xvc2VkKXt0aGlzLmNsb3NlZD0hMDt2YXIgbj10aGlzLl9wYXJlbnRhZ2U7aWYobilpZih0aGlzLl9wYXJlbnRhZ2U9bnVsbCxBcnJheS5pc0FycmF5KG4pKXRyeXtmb3IodmFyIG89TjIobiksZD1vLm5leHQoKTshZC5kb25lO2Q9by5uZXh0KCkpe3ZhciBjPWQudmFsdWU7Yy5yZW1vdmUodGhpcyl9fWNhdGNoKHYpe2U9e2Vycm9yOnZ9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihhPW8ucmV0dXJuKSYmYS5jYWxsKG8pfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX1lbHNlIG4ucmVtb3ZlKHRoaXMpO3ZhciBwPXRoaXMuaW5pdGlhbFRlYXJkb3duO2lmKGh0KHApKXRyeXtwKCl9Y2F0Y2godil7cz12IGluc3RhbmNlb2YgcGM/di5lcnJvcnM6W3ZdfXZhciBsPXRoaXMuX2ZpbmFsaXplcnM7aWYobCl7dGhpcy5fZmluYWxpemVycz1udWxsO3RyeXtmb3IodmFyIGY9TjIobCksZz1mLm5leHQoKTshZy5kb25lO2c9Zi5uZXh0KCkpe3ZhciB5PWcudmFsdWU7dHJ5e0JVKHkpfWNhdGNoKHYpe3M9cz8/W10sdiBpbnN0YW5jZW9mIHBjP3M9eDIoeDIoW10sVTEocykpLFUxKHYuZXJyb3JzKSk6cy5wdXNoKHYpfX19Y2F0Y2godil7aT17ZXJyb3I6dn19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKHI9Zi5yZXR1cm4pJiZyLmNhbGwoZil9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fX1pZihzKXRocm93IG5ldyBwYyhzKX19LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgYTtpZihlJiZlIT09dGhpcylpZih0aGlzLmNsb3NlZClCVShlKTtlbHNle2lmKGUgaW5zdGFuY2VvZiB0KXtpZihlLmNsb3NlZHx8ZS5faGFzUGFyZW50KHRoaXMpKXJldHVybjtlLl9hZGRQYXJlbnQodGhpcyl9KHRoaXMuX2ZpbmFsaXplcnM9KGE9dGhpcy5fZmluYWxpemVycykhPT1udWxsJiZhIT09dm9pZCAwP2E6W10pLnB1c2goZSl9fSx0LnByb3RvdHlwZS5faGFzUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciBhPXRoaXMuX3BhcmVudGFnZTtyZXR1cm4gYT09PWV8fEFycmF5LmlzQXJyYXkoYSkmJmEuaW5jbHVkZXMoZSl9LHQucHJvdG90eXBlLl9hZGRQYXJlbnQ9ZnVuY3Rpb24oZSl7dmFyIGE9dGhpcy5fcGFyZW50YWdlO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KGEpPyhhLnB1c2goZSksYSk6YT9bYSxlXTplfSx0LnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50PWZ1bmN0aW9uKGUpe3ZhciBhPXRoaXMuX3BhcmVudGFnZTthPT09ZT90aGlzLl9wYXJlbnRhZ2U9bnVsbDpBcnJheS5pc0FycmF5KGEpJiZUaShhLGUpfSx0LnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oZSl7dmFyIGE9dGhpcy5fZmluYWxpemVyczthJiZUaShhLGUpLGUgaW5zdGFuY2VvZiB0JiZlLl9yZW1vdmVQYXJlbnQodGhpcyl9LHQuRU1QVFk9KGZ1bmN0aW9uKCl7dmFyIGU9bmV3IHQ7cmV0dXJuIGUuY2xvc2VkPSEwLGV9KSgpLHR9KSgpLEd3PUYxLkVNUFRZfSk7dmFyIHRpLFM0PWIoKCk9Pnt0aT17b25VbmhhbmRsZWRFcnJvcjpudWxsLG9uU3RvcHBlZE5vdGlmaWNhdGlvbjpudWxsLFByb21pc2U6dm9pZCAwLHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6ITEsdXNlRGVwcmVjYXRlZE5leHRDb250ZXh0OiExfX0pO3ZhciBDNCxZdz1iKCgpPT57YTEoKTtDND17c2V0VGltZW91dDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgYT1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKylhW2ktMl09YXJndW1lbnRzW2ldO3ZhciByPUM0LmRlbGVnYXRlO3JldHVybiByPy5zZXRUaW1lb3V0P3Iuc2V0VGltZW91dC5hcHBseShyLHgyKFt0LGVdLFUxKGEpKSk6c2V0VGltZW91dC5hcHBseSh2b2lkIDAseDIoW3QsZV0sVTEoYSkpKX0sY2xlYXJUaW1lb3V0OmZ1bmN0aW9uKHQpe3ZhciBlPUM0LmRlbGVnYXRlO3JldHVybihlPy5jbGVhclRpbWVvdXR8fGNsZWFyVGltZW91dCkodCl9LGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBfZCh0KXtDNC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGU9dGkub25VbmhhbmRsZWRFcnJvcjtpZihlKWUodCk7ZWxzZSB0aHJvdyB0fSl9dmFyIFp3PWIoKCk9PntTNCgpO1l3KCl9KTtmdW5jdGlvbiBhaSgpe312YXIgQW89YigoKT0+e30pO2Z1bmN0aW9uIHFVKHQpe3JldHVybiBYdygiRSIsdm9pZCAwLHQpfWZ1bmN0aW9uIFZVKHQpe3JldHVybiBYdygiTiIsdCx2b2lkIDApfWZ1bmN0aW9uIFh3KHQsZSxhKXtyZXR1cm57a2luZDp0LHZhbHVlOmUsZXJyb3I6YX19dmFyIEhVLGpVPWIoKCk9PntIVT0oZnVuY3Rpb24oKXtyZXR1cm4gWHcoIkMiLHZvaWQgMCx2b2lkIDApfSkoKX0pO2Z1bmN0aW9uIF80KHQpe2lmKHRpLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpe3ZhciBlPSFEbztpZihlJiYoRG89e2Vycm9yVGhyb3duOiExLGVycm9yOm51bGx9KSx0KCksZSl7dmFyIGE9RG8saT1hLmVycm9yVGhyb3duLHI9YS5lcnJvcjtpZihEbz1udWxsLGkpdGhyb3cgcn19ZWxzZSB0KCl9ZnVuY3Rpb24gVVUodCl7dGkudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmRG8mJihEby5lcnJvclRocm93bj0hMCxEby5lcnJvcj10KX12YXIgRG8sVGQ9YigoKT0+e1M0KCk7RG89bnVsbH0pO2Z1bmN0aW9uIEt3KHQsZSl7cmV0dXJuIHB6dC5jYWxsKHQsZSl9ZnVuY3Rpb24gTGQodCl7dGkudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZz9VVSh0KTpfZCh0KX1mdW5jdGlvbiB1enQodCl7dGhyb3cgdH1mdW5jdGlvbiBRdyh0LGUpe3ZhciBhPXRpLm9uU3RvcHBlZE5vdGlmaWNhdGlvbjthJiZDNC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIGEodCxlKX0pfXZhciBFbyxwenQsaHp0LGhjLGZ6dCwkZD1iKCgpPT57YTEoKTtkMigpO2RyKCk7UzQoKTtadygpO0FvKCk7alUoKTtZdygpO1RkKCk7RW89KGZ1bmN0aW9uKHQpe1N0KGUsdCk7ZnVuY3Rpb24gZShhKXt2YXIgaT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuaXNTdG9wcGVkPSExLGE/KGkuZGVzdGluYXRpb249YSxDZChhKSYmYS5hZGQoaSkpOmkuZGVzdGluYXRpb249Znp0LGl9cmV0dXJuIGUuY3JlYXRlPWZ1bmN0aW9uKGEsaSxyKXtyZXR1cm4gbmV3IGhjKGEsaSxyKX0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihhKXt0aGlzLmlzU3RvcHBlZD9RdyhWVShhKSx0aGlzKTp0aGlzLl9uZXh0KGEpfSxlLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihhKXt0aGlzLmlzU3RvcHBlZD9RdyhxVShhKSx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fZXJyb3IoYSkpfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3RoaXMuaXNTdG9wcGVkP1F3KEhVLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmNsb3NlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLHQucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksdGhpcy5kZXN0aW5hdGlvbj1udWxsKX0sZS5wcm90b3R5cGUuX25leHQ9ZnVuY3Rpb24oYSl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KGEpfSxlLnByb3RvdHlwZS5fZXJyb3I9ZnVuY3Rpb24oYSl7dHJ5e3RoaXMuZGVzdGluYXRpb24uZXJyb3IoYSl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSxlLnByb3RvdHlwZS5fY29tcGxldGU9ZnVuY3Rpb24oKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sZX0pKEYxKSxwenQ9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQ7aHp0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9ZX1yZXR1cm4gdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihlKXt2YXIgYT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihhLm5leHQpdHJ5e2EubmV4dChlKX1jYXRjaChpKXtMZChpKX19LHQucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGUpe3ZhciBhPXRoaXMucGFydGlhbE9ic2VydmVyO2lmKGEuZXJyb3IpdHJ5e2EuZXJyb3IoZSl9Y2F0Y2goaSl7TGQoaSl9ZWxzZSBMZChlKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihlLmNvbXBsZXRlKXRyeXtlLmNvbXBsZXRlKCl9Y2F0Y2goYSl7TGQoYSl9fSx0fSkoKSxoYz0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSxyKXt2YXIgcz10LmNhbGwodGhpcyl8fHRoaXMsbjtpZihodChhKXx8IWEpbj17bmV4dDphPz92b2lkIDAsZXJyb3I6aT8/dm9pZCAwLGNvbXBsZXRlOnI/P3ZvaWQgMH07ZWxzZXt2YXIgbztzJiZ0aS51c2VEZXByZWNhdGVkTmV4dENvbnRleHQ/KG89T2JqZWN0LmNyZWF0ZShhKSxvLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7cmV0dXJuIHMudW5zdWJzY3JpYmUoKX0sbj17bmV4dDphLm5leHQmJkt3KGEubmV4dCxvKSxlcnJvcjphLmVycm9yJiZLdyhhLmVycm9yLG8pLGNvbXBsZXRlOmEuY29tcGxldGUmJkt3KGEuY29tcGxldGUsbyl9KTpuPWF9cmV0dXJuIHMuZGVzdGluYXRpb249bmV3IGh6dChuKSxzfXJldHVybiBlfSkoRW8pO2Z6dD17Y2xvc2VkOiEwLG5leHQ6YWksZXJyb3I6dXp0LGNvbXBsZXRlOmFpfX0pO3ZhciBQbyx1Yz1iKCgpPT57UG89KGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIn0pKCl9KTtmdW5jdGlvbiBmYyh0KXtyZXR1cm4gdH12YXIgQWQ9YigoKT0+e30pO2Z1bmN0aW9uIG16dCgpe2Zvcih2YXIgdD1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0W2VdPWFyZ3VtZW50c1tlXTtyZXR1cm4gSncodCl9ZnVuY3Rpb24gSncodCl7cmV0dXJuIHQubGVuZ3RoPT09MD9mYzp0Lmxlbmd0aD09PTE/dFswXTpmdW5jdGlvbihhKXtyZXR1cm4gdC5yZWR1Y2UoZnVuY3Rpb24oaSxyKXtyZXR1cm4gcihpKX0sYSl9fXZhciBlTT1iKCgpPT57QWQoKX0pO2Z1bmN0aW9uIFdVKHQpe3ZhciBlO3JldHVybihlPXQ/P3RpLlByb21pc2UpIT09bnVsbCYmZSE9PXZvaWQgMD9lOlByb21pc2V9ZnVuY3Rpb24gZ3p0KHQpe3JldHVybiB0JiZodCh0Lm5leHQpJiZodCh0LmVycm9yKSYmaHQodC5jb21wbGV0ZSl9ZnVuY3Rpb24gYnp0KHQpe3JldHVybiB0JiZ0IGluc3RhbmNlb2YgRW98fGd6dCh0KSYmQ2QodCl9dmFyIHd0LHphPWIoKCk9PnskZCgpO2RyKCk7dWMoKTtlTSgpO1M0KCk7ZDIoKTtUZCgpO3d0PShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7ZSYmKHRoaXMuX3N1YnNjcmliZT1lKX1yZXR1cm4gdC5wcm90b3R5cGUubGlmdD1mdW5jdGlvbihlKXt2YXIgYT1uZXcgdDtyZXR1cm4gYS5zb3VyY2U9dGhpcyxhLm9wZXJhdG9yPWUsYX0sdC5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUsYSxpKXt2YXIgcj10aGlzLHM9Ynp0KGUpP2U6bmV3IGhjKGUsYSxpKTtyZXR1cm4gXzQoZnVuY3Rpb24oKXt2YXIgbj1yLG89bi5vcGVyYXRvcixkPW4uc291cmNlO3MuYWRkKG8/by5jYWxsKHMsZCk6ZD9yLl9zdWJzY3JpYmUocyk6ci5fdHJ5U3Vic2NyaWJlKHMpKX0pLHN9LHQucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUoZSl9Y2F0Y2goYSl7ZS5lcnJvcihhKX19LHQucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSxhKXt2YXIgaT10aGlzO3JldHVybiBhPVdVKGEpLG5ldyBhKGZ1bmN0aW9uKHIscyl7dmFyIG49bmV3IGhjKHtuZXh0OmZ1bmN0aW9uKG8pe3RyeXtlKG8pfWNhdGNoKGQpe3MoZCksbi51bnN1YnNjcmliZSgpfX0sZXJyb3I6cyxjb21wbGV0ZTpyfSk7aS5zdWJzY3JpYmUobil9KX0sdC5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihlKXt2YXIgYTtyZXR1cm4oYT10aGlzLnNvdXJjZSk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLnN1YnNjcmliZShlKX0sdC5wcm90b3R5cGVbUG9dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspZVthXT1hcmd1bWVudHNbYV07cmV0dXJuIEp3KGUpKHRoaXMpfSx0LnByb3RvdHlwZS50b1Byb21pc2U9ZnVuY3Rpb24oZSl7dmFyIGE9dGhpcztyZXR1cm4gZT1XVShlKSxuZXcgZShmdW5jdGlvbihpLHIpe3ZhciBzO2Euc3Vic2NyaWJlKGZ1bmN0aW9uKG4pe3JldHVybiBzPW59LGZ1bmN0aW9uKG4pe3JldHVybiByKG4pfSxmdW5jdGlvbigpe3JldHVybiBpKHMpfSl9KX0sdC5jcmVhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUpfSx0fSkoKX0pO2Z1bmN0aW9uIHRNKHQpe3JldHVybiBodCh0Py5saWZ0KX1mdW5jdGlvbiBYdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYodE0oZSkpcmV0dXJuIGUubGlmdChmdW5jdGlvbihhKXt0cnl7cmV0dXJuIHQoYSx0aGlzKX1jYXRjaChpKXt0aGlzLmVycm9yKGkpfX0pO3Rocm93IG5ldyBUeXBlRXJyb3IoIlVuYWJsZSB0byBsaWZ0IHVua25vd24gT2JzZXJ2YWJsZSB0eXBlIil9fXZhciB3Mj1iKCgpPT57ZDIoKX0pO2Z1bmN0aW9uIFZ0KHQsZSxhLGkscil7cmV0dXJuIG5ldyBHVSh0LGUsYSxpLHIpfXZhciBHVSxyYT1iKCgpPT57YTEoKTskZCgpO0dVPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSxpLHIscyxuLG8pe3ZhciBkPXQuY2FsbCh0aGlzLGEpfHx0aGlzO3JldHVybiBkLm9uRmluYWxpemU9bixkLnNob3VsZFVuc3Vic2NyaWJlPW8sZC5fbmV4dD1pP2Z1bmN0aW9uKGMpe3RyeXtpKGMpfWNhdGNoKHApe2EuZXJyb3IocCl9fTp0LnByb3RvdHlwZS5fbmV4dCxkLl9lcnJvcj1zP2Z1bmN0aW9uKGMpe3RyeXtzKGMpfWNhdGNoKHApe2EuZXJyb3IocCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTp0LnByb3RvdHlwZS5fZXJyb3IsZC5fY29tcGxldGU9cj9mdW5jdGlvbigpe3RyeXtyKCl9Y2F0Y2goYyl7YS5lcnJvcihjKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OnQucHJvdG90eXBlLl9jb21wbGV0ZSxkfXJldHVybiBlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciBhO2lmKCF0aGlzLnNob3VsZFVuc3Vic2NyaWJlfHx0aGlzLnNob3VsZFVuc3Vic2NyaWJlKCkpe3ZhciBpPXRoaXMuY2xvc2VkO3QucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksIWkmJigoYT10aGlzLm9uRmluYWxpemUpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKHRoaXMpKX19LGV9KShFbyl9KTtmdW5jdGlvbiBEZCgpe3JldHVybiBYdChmdW5jdGlvbih0LGUpe3ZhciBhPW51bGw7dC5fcmVmQ291bnQrKzt2YXIgaT1WdChlLHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7aWYoIXR8fHQuX3JlZkNvdW50PD0wfHwwPC0tdC5fcmVmQ291bnQpe2E9bnVsbDtyZXR1cm59dmFyIHI9dC5fY29ubmVjdGlvbixzPWE7YT1udWxsLHImJighc3x8cj09PXMpJiZyLnVuc3Vic2NyaWJlKCksZS51bnN1YnNjcmliZSgpfSk7dC5zdWJzY3JpYmUoaSksaS5jbG9zZWR8fChhPXQuY29ubmVjdCgpKX0pfXZhciBFZD1iKCgpPT57dzIoKTtyYSgpfSk7dmFyIFlVLFpVPWIoKCk9PnthMSgpO3phKCk7ZHIoKTtFZCgpO3JhKCk7dzIoKTtZVT0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSl7dmFyIHI9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLnNvdXJjZT1hLHIuc3ViamVjdEZhY3Rvcnk9aSxyLl9zdWJqZWN0PW51bGwsci5fcmVmQ291bnQ9MCxyLl9jb25uZWN0aW9uPW51bGwsdE0oYSkmJihyLmxpZnQ9YS5saWZ0KSxyfXJldHVybiBlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmdldFN1YmplY3QoKS5zdWJzY3JpYmUoYSl9LGUucHJvdG90eXBlLmdldFN1YmplY3Q9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9zdWJqZWN0O3JldHVybighYXx8YS5pc1N0b3BwZWQpJiYodGhpcy5fc3ViamVjdD10aGlzLnN1YmplY3RGYWN0b3J5KCkpLHRoaXMuX3N1YmplY3R9LGUucHJvdG90eXBlLl90ZWFyZG93bj1mdW5jdGlvbigpe3RoaXMuX3JlZkNvdW50PTA7dmFyIGE9dGhpcy5fY29ubmVjdGlvbjt0aGlzLl9zdWJqZWN0PXRoaXMuX2Nvbm5lY3Rpb249bnVsbCxhPy51bnN1YnNjcmliZSgpfSxlLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxpPXRoaXMuX2Nvbm5lY3Rpb247aWYoIWkpe2k9dGhpcy5fY29ubmVjdGlvbj1uZXcgRjE7dmFyIHI9dGhpcy5nZXRTdWJqZWN0KCk7aS5hZGQodGhpcy5zb3VyY2Uuc3Vic2NyaWJlKFZ0KHIsdm9pZCAwLGZ1bmN0aW9uKCl7YS5fdGVhcmRvd24oKSxyLmNvbXBsZXRlKCl9LGZ1bmN0aW9uKHMpe2EuX3RlYXJkb3duKCksci5lcnJvcihzKX0sZnVuY3Rpb24oKXtyZXR1cm4gYS5fdGVhcmRvd24oKX0pKSksaS5jbG9zZWQmJih0aGlzLl9jb25uZWN0aW9uPW51bGwsaT1GMS5FTVBUWSl9cmV0dXJuIGl9LGUucHJvdG90eXBlLnJlZkNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIERkKCkodGhpcyl9LGV9KSh3dCl9KTt2YXIgYU0sWFU9YigoKT0+e2FNPXtub3c6ZnVuY3Rpb24oKXtyZXR1cm4oYU0uZGVsZWdhdGV8fHBlcmZvcm1hbmNlKS5ub3coKX0sZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciB0cyxpTT1iKCgpPT57YTEoKTtkcigpO3RzPXtzY2hlZHVsZTpmdW5jdGlvbih0KXt2YXIgZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUsYT1jYW5jZWxBbmltYXRpb25GcmFtZSxpPXRzLmRlbGVnYXRlO2kmJihlPWkucmVxdWVzdEFuaW1hdGlvbkZyYW1lLGE9aS5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIHI9ZShmdW5jdGlvbihzKXthPXZvaWQgMCx0KHMpfSk7cmV0dXJuIG5ldyBGMShmdW5jdGlvbigpe3JldHVybiBhPy4ocil9KX0scmVxdWVzdEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBhPXRzLmRlbGVnYXRlO3JldHVybihhPy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHJlcXVlc3RBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLHgyKFtdLFUxKHQpKSl9LGNhbmNlbEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBhPXRzLmRlbGVnYXRlO3JldHVybihhPy5jYW5jZWxBbmltYXRpb25GcmFtZXx8Y2FuY2VsQW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCx4MihbXSxVMSh0KSkpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7ZnVuY3Rpb24gdnp0KHQpe3JldHVybiB0P0tVKHQpOnl6dH1mdW5jdGlvbiBLVSh0KXtyZXR1cm4gbmV3IHd0KGZ1bmN0aW9uKGUpe3ZhciBhPXR8fGFNLGk9YS5ub3coKSxyPTAscz1mdW5jdGlvbigpe2UuY2xvc2VkfHwocj10cy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24obil7cj0wO3ZhciBvPWEubm93KCk7ZS5uZXh0KHt0aW1lc3RhbXA6dD9vOm4sZWxhcHNlZDpvLWl9KSxzKCl9KSl9O3JldHVybiBzKCksZnVuY3Rpb24oKXtyJiZ0cy5jYW5jZWxBbmltYXRpb25GcmFtZShyKX19KX12YXIgeXp0LFFVPWIoKCk9Pnt6YSgpO1hVKCk7aU0oKTt5enQ9S1UoKX0pO3ZhciByTSxzTT1iKCgpPT57bm4oKTtyTT1NYShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0KHRoaXMpLHRoaXMubmFtZT0iT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IiLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCJ9fSl9KTt2YXIga2Esbk0sbWM9YigoKT0+e2ExKCk7emEoKTtkcigpO3NNKCk7azQoKTtUZCgpO2thPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoKXt2YXIgYT10LmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuY2xvc2VkPSExLGEuY3VycmVudE9ic2VydmVycz1udWxsLGEub2JzZXJ2ZXJzPVtdLGEuaXNTdG9wcGVkPSExLGEuaGFzRXJyb3I9ITEsYS50aHJvd25FcnJvcj1udWxsLGF9cmV0dXJuIGUucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24oYSl7dmFyIGk9bmV3IG5NKHRoaXMsdGhpcyk7cmV0dXJuIGkub3BlcmF0b3I9YSxpfSxlLnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyByTX0sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihhKXt2YXIgaT10aGlzO180KGZ1bmN0aW9uKCl7dmFyIHIscztpZihpLl90aHJvd0lmQ2xvc2VkKCksIWkuaXNTdG9wcGVkKXtpLmN1cnJlbnRPYnNlcnZlcnN8fChpLmN1cnJlbnRPYnNlcnZlcnM9QXJyYXkuZnJvbShpLm9ic2VydmVycykpO3RyeXtmb3IodmFyIG49TjIoaS5jdXJyZW50T2JzZXJ2ZXJzKSxvPW4ubmV4dCgpOyFvLmRvbmU7bz1uLm5leHQoKSl7dmFyIGQ9by52YWx1ZTtkLm5leHQoYSl9fWNhdGNoKGMpe3I9e2Vycm9yOmN9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihzPW4ucmV0dXJuKSYmcy5jYWxsKG4pfWZpbmFsbHl7aWYocil0aHJvdyByLmVycm9yfX19fSl9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGEpe3ZhciBpPXRoaXM7XzQoZnVuY3Rpb24oKXtpZihpLl90aHJvd0lmQ2xvc2VkKCksIWkuaXNTdG9wcGVkKXtpLmhhc0Vycm9yPWkuaXNTdG9wcGVkPSEwLGkudGhyb3duRXJyb3I9YTtmb3IodmFyIHI9aS5vYnNlcnZlcnM7ci5sZW5ndGg7KXIuc2hpZnQoKS5lcnJvcihhKX19KX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO180KGZ1bmN0aW9uKCl7aWYoYS5fdGhyb3dJZkNsb3NlZCgpLCFhLmlzU3RvcHBlZCl7YS5pc1N0b3BwZWQ9ITA7Zm9yKHZhciBpPWEub2JzZXJ2ZXJzO2kubGVuZ3RoOylpLnNoaWZ0KCkuY29tcGxldGUoKX19KX0sZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZD10aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz10aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJvYnNlcnZlZCIse2dldDpmdW5jdGlvbigpe3ZhciBhO3JldHVybigoYT10aGlzLm9ic2VydmVycyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmxlbmd0aCk+MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZS5jYWxsKHRoaXMsYSl9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKGEpLHRoaXMuX2lubmVyU3Vic2NyaWJlKGEpfSxlLnByb3RvdHlwZS5faW5uZXJTdWJzY3JpYmU9ZnVuY3Rpb24oYSl7dmFyIGk9dGhpcyxyPXRoaXMscz1yLmhhc0Vycm9yLG49ci5pc1N0b3BwZWQsbz1yLm9ic2VydmVycztyZXR1cm4gc3x8bj9HdzoodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsby5wdXNoKGEpLG5ldyBGMShmdW5jdGlvbigpe2kuY3VycmVudE9ic2VydmVycz1udWxsLFRpKG8sYSl9KSl9LGUucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKGEpe3ZhciBpPXRoaXMscj1pLmhhc0Vycm9yLHM9aS50aHJvd25FcnJvcixuPWkuaXNTdG9wcGVkO3I/YS5lcnJvcihzKTpuJiZhLmNvbXBsZXRlKCl9LGUucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciBhPW5ldyB3dDtyZXR1cm4gYS5zb3VyY2U9dGhpcyxhfSxlLmNyZWF0ZT1mdW5jdGlvbihhLGkpe3JldHVybiBuZXcgbk0oYSxpKX0sZX0pKHd0KSxuTT0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSl7dmFyIHI9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLmRlc3RpbmF0aW9uPWEsci5zb3VyY2U9aSxyfXJldHVybiBlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKGEpe3ZhciBpLHI7KHI9KGk9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm5leHQpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKGksYSl9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKGEpe3ZhciBpLHI7KHI9KGk9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmVycm9yKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbChpLGEpfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBhLGk7KGk9KGE9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmNvbXBsZXRlKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChhKX0sZS5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihhKXt2YXIgaSxyO3JldHVybihyPShpPXRoaXMuc291cmNlKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuc3Vic2NyaWJlKGEpKSE9PW51bGwmJnIhPT12b2lkIDA/cjpHd30sZX0pKGthKX0pO3ZhciBKVSxlVz1iKCgpPT57YTEoKTttYygpO0pVPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSl7dmFyIGk9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLl92YWx1ZT1hLGl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oYSl7dmFyIGk9dC5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMsYSk7cmV0dXJuIWkuY2xvc2VkJiZhLm5leHQodGhpcy5fdmFsdWUpLGl9LGUucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxpPWEuaGFzRXJyb3Iscj1hLnRocm93bkVycm9yLHM9YS5fdmFsdWU7aWYoaSl0aHJvdyByO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksc30sZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihhKXt0LnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0aGlzLl92YWx1ZT1hKX0sZX0pKGthKX0pO3ZhciBnYyxvTT1iKCgpPT57Z2M9e25vdzpmdW5jdGlvbigpe3JldHVybihnYy5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgUGQsdFc9YigoKT0+e2ExKCk7bWMoKTtvTSgpO1BkPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSxpLHIpe2E9PT12b2lkIDAmJihhPTEvMCksaT09PXZvaWQgMCYmKGk9MS8wKSxyPT09dm9pZCAwJiYocj1nYyk7dmFyIHM9dC5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBzLl9idWZmZXJTaXplPWEscy5fd2luZG93VGltZT1pLHMuX3RpbWVzdGFtcFByb3ZpZGVyPXIscy5fYnVmZmVyPVtdLHMuX2luZmluaXRlVGltZVdpbmRvdz0hMCxzLl9pbmZpbml0ZVRpbWVXaW5kb3c9aT09PTEvMCxzLl9idWZmZXJTaXplPU1hdGgubWF4KDEsYSkscy5fd2luZG93VGltZT1NYXRoLm1heCgxLGkpLHN9cmV0dXJuIGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oYSl7dmFyIGk9dGhpcyxyPWkuaXNTdG9wcGVkLHM9aS5fYnVmZmVyLG49aS5faW5maW5pdGVUaW1lV2luZG93LG89aS5fdGltZXN0YW1wUHJvdmlkZXIsZD1pLl93aW5kb3dUaW1lO3J8fChzLnB1c2goYSksIW4mJnMucHVzaChvLm5vdygpK2QpKSx0aGlzLl90cmltQnVmZmVyKCksdC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsYSl9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24oYSl7dGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX3RyaW1CdWZmZXIoKTtmb3IodmFyIGk9dGhpcy5faW5uZXJTdWJzY3JpYmUoYSkscj10aGlzLHM9ci5faW5maW5pdGVUaW1lV2luZG93LG49ci5fYnVmZmVyLG89bi5zbGljZSgpLGQ9MDtkPG8ubGVuZ3RoJiYhYS5jbG9zZWQ7ZCs9cz8xOjIpYS5uZXh0KG9bZF0pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKGEpLGl9LGUucHJvdG90eXBlLl90cmltQnVmZmVyPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxpPWEuX2J1ZmZlclNpemUscj1hLl90aW1lc3RhbXBQcm92aWRlcixzPWEuX2J1ZmZlcixuPWEuX2luZmluaXRlVGltZVdpbmRvdyxvPShuPzE6MikqaTtpZihpPDEvMCYmbzxzLmxlbmd0aCYmcy5zcGxpY2UoMCxzLmxlbmd0aC1vKSwhbil7Zm9yKHZhciBkPXIubm93KCksYz0wLHA9MTtwPHMubGVuZ3RoJiZzW3BdPD1kO3ArPTIpYz1wO2MmJnMuc3BsaWNlKDAsYysxKX19LGV9KShrYSl9KTt2YXIgYVcsaVc9YigoKT0+e2ExKCk7bWMoKTthVz0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKCl7dmFyIGE9dCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBhLl92YWx1ZT1udWxsLGEuX2hhc1ZhbHVlPSExLGEuX2lzQ29tcGxldGU9ITEsYX1yZXR1cm4gZS5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXM9ZnVuY3Rpb24oYSl7dmFyIGk9dGhpcyxyPWkuaGFzRXJyb3Iscz1pLl9oYXNWYWx1ZSxuPWkuX3ZhbHVlLG89aS50aHJvd25FcnJvcixkPWkuaXNTdG9wcGVkLGM9aS5faXNDb21wbGV0ZTtyP2EuZXJyb3Iobyk6KGR8fGMpJiYocyYmYS5uZXh0KG4pLGEuY29tcGxldGUoKSl9LGUucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oYSl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLl92YWx1ZT1hLHRoaXMuX2hhc1ZhbHVlPSEwKX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGk9YS5faGFzVmFsdWUscj1hLl92YWx1ZSxzPWEuX2lzQ29tcGxldGU7c3x8KHRoaXMuX2lzQ29tcGxldGU9ITAsaSYmdC5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsciksdC5wcm90b3R5cGUuY29tcGxldGUuY2FsbCh0aGlzKSl9LGV9KShrYSl9KTt2YXIgbE0sclc9YigoKT0+e2ExKCk7ZHIoKTtsTT0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSl7cmV0dXJuIHQuY2FsbCh0aGlzKXx8dGhpc31yZXR1cm4gZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24oYSxpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9MCksdGhpc30sZX0pKEYxKX0pO3ZhciBiYyxzVz1iKCgpPT57YTEoKTtiYz17c2V0SW50ZXJ2YWw6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGE9W10saT0yO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspYVtpLTJdPWFyZ3VtZW50c1tpXTt2YXIgcj1iYy5kZWxlZ2F0ZTtyZXR1cm4gcj8uc2V0SW50ZXJ2YWw/ci5zZXRJbnRlcnZhbC5hcHBseShyLHgyKFt0LGVdLFUxKGEpKSk6c2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLHgyKFt0LGVdLFUxKGEpKSl9LGNsZWFySW50ZXJ2YWw6ZnVuY3Rpb24odCl7dmFyIGU9YmMuZGVsZWdhdGU7cmV0dXJuKGU/LmNsZWFySW50ZXJ2YWx8fGNsZWFySW50ZXJ2YWwpKHQpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIExpLFQ0PWIoKCk9PnthMSgpO3JXKCk7c1coKTtrNCgpO0xpPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSxpKXt2YXIgcj10LmNhbGwodGhpcyxhLGkpfHx0aGlzO3JldHVybiByLnNjaGVkdWxlcj1hLHIud29yaz1pLHIucGVuZGluZz0hMSxyfXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihhLGkpe3ZhciByO2lmKGk9PT12b2lkIDAmJihpPTApLHRoaXMuY2xvc2VkKXJldHVybiB0aGlzO3RoaXMuc3RhdGU9YTt2YXIgcz10aGlzLmlkLG49dGhpcy5zY2hlZHVsZXI7cmV0dXJuIHMhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQobixzLGkpKSx0aGlzLnBlbmRpbmc9ITAsdGhpcy5kZWxheT1pLHRoaXMuaWQ9KHI9dGhpcy5pZCkhPT1udWxsJiZyIT09dm9pZCAwP3I6dGhpcy5yZXF1ZXN0QXN5bmNJZChuLHRoaXMuaWQsaSksdGhpc30sZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe3JldHVybiByPT09dm9pZCAwJiYocj0wKSxiYy5zZXRJbnRlcnZhbChhLmZsdXNoLmJpbmQoYSx0aGlzKSxyKX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe2lmKHI9PT12b2lkIDAmJihyPTApLHIhPW51bGwmJnRoaXMuZGVsYXk9PT1yJiZ0aGlzLnBlbmRpbmc9PT0hMSlyZXR1cm4gaTtpIT1udWxsJiZiYy5jbGVhckludGVydmFsKGkpfSxlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKGEsaSl7aWYodGhpcy5jbG9zZWQpcmV0dXJuIG5ldyBFcnJvcigiZXhlY3V0aW5nIGEgY2FuY2VsbGVkIGFjdGlvbiIpO3RoaXMucGVuZGluZz0hMTt2YXIgcj10aGlzLl9leGVjdXRlKGEsaSk7aWYocilyZXR1cm4gcjt0aGlzLnBlbmRpbmc9PT0hMSYmdGhpcy5pZCE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZCh0aGlzLnNjaGVkdWxlcix0aGlzLmlkLG51bGwpKX0sZS5wcm90b3R5cGUuX2V4ZWN1dGU9ZnVuY3Rpb24oYSxpKXt2YXIgcj0hMSxzO3RyeXt0aGlzLndvcmsoYSl9Y2F0Y2gobil7cj0hMCxzPW58fG5ldyBFcnJvcigiU2NoZWR1bGVkIGFjdGlvbiB0aHJldyBmYWxzeSBlcnJvciIpfWlmKHIpcmV0dXJuIHRoaXMudW5zdWJzY3JpYmUoKSxzfSxlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe2lmKCF0aGlzLmNsb3NlZCl7dmFyIGE9dGhpcyxpPWEuaWQscj1hLnNjaGVkdWxlcixzPXIuYWN0aW9uczt0aGlzLndvcms9dGhpcy5zdGF0ZT10aGlzLnNjaGVkdWxlcj1udWxsLHRoaXMucGVuZGluZz0hMSxUaShzLHRoaXMpLGkhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQocixpLG51bGwpKSx0aGlzLmRlbGF5PW51bGwsdC5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKX19LGV9KShsTSl9KTtmdW5jdGlvbiBuVyh0KXtyZXR1cm4gdCBpbiBJZD8oZGVsZXRlIElkW3RdLCEwKTohMX12YXIgeHp0LGNNLElkLGRNLHBZdCxvVz1iKCgpPT57eHp0PTEsSWQ9e307ZE09e3NldEltbWVkaWF0ZTpmdW5jdGlvbih0KXt2YXIgZT14enQrKztyZXR1cm4gSWRbZV09ITAsY018fChjTT1Qcm9taXNlLnJlc29sdmUoKSksY00udGhlbihmdW5jdGlvbigpe3JldHVybiBuVyhlKSYmdCgpfSksZX0sY2xlYXJJbW1lZGlhdGU6ZnVuY3Rpb24odCl7blcodCl9fSxwWXQ9e3BlbmRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoSWQpLmxlbmd0aH19fSk7dmFyIHd6dCxNenQsdmMsbFc9YigoKT0+e2ExKCk7b1coKTt3enQ9ZE0uc2V0SW1tZWRpYXRlLE16dD1kTS5jbGVhckltbWVkaWF0ZSx2Yz17c2V0SW1tZWRpYXRlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBhPXZjLmRlbGVnYXRlO3JldHVybihhPy5zZXRJbW1lZGlhdGV8fHd6dCkuYXBwbHkodm9pZCAwLHgyKFtdLFUxKHQpKSl9LGNsZWFySW1tZWRpYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXZjLmRlbGVnYXRlO3JldHVybihlPy5jbGVhckltbWVkaWF0ZXx8TXp0KSh0KX0sZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBwTSxjVz1iKCgpPT57YTEoKTtUNCgpO2xXKCk7cE09KGZ1bmN0aW9uKHQpe1N0KGUsdCk7ZnVuY3Rpb24gZShhLGkpe3ZhciByPXQuY2FsbCh0aGlzLGEsaSl8fHRoaXM7cmV0dXJuIHIuc2NoZWR1bGVyPWEsci53b3JrPWkscn1yZXR1cm4gZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe3JldHVybiByPT09dm9pZCAwJiYocj0wKSxyIT09bnVsbCYmcj4wP3QucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxhLGkscik6KGEuYWN0aW9ucy5wdXNoKHRoaXMpLGEuX3NjaGVkdWxlZHx8KGEuX3NjaGVkdWxlZD12Yy5zZXRJbW1lZGlhdGUoYS5mbHVzaC5iaW5kKGEsdm9pZCAwKSkpKX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe3ZhciBzO2lmKHI9PT12b2lkIDAmJihyPTApLHIhPW51bGw/cj4wOnRoaXMuZGVsYXk+MClyZXR1cm4gdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLGEsaSxyKTt2YXIgbj1hLmFjdGlvbnM7aSE9bnVsbCYmKChzPW5bbi5sZW5ndGgtMV0pPT09bnVsbHx8cz09PXZvaWQgMD92b2lkIDA6cy5pZCkhPT1pJiYodmMuY2xlYXJJbW1lZGlhdGUoaSksYS5fc2NoZWR1bGVkPT09aSYmKGEuX3NjaGVkdWxlZD12b2lkIDApKX0sZX0pKExpKX0pO3ZhciB5YyxoTT1iKCgpPT57b00oKTt5Yz0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsYSl7YT09PXZvaWQgMCYmKGE9dC5ub3cpLHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcj1lLHRoaXMubm93PWF9cmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKGUsYSxpKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MCksbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLGUpLnNjaGVkdWxlKGksYSl9LHQubm93PWdjLm5vdyx0fSkoKX0pO3ZhciAkaSxMND1iKCgpPT57YTEoKTtoTSgpOyRpPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSxpKXtpPT09dm9pZCAwJiYoaT15Yy5ub3cpO3ZhciByPXQuY2FsbCh0aGlzLGEsaSl8fHRoaXM7cmV0dXJuIHIuYWN0aW9ucz1bXSxyLl9hY3RpdmU9ITEscn1yZXR1cm4gZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oYSl7dmFyIGk9dGhpcy5hY3Rpb25zO2lmKHRoaXMuX2FjdGl2ZSl7aS5wdXNoKGEpO3JldHVybn12YXIgcjt0aGlzLl9hY3RpdmU9ITA7ZG8gaWYocj1hLmV4ZWN1dGUoYS5zdGF0ZSxhLmRlbGF5KSlicmVhazt3aGlsZShhPWkuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLHIpe2Zvcig7YT1pLnNoaWZ0KCk7KWEudW5zdWJzY3JpYmUoKTt0aHJvdyByfX0sZX0pKHljKX0pO3ZhciB1TSxkVz1iKCgpPT57YTEoKTtMNCgpO3VNPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gdCE9PW51bGwmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiBlLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbihhKXt0aGlzLl9hY3RpdmU9ITA7dmFyIGk9dGhpcy5fc2NoZWR1bGVkO3RoaXMuX3NjaGVkdWxlZD12b2lkIDA7dmFyIHI9dGhpcy5hY3Rpb25zLHM7YT1hfHxyLnNoaWZ0KCk7ZG8gaWYocz1hLmV4ZWN1dGUoYS5zdGF0ZSxhLmRlbGF5KSlicmVhazt3aGlsZSgoYT1yWzBdKSYmYS5pZD09PWkmJnIuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLHMpe2Zvcig7KGE9clswXSkmJmEuaWQ9PT1pJiZyLnNoaWZ0KCk7KWEudW5zdWJzY3JpYmUoKTt0aHJvdyBzfX0sZX0pKCRpKX0pO3ZhciBwVyx6enQsaFc9YigoKT0+e2NXKCk7ZFcoKTtwVz1uZXcgdU0ocE0pLHp6dD1wV30pO3ZhciBwcixmTSxJbz1iKCgpPT57VDQoKTtMNCgpO3ByPW5ldyAkaShMaSksZk09cHJ9KTt2YXIgbU0sdVc9YigoKT0+e2ExKCk7VDQoKTttTT0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSl7dmFyIHI9dC5jYWxsKHRoaXMsYSxpKXx8dGhpcztyZXR1cm4gci5zY2hlZHVsZXI9YSxyLndvcms9aSxyfXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihhLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSxpPjA/dC5wcm90b3R5cGUuc2NoZWR1bGUuY2FsbCh0aGlzLGEsaSk6KHRoaXMuZGVsYXk9aSx0aGlzLnN0YXRlPWEsdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyksdGhpcyl9LGUucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oYSxpKXtyZXR1cm4gaT4wfHx0aGlzLmNsb3NlZD90LnByb3RvdHlwZS5leGVjdXRlLmNhbGwodGhpcyxhLGkpOnRoaXMuX2V4ZWN1dGUoYSxpKX0sZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe3JldHVybiByPT09dm9pZCAwJiYocj0wKSxyIT1udWxsJiZyPjB8fHI9PW51bGwmJnRoaXMuZGVsYXk+MD90LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsYSxpLHIpOihhLmZsdXNoKHRoaXMpLDApfSxlfSkoTGkpfSk7dmFyIGdNLGZXPWIoKCk9PnthMSgpO0w0KCk7Z009KGZ1bmN0aW9uKHQpe1N0KGUsdCk7ZnVuY3Rpb24gZSgpe3JldHVybiB0IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGV9KSgkaSl9KTt2YXIgbVcsa3p0LGdXPWIoKCk9Pnt1VygpO2ZXKCk7bVc9bmV3IGdNKG1NKSxrenQ9bVd9KTt2YXIgYk0sYlc9YigoKT0+e2ExKCk7VDQoKTtpTSgpO2JNPShmdW5jdGlvbih0KXtTdChlLHQpO2Z1bmN0aW9uIGUoYSxpKXt2YXIgcj10LmNhbGwodGhpcyxhLGkpfHx0aGlzO3JldHVybiByLnNjaGVkdWxlcj1hLHIud29yaz1pLHJ9cmV0dXJuIGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKGEsaSxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksciE9PW51bGwmJnI+MD90LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsYSxpLHIpOihhLmFjdGlvbnMucHVzaCh0aGlzKSxhLl9zY2hlZHVsZWR8fChhLl9zY2hlZHVsZWQ9dHMucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmV0dXJuIGEuZmx1c2godm9pZCAwKX0pKSl9LGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKGEsaSxyKXt2YXIgcztpZihyPT09dm9pZCAwJiYocj0wKSxyIT1udWxsP3I+MDp0aGlzLmRlbGF5PjApcmV0dXJuIHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxhLGkscik7dmFyIG49YS5hY3Rpb25zO2khPW51bGwmJmk9PT1hLl9zY2hlZHVsZWQmJigocz1uW24ubGVuZ3RoLTFdKT09PW51bGx8fHM9PT12b2lkIDA/dm9pZCAwOnMuaWQpIT09aSYmKHRzLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGkpLGEuX3NjaGVkdWxlZD12b2lkIDApfSxlfSkoTGkpfSk7dmFyIHZNLHZXPWIoKCk9PnthMSgpO0w0KCk7dk09KGZ1bmN0aW9uKHQpe1N0KGUsdCk7ZnVuY3Rpb24gZSgpe3JldHVybiB0IT09bnVsbCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIGUucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGEpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgaTthP2k9YS5pZDooaT10aGlzLl9zY2hlZHVsZWQsdGhpcy5fc2NoZWR1bGVkPXZvaWQgMCk7dmFyIHI9dGhpcy5hY3Rpb25zLHM7YT1hfHxyLnNoaWZ0KCk7ZG8gaWYocz1hLmV4ZWN1dGUoYS5zdGF0ZSxhLmRlbGF5KSlicmVhazt3aGlsZSgoYT1yWzBdKSYmYS5pZD09PWkmJnIuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLHMpe2Zvcig7KGE9clswXSkmJmEuaWQ9PT1pJiZyLnNoaWZ0KCk7KWEudW5zdWJzY3JpYmUoKTt0aHJvdyBzfX0sZX0pKCRpKX0pO3ZhciB5VyxTenQseFc9YigoKT0+e2JXKCk7dlcoKTt5Vz1uZXcgdk0oYk0pLFN6dD15V30pO3ZhciB3Vyx5TSxNVz1iKCgpPT57YTEoKTtUNCgpO2RyKCk7TDQoKTt3Vz0oZnVuY3Rpb24odCl7U3QoZSx0KTtmdW5jdGlvbiBlKGEsaSl7YT09PXZvaWQgMCYmKGE9eU0pLGk9PT12b2lkIDAmJihpPTEvMCk7dmFyIHI9dC5jYWxsKHRoaXMsYSxmdW5jdGlvbigpe3JldHVybiByLmZyYW1lfSl8fHRoaXM7cmV0dXJuIHIubWF4RnJhbWVzPWksci5mcmFtZT0wLHIuaW5kZXg9LTEscn1yZXR1cm4gZS5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcyxpPWEuYWN0aW9ucyxyPWEubWF4RnJhbWVzLHMsbjsobj1pWzBdKSYmbi5kZWxheTw9ciYmKGkuc2hpZnQoKSx0aGlzLmZyYW1lPW4uZGVsYXksIShzPW4uZXhlY3V0ZShuLnN0YXRlLG4uZGVsYXkpKSk7KTtpZihzKXtmb3IoO249aS5zaGlmdCgpOyluLnVuc3Vic2NyaWJlKCk7dGhyb3cgc319LGUuZnJhbWVUaW1lRmFjdG9yPTEwLGV9KSgkaSkseU09KGZ1bmN0aW9uKHQpe1N0KGUsdCk7ZnVuY3Rpb24gZShhLGkscil7cj09PXZvaWQgMCYmKHI9YS5pbmRleCs9MSk7dmFyIHM9dC5jYWxsKHRoaXMsYSxpKXx8dGhpcztyZXR1cm4gcy5zY2hlZHVsZXI9YSxzLndvcms9aSxzLmluZGV4PXIscy5hY3RpdmU9ITAscy5pbmRleD1hLmluZGV4PXIsc31yZXR1cm4gZS5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24oYSxpKXtpZihpPT09dm9pZCAwJiYoaT0wKSxOdW1iZXIuaXNGaW5pdGUoaSkpe2lmKCF0aGlzLmlkKXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsYSxpKTt0aGlzLmFjdGl2ZT0hMTt2YXIgcj1uZXcgZSh0aGlzLnNjaGVkdWxlcix0aGlzLndvcmspO3JldHVybiB0aGlzLmFkZChyKSxyLnNjaGVkdWxlKGEsaSl9ZWxzZSByZXR1cm4gRjEuRU1QVFl9LGUucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKGEsaSxyKXtyPT09dm9pZCAwJiYocj0wKSx0aGlzLmRlbGF5PWEuZnJhbWUrcjt2YXIgcz1hLmFjdGlvbnM7cmV0dXJuIHMucHVzaCh0aGlzKSxzLnNvcnQoZS5zb3J0QWN0aW9ucyksMX0sZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24oYSxpLHIpe3I9PT12b2lkIDAmJihyPTApfSxlLnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihhLGkpe2lmKHRoaXMuYWN0aXZlPT09ITApcmV0dXJuIHQucHJvdG90eXBlLl9leGVjdXRlLmNhbGwodGhpcyxhLGkpfSxlLnNvcnRBY3Rpb25zPWZ1bmN0aW9uKGEsaSl7cmV0dXJuIGEuZGVsYXk9PT1pLmRlbGF5P2EuaW5kZXg9PT1pLmluZGV4PzA6YS5pbmRleD5pLmluZGV4PzE6LTE6YS5kZWxheT5pLmRlbGF5PzE6LTF9LGV9KShMaSl9KTtmdW5jdGlvbiBDenQodCl7cmV0dXJuIHQ/X3p0KHQpOk5kfWZ1bmN0aW9uIF96dCh0KXtyZXR1cm4gbmV3IHd0KGZ1bmN0aW9uKGUpe3JldHVybiB0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIGUuY29tcGxldGUoKX0pfSl9dmFyIE5kLEZkPWIoKCk9Pnt6YSgpO05kPW5ldyB3dChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21wbGV0ZSgpfSl9KTtmdW5jdGlvbiBPZCh0KXtyZXR1cm4gdCYmaHQodC5zY2hlZHVsZSl9dmFyIHhNPWIoKCk9PntkMigpfSk7ZnVuY3Rpb24gd00odCl7cmV0dXJuIHRbdC5sZW5ndGgtMV19ZnVuY3Rpb24gZFp0KHQpe3JldHVybiBodCh3TSh0KSk/dC5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gb24odCl7cmV0dXJuIE9kKHdNKHQpKT90LnBvcCgpOnZvaWQgMH1mdW5jdGlvbiBwWnQodCxlKXtyZXR1cm4gdHlwZW9mIHdNKHQpPT0ibnVtYmVyIj90LnBvcCgpOmV9dmFyIHhjPWIoKCk9PntkMigpO3hNKCl9KTt2YXIgJDQsUmQ9YigoKT0+eyQ0PShmdW5jdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIiYmdHlwZW9mIHQhPSJmdW5jdGlvbiJ9KX0pO2Z1bmN0aW9uIEJkKHQpe3JldHVybiBodCh0Py50aGVuKX12YXIgTU09YigoKT0+e2QyKCl9KTtmdW5jdGlvbiBIZCh0KXtyZXR1cm4gaHQodFtQb10pfXZhciB6TT1iKCgpPT57dWMoKTtkMigpfSk7ZnVuY3Rpb24gcWQodCl7cmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yJiZodCh0Py5bU3ltYm9sLmFzeW5jSXRlcmF0b3JdKX12YXIga009YigoKT0+e2QyKCl9KTtmdW5jdGlvbiBWZCh0KXtyZXR1cm4gbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCI/ImFuIGludmFsaWQgb2JqZWN0IjoiJyIrdCsiJyIpKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgUmVhZGFibGVTdHJlYW0sIEFycmF5LCBBc3luY0l0ZXJhYmxlLCBvciBJdGVyYWJsZS4iKX12YXIgU009YigoKT0+e30pO2Z1bmN0aW9uIFR6dCgpe3JldHVybiB0eXBlb2YgU3ltYm9sIT0iZnVuY3Rpb24ifHwhU3ltYm9sLml0ZXJhdG9yPyJAQGl0ZXJhdG9yIjpTeW1ib2wuaXRlcmF0b3J9dmFyIGpkLENNPWIoKCk9PntqZD1UenQoKX0pO2Z1bmN0aW9uIFVkKHQpe3JldHVybiBodCh0Py5bamRdKX12YXIgX009YigoKT0+e0NNKCk7ZDIoKX0pO2Z1bmN0aW9uIFdkKHQpe3JldHVybiBqdyh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciBhLGkscixzO3JldHVybiBkYyh0aGlzLGZ1bmN0aW9uKG4pe3N3aXRjaChuLmxhYmVsKXtjYXNlIDA6YT10LmdldFJlYWRlcigpLG4ubGFiZWw9MTtjYXNlIDE6bi50cnlzLnB1c2goWzEsLDksMTBdKSxuLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LGVzKGEucmVhZCgpKV07Y2FzZSAzOnJldHVybiBpPW4uc2VudCgpLHI9aS52YWx1ZSxzPWkuZG9uZSxzP1s0LGVzKHZvaWQgMCldOlszLDVdO2Nhc2UgNDpyZXR1cm5bMixuLnNlbnQoKV07Y2FzZSA1OnJldHVybls0LGVzKHIpXTtjYXNlIDY6cmV0dXJuWzQsbi5zZW50KCldO2Nhc2UgNzpyZXR1cm4gbi5zZW50KCksWzMsMl07Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6cmV0dXJuIGEucmVsZWFzZUxvY2soKSxbN107Y2FzZSAxMDpyZXR1cm5bMl19fSl9KX1mdW5jdGlvbiBHZCh0KXtyZXR1cm4gaHQodD8uZ2V0UmVhZGVyKX12YXIgWWQ9YigoKT0+e2ExKCk7ZDIoKX0pO2Z1bmN0aW9uICQxKHQpe2lmKHQgaW5zdGFuY2VvZiB3dClyZXR1cm4gdDtpZih0IT1udWxsKXtpZihIZCh0KSlyZXR1cm4gTHp0KHQpO2lmKCQ0KHQpKXJldHVybiAkenQodCk7aWYoQmQodCkpcmV0dXJuIEF6dCh0KTtpZihxZCh0KSlyZXR1cm4gelcodCk7aWYoVWQodCkpcmV0dXJuIER6dCh0KTtpZihHZCh0KSlyZXR1cm4gRXp0KHQpfXRocm93IFZkKHQpfWZ1bmN0aW9uIEx6dCh0KXtyZXR1cm4gbmV3IHd0KGZ1bmN0aW9uKGUpe3ZhciBhPXRbUG9dKCk7aWYoaHQoYS5zdWJzY3JpYmUpKXJldHVybiBhLnN1YnNjcmliZShlKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm92aWRlZCBvYmplY3QgZG9lcyBub3QgY29ycmVjdGx5IGltcGxlbWVudCBTeW1ib2wub2JzZXJ2YWJsZSIpfSl9ZnVuY3Rpb24gJHp0KHQpe3JldHVybiBuZXcgd3QoZnVuY3Rpb24oZSl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aCYmIWUuY2xvc2VkO2ErKyllLm5leHQodFthXSk7ZS5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gQXp0KHQpe3JldHVybiBuZXcgd3QoZnVuY3Rpb24oZSl7dC50aGVuKGZ1bmN0aW9uKGEpe2UuY2xvc2VkfHwoZS5uZXh0KGEpLGUuY29tcGxldGUoKSl9LGZ1bmN0aW9uKGEpe3JldHVybiBlLmVycm9yKGEpfSkudGhlbihudWxsLF9kKX0pfWZ1bmN0aW9uIER6dCh0KXtyZXR1cm4gbmV3IHd0KGZ1bmN0aW9uKGUpe3ZhciBhLGk7dHJ5e2Zvcih2YXIgcj1OMih0KSxzPXIubmV4dCgpOyFzLmRvbmU7cz1yLm5leHQoKSl7dmFyIG49cy52YWx1ZTtpZihlLm5leHQobiksZS5jbG9zZWQpcmV0dXJufX1jYXRjaChvKXthPXtlcnJvcjpvfX1maW5hbGx5e3RyeXtzJiYhcy5kb25lJiYoaT1yLnJldHVybikmJmkuY2FsbChyKX1maW5hbGx5e2lmKGEpdGhyb3cgYS5lcnJvcn19ZS5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gelcodCl7cmV0dXJuIG5ldyB3dChmdW5jdGlvbihlKXtQenQodCxlKS5jYXRjaChmdW5jdGlvbihhKXtyZXR1cm4gZS5lcnJvcihhKX0pfSl9ZnVuY3Rpb24gRXp0KHQpe3JldHVybiB6VyhXZCh0KSl9ZnVuY3Rpb24gUHp0KHQsZSl7dmFyIGEsaSxyLHM7cmV0dXJuIFZ3KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBuLG87cmV0dXJuIGRjKHRoaXMsZnVuY3Rpb24oZCl7c3dpdGNoKGQubGFiZWwpe2Nhc2UgMDpkLnRyeXMucHVzaChbMCw1LDYsMTFdKSxhPVV3KHQpLGQubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsYS5uZXh0KCldO2Nhc2UgMjppZihpPWQuc2VudCgpLCEhaS5kb25lKXJldHVyblszLDRdO2lmKG49aS52YWx1ZSxlLm5leHQobiksZS5jbG9zZWQpcmV0dXJuWzJdO2QubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsMV07Y2FzZSA0OnJldHVyblszLDExXTtjYXNlIDU6cmV0dXJuIG89ZC5zZW50KCkscj17ZXJyb3I6b30sWzMsMTFdO2Nhc2UgNjpyZXR1cm4gZC50cnlzLnB1c2goWzYsLDksMTBdKSxpJiYhaS5kb25lJiYocz1hLnJldHVybik/WzQscy5jYWxsKGEpXTpbMyw4XTtjYXNlIDc6ZC5zZW50KCksZC5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OmlmKHIpdGhyb3cgci5lcnJvcjtyZXR1cm5bN107Y2FzZSAxMDpyZXR1cm5bN107Y2FzZSAxMTpyZXR1cm4gZS5jb21wbGV0ZSgpLFsyXX19KX0pfXZhciBpaT1iKCgpPT57YTEoKTtSZCgpO01NKCk7emEoKTt6TSgpO2tNKCk7U00oKTtfTSgpO1lkKCk7ZDIoKTtadygpO3VjKCl9KTtmdW5jdGlvbiBNMih0LGUsYSxpLHIpe2k9PT12b2lkIDAmJihpPTApLHI9PT12b2lkIDAmJihyPSExKTt2YXIgcz1lLnNjaGVkdWxlKGZ1bmN0aW9uKCl7YSgpLHI/dC5hZGQodGhpcy5zY2hlZHVsZShudWxsLGkpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LGkpO2lmKHQuYWRkKHMpLCFyKXJldHVybiBzfXZhciBObz1iKCgpPT57fSk7ZnVuY3Rpb24gQTQodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksWHQoZnVuY3Rpb24oYSxpKXthLnN1YnNjcmliZShWdChpLGZ1bmN0aW9uKHIpe3JldHVybiBNMihpLHQsZnVuY3Rpb24oKXtyZXR1cm4gaS5uZXh0KHIpfSxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gTTIoaSx0LGZ1bmN0aW9uKCl7cmV0dXJuIGkuY29tcGxldGUoKX0sZSl9LGZ1bmN0aW9uKHIpe3JldHVybiBNMihpLHQsZnVuY3Rpb24oKXtyZXR1cm4gaS5lcnJvcihyKX0sZSl9KSl9KX12YXIgd2M9YigoKT0+e05vKCk7dzIoKTtyYSgpfSk7ZnVuY3Rpb24gRDQodCxlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MCksWHQoZnVuY3Rpb24oYSxpKXtpLmFkZCh0LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIGEuc3Vic2NyaWJlKGkpfSxlKSl9KX12YXIgTWM9YigoKT0+e3cyKCl9KTtmdW5jdGlvbiBrVyh0LGUpe3JldHVybiAkMSh0KS5waXBlKEQ0KGUpLEE0KGUpKX12YXIgU1c9YigoKT0+e2lpKCk7d2MoKTtNYygpfSk7ZnVuY3Rpb24gQ1codCxlKXtyZXR1cm4gJDEodCkucGlwZShENChlKSxBNChlKSl9dmFyIF9XPWIoKCk9PntpaSgpO3djKCk7TWMoKX0pO2Z1bmN0aW9uIFRXKHQsZSl7cmV0dXJuIG5ldyB3dChmdW5jdGlvbihhKXt2YXIgaT0wO3JldHVybiBlLnNjaGVkdWxlKGZ1bmN0aW9uKCl7aT09PXQubGVuZ3RoP2EuY29tcGxldGUoKTooYS5uZXh0KHRbaSsrXSksYS5jbG9zZWR8fHRoaXMuc2NoZWR1bGUoKSl9KX0pfXZhciBMVz1iKCgpPT57emEoKX0pO2Z1bmN0aW9uICRXKHQsZSl7cmV0dXJuIG5ldyB3dChmdW5jdGlvbihhKXt2YXIgaTtyZXR1cm4gTTIoYSxlLGZ1bmN0aW9uKCl7aT10W2pkXSgpLE0yKGEsZSxmdW5jdGlvbigpe3ZhciByLHMsbjt0cnl7cj1pLm5leHQoKSxzPXIudmFsdWUsbj1yLmRvbmV9Y2F0Y2gobyl7YS5lcnJvcihvKTtyZXR1cm59bj9hLmNvbXBsZXRlKCk6YS5uZXh0KHMpfSwwLCEwKX0pLGZ1bmN0aW9uKCl7cmV0dXJuIGh0KGk/LnJldHVybikmJmkucmV0dXJuKCl9fSl9dmFyIEFXPWIoKCk9Pnt6YSgpO0NNKCk7ZDIoKTtObygpfSk7ZnVuY3Rpb24gWmQodCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkl0ZXJhYmxlIGNhbm5vdCBiZSBudWxsIik7cmV0dXJuIG5ldyB3dChmdW5jdGlvbihhKXtNMihhLGUsZnVuY3Rpb24oKXt2YXIgaT10W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO00yKGEsZSxmdW5jdGlvbigpe2kubmV4dCgpLnRoZW4oZnVuY3Rpb24ocil7ci5kb25lP2EuY29tcGxldGUoKTphLm5leHQoci52YWx1ZSl9KX0sMCwhMCl9KX0pfXZhciBUTT1iKCgpPT57emEoKTtObygpfSk7ZnVuY3Rpb24gRFcodCxlKXtyZXR1cm4gWmQoV2QodCksZSl9dmFyIEVXPWIoKCk9PntUTSgpO1lkKCl9KTtmdW5jdGlvbiBMTSh0LGUpe2lmKHQhPW51bGwpe2lmKEhkKHQpKXJldHVybiBrVyh0LGUpO2lmKCQ0KHQpKXJldHVybiBUVyh0LGUpO2lmKEJkKHQpKXJldHVybiBDVyh0LGUpO2lmKHFkKHQpKXJldHVybiBaZCh0LGUpO2lmKFVkKHQpKXJldHVybiAkVyh0LGUpO2lmKEdkKHQpKXJldHVybiBEVyh0LGUpfXRocm93IFZkKHQpfXZhciAkTT1iKCgpPT57U1coKTtfVygpO0xXKCk7QVcoKTtUTSgpO3pNKCk7TU0oKTtSZCgpO19NKCk7a00oKTtTTSgpO1lkKCk7RVcoKX0pO2Z1bmN0aW9uIEZvKHQsZSl7cmV0dXJuIGU/TE0odCxlKTokMSh0KX12YXIgWGQ9YigoKT0+eyRNKCk7aWkoKX0pO2Z1bmN0aW9uIHpjKCl7Zm9yKHZhciB0PVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXRbZV09YXJndW1lbnRzW2VdO3ZhciBhPW9uKHQpO3JldHVybiBGbyh0LGEpfXZhciBBTT1iKCgpPT57eGMoKTtYZCgpfSk7ZnVuY3Rpb24gRE0odCxlKXt2YXIgYT1odCh0KT90OmZ1bmN0aW9uKCl7cmV0dXJuIHR9LGk9ZnVuY3Rpb24ocil7cmV0dXJuIHIuZXJyb3IoYSgpKX07cmV0dXJuIG5ldyB3dChlP2Z1bmN0aW9uKHIpe3JldHVybiBlLnNjaGVkdWxlKGksMCxyKX06aSl9dmFyIEVNPWIoKCk9Pnt6YSgpO2QyKCl9KTtmdW5jdGlvbiBJenQodCxlKXt2YXIgYSxpLHIscz10LG49cy5raW5kLG89cy52YWx1ZSxkPXMuZXJyb3I7aWYodHlwZW9mIG4hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm90aWZpY2F0aW9uLCBtaXNzaW5nICJraW5kIicpO249PT0iTiI/KGE9ZS5uZXh0KT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChlLG8pOm49PT0iRSI/KGk9ZS5lcnJvcik9PT1udWxsfHxpPT09dm9pZCAwfHxpLmNhbGwoZSxkKToocj1lLmNvbXBsZXRlKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbChlKX12YXIgUE0sUFcsSVc9YigoKT0+e0ZkKCk7QU0oKTtFTSgpO2QyKCk7KGZ1bmN0aW9uKHQpe3QuTkVYVD0iTiIsdC5FUlJPUj0iRSIsdC5DT01QTEVURT0iQyJ9KShQTXx8KFBNPXt9KSk7UFc9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLGEsaSl7dGhpcy5raW5kPWUsdGhpcy52YWx1ZT1hLHRoaXMuZXJyb3I9aSx0aGlzLmhhc1ZhbHVlPWU9PT0iTiJ9cmV0dXJuIHQucHJvdG90eXBlLm9ic2VydmU9ZnVuY3Rpb24oZSl7cmV0dXJuIEl6dCh0aGlzLGUpfSx0LnByb3RvdHlwZS5kbz1mdW5jdGlvbihlLGEsaSl7dmFyIHI9dGhpcyxzPXIua2luZCxuPXIudmFsdWUsbz1yLmVycm9yO3JldHVybiBzPT09Ik4iP2U/LihuKTpzPT09IkUiP2E/LihvKTppPy4oKX0sdC5wcm90b3R5cGUuYWNjZXB0PWZ1bmN0aW9uKGUsYSxpKXt2YXIgcjtyZXR1cm4gaHQoKHI9ZSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLm5leHQpP3RoaXMub2JzZXJ2ZShlKTp0aGlzLmRvKGUsYSxpKX0sdC5wcm90b3R5cGUudG9PYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxhPWUua2luZCxpPWUudmFsdWUscj1lLmVycm9yLHM9YT09PSJOIj96YyhpKTphPT09IkUiP0RNKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KTphPT09IkMiP05kOjA7aWYoIXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiK2EpO3JldHVybiBzfSx0LmNyZWF0ZU5leHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KCJOIixlKX0sdC5jcmVhdGVFcnJvcj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQoIkUiLHZvaWQgMCxlKX0sdC5jcmVhdGVDb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0LmNvbXBsZXRlTm90aWZpY2F0aW9ufSx0LmNvbXBsZXRlTm90aWZpY2F0aW9uPW5ldyB0KCJDIiksdH0pKCl9KTt2YXIgTlc9YigoKT0+e30pO3ZhciBOenQsRlc9YigoKT0+e25uKCk7Tnp0PU1hKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3QodGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRzIGluIHNlcXVlbmNlIn19KX0pO3ZhciBPVz1iKCgpPT57fSk7dmFyIFJXPWIoKCk9Pnt9KTt2YXIgRnp0LEJXPWIoKCk9PntubigpO0Z6dD1NYShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0KHRoaXMpLHRoaXMubmFtZT0iQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLHRoaXMubWVzc2FnZT0iYXJndW1lbnQgb3V0IG9mIHJhbmdlIn19KX0pO3ZhciBPenQsSFc9YigoKT0+e25uKCk7T3p0PU1hKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihhKXt0KHRoaXMpLHRoaXMubmFtZT0iTm90Rm91bmRFcnJvciIsdGhpcy5tZXNzYWdlPWF9fSl9KTt2YXIgUnp0LHFXPWIoKCk9PntubigpO1J6dD1NYShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oYSl7dCh0aGlzKSx0aGlzLm5hbWU9IlNlcXVlbmNlRXJyb3IiLHRoaXMubWVzc2FnZT1hfX0pfSk7ZnVuY3Rpb24gS2QodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlJiYhaXNOYU4odCl9dmFyIElNPWIoKCk9Pnt9KTtmdW5jdGlvbiBqVyh0LGUpe3ZhciBhPUtkKHQpP3tmaXJzdDp0fTp0eXBlb2YgdD09Im51bWJlciI/e2VhY2g6dH06dCxpPWEuZmlyc3Qscj1hLmVhY2gscz1hLndpdGgsbj1zPT09dm9pZCAwP0J6dDpzLG89YS5zY2hlZHVsZXIsZD1vPT09dm9pZCAwP2U/P3ByOm8sYz1hLm1ldGEscD1jPT09dm9pZCAwP251bGw6YztpZihpPT1udWxsJiZyPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIHRpbWVvdXQgcHJvdmlkZWQuIik7cmV0dXJuIFh0KGZ1bmN0aW9uKGwsZil7dmFyIGcseSx2PW51bGwsbT0wLHg9ZnVuY3Rpb24oTSl7eT1NMihmLGQsZnVuY3Rpb24oKXt0cnl7Zy51bnN1YnNjcmliZSgpLCQxKG4oe21ldGE6cCxsYXN0VmFsdWU6dixzZWVuOm19KSkuc3Vic2NyaWJlKGYpfWNhdGNoKFMpe2YuZXJyb3IoUyl9fSxNKX07Zz1sLnN1YnNjcmliZShWdChmLGZ1bmN0aW9uKE0pe3k/LnVuc3Vic2NyaWJlKCksbSsrLGYubmV4dCh2PU0pLHI+MCYmeChyKX0sdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3k/LmNsb3NlZHx8eT8udW5zdWJzY3JpYmUoKSx2PW51bGx9KSksIW0mJngoaSE9bnVsbD90eXBlb2YgaT09Im51bWJlciI/aToraS1kLm5vdygpOnIpfSl9ZnVuY3Rpb24gQnp0KHQpe3Rocm93IG5ldyBWVyh0KX12YXIgVlcsUWQ9YigoKT0+e0lvKCk7SU0oKTt3MigpO2lpKCk7bm4oKTtyYSgpO05vKCk7Vlc9TWEoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGEpe2E9PT12b2lkIDAmJihhPW51bGwpLHQodGhpcyksdGhpcy5tZXNzYWdlPSJUaW1lb3V0IGhhcyBvY2N1cnJlZCIsdGhpcy5uYW1lPSJUaW1lb3V0RXJyb3IiLHRoaXMuaW5mbz1hfX0pfSk7ZnVuY3Rpb24gbG4odCxlKXtyZXR1cm4gWHQoZnVuY3Rpb24oYSxpKXt2YXIgcj0wO2Euc3Vic2NyaWJlKFZ0KGksZnVuY3Rpb24ocyl7aS5uZXh0KHQuY2FsbChlLHMscisrKSl9KSl9KX12YXIga2M9YigoKT0+e3cyKCk7cmEoKX0pO2Z1bmN0aW9uIHF6dCh0LGUpe3JldHVybiBIenQoZSk/dC5hcHBseSh2b2lkIDAseDIoW10sVTEoZSkpKTp0KGUpfWZ1bmN0aW9uIFVXKHQpe3JldHVybiBsbihmdW5jdGlvbihlKXtyZXR1cm4gcXp0KHQsZSl9KX12YXIgSHp0LFdXPWIoKCk9PnthMSgpO2tjKCk7SHp0PUFycmF5LmlzQXJyYXl9KTt2YXIgR1c9YigoKT0+e30pO3ZhciBZVz1iKCgpPT57fSk7dmFyIFpXPWIoKCk9Pnt9KTtmdW5jdGlvbiBYVyh0LGUsYSxpLHIscyxuLG8pe3ZhciBkPVtdLGM9MCxwPTAsbD0hMSxmPWZ1bmN0aW9uKCl7bCYmIWQubGVuZ3RoJiYhYyYmZS5jb21wbGV0ZSgpfSxnPWZ1bmN0aW9uKHYpe3JldHVybiBjPGk/eSh2KTpkLnB1c2godil9LHk9ZnVuY3Rpb24odil7cyYmZS5uZXh0KHYpLGMrKzt2YXIgbT0hMTskMShhKHYscCsrKSkuc3Vic2NyaWJlKFZ0KGUsZnVuY3Rpb24oeCl7cj8uKHgpLHM/Zyh4KTplLm5leHQoeCl9LGZ1bmN0aW9uKCl7bT0hMH0sdm9pZCAwLGZ1bmN0aW9uKCl7aWYobSl0cnl7Yy0tO2Zvcih2YXIgeD1mdW5jdGlvbigpe3ZhciBNPWQuc2hpZnQoKTtuP00yKGUsbixmdW5jdGlvbigpe3JldHVybiB5KE0pfSk6eShNKX07ZC5sZW5ndGgmJmM8aTspeCgpO2YoKX1jYXRjaChNKXtlLmVycm9yKE0pfX0pKX07cmV0dXJuIHQuc3Vic2NyaWJlKFZ0KGUsZyxmdW5jdGlvbigpe2w9ITAsZigpfSkpLGZ1bmN0aW9uKCl7bz8uKCl9fXZhciBLVz1iKCgpPT57aWkoKTtObygpO3JhKCl9KTtmdW5jdGlvbiBPbyh0LGUsYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTEvMCksaHQoZSk/T28oZnVuY3Rpb24oaSxyKXtyZXR1cm4gbG4oZnVuY3Rpb24ocyxuKXtyZXR1cm4gZShpLHMscixuKX0pKCQxKHQoaSxyKSkpfSxhKToodHlwZW9mIGU9PSJudW1iZXIiJiYoYT1lKSxYdChmdW5jdGlvbihpLHIpe3JldHVybiBYVyhpLHIsdCxhKX0pKX12YXIgU2M9YigoKT0+e2tjKCk7aWkoKTt3MigpO0tXKCk7ZDIoKX0pO2Z1bmN0aW9uIEpkKHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0xLzApLE9vKGZjLHQpfXZhciBlNz1iKCgpPT57U2MoKTtBZCgpfSk7ZnVuY3Rpb24gdDcoKXtyZXR1cm4gSmQoMSl9dmFyIGE3PWIoKCk9PntlNygpfSk7ZnVuY3Rpb24gaTcoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07cmV0dXJuIHQ3KCkoRm8odCxvbih0KSkpfXZhciBOTT1iKCgpPT57YTcoKTt4YygpO1hkKCl9KTt2YXIgUVc9YigoKT0+e30pO3ZhciBKVz1iKCgpPT57fSk7dmFyIGVHPWIoKCk9Pnt9KTtmdW5jdGlvbiBSbyh0LGUsYSxpKXtpZihodChhKSYmKGk9YSxhPXZvaWQgMCksaSlyZXR1cm4gUm8odCxlLGEpLnBpcGUoVVcoaSkpO3ZhciByPVUxKFl6dCh0KT9qenQubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihkKXtyZXR1cm4gdFtvXShlLGQsYSl9fSk6V3p0KHQpP1Z6dC5tYXAodEcodCxlKSk6R3p0KHQpP1V6dC5tYXAodEcodCxlKSk6W10sMikscz1yWzBdLG49clsxXTtpZighcyYmJDQodCkpcmV0dXJuIE9vKGZ1bmN0aW9uKG8pe3JldHVybiBSbyhvLGUsYSl9KSgkMSh0KSk7aWYoIXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBldmVudCB0YXJnZXQiKTtyZXR1cm4gbmV3IHd0KGZ1bmN0aW9uKG8pe3ZhciBkPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPVtdLHA9MDtwPGFyZ3VtZW50cy5sZW5ndGg7cCsrKWNbcF09YXJndW1lbnRzW3BdO3JldHVybiBvLm5leHQoMTxjLmxlbmd0aD9jOmNbMF0pfTtyZXR1cm4gcyhkKSxmdW5jdGlvbigpe3JldHVybiBuKGQpfX0pfWZ1bmN0aW9uIHRHKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gdFthXShlLGkpfX19ZnVuY3Rpb24gV3p0KHQpe3JldHVybiBodCh0LmFkZExpc3RlbmVyKSYmaHQodC5yZW1vdmVMaXN0ZW5lcil9ZnVuY3Rpb24gR3p0KHQpe3JldHVybiBodCh0Lm9uKSYmaHQodC5vZmYpfWZ1bmN0aW9uIFl6dCh0KXtyZXR1cm4gaHQodC5hZGRFdmVudExpc3RlbmVyKSYmaHQodC5yZW1vdmVFdmVudExpc3RlbmVyKX12YXIgVnp0LGp6dCxVenQsYUc9YigoKT0+e2ExKCk7aWkoKTt6YSgpO1NjKCk7UmQoKTtkMigpO1dXKCk7Vnp0PVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLGp6dD1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sVXp0PVsib24iLCJvZmYiXX0pO3ZhciBpRz1iKCgpPT57fSk7dmFyIHJHPWIoKCk9Pnt9KTt2YXIgc0c9YigoKT0+e30pO2Z1bmN0aW9uIEZNKHQsZSxhKXt0PT09dm9pZCAwJiYodD0wKSxhPT09dm9pZCAwJiYoYT1mTSk7dmFyIGk9LTE7cmV0dXJuIGUhPW51bGwmJihPZChlKT9hPWU6aT1lKSxuZXcgd3QoZnVuY3Rpb24ocil7dmFyIHM9S2QodCk/K3QtYS5ub3coKTp0O3M8MCYmKHM9MCk7dmFyIG49MDtyZXR1cm4gYS5zY2hlZHVsZShmdW5jdGlvbigpe3IuY2xvc2VkfHwoci5uZXh0KG4rKyksMDw9aT90aGlzLnNjaGVkdWxlKHZvaWQgMCxpKTpyLmNvbXBsZXRlKCkpfSxzKX0pfXZhciBPTT1iKCgpPT57emEoKTtJbygpO3hNKCk7SU0oKX0pO3ZhciBuRz1iKCgpPT57fSk7dmFyIG9HPWIoKCk9Pnt9KTtmdW5jdGlvbiBaenQoKXtyZXR1cm4gbEd9dmFyIGxHLFJNPWIoKCk9Pnt6YSgpO0FvKCk7bEc9bmV3IHd0KGFpKX0pO3ZhciBjRz1iKCgpPT57fSk7dmFyIGRHPWIoKCk9Pnt9KTtmdW5jdGlvbiByNyh0LGUpe3JldHVybiBYdChmdW5jdGlvbihhLGkpe3ZhciByPTA7YS5zdWJzY3JpYmUoVnQoaSxmdW5jdGlvbihzKXtyZXR1cm4gdC5jYWxsKGUscyxyKyspJiZpLm5leHQocyl9KSl9KX12YXIgQk09YigoKT0+e3cyKCk7cmEoKX0pO3ZhciBwRz1iKCgpPT57fSk7dmFyIGhHPWIoKCk9Pnt9KTt2YXIgdUc9YigoKT0+e30pO3ZhciBmRz1iKCgpPT57fSk7dmFyIG1HPWIoKCk9Pnt9KTt2YXIgZ0c9YigoKT0+e30pO3ZhciBITT1iKCgpPT57fSk7dmFyIHFNPWIoKCk9Pnt9KTtmdW5jdGlvbiBzNyh0KXtyZXR1cm4gWHQoZnVuY3Rpb24oZSxhKXt2YXIgaT1bXTtyZXR1cm4gZS5zdWJzY3JpYmUoVnQoYSxmdW5jdGlvbihyKXtyZXR1cm4gaS5wdXNoKHIpfSxmdW5jdGlvbigpe2EubmV4dChpKSxhLmNvbXBsZXRlKCl9KSksJDEodCkuc3Vic2NyaWJlKFZ0KGEsZnVuY3Rpb24oKXt2YXIgcj1pO2k9W10sYS5uZXh0KHIpfSxhaSkpLGZ1bmN0aW9uKCl7aT1udWxsfX0pfXZhciBWTT1iKCgpPT57dzIoKTtBbygpO3JhKCk7aWkoKX0pO2Z1bmN0aW9uIG43KHQsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPW51bGwpLGU9ZT8/dCxYdChmdW5jdGlvbihhLGkpe3ZhciByPVtdLHM9MDthLnN1YnNjcmliZShWdChpLGZ1bmN0aW9uKG4pe3ZhciBvLGQsYyxwLGw9bnVsbDtzKyslZT09PTAmJnIucHVzaChbXSk7dHJ5e2Zvcih2YXIgZj1OMihyKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSl7dmFyIHk9Zy52YWx1ZTt5LnB1c2gobiksdDw9eS5sZW5ndGgmJihsPWw/P1tdLGwucHVzaCh5KSl9fWNhdGNoKHgpe289e2Vycm9yOnh9fWZpbmFsbHl7dHJ5e2cmJiFnLmRvbmUmJihkPWYucmV0dXJuKSYmZC5jYWxsKGYpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1pZihsKXRyeXtmb3IodmFyIHY9TjIobCksbT12Lm5leHQoKTshbS5kb25lO209di5uZXh0KCkpe3ZhciB5PW0udmFsdWU7VGkocix5KSxpLm5leHQoeSl9fWNhdGNoKHgpe2M9e2Vycm9yOnh9fWZpbmFsbHl7dHJ5e20mJiFtLmRvbmUmJihwPXYucmV0dXJuKSYmcC5jYWxsKHYpfWZpbmFsbHl7aWYoYyl0aHJvdyBjLmVycm9yfX19LGZ1bmN0aW9uKCl7dmFyIG4sbzt0cnl7Zm9yKHZhciBkPU4yKHIpLGM9ZC5uZXh0KCk7IWMuZG9uZTtjPWQubmV4dCgpKXt2YXIgcD1jLnZhbHVlO2kubmV4dChwKX19Y2F0Y2gobCl7bj17ZXJyb3I6bH19ZmluYWxseXt0cnl7YyYmIWMuZG9uZSYmKG89ZC5yZXR1cm4pJiZvLmNhbGwoZCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fWkuY29tcGxldGUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7cj1udWxsfSkpfSl9dmFyIGpNPWIoKCk9PnthMSgpO3cyKCk7cmEoKTtrNCgpfSk7ZnVuY3Rpb24gbzcodCl7Zm9yKHZhciBlLGEsaT1bXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKylpW3ItMV09YXJndW1lbnRzW3JdO3ZhciBzPShlPW9uKGkpKSE9PW51bGwmJmUhPT12b2lkIDA/ZTpwcixuPShhPWlbMF0pIT09bnVsbCYmYSE9PXZvaWQgMD9hOm51bGwsbz1pWzFdfHwxLzA7cmV0dXJuIFh0KGZ1bmN0aW9uKGQsYyl7dmFyIHA9W10sbD0hMSxmPWZ1bmN0aW9uKHYpe3ZhciBtPXYuYnVmZmVyLHg9di5zdWJzO3gudW5zdWJzY3JpYmUoKSxUaShwLHYpLGMubmV4dChtKSxsJiZnKCl9LGc9ZnVuY3Rpb24oKXtpZihwKXt2YXIgdj1uZXcgRjE7Yy5hZGQodik7dmFyIG09W10seD17YnVmZmVyOm0sc3Viczp2fTtwLnB1c2goeCksTTIodixzLGZ1bmN0aW9uKCl7cmV0dXJuIGYoeCl9LHQpfX07biE9PW51bGwmJm4+PTA/TTIoYyxzLGcsbiwhMCk6bD0hMCxnKCk7dmFyIHk9VnQoYyxmdW5jdGlvbih2KXt2YXIgbSx4LE09cC5zbGljZSgpO3RyeXtmb3IodmFyIFM9TjIoTSksRj1TLm5leHQoKTshRi5kb25lO0Y9Uy5uZXh0KCkpe3ZhciBfPUYudmFsdWUsaz1fLmJ1ZmZlcjtrLnB1c2godiksbzw9ay5sZW5ndGgmJmYoXyl9fWNhdGNoKE4pe209e2Vycm9yOk59fWZpbmFsbHl7dHJ5e0YmJiFGLmRvbmUmJih4PVMucmV0dXJuKSYmeC5jYWxsKFMpfWZpbmFsbHl7aWYobSl0aHJvdyBtLmVycm9yfX19LGZ1bmN0aW9uKCl7Zm9yKDtwPy5sZW5ndGg7KWMubmV4dChwLnNoaWZ0KCkuYnVmZmVyKTt5Py51bnN1YnNjcmliZSgpLGMuY29tcGxldGUoKSxjLnVuc3Vic2NyaWJlKCl9LHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBwPW51bGx9KTtkLnN1YnNjcmliZSh5KX0pfXZhciBVTT1iKCgpPT57YTEoKTtkcigpO3cyKCk7cmEoKTtrNCgpO0lvKCk7eGMoKTtObygpfSk7dmFyIFdNPWIoKCk9Pnt9KTt2YXIgR009YigoKT0+e30pO3ZhciBZTT1iKCgpPT57fSk7dmFyIFpNPWIoKCk9Pnt9KTt2YXIgWE09YigoKT0+e30pO3ZhciBLTT1iKCgpPT57fSk7dmFyIFFNPWIoKCk9Pnt9KTt2YXIgYkc9YigoKT0+e30pO3ZhciBKTT1iKCgpPT57fSk7dmFyIGV6PWIoKCk9Pnt9KTt2YXIgdHo9YigoKT0+e30pO3ZhciB2Rz1iKCgpPT57fSk7dmFyIGF6PWIoKCk9Pnt9KTt2YXIgaXo9YigoKT0+e30pO3ZhciByej1iKCgpPT57fSk7ZnVuY3Rpb24gbDcodCl7cmV0dXJuIFh0KGZ1bmN0aW9uKGUsYSl7dmFyIGk9ITEscj1udWxsLHM9bnVsbCxuPWZ1bmN0aW9uKCl7aWYocz8udW5zdWJzY3JpYmUoKSxzPW51bGwsaSl7aT0hMTt2YXIgbz1yO3I9bnVsbCxhLm5leHQobyl9fTtlLnN1YnNjcmliZShWdChhLGZ1bmN0aW9uKG8pe3M/LnVuc3Vic2NyaWJlKCksaT0hMCxyPW8scz1WdChhLG4sYWkpLCQxKHQobykpLnN1YnNjcmliZShzKX0sZnVuY3Rpb24oKXtuKCksYS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtyPXM9bnVsbH0pKX0pfXZhciBzej1iKCgpPT57dzIoKTtBbygpO3JhKCk7aWkoKX0pO2Z1bmN0aW9uIGM3KHQsZSl7cmV0dXJuIGU9PT12b2lkIDAmJihlPXByKSxYdChmdW5jdGlvbihhLGkpe3ZhciByPW51bGwscz1udWxsLG49bnVsbCxvPWZ1bmN0aW9uKCl7aWYocil7ci51bnN1YnNjcmliZSgpLHI9bnVsbDt2YXIgYz1zO3M9bnVsbCxpLm5leHQoYyl9fTtmdW5jdGlvbiBkKCl7dmFyIGM9bit0LHA9ZS5ub3coKTtpZihwPGMpe3I9dGhpcy5zY2hlZHVsZSh2b2lkIDAsYy1wKSxpLmFkZChyKTtyZXR1cm59bygpfWEuc3Vic2NyaWJlKFZ0KGksZnVuY3Rpb24oYyl7cz1jLG49ZS5ub3coKSxyfHwocj1lLnNjaGVkdWxlKGQsdCksaS5hZGQocikpfSxmdW5jdGlvbigpe28oKSxpLmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe3M9cj1udWxsfSkpfSl9dmFyIG56PWIoKCk9PntJbygpO3cyKCk7cmEoKX0pO3ZhciBvej1iKCgpPT57fSk7dmFyIGx6PWIoKCk9Pnt9KTt2YXIgY3o9YigoKT0+e30pO3ZhciBkej1iKCgpPT57fSk7dmFyIHB6PWIoKCk9Pnt9KTt2YXIgaHo9YigoKT0+e30pO3ZhciB1ej1iKCgpPT57fSk7dmFyIGZ6PWIoKCk9Pnt9KTt2YXIgbXo9YigoKT0+e30pO3ZhciBnej1iKCgpPT57fSk7dmFyIGJ6PWIoKCk9Pnt9KTt2YXIgdno9YigoKT0+e30pO3ZhciB5ej1iKCgpPT57fSk7dmFyIHh6PWIoKCk9Pnt9KTt2YXIgd3o9YigoKT0+e30pO3ZhciBNej1iKCgpPT57fSk7dmFyIHp6PWIoKCk9Pnt9KTt2YXIga3o9YigoKT0+e30pO3ZhciBTej1iKCgpPT57fSk7dmFyIEN6PWIoKCk9Pnt9KTt2YXIgX3o9YigoKT0+e30pO3ZhciBUej1iKCgpPT57fSk7dmFyIEx6PWIoKCk9Pnt9KTt2YXIgJHo9YigoKT0+e30pO3ZhciBBej1iKCgpPT57fSk7dmFyIER6PWIoKCk9Pnt9KTt2YXIgRXo9YigoKT0+e30pO3ZhciBQej1iKCgpPT57fSk7dmFyIEl6PWIoKCk9Pnt9KTt2YXIgTno9YigoKT0+e30pO3ZhciBGej1iKCgpPT57fSk7dmFyIHlHPWIoKCk9Pnt9KTt2YXIgT3o9YigoKT0+e30pO3ZhciBSej1iKCgpPT57fSk7dmFyIEJ6PWIoKCk9Pnt9KTt2YXIgSHo9YigoKT0+e30pO3ZhciBxej1iKCgpPT57fSk7dmFyIFZ6PWIoKCk9Pnt9KTt2YXIgano9YigoKT0+e30pO3ZhciBVej1iKCgpPT57fSk7dmFyIFd6PWIoKCk9Pnt9KTt2YXIgR3o9YigoKT0+e30pO3ZhciBZej1iKCgpPT57fSk7dmFyIFp6PWIoKCk9Pnt9KTt2YXIgWHo9YigoKT0+e30pO3ZhciBLej1iKCgpPT57fSk7dmFyIFF6PWIoKCk9Pnt9KTt2YXIgSno9YigoKT0+e30pO3ZhciBlaz1iKCgpPT57fSk7dmFyIHRrPWIoKCk9Pnt9KTt2YXIgYWs9YigoKT0+e30pO3ZhciBpaz1iKCgpPT57fSk7dmFyIHJrPWIoKCk9Pnt9KTt2YXIgc2s9YigoKT0+e30pO3ZhciBuaz1iKCgpPT57fSk7dmFyIG9rPWIoKCk9Pnt9KTt2YXIgbGs9YigoKT0+e30pO3ZhciBjaz1iKCgpPT57fSk7ZnVuY3Rpb24gZDcoKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dmFyIGE9b24odCk7cmV0dXJuIFh0KGZ1bmN0aW9uKGkscil7KGE/aTcodCxpLGEpOmk3KHQsaSkpLnN1YnNjcmliZShyKX0pfXZhciBkaz1iKCgpPT57Tk0oKTt4YygpO3cyKCl9KTt2YXIgcGs9YigoKT0+e30pO3ZhciBoaz1iKCgpPT57fSk7dmFyIHVrPWIoKCk9Pnt9KTt2YXIgZms9YigoKT0+e30pO2Z1bmN0aW9uIHA3KHQpe3JldHVybiBYdChmdW5jdGlvbihlLGEpeyQxKHQpLnN1YnNjcmliZShWdChhLGZ1bmN0aW9uKCl7cmV0dXJuIGEuY29tcGxldGUoKX0sYWkpKSwhYS5jbG9zZWQmJmUuc3Vic2NyaWJlKGEpfSl9dmFyIG1rPWIoKCk9Pnt3MigpO3JhKCk7aWkoKTtBbygpfSk7dmFyIGdrPWIoKCk9Pnt9KTt2YXIgYms9YigoKT0+e30pO2Z1bmN0aW9uIGg3KHQsZSl7cmV0dXJuIFh0KGZ1bmN0aW9uKGEsaSl7dmFyIHI9ZT8/e30scz1yLmxlYWRpbmcsbj1zPT09dm9pZCAwPyEwOnMsbz1yLnRyYWlsaW5nLGQ9bz09PXZvaWQgMD8hMTpvLGM9ITEscD1udWxsLGw9bnVsbCxmPSExLGc9ZnVuY3Rpb24oKXtsPy51bnN1YnNjcmliZSgpLGw9bnVsbCxkJiYobSgpLGYmJmkuY29tcGxldGUoKSl9LHk9ZnVuY3Rpb24oKXtsPW51bGwsZiYmaS5jb21wbGV0ZSgpfSx2PWZ1bmN0aW9uKHgpe3JldHVybiBsPSQxKHQoeCkpLnN1YnNjcmliZShWdChpLGcseSkpfSxtPWZ1bmN0aW9uKCl7aWYoYyl7Yz0hMTt2YXIgeD1wO3A9bnVsbCxpLm5leHQoeCksIWYmJnYoeCl9fTthLnN1YnNjcmliZShWdChpLGZ1bmN0aW9uKHgpe2M9ITAscD14LCEobCYmIWwuY2xvc2VkKSYmKG4/bSgpOnYoeCkpfSxmdW5jdGlvbigpe2Y9ITAsIShkJiZjJiZsJiYhbC5jbG9zZWQpJiZpLmNvbXBsZXRlKCl9KSl9KX12YXIgdTc9YigoKT0+e3cyKCk7cmEoKTtpaSgpfSk7ZnVuY3Rpb24gZjcodCxlLGEpe2U9PT12b2lkIDAmJihlPXByKTt2YXIgaT1GTSh0LGUpO3JldHVybiBoNyhmdW5jdGlvbigpe3JldHVybiBpfSxhKX12YXIgdms9YigoKT0+e0lvKCk7dTcoKTtPTSgpfSk7dmFyIHlrPWIoKCk9Pnt9KTt2YXIgeGs9YigoKT0+e30pO3ZhciB3az1iKCgpPT57fSk7dmFyIE1rPWIoKCk9Pnt9KTt2YXIgems9YigoKT0+e30pO3ZhciBraz1iKCgpPT57fSk7dmFyIFNrPWIoKCk9Pnt9KTt2YXIgQ2s9YigoKT0+e30pO3ZhciBfaz1iKCgpPT57fSk7dmFyIFRrPWIoKCk9Pnt9KTt2YXIgeEc9YigoKT0+e30pO3ZhciBMaz1iKCgpPT57fSk7dmFyICRrPWIoKCk9Pnt6YSgpO1pVKCk7dWMoKTtRVSgpO21jKCk7ZVcoKTt0VygpO2lXKCk7aFcoKTtJbygpO2dXKCk7eFcoKTtNVygpO2hNKCk7ZHIoKTskZCgpO0lXKCk7ZU0oKTtBbygpO0FkKCk7TlcoKTtPVygpO1JXKCk7QlcoKTtGVygpO0hXKCk7c00oKTtxVygpO1FkKCk7V3coKTtHVygpO1lXKCk7WlcoKTtOTSgpO0pXKCk7UVcoKTtGZCgpO2VHKCk7WGQoKTthRygpO2lHKCk7ckcoKTtzRygpO25HKCk7b0coKTtSTSgpO0FNKCk7Y0coKTtkRygpO3BHKCk7aEcoKTt1RygpO0VNKCk7T00oKTtmRygpO21HKCk7JE0oKTtGZCgpO1JNKCk7Z0coKTtTNCgpO0hNKCk7cU0oKTtWTSgpO2pNKCk7VU0oKTtXTSgpO0dNKCk7WU0oKTtRTSgpO0tNKCk7Sk0oKTthNygpO2V6KCk7dHooKTtheigpO2l6KCk7cnooKTtzeigpO256KCk7b3ooKTtoeigpO3B6KCk7dXooKTtmeigpO216KCk7Z3ooKTt2eigpO3l6KCk7eHooKTt6eigpO016KCk7d3ooKTtreigpO0JNKCk7U3ooKTtDeigpO196KCk7VHooKTtMeigpO2N6KCk7JHooKTtEeigpO2tjKCk7ZHooKTtFeigpO1B6KCk7ZTcoKTtJeigpO1NjKCk7TnooKTtGeigpO096KCk7UnooKTtCeigpO3djKCk7SHooKTtxeigpO1Z6KCk7anooKTtVeigpO1d6KCk7R3ooKTtZeigpO1pNKCk7WnooKTtYeigpO0t6KCk7UXooKTtFZCgpO0p6KCk7ZWsoKTt0aygpO2FrKCk7aWsoKTtyaygpO3NrKCk7bmsoKTtvaygpO2xrKCk7Y2soKTtkaygpO01jKCk7aGsoKTtwaygpO3VrKCk7ZmsoKTtseigpO0F6KCk7bWsoKTtnaygpO2JrKCk7dTcoKTt2aygpO2J6KCk7eWsoKTtRZCgpO3hrKCk7d2soKTtYTSgpO01rKCk7emsoKTtraygpO1NrKCk7Q2soKTtfaygpO1RrKCk7TGsoKX0pO3ZhciB3Rz1iKCgpPT57fSk7dmFyIE1HPWIoKCk9Pnt9KTt2YXIgekc9YigoKT0+e0hNKCk7cU0oKTtWTSgpO2pNKCk7VU0oKTtXTSgpO0dNKCk7WU0oKTtRTSgpO0tNKCk7YkcoKTtKTSgpO3ZHKCk7YTcoKTtleigpO3R6KCk7YXooKTtpeigpO3J6KCk7c3ooKTtueigpO296KCk7aHooKTtweigpO3V6KCk7ZnooKTtteigpO2d6KCk7dnooKTt5eigpO3h6KCk7enooKTtNeigpO3d6KCk7a3ooKTtCTSgpO1N6KCk7Q3ooKTtfeigpO1R6KCk7THooKTtjeigpOyR6KCk7RHooKTtrYygpO2R6KCk7RXooKTtQeigpO3lHKCk7ZTcoKTtJeigpO1NjKCk7TnooKTtGeigpO096KCk7UnooKTtCeigpO3djKCk7SHooKTtxeigpO3dHKCk7VnooKTtqeigpO1V6KCk7V3ooKTtHeigpO01HKCk7WXooKTtaTSgpO1p6KCk7WHooKTtLeigpO1F6KCk7RWQoKTtKeigpO2VrKCk7dGsoKTthaygpO2lrKCk7cmsoKTtzaygpO25rKCk7b2soKTtsaygpO2NrKCk7ZGsoKTtNYygpO2hrKCk7cGsoKTt1aygpO2ZrKCk7bHooKTtBeigpO21rKCk7Z2soKTtiaygpO3U3KCk7dmsoKTtieigpO3lrKCk7UWQoKTt4aygpO3drKCk7WE0oKTtNaygpO3prKCk7a2soKTtTaygpO0NrKCk7X2soKTt4RygpO1RrKCk7TGsoKX0pO3ZhciBFND17fTtHZShFNCx7T2JzZXJ2YWJsZTooKT0+d3QsUmVwbGF5U3ViamVjdDooKT0+UGQsU3ViamVjdDooKT0+a2EsU3Vic2NyaXB0aW9uOigpPT5GMSxmcm9tOigpPT5Gbyxmcm9tRXZlbnQ6KCk9PlJvLG9mOigpPT56YyxvcHM6KCk9PiRTdH0pO3ZhciAkU3QsbTc9YigoKT0+eyRrKCk7ekcoKTskU3Q9e2J1ZmZlcjpzNyxidWZmZXJDb3VudDpuNyxidWZmZXJUaW1lOm83LGRlYm91bmNlOmw3LGRlYm91bmNlVGltZTpjNyxmaWx0ZXI6cjcsbWFwOmxuLHN0YXJ0V2l0aDpkNyx0YWtlVW50aWw6cDcsdGhyb3R0bGVUaW1lOmY3fX0pO3ZhciBBayxrRz1iKCgpPT57U2QoKTttNygpO0FrPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXk9bmV3IEFycmF5LHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXk9bmV3IEFycmF5fWdldFN1YmplY3RGb3JFbWl0dGVyRXZlbnQoZSxhKXtsZXQgaT10aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5maW5kKHI9PnIuZXZlbnRSZWY9PT1lJiZyLmV2ZW50PT09YSk7aWYoaSlyZXR1cm4gaS5zdWJqZWN0O3tsZXQgcj1SbyhlLGEpLHM9bmV3IGthO3Iuc3Vic2NyaWJlKHMpO2xldCBuPXtzdWJqZWN0OnMsZXZlbnRSZWY6ZSxldmVudDphfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXkucHVzaChuKSxuLnN1YmplY3R9fWdldFN1YmplY3RGb3JFdmVudFRhcmdldChlLGEpe2xldCBpPXRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkuZmluZChyPT5yLmV2ZW50UmVmPT09ZSYmci5ldmVudD09PWEpO2lmKGkpcmV0dXJuIGkuc3ViamVjdDt7bGV0IHM9e3N1YmplY3Q6bmV3IGthLGV2ZW50UmVmOmUsZXZlbnQ6YX07cmV0dXJuIHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkucHVzaChzKSxzLnN1YmplY3R9fX19KTt2YXIgRGssU0c9YigoKT0+e1NkKCk7bTcoKTtEaz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucz17bmV4dDplPT57fSxjb21wbGV0ZTplPT57fX0sdGhpcy5nZW5lcmF0b3I9bnVsbCx0aGlzLmJ1ZmZlcmVkPSExLHRoaXMucGF5bG9hZEJ1ZmZlcj1bXSx0aGlzLm9ic2VydmFibGU9bmV3IHd0KGU9Pnt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMubmV4dD0oLi4uYSk9PmUubmV4dChhKSx0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMuY29tcGxldGU9KCk9Pih0aGlzLmNvbXBsZXRlZERlZmZlcmVkLnJlc29sdmUoKSxlLmNvbXBsZXRlKCkpfSksdGhpcy5jb21wbGV0ZWREZWZmZXJlZD1CZS5kZWZlcigpLHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZmVyZWQucHJvbWlzZX1zZXRPYnNlcnZhYmxlKGUpe3RoaXMub2JzZXJ2YWJsZT1lfXB1c2goZSl7dGhpcy5idWZmZXJlZD90aGlzLnBheWxvYWRCdWZmZXIucHVzaChlKTp0aGlzLmludGVybmFsUHVzaChlKX1wdXNoTWFueShlKXtmb3IobGV0IGEgb2YgZSl0aGlzLnB1c2goYSl9c2V0R2VuZXJhdG9yKGUpe3RoaXMuZ2VuZXJhdG9yPWV9bWFrZUJ1ZmZlcmVkKCl7dGhpcy5idWZmZXJlZD0hMH1zdWJzY3JpYmUoLi4uZSl7cmV0dXJuIHRoaXMub2JzZXJ2YWJsZS5zdWJzY3JpYmUoLi4uZSl9cmVxdWVzdChlKXtpZihlIT09MClmb3IobGV0IGE9MDthIT09ZTthKyspaWYodGhpcy5wYXlsb2FkQnVmZmVyLmxlbmd0aD4wKXRoaXMuaW50ZXJuYWxQdXNoKHRoaXMucGF5bG9hZEJ1ZmZlci5zaGlmdCgpKTtlbHNle2xldCBpPXRoaXMuZ2VuZXJhdG9yLm5leHQoKTt0aGlzLmludGVybmFsUHVzaChpLnZhbHVlKX19c2lnbmFsQ29tcGxldGUoKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMuY29tcGxldGUoKX1pbnRlcm5hbFB1c2goZSl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQoZSl9fX0pO2Z1bmN0aW9uIEFTdCh0KXtyZXR1cm4gbmV3IHd0KGU9PntsZXQgYT0oKT0+dC5wYXVzZSgpLGk9KCk9PnByb2Nlc3MubmV4dFRpY2soKCk9PnQucmVzdW1lKCkpLHI9cz0+e2EoKSxlLm5leHQocyksaSgpfTtyZXR1cm4gdC5vbigiZGF0YSIsciksdC5vbigiZXJyb3IiLHM9PmUuZXJyb3IocykpLHQub24oImVuZCIsKCk9PmUuY29tcGxldGUoKSksdC5vbigiY2xvc2UiLCgpPT5lLmNvbXBsZXRlKCkpLCgpPT57dC5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsciksdC5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGUuZXJyb3IpLHQucmVtb3ZlTGlzdGVuZXIoImVuZCIsZS5jb21wbGV0ZSksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGUuY29tcGxldGUpfX0pfXZhciBDRz1iKCgpPT57JGsoKX0pO3ZhciBBdD17fTtHZShBdCx7T2JzZXJ2YWJsZUludGFrZTooKT0+RGssT2JzZXJ2YWJsZW1hcDooKT0+QWssZnJvbVN0cmVhbVdpdGhCYWNrcHJlc3N1cmU6KCk9PkFTdCxyeGpzOigpPT5FNH0pO3ZhciBBaT1iKCgpPT57U2QoKTtrRygpO1NHKCk7Q0coKTttNygpfSk7ZnVuY3Rpb24gSSh0KXtyZXR1cm4oZSxhKT0+dHlwZW9mIGE9PSJvYmplY3QiP19HKHQsZSxhKTooKGkscixzKT0+e2xldCBuPXIuaGFzT3duUHJvcGVydHkocyk7cmV0dXJuIHIuY29uc3RydWN0b3IuY3JlYXRlUHJvcGVydHkocyxpKSxuP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixzKTp2b2lkIDB9KSh0LGUsYSl9dmFyIERTdCxfRyxnNz1iKCgpPT57c2MoKTtEU3Q9e2F0dHJpYnV0ZTohMCx0eXBlOlN0cmluZyxjb252ZXJ0ZXI6TTQscmVmbGVjdDohMSxoYXNDaGFuZ2VkOnJjfSxfRz0odD1EU3QsZSxhKT0+e2xldHtraW5kOmksbWV0YWRhdGE6cn09YSxzPWdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5nZXQocik7aWYocz09PXZvaWQgMCYmZ2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLnNldChyLHM9bmV3IE1hcCksaT09PSJzZXR0ZXIiJiYoKHQ9T2JqZWN0LmNyZWF0ZSh0KSkud3JhcHBlZD0hMCkscy5zZXQoYS5uYW1lLHQpLGk9PT0iYWNjZXNzb3IiKXtsZXR7bmFtZTpufT1hO3JldHVybntzZXQobyl7bGV0IGQ9ZS5nZXQuY2FsbCh0aGlzKTtlLnNldC5jYWxsKHRoaXMsbyksdGhpcy5yZXF1ZXN0VXBkYXRlKG4sZCx0LCEwLG8pfSxpbml0KG8pe3JldHVybiBvIT09dm9pZCAwJiZ0aGlzLkMobix2b2lkIDAsdCxvKSxvfX19aWYoaT09PSJzZXR0ZXIiKXtsZXR7bmFtZTpufT1hO3JldHVybiBmdW5jdGlvbihvKXtsZXQgZD10aGlzW25dO2UuY2FsbCh0aGlzLG8pLHRoaXMucmVxdWVzdFVwZGF0ZShuLGQsdCwhMCxvKX19dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGRlY29yYXRvciBsb2NhdGlvbjogIitpKX19KTt2YXIgVEc9YigoKT0+e2c3KCl9KTt2YXIgTEc9YigoKT0+e30pO3ZhciBkdD17fTtHZShkdCx7VGltZW91dDooKT0+YjcsZGVsYXlGb3I6KCk9PiRHLGRlbGF5Rm9yUmFuZG9tOigpPT5FU3R9KTt2YXIgJEcsRVN0LGI3LGhyPWIoKCk9PntjMigpOyRHPWFzeW5jKHQsZSxhPSExKT0+KGF3YWl0IG5ldyBiNyh0LG51bGwsYSkucHJvbWlzZSxlKSxFU3Q9YXN5bmModCxlLGEsaT0hMSk9Pihhd2FpdCAkRyhNYXRoLnJhbmRvbSgpKihlLXQpK3QsbnVsbCxpKSxhKSxiNz1jbGFzc3tjb25zdHJ1Y3RvcihlLGEsaT0hMSl7dGhpcy5fY2FuY2VsbGVkPSExLHRoaXMudGltZW91dEluTWlsbGlzPWUsdGhpcy5fZGVmZXJyZWQ9c24oKSx0aGlzLnByb21pc2U9dGhpcy5fZGVmZXJyZWQucHJvbWlzZSx0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9jYW5jZWxsZWR8fHRoaXMuX2RlZmVycmVkLnJlc29sdmUoYSl9LGUpLHRoaXMuc3RhcnRlZD1EYXRlLm5vdygpLGkmJnRoaXMubWFrZVVucmVmZWQoKX1tYWtlVW5yZWZlZCgpe3RoaXMuX3RpbWVvdXQudW5yZWYoKX1jYW5jZWwoKXt0aGlzLl9jYW5jZWxsZWQ9ITAsY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpfWdldFRpbWVMZWZ0KCl7bGV0IGU9dGhpcy5zdGFydGVkK3RoaXMudGltZW91dEluTWlsbGlzLURhdGUubm93KCk7cmV0dXJuIGU+MD9lOjB9fX0pO3ZhciBjbj17fTt2YXIgQ2M9YigoKT0+e30pO2Z1bmN0aW9uIEJvKHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIHN0cmluZyIpO3JldHVybiB0LnJlcGxhY2UoL1t8XFx7fSgpW1xdXiQrKj8uXS9nLCJcXCQmIikucmVwbGFjZSgvLS9nLCJcXHgyZCIpfXZhciB2Nz1iKCgpPT57fSk7dmFyIF9jPXt9O0dlKF9jLHtpc01hdGNoOigpPT5OU3QsbWF0Y2hlcjooKT0+SVN0fSk7ZnVuY3Rpb24gSVN0KHQsZSxhKXtyZXR1cm4gREcodCxlLGEsITEpfWZ1bmN0aW9uIE5TdCh0LGUsYSl7cmV0dXJuIERHKHQsZSxhLCEwKS5sZW5ndGg+MH12YXIgRWssQUcsUFN0LERHLEVHPWIoKCk9Pnt2NygpO0VrPW5ldyBNYXAsQUc9KHQsZSk9PntpZighQXJyYXkuaXNBcnJheSh0KSlzd2l0Y2godHlwZW9mIHQpe2Nhc2Uic3RyaW5nIjp0PVt0XTticmVhaztjYXNlInVuZGVmaW5lZCI6dD1bXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICcke2V9JyB0byBiZSBhIHN0cmluZyBvciBhbiBhcnJheSwgYnV0IGdvdCBhIHR5cGUgb2YgJyR7dHlwZW9mIHR9J2ApfXJldHVybiB0LmZpbHRlcihhPT57aWYodHlwZW9mIGEhPSJzdHJpbmciKXtpZih0eXBlb2YgYT4idSIpcmV0dXJuITE7dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7ZX0nIHRvIGJlIGFuIGFycmF5IG9mIHN0cmluZ3MsIGJ1dCBmb3VuZCBhIHR5cGUgb2YgJyR7dHlwZW9mIGF9JyBpbiB0aGUgYXJyYXlgKX1yZXR1cm4hMH0pfSxQU3Q9KHQsZSk9PntlPXtjYXNlU2Vuc2l0aXZlOiExLC4uLmV9O2xldCBhPXQrSlNPTi5zdHJpbmdpZnkoZSk7aWYoRWsuaGFzKGEpKXJldHVybiBFay5nZXQoYSk7bGV0IGk9dFswXT09PSIhIjtpJiYodD10LnNsaWNlKDEpKSx0PUJvKHQpLnJlcGxhY2UoL1xcXCovZywiW1xcc1xcU10qIik7bGV0IHI9bmV3IFJlZ0V4cChgXiR7dH0kYCxlLmNhc2VTZW5zaXRpdmU/IiI6ImkiKTtyZXR1cm4gci5uZWdhdGVkPWksRWsuc2V0KGEscikscn0sREc9KHQsZSxhLGkpPT57aWYodD1BRyh0LCJpbnB1dHMiKSxlPUFHKGUsInBhdHRlcm5zIiksZS5sZW5ndGg9PT0wKXJldHVybltdO2U9ZS5tYXAobj0+UFN0KG4sYSkpO2xldHthbGxQYXR0ZXJuczpyfT1hfHx7fSxzPVtdO2ZvcihsZXQgbiBvZiB0KXtsZXQgbyxkPVsuLi5lXS5maWxsKCExKTtmb3IobGV0W2MscF1vZiBlLmVudHJpZXMoKSlpZihwLnRlc3QobikmJihkW2NdPSEwLG89IXAubmVnYXRlZCwhbykpYnJlYWs7aWYoIShvPT09ITF8fG89PT12b2lkIDAmJmUuc29tZShjPT4hYy5uZWdhdGVkKXx8ciYmZC5zb21lKChjLHApPT4hYyYmIWVbcF0ubmVnYXRlZCkpJiYocy5wdXNoKG4pLGkpKWJyZWFrfXJldHVybiBzfX0pO3ZhciBQRz1iKCgpPT57RUcoKX0pO3ZhciBhcz17fTtHZShhcyx7U21hcnRNYXRjaDooKT0+UGt9KTt2YXIgUGssSWs9YigoKT0+e1BHKCk7UGs9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy53aWxkY2FyZD1lfW1hdGNoKGUpe3JldHVybiBfYy5pc01hdGNoKGUsdGhpcy53aWxkY2FyZCl9fX0pO3ZhciBBYz17fTtHZShBYyx7Q3JvbjooKT0+QkcsQ3JvbkRhdGU6KCk9PksxLENyb25QYXR0ZXJuOigpPT55NyxzY2hlZHVsZWRKb2JzOigpPT5QNH0pO2Z1bmN0aW9uIFRjKHQpe3JldHVybiBEYXRlLlVUQyh0LnksdC5tLTEsdC5kLHQuaCx0LmksdC5zKX1mdW5jdGlvbiBOayh0LGUpe3JldHVybiB0Lnk9PT1lLnkmJnQubT09PWUubSYmdC5kPT09ZS5kJiZ0Lmg9PT1lLmgmJnQuaT09PWUuaSYmdC5zPT09ZS5zfWZ1bmN0aW9uIE9TdCh0LGUpe2xldCBhPW5ldyBEYXRlKERhdGUucGFyc2UodCkpO2lmKGlzTmFOKGEpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBJU084NjAxIHBhc3NlZCB0byB0aW1lem9uZSBwYXJzZXIuIik7bGV0IGk9dC5zdWJzdHJpbmcoOSk7cmV0dXJuIGkuaW5jbHVkZXMoIloiKXx8aS5pbmNsdWRlcygiKyIpfHxpLmluY2x1ZGVzKCItIik/RmsoYS5nZXRVVENGdWxsWWVhcigpLGEuZ2V0VVRDTW9udGgoKSsxLGEuZ2V0VVRDRGF0ZSgpLGEuZ2V0VVRDSG91cnMoKSxhLmdldFVUQ01pbnV0ZXMoKSxhLmdldFVUQ1NlY29uZHMoKSwiRXRjL1VUQyIpOkZrKGEuZ2V0RnVsbFllYXIoKSxhLmdldE1vbnRoKCkrMSxhLmdldERhdGUoKSxhLmdldEhvdXJzKCksYS5nZXRNaW51dGVzKCksYS5nZXRTZWNvbmRzKCksZSl9ZnVuY3Rpb24gSUcodCxlLGEpe3JldHVybiBORyhPU3QodCxlKSxhKX1mdW5jdGlvbiBORyh0LGUpe2xldCBhPW5ldyBEYXRlKFRjKHQpKSxpPUxjKGEsdC50eikscj1UYyh0KSxzPVRjKGkpLG49ci1zLG89bmV3IERhdGUoYS5nZXRUaW1lKCkrbiksZD1MYyhvLHQudHopO2lmKE5rKGQsdCkpe2xldCBsPW5ldyBEYXRlKG8uZ2V0VGltZSgpLTM2ZTUpLGY9TGMobCx0LnR6KTtyZXR1cm4gTmsoZix0KT9sOm99bGV0IGM9bmV3IERhdGUoby5nZXRUaW1lKCkrVGModCktVGMoZCkpLHA9TGMoYyx0LnR6KTtpZihOayhwLHQpKXJldHVybiBjO2lmKGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIG8uZ2V0VGltZSgpPmMuZ2V0VGltZSgpP286Y31mdW5jdGlvbiBMYyh0LGUpe2xldCBhLGk7dHJ5e2E9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmU6ZSx5ZWFyOiJudW1lcmljIixtb250aDoibnVtZXJpYyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsaG91cjEyOiExfSksaT1hLmZvcm1hdFRvUGFydHModCl9Y2F0Y2gocyl7bGV0IG49cyBpbnN0YW5jZW9mIEVycm9yP3MubWVzc2FnZTpTdHJpbmcocyk7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYHRvVFo6IEludmFsaWQgdGltZXpvbmUgJyR7ZX0nIG9yIGRhdGUuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgSUFOQSB0aW1lem9uZSAoZS5nLiwgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL1N0b2NraG9sbScpLiBPcmlnaW5hbCBlcnJvcjogJHtufWApfWxldCByPXt5ZWFyOjAsbW9udGg6MCxkYXk6MCxob3VyOjAsbWludXRlOjAsc2Vjb25kOjB9O2ZvcihsZXQgcyBvZiBpKShzLnR5cGU9PT0ieWVhciJ8fHMudHlwZT09PSJtb250aCJ8fHMudHlwZT09PSJkYXkifHxzLnR5cGU9PT0iaG91ciJ8fHMudHlwZT09PSJtaW51dGUifHxzLnR5cGU9PT0ic2Vjb25kIikmJihyW3MudHlwZV09cGFyc2VJbnQocy52YWx1ZSwxMCkpO2lmKGlzTmFOKHIueWVhcil8fGlzTmFOKHIubW9udGgpfHxpc05hTihyLmRheSl8fGlzTmFOKHIuaG91cil8fGlzTmFOKHIubWludXRlKXx8aXNOYU4oci5zZWNvbmQpKXRocm93IG5ldyBFcnJvcihgdG9UWjogRmFpbGVkIHRvIHBhcnNlIGFsbCBkYXRlIGNvbXBvbmVudHMgZnJvbSB0aW1lem9uZSAnJHtlfScuIFRoaXMgbWF5IGluZGljYXRlIGFuIGludmFsaWQgZGF0ZSBvciB0aW1lem9uZSBjb25maWd1cmF0aW9uLiBQYXJzZWQgY29tcG9uZW50czogJHtKU09OLnN0cmluZ2lmeShyKX1gKTtyZXR1cm4gci5ob3VyPT09MjQmJihyLmhvdXI9MCkse3k6ci55ZWFyLG06ci5tb250aCxkOnIuZGF5LGg6ci5ob3VyLGk6ci5taW51dGUsczpyLnNlY29uZCx0ejplfX1mdW5jdGlvbiBGayh0LGUsYSxpLHIscyxuKXtyZXR1cm57eTp0LG06ZSxkOmEsaDppLGk6cixzLHR6Om59fWZ1bmN0aW9uIFJTdCh0KXtpZih0PT09dm9pZCAwJiYodD17fSksZGVsZXRlIHQubmFtZSx0LmxlZ2FjeU1vZGUhPT12b2lkIDAmJnQuZG9tQW5kRG93PT09dm9pZCAwP3QuZG9tQW5kRG93PSF0LmxlZ2FjeU1vZGU6dC5kb21BbmREb3c9PT12b2lkIDAmJih0LmRvbUFuZERvdz0hMSksdC5sZWdhY3lNb2RlPSF0LmRvbUFuZERvdyx0LnBhdXNlZD10LnBhdXNlZD09PXZvaWQgMD8hMTp0LnBhdXNlZCx0Lm1heFJ1bnM9dC5tYXhSdW5zPT09dm9pZCAwPzEvMDp0Lm1heFJ1bnMsdC5jYXRjaD10LmNhdGNoPT09dm9pZCAwPyExOnQuY2F0Y2gsdC5pbnRlcnZhbD10LmludGVydmFsPT09dm9pZCAwPzA6cGFyc2VJbnQodC5pbnRlcnZhbC50b1N0cmluZygpLDEwKSx0LnV0Y09mZnNldD10LnV0Y09mZnNldD09PXZvaWQgMD92b2lkIDA6cGFyc2VJbnQodC51dGNPZmZzZXQudG9TdHJpbmcoKSwxMCksdC5kYXlPZmZzZXQ9dC5kYXlPZmZzZXQ9PT12b2lkIDA/MDpwYXJzZUludCh0LmRheU9mZnNldC50b1N0cmluZygpLDEwKSx0LnVucmVmPXQudW5yZWY9PT12b2lkIDA/ITE6dC51bnJlZix0Lm1vZGU9dC5tb2RlPT09dm9pZCAwPyJhdXRvIjp0Lm1vZGUsdC5hbHRlcm5hdGl2ZVdlZWtkYXlzPXQuYWx0ZXJuYXRpdmVXZWVrZGF5cz09PXZvaWQgMD8hMTp0LmFsdGVybmF0aXZlV2Vla2RheXMsdC5zbG9wcHlSYW5nZXM9dC5zbG9wcHlSYW5nZXM9PT12b2lkIDA/ITE6dC5zbG9wcHlSYW5nZXMsIVsiYXV0byIsIjUtcGFydCIsIjYtcGFydCIsIjctcGFydCIsIjUtb3ItNi1wYXJ0cyIsIjYtb3ItNy1wYXJ0cyJdLmluY2x1ZGVzKHQubW9kZSkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogbW9kZSBtdXN0IGJlIG9uZSBvZiAnYXV0bycsICc1LXBhcnQnLCAnNi1wYXJ0JywgJzctcGFydCcsICc1LW9yLTYtcGFydHMnLCBvciAnNi1vci03LXBhcnRzJy4iKTtpZih0LnN0YXJ0QXQmJih0LnN0YXJ0QXQ9bmV3IEsxKHQuc3RhcnRBdCx0LnRpbWV6b25lKSksdC5zdG9wQXQmJih0LnN0b3BBdD1uZXcgSzEodC5zdG9wQXQsdC50aW1lem9uZSkpLHQuaW50ZXJ2YWwhPT1udWxsKXtpZihpc05hTih0LmludGVydmFsKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBTdXBwbGllZCB2YWx1ZSBmb3IgaW50ZXJ2YWwgaXMgbm90IGEgbnVtYmVyIik7aWYodC5pbnRlcnZhbDwwKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBjYW4gbm90IGJlIG5lZ2F0aXZlIil9aWYodC51dGNPZmZzZXQhPT12b2lkIDApe2lmKGlzTmFOKHQudXRjT2Zmc2V0KSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCBmb3IgdXRjT2Zmc2V0LCBzaG91bGQgYmUgbnVtYmVyIHJlcHJlc2VudGluZyBtaW51dGVzIG9mZnNldCBmcm9tIFVUQy4iKTtpZih0LnV0Y09mZnNldDwtODcwfHx0LnV0Y09mZnNldD44NzApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogdXRjT2Zmc2V0IG91dCBvZiBib3VuZHMuIik7aWYodC51dGNPZmZzZXQhPT12b2lkIDAmJnQudGltZXpvbmUpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogQ29tYmluaW5nICd1dGNPZmZzZXQnIHdpdGggJ3RpbWV6b25lJyBpcyBub3QgYWxsb3dlZC4iKX1pZih0LnVucmVmIT09ITAmJnQudW5yZWYhPT0hMSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBVbnJlZiBzaG91bGQgYmUgZWl0aGVyIHRydWUsIGZhbHNlIG9yIHVuZGVmaW5lZChmYWxzZSkuIik7aWYodC5kYXlPZmZzZXQhPT12b2lkIDAmJnQuZGF5T2Zmc2V0IT09MCYmaXNOYU4odC5kYXlPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciBkYXlPZmZzZXQsIHNob3VsZCBiZSBhIG51bWJlciByZXByZXNlbnRpbmcgZGF5cyB0byBvZmZzZXQuIik7cmV0dXJuIHR9ZnVuY3Rpb24gJGModCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ8fHR5cGVvZiB0PT0iZnVuY3Rpb24ifHx0IGluc3RhbmNlb2YgRnVuY3Rpb259ZnVuY3Rpb24gQlN0KHQpe3JldHVybiAkYyh0KX1mdW5jdGlvbiBIU3QodCl7dHlwZW9mIERlbm88InUiJiZ0eXBlb2YgRGVuby51bnJlZlRpbWVyPCJ1Ij9EZW5vLnVucmVmVGltZXIodCk6dCYmdHlwZW9mIHQudW5yZWY8InUiJiZ0LnVucmVmKCl9dmFyIEZHLHk3LE9rLGcxLEsxLE9HLFA0LEJHLEhHPWIoKCk9PntGRz1bMSwyLDQsOCwxNl0seTc9Y2xhc3N7cGF0dGVybjt0aW1lem9uZTttb2RlO2FsdGVybmF0aXZlV2Vla2RheXM7c2xvcHB5UmFuZ2VzO3NlY29uZDttaW51dGU7aG91cjtkYXk7bW9udGg7ZGF5T2ZXZWVrO3llYXI7bGFzdERheU9mTW9udGg7bGFzdFdlZWtkYXk7bmVhcmVzdFdlZWtkYXlzO3N0YXJET007c3RhckRPVztzdGFyWWVhcjt1c2VBbmRMb2dpYztjb25zdHJ1Y3Rvcih0LGUsYSl7dGhpcy5wYXR0ZXJuPXQsdGhpcy50aW1lem9uZT1lLHRoaXMubW9kZT1hPy5tb2RlPz8iYXV0byIsdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPWE/LmFsdGVybmF0aXZlV2Vla2RheXM/PyExLHRoaXMuc2xvcHB5UmFuZ2VzPWE/LnNsb3BweVJhbmdlcz8/ITEsdGhpcy5zZWNvbmQ9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5taW51dGU9QXJyYXkoNjApLmZpbGwoMCksdGhpcy5ob3VyPUFycmF5KDI0KS5maWxsKDApLHRoaXMuZGF5PUFycmF5KDMxKS5maWxsKDApLHRoaXMubW9udGg9QXJyYXkoMTIpLmZpbGwoMCksdGhpcy5kYXlPZldlZWs9QXJyYXkoNykuZmlsbCgwKSx0aGlzLnllYXI9QXJyYXkoMWU0KS5maWxsKDApLHRoaXMubGFzdERheU9mTW9udGg9ITEsdGhpcy5sYXN0V2Vla2RheT0hMSx0aGlzLm5lYXJlc3RXZWVrZGF5cz1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLnN0YXJET009ITEsdGhpcy5zdGFyRE9XPSExLHRoaXMuc3RhclllYXI9ITEsdGhpcy51c2VBbmRMb2dpYz0hMSx0aGlzLnBhcnNlKCl9cGFyc2UoKXtpZighKHR5cGVvZiB0aGlzLnBhdHRlcm49PSJzdHJpbmcifHx0aGlzLnBhdHRlcm4gaW5zdGFuY2VvZiBTdHJpbmcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBQYXR0ZXJuIGhhcyB0byBiZSBvZiB0eXBlIHN0cmluZy4iKTt0aGlzLnBhdHRlcm4uaW5kZXhPZigiQCIpPj0wJiYodGhpcy5wYXR0ZXJuPXRoaXMuaGFuZGxlTmlja25hbWVzKHRoaXMucGF0dGVybikudHJpbSgpKTtsZXQgdD10aGlzLnBhdHRlcm4ubWF0Y2goL1xTKy9nKXx8WyIiXSxlPXQubGVuZ3RoO2lmKHQubGVuZ3RoPDV8fHQubGVuZ3RoPjcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGludmFsaWQgY29uZmlndXJhdGlvbiBmb3JtYXQgKCciK3RoaXMucGF0dGVybisiJyksIGV4YWN0bHkgZml2ZSwgc2l4LCBvciBzZXZlbiBzcGFjZSBzZXBhcmF0ZWQgcGFydHMgYXJlIHJlcXVpcmVkLiIpO2lmKHRoaXMubW9kZSE9PSJhdXRvIil7bGV0IGk7c3dpdGNoKHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmk9NTticmVhaztjYXNlIjYtcGFydCI6aT02O2JyZWFrO2Nhc2UiNy1wYXJ0IjppPTc7YnJlYWs7Y2FzZSI1LW9yLTYtcGFydHMiOmk9WzUsNl07YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmk9WzYsN107YnJlYWs7ZGVmYXVsdDppPTB9aWYoIShBcnJheS5pc0FycmF5KGkpP2kuaW5jbHVkZXMoZSk6ZT09PWkpKXtsZXQgcj1BcnJheS5pc0FycmF5KGkpP2kuam9pbigiIG9yICIpOmkudG9TdHJpbmcoKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uUGF0dGVybjogbW9kZSAnJHt0aGlzLm1vZGV9JyByZXF1aXJlcyBleGFjdGx5ICR7cn0gcGFydHMsIGJ1dCBwYXR0ZXJuICcke3RoaXMucGF0dGVybn0nIGhhcyAke2V9IHBhcnRzLmApfX1pZih0Lmxlbmd0aD09PTUmJnQudW5zaGlmdCgiMCIpLHQubGVuZ3RoPT09NiYmdC5wdXNoKCIqIiksdFszXS50b1VwcGVyQ2FzZSgpPT09IkxXIj8odGhpcy5sYXN0V2Vla2RheT0hMCx0WzNdPSIiKTp0WzNdLnRvVXBwZXJDYXNlKCkuaW5kZXhPZigiTCIpPj0wJiYodFszXT10WzNdLnJlcGxhY2UoL0wvZ2ksIiIpLHRoaXMubGFzdERheU9mTW9udGg9ITApLHRbM109PSIqIiYmKHRoaXMuc3RhckRPTT0hMCksdFs2XT09IioiJiYodGhpcy5zdGFyWWVhcj0hMCksdFs0XS5sZW5ndGg+PTMmJih0WzRdPXRoaXMucmVwbGFjZUFscGhhTW9udGhzKHRbNF0pKSx0WzVdLmxlbmd0aD49MyYmKHRbNV09dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzP3RoaXMucmVwbGFjZUFscGhhRGF5c1F1YXJ0eih0WzVdKTp0aGlzLnJlcGxhY2VBbHBoYURheXModFs1XSkpLHRbNV0uc3RhcnRzV2l0aCgiKyIpJiYodGhpcy51c2VBbmRMb2dpYz0hMCx0WzVdPXRbNV0uc3Vic3RyaW5nKDEpLHRbNV09PT0iIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IERheS1vZi13ZWVrIGZpZWxkIGNhbm5vdCBiZSBlbXB0eSBhZnRlciAnKycgbW9kaWZpZXIuIik7c3dpdGNoKHRbNV09PSIqIiYmKHRoaXMuc3RhckRPVz0hMCksdGhpcy5wYXR0ZXJuLmluZGV4T2YoIj8iKT49MCYmKHRbMF09dFswXS5yZXBsYWNlKC9cPy9nLCIqIiksdFsxXT10WzFdLnJlcGxhY2UoL1w/L2csIioiKSx0WzJdPXRbMl0ucmVwbGFjZSgvXD8vZywiKiIpLHRbM109dFszXS5yZXBsYWNlKC9cPy9nLCIqIiksdFs0XT10WzRdLnJlcGxhY2UoL1w/L2csIioiKSx0WzVdPXRbNV0ucmVwbGFjZSgvXD8vZywiKiIpLHRbNl0mJih0WzZdPXRbNl0ucmVwbGFjZSgvXD8vZywiKiIpKSksdGhpcy5tb2RlKXtjYXNlIjUtcGFydCI6dFswXT0iMCIsdFs2XT0iKiI7YnJlYWs7Y2FzZSI2LXBhcnQiOnRbNl09IioiO2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjp0WzZdPSIqIjticmVhaztjYXNlIjYtb3ItNy1wYXJ0cyI6YnJlYWs7Y2FzZSI3LXBhcnQiOmNhc2UiYXV0byI6YnJlYWt9dGhpcy50aHJvd0F0SWxsZWdhbENoYXJhY3RlcnModCksdGhpcy5wYXJ0VG9BcnJheSgic2Vjb25kIix0WzBdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgibWludXRlIix0WzFdLDAsMSksdGhpcy5wYXJ0VG9BcnJheSgiaG91ciIsdFsyXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImRheSIsdFszXSwtMSwxKSx0aGlzLnBhcnRUb0FycmF5KCJtb250aCIsdFs0XSwtMSwxKTtsZXQgYT10aGlzLmFsdGVybmF0aXZlV2Vla2RheXM/LTE6MDt0aGlzLnBhcnRUb0FycmF5KCJkYXlPZldlZWsiLHRbNV0sYSw2MyksdGhpcy5wYXJ0VG9BcnJheSgieWVhciIsdFs2XSwwLDEpLCF0aGlzLmFsdGVybmF0aXZlV2Vla2RheXMmJnRoaXMuZGF5T2ZXZWVrWzddJiYodGhpcy5kYXlPZldlZWtbMF09dGhpcy5kYXlPZldlZWtbN10pfXBhcnRUb0FycmF5KHQsZSxhLGkpe2xldCByPXRoaXNbdF0scz10PT09ImRheSImJnRoaXMubGFzdERheU9mTW9udGgsbj10PT09ImRheSImJnRoaXMubGFzdFdlZWtkYXk7aWYoZT09PSIiJiYhcyYmIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIit0KyIgKCIrZSsiKSBpcyBlbXB0eSwgY2hlY2sgZm9yIHRyYWlsaW5nIHNwYWNlcy4iKTtpZihlPT09IioiKXJldHVybiByLmZpbGwoaSk7bGV0IG89ZS5zcGxpdCgiLCIpO2lmKG8ubGVuZ3RoPjEpZm9yKGxldCBkPTA7ZDxvLmxlbmd0aDtkKyspdGhpcy5wYXJ0VG9BcnJheSh0LG9bZF0sYSxpKTtlbHNlIGUuaW5kZXhPZigiLSIpIT09LTEmJmUuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVSYW5nZVdpdGhTdGVwcGluZyhlLHQsYSxpKTplLmluZGV4T2YoIi0iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2UoZSx0LGEsaSk6ZS5pbmRleE9mKCIvIikhPT0tMT90aGlzLmhhbmRsZVN0ZXBwaW5nKGUsdCxhLGkpOmUhPT0iIiYmdGhpcy5oYW5kbGVOdW1iZXIoZSx0LGEsaSl9dGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKHQpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKChlPT09Mz8vW14vKjAtOSxcLVd3TGxdKy86ZT09PTU/L1teLyowLTksXC0jTGxdKy86L1teLyowLTksXC1dKy8pLnRlc3QodFtlXSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IGNvbmZpZ3VyYXRpb24gZW50cnkgIitlKyIgKCIrdFtlXSsiKSBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcnMuIil9aGFuZGxlTnVtYmVyKHQsZSxhLGkpe2xldCByPXRoaXMuZXh0cmFjdE50aCh0LGUpLHM9dC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIik7aWYoZSE9PSJkYXkiJiZzKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBOZWFyZXN0IHdlZWtkYXkgbW9kaWZpZXIgKFcpIG9ubHkgYWxsb3dlZCBpbiBkYXktb2YtbW9udGguIik7cyYmKGU9Im5lYXJlc3RXZWVrZGF5cyIpO2xldCBuPXBhcnNlSW50KHJbMF0sMTApK2E7aWYoaXNOYU4obikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46ICIrZSsiIGlzIG5vdCBhIG51bWJlcjogJyIrdCsiJyIpO3RoaXMuc2V0UGFydChlLG4sclsxXXx8aSl9c2V0UGFydCh0LGUsYSl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHBhcnQgc3BlY2lmaWVkOiAiK3QpO2lmKHQ9PT0iZGF5T2ZXZWVrIil7aWYoZT09PTcmJihlPTApLGU8MHx8ZT42KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgZGF5T2ZXZWVrOiAiK2UpO3RoaXMuc2V0TnRoV2Vla2RheU9mTW9udGgoZSxhKTtyZXR1cm59aWYodD09PSJzZWNvbmQifHx0PT09Im1pbnV0ZSIpe2lmKGU8MHx8ZT49NjApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKX1lbHNlIGlmKHQ9PT0iaG91ciIpe2lmKGU8MHx8ZT49MjQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK3QrIjogIitlKX1lbHNlIGlmKHQ9PT0iZGF5Inx8dD09PSJuZWFyZXN0V2Vla2RheXMiKXtpZihlPDB8fGU+PTMxKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIit0KyI6ICIrZSl9ZWxzZSBpZih0PT09Im1vbnRoIil7aWYoZTwwfHxlPj0xMil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UpfWVsc2UgaWYodD09PSJ5ZWFyIiYmKGU8MXx8ZT49MWU0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrdCsiOiAiK2UrIiAoc3VwcG9ydGVkIHJhbmdlOiAxLTk5OTkpIik7dGhpc1t0XVtlXT1hfXZhbGlkYXRlTm90TmFOKHQsZSl7aWYoaXNOYU4odCkpdGhyb3cgbmV3IFR5cGVFcnJvcihlKX12YWxpZGF0ZVJhbmdlKHQsZSxhLGkscil7aWYodD5lKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBGcm9tIHZhbHVlIGlzIGxhcmdlciB0aGFuIHRvIHZhbHVlOiAnIityKyInIik7aWYoYSE9PXZvaWQgMCl7aWYoYT09PTApdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogMCIpO2lmKGE+dGhpc1tpXS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHMgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBtYXhpbXVtIHZhbHVlIG9mIHBhcnQgKCIrdGhpc1tpXS5sZW5ndGgrIikiKX19aGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcodCxlLGEsaSl7aWYodC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiByYW5nZXMgd2l0aCBzdGVwcGluZy4iKTtsZXQgcj10aGlzLmV4dHJhY3ROdGgodCxlKSxzPXJbMF0ubWF0Y2goL14oXGQrKS0oXGQrKVwvKFxkKykkLyk7aWYocz09PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZSB3aXRoIHN0ZXBwaW5nOiAnIit0KyInIik7bGV0WyxuLG8sZF09cyxjPXBhcnNlSW50KG4sMTApK2EscD1wYXJzZUludChvLDEwKSthLGw9cGFyc2VJbnQoZCwxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihjLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIGxvd2VyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTihwLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHVwcGVyIHJhbmdlIChOYU4pIiksdGhpcy52YWxpZGF0ZU5vdE5hTihsLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShjLHAsbCxlLHQpO2ZvcihsZXQgZj1jO2Y8PXA7Zis9bCl0aGlzLnNldFBhcnQoZSxmLHJbMV18fGkpfWV4dHJhY3ROdGgodCxlKXtsZXQgYT10LGk7aWYoYS5pbmNsdWRlcygiIyIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogbnRoICgjKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQiKTtpPWEuc3BsaXQoIiMiKVsxXSxhPWEuc3BsaXQoIiMiKVswXX1lbHNlIGlmKGEudG9VcHBlckNhc2UoKS5lbmRzV2l0aCgiTCIpKXtpZihlIT09ImRheU9mV2VlayIpdGhyb3cgbmV3IEVycm9yKCJDcm9uUGF0dGVybjogTCBtb2RpZmllciBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLXdlZWsgZmllbGQgKHVzZSBMIGFsb25lIGZvciBkYXktb2YtbW9udGgpIik7aT0iTCIsYT1hLnNsaWNlKDAsLTEpfXJldHVyblthLGldfWhhbmRsZVJhbmdlKHQsZSxhLGkpe2lmKHQudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gYSByYW5nZS4iKTtsZXQgcj10aGlzLmV4dHJhY3ROdGgodCxlKSxzPXJbMF0uc3BsaXQoIi0iKTtpZihzLmxlbmd0aCE9PTIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCByYW5nZTogJyIrdCsiJyIpO2xldCBuPXBhcnNlSW50KHNbMF0sMTApK2Esbz1wYXJzZUludChzWzFdLDEwKSthO3RoaXMudmFsaWRhdGVOb3ROYU4obiwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4obywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZShuLG8sdm9pZCAwLGUsdCk7Zm9yKGxldCBkPW47ZDw9bztkKyspdGhpcy5zZXRQYXJ0KGUsZCxyWzFdfHxpKX1oYW5kbGVTdGVwcGluZyh0LGUsYSxpKXtpZih0LnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIHBhcnRzIHdpdGggc3RlcHBpbmcuIik7bGV0IHI9dGhpcy5leHRyYWN0TnRoKHQsZSkscz1yWzBdLnNwbGl0KCIvIik7aWYocy5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6ICciK3QrIiciKTtpZih0aGlzLnNsb3BweVJhbmdlcylzWzBdPT09IiImJihzWzBdPSIqIik7ZWxzZXtpZihzWzBdPT09IiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBtaXNzaW5nIHByZWZpeCAoJyIrdCsiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpO2lmKHNbMF0hPT0iKiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgc3RlcHBpbmcgd2l0aCBudW1lcmljIHByZWZpeCAoJyIrdCsiJykgaXMgbm90IGFsbG93ZWQuIFVzZSB3aWxkY2FyZCAoKi9zdGVwKSBvciByYW5nZSAobWluLW1heC9zdGVwKSBpbnN0ZWFkLiIpfWxldCBuPTA7c1swXSE9PSIqIiYmKG49cGFyc2VJbnQoc1swXSwxMCkrYSk7bGV0IG89cGFyc2VJbnQoc1sxXSwxMCk7dGhpcy52YWxpZGF0ZU5vdE5hTihvLCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAoTmFOKSIpLHRoaXMudmFsaWRhdGVSYW5nZSgwLHRoaXNbZV0ubGVuZ3RoLTEsbyxlLHQpO2ZvcihsZXQgZD1uO2Q8dGhpc1tlXS5sZW5ndGg7ZCs9byl0aGlzLnNldFBhcnQoZSxkLHJbMV18fGkpfXJlcGxhY2VBbHBoYURheXModCl7cmV0dXJuIHQucmVwbGFjZSgvLXN1bi9naSwiLTciKS5yZXBsYWNlKC9zdW4vZ2ksIjAiKS5yZXBsYWNlKC9tb24vZ2ksIjEiKS5yZXBsYWNlKC90dWUvZ2ksIjIiKS5yZXBsYWNlKC93ZWQvZ2ksIjMiKS5yZXBsYWNlKC90aHUvZ2ksIjQiKS5yZXBsYWNlKC9mcmkvZ2ksIjUiKS5yZXBsYWNlKC9zYXQvZ2ksIjYiKX1yZXBsYWNlQWxwaGFEYXlzUXVhcnR6KHQpe3JldHVybiB0LnJlcGxhY2UoL3N1bi9naSwiMSIpLnJlcGxhY2UoL21vbi9naSwiMiIpLnJlcGxhY2UoL3R1ZS9naSwiMyIpLnJlcGxhY2UoL3dlZC9naSwiNCIpLnJlcGxhY2UoL3RodS9naSwiNSIpLnJlcGxhY2UoL2ZyaS9naSwiNiIpLnJlcGxhY2UoL3NhdC9naSwiNyIpfXJlcGxhY2VBbHBoYU1vbnRocyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9qYW4vZ2ksIjEiKS5yZXBsYWNlKC9mZWIvZ2ksIjIiKS5yZXBsYWNlKC9tYXIvZ2ksIjMiKS5yZXBsYWNlKC9hcHIvZ2ksIjQiKS5yZXBsYWNlKC9tYXkvZ2ksIjUiKS5yZXBsYWNlKC9qdW4vZ2ksIjYiKS5yZXBsYWNlKC9qdWwvZ2ksIjciKS5yZXBsYWNlKC9hdWcvZ2ksIjgiKS5yZXBsYWNlKC9zZXAvZ2ksIjkiKS5yZXBsYWNlKC9vY3QvZ2ksIjEwIikucmVwbGFjZSgvbm92L2dpLCIxMSIpLnJlcGxhY2UoL2RlYy9naSwiMTIiKX1oYW5kbGVOaWNrbmFtZXModCl7bGV0IGU9dC50cmltKCkudG9Mb3dlckNhc2UoKTtpZihlPT09IkB5ZWFybHkifHxlPT09IkBhbm51YWxseSIpcmV0dXJuIjAgMCAxIDEgKiI7aWYoZT09PSJAbW9udGhseSIpcmV0dXJuIjAgMCAxICogKiI7aWYoZT09PSJAd2Vla2x5IilyZXR1cm4iMCAwICogKiAwIjtpZihlPT09IkBkYWlseSJ8fGU9PT0iQG1pZG5pZ2h0IilyZXR1cm4iMCAwICogKiAqIjtpZihlPT09IkBob3VybHkiKXJldHVybiIwICogKiAqICoiO2lmKGU9PT0iQHJlYm9vdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IEByZWJvb3QgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGFuIGV2ZW50LWJhc2VkIHRyaWdnZXIgdGhhdCByZXF1aXJlcyBzeXN0ZW0gc3RhcnR1cCBkZXRlY3Rpb24uIik7cmV0dXJuIHR9c2V0TnRoV2Vla2RheU9mTW9udGgodCxlKXtpZih0eXBlb2YgZSE9Im51bWJlciImJmUudG9VcHBlckNhc2UoKT09PSJMIil0aGlzLmRheU9mV2Vla1t0XT10aGlzLmRheU9mV2Vla1t0XXwzMjtlbHNlIGlmKGU9PT02Myl0aGlzLmRheU9mV2Vla1t0XT02MztlbHNlIGlmKGU8NiYmZT4wKXRoaXMuZGF5T2ZXZWVrW3RdPXRoaXMuZGF5T2ZXZWVrW3RdfEZHW2UtMV07ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKGBDcm9uUGF0dGVybjogbnRoIHdlZWtkYXkgb3V0IG9mIHJhbmdlLCBzaG91bGQgYmUgMS01IG9yIEwuIFZhbHVlOiAke2V9LCBUeXBlOiAke3R5cGVvZiBlfWApfX0sT2s9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxnMT1bWyJtb250aCIsInllYXIiLDBdLFsiZGF5IiwibW9udGgiLC0xXSxbImhvdXIiLCJkYXkiLDBdLFsibWludXRlIiwiaG91ciIsMF0sWyJzZWNvbmQiLCJtaW51dGUiLDBdXSxLMT1jbGFzcyBSR3t0ejttcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO3llYXI7Y29uc3RydWN0b3IoZSxhKXtpZih0aGlzLnR6PWEsZSYmZSBpbnN0YW5jZW9mIERhdGUpaWYoIWlzTmFOKGUpKXRoaXMuZnJvbURhdGUoZSk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCBkYXRlIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpO2Vsc2UgaWYoZT09bnVsbCl0aGlzLmZyb21EYXRlKG5ldyBEYXRlKTtlbHNlIGlmKGUmJnR5cGVvZiBlPT0ic3RyaW5nIil0aGlzLmZyb21TdHJpbmcoZSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgUkcpdGhpcy5mcm9tQ3JvbkRhdGUoZSk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCB0eXBlICgiK3R5cGVvZiBlKyIpIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpfWdldExhc3REYXlPZk1vbnRoKGUsYSl7cmV0dXJuIGEhPT0xP09rW2FdOm5ldyBEYXRlKERhdGUuVVRDKGUsYSsxLDApKS5nZXRVVENEYXRlKCl9Z2V0TGFzdFdlZWtkYXkoZSxhKXtsZXQgaT10aGlzLmdldExhc3REYXlPZk1vbnRoKGUsYSkscj1uZXcgRGF0ZShEYXRlLlVUQyhlLGEsaSkpLmdldFVUQ0RheSgpO3JldHVybiByPT09MD9pLTI6cj09PTY/aS0xOml9Z2V0TmVhcmVzdFdlZWtkYXkoZSxhLGkpe2xldCByPXRoaXMuZ2V0TGFzdERheU9mTW9udGgoZSxhKTtpZihpPnIpcmV0dXJuLTE7bGV0IHM9bmV3IERhdGUoRGF0ZS5VVEMoZSxhLGkpKS5nZXRVVENEYXkoKTtyZXR1cm4gcz09PTA/aT09PXI/aS0yOmkrMTpzPT09Nj9pPT09MT9pKzI6aS0xOml9aXNOdGhXZWVrZGF5T2ZNb250aChlLGEsaSxyKXtsZXQgcz1uZXcgRGF0ZShEYXRlLlVUQyhlLGEsaSkpLmdldFVUQ0RheSgpLG49MDtmb3IobGV0IG89MTtvPD1pO28rKyluZXcgRGF0ZShEYXRlLlVUQyhlLGEsbykpLmdldFVUQ0RheSgpPT09cyYmbisrO2lmKHImNjMmJkZHW24tMV0mcilyZXR1cm4hMDtpZihyJjMyKXtsZXQgbz10aGlzLmdldExhc3REYXlPZk1vbnRoKGUsYSk7Zm9yKGxldCBkPWkrMTtkPD1vO2QrKylpZihuZXcgRGF0ZShEYXRlLlVUQyhlLGEsZCkpLmdldFVUQ0RheSgpPT09cylyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hMX1mcm9tRGF0ZShlKXtpZih0aGlzLnR6IT09dm9pZCAwKWlmKHR5cGVvZiB0aGlzLnR6PT0ibnVtYmVyIil0aGlzLm1zPWUuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ZS5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ZS5nZXRVVENNaW51dGVzKCkrdGhpcy50eix0aGlzLmhvdXI9ZS5nZXRVVENIb3VycygpLHRoaXMuZGF5PWUuZ2V0VVRDRGF0ZSgpLHRoaXMubW9udGg9ZS5nZXRVVENNb250aCgpLHRoaXMueWVhcj1lLmdldFVUQ0Z1bGxZZWFyKCksdGhpcy5hcHBseSgpO2Vsc2UgdHJ5e2xldCBhPUxjKGUsdGhpcy50eik7dGhpcy5tcz1lLmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWEucyx0aGlzLm1pbnV0ZT1hLmksdGhpcy5ob3VyPWEuaCx0aGlzLmRheT1hLmQsdGhpcy5tb250aD1hLm0tMSx0aGlzLnllYXI9YS55fWNhdGNoKGEpe2xldCBpPWEgaW5zdGFuY2VvZiBFcnJvcj9hLm1lc3NhZ2U6U3RyaW5nKGEpO3Rocm93IG5ldyBUeXBlRXJyb3IoYENyb25EYXRlOiBGYWlsZWQgdG8gY29udmVydCBkYXRlIHRvIHRpbWV6b25lICcke3RoaXMudHp9Jy4gVGhpcyBtYXkgaGFwcGVuIHdpdGggaW52YWxpZCB0aW1lem9uZSBuYW1lcyBvciBkYXRlcy4gT3JpZ2luYWwgZXJyb3I6ICR7aX1gKX1lbHNlIHRoaXMubXM9ZS5nZXRNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD1lLmdldFNlY29uZHMoKSx0aGlzLm1pbnV0ZT1lLmdldE1pbnV0ZXMoKSx0aGlzLmhvdXI9ZS5nZXRIb3VycygpLHRoaXMuZGF5PWUuZ2V0RGF0ZSgpLHRoaXMubW9udGg9ZS5nZXRNb250aCgpLHRoaXMueWVhcj1lLmdldEZ1bGxZZWFyKCl9ZnJvbUNyb25EYXRlKGUpe3RoaXMudHo9ZS50eix0aGlzLnllYXI9ZS55ZWFyLHRoaXMubW9udGg9ZS5tb250aCx0aGlzLmRheT1lLmRheSx0aGlzLmhvdXI9ZS5ob3VyLHRoaXMubWludXRlPWUubWludXRlLHRoaXMuc2Vjb25kPWUuc2Vjb25kLHRoaXMubXM9ZS5tc31hcHBseSgpe2lmKHRoaXMubW9udGg+MTF8fHRoaXMubW9udGg8MHx8dGhpcy5kYXk+T2tbdGhpcy5tb250aF18fHRoaXMuZGF5PDF8fHRoaXMuaG91cj41OXx8dGhpcy5taW51dGU+NTl8fHRoaXMuc2Vjb25kPjU5fHx0aGlzLmhvdXI8MHx8dGhpcy5taW51dGU8MHx8dGhpcy5zZWNvbmQ8MCl7bGV0IGU9bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpKTtyZXR1cm4gdGhpcy5tcz1lLmdldFVUQ01pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPWUuZ2V0VVRDU2Vjb25kcygpLHRoaXMubWludXRlPWUuZ2V0VVRDTWludXRlcygpLHRoaXMuaG91cj1lLmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9ZS5nZXRVVENEYXRlKCksdGhpcy5tb250aD1lLmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPWUuZ2V0VVRDRnVsbFllYXIoKSwhMH1lbHNlIHJldHVybiExfWZyb21TdHJpbmcoZSl7aWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXtsZXQgYT1JRyhlKTt0aGlzLm1zPWEuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9YS5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9YS5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPWEuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1hLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPWEuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9YS5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKX1lbHNlIHJldHVybiB0aGlzLmZyb21EYXRlKElHKGUsdGhpcy50eikpfWZpbmROZXh0KGUsYSxpLHIpe3JldHVybiB0aGlzLl9maW5kTWF0Y2goZSxhLGksciwxKX1fZmluZE1hdGNoKGUsYSxpLHIscyl7bGV0IG49dGhpc1thXSxvO2kubGFzdERheU9mTW9udGgmJihvPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpKTtsZXQgZD0haS5zdGFyRE9XJiZhPT0iZGF5Ij9uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCwxLDAsMCwwLDApKS5nZXRVVENEYXkoKTp2b2lkIDAsYz10aGlzW2FdK3IscD1zPT09MT9sPT5sPGlbYV0ubGVuZ3RoOmw9Pmw+PTA7Zm9yKGxldCBsPWM7cChsKTtsKz1zKXtsZXQgZj1pW2FdW2xdO2lmKGE9PT0iZGF5IiYmIWYpe2ZvcihsZXQgZz0wO2c8aS5uZWFyZXN0V2Vla2RheXMubGVuZ3RoO2crKylpZihpLm5lYXJlc3RXZWVrZGF5c1tnXSl7bGV0IHk9dGhpcy5nZXROZWFyZXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCxnLXIpO2lmKHk9PT0tMSljb250aW51ZTtpZih5PT09bC1yKXtmPTE7YnJlYWt9fX1pZihhPT09ImRheSImJmkubGFzdFdlZWtkYXkpe2xldCBnPXRoaXMuZ2V0TGFzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgpO2wtcj09PWcmJihmPTEpfWlmKGE9PT0iZGF5IiYmaS5sYXN0RGF5T2ZNb250aCYmbC1yPT1vJiYoZj0xKSxhPT09ImRheSImJiFpLnN0YXJET1cpe2xldCBnPWkuZGF5T2ZXZWVrWyhkKyhsLXItMSkpJTddO2lmKGcmJmcmNjMpZz10aGlzLmlzTnRoV2Vla2RheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgsbC1yLGcpPzE6MDtlbHNlIGlmKGcpdGhyb3cgbmV3IEVycm9yKGBDcm9uRGF0ZTogSW52YWxpZCB2YWx1ZSBmb3IgZGF5T2ZXZWVrIGVuY291bnRlcmVkLiAke2d9YCk7aS51c2VBbmRMb2dpYz9mPWYmJmc6IWUuZG9tQW5kRG93JiYhaS5zdGFyRE9NP2Y9Znx8ZzpmPWYmJmd9aWYoZilyZXR1cm4gdGhpc1thXT1sLXIsbiE9PXRoaXNbYV0/MjoxfXJldHVybiAzfXJlY3Vyc2UoZSxhLGkpe2lmKGk9PT0wJiYhZS5zdGFyWWVhcil7aWYodGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8ZS55ZWFyLmxlbmd0aCYmZS55ZWFyW3RoaXMueWVhcl09PT0wKXtsZXQgcz0tMTtmb3IobGV0IG49dGhpcy55ZWFyKzE7bjxlLnllYXIubGVuZ3RoJiZuPDFlNDtuKyspaWYoZS55ZWFyW25dPT09MSl7cz1uO2JyZWFrfWlmKHM9PT0tMSlyZXR1cm4gbnVsbDt0aGlzLnllYXI9cyx0aGlzLm1vbnRoPTAsdGhpcy5kYXk9MSx0aGlzLmhvdXI9MCx0aGlzLm1pbnV0ZT0wLHRoaXMuc2Vjb25kPTAsdGhpcy5tcz0wfWlmKHRoaXMueWVhcj49MWU0KXJldHVybiBudWxsfWxldCByPXRoaXMuZmluZE5leHQoYSxnMVtpXVswXSxlLGcxW2ldWzJdKTtpZihyPjEpe2xldCBzPWkrMTtmb3IoO3M8ZzEubGVuZ3RoOyl0aGlzW2cxW3NdWzBdXT0tZzFbc11bMl0scysrO2lmKHI9PT0zKXtpZih0aGlzW2cxW2ldWzFdXSsrLHRoaXNbZzFbaV1bMF1dPS1nMVtpXVsyXSx0aGlzLmFwcGx5KCksaT09PTAmJiFlLnN0YXJZZWFyKXtmb3IoO3RoaXMueWVhcj49MCYmdGhpcy55ZWFyPGUueWVhci5sZW5ndGgmJmUueWVhclt0aGlzLnllYXJdPT09MCYmdGhpcy55ZWFyPDFlNDspdGhpcy55ZWFyKys7aWYodGhpcy55ZWFyPj0xZTR8fHRoaXMueWVhcj49ZS55ZWFyLmxlbmd0aClyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5yZWN1cnNlKGUsYSwwKX1lbHNlIGlmKHRoaXMuYXBwbHkoKSlyZXR1cm4gdGhpcy5yZWN1cnNlKGUsYSxpLTEpfXJldHVybiBpKz0xLGk+PWcxLmxlbmd0aD90aGlzOihlLnN0YXJZZWFyP3RoaXMueWVhcj49M2UzOnRoaXMueWVhcj49MWU0KT9udWxsOnRoaXMucmVjdXJzZShlLGEsaSl9aW5jcmVtZW50KGUsYSxpKXtyZXR1cm4gdGhpcy5zZWNvbmQrPWEuaW50ZXJ2YWwhPT12b2lkIDAmJmEuaW50ZXJ2YWw+MSYmaT9hLmludGVydmFsOjEsdGhpcy5tcz0wLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2UoZSxhLDApfWRlY3JlbWVudChlLGEpe3JldHVybiB0aGlzLnNlY29uZC09YS5pbnRlcnZhbCE9PXZvaWQgMCYmYS5pbnRlcnZhbD4xP2EuaW50ZXJ2YWw6MSx0aGlzLm1zPTAsdGhpcy5hcHBseSgpLHRoaXMucmVjdXJzZUJhY2t3YXJkKGUsYSwwLDApfXJlY3Vyc2VCYWNrd2FyZChlLGEsaSxyPTApe2lmKHI+MWU0KXJldHVybiBudWxsO2lmKGk9PT0wJiYhZS5zdGFyWWVhcil7aWYodGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8ZS55ZWFyLmxlbmd0aCYmZS55ZWFyW3RoaXMueWVhcl09PT0wKXtsZXQgbj0tMTtmb3IobGV0IG89dGhpcy55ZWFyLTE7bz49MDtvLS0paWYoZS55ZWFyW29dPT09MSl7bj1vO2JyZWFrfWlmKG49PT0tMSlyZXR1cm4gbnVsbDt0aGlzLnllYXI9bix0aGlzLm1vbnRoPTExLHRoaXMuZGF5PTMxLHRoaXMuaG91cj0yMyx0aGlzLm1pbnV0ZT01OSx0aGlzLnNlY29uZD01OSx0aGlzLm1zPTB9aWYodGhpcy55ZWFyPDApcmV0dXJuIG51bGx9bGV0IHM9dGhpcy5maW5kUHJldmlvdXMoYSxnMVtpXVswXSxlLGcxW2ldWzJdKTtpZihzPjEpe2xldCBuPWkrMTtmb3IoO248ZzEubGVuZ3RoOyl7bGV0IG89ZzFbbl1bMF0sZD1nMVtuXVsyXSxjPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKG8sZSxkKTt0aGlzW29dPWMsbisrfWlmKHM9PT0zKXtpZih0aGlzW2cxW2ldWzFdXS0tLGk9PT0wKXtsZXQgcD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTt0aGlzLmRheT5wJiYodGhpcy5kYXk9cCl9aWYoaT09PTEpaWYodGhpcy5kYXk8PTApdGhpcy5kYXk9MTtlbHNle2xldCBwPXRoaXMueWVhcixsPXRoaXMubW9udGg7Zm9yKDtsPDA7KWwrPTEyLHAtLTtmb3IoO2w+MTE7KWwtPTEyLHArKztsZXQgZj1sIT09MT9Pa1tsXTpuZXcgRGF0ZShEYXRlLlVUQyhwLGwrMSwwKSkuZ2V0VVRDRGF0ZSgpO3RoaXMuZGF5PmYmJih0aGlzLmRheT1mKX10aGlzLmFwcGx5KCk7bGV0IG89ZzFbaV1bMF0sZD1nMVtpXVsyXSxjPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKG8sZSxkKTtpZihvPT09ImRheSIpe2xldCBwPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO3RoaXNbb109TWF0aC5taW4oYyxwKX1lbHNlIHRoaXNbb109YztpZih0aGlzLmFwcGx5KCksaT09PTApe2xldCBwPWcxWzFdWzJdLGw9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoImRheSIsZSxwKSxmPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpLGc9TWF0aC5taW4obCxmKTtnIT09dGhpcy5kYXkmJih0aGlzLmRheT1nLHRoaXMuaG91cj10aGlzLmdldE1heFBhdHRlcm5WYWx1ZSgiaG91ciIsZSxnMVsyXVsyXSksdGhpcy5taW51dGU9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoIm1pbnV0ZSIsZSxnMVszXVsyXSksdGhpcy5zZWNvbmQ9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoInNlY29uZCIsZSxnMVs0XVsyXSkpfWlmKGk9PT0wJiYhZS5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjxlLnllYXIubGVuZ3RoJiZlLnllYXJbdGhpcy55ZWFyXT09PTA7KXRoaXMueWVhci0tO2lmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfXJldHVybiB0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLGEsMCxyKzEpfWVsc2UgaWYodGhpcy5hcHBseSgpKXJldHVybiB0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLGEsaS0xLHIrMSl9cmV0dXJuIGkrPTEsaT49ZzEubGVuZ3RoP3RoaXM6dGhpcy55ZWFyPDA/bnVsbDp0aGlzLnJlY3Vyc2VCYWNrd2FyZChlLGEsaSxyKzEpfWdldE1heFBhdHRlcm5WYWx1ZShlLGEsaSl7aWYoZT09PSJkYXkiJiZhLmxhc3REYXlPZk1vbnRoKXJldHVybiB0aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtpZihlPT09ImRheSImJiFhLnN0YXJET1cpcmV0dXJuIHRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO2ZvcihsZXQgcj1hW2VdLmxlbmd0aC0xO3I+PTA7ci0tKWlmKGFbZV1bcl0pcmV0dXJuIHItaTtyZXR1cm4gYVtlXS5sZW5ndGgtMS1pfWZpbmRQcmV2aW91cyhlLGEsaSxyKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKGUsYSxpLHIsLTEpfWdldERhdGUoZSl7cmV0dXJuIGV8fHRoaXMudHo9PT12b2lkIDA/bmV3IERhdGUodGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLHRoaXMuc2Vjb25kLHRoaXMubXMpOnR5cGVvZiB0aGlzLnR6PT0ibnVtYmVyIj9uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUtdGhpcy50eix0aGlzLnNlY29uZCx0aGlzLm1zKSk6TkcoRmsodGhpcy55ZWFyLHRoaXMubW9udGgrMSx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy50eiksITEpfWdldFRpbWUoKXtyZXR1cm4gdGhpcy5nZXREYXRlKCExKS5nZXRUaW1lKCl9bWF0Y2goZSxhKXtpZighZS5zdGFyWWVhciYmKHRoaXMueWVhcjwwfHx0aGlzLnllYXI+PWUueWVhci5sZW5ndGh8fGUueWVhclt0aGlzLnllYXJdPT09MCkpcmV0dXJuITE7Zm9yKGxldCBpPTA7aTxnMS5sZW5ndGg7aSsrKXtsZXQgcj1nMVtpXVswXSxzPWcxW2ldWzJdLG49dGhpc1tyXTtpZihuK3M8MHx8bitzPj1lW3JdLmxlbmd0aClyZXR1cm4hMTtsZXQgbz1lW3JdW24rc107aWYocj09PSJkYXkiKXtpZighbyl7Zm9yKGxldCBkPTA7ZDxlLm5lYXJlc3RXZWVrZGF5cy5sZW5ndGg7ZCsrKWlmKGUubmVhcmVzdFdlZWtkYXlzW2RdKXtsZXQgYz10aGlzLmdldE5lYXJlc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoLGQtcyk7aWYoYyE9PS0xJiZjPT09bil7bz0xO2JyZWFrfX19aWYoZS5sYXN0V2Vla2RheSl7bGV0IGQ9dGhpcy5nZXRMYXN0V2Vla2RheSh0aGlzLnllYXIsdGhpcy5tb250aCk7bj09PWQmJihvPTEpfWlmKGUubGFzdERheU9mTW9udGgpe2xldCBkPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgpO249PT1kJiYobz0xKX1pZighZS5zdGFyRE9XKXtsZXQgZD1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCwxLDAsMCwwLDApKS5nZXRVVENEYXkoKSxjPWUuZGF5T2ZXZWVrWyhkKyhuLTEpKSU3XTtjJiZjJjYzJiYoYz10aGlzLmlzTnRoV2Vla2RheU9mTW9udGgodGhpcy55ZWFyLHRoaXMubW9udGgsbixjKT8xOjApLGUudXNlQW5kTG9naWM/bz1vJiZjOiFhLmRvbUFuZERvdyYmIWUuc3RhckRPTT9vPW98fGM6bz1vJiZjfX1pZighbylyZXR1cm4hMX1yZXR1cm4hMH19O09HPTMwKjFlMyxQND1bXSxCRz1jbGFzc3tuYW1lO29wdGlvbnM7X3N0YXRlcztmbjtnZXRUeigpe3JldHVybiB0aGlzLm9wdGlvbnMudGltZXpvbmV8fHRoaXMub3B0aW9ucy51dGNPZmZzZXR9YXBwbHlEYXlPZmZzZXQodCl7aWYodGhpcy5vcHRpb25zLmRheU9mZnNldCE9PXZvaWQgMCYmdGhpcy5vcHRpb25zLmRheU9mZnNldCE9PTApe2xldCBlPXRoaXMub3B0aW9ucy5kYXlPZmZzZXQqMjQqNjAqNjAqMWUzO3JldHVybiBuZXcgRGF0ZSh0LmdldFRpbWUoKStlKX1yZXR1cm4gdH1jb25zdHJ1Y3Rvcih0LGUsYSl7bGV0IGkscjtpZigkYyhlKSlyPWU7ZWxzZSBpZih0eXBlb2YgZT09Im9iamVjdCIpaT1lO2Vsc2UgaWYoZSE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIkNyb246IEludmFsaWQgYXJndW1lbnQgcGFzc2VkIGZvciBvcHRpb25zSW4uIFNob3VsZCBiZSBvbmUgb2YgZnVuY3Rpb24sIG9yIG9iamVjdCAob3B0aW9ucykuIik7aWYoJGMoYSkpcj1hO2Vsc2UgaWYodHlwZW9mIGE9PSJvYmplY3QiKWk9YTtlbHNlIGlmKGEhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3IgZnVuY0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLiIpO2lmKHRoaXMubmFtZT1pPy5uYW1lLHRoaXMub3B0aW9ucz1SU3QoaSksdGhpcy5fc3RhdGVzPXtraWxsOiExLGJsb2NraW5nOiExLHByZXZpb3VzUnVuOnZvaWQgMCxjdXJyZW50UnVuOnZvaWQgMCxvbmNlOnZvaWQgMCxjdXJyZW50VGltZW91dDp2b2lkIDAsbWF4UnVuczppP2kubWF4UnVuczp2b2lkIDAscGF1c2VkOmk/aS5wYXVzZWQ6ITEscGF0dGVybjpuZXcgeTcoIiogKiAqICogKiIsdm9pZCAwLHttb2RlOiJhdXRvIn0pfSx0JiYodCBpbnN0YW5jZW9mIERhdGV8fHR5cGVvZiB0PT0ic3RyaW5nIiYmdC5pbmRleE9mKCI6Iik+MCk/dGhpcy5fc3RhdGVzLm9uY2U9bmV3IEsxKHQsdGhpcy5nZXRUeigpKTp0aGlzLl9zdGF0ZXMucGF0dGVybj1uZXcgeTcodCx0aGlzLm9wdGlvbnMudGltZXpvbmUse21vZGU6dGhpcy5vcHRpb25zLm1vZGUsYWx0ZXJuYXRpdmVXZWVrZGF5czp0aGlzLm9wdGlvbnMuYWx0ZXJuYXRpdmVXZWVrZGF5cyxzbG9wcHlSYW5nZXM6dGhpcy5vcHRpb25zLnNsb3BweVJhbmdlc30pLHRoaXMubmFtZSl7aWYoUDQuZmluZChzPT5zLm5hbWU9PT10aGlzLm5hbWUpKXRocm93IG5ldyBFcnJvcigiQ3JvbjogVHJpZWQgdG8gaW5pdGlhbGl6ZSBuZXcgbmFtZWQgam9iICciK3RoaXMubmFtZSsiJywgYnV0IG5hbWUgYWxyZWFkeSB0YWtlbi4iKTtQNC5wdXNoKHRoaXMpfXJldHVybiByIT09dm9pZCAwJiZCU3QocikmJih0aGlzLmZuPXIsdGhpcy5zY2hlZHVsZSgpKSx0aGlzfW5leHRSdW4odCl7bGV0IGU9dGhpcy5fbmV4dCh0KTtyZXR1cm4gZT90aGlzLmFwcGx5RGF5T2Zmc2V0KGUuZ2V0RGF0ZSghMSkpOm51bGx9bmV4dFJ1bnModCxlKXt0aGlzLl9zdGF0ZXMubWF4UnVucyE9PXZvaWQgMCYmdD50aGlzLl9zdGF0ZXMubWF4UnVucyYmKHQ9dGhpcy5fc3RhdGVzLm1heFJ1bnMpO2xldCBhPWV8fHRoaXMuX3N0YXRlcy5jdXJyZW50UnVufHx2b2lkIDA7cmV0dXJuIHRoaXMuX2VudW1lcmF0ZVJ1bnModCxhLCJuZXh0Iil9cHJldmlvdXNSdW5zKHQsZSl7cmV0dXJuIHRoaXMuX2VudW1lcmF0ZVJ1bnModCxlfHx2b2lkIDAsInByZXZpb3VzIil9X2VudW1lcmF0ZVJ1bnModCxlLGEpe2xldCBpPVtdLHI9ZT9uZXcgSzEoZSx0aGlzLmdldFR6KCkpOm51bGwscz1hPT09Im5leHQiP3RoaXMuX25leHQ6dGhpcy5fcHJldmlvdXM7Zm9yKDt0LS07KXtsZXQgbj1zLmNhbGwodGhpcyxyKTtpZighbilicmVhaztsZXQgbz1uLmdldERhdGUoITEpO2kucHVzaCh0aGlzLmFwcGx5RGF5T2Zmc2V0KG8pKSxyPW59cmV0dXJuIGl9bWF0Y2godCl7aWYodGhpcy5fc3RhdGVzLm9uY2Upe2xldCBhPW5ldyBLMSh0LHRoaXMuZ2V0VHooKSk7YS5tcz0wO2xldCBpPW5ldyBLMSh0aGlzLl9zdGF0ZXMub25jZSx0aGlzLmdldFR6KCkpO3JldHVybiBpLm1zPTAsYS5nZXRUaW1lKCk9PT1pLmdldFRpbWUoKX1sZXQgZT1uZXcgSzEodCx0aGlzLmdldFR6KCkpO3JldHVybiBlLm1zPTAsZS5tYXRjaCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMpfWdldFBhdHRlcm4oKXtpZighdGhpcy5fc3RhdGVzLm9uY2UpcmV0dXJuIHRoaXMuX3N0YXRlcy5wYXR0ZXJuP3RoaXMuX3N0YXRlcy5wYXR0ZXJuLnBhdHRlcm46dm9pZCAwfWdldE9uY2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0RGF0ZSgpOm51bGx9aXNSdW5uaW5nKCl7bGV0IHQ9dGhpcy5uZXh0UnVuKHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuKSxlPSF0aGlzLl9zdGF0ZXMucGF1c2VkLGE9dGhpcy5mbiE9PXZvaWQgMCxpPSF0aGlzLl9zdGF0ZXMua2lsbDtyZXR1cm4gZSYmYSYmaSYmdCE9PW51bGx9aXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5raWxsfWlzQnVzeSgpe3JldHVybiB0aGlzLl9zdGF0ZXMuYmxvY2tpbmd9Y3VycmVudFJ1bigpe3JldHVybiB0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bj90aGlzLl9zdGF0ZXMuY3VycmVudFJ1bi5nZXREYXRlKCk6bnVsbH1wcmV2aW91c1J1bigpe3JldHVybiB0aGlzLl9zdGF0ZXMucHJldmlvdXNSdW4/dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuLmdldERhdGUoKTpudWxsfW1zVG9OZXh0KHQpe2xldCBlPXRoaXMuX25leHQodCk7cmV0dXJuIGU/dCBpbnN0YW5jZW9mIEsxfHx0IGluc3RhbmNlb2YgRGF0ZT9lLmdldFRpbWUoKS10LmdldFRpbWUoKTplLmdldFRpbWUoKS1uZXcgSzEodCkuZ2V0VGltZSgpOm51bGx9c3RvcCgpe3RoaXMuX3N0YXRlcy5raWxsPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCk7bGV0IHQ9UDQuaW5kZXhPZih0aGlzKTt0Pj0wJiZQNC5zcGxpY2UodCwxKX1wYXVzZSgpe3JldHVybiB0aGlzLl9zdGF0ZXMucGF1c2VkPSEwLCF0aGlzLl9zdGF0ZXMua2lsbH1yZXN1bWUoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMSwhdGhpcy5fc3RhdGVzLmtpbGx9c2NoZWR1bGUodCl7aWYodCYmdGhpcy5mbil0aHJvdyBuZXcgRXJyb3IoIkNyb246IEl0IGlzIG5vdCBhbGxvd2VkIHRvIHNjaGVkdWxlIHR3byBmdW5jdGlvbnMgdXNpbmcgdGhlIHNhbWUgQ3JvbmVyIGluc3RhbmNlLiIpO3QmJih0aGlzLmZuPXQpO2xldCBlPXRoaXMubXNUb05leHQoKSxhPXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bik7cmV0dXJuIGU9PW51bGx8fGlzTmFOKGUpfHxhPT09bnVsbD90aGlzOihlPk9HJiYoZT1PRyksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuX2NoZWNrVHJpZ2dlcihhKSxlKSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJnRoaXMub3B0aW9ucy51bnJlZiYmSFN0KHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCksdGhpcyl9YXN5bmMgX3RyaWdnZXIodCl7dGhpcy5fc3RhdGVzLmJsb2NraW5nPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuPW5ldyBLMSh2b2lkIDAsdGhpcy5nZXRUeigpKTt0cnl7aWYodGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKGUpe2lmKCRjKHRoaXMub3B0aW9ucy5jYXRjaCkpdHJ5e3RoaXMub3B0aW9ucy5jYXRjaChlLHRoaXMpfWNhdGNoe319ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWZpbmFsbHl7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBLMSh0LHRoaXMuZ2V0VHooKSksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfX1hc3luYyB0cmlnZ2VyKCl7YXdhaXQgdGhpcy5fdHJpZ2dlcigpfXJ1bnNMZWZ0KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5tYXhSdW5zfV9jaGVja1RyaWdnZXIodCl7bGV0IGU9bmV3IERhdGUsYT0hdGhpcy5fc3RhdGVzLnBhdXNlZCYmZS5nZXRUaW1lKCk+PXQuZ2V0VGltZSgpLGk9dGhpcy5fc3RhdGVzLmJsb2NraW5nJiZ0aGlzLm9wdGlvbnMucHJvdGVjdDthJiYhaT8odGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zLS0sdGhpcy5fdHJpZ2dlcigpKTphJiZpJiYkYyh0aGlzLm9wdGlvbnMucHJvdGVjdCkmJnNldFRpbWVvdXQoKCk9PnRoaXMub3B0aW9ucy5wcm90ZWN0KHRoaXMpLDApLHRoaXMuc2NoZWR1bGUoKX1fbmV4dCh0KXtsZXQgZT0hISh0fHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksYT0hMTshdCYmdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnRoaXMub3B0aW9ucy5pbnRlcnZhbCYmKFt0LGVdPXRoaXMuX2NhbGN1bGF0ZVByZXZpb3VzUnVuKHQsZSksYT0hdCksdD1uZXcgSzEodCx0aGlzLmdldFR6KCkpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZ0JiZ0LmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJih0PXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgaT10aGlzLl9zdGF0ZXMub25jZXx8bmV3IEsxKHQsdGhpcy5nZXRUeigpKTtyZXR1cm4hYSYmaSE9PXRoaXMuX3N0YXRlcy5vbmNlJiYoaT1pLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsZSkpLHRoaXMuX3N0YXRlcy5vbmNlJiZ0aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8PXQuZ2V0VGltZSgpfHxpPT09bnVsbHx8dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zPD0wfHx0aGlzLl9zdGF0ZXMua2lsbHx8dGhpcy5vcHRpb25zLnN0b3BBdCYmaS5nZXRUaW1lKCk+PXRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpP251bGw6aX1fcHJldmlvdXModCl7bGV0IGU9bmV3IEsxKHQsdGhpcy5nZXRUeigpKTt0aGlzLm9wdGlvbnMuc3RvcEF0JiZlLmdldFRpbWUoKT50aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKSYmKGU9dGhpcy5vcHRpb25zLnN0b3BBdCk7bGV0IGE9bmV3IEsxKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPGUuZ2V0VGltZSgpP3RoaXMuX3N0YXRlcy5vbmNlOm51bGw6KGE9YS5kZWNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKSxhPT09bnVsbHx8dGhpcy5vcHRpb25zLnN0YXJ0QXQmJmEuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKT9udWxsOmEpfV9jYWxjdWxhdGVQcmV2aW91c1J1bih0LGUpe2xldCBhPW5ldyBLMSh2b2lkIDAsdGhpcy5nZXRUeigpKSxpPXQ7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD1hLmdldFRpbWUoKSl7aT10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgcj1pLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7cjw9YS5nZXRUaW1lKCk7KWk9bmV3IEsxKGksdGhpcy5nZXRUeigpKS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxyPWkuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7ZT0hMH1yZXR1cm4gaT09PW51bGwmJihpPXZvaWQgMCksW2ksZV19fX0pO3ZhciB3NyxEYyxxU3QsaXMxLHVyLE03LEYyLFBhLEk0LFJrLGRuLE40LHo3LGs3LFM3LEM3LEhvLEY0LHg3LHFHLEJrLEhrLFZHLHFrLHl0PWIoKCk9Pnt3Nz03LERjPTM2NS4yNDI1LHFTdD1NYXRoLnBvdygxMCw4KSoyNCo2MCo2MCoxZTMsaXMxPS1xU3QsdXI9NjA0OGU1LE03PTg2NGU1LEYyPTZlNCxQYT0zNmU1LEk0PTFlMyxSaz01MjU2MDAsZG49NDMyMDAsTjQ9MTQ0MCx6Nz02MCxrNz0zLFM3PTEyLEM3PTQsSG89MzYwMCxGND02MCx4Nz1IbyoyNCxxRz14Nyo3LEJrPXg3KjM2NS4yNDI1LEhrPUJrLzEyLFZHPUhrKjMscWs9U3ltYm9sLmZvcigiY29uc3RydWN0RGF0ZUZyb20iKX0pO2Z1bmN0aW9uIExlKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3QoZSk6dCYmdHlwZW9mIHQ9PSJvYmplY3QiJiZxayBpbiB0P3RbcWtdKGUpOnQgaW5zdGFuY2VvZiBEYXRlP25ldyB0LmNvbnN0cnVjdG9yKGUpOm5ldyBEYXRlKGUpfXZhciBuczEsYXQ9YigoKT0+e3l0KCk7bnMxPUxlfSk7ZnVuY3Rpb24gbmUodCxlKXtyZXR1cm4gTGUoZXx8dCx0KX12YXIgY3MxLEFlPWIoKCk9PnthdCgpO2NzMT1uZX0pO2Z1bmN0aW9uIFExKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKTtyZXR1cm4gaXNOYU4oZSk/TGUoYT8uaW58fHQsTmFOKTooZSYmaS5zZXREYXRlKGkuZ2V0RGF0ZSgpK2UpLGkpfXZhciB1czEsZnI9YigoKT0+e2F0KCk7QWUoKTt1czE9UTF9KTtmdW5jdGlvbiBtcih0LGUsYSl7bGV0IGk9bmUodCxhPy5pbik7aWYoaXNOYU4oZSkpcmV0dXJuIExlKGE/LmlufHx0LE5hTik7aWYoIWUpcmV0dXJuIGk7bGV0IHI9aS5nZXREYXRlKCkscz1MZShhPy5pbnx8dCxpLmdldFRpbWUoKSk7cy5zZXRNb250aChpLmdldE1vbnRoKCkrZSsxLDApO2xldCBuPXMuZ2V0RGF0ZSgpO3JldHVybiByPj1uP3M6KGkuc2V0RnVsbFllYXIocy5nZXRGdWxsWWVhcigpLHMuZ2V0TW9udGgoKSxyKSxpKX12YXIgYnMxLE80PWIoKCk9PnthdCgpO0FlKCk7YnMxPW1yfSk7ZnVuY3Rpb24gcG4odCxlLGEpe2xldHt5ZWFyczppPTAsbW9udGhzOnI9MCx3ZWVrczpzPTAsZGF5czpuPTAsaG91cnM6bz0wLG1pbnV0ZXM6ZD0wLHNlY29uZHM6Yz0wfT1lLHA9bmUodCxhPy5pbiksbD1yfHxpP21yKHAscitpKjEyKTpwLGY9bnx8cz9RMShsLG4rcyo3KTpsLGc9ZCtvKjYwLHY9KGMrZyo2MCkqMWUzO3JldHVybiBMZShhPy5pbnx8dCwrZit2KX12YXIgenMxLFZrPWIoKCk9PntmcigpO080KCk7YXQoKTtBZSgpO3pzMT1wbn0pO2Z1bmN0aW9uIF83KHQsZSl7cmV0dXJuIG5lKHQsZT8uaW4pLmdldERheSgpPT09Nn12YXIgQ3MxLGprPWIoKCk9PntBZSgpO0NzMT1fN30pO2Z1bmN0aW9uIFQ3KHQsZSl7cmV0dXJuIG5lKHQsZT8uaW4pLmdldERheSgpPT09MH12YXIgTHMxLFVrPWIoKCk9PntBZSgpO0xzMT1UN30pO2Z1bmN0aW9uIGdyKHQsZSl7bGV0IGE9bmUodCxlPy5pbikuZ2V0RGF5KCk7cmV0dXJuIGE9PT0wfHxhPT09Nn12YXIgRHMxLEVjPWIoKCk9PntBZSgpO0RzMT1ncn0pO2Z1bmN0aW9uIEw3KHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKSxyPWdyKGksYSk7aWYoaXNOYU4oZSkpcmV0dXJuIExlKGE/LmluLE5hTik7bGV0IHM9aS5nZXRIb3VycygpLG49ZTwwPy0xOjEsbz1NYXRoLnRydW5jKGUvNSk7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpK28qNyk7bGV0IGQ9TWF0aC5hYnMoZSU1KTtmb3IoO2Q+MDspaS5zZXREYXRlKGkuZ2V0RGF0ZSgpK24pLGdyKGksYSl8fChkLT0xKTtyZXR1cm4gciYmZ3IoaSxhKSYmZSE9PTAmJihfNyhpLGEpJiZpLnNldERhdGUoaS5nZXREYXRlKCkrKG48MD8yOi0xKSksVDcoaSxhKSYmaS5zZXREYXRlKGkuZ2V0RGF0ZSgpKyhuPDA/MTotMikpKSxpLnNldEhvdXJzKHMpLGl9dmFyIFJzMSxXaz1iKCgpPT57YXQoKTtqaygpO1VrKCk7RWMoKTtBZSgpO1JzMT1MN30pO2Z1bmN0aW9uIGhuKHQsZSxhKXtyZXR1cm4gTGUoYT8uaW58fHQsK25lKHQpK2UpfXZhciBWczEsUGM9YigoKT0+e2F0KCk7QWUoKTtWczE9aG59KTtmdW5jdGlvbiAkNyh0LGUsYSl7cmV0dXJuIGhuKHQsZSpQYSxhKX12YXIgR3MxLEdrPWIoKCk9PntQYygpO3l0KCk7R3MxPSQ3fSk7ZnVuY3Rpb24gS3QoKXtyZXR1cm4gakd9ZnVuY3Rpb24gVUcodCl7akc9dH12YXIgakcsTzI9YigoKT0+e2pHPXt9fSk7ZnVuY3Rpb24gYzEodCxlKXtsZXQgYT1LdCgpLGk9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/YS53ZWVrU3RhcnRzT24/P2EubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAscj1uZSh0LGU/LmluKSxzPXIuZ2V0RGF5KCksbj0oczxpPzc6MCkrcy1pO3JldHVybiByLnNldERhdGUoci5nZXREYXRlKCktbiksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBRczEsRGk9YigoKT0+e08yKCk7QWUoKTtRczE9YzF9KTtmdW5jdGlvbiBXMSh0LGUpe3JldHVybiBjMSh0LHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIHRuMSxicj1iKCgpPT57RGkoKTt0bjE9VzF9KTtmdW5jdGlvbiBzYSh0LGUpe2xldCBhPW5lKHQsZT8uaW4pLGk9YS5nZXRGdWxsWWVhcigpLHI9TGUoYSwwKTtyLnNldEZ1bGxZZWFyKGkrMSwwLDQpLHIuc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9VzEociksbj1MZShhLDApO24uc2V0RnVsbFllYXIoaSwwLDQpLG4uc2V0SG91cnMoMCwwLDAsMCk7bGV0IG89VzEobik7cmV0dXJuIGEuZ2V0VGltZSgpPj1zLmdldFRpbWUoKT9pKzE6YS5nZXRUaW1lKCk+PW8uZ2V0VGltZSgpP2k6aS0xfXZhciBubjEsdW49YigoKT0+e2F0KCk7YnIoKTtBZSgpO25uMT1zYX0pO2Z1bmN0aW9uIEExKHQpe2xldCBlPW5lKHQpLGE9bmV3IERhdGUoRGF0ZS5VVEMoZS5nZXRGdWxsWWVhcigpLGUuZ2V0TW9udGgoKSxlLmdldERhdGUoKSxlLmdldEhvdXJzKCksZS5nZXRNaW51dGVzKCksZS5nZXRTZWNvbmRzKCksZS5nZXRNaWxsaXNlY29uZHMoKSkpO3JldHVybiBhLnNldFVUQ0Z1bGxZZWFyKGUuZ2V0RnVsbFllYXIoKSksK3QtK2F9dmFyIGlzPWIoKCk9PntBZSgpfSk7ZnVuY3Rpb24gSmUodCwuLi5lKXtsZXQgYT1MZS5iaW5kKG51bGwsdHx8ZS5maW5kKGk9PnR5cGVvZiBpPT0ib2JqZWN0IikpO3JldHVybiBlLm1hcChhKX12YXIgaTE9YigoKT0+e2F0KCl9KTtmdW5jdGlvbiB2cih0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBhLnNldEhvdXJzKDAsMCwwLDApLGF9dmFyIHVuMSxJYz1iKCgpPT57QWUoKTt1bjE9dnJ9KTtmdW5jdGlvbiBwMih0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKSxzPXZyKGkpLG49dnIociksbz0rcy1BMShzKSxkPStuLUExKG4pO3JldHVybiBNYXRoLnJvdW5kKChvLWQpL003KX12YXIgeW4xLHJzPWIoKCk9PntpcygpO2kxKCk7eXQoKTtJYygpO3luMT1wMn0pO2Z1bmN0aW9uIElhKHQsZSl7bGV0IGE9c2EodCxlKSxpPUxlKGU/LmlufHx0LDApO3JldHVybiBpLnNldEZ1bGxZZWFyKGEsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApLFcxKGkpfXZhciBrbjEsUjQ9YigoKT0+e2F0KCk7dW4oKTticigpO2tuMT1JYX0pO2Z1bmN0aW9uIEE3KHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKSxyPXAyKGksSWEoaSxhKSkscz1MZShhPy5pbnx8dCwwKTtyZXR1cm4gcy5zZXRGdWxsWWVhcihlLDAsNCkscy5zZXRIb3VycygwLDAsMCwwKSxpPUlhKHMpLGkuc2V0RGF0ZShpLmdldERhdGUoKStyKSxpfXZhciAkbjEsWWs9YigoKT0+e2F0KCk7cnMoKTtSNCgpO0FlKCk7JG4xPUE3fSk7ZnVuY3Rpb24gRDcodCxlLGEpe3JldHVybiBBNyh0LHNhKHQsYSkrZSxhKX12YXIgUG4xLFprPWIoKCk9Pnt1bigpO1lrKCk7UG4xPUQ3fSk7ZnVuY3Rpb24gQjQodCxlLGEpe2xldCBpPW5lKHQsYT8uaW4pO3JldHVybiBpLnNldFRpbWUoaS5nZXRUaW1lKCkrZSpGMiksaX12YXIgT24xLEU3PWIoKCk9Pnt5dCgpO0FlKCk7T24xPUI0fSk7ZnVuY3Rpb24gSDQodCxlLGEpe3JldHVybiBtcih0LGUqMyxhKX12YXIgSG4xLFA3PWIoKCk9PntPNCgpO0huMT1INH0pO2Z1bmN0aW9uIEk3KHQsZSxhKXtyZXR1cm4gaG4odCxlKjFlMyxhKX12YXIgam4xLFhrPWIoKCk9PntQYygpO2puMT1JN30pO2Z1bmN0aW9uIGZuKHQsZSxhKXtyZXR1cm4gUTEodCxlKjcsYSl9dmFyIEduMSxOYz1iKCgpPT57ZnIoKTtHbjE9Zm59KTtmdW5jdGlvbiBONyh0LGUsYSl7cmV0dXJuIG1yKHQsZSoxMixhKX12YXIgWG4xLEtrPWIoKCk9PntPNCgpO1huMT1ON30pO2Z1bmN0aW9uIFdHKHQsZSxhKXtsZXRbaSxyXT1bK25lKHQuc3RhcnQsYT8uaW4pLCtuZSh0LmVuZCxhPy5pbildLnNvcnQoKG8sZCk9Pm8tZCksW3Msbl09WytuZShlLnN0YXJ0LGE/LmluKSwrbmUoZS5lbmQsYT8uaW4pXS5zb3J0KChvLGQpPT5vLWQpO3JldHVybiBhPy5pbmNsdXNpdmU/aTw9biYmczw9cjppPG4mJnM8cn12YXIgSm4xLEdHPWIoKCk9PntBZSgpO0puMT1XR30pO2Z1bmN0aW9uIEY3KHQsZSl7bGV0IGEsaT1lPy5pbjtyZXR1cm4gdC5mb3JFYWNoKHI9PnshaSYmdHlwZW9mIHI9PSJvYmplY3QiJiYoaT1MZS5iaW5kKG51bGwscikpO2xldCBzPW5lKHIsaSk7KCFhfHxhPHN8fGlzTmFOKCtzKSkmJihhPXMpfSksTGUoaSxhfHxOYU4pfXZhciBpbzEsUWs9YigoKT0+e2F0KCk7QWUoKTtpbzE9Rjd9KTtmdW5jdGlvbiBPNyh0LGUpe2xldCBhLGk9ZT8uaW47cmV0dXJuIHQuZm9yRWFjaChyPT57IWkmJnR5cGVvZiByPT0ib2JqZWN0IiYmKGk9TGUuYmluZChudWxsLHIpKTtsZXQgcz1uZShyLGkpOyghYXx8YT5zfHxpc05hTigrcykpJiYoYT1zKX0pLExlKGksYXx8TmFOKX12YXIgb28xLEprPWIoKCk9PnthdCgpO0FlKCk7b28xPU83fSk7ZnVuY3Rpb24gWUcodCxlLGEpe2xldFtpLHIsc109SmUoYT8uaW4sdCxlLnN0YXJ0LGUuZW5kKTtyZXR1cm4gTzcoW0Y3KFtpLHJdLGEpLHNdLGEpfXZhciBobzEsWkc9YigoKT0+e2kxKCk7UWsoKTtKaygpO2hvMT1ZR30pO2Z1bmN0aW9uIFI3KHQsZSl7bGV0IGE9K25lKHQpO2lmKGlzTmFOKGEpKXJldHVybiBOYU47bGV0IGkscjtyZXR1cm4gZS5mb3JFYWNoKChzLG4pPT57bGV0IG89bmUocyk7aWYoaXNOYU4oK28pKXtpPU5hTixyPU5hTjtyZXR1cm59bGV0IGQ9TWF0aC5hYnMoYS0rbyk7KGk9PW51bGx8fGQ8cikmJihpPW4scj1kKX0pLGl9dmFyIG1vMSxlUz1iKCgpPT57QWUoKTttbzE9Ujd9KTtmdW5jdGlvbiBYRyh0LGUsYSl7bGV0W2ksLi4ucl09SmUoYT8uaW4sdCwuLi5lKSxzPVI3KGkscik7aWYodHlwZW9mIHM9PSJudW1iZXIiJiZpc05hTihzKSlyZXR1cm4gTGUoaSxOYU4pO2lmKHMhPT12b2lkIDApcmV0dXJuIHJbc119dmFyIHhvMSxLRz1iKCgpPT57aTEoKTtlUygpO2F0KCk7eG8xPVhHfSk7ZnVuY3Rpb24gUjIodCxlKXtsZXQgYT0rbmUodCktK25lKGUpO3JldHVybiBhPDA/LTE6YT4wPzE6YX12YXIgem8xLHFvPWIoKCk9PntBZSgpO3pvMT1SMn0pO2Z1bmN0aW9uIFFHKHQsZSl7bGV0IGE9K25lKHQpLStuZShlKTtyZXR1cm4gYT4wPy0xOmE8MD8xOmF9dmFyIENvMSxKRz1iKCgpPT57QWUoKTtDbzE9UUd9KTtmdW5jdGlvbiBDdCh0KXtyZXR1cm4gTGUodCxEYXRlLm5vdygpKX12YXIgTG8xLEoxPWIoKCk9PnthdCgpO0xvMT1DdH0pO2Z1bmN0aW9uIGVZKHQpe2xldCBlPU1hdGgudHJ1bmModC83KTtyZXR1cm4gZT09PTA/MDplfXZhciBEbzEsdFk9YigoKT0+e3l0KCk7RG8xPWVZfSk7ZnVuY3Rpb24geXIodCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuK3ZyKGkpPT0rdnIocil9dmFyIE5vMSxxND1iKCgpPT57aTEoKTtJYygpO05vMT15cn0pO2Z1bmN0aW9uIEI3KHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZXx8dHlwZW9mIHQ9PSJvYmplY3QiJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk9PT0iW29iamVjdCBEYXRlXSJ9dmFyIE9vMSx0Uz1iKCgpPT57T28xPUI3fSk7ZnVuY3Rpb24gejIodCl7cmV0dXJuISghQjcodCkmJnR5cGVvZiB0IT0ibnVtYmVyInx8aXNOYU4oK25lKHQpKSl9dmFyIHFvMSxzcz1iKCgpPT57dFMoKTtBZSgpO3FvMT16Mn0pO2Z1bmN0aW9uIGFZKHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpO2lmKCF6MihpKXx8IXoyKHIpKXJldHVybiBOYU47bGV0IHM9cDIoaSxyKSxuPXM8MD8tMToxLG89TWF0aC50cnVuYyhzLzcpLGQ9byo1LGM9UTEocixvKjcpO2Zvcig7IXlyKGksYyk7KWQrPWdyKGMsYSk/MDpuLGM9UTEoYyxuKTtyZXR1cm4gZD09PTA/MDpkfXZhciBYbzEsaVk9YigoKT0+e2kxKCk7ZnIoKTtycygpO3E0KCk7c3MoKTtFYygpO1hvMT1hWX0pO2Z1bmN0aW9uIEg3KHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpO3JldHVybiBzYShpLGEpLXNhKHIsYSl9dmFyIGUwMSxhUz1iKCgpPT57aTEoKTt1bigpO2UwMT1IN30pO2Z1bmN0aW9uIHJZKHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpLHM9VzEoaSksbj1XMShyKSxvPStzLUExKHMpLGQ9K24tQTEobik7cmV0dXJuIE1hdGgucm91bmQoKG8tZCkvdXIpfXZhciBuMDEsc1k9YigoKT0+e2lzKCk7aTEoKTt5dCgpO2JyKCk7bjAxPXJZfSk7ZnVuY3Rpb24gVm8odCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSkscz1pLmdldEZ1bGxZZWFyKCktci5nZXRGdWxsWWVhcigpLG49aS5nZXRNb250aCgpLXIuZ2V0TW9udGgoKTtyZXR1cm4gcyoxMitufXZhciBjMDEscTc9YigoKT0+e2kxKCk7YzAxPVZvfSk7ZnVuY3Rpb24gRmModCxlKXtsZXQgYT1uZSh0LGU/LmluKTtyZXR1cm4gTWF0aC50cnVuYyhhLmdldE1vbnRoKCkvMykrMX12YXIgaDAxLGlTPWIoKCk9PntBZSgpO2gwMT1GY30pO2Z1bmN0aW9uIFY0KHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpLHM9aS5nZXRGdWxsWWVhcigpLXIuZ2V0RnVsbFllYXIoKSxuPUZjKGkpLUZjKHIpO3JldHVybiBzKjQrbn12YXIgZzAxLHJTPWIoKCk9PntpMSgpO2lTKCk7ZzAxPVY0fSk7ZnVuY3Rpb24gam8odCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSkscz1jMShpLGEpLG49YzEocixhKSxvPStzLUExKHMpLGQ9K24tQTEobik7cmV0dXJuIE1hdGgucm91bmQoKG8tZCkvdXIpfXZhciBNMDEsVjc9YigoKT0+e2lzKCk7aTEoKTt5dCgpO0RpKCk7TTAxPWpvfSk7ZnVuY3Rpb24gbW4odCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKS1yLmdldEZ1bGxZZWFyKCl9dmFyIFMwMSxqNz1iKCgpPT57aTEoKTtTMDE9bW59KTtmdW5jdGlvbiBqNCh0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKSxzPW5ZKGksciksbj1NYXRoLmFicyhwMihpLHIpKTtpLnNldERhdGUoaS5nZXREYXRlKCktcypuKTtsZXQgbz0rKG5ZKGkscik9PT0tcyksZD1zKihuLW8pO3JldHVybiBkPT09MD8wOmR9ZnVuY3Rpb24gblkodCxlKXtsZXQgYT10LmdldEZ1bGxZZWFyKCktZS5nZXRGdWxsWWVhcigpfHx0LmdldE1vbnRoKCktZS5nZXRNb250aCgpfHx0LmdldERhdGUoKS1lLmdldERhdGUoKXx8dC5nZXRIb3VycygpLWUuZ2V0SG91cnMoKXx8dC5nZXRNaW51dGVzKCktZS5nZXRNaW51dGVzKCl8fHQuZ2V0U2Vjb25kcygpLWUuZ2V0U2Vjb25kcygpfHx0LmdldE1pbGxpc2Vjb25kcygpLWUuZ2V0TWlsbGlzZWNvbmRzKCk7cmV0dXJuIGE8MD8tMTphPjA/MTphfXZhciBMMDEsVTc9YigoKT0+e2kxKCk7cnMoKTtMMDE9ajR9KTtmdW5jdGlvbiBCMih0KXtyZXR1cm4gZT0+e2xldCBpPSh0P01hdGhbdF06TWF0aC50cnVuYykoZSk7cmV0dXJuIGk9PT0wPzA6aX19dmFyIG5zPWIoKCk9Pnt9KTtmdW5jdGlvbiBVbyh0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKSxzPSgraS0rcikvUGE7cmV0dXJuIEIyKGE/LnJvdW5kaW5nTWV0aG9kKShzKX12YXIgSTAxLFc3PWIoKCk9PntucygpO2kxKCk7eXQoKTtJMDE9VW99KTtmdW5jdGlvbiBHNyh0LGUsYSl7cmV0dXJuIEQ3KHQsLWUsYSl9dmFyIE8wMSxzUz1iKCgpPT57WmsoKTtPMDE9Rzd9KTtmdW5jdGlvbiBvWSh0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKSxzPVIyKGksciksbj1NYXRoLmFicyhINyhpLHIsYSkpLG89RzcoaSxzKm4sYSksZD0rKFIyKG8scik9PT0tcyksYz1zKihuLWQpO3JldHVybiBjPT09MD8wOmN9dmFyIGowMSxsWT1iKCgpPT57aTEoKTtxbygpO2FTKCk7c1MoKTtqMDE9b1l9KTtmdW5jdGlvbiBVNCh0LGUpe3JldHVybituZSh0KS0rbmUoZSl9dmFyIEcwMSxZNz1iKCgpPT57QWUoKTtHMDE9VTR9KTtmdW5jdGlvbiBXbyh0LGUsYSl7bGV0IGk9VTQodCxlKS9GMjtyZXR1cm4gQjIoYT8ucm91bmRpbmdNZXRob2QpKGkpfXZhciBRMDEsWjc9YigoKT0+e25zKCk7eXQoKTtZNygpO1EwMT1Xb30pO2Z1bmN0aW9uIFc0KHQsZSl7bGV0IGE9bmUodCxlPy5pbik7cmV0dXJuIGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciB0NDEsWDc9YigoKT0+e0FlKCk7dDQxPVc0fSk7ZnVuY3Rpb24gRzQodCxlKXtsZXQgYT1uZSh0LGU/LmluKSxpPWEuZ2V0TW9udGgoKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihhLmdldEZ1bGxZZWFyKCksaSsxLDApLGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciByNDEsSzc9YigoKT0+e0FlKCk7cjQxPUc0fSk7ZnVuY3Rpb24gUTcodCxlKXtsZXQgYT1uZSh0LGU/LmluKTtyZXR1cm4rVzQoYSxlKT09K0c0KGEsZSl9dmFyIGM0MSxuUz1iKCgpPT57WDcoKTtLNygpO0FlKCk7YzQxPVE3fSk7ZnVuY3Rpb24gZ24odCxlLGEpe2xldFtpLHIsc109SmUoYT8uaW4sdCx0LGUpLG49UjIocixzKSxvPU1hdGguYWJzKFZvKHIscykpO2lmKG88MSlyZXR1cm4gMDtyLmdldE1vbnRoKCk9PT0xJiZyLmdldERhdGUoKT4yNyYmci5zZXREYXRlKDMwKSxyLnNldE1vbnRoKHIuZ2V0TW9udGgoKS1uKm8pO2xldCBkPVIyKHIscyk9PT0tbjtRNyhpKSYmbz09PTEmJlIyKGkscyk9PT0xJiYoZD0hMSk7bGV0IGM9biooby0rZCk7cmV0dXJuIGM9PT0wPzA6Y312YXIgbTQxLE9jPWIoKCk9PntpMSgpO3FvKCk7cTcoKTtuUygpO200MT1nbn0pO2Z1bmN0aW9uIGNZKHQsZSxhKXtsZXQgaT1nbih0LGUsYSkvMztyZXR1cm4gQjIoYT8ucm91bmRpbmdNZXRob2QpKGkpfXZhciB5NDEsZFk9YigoKT0+e25zKCk7T2MoKTt5NDE9Y1l9KTtmdW5jdGlvbiB4cih0LGUsYSl7bGV0IGk9VTQodCxlKS8xZTM7cmV0dXJuIEIyKGE/LnJvdW5kaW5nTWV0aG9kKShpKX12YXIgejQxLFJjPWIoKCk9PntucygpO1k3KCk7ejQxPXhyfSk7ZnVuY3Rpb24gcFkodCxlLGEpe2xldCBpPWo0KHQsZSxhKS83O3JldHVybiBCMihhPy5yb3VuZGluZ01ldGhvZCkoaSl9dmFyIF80MSxoWT1iKCgpPT57bnMoKTtVNygpO180MT1wWX0pO2Z1bmN0aW9uIEo3KHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpLHM9UjIoaSxyKSxuPU1hdGguYWJzKG1uKGkscikpO2kuc2V0RnVsbFllYXIoMTU4NCksci5zZXRGdWxsWWVhcigxNTg0KTtsZXQgbz1SMihpLHIpPT09LXMsZD1zKihuLStvKTtyZXR1cm4gZD09PTA/MDpkfXZhciBENDEsb1M9YigoKT0+e2kxKCk7cW8oKTtqNygpO0Q0MT1KN30pO2Z1bmN0aW9uIGgyKHQsZSl7bGV0W2EsaV09SmUodCxlLnN0YXJ0LGUuZW5kKTtyZXR1cm57c3RhcnQ6YSxlbmQ6aX19dmFyIHdyPWIoKCk9PntpMSgpfSk7ZnVuY3Rpb24gZXAodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6aX09aDIoZT8uaW4sdCkscj0rYT4raSxzPXI/K2E6K2ksbj1yP2k6YTtuLnNldEhvdXJzKDAsMCwwLDApO2xldCBvPWU/LnN0ZXA/PzE7aWYoIW8pcmV0dXJuW107bzwwJiYobz0tbyxyPSFyKTtsZXQgZD1bXTtmb3IoOytuPD1zOylkLnB1c2goTGUoYSxuKSksbi5zZXREYXRlKG4uZ2V0RGF0ZSgpK28pLG4uc2V0SG91cnMoMCwwLDAsMCk7cmV0dXJuIHI/ZC5yZXZlcnNlKCk6ZH12YXIgTzQxLGxTPWIoKCk9Pnt3cigpO2F0KCk7TzQxPWVwfSk7ZnVuY3Rpb24gdVkodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6aX09aDIoZT8uaW4sdCkscj0rYT4raSxzPXI/K2E6K2ksbj1yP2k6YTtuLnNldE1pbnV0ZXMoMCwwLDApO2xldCBvPWU/LnN0ZXA/PzE7aWYoIW8pcmV0dXJuW107bzwwJiYobz0tbyxyPSFyKTtsZXQgZD1bXTtmb3IoOytuPD1zOylkLnB1c2goTGUoYSxuKSksbi5zZXRIb3VycyhuLmdldEhvdXJzKCkrbyk7cmV0dXJuIHI/ZC5yZXZlcnNlKCk6ZH12YXIgcTQxLGZZPWIoKCk9Pnt3cigpO2F0KCk7cTQxPXVZfSk7ZnVuY3Rpb24gbVkodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6aX09aDIoZT8uaW4sdCk7YS5zZXRTZWNvbmRzKDAsMCk7bGV0IHI9K2E+K2kscz1yPythOitpLG49cj9pOmEsbz1lPy5zdGVwPz8xO2lmKCFvKXJldHVybltdO288MCYmKG89LW8scj0hcik7bGV0IGQ9W107Zm9yKDsrbjw9czspZC5wdXNoKExlKGEsbikpLG49QjQobixvKTtyZXR1cm4gcj9kLnJldmVyc2UoKTpkfXZhciBHNDEsZ1k9YigoKT0+e3dyKCk7RTcoKTthdCgpO0c0MT1tWX0pO2Z1bmN0aW9uIGJZKHQsZSl7bGV0e3N0YXJ0OmEsZW5kOml9PWgyKGU/LmluLHQpLHI9K2E+K2kscz1yPythOitpLG49cj9pOmE7bi5zZXRIb3VycygwLDAsMCwwKSxuLnNldERhdGUoMSk7bGV0IG89ZT8uc3RlcD8/MTtpZighbylyZXR1cm5bXTtvPDAmJihvPS1vLHI9IXIpO2xldCBkPVtdO2Zvcig7K248PXM7KWQucHVzaChMZShhLG4pKSxuLnNldE1vbnRoKG4uZ2V0TW9udGgoKStvKTtyZXR1cm4gcj9kLnJldmVyc2UoKTpkfXZhciBLNDEsdlk9YigoKT0+e3dyKCk7YXQoKTtLNDE9Yll9KTtmdW5jdGlvbiBNcih0LGUpe2xldCBhPW5lKHQsZT8uaW4pLGk9YS5nZXRNb250aCgpLHI9aS1pJTM7cmV0dXJuIGEuc2V0TW9udGgociwxKSxhLnNldEhvdXJzKDAsMCwwLDApLGF9dmFyIGUzMSx0cD1iKCgpPT57QWUoKTtlMzE9TXJ9KTtmdW5jdGlvbiB5WSh0LGUpe2xldHtzdGFydDphLGVuZDppfT1oMihlPy5pbix0KSxyPSthPitpLHM9cj8rTXIoYSk6K01yKGkpLG49cj9NcihpKTpNcihhKSxvPWU/LnN0ZXA/PzE7aWYoIW8pcmV0dXJuW107bzwwJiYobz0tbyxyPSFyKTtsZXQgZD1bXTtmb3IoOytuPD1zOylkLnB1c2goTGUoYSxuKSksbj1INChuLG8pO3JldHVybiByP2QucmV2ZXJzZSgpOmR9dmFyIG4zMSx4WT1iKCgpPT57d3IoKTtQNygpO2F0KCk7dHAoKTtuMzE9eVl9KTtmdW5jdGlvbiB3WSh0LGUpe2xldHtzdGFydDphLGVuZDppfT1oMihlPy5pbix0KSxyPSthPitpLHM9cj9jMShpLGUpOmMxKGEsZSksbj1yP2MxKGEsZSk6YzEoaSxlKTtzLnNldEhvdXJzKDE1KSxuLnNldEhvdXJzKDE1KTtsZXQgbz0rbi5nZXRUaW1lKCksZD1zLGM9ZT8uc3RlcD8/MTtpZighYylyZXR1cm5bXTtjPDAmJihjPS1jLHI9IXIpO2xldCBwPVtdO2Zvcig7K2Q8PW87KWQuc2V0SG91cnMoMCkscC5wdXNoKExlKGEsZCkpLGQ9Zm4oZCxjKSxkLnNldEhvdXJzKDE1KTtyZXR1cm4gcj9wLnJldmVyc2UoKTpwfXZhciBoMzEsTVk9YigoKT0+e3dyKCk7TmMoKTthdCgpO0RpKCk7aDMxPXdZfSk7ZnVuY3Rpb24gWTQodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6aX09aDIoZT8uaW4sdCkscj1lcCh7c3RhcnQ6YSxlbmQ6aX0sZSkscz1bXSxuPTA7Zm9yKDtuPHIubGVuZ3RoOyl7bGV0IG89cltuKytdO2dyKG8pJiZzLnB1c2goTGUoYSxvKSl9cmV0dXJuIHN9dmFyIHYzMSxhcD1iKCgpPT57d3IoKTthdCgpO2xTKCk7RWMoKTt2MzE9WTR9KTtmdW5jdGlvbiBibih0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBhLnNldERhdGUoMSksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciB3MzEsQmM9YigoKT0+e0FlKCk7dzMxPWJufSk7ZnVuY3Rpb24gelkodCxlKXtsZXQgYT1ibih0LGUpLGk9RzQodCxlKTtyZXR1cm4gWTQoe3N0YXJ0OmEsZW5kOml9LGUpfXZhciBDMzEsa1k9YigoKT0+e2FwKCk7SzcoKTtCYygpO0MzMT16WX0pO2Z1bmN0aW9uIGlwKHQsZSl7bGV0IGE9bmUodCxlPy5pbiksaT1hLmdldEZ1bGxZZWFyKCk7cmV0dXJuIGEuc2V0RnVsbFllYXIoaSsxLDAsMCksYS5zZXRIb3VycygyMyw1OSw1OSw5OTkpLGF9dmFyIEwzMSxjUz1iKCgpPT57QWUoKTtMMzE9aXB9KTtmdW5jdGlvbiBaNCh0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBhLnNldEZ1bGxZZWFyKGEuZ2V0RnVsbFllYXIoKSwwLDEpLGEuc2V0SG91cnMoMCwwLDAsMCksYX12YXIgRDMxLHJwPWIoKCk9PntBZSgpO0QzMT1aNH0pO2Z1bmN0aW9uIFNZKHQsZSl7bGV0IGE9WjQodCxlKSxpPWlwKHQsZSk7cmV0dXJuIFk0KHtzdGFydDphLGVuZDppfSxlKX12YXIgRjMxLENZPWIoKCk9PnthcCgpO2NTKCk7cnAoKTtGMzE9U1l9KTtmdW5jdGlvbiBfWSh0LGUpe2xldHtzdGFydDphLGVuZDppfT1oMihlPy5pbix0KSxyPSthPitpLHM9cj8rYToraSxuPXI/aTphO24uc2V0SG91cnMoMCwwLDAsMCksbi5zZXRNb250aCgwLDEpO2xldCBvPWU/LnN0ZXA/PzE7aWYoIW8pcmV0dXJuW107bzwwJiYobz0tbyxyPSFyKTtsZXQgZD1bXTtmb3IoOytuPD1zOylkLnB1c2goTGUoYSxuKSksbi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrbyk7cmV0dXJuIHI/ZC5yZXZlcnNlKCk6ZH12YXIgSDMxLFRZPWIoKCk9Pnt3cigpO2F0KCk7SDMxPV9ZfSk7ZnVuY3Rpb24gTFkodCxlKXtsZXQgYT1uZSh0LGU/LmluKSxpPWEuZ2V0RnVsbFllYXIoKSxyPTkrTWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gYS5zZXRGdWxsWWVhcihyLDExLDMxKSxhLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksYX12YXIgajMxLCRZPWIoKCk9PntBZSgpO2ozMT1MWX0pO2Z1bmN0aW9uIEFZKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7cmV0dXJuIGEuc2V0TWludXRlcyg1OSw1OSw5OTkpLGF9dmFyIEczMSxEWT1iKCgpPT57QWUoKTtHMzE9QVl9KTtmdW5jdGlvbiBzcCh0LGUpe2xldCBhPUt0KCksaT1lPy53ZWVrU3RhcnRzT24/P2U/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9hLndlZWtTdGFydHNPbj8/YS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxyPW5lKHQsZT8uaW4pLHM9ci5nZXREYXkoKSxuPShzPGk/LTc6MCkrNi0ocy1pKTtyZXR1cm4gci5zZXREYXRlKHIuZ2V0RGF0ZSgpK24pLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBLMzEsZFM9YigoKT0+e08yKCk7QWUoKTtLMzE9c3B9KTtmdW5jdGlvbiBFWSh0LGUpe3JldHVybiBzcCh0LHsuLi5lLHdlZWtTdGFydHNPbjoxfSl9dmFyIGVsMSxQWT1iKCgpPT57ZFMoKTtlbDE9RVl9KTtmdW5jdGlvbiBJWSh0LGUpe2xldCBhPXNhKHQsZSksaT1MZShlPy5pbnx8dCwwKTtpLnNldEZ1bGxZZWFyKGErMSwwLDQpLGkuc2V0SG91cnMoMCwwLDAsMCk7bGV0IHI9VzEoaSxlKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoci5nZXRNaWxsaXNlY29uZHMoKS0xKSxyfXZhciBzbDEsTlk9YigoKT0+e2F0KCk7dW4oKTticigpO3NsMT1JWX0pO2Z1bmN0aW9uIEZZKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7cmV0dXJuIGEuc2V0U2Vjb25kcyg1OSw5OTkpLGF9dmFyIGxsMSxPWT1iKCgpPT57QWUoKTtsbDE9Rll9KTtmdW5jdGlvbiBSWSh0LGUpe2xldCBhPW5lKHQsZT8uaW4pLGk9YS5nZXRNb250aCgpLHI9aS1pJTMrMztyZXR1cm4gYS5zZXRNb250aChyLDApLGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciBwbDEsQlk9YigoKT0+e0FlKCk7cGwxPVJZfSk7ZnVuY3Rpb24gSFkodCxlKXtsZXQgYT1uZSh0LGU/LmluKTtyZXR1cm4gYS5zZXRNaWxsaXNlY29uZHMoOTk5KSxhfXZhciBmbDEscVk9YigoKT0+e0FlKCk7ZmwxPUhZfSk7ZnVuY3Rpb24gVlkodCl7cmV0dXJuIFc0KERhdGUubm93KCksdCl9dmFyIGJsMSxqWT1iKCgpPT57WDcoKTtibDE9Vll9KTtmdW5jdGlvbiBVWSh0KXtsZXQgZT1DdCh0Py5pbiksYT1lLmdldEZ1bGxZZWFyKCksaT1lLmdldE1vbnRoKCkscj1lLmdldERhdGUoKSxzPUN0KHQ/LmluKTtyZXR1cm4gcy5zZXRGdWxsWWVhcihhLGkscisxKSxzLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksdD8uaW4/dC5pbihzKTpzfXZhciB4bDEsV1k9YigoKT0+e0oxKCk7eGwxPVVZfSk7ZnVuY3Rpb24gR1kodCl7bGV0IGU9Q3QodD8uaW4pLGE9TGUodD8uaW4sMCk7cmV0dXJuIGEuc2V0RnVsbFllYXIoZS5nZXRGdWxsWWVhcigpLGUuZ2V0TW9udGgoKSxlLmdldERhdGUoKS0xKSxhLnNldEhvdXJzKDIzLDU5LDU5LDk5OSksYX12YXIga2wxLFlZPWIoKCk9PnthdCgpO0oxKCk7a2wxPUdZfSk7dmFyIFZTdCxaWSxYWT1iKCgpPT57VlN0PXtsZXNzVGhhblhTZWNvbmRzOntvbmU6Imxlc3MgdGhhbiBhIHNlY29uZCIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gc2Vjb25kcyJ9LHhTZWNvbmRzOntvbmU6IjEgc2Vjb25kIixvdGhlcjoie3tjb3VudH19IHNlY29uZHMifSxoYWxmQU1pbnV0ZToiaGFsZiBhIG1pbnV0ZSIsbGVzc1RoYW5YTWludXRlczp7b25lOiJsZXNzIHRoYW4gYSBtaW51dGUiLG90aGVyOiJsZXNzIHRoYW4ge3tjb3VudH19IG1pbnV0ZXMifSx4TWludXRlczp7b25lOiIxIG1pbnV0ZSIsb3RoZXI6Int7Y291bnR9fSBtaW51dGVzIn0sYWJvdXRYSG91cnM6e29uZToiYWJvdXQgMSBob3VyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IGhvdXJzIn0seEhvdXJzOntvbmU6IjEgaG91ciIsb3RoZXI6Int7Y291bnR9fSBob3VycyJ9LHhEYXlzOntvbmU6IjEgZGF5IixvdGhlcjoie3tjb3VudH19IGRheXMifSxhYm91dFhXZWVrczp7b25lOiJhYm91dCAxIHdlZWsiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gd2Vla3MifSx4V2Vla3M6e29uZToiMSB3ZWVrIixvdGhlcjoie3tjb3VudH19IHdlZWtzIn0sYWJvdXRYTW9udGhzOntvbmU6ImFib3V0IDEgbW9udGgiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gbW9udGhzIn0seE1vbnRoczp7b25lOiIxIG1vbnRoIixvdGhlcjoie3tjb3VudH19IG1vbnRocyJ9LGFib3V0WFllYXJzOntvbmU6ImFib3V0IDEgeWVhciIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB5ZWFycyJ9LHhZZWFyczp7b25lOiIxIHllYXIiLG90aGVyOiJ7e2NvdW50fX0geWVhcnMifSxvdmVyWFllYXJzOntvbmU6Im92ZXIgMSB5ZWFyIixvdGhlcjoib3ZlciB7e2NvdW50fX0geWVhcnMifSxhbG1vc3RYWWVhcnM6e29uZToiYWxtb3N0IDEgeWVhciIsb3RoZXI6ImFsbW9zdCB7e2NvdW50fX0geWVhcnMifX0sWlk9KHQsZSxhKT0+e2xldCBpLHI9VlN0W3RdO3JldHVybiB0eXBlb2Ygcj09InN0cmluZyI/aT1yOmU9PT0xP2k9ci5vbmU6aT1yLm90aGVyLnJlcGxhY2UoInt7Y291bnR9fSIsZS50b1N0cmluZygpKSxhPy5hZGRTdWZmaXg/YS5jb21wYXJpc29uJiZhLmNvbXBhcmlzb24+MD8iaW4gIitpOmkrIiBhZ28iOml9fSk7ZnVuY3Rpb24gbnAodCl7cmV0dXJuKGU9e30pPT57bGV0IGE9ZS53aWR0aD9TdHJpbmcoZS53aWR0aCk6dC5kZWZhdWx0V2lkdGg7cmV0dXJuIHQuZm9ybWF0c1thXXx8dC5mb3JtYXRzW3QuZGVmYXVsdFdpZHRoXX19dmFyIEtZPWIoKCk9Pnt9KTt2YXIgalN0LFVTdCxXU3QsUVksSlk9YigoKT0+e0tZKCk7alN0PXtmdWxsOiJFRUVFLCBNTU1NIGRvLCB5Iixsb25nOiJNTU1NIGRvLCB5IixtZWRpdW06Ik1NTSBkLCB5IixzaG9ydDoiTU0vZGQveXl5eSJ9LFVTdD17ZnVsbDoiaDptbTpzcyBhIHp6enoiLGxvbmc6Img6bW06c3MgYSB6IixtZWRpdW06Img6bW06c3MgYSIsc2hvcnQ6Img6bW0gYSJ9LFdTdD17ZnVsbDoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbG9uZzoie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fSIsbWVkaXVtOiJ7e2RhdGV9fSwge3t0aW1lfX0iLHNob3J0OiJ7e2RhdGV9fSwge3t0aW1lfX0ifSxRWT17ZGF0ZTpucCh7Zm9ybWF0czpqU3QsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLHRpbWU6bnAoe2Zvcm1hdHM6VVN0LGRlZmF1bHRXaWR0aDoiZnVsbCJ9KSxkYXRlVGltZTpucCh7Zm9ybWF0czpXU3QsZGVmYXVsdFdpZHRoOiJmdWxsIn0pfX0pO3ZhciBHU3QsZVosdFo9YigoKT0+e0dTdD17bGFzdFdlZWs6IidsYXN0JyBlZWVlICdhdCcgcCIseWVzdGVyZGF5OiIneWVzdGVyZGF5IGF0JyBwIix0b2RheToiJ3RvZGF5IGF0JyBwIix0b21vcnJvdzoiJ3RvbW9ycm93IGF0JyBwIixuZXh0V2VlazoiZWVlZSAnYXQnIHAiLG90aGVyOiJQIn0sZVo9KHQsZSxhLGkpPT5HU3RbdF19KTtmdW5jdGlvbiBYNCh0KXtyZXR1cm4oZSxhKT0+e2xldCBpPWE/LmNvbnRleHQ/U3RyaW5nKGEuY29udGV4dCk6InN0YW5kYWxvbmUiLHI7aWYoaT09PSJmb3JtYXR0aW5nIiYmdC5mb3JtYXR0aW5nVmFsdWVzKXtsZXQgbj10LmRlZmF1bHRGb3JtYXR0aW5nV2lkdGh8fHQuZGVmYXVsdFdpZHRoLG89YT8ud2lkdGg/U3RyaW5nKGEud2lkdGgpOm47cj10LmZvcm1hdHRpbmdWYWx1ZXNbb118fHQuZm9ybWF0dGluZ1ZhbHVlc1tuXX1lbHNle2xldCBuPXQuZGVmYXVsdFdpZHRoLG89YT8ud2lkdGg/U3RyaW5nKGEud2lkdGgpOnQuZGVmYXVsdFdpZHRoO3I9dC52YWx1ZXNbb118fHQudmFsdWVzW25dfWxldCBzPXQuYXJndW1lbnRDYWxsYmFjaz90LmFyZ3VtZW50Q2FsbGJhY2soZSk6ZTtyZXR1cm4gcltzXX19dmFyIGFaPWIoKCk9Pnt9KTt2YXIgWVN0LFpTdCxYU3QsS1N0LFFTdCxKU3QsZUN0LGlaLHJaPWIoKCk9PnthWigpO1lTdD17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LFpTdD17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0sWFN0PXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxLU3Q9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sUVN0PXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxKU3Q9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LGVDdD0odCxlKT0+e2xldCBhPU51bWJlcih0KSxpPWElMTAwO2lmKGk+MjB8fGk8MTApc3dpdGNoKGklMTApe2Nhc2UgMTpyZXR1cm4gYSsic3QiO2Nhc2UgMjpyZXR1cm4gYSsibmQiO2Nhc2UgMzpyZXR1cm4gYSsicmQifXJldHVybiBhKyJ0aCJ9LGlaPXtvcmRpbmFsTnVtYmVyOmVDdCxlcmE6WDQoe3ZhbHVlczpZU3QsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLHF1YXJ0ZXI6WDQoe3ZhbHVlczpaU3QsZGVmYXVsdFdpZHRoOiJ3aWRlIixhcmd1bWVudENhbGxiYWNrOnQ9PnQtMX0pLG1vbnRoOlg0KHt2YWx1ZXM6WFN0LGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXk6WDQoe3ZhbHVlczpLU3QsZGVmYXVsdFdpZHRoOiJ3aWRlIn0pLGRheVBlcmlvZDpYNCh7dmFsdWVzOlFTdCxkZWZhdWx0V2lkdGg6IndpZGUiLGZvcm1hdHRpbmdWYWx1ZXM6SlN0LGRlZmF1bHRGb3JtYXR0aW5nV2lkdGg6IndpZGUifSl9fSk7ZnVuY3Rpb24gSzQodCl7cmV0dXJuKGUsYT17fSk9PntsZXQgaT1hLndpZHRoLHI9aSYmdC5tYXRjaFBhdHRlcm5zW2ldfHx0Lm1hdGNoUGF0dGVybnNbdC5kZWZhdWx0TWF0Y2hXaWR0aF0scz1lLm1hdGNoKHIpO2lmKCFzKXJldHVybiBudWxsO2xldCBuPXNbMF0sbz1pJiZ0LnBhcnNlUGF0dGVybnNbaV18fHQucGFyc2VQYXR0ZXJuc1t0LmRlZmF1bHRQYXJzZVdpZHRoXSxkPUFycmF5LmlzQXJyYXkobyk/YUN0KG8sbD0+bC50ZXN0KG4pKTp0Q3QobyxsPT5sLnRlc3QobikpLGM7Yz10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKGQpOmQsYz1hLnZhbHVlQ2FsbGJhY2s/YS52YWx1ZUNhbGxiYWNrKGMpOmM7bGV0IHA9ZS5zbGljZShuLmxlbmd0aCk7cmV0dXJue3ZhbHVlOmMscmVzdDpwfX19ZnVuY3Rpb24gdEN0KHQsZSl7Zm9yKGxldCBhIGluIHQpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsYSkmJmUodFthXSkpcmV0dXJuIGF9ZnVuY3Rpb24gYUN0KHQsZSl7Zm9yKGxldCBhPTA7YTx0Lmxlbmd0aDthKyspaWYoZSh0W2FdKSlyZXR1cm4gYX12YXIgc1o9YigoKT0+e30pO2Z1bmN0aW9uIG5aKHQpe3JldHVybihlLGE9e30pPT57bGV0IGk9ZS5tYXRjaCh0Lm1hdGNoUGF0dGVybik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IHI9aVswXSxzPWUubWF0Y2godC5wYXJzZVBhdHRlcm4pO2lmKCFzKXJldHVybiBudWxsO2xldCBuPXQudmFsdWVDYWxsYmFjaz90LnZhbHVlQ2FsbGJhY2soc1swXSk6c1swXTtuPWEudmFsdWVDYWxsYmFjaz9hLnZhbHVlQ2FsbGJhY2sobik6bjtsZXQgbz1lLnNsaWNlKHIubGVuZ3RoKTtyZXR1cm57dmFsdWU6bixyZXN0Om99fX12YXIgb1o9YigoKT0+e30pO3ZhciBpQ3QsckN0LHNDdCxuQ3Qsb0N0LGxDdCxjQ3QsZEN0LHBDdCxoQ3QsdUN0LGZDdCxsWixjWj1iKCgpPT57c1ooKTtvWigpO2lDdD0vXihcZCspKHRofHN0fG5kfHJkKT8vaSxyQ3Q9L1xkKy9pLHNDdD17bmFycm93Oi9eKGJ8YSkvaSxhYmJyZXZpYXRlZDovXihiXC4/XHM/Y1wuP3xiXC4/XHM/Y1wuP1xzP2VcLj98YVwuP1xzP2RcLj98Y1wuP1xzP2VcLj8pL2ksd2lkZTovXihiZWZvcmUgY2hyaXN0fGJlZm9yZSBjb21tb24gZXJhfGFubm8gZG9taW5pfGNvbW1vbiBlcmEpL2l9LG5DdD17YW55OlsvXmIvaSwvXihhfGMpL2ldfSxvQ3Q9e25hcnJvdzovXlsxMjM0XS9pLGFiYnJldmlhdGVkOi9ecVsxMjM0XS9pLHdpZGU6L15bMTIzNF0odGh8c3R8bmR8cmQpPyBxdWFydGVyL2l9LGxDdD17YW55OlsvMS9pLC8yL2ksLzMvaSwvNC9pXX0sY0N0PXtuYXJyb3c6L15bamZtYXNvbmRdL2ksYWJicmV2aWF0ZWQ6L14oamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0fG5vdnxkZWMpL2ksd2lkZTovXihqYW51YXJ5fGZlYnJ1YXJ5fG1hcmNofGFwcmlsfG1heXxqdW5lfGp1bHl8YXVndXN0fHNlcHRlbWJlcnxvY3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyKS9pfSxkQ3Q9e25hcnJvdzpbL15qL2ksL15mL2ksL15tL2ksL15hL2ksL15tL2ksL15qL2ksL15qL2ksL15hL2ksL15zL2ksL15vL2ksL15uL2ksL15kL2ldLGFueTpbL15qYS9pLC9eZi9pLC9ebWFyL2ksL15hcC9pLC9ebWF5L2ksL15qdW4vaSwvXmp1bC9pLC9eYXUvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV19LHBDdD17bmFycm93Oi9eW3NtdHdmXS9pLHNob3J0Oi9eKHN1fG1vfHR1fHdlfHRofGZyfHNhKS9pLGFiYnJldmlhdGVkOi9eKHN1bnxtb258dHVlfHdlZHx0aHV8ZnJpfHNhdCkvaSx3aWRlOi9eKHN1bmRheXxtb25kYXl8dHVlc2RheXx3ZWRuZXNkYXl8dGh1cnNkYXl8ZnJpZGF5fHNhdHVyZGF5KS9pfSxoQ3Q9e25hcnJvdzpbL15zL2ksL15tL2ksL150L2ksL153L2ksL150L2ksL15mL2ksL15zL2ldLGFueTpbL15zdS9pLC9ebS9pLC9edHUvaSwvXncvaSwvXnRoL2ksL15mL2ksL15zYS9pXX0sdUN0PXtuYXJyb3c6L14oYXxwfG1pfG58KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pLGFueTovXihbYXBdXC4/XHM/bVwuP3xtaWRuaWdodHxub29ufChpbiB0aGV8YXQpIChtb3JuaW5nfGFmdGVybm9vbnxldmVuaW5nfG5pZ2h0KSkvaX0sZkN0PXthbnk6e2FtOi9eYS9pLHBtOi9ecC9pLG1pZG5pZ2h0Oi9ebWkvaSxub29uOi9ebm8vaSxtb3JuaW5nOi9tb3JuaW5nL2ksYWZ0ZXJub29uOi9hZnRlcm5vb24vaSxldmVuaW5nOi9ldmVuaW5nL2ksbmlnaHQ6L25pZ2h0L2l9fSxsWj17b3JkaW5hbE51bWJlcjpuWih7bWF0Y2hQYXR0ZXJuOmlDdCxwYXJzZVBhdHRlcm46ckN0LHZhbHVlQ2FsbGJhY2s6dD0+cGFyc2VJbnQodCwxMCl9KSxlcmE6SzQoe21hdGNoUGF0dGVybnM6c0N0LGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOm5DdCxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLHF1YXJ0ZXI6SzQoe21hdGNoUGF0dGVybnM6b0N0LGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOmxDdCxkZWZhdWx0UGFyc2VXaWR0aDoiYW55Iix2YWx1ZUNhbGxiYWNrOnQ9PnQrMX0pLG1vbnRoOks0KHttYXRjaFBhdHRlcm5zOmNDdCxkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpkQ3QsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXk6SzQoe21hdGNoUGF0dGVybnM6cEN0LGRlZmF1bHRNYXRjaFdpZHRoOiJ3aWRlIixwYXJzZVBhdHRlcm5zOmhDdCxkZWZhdWx0UGFyc2VXaWR0aDoiYW55In0pLGRheVBlcmlvZDpLNCh7bWF0Y2hQYXR0ZXJuczp1Q3QsZGVmYXVsdE1hdGNoV2lkdGg6ImFueSIscGFyc2VQYXR0ZXJuczpmQ3QsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KX19KTt2YXIgU2EsamwxLGRaPWIoKCk9PntYWSgpO0pZKCk7dFooKTtyWigpO2NaKCk7U2E9e2NvZGU6ImVuLVVTIixmb3JtYXREaXN0YW5jZTpaWSxmb3JtYXRMb25nOlFZLGZvcm1hdFJlbGF0aXZlOmVaLGxvY2FsaXplOmlaLG1hdGNoOmxaLG9wdGlvbnM6e3dlZWtTdGFydHNPbjowLGZpcnN0V2Vla0NvbnRhaW5zRGF0ZToxfX0samwxPVNhfSk7dmFyIEdvPWIoKCk9PntkWigpfSk7ZnVuY3Rpb24gb3AodCxlKXtsZXQgYT1uZSh0LGU/LmluKTtyZXR1cm4gcDIoYSxaNChhKSkrMX12YXIgS2wxLHBTPWIoKCk9PntycygpO3JwKCk7QWUoKTtLbDE9b3B9KTtmdW5jdGlvbiBRNCh0LGUpe2xldCBhPW5lKHQsZT8uaW4pLGk9K1cxKGEpLStJYShhKTtyZXR1cm4gTWF0aC5yb3VuZChpL3VyKSsxfXZhciBpYzEsbHA9YigoKT0+e3l0KCk7YnIoKTtSNCgpO0FlKCk7aWMxPVE0fSk7ZnVuY3Rpb24gdm4odCxlKXtsZXQgYT1uZSh0LGU/LmluKSxpPWEuZ2V0RnVsbFllYXIoKSxyPUt0KCkscz1lPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2U/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPUxlKGU/LmlufHx0LDApO24uc2V0RnVsbFllYXIoaSsxLDAscyksbi5zZXRIb3VycygwLDAsMCwwKTtsZXQgbz1jMShuLGUpLGQ9TGUoZT8uaW58fHQsMCk7ZC5zZXRGdWxsWWVhcihpLDAscyksZC5zZXRIb3VycygwLDAsMCwwKTtsZXQgYz1jMShkLGUpO3JldHVybithPj0rbz9pKzE6K2E+PStjP2k6aS0xfXZhciBjYzEsSGM9YigoKT0+e08yKCk7YXQoKTtEaSgpO0FlKCk7Y2MxPXZufSk7ZnVuY3Rpb24gWW8odCxlKXtsZXQgYT1LdCgpLGk9ZT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5maXJzdFdlZWtDb250YWluc0RhdGU/P2EubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEscj12bih0LGUpLHM9TGUoZT8uaW58fHQsMCk7cmV0dXJuIHMuc2V0RnVsbFllYXIociwwLGkpLHMuc2V0SG91cnMoMCwwLDAsMCksYzEocyxlKX12YXIgbWMxLGNwPWIoKCk9PntPMigpO2F0KCk7SGMoKTtEaSgpO21jMT1Zb30pO2Z1bmN0aW9uIEo0KHQsZSl7bGV0IGE9bmUodCxlPy5pbiksaT0rYzEoYSxlKS0rWW8oYSxlKTtyZXR1cm4gTWF0aC5yb3VuZChpL3VyKSsxfXZhciB3YzEsZHA9YigoKT0+e3l0KCk7RGkoKTtjcCgpO0FlKCk7d2MxPUo0fSk7ZnVuY3Rpb24gWWUodCxlKXtsZXQgYT10PDA/Ii0iOiIiLGk9TWF0aC5hYnModCkudG9TdHJpbmcoKS5wYWRTdGFydChlLCIwIik7cmV0dXJuIGEraX12YXIgWm89YigoKT0+e30pO3ZhciBOYSxoUz1iKCgpPT57Wm8oKTtOYT17eSh0LGUpe2xldCBhPXQuZ2V0RnVsbFllYXIoKSxpPWE+MD9hOjEtYTtyZXR1cm4gWWUoZT09PSJ5eSI/aSUxMDA6aSxlLmxlbmd0aCl9LE0odCxlKXtsZXQgYT10LmdldE1vbnRoKCk7cmV0dXJuIGU9PT0iTSI/U3RyaW5nKGErMSk6WWUoYSsxLDIpfSxkKHQsZSl7cmV0dXJuIFllKHQuZ2V0RGF0ZSgpLGUubGVuZ3RoKX0sYSh0LGUpe2xldCBhPXQuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKGUpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIGEudG9VcHBlckNhc2UoKTtjYXNlImFhYSI6cmV0dXJuIGE7Y2FzZSJhYWFhYSI6cmV0dXJuIGFbMF07ZGVmYXVsdDpyZXR1cm4gYT09PSJhbSI/ImEubS4iOiJwLm0uIn19LGgodCxlKXtyZXR1cm4gWWUodC5nZXRIb3VycygpJTEyfHwxMixlLmxlbmd0aCl9LEgodCxlKXtyZXR1cm4gWWUodC5nZXRIb3VycygpLGUubGVuZ3RoKX0sbSh0LGUpe3JldHVybiBZZSh0LmdldE1pbnV0ZXMoKSxlLmxlbmd0aCl9LHModCxlKXtyZXR1cm4gWWUodC5nZXRTZWNvbmRzKCksZS5sZW5ndGgpfSxTKHQsZSl7bGV0IGE9ZS5sZW5ndGgsaT10LmdldE1pbGxpc2Vjb25kcygpLHI9TWF0aC50cnVuYyhpKk1hdGgucG93KDEwLGEtMykpO3JldHVybiBZZShyLGUubGVuZ3RoKX19fSk7ZnVuY3Rpb24gcFoodCxlPSIiKXtsZXQgYT10PjA/Ii0iOiIrIixpPU1hdGguYWJzKHQpLHI9TWF0aC50cnVuYyhpLzYwKSxzPWklNjA7cmV0dXJuIHM9PT0wP2ErU3RyaW5nKHIpOmErU3RyaW5nKHIpK2UrWWUocywyKX1mdW5jdGlvbiBoWih0LGUpe3JldHVybiB0JTYwPT09MD8odD4wPyItIjoiKyIpK1llKE1hdGguYWJzKHQpLzYwLDIpOlhvKHQsZSl9ZnVuY3Rpb24gWG8odCxlPSIiKXtsZXQgYT10PjA/Ii0iOiIrIixpPU1hdGguYWJzKHQpLHI9WWUoTWF0aC50cnVuYyhpLzYwKSwyKSxzPVllKGklNjAsMik7cmV0dXJuIGErcitlK3N9dmFyIGUzLHFjLHVaPWIoKCk9PntwUygpO2xwKCk7dW4oKTtkcCgpO0hjKCk7Wm8oKTtoUygpO2UzPXthbToiYW0iLHBtOiJwbSIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0scWM9e0c6ZnVuY3Rpb24odCxlLGEpe2xldCBpPXQuZ2V0RnVsbFllYXIoKT4wPzE6MDtzd2l0Y2goZSl7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIGEuZXJhKGkse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gYS5lcmEoaSx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiBhLmVyYShpLHt3aWR0aDoid2lkZSJ9KX19LHk6ZnVuY3Rpb24odCxlLGEpe2lmKGU9PT0ieW8iKXtsZXQgaT10LmdldEZ1bGxZZWFyKCkscj1pPjA/aToxLWk7cmV0dXJuIGEub3JkaW5hbE51bWJlcihyLHt1bml0OiJ5ZWFyIn0pfXJldHVybiBOYS55KHQsZSl9LFk6ZnVuY3Rpb24odCxlLGEsaSl7bGV0IHI9dm4odCxpKSxzPXI+MD9yOjEtcjtpZihlPT09IllZIil7bGV0IG49cyUxMDA7cmV0dXJuIFllKG4sMil9cmV0dXJuIGU9PT0iWW8iP2Eub3JkaW5hbE51bWJlcihzLHt1bml0OiJ5ZWFyIn0pOlllKHMsZS5sZW5ndGgpfSxSOmZ1bmN0aW9uKHQsZSl7bGV0IGE9c2EodCk7cmV0dXJuIFllKGEsZS5sZW5ndGgpfSx1OmZ1bmN0aW9uKHQsZSl7bGV0IGE9dC5nZXRGdWxsWWVhcigpO3JldHVybiBZZShhLGUubGVuZ3RoKX0sUTpmdW5jdGlvbih0LGUsYSl7bGV0IGk9TWF0aC5jZWlsKCh0LmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKGUpe2Nhc2UiUSI6cmV0dXJuIFN0cmluZyhpKTtjYXNlIlFRIjpyZXR1cm4gWWUoaSwyKTtjYXNlIlFvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJRUVEiOnJldHVybiBhLnF1YXJ0ZXIoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiBhLnF1YXJ0ZXIoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLnF1YXJ0ZXIoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxxOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT1NYXRoLmNlaWwoKHQuZ2V0TW9udGgoKSsxKS8zKTtzd2l0Y2goZSl7Y2FzZSJxIjpyZXR1cm4gU3RyaW5nKGkpO2Nhc2UicXEiOnJldHVybiBZZShpLDIpO2Nhc2UicW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoaSx7dW5pdDoicXVhcnRlciJ9KTtjYXNlInFxcSI6cmV0dXJuIGEucXVhcnRlcihpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxcSI6cmV0dXJuIGEucXVhcnRlcihpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEucXVhcnRlcihpLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19LE06ZnVuY3Rpb24odCxlLGEpe2xldCBpPXQuZ2V0TW9udGgoKTtzd2l0Y2goZSl7Y2FzZSJNIjpjYXNlIk1NIjpyZXR1cm4gTmEuTSh0LGUpO2Nhc2UiTW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIoaSsxLHt1bml0OiJtb250aCJ9KTtjYXNlIk1NTSI6cmV0dXJuIGEubW9udGgoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiBhLm1vbnRoKGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5tb250aChpLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LEw6ZnVuY3Rpb24odCxlLGEpe2xldCBpPXQuZ2V0TW9udGgoKTtzd2l0Y2goZSl7Y2FzZSJMIjpyZXR1cm4gU3RyaW5nKGkrMSk7Y2FzZSJMTCI6cmV0dXJuIFllKGkrMSwyKTtjYXNlIkxvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKGkrMSx7dW5pdDoibW9udGgifSk7Y2FzZSJMTEwiOnJldHVybiBhLm1vbnRoKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlIkxMTExMIjpyZXR1cm4gYS5tb250aChpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGEubW9udGgoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSx3OmZ1bmN0aW9uKHQsZSxhLGkpe2xldCByPUo0KHQsaSk7cmV0dXJuIGU9PT0id28iP2Eub3JkaW5hbE51bWJlcihyLHt1bml0OiJ3ZWVrIn0pOlllKHIsZS5sZW5ndGgpfSxJOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT1RNCh0KTtyZXR1cm4gZT09PSJJbyI/YS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6IndlZWsifSk6WWUoaSxlLmxlbmd0aCl9LGQ6ZnVuY3Rpb24odCxlLGEpe3JldHVybiBlPT09ImRvIj9hLm9yZGluYWxOdW1iZXIodC5nZXREYXRlKCkse3VuaXQ6ImRhdGUifSk6TmEuZCh0LGUpfSxEOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT1vcCh0KTtyZXR1cm4gZT09PSJEbyI/YS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6ImRheU9mWWVhciJ9KTpZZShpLGUubGVuZ3RoKX0sRTpmdW5jdGlvbih0LGUsYSl7bGV0IGk9dC5nZXREYXkoKTtzd2l0Y2goZSl7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIGEuZGF5KGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkVFRUVFIjpyZXR1cm4gYS5kYXkoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkVFRUVFRSI6cmV0dXJuIGEuZGF5KGkse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheShpLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGU6ZnVuY3Rpb24odCxlLGEsaSl7bGV0IHI9dC5nZXREYXkoKSxzPShyLWkud2Vla1N0YXJ0c09uKzgpJTd8fDc7c3dpdGNoKGUpe2Nhc2UiZSI6cmV0dXJuIFN0cmluZyhzKTtjYXNlImVlIjpyZXR1cm4gWWUocywyKTtjYXNlImVvIjpyZXR1cm4gYS5vcmRpbmFsTnVtYmVyKHMse3VuaXQ6ImRheSJ9KTtjYXNlImVlZSI6cmV0dXJuIGEuZGF5KHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gYS5kYXkocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIGEuZGF5KHIse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheShyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGM6ZnVuY3Rpb24odCxlLGEsaSl7bGV0IHI9dC5nZXREYXkoKSxzPShyLWkud2Vla1N0YXJ0c09uKzgpJTd8fDc7c3dpdGNoKGUpe2Nhc2UiYyI6cmV0dXJuIFN0cmluZyhzKTtjYXNlImNjIjpyZXR1cm4gWWUocyxlLmxlbmd0aCk7Y2FzZSJjbyI6cmV0dXJuIGEub3JkaW5hbE51bWJlcihzLHt1bml0OiJkYXkifSk7Y2FzZSJjY2MiOnJldHVybiBhLmRheShyLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjYyI6cmV0dXJuIGEuZGF5KHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjY2MiOnJldHVybiBhLmRheShyLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXkocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSxpOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldERheSgpLHI9aT09PTA/NzppO3N3aXRjaChlKXtjYXNlImkiOnJldHVybiBTdHJpbmcocik7Y2FzZSJpaSI6cmV0dXJuIFllKHIsZS5sZW5ndGgpO2Nhc2UiaW8iOnJldHVybiBhLm9yZGluYWxOdW1iZXIocix7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gYS5kYXkoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiaWlpaWkiOnJldHVybiBhLmRheShpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiaWlpaWlpIjpyZXR1cm4gYS5kYXkoaSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGEuZGF5KGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sYTpmdW5jdGlvbih0LGUsYSl7bGV0IHI9dC5nZXRIb3VycygpLzEyPj0xPyJwbSI6ImFtIjtzd2l0Y2goZSl7Y2FzZSJhIjpjYXNlImFhIjpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhIjpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLnRvTG93ZXJDYXNlKCk7Y2FzZSJhYWFhYSI6cmV0dXJuIGEuZGF5UGVyaW9kKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxiOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldEhvdXJzKCkscjtzd2l0Y2goaT09PTEyP3I9ZTMubm9vbjppPT09MD9yPWUzLm1pZG5pZ2h0OnI9aS8xMj49MT8icG0iOiJhbSIsZSl7Y2FzZSJiIjpjYXNlImJiIjpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYmJiIjpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLnRvTG93ZXJDYXNlKCk7Y2FzZSJiYmJiYiI6cmV0dXJuIGEuZGF5UGVyaW9kKHIse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxCOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldEhvdXJzKCkscjtzd2l0Y2goaT49MTc/cj1lMy5ldmVuaW5nOmk+PTEyP3I9ZTMuYWZ0ZXJub29uOmk+PTQ/cj1lMy5tb3JuaW5nOnI9ZTMubmlnaHQsZSl7Y2FzZSJCIjpjYXNlIkJCIjpjYXNlIkJCQiI6cmV0dXJuIGEuZGF5UGVyaW9kKHIse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIkJCQkJCIjpyZXR1cm4gYS5kYXlQZXJpb2Qocix7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBhLmRheVBlcmlvZChyLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGg6ZnVuY3Rpb24odCxlLGEpe2lmKGU9PT0iaG8iKXtsZXQgaT10LmdldEhvdXJzKCklMTI7cmV0dXJuIGk9PT0wJiYoaT0xMiksYS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6ImhvdXIifSl9cmV0dXJuIE5hLmgodCxlKX0sSDpmdW5jdGlvbih0LGUsYSl7cmV0dXJuIGU9PT0iSG8iP2Eub3JkaW5hbE51bWJlcih0LmdldEhvdXJzKCkse3VuaXQ6ImhvdXIifSk6TmEuSCh0LGUpfSxLOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldEhvdXJzKCklMTI7cmV0dXJuIGU9PT0iS28iP2Eub3JkaW5hbE51bWJlcihpLHt1bml0OiJob3VyIn0pOlllKGksZS5sZW5ndGgpfSxrOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldEhvdXJzKCk7cmV0dXJuIGk9PT0wJiYoaT0yNCksZT09PSJrbyI/YS5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6ImhvdXIifSk6WWUoaSxlLmxlbmd0aCl9LG06ZnVuY3Rpb24odCxlLGEpe3JldHVybiBlPT09Im1vIj9hLm9yZGluYWxOdW1iZXIodC5nZXRNaW51dGVzKCkse3VuaXQ6Im1pbnV0ZSJ9KTpOYS5tKHQsZSl9LHM6ZnVuY3Rpb24odCxlLGEpe3JldHVybiBlPT09InNvIj9hLm9yZGluYWxOdW1iZXIodC5nZXRTZWNvbmRzKCkse3VuaXQ6InNlY29uZCJ9KTpOYS5zKHQsZSl9LFM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gTmEuUyh0LGUpfSxYOmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoaT09PTApcmV0dXJuIloiO3N3aXRjaChlKXtjYXNlIlgiOnJldHVybiBoWihpKTtjYXNlIlhYWFgiOmNhc2UiWFgiOnJldHVybiBYbyhpKTtkZWZhdWx0OnJldHVybiBYbyhpLCI6Iil9fSx4OmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT10LmdldFRpbWV6b25lT2Zmc2V0KCk7c3dpdGNoKGUpe2Nhc2UieCI6cmV0dXJuIGhaKGkpO2Nhc2UieHh4eCI6Y2FzZSJ4eCI6cmV0dXJuIFhvKGkpO2RlZmF1bHQ6cmV0dXJuIFhvKGksIjoiKX19LE86ZnVuY3Rpb24odCxlLGEpe2xldCBpPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2goZSl7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6cmV0dXJuIkdNVCIrcFooaSwiOiIpO2RlZmF1bHQ6cmV0dXJuIkdNVCIrWG8oaSwiOiIpfX0sejpmdW5jdGlvbih0LGUsYSl7bGV0IGk9dC5nZXRUaW1lem9uZU9mZnNldCgpO3N3aXRjaChlKXtjYXNlInoiOmNhc2UienoiOmNhc2Uienp6IjpyZXR1cm4iR01UIitwWihpLCI6Iik7ZGVmYXVsdDpyZXR1cm4iR01UIitYbyhpLCI6Iil9fSx0OmZ1bmN0aW9uKHQsZSxhKXtsZXQgaT1NYXRoLnRydW5jKCt0LzFlMyk7cmV0dXJuIFllKGksZS5sZW5ndGgpfSxUOmZ1bmN0aW9uKHQsZSxhKXtyZXR1cm4gWWUoK3QsZS5sZW5ndGgpfX19KTt2YXIgZlosbVosbUN0LHluLHVTPWIoKCk9PntmWj0odCxlKT0+e3N3aXRjaCh0KXtjYXNlIlAiOnJldHVybiBlLmRhdGUoe3dpZHRoOiJzaG9ydCJ9KTtjYXNlIlBQIjpyZXR1cm4gZS5kYXRlKHt3aWR0aDoibWVkaXVtIn0pO2Nhc2UiUFBQIjpyZXR1cm4gZS5kYXRlKHt3aWR0aDoibG9uZyJ9KTtkZWZhdWx0OnJldHVybiBlLmRhdGUoe3dpZHRoOiJmdWxsIn0pfX0sbVo9KHQsZSk9Pntzd2l0Y2godCl7Y2FzZSJwIjpyZXR1cm4gZS50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIGUudGltZSh7d2lkdGg6ImxvbmcifSk7ZGVmYXVsdDpyZXR1cm4gZS50aW1lKHt3aWR0aDoiZnVsbCJ9KX19LG1DdD0odCxlKT0+e2xldCBhPXQubWF0Y2goLyhQKykocCspPy8pfHxbXSxpPWFbMV0scj1hWzJdO2lmKCFyKXJldHVybiBmWih0LGUpO2xldCBzO3N3aXRjaChpKXtjYXNlIlAiOnM9ZS5kYXRlVGltZSh7d2lkdGg6InNob3J0In0pO2JyZWFrO2Nhc2UiUFAiOnM9ZS5kYXRlVGltZSh7d2lkdGg6Im1lZGl1bSJ9KTticmVhaztjYXNlIlBQUCI6cz1lLmRhdGVUaW1lKHt3aWR0aDoibG9uZyJ9KTticmVhaztkZWZhdWx0OnM9ZS5kYXRlVGltZSh7d2lkdGg6ImZ1bGwifSk7YnJlYWt9cmV0dXJuIHMucmVwbGFjZSgie3tkYXRlfX0iLGZaKGksZSkpLnJlcGxhY2UoInt7dGltZX19IixtWihyLGUpKX0seW49e3A6bVosUDptQ3R9fSk7ZnVuY3Rpb24gcHAodCl7cmV0dXJuIGdDdC50ZXN0KHQpfWZ1bmN0aW9uIGhwKHQpe3JldHVybiBiQ3QudGVzdCh0KX1mdW5jdGlvbiBWYyh0LGUsYSl7bGV0IGk9eUN0KHQsZSxhKTtpZihjb25zb2xlLndhcm4oaSksdkN0LmluY2x1ZGVzKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKGkpfWZ1bmN0aW9uIHlDdCh0LGUsYSl7bGV0IGk9dFswXT09PSJZIj8ieWVhcnMiOiJkYXlzIG9mIHRoZSBtb250aCI7cmV0dXJuYFVzZSBcYCR7dC50b0xvd2VyQ2FzZSgpfVxgIGluc3RlYWQgb2YgXGAke3R9XGAgKGluIFxgJHtlfVxgKSBmb3IgZm9ybWF0dGluZyAke2l9IHRvIHRoZSBpbnB1dCBcYCR7YX1cYDsgc2VlOiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91bmljb2RlVG9rZW5zLm1kYH12YXIgZ0N0LGJDdCx2Q3QsZlM9YigoKT0+e2dDdD0vXkQrJC8sYkN0PS9eWSskLyx2Q3Q9WyJEIiwiREQiLCJZWSIsIllZWVkiXX0pO2Z1bmN0aW9uIGpjKHQsZSxhKXtsZXQgaT1LdCgpLHI9YT8ubG9jYWxlPz9pLmxvY2FsZT8/U2Escz1hPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2E/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPWE/LndlZWtTdGFydHNPbj8/YT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2kud2Vla1N0YXJ0c09uPz9pLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG89bmUodCxhPy5pbik7aWYoIXoyKG8pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgZD1lLm1hdGNoKHdDdCkubWFwKHA9PntsZXQgbD1wWzBdO2lmKGw9PT0icCJ8fGw9PT0iUCIpe2xldCBmPXluW2xdO3JldHVybiBmKHAsci5mb3JtYXRMb25nKX1yZXR1cm4gcH0pLmpvaW4oIiIpLm1hdGNoKHhDdCkubWFwKHA9PntpZihwPT09IicnIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZToiJyJ9O2xldCBsPXBbMF07aWYobD09PSInIilyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTpTQ3QocCl9O2lmKHFjW2xdKXJldHVybntpc1Rva2VuOiEwLHZhbHVlOnB9O2lmKGwubWF0Y2goa0N0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGAiK2wrImAiKTtyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTpwfX0pO3IubG9jYWxpemUucHJlcHJvY2Vzc29yJiYoZD1yLmxvY2FsaXplLnByZXByb2Nlc3NvcihvLGQpKTtsZXQgYz17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOnMsd2Vla1N0YXJ0c09uOm4sbG9jYWxlOnJ9O3JldHVybiBkLm1hcChwPT57aWYoIXAuaXNUb2tlbilyZXR1cm4gcC52YWx1ZTtsZXQgbD1wLnZhbHVlOyghYT8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZocChsKXx8IWE/LnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnMmJnBwKGwpKSYmVmMobCxlLFN0cmluZyh0KSk7bGV0IGY9cWNbbFswXV07cmV0dXJuIGYobyxsLHIubG9jYWxpemUsYyl9KS5qb2luKCIiKX1mdW5jdGlvbiBTQ3QodCl7bGV0IGU9dC5tYXRjaChNQ3QpO3JldHVybiBlP2VbMV0ucmVwbGFjZSh6Q3QsIiciKTp0fXZhciB4Q3Qsd0N0LE1DdCx6Q3Qsa0N0LFZjMSxtUz1iKCgpPT57R28oKTtPMigpO3VaKCk7dVMoKTtmUygpO3NzKCk7QWUoKTt4Q3Q9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFx3KVwxKnwnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyx3Q3Q9L1ArcCt8UCt8cCt8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csTUN0PS9eJyhbXl0qPyknPyQvLHpDdD0vJycvZyxrQ3Q9L1thLXpBLVpdLztWYzE9amN9KTtmdW5jdGlvbiB1cCh0LGUsYSl7bGV0IGk9S3QoKSxyPWE/LmxvY2FsZT8/aS5sb2NhbGU/P1NhLHM9MjUyMCxuPVIyKHQsZSk7aWYoaXNOYU4obikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBvPU9iamVjdC5hc3NpZ24oe30sYSx7YWRkU3VmZml4OmE/LmFkZFN1ZmZpeCxjb21wYXJpc29uOm59KSxbZCxjXT1KZShhPy5pbiwuLi5uPjA/W2UsdF06W3QsZV0pLHA9eHIoYyxkKSxsPShBMShjKS1BMShkKSkvMWUzLGY9TWF0aC5yb3VuZCgocC1sKS82MCksZztpZihmPDIpcmV0dXJuIGE/LmluY2x1ZGVTZWNvbmRzP3A8NT9yLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiw1LG8pOnA8MTA/ci5mb3JtYXREaXN0YW5jZSgibGVzc1RoYW5YU2Vjb25kcyIsMTAsbyk6cDwyMD9yLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwyMCxvKTpwPDQwP3IuZm9ybWF0RGlzdGFuY2UoImhhbGZBTWludXRlIiwwLG8pOnA8NjA/ci5mb3JtYXREaXN0YW5jZSgibGVzc1RoYW5YTWludXRlcyIsMSxvKTpyLmZvcm1hdERpc3RhbmNlKCJ4TWludXRlcyIsMSxvKTpmPT09MD9yLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLG8pOnIuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIixmLG8pO2lmKGY8NDUpcmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIixmLG8pO2lmKGY8OTApcmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoImFib3V0WEhvdXJzIiwxLG8pO2lmKGY8TjQpe2xldCB5PU1hdGgucm91bmQoZi82MCk7cmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoImFib3V0WEhvdXJzIix5LG8pfWVsc2V7aWYoZjxzKXJldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIsMSxvKTtpZihmPGRuKXtsZXQgeT1NYXRoLnJvdW5kKGYvTjQpO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4RGF5cyIseSxvKX1lbHNlIGlmKGY8ZG4qMilyZXR1cm4gZz1NYXRoLnJvdW5kKGYvZG4pLHIuZm9ybWF0RGlzdGFuY2UoImFib3V0WE1vbnRocyIsZyxvKX1pZihnPWduKGMsZCksZzwxMil7bGV0IHk9TWF0aC5yb3VuZChmL2RuKTtyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgieE1vbnRocyIseSxvKX1lbHNle2xldCB5PWclMTIsdj1NYXRoLnRydW5jKGcvMTIpO3JldHVybiB5PDM/ci5mb3JtYXREaXN0YW5jZSgiYWJvdXRYWWVhcnMiLHYsbyk6eTw5P3IuZm9ybWF0RGlzdGFuY2UoIm92ZXJYWWVhcnMiLHYsbyk6ci5mb3JtYXREaXN0YW5jZSgiYWxtb3N0WFllYXJzIix2KzEsbyl9fXZhciBKYzEsZ1M9YigoKT0+e0dvKCk7TzIoKTtpcygpO2kxKCk7cW8oKTt5dCgpO09jKCk7UmMoKTtKYzE9dXB9KTtmdW5jdGlvbiBmcCh0LGUsYSl7bGV0IGk9S3QoKSxyPWE/LmxvY2FsZT8/aS5sb2NhbGU/P1NhLHM9UjIodCxlKTtpZihpc05hTihzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IG49T2JqZWN0LmFzc2lnbih7fSxhLHthZGRTdWZmaXg6YT8uYWRkU3VmZml4LGNvbXBhcmlzb246c30pLFtvLGRdPUplKGE/LmluLC4uLnM+MD9bZSx0XTpbdCxlXSksYz1CMihhPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIikscD1kLmdldFRpbWUoKS1vLmdldFRpbWUoKSxsPXAvRjIsZj1BMShkKS1BMShvKSxnPShwLWYpL0YyLHk9YT8udW5pdCx2O2lmKHk/dj15Omw8MT92PSJzZWNvbmQiOmw8NjA/dj0ibWludXRlIjpsPE40P3Y9ImhvdXIiOmc8ZG4/dj0iZGF5IjpnPFJrP3Y9Im1vbnRoIjp2PSJ5ZWFyIix2PT09InNlY29uZCIpe2xldCBtPWMocC8xZTMpO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4U2Vjb25kcyIsbSxuKX1lbHNlIGlmKHY9PT0ibWludXRlIil7bGV0IG09YyhsKTtyZXR1cm4gci5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLG0sbil9ZWxzZSBpZih2PT09ImhvdXIiKXtsZXQgbT1jKGwvNjApO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4SG91cnMiLG0sbil9ZWxzZSBpZih2PT09ImRheSIpe2xldCBtPWMoZy9ONCk7cmV0dXJuIHIuZm9ybWF0RGlzdGFuY2UoInhEYXlzIixtLG4pfWVsc2UgaWYodj09PSJtb250aCIpe2xldCBtPWMoZy9kbik7cmV0dXJuIG09PT0xMiYmeSE9PSJtb250aCI/ci5mb3JtYXREaXN0YW5jZSgieFllYXJzIiwxLG4pOnIuZm9ybWF0RGlzdGFuY2UoInhNb250aHMiLG0sbil9ZWxzZXtsZXQgbT1jKGcvUmspO3JldHVybiByLmZvcm1hdERpc3RhbmNlKCJ4WWVhcnMiLG0sbil9fXZhciBsNjEsYlM9YigoKT0+e0dvKCk7TzIoKTtucygpO2lzKCk7aTEoKTtxbygpO3l0KCk7bDYxPWZwfSk7ZnVuY3Rpb24gZ1oodCxlKXtyZXR1cm4gdXAodCxDdCh0KSxlKX12YXIgaDYxLGJaPWIoKCk9PntKMSgpO2dTKCk7aDYxPWdafSk7ZnVuY3Rpb24gdloodCxlKXtyZXR1cm4gZnAodCxDdCh0KSxlKX12YXIgZzYxLHlaPWIoKCk9PntKMSgpO2JTKCk7ZzYxPXZafSk7ZnVuY3Rpb24geFoodCxlKXtsZXQgYT1LdCgpLGk9ZT8ubG9jYWxlPz9hLmxvY2FsZT8/U2Escj1lPy5mb3JtYXQ/P0NDdCxzPWU/Lnplcm8/PyExLG49ZT8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2U/ci5yZWR1Y2UoKGQsYyk9PntsZXQgcD1geCR7Yy5yZXBsYWNlKC8oXi4pLyxmPT5mLnRvVXBwZXJDYXNlKCkpfWAsbD10W2NdO3JldHVybiBsIT09dm9pZCAwJiYoc3x8dFtjXSk/ZC5jb25jYXQoaS5mb3JtYXREaXN0YW5jZShwLGwpKTpkfSxbXSkuam9pbihuKToiIn12YXIgQ0N0LHg2MSx3Wj1iKCgpPT57R28oKTtPMigpO0NDdD1bInllYXJzIiwibW9udGhzIiwid2Vla3MiLCJkYXlzIiwiaG91cnMiLCJtaW51dGVzIiwic2Vjb25kcyJdO3g2MT14Wn0pO2Z1bmN0aW9uIE1aKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7aWYoaXNOYU4oK2EpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT1lPy5mb3JtYXQ/PyJleHRlbmRlZCIscj1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixzPSIiLG49IiIsbz1pPT09ImV4dGVuZGVkIj8iLSI6IiIsZD1pPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYociE9PSJ0aW1lIil7bGV0IGM9WWUoYS5nZXREYXRlKCksMikscD1ZZShhLmdldE1vbnRoKCkrMSwyKTtzPWAke1llKGEuZ2V0RnVsbFllYXIoKSw0KX0ke299JHtwfSR7b30ke2N9YH1pZihyIT09ImRhdGUiKXtsZXQgYz1hLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoYyE9PTApe2xldCB2PU1hdGguYWJzKGMpLG09WWUoTWF0aC50cnVuYyh2LzYwKSwyKSx4PVllKHYlNjAsMik7bj1gJHtjPDA/IisiOiItIn0ke219OiR7eH1gfWVsc2Ugbj0iWiI7bGV0IHA9WWUoYS5nZXRIb3VycygpLDIpLGw9WWUoYS5nZXRNaW51dGVzKCksMiksZj1ZZShhLmdldFNlY29uZHMoKSwyKSxnPXM9PT0iIj8iIjoiVCIseT1bcCxsLGZdLmpvaW4oZCk7cz1gJHtzfSR7Z30ke3l9JHtufWB9cmV0dXJuIHN9dmFyIGs2MSx6Wj1iKCgpPT57Wm8oKTtBZSgpO2s2MT1NWn0pO2Z1bmN0aW9uIGtaKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7aWYoIXoyKGEpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT1lPy5mb3JtYXQ/PyJleHRlbmRlZCIscj1lPy5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixzPSIiLG49aT09PSJleHRlbmRlZCI/Ii0iOiIiLG89aT09PSJleHRlbmRlZCI/IjoiOiIiO2lmKHIhPT0idGltZSIpe2xldCBkPVllKGEuZ2V0RGF0ZSgpLDIpLGM9WWUoYS5nZXRNb250aCgpKzEsMik7cz1gJHtZZShhLmdldEZ1bGxZZWFyKCksNCl9JHtufSR7Y30ke259JHtkfWB9aWYociE9PSJkYXRlIil7bGV0IGQ9WWUoYS5nZXRIb3VycygpLDIpLGM9WWUoYS5nZXRNaW51dGVzKCksMikscD1ZZShhLmdldFNlY29uZHMoKSwyKTtzPWAke3N9JHtzPT09IiI/IiI6IiAifSR7ZH0ke299JHtjfSR7b30ke3B9YH1yZXR1cm4gc312YXIgTDYxLFNaPWIoKCk9PntabygpO3NzKCk7QWUoKTtMNjE9a1p9KTtmdW5jdGlvbiBDWih0KXtsZXR7eWVhcnM6ZT0wLG1vbnRoczphPTAsZGF5czppPTAsaG91cnM6cj0wLG1pbnV0ZXM6cz0wLHNlY29uZHM6bj0wfT10O3JldHVybmBQJHtlfVkke2F9TSR7aX1EVCR7cn1IJHtzfU0ke259U2B9dmFyIEE2MSxfWj1iKCgpPT57QTYxPUNafSk7ZnVuY3Rpb24gVFoodCxlKXtsZXQgYT1uZSh0LGU/LmluKTtpZighejIoYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPWU/LmZyYWN0aW9uRGlnaXRzPz8wLHI9WWUoYS5nZXREYXRlKCksMikscz1ZZShhLmdldE1vbnRoKCkrMSwyKSxuPWEuZ2V0RnVsbFllYXIoKSxvPVllKGEuZ2V0SG91cnMoKSwyKSxkPVllKGEuZ2V0TWludXRlcygpLDIpLGM9WWUoYS5nZXRTZWNvbmRzKCksMikscD0iIjtpZihpPjApe2xldCBnPWEuZ2V0TWlsbGlzZWNvbmRzKCkseT1NYXRoLnRydW5jKGcqTWF0aC5wb3coMTAsaS0zKSk7cD0iLiIrWWUoeSxpKX1sZXQgbD0iIixmPWEuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihmIT09MCl7bGV0IGc9TWF0aC5hYnMoZikseT1ZZShNYXRoLnRydW5jKGcvNjApLDIpLHY9WWUoZyU2MCwyKTtsPWAke2Y8MD8iKyI6Ii0ifSR7eX06JHt2fWB9ZWxzZSBsPSJaIjtyZXR1cm5gJHtufS0ke3N9LSR7cn1UJHtvfToke2R9OiR7Y30ke3B9JHtsfWB9dmFyIE42MSxMWj1iKCgpPT57Wm8oKTtzcygpO0FlKCk7TjYxPVRafSk7ZnVuY3Rpb24gJFoodCl7bGV0IGU9bmUodCk7aWYoIXoyKGUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYT1fQ3RbZS5nZXRVVENEYXkoKV0saT1ZZShlLmdldFVUQ0RhdGUoKSwyKSxyPVRDdFtlLmdldFVUQ01vbnRoKCldLHM9ZS5nZXRVVENGdWxsWWVhcigpLG49WWUoZS5nZXRVVENIb3VycygpLDIpLG89WWUoZS5nZXRVVENNaW51dGVzKCksMiksZD1ZZShlLmdldFVUQ1NlY29uZHMoKSwyKTtyZXR1cm5gJHthfSwgJHtpfSAke3J9ICR7c30gJHtufToke299OiR7ZH0gR01UYH12YXIgX0N0LFRDdCxINjEsQVo9YigoKT0+e1pvKCk7c3MoKTtBZSgpO19DdD1bIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLFRDdD1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdO0g2MT0kWn0pO2Z1bmN0aW9uIERaKHQsZSxhKXtsZXRbaSxyXT1KZShhPy5pbix0LGUpLHM9S3QoKSxuPWE/LmxvY2FsZT8/cy5sb2NhbGU/P1NhLG89YT8ud2Vla1N0YXJ0c09uPz9hPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/cy53ZWVrU3RhcnRzT24/P3MubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsZD1wMihpLHIpO2lmKGlzTmFOKGQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYztkPC02P2M9Im90aGVyIjpkPC0xP2M9Imxhc3RXZWVrIjpkPDA/Yz0ieWVzdGVyZGF5IjpkPDE/Yz0idG9kYXkiOmQ8Mj9jPSJ0b21vcnJvdyI6ZDw3P2M9Im5leHRXZWVrIjpjPSJvdGhlciI7bGV0IHA9bi5mb3JtYXRSZWxhdGl2ZShjLGkscix7bG9jYWxlOm4sd2Vla1N0YXJ0c09uOm99KTtyZXR1cm4gamMoaSxwLHtsb2NhbGU6bix3ZWVrU3RhcnRzT246b30pfXZhciBZNjEsRVo9YigoKT0+e0dvKCk7TzIoKTtpMSgpO3JzKCk7bVMoKTtZNjE9RFp9KTtmdW5jdGlvbiBQWih0LGUpe3JldHVybiBuZSh0KjFlMyxlPy5pbil9dmFyIEs2MSxJWj1iKCgpPT57QWUoKTtLNjE9UFp9KTtmdW5jdGlvbiBtcCh0LGUpe3JldHVybiBuZSh0LGU/LmluKS5nZXREYXRlKCl9dmFyIGU1MSx2Uz1iKCgpPT57QWUoKTtlNTE9bXB9KTtmdW5jdGlvbiB4bih0LGUpe3JldHVybiBuZSh0LGU/LmluKS5nZXREYXkoKX12YXIgaTUxLFVjPWIoKCk9PntBZSgpO2k1MT14bn0pO2Z1bmN0aW9uIGdwKHQsZSl7bGV0IGE9bmUodCxlPy5pbiksaT1hLmdldEZ1bGxZZWFyKCkscj1hLmdldE1vbnRoKCkscz1MZShhLDApO3JldHVybiBzLnNldEZ1bGxZZWFyKGkscisxLDApLHMuc2V0SG91cnMoMCwwLDAsMCkscy5nZXREYXRlKCl9dmFyIG81MSx5Uz1iKCgpPT57YXQoKTtBZSgpO281MT1ncH0pO2Z1bmN0aW9uIGJwKHQsZSl7bGV0IGk9bmUodCxlPy5pbikuZ2V0RnVsbFllYXIoKTtyZXR1cm4gaSU0MDA9PT0wfHxpJTQ9PT0wJiZpJTEwMCE9PTB9dmFyIGQ1MSx4Uz1iKCgpPT57QWUoKTtkNTE9YnB9KTtmdW5jdGlvbiBOWih0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBOdW1iZXIuaXNOYU4oK2EpP05hTjpicChhKT8zNjY6MzY1fXZhciBmNTEsRlo9YigoKT0+e3hTKCk7QWUoKTtmNTE9Tlp9KTtmdW5jdGlvbiBPWih0LGUpe2xldCBpPW5lKHQsZT8uaW4pLmdldEZ1bGxZZWFyKCk7cmV0dXJuIE1hdGguZmxvb3IoaS8xMCkqMTB9dmFyIGI1MSxSWj1iKCgpPT57QWUoKTtiNTE9T1p9KTtmdW5jdGlvbiB2cCgpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LEt0KCkpfXZhciB4NTEsd1M9YigoKT0+e08yKCk7eDUxPXZwfSk7ZnVuY3Rpb24gQloodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0SG91cnMoKX12YXIgejUxLEhaPWIoKCk9PntBZSgpO3o1MT1CWn0pO2Z1bmN0aW9uIHlwKHQsZSl7bGV0IGE9bmUodCxlPy5pbikuZ2V0RGF5KCk7cmV0dXJuIGE9PT0wPzc6YX12YXIgQzUxLE1TPWIoKCk9PntBZSgpO0M1MT15cH0pO2Z1bmN0aW9uIHFaKHQsZSl7bGV0IGE9SWEodCxlKSxyPStJYShmbihhLDYwKSktK2E7cmV0dXJuIE1hdGgucm91bmQoci91cil9dmFyIEE1MSxWWj1iKCgpPT57TmMoKTt5dCgpO1I0KCk7QTUxPXFafSk7ZnVuY3Rpb24galoodCl7cmV0dXJuIG5lKHQpLmdldE1pbGxpc2Vjb25kcygpfXZhciBQNTEsVVo9YigoKT0+e0FlKCk7UDUxPWpafSk7ZnVuY3Rpb24gV1oodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0TWludXRlcygpfXZhciBGNTEsR1o9YigoKT0+e0FlKCk7RjUxPVdafSk7ZnVuY3Rpb24gWVoodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0TW9udGgoKX12YXIgQjUxLFpaPWIoKCk9PntBZSgpO0I1MT1ZWn0pO2Z1bmN0aW9uIFhaKHQsZSl7bGV0W2EsaV09WytuZSh0LnN0YXJ0KSwrbmUodC5lbmQpXS5zb3J0KChsLGYpPT5sLWYpLFtyLHNdPVsrbmUoZS5zdGFydCksK25lKGUuZW5kKV0uc29ydCgobCxmKT0+bC1mKTtpZighKGE8cyYmcjxpKSlyZXR1cm4gMDtsZXQgbz1yPGE/YTpyLGQ9by1BMShvKSxjPXM+aT9pOnMscD1jLUExKGMpO3JldHVybiBNYXRoLmNlaWwoKHAtZCkvTTcpfXZhciBVNTEsS1o9YigoKT0+e2lzKCk7eXQoKTtBZSgpO1U1MT1YWn0pO2Z1bmN0aW9uIFFaKHQpe3JldHVybiBuZSh0KS5nZXRTZWNvbmRzKCl9dmFyIFk1MSxKWj1iKCgpPT57QWUoKTtZNTE9UVp9KTtmdW5jdGlvbiBlWCh0KXtyZXR1cm4rbmUodCl9dmFyIEs1MSx0WD1iKCgpPT57QWUoKTtLNTE9ZVh9KTtmdW5jdGlvbiBhWCh0KXtyZXR1cm4gTWF0aC50cnVuYygrbmUodCkvMWUzKX12YXIgZTgxLGlYPWIoKCk9PntBZSgpO2U4MT1hWH0pO2Z1bmN0aW9uIHJYKHQsZSl7bGV0IGE9S3QoKSxpPWU/LndlZWtTdGFydHNPbj8/ZT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2Eud2Vla1N0YXJ0c09uPz9hLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLHI9bXAobmUodCxlPy5pbikpO2lmKGlzTmFOKHIpKXJldHVybiBOYU47bGV0IHM9eG4oYm4odCxlKSksbj1pLXM7bjw9MCYmKG4rPTcpO2xldCBvPXItbjtyZXR1cm4gTWF0aC5jZWlsKG8vNykrMX12YXIgbzgxLHNYPWIoKCk9PntPMigpO3ZTKCk7VWMoKTtCYygpO0FlKCk7bzgxPXJYfSk7ZnVuY3Rpb24geHAodCxlKXtsZXQgYT1uZSh0LGU/LmluKSxpPWEuZ2V0TW9udGgoKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihhLmdldEZ1bGxZZWFyKCksaSsxLDApLGEuc2V0SG91cnMoMCwwLDAsMCksbmUoYSxlPy5pbil9dmFyIGQ4MSx6Uz1iKCgpPT57QWUoKTtkODE9eHB9KTtmdW5jdGlvbiBuWCh0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBqbyh4cChhLGUpLGJuKGEsZSksZSkrMX12YXIgZzgxLG9YPWIoKCk9PntWNygpO3pTKCk7QmMoKTtBZSgpO2c4MT1uWH0pO2Z1bmN0aW9uIGxYKHQsZSl7cmV0dXJuIG5lKHQsZT8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIHk4MSxjWD1iKCgpPT57QWUoKTt5ODE9bFh9KTtmdW5jdGlvbiBkWCh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KlBhKX12YXIgTTgxLHBYPWIoKCk9Pnt5dCgpO004MT1kWH0pO2Z1bmN0aW9uIGhYKHQpe3JldHVybiBNYXRoLnRydW5jKHQqejcpfXZhciBTODEsdVg9YigoKT0+e3l0KCk7UzgxPWhYfSk7ZnVuY3Rpb24gZlgodCl7cmV0dXJuIE1hdGgudHJ1bmModCpIbyl9dmFyIFQ4MSxtWD1iKCgpPT57eXQoKTtUODE9Zlh9KTtmdW5jdGlvbiBnWCh0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKTtpZihpc05hTigraSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RhcnQgZGF0ZSBpcyBpbnZhbGlkIik7aWYoaXNOYU4oK3IpKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuZCBkYXRlIGlzIGludmFsaWQiKTtpZihhPy5hc3NlcnRQb3NpdGl2ZSYmK2k+K3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgbXVzdCBiZSBhZnRlciBzdGFydCBkYXRlIik7cmV0dXJue3N0YXJ0OmksZW5kOnJ9fXZhciBBODEsYlg9YigoKT0+e2kxKCk7QTgxPWdYfSk7ZnVuY3Rpb24gdlgodCxlKXtsZXR7c3RhcnQ6YSxlbmQ6aX09aDIoZT8uaW4sdCkscj17fSxzPUo3KGksYSk7cyYmKHIueWVhcnM9cyk7bGV0IG49cG4oYSx7eWVhcnM6ci55ZWFyc30pLG89Z24oaSxuKTtvJiYoci5tb250aHM9byk7bGV0IGQ9cG4obix7bW9udGhzOnIubW9udGhzfSksYz1qNChpLGQpO2MmJihyLmRheXM9Yyk7bGV0IHA9cG4oZCx7ZGF5czpyLmRheXN9KSxsPVVvKGkscCk7bCYmKHIuaG91cnM9bCk7bGV0IGY9cG4ocCx7aG91cnM6ci5ob3Vyc30pLGc9V28oaSxmKTtnJiYoci5taW51dGVzPWcpO2xldCB5PXBuKGYse21pbnV0ZXM6ci5taW51dGVzfSksdj14cihpLHkpO3JldHVybiB2JiYoci5zZWNvbmRzPXYpLHJ9dmFyIEg4MSx5WD1iKCgpPT57d3IoKTtWaygpO1U3KCk7VzcoKTtaNygpO09jKCk7UmMoKTtvUygpO0g4MT12WH0pO2Z1bmN0aW9uIHhYKHQsZSxhKXtsZXQgaTtyZXR1cm4gTEN0KGUpP2k9ZTphPWUsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoYT8ubG9jYWxlLGkpLmZvcm1hdChuZSh0KSl9ZnVuY3Rpb24gTEN0KHQpe3JldHVybiB0IT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gdCl9dmFyIGo4MSx3WD1iKCgpPT57QWUoKTtqODE9eFh9KTtmdW5jdGlvbiBNWCh0LGUsYSl7bGV0IGk9MCxyLFtzLG5dPUplKGE/LmluLHQsZSk7aWYoYT8udW5pdClyPWE/LnVuaXQscj09PSJzZWNvbmQiP2k9eHIocyxuKTpyPT09Im1pbnV0ZSI/aT1XbyhzLG4pOnI9PT0iaG91ciI/aT1VbyhzLG4pOnI9PT0iZGF5Ij9pPXAyKHMsbik6cj09PSJ3ZWVrIj9pPWpvKHMsbik6cj09PSJtb250aCI/aT1WbyhzLG4pOnI9PT0icXVhcnRlciI/aT1WNChzLG4pOnI9PT0ieWVhciImJihpPW1uKHMsbikpO2Vsc2V7bGV0IGQ9eHIocyxuKTtNYXRoLmFicyhkKTxGND8oaT14cihzLG4pLHI9InNlY29uZCIpOk1hdGguYWJzKGQpPEhvPyhpPVdvKHMsbikscj0ibWludXRlIik6TWF0aC5hYnMoZCk8eDcmJk1hdGguYWJzKHAyKHMsbikpPDE/KGk9VW8ocyxuKSxyPSJob3VyIik6TWF0aC5hYnMoZCk8cUcmJihpPXAyKHMsbikpJiZNYXRoLmFicyhpKTw3P3I9ImRheSI6TWF0aC5hYnMoZCk8SGs/KGk9am8ocyxuKSxyPSJ3ZWVrIik6TWF0aC5hYnMoZCk8Vkc/KGk9Vm8ocyxuKSxyPSJtb250aCIpOk1hdGguYWJzKGQpPEJrP1Y0KHMsbik8ND8oaT1WNChzLG4pLHI9InF1YXJ0ZXIiKTooaT1tbihzLG4pLHI9InllYXIiKTooaT1tbihzLG4pLHI9InllYXIiKX1yZXR1cm4gbmV3IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0KGE/LmxvY2FsZSx7bnVtZXJpYzoiYXV0byIsLi4uYX0pLmZvcm1hdChpLHIpfXZhciBhZDEselg9YigoKT0+e2kxKCk7eXQoKTtycygpO3E3KCk7clMoKTtWNygpO2o3KCk7VzcoKTtaNygpO1JjKCk7YWQxPU1YfSk7ZnVuY3Rpb24ga1godCxlKXtyZXR1cm4rbmUodCk+K25lKGUpfXZhciBzZDEsU1g9YigoKT0+e0FlKCk7c2QxPWtYfSk7ZnVuY3Rpb24gQ1godCxlKXtyZXR1cm4rbmUodCk8K25lKGUpfXZhciBsZDEsX1g9YigoKT0+e0FlKCk7bGQxPUNYfSk7ZnVuY3Rpb24gVFgodCxlKXtyZXR1cm4rbmUodCk9PStuZShlKX12YXIgcGQxLExYPWIoKCk9PntBZSgpO3BkMT1UWH0pO2Z1bmN0aW9uICRYKHQsZSxhKXtsZXQgaT1uZXcgRGF0ZSh0LGUsYSk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKT09PXQmJmkuZ2V0TW9udGgoKT09PWUmJmkuZ2V0RGF0ZSgpPT09YX12YXIgdWQxLEFYPWIoKCk9Pnt1ZDE9JFh9KTtmdW5jdGlvbiBEWCh0LGUpe3JldHVybiBuZSh0LGU/LmluKS5nZXREYXRlKCk9PT0xfXZhciBnZDEsRVg9YigoKT0+e0FlKCk7Z2QxPURYfSk7ZnVuY3Rpb24gUFgodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0RGF5KCk9PT01fXZhciB5ZDEsSVg9YigoKT0+e0FlKCk7eWQxPVBYfSk7ZnVuY3Rpb24gTlgodCl7cmV0dXJuK25lKHQpPkRhdGUubm93KCl9dmFyIE1kMSxGWD1iKCgpPT57QWUoKTtNZDE9Tlh9KTtmdW5jdGlvbiB3cCh0LGUpe2xldCBhPSRDdChlKT9uZXcgZSgwKTpMZShlLDApO3JldHVybiBhLnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksdC5nZXREYXRlKCkpLGEuc2V0SG91cnModC5nZXRIb3VycygpLHQuZ2V0TWludXRlcygpLHQuZ2V0U2Vjb25kcygpLHQuZ2V0TWlsbGlzZWNvbmRzKCkpLGF9ZnVuY3Rpb24gJEN0KHQpe3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIiYmdC5wcm90b3R5cGU/LmNvbnN0cnVjdG9yPT09dH12YXIgU2QxLGtTPWIoKCk9PnthdCgpO1NkMT13cH0pO3ZhciBBQ3QsTXAsenAsa3AsU1M9YigoKT0+e2F0KCk7a1MoKTtBQ3Q9MTAsTXA9Y2xhc3N7c3ViUHJpb3JpdHk9MDt2YWxpZGF0ZShlLGEpe3JldHVybiEwfX0senA9Y2xhc3MgZXh0ZW5kcyBNcHtjb25zdHJ1Y3RvcihlLGEsaSxyLHMpe3N1cGVyKCksdGhpcy52YWx1ZT1lLHRoaXMudmFsaWRhdGVWYWx1ZT1hLHRoaXMuc2V0VmFsdWU9aSx0aGlzLnByaW9yaXR5PXIscyYmKHRoaXMuc3ViUHJpb3JpdHk9cyl9dmFsaWRhdGUoZSxhKXtyZXR1cm4gdGhpcy52YWxpZGF0ZVZhbHVlKGUsdGhpcy52YWx1ZSxhKX1zZXQoZSxhLGkpe3JldHVybiB0aGlzLnNldFZhbHVlKGUsYSx0aGlzLnZhbHVlLGkpfX0sa3A9Y2xhc3MgZXh0ZW5kcyBNcHtwcmlvcml0eT1BQ3Q7c3ViUHJpb3JpdHk9LTE7Y29uc3RydWN0b3IoZSxhKXtzdXBlcigpLHRoaXMuY29udGV4dD1lfHwoaT0+TGUoYSxpKSl9c2V0KGUsYSl7cmV0dXJuIGEudGltZXN0YW1wSXNTZXQ/ZTpMZShlLHdwKGUsdGhpcy5jb250ZXh0KSl9fX0pO3ZhciBVZSxqdD1iKCgpPT57U1MoKTtVZT1jbGFzc3tydW4oZSxhLGkscil7bGV0IHM9dGhpcy5wYXJzZShlLGEsaSxyKTtyZXR1cm4gcz97c2V0dGVyOm5ldyB6cChzLnZhbHVlLHRoaXMudmFsaWRhdGUsdGhpcy5zZXQsdGhpcy5wcmlvcml0eSx0aGlzLnN1YlByaW9yaXR5KSxyZXN0OnMucmVzdH06bnVsbH12YWxpZGF0ZShlLGEsaSl7cmV0dXJuITB9fX0pO3ZhciBTcCxPWD1iKCgpPT57anQoKTtTcD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTE0MDtwYXJzZShlLGEsaSl7c3dpdGNoKGEpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiBpLmVyYShlLHt3aWR0aDoiYWJicmV2aWF0ZWQifSl8fGkuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIGkuZXJhKGUse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gaS5lcmEoZSx7d2lkdGg6IndpZGUifSl8fGkuZXJhKGUse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8aS5lcmEoZSx7d2lkdGg6Im5hcnJvdyJ9KX19c2V0KGUsYSxpKXtyZXR1cm4gYS5lcmE9aSxlLnNldEZ1bGxZZWFyKGksMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiUiIsInUiLCJ0IiwiVCJdfX0pO3ZhciBOdCxyaSxIMj1iKCgpPT57TnQ9e21vbnRoOi9eKDFbMC0yXXwwP1xkKS8sZGF0ZTovXigzWzAtMV18WzAtMl0/XGQpLyxkYXlPZlllYXI6L14oMzZbMC02XXwzWzAtNV1cZHxbMC0yXT9cZD9cZCkvLHdlZWs6L14oNVswLTNdfFswLTRdP1xkKS8saG91cjIzaDovXigyWzAtM118WzAtMV0/XGQpLyxob3VyMjRoOi9eKDJbMC00XXxbMC0xXT9cZCkvLGhvdXIxMWg6L14oMVswLTFdfDA/XGQpLyxob3VyMTJoOi9eKDFbMC0yXXwwP1xkKS8sbWludXRlOi9eWzAtNV0/XGQvLHNlY29uZDovXlswLTVdP1xkLyxzaW5nbGVEaWdpdDovXlxkLyx0d29EaWdpdHM6L15cZHsxLDJ9Lyx0aHJlZURpZ2l0czovXlxkezEsM30vLGZvdXJEaWdpdHM6L15cZHsxLDR9LyxhbnlEaWdpdHNTaWduZWQ6L14tP1xkKy8sc2luZ2xlRGlnaXRTaWduZWQ6L14tP1xkLyx0d29EaWdpdHNTaWduZWQ6L14tP1xkezEsMn0vLHRocmVlRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDN9Lyxmb3VyRGlnaXRzU2lnbmVkOi9eLT9cZHsxLDR9L30scmk9e2Jhc2ljT3B0aW9uYWxNaW51dGVzOi9eKFsrLV0pKFxkezJ9KShcZHsyfSk/fFovLGJhc2ljOi9eKFsrLV0pKFxkezJ9KShcZHsyfSl8Wi8sYmFzaWNPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pKFxkezJ9KSgoXGR7Mn0pKT98Wi8sZXh0ZW5kZWQ6L14oWystXSkoXGR7Mn0pOihcZHsyfSl8Wi8sZXh0ZW5kZWRPcHRpb25hbFNlY29uZHM6L14oWystXSkoXGR7Mn0pOihcZHsyfSkoOihcZHsyfSkpP3xaL319KTtmdW5jdGlvbiByMSh0LGUpe3JldHVybiB0JiZ7dmFsdWU6ZSh0LnZhbHVlKSxyZXN0OnQucmVzdH19ZnVuY3Rpb24gUHQodCxlKXtsZXQgYT1lLm1hdGNoKHQpO3JldHVybiBhP3t2YWx1ZTpwYXJzZUludChhWzBdLDEwKSxyZXN0OmUuc2xpY2UoYVswXS5sZW5ndGgpfTpudWxsfWZ1bmN0aW9uIHNpKHQsZSl7bGV0IGE9ZS5tYXRjaCh0KTtpZighYSlyZXR1cm4gbnVsbDtpZihhWzBdPT09IloiKXJldHVybnt2YWx1ZTowLHJlc3Q6ZS5zbGljZSgxKX07bGV0IGk9YVsxXT09PSIrIj8xOi0xLHI9YVsyXT9wYXJzZUludChhWzJdLDEwKTowLHM9YVszXT9wYXJzZUludChhWzNdLDEwKTowLG49YVs1XT9wYXJzZUludChhWzVdLDEwKTowO3JldHVybnt2YWx1ZTppKihyKlBhK3MqRjIrbipJNCkscmVzdDplLnNsaWNlKGFbMF0ubGVuZ3RoKX19ZnVuY3Rpb24gQ3AodCl7cmV0dXJuIFB0KE50LmFueURpZ2l0c1NpZ25lZCx0KX1mdW5jdGlvbiBndCh0LGUpe3N3aXRjaCh0KXtjYXNlIDE6cmV0dXJuIFB0KE50LnNpbmdsZURpZ2l0LGUpO2Nhc2UgMjpyZXR1cm4gUHQoTnQudHdvRGlnaXRzLGUpO2Nhc2UgMzpyZXR1cm4gUHQoTnQudGhyZWVEaWdpdHMsZSk7Y2FzZSA0OnJldHVybiBQdChOdC5mb3VyRGlnaXRzLGUpO2RlZmF1bHQ6cmV0dXJuIFB0KG5ldyBSZWdFeHAoIl5cXGR7MSwiK3QrIn0iKSxlKX19ZnVuY3Rpb24gdDModCxlKXtzd2l0Y2godCl7Y2FzZSAxOnJldHVybiBQdChOdC5zaW5nbGVEaWdpdFNpZ25lZCxlKTtjYXNlIDI6cmV0dXJuIFB0KE50LnR3b0RpZ2l0c1NpZ25lZCxlKTtjYXNlIDM6cmV0dXJuIFB0KE50LnRocmVlRGlnaXRzU2lnbmVkLGUpO2Nhc2UgNDpyZXR1cm4gUHQoTnQuZm91ckRpZ2l0c1NpZ25lZCxlKTtkZWZhdWx0OnJldHVybiBQdChuZXcgUmVnRXhwKCJeLT9cXGR7MSwiK3QrIn0iKSxlKX19ZnVuY3Rpb24gYTModCl7c3dpdGNoKHQpe2Nhc2UibW9ybmluZyI6cmV0dXJuIDQ7Y2FzZSJldmVuaW5nIjpyZXR1cm4gMTc7Y2FzZSJwbSI6Y2FzZSJub29uIjpjYXNlImFmdGVybm9vbiI6cmV0dXJuIDEyO2RlZmF1bHQ6cmV0dXJuIDB9fWZ1bmN0aW9uIF9wKHQsZSl7bGV0IGE9ZT4wLGk9YT9lOjEtZSxyO2lmKGk8PTUwKXI9dHx8MTAwO2Vsc2V7bGV0IHM9aSs1MCxuPU1hdGgudHJ1bmMocy8xMDApKjEwMCxvPXQ+PXMlMTAwO3I9dCtuLShvPzEwMDowKX1yZXR1cm4gYT9yOjEtcn1mdW5jdGlvbiBUcCh0KXtyZXR1cm4gdCU0MDA9PT0wfHx0JTQ9PT0wJiZ0JTEwMCE9PTB9dmFyIFF0PWIoKCk9Pnt5dCgpO0gyKCl9KTt2YXIgTHAsUlg9YigoKT0+e2p0KCk7UXQoKTtMcD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTEzMDtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInUiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl07cGFyc2UoZSxhLGkpe2xldCByPXM9Pih7eWVhcjpzLGlzVHdvRGlnaXRZZWFyOmE9PT0ieXkifSk7c3dpdGNoKGEpe2Nhc2UieSI6cmV0dXJuIHIxKGd0KDQsZSkscik7Y2FzZSJ5byI6cmV0dXJuIHIxKGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJ5ZWFyIn0pLHIpO2RlZmF1bHQ6cmV0dXJuIHIxKGd0KGEubGVuZ3RoLGUpLHIpfX12YWxpZGF0ZShlLGEpe3JldHVybiBhLmlzVHdvRGlnaXRZZWFyfHxhLnllYXI+MH1zZXQoZSxhLGkpe2xldCByPWUuZ2V0RnVsbFllYXIoKTtpZihpLmlzVHdvRGlnaXRZZWFyKXtsZXQgbj1fcChpLnllYXIscik7cmV0dXJuIGUuc2V0RnVsbFllYXIobiwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1sZXQgcz0hKCJlcmEiaW4gYSl8fGEuZXJhPT09MT9pLnllYXI6MS1pLnllYXI7cmV0dXJuIGUuc2V0RnVsbFllYXIocywwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyICRwLEJYPWIoKCk9PntIYygpO0RpKCk7anQoKTtRdCgpOyRwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTMwO3BhcnNlKGUsYSxpKXtsZXQgcj1zPT4oe3llYXI6cyxpc1R3b0RpZ2l0WWVhcjphPT09IllZIn0pO3N3aXRjaChhKXtjYXNlIlkiOnJldHVybiByMShndCg0LGUpLHIpO2Nhc2UiWW8iOnJldHVybiByMShpLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoieWVhciJ9KSxyKTtkZWZhdWx0OnJldHVybiByMShndChhLmxlbmd0aCxlKSxyKX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYS5pc1R3b0RpZ2l0WWVhcnx8YS55ZWFyPjB9c2V0KGUsYSxpLHIpe2xldCBzPXZuKGUscik7aWYoaS5pc1R3b0RpZ2l0WWVhcil7bGV0IG89X3AoaS55ZWFyLHMpO3JldHVybiBlLnNldEZ1bGxZZWFyKG8sMCxyLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZSksZS5zZXRIb3VycygwLDAsMCwwKSxjMShlLHIpfWxldCBuPSEoImVyYSJpbiBhKXx8YS5lcmE9PT0xP2kueWVhcjoxLWkueWVhcjtyZXR1cm4gZS5zZXRGdWxsWWVhcihuLDAsci5maXJzdFdlZWtDb250YWluc0RhdGUpLGUuc2V0SG91cnMoMCwwLDAsMCksYzEoZSxyKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJRIiwicSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiaSIsInQiLCJUIl19fSk7dmFyIEFwLEhYPWIoKCk9PnticigpO2F0KCk7anQoKTtRdCgpO0FwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTMwO3BhcnNlKGUsYSl7cmV0dXJuIGE9PT0iUiI/dDMoNCxlKTp0MyhhLmxlbmd0aCxlKX1zZXQoZSxhLGkpe2xldCByPUxlKGUsMCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoaSwwLDQpLHIuc2V0SG91cnMoMCwwLDAsMCksVzEocil9aW5jb21wYXRpYmxlVG9rZW5zPVsiRyIsInkiLCJZIiwidSIsIlEiLCJxIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIERwLHFYPWIoKCk9PntqdCgpO1F0KCk7RHA9Y2xhc3MgZXh0ZW5kcyBVZXtwcmlvcml0eT0xMzA7cGFyc2UoZSxhKXtyZXR1cm4gYT09PSJ1Ij90Myg0LGUpOnQzKGEubGVuZ3RoLGUpfXNldChlLGEsaSl7cmV0dXJuIGUuc2V0RnVsbFllYXIoaSwwLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJSIiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBFcCxWWD1iKCgpPT57anQoKTtRdCgpO0VwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTIwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJRIjpjYXNlIlFRIjpyZXR1cm4gZ3QoYS5sZW5ndGgsZSk7Y2FzZSJRbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gaS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJRUVFRUSI6cmV0dXJuIGkucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkucXVhcnRlcihlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTEmJmE8PTR9c2V0KGUsYSxpKXtyZXR1cm4gZS5zZXRNb250aCgoaS0xKSozLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBQcCxqWD1iKCgpPT57anQoKTtRdCgpO1BwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTIwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJxIjpjYXNlInFxIjpyZXR1cm4gZ3QoYS5sZW5ndGgsZSk7Y2FzZSJxbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UicXFxIjpyZXR1cm4gaS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJxcXFxcSI6cmV0dXJuIGkucXVhcnRlcihlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGkucXVhcnRlcihlLHt3aWR0aDoid2lkZSIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5xdWFydGVyKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTEmJmE8PTR9c2V0KGUsYSxpKXtyZXR1cm4gZS5zZXRNb250aCgoaS0xKSozLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsIlEiLCJNIiwiTCIsInciLCJJIiwiZCIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBJcCxVWD1iKCgpPT57SDIoKTtqdCgpO1F0KCk7SXA9Y2xhc3MgZXh0ZW5kcyBVZXtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTCIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl07cHJpb3JpdHk9MTEwO3BhcnNlKGUsYSxpKXtsZXQgcj1zPT5zLTE7c3dpdGNoKGEpe2Nhc2UiTSI6cmV0dXJuIHIxKFB0KE50Lm1vbnRoLGUpLHIpO2Nhc2UiTU0iOnJldHVybiByMShndCgyLGUpLHIpO2Nhc2UiTW8iOnJldHVybiByMShpLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoibW9udGgifSkscik7Y2FzZSJNTU0iOnJldHVybiBpLm1vbnRoKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiBpLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gaS5tb250aChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9MTF9c2V0KGUsYSxpKXtyZXR1cm4gZS5zZXRNb250aChpLDEpLGUuc2V0SG91cnMoMCwwLDAsMCksZX19fSk7dmFyIE5wLFdYPWIoKCk9PntIMigpO2p0KCk7UXQoKTtOcD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTExMDtwYXJzZShlLGEsaSl7bGV0IHI9cz0+cy0xO3N3aXRjaChhKXtjYXNlIkwiOnJldHVybiByMShQdChOdC5tb250aCxlKSxyKTtjYXNlIkxMIjpyZXR1cm4gcjEoZ3QoMixlKSxyKTtjYXNlIkxvIjpyZXR1cm4gcjEoaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6Im1vbnRoIn0pLHIpO2Nhc2UiTExMIjpyZXR1cm4gaS5tb250aChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkubW9udGgoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlIkxMTExMIjpyZXR1cm4gaS5tb250aChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGkubW9udGgoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkubW9udGgoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLm1vbnRoKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTExfXNldChlLGEsaSl7cmV0dXJuIGUuc2V0TW9udGgoaSwxKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIk0iLCJ3IiwiSSIsIkQiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIEZwKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKSxyPUo0KGksYSktZTtyZXR1cm4gaS5zZXREYXRlKGkuZ2V0RGF0ZSgpLXIqNyksbmUoaSxhPy5pbil9dmFyIGc3MSxDUz1iKCgpPT57ZHAoKTtBZSgpO2c3MT1GcH0pO3ZhciBPcCxHWD1iKCgpPT57Q1MoKTtEaSgpO0gyKCk7anQoKTtRdCgpO09wPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTAwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJ3IjpyZXR1cm4gUHQoTnQud2VlayxlKTtjYXNlIndvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6IndlZWsifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTEmJmE8PTUzfXNldChlLGEsaSxyKXtyZXR1cm4gYzEoRnAoZSxpLHIpLHIpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJpIiwidCIsIlQiXX19KTtmdW5jdGlvbiBScCh0LGUsYSl7bGV0IGk9bmUodCxhPy5pbikscj1RNChpLGEpLWU7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKS1yKjcpLGl9dmFyIEM3MSxfUz1iKCgpPT57bHAoKTtBZSgpO0M3MT1ScH0pO3ZhciBCcCxZWD1iKCgpPT57X1MoKTticigpO0gyKCk7anQoKTtRdCgpO0JwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTAwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJJIjpyZXR1cm4gUHQoTnQud2VlayxlKTtjYXNlIklvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6IndlZWsifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTEmJmE8PTUzfXNldChlLGEsaSl7cmV0dXJuIFcxKFJwKGUsaSkpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIERDdCxFQ3QsSHAsWlg9YigoKT0+e0gyKCk7anQoKTtRdCgpO0RDdD1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLEVDdD1bMzEsMjksMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLEhwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9OTA7c3ViUHJpb3JpdHk9MTtwYXJzZShlLGEsaSl7c3dpdGNoKGEpe2Nhc2UiZCI6cmV0dXJuIFB0KE50LmRhdGUsZSk7Y2FzZSJkbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJkYXRlIn0pO2RlZmF1bHQ6cmV0dXJuIGd0KGEubGVuZ3RoLGUpfX12YWxpZGF0ZShlLGEpe2xldCBpPWUuZ2V0RnVsbFllYXIoKSxyPVRwKGkpLHM9ZS5nZXRNb250aCgpO3JldHVybiByP2E+PTEmJmE8PUVDdFtzXTphPj0xJiZhPD1EQ3Rbc119c2V0KGUsYSxpKXtyZXR1cm4gZS5zZXREYXRlKGkpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgcXAsWFg9YigoKT0+e0gyKCk7anQoKTtRdCgpO3FwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9OTA7c3VicHJpb3JpdHk9MTtwYXJzZShlLGEsaSl7c3dpdGNoKGEpe2Nhc2UiRCI6Y2FzZSJERCI6cmV0dXJuIFB0KE50LmRheU9mWWVhcixlKTtjYXNlIkRvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRhdGUifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7bGV0IGk9ZS5nZXRGdWxsWWVhcigpO3JldHVybiBUcChpKT9hPj0xJiZhPD0zNjY6YT49MSYmYTw9MzY1fXNldChlLGEsaSl7cmV0dXJuIGUuc2V0TW9udGgoMCxpKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRSIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7ZnVuY3Rpb24gd24odCxlLGEpe2xldCBpPUt0KCkscj1hPy53ZWVrU3RhcnRzT24/P2E/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9pLndlZWtTdGFydHNPbj8/aS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPW5lKHQsYT8uaW4pLG49cy5nZXREYXkoKSxkPShlJTcrNyklNyxjPTctcixwPWU8MHx8ZT42P2UtKG4rYyklNzooZCtjKSU3LShuK2MpJTc7cmV0dXJuIFExKHMscCxhKX12YXIgVTcxLFdjPWIoKCk9PntPMigpO2ZyKCk7QWUoKTtVNzE9d259KTt2YXIgVnAsS1g9YigoKT0+e1djKCk7anQoKTtWcD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTkwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiBpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gaS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9Nn1zZXQoZSxhLGkscil7cmV0dXJuIGU9d24oZSxpLHIpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIganAsUVg9YigoKT0+e1djKCk7anQoKTtRdCgpO2pwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9OTA7cGFyc2UoZSxhLGkscil7bGV0IHM9bj0+e2xldCBvPU1hdGguZmxvb3IoKG4tMSkvNykqNztyZXR1cm4obityLndlZWtTdGFydHNPbis2KSU3K299O3N3aXRjaChhKXtjYXNlImUiOmNhc2UiZWUiOnJldHVybiByMShndChhLmxlbmd0aCxlKSxzKTtjYXNlImVvIjpyZXR1cm4gcjEoaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxzKTtjYXNlImVlZSI6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiZWVlZWUiOnJldHVybiBpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiZWVlZWVlIjpyZXR1cm4gaS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9Nn1zZXQoZSxhLGkscil7cmV0dXJuIGU9d24oZSxpLHIpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJjIiwidCIsIlQiXX19KTt2YXIgVXAsSlg9YigoKT0+e1djKCk7anQoKTtRdCgpO1VwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9OTA7cGFyc2UoZSxhLGkscil7bGV0IHM9bj0+e2xldCBvPU1hdGguZmxvb3IoKG4tMSkvNykqNztyZXR1cm4obityLndlZWtTdGFydHNPbis2KSU3K299O3N3aXRjaChhKXtjYXNlImMiOmNhc2UiY2MiOnJldHVybiByMShndChhLmxlbmd0aCxlKSxzKTtjYXNlImNvIjpyZXR1cm4gcjEoaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImRheSJ9KSxzKTtjYXNlImNjYyI6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiBpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gaS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5KGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheShlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KGUse3dpZHRoOiJzaG9ydCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5kYXkoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MCYmYTw9Nn1zZXQoZSxhLGkscil7cmV0dXJuIGU9d24oZSxpLHIpLGUuc2V0SG91cnMoMCwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJ5IiwiUiIsInUiLCJxIiwiUSIsIk0iLCJMIiwiSSIsImQiLCJEIiwiRSIsImkiLCJlIiwidCIsIlQiXX19KTtmdW5jdGlvbiBXcCh0LGUsYSl7bGV0IGk9bmUodCxhPy5pbikscj15cChpLGEpLHM9ZS1yO3JldHVybiBRMShpLHMsYSl9dmFyIG9wMSxUUz1iKCgpPT57ZnIoKTtNUygpO0FlKCk7b3AxPVdwfSk7dmFyIEdwLGVLPWIoKCk9PntUUygpO2p0KCk7UXQoKTtHcD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTkwO3BhcnNlKGUsYSxpKXtsZXQgcj1zPT5zPT09MD83OnM7c3dpdGNoKGEpe2Nhc2UiaSI6Y2FzZSJpaSI6cmV0dXJuIGd0KGEubGVuZ3RoLGUpO2Nhc2UiaW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gcjEoaS5kYXkoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscik7Y2FzZSJpaWlpaSI6cmV0dXJuIHIxKGkuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscik7Y2FzZSJpaWlpaWkiOnJldHVybiByMShpLmRheShlLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSkscik7ZGVmYXVsdDpyZXR1cm4gcjEoaS5kYXkoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkoZSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheShlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLHIpfX12YWxpZGF0ZShlLGEpe3JldHVybiBhPj0xJiZhPD03fXNldChlLGEsaSl7cmV0dXJuIGU9V3AoZSxpKSxlLnNldEhvdXJzKDAsMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFlwLHRLPWIoKCk9PntqdCgpO1F0KCk7WXA9Y2xhc3MgZXh0ZW5kcyBVZXtwcmlvcml0eT04MDtwYXJzZShlLGEsaSl7c3dpdGNoKGEpe2Nhc2UiYSI6Y2FzZSJhYSI6Y2FzZSJhYWEiOnJldHVybiBpLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJhYWFhYSI6cmV0dXJuIGkuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gaS5kYXlQZXJpb2QoZSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19c2V0KGUsYSxpKXtyZXR1cm4gZS5zZXRIb3VycyhhMyhpKSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJiIiwiQiIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgWnAsYUs9YigoKT0+e2p0KCk7UXQoKTtacD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTgwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJiIjpjYXNlImJiIjpjYXNlImJiYiI6cmV0dXJuIGkuZGF5UGVyaW9kKGUse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYmJiIjpyZXR1cm4gaS5kYXlQZXJpb2QoZSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBpLmRheVBlcmlvZChlLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX1zZXQoZSxhLGkpe3JldHVybiBlLnNldEhvdXJzKGEzKGkpLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJCIiwiSCIsImsiLCJ0IiwiVCJdfX0pO3ZhciBYcCxpSz1iKCgpPT57anQoKTtRdCgpO1hwPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9ODA7cGFyc2UoZSxhLGkpe3N3aXRjaChhKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gaS5kYXlQZXJpb2QoZSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiBpLmRheVBlcmlvZChlLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKGUse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZChlLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKGUse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldChlLGEsaSl7cmV0dXJuIGUuc2V0SG91cnMoYTMoaSksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJ0IiwiVCJdfX0pO3ZhciBLcCxySz1iKCgpPT57SDIoKTtqdCgpO1F0KCk7S3A9Y2xhc3MgZXh0ZW5kcyBVZXtwcmlvcml0eT03MDtwYXJzZShlLGEsaSl7c3dpdGNoKGEpe2Nhc2UiaCI6cmV0dXJuIFB0KE50LmhvdXIxMmgsZSk7Y2FzZSJobyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJob3VyIn0pO2RlZmF1bHQ6cmV0dXJuIGd0KGEubGVuZ3RoLGUpfX12YWxpZGF0ZShlLGEpe3JldHVybiBhPj0xJiZhPD0xMn1zZXQoZSxhLGkpe2xldCByPWUuZ2V0SG91cnMoKT49MTI7cmV0dXJuIHImJmk8MTI/ZS5zZXRIb3VycyhpKzEyLDAsMCwwKTohciYmaT09PTEyP2Uuc2V0SG91cnMoMCwwLDAsMCk6ZS5zZXRIb3VycyhpLDAsMCwwKSxlfWluY29tcGF0aWJsZVRva2Vucz1bIkgiLCJLIiwiayIsInQiLCJUIl19fSk7dmFyIFFwLHNLPWIoKCk9PntIMigpO2p0KCk7UXQoKTtRcD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTcwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJIIjpyZXR1cm4gUHQoTnQuaG91cjIzaCxlKTtjYXNlIkhvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTIzfXNldChlLGEsaSl7cmV0dXJuIGUuc2V0SG91cnMoaSwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiYiIsImgiLCJLIiwiayIsInQiLCJUIl19fSk7dmFyIEpwLG5LPWIoKCk9PntIMigpO2p0KCk7UXQoKTtKcD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTcwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJLIjpyZXR1cm4gUHQoTnQuaG91cjExaCxlKTtjYXNlIktvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKGUse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTExfXNldChlLGEsaSl7cmV0dXJuIGUuZ2V0SG91cnMoKT49MTImJmk8MTI/ZS5zZXRIb3VycyhpKzEyLDAsMCwwKTplLnNldEhvdXJzKGksMCwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsiaCIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgZWgsb0s9YigoKT0+e0gyKCk7anQoKTtRdCgpO2VoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9NzA7cGFyc2UoZSxhLGkpe3N3aXRjaChhKXtjYXNlImsiOnJldHVybiBQdChOdC5ob3VyMjRoLGUpO2Nhc2Uia28iOnJldHVybiBpLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBndChhLmxlbmd0aCxlKX19dmFsaWRhdGUoZSxhKXtyZXR1cm4gYT49MSYmYTw9MjR9c2V0KGUsYSxpKXtsZXQgcj1pPD0yND9pJTI0Omk7cmV0dXJuIGUuc2V0SG91cnMociwwLDAsMCksZX1pbmNvbXBhdGlibGVUb2tlbnM9WyJhIiwiYiIsImgiLCJIIiwiSyIsInQiLCJUIl19fSk7dmFyIHRoLGxLPWIoKCk9PntIMigpO2p0KCk7UXQoKTt0aD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTYwO3BhcnNlKGUsYSxpKXtzd2l0Y2goYSl7Y2FzZSJtIjpyZXR1cm4gUHQoTnQubWludXRlLGUpO2Nhc2UibW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIoZSx7dW5pdDoibWludXRlIn0pO2RlZmF1bHQ6cmV0dXJuIGd0KGEubGVuZ3RoLGUpfX12YWxpZGF0ZShlLGEpe3JldHVybiBhPj0wJiZhPD01OX1zZXQoZSxhLGkpe3JldHVybiBlLnNldE1pbnV0ZXMoaSwwLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgYWgsY0s9YigoKT0+e0gyKCk7anQoKTtRdCgpO2FoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9NTA7cGFyc2UoZSxhLGkpe3N3aXRjaChhKXtjYXNlInMiOnJldHVybiBQdChOdC5zZWNvbmQsZSk7Y2FzZSJzbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcihlLHt1bml0OiJzZWNvbmQifSk7ZGVmYXVsdDpyZXR1cm4gZ3QoYS5sZW5ndGgsZSl9fXZhbGlkYXRlKGUsYSl7cmV0dXJuIGE+PTAmJmE8PTU5fXNldChlLGEsaSl7cmV0dXJuIGUuc2V0U2Vjb25kcyhpLDApLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgaWgsZEs9YigoKT0+e2p0KCk7UXQoKTtpaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTMwO3BhcnNlKGUsYSl7bGV0IGk9cj0+TWF0aC50cnVuYyhyKk1hdGgucG93KDEwLC1hLmxlbmd0aCszKSk7cmV0dXJuIHIxKGd0KGEubGVuZ3RoLGUpLGkpfXNldChlLGEsaSl7cmV0dXJuIGUuc2V0TWlsbGlzZWNvbmRzKGkpLGV9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgcmgscEs9YigoKT0+e2F0KCk7aXMoKTtIMigpO2p0KCk7UXQoKTtyaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTEwO3BhcnNlKGUsYSl7c3dpdGNoKGEpe2Nhc2UiWCI6cmV0dXJuIHNpKHJpLmJhc2ljT3B0aW9uYWxNaW51dGVzLGUpO2Nhc2UiWFgiOnJldHVybiBzaShyaS5iYXNpYyxlKTtjYXNlIlhYWFgiOnJldHVybiBzaShyaS5iYXNpY09wdGlvbmFsU2Vjb25kcyxlKTtjYXNlIlhYWFhYIjpyZXR1cm4gc2kocmkuZXh0ZW5kZWRPcHRpb25hbFNlY29uZHMsZSk7ZGVmYXVsdDpyZXR1cm4gc2kocmkuZXh0ZW5kZWQsZSl9fXNldChlLGEsaSl7cmV0dXJuIGEudGltZXN0YW1wSXNTZXQ/ZTpMZShlLGUuZ2V0VGltZSgpLUExKGUpLWkpfWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIiwieCJdfX0pO3ZhciBzaCxoSz1iKCgpPT57YXQoKTtpcygpO0gyKCk7anQoKTtRdCgpO3NoPWNsYXNzIGV4dGVuZHMgVWV7cHJpb3JpdHk9MTA7cGFyc2UoZSxhKXtzd2l0Y2goYSl7Y2FzZSJ4IjpyZXR1cm4gc2kocmkuYmFzaWNPcHRpb25hbE1pbnV0ZXMsZSk7Y2FzZSJ4eCI6cmV0dXJuIHNpKHJpLmJhc2ljLGUpO2Nhc2UieHh4eCI6cmV0dXJuIHNpKHJpLmJhc2ljT3B0aW9uYWxTZWNvbmRzLGUpO2Nhc2UieHh4eHgiOnJldHVybiBzaShyaS5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyxlKTtkZWZhdWx0OnJldHVybiBzaShyaS5leHRlbmRlZCxlKX19c2V0KGUsYSxpKXtyZXR1cm4gYS50aW1lc3RhbXBJc1NldD9lOkxlKGUsZS5nZXRUaW1lKCktQTEoZSktaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIG5oLHVLPWIoKCk9PnthdCgpO2p0KCk7UXQoKTtuaD1jbGFzcyBleHRlbmRzIFVle3ByaW9yaXR5PTQwO3BhcnNlKGUpe3JldHVybiBDcChlKX1zZXQoZSxhLGkpe3JldHVybltMZShlLGkqMWUzKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciBvaCxmSz1iKCgpPT57YXQoKTtqdCgpO1F0KCk7b2g9Y2xhc3MgZXh0ZW5kcyBVZXtwcmlvcml0eT0yMDtwYXJzZShlKXtyZXR1cm4gQ3AoZSl9c2V0KGUsYSxpKXtyZXR1cm5bTGUoZSxpKSx7dGltZXN0YW1wSXNTZXQ6ITB9XX1pbmNvbXBhdGlibGVUb2tlbnM9IioifX0pO3ZhciBsaCxtSz1iKCgpPT57T1goKTtSWCgpO0JYKCk7SFgoKTtxWCgpO1ZYKCk7algoKTtVWCgpO1dYKCk7R1goKTtZWCgpO1pYKCk7WFgoKTtLWCgpO1FYKCk7SlgoKTtlSygpO3RLKCk7YUsoKTtpSygpO3JLKCk7c0soKTtuSygpO29LKCk7bEsoKTtjSygpO2RLKCk7cEsoKTtoSygpO3VLKCk7ZksoKTtsaD17RzpuZXcgU3AseTpuZXcgTHAsWTpuZXcgJHAsUjpuZXcgQXAsdTpuZXcgRHAsUTpuZXcgRXAscTpuZXcgUHAsTTpuZXcgSXAsTDpuZXcgTnAsdzpuZXcgT3AsSTpuZXcgQnAsZDpuZXcgSHAsRDpuZXcgcXAsRTpuZXcgVnAsZTpuZXcganAsYzpuZXcgVXAsaTpuZXcgR3AsYTpuZXcgWXAsYjpuZXcgWnAsQjpuZXcgWHAsaDpuZXcgS3AsSDpuZXcgUXAsSzpuZXcgSnAsazpuZXcgZWgsbTpuZXcgdGgsczpuZXcgYWgsUzpuZXcgaWgsWDpuZXcgcmgseDpuZXcgc2gsdDpuZXcgbmgsVDpuZXcgb2h9fSk7ZnVuY3Rpb24gY2godCxlLGEsaSl7bGV0IHI9KCk9PkxlKGk/LmlufHxhLE5hTikscz12cCgpLG49aT8ubG9jYWxlPz9zLmxvY2FsZT8/U2Esbz1pPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2k/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9zLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/cy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxkPWk/LndlZWtTdGFydHNPbj8/aT8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Mud2Vla1N0YXJ0c09uPz9zLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wO2lmKCFlKXJldHVybiB0P3IoKTpuZShhLGk/LmluKTtsZXQgYz17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOm8sd2Vla1N0YXJ0c09uOmQsbG9jYWxlOm59LHA9W25ldyBrcChpPy5pbixhKV0sbD1lLm1hdGNoKElDdCkubWFwKG09PntsZXQgeD1tWzBdO2lmKHggaW4geW4pe2xldCBNPXluW3hdO3JldHVybiBNKG0sbi5mb3JtYXRMb25nKX1yZXR1cm4gbX0pLmpvaW4oIiIpLm1hdGNoKFBDdCksZj1bXTtmb3IobGV0IG0gb2YgbCl7IWk/LnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyYmaHAobSkmJlZjKG0sZSx0KSwhaT8udXNlQWRkaXRpb25hbERheU9mWWVhclRva2VucyYmcHAobSkmJlZjKG0sZSx0KTtsZXQgeD1tWzBdLE09bGhbeF07aWYoTSl7bGV0e2luY29tcGF0aWJsZVRva2VuczpTfT1NO2lmKEFycmF5LmlzQXJyYXkoUykpe2xldCBfPWYuZmluZChrPT5TLmluY2x1ZGVzKGsudG9rZW4pfHxrLnRva2VuPT09eCk7aWYoXyl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgVGhlIGZvcm1hdCBzdHJpbmcgbXVzdG4ndCBjb250YWluIFxgJHtfLmZ1bGxUb2tlbn1cYCBhbmQgXGAke219XGAgYXQgdGhlIHNhbWUgdGltZWApfWVsc2UgaWYoTS5pbmNvbXBhdGlibGVUb2tlbnM9PT0iKiImJmYubGVuZ3RoPjApdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7bX1cYCBhbmQgYW55IG90aGVyIHRva2VuIGF0IHRoZSBzYW1lIHRpbWVgKTtmLnB1c2goe3Rva2VuOngsZnVsbFRva2VuOm19KTtsZXQgRj1NLnJ1bih0LG0sbi5tYXRjaCxjKTtpZighRilyZXR1cm4gcigpO3AucHVzaChGLnNldHRlciksdD1GLnJlc3R9ZWxzZXtpZih4Lm1hdGNoKFJDdCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIit4KyJgIik7aWYobT09PSInJyI/bT0iJyI6eD09PSInIiYmKG09QkN0KG0pKSx0LmluZGV4T2YobSk9PT0wKXQ9dC5zbGljZShtLmxlbmd0aCk7ZWxzZSByZXR1cm4gcigpfX1pZih0Lmxlbmd0aD4wJiZPQ3QudGVzdCh0KSlyZXR1cm4gcigpO2xldCBnPXAubWFwKG09Pm0ucHJpb3JpdHkpLnNvcnQoKG0seCk9PngtbSkuZmlsdGVyKChtLHgsTSk9Pk0uaW5kZXhPZihtKT09PXgpLm1hcChtPT5wLmZpbHRlcih4PT54LnByaW9yaXR5PT09bSkuc29ydCgoeCxNKT0+TS5zdWJQcmlvcml0eS14LnN1YlByaW9yaXR5KSkubWFwKG09Pm1bMF0pLHk9bmUoYSxpPy5pbik7aWYoaXNOYU4oK3kpKXJldHVybiByKCk7bGV0IHY9e307Zm9yKGxldCBtIG9mIGcpe2lmKCFtLnZhbGlkYXRlKHksYykpcmV0dXJuIHIoKTtsZXQgeD1tLnNldCh5LHYsYyk7QXJyYXkuaXNBcnJheSh4KT8oeT14WzBdLE9iamVjdC5hc3NpZ24odix4WzFdKSk6eT14fXJldHVybiB5fWZ1bmN0aW9uIEJDdCh0KXtyZXR1cm4gdC5tYXRjaChOQ3QpWzFdLnJlcGxhY2UoRkN0LCInIil9dmFyIFBDdCxJQ3QsTkN0LEZDdCxPQ3QsUkN0LHQ5MSxMUz1iKCgpPT57R28oKTt1UygpO2ZTKCk7YXQoKTt3UygpO0FlKCk7U1MoKTttSygpO1BDdD0vW3lZUXFNTHdJZERlY2loSEtrbXNdb3woXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLElDdD0vUCtwK3xQK3xwK3wnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxOQ3Q9L14nKFteXSo/KSc/JC8sRkN0PS8nJy9nLE9DdD0vXFMvLFJDdD0vW2EtekEtWl0vO3Q5MT1jaH0pO2Z1bmN0aW9uIGdLKHQsZSxhKXtyZXR1cm4gejIoY2godCxlLG5ldyBEYXRlLGEpKX12YXIgczkxLGJLPWIoKCk9PntzcygpO0xTKCk7czkxPWdLfSk7ZnVuY3Rpb24gdksodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0RGF5KCk9PT0xfXZhciBsOTEseUs9YigoKT0+e0FlKCk7bDkxPXZLfSk7ZnVuY3Rpb24geEsodCl7cmV0dXJuK25lKHQpPERhdGUubm93KCl9dmFyIHA5MSx3Sz1iKCgpPT57QWUoKTtwOTE9eEt9KTtmdW5jdGlvbiBHYyh0LGUpe2xldCBhPW5lKHQsZT8uaW4pO3JldHVybiBhLnNldE1pbnV0ZXMoMCwwLDApLGF9dmFyIGY5MSwkUz1iKCgpPT57QWUoKTtmOTE9R2N9KTtmdW5jdGlvbiBkaCh0LGUsYSl7bGV0W2kscl09SmUoYT8uaW4sdCxlKTtyZXR1cm4rR2MoaSk9PStHYyhyKX12YXIgdjkxLEFTPWIoKCk9PntpMSgpOyRTKCk7djkxPWRofSk7ZnVuY3Rpb24gaTModCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuK2MxKGksYSk9PStjMShyLGEpfXZhciBNOTEscGg9YigoKT0+e2kxKCk7RGkoKTtNOTE9aTN9KTtmdW5jdGlvbiBoaCh0LGUsYSl7cmV0dXJuIGkzKHQsZSx7Li4uYSx3ZWVrU3RhcnRzT246MX0pfXZhciBTOTEsRFM9YigoKT0+e3BoKCk7UzkxPWhofSk7ZnVuY3Rpb24gTUsodCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuK0lhKGkpPT0rSWEocil9dmFyIEw5MSx6Sz1iKCgpPT57UjQoKTtpMSgpO0w5MT1NS30pO2Z1bmN0aW9uIFljKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7cmV0dXJuIGEuc2V0U2Vjb25kcygwLDApLGF9dmFyIEQ5MSxFUz1iKCgpPT57QWUoKTtEOTE9WWN9KTtmdW5jdGlvbiB1aCh0LGUpe3JldHVybitZYyh0KT09K1ljKGUpfXZhciBJOTEsUFM9YigoKT0+e0VTKCk7STkxPXVofSk7ZnVuY3Rpb24gZmgodCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKT09PXIuZ2V0RnVsbFllYXIoKSYmaS5nZXRNb250aCgpPT09ci5nZXRNb250aCgpfXZhciBPOTEsSVM9YigoKT0+e2kxKCk7TzkxPWZofSk7ZnVuY3Rpb24gbWgodCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuK01yKGkpPT0rTXIocil9dmFyIHE5MSxOUz1iKCgpPT57aTEoKTt0cCgpO3E5MT1taH0pO2Z1bmN0aW9uIFpjKHQsZSl7bGV0IGE9bmUodCxlPy5pbik7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKDApLGF9dmFyIFU5MSxGUz1iKCgpPT57QWUoKTtVOTE9WmN9KTtmdW5jdGlvbiBnaCh0LGUpe3JldHVybitaYyh0KT09K1pjKGUpfXZhciBZOTEsT1M9YigoKT0+e0ZTKCk7WTkxPWdofSk7ZnVuY3Rpb24gYmgodCxlLGEpe2xldFtpLHJdPUplKGE/LmluLHQsZSk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKT09PXIuZ2V0RnVsbFllYXIoKX12YXIgSzkxLFJTPWIoKCk9PntpMSgpO0s5MT1iaH0pO2Z1bmN0aW9uIGtLKHQsZSl7cmV0dXJuIGRoKG5lKHQsZT8uaW4pLEN0KGU/LmlufHx0KSl9dmFyIGF1MSxTSz1iKCgpPT57SjEoKTtBUygpO0FlKCk7YXUxPWtLfSk7ZnVuY3Rpb24gQ0sodCxlKXtyZXR1cm4gaGgoTGUoZT8uaW58fHQsdCksQ3QoZT8uaW58fHQpKX12YXIgb3UxLF9LPWIoKCk9PnthdCgpO0oxKCk7RFMoKTtvdTE9Q0t9KTtmdW5jdGlvbiBUSyh0KXtyZXR1cm4gdWgodCxDdCh0KSl9dmFyIHB1MSxMSz1iKCgpPT57SjEoKTtQUygpO3B1MT1US30pO2Z1bmN0aW9uICRLKHQsZSl7cmV0dXJuIGZoKExlKGU/LmlufHx0LHQpLEN0KGU/LmlufHx0KSl9dmFyIGd1MSxBSz1iKCgpPT57YXQoKTtKMSgpO0lTKCk7Z3UxPSRLfSk7ZnVuY3Rpb24gREsodCxlKXtyZXR1cm4gbWgoTGUoZT8uaW58fHQsdCksQ3QoZT8uaW58fHQpKX12YXIgd3UxLEVLPWIoKCk9PnthdCgpO0oxKCk7TlMoKTt3dTE9REt9KTtmdW5jdGlvbiBQSyh0KXtyZXR1cm4gZ2godCxDdCh0KSl9dmFyIFN1MSxJSz1iKCgpPT57SjEoKTtPUygpO1N1MT1QS30pO2Z1bmN0aW9uIE5LKHQsZSl7cmV0dXJuIGkzKExlKGU/LmlufHx0LHQpLEN0KGU/LmlufHx0KSxlKX12YXIgJHUxLEZLPWIoKCk9PnthdCgpO0oxKCk7cGgoKTskdTE9Tkt9KTtmdW5jdGlvbiBPSyh0LGUpe3JldHVybiBiaChMZShlPy5pbnx8dCx0KSxDdChlPy5pbnx8dCkpfXZhciBJdTEsUks9YigoKT0+e2F0KCk7SjEoKTtSUygpO0l1MT1PS30pO2Z1bmN0aW9uIEJLKHQsZSl7cmV0dXJuIG5lKHQsZT8uaW4pLmdldERheSgpPT09NH12YXIgT3UxLEhLPWIoKCk9PntBZSgpO091MT1CS30pO2Z1bmN0aW9uIHFLKHQsZSl7cmV0dXJuIHlyKExlKGU/LmlufHx0LHQpLEN0KGU/LmlufHx0KSl9dmFyIFZ1MSxWSz1iKCgpPT57YXQoKTtKMSgpO3E0KCk7VnUxPXFLfSk7ZnVuY3Rpb24gaksodCxlKXtyZXR1cm4geXIodCxRMShDdChlPy5pbnx8dCksMSksZSl9dmFyIFl1MSxVSz1iKCgpPT57ZnIoKTtKMSgpO3E0KCk7WXUxPWpLfSk7ZnVuY3Rpb24gV0sodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0RGF5KCk9PT0yfXZhciBLdTEsR0s9YigoKT0+e0FlKCk7S3UxPVdLfSk7ZnVuY3Rpb24gWUsodCxlKXtyZXR1cm4gbmUodCxlPy5pbikuZ2V0RGF5KCk9PT0zfXZhciBlZjEsWks9YigoKT0+e0FlKCk7ZWYxPVlLfSk7ZnVuY3Rpb24gWEsodCxlLGEpe2xldCBpPStuZSh0LGE/LmluKSxbcixzXT1bK25lKGUuc3RhcnQsYT8uaW4pLCtuZShlLmVuZCxhPy5pbildLnNvcnQoKG4sbyk9Pm4tbyk7cmV0dXJuIGk+PXImJmk8PXN9dmFyIGlmMSxLSz1iKCgpPT57QWUoKTtpZjE9WEt9KTtmdW5jdGlvbiBNbih0LGUsYSl7cmV0dXJuIFExKHQsLWUsYSl9dmFyIG5mMSxYYz1iKCgpPT57ZnIoKTtuZjE9TW59KTtmdW5jdGlvbiBRSyh0LGUpe3JldHVybiB5cihMZShlPy5pbnx8dCx0KSxNbihDdChlPy5pbnx8dCksMSkpfXZhciBoZjEsSks9YigoKT0+e2F0KCk7SjEoKTtxNCgpO1hjKCk7aGYxPVFLfSk7ZnVuY3Rpb24gZVEodCxlKXtsZXQgYT1uZSh0LGU/LmluKSxpPWEuZ2V0RnVsbFllYXIoKSxyPTkrTWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gYS5zZXRGdWxsWWVhcihyKzEsMCwwKSxhLnNldEhvdXJzKDAsMCwwLDApLG5lKGEsZT8uaW4pfXZhciBtZjEsdFE9YigoKT0+e0FlKCk7bWYxPWVRfSk7ZnVuY3Rpb24gdmgodCxlKXtsZXQgYT1LdCgpLGk9ZT8ud2Vla1N0YXJ0c09uPz9lPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/YS53ZWVrU3RhcnRzT24/P2EubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAscj1uZSh0LGU/LmluKSxzPXIuZ2V0RGF5KCksbj0oczxpPy03OjApKzYtKHMtaSk7cmV0dXJuIHIuc2V0SG91cnMoMCwwLDAsMCksci5zZXREYXRlKHIuZ2V0RGF0ZSgpK24pLHJ9dmFyIHlmMSxCUz1iKCgpPT57TzIoKTtBZSgpO3lmMT12aH0pO2Z1bmN0aW9uIGFRKHQsZSl7cmV0dXJuIHZoKHQsey4uLmUsd2Vla1N0YXJ0c09uOjF9KX12YXIgTWYxLGlRPWIoKCk9PntCUygpO01mMT1hUX0pO2Z1bmN0aW9uIHJRKHQsZSl7bGV0IGE9c2EodCxlKSxpPUxlKGU/LmlufHx0LDApO2kuc2V0RnVsbFllYXIoYSsxLDAsNCksaS5zZXRIb3VycygwLDAsMCwwKTtsZXQgcj1XMShpLGUpO3JldHVybiByLnNldERhdGUoci5nZXREYXRlKCktMSkscn12YXIgX2YxLHNRPWIoKCk9PnthdCgpO3VuKCk7YnIoKTtfZjE9clF9KTtmdW5jdGlvbiBuUSh0LGUpe2xldCBhPW5lKHQsZT8uaW4pLGk9YS5nZXRNb250aCgpLHI9aS1pJTMrMztyZXR1cm4gYS5zZXRNb250aChyLDApLGEuc2V0SG91cnMoMCwwLDAsMCksYX12YXIgJGYxLG9RPWIoKCk9PntBZSgpOyRmMT1uUX0pO2Z1bmN0aW9uIGxRKHQsZSl7bGV0IGE9bmUodCxlPy5pbiksaT1hLmdldEZ1bGxZZWFyKCk7cmV0dXJuIGEuc2V0RnVsbFllYXIoaSsxLDAsMCksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciBFZjEsY1E9YigoKT0+e0FlKCk7RWYxPWxRfSk7ZnVuY3Rpb24gZFEodCxlKXtsZXQgYT1uZSh0KTtpZighejIoYSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPWUubWF0Y2goSEN0KTtyZXR1cm4gaT9pLm1hcChzPT57aWYocz09PSInJyIpcmV0dXJuIiciO2xldCBuPXNbMF07aWYobj09PSInIilyZXR1cm4gVUN0KHMpO2xldCBvPU5hW25dO2lmKG8pcmV0dXJuIG8oYSxzKTtpZihuLm1hdGNoKGpDdCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIituKyJgIik7cmV0dXJuIHN9KS5qb2luKCIiKToiIn1mdW5jdGlvbiBVQ3QodCl7bGV0IGU9dC5tYXRjaChxQ3QpO3JldHVybiBlP2VbMV0ucmVwbGFjZShWQ3QsIiciKTp0fXZhciBIQ3QscUN0LFZDdCxqQ3QsT2YxLHBRPWIoKCk9PntoUygpO3NzKCk7QWUoKTtIQ3Q9LyhcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2cscUN0PS9eJyhbXl0qPyknPyQvLFZDdD0vJycvZyxqQ3Q9L1thLXpBLVpdLztPZjE9ZFF9KTtmdW5jdGlvbiBoUSh7eWVhcnM6dCxtb250aHM6ZSx3ZWVrczphLGRheXM6aSxob3VyczpyLG1pbnV0ZXM6cyxzZWNvbmRzOm59KXtsZXQgbz0wO3QmJihvKz10KjM2NS4yNDI1KSxlJiYobys9ZSooMzY1LjI0MjUvMTIpKSxhJiYobys9YSo3KSxpJiYobys9aSk7bGV0IGQ9byoyNCo2MCo2MDtyZXR1cm4gciYmKGQrPXIqNjAqNjApLHMmJihkKz1zKjYwKSxuJiYoZCs9biksTWF0aC50cnVuYyhkKjFlMyl9dmFyIEhmMSx1UT1iKCgpPT57eXQoKTtIZjE9aFF9KTtmdW5jdGlvbiBmUSh0KXtsZXQgZT10L1BhO3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBqZjEsbVE9YigoKT0+e3l0KCk7amYxPWZRfSk7ZnVuY3Rpb24gZ1EodCl7bGV0IGU9dC9GMjtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgR2YxLGJRPWIoKCk9Pnt5dCgpO0dmMT1nUX0pO2Z1bmN0aW9uIHZRKHQpe2xldCBlPXQvSTQ7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIFhmMSx5UT1iKCgpPT57eXQoKTtYZjE9dlF9KTtmdW5jdGlvbiB4USh0KXtsZXQgZT10L3o3O3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBKZjEsd1E9YigoKT0+e3l0KCk7SmYxPXhRfSk7ZnVuY3Rpb24gTVEodCl7cmV0dXJuIE1hdGgudHJ1bmModCpGMil9dmFyIGFtMSx6UT1iKCgpPT57eXQoKTthbTE9TVF9KTtmdW5jdGlvbiBrUSh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KkY0KX12YXIgc20xLFNRPWIoKCk9Pnt5dCgpO3NtMT1rUX0pO2Z1bmN0aW9uIENRKHQpe2xldCBlPXQvazc7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIGxtMSxfUT1iKCgpPT57eXQoKTtsbTE9Q1F9KTtmdW5jdGlvbiBUUSh0KXtsZXQgZT10L1M3O3JldHVybiBNYXRoLnRydW5jKGUpfXZhciBwbTEsTFE9YigoKT0+e3l0KCk7cG0xPVRRfSk7ZnVuY3Rpb24gcTIodCxlLGEpe2xldCBpPWUteG4odCxhKTtyZXR1cm4gaTw9MCYmKGkrPTcpLFExKHQsaSxhKX12YXIgbW0xLG9zPWIoKCk9PntmcigpO1VjKCk7bW0xPXEyfSk7ZnVuY3Rpb24gJFEodCxlKXtyZXR1cm4gcTIodCw1LGUpfXZhciB2bTEsQVE9YigoKT0+e29zKCk7dm0xPSRRfSk7ZnVuY3Rpb24gRFEodCxlKXtyZXR1cm4gcTIodCwxLGUpfXZhciB3bTEsRVE9YigoKT0+e29zKCk7d20xPURRfSk7ZnVuY3Rpb24gUFEodCxlKXtyZXR1cm4gcTIodCw2LGUpfXZhciBrbTEsSVE9YigoKT0+e29zKCk7a20xPVBRfSk7ZnVuY3Rpb24gTlEodCxlKXtyZXR1cm4gcTIodCwwLGUpfXZhciBfbTEsRlE9YigoKT0+e29zKCk7X20xPU5RfSk7ZnVuY3Rpb24gT1EodCxlKXtyZXR1cm4gcTIodCw0LGUpfXZhciAkbTEsUlE9YigoKT0+e29zKCk7JG0xPU9RfSk7ZnVuY3Rpb24gQlEodCxlKXtyZXR1cm4gcTIodCwyLGUpfXZhciBFbTEsSFE9YigoKT0+e29zKCk7RW0xPUJRfSk7ZnVuY3Rpb24gcVEodCxlKXtyZXR1cm4gcTIodCwzLGUpfXZhciBObTEsVlE9YigoKT0+e29zKCk7Tm0xPXFRfSk7ZnVuY3Rpb24gVVEodCxlKXtsZXQgYT0oKT0+TGUoZT8uaW4sTmFOKSxpPWU/LmFkZGl0aW9uYWxEaWdpdHM/PzIscj1aQ3QodCkscztpZihyLmRhdGUpe2xldCBjPVhDdChyLmRhdGUsaSk7cz1LQ3QoYy5yZXN0RGF0ZVN0cmluZyxjLnllYXIpfWlmKCFzfHxpc05hTigrcykpcmV0dXJuIGEoKTtsZXQgbj0rcyxvPTAsZDtpZihyLnRpbWUmJihvPVFDdChyLnRpbWUpLGlzTmFOKG8pKSlyZXR1cm4gYSgpO2lmKHIudGltZXpvbmUpe2lmKGQ9SkN0KHIudGltZXpvbmUpLGlzTmFOKGQpKXJldHVybiBhKCl9ZWxzZXtsZXQgYz1uZXcgRGF0ZShuK28pLHA9bmUoMCxlPy5pbik7cmV0dXJuIHAuc2V0RnVsbFllYXIoYy5nZXRVVENGdWxsWWVhcigpLGMuZ2V0VVRDTW9udGgoKSxjLmdldFVUQ0RhdGUoKSkscC5zZXRIb3VycyhjLmdldFVUQ0hvdXJzKCksYy5nZXRVVENNaW51dGVzKCksYy5nZXRVVENTZWNvbmRzKCksYy5nZXRVVENNaWxsaXNlY29uZHMoKSkscH1yZXR1cm4gbmUobitvK2QsZT8uaW4pfWZ1bmN0aW9uIFpDdCh0KXtsZXQgZT17fSxhPXQuc3BsaXQoeWguZGF0ZVRpbWVEZWxpbWl0ZXIpLGk7aWYoYS5sZW5ndGg+MilyZXR1cm4gZTtpZigvOi8udGVzdChhWzBdKT9pPWFbMF06KGUuZGF0ZT1hWzBdLGk9YVsxXSx5aC50aW1lWm9uZURlbGltaXRlci50ZXN0KGUuZGF0ZSkmJihlLmRhdGU9dC5zcGxpdCh5aC50aW1lWm9uZURlbGltaXRlcilbMF0saT10LnN1YnN0cihlLmRhdGUubGVuZ3RoLHQubGVuZ3RoKSkpLGkpe2xldCByPXloLnRpbWV6b25lLmV4ZWMoaSk7cj8oZS50aW1lPWkucmVwbGFjZShyWzFdLCIiKSxlLnRpbWV6b25lPXJbMV0pOmUudGltZT1pfXJldHVybiBlfWZ1bmN0aW9uIFhDdCh0LGUpe2xldCBhPW5ldyBSZWdFeHAoIl4oPzooXFxkezR9fFsrLV1cXGR7IisoNCtlKSsifSl8KFxcZHsyfXxbKy1dXFxkeyIrKDIrZSkrIn0pJCkiKSxpPXQubWF0Y2goYSk7aWYoIWkpcmV0dXJue3llYXI6TmFOLHJlc3REYXRlU3RyaW5nOiIifTtsZXQgcj1pWzFdP3BhcnNlSW50KGlbMV0pOm51bGwscz1pWzJdP3BhcnNlSW50KGlbMl0pOm51bGw7cmV0dXJue3llYXI6cz09PW51bGw/cjpzKjEwMCxyZXN0RGF0ZVN0cmluZzp0LnNsaWNlKChpWzFdfHxpWzJdKS5sZW5ndGgpfX1mdW5jdGlvbiBLQ3QodCxlKXtpZihlPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtsZXQgYT10Lm1hdGNoKFdDdCk7aWYoIWEpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IGk9ISFhWzRdLHI9S2MoYVsxXSkscz1LYyhhWzJdKS0xLG49S2MoYVszXSksbz1LYyhhWzRdKSxkPUtjKGFbNV0pLTE7aWYoaSlyZXR1cm4gcl90KGUsbyxkKT9lX3QoZSxvLGQpOm5ldyBEYXRlKE5hTik7e2xldCBjPW5ldyBEYXRlKDApO3JldHVybiFhX3QoZSxzLG4pfHwhaV90KGUscik/bmV3IERhdGUoTmFOKTooYy5zZXRVVENGdWxsWWVhcihlLHMsTWF0aC5tYXgocixuKSksYyl9fWZ1bmN0aW9uIEtjKHQpe3JldHVybiB0P3BhcnNlSW50KHQpOjF9ZnVuY3Rpb24gUUN0KHQpe2xldCBlPXQubWF0Y2goR0N0KTtpZighZSlyZXR1cm4gTmFOO2xldCBhPUhTKGVbMV0pLGk9SFMoZVsyXSkscj1IUyhlWzNdKTtyZXR1cm4gc190KGEsaSxyKT9hKlBhK2kqRjIrcioxZTM6TmFOfWZ1bmN0aW9uIEhTKHQpe3JldHVybiB0JiZwYXJzZUZsb2F0KHQucmVwbGFjZSgiLCIsIi4iKSl8fDB9ZnVuY3Rpb24gSkN0KHQpe2lmKHQ9PT0iWiIpcmV0dXJuIDA7bGV0IGU9dC5tYXRjaChZQ3QpO2lmKCFlKXJldHVybiAwO2xldCBhPWVbMV09PT0iKyI/LTE6MSxpPXBhcnNlSW50KGVbMl0pLHI9ZVszXSYmcGFyc2VJbnQoZVszXSl8fDA7cmV0dXJuIG5fdChpLHIpP2EqKGkqUGErcipGMik6TmFOfWZ1bmN0aW9uIGVfdCh0LGUsYSl7bGV0IGk9bmV3IERhdGUoMCk7aS5zZXRVVENGdWxsWWVhcih0LDAsNCk7bGV0IHI9aS5nZXRVVENEYXkoKXx8NyxzPShlLTEpKjcrYSsxLXI7cmV0dXJuIGkuc2V0VVRDRGF0ZShpLmdldFVUQ0RhdGUoKStzKSxpfWZ1bmN0aW9uIGpRKHQpe3JldHVybiB0JTQwMD09PTB8fHQlND09PTAmJnQlMTAwIT09MH1mdW5jdGlvbiBhX3QodCxlLGEpe3JldHVybiBlPj0wJiZlPD0xMSYmYT49MSYmYTw9KHRfdFtlXXx8KGpRKHQpPzI5OjI4KSl9ZnVuY3Rpb24gaV90KHQsZSl7cmV0dXJuIGU+PTEmJmU8PShqUSh0KT8zNjY6MzY1KX1mdW5jdGlvbiByX3QodCxlLGEpe3JldHVybiBlPj0xJiZlPD01MyYmYT49MCYmYTw9Nn1mdW5jdGlvbiBzX3QodCxlLGEpe3JldHVybiB0PT09MjQ/ZT09PTAmJmE9PT0wOmE+PTAmJmE8NjAmJmU+PTAmJmU8NjAmJnQ+PTAmJnQ8MjV9ZnVuY3Rpb24gbl90KHQsZSl7cmV0dXJuIGU+PTAmJmU8PTU5fXZhciB5aCxXQ3QsR0N0LFlDdCx0X3QsSG0xLFdRPWIoKCk9Pnt5dCgpO2F0KCk7QWUoKTt5aD17ZGF0ZVRpbWVEZWxpbWl0ZXI6L1tUIF0vLHRpbWVab25lRGVsaW1pdGVyOi9bWiBdL2ksdGltZXpvbmU6LyhbWistXS4qKSQvfSxXQ3Q9L14tPyg/OihcZHszfSl8KFxkezJ9KSg/Oi0/KFxkezJ9KSk/fFcoXGR7Mn0pKD86LT8oXGR7MX0pKT98KSQvLEdDdD0vXihcZHsyfSg/OlsuLF1cZCopPykoPzo6PyhcZHsyfSg/OlsuLF1cZCopPykpPyg/Ojo/KFxkezJ9KD86Wy4sXVxkKik/KSk/JC8sWUN0PS9eKFsrLV0pKFxkezJ9KSg/Ojo/KFxkezJ9KSk/JC87dF90PVszMSxudWxsLDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtIbTE9VVF9KTtmdW5jdGlvbiBHUSh0LGUpe2xldCBhPXQubWF0Y2goLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1QgXShcZHsyfSk6KFxkezJ9KTooXGR7Mn0pKD86XC4oXGR7MCw3fSkpPyg/Olp8KC4pKFxkezJ9KTo/KFxkezJ9KT8pPy8pO3JldHVybiBhP25lKERhdGUuVVRDKCthWzFdLCthWzJdLTEsK2FbM10sK2FbNF0tKCthWzldfHwwKSooYVs4XT09Ii0iPy0xOjEpLCthWzVdLSgrYVsxMF18fDApKihhWzhdPT0iLSI/LTE6MSksK2FbNl0sKygoYVs3XXx8IjAiKSsiMDAiKS5zdWJzdHJpbmcoMCwzKSksZT8uaW4pOm5lKE5hTixlPy5pbil9dmFyIGptMSxZUT1iKCgpPT57QWUoKTtqbTE9R1F9KTtmdW5jdGlvbiBWMih0LGUsYSl7bGV0IGk9eG4odCxhKS1lO3JldHVybiBpPD0wJiYoaSs9NyksTW4odCxpLGEpfXZhciBZbTEsbHM9YigoKT0+e1VjKCk7WGMoKTtZbTE9VjJ9KTtmdW5jdGlvbiBaUSh0LGUpe3JldHVybiBWMih0LDUsZSl9dmFyIEttMSxYUT1iKCgpPT57bHMoKTtLbTE9WlF9KTtmdW5jdGlvbiBLUSh0LGUpe3JldHVybiBWMih0LDEsZSl9dmFyIGVnMSxRUT1iKCgpPT57bHMoKTtlZzE9S1F9KTtmdW5jdGlvbiBKUSh0LGUpe3JldHVybiBWMih0LDYsZSl9dmFyIGlnMSxlSj1iKCgpPT57bHMoKTtpZzE9SlF9KTtmdW5jdGlvbiB0Sih0LGUpe3JldHVybiBWMih0LDAsZSl9dmFyIG5nMSxhSj1iKCgpPT57bHMoKTtuZzE9dEp9KTtmdW5jdGlvbiBpSih0LGUpe3JldHVybiBWMih0LDQsZSl9dmFyIGNnMSxySj1iKCgpPT57bHMoKTtjZzE9aUp9KTtmdW5jdGlvbiBzSih0LGUpe3JldHVybiBWMih0LDIsZSl9dmFyIGhnMSxuSj1iKCgpPT57bHMoKTtoZzE9c0p9KTtmdW5jdGlvbiBvSih0LGUpe3JldHVybiBWMih0LDMsZSl9dmFyIG1nMSxsSj1iKCgpPT57bHMoKTttZzE9b0p9KTtmdW5jdGlvbiBjSih0KXtyZXR1cm4gTWF0aC50cnVuYyh0Kms3KX12YXIgdmcxLGRKPWIoKCk9Pnt5dCgpO3ZnMT1jSn0pO2Z1bmN0aW9uIHBKKHQpe2xldCBlPXQvQzc7cmV0dXJuIE1hdGgudHJ1bmMoZSl9dmFyIHdnMSxoSj1iKCgpPT57eXQoKTt3ZzE9cEp9KTtmdW5jdGlvbiB1Sih0LGUpe2xldCBhPWU/Lm5lYXJlc3RUbz8/MTtpZihhPDF8fGE+MTIpcmV0dXJuIExlKGU/LmlufHx0LE5hTik7bGV0IGk9bmUodCxlPy5pbikscj1pLmdldE1pbnV0ZXMoKS82MCxzPWkuZ2V0U2Vjb25kcygpLzYwLzYwLG49aS5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAsbz1pLmdldEhvdXJzKCkrcitzK24sZD1lPy5yb3VuZGluZ01ldGhvZD8/InJvdW5kIixwPUIyKGQpKG8vYSkqYTtyZXR1cm4gaS5zZXRIb3VycyhwLDAsMCwwKSxpfXZhciBDZzEsZko9YigoKT0+e25zKCk7YXQoKTtBZSgpO0NnMT11Sn0pO2Z1bmN0aW9uIG1KKHQsZSl7bGV0IGE9ZT8ubmVhcmVzdFRvPz8xO2lmKGE8MXx8YT4zMClyZXR1cm4gTGUodCxOYU4pO2xldCBpPW5lKHQsZT8uaW4pLHI9aS5nZXRTZWNvbmRzKCkvNjAscz1pLmdldE1pbGxpc2Vjb25kcygpLzFlMy82MCxuPWkuZ2V0TWludXRlcygpK3IrcyxvPWU/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiLGM9QjIobykobi9hKSphO3JldHVybiBpLnNldE1pbnV0ZXMoYywwLDApLGl9dmFyIEFnMSxnSj1iKCgpPT57bnMoKTthdCgpO0FlKCk7QWcxPW1KfSk7ZnVuY3Rpb24gYkoodCl7bGV0IGU9dC9IbztyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgUGcxLHZKPWIoKCk9Pnt5dCgpO1BnMT1iSn0pO2Z1bmN0aW9uIHlKKHQpe3JldHVybiB0Kkk0fXZhciBGZzEseEo9YigoKT0+e3l0KCk7RmcxPXlKfSk7ZnVuY3Rpb24gd0oodCl7bGV0IGU9dC9GNDtyZXR1cm4gTWF0aC50cnVuYyhlKX12YXIgQmcxLE1KPWIoKCk9Pnt5dCgpO0JnMT13Sn0pO2Z1bmN0aW9uIHIzKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKSxyPWkuZ2V0RnVsbFllYXIoKSxzPWkuZ2V0RGF0ZSgpLG49TGUoYT8uaW58fHQsMCk7bi5zZXRGdWxsWWVhcihyLGUsMTUpLG4uc2V0SG91cnMoMCwwLDAsMCk7bGV0IG89Z3Aobik7cmV0dXJuIGkuc2V0TW9udGgoZSxNYXRoLm1pbihzLG8pKSxpfXZhciBVZzEseGg9YigoKT0+e2F0KCk7eVMoKTtBZSgpO1VnMT1yM30pO2Z1bmN0aW9uIHpKKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKTtyZXR1cm4gaXNOYU4oK2kpP0xlKGE/LmlufHx0LE5hTik6KGUueWVhciE9bnVsbCYmaS5zZXRGdWxsWWVhcihlLnllYXIpLGUubW9udGghPW51bGwmJihpPXIzKGksZS5tb250aCkpLGUuZGF0ZSE9bnVsbCYmaS5zZXREYXRlKGUuZGF0ZSksZS5ob3VycyE9bnVsbCYmaS5zZXRIb3VycyhlLmhvdXJzKSxlLm1pbnV0ZXMhPW51bGwmJmkuc2V0TWludXRlcyhlLm1pbnV0ZXMpLGUuc2Vjb25kcyE9bnVsbCYmaS5zZXRTZWNvbmRzKGUuc2Vjb25kcyksZS5taWxsaXNlY29uZHMhPW51bGwmJmkuc2V0TWlsbGlzZWNvbmRzKGUubWlsbGlzZWNvbmRzKSxpKX12YXIgWGcxLGtKPWIoKCk9PnthdCgpO3hoKCk7QWUoKTtYZzE9ekp9KTtmdW5jdGlvbiBTSih0LGUsYSl7bGV0IGk9bmUodCxhPy5pbik7cmV0dXJuIGkuc2V0RGF0ZShlKSxpfXZhciBKZzEsQ0o9YigoKT0+e0FlKCk7SmcxPVNKfSk7ZnVuY3Rpb24gX0oodCxlLGEpe2xldCBpPW5lKHQsYT8uaW4pO3JldHVybiBpLnNldE1vbnRoKDApLGkuc2V0RGF0ZShlKSxpfXZhciBhYjEsVEo9YigoKT0+e0FlKCk7YWIxPV9KfSk7ZnVuY3Rpb24gTEoodCl7bGV0IGU9e30sYT1LdCgpO2ZvcihsZXQgaSBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGkpJiYoZVtpXT1hW2ldKTtmb3IobGV0IGkgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmKHRbaV09PT12b2lkIDA/ZGVsZXRlIGVbaV06ZVtpXT10W2ldKTtVRyhlKX12YXIgc2IxLCRKPWIoKCk9PntPMigpO3NiMT1MSn0pO2Z1bmN0aW9uIEFKKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKTtyZXR1cm4gaS5zZXRIb3VycyhlKSxpfXZhciBsYjEsREo9YigoKT0+e0FlKCk7bGIxPUFKfSk7ZnVuY3Rpb24gRUoodCxlLGEpe2xldCBpPW5lKHQsYT8uaW4pO3JldHVybiBpLnNldE1pbGxpc2Vjb25kcyhlKSxpfXZhciBwYjEsUEo9YigoKT0+e0FlKCk7cGIxPUVKfSk7ZnVuY3Rpb24gSUoodCxlLGEpe2xldCBpPW5lKHQsYT8uaW4pO3JldHVybiBpLnNldE1pbnV0ZXMoZSksaX12YXIgZmIxLE5KPWIoKCk9PntBZSgpO2ZiMT1JSn0pO2Z1bmN0aW9uIEZKKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKSxyPU1hdGgudHJ1bmMoaS5nZXRNb250aCgpLzMpKzEscz1lLXI7cmV0dXJuIHIzKGksaS5nZXRNb250aCgpK3MqMyl9dmFyIHZiMSxPSj1iKCgpPT57eGgoKTtBZSgpO3ZiMT1GSn0pO2Z1bmN0aW9uIFJKKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKTtyZXR1cm4gaS5zZXRTZWNvbmRzKGUpLGl9dmFyIHdiMSxCSj1iKCgpPT57QWUoKTt3YjE9Ukp9KTtmdW5jdGlvbiBISih0LGUsYSl7bGV0IGk9S3QoKSxyPWE/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YT8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/P2kuZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz8xLHM9cDIobmUodCxhPy5pbiksWW8odCxhKSxhKSxuPUxlKGE/LmlufHx0LDApO24uc2V0RnVsbFllYXIoZSwwLHIpLG4uc2V0SG91cnMoMCwwLDAsMCk7bGV0IG89WW8obixhKTtyZXR1cm4gby5zZXREYXRlKG8uZ2V0RGF0ZSgpK3MpLG99dmFyIFRiMSxxSj1iKCgpPT57TzIoKTthdCgpO3JzKCk7Y3AoKTtBZSgpO1RiMT1ISn0pO2Z1bmN0aW9uIFZKKHQsZSxhKXtsZXQgaT1uZSh0LGE/LmluKTtyZXR1cm4gaXNOYU4oK2kpP0xlKGE/LmlufHx0LE5hTik6KGkuc2V0RnVsbFllYXIoZSksaSl9dmFyIERiMSxqSj1iKCgpPT57YXQoKTtBZSgpO0RiMT1WSn0pO2Z1bmN0aW9uIFVKKHQsZSl7bGV0IGE9bmUodCxlPy5pbiksaT1hLmdldEZ1bGxZZWFyKCkscj1NYXRoLmZsb29yKGkvMTApKjEwO3JldHVybiBhLnNldEZ1bGxZZWFyKHIsMCwxKSxhLnNldEhvdXJzKDAsMCwwLDApLGF9dmFyIEliMSxXSj1iKCgpPT57QWUoKTtJYjE9VUp9KTtmdW5jdGlvbiBHSih0KXtyZXR1cm4gdnIoRGF0ZS5ub3coKSx0KX12YXIgT2IxLFlKPWIoKCk9PntJYygpO09iMT1HSn0pO2Z1bmN0aW9uIFpKKHQpe2xldCBlPUN0KHQ/LmluKSxhPWUuZ2V0RnVsbFllYXIoKSxpPWUuZ2V0TW9udGgoKSxyPWUuZ2V0RGF0ZSgpLHM9TGUodD8uaW4sMCk7cmV0dXJuIHMuc2V0RnVsbFllYXIoYSxpLHIrMSkscy5zZXRIb3VycygwLDAsMCwwKSxzfXZhciBxYjEsWEo9YigoKT0+e2F0KCk7SjEoKTtxYjE9Wkp9KTtmdW5jdGlvbiBLSih0KXtsZXQgZT1DdCh0Py5pbiksYT1lLmdldEZ1bGxZZWFyKCksaT1lLmdldE1vbnRoKCkscj1lLmdldERhdGUoKSxzPUN0KHQ/LmluKTtyZXR1cm4gcy5zZXRGdWxsWWVhcihhLGksci0xKSxzLnNldEhvdXJzKDAsMCwwLDApLHN9dmFyIFViMSxRSj1iKCgpPT57SjEoKTtVYjE9S0p9KTtmdW5jdGlvbiB3aCh0LGUsYSl7cmV0dXJuIG1yKHQsLWUsYSl9dmFyIFliMSxxUz1iKCgpPT57TzQoKTtZYjE9d2h9KTtmdW5jdGlvbiBKSih0LGUsYSl7bGV0e3llYXJzOmk9MCxtb250aHM6cj0wLHdlZWtzOnM9MCxkYXlzOm49MCxob3VyczpvPTAsbWludXRlczpkPTAsc2Vjb25kczpjPTB9PWUscD13aCh0LHIraSoxMixhKSxsPU1uKHAsbitzKjcsYSksZj1kK28qNjAseT0oYytmKjYwKSoxZTM7cmV0dXJuIExlKGE/LmlufHx0LCtsLXkpfXZhciBKYjEsZWVlPWIoKCk9PnthdCgpO1hjKCk7cVMoKTtKYjE9Skp9KTtmdW5jdGlvbiB0ZWUodCxlLGEpe3JldHVybiBMNyh0LC1lLGEpfXZhciBhdjEsYWVlPWIoKCk9PntXaygpO2F2MT10ZWV9KTtmdW5jdGlvbiBpZWUodCxlLGEpe3JldHVybiAkNyh0LC1lLGEpfXZhciBzdjEscmVlPWIoKCk9PntHaygpO3N2MT1pZWV9KTtmdW5jdGlvbiBzZWUodCxlLGEpe3JldHVybiBobih0LC1lLGEpfXZhciBsdjEsbmVlPWIoKCk9PntQYygpO2x2MT1zZWV9KTtmdW5jdGlvbiBvZWUodCxlLGEpe3JldHVybiBCNCh0LC1lLGEpfXZhciBwdjEsbGVlPWIoKCk9PntFNygpO3B2MT1vZWV9KTtmdW5jdGlvbiBjZWUodCxlLGEpe3JldHVybiBINCh0LC1lLGEpfXZhciBmdjEsZGVlPWIoKCk9PntQNygpO2Z2MT1jZWV9KTtmdW5jdGlvbiBwZWUodCxlLGEpe3JldHVybiBJNyh0LC1lLGEpfXZhciBidjEsaGVlPWIoKCk9PntYaygpO2J2MT1wZWV9KTtmdW5jdGlvbiB1ZWUodCxlLGEpe3JldHVybiBmbih0LC1lLGEpfXZhciB4djEsZmVlPWIoKCk9PntOYygpO3h2MT11ZWV9KTtmdW5jdGlvbiBtZWUodCxlLGEpe3JldHVybiBONyh0LC1lLGEpfXZhciB6djEsZ2VlPWIoKCk9PntLaygpO3p2MT1tZWV9KTtmdW5jdGlvbiBiZWUodCl7cmV0dXJuIE1hdGgudHJ1bmModCo3KX12YXIgQ3YxLHZlZT1iKCgpPT57eXQoKTtDdjE9YmVlfSk7ZnVuY3Rpb24geWVlKHQpe3JldHVybiBNYXRoLnRydW5jKHQqMzY1LjI0MjUpfXZhciBMdjEseGVlPWIoKCk9Pnt5dCgpO0x2MT15ZWV9KTtmdW5jdGlvbiB3ZWUodCl7cmV0dXJuIE1hdGgudHJ1bmModCpTNyl9dmFyIER2MSxNZWU9YigoKT0+e3l0KCk7RHYxPXdlZX0pO2Z1bmN0aW9uIHplZSh0KXtyZXR1cm4gTWF0aC50cnVuYyh0KkM3KX12YXIgSXYxLGtlZT1iKCgpPT57eXQoKTtJdjE9emVlfSk7dmFyIFFjPXt9O0dlKFFjLHthZGQ6KCk9PnBuLGFkZEJ1c2luZXNzRGF5czooKT0+TDcsYWRkRGF5czooKT0+UTEsYWRkSG91cnM6KCk9PiQ3LGFkZElTT1dlZWtZZWFyczooKT0+RDcsYWRkTWlsbGlzZWNvbmRzOigpPT5obixhZGRNaW51dGVzOigpPT5CNCxhZGRNb250aHM6KCk9Pm1yLGFkZFF1YXJ0ZXJzOigpPT5INCxhZGRTZWNvbmRzOigpPT5JNyxhZGRXZWVrczooKT0+Zm4sYWRkWWVhcnM6KCk9Pk43LGFyZUludGVydmFsc092ZXJsYXBwaW5nOigpPT5XRyxjbGFtcDooKT0+WUcsY2xvc2VzdEluZGV4VG86KCk9PlI3LGNsb3Nlc3RUbzooKT0+WEcsY29tcGFyZUFzYzooKT0+UjIsY29tcGFyZURlc2M6KCk9PlFHLGNvbnN0cnVjdEZyb206KCk9PkxlLGNvbnN0cnVjdE5vdzooKT0+Q3QsZGF5c1RvV2Vla3M6KCk9PmVZLGRpZmZlcmVuY2VJbkJ1c2luZXNzRGF5czooKT0+YVksZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzOigpPT5wMixkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtZZWFyczooKT0+SDcsZGlmZmVyZW5jZUluQ2FsZW5kYXJJU09XZWVrczooKT0+clksZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM6KCk9PlZvLGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnM6KCk9PlY0LGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3M6KCk9PmpvLGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM6KCk9Pm1uLGRpZmZlcmVuY2VJbkRheXM6KCk9Pmo0LGRpZmZlcmVuY2VJbkhvdXJzOigpPT5VbyxkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnM6KCk9Pm9ZLGRpZmZlcmVuY2VJbk1pbGxpc2Vjb25kczooKT0+VTQsZGlmZmVyZW5jZUluTWludXRlczooKT0+V28sZGlmZmVyZW5jZUluTW9udGhzOigpPT5nbixkaWZmZXJlbmNlSW5RdWFydGVyczooKT0+Y1ksZGlmZmVyZW5jZUluU2Vjb25kczooKT0+eHIsZGlmZmVyZW5jZUluV2Vla3M6KCk9PnBZLGRpZmZlcmVuY2VJblllYXJzOigpPT5KNyxlYWNoRGF5T2ZJbnRlcnZhbDooKT0+ZXAsZWFjaEhvdXJPZkludGVydmFsOigpPT51WSxlYWNoTWludXRlT2ZJbnRlcnZhbDooKT0+bVksZWFjaE1vbnRoT2ZJbnRlcnZhbDooKT0+YlksZWFjaFF1YXJ0ZXJPZkludGVydmFsOigpPT55WSxlYWNoV2Vla09mSW50ZXJ2YWw6KCk9PndZLGVhY2hXZWVrZW5kT2ZJbnRlcnZhbDooKT0+WTQsZWFjaFdlZWtlbmRPZk1vbnRoOigpPT56WSxlYWNoV2Vla2VuZE9mWWVhcjooKT0+U1ksZWFjaFllYXJPZkludGVydmFsOigpPT5fWSxlbmRPZkRheTooKT0+VzQsZW5kT2ZEZWNhZGU6KCk9PkxZLGVuZE9mSG91cjooKT0+QVksZW5kT2ZJU09XZWVrOigpPT5FWSxlbmRPZklTT1dlZWtZZWFyOigpPT5JWSxlbmRPZk1pbnV0ZTooKT0+RlksZW5kT2ZNb250aDooKT0+RzQsZW5kT2ZRdWFydGVyOigpPT5SWSxlbmRPZlNlY29uZDooKT0+SFksZW5kT2ZUb2RheTooKT0+VlksZW5kT2ZUb21vcnJvdzooKT0+VVksZW5kT2ZXZWVrOigpPT5zcCxlbmRPZlllYXI6KCk9PmlwLGVuZE9mWWVzdGVyZGF5OigpPT5HWSxmb3JtYXQ6KCk9PmpjLGZvcm1hdERhdGU6KCk9PmpjLGZvcm1hdERpc3RhbmNlOigpPT51cCxmb3JtYXREaXN0YW5jZVN0cmljdDooKT0+ZnAsZm9ybWF0RGlzdGFuY2VUb05vdzooKT0+Z1osZm9ybWF0RGlzdGFuY2VUb05vd1N0cmljdDooKT0+dlosZm9ybWF0RHVyYXRpb246KCk9PnhaLGZvcm1hdElTTzooKT0+TVosZm9ybWF0SVNPOTA3NTooKT0+a1osZm9ybWF0SVNPRHVyYXRpb246KCk9PkNaLGZvcm1hdFJGQzMzMzk6KCk9PlRaLGZvcm1hdFJGQzcyMzE6KCk9PiRaLGZvcm1hdFJlbGF0aXZlOigpPT5EWixmb3JtYXR0ZXJzOigpPT5xYyxmcm9tVW5peFRpbWU6KCk9PlBaLGdldERhdGU6KCk9Pm1wLGdldERheTooKT0+eG4sZ2V0RGF5T2ZZZWFyOigpPT5vcCxnZXREYXlzSW5Nb250aDooKT0+Z3AsZ2V0RGF5c0luWWVhcjooKT0+TlosZ2V0RGVjYWRlOigpPT5PWixnZXREZWZhdWx0T3B0aW9uczooKT0+dnAsZ2V0SG91cnM6KCk9PkJaLGdldElTT0RheTooKT0+eXAsZ2V0SVNPV2VlazooKT0+UTQsZ2V0SVNPV2Vla1llYXI6KCk9PnNhLGdldElTT1dlZWtzSW5ZZWFyOigpPT5xWixnZXRNaWxsaXNlY29uZHM6KCk9PmpaLGdldE1pbnV0ZXM6KCk9PldaLGdldE1vbnRoOigpPT5ZWixnZXRPdmVybGFwcGluZ0RheXNJbkludGVydmFsczooKT0+WFosZ2V0UXVhcnRlcjooKT0+RmMsZ2V0U2Vjb25kczooKT0+UVosZ2V0VGltZTooKT0+ZVgsZ2V0VW5peFRpbWU6KCk9PmFYLGdldFdlZWs6KCk9Pko0LGdldFdlZWtPZk1vbnRoOigpPT5yWCxnZXRXZWVrWWVhcjooKT0+dm4sZ2V0V2Vla3NJbk1vbnRoOigpPT5uWCxnZXRZZWFyOigpPT5sWCxob3Vyc1RvTWlsbGlzZWNvbmRzOigpPT5kWCxob3Vyc1RvTWludXRlczooKT0+aFgsaG91cnNUb1NlY29uZHM6KCk9PmZYLGludGVydmFsOigpPT5nWCxpbnRlcnZhbFRvRHVyYXRpb246KCk9PnZYLGludGxGb3JtYXQ6KCk9PnhYLGludGxGb3JtYXREaXN0YW5jZTooKT0+TVgsaXNBZnRlcjooKT0+a1gsaXNCZWZvcmU6KCk9PkNYLGlzRGF0ZTooKT0+QjcsaXNFcXVhbDooKT0+VFgsaXNFeGlzdHM6KCk9PiRYLGlzRmlyc3REYXlPZk1vbnRoOigpPT5EWCxpc0ZyaWRheTooKT0+UFgsaXNGdXR1cmU6KCk9Pk5YLGlzTGFzdERheU9mTW9udGg6KCk9PlE3LGlzTGVhcFllYXI6KCk9PmJwLGlzTWF0Y2g6KCk9PmdLLGlzTW9uZGF5OigpPT52Syxpc1Bhc3Q6KCk9PnhLLGlzU2FtZURheTooKT0+eXIsaXNTYW1lSG91cjooKT0+ZGgsaXNTYW1lSVNPV2VlazooKT0+aGgsaXNTYW1lSVNPV2Vla1llYXI6KCk9Pk1LLGlzU2FtZU1pbnV0ZTooKT0+dWgsaXNTYW1lTW9udGg6KCk9PmZoLGlzU2FtZVF1YXJ0ZXI6KCk9Pm1oLGlzU2FtZVNlY29uZDooKT0+Z2gsaXNTYW1lV2VlazooKT0+aTMsaXNTYW1lWWVhcjooKT0+YmgsaXNTYXR1cmRheTooKT0+XzcsaXNTdW5kYXk6KCk9PlQ3LGlzVGhpc0hvdXI6KCk9PmtLLGlzVGhpc0lTT1dlZWs6KCk9PkNLLGlzVGhpc01pbnV0ZTooKT0+VEssaXNUaGlzTW9udGg6KCk9PiRLLGlzVGhpc1F1YXJ0ZXI6KCk9PkRLLGlzVGhpc1NlY29uZDooKT0+UEssaXNUaGlzV2VlazooKT0+TkssaXNUaGlzWWVhcjooKT0+T0ssaXNUaHVyc2RheTooKT0+QkssaXNUb2RheTooKT0+cUssaXNUb21vcnJvdzooKT0+akssaXNUdWVzZGF5OigpPT5XSyxpc1ZhbGlkOigpPT56Mixpc1dlZG5lc2RheTooKT0+WUssaXNXZWVrZW5kOigpPT5ncixpc1dpdGhpbkludGVydmFsOigpPT5YSyxpc1llc3RlcmRheTooKT0+UUssbGFzdERheU9mRGVjYWRlOigpPT5lUSxsYXN0RGF5T2ZJU09XZWVrOigpPT5hUSxsYXN0RGF5T2ZJU09XZWVrWWVhcjooKT0+clEsbGFzdERheU9mTW9udGg6KCk9PnhwLGxhc3REYXlPZlF1YXJ0ZXI6KCk9Pm5RLGxhc3REYXlPZldlZWs6KCk9PnZoLGxhc3REYXlPZlllYXI6KCk9PmxRLGxpZ2h0Rm9ybWF0OigpPT5kUSxsaWdodEZvcm1hdHRlcnM6KCk9Pk5hLGxvbmdGb3JtYXR0ZXJzOigpPT55bixtYXg6KCk9PkY3LG1pbGxpc2Vjb25kczooKT0+aFEsbWlsbGlzZWNvbmRzVG9Ib3VyczooKT0+ZlEsbWlsbGlzZWNvbmRzVG9NaW51dGVzOigpPT5nUSxtaWxsaXNlY29uZHNUb1NlY29uZHM6KCk9PnZRLG1pbjooKT0+TzcsbWludXRlc1RvSG91cnM6KCk9PnhRLG1pbnV0ZXNUb01pbGxpc2Vjb25kczooKT0+TVEsbWludXRlc1RvU2Vjb25kczooKT0+a1EsbW9udGhzVG9RdWFydGVyczooKT0+Q1EsbW9udGhzVG9ZZWFyczooKT0+VFEsbmV4dERheTooKT0+cTIsbmV4dEZyaWRheTooKT0+JFEsbmV4dE1vbmRheTooKT0+RFEsbmV4dFNhdHVyZGF5OigpPT5QUSxuZXh0U3VuZGF5OigpPT5OUSxuZXh0VGh1cnNkYXk6KCk9Pk9RLG5leHRUdWVzZGF5OigpPT5CUSxuZXh0V2VkbmVzZGF5OigpPT5xUSxwYXJzZTooKT0+Y2gscGFyc2VJU086KCk9PlVRLHBhcnNlSlNPTjooKT0+R1EscGFyc2VyczooKT0+bGgscHJldmlvdXNEYXk6KCk9PlYyLHByZXZpb3VzRnJpZGF5OigpPT5aUSxwcmV2aW91c01vbmRheTooKT0+S1EscHJldmlvdXNTYXR1cmRheTooKT0+SlEscHJldmlvdXNTdW5kYXk6KCk9PnRKLHByZXZpb3VzVGh1cnNkYXk6KCk9PmlKLHByZXZpb3VzVHVlc2RheTooKT0+c0oscHJldmlvdXNXZWRuZXNkYXk6KCk9Pm9KLHF1YXJ0ZXJzVG9Nb250aHM6KCk9PmNKLHF1YXJ0ZXJzVG9ZZWFyczooKT0+cEoscm91bmRUb05lYXJlc3RIb3VyczooKT0+dUoscm91bmRUb05lYXJlc3RNaW51dGVzOigpPT5tSixzZWNvbmRzVG9Ib3VyczooKT0+Ykosc2Vjb25kc1RvTWlsbGlzZWNvbmRzOigpPT55SixzZWNvbmRzVG9NaW51dGVzOigpPT53SixzZXQ6KCk9PnpKLHNldERhdGU6KCk9PlNKLHNldERheTooKT0+d24sc2V0RGF5T2ZZZWFyOigpPT5fSixzZXREZWZhdWx0T3B0aW9uczooKT0+TEosc2V0SG91cnM6KCk9PkFKLHNldElTT0RheTooKT0+V3Asc2V0SVNPV2VlazooKT0+UnAsc2V0SVNPV2Vla1llYXI6KCk9PkE3LHNldE1pbGxpc2Vjb25kczooKT0+RUosc2V0TWludXRlczooKT0+SUosc2V0TW9udGg6KCk9PnIzLHNldFF1YXJ0ZXI6KCk9PkZKLHNldFNlY29uZHM6KCk9PlJKLHNldFdlZWs6KCk9PkZwLHNldFdlZWtZZWFyOigpPT5ISixzZXRZZWFyOigpPT5WSixzdGFydE9mRGF5OigpPT52cixzdGFydE9mRGVjYWRlOigpPT5VSixzdGFydE9mSG91cjooKT0+R2Msc3RhcnRPZklTT1dlZWs6KCk9PlcxLHN0YXJ0T2ZJU09XZWVrWWVhcjooKT0+SWEsc3RhcnRPZk1pbnV0ZTooKT0+WWMsc3RhcnRPZk1vbnRoOigpPT5ibixzdGFydE9mUXVhcnRlcjooKT0+TXIsc3RhcnRPZlNlY29uZDooKT0+WmMsc3RhcnRPZlRvZGF5OigpPT5HSixzdGFydE9mVG9tb3Jyb3c6KCk9PlpKLHN0YXJ0T2ZXZWVrOigpPT5jMSxzdGFydE9mV2Vla1llYXI6KCk9PllvLHN0YXJ0T2ZZZWFyOigpPT5aNCxzdGFydE9mWWVzdGVyZGF5OigpPT5LSixzdWI6KCk9PkpKLHN1YkJ1c2luZXNzRGF5czooKT0+dGVlLHN1YkRheXM6KCk9Pk1uLHN1YkhvdXJzOigpPT5pZWUsc3ViSVNPV2Vla1llYXJzOigpPT5HNyxzdWJNaWxsaXNlY29uZHM6KCk9PnNlZSxzdWJNaW51dGVzOigpPT5vZWUsc3ViTW9udGhzOigpPT53aCxzdWJRdWFydGVyczooKT0+Y2VlLHN1YlNlY29uZHM6KCk9PnBlZSxzdWJXZWVrczooKT0+dWVlLHN1YlllYXJzOigpPT5tZWUsdG9EYXRlOigpPT5uZSx0cmFuc3Bvc2U6KCk9PndwLHdlZWtzVG9EYXlzOigpPT5iZWUseWVhcnNUb0RheXM6KCk9PnllZSx5ZWFyc1RvTW9udGhzOigpPT53ZWUseWVhcnNUb1F1YXJ0ZXJzOigpPT56ZWV9KTt2YXIgU2VlPWIoKCk9PntWaygpO1drKCk7ZnIoKTtHaygpO1prKCk7UGMoKTtFNygpO080KCk7UDcoKTtYaygpO05jKCk7S2soKTtHRygpO1pHKCk7ZVMoKTtLRygpO3FvKCk7SkcoKTthdCgpO0oxKCk7dFkoKTtpWSgpO3JzKCk7YVMoKTtzWSgpO3E3KCk7clMoKTtWNygpO2o3KCk7VTcoKTtXNygpO2xZKCk7WTcoKTtaNygpO09jKCk7ZFkoKTtSYygpO2hZKCk7b1MoKTtsUygpO2ZZKCk7Z1koKTt2WSgpO3hZKCk7TVkoKTthcCgpO2tZKCk7Q1koKTtUWSgpO1g3KCk7JFkoKTtEWSgpO1BZKCk7TlkoKTtPWSgpO0s3KCk7QlkoKTtxWSgpO2pZKCk7V1koKTtkUygpO2NTKCk7WVkoKTttUygpO2dTKCk7YlMoKTtiWigpO3laKCk7d1ooKTt6WigpO1NaKCk7X1ooKTtMWigpO0FaKCk7RVooKTtJWigpO3ZTKCk7VWMoKTtwUygpO3lTKCk7RlooKTtSWigpO3dTKCk7SFooKTtNUygpO2xwKCk7dW4oKTtWWigpO1VaKCk7R1ooKTtaWigpO0taKCk7aVMoKTtKWigpO3RYKCk7aVgoKTtkcCgpO3NYKCk7SGMoKTtvWCgpO2NYKCk7cFgoKTt1WCgpO21YKCk7YlgoKTt5WCgpO3dYKCk7elgoKTtTWCgpO19YKCk7dFMoKTtMWCgpO0FYKCk7RVgoKTtJWCgpO0ZYKCk7blMoKTt4UygpO2JLKCk7eUsoKTt3SygpO3E0KCk7QVMoKTtEUygpO3pLKCk7UFMoKTtJUygpO05TKCk7T1MoKTtwaCgpO1JTKCk7amsoKTtVaygpO1NLKCk7X0soKTtMSygpO0FLKCk7RUsoKTtJSygpO0ZLKCk7UksoKTtISygpO1ZLKCk7VUsoKTtHSygpO3NzKCk7WksoKTtFYygpO0tLKCk7SksoKTt0USgpO2lRKCk7c1EoKTt6UygpO29RKCk7QlMoKTtjUSgpO3BRKCk7UWsoKTt1USgpO21RKCk7YlEoKTt5USgpO0prKCk7d1EoKTt6USgpO1NRKCk7X1EoKTtMUSgpO29zKCk7QVEoKTtFUSgpO0lRKCk7RlEoKTtSUSgpO0hRKCk7VlEoKTtMUygpO1dRKCk7WVEoKTtscygpO1hRKCk7UVEoKTtlSigpO2FKKCk7ckooKTtuSigpO2xKKCk7ZEooKTtoSigpO2ZKKCk7Z0ooKTt2SigpO3hKKCk7TUooKTtrSigpO0NKKCk7V2MoKTtUSigpOyRKKCk7REooKTtUUygpO19TKCk7WWsoKTtQSigpO05KKCk7eGgoKTtPSigpO0JKKCk7Q1MoKTtxSigpO2pKKCk7SWMoKTtXSigpOyRTKCk7YnIoKTtSNCgpO0VTKCk7QmMoKTt0cCgpO0ZTKCk7WUooKTtYSigpO0RpKCk7Y3AoKTtycCgpO1FKKCk7ZWVlKCk7YWVlKCk7WGMoKTtyZWUoKTtzUygpO25lZSgpO2xlZSgpO3FTKCk7ZGVlKCk7aGVlKCk7ZmVlKCk7Z2VlKCk7QWUoKTtrUygpO3ZlZSgpO3hlZSgpO01lZSgpO2tlZSgpfSk7dmFyIENlZT1wdCgoVlMsalMpPT57KGZ1bmN0aW9uKHQsZSl7dHlwZW9mIFZTPT0ib2JqZWN0IiYmdHlwZW9mIGpTPCJ1Ij9qUy5leHBvcnRzPWUoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShlKToodD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0fHxzZWxmKS5kYXlqcz1lKCl9KShWUywoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9MWUzLGU9NmU0LGE9MzZlNSxpPSJtaWxsaXNlY29uZCIscj0ic2Vjb25kIixzPSJtaW51dGUiLG49ImhvdXIiLG89ImRheSIsZD0id2VlayIsYz0ibW9udGgiLHA9InF1YXJ0ZXIiLGw9InllYXIiLGY9ImRhdGUiLGc9IkludmFsaWQgRGF0ZSIseT0vXihcZHs0fSlbLS9dPyhcZHsxLDJ9KT9bLS9dPyhcZHswLDJ9KVtUdFxzXSooXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Wy46XT8oXGQrKT8kLyx2PS9cWyhbXlxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2csbT17bmFtZToiZW4iLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxtb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksb3JkaW5hbDpmdW5jdGlvbih6KXt2YXIgRT1bInRoIiwic3QiLCJuZCIsInJkIl0sVD16JTEwMDtyZXR1cm4iWyIreisoRVsoVC0yMCklMTBdfHxFW1RdfHxFWzBdKSsiXSJ9fSx4PWZ1bmN0aW9uKHosRSxUKXt2YXIgJD1TdHJpbmcoeik7cmV0dXJuISR8fCQubGVuZ3RoPj1FP3o6IiIrQXJyYXkoRSsxLSQubGVuZ3RoKS5qb2luKFQpK3p9LE09e3M6eCx6OmZ1bmN0aW9uKHope3ZhciBFPS16LnV0Y09mZnNldCgpLFQ9TWF0aC5hYnMoRSksJD1NYXRoLmZsb29yKFQvNjApLFY9VCU2MDtyZXR1cm4oRTw9MD8iKyI6Ii0iKSt4KCQsMiwiMCIpKyI6Iit4KFYsMiwiMCIpfSxtOmZ1bmN0aW9uIHooRSxUKXtpZihFLmRhdGUoKTxULmRhdGUoKSlyZXR1cm4teihULEUpO3ZhciAkPTEyKihULnllYXIoKS1FLnllYXIoKSkrKFQubW9udGgoKS1FLm1vbnRoKCkpLFY9RS5jbG9uZSgpLmFkZCgkLGMpLFI9VC1WPDAsVT1FLmNsb25lKCkuYWRkKCQrKFI/LTE6MSksYyk7cmV0dXJuKygtKCQrKFQtVikvKFI/Vi1VOlUtVikpfHwwKX0sYTpmdW5jdGlvbih6KXtyZXR1cm4gejwwP01hdGguY2VpbCh6KXx8MDpNYXRoLmZsb29yKHopfSxwOmZ1bmN0aW9uKHope3JldHVybntNOmMseTpsLHc6ZCxkOm8sRDpmLGg6bixtOnMsczpyLG1zOmksUTpwfVt6XXx8U3RyaW5nKHp8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LHU6ZnVuY3Rpb24oeil7cmV0dXJuIHo9PT12b2lkIDB9fSxTPSJlbiIsRj17fTtGW1NdPW07dmFyIF89IiRpc0RheWpzT2JqZWN0IixrPWZ1bmN0aW9uKHope3JldHVybiB6IGluc3RhbmNlb2YgcXx8ISghenx8IXpbX10pfSxOPWZ1bmN0aW9uIHooRSxULCQpe3ZhciBWO2lmKCFFKXJldHVybiBTO2lmKHR5cGVvZiBFPT0ic3RyaW5nIil7dmFyIFI9RS50b0xvd2VyQ2FzZSgpO0ZbUl0mJihWPVIpLFQmJihGW1JdPVQsVj1SKTt2YXIgVT1FLnNwbGl0KCItIik7aWYoIVYmJlUubGVuZ3RoPjEpcmV0dXJuIHooVVswXSl9ZWxzZXt2YXIgcmU9RS5uYW1lO0ZbcmVdPUUsVj1yZX1yZXR1cm4hJCYmViYmKFM9ViksVnx8ISQmJlN9LEw9ZnVuY3Rpb24oeixFKXtpZihrKHopKXJldHVybiB6LmNsb25lKCk7dmFyIFQ9dHlwZW9mIEU9PSJvYmplY3QiP0U6e307cmV0dXJuIFQuZGF0ZT16LFQuYXJncz1hcmd1bWVudHMsbmV3IHEoVCl9LEE9TTtBLmw9TixBLmk9ayxBLnc9ZnVuY3Rpb24oeixFKXtyZXR1cm4gTCh6LHtsb2NhbGU6RS4kTCx1dGM6RS4kdSx4OkUuJHgsJG9mZnNldDpFLiRvZmZzZXR9KX07dmFyIHE9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24geihUKXt0aGlzLiRMPU4oVC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZShUKSx0aGlzLiR4PXRoaXMuJHh8fFQueHx8e30sdGhpc1tfXT0hMH12YXIgRT16LnByb3RvdHlwZTtyZXR1cm4gRS5wYXJzZT1mdW5jdGlvbihUKXt0aGlzLiRkPShmdW5jdGlvbigkKXt2YXIgVj0kLmRhdGUsUj0kLnV0YztpZihWPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtpZihBLnUoVikpcmV0dXJuIG5ldyBEYXRlO2lmKFYgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShWKTtpZih0eXBlb2YgVj09InN0cmluZyImJiEvWiQvaS50ZXN0KFYpKXt2YXIgVT1WLm1hdGNoKHkpO2lmKFUpe3ZhciByZT1VWzJdLTF8fDAsaj0oVVs3XXx8IjAiKS5zdWJzdHJpbmcoMCwzKTtyZXR1cm4gUj9uZXcgRGF0ZShEYXRlLlVUQyhVWzFdLHJlLFVbM118fDEsVVs0XXx8MCxVWzVdfHwwLFVbNl18fDAsaikpOm5ldyBEYXRlKFVbMV0scmUsVVszXXx8MSxVWzRdfHwwLFVbNV18fDAsVVs2XXx8MCxqKX19cmV0dXJuIG5ldyBEYXRlKFYpfSkoVCksdGhpcy5pbml0KCl9LEUuaW5pdD1mdW5jdGlvbigpe3ZhciBUPXRoaXMuJGQ7dGhpcy4keT1ULmdldEZ1bGxZZWFyKCksdGhpcy4kTT1ULmdldE1vbnRoKCksdGhpcy4kRD1ULmdldERhdGUoKSx0aGlzLiRXPVQuZ2V0RGF5KCksdGhpcy4kSD1ULmdldEhvdXJzKCksdGhpcy4kbT1ULmdldE1pbnV0ZXMoKSx0aGlzLiRzPVQuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPVQuZ2V0TWlsbGlzZWNvbmRzKCl9LEUuJHV0aWxzPWZ1bmN0aW9uKCl7cmV0dXJuIEF9LEUuaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT1nfSxFLmlzU2FtZT1mdW5jdGlvbihULCQpe3ZhciBWPUwoVCk7cmV0dXJuIHRoaXMuc3RhcnRPZigkKTw9ViYmVjw9dGhpcy5lbmRPZigkKX0sRS5pc0FmdGVyPWZ1bmN0aW9uKFQsJCl7cmV0dXJuIEwoVCk8dGhpcy5zdGFydE9mKCQpfSxFLmlzQmVmb3JlPWZ1bmN0aW9uKFQsJCl7cmV0dXJuIHRoaXMuZW5kT2YoJCk8TChUKX0sRS4kZz1mdW5jdGlvbihULCQsVil7cmV0dXJuIEEudShUKT90aGlzWyRdOnRoaXMuc2V0KFYsVCl9LEUudW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LEUudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sRS5zdGFydE9mPWZ1bmN0aW9uKFQsJCl7dmFyIFY9dGhpcyxSPSEhQS51KCQpfHwkLFU9QS5wKFQpLHJlPWZ1bmN0aW9uKEQsTyl7dmFyIFo9QS53KFYuJHU/RGF0ZS5VVEMoVi4keSxPLEQpOm5ldyBEYXRlKFYuJHksTyxEKSxWKTtyZXR1cm4gUj9aOlouZW5kT2Yobyl9LGo9ZnVuY3Rpb24oRCxPKXtyZXR1cm4gQS53KFYudG9EYXRlKClbRF0uYXBwbHkoVi50b0RhdGUoInMiKSwoUj9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKE8pKSxWKX0sbWU9dGhpcy4kVyx3ZT10aGlzLiRNLEg9dGhpcy4kRCxjZT0ic2V0IisodGhpcy4kdT8iVVRDIjoiIik7c3dpdGNoKFUpe2Nhc2UgbDpyZXR1cm4gUj9yZSgxLDApOnJlKDMxLDExKTtjYXNlIGM6cmV0dXJuIFI/cmUoMSx3ZSk6cmUoMCx3ZSsxKTtjYXNlIGQ6dmFyIGtlPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxXPShtZTxrZT9tZSs3Om1lKS1rZTtyZXR1cm4gcmUoUj9ILVc6SCsoNi1XKSx3ZSk7Y2FzZSBvOmNhc2UgZjpyZXR1cm4gaihjZSsiSG91cnMiLDApO2Nhc2UgbjpyZXR1cm4gaihjZSsiTWludXRlcyIsMSk7Y2FzZSBzOnJldHVybiBqKGNlKyJTZWNvbmRzIiwyKTtjYXNlIHI6cmV0dXJuIGooY2UrIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sRS5lbmRPZj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5zdGFydE9mKFQsITEpfSxFLiRzZXQ9ZnVuY3Rpb24oVCwkKXt2YXIgVixSPUEucChUKSxVPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxyZT0oVj17fSxWW29dPVUrIkRhdGUiLFZbZl09VSsiRGF0ZSIsVltjXT1VKyJNb250aCIsVltsXT1VKyJGdWxsWWVhciIsVltuXT1VKyJIb3VycyIsVltzXT1VKyJNaW51dGVzIixWW3JdPVUrIlNlY29uZHMiLFZbaV09VSsiTWlsbGlzZWNvbmRzIixWKVtSXSxqPVI9PT1vP3RoaXMuJEQrKCQtdGhpcy4kVyk6JDtpZihSPT09Y3x8Uj09PWwpe3ZhciBtZT10aGlzLmNsb25lKCkuc2V0KGYsMSk7bWUuJGRbcmVdKGopLG1lLmluaXQoKSx0aGlzLiRkPW1lLnNldChmLE1hdGgubWluKHRoaXMuJEQsbWUuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgcmUmJnRoaXMuJGRbcmVdKGopO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSxFLnNldD1mdW5jdGlvbihULCQpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldChULCQpfSxFLmdldD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpc1tBLnAoVCldKCl9LEUuYWRkPWZ1bmN0aW9uKFQsJCl7dmFyIFYsUj10aGlzO1Q9TnVtYmVyKFQpO3ZhciBVPUEucCgkKSxyZT1mdW5jdGlvbih3ZSl7dmFyIEg9TChSKTtyZXR1cm4gQS53KEguZGF0ZShILmRhdGUoKStNYXRoLnJvdW5kKHdlKlQpKSxSKX07aWYoVT09PWMpcmV0dXJuIHRoaXMuc2V0KGMsdGhpcy4kTStUKTtpZihVPT09bClyZXR1cm4gdGhpcy5zZXQobCx0aGlzLiR5K1QpO2lmKFU9PT1vKXJldHVybiByZSgxKTtpZihVPT09ZClyZXR1cm4gcmUoNyk7dmFyIGo9KFY9e30sVltzXT1lLFZbbl09YSxWW3JdPXQsVilbVV18fDEsbWU9dGhpcy4kZC5nZXRUaW1lKCkrVCpqO3JldHVybiBBLncobWUsdGhpcyl9LEUuc3VidHJhY3Q9ZnVuY3Rpb24oVCwkKXtyZXR1cm4gdGhpcy5hZGQoLTEqVCwkKX0sRS5mb3JtYXQ9ZnVuY3Rpb24oVCl7dmFyICQ9dGhpcyxWPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gVi5pbnZhbGlkRGF0ZXx8Zzt2YXIgUj1UfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLFU9QS56KHRoaXMpLHJlPXRoaXMuJEgsaj10aGlzLiRtLG1lPXRoaXMuJE0sd2U9Vi53ZWVrZGF5cyxIPVYubW9udGhzLGNlPVYubWVyaWRpZW0sa2U9ZnVuY3Rpb24oTyxaLFksb2Upe3JldHVybiBPJiYoT1taXXx8TygkLFIpKXx8WVtaXS5zbGljZSgwLG9lKX0sVz1mdW5jdGlvbihPKXtyZXR1cm4gQS5zKHJlJTEyfHwxMixPLCIwIil9LEQ9Y2V8fGZ1bmN0aW9uKE8sWixZKXt2YXIgb2U9TzwxMj8iQU0iOiJQTSI7cmV0dXJuIFk/b2UudG9Mb3dlckNhc2UoKTpvZX07cmV0dXJuIFIucmVwbGFjZSh2LChmdW5jdGlvbihPLFope3JldHVybiBafHwoZnVuY3Rpb24oWSl7c3dpdGNoKFkpe2Nhc2UiWVkiOnJldHVybiBTdHJpbmcoJC4keSkuc2xpY2UoLTIpO2Nhc2UiWVlZWSI6cmV0dXJuIEEucygkLiR5LDQsIjAiKTtjYXNlIk0iOnJldHVybiBtZSsxO2Nhc2UiTU0iOnJldHVybiBBLnMobWUrMSwyLCIwIik7Y2FzZSJNTU0iOnJldHVybiBrZShWLm1vbnRoc1Nob3J0LG1lLEgsMyk7Y2FzZSJNTU1NIjpyZXR1cm4ga2UoSCxtZSk7Y2FzZSJEIjpyZXR1cm4gJC4kRDtjYXNlIkREIjpyZXR1cm4gQS5zKCQuJEQsMiwiMCIpO2Nhc2UiZCI6cmV0dXJuIFN0cmluZygkLiRXKTtjYXNlImRkIjpyZXR1cm4ga2UoVi53ZWVrZGF5c01pbiwkLiRXLHdlLDIpO2Nhc2UiZGRkIjpyZXR1cm4ga2UoVi53ZWVrZGF5c1Nob3J0LCQuJFcsd2UsMyk7Y2FzZSJkZGRkIjpyZXR1cm4gd2VbJC4kV107Y2FzZSJIIjpyZXR1cm4gU3RyaW5nKHJlKTtjYXNlIkhIIjpyZXR1cm4gQS5zKHJlLDIsIjAiKTtjYXNlImgiOnJldHVybiBXKDEpO2Nhc2UiaGgiOnJldHVybiBXKDIpO2Nhc2UiYSI6cmV0dXJuIEQocmUsaiwhMCk7Y2FzZSJBIjpyZXR1cm4gRChyZSxqLCExKTtjYXNlIm0iOnJldHVybiBTdHJpbmcoaik7Y2FzZSJtbSI6cmV0dXJuIEEucyhqLDIsIjAiKTtjYXNlInMiOnJldHVybiBTdHJpbmcoJC4kcyk7Y2FzZSJzcyI6cmV0dXJuIEEucygkLiRzLDIsIjAiKTtjYXNlIlNTUyI6cmV0dXJuIEEucygkLiRtcywzLCIwIik7Y2FzZSJaIjpyZXR1cm4gVX1yZXR1cm4gbnVsbH0pKE8pfHxVLnJlcGxhY2UoIjoiLCIiKX0pKX0sRS51dGNPZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gMTUqLU1hdGgucm91bmQodGhpcy4kZC5nZXRUaW1lem9uZU9mZnNldCgpLzE1KX0sRS5kaWZmPWZ1bmN0aW9uKFQsJCxWKXt2YXIgUixVPXRoaXMscmU9QS5wKCQpLGo9TChUKSxtZT0oai51dGNPZmZzZXQoKS10aGlzLnV0Y09mZnNldCgpKSplLHdlPXRoaXMtaixIPWZ1bmN0aW9uKCl7cmV0dXJuIEEubShVLGopfTtzd2l0Y2gocmUpe2Nhc2UgbDpSPUgoKS8xMjticmVhaztjYXNlIGM6Uj1IKCk7YnJlYWs7Y2FzZSBwOlI9SCgpLzM7YnJlYWs7Y2FzZSBkOlI9KHdlLW1lKS82MDQ4ZTU7YnJlYWs7Y2FzZSBvOlI9KHdlLW1lKS84NjRlNTticmVhaztjYXNlIG46Uj13ZS9hO2JyZWFrO2Nhc2UgczpSPXdlL2U7YnJlYWs7Y2FzZSByOlI9d2UvdDticmVhaztkZWZhdWx0OlI9d2V9cmV0dXJuIFY/UjpBLmEoUil9LEUuZGF5c0luTW9udGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRPZihjKS4kRH0sRS4kbG9jYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIEZbdGhpcy4kTF19LEUubG9jYWxlPWZ1bmN0aW9uKFQsJCl7aWYoIVQpcmV0dXJuIHRoaXMuJEw7dmFyIFY9dGhpcy5jbG9uZSgpLFI9TihULCQsITApO3JldHVybiBSJiYoVi4kTD1SKSxWfSxFLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIEEudyh0aGlzLiRkLHRoaXMpfSxFLnRvRGF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSl9LEUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWYWxpZCgpP3RoaXMudG9JU09TdHJpbmcoKTpudWxsfSxFLnRvSVNPU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGQudG9JU09TdHJpbmcoKX0sRS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvVVRDU3RyaW5nKCl9LHp9KSgpLEM9cS5wcm90b3R5cGU7cmV0dXJuIEwucHJvdG90eXBlPUMsW1siJG1zIixpXSxbIiRzIixyXSxbIiRtIixzXSxbIiRIIixuXSxbIiRXIixvXSxbIiRNIixjXSxbIiR5IixsXSxbIiREIixmXV0uZm9yRWFjaCgoZnVuY3Rpb24oeil7Q1t6WzFdXT1mdW5jdGlvbihFKXtyZXR1cm4gdGhpcy4kZyhFLHpbMF0selsxXSl9fSkpLEwuZXh0ZW5kPWZ1bmN0aW9uKHosRSl7cmV0dXJuIHouJGl8fCh6KEUscSxMKSx6LiRpPSEwKSxMfSxMLmxvY2FsZT1OLEwuaXNEYXlqcz1rLEwudW5peD1mdW5jdGlvbih6KXtyZXR1cm4gTCgxZTMqeil9LEwuZW49RltTXSxMLkxzPUYsTC5wPXt9LEx9KSl9KTt2YXIgX2VlPXB0KChVUyxXUyk9PnsoZnVuY3Rpb24odCxlKXt0eXBlb2YgVVM9PSJvYmplY3QiJiZ0eXBlb2YgV1M8InUiP1dTLmV4cG9ydHM9ZSgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOih0PXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR8fHNlbGYpLmRheWpzX3BsdWdpbl9pc1RvZGF5PWUoKX0pKFVTLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtyZXR1cm4gZnVuY3Rpb24odCxlLGEpe2UucHJvdG90eXBlLmlzVG9kYXk9ZnVuY3Rpb24oKXt2YXIgaT0iWVlZWS1NTS1ERCIscj1hKCk7cmV0dXJuIHRoaXMuZm9ybWF0KGkpPT09ci5mb3JtYXQoaSl9fX0pKX0pO2Z1bmN0aW9uIG9fdCh0KXtyZXR1cm57ZGF5czpNYXRoLnRydW5jKHQvODY0ZTUpLGhvdXJzOk1hdGgudHJ1bmModC8zNmU1JTI0KSxtaW51dGVzOk1hdGgudHJ1bmModC82ZTQlNjApLHNlY29uZHM6TWF0aC50cnVuYyh0LzFlMyU2MCksbWlsbGlzZWNvbmRzOk1hdGgudHJ1bmModCUxZTMpLG1pY3Jvc2Vjb25kczpNYXRoLnRydW5jKFRlZSh0KjFlMyklMWUzKSxuYW5vc2Vjb25kczpNYXRoLnRydW5jKFRlZSh0KjFlNiklMWUzKX19ZnVuY3Rpb24gbF90KHQpe3JldHVybntkYXlzOnQvODY0MDAwMDBuLGhvdXJzOnQvMzYwMDAwMG4lMjRuLG1pbnV0ZXM6dC82MDAwMG4lNjBuLHNlY29uZHM6dC8xMDAwbiU2MG4sbWlsbGlzZWNvbmRzOnQlMTAwMG4sbWljcm9zZWNvbmRzOjBuLG5hbm9zZWNvbmRzOjBufX1mdW5jdGlvbiBHUyh0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2UibnVtYmVyIjp7aWYoTnVtYmVyLmlzRmluaXRlKHQpKXJldHVybiBvX3QodCk7YnJlYWt9Y2FzZSJiaWdpbnQiOnJldHVybiBsX3QodCl9dGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBmaW5pdGUgbnVtYmVyIG9yIGJpZ2ludCIpfXZhciBUZWUsTGVlPWIoKCk9PntUZWU9dD0+TnVtYmVyLmlzRmluaXRlKHQpP3Q6MH0pO2Z1bmN0aW9uIEpjKHQsZSl7bGV0IGE9dHlwZW9mIHQ9PSJiaWdpbnQiO2lmKCFhJiYhTnVtYmVyLmlzRmluaXRlKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKTtlPXsuLi5lfTtsZXQgaT10PDA/Ii0iOiIiO3Q9dDwwPy10OnQsZS5jb2xvbk5vdGF0aW9uJiYoZS5jb21wYWN0PSExLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzPSExLGUuc2VwYXJhdGVNaWxsaXNlY29uZHM9ITEsZS52ZXJib3NlPSExKSxlLmNvbXBhY3QmJihlLnVuaXRDb3VudD0xLGUuc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCxlLm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9MCk7bGV0IHI9W10scz0ocCxsKT0+e2xldCBmPU1hdGguZmxvb3IocCoxMCoqbCtwX3QpO3JldHVybihNYXRoLnJvdW5kKGYpLzEwKipsKS50b0ZpeGVkKGwpfSxuPShwLGwsZixnKT0+e2lmKCEoKHIubGVuZ3RoPT09MHx8IWUuY29sb25Ob3RhdGlvbikmJmNfdChwKSYmIShlLmNvbG9uTm90YXRpb24mJmY9PT0ibSIpKSl7aWYoZz8/PVN0cmluZyhwKSxlLmNvbG9uTm90YXRpb24pe2xldCB5PWcuaW5jbHVkZXMoIi4iKT9nLnNwbGl0KCIuIilbMF0ubGVuZ3RoOmcubGVuZ3RoLHY9ci5sZW5ndGg+MD8yOjE7Zz0iMCIucmVwZWF0KE1hdGgubWF4KDAsdi15KSkrZ31lbHNlIGcrPWUudmVyYm9zZT8iICIrZF90KGwscCk6ZjtyLnB1c2goZyl9fSxvPUdTKHQpLGQ9QmlnSW50KG8uZGF5cyk7aWYoZS5oaWRlWWVhckFuZERheXM/bihCaWdJbnQoZCkqMjRuK0JpZ0ludChvLmhvdXJzKSwiaG91ciIsImgiKTooZS5oaWRlWWVhcj9uKGQsImRheSIsImQiKToobihkLzM2NW4sInllYXIiLCJ5IiksbihkJTM2NW4sImRheSIsImQiKSksbihOdW1iZXIoby5ob3VycyksImhvdXIiLCJoIikpLG4oTnVtYmVyKG8ubWludXRlcyksIm1pbnV0ZSIsIm0iKSwhZS5oaWRlU2Vjb25kcylpZihlLnNlcGFyYXRlTWlsbGlzZWNvbmRzfHxlLmZvcm1hdFN1Yk1pbGxpc2Vjb25kc3x8IWUuY29sb25Ob3RhdGlvbiYmdDwxZTMmJiFlLnN1YlNlY29uZHNBc0RlY2ltYWxzKXtsZXQgcD1OdW1iZXIoby5zZWNvbmRzKSxsPU51bWJlcihvLm1pbGxpc2Vjb25kcyksZj1OdW1iZXIoby5taWNyb3NlY29uZHMpLGc9TnVtYmVyKG8ubmFub3NlY29uZHMpO2lmKG4ocCwic2Vjb25kIiwicyIpLGUuZm9ybWF0U3ViTWlsbGlzZWNvbmRzKW4obCwibWlsbGlzZWNvbmQiLCJtcyIpLG4oZiwibWljcm9zZWNvbmQiLCJceEI1cyIpLG4oZywibmFub3NlY29uZCIsIm5zIik7ZWxzZXtsZXQgeT1sK2YvMWUzK2cvMWU2LHY9dHlwZW9mIGUubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/ZS5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzOjAsbT15Pj0xP01hdGgucm91bmQoeSk6TWF0aC5jZWlsKHkpLHg9dj95LnRvRml4ZWQodik6bTtuKE51bWJlci5wYXJzZUZsb2F0KHgpLCJtaWxsaXNlY29uZCIsIm1zIix4KX19ZWxzZXtsZXQgcD0oYT9OdW1iZXIodCVoX3QpOnQpLzFlMyU2MCxsPXR5cGVvZiBlLnNlY29uZHNEZWNpbWFsRGlnaXRzPT0ibnVtYmVyIj9lLnNlY29uZHNEZWNpbWFsRGlnaXRzOjEsZj1zKHAsbCksZz1lLmtlZXBEZWNpbWFsc09uV2hvbGVTZWNvbmRzP2Y6Zi5yZXBsYWNlKC9cLjArJC8sIiIpO24oTnVtYmVyLnBhcnNlRmxvYXQoZyksInNlY29uZCIsInMiLGcpfWlmKHIubGVuZ3RoPT09MClyZXR1cm4gaSsiMCIrKGUudmVyYm9zZT8iIG1pbGxpc2Vjb25kcyI6Im1zIik7bGV0IGM9ZS5jb2xvbk5vdGF0aW9uPyI6IjoiICI7cmV0dXJuIHR5cGVvZiBlLnVuaXRDb3VudD09Im51bWJlciImJihyPXIuc2xpY2UoMCxNYXRoLm1heChlLnVuaXRDb3VudCwxKSkpLGkrci5qb2luKGMpfXZhciBjX3QsZF90LHBfdCxoX3QsJGVlPWIoKCk9PntMZWUoKTtjX3Q9dD0+dD09PTB8fHQ9PT0wbixkX3Q9KHQsZSk9PmU9PT0xfHxlPT09MW4/dDpgJHt0fXNgLHBfdD0xZS03LGhfdD0yNG4qNjBuKjYwbioxMDAwbn0pO3ZhciBLbyxBZWUsem49YigoKT0+e2U2KCk7aHIoKTtjMigpO0hHKCk7U2VlKCk7S289ajEoQ2VlKCksMSksQWVlPWoxKF9lZSgpLDEpOyRlZSgpO0tvLmRlZmF1bHQuZXh0ZW5kKEFlZS5kZWZhdWx0KX0pO3ZhciB0NixZUz1iKCgpPT57em4oKTtaUygpO3Q2PWNsYXNze2NvbnN0cnVjdG9yKGUsYSxpKXt0aGlzLnN0YXR1cz0iaW5pdGlhbCIsdGhpcy5uZXh0RXhlY3V0aW9uVW5peD0wLHRoaXMuY3JvbkV4cHJlc3Npb249YSx0aGlzLmpvYkZ1bmN0aW9uPWksdGhpcy5jcm9uUGFyc2VyPW5ldyBBYy5Dcm9uKGEpfWNoZWNrRXhlY3V0aW9uKCl7aWYodGhpcy5zdGF0dXM9PT0ic3RvcHBlZCIpcmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg7aWYodGhpcy5uZXh0RXhlY3V0aW9uVW5peD09PTAmJnRoaXMuZ2V0TmV4dEV4ZWN1dGlvblRpbWUoKSxEYXRlLm5vdygpPnRoaXMubmV4dEV4ZWN1dGlvblVuaXgpe2xldCBlPXRoaXMuam9iRnVuY3Rpb24odGhpcy5uZXh0RXhlY3V0aW9uVW5peCk7ZSBpbnN0YW5jZW9mIFByb21pc2UmJmUuY2F0Y2goYT0+Y29uc29sZS5sb2coYSkpLHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9dGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpfXJldHVybiB0aGlzLm5leHRFeGVjdXRpb25Vbml4fWdldE5leHRFeGVjdXRpb25UaW1lKCl7cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXg9RGF0ZS5ub3coKSt0aGlzLmdldFRpbWVUb05leHRFeGVjdXRpb24oKX1nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCl7cmV0dXJuIHRoaXMuY3JvblBhcnNlci5tc1RvTmV4dCgpfXN0YXJ0KCl7dGhpcy5zdGF0dXM9InN0YXJ0ZWQifXN0b3AoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCJ9fX0pO3ZhciBYUyxaUz1iKCgpPT57em4oKTtZUygpO1hTPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuY3JvbmpvYnM9bmV3IGUyLk9iamVjdE1hcCx0aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9d2FrZUN5Y2xlKCl7dGhpcy5jeWNsZVdha2VEZWZlcnJlZCYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5zdGF0dXM9PT0icGVuZGluZyImJnRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucmVzb2x2ZSgpfWFkZENyb25qb2IoZSxhKXtsZXQgaT1uZXcgdDYodGhpcyxlLGEpO3JldHVybiB0aGlzLmNyb25qb2JzLmFkZChpKSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmKGkuc3RhcnQoKSx0aGlzLndha2VDeWNsZSgpKSxpfXJlbW92ZUNyb25qb2IoZSl7ZS5zdG9wKCksdGhpcy5jcm9uam9icy5yZW1vdmUoZSksdGhpcy5zdGF0dXM9PT0ic3RhcnRlZCImJnRoaXMud2FrZUN5Y2xlKCl9c3RhcnQoKXtpZih0aGlzLnN0YXR1cyE9PSJzdGFydGVkIil7dGhpcy5zdGF0dXM9InN0YXJ0ZWQiO2ZvcihsZXQgZSBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpZS5zdGFydCgpO3RoaXMucnVuQ3JvbkN5Y2xlKCl9fWFzeW5jIHJ1bkNyb25DeWNsZSgpe2Zvcig7dGhpcy5zdGF0dXM9PT0ic3RhcnRlZCI7KXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkPW5ldyBCZS5EZWZlcnJlZDtsZXQgZT0xLzA7Zm9yKGxldCBhIG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSl7YS5jaGVja0V4ZWN1dGlvbigpO2xldCBpPWEuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpO2k8ZSYmKGU9aSl9aWYoZTwxLzAmJmU+MCl0aGlzLmV4ZWN1dGlvblRpbWVvdXQ9bmV3IGR0LlRpbWVvdXQoZSksYXdhaXQgUHJvbWlzZS5yYWNlKFt0aGlzLmV4ZWN1dGlvblRpbWVvdXQucHJvbWlzZSx0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnByb21pc2VdKSx0aGlzLmV4ZWN1dGlvblRpbWVvdXQuY2FuY2VsKCk7ZWxzZXtpZihlPD0wKWNvbnRpbnVlO2F3YWl0IHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZX19dGhpcy5jeWNsZVdha2VEZWZlcnJlZD1udWxsfXN0b3AoKXt0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmKHRoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLmV4ZWN1dGlvblRpbWVvdXQmJnRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKSx0aGlzLndha2VDeWNsZSgpKTtmb3IobGV0IGUgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKWUuc3RvcCgpfX19KTt2YXIga24sS1MsdV90LGZfdCxRUz1iKCgpPT57em4oKTtrbj17eWVhcnM6KHQ9MSk9PnQqMzE1NGU3LG1vbnRoczoodD0xKT0+dCoyNjI4ZTYsd2Vla3M6KHQ9MSk9PnQqNjA0OGU1LGRheXM6KHQ9MSk9PnQqODY0ZTUsaG91cnM6KHQ9MSk9PnQqMzZlNSxtaW51dGVzOih0PTEpPT50KjZlNCxzZWNvbmRzOih0PTEpPT50KjFlM30sS1M9dD0+e2xldCBlPTAsYT1pPT57ZT1lK2l9O3JldHVybiB0LnllYXJzJiZhKGtuLnllYXJzKHQueWVhcnMpKSx0Lm1vbnRocyYmYShrbi5tb250aHModC5tb250aHMpKSx0LndlZWtzJiZhKGtuLndlZWtzKHQud2Vla3MpKSx0LmRheXMmJmEoa24uZGF5cyh0LmRheXMpKSx0LmhvdXJzJiZhKGtuLmhvdXJzKHQuaG91cnMpKSx0Lm1pbnV0ZXMmJmEoa24ubWludXRlcyh0Lm1pbnV0ZXMpKSx0LnNlY29uZHMmJmEoa24uc2Vjb25kcyh0LnNlY29uZHMpKSxlfSx1X3Q9dD0+SmModCksZl90PXQ9PlFjLmZvcm1hdERpc3RhbmNlVG9Ob3cobmV3IERhdGUodCkpfSk7dmFyIEpTLERlZT1iKCgpPT57em4oKTtRUygpO0pTPWNsYXNzIHQgZXh0ZW5kcyBEYXRle3N0YXRpYyBmcm9tTWlsbGlzKGUpe3JldHVybiBuZXcgdChlKX1zdGF0aWMgZnJvbURhdGUoZSl7cmV0dXJuIG5ldyB0KGUuZ2V0VGltZSgpKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZShlKXtsZXQgYT0vKC4qKVwuKC4qKVwuKC4qKS8uZXhlYyhlKSxyPW5ldyBEYXRlKHBhcnNlRmxvYXQoYVszXSkscGFyc2VGbG9hdChhWzJdKS0xLHBhcnNlRmxvYXQoYVsxXSkpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHQocil9c3RhdGljIGZyb21IeXBoZWREYXRlKGUpe2xldCBhPW5ldyBEYXRlKGUpLmdldFRpbWUoKTtyZXR1cm4gbmV3IHQoYSl9c3RhdGljIGZyb21FdXJvcGVhbkRhdGVBbmRUaW1lKGUsYT0iMTI6MDA6MDAiLGk9IkV1cm9wZS9CZXJsaW4iKXtsZXQgcj0vKC4qKVwuKC4qKVwuKC4qKS8uZXhlYyhlKSxzPWM9PmAwJHtjfWAuc2xpY2UoLTIpLG49YCR7clszXX0tJHtzKHJbMl0pfS0ke3MoclsxXSl9VCR7YX1gLGQ9S28uZGVmYXVsdChuKS50b0RhdGUoKS5nZXRUaW1lKCk7cmV0dXJuIG5ldyB0KGQpfWNvbnN0cnVjdG9yKGU9RGF0ZS5ub3coKSl7c3VwZXIoZSl9ZXhwb3J0VG9FdXJvcGVhbkRhdGUoKXtsZXQgZT10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHtlLmRheVN0cmluZ30uJHtlLm1vbnRoU3RyaW5nfS4ke2UueWVhclN0cmluZ31gfWV4cG9ydFRvSHlwaGVkU29ydGFibGVEYXRlKCl7bGV0IGU9dGhpcy5leHBvcnRUb1VuaXRzKCk7cmV0dXJuYCR7ZS55ZWFyU3RyaW5nfS0ke2UubW9udGhTdHJpbmd9LSR7ZS5kYXlTdHJpbmd9YH1leHBvcnRUb1VuaXRzKCl7bGV0IGU9WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLGE9WyJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSIsIlN1bmRheSJdO3JldHVybnt5ZWFyOnRoaXMuZ2V0RnVsbFllYXIoKSx5ZWFyU3RyaW5nOmAke3RoaXMuZ2V0RnVsbFllYXIoKX1gLG1vbnRoOnRoaXMuZ2V0TW9udGgoKSsxLG1vbnRoU3RyaW5nOigiMCIrKHRoaXMuZ2V0TW9udGgoKSsxKSkuc2xpY2UoLTIpLG1vbnRoTmFtZTplW3RoaXMuZ2V0TW9udGgoKV0sZGF5OnRoaXMuZ2V0RGF0ZSgpLGRheVN0cmluZzooIjAiK3RoaXMuZ2V0RGF0ZSgpKS5zbGljZSgtMiksZGF5T2ZUaGVXZWVrOnRoaXMuZ2V0RGF5KCksZGF5T2ZUaGVXZWVrTmFtZTphW3RoaXMuZ2V0RGF5KCldfX1mb3JtYXQoZSl7cmV0dXJuIEtvLmRlZmF1bHQodGhpcy5nZXRUaW1lKCkpLmZvcm1hdChlKX1pc1RvZGF5KCl7cmV0dXJuIEtvLmRlZmF1bHQodGhpcy5nZXRUaW1lKCkpLmlzVG9kYXkoKX1sZXNzVGltZVBhc3NlZFRvTm93KGUpe2xldCBhPUtTKGUpO3JldHVybiBEYXRlLm5vdygpLXRoaXMuZ2V0VGltZSgpPGF9bW9yZVRpbWVQYXNzZWRUb05vdyhlKXtyZXR1cm4hdGhpcy5sZXNzVGltZVBhc3NlZFRvTm93KGUpfX19KTt2YXIgZUMsRWVlPWIoKCk9PntlQz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfXN0YXJ0KCl7dGhpcy5fc3RhcnRlZD0hMCx0aGlzLl9taWxsaVN0YXJ0PURhdGUubm93KCl9c3RvcCgpe2lmKHRoaXMuX3N0YXJ0ZWQ9PT0hMSl7Y29uc29sZS5sb2coIkhhc24ndCBzdGFydGVkIHlldCIpO3JldHVybn1yZXR1cm4gdGhpcy5fbWlsbGlEaWZmPURhdGUubm93KCktdGhpcy5fbWlsbGlTdGFydCx0aGlzLm5hbm9TZWNvbmRzPXRoaXMuX21pbGxpRGlmZioxZTMsdGhpcy5taWxsaVNlY29uZHM9dGhpcy5fbWlsbGlEaWZmLHRoaXN9cmVzZXQoKXt0aGlzLm5hbm9TZWNvbmRzPW51bGwsdGhpcy5taWxsaVNlY29uZHM9bnVsbCx0aGlzLl9taWxsaVN0YXJ0PW51bGwsdGhpcy5fbWlsbGlEaWZmPW51bGwsdGhpcy5fc3RhcnRlZD0hMX19fSk7dmFyIHRDLFBlZT1iKCgpPT57em4oKTt0Qz1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLnN0YXR1cz0iaW5pdGlhbCIsdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPW51bGwsdGhpcy5pbnRlcnZhbEpvYnM9W10sdGhpcy5pbnRlcnZhbE1pbGxpc2Vjb25kcz1lfXN0YXJ0KCl7dGhpcy5zdGF0dXM9InN0YXJ0ZWQiO2xldCBlPW5ldyBEYXRlO3RoaXMuc3RhdHVzQXV0aG9yaXphdGlvbj1lLChhc3luYygpPT57Zm9yKDt0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPT09ZTspYXdhaXQgZHQuZGVsYXlGb3IodGhpcy5pbnRlcnZhbE1pbGxpc2Vjb25kcyksdGhpcy5leGVjdXRlSW50ZXJ2YWxKb2JzKCl9KSgpfXN0b3AoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPW51bGx9YWRkSW50ZXJ2YWxKb2IoZSl7dGhpcy5pbnRlcnZhbEpvYnMucHVzaChlKX1leGVjdXRlSW50ZXJ2YWxKb2JzKCl7Zm9yKGxldCBlIG9mIHRoaXMuaW50ZXJ2YWxKb2JzKWUoKX19fSk7dmFyIG4zLGFDPWIoKCk9Pnt6bigpO24zPWNsYXNzIHR7c3RhdGljIGZyb21NaWxsaVNlY29uZHMoZSl7cmV0dXJuIG5ldyB0KGUpfXN0YXRpYyBmcm9tVGltZVN0YW1wKGUpe2xldCBhPW5ldyB0O3JldHVybiBhLmNoYW5nZT1hLm1pbGxpU2Vjb25kcy1lLm1pbGxpU2Vjb25kcyxhfWNvbnN0cnVjdG9yKGUpe3RoaXMuY2hhbmdlPW51bGwsZT90eXBlb2YgZT09Im51bWJlciImJih0aGlzLmRhdGU9bmV3IERhdGUoZSkpOnRoaXMuZGF0ZT1uZXcgRGF0ZSx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLmRhdGUuZ2V0VGltZSgpLHRoaXMuZXBvY2h0aW1lPU1hdGguZmxvb3IodGhpcy5taWxsaVNlY29uZHMvMWUzKX1pc09sZGVyVGhhbk90aGVyVGltZVN0YW1wKGUsYT0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHM8ZS5taWxsaVNlY29uZHMtYX1pc09sZGVyVGhhbihlLGE9MCl7cmV0dXJuIHRoaXMubWlsbGlTZWNvbmRzK2E8ZS5taWxsaVNlY29uZHN9aXNZb3VuZ2VyVGhhbk90aGVyVGltZVN0YW1wKGUsYT0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHM+ZS5taWxsaVNlY29uZHMrYX1pc1lvdW5nZXJUaGFuTWlsbGlTZWNvbmRzKGUpe2xldCBpPW5ldyB0KCkuZXBvY2h0aW1lLWUscj1uZXcgdChpKTtyZXR1cm4gdGhpcy5pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAocil9fX0pO3ZhciBpQyxJZWU9YigoKT0+e3puKCk7YUMoKTtpQz1jbGFzc3tnZXQgdGltZUxlZnQoKXtyZXR1cm4gdGhpcy50aW1lSW5NaWxsaXNlY29uZHMtdGhpcy5wYXVzZWRBdC5jaGFuZ2V9Y29uc3RydWN0b3IoZSl7dGhpcy5zdGF0ZT0iaW5pdGlhdGVkIix0aGlzLmNvbXBsZXRlZERlZmVycmVkPUJlLmRlZmVyKCksdGhpcy50aW1lSW5NaWxsaXNlY29uZHM9ZSx0aGlzLmNvbXBsZXRlZD10aGlzLmNvbXBsZXRlZERlZmVycmVkLnByb21pc2V9c3RhcnQoKXtpZighdGhpcy5zdGFydGVkQXQpdGhpcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5yZXNvbHZlKCl9LHRoaXMudGltZUluTWlsbGlzZWNvbmRzKSx0aGlzLnN0YXJ0ZWRBdD1uZXcgbjM7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBiZWVuIHN0YXJ0ZWQgYmVmb3JlLiBQbGVhc2UgdXNlIHJlc3VtZSBpbnN0ZWFkIil9cGF1c2UoKXt0aGlzLnN0YXJ0ZWRBdCYmKGNsZWFyVGltZW91dCh0aGlzLmN1cnJlbnRUaW1lb3V0KSx0aGlzLmN1cnJlbnRUaW1lb3V0PW51bGwsdGhpcy5wYXVzZWRBdD1uMy5mcm9tVGltZVN0YW1wKHRoaXMuc3RhcnRlZEF0KSl9cmVzdW1lKCl7aWYodGhpcy5zdGFydGVkQXQpdGhpcy5jdXJyZW50VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb21wbGV0ZWREZWZlcnJlZC5yZXNvbHZlKCl9LHRoaXMudGltZUxlZnQpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJ0aW1lciBoYXMgTk9UIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgLnN0YXJ0KCkgaW5zdGVhZCIpfXJlc2V0KCl7dGhpcy5wYXVzZSgpLHRoaXMuc3RhcnRlZEF0PW51bGwsdGhpcy5wYXVzZWRBdD1udWxsfX19KTt2YXIgY3M9e307R2UoY3Mse0Nyb25Kb2I6KCk9PnQ2LENyb25NYW5hZ2VyOigpPT5YUyxFeHRlbmRlZERhdGU6KCk9PkpTLEhydE1lYXN1cmVtZW50OigpPT5lQyxJbnRlcnZhbDooKT0+dEMsVGltZVN0YW1wOigpPT5uMyxUaW1lcjooKT0+aUMsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlQWdvVGltZTooKT0+Zl90LGdldE1pbGxpU2Vjb25kc0FzSHVtYW5SZWFkYWJsZVN0cmluZzooKT0+dV90LGdldE1pbGxpU2Vjb25kc0Zyb21Vbml0czooKT0+S1MsdW5pdHM6KCk9PmtufSk7dmFyIHJDPWIoKCk9PntaUygpO1lTKCk7RGVlKCk7RWVlKCk7UGVlKCk7SWVlKCk7YUMoKTtRUygpfSk7dmFyIEZlZT1wdCgoRnoxLE5lZSk9PnsidXNlIHN0cmljdCI7TmVlLmV4cG9ydHM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnBhcmVudD1udWxsLHRoaXMucHJldmlvdXNTaWJsaW5nPW51bGwsdGhpcy5uZXh0U2libGluZz1udWxsLHRoaXMuZmlyc3RDaGlsZD1udWxsLHRoaXMubGFzdENoaWxkPW51bGwsdGhpcy5jaGlsZHJlblZlcnNpb249MCx0aGlzLmNoaWxkSW5kZXhDYWNoZWRVcFRvPW51bGwsdGhpcy5jYWNoZWRJbmRleD0tMSx0aGlzLmNhY2hlZEluZGV4VmVyc2lvbj1OYU59Z2V0IGlzQXR0YWNoZWQoKXtyZXR1cm4hISh0aGlzLnBhcmVudHx8dGhpcy5wcmV2aW91c1NpYmxpbmd8fHRoaXMubmV4dFNpYmxpbmcpfWdldCBoYXNDaGlsZHJlbigpe3JldHVybiEhdGhpcy5maXJzdENoaWxkfWNoaWxkcmVuQ2hhbmdlZCgpe3RoaXMuY2hpbGRyZW5WZXJzaW9uPXRoaXMuY2hpbGRyZW5WZXJzaW9uKzEmNDI5NDk2NzI5NSx0aGlzLmNoaWxkSW5kZXhDYWNoZWRVcFRvPW51bGx9Z2V0Q2FjaGVkSW5kZXgoZSl7cmV0dXJuIHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uIT09ZS5jaGlsZHJlblZlcnNpb24/KHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTiwtMSk6dGhpcy5jYWNoZWRJbmRleH1zZXRDYWNoZWRJbmRleChlLGEpe3RoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPWUuY2hpbGRyZW5WZXJzaW9uLHRoaXMuY2FjaGVkSW5kZXg9YX19fSk7dmFyIFJlZT1wdCgoT3oxLE9lZSk9PnsidXNlIHN0cmljdCI7T2VlLmV4cG9ydHM9T2JqZWN0LmZyZWV6ZSh7RElTQ09OTkVDVEVEOjEsUFJFQ0VESU5HOjIsRk9MTE9XSU5HOjQsQ09OVEFJTlM6OCxDT05UQUlORURfQlk6MTZ9KX0pO3ZhciBqZWU9cHQoKFJ6MSxWZWUpPT57InVzZSBzdHJpY3QiO3ZhciBCZWU9U3ltYm9sKCksSGVlPVN5bWJvbCgpLFNuPVN5bWJvbCgpLHFlZT1TeW1ib2woKSxFaT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEsaSxyKXt0aGlzW0JlZV09ZSx0aGlzW0hlZV09YSx0aGlzW1NuXT1pLHRoaXNbcWVlXT1yfW5leHQoKXtsZXQgZT10aGlzW0JlZV0sYT10aGlzW3FlZV0saT10aGlzW0hlZV07aWYoIXRoaXNbU25dKXJldHVybntkb25lOiEwLHZhbHVlOml9O2xldCByPXRoaXNbU25dO3JldHVybiBhPT09MT90aGlzW1NuXT1lLl9ub2RlKHIpLnByZXZpb3VzU2libGluZzphPT09Mj90aGlzW1NuXT1lLl9ub2RlKHIpLm5leHRTaWJsaW5nOmE9PT0zP3RoaXNbU25dPWUuX25vZGUocikucGFyZW50OmE9PT00P3RoaXNbU25dPWUucHJlY2VkaW5nKHIse3Jvb3Q6aX0pOnRoaXNbU25dPWUuZm9sbG93aW5nKHIse3Jvb3Q6aX0pLHtkb25lOiExLHZhbHVlOnJ9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEVpLnByb3RvdHlwZSxTeW1ib2wuaXRlcmF0b3Ise3ZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHdyaXRhYmxlOiExfSksRWkuUFJFVj0xLEVpLk5FWFQ9MixFaS5QQVJFTlQ9MyxFaS5QUkVDRURJTkc9NCxFaS5GT0xMT1dJTkc9NSxPYmplY3QuZnJlZXplKEVpKSxPYmplY3QuZnJlZXplKEVpLnByb3RvdHlwZSksVmVlLmV4cG9ydHM9RWl9KTt2YXIgbkM9cHQoKEJ6MSxVZWUpPT57InVzZSBzdHJpY3QiO3ZhciBnX3Q9RmVlKCksQ249UmVlKCksbmk9amVlKCk7ZnVuY3Rpb24gc0MoKXtyZXR1cm4hMH1mdW5jdGlvbiBvMyh0LGUpe3JldHVybiB0W3QubGVuZ3RoLTEtZV19dmFyIE1oPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuc3ltYm9sPVN5bWJvbChlfHwiU3ltYm9sVHJlZSBkYXRhIil9aW5pdGlhbGl6ZShlKXtyZXR1cm4gdGhpcy5fbm9kZShlKSxlfV9ub2RlKGUpe2lmKCFlKXJldHVybiBudWxsO2xldCBhPWVbdGhpcy5zeW1ib2xdO3JldHVybiBhfHwoZVt0aGlzLnN5bWJvbF09bmV3IGdfdCl9aGFzQ2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkuaGFzQ2hpbGRyZW59Zmlyc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5maXJzdENoaWxkfWxhc3RDaGlsZChlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5sYXN0Q2hpbGR9cHJldmlvdXNTaWJsaW5nKGUpe3JldHVybiB0aGlzLl9ub2RlKGUpLnByZXZpb3VzU2libGluZ31uZXh0U2libGluZyhlKXtyZXR1cm4gdGhpcy5fbm9kZShlKS5uZXh0U2libGluZ31wYXJlbnQoZSl7cmV0dXJuIHRoaXMuX25vZGUoZSkucGFyZW50fWxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpe2xldCBhLGk9ZTtmb3IoO2E9dGhpcy5fbm9kZShpKS5sYXN0Q2hpbGQ7KWk9YTtyZXR1cm4gaX1wcmVjZWRpbmcoZSxhKXtsZXQgaT1hJiZhLnJvb3Q7aWYoZT09PWkpcmV0dXJuIG51bGw7bGV0IHI9dGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIHI/dGhpcy5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChyKTp0aGlzLl9ub2RlKGUpLnBhcmVudH1mb2xsb3dpbmcoZSxhKXtsZXQgaT1hJiZhLnJvb3Qscz0hKGEmJmEuc2tpcENoaWxkcmVuKSYmdGhpcy5fbm9kZShlKS5maXJzdENoaWxkO2lmKHMpcmV0dXJuIHM7bGV0IG49ZTtkb3tpZihuPT09aSlyZXR1cm4gbnVsbDtsZXQgbz10aGlzLl9ub2RlKG4pLm5leHRTaWJsaW5nO2lmKG8pcmV0dXJuIG87bj10aGlzLl9ub2RlKG4pLnBhcmVudH13aGlsZShuKTtyZXR1cm4gbnVsbH1jaGlsZHJlblRvQXJyYXkoZSxhKXtsZXQgaT1hJiZhLmFycmF5fHxbXSxyPWEmJmEuZmlsdGVyfHxzQyxzPWEmJmEudGhpc0FyZ3x8dm9pZCAwLG49dGhpcy5fbm9kZShlKSxvPW4uZmlyc3RDaGlsZCxkPTA7Zm9yKDtvOyl7bGV0IGM9dGhpcy5fbm9kZShvKTtjLnNldENhY2hlZEluZGV4KG4sZCksci5jYWxsKHMsbykmJmkucHVzaChvKSxvPWMubmV4dFNpYmxpbmcsKytkfXJldHVybiBpfWFuY2VzdG9yc1RvQXJyYXkoZSxhKXtsZXQgaT1hJiZhLmFycmF5fHxbXSxyPWEmJmEuZmlsdGVyfHxzQyxzPWEmJmEudGhpc0FyZ3x8dm9pZCAwLG49ZTtmb3IoO247KXIuY2FsbChzLG4pJiZpLnB1c2gobiksbj10aGlzLl9ub2RlKG4pLnBhcmVudDtyZXR1cm4gaX10cmVlVG9BcnJheShlLGEpe2xldCBpPWEmJmEuYXJyYXl8fFtdLHI9YSYmYS5maWx0ZXJ8fHNDLHM9YSYmYS50aGlzQXJnfHx2b2lkIDAsbj1lO2Zvcig7bjspci5jYWxsKHMsbikmJmkucHVzaChuKSxuPXRoaXMuZm9sbG93aW5nKG4se3Jvb3Q6ZX0pO3JldHVybiBpfWNoaWxkcmVuSXRlcmF0b3IoZSxhKXtsZXQgaT1hJiZhLnJldmVyc2Uscj10aGlzLl9ub2RlKGUpO3JldHVybiBuZXcgbmkodGhpcyxlLGk/ci5sYXN0Q2hpbGQ6ci5maXJzdENoaWxkLGk/bmkuUFJFVjpuaS5ORVhUKX1wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyBuaSh0aGlzLGUsdGhpcy5fbm9kZShlKS5wcmV2aW91c1NpYmxpbmcsbmkuUFJFVil9bmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIG5ldyBuaSh0aGlzLGUsdGhpcy5fbm9kZShlKS5uZXh0U2libGluZyxuaS5ORVhUKX1hbmNlc3RvcnNJdGVyYXRvcihlKXtyZXR1cm4gbmV3IG5pKHRoaXMsZSxlLG5pLlBBUkVOVCl9dHJlZUl0ZXJhdG9yKGUsYSl7bGV0IGk9YSYmYS5yZXZlcnNlO3JldHVybiBuZXcgbmkodGhpcyxlLGk/dGhpcy5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudChlKTplLGk/bmkuUFJFQ0VESU5HOm5pLkZPTExPV0lORyl9aW5kZXgoZSl7bGV0IGE9dGhpcy5fbm9kZShlKSxpPXRoaXMuX25vZGUoYS5wYXJlbnQpO2lmKCFpKXJldHVybi0xO2xldCByPWEuZ2V0Q2FjaGVkSW5kZXgoaSk7aWYocj49MClyZXR1cm4gcjtyPTA7bGV0IHM9aS5maXJzdENoaWxkO2lmKGkuY2hpbGRJbmRleENhY2hlZFVwVG8pe2xldCBuPXRoaXMuX25vZGUoaS5jaGlsZEluZGV4Q2FjaGVkVXBUbyk7cz1uLm5leHRTaWJsaW5nLHI9bi5nZXRDYWNoZWRJbmRleChpKSsxfWZvcig7czspe2xldCBuPXRoaXMuX25vZGUocyk7aWYobi5zZXRDYWNoZWRJbmRleChpLHIpLHM9PT1lKWJyZWFrOysrcixzPW4ubmV4dFNpYmxpbmd9cmV0dXJuIGkuY2hpbGRJbmRleENhY2hlZFVwVG89ZSxyfWNoaWxkcmVuQ291bnQoZSl7bGV0IGE9dGhpcy5fbm9kZShlKTtyZXR1cm4gYS5sYXN0Q2hpbGQ/dGhpcy5pbmRleChhLmxhc3RDaGlsZCkrMTowfWNvbXBhcmVUcmVlUG9zaXRpb24oZSxhKXtpZihlPT09YSlyZXR1cm4gMDtsZXQgaT1bXTt7bGV0IHA9ZTtmb3IoO3A7KXtpZihwPT09YSlyZXR1cm4gQ24uQ09OVEFJTlN8Q24uUFJFQ0VESU5HO2kucHVzaChwKSxwPXRoaXMucGFyZW50KHApfX1sZXQgcj1bXTt7bGV0IHA9YTtmb3IoO3A7KXtpZihwPT09ZSlyZXR1cm4gQ24uQ09OVEFJTkVEX0JZfENuLkZPTExPV0lORztyLnB1c2gocCkscD10aGlzLnBhcmVudChwKX19bGV0IHM9bzMoaSwwKTtpZighc3x8cyE9PW8zKHIsMCkpcmV0dXJuIENuLkRJU0NPTk5FQ1RFRDtsZXQgbj0wLG89TWF0aC5taW4oaS5sZW5ndGgsci5sZW5ndGgpO2ZvcihsZXQgcD0wO3A8bzsrK3Ape2xldCBsPW8zKGkscCksZj1vMyhyLHApO2lmKGwhPT1mKWJyZWFrO249cH1sZXQgZD10aGlzLmluZGV4KG8zKGksbisxKSk7cmV0dXJuIHRoaXMuaW5kZXgobzMocixuKzEpKTxkP0NuLlBSRUNFRElORzpDbi5GT0xMT1dJTkd9cmVtb3ZlKGUpe2xldCBhPXRoaXMuX25vZGUoZSksaT10aGlzLl9ub2RlKGEucGFyZW50KSxyPXRoaXMuX25vZGUoYS5wcmV2aW91c1NpYmxpbmcpLHM9dGhpcy5fbm9kZShhLm5leHRTaWJsaW5nKTtyZXR1cm4gaSYmKGkuZmlyc3RDaGlsZD09PWUmJihpLmZpcnN0Q2hpbGQ9YS5uZXh0U2libGluZyksaS5sYXN0Q2hpbGQ9PT1lJiYoaS5sYXN0Q2hpbGQ9YS5wcmV2aW91c1NpYmxpbmcpKSxyJiYoci5uZXh0U2libGluZz1hLm5leHRTaWJsaW5nKSxzJiYocy5wcmV2aW91c1NpYmxpbmc9YS5wcmV2aW91c1NpYmxpbmcpLGEucGFyZW50PW51bGwsYS5wcmV2aW91c1NpYmxpbmc9bnVsbCxhLm5leHRTaWJsaW5nPW51bGwsYS5jYWNoZWRJbmRleD0tMSxhLmNhY2hlZEluZGV4VmVyc2lvbj1OYU4saSYmaS5jaGlsZHJlbkNoYW5nZWQoKSxlfWluc2VydEJlZm9yZShlLGEpe2xldCBpPXRoaXMuX25vZGUoZSkscj10aGlzLl9ub2RlKGkucHJldmlvdXNTaWJsaW5nKSxzPXRoaXMuX25vZGUoYSksbj10aGlzLl9ub2RlKGkucGFyZW50KTtpZihzLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gcy5wYXJlbnQ9aS5wYXJlbnQscy5wcmV2aW91c1NpYmxpbmc9aS5wcmV2aW91c1NpYmxpbmcscy5uZXh0U2libGluZz1lLGkucHJldmlvdXNTaWJsaW5nPWEsciYmKHIubmV4dFNpYmxpbmc9YSksbiYmbi5maXJzdENoaWxkPT09ZSYmKG4uZmlyc3RDaGlsZD1hKSxuJiZuLmNoaWxkcmVuQ2hhbmdlZCgpLGF9aW5zZXJ0QWZ0ZXIoZSxhKXtsZXQgaT10aGlzLl9ub2RlKGUpLHI9dGhpcy5fbm9kZShpLm5leHRTaWJsaW5nKSxzPXRoaXMuX25vZGUoYSksbj10aGlzLl9ub2RlKGkucGFyZW50KTtpZihzLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gcy5wYXJlbnQ9aS5wYXJlbnQscy5wcmV2aW91c1NpYmxpbmc9ZSxzLm5leHRTaWJsaW5nPWkubmV4dFNpYmxpbmcsaS5uZXh0U2libGluZz1hLHImJihyLnByZXZpb3VzU2libGluZz1hKSxuJiZuLmxhc3RDaGlsZD09PWUmJihuLmxhc3RDaGlsZD1hKSxuJiZuLmNoaWxkcmVuQ2hhbmdlZCgpLGF9cHJlcGVuZENoaWxkKGUsYSl7bGV0IGk9dGhpcy5fbm9kZShlKSxyPXRoaXMuX25vZGUoYSk7aWYoci5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIGkuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRCZWZvcmUoaS5maXJzdENoaWxkLGEpOihyLnBhcmVudD1lLGkuZmlyc3RDaGlsZD1hLGkubGFzdENoaWxkPWEsaS5jaGlsZHJlbkNoYW5nZWQoKSksYX1hcHBlbmRDaGlsZChlLGEpe2xldCBpPXRoaXMuX25vZGUoZSkscj10aGlzLl9ub2RlKGEpO2lmKHIuaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBpLmhhc0NoaWxkcmVuP3RoaXMuaW5zZXJ0QWZ0ZXIoaS5sYXN0Q2hpbGQsYSk6KHIucGFyZW50PWUsaS5maXJzdENoaWxkPWEsaS5sYXN0Q2hpbGQ9YSxpLmNoaWxkcmVuQ2hhbmdlZCgpKSxhfX07VWVlLmV4cG9ydHM9TWgsTWguVHJlZVBvc2l0aW9uPUNufSk7dmFyIHpoLG9pPWIoKCk9PntocigpO0lrKCk7YzIoKTtBaSgpO3JDKCk7emg9ajEobkMoKSwxKX0pO3ZhciBvQyxXZWU9YigoKT0+e29pKCk7b0M9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmV4ZWN1dGlvblNsb3RzPVtdLHRoaXMuaXNQcm9jZXNzaW5nPSExLHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k9MS8wLHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50PTAsdGhpcy5ub25FeGNsdXNpdmVQZW5kaW5nUXVldWU9W119YXN5bmMgZ2V0RXhjbHVzaXZlRXhlY3V0aW9uU2xvdChlLGEpe2xldCBpPUJlLmRlZmVyKCkscj17ZnVuY1RvRXhlY3V0ZTplLGV4ZWN1dGlvbkRlZmVycmVkOmksdGltZW91dDphLG1vZGU6ImV4Y2x1c2l2ZSJ9O3JldHVybiB0aGlzLmV4ZWN1dGlvblNsb3RzLnB1c2gociksdGhpcy5wcm9jZXNzRXhlY3V0aW9uU2xvdHMoKSxpLnByb21pc2V9YXN5bmMgZ2V0Tm9uRXhjbHVzaXZlRXhlY3V0aW9uU2xvdChlLGEpe2xldCBpPUJlLmRlZmVyKCkscj17ZnVuY1RvRXhlY3V0ZTplLGV4ZWN1dGlvbkRlZmVycmVkOmksdGltZW91dDphLG1vZGU6Im5vbmV4Y2x1c2l2ZSJ9O3JldHVybiB0aGlzLmV4ZWN1dGlvblNsb3RzLnB1c2gociksdGhpcy5wcm9jZXNzRXhlY3V0aW9uU2xvdHMoKSxpLnByb21pc2V9c2V0Tm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3koZSl7aWYoIU51bWJlci5pc0Zpbml0ZShlKXx8ZTwxKXRocm93IG5ldyBFcnJvcigibm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3kgbXVzdCBiZSBhIGZpbml0ZSBudW1iZXIgPj0gMSIpO3RoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k9ZX1nZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5fWdldEFjdGl2ZU5vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50fWdldFBlbmRpbmdOb25FeGNsdXNpdmVDb3VudCgpe3JldHVybiB0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5sZW5ndGh9YXN5bmMgcHJvY2Vzc0V4ZWN1dGlvblNsb3RzKCl7aWYoIXRoaXMuaXNQcm9jZXNzaW5nKXtmb3IodGhpcy5pc1Byb2Nlc3Npbmc9ITA7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MDspe2xldCBlPXRoaXMuZXhlY3V0aW9uU2xvdHNbMF07aWYoZS5tb2RlPT09ImV4Y2x1c2l2ZSIpYXdhaXQgdGhpcy5leGVjdXRlRXhjbHVzaXZlU2xvdChlKSx0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCk7ZWxzZXtsZXQgYT1bXTtmb3IoO3RoaXMuZXhlY3V0aW9uU2xvdHMubGVuZ3RoPjAmJnRoaXMuZXhlY3V0aW9uU2xvdHNbMF0ubW9kZT09PSJub25leGNsdXNpdmUiOylhLnB1c2godGhpcy5leGVjdXRpb25TbG90cy5zaGlmdCgpKTthd2FpdCB0aGlzLmV4ZWN1dGVOb25FeGNsdXNpdmVTbG90cyhhKX19dGhpcy5pc1Byb2Nlc3Npbmc9ITF9fWFzeW5jIGV4ZWN1dGVFeGNsdXNpdmVTbG90KGUpe3RyeXtpZihlLnRpbWVvdXQpe2xldCBhPWF3YWl0IFByb21pc2UucmFjZShbZS5mdW5jVG9FeGVjdXRlKCksZHQuZGVsYXlGb3IoZS50aW1lb3V0KS50aGVuKCgpPT57dGhyb3cgbmV3IEVycm9yKCJUaW1lb3V0IHJlYWNoZWQiKX0pXSk7ZS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKGEpfWVsc2V7bGV0IGE9YXdhaXQgZS5mdW5jVG9FeGVjdXRlKCk7ZS5leGVjdXRpb25EZWZlcnJlZC5yZXNvbHZlKGEpfX1jYXRjaChhKXtlLmV4ZWN1dGlvbkRlZmVycmVkLnJlamVjdChhKX19YXN5bmMgZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKGUpe2xldCBhPWUubWFwKGFzeW5jIGk9Pnthd2FpdCB0aGlzLndhaXRGb3JOb25FeGNsdXNpdmVTbG90KCk7dHJ5e2lmKGkudGltZW91dCl7bGV0IHI9YXdhaXQgUHJvbWlzZS5yYWNlKFtpLmZ1bmNUb0V4ZWN1dGUoKSxkdC5kZWxheUZvcihpLnRpbWVvdXQpLnRoZW4oKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRpbWVvdXQgcmVhY2hlZCIpfSldKTtpLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9ZWxzZXtsZXQgcj1hd2FpdCBpLmZ1bmNUb0V4ZWN1dGUoKTtpLmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9fWNhdGNoKHIpe2kuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHIpfWZpbmFsbHl7dGhpcy5yZWxlYXNlTm9uRXhjbHVzaXZlU2xvdCgpfX0pO2F3YWl0IFByb21pc2UuYWxsKGEpfXdhaXRGb3JOb25FeGNsdXNpdmVTbG90KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50PHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3k/KHRoaXMubm9uRXhjbHVzaXZlQ3VycmVudENvdW50KyssUHJvbWlzZS5yZXNvbHZlKCkpOm5ldyBQcm9taXNlKGU9Pnt0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5wdXNoKCgpPT57dGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxlKCl9KX0pfXJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl7dGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQtLTtsZXQgZT10aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZS5zaGlmdCgpO2UmJmUoKX19fSk7dmFyIGxDLEdlZT1iKCgpPT57b2koKTtsQz1jbGFzc3tjb25zdHJ1Y3RvcihlPTE2KXt0aGlzLmhhc1NwYWNlPW5ldyBBdC5yeGpzLlN1YmplY3QsdGhpcy5pdGVtc0F2YWlsYWJsZT1uZXcgQXQucnhqcy5TdWJqZWN0LHRoaXMuZGF0YT1bXSx0aGlzLmhpZ2hXYXRlck1hcms9ZX1wdXNoKGUpe3RoaXMuZGF0YS5wdXNoKGUpLHRoaXMuaXRlbXNBdmFpbGFibGUubmV4dCgiaXRlbXNBdmFpbGFibGUiKTtsZXQgYT10aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKTtyZXR1cm4gYSYmdGhpcy5oYXNTcGFjZS5uZXh0KCJoYXNTcGFjZSIpLGF9c2hpZnQoKXtsZXQgZT10aGlzLmRhdGEuc2hpZnQoKTtyZXR1cm4gdGhpcy5jaGVja1NwYWNlQXZhaWxhYmxlKCkmJnRoaXMuaGFzU3BhY2UubmV4dCgiaGFzU3BhY2UiKSxlfWNoZWNrU3BhY2VBdmFpbGFibGUoKXtyZXR1cm4gdGhpcy5kYXRhLmxlbmd0aDx0aGlzLmhpZ2hXYXRlck1hcmt9Y2hlY2tIYXNJdGVtcygpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoPjB9d2FpdEZvclNwYWNlKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntpZih0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKSllKCk7ZWxzZXtsZXQgYT10aGlzLmhhc1NwYWNlLnN1YnNjcmliZSgoKT0+e2EudW5zdWJzY3JpYmUoKSxlKCl9KX19KX13YWl0Rm9ySXRlbXMoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2lmKHRoaXMuZGF0YS5sZW5ndGg+MCllKCk7ZWxzZXtsZXQgYT10aGlzLml0ZW1zQXZhaWxhYmxlLnN1YnNjcmliZSgoKT0+e2EudW5zdWJzY3JpYmUoKSxlKCl9KX19KX19fSk7dmFyIGE2LGNDPWIoKCk9PntvaSgpO2E2PWNsYXNzIHR7Y29uc3RydWN0b3IoKXt0aGlzLm1hcE9iamVjdD17fX1pc1VuaXF1ZUtleShlKXtyZXR1cm4hdGhpcy5tYXBPYmplY3RbZV19YWRkVG9NYXAoZSxhLGkpe3JldHVybiB0aGlzLmlzVW5pcXVlS2V5KGUpfHxpJiZpLmZvcmNlPyh0aGlzLm1hcE9iamVjdFtlXT1hLCEwKTohMX1nZXRCeUtleShlKXtyZXR1cm4gdGhpcy5tYXBPYmplY3RbZV19cmVtb3ZlRnJvbU1hcChlKXtsZXQgYT10aGlzLmdldEJ5S2V5KGUpO3JldHVybiBkZWxldGUgdGhpcy5tYXBPYmplY3RbZV0sYX1nZXRLZXlzKCl7bGV0IGU9W107Zm9yKGxldCBhIGluIHRoaXMubWFwT2JqZWN0KXRoaXMubWFwT2JqZWN0W2FdJiZlLnB1c2goYSk7cmV0dXJuIGV9Y2xlYW4oKXt0aGlzLm1hcE9iamVjdD17fX1jb25jYXQoZSl7bGV0IGE9bmV3IHQ7Zm9yKGxldCBpIG9mIHRoaXMuZ2V0S2V5cygpKWEuYWRkVG9NYXAoaSx0aGlzLmdldEJ5S2V5KGkpKTtmb3IobGV0IGkgb2YgZS5nZXRLZXlzKCkpYS5hZGRUb01hcChpLGUuZ2V0QnlLZXkoaSkse2ZvcmNlOiEwfSk7cmV0dXJuIGF9YWRkQWxsRnJvbU90aGVyKGUpe2ZvcihsZXQgYSBvZiBlLmdldEtleXMoKSl0aGlzLmFkZFRvTWFwKGEsZS5nZXRCeUtleShhKSx7Zm9yY2U6ITB9KX1hc3luYyBmaW5kKGUpe2ZvcihsZXQgYSBvZiB0aGlzLmdldEtleXMoKSl7bGV0IGk9dGhpcy5nZXRCeUtleShhKTtpZihhd2FpdCBlKGkpKXJldHVybiBpfX19fSk7dmFyIFllZSxRbyxraD1iKCgpPT57b2koKTtjQygpO1llZT0odD0idW5pIik9PmAke3R9eHh4eHh4eHh4eHhgLnJlcGxhY2UoL1t4eV0vZyxlPT57bGV0IGE9TWF0aC5yYW5kb20oKSoxNnwwO3JldHVybihlPT09IngiP2E6YSYzfDgpLnRvU3RyaW5nKDE2KX0pLFFvPWNsYXNzIHR7Y29uc3RydWN0b3IoKXt0aGlzLmZhc3RNYXA9bmV3IGE2LHRoaXMuZXZlbnRTdWJqZWN0PW5ldyBBdC5yeGpzLlN1YmplY3R9YWRkTWFwcGVkVW5pcXVlKGUsYSl7dGhpcy5mYXN0TWFwLmFkZFRvTWFwKGUsYSl9Z2V0TWFwcGVkVW5pcXVlKGUpe3JldHVybiB0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoZSl9cmVtb3ZlTWFwcGVkVW5pcXVlKGUpe2xldCBhPXRoaXMuZ2V0TWFwcGVkVW5pcXVlKGUpfWFkZChlKXtmb3IobGV0IGkgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZih0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT1lKXJldHVybiBpO2xldCBhPVllZSgia2V5Iik7cmV0dXJuIHRoaXMuYWRkTWFwcGVkVW5pcXVlKGEsZSksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJhZGQiLHBheWxvYWQ6ZX0pLGF9YWRkQXJyYXkoZSl7Zm9yKGxldCBhIG9mIGUpdGhpcy5hZGQoYSl9Y2hlY2tGb3JPYmplY3QoZSl7cmV0dXJuISF0aGlzLmdldEtleUZvck9iamVjdChlKX1nZXRLZXlGb3JPYmplY3QoZSl7bGV0IGE9bnVsbDtmb3IobGV0IGkgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZighYSYmdGhpcy5mYXN0TWFwLmdldEJ5S2V5KGkpPT09ZSlhPWk7ZWxzZSBjb250aW51ZTtyZXR1cm4gYX1hc3luYyBmaW5kKGUpe3JldHVybiB0aGlzLmZhc3RNYXAuZmluZChlKX1maW5kU3luYyhlKXtmb3IobGV0IGEgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZihlKHRoaXMuZmFzdE1hcC5nZXRCeUtleShhKSkpcmV0dXJuIHRoaXMuZ2V0TWFwcGVkVW5pcXVlKGEpfWFzeW5jIGZpbmRPbmVBbmRSZW1vdmUoZSl7bGV0IGE9YXdhaXQgdGhpcy5maW5kKGUpO3JldHVybiBhJiZ0aGlzLnJlbW92ZShhKSxhfWZpbmRPbmVBbmRSZW1vdmVTeW5jKGUpe2xldCBhPXRoaXMuZmluZFN5bmMoZSk7cmV0dXJuIGEmJnRoaXMucmVtb3ZlKGEpLGF9YXN5bmMgZm9yRWFjaChlKXtmb3IobGV0IGEgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlhd2FpdCBlKHRoaXMuZmFzdE1hcC5nZXRCeUtleShhKSl9Z2V0T25lQW5kUmVtb3ZlKCl7bGV0IGU9dGhpcy5mYXN0TWFwLmdldEtleXMoKTtpZihlLmxlbmd0aD09PTApcmV0dXJuIG51bGw7e2xldCBhPWVbMF0saT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChhKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9fWdldEFycmF5KCl7bGV0IGU9W107Zm9yKGxldCBhIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpZS5wdXNoKHRoaXMuZmFzdE1hcC5nZXRCeUtleShhKSk7cmV0dXJuIGV9aXNFbXB0eSgpe3JldHVybiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpLmxlbmd0aD09PTB9cmVtb3ZlKGUpe2lmKHRoaXMuY2hlY2tGb3JPYmplY3QoZSkpe2xldCBhPXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KGUpLGk9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAoYSk7cmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOml9KSxpfXJldHVybiBudWxsfXdpcGUoKXtmb3IobGV0IGUgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSl0aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChlKX1jb25jYXQoZSl7bGV0IGE9bmV3IHQ7cmV0dXJuIGEuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodGhpcy5mYXN0TWFwKSxhLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKGUuZmFzdE1hcCksYX1hZGRBbGxGcm9tT3RoZXIoZSl7dGhpcy5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcihlLmZhc3RNYXApfX19KTt2YXIgaTYsZEM9YigoKT0+e29pKCk7cEMoKTtpNj1jbGFzc3tnZXQgY29tcGFyaXNvblN0cmluZygpe3JldHVybiB0aGlzLmNvbXBhcmlzb25GdW5jKHRoaXMub3JpZ2luYWxJbnRlcmVzdCl9ZnVsbGZpbGxJbnRlcmVzdChlKXt0aGlzLmlzRnVsbGZpbGxlZD0hMCx0aGlzLmZ1bGxmaWxsbWVudFN0b3JlPVtdLHRoaXMuaW50ZXJlc3REZWZlcnJlZC5yZXNvbHZlKGUpfWNvbnN0cnVjdG9yKGUsYSxpLHIpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lcj1uZXcgY3MuVGltZXIoMWU0KSx0aGlzLmlzRnVsbGZpbGxlZD0hMSx0aGlzLmZ1bGxmaWxsbWVudFN0b3JlPVtdLHRoaXMuaW50ZXJlc3REZWZlcnJlZD1uZXcgQmUuRGVmZXJyZWQsdGhpcy5pbnRlcmVzdEZ1bGxmaWxsZWQ9dGhpcy5pbnRlcmVzdERlZmVycmVkLnByb21pc2UsdGhpcy5pbnRlcmVzdE1hcFJlZj1lLHRoaXMub3JpZ2luYWxJbnRlcmVzdD1hLHRoaXMuY29tcGFyaXNvbkZ1bmM9aSx0aGlzLm9wdGlvbnM9cix0aGlzLmRlc3RydWN0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCk9Pnt0aGlzLmRlc3Ryb3koKX0pLHRoaXMub3B0aW9ucz8ubWFya0xvc3RBZnRlckRlZmF1bHQmJmR0LmRlbGF5Rm9yKHRoaXMub3B0aW9ucy5tYXJrTG9zdEFmdGVyRGVmYXVsdCkudGhlbih0aGlzLm1hcmtMb3N0KX1kZXN0cm95KCl7dGhpcy5pbnRlcmVzdE1hcFJlZi5yZW1vdmVJbnRlcmVzdCh0aGlzKSwhdGhpcy5pc0Z1bGxmaWxsZWQmJnRoaXMub3B0aW9ucy5kZWZhdWx0RnVsbGZpbGxtZW50JiZ0aGlzLmZ1bGxmaWxsSW50ZXJlc3QodGhpcy5vcHRpb25zLmRlZmF1bHRGdWxsZmlsbG1lbnQpfW1hcmtMb3N0KCl7dGhpcy5kZXN0cnVjdGlvblRpbWVyLnN0YXJ0KCl9cmVuZXcoKXt0aGlzLmRlc3RydWN0aW9uVGltZXIucmVzZXQoKX19fSk7dmFyIGhDLHBDPWIoKCk9PntvaSgpO2toKCk7ZEMoKTtoQz1jbGFzc3tjb25zdHJ1Y3RvcihlLGE9e30pe3RoaXMuaW50ZXJlc3RPYmplY3RNYXA9bmV3IFFvLHRoaXMuaW50ZXJlc3RPYnNlcnZhYmxlPW5ldyBBdC5PYnNlcnZhYmxlSW50YWtlLHRoaXMuY29tcGFyaXNvbkZ1bmM9ZSx0aGlzLm9wdGlvbnM9YX1hc3luYyBhZGRJbnRlcmVzdChlLGEpe2xldCBpPXRoaXMuY29tcGFyaXNvbkZ1bmMoZSkscixzPW5ldyBpNih0aGlzLGUsdGhpcy5jb21wYXJpc29uRnVuYyx7bWFya0xvc3RBZnRlckRlZmF1bHQ6dGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0LGRlZmF1bHRGdWxsZmlsbG1lbnQ6YX0pLG49ITE7cmV0dXJuIGF3YWl0IHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZm9yRWFjaChvPT57IW4mJm8uY29tcGFyaXNvblN0cmluZz09PXMuY29tcGFyaXNvblN0cmluZyYmKGNvbnNvbGUubG9nKCJpbmZvIixgaW50ZXJlc3QgYWxyZWFkeSBleGlzdHMgZm9yICR7cy5jb21wYXJpc29uU3RyaW5nfWApLG49ITAscj1vLHIucmVuZXcoKSl9KSxyfHwocj1zLHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuYWRkKHIpKSx0aGlzLmludGVyZXN0T2JzZXJ2YWJsZS5wdXNoKHIpLHJ9cmVtb3ZlSW50ZXJlc3QoZSl7bGV0IGE9dGhpcy5pbnRlcmVzdE9iamVjdE1hcC5maW5kT25lQW5kUmVtb3ZlU3luYyhpPT5lLmNvbXBhcmlzb25TdHJpbmc9PT1pLmNvbXBhcmlzb25TdHJpbmcpfWNoZWNrSW50ZXJlc3QoZSl7bGV0IGE9dGhpcy5jb21wYXJpc29uRnVuYyhlKTtyZXR1cm4gdGhpcy5jaGVja0ludGVyZXN0QnlTdHJpbmcoYSl9Y2hlY2tJbnRlcmVzdEJ5U3RyaW5nKGUpe3JldHVybiEhdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5maW5kU3luYyhpPT5pLmNvbXBhcmlzb25TdHJpbmc9PT1lKX1pbmZvcm1Mb3N0SW50ZXJlc3QoZSl7bGV0IGE9dGhpcy5maW5kSW50ZXJlc3QoZSk7YSYmYS5tYXJrTG9zdCgpfWZpbmRJbnRlcmVzdChlKXtsZXQgYT10aGlzLmNvbXBhcmlzb25GdW5jKGUpO3JldHVybiB0aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRTeW5jKHI9PnIuY29tcGFyaXNvblN0cmluZz09PWEpfX19KTt2YXIgdUMsWmVlPWIoKCk9PntvaSgpO3VDPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuYXJyYXk9W10sdGhpcy5hcnJheUxpbWl0PWV9YWRkT25lKGUpe3RoaXMuYXJyYXkudW5zaGlmdChlKSx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWFkZE1hbnkoZSl7Zm9yKGxldCBhIG9mIGUpdGhpcy5hZGRPbmUoYSl9c2V0TGltaXQoZSl7dGhpcy5hcnJheUxpbWl0PWUsdGhpcy5hcnJheS5sZW5ndGg+dGhpcy5hcnJheUxpbWl0JiYodGhpcy5hcnJheS5sZW5ndGg9dGhpcy5hcnJheUxpbWl0KX1nZXRBdmVyYWdlKCl7aWYodHlwZW9mIHRoaXMuYXJyYXlbMF09PSJudW1iZXIiKXtsZXQgZT0wO2ZvcihsZXQgYSBvZiB0aGlzLmFycmF5KWU9ZSthO3JldHVybiBlL3RoaXMuYXJyYXkubGVuZ3RofWVsc2UgcmV0dXJuIG51bGx9fX0pO3ZhciBmQyxYZWU9YigoKT0+e29pKCk7a2goKTtmQz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVmZXJlbmNlT2JqZWN0TWFwPW5ldyBRb31jaGVja0FuZFRyYWNrKGUpe3JldHVybiB0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5jaGVja0Zvck9iamVjdChlKT8hMToodGhpcy5yZWZlcmVuY2VPYmplY3RNYXAuYWRkKGUpLCEwKX19fSk7dmFyIG1DLEtlZT1iKCgpPT57b2koKTttQz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PVtdfWFkZFN0cmluZyhlKXt0aGlzLl9zdHJpbmdBcnJheS5wdXNoKGUpLHRoaXMubm90aWZ5VHJpZ2dlcigpfWFkZFN0cmluZ0FycmF5KGUpe2ZvcihsZXQgYSBvZiBlKXRoaXMuYWRkU3RyaW5nKGEpfXJlbW92ZVN0cmluZyhlKXtmb3IobGV0IGEgaW4gdGhpcy5fc3RyaW5nQXJyYXkpdGhpcy5fc3RyaW5nQXJyYXlbYV09PT1lJiZ0aGlzLl9zdHJpbmdBcnJheS5zcGxpY2UocGFyc2VJbnQoYSksMSk7dGhpcy5ub3RpZnlUcmlnZ2VyKCl9d2lwZSgpe3RoaXMuX3N0cmluZ0FycmF5PVtdLHRoaXMubm90aWZ5VHJpZ2dlcigpfWNoZWNrU3RyaW5nKGUpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5pbmRleE9mKGUpIT09LTF9Y2hlY2tNaW5pbWF0Y2goZSl7bGV0IGE9bmV3IGFzLlNtYXJ0TWF0Y2goZSksaT0hMTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpYS5tYXRjaChyKSYmKGk9ITApO3JldHVybiBpfWNoZWNrSXNFbXB0eSgpe3JldHVybiB0aGlzLl9zdHJpbmdBcnJheS5sZW5ndGg9PT0wfWdldFN0cmluZ0FycmF5KCl7bGV0IGU9W107Zm9yKGxldCBhIG9mIHRoaXMuX3N0cmluZ0FycmF5KWUucHVzaChhKTtyZXR1cm4gZX1yZWdpc3RlclVudGlsVHJ1ZShlLGEpe2xldCBpPUJlLmRlZmVyKCk7cmV0dXJuIHRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LnB1c2goKCk9PntsZXQgcj1lKHRoaXMuZ2V0U3RyaW5nQXJyYXkoKSk7cmV0dXJuIHI9PT0hMCYmKGEmJmEoKSxpLnJlc29sdmUoKSkscn0pLHRoaXMubm90aWZ5VHJpZ2dlcigpLGkucHJvbWlzZX1ub3RpZnlUcmlnZ2VyKCl7bGV0IGU9dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkuZmlsdGVyKGE9PiFhKCkpO3RoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5PWV9fX0pO3ZhciBnQyxRZWU9YigoKT0+e29pKCk7Z0M9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5zdG9yYWdlQXJyYXk9W10sdGhpcy5vcHRpb25zPWV9Y2hlY2tBZ2dyZWdhdGlvblN0YXR1cygpe2xldCBlPSgpPT57dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW5ldyBjcy5UaW1lcih0aGlzLm9wdGlvbnMuYWdncmVnYXRpb25JbnRlcnZhbEluTWlsbGlzKSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXIuY29tcGxldGVkLnRoZW4oKCk9PntsZXQgYT10aGlzLnN0b3JhZ2VBcnJheTtpZihhLmxlbmd0aD09PTApe3RoaXMuYWdncmVnYXRpb25UaW1lcj1udWxsO3JldHVybn10aGlzLnN0b3JhZ2VBcnJheT1bXSxlKCksdGhpcy5vcHRpb25zLmZ1bmN0aW9uRm9yQWdncmVnYXRpb24oYSl9KSx0aGlzLmFnZ3JlZ2F0aW9uVGltZXIuc3RhcnQoKX07dGhpcy5hZ2dyZWdhdGlvblRpbWVyfHxlKCl9YWRkKGUpe3RoaXMuc3RvcmFnZUFycmF5LnB1c2goZSksdGhpcy5jaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCl9fX0pO3ZhciBiQyxKZWU9YigoKT0+e29pKCk7YkM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN5bWJvbFRyZWU9bmV3IHpoLmRlZmF1bHR9aW5pdGlhbGl6ZShlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluaXRpYWxpemUoZSl9aGFzQ2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5oYXNDaGlsZHJlbihlKX1maXJzdENoaWxkKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuZmlyc3RDaGlsZChlKX1sYXN0Q2hpbGQoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0Q2hpbGQoZSl9cHJldmlvdXNTaWJsaW5nKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJldmlvdXNTaWJsaW5nKGUpfW5leHRTaWJsaW5nKGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubmV4dFNpYmxpbmcoZSl9cGFyZW50KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucGFyZW50KGUpfWxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUubGFzdEluY2x1c2l2ZURlc2NlbmRhbnQoZSl9cHJlY2VkaW5nKGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmVjZWRpbmcoZSxhKX1mb2xsb3dpbmcoZSxhKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmZvbGxvd2luZyhlLGEpfWNoaWxkcmVuVG9BcnJheShlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5Ub0FycmF5KGUsYSl9YW5jZXN0b3JzVG9BcnJheShlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuYW5jZXN0b3JzVG9BcnJheShlLGEpfXRyZWVUb0FycmF5KGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS50cmVlVG9BcnJheShlLGEpfWNoaWxkcmVuSXRlcmF0b3IoZSxhKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuSXRlcmF0b3IoZSxhKX1wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmdzSXRlcmF0b3IoZSl9bmV4dFNpYmxpbmdzSXRlcmF0b3IoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5uZXh0U2libGluZ3NJdGVyYXRvcigpfWFuY2VzdG9yc0l0ZXJhdG9yKGUpe3RoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNJdGVyYXRvcigpfXRyZWVJdGVyYXRvcihlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUudHJlZUl0ZXJhdG9yKGUpfWluZGV4KGUpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5kZXgoZSl9Y2hpbGRyZW5Db3VudChlKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmNoaWxkcmVuQ291bnQoZSl9Y29tcGFyZVRyZWVQb3NpdGlvbihlLGEpe3JldHVybiB0aGlzLmNvbXBhcmVUcmVlUG9zaXRpb24oZSxhKX1yZW1vdmUoZSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5yZW1vdmUoZSl9aW5zZXJ0QmVmb3JlKGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRCZWZvcmUoZSxhKX1pbnNlcnRBZnRlcihlLGEpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5zZXJ0QWZ0ZXIoZSxhKX1wcmVwZW5kQ2hpbGQoZSxhKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXBlbmRDaGlsZChlLGEpfWFwcGVuZENoaWxkKGUsYSl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hcHBlbmRDaGlsZChlLGEpfXRvSnNvbldpdGhIaWVyYWNoeShlKXtsZXQgYT10aGlzLnRyZWVJdGVyYXRvcihlLHt9KTtmb3IobGV0IGkgb2YgYSljb25zb2xlLmxvZyhpKX1mcm9tSnNvbldpdGhIaWVyYWNoeShlKXt9fX0pO3ZhciBlMj17fTtHZShlMix7QXN5bmNFeGVjdXRpb25TdGFjazooKT0+b0MsQmFja3ByZXNzdXJlZEFycmF5OigpPT5sQyxGYXN0TWFwOigpPT5hNixJbnRlcmVzdDooKT0+aTYsSW50ZXJlc3RNYXA6KCk9PmhDLExpbWl0ZWRBcnJheTooKT0+dUMsTG9vcFRyYWNrZXI6KCk9PmZDLE9iamVjdE1hcDooKT0+UW8sU3RyaW5nbWFwOigpPT5tQyxUaW1lZEFnZ3JlZ3RvcjooKT0+Z0MsVHJlZTooKT0+YkMsdW5pOigpPT5ZZWV9KTt2YXIgZTY9YigoKT0+e1dlZSgpO0dlZSgpO2NDKCk7cEMoKTtkQygpO1plZSgpO1hlZSgpO2toKCk7S2VlKCk7UWVlKCk7SmVlKCl9KTt2YXIgTG49e307R2UoTG4se2FyZVVpbnQ4QXJyYXlzRXF1YWw6KCk9PmtfdCxhc3NlcnRVaW50OEFycmF5OigpPT5Ubixhc3NlcnRVaW50OEFycmF5T3JBcnJheUJ1ZmZlcjooKT0+cnRlLGJhc2U2NFRvU3RyaW5nOigpPT4kX3QsYmFzZTY0VG9VaW50OEFycmF5OigpPT5sdGUsY29tcGFyZVVpbnQ4QXJyYXlzOigpPT5TX3QsY29uY2F0VWludDhBcnJheXM6KCk9PnpfdCxnZXRVaW50QkU6KCk9PlBfdCxoZXhUb1VpbnQ4QXJyYXk6KCk9PkVfdCxpbmNsdWRlczooKT0+SV90LGluZGV4T2Y6KCk9PmN0ZSxpc1VpbnQ4QXJyYXk6KCk9PnZDLHN0cmluZ1RvQmFzZTY0OigpPT5MX3Qsc3RyaW5nVG9VaW50OEFycmF5OigpPT5udGUsdG9VaW50OEFycmF5OigpPT5NX3QsdWludDhBcnJheVRvQmFzZTY0OigpPT5vdGUsdWludDhBcnJheVRvSGV4OigpPT5EX3QsdWludDhBcnJheVRvU3RyaW5nOigpPT5zdGV9KTtmdW5jdGlvbiBldGUodCxlLGEpe3JldHVybiB0P3QuY29uc3RydWN0b3I9PT1lPyEwOmJfdC5jYWxsKHQpPT09YTohMX1mdW5jdGlvbiB2Qyh0KXtyZXR1cm4gZXRlKHQsVWludDhBcnJheSx2X3QpfWZ1bmN0aW9uIHhfdCh0KXtyZXR1cm4gZXRlKHQsQXJyYXlCdWZmZXIseV90KX1mdW5jdGlvbiB3X3QodCl7cmV0dXJuIHZDKHQpfHx4X3QodCl9ZnVuY3Rpb24gVG4odCl7aWYoIXZDKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgVWludDhBcnJheVxgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gcnRlKHQpe2lmKCF3X3QodCkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAgb3IgXGBBcnJheUJ1ZmZlclxgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gTV90KHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodCk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKXJldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKTt0aHJvdyBuZXcgVHlwZUVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSwgZ290IFxgJHt0eXBlb2YgdH1cYC5gKX1mdW5jdGlvbiB6X3QodCxlKXtpZih0Lmxlbmd0aD09PTApcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2U/Pz10LnJlZHVjZSgocixzKT0+citzLmxlbmd0aCwwKTtsZXQgYT1uZXcgVWludDhBcnJheShlKSxpPTA7Zm9yKGxldCByIG9mIHQpVG4ociksYS5zZXQocixpKSxpKz1yLmxlbmd0aDtyZXR1cm4gYX1mdW5jdGlvbiBrX3QodCxlKXtpZihUbih0KSxUbihlKSx0PT09ZSlyZXR1cm4hMDtpZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSsrKWlmKHRbYV0hPT1lW2FdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIFNfdCh0LGUpe1RuKHQpLFRuKGUpO2xldCBhPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKTtmb3IobGV0IGk9MDtpPGE7aSsrKXtsZXQgcj10W2ldLWVbaV07aWYociE9PTApcmV0dXJuIE1hdGguc2lnbihyKX1yZXR1cm4gTWF0aC5zaWduKHQubGVuZ3RoLWUubGVuZ3RoKX1mdW5jdGlvbiBzdGUodCxlPSJ1dGY4Iil7cmV0dXJuIHJ0ZSh0KSx0dGVbZV0/Pz1uZXcgZ2xvYmFsVGhpcy5UZXh0RGVjb2RlcihlKSx0dGVbZV0uZGVjb2RlKHQpfWZ1bmN0aW9uIHI2KHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYHN0cmluZ1xgLCBnb3QgXGAke3R5cGVvZiB0fVxgYCl9ZnVuY3Rpb24gbnRlKHQpe3JldHVybiByNih0KSxDX3QuZW5jb2RlKHQpfWZ1bmN0aW9uIF9fdCh0KXtyZXR1cm4gdC5yZXBsYWNlQWxsKCIrIiwiLSIpLnJlcGxhY2VBbGwoIi8iLCJfIikucmVwbGFjZSgvPSskLywiIil9ZnVuY3Rpb24gVF90KHQpe2xldCBlPXQucmVwbGFjZUFsbCgiLSIsIisiKS5yZXBsYWNlQWxsKCJfIiwiLyIpLGE9KDQtZS5sZW5ndGglNCklNDtyZXR1cm4gZSsiPSIucmVwZWF0KGEpfWZ1bmN0aW9uIG90ZSh0LHt1cmxTYWZlOmU9ITF9PXt9KXtUbih0KTtsZXQgYT0iIjtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krPWF0ZSl7bGV0IHI9dC5zdWJhcnJheShpLGkrYXRlKTthKz1nbG9iYWxUaGlzLmJ0b2EoU3RyaW5nLmZyb21Db2RlUG9pbnQuYXBwbHkodm9pZCAwLHIpKX1yZXR1cm4gZT9fX3QoYSk6YX1mdW5jdGlvbiBsdGUodCl7cmV0dXJuIHI2KHQpLFVpbnQ4QXJyYXkuZnJvbShnbG9iYWxUaGlzLmF0b2IoVF90KHQpKSxlPT5lLmNvZGVQb2ludEF0KDApKX1mdW5jdGlvbiBMX3QodCx7dXJsU2FmZTplPSExfT17fSl7cmV0dXJuIHI2KHQpLG90ZShudGUodCkse3VybFNhZmU6ZX0pfWZ1bmN0aW9uICRfdCh0KXtyZXR1cm4gcjYodCksc3RlKGx0ZSh0KSl9ZnVuY3Rpb24gRF90KHQpe1RuKHQpO2xldCBlPSIiO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSsrKWUrPUFfdFt0W2FdXTtyZXR1cm4gZX1mdW5jdGlvbiBFX3QodCl7aWYocjYodCksdC5sZW5ndGglMiE9PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIEhleCBzdHJpbmcgbGVuZ3RoLiIpO2xldCBlPXQubGVuZ3RoLzIsYT1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IGk9MDtpPGU7aSsrKXtsZXQgcj1pdGVbdFtpKjJdXSxzPWl0ZVt0W2kqMisxXV07aWYocj09PXZvaWQgMHx8cz09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSGV4IGNoYXJhY3RlciBlbmNvdW50ZXJlZCBhdCBwb3NpdGlvbiAke2kqMn1gKTthW2ldPXI8PDR8c31yZXR1cm4gYX1mdW5jdGlvbiBQX3QodCl7bGV0e2J5dGVMZW5ndGg6ZX09dDtpZihlPT09NilyZXR1cm4gdC5nZXRVaW50MTYoMCkqMioqMzIrdC5nZXRVaW50MzIoMik7aWYoZT09PTUpcmV0dXJuIHQuZ2V0VWludDgoMCkqMioqMzIrdC5nZXRVaW50MzIoMSk7aWYoZT09PTQpcmV0dXJuIHQuZ2V0VWludDMyKDApO2lmKGU9PT0zKXJldHVybiB0LmdldFVpbnQ4KDApKjIqKjE2K3QuZ2V0VWludDE2KDEpO2lmKGU9PT0yKXJldHVybiB0LmdldFVpbnQxNigwKTtpZihlPT09MSlyZXR1cm4gdC5nZXRVaW50OCgwKX1mdW5jdGlvbiBjdGUodCxlKXtsZXQgYT10Lmxlbmd0aCxpPWUubGVuZ3RoO2lmKGk9PT0wfHxpPmEpcmV0dXJuLTE7bGV0IHI9YS1pO2ZvcihsZXQgcz0wO3M8PXI7cysrKXtsZXQgbj0hMDtmb3IobGV0IG89MDtvPGk7bysrKWlmKHRbcytvXSE9PWVbb10pe249ITE7YnJlYWt9aWYobilyZXR1cm4gc31yZXR1cm4tMX1mdW5jdGlvbiBJX3QodCxlKXtyZXR1cm4gY3RlKHQsZSkhPT0tMX12YXIgYl90LHZfdCx5X3QsdHRlLENfdCxhdGUsQV90LGl0ZSxkdGU9YigoKT0+e2JfdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHZfdD0iW29iamVjdCBVaW50OEFycmF5XSIseV90PSJbb2JqZWN0IEFycmF5QnVmZmVyXSI7dHRlPXt1dGY4Om5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKCJ1dGY4Iil9O0NfdD1uZXcgZ2xvYmFsVGhpcy5UZXh0RW5jb2RlcjthdGU9NjU1MzU7QV90PUFycmF5LmZyb20oe2xlbmd0aDoyNTZ9LCh0LGUpPT5lLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpO2l0ZT17MDowLDE6MSwyOjIsMzozLDQ6NCw1OjUsNjo2LDc6Nyw4OjgsOTo5LGE6MTAsYjoxMSxjOjEyLGQ6MTMsZToxNCxmOjE1LEE6MTAsQjoxMSxDOjEyLEQ6MTMsRToxNCxGOjE1fX0pO3ZhciBwdGU9YigoKT0+e2R0ZSgpfSk7dmFyIGwzPXt9O0dlKGwzLHtiYXNlNjRUb1VpbnQ4QXJyYXk6KCk9PlJfdCxlbnN1cmVQdXJlVWludDhBcnJheTooKT0+cV90LGlzQnVmZmVyTGlrZTooKT0+SF90LGlzVWludDhBcnJheTooKT0+Ql90LHVJbnQ4QXJyYXlFeHRyYXM6KCk9PkZfdCx1SW50OEFycmF5VG9CYXNlNjQ6KCk9Pk9fdH0pO2Z1bmN0aW9uIE9fdCh0KXtyZXR1cm4gTG4udWludDhBcnJheVRvQmFzZTY0KHQpfWZ1bmN0aW9uIFJfdCh0KXtyZXR1cm4gTG4uYmFzZTY0VG9VaW50OEFycmF5KHQpfWZ1bmN0aW9uIEhfdCh0KXtyZXR1cm4gdCYmdHlwZW9mIHQuYnl0ZUxlbmd0aD09Im51bWJlciI/ITA6dHlwZW9mIEJ1ZmZlcjwidSImJkJ1ZmZlci5pc0J1ZmZlcj9CdWZmZXIuaXNCdWZmZXIodCk6ITF9ZnVuY3Rpb24gcV90KHQpe2xldCBlPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtyZXR1cm4gZS5zZXQodCksZX12YXIgRl90LEJfdCxodGU9YigoKT0+e3B0ZSgpO0ZfdD1MbjtCX3Q9dD0+TG4uaXNVaW50OEFycmF5KHQpfSk7dmFyIHM2PWIoKCk9PntjMigpfSk7dmFyIG42LFNoPWIoKCk9PntzNigpO242PWNsYXNze2NvbnN0cnVjdG9yKGUsYSl7dGhpcy5ndWFyZEZ1bmN0aW9uPWUsdGhpcy5vcHRpb25zPWF9YXN5bmMgZXhlYyhlKXtyZXR1cm4gYXdhaXQgdGhpcy5ndWFyZEZ1bmN0aW9uKGUpfWFzeW5jIGdldEZhaWxlZEhpbnQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuZXhlYyhlKT9udWxsOnRoaXMub3B0aW9ucy5mYWlsZWRIaW50fX19KTt2YXIgbzYseUM9YigoKT0+e3M2KCk7bzY9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9Ikd1YXJkRXJyb3IifX19KTt2YXIgbDYseEM9YigoKT0+e3M2KCk7U2goKTtsNj1jbGFzcyBleHRlbmRzIG42e2NvbnN0cnVjdG9yKGU9W10pe3N1cGVyKGFzeW5jIGE9PnRoaXMuYWxsR3VhcmRzUGFzcyhhKSksdGhpcy5ndWFyZHM9ZX1hc3luYyBleGVjQWxsV2l0aERhdGEoZSxhPXttb2RlOiJwYXJhbGxlbCIsc3RvcE9uRmFpbDohMX0pe2xldCBpPVtdO2ZvcihsZXQgcyBvZiB0aGlzLmd1YXJkcyl7bGV0IG49cy5leGVjKGUpO2lmKGEubW9kZT09PSJzZXJpYWwiJiZhd2FpdCBuLGkucHVzaChuKSxhLnN0b3BPbkZhaWwmJiFhd2FpdCBuKXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChpKX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoaSl9YXN5bmMgYWxsR3VhcmRzUGFzcyhlLGE9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7cmV0dXJuKGF3YWl0IHRoaXMuZXhlY0FsbFdpdGhEYXRhKGUsYSkpLmV2ZXJ5KHI9PnIpfWFzeW5jIGFueUd1YXJkc1Bhc3MoZSl7cmV0dXJuKGF3YWl0IHRoaXMuZXhlY0FsbFdpdGhEYXRhKGUse21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSkpLnNvbWUoaT0+aSl9Z2V0RmFpbGVkSGludChlKXtmb3IobGV0IGEgb2YgdGhpcy5ndWFyZHMpe2xldCBpPWEuZ2V0RmFpbGVkSGludChlKTtpZihpKXJldHVybiBpfX19fSk7dmFyIGM2PXt9O0dlKGM2LHtHdWFyZDooKT0+bjYsR3VhcmRFcnJvcjooKT0+bzYsR3VhcmRTZXQ6KCk9Pmw2LHBhc3NHdWFyZHNPclJlamVjdDooKT0+Vl90fSk7dmFyIFZfdCx1dGU9YigoKT0+e3M2KCk7U2goKTt5QygpO1NoKCk7eEMoKTt4QygpO3lDKCk7Vl90PWFzeW5jKHQsZSk9PntsZXQgYT1uZXcgbDYoZSk7aWYoIWF3YWl0IGEuYWxsR3VhcmRzUGFzcyh0KSl7bGV0IHI9YXdhaXQgYS5nZXRGYWlsZWRIaW50KHQpO3Rocm93IG5ldyBvNihgR3VhcmRzIGZhaWxlZDoKJHtyfQogICAgYCl9fX0pO3ZhciBjMyx3Qz1iKCgpPT57YzM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnM9W10sdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycz1bXSx0aGlzLmVycm9ySW50ZXJjZXB0b3JzPVtdfWFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKXt0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMucHVzaChlKX1hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpe3RoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMucHVzaChlKX1hZGRFcnJvckludGVyY2VwdG9yKGUpe3RoaXMuZXJyb3JJbnRlcmNlcHRvcnMucHVzaChlKX1yZW1vdmVSZXF1ZXN0SW50ZXJjZXB0b3IoZSl7bGV0IGE9dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLmluZGV4T2YoZSk7YT4tMSYmdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLnNwbGljZShhLDEpfXJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IoZSl7bGV0IGE9dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5pbmRleE9mKGUpO2E+LTEmJnRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMuc3BsaWNlKGEsMSl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcihlKXtsZXQgYT10aGlzLmVycm9ySW50ZXJjZXB0b3JzLmluZGV4T2YoZSk7YT4tMSYmdGhpcy5lcnJvckludGVyY2VwdG9ycy5zcGxpY2UoYSwxKX1jbGVhckFsbCgpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycz1bXSx0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzPVtdLHRoaXMuZXJyb3JJbnRlcmNlcHRvcnM9W119YXN5bmMgcHJvY2Vzc1JlcXVlc3QoZSl7bGV0IGE9ZTtmb3IobGV0IGkgb2YgdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzKXRyeXthPWF3YWl0IGkoYSl9Y2F0Y2gocil7dGhyb3cgYXdhaXQgdGhpcy5wcm9jZXNzRXJyb3IociBpbnN0YW5jZW9mIEVycm9yP3I6bmV3IEVycm9yKFN0cmluZyhyKSkpfXJldHVybiBhfWFzeW5jIHByb2Nlc3NSZXNwb25zZShlKXtsZXQgYT1lO2ZvcihsZXQgaSBvZiB0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzKXRyeXthPWF3YWl0IGkoYSl9Y2F0Y2gocil7dGhyb3cgYXdhaXQgdGhpcy5wcm9jZXNzRXJyb3IociBpbnN0YW5jZW9mIEVycm9yP3I6bmV3IEVycm9yKFN0cmluZyhyKSkpfXJldHVybiBhfWFzeW5jIHByb2Nlc3NFcnJvcihlKXtsZXQgYT1lO2ZvcihsZXQgaSBvZiB0aGlzLmVycm9ySW50ZXJjZXB0b3JzKXRyeXthPWF3YWl0IGkoYSl9Y2F0Y2gocil7YT1yIGluc3RhbmNlb2YgRXJyb3I/cjpuZXcgRXJyb3IoU3RyaW5nKHIpKX1yZXR1cm4gYX1nZXRJbnRlcmNlcHRvckNvdW50cygpe3JldHVybntyZXF1ZXN0OnRoaXMucmVxdWVzdEludGVyY2VwdG9ycy5sZW5ndGgscmVzcG9uc2U6dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5sZW5ndGgsZXJyb3I6dGhpcy5lcnJvckludGVyY2VwdG9ycy5sZW5ndGh9fX19KTt2YXIgZnRlPWIoKCk9PntjMigpfSk7dmFyIG10ZT1iKCgpPT57fSk7dmFyIE1DLGd0ZT1iKCgpPT57ZnRlKCk7bXRlKCk7TUM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRlZFNjcmlwdHM9W119YXN5bmMgZ2V0RW52QXdhcmVNb2R1bGUoZSl7aWYodGhpcy5pc05vZGUpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoZS5ub2RlTW9kdWxlTmFtZSk7aWYodGhpcy5pc0Jyb3dzZXIpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZShlLndlYlVybEFyZyxlLmdldEZ1bmN0aW9uKTtjb25zb2xlLmVycm9yKCJwbGF0Zm9ybSBmb3IgbG9hZGluZyBub3Qgc3VwcG9ydGVkIGJ5IHNtYXJ0ZW52Iil9YXN5bmMgZ2V0U2FmZU5vZGVNb2R1bGUoZSxhKXtpZighdGhpcy5pc05vZGUpe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgbm9kZSBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke2V9LiBUaGlzIGRvZXMgbm90IHRocm93LmApO3JldHVybn1sZXQgaT1hd2FpdCBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7ZX0nKWApKCk7cmV0dXJuIGEmJmF3YWl0IGEoaSksaX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKGUsYSl7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyhlKSlyZXR1cm4gYSgpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKGUpO2xldCBpPUJlLmRlZmVyKCk7aWYoZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKWdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cyhlKSxpLnJlc29sdmUoKTtlbHNle2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Iub25sb2FkPSgpPT57aS5yZXNvbHZlKCl9LHIuc3JjPWUsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChyKX1yZXR1cm4gYXdhaXQgaS5wcm9taXNlLGEoKX1nZXQgcnVudGltZUVudigpe3JldHVybiB0eXBlb2YgcHJvY2VzczwidSI/Im5vZGUiOiJicm93c2VyIn1nZXQgaXNCcm93c2VyKCl7cmV0dXJuIXRoaXMuaXNOb2RlfWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgaXNOb2RlKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJub2RlIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gcHJvY2Vzcy52ZXJzaW9ufWdldCBpc0NJKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyEhcHJvY2Vzcy5lbnYuQ0k6ITF9YXN5bmMgaXNNYWNBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJkYXJ3aW4iOiExfWFzeW5jIGlzV2luZG93c0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09IndpbjMyIjohMX1hc3luYyBpc0xpbnV4QXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0ibGludXgiOiExfWFzeW5jIHByaW50RW52KCl7dGhpcy5pc05vZGU/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIE5PREUiKSxjb25zb2xlLmxvZygibm9kZSB2ZXJzaW9uIGlzICIrdGhpcy5ub2RlVmVyc2lvbikpOihjb25zb2xlLmxvZygicnVubmluZyBvbiBCUk9XU0VSIiksY29uc29sZS5sb2coImJyb3dzZXIgaXMgIit0aGlzLnVzZXJBZ2VudCkpfX19KTt2YXIgRmE9e307R2UoRmEse1NtYXJ0ZW52OigpPT5NQ30pO3ZhciBkMz1iKCgpPT57Z3RlKCl9KTt2YXIgekMscDM9YigoKT0+e3pDPWoxKHdkKCksMSl9KTt2YXIgQ2g9e307R2UoQ2gse2NyZWF0ZUNyeXB0b1JhbmRvbVN0cmluZzooKT0+Wl90LGNyZWF0ZVJhbmRvbVN0cmluZzooKT0+WV90fSk7dmFyIFdfdCxHX3QsWV90LFpfdCxidGU9YigoKT0+e3AzKCk7V190PSh0LGUpPT57aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLmNyeXB0byYmZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXtsZXQgYT1lLXQsaT1uZXcgVWludDMyQXJyYXkoMSk7cmV0dXJuIGdsb2JhbFRoaXMuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhpKSx0K2lbMF0lYX1lbHNlIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtdCkpK3R9LEdfdD0odCxlLGEpPT57bGV0IGk9e0E6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIixhOiJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsMDoiMDEyMzQ1Njc4OSIsIiEiOiIhQCMkJV4mKigpXystPVtde318OzosLjw+PyIsIioiOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/In0scj10O2UmJmU+dC5sZW5ndGg/cj10LnJlcGVhdChNYXRoLmNlaWwoZS90Lmxlbmd0aCkpLnNsaWNlKDAsZSk6ZSYmKHI9dC5zbGljZSgwLGUpKTtsZXQgcz0iIjtmb3IobGV0IG4gb2YgcilpZihpW25dKXtsZXQgbz1pW25dLGQ9V190KDAsby5sZW5ndGgpO3MrPW9bZF19ZWxzZSBzKz1uO3JldHVybiBzfSxZX3Q9KHQsZSxhKT0+R190KHQsZSxhKSxaX3Q9KCk9PnpDLnVuaSgpfSk7dmFyIF9oPXt9O0dlKF9oLHttYWtlRW52T2JqZWN0OigpPT5YX3R9KTt2YXIgWF90LHZ0ZT1iKCgpPT57cDMoKTtYX3Q9ZnVuY3Rpb24odCl7bGV0IGU9e30sYT0vKC4qKT0oLiopLztpZih0eXBlb2YgdDwidSIpZm9yKGxldCBpIGluIHQpe2xldCByPWEuZXhlYyh0W2ldKTtlW3JbMV1dPXJbMl19cmV0dXJuIGV9fSk7dmFyIEpvPXt9O0dlKEpvLHtpbmRlbnQ6KCk9PlFfdCxpbmRlbnRXaXRoUHJlZml4OigpPT5KX3Qsbm9ybWFsaXplOigpPT5lVHR9KTt2YXIga0MsU0MsS190LFFfdCxKX3QsZVR0LHl0ZT1iKCgpPT57cDMoKTtrQz10PT57bGV0IGU9dC5zcGxpdChgCmApO3JldHVybiBLX3QoZSl9LFNDPXQ9PntsZXQgZT0iIjtmb3IobGV0IGEgb2YgdCllPWUrYStgCmA7cmV0dXJuIGV9LEtfdD10PT57bGV0IGU9L15bXHNdKiQvO3JldHVybiBlLnRlc3QodFswXSkmJnQuc2hpZnQoKSxlLnRlc3QodFt0Lmxlbmd0aC0xXSkmJnQucG9wKCksdH0sUV90PSh0LGUpPT57bGV0IGE9a0ModCk7Zm9yKGxldCByIG9mIGEpcj0iICIucmVwZWF0KGUpK3I7cmV0dXJuIFNDKGEpfSxKX3Q9KHQsZSk9PntsZXQgYSxpPWtDKHQpLHI9W107Zm9yKGxldCBzIG9mIGkpci5wdXNoKGUrcyk7cmV0dXJuIGE9U0MociksYX0sZVR0PXQ9PntsZXQgZSxhPWtDKHQpLGkscj0vXihccyopLyxzPS9eKFxzKikkLztmb3IobGV0IG8gb2YgYSl7bGV0IGQ9ci5leGVjKG8pWzFdOyh0eXBlb2YgaT4idSJ8fGQubGVuZ3RoPGkpJiYhcy50ZXN0KG8pJiYoaT1kLmxlbmd0aCl9bGV0IG49W107Zm9yKGxldCBvIG9mIGEpbi5wdXNoKG8uc3Vic3RyKGkpKTtyZXR1cm4gZT1TQyhuKSxlfX0pO3ZhciBUaD17fTtHZShUaCx7cmVwbGFjZUFsbDooKT0+eHRlLHN0YW5kYXJkOigpPT5hVHR9KTt2YXIgeHRlLHRUdCxhVHQsd3RlPWIoKCk9Pnt4dGU9KHQsZSxhKT0+dC5yZXBsYWNlKG5ldyBSZWdFeHAoZSwiZyIpLGEpLHRUdD10PT57bGV0IGU9dC5zcGxpdChgCmApLGE9MS8wO2ZvcihsZXQgaSBvZiBlKWlmKGkudHJpbSgpLmxlbmd0aD4wKXtsZXQgcj1pLm1hdGNoKC9eKFxzKikvKTtyJiYoYT1NYXRoLm1pbihhLHJbMV0ubGVuZ3RoKSl9cmV0dXJuIGE9PT0xLzB8fGE9PT0wP3Q6ZS5tYXAoaT0+aS5sZW5ndGg+PWE/aS5zbGljZShhKTppKS5qb2luKGAKYCl9LGFUdD0odCxlKT0+e2xldCBhPXQ7cmV0dXJuKCFlfHxlLnN0cmlwSW5kZW50KSYmKGE9dFR0KGEpKSwoIWV8fGUubm9ybWFsaXplTmV3bGluZSkmJihhPWEucmVwbGFjZSgvXHJcbi9nLGAKYCkpLCghZXx8ZS5yZXBsYWNlVGFicykmJihhPXh0ZShhLCIJLyIsIiAiKSksKCFlfHxlLnN0cmlwTGVhZGluZ1RyYWlsaW5nRW1wdHlMaW5lcykmJihhPWEucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikucmVwbGFjZSgvXHMqW1xyXG5dJC9nbSwiIikpLCghZXx8ZS5zdHJpcEFsbEVtcHR5TGluZXMpJiYoYT1hLnJlcGxhY2UoL15ccypbXHJcbl0vZ20sIiIpKSxhfX0pO3ZhciBDQyxMaCxoMyxfQz1iKCgpPT57Q0M9e2VuY29kZTp0PT57aWYodHlwZW9mIEJ1ZmZlcjwidSIpcmV0dXJuIEJ1ZmZlci5mcm9tKHQsInV0ZjgiKS50b1N0cmluZygiYmFzZTY0Iik7aWYodHlwZW9mIGJ0b2E8InUiKXtsZXQgZT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksYT1BcnJheS5mcm9tKGUsaT0+U3RyaW5nLmZyb21DaGFyQ29kZShpKSkuam9pbigiIik7cmV0dXJuIGJ0b2EoYSl9ZWxzZXtsZXQgZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsYT1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCksaT0iIixyPTA7Zm9yKDtyPGEubGVuZ3RoOyl7bGV0IHM9YVtyKytdLG49cjxhLmxlbmd0aD9hW3IrK106MCxvPXI8YS5sZW5ndGg/YVtyKytdOjAsZD1zPDwxNnxuPDw4fG87aSs9ZS5jaGFyQXQoZD4+MTgmNjMpLGkrPWUuY2hhckF0KGQ+PjEyJjYzKSxpKz1yLTI8YS5sZW5ndGg/ZS5jaGFyQXQoZD4+NiY2Myk6Ij0iLGkrPXItMTxhLmxlbmd0aD9lLmNoYXJBdChkJjYzKToiPSJ9cmV0dXJuIGl9fSxkZWNvZGU6dD0+e2xldCBlPXQucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIikucGFkRW5kKHQubGVuZ3RoKyg0LXQubGVuZ3RoJTQpJTQsIj0iKTtpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20oZSwiYmFzZTY0IikudG9TdHJpbmcoInV0ZjgiKTtpZih0eXBlb2YgYXRvYjwidSIpe2xldCBhPWF0b2IoZSksaT1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjxhLmxlbmd0aDtyKyspaVtyXT1hLmNoYXJDb2RlQXQocik7cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShpKX1lbHNle2xldCBhPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixpPVtdLHI9MDtmb3IoO3I8ZS5sZW5ndGg7KXtsZXQgcz1hLmluZGV4T2YoZS5jaGFyQXQocisrKSksbj1hLmluZGV4T2YoZS5jaGFyQXQocisrKSksbz1hLmluZGV4T2YoZS5jaGFyQXQocisrKSksZD1hLmluZGV4T2YoZS5jaGFyQXQocisrKSksYz1zPDwxOHxuPDwxMnxvPDw2fGQ7aS5wdXNoKGM+PjE2JjI1NSksbyE9PTY0JiZpLnB1c2goYz4+OCYyNTUpLGQhPT02NCYmaS5wdXNoKGMmMjU1KX1yZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50OEFycmF5KGkpKX19fSxMaD1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3N3aXRjaChhKXtjYXNlInN0cmluZyI6dGhpcy5yZWZTdHJpbmc9ZTticmVhaztjYXNlImJhc2U2NCI6dGhpcy5yZWZTdHJpbmc9aDMuZGVjb2RlKGUpO2JyZWFrO2Nhc2UiYmFzZTY0dXJpIjp0aGlzLnJlZlN0cmluZz1oMy5kZWNvZGUoZSl9fWdldCBzaW1wbGVTdHJpbmcoKXtyZXR1cm4gdGhpcy5yZWZTdHJpbmd9Z2V0IGJhc2U2NFN0cmluZygpe3JldHVybiBoMy5lbmNvZGUodGhpcy5yZWZTdHJpbmcpfWdldCBiYXNlNjRVcmlTdHJpbmcoKXtyZXR1cm4gaDMuZW5jb2RlVXJpKHRoaXMucmVmU3RyaW5nKX19LGgzPXtlbmNvZGU6dD0+Q0MuZW5jb2RlKHQpLGVuY29kZVVyaTp0PT5DQy5lbmNvZGUodCkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89L2csIiIpLGRlY29kZTp0PT5DQy5kZWNvZGUodCksaXNCYXNlNjQ6dD0+L14oW0EtWmEtejAtOSsvXXs0fSkqKFtBLVphLXowLTkrL117M309fFtBLVphLXowLTkrL117Mn09PSk/JC8udGVzdCh0KX19KTt2YXIgJGg9e307R2UoJGgse2lzQmFzZTY0OigpPT5yVHQsaXNVdGY4OigpPT5pVHR9KTt2YXIgaVR0LHJUdCxNdGU9YigoKT0+e3AzKCk7X0MoKTtpVHQ9dD0+e2xldCBhPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0KSxpPTA7Zm9yKDtpPGEubGVuZ3RoOyl7aWYoYVtpXT09PTl8fGFbaV09PT0xMHx8YVtpXT09PTEzfHwzMjw9YVtpXSYmYVtpXTw9MTI2KXtpKz0xO2NvbnRpbnVlfWlmKDE5NDw9YVtpXSYmYVtpXTw9MjIzJiYxMjg8PWFbaSsxXSYmYVtpKzFdPD0xOTEpe2krPTI7Y29udGludWV9aWYoYVtpXT09PTIyNCYmMTYwPD1hW2krMV0mJmFbaSsxXTw9MTkxJiYxMjg8PWFbaSsyXSYmYVtpKzJdPD0xOTF8fCgyMjU8PWFbaV0mJmFbaV08PTIzNnx8YVtpXT09PTIzOHx8YVtpXT09PTIzOSkmJjEyODw9YVtpKzFdJiZhW2krMV08PTE5MSYmMTI4PD1hW2krMl0mJmFbaSsyXTw9MTkxfHxhW2ldPT09MjM3JiYxMjg8PWFbaSsxXSYmYVtpKzFdPD0xNTkmJjEyODw9YVtpKzJdJiZhW2krMl08PTE5MSl7aSs9Mztjb250aW51ZX1pZihhW2ldPT09MjQwJiYxNDQ8PWFbaSsxXSYmYVtpKzFdPD0xOTEmJjEyODw9YVtpKzJdJiZhW2krMl08PTE5MSYmMTI4PD1hW2krM10mJmFbaSszXTw9MTkxfHwyNDE8PWFbaV0mJmFbaV08PTI0MyYmMTI4PD1hW2krMV0mJmFbaSsxXTw9MTkxJiYxMjg8PWFbaSsyXSYmYVtpKzJdPD0xOTEmJjEyODw9YVtpKzNdJiZhW2krM108PTE5MXx8YVtpXT09PTI0NCYmMTI4PD1hW2krMV0mJmFbaSsxXTw9MTQzJiYxMjg8PWFbaSsyXSYmYVtpKzJdPD0xOTEmJjEyODw9YVtpKzNdJiZhW2krM108PTE5MSl7aSs9NDtjb250aW51ZX1yZXR1cm4hMX1yZXR1cm4hMH0sclR0PXQ9PntsZXQgZT0vW15BLVowLTkrXC89XS9pLGE9dC5sZW5ndGg7aWYoIWF8fGElNCE9PTB8fGUudGVzdCh0KSlyZXR1cm4hMTtsZXQgaT10LmluZGV4T2YoIj0iKTtyZXR1cm4gaT09PS0xfHxpPT09YS0xfHxpPT09YS0yJiZ0W2EtMV09PT0iPSJ9fSk7dmFyIEFoLHp0ZT1iKCgpPT57QWg9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5wcm90b2NvbD10aGlzLl9wcm90b2NvbFJlZ2V4KGUpLHRoaXMucHJvdG9jb2x8fChlPWBodHRwczovLyR7ZX1gKSx0aGlzLm5vZGVQYXJzZWRVcmw9bmV3IFVSTChlKSx0aGlzLnBvcnQ9dGhpcy5ub2RlUGFyc2VkVXJsLnBvcnQ7bGV0IGE9dGhpcy5fZG9tYWluUmVnZXgoZS5yZXBsYWNlKHRoaXMubm9kZVBhcnNlZFVybC5wYXRobmFtZSwiIikpO3RoaXMuZnVsbE5hbWU9IiI7Zm9yKGxldCBpPTE7aTw9NTtpKyspaWYoYVtpLTFdKXtsZXQgcj1hW2ktMV07dGhpc1sibGV2ZWwiK2kudG9TdHJpbmcoKV09cix0aGlzLmZ1bGxOYW1lPT09IiI/dGhpcy5mdWxsTmFtZT1yOnRoaXMuZnVsbE5hbWU9cisiLiIrdGhpcy5mdWxsTmFtZX1lbHNlIHRoaXNbImxldmVsIitpLnRvU3RyaW5nKCldPXZvaWQgMDt0aGlzLnpvbmVOYW1lPXRoaXMubGV2ZWwyKyIuIit0aGlzLmxldmVsMSx0aGlzLnRvcExldmVsPXRoaXMubGV2ZWwxLHRoaXMuZG9tYWluTmFtZT10aGlzLmxldmVsMix0aGlzLnN1YkRvbWFpbj10aGlzLmxldmVsM31fZG9tYWluUmVnZXgoZSl7bGV0IGk9LyhbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9JC8uZXhlYyhlKTtyZXR1cm4gaS5yZXZlcnNlKCksaS5wb3AoKSxpLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gcyE9PSIifSl9X3Byb3RvY29sUmVnZXgoZSl7bGV0IGk9L14oW2EtekEtWjAtOV0qKTpcL1wvLy5leGVjKGUpO2lmKGkpcmV0dXJuIGlbMV19X3BvcnRSZWdleChlKXtsZXQgaT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWMoZSk7aWYoaSlyZXR1cm4gaVsxXX19fSk7dmFyIERoLHNUdCxrdGUsU3RlPWIoKCk9PntwMygpO0RoPWNsYXNze2NvbnN0cnVjdG9yKGUsYSl7bGV0IGk9c1R0KGUpO3RoaXMuaG9zdD1pWzFdLHRoaXMudXNlcj1pWzJdLHRoaXMucmVwbz1pWzNdLHRoaXMuYWNjZXNzVG9rZW49YSx0aGlzLnNzaFVybD1rdGUodGhpcy5ob3N0LHRoaXMudXNlcix0aGlzLnJlcG8sdGhpcy5hY2Nlc3NUb2tlbiwic3NoIiksdGhpcy5odHRwc1VybD1rdGUodGhpcy5ob3N0LHRoaXMudXNlcix0aGlzLnJlcG8sdGhpcy5hY2Nlc3NUb2tlbiwiaHR0cHMiKX19LHNUdD1mdW5jdGlvbih0KXtyZXR1cm4vKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvfFw6KShbYS16QS1aMC05XC1fXC5dKikoPzpcLykoW2EtekEtWjAtOVwtX1wuXSopKD86XC5naXQpLy5leGVjKHQpfSxrdGU9ZnVuY3Rpb24odCxlLGEsaT0iIixyKXtsZXQgcztzd2l0Y2goaSE9PSIiJiYoaT1pKyJAIikscil7Y2FzZSJodHRwcyI6cz0iaHR0cHM6Ly8iK2krdCsiLyIrZSsiLyIrYSsiLmdpdCI7YnJlYWs7Y2FzZSJzc2giOnM9ImdpdEAiK3QrIjoiK2UrIi8iK2ErIi5naXQiO2JyZWFrO2RlZmF1bHQ6Y29uc29sZS5lcnJvcigiTGluayBUeXBlICIrcisiIG5vdCBrbm93biIpO2JyZWFrfXJldHVybiBzfX0pO3ZhciBrMj17fTtHZShrMix7QmFzZTY0OigpPT5MaCxEb21haW46KCk9PkFoLEdpdFJlcG86KCk9PkRoLGJhc2U2NDooKT0+aDMsY3JlYXRlOigpPT5DaCxkb2NrZXI6KCk9Pl9oLGluZGVudDooKT0+Sm8sbm9ybWFsaXplOigpPT5UaCx0eXBlOigpPT4kaH0pO3ZhciB1Mz1iKCgpPT57YnRlKCk7dnRlKCk7eXRlKCk7d3RlKCk7TXRlKCk7X0MoKTt6dGUoKTtTdGUoKX0pO3ZhciBxQz1wdCgoaDYsYjMpPT57dmFyIG5UdD0yMDAsQ3RlPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIixfdGU9OTAwNzE5OTI1NDc0MDk5MSxUQz0iW29iamVjdCBBcmd1bWVudHNdIixvVHQ9IltvYmplY3QgQXJyYXldIixUdGU9IltvYmplY3QgQm9vbGVhbl0iLEx0ZT0iW29iamVjdCBEYXRlXSIsbFR0PSJbb2JqZWN0IEVycm9yXSIsTEM9IltvYmplY3QgRnVuY3Rpb25dIiwkdGU9IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIixFaD0iW29iamVjdCBNYXBdIixBdGU9IltvYmplY3QgTnVtYmVyXSIsJEM9IltvYmplY3QgT2JqZWN0XSIsRHRlPSJbb2JqZWN0IFByb21pc2VdIixFdGU9IltvYmplY3QgUmVnRXhwXSIsUGg9IltvYmplY3QgU2V0XSIsUHRlPSJbb2JqZWN0IFN0cmluZ10iLEl0ZT0iW29iamVjdCBTeW1ib2xdIixBQz0iW29iamVjdCBXZWFrTWFwXSIsTnRlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsSWg9IltvYmplY3QgRGF0YVZpZXddIixGdGU9IltvYmplY3QgRmxvYXQzMkFycmF5XSIsT3RlPSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iLFJ0ZT0iW29iamVjdCBJbnQ4QXJyYXldIixCdGU9IltvYmplY3QgSW50MTZBcnJheV0iLEh0ZT0iW29iamVjdCBJbnQzMkFycmF5XSIscXRlPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixWdGU9IltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIixqdGU9IltvYmplY3QgVWludDE2QXJyYXldIixVdGU9IltvYmplY3QgVWludDMyQXJyYXldIixjVHQ9L1tcXF4kLiorPygpW1xde318XS9nLGRUdD0vXHcqJC8scFR0PS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLGhUdD0vXig/OjB8WzEtOV1cZCopJC8sdTE9e307dTFbVENdPXUxW29UdF09dTFbTnRlXT11MVtJaF09dTFbVHRlXT11MVtMdGVdPXUxW0Z0ZV09dTFbT3RlXT11MVtSdGVdPXUxW0J0ZV09dTFbSHRlXT11MVtFaF09dTFbQXRlXT11MVskQ109dTFbRXRlXT11MVtQaF09dTFbUHRlXT11MVtJdGVdPXUxW3F0ZV09dTFbVnRlXT11MVtqdGVdPXUxW1V0ZV09ITAsdTFbbFR0XT11MVtMQ109dTFbQUNdPSExO3ZhciB1VHQ9dHlwZW9mIGdsb2JhbD09Im9iamVjdCImJmdsb2JhbCYmZ2xvYmFsLk9iamVjdD09PU9iamVjdCYmZ2xvYmFsLGZUdD10eXBlb2Ygc2VsZj09Im9iamVjdCImJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLGRzPXVUdHx8ZlR0fHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLFd0ZT10eXBlb2YgaDY9PSJvYmplY3QiJiZoNiYmIWg2Lm5vZGVUeXBlJiZoNixHdGU9V3RlJiZ0eXBlb2YgYjM9PSJvYmplY3QiJiZiMyYmIWIzLm5vZGVUeXBlJiZiMyxtVHQ9R3RlJiZHdGUuZXhwb3J0cz09PVd0ZTtmdW5jdGlvbiBnVHQodCxlKXtyZXR1cm4gdC5zZXQoZVswXSxlWzFdKSx0fWZ1bmN0aW9uIGJUdCh0LGUpe3JldHVybiB0LmFkZChlKSx0fWZ1bmN0aW9uIHZUdCh0LGUpe2Zvcih2YXIgYT0tMSxpPXQ/dC5sZW5ndGg6MDsrK2E8aSYmZSh0W2FdLGEsdCkhPT0hMTspO3JldHVybiB0fWZ1bmN0aW9uIHlUdCh0LGUpe2Zvcih2YXIgYT0tMSxpPWUubGVuZ3RoLHI9dC5sZW5ndGg7KythPGk7KXRbcithXT1lW2FdO3JldHVybiB0fWZ1bmN0aW9uIFl0ZSh0LGUsYSxpKXt2YXIgcj0tMSxzPXQ/dC5sZW5ndGg6MDtmb3IoaSYmcyYmKGE9dFsrK3JdKTsrK3I8czspYT1lKGEsdFtyXSxyLHQpO3JldHVybiBhfWZ1bmN0aW9uIHhUdCh0LGUpe2Zvcih2YXIgYT0tMSxpPUFycmF5KHQpOysrYTx0OylpW2FdPWUoYSk7cmV0dXJuIGl9ZnVuY3Rpb24gd1R0KHQsZSl7cmV0dXJuIHQ/LltlXX1mdW5jdGlvbiBadGUodCl7dmFyIGU9ITE7aWYodCE9bnVsbCYmdHlwZW9mIHQudG9TdHJpbmchPSJmdW5jdGlvbiIpdHJ5e2U9ISEodCsiIil9Y2F0Y2h7fXJldHVybiBlfWZ1bmN0aW9uIFh0ZSh0KXt2YXIgZT0tMSxhPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihpLHIpe2FbKytlXT1bcixpXX0pLGF9ZnVuY3Rpb24gREModCxlKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIHQoZShhKSl9fWZ1bmN0aW9uIEt0ZSh0KXt2YXIgZT0tMSxhPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihpKXthWysrZV09aX0pLGF9dmFyIE1UdD1BcnJheS5wcm90b3R5cGUselR0PUZ1bmN0aW9uLnByb3RvdHlwZSxOaD1PYmplY3QucHJvdG90eXBlLEVDPWRzWyJfX2NvcmUtanNfc2hhcmVkX18iXSxRdGU9KGZ1bmN0aW9uKCl7dmFyIHQ9L1teLl0rJC8uZXhlYyhFQyYmRUMua2V5cyYmRUMua2V5cy5JRV9QUk9UT3x8IiIpO3JldHVybiB0PyJTeW1ib2woc3JjKV8xLiIrdDoiIn0pKCksSnRlPXpUdC50b1N0cmluZywkbj1OaC5oYXNPd25Qcm9wZXJ0eSxGaD1OaC50b1N0cmluZyxrVHQ9UmVnRXhwKCJeIitKdGUuY2FsbCgkbikucmVwbGFjZShjVHQsIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIiksZTFlPW1UdD9kcy5CdWZmZXI6dm9pZCAwLHQxZT1kcy5TeW1ib2wsYTFlPWRzLlVpbnQ4QXJyYXksU1R0PURDKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpLENUdD1PYmplY3QuY3JlYXRlLF9UdD1OaC5wcm9wZXJ0eUlzRW51bWVyYWJsZSxUVHQ9TVR0LnNwbGljZSxpMWU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxMVHQ9ZTFlP2UxZS5pc0J1ZmZlcjp2b2lkIDAsJFR0PURDKE9iamVjdC5rZXlzLE9iamVjdCksUEM9ZzMoZHMsIkRhdGFWaWV3IiksZDY9ZzMoZHMsIk1hcCIpLElDPWczKGRzLCJQcm9taXNlIiksTkM9ZzMoZHMsIlNldCIpLEZDPWczKGRzLCJXZWFrTWFwIikscDY9ZzMoT2JqZWN0LCJjcmVhdGUiKSxBVHQ9YTAoUEMpLERUdD1hMChkNiksRVR0PWEwKElDKSxQVHQ9YTAoTkMpLElUdD1hMChGQykscjFlPXQxZT90MWUucHJvdG90eXBlOnZvaWQgMCxzMWU9cjFlP3IxZS52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBlMCh0KXt2YXIgZT0tMSxhPXQ/dC5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrZTxhOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1mdW5jdGlvbiBOVHQoKXt0aGlzLl9fZGF0YV9fPXA2P3A2KG51bGwpOnt9fWZ1bmN0aW9uIEZUdCh0KXtyZXR1cm4gdGhpcy5oYXModCkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW3RdfWZ1bmN0aW9uIE9UdCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKHA2KXt2YXIgYT1lW3RdO3JldHVybiBhPT09Q3RlP3ZvaWQgMDphfXJldHVybiAkbi5jYWxsKGUsdCk/ZVt0XTp2b2lkIDB9ZnVuY3Rpb24gUlR0KHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHA2P2VbdF0hPT12b2lkIDA6JG4uY2FsbChlLHQpfWZ1bmN0aW9uIEJUdCh0LGUpe3ZhciBhPXRoaXMuX19kYXRhX187cmV0dXJuIGFbdF09cDYmJmU9PT12b2lkIDA/Q3RlOmUsdGhpc31lMC5wcm90b3R5cGUuY2xlYXI9TlR0LGUwLnByb3RvdHlwZS5kZWxldGU9RlR0LGUwLnByb3RvdHlwZS5nZXQ9T1R0LGUwLnByb3RvdHlwZS5oYXM9UlR0LGUwLnByb3RvdHlwZS5zZXQ9QlR0O2Z1bmN0aW9uIHBzKHQpe3ZhciBlPS0xLGE9dD90Lmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7KytlPGE7KXt2YXIgaT10W2VdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIEhUdCgpe3RoaXMuX19kYXRhX189W119ZnVuY3Rpb24gcVR0KHQpe3ZhciBlPXRoaXMuX19kYXRhX18sYT1PaChlLHQpO2lmKGE8MClyZXR1cm4hMTt2YXIgaT1lLmxlbmd0aC0xO3JldHVybiBhPT1pP2UucG9wKCk6VFR0LmNhbGwoZSxhLDEpLCEwfWZ1bmN0aW9uIFZUdCh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLGE9T2goZSx0KTtyZXR1cm4gYTwwP3ZvaWQgMDplW2FdWzFdfWZ1bmN0aW9uIGpUdCh0KXtyZXR1cm4gT2godGhpcy5fX2RhdGFfXyx0KT4tMX1mdW5jdGlvbiBVVHQodCxlKXt2YXIgYT10aGlzLl9fZGF0YV9fLGk9T2goYSx0KTtyZXR1cm4gaTwwP2EucHVzaChbdCxlXSk6YVtpXVsxXT1lLHRoaXN9cHMucHJvdG90eXBlLmNsZWFyPUhUdCxwcy5wcm90b3R5cGUuZGVsZXRlPXFUdCxwcy5wcm90b3R5cGUuZ2V0PVZUdCxwcy5wcm90b3R5cGUuaGFzPWpUdCxwcy5wcm90b3R5cGUuc2V0PVVUdDtmdW5jdGlvbiBmMyh0KXt2YXIgZT0tMSxhPXQ/dC5sZW5ndGg6MDtmb3IodGhpcy5jbGVhcigpOysrZTxhOyl7dmFyIGk9dFtlXTt0aGlzLnNldChpWzBdLGlbMV0pfX1mdW5jdGlvbiBXVHQoKXt0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBlMCxtYXA6bmV3KGQ2fHxwcyksc3RyaW5nOm5ldyBlMH19ZnVuY3Rpb24gR1R0KHQpe3JldHVybiBSaCh0aGlzLHQpLmRlbGV0ZSh0KX1mdW5jdGlvbiBZVHQodCl7cmV0dXJuIFJoKHRoaXMsdCkuZ2V0KHQpfWZ1bmN0aW9uIFpUdCh0KXtyZXR1cm4gUmgodGhpcyx0KS5oYXModCl9ZnVuY3Rpb24gWFR0KHQsZSl7cmV0dXJuIFJoKHRoaXMsdCkuc2V0KHQsZSksdGhpc31mMy5wcm90b3R5cGUuY2xlYXI9V1R0LGYzLnByb3RvdHlwZS5kZWxldGU9R1R0LGYzLnByb3RvdHlwZS5nZXQ9WVR0LGYzLnByb3RvdHlwZS5oYXM9WlR0LGYzLnByb3RvdHlwZS5zZXQ9WFR0O2Z1bmN0aW9uIG0zKHQpe3RoaXMuX19kYXRhX189bmV3IHBzKHQpfWZ1bmN0aW9uIEtUdCgpe3RoaXMuX19kYXRhX189bmV3IHBzfWZ1bmN0aW9uIFFUdCh0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5kZWxldGUodCl9ZnVuY3Rpb24gSlR0KHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX1mdW5jdGlvbiBlTHQodCl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHQpfWZ1bmN0aW9uIHRMdCh0LGUpe3ZhciBhPXRoaXMuX19kYXRhX187aWYoYSBpbnN0YW5jZW9mIHBzKXt2YXIgaT1hLl9fZGF0YV9fO2lmKCFkNnx8aS5sZW5ndGg8blR0LTEpcmV0dXJuIGkucHVzaChbdCxlXSksdGhpczthPXRoaXMuX19kYXRhX189bmV3IGYzKGkpfXJldHVybiBhLnNldCh0LGUpLHRoaXN9bTMucHJvdG90eXBlLmNsZWFyPUtUdCxtMy5wcm90b3R5cGUuZGVsZXRlPVFUdCxtMy5wcm90b3R5cGUuZ2V0PUpUdCxtMy5wcm90b3R5cGUuaGFzPWVMdCxtMy5wcm90b3R5cGUuc2V0PXRMdDtmdW5jdGlvbiBhTHQodCxlKXt2YXIgYT1CQyh0KXx8Q0x0KHQpP3hUdCh0Lmxlbmd0aCxTdHJpbmcpOltdLGk9YS5sZW5ndGgscj0hIWk7Zm9yKHZhciBzIGluIHQpKGV8fCRuLmNhbGwodCxzKSkmJiEociYmKHM9PSJsZW5ndGgifHxNTHQocyxpKSkpJiZhLnB1c2gocyk7cmV0dXJuIGF9ZnVuY3Rpb24gbjFlKHQsZSxhKXt2YXIgaT10W2VdOyghKCRuLmNhbGwodCxlKSYmZDFlKGksYSkpfHxhPT09dm9pZCAwJiYhKGUgaW4gdCkpJiYodFtlXT1hKX1mdW5jdGlvbiBPaCh0LGUpe2Zvcih2YXIgYT10Lmxlbmd0aDthLS07KWlmKGQxZSh0W2FdWzBdLGUpKXJldHVybiBhO3JldHVybi0xfWZ1bmN0aW9uIGlMdCh0LGUpe3JldHVybiB0JiZvMWUoZSxIQyhlKSx0KX1mdW5jdGlvbiBPQyh0LGUsYSxpLHIscyxuKXt2YXIgbztpZihpJiYobz1zP2kodCxyLHMsbik6aSh0KSksbyE9PXZvaWQgMClyZXR1cm4gbztpZighQmgodCkpcmV0dXJuIHQ7dmFyIGQ9QkModCk7aWYoZCl7aWYobz15THQodCksIWUpcmV0dXJuIGdMdCh0LG8pfWVsc2V7dmFyIGM9dDAodCkscD1jPT1MQ3x8Yz09JHRlO2lmKFRMdCh0KSlyZXR1cm4gY0x0KHQsZSk7aWYoYz09JEN8fGM9PVRDfHxwJiYhcyl7aWYoWnRlKHQpKXJldHVybiBzP3Q6e307aWYobz14THQocD97fTp0KSwhZSlyZXR1cm4gYkx0KHQsaUx0KG8sdCkpfWVsc2V7aWYoIXUxW2NdKXJldHVybiBzP3Q6e307bz13THQodCxjLE9DLGUpfX1ufHwobj1uZXcgbTMpO3ZhciBsPW4uZ2V0KHQpO2lmKGwpcmV0dXJuIGw7aWYobi5zZXQodCxvKSwhZCl2YXIgZj1hP3ZMdCh0KTpIQyh0KTtyZXR1cm4gdlR0KGZ8fHQsZnVuY3Rpb24oZyx5KXtmJiYoeT1nLGc9dFt5XSksbjFlKG8seSxPQyhnLGUsYSxpLHksdCxuKSl9KSxvfWZ1bmN0aW9uIHJMdCh0KXtyZXR1cm4gQmgodCk/Q1R0KHQpOnt9fWZ1bmN0aW9uIHNMdCh0LGUsYSl7dmFyIGk9ZSh0KTtyZXR1cm4gQkModCk/aTp5VHQoaSxhKHQpKX1mdW5jdGlvbiBuTHQodCl7cmV0dXJuIEZoLmNhbGwodCl9ZnVuY3Rpb24gb0x0KHQpe2lmKCFCaCh0KXx8a0x0KHQpKXJldHVybiExO3ZhciBlPWgxZSh0KXx8WnRlKHQpP2tUdDpwVHQ7cmV0dXJuIGUudGVzdChhMCh0KSl9ZnVuY3Rpb24gbEx0KHQpe2lmKCFjMWUodCkpcmV0dXJuICRUdCh0KTt2YXIgZT1bXTtmb3IodmFyIGEgaW4gT2JqZWN0KHQpKSRuLmNhbGwodCxhKSYmYSE9ImNvbnN0cnVjdG9yIiYmZS5wdXNoKGEpO3JldHVybiBlfWZ1bmN0aW9uIGNMdCh0LGUpe2lmKGUpcmV0dXJuIHQuc2xpY2UoKTt2YXIgYT1uZXcgdC5jb25zdHJ1Y3Rvcih0Lmxlbmd0aCk7cmV0dXJuIHQuY29weShhKSxhfWZ1bmN0aW9uIFJDKHQpe3ZhciBlPW5ldyB0LmNvbnN0cnVjdG9yKHQuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBhMWUoZSkuc2V0KG5ldyBhMWUodCkpLGV9ZnVuY3Rpb24gZEx0KHQsZSl7dmFyIGE9ZT9SQyh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKGEsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCl9ZnVuY3Rpb24gcEx0KHQsZSxhKXt2YXIgaT1lP2EoWHRlKHQpLCEwKTpYdGUodCk7cmV0dXJuIFl0ZShpLGdUdCxuZXcgdC5jb25zdHJ1Y3Rvcil9ZnVuY3Rpb24gaEx0KHQpe3ZhciBlPW5ldyB0LmNvbnN0cnVjdG9yKHQuc291cmNlLGRUdC5leGVjKHQpKTtyZXR1cm4gZS5sYXN0SW5kZXg9dC5sYXN0SW5kZXgsZX1mdW5jdGlvbiB1THQodCxlLGEpe3ZhciBpPWU/YShLdGUodCksITApOkt0ZSh0KTtyZXR1cm4gWXRlKGksYlR0LG5ldyB0LmNvbnN0cnVjdG9yKX1mdW5jdGlvbiBmTHQodCl7cmV0dXJuIHMxZT9PYmplY3QoczFlLmNhbGwodCkpOnt9fWZ1bmN0aW9uIG1MdCh0LGUpe3ZhciBhPWU/UkModC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihhLHQuYnl0ZU9mZnNldCx0Lmxlbmd0aCl9ZnVuY3Rpb24gZ0x0KHQsZSl7dmFyIGE9LTEsaT10Lmxlbmd0aDtmb3IoZXx8KGU9QXJyYXkoaSkpOysrYTxpOyllW2FdPXRbYV07cmV0dXJuIGV9ZnVuY3Rpb24gbzFlKHQsZSxhLGkpe2F8fChhPXt9KTtmb3IodmFyIHI9LTEscz1lLmxlbmd0aDsrK3I8czspe3ZhciBuPWVbcl0sbz1pP2koYVtuXSx0W25dLG4sYSx0KTp2b2lkIDA7bjFlKGEsbixvPT09dm9pZCAwP3Rbbl06byl9cmV0dXJuIGF9ZnVuY3Rpb24gYkx0KHQsZSl7cmV0dXJuIG8xZSh0LGwxZSh0KSxlKX1mdW5jdGlvbiB2THQodCl7cmV0dXJuIHNMdCh0LEhDLGwxZSl9ZnVuY3Rpb24gUmgodCxlKXt2YXIgYT10Ll9fZGF0YV9fO3JldHVybiB6THQoZSk/YVt0eXBlb2YgZT09InN0cmluZyI/InN0cmluZyI6Imhhc2giXTphLm1hcH1mdW5jdGlvbiBnMyh0LGUpe3ZhciBhPXdUdCh0LGUpO3JldHVybiBvTHQoYSk/YTp2b2lkIDB9dmFyIGwxZT1pMWU/REMoaTFlLE9iamVjdCk6QUx0LHQwPW5MdDsoUEMmJnQwKG5ldyBQQyhuZXcgQXJyYXlCdWZmZXIoMSkpKSE9SWh8fGQ2JiZ0MChuZXcgZDYpIT1FaHx8SUMmJnQwKElDLnJlc29sdmUoKSkhPUR0ZXx8TkMmJnQwKG5ldyBOQykhPVBofHxGQyYmdDAobmV3IEZDKSE9QUMpJiYodDA9ZnVuY3Rpb24odCl7dmFyIGU9RmguY2FsbCh0KSxhPWU9PSRDP3QuY29uc3RydWN0b3I6dm9pZCAwLGk9YT9hMChhKTp2b2lkIDA7aWYoaSlzd2l0Y2goaSl7Y2FzZSBBVHQ6cmV0dXJuIEloO2Nhc2UgRFR0OnJldHVybiBFaDtjYXNlIEVUdDpyZXR1cm4gRHRlO2Nhc2UgUFR0OnJldHVybiBQaDtjYXNlIElUdDpyZXR1cm4gQUN9cmV0dXJuIGV9KTtmdW5jdGlvbiB5THQodCl7dmFyIGU9dC5sZW5ndGgsYT10LmNvbnN0cnVjdG9yKGUpO3JldHVybiBlJiZ0eXBlb2YgdFswXT09InN0cmluZyImJiRuLmNhbGwodCwiaW5kZXgiKSYmKGEuaW5kZXg9dC5pbmRleCxhLmlucHV0PXQuaW5wdXQpLGF9ZnVuY3Rpb24geEx0KHQpe3JldHVybiB0eXBlb2YgdC5jb25zdHJ1Y3Rvcj09ImZ1bmN0aW9uIiYmIWMxZSh0KT9yTHQoU1R0KHQpKTp7fX1mdW5jdGlvbiB3THQodCxlLGEsaSl7dmFyIHI9dC5jb25zdHJ1Y3Rvcjtzd2l0Y2goZSl7Y2FzZSBOdGU6cmV0dXJuIFJDKHQpO2Nhc2UgVHRlOmNhc2UgTHRlOnJldHVybiBuZXcgcigrdCk7Y2FzZSBJaDpyZXR1cm4gZEx0KHQsaSk7Y2FzZSBGdGU6Y2FzZSBPdGU6Y2FzZSBSdGU6Y2FzZSBCdGU6Y2FzZSBIdGU6Y2FzZSBxdGU6Y2FzZSBWdGU6Y2FzZSBqdGU6Y2FzZSBVdGU6cmV0dXJuIG1MdCh0LGkpO2Nhc2UgRWg6cmV0dXJuIHBMdCh0LGksYSk7Y2FzZSBBdGU6Y2FzZSBQdGU6cmV0dXJuIG5ldyByKHQpO2Nhc2UgRXRlOnJldHVybiBoTHQodCk7Y2FzZSBQaDpyZXR1cm4gdUx0KHQsaSxhKTtjYXNlIEl0ZTpyZXR1cm4gZkx0KHQpfX1mdW5jdGlvbiBNTHQodCxlKXtyZXR1cm4gZT1lPz9fdGUsISFlJiYodHlwZW9mIHQ9PSJudW1iZXIifHxoVHQudGVzdCh0KSkmJnQ+LTEmJnQlMT09MCYmdDxlfWZ1bmN0aW9uIHpMdCh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4gZT09InN0cmluZyJ8fGU9PSJudW1iZXIifHxlPT0ic3ltYm9sInx8ZT09ImJvb2xlYW4iP3QhPT0iX19wcm90b19fIjp0PT09bnVsbH1mdW5jdGlvbiBrTHQodCl7cmV0dXJuISFRdGUmJlF0ZSBpbiB0fWZ1bmN0aW9uIGMxZSh0KXt2YXIgZT10JiZ0LmNvbnN0cnVjdG9yLGE9dHlwZW9mIGU9PSJmdW5jdGlvbiImJmUucHJvdG90eXBlfHxOaDtyZXR1cm4gdD09PWF9ZnVuY3Rpb24gYTAodCl7aWYodCE9bnVsbCl7dHJ5e3JldHVybiBKdGUuY2FsbCh0KX1jYXRjaHt9dHJ5e3JldHVybiB0KyIifWNhdGNoe319cmV0dXJuIiJ9ZnVuY3Rpb24gU0x0KHQpe3JldHVybiBPQyh0LCEwLCEwKX1mdW5jdGlvbiBkMWUodCxlKXtyZXR1cm4gdD09PWV8fHQhPT10JiZlIT09ZX1mdW5jdGlvbiBDTHQodCl7cmV0dXJuIF9MdCh0KSYmJG4uY2FsbCh0LCJjYWxsZWUiKSYmKCFfVHQuY2FsbCh0LCJjYWxsZWUiKXx8RmguY2FsbCh0KT09VEMpfXZhciBCQz1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHAxZSh0KXtyZXR1cm4gdCE9bnVsbCYmTEx0KHQubGVuZ3RoKSYmIWgxZSh0KX1mdW5jdGlvbiBfTHQodCl7cmV0dXJuICRMdCh0KSYmcDFlKHQpfXZhciBUTHQ9TFR0fHxETHQ7ZnVuY3Rpb24gaDFlKHQpe3ZhciBlPUJoKHQpP0ZoLmNhbGwodCk6IiI7cmV0dXJuIGU9PUxDfHxlPT0kdGV9ZnVuY3Rpb24gTEx0KHQpe3JldHVybiB0eXBlb2YgdD09Im51bWJlciImJnQ+LTEmJnQlMT09MCYmdDw9X3RlfWZ1bmN0aW9uIEJoKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiEhdCYmKGU9PSJvYmplY3QifHxlPT0iZnVuY3Rpb24iKX1mdW5jdGlvbiAkTHQodCl7cmV0dXJuISF0JiZ0eXBlb2YgdD09Im9iamVjdCJ9ZnVuY3Rpb24gSEModCl7cmV0dXJuIHAxZSh0KT9hTHQodCk6bEx0KHQpfWZ1bmN0aW9uIEFMdCgpe3JldHVybltdfWZ1bmN0aW9uIERMdCgpe3JldHVybiExfWIzLmV4cG9ydHM9U0x0fSk7dmFyIFZDPXB0KChYazEsdTFlKT0+eyJ1c2Ugc3RyaWN0Ijt1MWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2V8fChlPXt9KSx0eXBlb2YgZT09ImZ1bmN0aW9uIiYmKGU9e2NtcDplfSk7dmFyIGE9dHlwZW9mIGUuY3ljbGVzPT0iYm9vbGVhbiI/ZS5jeWNsZXM6ITEsaT1lLmNtcCYmKGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obyxkKXt2YXIgYz17a2V5Om8sdmFsdWU6bltvXX0scD17a2V5OmQsdmFsdWU6bltkXX07cmV0dXJuIHMoYyxwKX19fSkoZS5jbXApLHI9W107cmV0dXJuKGZ1bmN0aW9uIHMobil7aWYobiYmbi50b0pTT04mJnR5cGVvZiBuLnRvSlNPTj09ImZ1bmN0aW9uIiYmKG49bi50b0pTT04oKSksbiE9PXZvaWQgMCl7aWYodHlwZW9mIG49PSJudW1iZXIiKXJldHVybiBpc0Zpbml0ZShuKT8iIituOiJudWxsIjtpZih0eXBlb2YgbiE9Im9iamVjdCIpcmV0dXJuIEpTT04uc3RyaW5naWZ5KG4pO3ZhciBvLGQ7aWYoQXJyYXkuaXNBcnJheShuKSl7Zm9yKGQ9IlsiLG89MDtvPG4ubGVuZ3RoO28rKylvJiYoZCs9IiwiKSxkKz1zKG5bb10pfHwibnVsbCI7cmV0dXJuIGQrIl0ifWlmKG49PT1udWxsKXJldHVybiJudWxsIjtpZihyLmluZGV4T2YobikhPT0tMSl7aWYoYSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkoIl9fY3ljbGVfXyIpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkNvbnZlcnRpbmcgY2lyY3VsYXIgc3RydWN0dXJlIHRvIEpTT04iKX12YXIgYz1yLnB1c2gobiktMSxwPU9iamVjdC5rZXlzKG4pLnNvcnQoaSYmaShuKSk7Zm9yKGQ9IiIsbz0wO288cC5sZW5ndGg7bysrKXt2YXIgbD1wW29dLGY9cyhuW2xdKTtmJiYoZCYmKGQrPSIsIiksZCs9SlNPTi5zdHJpbmdpZnkobCkrIjoiK2YpfXJldHVybiByLnNwbGljZShjLDEpLCJ7IitkKyJ9In19KSh0KX19KTt2YXIgSGgsZjFlLHFoLGpDPWIoKCk9PntkMygpO3UzKCk7SGg9ajEocUMoKSwxKSxmMWU9ajEoVkMoKSwxKSxxaD1mMWUuZGVmYXVsdH0pO2Z1bmN0aW9uIFBMdCh0KXtyZXR1cm4gdHlwZW9mIEJ1ZmZlcjwidSI/QnVmZmVyLmZyb20odCkudG9TdHJpbmcoImJhc2U2NCIpOmJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi50KSl9ZnVuY3Rpb24gSUx0KHQpe2lmKHR5cGVvZiBCdWZmZXI8InUiKXtsZXQgZT1CdWZmZXIuZnJvbSh0LCJiYXNlNjQiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCl9cmV0dXJuIG5ldyBVaW50OEFycmF5KEFycmF5LmZyb20oYXRvYih0KSkubWFwKGU9PmUuY2hhckNvZGVBdCgwKSkpfWZ1bmN0aW9uIFdDKHQsZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQsVmgsZSl9ZnVuY3Rpb24gR0ModCl7cmV0dXJuIEpTT04ucGFyc2UodCxtMWUpfWZ1bmN0aW9uIE5MdCh0KXtyZXR1cm4gYjFlKHQpJiZ0LnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJlVDKHQuZGF0YSl9ZnVuY3Rpb24gRkx0KHQpe3JldHVybiBiMWUodCkmJnQudHlwZT09PSJCdWZmZXIiJiYoZzFlKHQuZGF0YSl8fFVDKHQuZGF0YSkpfHx0IGluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBnMWUodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gVUModCl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIn1mdW5jdGlvbiBiMWUodCl7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGx9dmFyIFZoLG0xZSx2MWU9YigoKT0+e2pDKCk7Vmg9KHQsZSk9PntpZihGTHQoZSkpe2xldCBhO2lmKCJkYXRhImluIGUmJmcxZShlLmRhdGEpKWE9bmV3IFVpbnQ4QXJyYXkoZS5kYXRhKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KWE9ZTtlbHNlIHJldHVybiBlO3JldHVybnt0eXBlOiJFbmNvZGVkQnVmZmVyIixkYXRhOiJiYXNlNjQ6IitQTHQoYSl9fXJldHVybiBlfSxtMWU9KHQsZSk9PntpZihOTHQoZSkmJlVDKGUuZGF0YSkmJmUuZGF0YS5zdGFydHNXaXRoKCJiYXNlNjQ6Iikpe2xldCBhPWUuZGF0YS5zbGljZSg3KTtyZXR1cm4gSUx0KGEpfXJldHVybiBlfX0pO3ZhciBTMT17fTtHZShTMSx7U21hcnRqc29uOigpPT5aQyxkZWVwRXF1YWxKc29uTFN0cmluZ3M6KCk9PlVMdCxkZWVwRXF1YWxPYmplY3RzOigpPT55MWUsZm9sZERlYzooKT0+akx0LHBhcnNlOigpPT5qaCxwYXJzZUJhc2U2NDooKT0+Vkx0LHBhcnNlSnNvbkw6KCk9PllDLHN0YWJsZU9uZVdheVN0cmluZ2lmeTooKT0+Qkx0LHN0cmluZ2lmeTooKT0+aTAsc3RyaW5naWZ5QmFzZTY0OigpPT5xTHQsc3RyaW5naWZ5SnNvbkw6KCk9PlJMdCxzdHJpbmdpZnlQcmV0dHk6KCk9PkhMdH0pO3ZhciBqaCxZQyxSTHQsQkx0LGkwLEhMdCxxTHQsVkx0LFpDLGpMdCx5MWUsVUx0LHYzPWIoKCk9PntqQygpO3YxZSgpO2poPUdDLFlDPXQ9PnQuc3BsaXQoYApgKS5yZWR1Y2UoKGkscik9PntsZXQgcz1yLnRyaW0oKTtyZXR1cm4gcy5sZW5ndGg+MCYmaS5wdXNoKGpoKHMpKSxpfSxbXSksUkx0PXQ9PnQubWFwKGU9PmkwKGUpKS5qb2luKGAKYCksQkx0PSh0LGUsYT17fSk9PntsZXQgaT1uZXcgV2Vha1NldCxyPW89PntpZihvPT09bnVsbHx8dHlwZW9mIG8hPSJvYmplY3QiKXJldHVybiBvO2xldCBkPVZoKCIiLG8pO2lmKGQmJmQudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmdHlwZW9mIGQuZGF0YT09InN0cmluZyIpcmV0dXJuIGQ7aWYoaS5oYXMobykpcmV0dXJuIl9fY3ljbGVfXyI7aWYoaS5hZGQobyksQXJyYXkuaXNBcnJheShvKSlyZXR1cm4gby5tYXAocD0+cihwKSk7bGV0IGM9e307Zm9yKGxldCBwIG9mIE9iamVjdC5rZXlzKG8pKXRyeXtjW3BdPXIob1twXSl9Y2F0Y2h7Y1twXT0iX191bnNlcmlhbGl6YWJsZV9fIn1yZXR1cm4gY30scz1yKHQpLG49ey4uLmEsY3ljbGVzOiEwfTtpZihlJiYhbi5jbXApe2xldCBvPW5ldyBNYXA7ZS5mb3JFYWNoKChkLGMpPT5vLnNldChkLGMpKSxuLmNtcD0oZCxjKT0+e2xldCBwPW8uaGFzKGQua2V5KT9vLmdldChkLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGw9by5oYXMoYy5rZXkpP28uZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIHAhPT1sP3AtbDpkLmtleTxjLmtleT8tMTpkLmtleT5jLmtleT8xOjB9fXJldHVybiBxaChzLG4pfSxpMD0odCxlLGE9e30pPT57bGV0IGk9V0ModCk7dD1KU09OLnBhcnNlKGkpO2xldCByPXsuLi5hfTtpZihlJiYhci5jbXApe2xldCBuPW5ldyBNYXA7ZS5mb3JFYWNoKChvLGQpPT5uLnNldChvLGQpKSxyLmNtcD0obyxkKT0+e2xldCBjPW4uaGFzKG8ua2V5KT9uLmdldChvLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHA9bi5oYXMoZC5rZXkpP24uZ2V0KGQua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGMhPT1wP2MtcDpvLmtleTxkLmtleT8tMTpvLmtleT5kLmtleT8xOjB9fXJldHVybiBxaCh0LHIpfSxITHQ9dD0+e2xldCBlPWkwKHQpLGE9SlNPTi5wYXJzZShlKTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYSxudWxsLDIpfSxxTHQ9KC4uLnQpPT57bGV0IGU9aTAoLi4udCk7cmV0dXJuIGsyLmJhc2U2NC5lbmNvZGVVcmkoZSl9LFZMdD10PT57bGV0IGU9azIuYmFzZTY0LGk9KGUuZGVjb2RlVXJpfHxlLmRlY29kZSkodCk7cmV0dXJuIGpoKGkpfSxaQz1jbGFzcyB0e3N0YXRpYyBlbmZvbGRGcm9tT2JqZWN0KGUpe2xldCBhPW5ldyB0aGlzLGk9YS5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgciBpbiBlKWkuaW5kZXhPZihyKSE9PS0xJiYoYVtyXT1lW3JdKTtyZXR1cm4gYX1zdGF0aWMgZW5mb2xkRnJvbUpzb24oZSl7bGV0IGE9amgoZSk7cmV0dXJuIHRoaXMuZW5mb2xkRnJvbU9iamVjdChhKX1mb2xkVG9PYmplY3QoKXtsZXQgZT1uZXcgU2V0O3JldHVybiBlLmFkZCh0aGlzKSx0aGlzLmZvbGRUb09iamVjdEludGVybmFsKGUpfWZvbGRUb09iamVjdEludGVybmFsKGUpe2xldCBhPXt9LGk9cz0+e2lmKHMgaW5zdGFuY2VvZiB0KXtpZihlLmhhcyhzKSl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIGRldGVjdGVkIik7cmV0dXJuIGUuYWRkKHMpLHMuZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/cy5tYXAobj0+aShuKSk6SGguZGVmYXVsdChzKX0scj10aGlzLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBzIG9mIHIpe2xldCBuPXRoaXNbc107YVtzXT1pKG4pfXJldHVybiBhfWZvbGRUb0pzb24oKXtsZXQgZT10aGlzLmZvbGRUb09iamVjdCgpO3JldHVybiBpMChlKX19LGpMdD0oKT0+KHQsZSk9Pnt0LnNhdmVhYmxlUHJvcGVydGllc3x8KHQuc2F2ZWFibGVQcm9wZXJ0aWVzPVtdKSx0LnNhdmVhYmxlUHJvcGVydGllcy5wdXNoKGUpfSx5MWU9KHQsZSk9PntsZXQgYT1pMCh0KSxpPWkwKGUpO3JldHVybiBhPT09aX0sVUx0PSh0LGUpPT57bGV0IGE9WUModCksaT1ZQyhlKTtyZXR1cm4geTFlKGEsaSl9fSk7dmFyIGY2PXt9O0dlKGY2LHtkZWxldGVEQjooKT0+VDFlLG9wZW5EQjooKT0+XzFlLHVud3JhcDooKT0+dTYsd3JhcDooKT0+enJ9KTtmdW5jdGlvbiBXTHQoKXtyZXR1cm4geDFlfHwoeDFlPVtJREJEYXRhYmFzZSxJREJPYmplY3RTdG9yZSxJREJJbmRleCxJREJDdXJzb3IsSURCVHJhbnNhY3Rpb25dKX1mdW5jdGlvbiBHTHQoKXtyZXR1cm4gdzFlfHwodzFlPVtJREJDdXJzb3IucHJvdG90eXBlLmFkdmFuY2UsSURCQ3Vyc29yLnByb3RvdHlwZS5jb250aW51ZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlUHJpbWFyeUtleV0pfWZ1bmN0aW9uIFlMdCh0KXtsZXQgZT1uZXcgUHJvbWlzZSgoYSxpKT0+e2xldCByPSgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKCJzdWNjZXNzIixzKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixuKX0scz0oKT0+e2EoenIodC5yZXN1bHQpKSxyKCl9LG49KCk9PntpKHQuZXJyb3IpLHIoKX07dC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIixzKSx0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixuKX0pO3JldHVybiBVaC5zZXQoZSx0KSxlfWZ1bmN0aW9uIFpMdCh0KXtpZihLQy5oYXModCkpcmV0dXJuO2xldCBlPW5ldyBQcm9taXNlKChhLGkpPT57bGV0IHI9KCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixzKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixuKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixuKX0scz0oKT0+e2EoKSxyKCl9LG49KCk9PntpKHQuZXJyb3J8fG5ldyBET01FeGNlcHRpb24oIkFib3J0RXJyb3IiLCJBYm9ydEVycm9yIikpLHIoKX07dC5hZGRFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIscyksdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbiksdC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbil9KTtLQy5zZXQodCxlKX1mdW5jdGlvbiBNMWUodCl7SkM9dChKQyl9ZnVuY3Rpb24gWEx0KHQpe3JldHVybiBHTHQoKS5pbmNsdWRlcyh0KT9mdW5jdGlvbiguLi5lKXtyZXR1cm4gdC5hcHBseSh1Nih0aGlzKSxlKSx6cih0aGlzLnJlcXVlc3QpfTpmdW5jdGlvbiguLi5lKXtyZXR1cm4genIodC5hcHBseSh1Nih0aGlzKSxlKSl9fWZ1bmN0aW9uIEtMdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/WEx0KHQpOih0IGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24mJlpMdCh0KSxYQyh0LFdMdCgpKT9uZXcgUHJveHkodCxKQyk6dCl9ZnVuY3Rpb24genIodCl7aWYodCBpbnN0YW5jZW9mIElEQlJlcXVlc3QpcmV0dXJuIFlMdCh0KTtpZihRQy5oYXModCkpcmV0dXJuIFFDLmdldCh0KTtsZXQgZT1LTHQodCk7cmV0dXJuIGUhPT10JiYoUUMuc2V0KHQsZSksVWguc2V0KGUsdCkpLGV9ZnVuY3Rpb24gXzFlKHQsZSx7YmxvY2tlZDphLHVwZ3JhZGU6aSxibG9ja2luZzpyLHRlcm1pbmF0ZWQ6c309e30pe2xldCBuPWluZGV4ZWREQi5vcGVuKHQsZSksbz16cihuKTtyZXR1cm4gaSYmbi5hZGRFdmVudExpc3RlbmVyKCJ1cGdyYWRlbmVlZGVkIixkPT57aSh6cihuLnJlc3VsdCksZC5vbGRWZXJzaW9uLGQubmV3VmVyc2lvbix6cihuLnRyYW5zYWN0aW9uKSxkKX0pLGEmJm4uYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsZD0+YShkLm9sZFZlcnNpb24sZC5uZXdWZXJzaW9uLGQpKSxvLnRoZW4oZD0+e3MmJmQuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgpPT5zKCkpLHImJmQuYWRkRXZlbnRMaXN0ZW5lcigidmVyc2lvbmNoYW5nZSIsYz0+cihjLm9sZFZlcnNpb24sYy5uZXdWZXJzaW9uLGMpKX0pLmNhdGNoKCgpPT57fSksb31mdW5jdGlvbiBUMWUodCx7YmxvY2tlZDplfT17fSl7bGV0IGE9aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKHQpO3JldHVybiBlJiZhLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrZWQiLGk9PmUoaS5vbGRWZXJzaW9uLGkpKSx6cihhKS50aGVuKCgpPT57fSl9ZnVuY3Rpb24gejFlKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgSURCRGF0YWJhc2UmJiEoZSBpbiB0KSYmdHlwZW9mIGU9PSJzdHJpbmciKSlyZXR1cm47aWYoZV8uZ2V0KGUpKXJldHVybiBlXy5nZXQoZSk7bGV0IGE9ZS5yZXBsYWNlKC9Gcm9tSW5kZXgkLywiIiksaT1lIT09YSxyPUpMdC5pbmNsdWRlcyhhKTtpZighKGEgaW4oaT9JREJJbmRleDpJREJPYmplY3RTdG9yZSkucHJvdG90eXBlKXx8IShyfHxRTHQuaW5jbHVkZXMoYSkpKXJldHVybjtsZXQgcz1hc3luYyBmdW5jdGlvbihuLC4uLm8pe2xldCBkPXRoaXMudHJhbnNhY3Rpb24obixyPyJyZWFkd3JpdGUiOiJyZWFkb25seSIpLGM9ZC5zdG9yZTtyZXR1cm4gaSYmKGM9Yy5pbmRleChvLnNoaWZ0KCkpKSwoYXdhaXQgUHJvbWlzZS5hbGwoW2NbYV0oLi4ubyksciYmZC5kb25lXSkpWzBdfTtyZXR1cm4gZV8uc2V0KGUscyksc31hc3luYyBmdW5jdGlvbiphJHQoLi4udCl7bGV0IGU9dGhpcztpZihlIGluc3RhbmNlb2YgSURCQ3Vyc29yfHwoZT1hd2FpdCBlLm9wZW5DdXJzb3IoLi4udCkpLCFlKXJldHVybjtlPWU7bGV0IGE9bmV3IFByb3h5KGUsdCR0KTtmb3IoUzFlLnNldChhLGUpLFVoLnNldChhLHU2KGUpKTtlOyl5aWVsZCBhLGU9YXdhaXQodF8uZ2V0KGEpfHxlLmNvbnRpbnVlKCkpLHRfLmRlbGV0ZShhKX1mdW5jdGlvbiBDMWUodCxlKXtyZXR1cm4gZT09PVN5bWJvbC5hc3luY0l0ZXJhdG9yJiZYQyh0LFtJREJJbmRleCxJREJPYmplY3RTdG9yZSxJREJDdXJzb3JdKXx8ZT09PSJpdGVyYXRlIiYmWEModCxbSURCSW5kZXgsSURCT2JqZWN0U3RvcmVdKX12YXIgWEMseDFlLHcxZSxLQyxRQyxVaCxKQyx1NixRTHQsSkx0LGVfLGUkdCxrMWUsdF8sUzFlLHQkdCxMMWU9YigoKT0+e1hDPSh0LGUpPT5lLnNvbWUoYT0+dCBpbnN0YW5jZW9mIGEpO0tDPW5ldyBXZWFrTWFwLFFDPW5ldyBXZWFrTWFwLFVoPW5ldyBXZWFrTWFwO0pDPXtnZXQodCxlLGEpe2lmKHQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbil7aWYoZT09PSJkb25lIilyZXR1cm4gS0MuZ2V0KHQpO2lmKGU9PT0ic3RvcmUiKXJldHVybiBhLm9iamVjdFN0b3JlTmFtZXNbMV0/dm9pZCAwOmEub2JqZWN0U3RvcmUoYS5vYmplY3RTdG9yZU5hbWVzWzBdKX1yZXR1cm4genIodFtlXSl9LHNldCh0LGUsYSl7cmV0dXJuIHRbZV09YSwhMH0saGFzKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmKGU9PT0iZG9uZSJ8fGU9PT0ic3RvcmUiKT8hMDplIGluIHR9fTt1Nj10PT5VaC5nZXQodCk7UUx0PVsiZ2V0IiwiZ2V0S2V5IiwiZ2V0QWxsIiwiZ2V0QWxsS2V5cyIsImNvdW50Il0sSkx0PVsicHV0IiwiYWRkIiwiZGVsZXRlIiwiY2xlYXIiXSxlXz1uZXcgTWFwO00xZSh0PT4oey4uLnQsZ2V0OihlLGEsaSk9PnoxZShlLGEpfHx0LmdldChlLGEsaSksaGFzOihlLGEpPT4hIXoxZShlLGEpfHx0LmhhcyhlLGEpfSkpO2UkdD1bImNvbnRpbnVlIiwiY29udGludWVQcmltYXJ5S2V5IiwiYWR2YW5jZSJdLGsxZT17fSx0Xz1uZXcgV2Vha01hcCxTMWU9bmV3IFdlYWtNYXAsdCR0PXtnZXQodCxlKXtpZighZSR0LmluY2x1ZGVzKGUpKXJldHVybiB0W2VdO2xldCBhPWsxZVtlXTtyZXR1cm4gYXx8KGE9azFlW2VdPWZ1bmN0aW9uKC4uLmkpe3RfLnNldCh0aGlzLFMxZS5nZXQodGhpcylbZV0oLi4uaSkpfSksYX19O00xZSh0PT4oey4uLnQsZ2V0KGUsYSxpKXtyZXR1cm4gQzFlKGUsYSk/YSR0OnQuZ2V0KGUsYSxpKX0saGFzKGUsYSl7cmV0dXJuIEMxZShlLGEpfHx0LmhhcyhlLGEpfX0pKX0pO3ZhciBhXz1iKCgpPT57ZTYoKTtkMygpO3YzKCk7YzIoKTtBaSgpO0NjKCk7TDFlKCl9KTt2YXIgbTYsaV89YigoKT0+e2FfKCk7bTY9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5pbml0Q2FsbGVkPSExLHRoaXMucmVhZHlEZWZlcnJlZD1CZS5kZWZlcigpLHRoaXMub3B0aW9ucz1lfWFzeW5jIGluaXQoKXtpZih0aGlzLmluaXRDYWxsZWQpe2F3YWl0IHRoaXMucmVhZHlEZWZlcnJlZC5wcm9taXNlO3JldHVybn10aGlzLmluaXRDYWxsZWQ9ITA7bGV0IGU9bmV3IEZhLlNtYXJ0ZW52O2lmKCFlLmlzQnJvd3NlciYmIWdsb2JhbFRoaXMuaW5kZXhlZERCJiYoY29uc29sZS5sb2coImhleSIpLGNvbnNvbGUubG9nKGdsb2JhbFRoaXMuaW5kZXhlZERCKSxhd2FpdCBlLmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYi9hdXRvIiksIWdsb2JhbFRoaXMuaW5kZXhlZERCKSl7bGV0IGE9YXdhaXQgZS5nZXRTYWZlTm9kZU1vZHVsZSgiZmFrZS1pbmRleGVkZGIiKTtnbG9iYWxUaGlzLmluZGV4ZWREQj1uZXcgYS5JREJGYWN0b3J5fXRoaXMuZGI9YXdhaXQgZjYub3BlbkRCKHRoaXMub3B0aW9ucy5kYk5hbWUsMSx7dXBncmFkZTphPT57YS5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lKX19KSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfWFzeW5jIGdldChlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5nZXQodGhpcy5vcHRpb25zLnN0b3JlTmFtZSxlKX1hc3luYyBjaGVjayhlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksISFhd2FpdCB0aGlzLmdldChlKX1hc3luYyBzZXQoZSxhKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5wdXQodGhpcy5vcHRpb25zLnN0b3JlTmFtZSxhLGUpfWFzeW5jIGRlbGV0ZShlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5kZWxldGUodGhpcy5vcHRpb25zLnN0b3JlTmFtZSxlKX1hc3luYyBjbGVhcigpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmNsZWFyKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfWFzeW5jIGtleXMoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0KCksdGhpcy5kYi5nZXRBbGxLZXlzKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfX19KTt2YXIgcl8sQTFlPWIoKCk9PntpXygpO2FfKCk7cl89Y2xhc3N7Y29uc3RydWN0b3IoZT0iZGVmYXVsdCIpe3RoaXMud2Vic3RvcmU9bmV3IG02KHtkYk5hbWU6InRyU3RvcmUiLHN0b3JlTmFtZTpgdHJTdG9yZS0ke2V9YH0pfWJ1aWxkS2V5KGUpe3JldHVybiBTMS5zdHJpbmdpZnkoe21ldGhvZDplLm1ldGhvZCxyZXF1ZXN0OmUucmVxdWVzdH0pfWFzeW5jIHNldEJ5UmVxdWVzdChlKXtpZighZS5yZXNwb25zZSl0aHJvdyBuZXcgRXJyb3IoIllvdSBjYW5ub3Qgc3RvcmUgcmVxdWVzdHMgd2l0aG91dCBhIHJlc3BvbnNlIHByZXNlbnQiKTthd2FpdCB0aGlzLndlYnN0b3JlLnNldCh0aGlzLmJ1aWxkS2V5KGUpLGUpfWFzeW5jIGdldEJ5UmVxdWVzdChlKXtyZXR1cm4gYXdhaXQgdGhpcy53ZWJzdG9yZS5nZXQodGhpcy5idWlsZEtleShlKSl9fX0pO3ZhciBuYT17fTtHZShuYSx7VHlwZWRyZXF1ZXN0Q2FjaGU6KCk9PnJfLFdlYlN0b3JlOigpPT5tNn0pO3ZhciBnNj1iKCgpPT57QTFlKCk7aV8oKX0pO3ZhciBiNj1iKCgpPT57aHIoKTtkMygpO3YzKCk7YzIoKTtnNigpfSk7dmFyIHkzLEdoPWIoKCk9PntiNigpO3kzPWNsYXNze2NvbnN0cnVjdG9yKGU9IndlYnJlcXVlc3QtdjQiLGE9ImNhY2hlIil7dGhpcy53ZWJzdG9yZT1uZXcgbmEuV2ViU3RvcmUoe2RiTmFtZTplLHN0b3JlTmFtZTphfSksdGhpcy5pbml0UHJvbWlzZT10aGlzLmluaXQoKX1hc3luYyBpbml0KCl7fWdlbmVyYXRlQ2FjaGVLZXkoZSl7bGV0IGE9ZS51cmwsaT1lLm1ldGhvZDtyZXR1cm4gaT09PSJHRVQiP2E6YCR7aX06JHthfWB9YXN5bmMgc2V0KGUsYSl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLnNldChlLGEpfWFzeW5jIGdldChlKXthd2FpdCB0aGlzLmluaXRQcm9taXNlO3RyeXtyZXR1cm4gYXdhaXQgdGhpcy53ZWJzdG9yZS5nZXQoZSl8fG51bGx9Y2F0Y2h7cmV0dXJuIG51bGx9fWFzeW5jIGhhcyhlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLmNoZWNrKGUpfWFzeW5jIGRlbGV0ZShlKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuZGVsZXRlKGUpfWFzeW5jIGNsZWFyKCl7YXdhaXQgdGhpcy5pbml0UHJvbWlzZSxhd2FpdCB0aGlzLndlYnN0b3JlLmNsZWFyKCl9cmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShlKXtsZXQgYT1uZXcgSGVhZGVycyhlLmhlYWRlcnMpO3JldHVybiBuZXcgUmVzcG9uc2UoZS5yZXNwb25zZSx7c3RhdHVzOmUuc3RhdHVzLHN0YXR1c1RleHQ6ZS5zdGF0dXNUZXh0LGhlYWRlcnM6YX0pfWFzeW5jIGNhY2hlRW50cnlGcm9tUmVzcG9uc2UoZSxhLGkpe2xldCByPWEuY2xvbmUoKSxzPWF3YWl0IHIuYXJyYXlCdWZmZXIoKSxuPXt9O3JldHVybiByLmhlYWRlcnMuZm9yRWFjaCgobyxkKT0+e25bZF09b30pLHtyZXNwb25zZTpzLGhlYWRlcnM6bix0aW1lc3RhbXA6RGF0ZS5ub3coKSxldGFnOmk/LmV0YWd8fHIuaGVhZGVycy5nZXQoImV0YWciKXx8dm9pZCAwLGxhc3RNb2RpZmllZDppPy5sYXN0TW9kaWZpZWR8fHIuaGVhZGVycy5nZXQoImxhc3QtbW9kaWZpZWQiKXx8dm9pZCAwLG1heEFnZTppPy5tYXhBZ2UsdXJsOmUsc3RhdHVzOnIuc3RhdHVzLHN0YXR1c1RleHQ6ci5zdGF0dXNUZXh0fX1hc3luYyBwcnVuZUV4cGlyZWQoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0UHJvbWlzZSwwfX19KTtmdW5jdGlvbiBpJHQodCl7bGV0IGU9e21heEFnZTowLGltbXV0YWJsZTohMSxub0NhY2hlOiExLG5vU3RvcmU6ITEsbXVzdFJldmFsaWRhdGU6ITF9O2lmKCF0KXJldHVybiBlO2xldCBhPXQudG9Mb3dlckNhc2UoKS5zcGxpdCgiLCIpLm1hcChpPT5pLnRyaW0oKSk7Zm9yKGxldCBpIG9mIGEpaWYoaT09PSJuby1jYWNoZSIpZS5ub0NhY2hlPSEwO2Vsc2UgaWYoaT09PSJuby1zdG9yZSIpZS5ub1N0b3JlPSEwO2Vsc2UgaWYoaT09PSJpbW11dGFibGUiKWUuaW1tdXRhYmxlPSEwO2Vsc2UgaWYoaT09PSJtdXN0LXJldmFsaWRhdGUiKWUubXVzdFJldmFsaWRhdGU9ITA7ZWxzZSBpZihpLnN0YXJ0c1dpdGgoIm1heC1hZ2U9Iikpe2xldCByPXBhcnNlSW50KGkuc3BsaXQoIj0iKVsxXSwxMCk7aXNOYU4ocil8fChlLm1heEFnZT1yKjFlMyl9cmV0dXJuIGV9ZnVuY3Rpb24gciR0KHQpe2lmKHQpdHJ5e3JldHVybiBuZXcgRGF0ZSh0KS5nZXRUaW1lKCl9Y2F0Y2h7cmV0dXJufX1mdW5jdGlvbiBrcih0KXtsZXQgZT10LmdldCgiY2FjaGUtY29udHJvbCIpLGE9dC5nZXQoImV4cGlyZXMiKSxpPXQuZ2V0KCJldGFnIikscj10LmdldCgibGFzdC1tb2RpZmllZCIpLHM9aSR0KGUpO2lmKHMubWF4QWdlPT09MCYmYSl7bGV0IG49ciR0KGEpO24mJihzLm1heEFnZT1NYXRoLm1heCgwLG4tRGF0ZS5ub3coKSkpfXJldHVybnttYXhBZ2U6cy5tYXhBZ2V8fDAsZXRhZzppfHx2b2lkIDAsbGFzdE1vZGlmaWVkOnJ8fHZvaWQgMCxpbW11dGFibGU6cy5pbW11dGFibGV8fCExLG5vQ2FjaGU6cy5ub0NhY2hlfHwhMSxub1N0b3JlOnMubm9TdG9yZXx8ITEsbXVzdFJldmFsaWRhdGU6cy5tdXN0UmV2YWxpZGF0ZXx8ITF9fWZ1bmN0aW9uIHY2KHQsZSl7aWYoZS5ub1N0b3JlKXJldHVybiExO2lmKGUuaW1tdXRhYmxlKXJldHVybiEwO2xldCBhPURhdGUubm93KCktdC50aW1lc3RhbXAsaT10Lm1heEFnZXx8ZS5tYXhBZ2V8fDA7cmV0dXJuIGk9PT0wPyExOmE8aX1mdW5jdGlvbiB5Nih0KXtyZXR1cm4gdC5ub0NhY2hlfHx0Lm11c3RSZXZhbGlkYXRlfWZ1bmN0aW9uIFloKHQpe2xldCBlPXt9O3JldHVybiB0LmV0YWcmJihlWyJpZi1ub25lLW1hdGNoIl09dC5ldGFnKSx0Lmxhc3RNb2RpZmllZCYmKGVbImlmLW1vZGlmaWVkLXNpbmNlIl09dC5sYXN0TW9kaWZpZWQpLGV9ZnVuY3Rpb24gWmgodCl7bGV0IGU9e307cmV0dXJuIHQuZm9yRWFjaCgoYSxpKT0+e2VbaV09YX0pLGV9ZnVuY3Rpb24gRDFlKHQpe2xldCBlPW5ldyBIZWFkZXJzO3JldHVybiBPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChbYSxpXSk9PntlLnNldChhLGkpfSksZX12YXIgWGg9YigoKT0+e30pO2Z1bmN0aW9uIEUxZSh0KXtzd2l0Y2godCl7Y2FzZSJuZXR3b3JrLWZpcnN0IjpyZXR1cm4gbmV3IEtoO2Nhc2UiY2FjaGUtZmlyc3QiOnJldHVybiBuZXcgc187Y2FzZSJzdGFsZS13aGlsZS1yZXZhbGlkYXRlIjpyZXR1cm4gbmV3IG5fO2Nhc2UibmV0d29yay1vbmx5IjpyZXR1cm4gbmV3IG9fO2Nhc2UiY2FjaGUtb25seSI6cmV0dXJuIG5ldyBsXztkZWZhdWx0OnJldHVybiBuZXcgS2h9fXZhciBLaCxzXyxuXyxvXyxsXyxQMWU9YigoKT0+e0doKCk7WGgoKTtLaD1jbGFzc3thc3luYyBleGVjdXRlKGUpe3RyeXtsZXQgYT1hd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KTtyZXR1cm4gYS5vayYmYXdhaXQgdGhpcy5jYWNoZVJlc3BvbnNlKGUsYSkse3Jlc3BvbnNlOmEsZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfX1jYXRjaChhKXtlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gTmV0d29yayBmYWlsZWQsIHRyeWluZyBjYWNoZToiLGEpO2xldCBpPWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYoaSlyZXR1cm57cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkoaSksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTt0aHJvdyBhfX1hc3luYyBjYWNoZVJlc3BvbnNlKGUsYSl7bGV0IGk9a3IoYS5oZWFkZXJzKTtpZihpLm5vU3RvcmUpcmV0dXJuO2xldCByPWF3YWl0IGUuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUucmVxdWVzdC51cmwsYSxpKTthd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXkscil9fSxzXz1jbGFzc3thc3luYyBleGVjdXRlKGUpe2xldCBhPWF3YWl0IGUuY2FjaGVTdG9yZS5nZXQoZS5jYWNoZUtleSk7aWYoYSl7bGV0IHM9a3IobmV3IEhlYWRlcnMoYS5oZWFkZXJzKSk7aWYodjYoYSxzKSlyZXR1cm4gZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIGhpdCAoZnJlc2gpOiIsZS5yZXF1ZXN0LnVybCkse3Jlc3BvbnNlOmUuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KGEpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX07aWYoeTYocykmJihhLmV0YWd8fGEubGFzdE1vZGlmaWVkKSlyZXR1cm4gYXdhaXQgdGhpcy5yZXZhbGlkYXRlKGUsYSl9ZS5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIENhY2hlIG1pc3MsIGZldGNoaW5nOiIsZS5yZXF1ZXN0LnVybCk7bGV0IGk9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCkscj1rcihpLmhlYWRlcnMpO2lmKCFyLm5vU3RvcmUpe2xldCBzPWF3YWl0IGUuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUucmVxdWVzdC51cmwsaSxyKTthd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXkscyl9cmV0dXJue3Jlc3BvbnNlOmksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfX1hc3luYyByZXZhbGlkYXRlKGUsYSl7bGV0IGk9WWgoYSkscj1uZXcgUmVxdWVzdChlLnJlcXVlc3QudXJsLHttZXRob2Q6ZS5yZXF1ZXN0Lm1ldGhvZCxoZWFkZXJzOnsuLi5aaChlLnJlcXVlc3QuaGVhZGVycyksLi4uaX19KTt0cnl7bGV0IHM9YXdhaXQgZS5mZXRjaEZuKHIpO2lmKHMuc3RhdHVzPT09MzA0KXJldHVybiBlLmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgcmV2YWxpZGF0ZWQgKDMwNCk6IixlLnJlcXVlc3QudXJsKSxhLnRpbWVzdGFtcD1EYXRlLm5vdygpLGF3YWl0IGUuY2FjaGVTdG9yZS5zZXQoZS5jYWNoZUtleSxhKSx7cmVzcG9uc2U6ZS5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkoYSksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiEwfTtpZihzLm9rKXtsZXQgbj1rcihzLmhlYWRlcnMpO2lmKCFuLm5vU3RvcmUpe2xldCBvPWF3YWl0IGUuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKGUucmVxdWVzdC51cmwscyxuKTthd2FpdCBlLmNhY2hlU3RvcmUuc2V0KGUuY2FjaGVLZXksbyl9fXJldHVybntyZXNwb25zZTpzLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMH19Y2F0Y2gocyl7cmV0dXJuIGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBSZXZhbGlkYXRpb24gZmFpbGVkLCB1c2luZyBjYWNoZToiLHMpLHtyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShhKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fX19LG5fPWNsYXNze2FzeW5jIGV4ZWN1dGUoZSl7bGV0IGE9YXdhaXQgZS5jYWNoZVN0b3JlLmdldChlLmNhY2hlS2V5KTtpZihhKXtsZXQgcz1lLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShhKTtyZXR1cm4gdGhpcy5yZXZhbGlkYXRlSW5CYWNrZ3JvdW5kKGUsYSkuY2F0Y2gobj0+e2UubG9nZ2luZyYmY29uc29sZS53YXJuKCJbd2VicmVxdWVzdF0gQmFja2dyb3VuZCByZXZhbGlkYXRpb24gZmFpbGVkOiIsbil9KSx7cmVzcG9uc2U6cyxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fWxldCBpPWF3YWl0IGUuZmV0Y2hGbihlLnJlcXVlc3QpLHI9a3IoaS5oZWFkZXJzKTtpZighci5ub1N0b3JlJiZpLm9rKXtsZXQgcz1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLGkscik7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LHMpfXJldHVybntyZXNwb25zZTppLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19YXN5bmMgcmV2YWxpZGF0ZUluQmFja2dyb3VuZChlLGEpe2xldCBpPWtyKG5ldyBIZWFkZXJzKGEuaGVhZGVycykpO2lmKCEodjYoYSxpKSYmIXk2KGkpKSl0cnl7bGV0IHI9YXdhaXQgZS5mZXRjaEZuKGUucmVxdWVzdCk7aWYoci5vayl7bGV0IHM9a3Ioci5oZWFkZXJzKTtpZighcy5ub1N0b3JlKXtsZXQgbj1hd2FpdCBlLmNhY2hlU3RvcmUuY2FjaGVFbnRyeUZyb21SZXNwb25zZShlLnJlcXVlc3QudXJsLHIscyk7YXdhaXQgZS5jYWNoZVN0b3JlLnNldChlLmNhY2hlS2V5LG4pLGUubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBjb21wbGV0ZToiLGUucmVxdWVzdC51cmwpfX19Y2F0Y2gocil7ZS5sb2dnaW5nJiZjb25zb2xlLndhcm4oIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBmYWlsZWQ6IixyKX19fSxvXz1jbGFzc3thc3luYyBleGVjdXRlKGUpe3JldHVybntyZXNwb25zZTphd2FpdCBlLmZldGNoRm4oZS5yZXF1ZXN0KSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fX0sbF89Y2xhc3N7YXN5bmMgZXhlY3V0ZShlKXtsZXQgYT1hd2FpdCBlLmNhY2hlU3RvcmUuZ2V0KGUuY2FjaGVLZXkpO2lmKCFhKXRocm93IG5ldyBFcnJvcihgQ2FjaGUgbWlzcyBmb3IgJHtlLnJlcXVlc3QudXJsfSAoY2FjaGUtb25seSBtb2RlKWApO3JldHVybntyZXNwb25zZTplLmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShhKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9fX19KTt2YXIgeDMsY189YigoKT0+e0doKCk7UDFlKCk7WGgoKTt4Mz1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuY2FjaGVTdG9yZT1uZXcgeTMoZSxhKX1hc3luYyBleGVjdXRlKGUsYSxpKXtsZXQgcj10aGlzLmRldGVybWluZVN0cmF0ZWd5KGUsYSk7aWYocj09PSJuZXR3b3JrLW9ubHkiKXJldHVybntyZXNwb25zZTphd2FpdCBpKGUpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX07bGV0IHM9dGhpcy5nZW5lcmF0ZUNhY2hlS2V5KGUsYSksbj1FMWUociksbz17cmVxdWVzdDplLGNhY2hlS2V5OnMsY2FjaGVTdG9yZTp0aGlzLmNhY2hlU3RvcmUsZmV0Y2hGbjppLGxvZ2dpbmc6YS5sb2dnaW5nfTtyZXR1cm4gYXdhaXQgbi5leGVjdXRlKG8pfWRldGVybWluZVN0cmF0ZWd5KGUsYSl7cmV0dXJuIGEuY2FjaGVTdHJhdGVneT9hLmNhY2hlU3RyYXRlZ3k6YS5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koYS5jYWNoZSk6ZS5jYWNoZT90aGlzLm1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZS5jYWNoZSk6Im5ldHdvcmstZmlyc3QifW1hcENhY2hlTW9kZVRvU3RyYXRlZ3koZSl7c3dpdGNoKGUpe2Nhc2UiZGVmYXVsdCI6cmV0dXJuIm5ldHdvcmstZmlyc3QiO2Nhc2Uibm8tc3RvcmUiOmNhc2UicmVsb2FkIjpyZXR1cm4ibmV0d29yay1vbmx5IjtjYXNlIm5vLWNhY2hlIjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJmb3JjZS1jYWNoZSI6cmV0dXJuImNhY2hlLWZpcnN0IjtjYXNlIm9ubHktaWYtY2FjaGVkIjpyZXR1cm4iY2FjaGUtb25seSI7ZGVmYXVsdDpyZXR1cm4ibmV0d29yay1maXJzdCJ9fWdlbmVyYXRlQ2FjaGVLZXkoZSxhKXtyZXR1cm4gYS5jYWNoZUtleT90eXBlb2YgYS5jYWNoZUtleT09ImZ1bmN0aW9uIj9hLmNhY2hlS2V5KGUpOmEuY2FjaGVLZXk6dGhpcy5jYWNoZVN0b3JlLmdlbmVyYXRlQ2FjaGVLZXkoZSl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuY2xlYXIoKX1hc3luYyBkZWxldGUoZSl7YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmRlbGV0ZShlKX1hc3luYyBoYXMoZSl7cmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVTdG9yZS5oYXMoZSl9Z2V0U3RvcmUoKXtyZXR1cm4gdGhpcy5jYWNoZVN0b3JlfX19KTtmdW5jdGlvbiBJMWUodCl7c3dpdGNoKHQpe2Nhc2UiZXhwb25lbnRpYWwiOnJldHVybiBuZXcgUWg7Y2FzZSJsaW5lYXIiOnJldHVybiBuZXcgZF87Y2FzZSJjb25zdGFudCI6cmV0dXJuIG5ldyBwXztkZWZhdWx0OnJldHVybiBuZXcgUWh9fWZ1bmN0aW9uIE4xZSh0LGU9LjEpe2xldCBhPXQqZSpNYXRoLnJhbmRvbSgpO3JldHVybiB0K2F9dmFyIFFoLGRfLHBfLEYxZT1iKCgpPT57UWg9Y2xhc3N7Y2FsY3VsYXRlKGUsYSxpKXtsZXQgcj1hKk1hdGgucG93KDIsZS0xKTtyZXR1cm4gTWF0aC5taW4ocixpKX19LGRfPWNsYXNze2NhbGN1bGF0ZShlLGEsaSl7bGV0IHI9YSplO3JldHVybiBNYXRoLm1pbihyLGkpfX0scF89Y2xhc3N7Y2FsY3VsYXRlKGUsYSxpKXtyZXR1cm4gTWF0aC5taW4oYSxpKX19fSk7dmFyIHczLGhfPWIoKCk9PntiNigpO0YxZSgpO3czPWNsYXNze2NvbnN0cnVjdG9yKGU9e30pe3RoaXMub3B0aW9ucz17bWF4QXR0ZW1wdHM6ZS5tYXhBdHRlbXB0cz8/MyxiYWNrb2ZmOmUuYmFja29mZj8/ImV4cG9uZW50aWFsIixpbml0aWFsRGVsYXk6ZS5pbml0aWFsRGVsYXk/PzFlMyxtYXhEZWxheTplLm1heERlbGF5Pz8zZTQscmV0cnlPbjplLnJldHJ5T24/P1s0MDgsNDI5LDUwMCw1MDIsNTAzLDUwNF0sb25SZXRyeTplLm9uUmV0cnk/PygoKT0+e30pfX1hc3luYyBleGVjdXRlKGUsYSl7bGV0IGkscjtmb3IobGV0IHM9MTtzPD10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHM7cysrKXRyeXtsZXQgbj1hd2FpdCBlKCk7aWYobiBpbnN0YW5jZW9mIFJlc3BvbnNlJiZ0aGlzLnNob3VsZFJldHJ5UmVzcG9uc2Uobikpe2lmKHI9bixzPT09dGhpcy5vcHRpb25zLm1heEF0dGVtcHRzKXJldHVybiBuO2xldCBvPXRoaXMuY2FsY3VsYXRlRGVsYXkocyk7dGhpcy5vcHRpb25zLm9uUmV0cnkocyxuZXcgRXJyb3IoYEhUVFAgJHtuLnN0YXR1c31gKSxvKSxhd2FpdCB0aGlzLmRlbGF5KG8pO2NvbnRpbnVlfXJldHVybiBufWNhdGNoKG4pe2k9biBpbnN0YW5jZW9mIEVycm9yP246bmV3IEVycm9yKFN0cmluZyhuKSk7bGV0IG89YT9hKG4scyk6dGhpcy5zaG91bGRSZXRyeUVycm9yKG4pO2lmKHM9PT10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHN8fCFvKXRocm93IGk7bGV0IGQ9dGhpcy5jYWxjdWxhdGVEZWxheShzKTt0aGlzLm9wdGlvbnMub25SZXRyeShzLGksZCksYXdhaXQgdGhpcy5kZWxheShkKX10aHJvdyBpfHxuZXcgRXJyb3IoIk1heCByZXRyeSBhdHRlbXB0cyByZWFjaGVkIil9YXN5bmMgZXhlY3V0ZVdpdGhGYWxsYmFja3MoZSxhLGkpe2lmKGUubGVuZ3RoPT09MCl0aHJvdyBuZXcgRXJyb3IoIk5vIFVSTHMgcHJvdmlkZWQgZm9yIGZhbGxiYWNrIGV4ZWN1dGlvbiIpO2xldCByLHM9W107Zm9yKGxldCBuIG9mIGUpdHJ5e2xldCBvPWF3YWl0IHRoaXMuZXhlY3V0ZShhc3luYygpPT5hd2FpdCBpKG4sYSkpO2lmKG8uc3RhdHVzPDQwMHx8by5zdGF0dXM+PTQwMCYmby5zdGF0dXM8NTAwJiZvLnN0YXR1cyE9PTQwOClyZXR1cm4gbztzLnB1c2gobikscj1uZXcgRXJyb3IoYFJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzICR7by5zdGF0dXN9YCl9Y2F0Y2gobyl7cy5wdXNoKG4pLHI9byBpbnN0YW5jZW9mIEVycm9yP286bmV3IEVycm9yKFN0cmluZyhvKSl9dGhyb3cgbmV3IEVycm9yKGBBbGwgVVJMcyBmYWlsZWQ6ICR7cy5qb2luKCIsICIpfS4gTGFzdCBlcnJvcjogJHtyPy5tZXNzYWdlfHwiVW5rbm93biBlcnJvciJ9YCl9c2hvdWxkUmV0cnlSZXNwb25zZShlKXtsZXQgYT10aGlzLm9wdGlvbnMucmV0cnlPbjtyZXR1cm4gdHlwZW9mIGE9PSJmdW5jdGlvbiI/YShlKTpBcnJheS5pc0FycmF5KGEpP2EuaW5jbHVkZXMoZS5zdGF0dXMpOiExfXNob3VsZFJldHJ5RXJyb3IoZSl7aWYoZSBpbnN0YW5jZW9mIFR5cGVFcnJvciYmZS5tZXNzYWdlLmluY2x1ZGVzKCJmZXRjaCIpfHxlLm5hbWU9PT0iQWJvcnRFcnJvciJ8fGUubWVzc2FnZS5pbmNsdWRlcygidGltZW91dCIpKXJldHVybiEwO2xldCBhPXRoaXMub3B0aW9ucy5yZXRyeU9uO3JldHVybiB0eXBlb2YgYT09ImZ1bmN0aW9uIj9hKHZvaWQgMCxlKTohMX1jYWxjdWxhdGVEZWxheShlKXtsZXQgaT1JMWUodGhpcy5vcHRpb25zLmJhY2tvZmYpLmNhbGN1bGF0ZShlLHRoaXMub3B0aW9ucy5pbml0aWFsRGVsYXksdGhpcy5vcHRpb25zLm1heERlbGF5KTtyZXR1cm4gTjFlKGkpfWFzeW5jIGRlbGF5KGUpe2F3YWl0IGR0LmRlbGF5Rm9yKGUpfX19KTt2YXIgTTMsdV89YigoKT0+e2I2KCk7TTM9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmluRmxpZ2h0UmVxdWVzdHM9bmV3IE1hcH1nZW5lcmF0ZUtleShlKXtsZXQgYT1lLnVybCxpPWUubWV0aG9kO3JldHVybiBpPT09IkdFVCJ8fGk9PT0iSEVBRCI/YCR7aX06JHthfWA6YCR7aX06JHthfToke0RhdGUubm93KCl9YH1hc3luYyBleGVjdXRlKGUsYSl7bGV0IGk9dGhpcy5pbkZsaWdodFJlcXVlc3RzLmdldChlKTtpZihpKXJldHVybntyZXNwb25zZTooYXdhaXQgaS5wcm9taXNlKS5jbG9uZSgpLHdhc0RlZHVwbGljYXRlZDohMH07bGV0IHI9QmUuZGVmZXIoKTt0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2V0KGUscik7dHJ5e2xldCBzPWF3YWl0IGEoKTtyZXR1cm4gci5yZXNvbHZlKHMpLHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5kZWxldGUoZSkse3Jlc3BvbnNlOnMsd2FzRGVkdXBsaWNhdGVkOiExfX1jYXRjaChzKXt0aHJvdyByLnJlamVjdChzKSx0aGlzLmluRmxpZ2h0UmVxdWVzdHMuZGVsZXRlKGUpLHN9fWlzSW5GbGlnaHQoZSl7cmV0dXJuIHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5oYXMoZSl9Z2V0SW5GbGlnaHRDb3VudCgpe3JldHVybiB0aGlzLmluRmxpZ2h0UmVxdWVzdHMuc2l6ZX1jbGVhcigpe3RoaXMuaW5GbGlnaHRSZXF1ZXN0cy5jbGVhcigpfX19KTtmdW5jdGlvbiBzJHQodCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcixhPW5ldyBkdC5UaW1lb3V0KHQsbnVsbCk7cmV0dXJuIGEucHJvbWlzZS50aGVuKCgpPT57ZS5hYm9ydCgpfSkse2NvbnRyb2xsZXI6ZSxjbGVhbnVwOigpPT57YS5jYW5jZWwoKX19fWFzeW5jIGZ1bmN0aW9uIGZfKHQsZSxhKXtsZXR7Y29udHJvbGxlcjppLGNsZWFudXA6cn09cyR0KGEpO3RyeXtsZXQgcz1hd2FpdCBmZXRjaCh0LHsuLi5lLHNpZ25hbDppLnNpZ25hbH0pO3JldHVybiByKCksc31jYXRjaChzKXt0aHJvdyByKCkscyBpbnN0YW5jZW9mIEVycm9yJiZzLm5hbWU9PT0iQWJvcnRFcnJvciI/bmV3IEVycm9yKGBSZXF1ZXN0IHRpbWVvdXQgYWZ0ZXIgJHthfW1zOiAke3R9YCk6c319dmFyIE8xZT1iKCgpPT57YjYoKX0pO3ZhciByMCxtXz1iKCgpPT57d0MoKTtjXygpO2hfKCk7dV8oKTtPMWUoKTtyMD1jbGFzc3tjb25zdHJ1Y3RvcihlPXt9KXt0aGlzLmRlZmF1bHRPcHRpb25zPWUsdGhpcy5pbnRlcmNlcHRvck1hbmFnZXI9bmV3IGMzLHRoaXMuY2FjaGVNYW5hZ2VyPW5ldyB4Myx0aGlzLmRlZHVwbGljYXRvcj1uZXcgTTN9YWRkUmVxdWVzdEludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKX1hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZFJlc3BvbnNlSW50ZXJjZXB0b3IoZSl9YWRkRXJyb3JJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5hZGRFcnJvckludGVyY2VwdG9yKGUpfXJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVSZXF1ZXN0SW50ZXJjZXB0b3IoZSl9cmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcihlKXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKGUpfXJlbW92ZUVycm9ySW50ZXJjZXB0b3IoZSl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucmVtb3ZlRXJyb3JJbnRlcmNlcHRvcihlKX1jbGVhckludGVyY2VwdG9ycygpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmNsZWFyQWxsKCl9YXN5bmMgY2xlYXJDYWNoZSgpe2F3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmNsZWFyKCl9YXN5bmMgcmVxdWVzdChlLGE9e30pe2xldCBpPXsuLi50aGlzLmRlZmF1bHRPcHRpb25zLC4uLmF9LHI7aWYodHlwZW9mIGU9PSJzdHJpbmciP3I9bmV3IFJlcXVlc3QoZSxpKTpyPWUscj1hd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzUmVxdWVzdChyKSxpLmludGVyY2VwdG9ycz8ucmVxdWVzdClmb3IobGV0IG4gb2YgaS5pbnRlcmNlcHRvcnMucmVxdWVzdClyPWF3YWl0IG4ocik7aWYoaS5kZWR1cGxpY2F0ZT8/ITEpe2xldCBuPXRoaXMuZGVkdXBsaWNhdG9yLmdlbmVyYXRlS2V5KHIpO3JldHVybihhd2FpdCB0aGlzLmRlZHVwbGljYXRvci5leGVjdXRlKG4sYXN5bmMoKT0+YXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdChyLGkpKSkucmVzcG9uc2V9cmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZVJlcXVlc3QocixpKX1hc3luYyBleGVjdXRlUmVxdWVzdChlLGEpe3RyeXtsZXQgaT10eXBlb2YgYS5yZXRyeT09Im9iamVjdCI/YS5yZXRyeTphLnJldHJ5P3t9OnZvaWQgMCxyPWFzeW5jIG89PntsZXQgZD1hLnRpbWVvdXQ/PzZlNDtyZXR1cm4gYXdhaXQgZl8oby51cmwse21ldGhvZDpvLm1ldGhvZCxoZWFkZXJzOm8uaGVhZGVycyxib2R5Om8uYm9keSwuLi5hfSxkKX0scz1hc3luYyhvLGQpPT57bGV0IGM9YS50aW1lb3V0Pz82ZTQ7cmV0dXJuIGF3YWl0IGZfKG8sZCxjKX0sbjtpZihpKXtsZXQgbz1uZXcgdzMoaSk7aWYoYS5mYWxsYmFja1VybHMmJmEuZmFsbGJhY2tVcmxzLmxlbmd0aD4wKXtsZXQgZD1bZS51cmwsLi4uYS5mYWxsYmFja1VybHNdO249YXdhaXQgby5leGVjdXRlV2l0aEZhbGxiYWNrcyhkLHttZXRob2Q6ZS5tZXRob2QsaGVhZGVyczplLmhlYWRlcnMsYm9keTplLmJvZHksLi4uYX0scyl9ZWxzZSBuPWF3YWl0IG8uZXhlY3V0ZShhc3luYygpPT4oYXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuZXhlY3V0ZShlLGEscikpLnJlc3BvbnNlKX1lbHNlIG49KGF3YWl0IHRoaXMuY2FjaGVNYW5hZ2VyLmV4ZWN1dGUoZSxhLHIpKS5yZXNwb25zZTtpZihuPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXNwb25zZShuKSxhLmludGVyY2VwdG9ycz8ucmVzcG9uc2UpZm9yKGxldCBvIG9mIGEuaW50ZXJjZXB0b3JzLnJlc3BvbnNlKW49YXdhaXQgbyhuKTtyZXR1cm4gbn1jYXRjaChpKXt0aHJvdyBhd2FpdCB0aGlzLmludGVyY2VwdG9yTWFuYWdlci5wcm9jZXNzRXJyb3IoaSBpbnN0YW5jZW9mIEVycm9yP2k6bmV3IEVycm9yKFN0cmluZyhpKSkpfX1hc3luYyBnZXRKc29uKGUsYT17fSl7bGV0IGk9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJHRVQiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uYS5oZWFkZXJzfHx7fX19KTtpZighaS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtpLnN0YXR1c306ICR7aS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBpLmpzb24oKX1hc3luYyBwb3N0SnNvbihlLGEsaT17fSl7bGV0IHI9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmksbWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5pLmhlYWRlcnN8fHt9fSxib2R5OkpTT04uc3RyaW5naWZ5KGEpfSk7aWYoIXIub2spdGhyb3cgbmV3IEVycm9yKGBIVFRQICR7ci5zdGF0dXN9OiAke3Iuc3RhdHVzVGV4dH1gKTtyZXR1cm4gYXdhaXQgci5qc29uKCl9YXN5bmMgcHV0SnNvbihlLGEsaT17fSl7bGV0IHI9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmksbWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmkuaGVhZGVyc3x8e319LGJvZHk6SlNPTi5zdHJpbmdpZnkoYSl9KTtpZighci5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtyLnN0YXR1c306ICR7ci5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCByLmpzb24oKX1hc3luYyBkZWxldGVKc29uKGUsYT17fSl7bGV0IGk9YXdhaXQgdGhpcy5yZXF1ZXN0KGUsey4uLmEsbWV0aG9kOiJERUxFVEUiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uYS5oZWFkZXJzfHx7fX19KTtpZighaS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtpLnN0YXR1c306ICR7aS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBpLmpzb24oKX19fSk7YXN5bmMgZnVuY3Rpb24gT2EodCxlKXtsZXQgYT10IGluc3RhbmNlb2YgUmVxdWVzdD90LnVybDpTdHJpbmcodCksaT10IGluc3RhbmNlb2YgUmVxdWVzdD90Om5ldyBSZXF1ZXN0KGEsZSk7cmV0dXJuIGF3YWl0IFBpLnJlcXVlc3QoaSxlKX12YXIgUGksUjFlPWIoKCk9PnttXygpO1BpPW5ldyByMDtPYS5nZXRKc29uPWFzeW5jIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGF3YWl0IFBpLmdldEpzb24odCxlKX0sT2EucG9zdEpzb249YXN5bmMgZnVuY3Rpb24odCxlLGEpe3JldHVybiBhd2FpdCBQaS5wb3N0SnNvbih0LGUsYSl9LE9hLnB1dEpzb249YXN5bmMgZnVuY3Rpb24odCxlLGEpe3JldHVybiBhd2FpdCBQaS5wdXRKc29uKHQsZSxhKX0sT2EuZGVsZXRlSnNvbj1hc3luYyBmdW5jdGlvbih0LGUpe3JldHVybiBhd2FpdCBQaS5kZWxldGVKc29uKHQsZSl9LE9hLmFkZFJlcXVlc3RJbnRlcmNlcHRvcj1mdW5jdGlvbih0KXtQaS5hZGRSZXF1ZXN0SW50ZXJjZXB0b3IodCl9LE9hLmFkZFJlc3BvbnNlSW50ZXJjZXB0b3I9ZnVuY3Rpb24odCl7UGkuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcih0KX0sT2EuYWRkRXJyb3JJbnRlcmNlcHRvcj1mdW5jdGlvbih0KXtQaS5hZGRFcnJvckludGVyY2VwdG9yKHQpfSxPYS5jbGVhckludGVyY2VwdG9ycz1mdW5jdGlvbigpe1BpLmNsZWFySW50ZXJjZXB0b3JzKCl9LE9hLmNsZWFyQ2FjaGU9YXN5bmMgZnVuY3Rpb24oKXthd2FpdCBQaS5jbGVhckNhY2hlKCl9LE9hLmNyZWF0ZUNsaWVudD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHIwKHQpfSxPYS5nZXREZWZhdWx0Q2xpZW50PWZ1bmN0aW9uKCl7cmV0dXJuIFBpfX0pO3ZhciB4Nj17fTtHZSh4Nix7Q2FjaGVNYW5hZ2VyOigpPT54MyxDYWNoZVN0b3JlOigpPT55MyxJbnRlcmNlcHRvck1hbmFnZXI6KCk9PmMzLFJlcXVlc3REZWR1cGxpY2F0b3I6KCk9Pk0zLFJldHJ5TWFuYWdlcjooKT0+dzMsV2VicmVxdWVzdENsaWVudDooKT0+cjAsY3JlYXRlQ29uZGl0aW9uYWxIZWFkZXJzOigpPT5ZaCxleHRyYWN0Q2FjaGVNZXRhZGF0YTooKT0+a3IsaGVhZGVyc1RvT2JqZWN0OigpPT5aaCxpc0ZyZXNoOigpPT52NixvYmplY3RUb0hlYWRlcnM6KCk9PkQxZSxyZXF1aXJlc1JldmFsaWRhdGlvbjooKT0+eTYsd2VicmVxdWVzdDooKT0+T2F9KTt2YXIgQjFlPWIoKCk9PntSMWUoKTttXygpO2NfKCk7R2goKTtoXygpO3dDKCk7dV8oKTtYaCgpfSk7dmFyIEFuLERuPWIoKCk9PntDYygpO0FuPWoxKHdkKCksMSk7ZTYoKTtodGUoKTtocigpO3V0ZSgpO2MyKCk7QjFlKCl9KTt2YXIgaHMsdzY9YigoKT0+e0RuKCk7aHM9Y2xhc3N7Y29uc3RydWN0b3IoZSxhKXt0aGlzLmVycm9yVGV4dD1lLHRoaXMuZXJyb3JEYXRhPWF9fX0pO3ZhciBlOSxIMWU9YigoKT0+e3c2KCk7RG4oKTtlOT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9jYWxEYXRhPXt9fWFzeW5jIHBhc3NHdWFyZHMoZSxhKXtsZXQgaT1uZXcgYzYuR3VhcmRTZXQoZSk7aWYoIWF3YWl0IGkuYWxsR3VhcmRzUGFzcyhhKSl7bGV0IHM9YXdhaXQgaS5nZXRGYWlsZWRIaW50KGEpO3Rocm93IG5ldyBocyhgZ3VhcmQgZmFpbGVkOiAke3N9YCx7ZmFpbGVkSGludDpzfSl9fX19KTt2YXIgZ18sYl89YigoKT0+e0RuKCk7dzYoKTtIMWUoKTtnXz1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMubWV0aG9kPWUsdGhpcy5oYW5kbGVyRnVuY3Rpb249YX1hc3luYyBhZGRSZXNwb25zZShlKXtpZihlLm1ldGhvZCE9PXRoaXMubWV0aG9kKXRocm93IG5ldyBFcnJvcigidGhpcyBoYW5kbGVyIGhhcyBiZWVuIGdpdmVuIGEgd3JvbmcgbWV0aG9kIHRvIGFuc3dlciB0by4gUGxlYXNlIHVzZSBhIFR5cGVkUm91dGVyIHRvIGZpbHRlciByZXF1ZXN0cyIpO2xldCBhLGk9bmV3IGU5O2UubG9jYWxEYXRhJiYoaS5sb2NhbERhdGE9ZS5sb2NhbERhdGEpO2xldCByPWF3YWl0IHRoaXMuaGFuZGxlckZ1bmN0aW9uKGUucmVxdWVzdCxpKS5jYXRjaChzPT57cyBpbnN0YW5jZW9mIGhzP2E9czpjb25zb2xlLmxvZyhzKX0pO3JldHVybiBhJiYoZS5lcnJvcj17dGV4dDphLmVycm9yVGV4dCxkYXRhOmEuZXJyb3JEYXRhfSksciYmKGUucmVzcG9uc2U9ciksZT8uY29ycmVsYXRpb24/LnBoYXNlJiYoZS5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiKSxlfX19KTt2YXIgczAsTTY9YigoKT0+e0RuKCk7dDkoKTtiXygpO3ZfKCk7czA9Y2xhc3MgdHtjb25zdHJ1Y3Rvcigpe3RoaXMuaG9va3M9e30sdGhpcy5yb3V0ZXJNYXA9bmV3IGUyLk9iamVjdE1hcCx0aGlzLmhhbmRsZXJNYXA9bmV3IGUyLk9iamVjdE1hcCx0aGlzLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcz1uZXcgZTIuT2JqZWN0TWFwLHRoaXMuZmlyZUV2ZW50SW50ZXJlc3RNYXA9bmV3IGUyLkludGVyZXN0TWFwKGU9PmUpfXN0YXRpYyBnZXQgZ2xvYmFsSG9va3MoKXtyZXR1cm4gZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N8fChnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fSksZ2xvYmFsVGhpcy5fX3R5cGVkUm91dGVyR2xvYmFsSG9va3N9c3RhdGljIHNldCBnbG9iYWxIb29rcyhlKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz1lfXN0YXRpYyBzZXRHbG9iYWxIb29rcyhlKXtsZXQgYT10Lmdsb2JhbEhvb2tzO3QuZ2xvYmFsSG9va3M9ey4uLmEsLi4uZX19c3RhdGljIGNsZWFyR2xvYmFsSG9va3MoKXtnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rcz17fX1zZXRIb29rcyhlKXt0aGlzLmhvb2tzPXsuLi50aGlzLmhvb2tzLC4uLmV9fWNhbGxIb29rKGUsYSl7dHJ5e3QuZ2xvYmFsSG9va3NbZV0/LihhKSx0aGlzLmhvb2tzW2VdPy4oYSl9Y2F0Y2goaSl7Y29uc29sZS5lcnJvcihgVHlwZWRSb3V0ZXIgaG9vayBlcnJvciAoJHtlfSk6YCxpKX19YWRkVHlwZWRIYW5kbGVyKGUpe2lmKHRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUubWV0aG9kKSl0aHJvdyBuZXcgRXJyb3IoYGEgVHlwZWRIYW5kbGVyIGZvciAke2UubWV0aG9kfSBhbHJlZHkgZXhpc3RzISBDYW4ndCBhZGQgYW5vdGhlciBvbmUuYCk7dGhpcy5oYW5kbGVyTWFwLmFkZChlKX1hZGRUeXBlZFJvdXRlcihlKXt0aGlzLnJvdXRlck1hcC5maW5kU3luYyhpPT5pPT09ZSl8fCh0aGlzLnJvdXRlck1hcC5hZGQoZSksZS5hZGRUeXBlZFJvdXRlcih0aGlzKSl9Y2hlY2tGb3JUeXBlZEhhbmRsZXIoZSl7cmV0dXJuISF0aGlzLmdldFR5cGVkSGFuZGxlckZvck1ldGhvZChlKX1nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QoZSxhPVtdKXthLnB1c2godGhpcyk7bGV0IGk7cmV0dXJuIGk9dGhpcy5oYW5kbGVyTWFwLmZpbmRTeW5jKHI9PnIubWV0aG9kPT09ZSksaXx8dGhpcy5yb3V0ZXJNYXAuZ2V0QXJyYXkoKS5mb3JFYWNoKHI9PnshaSYmIWEuaW5jbHVkZXMocikmJihpPXIuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUsYSkpfSksaX1zdGF0aWN7dGhpcy5kZWZhdWx0Um91dGVPcHRpb25zPXtsb2NhbFJlcXVlc3Q6ITEsc2tpcEhvb2tzOiExfX1hc3luYyByb3V0ZUFuZEFkZFJlc3BvbnNlKGUsYT17fSl7bGV0IGk9ey4uLnQuZGVmYXVsdFJvdXRlT3B0aW9ucywuLi5hfTtpZihlPVNyLmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksZS5sb2NhbERhdGE9ZS5sb2NhbERhdGF8fHt9LGUubG9jYWxEYXRhLmZpcnN0VHlwZWRyb3V0ZXI9dGhpcyxlLm1ldGhvZD09PSIjI1ZpcnR1YWxTdHJlYW0jIyIpe2xldCByPWF3YWl0IHRoaXMuaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KGUpO3JldHVybiByLmxvY2FsRGF0YT1udWxsLHJ9aWYoZT8uY29ycmVsYXRpb24/LnBoYXNlPT09InJlcXVlc3QifHxpLmxvY2FsUmVxdWVzdCl7bGV0IHI9RGF0ZS5ub3coKTtpLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25JbmNvbWluZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6cixwYXlsb2FkOmUucmVxdWVzdH0pO2xldCBzPXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKGUubWV0aG9kKTtyZXR1cm4gcz8oZT1hd2FpdCBzLmFkZFJlc3BvbnNlKGUpLGUubG9jYWxEYXRhPW51bGwsZT1Tci5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhlLHt0eXBlZHJvdXRlcjp0aGlzfSksaS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6ZS5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6ZS5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktcixwYXlsb2FkOmUucmVzcG9uc2UsZXJyb3I6ZS5lcnJvcj8udGV4dH0pLGUpOihjb25zb2xlLmxvZyhgQ2Fubm90IGZpbmQgaGFuZGxlciBmb3IgbWV0aG9kbmFtZSAke2UubWV0aG9kfWApLGUuZXJyb3I9e3RleHQ6IlRoZXJlIGlzIG5vIGF2YWlsYWJsZSBtZXRob2QgZm9yIHRoaXMgY2FsbCBvbiB0aGUgc2VydmVyIHNpZGUiLGRhdGE6e319LGUuY29ycmVsYXRpb24ucGhhc2U9InJlc3BvbnNlIixlLmxvY2FsRGF0YT1udWxsLGU9U3IuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsoZSx7dHlwZWRyb3V0ZXI6dGhpc30pLGkuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbk91dGdvaW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmUuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOmUubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLXIscGF5bG9hZDplLnJlc3BvbnNlLGVycm9yOmUuZXJyb3I/LnRleHR9KSxlKX1lbHNlIHJldHVybiBlPy5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVzcG9uc2UiPyhpLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25JbmNvbWluZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDplLmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDplLm1ldGhvZCxkaXJlY3Rpb246ImluY29taW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLHBheWxvYWQ6ZS5yZXNwb25zZSxlcnJvcjplLmVycm9yPy50ZXh0fSksdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcC5maW5kSW50ZXJlc3QoZS5jb3JyZWxhdGlvbi5pZCk/LmZ1bGxmaWxsSW50ZXJlc3QoZSksbnVsbCk6KGNvbnNvbGUubG9nKCJyZWNlaXZlZCB3ZWlyZGx5IHNoYXBlZCByZXF1ZXN0IiksY29uc29sZS5sb2coZSksbnVsbCl9YXN5bmMgaGFuZGxlU3RyZWFtVHlwZWRSZXF1ZXN0KGUpe2xldCBhPWF3YWl0IHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmZpbmQoYXN5bmMgcj0+ci5zdHJlYW1JZD09PWUucmVxdWVzdC5zdHJlYW1JZCk7aWYoYSljb25zb2xlLmxvZyhgc3VjY2VzczogZm91bmQgcmVsZXZhbnQgdmlydHVhbCBzdHJlYW0gd2l0aCBpZCAke2UucmVxdWVzdC5zdHJlYW1JZH1gKTtlbHNlIHJldHVybiBjb25zb2xlLmxvZyhgbm8gcmVsZXZhbnQgdmlydHVhbCBzdHJlYW0gZm91bmQgZm9yIHN0cmVhbSB3aXRoIGlkICR7ZS5yZXF1ZXN0LnN0cmVhbUlkfWApLGNvbnNvbGUubG9nKHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmdldEFycmF5KCkpLGU7cmV0dXJuIGF3YWl0IGEuaGFuZGxlU3RyZWFtVHIoZSl9fX0pO3ZhciBxMWUsU3IsdDk9YigoKT0+e0RuKCk7TTYoKTtxMWU9IiMjIyMjIyMjIyMjIyNDTE9TSU5HIEJJVCMjIyMjIyMjIyMjIyMiLFNyPWNsYXNzIHR7c3RhdGljIGVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGUsYSxpLHI9W10pe3JldHVybiFlfHxsMy5pc0J1ZmZlckxpa2UoZSk/ZTplIGluc3RhbmNlb2YgdD8oIWUuc2lkZSYmYS5zZW5kTWV0aG9kJiYoZS5zaWRlPSJyZXF1ZXN0aW5nIixlLnNlbmRNZXRob2Q9YS5zZW5kTWV0aG9kKSwhZS5zaWRlJiZhLnR5cGVkcm91dGVyJiYoZS5zaWRlPSJyZXNwb25kaW5nIixlLnR5cGVkcm91dGVyPWEudHlwZWRyb3V0ZXIsYS50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuYWRkKGUpKSwhaS5yZXNwb25zZXx8ci5pbmNsdWRlcygicmVzcG9uc2UiKT8oZS5zdGFydEtlZXBBbGl2ZUxvb3AoKSx7X2lzVmlydHVhbFN0cmVhbTohMCxzdHJlYW1JZDplLnN0cmVhbUlkfSk6e19PQk1JVFRFRF9WSVJUVUFMX1NUUkVBTTohMCxyZWFzb246InBhdGggaXMgdW5kZXIgLnJlcXVlc3Q6IG9ibWl0dGVkIGZvciBkZWR1cGxpY2F0aW9uIHJlYXNvbnMgaW4gcmVzcG9uc2UgY3ljbGUuIn0pOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoKHMsbik9PnQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsocyxhLGl8fGUsci5jb25jYXQoU3RyaW5nKG4pKSkpOmUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCI/T2JqZWN0LmVudHJpZXMoZSkucmVkdWNlKChzLFtuLG9dKT0+e2xldCBkPXIuY29uY2F0KG4pO3JldHVybiBzW25dPXQuZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsobyxhLGl8fGUsZCksc30se30pOmV9c3RhdGljIGRlY29kZVBheWxvYWRGcm9tTmV0d29yayhlLGEpe2lmKGwzLmlzQnVmZmVyTGlrZShlKXx8ZSBpbnN0YW5jZW9mIHMwKXJldHVybiBlO2lmKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCIpe2lmKGUgaW5zdGFuY2VvZiBTZXR8fGUgaW5zdGFuY2VvZiBNYXB8fGUgaW5zdGFuY2VvZiBEYXRlfHxlIGluc3RhbmNlb2YgUmVnRXhwfHxlIGluc3RhbmNlb2YgRXJyb3J8fGUgaW5zdGFuY2VvZiBQcm9taXNlfHx0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24iKXJldHVybiBlO2lmKGUuX2lzVmlydHVhbFN0cmVhbSl7bGV0IGk9bmV3IHQ7cmV0dXJuIGkuc3RyZWFtSWQ9ZS5zdHJlYW1JZCwhaS5zaWRlJiZhLnNlbmRNZXRob2QmJihpLnNpZGU9InJlcXVlc3RpbmciLGkuc2VuZE1ldGhvZD1hLnNlbmRNZXRob2QpLCFpLnNpZGUmJmEudHlwZWRyb3V0ZXImJihpLnNpZGU9InJlc3BvbmRpbmciLGkudHlwZWRyb3V0ZXI9YS50eXBlZHJvdXRlcixhLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQoaSkpLGkuc3RhcnRLZWVwQWxpdmVMb29wKCksaX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBpPVtdO2ZvcihsZXQgciBvZiBlKWkucHVzaCh0LmRlY29kZVBheWxvYWRGcm9tTmV0d29yayhyLGEpKTtyZXR1cm4gaX1lbHNlIHJldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoKGkscik9PihpW3JdPXQuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGVbcl0sYSksaSkse30pfWVsc2UgcmV0dXJuIGV9Y29uc3RydWN0b3IoKXt0aGlzLnN0cmVhbUlkPUFuLnVuaSgpLHRoaXMua2VlcEFsaXZlPSEwLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheT1uZXcgZTIuQmFja3ByZXNzdXJlZEFycmF5KDE2KSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXk9bmV3IGUyLkJhY2twcmVzc3VyZWRBcnJheSgxNil9YXN5bmMgd29ya09uUXVldWUoKXtpZih0aGlzLndvcmtpbmdEZWZlcnJlZClyZXR1cm4gdGhpcy53b3JraW5nRGVmZXJyZWQucHJvbWlzZTtpZih0aGlzLndvcmtpbmdEZWZlcnJlZD1CZS5kZWZlcigpLHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7bGV0IGU9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksYT0hMSxpPSExLHI9YXN5bmMoKT0+e2xldCBzPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOkFuLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pntjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMX0pO3MmJnMucmVzcG9uc2UmJihpPXMucmVzcG9uc2UuYmFja3ByZXNzdXJlLGE9cy5yZXNwb25zZS5uZXh0KX07Zm9yKGF3YWl0IHIoKTt0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MHx8YTspe2lmKGkpZm9yKDtpOyljb25zb2xlLmxvZygid2FpdGluZyBmb3IgZmVlZGJhY2sgYmVjYXVzZSBvZiBiYWNrcHJlc3N1cmUuLi4iKSxhd2FpdCBkdC5kZWxheUZvcig1MCksYXdhaXQgcigpO2xldCBzO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiYocz10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKSk7bGV0IG47bj1hd2FpdCB0aGlzLnNlbmRNZXRob2Qoe21ldGhvZDoiIyNWaXJ0dWFsU3RyZWFtIyMiLHJlcXVlc3Q6e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDpBbi51bmkoKSxjeWNsZToicmVxdWVzdCIsbWFpblB1cnBvc2U6cz8iY2h1bmsiOiJyZWFkIixiYWNrcHJlc3N1cmU6ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLC4uLnM/e2NodW5rRGF0YTpzfTp7fX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT4oY29uc29sZS5sb2coInN0cmVhbSBlbmRlZCBpbW1hdHVyZWx5IiksdGhpcy5rZWVwQWxpdmU9ITEsbnVsbCkpLG4mJm4ucmVzcG9uc2UmJm4ucmVzcG9uc2UuY2h1bmtEYXRhJiZ0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkucHVzaChuLnJlc3BvbnNlLmNodW5rRGF0YSksaT1uJiZuLnJlc3BvbnNlJiZuLnJlc3BvbnNlLmJhY2twcmVzc3VyZSxlPSF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGE9biYmbi5yZXNwb25zZSYmbi5yZXNwb25zZS5uZXh0fX10aGlzLndvcmtpbmdEZWZlcnJlZC5yZXNvbHZlKCksdGhpcy53b3JraW5nRGVmZXJyZWQ9bnVsbH1hc3luYyBoYW5kbGVTdHJlYW1UcihlKXtpZihlLnJlcXVlc3Qua2VlcEFsaXZlPT09ITAmJnRoaXMua2VlcEFsaXZlPT09ITA/dGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ9RGF0ZS5ub3coKTplLnJlcXVlc3Qua2VlcEFsaXZlPT09ITEmJih0aGlzLmtlZXBBbGl2ZT0hMSksZS5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImtlZXBBbGl2ZSImJihlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmUsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9KSxlLnJlcXVlc3QubWFpblB1cnBvc2U9PT0iZmVlZGJhY2siJiYoZS5yZXNwb25zZT17c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmUucmVxdWVzdC5jeWNsZUlkLGN5Y2xlOiJyZXNwb25zZSIsbWFpblB1cnBvc2U6ImZlZWRiYWNrIixuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLGUucmVxdWVzdC5tYWluUHVycG9zZT09PSJjaHVuayIpe2lmKHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUucmVxdWVzdC5jaHVua0RhdGEpLHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wJiZlLnJlc3BvbnNlLmJhY2twcmVzc3VyZT09PSExKXtsZXQgYT10aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKTtlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiY2h1bmsiLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjEsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpLGNodW5rRGF0YTp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX19ZWxzZSBlLnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6ZS5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfTtlLnJlcXVlc3Q9bnVsbH1yZXR1cm4gZX1hc3luYyBjbGVhbnVwKCl7dGhpcy50eXBlZHJvdXRlciYmdGhpcy50eXBlZHJvdXRlci5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMucmVtb3ZlKHRoaXMpfWFzeW5jIHN0YXJ0S2VlcEFsaXZlTG9vcCgpe2lmKHRoaXMuc2lkZT09PSJyZXNwb25kaW5nIilyZXR1cm47YXdhaXQgZHQuZGVsYXlGb3IoMCksY29uc29sZS5sb2coYHN0YXJ0aW5nIGtlZXBhbGl2ZSBsb29wIG9uIHNpZGUgJHt0aGlzLnNpZGV9YCk7bGV0IGU9MDtmb3IoO3RoaXMua2VlcEFsaXZlOylhd2FpdCB0aGlzLnRyaWdnZXJLZWVwQWxpdmUoKSxhd2FpdCBkdC5kZWxheUZvcigxZTMpO2F3YWl0IGR0LmRlbGF5Rm9yKDFlMyksYXdhaXQgdGhpcy5jbGVhbnVwKCksY29uc29sZS5sb2coYGNsZWFuZWQgdXAgZm9yIHN0cmVhbSAke3RoaXMuc3RyZWFtSWR9YCl9YXN5bmMgdHJpZ2dlcktlZXBBbGl2ZSgpe2lmKHRoaXMuc2lkZT09PSJyZXF1ZXN0aW5nIil7Y29uc29sZS5sb2coImtlZXBhbGl2ZSBzZW50LiIpO2xldCBlPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOkFuLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZToia2VlcEFsaXZlIixrZWVwQWxpdmU6dGhpcy5rZWVwQWxpdmV9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e3RoaXMua2VlcEFsaXZlPSExfSk7ZSYmZS5yZXNwb25zZSYmZS5yZXNwb25zZS5rZWVwQWxpdmU9PT0hMT90aGlzLmtlZXBBbGl2ZT0hMTp0aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpLGUmJmUucmVzcG9uc2UmJmUucmVzcG9uc2UubmV4dCYmdGhpcy53b3JrT25RdWV1ZSgpfURhdGUubm93KCktdGhpcy5sYXN0S2VlcEFsaXZlRXZlbnQ+MWU0JiYoY29uc29sZS5sb2coYGNsb3Npbmcgc3RyZWFtIGZvciAke3RoaXMuc3RyZWFtSWR9YCksdGhpcy5rZWVwQWxpdmU9ITEpfWFzeW5jIHNlbmREYXRhKGUpe3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5wdXNoKGUpLHRoaXMud29ya09uUXVldWUoKSxhd2FpdCB0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvclNwYWNlKCl9YXN5bmMgZmV0Y2hEYXRhKCl7cmV0dXJuIHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5oYXNTcGFjZSxhd2FpdCB0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkud2FpdEZvckl0ZW1zKCksdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnNoaWZ0KCl9YXN5bmMgcmVhZEZyb21XZWJzdHJlYW0oZSxhPSEwKXtsZXQgaT1lLmdldFJlYWRlcigpLHI9ITE7Zm9yKDshcjspe2xldHt2YWx1ZTpzLGRvbmU6bn09YXdhaXQgaS5yZWFkKCk7cyYmYXdhaXQgdGhpcy5zZW5kRGF0YShzKSxyPW59YSYmYXdhaXQgdGhpcy5jbG9zZSghMCl9YXN5bmMgd3JpdGVUb1dlYnN0cmVhbShlKXtsZXQgYT1lLmdldFdyaXRlcigpO2Zvcig7dGhpcy5rZWVwQWxpdmV8fHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja0hhc0l0ZW1zKCk7KXtsZXQgaT1hd2FpdCB0aGlzLmZldGNoRGF0YSgpO2lmKGk9PT1xMWUpe2EucmVsZWFzZUxvY2soKSxhd2FpdCBlLmNsb3NlKCk7YnJlYWt9YXdhaXQgYS53cml0ZShpKX19YXN5bmMgY2xvc2UoZT0hMSl7ZSYmdGhpcy5zZW5kRGF0YShxMWUpLHRoaXMua2VlcEFsaXZlPSExfX19KTt2YXIgeV8seF89YigoKT0+e002KCk7RG4oKTt5Xz1jbGFzc3tjb25zdHJ1Y3RvcihlKXtpZihlLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXImJiFlLnR5cGVkUm91dGVyUmVmKXRocm93IG5ldyBFcnJvcigieW91IGhhdmUgdG8gc3BlY2lmeSBhIHR5cGVkcm91dGVyIHdoZW4gdXNpbmcgcG9zdG1ldGhvZCB3aXRoIHR5cGVkcm91dGVyIik7dGhpcy5vcHRpb25zPWV9YXN5bmMgcG9zdChlKXtsZXQgYTt0aGlzLm9wdGlvbnMudHlwZWRSb3V0ZXJSZWYmJihhPWF3YWl0IHRoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZi5maXJlRXZlbnRJbnRlcmVzdE1hcC5hZGRJbnRlcmVzdChlLmNvcnJlbGF0aW9uLmlkLGUpKTtsZXQgcj1hd2FpdCh0aGlzLm9wdGlvbnMucG9zdE1ldGhvZHx8dGhpcy5vcHRpb25zLnBvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXIpKGUpLHM7cmV0dXJuIGE/cz1hd2FpdCBhLmludGVyZXN0RnVsbGZpbGxlZDpyP3M9cjpzPWUsc319fSk7ZnVuY3Rpb24gVjFlKHQsZSl7dHJ5e3MwLmdsb2JhbEhvb2tzW3RdPy4oZSl9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcihgVHlwZWRSZXF1ZXN0IGhvb2sgZXJyb3IgKCR7dH0pOmAsYSl9fXZhciBuJHQsejYsdl89YigoKT0+e0RuKCk7dDkoKTt3NigpO002KCk7eF8oKTtuJHQ9bmV3IHg2LldlYnJlcXVlc3RDbGllbnQ7ejY9Y2xhc3N7Y29uc3RydWN0b3IoZSxhKXt0aGlzLnNraXBIb29rcz0hMSx0eXBlb2YgZT09InN0cmluZyI/dGhpcy51cmxFbmRQb2ludD1lOnRoaXMudHlwZWRUYXJnZXQ9ZSx0aGlzLm1ldGhvZD1hfWFzeW5jIGZpcmUoZSxhPSExKXtsZXQgaT1EYXRlLm5vdygpLHI9e21ldGhvZDp0aGlzLm1ldGhvZCxyZXF1ZXN0OmUscmVzcG9uc2U6bnVsbCxjb3JyZWxhdGlvbjp7aWQ6QW4udW5pKCkscGhhc2U6InJlcXVlc3QifX07cj1Tci5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhyLHtzZW5kTWV0aG9kOm49PnRoaXMucG9zdFRyT2JqZWN0KG4pfSksdGhpcy5za2lwSG9va3N8fFYxZSgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOnIuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6aSxwYXlsb2FkOmV9KTtsZXQgcztyZXR1cm4gcz1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChyLGEpLHM9U3IuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHMse3NlbmRNZXRob2Q6bj0+dGhpcy5wb3N0VHJPYmplY3Qobil9KSx0aGlzLnNraXBIb29rc3x8VjFlKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOnIuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLWkscGF5bG9hZDpzPy5yZXNwb25zZSxlcnJvcjpzPy5lcnJvcj8udGV4dH0pLHMucmVzcG9uc2V9YXN5bmMgcG9zdFRyT2JqZWN0KGUsYT0hMSl7bGV0IGk7aWYodGhpcy51cmxFbmRQb2ludD9pPWF3YWl0IG4kdC5wb3N0SnNvbih0aGlzLnVybEVuZFBvaW50LGUsYT97Y2FjaGVTdHJhdGVneToiY2FjaGUtZmlyc3QifTp7fSk6aT1hd2FpdCB0aGlzLnR5cGVkVGFyZ2V0LnBvc3QoZSksaS5lcnJvcil7aWYoY29uc29sZS5lcnJvcihgbWV0aG9kOiA+PiR7dGhpcy5tZXRob2R9PDwgZ290IGFuIEVSUk9SOiAiJHtpLmVycm9yLnRleHR9IiB3aXRoIGRhdGEgJHtKU09OLnN0cmluZ2lmeShpLmVycm9yLmRhdGEsbnVsbCwyKX1gKSwhaS5yZXRyeSl0aHJvdyBuZXcgaHMoaS5lcnJvci50ZXh0LGkuZXJyb3IuZGF0YSk7cmV0dXJuIG51bGx9cmV0dXJuIGkucmV0cnkmJihjb25zb2xlLmxvZyhgc2VydmVyIHJlcXVlc3RlZCByZXRyeSBmb3IgdGhlIGZvbGxvd2luZyByZWFzb246ICR7aS5yZXRyeS5yZWFzb259YCksYXdhaXQgZHQuZGVsYXlGb3IoaS5yZXRyeS53YWl0Rm9yTXMpLGk9YXdhaXQgdGhpcy5wb3N0VHJPYmplY3QoZSxhKSksaX19fSk7dmFyIG9hPXt9O0dlKG9hLHtUeXBlZEhhbmRsZXI6KCk9PmdfLFR5cGVkUmVxdWVzdDooKT0+ejYsVHlwZWRSZXNwb25zZUVycm9yOigpPT5ocyxUeXBlZFJvdXRlcjooKT0+czAsVHlwZWRUYXJnZXQ6KCk9PnlfLFZpcnR1YWxTdHJlYW06KCk9PlNyfSk7dmFyIGs2PWIoKCk9Pnt2XygpO2JfKCk7TTYoKTt3NigpO3hfKCk7dDkoKX0pO2Z1bmN0aW9uIGoxZSh0KXtyZXR1cm4gdCYmdHlwZW9mIHQudGhlbj09ImZ1bmN0aW9uIn1mdW5jdGlvbiBDcih0LGUpe3JldHVybiB0fHwodD0wKSxuZXcgUHJvbWlzZShmdW5jdGlvbihhKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBhKGUpfSx0KX0pfWZ1bmN0aW9uIEcxZSh0LGUpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKGUtdCsxKSt0KX1mdW5jdGlvbiB1cygpe3JldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMil9ZnVuY3Rpb24gZnMoKXt2YXIgdD1EYXRlLm5vdygpKjFlMztyZXR1cm4gdDw9d18mJih0PXdfKzEpLHdfPXQsdH1mdW5jdGlvbiBZMWUoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3M8InUiJiZ0eXBlb2YgbmF2aWdhdG9yLmxvY2tzLnJlcXVlc3Q9PSJmdW5jdGlvbiJ9dmFyIFUxZSxXMWUsUmEsd18sRW49YigoKT0+e1UxZT1Qcm9taXNlLnJlc29sdmUoITEpLFcxZT1Qcm9taXNlLnJlc29sdmUoITApLFJhPVByb21pc2UucmVzb2x2ZSgpO3dfPTB9KTtmdW5jdGlvbiBjJHQodCl7dmFyIGU9e3RpbWU6ZnMoKSxtZXNzYWdlc0NhbGxiYWNrOm51bGwsYmM6bmV3IEJyb2FkY2FzdENoYW5uZWwodCksc3ViRm5zOltdfTtyZXR1cm4gZS5iYy5vbm1lc3NhZ2U9ZnVuY3Rpb24oYSl7ZS5tZXNzYWdlc0NhbGxiYWNrJiZlLm1lc3NhZ2VzQ2FsbGJhY2soYS5kYXRhKX0sZX1mdW5jdGlvbiBkJHQodCl7dC5iYy5jbG9zZSgpLHQuc3ViRm5zPVtdfWZ1bmN0aW9uIHAkdCh0LGUpe3RyeXtyZXR1cm4gdC5iYy5wb3N0TWVzc2FnZShlLCExKSxSYX1jYXRjaChhKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoYSl9fWZ1bmN0aW9uIGgkdCh0LGUpe3QubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIHUkdCgpe2lmKHR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmZ2xvYmFsVGhpcy5EZW5vJiZnbG9iYWxUaGlzLkRlbm8uYXJncylyZXR1cm4hMDtpZigodHlwZW9mIHdpbmRvdzwidSJ8fHR5cGVvZiBzZWxmPCJ1IikmJnR5cGVvZiBCcm9hZGNhc3RDaGFubmVsPT0iZnVuY3Rpb24iKXtpZihCcm9hZGNhc3RDaGFubmVsLl9wdWJrZXkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBEbyBub3Qgb3ZlcndyaXRlIHdpbmRvdy5Ccm9hZGNhc3RDaGFubmVsIHdpdGggdGhpcyBtb2R1bGUsIHRoaXMgaXMgbm90IGEgcG9seWZpbGwiKTtyZXR1cm4hMH1lbHNlIHJldHVybiExfWZ1bmN0aW9uIGYkdCgpe3JldHVybiAxNTB9dmFyIG8kdCxsJHQsWjFlLFgxZT1iKCgpPT57RW4oKTtvJHQ9ZnMsbCR0PSJuYXRpdmUiO1oxZT17Y3JlYXRlOmMkdCxjbG9zZTpkJHQsb25NZXNzYWdlOmgkdCxwb3N0TWVzc2FnZTpwJHQsY2FuQmVVc2VkOnUkdCx0eXBlOmwkdCxhdmVyYWdlUmVzcG9uc2VUaW1lOmYkdCxtaWNyb1NlY29uZHM6byR0fX0pO2Z1bmN0aW9uIG0kdCh0KXtsZXQgZT1NXygpLXQudHRsLGE9dC5tYXBbU3ltYm9sLml0ZXJhdG9yXSgpO2Zvcig7Oyl7bGV0IGk9YS5uZXh0KCkudmFsdWU7aWYoIWkpYnJlYWs7bGV0IHI9aVswXTtpZihpWzFdPGUpdC5tYXAuZGVsZXRlKHIpO2Vsc2UgYnJlYWt9fWZ1bmN0aW9uIE1fKCl7cmV0dXJuIERhdGUubm93KCl9dmFyIHozLHpfPWIoKCk9Pnt6Mz1jbGFzc3t0dGw7bWFwPW5ldyBNYXA7X3RvPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMudHRsPWV9aGFzKGUpe2xldCBhPXRoaXMubWFwLmdldChlKTtyZXR1cm4gdHlwZW9mIGE+InUiPyExOmE8TV8oKS10aGlzLnR0bD8odGhpcy5tYXAuZGVsZXRlKGUpLCExKTohMH1hZGQoZSl7dGhpcy5tYXAuZGVsZXRlKGUpLHRoaXMubWFwLnNldChlLE1fKCkpLHRoaXMuX3RvfHwodGhpcy5fdG89ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuX3RvPSExLG0kdCh0aGlzKX0sMCkpfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19fSk7ZnVuY3Rpb24gbjAoKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKTtyZXR1cm4gdHlwZW9mIGUud2ViV29ya2VyU3VwcG9ydD4idSImJihlLndlYldvcmtlclN1cHBvcnQ9ITApLGUuaWRifHwoZS5pZGI9e30pLGUuaWRiLnR0bHx8KGUuaWRiLnR0bD0xZTMqNDUpLGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWx8fChlLmlkYi5mYWxsYmFja0ludGVydmFsPTE1MCksdC5pZGImJnR5cGVvZiB0LmlkYi5vbmNsb3NlPT0iZnVuY3Rpb24iJiYoZS5pZGIub25jbG9zZT10LmlkYi5vbmNsb3NlKSxlLmxvY2Fsc3RvcmFnZXx8KGUubG9jYWxzdG9yYWdlPXt9KSxlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0fHwoZS5sb2NhbHN0b3JhZ2UucmVtb3ZlVGltZW91dD0xZTMqNjApLHQubWV0aG9kcyYmKGUubWV0aG9kcz10Lm1ldGhvZHMpLGUubm9kZXx8KGUubm9kZT17fSksZS5ub2RlLnR0bHx8KGUubm9kZS50dGw9MWUzKjYwKjIpLGUubm9kZS5tYXhQYXJhbGxlbFdyaXRlc3x8KGUubm9kZS5tYXhQYXJhbGxlbFdyaXRlcz0yMDQ4KSx0eXBlb2YgZS5ub2RlLnVzZUZhc3RQYXRoPiJ1IiYmKGUubm9kZS51c2VGYXN0UGF0aD0hMCksZX12YXIgYTk9YigoKT0+e30pO2Z1bmN0aW9uIEsxZSgpe2lmKHR5cGVvZiBpbmRleGVkREI8InUiKXJldHVybiBpbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdzwidSIpe2lmKHR5cGVvZiB3aW5kb3cubW96SW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93Lm1vekluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93LndlYmtpdEluZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy53ZWJraXRJbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdy5tc0luZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy5tc0luZGV4ZWREQn1yZXR1cm4hMX1mdW5jdGlvbiBpOSh0KXt0LmNvbW1pdCYmdC5jb21taXQoKX1mdW5jdGlvbiB5JHQodCl7dmFyIGU9SzFlKCksYT1iJHQrdCxpPWUub3BlbihhKTtyZXR1cm4gaS5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24ocil7dmFyIHM9ci50YXJnZXQucmVzdWx0O3MuY3JlYXRlT2JqZWN0U3RvcmUoSWkse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSl9LG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIscyl7aS5vbmVycm9yPWZ1bmN0aW9uKG4pe3JldHVybiBzKG4pfSxpLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3IoaS5yZXN1bHQpfX0pfWZ1bmN0aW9uIHgkdCh0LGUsYSl7dmFyIGk9RGF0ZS5ub3coKSxyPXt1dWlkOmUsdGltZTppLGRhdGE6YX0scz10LnRyYW5zYWN0aW9uKFtJaV0sInJlYWR3cml0ZSIsUzYpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLG8pe3Mub25jb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiBuKCl9LHMub25lcnJvcj1mdW5jdGlvbihjKXtyZXR1cm4gbyhjKX07dmFyIGQ9cy5vYmplY3RTdG9yZShJaSk7ZC5hZGQociksaTkocyl9KX1mdW5jdGlvbiB3QzEodCl7dmFyIGU9dC50cmFuc2FjdGlvbihJaSwicmVhZG9ubHkiLFM2KSxhPWUub2JqZWN0U3RvcmUoSWkpLGk9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe2Eub3BlbkN1cnNvcigpLm9uc3VjY2Vzcz1mdW5jdGlvbihzKXt2YXIgbj1zLnRhcmdldC5yZXN1bHQ7bj8oaS5wdXNoKG4udmFsdWUpLG4uY29udGludWUoKSk6KGk5KGUpLHIoaSkpfX0pfWZ1bmN0aW9uIHckdCh0LGUpe3ZhciBhPXQudHJhbnNhY3Rpb24oSWksInJlYWRvbmx5IixTNiksaT1hLm9iamVjdFN0b3JlKElpKSxyPVtdLHM9SURCS2V5UmFuZ2UuYm91bmQoZSsxLDEvMCk7aWYoaS5nZXRBbGwpe3ZhciBuPWkuZ2V0QWxsKHMpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGMpe24ub25lcnJvcj1mdW5jdGlvbihwKXtyZXR1cm4gYyhwKX0sbi5vbnN1Y2Nlc3M9ZnVuY3Rpb24ocCl7ZChwLnRhcmdldC5yZXN1bHQpfX0pfWZ1bmN0aW9uIG8oKXt0cnl7cmV0dXJuIHM9SURCS2V5UmFuZ2UuYm91bmQoZSsxLDEvMCksaS5vcGVuQ3Vyc29yKHMpfWNhdGNoe3JldHVybiBpLm9wZW5DdXJzb3IoKX19cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsYyl7dmFyIHA9bygpO3Aub25lcnJvcj1mdW5jdGlvbihsKXtyZXR1cm4gYyhsKX0scC5vbnN1Y2Nlc3M9ZnVuY3Rpb24obCl7dmFyIGY9bC50YXJnZXQucmVzdWx0O2Y/Zi52YWx1ZS5pZDxlKzE/Zi5jb250aW51ZShlKzEpOihyLnB1c2goZi52YWx1ZSksZi5jb250aW51ZSgpKTooaTkoYSksZChyKSl9fSl9ZnVuY3Rpb24gTSR0KHQsZSl7aWYodC5jbG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7dmFyIGE9dC5kYi50cmFuc2FjdGlvbihJaSwicmVhZHdyaXRlIixTNiksaT1hLm9iamVjdFN0b3JlKElpKTtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoZnVuY3Rpb24ocil7dmFyIHM9aS5kZWxldGUocik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4pe3Mub25zdWNjZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4oKX19KX0pKX1mdW5jdGlvbiB6JHQodCxlKXt2YXIgYT1EYXRlLm5vdygpLWUsaT10LnRyYW5zYWN0aW9uKElpLCJyZWFkb25seSIsUzYpLHI9aS5vYmplY3RTdG9yZShJaSkscz1bXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obil7ci5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKG8pe3ZhciBkPW8udGFyZ2V0LnJlc3VsdDtpZihkKXt2YXIgYz1kLnZhbHVlO2MudGltZTxhPyhzLnB1c2goYyksZC5jb250aW51ZSgpKTooaTkoaSksbihzKSl9ZWxzZSBuKHMpfX0pfWZ1bmN0aW9uIGskdCh0KXtyZXR1cm4geiR0KHQuZGIsdC5vcHRpb25zLmlkYi50dGwpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIE0kdCh0LGUubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkfSkpfSl9ZnVuY3Rpb24gUyR0KHQsZSl7cmV0dXJuIGU9bjAoZSkseSR0KHQpLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGk9e2Nsb3NlZDohMSxsYXN0Q3Vyc29ySWQ6MCxjaGFubmVsTmFtZTp0LG9wdGlvbnM6ZSx1dWlkOnVzKCksZU1JczpuZXcgejMoZS5pZGIudHRsKjIpLHdyaXRlQmxvY2tQcm9taXNlOlJhLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxyZWFkUXVldWVQcm9taXNlczpbXSxkYjphfTtyZXR1cm4gYS5vbmNsb3NlPWZ1bmN0aW9uKCl7aS5jbG9zZWQ9ITAsZS5pZGIub25jbG9zZSYmZS5pZGIub25jbG9zZSgpfSxRMWUoaSksaX0pfWZ1bmN0aW9uIFExZSh0KXt0LmNsb3NlZHx8SjFlKHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gQ3IodC5vcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUTFlKHQpfSl9ZnVuY3Rpb24gQyR0KHQsZSl7cmV0dXJuISh0LnV1aWQ9PT1lLnV1aWR8fGUuZU1Jcy5oYXModC5pZCl8fHQuZGF0YS50aW1lPGUubWVzc2FnZXNDYWxsYmFja1RpbWUpfWZ1bmN0aW9uIEoxZSh0KXtyZXR1cm4gdC5jbG9zZWQ/UmE6dC5tZXNzYWdlc0NhbGxiYWNrP3ckdCh0LmRiLHQubGFzdEN1cnNvcklkKS50aGVuKGZ1bmN0aW9uKGUpe3ZhciBhPWUuZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiEhaX0pLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD50Lmxhc3RDdXJzb3JJZCYmKHQubGFzdEN1cnNvcklkPWkuaWQpLGl9KS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIEMkdChpLHQpfSkuc29ydChmdW5jdGlvbihpLHIpe3JldHVybiBpLnRpbWUtci50aW1lfSk7cmV0dXJuIGEuZm9yRWFjaChmdW5jdGlvbihpKXt0Lm1lc3NhZ2VzQ2FsbGJhY2smJih0LmVNSXMuYWRkKGkuaWQpLHQubWVzc2FnZXNDYWxsYmFjayhpLmRhdGEpKX0pLFJhfSk6UmF9ZnVuY3Rpb24gXyR0KHQpe3QuY2xvc2VkPSEwLHQuZGIuY2xvc2UoKX1mdW5jdGlvbiBUJHQodCxlKXtyZXR1cm4gdC53cml0ZUJsb2NrUHJvbWlzZT10LndyaXRlQmxvY2tQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4geCR0KHQuZGIsdC51dWlkLGUpfSkudGhlbihmdW5jdGlvbigpe0cxZSgwLDEwKT09PTAmJmskdCh0KX0pLHQud3JpdGVCbG9ja1Byb21pc2V9ZnVuY3Rpb24gTCR0KHQsZSxhKXt0Lm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPWEsdC5tZXNzYWdlc0NhbGxiYWNrPWUsSjFlKHQpfWZ1bmN0aW9uICQkdCgpe3JldHVybiEhSzFlKCl9ZnVuY3Rpb24gQSR0KHQpe3JldHVybiB0LmlkYi5mYWxsYmFja0ludGVydmFsKjJ9dmFyIGckdCxiJHQsSWksUzYsdiR0LGUyZSx0MmU9YigoKT0+e0VuKCk7el8oKTthOSgpO2ckdD1mcyxiJHQ9InB1YmtleS5icm9hZGNhc3QtY2hhbm5lbC0wLSIsSWk9Im1lc3NhZ2VzIixTNj17ZHVyYWJpbGl0eToicmVsYXhlZCJ9LHYkdD0iaWRiIjtlMmU9e2NyZWF0ZTpTJHQsY2xvc2U6XyR0LG9uTWVzc2FnZTpMJHQscG9zdE1lc3NhZ2U6VCR0LGNhbkJlVXNlZDokJHQsdHlwZTp2JHQsYXZlcmFnZVJlc3BvbnNlVGltZTpBJHQsbWljcm9TZWNvbmRzOmckdH19KTtmdW5jdGlvbiBhMmUoKXt2YXIgdDtpZih0eXBlb2Ygd2luZG93PiJ1IilyZXR1cm4gbnVsbDt0cnl7dD13aW5kb3cubG9jYWxTdG9yYWdlLHQ9d2luZG93WyJpZTgtZXZlbnRsaXN0ZW5lci9zdG9yYWdlIl18fHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2h7fXJldHVybiB0fWZ1bmN0aW9uIGkyZSh0KXtyZXR1cm4gRSR0K3R9ZnVuY3Rpb24gSSR0KHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEpe0NyKCkudGhlbihmdW5jdGlvbigpe3ZhciBpPWkyZSh0LmNoYW5uZWxOYW1lKSxyPXt0b2tlbjp1cygpLHRpbWU6RGF0ZS5ub3coKSxkYXRhOmUsdXVpZDp0LnV1aWR9LHM9SlNPTi5zdHJpbmdpZnkocik7YTJlKCkuc2V0SXRlbShpLHMpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO24uaW5pdEV2ZW50KCJzdG9yYWdlIiwhMCwhMCksbi5rZXk9aSxuLm5ld1ZhbHVlPXMsd2luZG93LmRpc3BhdGNoRXZlbnQobiksYSgpfSl9KX1mdW5jdGlvbiBOJHQodCxlKXt2YXIgYT1pMmUodCksaT1mdW5jdGlvbihzKXtzLmtleT09PWEmJmUoSlNPTi5wYXJzZShzLm5ld1ZhbHVlKSl9O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsaSksaX1mdW5jdGlvbiBGJHQodCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLHQpfWZ1bmN0aW9uIE8kdCh0LGUpe2lmKGU9bjAoZSksIXIyZSgpKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbDogbG9jYWxzdG9yYWdlIGNhbm5vdCBiZSB1c2VkIik7dmFyIGE9dXMoKSxpPW5ldyB6MyhlLmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0KSxyPXtjaGFubmVsTmFtZTp0LHV1aWQ6YSxlTUlzOml9O3JldHVybiByLmxpc3RlbmVyPU4kdCh0LGZ1bmN0aW9uKHMpe3IubWVzc2FnZXNDYWxsYmFjayYmcy51dWlkIT09YSYmKCFzLnRva2VufHxpLmhhcyhzLnRva2VuKXx8cy5kYXRhLnRpbWUmJnMuZGF0YS50aW1lPHIubWVzc2FnZXNDYWxsYmFja1RpbWV8fChpLmFkZChzLnRva2VuKSxyLm1lc3NhZ2VzQ2FsbGJhY2socy5kYXRhKSkpfSkscn1mdW5jdGlvbiBSJHQodCl7RiR0KHQubGlzdGVuZXIpfWZ1bmN0aW9uIEIkdCh0LGUsYSl7dC5tZXNzYWdlc0NhbGxiYWNrVGltZT1hLHQubWVzc2FnZXNDYWxsYmFjaz1lfWZ1bmN0aW9uIHIyZSgpe3ZhciB0PWEyZSgpO2lmKCF0KXJldHVybiExO3RyeXt2YXIgZT0iX19icm9hZGNhc3RjaGFubmVsX2NoZWNrIjt0LnNldEl0ZW0oZSwid29ya3MiKSx0LnJlbW92ZUl0ZW0oZSl9Y2F0Y2h7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gSCR0KCl7dmFyIHQ9MTIwLGU9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO3JldHVybiBlLmluY2x1ZGVzKCJzYWZhcmkiKSYmIWUuaW5jbHVkZXMoImNocm9tZSIpP3QqMjp0fXZhciBEJHQsRSR0LFAkdCxzMmUsbjJlPWIoKCk9Pnt6XygpO2E5KCk7RW4oKTtEJHQ9ZnMsRSR0PSJwdWJrZXkuYnJvYWRjYXN0Q2hhbm5lbC0iLFAkdD0ibG9jYWxzdG9yYWdlIjtzMmU9e2NyZWF0ZTpPJHQsY2xvc2U6UiR0LG9uTWVzc2FnZTpCJHQscG9zdE1lc3NhZ2U6SSR0LGNhbkJlVXNlZDpyMmUsdHlwZTpQJHQsYXZlcmFnZVJlc3BvbnNlVGltZTpIJHQsbWljcm9TZWNvbmRzOkQkdH19KTtmdW5jdGlvbiBWJHQodCl7dmFyIGU9e3RpbWU6bzJlKCksbmFtZTp0LG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbH07cmV0dXJuIGtfLmFkZChlKSxlfWZ1bmN0aW9uIGokdCh0KXtrXy5kZWxldGUodCl9ZnVuY3Rpb24gVSR0KHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGk9QXJyYXkuZnJvbShrXyk7aS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3IubmFtZT09PXQubmFtZSYmciE9PXQmJnIubWVzc2FnZXNDYWxsYmFjayYmci50aW1lPGUudGltZSYmci5tZXNzYWdlc0NhbGxiYWNrKGUpfSksYSgpfSxsMmUpfSl9ZnVuY3Rpb24gVyR0KHQsZSl7dC5tZXNzYWdlc0NhbGxiYWNrPWV9ZnVuY3Rpb24gRyR0KCl7cmV0dXJuITB9ZnVuY3Rpb24gWSR0KCl7cmV0dXJuIGwyZX12YXIgbzJlLHEkdCxrXyxsMmUsYzJlLGQyZT1iKCgpPT57RW4oKTtvMmU9ZnMscSR0PSJzaW11bGF0ZSIsa189bmV3IFNldDtsMmU9NTtjMmU9e2NyZWF0ZTpWJHQsY2xvc2U6aiR0LG9uTWVzc2FnZTpXJHQscG9zdE1lc3NhZ2U6VSR0LGNhbkJlVXNlZDpHJHQsdHlwZTpxJHQsYXZlcmFnZVJlc3BvbnNlVGltZTpZJHQsbWljcm9TZWNvbmRzOm8yZX19KTtmdW5jdGlvbiBTXyh0KXt2YXIgZT1bXS5jb25jYXQodC5tZXRob2RzLHAyZSkuZmlsdGVyKEJvb2xlYW4pO2lmKHQudHlwZSl7aWYodC50eXBlPT09InNpbXVsYXRlIilyZXR1cm4gYzJlO3ZhciBhPWUuZmluZChmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlPT09dC50eXBlfSk7aWYoYSlyZXR1cm4gYTt0aHJvdyBuZXcgRXJyb3IoIm1ldGhvZC10eXBlICIrdC50eXBlKyIgbm90IGZvdW5kIil9dC53ZWJXb3JrZXJTdXBwb3J0fHwoZT1lLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlIT09ImlkYiJ9KSk7dmFyIGk9ZS5maW5kKGZ1bmN0aW9uKHIpe3JldHVybiByLmNhbkJlVXNlZCgpfSk7aWYoaSlyZXR1cm4gaTt0aHJvdyBuZXcgRXJyb3IoIk5vIHVzYWJsZSBtZXRob2QgZm91bmQgaW4gIitKU09OLnN0cmluZ2lmeShwMmUubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLnR5cGV9KSkpfXZhciBwMmUsaDJlPWIoKCk9PntYMWUoKTt0MmUoKTtuMmUoKTtkMmUoKTtwMmU9W1oxZSxlMmUsczJlXX0pO2Z1bmN0aW9uIFgkdCh0KXt0PW4wKHQpO3ZhciBlPVNfKHQpO3JldHVybiBlLnR5cGU9PT0ibm9kZSI/ZS5jbGVhck5vZGVGb2xkZXIoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KTpVMWV9ZnVuY3Rpb24gSyR0KHQpe0NfPXR9ZnVuY3Rpb24gdTJlKHQsZSxhKXt2YXIgaT10Lm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmksdHlwZTplLGRhdGE6YX0scz10Ll9wcmVwUD90Ll9wcmVwUDpSYTtyZXR1cm4gcy50aGVuKGZ1bmN0aW9uKCl7dmFyIG49dC5tZXRob2QucG9zdE1lc3NhZ2UodC5fc3RhdGUscik7cmV0dXJuIHQuX3VNUC5hZGQobiksbi5jYXRjaCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5fdU1QLmRlbGV0ZShuKX0pLG59KX1mdW5jdGlvbiBRJHQodCl7dmFyIGU9dC5tZXRob2QuY3JlYXRlKHQubmFtZSx0Lm9wdGlvbnMpO2oxZShlKT8odC5fcHJlcFA9ZSxlLnRoZW4oZnVuY3Rpb24oYSl7dC5fc3RhdGU9YX0pKTp0Ll9zdGF0ZT1lfWZ1bmN0aW9uIGYyZSh0KXtyZXR1cm4gdC5fYWRkRUwubWVzc2FnZS5sZW5ndGg+MHx8dC5fYWRkRUwuaW50ZXJuYWwubGVuZ3RoPjB9ZnVuY3Rpb24gbTJlKHQsZSxhKXt0Ll9hZGRFTFtlXS5wdXNoKGEpLEokdCh0KX1mdW5jdGlvbiBnMmUodCxlLGEpe3QuX2FkZEVMW2VdPXQuX2FkZEVMW2VdLmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaSE9PWF9KSxlQXQodCl9ZnVuY3Rpb24gSiR0KHQpe2lmKCF0Ll9pTCYmZjJlKHQpKXt2YXIgZT1mdW5jdGlvbihyKXt0Ll9hZGRFTFtyLnR5cGVdLmZvckVhY2goZnVuY3Rpb24ocyl7ci50aW1lPj1zLnRpbWUmJnMuZm4oci5kYXRhKX0pfSxhPXQubWV0aG9kLm1pY3JvU2Vjb25kcygpO3QuX3ByZXBQP3QuX3ByZXBQLnRoZW4oZnVuY3Rpb24oKXt0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxhKX0pOih0Ll9pTD0hMCx0Lm1ldGhvZC5vbk1lc3NhZ2UodC5fc3RhdGUsZSxhKSl9fWZ1bmN0aW9uIGVBdCh0KXtpZih0Ll9pTCYmIWYyZSh0KSl7dC5faUw9ITE7dmFyIGU9dC5tZXRob2QubWljcm9TZWNvbmRzKCk7dC5tZXRob2Qub25NZXNzYWdlKHQuX3N0YXRlLG51bGwsZSl9fXZhciBfXyxaJHQsbzAsQ18sYjJlPWIoKCk9PntFbigpO2gyZSgpO2E5KCk7X189bmV3IFNldCxaJHQ9MCxvMD1mdW5jdGlvbihlLGEpe3RoaXMuaWQ9WiR0KyssX18uYWRkKHRoaXMpLHRoaXMubmFtZT1lLENfJiYoYT1DXyksdGhpcy5vcHRpb25zPW4wKGEpLHRoaXMubWV0aG9kPVNfKHRoaXMub3B0aW9ucyksdGhpcy5faUw9ITEsdGhpcy5fb25NTD1udWxsLHRoaXMuX2FkZEVMPXttZXNzYWdlOltdLGludGVybmFsOltdfSx0aGlzLl91TVA9bmV3IFNldCx0aGlzLl9iZWZDPVtdLHRoaXMuX3ByZXBQPW51bGwsUSR0KHRoaXMpfTtvMC5fcHVia2V5PSEwO28wLnByb3RvdHlwZT17cG9zdE1lc3NhZ2U6ZnVuY3Rpb24oZSl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKCk6IENhbm5vdCBwb3N0IG1lc3NhZ2UgYWZ0ZXIgY2hhbm5lbCBoYXMgY2xvc2VkICIrSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiB1MmUodGhpcywibWVzc2FnZSIsZSl9LHBvc3RJbnRlcm5hbDpmdW5jdGlvbihlKXtyZXR1cm4gdTJlKHRoaXMsImludGVybmFsIixlKX0sc2V0IG9ubWVzc2FnZSh0KXt2YXIgZT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxhPXt0aW1lOmUsZm46dH07ZzJlKHRoaXMsIm1lc3NhZ2UiLHRoaXMuX29uTUwpLHQmJnR5cGVvZiB0PT0iZnVuY3Rpb24iPyh0aGlzLl9vbk1MPWEsbTJlKHRoaXMsIm1lc3NhZ2UiLGEpKTp0aGlzLl9vbk1MPW51bGx9LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oZSxhKXt2YXIgaT10aGlzLm1ldGhvZC5taWNyb1NlY29uZHMoKSxyPXt0aW1lOmksZm46YX07bTJlKHRoaXMsZSxyKX0scmVtb3ZlRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihlLGEpe3ZhciBpPXRoaXMuX2FkZEVMW2VdLmZpbmQoZnVuY3Rpb24ocil7cmV0dXJuIHIuZm49PT1hfSk7ZzJlKHRoaXMsZSxpKX0sY2xvc2U6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCF0aGlzLmNsb3NlZCl7X18uZGVsZXRlKHRoaXMpLHRoaXMuY2xvc2VkPSEwO3ZhciBhPXRoaXMuX3ByZXBQP3RoaXMuX3ByZXBQOlJhO3JldHVybiB0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUwubWVzc2FnZT1bXSxhLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbShlLl91TVApKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5fYmVmQy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIGkoKX0pKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZS5tZXRob2QuY2xvc2UoZS5fc3RhdGUpfSl9fSxnZXQgdHlwZSgpe3JldHVybiB0aGlzLm1ldGhvZC50eXBlfSxnZXQgaXNDbG9zZWQoKXtyZXR1cm4gdGhpcy5jbG9zZWR9fX0pO2Z1bmN0aW9uIHYyZSh0KXtpZih0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU9PSJmdW5jdGlvbiImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSl7dmFyIGU9c2VsZi5jbG9zZS5iaW5kKHNlbGYpO3NlbGYuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4gdCgpLGUoKX19ZWxzZXtpZih0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIhPSJmdW5jdGlvbiIpcmV0dXJuO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7dCgpfSwhMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZnVuY3Rpb24oKXt0KCl9LCEwKX19dmFyIHkyZT1iKCgpPT57fSk7ZnVuY3Rpb24geDJlKHQpe3Byb2Nlc3Mub24oImV4aXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQoKX0pLHByb2Nlc3Mub24oImJlZm9yZUV4aXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHByb2Nlc3MuZXhpdCgpfSl9KSxwcm9jZXNzLm9uKCJTSUdJTlQiLGZ1bmN0aW9uKCl7cmV0dXJuIHQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHByb2Nlc3MuZXhpdCgpfSl9KSxwcm9jZXNzLm9uKCJ1bmNhdWdodEV4Y2VwdGlvbiIsZnVuY3Rpb24oZSl7cmV0dXJuIHQoKS50aGVuKGZ1bmN0aW9uKCl7Y29uc29sZS50cmFjZShlKSxwcm9jZXNzLmV4aXQoMTAxKX0pfSl9dmFyIHcyZT1iKCgpPT57fSk7ZnVuY3Rpb24gaUF0KCl7TTJlfHwoTTJlPSEwLGFBdChyQXQpKX1mdW5jdGlvbiB6MmUodCl7aWYoaUF0KCksdHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJMaXN0ZW5lciBpcyBubyBmdW5jdGlvbiIpO2wwLmFkZCh0KTt2YXIgZT17cmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGwwLmRlbGV0ZSh0KX0scnVuOmZ1bmN0aW9uKCl7cmV0dXJuIGwwLmRlbGV0ZSh0KSx0KCl9fTtyZXR1cm4gZX1mdW5jdGlvbiByQXQoKXt2YXIgdD1bXTtyZXR1cm4gbDAuZm9yRWFjaChmdW5jdGlvbihlKXt0LnB1c2goZSgpKSxsMC5kZWxldGUoZSl9KSxQcm9taXNlLmFsbCh0KX1mdW5jdGlvbiBxQzEoKXtsMC5jbGVhcigpfWZ1bmN0aW9uIFZDMSgpe3JldHVybiBsMC5zaXplfXZhciB0QXQsYUF0LGwwLE0yZSxrMmU9YigoKT0+e3kyZSgpO3cyZSgpO3RBdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodHlwZW9mIHByb2Nlc3M8InUiP3Byb2Nlc3M6MCk9PT0iW29iamVjdCBwcm9jZXNzXSIsYUF0PXRBdD94MmU6djJlLGwwPW5ldyBTZXQsTTJlPSExfSk7ZnVuY3Rpb24gbXModCxlKXt2YXIgYT17Y29udGV4dDoibGVhZGVyIixhY3Rpb246ZSx0b2tlbjp0LnRva2VufTtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLnBvc3RJbnRlcm5hbChhKX1mdW5jdGlvbiBDNih0KXt0LmlzTGVhZGVyPSEwLHQuX2hhc0xlYWRlcj0hMDt2YXIgZT16MmUoZnVuY3Rpb24oKXtyZXR1cm4gdC5kaWUoKX0pO3QuX3VubC5wdXNoKGUpO3ZhciBhPWZ1bmN0aW9uKHIpe3IuY29udGV4dD09PSJsZWFkZXIiJiZyLmFjdGlvbj09PSJhcHBseSImJm1zKHQsInRlbGwiKSxyLmNvbnRleHQ9PT0ibGVhZGVyIiYmci5hY3Rpb249PT0idGVsbCImJiF0Ll9kcExDJiYodC5fZHBMQz0hMCx0Ll9kcEwoKSxtcyh0LCJ0ZWxsIikpfTtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixhKSx0Ll9sc3Rucy5wdXNoKGEpLG1zKHQsInRlbGwiKX12YXIgcjk9YigoKT0+e2syZSgpfSk7dmFyIFRfLFMyZSxDMmU9YigoKT0+e0VuKCk7cjkoKTtUXz1mdW5jdGlvbihlLGEpe3ZhciBpPXRoaXM7dGhpcy5icm9hZGNhc3RDaGFubmVsPWUsZS5fYmVmQy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGllKCl9KSx0aGlzLl9vcHRpb25zPWEsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPXVzKCksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sPVtdLHRoaXMuX2RwTD1mdW5jdGlvbigpe30sdGhpcy5fZHBMQz0hMSx0aGlzLl93S01DPXt9LHRoaXMubE49InB1YmtleS1iY3x8IitlLm1ldGhvZC50eXBlKyJ8fCIrZS5uYW1lfSxTMmU9IkxlYWRlckVsZWN0aW9uV2ViTG9jay5kaWUoKSBjYWxsZWQiO1RfLnByb3RvdHlwZT17aGFzTGVhZGVyOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihmdW5jdGlvbihhKXt2YXIgaT1hLmhlbGQ/YS5oZWxkLmZpbHRlcihmdW5jdGlvbihyKXtyZXR1cm4gci5uYW1lPT09ZS5sTn0pOltdO3JldHVybiEhKGkmJmkubGVuZ3RoPjApfSl9LGF3YWl0TGVhZGVyc2hpcDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX3dMTVApe3RoaXMuX3dLTUMuYz1uZXcgQWJvcnRDb250cm9sbGVyO3ZhciBhPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkscil7ZS5fd0tNQy5yZXM9aSxlLl93S01DLnJlaj1yfSk7dGhpcy5fd0xNUD1uZXcgUHJvbWlzZShmdW5jdGlvbihpLHIpe25hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KGUubE4se3NpZ25hbDplLl93S01DLmMuc2lnbmFsfSxmdW5jdGlvbigpe3JldHVybiBlLl93S01DLmM9dm9pZCAwLEM2KGUpLGkoKSxhfSkuY2F0Y2goZnVuY3Rpb24ocyl7cy5tZXNzYWdlJiZzLm1lc3NhZ2U9PT1TMmV8fChlLl93S01DLnJlaiYmZS5fd0tNQy5yZWoocykscihzKSl9KX0pfXJldHVybiB0aGlzLl93TE1QfSxzZXQgb25kdXBsaWNhdGUodCl7fSxkaWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGEpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLHRoaXMuX3dLTUMucmVzJiZ0aGlzLl93S01DLnJlcygpLHRoaXMuX3dLTUMuYyYmdGhpcy5fd0tNQy5jLmFib3J0KG5ldyBFcnJvcihTMmUpKSxtcyh0aGlzLCJkZWF0aCIpfX19KTtmdW5jdGlvbiBzQXQodCl7cmV0dXJuIHQuaXNMZWFkZXI/UmE6bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dmFyIGE9ITE7ZnVuY3Rpb24gaSgpe2F8fChhPSEwLHQuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIscyksZSghMCkpfXQuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbigpe3QuaXNMZWFkZXImJmkoKX0pO3ZhciByPWZ1bmN0aW9uKCl7cmV0dXJuIENyKHQuX29wdGlvbnMuZmFsbGJhY2tJbnRlcnZhbCkudGhlbihmdW5jdGlvbigpe2lmKCEodC5pc0RlYWR8fGEpKWlmKHQuaXNMZWFkZXIpaSgpO2Vsc2UgcmV0dXJuIHQuYXBwbHlPbmNlKCEwKS50aGVuKGZ1bmN0aW9uKCl7dC5pc0xlYWRlcj9pKCk6cigpfSl9KX07cigpO3ZhciBzPWZ1bmN0aW9uKG8pe28uY29udGV4dD09PSJsZWFkZXIiJiZvLmFjdGlvbj09PSJkZWF0aCImJih0Ll9oYXNMZWFkZXI9ITEsdC5hcHBseU9uY2UoKS50aGVuKGZ1bmN0aW9uKCl7dC5pc0xlYWRlciYmaSgpfSkpfTt0LmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHMpLHQuX2xzdG5zLnB1c2gocyl9KX1mdW5jdGlvbiBuQXQodCxlKXtyZXR1cm4gdHx8KHQ9e30pLHQ9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0KSksdC5mYWxsYmFja0ludGVydmFsfHwodC5mYWxsYmFja0ludGVydmFsPTNlMyksdC5yZXNwb25zZVRpbWV8fCh0LnJlc3BvbnNlVGltZT1lLm1ldGhvZC5hdmVyYWdlUmVzcG9uc2VUaW1lKGUub3B0aW9ucykpLHR9ZnVuY3Rpb24gb0F0KHQsZSl7aWYodC5fbGVhZGVyRWxlY3Rvcil0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWwgYWxyZWFkeSBoYXMgYSBsZWFkZXItZWxlY3RvciIpO2U9bkF0KGUsdCk7dmFyIGE9WTFlKCk/bmV3IFRfKHQsZSk6bmV3IF8yZSh0LGUpO3JldHVybiB0Ll9iZWZDLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gYS5kaWUoKX0pLHQuX2xlYWRlckVsZWN0b3I9YSxhfXZhciBfMmUsVDJlPWIoKCk9PntFbigpO3I5KCk7QzJlKCk7XzJlPWZ1bmN0aW9uKGUsYSl7dmFyIGk9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9ZSx0aGlzLl9vcHRpb25zPWEsdGhpcy5pc0xlYWRlcj0hMSx0aGlzLl9oYXNMZWFkZXI9ITEsdGhpcy5pc0RlYWQ9ITEsdGhpcy50b2tlbj11cygpLHRoaXMuX2FwbFE9UmEsdGhpcy5fYXBsUUM9MCx0aGlzLl91bmw9W10sdGhpcy5fbHN0bnM9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExO3ZhciByPWZ1bmN0aW9uKG4pe24uY29udGV4dD09PSJsZWFkZXIiJiYobi5hY3Rpb249PT0iZGVhdGgiJiYoaS5faGFzTGVhZGVyPSExKSxuLmFjdGlvbj09PSJ0ZWxsIiYmKGkuX2hhc0xlYWRlcj0hMCkpfTt0aGlzLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHIpLHRoaXMuX2xzdG5zLnB1c2gocil9O18yZS5wcm90b3R5cGU9e2hhc0xlYWRlcjpmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5faGFzTGVhZGVyKX0sYXBwbHlPbmNlOmZ1bmN0aW9uKGUpe3ZhciBhPXRoaXM7aWYodGhpcy5pc0xlYWRlcilyZXR1cm4gQ3IoMCwhMCk7aWYodGhpcy5pc0RlYWQpcmV0dXJuIENyKDAsITEpO2lmKHRoaXMuX2FwbFFDPjEpcmV0dXJuIHRoaXMuX2FwbFE7dmFyIGk9ZnVuY3Rpb24oKXtpZihhLmlzTGVhZGVyKXJldHVybiBXMWU7dmFyIHM9ITEsbixvPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHApe249ZnVuY3Rpb24oKXtzPSEwLHAoKX19KSxkPWZ1bmN0aW9uKGwpe2wuY29udGV4dD09PSJsZWFkZXIiJiZsLnRva2VuIT1hLnRva2VuJiYobC5hY3Rpb249PT0iYXBwbHkiJiZsLnRva2VuPmEudG9rZW4mJm4oKSxsLmFjdGlvbj09PSJ0ZWxsIiYmKG4oKSxhLl9oYXNMZWFkZXI9ITApKX07YS5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixkKTt2YXIgYz1lP2EuX29wdGlvbnMucmVzcG9uc2VUaW1lKjQ6YS5fb3B0aW9ucy5yZXNwb25zZVRpbWU7cmV0dXJuIG1zKGEsImFwcGx5IikudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW0NyKGMpLG8udGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbXMoYSwiYXBwbHkiKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yYWNlKFtDcihjKSxvLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKX0pXSl9KS5jYXRjaChmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYS5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixkKSxzPyExOkM2KGEpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pfSl9O3JldHVybiB0aGlzLl9hcGxRQz10aGlzLl9hcGxRQysxLHRoaXMuX2FwbFE9dGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGkoKX0pLnRoZW4oZnVuY3Rpb24oKXthLl9hcGxRQz1hLl9hcGxRQy0xfSksdGhpcy5fYXBsUS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGEuaXNMZWFkZXJ9KX0sYXdhaXRMZWFkZXJzaGlwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FMUHx8KHRoaXMuX2FMUD1zQXQodGhpcykpLHRoaXMuX2FMUH0sc2V0IG9uZHVwbGljYXRlKHQpe3RoaXMuX2RwTD10fSxkaWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGEpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzTGVhZGVyPSExKSx0aGlzLmlzRGVhZD0hMCxtcyh0aGlzLCJkZWF0aCIpfX19KTt2YXIgTDJlPWIoKCk9PntiMmUoKTtUMmUoKTtyOSgpfSk7dmFyICQyZT1iKCgpPT57aHIoKTtDYygpO2s2KCk7TDJlKCl9KTt2YXIgTF8sJF8sQTJlPWIoKCk9PnskMmUoKTtMXz1nbG9iYWxUaGlzLkJyb2FkY2FzdENoYW5uZWw7TF98fChMXz1vMCk7JF89Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmJyb2FkY2FzdENoYW5uZWw9bmV3IExfKCJkZWVzLWNvbW1zIiksdGhpcy50eXBlZHJvdXRlcj1uZXcgb2EuVHlwZWRSb3V0ZXIsdGhpcy50eXBlZHRhcmdldD1uZXcgb2EuVHlwZWRUYXJnZXQoe3Bvc3RNZXRob2RXaXRoVHlwZWRSb3V0ZXI6YXN5bmMgZT0+e3RoaXMucG9zdE1lc3NhZ2UoZSl9LHR5cGVkUm91dGVyUmVmOnRoaXMudHlwZWRyb3V0ZXJ9KSx0aGlzLmJyb2FkY2FzdENoYW5uZWwub25tZXNzYWdlPWFzeW5jIGU9PntsZXQgYT1lLm1ldGhvZD9lOmUuZGF0YTtjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShhKSk7bGV0IGk9YXdhaXQgdGhpcy50eXBlZHJvdXRlci5yb3V0ZUFuZEFkZFJlc3BvbnNlKGEse3NraXBIb29rczohMH0pO2kmJiFpLmVycm9yJiZ0aGlzLnBvc3RNZXNzYWdlKGkpfX1jcmVhdGVUeXBlZFJlcXVlc3QoZSl7cmV0dXJuIG5ldyBvYS5UeXBlZFJlcXVlc3QodGhpcy50eXBlZHRhcmdldCxlKX1hc3luYyBwb3N0TWVzc2FnZShlKXt0aGlzLmJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UoZSl9YXN5bmMgY3JlYXRlVHlwZWRIYW5kbGVyKGUsYSl7dGhpcy50eXBlZHJvdXRlci5hZGRUeXBlZEhhbmRsZXIobmV3IG9hLlR5cGVkSGFuZGxlcihlLGEpKX19fSk7dmFyIF82PXt9O0dlKF82LHtEZWVzQ29tbXM6KCk9PiRffSk7dmFyIEQyZT1iKCgpPT57QTJlKCl9KTt2YXIgZDA9cHQoKG9fMSxjMCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRTJlKHQpe3JldHVybiB0eXBlb2YgdD4idSJ8fHQ9PT1udWxsfWZ1bmN0aW9uIGNBdCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbH1mdW5jdGlvbiBkQXQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dDpFMmUodCk/W106W3RdfWZ1bmN0aW9uIHBBdCh0LGUpe3ZhciBhLGkscixzO2lmKGUpZm9yKHM9T2JqZWN0LmtleXMoZSksYT0wLGk9cy5sZW5ndGg7YTxpO2ErPTEpcj1zW2FdLHRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBoQXQodCxlKXt2YXIgYT0iIixpO2ZvcihpPTA7aTxlO2krPTEpYSs9dDtyZXR1cm4gYX1mdW5jdGlvbiB1QXQodCl7cmV0dXJuIHQ9PT0wJiZOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT0xL3R9YzAuZXhwb3J0cy5pc05vdGhpbmc9RTJlLGMwLmV4cG9ydHMuaXNPYmplY3Q9Y0F0LGMwLmV4cG9ydHMudG9BcnJheT1kQXQsYzAuZXhwb3J0cy5yZXBlYXQ9aEF0LGMwLmV4cG9ydHMuaXNOZWdhdGl2ZVplcm89dUF0LGMwLmV4cG9ydHMuZXh0ZW5kPXBBdH0pO3ZhciBrMz1wdCgobF8xLFAyZSk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gVDYodCxlKXtFcnJvci5jYWxsKHRoaXMpLHRoaXMubmFtZT0iWUFNTEV4Y2VwdGlvbiIsdGhpcy5yZWFzb249dCx0aGlzLm1hcms9ZSx0aGlzLm1lc3NhZ2U9KHRoaXMucmVhc29ufHwiKHVua25vd24gcmVhc29uKSIpKyh0aGlzLm1hcms/IiAiK3RoaXMubWFyay50b1N0cmluZygpOiIiKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2t8fCIifVQ2LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksVDYucHJvdG90eXBlLmNvbnN0cnVjdG9yPVQ2LFQ2LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihlKXt2YXIgYT10aGlzLm5hbWUrIjogIjtyZXR1cm4gYSs9dGhpcy5yZWFzb258fCIodW5rbm93biByZWFzb24pIiwhZSYmdGhpcy5tYXJrJiYoYSs9IiAiK3RoaXMubWFyay50b1N0cmluZygpKSxhfSxQMmUuZXhwb3J0cz1UNn0pO3ZhciBGMmU9cHQoKGNfMSxOMmUpPT57InVzZSBzdHJpY3QiO3ZhciBJMmU9ZDAoKTtmdW5jdGlvbiBBXyh0LGUsYSxpLHIpe3RoaXMubmFtZT10LHRoaXMuYnVmZmVyPWUsdGhpcy5wb3NpdGlvbj1hLHRoaXMubGluZT1pLHRoaXMuY29sdW1uPXJ9QV8ucHJvdG90eXBlLmdldFNuaXBwZXQ9ZnVuY3Rpb24oZSxhKXt2YXIgaSxyLHMsbixvO2lmKCF0aGlzLmJ1ZmZlcilyZXR1cm4gbnVsbDtmb3IoZT1lfHw0LGE9YXx8NzUsaT0iIixyPXRoaXMucG9zaXRpb247cj4wJiZgXDBccgpceDg1XHUyMDI4XHUyMDI5YC5pbmRleE9mKHRoaXMuYnVmZmVyLmNoYXJBdChyLTEpKT09PS0xOylpZihyLT0xLHRoaXMucG9zaXRpb24tcj5hLzItMSl7aT0iIC4uLiAiLHIrPTU7YnJlYWt9Zm9yKHM9IiIsbj10aGlzLnBvc2l0aW9uO248dGhpcy5idWZmZXIubGVuZ3RoJiZgXDBccgpceDg1XHUyMDI4XHUyMDI5YC5pbmRleE9mKHRoaXMuYnVmZmVyLmNoYXJBdChuKSk9PT0tMTspaWYobis9MSxuLXRoaXMucG9zaXRpb24+YS8yLTEpe3M9IiAuLi4gIixuLT01O2JyZWFrfXJldHVybiBvPXRoaXMuYnVmZmVyLnNsaWNlKHIsbiksSTJlLnJlcGVhdCgiICIsZSkraStvK3MrYApgK0kyZS5yZXBlYXQoIiAiLGUrdGhpcy5wb3NpdGlvbi1yK2kubGVuZ3RoKSsiXiJ9LEFfLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihlKXt2YXIgYSxpPSIiO3JldHVybiB0aGlzLm5hbWUmJihpKz0naW4gIicrdGhpcy5uYW1lKyciICcpLGkrPSJhdCBsaW5lICIrKHRoaXMubGluZSsxKSsiLCBjb2x1bW4gIisodGhpcy5jb2x1bW4rMSksZXx8KGE9dGhpcy5nZXRTbmlwcGV0KCksYSYmKGkrPWA6CmArYSkpLGl9LE4yZS5leHBvcnRzPUFffSk7dmFyIHQyPXB0KChkXzEsUjJlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTzJlPWszKCksZkF0PVsia2luZCIsInJlc29sdmUiLCJjb25zdHJ1Y3QiLCJpbnN0YW5jZU9mIiwicHJlZGljYXRlIiwicmVwcmVzZW50IiwiZGVmYXVsdFN0eWxlIiwic3R5bGVBbGlhc2VzIl0sbUF0PVsic2NhbGFyIiwic2VxdWVuY2UiLCJtYXBwaW5nIl07ZnVuY3Rpb24gZ0F0KHQpe3ZhciBlPXt9O3JldHVybiB0IT09bnVsbCYmT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihhKXt0W2FdLmZvckVhY2goZnVuY3Rpb24oaSl7ZVtTdHJpbmcoaSldPWF9KX0pLGV9ZnVuY3Rpb24gYkF0KHQsZSl7aWYoZT1lfHx7fSxPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2lmKGZBdC5pbmRleE9mKGEpPT09LTEpdGhyb3cgbmV3IE8yZSgnVW5rbm93biBvcHRpb24gIicrYSsnIiBpcyBtZXQgaW4gZGVmaW5pdGlvbiBvZiAiJyt0KyciIFlBTUwgdHlwZS4nKX0pLHRoaXMudGFnPXQsdGhpcy5raW5kPWUua2luZHx8bnVsbCx0aGlzLnJlc29sdmU9ZS5yZXNvbHZlfHxmdW5jdGlvbigpe3JldHVybiEwfSx0aGlzLmNvbnN0cnVjdD1lLmNvbnN0cnVjdHx8ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LHRoaXMuaW5zdGFuY2VPZj1lLmluc3RhbmNlT2Z8fG51bGwsdGhpcy5wcmVkaWNhdGU9ZS5wcmVkaWNhdGV8fG51bGwsdGhpcy5yZXByZXNlbnQ9ZS5yZXByZXNlbnR8fG51bGwsdGhpcy5kZWZhdWx0U3R5bGU9ZS5kZWZhdWx0U3R5bGV8fG51bGwsdGhpcy5zdHlsZUFsaWFzZXM9Z0F0KGUuc3R5bGVBbGlhc2VzfHxudWxsKSxtQXQuaW5kZXhPZih0aGlzLmtpbmQpPT09LTEpdGhyb3cgbmV3IE8yZSgnVW5rbm93biBraW5kICInK3RoaXMua2luZCsnIiBpcyBzcGVjaWZpZWQgZm9yICInK3QrJyIgWUFNTCB0eXBlLicpfVIyZS5leHBvcnRzPWJBdH0pO3ZhciBwMD1wdCgocF8xLEgyZSk9PnsidXNlIHN0cmljdCI7dmFyIEIyZT1kMCgpLHM5PWszKCksdkF0PXQyKCk7ZnVuY3Rpb24gRF8odCxlLGEpe3ZhciBpPVtdO3JldHVybiB0LmluY2x1ZGUuZm9yRWFjaChmdW5jdGlvbihyKXthPURfKHIsZSxhKX0pLHRbZV0uZm9yRWFjaChmdW5jdGlvbihyKXthLmZvckVhY2goZnVuY3Rpb24ocyxuKXtzLnRhZz09PXIudGFnJiZzLmtpbmQ9PT1yLmtpbmQmJmkucHVzaChuKX0pLGEucHVzaChyKX0pLGEuZmlsdGVyKGZ1bmN0aW9uKHIscyl7cmV0dXJuIGkuaW5kZXhPZihzKT09PS0xfSl9ZnVuY3Rpb24geUF0KCl7dmFyIHQ9e3NjYWxhcjp7fSxzZXF1ZW5jZTp7fSxtYXBwaW5nOnt9LGZhbGxiYWNrOnt9fSxlLGE7ZnVuY3Rpb24gaShyKXt0W3Iua2luZF1bci50YWddPXQuZmFsbGJhY2tbci50YWddPXJ9Zm9yKGU9MCxhPWFyZ3VtZW50cy5sZW5ndGg7ZTxhO2UrPTEpYXJndW1lbnRzW2VdLmZvckVhY2goaSk7cmV0dXJuIHR9ZnVuY3Rpb24gUzModCl7dGhpcy5pbmNsdWRlPXQuaW5jbHVkZXx8W10sdGhpcy5pbXBsaWNpdD10LmltcGxpY2l0fHxbXSx0aGlzLmV4cGxpY2l0PXQuZXhwbGljaXR8fFtdLHRoaXMuaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlLmxvYWRLaW5kJiZlLmxvYWRLaW5kIT09InNjYWxhciIpdGhyb3cgbmV3IHM5KCJUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4iKX0pLHRoaXMuY29tcGlsZWRJbXBsaWNpdD1EXyh0aGlzLCJpbXBsaWNpdCIsW10pLHRoaXMuY29tcGlsZWRFeHBsaWNpdD1EXyh0aGlzLCJleHBsaWNpdCIsW10pLHRoaXMuY29tcGlsZWRUeXBlTWFwPXlBdCh0aGlzLmNvbXBpbGVkSW1wbGljaXQsdGhpcy5jb21waWxlZEV4cGxpY2l0KX1TMy5ERUZBVUxUPW51bGwsUzMuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIGUsYTtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAxOmU9UzMuREVGQVVMVCxhPWFyZ3VtZW50c1swXTticmVhaztjYXNlIDI6ZT1hcmd1bWVudHNbMF0sYT1hcmd1bWVudHNbMV07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgczkoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIFNjaGVtYS5jcmVhdGUgZnVuY3Rpb24iKX1pZihlPUIyZS50b0FycmF5KGUpLGE9QjJlLnRvQXJyYXkoYSksIWUuZXZlcnkoZnVuY3Rpb24oaSl7cmV0dXJuIGkgaW5zdGFuY2VvZiBTM30pKXRocm93IG5ldyBzOSgiU3BlY2lmaWVkIGxpc3Qgb2Ygc3VwZXIgc2NoZW1hcyAob3IgYSBzaW5nbGUgU2NoZW1hIG9iamVjdCkgY29udGFpbnMgYSBub24tU2NoZW1hIG9iamVjdC4iKTtpZighYS5ldmVyeShmdW5jdGlvbihpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIHZBdH0pKXRocm93IG5ldyBzOSgiU3BlY2lmaWVkIGxpc3Qgb2YgWUFNTCB0eXBlcyAob3IgYSBzaW5nbGUgVHlwZSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVR5cGUgb2JqZWN0LiIpO3JldHVybiBuZXcgUzMoe2luY2x1ZGU6ZSxleHBsaWNpdDphfSl9LEgyZS5leHBvcnRzPVMzfSk7dmFyIFYyZT1wdCgoaF8xLHEyZSk9PnsidXNlIHN0cmljdCI7dmFyIHhBdD10MigpO3EyZS5leHBvcnRzPW5ldyB4QXQoInRhZzp5YW1sLm9yZywyMDAyOnN0ciIse2tpbmQ6InNjYWxhciIsY29uc3RydWN0OmZ1bmN0aW9uKHQpe3JldHVybiB0IT09bnVsbD90OiIifX0pfSk7dmFyIFUyZT1wdCgodV8xLGoyZSk9PnsidXNlIHN0cmljdCI7dmFyIHdBdD10MigpO2oyZS5leHBvcnRzPW5ldyB3QXQoInRhZzp5YW1sLm9yZywyMDAyOnNlcSIse2tpbmQ6InNlcXVlbmNlIixjb25zdHJ1Y3Q6ZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1udWxsP3Q6W119fSl9KTt2YXIgRzJlPXB0KChmXzEsVzJlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTUF0PXQyKCk7VzJlLmV4cG9ydHM9bmV3IE1BdCgidGFnOnlhbWwub3JnLDIwMDI6bWFwIix7a2luZDoibWFwcGluZyIsY29uc3RydWN0OmZ1bmN0aW9uKHQpe3JldHVybiB0IT09bnVsbD90Ont9fX0pfSk7dmFyIG45PXB0KChtXzEsWTJlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgekF0PXAwKCk7WTJlLmV4cG9ydHM9bmV3IHpBdCh7ZXhwbGljaXQ6W1YyZSgpLFUyZSgpLEcyZSgpXX0pfSk7dmFyIFgyZT1wdCgoZ18xLFoyZSk9PnsidXNlIHN0cmljdCI7dmFyIGtBdD10MigpO2Z1bmN0aW9uIFNBdCh0KXtpZih0PT09bnVsbClyZXR1cm4hMDt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZT09PTEmJnQ9PT0ifiJ8fGU9PT00JiYodD09PSJudWxsInx8dD09PSJOdWxsInx8dD09PSJOVUxMIil9ZnVuY3Rpb24gQ0F0KCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gX0F0KHQpe3JldHVybiB0PT09bnVsbH1aMmUuZXhwb3J0cz1uZXcga0F0KCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsIix7a2luZDoic2NhbGFyIixyZXNvbHZlOlNBdCxjb25zdHJ1Y3Q6Q0F0LHByZWRpY2F0ZTpfQXQscmVwcmVzZW50OntjYW5vbmljYWw6ZnVuY3Rpb24oKXtyZXR1cm4ifiJ9LGxvd2VyY2FzZTpmdW5jdGlvbigpe3JldHVybiJudWxsIn0sdXBwZXJjYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIk5VTEwifSxjYW1lbGNhc2U6ZnVuY3Rpb24oKXtyZXR1cm4iTnVsbCJ9fSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KX0pO3ZhciBRMmU9cHQoKGJfMSxLMmUpPT57InVzZSBzdHJpY3QiO3ZhciBUQXQ9dDIoKTtmdW5jdGlvbiBMQXQodCl7aWYodD09PW51bGwpcmV0dXJuITE7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGU9PT00JiYodD09PSJ0cnVlInx8dD09PSJUcnVlInx8dD09PSJUUlVFIil8fGU9PT01JiYodD09PSJmYWxzZSJ8fHQ9PT0iRmFsc2UifHx0PT09IkZBTFNFIil9ZnVuY3Rpb24gJEF0KHQpe3JldHVybiB0PT09InRydWUifHx0PT09IlRydWUifHx0PT09IlRSVUUifWZ1bmN0aW9uIEFBdCh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgQm9vbGVhbl0ifUsyZS5leHBvcnRzPW5ldyBUQXQoInRhZzp5YW1sLm9yZywyMDAyOmJvb2wiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6TEF0LGNvbnN0cnVjdDokQXQscHJlZGljYXRlOkFBdCxyZXByZXNlbnQ6e2xvd2VyY2FzZTpmdW5jdGlvbih0KXtyZXR1cm4gdD8idHJ1ZSI6ImZhbHNlIn0sdXBwZXJjYXNlOmZ1bmN0aW9uKHQpe3JldHVybiB0PyJUUlVFIjoiRkFMU0UifSxjYW1lbGNhc2U6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/IlRydWUiOiJGYWxzZSJ9fSxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KX0pO3ZhciBlYWU9cHQoKHZfMSxKMmUpPT57InVzZSBzdHJpY3QiO3ZhciBEQXQ9ZDAoKSxFQXQ9dDIoKTtmdW5jdGlvbiBQQXQodCl7cmV0dXJuIDQ4PD10JiZ0PD01N3x8NjU8PXQmJnQ8PTcwfHw5Nzw9dCYmdDw9MTAyfWZ1bmN0aW9uIElBdCh0KXtyZXR1cm4gNDg8PXQmJnQ8PTU1fWZ1bmN0aW9uIE5BdCh0KXtyZXR1cm4gNDg8PXQmJnQ8PTU3fWZ1bmN0aW9uIEZBdCh0KXtpZih0PT09bnVsbClyZXR1cm4hMTt2YXIgZT10Lmxlbmd0aCxhPTAsaT0hMSxyO2lmKCFlKXJldHVybiExO2lmKHI9dFthXSwocj09PSItInx8cj09PSIrIikmJihyPXRbKythXSkscj09PSIwIil7aWYoYSsxPT09ZSlyZXR1cm4hMDtpZihyPXRbKythXSxyPT09ImIiKXtmb3IoYSsrO2E8ZTthKyspaWYocj10W2FdLHIhPT0iXyIpe2lmKHIhPT0iMCImJnIhPT0iMSIpcmV0dXJuITE7aT0hMH1yZXR1cm4gaSYmciE9PSJfIn1pZihyPT09IngiKXtmb3IoYSsrO2E8ZTthKyspaWYocj10W2FdLHIhPT0iXyIpe2lmKCFQQXQodC5jaGFyQ29kZUF0KGEpKSlyZXR1cm4hMTtpPSEwfXJldHVybiBpJiZyIT09Il8ifWZvcig7YTxlO2ErKylpZihyPXRbYV0sciE9PSJfIil7aWYoIUlBdCh0LmNoYXJDb2RlQXQoYSkpKXJldHVybiExO2k9ITB9cmV0dXJuIGkmJnIhPT0iXyJ9aWYocj09PSJfIilyZXR1cm4hMTtmb3IoO2E8ZTthKyspaWYocj10W2FdLHIhPT0iXyIpe2lmKHI9PT0iOiIpYnJlYWs7aWYoIU5BdCh0LmNoYXJDb2RlQXQoYSkpKXJldHVybiExO2k9ITB9cmV0dXJuIWl8fHI9PT0iXyI/ITE6ciE9PSI6Ij8hMDovXig6WzAtNV0/WzAtOV0pKyQvLnRlc3QodC5zbGljZShhKSl9ZnVuY3Rpb24gT0F0KHQpe3ZhciBlPXQsYT0xLGkscixzPVtdO3JldHVybiBlLmluZGV4T2YoIl8iKSE9PS0xJiYoZT1lLnJlcGxhY2UoL18vZywiIikpLGk9ZVswXSwoaT09PSItInx8aT09PSIrIikmJihpPT09Ii0iJiYoYT0tMSksZT1lLnNsaWNlKDEpLGk9ZVswXSksZT09PSIwIj8wOmk9PT0iMCI/ZVsxXT09PSJiIj9hKnBhcnNlSW50KGUuc2xpY2UoMiksMik6ZVsxXT09PSJ4Ij9hKnBhcnNlSW50KGUsMTYpOmEqcGFyc2VJbnQoZSw4KTplLmluZGV4T2YoIjoiKSE9PS0xPyhlLnNwbGl0KCI6IikuZm9yRWFjaChmdW5jdGlvbihuKXtzLnVuc2hpZnQocGFyc2VJbnQobiwxMCkpfSksZT0wLHI9MSxzLmZvckVhY2goZnVuY3Rpb24obil7ZSs9bipyLHIqPTYwfSksYSplKTphKnBhcnNlSW50KGUsMTApfWZ1bmN0aW9uIFJBdCh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgTnVtYmVyXSImJnQlMT09PTAmJiFEQXQuaXNOZWdhdGl2ZVplcm8odCl9SjJlLmV4cG9ydHM9bmV3IEVBdCgidGFnOnlhbWwub3JnLDIwMDI6aW50Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOkZBdCxjb25zdHJ1Y3Q6T0F0LHByZWRpY2F0ZTpSQXQscmVwcmVzZW50OntiaW5hcnk6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTA/IjBiIit0LnRvU3RyaW5nKDIpOiItMGIiK3QudG9TdHJpbmcoMikuc2xpY2UoMSl9LG9jdGFsOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIwIit0LnRvU3RyaW5nKDgpOiItMCIrdC50b1N0cmluZyg4KS5zbGljZSgxKX0sZGVjaW1hbDpmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZygxMCl9LGhleGFkZWNpbWFsOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wPyIweCIrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKToiLTB4Iit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnNsaWNlKDEpfX0sZGVmYXVsdFN0eWxlOiJkZWNpbWFsIixzdHlsZUFsaWFzZXM6e2JpbmFyeTpbMiwiYmluIl0sb2N0YWw6WzgsIm9jdCJdLGRlY2ltYWw6WzEwLCJkZWMiXSxoZXhhZGVjaW1hbDpbMTYsImhleCJdfX0pfSk7dmFyIGlhZT1wdCgoeV8xLGFhZSk9PnsidXNlIHN0cmljdCI7dmFyIHRhZT1kMCgpLEJBdD10MigpLEhBdD1uZXcgUmVnRXhwKCJeKD86Wy0rXT8oPzowfFsxLTldWzAtOV9dKikoPzpcXC5bMC05X10qKT8oPzpbZUVdWy0rXT9bMC05XSspP3xcXC5bMC05X10rKD86W2VFXVstK10/WzAtOV0rKT98Wy0rXT9bMC05XVswLTlfXSooPzo6WzAtNV0/WzAtOV0pK1xcLlswLTlfXSp8Wy0rXT9cXC4oPzppbmZ8SW5mfElORil8XFwuKD86bmFufE5hTnxOQU4pKSQiKTtmdW5jdGlvbiBxQXQodCl7cmV0dXJuISh0PT09bnVsbHx8IUhBdC50ZXN0KHQpfHx0W3QubGVuZ3RoLTFdPT09Il8iKX1mdW5jdGlvbiBWQXQodCl7dmFyIGUsYSxpLHI7cmV0dXJuIGU9dC5yZXBsYWNlKC9fL2csIiIpLnRvTG93ZXJDYXNlKCksYT1lWzBdPT09Ii0iPy0xOjEscj1bXSwiKy0iLmluZGV4T2YoZVswXSk+PTAmJihlPWUuc2xpY2UoMSkpLGU9PT0iLmluZiI/YT09PTE/TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOk51bWJlci5ORUdBVElWRV9JTkZJTklUWTplPT09Ii5uYW4iP05hTjplLmluZGV4T2YoIjoiKT49MD8oZS5zcGxpdCgiOiIpLmZvckVhY2goZnVuY3Rpb24ocyl7ci51bnNoaWZ0KHBhcnNlRmxvYXQocywxMCkpfSksZT0wLGk9MSxyLmZvckVhY2goZnVuY3Rpb24ocyl7ZSs9cyppLGkqPTYwfSksYSplKTphKnBhcnNlRmxvYXQoZSwxMCl9dmFyIGpBdD0vXlstK10/WzAtOV0rZS87ZnVuY3Rpb24gVUF0KHQsZSl7dmFyIGE7aWYoaXNOYU4odCkpc3dpdGNoKGUpe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLm5hbiI7Y2FzZSJ1cHBlcmNhc2UiOnJldHVybiIuTkFOIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi5OYU4ifWVsc2UgaWYoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZPT09dClzd2l0Y2goZSl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiIuaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi5JTkYiO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLkluZiJ9ZWxzZSBpZihOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT10KXN3aXRjaChlKXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi0uaW5mIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi0uSU5GIjtjYXNlImNhbWVsY2FzZSI6cmV0dXJuIi0uSW5mIn1lbHNlIGlmKHRhZS5pc05lZ2F0aXZlWmVybyh0KSlyZXR1cm4iLTAuMCI7cmV0dXJuIGE9dC50b1N0cmluZygxMCksakF0LnRlc3QoYSk/YS5yZXBsYWNlKCJlIiwiLmUiKTphfWZ1bmN0aW9uIFdBdCh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgTnVtYmVyXSImJih0JTEhPT0wfHx0YWUuaXNOZWdhdGl2ZVplcm8odCkpfWFhZS5leHBvcnRzPW5ldyBCQXQoInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0Iix7a2luZDoic2NhbGFyIixyZXNvbHZlOnFBdCxjb25zdHJ1Y3Q6VkF0LHByZWRpY2F0ZTpXQXQscmVwcmVzZW50OlVBdCxkZWZhdWx0U3R5bGU6Imxvd2VyY2FzZSJ9KX0pO3ZhciBFXz1wdCgoeF8xLHJhZSk9PnsidXNlIHN0cmljdCI7dmFyIEdBdD1wMCgpO3JhZS5leHBvcnRzPW5ldyBHQXQoe2luY2x1ZGU6W245KCldLGltcGxpY2l0OltYMmUoKSxRMmUoKSxlYWUoKSxpYWUoKV19KX0pO3ZhciBQXz1wdCgod18xLHNhZSk9PnsidXNlIHN0cmljdCI7dmFyIFlBdD1wMCgpO3NhZS5leHBvcnRzPW5ldyBZQXQoe2luY2x1ZGU6W0VfKCldfSl9KTt2YXIgY2FlPXB0KChNXzEsbGFlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgWkF0PXQyKCksbmFlPW5ldyBSZWdFeHAoIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldKS0oWzAtOV1bMC05XSkkIiksb2FlPW5ldyBSZWdFeHAoIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldPyktKFswLTldWzAtOV0/KSg/OltUdF18WyBcXHRdKykoWzAtOV1bMC05XT8pOihbMC05XVswLTldKTooWzAtOV1bMC05XSkoPzpcXC4oWzAtOV0qKSk/KD86WyBcXHRdKihafChbLStdKShbMC05XVswLTldPykoPzo6KFswLTldWzAtOV0pKT8pKT8kIik7ZnVuY3Rpb24gWEF0KHQpe3JldHVybiB0PT09bnVsbD8hMTpuYWUuZXhlYyh0KSE9PW51bGx8fG9hZS5leGVjKHQpIT09bnVsbH1mdW5jdGlvbiBLQXQodCl7dmFyIGUsYSxpLHIscyxuLG8sZD0wLGM9bnVsbCxwLGwsZjtpZihlPW5hZS5leGVjKHQpLGU9PT1udWxsJiYoZT1vYWUuZXhlYyh0KSksZT09PW51bGwpdGhyb3cgbmV3IEVycm9yKCJEYXRlIHJlc29sdmUgZXJyb3IiKTtpZihhPStlWzFdLGk9K2VbMl0tMSxyPStlWzNdLCFlWzRdKXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhhLGkscikpO2lmKHM9K2VbNF0sbj0rZVs1XSxvPStlWzZdLGVbN10pe2ZvcihkPWVbN10uc2xpY2UoMCwzKTtkLmxlbmd0aDwzOylkKz0iMCI7ZD0rZH1yZXR1cm4gZVs5XSYmKHA9K2VbMTBdLGw9KyhlWzExXXx8MCksYz0ocCo2MCtsKSo2ZTQsZVs5XT09PSItIiYmKGM9LWMpKSxmPW5ldyBEYXRlKERhdGUuVVRDKGEsaSxyLHMsbixvLGQpKSxjJiZmLnNldFRpbWUoZi5nZXRUaW1lKCktYyksZn1mdW5jdGlvbiBRQXQodCl7cmV0dXJuIHQudG9JU09TdHJpbmcoKX1sYWUuZXhwb3J0cz1uZXcgWkF0KCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6WEF0LGNvbnN0cnVjdDpLQXQsaW5zdGFuY2VPZjpEYXRlLHJlcHJlc2VudDpRQXR9KX0pO3ZhciBwYWU9cHQoKHpfMSxkYWUpPT57InVzZSBzdHJpY3QiO3ZhciBKQXQ9dDIoKTtmdW5jdGlvbiBlRHQodCl7cmV0dXJuIHQ9PT0iPDwifHx0PT09bnVsbH1kYWUuZXhwb3J0cz1uZXcgSkF0KCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTplRHR9KX0pO3ZhciBmYWU9cHQoKGtfMSx1YWUpPT57InVzZSBzdHJpY3QiO3ZhciBoMDt0cnl7aGFlPWRkLGgwPWhhZSgiYnVmZmVyIikuQnVmZmVyfWNhdGNoe312YXIgdER0PXQyKCksSV89YEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89ClxyYDtmdW5jdGlvbiBhRHQodCl7aWYodD09PW51bGwpcmV0dXJuITE7dmFyIGUsYSxpPTAscj10Lmxlbmd0aCxzPUlfO2ZvcihhPTA7YTxyO2ErKylpZihlPXMuaW5kZXhPZih0LmNoYXJBdChhKSksIShlPjY0KSl7aWYoZTwwKXJldHVybiExO2krPTZ9cmV0dXJuIGklOD09PTB9ZnVuY3Rpb24gaUR0KHQpe3ZhciBlLGEsaT10LnJlcGxhY2UoL1tcclxuPV0vZywiIikscj1pLmxlbmd0aCxzPUlfLG49MCxvPVtdO2ZvcihlPTA7ZTxyO2UrKyllJTQ9PT0wJiZlJiYoby5wdXNoKG4+PjE2JjI1NSksby5wdXNoKG4+PjgmMjU1KSxvLnB1c2gobiYyNTUpKSxuPW48PDZ8cy5pbmRleE9mKGkuY2hhckF0KGUpKTtyZXR1cm4gYT1yJTQqNixhPT09MD8oby5wdXNoKG4+PjE2JjI1NSksby5wdXNoKG4+PjgmMjU1KSxvLnB1c2gobiYyNTUpKTphPT09MTg/KG8ucHVzaChuPj4xMCYyNTUpLG8ucHVzaChuPj4yJjI1NSkpOmE9PT0xMiYmby5wdXNoKG4+PjQmMjU1KSxoMD9oMC5mcm9tP2gwLmZyb20obyk6bmV3IGgwKG8pOm99ZnVuY3Rpb24gckR0KHQpe3ZhciBlPSIiLGE9MCxpLHIscz10Lmxlbmd0aCxuPUlfO2ZvcihpPTA7aTxzO2krKylpJTM9PT0wJiZpJiYoZSs9blthPj4xOCY2M10sZSs9blthPj4xMiY2M10sZSs9blthPj42JjYzXSxlKz1uW2EmNjNdKSxhPShhPDw4KSt0W2ldO3JldHVybiByPXMlMyxyPT09MD8oZSs9blthPj4xOCY2M10sZSs9blthPj4xMiY2M10sZSs9blthPj42JjYzXSxlKz1uW2EmNjNdKTpyPT09Mj8oZSs9blthPj4xMCY2M10sZSs9blthPj40JjYzXSxlKz1uW2E8PDImNjNdLGUrPW5bNjRdKTpyPT09MSYmKGUrPW5bYT4+MiY2M10sZSs9blthPDw0JjYzXSxlKz1uWzY0XSxlKz1uWzY0XSksZX1mdW5jdGlvbiBzRHQodCl7cmV0dXJuIGgwJiZoMC5pc0J1ZmZlcih0KX11YWUuZXhwb3J0cz1uZXcgdER0KCJ0YWc6eWFtbC5vcmcsMjAwMjpiaW5hcnkiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6YUR0LGNvbnN0cnVjdDppRHQscHJlZGljYXRlOnNEdCxyZXByZXNlbnQ6ckR0fSk7dmFyIGhhZX0pO3ZhciBnYWU9cHQoKENfMSxtYWUpPT57InVzZSBzdHJpY3QiO3ZhciBuRHQ9dDIoKSxvRHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxsRHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBjRHQodCl7aWYodD09PW51bGwpcmV0dXJuITA7dmFyIGU9W10sYSxpLHIscyxuLG89dDtmb3IoYT0wLGk9by5sZW5ndGg7YTxpO2ErPTEpe2lmKHI9b1thXSxuPSExLGxEdC5jYWxsKHIpIT09IltvYmplY3QgT2JqZWN0XSIpcmV0dXJuITE7Zm9yKHMgaW4gcilpZihvRHQuY2FsbChyLHMpKWlmKCFuKW49ITA7ZWxzZSByZXR1cm4hMTtpZighbilyZXR1cm4hMTtpZihlLmluZGV4T2Yocyk9PT0tMSllLnB1c2gocyk7ZWxzZSByZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBkRHQodCl7cmV0dXJuIHQhPT1udWxsP3Q6W119bWFlLmV4cG9ydHM9bmV3IG5EdCgidGFnOnlhbWwub3JnLDIwMDI6b21hcCIse2tpbmQ6InNlcXVlbmNlIixyZXNvbHZlOmNEdCxjb25zdHJ1Y3Q6ZER0fSl9KTt2YXIgdmFlPXB0KChfXzEsYmFlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcER0PXQyKCksaER0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gdUR0KHQpe2lmKHQ9PT1udWxsKXJldHVybiEwO3ZhciBlLGEsaSxyLHMsbj10O2ZvcihzPW5ldyBBcnJheShuLmxlbmd0aCksZT0wLGE9bi5sZW5ndGg7ZTxhO2UrPTEpe2lmKGk9bltlXSxoRHQuY2FsbChpKSE9PSJbb2JqZWN0IE9iamVjdF0ifHwocj1PYmplY3Qua2V5cyhpKSxyLmxlbmd0aCE9PTEpKXJldHVybiExO3NbZV09W3JbMF0saVtyWzBdXV19cmV0dXJuITB9ZnVuY3Rpb24gZkR0KHQpe2lmKHQ9PT1udWxsKXJldHVybltdO3ZhciBlLGEsaSxyLHMsbj10O2ZvcihzPW5ldyBBcnJheShuLmxlbmd0aCksZT0wLGE9bi5sZW5ndGg7ZTxhO2UrPTEpaT1uW2VdLHI9T2JqZWN0LmtleXMoaSksc1tlXT1bclswXSxpW3JbMF1dXTtyZXR1cm4gc31iYWUuZXhwb3J0cz1uZXcgcER0KCJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlycyIse2tpbmQ6InNlcXVlbmNlIixyZXNvbHZlOnVEdCxjb25zdHJ1Y3Q6ZkR0fSl9KTt2YXIgeGFlPXB0KChUXzEseWFlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbUR0PXQyKCksZ0R0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gYkR0KHQpe2lmKHQ9PT1udWxsKXJldHVybiEwO3ZhciBlLGE9dDtmb3IoZSBpbiBhKWlmKGdEdC5jYWxsKGEsZSkmJmFbZV0hPT1udWxsKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHZEdCh0KXtyZXR1cm4gdCE9PW51bGw/dDp7fX15YWUuZXhwb3J0cz1uZXcgbUR0KCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiLHtraW5kOiJtYXBwaW5nIixyZXNvbHZlOmJEdCxjb25zdHJ1Y3Q6dkR0fSl9KTt2YXIgQzM9cHQoKExfMSx3YWUpPT57InVzZSBzdHJpY3QiO3ZhciB5RHQ9cDAoKTt3YWUuZXhwb3J0cz1uZXcgeUR0KHtpbmNsdWRlOltQXygpXSxpbXBsaWNpdDpbY2FlKCkscGFlKCldLGV4cGxpY2l0OltmYWUoKSxnYWUoKSx2YWUoKSx4YWUoKV19KX0pO3ZhciB6YWU9cHQoKCRfMSxNYWUpPT57InVzZSBzdHJpY3QiO3ZhciB4RHQ9dDIoKTtmdW5jdGlvbiB3RHQoKXtyZXR1cm4hMH1mdW5jdGlvbiBNRHQoKXt9ZnVuY3Rpb24gekR0KCl7cmV0dXJuIiJ9ZnVuY3Rpb24ga0R0KHQpe3JldHVybiB0eXBlb2YgdD4idSJ9TWFlLmV4cG9ydHM9bmV3IHhEdCgidGFnOnlhbWwub3JnLDIwMDI6anMvdW5kZWZpbmVkIix7a2luZDoic2NhbGFyIixyZXNvbHZlOndEdCxjb25zdHJ1Y3Q6TUR0LHByZWRpY2F0ZTprRHQscmVwcmVzZW50OnpEdH0pfSk7dmFyIFNhZT1wdCgoQV8xLGthZSk9PnsidXNlIHN0cmljdCI7dmFyIFNEdD10MigpO2Z1bmN0aW9uIENEdCh0KXtpZih0PT09bnVsbHx8dC5sZW5ndGg9PT0wKXJldHVybiExO3ZhciBlPXQsYT0vXC8oW2dpbV0qKSQvLmV4ZWModCksaT0iIjtyZXR1cm4hKGVbMF09PT0iLyImJihhJiYoaT1hWzFdKSxpLmxlbmd0aD4zfHxlW2UubGVuZ3RoLWkubGVuZ3RoLTFdIT09Ii8iKSl9ZnVuY3Rpb24gX0R0KHQpe3ZhciBlPXQsYT0vXC8oW2dpbV0qKSQvLmV4ZWModCksaT0iIjtyZXR1cm4gZVswXT09PSIvIiYmKGEmJihpPWFbMV0pLGU9ZS5zbGljZSgxLGUubGVuZ3RoLWkubGVuZ3RoLTEpKSxuZXcgUmVnRXhwKGUsaSl9ZnVuY3Rpb24gVER0KHQpe3ZhciBlPSIvIit0LnNvdXJjZSsiLyI7cmV0dXJuIHQuZ2xvYmFsJiYoZSs9ImciKSx0Lm11bHRpbGluZSYmKGUrPSJtIiksdC5pZ25vcmVDYXNlJiYoZSs9ImkiKSxlfWZ1bmN0aW9uIExEdCh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpPT09IltvYmplY3QgUmVnRXhwXSJ9a2FlLmV4cG9ydHM9bmV3IFNEdCgidGFnOnlhbWwub3JnLDIwMDI6anMvcmVnZXhwIix7a2luZDoic2NhbGFyIixyZXNvbHZlOkNEdCxjb25zdHJ1Y3Q6X0R0LHByZWRpY2F0ZTpMRHQscmVwcmVzZW50OlREdH0pfSk7dmFyIFRhZT1wdCgoRF8xLF9hZSk9PnsidXNlIHN0cmljdCI7dmFyIG85O3RyeXtDYWU9ZGQsbzk9Q2FlKCJlc3ByaW1hIil9Y2F0Y2h7dHlwZW9mIHdpbmRvdzwidSImJihvOT13aW5kb3cuZXNwcmltYSl9dmFyICREdD10MigpO2Z1bmN0aW9uIEFEdCh0KXtpZih0PT09bnVsbClyZXR1cm4hMTt0cnl7dmFyIGU9IigiK3QrIikiLGE9bzkucGFyc2UoZSx7cmFuZ2U6ITB9KTtyZXR1cm4hKGEudHlwZSE9PSJQcm9ncmFtInx8YS5ib2R5Lmxlbmd0aCE9PTF8fGEuYm9keVswXS50eXBlIT09IkV4cHJlc3Npb25TdGF0ZW1lbnQifHxhLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiYmYS5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJGdW5jdGlvbkV4cHJlc3Npb24iKX1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gRER0KHQpe3ZhciBlPSIoIit0KyIpIixhPW85LnBhcnNlKGUse3JhbmdlOiEwfSksaT1bXSxyO2lmKGEudHlwZSE9PSJQcm9ncmFtInx8YS5ib2R5Lmxlbmd0aCE9PTF8fGEuYm9keVswXS50eXBlIT09IkV4cHJlc3Npb25TdGF0ZW1lbnQifHxhLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiYmYS5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJGdW5jdGlvbkV4cHJlc3Npb24iKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlc29sdmUgZnVuY3Rpb24iKTtyZXR1cm4gYS5ib2R5WzBdLmV4cHJlc3Npb24ucGFyYW1zLmZvckVhY2goZnVuY3Rpb24ocyl7aS5wdXNoKHMubmFtZSl9KSxyPWEuYm9keVswXS5leHByZXNzaW9uLmJvZHkucmFuZ2UsYS5ib2R5WzBdLmV4cHJlc3Npb24uYm9keS50eXBlPT09IkJsb2NrU3RhdGVtZW50Ij9uZXcgRnVuY3Rpb24oaSxlLnNsaWNlKHJbMF0rMSxyWzFdLTEpKTpuZXcgRnVuY3Rpb24oaSwicmV0dXJuICIrZS5zbGljZShyWzBdLHJbMV0pKX1mdW5jdGlvbiBFRHQodCl7cmV0dXJuIHQudG9TdHJpbmcoKX1mdW5jdGlvbiBQRHQodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ9X2FlLmV4cG9ydHM9bmV3ICREdCgidGFnOnlhbWwub3JnLDIwMDI6anMvZnVuY3Rpb24iLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6QUR0LGNvbnN0cnVjdDpERHQscHJlZGljYXRlOlBEdCxyZXByZXNlbnQ6RUR0fSk7dmFyIENhZX0pO3ZhciBMNj1wdCgoUF8xLCRhZSk9PnsidXNlIHN0cmljdCI7dmFyIExhZT1wMCgpOyRhZS5leHBvcnRzPUxhZS5ERUZBVUxUPW5ldyBMYWUoe2luY2x1ZGU6W0MzKCldLGV4cGxpY2l0Olt6YWUoKSxTYWUoKSxUYWUoKV19KX0pO3ZhciBYYWU9cHQoKElfMSwkNik9PnsidXNlIHN0cmljdCI7dmFyIGdzPWQwKCksQWFlPWszKCksSUR0PUYyZSgpLERhZT1DMygpLE5EdD1MNigpLFBuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbDk9MSxFYWU9MixQYWU9MyxjOT00LE5fPTEsRkR0PTIsSWFlPTMsT0R0PS9bXHgwMC1ceDA4XHgwQlx4MENceDBFLVx4MUZceDdGLVx4ODRceDg2LVx4OUZcdUZGRkVcdUZGRkZdfFtcdUQ4MDAtXHVEQkZGXSg/IVtcdURDMDAtXHVERkZGXSl8KD86W15cdUQ4MDAtXHVEQkZGXXxeKVtcdURDMDAtXHVERkZGXS8sUkR0PS9bXHg4NVx1MjAyOFx1MjAyOV0vLEJEdD0vWyxcW1xdXHtcfV0vLE5hZT0vXig/OiF8ISF8IVthLXpcLV0rISkkL2ksRmFlPS9eKD86IXxbXixcW1xdXHtcfV0pKD86JVswLTlhLWZdezJ9fFswLTlhLXpcLSM7XC9cPzpAJj1cK1wkLF9cLiF+XConXChcKVxbXF1dKSokL2k7ZnVuY3Rpb24gT2FlKHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gX3IodCl7cmV0dXJuIHQ9PT0xMHx8dD09PTEzfWZ1bmN0aW9uIHUwKHQpe3JldHVybiB0PT09OXx8dD09PTMyfWZ1bmN0aW9uIENhKHQpe3JldHVybiB0PT09OXx8dD09PTMyfHx0PT09MTB8fHQ9PT0xM31mdW5jdGlvbiBfMyh0KXtyZXR1cm4gdD09PTQ0fHx0PT09OTF8fHQ9PT05M3x8dD09PTEyM3x8dD09PTEyNX1mdW5jdGlvbiBIRHQodCl7dmFyIGU7cmV0dXJuIDQ4PD10JiZ0PD01Nz90LTQ4OihlPXR8MzIsOTc8PWUmJmU8PTEwMj9lLTk3KzEwOi0xKX1mdW5jdGlvbiBxRHQodCl7cmV0dXJuIHQ9PT0xMjA/Mjp0PT09MTE3PzQ6dD09PTg1Pzg6MH1mdW5jdGlvbiBWRHQodCl7cmV0dXJuIDQ4PD10JiZ0PD01Nz90LTQ4Oi0xfWZ1bmN0aW9uIFJhZSh0KXtyZXR1cm4gdD09PTQ4PyJcMCI6dD09PTk3PyJceDA3Ijp0PT09OTg/IlxiIjp0PT09MTE2fHx0PT09OT8iCSI6dD09PTExMD9gCmA6dD09PTExOD8iXHYiOnQ9PT0xMDI/IlxmIjp0PT09MTE0PyJcciI6dD09PTEwMT8iXHgxQiI6dD09PTMyPyIgIjp0PT09MzQ/JyInOnQ9PT00Nz8iLyI6dD09PTkyPyJcXCI6dD09PTc4PyJceDg1Ijp0PT09OTU/Ilx4QTAiOnQ9PT03Nj8iXHUyMDI4Ijp0PT09ODA/Ilx1MjAyOSI6IiJ9ZnVuY3Rpb24gakR0KHQpe3JldHVybiB0PD02NTUzNT9TdHJpbmcuZnJvbUNoYXJDb2RlKHQpOlN0cmluZy5mcm9tQ2hhckNvZGUoKHQtNjU1MzY+PjEwKSs1NTI5NiwodC02NTUzNiYxMDIzKSs1NjMyMCl9ZnVuY3Rpb24gQmFlKHQsZSxhKXtlPT09Il9fcHJvdG9fXyI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YX0pOnRbZV09YX12YXIgSGFlPW5ldyBBcnJheSgyNTYpLHFhZT1uZXcgQXJyYXkoMjU2KTtmb3IoZjA9MDtmMDwyNTY7ZjArKylIYWVbZjBdPVJhZShmMCk/MTowLHFhZVtmMF09UmFlKGYwKTtmdW5jdGlvbiBVRHQodCxlKXt0aGlzLmlucHV0PXQsdGhpcy5maWxlbmFtZT1lLmZpbGVuYW1lfHxudWxsLHRoaXMuc2NoZW1hPWUuc2NoZW1hfHxORHQsdGhpcy5vbldhcm5pbmc9ZS5vbldhcm5pbmd8fG51bGwsdGhpcy5sZWdhY3k9ZS5sZWdhY3l8fCExLHRoaXMuanNvbj1lLmpzb258fCExLHRoaXMubGlzdGVuZXI9ZS5saXN0ZW5lcnx8bnVsbCx0aGlzLmltcGxpY2l0VHlwZXM9dGhpcy5zY2hlbWEuY29tcGlsZWRJbXBsaWNpdCx0aGlzLnR5cGVNYXA9dGhpcy5zY2hlbWEuY29tcGlsZWRUeXBlTWFwLHRoaXMubGVuZ3RoPXQubGVuZ3RoLHRoaXMucG9zaXRpb249MCx0aGlzLmxpbmU9MCx0aGlzLmxpbmVTdGFydD0wLHRoaXMubGluZUluZGVudD0wLHRoaXMuZG9jdW1lbnRzPVtdfWZ1bmN0aW9uIFZhZSh0LGUpe3JldHVybiBuZXcgQWFlKGUsbmV3IElEdCh0LmZpbGVuYW1lLHQuaW5wdXQsdC5wb3NpdGlvbix0LmxpbmUsdC5wb3NpdGlvbi10LmxpbmVTdGFydCkpfWZ1bmN0aW9uIG50KHQsZSl7dGhyb3cgVmFlKHQsZSl9ZnVuY3Rpb24gZDkodCxlKXt0Lm9uV2FybmluZyYmdC5vbldhcm5pbmcuY2FsbChudWxsLFZhZSh0LGUpKX12YXIgamFlPXtZQU1MOmZ1bmN0aW9uKGUsYSxpKXt2YXIgcixzLG47ZS52ZXJzaW9uIT09bnVsbCYmbnQoZSwiZHVwbGljYXRpb24gb2YgJVlBTUwgZGlyZWN0aXZlIiksaS5sZW5ndGghPT0xJiZudChlLCJZQU1MIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgb25lIGFyZ3VtZW50Iikscj0vXihbMC05XSspXC4oWzAtOV0rKSQvLmV4ZWMoaVswXSkscj09PW51bGwmJm50KGUsImlsbC1mb3JtZWQgYXJndW1lbnQgb2YgdGhlIFlBTUwgZGlyZWN0aXZlIikscz1wYXJzZUludChyWzFdLDEwKSxuPXBhcnNlSW50KHJbMl0sMTApLHMhPT0xJiZudChlLCJ1bmFjY2VwdGFibGUgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpLGUudmVyc2lvbj1pWzBdLGUuY2hlY2tMaW5lQnJlYWtzPW48MixuIT09MSYmbiE9PTImJmQ5KGUsInVuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQiKX0sVEFHOmZ1bmN0aW9uKGUsYSxpKXt2YXIgcixzO2kubGVuZ3RoIT09MiYmbnQoZSwiVEFHIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgdHdvIGFyZ3VtZW50cyIpLHI9aVswXSxzPWlbMV0sTmFlLnRlc3Qocil8fG50KGUsImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIiksUG4uY2FsbChlLnRhZ01hcCxyKSYmbnQoZSwndGhlcmUgaXMgYSBwcmV2aW91c2x5IGRlY2xhcmVkIHN1ZmZpeCBmb3IgIicrcisnIiB0YWcgaGFuZGxlJyksRmFlLnRlc3Qocyl8fG50KGUsImlsbC1mb3JtZWQgdGFnIHByZWZpeCAoc2Vjb25kIGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZSIpLGUudGFnTWFwW3JdPXN9fTtmdW5jdGlvbiBJbih0LGUsYSxpKXt2YXIgcixzLG4sbztpZihlPGEpe2lmKG89dC5pbnB1dC5zbGljZShlLGEpLGkpZm9yKHI9MCxzPW8ubGVuZ3RoO3I8cztyKz0xKW49by5jaGFyQ29kZUF0KHIpLG49PT05fHwzMjw9biYmbjw9MTExNDExMXx8bnQodCwiZXhwZWN0ZWQgdmFsaWQgSlNPTiBjaGFyYWN0ZXIiKTtlbHNlIE9EdC50ZXN0KG8pJiZudCh0LCJ0aGUgc3RyZWFtIGNvbnRhaW5zIG5vbi1wcmludGFibGUgY2hhcmFjdGVycyIpO3QucmVzdWx0Kz1vfX1mdW5jdGlvbiBVYWUodCxlLGEsaSl7dmFyIHIscyxuLG87Zm9yKGdzLmlzT2JqZWN0KGEpfHxudCh0LCJjYW5ub3QgbWVyZ2UgbWFwcGluZ3M7IHRoZSBwcm92aWRlZCBzb3VyY2Ugb2JqZWN0IGlzIHVuYWNjZXB0YWJsZSIpLHI9T2JqZWN0LmtleXMoYSksbj0wLG89ci5sZW5ndGg7bjxvO24rPTEpcz1yW25dLFBuLmNhbGwoZSxzKXx8KEJhZShlLHMsYVtzXSksaVtzXT0hMCl9ZnVuY3Rpb24gVDModCxlLGEsaSxyLHMsbixvKXt2YXIgZCxjO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwociksZD0wLGM9ci5sZW5ndGg7ZDxjO2QrPTEpQXJyYXkuaXNBcnJheShyW2RdKSYmbnQodCwibmVzdGVkIGFycmF5cyBhcmUgbm90IHN1cHBvcnRlZCBpbnNpZGUga2V5cyIpLHR5cGVvZiByPT0ib2JqZWN0IiYmT2FlKHJbZF0pPT09IltvYmplY3QgT2JqZWN0XSImJihyW2RdPSJbb2JqZWN0IE9iamVjdF0iKTtpZih0eXBlb2Ygcj09Im9iamVjdCImJk9hZShyKT09PSJbb2JqZWN0IE9iamVjdF0iJiYocj0iW29iamVjdCBPYmplY3RdIikscj1TdHJpbmcociksZT09PW51bGwmJihlPXt9KSxpPT09InRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIilpZihBcnJheS5pc0FycmF5KHMpKWZvcihkPTAsYz1zLmxlbmd0aDtkPGM7ZCs9MSlVYWUodCxlLHNbZF0sYSk7ZWxzZSBVYWUodCxlLHMsYSk7ZWxzZSF0Lmpzb24mJiFQbi5jYWxsKGEscikmJlBuLmNhbGwoZSxyKSYmKHQubGluZT1ufHx0LmxpbmUsdC5wb3NpdGlvbj1vfHx0LnBvc2l0aW9uLG50KHQsImR1cGxpY2F0ZWQgbWFwcGluZyBrZXkiKSksQmFlKGUscixzKSxkZWxldGUgYVtyXTtyZXR1cm4gZX1mdW5jdGlvbiBGXyh0KXt2YXIgZTtlPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxlPT09MTA/dC5wb3NpdGlvbisrOmU9PT0xMz8odC5wb3NpdGlvbisrLHQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKT09PTEwJiZ0LnBvc2l0aW9uKyspOm50KHQsImEgbGluZSBicmVhayBpcyBleHBlY3RlZCIpLHQubGluZSs9MSx0LmxpbmVTdGFydD10LnBvc2l0aW9ufWZ1bmN0aW9uIEcxKHQsZSxhKXtmb3IodmFyIGk9MCxyPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTtyIT09MDspe2Zvcig7dTAocik7KXI9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYoZSYmcj09PTM1KWRvIHI9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUociE9PTEwJiZyIT09MTMmJnIhPT0wKTtpZihfcihyKSlmb3IoRl8odCkscj10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksaSsrLHQubGluZUluZGVudD0wO3I9PT0zMjspdC5saW5lSW5kZW50Kysscj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtlbHNlIGJyZWFrfXJldHVybiBhIT09LTEmJmkhPT0wJiZ0LmxpbmVJbmRlbnQ8YSYmZDkodCwiZGVmaWNpZW50IGluZGVudGF0aW9uIiksaX1mdW5jdGlvbiBwOSh0KXt2YXIgZT10LnBvc2l0aW9uLGE7cmV0dXJuIGE9dC5pbnB1dC5jaGFyQ29kZUF0KGUpLCEhKChhPT09NDV8fGE9PT00NikmJmE9PT10LmlucHV0LmNoYXJDb2RlQXQoZSsxKSYmYT09PXQuaW5wdXQuY2hhckNvZGVBdChlKzIpJiYoZSs9MyxhPXQuaW5wdXQuY2hhckNvZGVBdChlKSxhPT09MHx8Q2EoYSkpKX1mdW5jdGlvbiBPXyh0LGUpe2U9PT0xP3QucmVzdWx0Kz0iICI6ZT4xJiYodC5yZXN1bHQrPWdzLnJlcGVhdChgCmAsZS0xKSl9ZnVuY3Rpb24gV0R0KHQsZSxhKXt2YXIgaSxyLHMsbixvLGQsYyxwLGw9dC5raW5kLGY9dC5yZXN1bHQsZztpZihnPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxDYShnKXx8XzMoZyl8fGc9PT0zNXx8Zz09PTM4fHxnPT09NDJ8fGc9PT0zM3x8Zz09PTEyNHx8Zz09PTYyfHxnPT09Mzl8fGc9PT0zNHx8Zz09PTM3fHxnPT09NjR8fGc9PT05Nnx8KGc9PT02M3x8Zz09PTQ1KSYmKHI9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSksQ2Eocil8fGEmJl8zKHIpKSlyZXR1cm4hMTtmb3IodC5raW5kPSJzY2FsYXIiLHQucmVzdWx0PSIiLHM9bj10LnBvc2l0aW9uLG89ITE7ZyE9PTA7KXtpZihnPT09NTgpe2lmKHI9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSksQ2Eocil8fGEmJl8zKHIpKWJyZWFrfWVsc2UgaWYoZz09PTM1KXtpZihpPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uLTEpLENhKGkpKWJyZWFrfWVsc2V7aWYodC5wb3NpdGlvbj09PXQubGluZVN0YXJ0JiZwOSh0KXx8YSYmXzMoZykpYnJlYWs7aWYoX3IoZykpaWYoZD10LmxpbmUsYz10LmxpbmVTdGFydCxwPXQubGluZUluZGVudCxHMSh0LCExLC0xKSx0LmxpbmVJbmRlbnQ+PWUpe289ITAsZz10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7Y29udGludWV9ZWxzZXt0LnBvc2l0aW9uPW4sdC5saW5lPWQsdC5saW5lU3RhcnQ9Yyx0LmxpbmVJbmRlbnQ9cDticmVha319byYmKEluKHQscyxuLCExKSxPXyh0LHQubGluZS1kKSxzPW49dC5wb3NpdGlvbixvPSExKSx1MChnKXx8KG49dC5wb3NpdGlvbisxKSxnPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pfXJldHVybiBJbih0LHMsbiwhMSksdC5yZXN1bHQ/ITA6KHQua2luZD1sLHQucmVzdWx0PWYsITEpfWZ1bmN0aW9uIEdEdCh0LGUpe3ZhciBhLGkscjtpZihhPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxhIT09MzkpcmV0dXJuITE7Zm9yKHQua2luZD0ic2NhbGFyIix0LnJlc3VsdD0iIix0LnBvc2l0aW9uKyssaT1yPXQucG9zaXRpb247KGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSE9PTA7KWlmKGE9PT0zOSlpZihJbih0LGksdC5wb3NpdGlvbiwhMCksYT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxhPT09MzkpaT10LnBvc2l0aW9uLHQucG9zaXRpb24rKyxyPXQucG9zaXRpb247ZWxzZSByZXR1cm4hMDtlbHNlIF9yKGEpPyhJbih0LGksciwhMCksT18odCxHMSh0LCExLGUpKSxpPXI9dC5wb3NpdGlvbik6dC5wb3NpdGlvbj09PXQubGluZVN0YXJ0JiZwOSh0KT9udCh0LCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXIiKToodC5wb3NpdGlvbisrLHI9dC5wb3NpdGlvbik7bnQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhciIpfWZ1bmN0aW9uIFlEdCh0LGUpe3ZhciBhLGkscixzLG4sbztpZihvPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxvIT09MzQpcmV0dXJuITE7Zm9yKHQua2luZD0ic2NhbGFyIix0LnJlc3VsdD0iIix0LnBvc2l0aW9uKyssYT1pPXQucG9zaXRpb247KG89dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSE9PTA7KXtpZihvPT09MzQpcmV0dXJuIEluKHQsYSx0LnBvc2l0aW9uLCEwKSx0LnBvc2l0aW9uKyssITA7aWYobz09PTkyKXtpZihJbih0LGEsdC5wb3NpdGlvbiwhMCksbz10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxfcihvKSlHMSh0LCExLGUpO2Vsc2UgaWYobzwyNTYmJkhhZVtvXSl0LnJlc3VsdCs9cWFlW29dLHQucG9zaXRpb24rKztlbHNlIGlmKChuPXFEdChvKSk+MCl7Zm9yKHI9bixzPTA7cj4wO3ItLSlvPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pLChuPUhEdChvKSk+PTA/cz0oczw8NCkrbjpudCh0LCJleHBlY3RlZCBoZXhhZGVjaW1hbCBjaGFyYWN0ZXIiKTt0LnJlc3VsdCs9akR0KHMpLHQucG9zaXRpb24rK31lbHNlIG50KHQsInVua25vd24gZXNjYXBlIHNlcXVlbmNlIik7YT1pPXQucG9zaXRpb259ZWxzZSBfcihvKT8oSW4odCxhLGksITApLE9fKHQsRzEodCwhMSxlKSksYT1pPXQucG9zaXRpb24pOnQucG9zaXRpb249PT10LmxpbmVTdGFydCYmcDkodCk/bnQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIik6KHQucG9zaXRpb24rKyxpPXQucG9zaXRpb24pfW50KHQsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKX1mdW5jdGlvbiBaRHQodCxlKXt2YXIgYT0hMCxpLHI9dC50YWcscyxuPXQuYW5jaG9yLG8sZCxjLHAsbCxmPXt9LGcseSx2LG07aWYobT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksbT09PTkxKWQ9OTMsbD0hMSxzPVtdO2Vsc2UgaWYobT09PTEyMylkPTEyNSxsPSEwLHM9e307ZWxzZSByZXR1cm4hMTtmb3IodC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXMpLG09dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7bSE9PTA7KXtpZihHMSh0LCEwLGUpLG09dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pLG09PT1kKXJldHVybiB0LnBvc2l0aW9uKyssdC50YWc9cix0LmFuY2hvcj1uLHQua2luZD1sPyJtYXBwaW5nIjoic2VxdWVuY2UiLHQucmVzdWx0PXMsITA7YXx8bnQodCwibWlzc2VkIGNvbW1hIGJldHdlZW4gZmxvdyBjb2xsZWN0aW9uIGVudHJpZXMiKSx5PWc9dj1udWxsLGM9cD0hMSxtPT09NjMmJihvPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKzEpLENhKG8pJiYoYz1wPSEwLHQucG9zaXRpb24rKyxHMSh0LCEwLGUpKSksaT10LmxpbmUsTDModCxlLGw5LCExLCEwKSx5PXQudGFnLGc9dC5yZXN1bHQsRzEodCwhMCxlKSxtPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSwocHx8dC5saW5lPT09aSkmJm09PT01OCYmKGM9ITAsbT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSxHMSh0LCEwLGUpLEwzKHQsZSxsOSwhMSwhMCksdj10LnJlc3VsdCksbD9UMyh0LHMsZix5LGcsdik6Yz9zLnB1c2goVDModCxudWxsLGYseSxnLHYpKTpzLnB1c2goZyksRzEodCwhMCxlKSxtPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxtPT09NDQ/KGE9ITAsbT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6YT0hMX1udCh0LCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGZsb3cgY29sbGVjdGlvbiIpfWZ1bmN0aW9uIFhEdCh0LGUpe3ZhciBhLGkscj1OXyxzPSExLG49ITEsbz1lLGQ9MCxjPSExLHAsbDtpZihsPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxsPT09MTI0KWk9ITE7ZWxzZSBpZihsPT09NjIpaT0hMDtlbHNlIHJldHVybiExO2Zvcih0LmtpbmQ9InNjYWxhciIsdC5yZXN1bHQ9IiI7bCE9PTA7KWlmKGw9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksbD09PTQzfHxsPT09NDUpTl89PT1yP3I9bD09PTQzP0lhZTpGRHQ6bnQodCwicmVwZWF0IG9mIGEgY2hvbXBpbmcgbW9kZSBpZGVudGlmaWVyIik7ZWxzZSBpZigocD1WRHQobCkpPj0wKXA9PT0wP250KHQsImJhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUiKTpuP250KHQsInJlcGVhdCBvZiBhbiBpbmRlbnRhdGlvbiB3aWR0aCBpZGVudGlmaWVyIik6KG89ZStwLTEsbj0hMCk7ZWxzZSBicmVhaztpZih1MChsKSl7ZG8gbD10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTt3aGlsZSh1MChsKSk7aWYobD09PTM1KWRvIGw9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUoIV9yKGwpJiZsIT09MCl9Zm9yKDtsIT09MDspe2ZvcihGXyh0KSx0LmxpbmVJbmRlbnQ9MCxsPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTsoIW58fHQubGluZUluZGVudDxvKSYmbD09PTMyOyl0LmxpbmVJbmRlbnQrKyxsPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2lmKCFuJiZ0LmxpbmVJbmRlbnQ+byYmKG89dC5saW5lSW5kZW50KSxfcihsKSl7ZCsrO2NvbnRpbnVlfWlmKHQubGluZUluZGVudDxvKXtyPT09SWFlP3QucmVzdWx0Kz1ncy5yZXBlYXQoYApgLHM/MStkOmQpOnI9PT1OXyYmcyYmKHQucmVzdWx0Kz1gCmApO2JyZWFrfWZvcihpP3UwKGwpPyhjPSEwLHQucmVzdWx0Kz1ncy5yZXBlYXQoYApgLHM/MStkOmQpKTpjPyhjPSExLHQucmVzdWx0Kz1ncy5yZXBlYXQoYApgLGQrMSkpOmQ9PT0wP3MmJih0LnJlc3VsdCs9IiAiKTp0LnJlc3VsdCs9Z3MucmVwZWF0KGAKYCxkKTp0LnJlc3VsdCs9Z3MucmVwZWF0KGAKYCxzPzErZDpkKSxzPSEwLG49ITAsZD0wLGE9dC5wb3NpdGlvbjshX3IobCkmJmwhPT0wOylsPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO0luKHQsYSx0LnBvc2l0aW9uLCExKX1yZXR1cm4hMH1mdW5jdGlvbiBXYWUodCxlKXt2YXIgYSxpPXQudGFnLHI9dC5hbmNob3Iscz1bXSxuLG89ITEsZDtmb3IodC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXMpLGQ9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pO2QhPT0wJiYhKGQhPT00NXx8KG49dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSksIUNhKG4pKSk7KXtpZihvPSEwLHQucG9zaXRpb24rKyxHMSh0LCEwLC0xKSYmdC5saW5lSW5kZW50PD1lKXtzLnB1c2gobnVsbCksZD10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7Y29udGludWV9aWYoYT10LmxpbmUsTDModCxlLFBhZSwhMSwhMCkscy5wdXNoKHQucmVzdWx0KSxHMSh0LCEwLC0xKSxkPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSwodC5saW5lPT09YXx8dC5saW5lSW5kZW50PmUpJiZkIT09MCludCh0LCJiYWQgaW5kZW50YXRpb24gb2YgYSBzZXF1ZW5jZSBlbnRyeSIpO2Vsc2UgaWYodC5saW5lSW5kZW50PGUpYnJlYWt9cmV0dXJuIG8/KHQudGFnPWksdC5hbmNob3I9cix0LmtpbmQ9InNlcXVlbmNlIix0LnJlc3VsdD1zLCEwKTohMX1mdW5jdGlvbiBLRHQodCxlLGEpe3ZhciBpLHIscyxuLG89dC50YWcsZD10LmFuY2hvcixjPXt9LHA9e30sbD1udWxsLGY9bnVsbCxnPW51bGwseT0hMSx2PSExLG07Zm9yKHQuYW5jaG9yIT09bnVsbCYmKHQuYW5jaG9yTWFwW3QuYW5jaG9yXT1jKSxtPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKTttIT09MDspe2lmKGk9dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24rMSkscz10LmxpbmUsbj10LnBvc2l0aW9uLChtPT09NjN8fG09PT01OCkmJkNhKGkpKW09PT02Mz8oeSYmKFQzKHQsYyxwLGwsZixudWxsKSxsPWY9Zz1udWxsKSx2PSEwLHk9ITAscj0hMCk6eT8oeT0hMSxyPSEwKTpudCh0LCJpbmNvbXBsZXRlIGV4cGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBrZXkgbm9kZSBpcyBtaXNzZWQ7IG9yIGZvbGxvd2VkIGJ5IGEgbm9uLXRhYnVsYXRlZCBlbXB0eSBsaW5lIiksdC5wb3NpdGlvbis9MSxtPWk7ZWxzZSBpZihMMyh0LGEsRWFlLCExLCEwKSlpZih0LmxpbmU9PT1zKXtmb3IobT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbik7dTAobSk7KW09dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7aWYobT09PTU4KW09dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksQ2EobSl8fG50KHQsImEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgZXhwZWN0ZWQgYWZ0ZXIgdGhlIGtleS12YWx1ZSBzZXBhcmF0b3Igd2l0aGluIGEgYmxvY2sgbWFwcGluZyIpLHkmJihUMyh0LGMscCxsLGYsbnVsbCksbD1mPWc9bnVsbCksdj0hMCx5PSExLHI9ITEsbD10LnRhZyxmPXQucmVzdWx0O2Vsc2UgaWYodiludCh0LCJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpO2Vsc2UgcmV0dXJuIHQudGFnPW8sdC5hbmNob3I9ZCwhMH1lbHNlIGlmKHYpbnQodCwiY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Iik7ZWxzZSByZXR1cm4gdC50YWc9byx0LmFuY2hvcj1kLCEwO2Vsc2UgYnJlYWs7aWYoKHQubGluZT09PXN8fHQubGluZUluZGVudD5lKSYmKEwzKHQsZSxjOSwhMCxyKSYmKHk/Zj10LnJlc3VsdDpnPXQucmVzdWx0KSx5fHwoVDModCxjLHAsbCxmLGcscyxuKSxsPWY9Zz1udWxsKSxHMSh0LCEwLC0xKSxtPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSksdC5saW5lSW5kZW50PmUmJm0hPT0wKW50KHQsImJhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnkiKTtlbHNlIGlmKHQubGluZUluZGVudDxlKWJyZWFrfXJldHVybiB5JiZUMyh0LGMscCxsLGYsbnVsbCksdiYmKHQudGFnPW8sdC5hbmNob3I9ZCx0LmtpbmQ9Im1hcHBpbmciLHQucmVzdWx0PWMpLHZ9ZnVuY3Rpb24gUUR0KHQpe3ZhciBlLGE9ITEsaT0hMSxyLHMsbjtpZihuPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxuIT09MzMpcmV0dXJuITE7aWYodC50YWchPT1udWxsJiZudCh0LCJkdXBsaWNhdGlvbiBvZiBhIHRhZyBwcm9wZXJ0eSIpLG49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksbj09PTYwPyhhPSEwLG49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbikpOm49PT0zMz8oaT0hMCxyPSIhISIsbj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6cj0iISIsZT10LnBvc2l0aW9uLGEpe2RvIG49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7d2hpbGUobiE9PTAmJm4hPT02Mik7dC5wb3NpdGlvbjx0Lmxlbmd0aD8ocz10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksbj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKSk6bnQodCwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKX1lbHNle2Zvcig7biE9PTAmJiFDYShuKTspbj09PTMzJiYoaT9udCh0LCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGV4Y2xhbWF0aW9uIG1hcmtzIik6KHI9dC5pbnB1dC5zbGljZShlLTEsdC5wb3NpdGlvbisxKSxOYWUudGVzdChyKXx8bnQodCwibmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnMiKSxpPSEwLGU9dC5wb3NpdGlvbisxKSksbj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtzPXQuaW5wdXQuc2xpY2UoZSx0LnBvc2l0aW9uKSxCRHQudGVzdChzKSYmbnQodCwidGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBmbG93IGluZGljYXRvciBjaGFyYWN0ZXJzIil9cmV0dXJuIHMmJiFGYWUudGVzdChzKSYmbnQodCwidGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAiK3MpLGE/dC50YWc9czpQbi5jYWxsKHQudGFnTWFwLHIpP3QudGFnPXQudGFnTWFwW3JdK3M6cj09PSIhIj90LnRhZz0iISIrczpyPT09IiEhIj90LnRhZz0idGFnOnlhbWwub3JnLDIwMDI6IitzOm50KHQsJ3VuZGVjbGFyZWQgdGFnIGhhbmRsZSAiJytyKyciJyksITB9ZnVuY3Rpb24gSkR0KHQpe3ZhciBlLGE7aWYoYT10LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbiksYSE9PTM4KXJldHVybiExO2Zvcih0LmFuY2hvciE9PW51bGwmJm50KHQsImR1cGxpY2F0aW9uIG9mIGFuIGFuY2hvciBwcm9wZXJ0eSIpLGE9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksZT10LnBvc2l0aW9uO2EhPT0wJiYhQ2EoYSkmJiFfMyhhKTspYT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtyZXR1cm4gdC5wb3NpdGlvbj09PWUmJm50KHQsIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIiKSx0LmFuY2hvcj10LmlucHV0LnNsaWNlKGUsdC5wb3NpdGlvbiksITB9ZnVuY3Rpb24gZUV0KHQpe3ZhciBlLGEsaTtpZihpPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSxpIT09NDIpcmV0dXJuITE7Zm9yKGk9dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksZT10LnBvc2l0aW9uO2khPT0wJiYhQ2EoaSkmJiFfMyhpKTspaT10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTtyZXR1cm4gdC5wb3NpdGlvbj09PWUmJm50KHQsIm5hbWUgb2YgYW4gYWxpYXMgbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpLGE9dC5pbnB1dC5zbGljZShlLHQucG9zaXRpb24pLFBuLmNhbGwodC5hbmNob3JNYXAsYSl8fG50KHQsJ3VuaWRlbnRpZmllZCBhbGlhcyAiJythKyciJyksdC5yZXN1bHQ9dC5hbmNob3JNYXBbYV0sRzEodCwhMCwtMSksITB9ZnVuY3Rpb24gTDModCxlLGEsaSxyKXt2YXIgcyxuLG8sZD0xLGM9ITEscD0hMSxsLGYsZyx5LHY7aWYodC5saXN0ZW5lciE9PW51bGwmJnQubGlzdGVuZXIoIm9wZW4iLHQpLHQudGFnPW51bGwsdC5hbmNob3I9bnVsbCx0LmtpbmQ9bnVsbCx0LnJlc3VsdD1udWxsLHM9bj1vPWM5PT09YXx8UGFlPT09YSxpJiZHMSh0LCEwLC0xKSYmKGM9ITAsdC5saW5lSW5kZW50PmU/ZD0xOnQubGluZUluZGVudD09PWU/ZD0wOnQubGluZUluZGVudDxlJiYoZD0tMSkpLGQ9PT0xKWZvcig7UUR0KHQpfHxKRHQodCk7KUcxKHQsITAsLTEpPyhjPSEwLG89cyx0LmxpbmVJbmRlbnQ+ZT9kPTE6dC5saW5lSW5kZW50PT09ZT9kPTA6dC5saW5lSW5kZW50PGUmJihkPS0xKSk6bz0hMTtpZihvJiYobz1jfHxyKSwoZD09PTF8fGM5PT09YSkmJihsOT09PWF8fEVhZT09PWE/eT1lOnk9ZSsxLHY9dC5wb3NpdGlvbi10LmxpbmVTdGFydCxkPT09MT9vJiYoV2FlKHQsdil8fEtEdCh0LHYseSkpfHxaRHQodCx5KT9wPSEwOihuJiZYRHQodCx5KXx8R0R0KHQseSl8fFlEdCh0LHkpP3A9ITA6ZUV0KHQpPyhwPSEwLCh0LnRhZyE9PW51bGx8fHQuYW5jaG9yIT09bnVsbCkmJm50KHQsImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzIikpOldEdCh0LHksbDk9PT1hKSYmKHA9ITAsdC50YWc9PT1udWxsJiYodC50YWc9Ij8iKSksdC5hbmNob3IhPT1udWxsJiYodC5hbmNob3JNYXBbdC5hbmNob3JdPXQucmVzdWx0KSk6ZD09PTAmJihwPW8mJldhZSh0LHYpKSksdC50YWchPT1udWxsJiZ0LnRhZyE9PSIhIilpZih0LnRhZz09PSI/Iil7Zm9yKHQucmVzdWx0IT09bnVsbCYmdC5raW5kIT09InNjYWxhciImJm50KHQsJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8Pz4gdGFnOyBpdCBzaG91bGQgYmUgInNjYWxhciIsIG5vdCAiJyt0LmtpbmQrJyInKSxsPTAsZj10LmltcGxpY2l0VHlwZXMubGVuZ3RoO2w8ZjtsKz0xKWlmKGc9dC5pbXBsaWNpdFR5cGVzW2xdLGcucmVzb2x2ZSh0LnJlc3VsdCkpe3QucmVzdWx0PWcuY29uc3RydWN0KHQucmVzdWx0KSx0LnRhZz1nLnRhZyx0LmFuY2hvciE9PW51bGwmJih0LmFuY2hvck1hcFt0LmFuY2hvcl09dC5yZXN1bHQpO2JyZWFrfX1lbHNlIFBuLmNhbGwodC50eXBlTWFwW3Qua2luZHx8ImZhbGxiYWNrIl0sdC50YWcpPyhnPXQudHlwZU1hcFt0LmtpbmR8fCJmYWxsYmFjayJdW3QudGFnXSx0LnJlc3VsdCE9PW51bGwmJmcua2luZCE9PXQua2luZCYmbnQodCwidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwiK3QudGFnKyc+IHRhZzsgaXQgc2hvdWxkIGJlICInK2cua2luZCsnIiwgbm90ICInK3Qua2luZCsnIicpLGcucmVzb2x2ZSh0LnJlc3VsdCk/KHQucmVzdWx0PWcuY29uc3RydWN0KHQucmVzdWx0KSx0LmFuY2hvciE9PW51bGwmJih0LmFuY2hvck1hcFt0LmFuY2hvcl09dC5yZXN1bHQpKTpudCh0LCJjYW5ub3QgcmVzb2x2ZSBhIG5vZGUgd2l0aCAhPCIrdC50YWcrIj4gZXhwbGljaXQgdGFnIikpOm50KHQsInVua25vd24gdGFnICE8Iit0LnRhZysiPiIpO3JldHVybiB0Lmxpc3RlbmVyIT09bnVsbCYmdC5saXN0ZW5lcigiY2xvc2UiLHQpLHQudGFnIT09bnVsbHx8dC5hbmNob3IhPT1udWxsfHxwfWZ1bmN0aW9uIHRFdCh0KXt2YXIgZT10LnBvc2l0aW9uLGEsaSxyLHM9ITEsbjtmb3IodC52ZXJzaW9uPW51bGwsdC5jaGVja0xpbmVCcmVha3M9dC5sZWdhY3ksdC50YWdNYXA9e30sdC5hbmNob3JNYXA9e307KG49dC5pbnB1dC5jaGFyQ29kZUF0KHQucG9zaXRpb24pKSE9PTAmJihHMSh0LCEwLC0xKSxuPXQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKSwhKHQubGluZUluZGVudD4wfHxuIT09MzcpKTspe2ZvcihzPSEwLG49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbiksYT10LnBvc2l0aW9uO24hPT0wJiYhQ2Eobik7KW49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7Zm9yKGk9dC5pbnB1dC5zbGljZShhLHQucG9zaXRpb24pLHI9W10saS5sZW5ndGg8MSYmbnQodCwiZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoIik7biE9PTA7KXtmb3IoO3UwKG4pOyluPXQuaW5wdXQuY2hhckNvZGVBdCgrK3QucG9zaXRpb24pO2lmKG49PT0zNSl7ZG8gbj10LmlucHV0LmNoYXJDb2RlQXQoKyt0LnBvc2l0aW9uKTt3aGlsZShuIT09MCYmIV9yKG4pKTticmVha31pZihfcihuKSlicmVhaztmb3IoYT10LnBvc2l0aW9uO24hPT0wJiYhQ2Eobik7KW49dC5pbnB1dC5jaGFyQ29kZUF0KCsrdC5wb3NpdGlvbik7ci5wdXNoKHQuaW5wdXQuc2xpY2UoYSx0LnBvc2l0aW9uKSl9biE9PTAmJkZfKHQpLFBuLmNhbGwoamFlLGkpP2phZVtpXSh0LGkscik6ZDkodCwndW5rbm93biBkb2N1bWVudCBkaXJlY3RpdmUgIicraSsnIicpfWlmKEcxKHQsITAsLTEpLHQubGluZUluZGVudD09PTAmJnQuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKT09PTQ1JiZ0LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisxKT09PTQ1JiZ0LmlucHV0LmNoYXJDb2RlQXQodC5wb3NpdGlvbisyKT09PTQ1Pyh0LnBvc2l0aW9uKz0zLEcxKHQsITAsLTEpKTpzJiZudCh0LCJkaXJlY3RpdmVzIGVuZCBtYXJrIGlzIGV4cGVjdGVkIiksTDModCx0LmxpbmVJbmRlbnQtMSxjOSwhMSwhMCksRzEodCwhMCwtMSksdC5jaGVja0xpbmVCcmVha3MmJlJEdC50ZXN0KHQuaW5wdXQuc2xpY2UoZSx0LnBvc2l0aW9uKSkmJmQ5KHQsIm5vbi1BU0NJSSBsaW5lIGJyZWFrcyBhcmUgaW50ZXJwcmV0ZWQgYXMgY29udGVudCIpLHQuZG9jdW1lbnRzLnB1c2godC5yZXN1bHQpLHQucG9zaXRpb249PT10LmxpbmVTdGFydCYmcDkodCkpe3QuaW5wdXQuY2hhckNvZGVBdCh0LnBvc2l0aW9uKT09PTQ2JiYodC5wb3NpdGlvbis9MyxHMSh0LCEwLC0xKSk7cmV0dXJufWlmKHQucG9zaXRpb248dC5sZW5ndGgtMSludCh0LCJlbmQgb2YgdGhlIHN0cmVhbSBvciBhIGRvY3VtZW50IHNlcGFyYXRvciBpcyBleHBlY3RlZCIpO2Vsc2UgcmV0dXJufWZ1bmN0aW9uIEdhZSh0LGUpe3Q9U3RyaW5nKHQpLGU9ZXx8e30sdC5sZW5ndGghPT0wJiYodC5jaGFyQ29kZUF0KHQubGVuZ3RoLTEpIT09MTAmJnQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKSE9PTEzJiYodCs9YApgKSx0LmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKHQ9dC5zbGljZSgxKSkpO3ZhciBhPW5ldyBVRHQodCxlKSxpPXQuaW5kZXhPZigiXDAiKTtmb3IoaSE9PS0xJiYoYS5wb3NpdGlvbj1pLG50KGEsIm51bGwgYnl0ZSBpcyBub3QgYWxsb3dlZCBpbiBpbnB1dCIpKSxhLmlucHV0Kz0iXDAiO2EuaW5wdXQuY2hhckNvZGVBdChhLnBvc2l0aW9uKT09PTMyOylhLmxpbmVJbmRlbnQrPTEsYS5wb3NpdGlvbis9MTtmb3IoO2EucG9zaXRpb248YS5sZW5ndGgtMTspdEV0KGEpO3JldHVybiBhLmRvY3VtZW50c31mdW5jdGlvbiBZYWUodCxlLGEpe2UhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCImJnR5cGVvZiBhPiJ1IiYmKGE9ZSxlPW51bGwpO3ZhciBpPUdhZSh0LGEpO2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXJldHVybiBpO2Zvcih2YXIgcj0wLHM9aS5sZW5ndGg7cjxzO3IrPTEpZShpW3JdKX1mdW5jdGlvbiBaYWUodCxlKXt2YXIgYT1HYWUodCxlKTtpZihhLmxlbmd0aCE9PTApe2lmKGEubGVuZ3RoPT09MSlyZXR1cm4gYVswXTt0aHJvdyBuZXcgQWFlKCJleHBlY3RlZCBhIHNpbmdsZSBkb2N1bWVudCBpbiB0aGUgc3RyZWFtLCBidXQgZm91bmQgbW9yZSIpfX1mdW5jdGlvbiBhRXQodCxlLGEpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsJiZ0eXBlb2YgYT4idSImJihhPWUsZT1udWxsKSxZYWUodCxlLGdzLmV4dGVuZCh7c2NoZW1hOkRhZX0sYSkpfWZ1bmN0aW9uIGlFdCh0LGUpe3JldHVybiBaYWUodCxncy5leHRlbmQoe3NjaGVtYTpEYWV9LGUpKX0kNi5leHBvcnRzLmxvYWRBbGw9WWFlLCQ2LmV4cG9ydHMubG9hZD1aYWUsJDYuZXhwb3J0cy5zYWZlTG9hZEFsbD1hRXQsJDYuZXhwb3J0cy5zYWZlTG9hZD1pRXQ7dmFyIGYwfSk7dmFyIHlpZT1wdCgoTl8xLHFfKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQTY9ZDAoKSxENj1rMygpLHJFdD1MNigpLHNFdD1DMygpLEthZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLFFhZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LG5FdD05LEU2PTEwLG9FdD0xMyxsRXQ9MzIsY0V0PTMzLGRFdD0zNCxKYWU9MzUscEV0PTM3LGhFdD0zOCx1RXQ9MzksZkV0PTQyLGVpZT00NCxtRXQ9NDUsdGllPTU4LGdFdD02MSxiRXQ9NjIsdkV0PTYzLHlFdD02NCxhaWU9OTEsaWllPTkzLHhFdD05NixyaWU9MTIzLHdFdD0xMjQsc2llPTEyNSxqMj17fTtqMlswXT0iXFwwIixqMls3XT0iXFxhIixqMls4XT0iXFxiIixqMls5XT0iXFx0IixqMlsxMF09IlxcbiIsajJbMTFdPSJcXHYiLGoyWzEyXT0iXFxmIixqMlsxM109IlxcciIsajJbMjddPSJcXGUiLGoyWzM0XT0nXFwiJyxqMls5Ml09IlxcXFwiLGoyWzEzM109IlxcTiIsajJbMTYwXT0iXFxfIixqMls4MjMyXT0iXFxMIixqMls4MjMzXT0iXFxQIjt2YXIgTUV0PVsieSIsIlkiLCJ5ZXMiLCJZZXMiLCJZRVMiLCJvbiIsIk9uIiwiT04iLCJuIiwiTiIsIm5vIiwiTm8iLCJOTyIsIm9mZiIsIk9mZiIsIk9GRiJdO2Z1bmN0aW9uIHpFdCh0LGUpe3ZhciBhLGkscixzLG4sbyxkO2lmKGU9PT1udWxsKXJldHVybnt9O2ZvcihhPXt9LGk9T2JqZWN0LmtleXMoZSkscj0wLHM9aS5sZW5ndGg7cjxzO3IrPTEpbj1pW3JdLG89U3RyaW5nKGVbbl0pLG4uc2xpY2UoMCwyKT09PSIhISImJihuPSJ0YWc6eWFtbC5vcmcsMjAwMjoiK24uc2xpY2UoMikpLGQ9dC5jb21waWxlZFR5cGVNYXAuZmFsbGJhY2tbbl0sZCYmUWFlLmNhbGwoZC5zdHlsZUFsaWFzZXMsbykmJihvPWQuc3R5bGVBbGlhc2VzW29dKSxhW25dPW87cmV0dXJuIGF9ZnVuY3Rpb24gbmllKHQpe3ZhciBlLGEsaTtpZihlPXQudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCksdDw9MjU1KWE9IngiLGk9MjtlbHNlIGlmKHQ8PTY1NTM1KWE9InUiLGk9NDtlbHNlIGlmKHQ8PTQyOTQ5NjcyOTUpYT0iVSIsaT04O2Vsc2UgdGhyb3cgbmV3IEQ2KCJjb2RlIHBvaW50IHdpdGhpbiBhIHN0cmluZyBtYXkgbm90IGJlIGdyZWF0ZXIgdGhhbiAweEZGRkZGRkZGIik7cmV0dXJuIlxcIithK0E2LnJlcGVhdCgiMCIsaS1lLmxlbmd0aCkrZX1mdW5jdGlvbiBrRXQodCl7dGhpcy5zY2hlbWE9dC5zY2hlbWF8fHJFdCx0aGlzLmluZGVudD1NYXRoLm1heCgxLHQuaW5kZW50fHwyKSx0aGlzLm5vQXJyYXlJbmRlbnQ9dC5ub0FycmF5SW5kZW50fHwhMSx0aGlzLnNraXBJbnZhbGlkPXQuc2tpcEludmFsaWR8fCExLHRoaXMuZmxvd0xldmVsPUE2LmlzTm90aGluZyh0LmZsb3dMZXZlbCk/LTE6dC5mbG93TGV2ZWwsdGhpcy5zdHlsZU1hcD16RXQodGhpcy5zY2hlbWEsdC5zdHlsZXN8fG51bGwpLHRoaXMuc29ydEtleXM9dC5zb3J0S2V5c3x8ITEsdGhpcy5saW5lV2lkdGg9dC5saW5lV2lkdGh8fDgwLHRoaXMubm9SZWZzPXQubm9SZWZzfHwhMSx0aGlzLm5vQ29tcGF0TW9kZT10Lm5vQ29tcGF0TW9kZXx8ITEsdGhpcy5jb25kZW5zZUZsb3c9dC5jb25kZW5zZUZsb3d8fCExLHRoaXMuaW1wbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0LHRoaXMuZXhwbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEV4cGxpY2l0LHRoaXMudGFnPW51bGwsdGhpcy5yZXN1bHQ9IiIsdGhpcy5kdXBsaWNhdGVzPVtdLHRoaXMudXNlZER1cGxpY2F0ZXM9bnVsbH1mdW5jdGlvbiBvaWUodCxlKXtmb3IodmFyIGE9QTYucmVwZWF0KCIgIixlKSxpPTAscj0tMSxzPSIiLG4sbz10Lmxlbmd0aDtpPG87KXI9dC5pbmRleE9mKGAKYCxpKSxyPT09LTE/KG49dC5zbGljZShpKSxpPW8pOihuPXQuc2xpY2UoaSxyKzEpLGk9cisxKSxuLmxlbmd0aCYmbiE9PWAKYCYmKHMrPWEpLHMrPW47cmV0dXJuIHN9ZnVuY3Rpb24gUl8odCxlKXtyZXR1cm5gCmArQTYucmVwZWF0KCIgIix0LmluZGVudCplKX1mdW5jdGlvbiBTRXQodCxlKXt2YXIgYSxpLHI7Zm9yKGE9MCxpPXQuaW1wbGljaXRUeXBlcy5sZW5ndGg7YTxpO2ErPTEpaWYocj10LmltcGxpY2l0VHlwZXNbYV0sci5yZXNvbHZlKGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEJfKHQpe3JldHVybiB0PT09bEV0fHx0PT09bkV0fWZ1bmN0aW9uICQzKHQpe3JldHVybiAzMjw9dCYmdDw9MTI2fHwxNjE8PXQmJnQ8PTU1Mjk1JiZ0IT09ODIzMiYmdCE9PTgyMzN8fDU3MzQ0PD10JiZ0PD02NTUzMyYmdCE9PTY1Mjc5fHw2NTUzNjw9dCYmdDw9MTExNDExMX1mdW5jdGlvbiBDRXQodCl7cmV0dXJuICQzKHQpJiYhQl8odCkmJnQhPT02NTI3OSYmdCE9PW9FdCYmdCE9PUU2fWZ1bmN0aW9uIGxpZSh0LGUpe3JldHVybiAkMyh0KSYmdCE9PTY1Mjc5JiZ0IT09ZWllJiZ0IT09YWllJiZ0IT09aWllJiZ0IT09cmllJiZ0IT09c2llJiZ0IT09dGllJiYodCE9PUphZXx8ZSYmQ0V0KGUpKX1mdW5jdGlvbiBfRXQodCl7cmV0dXJuICQzKHQpJiZ0IT09NjUyNzkmJiFCXyh0KSYmdCE9PW1FdCYmdCE9PXZFdCYmdCE9PXRpZSYmdCE9PWVpZSYmdCE9PWFpZSYmdCE9PWlpZSYmdCE9PXJpZSYmdCE9PXNpZSYmdCE9PUphZSYmdCE9PWhFdCYmdCE9PWZFdCYmdCE9PWNFdCYmdCE9PXdFdCYmdCE9PWdFdCYmdCE9PWJFdCYmdCE9PXVFdCYmdCE9PWRFdCYmdCE9PXBFdCYmdCE9PXlFdCYmdCE9PXhFdH1mdW5jdGlvbiBjaWUodCl7dmFyIGU9L15cbiogLztyZXR1cm4gZS50ZXN0KHQpfXZhciBkaWU9MSxwaWU9MixoaWU9Myx1aWU9NCxoOT01O2Z1bmN0aW9uIFRFdCh0LGUsYSxpLHIpe3ZhciBzLG4sbyxkPSExLGM9ITEscD1pIT09LTEsbD0tMSxmPV9FdCh0LmNoYXJDb2RlQXQoMCkpJiYhQl8odC5jaGFyQ29kZUF0KHQubGVuZ3RoLTEpKTtpZihlKWZvcihzPTA7czx0Lmxlbmd0aDtzKyspe2lmKG49dC5jaGFyQ29kZUF0KHMpLCEkMyhuKSlyZXR1cm4gaDk7bz1zPjA/dC5jaGFyQ29kZUF0KHMtMSk6bnVsbCxmPWYmJmxpZShuLG8pfWVsc2V7Zm9yKHM9MDtzPHQubGVuZ3RoO3MrKyl7aWYobj10LmNoYXJDb2RlQXQocyksbj09PUU2KWQ9ITAscCYmKGM9Y3x8cy1sLTE+aSYmdFtsKzFdIT09IiAiLGw9cyk7ZWxzZSBpZighJDMobikpcmV0dXJuIGg5O289cz4wP3QuY2hhckNvZGVBdChzLTEpOm51bGwsZj1mJiZsaWUobixvKX1jPWN8fHAmJnMtbC0xPmkmJnRbbCsxXSE9PSIgIn1yZXR1cm4hZCYmIWM/ZiYmIXIodCk/ZGllOnBpZTphPjkmJmNpZSh0KT9oOTpjP3VpZTpoaWV9ZnVuY3Rpb24gTEV0KHQsZSxhLGkpe3QuZHVtcD0oZnVuY3Rpb24oKXtpZihlLmxlbmd0aD09PTApcmV0dXJuIicnIjtpZighdC5ub0NvbXBhdE1vZGUmJk1FdC5pbmRleE9mKGUpIT09LTEpcmV0dXJuIiciK2UrIiciO3ZhciByPXQuaW5kZW50Kk1hdGgubWF4KDEsYSkscz10LmxpbmVXaWR0aD09PS0xPy0xOk1hdGgubWF4KE1hdGgubWluKHQubGluZVdpZHRoLDQwKSx0LmxpbmVXaWR0aC1yKSxuPWl8fHQuZmxvd0xldmVsPi0xJiZhPj10LmZsb3dMZXZlbDtmdW5jdGlvbiBvKGQpe3JldHVybiBTRXQodCxkKX1zd2l0Y2goVEV0KGUsbix0LmluZGVudCxzLG8pKXtjYXNlIGRpZTpyZXR1cm4gZTtjYXNlIHBpZTpyZXR1cm4iJyIrZS5yZXBsYWNlKC8nL2csIicnIikrIiciO2Nhc2UgaGllOnJldHVybiJ8IitmaWUoZSx0LmluZGVudCkrbWllKG9pZShlLHIpKTtjYXNlIHVpZTpyZXR1cm4iPiIrZmllKGUsdC5pbmRlbnQpK21pZShvaWUoJEV0KGUscykscikpO2Nhc2UgaDk6cmV0dXJuJyInK0FFdChlLHMpKyciJztkZWZhdWx0OnRocm93IG5ldyBENigiaW1wb3NzaWJsZSBlcnJvcjogaW52YWxpZCBzY2FsYXIgc3R5bGUiKX19KSgpfWZ1bmN0aW9uIGZpZSh0LGUpe3ZhciBhPWNpZSh0KT9TdHJpbmcoZSk6IiIsaT10W3QubGVuZ3RoLTFdPT09YApgLHI9aSYmKHRbdC5sZW5ndGgtMl09PT1gCmB8fHQ9PT1gCmApLHM9cj8iKyI6aT8iIjoiLSI7cmV0dXJuIGErcytgCmB9ZnVuY3Rpb24gbWllKHQpe3JldHVybiB0W3QubGVuZ3RoLTFdPT09YApgP3Quc2xpY2UoMCwtMSk6dH1mdW5jdGlvbiAkRXQodCxlKXtmb3IodmFyIGE9LyhcbispKFteXG5dKikvZyxpPShmdW5jdGlvbigpe3ZhciBjPXQuaW5kZXhPZihgCmApO3JldHVybiBjPWMhPT0tMT9jOnQubGVuZ3RoLGEubGFzdEluZGV4PWMsZ2llKHQuc2xpY2UoMCxjKSxlKX0pKCkscj10WzBdPT09YApgfHx0WzBdPT09IiAiLHMsbjtuPWEuZXhlYyh0KTspe3ZhciBvPW5bMV0sZD1uWzJdO3M9ZFswXT09PSIgIixpKz1vKyghciYmIXMmJmQhPT0iIj9gCmA6IiIpK2dpZShkLGUpLHI9c31yZXR1cm4gaX1mdW5jdGlvbiBnaWUodCxlKXtpZih0PT09IiJ8fHRbMF09PT0iICIpcmV0dXJuIHQ7Zm9yKHZhciBhPS8gW14gXS9nLGkscj0wLHMsbj0wLG89MCxkPSIiO2k9YS5leGVjKHQpOylvPWkuaW5kZXgsby1yPmUmJihzPW4+cj9uOm8sZCs9YApgK3Quc2xpY2UocixzKSxyPXMrMSksbj1vO3JldHVybiBkKz1gCmAsdC5sZW5ndGgtcj5lJiZuPnI/ZCs9dC5zbGljZShyLG4pK2AKYCt0LnNsaWNlKG4rMSk6ZCs9dC5zbGljZShyKSxkLnNsaWNlKDEpfWZ1bmN0aW9uIEFFdCh0KXtmb3IodmFyIGU9IiIsYSxpLHIscz0wO3M8dC5sZW5ndGg7cysrKXtpZihhPXQuY2hhckNvZGVBdChzKSxhPj01NTI5NiYmYTw9NTYzMTkmJihpPXQuY2hhckNvZGVBdChzKzEpLGk+PTU2MzIwJiZpPD01NzM0Mykpe2UrPW5pZSgoYS01NTI5NikqMTAyNCtpLTU2MzIwKzY1NTM2KSxzKys7Y29udGludWV9cj1qMlthXSxlKz0hciYmJDMoYSk/dFtzXTpyfHxuaWUoYSl9cmV0dXJuIGV9ZnVuY3Rpb24gREV0KHQsZSxhKXt2YXIgaT0iIixyPXQudGFnLHMsbjtmb3Iocz0wLG49YS5sZW5ndGg7czxuO3MrPTEpbTAodCxlLGFbc10sITEsITEpJiYocyE9PTAmJihpKz0iLCIrKHQuY29uZGVuc2VGbG93PyIiOiIgIikpLGkrPXQuZHVtcCk7dC50YWc9cix0LmR1bXA9IlsiK2krIl0ifWZ1bmN0aW9uIEVFdCh0LGUsYSxpKXt2YXIgcj0iIixzPXQudGFnLG4sbztmb3Iobj0wLG89YS5sZW5ndGg7bjxvO24rPTEpbTAodCxlKzEsYVtuXSwhMCwhMCkmJigoIWl8fG4hPT0wKSYmKHIrPVJfKHQsZSkpLHQuZHVtcCYmRTY9PT10LmR1bXAuY2hhckNvZGVBdCgwKT9yKz0iLSI6cis9Ii0gIixyKz10LmR1bXApO3QudGFnPXMsdC5kdW1wPXJ8fCJbXSJ9ZnVuY3Rpb24gUEV0KHQsZSxhKXt2YXIgaT0iIixyPXQudGFnLHM9T2JqZWN0LmtleXMoYSksbixvLGQsYyxwO2ZvcihuPTAsbz1zLmxlbmd0aDtuPG87bis9MSlwPSIiLG4hPT0wJiYocCs9IiwgIiksdC5jb25kZW5zZUZsb3cmJihwKz0nIicpLGQ9c1tuXSxjPWFbZF0sbTAodCxlLGQsITEsITEpJiYodC5kdW1wLmxlbmd0aD4xMDI0JiYocCs9Ij8gIikscCs9dC5kdW1wKyh0LmNvbmRlbnNlRmxvdz8nIic6IiIpKyI6IisodC5jb25kZW5zZUZsb3c/IiI6IiAiKSxtMCh0LGUsYywhMSwhMSkmJihwKz10LmR1bXAsaSs9cCkpO3QudGFnPXIsdC5kdW1wPSJ7IitpKyJ9In1mdW5jdGlvbiBJRXQodCxlLGEsaSl7dmFyIHI9IiIscz10LnRhZyxuPU9iamVjdC5rZXlzKGEpLG8sZCxjLHAsbCxmO2lmKHQuc29ydEtleXM9PT0hMCluLnNvcnQoKTtlbHNlIGlmKHR5cGVvZiB0LnNvcnRLZXlzPT0iZnVuY3Rpb24iKW4uc29ydCh0LnNvcnRLZXlzKTtlbHNlIGlmKHQuc29ydEtleXMpdGhyb3cgbmV3IEQ2KCJzb3J0S2V5cyBtdXN0IGJlIGEgYm9vbGVhbiBvciBhIGZ1bmN0aW9uIik7Zm9yKG89MCxkPW4ubGVuZ3RoO288ZDtvKz0xKWY9IiIsKCFpfHxvIT09MCkmJihmKz1SXyh0LGUpKSxjPW5bb10scD1hW2NdLG0wKHQsZSsxLGMsITAsITAsITApJiYobD10LnRhZyE9PW51bGwmJnQudGFnIT09Ij8ifHx0LmR1bXAmJnQuZHVtcC5sZW5ndGg+MTAyNCxsJiYodC5kdW1wJiZFNj09PXQuZHVtcC5jaGFyQ29kZUF0KDApP2YrPSI/IjpmKz0iPyAiKSxmKz10LmR1bXAsbCYmKGYrPVJfKHQsZSkpLG0wKHQsZSsxLHAsITAsbCkmJih0LmR1bXAmJkU2PT09dC5kdW1wLmNoYXJDb2RlQXQoMCk/Zis9IjoiOmYrPSI6ICIsZis9dC5kdW1wLHIrPWYpKTt0LnRhZz1zLHQuZHVtcD1yfHwie30ifWZ1bmN0aW9uIGJpZSh0LGUsYSl7dmFyIGkscixzLG4sbyxkO2ZvcihyPWE/dC5leHBsaWNpdFR5cGVzOnQuaW1wbGljaXRUeXBlcyxzPTAsbj1yLmxlbmd0aDtzPG47cys9MSlpZihvPXJbc10sKG8uaW5zdGFuY2VPZnx8by5wcmVkaWNhdGUpJiYoIW8uaW5zdGFuY2VPZnx8dHlwZW9mIGU9PSJvYmplY3QiJiZlIGluc3RhbmNlb2Ygby5pbnN0YW5jZU9mKSYmKCFvLnByZWRpY2F0ZXx8by5wcmVkaWNhdGUoZSkpKXtpZih0LnRhZz1hP28udGFnOiI/IixvLnJlcHJlc2VudCl7aWYoZD10LnN0eWxlTWFwW28udGFnXXx8by5kZWZhdWx0U3R5bGUsS2FlLmNhbGwoby5yZXByZXNlbnQpPT09IltvYmplY3QgRnVuY3Rpb25dIilpPW8ucmVwcmVzZW50KGUsZCk7ZWxzZSBpZihRYWUuY2FsbChvLnJlcHJlc2VudCxkKSlpPW8ucmVwcmVzZW50W2RdKGUsZCk7ZWxzZSB0aHJvdyBuZXcgRDYoIiE8IitvLnRhZysnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgIicrZCsnIiBzdHlsZScpO3QuZHVtcD1pfXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIG0wKHQsZSxhLGkscixzKXt0LnRhZz1udWxsLHQuZHVtcD1hLGJpZSh0LGEsITEpfHxiaWUodCxhLCEwKTt2YXIgbj1LYWUuY2FsbCh0LmR1bXApO2kmJihpPXQuZmxvd0xldmVsPDB8fHQuZmxvd0xldmVsPmUpO3ZhciBvPW49PT0iW29iamVjdCBPYmplY3RdInx8bj09PSJbb2JqZWN0IEFycmF5XSIsZCxjO2lmKG8mJihkPXQuZHVwbGljYXRlcy5pbmRleE9mKGEpLGM9ZCE9PS0xKSwodC50YWchPT1udWxsJiZ0LnRhZyE9PSI/Inx8Y3x8dC5pbmRlbnQhPT0yJiZlPjApJiYocj0hMSksYyYmdC51c2VkRHVwbGljYXRlc1tkXSl0LmR1bXA9IipyZWZfIitkO2Vsc2V7aWYobyYmYyYmIXQudXNlZER1cGxpY2F0ZXNbZF0mJih0LnVzZWREdXBsaWNhdGVzW2RdPSEwKSxuPT09IltvYmplY3QgT2JqZWN0XSIpaSYmT2JqZWN0LmtleXModC5kdW1wKS5sZW5ndGghPT0wPyhJRXQodCxlLHQuZHVtcCxyKSxjJiYodC5kdW1wPSImcmVmXyIrZCt0LmR1bXApKTooUEV0KHQsZSx0LmR1bXApLGMmJih0LmR1bXA9IiZyZWZfIitkKyIgIit0LmR1bXApKTtlbHNlIGlmKG49PT0iW29iamVjdCBBcnJheV0iKXt2YXIgcD10Lm5vQXJyYXlJbmRlbnQmJmU+MD9lLTE6ZTtpJiZ0LmR1bXAubGVuZ3RoIT09MD8oRUV0KHQscCx0LmR1bXAsciksYyYmKHQuZHVtcD0iJnJlZl8iK2QrdC5kdW1wKSk6KERFdCh0LHAsdC5kdW1wKSxjJiYodC5kdW1wPSImcmVmXyIrZCsiICIrdC5kdW1wKSl9ZWxzZSBpZihuPT09IltvYmplY3QgU3RyaW5nXSIpdC50YWchPT0iPyImJkxFdCh0LHQuZHVtcCxlLHMpO2Vsc2V7aWYodC5za2lwSW52YWxpZClyZXR1cm4hMTt0aHJvdyBuZXcgRDYoInVuYWNjZXB0YWJsZSBraW5kIG9mIGFuIG9iamVjdCB0byBkdW1wICIrbil9dC50YWchPT1udWxsJiZ0LnRhZyE9PSI/IiYmKHQuZHVtcD0iITwiK3QudGFnKyI+ICIrdC5kdW1wKX1yZXR1cm4hMH1mdW5jdGlvbiBORXQodCxlKXt2YXIgYT1bXSxpPVtdLHIscztmb3IoSF8odCxhLGkpLHI9MCxzPWkubGVuZ3RoO3I8cztyKz0xKWUuZHVwbGljYXRlcy5wdXNoKGFbaVtyXV0pO2UudXNlZER1cGxpY2F0ZXM9bmV3IEFycmF5KHMpfWZ1bmN0aW9uIEhfKHQsZSxhKXt2YXIgaSxyLHM7aWYodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IilpZihyPWUuaW5kZXhPZih0KSxyIT09LTEpYS5pbmRleE9mKHIpPT09LTEmJmEucHVzaChyKTtlbHNlIGlmKGUucHVzaCh0KSxBcnJheS5pc0FycmF5KHQpKWZvcihyPTAscz10Lmxlbmd0aDtyPHM7cis9MSlIXyh0W3JdLGUsYSk7ZWxzZSBmb3IoaT1PYmplY3Qua2V5cyh0KSxyPTAscz1pLmxlbmd0aDtyPHM7cis9MSlIXyh0W2lbcl1dLGUsYSl9ZnVuY3Rpb24gdmllKHQsZSl7ZT1lfHx7fTt2YXIgYT1uZXcga0V0KGUpO3JldHVybiBhLm5vUmVmc3x8TkV0KHQsYSksbTAoYSwwLHQsITAsITApP2EuZHVtcCtgCmA6IiJ9ZnVuY3Rpb24gRkV0KHQsZSl7cmV0dXJuIHZpZSh0LEE2LmV4dGVuZCh7c2NoZW1hOnNFdH0sZSkpfXFfLmV4cG9ydHMuZHVtcD12aWUscV8uZXhwb3J0cy5zYWZlRHVtcD1GRXR9KTt2YXIgd2llPXB0KChGXzEsRDEpPT57InVzZSBzdHJpY3QiO3ZhciB1OT1YYWUoKSx4aWU9eWllKCk7ZnVuY3Rpb24gZjkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJGdW5jdGlvbiAiK3QrIiBpcyBkZXByZWNhdGVkIGFuZCBjYW5ub3QgYmUgdXNlZC4iKX19RDEuZXhwb3J0cy5UeXBlPXQyKCksRDEuZXhwb3J0cy5TY2hlbWE9cDAoKSxEMS5leHBvcnRzLkZBSUxTQUZFX1NDSEVNQT1uOSgpLEQxLmV4cG9ydHMuSlNPTl9TQ0hFTUE9RV8oKSxEMS5leHBvcnRzLkNPUkVfU0NIRU1BPVBfKCksRDEuZXhwb3J0cy5ERUZBVUxUX1NBRkVfU0NIRU1BPUMzKCksRDEuZXhwb3J0cy5ERUZBVUxUX0ZVTExfU0NIRU1BPUw2KCksRDEuZXhwb3J0cy5sb2FkPXU5LmxvYWQsRDEuZXhwb3J0cy5sb2FkQWxsPXU5LmxvYWRBbGwsRDEuZXhwb3J0cy5zYWZlTG9hZD11OS5zYWZlTG9hZCxEMS5leHBvcnRzLnNhZmVMb2FkQWxsPXU5LnNhZmVMb2FkQWxsLEQxLmV4cG9ydHMuZHVtcD14aWUuZHVtcCxEMS5leHBvcnRzLnNhZmVEdW1wPXhpZS5zYWZlRHVtcCxEMS5leHBvcnRzLllBTUxFeGNlcHRpb249azMoKSxEMS5leHBvcnRzLk1JTklNQUxfU0NIRU1BPW45KCksRDEuZXhwb3J0cy5TQUZFX1NDSEVNQT1DMygpLEQxLmV4cG9ydHMuREVGQVVMVF9TQ0hFTUE9TDYoKSxEMS5leHBvcnRzLnNjYW49ZjkoInNjYW4iKSxEMS5leHBvcnRzLnBhcnNlPWY5KCJwYXJzZSIpLEQxLmV4cG9ydHMuY29tcG9zZT1mOSgiY29tcG9zZSIpLEQxLmV4cG9ydHMuYWRkQ29uc3RydWN0b3I9ZjkoImFkZENvbnN0cnVjdG9yIil9KTt2YXIgemllPXB0KChPXzEsTWllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgT0V0PXdpZSgpO01pZS5leHBvcnRzPU9FdH0pO3ZhciBraWU9cHQoVHI9PnsidXNlIHN0cmljdCI7dmFyIFJFdD1UciYmVHIuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlLGEsaSl7aT09PXZvaWQgMCYmKGk9YSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZVthXX19KX0pOihmdW5jdGlvbih0LGUsYSxpKXtpPT09dm9pZCAwJiYoaT1hKSx0W2ldPWVbYV19KSksQkV0PVRyJiZUci5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbih0LGUpe3QuZGVmYXVsdD1lfSksSEV0PVRyJiZUci5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZih0IT1udWxsKWZvcih2YXIgYSBpbiB0KWEhPT0iZGVmYXVsdCImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsYSkmJlJFdChlLHQsYSk7cmV0dXJuIEJFdChlLHQpLGV9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShUciwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksVHIuanNZYW1sPXZvaWQgMDt2YXIgcUV0PUhFdCh6aWUoKSk7VHIuanNZYW1sPXFFdH0pO3ZhciBDaWU9cHQobGk9PnsidXNlIHN0cmljdCI7dmFyIFZFdD1saSYmbGkuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24odCxlLGEsaSl7aT09PXZvaWQgMCYmKGk9YSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZVthXX19KX0pOihmdW5jdGlvbih0LGUsYSxpKXtpPT09dm9pZCAwJiYoaT1hKSx0W2ldPWVbYV19KSksakV0PWxpJiZsaS5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSl9KTpmdW5jdGlvbih0LGUpe3QuZGVmYXVsdD1lfSksVUV0PWxpJiZsaS5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZih0IT1udWxsKWZvcih2YXIgYSBpbiB0KWEhPT0iZGVmYXVsdCImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsYSkmJlZFdChlLHQsYSk7cmV0dXJuIGpFdChlLHQpLGV9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShsaSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbGkub2JqZWN0VG9ZYW1sU3RyaW5nPWxpLnlhbWxTdHJpbmdUb09iamVjdD12b2lkIDA7dmFyIFNpZT1VRXQoa2llKCkpO2xpLnlhbWxTdHJpbmdUb09iamVjdD1hc3luYyh0LGU9e30pPT5TaWUuanNZYW1sLnNhZmVMb2FkKHQpLGxpLm9iamVjdFRvWWFtbFN0cmluZz1hc3luYyh0LGU9e30pPT5TaWUuanNZYW1sLnNhZmVEdW1wKHQpfSk7ZnVuY3Rpb24gVl8odCl7aWYodCl0aHJvdyB0fXZhciBfaWU9YigoKT0+e30pO3ZhciBOaWU9cHQoKHFfMSxJaWUpPT57InVzZSBzdHJpY3QiO3ZhciBtOT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFRpZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLExpZT1PYmplY3QuZGVmaW5lUHJvcGVydHksJGllPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsQWllPWZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgQXJyYXkuaXNBcnJheT09ImZ1bmN0aW9uIj9BcnJheS5pc0FycmF5KGUpOlRpZS5jYWxsKGUpPT09IltvYmplY3QgQXJyYXldIn0sRGllPWZ1bmN0aW9uKGUpe2lmKCFlfHxUaWUuY2FsbChlKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO3ZhciBhPW05LmNhbGwoZSwiY29uc3RydWN0b3IiKSxpPWUuY29uc3RydWN0b3ImJmUuY29uc3RydWN0b3IucHJvdG90eXBlJiZtOS5jYWxsKGUuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIik7aWYoZS5jb25zdHJ1Y3RvciYmIWEmJiFpKXJldHVybiExO3ZhciByO2ZvcihyIGluIGUpO3JldHVybiB0eXBlb2Ygcj4idSJ8fG05LmNhbGwoZSxyKX0sRWllPWZ1bmN0aW9uKGUsYSl7TGllJiZhLm5hbWU9PT0iX19wcm90b19fIj9MaWUoZSxhLm5hbWUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHZhbHVlOmEubmV3VmFsdWUsd3JpdGFibGU6ITB9KTplW2EubmFtZV09YS5uZXdWYWx1ZX0sUGllPWZ1bmN0aW9uKGUsYSl7aWYoYT09PSJfX3Byb3RvX18iKWlmKG05LmNhbGwoZSxhKSl7aWYoJGllKXJldHVybiAkaWUoZSxhKS52YWx1ZX1lbHNlIHJldHVybjtyZXR1cm4gZVthXX07SWllLmV4cG9ydHM9ZnVuY3Rpb24gdCgpe3ZhciBlLGEsaSxyLHMsbixvPWFyZ3VtZW50c1swXSxkPTEsYz1hcmd1bWVudHMubGVuZ3RoLHA9ITE7Zm9yKHR5cGVvZiBvPT0iYm9vbGVhbiImJihwPW8sbz1hcmd1bWVudHNbMV18fHt9LGQ9MiksKG89PW51bGx8fHR5cGVvZiBvIT0ib2JqZWN0IiYmdHlwZW9mIG8hPSJmdW5jdGlvbiIpJiYobz17fSk7ZDxjOysrZClpZihlPWFyZ3VtZW50c1tkXSxlIT1udWxsKWZvcihhIGluIGUpaT1QaWUobyxhKSxyPVBpZShlLGEpLG8hPT1yJiYocCYmciYmKERpZShyKXx8KHM9QWllKHIpKSk/KHM/KHM9ITEsbj1pJiZBaWUoaSk/aTpbXSk6bj1pJiZEaWUoaSk/aTp7fSxFaWUobyx7bmFtZTphLG5ld1ZhbHVlOnQocCxuLHIpfSkpOnR5cGVvZiByPCJ1IiYmRWllKG8se25hbWU6YSxuZXdWYWx1ZTpyfSkpO3JldHVybiBvfX0pO3ZhciBObj1iKCgpPT57fSk7ZnVuY3Rpb24gUDYodCl7aWYodHlwZW9mIHQhPSJvYmplY3QifHx0PT09bnVsbClyZXR1cm4hMTtsZXQgZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoU3ltYm9sLnRvU3RyaW5nVGFnIGluIHQpJiYhKFN5bWJvbC5pdGVyYXRvciBpbiB0KX12YXIgRmllPWIoKCk9Pnt9KTtmdW5jdGlvbiBqXygpe2xldCB0PVtdLGU9e3J1bjphLHVzZTppfTtyZXR1cm4gZTtmdW5jdGlvbiBhKC4uLnIpe2xldCBzPS0xLG49ci5wb3AoKTtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiBhcyBsYXN0IGFyZ3VtZW50LCBub3QgIituKTtvKG51bGwsLi4ucik7ZnVuY3Rpb24gbyhkLC4uLmMpe2xldCBwPXRbKytzXSxsPS0xO2lmKGQpe24oZCk7cmV0dXJufWZvcig7KytsPHIubGVuZ3RoOykoY1tsXT09PW51bGx8fGNbbF09PT12b2lkIDApJiYoY1tsXT1yW2xdKTtyPWMscD9PaWUocCxvKSguLi5jKTpuKG51bGwsLi4uYyl9fWZ1bmN0aW9uIGkocil7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYG1pZGRlbHdhcmVgIHRvIGJlIGEgZnVuY3Rpb24sIG5vdCAiK3IpO3JldHVybiB0LnB1c2gociksZX19ZnVuY3Rpb24gT2llKHQsZSl7bGV0IGE7cmV0dXJuIGk7ZnVuY3Rpb24gaSguLi5uKXtsZXQgbz10Lmxlbmd0aD5uLmxlbmd0aCxkO28mJm4ucHVzaChyKTt0cnl7ZD10LmFwcGx5KHRoaXMsbil9Y2F0Y2goYyl7bGV0IHA9YztpZihvJiZhKXRocm93IHA7cmV0dXJuIHIocCl9b3x8KGQmJmQudGhlbiYmdHlwZW9mIGQudGhlbj09ImZ1bmN0aW9uIj9kLnRoZW4ocyxyKTpkIGluc3RhbmNlb2YgRXJyb3I/cihkKTpzKGQpKX1mdW5jdGlvbiByKG4sLi4ubyl7YXx8KGE9ITAsZShuLC4uLm8pKX1mdW5jdGlvbiBzKG4pe3IobnVsbCxuKX19dmFyIFJpZT1iKCgpPT57fSk7dmFyIEJpZT1iKCgpPT57UmllKCl9KTtmdW5jdGlvbiBGbih0KXtyZXR1cm4hdHx8dHlwZW9mIHQhPSJvYmplY3QiPyIiOiJwb3NpdGlvbiJpbiB0fHwidHlwZSJpbiB0P0hpZSh0LnBvc2l0aW9uKToic3RhcnQiaW4gdHx8ImVuZCJpbiB0P0hpZSh0KToibGluZSJpbiB0fHwiY29sdW1uImluIHQ/VV8odCk6IiJ9ZnVuY3Rpb24gVV8odCl7cmV0dXJuIHFpZSh0JiZ0LmxpbmUpKyI6IitxaWUodCYmdC5jb2x1bW4pfWZ1bmN0aW9uIEhpZSh0KXtyZXR1cm4gVV8odCYmdC5zdGFydCkrIi0iK1VfKHQmJnQuZW5kKX1mdW5jdGlvbiBxaWUodCl7cmV0dXJuIHQmJnR5cGVvZiB0PT0ibnVtYmVyIj90OjF9dmFyIFZpZT1iKCgpPT57fSk7dmFyIFdfPWIoKCk9PntWaWUoKX0pO3ZhciB1MixqaWU9YigoKT0+e1dfKCk7dTI9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLGEsaSl7c3VwZXIoKSx0eXBlb2YgYT09InN0cmluZyImJihpPWEsYT12b2lkIDApO2xldCByPSIiLHM9e30sbj0hMTtpZihhJiYoImxpbmUiaW4gYSYmImNvbHVtbiJpbiBhP3M9e3BsYWNlOmF9OiJzdGFydCJpbiBhJiYiZW5kImluIGE/cz17cGxhY2U6YX06InR5cGUiaW4gYT9zPXthbmNlc3RvcnM6W2FdLHBsYWNlOmEucG9zaXRpb259OnM9ey4uLmF9KSx0eXBlb2YgZT09InN0cmluZyI/cj1lOiFzLmNhdXNlJiZlJiYobj0hMCxyPWUubWVzc2FnZSxzLmNhdXNlPWUpLCFzLnJ1bGVJZCYmIXMuc291cmNlJiZ0eXBlb2YgaT09InN0cmluZyIpe2xldCBkPWkuaW5kZXhPZigiOiIpO2Q9PT0tMT9zLnJ1bGVJZD1pOihzLnNvdXJjZT1pLnNsaWNlKDAsZCkscy5ydWxlSWQ9aS5zbGljZShkKzEpKX1pZighcy5wbGFjZSYmcy5hbmNlc3RvcnMmJnMuYW5jZXN0b3JzKXtsZXQgZD1zLmFuY2VzdG9yc1tzLmFuY2VzdG9ycy5sZW5ndGgtMV07ZCYmKHMucGxhY2U9ZC5wb3NpdGlvbil9bGV0IG89cy5wbGFjZSYmInN0YXJ0ImluIHMucGxhY2U/cy5wbGFjZS5zdGFydDpzLnBsYWNlO3RoaXMuYW5jZXN0b3JzPXMuYW5jZXN0b3JzfHx2b2lkIDAsdGhpcy5jYXVzZT1zLmNhdXNlfHx2b2lkIDAsdGhpcy5jb2x1bW49bz9vLmNvbHVtbjp2b2lkIDAsdGhpcy5mYXRhbD12b2lkIDAsdGhpcy5maWxlPSIiLHRoaXMubWVzc2FnZT1yLHRoaXMubGluZT1vP28ubGluZTp2b2lkIDAsdGhpcy5uYW1lPUZuKHMucGxhY2UpfHwiMToxIix0aGlzLnBsYWNlPXMucGxhY2V8fHZvaWQgMCx0aGlzLnJlYXNvbj10aGlzLm1lc3NhZ2UsdGhpcy5ydWxlSWQ9cy5ydWxlSWR8fHZvaWQgMCx0aGlzLnNvdXJjZT1zLnNvdXJjZXx8dm9pZCAwLHRoaXMuc3RhY2s9biYmcy5jYXVzZSYmdHlwZW9mIHMuY2F1c2Uuc3RhY2s9PSJzdHJpbmciP3MuY2F1c2Uuc3RhY2s6IiIsdGhpcy5hY3R1YWw9dm9pZCAwLHRoaXMuZXhwZWN0ZWQ9dm9pZCAwLHRoaXMubm90ZT12b2lkIDAsdGhpcy51cmw9dm9pZCAwfX07dTIucHJvdG90eXBlLmZpbGU9IiIsdTIucHJvdG90eXBlLm5hbWU9IiIsdTIucHJvdG90eXBlLnJlYXNvbj0iIix1Mi5wcm90b3R5cGUubWVzc2FnZT0iIix1Mi5wcm90b3R5cGUuc3RhY2s9IiIsdTIucHJvdG90eXBlLmNvbHVtbj12b2lkIDAsdTIucHJvdG90eXBlLmxpbmU9dm9pZCAwLHUyLnByb3RvdHlwZS5hbmNlc3RvcnM9dm9pZCAwLHUyLnByb3RvdHlwZS5jYXVzZT12b2lkIDAsdTIucHJvdG90eXBlLmZhdGFsPXZvaWQgMCx1Mi5wcm90b3R5cGUucGxhY2U9dm9pZCAwLHUyLnByb3RvdHlwZS5ydWxlSWQ9dm9pZCAwLHUyLnByb3RvdHlwZS5zb3VyY2U9dm9pZCAwfSk7dmFyIFVpZT1iKCgpPT57amllKCl9KTtmdW5jdGlvbiBXRXQodCxlKXtpZihlIT09dm9pZCAwJiZ0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignImV4dCIgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZycpO0k2KHQpO2xldCBhPTAsaT0tMSxyPXQubGVuZ3RoLHM7aWYoZT09PXZvaWQgMHx8ZS5sZW5ndGg9PT0wfHxlLmxlbmd0aD50Lmxlbmd0aCl7Zm9yKDtyLS07KWlmKHQuY29kZVBvaW50QXQocik9PT00Nyl7aWYocyl7YT1yKzE7YnJlYWt9fWVsc2UgaTwwJiYocz0hMCxpPXIrMSk7cmV0dXJuIGk8MD8iIjp0LnNsaWNlKGEsaSl9aWYoZT09PXQpcmV0dXJuIiI7bGV0IG49LTEsbz1lLmxlbmd0aC0xO2Zvcig7ci0tOylpZih0LmNvZGVQb2ludEF0KHIpPT09NDcpe2lmKHMpe2E9cisxO2JyZWFrfX1lbHNlIG48MCYmKHM9ITAsbj1yKzEpLG8+LTEmJih0LmNvZGVQb2ludEF0KHIpPT09ZS5jb2RlUG9pbnRBdChvLS0pP288MCYmKGk9cik6KG89LTEsaT1uKSk7cmV0dXJuIGE9PT1pP2k9bjppPDAmJihpPXQubGVuZ3RoKSx0LnNsaWNlKGEsaSl9ZnVuY3Rpb24gR0V0KHQpe2lmKEk2KHQpLHQubGVuZ3RoPT09MClyZXR1cm4iLiI7bGV0IGU9LTEsYT10Lmxlbmd0aCxpO2Zvcig7LS1hOylpZih0LmNvZGVQb2ludEF0KGEpPT09NDcpe2lmKGkpe2U9YTticmVha319ZWxzZSBpfHwoaT0hMCk7cmV0dXJuIGU8MD90LmNvZGVQb2ludEF0KDApPT09NDc/Ii8iOiIuIjplPT09MSYmdC5jb2RlUG9pbnRBdCgwKT09PTQ3PyIvLyI6dC5zbGljZSgwLGUpfWZ1bmN0aW9uIFlFdCh0KXtJNih0KTtsZXQgZT10Lmxlbmd0aCxhPS0xLGk9MCxyPS0xLHM9MCxuO2Zvcig7ZS0tOyl7bGV0IG89dC5jb2RlUG9pbnRBdChlKTtpZihvPT09NDcpe2lmKG4pe2k9ZSsxO2JyZWFrfWNvbnRpbnVlfWE8MCYmKG49ITAsYT1lKzEpLG89PT00Nj9yPDA/cj1lOnMhPT0xJiYocz0xKTpyPi0xJiYocz0tMSl9cmV0dXJuIHI8MHx8YTwwfHxzPT09MHx8cz09PTEmJnI9PT1hLTEmJnI9PT1pKzE/IiI6dC5zbGljZShyLGEpfWZ1bmN0aW9uIFpFdCguLi50KXtsZXQgZT0tMSxhO2Zvcig7KytlPHQubGVuZ3RoOylJNih0W2VdKSx0W2VdJiYoYT1hPT09dm9pZCAwP3RbZV06YSsiLyIrdFtlXSk7cmV0dXJuIGE9PT12b2lkIDA/Ii4iOlhFdChhKX1mdW5jdGlvbiBYRXQodCl7STYodCk7bGV0IGU9dC5jb2RlUG9pbnRBdCgwKT09PTQ3LGE9S0V0KHQsIWUpO3JldHVybiBhLmxlbmd0aD09PTAmJiFlJiYoYT0iLiIpLGEubGVuZ3RoPjAmJnQuY29kZVBvaW50QXQodC5sZW5ndGgtMSk9PT00NyYmKGErPSIvIiksZT8iLyIrYTphfWZ1bmN0aW9uIEtFdCh0LGUpe2xldCBhPSIiLGk9MCxyPS0xLHM9MCxuPS0xLG8sZDtmb3IoOysrbjw9dC5sZW5ndGg7KXtpZihuPHQubGVuZ3RoKW89dC5jb2RlUG9pbnRBdChuKTtlbHNle2lmKG89PT00NylicmVhaztvPTQ3fWlmKG89PT00Nyl7aWYoIShyPT09bi0xfHxzPT09MSkpaWYociE9PW4tMSYmcz09PTIpe2lmKGEubGVuZ3RoPDJ8fGkhPT0yfHxhLmNvZGVQb2ludEF0KGEubGVuZ3RoLTEpIT09NDZ8fGEuY29kZVBvaW50QXQoYS5sZW5ndGgtMikhPT00Nil7aWYoYS5sZW5ndGg+Mil7aWYoZD1hLmxhc3RJbmRleE9mKCIvIiksZCE9PWEubGVuZ3RoLTEpe2Q8MD8oYT0iIixpPTApOihhPWEuc2xpY2UoMCxkKSxpPWEubGVuZ3RoLTEtYS5sYXN0SW5kZXhPZigiLyIpKSxyPW4scz0wO2NvbnRpbnVlfX1lbHNlIGlmKGEubGVuZ3RoPjApe2E9IiIsaT0wLHI9bixzPTA7Y29udGludWV9fWUmJihhPWEubGVuZ3RoPjA/YSsiLy4uIjoiLi4iLGk9Mil9ZWxzZSBhLmxlbmd0aD4wP2ErPSIvIit0LnNsaWNlKHIrMSxuKTphPXQuc2xpY2UocisxLG4pLGk9bi1yLTE7cj1uLHM9MH1lbHNlIG89PT00NiYmcz4tMT9zKys6cz0tMX1yZXR1cm4gYX1mdW5jdGlvbiBJNih0KXtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiUGF0aCBtdXN0IGJlIGEgc3RyaW5nLiBSZWNlaXZlZCAiK0pTT04uc3RyaW5naWZ5KHQpKX12YXIgTmksV2llPWIoKCk9PntOaT17YmFzZW5hbWU6V0V0LGRpcm5hbWU6R0V0LGV4dG5hbWU6WUV0LGpvaW46WkV0LHNlcDoiLyJ9fSk7ZnVuY3Rpb24gUUV0KCl7cmV0dXJuIi8ifXZhciBHaWUsWWllPWIoKCk9PntHaWU9e2N3ZDpRRXR9fSk7ZnVuY3Rpb24gQTModCl7cmV0dXJuISEodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IiYmImhyZWYiaW4gdCYmdC5ocmVmJiYicHJvdG9jb2wiaW4gdCYmdC5wcm90b2NvbCYmdC5hdXRoPT09dm9pZCAwKX12YXIgR189YigoKT0+e30pO2Z1bmN0aW9uIFppZSh0KXtpZih0eXBlb2YgdD09InN0cmluZyIpdD1uZXcgVVJMKHQpO2Vsc2UgaWYoIUEzKHQpKXtsZXQgZT1uZXcgVHlwZUVycm9yKCdUaGUgInBhdGgiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4gaW5zdGFuY2Ugb2YgVVJMLiBSZWNlaXZlZCBgJyt0KyJgIik7dGhyb3cgZS5jb2RlPSJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsZX1pZih0LnByb3RvY29sIT09ImZpbGU6Iil7bGV0IGU9bmV3IFR5cGVFcnJvcigiVGhlIFVSTCBtdXN0IGJlIG9mIHNjaGVtZSBmaWxlIik7dGhyb3cgZS5jb2RlPSJFUlJfSU5WQUxJRF9VUkxfU0NIRU1FIixlfXJldHVybiBKRXQodCl9ZnVuY3Rpb24gSkV0KHQpe2lmKHQuaG9zdG5hbWUhPT0iIil7bGV0IGk9bmV3IFR5cGVFcnJvcignRmlsZSBVUkwgaG9zdCBtdXN0IGJlICJsb2NhbGhvc3QiIG9yIGVtcHR5IG9uIGRhcndpbicpO3Rocm93IGkuY29kZT0iRVJSX0lOVkFMSURfRklMRV9VUkxfSE9TVCIsaX1sZXQgZT10LnBhdGhuYW1lLGE9LTE7Zm9yKDsrK2E8ZS5sZW5ndGg7KWlmKGUuY29kZVBvaW50QXQoYSk9PT0zNyYmZS5jb2RlUG9pbnRBdChhKzEpPT09NTApe2xldCBpPWUuY29kZVBvaW50QXQoYSsyKTtpZihpPT09NzB8fGk9PT0xMDIpe2xldCByPW5ldyBUeXBlRXJyb3IoIkZpbGUgVVJMIHBhdGggbXVzdCBub3QgaW5jbHVkZSBlbmNvZGVkIC8gY2hhcmFjdGVycyIpO3Rocm93IHIuY29kZT0iRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCIscn19cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlKX12YXIgWGllPWIoKCk9PntHXygpO0dfKCl9KTtmdW5jdGlvbiBaXyh0LGUpe2lmKHQmJnQuaW5jbHVkZXMoTmkuc2VwKSl0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgY2Fubm90IGJlIGEgcGF0aDogZGlkIG5vdCBleHBlY3QgYCIrTmkuc2VwKyJgIil9ZnVuY3Rpb24gWF8odCxlKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgY2Fubm90IGJlIGVtcHR5Iil9ZnVuY3Rpb24gS2llKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJTZXR0aW5nIGAiK2UrImAgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b28iKX1mdW5jdGlvbiBlUHQodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiB0JiYiYnl0ZU9mZnNldCJpbiB0KX12YXIgWV8sTjYsUWllPWIoKCk9PntVaWUoKTtXaWUoKTtZaWUoKTtYaWUoKTtZXz1bImhpc3RvcnkiLCJwYXRoIiwiYmFzZW5hbWUiLCJzdGVtIiwiZXh0bmFtZSIsImRpcm5hbWUiXSxONj1jbGFzc3tjb25zdHJ1Y3RvcihlKXtsZXQgYTtlP0EzKGUpP2E9e3BhdGg6ZX06dHlwZW9mIGU9PSJzdHJpbmcifHxlUHQoZSk/YT17dmFsdWU6ZX06YT1lOmE9e30sdGhpcy5jd2Q9ImN3ZCJpbiBhPyIiOkdpZS5jd2QoKSx0aGlzLmRhdGE9e30sdGhpcy5oaXN0b3J5PVtdLHRoaXMubWVzc2FnZXM9W10sdGhpcy52YWx1ZSx0aGlzLm1hcCx0aGlzLnJlc3VsdCx0aGlzLnN0b3JlZDtsZXQgaT0tMTtmb3IoOysraTxZXy5sZW5ndGg7KXtsZXQgcz1ZX1tpXTtzIGluIGEmJmFbc10hPT12b2lkIDAmJmFbc10hPT1udWxsJiYodGhpc1tzXT1zPT09Imhpc3RvcnkiP1suLi5hW3NdXTphW3NdKX1sZXQgcjtmb3IociBpbiBhKVlfLmluY2x1ZGVzKHIpfHwodGhpc1tyXT1hW3JdKX1nZXQgYmFzZW5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/TmkuYmFzZW5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGJhc2VuYW1lKGUpe1hfKGUsImJhc2VuYW1lIiksWl8oZSwiYmFzZW5hbWUiKSx0aGlzLnBhdGg9Tmkuam9pbih0aGlzLmRpcm5hbWV8fCIiLGUpfWdldCBkaXJuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP05pLmRpcm5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGRpcm5hbWUoZSl7S2llKHRoaXMuYmFzZW5hbWUsImRpcm5hbWUiKSx0aGlzLnBhdGg9Tmkuam9pbihlfHwiIix0aGlzLmJhc2VuYW1lKX1nZXQgZXh0bmFtZSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9OaS5leHRuYW1lKHRoaXMucGF0aCk6dm9pZCAwfXNldCBleHRuYW1lKGUpe2lmKFpfKGUsImV4dG5hbWUiKSxLaWUodGhpcy5kaXJuYW1lLCJleHRuYW1lIiksZSl7aWYoZS5jb2RlUG9pbnRBdCgwKSE9PTQ2KXRocm93IG5ldyBFcnJvcigiYGV4dG5hbWVgIG11c3Qgc3RhcnQgd2l0aCBgLmAiKTtpZihlLmluY2x1ZGVzKCIuIiwxKSl0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzIil9dGhpcy5wYXRoPU5pLmpvaW4odGhpcy5kaXJuYW1lLHRoaXMuc3RlbSsoZXx8IiIpKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aC0xXX1zZXQgcGF0aChlKXtBMyhlKSYmKGU9WmllKGUpKSxYXyhlLCJwYXRoIiksdGhpcy5wYXRoIT09ZSYmdGhpcy5oaXN0b3J5LnB1c2goZSl9Z2V0IHN0ZW0oKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/TmkuYmFzZW5hbWUodGhpcy5wYXRoLHRoaXMuZXh0bmFtZSk6dm9pZCAwfXNldCBzdGVtKGUpe1hfKGUsInN0ZW0iKSxaXyhlLCJzdGVtIiksdGhpcy5wYXRoPU5pLmpvaW4odGhpcy5kaXJuYW1lfHwiIixlKyh0aGlzLmV4dG5hbWV8fCIiKSl9ZmFpbChlLGEsaSl7bGV0IHI9dGhpcy5tZXNzYWdlKGUsYSxpKTt0aHJvdyByLmZhdGFsPSEwLHJ9aW5mbyhlLGEsaSl7bGV0IHI9dGhpcy5tZXNzYWdlKGUsYSxpKTtyZXR1cm4gci5mYXRhbD12b2lkIDAscn1tZXNzYWdlKGUsYSxpKXtsZXQgcj1uZXcgdTIoZSxhLGkpO3JldHVybiB0aGlzLnBhdGgmJihyLm5hbWU9dGhpcy5wYXRoKyI6IityLm5hbWUsci5maWxlPXRoaXMucGF0aCksci5mYXRhbD0hMSx0aGlzLm1lc3NhZ2VzLnB1c2gocikscn10b1N0cmluZyhlKXtyZXR1cm4gdGhpcy52YWx1ZT09PXZvaWQgMD8iIjp0eXBlb2YgdGhpcy52YWx1ZT09InN0cmluZyI/dGhpcy52YWx1ZTpuZXcgVGV4dERlY29kZXIoZXx8dm9pZCAwKS5kZWNvZGUodGhpcy52YWx1ZSl9fX0pO3ZhciBKaWU9YigoKT0+e1FpZSgpfSk7dmFyIGVyZSx0cmU9YigoKT0+e2VyZT0oZnVuY3Rpb24odCl7bGV0IGk9dGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUscj1pW3RdLHM9ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseShzLGFyZ3VtZW50cyl9O3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YocyxpKSxzfSl9KTtmdW5jdGlvbiBRXyh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBgIit0KyJgIHdpdGhvdXQgYHBhcnNlcmAiKX1mdW5jdGlvbiBKXyh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBgIit0KyJgIHdpdGhvdXQgYGNvbXBpbGVyYCIpfWZ1bmN0aW9uIGVUKHQsZSl7aWYoZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxsIGAiK3QrImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxuQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBmaXJzdCwgYnkgY2FsbGluZyBpdDogdXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4iKX1mdW5jdGlvbiBhcmUodCl7aWYoIVA2KHQpfHx0eXBlb2YgdC50eXBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBub2RlLCBnb3QgYCIrdCsiYCIpfWZ1bmN0aW9uIGlyZSh0LGUsYSl7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJgIit0KyJgIGZpbmlzaGVkIGFzeW5jLiBVc2UgYCIrZSsiYCBpbnN0ZWFkIil9ZnVuY3Rpb24gZzkodCl7cmV0dXJuIGFQdCh0KT90Om5ldyBONih0KX1mdW5jdGlvbiBhUHQodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYibWVzc2FnZSJpbiB0JiYibWVzc2FnZXMiaW4gdCl9ZnVuY3Rpb24gaVB0KHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ8fHJQdCh0KX1mdW5jdGlvbiByUHQodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiB0JiYiYnl0ZU9mZnNldCJpbiB0KX12YXIgYjksdFB0LEtfLEY2LHJyZT1iKCgpPT57X2llKCk7Yjk9ajEoTmllKCksMSk7Tm4oKTtGaWUoKTtCaWUoKTtKaWUoKTt0cmUoKTt0UHQ9e30uaGFzT3duUHJvcGVydHksS189Y2xhc3MgdCBleHRlbmRzIGVyZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJjb3B5IiksdGhpcy5Db21waWxlcj12b2lkIDAsdGhpcy5QYXJzZXI9dm9pZCAwLHRoaXMuYXR0YWNoZXJzPVtdLHRoaXMuY29tcGlsZXI9dm9pZCAwLHRoaXMuZnJlZXplSW5kZXg9LTEsdGhpcy5mcm96ZW49dm9pZCAwLHRoaXMubmFtZXNwYWNlPXt9LHRoaXMucGFyc2VyPXZvaWQgMCx0aGlzLnRyYW5zZm9ybWVycz1qXygpfWNvcHkoKXtsZXQgZT1uZXcgdCxhPS0xO2Zvcig7KythPHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2xldCBpPXRoaXMuYXR0YWNoZXJzW2FdO2UudXNlKC4uLmkpfXJldHVybiBlLmRhdGEoKDAsYjkuZGVmYXVsdCkoITAse30sdGhpcy5uYW1lc3BhY2UpKSxlfWRhdGEoZSxhKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP2FyZ3VtZW50cy5sZW5ndGg9PT0yPyhlVCgiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlW2VdPWEsdGhpcyk6dFB0LmNhbGwodGhpcy5uYW1lc3BhY2UsZSkmJnRoaXMubmFtZXNwYWNlW2VdfHx2b2lkIDA6ZT8oZVQoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZT1lLHRoaXMpOnRoaXMubmFtZXNwYWNlfWZyZWV6ZSgpe2lmKHRoaXMuZnJvemVuKXJldHVybiB0aGlzO2xldCBlPXRoaXM7Zm9yKDsrK3RoaXMuZnJlZXplSW5kZXg8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7bGV0W2EsLi4uaV09dGhpcy5hdHRhY2hlcnNbdGhpcy5mcmVlemVJbmRleF07aWYoaVswXT09PSExKWNvbnRpbnVlO2lbMF09PT0hMCYmKGlbMF09dm9pZCAwKTtsZXQgcj1hLmNhbGwoZSwuLi5pKTt0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmdGhpcy50cmFuc2Zvcm1lcnMudXNlKHIpfXJldHVybiB0aGlzLmZyb3plbj0hMCx0aGlzLmZyZWV6ZUluZGV4PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx0aGlzfXBhcnNlKGUpe3RoaXMuZnJlZXplKCk7bGV0IGE9ZzkoZSksaT10aGlzLnBhcnNlcnx8dGhpcy5QYXJzZXI7cmV0dXJuIFFfKCJwYXJzZSIsaSksaShTdHJpbmcoYSksYSl9cHJvY2VzcyhlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHRoaXMuZnJlZXplKCksUV8oInByb2Nlc3MiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksSl8oInByb2Nlc3MiLHRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXIpLGE/cih2b2lkIDAsYSk6bmV3IFByb21pc2Uocik7ZnVuY3Rpb24gcihzLG4pe2xldCBvPWc5KGUpLGQ9aS5wYXJzZShvKTtpLnJ1bihkLG8sZnVuY3Rpb24ocCxsLGYpe2lmKHB8fCFsfHwhZilyZXR1cm4gYyhwKTtsZXQgZz1sLHk9aS5zdHJpbmdpZnkoZyxmKTtpUHQoeSk/Zi52YWx1ZT15OmYucmVzdWx0PXksYyhwLGYpfSk7ZnVuY3Rpb24gYyhwLGwpe3B8fCFsP24ocCk6cz9zKGwpOmEodm9pZCAwLGwpfX19cHJvY2Vzc1N5bmMoZSl7bGV0IGE9ITEsaTtyZXR1cm4gdGhpcy5mcmVlemUoKSxRXygicHJvY2Vzc1N5bmMiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksSl8oInByb2Nlc3NTeW5jIix0aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyKSx0aGlzLnByb2Nlc3MoZSxyKSxpcmUoInByb2Nlc3NTeW5jIiwicHJvY2VzcyIsYSksaTtmdW5jdGlvbiByKHMsbil7YT0hMCxWXyhzKSxpPW59fXJ1bihlLGEsaSl7YXJlKGUpLHRoaXMuZnJlZXplKCk7bGV0IHI9dGhpcy50cmFuc2Zvcm1lcnM7cmV0dXJuIWkmJnR5cGVvZiBhPT0iZnVuY3Rpb24iJiYoaT1hLGE9dm9pZCAwKSxpP3Modm9pZCAwLGkpOm5ldyBQcm9taXNlKHMpO2Z1bmN0aW9uIHMobixvKXtsZXQgZD1nOShhKTtyLnJ1bihlLGQsYyk7ZnVuY3Rpb24gYyhwLGwsZil7bGV0IGc9bHx8ZTtwP28ocCk6bj9uKGcpOmkodm9pZCAwLGcsZil9fX1ydW5TeW5jKGUsYSl7bGV0IGk9ITEscjtyZXR1cm4gdGhpcy5ydW4oZSxhLHMpLGlyZSgicnVuU3luYyIsInJ1biIsaSkscjtmdW5jdGlvbiBzKG4sbyl7Vl8obikscj1vLGk9ITB9fXN0cmluZ2lmeShlLGEpe3RoaXMuZnJlZXplKCk7bGV0IGk9ZzkoYSkscj10aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyO3JldHVybiBKXygic3RyaW5naWZ5IixyKSxhcmUoZSkscihlLGkpfXVzZShlLC4uLmEpe2xldCBpPXRoaXMuYXR0YWNoZXJzLHI9dGhpcy5uYW1lc3BhY2U7aWYoZVQoInVzZSIsdGhpcy5mcm96ZW4pLGUhPW51bGwpaWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpZChlLGEpO2Vsc2UgaWYodHlwZW9mIGU9PSJvYmplY3QiKUFycmF5LmlzQXJyYXkoZSk/byhlKTpuKGUpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCIrZSsiYCIpO3JldHVybiB0aGlzO2Z1bmN0aW9uIHMoYyl7aWYodHlwZW9mIGM9PSJmdW5jdGlvbiIpZChjLFtdKTtlbHNlIGlmKHR5cGVvZiBjPT0ib2JqZWN0IilpZihBcnJheS5pc0FycmF5KGMpKXtsZXRbcCwuLi5sXT1jO2QocCxsKX1lbHNlIG4oYyk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgIitjKyJgIil9ZnVuY3Rpb24gbihjKXtpZighKCJwbHVnaW5zImluIGMpJiYhKCJzZXR0aW5ncyJpbiBjKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSBidXQgcmVjZWl2ZWQgYW4gZW1wdHkgcHJlc2V0LCB3aGljaCBpcyBwcm9iYWJseSBhIG1pc3Rha2U6IHByZXNldHMgdHlwaWNhbGx5IGNvbWUgd2l0aCBgcGx1Z2luc2AgYW5kIHNvbWV0aW1lcyB3aXRoIGBzZXR0aW5nc2AsIGJ1dCB0aGlzIGhhcyBuZWl0aGVyIik7byhjLnBsdWdpbnMpLGMuc2V0dGluZ3MmJihyLnNldHRpbmdzPSgwLGI5LmRlZmF1bHQpKCEwLHIuc2V0dGluZ3MsYy5zZXR0aW5ncykpfWZ1bmN0aW9uIG8oYyl7bGV0IHA9LTE7aWYoYyE9bnVsbClpZihBcnJheS5pc0FycmF5KGMpKWZvcig7KytwPGMubGVuZ3RoOyl7bGV0IGw9Y1twXTtzKGwpfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBsaXN0IG9mIHBsdWdpbnMsIG5vdCBgIitjKyJgIil9ZnVuY3Rpb24gZChjLHApe2xldCBsPS0xLGY9LTE7Zm9yKDsrK2w8aS5sZW5ndGg7KWlmKGlbbF1bMF09PT1jKXtmPWw7YnJlYWt9aWYoZj09PS0xKWkucHVzaChbYywuLi5wXSk7ZWxzZSBpZihwLmxlbmd0aD4wKXtsZXRbZywuLi55XT1wLHY9aVtmXVsxXTtQNih2KSYmUDYoZykmJihnPSgwLGI5LmRlZmF1bHQpKCEwLHYsZykpLGlbZl09W2MsZywuLi55XX19fX0sRjY9bmV3IEtfKCkuZnJlZXplKCl9KTt2YXIgc3JlPWIoKCk9PntycmUoKX0pO2Z1bmN0aW9uIEUzKHQsZSl7bGV0IGE9U3RyaW5nKHQpO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBjaGFyYWN0ZXIiKTtsZXQgaT0wLHI9YS5pbmRleE9mKGUpO2Zvcig7ciE9PS0xOylpKysscj1hLmluZGV4T2YoZSxyK2UubGVuZ3RoKTtyZXR1cm4gaX12YXIgdFQ9YigoKT0+e30pO2Z1bmN0aW9uIGcwKHQpe3JldHVybiB0IT09bnVsbCYmKHQ8MzJ8fHQ9PT0xMjcpfWZ1bmN0aW9uIE9lKHQpe3JldHVybiB0IT09bnVsbCYmdDwtMn1mdW5jdGlvbiBfdCh0KXtyZXR1cm4gdCE9PW51bGwmJih0PDB8fHQ9PT0zMil9ZnVuY3Rpb24gUWUodCl7cmV0dXJuIHQ9PT0tMnx8dD09PS0xfHx0PT09MzJ9ZnVuY3Rpb24gT24odCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShhKXtyZXR1cm4gYSE9PW51bGwmJmE+LTEmJnQudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGEpKX19dmFyIGEyLEUxLG5yZSxPNixvcmUsbHJlLGIwLExyLCR0PWIoKCk9PnthMj1PbigvW0EtWmEtel0vKSxFMT1PbigvW1xkQS1aYS16XS8pLG5yZT1PbigvWyMtJyorXC0tOT0/QS1aXi1+XS8pO082PU9uKC9cZC8pLG9yZT1PbigvW1xkQS1GYS1mXS8pLGxyZT1PbigvWyEtLzotQFstYHstfl0vKTtiMD1PbigvXHB7UH18XHB7U30vdSksTHI9T24oL1xzLyl9KTtmdW5jdGlvbiBzUHQodCl7bGV0IGU9W10sYT0tMTtmb3IoOysrYTx0Lmxlbmd0aDspZVthXT1icyh0W2FdKTtyZXR1cm4gdjkoaSk7ZnVuY3Rpb24gaSguLi5yKXtsZXQgcz0tMTtmb3IoOysrczxlLmxlbmd0aDspaWYoZVtzXS5hcHBseSh0aGlzLHIpKXJldHVybiEwO3JldHVybiExfX1mdW5jdGlvbiBuUHQodCl7bGV0IGU9dDtyZXR1cm4gdjkoYSk7ZnVuY3Rpb24gYShpKXtsZXQgcj1pLHM7Zm9yKHMgaW4gdClpZihyW3NdIT09ZVtzXSlyZXR1cm4hMTtyZXR1cm4hMH19ZnVuY3Rpb24gb1B0KHQpe3JldHVybiB2OShlKTtmdW5jdGlvbiBlKGEpe3JldHVybiBhJiZhLnR5cGU9PT10fX1mdW5jdGlvbiB2OSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEsaSxyKXtyZXR1cm4hIShjcmUoYSkmJnQuY2FsbCh0aGlzLGEsdHlwZW9mIGk9PSJudW1iZXIiP2k6dm9pZCAwLHJ8fHZvaWQgMCkpfX1mdW5jdGlvbiBsUHQoKXtyZXR1cm4hMH1mdW5jdGlvbiBjcmUodCl7cmV0dXJuIHQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCImJiJ0eXBlImluIHR9dmFyIGRyZSxicyxwcmU9YigoKT0+e2RyZT0oZnVuY3Rpb24odCxlLGEsaSxyKXtsZXQgcz1icyhlKTtpZihhIT1udWxsJiYodHlwZW9mIGEhPSJudW1iZXIifHxhPDB8fGE9PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcG9zaXRpdmUgZmluaXRlIGluZGV4Iik7aWYoaSE9bnVsbCYmKCFkcmUoaSl8fCFpLmNoaWxkcmVuKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBhcmVudCBub2RlIik7aWYoaT09bnVsbCE9KGE9PW51bGwpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYm90aCBwYXJlbnQgYW5kIGluZGV4Iik7cmV0dXJuIGNyZSh0KT9zLmNhbGwocix0LGEsaSk6ITF9KSxicz0oZnVuY3Rpb24odCl7aWYodD09bnVsbClyZXR1cm4gbFB0O2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiB2OSh0KTtpZih0eXBlb2YgdD09Im9iamVjdCIpcmV0dXJuIEFycmF5LmlzQXJyYXkodCk/c1B0KHQpOm5QdCh0KTtpZih0eXBlb2YgdD09InN0cmluZyIpcmV0dXJuIG9QdCh0KTt0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uLCBzdHJpbmcsIG9yIG9iamVjdCBhcyB0ZXN0Iil9KX0pO3ZhciB5OT1iKCgpPT57cHJlKCl9KTt2YXIgaHJlPWIoKCk9Pnt9KTtmdW5jdGlvbiBSNih0LGUsYSxpKXtsZXQgcjt0eXBlb2YgZT09ImZ1bmN0aW9uIiYmdHlwZW9mIGEhPSJmdW5jdGlvbiI/KGk9YSxhPWUpOnI9ZTtsZXQgcz1icyhyKSxuPWk/LTE6MTtvKHQsdm9pZCAwLFtdKSgpO2Z1bmN0aW9uIG8oZCxjLHApe2xldCBsPWQmJnR5cGVvZiBkPT0ib2JqZWN0Ij9kOnt9O2lmKHR5cGVvZiBsLnR5cGU9PSJzdHJpbmciKXtsZXQgZz10eXBlb2YgbC50YWdOYW1lPT0ic3RyaW5nIj9sLnRhZ05hbWU6dHlwZW9mIGwubmFtZT09InN0cmluZyI/bC5uYW1lOnZvaWQgMDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwibmFtZSIse3ZhbHVlOiJub2RlICgiKyhkLnR5cGUrKGc/IjwiK2crIj4iOiIiKSkrIikifSl9cmV0dXJuIGY7ZnVuY3Rpb24gZigpe2xldCBnPXVyZSx5LHYsbTtpZigoIWV8fHMoZCxjLHBbcC5sZW5ndGgtMV18fHZvaWQgMCkpJiYoZz1jUHQoYShkLHApKSxnWzBdPT09djApKXJldHVybiBnO2lmKCJjaGlsZHJlbiJpbiBkJiZkLmNoaWxkcmVuKXtsZXQgeD1kO2lmKHguY2hpbGRyZW4mJmdbMF0hPT13OSlmb3Iodj0oaT94LmNoaWxkcmVuLmxlbmd0aDotMSkrbixtPXAuY29uY2F0KHgpO3Y+LTEmJnY8eC5jaGlsZHJlbi5sZW5ndGg7KXtsZXQgTT14LmNoaWxkcmVuW3ZdO2lmKHk9byhNLHYsbSkoKSx5WzBdPT09djApcmV0dXJuIHk7dj10eXBlb2YgeVsxXT09Im51bWJlciI/eVsxXTp2K259fXJldHVybiBnfX19ZnVuY3Rpb24gY1B0KHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Q6dHlwZW9mIHQ9PSJudW1iZXIiP1t4OSx0XTp0PT1udWxsP3VyZTpbdF19dmFyIHVyZSx4OSx2MCx3OSxmcmU9YigoKT0+e3k5KCk7aHJlKCk7dXJlPVtdLHg5PSEwLHYwPSExLHc5PSJza2lwIn0pO3ZhciBNOT1iKCgpPT57ZnJlKCl9KTtmdW5jdGlvbiBhVCh0LGUsYSl7bGV0IHI9YnMoKGF8fHt9KS5pZ25vcmV8fFtdKSxzPWRQdChlKSxuPS0xO2Zvcig7KytuPHMubGVuZ3RoOylSNih0LCJ0ZXh0IixvKTtmdW5jdGlvbiBvKGMscCl7bGV0IGw9LTEsZjtmb3IoOysrbDxwLmxlbmd0aDspe2xldCBnPXBbbF0seT1mP2YuY2hpbGRyZW46dm9pZCAwO2lmKHIoZyx5P3kuaW5kZXhPZihnKTp2b2lkIDAsZikpcmV0dXJuO2Y9Z31pZihmKXJldHVybiBkKGMscCl9ZnVuY3Rpb24gZChjLHApe2xldCBsPXBbcC5sZW5ndGgtMV0sZj1zW25dWzBdLGc9c1tuXVsxXSx5PTAsbT1sLmNoaWxkcmVuLmluZGV4T2YoYykseD0hMSxNPVtdO2YubGFzdEluZGV4PTA7bGV0IFM9Zi5leGVjKGMudmFsdWUpO2Zvcig7Uzspe2xldCBGPVMuaW5kZXgsXz17aW5kZXg6Uy5pbmRleCxpbnB1dDpTLmlucHV0LHN0YWNrOlsuLi5wLGNdfSxrPWcoLi4uUyxfKTtpZih0eXBlb2Ygaz09InN0cmluZyImJihrPWsubGVuZ3RoPjA/e3R5cGU6InRleHQiLHZhbHVlOmt9OnZvaWQgMCksaz09PSExP2YubGFzdEluZGV4PUYrMTooeSE9PUYmJk0ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6Yy52YWx1ZS5zbGljZSh5LEYpfSksQXJyYXkuaXNBcnJheShrKT9NLnB1c2goLi4uayk6ayYmTS5wdXNoKGspLHk9RitTWzBdLmxlbmd0aCx4PSEwKSwhZi5nbG9iYWwpYnJlYWs7Uz1mLmV4ZWMoYy52YWx1ZSl9cmV0dXJuIHg/KHk8Yy52YWx1ZS5sZW5ndGgmJk0ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6Yy52YWx1ZS5zbGljZSh5KX0pLGwuY2hpbGRyZW4uc3BsaWNlKG0sMSwuLi5NKSk6TT1bY10sbStNLmxlbmd0aH19ZnVuY3Rpb24gZFB0KHQpe2xldCBlPVtdO2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZpbmQgYW5kIHJlcGxhY2UgdHVwbGUgb3IgbGlzdCBvZiB0dXBsZXMiKTtsZXQgYT0hdFswXXx8QXJyYXkuaXNBcnJheSh0WzBdKT90Olt0XSxpPS0xO2Zvcig7KytpPGEubGVuZ3RoOyl7bGV0IHI9YVtpXTtlLnB1c2goW3BQdChyWzBdKSxoUHQoclsxXSldKX1yZXR1cm4gZX1mdW5jdGlvbiBwUHQodCl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIj9uZXcgUmVnRXhwKEJvKHQpLCJnIik6dH1mdW5jdGlvbiBoUHQodCl7cmV0dXJuIHR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIG1yZT1iKCgpPT57djcoKTtNOSgpO3k5KCl9KTt2YXIgZ3JlPWIoKCk9PnttcmUoKX0pO2Z1bmN0aW9uIG5UKCl7cmV0dXJue3RyYW5zZm9ybXM6W3ZQdF0sZW50ZXI6e2xpdGVyYWxBdXRvbGluazp1UHQsbGl0ZXJhbEF1dG9saW5rRW1haWw6c1QsbGl0ZXJhbEF1dG9saW5rSHR0cDpzVCxsaXRlcmFsQXV0b2xpbmtXd3c6c1R9LGV4aXQ6e2xpdGVyYWxBdXRvbGluazpiUHQsbGl0ZXJhbEF1dG9saW5rRW1haWw6Z1B0LGxpdGVyYWxBdXRvbGlua0h0dHA6ZlB0LGxpdGVyYWxBdXRvbGlua1d3dzptUHR9fX1mdW5jdGlvbiBvVCgpe3JldHVybnt1bnNhZmU6W3tjaGFyYWN0ZXI6IkAiLGJlZm9yZToiWytcXC0uXFx3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6aVQsbm90SW5Db25zdHJ1Y3Q6clR9LHtjaGFyYWN0ZXI6Ii4iLGJlZm9yZToiW1d3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6aVQsbm90SW5Db25zdHJ1Y3Q6clR9LHtjaGFyYWN0ZXI6IjoiLGJlZm9yZToiW3BzXSIsYWZ0ZXI6IlxcLyIsaW5Db25zdHJ1Y3Q6aVQsbm90SW5Db25zdHJ1Y3Q6clR9XX19ZnVuY3Rpb24gdVB0KHQpe3RoaXMuZW50ZXIoe3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiIiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBzVCh0KXt0aGlzLmNvbmZpZy5lbnRlci5hdXRvbGlua1Byb3RvY29sLmNhbGwodGhpcyx0KX1mdW5jdGlvbiBmUHQodCl7dGhpcy5jb25maWcuZXhpdC5hdXRvbGlua1Byb3RvY29sLmNhbGwodGhpcyx0KX1mdW5jdGlvbiBtUHQodCl7dGhpcy5jb25maWcuZXhpdC5kYXRhLmNhbGwodGhpcyx0KTtsZXQgZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2UudHlwZSxlLnVybD0iaHR0cDovLyIrdGhpcy5zbGljZVNlcmlhbGl6ZSh0KX1mdW5jdGlvbiBnUHQodCl7dGhpcy5jb25maWcuZXhpdC5hdXRvbGlua0VtYWlsLmNhbGwodGhpcyx0KX1mdW5jdGlvbiBiUHQodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIHZQdCh0KXthVCh0LFtbLyhodHRwcz86XC9cL3x3d3coPz1cLikpKFstLlx3XSspKFteIFx0XHJcbl0qKS9naSx5UHRdLFsvKD88PV58XHN8XHB7UH18XHB7U30pKFstLlx3K10rKUAoWy1cd10rKD86XC5bLVx3XSspKykvZ3UseFB0XV0se2lnbm9yZTpbImxpbmsiLCJsaW5rUmVmZXJlbmNlIl19KX1mdW5jdGlvbiB5UHQodCxlLGEsaSxyKXtsZXQgcz0iIjtpZighYnJlKHIpfHwoL153L2kudGVzdChlKSYmKGE9ZSthLGU9IiIscz0iaHR0cDovLyIpLCF3UHQoYSkpKXJldHVybiExO2xldCBuPU1QdChhK2kpO2lmKCFuWzBdKXJldHVybiExO2xldCBvPXt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDpzK2UrblswXSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrblswXX1dfTtyZXR1cm4gblsxXT9bbyx7dHlwZToidGV4dCIsdmFsdWU6blsxXX1dOm99ZnVuY3Rpb24geFB0KHQsZSxhLGkpe3JldHVybiFicmUoaSwhMCl8fC9bLVxkX10kLy50ZXN0KGEpPyExOnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoibWFpbHRvOiIrZSsiQCIrYSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmUrIkAiK2F9XX19ZnVuY3Rpb24gd1B0KHQpe2xldCBlPXQuc3BsaXQoIi4iKTtyZXR1cm4hKGUubGVuZ3RoPDJ8fGVbZS5sZW5ndGgtMV0mJigvXy8udGVzdChlW2UubGVuZ3RoLTFdKXx8IS9bYS16QS1aXGRdLy50ZXN0KGVbZS5sZW5ndGgtMV0pKXx8ZVtlLmxlbmd0aC0yXSYmKC9fLy50ZXN0KGVbZS5sZW5ndGgtMl0pfHwhL1thLXpBLVpcZF0vLnRlc3QoZVtlLmxlbmd0aC0yXSkpKX1mdW5jdGlvbiBNUHQodCl7bGV0IGU9L1shIiYnKSwuOjs8Pj9cXX1dKyQvLmV4ZWModCk7aWYoIWUpcmV0dXJuW3Qsdm9pZCAwXTt0PXQuc2xpY2UoMCxlLmluZGV4KTtsZXQgYT1lWzBdLGk9YS5pbmRleE9mKCIpIikscj1FMyh0LCIoIikscz1FMyh0LCIpIik7Zm9yKDtpIT09LTEmJnI+czspdCs9YS5zbGljZSgwLGkrMSksYT1hLnNsaWNlKGkrMSksaT1hLmluZGV4T2YoIikiKSxzKys7cmV0dXJuW3QsYV19ZnVuY3Rpb24gYnJlKHQsZSl7bGV0IGE9dC5pbnB1dC5jaGFyQ29kZUF0KHQuaW5kZXgtMSk7cmV0dXJuKHQuaW5kZXg9PT0wfHxMcihhKXx8YjAoYSkpJiYoIWV8fGEhPT00Nyl9dmFyIGlULHJULHZyZT1iKCgpPT57dFQoKTtObigpOyR0KCk7Z3JlKCk7aVQ9InBocmFzaW5nIixyVD1bImF1dG9saW5rIiwibGluayIsImltYWdlIiwibGFiZWwiXX0pO3ZhciB5cmU9YigoKT0+e3ZyZSgpfSk7ZnVuY3Rpb24gUDEodCl7cmV0dXJuIHQucmVwbGFjZSgvW1x0XG5cciBdKy9nLCIgIikucmVwbGFjZSgvXiB8ICQvZywiIikudG9Mb3dlckNhc2UoKS50b1VwcGVyQ2FzZSgpfXZhciBSbj1iKCgpPT57fSk7ZnVuY3Rpb24gelB0KCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBrUHQodCl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVSZWZlcmVuY2UiLGlkZW50aWZpZXI6IiIsbGFiZWw6IiJ9LHQpfWZ1bmN0aW9uIFNQdCgpe3RoaXMuYnVmZmVyKCl9ZnVuY3Rpb24gQ1B0KHQpe3RoaXMuZW50ZXIoe3R5cGU6ImZvb3Rub3RlRGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDoiIixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gX1B0KHQpe2xldCBlPXRoaXMucmVzdW1lKCksYT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2EudHlwZSxhLmlkZW50aWZpZXI9UDEodGhpcy5zbGljZVNlcmlhbGl6ZSh0KSkudG9Mb3dlckNhc2UoKSxhLmxhYmVsPWV9ZnVuY3Rpb24gVFB0KHQpe3RoaXMuZXhpdCh0KX1mdW5jdGlvbiBMUHQodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxhPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07YS50eXBlLGEuaWRlbnRpZmllcj1QMSh0aGlzLnNsaWNlU2VyaWFsaXplKHQpKS50b0xvd2VyQ2FzZSgpLGEubGFiZWw9ZX1mdW5jdGlvbiAkUHQodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIEFQdCgpe3JldHVybiJbIn1mdW5jdGlvbiB4cmUodCxlLGEsaSl7bGV0IHI9YS5jcmVhdGVUcmFja2VyKGkpLHM9ci5tb3ZlKCJbXiIpLG49YS5lbnRlcigiZm9vdG5vdGVSZWZlcmVuY2UiKSxvPWEuZW50ZXIoInJlZmVyZW5jZSIpO3JldHVybiBzKz1yLm1vdmUoYS5zYWZlKGEuYXNzb2NpYXRpb25JZCh0KSx7YWZ0ZXI6Il0iLGJlZm9yZTpzfSkpLG8oKSxuKCkscys9ci5tb3ZlKCJdIiksc31mdW5jdGlvbiBsVCgpe3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOnpQdCxnZm1Gb290bm90ZUNhbGw6a1B0LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOlNQdCxnZm1Gb290bm90ZURlZmluaXRpb246Q1B0fSxleGl0OntnZm1Gb290bm90ZUNhbGxTdHJpbmc6X1B0LGdmbUZvb3Rub3RlQ2FsbDpUUHQsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmc6TFB0LGdmbUZvb3Rub3RlRGVmaW5pdGlvbjokUHR9fX1mdW5jdGlvbiBjVCh0KXtsZXQgZT0hMTtyZXR1cm4gdCYmdC5maXJzdExpbmVCbGFuayYmKGU9ITApLHtoYW5kbGVyczp7Zm9vdG5vdGVEZWZpbml0aW9uOmEsZm9vdG5vdGVSZWZlcmVuY2U6eHJlfSx1bnNhZmU6W3tjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OlsibGFiZWwiLCJwaHJhc2luZyIsInJlZmVyZW5jZSJdfV19O2Z1bmN0aW9uIGEoaSxyLHMsbil7bGV0IG89cy5jcmVhdGVUcmFja2VyKG4pLGQ9by5tb3ZlKCJbXiIpLGM9cy5lbnRlcigiZm9vdG5vdGVEZWZpbml0aW9uIikscD1zLmVudGVyKCJsYWJlbCIpO3JldHVybiBkKz1vLm1vdmUocy5zYWZlKHMuYXNzb2NpYXRpb25JZChpKSx7YmVmb3JlOmQsYWZ0ZXI6Il0ifSkpLHAoKSxkKz1vLm1vdmUoIl06IiksaS5jaGlsZHJlbiYmaS5jaGlsZHJlbi5sZW5ndGg+MCYmKG8uc2hpZnQoNCksZCs9by5tb3ZlKChlP2AKYDoiICIpK3MuaW5kZW50TGluZXMocy5jb250YWluZXJGbG93KGksby5jdXJyZW50KCkpLGU/d3JlOkRQdCkpKSxjKCksZH19ZnVuY3Rpb24gRFB0KHQsZSxhKXtyZXR1cm4gZT09PTA/dDp3cmUodCxlLGEpfWZ1bmN0aW9uIHdyZSh0LGUsYSl7cmV0dXJuKGE/IiI6IiAgICAiKSt0fXZhciBNcmU9YigoKT0+e05uKCk7Um4oKTt4cmUucGVlaz1BUHR9KTt2YXIgenJlPWIoKCk9PntNcmUoKX0pO2Z1bmN0aW9uIGRUKCl7cmV0dXJue2NhbkNvbnRhaW5Fb2xzOlsiZGVsZXRlIl0sZW50ZXI6e3N0cmlrZXRocm91Z2g6UFB0fSxleGl0OntzdHJpa2V0aHJvdWdoOklQdH19fWZ1bmN0aW9uIHBUKCl7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoifiIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpFUHR9XSxoYW5kbGVyczp7ZGVsZXRlOmtyZX19fWZ1bmN0aW9uIFBQdCh0KXt0aGlzLmVudGVyKHt0eXBlOiJkZWxldGUiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBJUHQodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIGtyZSh0LGUsYSxpKXtsZXQgcj1hLmNyZWF0ZVRyYWNrZXIoaSkscz1hLmVudGVyKCJzdHJpa2V0aHJvdWdoIiksbj1yLm1vdmUoIn5+Iik7cmV0dXJuIG4rPWEuY29udGFpbmVyUGhyYXNpbmcodCx7Li4uci5jdXJyZW50KCksYmVmb3JlOm4sYWZ0ZXI6In4ifSksbis9ci5tb3ZlKCJ+fiIpLHMoKSxufWZ1bmN0aW9uIE5QdCgpe3JldHVybiJ+In12YXIgRVB0LFNyZT1iKCgpPT57RVB0PVsiYXV0b2xpbmsiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJkZXN0aW5hdGlvblJhdyIsInJlZmVyZW5jZSIsInRpdGxlUXVvdGUiLCJ0aXRsZUFwb3N0cm9waGUiXTtrcmUucGVlaz1OUHR9KTt2YXIgQ3JlPWIoKCk9PntTcmUoKX0pO2Z1bmN0aW9uIEZQdCh0KXtyZXR1cm4gdC5sZW5ndGh9ZnVuY3Rpb24gVHJlKHQsZSl7bGV0IGE9ZXx8e30saT0oYS5hbGlnbnx8W10pLmNvbmNhdCgpLHI9YS5zdHJpbmdMZW5ndGh8fEZQdCxzPVtdLG49W10sbz1bXSxkPVtdLGM9MCxwPS0xO2Zvcig7KytwPHQubGVuZ3RoOyl7bGV0IHY9W10sbT1bXSx4PS0xO2Zvcih0W3BdLmxlbmd0aD5jJiYoYz10W3BdLmxlbmd0aCk7Kyt4PHRbcF0ubGVuZ3RoOyl7bGV0IE09T1B0KHRbcF1beF0pO2lmKGEuYWxpZ25EZWxpbWl0ZXJzIT09ITEpe2xldCBTPXIoTSk7bVt4XT1TLChkW3hdPT09dm9pZCAwfHxTPmRbeF0pJiYoZFt4XT1TKX12LnB1c2goTSl9bltwXT12LG9bcF09bX1sZXQgbD0tMTtpZih0eXBlb2YgaT09Im9iamVjdCImJiJsZW5ndGgiaW4gaSlmb3IoOysrbDxjOylzW2xdPV9yZShpW2xdKTtlbHNle2xldCB2PV9yZShpKTtmb3IoOysrbDxjOylzW2xdPXZ9bD0tMTtsZXQgZj1bXSxnPVtdO2Zvcig7KytsPGM7KXtsZXQgdj1zW2xdLG09IiIseD0iIjt2PT09OTk/KG09IjoiLHg9IjoiKTp2PT09MTA4P209IjoiOnY9PT0xMTQmJih4PSI6Iik7bGV0IE09YS5hbGlnbkRlbGltaXRlcnM9PT0hMT8xOk1hdGgubWF4KDEsZFtsXS1tLmxlbmd0aC14Lmxlbmd0aCksUz1tKyItIi5yZXBlYXQoTSkreDthLmFsaWduRGVsaW1pdGVycyE9PSExJiYoTT1tLmxlbmd0aCtNK3gubGVuZ3RoLE0+ZFtsXSYmKGRbbF09TSksZ1tsXT1NKSxmW2xdPVN9bi5zcGxpY2UoMSwwLGYpLG8uc3BsaWNlKDEsMCxnKSxwPS0xO2xldCB5PVtdO2Zvcig7KytwPG4ubGVuZ3RoOyl7bGV0IHY9bltwXSxtPW9bcF07bD0tMTtsZXQgeD1bXTtmb3IoOysrbDxjOyl7bGV0IE09dltsXXx8IiIsUz0iIixGPSIiO2lmKGEuYWxpZ25EZWxpbWl0ZXJzIT09ITEpe2xldCBfPWRbbF0tKG1bbF18fDApLGs9c1tsXTtrPT09MTE0P1M9IiAiLnJlcGVhdChfKTprPT09OTk/XyUyPyhTPSIgIi5yZXBlYXQoXy8yKy41KSxGPSIgIi5yZXBlYXQoXy8yLS41KSk6KFM9IiAiLnJlcGVhdChfLzIpLEY9Uyk6Rj0iICIucmVwZWF0KF8pfWEuZGVsaW1pdGVyU3RhcnQhPT0hMSYmIWwmJngucHVzaCgifCIpLGEucGFkZGluZyE9PSExJiYhKGEuYWxpZ25EZWxpbWl0ZXJzPT09ITEmJk09PT0iIikmJihhLmRlbGltaXRlclN0YXJ0IT09ITF8fGwpJiZ4LnB1c2goIiAiKSxhLmFsaWduRGVsaW1pdGVycyE9PSExJiZ4LnB1c2goUykseC5wdXNoKE0pLGEuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJngucHVzaChGKSxhLnBhZGRpbmchPT0hMSYmeC5wdXNoKCIgIiksKGEuZGVsaW1pdGVyRW5kIT09ITF8fGwhPT1jLTEpJiZ4LnB1c2goInwiKX15LnB1c2goYS5kZWxpbWl0ZXJFbmQ9PT0hMT94LmpvaW4oIiIpLnJlcGxhY2UoLyArJC8sIiIpOnguam9pbigiIikpfXJldHVybiB5LmpvaW4oYApgKX1mdW5jdGlvbiBPUHQodCl7cmV0dXJuIHQ9PW51bGw/IiI6U3RyaW5nKHQpfWZ1bmN0aW9uIF9yZSh0KXtsZXQgZT10eXBlb2YgdD09InN0cmluZyI/dC5jb2RlUG9pbnRBdCgwKTowO3JldHVybiBlPT09Njd8fGU9PT05OT85OTplPT09NzZ8fGU9PT0xMDg/MTA4OmU9PT04Mnx8ZT09PTExND8xMTQ6MH12YXIgTHJlPWIoKCk9Pnt9KTtmdW5jdGlvbiB6OSh0LGUpe2xldCBhPWV8fHt9O2Z1bmN0aW9uIGkociwuLi5zKXtsZXQgbj1pLmludmFsaWQsbz1pLmhhbmRsZXJzO2lmKHImJiRyZS5jYWxsKHIsdCkpe2xldCBkPVN0cmluZyhyW3RdKTtuPSRyZS5jYWxsKG8sZCk/b1tkXTppLnVua25vd259aWYobilyZXR1cm4gbi5jYWxsKHRoaXMsciwuLi5zKX1yZXR1cm4gaS5oYW5kbGVycz1hLmhhbmRsZXJzfHx7fSxpLmludmFsaWQ9YS5pbnZhbGlkLGkudW5rbm93bj1hLnVua25vd24saX12YXIgJHJlLGhUPWIoKCk9PnskcmU9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiB1VCh0LGUpe2xldCBhPS0xLGk7aWYoZS5leHRlbnNpb25zKWZvcig7KythPGUuZXh0ZW5zaW9ucy5sZW5ndGg7KXVUKHQsZS5leHRlbnNpb25zW2FdKTtmb3IoaSBpbiBlKWlmKFJQdC5jYWxsKGUsaSkpc3dpdGNoKGkpe2Nhc2UiZXh0ZW5zaW9ucyI6YnJlYWs7Y2FzZSJ1bnNhZmUiOntBcmUodFtpXSxlW2ldKTticmVha31jYXNlImpvaW4iOntBcmUodFtpXSxlW2ldKTticmVha31jYXNlImhhbmRsZXJzIjp7QlB0KHRbaV0sZVtpXSk7YnJlYWt9ZGVmYXVsdDp0Lm9wdGlvbnNbaV09ZVtpXX1yZXR1cm4gdH1mdW5jdGlvbiBBcmUodCxlKXtlJiZ0LnB1c2goLi4uZSl9ZnVuY3Rpb24gQlB0KHQsZSl7ZSYmT2JqZWN0LmFzc2lnbih0LGUpfXZhciBSUHQsRHJlPWIoKCk9PntSUHQ9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiBFcmUodCxlLGEsaSl7bGV0IHI9YS5lbnRlcigiYmxvY2txdW90ZSIpLHM9YS5jcmVhdGVUcmFja2VyKGkpO3MubW92ZSgiPiAiKSxzLnNoaWZ0KDIpO2xldCBuPWEuaW5kZW50TGluZXMoYS5jb250YWluZXJGbG93KHQscy5jdXJyZW50KCkpLEhQdCk7cmV0dXJuIHIoKSxufWZ1bmN0aW9uIEhQdCh0LGUsYSl7cmV0dXJuIj4iKyhhPyIiOiIgIikrdH12YXIgUHJlPWIoKCk9Pnt9KTtmdW5jdGlvbiBrOSh0LGUpe3JldHVybiBJcmUodCxlLmluQ29uc3RydWN0LCEwKSYmIUlyZSh0LGUubm90SW5Db25zdHJ1Y3QsITEpfWZ1bmN0aW9uIElyZSh0LGUsYSl7aWYodHlwZW9mIGU9PSJzdHJpbmciJiYoZT1bZV0pLCFlfHxlLmxlbmd0aD09PTApcmV0dXJuIGE7bGV0IGk9LTE7Zm9yKDsrK2k8ZS5sZW5ndGg7KWlmKHQuaW5jbHVkZXMoZVtpXSkpcmV0dXJuITA7cmV0dXJuITF9dmFyIGZUPWIoKCk9Pnt9KTtmdW5jdGlvbiBtVCh0LGUsYSxpKXtsZXQgcj0tMTtmb3IoOysrcjxhLnVuc2FmZS5sZW5ndGg7KWlmKGEudW5zYWZlW3JdLmNoYXJhY3Rlcj09PWAKYCYmazkoYS5zdGFjayxhLnVuc2FmZVtyXSkpcmV0dXJuL1sgXHRdLy50ZXN0KGkuYmVmb3JlKT8iIjoiICI7cmV0dXJuYFxcCmB9dmFyIE5yZT1iKCgpPT57ZlQoKX0pO2Z1bmN0aW9uIEZyZSh0LGUpe2xldCBhPVN0cmluZyh0KSxpPWEuaW5kZXhPZihlKSxyPWkscz0wLG49MDtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgc3Vic3RyaW5nIik7Zm9yKDtpIT09LTE7KWk9PT1yPysrcz5uJiYobj1zKTpzPTEscj1pK2UubGVuZ3RoLGk9YS5pbmRleE9mKGUscik7cmV0dXJuIG59dmFyIE9yZT1iKCgpPT57fSk7ZnVuY3Rpb24gQjYodCxlKXtyZXR1cm4hIShlLm9wdGlvbnMuZmVuY2VzPT09ITEmJnQudmFsdWUmJiF0LmxhbmcmJi9bXiBcclxuXS8udGVzdCh0LnZhbHVlKSYmIS9eW1x0IF0qKD86W1xyXG5dfCQpfCg/Ol58W1xyXG5dKVtcdCBdKiQvLnRlc3QodC52YWx1ZSkpfXZhciBnVD1iKCgpPT57fSk7ZnVuY3Rpb24gUnJlKHQpe2xldCBlPXQub3B0aW9ucy5mZW5jZXx8ImAiO2lmKGUhPT0iYCImJmUhPT0ifiIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGNvZGUgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5mZW5jZWAsIGV4cGVjdGVkIGBgIGAgYGAgb3IgYH5gIik7cmV0dXJuIGV9dmFyIEJyZT1iKCgpPT57fSk7ZnVuY3Rpb24gSHJlKHQsZSxhLGkpe2xldCByPVJyZShhKSxzPXQudmFsdWV8fCIiLG49cj09PSJgIj8iR3JhdmVBY2NlbnQiOiJUaWxkZSI7aWYoQjYodCxhKSl7bGV0IGw9YS5lbnRlcigiY29kZUluZGVudGVkIiksZj1hLmluZGVudExpbmVzKHMscVB0KTtyZXR1cm4gbCgpLGZ9bGV0IG89YS5jcmVhdGVUcmFja2VyKGkpLGQ9ci5yZXBlYXQoTWF0aC5tYXgoRnJlKHMscikrMSwzKSksYz1hLmVudGVyKCJjb2RlRmVuY2VkIikscD1vLm1vdmUoZCk7aWYodC5sYW5nKXtsZXQgbD1hLmVudGVyKGBjb2RlRmVuY2VkTGFuZyR7bn1gKTtwKz1vLm1vdmUoYS5zYWZlKHQubGFuZyx7YmVmb3JlOnAsYWZ0ZXI6IiAiLGVuY29kZTpbImAiXSwuLi5vLmN1cnJlbnQoKX0pKSxsKCl9aWYodC5sYW5nJiZ0Lm1ldGEpe2xldCBsPWEuZW50ZXIoYGNvZGVGZW5jZWRNZXRhJHtufWApO3ArPW8ubW92ZSgiICIpLHArPW8ubW92ZShhLnNhZmUodC5tZXRhLHtiZWZvcmU6cCxhZnRlcjpgCmAsZW5jb2RlOlsiYCJdLC4uLm8uY3VycmVudCgpfSkpLGwoKX1yZXR1cm4gcCs9by5tb3ZlKGAKYCkscyYmKHArPW8ubW92ZShzK2AKYCkpLHArPW8ubW92ZShkKSxjKCkscH1mdW5jdGlvbiBxUHQodCxlLGEpe3JldHVybihhPyIiOiIgICAgIikrdH12YXIgcXJlPWIoKCk9PntPcmUoKTtnVCgpO0JyZSgpfSk7ZnVuY3Rpb24gUDModCl7bGV0IGU9dC5vcHRpb25zLnF1b3RlfHwnIic7aWYoZSE9PSciJyYmZSE9PSInIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgdGl0bGUgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5xdW90ZWAsIGV4cGVjdGVkIGBcImAsIG9yIGAnYCIpO3JldHVybiBlfXZhciBTOT1iKCgpPT57fSk7ZnVuY3Rpb24gVnJlKHQsZSxhLGkpe2xldCByPVAzKGEpLHM9cj09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixuPWEuZW50ZXIoImRlZmluaXRpb24iKSxvPWEuZW50ZXIoImxhYmVsIiksZD1hLmNyZWF0ZVRyYWNrZXIoaSksYz1kLm1vdmUoIlsiKTtyZXR1cm4gYys9ZC5tb3ZlKGEuc2FmZShhLmFzc29jaWF0aW9uSWQodCkse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5kLmN1cnJlbnQoKX0pKSxjKz1kLm1vdmUoIl06ICIpLG8oKSwhdC51cmx8fC9bXDAtIFx1MDA3Rl0vLnRlc3QodC51cmwpPyhvPWEuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGMrPWQubW92ZSgiPCIpLGMrPWQubW92ZShhLnNhZmUodC51cmwse2JlZm9yZTpjLGFmdGVyOiI+IiwuLi5kLmN1cnJlbnQoKX0pKSxjKz1kLm1vdmUoIj4iKSk6KG89YS5lbnRlcigiZGVzdGluYXRpb25SYXciKSxjKz1kLm1vdmUoYS5zYWZlKHQudXJsLHtiZWZvcmU6YyxhZnRlcjp0LnRpdGxlPyIgIjpgCmAsLi4uZC5jdXJyZW50KCl9KSkpLG8oKSx0LnRpdGxlJiYobz1hLmVudGVyKGB0aXRsZSR7c31gKSxjKz1kLm1vdmUoIiAiK3IpLGMrPWQubW92ZShhLnNhZmUodC50aXRsZSx7YmVmb3JlOmMsYWZ0ZXI6ciwuLi5kLmN1cnJlbnQoKX0pKSxjKz1kLm1vdmUociksbygpKSxuKCksY312YXIganJlPWIoKCk9PntTOSgpfSk7ZnVuY3Rpb24gVXJlKHQpe2xldCBlPXQub3B0aW9ucy5lbXBoYXNpc3x8IioiO2lmKGUhPT0iKiImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGVtcGhhc2lzIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuZW1waGFzaXNgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBXcmU9YigoKT0+e30pO2Z1bmN0aW9uIEJhKHQpe3JldHVybiImI3giK3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIjsifXZhciBJMz1iKCgpPT57fSk7ZnVuY3Rpb24gdnModCl7aWYodD09PW51bGx8fF90KHQpfHxMcih0KSlyZXR1cm4gMTtpZihiMCh0KSlyZXR1cm4gMn12YXIgQzk9YigoKT0+eyR0KCl9KTtmdW5jdGlvbiBOMyh0LGUsYSl7bGV0IGk9dnModCkscj12cyhlKTtyZXR1cm4gaT09PXZvaWQgMD9yPT09dm9pZCAwP2E9PT0iXyI/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnI9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMH06e2luc2lkZTohMSxvdXRzaWRlOiEwfTppPT09MT9yPT09dm9pZCAwP3tpbnNpZGU6ITEsb3V0c2lkZTohMX06cj09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITF9OnI9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTpyPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITF9OntpbnNpZGU6ITEsb3V0c2lkZTohMX19dmFyIGJUPWIoKCk9PntDOSgpfSk7ZnVuY3Rpb24gdlQodCxlLGEsaSl7bGV0IHI9VXJlKGEpLHM9YS5lbnRlcigiZW1waGFzaXMiKSxuPWEuY3JlYXRlVHJhY2tlcihpKSxvPW4ubW92ZShyKSxkPW4ubW92ZShhLmNvbnRhaW5lclBocmFzaW5nKHQse2FmdGVyOnIsYmVmb3JlOm8sLi4ubi5jdXJyZW50KCl9KSksYz1kLmNoYXJDb2RlQXQoMCkscD1OMyhpLmJlZm9yZS5jaGFyQ29kZUF0KGkuYmVmb3JlLmxlbmd0aC0xKSxjLHIpO3AuaW5zaWRlJiYoZD1CYShjKStkLnNsaWNlKDEpKTtsZXQgbD1kLmNoYXJDb2RlQXQoZC5sZW5ndGgtMSksZj1OMyhpLmFmdGVyLmNoYXJDb2RlQXQoMCksbCxyKTtmLmluc2lkZSYmKGQ9ZC5zbGljZSgwLC0xKStCYShsKSk7bGV0IGc9bi5tb3ZlKHIpO3JldHVybiBzKCksYS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89e2FmdGVyOmYub3V0c2lkZSxiZWZvcmU6cC5vdXRzaWRlfSxvK2QrZ31mdW5jdGlvbiBWUHQodCxlLGEpe3JldHVybiBhLm9wdGlvbnMuZW1waGFzaXN8fCIqIn12YXIgR3JlPWIoKCk9PntXcmUoKTtJMygpO2JUKCk7dlQucGVlaz1WUHR9KTtmdW5jdGlvbiBINih0LGUsYSxpKXtsZXQgcixzLG47dHlwZW9mIGU9PSJmdW5jdGlvbiImJnR5cGVvZiBhIT0iZnVuY3Rpb24iPyhzPXZvaWQgMCxuPWUscj1hKToocz1lLG49YSxyPWkpLFI2KHQscyxvLHIpO2Z1bmN0aW9uIG8oZCxjKXtsZXQgcD1jW2MubGVuZ3RoLTFdLGw9cD9wLmNoaWxkcmVuLmluZGV4T2YoZCk6dm9pZCAwO3JldHVybiBuKGQsbCxwKX19dmFyIFlyZT1iKCgpPT57TTkoKTtNOSgpfSk7dmFyIHlUPWIoKCk9PntZcmUoKX0pO2Z1bmN0aW9uIHkwKHQsZSl7bGV0IGE9ZXx8alB0LGk9dHlwZW9mIGEuaW5jbHVkZUltYWdlQWx0PT0iYm9vbGVhbiI/YS5pbmNsdWRlSW1hZ2VBbHQ6ITAscj10eXBlb2YgYS5pbmNsdWRlSHRtbD09ImJvb2xlYW4iP2EuaW5jbHVkZUh0bWw6ITA7cmV0dXJuIFpyZSh0LGkscil9ZnVuY3Rpb24gWnJlKHQsZSxhKXtpZihVUHQodCkpe2lmKCJ2YWx1ZSJpbiB0KXJldHVybiB0LnR5cGU9PT0iaHRtbCImJiFhPyIiOnQudmFsdWU7aWYoZSYmImFsdCJpbiB0JiZ0LmFsdClyZXR1cm4gdC5hbHQ7aWYoImNoaWxkcmVuImluIHQpcmV0dXJuIFhyZSh0LmNoaWxkcmVuLGUsYSl9cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/WHJlKHQsZSxhKToiIn1mdW5jdGlvbiBYcmUodCxlLGEpe2xldCBpPVtdLHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KWlbcl09WnJlKHRbcl0sZSxhKTtyZXR1cm4gaS5qb2luKCIiKX1mdW5jdGlvbiBVUHQodCl7cmV0dXJuISEodCYmdHlwZW9mIHQ9PSJvYmplY3QiKX12YXIgalB0LEtyZT1iKCgpPT57alB0PXt9fSk7dmFyIF85PWIoKCk9PntLcmUoKX0pO2Z1bmN0aW9uIFQ5KHQsZSl7bGV0IGE9ITE7cmV0dXJuIEg2KHQsZnVuY3Rpb24oaSl7aWYoInZhbHVlImluIGkmJi9ccj9cbnxcci8udGVzdChpLnZhbHVlKXx8aS50eXBlPT09ImJyZWFrIilyZXR1cm4gYT0hMCx2MH0pLCEhKCghdC5kZXB0aHx8dC5kZXB0aDwzKSYmeTAodCkmJihlLm9wdGlvbnMuc2V0ZXh0fHxhKSl9dmFyIHhUPWIoKCk9Pnt5VCgpO185KCl9KTtmdW5jdGlvbiBRcmUodCxlLGEsaSl7bGV0IHI9TWF0aC5tYXgoTWF0aC5taW4oNix0LmRlcHRofHwxKSwxKSxzPWEuY3JlYXRlVHJhY2tlcihpKTtpZihUOSh0LGEpKXtsZXQgcD1hLmVudGVyKCJoZWFkaW5nU2V0ZXh0IiksbD1hLmVudGVyKCJwaHJhc2luZyIpLGY9YS5jb250YWluZXJQaHJhc2luZyh0LHsuLi5zLmN1cnJlbnQoKSxiZWZvcmU6YApgLGFmdGVyOmAKYH0pO3JldHVybiBsKCkscCgpLGYrYApgKyhyPT09MT8iPSI6Ii0iKS5yZXBlYXQoZi5sZW5ndGgtKE1hdGgubWF4KGYubGFzdEluZGV4T2YoIlxyIiksZi5sYXN0SW5kZXhPZihgCmApKSsxKSl9bGV0IG49IiMiLnJlcGVhdChyKSxvPWEuZW50ZXIoImhlYWRpbmdBdHgiKSxkPWEuZW50ZXIoInBocmFzaW5nIik7cy5tb3ZlKG4rIiAiKTtsZXQgYz1hLmNvbnRhaW5lclBocmFzaW5nKHQse2JlZm9yZToiIyAiLGFmdGVyOmAKYCwuLi5zLmN1cnJlbnQoKX0pO3JldHVybi9eW1x0IF0vLnRlc3QoYykmJihjPUJhKGMuY2hhckNvZGVBdCgwKSkrYy5zbGljZSgxKSksYz1jP24rIiAiK2M6bixhLm9wdGlvbnMuY2xvc2VBdHgmJihjKz0iICIrbiksZCgpLG8oKSxjfXZhciBKcmU9YigoKT0+e0kzKCk7eFQoKX0pO2Z1bmN0aW9uIHdUKHQpe3JldHVybiB0LnZhbHVlfHwiIn1mdW5jdGlvbiBXUHQoKXtyZXR1cm4iPCJ9dmFyIGVzZT1iKCgpPT57d1QucGVlaz1XUHR9KTtmdW5jdGlvbiBNVCh0LGUsYSxpKXtsZXQgcj1QMyhhKSxzPXI9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbj1hLmVudGVyKCJpbWFnZSIpLG89YS5lbnRlcigibGFiZWwiKSxkPWEuY3JlYXRlVHJhY2tlcihpKSxjPWQubW92ZSgiIVsiKTtyZXR1cm4gYys9ZC5tb3ZlKGEuc2FmZSh0LmFsdCx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmQuY3VycmVudCgpfSkpLGMrPWQubW92ZSgiXSgiKSxvKCksIXQudXJsJiZ0LnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KHQudXJsKT8obz1hLmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxjKz1kLm1vdmUoIjwiKSxjKz1kLm1vdmUoYS5zYWZlKHQudXJsLHtiZWZvcmU6YyxhZnRlcjoiPiIsLi4uZC5jdXJyZW50KCl9KSksYys9ZC5tb3ZlKCI+IikpOihvPWEuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksYys9ZC5tb3ZlKGEuc2FmZSh0LnVybCx7YmVmb3JlOmMsYWZ0ZXI6dC50aXRsZT8iICI6IikiLC4uLmQuY3VycmVudCgpfSkpKSxvKCksdC50aXRsZSYmKG89YS5lbnRlcihgdGl0bGUke3N9YCksYys9ZC5tb3ZlKCIgIityKSxjKz1kLm1vdmUoYS5zYWZlKHQudGl0bGUse2JlZm9yZTpjLGFmdGVyOnIsLi4uZC5jdXJyZW50KCl9KSksYys9ZC5tb3ZlKHIpLG8oKSksYys9ZC5tb3ZlKCIpIiksbigpLGN9ZnVuY3Rpb24gR1B0KCl7cmV0dXJuIiEifXZhciB0c2U9YigoKT0+e1M5KCk7TVQucGVlaz1HUHR9KTtmdW5jdGlvbiB6VCh0LGUsYSxpKXtsZXQgcj10LnJlZmVyZW5jZVR5cGUscz1hLmVudGVyKCJpbWFnZVJlZmVyZW5jZSIpLG49YS5lbnRlcigibGFiZWwiKSxvPWEuY3JlYXRlVHJhY2tlcihpKSxkPW8ubW92ZSgiIVsiKSxjPWEuc2FmZSh0LmFsdCx7YmVmb3JlOmQsYWZ0ZXI6Il0iLC4uLm8uY3VycmVudCgpfSk7ZCs9by5tb3ZlKGMrIl1bIiksbigpO2xldCBwPWEuc3RhY2s7YS5zdGFjaz1bXSxuPWEuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBsPWEuc2FmZShhLmFzc29jaWF0aW9uSWQodCkse2JlZm9yZTpkLGFmdGVyOiJdIiwuLi5vLmN1cnJlbnQoKX0pO3JldHVybiBuKCksYS5zdGFjaz1wLHMoKSxyPT09ImZ1bGwifHwhY3x8YyE9PWw/ZCs9by5tb3ZlKGwrIl0iKTpyPT09InNob3J0Y3V0Ij9kPWQuc2xpY2UoMCwtMSk6ZCs9by5tb3ZlKCJdIiksZH1mdW5jdGlvbiBZUHQoKXtyZXR1cm4iISJ9dmFyIGFzZT1iKCgpPT57elQucGVlaz1ZUHR9KTtmdW5jdGlvbiBrVCh0LGUsYSl7bGV0IGk9dC52YWx1ZXx8IiIscj0iYCIscz0tMTtmb3IoO25ldyBSZWdFeHAoIihefFteYF0pIityKyIoW15gXXwkKSIpLnRlc3QoaSk7KXIrPSJgIjtmb3IoL1teIFxyXG5dLy50ZXN0KGkpJiYoL15bIFxyXG5dLy50ZXN0KGkpJiYvWyBcclxuXSQvLnRlc3QoaSl8fC9eYHxgJC8udGVzdChpKSkmJihpPSIgIitpKyIgIik7KytzPGEudW5zYWZlLmxlbmd0aDspe2xldCBuPWEudW5zYWZlW3NdLG89YS5jb21waWxlUGF0dGVybihuKSxkO2lmKG4uYXRCcmVhaylmb3IoO2Q9by5leGVjKGkpOyl7bGV0IGM9ZC5pbmRleDtpLmNoYXJDb2RlQXQoYyk9PT0xMCYmaS5jaGFyQ29kZUF0KGMtMSk9PT0xMyYmYy0tLGk9aS5zbGljZSgwLGMpKyIgIitpLnNsaWNlKGQuaW5kZXgrMSl9fXJldHVybiByK2krcn1mdW5jdGlvbiBaUHQoKXtyZXR1cm4iYCJ9dmFyIGlzZT1iKCgpPT57a1QucGVlaz1aUHR9KTtmdW5jdGlvbiBTVCh0LGUpe2xldCBhPXkwKHQpO3JldHVybiEhKCFlLm9wdGlvbnMucmVzb3VyY2VMaW5rJiZ0LnVybCYmIXQudGl0bGUmJnQuY2hpbGRyZW4mJnQuY2hpbGRyZW4ubGVuZ3RoPT09MSYmdC5jaGlsZHJlblswXS50eXBlPT09InRleHQiJiYoYT09PXQudXJsfHwibWFpbHRvOiIrYT09PXQudXJsKSYmL15bYS16XVthLXorLi1dKzovaS50ZXN0KHQudXJsKSYmIS9bXDAtIDw+XHUwMDdGXS8udGVzdCh0LnVybCkpfXZhciByc2U9YigoKT0+e185KCl9KTtmdW5jdGlvbiBDVCh0LGUsYSxpKXtsZXQgcj1QMyhhKSxzPXI9PT0nIic/IlF1b3RlIjoiQXBvc3Ryb3BoZSIsbj1hLmNyZWF0ZVRyYWNrZXIoaSksbyxkO2lmKFNUKHQsYSkpe2xldCBwPWEuc3RhY2s7YS5zdGFjaz1bXSxvPWEuZW50ZXIoImF1dG9saW5rIik7bGV0IGw9bi5tb3ZlKCI8Iik7cmV0dXJuIGwrPW4ubW92ZShhLmNvbnRhaW5lclBocmFzaW5nKHQse2JlZm9yZTpsLGFmdGVyOiI+IiwuLi5uLmN1cnJlbnQoKX0pKSxsKz1uLm1vdmUoIj4iKSxvKCksYS5zdGFjaz1wLGx9bz1hLmVudGVyKCJsaW5rIiksZD1hLmVudGVyKCJsYWJlbCIpO2xldCBjPW4ubW92ZSgiWyIpO3JldHVybiBjKz1uLm1vdmUoYS5jb250YWluZXJQaHJhc2luZyh0LHtiZWZvcmU6YyxhZnRlcjoiXSgiLC4uLm4uY3VycmVudCgpfSkpLGMrPW4ubW92ZSgiXSgiKSxkKCksIXQudXJsJiZ0LnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KHQudXJsKT8oZD1hLmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxjKz1uLm1vdmUoIjwiKSxjKz1uLm1vdmUoYS5zYWZlKHQudXJsLHtiZWZvcmU6YyxhZnRlcjoiPiIsLi4ubi5jdXJyZW50KCl9KSksYys9bi5tb3ZlKCI+IikpOihkPWEuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksYys9bi5tb3ZlKGEuc2FmZSh0LnVybCx7YmVmb3JlOmMsYWZ0ZXI6dC50aXRsZT8iICI6IikiLC4uLm4uY3VycmVudCgpfSkpKSxkKCksdC50aXRsZSYmKGQ9YS5lbnRlcihgdGl0bGUke3N9YCksYys9bi5tb3ZlKCIgIityKSxjKz1uLm1vdmUoYS5zYWZlKHQudGl0bGUse2JlZm9yZTpjLGFmdGVyOnIsLi4ubi5jdXJyZW50KCl9KSksYys9bi5tb3ZlKHIpLGQoKSksYys9bi5tb3ZlKCIpIiksbygpLGN9ZnVuY3Rpb24gWFB0KHQsZSxhKXtyZXR1cm4gU1QodCxhKT8iPCI6IlsifXZhciBzc2U9YigoKT0+e1M5KCk7cnNlKCk7Q1QucGVlaz1YUHR9KTtmdW5jdGlvbiBfVCh0LGUsYSxpKXtsZXQgcj10LnJlZmVyZW5jZVR5cGUscz1hLmVudGVyKCJsaW5rUmVmZXJlbmNlIiksbj1hLmVudGVyKCJsYWJlbCIpLG89YS5jcmVhdGVUcmFja2VyKGkpLGQ9by5tb3ZlKCJbIiksYz1hLmNvbnRhaW5lclBocmFzaW5nKHQse2JlZm9yZTpkLGFmdGVyOiJdIiwuLi5vLmN1cnJlbnQoKX0pO2QrPW8ubW92ZShjKyJdWyIpLG4oKTtsZXQgcD1hLnN0YWNrO2Euc3RhY2s9W10sbj1hLmVudGVyKCJyZWZlcmVuY2UiKTtsZXQgbD1hLnNhZmUoYS5hc3NvY2lhdGlvbklkKHQpLHtiZWZvcmU6ZCxhZnRlcjoiXSIsLi4uby5jdXJyZW50KCl9KTtyZXR1cm4gbigpLGEuc3RhY2s9cCxzKCkscj09PSJmdWxsInx8IWN8fGMhPT1sP2QrPW8ubW92ZShsKyJdIik6cj09PSJzaG9ydGN1dCI/ZD1kLnNsaWNlKDAsLTEpOmQrPW8ubW92ZSgiXSIpLGR9ZnVuY3Rpb24gS1B0KCl7cmV0dXJuIlsifXZhciBuc2U9YigoKT0+e19ULnBlZWs9S1B0fSk7ZnVuY3Rpb24gRjModCl7bGV0IGU9dC5vcHRpb25zLmJ1bGxldHx8IioiO2lmKGUhPT0iKiImJmUhPT0iKyImJmUhPT0iLSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuYnVsbGV0YCwgZXhwZWN0ZWQgYCpgLCBgK2AsIG9yIGAtYCIpO3JldHVybiBlfXZhciBMOT1iKCgpPT57fSk7ZnVuY3Rpb24gb3NlKHQpe2xldCBlPUYzKHQpLGE9dC5vcHRpb25zLmJ1bGxldE90aGVyO2lmKCFhKXJldHVybiBlPT09IioiPyItIjoiKiI7aWYoYSE9PSIqIiYmYSE9PSIrIiYmYSE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIithKyJgIGZvciBgb3B0aW9ucy5idWxsZXRPdGhlcmAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAiKTtpZihhPT09ZSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGBidWxsZXRgIChgIitlKyJgKSBhbmQgYGJ1bGxldE90aGVyYCAoYCIrYSsiYCkgdG8gYmUgZGlmZmVyZW50Iik7cmV0dXJuIGF9dmFyIGxzZT1iKCgpPT57TDkoKX0pO2Z1bmN0aW9uIGNzZSh0KXtsZXQgZT10Lm9wdGlvbnMuYnVsbGV0T3JkZXJlZHx8Ii4iO2lmKGUhPT0iLiImJmUhPT0iKSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3JkZXJlZGAsIGV4cGVjdGVkIGAuYCBvciBgKWAiKTtyZXR1cm4gZX12YXIgZHNlPWIoKCk9Pnt9KTtmdW5jdGlvbiAkOSh0KXtsZXQgZT10Lm9wdGlvbnMucnVsZXx8IioiO2lmKGUhPT0iKiImJmUhPT0iLSImJmUhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHJ1bGVzIHdpdGggYCIrZSsiYCBmb3IgYG9wdGlvbnMucnVsZWAsIGV4cGVjdGVkIGAqYCwgYC1gLCBvciBgX2AiKTtyZXR1cm4gZX12YXIgVFQ9YigoKT0+e30pO2Z1bmN0aW9uIHBzZSh0LGUsYSxpKXtsZXQgcj1hLmVudGVyKCJsaXN0Iikscz1hLmJ1bGxldEN1cnJlbnQsbj10Lm9yZGVyZWQ/Y3NlKGEpOkYzKGEpLG89dC5vcmRlcmVkP249PT0iLiI/IikiOiIuIjpvc2UoYSksZD1lJiZhLmJ1bGxldExhc3RVc2VkP249PT1hLmJ1bGxldExhc3RVc2VkOiExO2lmKCF0Lm9yZGVyZWQpe2xldCBwPXQuY2hpbGRyZW4/dC5jaGlsZHJlblswXTp2b2lkIDA7aWYoKG49PT0iKiJ8fG49PT0iLSIpJiZwJiYoIXAuY2hpbGRyZW58fCFwLmNoaWxkcmVuWzBdKSYmYS5zdGFja1thLnN0YWNrLmxlbmd0aC0xXT09PSJsaXN0IiYmYS5zdGFja1thLnN0YWNrLmxlbmd0aC0yXT09PSJsaXN0SXRlbSImJmEuc3RhY2tbYS5zdGFjay5sZW5ndGgtM109PT0ibGlzdCImJmEuc3RhY2tbYS5zdGFjay5sZW5ndGgtNF09PT0ibGlzdEl0ZW0iJiZhLmluZGV4U3RhY2tbYS5pbmRleFN0YWNrLmxlbmd0aC0xXT09PTAmJmEuaW5kZXhTdGFja1thLmluZGV4U3RhY2subGVuZ3RoLTJdPT09MCYmYS5pbmRleFN0YWNrW2EuaW5kZXhTdGFjay5sZW5ndGgtM109PT0wJiYoZD0hMCksJDkoYSk9PT1uJiZwKXtsZXQgbD0tMTtmb3IoOysrbDx0LmNoaWxkcmVuLmxlbmd0aDspe2xldCBmPXQuY2hpbGRyZW5bbF07aWYoZiYmZi50eXBlPT09Imxpc3RJdGVtIiYmZi5jaGlsZHJlbiYmZi5jaGlsZHJlblswXSYmZi5jaGlsZHJlblswXS50eXBlPT09InRoZW1hdGljQnJlYWsiKXtkPSEwO2JyZWFrfX19fWQmJihuPW8pLGEuYnVsbGV0Q3VycmVudD1uO2xldCBjPWEuY29udGFpbmVyRmxvdyh0LGkpO3JldHVybiBhLmJ1bGxldExhc3RVc2VkPW4sYS5idWxsZXRDdXJyZW50PXMscigpLGN9dmFyIGhzZT1iKCgpPT57TDkoKTtsc2UoKTtkc2UoKTtUVCgpfSk7ZnVuY3Rpb24gdXNlKHQpe2xldCBlPXQub3B0aW9ucy5saXN0SXRlbUluZGVudHx8Im9uZSI7aWYoZSE9PSJ0YWIiJiZlIT09Im9uZSImJmUhPT0ibWl4ZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK2UrImAgZm9yIGBvcHRpb25zLmxpc3RJdGVtSW5kZW50YCwgZXhwZWN0ZWQgYHRhYmAsIGBvbmVgLCBvciBgbWl4ZWRgIik7cmV0dXJuIGV9dmFyIGZzZT1iKCgpPT57fSk7ZnVuY3Rpb24gbXNlKHQsZSxhLGkpe2xldCByPXVzZShhKSxzPWEuYnVsbGV0Q3VycmVudHx8RjMoYSk7ZSYmZS50eXBlPT09Imxpc3QiJiZlLm9yZGVyZWQmJihzPSh0eXBlb2YgZS5zdGFydD09Im51bWJlciImJmUuc3RhcnQ+LTE/ZS5zdGFydDoxKSsoYS5vcHRpb25zLmluY3JlbWVudExpc3RNYXJrZXI9PT0hMT8wOmUuY2hpbGRyZW4uaW5kZXhPZih0KSkrcyk7bGV0IG49cy5sZW5ndGgrMTsocj09PSJ0YWIifHxyPT09Im1peGVkIiYmKGUmJmUudHlwZT09PSJsaXN0IiYmZS5zcHJlYWR8fHQuc3ByZWFkKSkmJihuPU1hdGguY2VpbChuLzQpKjQpO2xldCBvPWEuY3JlYXRlVHJhY2tlcihpKTtvLm1vdmUocysiICIucmVwZWF0KG4tcy5sZW5ndGgpKSxvLnNoaWZ0KG4pO2xldCBkPWEuZW50ZXIoImxpc3RJdGVtIiksYz1hLmluZGVudExpbmVzKGEuY29udGFpbmVyRmxvdyh0LG8uY3VycmVudCgpKSxwKTtyZXR1cm4gZCgpLGM7ZnVuY3Rpb24gcChsLGYsZyl7cmV0dXJuIGY/KGc/IiI6IiAiLnJlcGVhdChuKSkrbDooZz9zOnMrIiAiLnJlcGVhdChuLXMubGVuZ3RoKSkrbH19dmFyIGdzZT1iKCgpPT57TDkoKTtmc2UoKX0pO2Z1bmN0aW9uIGJzZSh0LGUsYSxpKXtsZXQgcj1hLmVudGVyKCJwYXJhZ3JhcGgiKSxzPWEuZW50ZXIoInBocmFzaW5nIiksbj1hLmNvbnRhaW5lclBocmFzaW5nKHQsaSk7cmV0dXJuIHMoKSxyKCksbn12YXIgdnNlPWIoKCk9Pnt9KTt2YXIgTFQseXNlPWIoKCk9Pnt5OSgpO0xUPWJzKFsiYnJlYWsiLCJkZWxldGUiLCJlbXBoYXNpcyIsImZvb3Rub3RlIiwiZm9vdG5vdGVSZWZlcmVuY2UiLCJpbWFnZSIsImltYWdlUmVmZXJlbmNlIiwiaW5saW5lQ29kZSIsImlubGluZU1hdGgiLCJsaW5rIiwibGlua1JlZmVyZW5jZSIsIm1keEpzeFRleHRFbGVtZW50IiwibWR4VGV4dEV4cHJlc3Npb24iLCJzdHJvbmciLCJ0ZXh0IiwidGV4dERpcmVjdGl2ZSJdKX0pO3ZhciB4c2U9YigoKT0+e3lzZSgpfSk7ZnVuY3Rpb24gd3NlKHQsZSxhLGkpe3JldHVybih0LmNoaWxkcmVuLnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIExUKG4pfSk/YS5jb250YWluZXJQaHJhc2luZzphLmNvbnRhaW5lckZsb3cpLmNhbGwoYSx0LGkpfXZhciBNc2U9YigoKT0+e3hzZSgpfSk7ZnVuY3Rpb24genNlKHQpe2xldCBlPXQub3B0aW9ucy5zdHJvbmd8fCIqIjtpZihlIT09IioiJiZlIT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBzdHJvbmcgd2l0aCBgIitlKyJgIGZvciBgb3B0aW9ucy5zdHJvbmdgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiBlfXZhciBrc2U9YigoKT0+e30pO2Z1bmN0aW9uICRUKHQsZSxhLGkpe2xldCByPXpzZShhKSxzPWEuZW50ZXIoInN0cm9uZyIpLG49YS5jcmVhdGVUcmFja2VyKGkpLG89bi5tb3ZlKHIrciksZD1uLm1vdmUoYS5jb250YWluZXJQaHJhc2luZyh0LHthZnRlcjpyLGJlZm9yZTpvLC4uLm4uY3VycmVudCgpfSkpLGM9ZC5jaGFyQ29kZUF0KDApLHA9TjMoaS5iZWZvcmUuY2hhckNvZGVBdChpLmJlZm9yZS5sZW5ndGgtMSksYyxyKTtwLmluc2lkZSYmKGQ9QmEoYykrZC5zbGljZSgxKSk7bGV0IGw9ZC5jaGFyQ29kZUF0KGQubGVuZ3RoLTEpLGY9TjMoaS5hZnRlci5jaGFyQ29kZUF0KDApLGwscik7Zi5pbnNpZGUmJihkPWQuc2xpY2UoMCwtMSkrQmEobCkpO2xldCBnPW4ubW92ZShyK3IpO3JldHVybiBzKCksYS5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89e2FmdGVyOmYub3V0c2lkZSxiZWZvcmU6cC5vdXRzaWRlfSxvK2QrZ31mdW5jdGlvbiBRUHQodCxlLGEpe3JldHVybiBhLm9wdGlvbnMuc3Ryb25nfHwiKiJ9dmFyIFNzZT1iKCgpPT57a3NlKCk7STMoKTtiVCgpOyRULnBlZWs9UVB0fSk7ZnVuY3Rpb24gQ3NlKHQsZSxhLGkpe3JldHVybiBhLnNhZmUodC52YWx1ZSxpKX12YXIgX3NlPWIoKCk9Pnt9KTtmdW5jdGlvbiBUc2UodCl7bGV0IGU9dC5vcHRpb25zLnJ1bGVSZXBldGl0aW9ufHwzO2lmKGU8Myl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCByZXBldGl0aW9uIGAiK2UrImAgZm9yIGBvcHRpb25zLnJ1bGVSZXBldGl0aW9uYCwgZXhwZWN0ZWQgYDNgIG9yIG1vcmUiKTtyZXR1cm4gZX12YXIgTHNlPWIoKCk9Pnt9KTtmdW5jdGlvbiAkc2UodCxlLGEpe2xldCBpPSgkOShhKSsoYS5vcHRpb25zLnJ1bGVTcGFjZXM/IiAiOiIiKSkucmVwZWF0KFRzZShhKSk7cmV0dXJuIGEub3B0aW9ucy5ydWxlU3BhY2VzP2kuc2xpY2UoMCwtMSk6aX12YXIgQXNlPWIoKCk9PntMc2UoKTtUVCgpfSk7dmFyIHgwLEFUPWIoKCk9PntQcmUoKTtOcmUoKTtxcmUoKTtqcmUoKTtHcmUoKTtKcmUoKTtlc2UoKTt0c2UoKTthc2UoKTtpc2UoKTtzc2UoKTtuc2UoKTtoc2UoKTtnc2UoKTt2c2UoKTtNc2UoKTtTc2UoKTtfc2UoKTtBc2UoKTt4MD17YmxvY2txdW90ZTpFcmUsYnJlYWs6bVQsY29kZTpIcmUsZGVmaW5pdGlvbjpWcmUsZW1waGFzaXM6dlQsaGFyZEJyZWFrOm1ULGhlYWRpbmc6UXJlLGh0bWw6d1QsaW1hZ2U6TVQsaW1hZ2VSZWZlcmVuY2U6elQsaW5saW5lQ29kZTprVCxsaW5rOkNULGxpbmtSZWZlcmVuY2U6X1QsbGlzdDpwc2UsbGlzdEl0ZW06bXNlLHBhcmFncmFwaDpic2Uscm9vdDp3c2Usc3Ryb25nOiRULHRleHQ6Q3NlLHRoZW1hdGljQnJlYWs6JHNlfX0pO2Z1bmN0aW9uIEpQdCh0LGUsYSxpKXtpZihlLnR5cGU9PT0iY29kZSImJkI2KGUsaSkmJih0LnR5cGU9PT0ibGlzdCJ8fHQudHlwZT09PWUudHlwZSYmQjYodCxpKSkpcmV0dXJuITE7aWYoInNwcmVhZCJpbiBhJiZ0eXBlb2YgYS5zcHJlYWQ9PSJib29sZWFuIilyZXR1cm4gdC50eXBlPT09InBhcmFncmFwaCImJih0LnR5cGU9PT1lLnR5cGV8fGUudHlwZT09PSJkZWZpbml0aW9uInx8ZS50eXBlPT09ImhlYWRpbmciJiZUOShlLGkpKT92b2lkIDA6YS5zcHJlYWQ/MTowfXZhciBEc2UsRXNlPWIoKCk9PntnVCgpO3hUKCk7RHNlPVtKUHRdfSk7dmFyIHcwLFBzZSxJc2U9YigoKT0+e3cwPVsiYXV0b2xpbmsiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJkZXN0aW5hdGlvblJhdyIsInJlZmVyZW5jZSIsInRpdGxlUXVvdGUiLCJ0aXRsZUFwb3N0cm9waGUiXSxQc2U9W3tjaGFyYWN0ZXI6IgkiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiCSIsYmVmb3JlOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiCSIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSJdfSx7Y2hhcmFjdGVyOiJcciIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSIsImNvZGVGZW5jZWRNZXRhR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YVRpbGRlIiwiZGVzdGluYXRpb25MaXRlcmFsIiwiaGVhZGluZ0F0eCJdfSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhVGlsZGUiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJoZWFkaW5nQXR4Il19LHtjaGFyYWN0ZXI6IiAiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiICIsYmVmb3JlOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiICIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZExhbmdUaWxkZSJdfSx7Y2hhcmFjdGVyOiIhIixhZnRlcjoiXFxbIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OncwfSx7Y2hhcmFjdGVyOiciJyxpbkNvbnN0cnVjdDoidGl0bGVRdW90ZSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiIyJ9LHtjaGFyYWN0ZXI6IiMiLGluQ29uc3RydWN0OiJoZWFkaW5nQXR4IixhZnRlcjpgKD86W1xyCl18JClgfSx7Y2hhcmFjdGVyOiImIixhZnRlcjoiWyNBLVphLXpdIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiInIixpbkNvbnN0cnVjdDoidGl0bGVBcG9zdHJvcGhlIn0se2NoYXJhY3RlcjoiKCIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uUmF3In0se2JlZm9yZToiXFxdIixjaGFyYWN0ZXI6IigiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6dzB9LHthdEJyZWFrOiEwLGJlZm9yZToiXFxkKyIsY2hhcmFjdGVyOiIpIn0se2NoYXJhY3RlcjoiKSIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uUmF3In0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIqIixhZnRlcjpgKD86WyAJXHIKKl0pYH0se2NoYXJhY3RlcjoiKiIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDp3MH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIrIixhZnRlcjpgKD86WyAJXHIKXSlgfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOmAoPzpbIAlccgotXSlgfSx7YXRCcmVhazohMCxiZWZvcmU6IlxcZCsiLGNoYXJhY3RlcjoiLiIsYWZ0ZXI6YCg/OlsgCVxyCl18JClgfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IjwiLGFmdGVyOiJbIS8/QS1aYS16XSJ9LHtjaGFyYWN0ZXI6IjwiLGFmdGVyOiJbIS8/QS1aYS16XSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDp3MH0se2NoYXJhY3RlcjoiPCIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uTGl0ZXJhbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPiJ9LHtjaGFyYWN0ZXI6Ij4iLGluQ29uc3RydWN0OiJkZXN0aW5hdGlvbkxpdGVyYWwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IlsifSx7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OncwfSx7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicmVmZXJlbmNlIl19LHtjaGFyYWN0ZXI6IlxcIixhZnRlcjoiW1xcclxcbl0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6Il0iLGluQ29uc3RydWN0OlsibGFiZWwiLCJyZWZlcmVuY2UiXX0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJfIn0se2NoYXJhY3RlcjoiXyIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDp3MH0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJgIn0se2NoYXJhY3RlcjoiYCIsaW5Db25zdHJ1Y3Q6WyJjb2RlRmVuY2VkTGFuZ0dyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCJdfSx7Y2hhcmFjdGVyOiJgIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OncwfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6In4ifV19KTtmdW5jdGlvbiBCbih0KXtsZXQgZT0iJiIrdCsiOyI7TnNlLmlubmVySFRNTD1lO2xldCBhPU5zZS50ZXh0Q29udGVudDtyZXR1cm4gYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpPT09NTkmJnQhPT0ic2VtaSJ8fGE9PT1lPyExOmF9dmFyIE5zZSxxNj1iKCgpPT57TnNlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKX0pO2Z1bmN0aW9uIE8zKHQsZSl7bGV0IGE9TnVtYmVyLnBhcnNlSW50KHQsZSk7cmV0dXJuIGE8OXx8YT09PTExfHxhPjEzJiZhPDMyfHxhPjEyNiYmYTwxNjB8fGE+NTUyOTUmJmE8NTczNDR8fGE+NjQ5NzUmJmE8NjUwMDh8fChhJjY1NTM1KT09PTY1NTM1fHwoYSY2NTUzNSk9PT02NTUzNHx8YT4xMTE0MTExPyJcdUZGRkQiOlN0cmluZy5mcm9tQ29kZVBvaW50KGEpfXZhciBBOT1iKCgpPT57fSk7ZnVuY3Rpb24gRDkodCl7cmV0dXJuIHQucmVwbGFjZShlSXQsdEl0KX1mdW5jdGlvbiB0SXQodCxlLGEpe2lmKGUpcmV0dXJuIGU7aWYoYS5jaGFyQ29kZUF0KDApPT09MzUpe2xldCByPWEuY2hhckNvZGVBdCgxKSxzPXI9PT0xMjB8fHI9PT04ODtyZXR1cm4gTzMoYS5zbGljZShzPzI6MSkscz8xNjoxMCl9cmV0dXJuIEJuKGEpfHx0fXZhciBlSXQsRFQ9YigoKT0+e3E2KCk7QTkoKTtlSXQ9L1xcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcZHsxLDd9fHhbXGRhLWZdezEsNn0pfFtcZGEtel17MSwzMX0pOy9naX0pO2Z1bmN0aW9uIEZzZSh0KXtyZXR1cm4gdC5sYWJlbHx8IXQuaWRlbnRpZmllcj90LmxhYmVsfHwiIjpEOSh0LmlkZW50aWZpZXIpfXZhciBPc2U9YigoKT0+e0RUKCl9KTtmdW5jdGlvbiBSc2UodCl7aWYoIXQuX2NvbXBpbGVkKXtsZXQgZT0odC5hdEJyZWFrPyJbXFxyXFxuXVtcXHQgXSoiOiIiKSsodC5iZWZvcmU/Iig/OiIrdC5iZWZvcmUrIikiOiIiKTt0Ll9jb21waWxlZD1uZXcgUmVnRXhwKChlPyIoIitlKyIpIjoiIikrKC9bfFxce30oKVtcXV4kKyo/Li1dLy50ZXN0KHQuY2hhcmFjdGVyKT8iXFwiOiIiKSt0LmNoYXJhY3RlcisodC5hZnRlcj8iKD86Iit0LmFmdGVyKyIpIjoiIiksImciKX1yZXR1cm4gdC5fY29tcGlsZWR9dmFyIEJzZT1iKCgpPT57fSk7ZnVuY3Rpb24gSHNlKHQsZSxhKXtsZXQgaT1lLmluZGV4U3RhY2sscj10LmNoaWxkcmVufHxbXSxzPVtdLG49LTEsbz1hLmJlZm9yZSxkO2kucHVzaCgtMSk7bGV0IGM9ZS5jcmVhdGVUcmFja2VyKGEpO2Zvcig7KytuPHIubGVuZ3RoOyl7bGV0IHA9cltuXSxsO2lmKGlbaS5sZW5ndGgtMV09bixuKzE8ci5sZW5ndGgpe2xldCB5PWUuaGFuZGxlLmhhbmRsZXJzW3JbbisxXS50eXBlXTt5JiZ5LnBlZWsmJih5PXkucGVlayksbD15P3kocltuKzFdLHQsZSx7YmVmb3JlOiIiLGFmdGVyOiIiLC4uLmMuY3VycmVudCgpfSkuY2hhckF0KDApOiIifWVsc2UgbD1hLmFmdGVyO3MubGVuZ3RoPjAmJihvPT09IlxyInx8bz09PWAKYCkmJnAudHlwZT09PSJodG1sIiYmKHNbcy5sZW5ndGgtMV09c1tzLmxlbmd0aC0xXS5yZXBsYWNlKC8oXHI/XG58XHIpJC8sIiAiKSxvPSIgIixjPWUuY3JlYXRlVHJhY2tlcihhKSxjLm1vdmUocy5qb2luKCIiKSkpO2xldCBmPWUuaGFuZGxlKHAsdCxlLHsuLi5jLmN1cnJlbnQoKSxhZnRlcjpsLGJlZm9yZTpvfSk7ZCYmZD09PWYuc2xpY2UoMCwxKSYmKGY9QmEoZC5jaGFyQ29kZUF0KDApKStmLnNsaWNlKDEpKTtsZXQgZz1lLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbztlLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz12b2lkIDAsZD12b2lkIDAsZyYmKHMubGVuZ3RoPjAmJmcuYmVmb3JlJiZvPT09c1tzLmxlbmd0aC0xXS5zbGljZSgtMSkmJihzW3MubGVuZ3RoLTFdPXNbcy5sZW5ndGgtMV0uc2xpY2UoMCwtMSkrQmEoby5jaGFyQ29kZUF0KDApKSksZy5hZnRlciYmKGQ9bCkpLGMubW92ZShmKSxzLnB1c2goZiksbz1mLnNsaWNlKC0xKX1yZXR1cm4gaS5wb3AoKSxzLmpvaW4oIiIpfXZhciBxc2U9YigoKT0+e0kzKCl9KTtmdW5jdGlvbiBWc2UodCxlLGEpe2xldCBpPWUuaW5kZXhTdGFjayxyPXQuY2hpbGRyZW58fFtdLHM9ZS5jcmVhdGVUcmFja2VyKGEpLG49W10sbz0tMTtmb3IoaS5wdXNoKC0xKTsrK288ci5sZW5ndGg7KXtsZXQgZD1yW29dO2lbaS5sZW5ndGgtMV09byxuLnB1c2gocy5tb3ZlKGUuaGFuZGxlKGQsdCxlLHtiZWZvcmU6YApgLGFmdGVyOmAKYCwuLi5zLmN1cnJlbnQoKX0pKSksZC50eXBlIT09Imxpc3QiJiYoZS5idWxsZXRMYXN0VXNlZD12b2lkIDApLG88ci5sZW5ndGgtMSYmbi5wdXNoKHMubW92ZShhSXQoZCxyW28rMV0sdCxlKSkpfXJldHVybiBpLnBvcCgpLG4uam9pbigiIil9ZnVuY3Rpb24gYUl0KHQsZSxhLGkpe2xldCByPWkuam9pbi5sZW5ndGg7Zm9yKDtyLS07KXtsZXQgcz1pLmpvaW5bcl0odCxlLGEsaSk7aWYocz09PSEwfHxzPT09MSlicmVhaztpZih0eXBlb2Ygcz09Im51bWJlciIpcmV0dXJuYApgLnJlcGVhdCgxK3MpO2lmKHM9PT0hMSlyZXR1cm5gCgo8IS0tLS0+CgpgfXJldHVybmAKCmB9dmFyIGpzZT1iKCgpPT57fSk7ZnVuY3Rpb24gVXNlKHQsZSl7bGV0IGE9W10saT0wLHI9MCxzO2Zvcig7cz1pSXQuZXhlYyh0KTspbih0LnNsaWNlKGkscy5pbmRleCkpLGEucHVzaChzWzBdKSxpPXMuaW5kZXgrc1swXS5sZW5ndGgscisrO3JldHVybiBuKHQuc2xpY2UoaSkpLGEuam9pbigiIik7ZnVuY3Rpb24gbihvKXthLnB1c2goZShvLHIsIW8pKX19dmFyIGlJdCxXc2U9YigoKT0+e2lJdD0vXHI/XG58XHIvZ30pO2Z1bmN0aW9uIFlzZSh0LGUsYSl7bGV0IGk9KGEuYmVmb3JlfHwiIikrKGV8fCIiKSsoYS5hZnRlcnx8IiIpLHI9W10scz1bXSxuPXt9LG89LTE7Zm9yKDsrK288dC51bnNhZmUubGVuZ3RoOyl7bGV0IHA9dC51bnNhZmVbb107aWYoIWs5KHQuc3RhY2sscCkpY29udGludWU7bGV0IGw9dC5jb21waWxlUGF0dGVybihwKSxmO2Zvcig7Zj1sLmV4ZWMoaSk7KXtsZXQgZz0iYmVmb3JlImluIHB8fCEhcC5hdEJyZWFrLHk9ImFmdGVyImluIHAsdj1mLmluZGV4KyhnP2ZbMV0ubGVuZ3RoOjApO3IuaW5jbHVkZXModik/KG5bdl0uYmVmb3JlJiYhZyYmKG5bdl0uYmVmb3JlPSExKSxuW3ZdLmFmdGVyJiYheSYmKG5bdl0uYWZ0ZXI9ITEpKTooci5wdXNoKHYpLG5bdl09e2JlZm9yZTpnLGFmdGVyOnl9KX19ci5zb3J0KHJJdCk7bGV0IGQ9YS5iZWZvcmU/YS5iZWZvcmUubGVuZ3RoOjAsYz1pLmxlbmd0aC0oYS5hZnRlcj9hLmFmdGVyLmxlbmd0aDowKTtmb3Iobz0tMTsrK288ci5sZW5ndGg7KXtsZXQgcD1yW29dO3A8ZHx8cD49Y3x8cCsxPGMmJnJbbysxXT09PXArMSYmbltwXS5hZnRlciYmIW5bcCsxXS5iZWZvcmUmJiFuW3ArMV0uYWZ0ZXJ8fHJbby0xXT09PXAtMSYmbltwXS5iZWZvcmUmJiFuW3AtMV0uYmVmb3JlJiYhbltwLTFdLmFmdGVyfHwoZCE9PXAmJnMucHVzaChHc2UoaS5zbGljZShkLHApLCJcXCIpKSxkPXAsL1shLS86LUBbLWB7LX5dLy50ZXN0KGkuY2hhckF0KHApKSYmKCFhLmVuY29kZXx8IWEuZW5jb2RlLmluY2x1ZGVzKGkuY2hhckF0KHApKSk/cy5wdXNoKCJcXCIpOihzLnB1c2goQmEoaS5jaGFyQ29kZUF0KHApKSksZCsrKSl9cmV0dXJuIHMucHVzaChHc2UoaS5zbGljZShkLGMpLGEuYWZ0ZXIpKSxzLmpvaW4oIiIpfWZ1bmN0aW9uIHJJdCh0LGUpe3JldHVybiB0LWV9ZnVuY3Rpb24gR3NlKHQsZSl7bGV0IGE9L1xcKD89WyEtLzotQFstYHstfl0pL2csaT1bXSxyPVtdLHM9dCtlLG49LTEsbz0wLGQ7Zm9yKDtkPWEuZXhlYyhzKTspaS5wdXNoKGQuaW5kZXgpO2Zvcig7KytuPGkubGVuZ3RoOylvIT09aVtuXSYmci5wdXNoKHQuc2xpY2UobyxpW25dKSksci5wdXNoKCJcXCIpLG89aVtuXTtyZXR1cm4gci5wdXNoKHQuc2xpY2UobykpLHIuam9pbigiIil9dmFyIFpzZT1iKCgpPT57STMoKTtmVCgpfSk7ZnVuY3Rpb24gWHNlKHQpe2xldCBlPXR8fHt9LGE9ZS5ub3d8fHt9LGk9ZS5saW5lU2hpZnR8fDAscj1hLmxpbmV8fDEscz1hLmNvbHVtbnx8MTtyZXR1cm57bW92ZTpkLGN1cnJlbnQ6bixzaGlmdDpvfTtmdW5jdGlvbiBuKCl7cmV0dXJue25vdzp7bGluZTpyLGNvbHVtbjpzfSxsaW5lU2hpZnQ6aX19ZnVuY3Rpb24gbyhjKXtpKz1jfWZ1bmN0aW9uIGQoYyl7bGV0IHA9Y3x8IiIsbD1wLnNwbGl0KC9ccj9cbnxcci9nKSxmPWxbbC5sZW5ndGgtMV07cmV0dXJuIHIrPWwubGVuZ3RoLTEscz1sLmxlbmd0aD09PTE/cytmLmxlbmd0aDoxK2YubGVuZ3RoK2kscH19dmFyIEtzZT1iKCgpPT57fSk7ZnVuY3Rpb24gRVQodCxlKXtsZXQgYT1lfHx7fSxpPXthc3NvY2lhdGlvbklkOkZzZSxjb250YWluZXJQaHJhc2luZzpsSXQsY29udGFpbmVyRmxvdzpjSXQsY3JlYXRlVHJhY2tlcjpYc2UsY29tcGlsZVBhdHRlcm46UnNlLGVudGVyOnMsaGFuZGxlcnM6ey4uLngwfSxoYW5kbGU6dm9pZCAwLGluZGVudExpbmVzOlVzZSxpbmRleFN0YWNrOltdLGpvaW46Wy4uLkRzZV0sb3B0aW9uczp7fSxzYWZlOmRJdCxzdGFjazpbXSx1bnNhZmU6Wy4uLlBzZV19O3VUKGksYSksaS5vcHRpb25zLnRpZ2h0RGVmaW5pdGlvbnMmJmkuam9pbi5wdXNoKG9JdCksaS5oYW5kbGU9ejkoInR5cGUiLHtpbnZhbGlkOnNJdCx1bmtub3duOm5JdCxoYW5kbGVyczppLmhhbmRsZXJzfSk7bGV0IHI9aS5oYW5kbGUodCx2b2lkIDAsaSx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsbm93OntsaW5lOjEsY29sdW1uOjF9LGxpbmVTaGlmdDowfSk7cmV0dXJuIHImJnIuY2hhckNvZGVBdChyLmxlbmd0aC0xKSE9PTEwJiZyLmNoYXJDb2RlQXQoci5sZW5ndGgtMSkhPT0xMyYmKHIrPWAKYCkscjtmdW5jdGlvbiBzKG4pe3JldHVybiBpLnN0YWNrLnB1c2gobiksbztmdW5jdGlvbiBvKCl7aS5zdGFjay5wb3AoKX19fWZ1bmN0aW9uIHNJdCh0KXt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBoYW5kbGUgdmFsdWUgYCIrdCsiYCwgZXhwZWN0ZWQgbm9kZSIpfWZ1bmN0aW9uIG5JdCh0KXtsZXQgZT10O3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhbmRsZSB1bmtub3duIG5vZGUgYCIrZS50eXBlKyJgIil9ZnVuY3Rpb24gb0l0KHQsZSl7aWYodC50eXBlPT09ImRlZmluaXRpb24iJiZ0LnR5cGU9PT1lLnR5cGUpcmV0dXJuIDB9ZnVuY3Rpb24gbEl0KHQsZSl7cmV0dXJuIEhzZSh0LHRoaXMsZSl9ZnVuY3Rpb24gY0l0KHQsZSl7cmV0dXJuIFZzZSh0LHRoaXMsZSl9ZnVuY3Rpb24gZEl0KHQsZSl7cmV0dXJuIFlzZSh0aGlzLHQsZSl9dmFyIFFzZT1iKCgpPT57aFQoKTtEcmUoKTtBVCgpO0VzZSgpO0lzZSgpO09zZSgpO0JzZSgpO3FzZSgpO2pzZSgpO1dzZSgpO1pzZSgpO0tzZSgpfSk7dmFyIEU5PWIoKCk9PntRc2UoKTtBVCgpfSk7ZnVuY3Rpb24gSVQoKXtyZXR1cm57ZW50ZXI6e3RhYmxlOnBJdCx0YWJsZURhdGE6SnNlLHRhYmxlSGVhZGVyOkpzZSx0YWJsZVJvdzp1SXR9LGV4aXQ6e2NvZGVUZXh0OmZJdCx0YWJsZTpoSXQsdGFibGVEYXRhOlBULHRhYmxlSGVhZGVyOlBULHRhYmxlUm93OlBUfX19ZnVuY3Rpb24gcEl0KHQpe2xldCBlPXQuX2FsaWduO3RoaXMuZW50ZXIoe3R5cGU6InRhYmxlIixhbGlnbjplLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYT09PSJub25lIj9udWxsOmF9KSxjaGlsZHJlbjpbXX0sdCksdGhpcy5kYXRhLmluVGFibGU9ITB9ZnVuY3Rpb24gaEl0KHQpe3RoaXMuZXhpdCh0KSx0aGlzLmRhdGEuaW5UYWJsZT12b2lkIDB9ZnVuY3Rpb24gdUl0KHQpe3RoaXMuZW50ZXIoe3R5cGU6InRhYmxlUm93IixjaGlsZHJlbjpbXX0sdCl9ZnVuY3Rpb24gUFQodCl7dGhpcy5leGl0KHQpfWZ1bmN0aW9uIEpzZSh0KXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZUNlbGwiLGNoaWxkcmVuOltdfSx0KX1mdW5jdGlvbiBmSXQodCl7bGV0IGU9dGhpcy5yZXN1bWUoKTt0aGlzLmRhdGEuaW5UYWJsZSYmKGU9ZS5yZXBsYWNlKC9cXChbXFx8XSkvZyxtSXQpKTtsZXQgYT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2EudHlwZSxhLnZhbHVlPWUsdGhpcy5leGl0KHQpfWZ1bmN0aW9uIG1JdCh0LGUpe3JldHVybiBlPT09InwiP2U6dH1mdW5jdGlvbiBOVCh0KXtsZXQgZT10fHx7fSxhPWUudGFibGVDZWxsUGFkZGluZyxpPWUudGFibGVQaXBlQWxpZ24scj1lLnN0cmluZ0xlbmd0aCxzPWE/IiAiOiJ8IjtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJcciIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHtjaGFyYWN0ZXI6YApgLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6InwiLGFmdGVyOiJbCSA6LV0ifSx7Y2hhcmFjdGVyOiJ8IixpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI6IixhZnRlcjoiLSJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6Ils6fC1dIn1dLGhhbmRsZXJzOntpbmxpbmVDb2RlOmYsdGFibGU6bix0YWJsZUNlbGw6ZCx0YWJsZVJvdzpvfX07ZnVuY3Rpb24gbihnLHksdixtKXtyZXR1cm4gYyhwKGcsdixtKSxnLmFsaWduKX1mdW5jdGlvbiBvKGcseSx2LG0pe2xldCB4PWwoZyx2LG0pLE09YyhbeF0pO3JldHVybiBNLnNsaWNlKDAsTS5pbmRleE9mKGAKYCkpfWZ1bmN0aW9uIGQoZyx5LHYsbSl7bGV0IHg9di5lbnRlcigidGFibGVDZWxsIiksTT12LmVudGVyKCJwaHJhc2luZyIpLFM9di5jb250YWluZXJQaHJhc2luZyhnLHsuLi5tLGJlZm9yZTpzLGFmdGVyOnN9KTtyZXR1cm4gTSgpLHgoKSxTfWZ1bmN0aW9uIGMoZyx5KXtyZXR1cm4gVHJlKGcse2FsaWduOnksYWxpZ25EZWxpbWl0ZXJzOmkscGFkZGluZzphLHN0cmluZ0xlbmd0aDpyfSl9ZnVuY3Rpb24gcChnLHksdil7bGV0IG09Zy5jaGlsZHJlbix4PS0xLE09W10sUz15LmVudGVyKCJ0YWJsZSIpO2Zvcig7Kyt4PG0ubGVuZ3RoOylNW3hdPWwobVt4XSx5LHYpO3JldHVybiBTKCksTX1mdW5jdGlvbiBsKGcseSx2KXtsZXQgbT1nLmNoaWxkcmVuLHg9LTEsTT1bXSxTPXkuZW50ZXIoInRhYmxlUm93Iik7Zm9yKDsrK3g8bS5sZW5ndGg7KU1beF09ZChtW3hdLGcseSx2KTtyZXR1cm4gUygpLE19ZnVuY3Rpb24gZihnLHksdil7bGV0IG09eDAuaW5saW5lQ29kZShnLHksdik7cmV0dXJuIHYuc3RhY2suaW5jbHVkZXMoInRhYmxlQ2VsbCIpJiYobT1tLnJlcGxhY2UoL1x8L2csIlxcJCYiKSksbX19dmFyIGVuZT1iKCgpPT57Tm4oKTtMcmUoKTtFOSgpfSk7dmFyIHRuZT1iKCgpPT57ZW5lKCl9KTtmdW5jdGlvbiBGVCgpe3JldHVybntleGl0Ont0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkOmFuZSx0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQ6YW5lLHBhcmFncmFwaDpnSXR9fX1mdW5jdGlvbiBPVCgpe3JldHVybnt1bnNhZmU6W3thdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6Ils6fC1dIn1dLGhhbmRsZXJzOntsaXN0SXRlbTpiSXR9fX1mdW5jdGlvbiBhbmUodCl7bGV0IGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtlLnR5cGUsZS5jaGVja2VkPXQudHlwZT09PSJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIn1mdW5jdGlvbiBnSXQodCl7bGV0IGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtpZihlJiZlLnR5cGU9PT0ibGlzdEl0ZW0iJiZ0eXBlb2YgZS5jaGVja2VkPT0iYm9vbGVhbiIpe2xldCBhPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07YS50eXBlO2xldCBpPWEuY2hpbGRyZW5bMF07aWYoaSYmaS50eXBlPT09InRleHQiKXtsZXQgcj1lLmNoaWxkcmVuLHM9LTEsbjtmb3IoOysrczxyLmxlbmd0aDspe2xldCBvPXJbc107aWYoby50eXBlPT09InBhcmFncmFwaCIpe249bzticmVha319bj09PWEmJihpLnZhbHVlPWkudmFsdWUuc2xpY2UoMSksaS52YWx1ZS5sZW5ndGg9PT0wP2EuY2hpbGRyZW4uc2hpZnQoKTphLnBvc2l0aW9uJiZpLnBvc2l0aW9uJiZ0eXBlb2YgaS5wb3NpdGlvbi5zdGFydC5vZmZzZXQ9PSJudW1iZXIiJiYoaS5wb3NpdGlvbi5zdGFydC5jb2x1bW4rKyxpLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCsrLGEucG9zaXRpb24uc3RhcnQ9T2JqZWN0LmFzc2lnbih7fSxpLnBvc2l0aW9uLnN0YXJ0KSkpfX10aGlzLmV4aXQodCl9ZnVuY3Rpb24gYkl0KHQsZSxhLGkpe2xldCByPXQuY2hpbGRyZW5bMF0scz10eXBlb2YgdC5jaGVja2VkPT0iYm9vbGVhbiImJnImJnIudHlwZT09PSJwYXJhZ3JhcGgiLG49IlsiKyh0LmNoZWNrZWQ/IngiOiIgIikrIl0gIixvPWEuY3JlYXRlVHJhY2tlcihpKTtzJiZvLm1vdmUobik7bGV0IGQ9eDAubGlzdEl0ZW0odCxlLGEsey4uLmksLi4uby5jdXJyZW50KCl9KTtyZXR1cm4gcyYmKGQ9ZC5yZXBsYWNlKC9eKD86WyorLV18XGQrXC4pKFtcclxuXXwgezEsM30pLyxjKSksZDtmdW5jdGlvbiBjKHApe3JldHVybiBwK259fXZhciBpbmU9YigoKT0+e05uKCk7RTkoKX0pO3ZhciBybmU9YigoKT0+e2luZSgpfSk7ZnVuY3Rpb24gUlQoKXtyZXR1cm5bblQoKSxsVCgpLGRUKCksSVQoKSxGVCgpXX1mdW5jdGlvbiBCVCh0KXtyZXR1cm57ZXh0ZW5zaW9uczpbb1QoKSxjVCh0KSxwVCgpLE5UKHQpLE9UKCldfX12YXIgc25lPWIoKCk9Pnt5cmUoKTt6cmUoKTtDcmUoKTt0bmUoKTtybmUoKX0pO3ZhciBubmU9YigoKT0+e3NuZSgpfSk7ZnVuY3Rpb24gTzEodCxlLGEsaSl7bGV0IHI9dC5sZW5ndGgscz0wLG47aWYoZTwwP2U9LWU+cj8wOnIrZTplPWU+cj9yOmUsYT1hPjA/YTowLGkubGVuZ3RoPDFlNCluPUFycmF5LmZyb20oaSksbi51bnNoaWZ0KGUsYSksdC5zcGxpY2UoLi4ubik7ZWxzZSBmb3IoYSYmdC5zcGxpY2UoZSxhKTtzPGkubGVuZ3RoOyluPWkuc2xpY2UocyxzKzFlNCksbi51bnNoaWZ0KGUsMCksdC5zcGxpY2UoLi4ubikscys9MWU0LGUrPTFlNH1mdW5jdGlvbiBZMSh0LGUpe3JldHVybiB0Lmxlbmd0aD4wPyhPMSh0LHQubGVuZ3RoLDAsZSksdCk6ZX12YXIgJHI9YigoKT0+e30pO2Z1bmN0aW9uIFA5KHQpe2xldCBlPXt9LGE9LTE7Zm9yKDsrK2E8dC5sZW5ndGg7KXZJdChlLHRbYV0pO3JldHVybiBlfWZ1bmN0aW9uIHZJdCh0LGUpe2xldCBhO2ZvcihhIGluIGUpe2xldCByPShIVC5jYWxsKHQsYSk/dFthXTp2b2lkIDApfHwodFthXT17fSkscz1lW2FdLG47aWYocylmb3IobiBpbiBzKXtIVC5jYWxsKHIsbil8fChyW25dPVtdKTtsZXQgbz1zW25dO3lJdChyW25dLEFycmF5LmlzQXJyYXkobyk/bzpvP1tvXTpbXSl9fX1mdW5jdGlvbiB5SXQodCxlKXtsZXQgYT0tMSxpPVtdO2Zvcig7KythPGUubGVuZ3RoOykoZVthXS5hZGQ9PT0iYWZ0ZXIiP3Q6aSkucHVzaChlW2FdKTtPMSh0LDAsMCxpKX1mdW5jdGlvbiBJOSh0KXtsZXQgZT17fSxhPS0xO2Zvcig7KythPHQubGVuZ3RoOyl4SXQoZSx0W2FdKTtyZXR1cm4gZX1mdW5jdGlvbiB4SXQodCxlKXtsZXQgYTtmb3IoYSBpbiBlKXtsZXQgcj0oSFQuY2FsbCh0LGEpP3RbYV06dm9pZCAwKXx8KHRbYV09e30pLHM9ZVthXSxuO2lmKHMpZm9yKG4gaW4gcylyW25dPXNbbl19fXZhciBIVCxOOT1iKCgpPT57JHIoKTtIVD17fS5oYXNPd25Qcm9wZXJ0eX0pO2Z1bmN0aW9uIGpUKCl7cmV0dXJue3RleHQ6QXJ9fWZ1bmN0aW9uIHpJdCh0LGUsYSl7bGV0IGk9dGhpcyxyLHM7cmV0dXJuIG47ZnVuY3Rpb24gbihsKXtyZXR1cm4hcVQobCl8fCFmbmUuY2FsbChpLGkucHJldmlvdXMpfHxWVChpLmV2ZW50cyk/YShsKToodC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rRW1haWwiKSxvKGwpKX1mdW5jdGlvbiBvKGwpe3JldHVybiBxVChsKT8odC5jb25zdW1lKGwpLG8pOmw9PT02ND8odC5jb25zdW1lKGwpLGQpOmEobCl9ZnVuY3Rpb24gZChsKXtyZXR1cm4gbD09PTQ2P3QuY2hlY2soTUl0LHAsYykobCk6bD09PTQ1fHxsPT09OTV8fEUxKGwpPyhzPSEwLHQuY29uc3VtZShsKSxkKTpwKGwpfWZ1bmN0aW9uIGMobCl7cmV0dXJuIHQuY29uc3VtZShsKSxyPSEwLGR9ZnVuY3Rpb24gcChsKXtyZXR1cm4gcyYmciYmYTIoaS5wcmV2aW91cyk/KHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rRW1haWwiKSx0LmV4aXQoImxpdGVyYWxBdXRvbGluayIpLGUobCkpOmEobCl9fWZ1bmN0aW9uIGtJdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG4pe3JldHVybiBuIT09ODcmJm4hPT0xMTl8fCFobmUuY2FsbChpLGkucHJldmlvdXMpfHxWVChpLmV2ZW50cyk/YShuKToodC5lbnRlcigibGl0ZXJhbEF1dG9saW5rIiksdC5lbnRlcigibGl0ZXJhbEF1dG9saW5rV3d3IiksdC5jaGVjayh3SXQsdC5hdHRlbXB0KG9uZSx0LmF0dGVtcHQobG5lLHMpLGEpLGEpKG4pKX1mdW5jdGlvbiBzKG4pe3JldHVybiB0LmV4aXQoImxpdGVyYWxBdXRvbGlua1d3dyIpLHQuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksZShuKX19ZnVuY3Rpb24gU0l0KHQsZSxhKXtsZXQgaT10aGlzLHI9IiIscz0hMTtyZXR1cm4gbjtmdW5jdGlvbiBuKGwpe3JldHVybihsPT09NzJ8fGw9PT0xMDQpJiZ1bmUuY2FsbChpLGkucHJldmlvdXMpJiYhVlQoaS5ldmVudHMpPyh0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSx0LmVudGVyKCJsaXRlcmFsQXV0b2xpbmtIdHRwIikscis9U3RyaW5nLmZyb21Db2RlUG9pbnQobCksdC5jb25zdW1lKGwpLG8pOmEobCl9ZnVuY3Rpb24gbyhsKXtpZihhMihsKSYmci5sZW5ndGg8NSlyZXR1cm4gcis9U3RyaW5nLmZyb21Db2RlUG9pbnQobCksdC5jb25zdW1lKGwpLG87aWYobD09PTU4KXtsZXQgZj1yLnRvTG93ZXJDYXNlKCk7aWYoZj09PSJodHRwInx8Zj09PSJodHRwcyIpcmV0dXJuIHQuY29uc3VtZShsKSxkfXJldHVybiBhKGwpfWZ1bmN0aW9uIGQobCl7cmV0dXJuIGw9PT00Nz8odC5jb25zdW1lKGwpLHM/Yzoocz0hMCxkKSk6YShsKX1mdW5jdGlvbiBjKGwpe3JldHVybiBsPT09bnVsbHx8ZzAobCl8fF90KGwpfHxMcihsKXx8YjAobCk/YShsKTp0LmF0dGVtcHQob25lLHQuYXR0ZW1wdChsbmUscCksYSkobCl9ZnVuY3Rpb24gcChsKXtyZXR1cm4gdC5leGl0KCJsaXRlcmFsQXV0b2xpbmtIdHRwIiksdC5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSxlKGwpfX1mdW5jdGlvbiBDSXQodCxlLGEpe2xldCBpPTA7cmV0dXJuIHI7ZnVuY3Rpb24gcihuKXtyZXR1cm4obj09PTg3fHxuPT09MTE5KSYmaTwzPyhpKyssdC5jb25zdW1lKG4pLHIpOm49PT00NiYmaT09PTM/KHQuY29uc3VtZShuKSxzKTphKG4pfWZ1bmN0aW9uIHMobil7cmV0dXJuIG49PT1udWxsP2Eobik6ZShuKX19ZnVuY3Rpb24gX0l0KHQsZSxhKXtsZXQgaSxyLHM7cmV0dXJuIG47ZnVuY3Rpb24gbihjKXtyZXR1cm4gYz09PTQ2fHxjPT09OTU/dC5jaGVjayhjbmUsZCxvKShjKTpjPT09bnVsbHx8X3QoYyl8fExyKGMpfHxjIT09NDUmJmIwKGMpP2QoYyk6KHM9ITAsdC5jb25zdW1lKGMpLG4pfWZ1bmN0aW9uIG8oYyl7cmV0dXJuIGM9PT05NT9pPSEwOihyPWksaT12b2lkIDApLHQuY29uc3VtZShjKSxufWZ1bmN0aW9uIGQoYyl7cmV0dXJuIHJ8fGl8fCFzP2EoYyk6ZShjKX19ZnVuY3Rpb24gVEl0KHQsZSl7bGV0IGE9MCxpPTA7cmV0dXJuIHI7ZnVuY3Rpb24gcihuKXtyZXR1cm4gbj09PTQwPyhhKyssdC5jb25zdW1lKG4pLHIpOm49PT00MSYmaTxhP3Mobik6bj09PTMzfHxuPT09MzR8fG49PT0zOHx8bj09PTM5fHxuPT09NDF8fG49PT00Mnx8bj09PTQ0fHxuPT09NDZ8fG49PT01OHx8bj09PTU5fHxuPT09NjB8fG49PT02M3x8bj09PTkzfHxuPT09OTV8fG49PT0xMjY/dC5jaGVjayhjbmUsZSxzKShuKTpuPT09bnVsbHx8X3Qobil8fExyKG4pP2Uobik6KHQuY29uc3VtZShuKSxyKX1mdW5jdGlvbiBzKG4pe3JldHVybiBuPT09NDEmJmkrKyx0LmNvbnN1bWUobikscn19ZnVuY3Rpb24gTEl0KHQsZSxhKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG8pe3JldHVybiBvPT09MzN8fG89PT0zNHx8bz09PTM5fHxvPT09NDF8fG89PT00Mnx8bz09PTQ0fHxvPT09NDZ8fG89PT01OHx8bz09PTU5fHxvPT09NjN8fG89PT05NXx8bz09PTEyNj8odC5jb25zdW1lKG8pLGkpOm89PT0zOD8odC5jb25zdW1lKG8pLHMpOm89PT05Mz8odC5jb25zdW1lKG8pLHIpOm89PT02MHx8bz09PW51bGx8fF90KG8pfHxMcihvKT9lKG8pOmEobyl9ZnVuY3Rpb24gcihvKXtyZXR1cm4gbz09PW51bGx8fG89PT00MHx8bz09PTkxfHxfdChvKXx8THIobyk/ZShvKTppKG8pfWZ1bmN0aW9uIHMobyl7cmV0dXJuIGEyKG8pP24obyk6YShvKX1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09NTk/KHQuY29uc3VtZShvKSxpKTphMihvKT8odC5jb25zdW1lKG8pLG4pOmEobyl9fWZ1bmN0aW9uICRJdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gdC5jb25zdW1lKHMpLHJ9ZnVuY3Rpb24gcihzKXtyZXR1cm4gRTEocyk/YShzKTplKHMpfX1mdW5jdGlvbiBobmUodCl7cmV0dXJuIHQ9PT1udWxsfHx0PT09NDB8fHQ9PT00Mnx8dD09PTk1fHx0PT09OTF8fHQ9PT05M3x8dD09PTEyNnx8X3QodCl9ZnVuY3Rpb24gdW5lKHQpe3JldHVybiFhMih0KX1mdW5jdGlvbiBmbmUodCl7cmV0dXJuISh0PT09NDd8fHFUKHQpKX1mdW5jdGlvbiBxVCh0KXtyZXR1cm4gdD09PTQzfHx0PT09NDV8fHQ9PT00Nnx8dD09PTk1fHxFMSh0KX1mdW5jdGlvbiBWVCh0KXtsZXQgZT10Lmxlbmd0aCxhPSExO2Zvcig7ZS0tOyl7bGV0IGk9dFtlXVsxXTtpZigoaS50eXBlPT09ImxhYmVsTGluayJ8fGkudHlwZT09PSJsYWJlbEltYWdlIikmJiFpLl9iYWxhbmNlZCl7YT0hMDticmVha31pZihpLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvKXthPSExO2JyZWFrfX1yZXR1cm4gdC5sZW5ndGg+MCYmIWEmJih0W3QubGVuZ3RoLTFdWzFdLl9nZm1BdXRvbGlua0xpdGVyYWxXYWxrZWRJbnRvPSEwKSxhfXZhciB3SXQsb25lLGxuZSxjbmUsTUl0LGRuZSxwbmUseXMsQXIsbW5lPWIoKCk9PnskdCgpO3dJdD17dG9rZW5pemU6Q0l0LHBhcnRpYWw6ITB9LG9uZT17dG9rZW5pemU6X0l0LHBhcnRpYWw6ITB9LGxuZT17dG9rZW5pemU6VEl0LHBhcnRpYWw6ITB9LGNuZT17dG9rZW5pemU6TEl0LHBhcnRpYWw6ITB9LE1JdD17dG9rZW5pemU6JEl0LHBhcnRpYWw6ITB9LGRuZT17bmFtZToid3d3QXV0b2xpbmsiLHRva2VuaXplOmtJdCxwcmV2aW91czpobmV9LHBuZT17bmFtZToicHJvdG9jb2xBdXRvbGluayIsdG9rZW5pemU6U0l0LHByZXZpb3VzOnVuZX0seXM9e25hbWU6ImVtYWlsQXV0b2xpbmsiLHRva2VuaXplOnpJdCxwcmV2aW91czpmbmV9LEFyPXt9O2Zvcih2YXIgTTA9NDg7TTA8MTIzOylBcltNMF09eXMsTTArKyxNMD09PTU4P00wPTY1Ok0wPT09OTEmJihNMD05Nyk7QXJbNDNdPXlzLEFyWzQ1XT15cyxBcls0Nl09eXMsQXJbOTVdPXlzLEFyWzcyXT1beXMscG5lXSxBclsxMDRdPVt5cyxwbmVdLEFyWzg3XT1beXMsZG5lXSxBclsxMTldPVt5cyxkbmVdfSk7ZnVuY3Rpb24gRjkodCl7cmV0dXJuIHQucmVwbGFjZSgvWyImPD5dL2csZSk7ZnVuY3Rpb24gZShhKXtyZXR1cm4iJiIrQUl0W2FdKyI7In19dmFyIEFJdCxVVD1iKCgpPT57QUl0PXsnIic6InF1b3QiLCImIjoiYW1wIiwiPCI6Imx0IiwiPiI6Imd0In19KTtmdW5jdGlvbiBEcih0LGUpe2xldCBhPUY5KEhhKHR8fCIiKSk7aWYoIWUpcmV0dXJuIGE7bGV0IGk9YS5pbmRleE9mKCI6Iikscj1hLmluZGV4T2YoIj8iKSxzPWEuaW5kZXhPZigiIyIpLG49YS5pbmRleE9mKCIvIik7cmV0dXJuIGk8MHx8bj4tMSYmaT5ufHxyPi0xJiZpPnJ8fHM+LTEmJmk+c3x8ZS50ZXN0KGEuc2xpY2UoMCxpKSk/YToiIn1mdW5jdGlvbiBIYSh0KXtsZXQgZT1bXSxhPS0xLGk9MCxyPTA7Zm9yKDsrK2E8dC5sZW5ndGg7KXtsZXQgcz10LmNoYXJDb2RlQXQoYSksbj0iIjtpZihzPT09MzcmJkUxKHQuY2hhckNvZGVBdChhKzEpKSYmRTEodC5jaGFyQ29kZUF0KGErMikpKXI9MjtlbHNlIGlmKHM8MTI4KS9bISMkJi07PT8tWl9hLXp+XS8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKHMpKXx8KG49U3RyaW5nLmZyb21DaGFyQ29kZShzKSk7ZWxzZSBpZihzPjU1Mjk1JiZzPDU3MzQ0KXtsZXQgbz10LmNoYXJDb2RlQXQoYSsxKTtzPDU2MzIwJiZvPjU2MzE5JiZvPDU3MzQ0PyhuPVN0cmluZy5mcm9tQ2hhckNvZGUocyxvKSxyPTEpOm49Ilx1RkZGRCJ9ZWxzZSBuPVN0cmluZy5mcm9tQ2hhckNvZGUocyk7biYmKGUucHVzaCh0LnNsaWNlKGksYSksZW5jb2RlVVJJQ29tcG9uZW50KG4pKSxpPWErcisxLG49IiIpLHImJihhKz1yLHI9MCl9cmV0dXJuIGUuam9pbigiIikrdC5zbGljZShpKX12YXIgRXI9YigoKT0+eyR0KCk7VVQoKX0pO2Z1bmN0aW9uIEdUKCl7cmV0dXJue2V4aXQ6e2xpdGVyYWxBdXRvbGlua0VtYWlsOkVJdCxsaXRlcmFsQXV0b2xpbmtIdHRwOlBJdCxsaXRlcmFsQXV0b2xpbmtXd3c6REl0fX19ZnVuY3Rpb24gREl0KHQpe1dULmNhbGwodGhpcyx0LCJodHRwOi8vIil9ZnVuY3Rpb24gRUl0KHQpe1dULmNhbGwodGhpcyx0LCJtYWlsdG86Iil9ZnVuY3Rpb24gUEl0KHQpe1dULmNhbGwodGhpcyx0KX1mdW5jdGlvbiBXVCh0LGUpe2xldCBhPXRoaXMuc2xpY2VTZXJpYWxpemUodCk7dGhpcy50YWcoJzxhIGhyZWY9IicrRHIoKGV8fCIiKSthKSsnIj4nKSx0aGlzLnJhdyh0aGlzLmVuY29kZShhKSksdGhpcy50YWcoIjwvYT4iKX12YXIgZ25lPWIoKCk9PntFcigpfSk7dmFyIGJuZT1iKCgpPT57bW5lKCk7Z25lKCl9KTtmdW5jdGlvbiBIbih0LGUsYSl7bGV0IGk9W10scj0tMTtmb3IoOysrcjx0Lmxlbmd0aDspe2xldCBzPXRbcl0ucmVzb2x2ZUFsbDtzJiYhaS5pbmNsdWRlcyhzKSYmKGU9cyhlLGEpLGkucHVzaChzKSl9cmV0dXJuIGV9dmFyIFY2PWIoKCk9Pnt9KTtmdW5jdGlvbiBJSXQodCxlKXtsZXQgYT0tMSxpLHIscyxuLG8sZCxjLHA7Zm9yKDsrK2E8dC5sZW5ndGg7KWlmKHRbYV1bMF09PT0iZW50ZXIiJiZ0W2FdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZ0W2FdWzFdLl9jbG9zZSl7Zm9yKGk9YTtpLS07KWlmKHRbaV1bMF09PT0iZXhpdCImJnRbaV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJnRbaV1bMV0uX29wZW4mJmUuc2xpY2VTZXJpYWxpemUodFtpXVsxXSkuY2hhckNvZGVBdCgwKT09PWUuc2xpY2VTZXJpYWxpemUodFthXVsxXSkuY2hhckNvZGVBdCgwKSl7aWYoKHRbaV1bMV0uX2Nsb3NlfHx0W2FdWzFdLl9vcGVuKSYmKHRbYV1bMV0uZW5kLm9mZnNldC10W2FdWzFdLnN0YXJ0Lm9mZnNldCklMyYmISgodFtpXVsxXS5lbmQub2Zmc2V0LXRbaV1bMV0uc3RhcnQub2Zmc2V0K3RbYV1bMV0uZW5kLm9mZnNldC10W2FdWzFdLnN0YXJ0Lm9mZnNldCklMykpY29udGludWU7ZD10W2ldWzFdLmVuZC5vZmZzZXQtdFtpXVsxXS5zdGFydC5vZmZzZXQ+MSYmdFthXVsxXS5lbmQub2Zmc2V0LXRbYV1bMV0uc3RhcnQub2Zmc2V0PjE/MjoxO2xldCBsPXsuLi50W2ldWzFdLmVuZH0sZj17Li4udFthXVsxXS5zdGFydH07dm5lKGwsLWQpLHZuZShmLGQpLG49e3R5cGU6ZD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OmwsZW5kOnsuLi50W2ldWzFdLmVuZH19LG89e3R5cGU6ZD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnsuLi50W2FdWzFdLnN0YXJ0fSxlbmQ6Zn0scz17dHlwZTpkPjE/InN0cm9uZ1RleHQiOiJlbXBoYXNpc1RleHQiLHN0YXJ0OnsuLi50W2ldWzFdLmVuZH0sZW5kOnsuLi50W2FdWzFdLnN0YXJ0fX0scj17dHlwZTpkPjE/InN0cm9uZyI6ImVtcGhhc2lzIixzdGFydDp7Li4ubi5zdGFydH0sZW5kOnsuLi5vLmVuZH19LHRbaV1bMV0uZW5kPXsuLi5uLnN0YXJ0fSx0W2FdWzFdLnN0YXJ0PXsuLi5vLmVuZH0sYz1bXSx0W2ldWzFdLmVuZC5vZmZzZXQtdFtpXVsxXS5zdGFydC5vZmZzZXQmJihjPVkxKGMsW1siZW50ZXIiLHRbaV1bMV0sZV0sWyJleGl0Iix0W2ldWzFdLGVdXSkpLGM9WTEoYyxbWyJlbnRlciIscixlXSxbImVudGVyIixuLGVdLFsiZXhpdCIsbixlXSxbImVudGVyIixzLGVdXSksYz1ZMShjLEhuKGUucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLHQuc2xpY2UoaSsxLGEpLGUpKSxjPVkxKGMsW1siZXhpdCIscyxlXSxbImVudGVyIixvLGVdLFsiZXhpdCIsbyxlXSxbImV4aXQiLHIsZV1dKSx0W2FdWzFdLmVuZC5vZmZzZXQtdFthXVsxXS5zdGFydC5vZmZzZXQ/KHA9MixjPVkxKGMsW1siZW50ZXIiLHRbYV1bMV0sZV0sWyJleGl0Iix0W2FdWzFdLGVdXSkpOnA9MCxPMSh0LGktMSxhLWkrMyxjKSxhPWkrYy5sZW5ndGgtcC0yO2JyZWFrfX1mb3IoYT0tMTsrK2E8dC5sZW5ndGg7KXRbYV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJih0W2FdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gdH1mdW5jdGlvbiBOSXQodCxlKXtsZXQgYT10aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmF0dGVudGlvbk1hcmtlcnMubnVsbCxpPXRoaXMucHJldmlvdXMscj12cyhpKSxzO3JldHVybiBuO2Z1bmN0aW9uIG4oZCl7cmV0dXJuIHM9ZCx0LmVudGVyKCJhdHRlbnRpb25TZXF1ZW5jZSIpLG8oZCl9ZnVuY3Rpb24gbyhkKXtpZihkPT09cylyZXR1cm4gdC5jb25zdW1lKGQpLG87bGV0IGM9dC5leGl0KCJhdHRlbnRpb25TZXF1ZW5jZSIpLHA9dnMoZCksbD0hcHx8cD09PTImJnJ8fGEuaW5jbHVkZXMoZCksZj0hcnx8cj09PTImJnB8fGEuaW5jbHVkZXMoaSk7cmV0dXJuIGMuX29wZW49ISEocz09PTQyP2w6bCYmKHJ8fCFmKSksYy5fY2xvc2U9ISEocz09PTQyP2Y6ZiYmKHB8fCFsKSksZShkKX19ZnVuY3Rpb24gdm5lKHQsZSl7dC5jb2x1bW4rPWUsdC5vZmZzZXQrPWUsdC5fYnVmZmVySW5kZXgrPWV9dmFyIGo2LHluZT1iKCgpPT57JHIoKTtDOSgpO1Y2KCk7ajY9e25hbWU6ImF0dGVudGlvbiIscmVzb2x2ZUFsbDpJSXQsdG9rZW5pemU6Tkl0fX0pO2Z1bmN0aW9uIEZJdCh0LGUsYSl7bGV0IGk9MDtyZXR1cm4gcjtmdW5jdGlvbiByKGcpe3JldHVybiB0LmVudGVyKCJhdXRvbGluayIpLHQuZW50ZXIoImF1dG9saW5rTWFya2VyIiksdC5jb25zdW1lKGcpLHQuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSx0LmVudGVyKCJhdXRvbGlua1Byb3RvY29sIiksc31mdW5jdGlvbiBzKGcpe3JldHVybiBhMihnKT8odC5jb25zdW1lKGcpLG4pOmc9PT02ND9hKGcpOmMoZyl9ZnVuY3Rpb24gbihnKXtyZXR1cm4gZz09PTQzfHxnPT09NDV8fGc9PT00Nnx8RTEoZyk/KGk9MSxvKGcpKTpjKGcpfWZ1bmN0aW9uIG8oZyl7cmV0dXJuIGc9PT01OD8odC5jb25zdW1lKGcpLGk9MCxkKTooZz09PTQzfHxnPT09NDV8fGc9PT00Nnx8RTEoZykpJiZpKys8MzI/KHQuY29uc3VtZShnKSxvKTooaT0wLGMoZykpfWZ1bmN0aW9uIGQoZyl7cmV0dXJuIGc9PT02Mj8odC5leGl0KCJhdXRvbGlua1Byb3RvY29sIiksdC5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSx0LmNvbnN1bWUoZyksdC5leGl0KCJhdXRvbGlua01hcmtlciIpLHQuZXhpdCgiYXV0b2xpbmsiKSxlKTpnPT09bnVsbHx8Zz09PTMyfHxnPT09NjB8fGcwKGcpP2EoZyk6KHQuY29uc3VtZShnKSxkKX1mdW5jdGlvbiBjKGcpe3JldHVybiBnPT09NjQ/KHQuY29uc3VtZShnKSxwKTpucmUoZyk/KHQuY29uc3VtZShnKSxjKTphKGcpfWZ1bmN0aW9uIHAoZyl7cmV0dXJuIEUxKGcpP2woZyk6YShnKX1mdW5jdGlvbiBsKGcpe3JldHVybiBnPT09NDY/KHQuY29uc3VtZShnKSxpPTAscCk6Zz09PTYyPyh0LmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKS50eXBlPSJhdXRvbGlua0VtYWlsIix0LmVudGVyKCJhdXRvbGlua01hcmtlciIpLHQuY29uc3VtZShnKSx0LmV4aXQoImF1dG9saW5rTWFya2VyIiksdC5leGl0KCJhdXRvbGluayIpLGUpOmYoZyl9ZnVuY3Rpb24gZihnKXtpZigoZz09PTQ1fHxFMShnKSkmJmkrKzw2Myl7bGV0IHk9Zz09PTQ1P2Y6bDtyZXR1cm4gdC5jb25zdW1lKGcpLHl9cmV0dXJuIGEoZyl9fXZhciBZVCx4bmU9YigoKT0+eyR0KCk7WVQ9e25hbWU6ImF1dG9saW5rIix0b2tlbml6ZTpGSXR9fSk7ZnVuY3Rpb24gaXQodCxlLGEsaSl7bGV0IHI9aT9pLTE6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHM9MDtyZXR1cm4gbjtmdW5jdGlvbiBuKGQpe3JldHVybiBRZShkKT8odC5lbnRlcihhKSxvKGQpKTplKGQpfWZ1bmN0aW9uIG8oZCl7cmV0dXJuIFFlKGQpJiZzKys8cj8odC5jb25zdW1lKGQpLG8pOih0LmV4aXQoYSksZShkKSl9fXZhciBSMT1iKCgpPT57JHQoKX0pO2Z1bmN0aW9uIE9JdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gUWUocyk/aXQodCxyLCJsaW5lUHJlZml4Iikocyk6cihzKX1mdW5jdGlvbiByKHMpe3JldHVybiBzPT09bnVsbHx8T2Uocyk/ZShzKTphKHMpfX12YXIgUHIsTzk9YigoKT0+e1IxKCk7JHQoKTtQcj17cGFydGlhbDohMCx0b2tlbml6ZTpPSXR9fSk7ZnVuY3Rpb24gUkl0KHQsZSxhKXtsZXQgaT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobil7aWYobj09PTYyKXtsZXQgbz1pLmNvbnRhaW5lclN0YXRlO3JldHVybiBvLm9wZW58fCh0LmVudGVyKCJibG9ja1F1b3RlIix7X2NvbnRhaW5lcjohMH0pLG8ub3Blbj0hMCksdC5lbnRlcigiYmxvY2tRdW90ZVByZWZpeCIpLHQuZW50ZXIoImJsb2NrUXVvdGVNYXJrZXIiKSx0LmNvbnN1bWUobiksdC5leGl0KCJibG9ja1F1b3RlTWFya2VyIiksc31yZXR1cm4gYShuKX1mdW5jdGlvbiBzKG4pe3JldHVybiBRZShuKT8odC5lbnRlcigiYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UiKSx0LmNvbnN1bWUobiksdC5leGl0KCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLHQuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLGUpOih0LmV4aXQoImJsb2NrUXVvdGVQcmVmaXgiKSxlKG4pKX19ZnVuY3Rpb24gQkl0KHQsZSxhKXtsZXQgaT10aGlzO3JldHVybiByO2Z1bmN0aW9uIHIobil7cmV0dXJuIFFlKG4pP2l0KHQscywibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShuKTpzKG4pfWZ1bmN0aW9uIHMobil7cmV0dXJuIHQuYXR0ZW1wdChSOSxlLGEpKG4pfX1mdW5jdGlvbiBISXQodCl7dC5leGl0KCJibG9ja1F1b3RlIil9dmFyIFI5LHduZT1iKCgpPT57UjEoKTskdCgpO1I5PXtjb250aW51YXRpb246e3Rva2VuaXplOkJJdH0sZXhpdDpISXQsbmFtZToiYmxvY2tRdW90ZSIsdG9rZW5pemU6Ukl0fX0pO2Z1bmN0aW9uIHFJdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gdC5lbnRlcigiY2hhcmFjdGVyRXNjYXBlIiksdC5lbnRlcigiZXNjYXBlTWFya2VyIiksdC5jb25zdW1lKHMpLHQuZXhpdCgiZXNjYXBlTWFya2VyIikscn1mdW5jdGlvbiByKHMpe3JldHVybiBscmUocyk/KHQuZW50ZXIoImNoYXJhY3RlckVzY2FwZVZhbHVlIiksdC5jb25zdW1lKHMpLHQuZXhpdCgiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSx0LmV4aXQoImNoYXJhY3RlckVzY2FwZSIpLGUpOmEocyl9fXZhciBCOSxNbmU9YigoKT0+eyR0KCk7Qjk9e25hbWU6ImNoYXJhY3RlckVzY2FwZSIsdG9rZW5pemU6cUl0fX0pO2Z1bmN0aW9uIFZJdCh0LGUsYSl7bGV0IGk9dGhpcyxyPTAscyxuO3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuIHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZSIpLHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLHQuY29uc3VtZShsKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGR9ZnVuY3Rpb24gZChsKXtyZXR1cm4gbD09PTM1Pyh0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksdC5jb25zdW1lKGwpLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyIpLGMpOih0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLHM9MzEsbj1FMSxwKGwpKX1mdW5jdGlvbiBjKGwpe3JldHVybiBsPT09ODh8fGw9PT0xMjA/KHQuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsIiksdC5jb25zdW1lKGwpLHQuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSx0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLHM9NixuPW9yZSxwKToodC5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWUiKSxzPTcsbj1PNixwKGwpKX1mdW5jdGlvbiBwKGwpe2lmKGw9PT01OSYmcil7bGV0IGY9dC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpO3JldHVybiBuPT09RTEmJiFCbihpLnNsaWNlU2VyaWFsaXplKGYpKT9hKGwpOih0LmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSx0LmNvbnN1bWUobCksdC5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXIiKSx0LmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZSIpLGUpfXJldHVybiBuKGwpJiZyKys8cz8odC5jb25zdW1lKGwpLHApOmEobCl9fXZhciBIOSx6bmU9YigoKT0+e3E2KCk7JHQoKTtIOT17bmFtZToiY2hhcmFjdGVyUmVmZXJlbmNlIix0b2tlbml6ZTpWSXR9fSk7ZnVuY3Rpb24gakl0KHQsZSxhKXtsZXQgaT10aGlzLHI9e3BhcnRpYWw6ITAsdG9rZW5pemU6X30scz0wLG49MCxvO3JldHVybiBkO2Z1bmN0aW9uIGQoayl7cmV0dXJuIGMoayl9ZnVuY3Rpb24gYyhrKXtsZXQgTj1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIHM9TiYmTlsxXS50eXBlPT09ImxpbmVQcmVmaXgiP05bMl0uc2xpY2VTZXJpYWxpemUoTlsxXSwhMCkubGVuZ3RoOjAsbz1rLHQuZW50ZXIoImNvZGVGZW5jZWQiKSx0LmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSx0LmVudGVyKCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLHAoayl9ZnVuY3Rpb24gcChrKXtyZXR1cm4gaz09PW8/KG4rKyx0LmNvbnN1bWUoaykscCk6bjwzP2Eoayk6KHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxRZShrKT9pdCh0LGwsIndoaXRlc3BhY2UiKShrKTpsKGspKX1mdW5jdGlvbiBsKGspe3JldHVybiBrPT09bnVsbHx8T2Uoayk/KHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksaS5pbnRlcnJ1cHQ/ZShrKTp0LmNoZWNrKGtuZSx2LEYpKGspKToodC5lbnRlcigiY29kZUZlbmNlZEZlbmNlSW5mbyIpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxmKGspKX1mdW5jdGlvbiBmKGspe3JldHVybiBrPT09bnVsbHx8T2Uoayk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZUluZm8iKSxsKGspKTpRZShrKT8odC5leGl0KCJjaHVua1N0cmluZyIpLHQuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGl0KHQsZywid2hpdGVzcGFjZSIpKGspKTprPT09OTYmJms9PT1vP2Eoayk6KHQuY29uc3VtZShrKSxmKX1mdW5jdGlvbiBnKGspe3JldHVybiBrPT09bnVsbHx8T2Uoayk/bChrKToodC5lbnRlcigiY29kZUZlbmNlZEZlbmNlTWV0YSIpLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx5KGspKX1mdW5jdGlvbiB5KGspe3JldHVybiBrPT09bnVsbHx8T2Uoayk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQoImNvZGVGZW5jZWRGZW5jZU1ldGEiKSxsKGspKTprPT09OTYmJms9PT1vP2Eoayk6KHQuY29uc3VtZShrKSx5KX1mdW5jdGlvbiB2KGspe3JldHVybiB0LmF0dGVtcHQocixGLG0pKGspfWZ1bmN0aW9uIG0oayl7cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoayksdC5leGl0KCJsaW5lRW5kaW5nIikseH1mdW5jdGlvbiB4KGspe3JldHVybiBzPjAmJlFlKGspP2l0KHQsTSwibGluZVByZWZpeCIscysxKShrKTpNKGspfWZ1bmN0aW9uIE0oayl7cmV0dXJuIGs9PT1udWxsfHxPZShrKT90LmNoZWNrKGtuZSx2LEYpKGspOih0LmVudGVyKCJjb2RlRmxvd1ZhbHVlIiksUyhrKSl9ZnVuY3Rpb24gUyhrKXtyZXR1cm4gaz09PW51bGx8fE9lKGspPyh0LmV4aXQoImNvZGVGbG93VmFsdWUiKSxNKGspKToodC5jb25zdW1lKGspLFMpfWZ1bmN0aW9uIEYoayl7cmV0dXJuIHQuZXhpdCgiY29kZUZlbmNlZCIpLGUoayl9ZnVuY3Rpb24gXyhrLE4sTCl7bGV0IEE9MDtyZXR1cm4gcTtmdW5jdGlvbiBxKCQpe3JldHVybiBrLmVudGVyKCJsaW5lRW5kaW5nIiksay5jb25zdW1lKCQpLGsuZXhpdCgibGluZUVuZGluZyIpLEN9ZnVuY3Rpb24gQygkKXtyZXR1cm4gay5lbnRlcigiY29kZUZlbmNlZEZlbmNlIiksUWUoJCk/aXQoayx6LCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKCQpOnooJCl9ZnVuY3Rpb24geigkKXtyZXR1cm4gJD09PW8/KGsuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksRSgkKSk6TCgkKX1mdW5jdGlvbiBFKCQpe3JldHVybiAkPT09bz8oQSsrLGsuY29uc3VtZSgkKSxFKTpBPj1uPyhrLmV4aXQoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksUWUoJCk/aXQoayxULCJ3aGl0ZXNwYWNlIikoJCk6VCgkKSk6TCgkKX1mdW5jdGlvbiBUKCQpe3JldHVybiAkPT09bnVsbHx8T2UoJCk/KGsuZXhpdCgiY29kZUZlbmNlZEZlbmNlIiksTigkKSk6TCgkKX19fWZ1bmN0aW9uIFVJdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG4pe3JldHVybiBuPT09bnVsbD9hKG4pOih0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG4pLHQuZXhpdCgibGluZUVuZGluZyIpLHMpfWZ1bmN0aW9uIHMobil7cmV0dXJuIGkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9hKG4pOmUobil9fXZhciBrbmUscTksU25lPWIoKCk9PntSMSgpOyR0KCk7a25lPXtwYXJ0aWFsOiEwLHRva2VuaXplOlVJdH0scTk9e2NvbmNyZXRlOiEwLG5hbWU6ImNvZGVGZW5jZWQiLHRva2VuaXplOmpJdH19KTtmdW5jdGlvbiBHSXQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihjKXtyZXR1cm4gdC5lbnRlcigiY29kZUluZGVudGVkIiksaXQodCxzLCJsaW5lUHJlZml4Iiw1KShjKX1mdW5jdGlvbiBzKGMpe2xldCBwPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gcCYmcFsxXS50eXBlPT09ImxpbmVQcmVmaXgiJiZwWzJdLnNsaWNlU2VyaWFsaXplKHBbMV0sITApLmxlbmd0aD49ND9uKGMpOmEoYyl9ZnVuY3Rpb24gbihjKXtyZXR1cm4gYz09PW51bGw/ZChjKTpPZShjKT90LmF0dGVtcHQoV0l0LG4sZCkoYyk6KHQuZW50ZXIoImNvZGVGbG93VmFsdWUiKSxvKGMpKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjPT09bnVsbHx8T2UoYyk/KHQuZXhpdCgiY29kZUZsb3dWYWx1ZSIpLG4oYykpOih0LmNvbnN1bWUoYyksbyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gdC5leGl0KCJjb2RlSW5kZW50ZWQiKSxlKGMpfX1mdW5jdGlvbiBZSXQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihuKXtyZXR1cm4gaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP2Eobik6T2Uobik/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobiksdC5leGl0KCJsaW5lRW5kaW5nIikscik6aXQodCxzLCJsaW5lUHJlZml4Iiw1KShuKX1mdW5jdGlvbiBzKG4pe2xldCBvPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09ImxpbmVQcmVmaXgiJiZvWzJdLnNsaWNlU2VyaWFsaXplKG9bMV0sITApLmxlbmd0aD49ND9lKG4pOk9lKG4pP3Iobik6YShuKX19dmFyIFU2LFdJdCxDbmU9YigoKT0+e1IxKCk7JHQoKTtVNj17bmFtZToiY29kZUluZGVudGVkIix0b2tlbml6ZTpHSXR9LFdJdD17cGFydGlhbDohMCx0b2tlbml6ZTpZSXR9fSk7ZnVuY3Rpb24gWkl0KHQpe2xldCBlPXQubGVuZ3RoLTQsYT0zLGkscjtpZigodFthXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHx0W2FdWzFdLnR5cGU9PT0ic3BhY2UiKSYmKHRbZV1bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8dFtlXVsxXS50eXBlPT09InNwYWNlIikpe2ZvcihpPWE7KytpPGU7KWlmKHRbaV1bMV0udHlwZT09PSJjb2RlVGV4dERhdGEiKXt0W2FdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIsdFtlXVsxXS50eXBlPSJjb2RlVGV4dFBhZGRpbmciLGErPTIsZS09MjticmVha319Zm9yKGk9YS0xLGUrKzsrK2k8PWU7KXI9PT12b2lkIDA/aSE9PWUmJnRbaV1bMV0udHlwZSE9PSJsaW5lRW5kaW5nIiYmKHI9aSk6KGk9PT1lfHx0W2ldWzFdLnR5cGU9PT0ibGluZUVuZGluZyIpJiYodFtyXVsxXS50eXBlPSJjb2RlVGV4dERhdGEiLGkhPT1yKzImJih0W3JdWzFdLmVuZD10W2ktMV1bMV0uZW5kLHQuc3BsaWNlKHIrMixpLXItMiksZS09aS1yLTIsaT1yKzIpLHI9dm9pZCAwKTtyZXR1cm4gdH1mdW5jdGlvbiBYSXQodCl7cmV0dXJuIHQhPT05Nnx8dGhpcy5ldmVudHNbdGhpcy5ldmVudHMubGVuZ3RoLTFdWzFdLnR5cGU9PT0iY2hhcmFjdGVyRXNjYXBlIn1mdW5jdGlvbiBLSXQodCxlLGEpe2xldCBpPXRoaXMscj0wLHMsbjtyZXR1cm4gbztmdW5jdGlvbiBvKGYpe3JldHVybiB0LmVudGVyKCJjb2RlVGV4dCIpLHQuZW50ZXIoImNvZGVUZXh0U2VxdWVuY2UiKSxkKGYpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGY9PT05Nj8odC5jb25zdW1lKGYpLHIrKyxkKToodC5leGl0KCJjb2RlVGV4dFNlcXVlbmNlIiksYyhmKSl9ZnVuY3Rpb24gYyhmKXtyZXR1cm4gZj09PW51bGw/YShmKTpmPT09MzI/KHQuZW50ZXIoInNwYWNlIiksdC5jb25zdW1lKGYpLHQuZXhpdCgic3BhY2UiKSxjKTpmPT09OTY/KG49dC5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLHM9MCxsKGYpKTpPZShmKT8odC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShmKSx0LmV4aXQoImxpbmVFbmRpbmciKSxjKToodC5lbnRlcigiY29kZVRleHREYXRhIikscChmKSl9ZnVuY3Rpb24gcChmKXtyZXR1cm4gZj09PW51bGx8fGY9PT0zMnx8Zj09PTk2fHxPZShmKT8odC5leGl0KCJjb2RlVGV4dERhdGEiKSxjKGYpKToodC5jb25zdW1lKGYpLHApfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGY9PT05Nj8odC5jb25zdW1lKGYpLHMrKyxsKTpzPT09cj8odC5leGl0KCJjb2RlVGV4dFNlcXVlbmNlIiksdC5leGl0KCJjb2RlVGV4dCIpLGUoZikpOihuLnR5cGU9ImNvZGVUZXh0RGF0YSIscChmKSl9fXZhciBaVCxfbmU9YigoKT0+eyR0KCk7WlQ9e25hbWU6ImNvZGVUZXh0IixwcmV2aW91czpYSXQscmVzb2x2ZTpaSXQsdG9rZW5pemU6S0l0fX0pO2Z1bmN0aW9uIFc2KHQsZSl7bGV0IGE9MDtpZihlLmxlbmd0aDwxZTQpdC5wdXNoKC4uLmUpO2Vsc2UgZm9yKDthPGUubGVuZ3RoOyl0LnB1c2goLi4uZS5zbGljZShhLGErMWU0KSksYSs9MWU0fXZhciBHNixYVD1iKCgpPT57RzY9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5sZWZ0PWU/Wy4uLmVdOltdLHRoaXMucmlnaHQ9W119Z2V0KGUpe2lmKGU8MHx8ZT49dGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ2Fubm90IGFjY2VzcyBpbmRleCBgIitlKyJgIGluIGEgc3BsaWNlIGJ1ZmZlciBvZiBzaXplIGAiKyh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKSsiYCIpO3JldHVybiBlPHRoaXMubGVmdC5sZW5ndGg/dGhpcy5sZWZ0W2VdOnRoaXMucmlnaHRbdGhpcy5yaWdodC5sZW5ndGgtZSt0aGlzLmxlZnQubGVuZ3RoLTFdfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aH1zaGlmdCgpe3JldHVybiB0aGlzLnNldEN1cnNvcigwKSx0aGlzLnJpZ2h0LnBvcCgpfXNsaWNlKGUsYSl7bGV0IGk9YT8/TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiBpPHRoaXMubGVmdC5sZW5ndGg/dGhpcy5sZWZ0LnNsaWNlKGUsaSk6ZT50aGlzLmxlZnQubGVuZ3RoP3RoaXMucmlnaHQuc2xpY2UodGhpcy5yaWdodC5sZW5ndGgtaSt0aGlzLmxlZnQubGVuZ3RoLHRoaXMucmlnaHQubGVuZ3RoLWUrdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpOnRoaXMubGVmdC5zbGljZShlKS5jb25jYXQodGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1pK3RoaXMubGVmdC5sZW5ndGgpLnJldmVyc2UoKSl9c3BsaWNlKGUsYSxpKXtsZXQgcj1hfHwwO3RoaXMuc2V0Q3Vyc29yKE1hdGgudHJ1bmMoZSkpO2xldCBzPXRoaXMucmlnaHQuc3BsaWNlKHRoaXMucmlnaHQubGVuZ3RoLXIsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtyZXR1cm4gaSYmVzYodGhpcy5sZWZ0LGkpLHMucmV2ZXJzZSgpfXBvcCgpe3JldHVybiB0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHRoaXMubGVmdC5wb3AoKX1wdXNoKGUpe3RoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnB1c2goZSl9cHVzaE1hbnkoZSl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSxXNih0aGlzLmxlZnQsZSl9dW5zaGlmdChlKXt0aGlzLnNldEN1cnNvcigwKSx0aGlzLnJpZ2h0LnB1c2goZSl9dW5zaGlmdE1hbnkoZSl7dGhpcy5zZXRDdXJzb3IoMCksVzYodGhpcy5yaWdodCxlLnJldmVyc2UoKSl9c2V0Q3Vyc29yKGUpe2lmKCEoZT09PXRoaXMubGVmdC5sZW5ndGh8fGU+dGhpcy5sZWZ0Lmxlbmd0aCYmdGhpcy5yaWdodC5sZW5ndGg9PT0wfHxlPDAmJnRoaXMubGVmdC5sZW5ndGg9PT0wKSlpZihlPHRoaXMubGVmdC5sZW5ndGgpe2xldCBhPXRoaXMubGVmdC5zcGxpY2UoZSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO1c2KHRoaXMucmlnaHQsYS5yZXZlcnNlKCkpfWVsc2V7bGV0IGE9dGhpcy5yaWdodC5zcGxpY2UodGhpcy5sZWZ0Lmxlbmd0aCt0aGlzLnJpZ2h0Lmxlbmd0aC1lLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7VzYodGhpcy5sZWZ0LGEucmV2ZXJzZSgpKX19fX0pO2Z1bmN0aW9uIFY5KHQpe2xldCBlPXt9LGE9LTEsaSxyLHMsbixvLGQsYyxwPW5ldyBHNih0KTtmb3IoOysrYTxwLmxlbmd0aDspe2Zvcig7YSBpbiBlOylhPWVbYV07aWYoaT1wLmdldChhKSxhJiZpWzFdLnR5cGU9PT0iY2h1bmtGbG93IiYmcC5nZXQoYS0xKVsxXS50eXBlPT09Imxpc3RJdGVtUHJlZml4IiYmKGQ9aVsxXS5fdG9rZW5pemVyLmV2ZW50cyxzPTAsczxkLmxlbmd0aCYmZFtzXVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayImJihzKz0yKSxzPGQubGVuZ3RoJiZkW3NdWzFdLnR5cGU9PT0iY29udGVudCIpKWZvcig7KytzPGQubGVuZ3RoJiZkW3NdWzFdLnR5cGUhPT0iY29udGVudCI7KWRbc11bMV0udHlwZT09PSJjaHVua1RleHQiJiYoZFtzXVsxXS5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITAscysrKTtpZihpWzBdPT09ImVudGVyIilpWzFdLmNvbnRlbnRUeXBlJiYoT2JqZWN0LmFzc2lnbihlLFFJdChwLGEpKSxhPWVbYV0sYz0hMCk7ZWxzZSBpZihpWzFdLl9jb250YWluZXIpe2ZvcihzPWEscj12b2lkIDA7cy0tOylpZihuPXAuZ2V0KHMpLG5bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8blsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpblswXT09PSJlbnRlciImJihyJiYocC5nZXQocilbMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIiksblsxXS50eXBlPSJsaW5lRW5kaW5nIixyPXMpO2Vsc2UgaWYoIShuWzFdLnR5cGU9PT0ibGluZVByZWZpeCJ8fG5bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCIpKWJyZWFrO3ImJihpWzFdLmVuZD17Li4ucC5nZXQocilbMV0uc3RhcnR9LG89cC5zbGljZShyLGEpLG8udW5zaGlmdChpKSxwLnNwbGljZShyLGEtcisxLG8pKX19cmV0dXJuIE8xKHQsMCxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscC5zbGljZSgwKSksIWN9ZnVuY3Rpb24gUUl0KHQsZSl7bGV0IGE9dC5nZXQoZSlbMV0saT10LmdldChlKVsyXSxyPWUtMSxzPVtdLG49YS5fdG9rZW5pemVyO258fChuPWkucGFyc2VyW2EuY29udGVudFR5cGVdKGEuc3RhcnQpLGEuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nJiYobi5fY29udGVudFR5cGVUZXh0VHJhaWxpbmc9ITApKTtsZXQgbz1uLmV2ZW50cyxkPVtdLGM9e30scCxsLGY9LTEsZz1hLHk9MCx2PTAsbT1bdl07Zm9yKDtnOyl7Zm9yKDt0LmdldCgrK3IpWzFdIT09ZzspO3MucHVzaChyKSxnLl90b2tlbml6ZXJ8fChwPWkuc2xpY2VTdHJlYW0oZyksZy5uZXh0fHxwLnB1c2gobnVsbCksbCYmbi5kZWZpbmVTa2lwKGcuc3RhcnQpLGcuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtJiYobi5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtPSEwKSxuLndyaXRlKHApLGcuX2lzSW5GaXJzdENvbnRlbnRPZkxpc3RJdGVtJiYobi5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtPXZvaWQgMCkpLGw9ZyxnPWcubmV4dH1mb3IoZz1hOysrZjxvLmxlbmd0aDspb1tmXVswXT09PSJleGl0IiYmb1tmLTFdWzBdPT09ImVudGVyIiYmb1tmXVsxXS50eXBlPT09b1tmLTFdWzFdLnR5cGUmJm9bZl1bMV0uc3RhcnQubGluZSE9PW9bZl1bMV0uZW5kLmxpbmUmJih2PWYrMSxtLnB1c2godiksZy5fdG9rZW5pemVyPXZvaWQgMCxnLnByZXZpb3VzPXZvaWQgMCxnPWcubmV4dCk7Zm9yKG4uZXZlbnRzPVtdLGc/KGcuX3Rva2VuaXplcj12b2lkIDAsZy5wcmV2aW91cz12b2lkIDApOm0ucG9wKCksZj1tLmxlbmd0aDtmLS07KXtsZXQgeD1vLnNsaWNlKG1bZl0sbVtmKzFdKSxNPXMucG9wKCk7ZC5wdXNoKFtNLE0reC5sZW5ndGgtMV0pLHQuc3BsaWNlKE0sMix4KX1mb3IoZC5yZXZlcnNlKCksZj0tMTsrK2Y8ZC5sZW5ndGg7KWNbeStkW2ZdWzBdXT15K2RbZl1bMV0seSs9ZFtmXVsxXS1kW2ZdWzBdLTE7cmV0dXJuIGN9dmFyIEtUPWIoKCk9PnskcigpO1hUKCk7WFQoKX0pO2Z1bmN0aW9uIGVOdCh0KXtyZXR1cm4gVjkodCksdH1mdW5jdGlvbiB0TnQodCxlKXtsZXQgYTtyZXR1cm4gaTtmdW5jdGlvbiBpKG8pe3JldHVybiB0LmVudGVyKCJjb250ZW50IiksYT10LmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCJ9KSxyKG8pfWZ1bmN0aW9uIHIobyl7cmV0dXJuIG89PT1udWxsP3Mobyk6T2Uobyk/dC5jaGVjayhKSXQsbixzKShvKToodC5jb25zdW1lKG8pLHIpfWZ1bmN0aW9uIHMobyl7cmV0dXJuIHQuZXhpdCgiY2h1bmtDb250ZW50IiksdC5leGl0KCJjb250ZW50IiksZShvKX1mdW5jdGlvbiBuKG8pe3JldHVybiB0LmNvbnN1bWUobyksdC5leGl0KCJjaHVua0NvbnRlbnQiKSxhLm5leHQ9dC5lbnRlcigiY2h1bmtDb250ZW50Iix7Y29udGVudFR5cGU6ImNvbnRlbnQiLHByZXZpb3VzOmF9KSxhPWEubmV4dCxyfX1mdW5jdGlvbiBhTnQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihuKXtyZXR1cm4gdC5leGl0KCJjaHVua0NvbnRlbnQiKSx0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKG4pLHQuZXhpdCgibGluZUVuZGluZyIpLGl0KHQscywibGluZVByZWZpeCIpfWZ1bmN0aW9uIHMobil7aWYobj09PW51bGx8fE9lKG4pKXJldHVybiBhKG4pO2xldCBvPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4haS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpJiZvJiZvWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPj00P2Uobik6dC5pbnRlcnJ1cHQoaS5wYXJzZXIuY29uc3RydWN0cy5mbG93LGEsZSkobil9fXZhciBRVCxKSXQsVG5lPWIoKCk9PntSMSgpOyR0KCk7S1QoKTtRVD17cmVzb2x2ZTplTnQsdG9rZW5pemU6dE50fSxKSXQ9e3BhcnRpYWw6ITAsdG9rZW5pemU6YU50fX0pO2Z1bmN0aW9uIGo5KHQsZSxhLGkscixzLG4sbyxkKXtsZXQgYz1kfHxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscD0wO3JldHVybiBsO2Z1bmN0aW9uIGwoeCl7cmV0dXJuIHg9PT02MD8odC5lbnRlcihpKSx0LmVudGVyKHIpLHQuZW50ZXIocyksdC5jb25zdW1lKHgpLHQuZXhpdChzKSxmKTp4PT09bnVsbHx8eD09PTMyfHx4PT09NDF8fGcwKHgpP2EoeCk6KHQuZW50ZXIoaSksdC5lbnRlcihuKSx0LmVudGVyKG8pLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx2KHgpKX1mdW5jdGlvbiBmKHgpe3JldHVybiB4PT09NjI/KHQuZW50ZXIocyksdC5jb25zdW1lKHgpLHQuZXhpdChzKSx0LmV4aXQociksdC5leGl0KGkpLGUpOih0LmVudGVyKG8pLHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxnKHgpKX1mdW5jdGlvbiBnKHgpe3JldHVybiB4PT09NjI/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQobyksZih4KSk6eD09PW51bGx8fHg9PT02MHx8T2UoeCk/YSh4KToodC5jb25zdW1lKHgpLHg9PT05Mj95OmcpfWZ1bmN0aW9uIHkoeCl7cmV0dXJuIHg9PT02MHx8eD09PTYyfHx4PT09OTI/KHQuY29uc3VtZSh4KSxnKTpnKHgpfWZ1bmN0aW9uIHYoeCl7cmV0dXJuIXAmJih4PT09bnVsbHx8eD09PTQxfHxfdCh4KSk/KHQuZXhpdCgiY2h1bmtTdHJpbmciKSx0LmV4aXQobyksdC5leGl0KG4pLHQuZXhpdChpKSxlKHgpKTpwPGMmJng9PT00MD8odC5jb25zdW1lKHgpLHArKyx2KTp4PT09NDE/KHQuY29uc3VtZSh4KSxwLS0sdik6eD09PW51bGx8fHg9PT0zMnx8eD09PTQwfHxnMCh4KT9hKHgpOih0LmNvbnN1bWUoeCkseD09PTkyP206dil9ZnVuY3Rpb24gbSh4KXtyZXR1cm4geD09PTQwfHx4PT09NDF8fHg9PT05Mj8odC5jb25zdW1lKHgpLHYpOnYoeCl9fXZhciBKVD1iKCgpPT57JHQoKX0pO2Z1bmN0aW9uIFU5KHQsZSxhLGkscixzKXtsZXQgbj10aGlzLG89MCxkO3JldHVybiBjO2Z1bmN0aW9uIGMoZyl7cmV0dXJuIHQuZW50ZXIoaSksdC5lbnRlcihyKSx0LmNvbnN1bWUoZyksdC5leGl0KHIpLHQuZW50ZXIocykscH1mdW5jdGlvbiBwKGcpe3JldHVybiBvPjk5OXx8Zz09PW51bGx8fGc9PT05MXx8Zz09PTkzJiYhZHx8Zz09PTk0JiYhbyYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gbi5wYXJzZXIuY29uc3RydWN0cz9hKGcpOmc9PT05Mz8odC5leGl0KHMpLHQuZW50ZXIociksdC5jb25zdW1lKGcpLHQuZXhpdChyKSx0LmV4aXQoaSksZSk6T2UoZyk/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoZyksdC5leGl0KCJsaW5lRW5kaW5nIikscCk6KHQuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxsKGcpKX1mdW5jdGlvbiBsKGcpe3JldHVybiBnPT09bnVsbHx8Zz09PTkxfHxnPT09OTN8fE9lKGcpfHxvKys+OTk5Pyh0LmV4aXQoImNodW5rU3RyaW5nIikscChnKSk6KHQuY29uc3VtZShnKSxkfHwoZD0hUWUoZykpLGc9PT05Mj9mOmwpfWZ1bmN0aW9uIGYoZyl7cmV0dXJuIGc9PT05MXx8Zz09PTkyfHxnPT09OTM/KHQuY29uc3VtZShnKSxvKyssbCk6bChnKX19dmFyIGVMPWIoKCk9PnskdCgpfSk7ZnVuY3Rpb24gVzkodCxlLGEsaSxyLHMpe2xldCBuO3JldHVybiBvO2Z1bmN0aW9uIG8oZil7cmV0dXJuIGY9PT0zNHx8Zj09PTM5fHxmPT09NDA/KHQuZW50ZXIoaSksdC5lbnRlcihyKSx0LmNvbnN1bWUoZiksdC5leGl0KHIpLG49Zj09PTQwPzQxOmYsZCk6YShmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09bj8odC5lbnRlcihyKSx0LmNvbnN1bWUoZiksdC5leGl0KHIpLHQuZXhpdChpKSxlKToodC5lbnRlcihzKSxjKGYpKX1mdW5jdGlvbiBjKGYpe3JldHVybiBmPT09bj8odC5leGl0KHMpLGQobikpOmY9PT1udWxsP2EoZik6T2UoZik/KHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUoZiksdC5leGl0KCJsaW5lRW5kaW5nIiksaXQodCxjLCJsaW5lUHJlZml4IikpOih0LmVudGVyKCJjaHVua1N0cmluZyIse2NvbnRlbnRUeXBlOiJzdHJpbmcifSkscChmKSl9ZnVuY3Rpb24gcChmKXtyZXR1cm4gZj09PW58fGY9PT1udWxsfHxPZShmKT8odC5leGl0KCJjaHVua1N0cmluZyIpLGMoZikpOih0LmNvbnN1bWUoZiksZj09PTkyP2w6cCl9ZnVuY3Rpb24gbChmKXtyZXR1cm4gZj09PW58fGY9PT05Mj8odC5jb25zdW1lKGYpLHApOnAoZil9fXZhciB0TD1iKCgpPT57UjEoKTskdCgpfSk7ZnVuY3Rpb24gejAodCxlKXtsZXQgYTtyZXR1cm4gaTtmdW5jdGlvbiBpKHIpe3JldHVybiBPZShyKT8odC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShyKSx0LmV4aXQoImxpbmVFbmRpbmciKSxhPSEwLGkpOlFlKHIpP2l0KHQsaSxhPyJsaW5lUHJlZml4IjoibGluZVN1ZmZpeCIpKHIpOmUocil9fXZhciBhTD1iKCgpPT57UjEoKTskdCgpfSk7ZnVuY3Rpb24gck50KHQsZSxhKXtsZXQgaT10aGlzLHI7cmV0dXJuIHM7ZnVuY3Rpb24gcyhnKXtyZXR1cm4gdC5lbnRlcigiZGVmaW5pdGlvbiIpLG4oZyl9ZnVuY3Rpb24gbihnKXtyZXR1cm4gVTkuY2FsbChpLHQsbyxhLCJkZWZpbml0aW9uTGFiZWwiLCJkZWZpbml0aW9uTGFiZWxNYXJrZXIiLCJkZWZpbml0aW9uTGFiZWxTdHJpbmciKShnKX1mdW5jdGlvbiBvKGcpe3JldHVybiByPVAxKGkuc2xpY2VTZXJpYWxpemUoaS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSksZz09PTU4Pyh0LmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksdC5jb25zdW1lKGcpLHQuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLGQpOmEoZyl9ZnVuY3Rpb24gZChnKXtyZXR1cm4gX3QoZyk/ejAodCxjKShnKTpjKGcpfWZ1bmN0aW9uIGMoZyl7cmV0dXJuIGo5KHQscCxhLCJkZWZpbml0aW9uRGVzdGluYXRpb24iLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsImRlZmluaXRpb25EZXN0aW5hdGlvblJhdyIsImRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZyIpKGcpfWZ1bmN0aW9uIHAoZyl7cmV0dXJuIHQuYXR0ZW1wdChpTnQsbCxsKShnKX1mdW5jdGlvbiBsKGcpe3JldHVybiBRZShnKT9pdCh0LGYsIndoaXRlc3BhY2UiKShnKTpmKGcpfWZ1bmN0aW9uIGYoZyl7cmV0dXJuIGc9PT1udWxsfHxPZShnKT8odC5leGl0KCJkZWZpbml0aW9uIiksaS5wYXJzZXIuZGVmaW5lZC5wdXNoKHIpLGUoZykpOmEoZyl9fWZ1bmN0aW9uIHNOdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShvKXtyZXR1cm4gX3Qobyk/ejAodCxyKShvKTphKG8pfWZ1bmN0aW9uIHIobyl7cmV0dXJuIFc5KHQscyxhLCJkZWZpbml0aW9uVGl0bGUiLCJkZWZpbml0aW9uVGl0bGVNYXJrZXIiLCJkZWZpbml0aW9uVGl0bGVTdHJpbmciKShvKX1mdW5jdGlvbiBzKG8pe3JldHVybiBRZShvKT9pdCh0LG4sIndoaXRlc3BhY2UiKShvKTpuKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT1udWxsfHxPZShvKT9lKG8pOmEobyl9fXZhciBpTCxpTnQsTG5lPWIoKCk9PntKVCgpO2VMKCk7UjEoKTt0TCgpO2FMKCk7JHQoKTtSbigpO2lMPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTpyTnR9LGlOdD17cGFydGlhbDohMCx0b2tlbml6ZTpzTnR9fSk7ZnVuY3Rpb24gbk50KHQsZSxhKXtyZXR1cm4gaTtmdW5jdGlvbiBpKHMpe3JldHVybiB0LmVudGVyKCJoYXJkQnJlYWtFc2NhcGUiKSx0LmNvbnN1bWUocykscn1mdW5jdGlvbiByKHMpe3JldHVybiBPZShzKT8odC5leGl0KCJoYXJkQnJlYWtFc2NhcGUiKSxlKHMpKTphKHMpfX12YXIgckwsJG5lPWIoKCk9PnskdCgpO3JMPXtuYW1lOiJoYXJkQnJlYWtFc2NhcGUiLHRva2VuaXplOm5OdH19KTtmdW5jdGlvbiBvTnQodCxlKXtsZXQgYT10Lmxlbmd0aC0yLGk9MyxyLHM7cmV0dXJuIHRbaV1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKGkrPTIpLGEtMj5pJiZ0W2FdWzFdLnR5cGU9PT0id2hpdGVzcGFjZSImJihhLT0yKSx0W2FdWzFdLnR5cGU9PT0iYXR4SGVhZGluZ1NlcXVlbmNlIiYmKGk9PT1hLTF8fGEtND5pJiZ0W2EtMl1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIikmJihhLT1pKzE9PT1hPzI6NCksYT5pJiYocj17dHlwZToiYXR4SGVhZGluZ1RleHQiLHN0YXJ0OnRbaV1bMV0uc3RhcnQsZW5kOnRbYV1bMV0uZW5kfSxzPXt0eXBlOiJjaHVua1RleHQiLHN0YXJ0OnRbaV1bMV0uc3RhcnQsZW5kOnRbYV1bMV0uZW5kLGNvbnRlbnRUeXBlOiJ0ZXh0In0sTzEodCxpLGEtaSsxLFtbImVudGVyIixyLGVdLFsiZW50ZXIiLHMsZV0sWyJleGl0IixzLGVdLFsiZXhpdCIscixlXV0pKSx0fWZ1bmN0aW9uIGxOdCh0LGUsYSl7bGV0IGk9MDtyZXR1cm4gcjtmdW5jdGlvbiByKHApe3JldHVybiB0LmVudGVyKCJhdHhIZWFkaW5nIikscyhwKX1mdW5jdGlvbiBzKHApe3JldHVybiB0LmVudGVyKCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxuKHApfWZ1bmN0aW9uIG4ocCl7cmV0dXJuIHA9PT0zNSYmaSsrPDY/KHQuY29uc3VtZShwKSxuKTpwPT09bnVsbHx8X3QocCk/KHQuZXhpdCgiYXR4SGVhZGluZ1NlcXVlbmNlIiksbyhwKSk6YShwKX1mdW5jdGlvbiBvKHApe3JldHVybiBwPT09MzU/KHQuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLGQocCkpOnA9PT1udWxsfHxPZShwKT8odC5leGl0KCJhdHhIZWFkaW5nIiksZShwKSk6UWUocCk/aXQodCxvLCJ3aGl0ZXNwYWNlIikocCk6KHQuZW50ZXIoImF0eEhlYWRpbmdUZXh0IiksYyhwKSl9ZnVuY3Rpb24gZChwKXtyZXR1cm4gcD09PTM1Pyh0LmNvbnN1bWUocCksZCk6KHQuZXhpdCgiYXR4SGVhZGluZ1NlcXVlbmNlIiksbyhwKSl9ZnVuY3Rpb24gYyhwKXtyZXR1cm4gcD09PW51bGx8fHA9PT0zNXx8X3QocCk/KHQuZXhpdCgiYXR4SGVhZGluZ1RleHQiKSxvKHApKToodC5jb25zdW1lKHApLGMpfX12YXIgc0wsQW5lPWIoKCk9PntSMSgpOyR0KCk7JHIoKTtzTD17bmFtZToiaGVhZGluZ0F0eCIscmVzb2x2ZTpvTnQsdG9rZW5pemU6bE50fX0pO3ZhciBEbmUsbkwsRW5lPWIoKCk9PntEbmU9WyJhZGRyZXNzIiwiYXJ0aWNsZSIsImFzaWRlIiwiYmFzZSIsImJhc2Vmb250IiwiYmxvY2txdW90ZSIsImJvZHkiLCJjYXB0aW9uIiwiY2VudGVyIiwiY29sIiwiY29sZ3JvdXAiLCJkZCIsImRldGFpbHMiLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZmllbGRzZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9vdGVyIiwiZm9ybSIsImZyYW1lIiwiZnJhbWVzZXQiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1lbnUiLCJtZW51aXRlbSIsIm5hdiIsIm5vZnJhbWVzIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsInAiLCJwYXJhbSIsInNlYXJjaCIsInNlY3Rpb24iLCJzdW1tYXJ5IiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInRyYWNrIiwidWwiXSxuTD1bInByZSIsInNjcmlwdCIsInN0eWxlIiwidGV4dGFyZWEiXX0pO2Z1bmN0aW9uIHBOdCh0KXtsZXQgZT10Lmxlbmd0aDtmb3IoO2UtLSYmISh0W2VdWzBdPT09ImVudGVyIiYmdFtlXVsxXS50eXBlPT09Imh0bWxGbG93Iik7KTtyZXR1cm4gZT4xJiZ0W2UtMl1bMV0udHlwZT09PSJsaW5lUHJlZml4IiYmKHRbZV1bMV0uc3RhcnQ9dFtlLTJdWzFdLnN0YXJ0LHRbZSsxXVsxXS5zdGFydD10W2UtMl1bMV0uc3RhcnQsdC5zcGxpY2UoZS0yLDIpKSx0fWZ1bmN0aW9uIGhOdCh0LGUsYSl7bGV0IGk9dGhpcyxyLHMsbixvLGQ7cmV0dXJuIGM7ZnVuY3Rpb24gYyhIKXtyZXR1cm4gcChIKX1mdW5jdGlvbiBwKEgpe3JldHVybiB0LmVudGVyKCJodG1sRmxvdyIpLHQuZW50ZXIoImh0bWxGbG93RGF0YSIpLHQuY29uc3VtZShIKSxsfWZ1bmN0aW9uIGwoSCl7cmV0dXJuIEg9PT0zMz8odC5jb25zdW1lKEgpLGYpOkg9PT00Nz8odC5jb25zdW1lKEgpLHM9ITAsdik6SD09PTYzPyh0LmNvbnN1bWUoSCkscj0zLGkuaW50ZXJydXB0P2U6aik6YTIoSCk/KHQuY29uc3VtZShIKSxuPVN0cmluZy5mcm9tQ2hhckNvZGUoSCksbSk6YShIKX1mdW5jdGlvbiBmKEgpe3JldHVybiBIPT09NDU/KHQuY29uc3VtZShIKSxyPTIsZyk6SD09PTkxPyh0LmNvbnN1bWUoSCkscj01LG89MCx5KTphMihIKT8odC5jb25zdW1lKEgpLHI9NCxpLmludGVycnVwdD9lOmopOmEoSCl9ZnVuY3Rpb24gZyhIKXtyZXR1cm4gSD09PTQ1Pyh0LmNvbnN1bWUoSCksaS5pbnRlcnJ1cHQ/ZTpqKTphKEgpfWZ1bmN0aW9uIHkoSCl7bGV0IGNlPSJDREFUQVsiO3JldHVybiBIPT09Y2UuY2hhckNvZGVBdChvKyspPyh0LmNvbnN1bWUoSCksbz09PWNlLmxlbmd0aD9pLmludGVycnVwdD9lOno6eSk6YShIKX1mdW5jdGlvbiB2KEgpe3JldHVybiBhMihIKT8odC5jb25zdW1lKEgpLG49U3RyaW5nLmZyb21DaGFyQ29kZShIKSxtKTphKEgpfWZ1bmN0aW9uIG0oSCl7aWYoSD09PW51bGx8fEg9PT00N3x8SD09PTYyfHxfdChIKSl7bGV0IGNlPUg9PT00NyxrZT1uLnRvTG93ZXJDYXNlKCk7cmV0dXJuIWNlJiYhcyYmbkwuaW5jbHVkZXMoa2UpPyhyPTEsaS5pbnRlcnJ1cHQ/ZShIKTp6KEgpKTpEbmUuaW5jbHVkZXMobi50b0xvd2VyQ2FzZSgpKT8ocj02LGNlPyh0LmNvbnN1bWUoSCkseCk6aS5pbnRlcnJ1cHQ/ZShIKTp6KEgpKToocj03LGkuaW50ZXJydXB0JiYhaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP2EoSCk6cz9NKEgpOlMoSCkpfXJldHVybiBIPT09NDV8fEUxKEgpPyh0LmNvbnN1bWUoSCksbis9U3RyaW5nLmZyb21DaGFyQ29kZShIKSxtKTphKEgpfWZ1bmN0aW9uIHgoSCl7cmV0dXJuIEg9PT02Mj8odC5jb25zdW1lKEgpLGkuaW50ZXJydXB0P2U6eik6YShIKX1mdW5jdGlvbiBNKEgpe3JldHVybiBRZShIKT8odC5jb25zdW1lKEgpLE0pOnEoSCl9ZnVuY3Rpb24gUyhIKXtyZXR1cm4gSD09PTQ3Pyh0LmNvbnN1bWUoSCkscSk6SD09PTU4fHxIPT09OTV8fGEyKEgpPyh0LmNvbnN1bWUoSCksRik6UWUoSCk/KHQuY29uc3VtZShIKSxTKTpxKEgpfWZ1bmN0aW9uIEYoSCl7cmV0dXJuIEg9PT00NXx8SD09PTQ2fHxIPT09NTh8fEg9PT05NXx8RTEoSCk/KHQuY29uc3VtZShIKSxGKTpfKEgpfWZ1bmN0aW9uIF8oSCl7cmV0dXJuIEg9PT02MT8odC5jb25zdW1lKEgpLGspOlFlKEgpPyh0LmNvbnN1bWUoSCksXyk6UyhIKX1mdW5jdGlvbiBrKEgpe3JldHVybiBIPT09bnVsbHx8SD09PTYwfHxIPT09NjF8fEg9PT02Mnx8SD09PTk2P2EoSCk6SD09PTM0fHxIPT09Mzk/KHQuY29uc3VtZShIKSxkPUgsTik6UWUoSCk/KHQuY29uc3VtZShIKSxrKTpMKEgpfWZ1bmN0aW9uIE4oSCl7cmV0dXJuIEg9PT1kPyh0LmNvbnN1bWUoSCksZD1udWxsLEEpOkg9PT1udWxsfHxPZShIKT9hKEgpOih0LmNvbnN1bWUoSCksTil9ZnVuY3Rpb24gTChIKXtyZXR1cm4gSD09PW51bGx8fEg9PT0zNHx8SD09PTM5fHxIPT09NDd8fEg9PT02MHx8SD09PTYxfHxIPT09NjJ8fEg9PT05Nnx8X3QoSCk/XyhIKToodC5jb25zdW1lKEgpLEwpfWZ1bmN0aW9uIEEoSCl7cmV0dXJuIEg9PT00N3x8SD09PTYyfHxRZShIKT9TKEgpOmEoSCl9ZnVuY3Rpb24gcShIKXtyZXR1cm4gSD09PTYyPyh0LmNvbnN1bWUoSCksQyk6YShIKX1mdW5jdGlvbiBDKEgpe3JldHVybiBIPT09bnVsbHx8T2UoSCk/eihIKTpRZShIKT8odC5jb25zdW1lKEgpLEMpOmEoSCl9ZnVuY3Rpb24geihIKXtyZXR1cm4gSD09PTQ1JiZyPT09Mj8odC5jb25zdW1lKEgpLFYpOkg9PT02MCYmcj09PTE/KHQuY29uc3VtZShIKSxSKTpIPT09NjImJnI9PT00Pyh0LmNvbnN1bWUoSCksbWUpOkg9PT02MyYmcj09PTM/KHQuY29uc3VtZShIKSxqKTpIPT09OTMmJnI9PT01Pyh0LmNvbnN1bWUoSCkscmUpOk9lKEgpJiYocj09PTZ8fHI9PT03KT8odC5leGl0KCJodG1sRmxvd0RhdGEiKSx0LmNoZWNrKGNOdCx3ZSxFKShIKSk6SD09PW51bGx8fE9lKEgpPyh0LmV4aXQoImh0bWxGbG93RGF0YSIpLEUoSCkpOih0LmNvbnN1bWUoSCkseil9ZnVuY3Rpb24gRShIKXtyZXR1cm4gdC5jaGVjayhkTnQsVCx3ZSkoSCl9ZnVuY3Rpb24gVChIKXtyZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShIKSx0LmV4aXQoImxpbmVFbmRpbmciKSwkfWZ1bmN0aW9uICQoSCl7cmV0dXJuIEg9PT1udWxsfHxPZShIKT9FKEgpOih0LmVudGVyKCJodG1sRmxvd0RhdGEiKSx6KEgpKX1mdW5jdGlvbiBWKEgpe3JldHVybiBIPT09NDU/KHQuY29uc3VtZShIKSxqKTp6KEgpfWZ1bmN0aW9uIFIoSCl7cmV0dXJuIEg9PT00Nz8odC5jb25zdW1lKEgpLG49IiIsVSk6eihIKX1mdW5jdGlvbiBVKEgpe2lmKEg9PT02Mil7bGV0IGNlPW4udG9Mb3dlckNhc2UoKTtyZXR1cm4gbkwuaW5jbHVkZXMoY2UpPyh0LmNvbnN1bWUoSCksbWUpOnooSCl9cmV0dXJuIGEyKEgpJiZuLmxlbmd0aDw4Pyh0LmNvbnN1bWUoSCksbis9U3RyaW5nLmZyb21DaGFyQ29kZShIKSxVKTp6KEgpfWZ1bmN0aW9uIHJlKEgpe3JldHVybiBIPT09OTM/KHQuY29uc3VtZShIKSxqKTp6KEgpfWZ1bmN0aW9uIGooSCl7cmV0dXJuIEg9PT02Mj8odC5jb25zdW1lKEgpLG1lKTpIPT09NDUmJnI9PT0yPyh0LmNvbnN1bWUoSCksaik6eihIKX1mdW5jdGlvbiBtZShIKXtyZXR1cm4gSD09PW51bGx8fE9lKEgpPyh0LmV4aXQoImh0bWxGbG93RGF0YSIpLHdlKEgpKToodC5jb25zdW1lKEgpLG1lKX1mdW5jdGlvbiB3ZShIKXtyZXR1cm4gdC5leGl0KCJodG1sRmxvdyIpLGUoSCl9fWZ1bmN0aW9uIHVOdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG4pe3JldHVybiBPZShuKT8odC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShuKSx0LmV4aXQoImxpbmVFbmRpbmciKSxzKTphKG4pfWZ1bmN0aW9uIHMobil7cmV0dXJuIGkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9hKG4pOmUobil9fWZ1bmN0aW9uIGZOdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShyKXtyZXR1cm4gdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShyKSx0LmV4aXQoImxpbmVFbmRpbmciKSx0LmF0dGVtcHQoUHIsZSxhKX19dmFyIG9MLGNOdCxkTnQsUG5lPWIoKCk9PnskdCgpO0VuZSgpO085KCk7b0w9e2NvbmNyZXRlOiEwLG5hbWU6Imh0bWxGbG93IixyZXNvbHZlVG86cE50LHRva2VuaXplOmhOdH0sY050PXtwYXJ0aWFsOiEwLHRva2VuaXplOmZOdH0sZE50PXtwYXJ0aWFsOiEwLHRva2VuaXplOnVOdH19KTtmdW5jdGlvbiBtTnQodCxlLGEpe2xldCBpPXRoaXMscixzLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhqKXtyZXR1cm4gdC5lbnRlcigiaHRtbFRleHQiKSx0LmVudGVyKCJodG1sVGV4dERhdGEiKSx0LmNvbnN1bWUoaiksZH1mdW5jdGlvbiBkKGope3JldHVybiBqPT09MzM/KHQuY29uc3VtZShqKSxjKTpqPT09NDc/KHQuY29uc3VtZShqKSxfKTpqPT09NjM/KHQuY29uc3VtZShqKSxTKTphMihqKT8odC5jb25zdW1lKGopLEwpOmEoail9ZnVuY3Rpb24gYyhqKXtyZXR1cm4gaj09PTQ1Pyh0LmNvbnN1bWUoaikscCk6aj09PTkxPyh0LmNvbnN1bWUoaikscz0wLHkpOmEyKGopPyh0LmNvbnN1bWUoaiksTSk6YShqKX1mdW5jdGlvbiBwKGope3JldHVybiBqPT09NDU/KHQuY29uc3VtZShqKSxnKTphKGopfWZ1bmN0aW9uIGwoail7cmV0dXJuIGo9PT1udWxsP2Eoaik6aj09PTQ1Pyh0LmNvbnN1bWUoaiksZik6T2Uoaik/KG49bCxSKGopKToodC5jb25zdW1lKGopLGwpfWZ1bmN0aW9uIGYoail7cmV0dXJuIGo9PT00NT8odC5jb25zdW1lKGopLGcpOmwoail9ZnVuY3Rpb24gZyhqKXtyZXR1cm4gaj09PTYyP1Yoaik6aj09PTQ1P2Yoaik6bChqKX1mdW5jdGlvbiB5KGope2xldCBtZT0iQ0RBVEFbIjtyZXR1cm4gaj09PW1lLmNoYXJDb2RlQXQocysrKT8odC5jb25zdW1lKGopLHM9PT1tZS5sZW5ndGg/djp5KTphKGopfWZ1bmN0aW9uIHYoail7cmV0dXJuIGo9PT1udWxsP2Eoaik6aj09PTkzPyh0LmNvbnN1bWUoaiksbSk6T2Uoaik/KG49dixSKGopKToodC5jb25zdW1lKGopLHYpfWZ1bmN0aW9uIG0oail7cmV0dXJuIGo9PT05Mz8odC5jb25zdW1lKGopLHgpOnYoail9ZnVuY3Rpb24geChqKXtyZXR1cm4gaj09PTYyP1Yoaik6aj09PTkzPyh0LmNvbnN1bWUoaikseCk6dihqKX1mdW5jdGlvbiBNKGope3JldHVybiBqPT09bnVsbHx8aj09PTYyP1Yoaik6T2Uoaik/KG49TSxSKGopKToodC5jb25zdW1lKGopLE0pfWZ1bmN0aW9uIFMoail7cmV0dXJuIGo9PT1udWxsP2Eoaik6aj09PTYzPyh0LmNvbnN1bWUoaiksRik6T2Uoaik/KG49UyxSKGopKToodC5jb25zdW1lKGopLFMpfWZ1bmN0aW9uIEYoail7cmV0dXJuIGo9PT02Mj9WKGopOlMoail9ZnVuY3Rpb24gXyhqKXtyZXR1cm4gYTIoaik/KHQuY29uc3VtZShqKSxrKTphKGopfWZ1bmN0aW9uIGsoail7cmV0dXJuIGo9PT00NXx8RTEoaik/KHQuY29uc3VtZShqKSxrKTpOKGopfWZ1bmN0aW9uIE4oail7cmV0dXJuIE9lKGopPyhuPU4sUihqKSk6UWUoaik/KHQuY29uc3VtZShqKSxOKTpWKGopfWZ1bmN0aW9uIEwoail7cmV0dXJuIGo9PT00NXx8RTEoaik/KHQuY29uc3VtZShqKSxMKTpqPT09NDd8fGo9PT02Mnx8X3Qoaik/QShqKTphKGopfWZ1bmN0aW9uIEEoail7cmV0dXJuIGo9PT00Nz8odC5jb25zdW1lKGopLFYpOmo9PT01OHx8aj09PTk1fHxhMihqKT8odC5jb25zdW1lKGopLHEpOk9lKGopPyhuPUEsUihqKSk6UWUoaik/KHQuY29uc3VtZShqKSxBKTpWKGopfWZ1bmN0aW9uIHEoail7cmV0dXJuIGo9PT00NXx8aj09PTQ2fHxqPT09NTh8fGo9PT05NXx8RTEoaik/KHQuY29uc3VtZShqKSxxKTpDKGopfWZ1bmN0aW9uIEMoail7cmV0dXJuIGo9PT02MT8odC5jb25zdW1lKGopLHopOk9lKGopPyhuPUMsUihqKSk6UWUoaik/KHQuY29uc3VtZShqKSxDKTpBKGopfWZ1bmN0aW9uIHooail7cmV0dXJuIGo9PT1udWxsfHxqPT09NjB8fGo9PT02MXx8aj09PTYyfHxqPT09OTY/YShqKTpqPT09MzR8fGo9PT0zOT8odC5jb25zdW1lKGopLHI9aixFKTpPZShqKT8obj16LFIoaikpOlFlKGopPyh0LmNvbnN1bWUoaikseik6KHQuY29uc3VtZShqKSxUKX1mdW5jdGlvbiBFKGope3JldHVybiBqPT09cj8odC5jb25zdW1lKGopLHI9dm9pZCAwLCQpOmo9PT1udWxsP2Eoaik6T2Uoaik/KG49RSxSKGopKToodC5jb25zdW1lKGopLEUpfWZ1bmN0aW9uIFQoail7cmV0dXJuIGo9PT1udWxsfHxqPT09MzR8fGo9PT0zOXx8aj09PTYwfHxqPT09NjF8fGo9PT05Nj9hKGopOmo9PT00N3x8aj09PTYyfHxfdChqKT9BKGopOih0LmNvbnN1bWUoaiksVCl9ZnVuY3Rpb24gJChqKXtyZXR1cm4gaj09PTQ3fHxqPT09NjJ8fF90KGopP0Eoaik6YShqKX1mdW5jdGlvbiBWKGope3JldHVybiBqPT09NjI/KHQuY29uc3VtZShqKSx0LmV4aXQoImh0bWxUZXh0RGF0YSIpLHQuZXhpdCgiaHRtbFRleHQiKSxlKTphKGopfWZ1bmN0aW9uIFIoail7cmV0dXJuIHQuZXhpdCgiaHRtbFRleHREYXRhIiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShqKSx0LmV4aXQoImxpbmVFbmRpbmciKSxVfWZ1bmN0aW9uIFUoail7cmV0dXJuIFFlKGopP2l0KHQscmUsImxpbmVQcmVmaXgiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoaik6cmUoail9ZnVuY3Rpb24gcmUoail7cmV0dXJuIHQuZW50ZXIoImh0bWxUZXh0RGF0YSIpLG4oail9fXZhciBsTCxJbmU9YigoKT0+e1IxKCk7JHQoKTtsTD17bmFtZToiaHRtbFRleHQiLHRva2VuaXplOm1OdH19KTtmdW5jdGlvbiB5TnQodCl7bGV0IGU9LTEsYT1bXTtmb3IoOysrZTx0Lmxlbmd0aDspe2xldCBpPXRbZV1bMV07aWYoYS5wdXNoKHRbZV0pLGkudHlwZT09PSJsYWJlbEltYWdlInx8aS50eXBlPT09ImxhYmVsTGluayJ8fGkudHlwZT09PSJsYWJlbEVuZCIpe2xldCByPWkudHlwZT09PSJsYWJlbEltYWdlIj80OjI7aS50eXBlPSJkYXRhIixlKz1yfX1yZXR1cm4gdC5sZW5ndGghPT1hLmxlbmd0aCYmTzEodCwwLHQubGVuZ3RoLGEpLHR9ZnVuY3Rpb24geE50KHQsZSl7bGV0IGE9dC5sZW5ndGgsaT0wLHIscyxuLG87Zm9yKDthLS07KWlmKHI9dFthXVsxXSxzKXtpZihyLnR5cGU9PT0ibGluayJ8fHIudHlwZT09PSJsYWJlbExpbmsiJiZyLl9pbmFjdGl2ZSlicmVhazt0W2FdWzBdPT09ImVudGVyIiYmci50eXBlPT09ImxhYmVsTGluayImJihyLl9pbmFjdGl2ZT0hMCl9ZWxzZSBpZihuKXtpZih0W2FdWzBdPT09ImVudGVyIiYmKHIudHlwZT09PSJsYWJlbEltYWdlInx8ci50eXBlPT09ImxhYmVsTGluayIpJiYhci5fYmFsYW5jZWQmJihzPWEsci50eXBlIT09ImxhYmVsTGluayIpKXtpPTI7YnJlYWt9fWVsc2Ugci50eXBlPT09ImxhYmVsRW5kIiYmKG49YSk7bGV0IGQ9e3R5cGU6dFtzXVsxXS50eXBlPT09ImxhYmVsTGluayI/ImxpbmsiOiJpbWFnZSIsc3RhcnQ6ey4uLnRbc11bMV0uc3RhcnR9LGVuZDp7Li4udFt0Lmxlbmd0aC0xXVsxXS5lbmR9fSxjPXt0eXBlOiJsYWJlbCIsc3RhcnQ6ey4uLnRbc11bMV0uc3RhcnR9LGVuZDp7Li4udFtuXVsxXS5lbmR9fSxwPXt0eXBlOiJsYWJlbFRleHQiLHN0YXJ0OnsuLi50W3MraSsyXVsxXS5lbmR9LGVuZDp7Li4udFtuLTJdWzFdLnN0YXJ0fX07cmV0dXJuIG89W1siZW50ZXIiLGQsZV0sWyJlbnRlciIsYyxlXV0sbz1ZMShvLHQuc2xpY2UocysxLHMraSszKSksbz1ZMShvLFtbImVudGVyIixwLGVdXSksbz1ZMShvLEhuKGUucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLHQuc2xpY2UocytpKzQsbi0zKSxlKSksbz1ZMShvLFtbImV4aXQiLHAsZV0sdFtuLTJdLHRbbi0xXSxbImV4aXQiLGMsZV1dKSxvPVkxKG8sdC5zbGljZShuKzEpKSxvPVkxKG8sW1siZXhpdCIsZCxlXV0pLE8xKHQscyx0Lmxlbmd0aCxvKSx0fWZ1bmN0aW9uIHdOdCh0LGUsYSl7bGV0IGk9dGhpcyxyPWkuZXZlbnRzLmxlbmd0aCxzLG47Zm9yKDtyLS07KWlmKChpLmV2ZW50c1tyXVsxXS50eXBlPT09ImxhYmVsSW1hZ2UifHxpLmV2ZW50c1tyXVsxXS50eXBlPT09ImxhYmVsTGluayIpJiYhaS5ldmVudHNbcl1bMV0uX2JhbGFuY2VkKXtzPWkuZXZlbnRzW3JdWzFdO2JyZWFrfXJldHVybiBvO2Z1bmN0aW9uIG8oZil7cmV0dXJuIHM/cy5faW5hY3RpdmU/bChmKToobj1pLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKFAxKGkuc2xpY2VTZXJpYWxpemUoe3N0YXJ0OnMuZW5kLGVuZDppLm5vdygpfSkpKSx0LmVudGVyKCJsYWJlbEVuZCIpLHQuZW50ZXIoImxhYmVsTWFya2VyIiksdC5jb25zdW1lKGYpLHQuZXhpdCgibGFiZWxNYXJrZXIiKSx0LmV4aXQoImxhYmVsRW5kIiksZCk6YShmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09NDA/dC5hdHRlbXB0KGdOdCxwLG4/cDpsKShmKTpmPT09OTE/dC5hdHRlbXB0KGJOdCxwLG4/YzpsKShmKTpuP3AoZik6bChmKX1mdW5jdGlvbiBjKGYpe3JldHVybiB0LmF0dGVtcHQodk50LHAsbCkoZil9ZnVuY3Rpb24gcChmKXtyZXR1cm4gZShmKX1mdW5jdGlvbiBsKGYpe3JldHVybiBzLl9iYWxhbmNlZD0hMCxhKGYpfX1mdW5jdGlvbiBNTnQodCxlLGEpe3JldHVybiBpO2Z1bmN0aW9uIGkobCl7cmV0dXJuIHQuZW50ZXIoInJlc291cmNlIiksdC5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSx0LmNvbnN1bWUobCksdC5leGl0KCJyZXNvdXJjZU1hcmtlciIpLHJ9ZnVuY3Rpb24gcihsKXtyZXR1cm4gX3QobCk/ejAodCxzKShsKTpzKGwpfWZ1bmN0aW9uIHMobCl7cmV0dXJuIGw9PT00MT9wKGwpOmo5KHQsbixvLCJyZXNvdXJjZURlc3RpbmF0aW9uIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWwiLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsInJlc291cmNlRGVzdGluYXRpb25SYXciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwzMikobCl9ZnVuY3Rpb24gbihsKXtyZXR1cm4gX3QobCk/ejAodCxkKShsKTpwKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGEobCl9ZnVuY3Rpb24gZChsKXtyZXR1cm4gbD09PTM0fHxsPT09Mzl8fGw9PT00MD9XOSh0LGMsYSwicmVzb3VyY2VUaXRsZSIsInJlc291cmNlVGl0bGVNYXJrZXIiLCJyZXNvdXJjZVRpdGxlU3RyaW5nIikobCk6cChsKX1mdW5jdGlvbiBjKGwpe3JldHVybiBfdChsKT96MCh0LHApKGwpOnAobCl9ZnVuY3Rpb24gcChsKXtyZXR1cm4gbD09PTQxPyh0LmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLHQuY29uc3VtZShsKSx0LmV4aXQoInJlc291cmNlTWFya2VyIiksdC5leGl0KCJyZXNvdXJjZSIpLGUpOmEobCl9fWZ1bmN0aW9uIHpOdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKG8pe3JldHVybiBVOS5jYWxsKGksdCxzLG4sInJlZmVyZW5jZSIsInJlZmVyZW5jZU1hcmtlciIsInJlZmVyZW5jZVN0cmluZyIpKG8pfWZ1bmN0aW9uIHMobyl7cmV0dXJuIGkucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoUDEoaS5zbGljZVNlcmlhbGl6ZShpLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV1bMV0pLnNsaWNlKDEsLTEpKSk/ZShvKTphKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGEobyl9fWZ1bmN0aW9uIGtOdCh0LGUsYSl7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gdC5lbnRlcigicmVmZXJlbmNlIiksdC5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksdC5jb25zdW1lKHMpLHQuZXhpdCgicmVmZXJlbmNlTWFya2VyIikscn1mdW5jdGlvbiByKHMpe3JldHVybiBzPT09OTM/KHQuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLHQuY29uc3VtZShzKSx0LmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLHQuZXhpdCgicmVmZXJlbmNlIiksZSk6YShzKX19dmFyIGswLGdOdCxiTnQsdk50LEc5PWIoKCk9PntKVCgpO2VMKCk7dEwoKTthTCgpOyR0KCk7JHIoKTtSbigpO1Y2KCk7azA9e25hbWU6ImxhYmVsRW5kIixyZXNvbHZlQWxsOnlOdCxyZXNvbHZlVG86eE50LHRva2VuaXplOndOdH0sZ050PXt0b2tlbml6ZTpNTnR9LGJOdD17dG9rZW5pemU6ek50fSx2TnQ9e3Rva2VuaXplOmtOdH19KTtmdW5jdGlvbiBTTnQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihvKXtyZXR1cm4gdC5lbnRlcigibGFiZWxJbWFnZSIpLHQuZW50ZXIoImxhYmVsSW1hZ2VNYXJrZXIiKSx0LmNvbnN1bWUobyksdC5leGl0KCJsYWJlbEltYWdlTWFya2VyIiksc31mdW5jdGlvbiBzKG8pe3JldHVybiBvPT09OTE/KHQuZW50ZXIoImxhYmVsTWFya2VyIiksdC5jb25zdW1lKG8pLHQuZXhpdCgibGFiZWxNYXJrZXIiKSx0LmV4aXQoImxhYmVsSW1hZ2UiKSxuKTphKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT05NCYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gaS5wYXJzZXIuY29uc3RydWN0cz9hKG8pOmUobyl9fXZhciBjTCxObmU9YigoKT0+e0c5KCk7Y0w9e25hbWU6ImxhYmVsU3RhcnRJbWFnZSIscmVzb2x2ZUFsbDprMC5yZXNvbHZlQWxsLHRva2VuaXplOlNOdH19KTtmdW5jdGlvbiBDTnQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIHI7ZnVuY3Rpb24gcihuKXtyZXR1cm4gdC5lbnRlcigibGFiZWxMaW5rIiksdC5lbnRlcigibGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUobiksdC5leGl0KCJsYWJlbE1hcmtlciIpLHQuZXhpdCgibGFiZWxMaW5rIiksc31mdW5jdGlvbiBzKG4pe3JldHVybiBuPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGkucGFyc2VyLmNvbnN0cnVjdHM/YShuKTplKG4pfX12YXIgZEwsRm5lPWIoKCk9PntHOSgpO2RMPXtuYW1lOiJsYWJlbFN0YXJ0TGluayIscmVzb2x2ZUFsbDprMC5yZXNvbHZlQWxsLHRva2VuaXplOkNOdH19KTtmdW5jdGlvbiBfTnQodCxlKXtyZXR1cm4gYTtmdW5jdGlvbiBhKGkpe3JldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKGkpLHQuZXhpdCgibGluZUVuZGluZyIpLGl0KHQsZSwibGluZVByZWZpeCIpfX12YXIgWTYsT25lPWIoKCk9PntSMSgpOyR0KCk7WTY9e25hbWU6ImxpbmVFbmRpbmciLHRva2VuaXplOl9OdH19KTtmdW5jdGlvbiBUTnQodCxlLGEpe2xldCBpPTAscjtyZXR1cm4gcztmdW5jdGlvbiBzKGMpe3JldHVybiB0LmVudGVyKCJ0aGVtYXRpY0JyZWFrIiksbihjKX1mdW5jdGlvbiBuKGMpe3JldHVybiByPWMsbyhjKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjPT09cj8odC5lbnRlcigidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksZChjKSk6aT49MyYmKGM9PT1udWxsfHxPZShjKSk/KHQuZXhpdCgidGhlbWF0aWNCcmVhayIpLGUoYykpOmEoYyl9ZnVuY3Rpb24gZChjKXtyZXR1cm4gYz09PXI/KHQuY29uc3VtZShjKSxpKyssZCk6KHQuZXhpdCgidGhlbWF0aWNCcmVha1NlcXVlbmNlIiksUWUoYyk/aXQodCxvLCJ3aGl0ZXNwYWNlIikoYyk6byhjKSl9fXZhciBTMCxwTD1iKCgpPT57UjEoKTskdCgpO1MwPXtuYW1lOiJ0aGVtYXRpY0JyZWFrIix0b2tlbml6ZTpUTnR9fSk7ZnVuY3Rpb24gQU50KHQsZSxhKXtsZXQgaT10aGlzLHI9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdLHM9ciYmclsxXS50eXBlPT09ImxpbmVQcmVmaXgiP3JbMl0uc2xpY2VTZXJpYWxpemUoclsxXSwhMCkubGVuZ3RoOjAsbj0wO3JldHVybiBvO2Z1bmN0aW9uIG8oZyl7bGV0IHk9aS5jb250YWluZXJTdGF0ZS50eXBlfHwoZz09PTQyfHxnPT09NDN8fGc9PT00NT8ibGlzdFVub3JkZXJlZCI6Imxpc3RPcmRlcmVkIik7aWYoeT09PSJsaXN0VW5vcmRlcmVkIj8haS5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fGc9PT1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpPNihnKSl7aWYoaS5jb250YWluZXJTdGF0ZS50eXBlfHwoaS5jb250YWluZXJTdGF0ZS50eXBlPXksdC5lbnRlcih5LHtfY29udGFpbmVyOiEwfSkpLHk9PT0ibGlzdFVub3JkZXJlZCIpcmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksZz09PTQyfHxnPT09NDU/dC5jaGVjayhTMCxhLGMpKGcpOmMoZyk7aWYoIWkuaW50ZXJydXB0fHxnPT09NDkpcmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksdC5lbnRlcigibGlzdEl0ZW1WYWx1ZSIpLGQoZyl9cmV0dXJuIGEoZyl9ZnVuY3Rpb24gZChnKXtyZXR1cm4gTzYoZykmJisrbjwxMD8odC5jb25zdW1lKGcpLGQpOighaS5pbnRlcnJ1cHR8fG48MikmJihpLmNvbnRhaW5lclN0YXRlLm1hcmtlcj9nPT09aS5jb250YWluZXJTdGF0ZS5tYXJrZXI6Zz09PTQxfHxnPT09NDYpPyh0LmV4aXQoImxpc3RJdGVtVmFsdWUiKSxjKGcpKTphKGcpfWZ1bmN0aW9uIGMoZyl7cmV0dXJuIHQuZW50ZXIoImxpc3RJdGVtTWFya2VyIiksdC5jb25zdW1lKGcpLHQuZXhpdCgibGlzdEl0ZW1NYXJrZXIiKSxpLmNvbnRhaW5lclN0YXRlLm1hcmtlcj1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8Zyx0LmNoZWNrKFByLGkuaW50ZXJydXB0P2E6cCx0LmF0dGVtcHQoTE50LGYsbCkpfWZ1bmN0aW9uIHAoZyl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT0hMCxzKyssZihnKX1mdW5jdGlvbiBsKGcpe3JldHVybiBRZShnKT8odC5lbnRlcigibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksdC5jb25zdW1lKGcpLHQuZXhpdCgibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksZik6YShnKX1mdW5jdGlvbiBmKGcpe3JldHVybiBpLmNvbnRhaW5lclN0YXRlLnNpemU9cytpLnNsaWNlU2VyaWFsaXplKHQuZXhpdCgibGlzdEl0ZW1QcmVmaXgiKSwhMCkubGVuZ3RoLGUoZyl9fWZ1bmN0aW9uIEROdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCx0LmNoZWNrKFByLHIscyk7ZnVuY3Rpb24gcihvKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz1pLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHxpLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUsaXQodCxlLCJsaXN0SXRlbUluZGVudCIsaS5jb250YWluZXJTdGF0ZS5zaXplKzEpKG8pfWZ1bmN0aW9uIHMobyl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fCFRZShvKT8oaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxuKG8pKTooaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCx0LmF0dGVtcHQoJE50LGUsbikobykpfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz0hMCxpLmludGVycnVwdD12b2lkIDAsaXQodCx0LmF0dGVtcHQoVTIsZSxhKSwibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShvKX19ZnVuY3Rpb24gRU50KHQsZSxhKXtsZXQgaT10aGlzO3JldHVybiBpdCh0LHIsImxpc3RJdGVtSW5kZW50IixpLmNvbnRhaW5lclN0YXRlLnNpemUrMSk7ZnVuY3Rpb24gcihzKXtsZXQgbj1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG4mJm5bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCImJm5bMl0uc2xpY2VTZXJpYWxpemUoblsxXSwhMCkubGVuZ3RoPT09aS5jb250YWluZXJTdGF0ZS5zaXplP2Uocyk6YShzKX19ZnVuY3Rpb24gUE50KHQpe3QuZXhpdCh0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUpfWZ1bmN0aW9uIElOdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gaXQodCxyLCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NSk7ZnVuY3Rpb24gcihzKXtsZXQgbj1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIVFlKHMpJiZuJiZuWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIj9lKHMpOmEocyl9fXZhciBVMixMTnQsJE50LFJuZT1iKCgpPT57UjEoKTskdCgpO085KCk7cEwoKTtVMj17Y29udGludWF0aW9uOnt0b2tlbml6ZTpETnR9LGV4aXQ6UE50LG5hbWU6Imxpc3QiLHRva2VuaXplOkFOdH0sTE50PXtwYXJ0aWFsOiEwLHRva2VuaXplOklOdH0sJE50PXtwYXJ0aWFsOiEwLHRva2VuaXplOkVOdH19KTtmdW5jdGlvbiBOTnQodCxlKXtsZXQgYT10Lmxlbmd0aCxpLHIscztmb3IoO2EtLTspaWYodFthXVswXT09PSJlbnRlciIpe2lmKHRbYV1bMV0udHlwZT09PSJjb250ZW50Iil7aT1hO2JyZWFrfXRbYV1bMV0udHlwZT09PSJwYXJhZ3JhcGgiJiYocj1hKX1lbHNlIHRbYV1bMV0udHlwZT09PSJjb250ZW50IiYmdC5zcGxpY2UoYSwxKSwhcyYmdFthXVsxXS50eXBlPT09ImRlZmluaXRpb24iJiYocz1hKTtsZXQgbj17dHlwZToic2V0ZXh0SGVhZGluZyIsc3RhcnQ6ey4uLnRbaV1bMV0uc3RhcnR9LGVuZDp7Li4udFt0Lmxlbmd0aC0xXVsxXS5lbmR9fTtyZXR1cm4gdFtyXVsxXS50eXBlPSJzZXRleHRIZWFkaW5nVGV4dCIscz8odC5zcGxpY2UociwwLFsiZW50ZXIiLG4sZV0pLHQuc3BsaWNlKHMrMSwwLFsiZXhpdCIsdFtpXVsxXSxlXSksdFtpXVsxXS5lbmQ9ey4uLnRbc11bMV0uZW5kfSk6dFtpXVsxXT1uLHQucHVzaChbImV4aXQiLG4sZV0pLHR9ZnVuY3Rpb24gRk50KHQsZSxhKXtsZXQgaT10aGlzLHI7cmV0dXJuIHM7ZnVuY3Rpb24gcyhjKXtsZXQgcD1pLmV2ZW50cy5sZW5ndGgsbDtmb3IoO3AtLTspaWYoaS5ldmVudHNbcF1bMV0udHlwZSE9PSJsaW5lRW5kaW5nIiYmaS5ldmVudHNbcF1bMV0udHlwZSE9PSJsaW5lUHJlZml4IiYmaS5ldmVudHNbcF1bMV0udHlwZSE9PSJjb250ZW50Iil7bD1pLmV2ZW50c1twXVsxXS50eXBlPT09InBhcmFncmFwaCI7YnJlYWt9cmV0dXJuIWkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXSYmKGkuaW50ZXJydXB0fHxsKT8odC5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmUiKSxyPWMsbihjKSk6YShjKX1mdW5jdGlvbiBuKGMpe3JldHVybiB0LmVudGVyKCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksbyhjKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjPT09cj8odC5jb25zdW1lKGMpLG8pOih0LmV4aXQoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxRZShjKT9pdCh0LGQsImxpbmVTdWZmaXgiKShjKTpkKGMpKX1mdW5jdGlvbiBkKGMpe3JldHVybiBjPT09bnVsbHx8T2UoYyk/KHQuZXhpdCgic2V0ZXh0SGVhZGluZ0xpbmUiKSxlKGMpKTphKGMpfX12YXIgWTksQm5lPWIoKCk9PntSMSgpOyR0KCk7WTk9e25hbWU6InNldGV4dFVuZGVybGluZSIscmVzb2x2ZVRvOk5OdCx0b2tlbml6ZTpGTnR9fSk7dmFyIFo5PWIoKCk9Pnt5bmUoKTt4bmUoKTtPOSgpO3duZSgpO01uZSgpO3puZSgpO1NuZSgpO0NuZSgpO19uZSgpO1RuZSgpO0xuZSgpOyRuZSgpO0FuZSgpO1BuZSgpO0luZSgpO0c5KCk7Tm5lKCk7Rm5lKCk7T25lKCk7Um5lKCk7Qm5lKCk7cEwoKX0pO2Z1bmN0aW9uIGhMKCl7cmV0dXJue2RvY3VtZW50Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIix0b2tlbml6ZTpxTnQsY29udGludWF0aW9uOnt0b2tlbml6ZTpWTnR9LGV4aXQ6ak50fX0sdGV4dDp7OTE6e25hbWU6ImdmbUZvb3Rub3RlQ2FsbCIsdG9rZW5pemU6SE50fSw5Mzp7bmFtZToiZ2ZtUG90ZW50aWFsRm9vdG5vdGVDYWxsIixhZGQ6ImFmdGVyIix0b2tlbml6ZTpSTnQscmVzb2x2ZVRvOkJOdH19fX1mdW5jdGlvbiBSTnQodCxlLGEpe2xldCBpPXRoaXMscj1pLmV2ZW50cy5sZW5ndGgscz1pLnBhcnNlci5nZm1Gb290bm90ZXN8fChpLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG47Zm9yKDtyLS07KXtsZXQgZD1pLmV2ZW50c1tyXVsxXTtpZihkLnR5cGU9PT0ibGFiZWxJbWFnZSIpe249ZDticmVha31pZihkLnR5cGU9PT0iZ2ZtRm9vdG5vdGVDYWxsInx8ZC50eXBlPT09ImxhYmVsTGluayJ8fGQudHlwZT09PSJsYWJlbCJ8fGQudHlwZT09PSJpbWFnZSJ8fGQudHlwZT09PSJsaW5rIilicmVha31yZXR1cm4gbztmdW5jdGlvbiBvKGQpe2lmKCFufHwhbi5fYmFsYW5jZWQpcmV0dXJuIGEoZCk7bGV0IGM9UDEoaS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6bi5lbmQsZW5kOmkubm93KCl9KSk7cmV0dXJuIGMuY29kZVBvaW50QXQoMCkhPT05NHx8IXMuaW5jbHVkZXMoYy5zbGljZSgxKSk/YShkKToodC5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoZCksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUoZCkpfX1mdW5jdGlvbiBCTnQodCxlKXtsZXQgYT10Lmxlbmd0aCxpO2Zvcig7YS0tOylpZih0W2FdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSImJnRbYV1bMF09PT0iZW50ZXIiKXtpPXRbYV1bMV07YnJlYWt9dFthKzFdWzFdLnR5cGU9ImRhdGEiLHRbYSszXVsxXS50eXBlPSJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciI7bGV0IHI9e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx0W2ErM11bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHRbdC5sZW5ndGgtMV1bMV0uZW5kKX0scz17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsTWFya2VyIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHRbYSszXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHRbYSszXVsxXS5lbmQpfTtzLmVuZC5jb2x1bW4rKyxzLmVuZC5vZmZzZXQrKyxzLmVuZC5fYnVmZmVySW5kZXgrKztsZXQgbj17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHMuZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx0W3QubGVuZ3RoLTFdWzFdLnN0YXJ0KX0sbz17dHlwZToiY2h1bmtTdHJpbmciLGNvbnRlbnRUeXBlOiJzdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sbi5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sbi5lbmQpfSxkPVt0W2ErMV0sdFthKzJdLFsiZW50ZXIiLHIsZV0sdFthKzNdLHRbYSs0XSxbImVudGVyIixzLGVdLFsiZXhpdCIscyxlXSxbImVudGVyIixuLGVdLFsiZW50ZXIiLG8sZV0sWyJleGl0IixvLGVdLFsiZXhpdCIsbixlXSx0W3QubGVuZ3RoLTJdLHRbdC5sZW5ndGgtMV0sWyJleGl0IixyLGVdXTtyZXR1cm4gdC5zcGxpY2UoYSx0Lmxlbmd0aC1hKzEsLi4uZCksdH1mdW5jdGlvbiBITnQodCxlLGEpe2xldCBpPXRoaXMscj1pLnBhcnNlci5nZm1Gb290bm90ZXN8fChpLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLHM9MCxuO3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuIHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbCIpLHQuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5jb25zdW1lKGwpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxkfWZ1bmN0aW9uIGQobCl7cmV0dXJuIGwhPT05ND9hKGwpOih0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSx0LmNvbnN1bWUobCksdC5leGl0KCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSx0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKSx0LmVudGVyKCJjaHVua1N0cmluZyIpLmNvbnRlbnRUeXBlPSJzdHJpbmciLGMpfWZ1bmN0aW9uIGMobCl7aWYocz45OTl8fGw9PT05MyYmIW58fGw9PT1udWxsfHxsPT09OTF8fF90KGwpKXJldHVybiBhKGwpO2lmKGw9PT05Myl7dC5leGl0KCJjaHVua1N0cmluZyIpO2xldCBmPXQuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIik7cmV0dXJuIHIuaW5jbHVkZXMoUDEoaS5zbGljZVNlcmlhbGl6ZShmKSkpPyh0LmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHQuY29uc3VtZShsKSx0LmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdC5leGl0KCJnZm1Gb290bm90ZUNhbGwiKSxlKTphKGwpfXJldHVybiBfdChsKXx8KG49ITApLHMrKyx0LmNvbnN1bWUobCksbD09PTkyP3A6Y31mdW5jdGlvbiBwKGwpe3JldHVybiBsPT09OTF8fGw9PT05Mnx8bD09PTkzPyh0LmNvbnN1bWUobCkscysrLGMpOmMobCl9fWZ1bmN0aW9uIHFOdCh0LGUsYSl7bGV0IGk9dGhpcyxyPWkucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGkucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSkscyxuPTAsbztyZXR1cm4gZDtmdW5jdGlvbiBkKHkpe3JldHVybiB0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb24iKS5fY29udGFpbmVyPSEwLHQuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsIiksdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoeSksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGN9ZnVuY3Rpb24gYyh5KXtyZXR1cm4geT09PTk0Pyh0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSx0LmNvbnN1bWUoeSksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSx0LmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpLHQuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIscCk6YSh5KX1mdW5jdGlvbiBwKHkpe2lmKG4+OTk5fHx5PT09OTMmJiFvfHx5PT09bnVsbHx8eT09PTkxfHxfdCh5KSlyZXR1cm4gYSh5KTtpZih5PT09OTMpe3QuZXhpdCgiY2h1bmtTdHJpbmciKTtsZXQgdj10LmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7cmV0dXJuIHM9UDEoaS5zbGljZVNlcmlhbGl6ZSh2KSksdC5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSx0LmNvbnN1bWUoeSksdC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLHQuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxmfXJldHVybiBfdCh5KXx8KG89ITApLG4rKyx0LmNvbnN1bWUoeSkseT09PTkyP2w6cH1mdW5jdGlvbiBsKHkpe3JldHVybiB5PT09OTF8fHk9PT05Mnx8eT09PTkzPyh0LmNvbnN1bWUoeSksbisrLHApOnAoeSl9ZnVuY3Rpb24gZih5KXtyZXR1cm4geT09PTU4Pyh0LmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksdC5jb25zdW1lKHkpLHQuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLHIuaW5jbHVkZXMocyl8fHIucHVzaChzKSxpdCh0LGcsImdmbUZvb3Rub3RlRGVmaW5pdGlvbldoaXRlc3BhY2UiKSk6YSh5KX1mdW5jdGlvbiBnKHkpe3JldHVybiBlKHkpfX1mdW5jdGlvbiBWTnQodCxlLGEpe3JldHVybiB0LmNoZWNrKFByLGUsdC5hdHRlbXB0KE9OdCxlLGEpKX1mdW5jdGlvbiBqTnQodCl7dC5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb24iKX1mdW5jdGlvbiBVTnQodCxlLGEpe2xldCBpPXRoaXM7cmV0dXJuIGl0KHQsciwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50Iiw1KTtmdW5jdGlvbiByKHMpe2xldCBuPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbiYmblsxXS50eXBlPT09ImdmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCImJm5bMl0uc2xpY2VTZXJpYWxpemUoblsxXSwhMCkubGVuZ3RoPT09ND9lKHMpOmEocyl9fXZhciBPTnQsSG5lPWIoKCk9PntaOSgpO1IxKCk7JHQoKTtSbigpO09OdD17dG9rZW5pemU6VU50LHBhcnRpYWw6ITB9fSk7ZnVuY3Rpb24gcW5lKHQsZSl7cmV0dXJuIkJhY2sgdG8gcmVmZXJlbmNlICIrKHQrMSkrKGU+MT8iLSIrZToiIil9ZnVuY3Rpb24gdUwodCl7bGV0IGU9dHx8R050LGE9ZS5sYWJlbHx8IkZvb3Rub3RlcyIsaT1lLmxhYmVsVGFnTmFtZXx8ImgyIixyPWUubGFiZWxBdHRyaWJ1dGVzPT09bnVsbHx8ZS5sYWJlbEF0dHJpYnV0ZXM9PT12b2lkIDA/J2NsYXNzPSJzci1vbmx5Iic6ZS5sYWJlbEF0dHJpYnV0ZXMscz1lLmJhY2tMYWJlbHx8cW5lLG49ZS5jbG9iYmVyUHJlZml4PT09bnVsbHx8ZS5jbG9iYmVyUHJlZml4PT09dm9pZCAwPyJ1c2VyLWNvbnRlbnQtIjplLmNsb2JiZXJQcmVmaXg7cmV0dXJue2VudGVyOntnZm1Gb290bm90ZURlZmluaXRpb24oKXt0aGlzLmdldERhdGEoInRpZ2h0U3RhY2siKS5wdXNoKCExKX0sZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcoKXt0aGlzLmJ1ZmZlcigpfSxnZm1Gb290bm90ZUNhbGxTdHJpbmcoKXt0aGlzLmJ1ZmZlcigpfX0sZXhpdDp7Z2ZtRm9vdG5vdGVEZWZpbml0aW9uKCl7bGV0IG89dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIiksZD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIiksYz10aGlzLmdldERhdGEoInRpZ2h0U3RhY2siKSxwPWQucG9wKCksbD10aGlzLnJlc3VtZSgpO298fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIsbz17fSksV050LmNhbGwobyxwKXx8KG9bcF09bCksYy5wb3AoKSx0aGlzLnNldERhdGEoInNsdXJwT25lTGluZUVuZGluZyIsITApLHRoaXMuc2V0RGF0YSgibGFzdFdhc1RhZyIpfSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyhvKXtsZXQgZD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIik7ZHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIsZD1bXSksZC5wdXNoKFAxKHRoaXMuc2xpY2VTZXJpYWxpemUobykpKSx0aGlzLnJlc3VtZSgpLHRoaXMuYnVmZmVyKCl9LGdmbUZvb3Rub3RlQ2FsbFN0cmluZyhvKXtsZXQgZD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIiksYz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIpLHA9UDEodGhpcy5zbGljZVNlcmlhbGl6ZShvKSksbDt0aGlzLnJlc3VtZSgpLGR8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiLGQ9W10pLGN8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIixjPXt9KTtsZXQgZj1kLmluZGV4T2YocCksZz1EcihwLnRvTG93ZXJDYXNlKCkpO2Y9PT0tMT8oZC5wdXNoKHApLGNbcF09MSxsPWQubGVuZ3RoKTooY1twXSsrLGw9ZisxKTtsZXQgeT1jW3BdO3RoaXMudGFnKCc8c3VwPjxhIGhyZWY9IiMnK24rImZuLSIrZysnIiBpZD0iJytuKyJmbnJlZi0iK2crKHk+MT8iLSIreToiIikrJyIgZGF0YS1mb290bm90ZS1yZWY9IiIgYXJpYS1kZXNjcmliZWRieT0iZm9vdG5vdGUtbGFiZWwiPicrU3RyaW5nKGwpKyI8L2E+PC9zdXA+Iil9LG51bGwoKXtsZXQgbz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIil8fFtdLGQ9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiKXx8e30sYz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiKXx8e30scD0tMTtmb3Ioby5sZW5ndGg+MCYmKHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoJzxzZWN0aW9uIGRhdGEtZm9vdG5vdGVzPSIiIGNsYXNzPSJmb290bm90ZXMiPjwnK2krJyBpZD0iZm9vdG5vdGUtbGFiZWwiJysocj8iICIrcjoiIikrIj4iKSx0aGlzLnJhdyh0aGlzLmVuY29kZShhKSksdGhpcy50YWcoIjwvIitpKyI+IiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPG9sPiIpKTsrK3A8by5sZW5ndGg7KXtsZXQgbD1vW3BdLGY9RHIobC50b0xvd2VyQ2FzZSgpKSxnPTAseT1bXTtmb3IoOysrZzw9ZFtsXTspeS5wdXNoKCc8YSBocmVmPSIjJytuKyJmbnJlZi0iK2YrKGc+MT8iLSIrZzoiIikrJyIgZGF0YS1mb290bm90ZS1iYWNrcmVmPSIiIGFyaWEtbGFiZWw9IicrdGhpcy5lbmNvZGUodHlwZW9mIHM9PSJzdHJpbmciP3M6cyhwLGcpKSsnIiBjbGFzcz0iZGF0YS1mb290bm90ZS1iYWNrcmVmIj5cdTIxQTknKyhnPjE/IjxzdXA+IitnKyI8L3N1cD4iOiIiKSsiPC9hPiIpO2xldCB2PXkuam9pbigiICIpLG09ITE7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygnPGxpIGlkPSInK24rImZuLSIrZisnIj4nKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKGNbbF0ucmVwbGFjZSgvPFwvcD4oPzpccj9cbnxccik/JC8sZnVuY3Rpb24oeCl7cmV0dXJuIG09ITAsIiAiK3YreH0pKSxtfHwodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZyh2KSksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9saT4iKX1vLmxlbmd0aD4wJiYodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9vbD4iKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3NlY3Rpb24+IikpfX19fXZhciBXTnQsR050LFZuZT1iKCgpPT57Um4oKTtFcigpO1dOdD17fS5oYXNPd25Qcm9wZXJ0eSxHTnQ9e319KTt2YXIgam5lPWIoKCk9PntIbmUoKTtWbmUoKX0pO2Z1bmN0aW9uIGZMKCl7cmV0dXJue2VudGVyOntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjxkZWw+Iil9fSxleGl0OntzdHJpa2V0aHJvdWdoKCl7dGhpcy50YWcoIjwvZGVsPiIpfX19fXZhciBVbmU9YigoKT0+e30pO2Z1bmN0aW9uIG1MKHQpe2xldCBhPSh0fHx7fSkuc2luZ2xlVGlsZGUsaT17bmFtZToic3RyaWtldGhyb3VnaCIsdG9rZW5pemU6cyxyZXNvbHZlQWxsOnJ9O3JldHVybiBhPT1udWxsJiYoYT0hMCkse3RleHQ6ezEyNjppfSxpbnNpZGVTcGFuOntudWxsOltpXX0sYXR0ZW50aW9uTWFya2Vyczp7bnVsbDpbMTI2XX19O2Z1bmN0aW9uIHIobixvKXtsZXQgZD0tMTtmb3IoOysrZDxuLmxlbmd0aDspaWYobltkXVswXT09PSJlbnRlciImJm5bZF1bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiZuW2RdWzFdLl9jbG9zZSl7bGV0IGM9ZDtmb3IoO2MtLTspaWYobltjXVswXT09PSJleGl0IiYmbltjXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm5bY11bMV0uX29wZW4mJm5bZF1bMV0uZW5kLm9mZnNldC1uW2RdWzFdLnN0YXJ0Lm9mZnNldD09PW5bY11bMV0uZW5kLm9mZnNldC1uW2NdWzFdLnN0YXJ0Lm9mZnNldCl7bltkXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiLG5bY11bMV0udHlwZT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlIjtsZXQgcD17dHlwZToic3RyaWtldGhyb3VnaCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxuW2NdWzFdLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxuW2RdWzFdLmVuZCl9LGw9e3R5cGU6InN0cmlrZXRocm91Z2hUZXh0IixzdGFydDpPYmplY3QuYXNzaWduKHt9LG5bY11bMV0uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxuW2RdWzFdLnN0YXJ0KX0sZj1bWyJlbnRlciIscCxvXSxbImVudGVyIixuW2NdWzFdLG9dLFsiZXhpdCIsbltjXVsxXSxvXSxbImVudGVyIixsLG9dXSxnPW8ucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsO2cmJk8xKGYsZi5sZW5ndGgsMCxIbihnLG4uc2xpY2UoYysxLGQpLG8pKSxPMShmLGYubGVuZ3RoLDAsW1siZXhpdCIsbCxvXSxbImVudGVyIixuW2RdWzFdLG9dLFsiZXhpdCIsbltkXVsxXSxvXSxbImV4aXQiLHAsb11dKSxPMShuLGMtMSxkLWMrMyxmKSxkPWMrZi5sZW5ndGgtMjticmVha319Zm9yKGQ9LTE7KytkPG4ubGVuZ3RoOyluW2RdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmKG5bZF1bMV0udHlwZT0iZGF0YSIpO3JldHVybiBufWZ1bmN0aW9uIHMobixvLGQpe2xldCBjPXRoaXMucHJldmlvdXMscD10aGlzLmV2ZW50cyxsPTA7cmV0dXJuIGY7ZnVuY3Rpb24gZih5KXtyZXR1cm4gYz09PTEyNiYmcFtwLmxlbmd0aC0xXVsxXS50eXBlIT09ImNoYXJhY3RlckVzY2FwZSI/ZCh5KToobi5lbnRlcigic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiksZyh5KSl9ZnVuY3Rpb24gZyh5KXtsZXQgdj12cyhjKTtpZih5PT09MTI2KXJldHVybiBsPjE/ZCh5KToobi5jb25zdW1lKHkpLGwrKyxnKTtpZihsPDImJiFhKXJldHVybiBkKHkpO2xldCBtPW4uZXhpdCgic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IikseD12cyh5KTtyZXR1cm4gbS5fb3Blbj0heHx8eD09PTImJiEhdixtLl9jbG9zZT0hdnx8dj09PTImJiEheCxvKHkpfX19dmFyIFduZT1iKCgpPT57JHIoKTtDOSgpO1Y2KCl9KTt2YXIgR25lPWIoKCk9PntVbmUoKTtXbmUoKX0pO2Z1bmN0aW9uIGJMKCl7cmV0dXJue2VudGVyOnt0YWJsZSh0KXtsZXQgZT10Ll9hbGlnbjt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGFibGU+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIixlKX0sdGFibGVCb2R5KCl7dGhpcy50YWcoIjx0Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIiksYT1nTFt0W2VdXTthPT09dm9pZCAwP3RoaXMuYnVmZmVyKCk6KHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0ZCIrYSsiPiIpKX0sdGFibGVIZWFkKCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpLGE9Z0xbdFtlXV07dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRoIithKyI+Iil9LHRhYmxlUm93KCl7dGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsMCksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRyPiIpfX0sZXhpdDp7Y29kZVRleHREYXRhKHQpe2xldCBlPXRoaXMuc2xpY2VTZXJpYWxpemUodCk7dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIikmJihlPWUucmVwbGFjZSgvXFwoW1xcfF0pL2csWU50KSksdGhpcy5yYXcodGhpcy5lbmNvZGUoZSkpfSx0YWJsZSgpe3RoaXMuc2V0RGF0YSgidGFibGVBbGlnbiIpLHRoaXMuc2V0RGF0YSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGFibGU+Iil9LHRhYmxlQm9keSgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGJvZHk+Iil9LHRhYmxlRGF0YSgpe2xldCB0PXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLGU9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO2UgaW4gdD8odGhpcy50YWcoIjwvdGQ+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsZSsxKSk6dGhpcy5yZXN1bWUoKX0sdGFibGVIZWFkKCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90aGVhZD4iKX0sdGFibGVIZWFkZXIoKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7dGhpcy50YWcoIjwvdGg+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsdCsxKX0sdGFibGVSb3coKXtsZXQgdD10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSxlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTtmb3IoO2U8dC5sZW5ndGg7KXRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0ZCIrZ0xbdFtlXV0rIj48L3RkPiIpLGUrKzt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RyPiIpfX19fWZ1bmN0aW9uIFlOdCh0LGUpe3JldHVybiBlPT09InwiP2U6dH12YXIgZ0wsWW5lPWIoKCk9PntnTD17bm9uZToiIixsZWZ0OicgYWxpZ249ImxlZnQiJyxyaWdodDonIGFsaWduPSJyaWdodCInLGNlbnRlcjonIGFsaWduPSJjZW50ZXIiJ319KTtmdW5jdGlvbiBaTnQodCxlLGEsaSl7bGV0IHI9MDtpZighKGE9PT0wJiZpLmxlbmd0aD09PTApKXtmb3IoO3I8dC5tYXAubGVuZ3RoOyl7aWYodC5tYXBbcl1bMF09PT1lKXt0Lm1hcFtyXVsxXSs9YSx0Lm1hcFtyXVsyXS5wdXNoKC4uLmkpO3JldHVybn1yKz0xfXQubWFwLnB1c2goW2UsYSxpXSl9fXZhciBYOSxabmU9YigoKT0+e1g5PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tYXA9W119YWRkKGUsYSxpKXtaTnQodGhpcyxlLGEsaSl9Y29uc3VtZShlKXtpZih0aGlzLm1hcC5zb3J0KGZ1bmN0aW9uKHMsbil7cmV0dXJuIHNbMF0tblswXX0pLHRoaXMubWFwLmxlbmd0aD09PTApcmV0dXJuO2xldCBhPXRoaXMubWFwLmxlbmd0aCxpPVtdO2Zvcig7YT4wOylhLT0xLGkucHVzaChlLnNsaWNlKHRoaXMubWFwW2FdWzBdK3RoaXMubWFwW2FdWzFdKSx0aGlzLm1hcFthXVsyXSksZS5sZW5ndGg9dGhpcy5tYXBbYV1bMF07aS5wdXNoKGUuc2xpY2UoKSksZS5sZW5ndGg9MDtsZXQgcj1pLnBvcCgpO2Zvcig7cjspe2ZvcihsZXQgcyBvZiByKWUucHVzaChzKTtyPWkucG9wKCl9dGhpcy5tYXAubGVuZ3RoPTB9fX0pO2Z1bmN0aW9uIFhuZSh0LGUpe2xldCBhPSExLGk9W107Zm9yKDtlPHQubGVuZ3RoOyl7bGV0IHI9dFtlXTtpZihhKXtpZihyWzBdPT09ImVudGVyIilyWzFdLnR5cGU9PT0idGFibGVDb250ZW50IiYmaS5wdXNoKHRbZSsxXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIj8ibGVmdCI6Im5vbmUiKTtlbHNlIGlmKHJbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiKXtpZih0W2UtMV1bMV0udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciIpe2xldCBzPWkubGVuZ3RoLTE7aVtzXT1pW3NdPT09ImxlZnQiPyJjZW50ZXIiOiJyaWdodCJ9fWVsc2UgaWYoclsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93IilicmVha31lbHNlIHJbMF09PT0iZW50ZXIiJiZyWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciJiYoYT0hMCk7ZSs9MX1yZXR1cm4gaX12YXIgS25lPWIoKCk9Pnt9KTtmdW5jdGlvbiB2TCgpe3JldHVybntmbG93OntudWxsOntuYW1lOiJ0YWJsZSIsdG9rZW5pemU6WE50LHJlc29sdmVBbGw6S050fX19fWZ1bmN0aW9uIFhOdCh0LGUsYSl7bGV0IGk9dGhpcyxyPTAscz0wLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhxKXtsZXQgQz1pLmV2ZW50cy5sZW5ndGgtMTtmb3IoO0M+LTE7KXtsZXQgVD1pLmV2ZW50c1tDXVsxXS50eXBlO2lmKFQ9PT0ibGluZUVuZGluZyJ8fFQ9PT0ibGluZVByZWZpeCIpQy0tO2Vsc2UgYnJlYWt9bGV0IHo9Qz4tMT9pLmV2ZW50c1tDXVsxXS50eXBlOm51bGwsRT16PT09InRhYmxlSGVhZCJ8fHo9PT0idGFibGVSb3ciP2s6ZDtyZXR1cm4gRT09PWsmJmkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9hKHEpOkUocSl9ZnVuY3Rpb24gZChxKXtyZXR1cm4gdC5lbnRlcigidGFibGVIZWFkIiksdC5lbnRlcigidGFibGVSb3ciKSxjKHEpfWZ1bmN0aW9uIGMocSl7cmV0dXJuIHE9PT0xMjR8fChuPSEwLHMrPTEpLHAocSl9ZnVuY3Rpb24gcChxKXtyZXR1cm4gcT09PW51bGw/YShxKTpPZShxKT9zPjE/KHM9MCxpLmludGVycnVwdD0hMCx0LmV4aXQoInRhYmxlUm93IiksdC5lbnRlcigibGluZUVuZGluZyIpLHQuY29uc3VtZShxKSx0LmV4aXQoImxpbmVFbmRpbmciKSxnKTphKHEpOlFlKHEpP2l0KHQscCwid2hpdGVzcGFjZSIpKHEpOihzKz0xLG4mJihuPSExLHIrPTEpLHE9PT0xMjQ/KHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUocSksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksbj0hMCxwKToodC5lbnRlcigiZGF0YSIpLGwocSkpKX1mdW5jdGlvbiBsKHEpe3JldHVybiBxPT09bnVsbHx8cT09PTEyNHx8X3QocSk/KHQuZXhpdCgiZGF0YSIpLHAocSkpOih0LmNvbnN1bWUocSkscT09PTkyP2Y6bCl9ZnVuY3Rpb24gZihxKXtyZXR1cm4gcT09PTkyfHxxPT09MTI0Pyh0LmNvbnN1bWUocSksbCk6bChxKX1mdW5jdGlvbiBnKHEpe3JldHVybiBpLmludGVycnVwdD0hMSxpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/YShxKToodC5lbnRlcigidGFibGVEZWxpbWl0ZXJSb3ciKSxuPSExLFFlKHEpP2l0KHQseSwibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShxKTp5KHEpKX1mdW5jdGlvbiB5KHEpe3JldHVybiBxPT09NDV8fHE9PT01OD9tKHEpOnE9PT0xMjQ/KG49ITAsdC5lbnRlcigidGFibGVDZWxsRGl2aWRlciIpLHQuY29uc3VtZShxKSx0LmV4aXQoInRhYmxlQ2VsbERpdmlkZXIiKSx2KTpfKHEpfWZ1bmN0aW9uIHYocSl7cmV0dXJuIFFlKHEpP2l0KHQsbSwid2hpdGVzcGFjZSIpKHEpOm0ocSl9ZnVuY3Rpb24gbShxKXtyZXR1cm4gcT09PTU4PyhzKz0xLG49ITAsdC5lbnRlcigidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx0LmNvbnN1bWUocSksdC5leGl0KCJ0YWJsZURlbGltaXRlck1hcmtlciIpLHgpOnE9PT00NT8ocys9MSx4KHEpKTpxPT09bnVsbHx8T2UocSk/RihxKTpfKHEpfWZ1bmN0aW9uIHgocSl7cmV0dXJuIHE9PT00NT8odC5lbnRlcigidGFibGVEZWxpbWl0ZXJGaWxsZXIiKSxNKHEpKTpfKHEpfWZ1bmN0aW9uIE0ocSl7cmV0dXJuIHE9PT00NT8odC5jb25zdW1lKHEpLE0pOnE9PT01OD8obj0hMCx0LmV4aXQoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksdC5lbnRlcigidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx0LmNvbnN1bWUocSksdC5leGl0KCJ0YWJsZURlbGltaXRlck1hcmtlciIpLFMpOih0LmV4aXQoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksUyhxKSl9ZnVuY3Rpb24gUyhxKXtyZXR1cm4gUWUocSk/aXQodCxGLCJ3aGl0ZXNwYWNlIikocSk6RihxKX1mdW5jdGlvbiBGKHEpe3JldHVybiBxPT09MTI0P3kocSk6cT09PW51bGx8fE9lKHEpPyFufHxyIT09cz9fKHEpOih0LmV4aXQoInRhYmxlRGVsaW1pdGVyUm93IiksdC5leGl0KCJ0YWJsZUhlYWQiKSxlKHEpKTpfKHEpfWZ1bmN0aW9uIF8ocSl7cmV0dXJuIGEocSl9ZnVuY3Rpb24gayhxKXtyZXR1cm4gdC5lbnRlcigidGFibGVSb3ciKSxOKHEpfWZ1bmN0aW9uIE4ocSl7cmV0dXJuIHE9PT0xMjQ/KHQuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSx0LmNvbnN1bWUocSksdC5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksTik6cT09PW51bGx8fE9lKHEpPyh0LmV4aXQoInRhYmxlUm93IiksZShxKSk6UWUocSk/aXQodCxOLCJ3aGl0ZXNwYWNlIikocSk6KHQuZW50ZXIoImRhdGEiKSxMKHEpKX1mdW5jdGlvbiBMKHEpe3JldHVybiBxPT09bnVsbHx8cT09PTEyNHx8X3QocSk/KHQuZXhpdCgiZGF0YSIpLE4ocSkpOih0LmNvbnN1bWUocSkscT09PTkyP0E6TCl9ZnVuY3Rpb24gQShxKXtyZXR1cm4gcT09PTkyfHxxPT09MTI0Pyh0LmNvbnN1bWUocSksTCk6TChxKX19ZnVuY3Rpb24gS050KHQsZSl7bGV0IGE9LTEsaT0hMCxyPTAscz1bMCwwLDAsMF0sbj1bMCwwLDAsMF0sbz0hMSxkPTAsYyxwLGwsZj1uZXcgWDk7Zm9yKDsrK2E8dC5sZW5ndGg7KXtsZXQgZz10W2FdLHk9Z1sxXTtnWzBdPT09ImVudGVyIj95LnR5cGU9PT0idGFibGVIZWFkIj8obz0hMSxkIT09MCYmKFFuZShmLGUsZCxjLHApLHA9dm9pZCAwLGQ9MCksYz17dHlwZToidGFibGUiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30seS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30seS5lbmQpfSxmLmFkZChhLDAsW1siZW50ZXIiLGMsZV1dKSk6eS50eXBlPT09InRhYmxlUm93Inx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8oaT0hMCxsPXZvaWQgMCxzPVswLDAsMCwwXSxuPVswLGErMSwwLDBdLG8mJihvPSExLHA9e3R5cGU6InRhYmxlQm9keSIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx5LnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx5LmVuZCl9LGYuYWRkKGEsMCxbWyJlbnRlciIscCxlXV0pKSxyPXkudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/MjpwPzM6MSk6ciYmKHkudHlwZT09PSJkYXRhInx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyInx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyRmlsbGVyIik/KGk9ITEsblsyXT09PTAmJihzWzFdIT09MCYmKG5bMF09blsxXSxsPUs5KGYsZSxzLHIsdm9pZCAwLGwpLHM9WzAsMCwwLDBdKSxuWzJdPWEpKTp5LnR5cGU9PT0idGFibGVDZWxsRGl2aWRlciImJihpP2k9ITE6KHNbMV0hPT0wJiYoblswXT1uWzFdLGw9SzkoZixlLHMscix2b2lkIDAsbCkpLHM9bixuPVtzWzFdLGEsMCwwXSkpOnkudHlwZT09PSJ0YWJsZUhlYWQiPyhvPSEwLGQ9YSk6eS50eXBlPT09InRhYmxlUm93Inx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8oZD1hLHNbMV0hPT0wPyhuWzBdPW5bMV0sbD1LOShmLGUscyxyLGEsbCkpOm5bMV0hPT0wJiYobD1LOShmLGUsbixyLGEsbCkpLHI9MCk6ciYmKHkudHlwZT09PSJkYXRhInx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyInx8eS50eXBlPT09InRhYmxlRGVsaW1pdGVyRmlsbGVyIikmJihuWzNdPWEpfWZvcihkIT09MCYmUW5lKGYsZSxkLGMscCksZi5jb25zdW1lKGUuZXZlbnRzKSxhPS0xOysrYTxlLmV2ZW50cy5sZW5ndGg7KXtsZXQgZz1lLmV2ZW50c1thXTtnWzBdPT09ImVudGVyIiYmZ1sxXS50eXBlPT09InRhYmxlIiYmKGdbMV0uX2FsaWduPVhuZShlLmV2ZW50cyxhKSl9cmV0dXJuIHR9ZnVuY3Rpb24gSzkodCxlLGEsaSxyLHMpe2xldCBuPWk9PT0xPyJ0YWJsZUhlYWRlciI6aT09PTI/InRhYmxlRGVsaW1pdGVyIjoidGFibGVEYXRhIixvPSJ0YWJsZUNvbnRlbnQiO2FbMF0hPT0wJiYocy5lbmQ9T2JqZWN0LmFzc2lnbih7fSxSMyhlLmV2ZW50cyxhWzBdKSksdC5hZGQoYVswXSwwLFtbImV4aXQiLHMsZV1dKSk7bGV0IGQ9UjMoZS5ldmVudHMsYVsxXSk7aWYocz17dHlwZTpuLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sZCksZW5kOk9iamVjdC5hc3NpZ24oe30sZCl9LHQuYWRkKGFbMV0sMCxbWyJlbnRlciIscyxlXV0pLGFbMl0hPT0wKXtsZXQgYz1SMyhlLmV2ZW50cyxhWzJdKSxwPVIzKGUuZXZlbnRzLGFbM10pLGw9e3R5cGU6byxzdGFydDpPYmplY3QuYXNzaWduKHt9LGMpLGVuZDpPYmplY3QuYXNzaWduKHt9LHApfTtpZih0LmFkZChhWzJdLDAsW1siZW50ZXIiLGwsZV1dKSxpIT09Mil7bGV0IGY9ZS5ldmVudHNbYVsyXV0sZz1lLmV2ZW50c1thWzNdXTtpZihmWzFdLmVuZD1PYmplY3QuYXNzaWduKHt9LGdbMV0uZW5kKSxmWzFdLnR5cGU9ImNodW5rVGV4dCIsZlsxXS5jb250ZW50VHlwZT0idGV4dCIsYVszXT5hWzJdKzEpe2xldCB5PWFbMl0rMSx2PWFbM10tYVsyXS0xO3QuYWRkKHksdixbXSl9fXQuYWRkKGFbM10rMSwwLFtbImV4aXQiLGwsZV1dKX1yZXR1cm4gciE9PXZvaWQgMCYmKHMuZW5kPU9iamVjdC5hc3NpZ24oe30sUjMoZS5ldmVudHMscikpLHQuYWRkKHIsMCxbWyJleGl0IixzLGVdXSkscz12b2lkIDApLHN9ZnVuY3Rpb24gUW5lKHQsZSxhLGkscil7bGV0IHM9W10sbj1SMyhlLmV2ZW50cyxhKTtyJiYoci5lbmQ9T2JqZWN0LmFzc2lnbih7fSxuKSxzLnB1c2goWyJleGl0IixyLGVdKSksaS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxuKSxzLnB1c2goWyJleGl0IixpLGVdKSx0LmFkZChhKzEsMCxzKX1mdW5jdGlvbiBSMyh0LGUpe2xldCBhPXRbZV0saT1hWzBdPT09ImVudGVyIj8ic3RhcnQiOiJlbmQiO3JldHVybiBhWzFdW2ldfXZhciBKbmU9YigoKT0+e1IxKCk7JHQoKTtabmUoKTtLbmUoKX0pO3ZhciBlb2U9YigoKT0+e1luZSgpO0puZSgpfSk7ZnVuY3Rpb24geUwoKXtyZXR1cm57ZXhpdDp7aHRtbEZsb3dEYXRhKHQpe2FvZS5jYWxsKHRoaXMsdCx0b2UpfSxodG1sVGV4dERhdGEodCl7YW9lLmNhbGwodGhpcyx0LFFOdCl9fX19ZnVuY3Rpb24gYW9lKHQsZSl7bGV0IGE9dGhpcy5zbGljZVNlcmlhbGl6ZSh0KTt0aGlzLm9wdGlvbnMuYWxsb3dEYW5nZXJvdXNIdG1sJiYoYT1hLnJlcGxhY2UoZSwiJmx0OyQxJDIiKSksdGhpcy5yYXcodGhpcy5lbmNvZGUoYSkpfXZhciB0b2UsUU50LGlvZT1iKCgpPT57dG9lPS88KFwvPykoaWZyYW1lfG5vZW1iZWR8bm9mcmFtZXN8cGxhaW50ZXh0fHNjcmlwdHxzdHlsZXx0aXRsZXx0ZXh0YXJlYXx4bXApKD89W1x0XG5cZlxyIC8+XSkvZ2ksUU50PW5ldyBSZWdFeHAoIl4iK3RvZS5zb3VyY2UsImkiKX0pO3ZhciByb2U9YigoKT0+e2lvZSgpfSk7ZnVuY3Rpb24geEwoKXtyZXR1cm57ZW50ZXI6e3Rhc2tMaXN0Q2hlY2soKXt0aGlzLnRhZygnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD0iIiAnKX19LGV4aXQ6e3Rhc2tMaXN0Q2hlY2soKXt0aGlzLnRhZygiLz4iKX0sdGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCgpe3RoaXMudGFnKCdjaGVja2VkPSIiICcpfX19fXZhciBzb2U9YigoKT0+e30pO2Z1bmN0aW9uIHdMKCl7cmV0dXJue3RleHQ6ezkxOkpOdH19fWZ1bmN0aW9uIGVGdCh0LGUsYSl7bGV0IGk9dGhpcztyZXR1cm4gcjtmdW5jdGlvbiByKGQpe3JldHVybiBpLnByZXZpb3VzIT09bnVsbHx8IWkuX2dmbVRhc2tsaXN0Rmlyc3RDb250ZW50T2ZMaXN0SXRlbT9hKGQpOih0LmVudGVyKCJ0YXNrTGlzdENoZWNrIiksdC5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLHQuY29uc3VtZShkKSx0LmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxzKX1mdW5jdGlvbiBzKGQpe3JldHVybiBfdChkKT8odC5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkIiksdC5jb25zdW1lKGQpLHQuZXhpdCgidGFza0xpc3RDaGVja1ZhbHVlVW5jaGVja2VkIiksbik6ZD09PTg4fHxkPT09MTIwPyh0LmVudGVyKCJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIiksdC5jb25zdW1lKGQpLHQuZXhpdCgidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLG4pOmEoZCl9ZnVuY3Rpb24gbihkKXtyZXR1cm4gZD09PTkzPyh0LmVudGVyKCJ0YXNrTGlzdENoZWNrTWFya2VyIiksdC5jb25zdW1lKGQpLHQuZXhpdCgidGFza0xpc3RDaGVja01hcmtlciIpLHQuZXhpdCgidGFza0xpc3RDaGVjayIpLG8pOmEoZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gT2UoZCk/ZShkKTpRZShkKT90LmNoZWNrKHt0b2tlbml6ZTp0RnR9LGUsYSkoZCk6YShkKX19ZnVuY3Rpb24gdEZ0KHQsZSxhKXtyZXR1cm4gaXQodCxpLCJ3aGl0ZXNwYWNlIik7ZnVuY3Rpb24gaShyKXtyZXR1cm4gcj09PW51bGw/YShyKTplKHIpfX12YXIgSk50LG5vZT1iKCgpPT57UjEoKTskdCgpO0pOdD17bmFtZToidGFza2xpc3RDaGVjayIsdG9rZW5pemU6ZUZ0fX0pO3ZhciBvb2U9YigoKT0+e3NvZSgpO25vZSgpfSk7ZnVuY3Rpb24gbG9lKHQpe3JldHVybiBQOShbalQoKSxoTCgpLG1MKHQpLHZMKCksd0woKV0pfWZ1bmN0aW9uIHhJMSh0KXtyZXR1cm4gSTkoW0dUKCksdUwodCksZkwoKSxiTCgpLHlMKCkseEwoKV0pfXZhciBjb2U9YigoKT0+e045KCk7Ym5lKCk7am5lKCk7R25lKCk7ZW9lKCk7cm9lKCk7b29lKCl9KTtmdW5jdGlvbiBCMyh0KXtsZXQgZT10aGlzLGE9dHx8YUZ0LGk9ZS5kYXRhKCkscj1pLm1pY3JvbWFya0V4dGVuc2lvbnN8fChpLm1pY3JvbWFya0V4dGVuc2lvbnM9W10pLHM9aS5mcm9tTWFya2Rvd25FeHRlbnNpb25zfHwoaS5mcm9tTWFya2Rvd25FeHRlbnNpb25zPVtdKSxuPWkudG9NYXJrZG93bkV4dGVuc2lvbnN8fChpLnRvTWFya2Rvd25FeHRlbnNpb25zPVtdKTtyLnB1c2gobG9lKGEpKSxzLnB1c2goUlQoKSksbi5wdXNoKEJUKGEpKX12YXIgYUZ0LGRvZT1iKCgpPT57bm5lKCk7Y29lKCk7YUZ0PXt9fSk7dmFyIHBvZT1iKCgpPT57ZG9lKCl9KTtmdW5jdGlvbiBNTCh0KXtsZXQgZT10fHx7fSxhPSEwLGk9e30scj1bW11dLHM9W10sbj1bXSxkPUk5KFt7ZW50ZXI6e2Jsb2NrUXVvdGU6JCxjb2RlRmVuY2VkOnJlLGNvZGVGZW5jZWRGZW5jZUluZm86bSxjb2RlRmVuY2VkRmVuY2VNZXRhOm0sY29kZUluZGVudGVkOndlLGNvZGVUZXh0OmllLGNvbnRlbnQ6X2UsZGVmaW5pdGlvbjokZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6UCxkZWZpbml0aW9uTGFiZWxTdHJpbmc6bSxkZWZpbml0aW9uVGl0bGVTdHJpbmc6bSxlbXBoYXNpczpMdCxodG1sRmxvdzpWZSxodG1sVGV4dDpvdCxpbWFnZTpjZSxsYWJlbDptLGxpbms6a2UsbGlzdEl0ZW1NYXJrZXI6QyxsaXN0SXRlbVZhbHVlOnEsbGlzdE9yZGVyZWQ6TCxsaXN0VW5vcmRlcmVkOkEscGFyYWdyYXBoOlIscmVmZXJlbmNlOm0scmVzb3VyY2U6WixyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOlkscmVzb3VyY2VUaXRsZVN0cmluZzptLHNldGV4dEhlYWRpbmc6dGUsc3Ryb25nOlp0fSxleGl0OnthdHhIZWFkaW5nOkZlLGF0eEhlYWRpbmdTZXF1ZW5jZTpwZSxhdXRvbGlua0VtYWlsOktyLGF1dG9saW5rUHJvdG9jb2w6WHIsYmxvY2tRdW90ZTpWLGNoYXJhY3RlckVzY2FwZVZhbHVlOmVlLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsOmYxLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6ZjEsY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWU6ZWksY29kZUZlbmNlZDpILGNvZGVGZW5jZWRGZW5jZTptZSxjb2RlRmVuY2VkRmVuY2VJbmZvOmosY29kZUZlbmNlZEZlbmNlTWV0YTpOLGNvZGVGbG93VmFsdWU6dmUsY29kZUluZGVudGVkOkgsY29kZVRleHQ6c2UsY29kZVRleHREYXRhOmVlLGRhdGE6ZWUsZGVmaW5pdGlvbjpkZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6SyxkZWZpbml0aW9uTGFiZWxTdHJpbmc6QixkZWZpbml0aW9uVGl0bGVTdHJpbmc6ZmUsZW1waGFzaXM6VGUsaGFyZEJyZWFrRXNjYXBlOlBlLGhhcmRCcmVha1RyYWlsaW5nOlBlLGh0bWxGbG93Onh0LGh0bWxGbG93RGF0YTplZSxodG1sVGV4dDp4dCxodG1sVGV4dERhdGE6ZWUsaW1hZ2U6YmUsbGFiZWw6RCxsYWJlbFRleHQ6VyxsaW5lRW5kaW5nOmFlLGxpbms6YmUsbGlzdE9yZGVyZWQ6eixsaXN0VW5vcmRlcmVkOkUscGFyYWdyYXBoOlUscmVmZXJlbmNlOk4scmVmZXJlbmNlU3RyaW5nOk8scmVzb3VyY2U6TixyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOm9lLHJlc291cmNlVGl0bGVTdHJpbmc6Z2Usc2V0ZXh0SGVhZGluZzp5ZSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOldlLHNldGV4dEhlYWRpbmdUZXh0OnplLHN0cm9uZzpsdCx0aGVtYXRpY0JyZWFrOmN0fX0sLi4uZS5odG1sRXh0ZW5zaW9uc3x8W11dKSxjPXtkZWZpbml0aW9uczppLHRpZ2h0U3RhY2s6bn0scD17YnVmZmVyOm0sZW5jb2RlOmssZ2V0RGF0YTp2LGxpbmVFbmRpbmdJZk5lZWRlZDpfLG9wdGlvbnM6ZSxyYXc6UyxyZXN1bWU6eCxzZXREYXRhOnksdGFnOk19LGw9ZS5kZWZhdWx0TGluZUVuZGluZztyZXR1cm4gZjtmdW5jdGlvbiBmKEllKXtsZXQgWmU9LTEsTDE9MCx5Mj1bXSxFMj1bXSx0YT1bXTtmb3IoOysrWmU8SWUubGVuZ3RoOykhbCYmKEllW1plXVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxJZVtaZV1bMV0udHlwZT09PSJsaW5lRW5kaW5nQmxhbmsiKSYmKGw9SWVbWmVdWzJdLnNsaWNlU2VyaWFsaXplKEllW1plXVsxXSkpLChJZVtaZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fEllW1plXVsxXS50eXBlPT09Imxpc3RVbm9yZGVyZWQiKSYmKEllW1plXVswXT09PSJlbnRlciI/eTIucHVzaChaZSk6ZyhJZS5zbGljZSh5Mi5wb3AoKSxaZSkpKSxJZVtaZV1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKEllW1plXVswXT09PSJlbnRlciI/KHRhPVkxKHRhLEllLnNsaWNlKEwxLFplKSksTDE9WmUpOihFMj1ZMShFMixJZS5zbGljZShMMSxaZSsxKSksTDE9WmUrMSkpO0UyPVkxKEUyLHRhKSxFMj1ZMShFMixJZS5zbGljZShMMSkpLFplPS0xO2xldCBQMj1FMjtmb3IoZC5lbnRlci5udWxsJiZkLmVudGVyLm51bGwuY2FsbChwKTsrK1plPEllLmxlbmd0aDspe2xldCBlbj1kW1AyW1plXVswXV0sdG49UDJbWmVdWzFdLnR5cGUsYW49ZW5bdG5dO2hvZS5jYWxsKGVuLHRuKSYmYW4mJmFuLmNhbGwoe3NsaWNlU2VyaWFsaXplOlAyW1plXVsyXS5zbGljZVNlcmlhbGl6ZSwuLi5wfSxQMltaZV1bMV0pfXJldHVybiBkLmV4aXQubnVsbCYmZC5leGl0Lm51bGwuY2FsbChwKSxyWzBdLmpvaW4oIiIpfWZ1bmN0aW9uIGcoSWUpe2xldCBaZT1JZS5sZW5ndGgsTDE9MCx5Mj0wLEUyPSExLHRhO2Zvcig7KytMMTxaZTspe2xldCBQMj1JZVtMMV07aWYoUDJbMV0uX2NvbnRhaW5lcil0YT12b2lkIDAsUDJbMF09PT0iZW50ZXIiP3kyKys6eTItLTtlbHNlIHN3aXRjaChQMlsxXS50eXBlKXtjYXNlImxpc3RJdGVtUHJlZml4Ijp7UDJbMF09PT0iZXhpdCImJih0YT0hMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpicmVhaztjYXNlImxpbmVFbmRpbmdCbGFuayI6e1AyWzBdPT09ImVudGVyIiYmIXkyJiYodGE/dGE9dm9pZCAwOkUyPSEwKTticmVha31kZWZhdWx0OnRhPXZvaWQgMH19SWVbMF1bMV0uX2xvb3NlPUUyfWZ1bmN0aW9uIHkoSWUsWmUpe2NbSWVdPVplfWZ1bmN0aW9uIHYoSWUpe3JldHVybiBjW0llXX1mdW5jdGlvbiBtKCl7ci5wdXNoKFtdKX1mdW5jdGlvbiB4KCl7cmV0dXJuIHIucG9wKCkuam9pbigiIil9ZnVuY3Rpb24gTShJZSl7YSYmKHkoImxhc3RXYXNUYWciLCEwKSxyW3IubGVuZ3RoLTFdLnB1c2goSWUpKX1mdW5jdGlvbiBTKEllKXt5KCJsYXN0V2FzVGFnIikscltyLmxlbmd0aC0xXS5wdXNoKEllKX1mdW5jdGlvbiBGKCl7UyhsfHxgCmApfWZ1bmN0aW9uIF8oKXtsZXQgSWU9cltyLmxlbmd0aC0xXSxaZT1JZVtJZS5sZW5ndGgtMV0sTDE9WmU/WmUuY2hhckNvZGVBdChaZS5sZW5ndGgtMSk6bnVsbDtMMT09PTEwfHxMMT09PTEzfHxMMT09PW51bGx8fEYoKX1mdW5jdGlvbiBrKEllKXtyZXR1cm4gdigiaWdub3JlRW5jb2RlIik/SWU6RjkoSWUpfWZ1bmN0aW9uIE4oKXt4KCl9ZnVuY3Rpb24gTChJZSl7bi5wdXNoKCFJZS5fbG9vc2UpLF8oKSxNKCI8b2wiKSx5KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiBBKEllKXtuLnB1c2goIUllLl9sb29zZSksXygpLE0oIjx1bCIpLHkoImV4cGVjdEZpcnN0SXRlbSIsITApfWZ1bmN0aW9uIHEoSWUpe2lmKHYoImV4cGVjdEZpcnN0SXRlbSIpKXtsZXQgWmU9TnVtYmVyLnBhcnNlSW50KHRoaXMuc2xpY2VTZXJpYWxpemUoSWUpLDEwKTtaZSE9PTEmJk0oJyBzdGFydD0iJytrKFN0cmluZyhaZSkpKyciJyl9fWZ1bmN0aW9uIEMoKXt2KCJleHBlY3RGaXJzdEl0ZW0iKT9NKCI+Iik6VCgpLF8oKSxNKCI8bGk+IikseSgiZXhwZWN0Rmlyc3RJdGVtIikseSgibGFzdFdhc1RhZyIpfWZ1bmN0aW9uIHooKXtUKCksbi5wb3AoKSxGKCksTSgiPC9vbD4iKX1mdW5jdGlvbiBFKCl7VCgpLG4ucG9wKCksRigpLE0oIjwvdWw+Iil9ZnVuY3Rpb24gVCgpe3YoImxhc3RXYXNUYWciKSYmIXYoInNsdXJwQWxsTGluZUVuZGluZ3MiKSYmXygpLE0oIjwvbGk+IikseSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uICQoKXtuLnB1c2goITEpLF8oKSxNKCI8YmxvY2txdW90ZT4iKX1mdW5jdGlvbiBWKCl7bi5wb3AoKSxfKCksTSgiPC9ibG9ja3F1b3RlPiIpLHkoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBSKCl7bltuLmxlbmd0aC0xXXx8KF8oKSxNKCI8cD4iKSkseSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIFUoKXtuW24ubGVuZ3RoLTFdP3koInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKTpNKCI8L3A+Iil9ZnVuY3Rpb24gcmUoKXtfKCksTSgiPHByZT48Y29kZSIpLHkoImZlbmNlc0NvdW50IiwwKX1mdW5jdGlvbiBqKCl7bGV0IEllPXgoKTtNKCcgY2xhc3M9Imxhbmd1YWdlLScrSWUrJyInKX1mdW5jdGlvbiBtZSgpe2xldCBJZT12KCJmZW5jZXNDb3VudCIpfHwwO0llfHwoTSgiPiIpLHkoInNsdXJwT25lTGluZUVuZGluZyIsITApKSx5KCJmZW5jZXNDb3VudCIsSWUrMSl9ZnVuY3Rpb24gd2UoKXtfKCksTSgiPHByZT48Y29kZT4iKX1mdW5jdGlvbiBIKCl7bGV0IEllPXYoImZlbmNlc0NvdW50Iik7SWUhPT12b2lkIDAmJkllPDImJmMudGlnaHRTdGFjay5sZW5ndGg+MCYmIXYoImxhc3RXYXNUYWciKSYmRigpLHYoImZsb3dDb2RlU2VlbkRhdGEiKSYmXygpLE0oIjwvY29kZT48L3ByZT4iKSxJZSE9PXZvaWQgMCYmSWU8MiYmXygpLHkoImZsb3dDb2RlU2VlbkRhdGEiKSx5KCJmZW5jZXNDb3VudCIpLHkoInNsdXJwT25lTGluZUVuZGluZyIpfWZ1bmN0aW9uIGNlKCl7cy5wdXNoKHtpbWFnZTohMH0pLGE9dm9pZCAwfWZ1bmN0aW9uIGtlKCl7cy5wdXNoKHt9KX1mdW5jdGlvbiBXKEllKXtzW3MubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShJZSl9ZnVuY3Rpb24gRCgpe3Nbcy5sZW5ndGgtMV0ubGFiZWw9eCgpfWZ1bmN0aW9uIE8oSWUpe3Nbcy5sZW5ndGgtMV0ucmVmZXJlbmNlSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShJZSl9ZnVuY3Rpb24gWigpe20oKSxzW3MubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPSIifWZ1bmN0aW9uIFkoKXttKCkseSgiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24gb2UoKXtzW3MubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXgoKSx5KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBnZSgpe3Nbcy5sZW5ndGgtMV0udGl0bGU9eCgpfWZ1bmN0aW9uIGJlKCl7bGV0IEllPXMubGVuZ3RoLTEsWmU9c1tJZV0sTDE9WmUucmVmZXJlbmNlSWR8fFplLmxhYmVsSWQseTI9WmUuZGVzdGluYXRpb249PT12b2lkIDA/aVtQMShMMSldOlplO2ZvcihhPSEwO0llLS07KWlmKHNbSWVdLmltYWdlKXthPXZvaWQgMDticmVha31aZS5pbWFnZT8oTSgnPGltZyBzcmM9IicrRHIoeTIuZGVzdGluYXRpb24sZS5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDppRnQpKyciIGFsdD0iJyksUyhaZS5sYWJlbCksTSgnIicpKTpNKCc8YSBocmVmPSInK0RyKHkyLmRlc3RpbmF0aW9uLGUuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6dW9lKSsnIicpLE0oeTIudGl0bGU/JyB0aXRsZT0iJyt5Mi50aXRsZSsnIic6IiIpLFplLmltYWdlP00oIiAvPiIpOihNKCI+IiksUyhaZS5sYWJlbCksTSgiPC9hPiIpKSxzLnBvcCgpfWZ1bmN0aW9uICRlKCl7bSgpLHMucHVzaCh7fSl9ZnVuY3Rpb24gQihJZSl7eCgpLHNbcy5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKEllKX1mdW5jdGlvbiBQKCl7bSgpLHkoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIEsoKXtzW3MubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXgoKSx5KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBmZSgpe3Nbcy5sZW5ndGgtMV0udGl0bGU9eCgpfWZ1bmN0aW9uIGRlKCl7bGV0IEllPXNbcy5sZW5ndGgtMV0sWmU9UDEoSWUubGFiZWxJZCk7eCgpLGhvZS5jYWxsKGksWmUpfHwoaVtaZV09c1tzLmxlbmd0aC0xXSkscy5wb3AoKX1mdW5jdGlvbiBfZSgpe3koInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX1mdW5jdGlvbiBwZShJZSl7digiaGVhZGluZ1JhbmsiKXx8KHkoImhlYWRpbmdSYW5rIix0aGlzLnNsaWNlU2VyaWFsaXplKEllKS5sZW5ndGgpLF8oKSxNKCI8aCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpKX1mdW5jdGlvbiB0ZSgpe20oKSx5KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gemUoKXt5KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCl9ZnVuY3Rpb24gRmUoKXtNKCI8L2giK3YoImhlYWRpbmdSYW5rIikrIj4iKSx5KCJoZWFkaW5nUmFuayIpfWZ1bmN0aW9uIFdlKEllKXt5KCJoZWFkaW5nUmFuayIsdGhpcy5zbGljZVNlcmlhbGl6ZShJZSkuY2hhckNvZGVBdCgwKT09PTYxPzE6Mil9ZnVuY3Rpb24geWUoKXtsZXQgSWU9eCgpO18oKSxNKCI8aCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpLFMoSWUpLE0oIjwvaCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpLHkoInNsdXJwQWxsTGluZUVuZGluZ3MiKSx5KCJoZWFkaW5nUmFuayIpfWZ1bmN0aW9uIGVlKEllKXtTKGsodGhpcy5zbGljZVNlcmlhbGl6ZShJZSkpKX1mdW5jdGlvbiBhZShJZSl7aWYoIXYoInNsdXJwQWxsTGluZUVuZGluZ3MiKSl7aWYodigic2x1cnBPbmVMaW5lRW5kaW5nIikpe3koInNsdXJwT25lTGluZUVuZGluZyIpO3JldHVybn1pZih2KCJpbkNvZGVUZXh0Iikpe1MoIiAiKTtyZXR1cm59UyhrKHRoaXMuc2xpY2VTZXJpYWxpemUoSWUpKSl9fWZ1bmN0aW9uIHZlKEllKXtTKGsodGhpcy5zbGljZVNlcmlhbGl6ZShJZSkpKSx5KCJmbG93Q29kZVNlZW5EYXRhIiwhMCl9ZnVuY3Rpb24gUGUoKXtNKCI8YnIgLz4iKX1mdW5jdGlvbiBWZSgpe18oKSxvdCgpfWZ1bmN0aW9uIHh0KCl7eSgiaWdub3JlRW5jb2RlIil9ZnVuY3Rpb24gb3QoKXtlLmFsbG93RGFuZ2Vyb3VzSHRtbCYmeSgiaWdub3JlRW5jb2RlIiwhMCl9ZnVuY3Rpb24gTHQoKXtNKCI8ZW0+Iil9ZnVuY3Rpb24gWnQoKXtNKCI8c3Ryb25nPiIpfWZ1bmN0aW9uIGllKCl7eSgiaW5Db2RlVGV4dCIsITApLE0oIjxjb2RlPiIpfWZ1bmN0aW9uIHNlKCl7eSgiaW5Db2RlVGV4dCIpLE0oIjwvY29kZT4iKX1mdW5jdGlvbiBUZSgpe00oIjwvZW0+Iil9ZnVuY3Rpb24gbHQoKXtNKCI8L3N0cm9uZz4iKX1mdW5jdGlvbiBjdCgpe18oKSxNKCI8aHIgLz4iKX1mdW5jdGlvbiBmMShJZSl7eSgiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIsSWUudHlwZSl9ZnVuY3Rpb24gZWkoSWUpe2xldCBaZT10aGlzLnNsaWNlU2VyaWFsaXplKEllKSxMMT12KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIik/TzMoWmUsdigiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KTpCbihaZSk7UyhrKEwxKSkseSgiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpfWZ1bmN0aW9uIFhyKEllKXtsZXQgWmU9dGhpcy5zbGljZVNlcmlhbGl6ZShJZSk7TSgnPGEgaHJlZj0iJytEcihaZSxlLmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOnVvZSkrJyI+JyksUyhrKFplKSksTSgiPC9hPiIpfWZ1bmN0aW9uIEtyKEllKXtsZXQgWmU9dGhpcy5zbGljZVNlcmlhbGl6ZShJZSk7TSgnPGEgaHJlZj0iJytEcigibWFpbHRvOiIrWmUpKyciPicpLFMoayhaZSkpLE0oIjwvYT4iKX19dmFyIGhvZSx1b2UsaUZ0LHpMPWIoKCk9PntxNigpOyRyKCk7TjkoKTtBOSgpO1VUKCk7Um4oKTtFcigpO2hvZT17fS5oYXNPd25Qcm9wZXJ0eSx1b2U9L14oaHR0cHM/fGlyY3M/fG1haWx0b3x4bXBwKSQvaSxpRnQ9L15odHRwcz8kL2l9KTtmdW5jdGlvbiByRnQodCl7bGV0IGU9dC5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuY29udGVudEluaXRpYWwsaSxyKSxhO3JldHVybiBlO2Z1bmN0aW9uIGkobyl7aWYobz09PW51bGwpe3QuY29uc3VtZShvKTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmciKSx0LmNvbnN1bWUobyksdC5leGl0KCJsaW5lRW5kaW5nIiksaXQodCxlLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gcihvKXtyZXR1cm4gdC5lbnRlcigicGFyYWdyYXBoIikscyhvKX1mdW5jdGlvbiBzKG8pe2xldCBkPXQuZW50ZXIoImNodW5rVGV4dCIse2NvbnRlbnRUeXBlOiJ0ZXh0IixwcmV2aW91czphfSk7cmV0dXJuIGEmJihhLm5leHQ9ZCksYT1kLG4obyl9ZnVuY3Rpb24gbihvKXtpZihvPT09bnVsbCl7dC5leGl0KCJjaHVua1RleHQiKSx0LmV4aXQoInBhcmFncmFwaCIpLHQuY29uc3VtZShvKTtyZXR1cm59cmV0dXJuIE9lKG8pPyh0LmNvbnN1bWUobyksdC5leGl0KCJjaHVua1RleHQiKSxzKToodC5jb25zdW1lKG8pLG4pfX12YXIgZm9lLG1vZT1iKCgpPT57UjEoKTskdCgpO2ZvZT17dG9rZW5pemU6ckZ0fX0pO2Z1bmN0aW9uIHNGdCh0KXtsZXQgZT10aGlzLGE9W10saT0wLHIscyxuO3JldHVybiBvO2Z1bmN0aW9uIG8oUyl7aWYoaTxhLmxlbmd0aCl7bGV0IEY9YVtpXTtyZXR1cm4gZS5jb250YWluZXJTdGF0ZT1GWzFdLHQuYXR0ZW1wdChGWzBdLmNvbnRpbnVhdGlvbixkLGMpKFMpfXJldHVybiBjKFMpfWZ1bmN0aW9uIGQoUyl7aWYoaSsrLGUuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdyl7ZS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCxyJiZNKCk7bGV0IEY9ZS5ldmVudHMubGVuZ3RoLF89RixrO2Zvcig7Xy0tOylpZihlLmV2ZW50c1tfXVswXT09PSJleGl0IiYmZS5ldmVudHNbX11bMV0udHlwZT09PSJjaHVua0Zsb3ciKXtrPWUuZXZlbnRzW19dWzFdLmVuZDticmVha314KGkpO2xldCBOPUY7Zm9yKDtOPGUuZXZlbnRzLmxlbmd0aDspZS5ldmVudHNbTl1bMV0uZW5kPXsuLi5rfSxOKys7cmV0dXJuIE8xKGUuZXZlbnRzLF8rMSwwLGUuZXZlbnRzLnNsaWNlKEYpKSxlLmV2ZW50cy5sZW5ndGg9TixjKFMpfXJldHVybiBvKFMpfWZ1bmN0aW9uIGMoUyl7aWYoaT09PWEubGVuZ3RoKXtpZighcilyZXR1cm4gZihTKTtpZihyLmN1cnJlbnRDb25zdHJ1Y3QmJnIuY3VycmVudENvbnN0cnVjdC5jb25jcmV0ZSlyZXR1cm4geShTKTtlLmludGVycnVwdD0hIShyLmN1cnJlbnRDb25zdHJ1Y3QmJiFyLl9nZm1UYWJsZUR5bmFtaWNJbnRlcnJ1cHRIYWNrKX1yZXR1cm4gZS5jb250YWluZXJTdGF0ZT17fSx0LmNoZWNrKGdvZSxwLGwpKFMpfWZ1bmN0aW9uIHAoUyl7cmV0dXJuIHImJk0oKSx4KGkpLGYoUyl9ZnVuY3Rpb24gbChTKXtyZXR1cm4gZS5wYXJzZXIubGF6eVtlLm5vdygpLmxpbmVdPWkhPT1hLmxlbmd0aCxuPWUubm93KCkub2Zmc2V0LHkoUyl9ZnVuY3Rpb24gZihTKXtyZXR1cm4gZS5jb250YWluZXJTdGF0ZT17fSx0LmF0dGVtcHQoZ29lLGcseSkoUyl9ZnVuY3Rpb24gZyhTKXtyZXR1cm4gaSsrLGEucHVzaChbZS5jdXJyZW50Q29uc3RydWN0LGUuY29udGFpbmVyU3RhdGVdKSxmKFMpfWZ1bmN0aW9uIHkoUyl7aWYoUz09PW51bGwpe3ImJk0oKSx4KDApLHQuY29uc3VtZShTKTtyZXR1cm59cmV0dXJuIHI9cnx8ZS5wYXJzZXIuZmxvdyhlLm5vdygpKSx0LmVudGVyKCJjaHVua0Zsb3ciLHtfdG9rZW5pemVyOnIsY29udGVudFR5cGU6ImZsb3ciLHByZXZpb3VzOnN9KSx2KFMpfWZ1bmN0aW9uIHYoUyl7aWYoUz09PW51bGwpe20odC5leGl0KCJjaHVua0Zsb3ciKSwhMCkseCgwKSx0LmNvbnN1bWUoUyk7cmV0dXJufXJldHVybiBPZShTKT8odC5jb25zdW1lKFMpLG0odC5leGl0KCJjaHVua0Zsb3ciKSksaT0wLGUuaW50ZXJydXB0PXZvaWQgMCxvKToodC5jb25zdW1lKFMpLHYpfWZ1bmN0aW9uIG0oUyxGKXtsZXQgXz1lLnNsaWNlU3RyZWFtKFMpO2lmKEYmJl8ucHVzaChudWxsKSxTLnByZXZpb3VzPXMscyYmKHMubmV4dD1TKSxzPVMsci5kZWZpbmVTa2lwKFMuc3RhcnQpLHIud3JpdGUoXyksZS5wYXJzZXIubGF6eVtTLnN0YXJ0LmxpbmVdKXtsZXQgaz1yLmV2ZW50cy5sZW5ndGg7Zm9yKDtrLS07KWlmKHIuZXZlbnRzW2tdWzFdLnN0YXJ0Lm9mZnNldDxuJiYoIXIuZXZlbnRzW2tdWzFdLmVuZHx8ci5ldmVudHNba11bMV0uZW5kLm9mZnNldD5uKSlyZXR1cm47bGV0IE49ZS5ldmVudHMubGVuZ3RoLEw9TixBLHE7Zm9yKDtMLS07KWlmKGUuZXZlbnRzW0xdWzBdPT09ImV4aXQiJiZlLmV2ZW50c1tMXVsxXS50eXBlPT09ImNodW5rRmxvdyIpe2lmKEEpe3E9ZS5ldmVudHNbTF1bMV0uZW5kO2JyZWFrfUE9ITB9Zm9yKHgoaSksaz1OO2s8ZS5ldmVudHMubGVuZ3RoOyllLmV2ZW50c1trXVsxXS5lbmQ9ey4uLnF9LGsrKztPMShlLmV2ZW50cyxMKzEsMCxlLmV2ZW50cy5zbGljZShOKSksZS5ldmVudHMubGVuZ3RoPWt9fWZ1bmN0aW9uIHgoUyl7bGV0IEY9YS5sZW5ndGg7Zm9yKDtGLS0gPlM7KXtsZXQgXz1hW0ZdO2UuY29udGFpbmVyU3RhdGU9X1sxXSxfWzBdLmV4aXQuY2FsbChlLHQpfWEubGVuZ3RoPVN9ZnVuY3Rpb24gTSgpe3Iud3JpdGUoW251bGxdKSxzPXZvaWQgMCxyPXZvaWQgMCxlLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwfX1mdW5jdGlvbiBuRnQodCxlLGEpe3JldHVybiBpdCh0LHQuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRvY3VtZW50LGUsYSksImxpbmVQcmVmaXgiLHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCl9dmFyIGJvZSxnb2Usdm9lPWIoKCk9PntSMSgpOyR0KCk7JHIoKTtib2U9e3Rva2VuaXplOnNGdH0sZ29lPXt0b2tlbml6ZTpuRnR9fSk7ZnVuY3Rpb24gb0Z0KHQpe2xldCBlPXRoaXMsYT10LmF0dGVtcHQoUHIsaSx0LmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5mbG93SW5pdGlhbCxyLGl0KHQsdC5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvdyxyLHQuYXR0ZW1wdChRVCxyKSksImxpbmVQcmVmaXgiKSkpO3JldHVybiBhO2Z1bmN0aW9uIGkocyl7aWYocz09PW51bGwpe3QuY29uc3VtZShzKTtyZXR1cm59cmV0dXJuIHQuZW50ZXIoImxpbmVFbmRpbmdCbGFuayIpLHQuY29uc3VtZShzKSx0LmV4aXQoImxpbmVFbmRpbmdCbGFuayIpLGUuY3VycmVudENvbnN0cnVjdD12b2lkIDAsYX1mdW5jdGlvbiByKHMpe2lmKHM9PT1udWxsKXt0LmNvbnN1bWUocyk7cmV0dXJufXJldHVybiB0LmVudGVyKCJsaW5lRW5kaW5nIiksdC5jb25zdW1lKHMpLHQuZXhpdCgibGluZUVuZGluZyIpLGUuY3VycmVudENvbnN0cnVjdD12b2lkIDAsYX19dmFyIHlvZSx4b2U9YigoKT0+e1o5KCk7UjEoKTskdCgpO3lvZT17dG9rZW5pemU6b0Z0fX0pO2Z1bmN0aW9uIHdvZSh0KXtyZXR1cm57cmVzb2x2ZUFsbDpNb2UodD09PSJ0ZXh0Ij9sRnQ6dm9pZCAwKSx0b2tlbml6ZTplfTtmdW5jdGlvbiBlKGEpe2xldCBpPXRoaXMscj10aGlzLnBhcnNlci5jb25zdHJ1Y3RzW3RdLHM9YS5hdHRlbXB0KHIsbixvKTtyZXR1cm4gbjtmdW5jdGlvbiBuKHApe3JldHVybiBjKHApP3MocCk6byhwKX1mdW5jdGlvbiBvKHApe2lmKHA9PT1udWxsKXthLmNvbnN1bWUocCk7cmV0dXJufXJldHVybiBhLmVudGVyKCJkYXRhIiksYS5jb25zdW1lKHApLGR9ZnVuY3Rpb24gZChwKXtyZXR1cm4gYyhwKT8oYS5leGl0KCJkYXRhIikscyhwKSk6KGEuY29uc3VtZShwKSxkKX1mdW5jdGlvbiBjKHApe2lmKHA9PT1udWxsKXJldHVybiEwO2xldCBsPXJbcF0sZj0tMTtpZihsKWZvcig7KytmPGwubGVuZ3RoOyl7bGV0IGc9bFtmXTtpZighZy5wcmV2aW91c3x8Zy5wcmV2aW91cy5jYWxsKGksaS5wcmV2aW91cykpcmV0dXJuITB9cmV0dXJuITF9fX1mdW5jdGlvbiBNb2UodCl7cmV0dXJuIGU7ZnVuY3Rpb24gZShhLGkpe2xldCByPS0xLHM7Zm9yKDsrK3I8PWEubGVuZ3RoOylzPT09dm9pZCAwP2Fbcl0mJmFbcl1bMV0udHlwZT09PSJkYXRhIiYmKHM9cixyKyspOighYVtyXXx8YVtyXVsxXS50eXBlIT09ImRhdGEiKSYmKHIhPT1zKzImJihhW3NdWzFdLmVuZD1hW3ItMV1bMV0uZW5kLGEuc3BsaWNlKHMrMixyLXMtMikscj1zKzIpLHM9dm9pZCAwKTtyZXR1cm4gdD90KGEsaSk6YX19ZnVuY3Rpb24gbEZ0KHQsZSl7bGV0IGE9MDtmb3IoOysrYTw9dC5sZW5ndGg7KWlmKChhPT09dC5sZW5ndGh8fHRbYV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJnRbYS0xXVsxXS50eXBlPT09ImRhdGEiKXtsZXQgaT10W2EtMV1bMV0scj1lLnNsaWNlU3RyZWFtKGkpLHM9ci5sZW5ndGgsbj0tMSxvPTAsZDtmb3IoO3MtLTspe2xldCBjPXJbc107aWYodHlwZW9mIGM9PSJzdHJpbmciKXtmb3Iobj1jLmxlbmd0aDtjLmNoYXJDb2RlQXQobi0xKT09PTMyOylvKyssbi0tO2lmKG4pYnJlYWs7bj0tMX1lbHNlIGlmKGM9PT0tMilkPSEwLG8rKztlbHNlIGlmKGMhPT0tMSl7cysrO2JyZWFrfX1pZihlLl9jb250ZW50VHlwZVRleHRUcmFpbGluZyYmYT09PXQubGVuZ3RoJiYobz0wKSxvKXtsZXQgYz17dHlwZTphPT09dC5sZW5ndGh8fGR8fG88Mj8ibGluZVN1ZmZpeCI6ImhhcmRCcmVha1RyYWlsaW5nIixzdGFydDp7X2J1ZmZlckluZGV4OnM/bjppLnN0YXJ0Ll9idWZmZXJJbmRleCtuLF9pbmRleDppLnN0YXJ0Ll9pbmRleCtzLGxpbmU6aS5lbmQubGluZSxjb2x1bW46aS5lbmQuY29sdW1uLW8sb2Zmc2V0OmkuZW5kLm9mZnNldC1vfSxlbmQ6ey4uLmkuZW5kfX07aS5lbmQ9ey4uLmMuc3RhcnR9LGkuc3RhcnQub2Zmc2V0PT09aS5lbmQub2Zmc2V0P09iamVjdC5hc3NpZ24oaSxjKToodC5zcGxpY2UoYSwwLFsiZW50ZXIiLGMsZV0sWyJleGl0IixjLGVdKSxhKz0yKX1hKyt9cmV0dXJuIHR9dmFyIHpvZSxrb2UsU29lLGtMPWIoKCk9Pnt6b2U9e3Jlc29sdmVBbGw6TW9lKCl9LGtvZT13b2UoInN0cmluZyIpLFNvZT13b2UoInRleHQiKX0pO3ZhciBTTD17fTtHZShTTCx7YXR0ZW50aW9uTWFya2VyczooKT0+Z0Z0LGNvbnRlbnRJbml0aWFsOigpPT5kRnQsZGlzYWJsZTooKT0+YkZ0LGRvY3VtZW50OigpPT5jRnQsZmxvdzooKT0+aEZ0LGZsb3dJbml0aWFsOigpPT5wRnQsaW5zaWRlU3BhbjooKT0+bUZ0LHN0cmluZzooKT0+dUZ0LHRleHQ6KCk9PmZGdH0pO3ZhciBjRnQsZEZ0LHBGdCxoRnQsdUZ0LGZGdCxtRnQsZ0Z0LGJGdCxDb2U9YigoKT0+e1o5KCk7a0woKTtjRnQ9ezQyOlUyLDQzOlUyLDQ1OlUyLDQ4OlUyLDQ5OlUyLDUwOlUyLDUxOlUyLDUyOlUyLDUzOlUyLDU0OlUyLDU1OlUyLDU2OlUyLDU3OlUyLDYyOlI5fSxkRnQ9ezkxOmlMfSxwRnQ9e1stMl06VTYsWy0xXTpVNiwzMjpVNn0saEZ0PXszNTpzTCw0MjpTMCw0NTpbWTksUzBdLDYwOm9MLDYxOlk5LDk1OlMwLDk2OnE5LDEyNjpxOX0sdUZ0PXszODpIOSw5MjpCOX0sZkZ0PXtbLTVdOlk2LFstNF06WTYsWy0zXTpZNiwzMzpjTCwzODpIOSw0MjpqNiw2MDpbWVQsbExdLDkxOmRMLDkyOltyTCxCOV0sOTM6azAsOTU6ajYsOTY6WlR9LG1GdD17bnVsbDpbajYsem9lXX0sZ0Z0PXtudWxsOls0Miw5NV19LGJGdD17bnVsbDpbXX19KTtmdW5jdGlvbiBfb2UodCxlLGEpe2xldCBpPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTphJiZhLmxpbmV8fDEsY29sdW1uOmEmJmEuY29sdW1ufHwxLG9mZnNldDphJiZhLm9mZnNldHx8MH0scj17fSxzPVtdLG49W10sbz1bXSxkPSEwLGM9e2F0dGVtcHQ6QShOKSxjaGVjazpBKEwpLGNvbnN1bWU6RixlbnRlcjpfLGV4aXQ6ayxpbnRlcnJ1cHQ6QShMLHtpbnRlcnJ1cHQ6ITB9KX0scD17Y29kZTpudWxsLGNvbnRhaW5lclN0YXRlOnt9LGRlZmluZVNraXA6eCxldmVudHM6W10sbm93Om0scGFyc2VyOnQscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTp5LHNsaWNlU3RyZWFtOnYsd3JpdGU6Z30sbD1lLnRva2VuaXplLmNhbGwocCxjKSxmO3JldHVybiBlLnJlc29sdmVBbGwmJnMucHVzaChlKSxwO2Z1bmN0aW9uIGcoRSl7cmV0dXJuIG49WTEobixFKSxNKCksbltuLmxlbmd0aC0xXSE9PW51bGw/W106KHEoZSwwKSxwLmV2ZW50cz1IbihzLHAuZXZlbnRzLHApLHAuZXZlbnRzKX1mdW5jdGlvbiB5KEUsVCl7cmV0dXJuIHlGdCh2KEUpLFQpfWZ1bmN0aW9uIHYoRSl7cmV0dXJuIHZGdChuLEUpfWZ1bmN0aW9uIG0oKXtsZXR7X2J1ZmZlckluZGV4OkUsX2luZGV4OlQsbGluZTokLGNvbHVtbjpWLG9mZnNldDpSfT1pO3JldHVybntfYnVmZmVySW5kZXg6RSxfaW5kZXg6VCxsaW5lOiQsY29sdW1uOlYsb2Zmc2V0OlJ9fWZ1bmN0aW9uIHgoRSl7cltFLmxpbmVdPUUuY29sdW1uLHooKX1mdW5jdGlvbiBNKCl7bGV0IEU7Zm9yKDtpLl9pbmRleDxuLmxlbmd0aDspe2xldCBUPW5baS5faW5kZXhdO2lmKHR5cGVvZiBUPT0ic3RyaW5nIilmb3IoRT1pLl9pbmRleCxpLl9idWZmZXJJbmRleDwwJiYoaS5fYnVmZmVySW5kZXg9MCk7aS5faW5kZXg9PT1FJiZpLl9idWZmZXJJbmRleDxULmxlbmd0aDspUyhULmNoYXJDb2RlQXQoaS5fYnVmZmVySW5kZXgpKTtlbHNlIFMoVCl9fWZ1bmN0aW9uIFMoRSl7ZD12b2lkIDAsZj1FLGw9bChFKX1mdW5jdGlvbiBGKEUpe09lKEUpPyhpLmxpbmUrKyxpLmNvbHVtbj0xLGkub2Zmc2V0Kz1FPT09LTM/MjoxLHooKSk6RSE9PS0xJiYoaS5jb2x1bW4rKyxpLm9mZnNldCsrKSxpLl9idWZmZXJJbmRleDwwP2kuX2luZGV4Kys6KGkuX2J1ZmZlckluZGV4KyssaS5fYnVmZmVySW5kZXg9PT1uW2kuX2luZGV4XS5sZW5ndGgmJihpLl9idWZmZXJJbmRleD0tMSxpLl9pbmRleCsrKSkscC5wcmV2aW91cz1FLGQ9ITB9ZnVuY3Rpb24gXyhFLFQpe2xldCAkPVR8fHt9O3JldHVybiAkLnR5cGU9RSwkLnN0YXJ0PW0oKSxwLmV2ZW50cy5wdXNoKFsiZW50ZXIiLCQscF0pLG8ucHVzaCgkKSwkfWZ1bmN0aW9uIGsoRSl7bGV0IFQ9by5wb3AoKTtyZXR1cm4gVC5lbmQ9bSgpLHAuZXZlbnRzLnB1c2goWyJleGl0IixULHBdKSxUfWZ1bmN0aW9uIE4oRSxUKXtxKEUsVC5mcm9tKX1mdW5jdGlvbiBMKEUsVCl7VC5yZXN0b3JlKCl9ZnVuY3Rpb24gQShFLFQpe3JldHVybiAkO2Z1bmN0aW9uICQoVixSLFUpe2xldCByZSxqLG1lLHdlO3JldHVybiBBcnJheS5pc0FycmF5KFYpP2NlKFYpOiJ0b2tlbml6ZSJpbiBWP2NlKFtWXSk6SChWKTtmdW5jdGlvbiBIKE8pe3JldHVybiBaO2Z1bmN0aW9uIFooWSl7bGV0IG9lPVkhPT1udWxsJiZPW1ldLGdlPVkhPT1udWxsJiZPLm51bGwsYmU9Wy4uLkFycmF5LmlzQXJyYXkob2UpP29lOm9lP1tvZV06W10sLi4uQXJyYXkuaXNBcnJheShnZSk/Z2U6Z2U/W2dlXTpbXV07cmV0dXJuIGNlKGJlKShZKX19ZnVuY3Rpb24gY2UoTyl7cmV0dXJuIHJlPU8saj0wLE8ubGVuZ3RoPT09MD9VOmtlKE9bal0pfWZ1bmN0aW9uIGtlKE8pe3JldHVybiBaO2Z1bmN0aW9uIFooWSl7cmV0dXJuIHdlPUMoKSxtZT1PLE8ucGFydGlhbHx8KHAuY3VycmVudENvbnN0cnVjdD1PKSxPLm5hbWUmJnAucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKE8ubmFtZSk/RChZKTpPLnRva2VuaXplLmNhbGwoVD9PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUocCksVCk6cCxjLFcsRCkoWSl9fWZ1bmN0aW9uIFcoTyl7cmV0dXJuIGQ9ITAsRShtZSx3ZSksUn1mdW5jdGlvbiBEKE8pe3JldHVybiBkPSEwLHdlLnJlc3RvcmUoKSwrK2o8cmUubGVuZ3RoP2tlKHJlW2pdKTpVfX19ZnVuY3Rpb24gcShFLFQpe0UucmVzb2x2ZUFsbCYmIXMuaW5jbHVkZXMoRSkmJnMucHVzaChFKSxFLnJlc29sdmUmJk8xKHAuZXZlbnRzLFQscC5ldmVudHMubGVuZ3RoLVQsRS5yZXNvbHZlKHAuZXZlbnRzLnNsaWNlKFQpLHApKSxFLnJlc29sdmVUbyYmKHAuZXZlbnRzPUUucmVzb2x2ZVRvKHAuZXZlbnRzLHApKX1mdW5jdGlvbiBDKCl7bGV0IEU9bSgpLFQ9cC5wcmV2aW91cywkPXAuY3VycmVudENvbnN0cnVjdCxWPXAuZXZlbnRzLmxlbmd0aCxSPUFycmF5LmZyb20obyk7cmV0dXJue2Zyb206VixyZXN0b3JlOlV9O2Z1bmN0aW9uIFUoKXtpPUUscC5wcmV2aW91cz1ULHAuY3VycmVudENvbnN0cnVjdD0kLHAuZXZlbnRzLmxlbmd0aD1WLG89Uix6KCl9fWZ1bmN0aW9uIHooKXtpLmxpbmUgaW4gciYmaS5jb2x1bW48MiYmKGkuY29sdW1uPXJbaS5saW5lXSxpLm9mZnNldCs9cltpLmxpbmVdLTEpfX1mdW5jdGlvbiB2RnQodCxlKXtsZXQgYT1lLnN0YXJ0Ll9pbmRleCxpPWUuc3RhcnQuX2J1ZmZlckluZGV4LHI9ZS5lbmQuX2luZGV4LHM9ZS5lbmQuX2J1ZmZlckluZGV4LG47aWYoYT09PXIpbj1bdFthXS5zbGljZShpLHMpXTtlbHNle2lmKG49dC5zbGljZShhLHIpLGk+LTEpe2xldCBvPW5bMF07dHlwZW9mIG89PSJzdHJpbmciP25bMF09by5zbGljZShpKTpuLnNoaWZ0KCl9cz4wJiZuLnB1c2godFtyXS5zbGljZSgwLHMpKX1yZXR1cm4gbn1mdW5jdGlvbiB5RnQodCxlKXtsZXQgYT0tMSxpPVtdLHI7Zm9yKDsrK2E8dC5sZW5ndGg7KXtsZXQgcz10W2FdLG47aWYodHlwZW9mIHM9PSJzdHJpbmciKW49cztlbHNlIHN3aXRjaChzKXtjYXNlLTU6e249IlxyIjticmVha31jYXNlLTQ6e249YApgO2JyZWFrfWNhc2UtMzp7bj1gXHIKYDticmVha31jYXNlLTI6e249ZT8iICI6IgkiO2JyZWFrfWNhc2UtMTp7aWYoIWUmJnIpY29udGludWU7bj0iICI7YnJlYWt9ZGVmYXVsdDpuPVN0cmluZy5mcm9tQ2hhckNvZGUocyl9cj1zPT09LTIsaS5wdXNoKG4pfXJldHVybiBpLmpvaW4oIiIpfXZhciBUb2U9YigoKT0+eyR0KCk7JHIoKTtWNigpfSk7ZnVuY3Rpb24gWjYodCl7bGV0IGk9e2NvbnN0cnVjdHM6UDkoW1NMLC4uLih0fHx7fSkuZXh0ZW5zaW9uc3x8W11dKSxjb250ZW50OnIoZm9lKSxkZWZpbmVkOltdLGRvY3VtZW50OnIoYm9lKSxmbG93OnIoeW9lKSxsYXp5Ont9LHN0cmluZzpyKGtvZSksdGV4dDpyKFNvZSl9O3JldHVybiBpO2Z1bmN0aW9uIHIocyl7cmV0dXJuIG47ZnVuY3Rpb24gbihvKXtyZXR1cm4gX29lKGkscyxvKX19fXZhciBDTD1iKCgpPT57TjkoKTttb2UoKTt2b2UoKTt4b2UoKTtrTCgpO0NvZSgpO1RvZSgpfSk7ZnVuY3Rpb24gWDYodCl7Zm9yKDshVjkodCk7KTtyZXR1cm4gdH12YXIgX0w9YigoKT0+e0tUKCl9KTtmdW5jdGlvbiBLNigpe2xldCB0PTEsZT0iIixhPSEwLGk7cmV0dXJuIHI7ZnVuY3Rpb24gcihzLG4sbyl7bGV0IGQ9W10sYyxwLGwsZixnO2ZvcihzPWUrKHR5cGVvZiBzPT0ic3RyaW5nIj9zLnRvU3RyaW5nKCk6bmV3IFRleHREZWNvZGVyKG58fHZvaWQgMCkuZGVjb2RlKHMpKSxsPTAsZT0iIixhJiYocy5jaGFyQ29kZUF0KDApPT09NjUyNzkmJmwrKyxhPXZvaWQgMCk7bDxzLmxlbmd0aDspe2lmKExvZS5sYXN0SW5kZXg9bCxjPUxvZS5leGVjKHMpLGY9YyYmYy5pbmRleCE9PXZvaWQgMD9jLmluZGV4OnMubGVuZ3RoLGc9cy5jaGFyQ29kZUF0KGYpLCFjKXtlPXMuc2xpY2UobCk7YnJlYWt9aWYoZz09PTEwJiZsPT09ZiYmaSlkLnB1c2goLTMpLGk9dm9pZCAwO2Vsc2Ugc3dpdGNoKGkmJihkLnB1c2goLTUpLGk9dm9pZCAwKSxsPGYmJihkLnB1c2gocy5zbGljZShsLGYpKSx0Kz1mLWwpLGcpe2Nhc2UgMDp7ZC5wdXNoKDY1NTMzKSx0Kys7YnJlYWt9Y2FzZSA5Ontmb3IocD1NYXRoLmNlaWwodC80KSo0LGQucHVzaCgtMik7dCsrPHA7KWQucHVzaCgtMSk7YnJlYWt9Y2FzZSAxMDp7ZC5wdXNoKC00KSx0PTE7YnJlYWt9ZGVmYXVsdDppPSEwLHQ9MX1sPWYrMX1yZXR1cm4gbyYmKGkmJmQucHVzaCgtNSksZSYmZC5wdXNoKGUpLGQucHVzaChudWxsKSksZH19dmFyIExvZSxUTD1iKCgpPT57TG9lPS9bXDBcdFxuXHJdL2d9KTtmdW5jdGlvbiBmTjEodCxlLGEpe3JldHVybiB0eXBlb2YgZSE9InN0cmluZyImJihhPWUsZT12b2lkIDApLE1MKGEpKFg2KFo2KGEpLmRvY3VtZW50KCkud3JpdGUoSzYoKSh0LGUsITApKSkpfXZhciAkb2U9YigoKT0+e3pMKCk7Q0woKTtfTCgpO1RMKCk7ekwoKTtDTCgpO19MKCk7VEwoKX0pO2Z1bmN0aW9uIExMKHQsZSxhKXtyZXR1cm4gZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYoYT1lLGU9dm9pZCAwKSx4RnQoYSkoWDYoWjYoYSkuZG9jdW1lbnQoKS53cml0ZShLNigpKHQsZSwhMCkpKSl9ZnVuY3Rpb24geEZ0KHQpe2xldCBlPXt0cmFuc2Zvcm1zOltdLGNhbkNvbnRhaW5Fb2xzOlsiZW1waGFzaXMiLCJmcmFnbWVudCIsImhlYWRpbmciLCJwYXJhZ3JhcGgiLCJzdHJvbmciXSxlbnRlcjp7YXV0b2xpbms6cyhkZSksYXV0b2xpbmtQcm90b2NvbDpBLGF1dG9saW5rRW1haWw6QSxhdHhIZWFkaW5nOnMoQiksYmxvY2tRdW90ZTpzKFkpLGNoYXJhY3RlckVzY2FwZTpBLGNoYXJhY3RlclJlZmVyZW5jZTpBLGNvZGVGZW5jZWQ6cyhvZSksY29kZUZlbmNlZEZlbmNlSW5mbzpuLGNvZGVGZW5jZWRGZW5jZU1ldGE6bixjb2RlSW5kZW50ZWQ6cyhvZSxuKSxjb2RlVGV4dDpzKGdlLG4pLGNvZGVUZXh0RGF0YTpBLGRhdGE6QSxjb2RlRmxvd1ZhbHVlOkEsZGVmaW5pdGlvbjpzKGJlKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6bixkZWZpbml0aW9uTGFiZWxTdHJpbmc6bixkZWZpbml0aW9uVGl0bGVTdHJpbmc6bixlbXBoYXNpczpzKCRlKSxoYXJkQnJlYWtFc2NhcGU6cyhQKSxoYXJkQnJlYWtUcmFpbGluZzpzKFApLGh0bWxGbG93OnMoSyxuKSxodG1sRmxvd0RhdGE6QSxodG1sVGV4dDpzKEssbiksaHRtbFRleHREYXRhOkEsaW1hZ2U6cyhmZSksbGFiZWw6bixsaW5rOnMoZGUpLGxpc3RJdGVtOnMocGUpLGxpc3RJdGVtVmFsdWU6ZixsaXN0T3JkZXJlZDpzKF9lLGwpLGxpc3RVbm9yZGVyZWQ6cyhfZSkscGFyYWdyYXBoOnModGUpLHJlZmVyZW5jZTpILHJlZmVyZW5jZVN0cmluZzpuLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6bixyZXNvdXJjZVRpdGxlU3RyaW5nOm4sc2V0ZXh0SGVhZGluZzpzKEIpLHN0cm9uZzpzKHplKSx0aGVtYXRpY0JyZWFrOnMoV2UpfSxleGl0OnthdHhIZWFkaW5nOmQoKSxhdHhIZWFkaW5nU2VxdWVuY2U6XyxhdXRvbGluazpkKCksYXV0b2xpbmtFbWFpbDpaLGF1dG9saW5rUHJvdG9jb2w6TyxibG9ja1F1b3RlOmQoKSxjaGFyYWN0ZXJFc2NhcGVWYWx1ZTpxLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlckhleGFkZWNpbWFsOmtlLGNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWM6a2UsY2hhcmFjdGVyUmVmZXJlbmNlVmFsdWU6VyxjaGFyYWN0ZXJSZWZlcmVuY2U6RCxjb2RlRmVuY2VkOmQobSksY29kZUZlbmNlZEZlbmNlOnYsY29kZUZlbmNlZEZlbmNlSW5mbzpnLGNvZGVGZW5jZWRGZW5jZU1ldGE6eSxjb2RlRmxvd1ZhbHVlOnEsY29kZUluZGVudGVkOmQoeCksY29kZVRleHQ6ZCgkKSxjb2RlVGV4dERhdGE6cSxkYXRhOnEsZGVmaW5pdGlvbjpkKCksZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nOkYsZGVmaW5pdGlvbkxhYmVsU3RyaW5nOk0sZGVmaW5pdGlvblRpdGxlU3RyaW5nOlMsZW1waGFzaXM6ZCgpLGhhcmRCcmVha0VzY2FwZTpkKHopLGhhcmRCcmVha1RyYWlsaW5nOmQoeiksaHRtbEZsb3c6ZChFKSxodG1sRmxvd0RhdGE6cSxodG1sVGV4dDpkKFQpLGh0bWxUZXh0RGF0YTpxLGltYWdlOmQoUiksbGFiZWw6cmUsbGFiZWxUZXh0OlUsbGluZUVuZGluZzpDLGxpbms6ZChWKSxsaXN0SXRlbTpkKCksbGlzdE9yZGVyZWQ6ZCgpLGxpc3RVbm9yZGVyZWQ6ZCgpLHBhcmFncmFwaDpkKCkscmVmZXJlbmNlU3RyaW5nOmNlLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6aixyZXNvdXJjZVRpdGxlU3RyaW5nOm1lLHJlc291cmNlOndlLHNldGV4dEhlYWRpbmc6ZChMKSxzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlOk4sc2V0ZXh0SGVhZGluZ1RleHQ6ayxzdHJvbmc6ZCgpLHRoZW1hdGljQnJlYWs6ZCgpfX07RG9lKGUsKHR8fHt9KS5tZGFzdEV4dGVuc2lvbnN8fFtdKTtsZXQgYT17fTtyZXR1cm4gaTtmdW5jdGlvbiBpKHllKXtsZXQgZWU9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxhZT17c3RhY2s6W2VlXSx0b2tlblN0YWNrOltdLGNvbmZpZzplLGVudGVyOm8sZXhpdDpjLGJ1ZmZlcjpuLHJlc3VtZTpwLGRhdGE6YX0sdmU9W10sUGU9LTE7Zm9yKDsrK1BlPHllLmxlbmd0aDspaWYoeWVbUGVdWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQifHx5ZVtQZV1bMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkIilpZih5ZVtQZV1bMF09PT0iZW50ZXIiKXZlLnB1c2goUGUpO2Vsc2V7bGV0IFZlPXZlLnBvcCgpO1BlPXIoeWUsVmUsUGUpfWZvcihQZT0tMTsrK1BlPHllLmxlbmd0aDspe2xldCBWZT1lW3llW1BlXVswXV07QW9lLmNhbGwoVmUseWVbUGVdWzFdLnR5cGUpJiZWZVt5ZVtQZV1bMV0udHlwZV0uY2FsbChPYmplY3QuYXNzaWduKHtzbGljZVNlcmlhbGl6ZTp5ZVtQZV1bMl0uc2xpY2VTZXJpYWxpemV9LGFlKSx5ZVtQZV1bMV0pfWlmKGFlLnRva2VuU3RhY2subGVuZ3RoPjApe2xldCBWZT1hZS50b2tlblN0YWNrW2FlLnRva2VuU3RhY2subGVuZ3RoLTFdOyhWZVsxXXx8RW9lKS5jYWxsKGFlLHZvaWQgMCxWZVswXSl9Zm9yKGVlLnBvc2l0aW9uPXtzdGFydDpxbih5ZS5sZW5ndGg+MD95ZVswXVsxXS5zdGFydDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSksZW5kOnFuKHllLmxlbmd0aD4wP3llW3llLmxlbmd0aC0yXVsxXS5lbmQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pfSxQZT0tMTsrK1BlPGUudHJhbnNmb3Jtcy5sZW5ndGg7KWVlPWUudHJhbnNmb3Jtc1tQZV0oZWUpfHxlZTtyZXR1cm4gZWV9ZnVuY3Rpb24gcih5ZSxlZSxhZSl7bGV0IHZlPWVlLTEsUGU9LTEsVmU9ITEseHQsb3QsTHQsWnQ7Zm9yKDsrK3ZlPD1hZTspe2xldCBpZT15ZVt2ZV07c3dpdGNoKGllWzFdLnR5cGUpe2Nhc2UibGlzdFVub3JkZXJlZCI6Y2FzZSJsaXN0T3JkZXJlZCI6Y2FzZSJibG9ja1F1b3RlIjp7aWVbMF09PT0iZW50ZXIiP1BlKys6UGUtLSxadD12b2lkIDA7YnJlYWt9Y2FzZSJsaW5lRW5kaW5nQmxhbmsiOntpZVswXT09PSJlbnRlciImJih4dCYmIVp0JiYhUGUmJiFMdCYmKEx0PXZlKSxadD12b2lkIDApO2JyZWFrfWNhc2UibGluZVByZWZpeCI6Y2FzZSJsaXN0SXRlbVZhbHVlIjpjYXNlImxpc3RJdGVtTWFya2VyIjpjYXNlImxpc3RJdGVtUHJlZml4IjpjYXNlImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSI6YnJlYWs7ZGVmYXVsdDpadD12b2lkIDB9aWYoIVBlJiZpZVswXT09PSJlbnRlciImJmllWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgifHxQZT09PS0xJiZpZVswXT09PSJleGl0IiYmKGllWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCJ8fGllWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQiKSl7aWYoeHQpe2xldCBzZT12ZTtmb3Iob3Q9dm9pZCAwO3NlLS07KXtsZXQgVGU9eWVbc2VdO2lmKFRlWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fFRlWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIil7aWYoVGVbMF09PT0iZXhpdCIpY29udGludWU7b3QmJih5ZVtvdF1bMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIixWZT0hMCksVGVbMV0udHlwZT0ibGluZUVuZGluZyIsb3Q9c2V9ZWxzZSBpZighKFRlWzFdLnR5cGU9PT0ibGluZVByZWZpeCJ8fFRlWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeCJ8fFRlWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UifHxUZVsxXS50eXBlPT09ImJsb2NrUXVvdGVNYXJrZXIifHxUZVsxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWt9THQmJighb3R8fEx0PG90KSYmKHh0Ll9zcHJlYWQ9ITApLHh0LmVuZD1PYmplY3QuYXNzaWduKHt9LG90P3llW290XVsxXS5zdGFydDppZVsxXS5lbmQpLHllLnNwbGljZShvdHx8dmUsMCxbImV4aXQiLHh0LGllWzJdXSksdmUrKyxhZSsrfWlmKGllWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiKXtsZXQgc2U9e3R5cGU6Imxpc3RJdGVtIixfc3ByZWFkOiExLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30saWVbMV0uc3RhcnQpLGVuZDp2b2lkIDB9O3h0PXNlLHllLnNwbGljZSh2ZSwwLFsiZW50ZXIiLHNlLGllWzJdXSksdmUrKyxhZSsrLEx0PXZvaWQgMCxadD0hMH19fXJldHVybiB5ZVtlZV1bMV0uX3NwcmVhZD1WZSxhZX1mdW5jdGlvbiBzKHllLGVlKXtyZXR1cm4gYWU7ZnVuY3Rpb24gYWUodmUpe28uY2FsbCh0aGlzLHllKHZlKSx2ZSksZWUmJmVlLmNhbGwodGhpcyx2ZSl9fWZ1bmN0aW9uIG4oKXt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImZyYWdtZW50IixjaGlsZHJlbjpbXX0pfWZ1bmN0aW9uIG8oeWUsZWUsYWUpe3RoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4ucHVzaCh5ZSksdGhpcy5zdGFjay5wdXNoKHllKSx0aGlzLnRva2VuU3RhY2sucHVzaChbZWUsYWV8fHZvaWQgMF0pLHllLnBvc2l0aW9uPXtzdGFydDpxbihlZS5zdGFydCksZW5kOnZvaWQgMH19ZnVuY3Rpb24gZCh5ZSl7cmV0dXJuIGVlO2Z1bmN0aW9uIGVlKGFlKXt5ZSYmeWUuY2FsbCh0aGlzLGFlKSxjLmNhbGwodGhpcyxhZSl9fWZ1bmN0aW9uIGMoeWUsZWUpe2xldCBhZT10aGlzLnN0YWNrLnBvcCgpLHZlPXRoaXMudG9rZW5TdGFjay5wb3AoKTtpZih2ZSl2ZVswXS50eXBlIT09eWUudHlwZSYmKGVlP2VlLmNhbGwodGhpcyx5ZSx2ZVswXSk6KHZlWzFdfHxFb2UpLmNhbGwodGhpcyx5ZSx2ZVswXSkpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgYCIreWUudHlwZSsiYCAoIitGbih7c3RhcnQ6eWUuc3RhcnQsZW5kOnllLmVuZH0pKyIpOiBpdFx1MjAxOXMgbm90IG9wZW4iKTthZS5wb3NpdGlvbi5lbmQ9cW4oeWUuZW5kKX1mdW5jdGlvbiBwKCl7cmV0dXJuIHkwKHRoaXMuc3RhY2sucG9wKCkpfWZ1bmN0aW9uIGwoKXt0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPSEwfWZ1bmN0aW9uIGYoeWUpe2lmKHRoaXMuZGF0YS5leHBlY3RpbmdGaXJzdExpc3RJdGVtVmFsdWUpe2xldCBlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2VlLnN0YXJ0PU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKHllKSwxMCksdGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZT12b2lkIDB9fWZ1bmN0aW9uIGcoKXtsZXQgeWU9dGhpcy5yZXN1bWUoKSxlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLmxhbmc9eWV9ZnVuY3Rpb24geSgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUubWV0YT15ZX1mdW5jdGlvbiB2KCl7dGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlfHwodGhpcy5idWZmZXIoKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9ITApfWZ1bmN0aW9uIG0oKXtsZXQgeWU9dGhpcy5yZXN1bWUoKSxlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLnZhbHVlPXllLnJlcGxhY2UoL14oXHI/XG58XHIpfChccj9cbnxccikkL2csIiIpLHRoaXMuZGF0YS5mbG93Q29kZUluc2lkZT12b2lkIDB9ZnVuY3Rpb24geCgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudmFsdWU9eWUucmVwbGFjZSgvKFxyP1xufFxyKSQvZywiIil9ZnVuY3Rpb24gTSh5ZSl7bGV0IGVlPXRoaXMucmVzdW1lKCksYWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTthZS5sYWJlbD1lZSxhZS5pZGVudGlmaWVyPVAxKHRoaXMuc2xpY2VTZXJpYWxpemUoeWUpKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFMoKXtsZXQgeWU9dGhpcy5yZXN1bWUoKSxlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLnRpdGxlPXllfWZ1bmN0aW9uIEYoKXtsZXQgeWU9dGhpcy5yZXN1bWUoKSxlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLnVybD15ZX1mdW5jdGlvbiBfKHllKXtsZXQgZWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZighZWUuZGVwdGgpe2xldCBhZT10aGlzLnNsaWNlU2VyaWFsaXplKHllKS5sZW5ndGg7ZWUuZGVwdGg9YWV9fWZ1bmN0aW9uIGsoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz0hMH1mdW5jdGlvbiBOKHllKXtsZXQgZWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtlZS5kZXB0aD10aGlzLnNsaWNlU2VyaWFsaXplKHllKS5jb2RlUG9pbnRBdCgwKT09PTYxPzE6Mn1mdW5jdGlvbiBMKCl7dGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmc9dm9pZCAwfWZ1bmN0aW9uIEEoeWUpe2xldCBhZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLHZlPWFlW2FlLmxlbmd0aC0xXTsoIXZlfHx2ZS50eXBlIT09InRleHQiKSYmKHZlPUZlKCksdmUucG9zaXRpb249e3N0YXJ0OnFuKHllLnN0YXJ0KSxlbmQ6dm9pZCAwfSxhZS5wdXNoKHZlKSksdGhpcy5zdGFjay5wdXNoKHZlKX1mdW5jdGlvbiBxKHllKXtsZXQgZWU9dGhpcy5zdGFjay5wb3AoKTtlZS52YWx1ZSs9dGhpcy5zbGljZVNlcmlhbGl6ZSh5ZSksZWUucG9zaXRpb24uZW5kPXFuKHllLmVuZCl9ZnVuY3Rpb24gQyh5ZSl7bGV0IGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmF0SGFyZEJyZWFrKXtsZXQgYWU9ZWUuY2hpbGRyZW5bZWUuY2hpbGRyZW4ubGVuZ3RoLTFdO2FlLnBvc2l0aW9uLmVuZD1xbih5ZS5lbmQpLHRoaXMuZGF0YS5hdEhhcmRCcmVhaz12b2lkIDA7cmV0dXJufSF0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZyYmZS5jYW5Db250YWluRW9scy5pbmNsdWRlcyhlZS50eXBlKSYmKEEuY2FsbCh0aGlzLHllKSxxLmNhbGwodGhpcyx5ZSkpfWZ1bmN0aW9uIHooKXt0aGlzLmRhdGEuYXRIYXJkQnJlYWs9ITB9ZnVuY3Rpb24gRSgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudmFsdWU9eWV9ZnVuY3Rpb24gVCgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudmFsdWU9eWV9ZnVuY3Rpb24gJCgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudmFsdWU9eWV9ZnVuY3Rpb24gVigpe2xldCB5ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IGVlPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO3llLnR5cGUrPSJSZWZlcmVuY2UiLHllLnJlZmVyZW5jZVR5cGU9ZWUsZGVsZXRlIHllLnVybCxkZWxldGUgeWUudGl0bGV9ZWxzZSBkZWxldGUgeWUuaWRlbnRpZmllcixkZWxldGUgeWUubGFiZWw7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9dm9pZCAwfWZ1bmN0aW9uIFIoKXtsZXQgeWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2xldCBlZT10aGlzLmRhdGEucmVmZXJlbmNlVHlwZXx8InNob3J0Y3V0Ijt5ZS50eXBlKz0iUmVmZXJlbmNlIix5ZS5yZWZlcmVuY2VUeXBlPWVlLGRlbGV0ZSB5ZS51cmwsZGVsZXRlIHllLnRpdGxlfWVsc2UgZGVsZXRlIHllLmlkZW50aWZpZXIsZGVsZXRlIHllLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBVKHllKXtsZXQgZWU9dGhpcy5zbGljZVNlcmlhbGl6ZSh5ZSksYWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTthZS5sYWJlbD1EOShlZSksYWUuaWRlbnRpZmllcj1QMShlZSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiByZSgpe2xldCB5ZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLGVlPXRoaXMucmVzdW1lKCksYWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2U9ITAsYWUudHlwZT09PSJsaW5rIil7bGV0IHZlPXllLmNoaWxkcmVuO2FlLmNoaWxkcmVuPXZlfWVsc2UgYWUuYWx0PWVlfWZ1bmN0aW9uIGooKXtsZXQgeWU9dGhpcy5yZXN1bWUoKSxlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLnVybD15ZX1mdW5jdGlvbiBtZSgpe2xldCB5ZT10aGlzLnJlc3VtZSgpLGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudGl0bGU9eWV9ZnVuY3Rpb24gd2UoKXt0aGlzLmRhdGEuaW5SZWZlcmVuY2U9dm9pZCAwfWZ1bmN0aW9uIEgoKXt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT0iY29sbGFwc2VkIn1mdW5jdGlvbiBjZSh5ZSl7bGV0IGVlPXRoaXMucmVzdW1lKCksYWU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTthZS5sYWJlbD1lZSxhZS5pZGVudGlmaWVyPVAxKHRoaXMuc2xpY2VTZXJpYWxpemUoeWUpKS50b0xvd2VyQ2FzZSgpLHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJmdWxsIn1mdW5jdGlvbiBrZSh5ZSl7dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGU9eWUudHlwZX1mdW5jdGlvbiBXKHllKXtsZXQgZWU9dGhpcy5zbGljZVNlcmlhbGl6ZSh5ZSksYWU9dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGUsdmU7YWU/KHZlPU8zKGVlLGFlPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KSx0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT12b2lkIDApOnZlPUJuKGVlKTtsZXQgUGU9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtQZS52YWx1ZSs9dmV9ZnVuY3Rpb24gRCh5ZSl7bGV0IGVlPXRoaXMuc3RhY2sucG9wKCk7ZWUucG9zaXRpb24uZW5kPXFuKHllLmVuZCl9ZnVuY3Rpb24gTyh5ZSl7cS5jYWxsKHRoaXMseWUpO2xldCBlZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2VlLnVybD10aGlzLnNsaWNlU2VyaWFsaXplKHllKX1mdW5jdGlvbiBaKHllKXtxLmNhbGwodGhpcyx5ZSk7bGV0IGVlPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ZWUudXJsPSJtYWlsdG86Iit0aGlzLnNsaWNlU2VyaWFsaXplKHllKX1mdW5jdGlvbiBZKCl7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBvZSgpe3JldHVybnt0eXBlOiJjb2RlIixsYW5nOm51bGwsbWV0YTpudWxsLHZhbHVlOiIifX1mdW5jdGlvbiBnZSgpe3JldHVybnt0eXBlOiJpbmxpbmVDb2RlIix2YWx1ZToiIn19ZnVuY3Rpb24gYmUoKXtyZXR1cm57dHlwZToiZGVmaW5pdGlvbiIsaWRlbnRpZmllcjoiIixsYWJlbDpudWxsLHRpdGxlOm51bGwsdXJsOiIifX1mdW5jdGlvbiAkZSgpe3JldHVybnt0eXBlOiJlbXBoYXNpcyIsY2hpbGRyZW46W119fWZ1bmN0aW9uIEIoKXtyZXR1cm57dHlwZToiaGVhZGluZyIsZGVwdGg6MCxjaGlsZHJlbjpbXX19ZnVuY3Rpb24gUCgpe3JldHVybnt0eXBlOiJicmVhayJ9fWZ1bmN0aW9uIEsoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIGZlKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24gZGUoKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uIF9lKHllKXtyZXR1cm57dHlwZToibGlzdCIsb3JkZXJlZDp5ZS50eXBlPT09Imxpc3RPcmRlcmVkIixzdGFydDpudWxsLHNwcmVhZDp5ZS5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBwZSh5ZSl7cmV0dXJue3R5cGU6Imxpc3RJdGVtIixzcHJlYWQ6eWUuX3NwcmVhZCxjaGVja2VkOm51bGwsY2hpbGRyZW46W119fWZ1bmN0aW9uIHRlKCl7cmV0dXJue3R5cGU6InBhcmFncmFwaCIsY2hpbGRyZW46W119fWZ1bmN0aW9uIHplKCl7cmV0dXJue3R5cGU6InN0cm9uZyIsY2hpbGRyZW46W119fWZ1bmN0aW9uIEZlKCl7cmV0dXJue3R5cGU6InRleHQiLHZhbHVlOiIifX1mdW5jdGlvbiBXZSgpe3JldHVybnt0eXBlOiJ0aGVtYXRpY0JyZWFrIn19fWZ1bmN0aW9uIHFuKHQpe3JldHVybntsaW5lOnQubGluZSxjb2x1bW46dC5jb2x1bW4sb2Zmc2V0OnQub2Zmc2V0fX1mdW5jdGlvbiBEb2UodCxlKXtsZXQgYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspe2xldCBpPWVbYV07QXJyYXkuaXNBcnJheShpKT9Eb2UodCxpKTp3RnQodCxpKX19ZnVuY3Rpb24gd0Z0KHQsZSl7bGV0IGE7Zm9yKGEgaW4gZSlpZihBb2UuY2FsbChlLGEpKXN3aXRjaChhKXtjYXNlImNhbkNvbnRhaW5Fb2xzIjp7bGV0IGk9ZVthXTtpJiZ0W2FdLnB1c2goLi4uaSk7YnJlYWt9Y2FzZSJ0cmFuc2Zvcm1zIjp7bGV0IGk9ZVthXTtpJiZ0W2FdLnB1c2goLi4uaSk7YnJlYWt9Y2FzZSJlbnRlciI6Y2FzZSJleGl0Ijp7bGV0IGk9ZVthXTtpJiZPYmplY3QuYXNzaWduKHRbYV0saSk7YnJlYWt9fX1mdW5jdGlvbiBFb2UodCxlKXt0aHJvdyB0P25ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGAiK3QudHlwZSsiYCAoIitGbih7c3RhcnQ6dC5zdGFydCxlbmQ6dC5lbmR9KSsiKTogYSBkaWZmZXJlbnQgdG9rZW4gKGAiK2UudHlwZSsiYCwgIitGbih7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKSBpcyBvcGVuIik6bmV3IEVycm9yKCJDYW5ub3QgY2xvc2UgZG9jdW1lbnQsIGEgdG9rZW4gKGAiK2UudHlwZSsiYCwgIitGbih7c3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSsiKSBpcyBzdGlsbCBvcGVuIil9dmFyIEFvZSxQb2U9YigoKT0+e185KCk7JG9lKCk7QTkoKTtEVCgpO1JuKCk7cTYoKTtXXygpO0FvZT17fS5oYXNPd25Qcm9wZXJ0eX0pO3ZhciBJb2U9YigoKT0+e1BvZSgpfSk7ZnVuY3Rpb24gSDModCl7bGV0IGU9dGhpcztlLnBhcnNlcj1hO2Z1bmN0aW9uIGEoaSl7cmV0dXJuIExMKGksey4uLmUuZGF0YSgic2V0dGluZ3MiKSwuLi50LGV4dGVuc2lvbnM6ZS5kYXRhKCJtaWNyb21hcmtFeHRlbnNpb25zIil8fFtdLG1kYXN0RXh0ZW5zaW9uczplLmRhdGEoImZyb21NYXJrZG93bkV4dGVuc2lvbnMiKXx8W119KX19dmFyIE5vZT1iKCgpPT57SW9lKCl9KTt2YXIgRm9lPWIoKCk9PntOb2UoKX0pO3ZhciBPb2U9cHQoKFBOMSwkTCk9PnsoZnVuY3Rpb24oKXt2YXIgdDt0eXBlb2YgJEw8InUiP3Q9JEwuZXhwb3J0cz1pOnQ9KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN8fCgwLGV2YWwpKCJ0aGlzIil9KSgpLHQuZm9ybWF0PWksdC52c3ByaW50Zj1hLHR5cGVvZiBjb25zb2xlPCJ1IiYmdHlwZW9mIGNvbnNvbGUubG9nPT0iZnVuY3Rpb24iJiYodC5wcmludGY9ZSk7ZnVuY3Rpb24gZSgpe2NvbnNvbGUubG9nKGkuYXBwbHkobnVsbCxhcmd1bWVudHMpKX1mdW5jdGlvbiBhKHIscyl7cmV0dXJuIGkuYXBwbHkobnVsbCxbcl0uY29uY2F0KHMpKX1mdW5jdGlvbiBpKHIpe2Zvcih2YXIgcz0xLG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLG89MCxkPXIubGVuZ3RoLGM9IiIscCxsPSExLGYsZyx5PSExLHYsbT1mdW5jdGlvbigpe3JldHVybiBuW3MrK119LHg9ZnVuY3Rpb24oKXtmb3IodmFyIE09IiI7L1xkLy50ZXN0KHJbb10pOylNKz1yW28rK10scD1yW29dO3JldHVybiBNLmxlbmd0aD4wP3BhcnNlSW50KE0pOm51bGx9O288ZDsrK28paWYocD1yW29dLGwpc3dpdGNoKGw9ITEscD09Ii4iPyh5PSExLHA9clsrK29dKTpwPT0iMCImJnJbbysxXT09Ii4iPyh5PSEwLG8rPTIscD1yW29dKTp5PSEwLHY9eCgpLHApe2Nhc2UiYiI6Yys9cGFyc2VJbnQobSgpLDEwKS50b1N0cmluZygyKTticmVhaztjYXNlImMiOmY9bSgpLHR5cGVvZiBmPT0ic3RyaW5nInx8ZiBpbnN0YW5jZW9mIFN0cmluZz9jKz1mOmMrPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoZiwxMCkpO2JyZWFrO2Nhc2UiZCI6Yys9cGFyc2VJbnQobSgpLDEwKTticmVhaztjYXNlImYiOmc9U3RyaW5nKHBhcnNlRmxvYXQobSgpKS50b0ZpeGVkKHZ8fDYpKSxjKz15P2c6Zy5yZXBsYWNlKC9eMC8sIiIpO2JyZWFrO2Nhc2UiaiI6Yys9SlNPTi5zdHJpbmdpZnkobSgpKTticmVhaztjYXNlIm8iOmMrPSIwIitwYXJzZUludChtKCksMTApLnRvU3RyaW5nKDgpO2JyZWFrO2Nhc2UicyI6Yys9bSgpO2JyZWFrO2Nhc2UieCI6Yys9IjB4IitwYXJzZUludChtKCksMTApLnRvU3RyaW5nKDE2KTticmVhaztjYXNlIlgiOmMrPSIweCIrcGFyc2VJbnQobSgpLDEwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTticmVhaztkZWZhdWx0OmMrPXA7YnJlYWt9ZWxzZSBwPT09IiUiP2w9ITA6Yys9cDtyZXR1cm4gY319KSgpfSk7ZnVuY3Rpb24gQzAodCl7cmV0dXJuIGUuZGlzcGxheU5hbWU9dC5kaXNwbGF5TmFtZXx8dC5uYW1lLGU7ZnVuY3Rpb24gZShhLC4uLmkpe2xldCByPWEmJigwLFJvZS5kZWZhdWx0KShhLC4uLmkpO3JldHVybiBuZXcgdChyKX19dmFyIFJvZSxRNixCb2U9YigoKT0+e1JvZT1qMShPb2UoKSwxKSxRNj1PYmplY3QuYXNzaWduKEMwKEVycm9yKSx7ZXZhbDpDMChFdmFsRXJyb3IpLHJhbmdlOkMwKFJhbmdlRXJyb3IpLHJlZmVyZW5jZTpDMChSZWZlcmVuY2VFcnJvciksc3ludGF4OkMwKFN5bnRheEVycm9yKSx0eXBlOkMwKFR5cGVFcnJvciksdXJpOkMwKFVSSUVycm9yKX0pfSk7ZnVuY3Rpb24gcTModCl7bGV0IGU9W10sYT0tMSxpPUFycmF5LmlzQXJyYXkodCk/dDp0P1t0XTpbInlhbWwiXTtmb3IoOysrYTxpLmxlbmd0aDspZVthXT1NRnQoaVthXSk7cmV0dXJuIGV9ZnVuY3Rpb24gTUZ0KHQpe2xldCBlPXQ7aWYodHlwZW9mIGU9PSJzdHJpbmciKXtpZighUTkuY2FsbChIb2UsZSkpdGhyb3cgUTYoIk1pc3NpbmcgbWF0dGVyIGRlZmluaXRpb24gZm9yIGAlc2AiLGUpO2U9e3R5cGU6ZSxtYXJrZXI6SG9lW2VdfX1lbHNlIGlmKHR5cGVvZiBlIT0ib2JqZWN0Iil0aHJvdyBRNigiRXhwZWN0ZWQgbWF0dGVyIHRvIGJlIGFuIG9iamVjdCwgbm90IGAlamAiLGUpO2lmKCFROS5jYWxsKGUsInR5cGUiKSl0aHJvdyBRNigiTWlzc2luZyBgdHlwZWAgaW4gbWF0dGVyIGAlamAiLGUpO2lmKCFROS5jYWxsKGUsImZlbmNlIikmJiFROS5jYWxsKGUsIm1hcmtlciIpKXRocm93IFE2KCJNaXNzaW5nIGBtYXJrZXJgIG9yIGBmZW5jZWAgaW4gbWF0dGVyIGAlamAiLGUpO3JldHVybiBlfXZhciBROSxIb2UsQUw9YigoKT0+e0JvZSgpO1E5PXt9Lmhhc093blByb3BlcnR5LEhvZT17eWFtbDoiLSIsdG9tbDoiKyJ9fSk7ZnVuY3Rpb24gRUwodCl7bGV0IGU9cTModCksYT17fSxpPS0xO2Zvcig7KytpPGUubGVuZ3RoOyl7bGV0IHI9ZVtpXSxzPURMKHIsIm9wZW4iKS5jaGFyQ29kZUF0KDApLG49ekZ0KHIpLG89YVtzXTtBcnJheS5pc0FycmF5KG8pP28ucHVzaChuKTphW3NdPVtuXX1yZXR1cm57ZmxvdzphfX1mdW5jdGlvbiB6RnQodCl7bGV0IGU9dC5hbnl3aGVyZSxhPXQudHlwZSxpPWErIkZlbmNlIixyPWkrIlNlcXVlbmNlIixzPWErIlZhbHVlIixuPXt0b2tlbml6ZTpwLHBhcnRpYWw6ITB9LG8sZD0wO3JldHVybnt0b2tlbml6ZTpjLGNvbmNyZXRlOiEwfTtmdW5jdGlvbiBjKGwsZixnKXtsZXQgeT10aGlzO3JldHVybiB2O2Z1bmN0aW9uIHYoTil7bGV0IEw9eS5ub3coKTtyZXR1cm4gTC5jb2x1bW49PT0xJiYoTC5saW5lPT09MXx8ZSkmJihvPURMKHQsIm9wZW4iKSxkPTAsTj09PW8uY2hhckNvZGVBdChkKSk/KGwuZW50ZXIoYSksbC5lbnRlcihpKSxsLmVudGVyKHIpLG0oTikpOmcoTil9ZnVuY3Rpb24gbShOKXtyZXR1cm4gZD09PW8ubGVuZ3RoPyhsLmV4aXQociksUWUoTik/KGwuZW50ZXIoIndoaXRlc3BhY2UiKSx4KE4pKTpNKE4pKTpOPT09by5jaGFyQ29kZUF0KGQrKyk/KGwuY29uc3VtZShOKSxtKTpnKE4pfWZ1bmN0aW9uIHgoTil7cmV0dXJuIFFlKE4pPyhsLmNvbnN1bWUoTikseCk6KGwuZXhpdCgid2hpdGVzcGFjZSIpLE0oTikpfWZ1bmN0aW9uIE0oTil7cmV0dXJuIE9lKE4pPyhsLmV4aXQoaSksbC5lbnRlcigibGluZUVuZGluZyIpLGwuY29uc3VtZShOKSxsLmV4aXQoImxpbmVFbmRpbmciKSxvPURMKHQsImNsb3NlIiksZD0wLGwuYXR0ZW1wdChuLGssUykpOmcoTil9ZnVuY3Rpb24gUyhOKXtyZXR1cm4gTj09PW51bGx8fE9lKE4pP18oTik6KGwuZW50ZXIocyksRihOKSl9ZnVuY3Rpb24gRihOKXtyZXR1cm4gTj09PW51bGx8fE9lKE4pPyhsLmV4aXQocyksXyhOKSk6KGwuY29uc3VtZShOKSxGKX1mdW5jdGlvbiBfKE4pe3JldHVybiBOPT09bnVsbD9nKE4pOihsLmVudGVyKCJsaW5lRW5kaW5nIiksbC5jb25zdW1lKE4pLGwuZXhpdCgibGluZUVuZGluZyIpLGwuYXR0ZW1wdChuLGssUykpfWZ1bmN0aW9uIGsoTil7cmV0dXJuIGwuZXhpdChhKSxmKE4pfX1mdW5jdGlvbiBwKGwsZixnKXtsZXQgeT0wO3JldHVybiB2O2Z1bmN0aW9uIHYoUyl7cmV0dXJuIFM9PT1vLmNoYXJDb2RlQXQoeSk/KGwuZW50ZXIoaSksbC5lbnRlcihyKSxtKFMpKTpnKFMpfWZ1bmN0aW9uIG0oUyl7cmV0dXJuIHk9PT1vLmxlbmd0aD8obC5leGl0KHIpLFFlKFMpPyhsLmVudGVyKCJ3aGl0ZXNwYWNlIikseChTKSk6TShTKSk6Uz09PW8uY2hhckNvZGVBdCh5KyspPyhsLmNvbnN1bWUoUyksbSk6ZyhTKX1mdW5jdGlvbiB4KFMpe3JldHVybiBRZShTKT8obC5jb25zdW1lKFMpLHgpOihsLmV4aXQoIndoaXRlc3BhY2UiKSxNKFMpKX1mdW5jdGlvbiBNKFMpe3JldHVybiBTPT09bnVsbHx8T2UoUyk/KGwuZXhpdChpKSxmKFMpKTpnKFMpfX19ZnVuY3Rpb24gREwodCxlKXtyZXR1cm4gdC5tYXJrZXI/cW9lKHQubWFya2VyLGUpLnJlcGVhdCgzKTpxb2UodC5mZW5jZSxlKX1mdW5jdGlvbiBxb2UodCxlKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP3Q6dFtlXX12YXIgVm9lPWIoKCk9PnskdCgpO0FMKCl9KTt2YXIgam9lPWIoKCk9Pnt9KTt2YXIgUEw9YigoKT0+e1ZvZSgpO2pvZSgpO0FMKCl9KTtmdW5jdGlvbiBOTCh0KXtsZXQgZT1xMyh0KSxhPXt9LGk9e30scj0tMTtmb3IoOysrcjxlLmxlbmd0aDspe2xldCBzPWVbcl07YVtzLnR5cGVdPWtGdChzKSxpW3MudHlwZV09U0Z0LGlbcy50eXBlKyJWYWx1ZSJdPUNGdH1yZXR1cm57ZW50ZXI6YSxleGl0Oml9fWZ1bmN0aW9uIGtGdCh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEpe3RoaXMuZW50ZXIoe3R5cGU6dC50eXBlLHZhbHVlOiIifSxhKSx0aGlzLmJ1ZmZlcigpfX1mdW5jdGlvbiBTRnQodCl7bGV0IGU9dGhpcy5yZXN1bWUoKSxhPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07InZhbHVlImluIGEsdGhpcy5leGl0KHQpLGEudmFsdWU9ZS5yZXBsYWNlKC9eKFxyP1xufFxyKXwoXHI/XG58XHIpJC9nLCIiKX1mdW5jdGlvbiBDRnQodCl7dGhpcy5jb25maWcuZW50ZXIuZGF0YS5jYWxsKHRoaXMsdCksdGhpcy5jb25maWcuZXhpdC5kYXRhLmNhbGwodGhpcyx0KX1mdW5jdGlvbiBGTCh0KXtsZXQgZT1bXSxhPXt9LGk9cTModCkscj0tMTtmb3IoOysrcjxpLmxlbmd0aDspe2xldCBzPWlbcl07YVtzLnR5cGVdPV9GdChzKTtsZXQgbj1JTChzLCJvcGVuIik7ZS5wdXNoKHthdEJyZWFrOiEwLGNoYXJhY3RlcjpuLmNoYXJBdCgwKSxhZnRlcjpCbyhuLmNoYXJBdCgxKSl9KX1yZXR1cm57dW5zYWZlOmUsaGFuZGxlcnM6YX19ZnVuY3Rpb24gX0Z0KHQpe2xldCBlPUlMKHQsIm9wZW4iKSxhPUlMKHQsImNsb3NlIik7cmV0dXJuIGk7ZnVuY3Rpb24gaShyKXtyZXR1cm4gZSsoci52YWx1ZT9gCmArci52YWx1ZToiIikrYApgK2F9fWZ1bmN0aW9uIElMKHQsZSl7cmV0dXJuIHQubWFya2VyP1VvZSh0Lm1hcmtlcixlKS5yZXBlYXQoMyk6VW9lKHQuZmVuY2UsZSl9ZnVuY3Rpb24gVW9lKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIj90OnRbZV19dmFyIFdvZT1iKCgpPT57Tm4oKTtQTCgpO3Y3KCl9KTt2YXIgR29lPWIoKCk9PntXb2UoKX0pO2Z1bmN0aW9uIFYzKHQpe2xldCBlPXRoaXMsYT10fHxURnQsaT1lLmRhdGEoKSxyPWkubWljcm9tYXJrRXh0ZW5zaW9uc3x8KGkubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSkscz1pLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChpLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG49aS50b01hcmtkb3duRXh0ZW5zaW9uc3x8KGkudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO3IucHVzaChFTChhKSkscy5wdXNoKE5MKGEpKSxuLnB1c2goRkwoYSkpfXZhciBURnQsWW9lPWIoKCk9PntHb2UoKTtQTCgpO1RGdD0ieWFtbCJ9KTt2YXIgWm9lPWIoKCk9PntZb2UoKX0pO3ZhciBPTD1iKCgpPT57fSk7dmFyIFhvZSxMRnQsaXUsS29lPWIoKCk9PntPTCgpO1hvZT10eXBlb2Ygc2VsZj09Im9iamVjdCI/c2VsZjpnbG9iYWxUaGlzLExGdD0odCxlKT0+e2xldCBhPShyLHMpPT4odC5zZXQocyxyKSxyKSxpPXI9PntpZih0LmhhcyhyKSlyZXR1cm4gdC5nZXQocik7bGV0W3Msbl09ZVtyXTtzd2l0Y2gocyl7Y2FzZSAwOmNhc2UtMTpyZXR1cm4gYShuLHIpO2Nhc2UgMTp7bGV0IG89YShbXSxyKTtmb3IobGV0IGQgb2YgbilvLnB1c2goaShkKSk7cmV0dXJuIG99Y2FzZSAyOntsZXQgbz1hKHt9LHIpO2ZvcihsZXRbZCxjXW9mIG4pb1tpKGQpXT1pKGMpO3JldHVybiBvfWNhc2UgMzpyZXR1cm4gYShuZXcgRGF0ZShuKSxyKTtjYXNlIDQ6e2xldHtzb3VyY2U6byxmbGFnczpkfT1uO3JldHVybiBhKG5ldyBSZWdFeHAobyxkKSxyKX1jYXNlIDU6e2xldCBvPWEobmV3IE1hcCxyKTtmb3IobGV0W2QsY11vZiBuKW8uc2V0KGkoZCksaShjKSk7cmV0dXJuIG99Y2FzZSA2OntsZXQgbz1hKG5ldyBTZXQscik7Zm9yKGxldCBkIG9mIG4pby5hZGQoaShkKSk7cmV0dXJuIG99Y2FzZSA3OntsZXR7bmFtZTpvLG1lc3NhZ2U6ZH09bjtyZXR1cm4gYShuZXcgWG9lW29dKGQpLHIpfWNhc2UgODpyZXR1cm4gYShCaWdJbnQobikscik7Y2FzZSJCaWdJbnQiOnJldHVybiBhKE9iamVjdChCaWdJbnQobikpLHIpO2Nhc2UiQXJyYXlCdWZmZXIiOnJldHVybiBhKG5ldyBVaW50OEFycmF5KG4pLmJ1ZmZlcixuKTtjYXNlIkRhdGFWaWV3Ijp7bGV0e2J1ZmZlcjpvfT1uZXcgVWludDhBcnJheShuKTtyZXR1cm4gYShuZXcgRGF0YVZpZXcobyksbil9fXJldHVybiBhKG5ldyBYb2Vbc10obikscil9O3JldHVybiBpfSxpdT10PT5MRnQobmV3IE1hcCx0KSgwKX0pO3ZhciBVMywkRnQsQUZ0LHQ1LHJ1LERGdCxzdSxRb2U9YigoKT0+e09MKCk7VTM9IiIse3RvU3RyaW5nOiRGdH09e30se2tleXM6QUZ0fT1PYmplY3QsdDU9dD0+e2xldCBlPXR5cGVvZiB0O2lmKGUhPT0ib2JqZWN0Inx8IXQpcmV0dXJuWzAsZV07bGV0IGE9JEZ0LmNhbGwodCkuc2xpY2UoOCwtMSk7c3dpdGNoKGEpe2Nhc2UiQXJyYXkiOnJldHVyblsxLFUzXTtjYXNlIk9iamVjdCI6cmV0dXJuWzIsVTNdO2Nhc2UiRGF0ZSI6cmV0dXJuWzMsVTNdO2Nhc2UiUmVnRXhwIjpyZXR1cm5bNCxVM107Y2FzZSJNYXAiOnJldHVybls1LFUzXTtjYXNlIlNldCI6cmV0dXJuWzYsVTNdO2Nhc2UiRGF0YVZpZXciOnJldHVyblsxLGFdfXJldHVybiBhLmluY2x1ZGVzKCJBcnJheSIpP1sxLGFdOmEuaW5jbHVkZXMoIkVycm9yIik/WzcsYV06WzIsYV19LHJ1PShbdCxlXSk9PnQ9PT0wJiYoZT09PSJmdW5jdGlvbiJ8fGU9PT0ic3ltYm9sIiksREZ0PSh0LGUsYSxpKT0+e2xldCByPShuLG8pPT57bGV0IGQ9aS5wdXNoKG4pLTE7cmV0dXJuIGEuc2V0KG8sZCksZH0scz1uPT57aWYoYS5oYXMobikpcmV0dXJuIGEuZ2V0KG4pO2xldFtvLGRdPXQ1KG4pO3N3aXRjaChvKXtjYXNlIDA6e2xldCBwPW47c3dpdGNoKGQpe2Nhc2UiYmlnaW50IjpvPTgscD1uLnRvU3RyaW5nKCk7YnJlYWs7Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmlmKHQpdGhyb3cgbmV3IFR5cGVFcnJvcigidW5hYmxlIHRvIHNlcmlhbGl6ZSAiK2QpO3A9bnVsbDticmVhaztjYXNlInVuZGVmaW5lZCI6cmV0dXJuIHIoWy0xXSxuKX1yZXR1cm4gcihbbyxwXSxuKX1jYXNlIDE6e2lmKGQpe2xldCBmPW47cmV0dXJuIGQ9PT0iRGF0YVZpZXciP2Y9bmV3IFVpbnQ4QXJyYXkobi5idWZmZXIpOmQ9PT0iQXJyYXlCdWZmZXIiJiYoZj1uZXcgVWludDhBcnJheShuKSkscihbZCxbLi4uZl1dLG4pfWxldCBwPVtdLGw9cihbbyxwXSxuKTtmb3IobGV0IGYgb2YgbilwLnB1c2gocyhmKSk7cmV0dXJuIGx9Y2FzZSAyOntpZihkKXN3aXRjaChkKXtjYXNlIkJpZ0ludCI6cmV0dXJuIHIoW2Qsbi50b1N0cmluZygpXSxuKTtjYXNlIkJvb2xlYW4iOmNhc2UiTnVtYmVyIjpjYXNlIlN0cmluZyI6cmV0dXJuIHIoW2Qsbi52YWx1ZU9mKCldLG4pfWlmKGUmJiJ0b0pTT04iaW4gbilyZXR1cm4gcyhuLnRvSlNPTigpKTtsZXQgcD1bXSxsPXIoW28scF0sbik7Zm9yKGxldCBmIG9mIEFGdChuKSkodHx8IXJ1KHQ1KG5bZl0pKSkmJnAucHVzaChbcyhmKSxzKG5bZl0pXSk7cmV0dXJuIGx9Y2FzZSAzOnJldHVybiByKFtvLG4udG9JU09TdHJpbmcoKV0sbik7Y2FzZSA0OntsZXR7c291cmNlOnAsZmxhZ3M6bH09bjtyZXR1cm4gcihbbyx7c291cmNlOnAsZmxhZ3M6bH1dLG4pfWNhc2UgNTp7bGV0IHA9W10sbD1yKFtvLHBdLG4pO2ZvcihsZXRbZixnXW9mIG4pKHR8fCEocnUodDUoZikpfHxydSh0NShnKSkpKSYmcC5wdXNoKFtzKGYpLHMoZyldKTtyZXR1cm4gbH1jYXNlIDY6e2xldCBwPVtdLGw9cihbbyxwXSxuKTtmb3IobGV0IGYgb2YgbikodHx8IXJ1KHQ1KGYpKSkmJnAucHVzaChzKGYpKTtyZXR1cm4gbH19bGV0e21lc3NhZ2U6Y309bjtyZXR1cm4gcihbbyx7bmFtZTpkLG1lc3NhZ2U6Y31dLG4pfTtyZXR1cm4gc30sc3U9KHQse2pzb246ZSxsb3NzeTphfT17fSk9PntsZXQgaT1bXTtyZXR1cm4gREZ0KCEoZXx8YSksISFlLG5ldyBNYXAsaSkodCksaX19KTt2YXIgVm4sbnU9YigoKT0+e0tvZSgpO1FvZSgpO1ZuPXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiI/KHQsZSk9PmUmJigianNvbiJpbiBlfHwibG9zc3kiaW4gZSk/aXUoc3UodCxlKSk6c3RydWN0dXJlZENsb25lKHQpOih0LGUpPT5pdShzdSh0LGUpKX0pO2Z1bmN0aW9uIEpvZSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEpe2xldCBpPWEmJmEucG9zaXRpb24mJmEucG9zaXRpb25bdF18fHt9O2lmKHR5cGVvZiBpLmxpbmU9PSJudW1iZXIiJiZpLmxpbmU+MCYmdHlwZW9mIGkuY29sdW1uPT0ibnVtYmVyIiYmaS5jb2x1bW4+MClyZXR1cm57bGluZTppLmxpbmUsY29sdW1uOmkuY29sdW1uLG9mZnNldDp0eXBlb2YgaS5vZmZzZXQ9PSJudW1iZXIiJiZpLm9mZnNldD4tMT9pLm9mZnNldDp2b2lkIDB9fX1mdW5jdGlvbiBhNSh0KXtsZXQgZT1sdSh0KSxhPW91KHQpO2lmKGUmJmEpcmV0dXJue3N0YXJ0OmUsZW5kOmF9fXZhciBvdSxsdSxlMGU9YigoKT0+e291PUpvZSgiZW5kIiksbHU9Sm9lKCJzdGFydCIpfSk7dmFyIGN1PWIoKCk9PntlMGUoKX0pO3ZhciBfMCxkdSxxTD1iKCgpPT57XzA9WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSJdLGR1PXthbmNlc3RvcnM6e3Rib2R5OlsidGFibGUiXSx0ZDpbInRhYmxlIl0sdGg6WyJ0YWJsZSJdLHRoZWFkOlsidGFibGUiXSx0Zm9vdDpbInRhYmxlIl0sdHI6WyJ0YWJsZSJdfSxhdHRyaWJ1dGVzOnthOlsuLi5fMCwiZGF0YUZvb3Rub3RlQmFja3JlZiIsImRhdGFGb290bm90ZVJlZiIsWyJjbGFzc05hbWUiLCJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiXSwiaHJlZiJdLGJsb2NrcXVvdGU6WyJjaXRlIl0sY29kZTpbWyJjbGFzc05hbWUiLC9ebGFuZ3VhZ2UtLi9dXSxkZWw6WyJjaXRlIl0sZGl2OlsiaXRlbVNjb3BlIiwiaXRlbVR5cGUiXSxkbDpbLi4uXzBdLGgyOltbImNsYXNzTmFtZSIsInNyLW9ubHkiXV0saW1nOlsuLi5fMCwibG9uZ0Rlc2MiLCJzcmMiXSxpbnB1dDpbWyJkaXNhYmxlZCIsITBdLFsidHlwZSIsImNoZWNrYm94Il1dLGluczpbImNpdGUiXSxsaTpbWyJjbGFzc05hbWUiLCJ0YXNrLWxpc3QtaXRlbSJdXSxvbDpbLi4uXzAsWyJjbGFzc05hbWUiLCJjb250YWlucy10YXNrLWxpc3QiXV0scTpbImNpdGUiXSxzZWN0aW9uOlsiZGF0YUZvb3Rub3RlcyIsWyJjbGFzc05hbWUiLCJmb290bm90ZXMiXV0sc291cmNlOlsic3JjU2V0Il0sc3VtbWFyeTpbLi4uXzBdLHRhYmxlOlsuLi5fMF0sdWw6Wy4uLl8wLFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLCIqIjpbImFiYnIiLCJhY2NlcHQiLCJhY2NlcHRDaGFyc2V0IiwiYWNjZXNzS2V5IiwiYWN0aW9uIiwiYWxpZ24iLCJhbHQiLCJheGlzIiwiYm9yZGVyIiwiY2VsbFBhZGRpbmciLCJjZWxsU3BhY2luZyIsImNoYXIiLCJjaGFyT2ZmIiwiY2hhclNldCIsImNoZWNrZWQiLCJjbGVhciIsImNvbFNwYW4iLCJjb2xvciIsImNvbHMiLCJjb21wYWN0IiwiY29vcmRzIiwiZGF0ZVRpbWUiLCJkaXIiLCJlbmNUeXBlIiwiZnJhbWUiLCJoU3BhY2UiLCJoZWFkZXJzIiwiaGVpZ2h0IiwiaHJlZkxhbmciLCJodG1sRm9yIiwiaWQiLCJpc01hcCIsIml0ZW1Qcm9wIiwibGFiZWwiLCJsYW5nIiwibWF4TGVuZ3RoIiwibWVkaWEiLCJtZXRob2QiLCJtdWx0aXBsZSIsIm5hbWUiLCJub0hyZWYiLCJub1NoYWRlIiwibm9XcmFwIiwib3BlbiIsInByb21wdCIsInJlYWRPbmx5IiwicmV2Iiwicm93U3BhbiIsInJvd3MiLCJydWxlcyIsInNjb3BlIiwic2VsZWN0ZWQiLCJzaGFwZSIsInNpemUiLCJzcGFuIiwic3RhcnQiLCJzdW1tYXJ5IiwidGFiSW5kZXgiLCJ0aXRsZSIsInVzZU1hcCIsInZBbGlnbiIsInZhbHVlIiwid2lkdGgiXX0sY2xvYmJlcjpbImFyaWFEZXNjcmliZWRCeSIsImFyaWFMYWJlbGxlZEJ5IiwiaWQiLCJuYW1lIl0sY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIscHJvdG9jb2xzOntjaXRlOlsiaHR0cCIsImh0dHBzIl0saHJlZjpbImh0dHAiLCJodHRwcyIsImlyYyIsImlyY3MiLCJtYWlsdG8iLCJ4bXBwIl0sbG9uZ0Rlc2M6WyJodHRwIiwiaHR0cHMiXSxzcmM6WyJodHRwIiwiaHR0cHMiXX0scmVxdWlyZWQ6e2lucHV0OntkaXNhYmxlZDohMCx0eXBlOiJjaGVja2JveCJ9fSxzdHJpcDpbInNjcmlwdCJdLHRhZ05hbWVzOlsiYSIsImIiLCJibG9ja3F1b3RlIiwiYnIiLCJjb2RlIiwiZGQiLCJkZWwiLCJkZXRhaWxzIiwiZGl2IiwiZGwiLCJkdCIsImVtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaHIiLCJpIiwiaW1nIiwiaW5wdXQiLCJpbnMiLCJrYmQiLCJsaSIsIm9sIiwicCIsInBpY3R1cmUiLCJwcmUiLCJxIiwicnAiLCJydCIsInJ1YnkiLCJzIiwic2FtcCIsInNlY3Rpb24iLCJzb3VyY2UiLCJzcGFuIiwic3RyaWtlIiwic3Ryb25nIiwic3ViIiwic3VtbWFyeSIsInN1cCIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRmb290IiwidGgiLCJ0aGVhZCIsInRyIiwidHQiLCJ1bCIsInZhciJdfX0pO2Z1bmN0aW9uIFZMKHQsZSl7bGV0IGE9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxpPXtzY2hlbWE6ZT97Li4uZHUsLi4uZX06ZHUsc3RhY2s6W119LHI9dDBlKGksdCk7cmV0dXJuIHImJihBcnJheS5pc0FycmF5KHIpP3IubGVuZ3RoPT09MT9hPXJbMF06YS5jaGlsZHJlbj1yOmE9ciksYX1mdW5jdGlvbiB0MGUodCxlKXtpZihlJiZ0eXBlb2YgZT09Im9iamVjdCIpe2xldCBhPWU7c3dpdGNoKHR5cGVvZiBhLnR5cGU9PSJzdHJpbmciP2EudHlwZToiIil7Y2FzZSJjb21tZW50IjpyZXR1cm4gRUZ0KHQsYSk7Y2FzZSJkb2N0eXBlIjpyZXR1cm4gUEZ0KHQsYSk7Y2FzZSJlbGVtZW50IjpyZXR1cm4gSUZ0KHQsYSk7Y2FzZSJyb290IjpyZXR1cm4gTkZ0KHQsYSk7Y2FzZSJ0ZXh0IjpyZXR1cm4gRkZ0KHQsYSk7ZGVmYXVsdDp9fX1mdW5jdGlvbiBFRnQodCxlKXtpZih0LnNjaGVtYS5hbGxvd0NvbW1lbnRzKXtsZXQgYT10eXBlb2YgZS52YWx1ZT09InN0cmluZyI/ZS52YWx1ZToiIixpPWEuaW5kZXhPZigiLS0+Iikscz17dHlwZToiY29tbWVudCIsdmFsdWU6aTwwP2E6YS5zbGljZSgwLGkpfTtyZXR1cm4gaTUocyxlKSxzfX1mdW5jdGlvbiBQRnQodCxlKXtpZih0LnNjaGVtYS5hbGxvd0RvY3R5cGVzKXtsZXQgYT17dHlwZToiZG9jdHlwZSJ9O3JldHVybiBpNShhLGUpLGF9fWZ1bmN0aW9uIElGdCh0LGUpe2xldCBhPXR5cGVvZiBlLnRhZ05hbWU9PSJzdHJpbmciP2UudGFnTmFtZToiIjt0LnN0YWNrLnB1c2goYSk7bGV0IGk9YTBlKHQsZS5jaGlsZHJlbikscj1PRnQodCxlLnByb3BlcnRpZXMpO3Quc3RhY2sucG9wKCk7bGV0IHM9ITE7aWYoYSYmYSE9PSIqIiYmKCF0LnNjaGVtYS50YWdOYW1lc3x8dC5zY2hlbWEudGFnTmFtZXMuaW5jbHVkZXMoYSkpJiYocz0hMCx0LnNjaGVtYS5hbmNlc3RvcnMmJmpuLmNhbGwodC5zY2hlbWEuYW5jZXN0b3JzLGEpKSl7bGV0IG89dC5zY2hlbWEuYW5jZXN0b3JzW2FdLGQ9LTE7Zm9yKHM9ITE7KytkPG8ubGVuZ3RoOyl0LnN0YWNrLmluY2x1ZGVzKG9bZF0pJiYocz0hMCl9aWYoIXMpcmV0dXJuIHQuc2NoZW1hLnN0cmlwJiYhdC5zY2hlbWEuc3RyaXAuaW5jbHVkZXMoYSk/aTp2b2lkIDA7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6YSxwcm9wZXJ0aWVzOnIsY2hpbGRyZW46aX07cmV0dXJuIGk1KG4sZSksbn1mdW5jdGlvbiBORnQodCxlKXtsZXQgaT17dHlwZToicm9vdCIsY2hpbGRyZW46YTBlKHQsZS5jaGlsZHJlbil9O3JldHVybiBpNShpLGUpLGl9ZnVuY3Rpb24gRkZ0KHQsZSl7bGV0IGk9e3R5cGU6InRleHQiLHZhbHVlOnR5cGVvZiBlLnZhbHVlPT0ic3RyaW5nIj9lLnZhbHVlOiIifTtyZXR1cm4gaTUoaSxlKSxpfWZ1bmN0aW9uIGEwZSh0LGUpe2xldCBhPVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBpPWUscj0tMTtmb3IoOysrcjxpLmxlbmd0aDspe2xldCBzPXQwZSh0LGlbcl0pO3MmJihBcnJheS5pc0FycmF5KHMpP2EucHVzaCguLi5zKTphLnB1c2gocykpfX1yZXR1cm4gYX1mdW5jdGlvbiBPRnQodCxlKXtsZXQgYT10LnN0YWNrW3Quc3RhY2subGVuZ3RoLTFdLGk9dC5zY2hlbWEuYXR0cmlidXRlcyxyPXQuc2NoZW1hLnJlcXVpcmVkLHM9aSYmam4uY2FsbChpLGEpP2lbYV06dm9pZCAwLG49aSYmam4uY2FsbChpLCIqIik/aVsiKiJdOnZvaWQgMCxvPWUmJnR5cGVvZiBlPT0ib2JqZWN0Ij9lOnt9LGQ9e30sYztmb3IoYyBpbiBvKWlmKGpuLmNhbGwobyxjKSl7bGV0IHA9b1tjXSxsPWkwZSh0LHMwZShzLGMpLGMscCk7bD09bnVsbCYmKGw9aTBlKHQsczBlKG4sYyksYyxwKSksbCE9bnVsbCYmKGRbY109bCl9aWYociYmam4uY2FsbChyLGEpKXtsZXQgcD1yW2FdO2ZvcihjIGluIHApam4uY2FsbChwLGMpJiYham4uY2FsbChkLGMpJiYoZFtjXT1wW2NdKX1yZXR1cm4gZH1mdW5jdGlvbiBpMGUodCxlLGEsaSl7cmV0dXJuIGU/QXJyYXkuaXNBcnJheShpKT9SRnQodCxlLGEsaSk6cjBlKHQsZSxhLGkpOnZvaWQgMH1mdW5jdGlvbiBSRnQodCxlLGEsaSl7bGV0IHI9LTEscz1bXTtmb3IoOysrcjxpLmxlbmd0aDspe2xldCBuPXIwZSh0LGUsYSxpW3JdKTsodHlwZW9mIG49PSJudW1iZXIifHx0eXBlb2Ygbj09InN0cmluZyIpJiZzLnB1c2gobil9cmV0dXJuIHN9ZnVuY3Rpb24gcjBlKHQsZSxhLGkpe2lmKCEodHlwZW9mIGkhPSJib29sZWFuIiYmdHlwZW9mIGkhPSJudW1iZXIiJiZ0eXBlb2YgaSE9InN0cmluZyIpJiZCRnQodCxhLGkpKXtpZih0eXBlb2YgZT09Im9iamVjdCImJmUubGVuZ3RoPjEpe2xldCByPSExLHM9MDtmb3IoOysrczxlLmxlbmd0aDspe2xldCBuPWVbc107aWYobiYmdHlwZW9mIG49PSJvYmplY3QiJiYiZmxhZ3MiaW4gbil7aWYobi50ZXN0KFN0cmluZyhpKSkpe3I9ITA7YnJlYWt9fWVsc2UgaWYobj09PWkpe3I9ITA7YnJlYWt9fWlmKCFyKXJldHVybn1yZXR1cm4gdC5zY2hlbWEuY2xvYmJlciYmdC5zY2hlbWEuY2xvYmJlclByZWZpeCYmdC5zY2hlbWEuY2xvYmJlci5pbmNsdWRlcyhhKT90LnNjaGVtYS5jbG9iYmVyUHJlZml4K2k6aX19ZnVuY3Rpb24gQkZ0KHQsZSxhKXtsZXQgaT10LnNjaGVtYS5wcm90b2NvbHMmJmpuLmNhbGwodC5zY2hlbWEucHJvdG9jb2xzLGUpP3Quc2NoZW1hLnByb3RvY29sc1tlXTp2b2lkIDA7aWYoIWl8fGkubGVuZ3RoPT09MClyZXR1cm4hMDtsZXQgcj1TdHJpbmcoYSkscz1yLmluZGV4T2YoIjoiKSxuPXIuaW5kZXhPZigiPyIpLG89ci5pbmRleE9mKCIjIiksZD1yLmluZGV4T2YoIi8iKTtpZihzPDB8fGQ+LTEmJnM+ZHx8bj4tMSYmcz5ufHxvPi0xJiZzPm8pcmV0dXJuITA7bGV0IGM9LTE7Zm9yKDsrK2M8aS5sZW5ndGg7KXtsZXQgcD1pW2NdO2lmKHM9PT1wLmxlbmd0aCYmci5zbGljZSgwLHAubGVuZ3RoKT09PXApcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gaTUodCxlKXtsZXQgYT1hNShlKTtlLmRhdGEmJih0LmRhdGE9Vm4oZS5kYXRhKSksYSYmKHQucG9zaXRpb249YSl9ZnVuY3Rpb24gczBlKHQsZSl7bGV0IGEsaT0tMTtpZih0KWZvcig7KytpPHQubGVuZ3RoOyl7bGV0IHI9dFtpXSxzPXR5cGVvZiByPT0ic3RyaW5nIj9yOnJbMF07aWYocz09PWUpcmV0dXJuIHI7cz09PSJkYXRhKiImJihhPXIpfWlmKGUubGVuZ3RoPjQmJmUuc2xpY2UoMCw0KS50b0xvd2VyQ2FzZSgpPT09ImRhdGEiKXJldHVybiBhfXZhciBqbixuMGU9YigoKT0+e251KCk7Y3UoKTtxTCgpO2puPXt9Lmhhc093blByb3BlcnR5fSk7dmFyIG8wZT1iKCgpPT57bjBlKCk7cUwoKX0pO2Z1bmN0aW9uIGwwZSh0LGUpe2xldCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJibG9ja3F1b3RlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQud3JhcCh0LmFsbChlKSwhMCl9O3JldHVybiB0LnBhdGNoKGUsYSksdC5hcHBseURhdGEoZSxhKX12YXIgYzBlPWIoKCk9Pnt9KTtmdW5jdGlvbiBkMGUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYnIiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119O3JldHVybiB0LnBhdGNoKGUsYSksW3QuYXBwbHlEYXRhKGUsYSkse3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfXZhciBwMGU9YigoKT0+e30pO2Z1bmN0aW9uIGgwZSh0LGUpe2xldCBhPWUudmFsdWU/ZS52YWx1ZStgCmA6IiIsaT17fSxyPWUubGFuZz9lLmxhbmcuc3BsaXQoL1xzKy8pOltdO3IubGVuZ3RoPjAmJihpLmNsYXNzTmFtZT1bImxhbmd1YWdlLSIrclswXV0pO2xldCBzPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJjb2RlIixwcm9wZXJ0aWVzOmksY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTphfV19O3JldHVybiBlLm1ldGEmJihzLmRhdGE9e21ldGE6ZS5tZXRhfSksdC5wYXRjaChlLHMpLHM9dC5hcHBseURhdGEoZSxzKSxzPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwcmUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3NdfSx0LnBhdGNoKGUscyksc312YXIgdTBlPWIoKCk9Pnt9KTtmdW5jdGlvbiBmMGUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGVsIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIG0wZT1iKCgpPT57fSk7ZnVuY3Rpb24gZzBlKHQsZSl7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImVtIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIGIwZT1iKCgpPT57fSk7ZnVuY3Rpb24gdjBlKHQsZSl7bGV0IGE9dHlwZW9mIHQub3B0aW9ucy5jbG9iYmVyUHJlZml4PT0ic3RyaW5nIj90Lm9wdGlvbnMuY2xvYmJlclByZWZpeDoidXNlci1jb250ZW50LSIsaT1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLHI9SGEoaS50b0xvd2VyQ2FzZSgpKSxzPXQuZm9vdG5vdGVPcmRlci5pbmRleE9mKGkpLG4sbz10LmZvb3Rub3RlQ291bnRzLmdldChpKTtvPT09dm9pZCAwPyhvPTAsdC5mb290bm90ZU9yZGVyLnB1c2goaSksbj10LmZvb3Rub3RlT3JkZXIubGVuZ3RoKTpuPXMrMSxvKz0xLHQuZm9vdG5vdGVDb3VudHMuc2V0KGksbyk7bGV0IGQ9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK2ErImZuLSIrcixpZDphKyJmbnJlZi0iK3IrKG8+MT8iLSIrbzoiIiksZGF0YUZvb3Rub3RlUmVmOiEwLGFyaWFEZXNjcmliZWRCeTpbImZvb3Rub3RlLWxhYmVsIl19LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKG4pfV19O3QucGF0Y2goZSxkKTtsZXQgYz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltkXX07cmV0dXJuIHQucGF0Y2goZSxjKSx0LmFwcGx5RGF0YShlLGMpfXZhciB5MGU9YigoKT0+e0VyKCl9KTtmdW5jdGlvbiB4MGUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaCIrZS5kZXB0aCxwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIHcwZT1iKCgpPT57fSk7ZnVuY3Rpb24gTTBlKHQsZSl7aWYodC5vcHRpb25zLmFsbG93RGFuZ2Vyb3VzSHRtbCl7bGV0IGE9e3R5cGU6InJhdyIsdmFsdWU6ZS52YWx1ZX07cmV0dXJuIHQucGF0Y2goZSxhKSx0LmFwcGx5RGF0YShlLGEpfX12YXIgejBlPWIoKCk9Pnt9KTtmdW5jdGlvbiBwdSh0LGUpe2xldCBhPWUucmVmZXJlbmNlVHlwZSxpPSJdIjtpZihhPT09ImNvbGxhcHNlZCI/aSs9IltdIjphPT09ImZ1bGwiJiYoaSs9IlsiKyhlLmxhYmVsfHxlLmlkZW50aWZpZXIpKyJdIiksZS50eXBlPT09ImltYWdlUmVmZXJlbmNlIilyZXR1cm5be3R5cGU6InRleHQiLHZhbHVlOiIhWyIrZS5hbHQraX1dO2xldCByPXQuYWxsKGUpLHM9clswXTtzJiZzLnR5cGU9PT0idGV4dCI/cy52YWx1ZT0iWyIrcy52YWx1ZTpyLnVuc2hpZnQoe3R5cGU6InRleHQiLHZhbHVlOiJbIn0pO2xldCBuPXJbci5sZW5ndGgtMV07cmV0dXJuIG4mJm4udHlwZT09PSJ0ZXh0Ij9uLnZhbHVlKz1pOnIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6aX0pLHJ9dmFyIGpMPWIoKCk9Pnt9KTtmdW5jdGlvbiBrMGUodCxlKXtsZXQgYT1TdHJpbmcoZS5pZGVudGlmaWVyKS50b1VwcGVyQ2FzZSgpLGk9dC5kZWZpbml0aW9uQnlJZC5nZXQoYSk7aWYoIWkpcmV0dXJuIHB1KHQsZSk7bGV0IHI9e3NyYzpIYShpLnVybHx8IiIpLGFsdDplLmFsdH07aS50aXRsZSE9PW51bGwmJmkudGl0bGUhPT12b2lkIDAmJihyLnRpdGxlPWkudGl0bGUpO2xldCBzPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbWciLHByb3BlcnRpZXM6cixjaGlsZHJlbjpbXX07cmV0dXJuIHQucGF0Y2goZSxzKSx0LmFwcGx5RGF0YShlLHMpfXZhciBTMGU9YigoKT0+e0VyKCk7akwoKX0pO2Z1bmN0aW9uIEMwZSh0LGUpe2xldCBhPXtzcmM6SGEoZS51cmwpfTtlLmFsdCE9PW51bGwmJmUuYWx0IT09dm9pZCAwJiYoYS5hbHQ9ZS5hbHQpLGUudGl0bGUhPT1udWxsJiZlLnRpdGxlIT09dm9pZCAwJiYoYS50aXRsZT1lLnRpdGxlKTtsZXQgaT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOmEsY2hpbGRyZW46W119O3JldHVybiB0LnBhdGNoKGUsaSksdC5hcHBseURhdGEoZSxpKX12YXIgXzBlPWIoKCk9PntFcigpfSk7ZnVuY3Rpb24gVDBlKHQsZSl7bGV0IGE9e3R5cGU6InRleHQiLHZhbHVlOmUudmFsdWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpfTt0LnBhdGNoKGUsYSk7bGV0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W2FdfTtyZXR1cm4gdC5wYXRjaChlLGkpLHQuYXBwbHlEYXRhKGUsaSl9dmFyIEwwZT1iKCgpPT57fSk7ZnVuY3Rpb24gJDBlKHQsZSl7bGV0IGE9U3RyaW5nKGUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxpPXQuZGVmaW5pdGlvbkJ5SWQuZ2V0KGEpO2lmKCFpKXJldHVybiBwdSh0LGUpO2xldCByPXtocmVmOkhhKGkudXJsfHwiIil9O2kudGl0bGUhPT1udWxsJiZpLnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT1pLnRpdGxlKTtsZXQgcz17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczpyLGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLHMpLHQuYXBwbHlEYXRhKGUscyl9dmFyIEEwZT1iKCgpPT57RXIoKTtqTCgpfSk7ZnVuY3Rpb24gRDBlKHQsZSl7bGV0IGE9e2hyZWY6SGEoZS51cmwpfTtlLnRpdGxlIT09bnVsbCYmZS50aXRsZSE9PXZvaWQgMCYmKGEudGl0bGU9ZS50aXRsZSk7bGV0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6YSxjaGlsZHJlbjp0LmFsbChlKX07cmV0dXJuIHQucGF0Y2goZSxpKSx0LmFwcGx5RGF0YShlLGkpfXZhciBFMGU9YigoKT0+e0VyKCl9KTtmdW5jdGlvbiBJMGUodCxlLGEpe2xldCBpPXQuYWxsKGUpLHI9YT9IRnQoYSk6UDBlKGUpLHM9e30sbj1bXTtpZih0eXBlb2YgZS5jaGVja2VkPT0iYm9vbGVhbiIpe2xldCBwPWlbMF0sbDtwJiZwLnR5cGU9PT0iZWxlbWVudCImJnAudGFnTmFtZT09PSJwIj9sPXA6KGw9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W119LGkudW5zaGlmdChsKSksbC5jaGlsZHJlbi5sZW5ndGg+MCYmbC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSxsLmNoaWxkcmVuLnVuc2hpZnQoe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImlucHV0Iixwcm9wZXJ0aWVzOnt0eXBlOiJjaGVja2JveCIsY2hlY2tlZDplLmNoZWNrZWQsZGlzYWJsZWQ6ITB9LGNoaWxkcmVuOltdfSkscy5jbGFzc05hbWU9WyJ0YXNrLWxpc3QtaXRlbSJdfWxldCBvPS0xO2Zvcig7KytvPGkubGVuZ3RoOyl7bGV0IHA9aVtvXTsocnx8byE9PTB8fHAudHlwZSE9PSJlbGVtZW50Inx8cC50YWdOYW1lIT09InAiKSYmbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxwLnR5cGU9PT0iZWxlbWVudCImJnAudGFnTmFtZT09PSJwIiYmIXI/bi5wdXNoKC4uLnAuY2hpbGRyZW4pOm4ucHVzaChwKX1sZXQgZD1pW2kubGVuZ3RoLTFdO2QmJihyfHxkLnR5cGUhPT0iZWxlbWVudCJ8fGQudGFnTmFtZSE9PSJwIikmJm4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImxpIixwcm9wZXJ0aWVzOnMsY2hpbGRyZW46bn07cmV0dXJuIHQucGF0Y2goZSxjKSx0LmFwcGx5RGF0YShlLGMpfWZ1bmN0aW9uIEhGdCh0KXtsZXQgZT0hMTtpZih0LnR5cGU9PT0ibGlzdCIpe2U9dC5zcHJlYWR8fCExO2xldCBhPXQuY2hpbGRyZW4saT0tMTtmb3IoOyFlJiYrK2k8YS5sZW5ndGg7KWU9UDBlKGFbaV0pfXJldHVybiBlfWZ1bmN0aW9uIFAwZSh0KXtsZXQgZT10LnNwcmVhZDtyZXR1cm4gZT8/dC5jaGlsZHJlbi5sZW5ndGg+MX12YXIgTjBlPWIoKCk9Pnt9KTtmdW5jdGlvbiBGMGUodCxlKXtsZXQgYT17fSxpPXQuYWxsKGUpLHI9LTE7Zm9yKHR5cGVvZiBlLnN0YXJ0PT0ibnVtYmVyIiYmZS5zdGFydCE9PTEmJihhLnN0YXJ0PWUuc3RhcnQpOysrcjxpLmxlbmd0aDspe2xldCBuPWlbcl07aWYobi50eXBlPT09ImVsZW1lbnQiJiZuLnRhZ05hbWU9PT0ibGkiJiZuLnByb3BlcnRpZXMmJkFycmF5LmlzQXJyYXkobi5wcm9wZXJ0aWVzLmNsYXNzTmFtZSkmJm4ucHJvcGVydGllcy5jbGFzc05hbWUuaW5jbHVkZXMoInRhc2stbGlzdC1pdGVtIikpe2EuY2xhc3NOYW1lPVsiY29udGFpbnMtdGFzay1saXN0Il07YnJlYWt9fWxldCBzPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmUub3JkZXJlZD8ib2wiOiJ1bCIscHJvcGVydGllczphLGNoaWxkcmVuOnQud3JhcChpLCEwKX07cmV0dXJuIHQucGF0Y2goZSxzKSx0LmFwcGx5RGF0YShlLHMpfXZhciBPMGU9YigoKT0+e30pO2Z1bmN0aW9uIFIwZSh0LGUpe2xldCBhPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIEIwZT1iKCgpPT57fSk7ZnVuY3Rpb24gSDBlKHQsZSl7bGV0IGE9e3R5cGU6InJvb3QiLGNoaWxkcmVuOnQud3JhcCh0LmFsbChlKSl9O3JldHVybiB0LnBhdGNoKGUsYSksdC5hcHBseURhdGEoZSxhKX12YXIgcTBlPWIoKCk9Pnt9KTtmdW5jdGlvbiBWMGUodCxlKXtsZXQgYT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3Ryb25nIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIGowZT1iKCgpPT57fSk7ZnVuY3Rpb24gVTBlKHQsZSl7bGV0IGE9dC5hbGwoZSksaT1hLnNoaWZ0KCkscj1bXTtpZihpKXtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGhlYWQiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKFtpXSwhMCl9O3QucGF0Y2goZS5jaGlsZHJlblswXSxuKSxyLnB1c2gobil9aWYoYS5sZW5ndGg+MCl7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRib2R5Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQud3JhcChhLCEwKX0sbz1sdShlLmNoaWxkcmVuWzFdKSxkPW91KGUuY2hpbGRyZW5bZS5jaGlsZHJlbi5sZW5ndGgtMV0pO28mJmQmJihuLnBvc2l0aW9uPXtzdGFydDpvLGVuZDpkfSksci5wdXNoKG4pfWxldCBzPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0YWJsZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjp0LndyYXAociwhMCl9O3JldHVybiB0LnBhdGNoKGUscyksdC5hcHBseURhdGEoZSxzKX12YXIgVzBlPWIoKCk9PntjdSgpfSk7ZnVuY3Rpb24gRzBlKHQsZSxhKXtsZXQgaT1hP2EuY2hpbGRyZW46dm9pZCAwLHM9KGk/aS5pbmRleE9mKGUpOjEpPT09MD8idGgiOiJ0ZCIsbj1hJiZhLnR5cGU9PT0idGFibGUiP2EuYWxpZ246dm9pZCAwLG89bj9uLmxlbmd0aDplLmNoaWxkcmVuLmxlbmd0aCxkPS0xLGM9W107Zm9yKDsrK2Q8bzspe2xldCBsPWUuY2hpbGRyZW5bZF0sZj17fSxnPW4/bltkXTp2b2lkIDA7ZyYmKGYuYWxpZ249Zyk7bGV0IHk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6cyxwcm9wZXJ0aWVzOmYsY2hpbGRyZW46W119O2wmJih5LmNoaWxkcmVuPXQuYWxsKGwpLHQucGF0Y2gobCx5KSx5PXQuYXBwbHlEYXRhKGwseSkpLGMucHVzaCh5KX1sZXQgcD17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidHIiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKGMsITApfTtyZXR1cm4gdC5wYXRjaChlLHApLHQuYXBwbHlEYXRhKGUscCl9dmFyIFkwZT1iKCgpPT57fSk7ZnVuY3Rpb24gWjBlKHQsZSl7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIFgwZT1iKCgpPT57fSk7ZnVuY3Rpb24gUTBlKHQpe2xldCBlPVN0cmluZyh0KSxhPS9ccj9cbnxcci9nLGk9YS5leGVjKGUpLHI9MCxzPVtdO2Zvcig7aTspcy5wdXNoKEswZShlLnNsaWNlKHIsaS5pbmRleCkscj4wLCEwKSxpWzBdKSxyPWkuaW5kZXgraVswXS5sZW5ndGgsaT1hLmV4ZWMoZSk7cmV0dXJuIHMucHVzaChLMGUoZS5zbGljZShyKSxyPjAsITEpKSxzLmpvaW4oIiIpfWZ1bmN0aW9uIEswZSh0LGUsYSl7bGV0IGk9MCxyPXQubGVuZ3RoO2lmKGUpe2xldCBzPXQuY29kZVBvaW50QXQoaSk7Zm9yKDtzPT09OXx8cz09PTMyOylpKysscz10LmNvZGVQb2ludEF0KGkpfWlmKGEpe2xldCBzPXQuY29kZVBvaW50QXQoci0xKTtmb3IoO3M9PT05fHxzPT09MzI7KXItLSxzPXQuY29kZVBvaW50QXQoci0xKX1yZXR1cm4gcj5pP3Quc2xpY2UoaSxyKToiIn12YXIgSkYxLGVPMSxKMGU9YigoKT0+e0pGMT05LGVPMT0zMn0pO2Z1bmN0aW9uIGU0ZSh0LGUpe2xldCBhPXt0eXBlOiJ0ZXh0Iix2YWx1ZTpRMGUoU3RyaW5nKGUudmFsdWUpKX07cmV0dXJuIHQucGF0Y2goZSxhKSx0LmFwcGx5RGF0YShlLGEpfXZhciB0NGU9YigoKT0+e0owZSgpfSk7ZnVuY3Rpb24gYTRlKHQsZSl7bGV0IGE9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImhyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gdC5wYXRjaChlLGEpLHQuYXBwbHlEYXRhKGUsYSl9dmFyIGk0ZT1iKCgpPT57fSk7ZnVuY3Rpb24gaHUoKXt9dmFyIFVMLFdMPWIoKCk9PntjMGUoKTtwMGUoKTt1MGUoKTttMGUoKTtiMGUoKTt5MGUoKTt3MGUoKTt6MGUoKTtTMGUoKTtfMGUoKTtMMGUoKTtBMGUoKTtFMGUoKTtOMGUoKTtPMGUoKTtCMGUoKTtxMGUoKTtqMGUoKTtXMGUoKTtZMGUoKTtYMGUoKTt0NGUoKTtpNGUoKTtVTD17YmxvY2txdW90ZTpsMGUsYnJlYWs6ZDBlLGNvZGU6aDBlLGRlbGV0ZTpmMGUsZW1waGFzaXM6ZzBlLGZvb3Rub3RlUmVmZXJlbmNlOnYwZSxoZWFkaW5nOngwZSxodG1sOk0wZSxpbWFnZVJlZmVyZW5jZTprMGUsaW1hZ2U6QzBlLGlubGluZUNvZGU6VDBlLGxpbmtSZWZlcmVuY2U6JDBlLGxpbms6RDBlLGxpc3RJdGVtOkkwZSxsaXN0OkYwZSxwYXJhZ3JhcGg6UjBlLHJvb3Q6SDBlLHN0cm9uZzpWMGUsdGFibGU6VTBlLHRhYmxlQ2VsbDpaMGUsdGFibGVSb3c6RzBlLHRleHQ6ZTRlLHRoZW1hdGljQnJlYWs6YTRlLHRvbWw6aHUseWFtbDpodSxkZWZpbml0aW9uOmh1LGZvb3Rub3RlRGVmaW5pdGlvbjpodX19KTtmdW5jdGlvbiByNGUodCxlKXtsZXQgYT1be3R5cGU6InRleHQiLHZhbHVlOiJcdTIxQTkifV07cmV0dXJuIGU+MSYmYS5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzdXAiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3t0eXBlOiJ0ZXh0Iix2YWx1ZTpTdHJpbmcoZSl9XX0pLGF9ZnVuY3Rpb24gczRlKHQsZSl7cmV0dXJuIkJhY2sgdG8gcmVmZXJlbmNlICIrKHQrMSkrKGU+MT8iLSIrZToiIil9ZnVuY3Rpb24gbjRlKHQpe2xldCBlPXR5cGVvZiB0Lm9wdGlvbnMuY2xvYmJlclByZWZpeD09InN0cmluZyI/dC5vcHRpb25zLmNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLGE9dC5vcHRpb25zLmZvb3Rub3RlQmFja0NvbnRlbnR8fHI0ZSxpPXQub3B0aW9ucy5mb290bm90ZUJhY2tMYWJlbHx8czRlLHI9dC5vcHRpb25zLmZvb3Rub3RlTGFiZWx8fCJGb290bm90ZXMiLHM9dC5vcHRpb25zLmZvb3Rub3RlTGFiZWxUYWdOYW1lfHwiaDIiLG49dC5vcHRpb25zLmZvb3Rub3RlTGFiZWxQcm9wZXJ0aWVzfHx7Y2xhc3NOYW1lOlsic3Itb25seSJdfSxvPVtdLGQ9LTE7Zm9yKDsrK2Q8dC5mb290bm90ZU9yZGVyLmxlbmd0aDspe2xldCBjPXQuZm9vdG5vdGVCeUlkLmdldCh0LmZvb3Rub3RlT3JkZXJbZF0pO2lmKCFjKWNvbnRpbnVlO2xldCBwPXQuYWxsKGMpLGw9U3RyaW5nKGMuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxmPUhhKGwudG9Mb3dlckNhc2UoKSksZz0wLHk9W10sdj10LmZvb3Rub3RlQ291bnRzLmdldChsKTtmb3IoO3YhPT12b2lkIDAmJisrZzw9djspe3kubGVuZ3RoPjAmJnkucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSk7bGV0IE09dHlwZW9mIGE9PSJzdHJpbmciP2E6YShkLGcpO3R5cGVvZiBNPT0ic3RyaW5nIiYmKE09e3R5cGU6InRleHQiLHZhbHVlOk19KSx5LnB1c2goe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6e2hyZWY6IiMiK2UrImZucmVmLSIrZisoZz4xPyItIitnOiIiKSxkYXRhRm9vdG5vdGVCYWNrcmVmOiIiLGFyaWFMYWJlbDp0eXBlb2YgaT09InN0cmluZyI/aTppKGQsZyksY2xhc3NOYW1lOlsiZGF0YS1mb290bm90ZS1iYWNrcmVmIl19LGNoaWxkcmVuOkFycmF5LmlzQXJyYXkoTSk/TTpbTV19KX1sZXQgbT1wW3AubGVuZ3RoLTFdO2lmKG0mJm0udHlwZT09PSJlbGVtZW50IiYmbS50YWdOYW1lPT09InAiKXtsZXQgTT1tLmNoaWxkcmVuW20uY2hpbGRyZW4ubGVuZ3RoLTFdO00mJk0udHlwZT09PSJ0ZXh0Ij9NLnZhbHVlKz0iICI6bS5jaGlsZHJlbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiICJ9KSxtLmNoaWxkcmVuLnB1c2goLi4ueSl9ZWxzZSBwLnB1c2goLi4ueSk7bGV0IHg9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImxpIixwcm9wZXJ0aWVzOntpZDplKyJmbi0iK2Z9LGNoaWxkcmVuOnQud3JhcChwLCEwKX07dC5wYXRjaChjLHgpLG8ucHVzaCh4KX1pZihvLmxlbmd0aCE9PTApcmV0dXJue3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InNlY3Rpb24iLHByb3BlcnRpZXM6e2RhdGFGb290bm90ZXM6ITAsY2xhc3NOYW1lOlsiZm9vdG5vdGVzIl19LGNoaWxkcmVuOlt7dHlwZToiZWxlbWVudCIsdGFnTmFtZTpzLHByb3BlcnRpZXM6ey4uLlZuKG4pLGlkOiJmb290bm90ZS1sYWJlbCJ9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6cn1dfSx7dHlwZToidGV4dCIsdmFsdWU6YApgfSx7dHlwZToiZWxlbWVudCIsdGFnTmFtZToib2wiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46dC53cmFwKG8sITApfSx7dHlwZToidGV4dCIsdmFsdWU6YApgfV19fXZhciBHTD1iKCgpPT57bnUoKTtFcigpfSk7ZnVuY3Rpb24gbDRlKHQsZSl7bGV0IGE9ZXx8cUZ0LGk9bmV3IE1hcCxyPW5ldyBNYXAscz1uZXcgTWFwLG49ey4uLlVMLC4uLmEuaGFuZGxlcnN9LG89e2FsbDpjLGFwcGx5RGF0YTpqRnQsZGVmaW5pdGlvbkJ5SWQ6aSxmb290bm90ZUJ5SWQ6cixmb290bm90ZUNvdW50czpzLGZvb3Rub3RlT3JkZXI6W10saGFuZGxlcnM6bixvbmU6ZCxvcHRpb25zOmEscGF0Y2g6VkZ0LHdyYXA6V0Z0fTtyZXR1cm4gSDYodCxmdW5jdGlvbihwKXtpZihwLnR5cGU9PT0iZGVmaW5pdGlvbiJ8fHAudHlwZT09PSJmb290bm90ZURlZmluaXRpb24iKXtsZXQgbD1wLnR5cGU9PT0iZGVmaW5pdGlvbiI/aTpyLGY9U3RyaW5nKHAuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKTtsLmhhcyhmKXx8bC5zZXQoZixwKX19KSxvO2Z1bmN0aW9uIGQocCxsKXtsZXQgZj1wLnR5cGUsZz1vLmhhbmRsZXJzW2ZdO2lmKFlMLmNhbGwoby5oYW5kbGVycyxmKSYmZylyZXR1cm4gZyhvLHAsbCk7aWYoby5vcHRpb25zLnBhc3NUaHJvdWdoJiZvLm9wdGlvbnMucGFzc1Rocm91Z2guaW5jbHVkZXMoZikpe2lmKCJjaGlsZHJlbiJpbiBwKXtsZXR7Y2hpbGRyZW46diwuLi5tfT1wLHg9Vm4obSk7cmV0dXJuIHguY2hpbGRyZW49by5hbGwocCkseH1yZXR1cm4gVm4ocCl9cmV0dXJuKG8ub3B0aW9ucy51bmtub3duSGFuZGxlcnx8VUZ0KShvLHAsbCl9ZnVuY3Rpb24gYyhwKXtsZXQgbD1bXTtpZigiY2hpbGRyZW4iaW4gcCl7bGV0IGY9cC5jaGlsZHJlbixnPS0xO2Zvcig7KytnPGYubGVuZ3RoOyl7bGV0IHk9by5vbmUoZltnXSxwKTtpZih5KXtpZihnJiZmW2ctMV0udHlwZT09PSJicmVhayImJighQXJyYXkuaXNBcnJheSh5KSYmeS50eXBlPT09InRleHQiJiYoeS52YWx1ZT1vNGUoeS52YWx1ZSkpLCFBcnJheS5pc0FycmF5KHkpJiZ5LnR5cGU9PT0iZWxlbWVudCIpKXtsZXQgdj15LmNoaWxkcmVuWzBdO3YmJnYudHlwZT09PSJ0ZXh0IiYmKHYudmFsdWU9bzRlKHYudmFsdWUpKX1BcnJheS5pc0FycmF5KHkpP2wucHVzaCguLi55KTpsLnB1c2goeSl9fX1yZXR1cm4gbH19ZnVuY3Rpb24gVkZ0KHQsZSl7dC5wb3NpdGlvbiYmKGUucG9zaXRpb249YTUodCkpfWZ1bmN0aW9uIGpGdCh0LGUpe2xldCBhPWU7aWYodCYmdC5kYXRhKXtsZXQgaT10LmRhdGEuaE5hbWUscj10LmRhdGEuaENoaWxkcmVuLHM9dC5kYXRhLmhQcm9wZXJ0aWVzO2lmKHR5cGVvZiBpPT0ic3RyaW5nIilpZihhLnR5cGU9PT0iZWxlbWVudCIpYS50YWdOYW1lPWk7ZWxzZXtsZXQgbj0iY2hpbGRyZW4iaW4gYT9hLmNoaWxkcmVuOlthXTthPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOmkscHJvcGVydGllczp7fSxjaGlsZHJlbjpufX1hLnR5cGU9PT0iZWxlbWVudCImJnMmJk9iamVjdC5hc3NpZ24oYS5wcm9wZXJ0aWVzLFZuKHMpKSwiY2hpbGRyZW4iaW4gYSYmYS5jaGlsZHJlbiYmciE9PW51bGwmJnIhPT12b2lkIDAmJihhLmNoaWxkcmVuPXIpfXJldHVybiBhfWZ1bmN0aW9uIFVGdCh0LGUpe2xldCBhPWUuZGF0YXx8e30saT0idmFsdWUiaW4gZSYmIShZTC5jYWxsKGEsImhQcm9wZXJ0aWVzIil8fFlMLmNhbGwoYSwiaENoaWxkcmVuIikpP3t0eXBlOiJ0ZXh0Iix2YWx1ZTplLnZhbHVlfTp7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGl2Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOnQuYWxsKGUpfTtyZXR1cm4gdC5wYXRjaChlLGkpLHQuYXBwbHlEYXRhKGUsaSl9ZnVuY3Rpb24gV0Z0KHQsZSl7bGV0IGE9W10saT0tMTtmb3IoZSYmYS5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KTsrK2k8dC5sZW5ndGg7KWkmJmEucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksYS5wdXNoKHRbaV0pO3JldHVybiBlJiZ0Lmxlbmd0aD4wJiZhLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLGF9ZnVuY3Rpb24gbzRlKHQpe2xldCBlPTAsYT10LmNoYXJDb2RlQXQoZSk7Zm9yKDthPT09OXx8YT09PTMyOyllKyssYT10LmNoYXJDb2RlQXQoZSk7cmV0dXJuIHQuc2xpY2UoZSl9dmFyIFlMLHFGdCxjNGU9YigoKT0+e251KCk7eVQoKTtjdSgpO1dMKCk7WUw9e30uaGFzT3duUHJvcGVydHkscUZ0PXt9fSk7ZnVuY3Rpb24gWkwodCxlKXtsZXQgYT1sNGUodCxlKSxpPWEub25lKHQsdm9pZCAwKSxyPW40ZShhKSxzPUFycmF5LmlzQXJyYXkoaSk/e3R5cGU6InJvb3QiLGNoaWxkcmVuOml9Oml8fHt0eXBlOiJyb290IixjaGlsZHJlbjpbXX07cmV0dXJuIHImJigiY2hpbGRyZW4iaW4gcyxzLmNoaWxkcmVuLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0scikpLHN9dmFyIGQ0ZT1iKCgpPT57Tm4oKTtHTCgpO2M0ZSgpfSk7dmFyIHA0ZT1iKCgpPT57V0woKTtkNGUoKTtHTCgpfSk7dmFyIGg0ZSx1NGU9YigoKT0+e2g0ZT1bImFyZWEiLCJiYXNlIiwiYmFzZWZvbnQiLCJiZ3NvdW5kIiwiYnIiLCJjb2wiLCJjb21tYW5kIiwiZW1iZWQiLCJmcmFtZSIsImhyIiwiaW1hZ2UiLCJpbWciLCJpbnB1dCIsImtleWdlbiIsImxpbmsiLCJtZXRhIiwicGFyYW0iLCJzb3VyY2UiLCJ0cmFjayIsIndiciJdfSk7dmFyIHhzLFhMPWIoKCk9Pnt4cz1jbGFzc3tjb25zdHJ1Y3RvcihlLGEsaSl7dGhpcy5ub3JtYWw9YSx0aGlzLnByb3BlcnR5PWUsaSYmKHRoaXMuc3BhY2U9aSl9fTt4cy5wcm90b3R5cGUubm9ybWFsPXt9LHhzLnByb3RvdHlwZS5wcm9wZXJ0eT17fSx4cy5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7ZnVuY3Rpb24gS0wodCxlKXtsZXQgYT17fSxpPXt9O2ZvcihsZXQgciBvZiB0KU9iamVjdC5hc3NpZ24oYSxyLnByb3BlcnR5KSxPYmplY3QuYXNzaWduKGksci5ub3JtYWwpO3JldHVybiBuZXcgeHMoYSxpLGUpfXZhciBmNGU9YigoKT0+e1hMKCl9KTtmdW5jdGlvbiBXMyh0KXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfXZhciB1dT1iKCgpPT57fSk7dmFyIGYyLFFMPWIoKCk9PntmMj1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuYXR0cmlidXRlPWEsdGhpcy5wcm9wZXJ0eT1lfX07ZjIucHJvdG90eXBlLmF0dHJpYnV0ZT0iIixmMi5wcm90b3R5cGUuYm9vbGVhbmlzaD0hMSxmMi5wcm90b3R5cGUuYm9vbGVhbj0hMSxmMi5wcm90b3R5cGUuY29tbWFPclNwYWNlU2VwYXJhdGVkPSExLGYyLnByb3RvdHlwZS5jb21tYVNlcGFyYXRlZD0hMSxmMi5wcm90b3R5cGUuZGVmaW5lZD0hMSxmMi5wcm90b3R5cGUubXVzdFVzZVByb3BlcnR5PSExLGYyLnByb3RvdHlwZS5udW1iZXI9ITEsZjIucHJvdG90eXBlLm92ZXJsb2FkZWRCb29sZWFuPSExLGYyLnByb3RvdHlwZS5wcm9wZXJ0eT0iIixmMi5wcm90b3R5cGUuc3BhY2VTZXBhcmF0ZWQ9ITEsZjIucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO3ZhciByNT17fTtHZShyNSx7Ym9vbGVhbjooKT0+ZnQsYm9vbGVhbmlzaDooKT0+STEsY29tbWFPclNwYWNlU2VwYXJhdGVkOigpPT5fYSxjb21tYVNlcGFyYXRlZDooKT0+VW4sbnVtYmVyOigpPT5FZSxvdmVybG9hZGVkQm9vbGVhbjooKT0+ZnUsc3BhY2VTZXBhcmF0ZWQ6KCk9PnMxfSk7ZnVuY3Rpb24gVDAoKXtyZXR1cm4gMioqKytHRnR9dmFyIEdGdCxmdCxJMSxmdSxFZSxzMSxVbixfYSxzNT1iKCgpPT57R0Z0PTAsZnQ9VDAoKSxJMT1UMCgpLGZ1PVQwKCksRWU9VDAoKSxzMT1UMCgpLFVuPVQwKCksX2E9VDAoKX0pO2Z1bmN0aW9uIG00ZSh0LGUsYSl7YSYmKHRbZV09YSl9dmFyIEpMLEwwLGUkPWIoKCk9PntRTCgpO3M1KCk7Skw9T2JqZWN0LmtleXMocjUpLEwwPWNsYXNzIGV4dGVuZHMgZjJ7Y29uc3RydWN0b3IoZSxhLGkscil7bGV0IHM9LTE7aWYoc3VwZXIoZSxhKSxtNGUodGhpcywic3BhY2UiLHIpLHR5cGVvZiBpPT0ibnVtYmVyIilmb3IoOysrczxKTC5sZW5ndGg7KXtsZXQgbj1KTFtzXTttNGUodGhpcyxKTFtzXSwoaSZyNVtuXSk9PT1yNVtuXSl9fX07TDAucHJvdG90eXBlLmRlZmluZWQ9ITB9KTtmdW5jdGlvbiBjaSh0KXtsZXQgZT17fSxhPXt9O2ZvcihsZXRbaSxyXW9mIE9iamVjdC5lbnRyaWVzKHQucHJvcGVydGllcykpe2xldCBzPW5ldyBMMChpLHQudHJhbnNmb3JtKHQuYXR0cmlidXRlc3x8e30saSkscix0LnNwYWNlKTt0Lm11c3RVc2VQcm9wZXJ0eSYmdC5tdXN0VXNlUHJvcGVydHkuaW5jbHVkZXMoaSkmJihzLm11c3RVc2VQcm9wZXJ0eT0hMCksZVtpXT1zLGFbVzMoaSldPWksYVtXMyhzLmF0dHJpYnV0ZSldPWl9cmV0dXJuIG5ldyB4cyhlLGEsdC5zcGFjZSl9dmFyICQwPWIoKCk9Pnt1dSgpO2UkKCk7WEwoKX0pO3ZhciB0JCxnNGU9YigoKT0+eyQwKCk7czUoKTt0JD1jaSh7cHJvcGVydGllczp7YXJpYUFjdGl2ZURlc2NlbmRhbnQ6bnVsbCxhcmlhQXRvbWljOkkxLGFyaWFBdXRvQ29tcGxldGU6bnVsbCxhcmlhQnVzeTpJMSxhcmlhQ2hlY2tlZDpJMSxhcmlhQ29sQ291bnQ6RWUsYXJpYUNvbEluZGV4OkVlLGFyaWFDb2xTcGFuOkVlLGFyaWFDb250cm9sczpzMSxhcmlhQ3VycmVudDpudWxsLGFyaWFEZXNjcmliZWRCeTpzMSxhcmlhRGV0YWlsczpudWxsLGFyaWFEaXNhYmxlZDpJMSxhcmlhRHJvcEVmZmVjdDpzMSxhcmlhRXJyb3JNZXNzYWdlOm51bGwsYXJpYUV4cGFuZGVkOkkxLGFyaWFGbG93VG86czEsYXJpYUdyYWJiZWQ6STEsYXJpYUhhc1BvcHVwOm51bGwsYXJpYUhpZGRlbjpJMSxhcmlhSW52YWxpZDpudWxsLGFyaWFLZXlTaG9ydGN1dHM6bnVsbCxhcmlhTGFiZWw6bnVsbCxhcmlhTGFiZWxsZWRCeTpzMSxhcmlhTGV2ZWw6RWUsYXJpYUxpdmU6bnVsbCxhcmlhTW9kYWw6STEsYXJpYU11bHRpTGluZTpJMSxhcmlhTXVsdGlTZWxlY3RhYmxlOkkxLGFyaWFPcmllbnRhdGlvbjpudWxsLGFyaWFPd25zOnMxLGFyaWFQbGFjZWhvbGRlcjpudWxsLGFyaWFQb3NJblNldDpFZSxhcmlhUHJlc3NlZDpJMSxhcmlhUmVhZE9ubHk6STEsYXJpYVJlbGV2YW50Om51bGwsYXJpYVJlcXVpcmVkOkkxLGFyaWFSb2xlRGVzY3JpcHRpb246czEsYXJpYVJvd0NvdW50OkVlLGFyaWFSb3dJbmRleDpFZSxhcmlhUm93U3BhbjpFZSxhcmlhU2VsZWN0ZWQ6STEsYXJpYVNldFNpemU6RWUsYXJpYVNvcnQ6bnVsbCxhcmlhVmFsdWVNYXg6RWUsYXJpYVZhbHVlTWluOkVlLGFyaWFWYWx1ZU5vdzpFZSxhcmlhVmFsdWVUZXh0Om51bGwscm9sZTpudWxsfSx0cmFuc2Zvcm0odCxlKXtyZXR1cm4gZT09PSJyb2xlIj9lOiJhcmlhLSIrZS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpfX0pfSk7ZnVuY3Rpb24gbXUodCxlKXtyZXR1cm4gZSBpbiB0P3RbZV06ZX12YXIgYSQ9YigoKT0+e30pO2Z1bmN0aW9uIGd1KHQsZSl7cmV0dXJuIG11KHQsZS50b0xvd2VyQ2FzZSgpKX12YXIgaSQ9YigoKT0+e2EkKCl9KTt2YXIgYjRlLHY0ZT1iKCgpPT57aSQoKTskMCgpO3M1KCk7YjRlPWNpKHthdHRyaWJ1dGVzOnthY2NlcHRjaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NuYW1lOiJjbGFzcyIsaHRtbGZvcjoiZm9yIixodHRwZXF1aXY6Imh0dHAtZXF1aXYifSxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDpVbixhY2NlcHRDaGFyc2V0OnMxLGFjY2Vzc0tleTpzMSxhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjpmdCxhbGxvd1BheW1lbnRSZXF1ZXN0OmZ0LGFsbG93VXNlck1lZGlhOmZ0LGFsdDpudWxsLGFzOm51bGwsYXN5bmM6ZnQsYXV0b0NhcGl0YWxpemU6bnVsbCxhdXRvQ29tcGxldGU6czEsYXV0b0ZvY3VzOmZ0LGF1dG9QbGF5OmZ0LGJsb2NraW5nOnMxLGNhcHR1cmU6bnVsbCxjaGFyU2V0Om51bGwsY2hlY2tlZDpmdCxjaXRlOm51bGwsY2xhc3NOYW1lOnMxLGNvbHM6RWUsY29sU3BhbjpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50RWRpdGFibGU6STEsY29udHJvbHM6ZnQsY29udHJvbHNMaXN0OnMxLGNvb3JkczpFZXxVbixjcm9zc09yaWdpbjpudWxsLGRhdGE6bnVsbCxkYXRlVGltZTpudWxsLGRlY29kaW5nOm51bGwsZGVmYXVsdDpmdCxkZWZlcjpmdCxkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6ZnQsZG93bmxvYWQ6ZnUsZHJhZ2dhYmxlOkkxLGVuY1R5cGU6bnVsbCxlbnRlcktleUhpbnQ6bnVsbCxmZXRjaFByaW9yaXR5Om51bGwsZm9ybTpudWxsLGZvcm1BY3Rpb246bnVsbCxmb3JtRW5jVHlwZTpudWxsLGZvcm1NZXRob2Q6bnVsbCxmb3JtTm9WYWxpZGF0ZTpmdCxmb3JtVGFyZ2V0Om51bGwsaGVhZGVyczpzMSxoZWlnaHQ6RWUsaGlkZGVuOmZ1LGhpZ2g6RWUsaHJlZjpudWxsLGhyZWZMYW5nOm51bGwsaHRtbEZvcjpzMSxodHRwRXF1aXY6czEsaWQ6bnVsbCxpbWFnZVNpemVzOm51bGwsaW1hZ2VTcmNTZXQ6bnVsbCxpbmVydDpmdCxpbnB1dE1vZGU6bnVsbCxpbnRlZ3JpdHk6bnVsbCxpczpudWxsLGlzTWFwOmZ0LGl0ZW1JZDpudWxsLGl0ZW1Qcm9wOnMxLGl0ZW1SZWY6czEsaXRlbVNjb3BlOmZ0LGl0ZW1UeXBlOnMxLGtpbmQ6bnVsbCxsYWJlbDpudWxsLGxhbmc6bnVsbCxsYW5ndWFnZTpudWxsLGxpc3Q6bnVsbCxsb2FkaW5nOm51bGwsbG9vcDpmdCxsb3c6RWUsbWFuaWZlc3Q6bnVsbCxtYXg6bnVsbCxtYXhMZW5ndGg6RWUsbWVkaWE6bnVsbCxtZXRob2Q6bnVsbCxtaW46bnVsbCxtaW5MZW5ndGg6RWUsbXVsdGlwbGU6ZnQsbXV0ZWQ6ZnQsbmFtZTpudWxsLG5vbmNlOm51bGwsbm9Nb2R1bGU6ZnQsbm9WYWxpZGF0ZTpmdCxvbkFib3J0Om51bGwsb25BZnRlclByaW50Om51bGwsb25BdXhDbGljazpudWxsLG9uQmVmb3JlTWF0Y2g6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWZvcmVUb2dnbGU6bnVsbCxvbkJlZm9yZVVubG9hZDpudWxsLG9uQmx1cjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvbnRleHRMb3N0Om51bGwsb25Db250ZXh0TWVudTpudWxsLG9uQ29udGV4dFJlc3RvcmVkOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZGVkOm51bGwsb25FcnJvcjpudWxsLG9uRm9jdXM6bnVsbCxvbkZvcm1EYXRhOm51bGwsb25IYXNoQ2hhbmdlOm51bGwsb25JbnB1dDpudWxsLG9uSW52YWxpZDpudWxsLG9uS2V5RG93bjpudWxsLG9uS2V5UHJlc3M6bnVsbCxvbktleVVwOm51bGwsb25MYW5ndWFnZUNoYW5nZTpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRFbmQ6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTWVzc2FnZUVycm9yOm51bGwsb25Nb3VzZURvd246bnVsbCxvbk1vdXNlRW50ZXI6bnVsbCxvbk1vdXNlTGVhdmU6bnVsbCxvbk1vdXNlTW92ZTpudWxsLG9uTW91c2VPdXQ6bnVsbCxvbk1vdXNlT3ZlcjpudWxsLG9uTW91c2VVcDpudWxsLG9uT2ZmbGluZTpudWxsLG9uT25saW5lOm51bGwsb25QYWdlSGlkZTpudWxsLG9uUGFnZVNob3c6bnVsbCxvblBhc3RlOm51bGwsb25QYXVzZTpudWxsLG9uUGxheTpudWxsLG9uUGxheWluZzpudWxsLG9uUG9wU3RhdGU6bnVsbCxvblByb2dyZXNzOm51bGwsb25SYXRlQ2hhbmdlOm51bGwsb25SZWplY3Rpb25IYW5kbGVkOm51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNjcm9sbEVuZDpudWxsLG9uU2VjdXJpdHlQb2xpY3lWaW9sYXRpb246bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TbG90Q2hhbmdlOm51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5oYW5kbGVkUmVqZWN0aW9uOm51bGwsb25VbmxvYWQ6bnVsbCxvblZvbHVtZUNoYW5nZTpudWxsLG9uV2FpdGluZzpudWxsLG9uV2hlZWw6bnVsbCxvcGVuOmZ0LG9wdGltdW06RWUscGF0dGVybjpudWxsLHBpbmc6czEscGxhY2Vob2xkZXI6bnVsbCxwbGF5c0lubGluZTpmdCxwb3BvdmVyOm51bGwscG9wb3ZlclRhcmdldDpudWxsLHBvcG92ZXJUYXJnZXRBY3Rpb246bnVsbCxwb3N0ZXI6bnVsbCxwcmVsb2FkOm51bGwscmVhZE9ubHk6ZnQscmVmZXJyZXJQb2xpY3k6bnVsbCxyZWw6czEscmVxdWlyZWQ6ZnQscmV2ZXJzZWQ6ZnQscm93czpFZSxyb3dTcGFuOkVlLHNhbmRib3g6czEsc2NvcGU6bnVsbCxzY29wZWQ6ZnQsc2VhbWxlc3M6ZnQsc2VsZWN0ZWQ6ZnQsc2hhZG93Um9vdENsb25hYmxlOmZ0LHNoYWRvd1Jvb3REZWxlZ2F0ZXNGb2N1czpmdCxzaGFkb3dSb290TW9kZTpudWxsLHNoYXBlOm51bGwsc2l6ZTpFZSxzaXplczpudWxsLHNsb3Q6bnVsbCxzcGFuOkVlLHNwZWxsQ2hlY2s6STEsc3JjOm51bGwsc3JjRG9jOm51bGwsc3JjTGFuZzpudWxsLHNyY1NldDpudWxsLHN0YXJ0OkVlLHN0ZXA6bnVsbCxzdHlsZTpudWxsLHRhYkluZGV4OkVlLHRhcmdldDpudWxsLHRpdGxlOm51bGwsdHJhbnNsYXRlOm51bGwsdHlwZTpudWxsLHR5cGVNdXN0TWF0Y2g6ZnQsdXNlTWFwOm51bGwsdmFsdWU6STEsd2lkdGg6RWUsd3JhcDpudWxsLHdyaXRpbmdTdWdnZXN0aW9uczpudWxsLGFsaWduOm51bGwsYUxpbms6bnVsbCxhcmNoaXZlOnMxLGF4aXM6bnVsbCxiYWNrZ3JvdW5kOm51bGwsYmdDb2xvcjpudWxsLGJvcmRlcjpFZSxib3JkZXJDb2xvcjpudWxsLGJvdHRvbU1hcmdpbjpFZSxjZWxsUGFkZGluZzpudWxsLGNlbGxTcGFjaW5nOm51bGwsY2hhcjpudWxsLGNoYXJPZmY6bnVsbCxjbGFzc0lkOm51bGwsY2xlYXI6bnVsbCxjb2RlOm51bGwsY29kZUJhc2U6bnVsbCxjb2RlVHlwZTpudWxsLGNvbG9yOm51bGwsY29tcGFjdDpmdCxkZWNsYXJlOmZ0LGV2ZW50Om51bGwsZmFjZTpudWxsLGZyYW1lOm51bGwsZnJhbWVCb3JkZXI6bnVsbCxoU3BhY2U6RWUsbGVmdE1hcmdpbjpFZSxsaW5rOm51bGwsbG9uZ0Rlc2M6bnVsbCxsb3dTcmM6bnVsbCxtYXJnaW5IZWlnaHQ6RWUsbWFyZ2luV2lkdGg6RWUsbm9SZXNpemU6ZnQsbm9IcmVmOmZ0LG5vU2hhZGU6ZnQsbm9XcmFwOmZ0LG9iamVjdDpudWxsLHByb2ZpbGU6bnVsbCxwcm9tcHQ6bnVsbCxyZXY6bnVsbCxyaWdodE1hcmdpbjpFZSxydWxlczpudWxsLHNjaGVtZTpudWxsLHNjcm9sbGluZzpJMSxzdGFuZGJ5Om51bGwsc3VtbWFyeTpudWxsLHRleHQ6bnVsbCx0b3BNYXJnaW46RWUsdmFsdWVUeXBlOm51bGwsdmVyc2lvbjpudWxsLHZBbGlnbjpudWxsLHZMaW5rOm51bGwsdlNwYWNlOkVlLGFsbG93VHJhbnNwYXJlbmN5Om51bGwsYXV0b0NvcnJlY3Q6bnVsbCxhdXRvU2F2ZTpudWxsLGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlOmZ0LGRpc2FibGVSZW1vdGVQbGF5YmFjazpmdCxwcmVmaXg6bnVsbCxwcm9wZXJ0eTpudWxsLHJlc3VsdHM6RWUsc2VjdXJpdHk6bnVsbCx1bnNlbGVjdGFibGU6bnVsbH0sc3BhY2U6Imh0bWwiLHRyYW5zZm9ybTpndX0pfSk7dmFyIHk0ZSx4NGU9YigoKT0+e2EkKCk7JDAoKTtzNSgpO3k0ZT1jaSh7YXR0cmlidXRlczp7YWNjZW50SGVpZ2h0OiJhY2NlbnQtaGVpZ2h0IixhbGlnbm1lbnRCYXNlbGluZToiYWxpZ25tZW50LWJhc2VsaW5lIixhcmFiaWNGb3JtOiJhcmFiaWMtZm9ybSIsYmFzZWxpbmVTaGlmdDoiYmFzZWxpbmUtc2hpZnQiLGNhcEhlaWdodDoiY2FwLWhlaWdodCIsY2xhc3NOYW1lOiJjbGFzcyIsY2xpcFBhdGg6ImNsaXAtcGF0aCIsY2xpcFJ1bGU6ImNsaXAtcnVsZSIsY29sb3JJbnRlcnBvbGF0aW9uOiJjb2xvci1pbnRlcnBvbGF0aW9uIixjb2xvckludGVycG9sYXRpb25GaWx0ZXJzOiJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiLGNvbG9yUHJvZmlsZToiY29sb3ItcHJvZmlsZSIsY29sb3JSZW5kZXJpbmc6ImNvbG9yLXJlbmRlcmluZyIsY3Jvc3NPcmlnaW46ImNyb3Nzb3JpZ2luIixkYXRhVHlwZToiZGF0YXR5cGUiLGRvbWluYW50QmFzZWxpbmU6ImRvbWluYW50LWJhc2VsaW5lIixlbmFibGVCYWNrZ3JvdW5kOiJlbmFibGUtYmFja2dyb3VuZCIsZmlsbE9wYWNpdHk6ImZpbGwtb3BhY2l0eSIsZmlsbFJ1bGU6ImZpbGwtcnVsZSIsZmxvb2RDb2xvcjoiZmxvb2QtY29sb3IiLGZsb29kT3BhY2l0eToiZmxvb2Qtb3BhY2l0eSIsZm9udEZhbWlseToiZm9udC1mYW1pbHkiLGZvbnRTaXplOiJmb250LXNpemUiLGZvbnRTaXplQWRqdXN0OiJmb250LXNpemUtYWRqdXN0Iixmb250U3RyZXRjaDoiZm9udC1zdHJldGNoIixmb250U3R5bGU6ImZvbnQtc3R5bGUiLGZvbnRWYXJpYW50OiJmb250LXZhcmlhbnQiLGZvbnRXZWlnaHQ6ImZvbnQtd2VpZ2h0IixnbHlwaE5hbWU6ImdseXBoLW5hbWUiLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOiJnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIixnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6ImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIixocmVmTGFuZzoiaHJlZmxhbmciLGhvcml6QWR2WDoiaG9yaXotYWR2LXgiLGhvcml6T3JpZ2luWDoiaG9yaXotb3JpZ2luLXgiLGhvcml6T3JpZ2luWToiaG9yaXotb3JpZ2luLXkiLGltYWdlUmVuZGVyaW5nOiJpbWFnZS1yZW5kZXJpbmciLGxldHRlclNwYWNpbmc6ImxldHRlci1zcGFjaW5nIixsaWdodGluZ0NvbG9yOiJsaWdodGluZy1jb2xvciIsbWFya2VyRW5kOiJtYXJrZXItZW5kIixtYXJrZXJNaWQ6Im1hcmtlci1taWQiLG1hcmtlclN0YXJ0OiJtYXJrZXItc3RhcnQiLG5hdkRvd246Im5hdi1kb3duIixuYXZEb3duTGVmdDoibmF2LWRvd24tbGVmdCIsbmF2RG93blJpZ2h0OiJuYXYtZG93bi1yaWdodCIsbmF2TGVmdDoibmF2LWxlZnQiLG5hdk5leHQ6Im5hdi1uZXh0IixuYXZQcmV2OiJuYXYtcHJldiIsbmF2UmlnaHQ6Im5hdi1yaWdodCIsbmF2VXA6Im5hdi11cCIsbmF2VXBMZWZ0OiJuYXYtdXAtbGVmdCIsbmF2VXBSaWdodDoibmF2LXVwLXJpZ2h0IixvbkFib3J0OiJvbmFib3J0IixvbkFjdGl2YXRlOiJvbmFjdGl2YXRlIixvbkFmdGVyUHJpbnQ6Im9uYWZ0ZXJwcmludCIsb25CZWZvcmVQcmludDoib25iZWZvcmVwcmludCIsb25CZWdpbjoib25iZWdpbiIsb25DYW5jZWw6Im9uY2FuY2VsIixvbkNhblBsYXk6Im9uY2FucGxheSIsb25DYW5QbGF5VGhyb3VnaDoib25jYW5wbGF5dGhyb3VnaCIsb25DaGFuZ2U6Im9uY2hhbmdlIixvbkNsaWNrOiJvbmNsaWNrIixvbkNsb3NlOiJvbmNsb3NlIixvbkNvcHk6Im9uY29weSIsb25DdWVDaGFuZ2U6Im9uY3VlY2hhbmdlIixvbkN1dDoib25jdXQiLG9uRGJsQ2xpY2s6Im9uZGJsY2xpY2siLG9uRHJhZzoib25kcmFnIixvbkRyYWdFbmQ6Im9uZHJhZ2VuZCIsb25EcmFnRW50ZXI6Im9uZHJhZ2VudGVyIixvbkRyYWdFeGl0OiJvbmRyYWdleGl0IixvbkRyYWdMZWF2ZToib25kcmFnbGVhdmUiLG9uRHJhZ092ZXI6Im9uZHJhZ292ZXIiLG9uRHJhZ1N0YXJ0OiJvbmRyYWdzdGFydCIsb25Ecm9wOiJvbmRyb3AiLG9uRHVyYXRpb25DaGFuZ2U6Im9uZHVyYXRpb25jaGFuZ2UiLG9uRW1wdGllZDoib25lbXB0aWVkIixvbkVuZDoib25lbmQiLG9uRW5kZWQ6Im9uZW5kZWQiLG9uRXJyb3I6Im9uZXJyb3IiLG9uRm9jdXM6Im9uZm9jdXMiLG9uRm9jdXNJbjoib25mb2N1c2luIixvbkZvY3VzT3V0OiJvbmZvY3Vzb3V0Iixvbkhhc2hDaGFuZ2U6Im9uaGFzaGNoYW5nZSIsb25JbnB1dDoib25pbnB1dCIsb25JbnZhbGlkOiJvbmludmFsaWQiLG9uS2V5RG93bjoib25rZXlkb3duIixvbktleVByZXNzOiJvbmtleXByZXNzIixvbktleVVwOiJvbmtleXVwIixvbkxvYWQ6Im9ubG9hZCIsb25Mb2FkZWREYXRhOiJvbmxvYWRlZGRhdGEiLG9uTG9hZGVkTWV0YWRhdGE6Im9ubG9hZGVkbWV0YWRhdGEiLG9uTG9hZFN0YXJ0OiJvbmxvYWRzdGFydCIsb25NZXNzYWdlOiJvbm1lc3NhZ2UiLG9uTW91c2VEb3duOiJvbm1vdXNlZG93biIsb25Nb3VzZUVudGVyOiJvbm1vdXNlZW50ZXIiLG9uTW91c2VMZWF2ZToib25tb3VzZWxlYXZlIixvbk1vdXNlTW92ZToib25tb3VzZW1vdmUiLG9uTW91c2VPdXQ6Im9ubW91c2VvdXQiLG9uTW91c2VPdmVyOiJvbm1vdXNlb3ZlciIsb25Nb3VzZVVwOiJvbm1vdXNldXAiLG9uTW91c2VXaGVlbDoib25tb3VzZXdoZWVsIixvbk9mZmxpbmU6Im9ub2ZmbGluZSIsb25PbmxpbmU6Im9ub25saW5lIixvblBhZ2VIaWRlOiJvbnBhZ2VoaWRlIixvblBhZ2VTaG93OiJvbnBhZ2VzaG93IixvblBhc3RlOiJvbnBhc3RlIixvblBhdXNlOiJvbnBhdXNlIixvblBsYXk6Im9ucGxheSIsb25QbGF5aW5nOiJvbnBsYXlpbmciLG9uUG9wU3RhdGU6Im9ucG9wc3RhdGUiLG9uUHJvZ3Jlc3M6Im9ucHJvZ3Jlc3MiLG9uUmF0ZUNoYW5nZToib25yYXRlY2hhbmdlIixvblJlcGVhdDoib25yZXBlYXQiLG9uUmVzZXQ6Im9ucmVzZXQiLG9uUmVzaXplOiJvbnJlc2l6ZSIsb25TY3JvbGw6Im9uc2Nyb2xsIixvblNlZWtlZDoib25zZWVrZWQiLG9uU2Vla2luZzoib25zZWVraW5nIixvblNlbGVjdDoib25zZWxlY3QiLG9uU2hvdzoib25zaG93IixvblN0YWxsZWQ6Im9uc3RhbGxlZCIsb25TdG9yYWdlOiJvbnN0b3JhZ2UiLG9uU3VibWl0OiJvbnN1Ym1pdCIsb25TdXNwZW5kOiJvbnN1c3BlbmQiLG9uVGltZVVwZGF0ZToib250aW1ldXBkYXRlIixvblRvZ2dsZToib250b2dnbGUiLG9uVW5sb2FkOiJvbnVubG9hZCIsb25Wb2x1bWVDaGFuZ2U6Im9udm9sdW1lY2hhbmdlIixvbldhaXRpbmc6Im9ud2FpdGluZyIsb25ab29tOiJvbnpvb20iLG92ZXJsaW5lUG9zaXRpb246Im92ZXJsaW5lLXBvc2l0aW9uIixvdmVybGluZVRoaWNrbmVzczoib3ZlcmxpbmUtdGhpY2tuZXNzIixwYWludE9yZGVyOiJwYWludC1vcmRlciIscGFub3NlMToicGFub3NlLTEiLHBvaW50ZXJFdmVudHM6InBvaW50ZXItZXZlbnRzIixyZWZlcnJlclBvbGljeToicmVmZXJyZXJwb2xpY3kiLHJlbmRlcmluZ0ludGVudDoicmVuZGVyaW5nLWludGVudCIsc2hhcGVSZW5kZXJpbmc6InNoYXBlLXJlbmRlcmluZyIsc3RvcENvbG9yOiJzdG9wLWNvbG9yIixzdG9wT3BhY2l0eToic3RvcC1vcGFjaXR5IixzdHJpa2V0aHJvdWdoUG9zaXRpb246InN0cmlrZXRocm91Z2gtcG9zaXRpb24iLHN0cmlrZXRocm91Z2hUaGlja25lc3M6InN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIixzdHJva2VEYXNoQXJyYXk6InN0cm9rZS1kYXNoYXJyYXkiLHN0cm9rZURhc2hPZmZzZXQ6InN0cm9rZS1kYXNob2Zmc2V0IixzdHJva2VMaW5lQ2FwOiJzdHJva2UtbGluZWNhcCIsc3Ryb2tlTGluZUpvaW46InN0cm9rZS1saW5lam9pbiIsc3Ryb2tlTWl0ZXJMaW1pdDoic3Ryb2tlLW1pdGVybGltaXQiLHN0cm9rZU9wYWNpdHk6InN0cm9rZS1vcGFjaXR5IixzdHJva2VXaWR0aDoic3Ryb2tlLXdpZHRoIix0YWJJbmRleDoidGFiaW5kZXgiLHRleHRBbmNob3I6InRleHQtYW5jaG9yIix0ZXh0RGVjb3JhdGlvbjoidGV4dC1kZWNvcmF0aW9uIix0ZXh0UmVuZGVyaW5nOiJ0ZXh0LXJlbmRlcmluZyIsdHJhbnNmb3JtT3JpZ2luOiJ0cmFuc2Zvcm0tb3JpZ2luIix0eXBlT2Y6InR5cGVvZiIsdW5kZXJsaW5lUG9zaXRpb246InVuZGVybGluZS1wb3NpdGlvbiIsdW5kZXJsaW5lVGhpY2tuZXNzOiJ1bmRlcmxpbmUtdGhpY2tuZXNzIix1bmljb2RlQmlkaToidW5pY29kZS1iaWRpIix1bmljb2RlUmFuZ2U6InVuaWNvZGUtcmFuZ2UiLHVuaXRzUGVyRW06InVuaXRzLXBlci1lbSIsdkFscGhhYmV0aWM6InYtYWxwaGFiZXRpYyIsdkhhbmdpbmc6InYtaGFuZ2luZyIsdklkZW9ncmFwaGljOiJ2LWlkZW9ncmFwaGljIix2TWF0aGVtYXRpY2FsOiJ2LW1hdGhlbWF0aWNhbCIsdmVjdG9yRWZmZWN0OiJ2ZWN0b3ItZWZmZWN0Iix2ZXJ0QWR2WToidmVydC1hZHYteSIsdmVydE9yaWdpblg6InZlcnQtb3JpZ2luLXgiLHZlcnRPcmlnaW5ZOiJ2ZXJ0LW9yaWdpbi15Iix3b3JkU3BhY2luZzoid29yZC1zcGFjaW5nIix3cml0aW5nTW9kZToid3JpdGluZy1tb2RlIix4SGVpZ2h0OiJ4LWhlaWdodCIscGxheWJhY2tPcmRlcjoicGxheWJhY2tvcmRlciIsdGltZWxpbmVCZWdpbjoidGltZWxpbmViZWdpbiJ9LHByb3BlcnRpZXM6e2Fib3V0Ol9hLGFjY2VudEhlaWdodDpFZSxhY2N1bXVsYXRlOm51bGwsYWRkaXRpdmU6bnVsbCxhbGlnbm1lbnRCYXNlbGluZTpudWxsLGFscGhhYmV0aWM6RWUsYW1wbGl0dWRlOkVlLGFyYWJpY0Zvcm06bnVsbCxhc2NlbnQ6RWUsYXR0cmlidXRlTmFtZTpudWxsLGF0dHJpYnV0ZVR5cGU6bnVsbCxhemltdXRoOkVlLGJhbmR3aWR0aDpudWxsLGJhc2VsaW5lU2hpZnQ6bnVsbCxiYXNlRnJlcXVlbmN5Om51bGwsYmFzZVByb2ZpbGU6bnVsbCxiYm94Om51bGwsYmVnaW46bnVsbCxiaWFzOkVlLGJ5Om51bGwsY2FsY01vZGU6bnVsbCxjYXBIZWlnaHQ6RWUsY2xhc3NOYW1lOnMxLGNsaXA6bnVsbCxjbGlwUGF0aDpudWxsLGNsaXBQYXRoVW5pdHM6bnVsbCxjbGlwUnVsZTpudWxsLGNvbG9yOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uOm51bGwsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczpudWxsLGNvbG9yUHJvZmlsZTpudWxsLGNvbG9yUmVuZGVyaW5nOm51bGwsY29udGVudDpudWxsLGNvbnRlbnRTY3JpcHRUeXBlOm51bGwsY29udGVudFN0eWxlVHlwZTpudWxsLGNyb3NzT3JpZ2luOm51bGwsY3Vyc29yOm51bGwsY3g6bnVsbCxjeTpudWxsLGQ6bnVsbCxkYXRhVHlwZTpudWxsLGRlZmF1bHRBY3Rpb246bnVsbCxkZXNjZW50OkVlLGRpZmZ1c2VDb25zdGFudDpFZSxkaXJlY3Rpb246bnVsbCxkaXNwbGF5Om51bGwsZHVyOm51bGwsZGl2aXNvcjpFZSxkb21pbmFudEJhc2VsaW5lOm51bGwsZG93bmxvYWQ6ZnQsZHg6bnVsbCxkeTpudWxsLGVkZ2VNb2RlOm51bGwsZWRpdGFibGU6bnVsbCxlbGV2YXRpb246RWUsZW5hYmxlQmFja2dyb3VuZDpudWxsLGVuZDpudWxsLGV2ZW50Om51bGwsZXhwb25lbnQ6RWUsZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDpudWxsLGZpbGw6bnVsbCxmaWxsT3BhY2l0eTpFZSxmaWxsUnVsZTpudWxsLGZpbHRlcjpudWxsLGZpbHRlclJlczpudWxsLGZpbHRlclVuaXRzOm51bGwsZmxvb2RDb2xvcjpudWxsLGZsb29kT3BhY2l0eTpudWxsLGZvY3VzYWJsZTpudWxsLGZvY3VzSGlnaGxpZ2h0Om51bGwsZm9udEZhbWlseTpudWxsLGZvbnRTaXplOm51bGwsZm9udFNpemVBZGp1c3Q6bnVsbCxmb250U3RyZXRjaDpudWxsLGZvbnRTdHlsZTpudWxsLGZvbnRWYXJpYW50Om51bGwsZm9udFdlaWdodDpudWxsLGZvcm1hdDpudWxsLGZyOm51bGwsZnJvbTpudWxsLGZ4Om51bGwsZnk6bnVsbCxnMTpVbixnMjpVbixnbHlwaE5hbWU6VW4sZ2x5cGhPcmllbnRhdGlvbkhvcml6b250YWw6bnVsbCxnbHlwaE9yaWVudGF0aW9uVmVydGljYWw6bnVsbCxnbHlwaFJlZjpudWxsLGdyYWRpZW50VHJhbnNmb3JtOm51bGwsZ3JhZGllbnRVbml0czpudWxsLGhhbmRsZXI6bnVsbCxoYW5naW5nOkVlLGhhdGNoQ29udGVudFVuaXRzOm51bGwsaGF0Y2hVbml0czpudWxsLGhlaWdodDpudWxsLGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGhvcml6QWR2WDpFZSxob3Jpek9yaWdpblg6RWUsaG9yaXpPcmlnaW5ZOkVlLGlkOm51bGwsaWRlb2dyYXBoaWM6RWUsaW1hZ2VSZW5kZXJpbmc6bnVsbCxpbml0aWFsVmlzaWJpbGl0eTpudWxsLGluOm51bGwsaW4yOm51bGwsaW50ZXJjZXB0OkVlLGs6RWUsazE6RWUsazI6RWUsazM6RWUsazQ6RWUsa2VybmVsTWF0cml4Ol9hLGtlcm5lbFVuaXRMZW5ndGg6bnVsbCxrZXlQb2ludHM6bnVsbCxrZXlTcGxpbmVzOm51bGwsa2V5VGltZXM6bnVsbCxrZXJuaW5nOm51bGwsbGFuZzpudWxsLGxlbmd0aEFkanVzdDpudWxsLGxldHRlclNwYWNpbmc6bnVsbCxsaWdodGluZ0NvbG9yOm51bGwsbGltaXRpbmdDb25lQW5nbGU6RWUsbG9jYWw6bnVsbCxtYXJrZXJFbmQ6bnVsbCxtYXJrZXJNaWQ6bnVsbCxtYXJrZXJTdGFydDpudWxsLG1hcmtlckhlaWdodDpudWxsLG1hcmtlclVuaXRzOm51bGwsbWFya2VyV2lkdGg6bnVsbCxtYXNrOm51bGwsbWFza0NvbnRlbnRVbml0czpudWxsLG1hc2tVbml0czpudWxsLG1hdGhlbWF0aWNhbDpudWxsLG1heDpudWxsLG1lZGlhOm51bGwsbWVkaWFDaGFyYWN0ZXJFbmNvZGluZzpudWxsLG1lZGlhQ29udGVudEVuY29kaW5nczpudWxsLG1lZGlhU2l6ZTpFZSxtZWRpYVRpbWU6bnVsbCxtZXRob2Q6bnVsbCxtaW46bnVsbCxtb2RlOm51bGwsbmFtZTpudWxsLG5hdkRvd246bnVsbCxuYXZEb3duTGVmdDpudWxsLG5hdkRvd25SaWdodDpudWxsLG5hdkxlZnQ6bnVsbCxuYXZOZXh0Om51bGwsbmF2UHJldjpudWxsLG5hdlJpZ2h0Om51bGwsbmF2VXA6bnVsbCxuYXZVcExlZnQ6bnVsbCxuYXZVcFJpZ2h0Om51bGwsbnVtT2N0YXZlczpudWxsLG9ic2VydmVyOm51bGwsb2Zmc2V0Om51bGwsb25BYm9ydDpudWxsLG9uQWN0aXZhdGU6bnVsbCxvbkFmdGVyUHJpbnQ6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWdpbjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvcHk6bnVsbCxvbkN1ZUNoYW5nZTpudWxsLG9uQ3V0Om51bGwsb25EYmxDbGljazpudWxsLG9uRHJhZzpudWxsLG9uRHJhZ0VuZDpudWxsLG9uRHJhZ0VudGVyOm51bGwsb25EcmFnRXhpdDpudWxsLG9uRHJhZ0xlYXZlOm51bGwsb25EcmFnT3ZlcjpudWxsLG9uRHJhZ1N0YXJ0Om51bGwsb25Ecm9wOm51bGwsb25EdXJhdGlvbkNoYW5nZTpudWxsLG9uRW1wdGllZDpudWxsLG9uRW5kOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb2N1c0luOm51bGwsb25Gb2N1c091dDpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk1vdXNlV2hlZWw6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVwZWF0Om51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TaG93Om51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvblpvb206bnVsbCxvcGFjaXR5Om51bGwsb3BlcmF0b3I6bnVsbCxvcmRlcjpudWxsLG9yaWVudDpudWxsLG9yaWVudGF0aW9uOm51bGwsb3JpZ2luOm51bGwsb3ZlcmZsb3c6bnVsbCxvdmVybGF5Om51bGwsb3ZlcmxpbmVQb3NpdGlvbjpFZSxvdmVybGluZVRoaWNrbmVzczpFZSxwYWludE9yZGVyOm51bGwscGFub3NlMTpudWxsLHBhdGg6bnVsbCxwYXRoTGVuZ3RoOkVlLHBhdHRlcm5Db250ZW50VW5pdHM6bnVsbCxwYXR0ZXJuVHJhbnNmb3JtOm51bGwscGF0dGVyblVuaXRzOm51bGwscGhhc2U6bnVsbCxwaW5nOnMxLHBpdGNoOm51bGwscGxheWJhY2tPcmRlcjpudWxsLHBvaW50ZXJFdmVudHM6bnVsbCxwb2ludHM6bnVsbCxwb2ludHNBdFg6RWUscG9pbnRzQXRZOkVlLHBvaW50c0F0WjpFZSxwcmVzZXJ2ZUFscGhhOm51bGwscHJlc2VydmVBc3BlY3RSYXRpbzpudWxsLHByaW1pdGl2ZVVuaXRzOm51bGwscHJvcGFnYXRlOm51bGwscHJvcGVydHk6X2EscjpudWxsLHJhZGl1czpudWxsLHJlZmVycmVyUG9saWN5Om51bGwscmVmWDpudWxsLHJlZlk6bnVsbCxyZWw6X2EscmV2Ol9hLHJlbmRlcmluZ0ludGVudDpudWxsLHJlcGVhdENvdW50Om51bGwscmVwZWF0RHVyOm51bGwscmVxdWlyZWRFeHRlbnNpb25zOl9hLHJlcXVpcmVkRmVhdHVyZXM6X2EscmVxdWlyZWRGb250czpfYSxyZXF1aXJlZEZvcm1hdHM6X2EscmVzb3VyY2U6bnVsbCxyZXN0YXJ0Om51bGwscmVzdWx0Om51bGwscm90YXRlOm51bGwscng6bnVsbCxyeTpudWxsLHNjYWxlOm51bGwsc2VlZDpudWxsLHNoYXBlUmVuZGVyaW5nOm51bGwsc2lkZTpudWxsLHNsb3BlOm51bGwsc25hcHNob3RUaW1lOm51bGwsc3BlY3VsYXJDb25zdGFudDpFZSxzcGVjdWxhckV4cG9uZW50OkVlLHNwcmVhZE1ldGhvZDpudWxsLHNwYWNpbmc6bnVsbCxzdGFydE9mZnNldDpudWxsLHN0ZERldmlhdGlvbjpudWxsLHN0ZW1oOm51bGwsc3RlbXY6bnVsbCxzdGl0Y2hUaWxlczpudWxsLHN0b3BDb2xvcjpudWxsLHN0b3BPcGFjaXR5Om51bGwsc3RyaWtldGhyb3VnaFBvc2l0aW9uOkVlLHN0cmlrZXRocm91Z2hUaGlja25lc3M6RWUsc3RyaW5nOm51bGwsc3Ryb2tlOm51bGwsc3Ryb2tlRGFzaEFycmF5Ol9hLHN0cm9rZURhc2hPZmZzZXQ6bnVsbCxzdHJva2VMaW5lQ2FwOm51bGwsc3Ryb2tlTGluZUpvaW46bnVsbCxzdHJva2VNaXRlckxpbWl0OkVlLHN0cm9rZU9wYWNpdHk6RWUsc3Ryb2tlV2lkdGg6bnVsbCxzdHlsZTpudWxsLHN1cmZhY2VTY2FsZTpFZSxzeW5jQmVoYXZpb3I6bnVsbCxzeW5jQmVoYXZpb3JEZWZhdWx0Om51bGwsc3luY01hc3RlcjpudWxsLHN5bmNUb2xlcmFuY2U6bnVsbCxzeW5jVG9sZXJhbmNlRGVmYXVsdDpudWxsLHN5c3RlbUxhbmd1YWdlOl9hLHRhYkluZGV4OkVlLHRhYmxlVmFsdWVzOm51bGwsdGFyZ2V0Om51bGwsdGFyZ2V0WDpFZSx0YXJnZXRZOkVlLHRleHRBbmNob3I6bnVsbCx0ZXh0RGVjb3JhdGlvbjpudWxsLHRleHRSZW5kZXJpbmc6bnVsbCx0ZXh0TGVuZ3RoOm51bGwsdGltZWxpbmVCZWdpbjpudWxsLHRpdGxlOm51bGwsdHJhbnNmb3JtQmVoYXZpb3I6bnVsbCx0eXBlOm51bGwsdHlwZU9mOl9hLHRvOm51bGwsdHJhbnNmb3JtOm51bGwsdHJhbnNmb3JtT3JpZ2luOm51bGwsdTE6bnVsbCx1MjpudWxsLHVuZGVybGluZVBvc2l0aW9uOkVlLHVuZGVybGluZVRoaWNrbmVzczpFZSx1bmljb2RlOm51bGwsdW5pY29kZUJpZGk6bnVsbCx1bmljb2RlUmFuZ2U6bnVsbCx1bml0c1BlckVtOkVlLHZhbHVlczpudWxsLHZBbHBoYWJldGljOkVlLHZNYXRoZW1hdGljYWw6RWUsdmVjdG9yRWZmZWN0Om51bGwsdkhhbmdpbmc6RWUsdklkZW9ncmFwaGljOkVlLHZlcnNpb246bnVsbCx2ZXJ0QWR2WTpFZSx2ZXJ0T3JpZ2luWDpFZSx2ZXJ0T3JpZ2luWTpFZSx2aWV3Qm94Om51bGwsdmlld1RhcmdldDpudWxsLHZpc2liaWxpdHk6bnVsbCx3aWR0aDpudWxsLHdpZHRoczpudWxsLHdvcmRTcGFjaW5nOm51bGwsd3JpdGluZ01vZGU6bnVsbCx4Om51bGwseDE6bnVsbCx4MjpudWxsLHhDaGFubmVsU2VsZWN0b3I6bnVsbCx4SGVpZ2h0OkVlLHk6bnVsbCx5MTpudWxsLHkyOm51bGwseUNoYW5uZWxTZWxlY3RvcjpudWxsLHo6bnVsbCx6b29tQW5kUGFuOm51bGx9LHNwYWNlOiJzdmciLHRyYW5zZm9ybTptdX0pfSk7dmFyIHIkLHc0ZT1iKCgpPT57JDAoKTtyJD1jaSh7cHJvcGVydGllczp7eExpbmtBY3R1YXRlOm51bGwseExpbmtBcmNSb2xlOm51bGwseExpbmtIcmVmOm51bGwseExpbmtSb2xlOm51bGwseExpbmtTaG93Om51bGwseExpbmtUaXRsZTpudWxsLHhMaW5rVHlwZTpudWxsfSxzcGFjZToieGxpbmsiLHRyYW5zZm9ybSh0LGUpe3JldHVybiJ4bGluazoiK2Uuc2xpY2UoNSkudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBzJCxNNGU9YigoKT0+eyQwKCk7aSQoKTtzJD1jaSh7YXR0cmlidXRlczp7eG1sbnN4bGluazoieG1sbnM6eGxpbmsifSxwcm9wZXJ0aWVzOnt4bWxuc1hMaW5rOm51bGwseG1sbnM6bnVsbH0sc3BhY2U6InhtbG5zIix0cmFuc2Zvcm06Z3V9KX0pO3ZhciBuJCx6NGU9YigoKT0+eyQwKCk7biQ9Y2koe3Byb3BlcnRpZXM6e3htbEJhc2U6bnVsbCx4bWxMYW5nOm51bGwseG1sU3BhY2U6bnVsbH0sc3BhY2U6InhtbCIsdHJhbnNmb3JtKHQsZSl7cmV0dXJuInhtbDoiK2Uuc2xpY2UoMykudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBrNGU9YigoKT0+e30pO2Z1bmN0aW9uIG8kKHQsZSl7bGV0IGE9VzMoZSksaT1lLHI9ZjI7aWYoYSBpbiB0Lm5vcm1hbClyZXR1cm4gdC5wcm9wZXJ0eVt0Lm5vcm1hbFthXV07aWYoYS5sZW5ndGg+NCYmYS5zbGljZSgwLDQpPT09ImRhdGEiJiZaRnQudGVzdChlKSl7aWYoZS5jaGFyQXQoNCk9PT0iLSIpe2xldCBzPWUuc2xpY2UoNSkucmVwbGFjZShTNGUsS0Z0KTtpPSJkYXRhIitzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Muc2xpY2UoMSl9ZWxzZXtsZXQgcz1lLnNsaWNlKDQpO2lmKCFTNGUudGVzdChzKSl7bGV0IG49cy5yZXBsYWNlKFlGdCxYRnQpO24uY2hhckF0KDApIT09Ii0iJiYobj0iLSIrbiksZT0iZGF0YSIrbn19cj1MMH1yZXR1cm4gbmV3IHIoaSxlKX1mdW5jdGlvbiBYRnQodCl7cmV0dXJuIi0iK3QudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBLRnQodCl7cmV0dXJuIHQuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCl9dmFyIFlGdCxTNGUsWkZ0LEM0ZT1iKCgpPT57ZSQoKTtRTCgpO3V1KCk7WUZ0PS9bQS1aXS9nLFM0ZT0vLVthLXpdL2csWkZ0PS9eZGF0YVstXHcuOl0rJC9pfSk7dmFyIF80ZSxidSxsJD1iKCgpPT57ZjRlKCk7ZzRlKCk7djRlKCk7eDRlKCk7dzRlKCk7TTRlKCk7ejRlKCk7azRlKCk7QzRlKCk7dXUoKTtfNGU9S0woW3QkLGI0ZSxyJCxzJCxuJF0sImh0bWwiKSxidT1LTChbdCQseTRlLHIkLHMkLG4kXSwic3ZnIil9KTtmdW5jdGlvbiBjJCh0LGUpe2lmKHQ9dC5yZXBsYWNlKGUuc3Vic2V0P2FPdChlLnN1YnNldCk6UUZ0LGkpLGUuc3Vic2V0fHxlLmVzY2FwZU9ubHkpcmV0dXJuIHQ7cmV0dXJuIHQucmVwbGFjZShKRnQsYSkucmVwbGFjZShlT3QsaSk7ZnVuY3Rpb24gYShyLHMsbil7cmV0dXJuIGUuZm9ybWF0KChyLmNoYXJDb2RlQXQoMCktNTUyOTYpKjEwMjQrci5jaGFyQ29kZUF0KDEpLTU2MzIwKzY1NTM2LG4uY2hhckNvZGVBdChzKzIpLGUpfWZ1bmN0aW9uIGkocixzLG4pe3JldHVybiBlLmZvcm1hdChyLmNoYXJDb2RlQXQoMCksbi5jaGFyQ29kZUF0KHMrMSksZSl9fWZ1bmN0aW9uIGFPdCh0KXtsZXQgZT1UNGUuZ2V0KHQpO3JldHVybiBlfHwoZT1pT3QodCksVDRlLnNldCh0LGUpKSxlfWZ1bmN0aW9uIGlPdCh0KXtsZXQgZT1bXSxhPS0xO2Zvcig7KythPHQubGVuZ3RoOyllLnB1c2godFthXS5yZXBsYWNlKHRPdCwiXFwkJiIpKTtyZXR1cm4gbmV3IFJlZ0V4cCgiKD86IitlLmpvaW4oInwiKSsiKSIsImciKX12YXIgUUZ0LEpGdCxlT3QsdE90LFQ0ZSxMNGU9YigoKT0+e1FGdD0vWyImJzw+YF0vZyxKRnQ9L1tcdUQ4MDAtXHVEQkZGXVtcdURDMDAtXHVERkZGXS9nLGVPdD0vW1x4MDEtXHRcdlxmXHgwRS1ceDFGXHg3Rlx4ODFceDhEXHg4Rlx4OTBceDlEXHhBMC1cdUZGRkZdL2csdE90PS9bfFxce30oKVtcXV4kKyo/Ll0vZyxUNGU9bmV3IFdlYWtNYXB9KTtmdW5jdGlvbiAkNGUodCxlLGEpe2xldCBpPSImI3giK3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGEmJmUmJiFyT3QudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKT9pOmkrIjsifXZhciByT3QsQTRlPWIoKCk9PntyT3Q9L1tcZEEtRmEtZl0vfSk7ZnVuY3Rpb24gRDRlKHQsZSxhKXtsZXQgaT0iJiMiK1N0cmluZyh0KTtyZXR1cm4gYSYmZSYmIXNPdC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpP2k6aSsiOyJ9dmFyIHNPdCxFNGU9YigoKT0+e3NPdD0vXGQvfSk7dmFyIFA0ZSxJNGU9YigoKT0+e1A0ZT1bIkFFbGlnIiwiQU1QIiwiQWFjdXRlIiwiQWNpcmMiLCJBZ3JhdmUiLCJBcmluZyIsIkF0aWxkZSIsIkF1bWwiLCJDT1BZIiwiQ2NlZGlsIiwiRVRIIiwiRWFjdXRlIiwiRWNpcmMiLCJFZ3JhdmUiLCJFdW1sIiwiR1QiLCJJYWN1dGUiLCJJY2lyYyIsIklncmF2ZSIsIkl1bWwiLCJMVCIsIk50aWxkZSIsIk9hY3V0ZSIsIk9jaXJjIiwiT2dyYXZlIiwiT3NsYXNoIiwiT3RpbGRlIiwiT3VtbCIsIlFVT1QiLCJSRUciLCJUSE9STiIsIlVhY3V0ZSIsIlVjaXJjIiwiVWdyYXZlIiwiVXVtbCIsIllhY3V0ZSIsImFhY3V0ZSIsImFjaXJjIiwiYWN1dGUiLCJhZWxpZyIsImFncmF2ZSIsImFtcCIsImFyaW5nIiwiYXRpbGRlIiwiYXVtbCIsImJydmJhciIsImNjZWRpbCIsImNlZGlsIiwiY2VudCIsImNvcHkiLCJjdXJyZW4iLCJkZWciLCJkaXZpZGUiLCJlYWN1dGUiLCJlY2lyYyIsImVncmF2ZSIsImV0aCIsImV1bWwiLCJmcmFjMTIiLCJmcmFjMTQiLCJmcmFjMzQiLCJndCIsImlhY3V0ZSIsImljaXJjIiwiaWV4Y2wiLCJpZ3JhdmUiLCJpcXVlc3QiLCJpdW1sIiwibGFxdW8iLCJsdCIsIm1hY3IiLCJtaWNybyIsIm1pZGRvdCIsIm5ic3AiLCJub3QiLCJudGlsZGUiLCJvYWN1dGUiLCJvY2lyYyIsIm9ncmF2ZSIsIm9yZGYiLCJvcmRtIiwib3NsYXNoIiwib3RpbGRlIiwib3VtbCIsInBhcmEiLCJwbHVzbW4iLCJwb3VuZCIsInF1b3QiLCJyYXF1byIsInJlZyIsInNlY3QiLCJzaHkiLCJzdXAxIiwic3VwMiIsInN1cDMiLCJzemxpZyIsInRob3JuIiwidGltZXMiLCJ1YWN1dGUiLCJ1Y2lyYyIsInVncmF2ZSIsInVtbCIsInV1bWwiLCJ5YWN1dGUiLCJ5ZW4iLCJ5dW1sIl19KTt2YXIgdnUsTjRlPWIoKCk9Pnt2dT17bmJzcDoiXHhBMCIsaWV4Y2w6Ilx4QTEiLGNlbnQ6Ilx4QTIiLHBvdW5kOiJceEEzIixjdXJyZW46Ilx4QTQiLHllbjoiXHhBNSIsYnJ2YmFyOiJceEE2IixzZWN0OiJceEE3Iix1bWw6Ilx4QTgiLGNvcHk6Ilx4QTkiLG9yZGY6Ilx4QUEiLGxhcXVvOiJceEFCIixub3Q6Ilx4QUMiLHNoeToiXHhBRCIscmVnOiJceEFFIixtYWNyOiJceEFGIixkZWc6Ilx4QjAiLHBsdXNtbjoiXHhCMSIsc3VwMjoiXHhCMiIsc3VwMzoiXHhCMyIsYWN1dGU6Ilx4QjQiLG1pY3JvOiJceEI1IixwYXJhOiJceEI2IixtaWRkb3Q6Ilx4QjciLGNlZGlsOiJceEI4IixzdXAxOiJceEI5IixvcmRtOiJceEJBIixyYXF1bzoiXHhCQiIsZnJhYzE0OiJceEJDIixmcmFjMTI6Ilx4QkQiLGZyYWMzNDoiXHhCRSIsaXF1ZXN0OiJceEJGIixBZ3JhdmU6Ilx4QzAiLEFhY3V0ZToiXHhDMSIsQWNpcmM6Ilx4QzIiLEF0aWxkZToiXHhDMyIsQXVtbDoiXHhDNCIsQXJpbmc6Ilx4QzUiLEFFbGlnOiJceEM2IixDY2VkaWw6Ilx4QzciLEVncmF2ZToiXHhDOCIsRWFjdXRlOiJceEM5IixFY2lyYzoiXHhDQSIsRXVtbDoiXHhDQiIsSWdyYXZlOiJceENDIixJYWN1dGU6Ilx4Q0QiLEljaXJjOiJceENFIixJdW1sOiJceENGIixFVEg6Ilx4RDAiLE50aWxkZToiXHhEMSIsT2dyYXZlOiJceEQyIixPYWN1dGU6Ilx4RDMiLE9jaXJjOiJceEQ0IixPdGlsZGU6Ilx4RDUiLE91bWw6Ilx4RDYiLHRpbWVzOiJceEQ3IixPc2xhc2g6Ilx4RDgiLFVncmF2ZToiXHhEOSIsVWFjdXRlOiJceERBIixVY2lyYzoiXHhEQiIsVXVtbDoiXHhEQyIsWWFjdXRlOiJceEREIixUSE9STjoiXHhERSIsc3psaWc6Ilx4REYiLGFncmF2ZToiXHhFMCIsYWFjdXRlOiJceEUxIixhY2lyYzoiXHhFMiIsYXRpbGRlOiJceEUzIixhdW1sOiJceEU0IixhcmluZzoiXHhFNSIsYWVsaWc6Ilx4RTYiLGNjZWRpbDoiXHhFNyIsZWdyYXZlOiJceEU4IixlYWN1dGU6Ilx4RTkiLGVjaXJjOiJceEVBIixldW1sOiJceEVCIixpZ3JhdmU6Ilx4RUMiLGlhY3V0ZToiXHhFRCIsaWNpcmM6Ilx4RUUiLGl1bWw6Ilx4RUYiLGV0aDoiXHhGMCIsbnRpbGRlOiJceEYxIixvZ3JhdmU6Ilx4RjIiLG9hY3V0ZToiXHhGMyIsb2NpcmM6Ilx4RjQiLG90aWxkZToiXHhGNSIsb3VtbDoiXHhGNiIsZGl2aWRlOiJceEY3Iixvc2xhc2g6Ilx4RjgiLHVncmF2ZToiXHhGOSIsdWFjdXRlOiJceEZBIix1Y2lyYzoiXHhGQiIsdXVtbDoiXHhGQyIseWFjdXRlOiJceEZEIix0aG9ybjoiXHhGRSIseXVtbDoiXHhGRiIsZm5vZjoiXHUwMTkyIixBbHBoYToiXHUwMzkxIixCZXRhOiJcdTAzOTIiLEdhbW1hOiJcdTAzOTMiLERlbHRhOiJcdTAzOTQiLEVwc2lsb246Ilx1MDM5NSIsWmV0YToiXHUwMzk2IixFdGE6Ilx1MDM5NyIsVGhldGE6Ilx1MDM5OCIsSW90YToiXHUwMzk5IixLYXBwYToiXHUwMzlBIixMYW1iZGE6Ilx1MDM5QiIsTXU6Ilx1MDM5QyIsTnU6Ilx1MDM5RCIsWGk6Ilx1MDM5RSIsT21pY3JvbjoiXHUwMzlGIixQaToiXHUwM0EwIixSaG86Ilx1MDNBMSIsU2lnbWE6Ilx1MDNBMyIsVGF1OiJcdTAzQTQiLFVwc2lsb246Ilx1MDNBNSIsUGhpOiJcdTAzQTYiLENoaToiXHUwM0E3IixQc2k6Ilx1MDNBOCIsT21lZ2E6Ilx1MDNBOSIsYWxwaGE6Ilx1MDNCMSIsYmV0YToiXHUwM0IyIixnYW1tYToiXHUwM0IzIixkZWx0YToiXHUwM0I0IixlcHNpbG9uOiJcdTAzQjUiLHpldGE6Ilx1MDNCNiIsZXRhOiJcdTAzQjciLHRoZXRhOiJcdTAzQjgiLGlvdGE6Ilx1MDNCOSIsa2FwcGE6Ilx1MDNCQSIsbGFtYmRhOiJcdTAzQkIiLG11OiJcdTAzQkMiLG51OiJcdTAzQkQiLHhpOiJcdTAzQkUiLG9taWNyb246Ilx1MDNCRiIscGk6Ilx1MDNDMCIscmhvOiJcdTAzQzEiLHNpZ21hZjoiXHUwM0MyIixzaWdtYToiXHUwM0MzIix0YXU6Ilx1MDNDNCIsdXBzaWxvbjoiXHUwM0M1IixwaGk6Ilx1MDNDNiIsY2hpOiJcdTAzQzciLHBzaToiXHUwM0M4IixvbWVnYToiXHUwM0M5Iix0aGV0YXN5bToiXHUwM0QxIix1cHNpaDoiXHUwM0QyIixwaXY6Ilx1MDNENiIsYnVsbDoiXHUyMDIyIixoZWxsaXA6Ilx1MjAyNiIscHJpbWU6Ilx1MjAzMiIsUHJpbWU6Ilx1MjAzMyIsb2xpbmU6Ilx1MjAzRSIsZnJhc2w6Ilx1MjA0NCIsd2VpZXJwOiJcdTIxMTgiLGltYWdlOiJcdTIxMTEiLHJlYWw6Ilx1MjExQyIsdHJhZGU6Ilx1MjEyMiIsYWxlZnN5bToiXHUyMTM1IixsYXJyOiJcdTIxOTAiLHVhcnI6Ilx1MjE5MSIscmFycjoiXHUyMTkyIixkYXJyOiJcdTIxOTMiLGhhcnI6Ilx1MjE5NCIsY3JhcnI6Ilx1MjFCNSIsbEFycjoiXHUyMUQwIix1QXJyOiJcdTIxRDEiLHJBcnI6Ilx1MjFEMiIsZEFycjoiXHUyMUQzIixoQXJyOiJcdTIxRDQiLGZvcmFsbDoiXHUyMjAwIixwYXJ0OiJcdTIyMDIiLGV4aXN0OiJcdTIyMDMiLGVtcHR5OiJcdTIyMDUiLG5hYmxhOiJcdTIyMDciLGlzaW46Ilx1MjIwOCIsbm90aW46Ilx1MjIwOSIsbmk6Ilx1MjIwQiIscHJvZDoiXHUyMjBGIixzdW06Ilx1MjIxMSIsbWludXM6Ilx1MjIxMiIsbG93YXN0OiJcdTIyMTciLHJhZGljOiJcdTIyMUEiLHByb3A6Ilx1MjIxRCIsaW5maW46Ilx1MjIxRSIsYW5nOiJcdTIyMjAiLGFuZDoiXHUyMjI3IixvcjoiXHUyMjI4IixjYXA6Ilx1MjIyOSIsY3VwOiJcdTIyMkEiLGludDoiXHUyMjJCIix0aGVyZTQ6Ilx1MjIzNCIsc2ltOiJcdTIyM0MiLGNvbmc6Ilx1MjI0NSIsYXN5bXA6Ilx1MjI0OCIsbmU6Ilx1MjI2MCIsZXF1aXY6Ilx1MjI2MSIsbGU6Ilx1MjI2NCIsZ2U6Ilx1MjI2NSIsc3ViOiJcdTIyODIiLHN1cDoiXHUyMjgzIixuc3ViOiJcdTIyODQiLHN1YmU6Ilx1MjI4NiIsc3VwZToiXHUyMjg3IixvcGx1czoiXHUyMjk1IixvdGltZXM6Ilx1MjI5NyIscGVycDoiXHUyMkE1IixzZG90OiJcdTIyQzUiLGxjZWlsOiJcdTIzMDgiLHJjZWlsOiJcdTIzMDkiLGxmbG9vcjoiXHUyMzBBIixyZmxvb3I6Ilx1MjMwQiIsbGFuZzoiXHUyMzI5IixyYW5nOiJcdTIzMkEiLGxvejoiXHUyNUNBIixzcGFkZXM6Ilx1MjY2MCIsY2x1YnM6Ilx1MjY2MyIsaGVhcnRzOiJcdTI2NjUiLGRpYW1zOiJcdTI2NjYiLHF1b3Q6JyInLGFtcDoiJiIsbHQ6IjwiLGd0OiI+IixPRWxpZzoiXHUwMTUyIixvZWxpZzoiXHUwMTUzIixTY2Fyb246Ilx1MDE2MCIsc2Nhcm9uOiJcdTAxNjEiLFl1bWw6Ilx1MDE3OCIsY2lyYzoiXHUwMkM2Iix0aWxkZToiXHUwMkRDIixlbnNwOiJcdTIwMDIiLGVtc3A6Ilx1MjAwMyIsdGhpbnNwOiJcdTIwMDkiLHp3bmo6Ilx1MjAwQyIsendqOiJcdTIwMEQiLGxybToiXHUyMDBFIixybG06Ilx1MjAwRiIsbmRhc2g6Ilx1MjAxMyIsbWRhc2g6Ilx1MjAxNCIsbHNxdW86Ilx1MjAxOCIscnNxdW86Ilx1MjAxOSIsc2JxdW86Ilx1MjAxQSIsbGRxdW86Ilx1MjAxQyIscmRxdW86Ilx1MjAxRCIsYmRxdW86Ilx1MjAxRSIsZGFnZ2VyOiJcdTIwMjAiLERhZ2dlcjoiXHUyMDIxIixwZXJtaWw6Ilx1MjAzMCIsbHNhcXVvOiJcdTIwMzkiLHJzYXF1bzoiXHUyMDNBIixldXJvOiJcdTIwQUMifX0pO3ZhciBGNGUsTzRlPWIoKCk9PntGNGU9WyJjZW50IiwiY29weSIsImRpdmlkZSIsImd0IiwibHQiLCJub3QiLCJwYXJhIiwidGltZXMiXX0pO2Z1bmN0aW9uIEI0ZSh0LGUsYSxpKXtsZXQgcj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpO2lmKFI0ZS5jYWxsKGQkLHIpKXtsZXQgcz1kJFtyXSxuPSImIitzO3JldHVybiBhJiZQNGUuaW5jbHVkZXMocykmJiFGNGUuaW5jbHVkZXMocykmJighaXx8ZSYmZSE9PTYxJiZuT3QudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSk/bjpuKyI7In1yZXR1cm4iIn12YXIgUjRlLGQkLHl1LG5PdCxINGU9YigoKT0+e0k0ZSgpO040ZSgpO080ZSgpO1I0ZT17fS5oYXNPd25Qcm9wZXJ0eSxkJD17fTtmb3IoeXUgaW4gdnUpUjRlLmNhbGwodnUseXUpJiYoZCRbdnVbeXVdXT15dSk7bk90PS9bXlxkQS1aYS16XS99KTtmdW5jdGlvbiBxNGUodCxlLGEpe2xldCBpPSQ0ZSh0LGUsYS5vbWl0T3B0aW9uYWxTZW1pY29sb25zKSxyO2lmKChhLnVzZU5hbWVkUmVmZXJlbmNlc3x8YS51c2VTaG9ydGVzdFJlZmVyZW5jZXMpJiYocj1CNGUodCxlLGEub21pdE9wdGlvbmFsU2VtaWNvbG9ucyxhLmF0dHJpYnV0ZSkpLChhLnVzZVNob3J0ZXN0UmVmZXJlbmNlc3x8IXIpJiZhLnVzZVNob3J0ZXN0UmVmZXJlbmNlcyl7bGV0IHM9RDRlKHQsZSxhLm9taXRPcHRpb25hbFNlbWljb2xvbnMpO3MubGVuZ3RoPGkubGVuZ3RoJiYoaT1zKX1yZXR1cm4gciYmKCFhLnVzZVNob3J0ZXN0UmVmZXJlbmNlc3x8ci5sZW5ndGg8aS5sZW5ndGgpP3I6aX12YXIgVjRlPWIoKCk9PntBNGUoKTtFNGUoKTtINGUoKX0pO2Z1bmN0aW9uIGo0ZSh0KXtyZXR1cm4iJiN4Iit0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7In12YXIgVTRlPWIoKCk9Pnt9KTtmdW5jdGlvbiB3cyh0LGUpe3JldHVybiBjJCh0LE9iamVjdC5hc3NpZ24oe2Zvcm1hdDpxNGV9LGUpKX1mdW5jdGlvbiBzQjEodCxlKXtyZXR1cm4gYyQodCxPYmplY3QuYXNzaWduKHtmb3JtYXQ6ajRlfSxlKSl9dmFyIFc0ZT1iKCgpPT57TDRlKCk7VjRlKCk7VTRlKCl9KTt2YXIgeHU9YigoKT0+e1c0ZSgpfSk7ZnVuY3Rpb24gRzRlKHQsZSxhLGkpe3JldHVybiBpLnNldHRpbmdzLmJvZ3VzQ29tbWVudHM/Ijw/Iit3cyh0LnZhbHVlLE9iamVjdC5hc3NpZ24oe30saS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6bE90fSkpKyI+IjoiPCEtLSIrdC52YWx1ZS5yZXBsYWNlKG9PdCxyKSsiLS0+IjtmdW5jdGlvbiByKHMpe3JldHVybiB3cyhzLE9iamVjdC5hc3NpZ24oe30saS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6Y090fSkpfX12YXIgb090LGxPdCxjT3QsWTRlPWIoKCk9Pnt4dSgpO29PdD0vXj58Xi0+fDwhLS18LS0+fC0tIT58PCEtJC9nLGxPdD1bIj4iXSxjT3Q9WyI8IiwiPiJdfSk7ZnVuY3Rpb24gWjRlKHQsZSxhLGkpe3JldHVybiI8ISIrKGkuc2V0dGluZ3MudXBwZXJEb2N0eXBlPyJET0NUWVBFIjoiZG9jdHlwZSIpKyhpLnNldHRpbmdzLnRpZ2h0RG9jdHlwZT8iIjoiICIpKyJodG1sPiJ9dmFyIFg0ZT1iKCgpPT57fSk7ZnVuY3Rpb24gaEIxKHQpe2xldCBlPVtdLGE9U3RyaW5nKHR8fCIiKSxpPWEuaW5kZXhPZigiLCIpLHI9MCxzPSExO2Zvcig7IXM7KXtpPT09LTEmJihpPWEubGVuZ3RoLHM9ITApO2xldCBuPWEuc2xpY2UocixpKS50cmltKCk7KG58fCFzKSYmZS5wdXNoKG4pLHI9aSsxLGk9YS5pbmRleE9mKCIsIixyKX1yZXR1cm4gZX1mdW5jdGlvbiBLNGUodCxlKXtsZXQgYT1lfHx7fTtyZXR1cm4odFt0Lmxlbmd0aC0xXT09PSIiP1suLi50LCIiXTp0KS5qb2luKChhLnBhZFJpZ2h0PyIgIjoiIikrIiwiKyhhLnBhZExlZnQ9PT0hMT8iIjoiICIpKS50cmltKCl9dmFyIFE0ZT1iKCgpPT57fSk7ZnVuY3Rpb24gZkIxKHQpe2xldCBlPVN0cmluZyh0fHwiIikudHJpbSgpO3JldHVybiBlP2Uuc3BsaXQoL1sgXHRcblxyXGZdKy9nKTpbXX1mdW5jdGlvbiBKNGUodCl7cmV0dXJuIHQuam9pbigiICIpLnRyaW0oKX12YXIgZTNlPWIoKCk9Pnt9KTtmdW5jdGlvbiBBMCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiP3QudHlwZT09PSJ0ZXh0Ij90M2UodC52YWx1ZSk6ITE6dDNlKHQpfWZ1bmN0aW9uIHQzZSh0KXtyZXR1cm4gdC5yZXBsYWNlKGRPdCwiIik9PT0iIn12YXIgZE90LGEzZT1iKCgpPT57ZE90PS9bIFx0XG5cZlxyXS9nfSk7dmFyIHd1PWIoKCk9PnthM2UoKX0pO2Z1bmN0aW9uIGkzZSh0KXtyZXR1cm4gZTtmdW5jdGlvbiBlKGEsaSxyKXtsZXQgcz1hP2EuY2hpbGRyZW46cE90LG49KGl8fDApK3Qsbz1zW25dO2lmKCFyKWZvcig7byYmQTAobyk7KW4rPXQsbz1zW25dO3JldHVybiBvfX12YXIgQjEscCQscE90LGgkPWIoKCk9Pnt3dSgpO0IxPWkzZSgxKSxwJD1pM2UoLTEpLHBPdD1bXX0pO2Z1bmN0aW9uIE11KHQpe3JldHVybiBlO2Z1bmN0aW9uIGUoYSxpLHIpe3JldHVybiBoT3QuY2FsbCh0LGEudGFnTmFtZSkmJnRbYS50YWdOYW1lXShhLGkscil9fXZhciBoT3QsdSQ9YigoKT0+e2hPdD17fS5oYXNPd25Qcm9wZXJ0eX0pO2Z1bmN0aW9uIGYkKHQsZSxhKXtsZXQgaT1CMShhLGUsITApO3JldHVybiFpfHxpLnR5cGUhPT0iY29tbWVudCImJiEoaS50eXBlPT09InRleHQiJiZBMChpLnZhbHVlLmNoYXJBdCgwKSkpfWZ1bmN0aW9uIHVPdCh0LGUsYSl7bGV0IGk9QjEoYSxlKTtyZXR1cm4haXx8aS50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIGZPdCh0LGUsYSl7bGV0IGk9QjEoYSxlKTtyZXR1cm4haXx8aS50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIG1PdCh0LGUsYSl7bGV0IGk9QjEoYSxlKTtyZXR1cm4gaT9pLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0iYWRkcmVzcyJ8fGkudGFnTmFtZT09PSJhcnRpY2xlInx8aS50YWdOYW1lPT09ImFzaWRlInx8aS50YWdOYW1lPT09ImJsb2NrcXVvdGUifHxpLnRhZ05hbWU9PT0iZGV0YWlscyJ8fGkudGFnTmFtZT09PSJkaXYifHxpLnRhZ05hbWU9PT0iZGwifHxpLnRhZ05hbWU9PT0iZmllbGRzZXQifHxpLnRhZ05hbWU9PT0iZmlnY2FwdGlvbiJ8fGkudGFnTmFtZT09PSJmaWd1cmUifHxpLnRhZ05hbWU9PT0iZm9vdGVyInx8aS50YWdOYW1lPT09ImZvcm0ifHxpLnRhZ05hbWU9PT0iaDEifHxpLnRhZ05hbWU9PT0iaDIifHxpLnRhZ05hbWU9PT0iaDMifHxpLnRhZ05hbWU9PT0iaDQifHxpLnRhZ05hbWU9PT0iaDUifHxpLnRhZ05hbWU9PT0iaDYifHxpLnRhZ05hbWU9PT0iaGVhZGVyInx8aS50YWdOYW1lPT09Imhncm91cCJ8fGkudGFnTmFtZT09PSJociJ8fGkudGFnTmFtZT09PSJtYWluInx8aS50YWdOYW1lPT09Im1lbnUifHxpLnRhZ05hbWU9PT0ibmF2Inx8aS50YWdOYW1lPT09Im9sInx8aS50YWdOYW1lPT09InAifHxpLnRhZ05hbWU9PT0icHJlInx8aS50YWdOYW1lPT09InNlY3Rpb24ifHxpLnRhZ05hbWU9PT0idGFibGUifHxpLnRhZ05hbWU9PT0idWwiKTohYXx8IShhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0iYSJ8fGEudGFnTmFtZT09PSJhdWRpbyJ8fGEudGFnTmFtZT09PSJkZWwifHxhLnRhZ05hbWU9PT0iaW5zInx8YS50YWdOYW1lPT09Im1hcCJ8fGEudGFnTmFtZT09PSJub3NjcmlwdCJ8fGEudGFnTmFtZT09PSJ2aWRlbyIpKX1mdW5jdGlvbiBnT3QodCxlLGEpe2xldCBpPUIxKGEsZSk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmaS50YWdOYW1lPT09ImxpIn1mdW5jdGlvbiBiT3QodCxlLGEpe2xldCBpPUIxKGEsZSk7cmV0dXJuISEoaSYmaS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09ImR0Inx8aS50YWdOYW1lPT09ImRkIikpfWZ1bmN0aW9uIHZPdCh0LGUsYSl7bGV0IGk9QjEoYSxlKTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09ImR0Inx8aS50YWdOYW1lPT09ImRkIil9ZnVuY3Rpb24gcjNlKHQsZSxhKXtsZXQgaT1CMShhLGUpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0icnAifHxpLnRhZ05hbWU9PT0icnQiKX1mdW5jdGlvbiB5T3QodCxlLGEpe2xldCBpPUIxKGEsZSk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmaS50YWdOYW1lPT09Im9wdGdyb3VwIn1mdW5jdGlvbiB4T3QodCxlLGEpe2xldCBpPUIxKGEsZSk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJvcHRpb24ifHxpLnRhZ05hbWU9PT0ib3B0Z3JvdXAiKX1mdW5jdGlvbiB3T3QodCxlLGEpe2xldCBpPUIxKGEsZSk7cmV0dXJuISEoaSYmaS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09InRib2R5Inx8aS50YWdOYW1lPT09InRmb290IikpfWZ1bmN0aW9uIE1PdCh0LGUsYSl7bGV0IGk9QjEoYSxlKTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09InRib2R5Inx8aS50YWdOYW1lPT09InRmb290Iil9ZnVuY3Rpb24gek90KHQsZSxhKXtyZXR1cm4hQjEoYSxlKX1mdW5jdGlvbiBrT3QodCxlLGEpe2xldCBpPUIxKGEsZSk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmaS50YWdOYW1lPT09InRyIn1mdW5jdGlvbiBzM2UodCxlLGEpe2xldCBpPUIxKGEsZSk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJ0ZCJ8fGkudGFnTmFtZT09PSJ0aCIpfXZhciBuNSxtJD1iKCgpPT57d3UoKTtoJCgpO3UkKCk7bjU9TXUoe2JvZHk6Zk90LGNhcHRpb246ZiQsY29sZ3JvdXA6ZiQsZGQ6dk90LGR0OmJPdCxoZWFkOmYkLGh0bWw6dU90LGxpOmdPdCxvcHRncm91cDp5T3Qsb3B0aW9uOnhPdCxwOm1PdCxycDpyM2UscnQ6cjNlLHRib2R5Ok1PdCx0ZDpzM2UsdGZvb3Q6ek90LHRoOnMzZSx0aGVhZDp3T3QsdHI6a090fSl9KTtmdW5jdGlvbiBTT3QodCl7bGV0IGU9QjEodCwtMSk7cmV0dXJuIWV8fGUudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiBDT3QodCl7bGV0IGU9bmV3IFNldDtmb3IobGV0IGkgb2YgdC5jaGlsZHJlbilpZihpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0iYmFzZSJ8fGkudGFnTmFtZT09PSJ0aXRsZSIpKXtpZihlLmhhcyhpLnRhZ05hbWUpKXJldHVybiExO2UuYWRkKGkudGFnTmFtZSl9bGV0IGE9dC5jaGlsZHJlblswXTtyZXR1cm4hYXx8YS50eXBlPT09ImVsZW1lbnQifWZ1bmN0aW9uIF9PdCh0KXtsZXQgZT1CMSh0LC0xLCEwKTtyZXR1cm4hZXx8ZS50eXBlIT09ImNvbW1lbnQiJiYhKGUudHlwZT09PSJ0ZXh0IiYmQTAoZS52YWx1ZS5jaGFyQXQoMCkpKSYmIShlLnR5cGU9PT0iZWxlbWVudCImJihlLnRhZ05hbWU9PT0ibWV0YSJ8fGUudGFnTmFtZT09PSJsaW5rInx8ZS50YWdOYW1lPT09InNjcmlwdCJ8fGUudGFnTmFtZT09PSJzdHlsZSJ8fGUudGFnTmFtZT09PSJ0ZW1wbGF0ZSIpKX1mdW5jdGlvbiBUT3QodCxlLGEpe2xldCBpPXAkKGEsZSkscj1CMSh0LC0xLCEwKTtyZXR1cm4gYSYmaSYmaS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0iY29sZ3JvdXAiJiZuNShpLGEuY2hpbGRyZW4uaW5kZXhPZihpKSxhKT8hMTohIShyJiZyLnR5cGU9PT0iZWxlbWVudCImJnIudGFnTmFtZT09PSJjb2wiKX1mdW5jdGlvbiBMT3QodCxlLGEpe2xldCBpPXAkKGEsZSkscj1CMSh0LC0xKTtyZXR1cm4gYSYmaSYmaS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09InRoZWFkInx8aS50YWdOYW1lPT09InRib2R5IikmJm41KGksYS5jaGlsZHJlbi5pbmRleE9mKGkpLGEpPyExOiEhKHImJnIudHlwZT09PSJlbGVtZW50IiYmci50YWdOYW1lPT09InRyIil9dmFyIG4zZSxvM2U9YigoKT0+e3d1KCk7aCQoKTttJCgpO3UkKCk7bjNlPU11KHtib2R5Ol9PdCxjb2xncm91cDpUT3QsaGVhZDpDT3QsaHRtbDpTT3QsdGJvZHk6TE90fSl9KTtmdW5jdGlvbiBsM2UodCxlLGEsaSl7bGV0IHI9aS5zY2hlbWEscz1yLnNwYWNlPT09InN2ZyI/ITE6aS5zZXR0aW5ncy5vbWl0T3B0aW9uYWxUYWdzLG49ci5zcGFjZT09PSJzdmciP2kuc2V0dGluZ3MuY2xvc2VFbXB0eUVsZW1lbnRzOmkuc2V0dGluZ3Mudm9pZHMuaW5jbHVkZXModC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpLG89W10sZDtyLnNwYWNlPT09Imh0bWwiJiZ0LnRhZ05hbWU9PT0ic3ZnIiYmKGkuc2NoZW1hPWJ1KTtsZXQgYz0kT3QoaSx0LnByb3BlcnRpZXMpLHA9aS5hbGwoci5zcGFjZT09PSJodG1sIiYmdC50YWdOYW1lPT09InRlbXBsYXRlIj90LmNvbnRlbnQ6dCk7cmV0dXJuIGkuc2NoZW1hPXIscCYmKG49ITEpLChjfHwhc3x8IW4zZSh0LGUsYSkpJiYoby5wdXNoKCI8Iix0LnRhZ05hbWUsYz8iICIrYzoiIiksbiYmKHIuc3BhY2U9PT0ic3ZnInx8aS5zZXR0aW5ncy5jbG9zZVNlbGZDbG9zaW5nKSYmKGQ9Yy5jaGFyQXQoYy5sZW5ndGgtMSksKCFpLnNldHRpbmdzLnRpZ2h0U2VsZkNsb3Npbmd8fGQ9PT0iLyJ8fGQmJmQhPT0nIicmJmQhPT0iJyIpJiZvLnB1c2goIiAiKSxvLnB1c2goIi8iKSksby5wdXNoKCI+IikpLG8ucHVzaChwKSwhbiYmKCFzfHwhbjUodCxlLGEpKSYmby5wdXNoKCI8LyIrdC50YWdOYW1lKyI+Iiksby5qb2luKCIiKX1mdW5jdGlvbiAkT3QodCxlKXtsZXQgYT1bXSxpPS0xLHI7aWYoZSl7Zm9yKHIgaW4gZSlpZihlW3JdIT09bnVsbCYmZVtyXSE9PXZvaWQgMCl7bGV0IHM9QU90KHQscixlW3JdKTtzJiZhLnB1c2gocyl9fWZvcig7KytpPGEubGVuZ3RoOyl7bGV0IHM9dC5zZXR0aW5ncy50aWdodEF0dHJpYnV0ZXM/YVtpXS5jaGFyQXQoYVtpXS5sZW5ndGgtMSk6dm9pZCAwO2khPT1hLmxlbmd0aC0xJiZzIT09JyInJiZzIT09IiciJiYoYVtpXSs9IiAiKX1yZXR1cm4gYS5qb2luKCIiKX1mdW5jdGlvbiBBT3QodCxlLGEpe2xldCBpPW8kKHQuc2NoZW1hLGUpLHI9dC5zZXR0aW5ncy5hbGxvd1BhcnNlRXJyb3JzJiZ0LnNjaGVtYS5zcGFjZT09PSJodG1sIj8wOjEscz10LnNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzQ2hhcmFjdGVycz8wOjEsbj10LnF1b3RlLG87aWYoaS5vdmVybG9hZGVkQm9vbGVhbiYmKGE9PT1pLmF0dHJpYnV0ZXx8YT09PSIiKT9hPSEwOihpLmJvb2xlYW58fGkub3ZlcmxvYWRlZEJvb2xlYW4pJiYodHlwZW9mIGEhPSJzdHJpbmcifHxhPT09aS5hdHRyaWJ1dGV8fGE9PT0iIikmJihhPSEhYSksYT09bnVsbHx8YT09PSExfHx0eXBlb2YgYT09Im51bWJlciImJk51bWJlci5pc05hTihhKSlyZXR1cm4iIjtsZXQgZD13cyhpLmF0dHJpYnV0ZSxPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0Onp1Lm5hbWVbcl1bc119KSk7cmV0dXJuIGE9PT0hMHx8KGE9QXJyYXkuaXNBcnJheShhKT8oaS5jb21tYVNlcGFyYXRlZD9LNGU6SjRlKShhLHtwYWRMZWZ0OiF0LnNldHRpbmdzLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c30pOlN0cmluZyhhKSx0LnNldHRpbmdzLmNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzJiYhYSk/ZDoodC5zZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCYmKG89d3MoYSxPYmplY3QuYXNzaWduKHt9LHQuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7YXR0cmlidXRlOiEwLHN1YnNldDp6dS51bnF1b3RlZFtyXVtzXX0pKSksbyE9PWEmJih0LnNldHRpbmdzLnF1b3RlU21hcnQmJkUzKGEsbik+RTMoYSx0LmFsdGVybmF0aXZlKSYmKG49dC5hbHRlcm5hdGl2ZSksbz1uK3dzKGEsT2JqZWN0LmFzc2lnbih7fSx0LnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDoobj09PSInIj96dS5zaW5nbGU6enUuZG91YmxlKVtyXVtzXSxhdHRyaWJ1dGU6ITB9KSkrbiksZCsobyYmIj0iK28pKX12YXIgenUsYzNlPWIoKCk9Pnt0VCgpO1E0ZSgpO2wkKCk7ZTNlKCk7eHUoKTttJCgpO28zZSgpO3p1PXtuYW1lOltbYAkKXGZcciAmLz0+YC5zcGxpdCgiIiksYAkKXGZcciAiJicvPT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJy88PT5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnLzw9PlxgYC5zcGxpdCgiIildXSx1bnF1b3RlZDpbW2AJClxmXHIgJj5gLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKV0sW2BcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXV0sc2luZ2xlOltbIiYnIi5zcGxpdCgiIiksIlwiJidgIi5zcGxpdCgiIildLFsiXDAmJyIuc3BsaXQoIiIpLCJcMFwiJidgIi5zcGxpdCgiIildXSxkb3VibGU6W1snIiYnLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWydcMCImJy5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dfX0pO2Z1bmN0aW9uIGt1KHQsZSxhLGkpe3JldHVybiBhJiZhLnR5cGU9PT0iZWxlbWVudCImJihhLnRhZ05hbWU9PT0ic2NyaXB0Inx8YS50YWdOYW1lPT09InN0eWxlIik/dC52YWx1ZTp3cyh0LnZhbHVlLE9iamVjdC5hc3NpZ24oe30saS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6RE90fSkpfXZhciBET3QsZyQ9YigoKT0+e3h1KCk7RE90PVsiPCIsIiYiXX0pO2Z1bmN0aW9uIGQzZSh0LGUsYSxpKXtyZXR1cm4gaS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0h0bWw/dC52YWx1ZTprdSh0LGUsYSxpKX12YXIgcDNlPWIoKCk9PntnJCgpfSk7ZnVuY3Rpb24gaDNlKHQsZSxhLGkpe3JldHVybiBpLmFsbCh0KX12YXIgdTNlPWIoKCk9Pnt9KTtmdW5jdGlvbiBFT3QodCl7dGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBub2RlLCBub3QgYCIrdCsiYCIpfWZ1bmN0aW9uIFBPdCh0KXtsZXQgZT10O3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGNvbXBpbGUgdW5rbm93biBub2RlIGAiK2UudHlwZSsiYCIpfXZhciBmM2UsbTNlPWIoKCk9PntoVCgpO1k0ZSgpO1g0ZSgpO2MzZSgpO3AzZSgpO3UzZSgpO2ckKCk7ZjNlPXo5KCJ0eXBlIix7aW52YWxpZDpFT3QsdW5rbm93bjpQT3QsaGFuZGxlcnM6e2NvbW1lbnQ6RzRlLGRvY3R5cGU6WjRlLGVsZW1lbnQ6bDNlLHJhdzpkM2Uscm9vdDpoM2UsdGV4dDprdX19KX0pO2Z1bmN0aW9uIGIkKHQsZSl7bGV0IGE9ZXx8SU90LGk9YS5xdW90ZXx8JyInLHI9aT09PSciJz8iJyI6JyInO2lmKGkhPT0nIicmJmkhPT0iJyIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHF1b3RlIGAiK2krImAsIGV4cGVjdGVkIGAnYCBvciBgXCJgIik7cmV0dXJue29uZTpPT3QsYWxsOlJPdCxzZXR0aW5nczp7b21pdE9wdGlvbmFsVGFnczphLm9taXRPcHRpb25hbFRhZ3N8fCExLGFsbG93UGFyc2VFcnJvcnM6YS5hbGxvd1BhcnNlRXJyb3JzfHwhMSxhbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM6YS5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnN8fCExLHF1b3RlU21hcnQ6YS5xdW90ZVNtYXJ0fHwhMSxwcmVmZXJVbnF1b3RlZDphLnByZWZlclVucXVvdGVkfHwhMSx0aWdodEF0dHJpYnV0ZXM6YS50aWdodEF0dHJpYnV0ZXN8fCExLHVwcGVyRG9jdHlwZTphLnVwcGVyRG9jdHlwZXx8ITEsdGlnaHREb2N0eXBlOmEudGlnaHREb2N0eXBlfHwhMSxib2d1c0NvbW1lbnRzOmEuYm9ndXNDb21tZW50c3x8ITEsdGlnaHRDb21tYVNlcGFyYXRlZExpc3RzOmEudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzfHwhMSx0aWdodFNlbGZDbG9zaW5nOmEudGlnaHRTZWxmQ2xvc2luZ3x8ITEsY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM6YS5jb2xsYXBzZUVtcHR5QXR0cmlidXRlc3x8ITEsYWxsb3dEYW5nZXJvdXNIdG1sOmEuYWxsb3dEYW5nZXJvdXNIdG1sfHwhMSx2b2lkczphLnZvaWRzfHxoNGUsY2hhcmFjdGVyUmVmZXJlbmNlczphLmNoYXJhY3RlclJlZmVyZW5jZXN8fE5PdCxjbG9zZVNlbGZDbG9zaW5nOmEuY2xvc2VTZWxmQ2xvc2luZ3x8ITEsY2xvc2VFbXB0eUVsZW1lbnRzOmEuY2xvc2VFbXB0eUVsZW1lbnRzfHwhMX0sc2NoZW1hOmEuc3BhY2U9PT0ic3ZnIj9idTpfNGUscXVvdGU6aSxhbHRlcm5hdGl2ZTpyfS5vbmUoQXJyYXkuaXNBcnJheSh0KT97dHlwZToicm9vdCIsY2hpbGRyZW46dH06dCx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiBPT3QodCxlLGEpe3JldHVybiBmM2UodCxlLGEsdGhpcyl9ZnVuY3Rpb24gUk90KHQpe2xldCBlPVtdLGE9dCYmdC5jaGlsZHJlbnx8Rk90LGk9LTE7Zm9yKDsrK2k8YS5sZW5ndGg7KWVbaV09dGhpcy5vbmUoYVtpXSxpLHQpO3JldHVybiBlLmpvaW4oIiIpfXZhciBJT3QsTk90LEZPdCxnM2U9YigoKT0+e3U0ZSgpO2wkKCk7bTNlKCk7SU90PXt9LE5PdD17fSxGT3Q9W119KTt2YXIgYjNlPWIoKCk9PntnM2UoKX0pO2Z1bmN0aW9uIEczKHQpe2xldCBlPXRoaXMse2hhbmRsZXJzOmEsc2FuaXRpemU6aSwuLi5yfT10fHxCT3Qscz0hMSxuO3R5cGVvZiBpPT0iYm9vbGVhbiI/cz0haTppJiYobj1pKSxlLmNvbXBpbGVyPW87ZnVuY3Rpb24gbyhkLGMpe2xldCBwPVpMKGQse2hhbmRsZXJzOmEsYWxsb3dEYW5nZXJvdXNIdG1sOnN9KSxsPXM/cDpWTChwLG4pLGY9YiQobCx7Li4ucixhbGxvd0Rhbmdlcm91c0h0bWw6c30pO3JldHVybiBjLmV4dG5hbWUmJihjLmV4dG5hbWU9Ii5odG1sIiksZCYmZC50eXBlPT09InJvb3QiJiZmJiYvW15cclxuXS8udGVzdChmLmNoYXJBdChmLmxlbmd0aC0xKSk/ZitgCmA6Zn19dmFyIEJPdCx2M2U9YigoKT0+e28wZSgpO3A0ZSgpO2IzZSgpO0JPdD17fX0pO3ZhciB5M2U9YigoKT0+e3YzZSgpfSk7ZnVuY3Rpb24gWTModCl7bGV0IGU9dGhpcztlLmNvbXBpbGVyPWE7ZnVuY3Rpb24gYShpKXtyZXR1cm4gRVQoaSx7Li4uZS5kYXRhKCJzZXR0aW5ncyIpLC4uLnQsZXh0ZW5zaW9uczplLmRhdGEoInRvTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9fXZhciB4M2U9YigoKT0+e0U5KCl9KTt2YXIgdzNlPWIoKCk9Pnt4M2UoKX0pO2Z1bmN0aW9uIEhPdCh0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgYT1hcmd1bWVudHNbZV07Zm9yKHZhciBpIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShpKSYmKHRbaV09YVtpXSl9cmV0dXJuIHR9ZnVuY3Rpb24gdiQodCxlKXtyZXR1cm4gQXJyYXkoZSsxKS5qb2luKHQpfWZ1bmN0aW9uIE0zZSh0KXtyZXR1cm4gdC5yZXBsYWNlKC9eXG4qLywiIil9ZnVuY3Rpb24gejNlKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDtlPjAmJnRbZS0xXT09PWAKYDspZS0tO3JldHVybiB0LnN1YnN0cmluZygwLGUpfWZ1bmN0aW9uIGszZSh0KXtyZXR1cm4gejNlKE0zZSh0KSl9ZnVuY3Rpb24geSQodCl7cmV0dXJuIHgkKHQscU90KX1mdW5jdGlvbiBDM2UodCl7cmV0dXJuIHgkKHQsUzNlKX1mdW5jdGlvbiBWT3QodCl7cmV0dXJuIFQzZSh0LFMzZSl9ZnVuY3Rpb24gak90KHQpe3JldHVybiB4JCh0LF8zZSl9ZnVuY3Rpb24gVU90KHQpe3JldHVybiBUM2UodCxfM2UpfWZ1bmN0aW9uIHgkKHQsZSl7cmV0dXJuIGUuaW5kZXhPZih0Lm5vZGVOYW1lKT49MH1mdW5jdGlvbiBUM2UodCxlKXtyZXR1cm4gdC5nZXRFbGVtZW50c0J5VGFnTmFtZSYmZS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiB0LmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpLmxlbmd0aH0pfWZ1bmN0aW9uIFN1KHQpe3JldHVybiB0P3QucmVwbGFjZSgvKFxuK1xzKikrL2csYApgKToiIn1mdW5jdGlvbiBMM2UodCl7dGhpcy5vcHRpb25zPXQsdGhpcy5fa2VlcD1bXSx0aGlzLl9yZW1vdmU9W10sdGhpcy5ibGFua1J1bGU9e3JlcGxhY2VtZW50OnQuYmxhbmtSZXBsYWNlbWVudH0sdGhpcy5rZWVwUmVwbGFjZW1lbnQ9dC5rZWVwUmVwbGFjZW1lbnQsdGhpcy5kZWZhdWx0UnVsZT17cmVwbGFjZW1lbnQ6dC5kZWZhdWx0UmVwbGFjZW1lbnR9LHRoaXMuYXJyYXk9W107Zm9yKHZhciBlIGluIHQucnVsZXMpdGhpcy5hcnJheS5wdXNoKHQucnVsZXNbZV0pfWZ1bmN0aW9uIHckKHQsZSxhKXtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIHI9dFtpXTtpZihXT3QocixlLGEpKXJldHVybiByfX1mdW5jdGlvbiBXT3QodCxlLGEpe3ZhciBpPXQuZmlsdGVyO2lmKHR5cGVvZiBpPT0ic3RyaW5nIil7aWYoaT09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4hMH1lbHNlIGlmKEFycmF5LmlzQXJyYXkoaSkpe2lmKGkuaW5kZXhPZihlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpPi0xKXJldHVybiEwfWVsc2UgaWYodHlwZW9mIGk9PSJmdW5jdGlvbiIpe2lmKGkuY2FsbCh0LGUsYSkpcmV0dXJuITB9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJgZmlsdGVyYCBuZWVkcyB0byBiZSBhIHN0cmluZywgYXJyYXksIG9yIGZ1bmN0aW9uIil9ZnVuY3Rpb24gR090KHQpe3ZhciBlPXQuZWxlbWVudCxhPXQuaXNCbG9jayxpPXQuaXNWb2lkLHI9dC5pc1ByZXx8ZnVuY3Rpb24obCl7cmV0dXJuIGwubm9kZU5hbWU9PT0iUFJFIn07aWYoISghZS5maXJzdENoaWxkfHxyKGUpKSl7Zm9yKHZhciBzPW51bGwsbj0hMSxvPW51bGwsZD0kM2UobyxlLHIpO2QhPT1lOyl7aWYoZC5ub2RlVHlwZT09PTN8fGQubm9kZVR5cGU9PT00KXt2YXIgYz1kLmRhdGEucmVwbGFjZSgvWyBcclxuXHRdKy9nLCIgIik7aWYoKCFzfHwvICQvLnRlc3Qocy5kYXRhKSkmJiFuJiZjWzBdPT09IiAiJiYoYz1jLnN1YnN0cigxKSksIWMpe2Q9TSQoZCk7Y29udGludWV9ZC5kYXRhPWMscz1kfWVsc2UgaWYoZC5ub2RlVHlwZT09PTEpYShkKXx8ZC5ub2RlTmFtZT09PSJCUiI/KHMmJihzLmRhdGE9cy5kYXRhLnJlcGxhY2UoLyAkLywiIikpLHM9bnVsbCxuPSExKTppKGQpfHxyKGQpPyhzPW51bGwsbj0hMCk6cyYmKG49ITEpO2Vsc2V7ZD1NJChkKTtjb250aW51ZX12YXIgcD0kM2UobyxkLHIpO289ZCxkPXB9cyYmKHMuZGF0YT1zLmRhdGEucmVwbGFjZSgvICQvLCIiKSxzLmRhdGF8fE0kKHMpKX19ZnVuY3Rpb24gTSQodCl7dmFyIGU9dC5uZXh0U2libGluZ3x8dC5wYXJlbnROb2RlO3JldHVybiB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksZX1mdW5jdGlvbiAkM2UodCxlLGEpe3JldHVybiB0JiZ0LnBhcmVudE5vZGU9PT1lfHxhKGUpP2UubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZTplLmZpcnN0Q2hpbGR8fGUubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZX1mdW5jdGlvbiBZT3QoKXt2YXIgdD16JC5ET01QYXJzZXIsZT0hMTt0cnl7bmV3IHQoKS5wYXJzZUZyb21TdHJpbmcoIiIsInRleHQvaHRtbCIpJiYoZT0hMCl9Y2F0Y2h7fXJldHVybiBlfWZ1bmN0aW9uIFpPdCgpe3ZhciB0PWZ1bmN0aW9uKCl7fTtyZXR1cm4gWE90KCk/dC5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciBhPW5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKTtyZXR1cm4gYS5kZXNpZ25Nb2RlPSJvbiIsYS5vcGVuKCksYS53cml0ZShlKSxhLmNsb3NlKCksYX06dC5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciBhPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7cmV0dXJuIGEub3BlbigpLGEud3JpdGUoZSksYS5jbG9zZSgpLGF9LHR9ZnVuY3Rpb24gWE90KCl7dmFyIHQ9ITE7dHJ5e2RvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikub3BlbigpfWNhdGNoe3okLkFjdGl2ZVhPYmplY3QmJih0PSEwKX1yZXR1cm4gdH1mdW5jdGlvbiBRT3QodCxlKXt2YXIgYTtpZih0eXBlb2YgdD09InN0cmluZyIpe3ZhciBpPUpPdCgpLnBhcnNlRnJvbVN0cmluZygnPHgtdHVybmRvd24gaWQ9InR1cm5kb3duLXJvb3QiPicrdCsiPC94LXR1cm5kb3duPiIsInRleHQvaHRtbCIpO2E9aS5nZXRFbGVtZW50QnlJZCgidHVybmRvd24tcm9vdCIpfWVsc2UgYT10LmNsb25lTm9kZSghMCk7cmV0dXJuIEdPdCh7ZWxlbWVudDphLGlzQmxvY2s6eSQsaXNWb2lkOkMzZSxpc1ByZTplLnByZWZvcm1hdHRlZENvZGU/ZVJ0Om51bGx9KSxhfWZ1bmN0aW9uIEpPdCgpe3JldHVybiBrJD1rJHx8bmV3IEtPdCxrJH1mdW5jdGlvbiBlUnQodCl7cmV0dXJuIHQubm9kZU5hbWU9PT0iUFJFInx8dC5ub2RlTmFtZT09PSJDT0RFIn1mdW5jdGlvbiB0UnQodCxlKXtyZXR1cm4gdC5pc0Jsb2NrPXkkKHQpLHQuaXNDb2RlPXQubm9kZU5hbWU9PT0iQ09ERSJ8fHQucGFyZW50Tm9kZS5pc0NvZGUsdC5pc0JsYW5rPWFSdCh0KSx0LmZsYW5raW5nV2hpdGVzcGFjZT1pUnQodCxlKSx0fWZ1bmN0aW9uIGFSdCh0KXtyZXR1cm4hQzNlKHQpJiYhak90KHQpJiYvXlxzKiQvaS50ZXN0KHQudGV4dENvbnRlbnQpJiYhVk90KHQpJiYhVU90KHQpfWZ1bmN0aW9uIGlSdCh0LGUpe2lmKHQuaXNCbG9ja3x8ZS5wcmVmb3JtYXR0ZWRDb2RlJiZ0LmlzQ29kZSlyZXR1cm57bGVhZGluZzoiIix0cmFpbGluZzoiIn07dmFyIGE9clJ0KHQudGV4dENvbnRlbnQpO3JldHVybiBhLmxlYWRpbmdBc2NpaSYmQTNlKCJsZWZ0Iix0LGUpJiYoYS5sZWFkaW5nPWEubGVhZGluZ05vbkFzY2lpKSxhLnRyYWlsaW5nQXNjaWkmJkEzZSgicmlnaHQiLHQsZSkmJihhLnRyYWlsaW5nPWEudHJhaWxpbmdOb25Bc2NpaSkse2xlYWRpbmc6YS5sZWFkaW5nLHRyYWlsaW5nOmEudHJhaWxpbmd9fWZ1bmN0aW9uIHJSdCh0KXt2YXIgZT10Lm1hdGNoKC9eKChbIFx0XHJcbl0qKShccyopKSg/Oig/PVxTKVtcc1xTXSpcUyk/KChccyo/KShbIFx0XHJcbl0qKSkkLyk7cmV0dXJue2xlYWRpbmc6ZVsxXSxsZWFkaW5nQXNjaWk6ZVsyXSxsZWFkaW5nTm9uQXNjaWk6ZVszXSx0cmFpbGluZzplWzRdLHRyYWlsaW5nTm9uQXNjaWk6ZVs1XSx0cmFpbGluZ0FzY2lpOmVbNl19fWZ1bmN0aW9uIEEzZSh0LGUsYSl7dmFyIGkscixzO3JldHVybiB0PT09ImxlZnQiPyhpPWUucHJldmlvdXNTaWJsaW5nLHI9LyAkLyk6KGk9ZS5uZXh0U2libGluZyxyPS9eIC8pLGkmJihpLm5vZGVUeXBlPT09Mz9zPXIudGVzdChpLm5vZGVWYWx1ZSk6YS5wcmVmb3JtYXR0ZWRDb2RlJiZpLm5vZGVOYW1lPT09IkNPREUiP3M9ITE6aS5ub2RlVHlwZT09PTEmJiF5JChpKSYmKHM9ci50ZXN0KGkudGV4dENvbnRlbnQpKSksc31mdW5jdGlvbiBDdSh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBDdSkpcmV0dXJuIG5ldyBDdSh0KTt2YXIgZT17cnVsZXM6VzIsaGVhZGluZ1N0eWxlOiJzZXRleHQiLGhyOiIqICogKiIsYnVsbGV0TGlzdE1hcmtlcjoiKiIsY29kZUJsb2NrU3R5bGU6ImluZGVudGVkIixmZW5jZToiYGBgIixlbURlbGltaXRlcjoiXyIsc3Ryb25nRGVsaW1pdGVyOiIqKiIsbGlua1N0eWxlOiJpbmxpbmVkIixsaW5rUmVmZXJlbmNlU3R5bGU6ImZ1bGwiLGJyOiIgICIscHJlZm9ybWF0dGVkQ29kZTohMSxibGFua1JlcGxhY2VtZW50OmZ1bmN0aW9uKGEsaSl7cmV0dXJuIGkuaXNCbG9jaz9gCgpgOiIifSxrZWVwUmVwbGFjZW1lbnQ6ZnVuY3Rpb24oYSxpKXtyZXR1cm4gaS5pc0Jsb2NrP2AKCmAraS5vdXRlckhUTUwrYAoKYDppLm91dGVySFRNTH0sZGVmYXVsdFJlcGxhY2VtZW50OmZ1bmN0aW9uKGEsaSl7cmV0dXJuIGkuaXNCbG9jaz9gCgpgK2ErYAoKYDphfX07dGhpcy5vcHRpb25zPUhPdCh7fSxlLHQpLHRoaXMucnVsZXM9bmV3IEwzZSh0aGlzLm9wdGlvbnMpfWZ1bmN0aW9uIEQzZSh0KXt2YXIgZT10aGlzO3JldHVybiBzUnQuY2FsbCh0LmNoaWxkTm9kZXMsZnVuY3Rpb24oYSxpKXtpPW5ldyB0UnQoaSxlLm9wdGlvbnMpO3ZhciByPSIiO3JldHVybiBpLm5vZGVUeXBlPT09Mz9yPWkuaXNDb2RlP2kubm9kZVZhbHVlOmUuZXNjYXBlKGkubm9kZVZhbHVlKTppLm5vZGVUeXBlPT09MSYmKHI9bFJ0LmNhbGwoZSxpKSksRTNlKGEscil9LCIiKX1mdW5jdGlvbiBvUnQodCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5ydWxlcy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3R5cGVvZiBhLmFwcGVuZD09ImZ1bmN0aW9uIiYmKHQ9RTNlKHQsYS5hcHBlbmQoZS5vcHRpb25zKSkpfSksdC5yZXBsYWNlKC9eW1x0XHJcbl0rLywiIikucmVwbGFjZSgvW1x0XHJcblxzXSskLywiIil9ZnVuY3Rpb24gbFJ0KHQpe3ZhciBlPXRoaXMucnVsZXMuZm9yTm9kZSh0KSxhPUQzZS5jYWxsKHRoaXMsdCksaT10LmZsYW5raW5nV2hpdGVzcGFjZTtyZXR1cm4oaS5sZWFkaW5nfHxpLnRyYWlsaW5nKSYmKGE9YS50cmltKCkpLGkubGVhZGluZytlLnJlcGxhY2VtZW50KGEsdCx0aGlzLm9wdGlvbnMpK2kudHJhaWxpbmd9ZnVuY3Rpb24gRTNlKHQsZSl7dmFyIGE9ejNlKHQpLGk9TTNlKGUpLHI9TWF0aC5tYXgodC5sZW5ndGgtYS5sZW5ndGgsZS5sZW5ndGgtaS5sZW5ndGgpLHM9YAoKYC5zdWJzdHJpbmcoMCxyKTtyZXR1cm4gYStzK2l9ZnVuY3Rpb24gY1J0KHQpe3JldHVybiB0IT1udWxsJiYodHlwZW9mIHQ9PSJzdHJpbmcifHx0Lm5vZGVUeXBlJiYodC5ub2RlVHlwZT09PTF8fHQubm9kZVR5cGU9PT05fHx0Lm5vZGVUeXBlPT09MTEpKX12YXIgcU90LFMzZSxfM2UsVzIseiQsS090LGskLHNSdCxuUnQsX3UsUDNlPWIoKCk9PntxT3Q9WyJBRERSRVNTIiwiQVJUSUNMRSIsIkFTSURFIiwiQVVESU8iLCJCTE9DS1FVT1RFIiwiQk9EWSIsIkNBTlZBUyIsIkNFTlRFUiIsIkREIiwiRElSIiwiRElWIiwiREwiLCJEVCIsIkZJRUxEU0VUIiwiRklHQ0FQVElPTiIsIkZJR1VSRSIsIkZPT1RFUiIsIkZPUk0iLCJGUkFNRVNFVCIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkhFQURFUiIsIkhHUk9VUCIsIkhSIiwiSFRNTCIsIklTSU5ERVgiLCJMSSIsIk1BSU4iLCJNRU5VIiwiTkFWIiwiTk9GUkFNRVMiLCJOT1NDUklQVCIsIk9MIiwiT1VUUFVUIiwiUCIsIlBSRSIsIlNFQ1RJT04iLCJUQUJMRSIsIlRCT0RZIiwiVEQiLCJURk9PVCIsIlRIIiwiVEhFQUQiLCJUUiIsIlVMIl07UzNlPVsiQVJFQSIsIkJBU0UiLCJCUiIsIkNPTCIsIkNPTU1BTkQiLCJFTUJFRCIsIkhSIiwiSU1HIiwiSU5QVVQiLCJLRVlHRU4iLCJMSU5LIiwiTUVUQSIsIlBBUkFNIiwiU09VUkNFIiwiVFJBQ0siLCJXQlIiXTtfM2U9WyJBIiwiVEFCTEUiLCJUSEVBRCIsIlRCT0RZIiwiVEZPT1QiLCJUSCIsIlREIiwiSUZSQU1FIiwiU0NSSVBUIiwiQVVESU8iLCJWSURFTyJdO1cyPXt9O1cyLnBhcmFncmFwaD17ZmlsdGVyOiJwIixyZXBsYWNlbWVudDpmdW5jdGlvbih0KXtyZXR1cm5gCgpgK3QrYAoKYH19LFcyLmxpbmVCcmVhaz17ZmlsdGVyOiJiciIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlLGEpe3JldHVybiBhLmJyK2AKYH19LFcyLmhlYWRpbmc9e2ZpbHRlcjpbImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSxhKXt2YXIgaT1OdW1iZXIoZS5ub2RlTmFtZS5jaGFyQXQoMSkpO2lmKGEuaGVhZGluZ1N0eWxlPT09InNldGV4dCImJmk8Myl7dmFyIHI9diQoaT09PTE/Ij0iOiItIix0Lmxlbmd0aCk7cmV0dXJuYAoKYCt0K2AKYCtyK2AKCmB9ZWxzZSByZXR1cm5gCgpgK3YkKCIjIixpKSsiICIrdCtgCgpgfX0sVzIuYmxvY2txdW90ZT17ZmlsdGVyOiJibG9ja3F1b3RlIixyZXBsYWNlbWVudDpmdW5jdGlvbih0KXtyZXR1cm4gdD1rM2UodCkucmVwbGFjZSgvXi9nbSwiPiAiKSxgCgpgK3QrYAoKYH19LFcyLmxpc3Q9e2ZpbHRlcjpbInVsIiwib2wiXSxyZXBsYWNlbWVudDpmdW5jdGlvbih0LGUpe3ZhciBhPWUucGFyZW50Tm9kZTtyZXR1cm4gYS5ub2RlTmFtZT09PSJMSSImJmEubGFzdEVsZW1lbnRDaGlsZD09PWU/YApgK3Q6YAoKYCt0K2AKCmB9fSxXMi5saXN0SXRlbT17ZmlsdGVyOiJsaSIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlLGEpe3ZhciBpPWEuYnVsbGV0TGlzdE1hcmtlcisiICAgIixyPWUucGFyZW50Tm9kZTtpZihyLm5vZGVOYW1lPT09Ik9MIil7dmFyIHM9ci5nZXRBdHRyaWJ1dGUoInN0YXJ0Iiksbj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHIuY2hpbGRyZW4sZSk7aT0ocz9OdW1iZXIocykrbjpuKzEpKyIuICAifXZhciBvPS9cbiQvLnRlc3QodCk7cmV0dXJuIHQ9azNlKHQpKyhvP2AKYDoiIiksdD10LnJlcGxhY2UoL1xuL2dtLGAKYCsiICIucmVwZWF0KGkubGVuZ3RoKSksaSt0KyhlLm5leHRTaWJsaW5nP2AKYDoiIil9fSxXMi5pbmRlbnRlZENvZGVCbG9jaz17ZmlsdGVyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iaW5kZW50ZWQiJiZ0Lm5vZGVOYW1lPT09IlBSRSImJnQuZmlyc3RDaGlsZCYmdC5maXJzdENoaWxkLm5vZGVOYW1lPT09IkNPREUifSxyZXBsYWNlbWVudDpmdW5jdGlvbih0LGUsYSl7cmV0dXJuYAoKICAgIGArZS5maXJzdENoaWxkLnRleHRDb250ZW50LnJlcGxhY2UoL1xuL2csYAogICAgYCkrYAoKYH19LFcyLmZlbmNlZENvZGVCbG9jaz17ZmlsdGVyOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuY29kZUJsb2NrU3R5bGU9PT0iZmVuY2VkIiYmdC5ub2RlTmFtZT09PSJQUkUiJiZ0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixyPShpLm1hdGNoKC9sYW5ndWFnZS0oXFMrKS8pfHxbbnVsbCwiIl0pWzFdLHM9ZS5maXJzdENoaWxkLnRleHRDb250ZW50LG49YS5mZW5jZS5jaGFyQXQoMCksbz0zLGQ9bmV3IFJlZ0V4cCgiXiIrbisiezMsfSIsImdtIiksYztjPWQuZXhlYyhzKTspY1swXS5sZW5ndGg+PW8mJihvPWNbMF0ubGVuZ3RoKzEpO3ZhciBwPXYkKG4sbyk7cmV0dXJuYAoKYCtwK3IrYApgK3MucmVwbGFjZSgvXG4kLywiIikrYApgK3ArYAoKYH19LFcyLmhvcml6b250YWxSdWxlPXtmaWx0ZXI6ImhyIixyZXBsYWNlbWVudDpmdW5jdGlvbih0LGUsYSl7cmV0dXJuYAoKYCthLmhyK2AKCmB9fSxXMi5pbmxpbmVMaW5rPXtmaWx0ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5saW5rU3R5bGU9PT0iaW5saW5lZCImJnQubm9kZU5hbWU9PT0iQSImJnQuZ2V0QXR0cmlidXRlKCJocmVmIil9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSl7dmFyIGE9ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKTthJiYoYT1hLnJlcGxhY2UoLyhbKCldKS9nLCJcXCQxIikpO3ZhciBpPVN1KGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKTtyZXR1cm4gaSYmKGk9JyAiJytpLnJlcGxhY2UoLyIvZywnXFwiJykrJyInKSwiWyIrdCsiXSgiK2EraSsiKSJ9fSxXMi5yZWZlcmVuY2VMaW5rPXtmaWx0ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5saW5rU3R5bGU9PT0icmVmZXJlbmNlZCImJnQubm9kZU5hbWU9PT0iQSImJnQuZ2V0QXR0cmlidXRlKCJocmVmIil9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSxhKXt2YXIgaT1lLmdldEF0dHJpYnV0ZSgiaHJlZiIpLHI9U3UoZS5nZXRBdHRyaWJ1dGUoInRpdGxlIikpO3ImJihyPScgIicrcisnIicpO3ZhciBzLG47c3dpdGNoKGEubGlua1JlZmVyZW5jZVN0eWxlKXtjYXNlImNvbGxhcHNlZCI6cz0iWyIrdCsiXVtdIixuPSJbIit0KyJdOiAiK2krcjticmVhaztjYXNlInNob3J0Y3V0IjpzPSJbIit0KyJdIixuPSJbIit0KyJdOiAiK2krcjticmVhaztkZWZhdWx0OnZhciBvPXRoaXMucmVmZXJlbmNlcy5sZW5ndGgrMTtzPSJbIit0KyJdWyIrbysiXSIsbj0iWyIrbysiXTogIitpK3J9cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5wdXNoKG4pLHN9LHJlZmVyZW5jZXM6W10sYXBwZW5kOmZ1bmN0aW9uKHQpe3ZhciBlPSIiO3JldHVybiB0aGlzLnJlZmVyZW5jZXMubGVuZ3RoJiYoZT1gCgpgK3RoaXMucmVmZXJlbmNlcy5qb2luKGAKYCkrYAoKYCx0aGlzLnJlZmVyZW5jZXM9W10pLGV9fSxXMi5lbXBoYXNpcz17ZmlsdGVyOlsiZW0iLCJpIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlLGEpe3JldHVybiB0LnRyaW0oKT9hLmVtRGVsaW1pdGVyK3QrYS5lbURlbGltaXRlcjoiIn19LFcyLnN0cm9uZz17ZmlsdGVyOlsic3Ryb25nIiwiYiJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQsZSxhKXtyZXR1cm4gdC50cmltKCk/YS5zdHJvbmdEZWxpbWl0ZXIrdCthLnN0cm9uZ0RlbGltaXRlcjoiIn19LFcyLmNvZGU9e2ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT10LnByZXZpb3VzU2libGluZ3x8dC5uZXh0U2libGluZyxhPXQucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJQUkUiJiYhZTtyZXR1cm4gdC5ub2RlTmFtZT09PSJDT0RFIiYmIWF9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiIiO3Q9dC5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIik7Zm9yKHZhciBlPS9eYHxeIC4qP1teIF0uKiAkfGAkLy50ZXN0KHQpPyIgIjoiIixhPSJgIixpPXQubWF0Y2goL2ArL2dtKXx8W107aS5pbmRleE9mKGEpIT09LTE7KWE9YSsiYCI7cmV0dXJuIGErZSt0K2UrYX19LFcyLmltYWdlPXtmaWx0ZXI6ImltZyIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlKXt2YXIgYT1TdShlLmdldEF0dHJpYnV0ZSgiYWx0IikpLGk9ZS5nZXRBdHRyaWJ1dGUoInNyYyIpfHwiIixyPVN1KGUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKSxzPXI/JyAiJytyKyciJzoiIjtyZXR1cm4gaT8iIVsiK2ErIl0oIitpK3MrIikiOiIifX07TDNlLnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKHQsZSl7dGhpcy5hcnJheS51bnNoaWZ0KGUpfSxrZWVwOmZ1bmN0aW9uKHQpe3RoaXMuX2tlZXAudW5zaGlmdCh7ZmlsdGVyOnQscmVwbGFjZW1lbnQ6dGhpcy5rZWVwUmVwbGFjZW1lbnR9KX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuX3JlbW92ZS51bnNoaWZ0KHtmaWx0ZXI6dCxyZXBsYWNlbWVudDpmdW5jdGlvbigpe3JldHVybiIifX0pfSxmb3JOb2RlOmZ1bmN0aW9uKHQpe2lmKHQuaXNCbGFuaylyZXR1cm4gdGhpcy5ibGFua1J1bGU7dmFyIGU7cmV0dXJuKGU9dyQodGhpcy5hcnJheSx0LHRoaXMub3B0aW9ucykpfHwoZT13JCh0aGlzLl9rZWVwLHQsdGhpcy5vcHRpb25zKSl8fChlPXckKHRoaXMuX3JlbW92ZSx0LHRoaXMub3B0aW9ucykpP2U6dGhpcy5kZWZhdWx0UnVsZX0sZm9yRWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuYXJyYXkubGVuZ3RoO2UrKyl0KHRoaXMuYXJyYXlbZV0sZSl9fTt6JD10eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e307S090PVlPdCgpP3okLkRPTVBhcnNlcjpaT3QoKTtzUnQ9QXJyYXkucHJvdG90eXBlLnJlZHVjZSxuUnQ9W1svXFwvZywiXFxcXCJdLFsvXCovZywiXFwqIl0sWy9eLS9nLCJcXC0iXSxbL15cKyAvZywiXFwrICJdLFsvXig9KykvZywiXFwkMSJdLFsvXigjezEsNn0pIC9nLCJcXCQxICJdLFsvYC9nLCJcXGAiXSxbL15+fn4vZywiXFx+fn4iXSxbL1xbL2csIlxcWyJdLFsvXF0vZywiXFxdIl0sWy9ePi9nLCJcXD4iXSxbL18vZywiXFxfIl0sWy9eKFxkKylcLiAvZywiJDFcXC4gIl1dO0N1LnByb3RvdHlwZT17dHVybmRvd246ZnVuY3Rpb24odCl7aWYoIWNSdCh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKHQrIiBpcyBub3QgYSBzdHJpbmcsIG9yIGFuIGVsZW1lbnQvZG9jdW1lbnQvZnJhZ21lbnQgbm9kZS4iKTtpZih0PT09IiIpcmV0dXJuIiI7dmFyIGU9RDNlLmNhbGwodGhpcyxuZXcgUU90KHQsdGhpcy5vcHRpb25zKSk7cmV0dXJuIG9SdC5jYWxsKHRoaXMsZSl9LHVzZTpmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMudXNlKHRbZV0pO2Vsc2UgaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpdCh0aGlzKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoInBsdWdpbiBtdXN0IGJlIGEgRnVuY3Rpb24gb3IgYW4gQXJyYXkgb2YgRnVuY3Rpb25zIik7cmV0dXJuIHRoaXN9LGFkZFJ1bGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5ydWxlcy5hZGQodCxlKSx0aGlzfSxrZWVwOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJ1bGVzLmtlZXAodCksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJ1bGVzLnJlbW92ZSh0KSx0aGlzfSxlc2NhcGU6ZnVuY3Rpb24odCl7cmV0dXJuIG5SdC5yZWR1Y2UoZnVuY3Rpb24oZSxhKXtyZXR1cm4gZS5yZXBsYWNlKGFbMF0sYVsxXSl9LHQpfX07X3U9Q3V9KTt2YXIgbzU9e307R2UobzUse2dmbTooKT0+RjNlLGhpZ2hsaWdodGVkQ29kZUJsb2NrOigpPT5DJCxzdHJpa2V0aHJvdWdoOigpPT5fJCx0YWJsZXM6KCk9PlQkLHRhc2tMaXN0SXRlbXM6KCk9PkwkfSk7ZnVuY3Rpb24gQyQodCl7dC5hZGRSdWxlKCJoaWdobGlnaHRlZENvZGVCbG9jayIse2ZpbHRlcjpmdW5jdGlvbihlKXt2YXIgYT1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGUubm9kZU5hbWU9PT0iRElWIiYmSTNlLnRlc3QoZS5jbGFzc05hbWUpJiZhJiZhLm5vZGVOYW1lPT09IlBSRSJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsYSxpKXt2YXIgcj1hLmNsYXNzTmFtZXx8IiIscz0oci5tYXRjaChJM2UpfHxbbnVsbCwiIl0pWzFdO3JldHVybmAKCmAraS5mZW5jZStzK2AKYCthLmZpcnN0Q2hpbGQudGV4dENvbnRlbnQrYApgK2kuZmVuY2UrYAoKYH19KX1mdW5jdGlvbiBfJCh0KXt0LmFkZFJ1bGUoInN0cmlrZXRocm91Z2giLHtmaWx0ZXI6WyJkZWwiLCJzIiwic3RyaWtlIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIn4iK2UrIn4ifX0pfWZ1bmN0aW9uIFMkKHQpe3ZhciBlPXQucGFyZW50Tm9kZTtyZXR1cm4gZS5ub2RlTmFtZT09PSJUSEVBRCJ8fGUuZmlyc3RDaGlsZD09PXQmJihlLm5vZGVOYW1lPT09IlRBQkxFInx8aFJ0KGUpKSYmcFJ0LmNhbGwodC5jaGlsZE5vZGVzLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lPT09IlRIIn0pfWZ1bmN0aW9uIGhSdCh0KXt2YXIgZT10LnByZXZpb3VzU2libGluZztyZXR1cm4gdC5ub2RlTmFtZT09PSJUQk9EWSImJighZXx8ZS5ub2RlTmFtZT09PSJUSEVBRCImJi9eXHMqJC9pLnRlc3QoZS50ZXh0Q29udGVudCkpfWZ1bmN0aW9uIE4zZSh0LGUpe3ZhciBhPWRSdC5jYWxsKGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLGUpLGk9IiAiO3JldHVybiBhPT09MCYmKGk9InwgIiksaSt0KyIgfCJ9ZnVuY3Rpb24gVCQodCl7dC5rZWVwKGZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lPT09IlRBQkxFIiYmIVMkKGEucm93c1swXSl9KTtmb3IodmFyIGUgaW4gWjMpdC5hZGRSdWxlKGUsWjNbZV0pfWZ1bmN0aW9uIEwkKHQpe3QuYWRkUnVsZSgidGFza0xpc3RJdGVtcyIse2ZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS50eXBlPT09ImNoZWNrYm94IiYmZS5wYXJlbnROb2RlLm5vZGVOYW1lPT09IkxJIn0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSxhKXtyZXR1cm4oYS5jaGVja2VkPyJbeF0iOiJbIF0iKSsiICJ9fSl9ZnVuY3Rpb24gRjNlKHQpe3QudXNlKFtDJCxfJCxUJCxMJF0pfXZhciBJM2UsZFJ0LHBSdCxaMyxPM2U9YigoKT0+e0kzZT0vaGlnaGxpZ2h0LSg/OnRleHR8c291cmNlKS0oW2EtejAtOV0rKS87ZFJ0PUFycmF5LnByb3RvdHlwZS5pbmRleE9mLHBSdD1BcnJheS5wcm90b3R5cGUuZXZlcnksWjM9e307WjMudGFibGVDZWxsPXtmaWx0ZXI6WyJ0aCIsInRkIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gTjNlKHQsZSl9fSxaMy50YWJsZVJvdz17ZmlsdGVyOiJ0ciIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxlKXt2YXIgYT0iIixpPXtsZWZ0OiI6LS0iLHJpZ2h0OiItLToiLGNlbnRlcjoiOi06In07aWYoUyQoZSkpZm9yKHZhciByPTA7cjxlLmNoaWxkTm9kZXMubGVuZ3RoO3IrKyl7dmFyIHM9Ii0tLSIsbj0oZS5jaGlsZE5vZGVzW3JdLmdldEF0dHJpYnV0ZSgiYWxpZ24iKXx8IiIpLnRvTG93ZXJDYXNlKCk7biYmKHM9aVtuXXx8cyksYSs9TjNlKHMsZS5jaGlsZE5vZGVzW3JdKX1yZXR1cm5gCmArdCsoYT9gCmArYToiIil9fSxaMy50YWJsZT17ZmlsdGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVOYW1lPT09IlRBQkxFIiYmUyQodC5yb3dzWzBdKX0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKGAKCmAsYApgKSxgCgpgK3QrYAoKYH19LFozLnRhYmxlU2VjdGlvbj17ZmlsdGVyOlsidGhlYWQiLCJ0Ym9keSIsInRmb290Il0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fX0pO3ZhciAkJCxBJD1iKCgpPT57JCQ9ajEoQ2llKCksMSk7c3JlKCk7cG9lKCk7Rm9lKCk7Wm9lKCk7eTNlKCk7dzNlKCk7UDNlKCk7TzNlKCl9KTt2YXIgVHUsQjNlPWIoKCk9PntBJCgpO1R1PWNsYXNzIHR7c3RhdGljIGFzeW5jIGNyZWF0ZUZyb21NYXJrZG93blN0cmluZyhlKXtsZXQgYT1uZXcgdDtyZXR1cm4gYXdhaXQgYS51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSksYX1hc3luYyB1cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl7bGV0IGEsaT1hd2FpdCBGNigpLnVzZShIMykudXNlKEIzKS51c2UoVjMsWyJ5YW1sIiwidG9tbCJdKS51c2UoWTMpLnVzZShHMykudXNlKCgpPT5yPT57Y29uc29sZS5kaXIocik7bGV0IHM9ci5jaGlsZHJlbi5maW5kKG49Pm4udHlwZT09PSJ5YW1sIik7cyYmKGE9cy52YWx1ZSl9KS5wcm9jZXNzKGUpO3RoaXMuaHRtbD1pLnRvU3RyaW5nKCksYT90aGlzLmZyb250bWF0dGVyRGF0YT1hd2FpdCAkJC55YW1sU3RyaW5nVG9PYmplY3QoYSk6dGhpcy5mcm9udG1hdHRlckRhdGE9e319fX0pO3ZhciBYMz17fTtHZShYMyx7U21hcnRNYXJrZG93bjooKT0+RCR9KTt2YXIgRCQsRSQ9YigoKT0+e0EkKCk7QjNlKCk7RCQ9Y2xhc3MgdHtzdGF0aWMgYXN5bmMgZWFzeU1hcmtkb3duVG9IdG1sKGUpe3JldHVybihhd2FpdCBuZXcgdCgpLmdldE1kUGFyc2VkUmVzdWx0RnJvbU1hcmtkb3duKGUpKS5odG1sfWNvbnN0cnVjdG9yKCl7fWFzeW5jIGdldE1kUGFyc2VkUmVzdWx0RnJvbU1hcmtkb3duKGUpe3JldHVybiBhd2FpdCBUdS5jcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcoZSl9aHRtbFRvTWFya2Rvd24oZSl7bGV0IGE9bmV3IF91KHtoZWFkaW5nU3R5bGU6ImF0eCIsY29kZUJsb2NrU3R5bGU6ImZlbmNlZCJ9KTtyZXR1cm4gYS51c2UobzUuZ2ZtKSxhLnR1cm5kb3duKGUpfX19KTt2YXIgVzNlPXB0KEZpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShGaSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksRmkuUGF0aEVycm9yPUZpLlRva2VuRGF0YT12b2lkIDAsRmkucGFyc2U9RiQsRmkuY29tcGlsZT1tUnQsRmkubWF0Y2g9YlJ0LEZpLnBhdGhUb1JlZ2V4cD1WM2UsRmkuc3RyaW5naWZ5PXhSdDt2YXIgUCQ9Ii8iLEkkPXQ9PnQsSDNlPS9eWyRfXHB7SURfU3RhcnR9XSQvdSxOJD0vXlskXHUyMDBjXHUyMDBkXHB7SURfQ29udGludWV9XSQvdSx1UnQ9eyJ7IjoieyIsIn0iOiJ9IiwiKCI6IigiLCIpIjoiKSIsIlsiOiJbIiwiXSI6Il0iLCIrIjoiKyIsIj8iOiI/IiwiISI6IiEifTtmdW5jdGlvbiBmUnQodCl7cmV0dXJuIHQucmVwbGFjZSgvW3t9KClcW1xdKz8hOipcXF0vZywiXFwkJiIpfWZ1bmN0aW9uIElyKHQpe3JldHVybiB0LnJlcGxhY2UoL1suKyo/XiR7fSgpW1xdfC9cXF0vZywiXFwkJiIpfXZhciBMdT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMudG9rZW5zPWUsdGhpcy5vcmlnaW5hbFBhdGg9YX19O0ZpLlRva2VuRGF0YT1MdTt2YXIgRDA9Y2xhc3MgZXh0ZW5kcyBUeXBlRXJyb3J7Y29uc3RydWN0b3IoZSxhKXtsZXQgaT1lO2EmJihpKz1gOiAke2F9YCksaSs9IjsgdmlzaXQgaHR0cHM6Ly9naXQubmV3L3BhdGhUb1JlZ2V4cEVycm9yIGZvciBpbmZvIixzdXBlcihpKSx0aGlzLm9yaWdpbmFsUGF0aD1hfX07RmkuUGF0aEVycm9yPUQwO2Z1bmN0aW9uIEYkKHQsZT17fSl7bGV0e2VuY29kZVBhdGg6YT1JJH09ZSxpPVsuLi50XSxyPVtdLHM9MCxuPTA7ZnVuY3Rpb24gbygpe2xldCBjPSIiO2lmKEgzZS50ZXN0KGlbc10pKWRvIGMrPWlbcysrXTt3aGlsZShOJC50ZXN0KGlbc10pKTtlbHNlIGlmKGlbc109PT0nIicpe2xldCBwPXM7Zm9yKDtzKys8aS5sZW5ndGg7KXtpZihpW3NdPT09JyInKXtzKysscD0wO2JyZWFrfWlbc109PT0iXFwiJiZzKyssYys9aVtzXX1pZihwKXRocm93IG5ldyBEMChgVW50ZXJtaW5hdGVkIHF1b3RlIGF0IGluZGV4ICR7cH1gLHQpfWlmKCFjKXRocm93IG5ldyBEMChgTWlzc2luZyBwYXJhbWV0ZXIgbmFtZSBhdCBpbmRleCAke3N9YCx0KTtyZXR1cm4gY31mb3IoO3M8aS5sZW5ndGg7KXtsZXQgYz1pW3NdLHA9dVJ0W2NdO3A/ci5wdXNoKHt0eXBlOnAsaW5kZXg6cysrLHZhbHVlOmN9KTpjPT09IlxcIj9yLnB1c2goe3R5cGU6ImVzY2FwZSIsaW5kZXg6cysrLHZhbHVlOmlbcysrXX0pOmM9PT0iOiI/ci5wdXNoKHt0eXBlOiJwYXJhbSIsaW5kZXg6cysrLHZhbHVlOm8oKX0pOmM9PT0iKiI/ci5wdXNoKHt0eXBlOiJ3aWxkY2FyZCIsaW5kZXg6cysrLHZhbHVlOm8oKX0pOnIucHVzaCh7dHlwZToiY2hhciIsaW5kZXg6cysrLHZhbHVlOmN9KX1yLnB1c2goe3R5cGU6ImVuZCIsaW5kZXg6cyx2YWx1ZToiIn0pO2Z1bmN0aW9uIGQoYyl7bGV0IHA9W107Zm9yKDs7KXtsZXQgbD1yW24rK107aWYobC50eXBlPT09YylicmVhaztpZihsLnR5cGU9PT0iY2hhciJ8fGwudHlwZT09PSJlc2NhcGUiKXtsZXQgZj1sLnZhbHVlLGc9cltuXTtmb3IoO2cudHlwZT09PSJjaGFyInx8Zy50eXBlPT09ImVzY2FwZSI7KWYrPWcudmFsdWUsZz1yWysrbl07cC5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTphKGYpfSk7Y29udGludWV9aWYobC50eXBlPT09InBhcmFtInx8bC50eXBlPT09IndpbGRjYXJkIil7cC5wdXNoKHt0eXBlOmwudHlwZSxuYW1lOmwudmFsdWV9KTtjb250aW51ZX1pZihsLnR5cGU9PT0ieyIpe3AucHVzaCh7dHlwZToiZ3JvdXAiLHRva2VuczpkKCJ9Iil9KTtjb250aW51ZX10aHJvdyBuZXcgRDAoYFVuZXhwZWN0ZWQgJHtsLnR5cGV9IGF0IGluZGV4ICR7bC5pbmRleH0sIGV4cGVjdGVkICR7Y31gLHQpfXJldHVybiBwfXJldHVybiBuZXcgTHUoZCgiZW5kIiksdCl9ZnVuY3Rpb24gbVJ0KHQsZT17fSl7bGV0e2VuY29kZTphPWVuY29kZVVSSUNvbXBvbmVudCxkZWxpbWl0ZXI6aT1QJH09ZSxyPXR5cGVvZiB0PT0ib2JqZWN0Ij90OkYkKHQsZSkscz1xM2Uoci50b2tlbnMsaSxhKTtyZXR1cm4gZnVuY3Rpb24obz17fSl7bGV0W2QsLi4uY109cyhvKTtpZihjLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHBhcmFtZXRlcnM6ICR7Yy5qb2luKCIsICIpfWApO3JldHVybiBkfX1mdW5jdGlvbiBxM2UodCxlLGEpe2xldCBpPXQubWFwKHI9PmdSdChyLGUsYSkpO3JldHVybiByPT57bGV0IHM9WyIiXTtmb3IobGV0IG4gb2YgaSl7bGV0W28sLi4uZF09bihyKTtzWzBdKz1vLHMucHVzaCguLi5kKX1yZXR1cm4gc319ZnVuY3Rpb24gZ1J0KHQsZSxhKXtpZih0LnR5cGU9PT0idGV4dCIpcmV0dXJuKCk9Plt0LnZhbHVlXTtpZih0LnR5cGU9PT0iZ3JvdXAiKXtsZXQgcj1xM2UodC50b2tlbnMsZSxhKTtyZXR1cm4gcz0+e2xldFtuLC4uLm9dPXIocyk7cmV0dXJuIG8ubGVuZ3RoP1siIl06W25dfX1sZXQgaT1hfHxJJDtyZXR1cm4gdC50eXBlPT09IndpbGRjYXJkIiYmYSE9PSExP3I9PntsZXQgcz1yW3QubmFtZV07aWYocz09bnVsbClyZXR1cm5bIiIsdC5uYW1lXTtpZighQXJyYXkuaXNBcnJheShzKXx8cy5sZW5ndGg9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke3QubmFtZX0iIHRvIGJlIGEgbm9uLWVtcHR5IGFycmF5YCk7cmV0dXJuW3MubWFwKChuLG8pPT57aWYodHlwZW9mIG4hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke3QubmFtZX0vJHtvfSIgdG8gYmUgYSBzdHJpbmdgKTtyZXR1cm4gaShuKX0pLmpvaW4oZSldfTpyPT57bGV0IHM9clt0Lm5hbWVdO2lmKHM9PW51bGwpcmV0dXJuWyIiLHQubmFtZV07aWYodHlwZW9mIHMhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICIke3QubmFtZX0iIHRvIGJlIGEgc3RyaW5nYCk7cmV0dXJuW2kocyldfX1mdW5jdGlvbiBiUnQodCxlPXt9KXtsZXR7ZGVjb2RlOmE9ZGVjb2RlVVJJQ29tcG9uZW50LGRlbGltaXRlcjppPVAkfT1lLHtyZWdleHA6cixrZXlzOnN9PVYzZSh0LGUpLG49cy5tYXAobz0+YT09PSExP0kkOm8udHlwZT09PSJwYXJhbSI/YTpkPT5kLnNwbGl0KGkpLm1hcChhKSk7cmV0dXJuIGZ1bmN0aW9uKGQpe2xldCBjPXIuZXhlYyhkKTtpZighYylyZXR1cm4hMTtsZXQgcD1jWzBdLGw9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGY9MTtmPGMubGVuZ3RoO2YrKyl7aWYoY1tmXT09PXZvaWQgMCljb250aW51ZTtsZXQgZz1zW2YtMV0seT1uW2YtMV07bFtnLm5hbWVdPXkoY1tmXSl9cmV0dXJue3BhdGg6cCxwYXJhbXM6bH19fWZ1bmN0aW9uIFYzZSh0LGU9e30pe2xldHtkZWxpbWl0ZXI6YT1QJCxlbmQ6aT0hMCxzZW5zaXRpdmU6cj0hMSx0cmFpbGluZzpzPSEwfT1lLG49W10sbz1yPyIiOiJpIixkPVtdO2ZvcihsZXQgbCBvZiBqM2UodCxbXSkpe2xldCBmPXR5cGVvZiBsPT0ib2JqZWN0Ij9sOkYkKGwsZSk7Zm9yKGxldCBnIG9mICR1KGYudG9rZW5zLDAsW10pKWQucHVzaCh2UnQoZyxhLG4sZi5vcmlnaW5hbFBhdGgpKX1sZXQgYz1gXig/OiR7ZC5qb2luKCJ8Iil9KWA7cmV0dXJuIHMmJihjKz1gKD86JHtJcihhKX0kKT9gKSxjKz1pPyIkIjpgKD89JHtJcihhKX18JClgLHtyZWdleHA6bmV3IFJlZ0V4cChjLG8pLGtleXM6bn19ZnVuY3Rpb24gajNlKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGEgb2YgdClqM2UoYSxlKTtlbHNlIGUucHVzaCh0KTtyZXR1cm4gZX1mdW5jdGlvbiokdSh0LGUsYSl7aWYoZT09PXQubGVuZ3RoKXJldHVybiB5aWVsZCBhO2xldCBpPXRbZV07aWYoaS50eXBlPT09Imdyb3VwIilmb3IobGV0IHIgb2YgJHUoaS50b2tlbnMsMCxhLnNsaWNlKCkpKXlpZWxkKiR1KHQsZSsxLHIpO2Vsc2UgYS5wdXNoKGkpO3lpZWxkKiR1KHQsZSsxLGEpfWZ1bmN0aW9uIHZSdCh0LGUsYSxpKXtsZXQgcj0iIixzPSIiLG49ITA7Zm9yKGxldCBvIG9mIHQpe2lmKG8udHlwZT09PSJ0ZXh0Iil7cis9SXIoby52YWx1ZSkscys9by52YWx1ZSxufHwobj1vLnZhbHVlLmluY2x1ZGVzKGUpKTtjb250aW51ZX1pZihvLnR5cGU9PT0icGFyYW0ifHxvLnR5cGU9PT0id2lsZGNhcmQiKXtpZighbiYmIXMpdGhyb3cgbmV3IEQwKGBNaXNzaW5nIHRleHQgYmVmb3JlICIke28ubmFtZX0iICR7by50eXBlfWAsaSk7by50eXBlPT09InBhcmFtIj9yKz1gKCR7eVJ0KGUsbj8iIjpzKX0rKWA6cis9IihbXFxzXFxTXSspIixhLnB1c2gobykscz0iIixuPSExO2NvbnRpbnVlfX1yZXR1cm4gcn1mdW5jdGlvbiB5UnQodCxlKXtyZXR1cm4gZS5sZW5ndGg8Mj90Lmxlbmd0aDwyP2BbXiR7SXIodCtlKX1dYDpgKD86KD8hJHtJcih0KX0pW14ke0lyKGUpfV0pYDp0Lmxlbmd0aDwyP2AoPzooPyEke0lyKGUpfSlbXiR7SXIodCl9XSlgOmAoPzooPyEke0lyKGUpfXwke0lyKHQpfSlbXFxzXFxTXSlgfWZ1bmN0aW9uIFUzZSh0KXtsZXQgZT0iIixhPTA7ZnVuY3Rpb24gaShyKXtyZXR1cm4gd1J0KHIpJiZNUnQodFthXSk/cjpKU09OLnN0cmluZ2lmeShyKX1mb3IoO2E8dC5sZW5ndGg7KXtsZXQgcj10W2ErK107aWYoci50eXBlPT09InRleHQiKXtlKz1mUnQoci52YWx1ZSk7Y29udGludWV9aWYoci50eXBlPT09Imdyb3VwIil7ZSs9YHske1UzZShyLnRva2Vucyl9fWA7Y29udGludWV9aWYoci50eXBlPT09InBhcmFtIil7ZSs9YDoke2koci5uYW1lKX1gO2NvbnRpbnVlfWlmKHIudHlwZT09PSJ3aWxkY2FyZCIpe2UrPWAqJHtpKHIubmFtZSl9YDtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKGBVbmtub3duIHRva2VuIHR5cGU6ICR7ci50eXBlfWApfXJldHVybiBlfWZ1bmN0aW9uIHhSdCh0KXtyZXR1cm4gVTNlKHQudG9rZW5zKX1mdW5jdGlvbiB3UnQodCl7bGV0W2UsLi4uYV09dDtyZXR1cm4gSDNlLnRlc3QoZSkmJmEuZXZlcnkoaT0+TiQudGVzdChpKSl9ZnVuY3Rpb24gTVJ0KHQpe3JldHVybiB0JiZ0LnR5cGU9PT0idGV4dCI/IU4kLnRlc3QodC52YWx1ZVswXSk6ITB9fSk7dmFyIE8kLFIkPWIoKCk9PntlNigpO0FpKCk7TyQ9ajEoVzNlKCksMSl9KTt2YXIgQXUsRzNlPWIoKCk9PntSJCgpO0F1PWNsYXNze2NvbnN0cnVjdG9yKCl7fWdldEFsbEFzT2JqZWN0KCl7bGV0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGUuZW50cmllcygpKX1zZXRRdWVyeVBhcmFtKGUsYSxpPSJyZXBsYWNlIil7dmFyIHI9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyLnNldChlLGEpLGk9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IityLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIrci50b1N0cmluZygpKX1kZWxldGVRdWVyeVBhcmFtKGUsYT0icmVwbGFjZSIpe3ZhciBpPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7aS5kZWxldGUoZSksYT09PSJwdXNoIj9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsIj8iK2kudG9TdHJpbmcoKSk6aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxudWxsLCI/IitpLnRvU3RyaW5nKCkpfWdldFF1ZXJ5UGFyYW0oZSl7cmV0dXJuIHRoaXMuZ2V0QWxsQXNPYmplY3QoKVtlXX19fSk7dmFyIFRIMSxCJCxZM2U9YigoKT0+e1IkKCk7RzNlKCk7VEgxPXQ9Pntjb25zb2xlLmxvZyhgJWNbUm91dGVyXSVjICR7dH1gLCJjb2xvcjogcmdiKDI1NSwgMTA1LCAxMDApOyIsImNvbG9yOiBpbmhlcml0Iil9LEIkPWNsYXNzIHR7Y29uc3RydWN0b3IoZSxhPSIiKXt0aGlzLm9wdGlvbnM9e2RlYnVnOiExfSx0aGlzLnF1ZXJ5UGFyYW1zPW5ldyBBdSx0aGlzLnJvdXRlcz1bXSx0aGlzLm9wdGlvbnM9ey4uLnRoaXMub3B0aW9ucywuLi5lfSx0aGlzLmJhc2VQYXRoPWEsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyPWk9PntpLnByZXZlbnREZWZhdWx0KCksdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lcil9Y3JlYXRlU3ViUm91dGVyKGUsYSl7bGV0IGk9YCR7dGhpcy5iYXNlUGF0aH0ke2V9YDtyZXR1cm4gbmV3IHQoey4uLnRoaXMub3B0aW9ucywuLi5hfSxpKX1hc3luYyBwdXNoVXJsKGU9Ii8iLGE9e30pe2xldCBpPWAke3RoaXMuYmFzZVBhdGh9JHtlfWA7aSE9PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZT93aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoYSx3aW5kb3cuZG9jdW1lbnQudGl0bGUsaSk6d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKGEsd2luZG93LmRvY3VtZW50LnRpdGxlLGkpLGF3YWl0IHRoaXMuX2hhbmRsZVJvdXRlU3RhdGUoKX1vbihlLGEpe2xldCBpPWAke3RoaXMuYmFzZVBhdGh9JHtlfWAscj17bWF0Y2hGdW5jdGlvbjpPJC5tYXRjaChpKSxoYW5kbGVyOmF9O3JldHVybiB0aGlzLnJvdXRlcy5wdXNoKHIpLCgpPT57dGhpcy5yb3V0ZXMuc3BsaWNlKHRoaXMucm91dGVzLmluZGV4T2YociksMSl9fWFzeW5jIF9oYW5kbGVSb3V0ZVN0YXRlKCl7bGV0IGU9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLGE9dGhpcy5yb3V0ZXMuZmlsdGVyKGk9PiEhaS5tYXRjaEZ1bmN0aW9uKGUpKTtmb3IobGV0IGkgb2YgYSl7bGV0IHI9aS5tYXRjaEZ1bmN0aW9uKGUpO2kuaGFuZGxlcih7Li4uci52YWx1ZU9mKCkscXVlcnlQYXJhbXM6dGhpcy5xdWVyeVBhcmFtcy5nZXRBbGxBc09iamVjdCgpfSl9fWRlc3Ryb3koKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lciksdGhpcy5yb3V0ZXM9W119fX0pO3ZhciBXbj17fTtHZShXbix7U21hcnRSb3V0ZXI6KCk9PkIkfSk7dmFyIEgkPWIoKCk9PntZM2UoKX0pO3ZhciBaM2U9YigoKT0+e2QzKCk7djMoKX0pO2Z1bmN0aW9uIE5yKHQsZSl7cmV0dXJuIHQ+Pj5lfHQ8PDMyLWV9ZnVuY3Rpb24gX1J0KHQsZSl7bGV0IGE9ZVswXSxpPWVbMV0scj1lWzJdLHM9ZVszXSxuPWVbNF0sbz1lWzVdLGQ9ZVs2XSxjPWVbN107Zm9yKGxldCBwPTA7cDw2NDtwKyspe2lmKHA+PTE2KXtsZXQgeD1Ocih0W3AtMTVdLDcpXk5yKHRbcC0xNV0sMTgpXnRbcC0xNV0+Pj4zLE09TnIodFtwLTJdLDE3KV5Ocih0W3AtMl0sMTkpXnRbcC0yXT4+PjEwO3RbcF09dFtwLTE2XSt4K3RbcC03XStNPj4+MH1sZXQgbD1OcihuLDYpXk5yKG4sMTEpXk5yKG4sMjUpLGY9biZvXn5uJmQsZz1jK2wrZitTUnRbcF0rdFtwXT4+PjAseT1OcihhLDIpXk5yKGEsMTMpXk5yKGEsMjIpLHY9YSZpXmEmcl5pJnIsbT15K3Y+Pj4wO2M9ZCxkPW8sbz1uLG49cytnPj4+MCxzPXIscj1pLGk9YSxhPWcrbT4+PjB9ZVswXT1lWzBdK2E+Pj4wLGVbMV09ZVsxXStpPj4+MCxlWzJdPWVbMl0rcj4+PjAsZVszXT1lWzNdK3M+Pj4wLGVbNF09ZVs0XStuPj4+MCxlWzVdPWVbNV0rbz4+PjAsZVs2XT1lWzZdK2Q+Pj4wLGVbN109ZVs3XStjPj4+MH1mdW5jdGlvbiBxJCh0KXtsZXQgZT1bLi4uQ1J0XSxhPXQubGVuZ3RoLGk9YSo4LHI9YSU2NDw1Nj81Ni1hJTY0OjEyMC1hJTY0LHM9bmV3IFVpbnQ4QXJyYXkoYStyKzgpO3Muc2V0KHQpLHNbYV09MTI4O2xldCBuPW5ldyBEYXRhVmlldyhzLmJ1ZmZlcik7bi5zZXRVaW50MzIocy5sZW5ndGgtOCwwLCExKSxuLnNldFVpbnQzMihzLmxlbmd0aC00LGk+Pj4wLCExKTtmb3IobGV0IGQ9MDtkPHMubGVuZ3RoO2QrPTY0KXtsZXQgYz1uZXcgQXJyYXkoNjQpO2ZvcihsZXQgcD0wO3A8MTY7cCsrKWNbcF09bi5nZXRVaW50MzIoZCtwKjQsITEpO19SdChjLGUpfWxldCBvPSIiO2ZvcihsZXQgZD0wO2Q8ODtkKyspbys9ZVtkXS50b1N0cmluZygxNikucGFkU3RhcnQoOCwiMCIpO3JldHVybiBvfXZhciBTUnQsQ1J0LFgzZT1iKCgpPT57U1J0PVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLENSdD1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdfSk7dmFyIGw1PXt9O0dlKGw1LHttZDVGcm9tU3RyaW5nOigpPT5FUnQsc2hhMjU2RnJvbUJ1ZmZlcjooKT0+TFJ0LHNoYTI1NkZyb21GaWxlOigpPT5EUnQsc2hhMjU2RnJvbVN0cmVhbTooKT0+QVJ0LHNoYTI1NkZyb21TdHJpbmc6KCk9PkozZSxzaGEyNTZGcm9tU3RyaW5nU3luYzooKT0+VFJ0LHNoYTI2NUZyb21PYmplY3Q6KCk9PiRSdH0pO3ZhciBLM2UsUTNlLEozZSxUUnQsTFJ0LCRSdCxBUnQsRFJ0LEVSdCxlbGU9YigoKT0+e1ozZSgpO1gzZSgpO0szZT10PT57bGV0IGU9W10sYT1uZXcgRGF0YVZpZXcodCk7Zm9yKGxldCBpPTA7aTxhLmJ5dGVMZW5ndGg7aSs9NCl7bGV0IHM9YS5nZXRVaW50MzIoaSkudG9TdHJpbmcoMTYpLG49IjAwMDAwMDAwIixvPShuK3MpLnNsaWNlKC1uLmxlbmd0aCk7ZS5wdXNoKG8pfXJldHVybiBlLmpvaW4oIiIpfSxRM2U9KCk9PnR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8uc3VidGxlIT09dm9pZCAwLEozZT1hc3luYyB0PT57bGV0IGU9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpO2lmKFEzZSgpKXtsZXQgYT1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsZSk7cmV0dXJuIEszZShhKX1lbHNlIHJldHVybiBxJChlKX0sVFJ0PXQ9Pnt0aHJvdyBjb25zb2xlLndhcm4oInNoYTI1NkZyb21TdHJpbmdTeW5jIGlzIG5vdCB0cnVseSBzeW5jaHJvbm91cyBpbiBicm93c2VyIGVudmlyb25tZW50IiksbmV3IEVycm9yKCJzaGEyNTZGcm9tU3RyaW5nU3luYyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFVzZSBzaGEyNTZGcm9tU3RyaW5nIGluc3RlYWQuIil9LExSdD1hc3luYyB0PT57aWYoUTNlKCkpe2xldCBlO2lmKHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgcj10O2U9ci5idWZmZXIuc2xpY2Uoci5ieXRlT2Zmc2V0LHIuYnl0ZU9mZnNldCtyLmJ5dGVMZW5ndGgpfWVsc2UgZT10O2xldCBhPWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixlKTtyZXR1cm4gSzNlKGEpfWVsc2V7bGV0IGU9dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/dDpuZXcgVWludDhBcnJheSh0KTtyZXR1cm4gcSQoZSl9fSwkUnQ9YXN5bmMgdD0+e2xldCBlPVMxLnN0cmluZ2lmeSh0KTtyZXR1cm4gYXdhaXQgSjNlKGUpfSxBUnQ9dD0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sRFJ0PWFzeW5jIHQ9Pnt0aHJvdyBuZXcgRXJyb3IoInNoYTI1NkZyb21GaWxlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpfSxFUnQ9YXN5bmMgdD0+e3Rocm93IG5ldyBFcnJvcigibWQ1RnJvbVN0cmluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFdlYiBDcnlwdG8gQVBJIGRvZXMgbm90IHN1cHBvcnQgTUQ1LiIpfX0pO3ZhciB0bGU9YigoKT0+e2MyKCl9KTt2YXIgYWxlPWIoKCk9Pnt9KTt2YXIgViQsaWxlPWIoKCk9Pnt0bGUoKTthbGUoKTtWJD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZShlKXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShlLm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKGUud2ViVXJsQXJnLGUuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZShlLGEpe2lmKCF0aGlzLmlzTm9kZSYmIXRoaXMuaXNEZW5vJiYhdGhpcy5pc0J1bil7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBzZXJ2ZXIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dDogJHtlfS4gVGhpcyBkb2VzIG5vdCB0aHJvdy5gKTtyZXR1cm59bGV0IGk9YXdhaXQgbmV3IEZ1bmN0aW9uKGByZXR1cm4gaW1wb3J0KCcke2V9JylgKSgpO3JldHVybiBhJiZhd2FpdCBhKGkpLGl9YXN5bmMgZ2V0U2FmZVdlYk1vZHVsZShlLGEpe2lmKCF0aGlzLmlzQnJvd3Nlcil7Y29uc29sZS5lcnJvcigiWW91IHRyaWVkIHRvIGxvYWQgYSB3ZWIgbW9kdWxlIGluIGEgd3JvbmcgY29udGV4dCIpO3JldHVybn1pZih0aGlzLmxvYWRlZFNjcmlwdHMuaW5jbHVkZXMoZSkpcmV0dXJuIGEoKTt0aGlzLmxvYWRlZFNjcmlwdHMucHVzaChlKTtsZXQgaT1CZS5kZWZlcigpO2lmKGdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cylnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMoZSksaS5yZXNvbHZlKCk7ZWxzZXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtyLm9ubG9hZD0oKT0+e2kucmVzb2x2ZSgpfSxyLnNyYz1lLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocil9cmV0dXJuIGF3YWl0IGkucHJvbWlzZSxhKCl9Z2V0IHJ1bnRpbWVFbnYoKXtyZXR1cm4gdHlwZW9mIGdsb2JhbFRoaXMuRGVubzwidSImJnR5cGVvZiBnbG9iYWxUaGlzLkRlbm8/LnZlcnNpb248InUiPyJkZW5vIjp0eXBlb2YgZ2xvYmFsVGhpcy5CdW48InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5CdW4/LnZlcnNpb248InUiPyJidW4iOnR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3M8InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPy52ZXJzaW9ucz8ubm9kZTwidSI/Im5vZGUiOih0eXBlb2YgZ2xvYmFsVGhpcy53aW5kb3c8InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5kb2N1bWVudDwidSIsImJyb3dzZXIiKX1nZXQgaXNCcm93c2VyKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJicm93c2VyIn1nZXQgaXNOb2RlKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJub2RlIn1nZXQgaXNEZW5vKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJkZW5vIn1nZXQgaXNCdW4oKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09ImJ1biJ9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBub2RlVmVyc2lvbigpe3JldHVybiB0aGlzLmlzTm9kZT9wcm9jZXNzLnZlcnNpb246InVuZGVmaW5lZCJ9Z2V0IGRlbm9WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNEZW5vP2dsb2JhbFRoaXMuRGVuby52ZXJzaW9uLmRlbm86InVuZGVmaW5lZCJ9Z2V0IGJ1blZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc0J1bj9nbG9iYWxUaGlzLkJ1bi52ZXJzaW9uOiJ1bmRlZmluZWQifWFzeW5jIGdldFNhZmVNb2R1bGVGb3IoZSxhLGkpe2xldCByO2lmKEFycmF5LmlzQXJyYXkoZSk/cj1lLmZsYXRNYXAocz0+cz09PSJzZXJ2ZXIiP1sibm9kZSIsImRlbm8iLCJidW4iXTpbc10pOmU9PT0ic2VydmVyIj9yPVsibm9kZSIsImRlbm8iLCJidW4iXTpyPVtlXSwhci5pbmNsdWRlcyh0aGlzLnJ1bnRpbWVFbnYpKXtjb25zb2xlLndhcm4oYE1vZHVsZSAiJHthfSIgcmVxdWVzdGVkIGZvciBydW50aW1lKHMpIFske3Iuam9pbigiLCAiKX1dIGJ1dCBjdXJyZW50IHJ1bnRpbWUgaXMgIiR7dGhpcy5ydW50aW1lRW52fSIuIFNraXBwaW5nIGxvYWQuYCk7cmV0dXJufWlmKHRoaXMuaXNOb2RlfHx0aGlzLmlzRGVub3x8dGhpcy5pc0J1bilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZShhKTtpZih0aGlzLmlzQnJvd3Nlcil7aWYoIWkpe2NvbnNvbGUuZXJyb3IoYEJyb3dzZXIgbW9kdWxlIGxvYWQgcmVxdWlyZXMgZ2V0RnVuY3Rpb24gcGFyYW1ldGVyIGZvciAiJHthfSJgKTtyZXR1cm59cmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZShhLGkpfX1nZXQgaXNDSSgpe3JldHVybiB0aGlzLmlzTm9kZT8hIXByb2Nlc3MuZW52LkNJOiExfWFzeW5jIGlzTWFjQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0iZGFyd2luIjohMX1hc3luYyBpc1dpbmRvd3NBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJ3aW4zMiI6ITF9YXN5bmMgaXNMaW51eEFzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImxpbnV4IjohMX1hc3luYyBwcmludEVudigpe3RoaXMuaXNOb2RlPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBOT0RFIiksY29uc29sZS5sb2coIm5vZGUgdmVyc2lvbiBpcyAiK3RoaXMubm9kZVZlcnNpb24pKTp0aGlzLmlzRGVubz8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gREVOTyIpLGNvbnNvbGUubG9nKCJkZW5vIHZlcnNpb24gaXMgIit0aGlzLmRlbm9WZXJzaW9uKSk6dGhpcy5pc0J1bj8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlVOIiksY29uc29sZS5sb2coImJ1biB2ZXJzaW9uIGlzICIrdGhpcy5idW5WZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciBqJD17fTtHZShqJCx7U21hcnRlbnY6KCk9PlYkfSk7dmFyIHJsZT1iKCgpPT57aWxlKCl9KTt2YXIgRHUsc2xlLEV1LFUkPWIoKCk9PntybGUoKTt1MygpO0R1PWoxKHFDKCksMSksc2xlPWoxKFZDKCksMSksRXU9c2xlLmRlZmF1bHR9KTtmdW5jdGlvbiBOUnQodCl7cmV0dXJuIHR5cGVvZiBCdWZmZXI8InUiP0J1ZmZlci5mcm9tKHQpLnRvU3RyaW5nKCJiYXNlNjQiKTpidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4udCkpfWZ1bmN0aW9uIEZSdCh0KXtpZih0eXBlb2YgQnVmZmVyPCJ1Iil7bGV0IGU9QnVmZmVyLmZyb20odCwiYmFzZTY0Iik7cmV0dXJuIG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfXJldHVybiBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGF0b2IodCkpLm1hcChlPT5lLmNoYXJDb2RlQXQoMCkpKX1mdW5jdGlvbiBHJCh0LGUpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0LFB1LGUpfWZ1bmN0aW9uIFkkKHQpe3JldHVybiBKU09OLnBhcnNlKHQsbmxlKX1mdW5jdGlvbiBPUnQodCl7cmV0dXJuIGxsZSh0KSYmdC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZXJCh0LmRhdGEpfWZ1bmN0aW9uIFJSdCh0KXtyZXR1cm4gbGxlKHQpJiZ0LnR5cGU9PT0iQnVmZmVyIiYmKG9sZSh0LmRhdGEpfHxXJCh0LmRhdGEpKXx8dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl9ZnVuY3Rpb24gb2xlKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfWZ1bmN0aW9uIFckKHQpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyJ9ZnVuY3Rpb24gbGxlKHQpe3JldHVybiB0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsfXZhciBQdSxubGUsY2xlPWIoKCk9PntVJCgpO1B1PSh0LGUpPT57aWYoUlJ0KGUpKXtsZXQgYTtpZigiZGF0YSJpbiBlJiZvbGUoZS5kYXRhKSlhPW5ldyBVaW50OEFycmF5KGUuZGF0YSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSlhPWU7ZWxzZSByZXR1cm4gZTtyZXR1cm57dHlwZToiRW5jb2RlZEJ1ZmZlciIsZGF0YToiYmFzZTY0OiIrTlJ0KGEpfX1yZXR1cm4gZX0sbmxlPSh0LGUpPT57aWYoT1J0KGUpJiZXJChlLmRhdGEpJiZlLmRhdGEuc3RhcnRzV2l0aCgiYmFzZTY0OiIpKXtsZXQgYT1lLmRhdGEuc2xpY2UoNyk7cmV0dXJuIEZSdChhKX1yZXR1cm4gZX19KTt2YXIgYzU9e307R2UoYzUse1NtYXJ0anNvbjooKT0+WCQsZGVlcEVxdWFsSnNvbkxTdHJpbmdzOigpPT5HUnQsZGVlcEVxdWFsT2JqZWN0czooKT0+ZGxlLGZvbGREZWM6KCk9PldSdCxwYXJzZTooKT0+SXUscGFyc2VCYXNlNjQ6KCk9PlVSdCxwYXJzZUpzb25MOigpPT5aJCxzdGFibGVPbmVXYXlTdHJpbmdpZnk6KCk9PnFSdCxzdHJpbmdpZnk6KCk9PkUwLHN0cmluZ2lmeUJhc2U2NDooKT0+alJ0LHN0cmluZ2lmeUpzb25MOigpPT5IUnQsc3RyaW5naWZ5UHJldHR5OigpPT5WUnR9KTt2YXIgSXUsWiQsSFJ0LHFSdCxFMCxWUnQsalJ0LFVSdCxYJCxXUnQsZGxlLEdSdCxwbGU9YigoKT0+e1UkKCk7Y2xlKCk7SXU9WSQsWiQ9dD0+dC5zcGxpdChgCmApLnJlZHVjZSgoaSxyKT0+e2xldCBzPXIudHJpbSgpO3JldHVybiBzLmxlbmd0aD4wJiZpLnB1c2goSXUocykpLGl9LFtdKSxIUnQ9dD0+dC5tYXAoZT0+RTAoZSkpLmpvaW4oYApgKSxxUnQ9KHQsZSxhPXt9KT0+e2xldCBpPW5ldyBXZWFrU2V0LHI9bz0+e2lmKG89PT1udWxsfHx0eXBlb2YgbyE9Im9iamVjdCIpcmV0dXJuIG87bGV0IGQ9UHUoIiIsbyk7aWYoZCYmZC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgZC5kYXRhPT0ic3RyaW5nIilyZXR1cm4gZDtpZihpLmhhcyhvKSlyZXR1cm4iX19jeWNsZV9fIjtpZihpLmFkZChvKSxBcnJheS5pc0FycmF5KG8pKXJldHVybiBvLm1hcChwPT5yKHApKTtsZXQgYz17fTtmb3IobGV0IHAgb2YgT2JqZWN0LmtleXMobykpdHJ5e2NbcF09cihvW3BdKX1jYXRjaHtjW3BdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBjfSxzPXIodCksbj17Li4uYSxjeWNsZXM6ITB9O2lmKGUmJiFuLmNtcCl7bGV0IG89bmV3IE1hcDtlLmZvckVhY2goKGQsYyk9Pm8uc2V0KGQsYykpLG4uY21wPShkLGMpPT57bGV0IHA9by5oYXMoZC5rZXkpP28uZ2V0KGQua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbD1vLmhhcyhjLmtleSk/by5nZXQoYy5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gcCE9PWw/cC1sOmQua2V5PGMua2V5Py0xOmQua2V5PmMua2V5PzE6MH19cmV0dXJuIEV1KHMsbil9LEUwPSh0LGUsYT17fSk9PntsZXQgaT1HJCh0KTt0PUpTT04ucGFyc2UoaSk7bGV0IHI9ey4uLmF9O2lmKGUmJiFyLmNtcCl7bGV0IG49bmV3IE1hcDtlLmZvckVhY2goKG8sZCk9Pm4uc2V0KG8sZCkpLHIuY21wPShvLGQpPT57bGV0IGM9bi5oYXMoby5rZXkpP24uZ2V0KG8ua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscD1uLmhhcyhkLmtleSk/bi5nZXQoZC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYyE9PXA/Yy1wOm8ua2V5PGQua2V5Py0xOm8ua2V5PmQua2V5PzE6MH19cmV0dXJuIEV1KHQscil9LFZSdD10PT57bGV0IGU9RTAodCksYT1KU09OLnBhcnNlKGUpO3JldHVybiBKU09OLnN0cmluZ2lmeShhLG51bGwsMil9LGpSdD0oLi4udCk9PntsZXQgZT1FMCguLi50KTtyZXR1cm4gazIuYmFzZTY0LmVuY29kZVVyaShlKX0sVVJ0PXQ9PntsZXQgZT1rMi5iYXNlNjQsaT0oZS5kZWNvZGVVcml8fGUuZGVjb2RlKSh0KTtyZXR1cm4gSXUoaSl9LFgkPWNsYXNzIHR7c3RhdGljIGVuZm9sZEZyb21PYmplY3QoZSl7bGV0IGE9bmV3IHRoaXMsaT1hLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCByIGluIGUpaS5pbmRleE9mKHIpIT09LTEmJihhW3JdPWVbcl0pO3JldHVybiBhfXN0YXRpYyBlbmZvbGRGcm9tSnNvbihlKXtsZXQgYT1JdShlKTtyZXR1cm4gdGhpcy5lbmZvbGRGcm9tT2JqZWN0KGEpfXNhdmVhYmxlUHJvcGVydGllcztmb2xkVG9PYmplY3QoKXtsZXQgZT1uZXcgU2V0O3JldHVybiBlLmFkZCh0aGlzKSx0aGlzLmZvbGRUb09iamVjdEludGVybmFsKGUpfWZvbGRUb09iamVjdEludGVybmFsKGUpe2xldCBhPXt9LGk9cz0+e2lmKHMgaW5zdGFuY2VvZiB0KXtpZihlLmhhcyhzKSl0aHJvdyBuZXcgRXJyb3IoImN5Y2xlIGRldGVjdGVkIik7cmV0dXJuIGUuYWRkKHMpLHMuZm9sZFRvT2JqZWN0SW50ZXJuYWwoZSl9cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/cy5tYXAobj0+aShuKSk6RHUuZGVmYXVsdChzKX0scj10aGlzLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBzIG9mIHIpe2xldCBuPXRoaXNbc107YVtzXT1pKG4pfXJldHVybiBhfWZvbGRUb0pzb24oKXtsZXQgZT10aGlzLmZvbGRUb09iamVjdCgpO3JldHVybiBFMChlKX19LFdSdD0oKT0+KHQsZSk9PntsZXQgYT1TdHJpbmcoZS5uYW1lKTtlLmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uKCl7dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fCh0aGlzLnNhdmVhYmxlUHJvcGVydGllcz1bXSksdGhpcy5zYXZlYWJsZVByb3BlcnRpZXMuaW5jbHVkZXMoYSl8fHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2goYSl9KX0sZGxlPSh0LGUpPT57bGV0IGE9RTAodCksaT1FMChlKTtyZXR1cm4gYT09PWl9LEdSdD0odCxlKT0+e2xldCBhPVokKHQpLGk9WiQoZSk7cmV0dXJuIGRsZShhLGkpfX0pO3ZhciBOdT1iKCgpPT57ZWxlKCk7cGxlKCk7YzIoKTtBaSgpO2c2KCl9KTt2YXIgZDUsSyQ9YigoKT0+e051KCk7RnUoKTtkNT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuc3RhdGVQYXJ0UmVmPWUsdGhpcy5hY3Rpb25EZWY9YX10cmlnZ2VyKGUpe3JldHVybiB0aGlzLnN0YXRlUGFydFJlZi5kaXNwYXRjaEFjdGlvbih0aGlzLGUpfX19KTt2YXIgcDUsRnU9YigoKT0+e051KCk7SyQoKTtwNT1jbGFzc3tjb25zdHJ1Y3RvcihlLGEpe3RoaXMuc3RhdGU9bmV3IEF0LnJ4anMuU3ViamVjdCx0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZD1CZS5jdW11bGF0aXZlRGVmZXIoKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy53ZWJTdG9yZT1udWxsLHRoaXMubmFtZT1lLGEmJih0aGlzLndlYlN0b3JlT3B0aW9ucz1hKX1hc3luYyBpbml0KCl7aWYodGhpcy53ZWJTdG9yZU9wdGlvbnMpe3RoaXMud2ViU3RvcmU9bmV3IG5hLldlYlN0b3JlKHRoaXMud2ViU3RvcmVPcHRpb25zKSxhd2FpdCB0aGlzLndlYlN0b3JlLmluaXQoKTtsZXQgZT1hd2FpdCB0aGlzLndlYlN0b3JlLmdldChTdHJpbmcodGhpcy5uYW1lKSk7ZSYmdGhpcy52YWxpZGF0ZVN0YXRlKGUpJiYodGhpcy5zdGF0ZVN0b3JlPWUsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSl9fWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuc3RhdGVTdG9yZX1hc3luYyBzZXRTdGF0ZShlKXtpZighdGhpcy52YWxpZGF0ZVN0YXRlKGUpKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzdGF0ZSBzdHJ1Y3R1cmUgZm9yIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSdgKTtyZXR1cm4gdGhpcy53ZWJTdG9yZSYmYXdhaXQgdGhpcy53ZWJTdG9yZS5zZXQoU3RyaW5nKHRoaXMubmFtZSksZSksdGhpcy5zdGF0ZVN0b3JlPWUsYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKSx0aGlzLnN0YXRlU3RvcmV9dmFsaWRhdGVTdGF0ZShlKXtyZXR1cm4gZSE9bnVsbH1hc3luYyBub3RpZnlDaGFuZ2UoKXtpZighdGhpcy5zdGF0ZVN0b3JlKXJldHVybjtsZXQgYT1hd2FpdChhc3luYyBpPT5hd2FpdCBsNS5zaGEyNTZGcm9tU3RyaW5nKGM1LnN0YWJsZU9uZVdheVN0cmluZ2lmeShpKSkpKHRoaXMuc3RhdGVTdG9yZSk7dGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaCYmYT09PXRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2h8fCh0aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNoPWEsdGhpcy5zdGF0ZS5uZXh0KHRoaXMuc3RhdGVTdG9yZSkpfW5vdGlmeUNoYW5nZUN1bXVsYXRpdmUoKXt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uJiZjbGVhclRpbWVvdXQodGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1zZXRUaW1lb3V0KGFzeW5jKCk9Pnt0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPW51bGwsdGhpcy5zdGF0ZVN0b3JlJiZhd2FpdCB0aGlzLm5vdGlmeUNoYW5nZSgpfSwwKX1zZWxlY3QoZSl7cmV0dXJuIGV8fChlPWk9PmkpLHRoaXMuc3RhdGUucGlwZShBdC5yeGpzLm9wcy5zdGFydFdpdGgodGhpcy5nZXRTdGF0ZSgpKSxBdC5yeGpzLm9wcy5maWx0ZXIoaT0+aSE9PXZvaWQgMCksQXQucnhqcy5vcHMubWFwKGk9Pnt0cnl7cmV0dXJuIGUoaSl9Y2F0Y2gocil7Y29uc29sZS5lcnJvcihgU2VsZWN0b3IgZXJyb3IgaW4gc3RhdGUgcGFydCAnJHt0aGlzLm5hbWV9JzpgLHIpO3JldHVybn19KSl9Y3JlYXRlQWN0aW9uKGUpe3JldHVybiBuZXcgZDUodGhpcyxlKX1hc3luYyBkaXNwYXRjaEFjdGlvbihlLGEpe2F3YWl0IHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkLnByb21pc2U7bGV0IGk9YXdhaXQgZS5hY3Rpb25EZWYodGhpcyxhKTtyZXR1cm4gYXdhaXQgdGhpcy5zZXRTdGF0ZShpKSx0aGlzLmdldFN0YXRlKCl9YXN5bmMgd2FpdFVudGlsUHJlc2VudChlLGEpe2xldCBpPUJlLmRlZmVyKCkscj10aGlzLnNlbGVjdChlKSxzPSExLG49ci5zdWJzY3JpYmUoZD0+e2QmJiFzJiYocz0hMCxpLnJlc29sdmUoZCkpfSksbzthJiYobz1zZXRUaW1lb3V0KCgpPT57c3x8KHM9ITAsbi51bnN1YnNjcmliZSgpLGkucmVqZWN0KG5ldyBFcnJvcihgd2FpdFVudGlsUHJlc2VudCB0aW1lZCBvdXQgYWZ0ZXIgJHthfW1zYCkpKX0sYSkpO3RyeXtyZXR1cm4gYXdhaXQgaS5wcm9taXNlfWZpbmFsbHl7bi51bnN1YnNjcmliZSgpLG8mJmNsZWFyVGltZW91dChvKX19YXN5bmMgc3RhdGVTZXR1cChlKXtsZXQgYT1lKHRoaXMpO3RoaXMuY3VtdWxhdGl2ZURlZmVycmVkLmFkZFByb21pc2UoYSksYXdhaXQgdGhpcy5zZXRTdGF0ZShhd2FpdCBhKX19fSk7dmFyIFEkLGhsZT1iKCgpPT57TnUoKTtGdSgpO1EkPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zdGF0ZVBhcnRNYXA9e30sdGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb249bmV3IE1hcH1hc3luYyBnZXRTdGF0ZVBhcnQoZSxhLGk9InNvZnQiKXtsZXQgcj10aGlzLnBlbmRpbmdTdGF0ZVBhcnRDcmVhdGlvbi5nZXQoZSk7aWYocilyZXR1cm4gcjtsZXQgcz10aGlzLnN0YXRlUGFydE1hcFtlXTtpZihzKXN3aXRjaChpKXtjYXNlIm1hbmRhdG9yeSI6dGhyb3cgbmV3IEVycm9yKGBTdGF0ZSBwYXJ0ICcke2V9JyBhbHJlYWR5IGV4aXN0cywgYnV0IGluaXRNb2RlIGlzICdtYW5kYXRvcnknYCk7Y2FzZSJmb3JjZSI6YnJlYWs7ZGVmYXVsdDpyZXR1cm4gc31lbHNlIGlmKCFhKXRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHtlfScgZG9lcyBub3QgZXhpc3QgYW5kIG5vIGluaXRpYWwgc3RhdGUgcHJvdmlkZWRgKTtsZXQgbj10aGlzLmNyZWF0ZVN0YXRlUGFydChlLGEsaSk7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uc2V0KGUsbik7dHJ5e3JldHVybiBhd2FpdCBufWZpbmFsbHl7dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZGVsZXRlKGUpfX1hc3luYyBjcmVhdGVTdGF0ZVBhcnQoZSxhLGk9InNvZnQiKXtsZXQgcj1uZXcgcDUoZSxpPT09InBlcnNpc3RlbnQiP3tkYk5hbWU6InNtYXJ0c3RhdGUiLHN0b3JlTmFtZTplfTpudWxsKTthd2FpdCByLmluaXQoKTtsZXQgcz1yLmdldFN0YXRlKCk7cmV0dXJuIGk9PT0icGVyc2lzdGVudCImJnMhPT12b2lkIDA/YXdhaXQgci5zZXRTdGF0ZSh7Li4uYSwuLi5zfSk6YXdhaXQgci5zZXRTdGF0ZShhKSx0aGlzLnN0YXRlUGFydE1hcFtlXT1yLHJ9fX0pO3ZhciBHbj17fTtHZShHbix7U21hcnRzdGF0ZTooKT0+USQsU3RhdGVBY3Rpb246KCk9PmQ1LFN0YXRlUGFydDooKT0+cDV9KTt2YXIgSiQ9YigoKT0+e2hsZSgpO0Z1KCk7SyQoKX0pO3ZhciB1bGU9YigoKT0+e30pO3ZhciBlQSxmbGU9YigoKT0+e3VsZSgpO2VBPWNsYXNzIHR7c3RhdGljIGNyZWF0ZUZyb21VcmwoZSxhKXtsZXQgaT1uZXcgVVJMKGUpLHI9e30scz1bXTtpLnNlYXJjaCYmaS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikubWFwKGM9PntzLnB1c2goe2tleTpjLnNwbGl0KCI9IilbMF0sdmFsdWU6Yy5zcGxpdCgiPSIpWzFdfSl9KTtmb3IobGV0IGMgb2YgcylyW2Mua2V5XT1jLnZhbHVlO2lmKGE/LnNlYXJjaFBhcmFtcylmb3IobGV0IGMgb2YgT2JqZWN0LmtleXMoYS5zZWFyY2hQYXJhbXMpKXJbY109YS5zZWFyY2hQYXJhbXNbY107bGV0IG49aS5wYXRobmFtZXx8IiI7aWYoT2JqZWN0LmtleXMocikubGVuZ3RoPjApe24rPSI/IjtsZXQgYz0hMDtmb3IobGV0IHAgb2YgT2JqZWN0LmtleXMocikpYz9jPSExOm4rPSImIixuKz1gJHtwfT0ke3JbcF19YH1sZXQgbz17Li4uaSxocmVmOmkuaHJlZixvcmlnaW46aS5vcmlnaW4scHJvdG9jb2w6aS5wcm90b2NvbCx1c2VybmFtZTppLnVzZXJuYW1lLHBhc3N3b3JkOmkucGFzc3dvcmQsaG9zdDppLmhvc3QsaG9zdG5hbWU6aS5ob3N0bmFtZSxwb3J0OmkucG9ydCxwYXRoOm4scGF0aG5hbWU6aS5wYXRobmFtZSxzZWFyY2g6aS5zZWFyY2gsc2VhcmNoUGFyYW1zOnIsaGFzaDppLmhhc2h9OyFvLnBvcnQmJm8ucHJvdG9jb2w9PT0iaHR0cHM6IiYmKG8ucG9ydD0iNDQzIiksIW8ucG9ydCYmby5wcm90b2NvbD09PSJodHRwOiImJihvLnBvcnQ9IjgwIik7bGV0IGQ9bmV3IHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oZCxvKSxkfXN0YXRpYyBjcmVhdGVGcm9tUGFyc2VkVXJsKGUpe2xldCBhPW5ldyB0O3JldHVybiBPYmplY3QuYXNzaWduKGEsZSksYX1jb25zdHJ1Y3Rvcigpe3RoaXMuc2VhcmNoUGFyYW1zPXt9fWNsb25lKCl7bGV0IGU9bmV3IHQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oZSx0aGlzKSxlLnNlYXJjaFBhcmFtcz17Li4udGhpcy5zZWFyY2hQYXJhbXN9LGV9c2V0KGUsYSl7cmV0dXJuIHRoaXNbZV09YSx0aGlzfXRvU3RyaW5nKCl7bGV0IGU9IiI7cmV0dXJuIHRoaXMudXNlcm5hbWUmJiF0aGlzLnBhc3N3b3JkJiYoZT1gJHt0aGlzLnVzZXJuYW1lfUBgKSx0aGlzLnVzZXJuYW1lJiZ0aGlzLnBhc3N3b3JkJiYoZT1gJHt0aGlzLnVzZXJuYW1lfToke3RoaXMucGFzc3dvcmR9QGApLGAke3RoaXMucHJvdG9jb2x9Ly8ke2V9JHt0aGlzLmhvc3RuYW1lfToke3RoaXMucG9ydH0ke3RoaXMucGF0aH1gfX19KTt2YXIgWW49e307R2UoWW4se1NtYXJ0dXJsOigpPT5lQX0pO3ZhciB0QT1iKCgpPT57ZmxlKCl9KTt2YXIgbWxlPWIoKCk9PntocigpO2QzKCk7djMoKTtjMigpO2c2KCl9KTt2YXIgaUE9e307R2UoaUEse1dlYlJlcXVlc3Q6KCk9PmFBfSk7dmFyIGFBLGdsZT1iKCgpPT57bWxlKCk7YUE9Y2xhc3N7Y29uc3RydWN0b3IoZT17fSl7dGhpcy5vcHRpb25zQXJnPWUsdGhpcy5jYWNoZVN0b3JlPW5ldyBuYS5XZWJTdG9yZSh7ZGJOYW1lOiJ3ZWJyZXF1ZXN0IixzdG9yZU5hbWU6IndlYnJlcXVlc3QifSksdGhpcy5vcHRpb25zPXtsb2dnaW5nOiEwLC4uLmV9fWFzeW5jIGdldEpzb24oZSxhPSExKXtsZXQgcj1hd2FpdChhd2FpdCB0aGlzLnJlcXVlc3QoZSx7bWV0aG9kOiJHRVQiLHVzZUNhY2hlOmF9KSkudGV4dCgpO3JldHVybiBTMS5wYXJzZShyKX1hc3luYyBwb3N0SnNvbihlLGEsaT0hMSl7bGV0IHM9YXdhaXQoYXdhaXQgdGhpcy5yZXF1ZXN0KGUse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OlMxLnN0cmluZ2lmeShhKSx1c2VDYWNoZTppfSkpLnRleHQoKTtyZXR1cm4gUzEucGFyc2Uocyl9YXN5bmMgcHV0SnNvbihlLGEsaT0hMSl7bGV0IHM9YXdhaXQoYXdhaXQgdGhpcy5yZXF1ZXN0KGUse21ldGhvZDoiUFVUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6UzEuc3RyaW5naWZ5KGEpfSkpLnRleHQoKTtyZXR1cm4gUzEucGFyc2Uocyl9YXN5bmMgZGVsZXRlSnNvbihlLGE9ITEpe2xldCByPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdChlLHtoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LG1ldGhvZDoiR0VUIn0pKS50ZXh0KCk7cmV0dXJuIFMxLnBhcnNlKHIpfWFzeW5jIHJlcXVlc3QoZSxhKXthPXt0aW1lb3V0TXM6NmU0LHVzZUNhY2hlOiExLC4uLmF9O2xldCBpPW5ldyBBYm9ydENvbnRyb2xsZXI7ZHQuZGVsYXlGb3IoYS50aW1lb3V0TXMpLnRoZW4oKCk9PntpLmFib3J0KCl9KTtsZXQgcj1CZS5kZWZlcigpLHM9ITE7aWYoYS51c2VDYWNoZSYmYXdhaXQgdGhpcy5jYWNoZVN0b3JlLmNoZWNrKGUpKXtsZXQgbz1hd2FpdCB0aGlzLmNhY2hlU3RvcmUuZ2V0KGUpO3IucmVzb2x2ZShuZXcgUmVzcG9uc2Uobyx7fSkpfWVsc2Ugci5yZXNvbHZlKG51bGwpO2xldCBuPWF3YWl0IGZldGNoKGUse3NpZ25hbDppLnNpZ25hbCxtZXRob2Q6YS5tZXRob2QsaGVhZGVyczp7Li4uYS5oZWFkZXJzfHx7fX0sYm9keTphLmJvZHl9KS5jYXRjaChhc3luYyBvPT5hLnVzZUNhY2hlJiZhd2FpdCByLnByb21pc2U/KHM9ITAsci5wcm9taXNlKTpvKTtpZihhLnVzZUNhY2hlJiZhd2FpdCByLnByb21pc2UmJm4uc3RhdHVzPT09NTAwJiYocz0hMCxuPWF3YWl0IHIucHJvbWlzZSksIXMmJmEudXNlQ2FjaGUmJm4uc3RhdHVzPDMwMCl7bGV0IG89YXdhaXQgbi5jbG9uZSgpLmFycmF5QnVmZmVyKCk7YXdhaXQgdGhpcy5jYWNoZVN0b3JlLnNldChlLG8pfXJldHVybiB0aGlzLmxvZyhgJHtlfSBhbnN3ZXJzIHdpdGggc3RhdHVzOiAke24uc3RhdHVzfWApLG59YXN5bmMgcmVxdWVzdE11bHRpRW5kcG9pbnQoZSxhKXtsZXQgaSxyPTA7QXJyYXkuaXNBcnJheShlKT9pPWU6aT1bZV07bGV0IHM9W10sbj1hc3luYyBjPT57cy5wdXNoKGMpLGM9PT0iNDI5IiYmKGNvbnNvbGUubG9nKCJnb3QgNDI5LCBzbyB3YWl0aW5nIGEgbGl0dGxlIGJpdC4iKSxhd2FpdCBkdC5kZWxheUZvcihNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTAwMSkrMWUzKSk7bGV0IHA9MDtmb3IobGV0IGwgb2YgcylsPT09YyYmcCsrO3A+MippLmxlbmd0aCpyJiZyKyt9LG89YXN5bmMgYz0+e2lmKCFjKXRocm93IG5ldyBFcnJvcigicmVxdWVzdCBmYWlsZWQgcGVybWFuZW50bHkiKTt0aGlzLmxvZyhgR2V0dGluZyAke2N9IHdpdGggbWV0aG9kICR7YS5tZXRob2R9YCk7bGV0IHA9YXdhaXQgZmV0Y2goYyx7bWV0aG9kOmEubWV0aG9kLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwuLi5hLmhlYWRlcnN8fHt9fSxib2R5OmEuYm9keX0pO3JldHVybiB0aGlzLmxvZyhgJHtjfSBhbnN3ZXJzIHdpdGggc3RhdHVzOiAke3Auc3RhdHVzfWApLHAuc3RhdHVzPj0yMDAmJnAuc3RhdHVzPDMwMD9wOihhd2FpdCBuKHAuc3RhdHVzLnRvU3RyaW5nKCkpLGF3YWl0IG8oaVtyXSkpfTtyZXR1cm4gYXdhaXQgbyhpW3JdKX1sb2coZSl7dGhpcy5vcHRpb25zLmxvZ2dpbmcmJmNvbnNvbGUubG9nKGUpfX19KTt2YXIgT3UsUDAsUnU9YigoKT0+e091PWNsYXNze2NsYWltKCl7aWYodGhpcy5jbGFpbWVkKXRocm93IG5ldyBFcnJvcigiRGVmZXJyZWQgYWxyZWFkeSBjbGFpbWVkIik7dGhpcy5jbGFpbWVkPSEwfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fWNvbnN0cnVjdG9yKCl7dGhpcy5jbGFpbWVkPSExLHRoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZSxhKT0+e3RoaXMucmVzb2x2ZT1pPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxlKGkpfSx0aGlzLnJlamVjdD1pPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLGEoaSl9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9fSxQMD0oKT0+bmV3IE91fSk7dmFyIEJ1LFhSdCxibGU9YigoKT0+e1J1KCk7QnU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXM9W10sdGhpcy5kZWZlcnJlZD1QMCgpLHRoaXMucHJvbWlzZT10aGlzLmRlZmVycmVkLnByb21pc2Usc2V0VGltZW91dChhc3luYygpPT57Zm9yKDt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMubGVuZ3RoPjA7KWF3YWl0IHRoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5zaGlmdCgpO3RoaXMuZGVmZXJyZWQucmVzb2x2ZSgpfSwwKX1hZGRQcm9taXNlKGUpe3RoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5wdXNoKGUpfX0sWFJ0PSgpPT5uZXcgQnV9KTt2YXIgSTA9e307R2UoSTAse0N1bXVsYXRpdmVEZWZlcnJlZDooKT0+QnUsRGVmZXJyZWQ6KCk9Pk91LGN1bXVsYXRpdmVEZWZlcjooKT0+WFJ0LGRlZmVyOigpPT5QMCxnZXRGaXJzdFRydWVPckZhbHNlOigpPT50QnQsbWFwOigpPT5KUnQscmVqZWN0ZWRQcm9taXNlOigpPT5RUnQscmVzb2x2ZWRQcm9taXNlOigpPT5LUnQsdGltZW91dEFuZENvbnRpbnVlOigpPT5lQnQsdGltZW91dFdyYXA6KCk9PnZsZX0pO3ZhciBLUnQsUVJ0LEpSdCx2bGUsZUJ0LHRCdCxyQT1iKCgpPT57UnUoKTtibGUoKTtSdSgpO0tSdD10PT5Qcm9taXNlLnJlc29sdmUodCksUVJ0PXQ9PlByb21pc2UucmVqZWN0KHQpLEpSdD1hc3luYyh0LGUpPT57bGV0IGE9W10saT1bXTtmb3IobGV0IHIgb2YgdCl7bGV0IHM9ZShyKTthLnB1c2gocykscy50aGVuKG49PntpLnB1c2gobil9KX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoYSksaX0sdmxlPWFzeW5jKHQsZSxhPSEwKT0+bmV3IFByb21pc2UoKGkscik9PntzZXRUaW1lb3V0KCgpPT57YT9yKG5ldyBFcnJvcigidGltZW91dCIpKTppKG51bGwpfSxlKSx0LnRoZW4oaSxyKX0pLGVCdD1hc3luYyh0LGU9NmU0KT0+dmxlKHQsZSwhMSksdEJ0PWFzeW5jIHQ9PntsZXQgZT1QMCgpO2ZvcihsZXQgYSBvZiB0KWEudGhlbihpPT57aT09PSEwJiZlLnJlc29sdmUoITApfSk7cmV0dXJuIFByb21pc2UuYWxsKHQpLnRoZW4oKCk9PntlLnJlc29sdmUoITEpfSksZS5wcm9taXNlfX0pO3ZhciBzQT17fTtHZShzQSx7VGltZW91dDooKT0+SHUsZGVsYXlGb3I6KCk9PnlsZSxkZWxheUZvclJhbmRvbTooKT0+YUJ0fSk7dmFyIHlsZSxhQnQsSHUseGxlPWIoKCk9PntyQSgpO3lsZT1hc3luYyh0LGUsYT0hMSk9Pihhd2FpdCBuZXcgSHUodCxudWxsLGEpLnByb21pc2UsZSksYUJ0PWFzeW5jKHQsZSxhLGk9ITEpPT4oYXdhaXQgeWxlKE1hdGgucmFuZG9tKCkqKGUtdCkrdCxudWxsLGkpLGEpLEh1PWNsYXNze2NvbnN0cnVjdG9yKGUsYSxpPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9ZSx0aGlzLl9kZWZlcnJlZD1QMCgpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShhKX0sZSksdGhpcy5zdGFydGVkPURhdGUubm93KCksaSYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgZT10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gZT4wP2U6MH19fSk7dmFyIHdsZT1iKCgpPT57fSk7dmFyIHF1PWIoKCk9PntGcigpfSk7dmFyIFZ1PWIoKCk9PntGcigpO0ZyKCl9KTt2YXIgTWxlPWIoKCk9PntGcigpfSk7dmFyIHpsZT1iKCgpPT57fSk7dmFyIGtsZT1iKCgpPT57RnIoKX0pO3ZhciBTbGU9YigoKT0+e0ZyKCl9KTt2YXIgQ2xlPWIoKCk9Pnt9KTt2YXIgX2xlPWIoKCk9Pnt9KTt2YXIgbkE9e307dmFyIGp1PWIoKCk9PntNbGUoKTt6bGUoKTtrbGUoKTtTbGUoKTtDbGUoKTtfbGUoKX0pO3ZhciBvQSxUbGU9YigoKT0+e2p1KCk7cXUoKTtWdSgpO29BPWNsYXNze319KTt2YXIgTGxlPWIoKCk9Pnt9KTt2YXIgJGxlPWIoKCk9Pnt9KTt2YXIgQWxlPWIoKCk9Pnt9KTt2YXIgRGxlPWIoKCk9Pnt9KTt2YXIgbEE9e307dmFyIGNBPWIoKCk9PntMbGUoKTskbGUoKTtBbGUoKTtEbGUoKX0pO3ZhciBFbGU9YigoKT0+e2RBKCk7anUoKTtjQSgpfSk7dmFyIFBsZT1iKCgpPT57fSk7dmFyIElsZT1iKCgpPT57VnUoKX0pO3ZhciBObGU9YigoKT0+e30pO3ZhciBVdT17fTtHZShVdSx7SUpvYjooKT0+b0F9KTt2YXIgZEE9YigoKT0+e3dsZSgpO3F1KCk7VnUoKTtUbGUoKTtFbGUoKTtQbGUoKTtJbGUoKTtObGUoKX0pO3ZhciBGbGU9YigoKT0+e30pO3ZhciBPbGU9YigoKT0+e30pO3ZhciBwQT17fTt2YXIgUmxlPWIoKCk9PntGbGUoKTtPbGUoKX0pO3ZhciBCbGU9YigoKT0+e30pO3ZhciBIbGU9YigoKT0+e30pO3ZhciBoQT17fTt2YXIgcWxlPWIoKCk9PntCbGUoKTtIbGUoKX0pO3ZhciB1QT1iKCgpPT57RnIoKX0pO3ZhciBWbGU9YigoKT0+e0ZyKCl9KTt2YXIgamxlPWIoKCk9Pnt1QSgpfSk7dmFyIGZBPXt9O3ZhciBVbGU9YigoKT0+e3VBKCk7VmxlKCk7amxlKCl9KTt2YXIgV2xlPWIoKCk9Pnt9KTt2YXIgR2xlPWIoKCk9Pnt9KTt2YXIgbUE9e307dmFyIFlsZT1iKCgpPT57V2xlKCk7R2xlKCl9KTt2YXIgZ0E9YigoKT0+e30pO3ZhciBiQSxabGU9YigoKT0+e2dBKCk7YkE9Y2xhc3N7fX0pO3ZhciBYbGU9YigoKT0+e30pO3ZhciBLbGU9YigoKT0+e30pO3ZhciBRbGU9YigoKT0+e30pO3ZhciBKbGU9YigoKT0+e30pO3ZhciBlY2U9YigoKT0+e30pO3ZhciB0Y2U9YigoKT0+e30pO3ZhciBhY2U9YigoKT0+e30pO3ZhciBpY2U9YigoKT0+e30pO3ZhciByY2U9YigoKT0+e30pO3ZhciBXdT17fTtHZShXdSx7SUNuYW1lRGVzY3JpcHRvcjooKT0+YkF9KTt2YXIgc2NlPWIoKCk9PntnQSgpO1psZSgpO1hsZSgpO0tsZSgpO1FsZSgpO0psZSgpO2VjZSgpO3RjZSgpO2FjZSgpO2ljZSgpO3JjZSgpfSk7dmFyIHZBPWIoKCk9PntxdSgpfSk7dmFyIG5jZT1iKCgpPT57dkEoKX0pO3ZhciB5QT17fTt2YXIgb2NlPWIoKCk9PntuY2UoKTt2QSgpfSk7dmFyIHhBPXt9O3ZhciBsY2U9YigoKT0+e30pO3ZhciBjY2U9YigoKT0+e30pO3ZhciBkY2U9YigoKT0+e30pO3ZhciBwY2U9YigoKT0+e30pO3ZhciB3QT17fTt2YXIgaGNlPWIoKCk9PntjY2UoKTtkY2UoKTtwY2UoKX0pO3ZhciB1Y2U9YigoKT0+e30pO3ZhciBNQT17fTtHZShNQSx7YnVzaW5lc3M6KCk9PlV1LGNvZGU6KCk9PnBBLGNvbnRhaW5lcjooKT0+aEEsY29udGVudDooKT0+ZkEsZGF0YWJhc2U6KCk9PmxBLGZpbmFuY2U6KCk9Pm5BLGdlbmVyYWw6KCk9Pm1BLG5ldHdvcms6KCk9Pld1LHNhYXM6KCk9PnlBLHN0b3JhZ2U6KCk9PnhBLHdlYnNpdGU6KCk9PndBfSk7dmFyIEZyPWIoKCk9PntkQSgpO1JsZSgpO3FsZSgpO2NBKCk7anUoKTtVbGUoKTtZbGUoKTtzY2UoKTtvY2UoKTtsY2UoKTtoY2UoKTt1Y2UoKX0pO3ZhciBNcz1iKCgpPT57eGxlKCk7ckEoKTtGcigpfSk7dmFyIEd1PWIoKCk9PntNcygpfSk7dmFyIFpuLGg1PWIoKCk9PntNcygpO1puPWNsYXNze2FwcGVuZFRvRG9tKCl7IXRoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50JiYhdGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUmJmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmKX1yZW1vdmVGcm9tRG9tKCl7dGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQ/dGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmKTp0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmdGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmKX19fSk7dmFyIE4wLFl1PWIoKCk9PntNcygpO0d1KCk7aDUoKTtOMD1jbGFzcyB0IGV4dGVuZHMgWm57c3RhdGljIGNyZWF0ZUNvbXBhbnlKc29uTGQoZSl7bGV0IGE9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiQ29ycG9yYXRpb24iLG5hbWU6ZS5uYW1lLGFsdGVybmF0ZU5hbWU6ZS5uYW1lLnJlcGxhY2UoIiBHbWJIIiwiIiksdXJsOmUuY29udGFjdC53ZWJzaXRlLGxvZ286ZS5jb250YWN0LmxvZ29VcmwsY29udGFjdFBvaW50OnsiQHR5cGUiOiJDb250YWN0UG9pbnQiLHRlbGVwaG9uZTplLmNvbnRhY3QucGhvbmUsY29udGFjdFR5cGU6ImN1c3RvbWVyIHNlcnZpY2UiLGFyZWFTZXJ2ZWQ6IkRFIixhdmFpbGFibGVMYW5ndWFnZTpbImVuIiwiR2VybWFuIl19LHNhbWVBczpbXX07cmV0dXJuIGUuY29udGFjdC5mYWNlYm9va1VybCYmYS5zYW1lQXMucHVzaChlLmNvbnRhY3QuZmFjZWJvb2tVcmwpLGUuY29udGFjdC50d2l0dGVyVXJsJiZhLnNhbWVBcy5wdXNoKGUuY29udGFjdC50d2l0dGVyVXJsKSxuZXcgdChhKX1zdGF0aWMgY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSl7bGV0IGE9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiTmV3c0FydGljbGUiLG1haW5FbnRpdHlPZlBhZ2U6eyJAdHlwZSI6IldlYlBhZ2UiLCJAaWQiOndpbmRvdy5sb2NhdGlvbi5ocmVmfSxoZWFkbGluZToiQXJ0aWNsZSBoZWFkbGluZSIsaW1hZ2U6W2UuZmVhdHVyZWRJbWFnZVVybF0sZGF0ZVB1Ymxpc2hlZDpuZXcgRGF0ZShlLnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxkYXRlTW9kaWZpZWQ6bmV3IERhdGUoZS50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksYXV0aG9yOnsiQHR5cGUiOiJQZXJzb24iLG5hbWU6YCR7ZS5hdXRob3IuZmlyc3ROYW1lfSAke2UuYXV0aG9yLnN1ck5hbWV9YH0scHVibGlzaGVyOnsiQHR5cGUiOiJPcmdhbml6YXRpb24iLG5hbWU6ZS5hdXRob3Iuc3VyTmFtZSxsb2dvOnsiQHR5cGUiOiJJbWFnZU9iamVjdCIsdXJsOmUuYXV0aG9yLnN1ck5hbWV9fSxkZXNjcmlwdGlvbjplLmF1dGhvci5maXJzdE5hbWV9O3JldHVybiBuZXcgdChhKX1zdGF0aWMgY3JlYXRlUHJvZHVjdEpzb25MZChlLGEpe2xldCBpPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IlNvZnR3YXJlQXBwbGljYXRpb24iLG5hbWU6ZS5uYW1lLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24sb3BlcmF0aW5nU3lzdGVtOmUub3MsYXBwbGljYXRpb25DYXRlZ29yeTplLmNhdGVnb3J5LG9mZmVyczp7IkB0eXBlIjoiT2ZmZXIiLG5hbWU6IlVzZXItYmFzZWQgUGxhbiIscHJpY2VTcGVjaWZpY2F0aW9uOnsiQHR5cGUiOiJQcm9wZXJ0eVZhbHVlU3BlY2lmaWNhdGlvbiIsdmFsdWVOYW1lOiJOdW1iZXIgb2YgVXNlcnMiLHZhbHVlUmVxdWlyZWQ6ITAscHJpY2U6IjQuOTkiLHByaWNlQ3VycmVuY3k6IkVVUiJ9fSxwdWJsaXNoZXI6dGhpcy5jcmVhdGVDb21wYW55SnNvbkxkKGEpLmVsZW1lbnRSZWYudGV4dENvbnRlbnQsc2NyZWVuc2hvdDoiaHR0cHM6Ly93d3cuc29jaWFsLmlvL3NjcmVlbnNob3QucG5nIix1cmw6Imh0dHBzOi8vd3d3LnNvY2lhbC5pby8ifTtyZXR1cm4gbmV3IHQoaSl9Y29uc3RydWN0b3IoZSl7c3VwZXIoKTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTthLnR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iLGEudGV4dD1KU09OLnN0cmluZ2lmeShlKSx0aGlzLmVsZW1lbnRSZWY9YX19fSk7dmFyIGxhLFp1PWIoKCk9PntNcygpO2g1KCk7bGE9Y2xhc3MgdCBleHRlbmRzIFpue3N0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyhlKXtsZXQgYT1bXTtyZXR1cm4gYS5wdXNoKG5ldyB0KCJvZzp1cmwiLGUudXJsKSksYS5wdXNoKG5ldyB0KCJvZzp0aXRsZSIsZS50aXRsZSkpLGEucHVzaChuZXcgdCgib2c6ZGVzY3JpcHRpb24iLGUuY29udGVudCkpLGEucHVzaChuZXcgdCgib2c6aW1hZ2UiLGUuZmVhdHVyZWRJbWFnZVVybCkpLGF9c3RhdGljIGNyZWF0ZVByb2R1Y3RPZ1RhZ3MoZSl7bGV0IGE9W107cmV0dXJuIGEucHVzaChuZXcgdCgib2c6dXJsIixnbG9iYWxUaGlzLmxvY2F0aW9uLmhyZWYpKSxhLnB1c2gobmV3IHQoIm9nOnRpdGxlIixgJHtlLm5hbWV9IC0gJHtlLnNsb2dhbn1gKSksYS5wdXNoKG5ldyB0KCJvZzpzaXRlX25hbWUiLGUubmFtZSkpLGEucHVzaChuZXcgdCgib2c6ZGVzY3JpcHRpb24iLGUuZGVzY3JpcHRpb24pKSxhLnB1c2gobmV3IHQoIm9nOmltYWdlIixlLmxvZ29MaW5rKSksYX1jb25zdHJ1Y3RvcihlLGEpe3N1cGVyKCk7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2kuc2V0QXR0cmlidXRlKCJwcm9wZXJ0eSIsZSksaS5jb250ZW50PWEsdGhpcy5lbGVtZW50UmVmPWl9fX0pO3ZhciBLMyx6QT1iKCgpPT57aDUoKTtZdSgpO1p1KCk7a0EoKTtNcygpO0szPWNsYXNze3NldCB0aXRsZShlKXt0aGlzLnRpdGxlU3RvcmU9ZSx0aGlzLnN0YXRlPT09ImVuYWJsZWQiJiYoZG9jdW1lbnQudGl0bGU9dGhpcy50aXRsZVN0b3JlKX1nZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy50aXRsZVN0b3JlfWNvbnN0cnVjdG9yKGUsYSl7dGhpcy50YWdzPVtdLHRoaXMuc3RhdGU9ImRpc2FibGVkIix0aGlzLnRhZ01hbmFnZXJSZWY9ZX1hZGRUYWcoZSl7aWYoZSBpbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgYSBvZiBlKXRoaXMuYWRkVGFnKGEpO2Vsc2UgdGhpcy50YWdzLnB1c2goZSksdGhpcy5zdGF0ZT09PSJlbmFibGVkIiYmZS5hcHBlbmRUb0RvbSgpfWFzeW5jIGFkZENvbXBhbnlJbmZvKGUpe3RoaXMuYWRkVGFnKE4wLmNyZWF0ZUNvbXBhbnlKc29uTGQoZSkpLHRoaXMuYWRkVGFnKG5ldyBsYSgib2c6dHlwZSIsImJ1c2luZXNzLmJ1c2luZXNzIikpLHRoaXMuYWRkVGFnKG5ldyBsYSgib2c6dGl0bGUiLGUubmFtZSkpLHRoaXMuYWRkVGFnKG5ldyBsYSgib2c6dXJsIixlLmNvbnRhY3Qud2Vic2l0ZSkpLHRoaXMuYWRkVGFnKG5ldyBsYSgib2c6aW1hZ2UiLGUuY29udGFjdC5sb2dvVXJsKSksdGhpcy5hZGRUYWcobmV3IGxhKCJidXNpbmVzczpjb250YWN0X2RhdGE6c3RyZWV0X2FkZHJlc3MiLGAke2UuY29udGFjdC5hZGRyZXNzLnN0cmVldE5hbWV9ICR7ZS5jb250YWN0LmFkZHJlc3MuaG91c2VOdW1iZXJ9YCkpLHRoaXMuYWRkVGFnKG5ldyBsYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOmxvY2FsaXR5IixlLmNvbnRhY3QuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IGxhKCJidXNpbmVzczpjb250YWN0X2RhdGE6cmVnaW9uIixlLmNvbnRhY3QuYWRkcmVzcy5jaXR5KSksdGhpcy5hZGRUYWcobmV3IGxhKCJidXNpbmVzczpjb250YWN0X2RhdGE6cG9zdGFsX2NvZGUiLGUuY29udGFjdC5hZGRyZXNzLnBvc3RhbENvZGUpKSx0aGlzLmFkZFRhZyhuZXcgbGEoImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpjb3VudHJ5X25hbWUiLGUuY29udGFjdC5hZGRyZXNzLmNvdW50cnkpKX1hZGROZXdzQXJ0aWNsZUluZm8oZSl7dGhpcy5hZGRUYWcoTjAuY3JlYXRlTmV3c0FydGljbGVKc29uTGQoZSkpLHRoaXMuYWRkVGFnKGxhLmNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKGUpKX1hZGRQcm9kdWN0SW5mbyhlLGEpe3RoaXMuYWRkVGFnKE4wLmNyZWF0ZVByb2R1Y3RKc29uTGQoZSxhKSksdGhpcy5hZGRUYWcobGEuY3JlYXRlUHJvZHVjdE9nVGFncyhlKSl9YXN5bmMgZW5hYmxlKCl7dGhpcy50aXRsZSYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGUpO2ZvcihsZXQgZSBvZiB0aGlzLnRhZ3MpZS5hcHBlbmRUb0RvbSgpO3RoaXMuc3RhdGU9ImVuYWJsZWQifWFzeW5jIGRpc2FibGUoKXtmb3IobGV0IGUgb2YgdGhpcy50YWdzKWUucmVtb3ZlRnJvbURvbSgpO3RoaXMuc3RhdGU9ImRpc2FibGVkIn19fSk7dmFyIGRpLFNBPWIoKCk9PntoNSgpO2RpPWNsYXNzIGV4dGVuZHMgWm57Y29uc3RydWN0b3IoZSxhKXtzdXBlcigpO2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTtpLm5hbWU9ZSxpLmNvbnRlbnQ9YSx0aGlzLmVsZW1lbnRSZWY9aX19fSk7dmFyIFh1LGtBPWIoKCk9Pnt6QSgpO01zKCk7R3UoKTtTQSgpO1l1KCk7WnUoKTtYdT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZ2xvYmFsTGV2ZWw9bmV3IEszKHRoaXMsImdsb2JhbCIpLHRoaXMuYmFzZUxldmVsPW5ldyBLMyh0aGlzLCJiYXNlIil9YXN5bmMgc2V0dXAoZSl7c3dpdGNoKHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBkaSgiZ29vZ2xlIiwibm90cmFuc2xhdGUiKSksdGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IGRpKCJyZXZpc2l0LWFmdGVyIiwiMSBkYXlzIikpLGUudHdpdHRlckhhbmRsZSYmKHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBkaSgidHdpdHRlcjpjYXJkIiwic3VtbWFyeV9sYXJnZV9pbWFnZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgZGkoInR3aXR0ZXI6c2l0ZSIsZS50d2l0dGVySGFuZGxlKSksdGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IGRpKCJ0d2l0dGVyOmNyZWF0b3IiLGUudHdpdHRlckhhbmRsZSkpKSx0aGlzLmJhc2VMZXZlbC50aXRsZT1lLnRpdGxlLGUuZGVzY3JpcHRpb24mJnRoaXMuYmFzZUxldmVsLmFkZFRhZyhuZXcgZGkoImRlc2NyaXB0aW9uIixlLmRlc2NyaXB0aW9uKSksZS5jYW5vbmljYWxEb21haW4mJnRoaXMuYmFzZUxldmVsLmFkZFRhZyhuZXcgZGkoImNhbm9uaWNhbCIsZS5jYW5vbmljYWxEb21haW4pKSwhMCl7Y2FzZShlLmxkQ29tcGFueSYmIWUubGRQcm9kdWN0KTp0aGlzLmJhc2VMZXZlbC5hZGRDb21wYW55SW5mbyhlLmxkQ29tcGFueSk7YnJlYWs7Y2FzZSEhZS5sZFByb2R1Y3Q6dGhpcy5iYXNlTGV2ZWwuYWRkUHJvZHVjdEluZm8oZS5sZFByb2R1Y3QsZS5sZENvbXBhbnkpO2JyZWFrfWF3YWl0IHRoaXMuZ2xvYmFsTGV2ZWwuZW5hYmxlKCksdGhpcy5hY3RpdmVMZXZlbD10aGlzLmJhc2VMZXZlbCxhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmVuYWJsZSgpfWFzeW5jIHNldFN1YlBhZ2VMZXZlbChlKXtsZXQgYT1uZXcgSzModGhpcywic3VicGFnZSIpO3JldHVybiBhLnRpdGxlPWUudGl0bGUsZS5kZXNjcmlwdGlvbiYmYS5hZGRUYWcobmV3IGRpKCJkZXNjcmlwdGlvbiIsZS5kZXNjcmlwdGlvbikpLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9YSxhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmVuYWJsZSgpLGF9YXN5bmMgcmV2ZXJ0VG9CYXNlTGV2ZWwoKXt0aGlzLmFjdGl2ZUxldmVsIT09dGhpcy5iYXNlTGV2ZWwmJihhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmRpc2FibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCkpfX19KTt2YXIgdTUsZmNlPWIoKCk9PntNcygpO0d1KCk7a0EoKTt6QSgpO3U1PWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMudGFnTWFuYWdlcj1uZXcgWHUsdGhpcy5yZWFkeURlZmVycmVkPUkwLmRlZmVyKCksdGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQ9STAuZGVmZXIoKSx0aGlzLnJlYWR5UHJvbWlzZT10aGlzLnJlYWR5RGVmZXJyZWQucHJvbWlzZSx0aGlzLnJlYWR5Rm9yU21hcnRzc3JQcm9taXNlPXRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnByb21pc2UsdGhpcy5vcHRpb25zPWUsdGhpcy5zZXR1cCgpLnRoZW4oKCk9Pnt0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpLHRoaXMub3B0aW9ucy5zbWFydHNzcldhaXRGb3JSZWFkeVNpZ25hbHx8dGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucmVzb2x2ZSgpfSl9YXN5bmMgc2V0dXAoZSl7ZSYmKHRoaXMub3B0aW9ucz1lKSxhd2FpdCB0aGlzLnRhZ01hbmFnZXIuc2V0dXAodGhpcy5vcHRpb25zLm1ldGFPYmplY3QpfXJldmVydFRvQmFzZUxldmVsKCl7dGhpcy50YWdNYW5hZ2VyLnJldmVydFRvQmFzZUxldmVsKCl9YXN5bmMgc2V0U3ViTGV2ZWwoZSl7cmV0dXJuIGF3YWl0IHRoaXMudGFnTWFuYWdlci5zZXRTdWJQYWdlTGV2ZWwoZSl9Zmxhc2hUaXRsZShlKXt9aW5mb3JtUmVhZHlGb3JTbWFydHNzcigpe3RoaXMub3B0aW9ucy5zbWFydHNzcldhaXRGb3JSZWFkeVNpZ25hbHx8Y29uc29sZS5lcnJvcigiWW91IGhhdmUgbm90IGluZGljYXRlZCB0aGF0IHlvdSBpbmZvcm0gc21hcnRzc3IgYnkgYSBkZWRpY2F0ZWQgc2lnbmFsISBQbGVhc2UgY29uc2lkZXIgZG9pbmcgc28hIiksdGhpcy5yZWFkeUZvclNtYXJ0c3NyRGVmZXJyZWQucmVzb2x2ZSgpfX19KTt2YXIgQ0EsbWNlPWIoKCk9PntNcygpO0NBPWNsYXNze319KTt2YXIgX0E9e307R2UoX0Ese0pzb25MZFRhZzooKT0+TjAsTWV0YVRhZzooKT0+ZGksT3BlbmdyYXBoVGFnOigpPT5sYSxUaXRsZTooKT0+Q0EsV2ViU2V0dXA6KCk9PnU1fSk7dmFyIEt1PWIoKCk9PntmY2UoKTtTQSgpO1p1KCk7WXUoKTttY2UoKX0pO3ZhciBnY2UsUXU9YigoKT0+e2hyKCk7SWsoKTtjMigpO0FpKCk7ckMoKTtnY2U9ajEobkMoKSwxKX0pO3ZhciBRMyxUQT1iKCgpPT57UXUoKTtRMz1jbGFzcyB0e2NvbnN0cnVjdG9yKCl7dGhpcy5tYXBPYmplY3Q9e319aXNVbmlxdWVLZXkoZSl7cmV0dXJuIXRoaXMubWFwT2JqZWN0W2VdfWFkZFRvTWFwKGUsYSxpKXtyZXR1cm4gdGhpcy5pc1VuaXF1ZUtleShlKXx8aSYmaS5mb3JjZT8odGhpcy5tYXBPYmplY3RbZV09YSwhMCk6ITF9Z2V0QnlLZXkoZSl7cmV0dXJuIHRoaXMubWFwT2JqZWN0W2VdfXJlbW92ZUZyb21NYXAoZSl7bGV0IGE9dGhpcy5nZXRCeUtleShlKTtyZXR1cm4gZGVsZXRlIHRoaXMubWFwT2JqZWN0W2VdLGF9Z2V0S2V5cygpe2xldCBlPVtdO2ZvcihsZXQgYSBpbiB0aGlzLm1hcE9iamVjdCl0aGlzLm1hcE9iamVjdFthXSYmZS5wdXNoKGEpO3JldHVybiBlfWNsZWFuKCl7dGhpcy5tYXBPYmplY3Q9e319Y29uY2F0KGUpe2xldCBhPW5ldyB0O2ZvcihsZXQgaSBvZiB0aGlzLmdldEtleXMoKSlhLmFkZFRvTWFwKGksdGhpcy5nZXRCeUtleShpKSk7Zm9yKGxldCBpIG9mIGUuZ2V0S2V5cygpKWEuYWRkVG9NYXAoaSxlLmdldEJ5S2V5KGkpLHtmb3JjZTohMH0pO3JldHVybiBhfWFkZEFsbEZyb21PdGhlcihlKXtmb3IobGV0IGEgb2YgZS5nZXRLZXlzKCkpdGhpcy5hZGRUb01hcChhLGUuZ2V0QnlLZXkoYSkse2ZvcmNlOiEwfSl9YXN5bmMgZmluZChlKXtmb3IobGV0IGEgb2YgdGhpcy5nZXRLZXlzKCkpe2xldCBpPXRoaXMuZ2V0QnlLZXkoYSk7aWYoYXdhaXQgZShpKSlyZXR1cm4gaX19fX0pO3ZhciByQnQsSnUsdmNlPWIoKCk9PntRdSgpO1RBKCk7ckJ0PSh0PSJ1bmkiKT0+YCR7dH14eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLGU9PntsZXQgYT1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKGU9PT0ieCI/YTphJjN8OCkudG9TdHJpbmcoMTYpfSksSnU9Y2xhc3MgdHtjb25zdHJ1Y3Rvcigpe3RoaXMuZmFzdE1hcD1uZXcgUTMsdGhpcy5ldmVudFN1YmplY3Q9bmV3IEF0LnJ4anMuU3ViamVjdH1hZGRNYXBwZWRVbmlxdWUoZSxhKXt0aGlzLmZhc3RNYXAuYWRkVG9NYXAoZSxhKX1nZXRNYXBwZWRVbmlxdWUoZSl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRCeUtleShlKX1yZW1vdmVNYXBwZWRVbmlxdWUoZSl7bGV0IGE9dGhpcy5nZXRNYXBwZWRVbmlxdWUoZSl9YWRkKGUpe2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHRoaXMuZmFzdE1hcC5nZXRCeUtleShpKT09PWUpcmV0dXJuIGk7bGV0IGE9ckJ0KCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUoYSxlKSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDplfSksYX1hZGRBcnJheShlKXtmb3IobGV0IGEgb2YgZSl0aGlzLmFkZChhKX1jaGVja0Zvck9iamVjdChlKXtyZXR1cm4hIXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KGUpfWdldEtleUZvck9iamVjdChlKXtsZXQgYT1udWxsO2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKCFhJiZ0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT1lKWE9aTtlbHNlIGNvbnRpbnVlO3JldHVybiBhfWFzeW5jIGZpbmQoZSl7cmV0dXJuIHRoaXMuZmFzdE1hcC5maW5kKGUpfWZpbmRTeW5jKGUpe2ZvcihsZXQgYSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKGUodGhpcy5mYXN0TWFwLmdldEJ5S2V5KGEpKSlyZXR1cm4gdGhpcy5nZXRNYXBwZWRVbmlxdWUoYSl9YXN5bmMgZmluZE9uZUFuZFJlbW92ZShlKXtsZXQgYT1hd2FpdCB0aGlzLmZpbmQoZSk7cmV0dXJuIGEmJnRoaXMucmVtb3ZlKGEpLGF9ZmluZE9uZUFuZFJlbW92ZVN5bmMoZSl7bGV0IGE9dGhpcy5maW5kU3luYyhlKTtyZXR1cm4gYSYmdGhpcy5yZW1vdmUoYSksYX1hc3luYyBmb3JFYWNoKGUpe2ZvcihsZXQgYSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWF3YWl0IGUodGhpcy5mYXN0TWFwLmdldEJ5S2V5KGEpKX1nZXRPbmVBbmRSZW1vdmUoKXtsZXQgZT10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt7bGV0IGE9ZVswXSxpPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKGEpO3JldHVybiB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDppfSksaX19Z2V0QXJyYXkoKXtsZXQgZT1bXTtmb3IobGV0IGEgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSllLnB1c2godGhpcy5mYXN0TWFwLmdldEJ5S2V5KGEpKTtyZXR1cm4gZX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkubGVuZ3RoPT09MH1yZW1vdmUoZSl7aWYodGhpcy5jaGVja0Zvck9iamVjdChlKSl7bGV0IGE9dGhpcy5nZXRLZXlGb3JPYmplY3QoZSksaT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChhKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9cmV0dXJuIG51bGx9d2lwZSgpe2ZvcihsZXQgZSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKGUpfWNvbmNhdChlKXtsZXQgYT1uZXcgdDtyZXR1cm4gYS5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApLGEuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIoZS5mYXN0TWFwKSxhfWFkZEFsbEZyb21PdGhlcihlKXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKGUuZmFzdE1hcCl9fX0pO3ZhciBlZix5Y2U9YigoKT0+e1F1KCk7ZWY9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1bXX1hZGRTdHJpbmcoZSl7dGhpcy5fc3RyaW5nQXJyYXkucHVzaChlKSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1hZGRTdHJpbmdBcnJheShlKXtmb3IobGV0IGEgb2YgZSl0aGlzLmFkZFN0cmluZyhhKX1yZW1vdmVTdHJpbmcoZSl7Zm9yKGxldCBhIGluIHRoaXMuX3N0cmluZ0FycmF5KXRoaXMuX3N0cmluZ0FycmF5W2FdPT09ZSYmdGhpcy5fc3RyaW5nQXJyYXkuc3BsaWNlKHBhcnNlSW50KGEpLDEpO3RoaXMubm90aWZ5VHJpZ2dlcigpfXdpcGUoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1jaGVja1N0cmluZyhlKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkuaW5kZXhPZihlKSE9PS0xfWNoZWNrTWluaW1hdGNoKGUpe2xldCBhPW5ldyBhcy5TbWFydE1hdGNoKGUpLGk9ITE7Zm9yKGxldCByIG9mIHRoaXMuX3N0cmluZ0FycmF5KWEubWF0Y2gocikmJihpPSEwKTtyZXR1cm4gaX1jaGVja0lzRW1wdHkoKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkubGVuZ3RoPT09MH1nZXRTdHJpbmdBcnJheSgpe2xldCBlPVtdO2ZvcihsZXQgYSBvZiB0aGlzLl9zdHJpbmdBcnJheSllLnB1c2goYSk7cmV0dXJuIGV9cmVnaXN0ZXJVbnRpbFRydWUoZSxhKXtsZXQgaT1CZS5kZWZlcigpO3JldHVybiB0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5wdXNoKCgpPT57bGV0IHI9ZSh0aGlzLmdldFN0cmluZ0FycmF5KCkpO3JldHVybiByPT09ITAmJihhJiZhKCksaS5yZXNvbHZlKCkpLHJ9KSx0aGlzLm5vdGlmeVRyaWdnZXIoKSxpLnByb21pc2V9bm90aWZ5VHJpZ2dlcigpe2xldCBlPXRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LmZpbHRlcihhPT4hYSgpKTt0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1lfX19KTtmdW5jdGlvbiB4Y2UodCxlLGEpe3JldHVybiBNYXRoLm1heCh0LE1hdGgubWluKGUsYSkpfWZ1bmN0aW9uIG5CdCh0LGUsYSl7cmV0dXJuKDEtYSkqdCthKmV9ZnVuY3Rpb24gb0J0KHQsZSxhLGkpe3JldHVybiBuQnQodCxlLDEtTWF0aC5leHAoLWEqaSkpfWZ1bmN0aW9uIGxCdCh0LGUpe3JldHVybih0JWUrZSklZX1mdW5jdGlvbiBkQnQodCxlKXtsZXQgYTtyZXR1cm4gZnVuY3Rpb24oLi4uaSl7bGV0IHI9dGhpcztjbGVhclRpbWVvdXQoYSksYT1zZXRUaW1lb3V0KCgpPT57YT12b2lkIDAsdC5hcHBseShyLGkpfSxlKX19dmFyIHNCdCxjQnQscEJ0LHdjZSxNY2UsWG4saEJ0LHpjZSxmNSxrY2U9YigoKT0+e3NCdD0iMS4zLjE3IjtjQnQ9Y2xhc3N7aXNSdW5uaW5nPSExO3ZhbHVlPTA7ZnJvbT0wO3RvPTA7Y3VycmVudFRpbWU9MDtsZXJwO2R1cmF0aW9uO2Vhc2luZztvblVwZGF0ZTthZHZhbmNlKHQpe2lmKCF0aGlzLmlzUnVubmluZylyZXR1cm47bGV0IGU9ITE7aWYodGhpcy5kdXJhdGlvbiYmdGhpcy5lYXNpbmcpe3RoaXMuY3VycmVudFRpbWUrPXQ7bGV0IGE9eGNlKDAsdGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uLDEpO2U9YT49MTtsZXQgaT1lPzE6dGhpcy5lYXNpbmcoYSk7dGhpcy52YWx1ZT10aGlzLmZyb20rKHRoaXMudG8tdGhpcy5mcm9tKSppfWVsc2UgdGhpcy5sZXJwPyh0aGlzLnZhbHVlPW9CdCh0aGlzLnZhbHVlLHRoaXMudG8sdGhpcy5sZXJwKjYwLHQpLE1hdGgucm91bmQodGhpcy52YWx1ZSk9PT10aGlzLnRvJiYodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApKToodGhpcy52YWx1ZT10aGlzLnRvLGU9ITApO2UmJnRoaXMuc3RvcCgpLHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLGUpfXN0b3AoKXt0aGlzLmlzUnVubmluZz0hMX1mcm9tVG8odCxlLHtsZXJwOmEsZHVyYXRpb246aSxlYXNpbmc6cixvblN0YXJ0OnMsb25VcGRhdGU6bn0pe3RoaXMuZnJvbT10aGlzLnZhbHVlPXQsdGhpcy50bz1lLHRoaXMubGVycD1hLHRoaXMuZHVyYXRpb249aSx0aGlzLmVhc2luZz1yLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmlzUnVubmluZz0hMCxzPy4oKSx0aGlzLm9uVXBkYXRlPW59fTtwQnQ9Y2xhc3N7Y29uc3RydWN0b3IodCxlLHthdXRvUmVzaXplOmE9ITAsZGVib3VuY2U6aT0yNTB9PXt9KXt0aGlzLndyYXBwZXI9dCx0aGlzLmNvbnRlbnQ9ZSxhJiYodGhpcy5kZWJvdW5jZWRSZXNpemU9ZEJ0KHRoaXMucmVzaXplLGkpLHRoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz93aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmRlYm91bmNlZFJlc2l6ZSwhMSk6KHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmRlYm91bmNlZFJlc2l6ZSksdGhpcy53cmFwcGVyUmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLndyYXBwZXIpKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5jb250ZW50KSksdGhpcy5yZXNpemUoKX13aWR0aD0wO2hlaWdodD0wO3Njcm9sbEhlaWdodD0wO3Njcm9sbFdpZHRoPTA7ZGVib3VuY2VkUmVzaXplO3dyYXBwZXJSZXNpemVPYnNlcnZlcjtjb250ZW50UmVzaXplT2JzZXJ2ZXI7ZGVzdHJveSgpe3RoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLndyYXBwZXI9PT13aW5kb3cmJnRoaXMuZGVib3VuY2VkUmVzaXplJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmRlYm91bmNlZFJlc2l6ZSwhMSl9cmVzaXplPSgpPT57dGhpcy5vbldyYXBwZXJSZXNpemUoKSx0aGlzLm9uQ29udGVudFJlc2l6ZSgpfTtvbldyYXBwZXJSZXNpemU9KCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMud2lkdGg9d2luZG93LmlubmVyV2lkdGgsdGhpcy5oZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KToodGhpcy53aWR0aD10aGlzLndyYXBwZXIuY2xpZW50V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy53cmFwcGVyLmNsaWVudEhlaWdodCl9O29uQ29udGVudFJlc2l6ZT0oKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5jb250ZW50LnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMuY29udGVudC5zY3JvbGxXaWR0aCk6KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMud3JhcHBlci5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLndyYXBwZXIuc2Nyb2xsV2lkdGgpfTtnZXQgbGltaXQoKXtyZXR1cm57eDp0aGlzLnNjcm9sbFdpZHRoLXRoaXMud2lkdGgseTp0aGlzLnNjcm9sbEhlaWdodC10aGlzLmhlaWdodH19fSx3Y2U9Y2xhc3N7ZXZlbnRzPXt9O2VtaXQodCwuLi5lKXtsZXQgYT10aGlzLmV2ZW50c1t0XXx8W107Zm9yKGxldCBpPTAscj1hLmxlbmd0aDtpPHI7aSsrKWFbaV0/LiguLi5lKX1vbih0LGUpe3JldHVybiB0aGlzLmV2ZW50c1t0XT8ucHVzaChlKXx8KHRoaXMuZXZlbnRzW3RdPVtlXSksKCk9Pnt0aGlzLmV2ZW50c1t0XT10aGlzLmV2ZW50c1t0XT8uZmlsdGVyKGE9PmUhPT1hKX19b2ZmKHQsZSl7dGhpcy5ldmVudHNbdF09dGhpcy5ldmVudHNbdF0/LmZpbHRlcihhPT5lIT09YSl9ZGVzdHJveSgpe3RoaXMuZXZlbnRzPXt9fX0sTWNlPTEwMC82LFhuPXtwYXNzaXZlOiExfSxoQnQ9Y2xhc3N7Y29uc3RydWN0b3IodCxlPXt3aGVlbE11bHRpcGxpZXI6MSx0b3VjaE11bHRpcGxpZXI6MX0pe3RoaXMuZWxlbWVudD10LHRoaXMub3B0aW9ucz1lLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMub25XaW5kb3dSZXNpemUoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxYbiksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LFhuKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLFhuKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxYbil9dG91Y2hTdGFydD17eDowLHk6MH07bGFzdERlbHRhPXt4OjAseTowfTt3aW5kb3c9e3dpZHRoOjAsaGVpZ2h0OjB9O2VtaXR0ZXI9bmV3IHdjZTtvbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxYbiksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LFhuKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLFhuKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxYbil9b25Ub3VjaFN0YXJ0PXQ9PntsZXR7Y2xpZW50WDplLGNsaWVudFk6YX09dC50YXJnZXRUb3VjaGVzP3QudGFyZ2V0VG91Y2hlc1swXTp0O3RoaXMudG91Y2hTdGFydC54PWUsdGhpcy50b3VjaFN0YXJ0Lnk9YSx0aGlzLmxhc3REZWx0YT17eDowLHk6MH0sdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDowLGRlbHRhWTowLGV2ZW50OnR9KX07b25Ub3VjaE1vdmU9dD0+e2xldHtjbGllbnRYOmUsY2xpZW50WTphfT10LnRhcmdldFRvdWNoZXM/dC50YXJnZXRUb3VjaGVzWzBdOnQsaT0tKGUtdGhpcy50b3VjaFN0YXJ0LngpKnRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXIscj0tKGEtdGhpcy50b3VjaFN0YXJ0LnkpKnRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXI7dGhpcy50b3VjaFN0YXJ0Lng9ZSx0aGlzLnRvdWNoU3RhcnQueT1hLHRoaXMubGFzdERlbHRhPXt4OmkseTpyfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOmksZGVsdGFZOnIsZXZlbnQ6dH0pfTtvblRvdWNoRW5kPXQ9Pnt0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOnRoaXMubGFzdERlbHRhLngsZGVsdGFZOnRoaXMubGFzdERlbHRhLnksZXZlbnQ6dH0pfTtvbldoZWVsPXQ9PntsZXR7ZGVsdGFYOmUsZGVsdGFZOmEsZGVsdGFNb2RlOml9PXQscj1pPT09MT9NY2U6aT09PTI/dGhpcy53aW5kb3cud2lkdGg6MSxzPWk9PT0xP01jZTppPT09Mj90aGlzLndpbmRvdy5oZWlnaHQ6MTtlKj1yLGEqPXMsZSo9dGhpcy5vcHRpb25zLndoZWVsTXVsdGlwbGllcixhKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6ZSxkZWx0YVk6YSxldmVudDp0fSl9O29uV2luZG93UmVzaXplPSgpPT57dGhpcy53aW5kb3c9e3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHR9fX0semNlPXQ9Pk1hdGgubWluKDEsMS4wMDEtTWF0aC5wb3coMiwtMTAqdCkpLGY1PWNsYXNze19pc1Njcm9sbGluZz0hMTtfaXNTdG9wcGVkPSExO19pc0xvY2tlZD0hMTtfcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtfcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbDtfcmFmSWQ9bnVsbDtpc1RvdWNoaW5nO3RpbWU9MDt1c2VyRGF0YT17fTtsYXN0VmVsb2NpdHk9MDt2ZWxvY2l0eT0wO2RpcmVjdGlvbj0wO29wdGlvbnM7dGFyZ2V0U2Nyb2xsO2FuaW1hdGVkU2Nyb2xsO2FuaW1hdGU9bmV3IGNCdDtlbWl0dGVyPW5ldyB3Y2U7ZGltZW5zaW9uczt2aXJ0dWFsU2Nyb2xsO2NvbnN0cnVjdG9yKHt3cmFwcGVyOnQ9d2luZG93LGNvbnRlbnQ6ZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZXZlbnRzVGFyZ2V0OmE9dCxzbW9vdGhXaGVlbDppPSEwLHN5bmNUb3VjaDpyPSExLHN5bmNUb3VjaExlcnA6cz0uMDc1LHRvdWNoSW5lcnRpYUV4cG9uZW50Om49MS43LGR1cmF0aW9uOm8sZWFzaW5nOmQsbGVycDpjPS4xLGluZmluaXRlOnA9ITEsb3JpZW50YXRpb246bD0idmVydGljYWwiLGdlc3R1cmVPcmllbnRhdGlvbjpmPWw9PT0iaG9yaXpvbnRhbCI/ImJvdGgiOiJ2ZXJ0aWNhbCIsdG91Y2hNdWx0aXBsaWVyOmc9MSx3aGVlbE11bHRpcGxpZXI6eT0xLGF1dG9SZXNpemU6dj0hMCxwcmV2ZW50Om0sdmlydHVhbFNjcm9sbDp4LG92ZXJzY3JvbGw6TT0hMCxhdXRvUmFmOlM9ITEsYW5jaG9yczpGPSExLGF1dG9Ub2dnbGU6Xz0hMSxhbGxvd05lc3RlZFNjcm9sbDprPSExLF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnM6Tj0hMSxuYWl2ZURpbWVuc2lvbnM6TD1OLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTpBPSExfT17fSl7d2luZG93LmxlbmlzVmVyc2lvbj1zQnQsKCF0fHx0PT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmKHQ9d2luZG93KSx0eXBlb2Ygbz09Im51bWJlciImJnR5cGVvZiBkIT0iZnVuY3Rpb24iP2Q9emNlOnR5cGVvZiBkPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im51bWJlciImJihvPTEpLHRoaXMub3B0aW9ucz17d3JhcHBlcjp0LGNvbnRlbnQ6ZSxldmVudHNUYXJnZXQ6YSxzbW9vdGhXaGVlbDppLHN5bmNUb3VjaDpyLHN5bmNUb3VjaExlcnA6cyx0b3VjaEluZXJ0aWFFeHBvbmVudDpuLGR1cmF0aW9uOm8sZWFzaW5nOmQsbGVycDpjLGluZmluaXRlOnAsZ2VzdHVyZU9yaWVudGF0aW9uOmYsb3JpZW50YXRpb246bCx0b3VjaE11bHRpcGxpZXI6Zyx3aGVlbE11bHRpcGxpZXI6eSxhdXRvUmVzaXplOnYscHJldmVudDptLHZpcnR1YWxTY3JvbGw6eCxvdmVyc2Nyb2xsOk0sYXV0b1JhZjpTLGFuY2hvcnM6RixhdXRvVG9nZ2xlOl8sYWxsb3dOZXN0ZWRTY3JvbGw6ayxuYWl2ZURpbWVuc2lvbnM6TCxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6QX0sdGhpcy5kaW1lbnNpb25zPW5ldyBwQnQodCxlLHthdXRvUmVzaXplOnZ9KSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpLHRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSx0aGlzLnZpcnR1YWxTY3JvbGw9bmV3IGhCdChhLHt0b3VjaE11bHRpcGxpZXI6Zyx3aGVlbE11bHRpcGxpZXI6eX0pLHRoaXMudmlydHVhbFNjcm9sbC5vbigic2Nyb2xsIix0aGlzLm9uVmlydHVhbFNjcm9sbCksdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0aGlzLmNoZWNrT3ZlcmZsb3coKSx0aGlzLnJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kLHtwYXNzaXZlOiEwfSkpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLnZpcnR1YWxTY3JvbGwuZGVzdHJveSgpLHRoaXMuZGltZW5zaW9ucy5kZXN0cm95KCksdGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5fcmFmSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZklkKX1vbih0LGUpe3JldHVybiB0aGlzLmVtaXR0ZXIub24odCxlKX1vZmYodCxlKXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9mZih0LGUpfW9uU2Nyb2xsRW5kPXQ9Pnt0IGluc3RhbmNlb2YgQ3VzdG9tRXZlbnR8fCh0aGlzLmlzU2Nyb2xsaW5nPT09InNtb290aCJ8fHRoaXMuaXNTY3JvbGxpbmc9PT0hMSkmJnQuc3RvcFByb3BhZ2F0aW9uKCl9O2Rpc3BhdGNoU2Nyb2xsZW5kRXZlbnQ9KCk9Pnt0aGlzLm9wdGlvbnMud3JhcHBlci5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2Nyb2xsZW5kIix7YnViYmxlczp0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdyxkZXRhaWw6e2xlbmlzU2Nyb2xsRW5kOiEwfX0pKX07Z2V0IG92ZXJmbG93KCl7bGV0IHQ9dGhpcy5pc0hvcml6b250YWw/Im92ZXJmbG93LXgiOiJvdmVyZmxvdy15IjtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVt0XX1jaGVja092ZXJmbG93KCl7WyJoaWRkZW4iLCJjbGlwIl0uaW5jbHVkZXModGhpcy5vdmVyZmxvdyk/dGhpcy5pbnRlcm5hbFN0b3AoKTp0aGlzLmludGVybmFsU3RhcnQoKX1vblRyYW5zaXRpb25FbmQ9dD0+e3QucHJvcGVydHlOYW1lLmluY2x1ZGVzKCJvdmVyZmxvdyIpJiZ0aGlzLmNoZWNrT3ZlcmZsb3coKX07c2V0U2Nyb2xsKHQpe3RoaXMuaXNIb3Jpem9udGFsP3RoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHtsZWZ0OnQsYmVoYXZpb3I6Imluc3RhbnQifSk6dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe3RvcDp0LGJlaGF2aW9yOiJpbnN0YW50In0pfW9uQ2xpY2s9dD0+e2xldCBhPXQuY29tcG9zZWRQYXRoKCkuZmlsdGVyKGk9PmkgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCYmaS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7aWYodGhpcy5vcHRpb25zLmFuY2hvcnMpe2xldCBpPWEuZmluZChyPT5yLmdldEF0dHJpYnV0ZSgiaHJlZiIpPy5pbmNsdWRlcygiIyIpKTtpZihpKXtsZXQgcj1pLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKHIpe2xldCBzPXR5cGVvZiB0aGlzLm9wdGlvbnMuYW5jaG9ycz09Im9iamVjdCImJnRoaXMub3B0aW9ucy5hbmNob3JzP3RoaXMub3B0aW9ucy5hbmNob3JzOnZvaWQgMCxuPWAjJHtyLnNwbGl0KCIjIilbMV19YDt0aGlzLnNjcm9sbFRvKG4scyl9fX10aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlJiZhLmZpbmQocj0+ci5ob3N0PT09d2luZG93LmxvY2F0aW9uLmhvc3QpJiZ0aGlzLnJlc2V0KCl9O29uUG9pbnRlckRvd249dD0+e3QuYnV0dG9uPT09MSYmdGhpcy5yZXNldCgpfTtvblZpcnR1YWxTY3JvbGw9dD0+e2lmKHR5cGVvZiB0aGlzLm9wdGlvbnMudmlydHVhbFNjcm9sbD09ImZ1bmN0aW9uIiYmdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGwodCk9PT0hMSlyZXR1cm47bGV0e2RlbHRhWDplLGRlbHRhWTphLGV2ZW50Oml9PXQ7aWYodGhpcy5lbWl0dGVyLmVtaXQoInZpcnR1YWwtc2Nyb2xsIix7ZGVsdGFYOmUsZGVsdGFZOmEsZXZlbnQ6aX0pLGkuY3RybEtleXx8aS5sZW5pc1N0b3BQcm9wYWdhdGlvbilyZXR1cm47bGV0IHI9aS50eXBlLmluY2x1ZGVzKCJ0b3VjaCIpLHM9aS50eXBlLmluY2x1ZGVzKCJ3aGVlbCIpO3RoaXMuaXNUb3VjaGluZz1pLnR5cGU9PT0idG91Y2hzdGFydCJ8fGkudHlwZT09PSJ0b3VjaG1vdmUiO2xldCBuPWU9PT0wJiZhPT09MDtpZih0aGlzLm9wdGlvbnMuc3luY1RvdWNoJiZyJiZpLnR5cGU9PT0idG91Y2hzdGFydCImJm4mJiF0aGlzLmlzU3RvcHBlZCYmIXRoaXMuaXNMb2NrZWQpe3RoaXMucmVzZXQoKTtyZXR1cm59bGV0IGQ9dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJ2ZXJ0aWNhbCImJmE9PT0wfHx0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiZlPT09MDtpZihufHxkKXJldHVybjtsZXQgYz1pLmNvbXBvc2VkUGF0aCgpO2M9Yy5zbGljZSgwLGMuaW5kZXhPZih0aGlzLnJvb3RFbGVtZW50KSk7bGV0IHA9dGhpcy5vcHRpb25zLnByZXZlbnQ7aWYoYy5maW5kKG09Pm0gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmKHR5cGVvZiBwPT0iZnVuY3Rpb24iJiZwPy4obSl8fG0uaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudCIpfHxyJiZtLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQtdG91Y2giKXx8cyYmbS5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXdoZWVsIil8fHRoaXMub3B0aW9ucy5hbGxvd05lc3RlZFNjcm9sbCYmdGhpcy5jaGVja05lc3RlZFNjcm9sbChtLHtkZWx0YVg6ZSxkZWx0YVk6YX0pKSkpcmV0dXJuO2lmKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKXtpLmNhbmNlbGFibGUmJmkucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoISh0aGlzLm9wdGlvbnMuc3luY1RvdWNoJiZyfHx0aGlzLm9wdGlvbnMuc21vb3RoV2hlZWwmJnMpKXt0aGlzLmlzU2Nyb2xsaW5nPSJuYXRpdmUiLHRoaXMuYW5pbWF0ZS5zdG9wKCksaS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMDtyZXR1cm59bGV0IGY9YTt0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09ImJvdGgiP2Y9TWF0aC5hYnMoYSk+TWF0aC5hYnMoZSk/YTplOnRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0iaG9yaXpvbnRhbCImJihmPWUpLCghdGhpcy5vcHRpb25zLm92ZXJzY3JvbGx8fHRoaXMub3B0aW9ucy5pbmZpbml0ZXx8dGhpcy5vcHRpb25zLndyYXBwZXIhPT13aW5kb3cmJnRoaXMubGltaXQ+MCYmKHRoaXMuYW5pbWF0ZWRTY3JvbGw+MCYmdGhpcy5hbmltYXRlZFNjcm9sbDx0aGlzLmxpbWl0fHx0aGlzLmFuaW1hdGVkU2Nyb2xsPT09MCYmYT4wfHx0aGlzLmFuaW1hdGVkU2Nyb2xsPT09dGhpcy5saW1pdCYmYTwwKSkmJihpLmxlbmlzU3RvcFByb3BhZ2F0aW9uPSEwKSxpLmNhbmNlbGFibGUmJmkucHJldmVudERlZmF1bHQoKTtsZXQgZz1yJiZ0aGlzLm9wdGlvbnMuc3luY1RvdWNoLHY9ciYmaS50eXBlPT09InRvdWNoZW5kIjt2JiYoZj1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSkqTWF0aC5wb3coTWF0aC5hYnModGhpcy52ZWxvY2l0eSksdGhpcy5vcHRpb25zLnRvdWNoSW5lcnRpYUV4cG9uZW50KSksdGhpcy5zY3JvbGxUbyh0aGlzLnRhcmdldFNjcm9sbCtmLHtwcm9ncmFtbWF0aWM6ITEsLi4uZz97bGVycDp2P3RoaXMub3B0aW9ucy5zeW5jVG91Y2hMZXJwOjF9OntsZXJwOnRoaXMub3B0aW9ucy5sZXJwLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5kdXJhdGlvbixlYXNpbmc6dGhpcy5vcHRpb25zLmVhc2luZ319KX07cmVzaXplKCl7dGhpcy5kaW1lbnNpb25zLnJlc2l6ZSgpLHRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5lbWl0KCl9ZW1pdCgpe3RoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHRoaXMpfW9uTmF0aXZlU2Nyb2xsPSgpPT57aWYodGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQhPT1udWxsJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0KSx0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1udWxsKSx0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSExO3JldHVybn1pZih0aGlzLmlzU2Nyb2xsaW5nPT09ITF8fHRoaXMuaXNTY3JvbGxpbmc9PT0ibmF0aXZlIil7bGV0IHQ9dGhpcy5hbmltYXRlZFNjcm9sbDt0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHksdGhpcy52ZWxvY2l0eT10aGlzLmFuaW1hdGVkU2Nyb2xsLXQsdGhpcy5kaXJlY3Rpb249TWF0aC5zaWduKHRoaXMuYW5pbWF0ZWRTY3JvbGwtdCksdGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU2Nyb2xsaW5nPSJuYXRpdmUiKSx0aGlzLmVtaXQoKSx0aGlzLnZlbG9jaXR5IT09MCYmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9MCx0aGlzLmlzU2Nyb2xsaW5nPSExLHRoaXMuZW1pdCgpfSw0MDApKX19O3Jlc2V0KCl7dGhpcy5pc0xvY2tlZD0hMSx0aGlzLmlzU2Nyb2xsaW5nPSExLHRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eT0wLHRoaXMuYW5pbWF0ZS5zdG9wKCl9c3RhcnQoKXtpZih0aGlzLmlzU3RvcHBlZCl7aWYodGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUpe3RoaXMucm9vdEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoIm92ZXJmbG93Iik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdGFydCgpfX1pbnRlcm5hbFN0YXJ0KCl7dGhpcy5pc1N0b3BwZWQmJih0aGlzLnJlc2V0KCksdGhpcy5pc1N0b3BwZWQ9ITEsdGhpcy5lbWl0KCkpfXN0b3AoKXtpZighdGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJvdmVyZmxvdyIsImNsaXAiKTtyZXR1cm59dGhpcy5pbnRlcm5hbFN0b3AoKX19aW50ZXJuYWxTdG9wKCl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLnJlc2V0KCksdGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5lbWl0KCkpfXJhZj10PT57bGV0IGU9dC0odGhpcy50aW1lfHx0KTt0aGlzLnRpbWU9dCx0aGlzLmFuaW1hdGUuYWR2YW5jZShlKi4wMDEpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9O3Njcm9sbFRvKHQse29mZnNldDplPTAsaW1tZWRpYXRlOmE9ITEsbG9jazppPSExLHByb2dyYW1tYXRpYzpyPSEwLGxlcnA6cz1yP3RoaXMub3B0aW9ucy5sZXJwOnZvaWQgMCxkdXJhdGlvbjpuPXI/dGhpcy5vcHRpb25zLmR1cmF0aW9uOnZvaWQgMCxlYXNpbmc6bz1yP3RoaXMub3B0aW9ucy5lYXNpbmc6dm9pZCAwLG9uU3RhcnQ6ZCxvbkNvbXBsZXRlOmMsZm9yY2U6cD0hMSx1c2VyRGF0YTpsfT17fSl7aWYoISgodGhpcy5pc1N0b3BwZWR8fHRoaXMuaXNMb2NrZWQpJiYhcCkpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIiYmWyJ0b3AiLCJsZWZ0Iiwic3RhcnQiLCIjIl0uaW5jbHVkZXModCkpdD0wO2Vsc2UgaWYodHlwZW9mIHQ9PSJzdHJpbmciJiZbImJvdHRvbSIsInJpZ2h0IiwiZW5kIl0uaW5jbHVkZXModCkpdD10aGlzLmxpbWl0O2Vsc2V7bGV0IGY7aWYodHlwZW9mIHQ9PSJzdHJpbmciPyhmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCksZnx8KHQ9PT0iI3RvcCI/dD0wOmNvbnNvbGUud2FybigiTGVuaXM6IFRhcmdldCBub3QgZm91bmQiLHQpKSk6dCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZ0Py5ub2RlVHlwZSYmKGY9dCksZil7aWYodGhpcy5vcHRpb25zLndyYXBwZXIhPT13aW5kb3cpe2xldCB5PXRoaXMucm9vdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZS09dGhpcy5pc0hvcml6b250YWw/eS5sZWZ0OnkudG9wfWxldCBnPWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dD0odGhpcy5pc0hvcml6b250YWw/Zy5sZWZ0OmcudG9wKSt0aGlzLmFuaW1hdGVkU2Nyb2xsfX1pZih0eXBlb2YgdD09Im51bWJlciIpe2lmKHQrPWUsdD1NYXRoLnJvdW5kKHQpLHRoaXMub3B0aW9ucy5pbmZpbml0ZSl7aWYocil7dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnNjcm9sbDtsZXQgZj10LXRoaXMuYW5pbWF0ZWRTY3JvbGw7Zj50aGlzLmxpbWl0LzI/dD10LXRoaXMubGltaXQ6ZjwtdGhpcy5saW1pdC8yJiYodD10K3RoaXMubGltaXQpfX1lbHNlIHQ9eGNlKDAsdCx0aGlzLmxpbWl0KTtpZih0PT09dGhpcy50YXJnZXRTY3JvbGwpe2Q/Lih0aGlzKSxjPy4odGhpcyk7cmV0dXJufWlmKHRoaXMudXNlckRhdGE9bD8/e30sYSl7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10LHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSx0aGlzLnJlc2V0KCksdGhpcy5wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KCksdGhpcy5lbWl0KCksYz8uKHRoaXMpLHRoaXMudXNlckRhdGE9e30scmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5kaXNwYXRjaFNjcm9sbGVuZEV2ZW50KCl9KTtyZXR1cm59cnx8KHRoaXMudGFyZ2V0U2Nyb2xsPXQpLHR5cGVvZiBuPT0ibnVtYmVyIiYmdHlwZW9mIG8hPSJmdW5jdGlvbiI/bz16Y2U6dHlwZW9mIG89PSJmdW5jdGlvbiImJnR5cGVvZiBuIT0ibnVtYmVyIiYmKG49MSksdGhpcy5hbmltYXRlLmZyb21Ubyh0aGlzLmFuaW1hdGVkU2Nyb2xsLHQse2R1cmF0aW9uOm4sZWFzaW5nOm8sbGVycDpzLG9uU3RhcnQ6KCk9PntpJiYodGhpcy5pc0xvY2tlZD0hMCksdGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIixkPy4odGhpcyl9LG9uVXBkYXRlOihmLGcpPT57dGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIix0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9Zi10aGlzLmFuaW1hdGVkU2Nyb2xsLHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLnZlbG9jaXR5KSx0aGlzLmFuaW1hdGVkU2Nyb2xsPWYsdGhpcy5zZXRTY3JvbGwodGhpcy5zY3JvbGwpLHImJih0aGlzLnRhcmdldFNjcm9sbD1mKSxnfHx0aGlzLmVtaXQoKSxnJiYodGhpcy5yZXNldCgpLHRoaXMuZW1pdCgpLGM/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSksdGhpcy5wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KCkpfX0pfX19cHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpe3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMX0pfWNoZWNrTmVzdGVkU2Nyb2xsKHQse2RlbHRhWDplLGRlbHRhWTphfSl7bGV0IGk9RGF0ZS5ub3coKSxyPXQuX2xlbmlzPz89e30scyxuLG8sZCxjLHAsbCxmLGc9dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbjtpZihpLShyLnRpbWU/PzApPjJlMyl7ci50aW1lPURhdGUubm93KCk7bGV0IF89d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk7ci5jb21wdXRlZFN0eWxlPV87bGV0IGs9Xy5vdmVyZmxvd1gsTj1fLm92ZXJmbG93WTtpZihzPVsiYXV0byIsIm92ZXJsYXkiLCJzY3JvbGwiXS5pbmNsdWRlcyhrKSxuPVsiYXV0byIsIm92ZXJsYXkiLCJzY3JvbGwiXS5pbmNsdWRlcyhOKSxyLmhhc092ZXJmbG93WD1zLHIuaGFzT3ZlcmZsb3dZPW4sIXMmJiFufHxnPT09InZlcnRpY2FsIiYmIW58fGc9PT0iaG9yaXpvbnRhbCImJiFzKXJldHVybiExO2M9dC5zY3JvbGxXaWR0aCxwPXQuc2Nyb2xsSGVpZ2h0LGw9dC5jbGllbnRXaWR0aCxmPXQuY2xpZW50SGVpZ2h0LG89Yz5sLGQ9cD5mLHIuaXNTY3JvbGxhYmxlWD1vLHIuaXNTY3JvbGxhYmxlWT1kLHIuc2Nyb2xsV2lkdGg9YyxyLnNjcm9sbEhlaWdodD1wLHIuY2xpZW50V2lkdGg9bCxyLmNsaWVudEhlaWdodD1mfWVsc2Ugbz1yLmlzU2Nyb2xsYWJsZVgsZD1yLmlzU2Nyb2xsYWJsZVkscz1yLmhhc092ZXJmbG93WCxuPXIuaGFzT3ZlcmZsb3dZLGM9ci5zY3JvbGxXaWR0aCxwPXIuc2Nyb2xsSGVpZ2h0LGw9ci5jbGllbnRXaWR0aCxmPXIuY2xpZW50SGVpZ2h0O2lmKCFzJiYhbnx8IW8mJiFkfHxnPT09InZlcnRpY2FsIiYmKCFufHwhZCl8fGc9PT0iaG9yaXpvbnRhbCImJighc3x8IW8pKXJldHVybiExO2xldCB5O2lmKGc9PT0iaG9yaXpvbnRhbCIpeT0ieCI7ZWxzZSBpZihnPT09InZlcnRpY2FsIil5PSJ5IjtlbHNle2xldCBfPWUhPT0wLGs9YSE9PTA7XyYmcyYmbyYmKHk9IngiKSxrJiZuJiZkJiYoeT0ieSIpfWlmKCF5KXJldHVybiExO2xldCB2LG0seCxNLFM7aWYoeT09PSJ4Iil2PXQuc2Nyb2xsTGVmdCxtPWMtbCx4PWUsTT1zLFM9bztlbHNlIGlmKHk9PT0ieSIpdj10LnNjcm9sbFRvcCxtPXAtZix4PWEsTT1uLFM9ZDtlbHNlIHJldHVybiExO3JldHVybih4PjA/djxtOnY+MCkmJk0mJlN9Z2V0IHJvb3RFbGVtZW50KCl7cmV0dXJuIHRoaXMub3B0aW9ucy53cmFwcGVyPT09d2luZG93P2RvY3VtZW50LmRvY3VtZW50RWxlbWVudDp0aGlzLm9wdGlvbnMud3JhcHBlcn1nZXQgbGltaXQoKXtyZXR1cm4gdGhpcy5vcHRpb25zLm5haXZlRGltZW5zaW9ucz90aGlzLmlzSG9yaXpvbnRhbD90aGlzLnJvb3RFbGVtZW50LnNjcm9sbFdpZHRoLXRoaXMucm9vdEVsZW1lbnQuY2xpZW50V2lkdGg6dGhpcy5yb290RWxlbWVudC5zY3JvbGxIZWlnaHQtdGhpcy5yb290RWxlbWVudC5jbGllbnRIZWlnaHQ6dGhpcy5kaW1lbnNpb25zLmxpbWl0W3RoaXMuaXNIb3Jpem9udGFsPyJ4IjoieSJdfWdldCBpc0hvcml6b250YWwoKXtyZXR1cm4gdGhpcy5vcHRpb25zLm9yaWVudGF0aW9uPT09Imhvcml6b250YWwifWdldCBhY3R1YWxTY3JvbGwoKXtsZXQgdD10aGlzLm9wdGlvbnMud3JhcHBlcjtyZXR1cm4gdGhpcy5pc0hvcml6b250YWw/dC5zY3JvbGxYPz90LnNjcm9sbExlZnQ6dC5zY3JvbGxZPz90LnNjcm9sbFRvcH1nZXQgc2Nyb2xsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5pbmZpbml0ZT9sQnQodGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmxpbWl0KTp0aGlzLmFuaW1hdGVkU2Nyb2xsfWdldCBwcm9ncmVzcygpe3JldHVybiB0aGlzLmxpbWl0PT09MD8xOnRoaXMuc2Nyb2xsL3RoaXMubGltaXR9Z2V0IGlzU2Nyb2xsaW5nKCl7cmV0dXJuIHRoaXMuX2lzU2Nyb2xsaW5nfXNldCBpc1Njcm9sbGluZyh0KXt0aGlzLl9pc1Njcm9sbGluZyE9PXQmJih0aGlzLl9pc1Njcm9sbGluZz10LHRoaXMudXBkYXRlQ2xhc3NOYW1lKCkpfWdldCBpc1N0b3BwZWQoKXtyZXR1cm4gdGhpcy5faXNTdG9wcGVkfXNldCBpc1N0b3BwZWQodCl7dGhpcy5faXNTdG9wcGVkIT09dCYmKHRoaXMuX2lzU3RvcHBlZD10LHRoaXMudXBkYXRlQ2xhc3NOYW1lKCkpfWdldCBpc0xvY2tlZCgpe3JldHVybiB0aGlzLl9pc0xvY2tlZH1zZXQgaXNMb2NrZWQodCl7dGhpcy5faXNMb2NrZWQhPT10JiYodGhpcy5faXNMb2NrZWQ9dCx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTbW9vdGgoKXtyZXR1cm4gdGhpcy5pc1Njcm9sbGluZz09PSJzbW9vdGgifWdldCBjbGFzc05hbWUoKXtsZXQgdD0ibGVuaXMiO3JldHVybiB0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSYmKHQrPSIgbGVuaXMtYXV0b1RvZ2dsZSIpLHRoaXMuaXNTdG9wcGVkJiYodCs9IiBsZW5pcy1zdG9wcGVkIiksdGhpcy5pc0xvY2tlZCYmKHQrPSIgbGVuaXMtbG9ja2VkIiksdGhpcy5pc1Njcm9sbGluZyYmKHQrPSIgbGVuaXMtc2Nyb2xsaW5nIiksdGhpcy5pc1Njcm9sbGluZz09PSJzbW9vdGgiJiYodCs9IiBsZW5pcy1zbW9vdGgiKSx0fXVwZGF0ZUNsYXNzTmFtZSgpe3RoaXMuY2xlYW5VcENsYXNzTmFtZSgpLHRoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lPWAke3RoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lfSAke3RoaXMuY2xhc3NOYW1lfWAudHJpbSgpfWNsZWFuVXBDbGFzc05hbWUoKXt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT10aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKC9sZW5pcygtXHcrKT8vZywiIikudHJpbSgpfX19KTt2YXIgQUE9cHQoKExBLCRBKT0+eyhmdW5jdGlvbih0LGUpe3R5cGVvZiBMQT09Im9iamVjdCImJnR5cGVvZiAkQTwidSI/JEEuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KHQ9dHx8c2VsZix0LlN3ZWV0U2Nyb2xsPWUoKSl9KShMQSxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1mdW5jdGlvbigpe3JldHVybiB0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKE8pe2Zvcih2YXIgWixZPTEsb2U9YXJndW1lbnRzLmxlbmd0aDtZPG9lO1krKyl7Wj1hcmd1bWVudHNbWV07Zm9yKHZhciBnZSBpbiBaKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChaLGdlKSYmKE9bZ2VdPVpbZ2VdKX1yZXR1cm4gT30sdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGU9ISEodHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5kb2N1bWVudCYmd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpLGE9ZT93aW5kb3cuaGlzdG9yeSYmInB1c2hTdGF0ZSJpbiB3aW5kb3cuaGlzdG9yeSYmd2luZG93LmxvY2F0aW9uLnByb3RvY29sIT09ImZpbGU6IjohMSxpPShmdW5jdGlvbigpe3ZhciBEPSExO2lmKCFlKXJldHVybiBEO3RyeXt2YXIgTz13aW5kb3csWj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtEPSEwfX0pO08uYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxaKSxPLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsWil9Y2F0Y2h7fXJldHVybiBEfSkoKSxyPWZ1bmN0aW9uKEQpe3JldHVybiB0eXBlb2YgRD09InN0cmluZyJ9LHM9ZnVuY3Rpb24oRCl7cmV0dXJuIHR5cGVvZiBEPT0iZnVuY3Rpb24ifSxuPWZ1bmN0aW9uKEQpe3JldHVybiBBcnJheS5pc0FycmF5KEQpfSxvPWZ1bmN0aW9uKEQpe3JldHVybiFuKEQpJiZELXBhcnNlRmxvYXQoRCkrMT49MH0sZD1mdW5jdGlvbihELE8pe3JldHVybiBEJiZELmhhc093blByb3BlcnR5KE8pfSxjPWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6bnVsbCxwPWU/d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpudWxsLGw9TWF0aC5jb3MsZj1NYXRoLnNpbixnPU1hdGgucG93LHk9TWF0aC5zcXJ0LHY9TWF0aC5QSSxtPXtsaW5lYXI6ZnVuY3Rpb24oRCl7cmV0dXJuIER9LGVhc2VJblF1YWQ6ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuIFkqKE8vPW9lKSpPK1p9LGVhc2VPdXRRdWFkOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybi1ZKihPLz1vZSkqKE8tMikrWn0sZWFzZUluT3V0UXVhZDpmdW5jdGlvbihELE8sWixZLG9lKXtyZXR1cm4oTy89b2UvMik8MT9ZLzIqTypPK1o6LVkvMiooLS1PKihPLTIpLTEpK1p9LGVhc2VJbkN1YmljOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybiBZKihPLz1vZSkqTypPK1p9LGVhc2VPdXRDdWJpYzpmdW5jdGlvbihELE8sWixZLG9lKXtyZXR1cm4gWSooKE89Ty9vZS0xKSpPKk8rMSkrWn0sZWFzZUluT3V0Q3ViaWM6ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuKE8vPW9lLzIpPDE/WS8yKk8qTypPK1o6WS8yKigoTy09MikqTypPKzIpK1p9LGVhc2VJblF1YXJ0OmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybiBZKihPLz1vZSkqTypPKk8rWn0sZWFzZU91dFF1YXJ0OmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybi1ZKigoTz1PL29lLTEpKk8qTypPLTEpK1p9LGVhc2VJbk91dFF1YXJ0OmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybihPLz1vZS8yKTwxP1kvMipPKk8qTypPK1o6LVkvMiooKE8tPTIpKk8qTypPLTIpK1p9LGVhc2VJblF1aW50OmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybiBZKihPLz1vZSkqTypPKk8qTytafSxlYXNlT3V0UXVpbnQ6ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuIFkqKChPPU8vb2UtMSkqTypPKk8qTysxKStafSxlYXNlSW5PdXRRdWludDpmdW5jdGlvbihELE8sWixZLG9lKXtyZXR1cm4oTy89b2UvMik8MT9ZLzIqTypPKk8qTypPK1o6WS8yKigoTy09MikqTypPKk8qTysyKStafSxlYXNlSW5TaW5lOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybi1ZKmwoTy9vZSoodi8yKSkrWStafSxlYXNlT3V0U2luZTpmdW5jdGlvbihELE8sWixZLG9lKXtyZXR1cm4gWSpmKE8vb2UqKHYvMikpK1p9LGVhc2VJbk91dFNpbmU6ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuLVkvMioobCh2Kk8vb2UpLTEpK1p9LGVhc2VJbkV4cG86ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuIE89PT0wP1o6WSpnKDIsMTAqKE8vb2UtMSkpK1p9LGVhc2VPdXRFeHBvOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybiBPPT09b2U/WitZOlkqKC1nKDIsLTEwKk8vb2UpKzEpK1p9LGVhc2VJbk91dEV4cG86ZnVuY3Rpb24oRCxPLFosWSxvZSl7cmV0dXJuIE89PT0wP1o6Tz09PW9lP1orWTooTy89b2UvMik8MT9ZLzIqZygyLDEwKihPLTEpKStaOlkvMiooLWcoMiwtMTAqLS1PKSsyKStafSxlYXNlSW5DaXJjOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybi1ZKih5KDEtKE8vPW9lKSpPKS0xKStafSxlYXNlT3V0Q2lyYzpmdW5jdGlvbihELE8sWixZLG9lKXtyZXR1cm4gWSp5KDEtKE89Ty9vZS0xKSpPKStafSxlYXNlSW5PdXRDaXJjOmZ1bmN0aW9uKEQsTyxaLFksb2Upe3JldHVybihPLz1vZS8yKTwxPy1ZLzIqKHkoMS1PKk8pLTEpK1o6WS8yKih5KDEtKE8tPTIpKk8pKzEpK1p9fSx4PWZ1bmN0aW9uKEQpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChEP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoRCk6W10pfSxNPWZ1bmN0aW9uKEQpe3JldHVybiB4KEQpLnNoaWZ0KCl8fG51bGx9LFM9ZnVuY3Rpb24oRCl7cmV0dXJuIEQgaW5zdGFuY2VvZiBFbGVtZW50fSxGPWZ1bmN0aW9uKEQpe3JldHVybiBEPT09d2luZG93fSxfPWZ1bmN0aW9uKEQpe3JldHVybiBEPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxEPT09ZG9jdW1lbnQuYm9keX0saz1mdW5jdGlvbihELE8pe2lmKFMoTykpcmV0dXJuIEQ9PT1PO2Zvcih2YXIgWj14KE8pLFk9Wi5sZW5ndGg7LS1ZPj0wJiZaW1ldIT09RDspO3JldHVybiBZPi0xfSxOPWZ1bmN0aW9uKEQpe3JldHVybiBNYXRoLm1heChELnNjcm9sbEhlaWdodCxELmNsaWVudEhlaWdodCxELm9mZnNldEhlaWdodCl9LEw9ZnVuY3Rpb24oRCl7cmV0dXJuIE1hdGgubWF4KEQuc2Nyb2xsV2lkdGgsRC5jbGllbnRXaWR0aCxELm9mZnNldFdpZHRoKX0sQT1mdW5jdGlvbihEKXtyZXR1cm57d2lkdGg6TChEKSxoZWlnaHQ6TihEKX19LHE9ZnVuY3Rpb24oRCl7dmFyIE89RihEKXx8XyhEKTtyZXR1cm57dmlld3BvcnQ6e3dpZHRoOk8/TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTpELmNsaWVudFdpZHRoLGhlaWdodDpPP3dpbmRvdy5pbm5lckhlaWdodDpELmNsaWVudEhlaWdodH0sc2l6ZTpPP3t3aWR0aDpNYXRoLm1heChMKGRvY3VtZW50LmJvZHkpLEwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSksaGVpZ2h0Ok1hdGgubWF4KE4oZG9jdW1lbnQuYm9keSksTihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX06QShEKX19LEM9e3k6InNjcm9sbFRvcCIseDoic2Nyb2xsTGVmdCJ9LHo9e3k6InBhZ2VZT2Zmc2V0Iix4OiJwYWdlWE9mZnNldCJ9LEU9ZnVuY3Rpb24oRCxPKXtyZXR1cm4gRihEKT9EW3pbT11dOkRbQ1tPXV19LFQ9ZnVuY3Rpb24oRCxPLFope2lmKEYoRCkpe3ZhciBZPVo9PT0ieSI7RC5zY3JvbGxUbyhZP0QucGFnZVhPZmZzZXQ6TyxZP086RC5wYWdlWU9mZnNldCl9ZWxzZSBEW0NbWl1dPU99LCQ9ZnVuY3Rpb24oRCxPKXt2YXIgWj1ELmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFoud2lkdGh8fFouaGVpZ2h0KXt2YXIgWT17dG9wOjAsbGVmdDowfSxvZT12b2lkIDA7aWYoRihPKXx8XyhPKSlvZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsWS50b3A9d2luZG93W3oueV0sWS5sZWZ0PXdpbmRvd1t6LnhdO2Vsc2V7b2U9Tzt2YXIgZ2U9b2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7WS50b3A9Z2UudG9wKi0xK29lW0MueV0sWS5sZWZ0PWdlLmxlZnQqLTErb2VbQy54XX1yZXR1cm57dG9wOloudG9wK1kudG9wLW9lLmNsaWVudFRvcCxsZWZ0OloubGVmdCtZLmxlZnQtb2UuY2xpZW50TGVmdH19cmV0dXJuIFp9LFY9KGZ1bmN0aW9uKCl7cmV0dXJuIGU/Im9ud2hlZWwiaW4gZG9jdW1lbnQ/IndoZWVsIjoibW91c2V3aGVlbCI6IndoZWVsIn0pKCksUj1mdW5jdGlvbihEKXtyZXR1cm4gRD09PSJ3aGVlbCI/VjpEfSxVPWZ1bmN0aW9uKEQsTyxaLFksb2Upe1ouc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGdlKXtEW09dKFIoZ2UpLFksaT97cGFzc2l2ZTpvZX06ITEpfSl9LHJlPWZ1bmN0aW9uKEQsTyxaLFkpe3JldHVybiBVKEQsImFkZEV2ZW50TGlzdGVuZXIiLE8sWixZKX0saj1mdW5jdGlvbihELE8sWixZKXtyZXR1cm4gVShELCJyZW1vdmVFdmVudExpc3RlbmVyIixPLFosWSl9LG1lPS9eKFwrfC0pPShcZCsoPzpcLlxkKyk/KSQvLHdlPWZ1bmN0aW9uKEQsTyl7dmFyIFo9e3RvcDowLGxlZnQ6MCxyZWxhdGl2ZTohMX07aWYoZChELCJ0b3AiKXx8ZChELCJsZWZ0IikpWj10KHt9LFosRCk7ZWxzZSBpZihuKEQpKWlmKEQubGVuZ3RoPjEpWi50b3A9RFswXSxaLmxlZnQ9RFsxXTtlbHNlIGlmKEQubGVuZ3RoPT09MSlaLnRvcD1PP0RbMF06MCxaLmxlZnQ9Tz8wOkRbMF07ZWxzZSByZXR1cm4gbnVsbDtlbHNlIGlmKG8oRCkpTz9aLnRvcD1EOloubGVmdD1EO2Vsc2UgaWYocihEKSl7dmFyIFk9RC50cmltKCkubWF0Y2gobWUpO2lmKCFZKXJldHVybiBudWxsO3ZhciBvZT1ZWzFdLGdlPXBhcnNlSW50KFlbMl0sMTApO29lPT09IisiPyhaLnRvcD1PP2dlOjAsWi5sZWZ0PU8/MDpnZSk6KFoudG9wPU8/LWdlOjAsWi5sZWZ0PU8/MDotZ2UpLFoucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gWn0sSD17dHJpZ2dlcjoiW2RhdGEtc2Nyb2xsXSIsaGVhZGVyOiJbZGF0YS1zY3JvbGwtaGVhZGVyXSIsZHVyYXRpb246MWUzLGVhc2luZzoiZWFzZU91dFF1aW50IixvZmZzZXQ6MCx2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGNhbmNlbGxhYmxlOiEwLHVwZGF0ZVVSTDohMSxwcmV2ZW50RGVmYXVsdDohMCxzdG9wUHJvcGFnYXRpb246ITAsYmVmb3JlOm51bGwsYWZ0ZXI6bnVsbCxjYW5jZWw6bnVsbCxjb21wbGV0ZTpudWxsLHN0ZXA6bnVsbH0sY2U9ImNsaWNrIixrZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLFc9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRChPLFope3ZhciBZPXRoaXM7dGhpcy4kZWw9bnVsbCx0aGlzLmN0eD17JHRyaWdnZXI6bnVsbCxvcHRzOm51bGwscHJvZ3Jlc3M6ITEscG9zOm51bGwsc3RhcnRQb3M6bnVsbCxlYXNpbmc6bnVsbCxzdGFydDowLGlkOjAsY2FuY2VsOiExLGhhc2g6bnVsbH0sdGhpcy5sb29wPWZ1bmN0aW9uKGdlKXt2YXIgYmU9WSwkZT1iZS4kZWwsQj1iZS5jdHg7aWYoQi5zdGFydHx8KEIuc3RhcnQ9Z2UpLCFCLnByb2dyZXNzfHwhJGUpe1kuc3RvcCgpO3JldHVybn12YXIgUD1CLm9wdHMsSz1CLnBvcyxmZT1CLnN0YXJ0LGRlPUIuc3RhcnRQb3MsX2U9Qi5lYXNpbmcscGU9UC5kdXJhdGlvbix0ZT17dG9wOiJ5IixsZWZ0OiJ4In0semU9Z2UtZmUsRmU9TWF0aC5taW4oMSxNYXRoLm1heCh6ZS9wZSwwKSk7T2JqZWN0LmtleXMoSykuZm9yRWFjaChmdW5jdGlvbihXZSl7dmFyIHllPUtbV2VdLGVlPWRlW1dlXSxhZT15ZS1lZTtpZihhZSE9PTApe3ZhciB2ZT1fZShGZSxwZSpGZSwwLDEscGUpO1QoJGUsTWF0aC5yb3VuZChlZSthZSp2ZSksdGVbV2VdKX19KSx6ZTw9cGU/KFkuaG9vayhQLCJzdGVwIixGZSksQi5pZD1ELnJhZihZLmxvb3ApKTpZLnN0b3AoITApfSx0aGlzLmhhbmRsZUNsaWNrPWZ1bmN0aW9uKGdlKXtmb3IodmFyIGJlPVkub3B0cywkZT1nZS50YXJnZXQ7JGUmJiRlIT09ZG9jdW1lbnQ7JGU9JGUucGFyZW50Tm9kZSlpZihrKCRlLGJlLnRyaWdnZXIpKXt2YXIgQj1KU09OLnBhcnNlKCRlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwtb3B0aW9ucyIpfHwie30iKSxQPSRlLmdldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwiKSxLPVB8fCRlLmdldEF0dHJpYnV0ZSgiaHJlZiIpLGZlPXQoe30sYmUsQiksZGU9ZmUucHJldmVudERlZmF1bHQsX2U9ZmUuc3RvcFByb3BhZ2F0aW9uLHBlPWZlLnZlcnRpY2FsLHRlPWZlLmhvcml6b250YWw7ZGUmJmdlLnByZXZlbnREZWZhdWx0KCksX2UmJmdlLnN0b3BQcm9wYWdhdGlvbigpLFkuY3R4LiR0cmlnZ2VyPSRlLHRlJiZwZT9ZLnRvKEssZmUpOnBlP1kudG9Ub3AoSyxmZSk6dGUmJlkudG9MZWZ0KEssZmUpO2JyZWFrfX0sdGhpcy5oYW5kbGVTdG9wPWZ1bmN0aW9uKGdlKXt2YXIgYmU9WS5jdHgsJGU9YmUub3B0czskZSYmJGUuY2FuY2VsbGFibGU/KGJlLmNhbmNlbD0hMCxZLnN0b3AoKSk6Z2UucHJldmVudERlZmF1bHQoKX0sdGhpcy5vcHRzPXQoe30sSCxPfHx7fSk7dmFyIG9lPW51bGw7ZSYmKHR5cGVvZiBaPT0ic3RyaW5nIj9vZT1NKFopOlohPW51bGw/b2U9WjpvZT13aW5kb3cpLHRoaXMuJGVsPW9lLG9lJiZ0aGlzLmJpbmQoITAsITEpfXJldHVybiBELmNyZWF0ZT1mdW5jdGlvbihPLFope3JldHVybiBuZXcgRChPLFopfSxELnByb3RvdHlwZS50bz1mdW5jdGlvbihPLFope2lmKGUpe3ZhciBZPXRoaXMsb2U9WS4kZWwsZ2U9WS5jdHgsYmU9WS5vcHRzLCRlPWdlLiR0cmlnZ2VyLEI9dCh7fSxiZSxafHx7fSksUD1CLm9mZnNldCxLPUIudmVydGljYWwsZmU9Qi5ob3Jpem9udGFsLGRlPVMoQi5oZWFkZXIpP0IuaGVhZGVyOk0oQi5oZWFkZXIpLF9lPS9eIy8scGU9cihPKSYmX2UudGVzdChPKT9POm51bGw7aWYoZ2Uub3B0cz1CLGdlLmNhbmNlbD0hMSxnZS5oYXNoPXBlLHRoaXMuc3RvcCgpLCEhb2Upe3ZhciB0ZT13ZShQLEspLHplPXdlKE8sSyksRmU9e3RvcDowLGxlZnQ6MH07aWYoemUpaWYoemUucmVsYXRpdmUpe3ZhciBXZT1FKG9lLEs/InkiOiJ4Iik7RmUudG9wPUs/V2UremUudG9wOnplLnRvcCxGZS5sZWZ0PUs/emUubGVmdDpXZSt6ZS5sZWZ0fWVsc2UgRmU9emU7ZWxzZSBpZihyKE8pJiZPIT09IiMiKXt2YXIgeWU9TShPKTtpZigheWUpcmV0dXJuO0ZlPSQoeWUsb2UpfXRlJiYoRmUudG9wKz10ZS50b3AsRmUubGVmdCs9dGUubGVmdCksZGUmJihGZS50b3A9TWF0aC5tYXgoMCxGZS50b3AtQShkZSkuaGVpZ2h0KSk7dmFyIGVlPXEob2UpLGFlPWVlLnZpZXdwb3J0LHZlPWVlLnNpemU7aWYoRmUudG9wPUs/TWF0aC5tYXgoMCxNYXRoLm1pbih2ZS5oZWlnaHQtYWUuaGVpZ2h0LEZlLnRvcCkpOkUob2UsInkiKSxGZS5sZWZ0PWZlP01hdGgubWF4KDAsTWF0aC5taW4odmUud2lkdGgtYWUud2lkdGgsRmUubGVmdCkpOkUob2UsIngiKSx0aGlzLmhvb2soQiwiYmVmb3JlIixGZSwkZSk9PT0hMSl7Z2Uub3B0cz1udWxsO3JldHVybn1nZS5wb3M9RmUsdGhpcy5zdGFydChCKSx0aGlzLmJpbmQoITEsITApfX19LEQucHJvdG90eXBlLnRvVG9wPWZ1bmN0aW9uKE8sWil7dGhpcy50byhPLHQoe30sWnx8e30se3ZlcnRpY2FsOiEwLGhvcml6b250YWw6ITF9KSl9LEQucHJvdG90eXBlLnRvTGVmdD1mdW5jdGlvbihPLFope3RoaXMudG8oTyx0KHt9LFp8fHt9LHt2ZXJ0aWNhbDohMSxob3Jpem9udGFsOiEwfSkpfSxELnByb3RvdHlwZS50b0VsZW1lbnQ9ZnVuY3Rpb24oTyxaKXt2YXIgWT10aGlzLiRlbDshZXx8IVl8fHRoaXMudG8oJChPLFkpLFp8fHt9KX0sRC5wcm90b3R5cGUuc3RvcD1mdW5jdGlvbihPKXtPPT09dm9pZCAwJiYoTz0hMSk7dmFyIFo9dGhpcyxZPVouJGVsLG9lPVouY3R4LGdlPW9lLnBvczshWXx8IW9lLnByb2dyZXNzfHwoRC5jYWYob2UuaWQpLG9lLnByb2dyZXNzPSExLG9lLnN0YXJ0PTAsb2UuaWQ9MCxPJiZnZSYmKFQoWSxnZS5sZWZ0LCJ4IiksVChZLGdlLnRvcCwieSIpKSx0aGlzLmNvbXBsZXRlKCkpfSxELnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oTyl7aWYodGhpcy4kZWwpe3ZhciBaPXQoe30sdGhpcy5vcHRzLE8pO3RoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLm9wdHM9Wix0aGlzLmJpbmQoITAsITEpfX0sRC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuJGVsJiYodGhpcy5zdG9wKCksdGhpcy51bmJpbmQoITAsITApLHRoaXMuJGVsPW51bGwpfSxELnByb3RvdHlwZS5vbkJlZm9yZT1mdW5jdGlvbihPLFope3JldHVybiEwfSxELnByb3RvdHlwZS5vblN0ZXA9ZnVuY3Rpb24oTyl7fSxELnByb3RvdHlwZS5vbkFmdGVyPWZ1bmN0aW9uKE8sWil7fSxELnByb3RvdHlwZS5vbkNhbmNlbD1mdW5jdGlvbigpe30sRC5wcm90b3R5cGUub25Db21wbGV0ZT1mdW5jdGlvbihPKXt9LEQucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKE8pe3ZhciBaPXRoaXMuY3R4O1oub3B0cz1PLFoucHJvZ3Jlc3M9ITAsWi5lYXNpbmc9cyhPLmVhc2luZyk/Ty5lYXNpbmc6bVtPLmVhc2luZ107dmFyIFk9dGhpcy4kZWwsb2U9e3RvcDpFKFksInkiKSxsZWZ0OkUoWSwieCIpfTtaLnN0YXJ0UG9zPW9lLFouaWQ9RC5yYWYodGhpcy5sb29wKX0sRC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgTz10aGlzLFo9Ty4kZWwsWT1PLmN0eCxvZT1ZLmhhc2gsZ2U9WS5jYW5jZWwsYmU9WS5vcHRzLCRlPVkucG9zLEI9WS4kdHJpZ2dlcjtpZighKCFafHwhYmUpKXtpZihvZSE9bnVsbCYmb2UhPT13aW5kb3cubG9jYXRpb24uaGFzaCl7dmFyIFA9YmUudXBkYXRlVVJMO2UmJmEmJlAhPT0hMSYmd2luZG93Lmhpc3RvcnlbUD09PSJyZXBsYWNlIj8icmVwbGFjZVN0YXRlIjoicHVzaFN0YXRlIl0obnVsbCwiIixvZSl9dGhpcy51bmJpbmQoITEsITApLFkub3B0cz1udWxsLFkuJHRyaWdnZXI9bnVsbCxnZT90aGlzLmhvb2soYmUsImNhbmNlbCIpOnRoaXMuaG9vayhiZSwiYWZ0ZXIiLCRlLEIpLHRoaXMuaG9vayhiZSwiY29tcGxldGUiLGdlKX19LEQucHJvdG90eXBlLmhvb2s9ZnVuY3Rpb24oTyxaKXtmb3IodmFyIFk9W10sb2U9MjtvZTxhcmd1bWVudHMubGVuZ3RoO29lKyspWVtvZS0yXT1hcmd1bWVudHNbb2VdO3ZhciBnZSxiZT1PW1pdLCRlLEI7cmV0dXJuIHMoYmUpJiYoJGU9YmUuYXBwbHkodGhpcyxZLmNvbmNhdChbdGhpc10pKSksQj0oZ2U9dGhpcylbIm9uIisoWlswXS50b1VwcGVyQ2FzZSgpK1ouc2xpY2UoMSkpXS5hcHBseShnZSxZKSwkZSE9PXZvaWQgMD8kZTpCfSxELnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKE8sWil7dmFyIFk9dGhpcyxvZT1ZLiRlbCxnZT1ZLmN0eC5vcHRzO29lJiYoTyYmcmUob2UsY2UsdGhpcy5oYW5kbGVDbGljaywhMSksWiYmcmUob2Usa2UsdGhpcy5oYW5kbGVTdG9wLGdlP2dlLmNhbmNlbGxhYmxlOiEwKSl9LEQucHJvdG90eXBlLnVuYmluZD1mdW5jdGlvbihPLFope3ZhciBZPXRoaXMsb2U9WS4kZWwsZ2U9WS5jdHgub3B0cztvZSYmKE8mJmoob2UsY2UsdGhpcy5oYW5kbGVDbGljaywhMSksWiYmaihvZSxrZSx0aGlzLmhhbmRsZVN0b3AsZ2U/Z2UuY2FuY2VsbGFibGU6ITApKX0sRC5yYWY9YyxELmNhZj1wLER9KSgpO3JldHVybiBXfSl9KTt2YXIgdGYsbTUsSjM9YigoKT0+e0QyZSgpO2s2KCk7aHIoKTt2MygpO0UkKCk7YzIoKTtIJCgpO0FpKCk7SiQoKTt1MygpO3RBKCk7Z2xlKCk7S3UoKTtnNigpO3ZjZSgpO3ljZSgpO1RBKCk7a2NlKCk7dGY9ajEoQUEoKSwxKSxtNT17T2JqZWN0TWFwOkp1LFN0cmluZ21hcDplZixGYXN0TWFwOlEzfX0pO3ZhciBPcj17fTtHZShPcix7Y3NzRm9yRGVza3RvcDooKT0+dUJ0LGNzc0Zvck5vdGVib29rOigpPT5mQnQsY3NzRm9yUGhhYmxldDooKT0+Z0J0LGNzc0ZvclBob25lOigpPT5iQnQsY3NzRm9yVGFibGV0OigpPT5tQnQsZGVza3RvcDooKT0+REEsbm90ZWJvb2s6KCk9PkVBLHBoYWJsZXQ6KCk9PklBLHBob25lOigpPT5OQSx0YWJsZXQ6KCk9PlBBfSk7dmFyIERBLEVBLFBBLElBLE5BLHVCdCxmQnQsbUJ0LGdCdCxiQnQsRkE9YigoKT0+e2VsKCk7Y3IoKTtEQT0xNjAwLEVBPTEyNDAsUEE9MTAyNCxJQT02MDAsTkE9NDAwLHVCdD10PT5xdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1pbi13aWR0aDogJHtEQX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWluLXdpZHRoOiAke0RBfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLGZCdD10PT5xdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtFQX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke0VBfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLG1CdD10PT5xdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtQQX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke1BBfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLGdCdD10PT5xdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtJQX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke0lBfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApLGJCdD10PT5xdChgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtOQX1weCkgewogICAgICAke3QuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke05BfXB4KSB7CiAgICAgICR7dC5jc3NUZXh0fQogICAgfQogIGApfSk7dmFyIHJmLFNjZT1iKCgpPT57SjMoKTtyZj1jbGFzc3tkb210b29sc0luc3RhbmNlO3Njcm9sbENhbGxiYWNrcz1bXTtsZW5pc0luc3RhbmNlPW51bGw7aGFuZGxlTmF0aXZlU2Nyb2xsPWU9Pnt0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKX07aGFuZGxlTGVuaXNTY3JvbGw9ZT0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfTtjb25zdHJ1Y3RvcihlKXt0aGlzLmRvbXRvb2xzSW5zdGFuY2U9ZSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl9c3dlZXRTY3JvbGxlcj1uZXcgdGYuZGVmYXVsdCh7fSk7YXN5bmMgdG9FbGVtZW50KGUsYSl7dGhpcy5zd2VldFNjcm9sbGVyLnRvRWxlbWVudChlLGEpLGF3YWl0IGR0LmRlbGF5Rm9yKGEuZHVyYXRpb24pfWFzeW5jIGRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpe2xldCBlPUJlLmRlZmVyKCksYT0xMDAsaT0zLHI9Ljc1LHM9W107ZnVuY3Rpb24gbihkKXtzLnB1c2goZC5kZWx0YVkpLHMubGVuZ3RoPj1hJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixuKSxvKCkpfWZ1bmN0aW9uIG8oKXtsZXQgZD1zLmxlbmd0aC0xLGM9MDtmb3IobGV0IGw9MDtsPGQ7bCsrKU1hdGguYWJzKHNbbCsxXS1zW2xdKTw9aSYmYysrO2MvZD49cj8oY29uc29sZS5sb2coIlNtb290aCBzY3JvbGxpbmcgZGV0ZWN0ZWQuIiksZS5yZXNvbHZlKCEwKSk6KGNvbnNvbGUubG9nKCJTbW9vdGggc2Nyb2xsaW5nIE5PVCBkZXRlY3RlZC4iKSxlLnJlc29sdmUoITEpKX1yZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixuKSxlLnByb21pc2V9YXN5bmMgZW5hYmxlTGVuaXNTY3JvbGwoZSl7bGV0IGE9bmV3IGY1KHthdXRvUmFmOiEwfSk7aWYoZT8uZGlzYWJsZU9uTmF0aXZlU21vb3RoU2Nyb2xsJiZhd2FpdCB0aGlzLmRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpKXthLmRlc3Ryb3koKTtyZXR1cm59dGhpcy5sZW5pc0luc3RhbmNlPWEsdGhpcy5kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpLHRoaXMuYXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpO2xldCBpPWEuZGVzdHJveS5iaW5kKGEpO2EuZGVzdHJveT0oKT0+e2koKSx0aGlzLmRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5sZW5pc0luc3RhbmNlPW51bGx9fW9uU2Nyb2xsKGUpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLnB1c2goZSl9ZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLmZvckVhY2goZT0+e3RyeXtlKCl9Y2F0Y2goYSl7Y29uc29sZS5lcnJvcigiRXJyb3IgaW4gc2Nyb2xsIGNhbGxiYWNrOiIsYSl9fSl9YXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCl9ZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCl9YXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNJbnN0YW5jZSYmdGhpcy5sZW5pc0luc3RhbmNlLm9uKCJzY3JvbGwiLHRoaXMuaGFuZGxlTGVuaXNTY3JvbGwpfWRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmxlbmlzSW5zdGFuY2UmJnRoaXMubGVuaXNJbnN0YW5jZS5vZmYoInNjcm9sbCIsdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCl9fX0pO3ZhciBzZixDY2U9YigoKT0+e2VsKCk7SjMoKTtzZj1jbGFzc3tkb210b29sc1JlZjtnb0JyaWdodEJvb2xlYW49ITE7cHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpO3RoZW1lT2JzZXJ2YWJsZT1uZXcgQXQucnhqcy5SZXBsYXlTdWJqZWN0KDEpO2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tdG9vbHNSZWY9ZSx0aGlzLmdvQnJpZ2h0Qm9vbGVhbj10aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5tYXRjaGVzLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYT0+e3RoaXMuZ29CcmlnaHRCb29sZWFuPWEubWF0Y2hlcyx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9KSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9YXN5bmMgZW5hYmxlQXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2UoKXtkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LnN0eWxlJiZ0aGlzLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoe25leHQ6ZT0+e2RvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZD1lPyIjZmZmIjoiIzAwMCJ9fSl9YXN5bmMgdXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKXt0aGlzLnRoZW1lT2JzZXJ2YWJsZS5uZXh0KHRoaXMuZ29CcmlnaHRCb29sZWFuKX1nb0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSEwLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1nb0RhcmsoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hMSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9dG9nZ2xlRGFya0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSF0aGlzLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9fX0pO3ZhciBPQSxuZixfY2U9YigoKT0+e0ozKCk7KGZ1bmN0aW9uKHQpe3RbdC5CYWNrc3BhY2U9OF09IkJhY2tzcGFjZSIsdFt0LlRhYj05XT0iVGFiIix0W3QuRW50ZXI9MTNdPSJFbnRlciIsdFt0LlNoaWZ0PTE2XT0iU2hpZnQiLHRbdC5DdHJsPTE3XT0iQ3RybCIsdFt0LkFsdD0xOF09IkFsdCIsdFt0LlBhdXNlQnJlYWs9MTldPSJQYXVzZUJyZWFrIix0W3QuQ2Fwc0xvY2s9MjBdPSJDYXBzTG9jayIsdFt0LkVzY2FwZT0yN109IkVzY2FwZSIsdFt0LlNwYWNlPTMyXT0iU3BhY2UiLHRbdC5QYWdlVXA9MzNdPSJQYWdlVXAiLHRbdC5QYWdlRG93bj0zNF09IlBhZ2VEb3duIix0W3QuRW5kPTM1XT0iRW5kIix0W3QuSG9tZT0zNl09IkhvbWUiLHRbdC5MZWZ0QXJyb3c9MzddPSJMZWZ0QXJyb3ciLHRbdC5VcEFycm93PTM4XT0iVXBBcnJvdyIsdFt0LlJpZ2h0QXJyb3c9MzldPSJSaWdodEFycm93Iix0W3QuRG93bkFycm93PTQwXT0iRG93bkFycm93Iix0W3QuSW5zZXJ0PTQ1XT0iSW5zZXJ0Iix0W3QuRGVsZXRlPTQ2XT0iRGVsZXRlIix0W3QuWmVybz00OF09Ilplcm8iLHRbdC5DbG9zZWRQYXJlbj00OF09IkNsb3NlZFBhcmVuIix0W3QuT25lPTQ5XT0iT25lIix0W3QuRXhjbGFtYXRpb25NYXJrPTQ5XT0iRXhjbGFtYXRpb25NYXJrIix0W3QuVHdvPTUwXT0iVHdvIix0W3QuQXRTaWduPTUwXT0iQXRTaWduIix0W3QuVGhyZWU9NTFdPSJUaHJlZSIsdFt0LlBvdW5kU2lnbj01MV09IlBvdW5kU2lnbiIsdFt0Lkhhc2g9NTFdPSJIYXNoIix0W3QuRm91cj01Ml09IkZvdXIiLHRbdC5Eb2xsYXJTaWduPTUyXT0iRG9sbGFyU2lnbiIsdFt0LkZpdmU9NTNdPSJGaXZlIix0W3QuUGVyY2VudFNpZ249NTNdPSJQZXJjZW50U2lnbiIsdFt0LlNpeD01NF09IlNpeCIsdFt0LkNhcmV0PTU0XT0iQ2FyZXQiLHRbdC5IYXQ9NTRdPSJIYXQiLHRbdC5TZXZlbj01NV09IlNldmVuIix0W3QuQW1wZXJzYW5kPTU1XT0iQW1wZXJzYW5kIix0W3QuRWlnaHQ9NTZdPSJFaWdodCIsdFt0LlN0YXI9NTZdPSJTdGFyIix0W3QuQXN0ZXJpaz01Nl09IkFzdGVyaWsiLHRbdC5OaW5lPTU3XT0iTmluZSIsdFt0Lk9wZW5QYXJlbj01N109Ik9wZW5QYXJlbiIsdFt0LkE9NjVdPSJBIix0W3QuQj02Nl09IkIiLHRbdC5DPTY3XT0iQyIsdFt0LkQ9NjhdPSJEIix0W3QuRT02OV09IkUiLHRbdC5GPTcwXT0iRiIsdFt0Lkc9NzFdPSJHIix0W3QuSD03Ml09IkgiLHRbdC5JPTczXT0iSSIsdFt0Lko9NzRdPSJKIix0W3QuSz03NV09IksiLHRbdC5MPTc2XT0iTCIsdFt0Lk09NzddPSJNIix0W3QuTj03OF09Ik4iLHRbdC5PPTc5XT0iTyIsdFt0LlA9ODBdPSJQIix0W3QuUT04MV09IlEiLHRbdC5SPTgyXT0iUiIsdFt0LlM9ODNdPSJTIix0W3QuVD04NF09IlQiLHRbdC5VPTg1XT0iVSIsdFt0LlY9ODZdPSJWIix0W3QuVz04N109IlciLHRbdC5YPTg4XT0iWCIsdFt0Llk9ODldPSJZIix0W3QuWj05MF09IloiLHRbdC5MZWZ0V2luZG93S2V5PTkxXT0iTGVmdFdpbmRvd0tleSIsdFt0LlJpZ2h0V2luZG93S2V5PTkyXT0iUmlnaHRXaW5kb3dLZXkiLHRbdC5TZWxlY3RLZXk9OTNdPSJTZWxlY3RLZXkiLHRbdC5OdW1wYWQwPTk2XT0iTnVtcGFkMCIsdFt0Lk51bXBhZDE9OTddPSJOdW1wYWQxIix0W3QuTnVtcGFkMj05OF09Ik51bXBhZDIiLHRbdC5OdW1wYWQzPTk5XT0iTnVtcGFkMyIsdFt0Lk51bXBhZDQ9MTAwXT0iTnVtcGFkNCIsdFt0Lk51bXBhZDU9MTAxXT0iTnVtcGFkNSIsdFt0Lk51bXBhZDY9MTAyXT0iTnVtcGFkNiIsdFt0Lk51bXBhZDc9MTAzXT0iTnVtcGFkNyIsdFt0Lk51bXBhZDg9MTA0XT0iTnVtcGFkOCIsdFt0Lk51bXBhZDk9MTA1XT0iTnVtcGFkOSIsdFt0Lk11bHRpcGx5PTEwNl09Ik11bHRpcGx5Iix0W3QuQWRkPTEwN109IkFkZCIsdFt0LlN1YnRyYWN0PTEwOV09IlN1YnRyYWN0Iix0W3QuRGVjaW1hbFBvaW50PTExMF09IkRlY2ltYWxQb2ludCIsdFt0LkRpdmlkZT0xMTFdPSJEaXZpZGUiLHRbdC5GMT0xMTJdPSJGMSIsdFt0LkYyPTExM109IkYyIix0W3QuRjM9MTE0XT0iRjMiLHRbdC5GND0xMTVdPSJGNCIsdFt0LkY1PTExNl09IkY1Iix0W3QuRjY9MTE3XT0iRjYiLHRbdC5GNz0xMThdPSJGNyIsdFt0LkY4PTExOV09IkY4Iix0W3QuRjk9MTIwXT0iRjkiLHRbdC5GMTA9MTIxXT0iRjEwIix0W3QuRjExPTEyMl09IkYxMSIsdFt0LkYxMj0xMjNdPSJGMTIiLHRbdC5OdW1Mb2NrPTE0NF09Ik51bUxvY2siLHRbdC5TY3JvbGxMb2NrPTE0NV09IlNjcm9sbExvY2siLHRbdC5TZW1pQ29sb249MTg2XT0iU2VtaUNvbG9uIix0W3QuRXF1YWxzPTE4N109IkVxdWFscyIsdFt0LkNvbW1hPTE4OF09IkNvbW1hIix0W3QuRGFzaD0xODldPSJEYXNoIix0W3QuUGVyaW9kPTE5MF09IlBlcmlvZCIsdFt0LlVuZGVyU2NvcmU9MTg5XT0iVW5kZXJTY29yZSIsdFt0LlBsdXNTaWduPTE4N109IlBsdXNTaWduIix0W3QuRm9yd2FyZFNsYXNoPTE5MV09IkZvcndhcmRTbGFzaCIsdFt0LlRpbGRlPTE5Ml09IlRpbGRlIix0W3QuR3JhdmVBY2NlbnQ9MTkyXT0iR3JhdmVBY2NlbnQiLHRbdC5PcGVuQnJhY2tldD0yMTldPSJPcGVuQnJhY2tldCIsdFt0LkNsb3NlZEJyYWNrZXQ9MjIxXT0iQ2xvc2VkQnJhY2tldCIsdFt0LlF1b3RlPTIyMl09IlF1b3RlIn0pKE9BfHwoT0E9e30pKTtuZj1jbGFzc3tkb21Ob2RlO21hcENvbWJvc1RvSGFuZGxlcnM9bmV3IE1hcDtwcmVzc2VkS2V5cz1uZXcgU2V0O2NvbnN0cnVjdG9yKGUpe3RoaXMuZG9tTm9kZT1lLHRoaXMuc3RhcnRMaXN0ZW5pbmcoKX1rZXlFbnVtPU9BO29uKGUpe2xldCBhPW5ldyBBdC5yeGpzLlN1YmplY3Q7cmV0dXJuIHRoaXMucmVnaXN0ZXJLZXlzKGUsYSksYX10cmlnZ2VyS2V5UHJlc3MoZSl7Zm9yKGxldCBhIG9mIGUpdGhpcy5wcmVzc2VkS2V5cy5hZGQoYSk7dGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cygpO2ZvcihsZXQgYSBvZiBlKXRoaXMucHJlc3NlZEtleXMuZGVsZXRlKGEpfXN0YXJ0TGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1zdG9wTGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1jbGVhcigpe3RoaXMuc3RvcExpc3RlbmluZygpLHRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5jbGVhcigpLHRoaXMucHJlc3NlZEtleXMuY2xlYXIoKX1oYW5kbGVLZXlEb3duPWU9Pnt0aGlzLnByZXNzZWRLZXlzLmFkZChlLmtleUNvZGUpLHRoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHMoZSl9O2NoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKGUpe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5mb3JFYWNoKChhLGkpPT57dGhpcy5hcmVBbGxLZXlzUHJlc3NlZChpKSYmYS5uZXh0KGUpfSl9aGFuZGxlS2V5VXA9ZT0+e3RoaXMucHJlc3NlZEtleXMuZGVsZXRlKGUua2V5Q29kZSl9O2FyZUFsbEtleXNQcmVzc2VkKGUpe2xldCBhPSEwO3JldHVybiBlLmZvckVhY2goaT0+e3RoaXMucHJlc3NlZEtleXMuaGFzKGkpfHwoYT0hMSl9KSxhfXJlZ2lzdGVyS2V5cyhlLGEpe2lmKCF0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuaGFzKGUpKXRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5zZXQoZSxhKTtlbHNlIHJldHVybiB0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZ2V0KGUpfX19KTt2YXIgRzIsZWw9YigoKT0+e0ozKCk7RkEoKTtTY2UoKTtLdSgpO0NjZSgpO19jZSgpO0cyPWNsYXNzIHR7c3RhdGljIGluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsO3N0YXRpYyBhc3luYyBzZXR1cERvbVRvb2xzKGU9e30pe3JldHVybiFlLmlnbm9yZUdsb2JhbCYmdC5pbml0aWFsaXphdGlvblByb21pc2U/YXdhaXQgdC5pbml0aWFsaXphdGlvblByb21pc2U6ZS5pZ25vcmVHbG9iYWw/bmV3IHQoZSk6KHQuaW5pdGlhbGl6YXRpb25Qcm9taXNlPShhc3luYygpPT57bGV0IGE7aWYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMpYT1nbG9iYWxUaGlzLmRlZXNEb21Ub29scztlbHNle2dsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPW5ldyB0KGUpLGE9Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM7bGV0IGk9KCk9PnsoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSJ8fGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKSYmKGEuZWxlbWVudHMuaGVhZEVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaGVhZCIpLGEuZWxlbWVudHMuYm9keUVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLGEua2V5Ym9hcmQ9bmV3IG5mKGRvY3VtZW50LmJvZHkpLGEuZG9tUmVhZHkucmVzb2x2ZSgpKX07ZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSJ8fGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiP2koKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixpKSxhLmRvbVRvb2xzUmVhZHkucmVzb2x2ZSgpfXJldHVybiBhd2FpdCBhLmRvbVRvb2xzUmVhZHkucHJvbWlzZSxhfSkoKSxhd2FpdCB0LmluaXRpYWxpemF0aW9uUHJvbWlzZSl9c3RhdGljIGdldEdsb2JhbERvbVRvb2xzU3luYygpe2lmKCFnbG9iYWxUaGlzLmRlZXNEb21Ub29scyl0aHJvdyBuZXcgRXJyb3IoIllvdSB0cmllZCB0byBhY2Nlc3MgZG9tdG9vbHMgc3luY2hyb25vdXNseSB0b28gZWFybHkiKTtyZXR1cm4gZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHN9ZWxlbWVudHM9e2hlYWRFbGVtZW50Om51bGwsYm9keUVsZW1lbnQ6bnVsbH07d2Vic2V0dXA9bmV3IHU1KHttZXRhT2JqZWN0Ont0aXRsZToiIn19KTtzbWFydHN0YXRlPW5ldyBHbi5TbWFydHN0YXRlO2RvbVRvb2xzU3RhdGVQYXJ0PXRoaXMuc21hcnRzdGF0ZS5nZXRTdGF0ZVBhcnQoImRvbXRvb2xzIix7dmlydHVhbFZpZXdwb3J0OiJuYXRpdmUiLGp3dDpudWxsfSk7cm91dGVyPW5ldyBXbi5TbWFydFJvdXRlcih7ZGVidWc6ITF9KTtjb252ZW5pZW5jZT17dHlwZWRyZXF1ZXN0Om9hLHNtYXJ0ZGVsYXk6ZHQsc21hcnRqc29uOlMxLHNtYXJ0dXJsOllufTtkZWVzQ29tbXM9bmV3IF82LkRlZXNDb21tcztzY3JvbGxlcj1uZXcgcmYodGhpcyk7dGhlbWVNYW5hZ2VyPW5ldyBzZih0aGlzKTtrZXlib2FyZD1udWxsO2RvbVRvb2xzUmVhZHk9QmUuZGVmZXIoKTtkb21SZWFkeT1CZS5kZWZlcigpO2dsb2JhbFN0eWxlc1JlYWR5PUJlLmRlZmVyKCk7Y29uc3RydWN0b3IoZSl7fXJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwPW5ldyBtNS5TdHJpbmdtYXA7cnVuT25jZVJlc3VsdE1hcD1uZXcgbTUuRmFzdE1hcDtydW5PbmNlRXJyb3JNYXA9bmV3IG01LkZhc3RNYXA7YXN5bmMgcnVuT25jZShlLGEpe2xldCBpPWAke2V9K3J1bm5pbmdDaGVja2A7aWYoIXRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuY2hlY2tTdHJpbmcoZSkpe3RoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuYWRkU3RyaW5nKGUpLHRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuYWRkU3RyaW5nKGkpO3RyeXtsZXQgcj1hd2FpdCBhKCk7dGhpcy5ydW5PbmNlUmVzdWx0TWFwLmFkZFRvTWFwKGUscil9Y2F0Y2gocil7dGhpcy5ydW5PbmNlRXJyb3JNYXAuYWRkVG9NYXAoZSxyKX1maW5hbGx5e3RoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAucmVtb3ZlU3RyaW5nKGkpfX1yZXR1cm4gYXdhaXQgdGhpcy5ydW5PbmNlVHJhY2tlclN0cmluZ01hcC5yZWdpc3RlclVudGlsVHJ1ZShyPT4hci5pbmNsdWRlcyhpKSwoKT0+e2xldCByPXRoaXMucnVuT25jZUVycm9yTWFwLmdldEJ5S2V5KGUpO2lmKHIpdGhyb3cgcjtyZXR1cm4gdGhpcy5ydW5PbmNlUmVzdWx0TWFwLmdldEJ5S2V5KGUpfSl9YXN5bmMgc2V0R2xvYmFsU3R5bGVzKGUpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2EudHlwZT0idGV4dC9jc3MiLGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSkpLHRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnQuYXBwZW5kQ2hpbGQoYSl9YXN5bmMgc2V0RXh0ZXJuYWxTY3JpcHQoZSl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCBhPUJlLmRlZmVyKCksaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpLnNyYz1lLGkuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXthLnJlc29sdmUoKX0pLChkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5ib2R5KS5hcHBlbmQoaSksYXdhaXQgYS5wcm9taXNlfWFzeW5jIHNldEV4dGVybmFsQ3NzKGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTthLnJlbD0ic3R5bGVzaGVldCIsYS5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixhLmhyZWY9ZSxkb2N1bWVudC5oZWFkLmFwcGVuZChhKX1hc3luYyBzZXRXZWJzaXRlSW5mbyhlKXthd2FpdCB0aGlzLndlYnNldHVwLnNldHVwKGUpLGF3YWl0IHRoaXMud2Vic2V0dXAucmVhZHlQcm9taXNlfX19KTt2YXIgb2YsVGNlLExjZT1iKCgpPT57ZWwoKTtjcigpO29mPSgoKT0+e2xldCB0PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIE9TIFgiKT09PS0xP1FgYC5jc3NUZXh0OiIiO3JldHVybiBRYAogICAgLyogd2lkdGggKi8KICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICB3aWR0aDogMHB4OwogICAgfQogICAgYm9keSB7CiAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsKICAgIH0KICBgLmNzc1RleHR9KSgpLFRjZT1RYAogIC8qCiAgQGZvbnQtZmFjZSB7CiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJzsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbWF0ZXJpYWxpY29ucy92NDIvZmxVaFJxNnR6WmNsUUVKLVZkZy1JdWlhRHNOY0loUTh0US53b2ZmMikKICAgICAgZm9ybWF0KCd3b2ZmMicpOwogIH0gKi8KCiAgLyogZ2xvYmFsIGJvZHkgc3R5bGVzICovCiAgYm9keSB7CiAgICBtYXJnaW46IDBweDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogc2Nyb2xsIGJhciBzdHlsZXMgKi8KICAke3F0KG9mKX0KYC5jc3NUZXh0fSk7dmFyIGIxPXt9O0dlKGIxLHtzZXR1cDooKT0+eEJ0LHN0YXRpY1N0eWxlczooKT0+dkJ0LHN0eWxlczooKT0+eUJ0fSk7dmFyIHZCdCx5QnQseEJ0LCRjZT1iKCgpPT57SjMoKTtlbCgpO0xjZSgpO2NyKCk7dkJ0PVFgCiAgKiB7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgOmhvc3QgewogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgfQoKICAke3F0KG9mKX0KYCx5QnQ9d2AKICA8c3R5bGU+CiAgICAqIHsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzLCBjb2xvciAwLjFzOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgfQoKICAgIDpob3N0IHsKICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjsKICAgIH0KCiAgICAke29mfQogIDwvc3R5bGU+CmAseEJ0PWFzeW5jKHQsZT17fSk9PntsZXQgYT1hd2FpdCBHMi5zZXR1cERvbVRvb2xzKGUpO3JldHVybiBhLnJ1bk9uY2UoImVsZW1lbnRCYXNpY1NldHVwIixhc3luYygpPT57YS5zZXRHbG9iYWxTdHlsZXMoVGNlKX0pLGF9fSk7dmFyIGxmPXt9O0dlKGxmLHtjc3NHcmlkQ29sdW1uczooKT0+d0J0fSk7dmFyIHdCdCxBY2U9YigoKT0+e3dCdD0odCxlKT0+e2xldCBhPSIiO2ZvcihsZXQgaT0wO2k8dDtpKyspYSs9YCBjYWxjKCgxMDAlLyR7dH0pIC0gKCR7ZSoodC0xKX1weC8ke3R9KSlgO3JldHVybiBhfX0pO3ZhciBNdD17fTtHZShNdCx7U3dlZXRTY3JvbGw6KCk9PlJBLmRlZmF1bHQsc21hcnRkZWxheTooKT0+ZHQsc21hcnRtYXJrZG93bjooKT0+WDMsc21hcnRwcm9taXNlOigpPT5CZSxzbWFydHJvdXRlcjooKT0+V24sc21hcnRyeDooKT0+QXQsc21hcnRzdGF0ZTooKT0+R24sc21hcnRzdHJpbmc6KCk9PmsyLHNtYXJ0dXJsOigpPT5Zbix0eXBlZHJlcXVlc3Q6KCk9Pm9hfSk7dmFyIFJBLERjZT1iKCgpPT57aHIoKTtFJCgpO2MyKCk7UkE9ajEoQUEoKSwxKTtKJCgpO0gkKCk7QWkoKTt1MygpO3RBKCk7azYoKX0pO3ZhciBydD17fTtHZShydCx7RG9tVG9vbHM6KCk9PkcyLFR5cGVkUmVxdWVzdDooKT0+ejYsYnJlYWtwb2ludHM6KCk9Pk9yLGNzczooKT0+bGYsZWxlbWVudEJhc2ljOigpPT5iMSxwbHVnaW5zOigpPT5NdH0pO3ZhciBUdD1iKCgpPT57TEcoKTskY2UoKTtGQSgpO0FjZSgpO2VsKCk7azYoKTtLdSgpO0RjZSgpfSk7dmFyIEJBLEtuLEhBPWIoKCk9PntCQT1qMSh3ZCgpLDEpO0FpKCk7Y3IoKTtURygpO1R0KCk7S249e2NzczpRLHVuc2FmZUNTUzpxdCxMaXRFbGVtZW50OkpyLHByb3BlcnR5Okl9fSk7dmFyIGNmLFBjZT1iKCgpPT57Y3IoKTtIQSgpO1R0KCk7Y2Y9Y2xhc3MgdHtzdGF0aWMgaW5zdGFuY2U9bnVsbDtzdGF0aWMgZ2V0U2luZ2xldG9uKCl7cmV0dXJuIHQuaW5zdGFuY2V8fCh0Lmluc3RhbmNlPW5ldyB0KSx0Lmluc3RhbmNlfWRvbXRvb2xzUHJvbWlzZT1HMi5zZXR1cERvbVRvb2xzKCk7Z29CcmlnaHQ9ITE7YmRWYXJUcmlwbGV0U3RvcmU9W107Y29uc3RydWN0b3IoKXt0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIGU9PntlLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGFzeW5jIGE9Pnt0aGlzLmdvQnJpZ2h0PWEsYXdhaXQgZS5kb21SZWFkeS5wcm9taXNlO2ZvcihsZXQgaSBvZiB0aGlzLmJkVmFyVHJpcGxldFN0b3JlKWRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoaS5jc3NWYXJOYW1lLHRoaXMuZ29CcmlnaHQ/aS5icmlnaHRWYWx1ZTppLmRhcmtWYWx1ZSl9KX0pfWdldCBkZWZhdWx0U3R5bGVzKCl7cmV0dXJuIGIxLnN0YXRpY1N0eWxlc31jc3NGb3JEZXNrdG9wKGUpe3JldHVybiBxdChPci5jc3NGb3JEZXNrdG9wKGUpKX1jc3NGb3JOb3RlYm9vayhlKXtyZXR1cm4gcXQoT3IuY3NzRm9yTm90ZWJvb2soZSkpfWNzc0ZvclRhYmxldChlKXtyZXR1cm4gcXQoT3IuY3NzRm9yVGFibGV0KGUpKX1jc3NGb3JQaGFibGV0KGUpe3JldHVybiBxdChPci5jc3NGb3JQaGFibGV0KGUpKX1jc3NGb3JQaG9uZShlKXtyZXR1cm4gcXQoT3IuY3NzRm9yUGhvbmUoZSkpfWJkVGhlbWUoZSxhKXtsZXQgaSxyO0cyLmdldEdsb2JhbERvbVRvb2xzU3luYygpP3I9RzIuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCkudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj9lOmE6cj1hO2xldCBzPXRoaXMuYmRWYXJUcmlwbGV0U3RvcmUuZmluZChuPT5uLmRhcmtWYWx1ZT09PWEmJm4uYnJpZ2h0VmFsdWU9PT1lKTtpZihzKWk9cy5jc3NWYXJOYW1lO2Vsc2V7bGV0IG49e2Nzc1Zhck5hbWU6YC0tJHtCQS51bmkoKX1gLGJyaWdodFZhbHVlOmUsZGFya1ZhbHVlOmF9O3RoaXMuYmRWYXJUcmlwbGV0U3RvcmUucHVzaChuKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIG89Pnthd2FpdCBvLmRvbVJlYWR5LnByb21pc2UsZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShuLmNzc1Zhck5hbWUscil9KSxpPW4uY3NzVmFyTmFtZX1yZXR1cm4gS24udW5zYWZlQ1NTKGB2YXIoJHtpfSwgJHtyfSlgKX1jc3NHcmlkQ29sdW1ucz0oZSxhKT0+e2xldCBpPSIiO2ZvcihsZXQgcj0wO3I8ZTtyKyspaSs9YCBjYWxjKCgxMDAlLyR7ZX0pIC0gKCR7YSooZS0xKX1weC8ke2V9KSlgO3JldHVybiBLbi51bnNhZmVDU1MoaSl9fX0pO3ZhciBxQSxNQnQsVkEsekJ0LEljZSxkZix6cyxrQnQsU0J0LE5jZT1iKCgpPT57X2koKTtxQT1TeW1ib2wuZm9yKCIiKSxNQnQ9dD0+e2lmKHQ/LnI9PT1xQSlyZXR1cm4gdD8uXyRsaXRTdGF0aWMkfSxWQT10PT4oe18kbGl0U3RhdGljJDp0LHI6cUF9KSx6QnQ9KHQsLi4uZSk9Pih7XyRsaXRTdGF0aWMkOmUucmVkdWNlKChhLGkscik9PmErKHM9PntpZihzLl8kbGl0U3RhdGljJCE9PXZvaWQgMClyZXR1cm4gcy5fJGxpdFN0YXRpYyQ7dGhyb3cgRXJyb3IoYFZhbHVlIHBhc3NlZCB0byAnbGl0ZXJhbCcgZnVuY3Rpb24gbXVzdCBiZSBhICdsaXRlcmFsJyByZXN1bHQ6ICR7c30uIFVzZSAndW5zYWZlU3RhdGljJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0CiAgICAgICAgICAgIHRha2UgY2FyZSB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS5gKX0pKGkpK3RbcisxXSx0WzBdKSxyOnFBfSksSWNlPW5ldyBNYXAsZGY9dD0+KGUsLi4uYSk9PntsZXQgaT1hLmxlbmd0aCxyLHMsbj1bXSxvPVtdLGQsYz0wLHA9ITE7Zm9yKDtjPGk7KXtmb3IoZD1lW2NdO2M8aSYmKHM9YVtjXSwocj1NQnQocykpIT09dm9pZCAwKTspZCs9citlWysrY10scD0hMDtjIT09aSYmby5wdXNoKHMpLG4ucHVzaChkKSxjKyt9aWYoYz09PWkmJm4ucHVzaChlW2ldKSxwKXtsZXQgbD1uLmpvaW4oIiQkbGl0JCQiKTsoZT1JY2UuZ2V0KGwpKT09PXZvaWQgMCYmKG4ucmF3PW4sSWNlLnNldChsLGU9bikpLGE9b31yZXR1cm4gdChlLC4uLmEpfSx6cz1kZih3KSxrQnQ9ZGYoSXcpLFNCdD1kZihOdyl9KTt2YXIgRmNlPWIoKCk9PntOY2UoKX0pO3ZhciBScixaMSxwaSxrcz1iKCgpPT57UnI9e0FUVFJJQlVURToxLENISUxEOjIsUFJPUEVSVFk6MyxCT09MRUFOX0FUVFJJQlVURTo0LEVWRU5UOjUsRUxFTUVOVDo2fSxaMT10PT4oLi4uZSk9Pih7XyRsaXREaXJlY3RpdmUkOnQsdmFsdWVzOmV9KSxwaT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9XyRBVChlLGEsaSl7dGhpcy5fJEN0PWUsdGhpcy5fJEFNPWEsdGhpcy5fJENpPWl9XyRBUyhlLGEpe3JldHVybiB0aGlzLnVwZGF0ZShlLGEpfXVwZGF0ZShlLGEpe3JldHVybiB0aGlzLnJlbmRlciguLi5hKX19fSk7dmFyIHRsLGc1LE9jZT1iKCgpPT57X2koKTtrcygpO3RsPWNsYXNzIGV4dGVuZHMgcGl7Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksdGhpcy5pdD1rMSxlLnR5cGUhPT1Sci5DSElMRCl0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgYmluZGluZ3MiKX1yZW5kZXIoZSl7aWYoZT09PWsxfHxlPT1udWxsKXJldHVybiB0aGlzLl90PXZvaWQgMCx0aGlzLml0PWU7aWYoZT09PW0xKXJldHVybiBlO2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBFcnJvcih0aGlzLmNvbnN0cnVjdG9yLmRpcmVjdGl2ZU5hbWUrIigpIGNhbGxlZCB3aXRoIGEgbm9uLXN0cmluZyB2YWx1ZSIpO2lmKGU9PT10aGlzLml0KXJldHVybiB0aGlzLl90O3RoaXMuaXQ9ZTtsZXQgYT1bZV07cmV0dXJuIGEucmF3PWEsdGhpcy5fdD17XyRsaXRUeXBlJDp0aGlzLmNvbnN0cnVjdG9yLnJlc3VsdFR5cGUsc3RyaW5nczphLHZhbHVlczpbXX19fTt0bC5kaXJlY3RpdmVOYW1lPSJ1bnNhZmVIVE1MIix0bC5yZXN1bHRUeXBlPTE7ZzU9WjEodGwpfSk7dmFyIFJjZT1iKCgpPT57T2NlKCl9KTt2YXIgaGUsakE9YigoKT0+e2hlPXQ9PihlLGEpPT57YSE9PXZvaWQgMD9hLmFkZEluaXRpYWxpemVyKCgpPT57Y3VzdG9tRWxlbWVudHMuZGVmaW5lKHQsZSl9KTpjdXN0b21FbGVtZW50cy5kZWZpbmUodCxlKX19KTt2YXIgQmNlPWIoKCk9PntqQSgpfSk7ZnVuY3Rpb24gSih0KXtyZXR1cm4gSSh7Li4udCxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX12YXIgSGNlPWIoKCk9PntnNygpO30pO2Z1bmN0aW9uIENCdCh0KXtyZXR1cm4oZSxhKT0+e2xldCBpPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6ZVthXTtPYmplY3QuYXNzaWduKGksdCl9fXZhciBxY2U9YigoKT0+e30pO3ZhciBoaSxhbD1iKCgpPT57aGk9KHQsZSxhKT0+KGEuY29uZmlndXJhYmxlPSEwLGEuZW51bWVyYWJsZT0hMCxSZWZsZWN0LmRlY29yYXRlJiZ0eXBlb2YgZSE9Im9iamVjdCImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsYSksYSl9KTtmdW5jdGlvbiBVQSh0LGUpe3JldHVybihhLGkscik9PntsZXQgcz1uPT5uLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IodCk/P251bGw7aWYoZSl7bGV0e2dldDpuLHNldDpvfT10eXBlb2YgaT09Im9iamVjdCI/YTpyPz8oKCk9PntsZXQgZD1TeW1ib2woKTtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbZF19LHNldChjKXt0aGlzW2RdPWN9fX0pKCk7cmV0dXJuIGhpKGEsaSx7Z2V0KCl7bGV0IGQ9bi5jYWxsKHRoaXMpO3JldHVybiBkPT09dm9pZCAwJiYoZD1zKHRoaXMpLChkIT09bnVsbHx8dGhpcy5oYXNVcGRhdGVkKSYmby5jYWxsKHRoaXMsZCkpLGR9fSl9cmV0dXJuIGhpKGEsaSx7Z2V0KCl7cmV0dXJuIHModGhpcyl9fSl9fXZhciBWY2U9YigoKT0+e2FsKCk7fSk7ZnVuY3Rpb24gV0EodCl7cmV0dXJuKGUsYSk9PmhpKGUsYSx7Z2V0KCl7cmV0dXJuKHRoaXMucmVuZGVyUm9vdD8/KF9CdD8/PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkpLnF1ZXJ5U2VsZWN0b3JBbGwodCl9fSl9dmFyIF9CdCxqY2U9YigoKT0+e2FsKCk7fSk7ZnVuY3Rpb24gR0EodCl7cmV0dXJuKGUsYSk9PmhpKGUsYSx7YXN5bmMgZ2V0KCl7cmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKHQpPz9udWxsfX0pfXZhciBVY2U9YigoKT0+e2FsKCk7fSk7ZnVuY3Rpb24gVEJ0KHQpe3JldHVybihlLGEpPT57bGV0e3Nsb3Q6aSxzZWxlY3RvcjpyfT10Pz97fSxzPSJzbG90IisoaT9gW25hbWU9JHtpfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gaGkoZSxhLHtnZXQoKXtsZXQgbj10aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3Iocyksbz1uPy5hc3NpZ25lZEVsZW1lbnRzKHQpPz9bXTtyZXR1cm4gcj09PXZvaWQgMD9vOm8uZmlsdGVyKGQ9PmQubWF0Y2hlcyhyKSl9fSl9fXZhciBXY2U9YigoKT0+e2FsKCk7fSk7ZnVuY3Rpb24gTEJ0KHQpe3JldHVybihlLGEpPT57bGV0e3Nsb3Q6aX09dD8/e30scj0ic2xvdCIrKGk/YFtuYW1lPSR7aX1dYDoiOm5vdChbbmFtZV0pIik7cmV0dXJuIGhpKGUsYSx7Z2V0KCl7cmV0dXJuIHRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihyKT8uYXNzaWduZWROb2Rlcyh0KT8/W119fSl9fXZhciBHY2U9YigoKT0+e2FsKCk7fSk7dmFyIFljZT1iKCgpPT57akEoKTtnNygpO0hjZSgpO3FjZSgpO1ZjZSgpO2pjZSgpO1VjZSgpO1djZSgpO0djZSgpfSk7dmFyIFpjZSxwZix4ZSxYY2U9YigoKT0+e0hBKCk7WmNlPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0scGY9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LHhlPSgoKT0+e2xldCB0PUtuLkxpdEVsZW1lbnQsZSxhPVtdLGk9W10scixzPVtdLG49W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgdHtzdGF0aWN7bGV0IGQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUodFtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7ZT1bS24ucHJvcGVydHkoe3R5cGU6Qm9vbGVhbn0pXSxyPVtLbi5wcm9wZXJ0eSgpXSxaY2UodGhpcyxudWxsLGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJnb0JyaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yz0+ImdvQnJpZ2h0ImluIGMsZ2V0OmM9PmMuZ29CcmlnaHQsc2V0OihjLHApPT57Yy5nb0JyaWdodD1wfX0sbWV0YWRhdGE6ZH0sYSxpKSxaY2UodGhpcyxudWxsLHIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb210b29scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yz0+ImRvbXRvb2xzImluIGMsZ2V0OmM9PmMuZG9tdG9vbHMsc2V0OihjLHApPT57Yy5kb210b29scz1wfX0sbWV0YWRhdGE6ZH0scyxuKSxkJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmR9KX0jZT1wZih0aGlzLGEsITEpO2dldCBnb0JyaWdodCgpe3JldHVybiB0aGlzLiNlfXNldCBnb0JyaWdodChkKXt0aGlzLiNlPWR9ZG9tdG9vbHNQcm9taXNlPXBmKHRoaXMsaSk7I3Q9cGYodGhpcyxzLHZvaWQgMCk7Z2V0IGRvbXRvb2xzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRvbXRvb2xzKGQpe3RoaXMuI3Q9ZH1yeFN1YnNjcmlwdGlvbnM9KHBmKHRoaXMsbiksW10pO3RoZW1lU3Vic2NyaXB0aW9uO2VsZW1lbnREb21SZWFkeURlZmVycmVkPXJ0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCk7ZWxlbWVudERvbVJlYWR5PXRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3RvcihkPXt9KXtzdXBlcigpLHRoaXMuZG9tdG9vbHNQcm9taXNlPXJ0LmVsZW1lbnRCYXNpYy5zZXR1cCh0aGlzLGQpLHRoaXMuZG9tdG9vbHNQcm9taXNlLnRoZW4oYz0+e3RoaXMuZG9tdG9vbHM9Y30pfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtsZXQgZD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnRoZW1lU3Vic2NyaXB0aW9uPWQudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoYz0+e3RoaXMuZ29CcmlnaHQ9Yyx0aGlzLnRoZW1lQ2hhbmdlZCYmdGhpcy50aGVtZUNoYW5nZWQoYyl9KSx0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudGhlbWVTdWJzY3JpcHRpb24pO2ZvcihsZXQgYyBvZiB0aGlzLnN0YXJ0dXBGdW5jdGlvbnMpYXdhaXQgYygpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlZXNFbGVtZW50Q29ubmVjdGVkIikpfWZpcnN0VXBkYXRlZChkKXtzdXBlci5maXJzdFVwZGF0ZWQoZCksdGhpcy5lbGVtZW50RG9tUmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9c3RhcnR1cEZ1bmN0aW9ucz1bXTtyZWdpc3RlclN0YXJ0dXBGdW5jdGlvbihkKXt0aGlzLnN0YXJ0dXBGdW5jdGlvbnMucHVzaChkKX1nYXJiYWdlRnVuY3Rpb25zPVtdO3JlZ2lzdGVyR2FyYmFnZUZ1bmN0aW9uKGQpe3RoaXMuZ2FyYmFnZUZ1bmN0aW9ucy5wdXNoKGQpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2Usc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtmb3IobGV0IGQgb2YgdGhpcy5yeFN1YnNjcmlwdGlvbnMpZC51bnN1YnNjcmliZSgpO2ZvcihsZXQgZCBvZiB0aGlzLmdhcmJhZ2VGdW5jdGlvbnMpYXdhaXQgZCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlZXNFbGVtZW50RGlzY29ubmVjdGVkIikpfX19KSgpfSk7dmFyICRCdCxLY2UsWUEsQUJ0LERCdCxFQnQsUEJ0LElCdCxaQSxRY2UsU3MsT2ksTkJ0LGI1LFhBLHY1LEtBLGlsPWIoKCk9PntfaSgpOyh7STokQnR9PUZ3KSxLY2U9dD0+dCxZQT10PT50PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIixBQnQ9e0hUTUw6MSxTVkc6MixNQVRITUw6M30sREJ0PSh0LGUpPT5lPT09dm9pZCAwP3Q/Ll8kbGl0VHlwZSQhPT12b2lkIDA6dD8uXyRsaXRUeXBlJD09PWUsRUJ0PXQ9PnQ/Ll8kbGl0VHlwZSQ/LmghPW51bGwsUEJ0PXQ9PnQ/Ll8kbGl0RGlyZWN0aXZlJCE9PXZvaWQgMCxJQnQ9dD0+dD8uXyRsaXREaXJlY3RpdmUkLFpBPXQ9PnQuc3RyaW5ncz09PXZvaWQgMCxRY2U9KCk9PmRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpLFNzPSh0LGUsYSk9PntsZXQgaT10Ll8kQUEucGFyZW50Tm9kZSxyPWU9PT12b2lkIDA/dC5fJEFCOmUuXyRBQTtpZihhPT09dm9pZCAwKXtsZXQgcz1pLmluc2VydEJlZm9yZShRY2UoKSxyKSxuPWkuaW5zZXJ0QmVmb3JlKFFjZSgpLHIpO2E9bmV3ICRCdChzLG4sdCx0Lm9wdGlvbnMpfWVsc2V7bGV0IHM9YS5fJEFCLm5leHRTaWJsaW5nLG49YS5fJEFNLG89biE9PXQ7aWYobyl7bGV0IGQ7YS5fJEFRPy4odCksYS5fJEFNPXQsYS5fJEFQIT09dm9pZCAwJiYoZD10Ll8kQVUpIT09bi5fJEFVJiZhLl8kQVAoZCl9aWYocyE9PXJ8fG8pe2xldCBkPWEuXyRBQTtmb3IoO2QhPT1zOyl7bGV0IGM9S2NlKGQpLm5leHRTaWJsaW5nO0tjZShpKS5pbnNlcnRCZWZvcmUoZCxyKSxkPWN9fX1yZXR1cm4gYX0sT2k9KHQsZSxhPXQpPT4odC5fJEFJKGUsYSksdCksTkJ0PXt9LGI1PSh0LGU9TkJ0KT0+dC5fJEFIPWUsWEE9dD0+dC5fJEFILHY1PXQ9Pnt0Ll8kQVIoKSx0Ll8kQUEucmVtb3ZlKCl9LEtBPXQ9Pnt0Ll8kQVIoKX19KTtmdW5jdGlvbiBGQnQodCl7dGhpcy5fJEFOIT09dm9pZCAwPyhoZih0aGlzKSx0aGlzLl8kQU09dCxKY2UodGhpcykpOnRoaXMuXyRBTT10fWZ1bmN0aW9uIE9CdCh0LGU9ITEsYT0wKXtsZXQgaT10aGlzLl8kQUgscj10aGlzLl8kQU47aWYociE9PXZvaWQgMCYmci5zaXplIT09MClpZihlKWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBzPWE7czxpLmxlbmd0aDtzKyspeTUoaVtzXSwhMSksaGYoaVtzXSk7ZWxzZSBpIT1udWxsJiYoeTUoaSwhMSksaGYoaSkpO2Vsc2UgeTUodGhpcyx0KX12YXIgeTUsaGYsSmNlLFJCdCxxYSx1Zj1iKCgpPT57aWwoKTtrcygpO2tzKCk7eTU9KHQsZSk9PntsZXQgYT10Ll8kQU47aWYoYT09PXZvaWQgMClyZXR1cm4hMTtmb3IobGV0IGkgb2YgYSlpLl8kQU8/LihlLCExKSx5NShpLGUpO3JldHVybiEwfSxoZj10PT57bGV0IGUsYTtkb3tpZigoZT10Ll8kQU0pPT09dm9pZCAwKWJyZWFrO2E9ZS5fJEFOLGEuZGVsZXRlKHQpLHQ9ZX13aGlsZShhPy5zaXplPT09MCl9LEpjZT10PT57Zm9yKGxldCBlO2U9dC5fJEFNO3Q9ZSl7bGV0IGE9ZS5fJEFOO2lmKGE9PT12b2lkIDApZS5fJEFOPWE9bmV3IFNldDtlbHNlIGlmKGEuaGFzKHQpKWJyZWFrO2EuYWRkKHQpLFJCdChlKX19O1JCdD10PT57dC50eXBlPT1Sci5DSElMRCYmKHQuXyRBUD8/PU9CdCx0Ll8kQVE/Pz1GQnQpfSxxYT1jbGFzcyBleHRlbmRzIHBpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQoZSxhLGkpe3N1cGVyLl8kQVQoZSxhLGkpLEpjZSh0aGlzKSx0aGlzLmlzQ29ubmVjdGVkPWUuXyRBVX1fJEFPKGUsYT0hMCl7ZSE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPWUsZT90aGlzLnJlY29ubmVjdGVkPy4oKTp0aGlzLmRpc2Nvbm5lY3RlZD8uKCkpLGEmJih5NSh0aGlzLGUpLGhmKHRoaXMpKX1zZXRWYWx1ZShlKXtpZihaQSh0aGlzLl8kQ3QpKXRoaXMuXyRDdC5fJEFJKGUsdGhpcyk7ZWxzZXtsZXQgYT1bLi4udGhpcy5fJEN0Ll8kQUhdO2FbdGhpcy5fJENpXT1lLHRoaXMuXyRDdC5fJEFJKGEsdGhpcywwKX19ZGlzY29ubmVjdGVkKCl7fXJlY29ubmVjdGVkKCl7fX19KTt2YXIgZmY9YigoKT0+e3VmKCl9KTt2YXIgUUEsZTZlLEJCdCx0NmU9YigoKT0+e2NyKCk7ZmYoKTtRQT1jbGFzcyBleHRlbmRzIHFhe3Byb21pc2U7aGFzUHJvbWlzZVNldHRsZWQ9ITE7cmVuZGVyKGUpe3JldHVybiB0aGlzLnByb21pc2UhPT1lJiYodGhpcy5wcm9taXNlPWUsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5oYW5kbGVQcm9taXNlKGUpKSxtMX1oYW5kbGVQcm9taXNlKGUpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITEsZS50aGVuKGE9Pnt0aGlzLnByb21pc2U9PT1lJiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUoYSksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KS5jYXRjaChhPT57dGhpcy5wcm9taXNlPT09ZSYmIXRoaXMuaGFzUHJvbWlzZVNldHRsZWQmJih0aGlzLnNldFZhbHVlKGEpLHRoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITApfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMH1yZWNvbm5lY3RlZCgpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWR8fHRoaXMuaGFuZGxlUHJvbWlzZSh0aGlzLnByb21pc2UpfX0sZTZlPVoxKFFBKSxCQnQ9dD0+ZTZlKHQoKSl9KTt2YXIgSkEsSEJ0LGE2ZT1iKCgpPT57Y3IoKTtmZigpO0FpKCk7SkE9Y2xhc3MgZXh0ZW5kcyBxYXtvYnNlcnZhYmxlO3N1Yj1udWxsO3JlbmRlcihlKXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlIT09ZSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT1lLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3Vic2NyaWJlKGUpKSxtMX1zdWJzY3JpYmUoZSl7dGhpcy5zdWI9ZS5zdWJzY3JpYmUoYT0+e3RoaXMuc2V0VmFsdWUoYSl9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKX1yZWNvbm5lY3RlZCgpe3RoaXMuc3Vic2NyaWJlKHRoaXMub2JzZXJ2YWJsZSl9fSxIQnQ9WjEoSkEpfSk7dmFyIGVELGk2ZSxyNmU9YigoKT0+e2NyKCk7ZmYoKTtBaSgpO2VEPWNsYXNzIGV4dGVuZHMgcWF7b2JzZXJ2YWJsZTt0ZW1wbGF0ZUZuO3N1Yj1udWxsO3JlbmRlcihlLGEpe3JldHVybih0aGlzLm9ic2VydmFibGUhPT1lfHx0aGlzLnRlbXBsYXRlRm4hPT1hKSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT1lLHRoaXMudGVtcGxhdGVGbj1hLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKSksbTF9c3RhcnRTdWJzY3JpcHRpb24oKXt0aGlzLnN1Yj10aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKGU9PntsZXQgYT10aGlzLnRlbXBsYXRlRm4oZSk7dGhpcy5zZXRWYWx1ZShhKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdGFydFN1YnNjcmlwdGlvbigpfX0saTZlPVoxKGVEKX0pO3ZhciB0RCxGMCxPMCxhRD1iKCgpPT57dEQ9YXN5bmModCxlKT0+e2ZvciBhd2FpdChsZXQgYSBvZiB0KWlmKGF3YWl0IGUoYSk9PT0hMSlyZXR1cm59LEYwPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuRz1lfWRpc2Nvbm5lY3QoKXt0aGlzLkc9dm9pZCAwfXJlY29ubmVjdChlKXt0aGlzLkc9ZX1kZXJlZigpe3JldHVybiB0aGlzLkd9fSxPMD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuWT12b2lkIDAsdGhpcy5aPXZvaWQgMH1nZXQoKXtyZXR1cm4gdGhpcy5ZfXBhdXNlKCl7dGhpcy5ZPz89bmV3IFByb21pc2UoZT0+dGhpcy5aPWUpfXJlc3VtZSgpe3RoaXMuWj8uKCksdGhpcy5ZPXRoaXMuWj12b2lkIDB9fX0pO3ZhciBzNmUsbjZlLG1mLGlELG82ZT1iKCgpPT57X2koKTtpbCgpO3VmKCk7YUQoKTtrcygpO3M2ZT10PT4hWUEodCkmJnR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiIsbjZlPTEwNzM3NDE4MjMsbWY9Y2xhc3MgZXh0ZW5kcyBxYXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJEN3dD1uNmUsdGhpcy5fJENidD1bXSx0aGlzLl8kQ0s9bmV3IEYwKHRoaXMpLHRoaXMuXyRDWD1uZXcgTzB9cmVuZGVyKC4uLmUpe3JldHVybiBlLmZpbmQoYT0+IXM2ZShhKSk/P20xfXVwZGF0ZShlLGEpe2xldCBpPXRoaXMuXyRDYnQscj1pLmxlbmd0aDt0aGlzLl8kQ2J0PWE7bGV0IHM9dGhpcy5fJENLLG49dGhpcy5fJENYO3RoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCk7Zm9yKGxldCBvPTA7bzxhLmxlbmd0aCYmIShvPnRoaXMuXyRDd3QpO28rKyl7bGV0IGQ9YVtvXTtpZighczZlKGQpKXJldHVybiB0aGlzLl8kQ3d0PW8sZDtvPHImJmQ9PT1pW29dfHwodGhpcy5fJEN3dD1uNmUscj0wLFByb21pc2UucmVzb2x2ZShkKS50aGVuKGFzeW5jIGM9Pntmb3IoO24uZ2V0KCk7KWF3YWl0IG4uZ2V0KCk7bGV0IHA9cy5kZXJlZigpO2lmKHAhPT12b2lkIDApe2xldCBsPXAuXyRDYnQuaW5kZXhPZihkKTtsPi0xJiZsPHAuXyRDd3QmJihwLl8kQ3d0PWwscC5zZXRWYWx1ZShjKSl9fSkpfXJldHVybiBtMX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxpRD1aMShtZil9KTt2YXIgbDZlPWIoKCk9PntvNmUoKX0pO3ZhciBybCxxQnQsYzZlPWIoKCk9PntfaSgpO3VmKCk7YUQoKTtrcygpO3JsPWNsYXNzIGV4dGVuZHMgcWF7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRDSz1uZXcgRjAodGhpcyksdGhpcy5fJENYPW5ldyBPMH1yZW5kZXIoZSxhKXtyZXR1cm4gbTF9dXBkYXRlKGUsW2EsaV0pe2lmKHRoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCksYT09PXRoaXMuXyRDSilyZXR1cm4gbTE7dGhpcy5fJENKPWE7bGV0IHI9MCx7XyRDSzpzLF8kQ1g6bn09dGhpcztyZXR1cm4gdEQoYSxhc3luYyBvPT57Zm9yKDtuLmdldCgpOylhd2FpdCBuLmdldCgpO2xldCBkPXMuZGVyZWYoKTtpZihkIT09dm9pZCAwKXtpZihkLl8kQ0ohPT1hKXJldHVybiExO2khPT12b2lkIDAmJihvPWkobyxyKSksZC5jb21taXRWYWx1ZShvLHIpLHIrK31yZXR1cm4hMH0pLG0xfWNvbW1pdFZhbHVlKGUsYSl7dGhpcy5zZXRWYWx1ZShlKX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxxQnQ9WjEocmwpfSk7dmFyIHJELGQ2ZT1iKCgpPT57a3MoKTtjNmUoKTtpbCgpO3JEPVoxKGNsYXNzIGV4dGVuZHMgcmx7Y29uc3RydWN0b3IodCl7aWYoc3VwZXIodCksdC50eXBlIT09UnIuQ0hJTEQpdGhyb3cgRXJyb3IoImFzeW5jQXBwZW5kIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgZXhwcmVzc2lvbnMiKX11cGRhdGUodCxlKXtyZXR1cm4gdGhpcy5fJEN0dD10LHN1cGVyLnVwZGF0ZSh0LGUpfWNvbW1pdFZhbHVlKHQsZSl7ZT09PTAmJktBKHRoaXMuXyRDdHQpO2xldCBhPVNzKHRoaXMuXyRDdHQpO09pKGEsdCl9fSl9KTt2YXIgcDZlPWIoKCk9PntkNmUoKX0pO3ZhciBzRCxoNmU9YigoKT0+e19pKCk7a3MoKTtpbCgpO3NEPVoxKGNsYXNzIGV4dGVuZHMgcGl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMua2V5PWsxfXJlbmRlcih0LGUpe3JldHVybiB0aGlzLmtleT10LGV9dXBkYXRlKHQsW2UsYV0pe3JldHVybiBlIT09dGhpcy5rZXkmJihiNSh0KSx0aGlzLmtleT1lKSxhfX0pfSk7dmFyIHU2ZT1iKCgpPT57aDZlKCl9KTt2YXIgZjZlLG5ELG02ZT1iKCgpPT57X2koKTtrcygpO2lsKCk7ZjZlPSh0LGUsYSk9PntsZXQgaT1uZXcgTWFwO2ZvcihsZXQgcj1lO3I8PWE7cisrKWkuc2V0KHRbcl0scik7cmV0dXJuIGl9LG5EPVoxKGNsYXNzIGV4dGVuZHMgcGl7Y29uc3RydWN0b3IodCl7aWYoc3VwZXIodCksdC50eXBlIT09UnIuQ0hJTEQpdGhyb3cgRXJyb3IoInJlcGVhdCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gdGV4dCBleHByZXNzaW9ucyIpfWR0KHQsZSxhKXtsZXQgaTthPT09dm9pZCAwP2E9ZTplIT09dm9pZCAwJiYoaT1lKTtsZXQgcj1bXSxzPVtdLG49MDtmb3IobGV0IG8gb2YgdClyW25dPWk/aShvLG4pOm4sc1tuXT1hKG8sbiksbisrO3JldHVybnt2YWx1ZXM6cyxrZXlzOnJ9fXJlbmRlcih0LGUsYSl7cmV0dXJuIHRoaXMuZHQodCxlLGEpLnZhbHVlc311cGRhdGUodCxbZSxhLGldKXtsZXQgcj1YQSh0KSx7dmFsdWVzOnMsa2V5czpufT10aGlzLmR0KGUsYSxpKTtpZighQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gdGhpcy51dD1uLHM7bGV0IG89dGhpcy51dD8/PVtdLGQ9W10sYyxwLGw9MCxmPXIubGVuZ3RoLTEsZz0wLHk9cy5sZW5ndGgtMTtmb3IoO2w8PWYmJmc8PXk7KWlmKHJbbF09PT1udWxsKWwrKztlbHNlIGlmKHJbZl09PT1udWxsKWYtLTtlbHNlIGlmKG9bbF09PT1uW2ddKWRbZ109T2kocltsXSxzW2ddKSxsKyssZysrO2Vsc2UgaWYob1tmXT09PW5beV0pZFt5XT1PaShyW2ZdLHNbeV0pLGYtLSx5LS07ZWxzZSBpZihvW2xdPT09blt5XSlkW3ldPU9pKHJbbF0sc1t5XSksU3ModCxkW3krMV0scltsXSksbCsrLHktLTtlbHNlIGlmKG9bZl09PT1uW2ddKWRbZ109T2kocltmXSxzW2ddKSxTcyh0LHJbbF0scltmXSksZi0tLGcrKztlbHNlIGlmKGM9PT12b2lkIDAmJihjPWY2ZShuLGcseSkscD1mNmUobyxsLGYpKSxjLmhhcyhvW2xdKSlpZihjLmhhcyhvW2ZdKSl7bGV0IHY9cC5nZXQobltnXSksbT12IT09dm9pZCAwP3Jbdl06bnVsbDtpZihtPT09bnVsbCl7bGV0IHg9U3ModCxyW2xdKTtPaSh4LHNbZ10pLGRbZ109eH1lbHNlIGRbZ109T2kobSxzW2ddKSxTcyh0LHJbbF0sbSksclt2XT1udWxsO2crK31lbHNlIHY1KHJbZl0pLGYtLTtlbHNlIHY1KHJbbF0pLGwrKztmb3IoO2c8PXk7KXtsZXQgdj1Tcyh0LGRbeSsxXSk7T2kodixzW2ddKSxkW2crK109dn1mb3IoO2w8PWY7KXtsZXQgdj1yW2wrK107diE9PW51bGwmJnY1KHYpfXJldHVybiB0aGlzLnV0PW4sYjUodCxkKSxtMX19KX0pO3ZhciBnNmU9YigoKT0+e202ZSgpfSk7dmFyIFZhPXt9O0dlKFZhLHthc3luY0FwcGVuZDooKT0+ckQsa2V5ZWQ6KCk9PnNELHJlcGVhdDooKT0+bkQscmVzb2x2ZTooKT0+ZTZlLHJlc29sdmVFeGVjOigpPT5CQnQsc3Vic2NyaWJlOigpPT5IQnQsc3Vic2NyaWJlV2l0aFRlbXBsYXRlOigpPT5pNmUsdW50aWw6KCk9PmlEfSk7dmFyIGI2ZT1iKCgpPT57dDZlKCk7YTZlKCk7cjZlKCk7bDZlKCk7cDZlKCk7dTZlKCk7ZzZlKCl9KTt2YXIgeDU9e307R2UoeDUse0RlZXNFbGVtZW50OigpPT54ZSxjc3M6KCk9PlEsY3NzTWFuYWdlcjooKT0+aCxjdXN0b21FbGVtZW50OigpPT5oZSxkaXJlY3RpdmVzOigpPT5WYSxkb210b29sczooKT0+cnQsaHRtbDooKT0+dyxwcm9wZXJ0eTooKT0+SSxxdWVyeTooKT0+VUEscXVlcnlBbGw6KCk9PldBLHF1ZXJ5QXN5bmM6KCk9PkdBLHJlbmRlcjooKT0+cm4sc3RhdGU6KCk9Pkosc3RhdGljOigpPT56cyx1bnNhZmVDU1M6KCk9PnF0LHVuc2FmZUhUTUw6KCk9Pmc1LHVuc2FmZVN0YXRpYzooKT0+VkF9KTt2YXIgaCx1ZT1iKCgpPT57UGNlKCk7Y3IoKTtGY2UoKTtSY2UoKTtCY2UoKTtZY2UoKTtUdCgpO1hjZSgpO2I2ZSgpO2g9Y2YuZ2V0U2luZ2xldG9uKCl9KTtmdW5jdGlvbiBWQnQodCxlKXtsZXQgYT1pMlt0XTtyZXR1cm4gdHlwZW9mIGE9PSJvYmplY3QiJiZlP2FbZV18fCJhdXRvIjp0eXBlb2YgYT09Im51bWJlciI/YToiYXV0byJ9dmFyIGkyLGpCdCxnZixkMSx1aT1iKCgpPT57aTI9e2Jhc2U6e2NvbnRlbnQ6ImF1dG8iLGlucHV0RWxlbWVudHM6MX0sZml4ZWQ6e2FwcEJhcjoxMCxzaWRlTWVudToxMCxtb2JpbGVOYXY6MjUwfSxiYWNrZHJvcDp7ZHJvcGRvd246MTk5OSxtb2RhbDoyOTk5LGNvbnRleHRNZW51OjM5OTl9LG92ZXJsYXk6e2Ryb3Bkb3duOjJlMyxtb2RhbDozZTMsY29udGV4dE1lbnU6NGUzLHRvYXN0OjVlM30sbW9kYWxEcm9wZG93bjozNTAwLHd5c2l3eWdNZW51czo0NTAwfTtqQnQ9eyJkZWVzLW1vZGFsIjppMi5vdmVybGF5Lm1vZGFsLCJkZWVzLXdpbmRvd2xheWVyIjppMi5vdmVybGF5LmRyb3Bkb3duLCJkZWVzLWNvbnRleHRtZW51IjppMi5vdmVybGF5LmNvbnRleHRNZW51LCJkZWVzLXRvYXN0IjppMi5vdmVybGF5LnRvYXN0LCJkZWVzLWFwcHVpLW1haW5tZW51IjppMi5maXhlZC5hcHBCYXIsImRlZXMtbW9iaWxlbmF2aWdhdGlvbiI6aTIuZml4ZWQubW9iaWxlTmF2LCJkZWVzLXNsYXNoLW1lbnUiOmkyLnd5c2l3eWdNZW51cywiZGVlcy1mb3JtYXR0aW5nLW1lbnUiOmkyLnd5c2l3eWdNZW51c30sZ2Y9Y2xhc3MgdHtzdGF0aWMgaW5zdGFuY2U7YWN0aXZlRWxlbWVudHM9bmV3IFNldDtlbGVtZW50WkluZGV4TWFwPW5ldyBXZWFrTWFwO2N1cnJlbnRaSW5kZXg9MWUzO2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB0Lmluc3RhbmNlfHwodC5pbnN0YW5jZT1uZXcgdCksdC5pbnN0YW5jZX1nZXROZXh0WkluZGV4KCl7cmV0dXJuIHRoaXMuY3VycmVudFpJbmRleCs9MTAsdGhpcy5jdXJyZW50WkluZGV4fXJlZ2lzdGVyKGUsYSl7dGhpcy5hY3RpdmVFbGVtZW50cy5hZGQoZSksdGhpcy5lbGVtZW50WkluZGV4TWFwLnNldChlLGEpfXVucmVnaXN0ZXIoZSl7dGhpcy5hY3RpdmVFbGVtZW50cy5kZWxldGUoZSksdGhpcy5lbGVtZW50WkluZGV4TWFwLmRlbGV0ZShlKSx0aGlzLmFjdGl2ZUVsZW1lbnRzLnNpemU9PT0wJiYodGhpcy5jdXJyZW50WkluZGV4PTFlMyl9Z2V0RWxlbWVudFpJbmRleChlKXtyZXR1cm4gdGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChlKX1nZXRBY3RpdmVDb3VudCgpe3JldHVybiB0aGlzLmFjdGl2ZUVsZW1lbnRzLnNpemV9Z2V0Q3VycmVudFpJbmRleCgpe3JldHVybiB0aGlzLmN1cnJlbnRaSW5kZXh9Y2xlYXIoKXt0aGlzLmFjdGl2ZUVsZW1lbnRzLmNsZWFyKCksdGhpcy5lbGVtZW50WkluZGV4TWFwPW5ldyBXZWFrTWFwLHRoaXMuY3VycmVudFpJbmRleD0xZTN9Z2V0QWN0aXZlRWxlbWVudHNJbk9yZGVyKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5hY3RpdmVFbGVtZW50cykuc29ydCgoZSxhKT0+e2xldCBpPXRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQoZSl8fDAscj10aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KGEpfHwwO3JldHVybiBpLXJ9KX19LGQxPWdmLmdldEluc3RhbmNlKCl9KTt2YXIgUW4sQ2UscWU9YigoKT0+e3VlKCk7UW49e2NvbG9yczp7bGlnaHQ6e2JnUHJpbWFyeToiI2ZmZmZmZiIsYmdTZWNvbmRhcnk6IiNmYWZhZmEiLGJnVGVydGlhcnk6IiNmNGY0ZjUiLHRleHRQcmltYXJ5OiIjMDkwOTBiIix0ZXh0U2Vjb25kYXJ5OiIjMzc0MTUxIix0ZXh0TXV0ZWQ6IiM3MTcxN2EiLGJvcmRlckRlZmF1bHQ6IiNlNWU3ZWIiLGJvcmRlclN1YnRsZToiI2Y0ZjRmNSIsYm9yZGVyU3Ryb25nOiIjZDFkNWRiIixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCJ9LGRhcms6e2JnUHJpbWFyeToiIzA5MDkwYiIsYmdTZWNvbmRhcnk6IiMwYTBhMGEiLGJnVGVydGlhcnk6IiMxODE4MWIiLHRleHRQcmltYXJ5OiIjZmFmYWZhIix0ZXh0U2Vjb25kYXJ5OiIjZDRkNGQ4Iix0ZXh0TXV0ZWQ6IiNhMWExYWEiLGJvcmRlckRlZmF1bHQ6IiMyNzI3MmEiLGJvcmRlclN1YnRsZToiIzFhMWExYSIsYm9yZGVyU3Ryb25nOiIjM2YzZjQ2IixhY2NlbnRQcmltYXJ5OiIjM2I4MmY2IixhY2NlbnRTdWNjZXNzOiIjMjJjNTVlIixhY2NlbnRXYXJuaW5nOiIjZjU5ZTBiIixhY2NlbnRFcnJvcjoiI2VmNDQ0NCJ9fSxzcGFjaW5nOnt4czoiNHB4IixzbToiOHB4IixtZDoiMTJweCIsbGc6IjE2cHgiLHhsOiIyNHB4IiwiMnhsIjoiMzJweCIsIjN4bCI6IjQ4cHgifSxyYWRpdXM6e3hzOiIycHgiLHNtOiI0cHgiLG1kOiI2cHgiLGxnOiI4cHgiLHhsOiIxMnB4IixmdWxsOiI5OTlweCJ9LHNoYWRvd3M6e3hzOiIwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KSIsc206IjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSkiLG1kOiIwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsbGc6IjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSJ9LHRyYW5zaXRpb25zOntmYXN0OiIwLjFzIixkZWZhdWx0OiIwLjE1cyIsc2xvdzoiMC4ycyIsc2xvd2VyOiIwLjNzIn0sY29udHJvbEhlaWdodHM6e3NtOiIzMnB4IixtZDoiMzZweCIsbGc6IjQwcHgiLHhsOiI0OHB4In19LENlPVFgCiAgOmhvc3QgewogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogU3BhY2luZyBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXNwYWNpbmcteHM6IDRweDsKICAgIC0tZGVlcy1zcGFjaW5nLXNtOiA4cHg7CiAgICAtLWRlZXMtc3BhY2luZy1tZDogMTJweDsKICAgIC0tZGVlcy1zcGFjaW5nLWxnOiAxNnB4OwogICAgLS1kZWVzLXNwYWNpbmcteGw6IDI0cHg7CiAgICAtLWRlZXMtc3BhY2luZy0yeGw6IDMycHg7CiAgICAtLWRlZXMtc3BhY2luZy0zeGw6IDQ4cHg7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogQm9yZGVyIFJhZGl1cyBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXJhZGl1cy14czogMnB4OwogICAgLS1kZWVzLXJhZGl1cy1zbTogNHB4OwogICAgLS1kZWVzLXJhZGl1cy1tZDogNnB4OwogICAgLS1kZWVzLXJhZGl1cy1sZzogOHB4OwogICAgLS1kZWVzLXJhZGl1cy14bDogMTJweDsKICAgIC0tZGVlcy1yYWRpdXMtZnVsbDogOTk5cHg7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogU2hhZG93IEVsZXZhdGlvbiBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXNoYWRvdy14czogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7CiAgICAtLWRlZXMtc2hhZG93LXNtOiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgLS1kZWVzLXNoYWRvdy1tZDogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAtLWRlZXMtc2hhZG93LWxnOiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CgogICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgICogVHJhbnNpdGlvbiBEdXJhdGlvbiBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLXRyYW5zaXRpb24tZmFzdDogMC4xczsKICAgIC0tZGVlcy10cmFuc2l0aW9uLWRlZmF1bHQ6IDAuMTVzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tc2xvdzogMC4yczsKICAgIC0tZGVlcy10cmFuc2l0aW9uLXNsb3dlcjogMC4zczsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBDb250cm9sIEhlaWdodCBTY2FsZQogICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXNtOiAzMnB4OwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LW1kOiAzNnB4OwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LWxnOiA0MHB4OwogICAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXhsOiA0OHB4OwogIH0KYH0pO3ZhciB2NmU9YigoKT0+e30pO3ZhciBvRD1iKCgpPT57UmkoKTtSaSgpfSk7dmFyIHk2ZT1iKCgpPT57fSk7dmFyIHg2ZT1iKCgpPT57fSk7dmFyIHc2ZT1iKCgpPT57fSk7dmFyIE02ZT1iKCgpPT57fSk7dmFyIGxEPXt9O3ZhciBjRD1iKCgpPT57eTZlKCk7eDZlKCk7dzZlKCk7TTZlKCl9KTt2YXIgejZlPWIoKCk9PntjRCgpO2JmKCl9KTt2YXIgazZlPWIoKCk9PntSaSgpfSk7dmFyIFM2ZT1iKCgpPT57fSk7dmFyIEM2ZT1iKCgpPT57UmkoKX0pO3ZhciBfNmU9YigoKT0+e1JpKCl9KTt2YXIgVDZlPWIoKCk9Pnt9KTt2YXIgTDZlPWIoKCk9Pnt9KTt2YXIgJDZlPWIoKCk9Pnt9KTt2YXIgZEQ9e307dmFyIHZmPWIoKCk9PntrNmUoKTtTNmUoKTtDNmUoKTtfNmUoKTtUNmUoKTtMNmUoKTskNmUoKX0pO3ZhciBBNmU9YigoKT0+e3ZmKCk7b0QoKX0pO3ZhciBENmU9YigoKT0+e2JmKCk7dmYoKX0pO3ZhciBFNmU9YigoKT0+e30pO3ZhciBQNmU9YigoKT0+e30pO3ZhciBwRD17fTt2YXIgYmY9YigoKT0+e3Y2ZSgpO29EKCk7ejZlKCk7QTZlKCk7RDZlKCk7RTZlKCk7UDZlKCl9KTt2YXIgSTZlPWIoKCk9Pnt9KTt2YXIgTjZlPWIoKCk9Pnt9KTt2YXIgaEQ9e307dmFyIEY2ZT1iKCgpPT57STZlKCk7TjZlKCl9KTt2YXIgTzZlPWIoKCk9Pnt9KTt2YXIgUjZlPWIoKCk9Pnt9KTt2YXIgdUQ9e307dmFyIEI2ZT1iKCgpPT57TzZlKCk7UjZlKCl9KTt2YXIgZkQ9e307dmFyIEg2ZT1iKCgpPT57fSk7dmFyIG1EPWIoKCk9PntSaSgpfSk7dmFyIHE2ZT1iKCgpPT57UmkoKX0pO3ZhciBWNmU9YigoKT0+e21EKCl9KTt2YXIgZ0Q9e307dmFyIGo2ZT1iKCgpPT57bUQoKTtxNmUoKTtWNmUoKX0pO3ZhciBVNmU9YigoKT0+e30pO3ZhciBXNmU9YigoKT0+e30pO3ZhciBiRD17fTt2YXIgRzZlPWIoKCk9PntVNmUoKTtXNmUoKX0pO3ZhciB2RD1iKCgpPT57fSk7dmFyIHlELFk2ZT1iKCgpPT57dkQoKTt5RD1jbGFzc3t9fSk7dmFyIFo2ZT1iKCgpPT57fSk7dmFyIFg2ZT1iKCgpPT57fSk7dmFyIEs2ZT1iKCgpPT57fSk7dmFyIFE2ZT1iKCgpPT57fSk7dmFyIEo2ZT1iKCgpPT57fSk7dmFyIGU1ZT1iKCgpPT57fSk7dmFyIHQ1ZT1iKCgpPT57fSk7dmFyIGE1ZT1iKCgpPT57fSk7dmFyIGk1ZT1iKCgpPT57fSk7dmFyIHI1ZT1iKCgpPT57fSk7dmFyIHlmPXt9O0dlKHlmLHtJQ25hbWVEZXNjcmlwdG9yOigpPT55RH0pO3ZhciBzNWU9YigoKT0+e3ZEKCk7WTZlKCk7WjZlKCk7WDZlKCk7SzZlKCk7UTZlKCk7SjZlKCk7ZTVlKCk7dDVlKCk7YTVlKCk7aTVlKCk7cjVlKCl9KTt2YXIgeEQ9YigoKT0+e30pO3ZhciBuNWU9YigoKT0+e3hEKCl9KTt2YXIgd0Q9e307dmFyIG81ZT1iKCgpPT57bjVlKCk7eEQoKX0pO3ZhciBNRD17fTt2YXIgbDVlPWIoKCk9Pnt9KTt2YXIgYzVlPWIoKCk9Pnt9KTt2YXIgZDVlPWIoKCk9Pnt9KTt2YXIgcDVlPWIoKCk9Pnt9KTt2YXIgekQ9e307dmFyIGg1ZT1iKCgpPT57YzVlKCk7ZDVlKCk7cDVlKCl9KTt2YXIgdTVlPWIoKCk9Pnt9KTt2YXIga0Q9e307R2Uoa0Qse2J1c2luZXNzOigpPT5wRCxjb2RlOigpPT5oRCxjb250YWluZXI6KCk9PnVELGNvbnRlbnQ6KCk9PmdELGRhdGFiYXNlOigpPT5sRCxkZXNjcmlwdG9yczooKT0+ZkQsZmluYW5jZTooKT0+ZEQsZ2VuZXJhbDooKT0+YkQsbmV0d29yazooKT0+eWYsc2FhczooKT0+d0Qsc3RvcmFnZTooKT0+TUQsd2Vic2l0ZTooKT0+ekR9KTt2YXIgUmk9YigoKT0+e2JmKCk7RjZlKCk7QjZlKCk7Y0QoKTtINmUoKTt2ZigpO2o2ZSgpO0c2ZSgpO3M1ZSgpO281ZSgpO2w1ZSgpO2g1ZSgpO3U1ZSgpfSk7dmFyIHIyPWIoKCk9PntjMigpO1JpKCl9KTt2YXIgZjVlLG01ZT1iKCgpPT57dWUoKTtyMigpO3MyKCk7ZjVlPSgpPT53YAo8c3R5bGU+CiAgLndpdGhNYXJnaW4gewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW46IDIwcHg7CiAgfQogIC5kZW1vLWNvbnRhaW5lciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogMjBweDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBtaW4taGVpZ2h0OiA0MDBweDsKICB9CiAgLmRlbW8tYXJlYSB7CiAgICBwYWRkaW5nOiA0MHB4OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgfQogIC5kZW1vLWFyZWE6aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAyKTsKICB9Cjwvc3R5bGU+CjxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJCYXNpYyBDb250ZXh0IE1lbnUgd2l0aCBOZXN0ZWQgU3VibWVudXMiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHt0PT57VXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxbe25hbWU6IkZpbGUiLGljb25OYW1lOiJmaWxlVGV4dCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXciLGljb25OYW1lOiJmaWxlUGx1cyIsc2hvcnRjdXQ6IkNtZCtOIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIil9LHtuYW1lOiJPcGVuIixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtPIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gZmlsZSIpfSx7bmFtZToiU2F2ZSIsaWNvbk5hbWU6InNhdmUiLHNob3J0Y3V0OiJDbWQrUyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhwb3J0IGFzIFBERiIsaWNvbk5hbWU6ImRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkV4cG9ydCBQREYiKX0se25hbWU6IkV4cG9ydCBhcyBIVE1MIixpY29uTmFtZToiY29kZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHBvcnQgSFRNTCIpfV19LHtuYW1lOiJFZGl0IixpY29uTmFtZToiZWRpdDMiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiQ3V0IixpY29uTmFtZToic2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDdXQiKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixzaG9ydGN1dDoiQ21kK0MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ29weSIpfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJQYXN0ZSIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZpbmQiLGljb25OYW1lOiJzZWFyY2giLHNob3J0Y3V0OiJDbWQrRiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJGaW5kIil9LHtuYW1lOiJSZXBsYWNlIixpY29uTmFtZToicmVwZWF0IixzaG9ydGN1dDoiQ21kK0giLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVwbGFjZSIpfV19LHtuYW1lOiJWaWV3IixpY29uTmFtZToiZXllIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6Ilpvb20gSW4iLGljb25OYW1lOiJ6b29tSW4iLHNob3J0Y3V0OiJDbWQrKyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIGluIil9LHtuYW1lOiJab29tIE91dCIsaWNvbk5hbWU6Inpvb21PdXQiLHNob3J0Y3V0OiJDbWQrLSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpfSx7bmFtZToiUmVzZXQgWm9vbSIsaWNvbk5hbWU6Im1heGltaXplMiIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGdWxsIFNjcmVlbiIsaWNvbk5hbWU6Im1heGltaXplIixzaG9ydGN1dDoiRjExIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkZ1bGwgc2NyZWVuIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIil9LHtuYW1lOiJIZWxwIixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJEb2N1bWVudGF0aW9uIixpY29uTmFtZToiYm9vayIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJEb2N1bWVudGF0aW9uIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJBYm91dCIsaWNvbk5hbWU6ImluZm8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQWJvdXQiKX1dfV0pfX0+CiAgICAgIDxoMz5SaWdodC1jbGljayBhbnl3aGVyZSBpbiB0aGlzIGFyZWE8L2gzPgogICAgICA8cD5BIGNvbnRleHQgbWVudSB3aXRoIG5lc3RlZCBzdWJtZW51cyB3aWxsIGFwcGVhcjwvcD4KICAgIDwvZGl2PgogIDwvZGVlcy1wYW5lbD4KICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJDb21wb25lbnQtU3BlY2lmaWMgQ29udGV4dCBNZW51Ij4KICAgIDxkZWVzLWJ1dHRvbiBzdHlsZT0ibWFyZ2luOiAyMHB4OyIgQGNvbnRleHRtZW51PSR7dD0+e1V0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHQsW3tuYW1lOiJCdXR0b24gQWN0aW9ucyIsaWNvbk5hbWU6Im1vdXNlUG9pbnRlciIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJDbGljayIsaWNvbk5hbWU6Im1vdXNlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNsaWNrIGFjdGlvbiIpfSx7bmFtZToiRG91YmxlIENsaWNrIixpY29uTmFtZToiemFwIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvdWJsZSBjbGljayIpfSx7bmFtZToiTG9uZyBQcmVzcyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkxvbmcgcHJlc3MiKX1dfSx7bmFtZToiQnV0dG9uIFN0YXRlIixpY29uTmFtZToidG9nZ2xlTGVmdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJFbmFibGUiLGljb25OYW1lOiJjaGVja0NpcmNsZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJFbmFibGUiKX0se25hbWU6IkRpc2FibGUiLGljb25OYW1lOiJ4Q2lyY2xlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRpc2FibGUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaG93IixpY29uTmFtZToiZXllIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3ciKX0se25hbWU6IkhpZGUiLGljb25OYW1lOiJleWVPZmYiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiSGlkZSIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiRGlzYWJsZWQgQWN0aW9uIixpY29uTmFtZToiYmFuIixkaXNhYmxlZDohMCxhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRoaXMgc2hvdWxkIG5vdCBydW4iKX0se25hbWU6IlByb3BlcnRpZXMiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJCdXR0b24gcHJvcGVydGllcyIpfV0pfX0+UmlnaHQtY2xpY2sgb24gdGhpcyBidXR0b248L2RlZXMtYnV0dG9uPgogIDwvZGVlcy1wYW5lbD4KCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iQWR2YW5jZWQgQ29udGV4dCBNZW51IEV4YW1wbGUiPgogICAgPGRpdiBjbGFzcz0iZGVtby1hcmVhIiBAY29udGV4dG1lbnU9JHt0PT57VXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModCxbe25hbWU6IkZvcm1hdCIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiQm9sZCIsaWNvbk5hbWU6ImJvbGQiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJCb2xkIil9LHtuYW1lOiJJdGFsaWMiLGljb25OYW1lOiJpdGFsaWMiLHNob3J0Y3V0OiJDbWQrSSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJJdGFsaWMiKX0se25hbWU6IlVuZGVybGluZSIsaWNvbk5hbWU6InVuZGVybGluZSIsc2hvcnRjdXQ6IkNtZCtVIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZGVybGluZSIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZvbnQgU2l6ZSIsaWNvbk5hbWU6InR5cGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRm9udCBzaXplIG1lbnUiKX0se25hbWU6IkZvbnQgQ29sb3IiLGljb25OYW1lOiJwYWxldHRlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkZvbnQgY29sb3IgbWVudSIpfV19LHtuYW1lOiJUcmFuc2Zvcm0iLGljb25OYW1lOiJzaHVmZmxlIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlRvIFVwcGVyY2FzZSIsaWNvbk5hbWU6ImFycm93VXAiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiVXBwZXJjYXNlIil9LHtuYW1lOiJUbyBMb3dlcmNhc2UiLGljb25OYW1lOiJhcnJvd0Rvd24iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiTG93ZXJjYXNlIil9LHtuYW1lOiJDYXBpdGFsaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDYXBpdGFsaXplIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRGVsZXRlIil9XSl9fT4KICAgICAgPGgzPkFkdmFuY2VkIE5lc3RlZCBNZW51IEV4YW1wbGU8L2gzPgogICAgICA8cD5UaGlzIHNob3dzIGRlZXBseSBuZXN0ZWQgc3VibWVudXMgYW5kIHZhcmlvdXMgZm9ybWF0dGluZyBvcHRpb25zPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIAogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IlN0YXRpYyBDb250ZXh0IE1lbnUgKEFsd2F5cyBWaXNpYmxlKSI+CiAgICA8ZGVlcy1jb250ZXh0bWVudQogICAgICBjbGFzcz0id2l0aE1hcmdpbiIKICAgICAgLm1lbnVJdGVtcz0ke1t7bmFtZToiUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlciIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsaWNvbk5hbWU6ImZvbGRlclBsdXMiLHNob3J0Y3V0OiJDbWQrU2hpZnQrTiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJOZXcgcHJvamVjdCIpfSx7bmFtZToiT3BlbiBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyT3BlbiIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtPIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcHJvamVjdCIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsaWNvbk5hbWU6ImNsb2NrIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlByb2plY3QgQWxwaGEiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBBbHBoYSIpfSx7bmFtZToiUHJvamVjdCBCZXRhIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gQmV0YSIpfSx7bmFtZToiUHJvamVjdCBHYW1tYSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEdhbW1hIil9XX1dfSx7bmFtZToiVG9vbHMiLGljb25OYW1lOiJ0b29sIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IlRlcm1pbmFsIixpY29uTmFtZToidGVybWluYWwiLHNob3J0Y3V0OiJDbWQrVCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJUZXJtaW5hbCIpfSx7bmFtZToiQ29uc29sZSIsaWNvbk5hbWU6Im1vbml0b3IiLHNob3J0Y3V0OiJDbWQrSyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb25zb2xlIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXh0ZW5zaW9ucyIsaWNvbk5hbWU6InBhY2thZ2UiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRXh0ZW5zaW9ucyIpfV19LHtkaXZpZGVyOiEwfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJzbGlkZXJzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlByZWZlcmVuY2VzIil9XX0KICAgID48L2RlZXMtY29udGV4dG1lbnU+CiAgPC9kZWVzLXBhbmVsPgo8L2Rpdj4KYH0pO3ZhciB3NSxDcyxmaSxfcz1iKCgpPT57dWUoKTt1aSgpO3c1PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sQ3M9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGZpPSgoKT0+e2xldCB0PVtoZSgiZGVlcy13aW5kb3dsYXllciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtKKCldLGQ9W0ooKV0sbD1bSigpXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0sdzUodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ib3B0aW9ucyJpbiBTLGdldDpTPT5TLm9wdGlvbnMsc2V0OihTLEYpPT57Uy5vcHRpb25zPUZ9fSxtZXRhZGF0YTpNfSxuLG8pLHc1KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFja2Ryb3BaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJiYWNrZHJvcFpJbmRleCJpbiBTLGdldDpTPT5TLmJhY2tkcm9wWkluZGV4LHNldDooUyxGKT0+e1MuYmFja2Ryb3BaSW5kZXg9Rn19LG1ldGFkYXRhOk19LGMscCksdzUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50WkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iY29udGVudFpJbmRleCJpbiBTLGdldDpTPT5TLmNvbnRlbnRaSW5kZXgsc2V0OihTLEYpPT57Uy5jb250ZW50WkluZGV4PUZ9fSxtZXRhZGF0YTpNfSxmLGcpLHc1KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InZpc2libGUiaW4gUyxnZXQ6Uz0+Uy52aXNpYmxlLHNldDooUyxGKT0+e1MudmlzaWJsZT1GfX0sbWV0YWRhdGE6TX0sdixtKSx3NShudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpNfSxudWxsLGEpLHg9aT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPSgpPT53YDxkZWVzLXdpbmRvd2xheWVyPjwvZGVlcy13aW5kb3dsYXllcj5gO3N0YXRpYyBkZW1vR3JvdXBzPVsiT3ZlcmxheSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KE0pe2xldCBTPXJ0LkRvbVRvb2xzLmdldEdsb2JhbERvbVRvb2xzU3luYygpLEY9bmV3IHg7cmV0dXJuIEYub3B0aW9ucz17Li4uRi5vcHRpb25zLC4uLk19LGRvY3VtZW50LmJvZHkuYXBwZW5kKEYpLGF3YWl0IFMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSxGLnNob3coKSxGfSNlPUNzKHRoaXMsbix7Ymx1cjohMX0pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoTSl7dGhpcy4jZT1NfSN0PShDcyh0aGlzLG8pLENzKHRoaXMsYywxZTMpKTtnZXQgYmFja2Ryb3BaSW5kZXgoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYmFja2Ryb3BaSW5kZXgoTSl7dGhpcy4jdD1NfSNhPShDcyh0aGlzLHApLENzKHRoaXMsZiwxMDAxKSk7Z2V0IGNvbnRlbnRaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY29udGVudFpJbmRleChNKXt0aGlzLiNhPU19I2k9KENzKHRoaXMsZyksQ3ModGhpcyx2LCExKSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmlzaWJsZShNKXt0aGlzLiNpPU19Y29uc3RydWN0b3IoKXtzdXBlcigpLENzKHRoaXMsbSkscnQuZWxlbWVudEJhc2ljLnNldHVwKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7cnQuZWxlbWVudEJhc2ljLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgIC53aW5kb3dPdmVybGF5IHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIHRvcDogMHB4OwogICAgICAgICAgbGVmdDogMHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMCk7CiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMSkgJHt0aGlzLm9wdGlvbnMuYmx1cj8iYmx1cigwcHgpIjoiIn07CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5iYWNrZHJvcFpJbmRleH07CiAgICAgICAgfQogICAgICAgIC5zbG90Q29udGVudCB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHotaW5kZXg6ICR7dGhpcy5jb250ZW50WkluZGV4fTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2xvdENvbnRlbnQgPiAqIHsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudmlzaWJsZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7CiAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJyaWdodG5lc3MoMC45KSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDJweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IEBjbGljaz0ke3RoaXMuZGlzcGF0Y2hDbGlja2VkfSBjbGFzcz0id2luZG93T3ZlcmxheSAke3RoaXMudmlzaWJsZT8idmlzaWJsZSI6bnVsbH0iPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2xvdENvbnRlbnQiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLnZpc2libGU9ITB9LDEwMCl9ZGlzcGF0Y2hDbGlja2VkKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2tlZCIpKX10b2dnbGVWaXNpYmlsaXR5KCl7dGhpcy52aXNpYmxlPSF0aGlzLnZpc2libGV9Z2V0Q29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLmNvbnRlbnRaSW5kZXh9YXN5bmMgc2hvdygpe2xldCBNPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuYmFja2Ryb3BaSW5kZXg9ZDEuZ2V0TmV4dFpJbmRleCgpLHRoaXMuY29udGVudFpJbmRleD1kMS5nZXROZXh0WkluZGV4KCksZDEucmVnaXN0ZXIodGhpcyx0aGlzLmJhY2tkcm9wWkluZGV4KSxhd2FpdCBNLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy52aXNpYmxlPSEwfWFzeW5jIGhpZGUoKXthd2FpdChhd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITF9YXN5bmMgZGVzdHJveSgpe2xldCBNPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2F3YWl0IHRoaXMuaGlkZSgpLGF3YWl0IE0uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLGQxLnVucmVnaXN0ZXIodGhpcyksdGhpcy5yZW1vdmUoKX1zdGF0aWN7Q3MoaSxhKX19O3JldHVybiB4PWl9KSgpfSk7ZnVuY3Rpb24gU0QodCxlKXsoZT09bnVsbHx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIGE9MCxpPUFycmF5KGUpO2E8ZTthKyspaVthXT10W2FdO3JldHVybiBpfWZ1bmN0aW9uIFdCdCh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fWZ1bmN0aW9uIEdCdCh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBTRCh0KX1mdW5jdGlvbiBZQnQodCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBnNWUodCxlKXtmb3IodmFyIGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIGk9ZVthXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHY1ZShpLmtleSksaSl9fWZ1bmN0aW9uIFpCdCh0LGUsYSl7cmV0dXJuIGUmJmc1ZSh0LnByb3RvdHlwZSxlKSxhJiZnNWUodCxhKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0fWZ1bmN0aW9uIHhmKHQsZSl7dmFyIGE9dHlwZW9mIFN5bWJvbDwidSImJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKCFhKXtpZihBcnJheS5pc0FycmF5KHQpfHwoYT1DRCh0KSl8fGUmJnQmJnR5cGVvZiB0Lmxlbmd0aD09Im51bWJlciIpe2EmJih0PWEpO3ZhciBpPTAscj1mdW5jdGlvbigpe307cmV0dXJue3M6cixuOmZ1bmN0aW9uKCl7cmV0dXJuIGk+PXQubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTp0W2krK119fSxlOmZ1bmN0aW9uKGQpe3Rocm93IGR9LGY6cn19dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9dmFyIHMsbj0hMCxvPSExO3JldHVybntzOmZ1bmN0aW9uKCl7YT1hLmNhbGwodCl9LG46ZnVuY3Rpb24oKXt2YXIgZD1hLm5leHQoKTtyZXR1cm4gbj1kLmRvbmUsZH0sZTpmdW5jdGlvbihkKXtvPSEwLHM9ZH0sZjpmdW5jdGlvbigpe3RyeXtufHxhLnJldHVybj09bnVsbHx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKG8pdGhyb3cgc319fX1mdW5jdGlvbiBtdCh0LGUsYSl7cmV0dXJuKGU9djVlKGUpKWluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09YSx0fWZ1bmN0aW9uIFhCdCh0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZ3Zih0LGUpfWZ1bmN0aW9uIEtCdCh0KXtpZih0eXBlb2YgU3ltYm9sPCJ1IiYmdFtTeW1ib2wuaXRlcmF0b3JdIT1udWxsfHx0WyJAQGl0ZXJhdG9yIl0hPW51bGwpcmV0dXJuIEFycmF5LmZyb20odCl9ZnVuY3Rpb24gUUJ0KHQsZSl7dmFyIGE9dD09bnVsbD9udWxsOnR5cGVvZiBTeW1ib2w8InUiJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihhIT1udWxsKXt2YXIgaSxyLHMsbixvPVtdLGQ9ITAsYz0hMTt0cnl7aWYocz0oYT1hLmNhbGwodCkpLm5leHQsZT09PTApe2lmKE9iamVjdChhKSE9PWEpcmV0dXJuO2Q9ITF9ZWxzZSBmb3IoOyEoZD0oaT1zLmNhbGwoYSkpLmRvbmUpJiYoby5wdXNoKGkudmFsdWUpLG8ubGVuZ3RoIT09ZSk7ZD0hMCk7fWNhdGNoKHApe2M9ITAscj1wfWZpbmFsbHl7dHJ5e2lmKCFkJiZhLnJldHVybiE9bnVsbCYmKG49YS5yZXR1cm4oKSxPYmplY3QobikhPT1uKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IHJ9fXJldHVybiBvfX1mdW5jdGlvbiBKQnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLgpJbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuYCl9ZnVuY3Rpb24gZUh0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiBiNWUodCxlKXt2YXIgYT1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2UmJihpPWkuZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscikuZW51bWVyYWJsZX0pKSxhLnB1c2guYXBwbHkoYSxpKX1yZXR1cm4gYX1mdW5jdGlvbiBOZSh0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgYT1hcmd1bWVudHNbZV0hPW51bGw/YXJndW1lbnRzW2VdOnt9O2UlMj9iNWUoT2JqZWN0KGEpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe210KHQsaSxhW2ldKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoYSkpOmI1ZShPYmplY3QoYSkpLmZvckVhY2goZnVuY3Rpb24oaSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsaSkpfSl9cmV0dXJuIHR9ZnVuY3Rpb24gd2YodCxlKXtyZXR1cm4gd2Y9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oYSxpKXtyZXR1cm4gYS5fX3Byb3RvX189aSxhfSx3Zih0LGUpfWZ1bmN0aW9uIE1mKHQsZSl7cmV0dXJuIFdCdCh0KXx8UUJ0KHQsZSl8fENEKHQsZSl8fEpCdCgpfWZ1bmN0aW9uIEJpKHQpe3JldHVybiBHQnQodCl8fEtCdCh0KXx8Q0QodCl8fGVIdCgpfWZ1bmN0aW9uIHRIdCh0LGUpe2lmKHR5cGVvZiB0IT0ib2JqZWN0Inx8IXQpcmV0dXJuIHQ7dmFyIGE9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKGEhPT12b2lkIDApe3ZhciBpPWEuY2FsbCh0LGV8fCJkZWZhdWx0Iik7aWYodHlwZW9mIGkhPSJvYmplY3QiKXJldHVybiBpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKGU9PT0ic3RyaW5nIj9TdHJpbmc6TnVtYmVyKSh0KX1mdW5jdGlvbiB2NWUodCl7dmFyIGU9dEh0KHQsInN0cmluZyIpO3JldHVybiB0eXBlb2YgZT09InN5bWJvbCI/ZTplKyIifWZ1bmN0aW9uIHpmKHQpeyJAYmFiZWwvaGVscGVycyAtIHR5cGVvZiI7cmV0dXJuIHpmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PSJzeW1ib2wiP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJnR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSx6Zih0KX1mdW5jdGlvbiBDRCh0LGUpe2lmKHQpe2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gU0QodCxlKTt2YXIgYT17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiBhPT09Ik9iamVjdCImJnQuY29uc3RydWN0b3ImJihhPXQuY29uc3RydWN0b3IubmFtZSksYT09PSJNYXAifHxhPT09IlNldCI/QXJyYXkuZnJvbSh0KTphPT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGEpP1NEKHQsZSk6dm9pZCAwfX1mdW5jdGlvbiBZMigpe1kyPWZ1bmN0aW9uKHIscyl7cmV0dXJuIG5ldyBhKHIsdm9pZCAwLHMpfTt2YXIgdD1SZWdFeHAucHJvdG90eXBlLGU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYShyLHMsbil7dmFyIG89UmVnRXhwKHIscyk7cmV0dXJuIGUuc2V0KG8sbnx8ZS5nZXQocikpLHdmKG8sYS5wcm90b3R5cGUpfWZ1bmN0aW9uIGkocixzKXt2YXIgbj1lLmdldChzKTtyZXR1cm4gT2JqZWN0LmtleXMobikucmVkdWNlKGZ1bmN0aW9uKG8sZCl7dmFyIGM9bltkXTtpZih0eXBlb2YgYz09Im51bWJlciIpb1tkXT1yW2NdO2Vsc2V7Zm9yKHZhciBwPTA7cltjW3BdXT09PXZvaWQgMCYmcCsxPGMubGVuZ3RoOylwKys7b1tkXT1yW2NbcF1dfXJldHVybiBvfSxPYmplY3QuY3JlYXRlKG51bGwpKX1yZXR1cm4gWEJ0KGEsUmVnRXhwKSxhLnByb3RvdHlwZS5leGVjPWZ1bmN0aW9uKHIpe3ZhciBzPXQuZXhlYy5jYWxsKHRoaXMscik7aWYocyl7cy5ncm91cHM9aShzLHRoaXMpO3ZhciBuPXMuaW5kaWNlcztuJiYobi5ncm91cHM9aShuLHRoaXMpKX1yZXR1cm4gc30sYS5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdPWZ1bmN0aW9uKHIscyl7aWYodHlwZW9mIHM9PSJzdHJpbmciKXt2YXIgbj1lLmdldCh0aGlzKTtyZXR1cm4gdFtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLHIscy5yZXBsYWNlKC9cJDwoW14+XSspKD58JCkvZyxmdW5jdGlvbihkLGMscCl7aWYocD09PSIiKXJldHVybiBkO3ZhciBsPW5bY107cmV0dXJuIEFycmF5LmlzQXJyYXkobCk/IiQiK2wuam9pbigiJCIpOnR5cGVvZiBsPT0ibnVtYmVyIj8iJCIrbDoiIn0pKX1pZih0eXBlb2Ygcz09ImZ1bmN0aW9uIil7dmFyIG89dGhpcztyZXR1cm4gdFtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLHIsZnVuY3Rpb24oKXt2YXIgZD1hcmd1bWVudHM7cmV0dXJuIHR5cGVvZiBkW2QubGVuZ3RoLTFdIT0ib2JqZWN0IiYmKGQ9W10uc2xpY2UuY2FsbChkKSkucHVzaChpKGQsbykpLHMuYXBwbHkodGhpcyxkKX0pfXJldHVybiB0W1N5bWJvbC5yZXBsYWNlXS5jYWxsKHRoaXMscixzKX0sWTIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHo1KHQpe3JldHVybiBuZXcgUHJveHkodCx7Z2V0OmZ1bmN0aW9uKGEsaSl7cmV0dXJuIGkgaW4gYT9hW2ldOmFbUzJdfX0pfWZ1bmN0aW9uIFZxdCh0KXt2YXIgZT12MS5xdWVyeVNlbGVjdG9yKCJzY3JpcHRbIit0KyJdIik7aWYoZSlyZXR1cm4gZS5nZXRBdHRyaWJ1dGUodCl9ZnVuY3Rpb24ganF0KHQpe3JldHVybiB0PT09IiI/ITA6dD09PSJmYWxzZSI/ITE6dD09PSJ0cnVlIj8hMDp0fWZ1bmN0aW9uIFVxdCh0KXtyZXR1cm4gUzUucHVzaCh0KSxmdW5jdGlvbigpe1M1LnNwbGljZShTNS5pbmRleE9mKHQpLDEpfX1mdW5jdGlvbiBXcXQodCl7aWYoISghdHx8IVRzKSl7dmFyIGU9djEuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtlLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvY3NzIiksZS5pbm5lckhUTUw9dDtmb3IodmFyIGE9djEuaGVhZC5jaGlsZE5vZGVzLGk9bnVsbCxyPWEubGVuZ3RoLTE7cj4tMTtyLS0pe3ZhciBzPWFbcl0sbj0ocy50YWdOYW1lfHwiIikudG9VcHBlckNhc2UoKTtbIlNUWUxFIiwiTElOSyJdLmluZGV4T2Yobik+LTEmJihpPXMpfXJldHVybiB2MS5oZWFkLmluc2VydEJlZm9yZShlLGkpLHR9fWZ1bmN0aW9uIGw4ZSgpe2Zvcih2YXIgdD0xMixlPSIiO3QtLSA+MDspZSs9R3F0W01hdGgucmFuZG9tKCkqNjJ8MF07cmV0dXJuIGV9ZnVuY3Rpb24gbmwodCl7Zm9yKHZhciBlPVtdLGE9KHR8fFtdKS5sZW5ndGg+Pj4wO2EtLTspZVthXT10W2FdO3JldHVybiBlfWZ1bmN0aW9uIEJEKHQpe3JldHVybiB0LmNsYXNzTGlzdD9ubCh0LmNsYXNzTGlzdCk6KHQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIikuc3BsaXQoIiAiKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGV9KX1mdW5jdGlvbiBjOGUodCl7cmV0dXJuIiIuY29uY2F0KHQpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMzOTsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKX1mdW5jdGlvbiBZcXQodCl7cmV0dXJuIE9iamVjdC5rZXlzKHR8fHt9KS5yZWR1Y2UoZnVuY3Rpb24oZSxhKXtyZXR1cm4gZSsiIi5jb25jYXQoYSwnPSInKS5jb25jYXQoYzhlKHRbYV0pLCciICcpfSwiIikudHJpbSgpfWZ1bmN0aW9uIENmKHQpe3JldHVybiBPYmplY3Qua2V5cyh0fHx7fSkucmVkdWNlKGZ1bmN0aW9uKGUsYSl7cmV0dXJuIGUrIiIuY29uY2F0KGEsIjogIikuY29uY2F0KHRbYV0udHJpbSgpLCI7Iil9LCIiKX1mdW5jdGlvbiBIRCh0KXtyZXR1cm4gdC5zaXplIT09QnIuc2l6ZXx8dC54IT09QnIueHx8dC55IT09QnIueXx8dC5yb3RhdGUhPT1Cci5yb3RhdGV8fHQuZmxpcFh8fHQuZmxpcFl9ZnVuY3Rpb24gWnF0KHQpe3ZhciBlPXQudHJhbnNmb3JtLGE9dC5jb250YWluZXJXaWR0aCxpPXQuaWNvbldpZHRoLHI9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KGEvMiwiIDI1NikiKX0scz0idHJhbnNsYXRlKCIuY29uY2F0KGUueCozMiwiLCAiKS5jb25jYXQoZS55KjMyLCIpICIpLG49InNjYWxlKCIuY29uY2F0KGUuc2l6ZS8xNiooZS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoZS5zaXplLzE2KihlLmZsaXBZPy0xOjEpLCIpICIpLG89InJvdGF0ZSgiLmNvbmNhdChlLnJvdGF0ZSwiIDAgMCkiKSxkPXt0cmFuc2Zvcm06IiIuY29uY2F0KHMsIiAiKS5jb25jYXQobiwiICIpLmNvbmNhdChvKX0sYz17dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoaS8yKi0xLCIgLTI1NikiKX07cmV0dXJue291dGVyOnIsaW5uZXI6ZCxwYXRoOmN9fWZ1bmN0aW9uIFhxdCh0KXt2YXIgZT10LnRyYW5zZm9ybSxhPXQud2lkdGgsaT1hPT09dm9pZCAwP0FEOmEscj10LmhlaWdodCxzPXI9PT12b2lkIDA/QUQ6cixuPXQuc3RhcnRDZW50ZXJlZCxvPW49PT12b2lkIDA/ITE6bixkPSIiO3JldHVybiBvJiZDNWU/ZCs9InRyYW5zbGF0ZSgiLmNvbmNhdChlLngvZW8taS8yLCJlbSwgIikuY29uY2F0KGUueS9lby1zLzIsImVtKSAiKTpvP2QrPSJ0cmFuc2xhdGUoY2FsYygtNTAlICsgIi5jb25jYXQoZS54L2VvLCJlbSksIGNhbGMoLTUwJSArICIpLmNvbmNhdChlLnkvZW8sImVtKSkgIik6ZCs9InRyYW5zbGF0ZSgiLmNvbmNhdChlLngvZW8sImVtLCAiKS5jb25jYXQoZS55L2VvLCJlbSkgIiksZCs9InNjYWxlKCIuY29uY2F0KGUuc2l6ZS9lbyooZS5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQoZS5zaXplL2VvKihlLmZsaXBZPy0xOjEpLCIpICIpLGQrPSJyb3RhdGUoIi5jb25jYXQoZS5yb3RhdGUsImRlZykgIiksZH1mdW5jdGlvbiBkOGUoKXt2YXIgdD1RNWUsZT1KNWUsYT1ldC5jc3NQcmVmaXgsaT1ldC5yZXBsYWNlbWVudENsYXNzLHI9S3F0O2lmKGEhPT10fHxpIT09ZSl7dmFyIHM9bmV3IFJlZ0V4cCgiXFwuIi5jb25jYXQodCwiXFwtIiksImciKSxuPW5ldyBSZWdFeHAoIlxcLS0iLmNvbmNhdCh0LCJcXC0iKSwiZyIpLG89bmV3IFJlZ0V4cCgiXFwuIi5jb25jYXQoZSksImciKTtyPXIucmVwbGFjZShzLCIuIi5jb25jYXQoYSwiLSIpKS5yZXBsYWNlKG4sIi0tIi5jb25jYXQoYSwiLSIpKS5yZXBsYWNlKG8sIi4iLmNvbmNhdChpKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gcUQoKXtldC5hdXRvQWRkQ3NzJiYhcDhlJiYoV3F0KGQ4ZSgpKSxwOGU9ITApfWZ1bmN0aW9uIEpxdCh0KXtUcyYmKF9mP3NldFRpbWVvdXQodCwwKTpoOGUucHVzaCh0KSl9ZnVuY3Rpb24gQzUodCl7dmFyIGU9dC50YWcsYT10LmF0dHJpYnV0ZXMsaT1hPT09dm9pZCAwP3t9OmEscj10LmNoaWxkcmVuLHM9cj09PXZvaWQgMD9bXTpyO3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/YzhlKHQpOiI8Ii5jb25jYXQoZSwiICIpLmNvbmNhdChZcXQoaSksIj4iKS5jb25jYXQocy5tYXAoQzUpLmpvaW4oIiIpLCI8LyIpLmNvbmNhdChlLCI+Iil9ZnVuY3Rpb24gZjhlKHQsZSxhKXtpZih0JiZ0W2VdJiZ0W2VdW2FdKXJldHVybntwcmVmaXg6ZSxpY29uTmFtZTphLGljb246dFtlXVthXX19ZnVuY3Rpb24gbThlKHQpe3JldHVybiBCaSh0KS5sZW5ndGghPT0xP251bGw6dC5jb2RlUG9pbnRBdCgwKS50b1N0cmluZygxNil9ZnVuY3Rpb24gZzhlKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5yZWR1Y2UoZnVuY3Rpb24oZSxhKXt2YXIgaT10W2FdLHI9ISFpLmljb247cmV0dXJuIHI/ZVtpLmljb25OYW1lXT1pLmljb246ZVthXT1pLGV9LHt9KX1mdW5jdGlvbiBqRCh0LGUpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MiYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTp7fSxpPWEuc2tpcEhvb2tzLHI9aT09PXZvaWQgMD8hMTppLHM9ZzhlKGUpO3R5cGVvZiBIaS5ob29rcy5hZGRQYWNrPT0iZnVuY3Rpb24iJiYhcj9IaS5ob29rcy5hZGRQYWNrKHQsZzhlKGUpKTpIaS5zdHlsZXNbdF09TmUoTmUoe30sSGkuc3R5bGVzW3RdfHx7fSkscyksdD09PSJmYXMiJiZqRCgiZmEiLGUpfWZ1bmN0aW9uIGlWdCh0KXtyZXR1cm5+cXF0LmluZGV4T2YodCl9ZnVuY3Rpb24gclZ0KHQsZSl7dmFyIGE9ZS5zcGxpdCgiLSIpLGk9YVswXSxyPWEuc2xpY2UoMSkuam9pbigiLSIpO3JldHVybiBpPT09dCYmciE9PSIiJiYhaVZ0KHIpP3I6bnVsbH1mdW5jdGlvbiBHRCh0LGUpe3JldHVybih2OGVbdF18fHt9KVtlXX1mdW5jdGlvbiBzVnQodCxlKXtyZXR1cm4oeThlW3RdfHx7fSlbZV19ZnVuY3Rpb24gQjAodCxlKXtyZXR1cm4oTThlW3RdfHx7fSlbZV19ZnVuY3Rpb24gazhlKHQpe3JldHVybiB4OGVbdF18fHtwcmVmaXg6bnVsbCxpY29uTmFtZTpudWxsfX1mdW5jdGlvbiBuVnQodCl7dmFyIGU9dzhlW3RdLGE9R0QoImZhcyIsdCk7cmV0dXJuIGV8fChhP3twcmVmaXg6ImZhcyIsaWNvbk5hbWU6YX06bnVsbCl8fHtwcmVmaXg6bnVsbCxpY29uTmFtZTpudWxsfX1mdW5jdGlvbiB0bygpe3JldHVybiBXRH1mdW5jdGlvbiBvVnQodCl7dmFyIGU9UzIsYT1iOGUucmVkdWNlKGZ1bmN0aW9uKGkscil7cmV0dXJuIGlbcl09IiIuY29uY2F0KGV0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChyKSxpfSx7fSk7cmV0dXJuIFc1ZS5mb3JFYWNoKGZ1bmN0aW9uKGkpeyh0LmluY2x1ZGVzKGFbaV0pfHx0LnNvbWUoZnVuY3Rpb24ocil7cmV0dXJuIGFWdFtpXS5pbmNsdWRlcyhyKX0pKSYmKGU9aSl9KSxlfWZ1bmN0aW9uIFRmKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxhPWUuZmFtaWx5LGk9YT09PXZvaWQgMD9TMjphLHI9RnF0W2ldW3RdO2lmKGk9PT1NNSYmIXQpcmV0dXJuImZhZCI7dmFyIHM9cjhlW2ldW3RdfHxyOGVbaV1bcl0sbj10IGluIEhpLnN0eWxlcz90Om51bGwsbz1zfHxufHxudWxsO3JldHVybiBvfWZ1bmN0aW9uIGxWdCh0KXt2YXIgZT1bXSxhPW51bGw7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgcj1yVnQoZXQuY3NzUHJlZml4LGkpO3I/YT1yOmkmJmUucHVzaChpKX0pLHtpY29uTmFtZTphLHJlc3Q6ZX19ZnVuY3Rpb24gQzhlKHQpe3JldHVybiB0LnNvcnQoKS5maWx0ZXIoZnVuY3Rpb24oZSxhLGkpe3JldHVybiBpLmluZGV4T2YoZSk9PT1hfSl9ZnVuY3Rpb24gTGYodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9ZS5za2lwTG9va3VwcyxpPWE9PT12b2lkIDA/ITE6YSxyPW51bGwscz1DOGUodC5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIF84ZS5pbmNsdWRlcyhnKX0pKSxuPUM4ZSh0LmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hXzhlLmluY2x1ZGVzKGcpfSkpLG89cy5maWx0ZXIoZnVuY3Rpb24oZyl7cmV0dXJuIHI9ZywhVDVlLmluY2x1ZGVzKGcpfSksZD1NZihvLDEpLGM9ZFswXSxwPWM9PT12b2lkIDA/bnVsbDpjLGw9b1Z0KHMpLGY9TmUoTmUoe30sbFZ0KG4pKSx7fSx7cHJlZml4OlRmKHAse2ZhbWlseTpsfSl9KTtyZXR1cm4gTmUoTmUoTmUoe30sZiksaFZ0KHt2YWx1ZXM6dCxmYW1pbHk6bCxzdHlsZXM6XzUsY29uZmlnOmV0LGNhbm9uaWNhbDpmLGdpdmVuUHJlZml4OnJ9KSksY1Z0KGkscixmKSl9ZnVuY3Rpb24gY1Z0KHQsZSxhKXt2YXIgaT1hLnByZWZpeCxyPWEuaWNvbk5hbWU7aWYodHx8IWl8fCFyKXJldHVybntwcmVmaXg6aSxpY29uTmFtZTpyfTt2YXIgcz1lPT09ImZhIj9rOGUocik6e30sbj1CMChpLHIpO3JldHVybiByPXMuaWNvbk5hbWV8fG58fHIsaT1zLnByZWZpeHx8aSxpPT09ImZhciImJiFfNS5mYXImJl81LmZhcyYmIWV0LmF1dG9GZXRjaFN2ZyYmKGk9ImZhcyIpLHtwcmVmaXg6aSxpY29uTmFtZTpyfX1mdW5jdGlvbiBoVnQodCl7dmFyIGU9dC52YWx1ZXMsYT10LmZhbWlseSxpPXQuY2Fub25pY2FsLHI9dC5naXZlblByZWZpeCxzPXI9PT12b2lkIDA/IiI6cixuPXQuc3R5bGVzLG89bj09PXZvaWQgMD97fTpuLGQ9dC5jb25maWcsYz1kPT09dm9pZCAwP3t9OmQscD1hPT09TTUsbD1lLmluY2x1ZGVzKCJmYS1kdW90b25lIil8fGUuaW5jbHVkZXMoImZhZCIpLGY9Yy5mYW1pbHlEZWZhdWx0PT09ImR1b3RvbmUiLGc9aS5wcmVmaXg9PT0iZmFkInx8aS5wcmVmaXg9PT0iZmEtZHVvdG9uZSI7aWYoIXAmJihsfHxmfHxnKSYmKGkucHJlZml4PSJmYWQiKSwoZS5pbmNsdWRlcygiZmEtYnJhbmRzIil8fGUuaW5jbHVkZXMoImZhYiIpKSYmKGkucHJlZml4PSJmYWIiKSwhaS5wcmVmaXgmJmRWdC5pbmNsdWRlcyhhKSl7dmFyIHk9T2JqZWN0LmtleXMobykuZmluZChmdW5jdGlvbihtKXtyZXR1cm4gcFZ0LmluY2x1ZGVzKG0pfSk7aWYoeXx8Yy5hdXRvRmV0Y2hTdmcpe3ZhciB2PV9IdC5nZXQoYSkuZGVmYXVsdFNob3J0UHJlZml4SWQ7aS5wcmVmaXg9dixpLmljb25OYW1lPUIwKGkucHJlZml4LGkuaWNvbk5hbWUpfHxpLmljb25OYW1lfX1yZXR1cm4oaS5wcmVmaXg9PT0iZmEifHxzPT09ImZhIikmJihpLnByZWZpeD10bygpfHwiZmFzIiksaX1mdW5jdGlvbiBtVnQodCxlKXt2YXIgYT1lLm1peG91dHNUbztyZXR1cm4gVDhlPXQsb2w9e30sT2JqZWN0LmtleXMobGwpLmZvckVhY2goZnVuY3Rpb24oaSl7ZlZ0LmluZGV4T2YoaSk9PT0tMSYmZGVsZXRlIGxsW2ldfSksVDhlLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIHI9aS5taXhvdXQ/aS5taXhvdXQoKTp7fTtpZihPYmplY3Qua2V5cyhyKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3R5cGVvZiByW25dPT0iZnVuY3Rpb24iJiYoYVtuXT1yW25dKSx6ZihyW25dKT09PSJvYmplY3QiJiZPYmplY3Qua2V5cyhyW25dKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2Fbbl18fChhW25dPXt9KSxhW25dW29dPXJbbl1bb119KX0pLGkuaG9va3Mpe3ZhciBzPWkuaG9va3MoKTtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe29sW25dfHwob2xbbl09W10pLG9sW25dLnB1c2goc1tuXSl9KX1pLnByb3ZpZGVzJiZpLnByb3ZpZGVzKGxsKX0pLGF9ZnVuY3Rpb24gWUQodCxlKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShhPjI/YS0yOjApLHI9MjtyPGE7cisrKWlbci0yXT1hcmd1bWVudHNbcl07dmFyIHM9b2xbdF18fFtdO3JldHVybiBzLmZvckVhY2goZnVuY3Rpb24obil7ZT1uLmFwcGx5KG51bGwsW2VdLmNvbmNhdChpKSl9KSxlfWZ1bmN0aW9uIEgwKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGU+MT9lLTE6MCksaT0xO2k8ZTtpKyspYVtpLTFdPWFyZ3VtZW50c1tpXTt2YXIgcj1vbFt0XXx8W107ci5mb3JFYWNoKGZ1bmN0aW9uKHMpe3MuYXBwbHkobnVsbCxhKX0pfWZ1bmN0aW9uIGFvKCl7dmFyIHQ9YXJndW1lbnRzWzBdLGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBsbFt0XT9sbFt0XS5hcHBseShudWxsLGUpOnZvaWQgMH1mdW5jdGlvbiBaRCh0KXt0LnByZWZpeD09PSJmYSImJih0LnByZWZpeD0iZmFzIik7dmFyIGU9dC5pY29uTmFtZSxhPXQucHJlZml4fHx0bygpO2lmKGUpcmV0dXJuIGU9QjAoYSxlKXx8ZSxmOGUoTDhlLmRlZmluaXRpb25zLGEsZSl8fGY4ZShIaS5zdHlsZXMsYSxlKX1mdW5jdGlvbiAkZih0LGUpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiYWJzdHJhY3QiLHtnZXQ6ZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJodG1sIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuYWJzdHJhY3QubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBDNShpKX0pfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJub2RlIix7Z2V0OmZ1bmN0aW9uKCl7aWYoVHMpe3ZhciBpPXYxLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBpLmlubmVySFRNTD10Lmh0bWwsaS5jaGlsZHJlbn19fSksdH1mdW5jdGlvbiB4VnQodCl7dmFyIGU9dC5jaGlsZHJlbixhPXQubWFpbixpPXQubWFzayxyPXQuYXR0cmlidXRlcyxzPXQuc3R5bGVzLG49dC50cmFuc2Zvcm07aWYoSEQobikmJmEuZm91bmQmJiFpLmZvdW5kKXt2YXIgbz1hLndpZHRoLGQ9YS5oZWlnaHQsYz17eDpvL2QvMix5Oi41fTtyLnN0eWxlPUNmKE5lKE5lKHt9LHMpLHt9LHsidHJhbnNmb3JtLW9yaWdpbiI6IiIuY29uY2F0KGMueCtuLngvMTYsImVtICIpLmNvbmNhdChjLnkrbi55LzE2LCJlbSIpfSkpfXJldHVyblt7dGFnOiJzdmciLGF0dHJpYnV0ZXM6cixjaGlsZHJlbjplfV19ZnVuY3Rpb24gd1Z0KHQpe3ZhciBlPXQucHJlZml4LGE9dC5pY29uTmFtZSxpPXQuY2hpbGRyZW4scj10LmF0dHJpYnV0ZXMscz10LnN5bWJvbCxuPXM9PT0hMD8iIi5jb25jYXQoZSwiLSIpLmNvbmNhdChldC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoYSk6cztyZXR1cm5be3RhZzoic3ZnIixhdHRyaWJ1dGVzOntzdHlsZToiZGlzcGxheTogbm9uZTsifSxjaGlsZHJlbjpbe3RhZzoic3ltYm9sIixhdHRyaWJ1dGVzOk5lKE5lKHt9LHIpLHt9LHtpZDpufSksY2hpbGRyZW46aX1dfV19ZnVuY3Rpb24gTVZ0KHQpe3ZhciBlPVsiYXJpYS1sYWJlbCIsImFyaWEtbGFiZWxsZWRieSIsInRpdGxlIiwicm9sZSJdO3JldHVybiBlLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW4gdH0pfWZ1bmN0aW9uIFhEKHQpe3ZhciBlPXQuaWNvbnMsYT1lLm1haW4saT1lLm1hc2sscj10LnByZWZpeCxzPXQuaWNvbk5hbWUsbj10LnRyYW5zZm9ybSxvPXQuc3ltYm9sLGQ9dC5tYXNrSWQsYz10LmV4dHJhLHA9dC53YXRjaGFibGUsbD1wPT09dm9pZCAwPyExOnAsZj1pLmZvdW5kP2k6YSxnPWYud2lkdGgseT1mLmhlaWdodCx2PVtldC5yZXBsYWNlbWVudENsYXNzLHM/IiIuY29uY2F0KGV0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChzKToiIl0uZmlsdGVyKGZ1bmN0aW9uKF8pe3JldHVybiBjLmNsYXNzZXMuaW5kZXhPZihfKT09PS0xfSkuZmlsdGVyKGZ1bmN0aW9uKF8pe3JldHVybiBfIT09IiJ8fCEhX30pLmNvbmNhdChjLmNsYXNzZXMpLmpvaW4oIiAiKSxtPXtjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOk5lKE5lKHt9LGMuYXR0cmlidXRlcykse30seyJkYXRhLXByZWZpeCI6ciwiZGF0YS1pY29uIjpzLGNsYXNzOnYscm9sZTpjLmF0dHJpYnV0ZXMucm9sZXx8ImltZyIsdmlld0JveDoiMCAwICIuY29uY2F0KGcsIiAiKS5jb25jYXQoeSl9KX07IU1WdChjLmF0dHJpYnV0ZXMpJiYhYy5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdJiYobS5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdPSJ0cnVlIiksbCYmKG0uYXR0cmlidXRlc1tSMF09IiIpO3ZhciB4PU5lKE5lKHt9LG0pLHt9LHtwcmVmaXg6cixpY29uTmFtZTpzLG1haW46YSxtYXNrOmksbWFza0lkOmQsdHJhbnNmb3JtOm4sc3ltYm9sOm8sc3R5bGVzOk5lKHt9LGMuc3R5bGVzKX0pLE09aS5mb3VuZCYmYS5mb3VuZD9hbygiZ2VuZXJhdGVBYnN0cmFjdE1hc2siLHgpfHx7Y2hpbGRyZW46W10sYXR0cmlidXRlczp7fX06YW8oImdlbmVyYXRlQWJzdHJhY3RJY29uIix4KXx8e2NoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319LFM9TS5jaGlsZHJlbixGPU0uYXR0cmlidXRlcztyZXR1cm4geC5jaGlsZHJlbj1TLHguYXR0cmlidXRlcz1GLG8/d1Z0KHgpOnhWdCh4KX1mdW5jdGlvbiAkOGUodCl7dmFyIGU9dC5jb250ZW50LGE9dC53aWR0aCxpPXQuaGVpZ2h0LHI9dC50cmFuc2Zvcm0scz10LmV4dHJhLG49dC53YXRjaGFibGUsbz1uPT09dm9pZCAwPyExOm4sZD1OZShOZSh7fSxzLmF0dHJpYnV0ZXMpLHt9LHtjbGFzczpzLmNsYXNzZXMuam9pbigiICIpfSk7byYmKGRbUjBdPSIiKTt2YXIgYz1OZSh7fSxzLnN0eWxlcyk7SEQocikmJihjLnRyYW5zZm9ybT1YcXQoe3RyYW5zZm9ybTpyLHN0YXJ0Q2VudGVyZWQ6ITAsd2lkdGg6YSxoZWlnaHQ6aX0pLGNbIi13ZWJraXQtdHJhbnNmb3JtIl09Yy50cmFuc2Zvcm0pO3ZhciBwPUNmKGMpO3AubGVuZ3RoPjAmJihkLnN0eWxlPXApO3ZhciBsPVtdO3JldHVybiBsLnB1c2goe3RhZzoic3BhbiIsYXR0cmlidXRlczpkLGNoaWxkcmVuOltlXX0pLGx9ZnVuY3Rpb24gelZ0KHQpe3ZhciBlPXQuY29udGVudCxhPXQuZXh0cmEsaT1OZShOZSh7fSxhLmF0dHJpYnV0ZXMpLHt9LHtjbGFzczphLmNsYXNzZXMuam9pbigiICIpfSkscj1DZihhLnN0eWxlcyk7ci5sZW5ndGg+MCYmKGkuc3R5bGU9cik7dmFyIHM9W107cmV0dXJuIHMucHVzaCh7dGFnOiJzcGFuIixhdHRyaWJ1dGVzOmksY2hpbGRyZW46W2VdfSksc31mdW5jdGlvbiBRRCh0KXt2YXIgZT10WzBdLGE9dFsxXSxpPXQuc2xpY2UoNCkscj1NZihpLDEpLHM9clswXSxuPW51bGw7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/bj17dGFnOiJnIixhdHRyaWJ1dGVzOntjbGFzczoiIi5jb25jYXQoZXQuY3NzUHJlZml4LCItIikuY29uY2F0KFJELkdST1VQKX0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChldC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoUkQuU0VDT05EQVJZKSxmaWxsOiJjdXJyZW50Q29sb3IiLGQ6c1swXX19LHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChldC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoUkQuUFJJTUFSWSksZmlsbDoiY3VycmVudENvbG9yIixkOnNbMV19fV19Om49e3RhZzoicGF0aCIsYXR0cmlidXRlczp7ZmlsbDoiY3VycmVudENvbG9yIixkOnN9fSx7Zm91bmQ6ITAsd2lkdGg6ZSxoZWlnaHQ6YSxpY29uOm59fWZ1bmN0aW9uIFNWdCh0LGUpeyFhOGUmJiFldC5zaG93TWlzc2luZ0ljb25zJiZ0JiZjb25zb2xlLmVycm9yKCdJY29uIHdpdGggbmFtZSAiJy5jb25jYXQodCwnIiBhbmQgcHJlZml4ICInKS5jb25jYXQoZSwnIiBpcyBtaXNzaW5nLicpKX1mdW5jdGlvbiBKRCh0LGUpe3ZhciBhPWU7cmV0dXJuIGU9PT0iZmEiJiZldC5zdHlsZURlZmF1bHQhPT1udWxsJiYoZT10bygpKSxuZXcgUHJvbWlzZShmdW5jdGlvbihpLHIpe2lmKGE9PT0iZmEiKXt2YXIgcz1rOGUodCl8fHt9O3Q9cy5pY29uTmFtZXx8dCxlPXMucHJlZml4fHxlfWlmKHQmJmUmJktEW2VdJiZLRFtlXVt0XSl7dmFyIG49S0RbZV1bdF07cmV0dXJuIGkoUUQobikpfVNWdCh0LGUpLGkoTmUoTmUoe30sa1Z0KSx7fSx7aWNvbjpldC5zaG93TWlzc2luZ0ljb25zJiZ0P2FvKCJtaXNzaW5nSWNvbkFic3RyYWN0Iil8fHt9Ont9fSkpfSl9ZnVuY3Rpb24gRThlKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlP3QuZ2V0QXR0cmlidXRlKFIwKTpudWxsO3JldHVybiB0eXBlb2YgZT09InN0cmluZyJ9ZnVuY3Rpb24gX1Z0KHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlP3QuZ2V0QXR0cmlidXRlKEVEKTpudWxsLGE9dC5nZXRBdHRyaWJ1dGU/dC5nZXRBdHRyaWJ1dGUoUEQpOm51bGw7cmV0dXJuIGUmJmF9ZnVuY3Rpb24gVFZ0KHQpe3JldHVybiB0JiZ0LmNsYXNzTGlzdCYmdC5jbGFzc0xpc3QuY29udGFpbnMmJnQuY2xhc3NMaXN0LmNvbnRhaW5zKGV0LnJlcGxhY2VtZW50Q2xhc3MpfWZ1bmN0aW9uIExWdCgpe2lmKGV0LmF1dG9SZXBsYWNlU3ZnPT09ITApcmV0dXJuIERmLnJlcGxhY2U7dmFyIHQ9RGZbZXQuYXV0b1JlcGxhY2VTdmddO3JldHVybiB0fHxEZi5yZXBsYWNlfWZ1bmN0aW9uICRWdCh0KXtyZXR1cm4gdjEuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdCl9ZnVuY3Rpb24gQVZ0KHQpe3JldHVybiB2MS5jcmVhdGVFbGVtZW50KHQpfWZ1bmN0aW9uIFA4ZSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sYT1lLmNlRm4saT1hPT09dm9pZCAwP3QudGFnPT09InN2ZyI/JFZ0OkFWdDphO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gdjEuY3JlYXRlVGV4dE5vZGUodCk7dmFyIHI9aSh0LnRhZyk7T2JqZWN0LmtleXModC5hdHRyaWJ1dGVzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihuKXtyLnNldEF0dHJpYnV0ZShuLHQuYXR0cmlidXRlc1tuXSl9KTt2YXIgcz10LmNoaWxkcmVufHxbXTtyZXR1cm4gcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3IuYXBwZW5kQ2hpbGQoUDhlKG4se2NlRm46aX0pKX0pLHJ9ZnVuY3Rpb24gRFZ0KHQpe3ZhciBlPSIgIi5jb25jYXQodC5vdXRlckhUTUwsIiAiKTtyZXR1cm4gZT0iIi5jb25jYXQoZSwiRm9udCBBd2Vzb21lIGZvbnRhd2Vzb21lLmNvbSAiKSxlfWZ1bmN0aW9uIEk4ZSh0KXt0KCl9ZnVuY3Rpb24gTjhlKHQsZSl7dmFyIGE9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpBZjtpZih0Lmxlbmd0aD09PTApYSgpO2Vsc2V7dmFyIGk9SThlO2V0Lm11dGF0ZUFwcHJvYWNoPT09SXF0JiYoaT1Kbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fEk4ZSksaShmdW5jdGlvbigpe3ZhciByPUxWdCgpLHM9dEUuYmVnaW4oIm11dGF0ZSIpO3QubWFwKHIpLHMoKSxhKCl9KX19ZnVuY3Rpb24gRjhlKCl7YUU9ITB9ZnVuY3Rpb24gaUUoKXthRT0hMX1mdW5jdGlvbiBPOGUodCl7aWYoUzVlJiZldC5vYnNlcnZlTXV0YXRpb25zKXt2YXIgZT10LnRyZWVDYWxsYmFjayxhPWU9PT12b2lkIDA/QWY6ZSxpPXQubm9kZUNhbGxiYWNrLHI9aT09PXZvaWQgMD9BZjppLHM9dC5wc2V1ZG9FbGVtZW50c0NhbGxiYWNrLG49cz09PXZvaWQgMD9BZjpzLG89dC5vYnNlcnZlTXV0YXRpb25zUm9vdCxkPW89PT12b2lkIDA/djE6bztFZj1uZXcgUzVlKGZ1bmN0aW9uKGMpe2lmKCFhRSl7dmFyIHA9dG8oKTtubChjKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2lmKGwudHlwZT09PSJjaGlsZExpc3QiJiZsLmFkZGVkTm9kZXMubGVuZ3RoPjAmJiFFOGUobC5hZGRlZE5vZGVzWzBdKSYmKGV0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZuKGwudGFyZ2V0KSxhKGwudGFyZ2V0KSksbC50eXBlPT09ImF0dHJpYnV0ZXMiJiZsLnRhcmdldC5wYXJlbnROb2RlJiZldC5zZWFyY2hQc2V1ZG9FbGVtZW50cyYmbihbbC50YXJnZXRdLCEwKSxsLnR5cGU9PT0iYXR0cmlidXRlcyImJkU4ZShsLnRhcmdldCkmJn5IcXQuaW5kZXhPZihsLmF0dHJpYnV0ZU5hbWUpKWlmKGwuYXR0cmlidXRlTmFtZT09PSJjbGFzcyImJl9WdChsLnRhcmdldCkpe3ZhciBmPUxmKEJEKGwudGFyZ2V0KSksZz1mLnByZWZpeCx5PWYuaWNvbk5hbWU7bC50YXJnZXQuc2V0QXR0cmlidXRlKEVELGd8fHApLHkmJmwudGFyZ2V0LnNldEF0dHJpYnV0ZShQRCx5KX1lbHNlIFRWdChsLnRhcmdldCkmJnIobC50YXJnZXQpfSl9fSksVHMmJkVmLm9ic2VydmUoZCx7Y2hpbGRMaXN0OiEwLGF0dHJpYnV0ZXM6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSl9fWZ1bmN0aW9uIEVWdCgpe0VmJiZFZi5kaXNjb25uZWN0KCl9ZnVuY3Rpb24gUFZ0KHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJzdHlsZSIpLGE9W107cmV0dXJuIGUmJihhPWUuc3BsaXQoIjsiKS5yZWR1Y2UoZnVuY3Rpb24oaSxyKXt2YXIgcz1yLnNwbGl0KCI6Iiksbj1zWzBdLG89cy5zbGljZSgxKTtyZXR1cm4gbiYmby5sZW5ndGg+MCYmKGlbbl09by5qb2luKCI6IikudHJpbSgpKSxpfSx7fSkpLGF9ZnVuY3Rpb24gSVZ0KHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXByZWZpeCIpLGE9dC5nZXRBdHRyaWJ1dGUoImRhdGEtaWNvbiIpLGk9dC5pbm5lclRleHQhPT12b2lkIDA/dC5pbm5lclRleHQudHJpbSgpOiIiLHI9TGYoQkQodCkpO3JldHVybiByLnByZWZpeHx8KHIucHJlZml4PXRvKCkpLGUmJmEmJihyLnByZWZpeD1lLHIuaWNvbk5hbWU9YSksci5pY29uTmFtZSYmci5wcmVmaXh8fChyLnByZWZpeCYmaS5sZW5ndGg+MCYmKHIuaWNvbk5hbWU9c1Z0KHIucHJlZml4LHQuaW5uZXJUZXh0KXx8R0Qoci5wcmVmaXgsbThlKHQuaW5uZXJUZXh0KSkpLCFyLmljb25OYW1lJiZldC5hdXRvRmV0Y2hTdmcmJnQuZmlyc3RDaGlsZCYmdC5maXJzdENoaWxkLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJihyLmljb25OYW1lPXQuZmlyc3RDaGlsZC5kYXRhKSkscn1mdW5jdGlvbiBOVnQodCl7dmFyIGU9bmwodC5hdHRyaWJ1dGVzKS5yZWR1Y2UoZnVuY3Rpb24oYSxpKXtyZXR1cm4gYS5uYW1lIT09ImNsYXNzIiYmYS5uYW1lIT09InN0eWxlIiYmKGFbaS5uYW1lXT1pLnZhbHVlKSxhfSx7fSk7cmV0dXJuIGV9ZnVuY3Rpb24gRlZ0KCl7cmV0dXJue2ljb25OYW1lOm51bGwscHJlZml4Om51bGwsdHJhbnNmb3JtOkJyLHN5bWJvbDohMSxtYXNrOntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHJlc3Q6W119LG1hc2tJZDpudWxsLGV4dHJhOntjbGFzc2VzOltdLHN0eWxlczp7fSxhdHRyaWJ1dGVzOnt9fX19ZnVuY3Rpb24gUjhlKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7c3R5bGVQYXJzZXI6ITB9LGE9SVZ0KHQpLGk9YS5pY29uTmFtZSxyPWEucHJlZml4LHM9YS5yZXN0LG49TlZ0KHQpLG89WUQoInBhcnNlTm9kZUF0dHJpYnV0ZXMiLHt9LHQpLGQ9ZS5zdHlsZVBhcnNlcj9QVnQodCk6W107cmV0dXJuIE5lKHtpY29uTmFtZTppLHByZWZpeDpyLHRyYW5zZm9ybTpCcixtYXNrOntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHJlc3Q6W119LG1hc2tJZDpudWxsLHN5bWJvbDohMSxleHRyYTp7Y2xhc3NlczpzLHN0eWxlczpkLGF0dHJpYnV0ZXM6bn19LG8pfWZ1bmN0aW9uIEI4ZSh0KXt2YXIgZT1ldC5hdXRvUmVwbGFjZVN2Zz09PSJuZXN0Ij9SOGUodCx7c3R5bGVQYXJzZXI6ITF9KTpSOGUodCk7cmV0dXJufmUuZXh0cmEuY2xhc3Nlcy5pbmRleE9mKHM4ZSk/YW8oImdlbmVyYXRlTGF5ZXJzVGV4dCIsdCxlKTphbygiZ2VuZXJhdGVTdmdSZXBsYWNlbWVudE11dGF0aW9uIix0LGUpfWZ1bmN0aW9uIFJWdCgpe3JldHVybltdLmNvbmNhdChCaShHNWUpLEJpKFg1ZSkpfWZ1bmN0aW9uIEg4ZSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDtpZighVHMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBhPXYxLmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QsaT1mdW5jdGlvbihsKXtyZXR1cm4gYS5hZGQoIiIuY29uY2F0KGU4ZSwiLSIpLmNvbmNhdChsKSl9LHI9ZnVuY3Rpb24obCl7cmV0dXJuIGEucmVtb3ZlKCIiLmNvbmNhdChlOGUsIi0iKS5jb25jYXQobCkpfSxzPWV0LmF1dG9GZXRjaFN2Zz9SVnQoKTpUNWUuY29uY2F0KE9iamVjdC5rZXlzKE9WdCkpO3MuaW5jbHVkZXMoImZhIil8fHMucHVzaCgiZmEiKTt2YXIgbj1bIi4iLmNvbmNhdChzOGUsIjpub3QoWyIpLmNvbmNhdChSMCwiXSkiKV0uY29uY2F0KHMubWFwKGZ1bmN0aW9uKHApe3JldHVybiIuIi5jb25jYXQocCwiOm5vdChbIikuY29uY2F0KFIwLCJdKSIpfSkpLmpvaW4oIiwgIik7aWYobi5sZW5ndGg9PT0wKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgbz1bXTt0cnl7bz1ubCh0LnF1ZXJ5U2VsZWN0b3JBbGwobikpfWNhdGNoe31pZihvLmxlbmd0aD4wKWkoInBlbmRpbmciKSxyKCJjb21wbGV0ZSIpO2Vsc2UgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBkPXRFLmJlZ2luKCJvblRyZWUiKSxjPW8ucmVkdWNlKGZ1bmN0aW9uKHAsbCl7dHJ5e3ZhciBmPUI4ZShsKTtmJiZwLnB1c2goZil9Y2F0Y2goZyl7YThlfHxnLm5hbWU9PT0iTWlzc2luZ0ljb24iJiZjb25zb2xlLmVycm9yKGcpfXJldHVybiBwfSxbXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHAsbCl7UHJvbWlzZS5hbGwoYykudGhlbihmdW5jdGlvbihmKXtOOGUoZixmdW5jdGlvbigpe2koImFjdGl2ZSIpLGkoImNvbXBsZXRlIikscigicGVuZGluZyIpLHR5cGVvZiBlPT0iZnVuY3Rpb24iJiZlKCksZCgpLHAoKX0pfSkuY2F0Y2goZnVuY3Rpb24oZil7ZCgpLGwoZil9KX0pfWZ1bmN0aW9uIEJWdCh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDtCOGUodCkudGhlbihmdW5jdGlvbihhKXthJiZOOGUoW2FdLGUpfSl9ZnVuY3Rpb24gSFZ0KHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30saT0oZXx8e30pLmljb24/ZTpaRChlfHx7fSkscj1hLm1hc2s7cmV0dXJuIHImJihyPShyfHx7fSkuaWNvbj9yOlpEKHJ8fHt9KSksdChpLE5lKE5lKHt9LGEpLHt9LHttYXNrOnJ9KSl9fWZ1bmN0aW9uIFlWdCh0KXt2YXIgZT10LnJlcGxhY2UocThlLCIiKTtyZXR1cm4gbThlKEJpKGUpWzBdfHwiIil9ZnVuY3Rpb24gWlZ0KHQpe3ZhciBlPXQuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1mZWF0dXJlLXNldHRpbmdzIikuaW5jbHVkZXMoInNzMDEiKSxhPXQuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpLGk9YS5yZXBsYWNlKHE4ZSwiIikscj1pLmNvZGVQb2ludEF0KDApLHM9cj49VjhlWzBdJiZyPD1WOGVbMV0sbj1pLmxlbmd0aD09PTI/aVswXT09PWlbMV06ITE7cmV0dXJuIHN8fG58fGV9ZnVuY3Rpb24gWFZ0KHQsZSl7dmFyIGE9dC5yZXBsYWNlKC9eWyciXXxbJyJdJC9nLCIiKS50b0xvd2VyQ2FzZSgpLGk9cGFyc2VJbnQoZSkscj1pc05hTihpKT8ibm9ybWFsIjppO3JldHVybihyRVthXXx8e30pW3JdfHxHVnRbYV19ZnVuY3Rpb24gVThlKHQsZSl7dmFyIGE9IiIuY29uY2F0KFBxdCkuY29uY2F0KGUucmVwbGFjZSgiOiIsIi0iKSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGkscil7aWYodC5nZXRBdHRyaWJ1dGUoYSkhPT1udWxsKXJldHVybiBpKCk7dmFyIHM9bmwodC5jaGlsZHJlbiksbj1zLmZpbHRlcihmdW5jdGlvbihrKXtyZXR1cm4gay5nZXRBdHRyaWJ1dGUoREQpPT09ZX0pWzBdLG89Sm4uZ2V0Q29tcHV0ZWRTdHlsZSh0LGUpLGQ9by5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LWZhbWlseSIpLGM9ZC5tYXRjaChScXQpLHA9by5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LXdlaWdodCIpLGw9by5nZXRQcm9wZXJ0eVZhbHVlKCJjb250ZW50Iik7aWYobiYmIWMpcmV0dXJuIHQucmVtb3ZlQ2hpbGQobiksaSgpO2lmKGMmJmwhPT0ibm9uZSImJmwhPT0iIil7dmFyIGY9by5nZXRQcm9wZXJ0eVZhbHVlKCJjb250ZW50IiksZz1YVnQoZCxwKSx5PVlWdChmKSx2PWNbMF0uc3RhcnRzV2l0aCgiRm9udEF3ZXNvbWUiKSxtPVpWdChvKSx4PUdEKGcseSksTT14O2lmKHYpe3ZhciBTPW5WdCh5KTtTLmljb25OYW1lJiZTLnByZWZpeCYmKHg9Uy5pY29uTmFtZSxnPVMucHJlZml4KX1pZih4JiYhbSYmKCFufHxuLmdldEF0dHJpYnV0ZShFRCkhPT1nfHxuLmdldEF0dHJpYnV0ZShQRCkhPT1NKSl7dC5zZXRBdHRyaWJ1dGUoYSxNKSxuJiZ0LnJlbW92ZUNoaWxkKG4pO3ZhciBGPUZWdCgpLF89Ri5leHRyYTtfLmF0dHJpYnV0ZXNbRERdPWUsSkQoeCxnKS50aGVuKGZ1bmN0aW9uKGspe3ZhciBOPVhEKE5lKE5lKHt9LEYpLHt9LHtpY29uczp7bWFpbjprLG1hc2s6UzhlKCl9LHByZWZpeDpnLGljb25OYW1lOk0sZXh0cmE6Xyx3YXRjaGFibGU6ITB9KSksTD12MS5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIik7ZT09PSI6OmJlZm9yZSI/dC5pbnNlcnRCZWZvcmUoTCx0LmZpcnN0Q2hpbGQpOnQuYXBwZW5kQ2hpbGQoTCksTC5vdXRlckhUTUw9Ti5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIEM1KEEpfSkuam9pbihgCmApLHQucmVtb3ZlQXR0cmlidXRlKGEpLGkoKX0pLmNhdGNoKHIpfWVsc2UgaSgpfWVsc2UgaSgpfSl9ZnVuY3Rpb24gS1Z0KHQpe3JldHVybiBQcm9taXNlLmFsbChbVThlKHQsIjo6YmVmb3JlIiksVThlKHQsIjo6YWZ0ZXIiKV0pfWZ1bmN0aW9uIFFWdCh0KXtyZXR1cm4gdC5wYXJlbnROb2RlIT09ZG9jdW1lbnQuaGVhZCYmIX5OcXQuaW5kZXhPZih0LnRhZ05hbWUudG9VcHBlckNhc2UoKSkmJiF0LmdldEF0dHJpYnV0ZShERCkmJighdC5wYXJlbnROb2RlfHx0LnBhcmVudE5vZGUudGFnTmFtZSE9PSJzdmciKX1mdW5jdGlvbiBXOGUodCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOiExO2lmKFRzKXt2YXIgYTtpZihlKWE9dDtlbHNlIGlmKGV0LnNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW4pYT10LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKTtlbHNle3ZhciBpPW5ldyBTZXQscj14Zihkb2N1bWVudC5zdHlsZVNoZWV0cyksczt0cnl7Zm9yKHIucygpOyEocz1yLm4oKSkuZG9uZTspe3ZhciBuPXMudmFsdWU7dHJ5e3ZhciBvPXhmKG4uY3NzUnVsZXMpLGQ7dHJ5e2ZvcihvLnMoKTshKGQ9by5uKCkpLmRvbmU7KXt2YXIgYz1kLnZhbHVlLHA9ZWp0KGMuc2VsZWN0b3JUZXh0KSxsPXhmKHApLGY7dHJ5e2ZvcihsLnMoKTshKGY9bC5uKCkpLmRvbmU7KXt2YXIgZz1mLnZhbHVlO2kuYWRkKGcpfX1jYXRjaCh2KXtsLmUodil9ZmluYWxseXtsLmYoKX19fWNhdGNoKHYpe28uZSh2KX1maW5hbGx5e28uZigpfX1jYXRjaCh2KXtldC5zZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzJiZjb25zb2xlLndhcm4oIkZvbnQgQXdlc29tZTogY2Fubm90IHBhcnNlIHN0eWxlc2hlZXQ6ICIuY29uY2F0KG4uaHJlZiwiICgiKS5jb25jYXQodi5tZXNzYWdlLGApCklmIGl0IGRlY2xhcmVzIGFueSBGb250IEF3ZXNvbWUgQ1NTIHBzZXVkby1lbGVtZW50cywgdGhleSB3aWxsIG5vdCBiZSByZW5kZXJlZCBhcyBTVkcgaWNvbnMuIEFkZCBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiB0byB0aGUgPGxpbms+LCBlbmFibGUgc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbiBmb3Igc2xvd2VyIGJ1dCBtb3JlIHRob3JvdWdoIERPTSBwYXJzaW5nLCBvciBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgYnkgc2V0dGluZyBzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzIHRvIGZhbHNlLmApKX19fWNhdGNoKHYpe3IuZSh2KX1maW5hbGx5e3IuZigpfWlmKCFpLnNpemUpcmV0dXJuO3ZhciB5PUFycmF5LmZyb20oaSkuam9pbigiLCAiKTt0cnl7YT10LnF1ZXJ5U2VsZWN0b3JBbGwoeSl9Y2F0Y2h7fX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odixtKXt2YXIgeD1ubChhKS5maWx0ZXIoUVZ0KS5tYXAoS1Z0KSxNPXRFLmJlZ2luKCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO0Y4ZSgpLFByb21pc2UuYWxsKHgpLnRoZW4oZnVuY3Rpb24oKXtNKCksaUUoKSx2KCl9KS5jYXRjaChmdW5jdGlvbigpe00oKSxpRSgpLG0oKX0pfSl9fWZ1bmN0aW9uIFo4ZSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITA7cmV0dXJuIHQuYXR0cmlidXRlcyYmKHQuYXR0cmlidXRlcy5maWxsfHxlKSYmKHQuYXR0cmlidXRlcy5maWxsPSJibGFjayIpLHR9ZnVuY3Rpb24gcmp0KHQpe3JldHVybiB0LnRhZz09PSJnIj90LmNoaWxkcmVuOlt0XX12YXIgeTVlLF9ELHg1ZSx3NWUsTTVlLGFIdCx6NWUsazVlLEpuLHYxLFM1ZSxrZixQWTEsVHMsQzVlLFRELGlIdCxySHQsXzVlLHNIdCxUNWUsUzIsTTUsTDVlLCQ1ZSxBNWUsRDVlLEU1ZSxQNWUsSTVlLE41ZSxGNWUsTzVlLFI1ZSxCNWUsSDVlLHE1ZSxWNWUsajVlLFU1ZSxuSHQsb0h0LGxIdCxjSHQsZEh0LHBIdCxoSHQsdUh0LGZIdCxtSHQsZ0h0LGJIdCx2SHQseUh0LHhIdCx3SHQsTUh0LHpIdCxrSHQsVzVlLElZMSxTSHQsQ0h0LF9IdCxUSHQsRzVlLFk1ZSxMSHQsJEh0LEFIdCxESHQsRUh0LE5ZMSxQSHQsSUh0LE5IdCxaNWUsTEQsU2YsRkh0LE9IdCxSSHQsQkh0LEhIdCxxSHQsVkh0LGpIdCxVSHQsV0h0LEdIdCxZSHQsWkh0LFhIdCxLSHQsUUh0LEpIdCxlcXQsdHF0LGFxdCxpcXQscnF0LHNxdCxucXQsb3F0LGxxdCxjcXQsZHF0LHBxdCxocXQsdXF0LGZxdCxtcXQsZ3F0LGJxdCx2cXQseXF0LHhxdCx3cXQsRlkxLE1xdCx6cXQsa3F0LFNxdCxPWTEsQ3F0LF9xdCwkRCxUcXQsWDVlLExxdCxLNWUsJHF0LEFxdCxEcXQsRXF0LExzLEFELFE1ZSxKNWUsUjAsREQsUHF0LEVELFBELGU4ZSxJcXQsTnF0LHQ4ZSxhOGUsaThlLEZxdCxJRCxyOGUsTkQsRkQsT0QsUlkxLE9xdCxzOGUsUnF0LEJxdCxCWTEsSHF0LFJELHFxdCxrNSxvOGUsc2wsZXQsUzUsZW8sQnIsR3F0LEtxdCxwOGUsUXF0LCRzLEhpLGg4ZSx1OGUsX2YsZVZ0LFZELFVELHFpLEhZMSxxWTEsXzUsdFZ0LGI4ZSxhVnQsV0QsdjhlLHk4ZSx4OGUsdzhlLE04ZSx6OGUsUzhlLF84ZSxkVnQscFZ0LHVWdCxUOGUsb2wsbGwsZlZ0LEw4ZSxnVnQsYlZ0LHZWdCxUYSx5VnQsS0Qsa1Z0LEE4ZSxlRSxUNSxDVnQsRDhlLHRFLEFmLERmLGFFLEVmLE9WdCxxVnQsVlZ0LGpWdCxVVnQsV1Z0LHE4ZSxWOGUsajhlLHJFLEdWdCxKVnQsZWp0LHRqdCxHOGUsYWp0LFk4ZSxpanQsc0Usc2p0LG5qdCxvanQsbGp0LGNqdCxkanQscGp0LGhqdCx1anQsZmp0LG1qdCxuRSxnanQsYmp0LHZqdCxuOGUsWDhlPWIoKCk9Pnt5NWU9ZnVuY3Rpb24oKXt9LF9EPXt9LHg1ZT17fSx3NWU9bnVsbCxNNWU9e21hcms6eTVlLG1lYXN1cmU6eTVlfTt0cnl7dHlwZW9mIHdpbmRvdzwidSImJihfRD13aW5kb3cpLHR5cGVvZiBkb2N1bWVudDwidSImJih4NWU9ZG9jdW1lbnQpLHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyPCJ1IiYmKHc1ZT1NdXRhdGlvbk9ic2VydmVyKSx0eXBlb2YgcGVyZm9ybWFuY2U8InUiJiYoTTVlPXBlcmZvcm1hbmNlKX1jYXRjaHt9YUh0PV9ELm5hdmlnYXRvcnx8e30sejVlPWFIdC51c2VyQWdlbnQsazVlPXo1ZT09PXZvaWQgMD8iIjp6NWUsSm49X0QsdjE9eDVlLFM1ZT13NWUsa2Y9TTVlLFBZMT0hIUpuLmRvY3VtZW50LFRzPSEhdjEuZG9jdW1lbnRFbGVtZW50JiYhIXYxLmhlYWQmJnR5cGVvZiB2MS5hZGRFdmVudExpc3RlbmVyPT0iZnVuY3Rpb24iJiZ0eXBlb2YgdjEuY3JlYXRlRWxlbWVudD09ImZ1bmN0aW9uIixDNWU9fms1ZS5pbmRleE9mKCJNU0lFIil8fH5rNWUuaW5kZXhPZigiVHJpZGVudC8iKSxpSHQ9L2ZhKGt8a2R8c3xyfGx8dHxkfGRyfGRsfGR0fGJ8c2xyfHNscHJ8d3NifHRsfG5zfG5kc3xlc3xndHxqcnxqZnJ8amRyfHVzYnx1ZnNifHVkc2J8Y3J8c3N8c3J8c2x8c3R8c2RzfHNkcnxzZGx8c2R0KT9bXC1cIF0vLHJIdD0vRm9udCA/QXdlc29tZSA/KFs1NjcgXSopKFNvbGlkfFJlZ3VsYXJ8TGlnaHR8VGhpbnxEdW90b25lfEJyYW5kc3xGcmVlfFByb3xTaGFycCBEdW90b25lfFNoYXJwfEtpdHxOb3Rkb2cgRHVvfE5vdGRvZ3xDaGlzZWx8RXRjaHxHcmFwaGl0ZXxUaHVtYnByaW50fEplbGx5IEZpbGx8SmVsbHkgRHVvfEplbGx5fFV0aWxpdHl8VXRpbGl0eSBGaWxsfFV0aWxpdHkgRHVvfFNsYWIgUHJlc3N8U2xhYnxXaGl0ZWJvYXJkKT8uKi9pLF81ZT17Y2xhc3NpYzp7ZmE6InNvbGlkIixmYXM6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsZmFyOiJyZWd1bGFyIiwiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYXQ6InRoaW4iLCJmYS10aGluIjoidGhpbiIsZmFiOiJicmFuZHMiLCJmYS1icmFuZHMiOiJicmFuZHMifSxkdW90b25lOntmYToic29saWQiLGZhZDoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIiwiZmEtZHVvdG9uZSI6InNvbGlkIixmYWRyOiJyZWd1bGFyIiwiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhZGw6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmFkdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIn0sc2hhcnA6e2ZhOiJzb2xpZCIsZmFzczoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIixmYXNyOiJyZWd1bGFyIiwiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhc2w6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmFzdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIn0sInNoYXJwLWR1b3RvbmUiOntmYToic29saWQiLGZhc2RzOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLGZhc2RyOiJyZWd1bGFyIiwiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhc2RsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhc2R0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSxzbGFiOnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhc2xyOiJyZWd1bGFyIn0sInNsYWItcHJlc3MiOnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhc2xwcjoicmVndWxhciJ9LHRodW1icHJpbnQ6eyJmYS1saWdodCI6ImxpZ2h0IixmYXRsOiJsaWdodCJ9LHdoaXRlYm9hcmQ6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXdzYjoic2VtaWJvbGQifSxub3Rkb2c6eyJmYS1zb2xpZCI6InNvbGlkIixmYW5zOiJzb2xpZCJ9LCJub3Rkb2ctZHVvIjp7ImZhLXNvbGlkIjoic29saWQiLGZhbmRzOiJzb2xpZCJ9LGV0Y2g6eyJmYS1zb2xpZCI6InNvbGlkIixmYWVzOiJzb2xpZCJ9LGdyYXBoaXRlOnsiZmEtdGhpbiI6InRoaW4iLGZhZ3Q6InRoaW4ifSxqZWxseTp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWpyOiJyZWd1bGFyIn0sImplbGx5LWZpbGwiOnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhamZyOiJyZWd1bGFyIn0sImplbGx5LWR1byI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFqZHI6InJlZ3VsYXIifSxjaGlzZWw6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFjcjoicmVndWxhciJ9LHV0aWxpdHk6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVzYjoic2VtaWJvbGQifSwidXRpbGl0eS1kdW8iOnsiZmEtc2VtaWJvbGQiOiJzZW1pYm9sZCIsZmF1ZHNiOiJzZW1pYm9sZCJ9LCJ1dGlsaXR5LWZpbGwiOnsiZmEtc2VtaWJvbGQiOiJzZW1pYm9sZCIsZmF1ZnNiOiJzZW1pYm9sZCJ9fSxzSHQ9e0dST1VQOiJkdW90b25lLWdyb3VwIixTV0FQX09QQUNJVFk6InN3YXAtb3BhY2l0eSIsUFJJTUFSWToicHJpbWFyeSIsU0VDT05EQVJZOiJzZWNvbmRhcnkifSxUNWU9WyJmYS1jbGFzc2ljIiwiZmEtZHVvdG9uZSIsImZhLXNoYXJwIiwiZmEtc2hhcnAtZHVvdG9uZSIsImZhLXRodW1icHJpbnQiLCJmYS13aGl0ZWJvYXJkIiwiZmEtbm90ZG9nIiwiZmEtbm90ZG9nLWR1byIsImZhLWNoaXNlbCIsImZhLWV0Y2giLCJmYS1ncmFwaGl0ZSIsImZhLWplbGx5IiwiZmEtamVsbHktZmlsbCIsImZhLWplbGx5LWR1byIsImZhLXNsYWIiLCJmYS1zbGFiLXByZXNzIiwiZmEtdXRpbGl0eSIsImZhLXV0aWxpdHktZHVvIiwiZmEtdXRpbGl0eS1maWxsIl0sUzI9ImNsYXNzaWMiLE01PSJkdW90b25lIixMNWU9InNoYXJwIiwkNWU9InNoYXJwLWR1b3RvbmUiLEE1ZT0iY2hpc2VsIixENWU9ImV0Y2giLEU1ZT0iZ3JhcGhpdGUiLFA1ZT0iamVsbHkiLEk1ZT0iamVsbHktZHVvIixONWU9ImplbGx5LWZpbGwiLEY1ZT0ibm90ZG9nIixPNWU9Im5vdGRvZy1kdW8iLFI1ZT0ic2xhYiIsQjVlPSJzbGFiLXByZXNzIixINWU9InRodW1icHJpbnQiLHE1ZT0idXRpbGl0eSIsVjVlPSJ1dGlsaXR5LWR1byIsajVlPSJ1dGlsaXR5LWZpbGwiLFU1ZT0id2hpdGVib2FyZCIsbkh0PSJDbGFzc2ljIixvSHQ9IkR1b3RvbmUiLGxIdD0iU2hhcnAiLGNIdD0iU2hhcnAgRHVvdG9uZSIsZEh0PSJDaGlzZWwiLHBIdD0iRXRjaCIsaEh0PSJHcmFwaGl0ZSIsdUh0PSJKZWxseSIsZkh0PSJKZWxseSBEdW8iLG1IdD0iSmVsbHkgRmlsbCIsZ0h0PSJOb3Rkb2ciLGJIdD0iTm90ZG9nIER1byIsdkh0PSJTbGFiIix5SHQ9IlNsYWIgUHJlc3MiLHhIdD0iVGh1bWJwcmludCIsd0h0PSJVdGlsaXR5IixNSHQ9IlV0aWxpdHkgRHVvIix6SHQ9IlV0aWxpdHkgRmlsbCIsa0h0PSJXaGl0ZWJvYXJkIixXNWU9W1MyLE01LEw1ZSwkNWUsQTVlLEQ1ZSxFNWUsUDVlLEk1ZSxONWUsRjVlLE81ZSxSNWUsQjVlLEg1ZSxxNWUsVjVlLGo1ZSxVNWVdLElZMT0oVEQ9e30sbXQobXQobXQobXQobXQobXQobXQobXQobXQobXQoVEQsUzIsbkh0KSxNNSxvSHQpLEw1ZSxsSHQpLCQ1ZSxjSHQpLEE1ZSxkSHQpLEQ1ZSxwSHQpLEU1ZSxoSHQpLFA1ZSx1SHQpLEk1ZSxmSHQpLE41ZSxtSHQpLG10KG10KG10KG10KG10KG10KG10KG10KG10KFRELEY1ZSxnSHQpLE81ZSxiSHQpLFI1ZSx2SHQpLEI1ZSx5SHQpLEg1ZSx4SHQpLHE1ZSx3SHQpLFY1ZSxNSHQpLGo1ZSx6SHQpLFU1ZSxrSHQpKSxTSHQ9e2NsYXNzaWM6ezkwMDoiZmFzIiw0MDA6ImZhciIsbm9ybWFsOiJmYXIiLDMwMDoiZmFsIiwxMDA6ImZhdCJ9LGR1b3RvbmU6ezkwMDoiZmFkIiw0MDA6ImZhZHIiLDMwMDoiZmFkbCIsMTAwOiJmYWR0In0sc2hhcnA6ezkwMDoiZmFzcyIsNDAwOiJmYXNyIiwzMDA6ImZhc2wiLDEwMDoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7OTAwOiJmYXNkcyIsNDAwOiJmYXNkciIsMzAwOiJmYXNkbCIsMTAwOiJmYXNkdCJ9LHNsYWI6ezQwMDoiZmFzbHIifSwic2xhYi1wcmVzcyI6ezQwMDoiZmFzbHByIn0sd2hpdGVib2FyZDp7NjAwOiJmYXdzYiJ9LHRodW1icHJpbnQ6ezMwMDoiZmF0bCJ9LG5vdGRvZzp7OTAwOiJmYW5zIn0sIm5vdGRvZy1kdW8iOns5MDA6ImZhbmRzIn0sZXRjaDp7OTAwOiJmYWVzIn0sZ3JhcGhpdGU6ezEwMDoiZmFndCJ9LGNoaXNlbDp7NDAwOiJmYWNyIn0samVsbHk6ezQwMDoiZmFqciJ9LCJqZWxseS1maWxsIjp7NDAwOiJmYWpmciJ9LCJqZWxseS1kdW8iOns0MDA6ImZhamRyIn0sdXRpbGl0eTp7NjAwOiJmYXVzYiJ9LCJ1dGlsaXR5LWR1byI6ezYwMDoiZmF1ZHNiIn0sInV0aWxpdHktZmlsbCI6ezYwMDoiZmF1ZnNiIn19LENIdD17IkZvbnQgQXdlc29tZSA3IEZyZWUiOns5MDA6ImZhcyIsNDAwOiJmYXIifSwiRm9udCBBd2Vzb21lIDcgUHJvIjp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwiLDEwMDoiZmF0In0sIkZvbnQgQXdlc29tZSA3IEJyYW5kcyI6ezQwMDoiZmFiIixub3JtYWw6ImZhYiJ9LCJGb250IEF3ZXNvbWUgNyBEdW90b25lIjp7OTAwOiJmYWQiLDQwMDoiZmFkciIsbm9ybWFsOiJmYWRyIiwzMDA6ImZhZGwiLDEwMDoiZmFkdCJ9LCJGb250IEF3ZXNvbWUgNyBTaGFycCI6ezkwMDoiZmFzcyIsNDAwOiJmYXNyIixub3JtYWw6ImZhc3IiLDMwMDoiZmFzbCIsMTAwOiJmYXN0In0sIkZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUiOns5MDA6ImZhc2RzIiw0MDA6ImZhc2RyIixub3JtYWw6ImZhc2RyIiwzMDA6ImZhc2RsIiwxMDA6ImZhc2R0In0sIkZvbnQgQXdlc29tZSA3IEplbGx5Ijp7NDAwOiJmYWpyIixub3JtYWw6ImZhanIifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkgRmlsbCI6ezQwMDoiZmFqZnIiLG5vcm1hbDoiZmFqZnIifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkgRHVvIjp7NDAwOiJmYWpkciIsbm9ybWFsOiJmYWpkciJ9LCJGb250IEF3ZXNvbWUgNyBTbGFiIjp7NDAwOiJmYXNsciIsbm9ybWFsOiJmYXNsciJ9LCJGb250IEF3ZXNvbWUgNyBTbGFiIFByZXNzIjp7NDAwOiJmYXNscHIiLG5vcm1hbDoiZmFzbHByIn0sIkZvbnQgQXdlc29tZSA3IFRodW1icHJpbnQiOnszMDA6ImZhdGwiLG5vcm1hbDoiZmF0bCJ9LCJGb250IEF3ZXNvbWUgNyBOb3Rkb2ciOns5MDA6ImZhbnMiLG5vcm1hbDoiZmFucyJ9LCJGb250IEF3ZXNvbWUgNyBOb3Rkb2cgRHVvIjp7OTAwOiJmYW5kcyIsbm9ybWFsOiJmYW5kcyJ9LCJGb250IEF3ZXNvbWUgNyBFdGNoIjp7OTAwOiJmYWVzIixub3JtYWw6ImZhZXMifSwiRm9udCBBd2Vzb21lIDcgR3JhcGhpdGUiOnsxMDA6ImZhZ3QiLG5vcm1hbDoiZmFndCJ9LCJGb250IEF3ZXNvbWUgNyBDaGlzZWwiOns0MDA6ImZhY3IiLG5vcm1hbDoiZmFjciJ9LCJGb250IEF3ZXNvbWUgNyBXaGl0ZWJvYXJkIjp7NjAwOiJmYXdzYiIsbm9ybWFsOiJmYXdzYiJ9LCJGb250IEF3ZXNvbWUgNyBVdGlsaXR5Ijp7NjAwOiJmYXVzYiIsbm9ybWFsOiJmYXVzYiJ9LCJGb250IEF3ZXNvbWUgNyBVdGlsaXR5IER1byI6ezYwMDoiZmF1ZHNiIixub3JtYWw6ImZhdWRzYiJ9LCJGb250IEF3ZXNvbWUgNyBVdGlsaXR5IEZpbGwiOns2MDA6ImZhdWZzYiIsbm9ybWFsOiJmYXVmc2IifX0sX0h0PW5ldyBNYXAoW1siY2xhc3NpYyIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iLCJicmFuZHMiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImR1b3RvbmUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFkIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJzaGFycCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXNzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJzaGFycC1kdW90b25lIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc2RzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiLCJyZWd1bGFyIiwibGlnaHQiLCJ0aGluIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJjaGlzZWwiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFjciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiZXRjaCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWVzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImdyYXBoaXRlIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhZ3QiLGRlZmF1bHRTdHlsZUlkOiJ0aGluIixzdHlsZUlkczpbInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDoxMDB9XSxbImplbGx5Iix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhanIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbImplbGx5LWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWpkciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiamVsbHktZmlsbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWpmciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsibm90ZG9nIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhbnMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsibm90ZG9nLWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYW5kcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJzbGFiIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc2xyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJzbGFiLXByZXNzIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc2xwciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsidGh1bWJwcmludCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXRsIixkZWZhdWx0U3R5bGVJZDoibGlnaHQiLHN0eWxlSWRzOlsibGlnaHQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDozMDB9XSxbInV0aWxpdHkiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmF1c2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsidXRpbGl0eS1kdW8iLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmF1ZHNiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XSxbInV0aWxpdHktZmlsbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVmc2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsid2hpdGVib2FyZCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXdzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV1dKSxUSHQ9e2NoaXNlbDp7cmVndWxhcjoiZmFjciJ9LGNsYXNzaWM6e2JyYW5kczoiZmFiIixsaWdodDoiZmFsIixyZWd1bGFyOiJmYXIiLHNvbGlkOiJmYXMiLHRoaW46ImZhdCJ9LGR1b3RvbmU6e2xpZ2h0OiJmYWRsIixyZWd1bGFyOiJmYWRyIixzb2xpZDoiZmFkIix0aGluOiJmYWR0In0sZXRjaDp7c29saWQ6ImZhZXMifSxncmFwaGl0ZTp7dGhpbjoiZmFndCJ9LGplbGx5OntyZWd1bGFyOiJmYWpyIn0sImplbGx5LWR1byI6e3JlZ3VsYXI6ImZhamRyIn0sImplbGx5LWZpbGwiOntyZWd1bGFyOiJmYWpmciJ9LG5vdGRvZzp7c29saWQ6ImZhbnMifSwibm90ZG9nLWR1byI6e3NvbGlkOiJmYW5kcyJ9LHNoYXJwOntsaWdodDoiZmFzbCIscmVndWxhcjoiZmFzciIsc29saWQ6ImZhc3MiLHRoaW46ImZhc3QifSwic2hhcnAtZHVvdG9uZSI6e2xpZ2h0OiJmYXNkbCIscmVndWxhcjoiZmFzZHIiLHNvbGlkOiJmYXNkcyIsdGhpbjoiZmFzZHQifSxzbGFiOntyZWd1bGFyOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7cmVndWxhcjoiZmFzbHByIn0sdGh1bWJwcmludDp7bGlnaHQ6ImZhdGwifSx1dGlsaXR5OntzZW1pYm9sZDoiZmF1c2IifSwidXRpbGl0eS1kdW8iOntzZW1pYm9sZDoiZmF1ZHNiIn0sInV0aWxpdHktZmlsbCI6e3NlbWlib2xkOiJmYXVmc2IifSx3aGl0ZWJvYXJkOntzZW1pYm9sZDoiZmF3c2IifX0sRzVlPVsiZmFrIiwiZmEta2l0IiwiZmFrZCIsImZhLWtpdC1kdW90b25lIl0sWTVlPXtraXQ6e2Zhazoia2l0IiwiZmEta2l0Ijoia2l0In0sImtpdC1kdW90b25lIjp7ZmFrZDoia2l0LWR1b3RvbmUiLCJmYS1raXQtZHVvdG9uZSI6ImtpdC1kdW90b25lIn19LExIdD1bImtpdCJdLCRIdD0ia2l0IixBSHQ9ImtpdC1kdW90b25lIixESHQ9IktpdCIsRUh0PSJLaXQgRHVvdG9uZSIsTlkxPW10KG10KHt9LCRIdCxESHQpLEFIdCxFSHQpLFBIdD17a2l0OnsiZmEta2l0IjoiZmFrIn0sImtpdC1kdW90b25lIjp7ImZhLWtpdC1kdW90b25lIjoiZmFrZCJ9fSxJSHQ9eyJGb250IEF3ZXNvbWUgS2l0Ijp7NDAwOiJmYWsiLG5vcm1hbDoiZmFrIn0sIkZvbnQgQXdlc29tZSBLaXQgRHVvdG9uZSI6ezQwMDoiZmFrZCIsbm9ybWFsOiJmYWtkIn19LE5IdD17a2l0OntmYWs6ImZhLWtpdCJ9LCJraXQtZHVvdG9uZSI6e2Zha2Q6ImZhLWtpdC1kdW90b25lIn19LFo1ZT17a2l0OntraXQ6ImZhayJ9LCJraXQtZHVvdG9uZSI6eyJraXQtZHVvdG9uZSI6ImZha2QifX0sU2Y9e0dST1VQOiJkdW90b25lLWdyb3VwIixTV0FQX09QQUNJVFk6InN3YXAtb3BhY2l0eSIsUFJJTUFSWToicHJpbWFyeSIsU0VDT05EQVJZOiJzZWNvbmRhcnkifSxGSHQ9WyJmYS1jbGFzc2ljIiwiZmEtZHVvdG9uZSIsImZhLXNoYXJwIiwiZmEtc2hhcnAtZHVvdG9uZSIsImZhLXRodW1icHJpbnQiLCJmYS13aGl0ZWJvYXJkIiwiZmEtbm90ZG9nIiwiZmEtbm90ZG9nLWR1byIsImZhLWNoaXNlbCIsImZhLWV0Y2giLCJmYS1ncmFwaGl0ZSIsImZhLWplbGx5IiwiZmEtamVsbHktZmlsbCIsImZhLWplbGx5LWR1byIsImZhLXNsYWIiLCJmYS1zbGFiLXByZXNzIiwiZmEtdXRpbGl0eSIsImZhLXV0aWxpdHktZHVvIiwiZmEtdXRpbGl0eS1maWxsIl0sT0h0PSJjbGFzc2ljIixSSHQ9ImR1b3RvbmUiLEJIdD0ic2hhcnAiLEhIdD0ic2hhcnAtZHVvdG9uZSIscUh0PSJjaGlzZWwiLFZIdD0iZXRjaCIsakh0PSJncmFwaGl0ZSIsVUh0PSJqZWxseSIsV0h0PSJqZWxseS1kdW8iLEdIdD0iamVsbHktZmlsbCIsWUh0PSJub3Rkb2ciLFpIdD0ibm90ZG9nLWR1byIsWEh0PSJzbGFiIixLSHQ9InNsYWItcHJlc3MiLFFIdD0idGh1bWJwcmludCIsSkh0PSJ1dGlsaXR5IixlcXQ9InV0aWxpdHktZHVvIix0cXQ9InV0aWxpdHktZmlsbCIsYXF0PSJ3aGl0ZWJvYXJkIixpcXQ9IkNsYXNzaWMiLHJxdD0iRHVvdG9uZSIsc3F0PSJTaGFycCIsbnF0PSJTaGFycCBEdW90b25lIixvcXQ9IkNoaXNlbCIsbHF0PSJFdGNoIixjcXQ9IkdyYXBoaXRlIixkcXQ9IkplbGx5IixwcXQ9IkplbGx5IER1byIsaHF0PSJKZWxseSBGaWxsIix1cXQ9Ik5vdGRvZyIsZnF0PSJOb3Rkb2cgRHVvIixtcXQ9IlNsYWIiLGdxdD0iU2xhYiBQcmVzcyIsYnF0PSJUaHVtYnByaW50Iix2cXQ9IlV0aWxpdHkiLHlxdD0iVXRpbGl0eSBEdW8iLHhxdD0iVXRpbGl0eSBGaWxsIix3cXQ9IldoaXRlYm9hcmQiLEZZMT0oTEQ9e30sbXQobXQobXQobXQobXQobXQobXQobXQobXQobXQoTEQsT0h0LGlxdCksUkh0LHJxdCksQkh0LHNxdCksSEh0LG5xdCkscUh0LG9xdCksVkh0LGxxdCksakh0LGNxdCksVUh0LGRxdCksV0h0LHBxdCksR0h0LGhxdCksbXQobXQobXQobXQobXQobXQobXQobXQobXQoTEQsWUh0LHVxdCksWkh0LGZxdCksWEh0LG1xdCksS0h0LGdxdCksUUh0LGJxdCksSkh0LHZxdCksZXF0LHlxdCksdHF0LHhxdCksYXF0LHdxdCkpLE1xdD0ia2l0Iix6cXQ9ImtpdC1kdW90b25lIixrcXQ9IktpdCIsU3F0PSJLaXQgRHVvdG9uZSIsT1kxPW10KG10KHt9LE1xdCxrcXQpLHpxdCxTcXQpLENxdD17Y2xhc3NpYzp7ImZhLWJyYW5kcyI6ImZhYiIsImZhLWR1b3RvbmUiOiJmYWQiLCJmYS1saWdodCI6ImZhbCIsImZhLXJlZ3VsYXIiOiJmYXIiLCJmYS1zb2xpZCI6ImZhcyIsImZhLXRoaW4iOiJmYXQifSxkdW90b25lOnsiZmEtcmVndWxhciI6ImZhZHIiLCJmYS1saWdodCI6ImZhZGwiLCJmYS10aGluIjoiZmFkdCJ9LHNoYXJwOnsiZmEtc29saWQiOiJmYXNzIiwiZmEtcmVndWxhciI6ImZhc3IiLCJmYS1saWdodCI6ImZhc2wiLCJmYS10aGluIjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7ImZhLXNvbGlkIjoiZmFzZHMiLCJmYS1yZWd1bGFyIjoiZmFzZHIiLCJmYS1saWdodCI6ImZhc2RsIiwiZmEtdGhpbiI6ImZhc2R0In0sc2xhYjp7ImZhLXJlZ3VsYXIiOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7ImZhLXJlZ3VsYXIiOiJmYXNscHIifSx3aGl0ZWJvYXJkOnsiZmEtc2VtaWJvbGQiOiJmYXdzYiJ9LHRodW1icHJpbnQ6eyJmYS1saWdodCI6ImZhdGwifSxub3Rkb2c6eyJmYS1zb2xpZCI6ImZhbnMifSwibm90ZG9nLWR1byI6eyJmYS1zb2xpZCI6ImZhbmRzIn0sZXRjaDp7ImZhLXNvbGlkIjoiZmFlcyJ9LGdyYXBoaXRlOnsiZmEtdGhpbiI6ImZhZ3QifSxqZWxseTp7ImZhLXJlZ3VsYXIiOiJmYWpyIn0sImplbGx5LWZpbGwiOnsiZmEtcmVndWxhciI6ImZhamZyIn0sImplbGx5LWR1byI6eyJmYS1yZWd1bGFyIjoiZmFqZHIifSxjaGlzZWw6eyJmYS1yZWd1bGFyIjoiZmFjciJ9LHV0aWxpdHk6eyJmYS1zZW1pYm9sZCI6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7ImZhLXNlbWlib2xkIjoiZmF1ZHNiIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6ImZhdWZzYiJ9fSxfcXQ9e2NsYXNzaWM6WyJmYXMiLCJmYXIiLCJmYWwiLCJmYXQiLCJmYWQiXSxkdW90b25lOlsiZmFkciIsImZhZGwiLCJmYWR0Il0sc2hhcnA6WyJmYXNzIiwiZmFzciIsImZhc2wiLCJmYXN0Il0sInNoYXJwLWR1b3RvbmUiOlsiZmFzZHMiLCJmYXNkciIsImZhc2RsIiwiZmFzZHQiXSxzbGFiOlsiZmFzbHIiXSwic2xhYi1wcmVzcyI6WyJmYXNscHIiXSx3aGl0ZWJvYXJkOlsiZmF3c2IiXSx0aHVtYnByaW50OlsiZmF0bCJdLG5vdGRvZzpbImZhbnMiXSwibm90ZG9nLWR1byI6WyJmYW5kcyJdLGV0Y2g6WyJmYWVzIl0sZ3JhcGhpdGU6WyJmYWd0Il0samVsbHk6WyJmYWpyIl0sImplbGx5LWZpbGwiOlsiZmFqZnIiXSwiamVsbHktZHVvIjpbImZhamRyIl0sY2hpc2VsOlsiZmFjciJdLHV0aWxpdHk6WyJmYXVzYiJdLCJ1dGlsaXR5LWR1byI6WyJmYXVkc2IiXSwidXRpbGl0eS1maWxsIjpbImZhdWZzYiJdfSwkRD17Y2xhc3NpYzp7ZmFiOiJmYS1icmFuZHMiLGZhZDoiZmEtZHVvdG9uZSIsZmFsOiJmYS1saWdodCIsZmFyOiJmYS1yZWd1bGFyIixmYXM6ImZhLXNvbGlkIixmYXQ6ImZhLXRoaW4ifSxkdW90b25lOntmYWRyOiJmYS1yZWd1bGFyIixmYWRsOiJmYS1saWdodCIsZmFkdDoiZmEtdGhpbiJ9LHNoYXJwOntmYXNzOiJmYS1zb2xpZCIsZmFzcjoiZmEtcmVndWxhciIsZmFzbDoiZmEtbGlnaHQiLGZhc3Q6ImZhLXRoaW4ifSwic2hhcnAtZHVvdG9uZSI6e2Zhc2RzOiJmYS1zb2xpZCIsZmFzZHI6ImZhLXJlZ3VsYXIiLGZhc2RsOiJmYS1saWdodCIsZmFzZHQ6ImZhLXRoaW4ifSxzbGFiOntmYXNscjoiZmEtcmVndWxhciJ9LCJzbGFiLXByZXNzIjp7ZmFzbHByOiJmYS1yZWd1bGFyIn0sd2hpdGVib2FyZDp7ZmF3c2I6ImZhLXNlbWlib2xkIn0sdGh1bWJwcmludDp7ZmF0bDoiZmEtbGlnaHQifSxub3Rkb2c6e2ZhbnM6ImZhLXNvbGlkIn0sIm5vdGRvZy1kdW8iOntmYW5kczoiZmEtc29saWQifSxldGNoOntmYWVzOiJmYS1zb2xpZCJ9LGdyYXBoaXRlOntmYWd0OiJmYS10aGluIn0samVsbHk6e2ZhanI6ImZhLXJlZ3VsYXIifSwiamVsbHktZmlsbCI6e2ZhamZyOiJmYS1yZWd1bGFyIn0sImplbGx5LWR1byI6e2ZhamRyOiJmYS1yZWd1bGFyIn0sY2hpc2VsOntmYWNyOiJmYS1yZWd1bGFyIn0sdXRpbGl0eTp7ZmF1c2I6ImZhLXNlbWlib2xkIn0sInV0aWxpdHktZHVvIjp7ZmF1ZHNiOiJmYS1zZW1pYm9sZCJ9LCJ1dGlsaXR5LWZpbGwiOntmYXVmc2I6ImZhLXNlbWlib2xkIn19LFRxdD1bImZhLXNvbGlkIiwiZmEtcmVndWxhciIsImZhLWxpZ2h0IiwiZmEtdGhpbiIsImZhLWR1b3RvbmUiLCJmYS1icmFuZHMiLCJmYS1zZW1pYm9sZCJdLFg1ZT1bImZhIiwiZmFzIiwiZmFyIiwiZmFsIiwiZmF0IiwiZmFkIiwiZmFkciIsImZhZGwiLCJmYWR0IiwiZmFiIiwiZmFzcyIsImZhc3IiLCJmYXNsIiwiZmFzdCIsImZhc2RzIiwiZmFzZHIiLCJmYXNkbCIsImZhc2R0IiwiZmFzbHIiLCJmYXNscHIiLCJmYXdzYiIsImZhdGwiLCJmYW5zIiwiZmFuZHMiLCJmYWVzIiwiZmFndCIsImZhanIiLCJmYWpmciIsImZhamRyIiwiZmFjciIsImZhdXNiIiwiZmF1ZHNiIiwiZmF1ZnNiIl0uY29uY2F0KEZIdCxUcXQpLExxdD1bInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiIsImR1b3RvbmUiLCJicmFuZHMiLCJzZW1pYm9sZCJdLEs1ZT1bMSwyLDMsNCw1LDYsNyw4LDksMTBdLCRxdD1LNWUuY29uY2F0KFsxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMF0pLEFxdD1bImF3IiwiZnciLCJwdWxsLWxlZnQiLCJwdWxsLXJpZ2h0Il0sRHF0PVtdLmNvbmNhdChCaShPYmplY3Qua2V5cyhfcXQpKSxMcXQsQXF0LFsiMnhzIiwieHMiLCJzbSIsImxnIiwieGwiLCIyeGwiLCJiZWF0IiwiYm9yZGVyIiwiZmFkZSIsImJlYXQtZmFkZSIsImJvdW5jZSIsImZsaXAtYm90aCIsImZsaXAtaG9yaXpvbnRhbCIsImZsaXAtdmVydGljYWwiLCJmbGlwIiwiaW52ZXJzZSIsImxheWVycyIsImxheWVycy1ib3R0b20tbGVmdCIsImxheWVycy1ib3R0b20tcmlnaHQiLCJsYXllcnMtY291bnRlciIsImxheWVycy10ZXh0IiwibGF5ZXJzLXRvcC1sZWZ0IiwibGF5ZXJzLXRvcC1yaWdodCIsImxpIiwicHVsbC1lbmQiLCJwdWxsLXN0YXJ0IiwicHVsc2UiLCJyb3RhdGUtMTgwIiwicm90YXRlLTI3MCIsInJvdGF0ZS05MCIsInJvdGF0ZS1ieSIsInNoYWtlIiwic3Bpbi1wdWxzZSIsInNwaW4tcmV2ZXJzZSIsInNwaW4iLCJzdGFjay0xeCIsInN0YWNrLTJ4Iiwic3RhY2siLCJ1bCIsIndpZHRoLWF1dG8iLCJ3aWR0aC1maXhlZCIsU2YuR1JPVVAsU2YuU1dBUF9PUEFDSVRZLFNmLlBSSU1BUlksU2YuU0VDT05EQVJZXSkuY29uY2F0KEs1ZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIiIuY29uY2F0KHQsIngiKX0pKS5jb25jYXQoJHF0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4idy0iLmNvbmNhdCh0KX0pKSxFcXQ9eyJGb250IEF3ZXNvbWUgNSBGcmVlIjp7OTAwOiJmYXMiLDQwMDoiZmFyIn0sIkZvbnQgQXdlc29tZSA1IFBybyI6ezkwMDoiZmFzIiw0MDA6ImZhciIsbm9ybWFsOiJmYXIiLDMwMDoiZmFsIn0sIkZvbnQgQXdlc29tZSA1IEJyYW5kcyI6ezQwMDoiZmFiIixub3JtYWw6ImZhYiJ9LCJGb250IEF3ZXNvbWUgNSBEdW90b25lIjp7OTAwOiJmYWQifX0sTHM9Il9fX0ZPTlRfQVdFU09NRV9fXyIsQUQ9MTYsUTVlPSJmYSIsSjVlPSJzdmctaW5saW5lLS1mYSIsUjA9ImRhdGEtZmEtaTJzdmciLEREPSJkYXRhLWZhLXBzZXVkby1lbGVtZW50IixQcXQ9ImRhdGEtZmEtcHNldWRvLWVsZW1lbnQtcGVuZGluZyIsRUQ9ImRhdGEtcHJlZml4IixQRD0iZGF0YS1pY29uIixlOGU9ImZvbnRhd2Vzb21lLWkyc3ZnIixJcXQ9ImFzeW5jIixOcXQ9WyJIVE1MIiwiSEVBRCIsIlNUWUxFIiwiU0NSSVBUIl0sdDhlPVsiOjpiZWZvcmUiLCI6OmFmdGVyIiwiOmJlZm9yZSIsIjphZnRlciJdLGE4ZT0oZnVuY3Rpb24oKXt0cnl7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fSkoKTtpOGU9TmUoe30sXzVlKTtpOGVbUzJdPU5lKE5lKE5lKE5lKHt9LHsiZmEtZHVvdG9uZSI6ImR1b3RvbmUifSksXzVlW1MyXSksWTVlLmtpdCksWTVlWyJraXQtZHVvdG9uZSJdKTtGcXQ9ejUoaThlKSxJRD1OZSh7fSxUSHQpO0lEW1MyXT1OZShOZShOZShOZSh7fSx7ZHVvdG9uZToiZmFkIn0pLElEW1MyXSksWjVlLmtpdCksWjVlWyJraXQtZHVvdG9uZSJdKTtyOGU9ejUoSUQpLE5EPU5lKHt9LCREKTtORFtTMl09TmUoTmUoe30sTkRbUzJdKSxOSHQua2l0KTtGRD16NShORCksT0Q9TmUoe30sQ3F0KTtPRFtTMl09TmUoTmUoe30sT0RbUzJdKSxQSHQua2l0KTtSWTE9ejUoT0QpLE9xdD1pSHQsczhlPSJmYS1sYXllcnMtdGV4dCIsUnF0PXJIdCxCcXQ9TmUoe30sU0h0KSxCWTE9ejUoQnF0KSxIcXQ9WyJjbGFzcyIsImRhdGEtcHJlZml4IiwiZGF0YS1pY29uIiwiZGF0YS1mYS10cmFuc2Zvcm0iLCJkYXRhLWZhLW1hc2siXSxSRD1zSHQscXF0PVtdLmNvbmNhdChCaShMSHQpLEJpKERxdCkpLGs1PUpuLkZvbnRBd2Vzb21lQ29uZmlnfHx7fTt2MSYmdHlwZW9mIHYxLnF1ZXJ5U2VsZWN0b3I9PSJmdW5jdGlvbiImJihuOGU9W1siZGF0YS1mYW1pbHktcHJlZml4IiwiZmFtaWx5UHJlZml4Il0sWyJkYXRhLWNzcy1wcmVmaXgiLCJjc3NQcmVmaXgiXSxbImRhdGEtZmFtaWx5LWRlZmF1bHQiLCJmYW1pbHlEZWZhdWx0Il0sWyJkYXRhLXN0eWxlLWRlZmF1bHQiLCJzdHlsZURlZmF1bHQiXSxbImRhdGEtcmVwbGFjZW1lbnQtY2xhc3MiLCJyZXBsYWNlbWVudENsYXNzIl0sWyJkYXRhLWF1dG8tcmVwbGFjZS1zdmciLCJhdXRvUmVwbGFjZVN2ZyJdLFsiZGF0YS1hdXRvLWFkZC1jc3MiLCJhdXRvQWRkQ3NzIl0sWyJkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMiLCJzZWFyY2hQc2V1ZG9FbGVtZW50cyJdLFsiZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzLXdhcm5pbmdzIiwic2VhcmNoUHNldWRvRWxlbWVudHNXYXJuaW5ncyJdLFsiZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzLWZ1bGwtc2NhbiIsInNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW4iXSxbImRhdGEtb2JzZXJ2ZS1tdXRhdGlvbnMiLCJvYnNlcnZlTXV0YXRpb25zIl0sWyJkYXRhLW11dGF0ZS1hcHByb2FjaCIsIm11dGF0ZUFwcHJvYWNoIl0sWyJkYXRhLWtlZXAtb3JpZ2luYWwtc291cmNlIiwia2VlcE9yaWdpbmFsU291cmNlIl0sWyJkYXRhLW1lYXN1cmUtcGVyZm9ybWFuY2UiLCJtZWFzdXJlUGVyZm9ybWFuY2UiXSxbImRhdGEtc2hvdy1taXNzaW5nLWljb25zIiwic2hvd01pc3NpbmdJY29ucyJdXSxuOGUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1NZih0LDIpLGE9ZVswXSxpPWVbMV0scj1qcXQoVnF0KGEpKTtyIT1udWxsJiYoazVbaV09cil9KSk7bzhlPXtzdHlsZURlZmF1bHQ6InNvbGlkIixmYW1pbHlEZWZhdWx0OlMyLGNzc1ByZWZpeDpRNWUscmVwbGFjZW1lbnRDbGFzczpKNWUsYXV0b1JlcGxhY2VTdmc6ITAsYXV0b0FkZENzczohMCxzZWFyY2hQc2V1ZG9FbGVtZW50czohMSxzZWFyY2hQc2V1ZG9FbGVtZW50c1dhcm5pbmdzOiEwLHNlYXJjaFBzZXVkb0VsZW1lbnRzRnVsbFNjYW46ITEsb2JzZXJ2ZU11dGF0aW9uczohMCxtdXRhdGVBcHByb2FjaDoiYXN5bmMiLGtlZXBPcmlnaW5hbFNvdXJjZTohMCxtZWFzdXJlUGVyZm9ybWFuY2U6ITEsc2hvd01pc3NpbmdJY29uczohMH07azUuZmFtaWx5UHJlZml4JiYoazUuY3NzUHJlZml4PWs1LmZhbWlseVByZWZpeCk7c2w9TmUoTmUoe30sbzhlKSxrNSk7c2wuYXV0b1JlcGxhY2VTdmd8fChzbC5vYnNlcnZlTXV0YXRpb25zPSExKTtldD17fTtPYmplY3Qua2V5cyhvOGUpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV0LHQse2VudW1lcmFibGU6ITAsc2V0OmZ1bmN0aW9uKGEpe3NsW3RdPWEsUzUuZm9yRWFjaChmdW5jdGlvbihpKXtyZXR1cm4gaShldCl9KX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHNsW3RdfX0pfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGV0LCJmYW1pbHlQcmVmaXgiLHtlbnVtZXJhYmxlOiEwLHNldDpmdW5jdGlvbihlKXtzbC5jc3NQcmVmaXg9ZSxTNS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhKGV0KX0pfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc2wuY3NzUHJlZml4fX0pLEpuLkZvbnRBd2Vzb21lQ29uZmlnPWV0O1M1PVtdO2VvPUFELEJyPXtzaXplOjE2LHg6MCx5OjAscm90YXRlOjAsZmxpcFg6ITEsZmxpcFk6ITF9O0dxdD0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiO0txdD1gOnJvb3QsIDpob3N0IHsKICAtLWZhLWZvbnQtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEZyZWUnOwogIC0tZmEtZm9udC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBGcmVlJzsKICAtLWZhLWZvbnQtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFBybyc7CiAgLS1mYS1mb250LXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFBybyc7CiAgLS1mYS1mb250LWR1b3RvbmU6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IER1b3RvbmUnOwogIC0tZmEtZm9udC1kdW90b25lLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IER1b3RvbmUnOwogIC0tZmEtZm9udC1kdW90b25lLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtZHVvdG9uZS10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBEdW90b25lJzsKICAtLWZhLWZvbnQtYnJhbmRzOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBCcmFuZHMnOwogIC0tZmEtZm9udC1zaGFycC1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwIER1b3RvbmUnOwogIC0tZmEtZm9udC1zbGFiLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNsYWInOwogIC0tZmEtZm9udC1zbGFiLXByZXNzLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNsYWIgUHJlc3MnOwogIC0tZmEtZm9udC13aGl0ZWJvYXJkLXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBXaGl0ZWJvYXJkJzsKICAtLWZhLWZvbnQtdGh1bWJwcmludC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVGh1bWJwcmludCc7CiAgLS1mYS1mb250LW5vdGRvZy1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgTm90ZG9nJzsKICAtLWZhLWZvbnQtbm90ZG9nLWR1by1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgTm90ZG9nIER1byc7CiAgLS1mYS1mb250LWV0Y2gtc29saWQ6IG5vcm1hbCA5MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEV0Y2gnOwogIC0tZmEtZm9udC1ncmFwaGl0ZS10aGluOiBub3JtYWwgMTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBHcmFwaGl0ZSc7CiAgLS1mYS1mb250LWplbGx5LXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEplbGx5JzsKICAtLWZhLWZvbnQtamVsbHktZmlsbC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBKZWxseSBGaWxsJzsKICAtLWZhLWZvbnQtamVsbHktZHVvLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEplbGx5IER1byc7CiAgLS1mYS1mb250LWNoaXNlbC1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBDaGlzZWwnOwogIC0tZmEtZm9udC11dGlsaXR5LXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBVdGlsaXR5JzsKICAtLWZhLWZvbnQtdXRpbGl0eS1kdW8tc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRHVvJzsKICAtLWZhLWZvbnQtdXRpbGl0eS1maWxsLXNlbWlib2xkOiBub3JtYWwgNjAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBVdGlsaXR5IEZpbGwnOwp9Cgouc3ZnLWlubGluZS0tZmEgewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OwogIGRpc3BsYXk6IHZhcigtLWZhLWRpc3BsYXksIGlubGluZS1ibG9jayk7CiAgaGVpZ2h0OiAxZW07CiAgb3ZlcmZsb3c6IHZpc2libGU7CiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCwgMS4yNWVtKTsKfQouc3ZnLWlubGluZS0tZmEuZmEtMnhzIHsKICB2ZXJ0aWNhbC1hbGlnbjogMC4xZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXhzIHsKICB2ZXJ0aWNhbC1hbGlnbjogMGVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1zbSB7CiAgdmVydGljYWwtYWxpZ246IC0wLjA3MTQyODU3MTRlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtbGcgewogIHZlcnRpY2FsLWFsaWduOiAtMC4yZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXhsIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMjVlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEtMnhsIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMzEyNWVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1wdWxsLWxlZnQsCi5zdmctaW5saW5lLS1mYSAuZmEtcHVsbC1zdGFydCB7CiAgZmxvYXQ6IGlubGluZS1zdGFydDsKICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQouc3ZnLWlubGluZS0tZmEuZmEtcHVsbC1yaWdodCwKLnN2Zy1pbmxpbmUtLWZhIC5mYS1wdWxsLWVuZCB7CiAgZmxvYXQ6IGlubGluZS1lbmQ7CiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQouc3ZnLWlubGluZS0tZmEuZmEtbGkgewogIHdpZHRoOiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKTsKICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKSk7CiAgaW5zZXQtYmxvY2stc3RhcnQ6IDAuMjVlbTsgLyogc3luY2luZyB2ZXJ0aWNhbCBhbGlnbm1lbnQgd2l0aCBXZWIgRm9udCByZW5kZXJpbmcgKi8KfQoKLmZhLWxheWVycy1jb3VudGVyLCAuZmEtbGF5ZXJzLXRleHQgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgouZmEtbGF5ZXJzIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgaGVpZ2h0OiAxZW07CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoLCAxLjI1ZW0pOwp9Ci5mYS1sYXllcnMgLnN2Zy1pbmxpbmUtLWZhIHsKICBpbnNldDogMDsKICBtYXJnaW46IGF1dG87CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7Cn0KCi5mYS1sYXllcnMtdGV4dCB7CiAgbGVmdDogNTAlOwogIHRvcDogNTAlOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7Cn0KCi5mYS1sYXllcnMtY291bnRlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZmEtY291bnRlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZmYyNTNhKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1mYS1jb3VudGVyLWJvcmRlci1yYWRpdXMsIDFlbSk7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBjb2xvcjogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7CiAgbGluZS1oZWlnaHQ6IHZhcigtLWZhLWNvdW50ZXItbGluZS1oZWlnaHQsIDEpOwogIG1heC13aWR0aDogdmFyKC0tZmEtY291bnRlci1tYXgtd2lkdGgsIDVlbSk7CiAgbWluLXdpZHRoOiB2YXIoLS1mYS1jb3VudGVyLW1pbi13aWR0aCwgMS41ZW0pOwogIG92ZXJmbG93OiBoaWRkZW47CiAgcGFkZGluZzogdmFyKC0tZmEtY291bnRlci1wYWRkaW5nLCAwLjI1ZW0gMC41ZW0pOwogIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgdG9wOiB2YXIoLS1mYS10b3AsIDApOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtY291bnRlci1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDsKfQoKLmZhLWxheWVycy1ib3R0b20tcmlnaHQgewogIGJvdHRvbTogdmFyKC0tZmEtYm90dG9tLCAwKTsKICByaWdodDogdmFyKC0tZmEtcmlnaHQsIDApOwogIHRvcDogYXV0bzsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSByaWdodDsKfQoKLmZhLWxheWVycy1ib3R0b20tbGVmdCB7CiAgYm90dG9tOiB2YXIoLS1mYS1ib3R0b20sIDApOwogIGxlZnQ6IHZhcigtLWZhLWxlZnQsIDApOwogIHJpZ2h0OiBhdXRvOwogIHRvcDogYXV0bzsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0Owp9CgouZmEtbGF5ZXJzLXRvcC1yaWdodCB7CiAgdG9wOiB2YXIoLS1mYS10b3AsIDApOwogIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1sYXllcnMtc2NhbGUsIDAuMjUpKTsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7Cn0KCi5mYS1sYXllcnMtdG9wLWxlZnQgewogIGxlZnQ6IHZhcigtLWZhLWxlZnQsIDApOwogIHJpZ2h0OiBhdXRvOwogIHRvcDogdmFyKC0tZmEtdG9wLCAwKTsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0Owp9CgouZmEtMXggewogIGZvbnQtc2l6ZTogMWVtOwp9CgouZmEtMnggewogIGZvbnQtc2l6ZTogMmVtOwp9CgouZmEtM3ggewogIGZvbnQtc2l6ZTogM2VtOwp9CgouZmEtNHggewogIGZvbnQtc2l6ZTogNGVtOwp9CgouZmEtNXggewogIGZvbnQtc2l6ZTogNWVtOwp9CgouZmEtNnggewogIGZvbnQtc2l6ZTogNmVtOwp9CgouZmEtN3ggewogIGZvbnQtc2l6ZTogN2VtOwp9CgouZmEtOHggewogIGZvbnQtc2l6ZTogOGVtOwp9CgouZmEtOXggewogIGZvbnQtc2l6ZTogOWVtOwp9CgouZmEtMTB4IHsKICBmb250LXNpemU6IDEwZW07Cn0KCi5mYS0yeHMgewogIGZvbnQtc2l6ZTogY2FsYygxMCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxMHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDEwICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxMCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS14cyB7CiAgZm9udC1zaXplOiBjYWxjKDEyIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDEycHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTIgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDEyIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXNtIHsKICBmb250LXNpemU6IGNhbGMoMTQgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTRweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxNCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTQgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtbGcgewogIGZvbnQtc2l6ZTogY2FsYygyMCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAyMHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDIwICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAyMCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS14bCB7CiAgZm9udC1zaXplOiBjYWxjKDI0IC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDI0cHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMjQgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDI0IC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLTJ4bCB7CiAgZm9udC1zaXplOiBjYWxjKDMyIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDMycHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMzIgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDMyIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXdpZHRoLWF1dG8gewogIC0tZmEtd2lkdGg6IGF1dG87Cn0KCi5mYS1mdywKLmZhLXdpZHRoLWZpeGVkIHsKICAtLWZhLXdpZHRoOiAxLjI1ZW07Cn0KCi5mYS11bCB7CiAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWZhLWxpLW1hcmdpbiwgMi41ZW0pOwogIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwOwp9Ci5mYS11bCA+IGxpIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5mYS1saSB7CiAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSkpOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgd2lkdGg6IHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pOwogIGxpbmUtaGVpZ2h0OiBpbmhlcml0Owp9CgovKiBIZWFkcyBVcDogQm9yZGVyZWQgSWNvbnMgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIHRoZSBmdXR1cmUhCiAgLSBUaGlzIGZlYXR1cmUgd2lsbCBiZSBkZXByZWNhdGVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2Ugb2YgRm9udCBBd2Vzb21lICh2OCkhCiAgLSBZb3UgbWF5IGNvbnRpbnVlIHRvIHVzZSBpdCBpbiB0aGlzIHZlcnNpb24gKnY3KSwgYnV0IGl0IHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiBGb250IEF3ZXNvbWUgdjguCiovCi8qIE5vdGVzOgoqIC0tQHt2LiRjc3MtcHJlZml4fS1ib3JkZXItd2lkdGggPSAxLzE2IGJ5IGRlZmF1bHQgKHRvIHJlbmRlciBhcyB+MXB4IGJhc2VkIG9uIGEgMTZweCBkZWZhdWx0IGZvbnQtc2l6ZSkKKiAtLUB7di4kY3NzLXByZWZpeH0tYm9yZGVyLXBhZGRpbmcgPQogICoqIDMvMTYgZm9yIHZlcnRpY2FsIHBhZGRpbmcgKHRvIGdpdmUgfjJweCBvZiB2ZXJ0aWNhbCB3aGl0ZXNwYWNlIGFyb3VuZCBhbiBpY29uIGNvbnNpZGVyaW5nIGl0J3MgdmVydGljYWwgYWxpZ25tZW50KQogICoqIDQvMTYgZm9yIGhvcml6b250YWwgcGFkZGluZyAodG8gZ2l2ZSB+NHB4IG9mIGhvcml6b250YWwgd2hpdGVzcGFjZSBhcm91bmQgYW4gaWNvbikKKi8KLmZhLWJvcmRlciB7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYS1ib3JkZXItY29sb3IsICNlZWUpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWZhLWJvcmRlci1yYWRpdXMsIDAuMWVtKTsKICBib3JkZXItc3R5bGU6IHZhcigtLWZhLWJvcmRlci1zdHlsZSwgc29saWQpOwogIGJvcmRlci13aWR0aDogdmFyKC0tZmEtYm9yZGVyLXdpZHRoLCAwLjA2MjVlbSk7CiAgYm94LXNpemluZzogdmFyKC0tZmEtYm9yZGVyLWJveC1zaXppbmcsIGNvbnRlbnQtYm94KTsKICBwYWRkaW5nOiB2YXIoLS1mYS1ib3JkZXItcGFkZGluZywgMC4xODc1ZW0gMC4yNWVtKTsKfQoKLmZhLXB1bGwtbGVmdCwKLmZhLXB1bGwtc3RhcnQgewogIGZsb2F0OiBpbmxpbmUtc3RhcnQ7CiAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KCi5mYS1wdWxsLXJpZ2h0LAouZmEtcHVsbC1lbmQgewogIGZsb2F0OiBpbmxpbmUtZW5kOwogIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWZhLXB1bGwtbWFyZ2luLCAwLjNlbSk7Cn0KCi5mYS1iZWF0IHsKICBhbmltYXRpb24tbmFtZTogZmEtYmVhdDsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgZWFzZS1pbi1vdXQpOwp9CgouZmEtYm91bmNlIHsKICBhbmltYXRpb24tbmFtZTogZmEtYm91bmNlOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC4yOCwgMC44NCwgMC40MiwgMSkpOwp9CgouZmEtZmFkZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWZhZGU7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSkpOwp9CgouZmEtYmVhdC1mYWRlIHsKICBhbmltYXRpb24tbmFtZTogZmEtYmVhdC1mYWRlOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjYsIDEpKTsKfQoKLmZhLWZsaXAgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1mbGlwOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBlYXNlLWluLW91dCk7Cn0KCi5mYS1zaGFrZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLXNoYWtlOwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBsaW5lYXIpOwp9CgouZmEtc3BpbiB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLXNwaW47CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAycyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGxpbmVhcik7Cn0KCi5mYS1zcGluLXJldmVyc2UgewogIC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsKfQoKLmZhLXB1bHNlLAouZmEtc3Bpbi1wdWxzZSB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLXNwaW47CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBzdGVwcyg4KSk7Cn0KCkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgLmZhLWJlYXQsCiAgLmZhLWJvdW5jZSwKICAuZmEtZmFkZSwKICAuZmEtYmVhdC1mYWRlLAogIC5mYS1mbGlwLAogIC5mYS1wdWxzZSwKICAuZmEtc2hha2UsCiAgLmZhLXNwaW4sCiAgLmZhLXNwaW4tcHVsc2UgewogICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgfQp9CkBrZXlmcmFtZXMgZmEtYmVhdCB7CiAgMCUsIDkwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogIH0KICA0NSUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1iZWF0LXNjYWxlLCAxLjI1KSk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtYm91bmNlIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDEwJSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJvdW5jZS1zdGFydC1zY2FsZS14LCAxLjEpLCB2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteSwgMC45KSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgMzAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYm91bmNlLWp1bXAtc2NhbGUteCwgMC45KSwgdmFyKC0tZmEtYm91bmNlLWp1bXAtc2NhbGUteSwgMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtaGVpZ2h0LCAtMC41ZW0pKTsKICB9CiAgNTAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYm91bmNlLWxhbmQtc2NhbGUteCwgMS4wNSksIHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXksIDAuOTUpKSB0cmFuc2xhdGVZKDApOwogIH0KICA1NyUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKHZhcigtLWZhLWJvdW5jZS1yZWJvdW5kLCAtMC4xMjVlbSkpOwogIH0KICA2NCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApOwogIH0KICAxMDAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1mYWRlIHsKICA1MCUgewogICAgb3BhY2l0eTogdmFyKC0tZmEtZmFkZS1vcGFjaXR5LCAwLjQpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWJlYXQtZmFkZSB7CiAgMCUsIDEwMCUgewogICAgb3BhY2l0eTogdmFyKC0tZmEtYmVhdC1mYWRlLW9wYWNpdHksIDAuNCk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogIH0KICA1MCUgewogICAgb3BhY2l0eTogMTsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYmVhdC1mYWRlLXNjYWxlLCAxLjEyNSkpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWZsaXAgewogIDUwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKHZhcigtLWZhLWZsaXAteCwgMCksIHZhcigtLWZhLWZsaXAteSwgMSksIHZhcigtLWZhLWZsaXAteiwgMCksIHZhcigtLWZhLWZsaXAtYW5nbGUsIC0xODBkZWcpKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1zaGFrZSB7CiAgMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTE1ZGVnKTsKICB9CiAgNCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpOwogIH0KICA4JSwgMjQlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0xOGRlZyk7CiAgfQogIDEyJSwgMjglIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDE4ZGVnKTsKICB9CiAgMTYlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMmRlZyk7CiAgfQogIDIwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMmRlZyk7CiAgfQogIDMyJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTJkZWcpOwogIH0KICAzNiUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMTJkZWcpOwogIH0KICA0MCUsIDEwMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtc3BpbiB7CiAgMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQogIDEwMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICB9Cn0KLmZhLXJvdGF0ZS05MCB7CiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOwp9CgouZmEtcm90YXRlLTE4MCB7CiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsKfQoKLmZhLXJvdGF0ZS0yNzAgewogIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7Cn0KCi5mYS1mbGlwLWhvcml6b250YWwgewogIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpOwp9CgouZmEtZmxpcC12ZXJ0aWNhbCB7CiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7Cn0KCi5mYS1mbGlwLWJvdGgsCi5mYS1mbGlwLWhvcml6b250YWwuZmEtZmxpcC12ZXJ0aWNhbCB7CiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgLTEpOwp9CgouZmEtcm90YXRlLWJ5IHsKICB0cmFuc2Zvcm06IHJvdGF0ZSh2YXIoLS1mYS1yb3RhdGUtYW5nbGUsIDApKTsKfQoKLnN2Zy1pbmxpbmUtLWZhIC5mYS1wcmltYXJ5IHsKICBmaWxsOiB2YXIoLS1mYS1wcmltYXJ5LWNvbG9yLCBjdXJyZW50Q29sb3IpOwogIG9wYWNpdHk6IHZhcigtLWZhLXByaW1hcnktb3BhY2l0eSwgMSk7Cn0KCi5zdmctaW5saW5lLS1mYSAuZmEtc2Vjb25kYXJ5IHsKICBmaWxsOiB2YXIoLS1mYS1zZWNvbmRhcnktY29sb3IsIGN1cnJlbnRDb2xvcik7CiAgb3BhY2l0eTogdmFyKC0tZmEtc2Vjb25kYXJ5LW9wYWNpdHksIDAuNCk7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1zd2FwLW9wYWNpdHkgLmZhLXByaW1hcnkgewogIG9wYWNpdHk6IHZhcigtLWZhLXNlY29uZGFyeS1vcGFjaXR5LCAwLjQpOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtc3dhcC1vcGFjaXR5IC5mYS1zZWNvbmRhcnkgewogIG9wYWNpdHk6IHZhcigtLWZhLXByaW1hcnktb3BhY2l0eSwgMSk7Cn0KCi5zdmctaW5saW5lLS1mYSBtYXNrIC5mYS1wcmltYXJ5LAouc3ZnLWlubGluZS0tZmEgbWFzayAuZmEtc2Vjb25kYXJ5IHsKICBmaWxsOiBibGFjazsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLWludmVyc2UgewogIGZpbGw6IHZhcigtLWZhLWludmVyc2UsICNmZmYpOwp9CgouZmEtc3RhY2sgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBoZWlnaHQ6IDJlbTsKICBsaW5lLWhlaWdodDogMmVtOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogIHdpZHRoOiAyLjVlbTsKfQoKLmZhLWludmVyc2UgewogIGNvbG9yOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLXN0YWNrLTF4IHsKICAtLWZhLXdpZHRoOiAxLjI1ZW07CiAgaGVpZ2h0OiAxZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoKTsKfQouc3ZnLWlubGluZS0tZmEuZmEtc3RhY2stMnggewogIC0tZmEtd2lkdGg6IDIuNWVtOwogIGhlaWdodDogMmVtOwogIHdpZHRoOiB2YXIoLS1mYS13aWR0aCk7Cn0KCi5mYS1zdGFjay0xeCwKLmZhLXN0YWNrLTJ4IHsKICBpbnNldDogMDsKICBtYXJnaW46IGF1dG87CiAgcG9zaXRpb246IGFic29sdXRlOwogIHotaW5kZXg6IHZhcigtLWZhLXN0YWNrLXotaW5kZXgsIGF1dG8pOwp9YDtwOGU9ITE7UXF0PXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9tOntjc3M6ZDhlLGluc2VydENzczpxRH19fSxob29rczpmdW5jdGlvbigpe3JldHVybntiZWZvcmVET01FbGVtZW50Q3JlYXRpb246ZnVuY3Rpb24oKXtxRCgpfSxiZWZvcmVJMnN2ZzpmdW5jdGlvbigpe3FEKCl9fX19LCRzPUpufHx7fTskc1tMc118fCgkc1tMc109e30pLCRzW0xzXS5zdHlsZXN8fCgkc1tMc10uc3R5bGVzPXt9KSwkc1tMc10uaG9va3N8fCgkc1tMc10uaG9va3M9e30pLCRzW0xzXS5zaGltc3x8KCRzW0xzXS5zaGltcz1bXSk7SGk9JHNbTHNdLGg4ZT1bXSx1OGU9ZnVuY3Rpb24oKXt2MS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix1OGUpLF9mPTEsaDhlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZSgpfSl9LF9mPSExO1RzJiYoX2Y9KHYxLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD8vXmxvYWRlZHxeYy86L15sb2FkZWR8Xml8XmMvKS50ZXN0KHYxLnJlYWR5U3RhdGUpLF9mfHx2MS5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix1OGUpKTtlVnQ9ZnVuY3Rpb24oZSxhKXtyZXR1cm4gZnVuY3Rpb24oaSxyLHMsbil7cmV0dXJuIGUuY2FsbChhLGkscixzLG4pfX0sVkQ9ZnVuY3Rpb24oZSxhLGkscil7dmFyIHM9T2JqZWN0LmtleXMoZSksbj1zLmxlbmd0aCxvPXIhPT12b2lkIDA/ZVZ0KGEscik6YSxkLGMscDtmb3IoaT09PXZvaWQgMD8oZD0xLHA9ZVtzWzBdXSk6KGQ9MCxwPWkpO2Q8bjtkKyspYz1zW2RdLHA9byhwLGVbY10sYyxlKTtyZXR1cm4gcH07VUQ9MSxxaT0yLEhZMT1bW3FpLFkyKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi4qcGF0aC4qZD0iKFteIl0qKSIvLHtkMjoyLGQxOjN9KV0sW3FpLFkyKC9wYXRoIG9wYWNpdHk9IihbXiJdKikiLipkPSIoW14iXSopIi8se2QyOjJ9KV0sW1VELFkyKC9wYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIuKmQ9IihbXiJdKykiLyx7ZDE6MX0pXV0scVkxPVtbcWksWTIoL3BhdGggY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKmQ9IihbXiJdKykiLipwYXRoIGNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMjoxLGQyOjIsYXR0cjE6MyxkMTo0fSldLFtxaSxZMigvcGF0aCBjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKmQ9IihbXiJdKykiLipwYXRoIGNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6MixhdHRyMjozLGQyOjR9KV0sW3FpLFkyKC9wYXRoIGNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qZD0iKFteIl0rKSIvLHthdHRyMToxLGQxOjJ9KV0sW3FpLFkyKC9wYXRoIGNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIyOjEsZDI6Mn0pXSxbcWksWTIoL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLipwYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIvLHtkMjoxLGF0dHIyOjIsZDE6MyxhdHRyMTo0fSldLFtxaSxZMigvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipwYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi8se2QxOjEsYXR0cjE6MixkMjozLGF0dHIyOjR9KV0sW3FpLFkyKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIvLHtkMToxLGF0dHIxOjJ9KV0sW3FpLFkyKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi8se2QyOjEsYXR0cjI6Mn0pXSxbcWksWTIoL3BhdGggZD0iKFteIl0rKSIuKnBhdGggZD0iKFteIl0rKSIvLHtkMToxLGQyOjJ9KV0sW1VELFkyKC9wYXRoIGQ9IihbXiJdKykiLyx7ZDE6MX0pXSxbVUQsWTIoL3BhdGggc3R5bGU9IihbXiJdKykiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6Mn0pXV0sXzU9SGkuc3R5bGVzLHRWdD1IaS5zaGltcyxiOGU9T2JqZWN0LmtleXMoRkQpLGFWdD1iOGUucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZV09T2JqZWN0LmtleXMoRkRbZV0pLHR9LHt9KSxXRD1udWxsLHY4ZT17fSx5OGU9e30seDhlPXt9LHc4ZT17fSxNOGU9e307ejhlPWZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24ocyl7cmV0dXJuIFZEKF81LGZ1bmN0aW9uKG4sbyxkKXtyZXR1cm4gbltkXT1WRChvLHMse30pLG59LHt9KX07djhlPWUoZnVuY3Rpb24ocixzLG4pe2lmKHNbM10mJihyW3NbM11dPW4pLHNbMl0pe3ZhciBvPXNbMl0uZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiB0eXBlb2YgZD09Im51bWJlciJ9KTtvLmZvckVhY2goZnVuY3Rpb24oZCl7cltkLnRvU3RyaW5nKDE2KV09bn0pfXJldHVybiByfSkseThlPWUoZnVuY3Rpb24ocixzLG4pe2lmKHJbbl09bixzWzJdKXt2YXIgbz1zWzJdLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gdHlwZW9mIGQ9PSJzdHJpbmcifSk7by5mb3JFYWNoKGZ1bmN0aW9uKGQpe3JbZF09bn0pfXJldHVybiByfSksTThlPWUoZnVuY3Rpb24ocixzLG4pe3ZhciBvPXNbMl07cmV0dXJuIHJbbl09bixvLmZvckVhY2goZnVuY3Rpb24oZCl7cltkXT1ufSkscn0pO3ZhciBhPSJmYXIiaW4gXzV8fGV0LmF1dG9GZXRjaFN2ZyxpPVZEKHRWdCxmdW5jdGlvbihyLHMpe3ZhciBuPXNbMF0sbz1zWzFdLGQ9c1syXTtyZXR1cm4gbz09PSJmYXIiJiYhYSYmKG89ImZhcyIpLHR5cGVvZiBuPT0ic3RyaW5nIiYmKHIubmFtZXNbbl09e3ByZWZpeDpvLGljb25OYW1lOmR9KSx0eXBlb2Ygbj09Im51bWJlciImJihyLnVuaWNvZGVzW24udG9TdHJpbmcoMTYpXT17cHJlZml4Om8saWNvbk5hbWU6ZH0pLHJ9LHtuYW1lczp7fSx1bmljb2Rlczp7fX0pO3g4ZT1pLm5hbWVzLHc4ZT1pLnVuaWNvZGVzLFdEPVRmKGV0LnN0eWxlRGVmYXVsdCx7ZmFtaWx5OmV0LmZhbWlseURlZmF1bHR9KX07VXF0KGZ1bmN0aW9uKHQpe1dEPVRmKHQuc3R5bGVEZWZhdWx0LHtmYW1pbHk6ZXQuZmFtaWx5RGVmYXVsdH0pfSksejhlKCk7UzhlPWZ1bmN0aW9uKCl7cmV0dXJue3ByZWZpeDpudWxsLGljb25OYW1lOm51bGwscmVzdDpbXX19O184ZT1YNWUuY29uY2F0KEc1ZSk7ZFZ0PVc1ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1TMnx8dCE9PU01fSkscFZ0PU9iamVjdC5rZXlzKCREKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1TMn0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmtleXMoJERbdF0pfSkuZmxhdCgpO3VWdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7WUJ0KHRoaXMsdCksdGhpcy5kZWZpbml0aW9ucz17fX1yZXR1cm4gWkJ0KHQsW3trZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcyxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSkscz0wO3M8aTtzKyspcltzXT1hcmd1bWVudHNbc107dmFyIG49ci5yZWR1Y2UodGhpcy5fcHVsbERlZmluaXRpb25zLHt9KTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2EuZGVmaW5pdGlvbnNbb109TmUoTmUoe30sYS5kZWZpbml0aW9uc1tvXXx8e30pLG5bb10pLGpEKG8sbltvXSk7dmFyIGQ9RkRbUzJdW29dO2QmJmpEKGQsbltvXSksejhlKCl9KX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGVmaW5pdGlvbnM9e319fSx7a2V5OiJfcHVsbERlZmluaXRpb25zIix2YWx1ZTpmdW5jdGlvbihhLGkpe3ZhciByPWkucHJlZml4JiZpLmljb25OYW1lJiZpLmljb24/ezA6aX06aTtyZXR1cm4gT2JqZWN0LmtleXMocikubWFwKGZ1bmN0aW9uKHMpe3ZhciBuPXJbc10sbz1uLnByZWZpeCxkPW4uaWNvbk5hbWUsYz1uLmljb24scD1jWzJdO2Fbb118fChhW29dPXt9KSxwLmxlbmd0aD4wJiZwLmZvckVhY2goZnVuY3Rpb24obCl7dHlwZW9mIGw9PSJzdHJpbmciJiYoYVtvXVtsXT1jKX0pLGFbb11bZF09Y30pLGF9fV0pfSkoKSxUOGU9W10sb2w9e30sbGw9e30sZlZ0PU9iamVjdC5rZXlzKGxsKTtMOGU9bmV3IHVWdCxnVnQ9ZnVuY3Rpb24oKXtldC5hdXRvUmVwbGFjZVN2Zz0hMSxldC5vYnNlcnZlTXV0YXRpb25zPSExLEgwKCJub0F1dG8iKX0sYlZ0PXtpMnN2ZzpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4gVHM/KEgwKCJiZWZvcmVJMnN2ZyIsZSksYW8oInBzZXVkb0VsZW1lbnRzMnN2ZyIsZSksYW8oImkyc3ZnIixlKSk6UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJPcGVyYXRpb24gcmVxdWlyZXMgYSBET00gb2Ygc29tZSBraW5kLiIpKX0sd2F0Y2g6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sYT1lLmF1dG9SZXBsYWNlU3ZnUm9vdDtldC5hdXRvUmVwbGFjZVN2Zz09PSExJiYoZXQuYXV0b1JlcGxhY2VTdmc9ITApLGV0Lm9ic2VydmVNdXRhdGlvbnM9ITAsSnF0KGZ1bmN0aW9uKCl7eVZ0KHthdXRvUmVwbGFjZVN2Z1Jvb3Q6YX0pLEgwKCJ3YXRjaCIsZSl9KX19LHZWdD17aWNvbjpmdW5jdGlvbihlKXtpZihlPT09bnVsbClyZXR1cm4gbnVsbDtpZih6ZihlKT09PSJvYmplY3QiJiZlLnByZWZpeCYmZS5pY29uTmFtZSlyZXR1cm57cHJlZml4OmUucHJlZml4LGljb25OYW1lOkIwKGUucHJlZml4LGUuaWNvbk5hbWUpfHxlLmljb25OYW1lfTtpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD09PTIpe3ZhciBhPWVbMV0uaW5kZXhPZigiZmEtIik9PT0wP2VbMV0uc2xpY2UoMyk6ZVsxXSxpPVRmKGVbMF0pO3JldHVybntwcmVmaXg6aSxpY29uTmFtZTpCMChpLGEpfHxhfX1pZih0eXBlb2YgZT09InN0cmluZyImJihlLmluZGV4T2YoIiIuY29uY2F0KGV0LmNzc1ByZWZpeCwiLSIpKT4tMXx8ZS5tYXRjaChPcXQpKSl7dmFyIHI9TGYoZS5zcGxpdCgiICIpLHtza2lwTG9va3VwczohMH0pO3JldHVybntwcmVmaXg6ci5wcmVmaXh8fHRvKCksaWNvbk5hbWU6QjAoci5wcmVmaXgsci5pY29uTmFtZSl8fHIuaWNvbk5hbWV9fWlmKHR5cGVvZiBlPT0ic3RyaW5nIil7dmFyIHM9dG8oKTtyZXR1cm57cHJlZml4OnMsaWNvbk5hbWU6QjAocyxlKXx8ZX19fX0sVGE9e25vQXV0bzpnVnQsY29uZmlnOmV0LGRvbTpiVnQscGFyc2U6dlZ0LGxpYnJhcnk6TDhlLGZpbmRJY29uRGVmaW5pdGlvbjpaRCx0b0h0bWw6QzV9LHlWdD1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxhPWUuYXV0b1JlcGxhY2VTdmdSb290LGk9YT09PXZvaWQgMD92MTphOyhPYmplY3Qua2V5cyhIaS5zdHlsZXMpLmxlbmd0aD4wfHxldC5hdXRvRmV0Y2hTdmcpJiZUcyYmZXQuYXV0b1JlcGxhY2VTdmcmJlRhLmRvbS5pMnN2Zyh7bm9kZTppfSl9O0tEPUhpLnN0eWxlcztrVnQ9e2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyfTtBOGU9ZnVuY3Rpb24oKXt9LGVFPWV0Lm1lYXN1cmVQZXJmb3JtYW5jZSYma2YmJmtmLm1hcmsmJmtmLm1lYXN1cmU/a2Y6e21hcms6QThlLG1lYXN1cmU6QThlfSxUNT0nRkEgIjcuMi4wIicsQ1Z0PWZ1bmN0aW9uKGUpe3JldHVybiBlRS5tYXJrKCIiLmNvbmNhdChUNSwiICIpLmNvbmNhdChlLCIgYmVnaW5zIikpLGZ1bmN0aW9uKCl7cmV0dXJuIEQ4ZShlKX19LEQ4ZT1mdW5jdGlvbihlKXtlRS5tYXJrKCIiLmNvbmNhdChUNSwiICIpLmNvbmNhdChlLCIgZW5kcyIpKSxlRS5tZWFzdXJlKCIiLmNvbmNhdChUNSwiICIpLmNvbmNhdChlKSwiIi5jb25jYXQoVDUsIiAiKS5jb25jYXQoZSwiIGJlZ2lucyIpLCIiLmNvbmNhdChUNSwiICIpLmNvbmNhdChlLCIgZW5kcyIpKX0sdEU9e2JlZ2luOkNWdCxlbmQ6RDhlfSxBZj1mdW5jdGlvbigpe307RGY9e3JlcGxhY2U6ZnVuY3Rpb24oZSl7dmFyIGE9ZVswXTtpZihhLnBhcmVudE5vZGUpaWYoZVsxXS5mb3JFYWNoKGZ1bmN0aW9uKHIpe2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoUDhlKHIpLGEpfSksYS5nZXRBdHRyaWJ1dGUoUjApPT09bnVsbCYmZXQua2VlcE9yaWdpbmFsU291cmNlKXt2YXIgaT12MS5jcmVhdGVDb21tZW50KERWdChhKSk7YS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChpLGEpfWVsc2UgYS5yZW1vdmUoKX0sbmVzdDpmdW5jdGlvbihlKXt2YXIgYT1lWzBdLGk9ZVsxXTtpZih+QkQoYSkuaW5kZXhPZihldC5yZXBsYWNlbWVudENsYXNzKSlyZXR1cm4gRGYucmVwbGFjZShlKTt2YXIgcj1uZXcgUmVnRXhwKCIiLmNvbmNhdChldC5jc3NQcmVmaXgsIi0uKiIpKTtpZihkZWxldGUgaVswXS5hdHRyaWJ1dGVzLmlkLGlbMF0uYXR0cmlidXRlcy5jbGFzcyl7dmFyIHM9aVswXS5hdHRyaWJ1dGVzLmNsYXNzLnNwbGl0KCIgIikucmVkdWNlKGZ1bmN0aW9uKG8sZCl7cmV0dXJuIGQ9PT1ldC5yZXBsYWNlbWVudENsYXNzfHxkLm1hdGNoKHIpP28udG9TdmcucHVzaChkKTpvLnRvTm9kZS5wdXNoKGQpLG99LHt0b05vZGU6W10sdG9Tdmc6W119KTtpWzBdLmF0dHJpYnV0ZXMuY2xhc3M9cy50b1N2Zy5qb2luKCIgIikscy50b05vZGUubGVuZ3RoPT09MD9hLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKTphLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMudG9Ob2RlLmpvaW4oIiAiKSl9dmFyIG49aS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIEM1KG8pfSkuam9pbihgCmApO2Euc2V0QXR0cmlidXRlKFIwLCIiKSxhLmlubmVySFRNTD1ufX07YUU9ITE7RWY9bnVsbDtPVnQ9SGkuc3R5bGVzO3FWdD1mdW5jdGlvbihlKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30saT1hLnRyYW5zZm9ybSxyPWk9PT12b2lkIDA/QnI6aSxzPWEuc3ltYm9sLG49cz09PXZvaWQgMD8hMTpzLG89YS5tYXNrLGQ9bz09PXZvaWQgMD9udWxsOm8sYz1hLm1hc2tJZCxwPWM9PT12b2lkIDA/bnVsbDpjLGw9YS5jbGFzc2VzLGY9bD09PXZvaWQgMD9bXTpsLGc9YS5hdHRyaWJ1dGVzLHk9Zz09PXZvaWQgMD97fTpnLHY9YS5zdHlsZXMsbT12PT09dm9pZCAwP3t9OnY7aWYoZSl7dmFyIHg9ZS5wcmVmaXgsTT1lLmljb25OYW1lLFM9ZS5pY29uO3JldHVybiAkZihOZSh7dHlwZToiaWNvbiJ9LGUpLGZ1bmN0aW9uKCl7cmV0dXJuIEgwKCJiZWZvcmVET01FbGVtZW50Q3JlYXRpb24iLHtpY29uRGVmaW5pdGlvbjplLHBhcmFtczphfSksWEQoe2ljb25zOnttYWluOlFEKFMpLG1hc2s6ZD9RRChkLmljb24pOntmb3VuZDohMSx3aWR0aDpudWxsLGhlaWdodDpudWxsLGljb246e319fSxwcmVmaXg6eCxpY29uTmFtZTpNLHRyYW5zZm9ybTpOZShOZSh7fSxCciksciksc3ltYm9sOm4sbWFza0lkOnAsZXh0cmE6e2F0dHJpYnV0ZXM6eSxzdHlsZXM6bSxjbGFzc2VzOmZ9fSl9KX19LFZWdD17bWl4b3V0OmZ1bmN0aW9uKCl7cmV0dXJue2ljb246SFZ0KHFWdCl9fSxob29rczpmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRyZWVDYWxsYmFjaz1IOGUsYS5ub2RlQ2FsbGJhY2s9QlZ0LGF9fX0scHJvdmlkZXM6ZnVuY3Rpb24oZSl7ZS5pMnN2Zz1mdW5jdGlvbihhKXt2YXIgaT1hLm5vZGUscj1pPT09dm9pZCAwP3YxOmkscz1hLmNhbGxiYWNrLG49cz09PXZvaWQgMD9mdW5jdGlvbigpe306cztyZXR1cm4gSDhlKHIsbil9LGUuZ2VuZXJhdGVTdmdSZXBsYWNlbWVudE11dGF0aW9uPWZ1bmN0aW9uKGEsaSl7dmFyIHI9aS5pY29uTmFtZSxzPWkucHJlZml4LG49aS50cmFuc2Zvcm0sbz1pLnN5bWJvbCxkPWkubWFzayxjPWkubWFza0lkLHA9aS5leHRyYTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obCxmKXtQcm9taXNlLmFsbChbSkQocixzKSxkLmljb25OYW1lP0pEKGQuaWNvbk5hbWUsZC5wcmVmaXgpOlByb21pc2UucmVzb2x2ZSh7Zm91bmQ6ITEsd2lkdGg6NTEyLGhlaWdodDo1MTIsaWNvbjp7fX0pXSkudGhlbihmdW5jdGlvbihnKXt2YXIgeT1NZihnLDIpLHY9eVswXSxtPXlbMV07bChbYSxYRCh7aWNvbnM6e21haW46dixtYXNrOm19LHByZWZpeDpzLGljb25OYW1lOnIsdHJhbnNmb3JtOm4sc3ltYm9sOm8sbWFza0lkOmMsZXh0cmE6cCx3YXRjaGFibGU6ITB9KV0pfSkuY2F0Y2goZil9KX0sZS5nZW5lcmF0ZUFic3RyYWN0SWNvbj1mdW5jdGlvbihhKXt2YXIgaT1hLmNoaWxkcmVuLHI9YS5hdHRyaWJ1dGVzLHM9YS5tYWluLG49YS50cmFuc2Zvcm0sbz1hLnN0eWxlcyxkPUNmKG8pO2QubGVuZ3RoPjAmJihyLnN0eWxlPWQpO3ZhciBjO3JldHVybiBIRChuKSYmKGM9YW8oImdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZyIse21haW46cyx0cmFuc2Zvcm06bixjb250YWluZXJXaWR0aDpzLndpZHRoLGljb25XaWR0aDpzLndpZHRofSkpLGkucHVzaChjfHxzLmljb24pLHtjaGlsZHJlbjppLGF0dHJpYnV0ZXM6cn19fX0salZ0PXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57bGF5ZXI6ZnVuY3Rpb24oYSl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHI9aS5jbGFzc2VzLHM9cj09PXZvaWQgMD9bXTpyO3JldHVybiAkZih7dHlwZToibGF5ZXIifSxmdW5jdGlvbigpe0gwKCJiZWZvcmVET01FbGVtZW50Q3JlYXRpb24iLHthc3NlbWJsZXI6YSxwYXJhbXM6aX0pO3ZhciBuPVtdO3JldHVybiBhKGZ1bmN0aW9uKG8pe0FycmF5LmlzQXJyYXkobyk/by5tYXAoZnVuY3Rpb24oZCl7bj1uLmNvbmNhdChkLmFic3RyYWN0KX0pOm49bi5jb25jYXQoby5hYnN0cmFjdCl9KSxbe3RhZzoic3BhbiIsYXR0cmlidXRlczp7Y2xhc3M6WyIiLmNvbmNhdChldC5jc3NQcmVmaXgsIi1sYXllcnMiKV0uY29uY2F0KEJpKHMpKS5qb2luKCIgIil9LGNoaWxkcmVuOm59XX0pfX19fSxVVnQ9e21peG91dDpmdW5jdGlvbigpe3JldHVybntjb3VudGVyOmZ1bmN0aW9uKGEpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxyPWkudGl0bGUscz1yPT09dm9pZCAwP251bGw6cixuPWkuY2xhc3NlcyxvPW49PT12b2lkIDA/W106bixkPWkuYXR0cmlidXRlcyxjPWQ9PT12b2lkIDA/e306ZCxwPWkuc3R5bGVzLGw9cD09PXZvaWQgMD97fTpwO3JldHVybiAkZih7dHlwZToiY291bnRlciIsY29udGVudDphfSxmdW5jdGlvbigpe3JldHVybiBIMCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDphLHBhcmFtczppfSkselZ0KHtjb250ZW50OmEudG9TdHJpbmcoKSx0aXRsZTpzLGV4dHJhOnthdHRyaWJ1dGVzOmMsc3R5bGVzOmwsY2xhc3NlczpbIiIuY29uY2F0KGV0LmNzc1ByZWZpeCwiLWxheWVycy1jb3VudGVyIildLmNvbmNhdChCaShvKSl9fSl9KX19fX0sV1Z0PXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57dGV4dDpmdW5jdGlvbihhKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj1pLnRyYW5zZm9ybSxzPXI9PT12b2lkIDA/QnI6cixuPWkuY2xhc3NlcyxvPW49PT12b2lkIDA/W106bixkPWkuYXR0cmlidXRlcyxjPWQ9PT12b2lkIDA/e306ZCxwPWkuc3R5bGVzLGw9cD09PXZvaWQgMD97fTpwO3JldHVybiAkZih7dHlwZToidGV4dCIsY29udGVudDphfSxmdW5jdGlvbigpe3JldHVybiBIMCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDphLHBhcmFtczppfSksJDhlKHtjb250ZW50OmEsdHJhbnNmb3JtOk5lKE5lKHt9LEJyKSxzKSxleHRyYTp7YXR0cmlidXRlczpjLHN0eWxlczpsLGNsYXNzZXM6WyIiLmNvbmNhdChldC5jc3NQcmVmaXgsIi1sYXllcnMtdGV4dCIpXS5jb25jYXQoQmkobykpfX0pfSl9fX0scHJvdmlkZXM6ZnVuY3Rpb24oZSl7ZS5nZW5lcmF0ZUxheWVyc1RleHQ9ZnVuY3Rpb24oYSxpKXt2YXIgcj1pLnRyYW5zZm9ybSxzPWkuZXh0cmEsbj1udWxsLG89bnVsbDtpZihDNWUpe3ZhciBkPXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoYSkuZm9udFNpemUsMTApLGM9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtuPWMud2lkdGgvZCxvPWMuaGVpZ2h0L2R9cmV0dXJuIFByb21pc2UucmVzb2x2ZShbYSwkOGUoe2NvbnRlbnQ6YS5pbm5lckhUTUwsd2lkdGg6bixoZWlnaHQ6byx0cmFuc2Zvcm06cixleHRyYTpzLHdhdGNoYWJsZTohMH0pXSl9fX0scThlPW5ldyBSZWdFeHAoJyInLCJ1ZyIpLFY4ZT1bMTEwNTkyMCwxMTEyMzE5XSxqOGU9TmUoTmUoTmUoTmUoe30se0ZvbnRBd2Vzb21lOntub3JtYWw6ImZhcyIsNDAwOiJmYXMifX0pLENIdCksRXF0KSxJSHQpLHJFPU9iamVjdC5rZXlzKGo4ZSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS50b0xvd2VyQ2FzZSgpXT1qOGVbZV0sdH0se30pLEdWdD1PYmplY3Qua2V5cyhyRSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7dmFyIGE9ckVbZV07cmV0dXJuIHRbZV09YVs5MDBdfHxCaShPYmplY3QuZW50cmllcyhhKSlbMF1bMV0sdH0se30pO0pWdD1mdW5jdGlvbihlKXtyZXR1cm4hIWUmJnQ4ZS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBlLmluY2x1ZGVzKGEpfSl9LGVqdD1mdW5jdGlvbihlKXtpZighZSlyZXR1cm5bXTt2YXIgYT1uZXcgU2V0LGk9ZS5zcGxpdCgvLCg/IVteKCldKlwpKS8pLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZC50cmltKCl9KTtpPWkuZmxhdE1hcChmdW5jdGlvbihkKXtyZXR1cm4gZC5pbmNsdWRlcygiKCIpP2Q6ZC5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy50cmltKCl9KX0pO3ZhciByPXhmKGkpLHM7dHJ5e2ZvcihyLnMoKTshKHM9ci5uKCkpLmRvbmU7KXt2YXIgbj1zLnZhbHVlO2lmKEpWdChuKSl7dmFyIG89dDhlLnJlZHVjZShmdW5jdGlvbihkLGMpe3JldHVybiBkLnJlcGxhY2UoYywiIil9LG4pO28hPT0iIiYmbyE9PSIqIiYmYS5hZGQobyl9fX1jYXRjaChkKXtyLmUoZCl9ZmluYWxseXtyLmYoKX1yZXR1cm4gYX07dGp0PXtob29rczpmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmZ1bmN0aW9uKGEpe3JldHVybiBhLnBzZXVkb0VsZW1lbnRzQ2FsbGJhY2s9VzhlLGF9fX0scHJvdmlkZXM6ZnVuY3Rpb24oZSl7ZS5wc2V1ZG9FbGVtZW50czJzdmc9ZnVuY3Rpb24oYSl7dmFyIGk9YS5ub2RlLHI9aT09PXZvaWQgMD92MTppO2V0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZXOGUocil9fX0sRzhlPSExLGFqdD17bWl4b3V0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbTp7dW53YXRjaDpmdW5jdGlvbigpe0Y4ZSgpLEc4ZT0hMH19fX0saG9va3M6ZnVuY3Rpb24oKXtyZXR1cm57Ym9vdHN0cmFwOmZ1bmN0aW9uKCl7TzhlKFlEKCJtdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzIix7fSkpfSxub0F1dG86ZnVuY3Rpb24oKXtFVnQoKX0sd2F0Y2g6ZnVuY3Rpb24oYSl7dmFyIGk9YS5vYnNlcnZlTXV0YXRpb25zUm9vdDtHOGU/aUUoKTpPOGUoWUQoIm11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MiLHtvYnNlcnZlTXV0YXRpb25zUm9vdDppfSkpfX19fSxZOGU9ZnVuY3Rpb24oZSl7dmFyIGE9e3NpemU6MTYseDowLHk6MCxmbGlwWDohMSxmbGlwWTohMSxyb3RhdGU6MH07cmV0dXJuIGUudG9Mb3dlckNhc2UoKS5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihpLHIpe3ZhciBzPXIudG9Mb3dlckNhc2UoKS5zcGxpdCgiLSIpLG49c1swXSxvPXMuc2xpY2UoMSkuam9pbigiLSIpO2lmKG4mJm89PT0iaCIpcmV0dXJuIGkuZmxpcFg9ITAsaTtpZihuJiZvPT09InYiKXJldHVybiBpLmZsaXBZPSEwLGk7aWYobz1wYXJzZUZsb2F0KG8pLGlzTmFOKG8pKXJldHVybiBpO3N3aXRjaChuKXtjYXNlImdyb3ciOmkuc2l6ZT1pLnNpemUrbzticmVhaztjYXNlInNocmluayI6aS5zaXplPWkuc2l6ZS1vO2JyZWFrO2Nhc2UibGVmdCI6aS54PWkueC1vO2JyZWFrO2Nhc2UicmlnaHQiOmkueD1pLngrbzticmVhaztjYXNlInVwIjppLnk9aS55LW87YnJlYWs7Y2FzZSJkb3duIjppLnk9aS55K287YnJlYWs7Y2FzZSJyb3RhdGUiOmkucm90YXRlPWkucm90YXRlK287YnJlYWt9cmV0dXJuIGl9LGEpfSxpanQ9e21peG91dDpmdW5jdGlvbigpe3JldHVybntwYXJzZTp7dHJhbnNmb3JtOmZ1bmN0aW9uKGEpe3JldHVybiBZOGUoYSl9fX19LGhvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6ZnVuY3Rpb24oYSxpKXt2YXIgcj1pLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS10cmFuc2Zvcm0iKTtyZXR1cm4gciYmKGEudHJhbnNmb3JtPVk4ZShyKSksYX19fSxwcm92aWRlczpmdW5jdGlvbihlKXtlLmdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZz1mdW5jdGlvbihhKXt2YXIgaT1hLm1haW4scj1hLnRyYW5zZm9ybSxzPWEuY29udGFpbmVyV2lkdGgsbj1hLmljb25XaWR0aCxvPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChzLzIsIiAyNTYpIil9LGQ9InRyYW5zbGF0ZSgiLmNvbmNhdChyLngqMzIsIiwgIikuY29uY2F0KHIueSozMiwiKSAiKSxjPSJzY2FsZSgiLmNvbmNhdChyLnNpemUvMTYqKHIuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KHIuc2l6ZS8xNiooci5mbGlwWT8tMToxKSwiKSAiKSxwPSJyb3RhdGUoIi5jb25jYXQoci5yb3RhdGUsIiAwIDApIiksbD17dHJhbnNmb3JtOiIiLmNvbmNhdChkLCIgIikuY29uY2F0KGMsIiAiKS5jb25jYXQocCl9LGY9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KG4vMiotMSwiIC0yNTYpIil9LGc9e291dGVyOm8saW5uZXI6bCxwYXRoOmZ9O3JldHVybnt0YWc6ImciLGF0dHJpYnV0ZXM6TmUoe30sZy5vdXRlciksY2hpbGRyZW46W3t0YWc6ImciLGF0dHJpYnV0ZXM6TmUoe30sZy5pbm5lciksY2hpbGRyZW46W3t0YWc6aS5pY29uLnRhZyxjaGlsZHJlbjppLmljb24uY2hpbGRyZW4sYXR0cmlidXRlczpOZShOZSh7fSxpLmljb24uYXR0cmlidXRlcyksZy5wYXRoKX1dfV19fX19LHNFPXt4OjAseTowLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifTtzanQ9e2hvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6ZnVuY3Rpb24oYSxpKXt2YXIgcj1pLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS1tYXNrIikscz1yP0xmKHIuc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4udHJpbSgpfSkpOlM4ZSgpO3JldHVybiBzLnByZWZpeHx8KHMucHJlZml4PXRvKCkpLGEubWFzaz1zLGEubWFza0lkPWkuZ2V0QXR0cmlidXRlKCJkYXRhLWZhLW1hc2staWQiKSxhfX19LHByb3ZpZGVzOmZ1bmN0aW9uKGUpe2UuZ2VuZXJhdGVBYnN0cmFjdE1hc2s9ZnVuY3Rpb24oYSl7dmFyIGk9YS5jaGlsZHJlbixyPWEuYXR0cmlidXRlcyxzPWEubWFpbixuPWEubWFzayxvPWEubWFza0lkLGQ9YS50cmFuc2Zvcm0sYz1zLndpZHRoLHA9cy5pY29uLGw9bi53aWR0aCxmPW4uaWNvbixnPVpxdCh7dHJhbnNmb3JtOmQsY29udGFpbmVyV2lkdGg6bCxpY29uV2lkdGg6Y30pLHk9e3RhZzoicmVjdCIsYXR0cmlidXRlczpOZShOZSh7fSxzRSkse30se2ZpbGw6IndoaXRlIn0pfSx2PXAuY2hpbGRyZW4/e2NoaWxkcmVuOnAuY2hpbGRyZW4ubWFwKFo4ZSl9Ont9LG09e3RhZzoiZyIsYXR0cmlidXRlczpOZSh7fSxnLmlubmVyKSxjaGlsZHJlbjpbWjhlKE5lKHt0YWc6cC50YWcsYXR0cmlidXRlczpOZShOZSh7fSxwLmF0dHJpYnV0ZXMpLGcucGF0aCl9LHYpKV19LHg9e3RhZzoiZyIsYXR0cmlidXRlczpOZSh7fSxnLm91dGVyKSxjaGlsZHJlbjpbbV19LE09Im1hc2stIi5jb25jYXQob3x8bDhlKCkpLFM9ImNsaXAtIi5jb25jYXQob3x8bDhlKCkpLEY9e3RhZzoibWFzayIsYXR0cmlidXRlczpOZShOZSh7fSxzRSkse30se2lkOk0sbWFza1VuaXRzOiJ1c2VyU3BhY2VPblVzZSIsbWFza0NvbnRlbnRVbml0czoidXNlclNwYWNlT25Vc2UifSksY2hpbGRyZW46W3kseF19LF89e3RhZzoiZGVmcyIsY2hpbGRyZW46W3t0YWc6ImNsaXBQYXRoIixhdHRyaWJ1dGVzOntpZDpTfSxjaGlsZHJlbjpyanQoZil9LEZdfTtyZXR1cm4gaS5wdXNoKF8se3RhZzoicmVjdCIsYXR0cmlidXRlczpOZSh7ZmlsbDoiY3VycmVudENvbG9yIiwiY2xpcC1wYXRoIjoidXJsKCMiLmNvbmNhdChTLCIpIiksbWFzazoidXJsKCMiLmNvbmNhdChNLCIpIil9LHNFKX0pLHtjaGlsZHJlbjppLGF0dHJpYnV0ZXM6cn19fX0sbmp0PXtwcm92aWRlczpmdW5jdGlvbihlKXt2YXIgYT0hMTtKbi5tYXRjaE1lZGlhJiYoYT1Kbi5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXMpLGUubWlzc2luZ0ljb25BYnN0cmFjdD1mdW5jdGlvbigpe3ZhciBpPVtdLHI9e2ZpbGw6ImN1cnJlbnRDb2xvciJ9LHM9e2F0dHJpYnV0ZVR5cGU6IlhNTCIscmVwZWF0Q291bnQ6ImluZGVmaW5pdGUiLGR1cjoiMnMifTtpLnB1c2goe3RhZzoicGF0aCIsYXR0cmlidXRlczpOZShOZSh7fSxyKSx7fSx7ZDoiTTE1Ni41LDQ0Ny43bC0xMi42LDI5LjVjLTE4LjctOS41LTM1LjktMjEuMi01MS41LTM0LjlsMjIuNy0yMi43QzEyNy42LDQzMC41LDE0MS41LDQ0MCwxNTYuNSw0NDcuN3ogTTQwLjYsMjcySDguNSBjMS40LDIxLjIsNS40LDQxLjcsMTEuNyw2MS4xTDUwLDMyMS4yQzQ1LjEsMzA1LjUsNDEuOCwyODksNDAuNiwyNzJ6IE00MC42LDI0MGMxLjQtMTguOCw1LjItMzcsMTEuMS01NC4xbC0yOS41LTEyLjYgQzE0LjcsMTk0LjMsMTAsMjE2LjcsOC41LDI0MEg0MC42eiBNNjQuMywxNTYuNWM3LjgtMTQuOSwxNy4yLTI4LjgsMjguMS00MS41TDY5LjcsOTIuM2MtMTMuNywxNS42LTI1LjUsMzIuOC0zNC45LDUxLjUgTDY0LjMsMTU2LjV6IE0zOTcsNDE5LjZjLTEzLjksMTItMjkuNCwyMi4zLTQ2LjEsMzAuNGwxMS45LDI5LjhjMjAuNy05LjksMzkuOC0yMi42LDU2LjktMzcuNkwzOTcsNDE5LjZ6IE0xMTUsOTIuNCBjMTMuOS0xMiwyOS40LTIyLjMsNDYuMS0zMC40bC0xMS45LTI5LjhjLTIwLjcsOS45LTM5LjgsMjIuNi01Ni44LDM3LjZMMTE1LDkyLjR6IE00NDcuNywzNTUuNWMtNy44LDE0LjktMTcuMiwyOC44LTI4LjEsNDEuNSBsMjIuNywyMi43YzEzLjctMTUuNiwyNS41LTMyLjksMzQuOS01MS41TDQ0Ny43LDM1NS41eiBNNDcxLjQsMjcyYy0xLjQsMTguOC01LjIsMzctMTEuMSw1NC4xbDI5LjUsMTIuNiBjNy41LTIxLjEsMTIuMi00My41LDEzLjYtNjYuOEg0NzEuNHogTTMyMS4yLDQ2MmMtMTUuNyw1LTMyLjIsOC4yLTQ5LjIsOS40djMyLjFjMjEuMi0xLjQsNDEuNy01LjQsNjEuMS0xMS43TDMyMS4yLDQ2MnogTTI0MCw0NzEuNGMtMTguOC0xLjQtMzctNS4yLTU0LjEtMTEuMWwtMTIuNiwyOS41YzIxLjEsNy41LDQzLjUsMTIuMiw2Ni44LDEzLjZWNDcxLjR6IE00NjIsMTkwLjhjNSwxNS43LDguMiwzMi4yLDkuNCw0OS4yaDMyLjEgYy0xLjQtMjEuMi01LjQtNDEuNy0xMS43LTYxLjFMNDYyLDE5MC44eiBNOTIuNCwzOTdjLTEyLTEzLjktMjIuMy0yOS40LTMwLjQtNDYuMWwtMjkuOCwxMS45YzkuOSwyMC43LDIyLjYsMzkuOCwzNy42LDU2LjkgTDkyLjQsMzk3eiBNMjcyLDQwLjZjMTguOCwxLjQsMzYuOSw1LjIsNTQuMSwxMS4xbDEyLjYtMjkuNUMzMTcuNywxNC43LDI5NS4zLDEwLDI3Miw4LjVWNDAuNnogTTE5MC44LDUwIGMxNS43LTUsMzIuMi04LjIsNDkuMi05LjRWOC41Yy0yMS4yLDEuNC00MS43LDUuNC02MS4xLDExLjdMMTkwLjgsNTB6IE00NDIuMyw5Mi4zTDQxOS42LDExNWMxMiwxMy45LDIyLjMsMjkuNCwzMC41LDQ2LjEgbDI5LjgtMTEuOUM0NzAsMTI4LjUsNDU3LjMsMTA5LjQsNDQyLjMsOTIuM3ogTTM5Nyw5Mi40bDIyLjctMjIuN2MtMTUuNi0xMy43LTMyLjgtMjUuNS01MS41LTM0LjlsLTEyLjYsMjkuNSBDMzcwLjQsNzIuMSwzODQuNCw4MS41LDM5Nyw5Mi40eiJ9KX0pO3ZhciBuPU5lKE5lKHt9LHMpLHt9LHthdHRyaWJ1dGVOYW1lOiJvcGFjaXR5In0pLG89e3RhZzoiY2lyY2xlIixhdHRyaWJ1dGVzOk5lKE5lKHt9LHIpLHt9LHtjeDoiMjU2IixjeToiMzY0IixyOiIyOCJ9KSxjaGlsZHJlbjpbXX07cmV0dXJuIGF8fG8uY2hpbGRyZW4ucHVzaCh7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOk5lKE5lKHt9LHMpLHt9LHthdHRyaWJ1dGVOYW1lOiJyIix2YWx1ZXM6IjI4OzE0OzI4OzI4OzE0OzI4OyJ9KX0se3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpOZShOZSh7fSxuKSx7fSx7dmFsdWVzOiIxOzA7MTsxOzA7MTsifSl9KSxpLnB1c2gobyksaS5wdXNoKHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6TmUoTmUoe30scikse30se29wYWNpdHk6IjEiLGQ6Ik0yNjMuNywzMTJoLTE2Yy02LjYsMC0xMi01LjQtMTItMTJjMC03MSw3Ny40LTYzLjksNzcuNC0xMDcuOGMwLTIwLTE3LjgtNDAuMi01Ny40LTQwLjJjLTI5LjEsMC00NC4zLDkuNi01OS4yLDI4LjcgYy0zLjksNS0xMS4xLDYtMTYuMiwyLjRsLTEzLjEtOS4yYy01LjYtMy45LTYuOS0xMS44LTIuNi0xNy4yYzIxLjItMjcuMiw0Ni40LTQ0LjcsOTEuMi00NC43YzUyLjMsMCw5Ny40LDI5LjgsOTcuNCw4MC4yIGMwLDY3LjYtNzcuNCw2My41LTc3LjQsMTA3LjhDMjc1LjcsMzA2LjYsMjcwLjMsMzEyLDI2My43LDMxMnoifSksY2hpbGRyZW46YT9bXTpbe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpOZShOZSh7fSxuKSx7fSx7dmFsdWVzOiIxOzA7MDswOzA7MTsifSl9XX0pLGF8fGkucHVzaCh7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOk5lKE5lKHt9LHIpLHt9LHtvcGFjaXR5OiIwIixkOiJNMjMyLjUsMTM0LjVsNywxNjhjMC4zLDYuNCw1LjYsMTEuNSwxMiwxMS41aDljNi40LDAsMTEuNy01LjEsMTItMTEuNWw3LTE2OGMwLjMtNi44LTUuMi0xMi41LTEyLTEyLjVoLTIzIEMyMzcuNywxMjIsMjMyLjIsMTI3LjcsMjMyLjUsMTM0LjV6In0pLGNoaWxkcmVuOlt7dGFnOiJhbmltYXRlIixhdHRyaWJ1dGVzOk5lKE5lKHt9LG4pLHt9LHt2YWx1ZXM6IjA7MDsxOzE7MDswOyJ9KX1dfSkse3RhZzoiZyIsYXR0cmlidXRlczp7Y2xhc3M6Im1pc3NpbmcifSxjaGlsZHJlbjppfX19fSxvanQ9e2hvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6ZnVuY3Rpb24oYSxpKXt2YXIgcj1pLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS1zeW1ib2wiKSxzPXI9PT1udWxsPyExOnI9PT0iIj8hMDpyO3JldHVybiBhLnN5bWJvbD1zLGF9fX19LGxqdD1bUXF0LFZWdCxqVnQsVVZ0LFdWdCx0anQsYWp0LGlqdCxzanQsbmp0LG9qdF07bVZ0KGxqdCx7bWl4b3V0c1RvOlRhfSk7Y2p0PVRhLm5vQXV0byxkanQ9VGEuY29uZmlnLHBqdD1UYS5saWJyYXJ5LGhqdD1UYS5kb20sdWp0PVRhLnBhcnNlLGZqdD1UYS5maW5kSWNvbkRlZmluaXRpb24sbWp0PVRhLnRvSHRtbCxuRT1UYS5pY29uLGdqdD1UYS5sYXllcixianQ9VGEudGV4dCx2anQ9VGEuY291bnRlcn0pO3ZhciB5anQsb0UsSzhlLFE4ZSxKOGUsZWRlLGxFLHRkZSxhZGUsaWRlLHJkZSxzZGUsbmRlLG9kZSxsZGUsY2RlLGRkZSxwZGUsaGRlLHVkZSxmZGUsbWRlLGdkZSxiZGUsdmRlLHlkZSx4ZGUsd2RlLE1kZSxjRSx6ZGUsa2RlLFNkZSxDZGUsX2RlLFRkZSxMZGUsJGRlLEFkZSxEZGUsRWRlLFBkZSxJZGUsTmRlLEZkZSxPZGUsUmRlLEJkZSxIZGUsZEUscWRlLFZkZSxqZGUsVWRlLFdkZSxHZGUsWWRlLFpkZSxYZGUsS2RlLFFkZSxKZGUsZTdlLHQ3ZSxhN2UsaTdlLHI3ZSxzN2UsbjdlLG83ZSxsN2UscEUsYzdlLGQ3ZSxwN2UsaDdlLHU3ZSxmN2UsbTdlLGc3ZSxiN2UsdjdlLHk3ZSx4N2UsdzdlLE03ZSx6N2UsazdlLFM3ZSxDN2UsXzdlLFQ3ZSxMN2UsJDdlLEE3ZSxEN2UsRTdlLFA3ZSxJN2UsTjdlLEY3ZSxPN2UsUjdlLEI3ZSxIN2UscTdlLFY3ZSxqN2UsVTdlLFc3ZSxHN2UsWTdlLFo3ZSxJZixYN2UsSzdlLGhFLFE3ZSxKN2UsZXBlLHVFLHRwZSxhcGUsUGYsaXBlLHJwZSxmRSxzcGUsbnBlLG9wZSxscGUsY3BlLG1FLGRwZSxwcGUsaHBlLHVwZSxmcGUsbXBlLGdwZSxicGUsdnBlLHlwZSxnRSx4cGUsd3BlLE1wZSx6cGUsa3BlLFNwZSxDcGUsX3BlLFRwZSxiRSxMcGUsJHBlLEFwZSxEcGUsRXBlLFBwZSxJcGUsTnBlLHZFLEZwZSxPcGUsUnBlLHlFLEJwZSxIcGUscXBlLFZwZSxqcGUsVXBlLFdwZSxHcGUsWXBlLFpwZSxYcGUsS3BlLFFwZSxKcGUsZWhlLHRoZSxhaGUsaWhlLHJoZSxzaGUsbmhlLG9oZSxsaGUsY2hlLGRoZSxwaGUsaGhlLHhFLHVoZSxmaGUsbWhlLGdoZSxiaGUsdmhlLHloZSx3RSx4aGUsd2hlLE1oZSx6aGUsa2hlLFNoZSxDaGUsX2hlLFRoZSxMaGUsJGhlLEFoZSxEaGUsRWhlLFBoZSxJaGUsTmhlLEZoZSxPaGUsUmhlLEJoZSxIaGUscWhlLFZoZSxqaGUsVWhlLFdoZSxHaGUsWWhlLFpoZSxYaGUsS2hlLFFoZSxKaGUsZTllLHQ5ZSxhOWUsaTllLHI5ZSxzOWUsbjllLG85ZSxOZixsOWUsYzllLGQ5ZSxwOWUsaDllLE1FLHU5ZSxmOWUsbTllLEZmLGc5ZSxiOWUsdjllLHk5ZSx4OWUsdzllLHpFLE05ZSx6OWUsazllLFM5ZSxDOWUsXzllLFQ5ZSxMOWUsJDllLEE5ZSxEOWUsRTllLFA5ZSxJOWUsTjllLEY5ZSxMNSxPOWUsUjllLEI5ZSxIOWUscTllLFY5ZSxqOWUsVTllLFc5ZSxHOWUsWTllLFo5ZSxYOWUsSzllLFE5ZSxKOWUsZXVlLHR1ZSxhdWUsaXVlLHJ1ZSxzdWUsbnVlLG91ZSxsdWUsY3VlLGR1ZSxwdWUsaHVlLHV1ZSxmdWUsbXVlLGd1ZSxidWUsdnVlLHl1ZSx4dWUsd3VlLE11ZSxrRSx6dWUsa3VlLFN1ZSxDdWUsX3VlLFR1ZSxMdWUsJHVlLEF1ZSxEdWUsRXVlLFB1ZSxJdWUsTnVlLEZ1ZSxTRSxPdWUsUnVlLEJ1ZSxIdWUscXVlLFZ1ZSxDRSxqdWUsVXVlLFd1ZSxHdWUsWXVlLFp1ZSxYdWUsS3VlLFF1ZSxKdWUsZWZlLHRmZSxhZmUsaWZlLHJmZSxzZmUsbmZlLG9mZSxsZmUsY2ZlLGRmZSxwZmUsaGZlLHVmZSxmZmUsbWZlLGdmZSxiZmUsX0UsT2YsdmZlLHlmZSx4ZmUsd2ZlLE1mZSx6ZmUsa2ZlLFNmZSxDZmUsX2ZlLFRmZSxMZmUsVEUsJGZlLEFmZSxEZmUsRWZlLFBmZSxJZmUsTmZlLEZmZSxSZixPZmUsUmZlLEJmZSxIZmUscWZlLFZmZSxqZmUsVWZlLFdmZSxHZmUsWWZlLFpmZSxYZmUsTEUsS2ZlLFFmZSxKZmUsZW1lLHRtZSxhbWUsaW1lLHJtZSxzbWUsbm1lLG9tZSxsbWUsY21lLGRtZSxwbWUsaG1lLHVtZSwkRSxmbWUsbW1lLGdtZSxBRSxibWUsdm1lLHltZSx4bWUsQmYsd21lLERFLE1tZSx6bWUsa21lLFNtZSxDbWUsX21lLEVFLFRtZSxMbWUsJG1lLEFtZSxEbWUsRW1lLFBtZSxJbWUsTm1lLEZtZSxPbWUsUm1lLEJtZSxIbWUscW1lLFZtZSxqbWUsVW1lLFdtZSxHbWUsWW1lLFptZSxYbWUsS21lLFFtZSxQRSxKbWUsZWdlLHRnZSxhZ2UsaWdlLHJnZSxzZ2UsbmdlLElFLG9nZSxsZ2UsY2dlLGRnZSxwZ2UsaGdlLHVnZSxmZ2UsbWdlLGdnZSxiZ2UsdmdlLHlnZSx4Z2UsTkUsd2dlLE1nZSx6Z2Usa2dlLFNnZSxDZ2UsX2dlLFRnZSxMZ2UsJGdlLEFnZSxEZ2UsRWdlLFBnZSxJZ2UsRkUsTmdlLEZnZSxPZ2UsUmdlLEJnZSxIZ2UscWdlLFZnZSxqZ2UsVWdlLFdnZSxHZ2UsWWdlLFpnZSxIZixYZ2UsS2dlLFFnZSxKZ2UsZWJlLHRiZSxhYmUsaWJlLHJiZSxzYmUsT0UsbmJlLG9iZSxsYmUsY2JlLGRiZSxwYmUsaGJlLHViZSxmYmUsbWJlLGdiZSxiYmUsdmJlLHliZSx4YmUsd2JlLE1iZSx6YmUsa2JlLFNiZSxDYmUsX2JlLFRiZSxMYmUsJGJlLEFiZSxEYmUsRWJlLFBiZSxJYmUsTmJlLEZiZSxPYmUsUmJlLEJiZSxIYmUscWJlLFZiZSxSRSxqYmUsVWJlLFdiZSxHYmUsWWJlLEJFLFpiZSxYYmUsS2JlLFFiZSxKYmUsZXZlLHhqdCx0dmU9YigoKT0+e3lqdD0iZmFiIixvRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0aHViIixpY29uOls0NDgsNTEyLFsiZ2l0aHViLXNxdWFyZSJdLCJmMDkyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNjUuOCA0MDcuN2MwLTEuOCAwLTYgLjEtMTEuNiAuMS0xMS40IC4xLTI4LjggLjEtNDMuNyAwLTE1LjYtNS4yLTI1LjUtMTEuMy0zMC43IDM3LTQuMSA3Ni05LjIgNzYtNzMuMSAwLTE4LjItNi41LTI3LjMtMTcuMS0zOSAxLjctNC4zIDcuNC0yMi0xLjctNDUtMTMuOS00LjMtNDUuNyAxNy45LTQ1LjcgMTcuOS0yNi42LTcuNS01Ni42LTcuNS04My4yIDAgMCAwLTMxLjgtMjIuMi00NS43LTE3LjktOS4xIDIyLjktMy41IDQwLjYtMS43IDQ1LTEwLjYgMTEuNy0xNS42IDIwLjgtMTUuNiAzOSAwIDYzLjYgMzcuMyA2OSA3NC4zIDczLjEtNC44IDQuMy05LjEgMTEuNy0xMC42IDIyLjMtOS41IDQuMy0zMy44IDExLjctNDguMy0xMy45LTkuMS0xNS44LTI1LjUtMTcuMS0yNS41LTE3LjEtMTYuMi0uMi0xLjEgMTAuMi0xLjEgMTAuMiAxMC44IDUgMTguNCAyNC4yIDE4LjQgMjQuMiA5LjcgMjkuNyA1Ni4xIDE5LjcgNTYuMSAxOS43IDAgOSAuMSAyMS43IC4xIDMwLjYgMCA0LjggLjEgOC42IC4xIDEwIDAgNC4zLTMgOS41LTExLjUgOC02Ni0yMi4xLTExMi4yLTg0LjktMTEyLjItMTU4LjMgMC05MS44IDcwLjItMTYxLjUgMTYyLTE2MS41UzM4OCAxNjUuNiAzODggMjU3LjRjLjEgNzMuNC00NC43IDEzNi4zLTExMC43IDE1OC4zLTguNCAxLjUtMTEuNS0zLjctMTEuNS04em0tOTAuNS01NC44Yy0uMi0xLjUgMS4xLTIuOCAzLTMuMiAxLjktLjIgMy43IC42IDMuOSAxLjkgLjMgMS4zLTEgMi42LTMgMy0xLjkgLjQtMy43LS40LTMuOS0xLjd6bS05LjEgMy4yYy0yLjIgLjItMy43LS45LTMuNy0yLjQgMC0xLjMgMS41LTIuNCAzLjUtMi40IDEuOS0uMiAzLjcgLjkgMy43IDIuNCAwIDEuMy0xLjUgMi40LTMuNSAyLjR6bS0xNC4zLTIuMmMtMS45LS40LTMuMi0xLjktMi44LTMuMnMyLjQtMS45IDQuMS0xLjVjMiAuNiAzLjMgMi4xIDIuOCAzLjQtLjQgMS4zLTIuNCAxLjktNC4xIDEuM3ptLTEyLjUtNy4zYy0xLjUtMS4zLTEuOS0zLjItLjktNC4xIC45LTEuMSAyLjgtLjkgNC4zIC42IDEuMyAxLjMgMS44IDMuMyAuOSA0LjEtLjkgMS4xLTIuOCAuOS00LjMtLjZ6bS04LjUtMTBjLTEuMS0xLjUtMS4xLTMuMiAwLTMuOSAxLjEtLjkgMi44LS4yIDMuNyAxLjMgMS4xIDEuNSAxLjEgMy4zIDAgNC4xLS45IC42LTIuNiAwLTMuNy0xLjV6bS02LjMtOC44Yy0xLjEtMS4zLTEuMy0yLjgtLjQtMy41IC45LS45IDIuNC0uNCAzLjUgLjYgMS4xIDEuMyAxLjMgMi44IC40IDMuNS0uOSAuOS0yLjQgLjQtMy41LS42em0tNi02LjRjLTEuMy0uNi0xLjktMS43LTEuNS0yLjYgLjQtLjYgMS41LS45IDIuOC0uNCAxLjMgLjcgMS45IDEuOCAxLjUgMi42LS40IC45LTEuNyAxLjEtMi44IC40eiJdfSxLOGU9b0UsUThlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoaW5rLXBlYWtzIixpY29uOls1NzYsNTEyLFtdLCJmNzMxIiwiTTQ2NS40IDQwOS40bDg3LjEtMTUwLjItMzItLjMtNTUuMSA5NS0yMDYuMi0zNTMuOS0yMzYuMiA0MDcuNCAzMiAuMyAyMDQuMi0zNTIuMSAyMDYuMiAzNTMuOHpNMTEwLjEgMzY1LjNsMzIuMSAwIDExNy40LTIwMi41IDIwMy40IDM0OS4xIDMyLjUgLjEtMjM1LjgtNDA0LjYtMTQ5LjYgMjU3Ljl6Il19LEo4ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtZHJpdmUiLGljb246WzUxMiw1MTIsW10sImYzYWEiLCJNMzM5IDMxNC45TDE3NS40IDMyIDMzNi42IDMyIDUwMC4yIDMxNC45IDMzOSAzMTQuOXpNMjAxLjUgMzM4LjVsLTgwLjYgMTQxLjUgMzEwLjUgMCA4MC42LTE0MS41LTMxMC41IDB6TTE1NC4xIDY3LjRMMCAzMzguNSA4MC42IDQ4MCAyMzcgMjA4LjggMTU0LjEgNjcuNHoiXX0sZWRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF1dG9wcmVmaXhlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQxYyIsIk0zMTguNCAxNmwtMTYxIDQ4MCA3Ny41IDAgMjUuNC04MS40IDExOS41IDAgMjUuMiA4MS40IDc3LjUgMC0xNjQuMS00ODB6TTI3OC4xIDM1Ny45bDQxLjItMTMwLjQgMS41IDAgNDAuOSAxMzAuNC04My42IDB6TTY0MCA0MDVMNjMwIDM3My42IDQ2Mi4xIDM1OCA0ODEuNSA0MTQuNSA2NDAgNDA1ek0xNzcuOSAzNThMMTAgMzczLjcgMCA0MDUgMTU4LjUgNDE0LjQgMTc3LjkgMzU4eiJdfSxsRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdmlhZGVvIixpY29uOls0NDgsNTEyLFsidmlhZGVvLXNxdWFyZSJdLCJmMmFhIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xMTguMyAzODEuMmMtNjgtNzMuNi0xOS44LTE5Ni4xIDgxLjItMTk2LjEgMTMuMyAwIDI2LjYgMi4xIDM5LjEgNi43LTQuMyA4LjQtNy4zIDE3LjYtOC40IDI3LjEtOS43LTQuMS0yMC4yLTYtMzAuNy02LTQ4LjggMC04NC42IDQxLjctODQuNiA4OC45IDAgNDMgMjguNSA3OC43IDY5LjUgODUuOSA2MS41LTI0IDcyLjktMTE3LjYgNzIuOS0xNzUgMC03LjMgMC0xNC44LS42LTIyLjEtMTEuMi0zMi45LTI2LjYtNjQuNi00NC4yLTk0LjUgMjcuMSAxOC4zIDQxLjkgNjIuNSA0NC4yIDk0LjFsMCAuNGM3LjcgMjIuNSAxMS44IDQ2LjIgMTEuOCA3MCAwIDU0LjEtMjEuOSA5OS02OC4zIDEyOC4ybC0yLjQgLjJjNTAgMSA4Ni4yLTM4LjYgODYuMi04Ny4yIDAtMTIuMi0yLjEtMjQuMy02LjktMzUuNyA5LjUtMS45IDE4LjUtNS42IDI2LjQtMTAuNSAxNS4zIDM2LjYgMTIuNiA4Ny4zLTIyLjggMTI1LjYtNDIuNCA0Ni4yLTEyMCA0Ni42LTE2Mi40IDB6TTI3NC42IDIxNy42YzIxLjktMTIgNDkuNi0zMC43IDYyLjMtNTMgMS41LTMgNC4xLTguNiA0LjUtMTItMTIuNSAyNy45LTQ0LjIgNDkuOC03My45IDU2LjctNC43LTcuMy03LjUtMTUuNS03LjUtMjQuMyAwLTEwLjMgNS4yLTI0LjEgMTIuOS0zMS42IDguMy03LjkgMTgtMTAuOSAyNy45LTE0LjEgMTYtNS4xIDMyLjUtMTAuMyA0NC41LTM1LjkgMzIuNSA0Ni4yIDEzLjEgMTMwLjMtMzYuMyAxMzAuMy0xMy4zIDAtMjUuMS03LjEtMzQuNC0xNi4xeiJdfSx0ZGU9bEUsYWRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNwYW5lbCIsaWNvbjpbNjQwLDUxMixbXSwiZjM4OCIsIk0yMTAuMyAyMjAuMmMtNS42LTI0LjgtMjYuOS00MS4yLTUxLTQxLjJsLTM3IDBjLTcuMSAwLTEyLjUgNC41LTE0LjMgMTAuOUw3My4xIDMyMCA5Ny44IDMxOS45YzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2wyNS44LTk1LjcgMTkuOCAwYzguNCAwIDE2LjIgNS42IDE4LjMgMTQuOCAyLjUgMTAuOS01LjkgMjIuNi0xOC4zIDIyLjZsLTEwLjMgMGMtNyAwLTEyLjUgNC42LTE0LjMgMTAuOGwtNi40IDIzLjggMzIgMGMzNy4yIDAgNTguMy0zNi4yIDUxLjctNjUuM3ptLTE1Ni41IDI4bDE4LjYgMGM2LjkgMCAxMi40LTQuNCAxNC4zLTEwLjlsNi4yLTIzLjYtNDAgMEMzMCAyMTMuNyA5IDIyNy44IDEuNyAyNTQuOC03IDI4OC42IDE4LjUgMzIwIDUyIDMyMGwxMi40IDAgNy4xLTI2LjFjMS4yLTQuNC0yLjItOC4zLTYuNC04LjNsLTExLjMgMGMtMjQuNyAwLTI0LjktMzcuNCAwLTM3LjR6bTI0Ny41LTM0LjhsLTc3LjkgMC0zLjUgMTMuNGMtMi40IDkuNiA0LjUgMTguNSAxNC4yIDE4LjVsNTcuNSAwYzQgMCAyLjQgNC4zIDIuMSA1LjNsLTguNiAzMS44Yy0uNCAxLjQtLjkgNS4zLTUuNSA1LjNsLTM0LjkgMGMtNS4zIDAtNS4zLTcuOSAwLTcuOWwyMS42IDBjNi44IDAgMTIuMy00LjYgMTQuMi0xMC44bDMuNS0xMy4yLTQ4LjQgMGMtMzkuMiAwLTQzLjYgNjMuOC0uNyA2My44bDU3LjUgLjJjMTEuMiAwIDIwLjYtNy4yIDIzLjQtMTcuOGwxNC01MS44YzQuOC0xOS4yLTkuNy0zNi44LTI4LjUtMzYuOHpNNjMzLjEgMTc5bC0xOC45IDBjLTQuOSAwLTkuMiAzLjItMTAuNCA3LjlMNTY4LjIgMzIwYzIwLjcgMCAzOS44LTEzLjggNDQuOS0zNC41bDI2LjUtOTguMmMxLjItNC4zLTItOC4zLTYuNS04LjN6TTM5Ni44IDIxMy43bDAgLjEtNDguMyAwLTI2LjIgOThjLTEuMiA0LjQgMi4yIDguMyA2LjQgOC4zbDE4LjkgMGM0LjggMCA5LjItMyAxMC40LTcuOGwxNy4yLTY0IDE5LjggMGMxMi41IDAgMjEuNCAxMS44IDE4LjEgMjMuNGwtMTAuNiA0MGMtMS4yIDQuMyAxLjkgOC4zIDYuNCA4LjNsMTkuMSAwYzQuNiAwIDkuMS0yLjkgMTAuMy03LjhsOC44LTMzLjFjOS0zMy4xLTE1LjktNjUuNC01MC4zLTY1LjR6bTk4LjMgNzQuNmMtMy42IDAtNi0zLjQtNS4xLTYuN2w4LTMwYy45LTMuOSAzLjctNiA3LjgtNmwzMi45IDBjMi42IDAgNC42IDIuNCAzLjkgNS4xbC0uNyAyLjZjLS42IDItMS45IDMtMy45IDNsLTIxLjYgMGMtNyAwLTEyLjYgNC42LTE0LjIgMTAuOGwtMy41IDEzIDUzLjQgMGMxMC41IDAgMjAuMy02LjYgMjMuMi0xNy42bDMuMi0xMmM0LjktMTkuMS05LjMtMzYuOC0yOC4zLTM2LjhsLTQ3LjMgMGMtMTcuOSAwLTMzLjggMTItMzguNiAyOS42bC0xMC44IDQwYy01IDE3LjcgOC4zIDM2LjcgMjguMyAzNi43bDY2LjcgMGM2LjggMCAxMi4zLTQuNSAxNC4yLTEwLjdsNS43LTIxLTczLjMgMHoiXX0saWRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lbmRlbGV5IixpY29uOls2NDAsNTEyLFtdLCJmN2IzIiwiTTYyNC42IDMyNS4yYy0xMi4zLTEyLjQtMjkuNy0xOS4yLTQ4LjQtMTcuMi00My4zLTEtNDkuNy0zNC45LTM3LjUtOTguOCAyMi44LTU3LjUtMTQuOS0xMzEuNS04Ny40LTEzMC44LTc3LjQgLjctODEuNyA4Mi0xMzAuOSA4Mi00OC4xIDAtNTQtODEuMy0xMzAuOS04Mi03Mi45LS44LTExMC4xIDczLjMtODcuNCAxMzAuOCAxMi4yIDYzLjkgNS44IDk3LjgtMzcuNSA5OC44LTIxLjItMi4zLTM3IDYuNS01MyAyMi41LTE5LjkgMTkuNy0xOS4zIDk0LjggNDIuNiAxMDIuNiA0Ny4xIDUuOSA4MS42LTQyLjkgNjEuMi04Ny44LTQ3LjMtMTAzLjcgMTg1LjktMTA2LjEgMTQ2LjUtOC4yLS4xIC4xLS4yIC4yLS4zIC40LTI2LjggNDIuOCA2LjggOTcuNCA1OC44IDk1LjIgNTIuMSAyLjEgODUuNC01Mi42IDU4LjgtOTUuMi0uMS0uMi0uMi0uMy0uMy0uNC0zOS40LTk3LjkgMTkzLjgtOTUuNSAxNDYuNSA4LjItNC42IDEwLTYuNyAyMS4zLTUuNyAzMyA0LjkgNTMuNCA2OC43IDc0LjEgMTA0LjkgMzUuMiAxNy44LTE0LjggMjMuMS02NS42IDAtODguM3pNMzIwLjcgMzA2LjFsLS42IDBjLTQzLjQgMC02Mi44LTM3LjUtNjIuOC02Mi44IDAtMzQuNyAyOC4yLTYyLjggNjIuOC02Mi44bC42IDBjMzQuNyAwIDYyLjggMjguMSA2Mi44IDYyLjggMCAyNS0xOS4yIDYyLjgtNjIuOCA2Mi44eiJdfSxyZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJhZnQyZGlnaXRhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjM5NiIsIk00OTYgMzk4LjFsLTE0NC04Mi4yIDAgNjQuNy05MS4zIDBjMzAuOC0zNSA4MS44LTk1LjkgMTExLjgtMTQ5LjMgMzUuMi02Mi42IDE2LjEtMTIzLjQtMTIuOC0xNTMuMy00LjQtNC42LTYyLjItNjIuOS0xNjYtNDEuMi01OS4xIDEyLjQtODkuNCA0My40LTEwNC4zIDY3LjMtMTMuMSAyMC45LTE3IDM5LjgtMTguMiA0Ny43LTUuNSAzMyAxOS40IDY3LjEgNTYuNyA2Ny4xIDMxLjcgMCA1Ny4zLTI1LjcgNTcuMy01Ny40IDAtMjcuMS0xOS43LTUyLjEtNDgtNTYuOCAxLjgtNy4zIDE3LjctMjEuMSAyNi4zLTI0LjcgNDEuMS0xNy4zIDc4IDUuMiA4My4zIDMzLjUgOC4zIDQ0LjMtMzcuMSA5MC40LTY5LjcgMTI3LjYtNzYuNiA4Ny0xNDIuOCAxNTUuNy0xNjEuMSAxNzQuOGwzMzYtLjEgMCA2NC4yIDE0NC04MS45ek0zODUuOSAzNzFsNDcuMSAyNy4yLTQ3LjEgMjcuMiAwLTU0LjR6TTEwNS40IDE2MS40YTIyLjQgMjIuNCAwIDEgMSA0NC44IDAgMjIuNCAyMi40IDAgMSAxIC00NC44IDB6TTk4LjUgMzgwLjVjMjUuNi0yNy40IDk3LjctMTA0LjcgMTUwLjgtMTY5LjkgMzUuMS00My4xIDQwLjMtODIuNCAyOC40LTExMi43LTcuNC0xOC44LTE3LjUtMzAuMi0yNC4zLTM1LjcgNDUuMyAyLjEgNjggMjMuNCA4Mi4yIDM4LjMgMCAwIDQyLjQgNDguMiA1LjggMTEzLjMtMzcgNjUuOS0xMTAuOSAxNDcuNS0xMjguNSAxNjYuN2wtMTE0LjQgMHoiXX0sc2RlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlcGx5ZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlNiIsIk0zMjAgNDgwbC0xOTIgMEM1Ny42IDQ4MCAwIDQyMi40IDAgMzUyTDAgMTYwQzAgODkuNiA1Ny42IDMyIDEyOCAzMmwxOTIgMGM3MC40IDAgMTI4IDU3LjYgMTI4IDEyOGwwIDE5MmMwIDcwLjQtNTcuNiAxMjgtMTI4IDEyOHpNMTkzLjQgMjczLjJjLTYuMS0yLTExLjYtMy4xLTE2LjQtMy4xLTcuMiAwLTEzLjUgMS45LTE4LjkgNS42cy05LjYgOS0xMi44IDE1LjhsLTEuMSAwLTQuMi0xOC4zLTI4IDAgMCAxMzguOSAzNi4xIDAgMC04OS43YzEuNS01LjQgNC40LTkuOCA4LjctMTMuMnM5LjgtNS4xIDE2LjItNS4xYzQuNiAwIDkuOCAxIDE1LjYgMy4xbDQuOC0zNHpNMzA4LjYgMzc2LjZjLTMuMiAyLjQtNy43IDQuOC0xMy43IDcuMXMtMTIuOCAzLjUtMjAuNCAzLjVjLTEyLjIgMC0yMS4xLTMtMjYuNS04LjktNS41LTUuOS04LjUtMTQuNy05LTI2LjRsODMuMyAwYy45LTQuOCAxLjYtOS40IDIuMS0xMy45IC41LTQuNCAuNy04LjYgLjctMTIuNSAwLTEwLjctMS42LTE5LjctNC43LTI2LjktMy4yLTcuMi03LjMtMTMtMTIuNS0xNy4yLTUuMi00LjMtMTEuMS03LjMtMTcuOC05LjItNi43LTEuOC0xMy41LTIuOC0yMC42LTIuOC0yMS4xIDAtMzcuNSA2LjEtNDkuMiAxOC4zcy0xNy41IDMwLjUtMTcuNSA1NWMwIDIyLjggNS4yIDQwLjcgMTUuNiA1My43IDEwLjQgMTMuMSAyNi44IDE5LjYgNDkuMiAxOS42IDEwLjcgMCAyMC45LTEuNSAzMC40LTQuNnMxNy4xLTYuOCAyMi42LTExLjJsLTEyLTIzLjZ6bS0yMS44LTcwLjNjMy44IDUuNCA1LjMgMTMuMSA0LjYgMjMuMWwtNTEuNyAwYy45LTkuNCAzLjctMTcgOC4yLTIyLjZzMTEuNS04LjUgMjEtOC41YzguMi0uMSAxNC4xIDIuNiAxNy45IDh6bTc5LjkgMi41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjQtOS42LTUuNy0xNi43LTUuN2MtNi43IDAtMTIgMS45LTE2LjEgNS43cy02LjEgOC45LTYuMSAxNS40IDIgMTEuNyA2LjEgMTUuNnptMCAxMDAuNWM0LjEgMy45IDkuNCA1LjggMTYuMSA1LjggNyAwIDEyLjYtMS45IDE2LjctNS44czYuMS05LjEgNi4xLTE1LjYtMi0xMS42LTYuMS0xNS40LTkuNi01LjctMTYuNy01LjdjLTYuNyAwLTEyIDEuOS0xNi4xIDUuN3MtNi4xIDguOS02LjEgMTUuNGMwIDYuNiAyIDExLjcgNi4xIDE1LjZ6Il19LG5kZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbXBpcmUiLGljb246WzUxMiw1MTIsW10sImYxZDEiLCJNMjk1LjYgNTQuMmMtMTAuOC0yLjItMjIuMS0zLjMtMzMuNS0zLjZsMC0xOC4yYzc4LjEgMi4yIDE0Ni4xIDQ0IDE4NC42IDEwNi42bC0xNS44IDkuMWMtNi4xLTkuNy0xMi43LTE4LjgtMjAuMi0yNy4xbC0xOCAxNS41Yy0yNi0yOS42LTYxLjQtNTAuNy0xMDEuOS01OC40bDQuOC0yMy45ek02MS40IDMyMi40bDIzLTcuN2MtNi40LTE4LjMtMTAtMzguMi0xMC01OC43czMuMy00MC40IDkuNy01OC43bC0yMi43LTcuN2MzLjYtMTAuOCA4LjMtMjEuMyAxMy42LTMxbC0xNS44LTkuMUM0MiAxODEgMzIuMSAyMTcuNSAzMi4xIDI1NnMxMCA3NSAyNy4xIDEwNi42TDc1IDM1My41Yy01LjMtMTAtOS43LTIwLjMtMTMuNi0zMS4xek0yMjEuMSA0MzRjLTQwLjQtOC03NS44LTI5LjEtMTAxLjktNTguN2wtMTggMTUuOGMtNy41LTguNi0xNC40LTE3LjctMjAuMi0yNy40bC0xNiA5LjRjMzguNSA2Mi4zIDEwNi44IDEwNC4zIDE4NC45IDEwNi42bDAtMTguM2MtMTEuMy0uMy0yMi43LTEuNy0zMy41LTMuNmw0LjctMjMuOHpNMTAxLjMgMTIwLjlsMTggMTUuNWMyNi0yOS42IDYxLjQtNTAuNyAxMDEuOS01OC40bC00LjctMjMuOGMxMC44LTIuMiAyMi4xLTMuMyAzMy41LTMuNmwwLTE4LjJDMTcxLjkgMzQuNiAxMDMuOSA3Ni40IDY1LjQgMTM5bDE1LjggOS4xYzYtOS43IDEyLjYtMTguOSAyMC4xLTI3LjJ6TTQxMC43IDM5MS4xbC0xOC0xNS44Yy0yNiAyOS42LTYxLjQgNTAuNy0xMDEuOSA1OC43bDQuNyAyMy44Yy0xMC44IDEuOS0yMi4xIDMuMy0zMy41IDMuNmwwIDE4LjNjNzguMS0yLjIgMTQ2LjQtNDQuMyAxODQuOS0xMDYuNmwtMTYuMS05LjRjLTUuNyA5LjctMTIuNiAxOC44LTIwLjEgMjcuNHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptNDgzLjggMGEyMzUuOCAyMzUuOCAwIDEgMCAtNDcxLjYgMCAyMzUuOCAyMzUuOCAwIDEgMCA0NzEuNiAwem0tMzktMTA2LjZMNDM3IDE1OC41YzUuMyA5LjcgMTAgMjAuMiAxMy42IDMxbC0yMi43IDcuN2M2LjQgMTguMyA5LjcgMzguMiA5LjcgNTguN3MtMy42IDQwLjQtMTAgNTguN2wyMyA3LjdjLTMuOSAxMC44LTguMyAyMS0xMy42IDMxbDE1LjggOS4xQzQ3MCAzMzEgNDc5LjkgMjk0LjUgNDc5LjkgMjU2cy05LjktNzUtMjcuMS0xMDYuNnptLTE4MyAxNzcuN2MxNi4zLTMuMyAzMC40LTExLjYgNDAuNy0yMy41bDUxLjIgNDQuOGMxMS45LTEzLjYgMjEuMy0yOS4zIDI3LjEtNDYuOGwtNjQuMi0yMi4xYzIuNS03LjUgMy45LTE1LjIgMy45LTIzLjVzLTEuNC0xNi4xLTMuOS0yMy41bDY0LjUtMjIuMWMtNi4xLTE3LjQtMTUuNS0zMy4yLTI3LjQtNDYuOGwtNTEuMiA0NC44Yy0xMC4yLTExLjktMjQuNC0yMC41LTQwLjctMjMuOGwxMy4zLTY2LjRjLTguNi0xLjktMTcuNy0yLjgtMjcuMS0yLjhzLTE4LjUgLjgtMjcuMSAyLjhsMTMuMyA2Ni40Yy0xNi4zIDMuMy0zMC40IDExLjktNDAuNyAyMy44bC01MS4yLTQ0LjhjLTExLjkgMTMuNi0yMS4zIDI5LjMtMjcuNCA0Ni44bDY0LjUgMjIuMWMtMi41IDcuNS0zLjkgMTUuMi0zLjkgMjMuNXMxLjQgMTYuMSAzLjkgMjMuNWwtNjQuMiAyMi4xYzUuOCAxNy40IDE1LjIgMzMuMiAyNy4xIDQ2LjhsNTEuMi00NC44YzEwLjIgMTEuOSAyNC40IDIwLjIgNDAuNyAyMy41bC0xMy4zIDY2LjdjOC42IDEuNyAxNy43IDIuOCAyNy4xIDIuOHMxOC41LTEuMSAyNy4xLTIuOGwtMTMuMy02Ni43eiJdfSxvZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWNjZXNzaWJsZS1pY29uIixpY29uOls0NDgsNTEyLFs2MjEwN10sImYzNjgiLCJNNDIzLjkgMjU1LjhMNDExIDQxMy4xYy0zLjMgNDAuNy02My45IDM1LjEtNjAuNi00LjlsMTAtMTIyLjUtNDEuMSAyLjNjMTAuMSAyMC43IDE1LjggNDMuOSAxNS44IDY4LjUgMCA0MS4yLTE2LjEgNzguNy00Mi4zIDEwNi41bC0zOS4zLTM5LjNjNTcuOS02My43IDEzLjEtMTY3LjItNzQtMTY3LjItMjUuOSAwLTQ5LjUgOS45LTY3LjIgMjZMNzMgMjQzLjJjMjItMjAuNyA1MC4xLTM1LjEgODEuNC00MC4ybDc1LjMtODUuNy00Mi42LTI0LjgtNTEuNiA0NkMxMDUuNSAxNjUuMyA2NC45IDEyMCA5NSA5My4xbDY4LTYwLjdjOS44LTguOCAyNC4xLTEwLjIgMzUuNS0zLjYgMCAwIDEzOS4zIDgwLjkgMTM5LjUgODEuMSAxNi4yIDEwLjEgMjAuNyAzNiA2LjEgNTIuNmwtNTguNCA2Ni41IDEwNi4xLTUuOWMxOC41LTEuMSAzMy42IDE0LjQgMzIuMSAzMi43ek0zNTkgMTAxLjhBNTAuOSA1MC45IDAgMSAwIDM1OSAwIDUwLjkgNTAuOSAwIDEgMCAzNTkgMTAxLjh6TTE3OS42IDQ1Ni41Yy04MC42IDAtMTI3LjQtOTAuNi04Mi43LTE1Ni4xTDU3LjIgMjYwLjdDMzYuNCAyODcgMjQgMzIwLjMgMjQgMzU2LjQgMjQgNDg3LjEgMTc0LjcgNTU3LjggMjc1LjQgNDc4LjlsLTM5LjctMzkuN2MtMTYgMTAuOS0zNS4zIDE3LjMtNTYuMSAxNy4zeiJdfSxsZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXVvcmEiLGljb246WzQ0OCw1MTIsW10sImYyYzQiLCJNNDQwLjcgMzg2LjdsLTI5LjMgMGMtMS41IDEzLjUtMTAuNSAzMC44LTMzIDMwLjgtMjAuNSAwLTM1LjMtMTQuMi00OS41LTM1LjggNDQuMi0zNC4yIDc0LjctODcuNSA3NC43LTE1MyAuMS0xMTcuNS05Ni42LTE5Ni43LTE5OC40LTE5Ni43LTk5LjcgMC0xOTcuNyA3OS43LTE5Ny43IDE5Ni43IDAgMTM0LjEgMTMxLjMgMjIxLjYgMjQ5IDE4OSAxOS43IDMzLjYgNDUuNyA2Mi4zIDk1LjIgNjIuMyA4MS44IDAgOTAuOC03NS4zIDg5LTkzLjN6TTI5Ny4yIDMyOS4yYy0xOS41LTI5LjItNDMuNy01Mi4yLTkxLjUtNTIuMi0zMC41IDAtNTQuMyAxMC02OSAyMi44bDEyLjIgMjQuM2M2LjItMyAxMy00IDE5LjgtNCAzNS41IDAgNTMuNyAzMC44IDY5LjIgNjEuMy0xMCAzLTIwLjcgNC4yLTMyLjcgNC4yLTc1IDAtMTA3LjUtNTMtMTA3LjUtMTU2LjcgMC0xMDQuNCAzMi41LTE1Ny45IDEwNy41LTE1Ny45IDc2LjIgMCAxMDguNyA1My41IDEwOC43IDE1Ny43IC4xIDQxLjgtNS40IDc1LjYtMTYuNyAxMDAuNXoiXX0sY2RlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWpjYiIsaWNvbjpbNTc2LDUxMixbXSwiZjI0YiIsIk00MzEuNSAyNDQuM2wwLTMyLjNjNDEuMiAwIDM4LjUgLjIgMzguNSAuMiA3LjMgMS4zIDEzLjMgNy4zIDEzLjMgMTYgMCA4LjgtNiAxNC41LTEzLjMgMTUuOC0xLjIgLjQtMy4zIC4zLTM4LjUgLjN6bTQyLjggMjAuMmMtMi44LS43LTMuMy0uNS00Mi44LS41bDAgMzVjMzkuNiAwIDQwIC4yIDQyLjgtLjUgNy41LTEuNSAxMy41LTggMTMuNS0xNyAwLTguNy02LTE1LjUtMTMuNS0xN3pNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTgyIDE5Mi4zbC01NyAwYzAgNjcuMSAxMC43IDEwOS43LTM1LjggMTA5LjctMTkuNSAwLTM4LjgtNS43LTU3LjItMTQuOGwwIDI4YzMwIDguMyA2OCA4LjMgNjggOC4zIDk3LjkgMCA4Mi00Ny43IDgyLTEzMS4yem0xNzguNSA0LjVjLTYzLjQtMTYtMTY1LTE0LjktMTY1IDU5LjMgMCA3Ny4xIDEwOC4yIDczLjYgMTY1IDU5LjJsMC0yOC4zQzMxMi45IDMxMS43IDI1MyAzMDkgMjUzIDI1NnM1OS44LTU1LjYgMTA3LjUtMzEuMmwwLTI4ek01NDQgMjg2LjVjMC0xOC41LTE2LjUtMzAuNS0zOC0zMmwwLS44YzE5LjUtMi43IDMwLjMtMTUuNSAzMC4zLTMwLjIgMC0xOS0xNS43LTMwLTM3LTMxIDAgMCA2LjMtLjMtMTIwLjMtLjNsMCAxMjcuNSAxMjIuNyAwYzI0LjMgLjEgNDIuMy0xMi45IDQyLjMtMzMuMnoiXX0sZGRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZlZG9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc5OCIsIk0wIDI1NS44Qy4xIDEzMi4yIDEwMC4zIDMyIDIyNCAzMlM0NDggMTMyLjMgNDQ4IDI1NiAzNDcuOCA0NzkuOSAyMjQuMSA0ODBMNTAuOSA0ODBDMjIuOCA0ODAgLjEgNDU3LjMgMCA0MjkuMmwwIDAgMC0xNzMuNCAwIDB6bTM0Mi42LTYzLjFjMC0zOS43LTM1LjYtNjguNS03My4yLTY4LjUtMzQuOSAwLTY1LjggMjYuMy03MC4xIDU5LjktLjIgMy44LS40IDUtLjQgOC41LS4xIDIxLjEgMCA0Mi44LS44IDY0LjQgLjkgMjYuMSAxIDUyLjEgMCA3Ni42IDAgMjcuMS0xOS40IDQ1LjUtNDQuNyA0NS41cy00NS44LTIwLjItNDUuOC00NS41Yy41LTI3LjcgMjIuNi00NS4zIDQ4LjUtNDYuMWwuMiAwIDI2LjMtLjIgMC0zNy4zLTI2LjMgLjJjLTQ3LjEtLjQtODQuNiAzNi41LTg1LjkgODMuNCAwIDQ1LjYgMzcuNSA4Mi45IDgzIDgyLjkgNDMgMCA3OC43LTMzLjYgODIuNi03NS42bC4yLTUzLjUgMzIuNi0uM2MyNS4zIC4yIDI1LTM3LjgtLjItMzcuM2wtMzIuNCAuM2MwLTYuNCAuMS0xMi44IC4xLTE5LjIgLjEtMTIuNyAuMS0yNS40LS4xLTM4LjIgLjEtMTYuNSAxNS44LTMxLjIgMzMuMi0zMS4yIDE3LjUgMCAzNS45IDguNyAzNS45IDMxLjIgMCAzLjItLjEgNS4xLS4zIDYuMy0xLjkgMTAuNSA1LjIgMjAuNCAxNS43IDIxLjkgMTAuNiAxLjUgMjAuMi02LjEgMjEuMi0xNi42IC42LTQuMiAuNy03LjkgLjctMTEuNnoiXX0scGRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImR1b2xpbmdvIixpY29uOls1NzYsNTEyLFtdLCJlODEyIiwiTTUwNC4zIDIzMC41YzEwLjQgODguNS00My40IDE3Mi4xLTEyOC4yIDE5OXMtMTc2LjYtMTAuMy0yMTguOS04OC43Yy03MiAzLTEzNy40LTM5LjgtMTYzLjItMTA1LjUtMi42LTYuNi0xLjktMTQgMS45LTE5LjlzMTAuMi05LjcgMTcuMi0xMC4xbDk2LjEtNi0yMy44LTc1LjljLTYuMy0yMC0yLjItNDEuOSAxMS01OC4zczMzLjctMjUgNTQuNS0yM2M1Mi4yIDUgODYuOCA0LjggMTA0LS42UzMwMCAxNi43IDMzOS0xNi45YzE1LjktMTMuNyAzNy43LTE4LjUgNTcuOC0xMi43czM2LjEgMjEuMyA0Mi40IDQxLjRMNDYyLjggODcgNTQzLjYgMzcuM2M2LTMuNyAxMy40LTQuMyAxOS45LTEuNnMxMS4zIDguMyAxMi45IDE1LjJjMTYuMiA2OC4yLTEyLjQgMTQwLjMtNzIuMSAxNzkuNXpNMjU4LjUgNDc1LjlsMCAwYzE1LjEgNy41IDIxLjUgMjUuOCAxNC4yIDQxcy0yNS40IDIxLjktNDAuNyAxNC45bC00My45LTIxYy0xNS4xLTcuNS0yMS41LTI1LjgtMTQuMi00MXMyNS40LTIxLjkgNDAuNy0xNC45bDQzLjggMjF6TTU2NC42IDM0NS43YzE0LjggOC40IDIwIDI3LjMgMTEuNiA0Mi4ybC0yMy45IDQyLjRjLTguNyAxNC4zLTI3LjEgMTkuMi00MS42IDEwLjlzLTE5LjktMjYuNi0xMi00MS40bDIzLjktNDIuNGM0LTcuMSAxMC43LTEyLjQgMTguNi0xNC42czE2LjMtMS4yIDIzLjQgMi45eiJdfSxoZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3RkcmFmdCIsaWNvbjpbMzg0LDUxMixbXSwiZjNhMSIsIk0zODQgMTkybC02NCAwIDAgMTI4LTEyOCAwIDAgMTI4LTE5MiAwIDAtMjUuNiAxNjYuNCAwIDAtMTI4IDEyOCAwIDAtMTI4IDg5LjYgMCAwIDI1LjZ6bS0yNS42IDM4LjRsMCAxMjgtMTI4IDAgMCAxMjgtMTY2LjQgMCAwIDI1LjYgMTkyIDAgMC0xMjggMTI4IDAgMC0xNTMuNi0yNS42IDB6bTI1LjYgMTkybC04OS42IDAgMCA4OS42IDI1LjYgMCAwLTY0IDY0IDAgMC0yNS42ek0wIDBsMCAzODQgMTI4IDAgMC0xMjggMTI4IDAgMC0xMjggMTI4IDAgMC0xMjgtMzg0IDB6Il19LHVkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmcmVlYnNkIixpY29uOls0NDgsNTEyLFtdLCJmM2E0IiwiTTMwMy43IDk2LjJjMTEuMS0xMS4xIDExNS41LTc3IDEzOS4yLTUzLjIgMjMuNyAyMy43LTQyLjEgMTI4LjEtNTMuMiAxMzkuMnMtMzkuNCAuOS02My4xLTIyLjljLTIzLjgtMjMuNy0zNC4xLTUyLTIyLjktNjMuMXpNMTA5LjkgNjguMUM3My42IDQ3LjUgMjIgMjQuNiA1LjYgNDEuMS0xMSA1Ny43IDEyLjcgMTEwLjUgMzMuNSAxNDYuOCA1MiAxMTQuNiA3OC4zIDg3LjUgMTA5LjkgNjguMXpNNDA2LjcgMTc0YzMuMyAxMS4zIDIuNyAyMC43LTIuNyAyNi4xLTIwLjMgMjAuMy04Ny41LTI3LTEwOS4zLTcwLjEtMTgtMzIuMy0xMS4xLTUzLjQgMTQuOS00OC43IDUuNy0zLjYgMTIuMy03LjYgMTkuNi0xMS42LTI5LjgtMTUuNS02My42LTI0LjMtOTkuNS0yNC4zLTExOS4xIDAtMjE1LjYgOTYuNS0yMTUuNiAyMTUuNiAwIDExOSA5Ni41IDIxNS42IDIxNS42IDIxNS42UzQ0NS4zIDM4MC4xIDQ0NS4zIDI2MWMwLTM4LjQtMTAuMS03NC41LTI3LjctMTA1LjgtMy45IDctNy42IDEzLjMtMTAuOSAxOC44eiJdfSxmZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2R5c2VlIixpY29uOls1MTIsNTEyLFtdLCJlNWM2IiwiTTQwNi43IDQ2M2MtNDIuMyAzMC44LTk0LjQgNDktMTUwLjcgNDktMTExLjEgMC0yMDUuNy03MC44LTI0MS4xLTE2OS44IDIuNCAxLjcgNS45IDMuNiA3LjkgNC40IDE2LjMgNy40IDQwLjEtNS40IDYyLjktMjguNyA2LjktNi45IDE0LjQtMTIuNCAyMi44LTE3LjMgMTguMy0xMS45IDM3LjYtMjAuOCA1OC40LTI3LjIgMCAwIDIyLjMgMzQuMiA0My4xIDc0LjhzLTIyLjMgNTQtMjcuMiA1NGMtLjMgMC0uOCAwLTEuNS0uMS0xMS0uNS03MC0zLTU2IDUxLjEgMTQuOSA1Ny40IDk3LjUgMzYuNiAxMzkuNiA4LjlzMzEuNy0xMTguMyAzMS43LTExOC4zYzQxLjEtNi40IDU0IDM3LjEgNTcuOSA1OS40IC44IDQuNiAxLjEgOS45IDEuNCAxNS41IDEuMSAyMS4yIDIuMyA0NS42IDM1LjMgNDYuNCA1LjMgMCAxMC42LS44IDE1LjUtMmwwLS4xem0tOTUuMy0yMy43Yy0yLS41LTMuNS0yLjUtMy01IDEtMi41IDMtMy41IDUtM3MzLjUgMyAzIDUtMi41IDMuNS01IDN6bS0yMDctOTUuNmMxLjUtLjUgMy41IDEgNCAzIDAgMi0xIDQtMyA0LTEuNSAuNS0zLjUtMS00LTMtLjUtMS41IDEtMy41IDMtNHpNNDUxLjggNDIxYzM3LjUtNDQuNiA2MC4yLTEwMi4yIDYwLjItMTY1IDAtNjcuNS0yNi4xLTEyOC45LTY4LjgtMTc0LjctLjEgMjMuNS02LjEgNDguMi0xNi44IDY5LjItMTEuOSAyMC4zLTQ5IDU4LjktNjkuOCA3OC43LS43IC4zLTEuMSAuOS0xLjUgMS40LS4yIC4yLS4zIC40LS41IC42LTUgNi45LTQgMTYuOCAzIDIxLjggMjEuMyAxNS44IDU2LjQgNDUuNiA1OS40IDcyLjggMy41IDM0LjkgMjcuOSA3NS42IDM0LjIgODYuMiAuOCAxLjMgMS4zIDIuMSAxLjQgMi40IDAgMi4yLS40IDQuMy0uOCA2LjVsMCAuMXpNMzkwLjcgMjUxYy0uNSAzIDEgNS45IDQgNi40czUuOS0xIDYuNC00LTEtNS45LTQtNi40Yy0zLTEtNS45IDEtNi40IDR6bTYxLjQtNjAuOWwtMTEuNCA1LjQtMyAxMi45LTUuNC0xMS40LTEyLjktMyAxMS40LTUuNCAzLTEyLjkgNS40IDExLjQgMTIuOSAzek0zOTUuNSA0MS4zYy0xNi4yIDguMi0yMi4xIDMyLjgtMjkgNjEuNC0uMyAxLjQtLjcgMi44LTEgNC4yLTkuNSAzOC41LTMwLjYgMzcuNi00MS43IDM3LjItMS4xIDAtMi0uMS0yLjktLjEtNS4xIDAtNi00LTguOS0xNy4xLTIuNi0xMi4xLTYuOS0zMi0xNy45LTYzLjYtMjIuNy02NS44LTgyLjctNDkuNC0xMjguMi0yMi4yLTU1LjMgMzMuMS0zNC40IDEwMS45LTE5LjggMTQ5LjQgLjcgMi4yIDEuNCA0LjQgMiA2LjYtNCA0LTEzLjggNy41LTI2IDExLjktMTIuMSA0LjMtMjYuNiA5LjUtNDAuMyAxNi45LTMzLjkgMTgtNzAuMyA0OS03OS44IDYyLjYtMS4zLTEwLjctMi0yMS41LTItMzIuNSAwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2IDUxLjQgMCA5OS40IDE1LjIgMTM5LjUgNDEuM3pNNTguOSAxODkuNmMtMS41LTItNC41LTMtNi40LTEuNXMtMyA0LjUtMS41IDYuNCA0LjUgMyA2LjQgMS41YzIuNS0xLjUgMy00LjUgMS41LTYuNHpNMzI3LjMgNjQuOWMyLTEuNSA1LS41IDYuNCAxLjUgMS41IDIuNSAxIDUuNC0xLjUgNi40LTIgMS41LTUgLjUtNi40LTEuNXMtLjUtNSAxLjUtNi40ek05NS4xIDEwNWMtLjUgMS41IC41IDMgMiAzIDEuNSAuNSAzLS41IDMtMiAuNS0xLjUtLjUtMy0yLTNzLTMgLjUtMyAyem04NC43LS41Yy0zLjUtNDMuMSAzNy4xLTU0IDM3LjEtNTQgNDQuMS0xNS40IDU2IDUuOSA2Ni40IDM3LjZzMyA0Mi42LTM4LjYgNTguOS02MS45LTQuNS02NC45LTQyLjZsMCAuMXptODkuNiAxNC45bDEgMGMyLjUgMCA1LTIgNS01IDItNi45IDEtMTQuNC0yLTIwLjgtMS41LTItNC0zLjUtNi40LTIuNS0zIDEtNC41IDQtMy41IDYuOSAyIDQuNSAzIDkuOSAxLjUgMTQuOS0uNSAzIDEuNSA1LjkgNC41IDYuNGwtLjEgLjF6bS05LjktNDEuNmMtMiAwLTQtMS01LTNzLTItMy41LTMtNWMtMi0yLTItNS40IDAtNy40czUuNC0yIDcuNCAwYzIgMi41IDMuNSA1IDUgNy40cy41IDUuOS0yLjUgNy40Yy0uNiAwLTEgLjItMS4zIC4zLS4yIC4xLS40IC4yLS42IC4ybDAgLjF6Il19LG1kZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZy1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImYyNjEiLCJNMjU3LjUgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTIwOCAzODIuOGwtMTI1LjctMTI1LjcgMTI1LjctMTI1LjcgMzUuMiAzNS40LTI0LjIgMjQuMi0xMS4xLTExLjEtNzcuMiA3Ny4yIDc3LjIgNzcuMiAyNi42LTI2LjYtNTMuMS01Mi45IDI0LjQtMjQuNCA3Ny4yIDc3LjItNzUgNzUuMnptOTktMi4ybC0zNS4yLTM1LjIgMjQuMS0yNC40IDExLjEgMTEuMSA3Ny4yLTc3LjItNzcuMi03Ny4yLTI2LjUgMjYuNSA1My4xIDUyLjktMjQuNCAyNC40LTc3LjItNzcuMiA3NS03NSAxMjUuNyAxMjUuNy0xMjUuNyAxMjUuNnoiXX0sZ2RlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3VkZmxhcmUiLGljb246WzY0MCw1MTIsW10sImUwN2QiLCJNNDA3LjkgMzE5LjlMMTc3LjEgMzE3Yy0uNyAwLTEuNC0uMi0yLS41cy0xLjItLjgtMS42LTEuNGMtLjQtLjYtLjctMS4zLS43LTJzMC0xLjQgLjItMi4xYy40LTEuMSAxLjEtMi4xIDIuMS0yLjhzMi4xLTEuMiAzLjMtMS4ybDIzMi45LTIuOWMyNy42LTEuMyA1Ny41LTIzLjYgNjgtNTAuOGwxMy4zLTM0LjVjLjQtLjkgLjUtMS45IC41LTIuOSAwLS41LS4xLTEuMS0uMi0xLjYtNy40LTMyLjItMjUtNjEuMS01MC4zLTgyLjNzLTU2LjctMzMuNy04OS43LTM1LjUtNjUuNiA3LjMtOTMgMjUuNy00OCA0NS4zLTU4LjggNzYuNWMtMTEuMy04LjUtMjQuOS0xMy4zLTM5LTEzLjdzLTI4IDMuNS0zOS44IDExLjQtMjAuOCAxOS4xLTI1LjkgMzIuMy01LjkgMjcuNi0yLjQgNDEuM2MtNTIuMyAxLjUtOTQuMiA0NC4xLTk0LjIgOTYuNSAwIDQuNyAuMyA5LjMgMSAxNCAuMiAxLjEgLjcgMi4xIDEuNSAyLjhzMS45IDEuMSAyLjkgMS4xbDQyNi4xIC4xYzAgMCAuMSAwIC4xIDAgMS4yIDAgMi4zLS40IDMuMy0xLjFzMS42LTEuNyAyLTIuOWwzLjMtMTEuM2MzLjktMTMuNCAyLjQtMjUuOC00LjEtMzQuOS02LTguNC0xNi4xLTEzLjMtMjguMi0xMy45em0xMDUuOS05OC44Yy0yLjEgMC00LjMgLjEtNi40IC4yLS44IC4xLTEuNSAuMy0yLjEgLjhzLTEgMS4xLTEuMyAxLjhsLTkuMSAzMS4yYy0zLjkgMTMuNC0yLjQgMjUuOCA0LjEgMzQuOSA2IDguNCAxNi4xIDEzLjMgMjguMiAxMy45bDQ5LjIgMi45Yy43IDAgMS40IC4yIDIgLjVzMS4xIC44IDEuNSAxLjRjLjQgLjYgLjcgMS4zIC44IDJzMCAxLjUtLjIgMi4xYy0uNCAxLjEtMS4xIDIuMS0yLjEgMi44cy0yLjEgMS4yLTMuMyAxLjJsLTUxLjEgMi45Yy0yNy44IDEuMy01Ny43IDIzLjYtNjguMSA1MC44bC0zLjcgOS42Yy0uMiAuNC0uMiAuOC0uMiAxLjNzLjIgLjggLjQgMS4yIC42IC43IC45IC45IC44IC4zIDEuMiAuM2MwIDAgLjEgMCAuMSAwbDE3NS45IDBjMSAwIDItLjMgMi44LS45czEuNC0xLjUgMS43LTIuNGMzLjEtMTEuMSA0LjctMjIuNSA0LjctMzQgMC02OS4zLTU2LjUtMTI1LjUtMTI2LjEtMTI1LjV6Il19LGJkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYWNrZXJyYW5rIixpY29uOls1MTIsNTEyLFtdLCJmNWY3IiwiTTQ3Ny45IDEyOEM0NjMuNCAxMDMgMjg1LjUgMCAyNTYuNSAwcy0yMDYuOSAxMDIuOC0yMjEuMyAxMjgtMTQuNSAyMzAuOCAwIDI1NiAxOTIuNCAxMjggMjIxLjMgMTI4IDIwNi44LTEwMi45IDIyMS4zLTEyOCAxNC41LTIzMSAwLTI1NnpNMzE2LjUgNDE0LjJjLTQgMC00MC45LTM1LjgtMzgtMzguNyAuOS0uOSA2LjMtMS41IDE3LjUtMS44IDAtMjYuMiAuNi02OC42IC45LTg2LjMgMC0yLS40LTMuNC0uNC01LjhsLTc5LjkgMGMwIDcuMS0uNSAzNi4yIDEuNCA3Mi45IC4yIDQuNS0xLjYgNi01LjcgNS45LTEwLjEgMC0yMC4zLS4xLTMwLjQtLjEtNC4xIDAtNS45LTEuNS01LjctNi4xIC45LTMzLjQgMy04NC0uMi0yMTIuN2wwLTMuMmMtOS43LS40LTE2LjQtMS0xNy4zLTEuOC0yLjktMi45IDM0LjUtMzguNyAzOC41LTM4LjdzNDEuMiAzNS44IDM4LjMgMzguN2MtLjkgLjktNy45IDEuNS0xNi44IDEuOGwwIDMuMmMtMi40IDI1LjgtMiA3OS42LTIuNiAxMDUuNGw4MC4zIDBjMC00LjYgLjQtMzQuNy0xLjItODMuNi0uMS0zLjQgMS01LjIgNC4yLTUuMiAxMS4xLS4xIDIyLjItLjEgMzMuMi0uMSAzLjUgMCA0LjYgMS43IDQuNSA1LjQtMy43IDE5MS4zLS43IDE3Ny45LS43IDIxMC4zIDguOSAuNCAxNi44IDEgMTcuNyAxLjggMi45IDIuOS0zMy42IDM4LjctMzcuNiAzOC43bDAgMHoiXX0sdmRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNreWF0bGFzIixpY29uOls2NDAsNTEyLFtdLCJmMjE2IiwiTTY0MCAzMjkuM2MwIDY1LjktNTIuNSAxMTQuNC0xMTcuNSAxMTQuNC0xNjUuOSAwLTE5Ni42LTI0OS43LTM1OS43LTI0OS43LTE0Ni45IDAtMTQ3LjEgMjEyLjIgNS42IDIxMi4yIDQyLjUgMCA5MC45LTE3LjggMTI1LjMtNDIuNSA1LjYtNC4xIDE2LjktMTYuMyAyMi44LTE2LjNzMTAuOSA1IDEwLjkgMTAuOWMwIDcuOC0xMy4xIDE5LjEtMTguNyAyNC4xLTQwLjkgMzUuNi0xMDAuMyA2MS4yLTE1NC43IDYxLjItODMuNCAuMS0xNTQtNTktMTU0LTE0NC45UzY3LjUgMTQ5LjYgMTUyLjggMTQ5LjZjMTg1LjMgMCAyMjIuNSAyNDUuOSAzNjEuOSAyNDUuOSA5OS45IDAgOTQuOC0xMzkuNyAzLjQtMTM5LjctMTcuNSAwLTM1IDExLjYtNDYuOSAxMS42LTguNCAwLTE1LjktNy4yLTE1LjktMTUuNiAwLTExLjYgNS4zLTIzLjcgNS4zLTM2LjMgMC02Ni42LTUwLjktMTE0LjctMTE2LjktMTE0LjctNTMuMSAwLTgwIDM2LjktODguOCAzNi45LTYuMiAwLTExLjItNS0xMS4yLTExLjIgMC01LjYgNC4xLTEwLjMgNy44LTE0LjQgMjUuMy0yOC44IDY0LjctNDMuNyAxMDIuOC00My43IDc5LjQgMCAxMzkuMSA1OC40IDEzOS4xIDEzNy44IDAgNi45LS4zIDEzLjctMS4yIDIwLjYgMTEuOS0zLjEgMjQuMS00LjcgMzUuOS00LjcgNjAuNyAwIDExMS45IDQ1LjMgMTExLjkgMTA3LjJ6Il19LHlkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZXNrcHJvIixpY29uOls0NDgsNTEyLFtdLCJmMzhmIiwiTTEyMiA0MDYuMmw4NCAwYzIzLjEgMCA0My45LTMuNSA2Mi42LTEwLjcgMTguNy03LjEgMzQuNy0xNy4xIDQ4LTMwLjEgMTMuMy0xMy40IDIzLjYtMjkuMiAzMC43LTQ3LjUgMy45LTkuNiA2LjgtMTkuOCA4LjYtMzAuNmw3My43IDBjLTIuNSAyMS4zLTcuNyA0MS4zLTE1LjUgNjAtMTEuMSAyNy4yLTI2LjkgNTAuOC00Ny4zIDcwLjktMjAgMTkuNi00NC4yIDM0LjgtNzIuNiA0NS40cy02MCAxNi05NC43IDE2bC0xNDkuOCAuMiAwLTE5Mi40IDcyLjMtLjIgMCAxMTguOHpNMTk5LjQgMzJjMzQuNyAwIDY2LjIgNS40IDk0LjcgMTYgMjguNSAxMC43IDUyLjkgMjYuMSA3My4zIDQ2LjIgMjAuNCAxOS42IDM2LjIgNDMuMiA0Ny4zIDcwLjkgNy41IDE4LjMgMTIuNCAzOC4xIDE0LjkgNTkuM2wtNzMuNy0uMWMtMS45LTEwLjUtNC43LTIwLjUtOC42LTI5LjktNy4xLTE4LjctMTcuMy0zNC41LTMwLjctNDcuNS0xMy4zLTEzLjQtMjkuMy0yMy42LTQ4LTMwLjgtMTguNi03LjEtMzkuNS0xMC43LTYyLjctMTAuN2wtODQgMCAwIDExOC44LTcyLjIgLjIgMC0xOTIuMyAxNDkuNy0uMXoiXX0seGRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlc29sdmluZyIsaWNvbjpbNTEyLDUxMixbXSwiZjNlNyIsIk0yODkuMiAyNzguMmM0Ni0xMy4zIDQ5LjYtMjMuNSA0NC00My40TDMyMiAxOTUuNWMtNi4xLTIwLjktMTguNC0yOC4xLTcxLjEtMTIuOGwtMTg4LjIgNTQuMSAyOC42IDk4LjYgMTk3LjktNTcuMnpNMjU2LjUgOEMxMzkuNCA4IDQxLjIgODguNyAxNS4yIDE5Ny41bDIyMS45LTYzLjljMzQuOC0xMC4yIDU0LjItMTEuNyA3OS4zLTguMiAzNi4zIDYuMSA1Mi43IDI1IDYxLjQgNTUuMmwxMC43IDM3LjhjOC4yIDI4LjEgMSA1MC42LTIzLjUgNzMuNi0xOS40IDE3LjQtMzEuMiAyNC41LTYxLjQgMzMuMmwtOTIuNiAyNi42IDIyMC40IDI3LjEgOS43IDM0LjItNDguMSAxMy4zLTI4Ni44LTM3LjMgMjMgODAuMkMxNjYgNDkxLjMgMjA5LjUgNTA0IDI1NS41IDUwNCAzOTIuNSA1MDQgNTA0IDM5Mi42IDUwNCAyNTUuNyA1MDUgMTE5LjQgMzkzLjUgOCAyNTYuNSA4ek00Ni4zIDM4OC42TDggMjU2LjhjMCA0OC41IDE0LjMgOTMuNCAzOC4zIDEzMS44eiJdfSx3ZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmxhY2tiZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjM3YiIsIk0xNjYgMTE2LjljMCAyMy40LTE2LjQgNDkuMS03Mi41IDQ5LjFsLTcwLjEgMCAyMS04OC44IDY3LjggMGM0Mi4xIDAgNTMuOCAyMy4zIDUzLjggMzkuN3pNMjkyLjIgNzcuMmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuNC0xMS42LTM5LjctNTMuNy0zOS43ek04OC44IDIwOC4xbC02Ny44IDAtMjEgODguOCA3MC4xIDBjNTYuMSAwIDcyLjUtMjMuNCA3Mi41LTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My44LTM5Ljd6bTE4MC4xIDBsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuNy0zOS43em0xODkuMy01My44bC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMSAuMS0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6bS0yOCAxMzcuOWwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6TTI0MC44IDM0NmwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTYuMSAwIDcwLjEtMjUuNyA3MC4xLTQ5LjEgLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43eiJdfSxNZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyaXBlLXMiLGljb246WzM4NCw1MTIsW10sImY0MmEiLCJNMTU1LjYgMTU0LjZjMC0yMi4zIDE4LjYtMzAuOSA0OC40LTMwLjkgNDMuNCAwIDk4LjUgMTMuMyAxNDEuOSAzNi43bDAtMTM0LjNjLTQ3LjMtMTguOS05NC41LTI2LjEtMTQxLjgtMjYuMS0xMTUuNyAwLTE5Mi44IDYwLjQtMTkyLjggMTYxLjQgMCAxNTcuOSAyMTYuOCAxMzIuMyAyMTYuOCAyMDAuNCAwIDI2LjQtMjIuOSAzNC45LTU0LjcgMzQuOS00Ny4yIDAtMTA4LjItMTkuNS0xNTYuMS00NS41bDAgMTI4LjVjNDkuMyAyMS4zIDEwMi4zIDMyLjMgMTU2IDMyLjQgMTE4LjYgMCAyMDAuMy01MSAyMDAuMy0xNTMuNiAwLTE3MC4yLTIxOC0xMzkuNy0yMTgtMjAzLjl6Il19LGNFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1iZWhhbmNlIixpY29uOls0NDgsNTEyLFsiYmVoYW5jZS1zcXVhcmUiXSwiZjFiNSIsIk0xNTUuMyAzMTguNGMxNy4yIDAgMzEuMi02LjEgMzEuMi0yNS40IDAtMTkuNy0xMS43LTI3LjQtMzAuMy0yNy41bC00NiAwIDAgNTIuOSA0NS4xIDB6bS01LjQtMTI5LjZsLTM5LjYgMCAwIDQ0LjggNDIuNyAwYzE1LjEgMCAyNS44LTYuNiAyNS44LTIyLjkgMC0xNy43LTEzLjctMjEuOS0yOC45LTIxLjl6bTEyOS41IDc0LjhsNjIuMiAwYy0xLjctMTguNS0xMS4zLTI5LjctMzAuNS0yOS43LTE4LjMgMC0zMC41IDExLjQtMzEuNyAyOS43ek0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHpNMzQ5LjUgMTg1bC03Ny44IDAgMC0xOC45IDc3LjggMCAwIDE4Ljl6TTE5My43IDI0My43YzIzLjYgNi43IDM1IDI3LjUgMzUgNTEuNiAwIDM5LTMyLjcgNTUuNy02Ny42IDU1LjlsLTkzLjEgMCAwLTE5MiA5MC41IDBjMzIuOSAwIDYxLjQgOS4zIDYxLjQgNDcuNSAwIDE5LjMtOSAyOC44LTI2LjIgMzd6bTExOC43LTM4LjZjNDMuNSAwIDY3LjYgMzQuMyA2Ny42IDc1LjQgMCAxLjYtLjEgMy4zLS4yIDUgMCAuOC0uMSAxLjUtLjEgMi4ybC0xMDAuMiAwYzAgMjIuMiAxMS43IDM1LjMgMzQuMSAzNS4zIDExLjYgMCAyNi41LTYuMiAzMC4yLTE4LjFsMzMuNyAwYy0xMC40IDMxLjktMzEuOSA0Ni44LTY1LjEgNDYuOC00My44IDAtNzEuMS0yOS43LTcxLjEtNzMgMC00MS44IDI4LjctNzMuNiA3MS4xLTczLjZ6Il19LHpkZT1jRSxrZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2VydmljZXN0YWNrIixpY29uOls1MTIsNTEyLFtdLCJmM2VjIiwiTTk2IDIxNmM4MS43IDEwLjIgMjczLjcgMTAyLjMgMzA0IDIzMkw4IDQ0OGM5OS41LTguMSAxODQuNS0xMzcgODgtMjMyek0xMjggNjRjMzIuMyAzNS42IDQ3LjcgODMuOSA0Ni40IDEzMy42IDgyLjkgMzMuNyAyMDcuMyAxMjMuNyAyMzMuNiAyNTAuNGw5NiAwQzQ2My4zIDIzMS45IDIzMC44IDc5LjUgMTI4IDY0eiJdfSxTZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicm9ja2V0Y2hhdCIsaWNvbjpbNTc2LDUxMixbXSwiZjNlOCIsIk0yODQuNSAyMjQuOGMtNi43IDAtMTMuMyAyLjEtMTguOSA1LjhzLTkuOSA5LjEtMTIuNSAxNS40LTMuMiAxMy4xLTEuOSAxOS43IDQuNiAxMi43IDkuNCAxNy40IDEwLjkgOCAxNy41IDkuMyAxMy41IC42IDE5LjctMiAxMS41LTcgMTUuMy0xMi42IDUuNy0xMi4yIDUuNy0xOC45YzAtOS4xLTMuNy0xNy44LTEwLjEtMjQuMnMtMTUuMS0xMC0yNC4yLTkuOXptLTExMC40IDBjLTYuNyAwLTEzLjMgMi4xLTE4LjkgNS44cy05LjkgOS4xLTEyLjUgMTUuNC0zLjIgMTMuMS0xLjkgMTkuNyA0LjYgMTIuNyA5LjQgMTcuNCAxMC45IDggMTcuNSA5LjMgMTMuNSAuNiAxOS43LTIgMTEuNS03IDE1LjMtMTIuNiA1LjctMTIuMiA1LjctMTguOWMwLTkuMS0zLjctMTcuOC0xMC4xLTI0LjJzLTE1LjEtMTAtMjQuMi0xMGwwIDB6bTIyMC45IDBhMzQuMSAzNC4xIDAgMSAwIC40IDY4LjIgMzQuMSAzNC4xIDAgMSAwIC0uNC02OC4yem0xNTMuOC01NS4zYy0xNS41LTI0LjItMzcuMy00NS42LTY0LjctNjMuNi01Mi45LTM0LjgtMTIyLjQtNTQtMTk1LjctNTQtMjQuMiAwLTQ4LjMgMi4xLTcyIDYuNC0xNC45LTE0LjMtMzEuNS0yNi42LTQ5LjUtMzYuNi02Ni44LTMzLjMtMTI1LjYtMjAuOS0xNTUuMy0xMC4yLTIuMyAuOC00LjMgMi4xLTUuOSAzLjlzLTIuNyAzLjktMy4zIDYuMi0uNSA0LjcgLjEgNy4xIDEuOCA0LjQgMy41IDYuMUMyNyA1Ni41IDYxLjYgOTkuMyA1My4xIDEzOC4zIDIwIDE3Mi4yIDIgMjEzIDIgMjU1LjYgMiAyOTkgMjAgMzM5LjggNTMuMSAzNzMuNyA2MS42IDQxMi43IDI3IDQ1NS42IDYgNDc3LjIgNC4zIDQ3OSAzLjIgNDgxLjEgMi41IDQ4My40cy0uNyA0LjctLjEgNyAxLjcgNC41IDMuMyA2LjIgMy42IDMuMSA1LjkgMy45YzI5LjcgMTAuNyA4OC41IDIzLjEgMTU1LjMtMTAuMiAxOC0xMCAzNC43LTIyLjMgNDkuNS0zNi42IDIzLjggNC4zIDQ3LjkgNi40IDcyIDYuNCA3My4zIDAgMTQyLjgtMTkuMiAxOTUuNy01NCAyNy40LTE4IDQ5LjEtMzkuNCA2NC43LTYzLjYgMTcuMy0yNi45IDI2LjEtNTUuOSAyNi4xLTg2LjEgMC0zMS04LjgtNjAtMjYuMS04Ni45bDAgMHpNMjg1LjQgNDA5LjljLTMwLjIgLjEtNjAuMy0zLjgtODkuNC0xMS41bC0yMC4xIDE5LjRjLTExLjIgMTAuNy0yMy42IDIwLTM3LjEgMjcuNi0xNi40IDguMi0zNC4yIDEzLjMtNTIuNSAxNC45IDEtMS44IDEuOS0zLjYgMi44LTUuNCAyMC4yLTM3LjEgMjUuNi03MC41IDE2LjMtMTAwLjEtMzMtMjYtNTIuOC01OS4yLTUyLjgtOTUuNCAwLTgzLjEgMTA0LjMtMTUwLjUgMjMyLjgtMTUwLjVzMjMyLjkgNjcuNCAyMzIuOSAxNTAuNWMwIDgzLjEtMTA0LjMgMTUwLjUtMjMyLjkgMTUwLjV6Il19LENkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWJlbCIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMCIsIk0yNTYuOSA1MDRjLTEzOS4zIDAtMjQ3LjUtMTE2LjItMjQzLjMtMjU0LjEgMi44LTc5LjIgNDMuMi0xNTIuMiAxMTYuNS0yMDAuNCAuMyAwIDEuOS0uNiAxLjEgLjgtNS44IDUuNS0xMTEuMyAxMjkuOC0xNC4xIDIyNi40IDQ5LjggNDkuNSA5MCAyLjUgOTAgMi41IDM4LjUtNTAuMS0uNi0xMjUuOS0uNi0xMjUuOS0xMC0yNC45LTQ1LjctNDAuMS00NS43LTQwLjFsMjguOC0zMS44YzI0LjQgMTAuNSA0My4yIDM4LjcgNDMuMiAzOC43IC44LTI5LjYtMjEuOS02MS40LTIxLjktNjEuNEwyNTUuNSA4IDI5OS44IDU4LjFjLTIwLjUgMjguOC0yMS45IDYyLjYtMjEuOSA2Mi42IDEzLjgtMjMgNDMuNS0zOS4zIDQzLjUtMzkuM2wyOC41IDMxLjhjLTI3LjQgOC45LTQ1LjQgMzkuOS00NS40IDM5LjktMTUuOCAyOC41LTI3LjEgODkuNCAuNiAxMjcuMyAzMi40IDQ0LjYgODcuNy0yLjggODcuNy0yLjggMTAyLjctOTEuOS0xMC41LTIyNS0xMC41LTIyNS02LjEtNS41IC44LTIuOCAuOC0yLjggNTAuMSAzNi41IDExNC42IDg0LjQgMTE2LjIgMjA0LjggMiAxNDUuNi05OS45IDI0OS40LTI0Mi40IDI0OS40eiJdfSxfZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdlYi1hd2Vzb21lIixpY29uOls0NDgsNTEyLFtdLCJlNjgzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIzNSAxNzcuNmw1MyA0Ni40IDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRjLTEyLjktLjQtMjMuMi0xMS0yMy4yLTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNCAyMTMuMSAxNzcuNmMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjYgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42eiJdfSxUZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGlua3RyZWUiLGljb246WzQ0OCw1MTIsW10sImU3ZDgiLCJNMTYgMTczLjRsMTI1LjggMC04OS40LTg1LjQgNDkuNS01MSA4NS4yIDg3LjggMC0xMjQuOCA3My45IDAgMCAxMjQuOCA4NS4yLTg3LjYgNDkuNCA1MC44LTg5LjQgODUuMiAxMjUuNyAwIDAgNzAuNS0xMjYuNCAwIDkwIDg3LjYtNDkuMyA0OS44LTEyMi4yLTEyMy0xMjIuMiAxMjMtNDkuNS00OS42IDkwLTg3LjYtMTI2LjQgMCAwLTcwLjV6TTE4Ni45IDM0NC44bDczLjkgMCAwIDE2Ny4yLTczLjkgMCAwLTE2Ny4yeiJdfSxMZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2ltcGx5YnVpbHQiLGljb246WzUxMiw1MTIsW10sImYyMTUiLCJNNDgxLjYgNjRsLTEwNiAwQzM2MS4xIDY0IDM0OSA3NS44IDM0OSA5MC4zbDAgMzkuNi0xODUuMyAwIDAtMzkuNmMwLTE0LjUtMTItMjYuMy0yNi42LTI2LjNsLTEwNiAwQzE2LjUgNjQgNC43IDc1LjggNC43IDkwLjNsMCAzMzEuNGMwIDE0LjUgMTEuOCAyNi4zIDI2LjYgMjYuM2w0NTAuNCAwYzE0LjggMCAyNi42LTExLjggMjYuNi0yNi4zbDAtMzMxLjRjLS4yLTE0LjUtMTItMjYuMy0yNi43LTI2LjN6TTE1MC41IDIyMi43YTY2LjUgNjYuNSAwIDEgMSAtLjMgMTMzLjEgNjYuNSA2Ni41IDAgMSAxIC4zLTEzMy4xem0yMTEuOSAuMWE2Ni41IDY2LjUgMCAxIDEgLjMgMTMyLjkgNjYuNSA2Ni41IDAgMSAxIC0uMy0xMzIuOXoiXX0sJGRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dWJiZXIiLGljb246WzQ0OCw1MTIsW10sImU1YzciLCJNMTM2LjUgMjk0LjJsNTguOCAyMi45YzkuMS0zNi44IDI1LjQtNjEuMSA1NS02MS4xIDQ5LjQgMCA3MS40IDYzLjYgMTQyLjQgNjMuNiAxNS42IDAgMzUuOS0yLjggNTUuMy0xMy4zbDAgNjEuN2MwIDYxLjgtNTAuNCAxMTItMTEyLjMgMTEyTDAgNDgwIDQxLjggNDI0IDAgMzY4IDQxLjcgMzEyIDAgMjU2LjEgNDEuOCAyMDAuMSAwIDE0NC4xIDQxLjggODggMCAzMiAzMzUuNyAzMkMzOTcuNiAzMiA0NDggODIuMyA0NDggMTQ0LjFsMCA1MS4zYy05LjIgMzYuMy0yNS45IDYwLjYtNTUgNjAuNi00OS42IDAtNzEuNi02My41LTE0Mi40LTYzLjUtMzUuOSAwLTk1LjIgMTQuNi0xMTQuMSAxMDEuNmwwIC4xeiJdfSxBZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwZXIiLGljb246WzY0MCw1MTIsW10sImYzNzEiLCJNNDIuMSAyMzkuMWMyMi4yIDAgMjkgMi44IDMzLjUgMTQuNmwuOCAwIDAtMjIuOWMwLTExLjMtNC44LTE1LjQtMTcuOS0xNS40LTExLjMgMC0xNC40IDIuNS0xNS4xIDEyLjhsLTM4LjYgMGMuMy0xMy45IDEuNS0xOS4xIDUuOC0yNC40IDcuMy04LjggMTguOS0xMS44IDQ2LjEtMTEuOCAzMyAwIDQ3LjEgNSA1My45IDE4LjkgMiA0LjMgNCAxNS42IDQgMjMuN2wwIDc2LjMtMzguMyAwIDEuMy0xOS4xLTEgMGMtNS4zIDE1LjYtMTMuNiAyMC40LTM1LjUgMjAuNC0zMC4zIDAtNDEuMS0xMC4xLTQxLjEtMzcuMyAwLTI1LjIgMTIuMy0zNS44IDQyLjEtMzUuOHptMTcuMSA0OC4xYzEzLjEgMCAxNi45LTMgMTYuOS0xMy40IDAtOS4xLTQuMy0xMS42LTE5LjYtMTEuNi0xMy4xIDAtMTcuOSAzLTE3LjkgMTIuMS0uMSAxMC40IDMuNyAxMi45IDIwLjYgMTIuOXpNMTM3IDE5Mi4zbDM4LjMgMC0xLjUgMjAuNiAuOCAwYzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjIgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4ybC0uOCAwIDAgNzAuMy0zOS41IDAgMC0xNjl6TTIxNy45IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTU3LjktNjAuN2wzOC4zIDAtMS41IDIwLjYgLjggMGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4zIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmwtLjggMCAwIDcwLjMtMzkuNSAwIDAtMTY5IC4xIDB6TTM1Ni43IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTUzLjgtMy44YzAtMjUuNCAzLjMtMzcuOCAxMi4zLTQ1LjggOC44LTguMSAyMi4yLTExLjMgNDUuMS0xMS4zIDQyLjggMCA1NS43IDEyLjggNTUuNyA1NS43bDAgMTEuMS03NS4zIDBjLS4zIDItLjMgNC0uMyA0LjggMCAxNi45IDQuNSAyMS45IDIwLjEgMjEuOSAxMy45IDAgMTcuOS0zIDE3LjktMTMuOWwzNy41IDAgMCAyLjNjMCA5LjgtMi41IDE4LjktNi44IDI0LjctNy4zIDkuOC0xOS42IDEzLjYtNDQuMyAxMy42LTI3LjUgMC00MS42LTMuMy01MC42LTEyLjMtOC41LTguNS0xMS4zLTIxLjMtMTEuMy01MC44em03Ni40LTExLjZjLS4zLTEuOC0uMy0zLjMtLjMtMy44IDAtMTIuMy0zLjMtMTQuNi0xOS42LTE0LjYtMTQuNCAwLTE3LjEgMy0xOC4xIDE1LjFsLS4zIDMuMyAzOC4zIDB6bTU1LjYtNDUuM2wzOC4zIDAtMS44IDE5LjkgLjcgMGM2LjgtMTQuOSAxNC40LTIwLjIgMjkuNy0yMC4yIDEwLjggMCAxOS4xIDMuMyAyMy40IDkuMyA1LjMgNy4zIDYuOCAxNC40IDYuOCAzNCAwIDEuNSAwIDUgLjIgOS4zbC0zNSAwYy4zLTEuOCAuMy0zLjMgLjMtNCAwLTE1LjQtMi0xOS40LTEwLjMtMTkuNC02LjMgMC0xMC44IDMuMy0xMy4xIDkuMy0xIDMtMSA0LjMtMSAxMi4zbDAgNjgtMzguMyAwIDAtMTE4LjUgLjEgMHoiXX0sRGRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1zY2hvbGFyIixpY29uOls1MTIsNTEyLFtdLCJlNjNiIiwiTTM5MC45IDI5OC41czAgLjEgLjEgLjFjOS4yIDE5LjQgMTQuNCA0MS4xIDE0LjQgNjQtLjEgODIuNS02Ni45IDE0OS40LTE0OS40IDE0OS40UzEwNi43IDQ0NS4xIDEwNi43IDM2Mi43YzAtMjIuOSA1LjItNDQuNiAxNC40LTY0IDEuNy0zLjYgMy42LTcuMiA1LjYtMTAuNyA0LjQtNy42IDkuNC0xNC43IDE1LTIxLjMgMjcuNC0zMi42IDY4LjUtNTMuMyAxMTQuNC01My4zIDMzLjYgMCA2NC42IDExLjEgODkuNiAyOS45IDkuMSA2LjkgMTcuNCAxNC43IDI0LjggMjMuNSA1LjYgNi42IDEwLjYgMTMuOCAxNSAyMS4zIDIgMy40IDMuOCA3IDUuNSAxMC41bC0uMS0uMXptMjYuNC0xOC44Yy0zMC4xLTU4LjQtOTEtOTguNC0xNjEuMy05OC40cy0xMzEuMiA0MC0xNjEuMyA5OC40bC05NC43LTc3IDI1Ni0yMDIuNyAyNTYgMjAyLjctOTQuNyA3Ny4xIDAtLjF6Il19LEVkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YXJuIixpY29uOls1MTIsNTEyLFtdLCJmN2UzIiwiTTQwMS45IDM0NS4yYy0zOSA5LjMtNDguNCAzMi4xLTEwNCA0Ny40IDAgMC0yLjcgNC0xMC40IDUuOC0xMy40IDMuMy02My45IDYtNjguNSA2LjEtMTIuNCAuMS0xOS45LTMuMi0yMi04LjItNi40LTE1LjMgOS4yLTIyIDkuMi0yMi04LjEtNS05LTkuOS05LjgtOC4xLTIuNCA1LjgtMy42IDIwLjEtMTAuMSAyNi41LTguOCA4LjktMjUuNSA1LjktMzUuMyAuOC0xMC44LTUuNyAuOC0xOS4yIC44LTE5LjJzLTUuOCAzLjQtMTAuNS0zLjZjLTYtOS4zLTE3LjEtMzcuMyAxMS41LTYyLTEuMy0xMC4xLTQuNi01My43IDQwLjYtODUuNiAwIDAtMjAuNi0yMi44LTEyLjktNDMuMyA1LTEzLjQgNy0xMy4zIDguNi0xMy45IDUuNy0yLjIgMTEuMy00LjYgMTUuNC05LjEgMjAuNi0yMi4yIDQ2LjgtMTggNDYuOC0xOHMxMi40LTM3LjggMjMuOS0zMC40YzMuNSAyLjMgMTYuMyAzMC42IDE2LjMgMzAuNnMxMy42LTcuOSAxNS4xLTVjOC4yIDE2IDkuMiA0Ni41IDUuNiA2NS4xLTYuMSAzMC42LTIxLjQgNDcuMS0yNy42IDU3LjUtMS40IDIuNCAxNi41IDEwIDI3LjggNDEuMyAxMC40IDI4LjYgMS4xIDUyLjcgMi44IDU1LjMgLjggMS40IDEzLjcgLjggMzYuNC0xMy4yIDEyLjgtNy45IDI4LjEtMTYuOSA0NS40LTE3IDE2LjctLjUgMTcuNiAxOS4yIDQuOSAyMi4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00MTYuNyA3NS4yYy0xLjctMTMuNi0xMy4yLTIzLTI4LTIyLjgtMjIgLjMtNDAuNSAxMS43LTUyLjggMTkuMi00LjggMy04LjkgNS4yLTEyLjQgNi44IDMuMS00NC41LTIyLjUtNzMuMS0yOC43LTc5LjQgNy44LTExLjMgMTguNC0yNy44IDIzLjQtNTMuMiA0LjMtMjEuNyAzLTU1LjUtNi45LTc0LjUtMS42LTMuMS03LjQtMTEuMi0yMS03LjQtOS43LTIwLTEzLTIyLjEtMTUuNi0yMy44LTEuMS0uNy0yMy42LTE2LjQtNDEuNCAyOC0xMi4yIC45LTMxLjMgNS4zLTQ3LjUgMjIuOC0yIDIuMi01LjkgMy44LTEwLjEgNS40bC4xIDBjLTguNCAzLTEyLjMgOS45LTE2LjkgMjIuMy02LjUgMTcuNCAuMiAzNC42IDYuOCA0NS43LTE3LjggMTUuOS0zNyAzOS44LTM1LjcgODIuNS0zNCAzNi0xMS44IDczLTUuNiA3OS42LTEuNiAxMS4xIDMuNyAxOS40IDEyIDIzLjggMTIuNiA2LjcgMzAuMyA5LjYgNDMuOSAyLjggNC45IDUuMiAxMy44IDEwLjEgMzAgMTAuMSA2LjggMCA1OC0yLjkgNzIuNi02LjUgNi44LTEuNiAxMS41LTQuNSAxNC42LTcuMSA5LjgtMy4xIDM2LjgtMTIuMyA2Mi4yLTI4LjcgMTgtMTEuNyAyNC4yLTE0LjIgMzcuNi0xNy40IDEyLjktMy4yIDIxLTE1LjEgMTkuNC0yOC4yeiJdfSxQZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RhY2stb3ZlcmZsb3ciLGljb246WzM4NCw1MTIsW10sImYxNmMiLCJNMjkxIDMxMWwtMTk1LjctNDEuMy04LjIgMzkuMyAxOTUuNyA0MSA4LjItMzl6bTUxLTg3TDE4OC41IDk1LjcgMTYzIDEyNi41IDMxNi41IDI1NC44IDM0MiAyMjR6bS0zMS4yIDM5LjdMMTI5LjUgMTc5IDExMi44IDIxNS41IDI5NCAzMDAgMzEwLjggMjYzLjd6TTI2Mi4zIDMybC0zMiAyNCAxMTkuMyAxNjAuMyAzMi0yNC0xMTkuMy0xNjAuM3ptMjAuNSAzMjhsLTIwMCAwIDAgMzkuNyAyMDAgMCAwLTM5Ljd6bTM5LjcgODBsLTI3OS41IDAgMC0xMjAtNDAgMCAwIDE2MCAzNTkuNSAwIDAtMTYwLTQwIDAgMCAxMjB6Il19LElkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVldG9vdGgiLGljb246WzM4NCw1MTIsW10sImYyOTMiLCJNMjYwLjYgMTcxLjFsLTQyLjkgNDIuOS0uMy04NiA0My4yIDQzLjF6TTIxNy40IDM5MC45bDQzLjEtNDMuMS00Mi45LTQyLjktLjIgODZ6TTM4NCAyNTkuNEMzODQgNDY1IDMxMi4xIDUxMiAxOTguOSA1MTJTMCA0NjUgMCAyNTkuNCA4My40IDAgMTk2LjYgMCAzODQgNTMuOSAzODQgMjU5LjR6bS0xNTguNSAwbDc5LjQtODguNi0xMjUuMS0xMzQuMyAwIDE3Ni45LTczLjgtNzMuOC0yNyAyNi45IDkyLjcgOTMtOTIuNyA5MyAyNi45IDI2LjkgNzMuOC03My44IDIuMyAxNzAgMTI3LjQtMTI3LjUtODMuOS04OC43eiJdfSxOZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYy1qcCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYSIsIk0yNTUuNyA4QzExMS42IDggOCAxMjQuOCA4IDI1NiA4IDM5Mi40IDExOS44IDUwNCAyNTUuNyA1MDQgMzg1LjkgNTA0IDUwNCA0MDMuMiA1MDQgMjU2IDUwNCAxMTcuMiAzOTYuNSA4IDI1NS43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjEuMSAzLTQxLjIgOS02MC4zbDEyNyA1Ni41LTI3LjkgMCAwIDM4LjYgNTguMSAwIDUuNyAxMS44IDAgMTguNy02My44IDAgMCAzOC43IDYzLjggMCAwIDU2IDYxLjcgMCAwLTU2IDY0LjIgMCAwLTM1LjcgODEgMzYuMWMtMS41IDIuMi01Ny4xIDk4LjMtMTc1LjIgOTguM3ptODcuNi0xMzcuM2wtNTcuNiAwIDAtMTguNyAyLjktNS42IDU0LjcgMjQuM3ptNi41LTUxLjRsMC0xNy44LTM4LjYgMCA2My0xMTYtNjUuOCAwLTQzLjQgOTYtMjMtMTAuMi0zOS42LTg1LjctNjUuOCAwIDI3LjMgNTEtODEuOS0zNi41YzI3LjgtNDQuMSA4Mi42LTk4LjEgMTczLjctOTguMSAxMTIuOCAwIDIwMyA5MCAyMDMgMjAzLjQgMCAyMS0yLjcgNDAuNi03LjkgNTlMMzUwLjQgMjcweiJdfSxGZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkZGl0IixpY29uOls1MTIsNTEyLFtdLCJmMWExIiwiTTAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NiAzOTcuNCA1MTIgMjU2IDUxMkwzNy4xIDUxMmMtMTMuNyAwLTIwLjUtMTYuNS0xMC45LTI2LjJMNzUgNDM3QzI4LjcgMzkwLjcgMCAzMjYuNyAwIDI1NnpNMzQ5LjYgMTUzLjZjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdzLTE5LjEtNDIuNy00Mi43LTQyLjdjLTIwLjYgMC0zNy44IDE0LjYtNDEuOCAzNC0zNC41IDMuNy02MS40IDMzLTYxLjQgNjguNGwwIC4yYy0zNy41IDEuNi03MS44IDEyLjMtOTkgMjkuMS0xMC4xLTcuOC0yMi44LTEyLjUtMzYuNS0xMi41LTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDI0IDE0LjEgNDQuNiAzNC40IDU0LjEgMiA2OS40IDc3LjYgMTI1LjIgMTcwLjYgMTI1LjJzMTY4LjctNTUuOSAxNzAuNi0xMjUuM2MyMC4yLTkuNiAzNC4xLTMwLjIgMzQuMS01NCAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjgtMTMuNyAwLTI2LjMgNC42LTM2LjQgMTIuNC0yNy40LTE3LTYyLjEtMjcuNy0xMDAtMjkuMWwwLS4yYzAtMjUuNCAxOC45LTQ2LjUgNDMuNC00OS45IDQuNCAxOC44IDIxLjMgMzIuOCA0MS41IDMyLjhsLjEgLjJ6TTE3Ny4xIDI0Ni45YzE2LjcgMCAyOS41IDE3LjYgMjguNSAzOS4zcy0xMy41IDI5LjYtMzAuMyAyOS42LTMxLjQtOC44LTMwLjQtMzAuNSAxNS40LTM4LjMgMzIuMS0zOC4zbC4xLS4xem0xOTAuMSAzOC4zYzEgMjEuNy0xMy43IDMwLjUtMzAuNCAzMC41cy0yOS4zLTcuOS0zMC4zLTI5LjYgMTEuOC0zOS4zIDI4LjUtMzkuMyAzMS4yIDE2LjYgMzIuMSAzOC4zbC4xIC4xem0tNDguMSA1Ni43Yy0xMC4zIDI0LjYtMzQuNiA0MS45LTYzIDQxLjlzLTUyLjctMTcuMy02My00MS45Yy0xLjItMi45IC44LTYuMiAzLjktNi41IDE4LjQtMS45IDM4LjMtMi45IDU5LjEtMi45czQwLjcgMSA1OS4xIDIuOWMzLjEgLjMgNS4xIDMuNiAzLjkgNi41eiJdfSxPZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29ubmVjdGRldmVsb3AiLGljb246WzU3Niw1MTIsW10sImYyMGUiLCJNNTUwLjggMjQxbC01MC4xLTg2LjhjMS4xLTIuMSAxLjktNC42IDEuOS03LjIgMC04LTYuNy0xNC43LTE0LjctMTVMNDMyLjQgMzYuMWMuNS0xLjYgMS4xLTMuMiAxLjEtNC44IDAtOC42LTctMTUuMy0xNS4zLTE1LjMtNC44IDAtOC44IDIuMS0xMS44IDUuNmwtMTA2LjYgMGMtMi43LTMuNS02LjctNS42LTExLjUtNS42cy04LjggMi4xLTExLjUgNS42bC0xMDYuMSAwYy0yLjktMy41LTctNS42LTExLjgtNS42LTguMyAwLTE1LjMgNi43LTE1LjMgMTUuMyAwIDEuNiAuNSAzLjUgMS4xIDQuOGwtNTYgOTcuMmMtNS40IDIuNC05LjEgNy41LTkuMSAxMy43IDAgLjUgLjMgMS4xIC4zIDEuNkwyNi42IDI0MC43Yy03LjIgMS4zLTEyLjYgNy41LTEyLjYgMTUgMCA3LjIgNS4xIDEzLjQgMTIuMSAxNWw1NS4yIDk1LjRjLS41IDEuNi0uOCAyLjktLjggNC44IDAgNy4yIDUuMSAxMy40IDEyLjEgMTQuN2w1MS43IDg5LjdjLS41IDEuNi0xLjEgMy41LTEuMSA1LjQgMCA4LjYgNyAxNS4zIDE1LjMgMTUuMyA0LjggMCA4LjgtMi4xIDExLjUtNS40bDEwNi45IDBjMi43IDMuMiA3IDUuNCAxMS41IDUuNHM4LjgtMi4xIDExLjUtNS40bDEwNy4xIDBjMi43IDIuOSA2LjcgNC44IDExIDQuOCA4LjYgMCAxNS4zLTcgMTUuMy0xNS4zIDAtMS42LS4zLTIuOS0uOC00LjNsNTEuNy05MC4zYzctMS4zIDEyLjEtNy41IDEyLjEtMTQuNyAwLTEuNi0uMy0zLjItLjgtNC44bDU0LjktOTUuNGM3LTEuMyAxMi4zLTcuNSAxMi4zLTE1IDAtNy4yLTUuMS0xMy40LTExLjgtMTQuN3ptLTM5NyAyMDkuN2wtNDMuNy03NS44IDQzLjcgMCAwIDc1Ljh6bTAtODMuOGwtNDMuNyAwYy0uMy0xLjEtLjgtMi4xLTEuMy0zLjJsNDUtNDcuNCAwIDUwLjZ6bTAtNjIuNGwtNTAuNCA1My4zYy0xLjMtLjUtMi43LTEuMy00LTEuNkw0My43IDI1OS44Yy41LTEuMyAuNS0yLjcgLjUtNHMwLTIuNC0uMy0zLjVsNTItOTBjMi43LS4zIDUuNC0xLjEgNy44LTIuN2w1MC4xIDUyIDAgOTIuOXptMC0xMDIuM0wxMDggMTU0LjhjMS4zLTIuMSAyLjEtNC44IDIuMS03LjggMC0uMy0uMy0uOC0uMy0xLjFsNDMuOS0xNS44IDAgNzIuMXptMC04MC42bC00My43IDE1LjggNDMuNy03NS41IDAgNTkuN3ptMzI2LjUgMzkuMWwuOCAxLjMtMzUuNCAxNjcuMS02My44LTY3LjIgOTgtMTAxLjUgLjMgLjN6TTI5Mi4xIDM1NS4xbDExLjUgMTEuOC0yMi44IDAgMTEuMy0xMS44em0tLjMtMTEuM2wtODMuMy04NS40IDc5LjYtODQuNCA4MyA4Ny42LTc5LjMgODIuMnptNS40IDUuOWw3OS4zLTgyLjIgNjcuNSA3MS4zLTUuOSAyOC4xLTEyNCAwLTE2LjktMTcuMXpNNDEwLjcgNDQuNGMxLjEgLjUgMi4xIDEuMSAzLjUgMS4zbDU3LjkgMTAwLjcgMCAuNWMwIDIuOSAuOCA1LjYgMi4xIDcuOGwtOTcuNSAxMDEuMi04My04Ny42IDExNy4xLTEyNHptLTkuMS0yLjFsLTExMy42IDEyMC4zLTU3LjEtNjAuMyAxNjYuMy02MCA0LjMgMHptLTEyMy41IDBjMi43IDIuNyA2LjIgNC4zIDEwLjIgNC4zczcuNS0xLjYgMTAuMi00LjNsNzUgMC0xNDguNCA1My42LTUwLjktNTMuNiAxMDMuOSAwek0xNjEuOSA0Ny45bDEuMS0yLjFjLjktLjIgMS44LS41IDIuNy0uOGw1MS4yIDUzLjgtNTQuOSAxOS44IDAtNzAuN3ptMCA3OS4zbDYwLjgtMjIgNTkuNyA2My4yLTc5LjYgODQuMS00MS00Mi4xIDAtODMuM3ptMCA5Mi43bDM2LjQgMzcuOC0zNi40IDM4LjMgMC03Ni4xem0wIDg3LjlsNDIuMS00NC41IDgyLjggODYtMTcuMSAxNy43LTEwNy43IDAgMC01OS4yem03IDE2Mi4xYy0xLjYtMS42LTMuNS0yLjctNS45LTMuNWwtMS4xLTEuNiAwLTg5LjcgOTkuOSAwLTkxLjYgOTQuOC0xLjMgMHptMTI5LjkgMGMtMi43LTIuNC02LjQtNC4zLTEwLjQtNC4zcy03LjggMS45LTEwLjQgNC4zbC05Ni40IDAgOTEuNi05NC44IDM4LjMgMCA5MS42IDk0LjgtMTA0LjIgMHptMTIwLTExLjhsLTQuMyA3LjVjLTEuMyAuMy0yLjQgLjgtMy41IDEuM2wtODkuMi05MS45IDExNC40IDAtMTcuNCA4M3ptMTIuOS0yMi4ybDEyLjktNjAuOCAyMiAwLTM0LjggNjAuOHptMzQuOC02OC44bC0yMC40IDAgNC42LTIxLjIgMTcuMSAxOC4yYy0uNSAuOC0xLjEgMS45LTEuMyAyLjl6bTY2LjItMTA3LjRsLTU1LjQgOTYuN2MtMS4zIC41LTIuNyAxLjEtNCAxLjlsLTIwLjYtMjIgMzQuNi0xNjMuOSA0NS44IDc5LjNjLS4zIDEuMy0uOCAyLjctLjggNC4zIDAgMS4zIC4zIDIuNCAuNSAzLjd6Il19LFJkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXNlYXJjaGdhdGUiLGljb246WzQ0OCw1MTIsW10sImY0ZjgiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjYyLjIgMzY2LjRjLTYuNiAzLTMzLjIgNi01MC0xNC4yLTkuMi0xMC42LTI1LjMtMzMuMy00Mi4yLTYzLjYtOC45IDAtMTQuNyAwLTIxLjQtLjZsMCA0Ni40YzAgMjMuNSA2IDIxLjIgMjUuOCAyMy45bDAgOC4xYy02LjktLjMtMjMuMS0uOC0zNS42LS44LTEzLjEgMC0yNi4xIC42LTMzLjYgLjhsMC04LjFjMTUuNS0yLjkgMjItMS4zIDIyLTIzLjlsMC0xMDkuNGMwLTIyLjYtNi40LTIxLTIyLTIzLjlsMC04LjFjMjUuOCAxIDUzLjEtLjYgNzAuOS0uNiAzMS43IDAgNTUuOSAxNC40IDU1LjkgNDUuNiAwIDIxLjEtMTYuNyA0Mi4yLTM5LjIgNDcuNSAxMy42IDI0LjIgMzAgNDUuNiA0Mi4yIDU4LjkgNy4yIDcuOCAxNy4yIDE0LjcgMjcuMiAxNC43bDAgNy4zem0yMi45LTEzNWMtMjMuMyAwLTMyLjItMTUuNy0zMi4yLTMyLjJsMC0zMi4yYzAtMTIuMiA4LjgtMzAuNCAzNC0zMC40czMwLjQgMTcuOSAzMC40IDE3LjlsLTEwLjcgNy4ycy01LjUtMTIuNS0xOS43LTEyLjVjLTcuOSAwLTE5LjcgNy4zLTE5LjcgMTkuN2wwIDI2LjhjMCAxMy40IDYuNiAyMy4zIDE3LjkgMjMuMyAxNC4xIDAgMjEuNS0xMC45IDIxLjUtMjYuOGwtMTcuOSAwIDAtMTAuNyAzMC40IDBjMCAyMC41IDQuNyA0OS45LTM0IDQ5Ljl6TTE2OC42IDI3Ni4xYy05LjQgMC0xMy42LS4zLTIwLS44bDAtNjkuN2M2LjQtLjYgMTUtLjYgMjIuNS0uNiAyMy4zIDAgMzcuMiAxMi4yIDM3LjIgMzQuNSAwIDIxLjktMTUgMzYuNi0zOS43IDM2LjZ6Il19LEJkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaWduYWwtbWVzc2VuZ2VyIixpY29uOls1MTIsNTEyLFtdLCJlNjYzIiwiTTI1NiAwYy0xMy4zIDAtMjYuMyAxLTM5LjEgM2wzLjcgMjMuN0MyMzIuMSAyNC45IDI0NCAyNCAyNTYgMjRzMjMuOSAuOSAzNS40IDIuN0wyOTUuMSAzQzI4Mi4zIDEgMjY5LjMgMCAyNTYgMHptNjAuOCA3LjNsLTUuNyAyMy4zYzIzLjQgNS43IDQ1LjQgMTQuOSA2NS40IDI3LjFsMTIuNS0yMC41Yy0yMi4xLTEzLjQtNDYuNC0yMy42LTcyLjItMjkuOXptNzYuNCA2MS42YzE5LjEgMTQgMzYgMzAuOSA1MC4xIDUwLjFsMTkuNC0xNC4yQzQ0NyA4My42IDQyOC40IDY1IDQwNy4zIDQ5LjVMMzkzLjEgNjguOHptODEuNyA1NC4ybC0yMC41IDEyLjVjMTIuMiAyMCAyMS40IDQyIDI3LjEgNjUuNGwyMy4zLTUuN2MtNi4zLTI1LjgtMTYuNS01MC4xLTI5LjktNzIuMnptMTAuNSA5Ny41YzEuOCAxMS41IDIuNyAyMy40IDIuNyAzNS40cy0uOSAyMy45LTIuNyAzNS40bDIzLjcgMy43YzEuOS0xMi43IDMtMjUuOCAzLTM5LjFzLTEtMjYuMy0zLTM5LjFsLTIzLjcgMy43em0tMzEgMTU1LjlsMjAuNSAxMi41YzEzLjQtMjIuMSAyMy42LTQ2LjQgMjkuOS03Mi4ybC0yMy4zLTUuN2MtNS43IDIzLjQtMTQuOSA0NS40LTI3LjEgNjUuNHptOC4yIDMwLjhsLTE5LjQtMTQuMmMtMTQgMTkuMS0zMC45IDM2LTUwLjEgNTAuMWwxNC4yIDE5LjRjMjEuMS0xNS41IDM5LjgtMzQuMSA1NS4yLTU1LjJ6bS04Ni4xIDQ3Yy0yMCAxMi4yLTQyIDIxLjQtNjUuNCAyNy4xbDUuNyAyMy4zYzI1LjgtNi4zIDUwLjEtMTYuNSA3Mi4yLTI5LjlsLTEyLjUtMjAuNXpNMjk1LjEgNTA5bC0zLjctMjMuN0MyNzkuOSA0ODcuMSAyNjggNDg4IDI1NiA0ODhzLTIzLjktLjktMzUuNC0yLjdMMjE2LjkgNTA5YzEyLjcgMS45IDI1LjggMyAzOS4xIDNzMjYuMy0xIDM5LjEtM3ptLTk0LjEtMjcuNmMtMTcuNi00LjMtMzQuNC0xMC42LTUwLjEtMTguNmwtNy44LTQtMzIuOCA3LjcgNS41IDIzLjQgMjQuMy01LjdjMTcuNCA4LjkgMzUuOSAxNS44IDU1LjMgMjAuNWw1LjctMjMuM3pNOTUuNCA0OTQuNkw5MCA0NzEuMyA0OC4zIDQ4MWMtMTAuNCAyLjQtMTkuNy02LjktMTcuMy0xNy4zbDkuNy00MS42LTIzLjQtNS41LTkuNyA0MS42QzEuMiA0ODYgMjYgNTEwLjggNTMuOCA1MDQuNGw0MS42LTkuN3ptLTUwLTkyLjlsNy43LTMyLjgtNC03LjhjLTgtMTUuNy0xNC4zLTMyLjUtMTguNi01MC4xTDcuMyAzMTYuN0MxMiAzMzYuMSAxOC45IDM1NC43IDI3LjcgMzcybC01LjcgMjQuMyAyMy40IDUuNXpNMyAyOTUuMWwyMy43LTMuN0MyNC45IDI3OS45IDI0IDI2OCAyNCAyNTZzLjktMjMuOSAyLjctMzUuNEwzIDIxNi45QzEgMjI5LjcgMCAyNDIuNyAwIDI1NnMxIDI2LjMgMyAzOS4xem0yNy42LTk0LjFjNS43LTIzLjQgMTQuOS00NS40IDI3LjEtNjUuNEwzNy4yIDEyMy4xYy0xMy40IDIyLjEtMjMuNiA0Ni40LTI5LjkgNzIuMmwyMy4zIDUuN3ptMTguOS05Ni4ybDE5LjQgMTQuMmMxNC0xOS4xIDMwLjktMzYgNTAuMS01MC4xTDEwNC43IDQ5LjVDODMuNiA2NSA2NSA4My42IDQ5LjUgMTA0Ljd6bTg2LjEtNDdjMjAtMTIuMiA0Mi0yMS40IDY1LjQtMjcuMUwxOTUuMiA3LjNjLTI1LjggNi4zLTUwLjEgMTYuNS03Mi4yIDI5LjlsMTIuNSAyMC41ek0yNTYgNDY0YzExNC45IDAgMjA4LTkzLjEgMjA4LTIwOFMzNzAuOSA0OCAyNTYgNDggNDggMTQxLjEgNDggMjU2YzAgMzYuNCA5LjQgNzAuNyAyNS44IDEwMC41IDEuNiAyLjkgMi4xIDYuMiAxLjQgOS40bC0yMS42IDkyLjUgOTIuNS0yMS42YzMuMi0uNyA2LjUtLjIgOS40IDEuNCAyOS44IDE2LjUgNjQgMjUuOCAxMDAuNSAyNS44eiJdfSxIZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZjE2OCIsIk0xNjIuNyAyMTBjLTEuOCAzLjMtMjUuMiA0NC40LTcwLjEgMTIzLjUtNC45IDguMy0xMC44IDEyLjUtMTcuNyAxMi41TDkuOCAzNDZjLTcuNyAwLTEyLjEtNy41LTguNS0xNC40bDY5LTEyMS4zYy4yIDAgLjItLjEgMC0uM0wyNi40IDEzNC40Yy00LjMtNy44IC4zLTE0LjEgOC41LTE0LjFsNjUuMSAwYzcuMyAwIDEzLjMgNC4xIDE4IDEyLjJMMTYyLjcgMjEwek0zODIuNiA0Ni4xbC0xNDQgMjUzIDAgLjMgOTEuNiAxNjYuNmMzLjkgNy4xIC4yIDE0LjEtOC41IDE0LjFsLTY1LjIgMGMtNy42IDAtMTMuNi00LTE4LTEyLjJMMTQ2LjEgMjk5LjRjMy4zLTUuOCA1MS41LTkwLjggMTQ0LjgtMjU1LjIgNC42LTguMSAxMC40LTEyLjIgMTcuNS0xMi4ybDY1LjcgMGM4IDAgMTIuMyA2LjcgOC41IDE0LjF6Il19LGRFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1qcyIsaWNvbjpbNDQ4LDUxMixbImpzLXNxdWFyZSJdLCJmM2I5IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xODAuOSA0NDQuOWMtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVMMTUyIDM4NS43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNWwwLTE0My4xIDQyLjEgMCAwIDE0My43YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41em04NS44LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjYtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzeiJdfSxxZGU9ZEUsVmRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvbnRpY29ucyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI4MCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0xODcgMTcyLjljLTE4LjQgMC0xOSA5LjktMTkgMjcuNGwwIDIzLjNjMCAyLjQtMy41IDQuNC0uNiA0LjRsNjcuNCAwLTExLjEgMzcuMy01NS43IDAgMCAxMTIuOWMwIDUuOC0yIDYuNyAzLjIgNy4zbDQzLjUgNC4xIDAgMjUuMS0xMzAuNyAwIDAtMjUuNyAyMS4zLTJjNS4yLS42IDYuNy0yLjMgNi43LTcuOWwwLTExMS40YzAtMi4zLTIuOS0yLjMtNS44LTIuM2wtMjIuMiAwIDAtMzcuNCAyOCAwIDAtMjFjMC00OS42IDI2LjUtNzAgNzcuMy03MCAzNC4xIDAgNjQuNyA4LjIgNjQuNyA1Mi44bC01MC43IDYuMWMuMy0xOC43LTQuNC0yMy0xNi4zLTIzem03NC4zIDI0MS44bDAtMjUuMSAyMC40LTIuNmM1LjItLjYgNy42LTEuNyA3LjYtNy4zbDAtMTA3LjljMC00LjEtMi45LTYuNy02LjctNy45bC0yNC4yLTYuNCA2LjctMjkuNSA4MC4yIDAgMCAxNTEuN2MwIDUuOC0yLjYgNi40IDIuOSA3LjNsMTUuNyAyLjYgMCAyNS4xLTEwMi42IDB6bTgwLjgtMjU1LjVsOSAzMy4yLTcuMyA3LjMtMzEuMi0xNi42LTMxLjIgMTYuNi03LjMtNy4zIDktMzMuMi0yMS44LTI0LjIgMy41LTkuNiAyNy43IDAgMTUuNS0yOCA5LjMgMCAxNS41IDI4IDI3LjcgMCAzLjUgOS42LTIxLjkgMjQuMnoiXX0samRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVwcyIsaWNvbjpbMzg0LDUxMixbXSwiZjdlMCIsIk0xMDMuMiAzMDNjLTUuMiAzLjYtMzIuNiAxMy4xLTMyLjYtMTlsMC0xMDQtMzIuNyAwIDAgMTAyLjZjMCA3NC45IDgwLjIgNTEuMSA5Ny45IDM5bDAtMTQxLjYtMzIuNiAwIDAgMTIzek00IDc0LjhMNCAyOTUuN2MwIDEwMy43IDc0LjkgMTM1LjIgMTg3LjcgMTg0LjEgMTEyLjQtNDguOSAxODcuNy04MC4yIDE4Ny43LTE4NC4xbDAtMjIwLjlDMjYzLjEgMTMuMiA5Ny42IDI1LjIgNCA3NC44ek0zNjIuMSAyOTUuN2MwIDg2LjYtNTMuMiAxMTMuNi0xNzAuNCAxNjUuMy0xMTcuNS01MS44LTE3MC41LTc4LjctMTcwLjUtMTY1LjNsMC0xMjYuNGMxMDIuMy05My44IDIzMS42LTEwMCAzNDAuOS04OS44bDAgMjE2LjJ6TTE1Mi41IDE4OC4zbDAgMjEyLjggMzIuNyAwIDAtNjguN2MyNC40IDcuMyA3MS43LTIuNiA3MS43LTc4LjUgMC05Ny40LTgwLjctODAuOS0xMDQuNC02NS42em0zMi43IDExNy4zbDAtMTAwLjNjOC40LTQuMiAzOC40LTEyLjcgMzguNCA0OS4zIDAgNjcuOS0zNi40IDUxLjgtMzguNCA1MXptNzkuMS04Ni40Yy4xIDQ3LjMgNTEuNiA0Mi41IDUyLjIgNzAuNCAuNiAyMy41LTMwLjQgMjMtNTAuOCA0LjlsMCAzMC4xYzM2LjIgMjEuNSA4MS45IDguMSA4My4yLTMzLjUgMS43LTUxLjUtNTQuMS00Ni42LTUzLjQtNzMuMiAuNi0yMC4zIDMwLjYtMjAuNSA0OC41LTIuMmwwLTI4LjRjLTI4LjUtMjItNzkuOS05LjItNzkuNyAzMS45eiJdfSxVZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZjQyYyIsIk0xNCAzMjUuM2MyLjMtNC4yIDUuMi00LjkgOS43LTIuNSAxMC40IDUuNiAyMC42IDExLjQgMzEuMiAxNi43IDQwLjYgMjAuMiA4My4zIDM1LjggMTI3LjQgNDYuMyAyMC44IDUgNDEuOSA5IDYzLjIgMTEuOCAzMS41IDQuMiA2My4yIDYgOTUgNS4yIDE3LjQtLjQgMzQuOC0xLjggNTIuMS0zLjggNTYuMi02LjYgMTExLjEtMjEgMTYzLjMtNDIuOCAyLjktMS4yIDUuOS0yIDkuMS0xLjIgNi43IDEuOCA5IDkgNC4xIDEzLjktMyAyLjctNi4yIDUuMi05LjYgNy40LTMwLjcgMjEuMS02NC4yIDM2LjQtOTkuNiA0Ny45LTI0LjUgNy45LTQ5LjYgMTMuOC03NS4xIDE3LjYtMTcuNiAyLjctMzUuNCA0LjMtNTMuMiA0LjgtLjggMC0xLjcgLjItMi41IC4zbC0yMS4xIDBjLS44LS4xLTEuNy0uMi0yLjUtLjMtMy42LS4yLTcuMi0uMy0xMC43LS40LTE2LjktLjgtMzMuNy0yLjUtNTAuNC01LjMtMjcuNC00LjUtNTQuMy0xMS41LTgwLjQtMjAuOS01My43LTE5LjQtMTAzLjEtNDguOS0xNDUuNi04Ny0xLjgtMS42LTMtMy44LTQuNC01LjdsMC0yek0xNzIgNjUuMWwtNC4zIC42Yy0xMy44IDEuNy0yNi44IDYuOS0zOCAxNS4xLTIuNCAxLjctNC42IDMuNS03LjEgNS40LS4yLS40LS4zLS45LS40LTEuNC0uNC0yLjctLjgtNS41LTEuMy04LjItLjctNC42LTMtNi42LTcuNi02LjZsLTExLjUgMGMtNi45IDAtOC4yIDEuMy04LjIgOC4ybDAgMjA5LjNjMCAxIDAgMiAuMSAzIC4yIDMgMiA0LjkgNC45IDUgNyAuMSAxNC4xIC4xIDIxLjEgMCAyLjkgMCA0LjctMiA1LTUgLjEtMSAuMS0yIC4xLTNsMC03Mi40YzEuMSAuOSAxLjcgMS40IDIuMiAxLjkgMTcuOSAxNC45IDM4LjUgMTkuOCA2MSAxNS40IDIwLjQtNCAzNC42LTE2LjUgNDMuOC0zNC45IDctMTMuOSA5LjktMjguNyAxMC4zLTQ0LjEgLjUtMTcuMS0xLjItMzMuOS04LjEtNDkuOC04LjUtMTkuNi0yMi42LTMyLjUtNDMuOS0zNi45LTMuMi0uNy02LjUtMS05LjgtMS41LTIuOC0uMS01LjUtLjEtOC4zLS4xek0xMjQuNiAxMDdjLS4xLS43IC4xLTEuMyAuNC0xLjlzLjgtMS4xIDEuMy0xLjRjMTMuNy05LjUgMjguOC0xNC41IDQ1LjYtMTMuMiAxNC45IDEuMSAyNy4xIDguNCAzMy41IDI1LjkgMy45IDEwLjcgNC45IDIxLjggNC45IDMzIDAgMTAuNC0uOCAyMC42LTQgMzAuNi02LjggMjEuMy0yMi40IDI5LjQtNDIuNiAyOC41LTE0LS42LTI2LjItNi0zNy40LTEzLjktLjYtLjMtMS0uOC0xLjMtMS40cy0uNC0xLjItLjQtMS45Yy4xLTE0LjEgMC0yOC4xIDAtNDIuMnMuMS0yOCAwLTQyLjF6TTMzMC4zIDY1LjFjLTEgLjEtMiAuMy0yLjkgLjQtOS43IC40LTE5LjQgMS44LTI4LjkgNC4xLTYuMSAxLjYtMTIgMy44LTE3LjkgNS44LTMuNiAxLjItNS40IDMuOC01LjMgNy43IC4xIDMuMy0uMSA2LjYgMCA5LjkgLjEgNC44IDIuMSA2LjEgNi44IDQuOSA3LjgtMiAxNS42LTQuMiAyMy41LTUuNyAxMi4zLTIuMyAyNC43LTMuMyAzNy4yLTEuNCA2LjUgMSAxMi42IDIuOSAxNi44IDguNCAzLjcgNC44IDUuMSAxMC41IDUuMyAxNi40IC4zIDguMyAuMiAxNi42IC4zIDI0LjkgMCAuNS0uMSAuOS0uMiAxLjQtLjUtLjEtLjkgMC0xLjMtLjEtMTAuNS0yLjYtMjEuMi00LjItMzItNC45LTExLjMtLjYtMjIuNSAuMS0zMy4zIDMuOS0xMi45IDQuNS0yMy4zIDEyLjMtMjkuNCAyNC45LTQuNyA5LjgtNS40IDIwLjItMy45IDMwLjcgMiAxNCA5IDI0LjggMjEuNCAzMS43IDExLjkgNi42IDI0LjggNy40IDM3LjkgNS40IDE1LjEtMi4zIDI4LjUtOC43IDQwLjMtMTguNCAuNS0uNCAxLS44IDEuNi0xLjEgLjYgMy44IDEuMSA3LjQgMS44IDExIC42IDMuMSAyLjUgNS4xIDUuNCA1LjIgNS40IC4xIDEwLjkgLjEgMTYuMyAwIDEuMyAwIDIuNS0uNSAzLjQtMS40czEuNC0yLjEgMS41LTMuM2MuMS0uOSAuMS0xLjkgLjEtMi44bDAtMTA2YzAtNC4zLS4zLTguNi0uOS0xMi45LTEuOS0xMi45LTcuNC0yMy41LTE5LTMwLjQtNi43LTQtMTQuMS02LTIxLjgtNy4xLTMuNi0uNS03LjItLjgtMTAuOC0xLjMtMy45IC4xLTcuOSAuMS0xMS45IC4xem0zNSAxMjcuN2MwIC42LS4xIDEuMi0uMyAxLjdzLS43IDEtMS4yIDEuM2MtMTEuMiA4LjEtMjMuNSAxMy41LTM3LjQgMTQuOS01LjcgLjYtMTEuNCAuNC0xNi44LTEuOC0zLTEuMS01LjYtMi45LTcuOC01LjJzLTMuNy01LjEtNC42LTguMWMtMi02LjMtMi0xMy4xLS4xLTE5LjQgMi41LTguMyA4LjQtMTMgMTYuNC0xNS42IDgtMi40IDE2LjUtMy4yIDI0LjgtMi4yIDguNCAuNyAxNi42IDIuMyAyNSAzLjQgMS42IC4yIDIuMSAxIDIuMSAyLjYtLjEgNC44IDAgOS41IDAgMTQuM3MtLjIgOS40LS4xIDE0LjF6TTYyNS4yIDMyMi4yYy0xLTUtNC44LTYuOS05LjEtOC4zLTYuOC0yLjEtMTMuOS0zLjUtMjEtMy45LTEzLjEtMS4xLTI2LjMtLjUtMzkuMiAxLjktMTQuMyAyLjctMjcuOSA3LjMtNDAgMTUuNi0xLjQgLjktMi43IDIuMS0zLjcgMy41LS40IC42LS42IDEuMy0uNyAxLjlzMCAxLjQgLjIgMi4xYy40IDEuNSAyLjEgMS45IDMuNiAxLjggLjcgMCAxLjUgMCAyLjItLjEgNy44LS44IDE1LjUtMS43IDIzLjMtMi41IDExLjQtMS4xIDIyLjktMS44IDM0LjMtLjkgNC45IC40IDkuNyAxLjMgMTQuNCAyLjcgNS4xIDEuNCA3LjQgNS4yIDcuNiAxMC40IC40IDgtMS40IDE1LjctMy41IDIzLjMtNC4xIDE1LjQtMTAgMzAuMy0xNS44IDQ1LjEtLjQgMS0uOCAyLTEgMy0uNSAyLjkgMS4yIDQuOCA0LjEgNC4xIDEuOC0uNCAzLjQtMS4zIDQuOC0yLjUgNC41LTQuMiA4LjgtOC43IDEyLjctMTMuNCAxMi44LTE2LjQgMjAuMy0zNS4zIDI0LjctNTUuNiAuOC0zLjYgMS40LTcuMyAyLjEtMTAuOWwwLTE3LjN6TTQ5My4xIDE5OWMtMTIuOS0zNS43LTI1LjgtNzEuNC0zOC43LTEwNy4yLTItNS43LTQuMi0xMS4zLTYuMy0xNi45LTEuMS0yLjktMy4yLTQuOC02LjQtNC44LTcuNi0uMS0xNS4yLS4yLTIyLjktLjEtMi41IDAtMy43IDItMy4yIDQuNSAuNSAyLjEgMS4xIDQuMSAxLjkgNi4xIDE5LjYgNDguNSAzOS4zIDk3IDU5LjEgMTQ1LjUgMS43IDQuMSAyLjEgNy42IC4yIDExLjgtMy4zIDcuMy01LjkgMTUtOS4zIDIyLjMtMyA2LjUtOCAxMS40LTE1LjIgMTMuMy01IDEuMy0xMC4yIDEuNy0xNS40IDEuMS0yLjUtLjItNS0uOC03LjUtMS0zLjQtLjItNS4xIDEuMy01LjIgNC44LS4xIDMuMy0uMSA2LjYgMCA5LjkgLjEgNS41IDIgOCA3LjQgOC45IDUuNiAxLjEgMTEuMiAxLjggMTYuOSAyIDE3LjEgLjQgMzAuNy02LjUgMzkuNS0yMS40IDMuNS01LjkgNi42LTEyIDkuMi0xOC40IDIzLjctNTkuOCA0Ny4yLTExOS43IDcwLjYtMTc5LjYgLjctMS44IDEuMy0zLjYgMS42LTUuNSAuNC0yLjgtLjktNC40LTMuNy00LjQtNi42LS4xLTEzLjMgMC0xOS45IDAtMS43LS4xLTMuNCAuMy00LjcgMS4zcy0yLjQgMi4zLTMgMy45Yy0uNSAxLjQtMS4xIDIuNy0xLjYgNC4xbC0zNC44IDEwMGMtMi41IDcuMi01LjEgMTQuNS03LjcgMjIuMi0uNC0xLjEtLjYtMS43LS45LTIuNHoiXX0sV2RlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhbmRvcmEiLGljb246WzM4NCw1MTIsW10sImU3ZGEiLCJNMjAxLjMgMzJMMCAzMiAwIDQ4MCAxMjAuMiA0ODBjMTEuMiAwIDIwLjMtOS4xIDIwLjMtMjAuM2wwLTg2LjEgMzAuMSAwYzE0Ny4xIDAgMjA3LjMtODIuOSAyMDcuMy0xNzkuOSAwLTExOS43LTkwLjktMTYxLjgtMTc2LjUtMTYxLjh6Il19LEdkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuaWQiLGljb246WzQ0OCw1MTIsW10sImYxOWIiLCJNMjcxLjUgNDMybC02OCAzMkM4OC41IDQ1My43IDAgMzkyLjUgMCAzMTguMiAwIDI0Ni43IDgyLjUgMTg3LjIgMTkxLjcgMTczLjlsMCA0M2MtNzEuNSAxMi41LTEyNCA1My0xMjQgMTAxLjMgMCA1MSA1OC41IDkzLjMgMTM1LjcgMTAzbDAtMzQwIDY4LTMzLjIgMCAzODQgLjEgMHpNNDQ4IDI5MWwtMTMxLjMtMjguNSAzNi44LTIwLjdjLTE5LjUtMTEuNS00My41LTIwLTcwLTI0LjhsMC00M2M0Ni4yIDUuNSA4Ny43IDE5LjUgMTIwLjMgMzkuM2wzNS0xOS44IDkuMiA5Ny41eiJdfSxZZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidnNjbyIsaWNvbjpbNTEyLDUxMixbXSwiZTdkZCIsIk0zNTcuNiAyNTZjMC0yNy4xLTEwLjYtNTIuNS0yOS43LTcxLjdzLTQ0LjYtMjkuNy03MS43LTI5LjdsLS4xIDBjLTI3LjEgMC01Mi42IDEwLjYtNzEuNyAyOS43cy0yOS43IDQ0LjYtMjkuNyA3MS43YzAgMjcuMSAxMC42IDUyLjUgMjkuNyA3MS43IDE5LjIgMTkuMiA0NC42IDI5LjcgNzEuNyAyOS43bC4xIDBjMjcuMSAwIDUyLjYtMTAuNiA3MS43LTI5LjcgMTkuMi0xOS4yIDI5LjctNDQuNiAyOS43LTcxLjd6TTE3Ni4zIDQ4Mi4xYzIzIDguMSA0NyAxMi42IDcxLjYgMTMuNGwwLTU5LjFjLTE3LjEtLjctMzMuNS0zLjgtNDktOC45bC0yMi42IDU0LjZ6bTEzNy01NC42Yy0xNS41IDUuMS0zMiA4LjItNDkgOC45bDAgNTkuMWMyNC42LS44IDQ4LjYtNS4zIDcxLjYtMTMuNGwtMjIuNi01NC42ek05Mi41IDQzMS4yYzIwLjIgMTguOSA0My4zIDM0IDY4LjcgNDVsMjIuNS01NC41Yy0xOC4zLTcuOS0zNS4xLTE4LjgtNDkuOC0zMS45TDkyLjUgNDMxLjJ6bTI4NS45LTQxLjRjLTE0LjYgMTMuMi0zMS40IDI0LTQ5LjggMzEuOWwyMi41IDU0LjVjMjUuNC0xMSA0OC40LTI2LjEgNjguNy00NWwtNDEuNC00MS40ek0xNDUuNCAzNzguMmMxMy42IDEyLjEgMjkgMjEuOSA0NS44IDI5IDE4IDcuNiAzNy4xIDEyIDU2LjcgMTIuOWwwLTQ2LjhjLTI2LjQtMS44LTUwLjMtMTIuMy02OS4xLTI4LjZsLTMzLjQgMzMuNHptMTg4LTMzLjRjLTE4LjggMTYuMy00Mi43IDI2LjgtNjkuMSAyOC42bDAgNDYuOGMxOS42LS45IDM4LjctNS4zIDU2LjctMTIuOSAxNi44LTcuMSAzMi4yLTE2LjkgNDUuOC0yOWwtMzMuNC0zMy40ek0zOC41IDM1Ni42YzEwLjcgMjMuMiAyNSA0NC4zIDQyLjUgNjMuMWw0MS4zLTQxLjNjLTEyLjQtMTMuNC0yMi45LTI4LjYtMzAuOS00NS4yTDM4LjUgMzU2LjZ6bTM4Mi40LTIzLjVjLTggMTYuNi0xOC41IDMxLjktMzAuOSA0NS4ybDQxLjMgNDEuM2MxNy41LTE4LjcgMzEuOC0zOS45IDQyLjUtNjMuMWwtNTIuOS0yMy41em0tMzMxLTY5YzEuMSAxOC44IDUuNCAzNy4yIDEyLjggNTQuNSA3LjUgMTcuOCAxOCAzNCAzMS4yIDQ4LjJsMzMuNS0zMy41Yy0xNi40LTE4LjgtMjYuOS00Mi44LTI4LjctNjkuMmwtNDguOCAwem0yODMuNyAwYy0xLjggMjYuNC0xMi4zIDUwLjQtMjguNyA2OS4ybDMzLjUgMzMuNWMxMy4xLTE0LjIgMjMuNi0zMC40IDMxLjItNDguMiA3LjMtMTcuNCAxMS42LTM1LjcgMTIuNy01NC41bC00OC43IDB6bS0zNTcuMSAwYy45IDI2LjcgNi4xIDUyLjcgMTUuNiA3Ny41TDg1IDMxOC4yYy02LjQtMTctMTAuMy0zNS4xLTExLjMtNTRsLTU3LjEgMHptNDIyLjEgMGMtMSAxOC45LTUgMzcuMS0xMS4zIDU0bDUyLjggMjMuNWM5LjUtMjQuOCAxNC43LTUwLjggMTUuNi03Ny41bC01Ny4xIDB6TTMyLjEgMTcwLjRjLTkuNSAyNC44LTE0LjcgNTAuOC0xNS42IDc3LjVsNTcuMSAwYzEtMTguOSA1LTM3LjEgMTEuMy01NEwzMi4xIDE3MC40em0xMDEuNy0yNS4yYy0xMy4xIDE0LjItMjMuNiAzMC40LTMxLjIgNDguMi03LjMgMTcuNC0xMS42IDM1LjctMTIuOCA1NC41bDQ4LjggMGMxLjgtMjYuNCAxMi4zLTUwLjQgMjguNy02OS4ybC0zMy41LTMzLjV6bTIxMS4xIDMzLjVjMTYuNCAxOC44IDI2LjkgNDIuOCAyOC43IDY5LjJsNDguNyAwYy0xLjEtMTguOC01LjQtMzcuMi0xMi43LTU0LjUtNy41LTE3LjgtMTgtMzQtMzEuMi00OC4ybC0zMy41IDMzLjV6bTgyLjQgMTUuMmM2LjQgMTcgMTAuMyAzNS4xIDExLjMgNTRsNTcuMSAwYy0uOS0yNi43LTYuMS01Mi43LTE1LjYtNzcuNWwtNTIuOCAyMy41ek04MSA5Mi4zQzYzLjQgMTExIDQ5LjIgMTMyLjIgMzguNSAxNTUuNGw1Mi45IDIzLjVjOC0xNi42IDE4LjUtMzEuOSAzMC45LTQ1LjJMODEgOTIuM3ptMzA5IDQxLjNjMTIuNCAxMy40IDIyLjkgMjguNiAzMC45IDQ1LjJsNTIuOS0yMy41Yy0xMC43LTIzLjItMjUtNDQuMy00Mi41LTYzLjFMMzkwIDEzMy43ek0yNDggOTEuOGMtMTkuNiAuOS0zOC43IDUuMy01Ni43IDEyLjktMTYuOCA3LjEtMzIuMiAxNi45LTQ1LjggMjlsMzMuNCAzMy40YzE4LjgtMTYuMyA0Mi43LTI2LjggNjkuMS0yOC42bDAtNDYuN3ptMTYuMyA0Ni43YzI2LjQgMS44IDUwLjMgMTIuMyA2OS4xIDI4LjZsMzMuNC0zMy40Yy0xMy42LTEyLjEtMjktMjEuOS00NS44LTI5LTE4LTcuNi0zNy4xLTEyLTU2LjctMTIuOWwwIDQ2Ljd6TTE2MS4yIDM1LjhjLTI1LjQgMTEtNDguNCAyNi4xLTY4LjcgNDVsNDEuNCA0MS40YzE0LjctMTMuMiAzMS40LTI0IDQ5LjgtMzEuOUwxNjEuMiAzNS44ek0zMjguNiA5MC4zYzE4LjMgNy45IDM1LjEgMTguOCA0OS44IDMxLjlsNDEuNC00MS40Yy0yMC4yLTE4LjktNDMuMy0zNC02OC43LTQ1TDMyOC42IDkwLjN6TTI0OCAxNi40Yy0yNC42IC44LTQ4LjYgNS4zLTcxLjYgMTMuNGwyMi42IDU0LjZjMTUuNS01LjEgMzItOC4yIDQ5LTguOWwwLTU5LjF6bTE2LjMgNTkuMWMxNy4xIC43IDMzLjUgMy44IDQ5IDguOWwyMi42LTU0LjZjLTIzLTguMS00Ny0xMi42LTcxLjYtMTMuNGwwIDU5LjF6TTUxMi4yIDI2NC4ybC0uMiAwQzUwNy44IDM5OSAzOTkuMiA1MDcuNyAyNjQuMyA1MTEuOWwwIC4xLTE2LjMgMCAwLS4xQzExMy4xIDUwNy43IDQuNSAzOTkgLjIgMjY0LjFsLS4yIDAgMC0xNi4zIC4yIDBDNC41IDExMyAxMTMuMSA0LjMgMjQ4IC4xbDAtLjEgMTYuMyAwIDAgLjFDMzk5LjIgNC4zIDUwNy44IDExMyA1MTIgMjQ3LjlsLjIgMCAwIDE2LjN6Il19LFpkZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnbG9iYWxlYWtzIixpY29uOls0NDgsNTEyLFtdLCJlODVkIiwiTTQxMS4yIDMyLjJjMjAuMiAwIDM2LjggMTYuNiAzNi44IDM2LjlsMCAzNzMuOGMwIDIwLjItMTYuNiAzNi45LTM2LjggMzYuOWwtOTQuNCAwIDI4LTc5LjRjMy4xLTguOC0xLjYtMTguNy0xMC40LTIxLjgtMS42LS41LTIuNi0xLTQuMi0xcy0zLjYgMC01LjIgLjVjLTUuMiAxLTkuOSA1LjItMTEuOSAxMC45bC02LjIgMTYuNiAwLTY3LjVjMC0xMC45LTcuOC0xOS43LTE4LjItMjEuOGwtNy4yIDBjLS41IDAtMSAwLTEuNiAuNS0uNSAwLTEgLjUtMS42IC41LTIuNiAxLTUuMiAyLjYtNy4yIDQuMWwwLTQuMWMwLTUuNy0yLjYtMTAuNC01LjctMTRsLTEtMWMtMS0xLTIuNi0yLjEtNC4yLTIuNmwwLTI2LjVjMC01LjItNC4xLTkuMy05LjMtOS4zbC0zOS45IDBjLTYuNyAwLTExLjQtNy4zLTguMy0xMy41TDI4My4xIDg0LjFjMTQuNS0zMS4xIDQ1LjYtNTEuNCA4MC40LTUxLjlsNDcuNyAwem0tMTY2IDBjMTcuNiAwIDMwLjEgMTYuMSAyOCAzMi4yLTIuNiAzLjYtNC43IDcuOC02LjIgMTAuOUwxODYuNiAyNDEuNWMtOC44IDE4LjcgNC4yIDQwIDI0LjQgNDBsMzAuNiAwIDAgMTYuMWMtNy44IDMuMS0xMyAxMC45LTEzIDE5LjdsMCAzLjZjLTMuNi0zLjYtOC44LTUuNy0xNC41LTUuNy0xMS45IDAtMjEuOCA5LjktMjEuOCAyMS44bDAgMTkuMi0zLjEgMGMtOS4zIDAtMTcuMSA3LjgtMTcuMSAxNy4xbDAgMTA1LjktOTUuNCAwYy00MiAwLTcyLjYtNDAuNS02MS4yLTgxLjUgMS0zLjEgNC4yLTUuMiA3LjMtNC43bDIxLjIgMGMyNC40IDAgNDQuNi0yMC4yIDQ0LjYtNDUuMmwwLTQuMmMwLTI0LjktMTkuNy00NS4yLTQ0LjYtNDUuMi0uNSAwLTEtLjUtMS0xbDguOC0zMi43YzIuMS02LjItMi42LTExLjktOC44LTExLjlsLTMzLjIgMGMtNi43IDAtMTEuNC03LjMtOC4zLTEzLjVMNzYuNyA4NC43YzE2LjEtMzIuMiA0OC4yLTUyLjQgODQtNTIuNGw4NC41IDB6TTEzMy43IDE0NC40Yy0xMC40IDAtMTguNyA4LjMtMTguNyAxOC43IDAgOS45IDguMyAxOC43IDE4LjcgMTguNyAxMC40IDAgMTguNy04LjMgMTguNy0xOC43cy04LjMtMTguNy0xOC43LTE4Ljd6bTIwMi44IDBhMTguNiAxOC42IDAgMSAwIC0uMiAzNy4yIDE4LjYgMTguNiAwIDEgMCAuMi0zNy4yeiJdfSxYZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmVubW8iLGljb246WzY0MCw1MTIsW10sImU4NWEiLCJNNjcuOCAyMDIuN2MyLjQgNSAzLjkgMTEgMy45IDE5LjggMCAxNi4yLTExLjUgMzkuOC0yMC43IDU0LjlsLTkuOS03OS43LTQxIDMuOSAxOC44IDExMiA0Ni45IDBjMjAuNS0yNi45IDQ1LjgtNjUuMyA0NS44LTk0LjggMC05LjMtMS45LTE2LjYtNi4zLTIzLjdsLTM3LjQgNy41em0xMTMtNy4xYy00Mi44IDAtNjMuNSAzNy02My41IDcxLjkgMCAyNi45IDEyLjggNDguNSA0OC40IDQ4LjUgMTQgMCAyOC41LTMgMzcuOC03LjVsNS0zMy42Yy0xMy4yIDYuNy0yMy4zIDkuMy0zMy45IDkuMy05LjcgMC0xNy4xLTUuMi0xNy4xLTE4LjMgMjItLjIgNjAtOS4zIDYwLTM4LjggMC0xOC4zLTEzLjItMzEuNS0zNi43LTMxLjVsMCAwem0tMjIuNSA0OC45YzEuMS0xMi45IDExLTIyIDE4LjYtMjIgNC4zIDAgOCAyLjYgOCA3LjcgMCAxMC44LTE5IDE0LjItMjYuNiAxNC4ybDAgMHptMTUwLjItNDguOWMtMTUuMyAwLTI2LjEgNS44LTM0LjMgMTEuMmwtLjQtOS4zLTM0LjggMC0xOC40IDExNi4xIDQwLjIgMCAxMi43LTgxLjRjMy41LTEuNyA4LjYtNC4xIDEzLjgtNC4xIDMuOSAwIDcuMSAxLjMgNy4xIDYuNSAwIDIuMi0uNyA2LS45IDhsLTExLjIgNzEuMSA0MCAwIDEyLjMtNzcuNWMuNy00LjEgMS4zLTEwLjMgMS4zLTE0LjYgMC0xNS41LTcuMS0yNS45LTI3LjQtMjUuOXptMTgzLjIgMGMtMTQuOSAwLTI1LjcgNC41LTM3LjIgMTIuNy00LjEtNy4zLTEyLjMtMTIuNy0yNC44LTEyLjctMTQuNSAwLTI1LjMgNS44LTMzLjMgMTEuNmwtMS4xLTkuNy0zNC40IDAtMTguNCAxMTYuMSA0MC4yIDAgMTIuOC04MS40YzMuNS0xLjcgOC42LTQuMSAxMy44LTQuMSAzLjkgMCA3LjEgMS4zIDcuMSA3LjEgMCAxLjUtLjQgMy45LS42IDUuOGwtMTEuNCA3Mi42IDQwIDAgMTIuNy04MS40YzMuNy0xLjkgOC42LTQuMSAxMy42LTQuMSAzLjkgMCA3LjEgMS4zIDcuMSA3LjEgMCAxLjUtLjQgMy45LS43IDUuOGwtMTEuNCA3Mi42IDQwIDAgMTIuMy03Ny41Yy43LTQuMSAxLjMtMTAuMyAxLjMtMTQuNiAwLTE1LjUtNy4xLTI1LjktMjcuNy0yNS45bDAgMHptMTAyLjIgMGMtNDQuNyAwLTY0LjIgMzQuMy02NC4yIDcwLjkgMCAyNy44IDExLjIgNTAgNDUuMSA1MCA0NS44IDAgNjUtMzcuNSA2NS03My43IDAtMjcuNC0xMi4zLTQ3LjItNDYtNDcuMnptLTEzLjQgOTBjLTcuMSAwLTEwLjEtNi43LTEwLjEtMTcuNSAwLTE0LjIgMy4yLTQyIDE5LTQyIDcuMSAwIDkuNSA2LjUgOS41IDE1LjkgMCAxNC4yLTMuNSA0My41LTE4LjQgNDMuNXoiXX0sS2RlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVidW50dSIsaWNvbjpbNTc2LDUxMixbXSwiZjdkZiIsIk00NjkuMiA3NWMwLTIwLjEtOC0zOS4zLTIyLjItNTMuNXMtMzMuNC0yMi4yLTUzLjUtMjIuMi0zOS4zIDgtNTMuNSAyMi4yLTIyLjIgMzMuNC0yMi4yIDUzLjVjMCAyMC4xIDggMzkuMyAyMi4xIDUzLjVzMzMuNCAyMi4xIDUzLjUgMjIuMSAzOS4zLTggNTMuNS0yMi4xIDIyLjEtMzMuNCAyMi4xLTUzLjVsLjEgMHptLTMxNSAxNjUuN2E3NS42IDc1LjYgMCAxIDAgLTE1MS4yIDAgNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTU3IDM0NmMxOC42IDQ2LjkgNTEgODcgOTMgMTE1LjFzOTEuNSA0Mi42IDE0MiA0MS43Yy0xNC43LTE4LjYtMjIuOS00MS41LTIzLjItNjUuMi02LjgtLjktMTMuMy0yLjEtMTkuNS0zLjQtMjYuOC01LjctNTEuOS0xNy4zLTczLjYtMzRzLTM5LjMtMzguMS01MS43LTYyLjVjLTIwLjkgOS45LTQ0LjUgMTIuOC02Ny4xIDguMmwuMSAuMXptMzk1LjEgODkuOGE3NS42IDc1LjYgMCAxIDAgLTE1MS4yIDAgNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTQ0NCAzNTEuNmMxOC41IDE0LjggMzEuNiAzNS4yIDM3LjIgNTguMiAzMy4zLTQxLjMgNTIuNi05Mi4yIDU0LjgtMTQ1LjJzLTEyLjUtMTA1LjQtNDIuMi0xNDkuNGMtOC42IDIxLjUtMjQgMzkuNi00My44IDUxLjYgMTUuNCAyOC42IDIyLjkgNjAuOCAyMS45IDkzLjJzLTEwLjcgNjQtMjggOTEuNmwuMSAwek0xMDEuMSAxMzUuNGMxMi40IDIuNyAyNC4zIDcuNSAzNS4xIDE0LjMgMTYuNi0yNC4yIDM4LjktNDQuMSA2NC44LTU4UzI1NS44IDcwLjQgMjg1LjIgNzBjLjItNS45IC45LTExLjkgMi0xNy43IDMuNi0xNi43IDExLjEtMzIuMyAyMS44LTQ1LjUtNDcuNy0zLjgtOTUuNCA2LTEzNy42IDI4LjVTOTQuMyA5MS43IDcwLjggMTMzLjRjMi43LS4yIDUuMy0uMyA4LS4zIDcuNSAwIDE1IC44IDIyLjQgMi4zbC0uMSAweiJdfSxRZGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmlhY29pbiIsaWNvbjpbMzg0LDUxMixbXSwiZjIzNyIsIk0zODQgMzJsLTY0IDAtODAuNyAxOTItOTQuNSAwLTgwLjgtMTkyLTY0IDAgNDggMTEyLTQ4IDAgMCA0OCA2OC41IDAgMTMuOCAzMi04Mi4zIDAgMCA0OCAxMDIuOCAwIDg5LjIgMjA4IDg5LjItMjA4IDEwMi44IDAgMC00OC04Mi4zIDAgMTMuOC0zMiA2OC41IDAgMC00OC00OCAwIDQ4LTExMnpNMTkyIDMzNmwtMjctNjQgNTQgMC0yNyA2NHoiXX0sSmRlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InpoaWh1IixpY29uOls2NDAsNTEyLFtdLCJmNjNmIiwiTTE3MC41IDE0OC4xbDAgMjE3LjUgMjMuNCAwIDcuNyAyNi40IDQyLTI2LjQgNDkuNSAwIDAtMjE3LjUtMTIyLjcgMHptOTcuOCAxOTMuOWwtMjcuOSAwLTI3LjkgMTcuNS01LjEtMTcuNS0xMS45IDAgMC0xNzAuMyA3Mi44IDAgMCAxNzAuM3pNMTQ5LjggMjQ3LjdsLTUyLjMgMGMxLjctMjcuMSAyLjItNTEuNiAyLjItNzMuNWw1MS4yIDBzMi0yMi42LTguNi0yMi4zbC04OC41IDBjMy41LTEzLjEgNy45LTI2LjcgMTMuMS00MC43IDAgMC0yNC4xIDAtMzIuMyAyMS42LTMuNCA4LjktMTMuMiA0My4xLTMwLjcgNzguMSA1LjktLjYgMjUuNC0xLjIgMzYuOC0yMi4yIDIuMS01LjkgMi41LTYuNyA1LjEtMTQuNWwyOC45IDBjMCAxMC41LTEuMiA2Ni45LTEuNyA3My40bC01Mi4zIDBjLTExLjcgMC0xNS42IDIzLjYtMTUuNiAyMy42bDY1LjYgMGMtNC40IDQ5LjktMjggOTEuOS03MC44IDEyNS4xIDIwLjUgNS45IDQwLjktLjkgNTEtOS45IDAgMCAyMy0yMC45IDM1LjYtNjkuM2w1NCA2NC45czcuOS0yNi45LTEuMi00MGMtNy42LTguOS0yOC4xLTMzLjEtMzYuOC00MS44TDg3LjkgMzEyYzQuNC0xNCA3LTI3LjYgNy45LTQwLjdsNjEuNiAwcy0uMS0yMy42LTcuNi0yMy42bDAgMHptNDEyLTEuNmMyMC44LTI1LjYgNDUtNTguNiA0NS01OC42cy0xOC42LTE0LjgtMjcuNC00LjFjLTYgOC4yLTM2LjggNDguMi0zNi44IDQ4LjJsMTkuMiAxNC40ek00MTEuOCAxODdjLTktOC4yLTI1LjkgMi4xLTI1LjkgMi4xczM5LjUgNTUgNDEuMSA1Ny40bDE5LjUtMTMuN3MtMjUuNy0zNy42LTM0LjctNDUuOWwwIDAgMCAwek02NDAgMjU4LjRjLTE5LjggMC0xMzAuOSAuOS0xMzEuMSAuOWwwLTEwMWM0LjggMCAxMi40LS40IDIyLjgtMS4yIDQwLjktMi40IDcwLjEtNCA4Ny44LTQuOCAwIDAgMTIuMi0yNy4yLS42LTMzLjQtMy4xLTEuMi0yMy4yIDQuNi0yMy4yIDQuNnMtMTY1LjIgMTYuNS0yMzIuNCAxOGMxLjYgOC44IDcuNiAxNy4xIDE1LjggMTkuNiAxMy4zIDMuNSAyMi43IDEuNyA0OS4yIC45IDI0LjgtMS42IDQzLjctMi40IDU2LjUtMi40bDAgOTkuOC0xMzMuNSAwczIuOCAyMi4zIDI1LjUgMjIuOWwxMDcuOSAwIDAgNzAuOWMwIDE0LTExLjIgMjItMjQuNSAyMS4xLTE0LjEgLjEtMjYuMS0xLjEtNDEuNy0xLjggMiA0IDYuMyAxNC40IDE5LjMgMjEuOCA5LjkgNC44IDE2LjIgNi42IDI2IDYuNiAyOS42IDAgNDUuNy0xNy4zIDQ0LjktNDUuM2wwLTczLjMgMTIyLjQgMGM5LjcgMCA4LjctMjMuOCA4LjctMjMuOGwwIDB6Il19LGU3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YW5kZXgiLGljb246WzI1Niw1MTIsW10sImY0MTMiLCJNMTUzLjEgMzE1LjhMNjUuNyA1MTIgMiA1MTIgOTggMzAyLjJDNTIuOSAyNzkuMyAyMi44IDIzNy44IDIyLjggMTYxLjEgMjIuNyA1My43IDkwLjggMCAxNzEuNyAwbDgyLjMgMCAwIDUxMi01NS4xIDAgMC0xOTYuMi00NS44IDB6TTE5OC45IDQ2LjVsLTI5LjQgMGMtNDQuNCAwLTg3LjQgMjkuNC04Ny40IDExNC42IDAgODIuMyAzOS40IDEwOC44IDg3LjQgMTA4LjhsMjkuNCAwIDAtMjIzLjR6Il19LHQ3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXhpdiIsaWNvbjpbNDQ4LDUxMixbXSwiZTY0MCIsIk05NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2TDk2IDMyem03Ny43IDIxNy4zYTYwLjEgNjAuMSAwIDEgMCAxMjAuMyAwIDYwLjEgNjAuMSAwIDEgMCAtMTIwLjMgMHpNMTE5LjEgMzg3LjhjLS4zLS44LS41LTEuNy0uNS0yLjZsMC0yNDQuM2MwLTEuOCAuNy0zLjYgMi00LjlzMy0yIDQuOS0ybDE2LjkgMGMxLjIgMCAyLjMgLjMgMy4zIC44czEuOSAxLjMgMi41IDIuM2wxNCAyMS44YzE5LjctMTUuNiA0NC41LTI1IDcxLjYtMjUgNjMuNiAwIDExNS4yIDUxLjYgMTE1LjIgMTE1LjJTMjk3LjUgMzY0LjUgMjMzLjggMzY0LjVjLTIyIDAtNDIuNi02LjItNjAuMS0xNi45bDAgMzcuNmMwIC45LS4yIDEuOC0uNSAyLjZzLS45IDEuNi0xLjUgMi4yLTEuNCAxLjEtMi4yIDEuNS0xLjcgLjUtMi42IC41bC00MS4zIDBjLS45IDAtMS44LS4yLTIuNi0uNXMtMS42LS45LTIuMi0xLjUtMS4xLTEuNC0xLjUtMi4yeiJdfSxhN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbmFpIixpY29uOls1MTIsNTEyLFtdLCJlN2NmIiwiTTE5Ni40IDE4NS44bDAtNDguNmMwLTQuMSAxLjUtNy4yIDUuMS05LjJsOTcuOC01Ni4zYzEzLjMtNy43IDI5LjItMTEuMyA0NS42LTExLjMgNjEuNCAwIDEwMC40IDQ3LjYgMTAwLjQgOTguMyAwIDMuNiAwIDcuNy0uNSAxMS44TDM0My4zIDExMS4xYy02LjEtMy42LTEyLjMtMy42LTE4LjQgMEwxOTYuNCAxODUuOHpNNDI0LjcgMzc1LjJsMC0xMTYuMmMwLTcuMi0zLjEtMTIuMy05LjItMTUuOUwyODcgMTY4LjQgMzI5IDE0NC4zYzMuNi0yIDYuNy0yIDEwLjIgMEw0MzcgMjAwLjdjMjguMiAxNi40IDQ3LjEgNTEuMiA0Ny4xIDg1IDAgMzguOS0yMyA3NC44LTU5LjQgODkuNmwwIDB6TTE2Ni4yIDI3Mi44bC00Mi0yNC42Yy0zLjYtMi01LjEtNS4xLTUuMS05LjJsMC0xMTIuNmMwLTU0LjggNDItOTYuMyA5OC44LTk2LjMgMjEuNSAwIDQxLjUgNy4yIDU4LjQgMjBMMTc1LjQgMTA4LjVjLTYuMSAzLjYtOS4yIDguNy05LjIgMTUuOWwwIDE0OC41IDAgMHptOTAuNCA1Mi4ybC02MC4yLTMzLjggMC03MS43IDYwLjItMzMuOCA2MC4yIDMzLjggMCA3MS43LTYwLjIgMzMuOHptMzguNyAxNTUuN2MtMjEuNSAwLTQxLjUtNy4yLTU4LjQtMjBsMTAwLjktNTguNGM2LjEtMy42IDkuMi04LjcgOS4yLTE1LjlsMC0xNDguNSA0Mi41IDI0LjZjMy42IDIgNS4xIDUuMSA1LjEgOS4ybDAgMTEyLjZjMCA1NC44LTQyLjUgOTYuMy05OS4zIDk2LjNsMCAwek0xNzMuOCAzNjYuNUw3Ni4xIDMxMC4yYy0yOC4yLTE2LjQtNDcuMS01MS4yLTQ3LjEtODUgMC0zOS40IDIzLjYtNzQuOCA1OS45LTg5LjZsMCAxMTYuN2MwIDcuMiAzLjEgMTIuMyA5LjIgMTUuOWwxMjggNzQuMi00MiAyNC4xYy0zLjYgMi02LjcgMi0xMC4yIDB6bS01LjYgODRjLTU3LjkgMC0xMDAuNC00My41LTEwMC40LTk3LjMgMC00LjEgLjUtOC4yIDEtMTIuM2wxMDAuOSA1OC40YzYuMSAzLjYgMTIuMyAzLjYgMTguNCAwbDEyOC41LTc0LjIgMCA0OC42YzAgNC4xLTEuNSA3LjItNS4xIDkuMmwtOTcuOCA1Ni4zYy0xMy4zIDcuNy0yOS4yIDExLjMtNDUuNiAxMS4zbDAgMHptMTI3IDYwLjljNjIgMCAxMTMuNy00NCAxMjUuNC0xMDIuNCA1Ny4zLTE0LjkgOTQuMi02OC42IDk0LjItMTIzLjQgMC0zNS44LTE1LjQtNzAuNy00My05NS43IDIuNi0xMC44IDQuMS0yMS41IDQuMS0zMi4zIDAtNzMuMi01OS40LTEyOC0xMjgtMTI4LTEzLjggMC0yNy4xIDItNDAuNCA2LjctMjMtMjIuNS01NC44LTM2LjktODkuNi0zNi45LTYyIDAtMTEzLjcgNDQtMTI1LjQgMTAyLjQtNTcuMyAxNC44LTk0LjIgNjguNi05NC4yIDEyMy40IDAgMzUuOCAxNS40IDcwLjcgNDMgOTUuNy0yLjYgMTAuOC00LjEgMjEuNS00LjEgMzIuMyAwIDczLjIgNTkuNCAxMjggMTI4IDEyOCAxMy44IDAgMjcuMS0yIDQwLjQtNi43IDIzIDIyLjUgNTQuOCAzNi45IDg5LjYgMzYuOXoiXX0saTdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpdGgiLGljb246WzQ0OCw1MTIsW10sImY1MTIiLCJNMCAzMmw2OS43IDExOC44LTU4LjktMTEuNSA2OS44IDkxYy0zIDE3LTMgMzQuNCAwIDUxLjRsLTY5LjggOTEgNTguOS0xMS41LTY5LjcgMTE4LjggMTE4LjgtNjkuNy0xMS41IDU4LjkgOTEtNjkuOGMxNyAzIDM0LjUgMyA1MS41IDBsOTEgNjkuOC0xMS41LTU4LjkgMTE4LjcgNjkuNy02OS43LTExOC44IDU4LjkgMTEuNS02OS44LTkxYzMtMTcgMy0zNC40IDAtNTEuNGw2OS44LTkxLTU4LjkgMTEuNSA2OS43LTExOC44LTExOC43IDY5LjcgMTEuNS01OC45LTkxLjEgNjkuOWMtOC41LTEuNS0xNy4xLTIuMy0yNS43LTIuM3MtMTcuMiAuOC0yNS43IDIuM0wxMDcuMiA0Mi44IDExOC44IDEwMS43IDAgMzJ6TTIyNCAzODAuMmExMjQuMiAxMjQuMiAwIDEgMSAwLTI0OC40IDEyNC4yIDEyNC4yIDAgMSAxIDAgMjQ4LjR6bTAtMjExLjhhODcuNiA4Ny42IDAgMSAwIDAgMTc1LjEgODcuNiA4Ny42IDAgMSAwIDAtMTc1LjF6Il19LHI3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqdWxpYSIsaWNvbjpbNjQwLDUxMixbXSwiZTg1MiIsIk0xMjQgNDA2LjVjMCAxNi4xLTEuOCAyOS4xLTUuNCAzOXMtOC44IDE3LjYtMTUuNSAyMy4xLTE0LjcgOS4xLTI0LjEgMTEtMTkuOCAyLjgtMzEuMiAyLjhjLTE1LjUgMC0yNy4zLTIuNC0zNS41LTcuM1MwIDQ2NC41IDAgNDU3LjdjMC01LjYgMi4zLTEwLjQgNi45LTE0LjNzMTAuOC01LjggMTguNS01LjhjNS44IDAgMTAuNCAxLjYgMTMuOSA0LjdzNi4zIDYuMiA4LjYgOS4zYzIuNiAzLjQgNC44IDUuNiA2LjUgNi44czMuNCAxLjcgNC44IDEuN2MzLjEgMCA1LjQtMS44IDctNS40czIuNC0xMC43IDIuNC0yMS4ybDAtMTk4LjcgNTUuNC0xNS4yIDAgMTg2Ljl6bTc4LjktMTgxLjZsMCAxMjcuOWMwIDMuNiAuNyA2LjkgMi4xIDEwczMuMyA1LjggNS43IDguMSA1LjIgNC4xIDguNSA1LjQgNi43IDIuMSAxMC40IDIuMWM0LjIgMCA4LjktMi4zIDE0LjctNi40IDkuMi02LjQgMTQuNy0xMC45IDE0LjctMTYuMWwwLTEzMSA1NS4xIDAgMCAxODEuNi01NS4xIDAgMC0xNi45Yy03LjMgNi4xLTE1IDExLTIzLjIgMTQuN3MtMTYuMiA1LjYtMjMuOSA1LjZjLTkgMC0xNy40LTEuNS0yNS4xLTQuNXMtMTQuNS03LTIwLjMtMTIuMi0xMC40LTExLjItMTMuNy0xOC4xYy0zLjMtNi45LTUtMTQuMy01LTIyLjJsMC0xMjcuOSA1NS4xIDB6TTM5MS40IDQwNi41bC01NC45IDAgMC0yNTQuNiA1NC45LTE1LjIgMCAyNjkuOHptMjIuOS0xNzEuN2w1NS4xLTE1LjIgMCAxODYuOS01NS4xIDAgMC0xNzEuN3ptMTcwLjMgNzcuOWMtNS4zIDIuMy0xMC43IDQuOS0xNi4xIDcuOXMtMTAuMyA2LjItMTQuNyA5LjgtOCA3LjMtMTAuOCAxMS40LTQuMSA4LjItNC4xIDEyLjZjMCAzLjQgLjQgNi42IDEuMyA5LjhzMi4xIDUuOCAzLjggOC4xIDMuNCA0LjEgNS4zIDUuNCA0IDIuMSA2LjMgMi4xYzQuNSAwIDkuMS0xLjQgMTMuNy00LjFzOS43LTYuMiAxNS40LTEwLjRsMC01Mi41ek02NDAgNDA2LjVsLTU1LjQgMCAwLTE0LjVjLTMuMSAyLjYtNiA1LTguOSA3LjFzLTYuMiA0LjEtOS44IDUuNy03LjcgMi45LTEyLjIgMy44Yy00LjUgLjktOS44IDEuMy0xNS45IDEuMy04LjQgMC0xNS45LTEuMi0yMi42LTMuNi02LjctMi40LTEyLjQtNS43LTE3LTkuOXMtOC4zLTkuMS0xMC44LTE0LjljLTIuNS01LjctMy44LTEyLTMuOC0xOC43IDAtNi45IDEuMy0xMy4yIDQtMTguOSAyLjctNS42IDYuMy0xMC43IDEwLjktMTUuMiA0LjYtNC41IDkuOS04LjUgMTYuMS0xMi4xczEyLjctNi44IDE5LjctOS44IDE0LjMtNS43IDIxLjktOC4yIDE1LjEtNC45IDIyLjUtNy4xbDYtMS41IDAtMTcuOWMwLTExLjYtMi4yLTE5LjgtNi42LTI0LjdzLTEwLjQtNy4zLTE3LjgtNy4zYy04LjcgMC0xNC44IDIuMS0xOC4xIDYuM3MtNS4xIDkuMy01LjEgMTUuMmMwIDMuNC0uNCA2LjctMS4xIDkuOS0uNyAzLjItMiA2LTMuNyA4LjVzLTQuMyA0LjQtNy42IDUuOGMtMy4zIDEuNS03LjUgMi4yLTEyLjUgMi4yLTcuNyAwLTE0LTIuMi0xOC45LTYuNi00LjgtNC40LTcuMy0xMC03LjMtMTYuOCAwLTYuMyAyLjEtMTIuMSA2LjQtMTcuNSA0LjMtNS40IDEwLTEwIDE3LjMtMTMuOSA3LjMtMy45IDE1LjYtNi45IDI1LjEtOS4yczE5LjYtMy40IDMwLjItMy40YzEzLjEgMCAyNC4zIDEuMiAzMy43IDMuNXMxNy4yIDUuNyAyMy4zIDEwIDEwLjYgOS42IDEzLjUgMTUuNyA0LjQgMTMgNC40IDIwLjZsMCAxMzYuMXpNNjAgMTcyLjlhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHpNNDUyLjIgOTVhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHptNDUgNzcuOWEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAwem0tODkuOSAwYTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6Il19LHM3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuZmMtZGlyZWN0aW9uYWwiLGljb246WzUxMiw1MTIsW10sImU1MzAiLCJNMjExLjggNDg4LjZjMS42IDIuNSAyLjEgNS42IDEuNCA4LjUtLjYgMi45LTIuNCA1LjUtNC45IDcuMS0yLjYgMS42LTUuNiAyLjEtOC42IDEuNS02MS40LTEzLjktMTE1LjYtNDkuOS0xNTIuMi0xMDEuMlMtNS40IDI5MC4zIDEuNiAyMjcuN2M3LTYyLjcgMzYuOC0xMjAuNSA4My43LTE2Mi41IDQ2LjktNDIgMTA3LjctNjUuMiAxNzAuNy02NS4yIDEuNSAwIDIuMSAuMyA0LjMgLjkgMS40IC42IDEuOCAxLjQgMy43IDIuNSAxLjEgMS4xIDEuOSAyLjMgMi41IDMuNyAuNSAxLjQgLjggMi44IC44IDQuM2wwIDEwMSAyNC41LTI1LjljMS0xLjEgMi4yLTIgMy42LTIuNiAxLjMtLjYgMi44LS45IDQuMy0xIDEuNS0uMSAyLjkgLjIgNC4zIC43czIuNyAxLjMgMy44IDIuNGMxIDEgMS45IDIuMiAyLjUgMy42IC42IDEuMyAxIDIuOCAxIDQuM3MtLjIgMy0uNyA0LjNjLS42IDEuNC0xLjQgMi42LTIuNCAzLjdsLTQ0IDQ2LjZjLTEuMSAxLjEtMi4zIDItMy43IDIuNi0xLjUgLjYtMyAuOS01LjQgLjktLjYgMC0yLjItLjMtMy42LS45cy0yLjctMS41LTMuNy0yLjZsLTQ0LjEtNDYuNmMtMi0yLjItMy4xLTUuMS0zLTguMSAwLTMgMS4zLTYuNyAzLjUtNy45IDIuMi0yLjEgNS4xLTMuMiA4LjEtMy4xIDMgLjEgNS44IDEuMyA3LjkgMy41bDI0LjUgMjYgMC04OS41Yy01Ni40IDIuOC0xMDkuOCAyNS44LTE1MC41IDY1LTQwLjYgMzkuMS02NS43IDkxLjctNzAuNiAxNDcuOVMzNC40IDM0OC4xIDY3LjcgMzkzLjdjMzIuNCA0NS41IDgyIDc3LjUgMTM3IDg5LjkgMi45IC43IDUuNSAyLjUgNy4xIDV6TTE3MS40IDEyNi4xYy0uOCAxLjMtMS45IDIuNC0zLjEgMy4yLTIwLjUgMTMuOS0zNy4yIDMyLjYtNDguOCA1NC41cy0xNy43IDQ2LjMtMTcuNyA3MS4xIDYuMSA0OS4yIDE3LjcgNzAuMmMxMS42IDIyLjggMjguMyA0MS41IDQ4LjggNTUuNCAyLjUgMS43IDQuMiA0LjMgNC43IDcuMyAuNiAyLjktLjkgNi0xLjcgOC40LTEuNyAyLjUtNS4yIDQuMi03LjMgMy45LTIuOSAxLjQtNiAuOC04LjQtLjktMjMuNi0xNi00Mi44LTM3LjUtNTYuMS02Mi43LTEzLjMtMjUuMS0yMC4zLTUzLjEtMjAuMy04MS42IDAtMjguNCA3LTU2LjUgMjAuMy04MS42IDEzLjMtMjUuMiAzMi41LTQ2LjcgNTYuMS02Mi43IDEuMi0uOCAyLjYtMS40IDQtMS44IDEuNS0uMyAzLS4zIDQuNSAwIDEuNCAuMiAyLjggLjggNC4xIDEuNnMyLjMgMS45IDMuMiAzLjFjLjggMS4yIDEuNCAyLjYgMS43IDQuMXMuMyAzIDAgNC40Yy0uMyAxLjUtLjggMi45LTEuNyA0LjF6TTM0MC45IDM4My41Yy44LTEuMiAxLjktMi4zIDIuMi0zLjFsMC0uMWMyMS4zLTE0IDM4LTMyLjcgNDkuNi01NC42IDExLjUtMjEuOCAxNy41LTQ2LjIgMTcuNS03MC45cy02LTQ5LjEtMTcuNS03MWMtMTEuNi0yMi43LTI4LjMtNDAuNS00OS42LTU0LjUtLjMtLjgtMS40LTEuOS0yLjItMy4xLS44LTEuMy0xLjQtMi43LTEuNi00LjEtMS4yLTEuNS0uMy0zIDAtNC40IC4zLTEuNSAuOS0yLjkgMS43LTQuMSAuOS0xLjIgMS4xLTIuMyAzLjItMy4xIDEuMi0uOCAyLjYtMS4zIDQuMS0xLjZzMi45LS4zIDQuNCAwIDIuOCAuOSA0LjEgMS44YzIzLjQgMTYgNDIuNyAzNy41IDU1LjkgNjIuNiAxMy4zIDI1LjEgMTkuNCA1My4xIDE5LjQgODEuNSAwIDI4LjUtNi4xIDU2LjUtMTkuNCA4MS42LTEzLjIgMjUuMS0zMi41IDQ2LjYtNTUuOSA2Mi42LTEuMyAuOS0yLjYgMS41LTQuMSAxLjhzLTIuOSAuMy00LjQgMC0yLjktMS43LTQuMS0xLjZjLTIuMS0uOC0yLjMtMS45LTMuMi0zLjEtLjgtMS4yLTEuNC0yLjYtMS43LTQuMS0uMy0xLjQtMS4yLTIuOSAwLTQuNCAuMi0xLjQgLjgtMi44IDEuNi00LjF6TTMxMi4zIDYuM2M1Ni4yIDEyLjcgMTA2LjQgNDQgMTQyLjcgODguNyAzMC40IDM3LjYgNDkuNiA4MyA1NS4zIDEzMSA1LjYgNDgtMi40IDk2LjctMjMuMiAxNDAuMy0yMC45IDQzLjYtNTMuNiA4MC41LTk0LjUgMTA2LjMtNDAuOSAyNS43LTg4LjIgMzkuNC0xMzYuNiAzOS40LTEuNSAwLTIuOS0uMy00LjMtLjktMS40LS41LTIuNi0xLjQtMy43LTIuNC0xLjktMS4xLTEuOS0yLjMtMi40LTMuNy0uNi0xLjQtLjktMi44LS45LTQuM2wwLTk5LjItMjQuNSAyNmMtMi4xIDIuMi00LjkgMi42LTcuOSAzLjYtMyAuMS01LjktMS4xLTguMS00LTIuMi0xLjItMy41LTQtMy41LTctLjEtMyAxLTUuOSAzLTguMWw0NC4xLTQ2LjZjMS4zLTIuMiA1LjEtMy40IDcuMy0zLjQgNCAwIDYuOSAxLjIgOS4xIDMuNGw0NCA0Ni42YzIuMSAyLjIgMy4yIDUuMSAzLjEgOC4xcy0xLjQgNS44LTMuNSA3Yy0yLjIgMi45LTUuMSA0LjEtOC4xIDQtMy0xLTUuOS0xLjQtNy45LTMuNmwtMjQuNS0yNS45IDAgODcuNWM1Ni40LTIuOCAxMDkuOC0yNS44IDE1MC41LTY1IDQwLjctNDAgNjUuOC05MS43IDcwLjctMTQ3LjkgNC44LTU3LjEtMTAuOC0xMTIuMy00NC4xLTE1Ny45LTMzLjMtNDUuNi04Mi03Ny41LTEzNy04OS45LTEuNS0uMy0yLjgtLjktNC4xLTEuOC0xLjItLjktMi4yLTEuOS0zLTMuMi0uOC0xLjItMi4yLTIuNi0xLjYtNC4xLS4yLTEuNS0uMi0zIC4xLTQuNCAuNC0xLjQgMS0yLjggMS44LTQgLjktMS4yIDItMi4yIDMuMi0zIDEuMy0uOCAyLjctMS4zIDQuMS0xLjYgMS41LS4zIDMtLjIgNC40IC4xem00MC44IDI0OS44YzAgMzEuNC0xNy41IDYxLjEtNDkuMyA4My41LTIuMSAxLjUtNC44IDIuMy03LjQgMi0yLjctLjItNS4yLTEuMy03LTMuMmwtNzAuMS02OS44Yy0yLjItMi4xLTQuMi01LTMuNC04IDAtMyAxLjItNS45IDMuMy04IDIuMi0yLjEgNS0zLjMgOC0zLjNzNS45IDEuMiA4IDMuM2w2My4xIDYyLjhjMjAuOC0xNy4xIDMyLjItMzcuOSAzMi4yLTU5LjMgMC0yMy45LTE0LjEtNDctMzkuNy02NS4xLTIuNS0xLjctNC4xLTQuMy00LjYtNy4zLS41LTIuOSAuMS02IDEuOS04LjQgMS43LTIuNSA0LjMtNC4xIDcuMy00LjYgMi45LS41IDYgLjEgOC40IDEuOSAzMS44IDIyLjQgNDkuMyA1Mi4xIDQ5LjMgODMuNXpNMjE2LjcgMzQxLjVjLTMgLjUtNi0uMi04LjUtMS45LTMxLjctMjIuNC01MC4xLTUyLjEtNTAuMS04My41czE4LjQtNjEuMSA1MC4xLTgzLjVjMi4yLTEuNiA0LjktMi4zIDcuNS0yLjEgMi43IC4zIDUuMSAxLjQgNyAzLjNsNzAuMSA2OS44YzIuMSAyLjEgMy4zIDUgMy4zIDhzLTIgNS44LTMuMyA4Yy0yLjEgMi4xLTUgMy4zLTcuOSAzLjMtMyAwLTYuOC0xLjItOC0zLjNsLTYzLjEtNjIuOWMtMjAuOSAxNy4zLTMyLjIgMzgtMzIuMiA1OS40IDAgMjMgMTQuMSA0NyAzOS43IDY1IDIuNCAxLjggNC4xIDQuNCA0LjYgNy40IC41IDIuOS0uMiA1LjktMS45IDguNC0xLjcgMi40LTQuNCA0LjEtNy4zIDQuNnoiXX0sbjdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtYnkiLGljb246WzUxMiw1MTIsW10sImY0ZTciLCJNMzIyLjkgMTk0LjRsMCAxMDEuNC0yOC4zIDAgMCAxMjAuNS03Ny4xIDAgMC0xMjAuNC0yOC4zIDAgMC0xMDEuNWMwLTQuNCAxLjYtOC4yIDQuNi0xMS4zIDMuMS0zLjEgNi45LTQuNyAxMS4zLTQuN2wxMDEuOSAwYzQuMSAwIDcuOCAxLjYgMTEuMSA0LjcgMy4xIDMuMiA0LjggNi45IDQuOCAxMS4zem0tMzIuNS02NC41YTM0LjUgMzQuNSAwIDEgMSAtNjkgLjggMzQuNSAzNC41IDAgMSAxIDY5LS44ek0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6Il19LG83ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bWJyYWNvIixpY29uOls1MTIsNTEyLFtdLCJmOGU4IiwiTTI1Ni4zIDhhMjQ4IDI0OCAwIDEgMCAtLjcgNDk2IDI0OCAyNDggMCAxIDAgLjctNDk2em0xNDUgMjY2Yy0uOCAyNy4xLTUuNCA0OC44LTE0IDY1cy0yMy4xIDI3LjktNDMuNSAzNWMtMjAuNCA3LjEtNDguOSAxMC42LTg1LjQgMTAuNWwtNC42IDBjLTM2LjUgLjEtNjUtMy4zLTg1LjQtMTAuNXMtMzQuOS0xOC44LTQzLjUtMzVjLTguNi0xNi4yLTEzLjItMzcuOS0xNC02NS0uNy0xMC4yLS43LTIwLjUgMC0zMC43IC40LTE0LjcgMS42LTI5LjMgMy42LTQzLjkgMS45LTEzLjQgMy42LTIyLjYgNS40LTMyIDEtNC45IDEuMy02LjQgMS44LTguNCAuMy0xLjEgLjktMi4xIDEuOC0yLjhzMi0xLjEgMy4xLTEuMWwuNyAwIDMyIDVjMS4yIC4yIDIuMiAuOCAzIDEuN3MxLjIgMi4xIDEuMiAzLjNjMCAuMyAwIC41IDAgLjhsLTEuNyA4LjhjLTEuNiA4LjgtMy4yIDIwLjEtNC44IDMzLjctMS43IDE0LTIuNSAyOC4xLTIuNiA0Mi4yLS4yIDI3IDIuNSA0Ni45IDguMSA1OS44IDIuOCA2LjQgNy4yIDEyIDEyLjYgMTYuNHMxMS45IDcuNCAxOC43IDguOGMxOC44IDQgMzguMSA1LjcgNTcuMyA1LjFsMTAuMyAwYzE5LjIgLjYgMzguNS0xLjIgNTcuMy01LjIgNi44LTEuNCAxMy4yLTQuNSAxOC42LTguOHM5LjctMTAgMTIuNS0xNi40YzUuNy0xMi45IDguNC0zMi45IDguMS01OS44LS4xLTE0LjEtMS0yOC4yLTIuNi00Mi4xLTEuNy0xMy42LTMuMy0yNC44LTQuOS0zMy43bC0xLjctOC44YzAtLjMgMC0uNSAwLS44IDAtMS4yIC40LTIuNCAxLjItMy4zczEuOC0xLjUgMy0xLjdsMzItNSAuOCAwYzEuMSAwIDIuMiAuNCAzLjEgMS4xczEuNSAxLjcgMS44IDIuOGMuNiAyIC44IDMuNiAxLjggOC40IDEuOCA5LjYgMy41IDE4LjggNS40IDMyIDIgMTQuNiAzLjIgMjkuMiAzLjYgNDMuOSAuNyAxMC4yIC43IDIwLjUgMCAzMC43bDAgMHoiXX0sbDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imhvb2xpIixpY29uOls2NDAsNTEyLFtdLCJmNDI3IiwiTTE0NC41IDM1MmwzOC4zIC44Yy0xMy4yLTQuNi0yNi0xMC4yLTM4LjMtMTYuOGwwIDE2em01Ny43LTUuM2wwIDUuMy0xOS40IC44YzM2LjUgMTIuNSA2OS45IDE0LjIgOTQuNyA3LjItMTkuOSAuMi00NS44LTIuNi03NS4zLTEzLjN6TTYxMS4xIDIzMS41YzE1LjkgMCAyOC45LTEyLjkgMjguOS0yOC45cy0xMi45LTI0LjUtMjguOS0yNC41Yy0xNS45IDAtMjguOSA4LjYtMjguOSAyNC41czEyLjkgMjguOSAyOC45IDI4Ljl6TTU4Mi4xIDM1Mmw1Ny45IDAgMC0xMTAuNS01Ny45IDAgMCAxMTAuNXptLTczLjcgMGw1Ny45IDAgMC0xOTUuMy01Ny45IDI3LjMgMCAxNjh6bS0zMS0xMTkuNGMtMTguMi0xOC4yLTUwLjQtMTcuMS01MC40LTE3LjFzLTMyLjMtMS4xLTUwLjQgMTcuMWMtMTguMiAxOC4yLTE2LjggMzMuOS0xNi44IDUyLjZzLTEuNCAzNC4zIDE2LjggNTIuNSA1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuOC0zMy44IDE2LjgtNTIuNS0uMS0xOC44IDEuMy0zNC41LTE2LjgtNTIuNnptLTM5LjggNzEuOWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNWwwLTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOWwwIDQwLjR6TTMzMS40IDIzMi42Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMi0xLjEtNTAuNCAxNy4xYy0xLjkgMS45LTMuNyAzLjktNS4zIDYtMzguMi0yOS42LTcyLjUtNDYuNS0xMDIuMS02MS4xbDAtMjAuNy0yMi41IDEwLjZjLTU0LjQtMjIuMS04OS0xOC4yLTk3LjMgLjEgMCAwLTI0LjkgMzIuOCA2MS44IDExMC44bDAgNzMuNyA1Ny45IDAgMC0yOC42Yy02LjUtNC4yLTEzLTguNy0xOS40LTEzLjYtMTQuOC0xMS4yLTI3LjQtMjEuNi0zOC40LTMxLjRsMC0zMWMxMy4xIDE0LjcgMzAuNSAzMS40IDUzLjQgNTAuM2w0LjUgMy42IDAtMjkuOGMwLTYuOSAxLjctMTguMiAxMC44LTE4LjJzMTAuNiA2LjkgMTAuNiAxNWwwIDQ4LjdjMTggMTIuMiAzNy4zIDIyLjEgNTcuNyAyOS42bDAtOTMuOWMwLTE4LjctMTMuNC0zNy40LTQwLjYtMzcuNC0xNS44LS4xLTMwLjUgOC4yLTM4LjUgMjEuOWwwLTU0LjNjNDEuOSAyMC45IDgzLjkgNDYuNSA5OS45IDU4LjMtMTAuMiAxNC42LTkuMyAyOC4xLTkuMyA0My43IDAgMTguNy0xLjQgMzQuMyAxNi44IDUyLjVzNTAuNCAxNy4xIDUwLjQgMTcuMSAzMi4zIDEuMSA1MC40LTE3LjFjMTguMi0xOC4yIDE2LjctMzMuOCAxNi43LTUyLjUgMC0xOC41IDEuNS0zNC4yLTE2LjctNTIuM3pNNjUuMiAxODRsMCA2My4zYy00OC43LTU0LjUtMzguOS03Ni0zNS4yLTc5LjEgMTMuNS0xMS40IDM3LjUtOCA2NC40IDIuMUw2NS4yIDE4NHpNMjkxLjcgMzA0LjVjMCAzLjYtMS44IDEyLjUtMTAuNyAxMi41cy0xMC43LTguOS0xMC43LTEyLjVsMC00MC40YzAtOC43IDcuMy0xMC45IDEwLjctMTAuOXMxMC43IDIuMSAxMC43IDEwLjlsMCA0MC40eiJdfSxwRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0IixpY29uOls0NDgsNTEyLFsiZ2l0LXNxdWFyZSJdLCJmMWQyIiwiTTEyMC44IDMzNS41Yy01LjktLjQtMTIuNi0uOC0yMC4yLTEuMy0zLjMgNC4xLTYuNiA4LjQtNi42IDEzLjUgMCAxOC41IDY1LjUgMTguNSA2NS41LTEuNSAwLTguMy03LjQtOC43LTM4LjgtMTAuN2wuMSAwem03LjgtMTE3LjljLTMyLjMgMC0zMy43IDQ0LjUtLjcgNDQuNSAzMi41IDAgMzEuNy00NC41IC43LTQ0LjV6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yNDMuOSAxNzIuMmMtMTQuNSAwLTIyLjktOC40LTIyLjktMjIuOXM4LjQtMjIuMyAyMi45LTIyLjNjMTQuNyAwIDIzLjEgNy44IDIzLjEgMjIuM3MtOC40IDIyLjktMjMuMSAyMi45ek0xNDkuNiAxOTVsNDkuNSAwIDAgMjEuNi0yMy40IDEuOGM0LjYgNS44IDkuNCAxNCA5LjQgMjUuNyAwIDQ4LjctNTcuMiA0Ny4yLTc0LjIgNDIuNGwtOC40IDEzLjRjNSAuMyA5LjggLjYgMTQuMyAuOCA1Ni4zIDMuMiA4MC41IDQuNiA4MC41IDM4LjUgMCAyOS4yLTI1LjcgNDUuNy02OS45IDQ1LjctNDYgMC02My41LTExLjYtNjMuNS0zMS43IDAtMTEuNCA1LjEtMTcuNSAxNC0yNS45LTguNC0zLjUtMTEuMi05LjktMTEuMi0xNi44IDAtOS42IDcuNC0xNi4zIDIzLTMwLjZsLjItLjJjLTEyLjQtNi4xLTIxLjgtMTkuMy0yMS44LTM4LjEgMC01MS42IDU2LjYtNTMuMyA4MS42LTQ2LjhsLS4xIC4yek0yNzAuNSAzMDMuMWwxMyAxLjggMCAyMC4xLTcyLjQgMCAwLTIwLjFjMi43LS40IDUtLjcgNi45LS45IDkuOS0xLjIgMTAuMS0xLjMgMTAuMS02bDAtNzQuN2MwLTQuNC0uOS00LjctMTAuMS03LjgtMS45LS43LTQuMi0xLjQtNi45LTIuNGwyLjgtMjAuNiA1Mi42IDAgMCAxMDUuNWMwIDQuMSAuMiA0LjYgNC4xIDUuMWwtLjEgMHptMTA2LjYtMTAuNEwzODQgMzE1Yy0xMC45IDUuNC0yNi45IDEwLjItNDEuNCAxMC4yLTMwLjIgMC00MS43LTEyLjItNDEuNy00MC45bDAtNjYuNmMwLS44IDAtMS40LS4yLTEuOC0uOC0xLjItNC4yLS43LTE5LjYtLjdsMC0yMi42YzIyLjMtMi41IDMxLjItMTMuNyAzNC00MS40bDI0LjIgMGMwIDMzLjMtLjYgMzggLjcgMzguNiAuMyAuMSAuNyAwIDEuMyAwbDM1LjggMCAwIDI1LjQtMzcuOCAwIDAgNjEuNmMtLjIgNi4zLS45IDMwLjQgMzcuOSAxNS45bC0uMSAweiJdfSxjN2U9cEUsZDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9kbm9rbGFzc25pa2kiLGljb246WzMyMCw1MTIsW10sImYyNjMiLCJNMjc1LjEgMzM0Yy0yNy40IDE3LjQtNjUuMSAyNC4zLTkwIDI2LjlsMjAuOSAyMC42IDc2LjMgNzYuM2MyNy45IDI4LjYtMTcuNSA3My4zLTQ1LjcgNDUuNy0xOS4xLTE5LjQtNDcuMS00Ny40LTc2LjMtNzYuNkw4NCA1MDMuNGMtMjguMiAyNy41LTczLjYtMTcuNi00NS40LTQ1LjcgMTkuNC0xOS40IDQ3LjEtNDcuNCA3Ni4zLTc2LjNsMjAuNi0yMC42Yy0yNC42LTIuNi02Mi45LTkuMS05MC42LTI2LjktMzIuNi0yMS00Ni45LTMzLjMtMzQuMy01OSA3LjQtMTQuNiAyNy43LTI2LjkgNTQuNi01LjcgMCAwIDM2LjMgMjguOSA5NC45IDI4LjlTMjU1IDI2OS4yIDI1NSAyNjkuMmMyNi45LTIxLjEgNDcuMS04LjkgNTQuNiA1LjcgMTIuNCAyNS43LTEuOSAzOC0zNC41IDU5LjF6bTE0LjYtMjA0LjdhMTI5LjcgMTI5LjcgMCAxIDEgLTI1OS40IC40IDEyOS43IDEyOS43IDAgMSAxIDI1OS40LS40em0tMTkzLjQgLjRhNjMuNyA2My43IDAgMSAwIDEyNy40LS40IDYzLjcgNjMuNyAwIDEgMCAtMTI3LjQgLjR6Il19LHA3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkcnVwYWwiLGljb246WzM4NCw1MTIsW10sImYxYTkiLCJNMjcyLjMgMTA4LjFDMjM2LjUgNzIuNSAyMDIuNSAzOC40IDE5Mi40IDAgMTgyLjQgMzguNCAxNDguMSA3Mi41IDExMi40IDEwOC4xIDU4LjggMTYxLjctMS45IDIyMi40LTEuOSAzMTMuNC00LjMgNDIwLjcgODAuOCA1MDkuNiAxODguMSA1MTJzMTk2LjItODIuOCAxOTguNS0xOTAuMWMuMS0yLjggLjEtNS42IDAtOC41IDAtOTEuMS02MC44LTE1MS43LTExNC4zLTIwNS4zek05OCAzMzEuMWMtNS45IDcuNS0xMSAxNS42LTE1LjIgMjQuMi0uMyAuNy0uOCAxLjMtMS4zIDEuOHMtMS4yIC44LTIgMWwtMS43IDBjLTQuMyAwLTkuMi04LjUtOS4yLTguNS0xLjMtMi0yLjUtNC4yLTMuNy02LjRsLS44LTEuOGMtMTEuMi0yNS43LTEuNS02Mi4zLTEuNS02Mi4zIDQuOC0xNy44IDEyLjctMzQuNyAyMy4yLTQ5LjkgNi40LTkuNiAxMy41LTE4LjkgMjEtMjcuN2w5LjIgOS4yIDQzLjUgNDQuNGMuOCAuOSAxLjMgMi4xIDEuMyAzLjNzLS41IDIuNC0xLjMgMy4zTDExNC4xIDMxMi4zIDk4IDMzMS4xem05Ni42IDEyNy4zYy0xMi45LS4xLTI1LjYtMy45LTM2LjQtMTFzLTE5LjQtMTcuMS0yNC42LTI4LjktNy0yNC45LTUtMzcuNyA3LjYtMjQuNyAxNi4yLTM0LjRjMTQuMi0xNi45IDMxLjUtMzMuNSA1MC4zLTU1LjMgMjIuMyAyMy44IDM2LjkgNDAuMSA1MS4yIDU4IDEuMSAxLjQgMi4xIDIuOSAzIDQuNCA3LjggMTEuMSAxMiAyNC40IDEyIDM4IDAgOC44LTEuNyAxNy40LTUgMjUuNXMtOC4yIDE1LjUtMTQuNCAyMS43LTEzLjUgMTEuMS0yMS42IDE0LjUtMTYuNyA1LjEtMjUuNSA1LjFsLS4yIDB6TTMyMC43IDM1MS42Yy0uNCAxLjQtMS4yIDIuNi0yLjMgMy42cy0yLjQgMS42LTMuOCAxLjhsLTEuMyAwYy0yLjYtLjktNC45LTIuNy02LjMtNS4xLTExLjYtMTcuNS0yNC45LTMzLjktMzkuNS00OWwtMTcuOC0xOC40LTU5LjEtNjEuM2MtMTIuNC0xMS41LTI0LjItMjMuNi0zNS40LTM2LjMtLjMtLjUtLjYtLjktLjktMS40LTItMi44LTMuNi01LjktNC43LTkuMmwwLTEuOGMtLjgtNS0uNC0xMC4xIDEuMi0xNXM0LjQtOS4yIDgtMTIuN2MxMS40LTExLjQgMjMtMjMgMzMuOC0zNC45IDEyIDEzLjMgMjQuOCAyNiAzNy40IDM4LjYgMjUuOCAyNCA0OS4xIDUwLjUgNjkuNiA3OS4xIDE3LjMgMjQuNSAyNi43IDUzLjggMjcgODMuOC0uMSAxMi45LTIuMiAyNS44LTYgMzguMnoiXX0saDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsb2dnZXItYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3ZCIsIk00NDYuNiAyMjIuN2MtMS44LTgtNi44LTE1LjQtMTIuNS0xOC41LTEuOC0xLTEzLTIuMi0yNS0yLjctMjAuMS0uOS0yMi4zLTEuMy0yOC43LTUtMTAuMS01LjktMTIuOC0xMi4zLTEyLjktMjkuNS0uMS0zMy0xMy44LTYzLjctNDAuOS05MS4zLTE5LjMtMTkuNy00MC45LTMzLTY1LjUtNDAuNS01LjktMS44LTE5LjEtMi40LTYzLjMtMi45LTY5LjQtLjgtODQuOCAuNi0xMDguNCAxMC00My41IDE3LjItNzQuNyA1My44LTg2LjEgMTAwLjYtMi4xIDguOC0yLjYgMjIuOS0zLjEgMTAzLjktLjYgMTAxLjUgLjEgMTE2LjQgNi40IDEzNi41IDE1LjYgNDkuNiA1OS45IDg2LjMgMTA0LjQgOTQuMyAxNC44IDIuNyAxOTcuMyAzLjMgMjE2IC44IDMyLjUtNC40IDU4LTE3LjUgODEuOS00MS45IDE3LjMtMTcuNyAyOC4xLTM2LjggMzUuMi02Mi4xIDQuOS0xNy42IDQuNS0xNDIuOCAyLjUtMTUxLjd6TTEyNC41IDE1OS4xYzcuOC03LjkgMTAtOC4yIDU4LjgtOC4yIDQzLjkgMCA0NS40IC4xIDUxLjggMy40IDkuMyA0LjcgMTMuNCAxMS4zIDEzLjQgMjEuOSAwIDkuNS0zLjggMTYuMi0xMi4zIDIxLjYtNC42IDIuOS03LjMgMy4xLTUwLjMgMy4zLTI2LjUgLjItNDcuNy0uNC01MC44LTEuMi0xNi42LTQuNy0yMi44LTI4LjUtMTAuNi00MC44ek0zMTYuMyAzNTguOWwtMTQuOSAyLjQtNzcuNSAuOWMtNjguMSAuOC04Ny4zLS40LTkwLjktMi03LjEtMy4xLTEzLjgtMTEuNy0xNC45LTE5LjQtMS4xLTcuMyAyLjYtMTcuMyA4LjItMjIuNCA3LjEtNi40IDEwLjItNi42IDk3LjMtNi43IDg5LjYtLjEgODkuMS0uMSA5Ny42IDcuOCAxMi4xIDExLjMgOS41IDMxLjItNC45IDM5LjR6Il19LHU3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnZpc2lvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjdiMCIsIk00MDcuNCAzMkw0MC42IDMyQzE4LjIgMzIgMCA1MC4yIDAgNzIuNkwwIDQzOS40QzAgNDYxLjggMTguMiA0ODAgNDAuNiA0ODBsMzY2LjggMGMyMi40IDAgNDAuNi0xOC4yIDQwLjYtNDAuNmwwLTM2Ni44QzQ0OCA1MC4yIDQyOS44IDMyIDQwNy40IDMyek0xNzYuMSAxNDUuNmMuNCAyMy40LTIyLjQgMjcuMy0yNi42IDI3LjQtMTQuOSAwLTI3LjEtMTItMjcuMS0yNyAuMS0zNS4yIDUzLjEtMzUuNSA1My43LS40ek0zMzIuOCAzNzdjLTY1LjYgMC0zNC4xLTc0LTI1LTEwNi42IDE0LjEtNDYuNC00NS4yLTU5LTU5LjkgLjdsLTI1LjggMTAzLjMtNDUuMSAwIDguMS0zMi41Yy0zMS41IDUxLjgtOTQuNiA0NC40LTk0LjYtNC4zIC4xLTE0LjMgLjktMTQgMjMtMTA0LjFsLTMxLjggMCA5LjctMzUuNiA3Ni40IDBjLTMzLjYgMTMzLjctMzIuNiAxMjYuOS0zMi45IDEzOC4yIDAgMjAuOSA0MC45IDEzLjUgNTcuNC0yMy4ybDE5LjgtNzkuNC0zMi4zIDAgOS43LTM1LjYgNjguOCAwLTguOSA0MC41YzQwLjUtNzUuNSAxMjcuOS00Ny44IDEwMS44IDM4LTE0LjIgNTEuMS0xNC42IDUwLjctMTQuOSA1OC44IDAgMTUuNSAxNy41IDIyLjYgMzEuOC0xNi45TDM4NiAzMjVjLTEwLjUgMzYuNy0yOS40IDUyLTUzLjIgNTJ6Il19LGY3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1mIixpY29uOlszMjAsNTEyLFtdLCJmMzllIiwiTTgwIDI5OS4zbDAgMjEyLjcgMTE2IDAgMC0yMTIuNyA4Ni41IDAgMTgtOTcuOC0xMDQuNSAwIDAtMzQuNmMwLTUxLjcgMjAuMy03MS41IDcyLjctNzEuNSAxNi4zIDAgMjkuNCAuNCAzNyAxLjJsMC04OC43QzI5MS40IDQgMjU2LjQgMCAyMzYuMiAwIDEyOS4zIDAgODAgNTAuNSA4MCAxNTkuNGwwIDQyLjEtNjYgMCAwIDk3LjggNjYgMHoiXX0sbTdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNlbnRvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4OSIsIk0yODkuNiA5Ny41bDMxLjYgMzEuNy03Ni4zIDc2LjUgMC0xMDguMiA0NC43IDB6TTEyNy4yIDEyOS4ybDc2LjMgNzYuNSAwLTEwOC4yLTQ0LjcgMC0zMS42IDMxLjd6bTQxLjUtNDEuNmw0NC43IDAgMCAxMjcuOSAxMC44IDEwLjggMTAuOC0xMC44IDAtMTI3LjkgNDQuNyAwLTU1LjUtNTUuNi01NS41IDU1LjZ6bTI2LjIgMTY4LjFsLTEwLjgtMTAuOC0xMjguNiAwIDAtNDQuOC01NS41IDU1LjYgNTUuNSA1NS42IDAtNDQuOCAxMjguNiAwIDEwLjgtMTAuOHpNMjc0LjIgMjM1bDEwNy45IDAgMC00NC44LTMxLjYtMzEuNy03Ni4zIDc2LjV6bTE3My4zIDIwLjdsLTU1LjUtNTUuNiAwIDQ0LjgtMTI3LjcgMC0xMC44IDEwLjggMTAuOCAxMC44IDEyNy43IDAgMCA0NC44IDU1LjUtNTUuNnpNNjUuNCAxNzYuMmwzMi41LTMxLjcgOTAuMyA5MC41IDE1LjMgMCAwLTE1LjMtOTAuMy05MC41IDMxLjYtMzEuNy03OS40IDAgMCA3OC43ek0zODIuMSA5Ny41bC03OC41IDAgMzEuNiAzMS43LTkwLjMgOTAuNSAwIDE1LjMgMTUuMyAwIDkwLjMtOTAuNSAzMS42IDMxLjcgMC03OC43ek0yMDMuNSA0MTMuOWwwLTEwOC4xLTc2LjMgNzYuNSAzMS42IDMxLjcgNDQuNyAwIDAtLjF6TTY1LjQgMjM1bDEwOC44IDAtNzYuMy03Ni41LTMyLjUgMzEuNyAwIDQ0Ljh6TTM4Mi4xIDMzNS4ybC0zMS42IDMxLjctOTAuMy05MC41LTE1LjMgMCAwIDE1LjMgOTAuMyA5MC41LTMxLjYgMzEuNyA3OC41IDAgMC03OC43em0wLTU4LjhsLTEwNy45IDAgNzYuMyA3Ni41IDMxLjYtMzEuNyAwLTQ0Ljh6TTMyMS4yIDM4Mi4ybC03Ni4zLTc2LjUgMCAxMDguMSA0NC43IDAgMzEuNi0zMS42ek05Ny45IDM1Mi45bDc2LjMtNzYuNS0xMDguOCAwIDAgNDQuOCAzMi41IDMxLjd6bTE4MS44IDcwLjlsLTQ0LjcgMCAwLTEyNy45LTEwLjgtMTAuOC0xMC44IDEwLjggMCAxMjcuOS00NC43IDAgNTUuNSA1NS42IDU1LjUtNTUuNnpNMTEzLjIgMzgyLjJsOTAuMy05MC41IDAtMTUuMy0xNS4zIDAtOTAuMyA5MC41LTMyLjUtMzEuNyAwIDc4LjcgNzkuNCAwLTMxLjYtMzEuN3oiXX0sZzdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjYWxld2F5IixpY29uOls0NDgsNTEyLFtdLCJlODU5IiwiTTI0My40IDExNy4zbC04NC4zIDBjLTE4LjUgMi4xLTMyLjcgMTcuNS0zMy40IDM2bDAgMTIxLjljMCA4LjIgMy4yIDE1LjMgOC41IDIwLjdzMTIuNSA4LjYgMjAuNiA4LjZjMTYgMCAyOS4yLTEzLjIgMjkuMi0yOS4ybDAtNzcuNGMwLTEyLjEgMTAtMjIuMSAyMi4xLTIyLjFsMzguMSAwYzguMiAwIDE1LjMtMy4yIDIwLjYtOC42czguNS0xMi44IDguNS0yMWMwLTE2LTEzLjktMjguOS0yOS45LTI4Ljl6TTIwNS4zIDM5NS40bDg0LjMgMGMxOC41LTIuMSAzMi43LTE3LjUgMzMuNC0zNmwwLTEyMS45YzAtOC4yLTMuMi0xNS4zLTguNS0yMC43cy0xMi41LTguNi0yMC42LTguNmMtMTYgMC0yOS4yIDEzLjItMjkuMiAyOS4ybDAgNzcuNGMwIDEyLjEtMTAgMjIuMS0yMi4xIDIyLjFsLTM4LjEgMGMtOC4yIDAtMTUuMyAzLjItMjAuNiA4LjZzLTguNSAxMi44LTguNSAyMWMuNCAxNiAxMy45IDI4LjkgMjkuOSAyOC45ek0xMDQuMyAwTDI1Ny42IDBjMTAxIDAgMTgyLjUgODEuNiAxODIuMSAxODIuOWwwIDI0Mi44Yy00LjYgNDYtNDIgODIuNC04OC4yIDg2LjNMMTkwIDUxMkM4OS4zIDUxMiA3LjUgNDMwIDcuNSAzMjkuMUw3LjUgOTdjMC01My41IDQzLjQtOTcgOTYuOC05N3pNMzgxLjcgMTgyLjljMC02OC41LTU1LjktMTI0LjQtMTI0LjItMTI0LjRsLTE1MyAwQzgzLjMgNTguNSA2Ni4yIDc1LjYgNjYuMiA5N2wwIDIzMi4xYzAgNjguOCA1NS41IDEyNC40IDEyNC4yIDEyNC40bDE1OC43IDBjMTYuNy0yLjEgMjkuOS0xNSAzMi43LTMxLjRsMC0yMzkuMnoiXX0sYjdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWFtYXpvbi1wYXkiLGljb246WzU3Niw1MTIsW10sImY0MmQiLCJNMTI0LjcgMjAxLjhjLjEtMTEuOCAwLTIzLjUgMC0zNS4zbDAtMzUuM2MwLTEuMyAuNC0yIDEuNC0yLjcgMTEuNS04IDI0LjEtMTIuMSAzOC4yLTExLjEgMTIuNSAuOSAyMi43IDcgMjguMSAyMS43IDMuMyA4LjkgNC4xIDE4LjIgNC4xIDI3LjcgMCA4LjctLjcgMTcuMy0zLjQgMjUuNi01LjcgMTcuOC0xOC43IDI0LjctMzUuNyAyMy45LTExLjctLjUtMjEuOS01LTMxLjQtMTEuNy0uOS0uOC0xLjQtMS42LTEuMy0yLjh6bTE1NC45IDE0LjZjNC42IDEuOCA5LjMgMiAxNC4xIDEuNSAxMS42LTEuMiAyMS45LTUuNyAzMS4zLTEyLjUgLjktLjYgMS4zLTEuMyAxLjMtMi41LS4xLTMuOSAwLTcuOSAwLTExLjggMC00LS4xLTggMC0xMiAwLTEuNC0uNC0yLTEuOC0yLjItNy0uOS0xMy45LTIuMi0yMC45LTIuOS03LS42LTE0LS4zLTIwLjggMS45LTYuNyAyLjItMTEuNyA2LjItMTMuNyAxMy4xLTEuNiA1LjQtMS42IDEwLjggLjEgMTYuMiAxLjYgNS41IDUuMiA5LjIgMTAuNCAxMS4yek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zNjguNSAxMDMuOWMuNCAxLjcgLjkgMy40IDEuNiA1LjEgMTYuNSA0MC42IDMyLjkgODEuMyA0OS41IDEyMS45IDEuNCAzLjUgMS43IDYuNCAuMiA5LjktMi44IDYuMi00LjkgMTIuNi03LjggMTguNy0yLjYgNS41LTYuNyA5LjUtMTIuNyAxMS4yLTQuMiAxLjEtOC41IDEuMy0xMi45IC45LTIuMS0uMi00LjItLjctNi4zLS44LTIuOC0uMi00LjIgMS4xLTQuMyA0LS4xIDIuOC0uMSA1LjYgMCA4LjMgLjEgNC42IDEuNiA2LjcgNi4yIDcuNSA0LjcgLjggOS40IDEuNiAxNC4yIDEuNyAxNC4zIC4zIDI1LjctNS40IDMzLjEtMTcuOSAyLjktNC45IDUuNi0xMC4xIDcuNy0xNS40IDE5LjgtNTAuMSAzOS41LTEwMC4zIDU5LjItMTUwLjUgLjYtMS41IDEuMS0zIDEuMy00LjYgLjQtMi40LS43LTMuNi0zLjEtMy43LTUuNi0uMS0xMS4xIDAtMTYuNyAwLTMuMSAwLTUuMyAxLjQtNi40IDQuMy0uNCAxLjEtLjkgMi4zLTEuMyAzLjRsLTI5LjEgODMuN2MtMi4xIDYuMS00LjIgMTIuMS02LjUgMTguNi0uNC0uOS0uNi0xLjQtLjgtMS45LTEwLjgtMjkuOS0yMS42LTU5LjktMzIuNC04OS44LTEuNy00LjctMy41LTkuNS01LjMtMTQuMi0uOS0yLjUtMi43LTQtNS40LTQtNi40LS4xLTEyLjgtLjItMTkuMi0uMS0yLjIgMC0zLjMgMS42LTIuOCAzLjd6TTI0Mi40IDIwNmMxLjcgMTEuNyA3LjYgMjAuOCAxOCAyNi42IDkuOSA1LjUgMjAuNyA2LjIgMzEuNyA0LjYgMTIuNy0xLjkgMjMuOS03LjMgMzMuOC0xNS41IC40LS4zIC44LS42IDEuNC0xIC41IDMuMiAuOSA2LjIgMS41IDkuMiAuNSAyLjYgMi4xIDQuMyA0LjUgNC40IDQuNiAuMSA5LjEgLjEgMTMuNyAwIDIuMy0uMSAzLjgtMS42IDQtMy45IC4xLS44IC4xLTEuNiAuMS0yLjNsMC04OC44YzAtMy42LS4yLTcuMi0uNy0xMC44LTEuNi0xMC44LTYuMi0xOS43LTE1LjktMjUuNC01LjYtMy4zLTExLjgtNS0xOC4yLTUuOS0zLS40LTYtLjctOS4xLTEuMWwtMTAgMGMtLjggLjEtMS42IC4zLTIuNSAuMy04LjIgLjQtMTYuMyAxLjQtMjQuMiAzLjUtNS4xIDEuMy0xMCAzLjItMTUgNC45LTMgMS00LjUgMy4yLTQuNCA2LjUgLjEgMi44LS4xIDUuNiAwIDguMyAuMSA0LjEgMS44IDUuMiA1LjcgNC4xIDYuNS0xLjcgMTMuMS0zLjUgMTkuNy00LjggMTAuMy0xLjkgMjAuNy0yLjcgMzEuMS0xLjIgNS40IC44IDEwLjUgMi40IDE0LjEgNyAzLjEgNCA0LjIgOC44IDQuNCAxMy43IC4zIDYuOSAuMiAxMy45IC4zIDIwLjggMCAuNC0uMSAuNy0uMiAxLjItLjQgMC0uOCAwLTEuMS0uMS04LjgtMi4xLTE3LjctMy42LTI2LjgtNC4xLTkuNS0uNS0xOC45IC4xLTI3LjkgMy4yLTEwLjggMy44LTE5LjUgMTAuMy0yNC42IDIwLjgtNC4xIDguMy00LjYgMTctMy40IDI1Ljh6TTk4LjcgMTA2LjlsMCAxNzUuM2MwIC44IDAgMS43IC4xIDIuNSAuMiAyLjUgMS43IDQuMSA0LjEgNC4yIDUuOSAuMSAxMS44IC4xIDE3LjcgMCAyLjUgMCA0LTEuNyA0LjEtNC4xIC4xLS44IC4xLTEuNyAuMS0yLjVsMC02MC43Yy45IC43IDEuNCAxLjIgMS45IDEuNiAxNSAxMi41IDMyLjIgMTYuNiA1MS4xIDEyLjkgMTcuMS0zLjQgMjguOS0xMy45IDM2LjctMjkuMiA1LjgtMTEuNiA4LjMtMjQuMSA4LjctMzcgLjUtMTQuMy0xLTI4LjQtNi44LTQxLjctNy4xLTE2LjQtMTguOS0yNy4zLTM2LjctMzAuOS0yLjctLjYtNS41LS44LTguMi0xLjJsLTcgMGMtMS4yIC4yLTIuNCAuMy0zLjYgLjUtMTEuNyAxLjQtMjIuMyA1LjgtMzEuOCAxMi43LTIgMS40LTMuOSAzLTUuOSA0LjUtLjEtLjUtLjMtLjgtLjQtMS4yLS40LTIuMy0uNy00LjYtMS4xLTYuOS0uNi0zLjktMi41LTUuNS02LjQtNS42bC05LjcgMGMtNS45LS4xLTYuOSAxLTYuOSA2Ljh6TTQ5My42IDMzOWMtMi43LS43LTUuMSAwLTcuNiAxLTQzLjkgMTguNC04OS41IDMwLjItMTM2LjggMzUuOC0xNC41IDEuNy0yOS4xIDIuOC00My43IDMuMi0yNi42IC43LTUzLjItLjgtNzkuNi00LjMtMTcuOC0yLjQtMzUuNS01LjctNTMtOS45LTM3LTguOS03Mi43LTIxLjctMTA2LjctMzguOC04LjgtNC40LTE3LjQtOS4zLTI2LjEtMTQtMy44LTIuMS02LjItMS41LTguMiAyLjFsMCAxLjdjMS4yIDEuNiAyLjIgMy40IDMuNyA0LjggMzYgMzIuMiA3Ni42IDU2LjUgMTIyIDcyLjkgMjEuOSA3LjkgNDQuNCAxMy43IDY3LjMgMTcuNSAxNCAyLjMgMjggMy44IDQyLjIgNC41IDMgLjEgNiAuMiA5IC40IC43IDAgMS40IC4yIDIuMSAuM2wxNy43IDBjLjctLjEgMS40LS4zIDIuMS0uMyAxNC45LS40IDI5LjgtMS44IDQ0LjYtNCAyMS40LTMuMiA0Mi40LTguMSA2Mi45LTE0LjcgMjkuNi05LjYgNTcuNy0yMi40IDgzLjQtNDAuMSAyLjgtMS45IDUuNy0zLjggOC02LjIgNC4zLTQuNCAyLjMtMTAuNC0zLjMtMTEuOXpNNTQ0IDMxMS4zYy0uOC00LjItNC01LjgtNy42LTctNS43LTEuOS0xMS42LTIuOC0xNy42LTMuMy0xMS0uOS0yMi0uNC0zMi44IDEuNi0xMiAyLjItMjMuNCA2LjEtMzMuNSAxMy4xLTEuMiAuOC0yLjQgMS44LTMuMSAzLS42IC45LS43IDIuMy0uNSAzLjQgLjMgMS4zIDEuNyAxLjYgMyAxLjUgLjYgMCAxLjIgMCAxLjgtLjFsMTkuNS0yLjFjOS42LS45IDE5LjItMS41IDI4LjgtLjggNC4xIC4zIDguMSAxLjIgMTIgMi4yIDQuMyAxLjEgNi4yIDQuNCA2LjQgOC43IC4zIDYuNy0xLjIgMTMuMS0yLjkgMTkuNS0zLjUgMTIuOS04LjMgMjUuNC0xMy4zIDM3LjgtLjMgLjgtLjcgMS43LS44IDIuNS0uNCAyLjUgMSA0IDMuNCAzLjUgMS40LS4zIDMtMS4xIDQtMi4xIDMuNy0zLjYgNy41LTcuMiAxMC42LTExLjIgMTAuNy0xMy44IDE3LTI5LjYgMjAuNy00Ni42IC43LTMgMS4yLTYuMSAxLjctOS4xIC4yLTQuNyAuMi05LjYgLjItMTQuNXoiXX0sdjdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImViYXkiLGljb246WzY0MCw1MTIsW10sImY0ZjQiLCJNNjA2LjUgMTg5LjVsLTU0LjggMTA5LjktNTQuOS0xMDkuOS0zNy41IDAgMTAuOSAyMC42Yy0xMS41LTE5LTM1LjktMjYtNjMuMy0yNi0zMS44IDAtNjcuOSA4LjctNzEuNSA0My4xbDMzLjcgMGMxLjQtMTMuOCAxNS43LTIxLjggMzUtMjEuOCAyNiAwIDQxIDkuNiA0MSAzM2wwIDMuNGMtMTIuNyAwLTI4IC4xLTQxLjcgLjQtNDIuNCAuOS02OS42IDEwLTc2LjcgMzQuNCAxLTUuMiAxLjUtMTAuNiAxLjUtMTYuMiAwLTUyLjEtMzkuNy03Ni4yLTc1LjQtNzYuMi0yMS4zIDAtNDMgNS41LTU4LjcgMjQuMmwwLTgwLjYtMzIuMSAwIDAgMTY5LjVjMCAxMC4zLS42IDIyLjktMS4xIDMzLjFsMzEuNSAwYy43LTYuMyAxLjEtMTIuOSAxLjEtMTkuNSAxMy42IDE2LjYgMzUuNCAyNC45IDU4LjcgMjQuOSAzNi45IDAgNjQuOS0yMS45IDczLjMtNTQuMi0uNSAyLjgtLjcgNS44LS43IDkgMCAyNC4xIDIxLjEgNDUgNjAuNiA0NSAyNi42IDAgNDUuOC01LjcgNjEuOS0yNS41IDAgNi42IC4zIDEzLjMgMS4xIDIwLjJsMjkuOCAwYy0uNy04LjItMS0xNy41LTEtMjYuOGwwLTY1LjZjMC05LjMtMS43LTE3LjItNC44LTIzLjhsNjEuNSAxMTYuMS0yOC41IDU0LjEgMzUuOSAwIDk5LjItMTk0LjgtMzQgMHpNMjQ0LjIgMzEzLjhjLTI5LjYgMC01MC4yLTIxLjUtNTAuMi01My44IDAtMzIuNCAyMC42LTUzLjggNTAuMi01My44IDI5LjggMCA1MC4yIDIxLjQgNTAuMiA1My44IDAgMzIuMy0yMC40IDUzLjgtNTAuMiA1My44em0yMDAuOS00Ny4zYzAgMzAtMTcuOSA0OC40LTUxLjYgNDguNC0yNS4xIDAtMzUtMTMuNC0zNS0yNS44IDAtMTkuMSAxOC4xLTI0LjQgNDcuMi0yNS4zIDEzLjEtLjUgMjcuNi0uNiAzOS40LS42bDAgMy4zek0zMy4yIDI2OC4xbDEyOC44IDAgMC04LjVjMC01MS43LTMzLjEtNzUuNC03OC40LTc1LjQtNTYuOCAwLTgzIDMwLjgtODMgNzcuNiAwIDQyLjUgMjUuMyA3NCA4Mi41IDc0IDMxLjQgMCA2OC0xMS43IDc0LjQtNDYuMWwtMzMuMSAwYy0xMiAzNS44LTg3LjcgMzYuNy05MS4yLTIxLjZ6bTk1LTIxLjRsLTk0LjQgMGM2LjktNTYuNiA5Mi4xLTU0LjcgOTQuNCAweiJdfSx5N2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29udGFvIixpY29uOls1MTIsNTEyLFtdLCJmMjZkIiwiTTQ1LjQgMzA1YzE0LjQgNjcuMSAyNi40IDEyOSA2OC4yIDE3NUwzNCA0ODBjLTE4LjcgMC0zNC0xNS4yLTM0LTM0TDAgNjZDMCA0Ny4zIDE1LjIgMzIgMzQgMzJsNTcuNyAwYy0xMy44IDEyLjYtMjYuMSAyNy4yLTM2LjkgNDMuNi00NS40IDcwLTI3IDE0Ni44LTkuNCAyMjkuNHpNNDc4IDMybC05MC4yIDBjMjEuNCAyMS40IDM5LjIgNDkuNSA1Mi43IDg0LjFMMzAzLjQgMTQ1LjRjLTE0LjktMjktMzcuOC01My4zLTgyLjYtNDMuOS0yNC42IDUuMy00MSAxOS4zLTQ4LjMgMzQuNi04LjggMTguNy0xMy4yIDM5LjggOC4yIDE0MC4zIDIxLjEgMTAwLjIgMzMuNyAxMTcuNyA0OS41IDEzMS4yIDEyLjkgMTEuMSAzMy40IDE3IDU4LjMgMTEuNyA0NC41LTkuNCA1NS43LTQwLjcgNTcuNC03My4ybDEzNy40LTI5LjZjMy4yIDcxLjUtMTguNyAxMjUuMi01Ny40IDE2My42bDUyLjEgMGMxOC43IDAgMzQtMTUuMiAzNC0zNEw1MTIgNjZjMC0xOC44LTE1LjItMzQtMzQtMzR6Il19LHg3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGxvIixpY29uOls1MTIsNTEyLFtdLCJmNWYxIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzk5LjggMjkzLjJDMzgzLjMgMzU4LjUgMzIzLjggNDA0LjggMjU2IDQwNC44UzEyOC43IDM1OC41IDExMi4yIDI5My4yYy0xLjYtNy40IDIuNS0xNS43IDkuOS0xNy40czE1LjcgMi41IDE3LjQgOS45YzE0IDUyLjkgNjIgOTAuMSAxMTYuNiA5MC4xczEwMi41LTM3LjIgMTE2LjYtOTAuMWMxLjctNy40IDkuOS0xMi40IDE3LjQtOS45IDcuNCAxLjcgMTIuNCA5LjkgOS45IDE3LjR6Il19LHc3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaXN0cml4IixpY29uOls0NDgsNTEyLFtdLCJmM2VlIiwiTTQ0OCA0NDlMMzAxLjIgMzAwLjJjMjAtMjcuOSAzMS45LTYyLjIgMzEuOS05OS4yIDAtOTMuMS03NC43LTE2OC45LTE2Ni41LTE2OC45LTkxLjktLjEtMTY2LjYgNzUuNy0xNjYuNiAxNjguOFM3NC43IDM2OS44IDE2Ni41IDM2OS44YzM5LjggMCA3Ni4zLTE0LjIgMTA1LTM3LjlMNDE3LjUgNDgwIDQ0OCA0NDl6TTE2Ni41IDMzMC44Yy03MC42IDAtMTI4LjEtNTguMy0xMjguMS0xMjkuOVM5NS45IDcxIDE2Ni41IDcxIDI5NC42IDEyOS4zIDI5NC42IDIwMC45IDIzNy4yIDMzMC44IDE2Ni41IDMzMC44eiJdfSxNN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGVyaXNjb3BlIixpY29uOls0NDgsNTEyLFtdLCJmM2RhIiwiTTM3MCA2My42Yy0zOC42LTQxLTg5LjUtNjMuNi0xNDMuNC02My42LTExNC43IDAtMjA4LjEgOTYuMi0yMDguMSAyMTQuNCAwIDc1LjEgNTcuOCAxNTkuOCA4Mi43IDE5Mi43IDM2LjYgNDguNCA5MS40IDEwNC45IDEyNS40IDEwNC45IDQxLjYgMCAxMTIuOS05NC4yIDEyMC45LTEwNSAyNC42LTMzLjEgODItMTE4LjMgODItMTkyLjYgMC01Ni41LTIxLjEtMTEwLjEtNTkuNS0xNTAuOHpNMjI2LjYgNDkzLjljLTQyLjUgMC0xOTAtMTY3LjMtMTkwLTI3OS40IDAtMTA3LjQgODMuOS0xOTYuMyAxOTAtMTk2LjMgMTAwLjggMCAxODQuNyA4OSAxODQuNyAxOTYuMyAuMSAxMTIuMS0xNDcuNCAyNzkuNC0xODQuNyAyNzkuNHpNMzM4IDIwNi44YzAgNTkuMS01MS4xIDEwOS43LTExMC44IDEwOS43LTEwMC42IDAtMTUwLjctMTA4LjItOTIuOS0xODEuOGwwIC40YzAgMjQuNSAyMC4xIDQ0LjQgNDQuOCA0NC40czQ0LjgtMTkuOSA0NC44LTQ0LjRjMC0xOC4yLTExLjEtMzMuOC0yNi45LTQwLjcgNzYuNi0xOS4yIDE0MSAzOS4zIDE0MSAxMTIuNHoiXX0sejdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV4cGVkaXRlZHNzbCIsaWNvbjpbNTEyLDUxMixbXSwiZjIzZSIsIk0yNTYgNDMuNGEyMTIuNiAyMTIuNiAwIDEgMCAwIDQyNS4yIDIxMi42IDIxMi42IDAgMSAwIDAtNDI1LjJ6TTE1OC42IDE3Ni4zYzAtNTMuNyA0My43LTk3LjQgOTcuNC05Ny40czk3LjQgNDMuNyA5Ny40IDk3LjRsMCAyNi42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjZjMC04Mi4xLTEyNC04Mi4xLTEyNCAwbDAgMjYuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi42IC4yIDB6TTM5Ny43IDM4MGMwIDkuNy04IDE3LjctMTcuNyAxNy43bC0yNDggMGMtOS43IDAtMTcuNy04LTE3LjctMTcuN2wwLTE0MS43YzAtOS43IDgtMTcuNyAxNy43LTE3LjdsMjQ4IDBjOS43IDAgMTcuNyA4IDE3LjcgMTcuN2wwIDE0MS43em0tMjQ4LTEzNy4zbDAgMTMyLjljMCAyLjUtMS45IDQuNC00LjQgNC40bC04LjkgMGMtMi41IDAtNC40LTEuOS00LjQtNC40bDAtMTMyLjljMC0yLjUgMS45LTQuNCA0LjQtNC40bDguOSAwYzIuNSAwIDQuNCAxLjkgNC40IDQuNHptMTQxLjcgNDguN2MwIDEzLTcuMiAyNC40LTE3LjcgMzAuNGwwIDMxLjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMzEuNmMtMTAuNS02LjEtMTcuNy0xNy40LTE3LjctMzAuNCAwLTE5LjcgMTUuOC0zNS40IDM1LjQtMzUuNHMzNS41IDE1LjggMzUuNSAzNS40ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgMTcuN2EyMzAuMyAyMzAuMyAwIDEgMSAwIDQ2MC42IDIzMC4zIDIzMC4zIDAgMSAxIDAtNDYwLjZ6Il19LGs3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuYXBzdGVyIixpY29uOls1MTIsNTEyLFtdLCJmM2QyIiwiTTMwNi4zIDM3My42Yy0xNC4yIDEzLjYtMzEuMyAyNC4xLTUwLjQgMzAuNS0xOS02LjQtMzYuMi0xNi45LTUwLjMtMzAuNWwxMDAuNyAwem00NC0xOTkuNmMyMC0xNi45IDQzLjYtMjkuMiA2OS42LTM2LjJsMCAxNjEuMmMwIDIxOS40LTMyOCAyMTcuNi0zMjggLjNsMC0xNjEuNmMyNS45IDYuOSA0OS42IDE5LjYgNjkuNSAzNi40IDU2LjgtNDAgMTMyLjUtMzkuOSAxODguOS0uMXpNMTQxLjUgMTE1LjVjNjQuNC02MCAxNjQuMy02MC4xIDIyOC45LS4yLTcuMSAzLjUtMTMuOSA3LjMtMjAuNiAxMS41LTU4LjctMzAuNS0xMjkuMi0zMC40LTE4Ny45IC4xLTYuMy00LTEzLjktOC4yLTIwLjQtMTEuNHpNNTEuOCA5My4ybDAgNjkuM2MtNTguNCAzNi41LTU4LjQgMTIxLjEgLjEgMTU4LjMgMjYuNCAyNDUuMSAzODEuNyAyNDAuMyA0MDcuNiAxLjVsLjMtMS43YzU4LjctMzYuMyA1OC45LTEyMS43IC4yLTE1OC4ybDAtNjkuMmMtMTcuMyAuNS0zNCAzLTUwLjEgNy40LTgyLTkxLjUtMjI1LjUtOTEuNS0zMDcuNSAuMS0xNi4zLTQuNC0zMy4xLTctNTAuNi03LjV6TTI2Ny4yIDM1MnMzNi0uMyA2MS4zLTEuNWMxMC4yLS41IDIxLjEtNCAyNS41LTYuNSAyNi4zLTE1LjEgMjUuNC0zOS4yIDI2LjItNDcuNC03OS41LS42LTk5LjktMy45LTExMyA1NS40ek0xMzEuNyAyOTYuN2MuOCA4LjItLjEgMzIuMyAyNi4yIDQ3LjQgNC40IDIuNSAxNS4yIDYgMjUuNSA2LjUgMjUuMyAxLjEgNjEuMyAxLjUgNjEuMyAxLjUtMTMuMi01OS40LTMzLjctNTYuMS0xMTMtNTUuNHpNMzAwLjggNDIwLjFjLTMuMi01LjMtNi45LTcuMy02LjktNy4zLTI0LjggNy4zLTUyLjIgNi45LTc1LjkgMCAwIDAtMi45IDEuNS02LjQgNi42LTIuOCA0LjEtMy43IDkuNi0zLjcgOS42IDI5LjEgMTcuNiA2Ny4xIDE3LjYgOTYuMiAwLS4xLS4xLS4zLTQtMy4zLTguOXoiXX0sUzdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlbGljaW91cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjFhNSIsIk00NDYuNiA2OGMtLjQtMS41LS45LTMtMS40LTQuNS0uOS0yLjUtMi00LjgtMy4zLTcuMS0xLjQtMi40LTMtNC44LTQuNy02LjktMi4xLTIuNS00LjQtNC44LTYuOS02LjgtMS4xLS45LTIuMi0xLjctMy4zLTIuNS0xLjMtLjktMi42LTEuNy00LTIuNC0xLjgtMS0zLjYtMS44LTUuNS0yLjUtMS43LS43LTMuNS0xLjMtNS40LTEuNy0zLjgtMS03LjktMS41LTEyLTEuNWwtMzUyIDBDMjEuNiAzMiAuMSA1My41IC4xIDgwbDAgMzUyYzAgNC4xIC41IDguMiAxLjUgMTIgMiA3LjcgNS44IDE0LjYgMTEgMjAuMyAxIDEuMSAyLjEgMi4yIDMuMyAzLjMgNS43IDUuMiAxMi42IDkgMjAuMyAxMSAzLjggMSA3LjkgMS41IDEyIDEuNWwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1Mi4xYy0uMS00LjEtLjYtOC4yLTEuNi0xMnpNNDE2LjEgNDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMTc2IDAgMC0xOTItMTkyIDAgMC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDE3NiAwIDAgMTkyIDE5MiAwIDAgMTc2eiJdfSxDN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3VpbGRlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3ZSIsIk00NDMuOSA2NEw1IDY0YzAgMTAzLjMgMjIuMiAxODAuMSA0My40IDIyMi40IDY0LjEgMTI3LjggMTc2IDE2MS42IDE3Ny4zIDE2MS42IDU1LjctMjAuNSAxMDQuNS01Ni4zIDE0MC42LTEwMy41IDI1LjktMzMuOSA1My4xLTg3LjIgNjUuOS0xNDUuOGwtMjU5LjkgMGM0LjEgMzYuNCAyMi4yIDY3LjkgNDUuMSA4Ni45bDg4LjYgMGMtMTcgMjguMi00OC4yIDU0LjQtODAuNSA2OS41LTMxLjItMTMuMy02OS4xLTQ2LjUtOTYuNS05OC40LTI2LjctNTMuOC0yNy4xLTEwNS45LTI3LjEtMTA1LjlsMzM2LjEgMGM0LTI4LjggNS45LTU3LjkgNS45LTg2Ljl6Il19LF83ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvYnNpZGlhbiIsaWNvbjpbMzg0LDUxMixbXSwiZTg3OSIsIk0xNDIuMyAzMjAuM2MzNi4xLTguMiA3MC4zLTExIDEwMS4zIC43IDMxLjggMTEuOSA2MS43IDM5LjYgODYuNyA5Ni04LjEgMTcuNy0xMi40IDM2LjktMTQuNyA1My44LTMuMSAyMi45LTI1LjQgNDAuNy00Ny43IDM0LjYtMzEuNy04LjctNjguMy0yMi4zLTEwMS4zLTI0LjktNC40LS4zLTUwLjYtMy44LTUwLjYtMy44LTEuNy0uMS0zLjQtLjQtNS4xLS44IDMxLjUtNjQuMiAzOC4yLTExNS4xIDMxLjMtMTU1LjR6TTU1IDIxOS41YzIyLjMgMTQuOCA0OS41IDM3LjggNjQuMSA3My42IDE2LjEgMzkuNCAxNy44IDk1LjctMjEuNiAxNzYuMS0xLS44LTIuMS0xLjctMy0yLjdMNy40IDM3Ni44Yy05LjUtOS44LTEyLjEtMjQuNC02LjUtMzYuOSAuNi0xLjMgNDQuNi05OC4zIDU0LjEtMTIwLjR6bTI2NC4zLTkxLjNjNC45IDYuMiA3LjQgMTQgNy40IDIxLjkgLjEgMjAuOCAxLjggNjMuNiAxMy4zIDkxLjIgMTEuMiAyNi44IDMxLjggNTUuOCA0Mi41IDcwIDQuMSA1LjUgNC44IDEyLjkgMS4zIDE4LjctNy42IDEyLjgtMjIuNiAzNy41LTQzLjggNjkuMi0uMyAuNC0uNiAuOS0uOCAxLjMtMjUuMi01Mi4yLTU1LjktODAuNy05MC40LTkzLjYtOS42LTMuNi0xOS41LTYtMjkuNC03LjMtMTcuOC00NS44LTIzLjItNzkuNy0yMi0xMDYuNCAxLjItMjcuNCA5LjItNDcuOCAxOC4yLTY2LjMgOC45LTE4LjEgMTkuOC0zNS45IDI0LjktNTUuNyAzLjItMTIuNSA0LjItMjUuOCAxLjctNDAuOWw3Ny4xIDk4ek0xODQuMiAxNC4xYzEwLjMtOS4yIDI0LjYtMTAuOCAzNi4zLTUuNSA5LjYgMjQuNiA5LjcgNDIuOCA1LjYgNTguOC00LjYgMTcuOC0xNC4xIDMzLTIzLjkgNTIuOC05LjYgMTkuNS0xOC40IDQyLTE5LjcgNzIuMy0xLjIgMjcuOSA0LjEgNjEuOSAyMC40IDEwNS44LTIxLS42LTQyLjUgMi42LTYzLjcgNy40LTEuNy02LjQtMy44LTEyLjQtNi4xLTE4LjItMTcuMy00Mi4yLTQ5LjktNjcuOS03NC4xLTgzLjMgMy4xLTE4LjcgOC4yLTU1LjQgMTEuNi03Ny41IDEuMi03LjYgNC45LTE0LjYgMTAuNy0xOS44TDE4NC4yIDE0LjF6Il19LFQ3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4Ym94IixpY29uOls1MTIsNTEyLFtdLCJmNDEyIiwiTTM2OS45IDMxOC4yYzQ0LjMgNTQuMyA2NC43IDk4LjggNTQuNCAxMTguNy03LjkgMTUuMS01Ni43IDQ0LjYtOTIuNiA1NS45LTI5LjYgOS4zLTY4LjQgMTMuMy0xMDAuNCAxMC4yLTM4LjItMy43LTc2LjktMTcuNC0xMTAuMS0zOS0yNy45LTE4LjItMzQuMi0yNS43LTM0LjItNDAuNiAwLTI5LjkgMzIuOS04Mi4zIDg5LjItMTQyLjEgMzItMzMuOSA3Ni41LTczLjcgODEuNC03Mi42IDkuNCAyLjEgODQuMyA3NS4xIDExMi4zIDEwOS41ek0xODguNiAxNDMuOGMtMjkuNy0yNi45LTU4LjEtNTMuOS04Ni40LTYzLjQtMTUuMi01LjEtMTYuMy00LjgtMjguNyA4LjEtMjkuMiAzMC40LTUzLjUgNzkuNy02MC4zIDEyMi40LTUuNCAzNC4yLTYuMSA0My44LTQuMiA2MC41IDUuNiA1MC41IDE3LjMgODUuNCA0MC41IDEyMC45IDkuNSAxNC42IDEyLjEgMTcuMyA5LjMgOS45LTQuMi0xMS0uMy0zNy41IDkuNS02NCAxNC4zLTM5IDUzLjktMTEyLjkgMTIwLjMtMTk0LjR6bTMxMS42IDYzLjVjLTE2LjktODAtNjcuNS0xMzAuMy03NC42LTEzMC4zLTcuMyAwLTI0LjIgNi41LTM2IDEzLjktMjMuMyAxNC41LTQxIDMxLjQtNjQuMyA1Mi44IDQyLjQgNTMuMyAxMDIuMiAxMzkuNCAxMjIuOSAyMDIuMyA2LjggMjAuNyA5LjcgNDEuMSA3LjQgNTIuMy0xLjcgOC41LTEuNyA4LjUgMS40IDQuNiA2LjEtNy43IDE5LjktMzEuMyAyNS40LTQzLjUgNy40LTE2LjIgMTUtNDAuMiAxOC42LTU4LjcgNC4zLTIyLjUgMy45LTcwLjgtLjgtOTMuNHpNMTQxLjMgNDNjNDcuNy0yLjUgMTA5LjcgMzQuNSAxMTQuMyAzNS40IC43IC4xIDEwLjQtNC4yIDIxLjYtOS43IDYzLjktMzEuMSA5NC0yNS44IDEwNy40LTI1LjItNjMuOS0zOS4zLTE1Mi43LTUwLTIzMy45LTExLjctMjMuNCAxMS4xLTI0IDExLjktOS40IDExLjJ6Il19LEw3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnRhcHBkIixpY29uOls2NDAsNTEyLFtdLCJmNDA1IiwiTTQwMS41IDQ5LjlDMzIxLjcgMjEwIDMxNi45IDIwMi40IDMxMy42IDIyMy4xbC01LjIgMzIuOGMtMS45IDEyLTYuNiAyMy41LTEzLjcgMzMuNEwxNDUuOCA0OTcuMWMtNy42IDEwLjYtMjAuNCAxNi4yLTMzLjQgMTQuNi00MC4zLTUtNzcuOC0zMi4yLTk1LjMtNjguNS01LjctMTEuOC00LjUtMjUuOCAzLjEtMzYuNEwxNjkuMSAxOTguOWM3LjEtOS45IDE2LjQtMTggMjcuMi0yMy43bDI5LjMtMTUuNWMxOC41LTkuOCA5LjctMTEuOSAxMzUuNi0xMzguOSAxLTQuOCAxLTcuMyAzLjYtOCAzLS43IDYuNi0xIDYuMy00LjZsLS40LTQuNmMtLjItMS45IDEuMy0zLjYgMy4yLTMuNiA0LjUtLjEgMTMuMiAxLjIgMjUuNiAxMCAxMi4zIDguOSAxNi40IDE2LjggMTcuNyAyMS4xIC42IDEuOC0uNiAzLjctMi40IDQuMmwtNC41IDEuMWMtMy40IC45LTIuNSA0LjQtMi4zIDcuNCAuMSAyLjgtMi4zIDMuNi02LjUgNi4xek0yMzAuMyAzNi40YzMuNCAuOSAyLjUgNC40IDIuMyA3LjQtLjIgMi43IDIuMSAzLjUgNi40IDYgNy45IDE1LjkgMTUuMyAzMC41IDIyLjIgNDQgLjcgMS4zIDIuMyAxLjUgMy4zIC41IDExLjItMTIgMjQuNi0yNi4yIDQwLjUtNDIuNiAxLjMtMS40IDEuNC0zLjUgLjEtNC45LTgtOC4yLTE2LjUtMTYuOS0yNS42LTI2LjEtMS00LjctMS03LjMtMy42LTgtMy0uOC02LjYtMS02LjMtNC42IC4zLTMuMyAxLjQtOC4xLTIuOC04LjItNC41LS4xLTEzLjIgMS4xLTI1LjYgMTAtMTIuMyA4LjktMTYuNCAxNi44LTE3LjcgMjEuMS0xLjQgNC4yIDMuNiA0LjYgNi44IDUuNHpNNjIwLjIgNDA2LjdMNDcxLjQgMTk4LjhjLTEzLjItMTguNS0yNi42LTIzLjQtNTYuNC0zOS4xLTExLjItNS45LTE0LjItMTAuOS0zMC41LTI4LjktMS0xLjEtMi45LS45LTMuNiAuNS00Ni4zIDg4LjgtNDcuMSA4Mi44LTQ5IDk0LjgtMS43IDEwLjctMS4zIDIwIC4zIDI5LjggMS45IDEyIDYuNiAyMy41IDEzLjcgMzMuNEw0OTQuOCA0OTcuMmM3LjYgMTAuNiAyMC4yIDE2LjIgMzMuMSAxNC43IDQwLjMtNC45IDc4LTMyIDk1LjctNjguNiA1LjQtMTEuOSA0LjMtMjUuOS0zLjQtMzYuNnoiXX0sJDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wbHVzLWciLGljb246WzY0MCw1MTIsW10sImYwZDUiLCJNMzg2LjMgMjI4LjVjMS44IDkuNyAzLjEgMTkuNCAzLjEgMzIgMCAxMDkuOC03My42IDE4Ny41LTE4NC40IDE4Ny41LTEwNi4xIDAtMTkyLTg1LjktMTkyLTE5MlM5OC45IDY0IDIwNSA2NGM1MS45IDAgOTUuMSAxOC45IDEyOC42IDUwLjNsLTUyLjEgNTBjLTE0LjEtMTMuNi0zOS0yOS42LTc2LjUtMjkuNi02NS41IDAtMTE4LjkgNTQuMi0xMTguOSAxMjEuM1MxMzkuNSAzNzcuMyAyMDUgMzc3LjNjNzYgMCAxMDQuNS01NC43IDEwOS04Mi44bC0xMDkgMCAwLTY2IDE4MS4zIDAgMCAwem0xODUuNCA2LjRsMC01NS43LTU2IDAgMCA1NS43LTU1LjcgMCAwIDU2IDU1LjcgMCAwIDU1LjcgNTYgMCAwLTU1LjcgNTUuNyAwIDAtNTYtNTUuNyAweiJdfSxBN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0aHViLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjExMyIsIk0yMDIuMSAzMjguN2MwIDIwLjktMTAuOSA1NS4xLTM2LjcgNTUuMXMtMzYuNy0zNC4yLTM2LjctNTUuMSAxMC45LTU1LjEgMzYuNy01NS4xIDM2LjcgMzQuMiAzNi43IDU1LjF6TTQ5NiAyNzguMmMwIDMxLjktMy4yIDY1LjctMTcuNSA5NS0zNy45IDc2LjYtMTQyLjEgNzQuOC0yMTYuNyA3NC44LTc1LjggMC0xODYuMiAyLjctMjI1LjYtNzQuOC0xNC42LTI5LTIwLjItNjMuMS0yMC4yLTk1IDAtNDEuOSAxMy45LTgxLjUgNDEuNS0xMTMuNi01LjItMTUuOC03LjctMzIuNC03LjctNDguOCAwLTIxLjUgNC45LTMyLjMgMTQuNi01MS44IDQ1LjMgMCA3NC4zIDkgMTA4LjggMzYgMjktNi45IDU4LjgtMTAgODguNy0xMCAyNyAwIDU0LjIgMi45IDgwLjQgOS4yIDM0LTI2LjcgNjMtMzUuMiAxMDcuOC0zNS4yIDkuOCAxOS41IDE0LjYgMzAuMyAxNC42IDUxLjggMCAxNi40LTIuNiAzMi43LTcuNyA0OC4yIDI3LjUgMzIuNCAzOSA3Mi4zIDM5IDExNC4yem0tNjQuMyA1MC41YzAtNDMuOS0yNi43LTgyLjYtNzMuNS04Mi42LTE4LjkgMC0zNyAzLjQtNTYgNi0xNC45IDIuMy0yOS44IDMuMi00NS4xIDMuMi0xNS4yIDAtMzAuMS0uOS00NS4xLTMuMi0xOC43LTIuNi0zNy02LTU2LTYtNDYuOCAwLTczLjUgMzguNy03My41IDgyLjYgMCA4Ny44IDgwLjQgMTAxLjMgMTUwLjQgMTAxLjNsNDguMiAwYzcwLjMgMCAxNTAuNi0xMy40IDE1MC42LTEwMS4zem0tODIuNi01NS4xYy0yNS44IDAtMzYuNyAzNC4yLTM2LjcgNTUuMXMxMC45IDU1LjEgMzYuNyA1NS4xIDM2LjctMzQuMiAzNi43LTU1LjEtMTAuOS01NS4xLTM2LjctNTUuMXoiXX0sRDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdldC1wb2NrZXQiLGljb246WzQ0OCw1MTIsW10sImYyNjUiLCJNNDA3LjYgNjRsLTM2NyAwQzE4LjUgNjQgMCA4Mi41IDAgMTA0LjZMMCAyMzkuOEMwIDM2NC41IDk5LjcgNDY0IDIyNC4yIDQ2NCAzNDguMiA0NjQgNDQ4IDM2NC41IDQ0OCAyMzkuOGwwLTEzNS4yQzQ0OCA4Mi4yIDQzMC4zIDY0IDQwNy42IDY0em0tMTYyIDI2OC41Yy0xMi40IDExLjgtMzEuNCAxMS4xLTQyLjQgMC0xMTMuNy0xMDguOS0xMTQuOS0xMDUuMS0xMTQuOS0xMjMuMiAwLTE2LjkgMTMuOC0zMC43IDMwLjctMzAuNyAxNyAwIDE2LjEgMy44IDEwNS4yIDg5LjMgOTAuNi04Ni45IDg4LjYtODkuMyAxMDUuNS04OS4zczMwLjcgMTMuOCAzMC43IDMwLjdjMCAxNy44LTIuOSAxNS43LTExNC44IDEyMy4yeiJdfSxFN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2xpZGUiLGljb246WzQ0OCw1MTIsW10sImYyYTUiLCJNMjUyLjggMTQ4LjZjMCA4LjgtMS42IDE3LjctMy40IDI2LjQtNS44IDI3LjgtMTEuNiA1NS44LTE3LjMgODMuNi0xLjQgNi4zLTguMyA0LjktMTMuNyA0LjktMjMuOCAwLTMwLjUtMjYtMzAuNS00NS41IDAtMjkuMyAxMS4yLTY4LjEgMzguNS04My4xIDQuMy0yLjUgOS4yLTQuMiAxNC4xLTQuMiAxMS40IDAgMTIuMyA4LjMgMTIuMyAxNy45ek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zODQgMjY3YzAtNS4xLTIwLjgtMzcuNy0yNS41LTM5LjUtMi4yLS45LTcuMi0yLjMtOS42LTIuMy0yMy4xIDAtMzguNyAxMC41LTU4LjIgMjEuNWwtLjUtLjVjNC4zLTI5LjQgMTQuNi01Ny4yIDE0LjYtODcuNCAwLTQ0LjYtMjMuOC02Mi43LTY3LjUtNjIuNy03MS43IDAtMTA4IDcwLjgtMTA4IDEyMy41IDAgNTQuNyAzMiA4NSA4Ni4zIDg1IDcuNSAwIDYuOS0uNiA2LjkgMi4zLTEwLjUgODAuMy01Ni41IDgyLjktNTYuNSA1OC45IDAtMjQuNCAyOC0zNi41IDI4LjMtMzgtLjItNy42LTI5LjMtMTcuMi0zNi43LTE3LjItMjEuMSAwLTMyLjcgMzMtMzIuNyA1MC42IDAgMzIuMyAyMC40IDU0LjcgNTMuMyA1NC43IDQ4LjIgMCA4My40LTQ5LjcgOTQuMy05MS43IDkuNC0zNy43IDctMzkuNCAxMi4zLTQyLjEgMjAtMTAuMSAzNS44LTE2LjggNTguNC0xNi44IDExLjEgMCAxOSAyLjMgMzYuNyA1LjIgMS44IC4xIDQuMS0xLjcgNC4xLTMuNXoiXX0sUDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdHkiLGljb246WzUxMiw1MTIsW10sImYzN2EiLCJNODYuNSA2Ny4yYzk1LjQtODkuMiAyNDYuMS05MS4yIDM0My4xIDMuOCAxNC4zIDE0LjEtNi40IDM3LjEtMjIuNCAyMS41LTg0LjgtODIuNC0yMTUuOC04MC4zLTI5OC45LTMuMi0xNi4zIDE1LjEtMzYuNS04LjMtMjEuOC0yMi4xem05OC45IDQxOC42YzE5LjMgNS43IDI5LjMtMjMuNiA3LjktMzAtMTEyLjItMzMuOS0xNzUuOC0xNDkuNy0xNDcuNS0yNjEgNS0xOS42LTI0LjktMjguMS0zMC4yLTcuMS0zMi4xIDEyNy40IDQxLjEgMjU5LjggMTY5LjggMjk4LjF6bTE0OC4xLTJjMTIxLjktNDAuMiAxOTIuOS0xNjYuOSAxNjQuNC0yOTEtNC41LTE5LjctMzQuOS0xMy44LTMwIDcuOSAyNC4yIDEwNy43LTM3LjEgMjE3LjktMTQzLjIgMjUzLjQtMjEuMiA3LTEwLjQgMzYgOC44IDI5Ljd6bS02Mi45LTc5bC4yLTcxLjhjMC04LjItNi42LTE0LjgtMTQuOC0xNC44cy0xNC44IDYuNy0xNC44IDE0LjhsLS4yIDcxLjhjMCA4LjIgNi42IDE0LjggMTQuOCAxNC44czE0LjgtNi42IDE0LjgtMTQuOHptNzEtMjY5YzIuMSA5MC45IDQuNyAxMzEuOS04NS41IDEzMi41LTkyLjUtLjctODYuOS00NC4zLTg1LjUtMTMyLjUgMC0yMS44LTMyLjUtMTkuNi0zMi41IDBsMCA3MS42YzAgNjkuMyA2MC43IDkwLjkgMTE4IDkwLjEgNTcuMyAuOCAxMTgtMjAuOCAxMTgtOTAuMWwwLTcxLjZjMC0xOS42LTMyLjUtMjEuOC0zMi41IDB6Il19LEk3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGV4cGxvcmVyIixpY29uOls1MTIsNTEyLFtdLCJmMmRlIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTQ4MCAwYTIyNCAyMjQgMCAxIDAgLTQ0OCAwIDIyNCAyMjQgMCAxIDAgNDQ4IDB6TTE2MC45IDEyNC42bDg2LjkgMzcuMS0zNy4xIDg2LjktODYuOS0zNy4xIDM3LjEtODYuOXptMTEwIDE2OS4xbDQ2LjYgOTQtMTQuNiAwLTUwLTEwMC00OC45IDEwMC0xNCAwIDUxLjEtMTA2LjktMjIuMy05LjQgNi0xNCA2OC42IDI5LjEtNiAxNC4zLTE2LjUtNy4xek0yNTkuMSAxNzcuNGw2OC42IDI5LjQtMjkuNCA2OC4zLTY4LjMtMjkuMSAyOS4xLTY4LjZ6bTgwLjMgNDIuOWw1NC42IDIzLjEtMjMuNCA1NC4zLTU0LjMtMjMuMSAyMy4xLTU0LjN6Il19LE43ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWdhcG9ydCIsaWNvbjpbNTEyLDUxMixbXSwiZjVhMyIsIk0yMjIuNSAyMDkuNmwwIDY2LjIgMzMuNSAzMy41IDMzLjMtMzMuMyAwLTY2LjQtMzMuNC0zMy40LTMzLjQgMzMuNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MDEuMSA0MjIuNGwtMjYuMSAxOS4yLTI2LTE5LjIgMC02NS41LTMzLjQtMzMuNC0zMy40IDMzLjQgMCA2NS41LTI2LjIgMTkuMi0yNi4xLTE5LjIgMC02NS41LTMzLjQtMzMuNC0zMy41IDMzLjQgMCA2NS41LTI2LjEgMTkuMi0yNi4xLTE5LjIgMC04NyA1OS41LTU5LjUgMC04Ny45IDU5LjUtNTkuNSAwLTc1LjYgMjYuMS0xOS4yIDI2LjEgMTkuMiAwIDc1LjYgNTkuNSA1OS41IDAgODcuNiA1OS43IDU5LjcgMCA4Ny4xLS4xIDB6Il19LEY3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZWV0Y29kZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg2YSIsIk0yMzUuNCA5LjNDMjQ2LjUtMi41IDI2NS4xLTMuMiAyNzcgNy45czEyLjUgMjkuOCAxLjQgNDEuNmwtNDMgNDZjMjEuNSAzLjMgNDIuMSAxMS44IDU5LjEgMjUuNmw3NC42IDYwLjNjMTIuNiAxMC4yIDE0LjYgMjguOCA0LjQgNDEuNHMtMjguNyAxNC42LTQxLjQgNC40bC03NC42LTYwLjNjLTI2LjItMjEuMS03MS45LTE4LjItOTQuNSA1LjlMODEgMjYxYy0yMS41IDIzLTE5LjEgNjAgNS42IDg0LjJsOTEuMiA4OS40YzI0LjkgMjQgNjUuNiAyNCA5MC4xLS40bDUxLjEtNTFjMTEuNS0xMS41IDMwLjEtMTEuNSA0MS42IC4xczExLjQgMzAuMi0uMSA0MS43bC01MS4xIDUxYy00Ny4xIDQ3LjEtMTI0IDQ3LjctMTcxLjkgMS42bC05Mi05MC4yQy0xLjQgMzQxLjMtNiAyNjcuOSAzOCAyMjAuN0wyMzUuNCA5LjN6TTQxMS43IDI3My4yYzE2LjIgMCAyOS40IDEzLjIgMjkuNCAyOS41cy0xMy4yIDI5LjUtMjkuNCAyOS41bC0yMTYuOSAwYy0xNi4yIDAtMjkuNC0xMy4yLTI5LjQtMjkuNXMxMy4yLTI5LjUgMjkuNC0yOS41bDIxNi45IDB6Il19LE83ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZGIiLGljb246WzU3Niw1MTIsW10sImY4Y2EiLCJNMTcuNCAxNjAuNGwtMTAuNCAxOTEuNiA0My45IDAgNS42LTc5LjggMjcuOSA3OS44IDQ0LjcgMCAyNS41LTc3LjQgNC44IDc3LjQgNDUuNSAwLTEyLjgtMTkxLjYtNDUuNSAwLTQwLjcgMTE3LjMtNDIuMy0xMTcuMy00Ni4zIDB6bTI4MSAwbC00Ny45IDAgMCAxOTEuNiA0Ny45IDBzOTUgLjggOTQuMi05NS44Yy0uOC05NC4yLTk0LjItOTUuOC05NC4yLTk1LjhsMCAwem0tMS4yIDE0Ni41bDAtMTAyLjFzNDYgNC4zIDQ2LjggNTAuNi00Ni44IDUxLjUtNDYuOCA1MS41bDAgMHptMjM4LjMtNzQuMmM3LjItMTEuNCAxMC0yNSA4LTM4LjMtNS4zLTM1LjgtNTUuMS0zNC4zLTU1LjEtMzQuM2wtNTEuOSAwIDAgMTkxLjYgNDUuNSAwczg3IDQuOCA4Ny02My44YzAtNDMuMS0zMy41LTU1LjEtMzMuNS01NS4xbDAgMHptLTUxLjktMzEuOXMxMy42LTEuNiAxNiA5LjZjMS40IDYuNy00IDEyLTQgMTJsLTEyIDAgMC0yMS42em0tLjEgMTA5LjVsLjEtMjQuOSAwLTE4LjIgLjEgMHM0MS42LTQuNyA0MS4yIDIyLjRjLS4zIDI1LjctNDEuMyAyMC43LTQxLjMgMjAuN2wwIDB6Il19LFI3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlNCIsaWNvbjpbNTEyLDUxMixbXSwiZjNkNyIsIk0yNTYgNTA0QzExOSA1MDQgOCAzOTMgOCAyNTZTMTE5IDggMjU2IDhjMjAuOSAwIDQxLjMgMi42IDYwLjcgNy41TDUwLjMgMzkyIDI1NiAzOTIgMjU2IDUwNHptMC0xNDMuNmwwLTIxMy42LTE0OS40IDIxMy42IDE0OS40IDB6TTM1MiAzOTJsMCA5Mi43YzQ1LjctMTkuMiA4NC41LTUxLjcgMTExLjQtOTIuN0wzNTIgMzkyem01Ny40LTEzOC4ybC0yMS4yIDguNCAyMS4yIDguMyAwLTE2Ljd6bS0yMC4zIDU0LjVjLTYuNyAwLTggNi4zLTggMTIuOWwwIDcuNyAxNi4yIDAgMC0xMGMwLTUuOS0yLjMtMTAuNi04LjItMTAuNnpNNTA0IDI1NmMwIDM3LjMtOC4yIDcyLjctMjMgMTA0LjRsLTEyOSAwIDAtMzMzLjFDNDQxLjMgNjQuOCA1MDQgMTUzLjEgNTA0IDI1NnpNMzY4LjQgMTQzLjZsNjguMiAwIDAtNDcuNi0xMy45IDAgMCAzMi42LTEzLjkgMCAwLTI5LjYtMTMuOSAwIDAgMjkuNi0xMi43IDAgMC0zMi42LTEzLjkgMCAwIDQ3LjYgLjEgMHptNjguMSAxODUuM2wtMjYuNSAwIDAtMTFjMC0xNS40LTUuNi0yNS4yLTIwLjktMjUuMi0xNS40IDAtMjAuNyAxMC42LTIwLjcgMjUuOWwwIDI1LjMgNjguMiAwIDAtMTUtLjEgMHptMC0xMDNsLTY4LjIgMjkuNyAwIDEyLjQgNjguMiAyOS41IDAtMTYuNi0xNC40LTUuNyAwLTI2LjUgMTQuNC01LjkgMC0xNi45em0tNC44LTY4LjVsLTM1LjYgMCAwIDI2LjYgMTMuOSAwIDAtMTIuMiAxMSAwYzguNiAxNS44IDEuMyAzNS4zLTE4LjYgMzUuMy0yMi41IDAtMjguMy0yNS4zLTE1LjUtMzcuN2wtMTEuNi0xMC42Yy0xNi4yIDE3LjUtMTIuMiA2My45IDI3LjEgNjMuOSAzNCAwIDQ0LjctMzUuOSAyOS4zLTY1LjN6Il19LEI3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGUtcmVkLXlldGkiLGljb246WzUxMiw1MTIsW10sImY2OWQiLCJNNDg4LjcgMjQxLjdsMjAuNyA3LjFjLTkuNi0yMy45LTIzLjktMzctMzEuNy00NC44bDcuMS0xOC4yYy4yIDAgMTIuMy0yNy44LTIuNS0zMC43LS42LTExLjMtNi42LTI3LTE4LjQtMjctNy42LTEwLjYtMTcuNy0xMi4zLTMwLjctNS45LTkuMSA0LjQtMTcuNiAxMC0yNS4zIDE2LjUtNS4zLTYuNC0zIC40LTMtMjkuOC0zNy4xLTI0LjMtNDUuNC0xMS43LTc0LjggM2wuNSAuNWMtMjItNy43LTQ1LjEtMTIuMi02OC40LTEzLjMtNS41LTguNy0xOC42LTE5LjEtMjUuMS0yNS4xbDI0LjggNy4xYy01LjUtNS41LTI2LjgtMTIuOS0zNC4yLTE1LjIgMTguMi00LjEgMjkuOC0yMC44IDQyLjUtMzMtMzQuOS0xMC4xLTY3LjktNS45LTk3LjkgMTEuOGwxMi00NC4yLTEuOC0uNWMtMzEuNiAyNC4yLTMzIDQxLjktMzMuNyA0NS41LS45LTIuNC02LjMtMTkuNi0xNS4yLTI3LTMuMyA4LjEtMy41IDE3LjEtLjUgMjUuMyAzIDguNCA1LjkgMTQuOCA4LjQgMTguOS0xNi0zLjMtMjguMy00LjktNDkuMiAwbC0zLjcgMCAzMyAxNC4zYy0yMC4yIDE4LjktMzYuMSA0MS45LTQ2LjcgNjcuNGwtMS43IDguNCAxLjcgMS43IDcuNi00LjdjLTMuMyAxMS42LTUuMyAxOS40LTYuNiAyNS44LTEwLjkgMTIuMi0yMC4yIDI1LjgtMjcuOCA0MC4zLTE1IDEtMzEuOCAxMC44LTQwLjMgMTQuM2wzIDMuNCAyOC44IDFjLS41IDEtLjcgMi4yLTEuMiAzLjItNy4zIDYuNC0zOS44IDM3LjctMzMgODAuN2wyMC4yLTIyLjRjLjUgMS43IC43IDMuNCAxLjIgNS4yIDAgMjUuNSAuNCA4OS42IDY0LjkgMTUwLjUgNDMuNiA0MCA5NiA2MC4yIDE1Ny41IDYwLjIgMTIxLjcgMCAyMjMtODcuMyAyMjMtMjExLjUgNi44LTkuNy0xLjIgMyAxNi43LTI1LjFsMTMgMTQuMyAyLjUtLjVjLTEuOC0xMS43LTQuOC0yMy4xLTguOS0zNC4yLTEuNS00LjgtMy44LTkuMy02LjgtMTMuM2wwIDB6TTM5OC41IDExMS4ybC0uNSAyMS45YzUuNSAxOC4xIDE2LjkgMTcuMiAyMi40IDE3LjJsLTMuNC00LjcgMjIuNC01LjRjLTkgLjUtMTggLjUtMjcgMCAxMi44LTIuMSAzMy4zLTI5IDQzLTExLjMgMy40IDcuNiA2LjQgMTcuMiA5LjMgMjcuOGwxLjctNS45Yy0xLjMtNS0xLjgtMTAuMS0xLjctMTUuMiA1LjQgLjUgOC44IDMuNCA5LjMgMTAuMSAuNSA2LjQgMS43IDE0LjggMy40IDI1LjNsNC43LTExLjNjNC42IDAgNC41LTMuNi0yLjUgMjAuNy0yMC45LTguNy0zNS4xLTguNC00Ni41LTguNGwxOC4yLTE2Yy0yNS4zIDguMi0zMyAxMC44LTU0LjggMjAuOS0xLjEtNS40LTUtMTMuNS0xNi0xOS45LTMuMiAzLjgtMi44IC45LS43IDE0LjhsLTIuNSAwYy0xLjItOC4yLTQuMS0xNi04LjQtMjMuMWw0LjItMy40YzguNC03LjEgMTEuOC0xNC4zIDEwLjYtMjEuOS0uNS02LjQtNS40LTEzLjUtMTMuNS0yMC43IDUuNi0zLjQgMTUuMi0uNCAyOC4zIDguNXptLTM5LjYtMTAuMWMyLjcgMS45IDExLjQgNS40IDE4LjkgMTcuMiA0LjIgOC40IDQgOS44IDMuNCAxMS4xLS41IDIuNC0uNSA0LjMtMyA3LjEtMS43IDIuNS01LjQgNC43LTExLjggNy42LTcuNi0xMy0xNi41LTIzLjYtMjcuOC0zMS4ybDIwLjMtMTEuOHptLTI2Ny40IDQybDEuMi0xLjdjMS4yLTIuOSA0LjItNy42IDkuMy0xNS4ybDIuNS0zLjQtMTMgMTIuMyA1LjQtNC43LTEwLjEgOS4zLTQuMiAxLjJjMTIuMy0yNC4xIDIzLjEtNDEuMyAzMi41LTUwLjIgOS4zLTkuMyAxNi0xNiAyMC4yLTE5LjRsLTYuNCAxLjJjLTExLjMtNC4yLTE5LjQtNy4xLTI0LjgtOC40IDIuNS0uNSAzLjctLjUgMy4yLS41IDEwLjMgMCAxNy41IC41IDIwLjkgMS4yIDUuMiAxLjcgMTAuNiAyLjUgMTYgMi41bC41LTEuNy04LjQtMzUuOCAxMy41IDI5YzIuOC00LjQgNC44LTkuMiA1LjktMTQuMyAxLjctNi40IDUuNC0xMyAxMC4xLTE5LjRzNy42LTEwLjYgOS4zLTExLjNjLTIuNiA4LjMtNC43IDE2LjgtNi40IDI1LjNsLTEuNyA3LjEtLjUgNC43IDIuNSAyLjVjMjEuOS0xMy41IDQ1LjUtMTkuNCA3MS4zLTE4LjlsMjEuMSAuNWMtMTEuOCAxMy41LTI3LjggMjEuOS00OC41IDI0LjgtNy43IDEuNC0xNS42IDIuNC0yMy40IDIuOWwtLjItLjUtMi41LTEuMmMtNC44LTEtOS43LS4zLTE0IDItMi41LS4yLTQuOS0uNS03LjEtLjdsLTIuNSAxLjcgLjUgMS4yYzIgLjIgMy45IC41IDYuMiAuN2wtMiAzLjQgMy40LS41LTEwLjYgMTEuM2MtNC4yIDMtNS40IDYuNC00LjIgOS4zbDUuNC0zLjQgMS4yIDBjNi4xLTguMiAxNS4yLTEzLjYgMjUuMy0xNS4ybDAtM2M2LjQgLjUgMTMgMSAxOS40IDEuMiA2LjQgMCA4LjQgLjUgNS40IDEuMiA3LjIgNCAxNC4xIDguNiAyMC43IDEzLjUgMTMuNSAxMC4xIDIzLjYgMjEuOSAzMCAzNS40IDguOCAxOC4yIDEzLjUgMzcuMSAxMy41IDU2LjYgMCA5LjUtMSAxOS0zIDI4LjMtMy41IDE1LjktOC45IDMxLjMtMTYgNDZsMi41IC41YzE4LjItMTkuNyA0MS45LTE2IDQ5LjItMTZsLTYuNCA1LjkgMjIuNCAxNy43LTEuNyAzMC43Yy01LjQtMTIuMy0xNi41LTIxLjEtMzMtMjcuOCAxNi41IDE0LjggMjMuNiAyMS4xIDIxLjkgMjAuMi00LjgtMi44LTMuNS0xLjktMTAuOC0zLjcgNC4xIDQuMSAxNy41IDE4LjggMTguMiAyMC43bC4yIC4yLS4yIC4yYzAgMS44IDEuNi0xLjItMTQgMjIuOS03NS4yLTE1LjMtMTA2LjMtNDIuNy0xNDEuMi02My4ybDExLjggMS4yYy0xMS44LTE4LjUtMTUuNi0xNy43LTM4LjQtMjYuMWwxMC42LTguNGMtOC44LTMtMTguMi0zLTI4LjMgLjVsNy42LTEwLjYtMS4yLTEuN2MtMTQuOSA0LjMtMTkuOCA5LjItMjIuNiAxMS4zLTEuMS01LjUtMi44LTEyLjQtMTIuMy0yOC44bC0xLjIgMjctMTMuMi01YzEuNS0yNS4yIDUuNC01MC41IDEzLjItNzQuNnpNMzY4IDQ3My4xYy00OS45IDI1LTU2LjEgMjIuNC01OSAyMy45LTI5LjgtMTEuOC01MC45LTMxLjctNjMuNS01OC44bDMwIDE2LjVjLTkuOC05LjMtMTguMy0xNi41LTM4LjQtNDQuM2wxMS44IDIzLjEtMTcuNy03LjZjMTQuMiAyMS4xIDIzLjUgNTEuNyA2Ni42IDczLjUtMTIwLjggMjQuMi0xOTktNzIuMS0yMDAuOS03NC4zIDExLjEgOS4yIDIyLjkgMTcuNSAzNS40IDI0LjggMy40IDEuNyA3LjEgMi41IDEwLjEgMS4ybC0xNi0yMC43YzkuMiA0LjIgOS41IDQuNSA2OS4xIDI5LTQyLjUtMjAuNy03My44LTQwLjgtOTMuMi02MC4yLS41IDYuNC0xLjIgMTAuMS0xLjIgMTAuMSA4LjcgNy4zIDE1LjggMTYuNCAyMC43IDI2LjYtMzktMTguOS01Ny42LTQ3LjYtNzEuMy04Mi42IDQ5LjkgNTUuMSAxMTguOSAzNy41IDEyMC41IDM3LjEgMzQuOCAxNi40IDY5LjkgMjMuNiAxMTMuOSAxMC42IDMuMyAwIDIwLjMgMTcgMjUuMyAzOS4xbDQuMi0zLTIuNS0yMy42YzkgOSAyNC45IDIyLjYgMzQuNCAxMy0xNS42LTUuMy0yMy41LTkuNS0yOS41LTMxLjcgNC42IDQuMiA3LjYgOSAyNy44IDE1bDEuMi0xLjItMTAuNS0xNC4yYzExLjctNC44LTMuNSAxIDMyLTEwLjggNC4zIDM0LjMgOSA0OS4yIC43IDg5LjV6TTQ4My4zIDI1OC43bC0yLjUgLjUgMyA5LjNjLTMuNSA1LjktMjMuNyA0NC4zLTcxLjYgNzkuNy0zOS41IDI5LjgtNzYuNiAzOS4xLTgwLjkgNDAuM2wtNy42LTcuMS0xLjIgMyAxNC4zIDE2LTcuMS00LjcgMy40IDQuMi0xLjIgMC0yMS45LTEzLjUgOS4zIDI2LjYtMTktMjcuOS0xLjIgMi41IDcuNiAyOWMtNi4xLTguMi0yMS0zMi42LTU2LjgtMzkuNmwzMi41IDIxLjJjLTMxLjIgNC43LTYzIDIuNS05My4yLTYuNC00LjItMS4yLTguOS0yLjUtMTMuNS00LjJsMS4yLTMtNDQuOC0yMi40IDI2LjEgMjIuNGMtNTcuNyA5LjEtMTEzLTI1LjQtMTI2LjQtODMuNEwyOS4zIDI4NC44IDcgMzA3LjFjMTkuNS01Ny41IDI1LjYtNTcuOSA1MS40LTcwLjEtOS4xLTUuMy0xLjYtMy4zLTM4LjQtOS4zIDE1LjgtNS44IDMzLTE1LjQgNzMgNS4yIDEuMi0uNyAyLjQtMS4zIDMuNy0xLjcgLjYtMy4yIC40LS44IDEtMTEuOCAzLjkgMTAgMy42IDguNyAzIDkuM2wxLjcgLjVjMTIuNy02LjUgOC45LTQuNSAxNy04LjlsLTUuNCAxMy41IDIyLjMtNS44LTguNCA4LjQgMi41IDIuNWM0LjUtMS44IDMwLjMgMy40IDQwLjggMTZsLTIzLjYtMi41YzM5LjQgMjMgNTEuNSA1NCA1NS44IDY5LjZsMS43LTEuMmMtMi44LTIyLjMtMTIuNC0zMy45LTE2LTQwLjEgNC4yIDUgMzkuMiAzNC42IDExMC40IDQ2LTExLjMtLjUtMjMuMSA1LjQtMzQuOSAxOC45bDQ2LjctMjAuMi05LjMgMjEuOWM3LjYtMTAuMSAxNC44LTIzLjYgMjEuMi0zOS42bDAtLjUgMS4yLTMtMS4yIDE2YzEzLjUtNDEuOCAyNS4zLTc4LjUgMzUuNC0xMDkuN2wxMy41LTI3LjggMC0yLTUuNC00LjIgMTAuMSAwIDUuOSA0LjIgMi41LTEuMi0zLjQtMTYgMTIuMyAxOC45IDQxLjgtMjAuMi0xNC44IDEzIC41IDIuOSAxNy43LS41YzExLjEgLjQgMjIuMSAxLjggMzMgNC4ybC0yMy42IDIuNS0xLjIgMyAyNi42IDIzLjFjOS45IDkuOSAxOC45IDIwLjYgMjcgMzItMTEuMi0zLjMtMTAuMy0zLjQtMjEuMi0zLjRsMTIuMyAzMi41LTguOS0xMi44em0tNi4xLTcxLjNsLTMuOSAxMy0xNC4zLTExLjggMTguMi0xLjJ6bS0yNTQuOCA3LjFjMS43IDEwLjYgNC43IDE3LjcgOC44IDIxLjktOS4zIDYuNi0yNy41IDEzLjktNDYuNSAxNmwuNSAxLjJjOC4zIDEuMyAxNi45IC40IDI0LjgtMi41bC03LjEgMTNjNC4yLTEuNyAxMC4xLTcuMSAxNy43LTE0LjggMTEuOS01LjUgMTIuNy01LjEgMjAuMi0xNi0xMi43LTYuNC0xNS43LTEzLjctMTguNC0xOC44em0zLjctMTAyLjNjLTYuNC0zLjQtMTAuNiAzLTEyLjMgMTguOXMyLjUgMjkuNSAxMS44IDM5LjYgMTguMiAxMC42IDI2LjEgMyAzLjQtMjMuNi0xMS4zLTQ3LjdjLTMuNS01LjctOC40LTEwLjUtMTQuMy0xMy44bDAgMHptLTQuNyA0Ni4zYzUuNCAyLjIgMTAuNSAxLjkgMTIuMy0xMC42bDAtNC43LTEuMiAuNWMtNC4zLTMuMS0yLjUtNC41LTEuNy02LjJsLjUtLjVjLS45LTEuMi01LTguMS0xMi41IDQuNy0uNS0xMy41IC41LTIxLjkgMy0yNC44IDEuMi0yLjUgNC43LTEuMiAxMS4zIDQuMiA2LjQgNS40IDExLjMgMTYgMTUuMiAzMi41IDYuNSAyOC0xOS44IDI2LjItMjYuOSA0Ljl6bS00NS01LjVjMS42IC4zIDkuMy0xLjEgOS4zLTE0LjhsLS41IDBjLTUuNC0xLjEtMi4yLTUuNS0uNy01LjktMS43LTMtMy40LTQuMi01LjQtNC43LTguMSAwLTExLjYgMTIuNy04LjEgMjEuMiAuNSAxLjEgMS4zIDIgMi4yIDIuOHMyIDEuMiAzLjIgMS40bDAgMHptNDAuMS01MC4xbC0yLjUgLjUgLjUgM2M5LjEtLjUgMTguMSAxLjUgMjYuMSA1LjktMi41LTUuNS0xMC0xNC4zLTI4LjMtMTQuM2wuNSAyLjUgMy43IDIuNHptLTcxLjggNDkuNGMyMS43IDE2LjggMTYuNSAyMS40IDQ2LjUgMjMuNmwtMi45LTQuN2M4LjQtNy4yIDEzLjctMTcuMyAxNC44LTI4LjMgMS43LTE2LTEuMi0yOS41LTguOC00MS4zbDEzLTcuNmMwLS4zIDAtLjYtLjEtLjlzLS4yLS42LS40LS44Yy0yLjItLjktNC42LTEuMi03LS45cy00LjYgMS4yLTYuNSAyLjZjLTEyLjcgNi43LTI4IDIwLjktMjkgMjIuNC0xLjcgMS43LTMuNCA1LjktNS40IDEzLjUtMS45IDcuNy0yLjkgMTUuNi0yLjkgMjMuNi00LjctOC0xMC41LTYuNC0xOS45LTUuOWw3LjEgNy42Yy0xNi41IDAtMjMuMyAxNS40LTIzLjYgMTYgNi44IDAgNC42LTcuNiAzMC0xMi4zLTQuMy02LjMtMy4zLTUtNC45LTYuNnptMTguNy0xOC43YzEuMi03LjYgMy40LTEzIDYuNC0xNy4yIDUuNC02LjQgMTAuNi0xMC4xIDE2LTExLjggNC4yLTEuNyA3LjEgMS4yIDEwLjEgOS4zIDIuNSA4LjIgMy41IDE2LjggMyAyNS4zLS41IDkuMy0zLjQgMTcuMi04LjQgMjMuMS0yLjkgMy40LTUuNCA1LjktNi40IDcuNi0zLjggLjQtNy42IC4yLTExLjMtLjVsLTcuMS0zLjQtNS40LTYuNGMuOC0xMCAxLjMtMTguOCAzLjEtMjZ6bTQyIDU2LjFjLTM0LjggMTQuNC0zNC43IDE0LTM2LjEgMTQuMy0yMC44IDQuNy0xOS0yNC40LTE4LjktMjQuOGw1LjktMS4yLS41LTIuNWMtMjAuMi0yLjYtMzEgNC4yLTMyLjUgNC45IC41IC41IDMgMy40IDUuOSA5LjMgNC4yLTYuNCA4LjgtMTAuMSAxNS4yLTEwLjYtMS43IDExLjItMS4yIDIyLjcgMS43IDMzLjcgLjEgLjUgMi42IDE3LjQgMjcuNSAyNC4xIDExLjMgMyAyNyAxLjIgNDguOS01LjRsLTkuMiAuNWMtNC4yLTE0LjgtNi40LTI0LjgtNS45LTI5LjUgMTEuMy04LjggMjEuOS0xMS4zIDMwLjctNy42bDIuNSAwLTExLjgtNy42LTcuMSAuNWMtNS45IDEuMi0xMi4zIDQuMi0xOS40IDguNGwzLjEtNi41eiJdfSxIN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamlyYSIsaWNvbjpbNTEyLDUxMixbXSwiZjdiMSIsIk00OTguNSAyNDEuN2MtNzIuOS03Mi43LTE2OS40LTE2OS45LTI0MS41LTI0MS43LTE2NS41IDE2NC45LTI0Mi41IDI0MS43LTI0Mi41IDI0MS43LTcuOSA3LjktNy45IDIwLjcgMCAyOC43IDEzMi44IDEzMi4zIDYxLjggNjEuNSAyNDIuNSAyNDEuNiAzNzkuNC0zNzggMTUuNy0xNi43IDI0MS41LTI0MS43IDgtNy45IDgtMjAuNyAwLTI4LjZ6TTI1NyAzMzEuN2wtNzYtNzUuNyA3Ni03NS43IDc2IDc1LjctNzYgNzUuN3oiXX0scTdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZlZGV4IixpY29uOls2NDAsNTEyLFtdLCJmNzk3IiwiTTU4NiAyODQuNWw1My4zLTU5LjktNjIuNCAwLTIxLjcgMjQuOC0yMi41LTI0LjgtMTE4LjcgMCAwLTE2IDU2LjEgMCAwLTQ4LjEtMTUxLjIgMCAwIDc1LjUtLjUgMGMtOS42LTExLTIxLjUtMTQuOC0zNS40LTE0LjgtMjguNCAwLTQ5LjggMTkuNC01Ny4zIDQ0LjktMTgtNTkuNC05Ny40LTU3LjYtMTIxLjktMTRsMC0yNC4yLTU0LjggMCAwLTI2LjIgNjAgMCAwLTQxLjEtMTA5IDAgMCAxODQuNCA0OSAwIDAtNzcuNSA0OC45IDBjLTEuNSA1LjctMi4zIDExLjgtMi4zIDE4LjIgMCA3My4xIDEwMi42IDkxLjQgMTMwLjIgMjMuN2wtNDIgMGMtMTQuNyAyMC45LTQ1LjggOC45LTQ1LjgtMTQuNmw4NS41IDBjMy43IDMwLjUgMjcuNCA1Ni45IDYwLjEgNTYuOSAxNC4xIDAgMjctNi45IDM0LjktMTguNmwuNSAwIDAgMTEuOSAyMTIuMiAwIDIyLjEtMjUgMjIuMyAyNSA2NC40IDAtNTQtNjAuNXpNMTM5LjMgMjY3LjljNi4xLTI2LjMgNDEuNy0yNS42IDQ2LjUgMGwtNDYuNSAwem0xNTMuNCA0OC45Yy0zNC42IDAtMzQtNjIuOCAwLTYyLjggMzIuNiAwIDM0LjUgNjIuOCAwIDYyLjh6bTE2Ny44IDE5LjFsLTk0LjQgMCAwLTE2Ni41IDk1IDAgMCAzMC4yLTU2LjEgMCAwIDMzLjkgNTUuNSAwIDAgMjguMS01Ni4xIDAgMCA0NC43IDU2LjEgMCAwIDI5LjZ6bS00NS45LTM5LjhsMC0yNC40IDU2LjEgMCAwLTQ0IDUwLjcgNTctNTAuNyA1NyAwLTQ1LjYtNTYuMSAwem0xMzguNiAxMC4zbC0yNi4xIDI5LjUtMzguMSAwIDQ1LjYtNTEuMi00NS42LTUxLjIgMzkuNyAwIDI2LjYgMjkuMyAyNS42LTI5LjMgMzguNSAwLTQ1LjQgNTEgNDYgNTEuNC00MC41IDAtMjYuMy0yOS41eiJdfSxWN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXZlcm5vdGUiLGljb246WzM4NCw1MTIsW10sImY4MzkiLCJNMTIxLjEgMTMyLjJjMS42IDIyLjMtMTcuNiAyMS42LTIxLjYgMjEuNi02OC45IDAtNzMuNi0xLTgzLjYgMy4zLS42IC4yLS43IDAtLjQtLjRMMTI0LjEgNDYuNGMuNC0uNCAuNi0uMiAuNCAuNC00LjQgMTAtMy40IDE1LjEtMy40IDg1LjR6bTc5IDMwOGMtMTQuNy0zNy4xIDEzLTc2LjkgNTIuNS03Ni42IDE3LjUgMCAyMi42IDIzLjIgNy45IDMxLjQtNi4yIDMuMy0yNC45IDEuNy0yNS4xIDE5LjIgMCAxNy4xIDE5LjcgMjUgMzEuMiAyNC45IDYgMCAxMS45LTEuMiAxNy41LTMuNXMxMC42LTUuNyAxNC44LTkuOSA3LjYtOS4zIDkuOS0xNC44IDMuNS0xMS41IDMuNS0xNy41bDAtLjFjMC0xMS42LTcuOC00Ny4yLTQ3LjUtNTUuMy03LjctMS41LTY1LTYuMy02OC40LTUwLjUtMy43IDE2LjktMTcuNCA2My41LTQzLjEgNjkuMS04LjcgMS45LTY5LjcgNy42LTExMi45LTM2LjggMCAwLTE4LjYtMTUuMi0yOC4yLTU4LTMuNC0xNS43LTkuMy0zOS43LTExLjEtNjIgMC0xOCAxMS4xLTMwLjQgMjUuMS0zMi4yIDgxIDAgOTAgMi4zIDEwMS03LjggOS44LTkuMiA3LjgtMTUuNSA3LjgtMTAyLjggMS04LjMgNy44LTMwLjggNTMuNC0yNC4xIDYgLjkgMzEuOSA0LjIgMzcuNSAzMC42TDI5MCA3NC44YzIwLjQgMy43IDcwLjkgNyA4MC42IDU3LjkgMjIuNyAxMjEuMSA4LjkgMjM4LjUgNy44IDIzOC41LTE2IDExNC40LTExMS4xIDEwOC45LTExMS4xIDEwOC45LTE5LS4yLTU0LjItOS40LTY3LjMtMzkuOGwwIDB6TTI4MSAyMzUuNGMtMSAxLjktMi4yIDYgLjkgNyAxNC4xIDQuOSAzOS44IDYuOCA0NS45IDUuNSAzLjEtLjIgMy4xLTQuNCAyLjUtNi42LTMuNS0yMS44LTQwLjgtMjYuNS00OS4yLTUuOWwwIDB6Il19LGo3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1c2IiLGljb246WzY0MCw1MTIsW10sImYyODciLCJNNjMzLjUgMjU2YzAgMy4xLTEuNyA2LjEtNC41IDcuNUw1MzkuOSAzMTdjLTEuNCAuOC0yLjggMS40LTQuNSAxLjQtMS40IDAtMy4xLS4zLTQuNS0xLjEtMi44LTEuNy00LjUtNC41LTQuNS03LjhsMC0zNS42LTIzMC43IDBjMjUuMyAzOS42IDQwLjUgMTA2LjkgNjkuNiAxMDYuOWwyNi43IDAgMC0yNi44YzAtNSAzLjktOC45IDguOS04LjlsODkuMSAwYzUgMCA4LjkgMy45IDguOSA4LjlsMCA4OS4xYzAgNS0zLjkgOC45LTguOSA4LjlsLTg5LjEgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTI2LjctMjYuNyAwYy03NS40IDAtODEuMS0xNDIuNS0xMjQuNy0xNDIuNWwtMTAwLjMgMGMtOC4xIDMwLjYtMzUuOSA1My41LTY5IDUzLjUtMzkuMy0uMS03MS4zLTMyLjEtNzEuMy03MS40czMyLTcxLjMgNzEuMy03MS4zYzMzLjEgMCA2MSAyMi44IDY5IDUzLjUgMzkuMSAwIDQzLjkgOS41IDc0LjYtNjAuNCA0MC4xLTg5LjEgNTguMS04Mi4xIDEwOC45LTgyLjEgNy41LTIwLjkgMjctMzUuNiA1MC40LTM1LjYgMjkuNSAwIDUzLjUgMjMuOSA1My41IDUzLjVzLTIzLjkgNTMuNS01My41IDUzLjVjLTIzLjQgMC00Mi45LTE0LjgtNTAuNC0zNS42bC0yOS44IDBjLTI5LjEgMC00NC4zIDY3LjQtNjkuNiAxMDYuOWwzMDIuMSAwIDAtMzUuNmMwLTMuMyAxLjctNi4xIDQuNS03LjhzNi40LTEuNCA4LjkgLjNMNjI5IDI0OC44YzIuOCAxLjEgNC41IDQuMSA0LjUgNy4yeiJdfSxVN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW5ncnljcmVhdGl2ZSIsaWNvbjpbNjQwLDUxMixbXSwiZjM2ZSIsIk02NDAgMjM4LjJsLTMuMiAyOC4yLTM0LjUgMi4zLTIgMTguMSAzNC41LTIuMy0zLjIgMjguMi0zNC40IDIuMi0yLjMgMjAuMSAzNC40LTIuMi0zIDI2LjEtNjQuNyA0LjEgMTIuNy0xMTMuMi00Ny4zIDExNS40LTMxLjkgMi0yMy44LTExNy44IDMwLjMtMiAxMy42IDc5LjQgMzEuNy04Mi40IDkzLjEtNi4yek00MjYuOCAzNzEuNWwyOC4zLTEuOCAxMi45LTEyMC4xLTI4LjQgMS45LTEyLjggMTIwek0xNjIgMzg4LjFsLTE5LjQtMzYtMy41IDM3LjQtMjguMiAxLjcgMi43LTI5LjFjLTExIDE4LTMyIDM0LjMtNTYuOSAzNS44LTMyLjggMi01OS43LTIwLjktNTYuNC01OC4yIDIuNi0yOS4zIDI2LjctNjIuOCA2Ny41LTY1LjQgMzcuNy0yLjQgNDcuNiAyMy4yIDUxLjMgMjguOGwyLjgtMzAuOCAzOC45LTIuNWMyMC4xLTEuMyAzOC43IDMuNyA0Mi41IDIzLjdsMi42LTI2LjYgNjQuOC00LjItMi43IDI3LjktMzYuNCAyLjQtMS43IDE3LjkgMzYuNC0yLjMtMi43IDI3LjktMzYuNCAyLjMtMS45IDE5LjkgMzYuMy0yLjMtMi4xIDIwLjggNTUtMTE3LjIgMjMuOC0xLjYgMzIuMSAxMTAuNiA4LjktODUuNi0yMi4zIDEuNCAyLjktMjcuOSA3NS00LjktMyAyOC0yNC4zIDEuNi05LjcgOTEuOS01OCAzLjctNC4zLTE1LjYtMzkuNCAyLjUtOCAxNi4zLTEyNi4yIDcuN3ptLTQ0LjMtNzAuMmwtMjYuNCAxLjdjLTYuNy0xMi40LTE0LjQtMTYuNi0yNi4zLTE1LjgtMTkgMS4yLTMzLjMgMTcuNS0zNC42IDMzLjMtMS40IDE2IDcuMyAzMi41IDI4LjcgMzEuMiAxMi44LS44IDIxLjMtOC42IDI4LjktMTguOWwyNy0xLjcgMi43LTI5Ljh6bTU2LjEtNy43YzEuMi0xMi45LTcuNi0xMy42LTI2LjEtMTIuNEwxNDUgMzI2LjNjMTQuMi0uOSAyNy41LTIuMSAyOC44LTE2LjF6TTE5NC45IDM4MWw1LjgtNjBjLTUgMTMuNS0xNC43IDIxLjEtMjcuOSAyNi42TDE5NC45IDM4MXptMTM1LjQtNDVsLTcuOS0zNy44LTE1LjggMzkuMyAyMy43LTEuNXpNMTYwLjIgMjYxLjRsLTQuMy0xNy41LTM5LjYgMi42LTguMSAxOC4yLTMxLjkgMi4xIDU3LTEyMS45IDIzLjktMS42IDMwLjcgMTAyIDkuOS0xMDQuNyAyNy0xLjggMzcuOCA2My42IDYuNS02Ni42IDI4LjUtMS45LTQgNDEuMmM3LjQtMTMuNSAyMi45LTQ0LjcgNjMuNi00Ny41IDQwLjUtMi44IDUyLjQgMjkuMyA1My40IDMwLjNsMy4zLTMyIDM5LjMtMi43YzEyLjctLjkgMjcuOCAuMyAzNi4zIDkuN2wtNC40LTExLjkgMzIuMi0yLjIgMTIuOSA0My4yIDIzLTQ1LjcgMzEtMi4yLTQzLjYgNzguNC00LjggNDQuMy0yOC40IDEuOSA0LjgtNDQuMy0xNS44LTQzYzEgMjIuMy05LjIgNDAuMS0zMiA0OS42bDI1LjIgMzguOC0zNi40IDIuNC0xOS4yLTM2LjgtNCAzOC4zLTI4LjQgMS45IDMuMy0zMS41Yy02LjcgOS4zLTE5LjcgMzUuNC01OS42IDM4LTI2LjIgMS43LTQ1LjYtMTAuMy01NS40LTM5LjJsLTQgNDAuMy0yNSAxLjYtMzcuNi02My4zLTYuMyA2Ni4yLTU2LjggMy43em0yNzYuNi04Mi4xYzEwLjItLjcgMTcuNS0yLjEgMjEuNi00LjMgNC41LTIuNCA3LTYuNCA3LjYtMTIuMSAuNi01LjMtLjYtOC44LTMuNC0xMC40LTMuNi0yLjEtMTAuNi0yLjgtMjIuOS0ybC0yLjkgMjguOHpNMzI3LjcgMjE0YzUuNiA1LjkgMTIuNyA4LjUgMjEuMyA3LjkgNC43LS4zIDkuMS0xLjggMTMuMy00LjEgNS41LTMgMTAuNi04IDE1LjEtMTQuM2wtMzQuMiAyLjMgMi40LTIzLjkgNjMuMS00LjMgMS4yLTEyLTMxLjIgMi4xYy00LjEtMy43LTcuOC02LjYtMTEuMS04LjEtNC0xLjctOC4xLTIuOC0xMi4yLTIuNS04IC41LTE1LjMgMy42LTIyIDkuMi03LjcgNi40LTEyIDE0LjUtMTIuOSAyNC40LTEuMSA5LjYgMS40IDE3LjMgNy4yIDIzLjN6bS0yMDEuMyA4LjJsMjMuOC0xLjYtOC4zLTM3LjYtMTUuNSAzOS4yeiJdfSxXN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl6dW5pIixpY29uOls1MTIsNTEyLFtdLCJmM2NjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTc2IDM1OS45Yy0zMS40IDEwLjYtNTguOCAyNy4zLTgwIDQ4LjJMOTYgMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMjMuOXpNMjk2IDM1MGMtMTIuOS0yLTI2LjItMy4xLTM5LjgtMy4xLTEzLjggMC0yNy4yIDEuMS00MC4yIDMuMWwwLTIxNGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjE0em0xMjAgNTcuN2MtMjEuMi0yMC44LTQ4LjYtMzcuNC04MC00OEwzMzYgMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyNzEuN3oiXX0sRzdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Iml0Y2gtaW8iLGljb246WzUxMiw1MTIsW10sImY4M2EiLCJNNzEuOSAzNC44QzUwLjIgNDcuNyA3LjQgOTYuOCA3IDEwOS43bDAgMjEuM2MwIDI3LjEgMjUuMyA1MC44IDQ4LjIgNTAuOCAyNy42IDAgNTAuNS0yMi44IDUwLjUtNTAgMCAyNy4xIDIyLjIgNTAgNDkuOCA1MHM0OS0yMi44IDQ5LTUwYzAgMjcuMSAyMy42IDUwIDUxLjIgNTBsLjUgMGMyNy42IDAgNTEuMi0yMi44IDUxLjItNTAgMCAyNy4xIDIxLjUgNTAgNDkgNTBzNDkuOC0yMi44IDQ5LjgtNTBjMCAyNy4xIDIzIDUwIDUwLjUgNTAgMjMgMCA0OC4zLTIzLjggNDguMy01MC44bDAtMjEuM2MtLjQtMTIuOS00My4yLTYyLjEtNjQuOS03NS02Ny40LTIuMy0xMTQuMi0yLjctMTg0LTIuN1M5MS4xIDMzLjEgNzEuOSAzNC44ek0yMDQuMiAxNjkuMmMtMjIgMzguNC03Ny45IDM4LjctOTkuOCAuMi0xMy4yIDIzLjEtNDMuMiAzMi4xLTU2IDI3LjctMy45IDQwLjItMTMuNyAyMzcuMSAxNy43IDI2OS4yIDgwIDE4LjcgMzAyLjEgMTguMSAzNzkuOCAwIDMxLjYtMzIuMyAyMS4zLTIzMiAxNy43LTI2OS4yLTEyLjkgNC40LTQyLjktNC42LTU2LTI3LjctMjIgMzguNS03Ny44IDM4LjEtOTkuOC0uMi03LjEgMTIuNS0yMyAyOC45LTUxLjggMjguOS0xMC40IC4zLTIwLjgtMi4yLTI5LjktNy4zcy0xNi43LTEyLjYtMjEuOS0yMS42bDAgMHptLTQxLjYgNTMuOGMxNi41IDAgMzEuMSAwIDQ5LjIgMTkuOCAyOS4zLTMgNTguOS0zIDg4LjIgMCAxOC4yLTE5LjcgMzIuOC0xOS43IDQ5LjItMTkuNyA1Mi4zIDAgNjUuMiA3Ny41IDgzLjkgMTQ0LjQgMTcuMyA2Mi4yLTUuNSA2My43LTM0IDYzLjctNDIuMS0xLjYtNjUuNS0zMi4yLTY1LjUtNjIuOC0zOS4zIDYuNC0xMDEuOSA4LjgtMTU1LjYgMCAwIDMwLjYtMjMuMyA2MS4yLTY1LjUgNjIuOC0yOC40LS4xLTUxLjItMS42LTMzLjktNjMuNyAxOC43LTY3IDMxLjYtMTQ0LjQgODMuOS0xNDQuNGwwLS4xek0yNTYgMjcwLjhzLTQ0LjQgNDAuOC01Mi40IDU1LjJsMjktMS4yIDAgMjUuM2MwIDEuNSAyMS4zIC4yIDIzLjMgLjIgMTEuNiAuNSAyMy4zIDEgMjMuMy0uMmwwLTI1LjMgMjkgMS4yYy04LTE0LjUtNTIuNC01NS4yLTUyLjQtNTUuMmwuMSAweiJdfSxZN2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2luZG93cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3YSIsIk0wIDkzLjdsMTgzLjYtMjUuMyAwIDE3Ny40LTE4My42IDAgMC0xNTIuMXpNMCA0MTguM2wxODMuNiAyNS4zIDAtMTc1LjItMTgzLjYgMCAwIDE0OS45em0yMDMuOCAyOGwyNDQuMiAzMy43IDAtMjExLjYtMjQ0LjIgMCAwIDE3Ny45em0wLTM4MC42bDAgMTgwLjEgMjQ0LjIgMCAwLTIxMy44LTI0NC4yIDMzLjd6Il19LFo3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVtYmxldXBvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNCIsIk01MDIuOSAyNjZsMCA2OS43YzAgNjIuMS01MC4zIDExMi40LTExMi40IDExMi40LTYxLjggMC0xMTIuNC00OS44LTExMi40LTExMS4zbDAtNzAuMiAzNC4zIDE2IDUxLjEtMTUuMiAwIDcwLjZjMCAxNC43IDEyIDI2LjUgMjYuNyAyNi41UzQxNyAzNTIuNyA0MTcgMzM4bDAtNzIgODUuOSAwek0yNzguMiAyMDcuOGwzNC4zIDE2IDUxLjEtMTUuMiAwLTM1LjZjMC02MC41LTUxLjEtMTA5LTExMi4xLTEwOS02MC44IDAtMTEyLjEgNDguMi0xMTIuMSAxMDguMmwwIDE2Mi40YzAgMTQuOS0xMiAyNi43LTI2LjcgMjYuN1M4NiAzNDkuNSA4NiAzMzQuNmwwLTY4LjYtODYgMCAwIDY5LjdjMCA2MiA1MC4zIDExMi4zIDExMi40IDExMi4zIDYxLjYgMCAxMTIuNC00OS41IDExMi40LTExMC44bDAtMTYwLjNjMC0xNC43IDEyLTI2LjcgMjYuNy0yNi43czI2LjcgMTIgMjYuNyAyNi43bDAgMzAuOXoiXX0sSWY9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlIixpY29uOls1MTIsNTEyLFtdLCJmMWEwIiwiTTUwMCAyNjEuOEM1MDAgNDAzLjMgNDAzLjEgNTA0IDI2MCA1MDQgMTIyLjggNTA0IDEyIDM5My4yIDEyIDI1NlMxMjIuOCA4IDI2MCA4YzY2LjggMCAxMjMgMjQuNSAxNjYuMyA2NC45bC02Ny41IDY0LjljLTg4LjMtODUuMi0yNTIuNS0yMS4yLTI1Mi41IDExOC4yIDAgODYuNSA2OS4xIDE1Ni42IDE1My43IDE1Ni42IDk4LjIgMCAxMzUtNzAuNCAxNDAuOC0xMDYuOWwtMTQwLjggMCAwLTg1LjMgMjM2LjEgMGMyLjMgMTIuNyAzLjkgMjQuOSAzLjkgNDEuNHoiXX0sWDdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc2NvcmQiLGljb246WzU3Niw1MTIsW10sImYzOTIiLCJNNDkyLjUgNjkuOGMtLjItLjMtLjQtLjYtLjgtLjctMzguMS0xNy41LTc4LjQtMzAtMTE5LjctMzcuMS0uNC0uMS0uOCAwLTEuMSAuMXMtLjYgLjQtLjggLjhjLTUuNSA5LjktMTAuNSAyMC4yLTE0LjkgMzAuNi00NC42LTYuOC04OS45LTYuOC0xMzQuNCAwLTQuNS0xMC41LTkuNS0yMC43LTE1LjEtMzAuNi0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjItMS4xLS4yYy00MS4zIDcuMS04MS42IDE5LjYtMTE5LjcgMzcuMS0uMyAuMS0uNiAuNC0uOCAuNy03Ni4yIDExMy44LTk3LjEgMjI0LjktODYuOSAzMzQuNSAwIC4zIC4xIC41IC4yIC44cy4zIC40IC41IC42YzQ0LjQgMzIuOSA5NCA1OCAxNDYuOCA3NC4yIC40IC4xIC44IC4xIDEuMSAwcy43LS40IC45LS43YzExLjMtMTUuNCAyMS40LTMxLjggMzAtNDguOCAuMS0uMiAuMi0uNSAuMi0uOHMwLS41LS4xLS44LS4yLS41LS40LS42LS40LS4zLS43LS40Yy0xNS44LTYuMS0zMS4yLTEzLjQtNDUuOS0yMS45LS4zLS4yLS41LS40LS43LS42cy0uMy0uNi0uMy0uOSAwLS42IC4yLS45IC4zLS41IC42LS43YzMuMS0yLjMgNi4yLTQuNyA5LjEtNy4xIC4zLS4yIC42LS40IC45LS40cy43IDAgMSAuMWM5Ni4yIDQzLjkgMjAwLjQgNDMuOSAyOTUuNSAwIC4zLS4xIC43LS4yIDEtLjJzLjcgLjIgLjkgLjRjMi45IDIuNCA2IDQuOSA5LjEgNy4yIC4yIC4yIC40IC40IC42IC43cy4yIC42IC4yIC45LS4xIC42LS4zIC45LS40IC41LS42IC42Yy0xNC43IDguNi0zMCAxNS45LTQ1LjkgMjEuOC0uMiAuMS0uNSAuMi0uNyAuNHMtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjggLjEgLjUgLjIgLjhjOC44IDE3IDE4LjggMzMuMyAzMCA0OC44IC4yIC4zIC42IC42IC45IC43cy44IC4xIDEuMSAwYzUyLjktMTYuMiAxMDIuNi00MS4zIDE0Ny4xLTc0LjIgLjItLjIgLjQtLjQgLjUtLjZzLjItLjUgLjItLjhjMTIuMy0xMjYuOC0yMC41LTIzNi45LTg2LjktMzM0LjV6bS0zMDIgMjY3LjdjLTI5IDAtNTIuOC0yNi42LTUyLjgtNTkuMnMyMy40LTU5LjIgNTIuOC01OS4yYzI5LjcgMCA1My4zIDI2LjggNTIuOCA1OS4yIDAgMzIuNy0yMy40IDU5LjItNTIuOCA1OS4yem0xOTUuNCAwYy0yOSAwLTUyLjgtMjYuNi01Mi44LTU5LjJzMjMuNC01OS4yIDUyLjgtNTkuMmMyOS43IDAgNTMuMyAyNi44IDUyLjggNTkuMiAwIDMyLjctMjMuMiA1OS4yLTUyLjggNTkuMnoiXX0sSzdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhhY2tlci1uZXdzIixpY29uOls0NDgsNTEyLFtdLCJmMWQ0IiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTIxLjIgMjI5LjJsLS4yIDBjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40em0yMTggNTMuOWwwIDEwMC45LTMxLjQgMCAwLTEwMi43LTc5LjgtMTUzLjMgMzcuMyAwYzUyLjUgOTguMyA0OS4yIDEwMS4yIDU5LjMgMTI1LjYgMTIuMy0yNyA1LjgtMjQuNCA2MC42LTEyNS42bDM0LjggMC04MC44IDE1NS4xeiJdfSxoRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGV2ZW50eSIsaWNvbjpbNjQwLDUxMixbIjExdHkiXSwiZTdkNiIsIk02MTUuMyAxNjguNWMyLjMgMCA0LjYgLjcgNi42IDIuMiAxLjkgMS40IDMuMSAzLjMgMy44IDUgMS40IDMuMyAxLjggNy4zIDEuOCAxMS4zIDAgMi4yLS4zIDQuOS0uNyA3LjZsMCAuNC01MC45IDI2NC45IDAgMGMtNCAyMi4xLTguNSAzOS40LTEzLjYgNTEuNy01IDEyLjEtMTAuOSAyMS42LTE4LjYgMjdsMCAwYy03LjUgNS4zLTE2LjkgNy43LTI3LjYgOGwtMyAwYy0xNiAwLTI5LjMtNC4yLTM2LjktMTQuOC0uMS0uMS0uMS0uMS0uMi0uMi0uMS0uMi0uMy0uNC0uNS0uNmwwIDBjLTEuOC0yLjQtMi41LTUuMi0yLjktNy40LS41LTIuOC0uNy02LjEtLjctOS44IDAtNy4zIC42LTEzLjUgMi4xLTE4LjIgMS40LTQuNCA0LjgtMTAuNCAxMi4yLTEwLjRsMS4zIC4xYy4yIDAgLjQgLjEgLjUgLjEgLjMgLjEgLjYgLjEgLjggLjIgLjYgLjEgMS4zIC4zIDIuMiAuNmw3LjYgMi4yIC4xIDAgNy42IDIuMWMuOSAuMiAxLjcgLjQgMi4yIC41IC40IC4xIC42IC4xIC43IC4xIDAgMCAuMSAwIC4yLS4xIC4xLS4xIC40LS4yIC44LS42IC45LS45IDIuMi0yLjYgMy42LTUuNyAyLjYtNS44IDQuMi0xNC43IDQuMi0yNy40IDAtLjctLjMtMy40LTEuMy04LjktLjktNS4xLTIuMy0xMi4yLTQuMi0yMS4xbC01Ni0yMzIuOS0uMS0uNCAwLS4zYy0uNC0yLjctLjctNS4zLS43LTcuMyAwLTMuNyAuNC03LjUgMS43LTEwLjYgLjctMS42IDEuOC0zLjQgMy41LTQuOSAxLjktMS41IDQuMi0yLjMgNi41LTIuM2wzNC42IDBjNC42IDAgOC43IDEuNyAxMS45IDVsMS4zIDEuNWMxLjIgMS42IDIgMy40IDIuNyA1LjIgLjkgMi40IDEuNSA1LjEgMiA4LjFsMzAuNCAxNjEuMiAyMy44LTE2MGMuOC01LjggMi4yLTExLjQgNS4xLTE1LjEgMy0zLjggNy4yLTUuOCAxMi01LjhsMjQgMHpNMzc1LjEgMzQuNmMyLjYgMCA1LjEgLjcgNy40IDIuMyAyLjIgMS41IDMuNyAzLjYgNC43IDUuNyAxLjkgNCAyLjUgOS4xIDIuNSAxNC41bDAgMTExLjJjMCAuMSAwIC4yIDAgLjNsMzIuNCAwYzIuNSAwIDUgLjYgNy4yIDIuMSAyLjIgMS40IDMuNyAzLjQgNC44IDUuNSAyIDMuOSAyLjYgOC44IDIuNiAxMy45bDAgMTUuNGMwIDUtLjYgOS44LTIuNiAxMy43LTEuMSAyLTIuNiA0LTQuOCA1LjQtMi4yIDEuNC00LjcgMi03LjEgMmwtMzIuNSAwIDAgMTQ1LjhjMCAxMC44IC43IDE5LjUgMiAyNi4yIDEuNCA2LjkgMy4xIDEwLjkgNC43IDEyLjkgMS4yIDEuNSAyLjIgMi41IDMuMSAzLjJsMi4yIDEuNCAuMSAuMSAyLjkgLjhjMS4yIC4yIDIuNiAuMyA0LjMgLjNsMjAuMyAwYzQuNSAwIDguOSAxLjcgMTEuOCA1LjggMi42IDMuNiAzLjMgOC4xIDMuMyAxMi4ybDAgMTcuMmMwIDQuNS0uOCA5LjMtMy40IDEzLjEtMyA0LjItNy41IDYtMTIuMyA2bDAgMC0yOS4xIC4xYy04IDAtMTUtLjYtMjEuMi0xLjctNi43LTEuMy0xMy40LTQuMS0yMC4xLTguMS03LjItNC40LTEzLTEwLjMtMTcuNS0xNy44LTQuNS03LjUtNy45LTE3LjUtMTAuNS0yOS41LTIuNi0xMi4yLTMuOS0yNi42LTMuOS00M2wwLTE0NC45LTEzLjQgMGMtMi40IDAtNC45LS42LTcuMS0yLTIuMi0xLjQtMy43LTMuNC00LjgtNS40LTItMy45LTIuNi04LjctMi42LTEzLjdsMC0xNS40YzAtNS4xIC42LTEwIDIuNi0xMy45IDEuMS0yLjEgMi42LTQgNC44LTUuNSAyLjItMS41IDQuNy0yLjEgNy4yLTIuMWwxMy40IDAgMC0uNiA1LjItMTExLjIgMC0uMSAuMy0zLjljLjUtMy44IDEuMy03LjQgMi43LTEwLjMgMi4xLTQuMiA2LTcuOSAxMS44LTcuOWwyOC42IDB6bS0yNjggMTEuN2MxLjggLjMgMy42IC45IDUuMyAyLjEgMi4xIDEuNSAzLjUgMy41IDQuNCA1LjQgMS43IDMuNyAyLjMgOC40IDIuMyAxMy4ybDAgMzc3LjhjMCA2LjctLjYgMTIuNi0yLjQgMTcuMS0uOSAyLjMtMi4zIDQuNy00LjQgNi41LTIuMyAyLTUuMSAzLTguMSAzbC00My43IDBjLTMgMC01LjgtMS4xLTguMS0zLjEtMi4xLTEuOS0zLjQtNC4zLTQuMi02LjUtMS43LTQuNS0yLjMtMTAuMy0yLjMtMTdsMC0zMTUuOGMtNC44IDEuMi04LjcgMi4yLTExLjUgMi45LTEuOSAuNS0zLjQgLjgtNC40IDEuMS0uNSAuMS0uOSAuMi0xLjIgLjMtLjEgMC0uMyAuMS0uNSAuMS0uMSAwLS4yIDAtLjMgLjEgMCAwLS4yIDAtLjMgMCAwIDAtLjIgMC0uNCAwbDAgMGMtLjEgMC0uMyAwLS40IDAtLjEgMC0uMiAwLS4yIDAtMi4yIC4xLTQuNS0uNC02LjYtMS43LTIuMy0xLjQtMy44LTMuNC00LjctNS4zLTEuOC0zLjctMi4zLTguNC0yLjMtMTNsMC0yNy40YzAtNC40IC43LTguOCAyLjYtMTIuNCAyLjEtMy45IDUuNS02LjYgOS44LTcuNmw3NS41LTE5LjVjMS40LS40IDIuOS0uNSA0LjQtLjVsMS44IC4xem0xNDMuOC0uNWMxLjggLjMgMy42IC45IDUuMiAyLjEgMi4xIDEuNSAzLjUgMy41IDQuNCA1LjQgMS43IDMuNyAyLjIgOC40IDIuMiAxMy4ybDAgMzc3LjhjMCA2LjctLjYgMTIuNi0yLjQgMTcuMS0uOSAyLjMtMi4zIDQuNy00LjQgNi41LTIuMyAyLTUuMSAzLTguMSAzbC00My43IDBjLTMgMC01LjgtMS4xLTguMS0zLjEtMi4xLTEuOS0zLjQtNC4zLTQuMi02LjUtMS43LTQuNS0yLjMtMTAuMy0yLjMtMTdsMC0zMTUuOGMtNC44IDEuMi04LjcgMi4yLTExLjUgMi45LTEuOSAuNS0zLjQgLjgtNC40IDEuMS0uNSAuMS0uOSAuMi0xLjIgLjMtLjEgMC0uMyAuMS0uNSAuMS0uMSAwLS4yIDAtLjMgLjEtLjEgMC0uMiAwLS4zIDAgMCAwLS4yIDAtLjQgMGwwIDBjLS4xIDAtLjIgMC0uMyAwLS4xIDAtLjIgMC0uMyAwLTIuMiAuMS00LjUtLjQtNi42LTEuNy0yLjMtMS40LTMuOC0zLjQtNC43LTUuMy0xLjgtMy43LTIuMy04LjMtMi4zLTEzbDAtMjcuNGMwLTQuNCAuNy04LjcgMi42LTEyLjQgMi4xLTMuOSA1LjUtNi42IDkuOC03LjZsNzUuNC0xOS40YzEuNC0uNCAyLjktLjUgNC40LS41bDEuOCAuMXoiXX0sUTdlPWhFLEo3ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZWFtc3BlYWsiLGljb246WzU3Niw1MTIsW10sImY0ZjkiLCJNMTUyLjggMzcuMmMtMzIuMiAzOC4xLTU2LjEgODIuNi02OS45IDEzMC41IDAgLjItLjEgLjMtLjEgLjUtMzkuMyAxNi4yLTY2LjggNTQuOC02Ni44IDk5LjggMCA1OS42IDQ4LjQgMTA4IDEwOCAxMDhzMTA4LTQ4LjQgMTA4LTEwOGMwLTUzLjUtMzguOS05Ny45LTkwLTEwNi41IDE1LjctNDEuOCA0MC40LTc5LjYgNzIuMy0xMTAuNyAxLjgtMS42IDQtMi42IDYuMy0zLjEgMzcuMi0xMS41IDc2LjctMTMuMyAxMTQuOC01LjIgMTE5LjMgMjUuMSAxOTguNiAxMzguMiAxODEuNyAyNTguOC04LjQgNjIuNi0zOC42IDExMi43LTg3LjcgMTUxLjQtNTAuMSAzOS43LTEwNy41IDU0LjMtMTcwLjIgNTIuMmwtMjQtMWMxMi40IDIuOCAyNSA0LjkgMzcuNiA2LjMgNDAuNyA0LjIgODEuNCAyLjEgMTIwLjEtMTIuNSA5NC0zNS41IDE0OS4zLTEwMi4zIDE2Mi45LTIwMi41IDQuOC01Mi42LTUuOC0xMDUuNC0zMC44LTE1Mi03MC40LTEzMS45LTIzNC4yLTE4MS42LTM2Ni0xMTEuMi0yLjQgMS40LTQuNSAzLjEtNi4zIDUuMmwuMSAwek0zMDkuNCA0MzMuOWMtMi4xIDExLjUtNC4yIDIxLjktMTQuNiAzMS4zIDUzLjItMSAxMjMuMi0yOS4yIDE2MS44LTk3LjEgMzkuNy02OS45IDM3LjYtMTM5LjktNi4zLTIwNy44LTM2LjUtNTUuMy04OS44LTgyLjQtMTU2LjYtODYuNiAxLjUgMi4zIDMuMiA0LjQgNS4yIDYuM2w1LjIgNi4zYzI1LjEgMzEuMyAzNy42IDY3LjkgNDIuOCAxMDcuNSAyLjEgMTUuNy0xIDMwLjMtMTMuNiA0MS44LTQuMiAzLjEtNS4yIDYuMy00LjIgMTAuNGw3LjMgMTcuNyAyOS4zIDU0LjNjNS4yIDExLjUgNC4yIDE5LjgtNi4zIDI4LjItMy4yIDIuNS02LjcgNC42LTEwLjQgNi4zbC0xOC44IDguNCAzLjEgMTMuNmMzLjEgNi4zIDEgMTIuNS0zLjEgMTcuNy0yLjUgMi40LTMuOCA1LjktMy4xIDkuNCAyLjEgMTEuNS0yLjEgMTkuOC0xMi41IDI1LjEtMi4xIDEtNC4yIDUuMi01LjIgNy4zbDAtLjF6bS0xMzMuNi0zLjFjMTYuNyAxMS41IDM0LjUgMjAuOSA1My4yIDI2LjEgMjQgNS4yIDQxLjgtNi4zIDQ0LjktMzAuMyAxLTguNCA1LjItMTQuNiAxMi41LTE3LjcgNy4zLTQuMiA4LjQtNy4zIDIuMS0xMy42bC05LjQtOC40IDEzLjYtNC4yYzYuMy0yLjEgNy4zLTUuMiA1LjItMTEuNS0xLjQtMy0yLjQtNi4yLTMuMS05LjQtMy4xLTE0LjYtMi4xLTE1LjcgMTEuNS0xOC44IDguNC0zLjEgMTUuNy02LjMgMjEuOS0xMi41IDMuMS0yLjEgMy4xLTQuMiAxLTguNGwtMTYuNy0zMC4zYy0xLTEuOS0yLjEtMy44LTMuMS01LjctNi40LTExLjctMTMtMjMuNi0xNS43LTM3LjEtMi4xLTkuNC0xLTE3LjcgOC40LTI0IDUuMi00LjIgOC40LTkuNCA4LjQtMTYuNy0uNC0xMC4xLTEuNS0yMC4zLTMuMS0zMC4zLTYuMy0zNy42LTIzLTY4LjktNTEuMi05NS01LjItNC4yLTkuNC02LjMtMTYuNy00LjJsLTM1LjYgMTIuNyA2IDMuNmM2LjMgMy43IDEyLjIgNy4zIDE3IDEyLjEgMzAuMyAyNi4xIDQxLjggNjEuNiA0NS45IDEwMC4yIDEgOC40IDAgMTYuNy03LjMgMjEuOS04LjQgNS4yLTEwLjQgMTIuNS03LjMgMjAuOSA0LjkgMTMuMiAxMC40IDI2IDE2LjcgMzguNkwyOTEuNiAzMThjLTYuMyA4LjQtMTMuNiAxMS41LTIxLjkgMTQuNi0xMi41IDMuMS0xNC42IDcuMy0xMC40IDIwLjkgLjYgMS41IDEuNCAyLjggMi4xIDQuMiAyLjEgNS4yIDEgOC40LTQuMiAxMC40bC0xMi41IDMuMSA1LjIgNC4yIDQuMiA0LjJjNC4yIDUuMiA0LjIgOC40LTIuMSAxMC40LTcuMyA0LjItMTEuNSA5LjQtMTEuNSAxNy43IDAgMTIuNS03LjMgMTkuOC0xOC44IDI0LTMuOCAxLTcuNiAxLjUtMTEuNSAxbC0zNC41LTIuMSAuMSAuMnoiXX0sZXBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cHBsZSIsaWNvbjpbNjQwLDUxMixbXSwiZjNmOSIsIk02NDAgMjYyLjVjMCA2NC4xLTEwOSAxMTYuMS0yNDMuNSAxMTYuMS0yNC44IDAtNDguNi0xLjgtNzEuMS01IDcuNyAuNCAxNS41IC42IDIzLjQgLjYgMTM0LjUgMCAyNDMuNS01Ni45IDI0My41LTEyNy4xIDAtMjkuNC0xOS4xLTU2LjQtNTEuMi03OCA2MCAyMS4xIDk4LjkgNTUuMSA5OC45IDkzLjR6TTQ3LjcgMjI3LjljLS4xLTcwLjIgMTA4LjgtMTI3LjMgMjQzLjMtMTI3LjYgNy45IDAgMTUuNiAuMiAyMy4zIC41LTIyLjUtMy4yLTQ2LjMtNC45LTcxLTQuOS0xMzQuNSAuNC0yNDMuNCA1Mi42LTI0My4zIDExNi43IC4xIDM4LjMgMzkuMSA3Mi4zIDk5LjMgOTMuMy0zMi4zLTIxLjUtNTEuNS00OC42LTUxLjYtNzh6bTYwLjIgMzkuOVMxMTguNCAyODEgMTM3LjIgMjgxYzE3LjkgMCAyOC40LTExLjUgMjguNC0yNS4xIDAtMjgtNDAuMi0yNS4xLTQwLjItMzkuNyAwLTUuNCA1LjMtOS4xIDEyLjUtOS4xIDUuNyAwIDExLjMgMi42IDExLjMgNi42bDAgMy45IDE0LjIgMCAwLTcuOWMwLTEyLjEtMTUuNC0xNi44LTI1LjQtMTYuOC0xNi41IDAtMjguNSAxMC4yLTI4LjUgMjQuMSAwIDI2LjYgNDAuMiAyNS40IDQwLjIgMzkuOSAwIDYuNi01LjggMTAuMS0xMi4zIDEwLjEtMTEuOSAwLTIwLjctMTAuMS0yMC43LTEwLjFsLTguOCAxMC45em0xMjAuOC03My42bDAgNTQuNGMwIDExLjMtNy4xIDE3LjgtMTcuOCAxNy44cy0xNy44LTYuNS0xNy44LTE3LjdsMC01NC41LTE1LjggMCAwIDU1YzAgMTguOSAxMy40IDMxLjkgMzMuNyAzMS45IDIwLjEgMCAzMy40LTEzIDMzLjQtMzEuOWwwLTU1LTE1LjcgMHptMzQuNCA4NS40bDE1LjggMCAwLTI5LjUgMTUuNSAwYzE2IDAgMjcuMi0xMS41IDI3LjItMjguMXMtMTEuMi0yNy44LTI3LjItMjcuOGwtMzkuMSAwIDAgMTMuNCA3LjggMCAwIDcyem0xNS44LTQzbDAtMjkuMSAxMi45IDBjOC43IDAgMTMuNyA1LjcgMTMuNyAxNC40IDAgOC45LTUuMSAxNC43LTE0IDE0LjdsLTEyLjYgMHptNTcgNDNsMTUuOCAwIDAtMjkuNSAxNS41IDBjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44bC0zOS4xIDAgMCAxMy40IDcuOCAwIDAgNzJ6bTE1LjctNDNsMC0yOS4xIDEyLjkgMGM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNSAxNC43LTE0IDE0LjdsLTEyLjYgMHptNTcuMSAzNC44YzAgNS44IDIuNCA4LjIgOC4yIDguMmwzNy42IDBjNS44IDAgOC4yLTIuNCA4LjItOC4ybDAtMTMtMTQuMyAwIDAgNS4yYzAgMS43LTEgMi42LTIuNiAyLjZsLTE4LjYgMGMtMS43IDAtMi42LTEtMi42LTIuNmwwLTYxLjJjMC01LjctMi40LTguMi04LjItOC4ybC0xNS40IDAgMCAxMy40IDUuMiAwYzEuNyAwIDIuNiAxIDIuNiAyLjZsMCA2MS4yLS4xIDB6bTYzLjQgMGMwIDUuOCAyLjQgOC4yIDguMiA4LjJsMzguNyAwYzUuNyAwIDguMi0yLjQgOC4yLTguMmwwLTEzLTE0LjMgMCAwIDUuMmMwIDEuNy0xIDIuNi0yLjYgMi42bC0xOS43IDBjLTEuNyAwLTIuNi0xLTIuNi0yLjZsMC0yMC4zIDI3LjcgMCAwLTEzLjQtMjcuNyAwIDAtMjIuNCAxOS4yIDBjMS43IDAgMi42IDEgMi42IDIuNmwwIDUuMiAxNC4yIDAgMC0xM2MwLTUuNy0yLjUtOC4yLTguMi04LjJsLTUxLjYgMCAwIDEzLjQgNy44IDAgMCA2My45IC4xIDB6bTU4LjktNzZsMCA1LjkgMS42IDAgMC01LjkgMi43IDAgMC0xLjItNyAwIDAgMS4yIDIuNyAwem01LjctMS4ybDAgNy4xIDEuNSAwIDAtNS43IDIuMyA1LjcgMS4zIDAgMi4zLTUuNyAwIDUuNyAxLjUgMCAwLTcuMS0yLjMgMC0yLjEgNS4xLTIuMS01LjEtMi40IDB6Il19LHVFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10d2l0dGVyIixpY29uOls0NDgsNTEyLFsidHdpdHRlci1zcXVhcmUiXSwiZjA4MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zNTEuMyAxOTkuM2MwIDg2LjctNjYgMTg2LjYtMTg2LjYgMTg2LjYtMzcuMiAwLTcxLjctMTAuOC0xMDAuNy0yOS40IDUuMyAuNiAxMC40IC44IDE1LjggLjggMzAuNyAwIDU4LjktMTAuNCA4MS40LTI4LTI4LjgtLjYtNTMtMTkuNS02MS4zLTQ1LjUgMTAuMSAxLjUgMTkuMiAxLjUgMjkuNi0xLjItMzAtNi4xLTUyLjUtMzIuNS01Mi41LTY0LjRsMC0uOGM4LjcgNC45IDE4LjkgNy45IDI5LjYgOC4zLTktNi0xNi40LTE0LjEtMjEuNS0yMy42cy03LjgtMjAuMi03LjctMzFjMC0xMi4yIDMuMi0yMy40IDguOS0zMy4xIDMyLjMgMzkuOCA4MC44IDY1LjggMTM1LjIgNjguNi05LjMtNDQuNSAyNC04MC42IDY0LTgwLjYgMTguOSAwIDM1LjkgNy45IDQ3LjkgMjAuNyAxNC44LTIuOCAyOS04LjMgNDEuNi0xNS44LTQuOSAxNS4yLTE1LjIgMjgtMjguOCAzNi4xIDEzLjItMS40IDI2LTUuMSAzNy44LTEwLjItOC45IDEzLjEtMjAuMSAyNC43LTMyLjkgMzQgLjIgMi44IC4yIDUuNyAuMiA4LjV6Il19LHRwZT11RSxhcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltIixpY29uOls1MTIsNTEyLFtdLCJlODhhIiwiTTMwMy4zIDU0LjVsMC0xMi4zIDQtMy43IDcuOS03LjIgMy41LTMuMiAxNjggMCAxNS4xIDE1LjEgMCAzOC45LTMuNSAzLjYtODAuOSA4Mi45IDg2LjkgODYuOS05MS4yIDkxLjIgOC45IDAgNy42LTguMyAxLS45YzEuMS0uOCAyLjUtMS4yIDMuOS0xLjJsMjguOSAwIDEuNSAuMmMxLjUgLjQgMi44IDEuMiAzLjggMi41bDcuNiAxMC4yYzEuMyAxLjcgMS42IDMuOSAxIDUuOWwtMjIuMyA3Mi41IDEuMiAwYzIuMiAwIDQuMiAxLjEgNS41IDIuOXMxLjUgNC4xIC43IDYuMUw0NTkgNDQ1Yy0xIDIuNi0zLjQgNC4yLTYuMiA0LjJsLTQwLjQgMGMtMi4xIDAtNC4xLTEtNS4zLTIuN3MtMS42LTMuOS0xLTUuOWwyMC02My4yLTIyLjIgMC0xNi4yIDUwLjdjMi4xIC4xIDQuMSAxLjEgNS4zIDIuOSAxLjIgMS44IDEuNCA0LjIgLjYgNi4ybC0zLjMgNy45Yy0xIDIuNS0zLjUgNC4xLTYuMSA0LjFsLTM2LjggMGMtMi4xIDAtNC4xLTEtNS40LTIuN3MtMS42LTMuOS0xLTUuOWwxMC0zMi4xLTIzLjkgMjMuOGMuMyAxLjIgLjMgMi41LS4xIDMuOGwtMi45IDguNmMtLjkgMi43LTMuNCA0LjUtNi4zIDQuNWwtNy40IDAtNTQuNiA1NC42LTgzLjgtODMuOC0zMS42IDMyLjUtMy42IDMuNy00OS4yIDAtMi44LTEuN2MtOC44LTUuMS0xNC44LTguNS0xNy45LTEwLjNsMC0xMjkuMy01OC41LTU4LjUgMi42LTIuNiA1NS45LTU2IDAtOTkuNC0xMi42IDAtMTAuOC0xMC44LTMuNi0zLjYgMC00MC43IDMuMi0zLjUgNy45LTguNSAzLjctMy45IDE2Ni42IDAgOCA4IDI3LjQtMjcuNCA0Ni40IDQ2LjR6bS0yNTEtNS42bDAgMzAuMyA5LjQgNy44IDE4LjkgMCAwIDM0Ny45IDExLjQgMTAuMyAzOC4yIDAgOTEtOTNjMC0uNCAuMS0uOCAuMi0xLjFsMi42LTEwLjVjLjctMi45IDMuNC01IDYuNC01bDcuMSAwIDE1LjUtMTUuOS0yLTJjLTEuOC0xLjgtMi40LTQuNS0xLjUtNi45bDYuOS0xOS4zYy40LTEuMSAxLjEtMiAxLjktMi44bDYuOS01LjljMS4yLTEgMi44LTEuNiA0LjMtMS42bDE5LjcgMCAxLjMgLjJjLjEgMCAuMSAuMSAuMiAuMWwxOTkuMi0yMDMuNSAwLTI4LjctOC4yLTcuNC0xNTYuMiAwLTcuOCA3LjggMCAzMC41IDguMiA3LjQgMjEgMC0xNDcgMTQ2LjQgMC0xNDYuNiAxNi45IDAgOC43LTguNyAwLTI3LjctNy40LTkuOS0xNTcuNiAwLTggOHpNMjI3LjYgMzUyLjdsMTQuOCAwLTMxLjggOTAuOSA0NS4zIDAgMy05LjYtMTIuNSAwIDMxLjUtOTEuOS00Ny42IDAtMi42IDEwLjV6bTEzNi45IDFsLTE2LjQgMC0xMC41LTEwLjgtMzUuOCAwLTMuMyA5LjggMTEuOCAwLTMwLjUgODkuOSAzOC4xIDAgMi45LTguNi04LjggMCAyMC02MyAzNy44IDAtMjIuMyA3MS42IDM2LjggMCAzLjMtNy45LTguOCAwIDIwLjMtNjQgMzYuMSAwLTIyLjcgNzEuOSA0MC40IDAgMy4zLTguNi0xMC4yIDAgMjUtODEuMS03LjUtMTAuMi0yOC45IDAtOS41IDEwLjUtMTcuNCAwLTkuOS0xMC44LTIzLjMgMC05LjggMTEuMnpNMjYyLjUgMjkzLjZsLTYuOSAxOS4zIDUuMyA1LjMgMjEuMyAwIDUuNi01LjYgNS45LTIwLjMtNC42LTQuNi0xOS43IDAtNi45IDUuOXoiXX0sUGY9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9udC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFs2MjUwMSw2MjY5NCwiZm9udC1hd2Vzb21lLWZsYWciLCJmb250LWF3ZXNvbWUtbG9nby1mdWxsIl0sImYyYjQiLCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA2NCAwIDAtNjQgMzczLjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6Il19LGlwZT1QZixycGU9UGYsZkU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2lyc2luZGhhbmR3ZXJrIixpY29uOls0NDgsNTEyLFsid3NoIl0sImUyZDAiLCJNMTguOSA0NzkuOGw4My40IDAgMC0xMTItODMuNCA0NyAwIDY1em0zMjkgMGw4Mi40IDAgMC02NS04Mi40LTQ3IDAgMTEyem0wLTQ0OGwwIDIxOS44LTEyMy42LTcyLjQtMTIxLjcgNzIuNCAwLTIxOS44LTgzLjcgMCAwIDM2MC44IDIwNS40LTEyMi4zIDIwNiAxMjIuMyAwLTM2MC44LTgyLjMgMHoiXX0sc3BlPWZFLG5wZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ6b29tIixpY29uOls2NDAsNTEyLFtdLCJlODdiIiwiTTEzNC4yIDMyNi42bC0xMTQuNCAwYy04IDAtMTUuMi00LjgtMTguMy0xMi4yUy4xIDI5OC42IDUuOCAyOTIuOWw3OS4zLTc5LjMtNTYuOCAwQzEyLjcgMjEzLjYgMCAyMDEgMCAxODUuNGwxMDUuNSAwYzggMCAxNS4yIDQuOCAxOC4zIDEyLjJzMS40IDE1LjktNC4zIDIxLjZsLTc5LjMgNzkuMyA2NS43IDBjMTUuNiAwIDI4LjMgMTIuNiAyOC4zIDI4LjN6TTY0MCAyMzguM2MwLTMwLjQtMjQuNy01NS4xLTU1LjEtNTUuMS0xNi4yIDAtMzAuOSA3LjEtNDEgMTguMy0xMC4xLTExLjItMjQuNy0xOC4zLTQxLTE4LjMtMzAuNCAwLTU1LjEgMjQuNy01NS4xIDU1LjFsMCA4OC4zYzE1LjYgMCAyOC4zLTEyLjcgMjguMy0yOC4zbDAtNjBjMC0xNC44IDEyLTI2LjggMjYuOC0yNi44czI2LjggMTIgMjYuOCAyNi44bDAgNjBjMCAxNS42IDEyLjYgMjguMyAyOC4zIDI4LjNsMC04OC4zYzAtMTQuOCAxMi0yNi44IDI2LjgtMjYuOHMyNi44IDEyIDI2LjggMjYuOGwwIDYwYzAgMTUuNiAxMi42IDI4LjMgMjguMyAyOC4zbDAtODguM3pNMjg4LjIgMjU2YTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6bS0yNzQuMSAwYTcyLjggNzIuOCAwIDEgMSAxNDUuNSAwIDcyLjggNzIuOCAwIDEgMSAtMTQ1LjUgMHptMTE3LjMgMGE0NC41IDQ0LjUgMCAxIDAgLTg5IDAgNDQuNSA0NC41IDAgMSAwIDg5IDB6Il19LG9wZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb25mbHVlbmNlIixpY29uOls1MTIsNTEyLFtdLCJmNzhkIiwiTTIuOCA0MTIuMmMtNC41IDcuNi0yLjEgMTcuNSA1LjUgMjIuMmwxMDUuOSA2NS4yYzcuNyA0LjcgMTcuNyAyLjQgMjIuNC01LjMgMC0uMSAuMS0uMiAuMS0uMiA2Ny4xLTExMi4yIDgwLjUtOTUuOSAyODAuOS0uNyA4LjEgMy45IDE3LjggLjQgMjEuNy03LjcgLjEtLjEgLjEtLjMgLjItLjRsNTAuNC0xMTQuMWMzLjYtOC4xLS4xLTE3LjYtOC4xLTIxLjMtMjIuMi0xMC40LTY2LjItMzEuMi0xMDUuOS01MC4zLTI0Ny45LTEyMC42LTMzMC44IDQ1LjctMzczLjEgMTEyLjZ6TTUxMC4yIDEwMC4xYzQuNS03LjYgMi4xLTE3LjUtNS41LTIyLjJMMzk4LjkgMTIuOGMtNy41LTUtMTcuNi0zLjEtMjIuNiA0LjQtLjIgLjMtLjQgLjYtLjYgMS02Ny4zIDExMi42LTgxLjEgOTUuNi0yODAuNiAuOS04LjEtMy45LTE3LjgtLjQtMjEuNyA3LjctLjEgLjEtLjEgLjMtLjIgLjRMMjIuNyAxNDEuM2MtMy42IDguMSAuMSAxNy42IDguMSAyMS4zIDIyLjIgMTAuNCA2Ni4zIDMxLjIgMTA2IDUwLjQgMjQ4IDEyMCAzMzAuOC00NS40IDM3My40LTExMi45eiJdfSxscGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlnZyIsaWNvbjpbNTEyLDUxMixbXSwiZjFhNiIsIk04MS43IDE3Mi4zbC04MS43IDAgMCAxNzQuNCAxMzIuNyAwIDAtMjUwLjctNTEgMCAwIDc2LjN6bTAgMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3pNMzc4LjkgMTcyLjNsMCAxNzQuNCA4MS44IDAgMCAyOC41LTgxLjggMCAwIDQwLjggMTMzLjEgMCAwLTI0My43LTEzMy4xIDB6bTgxLjggMTMzLjRsLTMwLjggMCAwLTkyLjMgMzAuOCAwIDAgOTIuM3ptLTIzNS42IDQxbDgyLjEgMCAwIDI4LjUtODIuMSAwIDAgNDAuOCAxMzMuMyAwIDAtMjQzLjctMTMzLjMgMCAwIDE3NC40em01MS4yLTEzMy4zbDMwLjggMCAwIDkyLjMtMzAuOCAwIDAtOTIuM3pNMTUzLjMgOTZsNTEuMyAwIDAgNTEtNTEuMyAwIDAtNTF6bTAgNzYuM2w1MS4zIDAgMCAxNzQuNC01MS4zIDAgMC0xNzQuNHoiXX0sY3BlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVhZHMiLGljb246WzQ0OCw1MTIsW10sImU2MTgiLCJNMzMxLjUgMjM1LjdjMi4yIC45IDQuMiAxLjkgNi4zIDIuOCAyOS4yIDE0LjEgNTAuNiAzNS4yIDYxLjggNjEuNCAxNS43IDM2LjUgMTcuMiA5NS44LTMwLjMgMTQzLjItMzYuMiAzNi4yLTgwLjMgNTIuNS0xNDIuNiA1M2wtLjMgMGMtNzAuMi0uNS0xMjQuMS0yNC4xLTE2MC40LTcwLjItMzIuMy00MS00OC45LTk4LjEtNDkuNS0xNjkuNmwwLS41QzE3IDE4NC4zIDMzLjYgMTI3LjIgNjUuOSA4Ni4yIDEwMi4yIDQwLjEgMTU2LjIgMTYuNSAyMjYuNCAxNmwuMyAwYzcwLjMgLjUgMTI0LjkgMjQgMTYyLjMgNjkuOSAxOC40IDIyLjcgMzIgNTAgNDAuNiA4MS43bC00MC40IDEwLjhjLTcuMS0yNS44LTE3LjgtNDcuOC0zMi4yLTY1LjQtMjkuMi0zNS44LTczLTU0LjItMTMwLjUtNTQuNi01NyAuNS0xMDAuMSAxOC44LTEyOC4yIDU0LjQtMjYuMiAzMy4zLTM5LjggODEuNS00MC4zIDE0My4yIC41IDYxLjcgMTQuMSAxMDkuOSA0MC4zIDE0My4zIDI4IDM1LjYgNzEuMiA1My45IDEyOC4yIDU0LjQgNTEuNC0uNCA4NS40LTEyLjYgMTEzLjctNDAuOSAzMi4zLTMyLjIgMzEuNy03MS44IDIxLjQtOTUuOS02LjEtMTQuMi0xNy4xLTI2LTMxLjktMzQuOS0zLjcgMjYuOS0xMS44IDQ4LjMtMjQuNyA2NC44LTE3LjEgMjEuOC00MS40IDMzLjYtNzIuNyAzNS4zLTIzLjYgMS4zLTQ2LjMtNC40LTYzLjktMTYtMjAuOC0xMy44LTMzLTM0LjgtMzQuMy01OS4zLTIuNS00OC4zIDM1LjctODMgOTUuMi04Ni40IDIxLjEtMS4yIDQwLjktLjMgNTkuMiAyLjgtMi40LTE0LjgtNy4zLTI2LjYtMTQuNi0zNS4yLTEwLTExLjctMjUuNi0xNy43LTQ2LjItMTcuOGwtLjcgMGMtMTYuNiAwLTM5IDQuNi01My4zIDI2LjNsLTM0LjQtMjMuNmMxOS4yLTI5LjEgNTAuMy00NS4xIDg3LjgtNDUuMWwuOCAwYzYyLjYgLjQgOTkuOSAzOS41IDEwMy43IDEwNy43bC0uMiAuMiAuMSAwem0tMTU2IDY4LjhjMS4zIDI1LjEgMjguNCAzNi44IDU0LjYgMzUuMyAyNS42LTEuNCA1NC42LTExLjQgNTkuNS03My4yLTEzLjItMi45LTI3LjgtNC40LTQzLjQtNC40LTQuOCAwLTkuNiAuMS0xNC40IC40LTQyLjkgMi40LTU3LjIgMjMuMi01Ni4yIDQxLjhsLS4xIC4xeiJdfSxtRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cHJlc3NyIixpY29uOls1MTIsNTEyLFsicmVuZGFjdCJdLCJmM2U0IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDI3LjMgMTY2LjZjLTE1LjIgMzQuNS0zMC40IDY5LTQ1LjYgMTAzLjUtMi40IDUuNS02LjkgOC4yLTEzIDguMi0yMyAwLTQ2IC4xLTY5IDAtNS4xIDAtOC4yIDEuOS0xMC4zIDYuNy0xMC4yIDIzLjYtMjAuNiA0Ny0zMSA3MC41LTEuNSAzLjUtNC4xIDUuMy03LjkgNS4zLTQ1LjkgMC05MS45IDAtMTM3LjggMC0zLjEgMC01LjYtMS4xLTcuNy0zLjQtMTEuMi0xMi4zLTIyLjUtMjQuNi0zMy43LTM2LjktMi43LTMtMi44LTYuMi0xLjItOS43IDguNy0xOS41IDE3LjMtMzkuMSAyNS45LTU4LjcgMTIuOS0yOS40IDI1LjktNTguNyAzOC43LTg4LjEgMS43LTMuOSA0LjMtNS43IDguNS01LjcgMTQuMiAuMSAyOC41IDAgNDIuNyAwIDYuMiAwIDkuMiA0LjggNi43IDEwLjYtMTMuNiAzMC44LTI3LjIgNjEuNi00MC43IDkyLjMtNS43IDEzLTExLjQgMjYtMTcuMSAzOS0zLjkgOSA3LjEgMTIgMTEgNS42IC4yLS40LTEuNCA0LjIgMzAtNjcuNyAxLjQtMy4xIDMuNC00LjQgNi44LTQuNCAxNS4yIC4xIDMwLjQgMCA0NS42IDAgNS42IDAgNy45IDMuNiA1LjcgOC43LTguMyAxOS0xNi43IDM3LjktMjUgNTYuOS01IDExLjQgOC4xIDEyLjUgMTEuMyA1LjMgMC0uMSAyNy45LTYzLjMgMzIuMi03My4yIDItNC42IDUuNC02LjUgMTAuMy02LjUgMjYuNCAuMSA1Mi45IDAgNzkuMyAwIDEyLjQgMCAxMy45LTEzLjYgMy45LTEzLjYtMjUuMyAwLTUwLjUgMC03NS44IDAtNi4zIDAtNy44LTIuNS01LjMtOC4zIDUuOC0xMy4xIDExLjYtMjYuMSAxNy4zLTM5LjIgMS43LTQgNC41LTUuOCA4LjgtNS44IDIzLjEgLjEgMjYgMCAxMzAuOCAwIDYuMSAwIDggMi44IDUuNiA4LjN6Il19LGRwZT1tRSxwcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieW9hc3QiLGljb246WzQ0OCw1MTIsW10sImYyYjEiLCJNOTEuMyA3NmwxODYgMC03IDE4LjktMTc5IDBjLTM5LjcgMC03MS45IDMxLjYtNzEuOSA3MC4zbDAgMjA1LjRjMCAzNS40IDI0LjkgNzAuMyA4NCA3MC4zbDAgMTkuMS0xMi4xIDBDNDEuMiA0NjAgMCA0MTkuOCAwIDM3MC41TDAgMTY1LjJDMCAxMTUuOSA0MC43IDc2IDkxLjMgNzZ6TTMyMC40IDIwbDY2LjUgMGMtMTQzLjggMzc4LjEtMTQ1LjcgMzk4LjktMTg0LjcgNDM5LjMtMjAuOCAyMS42LTQ5LjMgMzEuNy03OC4zIDMyLjdsMC01MS4xYzQ5LjItNy43IDY0LjYtNDkuOSA2NC42LTc1LjMgMC0yMC4xIC42LTEyLjYtODIuMS0yMjMuMmw2MS40IDAgNTAuNCAxNTYuNiAxMDIuMi0yNzl6TTQ0OCAxNjEuNWwwIDI5OC41LTIxNCAwYzYuNi05LjYgMTAuNy0xNi4zIDEyLjEtMTkuNGwxODIuNSAwIDAtMjc5LjFjMC0zMi41LTE3LjEtNTEuOS00OC4yLTYyLjlMMzg3LjEgODFjNDEuNyAxMy42IDYwLjkgNDMuMSA2MC45IDgwLjV6Il19LGhwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuaW1ibHIiLGljb246WzM4NCw1MTIsW10sImY1YTgiLCJNMjQ2LjYgMzUzLjNhMjcgMjcgMCAxIDEgMC01NCAyNyAyNyAwIDEgMSAwIDU0em0tNzkuNC0yN2EyNy4xIDI3LjEgMCAxIDEgLTU0LjMgMCAyNy4xIDI3LjEgMCAxIDEgNTQuMyAwek0xOTEuOCAxNTlDMTU3IDE1OSA4OS40IDE3OC44IDU5LjIgMjI3TDE0IDAgMTQgMzM1LjVDMTQgNDMzLjEgOTMuNiA1MTIgMTkxLjggNTEyUzM2OS41IDQzMyAzNjkuNSAzMzUuNSAyOTAuMSAxNTkgMTkxLjggMTU5em0wIDMwOC4xYy03My4zIDAtMTMyLjUtNTguOS0xMzIuNS0xMzEuNnM1OS4yLTEzMS42IDEzMi41LTEzMS42IDEzMi41IDU4LjkgMTMyLjUgMTMxLjUtNTkuMyAxMzEuNi0xMzIuNSAxMzEuNmwwIC4xeiJdfSx1cGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGl4ZWxmZWQiLGljb246WzUxMiw1MTIsW10sImU3ZGIiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyek0yMzUuNyAzMTEuOWw0NyAwYzQ0LjIgMCA4MC4xLTM0LjkgODAuMS03OHMtMzUuOS03OC04MC4xLTc4bC02Ny44IDBjLTI1LjUgMC00Ni4yIDIwLjEtNDYuMiA0NWwwIDE3NS4xIDY3LTY0LjF6Il19LGZwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YWhvbyIsaWNvbjpbNTEyLDUxMixbXSwiZjE5ZSIsIk0yMjMuOCAxNDEuMWwtNTYuNyAxNDMuMi01Ni0xNDMuMi05Ni4xIDAgMTA1LjggMjQ5LjEtMzguNiA4OS44IDk0LjIgMCAxNDAuOS0zMzguOS05My42IDB6TTMyOS4yIDI3Ni45YTU4LjIgNTguMiAwIDEgMCAwIDExNi40IDU4LjIgNTguMiAwIDEgMCAwLTExNi40ek0zOTQuNyAzMmwtOTMgMjIzLjUgMTA0LjggMCA5Mi42LTIyMy41LTEwNC40IDB6Il19LG1wZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVlc2t5IixpY29uOls1NzYsNTEyLFtdLCJlNjcxIiwiTTQwNy44IDI5NC43Yy0zLjMtLjQtNi43LS44LTEwLTEuMyAzLjQgLjQgNi43IC45IDEwIDEuM3pNMjg4IDIyNy4xQzI2MS45IDE3Ni40IDE5MC45IDgxLjkgMTI0LjkgMzUuMyA2MS42LTkuNCAzNy41LTEuNyAyMS42IDUuNSAzLjMgMTMuOCAwIDQxLjkgMCA1OC40UzkuMSAxOTQgMTUgMjEzLjljMTkuNSA2NS43IDg5LjEgODcuOSAxNTMuMiA4MC43IDMuMy0uNSA2LjYtLjkgMTAtMS40LTMuMyAuNS02LjYgMS0xMCAxLjQtOTMuOSAxNC0xNzcuMyA0OC4yLTY3LjkgMTY5LjkgMTIwLjMgMTI0LjYgMTY0LjgtMjYuNyAxODcuNy0xMDMuNCAyMi45IDc2LjcgNDkuMiAyMjIuNSAxODUuNiAxMDMuNCAxMDIuNC0xMDMuNCAyOC4xLTE1Ni02NS44LTE2OS45LTMuMy0uNC02LjctLjgtMTAtMS4zIDMuNCAuNCA2LjcgLjkgMTAgMS4zIDY0LjEgNy4xIDEzMy42LTE1LjEgMTUzLjItODAuNyA1LjktMTkuOSAxNS0xMzguOSAxNS0xNTUuNXMtMy4zLTQ0LjctMjEuNi01Mi45Yy0xNS44LTcuMS00MC0xNC45LTEwMy4yIDI5LjgtNjYuMSA0Ni42LTEzNy4xIDE0MS4xLTE2My4yIDE5MS44eiJdfSxncGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NyaWJkIixpY29uOlszODQsNTEyLFtdLCJmMjhhIiwiTTQyLjYgMjUyLjdjLTE2LjEtMTktMjQuNy00NS45LTI0LjgtNzkuOSAwLTEwMC40IDc1LjItMTUzLjEgMTY3LjItMTUzLjEgOTguNi0xLjYgMTU2LjggNDkgMTg0LjMgNzAuNmwtNTAuNSA3Mi4xLTM3LjMtMjQuNiAyNi45LTM4LjZjLTM2LjUtMjQtNzkuNC0zNi41LTEyMy0zNS44LTUwLjctLjgtMTExLjcgMjcuMi0xMTEuNyA3Ni4yIDAgMTguNyAxMS4yIDIwLjcgMjguNiAxNS42IDIzLjMtNS4zIDQxLjkgLjYgNTUuOCAxNCAyNi40IDI0LjMgMjMuMiA2Ny42LS43IDkxLjktMjkuMiAyOS41LTg1LjIgMjcuMy0xMTQuOC04LjR6bTMxNy43IDUuOWMtMTUuNS0xOC44LTM4LjktMjkuNC02My4yLTI4LjYtMzguMS0yLTcxLjEgMjgtNzAuNSA2Ny4yLS43IDE2LjggNiAzMyAxOC40IDQ0LjMgMTQuMSAxMy45IDMzIDE5LjcgNTYuMyAxNC40IDE3LjQtNS4xIDI4LjYtMy4xIDI4LjYgMTUuNiAwIDQuMy0uNSA4LjUtMS40IDEyLjctMTYuNyA0MC45LTU5LjUgNjQuNC0xMjEuNCA2NC40LTUxLjkgLjItMTAyLjQtMTYuNC0xNDQuMS00Ny4zbDMzLjctMzkuNC0zNS42LTI3LjQtNjAuOCA3MS44IDE1LjQgMTMuOGM1Mi41IDQ2LjggMTIwLjQgNzIuNSAxOTAuNyA3Mi4yIDUxLjQgMCA5NC40LTEwLjUgMTMzLjYtNDQuMSA1Ny4xLTUxLjQgNTQuMi0xNDkuMiAyMC4zLTE4OS42eiJdfSxicGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1wZCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgNDQ5LjVjLTEzOS4yIDAtMjM1LjgtMTM4LTE5MC4yLTI2Ny45bDc4LjggMzUuMWMtMi4xIDEwLjUtMy4zIDIxLjUtMy4zIDMyLjkgMCA5OSA3My45IDEyNi45IDEyMC40IDEyNi45IDIyLjkgMCA1My41LTYuNyA3OS40LTI5LjVMMzA1IDMxMS4xYy01LjUgNi4zLTE3LjYgMTYuNy0zNi4zIDE2LjctMzcuOCAwLTUzLjctMzkuOS01My45LTcxLjkgMjMwLjQgMTAyLjYgMjE2LjUgOTYuNSAyMTcuOSA5Ni44LTM0LjMgNjIuNC0xMDAuNiAxMDQuOC0xNzYuNyAxMDQuOHptMTk0LjItMTUwbC0yMjQtMTAwYzE4LjgtMzQgNTQuOS0zMC43IDc0LjctMTFsNDAuNC00MS42Yy0yNy4xLTIzLjMtNTgtMjcuNS03OC4xLTI3LjUtNDcuNCAwLTgwLjkgMjAuNS0xMDAuNyA1MS42TDg3LjYgMTQ1LjZjMzYuMS01NC45IDk4LjEtOTEuMiAxNjguNS05MS4yIDExMS4xIDAgMjAxLjUgOTAuNCAyMDEuNSAyMDEuNSAwIDE4LTIuNCAzNS40LTYuOCA1Mi0uMy0uMS0uNC0uMi0uNi0uNHoiXX0sdnBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVhcmx5YmlyZHMiLGljb246WzUxMiw1MTIsW10sImYzOWEiLCJNMzI5LjMgNDcuNWMxLjItMTMgMjEuMy0xNCAzNi42LTguNyAuOSAuMyAyNi4yIDkuNyAxOSAxNS4yLTI3LjktNy40LTU2LjQgMTguMi01NS42LTYuNXptLTIwMSA2LjljMzAuNy04LjEgNjIgMjAgNjEuMS03LjEtMS4zLTE0LjItMjMuNC0xNS4zLTQwLjItOS42LTEgLjMtMjguNyAxMC41LTIwLjkgMTYuN3pNMzM1LjUgMTYwYTE2IDE2IDAgMSAwIDAgMzIgMTYgMTYgMCAxIDAgMC0zMnptLTE1OS43IDBhMTYgMTYgMCAxIDAgMCAzMiAxNiAxNiAwIDEgMCAwLTMyek00OTQuMyAzMjMuMmMtOS45IDI0LTQwLjcgMTEtNjMuOS0xLjItMTMuNSA2OS4xLTU4LjEgMTExLjQtMTI2LjMgMTI0LjIgLjMgLjktMi0uMSAyNCAxIDMzLjYgMS40IDYzLjgtMy4xIDk3LjQtOC0xOS44LTEzLjgtMTEuNC0zNy4xLTkuOC0zOC4xIDEuNC0uOSAxNC43IDEuNyAyMS42IDExLjUgOC42LTEyLjUgMjguNC0xNC44IDMwLjItMTMuNiAxLjYgMS4xIDYuNiAyMC45LTYuOSAzNC42IDQuNy0uOSA4LjItMS42IDkuOC0yLjEgMi42LS44IDE3LjcgMTEuMyAzLjEgMTMuMy0xNC4zIDIuMy0yMi42IDUuMS00Ny4xIDEwLjgtNDUuOSAxMC43LTg1LjkgMTEuOC0xMTcuNyAxMi44bDEgMTEuNmMzLjggMTguMS0yMy40IDI0LjMtMjcuNiA2LjIgLjggMTcuOS0yNy4xIDIxLjgtMjguNC0xbC0uNSA1LjNjLS43IDE4LjQtMjguNCAxNy45LTI4LjMtLjYtNy41IDEzLjUtMjguMSA2LjgtMjYuNC04LjVsMS4yLTEyLjRjLTM2LjcgLjktNTkuNyAzLjEtNjEuOCAzLjEtMjAuOSAwLTIwLjktMzEuNiAwLTMxLjYgMi40IDAgMjcuNyAxLjMgNjMuMiAyLjgtNjEuMS0xNS41LTEwMy43LTU1LTExNC45LTExOC4yLTI1IDEyLjgtNTcuNSAyNi44LTY4LjIgLjgtMTAuNS0yNS40IDIxLjUtNDIuNiA2Ni44LTczLjQgLjctNi42IDEuNi0xMy4zIDIuNy0xOS44LTE0LjQtMTkuNi0xMS42LTM2LjMtMTYuMS02MC40LTE2LjggMi40LTIzLjItOS4xLTIzLjYtMjMuMSAuMy03LjMgMi4xLTE0LjkgMi40LTE1LjQgMS4xLTEuOCAxMC4xLTIgMTIuNy0yLjYgNi0zMS43IDUwLjYtMzMuMiA5MC45LTM0LjUgMTkuNy0yMS44IDQ1LjItNDEuNSA4MC45LTQ4LjMtMTUuMy0xOS40LTMuNC0zOS45LTIuNC00MC40IDEuNy0uOCAyMS4yIDQuMyAyNi4zIDIzLjIgNS4yLTguOCAxOC4zLTExLjQgMTkuNi0xMC43IDEuMSAuNiA2LjQgMTUtNC45IDI1LjkgNDAuMyAzLjUgNzIuMiAyNC43IDk2IDUwLjcgMzYuMSAxLjUgNzEuOCA1LjkgNzcuMSAzNCAyLjcgLjYgMTEuNiAuOCAxMi43IDIuNiAuMyAuNSAyLjEgOC4xIDIuNCAxNS40LS41IDEzLjktNi44IDI1LjQtMjMuNiAyMy4xLTMuMiAxNy4zLTIuNyAzMi45LTguNyA0Ny43IDIuNCAxMS43IDQgMjMuOCA0LjggMzYuNCAzNyAyNS40IDcwLjMgNDIuNSA2MC4zIDY2Ljl6TTIyMy41IDE1OS45Yy45LTQ0LTM3LjktNDIuMi03OC42LTQwLjMtMjEuNyAxLTM4LjkgMS45LTQ1LjUgMTMuOS0xMS40IDIwLjkgNS45IDkyLjkgMjMuMiAxMDEuMiA5LjggNC43IDczLjQgNy45IDg2LjMtNy4xIDguMi05LjQgMTUtNDkuNCAxNC42LTY3Ljd6bTUyIDU4LjNjLTQuMy0xMi40LTYtMzAuMS0xNS4zLTMyLjctMi0uNS05LS41LTExIDAtMTAgMi44LTEwLjggMjIuMS0xNyAzNy4yIDE1LjQgMCAxOS4zIDkuNyAyMy43IDkuNyA0LjMgMCA2LjMtMTEuMyAxOS42LTE0LjJ6bTEzNS43LTg0LjdjLTYuNi0xMi4xLTI0LjgtMTIuOS00Ni41LTEzLjktNDAuMi0xLjktNzguMi0zLjgtNzcuMyA0MC4zLS41IDE4LjMgNSA1OC4zIDEzLjIgNjcuOCAxMyAxNC45IDc2LjYgMTEuOCA4Ni4zIDcuMSAxNS44LTcuNiAzNi41LTc4LjkgMjQuMy0xMDEuM3oiXX0seXBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN5bWZvbnljYXN0cyIsaWNvbjpbNTc2LDUxMixbXSwiZThhYiIsIk0yOTMuOCAzNDIuNWMzLjQtMS41IDYuOC0xLjUgMTAuMiAwbDU0LjIgMjIuNmMyLjYgLjkgNC43IDIuNiA2LjIgNC44czIuMyA0LjggMi4zIDcuNmMwIDE5LjQtMy42IDM3LjItMTAuNyA1My40LTYuMiAxMy42LTE0LjUgMjUuNC0yNC44IDM1LjYtOC43IDguNS0xNy43IDE0LjYtMjcuMSAxOC40LTMuNCAxLjUtNi44IDEuNS0xMC4yIDAtMTAuNy00LjMtMjAuNi0xMS4zLTI5LjctMjAuOS0xMC0xMC40LTE3LjgtMjIuNS0yMy41LTM2LjQtNi40LTE1LjYtOS42LTMyLjMtOS42LTUwIDAtMi44IC43LTUuNCAyLjItNy42IDEuNS0yLjMgMy42LTMuOSA2LjItNC44bDU0LjItMjIuNnpNNDc5LjcgNDgzLjhhNzAuMSA3MC4xIDAgMSAxIDAtMTQwLjIgNzAuMSA3MC4xIDAgMSAxIDAgMTQwLjJ6TTI0NC42IDM3Ny42YzAgMTUuMyAyLjYgMjkuNyA3LjkgNDMuMiA0LjkgMTIuNCAxMS42IDIzLjMgMjAuMSAzMi41IDguMSA4LjkgMTYuOSAxNS4zIDI2LjMgMTkuMiA5LjItMy44IDE3LjgtMTAgMjUuNy0xOC43IDguNy05LjIgMTUuNC0xOS45IDIwLjMtMzIuMiA1LjUtMTMuNyA4LjItMjguNCA4LjItNDQuMWwtNTQuMi0yMi42LTU0LjIgMjIuNnptMjM1LjEtMjAuM2E1Ni41IDU2LjUgMCAxIDAgMCAxMTMgNTYuNSA1Ni41IDAgMSAwIDAtMTEzem0tMzUyLjggMi4zYzQuMSAwIDcuNiAxLjMgMTAuNCAzLjkgMi44IDIuNiA0LjIgNS45IDQuMiA5LjZsMCAxNi40IDMxLjEtMTkuMmMxLjUtMS4xIDMuMi0xLjcgNS4xLTEuNyAyLjQgMCA0LjYgLjggNi4zIDIuNXMyLjcgMy44IDIuNyA2LjJsMCA3Mi42YzAgMi42LS45IDQuOC0yLjcgNi41cy0zLjkgMi41LTYuMyAyLjVjLTEuOSAwLTMuNi0uNi01LjEtMS43bC0zMS4xLTE5LjIgMCAxNi40YzAgMy44LTEuNCA3LTQuMiA5LjZzLTYuMyA0LTEwLjQgNGwtODguMiAwYy00LjEgMC03LjYtMS4zLTEwLjUtNHMtNC4yLTUuOC00LjItOS42bDAtODEuM2MwLTMuOCAxLjQtNyA0LjItOS42czYuMy0zLjkgMTAuNS0zLjlsODguMiAwem0xNzIgOTcuOGMtMTEuMy03LTIwLjQtMTYuNC0yNy40LTI4LjMtNy41LTEyLjQtMTEuOS0yNi42LTEzLTQyLjRsNDAuNC0xNyAwIDg3LjZ6TTM3LjUgMzczLjRsMCA4MC44Yy4yIC4yIC42IC4zIDEuMiAuM2w4OC4yIDBjLjQgMCAuNy0uMSAxLjEtLjNsMC04MC44Yy0uMi0uMi0uNi0uMy0xLjItLjNsLTg4LjEgMGMtLjQgMC0uOCAuMS0xLjIgLjN6bTQxOC40IDUuMWMyLjMtMS4zIDQuNS0xLjMgNi44IDBsNDkuOCAzMC4yYzIuMyAxLjMgMy40IDMuMyAzLjQgNS45cy0xLjEgNC42LTMuNCA1LjlsLTQ5LjggMjguNmMtMi4zIDEuMy00LjUgMS4zLTYuOCAwcy0zLjQtMy4zLTMuNC01LjlsMC01OC44YzAtMi42IDEuMS00LjYgMy40LTUuOXpNMTQxLjUgNDA1LjVsMCAxNi40IDMxLjcgMTkuOCAwLTU2LTMxLjcgMTkuOHpNNDUxLjEgNS4yYzM1LjgtMS4yIDYyLjkgMTUuMSA2My44IDQwLjggLjQgMTAuOS01LjkgMzIuMi0yNy44IDMzLTE2LjMgLjYtMjcuNi05LjItMjguMS0yNC4xLS4yLTUuNCAxLjItMTAuMiA0LjktMTUuOCAzLjYtNy4xIDQuNC03LjkgNC4zLTExLS4zLTkuNC0xNC41LTkuNy0xOC4zLTkuNS01MyAxLjgtNjYuOSA3My4zLTc4LjIgMTMxLjVsLTUuNiAzMC43YzMwLjUgNC41IDUyLjItMSA2NC4yLTguOCAxNy0xMS00LjgtMjIuNC0yLTM1IDIuOC0xMi44IDE0LjQtMTkgMjMuNy0xOS4yIDEyLjktLjMgMjIuMiAxMy4xIDIxLjkgMjYuNy0uNSAyMi42LTMwLjQgNTMuNi05MC4yIDUyLjMtNy4zLS4yLTE0LS43LTIwLjItMS40bC0xMS4zIDYyLjNjLTMgMTQtNi4zIDI5LjUtMTAuNyA0NS44bDIwNCAwIC45IC4xYy4zIC4xIC42IC4xIC44IC4yIDIuMiAuNiA0IDIuNSA0LjUgNC44IC42IDIuOC0xIDYtMy43IDcuMi0uNSAuMi0xLjEgLjQtMS43IC41LS4zIDAtLjYgMC0uOSAuMWwtNTE1LjMgMGMtLjctLjEtLjkgMC0xLjctLjItMi41LS43LTQuNC0zLjEtNC42LTUuNy0uMi0yLjMgMS00LjYgMy01LjggLjctLjUgMS42LS44IDIuNC0uOSAuMyAwIC42IDAgLjgtLjFsNDguNCAwYy0xNy4yLTE2LjgtMjAtMzcuMi0xNi01MC41IDUuNC0xNy42IDE5LjQtMjAuOSAzMy0xNi43IDE0LjYgNC41IDIwLjMgMjIuMyAxNi4yIDM2LS41IDEuNS0xLjIgMy45LTIuOCA3LjItMS43IDMuOC00LjggNy4xLTYuMiAxMS41LTEuNSA0LjkgLjcgOS4xIDQuNSAxMi42bDU4LjkgMGM0LjItNCA3LjQtOSA5LjEtMTQuNiA1LjMtMTctNS41LTI4LjktMTAtMzMuNWwtMjEuNy0yMy4yYy05LjktMTEuMS0zMS43LTQxLjktMjEuMS03Ni41IDQuMS0xMy40IDEyLjgtMjcuNSAyNS4zLTM2LjkgMjYuNS0xOS43IDU1LjMtMjMgODIuNy0xNS4xIDM1LjUgMTAuMiA1Mi41IDMzLjcgNzQuNiA1MS44IDEyLjQtMzYuMyAyOS41LTcxLjkgNTUuMy0xMDEuOSAyMy4zLTI3LjMgNTQuNi00Ny4xIDkwLjQtNDguM3pNMjI5LjYgMTIxLjNjLTIyLjItNi0zNS43LS45LTQ1LjIgMTEuMi0xMS4zIDE0LjMtNy41IDMyLjggMy4zIDQzLjdsMTggMTkuOWMyMiAyNS41IDM0LjEgNDUuMyAyOS42IDcyLTIuMiAxMy4xLTguNSAyNS4yLTE3LjkgMzUuM2w1NC4yIDBjMS01LjEgMi0xMC40IDMuMS0xNS44bDMuNi0yMS45YzUuOS0yOS40IDEyLjQtNjIuMiAyMi4zLTk0LjgtMjQuMS0xOC4xLTM4LjUtNDAuNy03MC45LTQ5LjV6Il19LGdFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1vZG5va2xhc3NuaWtpIixpY29uOls0NDgsNTEyLFsib2Rub2tsYXNzbmlraS1zcXVhcmUiXSwiZjI2NCIsIk0yMjQgMTM3LjFjLTUuNC0uMy0xMC44IC42LTE1LjkgMi40cy05LjcgNC44LTEzLjYgOC41LTcgOC4yLTkuMiAxMy4yLTMuMiAxMC4zLTMuMiAxNS43IDEuMSAxMC44IDMuMiAxNS43IDUuMyA5LjUgOS4yIDEzLjIgOC42IDYuNiAxMy42IDguNSAxMC41IDIuNyAxNS45IDIuNGM1LjQgLjMgMTAuOC0uNiAxNS45LTIuNHM5LjctNC44IDEzLjYtOC41IDctOC4yIDkuMi0xMy4yIDMuMi0xMC4zIDMuMi0xNS43LTEuMS0xMC44LTMuMi0xNS43LTUuMy05LjUtOS4yLTEzLjItOC42LTYuNi0xMy42LTguNS0xMC41LTIuNy0xNS45LTIuNHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCAyNThhODEgODEgMCAxIDEgMC0xNjIuMSA4MSA4MSAwIDEgMSAwIDE2Mi4xem01OS4zIDYuMmMxNi44LTEzLjIgMjkuNS01LjUgMzQuMSAzLjYgNy44IDE2LTEuMSAyMy43LTIxLjUgMzctMTcuMSAxMC45LTQwLjcgMTUuMi01Ni4yIDE2LjhsMTMgMTIuOSA0Ny43IDQ3LjdjMTcuNCAxNy45LTExIDQ1LjgtMjguNiAyOC42LTEyLTEyLjItMjkuNS0yOS43LTQ3LjctNDcuOWwtNDcuNyA0Ny45Yy0xNy43IDE3LjItNDYtMTEtMjguNC0yOC42IDMuNy0zLjcgNy45LTcuOSAxMi41LTEyLjUgMTAuNC0xMC40IDIyLjYtMjIuNyAzNS4yLTM1LjJsMTIuOS0xMi45Yy0xNS40LTEuNi0zOS4zLTUuNy01Ni42LTE2LjgtMjAuMy0xMy4zLTI5LjMtMjAuOS0yMS40LTM3IDQuNi05LjEgMTcuMy0xNi44IDM0LjEtMy42IDAgMCAyMi43IDE4IDU5LjMgMThzNTkuMy0xOCA1OS4zLTE4eiJdfSx4cGU9Z0Usd3BlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hcmtkb3duIixpY29uOls2NDAsNTEyLFtdLCJmNjBmIiwiTTU5My44IDU5LjFsLTU0Ny42IDBDMjAuNyA1OS4xIDAgNzkuOCAwIDEwNS4yTDAgNDA2LjdjMCAyNS41IDIwLjcgNDYuMiA0Ni4yIDQ2LjJsNTQ3LjcgMGMyNS41IDAgNDYuMi0yMC43IDQ2LjEtNDYuMWwwLTMwMS42YzAtMjUuNC0yMC43LTQ2LjEtNDYuMi00Ni4xek0zMzguNSAzNjAuNmwtNjEuNSAwIDAtMTIwLTYxLjUgNzYuOS02MS41LTc2LjkgMCAxMjAtNjEuNyAwIDAtMjA5LjIgNjEuNSAwIDYxLjUgNzYuOSA2MS41LTc2LjkgNjEuNSAwIDAgMjA5LjIgLjIgMHptMTM1LjMgMy4xbC05Mi4zLTEwNy43IDYxLjUgMCAwLTEwNC42IDYxLjUgMCAwIDEwNC42IDYxLjUgMC05Mi4yIDEwNy43eiJdfSxNcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHlwbzMiLGljb246WzQ0OCw1MTIsW10sImY0MmIiLCJNMTc4LjcgNzguNGMwLTI0LjcgNS40LTMyLjQgMTMuOS0zOS40LTY5LjUgOC41LTE0OS4zIDM0LTE3Ni4zIDY2LjQtNS40IDcuNy05LjMgMjAuOC05LjMgMzcuMSAwIDEwMy41IDEwNi44IDMzNy41IDE4NC4xIDMzNy41IDM2LjMgMCA5Ny4zLTU5LjUgMTQ2LjctMTM5LTcgMi4zLTExLjYgMi4zLTE4LjUgMi4zLTU3LjIgMC0xNDAuNi0xOTguNS0xNDAuNi0yNjQuOXpNMzAxLjUgMzJjLTMwLjEgMC00MS43IDUuNC00MS43IDM2LjMgMCA2Ni40IDUzLjggMTk4LjUgMTAxLjcgMTk4LjUgMjYuMyAwIDc4LjgtOTkuNyA3OC44LTE4Mi4zIDAtNDAuOS02Ny01Mi41LTEzOC44LTUyLjV6Il19LHpwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqb29tbGEiLGljb246WzQ0OCw1MTIsW10sImYxYWEiLCJNLjYgOTIuMWMwLTMzLjMgMjYuOC02MC4xIDU5LjgtNjAuMSAzMCAwIDU0LjUgMjEuOSA1OS4yIDUwLjIgMzIuNi03LjYgNjcuMSAuNiA5Ni41IDMwbC00NC4zIDQ0LjNjLTIwLjUtMjAuNS00Mi42LTE2LjMtNTUuNC0zLjUtMTQuMyAxNC4zLTE0LjMgMzcuOSAwIDUyLjJsOTkuNSA5OS41LTQ0IDQ0LjNjLTg3LjctODcuMi00OS43LTQ5LjctOTkuOC05OS43LTI2LjgtMjYuNS0zNS02NC44LTI0LjgtOTguOS0yNi45LTUuOC00Ni43LTI5LjctNDYuNy01OC4zek0xMzAuMSAyMDguNWw0NC4zIDQ0LjNjMTAtMTAgODkuNy04OS43IDk5LjctOTkuOCAxNC4zLTE0LjMgMzcuNi0xNC4zIDUxLjkgMCAxMi44IDEyLjggMTcgMzUtMy41IDU1LjRsNDQgNDQuM2MzMS4yLTMxLjIgMzguNS02Ny42IDI4LjktMTAxLjIgMjkuMi00LjEgNTEuOS0yOS4yIDUxLjktNTkuNSAwLTMzLjItMjYuOC02MC4xLTU5LjgtNjAuMS0zMC4zIDAtNTUuNCAyMi41LTU5LjUgNTEuNi0zMy44LTkuOS03MS43LTEuNS05OC4zIDI1LjEtMTguMyAxOS4xLTcxLjEgNzEuNS05OS42IDk5Ljl6TTM5Ni40IDM2MC43YzguMi0zMi43LS45LTY4LjUtMjYuMy05My45LTExLjgtMTIuMiA1IDQuNy05OS41LTk5LjdsLTQ0LjMgNDQuMyA5OS43IDk5LjdjMTQuMyAxNC4zIDE0LjMgMzcuNiAwIDUxLjktMTIuOCAxMi44LTM1IDE3LTU1LjQtMy41bC00NCA0NC4zYzI3LjYgMzAuMiA2OCAzOC44IDEwMi43IDI4IDUuNSAyNy40IDI5LjcgNDguMSA1OC45IDQ4LjEgMzMgMCA1OS44LTI2LjggNTkuOC02MC4xIDAtMzAuMi0yMi41LTU1LTUxLjYtNTkuMXptLTg0LjMtNTMuMWwtNDQtNDQuM2MtODcgODYuNC01MC40IDUwLjQtOTkuNyA5OS44LTE0LjMgMTQuMy0zNy42IDE0LjMtNTEuOSAwLTEzLjEtMTMuNC0xNi45LTM1LjMgMy4yLTU1LjRsLTQ0LTQ0LjNjLTMwLjIgMzAuMi0zOCA2NS4yLTI5LjUgOTguMy0yNi43IDYtNDYuMiAyOS45LTQ2LjIgNTguMiAwIDMzLjMgMjYuOCA2MC4xIDU5LjggNjAuMSAyOC42IDAgNTIuNS0xOS44IDU4LjYtNDYuNyAzMi43IDguMiA2OC41LS42IDk0LjItMjYgMzIuMS0zMiAxMi4yLTEyLjQgOTkuNS05OS43eiJdfSxrcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2VpeGluIixpY29uOls1NzYsNTEyLFtdLCJmMWQ3IiwiTTM4NS4yIDE2Ny42YzYuNCAwIDEyLjYgLjMgMTguOCAxLjEtMTYuNi03OC40LTEwMC43LTEzNi43LTE5Ni4zLTEzNi43LTEwNy4yIDAtMTk0LjcgNzIuOC0xOTQuNyAxNjUuNCAwIDUzLjQgMjkuMyA5Ny41IDc3LjkgMTMxLjZsLTE5LjMgNTguNiA2OC0zNC4xYzI0LjQgNC44IDQzLjggOS43IDY4LjIgOS43IDYuMiAwIDEyLjEtLjMgMTguMy0uOC00LTEyLjktNi4yLTI2LjYtNi4yLTQwLjgtLjEtODQuOSA3Mi45LTE1NCAxNjUuMy0xNTR6TTI4MC43IDExNC43YzE0LjUgMCAyNC4yIDkuNyAyNC4yIDI0LjQgMCAxNC41LTkuNyAyNC4yLTI0LjIgMjQuMi0xNC44IDAtMjkuMy05LjctMjkuMy0yNC4yIC4xLTE0LjcgMTQuNi0yNC40IDI5LjMtMjQuNHpNMTQ0LjMgMTYzLjNjLTE0LjUgMC0yOS4zLTkuNy0yOS4zLTI0LjIgMC0xNC44IDE0LjgtMjQuNCAyOS4zLTI0LjQgMTQuOCAwIDI0LjQgOS43IDI0LjQgMjQuNCAwIDE0LjYtOS42IDI0LjItMjQuNCAyNC4yek01NjMgMzE5LjRjMC03Ny45LTc3LjktMTQxLjMtMTY1LjQtMTQxLjMtOTIuNyAwLTE2NS40IDYzLjQtMTY1LjQgMTQxLjNTMzA1IDQ2MC43IDM5Ny42IDQ2MC43YzE5LjMgMCAzOC45LTUuMSA1OC42LTkuOWw1My40IDI5LjMtMTQuOC00OC42QzUzNCA0MDIuMSA1NjMgMzYzLjIgNTYzIDMxOS40ek0zNDMuOSAyOTQuOWMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC44IDAgMjQuNCA5LjcgMjQuNCAxOS4zIDAgMTAtOS43IDE5LjYtMjQuNCAxOS42em0xMDcuMSAwYy05LjcgMC0xOS4zLTkuNy0xOS4zLTE5LjYgMC05LjcgOS43LTE5LjMgMTkuMy0xOS4zIDE0LjUgMCAyNC40IDkuNyAyNC40IDE5LjMgLjEgMTAtOS45IDE5LjYtMjQuNCAxOS42eiJdfSxTcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3J1bnQiLGljb246WzM4NCw1MTIsW10sImYzYWQiLCJNNjEuNiAxODkuM2MtMS4xIDEwIDUuMiAxOS4xIDUuMiAxOS4xIC43LTcuNSAyLjItMTIuOCA0LTE2LjYgLjQgMTAuMyAzLjIgMjMuNSAxMi44IDM0LjEgNi45IDcuNiAzNS42IDIzLjMgNTQuOSA2LjEgMSAyLjQgMi4xIDUuMyAzIDguNSAyLjkgMTAuMy0yLjcgMjUuMy0yLjcgMjUuM3MxNS4xLTE3LjEgMTMuOS0zMi41YzEwLjgtLjUgMjEuNC04LjQgMjEuMS0xOS41IDAgMC0xOC45IDEwLjQtMzUuNS04LjgtOS43LTExLjItNDAuOS00Mi04My4xLTMxLjggNC4zIDEgOC45IDIuNCAxMy41IDQuMWwtLjEgMGMtNC4yIDItNi41IDcuMS03IDEyem0yOC4zLTEuOGMxOS41IDExIDM3LjQgMjUuNyA0NC45IDM3LTUuNyAzLjMtMjEuNyAxMC40LTM4LTEuNy0xMC4zLTcuNi05LjgtMjYuMi02LjktMzUuM3pNMjMyIDIzMy4zYy0xLjIgMTUuNSAxMy45IDMyLjUgMTMuOSAzMi41cy01LjYtMTUtMi43LTI1LjNjLjktMy4yIDItNiAzLTguNSAxOS4zIDE3LjMgNDggMS41IDU0LjgtNi4xIDkuNi0xMC42IDEyLjMtMjMuOCAxMi44LTM0LjEgMS44IDMuOCAzLjQgOS4xIDQgMTYuNiAwIDAgNi40LTkuMSA1LjItMTkuMS0uNi01LTIuOS0xMC03LTExLjhsLS4xIDBjNC42LTEuOCA5LjItMy4yIDEzLjUtNC4xLTQyLjMtMTAuMi03My40IDIwLjYtODMuMSAzMS44LTE2LjcgMTkuMi0zNS41IDguOC0zNS41IDguOC0uMiAxMC45IDEwLjQgMTguOSAyMS4yIDE5LjN6bTYyLjctNDUuOGMzIDkuMSAzLjQgMjcuNy03IDM1LjQtMTYuMyAxMi4xLTMyLjIgNS0zNy45IDEuNiA3LjUtMTEuNCAyNS40LTI2IDQ0LjktMzd6bS0xMzQuNCAyMzFsLTI5LjQgMGMtNS41IDAtOC4yIDEuNi05LjUgMi45LTEuOSAyLTIuMiA0LjctLjkgOC4xIDMuNSA5LjEgMTEuNCAxNi41IDEzLjcgMTguNiAzLjEgMi43IDcuNSA0LjMgMTEuOCA0LjMgNC40IDAgOC4zLTEuNyAxMS00LjYgNy41LTguMiAxMS45LTE3LjEgMTMtMTkuOCAuNi0xLjUgMS4zLTQuNS0uOS02LjgtMS44LTEuOC00LjctMi43LTguOC0yLjd6TTM0OS41IDMxNy4zYy0yLjQgMTcuOS0xMyAzMy44LTI0LjYgNDMuNy0zLjEtMjIuNy0zLjctNTUuNS0zLjctNjIuNCAwLTE0LjcgOS41LTI0LjUgMTIuMi0yNi4xIDIuNS0xLjUgNS40LTMgOC4zLTQuNiAxOC05LjYgNDAuNC0yMS42IDQwLjQtNDMuNyAwLTE2LjItOS4zLTIzLjItMTUuNC0yNy44LS44LS42LTEuNS0xLjEtMi4yLTEuNy0yLjEtMS43LTMuNy0zLTQuMy00LjQtNC40LTkuOC0zLjYtMzQuMi0xLjctMzcuNiAuNi0uNiAxNi43LTIwLjkgMTEuOC0zOS4yLTItNy40LTYuOS0xMy4zLTE0LjEtMTctNS4zLTIuNy0xMS45LTQuMi0xOS41LTQuNS0uMS0yLS41LTMuOS0uOS01LjktLjYtMi42LTEuMS01LjMtLjktOC4xIC40LTQuNyAuOC05IDIuMi0xMS4zIDguNC0xMy4zIDI4LjgtMTcuNiAyOS0xNy42bDEyLjMtMi40LTguMS05LjVjLS4xLS4yLTE3LjMtMTcuNS00Ni4zLTE3LjUtNy45IDAtMTYgMS4zLTI0LjEgMy45LTI0LjIgNy44LTQyLjkgMzAuNS00OS40IDM5LjMtMy4xLTEtNi4zLTEuOS05LjYtMi43LTQuMi0xNS44IDktMzguNSA5LTM4LjVzLTEzLjYtMy0zMy43IDE1LjJjLTIuNi02LjUtOC4xLTIwLjUtMS44LTM3LjItMjkuNSAxMC40LTM2LjkgMjYuMy0zOS4xIDQwLjctNy42LTUuNC02LjctMjMuMS03LjItMjcuNi03LjUgLjktMjkuMiAyMS45LTI4LjIgNDguMy0yIC41LTMuOSAxLjEtNS45IDEuNy02LjUtOC44LTI1LjEtMzEuNS00OS40LTM5LjMtNy45LTIuMi0xNi0zLjUtMjMuOS0zLjUtMjkgMC00Ni4xIDE3LjMtNDYuMyAxNy41bC04LjEgOS40IDEyLjMgMi40Yy4yIDAgMjAuNiA0LjMgMjkgMTcuNiAxLjQgMi4yIDEuOCA2LjYgMi4yIDExLjMgLjIgMi44LS40IDUuNS0uOSA4LjEtLjQgMS45LS44IDMuOS0uOSA1LjktNy43IC4zLTE0LjIgMS44LTE5LjUgNC41LTcuMiAzLjctMTIuMSA5LjYtMTQuMSAxNy01IDE4LjIgMTEuMiAzOC41IDExLjggMzkuMiAxLjkgMy40IDIuNyAyNy44LTEuNyAzNy42LS42IDEuNC0yLjIgMi43LTQuMyA0LjQtLjcgLjUtMS40IDEuMS0yLjIgMS43LTYuMSA0LjYtMTUuNCAxMS43LTE1LjQgMjcuOCAwIDIyLjEgMjIuNCAzNC4xIDQwLjQgNDMuNyAzIDEuNiA1LjggMy4xIDguMyA0LjYgMi43IDEuNiAxMi4yIDExLjQgMTIuMiAyNi4xIDAgNi45LS42IDM5LjctMy43IDYyLjQtMTEuNi05LjktMjIuMi0yNS45LTI0LjYtNDMuOCAwIDAtMjkuMiAyMi42LTIwLjYgNzAuOCA1LjIgMjkuNSAyMy4yIDQ2LjEgNDcgNTQuNyA4LjggMTkuMSAyOS40IDQ1LjcgNjcuMyA0OS42IDE0LjQgMTEuOCAzNC40IDE5LjUgNjMuNiAxOS41bC4yIDBjMjkuMSAwIDQ5LjEtNy43IDYzLjYtMTkuNSAzNy45LTMuOSA1OC41LTMwLjUgNjcuMy00OS42IDIzLjgtOC43IDQxLjctMjUuMiA0Ny01NC43IDguMi00OC40LTIxLjEtNzAuOS0yMS4xLTcwLjl6TTMwNiAzNy43YzUuNi0xLjggMTEuNi0yLjcgMTcuNy0yLjcgMTEgMCAxOS45IDMgMjQuNyA1LTMuMSAxLjQtNi40IDMuMi05LjcgNS4zLTIuNC0uNC01LjYtLjgtOS4yLS44LTEwLjUgMC0yMC41IDMuMS0yOC43IDguOS0xMi4zIDguNy0xOCAxNi45LTIwLjcgMjIuNC0yLjItMS4zLTQuNS0yLjUtNy4xLTMuNy0xLjYtLjgtMy4xLTEuNS00LjctMi4yIDYuMS05LjEgMTkuOS0yNi41IDM3LjctMzIuMnptMjEgMTguMmMtLjggMS0xLjYgMi4xLTIuMyAzLjItMy4zIDUuMi0zLjkgMTEuNi00LjQgMTcuOC0uNSA2LjQtMS4xIDEyLjUtNC40IDE3LTQuMiAuOC04LjEgMS43LTExLjUgMi43LTIuMy0zLjEtNS42LTctMTAuNS0xMS4yIDEuNC00LjggNS41LTE2LjEgMTMuNS0yMi41IDUuNi00LjMgMTIuMi02LjcgMTkuNi03ek00NS45IDQ1LjNjLTMuMy0yLjItNi42LTQtOS43LTUuMyA0LjgtMiAxMy43LTUgMjQuNy01IDYuMSAwIDEyIC45IDE3LjcgMi43IDE3LjggNS44IDMxLjYgMjMuMiAzNy43IDMyLjEtMS42IC43LTMuMiAxLjQtNC44IDIuMi0yLjUgMS4yLTQuOSAyLjUtNy4xIDMuNy0yLjYtNS40LTguMy0xMy43LTIwLjctMjIuNC04LjMtNS44LTE4LjItOC45LTI4LjgtOC45LTMuNCAuMS02LjYgLjUtOSAuOXpNOTAuNiA4NS40Yy00LjkgNC4yLTguMyA4LTEwLjUgMTEuMi0zLjQtLjktNy4zLTEuOS0xMS41LTIuNy0zLjMtNC40LTMuOC0xMC41LTQuMy0xNi45LS41LTYuMi0xLjEtMTIuNi00LjQtMTcuOC0uNy0xLjEtMS41LTIuMi0yLjMtMy4yIDcuNCAuMyAxNCAyLjYgMTkuNSA3IDggNi4zIDEyLjEgMTcuNiAxMy41IDIyLjR6TTU4LjQgMjU5LjljLTIuNy0xLjYtNS42LTMuMS04LjQtNC42LTE0LjktOC0zMC4yLTE2LjMtMzAuMi0zMC41IDAtMTEuMSA0LjMtMTQuNiA4LjktMTguMmwuNS0uNGMuNy0uNiAxLjQtMS4yIDIuMi0xLjgtLjkgNy4yLTEuOSAxMy4zLTIuNyAxNC45IDAgMCAxMi4xLTE1IDE1LjctNDQuMyAxLjQtMTEuNS0xLjEtMzQuMy01LjEtNDMgLjIgNC45IDAgOS44LS4zIDE0LjQtLjQtLjgtLjgtMS42LTEuMy0yLjItMy4yLTQtMTEuOC0xNy41LTkuNC0yNi42IC45LTMuNSAzLjEtNiA2LjctNy44IDMuOC0xLjkgOC44LTIuOSAxNS4xLTIuOSAxMi4zIDAgMjUuOSAzLjcgMzIuOSA2IDI1LjEgOCA1NS40IDMwLjkgNjQuMSAzNy43IC4yIC4yIC40IC4zIC40IC4zbDUuNiAzLjktMy41LTUuOGMtLjItLjMtMTkuMS0zMS40LTUzLjItNDYuNSAyLTIuOSA3LjQtOC4xIDIxLjYtMTUuMSAyMS40LTEwLjUgNDYuNS0xNS44IDc0LjMtMTUuOCAyNy45IDAgNTIuOSA1LjMgNzQuMyAxNS44IDE0LjIgNi45IDE5LjYgMTIuMiAyMS42IDE1LjEtMzQgMTUuMS01Mi45IDQ2LjItNTMuMSA0Ni41bC0zLjUgNS44IDUuNi0zLjlzLjItLjEgLjQtLjNjOC43LTYuOCAzOS0yOS44IDY0LjEtMzcuNyA3LTIuMiAyMC42LTYgMzIuOS02IDYuMyAwIDExLjMgMSAxNS4xIDIuOSAzLjUgMS44IDUuNyA0LjQgNi43IDcuOCAyLjUgOS4xLTYuMSAyMi42LTkuNCAyNi42LS41IC42LS45IDEuMy0xLjMgMi4yLS4zLTQuNi0uNS05LjUtLjMtMTQuNC00IDguOC02LjUgMzEuNS01LjEgNDMgMy42IDI5LjMgMTUuNyA0NC4zIDE1LjcgNDQuMy0uOC0xLjYtMS44LTcuNy0yLjctMTQuOSAuNyAuNiAxLjUgMS4yIDIuMiAxLjhsLjUgLjRjNC42IDMuNyA4LjkgNy4xIDguOSAxOC4yIDAgMTQuMi0xNS40IDIyLjUtMzAuMiAzMC41LTIuOSAxLjUtNS43IDMuMS04LjQgNC42LTguNyA1LTE4IDE2LjctMTkuMSAzNC4yLS45IDE0LjYgLjkgNDkuOSAzLjQgNzUuOS0xMi40IDQuOC0yNi43IDYuNC0zOS43IDYuOC0yLTQuMS0zLjktOC41LTUuNS0xMy4xLS43LTItMTkuNi01MS4xLTI2LjQtNjIuMiA1LjUgMzkgMTcuNSA3My43IDIzLjUgODkuNi0zLjUtLjUtNy4zLS43LTExLjctLjdsLTExNyAwYy00LjQgMC04LjMgLjMtMTEuNyAuNyA2LTE1LjkgMTguMS01MC42IDIzLjUtODkuNi02LjggMTEuMi0yNS43IDYwLjMtMjYuNCA2Mi4yLTEuNiA0LjYtMy41IDktNS41IDEzLjEtMTMtLjQtMjcuMi0yLTM5LjctNi44IDIuNS0yNiA0LjMtNjEuMiAzLjQtNzUuOS0uOS0xNy40LTEwLjMtMjkuMi0xOS0zNC4yek0zNS4xIDQwNC42Yy0xMi4xLTIwLTguNy01NC4xLTMuNy01OS4xIDEwLjkgMzQuNCA0Ny4yIDQ0LjMgNzQuNCA0NS40LTIuNyA0LjItNS4yIDcuNi03IDEwbC0xLjQgMS40Yy03LjIgNy44LTguNiAxOC41LTQuMSAzMS44LTIyLjctLjEtNDYuMy05LjgtNTguMi0yOS41em00NS43IDQzLjVjNiAxLjEgMTIuMiAxLjkgMTguNiAyLjQgMy41IDggNy40IDE1LjkgMTIuMyAyMy4xLTE0LjQtNS45LTI0LjQtMTYtMzAuOS0yNS41em0xMTEuNSA1MC4xYy02MC42LS4xLTc4LjMtNDUuOC04NC45LTY0LjctMy43LTEwLjUtMy40LTE4LjIgLjktMjMuMSAyLjktMy4zIDkuNS03LjIgMjQuNi03LjJsMTE4LjggMGMxNS4xIDAgMjEuOCAzLjkgMjQuNiA3LjIgNC4yIDQuOCA0LjUgMTIuNiAuOSAyMy4xLTYuNiAxOC44LTI0LjMgNjQuNi04NC45IDY0Ljd6bTgwLjYtMjQuNmM0LjktNy4yIDguOC0xNS4xIDEyLjMtMjMuMSA2LjQtLjUgMTIuNi0xLjMgMTguNi0yLjQtNi41IDkuNS0xNi41IDE5LjYtMzAuOSAyNS41em03Ni42LTY5Yy0xMiAxOS43LTM1LjYgMjkuMy01OC4xIDI5LjcgNC41LTEzLjMgMy4xLTI0LjEtNC4xLTMxLjgtLjQtLjUtLjktMS0xLjQtMS41LTEuOC0yLjQtNC4zLTUuOC03LTEwIDI3LjItMS4yIDYzLjUtMTEgNzQuNC00NS40IDUgNSA4LjQgMzkuMS0zLjggNTl6TTE5Mi4yIDE4Ny43bC4yIDBjMTIuNy0uMSAyNy4yLTE3LjggMjcuMi0xNy44LTkuOSA2LTE4LjggOC4xLTI3LjMgOC4zLTguNS0uMi0xNy40LTIuMy0yNy4zLTguMyAwIDAgMTQuNSAxNy42IDI3LjIgMTcuOHptNjEuNyAyMzAuN2wtMjkuNCAwYy00LjIgMC03LjIgLjktOC45IDIuNy0yLjIgMi4zLTEuNSA1LjItLjkgNi43IDEgMi42IDUuNSAxMS4zIDEzIDE5LjMgMi43IDIuOSA2LjYgNC41IDExIDQuNXM4LjctMS42IDExLjgtNC4yYzIuMy0yIDEwLjItOS4yIDEzLjctMTguMSAxLjMtMy4zIDEtNi0uOS03LjktMS4zLTEuMy00LTIuOS05LjQtM3oiXX0sQ3BlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cHBvcnRub3ciLGljb246WzY0MCw1MTIsW10sImU4MzMiLCJNMCAxOTEuOWwyMDMuOS0uMWMxLjgtLjYgMi41LTkuNSAzLjItMTIuMiAzLjMtMTMuNSA4LjQtMjYuNCAxNC44LTM4LjdsLTE2MC4yIDAgMC00OC4yIDIzNC41IDAgMCAzOWMtNTEuMiAzNi4xLTU2LjQgOTIuNi0yMy42IDE0My45IDMzLjEgNTEuNyA5My40IDg4LjEgMTQ5LjUgMTEwLjUgNjcuOC0yNS4yIDE2NC45LTg5LjkgMTY5LjQtMTY5LjYgMy4xLTU1LjMtNDIuMi0xMDEuOC05OC43LTkxLjgtNDEuNSA3LjQtNjIuMSA0Ni43LTU0LjggODYuNGwtNDguMiAwYy03LjMtNTYuNiAyMi44LTExMi42IDc4LjQtMTMwLjMgNzguNy0yNS4xIDE1OS41IDI4IDE3MC40IDEwOC44IDE1LjIgMTEyLjMtOTUuNSAxOTkuOS0xODguMSAyMzcuOC00LjQgMS44LTI0LjQgMTAuMS0yNy41IDEwLjFsLTI4MC4zIDAgMC00OC4yIDE3OC41IDAtMzguMS0yOC45LTIzLjItMjIuMS0xOTguMyAwIDAtNDguMiAxNjMuMSAwYy03LjEtMTEuNi0xMi4zLTI0LjMtMTYuMS0zNy40LS43LTIuNS0yLjEtMTItMy44LTEyLjZsLTIwNC45LS4xIDAtNDguMiAwIDB6Il19LF9wZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyb2Nrcm1zIixpY29uOls1MTIsNTEyLFtdLCJmM2U5IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDEzLjQgNDI3LjVsLTkwIDAtMTEyLTEzMS4zYy0xNy45LTIwLjQtMy45LTU2LjEgMjYuNi01Ni4xbDc1LjMgMC04NC42LTk5LjMtODQuMyA5OC45LTkwIDAgMTQ3LjEtMTcyLjVjMTQuNC0xOC40IDQxLjMtMTcuMyA1NC41IDBMNDEzLjcgMjUyLjNjMTkgMjIuOCAyIDU3LjItMjcuNiA1Ni4xLS42IDAtNzQuMiAuMi03NC4yIC4yTDQxMy40IDQyNy41eiJdfSxUcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5zcGxhc2giLGljb246WzQ0OCw1MTIsW10sImUwN2MiLCJNNDQ4IDIzMC4ybDAgMjQ5LjgtNDQ4IDAgMC0yNDkuOCAxNDEuMSAwIDAgMTI0LjkgMTY1LjcgMCAwLTEyNC45IDE0MS4xIDB6TTMwNi45IDMybC0xNjUuNyAwIDAgMTI0LjkgMTY1LjcgMCAwLTEyNC45eiJdfSxiRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtaW5zdGFncmFtIixpY29uOls0NDgsNTEyLFsiaW5zdGFncmFtLXNxdWFyZSJdLCJlMDU1IiwiTTE5NC40IDIxMS43YTUzLjMgNTMuMyAwIDEgMCA1OS4yIDg4LjYgNTMuMyA1My4zIDAgMSAwIC01OS4yLTg4LjZ6bTE0Mi4zLTY4LjRjLTUuMi01LjItMTEuNS05LjMtMTguNC0xMi0xOC4xLTcuMS01Ny42LTYuOC04My4xLTYuNS00LjEgMC03LjkgLjEtMTEuMiAuMXMtNy4yIDAtMTEuNC0uMWMtMjUuNS0uMy02NC44LS43LTgyLjkgNi41LTYuOSAyLjctMTMuMSA2LjgtMTguNCAxMnMtOS4zIDExLjUtMTIgMTguNGMtNy4xIDE4LjEtNi43IDU3LjctNi41IDgzLjIgMCA0LjEgLjEgNy45IC4xIDExLjFzMCA3LS4xIDExLjFjLS4yIDI1LjUtLjYgNjUuMSA2LjUgODMuMiAyLjcgNi45IDYuOCAxMy4xIDEyIDE4LjRzMTEuNSA5LjMgMTguNCAxMmMxOC4xIDcuMSA1Ny42IDYuOCA4My4xIDYuNSA0LjEgMCA3LjktLjEgMTEuMi0uMXM3LjIgMCAxMS40IC4xYzI1LjUgLjMgNjQuOCAuNyA4Mi45LTYuNSA2LjktMi43IDEzLjEtNi44IDE4LjQtMTJzOS4zLTExLjUgMTItMTguNGM3LjItMTggNi44LTU3LjQgNi41LTgzIDAtNC4yLS4xLTguMS0uMS0xMS40czAtNy4xIC4xLTExLjRjLjMtMjUuNSAuNy02NC45LTYuNS04My0yLjctNi45LTYuOC0xMy4xLTEyLTE4LjRsMCAuMnptLTY3LjEgNDQuNWMxOC4xIDEyLjEgMzAuNiAzMC45IDM0LjkgNTIuMnMtLjIgNDMuNS0xMi4zIDYxLjZjLTYgOS0xMy43IDE2LjYtMjIuNiAyMi42cy0xOSAxMC4xLTI5LjYgMTIuMmMtMjEuMyA0LjItNDMuNS0uMi02MS42LTEyLjNzLTMwLjYtMzAuOS0zNC45LTUyLjIgLjItNDMuNSAxMi4yLTYxLjYgMzAuOS0zMC42IDUyLjItMzQuOSA0My41IC4yIDYxLjYgMTIuMmwuMSAwem0yOS4yLTEuM2MtMy4xLTIuMS01LjYtNS4xLTcuMS04LjZzLTEuOC03LjMtMS4xLTExLjEgMi42LTcuMSA1LjItOS44IDYuMS00LjUgOS44LTUuMiA3LjYtLjQgMTEuMSAxLjEgNi41IDMuOSA4LjYgNyAzLjIgNi44IDMuMiAxMC42YzAgMi41LS41IDUtMS40IDcuM3MtMi40IDQuNC00LjEgNi4yLTMuOSAzLjItNi4yIDQuMi00LjggMS41LTcuMyAxLjVjLTMuOCAwLTcuNS0xLjEtMTAuNi0zLjJsLS4xIDB6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zNTcgMzg5Yy0xOC43IDE4LjctNDEuNCAyNC42LTY3IDI1LjktMjYuNCAxLjUtMTA1LjYgMS41LTEzMiAwLTI1LjYtMS4zLTQ4LjMtNy4yLTY3LTI1LjlzLTI0LjYtNDEuNC0yNS44LTY3Yy0xLjUtMjYuNC0xLjUtMTA1LjYgMC0xMzIgMS4zLTI1LjYgNy4xLTQ4LjMgMjUuOC02N3M0MS41LTI0LjYgNjctMjUuOGMyNi40LTEuNSAxMDUuNi0xLjUgMTMyIDAgMjUuNiAxLjMgNDguMyA3LjEgNjcgMjUuOHMyNC42IDQxLjQgMjUuOCA2N2MxLjUgMjYuMyAxLjUgMTA1LjQgMCAxMzEuOS0xLjMgMjUuNi03LjEgNDguMy0yNS44IDY3bDAgLjF6Il19LExwZT1iRSwkcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyc3Qtb3JkZXItYWx0IixpY29uOls1MTIsNTEyLFtdLCJmNTBhIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptMCA3LjhhMjQwLjIgMjQwLjIgMCAxIDEgMCA0ODAuNCAyNDAuMiAyNDAuMiAwIDEgMSAwLTQ4MC40em0wIDIwLjVhMjE5LjcgMjE5LjcgMCAxIDAgMCA0MzkuNCAyMTkuNyAyMTkuNyAwIDEgMCAwLTQzOS40em0wIDguMmEyMTEuNSAyMTEuNSAwIDEgMSAwIDQyMyAyMTEuNSAyMTEuNSAwIDEgMSAwLTQyM3ptMTg2LjIgMjYwYy00LjQgMTcuMS0xMS4yIDMzLjUtMjAuMSA0OC43bC03NC4xLTM1LjkgNjEuNSA1NC44Yy0xMC42IDE0LjEtMjMuMiAyNi42LTM3LjIgMzcuM2wtNTQuOC02MS42IDM1LjkgNzQuM2MtMTUuMiA5LTMxLjYgMTUuOC00OC42IDIwLjJsLTI3LjMtNzguNSA0LjggODIuOWMtOC42IDEuMi0xNy40IDEuOC0yNi4zIDEuOHMtMTcuNy0uNi0yNi4zLTEuOGw0LjgtODIuNS0yNy4yIDc4Yy0xNy4xLTQuNS0zMy40LTExLjMtNDguNy0yMC4ybDM1LjktNzQuMy01NC45IDYxLjZjLTE0LTEwLjctMjYuNi0yMy4yLTM3LjItMzcuM2w2MS42LTU0LjktNzQuMyAzNS45QzgwLjcgMzM4IDc0IDMyMS43IDY5LjUgMzA0LjZsNzcuOC0yNy4xLTgyLjIgNC44Yy0xLjItOC42LTEuOC0xNy4zLTEuOC0yNi4yIDAtOSAuNi0xNy44IDEuOC0yNi41bDgyLjQgNC44LTc3LjktMjcuMmM0LjUtMTcuMSAxMS4zLTMzLjUgMjAuMi00OC43bDc0LjIgMzUuOS02MS41LTU0LjljMTAuNy0xNCAyMy4yLTI2LjYgMzcuMy0zNy4ybDU0LjggNjEuNS0zNS44LTc0LjJjMTUuMi04LjkgMzEuNi0xNS43IDQ4LjYtMjAuMWwyNi45IDc3LjItNC43LTgxLjZjOC42LTEuMiAxNy40LTEuOCAyNi4zLTEuOHMxNy43IC42IDI2LjMgMS44bC00LjcgODIuMiAyNy03Ny44YzE3LjMgNC41IDMzLjYgMTEuNCA0OC42IDIwLjJsLTM1LjggNzQuMSA1NC43LTYxLjVjMTQuMSAxMC43IDI2LjYgMjMuMiAzNy4yIDM3LjJsLTYxLjQgNTQuOCA3NC4xLTM1LjljOC45IDE1LjIgMTUuNyAzMS42IDIwLjIgNDguNmwtNzcuOCAyNy4xIDgyLjItNC43YzEuMiA4LjcgMS44IDE3LjUgMS44IDI2LjUgMCA4LjktLjYgMTcuNi0xLjggMjYuMmwtODIuMS00LjcgNzcuNyAyNy4xeiJdfSxBcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnVsY3J1bSIsaWNvbjpbMjU2LDUxMixbXSwiZjUwYiIsIk02My44IDE2NC4xTDI4LjQgMjA3LjctNyAxNjQuMSAyOC40IDEyMC42IDYzLjggMTY0LjF6TTExMi4yIDBsLTIwLjUgMTk4LjItNTEgNTcuOCA1MSA1Ny44IDIwLjUgMTk4LjIgMC0yMTEuMS00MS4xLTQ0LjkgNDEuMS00NC45IDAtMjExLjF6bTc5LjcgMTY0LjFsMzUuNCA0My42IDM1LjQtNDMuNi0zNS40LTQzLjUtMzUuNCA0My41em0tNDguNSA0N2w0MS4xIDQ0LjktNDEuMSA0NC45IDAgMjExLjEgMjAuNi0xOTguMiA1MS01Ny44LTUxLTU3LjgtMjAuNi0xOTguMiAwIDIxMS4xeiJdfSxEcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXJjaC1saW51eCIsaWNvbjpbNTc2LDUxMixbXSwiZTg2NyIsIk0yODguNy03LjhjLTI0LjEgNTktMzguNiA5Ny43LTY1LjQgMTU1IDE2LjQgMTcuNCAzNi42IDM3LjYgNjkuNCA2MC41LTM1LjItMTQuNS01OS4yLTI4LjktNzcuMi00NC0zNC4zIDcxLjYtODguMSAxNzMuNS0xOTcuMiAzNjkuNCA4NS43LTQ5LjUgMTUyLjItODAgMjE0LjEtOTEuNi0yLjctMTEuNC00LjEtMjMuOC00LTM2LjdsLjEtMi43YzEuNC01NC45IDI5LjktOTcuMiA2My44LTk0LjRzNjAuMiA0OS44IDU4LjggMTA0LjdjLS4zIDEwLjMtMS40IDIwLjItMy40IDI5LjQgNjEuMiAxMiAxMjcgNDIuNCAyMTEuNiA5MS4yLTE2LjctMzAuNy0zMS42LTU4LjMtNDUuOC04NC43LTIyLjQtMTcuNC00NS43LTM5LjktOTMuMy02NC40IDMyLjcgOC41IDU2LjMgMTguMyA3NC41IDI5LjMtMTQ0LjUtMjY5LjEtMTU2LjItMzA0LjgtMjA1LjgtNDIxLjF6Il19LEVwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRpdmVyc2UiLGljb246WzU3Niw1MTIsW10sImU4NjUiLCJNMzk0LjggNTI2LjlhNTQgNTQgMCAxIDEgNS44LTEwNy44IDU0IDU0IDAgMSAxIC01LjggMTA3Ljh6bS01MC4xLTgwLjZjLTUuNSAxMC45LTcuNCAyMy4zLTUuNiAzNS40TDE2OC43IDQ1NC40YzUuNS0xMC45IDcuNS0yMy4zIDUuNy0zNS40bDE3MC4zIDI3LjN6TTExMi43IDQ4MS42YTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44em0yNTcuNy02MS40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zbC03MC42LTcwLjkgMzMuNi0xNyA2Mi40IDYyLjd6TTQ4Ni4xIDI2MWM4LjcgOC42IDE5LjggMTQuMyAzMS45IDE2LjRMNDM5LjQgNDMwLjhjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuNEw0ODYuMSAyNjF6TTM3Ni43IDIxOS4zbDMwLjUgMTk1LjFjLTEyLjEtMS45LTI0LjUtLjEtMzUuNCA1LjNsLTMyLjItMjA2LjMgMzcuMiA2ek0zNTAuNCAzMjguOUwxNzQuMiA0MTguMmMtMi0xMi4xLTcuNi0yMy4yLTE2LjItMzJsMTg2LjYtOTQuNiA1LjggMzcuMnptLTE1Mi43LTIybC00MC4zIDc4LjdjLTguNy04LjYtMTkuOC0xNC4zLTMxLjktMTYuM2w0NS42LTg5IDI2LjYgMjYuN3pNMTI0LjcgMzY5Yy0xMi4xLTEuOC0yNC40IC4yLTM1LjQgNS42TDYyLjcgMjA0LjNjMTIuMSAxLjggMjQuNS0uMSAzNS40LTUuNkwxMjQuNyAzNjl6bTE0Ny4xLTQ3LjhsLTMzLjYgMTctMTM5LjQtMTM5LjljMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0wyNzEuOCAzMjEuMnptMTk3LjUtOTIuOGMyIDEyLjEgNy42IDIzLjIgMTYuMiAzMS45bC04OS4zIDQ1LjItNS44LTM3LjIgNzguOS00MHptNTUuNiA0NC4zYTU0IDU0IDAgMSAxIDUuOS0xMDcuOCA1NCA1NCAwIDEgMSAtNS45IDEwNy44ek0yODQuNiA1OC43YzguNyA4LjYgMTkuOCAxNC4zIDMxLjggMTYuM2wtOTUuMyAxODYuMS0yNi42LTI2LjcgOTAtMTc1Ljh6TTQ3NC45IDE5Mi4xYy01LjUgMTAuOS03LjUgMjMuMy01LjcgMzUuM2wtMjA2LjQtMzMuMSAxNy4yLTMzLjUgMTk1IDMxLjN6TTY4LjcgMTk5LjZBNTQgNTQgMCAxIDEgNzQuNiA5MS44IDU0IDU0IDAgMSAxIDY4LjcgMTk5LjZ6bTQzMi0zMy40Yy0xMC45IDUuNi0xOS43IDE0LjQtMjUuNCAyNS4zTDM1My41IDY5LjNjMTAuOS01LjYgMTkuNy0xNC40IDI1LjQtMjUuM0w1MDAuNiAxNjYuMnpNMjI5LjMgMTUyLjZsLTE3LjIgMzMuNS04Ny40LTE0YzUuNC0xMC45IDcuNC0yMy4zIDUuNS0zNS40bDk5IDE1Ljl6bTEzOS41IDE1LjlsLTM3LjItNi0xMy42LTg3LjJjMTIuMSAxLjcgMjQuNS0uMyAzNS4zLTUuOWwxNS41IDk5LjF6TTI2Ny44IDI2LjJjMiAxMi4xIDcuNiAyMy4yIDE2LjIgMzEuOWwtMTUzLjkgNzhjLTItMTIuMS03LjYtMjMuMi0xNi4yLTMxLjlsMTUzLjktNzh6bTU1LjYgNDQuM2E1NCA1NCAwIDEgMSA1LjgtMTA3LjggNTQgNTQgMCAxIDEgLTUuOCAxMDcuOHoiXX0sUHBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJyYXZlLXJldmVyc2UiLGljb246WzQ0OCw1MTIsW10sImU2M2QiLCJNMjk4LjUgMGMzIDAgNS44IDEuMyA3LjggMy42bDM4LjEgNDRjLjUtLjEgMS0uMiAxLjUtLjMgOS4yLTEuNiAxOC42LTIuMiAyNy43LTEuMiAxMS42IDEuNCAyMS41IDUuNCAyOC45IDEyLjkgNy43IDcuOCAxNS40IDE1LjggMjIuNiAyMy42IDIuNSAyLjcgNC45IDUuMiA2LjkgNy40IC43IC44IDEuNCAxLjUgMS45IDIgMy40IDMuNyA0LjIgOC4xIDIuNyAxMS45bC05LjggMjQuNiAxMy4xIDM4LjFjLjcgMiAuOCA0LjEgLjIgNi4yLS4xIC40LS4xIC40LS41IDIuMWwtMS41IDUuOGMtMS42IDYuMy0zLjUgMTMuMy01LjQgMjAuOS01LjYgMjEuNi0xMS4yIDQzLjItMTYuNCA2My40LTEyLjkgNDkuOS0yMS40IDgyLjctMjMuNCA5MC45LTExLjEgNDQuNS0xOS45IDYwLTQ4LjMgODAuMy0yNC45IDE3LjgtNzYuOCA1My42LTg2LjggNjAtMSAuNi0yIDEuMy0zLjQgMi4zLS41IC40LTMuMiAyLjItMy45IDIuNy00LjkgMy4zLTguMyA1LjUtMTIuMSA3LjMtNC43IDIuMi05LjMgMy41LTEzLjkgMy41cy05LjEtMS4yLTEzLjktMy41Yy0zLjctMS44LTcuMi0zLjktMTIuMS03LjMtLjgtLjUtMy40LTIuNC0zLjktMi43LTEuNC0xLTIuNS0xLjctMy40LTIuMy0xMC02LjQtNjEuOS00Mi4xLTg2LjgtNjAtMjguNC0yMC40LTM3LjItMzUuOC00OC4zLTgwLjMtMi04LjItMTAuNS00MS0yMy4zLTkwLjUtNS4zLTIwLjYtMTAuOS00Mi4yLTE2LjUtNjMuOC0yLTcuNi0zLjgtMTQuNi01LjQtMjAuOWwtMS41LTUuOC0uNS0yLjFjLS41LTItLjQtNC4yIC4yLTYuMmwxMy4xLTM4LjEtOS45LTI0LjVjLTEuNS0zLjgtLjctOC4yIDItMTEuMiAxLjItMS4zIDEuOC0yIDIuNi0yLjggMi0yLjIgNC40LTQuNyA2LjktNy40IDcuMy03LjcgMTUtMTUuNyAyMi43LTIzLjUgNy40LTcuNSAxNy4zLTExLjYgMjguOS0xMi45IDkuMS0xLjEgMTguNS0uNSAyNy43IDEuMiAuNSAuMSAxIC4yIDEuNSAuM2wzOC4xLTQ0YzItMi40IDQuOC0zLjcgNy44LTMuN2wxNDggMHptLTQuNyAyMS4xbC0xMzguNiAwLTM5LjEgNDUuMWMtMi42IDMtNi43IDQuMy0xMC42IDMuMi0uMi0uMS0uNy0uMi0xLjUtLjQtMS4zLS4zLTIuOS0uNi00LjUtLjktNy40LTEuMy0xNC45LTEuOC0yMS43LTEtNy4zIC45LTEzIDMuMi0xNi42IDYuOS03LjYgNy43LTE1LjIgMTUuNi0yMi4zIDIzLjMtMS43IDEuOC0zLjMgMy41LTQuOCA1LjFsOC44IDIyYzEgMi40IDEgNSAuMiA3LjVMMjkuNyAxNzAuNmMuNCAxLjQgLjUgMS45IDEuMiA0LjggMS42IDYuMyAzLjUgMTMuMyA1LjQgMjAuOSA1LjYgMjEuNiAxMS4yIDQzLjIgMTYuNCA2My40IDEyLjkgNTAgMjEuNCA4Mi44IDIzLjQgOTEgMTAuMSA0MC4xIDE2LjQgNTEuMyA0MC4yIDY4LjMgMjQuNiAxNy42IDc2LjMgNTMuMiA4NS45IDU5LjMgMS4yIC44IDIuNSAxLjYgNCAyLjcgLjYgLjQgMy4yIDIuMiAzLjkgMi43IDQgMi44IDYuNyA0LjQgOS4yIDUuNiAyLjIgMSAzLjkgMS41IDUuMSAxLjVzMi45LS41IDUuMS0xLjVjMi41LTEuMiA1LjItMi44IDkuMi01LjYgLjctLjUgMy4zLTIuMyAzLjktMi43IDEuNi0xLjEgMi44LTEuOSA0LTIuNyA5LjYtNi4xIDYxLjMtNDEuNyA4NS45LTU5LjMgMjMuOC0xNy4xIDMwLjItMjguMiA0MC4xLTY4LjMgMi4xLTguMyAxMC41LTQxLjEgMjMuMy05MC43IDUuMy0yMC42IDEwLjktNDIuMiAxNi41LTYzLjggMi03LjYgMy44LTE0LjYgNS40LTIwLjkgLjctMi45IC45LTMuNCAxLjItNC44bC0xMy4zLTM4LjhjLS44LTIuNC0uOC01LjEgLjItNy41bDguOC0yMmMtMS41LTEuNi0zLjEtMy4zLTQuOC01LjEtNy4yLTcuNi0xNC43LTE1LjUtMjIuMy0yMy4zLTMuNy0zLjctOS4zLTYtMTYuNi02LjktNi44LS44LTE0LjQtLjMtMjEuNyAxLTEuNyAuMy0zLjIgLjYtNC41IC45LS44IC4yLTEuMyAuMy0xLjUgLjQtMy44IDEuMS03LjktLjItMTAuNi0zLjJMMjkzLjggMjEuMXpNMjI0LjUgMzE2YzIuOCAwIDIwLjkgNi41IDM1LjQgMTQuMXMyNSAxMyAyOC4zIDE1LjIgMS4zIDYuMi0xLjcgOC40LTQ0LjEgMzQuNi00OC4xIDM4LjItOS44IDkuNS0xMy44IDkuNS05LjgtNS45LTEzLjgtOS41LTQ1LjEtMzYtNDguMS0zOC4yLTUuMS02LjItMS43LTguNCAxMy45LTcuNSAyOC4zLTE1LjIgMzIuNS0xNC4xIDM1LjQtMTQuMWwtLjIgMHptLjEtMjMwLjdjLjcgMCA4LjggLjIgMjAuNSA0LjIgMTIuMyA0LjIgMjUuNyA5LjQgMzEuOSA5LjRzNTEuOS04LjkgNTEuOS04LjkgNTQuMiA2Ni43IDU0LjIgODEtNi44IDE4LTEzLjcgMjUuNC0zNi44IDM5LjgtNDAuNyA0My45LTExLjkgMTAuNS03LjEgMjEuOCAxMS43IDI1LjggMy45IDQwLjQtMjEgMjQuNC0yOS40IDIyLjgtMjguNC0xMi4yLTM1LjctMTcuMS0zMC41LTI0LjMtMzAuNS0zMS44IDI0LTIwLjggMjguNC0yMy45IDI0LjctMTQuOCAyNS4xLTE5LjQgLjMtNi01LjctMTcuNC0xNi43LTI2LjctMTQuOS0zNi44IDE5LjEtMTUuNCAzMS41LTIwLjIgMzYuMi0xMy43IDM5LjItMTUuMSAyLjItMi43LTYuOC0zLjYtMzQuNi00LjMtNDYuMS0xLjEtMzEuMiA4LjItMzIuOCAxMC45LTMgMi43LTEuNCAxMS44IDEwLjEgNTIuOCAxMC45IDYwLjYgMi40IDEyLjktNS44IDE0LjgtMjIuMSA1LjItMjYuOCA1LjItMTguNi0zLjMtMjYuOC01LjItNi42LTctNS44LTE0LjggOS4zLTUxLjUgMTAuOS02MC42IC4yLTkuMi0xLjQtMTEuOC0yMS4zLTcuNi0zMi44LTEwLjktMzcuMSAuMi00Ni4xIDEuMS05LjggMi4yLTYuOCAzLjYgMjYuOCAxMC40IDM5LjIgMTUuMSAyOS43IDEwIDMxLjUgMjAuMi05IDI1LjQtMTQuOSAzNi44LTYuMSAxMi44LTUuNyAxNy40IDIwLjYgMTYuNCAyNS4xIDE5LjQgMjguNCAxNi40IDI4LjQgMjMuOS0yMy4yIDI3LTMwLjUgMzEuOC0yNy4yIDE1LjQtMzUuNyAxNy4xLTIxLjctOC4yLTI5LjQtMjIuOC0uOC0yOS4xIDMuOS00MC40LTMuMy0xNy43LTcuMS0yMS44LTMzLjgtMzYuNS00MC43LTQzLjktMTMuNy0xMS4yLTEzLjctMjUuNCA1NC4yLTgxIDU0LjItODEgNDUuOCA4LjkgNTEuOSA4LjkgMTkuNS01LjIgMzEuOS05LjQgMjAuNi00LjIgMjAuNi00LjJsLS4zIDB6Il19LElwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdmlhbmV4IixpY29uOls1MTIsNTEyLFtdLCJmMzc0IiwiTTQ1My4yIDMybC0zMTIgMEMxMDIuMyAzMiA2NSA2My4yIDU3LjkgMTAxLjdMMS4zIDQxMC4zQy01LjggNDQ4LjggMjAgNDgwIDU5IDQ4MGwzMTIgMGMzOC45IDAgNzYuMi0zMS4yIDgzLjMtNjkuN0w1MTEgMTAxLjhDNTE4IDYzLjIgNDkyLjIgMzIgNDUzLjIgMzJ6TTM5NSAzNzkuM2wtMzIgMTMuNS0xMTUuNC0xMTBjLTE0LjcgMTAtMjkuMiAxOS41LTQxLjcgMjcuMWwyMi4xIDY0LjItMTcuOSAxMi43LTQwLjYtNjEtNTIuNC00OC4xIDE1LjctMTUuNCA1OCAzMS4xYzkuMy0xMC41IDIwLjgtMjIuNiAzMi44LTM0LjlsLTIwLjUtMjkuNi02OC44LTk5LjggMTguOC0yOC45IDguOS00LjggMTAzLjEgMTEyLjQgNC45IDQuNWMxOS40LTE4LjggMzMuOC0zMi40IDMzLjgtMzIuNCA3LjctNi41IDIxLjUtMi45IDMwLjcgNy45IDkgMTAuNSAxMC42IDI0LjcgMi43IDMxLjMtMS44IDEuMy0xNS41IDExLjQtMzUuMyAyNS42bDQuNSA3LjMgOTQuOSAxMTkuNC02LjMgNy45eiJdfSxOcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnM4IixpY29uOls2NDAsNTEyLFtdLCJmM2Q1IiwiTTEwNC4zIDI2OS4ybDI2LjEgMCAwLTI2LjItMjYuMSAwIDAgMjYuMnpNMTU2LjggMjQzbC0uMS0yNi4yIDAtLjljLS4yLTEwLjQtNC40LTIwLjMtMTEuOS0yNy42cy0xNy41LTExLjMtMjcuOS0xMS4xLTIwLjMgNC40LTI3LjYgMTEuOC0xMS4zIDE3LjUtMTEuMiAyNy45bDAgLjIgMjYuNCAwIDAtLjJjLjEtMy40IDEuNS02LjYgMy45LTlzNS43LTMuNyA5LjEtMy43IDYuNyAxLjMgOS4xIDMuNyAzLjggNS42IDMuOSA5bDAgMjYuMiAyNi4zIDB6bTUyLjQgMjUuOGMwIDEyLTIuNCAyMy44LTYuOSAzNC45cy0xMS4zIDIxLjEtMTkuNyAyOS42LTE4LjUgMTUuMi0yOS42IDE5LjctMjIuOSA2LjktMzQuOSA2LjlsLS42IDBjLTI0LjIgMC00Ny4zLTkuNi02NC40LTI2LjdTMjYuMyAyOTMgMjYuMyAyNjguOGwtMjYuMyAwIDAgLjJjMCAxNS40IDMuMSAzMC43IDkgNDQuOXMxNC42IDI3LjIgMjUuNSAzOC4xIDIzLjkgMTkuNSAzOC4xIDI1LjQgMjkuNSA4LjkgNDQuOSA4LjlsLjggMGMxNS40IDAgMzAuNy0zIDQ0LjktOXMyNy4yLTE0LjYgMzguMS0yNS41IDE5LjUtMjMuOCAyNS40LTM4LjEgOC45LTI5LjUgOC45LTQ0LjlsMC0yNi0yNi4zIDAgMCAyNnptLTE1Ny4yIDBjLjEgMTcuMyA3IDMzLjkgMTkuMiA0Ni4xczI4LjggMTkuMSA0Ni4xIDE5LjEgMzMuOS02LjkgNDYuMS0xOS4xIDE5LjItMjguOCAxOS4yLTQ2LjFsLTI2LjMgMGMtLjIgMTAuMi00LjQgMjAtMTEuNyAyNy4ycy0xNy4xIDExLjItMjcuNCAxMS4yLTIwLjEtNC0yNy40LTExLjItMTEuNS0xNi45LTExLjctMjcuMmwwLTI2LTI2LjMgMCAwLTI2LjZjLjMtMTcuMyA3LjQtMzMuOCAxOS43LTQ1LjhzMjktMTguOCA0Ni4zLTE4LjYgMzMuOCA3LjIgNDUuOSAxOS41IDE4LjkgMjguOSAxOC45IDQ2LjJsMCAyNS4zIDI2LjMgMCAwLTI1LjNjMC0yNC4zLTkuNy00Ny43LTI2LjktNjQuOXMtNDAuNS0yNi45LTY0LjktMjYuOS00Ny43IDkuNy02NC45IDI2LjktMjYuOSA0MC41LTI2LjkgNjQuOWwwIDI1LjQgMjYuMyAwIDAgMjZ6bTQxOC40LTcxLjJjMTMuNyAwIDI0LjYgNi42IDMwLjEgMTguM2wuNyAxLjUgMjMuMi0xMS41LS42LTEuNGMtOC0xOS4zLTI4LjUtMzEuMy01My40LTMxLjMtMjMuMSAwLTQzLjYgMTEuNC01MSAyOC40LS4xIDI2LjktLjIgMjMuOSAwIDI0LjggNC43IDExIDE0LjYgMTkuNCAyOC43IDI0LjIgNi41IDIgMTMuMSAzLjMgMTkuOCA0IDUuNSAuNyAxMC42IDEuNCAxNS44IDMuMSA2LjQgMi4xIDEwLjUgNS4zIDEyLjggOS44bDAgOS45Yy0zLjcgNy41LTEzLjggMTIuMy0yNS44IDEyLjMtMTQuMyAwLTI2LTYuOS0zMS45LTE5bC0uNy0xLjUtMjMgMTEuNSAuNiAxLjRjNy45IDE5LjQgMjkuNiAzMiA1NS4zIDMyIDIzLjYgMCA0NC42LTExLjQgNTIuMy0yOC40bC4yLTI1LjktLjItLjdjLTQuOS0xMS0xNS4yLTE5LjYtMjguOS0yNC4yLTcuNy0yLjctMTQuMy0zLjYtMjAuNy00LjQtNS0uNS0xMC0xLjUtMTQuOC0yLjktNi4zLTEuOS0xMC40LTUuMS0xMi42LTkuNmwwLTguNGMzLjQtNy40IDEyLjktMTIuMSAyNC4yLTEyLjFsMCAwek0yODcuNiAzMTEuM2wyNi4xIDAgMC02OC40LTI2LjEgMCAwIDY4LjR6TTYzOS44IDI1OGMtMi45LTYuMy04LjMtMTItMTUuNC0xNi43IDUuNi0zLjggMTAuMS05LjEgMTMtMTUuM2wuMi0yNS4zLS4yLS43Yy03LjQtMTYtMjYuNy0yNi43LTQ4LjItMjYuN1M1NDguNSAxODQgNTQxLjEgMjAwbC0uMiAyNS4zIC4yIC43YzIuOSA2LjEgNy40IDExLjQgMTMgMTUuMy03LjIgNC43LTEyLjUgMTAuNS0xNS40IDE2LjdsLS4yIDI4LjkgLjIgLjdjNy42IDE2IDI3LjkgMjYuNyA1MC42IDI2LjdzNDMuMS0xMC43IDUwLjYtMjYuN2wuMi0yOC45LS4yLS43em0tNzMuMi01MC44YzMuNi02LjMgMTIuNi0xMC41IDIyLjYtMTAuNXMxOSA0LjIgMjIuNiAxMC41bDAgMTMuN2MtMy41IDYuMi0xMi42IDEwLjMtMjIuNiAxMC4zcy0xOS4xLTQuMi0yMi42LTEwLjNsMC0xMy43em00Ny4zIDcyLjJjLTMuOCA2LjYtMTMuMyAxMC45LTI0LjcgMTAuOS0xMS4xIDAtMjEtNC40LTI0LjctMTAuOWwwLTE2LjJjMy43LTYuMyAxMy41LTEwLjUgMjQuNy0xMC41IDExLjMgMCAyMC45IDQuMSAyNC43IDEwLjVsMCAxNi4yek0zNzYuNCAyNjZsLTU5LjgtODkuNy0yOSAwIDAgNDAuNiAyNi41IDAgMCAuNCA2Mi41IDk0LjEgMjUuNyAwIDAtMTM1LjEtMjUuOSAwIDAgODkuN3oiXX0sdkU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXBpbnRlcmVzdCIsaWNvbjpbNDQ4LDUxMixbInBpbnRlcmVzdC1zcXVhcmUiXSwiZjBkMyIsIk0zODQgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw3Mi42IDAtMi4yLS44Yy01LjQtNDguMS0zLjEtNTcuNSAxNS43LTEzNC43IDMuOS0xNiA4LjUtMzUgMTMuOS01Ny45IDAgMC03LjMtMTQuOC03LjMtMzYuNSAwLTcwLjcgNzUuNS03OCA3NS41LTI1IDAgMTMuNS01LjQgMzEuMS0xMS4yIDQ5LjgtMy4zIDEwLjYtNi42IDIxLjUtOS4xIDMyLTUuNyAyNC41IDEyLjMgNDQuNCAzNi40IDQ0LjQgNDMuNyAwIDc3LjItNDYgNzcuMi0xMTIuNCAwLTU4LjgtNDIuMy05OS45LTEwMi42LTk5LjktNjkuOSAwLTExMC45IDUyLjQtMTEwLjkgMTA2LjYgMCAyMS4xIDguMiA0My43IDE4LjMgNTYgMiAyLjQgMi4zIDQuNSAxLjcgNy0xLjEgNC43LTMuMSAxMi45LTQuNyAxOS4yLTEgNC0xLjggNy4zLTIuMSA4LjYtMS4xIDQuNS0zLjUgNS41LTguMiAzLjMtMzAuNi0xNC4zLTQ5LjgtNTkuMS00OS44LTk1LjEgMC03Ny41IDU2LjItMTQ4LjYgMTYyLjItMTQ4LjYgODUuMiAwIDE1MS40IDYwLjcgMTUxLjQgMTQxLjggMCA4NC42LTUzLjMgMTUyLjctMTI3LjQgMTUyLjctMjQuOSAwLTQ4LjMtMTIuOS01Ni4zLTI4LjIgMCAwLTEyLjMgNDYuOS0xNS4zIDU4LjQtNSAxOS4zLTE3LjYgNDIuOS0yNy40IDU5LjNMMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NHoiXX0sRnBlPXZFLE9wZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVldG9vdGgtYiIsaWNvbjpbMjU2LDUxMixbXSwiZjI5NCIsIk0xNjQuOSAyNjBMMjU3LjUgMTU2LjcgMTExLjYgMCAxMTEuNiAyMDYuMyAyNS40IDEyMC4yLTYgMTUxLjYgMTAyLjEgMjYwLTYgMzY4LjQgMjUuNCAzOTkuOCAxMTEuNiAzMTMuNyAxMTQuMyA1MTIgMjYyLjggMzYzLjQgMTY0LjkgMjYwem00MC45LTEwM2wtNTAgNTAtLjMtMTAwLjMgNTAuMyA1MC4zem0tNTAgMTU2bDUwIDUwLTUwLjMgNTAuMyAuMy0xMDAuM3oiXX0sUnBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdyaXBmaXJlIixpY29uOlszMjAsNTEyLFtdLCJmM2FjIiwiTTgwLjUgMzAxLjRjMC03My44IDEwNS4xLTEyMi41IDEwNS4xLTIwMyAwLTQ3LjEtMzQtODgtMzkuMS05MC40IC40IDMuMyAuNiA2LjcgLjYgMTAgMCA5Mi4xLTE0Ny4xIDE1My45LTE0Ny4xIDI2OC42IDAgNDkuOCAzMi4yIDc5LjIgNjYuNSAxMDguMyA2NS4xIDQ2LjcgNzguMSA3MS40IDc4LjEgODYuNiAwIDEwLjEtNC44IDE3LTQuOCAyMi4zIDEzLjEtMTYuNyAxNy40LTMxLjkgMTcuNS00Ni40IDAtMjkuNi0yMS43LTU2LjMtNDQuMi04Ni41LTE2LTIyLjMtMzIuNi00Mi42LTMyLjYtNjkuNXptMjA1LjMtMzljLTEyLjEtNjYuOC03OC0xMjQuNC05NC43LTEzMC45bDQgNy4yYzIuNCA1LjEgMy40IDEwLjkgMy40IDE3LjEgMCA0NC43LTU0LjIgMTExLjItNTYuNiAxMTYuNy0yLjIgNS4xLTMuMiAxMC41LTMuMiAxNS44IDAgMjAuMSAxNS4yIDQyLjEgMTcuOSA0Mi4xIDIuNCAwIDU2LjYtNTUuNCA1OC4xLTg3LjcgNi40IDExLjcgOS4xIDIyLjYgOS4xIDMzLjQgMCA0MS4yLTQxLjggOTYuOS00MS44IDk2LjkgMCAxMS42IDMxLjkgNTMuMiAzNS41IDUzLjIgMSAwIDIuMi0xLjQgMy4yLTIuNCAzNy45LTM5LjMgNjcuMy04NSA2Ny4zLTEzNi44IDAtOC0uNy0xNi4yLTIuMi0yNC42eiJdfSx5RT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ29vZ2xlLXBsdXMiLGljb246WzQ0OCw1MTIsWyJnb29nbGUtcGx1cy1zcXVhcmUiXSwiZjBkNCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNNjQgMjU2YzAtNTUuMyA0NC43LTEwMCAxMDAtMTAwIDI3IDAgNDkuNSA5LjggNjcgMjYuMmwtMjcuMSAyNi4xYy03LjQtNy4xLTIwLjMtMTUuNC0zOS44LTE1LjQtMzQuMSAwLTYxLjkgMjguMi02MS45IDYzLjIgMCAzNC45IDI3LjggNjMuMiA2MS45IDYzLjIgMzkuNiAwIDU0LjQtMjguNSA1Ni44LTQzLjFsLTU2LjkgMCAwLTM0LjQgOTQuNCAwYzEgNSAxLjYgMTAuMSAxLjYgMTYuNiAwIDU3LjEtMzguMyA5Ny42LTk2IDk3LjYtNTUuMyAwLTEwMC00NC43LTEwMC0xMDB6bTI5MSAxOC4ybDAgMjktMjkuMiAwIDAtMjktMjkgMCAwLTI5LjIgMjkgMCAwLTI5IDI5LjIgMCAwIDI5IDI5IDAgMCAyOS4yLTI5IDB6Il19LEJwZT15RSxIcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0ZWUiLGljb246WzUxMiw1MTIsW10sImU4NjMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6TTM4NS42IDExMy44bDAgMC0xNzcgMGMtNTIuNCAwLTk0LjggNDIuNC05NC44IDk0LjhsMCAxNzdjMCA3IDUuNyAxMi42IDEyLjYgMTIuNmwxODYuNSAwYzQ3LjEgMCA4NS4zLTM4LjIgODUuMy04NS4zbDAtNzIuN2MwLTctNS43LTEyLjYtMTIuNi0xMi42bC0xNDUuNCAwYy03IDAtMTIuNiA1LjctMTIuNiAxMi42bDAgMzEuNmMwIDYuNiA1LjEgMTIuMSAxMS42IDEyLjZsMSAwIDg4LjUgMGM2LjYgMCAxMi4xIDUuMSAxMi42IDExLjZsMCAxIDAgNi4zYzAgMjAuOS0xNyAzNy45LTM3LjkgMzcuOWwtMTIwLjEgMGMtNyAwLTEyLjYtNS43LTEyLjYtMTIuNmwwLTEyMC4xYzAtMjAuNCAxNi4xLTM3LjEgMzYuNC0zNy45bDEuNiAwIDE3NyAwYzcgMCAxMi42LTUuNyAxMi42LTEyLjZsMC0zMS42YzAtNy01LjYtMTIuNi0xMi42LTEyLjZ6Il19LHFwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4bXBwIixpY29uOls1NzYsNTEyLFtdLCJlODY0IiwiTTAgNDcuMmMzLjUgMTM3LjEgMTE3LjEgMjc4LjYgMjUyLjkgMzU2LjctMzEuNSAyNS02Ny4yIDQ0LjEtMTA2LjIgNTMuOWwwIDUuNGM1Ni40LTIuMyA5OC4xLTIwLjEgMTQxLjMtNDAuNyA2NS43IDM0LjYgMTIyLjIgMzkuOSAxNDEuNCA0MC43bDAtNS40Yy0zOS05LjgtNzQuNy0yOC44LTEwNi4yLTUzLjggMTM1LjctNzguMiAyNDkuMy0yMTkuOCAyNTIuOC0zNTYuOC01OC40IDI1LjctMTE5LjEgNDQuMi0xODAuMSA2Mi4zbDAgMGMzLjQgNTktMjAuMiAxNzAuNC0xMDcuOSAyNjIuMy04OC40LTkyLjMtMTExLjItMjA0LjEtMTA3LjgtMjYyLjNsMCAwQzExNy43IDkyLjYgNTkuMyA3MC4yIDAgNDcuMnpNOTMuOSA5N2w3My42IDIxLjhDMTY1LjQgMjE2IDIyNi44IDM1OCAzNDEuMyA0MzIuMiAxOTAuNSAzNzYuOSA4OS45IDIxNS43IDkzLjkgOTd6bTM4OC4zIDBjMy4zIDk5LTY1LjYgMjI0LjctMTcxLjcgMjk2LjQtNC43LTQuMS05LjMtOC40LTEzLjgtMTIuNyA3Ny04MC4yIDExMy4yLTE4Ni4zIDExMS45LTI2MS45TDQ4Mi4xIDk3ek0yNjQuNSA0MTAuNWMzIDEuNiA1LjkgMy4yIDguOSA0LjctMTIuNSA2LjQtMjUuNCAxMi4xLTM4LjYgMTcgMTAuMy02LjcgMjAuMi0xMy45IDI5LjctMjEuN3oiXX0sVnBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcC1zdG9yZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2ZiIsIk0yNTUuOSAxMjAuOWw5LjEtMTUuN2M1LjYtOS44IDE4LjEtMTMuMSAyNy45LTcuNXMxMy4xIDE4LjEgNy41IDI3LjlsLTg3LjUgMTUxLjUgNjMuMyAwYzIwLjUgMCAzMiAyNC4xIDIzLjEgNDAuOGwtMTg1LjUgMGMtMTEuMyAwLTIwLjQtOS4xLTIwLjQtMjAuNHM5LjEtMjAuNCAyMC40LTIwLjRsNTIgMCA2Ni42LTExNS40LTIwLjgtMzYuMWMtNS42LTkuOC0yLjMtMjIuMiA3LjUtMjcuOSA5LjgtNS42IDIyLjItMi4zIDI3LjkgNy41bDguOSAxNS43em0tNzguNyAyMThsLTE5LjYgMzRjLTUuNiA5LjgtMTguMSAxMy4xLTI3LjkgNy41cy0xMy4xLTE4LjEtNy41LTI3LjlsMTQuNi0yNS4yYzE2LjQtNS4xIDI5LjgtMS4yIDQwLjQgMTEuNnptMTY4LjktNjEuN2w1My4xIDBjMTEuMyAwIDIwLjQgOS4xIDIwLjQgMjAuNFM0MTAuNSAzMTggMzk5LjIgMzE4bC0yOS41IDAgMTkuOSAzNC41YzUuNiA5LjggMi4zIDIyLjItNy41IDI3LjktOS44IDUuNi0yMi4yIDIuMy0yNy45LTcuNS0zMy41LTU4LjEtNTguNy0xMDEuNi03NS40LTEzMC42LTE3LjEtMjkuNS00LjktNTkuMSA3LjItNjkuMSAxMy40IDIzIDMzLjQgNTcuNyA2MC4xIDEwNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MCAyNTZhMjE2IDIxNiAwIDEgMSA0MzIgMCAyMTYgMjE2IDAgMSAxIC00MzIgMHoiXX0sanBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpeCIsaWNvbjpbNjQwLDUxMixbXSwiZjVjZiIsIk0zOTMuNCAxMzEuN2MwIDEzIDIuMSAzMi43LTI4LjcgNDMuOC05LjUgMy40LTE2IDkuNy0xNiA5LjcgMC0zMSA0LjctNDIuMiAxNy40LTQ4LjkgOS44LTUuMSAyNy4yLTQuNiAyNy4yLTQuNnpNMjc3LjYgMTY3LjJsLTM0LjIgMTMyLjctMjguNS0xMDguNmMtNy43LTMyLTIwLjgtNDguNS00OC40LTQ4LjUtMjcuNCAwLTQwLjcgMTYuMi00OC40IDQ4LjVMODkuNSAyOTkuOSA1NS4zIDE2Ny4yQzQ5LjcgMTQwLjUgMjMuOSAxMjkgMCAxMzJMNjUuNiAzNzkuOXMyMS42IDEuNiAzMi41LTRjMTQuMi03LjIgMjEtMTIuOCAyOS42LTQ2LjYgNy43LTMwLjEgMjkuMS0xMTguNCAzMS4xLTEyNC43IDQuOC0xNC45IDExLjEtMTMuOCAxNS40IDAgMiA2LjMgMjMuNSA5NC42IDMxLjEgMTI0LjcgOC42IDMzLjcgMTUuNCAzOS4zIDI5LjYgNDYuNiAxMC44IDUuNSAzMi41IDQgMzIuNSA0TDMzMi45IDEzMmMtMjQuNC0zLjEtNDkuOCA4LjktNTUuMyAzNS4zem0xMTUuOCA1LjJzLTQuMSA2LjMtMTMuNSAxMS42Yy02IDMuNC0xMS44IDUuNi0xOCA4LjYtMTUuMSA3LjMtMTMuMiAxMy45LTEzLjIgMzUuMmwwIDE1Mi4xczE2LjYgMi4xIDI3LjQtMy40YzEzLjktNy4xIDE3LjEtMTQgMTcuMy00NC44bDAtMTUwLjMgMCAwIDAtOXptMTYzLjQgODQuMUw2NDAgMTMyLjhzLTM1LjEtNi01Mi41IDkuOGMtMTMuMyAxMi4xLTI0LjQgMjkuNi01NC4yIDcyLjUtLjUgLjctNi4zIDEwLjUtMTMuMSAwLTI5LjMtNDIuMi00MC44LTYwLjMtNTQuMi03Mi41LTE3LjQtMTUuOC01Mi41LTkuOC01Mi41LTkuOGw4My4yIDEyMy43LTgzIDEyMy40czM2LjYgNC42IDU0LTExLjJjMTEuNS0xMC41IDE3LjYtMjAuNCA1Mi41LTcwLjcgNi44LTEwLjUgMTIuNi0uOCAxMy4xIDAgMjkuNCA0Mi40IDM5LjIgNTguMSA1My4xIDcwLjcgMTcuNCAxNS44IDUzLjMgMTEuMiA1My4zIDExLjJsLTgzLTEyMy40eiJdfSxVcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW50ZXJjb20iLGljb246WzQ0OCw1MTIsW10sImY3YWYiLCJNMzkyIDMyTDU2IDMyQzI1LjEgMzIgMCA1Ny4xIDAgODhMMCA0MjRjMCAzMC45IDI1LjEgNTYgNTYgNTZsMzM2IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC0zMzZjMC0zMC45LTI1LjEtNTYtNTYtNTZ6TTI4My43IDExNC4xYzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xOTkuNXptLTc0LjYtNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMjE2LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0yMTYuNXptLTc0LjcgNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBsMC0xOTkuNXpNNTkuNyAxNDRjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxMzQuM2MwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTEzNC4zek0zODMuMSAzNzEuOGMtNzIuOCA2My0yNDEuNyA2NS40LTMxOC4xIDAtMTUtMTIuOCA0LjQtMzUuNSAxOS40LTIyLjcgNjUuOSA1NS4zIDIxNi4xIDUzLjkgMjc5LjMgMCAxNC45LTEyLjkgMzQuMyA5LjggMTkuNCAyMi43em01LjItOTMuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTEzNC4zYzAtMTkuOCAyOS45LTE5LjggMjkuOSAwbDAgMTM0LjN6Il19LFdwZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFjdGV1cm9wZSIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZCIsIk0yNTAuNyAyMTEuN2w1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMS0yLjMtNi44LTIuMyA2LjgtNy4yIC4xIDUuNyA0LjMtMiA2Ljh6bTYzLjcgMGw1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMi0uMS0yLjMtNi44LTIuMyA2LjgtNy4yIC4xIDUuNyA0LjMtMS45IDYuOHptLTkxLjMgNTAuNWwtMy40IDBjLTQuOCAwLTMuOCA0LTMuOCAxMi4xIDAgNC43LTIuMyA2LjEtNS44IDYuMXMtNS44LTEuNC01LjgtNi4xbDAtMzYuNmMwLTQuNyAyLjMtNi4xIDUuOC02LjFzNS44IDEuNCA1LjggNi4xYzAgNy4yLS43IDEwLjUgMy44IDEwLjVsMy40IDBjNC43LS4xIDMuOC0zLjkgMy44LTEyLjMgMC05LjktNi43LTE0LjEtMTYuOC0xNC4xbC0uMiAwYy0xMC4xIDAtMTYuOCA0LjItMTYuOCAxNC4xbDAgNDAuMWMwIDEwLjQgNi43IDE0LjEgMTYuOCAxNC4xbC4yIDBjMTAuMSAwIDE2LjgtMy44IDE2LjgtMTQuMSAwLTkuOSAxLjEtMTMuOC0zLjgtMTMuOHptLTgwLjcgMTcuNGwtMTQuNyAwIDAtMTkuMyAxMS40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMTEuNCAwIDAtMTguMyAxNC40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGwtMjEuNyAwYy0yLjQtLjEtMy43IDEuMy0zLjcgMy44bDAgNTkuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMjEuOSAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjh6bS00Mi0xOC41YzQuNi0yIDcuMy02IDcuMy0xMi40bDAtMTEuOWMwLTEwLjEtNi43LTE0LjEtMTYuOC0xNC4xbC0xMy40IDBjLTIuNSAwLTMuOCAxLjMtMy44IDMuOGwwIDU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44bDMuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIyLjkgNS42IDAgNy40IDIzLjVjLjIgMSAuOCAxLjggMS42IDIuNHMxLjggLjkgMi43IC44bDMuMyAwYzIuOCAwIDQtMS44IDMuMi00LjRsLTguMS0yMy45em0tMy44LTE0YzAgNC44LTIuNSA2LjEtNi4xIDYuMWwtNS44IDAgMC0yMC45IDUuOCAwYzMuNiAwIDYuMSAxLjMgNi4xIDYuMWwwIDguN3pNMTc2LjEgMjI2Yy0uMS0uNS0uMi0xLS40LTEuNHMtLjYtLjgtMS0xLjEtLjgtLjYtMS4zLS43LTEtLjItMS41LS4xbC02LjkgMGMtLjUgMC0xIDAtMS40IC4ycy0uOSAuNC0xLjMgLjctLjcgLjctLjkgMS4xLS40IC45LS40IDEuNGwtMTEgNTkuMmMtLjUgMi43IC45IDQuMSAzLjQgNC4xbDMgMGMuNSAuMSAxIDAgMS41LS4ycy45LS40IDEuMy0uNyAuNy0uNyAuOS0xLjIgLjQtLjkgLjQtMS40bDEuOC0xMS4zIDEyLjIgMCAxLjggMTEuM2MwIC41IC4yIDEgLjQgMS40cy41IC45IC45IDEuMiAuOCAuNiAxLjMgLjcgMSAuMiAxLjUgLjJsMy41IDBjMi42IDAgMy45LTEuNCAzLjQtNC4xTDE3Ni4xIDIyNnptLTEyLjMgMzkuM2w0LjctMjkuNyA0LjcgMjkuNy05LjQgMHptODkuMyAyMC4ybDAtNTMuMiA3LjUgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44bC0yNS44IDBjLTIuNSAwLTMuOCAxLjMtMy44IDMuOGwwIDIuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsNy4zIDAgMCA1My4yYzAgMi41IDEuMyAzLjggMy44IDMuOGwzLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMCAwem0yNDgtLjhsLTE5LjQgMCAwLTI2LjcgMTYuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTE2LjEgMCAwLTI1LjggMTkuMSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTIyLjIgMGMtLjMtLjEtLjUtLjEtLjggMHMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMjIuNSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNiAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsMCAwek00MDggMjIxLjhsLS44IDBjLTEwLjEgMC0xNS4zIDQuNy0xNS4zIDE0LjFsMCA0MC4xYzAgOS4zIDUuMiAxNC4xIDE1LjMgMTQuMWwuOCAwYzEwLjEgMCAxNS4zLTQuOCAxNS4zLTE0LjFsMC00MC4xYzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMWwwIDB6bTEwLjIgNTIuNGMtLjEgOC0zIDExLjEtMTAuNSAxMS4xcy0xMC41LTMuMS0xMC41LTExLjFsMC0zNi42YzAtNy45IDMtMTEuMSAxMC41LTExLjFzMTAuNSAzLjIgMTAuNSAxMS4xbDAgMzYuNnptLTQ2LjUtMTQuNWM2LjEtMS42IDkuMi02LjEgOS4yLTEzLjNsMC05LjdjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xbC0xMy43IDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMS4yIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC42LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtMjYuOSAxMS42IDAgMTAuNCAyNy4yYy4yIC41IC41IC45IC45IDEuMXMuOSAuNCAxLjQgLjRsMS41IDBjMS40IDAgMi0xIDEuNS0yLjNsLTEwLjYtMjcuM3ptLTYuNC0zLjlsLTEwLjIgMCAwLTI4LjUgMTAuMiAwYzcuNSAwIDEwLjUgMy4xIDEwLjUgMTEuMWwwIDYuNGMwIDcuOC0zIDExLTEwLjUgMTFsMCAwem04NS45LTMzLjFsLTEzLjcgMGMtLjMtLjEtLjUtLjEtLjggMHMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjctLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMS4yIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC42LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtMjYuMSAxMC42IDBjMTAuMSAwIDE1LjMtNC44IDE1LjMtMTQuMWwwLTEwLjVjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xem0xMC4yIDIyLjhjMCA3LjktMyAxMS4xLTEwLjUgMTEuMWwtMTAuMiAwIDAtMjkuMiAxMC4yIDBjNy41LS4xIDEwLjUgMy4xIDEwLjUgMTFsMCA3LjF6TTI1OS42IDMwOGwtMi4zLTYuOC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6TTQ4Ny4yIDE3MS45Yy0xMS43LTQuNC0yMy41LTguMS0zNS42LTExLjMgMTkuNi03OCAxMS42LTEzNC43LTIyLjMtMTUzLjktMzQuNS0xOS40LTg1LjkgNC4zLTEzOC4yIDU1LjIgMy40IDMuMyA2LjggNi43IDEwLjIgMTAuMiA4Mi41LTgwIDExOS42LTUzLjUgMTIwLjktNTIuOCAyMi40IDEyLjcgMzYgNTUuOCAxNS41IDEzNy44LTI3LjgtNi40LTU2LjEtMTAuNy04NC42LTEzLTcxLjktMTAwLjUtMTQwLjYtMTQyLjEtMTgyLjItMTQyLjEtMzAuOCAwLTQzLjggMjEtNDcuNiAyNy43LTE4LjEgMzItMTMuMyA4NC4yIC4xIDEzMy44LTcwLjUgMjAuMy0xMjAuNyA1NC4xLTEyMC4zIDk1IC41IDU5LjYgMTAzLjIgODcuOCAxMjIuMSA5Mi44LTIwLjUgODEuOS0xMC4xIDEzNS42IDIyLjMgMTUzLjkgMjggMTUuOCA3NS4xIDYgMTM4LjItNTUuMi0zLjQtMy4zLTYuOC02LjctMTAuMi0xMC4yLTgyLjUgODAtMTE5LjcgNTMuNS0xMjAuOSA1Mi44LTIyLjMtMTIuNi0zNi01NS42LTE1LjUtMTM3LjkgMTIuNCAyLjkgNDEuOCA5LjUgODQuNiAxMyA3MS45IDEwMC40IDE0MC42IDE0MiAxODIuMSAxNDIgMzAuOCAwIDQzLjgtMjEgNDcuNi0yNy43IDE4LTMxLjkgMTMuMy04NC4xLS4xLTEzMy44IDE1Mi4zLTQzLjggMTU2LjItMTMwLjIgMzMuOS0xNzYuM2wwIDB6TTEzNiAzNi44YzIuOS01LjEgMTEuOS0yMC4zIDM0LjktMjAuMyAzNi44IDAgOTguOCAzOS42IDE2My4zIDEyNi4yLTMxLjMtMS44LTYyLjctMS41LTkzLjkgLjkgMTMtMTguMyAyNy4xLTM1LjggNDIuMi01Mi40LTMuNC0zLjUtNi44LTYuOS0xMC4yLTEwLjItMTguMyAyMC4yLTM1LjMgNDEuNy01MC43IDY0LjItMjguNSAyLjctNTYuNyA3LjYtODQuNCAxNC42LS4yLTEuNC0yNC4zLTgyLjItMS4yLTEyM2wwIDB6TTQ0MC44IDQ3NS4xYy0yLjkgNS4xLTExLjggMjAuMy0zNC45IDIwLjMtMzYuNyAwLTk4LjctMzkuNC0xNjMuMy0xMjYuMiAzMS4zIDEuOCA2Mi43IDEuNSA5My45LS45LTEzIDE4LjMtMjcuMSAzNS44LTQyLjIgNTIuNCAzLjQgMy41IDYuOCA2LjkgMTAuMiAxMC4yIDE4LjQtMjAuMiAzNS4zLTQxLjcgNTAuNy02NC4yIDQ3LjMtNC43IDgwLjMtMTMuNSA4NC40LTE0LjYgMjIuNyA4NC40IDQuNSAxMTcgMS4yIDEyM3ptOS4xLTEzOC42Yy0zLjYtMTEuOS03LjctMjQuMS0xMi40LTM2LjQtMi4xIDAtNC4yLS41LTYuMS0xLjVzLTMuNS0yLjQtNC42LTQuMmwtLjEgLjFjLTEuNiAxLjUtMy40IDIuNy01LjQgMy42IDUuNyAxNC4zIDEwLjYgMjguNCAxNC43IDQyLjItMjMuNyA2LTQ3LjcgMTAuMy03MiAxMyAzLjUtNS4zIDE3LjItMjYuMiAzMi4yLTU0LjItMi4xLS44LTQuMi0xLjktNi0zLjItMS4xIDEuMi0zLjYgNC4yLTEwLjkgNC4yLTYuMiAxMS4yLTE3LjQgMzAuOS0zMy45IDU1LjItMzcuNCAzLjMtNzUgMy42LTExMi40IDEtNy45LTExLjItMjEuNS0zMS4xLTM2LjgtNTcuOC0xLS40LTItLjktMy0xLjUtMS45IDEuNi0zLjkgMy4yLTEyLjYgMy4yIDYuMyAxMS4yIDE3LjUgMzAuNyAzMy44IDU0LjYtMjQuMy0yLjMtNDguNC02LjItNzIuMi0xMS43IDMuOS0xNCA4LjYtMjguMyAxNC4xLTQyLjktMy4yIDAtNS40IC4yLTguNC0xLTIuMiAuOC00LjYgMS4xLTYuOSAxLTQuOSAxMy40LTkuMSAyNi41LTEyLjcgMzkuNC0xNTkuOS00Mi42LTE0MC4zLTEyMy42LTEuNS0xNjQgMy42IDExLjkgNy43IDI0LjEgMTIuNCAzNi40IDEwLjQgMCAxMi45IDMuNCAxNC40IDUuMyAuNy0uOCAxLjQtMS42IDIuMy0yLjItNS44LTE0LjctMTAuOS0yOS4yLTE1LjItNDMuMyA3LTEuOCAzMi40LTguNCA3Mi0xMy0xNS45IDI0LjMtMjYuNyA0My45LTMyLjggNTUuMyAzLjEgMS44IDUuMyA0LjYgNi40IDggMi41LTMuNyA2LjEtNi42IDEwLjItOC40IDYuNS0xMS43IDE3LjktMzEuOSAzNC44LTU2LjkgMzcuNC0zLjMgNzUtMy42IDExMi40LTEgMzEuNSA0NC42IDI4LjkgNDguMSA0Mi41IDY0LjUgMi42LTMuNSA2LjMtNiAxMC40LTcuNC02LjQtMTEuNC0xNy42LTMxLTM0LjMtNTUuNSA0MC40IDQuMSA2NSAxMCA3Mi4yIDExLjctNCAxNC40LTguOSAyOS4yLTE0LjYgNDQuMiAyLjUgMSA0LjggMi40IDYuOCA0LjNsLjEgLjFjMS0xLjUgMi4zLTIuOCAzLjgtMy44czMuMy0xLjYgNS4xLTEuOGM0LjktMTMuNCA5LjItMjYuNiAxMi44LTM5LjUgMTEuNyAzLjEgMjMuMiA2LjggMzQuNSAxMSAxMDYuMSAzOS45IDc0IDg3LjkgNzIuNiA5MC40LTE5LjggMzUuMS04MC4xIDU1LjItMTA1LjcgNjIuNXptLTExNC40LTExNGwtMS4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjYgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA0OS44YzAgNy45LTIuNiAxMS4xLTEwLjEgMTEuMXMtMTAuMS0zLjEtMTAuMS0xMS4xbDAtNDkuOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDUxLjVjMCA5LjYgNSAxNC4xIDE1LjEgMTQuMWwuNCAwYzEwLjEgMCAxNS4xLTQuNiAxNS4xLTE0LjFsMC01MS41YzAtLjMtLjEtLjUtLjItLjhzLS4zLS41LS41LS42LS40LS4zLS43LS40LS41LS4xLS44LS4xek0zMjEuOCAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xem0tMzEuMSA3LjRsLTIuMy02LjgtMi4zIDYuOC03LjEgLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xem01LjEtMzAuOGwtMTkuNCAwIDAtMjYuNyAxNi4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMTYuMSAwIDAtMjUuOCAxOS4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMjIuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNjNjMCAuMyAwIC41IC4xIC44cy4yIC41IC40IC42IC40IC4zIC43IC40IC41IC4xIC44IC4xbDIyLjUgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjYtLjEtLjhzLS4yLS41LS40LS43LS40LS40LS43LS40LS41LS4xLS44LS4xbDAgMHptLTcuNC05OS40bC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjEtMi4zLTYuOHoiXX0sR3BlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndhemUiLGljb246WzUxMiw1MTIsW10sImY4M2YiLCJNNTAyLjYgMjAxLjdjMTQuNSA4NS45LTMwLjkgMTY3LjktMTEzLjIgMjA4LjEgMTMgMzQuMS0xMi40IDcwLjItNDguMyA3MC4yLTEzLjIgMC0yNi01LjEtMzUuNi0xNC4ycy0xNS4zLTIxLjYtMTYtMzQuOGMtNi40IC4yLTY0LjIgMC03Ni4zLS42LS4zIDYuOC0xLjkgMTMuNS00LjcgMTkuNnMtNi45IDExLjctMTEuOSAxNi4zLTEwLjggOC4yLTE3LjIgMTAuNS0xMy4yIDMuNC0xOS45IDMuMWMtMzMuOS0xLjQtNTgtMzQuOC00Ny02Ny45LTM3LjItMTMuMS03Mi41LTM0LjktOTkuNi03MC44LTEzLTE3LjMtLjUtNDEuOCAyMC44LTQxLjggNDYuMyAwIDMyLjItNTQuMiA0My4yLTExMC4zIDE4LjQtOTMuOSAxMTYuOC0xNTcuMSAyMTEuNy0xNTcuMSAxMDIuNSAwIDE5Ny4yIDcwLjcgMjE0LjEgMTY5Ljd6TTM3My45IDM4OC4zYzQyLTE5LjIgODEuMy01Ni43IDk2LjMtMTAyLjEgNDAuNS0xMjMuMS02NC4yLTIyOC0xODEuNy0yMjgtODMuNCAwLTE3MC4zIDU1LjQtMTg2LjEgMTM2LTkuNSA0OC45IDUgMTMxLjQtNjguNyAxMzEuNCAyNC45IDMzLjEgNTguMyA1Mi42IDkzLjcgNjQgMjQuNy0yMS44IDYzLjktMTUuNSA3OS44IDE0LjMgMTQuMiAxIDc5LjIgMS4yIDg3LjkgLjggMy41LTYuOSA4LjUtMTIuOSAxNC43LTE3LjVzMTMuMi03LjkgMjAuOC05LjUgMTUuNC0xLjQgMjIuOSAuNCAxNC41IDUuMyAyMC41IDEwLjJ6TTIwNS41IDE4Ny4xYzAtMzQuNyA1MC44LTM0LjcgNTAuOCAwcy01MC44IDM0LjctNTAuOCAwem0xMTYuNiAwYzAtMzQuNyA1MC45LTM0LjcgNTAuOSAwcy01MC45IDM0LjgtNTAuOSAwek0xOTkuNSAyNTcuOGMtMy40LTE2LjkgMjIuMi0yMi4yIDI1LjYtNS4ybC4xIC4zYzQuMSAyMS40IDI5LjggNDQgNjQuMSA0My4xIDM1LjctLjkgNTkuMy0yMi4yIDY0LjEtNDIuOCA0LjUtMTYuMSAyOC42LTEwLjQgMjUuNSA2LTUuMiAyMi4yLTMxLjIgNjItOTEuNSA2Mi45LTQyLjYgMC04MC45LTI3LjgtODcuOS02NC4ybDAgMHoiXX0sWXBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtcmVtaXgiLGljb246WzUxMiw1MTIsW10sImY0ZWUiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek00MTguMSAyNjAuNGw0LjkgMi4yIDAgNzBjLTcuMiAzLjYtNjMuNCAyNy41LTY3LjMgMjguOC02LjUtMS44LTExMy43LTQ2LjgtMTM3LjMtNTYuMmwtNjQuMiAyNi42LTYzLjMtMjcuNSAwLTYzLjggNTkuMy0yNC44Yy0uNy0uNy0uNCA1LS40LTcwLjRsNjcuMy0yOS43IDE1MS45IDYyLjkgMCA2MS42IDQ5LjEgMjAuM3ptLTcwLjQgODEuNWwwLTQzLjgtLjQgMCAwLTEuOC0xMTMuOC00Ni41IDAgNDUuMiAxMTMuOCA0Ni45IDAtLjQgLjQgLjR6bTcuNS01Ny42bDM5LjktMTYuNC0zNi44LTE1LjUtMzkgMTYuNCAzNS45IDE1LjV6bTUyLjMgMzguMWwwLTQzLTQ0LjMgMTguNiAwIDQzLjQgNDQuMy0xOXoiXX0sWnBlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJhbmRjYW1wIixpY29uOls1MTIsNTEyLFtdLCJmMmQ1IiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnptNDguMiAzMjYuMWwtMTgxIDAgODQuNy0xNTYuMSAxODEgMC04NC43IDE1Ni4xeiJdfSxYcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdlYi1hd2Vzb21lLXN0cm9rZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTY4NCIsIk02NCA2NEM0Ni4zIDY0IDMyIDc4LjMgMzIgOTZsMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMNjQgNjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMzUgODEuNmw1MyA0Ni40IDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRjLTEyLjktLjQtMjMuMi0xMS0yMy4yLTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNCAyMTMuMSAxNzcuNmMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjYgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42eiJdfSxLcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltZW8tdiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3ZCIsIk00NDcuOCAxNTMuNmMtMiA0My42LTMyLjQgMTAzLjMtOTEuNCAxNzkuMS02MC45IDc5LjItMTEyLjQgMTE4LjgtMTU0LjYgMTE4LjgtMjYuMSAwLTQ4LjItMjQuMS02Ni4zLTcyLjMtMzUuMi0xMjkuMi01MC4yLTIwNC45LTc5LjMtMjA0LjktMy40IDAtMTUuMSA3LjEtMzUuMiAyMS4xTDAgMTY4LjJjNTEuNi00NS4zIDEwMC45LTk1LjcgMTMxLjgtOTguNSAzNC45LTMuNCA1Ni4zIDIwLjUgNjQuNCA3MS41IDI4LjcgMTgxLjUgNDEuNCAyMDguOSA5My42IDEyNi43IDE4LjctMjkuNiAyOC44LTUyLjEgMzAuMi02Ny42IDQuOC00NS45LTM1LjgtNDIuOC02My4zLTMxIDIyLTcyLjEgNjQuMS0xMDcuMSAxMjYuMi0xMDUuMSA0NS44IDEuMiA2Ny41IDMxLjEgNjQuOSA4OS40eiJdfSxRcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyYXZhIixpY29uOlszODQsNTEyLFtdLCJmNDI4IiwiTTE1OC40IDBMNyAyOTIgOTYuMiAyOTIgMTU4LjQgMTc1LjkgMjIwLjEgMjkyIDMwOC42IDI5MiAxNTguNCAwek0zMDguNiAyOTJsLTQzLjkgODguMi00NC42LTg4LjItNjcuNiAwIDExMi4yIDIyMCAxMTEuNS0yMjAtNjcuNiAweiJdfSxKcGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pcmVnaXN0cnkiLGljb246WzM4NCw1MTIsW10sImY0MDQiLCJNMTkyIDQ4MGMzOS41IDAgNzYuMi0xMS44IDEwNi44LTMyLjJsLTIxMy41IDBDMTE1LjggNDY4LjIgMTUyLjUgNDgwIDE5MiA0ODB6TTEwMi45IDI4Ni45bDAtMTIuNC0xMDIuOSAwIDAgMTIuNGMwIDIuNSAwIDUgLjEgNy40bDEwMy4xIDBjLS4yLTIuNC0uMy00LjktLjMtNy40em0yMC41IDU3bC0xMTQuOSAwYzIuNiA4LjUgNS44IDE2LjggOS42IDI0LjhsMTM4LjMgMGMtMTIuOS01LjctMjQuMS0xNC4yLTMzLTI0Ljh6bS0xNy43LTM0LjdsLTEwNC40IDBjLjkgNy42IDIuMiAxNSAzLjkgMjIuM2wxMDkuNyAwYy00LTYuOS03LjItMTQuNC05LjItMjIuM3ptLTIuOC02OS4zbC0xMDIuOSAwIDAgMTcuMyAxMDIuOSAwIDAtMTcuM3ptMC0xNzMuMmwtMTAyLjkgMCAwIDQuOSAxMDIuOSAwIDAtNC45em0wLTM0LjdsLTEwMi45IDAgMCAyLjUgMTAyLjkgMCAwLTIuNXptMCA2OS4zbC0xMDIuOSAwIDAgNy40IDEwMi45IDAgMC03LjR6bTAgMTA0bC0xMDIuOSAwIDAgMTQuOCAxMDIuOSAwIDAtMTQuOHptMC02OS4zbC0xMDIuOSAwIDAgOS45IDEwMi45IDAgMC05Ljl6bTAgMzQuNmwtMTAyLjkgMCAwIDEyLjQgMTAyLjkgMCAwLTEyLjR6TTI2OS4xIDMzMS41bDEwOS43IDBjMS44LTcuMyAzLjEtMTQuNyAzLjktMjIuM2wtMTA0LjQgMGMtMi4xIDcuOS01LjIgMTUuNC05LjIgMjIuM3ptMTItMTg1LjdsMTAyLjkgMCAwLTkuOC0xMDIuOSAwIDAgOS44em0wIDM3LjJsMTAyLjkgMCAwLTEyLjQtMTAyLjkgMCAwIDEyLjR6bTAtNzQuM2wxMDIuOSAwIDAtNy40LTEwMi45IDAgMCA3LjR6bTAtNzYuN2wwIDIuNSAxMDIuOSAwIDAtMi41LTEwMi45IDB6TTc4LjEgNDQyLjlsMjI3LjcgMGMxMS44LTguNyAyMi43LTE4LjYgMzIuMi0yOS43bC0yOTMuMSAwYzkuNiAxMSAyMS40IDIxIDMzLjIgMjkuN3ptMjAzLTM3MS4zbDEwMi45IDAgMC00LjktMTAyLjkgMCAwIDQuOXptMCAxNDguNWwxMDIuOSAwIDAtMTQuOC0xMDIuOSAwIDAgMTQuOHpNMzguOCA0MDUuN2wzMDUuMyAwYzYuNy04LjUgMTIuNi0xNy42IDE3LjgtMjcuMkwyMyAzNzguNWM1LjIgOS42IDkuMiAxOC43IDE1LjggMjcuMnptMTg4LjgtMzcuMWwxMzkuNCAwYzMuNy04IDUuOC0xNi4yIDguNS0yNC44bC0xMTUgMGMtOC44IDEwLjctMjAuMSAxOS4yLTMyLjkgMjQuOHptNTMuNS04MS43YzAgMi41LS4xIDUtLjQgNy40bDEwMy4xIDBjLjEtMi41IC4yLTQuOSAuMi03LjRsMC0xMi40LTEwMi45IDAgMCAxMi40em0wLTI5LjdsMTAyLjkgMCAwLTE3LjMtMTAyLjkgMCAwIDE3LjN6Il19LGVoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1kaW5lcnMtY2x1YiIsaWNvbjpbNTc2LDUxMixbXSwiZjI0YyIsIk0yMzkuNyA3OS45YTE3NS44IDE3NS44IDAgMSAwIDAgMzUxLjYgMTc1LjggMTc1LjggMCAxIDAgMC0zNTEuNnpNMTk5LjggMzU5LjVjLTQxLjctMTUuOS03MS40LTU2LjQtNzEuNC0xMDMuOHMyOS43LTg3LjkgNzEuNC0xMDQuMWwwIDIwNy45em03OS44IC4zbDAtMjA4LjJjNDEuNyAxNi4yIDcxLjQgNTYuNyA3MS40IDEwNC4xcy0yOS43IDg3LjktNzEuNCAxMDQuMXpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTMyOS43IDQ0OGwtOTAuMyAwQzEzMy4yIDQ0OCA0NS42IDM2Mi41IDQ1LjYgMjU3LjggNDUuNiAxNDMuMiAxMzMuMiA2NCAyMzkuNCA2NGw5MC4zIDBjMTA1IDAgMjAwLjcgNzkuMiAyMDAuNyAxOTMuOCAwIDEwNC43LTk1LjcgMTkwLjItMjAwLjcgMTkwLjJ6Il19LHRoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrdWJlcm5ldGVzIixpY29uOls1MTIsNTEyLFtdLCJlODU3IiwiTTI1NiAzMTYuMWMzLjUtLjEgNy4yIDIgOC45IDUuMUwyOTMgMzcxLjdjLTMuNiAxLjItNy4zIDIuMy0xMS4yIDMuMS0yMS40IDQuOS00Mi43IDMuNC02Mi0zLjJsMjcuOS01MC40YzEuNy0zLjEgNC45LTUgOC4yLTUuMXptNTAuNS0yMy40bDU3LjIgOS43Yy04LjQgMjMuNS0yNC40IDQzLjktNDUuOCA1Ny41bC0yMi4yLTUzLjZjLTItNC43IC4xLTEwLjQgNC44LTEyLjYgMS45LS45IDQuMS0xLjMgNi0uOXptLTg5LjEgNy43Yy41IDIuMSAuMyA0LjItLjUgNmwtMjEuOCA1My4zYy0yMC41LTEzLjItMzYuOS0zMi45LTQ1LjctNTcuMWw1Ni43LTkuNmM1LjEtLjkgMTAuMSAyLjQgMTEuMyA3LjV6bTU4LjgtNDFsLTMuOSAxNy4xLTE1LjggNy42LTE1LjktNy43LTQtMTcuMSAxMS0xMy43IDE3LjcgMCAxMSAxMy43em0tNzMuNy0xNi43YzMuOSAzLjQgNC40IDkuNSAxLjIgMTMuNi0xLjMgMS43LTMuMSAyLjgtNSAzLjNsLTU1LjMgMTYuMmMtMi44LTI1LjcgMy4zLTUwLjcgMTYuMS03MS42bDQzLjEgMzguNnptMTUwLjctMzguNWM2LjQgMTAuNCAxMS4yIDIyIDE0LjEgMzQuNiAyLjkgMTIuNCAzLjYgMjQuOCAyLjQgMzYuOGwtNTUuNi0xNmMtNS0xLjQtOC4xLTYuNy02LjktMTEuNyAuNS0yLjEgMS42LTMuOCAzLjEtNS4xbDQyLjktMzguNXptLTExMy44IDQuNGMtLjIgNS4yLTQuNyA5LjQtOS45IDkuNC0yLjEgMC00LjEtLjctNS43LTEuOGwtNDcuMy0zMy40YzE0LjUtMTQuMyAzMy4xLTI0LjggNTQuNS0yOS43IDMuOS0uOSA3LjgtMS42IDExLjctMmwtMy4zIDU3LjZ6bTMwLjgtNTcuNmMyNSAzLjEgNDguMSAxNC40IDY1LjggMzEuN2wtNDcuMSAzMy4yYy00LjIgMy0xMCAyLjMtMTMuMy0xLjgtMS4zLTEuNy0yLTMuNi0yLjEtNS42bC0zLjMtNTcuNXpNMjU0LjUtMS4zYzUuOS0uMyAxMS43IC45IDE3IDMuNEw0NTUgODkuN2M0LjcgMi4zIDguOSA1LjYgMTIuMiA5LjdzNS42IDguOCA2LjggMTMuOWw0NS4zIDE5Ni45YzEuMiA1LjEgMS4yIDEwLjQgMCAxNS41cy0zLjUgOS45LTYuOCAxMy45TDM4NS42IDQ5Ny42Yy0zLjMgNC4xLTcuNSA3LjQtMTIuMiA5LjZzLTEwIDMuNC0xNS4yIDMuNGwtMjAzLjYgMGMtNS4zIDAtMTAuNS0xLjItMTUuMi0zLjRzLTguOS01LjUtMTIuMi05LjZMLjIgMzM5LjdjLS43LS45LTEuNC0xLjgtMi0yLjgtMi42LTMuOS00LjMtOC4zLTUuMS0xMi45cy0uNy05LjMgLjMtMTMuOEwzOC43IDExMy40YzEuMi01LjEgMy41LTkuOSA2LjgtMTMuOXM3LjUtNy40IDEyLjItOS43TDI0MS4xIDIuMWM0LjItMiA4LjgtMy4yIDEzLjQtMy40em0xLjggNjdjLTYuMSAwLTExIDUuNS0xMSAxMi4yIDAgLjEgMCAuMiAwIC4zIDAgLjktLjEgMiAwIDIuOCAuMSAzLjkgMSA2LjkgMS41IDEwLjQgLjkgNy43IDEuNyAxNCAxLjIgMTkuOS0uNSAyLjItMi4xIDQuMy0zLjYgNS43bC0uMiA0LjZjLTYuNiAuNS0xMy4yIDEuNi0xOS44IDMuMS0yOC41IDYuNS01My4xIDIxLjEtNzEuOCA0MS0xLjItLjgtMy4zLTIuMy00LTIuOC0yIC4zLTQgLjktNi41LS42LTQuOS0zLjMtOS40LTcuOS0xNC44LTEzLjQtMi41LTIuNi00LjMtNS4xLTcuMi03LjctLjctLjYtMS43LTEuNC0yLjQtMi0yLjMtMS44LTUtMi44LTcuNy0yLjktMy40LS4xLTYuNiAxLjItOC44IDMuOS0zLjggNC43LTIuNSAxMiAyLjcgMTYuMiAuMSAwIC4xIC4xIC4yIC4xIC43IC42IDEuNiAxLjMgMi4zIDEuOCAzLjEgMi4zIDYgMy41IDkuMSA1LjMgNi42IDQuMSAxMiA3LjQgMTYuMyAxMS41IDEuNyAxLjggMiA0LjkgMi4yIDYuM2wzLjUgMy4yYy0xOC44IDI4LjQtMjcuNiA2My40LTIyLjQgOTkuMWwtNC42IDEuM2MtMS4yIDEuNi0yLjkgNC00LjcgNC43LTUuNiAxLjgtMTIgMi40LTE5LjcgMy4zLTMuNiAuMy02LjcgLjEtMTAuNSAuOC0uOCAuMi0yIC40LTIuOSAuN2wtLjEgMC0uMiAuMWMtNi41IDEuNi0xMC43IDcuNS05LjMgMTMuNCAxLjMgNS45IDcuNyA5LjQgMTQuMiA4bC4yIDBjLjEgMCAuMS0uMSAuMi0uMSAuOS0uMiAyLjEtLjQgMi44LS42IDMuOC0xIDYuNS0yLjUgOS44LTMuOCA3LjMtMi42IDEzLjMtNC44IDE5LjItNS42IDIuNC0uMiA1IDEuNSA2LjMgMi4ybDQuOC0uOGMxMSAzNC4xIDM0LjEgNjEuNyA2My4zIDc5LjFsLTIgNC44Yy43IDEuOSAxLjUgNC40IDEgNi4yLTIuMSA1LjUtNS44IDExLjQtOS45IDE3LjktMiAzLTQuMSA1LjMtNS45IDguOC0uNCAuOC0xIDIuMS0xLjQgMy0yLjggNi0uOCAxMyA0LjcgMTUuNiA1LjUgMi42IDEyLjItLjEgMTUuMi02LjJsMCAwYy40LS45IDEtMiAxLjQtMi44IDEuNi0zLjYgMi4xLTYuNiAzLjItMTAuMSAyLjktNy4zIDQuNS0xNC45IDguNS0xOS43IDEuMS0xLjMgMi45LTEuOCA0LjgtMi4zbDIuNS00LjVjMjUuNSA5LjggNTQgMTIuNCA4Mi41IDUuOSA2LjUtMS41IDEyLjgtMy40IDE4LjgtNS43IC43IDEuMiAyIDMuNiAyLjMgNC4yIDEuOSAuNiAzLjkgLjkgNS42IDMuNCAzIDUuMSA1IDExLjIgNy41IDE4LjUgMS4xIDMuNCAxLjYgNi41IDMuMiAxMC4xIC40IC44IDEgMiAxLjQgMi44IDIuOSA2LjEgOS43IDguOCAxNS4yIDYuMiA1LjQtMi42IDcuNS05LjYgNC43LTE1LjYtLjQtLjktMS0yLjEtMS40LTMtMS44LTMuNC0zLjktNS43LTUuOS04LjctNC4yLTYuNS03LjYtMTEuOS05LjgtMTcuNC0uOS0yLjggLjItNC42IC44LTYuNS0uNC0uNS0xLjMtMy4yLTEuOC00LjQgMzAuNC0xNy45IDUyLjgtNDYuNiA2My4zLTc5LjYgMS40IC4yIDMuOSAuNyA0LjcgLjggMS43LTEuMSAzLjItMi41IDYuMi0yLjMgNS45IC44IDExLjkgMyAxOS4yIDUuNiAzLjQgMS4zIDYuMSAyLjggOS44IDMuOCAuOCAuMiAxLjkgLjQgMi44IC42IC4xIDAgLjEgMCAuMiAuMWwuMiAwYzYuNSAxLjQgMTIuOC0yLjIgMTQuMi04cy0yLjgtMTEuOC05LjMtMTMuNGMtLjktLjItMi4zLS42LTMuMi0uNy0zLjgtLjctNi45LS41LTEwLjUtLjgtNy43LS44LTE0LTEuNC0xOS43LTMuMi0yLjMtLjktNC0zLjctNC44LTQuOGwtNC40LTEuM2MyLjMtMTYuNiAxLjctMzMuOS0yLjMtNTEuMy00LTE3LjUtMTEuMS0zMy41LTIwLjYtNDcuNiAxLjEtMSAzLjMtMi45IDMuOS0zLjUgLjItMiAwLTQgMi4xLTYuMiA0LjMtNC4xIDkuOC03LjQgMTYuMy0xMS41IDMuMS0xLjggNi0zIDkuMS01LjMgLjctLjUgMS43LTEuMyAyLjQtMS45IDUuMy00LjIgNi41LTExLjQgMi43LTE2LjJzLTExLjEtNS4yLTE2LjQtMWMtLjcgLjYtMS44IDEuNC0yLjQgMi0yLjkgMi41LTQuOCA1LTcuMiA3LjctNS40IDUuNS05LjkgMTAuMS0xNC44IDEzLjQtMi4xIDEuMi01LjMgLjgtNi43IC43bC00LjIgM2MtMjMuOC0yNS01Ni4yLTQxLTkxLjItNDQuMS0uMS0xLjUtLjItNC4xLS4yLTQuOS0xLjQtMS40LTMuMi0yLjUtMy42LTUuNS0uNS01LjkgLjMtMTIuMyAxLjMtMTkuOSAuNS0zLjYgMS40LTYuNiAxLjUtMTAuNCAwLS45IDAtMi4yIDAtMy4xIDAtNi43LTQuOS0xMi4yLTExLTEyLjJ6Il19LGFoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaW50ZXJlc3QiLGljb246WzUxMiw1MTIsW10sImYwZDIiLCJNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDgtMjUuNiAwLTUwLjItMy45LTczLjQtMTEuMSAxMC4xLTE2LjUgMjUuMi00My41IDMwLjgtNjUgMy0xMS42IDE1LjQtNTkgMTUuNC01OSA4LjEgMTUuNCAzMS43IDI4LjUgNTYuOCAyOC41IDc0LjggMCAxMjguNy02OC44IDEyOC43LTE1NC4zIDAtODEuOS02Ni45LTE0My4yLTE1Mi45LTE0My4yLTEwNyAwLTE2My45IDcxLjgtMTYzLjkgMTUwLjEgMCAzNi40IDE5LjQgODEuNyA1MC4zIDk2LjEgNC43IDIuMiA3LjIgMS4yIDguMy0zLjMgLjgtMy40IDUtMjAuMyA2LjktMjguMSAuNi0yLjUgLjMtNC43LTEuNy03LjEtMTAuMS0xMi41LTE4LjMtMzUuMy0xOC4zLTU2LjYgMC01NC43IDQxLjQtMTA3LjYgMTEyLTEwNy42IDYwLjkgMCAxMDMuNiA0MS41IDEwMy42IDEwMC45IDAgNjcuMS0zMy45IDExMy42LTc4IDExMy42LTI0LjMgMC00Mi42LTIwLjEtMzYuNy00NC44IDctMjkuNSAyMC41LTYxLjMgMjAuNS04Mi42IDAtMTktMTAuMi0zNC45LTMxLjQtMzQuOS0yNC45IDAtNDQuOSAyNS43LTQ0LjkgNjAuMiAwIDIyIDcuNCAzNi44IDcuNCAzNi44cy0yNC41IDEwMy44LTI5IDEyMy4yQzE2MS41IDQzNy4yIDE2My41IDQ2Ny40IDE2NS42IDQ4NyA3My40IDQ1MC45IDggMzYxLjEgOCAyNTYgOCAxMTkgMTE5IDggMjU2IDhTNTA0IDExOSA1MDQgMjU2eiJdfSxpaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWxnb2xpYSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YyIsIk0yNTYgMGMtMTM5LjkgMC0yNTQgMTEyLjctMjU2IDI1Mi4xLTIgMTQxLjUgMTEyLjkgMjU4LjcgMjU0LjUgMjU5LjUgNDMuNyAuMyA4NS45LTEwLjQgMTIzLjMtMzAuNyAzLjYtMiA0LjItNyAxLjEtOS43bC0yNC0yMS4yYy00LjktNC4zLTExLjgtNS41LTE3LjgtMy0yNi4xIDExLjEtNTQuNSAxNi44LTgzLjcgMTYuNC0xMTQuNC0xLjUtMjA2LjktOTYuNi0yMDUuMS0yMTEgMS44LTExMi45IDk0LjMtMjA0LjIgMjA3LjctMjA0LjJsMjA3LjcgMCAwIDM2OS0xMTcuOC0xMDQuN2MtMy44LTMuNC05LjctMi43LTEyLjcgMS4zLTE4LjkgMjUtNDkuNyA0MC42LTgzLjkgMzguMi00Ny41LTMuMy04NS45LTQxLjUtODkuNS04OC45LTQuMi01Ni42IDQwLjYtMTAzLjkgOTYuMy0xMDMuOSA1MC40IDAgOTEuOSAzOC44IDk2LjIgODggLjQgNC40IDIuNCA4LjUgNS43IDExLjRsMzAuNyAyNy4yYzMuNSAzLjEgOSAxLjIgOS45LTMuNCAyLjItMTEuOCAzLTI0LjIgMi4xLTM2LjgtNC45LTcyLTYzLjMtMTMwLTEzNS40LTEzNC40LTgyLjctNS4xLTE1MS44IDU5LjUtMTU0IDE0MC42LTIuMSA3OC45IDYyLjYgMTQ3IDE0MS42IDE0OC43IDMzIC43IDYzLjYtOS42IDg4LjMtMjcuNkw0OTUgNTA5LjRjNi42IDUuOCAxNyAxLjIgMTctNy43bDAtNDkyYzAtNS40LTQuNC05LjctOS43LTkuN0wyNTYgMHoiXX0scmhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0YWNrcGF0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjg0MiIsIk0yNDQuNiAyMzIuNGMwIDguNS00LjMgMjAuNS0yMS4zIDIwLjVsLTE5LjYgMCAwLTQxLjUgMTkuNiAwYzE3LjEgMCAyMS4zIDEyLjQgMjEuMyAyMXpNNDQ4IDMybDAgNDQ4LTQ0OCAwIDAtNDQ4IDQ0OCAwek0xNTEuMyAyODcuOGMwLTIxLjItMTIuMS0zNC41LTQ2LjctNDQuOC0yMC42LTcuNC0yNi0xMC45LTI2LTE4LjZzNy0xNC42IDIwLjQtMTQuNmMxNC4xIDAgMjAuOCA4LjQgMjAuOCAxOC40bDMwLjcgMCAuMi0uNmMuNS0xOS42LTE1LjEtNDEuNi01MS4xLTQxLjYtMjMuNCAwLTUyLjYgMTAuOC01Mi42IDM4LjMgMCAxOS40IDkuMiAzMS4zIDUwLjcgNDQuNCAxNy4zIDYuMiAyMS45IDEwLjQgMjEuOSAxOS41IDAgMTUuMi0xOS4xIDE0LjItMTkuNSAxNC4yLTIwLjQgMC0yNS43LTkuMS0yNS43LTIxLjlsLTMwLjggMC0uMiAuNmMtLjcgMzEuMyAyOC40IDQ1LjIgNTYuNiA0NS4yIDMwIDAgNTEuMS0xMy42IDUxLjEtMzguM3ptMTI1LjQtNTUuNmMwLTI1LjMtMTguNC00NS41LTUzLjQtNDUuNWwtNTEuOCAwIDAgMTM4LjIgMzIuMiAwIDAtNDcuNCAxOS42IDBjMzAuMyAwIDUzLjQtMTYgNTMuNC00NS40ek0yOTcuOSAzMjVsNDkuMS0xMzguMi0zMS4xIDAtNDcuOSAxMzguMiAyOS45IDB6TTQwNC41IDE4Ni44bC0zMS4xIDAtNDcuOSAxMzguMiAyOS45IDAgNDkuMS0xMzguMnoiXX0sc2hlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9jdG9wdXMtZGVwbG95IixpY29uOls1MTIsNTEyLFtdLCJlMDgyIiwiTTQ1NS43IDM0OS4yYy00NS45LTM5LjEtMzYuNy03Ny45LTE2LjEtMTI4LjEgMzUuNy04Ny0yMy41LTE4Ni45LTEwOS42LTIxMi44LTkyLjktMjcuOS0xOTUuNyAxNi0yMzAuMyAxMDguOC04LjcgMjMuNS0xMi41IDQ4LjUtMTEgNzMuNSAxLjcgMjkuNSAxNC43IDUzIDI0LjEgODAuMyAxNy4yIDUwLjItMjguMSA5Mi43LTY2LjcgMTE3LjYtNDYuOCAzMC4yLTM2LjMgMzkuOS04LjQgNDEuOSAyMy40IDEuNyA0NC41LTQuNSA2NS4zLTE1IDkuMi00LjYgNDAuNy0xOC45IDQ1LjEtMjguNi0xMi4yIDI2LjYtMzcgNzIuNy0yMS41IDEwMi4xIDE5LjEgMzYuMiA2Ny4xLTMxLjggNzYuNy00NS44IDguNi0xMi42IDQzLTgxLjMgNjMuNi00Ni45IDE4LjkgMzEuNCA4LjYgNzYuNCAzNS43IDEwNC42IDMyLjkgMzQuMiA1MS4yLTE4LjMgNTEuNC00NC4yIC4yLTE2LjQtNi4xLTk1LjkgMjkuOS01OS45IDIxLjQgMjEuNCA1Mi45IDcxLjIgODguNiA2NyAzOC43LTQuNS0yMi4xLTY4LTI4LjMtNzguNyA1LjQgNC4zIDUzLjcgMzQuMSA1My44IDkuNSAuMS0xOC44LTMwLjEtMzQuNy00Mi41LTQ1LjN6Il19LG5oZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YW1tZXIiLGljb246WzUxMiw1MTIsW10sImY4NDAiLCJNNTAwLjcgMTU5LjVjLS40LTEuOC0xLjItMy40LTIuMy00LjhzLTIuNS0yLjYtNC4xLTMuNWMtMy4xLTEuNi02LjctMi0xMC4xLTEuMWwtMjYuNCA2LjYgMC0uMi0yMi4zIDUuOC0xLjIgLjMtLjYtMi4yYy0xNS41LTU4LjMtNDUtMTExLjktODYuMS0xNTYuMi0yLjYtMi43LTYuMS00LjItOS44LTQuM3MtNy4zIDEuMy0xMCAzLjhsLTEwMi45IDEwMi43LTE5OS45IDBjLTYuNiAwLTEyLjkgMi42LTE3LjYgNy4zUzAgMTI0LjggMCAxMzEuNGwwIDI0OUMwIDM4NyAyLjYgMzkzLjMgNy4zIDM5OHMxMSA3LjMgMTcuNiA3LjNMMjI1IDQwNS4zIDMyOC4xIDUwOGMyLjYgMi42IDYgNCA5LjcgNHM3LjEtMS40IDkuNy00Yy4xLS4xIC4yLS4zIC40LS40IDI5LjMtMzEuNSA1Mi44LTY3LjggNjkuNi0xMDcuNCA2LjktMTYuNSAxMi43LTMzLjUgMTcuMy01MC44bDAgMCAyMC40IDUuMyAwLS4xIDI4LjMgNy4zYy45IC4yIDEuNyAuNCAyLjYgLjUgMS40IC4yIDIuOCAuMiA0LjEtLjEgMi41LS41IDQuOC0xLjcgNi43LTMuNHMzLjItNCAzLjgtNi41YzE1LjItNjMuNCAxNS4yLTEyOS42IC4xLTE5M2wwIDB6TTMzNy4xIDI0LjdsMCAwIDAgMCAwIDB6TTIyNi45IDE4OS44bC01Mi42IDkxLjNjLTEgMS43LTEuNSAzLjctMS41IDUuN2wwIDQ2LjJjMCA1LjgtMi4zIDExLjQtNi41IDE1LjZzLTkuNyA2LjQtMTUuNiA2LjRsLTMuNCAwYy01LjggMC0xMS40LTIuMy0xNS42LTYuNHMtNi41LTkuNy02LjUtMTUuNmwwLTQ1LjdjMC0xLjktLjUtMy44LTEuNC01LjVMNzIuMyAxODkuNmMtMS45LTMuNC0yLjgtNy4xLTIuOC0xMXMxLjEtNy42IDMtMTAuOSA0LjctNi4xIDguMS04IDcuMS0yLjkgMTEtMi45bDMuMyAwYzQgMCA4IDEuMSAxMS41IDMuMnM2LjMgNS4xIDguMSA4LjdsMzYuNCA3MC4zIDM3LjUtNzAuNWMxLjgtMy41IDQuNi02LjQgNy45LTguNHM3LjItMy4yIDExLjEtMy4yIDcuOCAuOSAxMS4yIDIuOCA2LjMgNC43IDguMiA4LjFjMiAzLjMgMyA3LjEgMyAxMXMtMSA3LjctMyAxMWwwIDB6TTMzNy4xIDI0LjdjMzUuOSA0MC42IDYxLjkgODkgNzUuOCAxNDEuM2wuNiAyLTExNC4xIDI5LjYgMC02Ni4xYzAtNi42LTIuNy0xMi45LTcuMy0xNy42cy0xMS03LjMtMTcuNi03LjNsLTE5LjQgMCA4Mi4xLTgxLjh6TTM5Ny42IDM5MmwwIDAgMCAwYy0xNC43IDM0LjgtMzUuMSA2Ny02MC4yIDk1LjJsLTgyLjItODEuOSAxOS4yIDBjNi42IDAgMTIuOS0yLjYgMTcuNi03LjNzNy4zLTExIDcuMy0xNy42bDAtNjYuMiAxMTQuNiAyOS45Yy00LjQgMTYuMy05LjggMzIuMy0xNi4zIDQ3LjlsMCAwem04NC01Mi40bDAgMC01MC42LTEzLjEtMTMxLjctMzQuMyAwLTcyLjUgMTE5LjctMzEgNC41LTEuMmMyOS45LTcuNyA0OS4yLTEyLjggNTguMS0xNS4xIDEyIDU1LjEgMTIgMTEyLjEgMCAxNjcuMnoiXX0sb2hlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1vZHgiLGljb246WzQ0OCw1MTIsW10sImYyODUiLCJNMzU2IDI0MS44bDM2LjcgMjMuNyAwIDIxNC41LTEzMy04My44IDk2LjMtMTU0LjR6TTQ0MCA3NWwtMjEzLjcgMC0yMyAzNy44IDE1My41IDk2LjUgODMuMi0xMzQuM3pNMzUxIDIxNy44bC0yOTUuOC0xODUuOCAwIDIxNC41IDQ2IDI5IDI0OS44LTU3Ljd6TTk3IDI5NC4yTDggNDM3IDIyMS43IDQzNyAzNDYuNyAyMzYuNSA5NyAyOTQuMnoiXX0sbGhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS10aHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJlNjE5IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTI5NC4yIDI0NC4zYzE5LjUgOS4zIDMzLjcgMjMuNSA0MS4yIDQwLjkgMTAuNCAyNC4zIDExLjQgNjMuOS0yMC4yIDk1LjQtMjQuMiAyNC4xLTUzLjUgMzUtOTUuMSAzNS4zbC0uMiAwYy00Ni44LS4zLTgyLjgtMTYuMS0xMDYuOS00Ni44LTIxLjUtMjcuMy0zMi42LTY1LjQtMzMtMTEzLjFsMC0uMmMuNC00Ny43IDExLjUtODUuNyAzMy0xMTMuMSAyNC4yLTMwLjcgNjAuMi00Ni41IDEwNi45LTQ2LjhsLjIgMGM0Ni45IC4zIDgzLjMgMTYgMTA4LjIgNDYuNiAxMi4zIDE1LjEgMjEuMyAzMy4zIDI3IDU0LjRsLTI2LjkgNy4yYy00LjctMTcuMi0xMS45LTMxLjktMjEuNC00My42LTE5LjQtMjMuOS00OC43LTM2LjEtODctMzYuNC0zOCAuMy02Ni44IDEyLjUtODUuNSAzNi4yLTE3LjUgMjIuMy0yNi42IDU0LjQtMjYuOSA5NS41IC4zIDQxLjEgOS40IDczLjMgMjYuOSA5NS41IDE4LjcgMjMuOCA0Ny40IDM2IDg1LjUgMzYuMiAzNC4zLS4zIDU2LjktOC40IDc1LjgtMjcuMyAyMS41LTIxLjUgMjEuMS00Ny45IDE0LjItNjQtNC05LjQtMTEuNC0xNy4zLTIxLjMtMjMuMy0yLjQgMTgtNy45IDMyLjItMTYuNSA0My4yLTExLjQgMTQuNS0yNy43IDIyLjQtNDguNCAyMy41LTE1LjcgLjktMzAuOC0yLjktNDIuNi0xMC43LTEzLjktOS4yLTIyLTIzLjItMjIuOS0zOS41LTEuNy0zMi4yIDIzLjgtNTUuMyA2My41LTU3LjYgMTQuMS0uOCAyNy4zLS4yIDM5LjUgMS45LTEuNi05LjktNC45LTE3LjctOS44LTIzLjQtNi43LTcuOC0xNy4xLTExLjgtMzAuOC0xMS45bC0uNCAwYy0xMSAwLTI2IDMuMS0zNS42IDE3LjZsLTIzLTE1LjhjMTIuOC0xOS40IDMzLjYtMzAuMSA1OC41LTMwLjFsLjYgMGM0MS44IC4zIDY2LjYgMjYuMyA2OS4xIDcxLjggMS40IC42IDIuOCAxLjIgNC4yIDEuOWwuMSAuNXptLTcxLjggNjcuNWMxNy0uOSAzNi40LTcuNiAzOS43LTQ4LjgtOC44LTEuOS0xOC42LTIuOS0yOS0yLjktMy4yIDAtNi40IC4xLTkuNiAuMy0yOC42IDEuNi0zOC4xIDE1LjUtMzcuNCAyNy45IC45IDE2LjcgMTkgMjQuNSAzNi40IDIzLjZsLS4xLS4xeiJdfSxjaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2xkLXJlcHVibGljIixpY29uOls1MTIsNTEyLFtdLCJmNTEwIiwiTTI0My44IDEwLjJjNy41LS4zIDE1LS4zIDIyLjUtLjEgMy42IC4xIDcuMiAuNCAxMC44IC43IDQuOSAuMyA5LjggMSAxNC43IDEuNiAyLjkgLjQgNS44IDEgOC43IDEuNSA3LjkgMS4zIDE1LjcgMy4zIDIzLjQgNS40IDEyLjIgMy41IDI0LjIgNy45IDM1LjggMTMuMiAyNi42IDEyLjIgNTAuOSAyOS4yIDcxLjYgNDkuOSAyMCAyMC4xIDM2LjcgNDMuNSA0OC45IDY5LjIgMS4xIDIuNiAyLjQgNS4xIDMuNSA3LjcgMi44IDYuNCA1LjQgMTMgNy42IDE5LjYgNC4xIDEyLjMgNy4zIDI1IDkuNCAzNy44IC42IDMuMSAxIDYuMyAxLjQgOS41IC41IDMuOCAuOSA3LjcgMS4yIDExLjYgLjggOC4zIC44IDE2LjcgLjggMjUuMS0uMSA1LS4zIDkuOS0uNyAxNC45LS4yIDMuNC0uNSA2LjgtMSAxMC4xLS40IDIuNy0uNiA1LjUtMS4xIDguMi0uOSA1LjEtMS43IDEwLjMtMi45IDE1LjQtNC4xIDE4LjUtMTAuMyAzNi42LTE4LjUgNTMuNi0xNS44IDMyLjgtMzguOCA2Mi4yLTY3LjEgODUuMS0xNy4zIDE0LjEtMzYuNCAyNS45LTU2LjkgMzQuOS02LjIgMi43LTEyLjUgNS4zLTE4LjkgNy40LTMuNSAxLjItNyAyLjQtMTAuNiAzLjQtNi42IDEuOS0xMy4zIDMuNi0yMCA1LTQuNyAuOS05LjMgMS43LTE0IDIuNS01LjMgLjctMTAuNSAxLjQtMTUuOCAxLjctNi43IC43LTEzLjQgLjgtMjAuMSAuOC02LjggMC0xMy42LS4xLTIwLjQtLjgtMy4zLS4yLTYuNi0uNS05LjgtMS0yLjctLjQtNS41LS42LTguMi0xLjEtNC4xLS43LTguMi0xLjQtMTIuNC0yLjItNC4yLS45LTguNS0xLjktMTIuNy0zLTguNi0yLjItMTcuMS01LTI1LjQtOC4xLTEwLjUtNC4xLTIwLjgtOC43LTMwLjYtMTQuMi0yLjEtMS4yLTQuMy0yLjMtNi40LTMuNi0xMS4yLTYuNi0yMS45LTE0LjEtMzEuOS0yMi4zLTM0LjctMjguNC02MS40LTY2LjQtNzYuNC0xMDguNy0zLjEtOC43LTUuNy0xNy42LTcuOC0yNi43LTEuNS02LjItMi41LTEyLjQtMy42LTE4LjctLjQtMi4zLS42LTQuNy0xLTcuMS0uNi00LS44LTgtMS4yLTExLjktLjgtOS41LS43LTE5LS41LTI4LjUgLjEtMy41IC4zLTcgLjctMTAuNSAuMy0zLjIgLjUtNi40IC45LTkuNSAuNC0yLjggLjctNS42IDEuMi04LjQgLjctMy45IDEuMy03LjkgMi4xLTExLjggMy40LTE2LjUgOC41LTMyLjcgMTUuMy00OC4yIDEuMi0yLjkgMi42LTUuNyAzLjktOC42IDguMS0xNi43IDE3LjktMzIuNiAyOS41LTQ3LjEgMjAtMjUuNCA0NS4xLTQ2LjcgNzMuMy02Mi41IDcuNS00LjIgMTUuMi04IDIzLjEtMTEuNCAxNS44LTYuOSAzMi40LTEyIDQ5LjMtMTUuNCAzLjUtLjcgNy0xLjIgMTAuNi0xLjggMi42LS41IDUuMy0uNyA3LjktMS4xIDMuNS0uNSA3LjEtLjcgMTAuNi0xIDIuNS0uMiA0LjktLjQgNy40LS41em04LjYgMjQuNGMtOS4yIC4xLTE4LjQgMS0yNy42IDIuMi03LjMgMS4xLTE0LjUgMi42LTIxLjcgNC4zLTEzLjkgMy41LTI3LjUgOC4zLTQwLjUgMTQuNC0xMC41IDUtMjAuNiAxMC43LTMwLjIgMTcuMi00LjIgMi45LTguNCA1LjgtMTIuMyA5LTUuMSA0LTEwIDguMi0xNC43IDEyLjYtMi41IDIuMi00LjggNC43LTcuMiA3LjEtMjguMiAyOC44LTQ4LjQgNjUuNC01Ny41IDEwNC43LTIgOC40LTMuNSAxNy00LjQgMjUuNi0xLjEgOC45LTEuNCAxNy45LTEuNCAyNi44IC4xIDcuMSAuNCAxNC4zIDEuMiAyMS40IC42IDcuMSAxLjkgMTQuMiAzLjIgMjEuMiAxLjEgNC42IDIgOS4zIDMuMyAxMy45IDYuMyAyMy40IDE2LjUgNDUuNyAzMC4xIDY1LjggOC42IDEzIDE4LjggMjQuOSAzMCAzNS44IDE2LjMgMTUuOCAzNSAyOSA1NS4zIDM5LjIgNy4zIDMuNSAxNC43IDYuOSAyMi4zIDkuNiA1IDEuOCAxMC4xIDMuNiAxNS4yIDUgMTEuMyAzLjIgMjIuOCA1LjYgMzQuNCA3LjEgMi45IC4zIDUuOCAuNiA4LjcgLjkgMTMuOCAxLjEgMjcuNyAxIDQxLjUtLjQgNC40LS42IDguOS0xIDEzLjMtMS44IDMuNi0uNyA3LjMtMS4yIDEwLjktMi4xIDQuMS0xIDguMy0xLjkgMTIuNC0zLjEgMjYuNS03LjMgNTEuNi0xOS43IDczLjYtMzYuMiAxNS44LTExLjggMzAtMjUuOCA0Mi4xLTQxLjMgMy4zLTQgNi4yLTguMyA5LjEtMTIuNiAzLjQtNS4xIDYuNi0xMC4yIDkuNi0xNS41IDIuNC00LjQgNC43LTguOSA3LTEzLjQgNS43LTEyLjEgMTAuMy0yNC42IDEzLjgtMzcuNSAyLjYtMTAgNC43LTIwLjIgNS45LTMwLjQgMS44LTEzLjUgMS45LTI3LjEgMS4zLTQwLjctLjMtMy45LS43LTcuOC0xLTExLjctMi4yLTE5LjEtNi44LTM3LjktMTMuOC01NS44LTYtMTUuMS0xMy41LTI5LjYtMjIuNi00My4xLTEyLjctMTguOC0yOC4yLTM1LjctNDYtNDkuOC0yNS0yMC01NC41LTM0LjUtODUuNi00Mi4xLTcuOC0xLjktMTUuNy0zLjMtMjMuNi00LjQtMy45LS42LTcuOC0uOC0xMS44LTEuMi03LjQtLjYtMTQuOC0uNy0yMi4yLS42ek0xNDcuMyA4My41YzEzLjMtOC45IDI4LjEtMTUuNCA0My4zLTIwLjItMy4yIDEuOC02LjQgMy40LTkuNSA1LjMtMTEuMiA2LjctMjEuNSAxNC45LTMwLjQgMjQuNS02LjggNy40LTEyLjggMTUuNy0xNyAyNC45LTMuMyA2LjktNS42IDE0LjItNi45IDIxLjctLjkgNC44LTEuMyA5LjgtMS4yIDE0LjggLjEgMTMuNyA0LjQgMjcuMSAxMS4zIDM4LjggNS45IDEwLjIgMTMuNiAxOS4zIDIyLjQgMjcuMyA0LjkgNC40IDEwLjIgOC4xIDE1IDEyLjYgMi4zIDIuMiA0LjUgNC40IDYuNCA2LjkgMi42IDMuMyA0LjkgNyA2IDExLjEgLjkgMyAuNyA2LjIgLjcgOS4zIDAgNC4xIDAgOC4yIDAgMTIuMyAuMSAzLjUgMCA3LjEgLjEgMTAuNiAuMSAyLjQgMCA0LjggLjEgNy4xIC4yIDUuOCAuMSAxMS41IC4xIDE3LjMgLjEgMi45IDAgNS44IC4xIDguNyAwIDEuNiAuMSAzLjMgMCA0LjktLjkgLjEtMS44IC4yLTIuNyAuMi0xMSAwLTIxLjktMi42LTMyLTYuOS02LTIuNy0xMS44LTUuOS0xNy4xLTkuOC01LjgtNC4yLTExLjEtOS0xNS44LTE0LjMtNi41LTcuMi0xMi0xNS40LTE2LjYtMjMuOS0xLjEtMi0yLjItNC0zLjItNi4xLTEuMi0yLjYtMi42LTUuMS0zLjctNy44LTQtOS43LTYuNi0xOS45LTguMS0zMC4zLS41LTQuNC0xLjEtOC45LTEuMi0xMy4zLS43LTE1LjcgLjgtMzEuNiA0LjctNDYuOCAyLjEtOC4yIDQuOC0xNi4yIDguMy0yMy44IDYuMy0xNC4yIDE1LjMtMjcuMiAyNi4zLTM4LjIgNi4zLTYuMiAxMy4xLTExLjggMjAuNS0xNi43ek0zMjIuNyA2My40YzIuNyAuNyA1LjQgMS43IDguMSAyLjcgNi40IDIuMyAxMi43IDQuOCAxOC43IDggMTMuMSA2LjQgMjUuMyAxNC44IDM1LjggMjUgMTAuMiAxMCAxOC43IDIxLjYgMjUuMSAzNC4zIDEuMyAyLjcgMi42IDUuNSAzLjggOC4zIDYuMyAxNS4xIDEwIDMxLjMgMTEuMiA0Ny42IC40IDQuNSAuNCA5LjEgLjUgMTMuNiAuMSAxMS42LTEuNSAyMy4zLTQuMyAzNC41LTIgNy4zLTQuMyAxNC41LTcuOSAyMS4yLTMuMiA2LjYtNi43IDEzLjItMTAuOCAxOS4yLTYuOSAxMC41LTE1LjYgMTkuOS0yNS44IDI3LjItMTAuNSA3LjYtMjIuNiAxMy0zNS40IDE1LjQtMy41IC43LTcuMSAxLjEtMTAuNyAxLjItMS44IC4xLTMuNyAuMi01LjYtLjEtLjMtMi4xIDAtNC4zIDAtNi41IDAtMy43IC4xLTcuNCAuMS0xMS4yIC4yLTcgMC0xNC4xIC4yLTIxLjEgMC0yLjQgMC00LjggMC03LjEgLjItNS4xIDAtMTAuMSAuMS0xNS4yIC4xLTMtLjItNiAuNS05IC43LTIuNSAxLjgtNC45IDMuMS03LjEgNC41LTcuMyAxMS4xLTEzIDE3LjctMTguMyA1LjQtNC4yIDEwLjUtOC44IDE1LTEzLjggNy43LTguNCAxNC4yLTE3LjkgMTguOC0yOC4zIDIuNS01LjkgNC41LTEyLjEgNS41LTE4LjUgLjktNC40IDEuMS04LjggMS0xMy4zIDAtNy44LTEuNC0xNS42LTMuNi0yMy4yLTEuOC01LjctNC4zLTExLjItNy4xLTE2LjQtMy45LTYuOS04LjYtMTMuMy0xNC0xOS4yLTkuOS0xMC44LTIxLjgtMTkuOS0zNC42LTI3LjEtMS44LTEtMy44LTEuOC01LjYtM3pNMjIxLjkgMTIxLjljMS0xLjIgMi0yLjMgMy4xLTMuNC0uNiAuOS0xLjMgMS44LTIgMi43LTMuMSAzLjktNS41IDguMy03IDEzLjEtLjkgMy4zLTEuNyA2LjYtMS43IDEwLS4xIDIuNS0uMSA1LjEgLjMgNy42IDEuMSA3LjYgNC4zIDE0LjkgOC44IDIxLjEgMiAyLjcgNC4yIDUuMyA2LjkgNy4zIDEuNiAxLjMgMy41IDIuMSA1LjMgMyAzLjEgMS43IDYuMyAzLjIgOS4xIDUuNSAyLjcgMi4xIDQuNiA1LjMgNC40IDguOCAwIDczLjcgMCAxNDcuMyAwIDIyMSAwIDEuNC0uMSAyLjcgMCA0IC4xIDEuNSAuOCAyLjggMS41IDQuMSAuOSAxLjcgMS44IDMuMyAzLjIgNC42IC45IC44IDIgMS40IDMuMiAxLjIgMS41LS4yIDIuNy0xLjQgMy40LTIuNiAxLTEuNSAxLjctMy4yIDIuMy00LjkgLjgtMi4xIC40LTQuNCAuNS02LjYgLjEtNCAwLTguMSAuMS0xMi4xIDAtNS45IDAtMTEuOCAuMS0xNy43IC4xLTMuNiAwLTcuMiAuMS0xMC45IC4yLTQgMC04LjEgLjEtMTIuMSAwLTYgMC0xMiAuMS0xOCAuMS0zLjYgMC03LjIgLjEtMTAuOSAuMS0zLjkgMC03LjkgLjEtMTEuOCAwLTYgMC0xMiAuMS0xOCAuMi0zLjkgMC03LjkgLjItMTEuOCAuMyAxLjQgLjEgMi45IC4yIDQuNCAuMiAzLjYgLjQgNy4yIC44IDEwLjggLjMgMy40IC40IDYuOSAuOSAxMC4zIC40IDMuMSAuNSA2LjIgMSA5LjMgLjYgNC4xIC45IDguMiAxLjUgMTIuMyAxLjUgOSAyLjggMTguMSA1LjEgMjcgMS4xIDQuOCAyLjQgOS42IDQgMTQuMyAyLjUgNy45IDUuNyAxNS43IDEwLjMgMjIuNiAxLjcgMi42IDMuOSA1IDYuMSA3LjIgLjMgLjIgLjYgLjUgLjkgLjcgLjYgLjMgMS4zLS4xIDEuNy0uNiAuNy0uOSAxLjItMS45IDEuNy0yLjkgNC4xLTcuOCA4LjItMTUuNiAxMi4zLTIzLjMgLjctMS4zIDEuNC0yLjYgMi42LTMuNiAxLjgtMS42IDMuOC0yLjcgNi0zLjYgMi45LTEuMiA1LjktMi4yIDktMi40IDYuNi0uNiAxMy4xIC43IDE5LjYgMS44IDMuNyAuNiA3LjQgMS4yIDExLjEgMS40IDMuNyAuMSA3LjUgLjEgMTEuMi0uMyA4LjYtLjkgMTctMyAyNC45LTYuMiA1LjMtMi4yIDEwLjUtNC44IDE1LjMtNy45IDExLjUtNy4yIDIxLjUtMTYuNiAzMC0yNyAxLjItMS40IDIuMi0yLjkgMy41LTQuMy0xLjIgMy4yLTIuNyA2LjQtNC4yIDkuNS0xLjMgMi45LTIuOCA1LjYtNC4zIDguNC01LjIgOS42LTExIDE4LjktMTcuOCAyNy41LTQgNS4yLTguNSAxMC4xLTEzLjMgMTQuNi02LjYgNi4xLTE0LjEgMTEuNC0yMi40IDE0LjgtOC4yIDMuNC0xNy4zIDQuNi0yNi4xIDMuMy0zLjYtLjYtNy0xLjctMTAuNC0yLjktMi44LTEtNS40LTIuNC04LTMuNy0zLjQtMS43LTYuNi0zLjgtOS43LTYuMSAyLjcgMy4xIDUuNyA1LjkgOC43IDguNiA0LjMgMy44IDguNyA3LjMgMTMuNiAxMC4yIDQgMi41IDguMyA0LjQgMTIuOCA1LjUgMS41IC40IDMgLjUgNC41IC42LTEuMyAxLjEtMi42IDItNCAzLTkuNiA2LjUtMjAgMTEuOS0zMC43IDE2LjQtMjAuOSA4LjctNDMuMiAxNC02NS43IDE1LjMtNC43IC4yLTkuMyAuNC0xNCAuNC01LS4xLTEwLS4xLTE0LjktLjctMTEuMi0uOC0yMi4zLTIuNy0zMy4yLTUuNC0xMC40LTIuNy0yMC42LTYuMS0zMC4zLTEwLjYtOC43LTMuOS0xNy4xLTguNC0yNS0xMy44LTEuOC0xLjMtMy43LTIuNS01LjQtNC4xIDYuNi0xLjIgMTMtMy40IDE5LTYuNSA1LjctMi45IDExLTYuNyAxNS42LTExLjEgMi4yLTIuMiA0LjMtNC42IDYuMi03LjEtMy40IDIuMS02LjkgNC4yLTEwLjYgNS44LTQuNCAyLjItOS4xIDMuOC0xMy44IDUtNS43IDEuNS0xMS43IDEuNy0xNy42IDEuMS04LjEtMS0xNS45LTQuMy0yMi41LTktNC4zLTIuOS04LjItNi40LTEyLTEwLjEtOS45LTEwLjItMTguMi0yMS44LTI1LjctMzMuOS0zLjktNi4zLTcuNS0xMi43LTExLjEtMTkuMi0xLTItMi4xLTQuMS0zLjItNi4xIDIuOCAyLjkgNS42IDYgOC40IDguOSAxOS4yIDE5LjIgMzcuNiAzMi4zIDUzLjcgMzUuNSAzLjEgLjcgNi4zIC41IDkuNSAuOCAyLjggLjMgNS42IC4yIDguMyAuMyA1IC4xIDEwLjEgMCAxNS4yLS4yIDMuNi0uMiA3LjMtLjcgMTAuOS0xLjEgMi4xLS4yIDQuMS0uNyA2LjEtMS4yIDMuOS0xIDguMS0xIDExLjggLjYgNC44IDEuOCA4LjQgNS42IDExLjQgOS43IDIuMiAzIDQuMSA2LjIgNS43IDkuNiAxLjIgMi40IDIuNSA0LjggMy42IDcuMyAxIDIuMiAyLjIgNC40IDMuNCA2LjUgLjcgMSAxLjQgMi4yIDIuNiAyLjYgMS4xLS44IDEuNy0xLjkgMi4zLTMgMi4xLTQuMiAzLjQtOC42IDQuOS0xMyAyLTYuNiAzLjgtMTMuMyA1LjItMjAgMi4yLTkuMyAzLjItMTguNyA0LjUtMjguMSAuNi00IC44LTggMS4zLTEyIC45LTEwLjYgMS45LTIxLjMgMi4yLTMxLjkgLjEtMS45IC4yLTMuNyAuMy01LjYgMC00LjMgLjItOC43IC4yLTEzIDAtMi40IDAtNC44IDAtNy4xIDAtNS4xLS4yLTEwLjEtLjItMTUuMi0uMi02LjYtLjctMTMuMi0xLjMtMTkuOC0uNy01LjktMS41LTExLjgtMy4xLTE3LjUtMi03LjctNS42LTE1LTkuOC0yMS44LTMuMi01LjEtNi44LTkuOS0xMS4xLTE0LTMuOS0zLjktOC42LTcuMS0xMy45LTguNC0xLjUtLjQtMy4xLS40LTQuNi0uNiAuMS0zIC43LTUuOSAxLjMtOC44IDEuNi03LjcgMy44LTE1LjMgNi44LTIyLjYgMS41LTQgMy40LTcuOSA1LjQtMTEuNyAzLjQtNi42IDcuNi0xMi44IDEyLjUtMTguNXptMzEuMyAxLjdjLjQtLjEgLjctLjEgMS4xLS4yIC4yIDEuOCAuMSAzLjYgLjEgNS40bDAgMzguMWMwIDEuNyAuMSAzLjUtLjIgNS4yLS40IDAtLjcgMC0xLjEgMC0uOS0zLjgtMS43LTcuNi0yLjYtMTEuMy0uNC0xLjUtLjYtMy4xLTEuMS00LjYtMS43LS4yLTMuNC0uMi01LjItLjItNS4xIDAtMTAuMSAwLTE1LjIgMC0xLjcgMC0zLjMgLjEtNSAwIDAtLjQtLjMtLjkgLjItMS4yIDEuMy0uNyAyLjctLjkgNC4xLTEuNCAzLjQtMS4xIDYuOS0yLjIgMTAuMy0zLjMgMS40LS41IDIuOS0uNyA0LjItMS41IDAtLjYgMC0xLjEgMC0xLjctMS4yLS42LTIuNS0uOS0zLjgtMS4zLTMuMS0xLTYuMy0yLTkuNC0zLTEuOC0uNi0zLjctMS01LjQtMS44IDAtLjQtLjEtLjctLjEtMS4xIDUuMS0uMiAxMC4yIC4xIDE1LjMtLjEgMy40LS4xIDYuNyAuMSAxMC4xLS4xIC4xLS40IC4zLS44IC40LTEuMiAxLjEtNC45IDIuMy05LjggMy40LTE0Ljd6bTYtLjJjLjQgMCAuNyAuMSAxLjEgLjIgMSAzLjggMS43IDcuOCAyLjcgMTEuNiAuNCAxLjQgLjYgMi45IDEgNC4zIDIuNSAuMiA1LjEgMCA3LjYgMCA1LjIgLjEgMTAuMyAuMSAxNS41IC4xIC44IDAgMS41IDAgMi4zIC4xIDAgLjQtLjEgLjctLjEgMS4xLTEuOCAuOC0zLjggMS4yLTUuNyAxLjktMy43IDEuMi03LjUgMi40LTExLjIgMy42LS42IC4yLTEuMSAuNC0xLjcgLjYtLjIgLjYtLjIgMS4xLS4xIDEuNyAuOSAuNSAxLjggLjggMi44IDEuMSA0LjkgMS41IDkuNyAzLjEgMTQuNiA0LjYgLjQgLjEgLjggLjMgMS4xIC41IC40IC4zIC4yIC44IC4yIDEuMi0xLjcgLjEtMy4zIDAtNSAwLTUuMiAwLTEwLjMgMC0xNS41IDAtMS42IDAtMy4yIDAtNC44IC4yLS41IDEuNy0uNyAzLjQtMS4yIDUuMS0uOSAzLjYtMS41IDcuMi0yLjUgMTAuOC0uNCAwLS43IDAtMS4xIC4xLS4zLTEuNy0uMi0zLjUtLjItNS4ybDAtMzguMWMwLTEuOC0uMS0zLjYgLjEtNS40em0tMTg2IDQ1YzEuMS0yLjIgMi4xLTQuNCAzLjQtNi41LTEuOCA3LjYtMi45IDE1LjMtMy42IDIzLS44IDcuNy0uOCAxNS41LS41IDIzLjIgMS4xIDE5LjkgNS41IDM5LjggMTQuMiA1Ny45IDMgNiA2LjQgMTEuOCAxMC41IDE3LjEgNi4xIDcuNSAxMi41IDE0LjggMTkuOCAyMS4xIDQuOCA0LjEgMTAgNy44IDE1LjUgMTAuOCAzLjMgMS43IDYuNSAzLjQgOS45IDQuNyA1IDIgMTAuMiAzLjYgMTUuNCA0LjkgMy44IDEgNy44IDEuNCAxMS41IDIuNyA1IDEuNiA5LjUgNC42IDEzIDguNCA0LjkgNS4yIDguMSAxMS45IDEwLjIgMTguNyAxIDIuOSAxLjYgNS45IDIuMiA4LjkgLjIgLjggLjIgMS41IC4yIDIuMy02LjUgMi44LTEzLjMgNS4xLTIwLjMgNi4yLTQuMSAuOC04LjMgMS0xMi41IDEuMS0xMC4yIC4yLTIwLjUtMS44LTMwLjEtNS4xLTMuNy0xLjQtNy41LTIuOS0xMS00LjctOC4xLTMuOC0xNS42LTguNy0yMi41LTE0LjUtMi45LTIuNi01LjgtNS4xLTguNC04LTkuMi05LjgtMTYuMy0yMS40LTIxLjgtMzMuNy0yLjQtNS41LTQuNi0xMS4yLTYuNC0xNy0xLjItMy45LTIuNC03LjktMy4zLTExLjktLjctMi45LTEuMi01LjktMS45LTguOS0uNS0yLjEtLjctNC4zLTEtNi41LS44LTUuNC0xLjMtMTAuOS0xLjMtMTYuNCAuMS02LjIgLjItMTIuNCAxLjEtMTguNSAuNC0yLjkgLjctNS43IDEuMi04LjYgMS01LjcgMi4xLTExLjQgMy43LTE2LjkgMy4xLTExLjYgNy41LTIzIDEyLjctMzMuOHptMzYzLjctNi40YzEuMSAxLjcgMS45IDMuNSAyLjggNS4zIDIuMSA0LjUgNC4yIDguOSA2IDEzLjUgNy42IDE4LjggMTIuMyAzOC44IDEzIDU5IDAgMS44IC4xIDMuNSAuMSA1LjMgLjEgOS42LTEuMyAxOS4xLTMuMiAyOC41LS43IDMuNi0xLjUgNy4yLTIuNiAxMC43LTQgMTQuNy0xMCAyOS0xOC40IDQxLjgtOC4yIDEyLjYtMTkgMjMuNS0zMS44IDMxLjQtNS43IDMuNi0xMS44IDYuNi0xOCA5LjItNS44IDIuMi0xMS43IDQtMTcuOCA1LjEtNi40IDEtMTIuOSAxLjUtMTkuNCAxLjItNy45LS41LTE1LjgtMi4xLTIzLjItNC44LTEuOS0uOC0zLjktMS41LTUuOC0yLjMtLjItMS41IC4yLTMgLjUtNC41IDEuMi01LjcgMy0xMS40IDUuNy0xNi42IDIuNC00LjUgNS41LTguNyA5LjUtMTEuOSAyLjQtMi4xIDUuMi0zLjYgOC4yLTQuOCAzLjYtMS41IDcuNS0yIDExLjItMi44IDcuMi0xLjcgMTQuNC0zLjkgMjEuMi03IDEwLjMtNC43IDE5LjctMTEuNCAyNy42LTE5LjUgMS42LTEuNiAzLjItMy4yIDQuNy00LjkgMy40LTMuOCA2LjctNy42IDkuOC0xMS41IDcuNS0xMC4xIDEyLjgtMjEuNiAxNi43LTMzLjUgMS42LTUuMyAzLjItMTAuNiA0LjItMTYuMSAuNi0yLjkgMS01LjggMS41LTguNyAuOS02LjEgMS42LTEyLjIgMS43LTE4LjQgLjEtNi42IC4xLTEzLjMtLjUtMTkuOS0uNy04LTEuOS0xNi0zLjctMjMuOHoiXX0sZGhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1c2UiLGljb246WzY0MCw1MTIsW10sImY3ZDYiLCJNNjA0LjUgMjEwYTEwLjQgMTAuNCAwIDEgMSAtMTEuNC0xNy40IDEwLjQgMTAuNCAwIDEgMSAxMS40IDE3LjR6TTYyMSAxODcuMmEzOC41IDM4LjUgMCAxIDEgLTc1IDE3LjYgMzguNSAzOC41IDAgMSAxIDc1LTE3LjZ6TTQzMy43IDMzNi43YzMuMiA0LjYgNS44IDkgNy4zIDEzLjQgMSAzLjEgMi40IDcuMyA1LjUgOC45IC4yIC4xIC4zIC4yIC41IC4yIDUuNyAyLjEgMjAuMyAxLjcgMjAuMyAxLjdsMjYuOCAwYzIuMyAwIDIyLjQgMCAyMS45LTIuMy0yLjQtMTAuOC0xNC45LTEyLjctMjQuNC0xOC4zLTguNy01LjItMTctMTEuMS0yMC44LTIxLjMtMi01LjItLjgtMTcuNCAyLjYtMjEuOCAyLjUtMy4yIDYuMS01LjMgMTAtNi4yIDQuMy0uOSA4LjgtLjEgMTMuMSAuMyA1LjMgLjUgMTAuNiAxLjUgMTUuOSAyLjIgMTAuMyAxLjMgMjAuNiAxLjkgMzEgMS42IDE3LjEtLjUgMzQuMi0zLjIgNTAuNC04LjcgMTEuMy0zLjggMjIuNC04LjkgMzItMTYuMSAxMC45LTguMSA4LjEtNy40LTMtNi4yLTEzLjMgMS40LTI2LjYgMS42LTM5LjkgLjgtMTIuNC0uNy0yNC43LTIuMi0zNS45LTcuOS04LjgtNC42LTE2LjQtOS4xLTIzLjQtMTYuMi0xLTEuMS0xLjctNC4yIC4yLTYuMiAxLjktMS45IDUuOC0uOCA3IC4yIDEyLjIgMTAuMiAzMC41IDE4LjYgNDkuMyAxOS41IDEwLjIgLjUgMjAuMSAuNyAzMC40IC4zIDUuMS0uMiAxMi44LS4yIDE3LjktLjMgMi42IDAgOS44IC43IDExLjItMi4xIC40LS44IC40LTEuOCAuMy0yLjctMS41LTQwLjktNC41LTg2LjktNDcuMy0xMDYuNS0zMS45LTE0LjYtNzkuNy0zNy4yLTk5LjktNDYuNi00LjctMi4yLTEwLjIgMS4zLTEwLjIgNi41IDAgMTMuNiAuNyAzMy4zIC43IDUxLjEtOS43LTkuOS0yNi0xNi4xLTM4LjQtMjEuOC0xNC4xLTYuNS0yOC43LTEyLTQzLjUtMTYuNi0yOS44LTkuMi02MC43LTE0LjktOTEuNy0xOC0zNS4yLTMuNS03MS0xLjgtMTA1LjcgNS4zLTU2LjkgMTIuMi0xMTMuMSAzOS43LTE1NS43IDc5LjgtMjYuMSAyNC42LTQ2LjYgNTkuNy00OCA5NS4yLTIgNTAuMyAxMi4xIDc3LjMgMzggMTA1LjIgNDEuMyA0NC40IDEzMC4yIDUwLjYgMTY2LjItMiAxNi4yLTIzLjcgMTkuNy01NS44IDgtODItMTEuOC0yNi4yLTM4LjgtNDUuMS02Ny40LTQ2LTIyLjItLjctNDUuOSAxMC42LTU0LjUgMzEuMS02LjUgMTUuNy0yLjggMzUuMSA5IDQ3LjMgNC42IDQuOCAxMC45IDguNyAxNy43IDcuMSA0LS45IDcuNC0zLjkgOC04IC45LTYtNC40LTkuOS03LjYtMTQuNS01LjgtOC4zLTQuNy0yMC45IDIuNy0yNy45IDYuMi02IDE1LjMtNy44IDIzLjktNy43IDggMCAxNi4yIDEuNCAyMy4xIDUuNSA5LjcgNS43IDE2LjIgMTYuMiAxOC40IDI3LjIgNi43IDMzLTIwLjIgNTkuOS01Ni42IDYyLTE4LjYgMS4xLTM3LjYtMy44LTUyLjEtMTUuNS0zNi45LTI5LjgtNDUuOS05MC4zLTMuOC0xMjIuNyA0MC0zMC43IDkwLjQtMjIuOCAxMjAuMi02LjggMjMuOCAxMi44IDQxLjUgMzMuNiA1NSA1Ni43IDYuNyAxMS42IDEyLjUgMjMuNyAxNy44IDM2LjEgNS4xIDExLjggOS45IDIzLjggMjAuMiAzMi41IDYuOCA1LjggMTUuMiA1LjYgMjQuMSA1LjZsNTAuOCAwYzYuOSAwIDUuMi00LjYgMi4yLTcuNy02LjctNi45LTE2LjQtOC40LTI1LjQtMTAuOS0yMC41LTUuNi0xOC40LTMyLjgtMTIuNy0zMi44IDE4LjMgMCAxOC45IC42IDM0LjkgLjMgMjMuMi0uMyAzMC4yLTEuNyA0OC4zIDUgOS43IDMuNiAxOSAxMy4xIDI1LjEgMjEuN3oiXX0scGhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFwcC1zdG9yZS1pb3MiLGljb246WzQ0OCw1MTIsW10sImYzNzAiLCJNNDAwIDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyNyAzODQuNWMtNS41IDkuNi0xNy44IDEyLjgtMjcuMyA3LjMtOS42LTUuNS0xMi44LTE3LjgtNy4zLTI3LjNsMTQuMy0yNC43YzE2LjEtNC45IDI5LjMtMS4xIDM5LjYgMTEuNEwxMjcgMzg0LjV6bTEzOC45LTUzLjlMODQgMzMwLjZjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDUxIDAgNjUuNC0xMTMuMi0yMC41LTM1LjRjLTUuNS05LjYtMi4yLTIxLjggNy4zLTI3LjMgOS42LTUuNSAyMS44LTIuMiAyNy4zIDcuM2w4LjkgMTUuNCA4LjktMTUuNGM1LjUtOS42IDE3LjgtMTIuOCAyNy4zLTcuMyA5LjYgNS41IDEyLjggMTcuOCA3LjMgMjcuM2wtODUuOCAxNDguNiA2Mi4xIDBjMjAuMiAwIDMxLjUgMjMuNyAyMi43IDQwem05OC4xIDBsLTI5IDAgMTkuNiAzMy45YzUuNSA5LjYgMi4yIDIxLjgtNy4zIDI3LjMtOS42IDUuNS0yMS44IDIuMi0yNy4zLTcuMy0zMi45LTU2LjktNTcuNS05OS43LTc0LTEyOC4xLTE2LjctMjktNC44LTU4IDcuMS02Ny44IDEzLjEgMjIuNyAzMi43IDU2LjcgNTguOSAxMDJsNTIgMGMxMSAwIDIwIDkgMjAgMjAgMCAxMS4xLTkgMjAtMjAgMjB6Il19LGhoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bHRyYWx5dGljcy15b2xvIixpY29uOls1MTIsNTEyLFtdLCJlODZmIiwiTTM4My41IDEwLjhjNjEuOC0uMiAxMTIuMyA1MC42IDExMi4zIDExMi45LS4yIDIuNyAwIDAtLjEgMy4zbC4zIC4zYy0xLjUgODkuOS01MyAxNjguNC0xMjcuNCAyMDguNWwwIDUyLjhjMCA2Mi42LTUxLjEgMTEzLjUtMTEzLjcgMTEyLjktNjItLjYtMTExLjQtNTIuMi0xMTEuNC0xMTQuM2wwLTUxLjJjLTQwLjctMjEuOS03NC41LTU1LjItOTctOTUuNiAyMy4yIDE2LjUgNTEuNyAyNiA4MiAyNS45IDc4LjYtLjIgMTQyLjItNjQgMTQyLjMtMTQyLjUgLjEtNjIuMyA1MC41LTExMi43IDExMi45LTExMi45em0tMjU1IDIyNS44YTExMi45IDExMi45IDAgMSAxIDAtMjI1LjggMTEyLjkgMTEyLjkgMCAxIDEgMCAyMjUuOHoiXX0seEU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWRyaWJiYmxlIixpY29uOls0NDgsNTEyLFsiZHJpYmJibGUtc3F1YXJlIl0sImYzOTciLCJNMTY1LjkgMTMyLjVjLTM4LjMgMTgtNjYuOCA1My4zLTc1LjcgOTUuNyA2LjEgLjEgNjIuNCAuMyAxMjYuNC0xNi43LTIyLjctNDAuMi00Ny4xLTc0LjEtNTAuNy03OXptMjYuMS05LjFjMy44IDUuMSAyOC42IDM4LjkgNTEgODAgNDguNi0xOC4zIDY5LjEtNDUuOSA3MS42LTQ5LjQtMzMuNi0yOS44LTc5LjMtNDEuMS0xMjIuNi0zMC42ek0yNzcuNCAzODJjLTItMTItMTAtNTMuOC0yOS4yLTEwMy42LTU1LjEgMTguOC05My44IDU2LjQtMTA4LjEgODUuNiA0MC41IDMxLjYgOTMuMyAzNi43IDEzNy4zIDE4ek0yMjcuOCAyMzIuNkMxNTkuNiAyNTMgOTMuNCAyNTIuMiA4Ny40IDI1MmwwIDQuMmMwIDM1LjEgMTMuMyA2Ny4xIDM1LjEgOTEuNCAyMi4yLTM3LjkgNjcuMS03Ny45IDExNi41LTkxLjgtMy40LTcuOC03LjItMTUuNS0xMS4xLTIzLjJsLS4xIDB6bTcyLjUgMTM2LjljMzAuNy0yMC43IDUyLjUtNTMuNiA1OC42LTkxLjYtNC42LTEuNS00Mi4zLTEyLjctODUuMS01LjggMTcuOSA0OS4xIDI1LjEgODkuMSAyNi41IDk3LjR6bS0zNC44LTExOWM0NS41LTUuNyA5MC43IDMuNCA5NS4yIDQuNC0uMy0zMi4zLTExLjgtNjEuOS0zMC45LTg1LjEtMi45IDMuOS0yNS44IDMzLjItNzYuMyA1My45IDQuOCA5LjggOC4zIDE3LjggMTIgMjYuOHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCA5NmExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6Il19LHVoZT14RSxmaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWlraXQiLGljb246WzQ0OCw1MTIsW10sImY0MDMiLCJNNDQzLjkgMTI4bDAgMjU2LTIyNS45IDEyOC0yMTgtMTI4IDAtMjE0LjMgODcuNiA0NS4xIDAgMTE3IDEzMy41IDc1LjUgMTM1LjgtNzUuNSAwLTE1MS0xMDEuMS01Ny42IDg3LjYtNTMuMSAxMDAuNSA1Ny45ek0zMDguNiA0OS4xbC04NC44LTQ5LjEtODguNiA1NC44IDg2IDQ3LjMgODcuNC01M3oiXX0sbWhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cGVycG93ZXJzIixpY29uOls0NDgsNTEyLFtdLCJmMmRkIiwiTTQ0OCAzMmMtODMuMyAxMS0xNjYuOCAyMi0yNTAgMzMtOTIgMTIuNS0xNjMuMyA4Ni43LTE2OSAxODAtMy4zIDU1LjUgMTggMTA5LjUgNTcuOCAxNDguMkwwIDQ4MGM4My4zLTExIDE2Ni41LTIyIDI0OS44LTMzIDkxLjgtMTIuNSAxNjMuMy04Ni44IDE2OC43LTE3OS44IDMuNS01NS41LTE4LTEwOS41LTU3LjctMTQ4LjJMNDQ4IDMyek0zNjguMyAyNjQuM2MtNC4yIDc5LjUtNzQgMTM5LjItMTUyLjggMTM0LjUtNzkuNS00LjctMTQwLjctNzEtMTM2LjMtMTUxIDQuNS03OS4yIDc0LjMtMTM5LjMgMTUzLTEzNC41IDc5LjMgNC43IDE0MC41IDcxIDEzNi4xIDE1MXoiXX0sZ2hlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlvdXR1YmUiLGljb246WzU3Niw1MTIsWzYxODAyXSwiZjE2NyIsIk01NDkuNyAxMjQuMUM1NDMuNSAxMDAuNCA1MjQuOSA4MS44IDUwMS40IDc1LjUgNDU4LjkgNjQgMjg4LjEgNjQgMjg4LjEgNjRTMTE3LjMgNjQgNzQuNyA3NS41QzUxLjIgODEuOCAzMi43IDEwMC40IDI2LjQgMTI0LjEgMTUgMTY3IDE1IDI1Ni40IDE1IDI1Ni40czAgODkuNCAxMS40IDEzMi4zYzYuMyAyMy42IDI0LjggNDEuNSA0OC4zIDQ3LjggNDIuNiAxMS41IDIxMy40IDExLjUgMjEzLjQgMTEuNXMxNzAuOCAwIDIxMy40LTExLjVjMjMuNS02LjMgNDItMjQuMiA0OC4zLTQ3LjggMTEuNC00Mi45IDExLjQtMTMyLjMgMTEuNC0xMzIuM3MwLTg5LjQtMTEuNC0xMzIuM3pNMjMyLjIgMzM3LjZsMC0xNjIuNCAxNDIuNyA4MS4yLTE0Mi43IDgxLjJ6Il19LGJoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbWJlciIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMyIsIk02MzkuOSAyNTQuNmMtMS4xLTEwLjctMTAuNy02LjgtMTAuNy02LjhzLTE1LjYgMTIuMS0yOS4zIDEwLjdjLTEzLjctMS4zLTkuNC0zMi05LjQtMzJzMy0yOC4xLTUuMS0zMC40Yy04LjEtMi40LTE4IDcuMy0xOCA3LjNzLTEyLjQgMTMuNy0xOC4zIDMxLjJsLTEuNiAuNXMxLjktMzAuNi0uMy0zNy42Yy0xLjYtMy41LTE2LjQtMy4yLTE4LjggM3MtMTQuMiA0OS4yLTE1IDY3LjJjMCAwLTIzLjEgMTkuNi00My4zIDIyLjhzLTI1LTkuNC0yNS05LjQgNTQuOC0xNS4zIDUyLjktNTkuMS00NC4yLTI3LjYtNDktMjRjLTQuNiAzLjUtMjkuNCAxOC40LTM2LjYgNTkuNy0uMiAxLjQtLjcgNy41LS43IDcuNXMtMjEuMiAxNC4yLTMzIDE4YzAgMCAzMy01NS42LTcuMy04MC45LTExLjQtNi44LTIxLjMtLjUtMjcuMiA1LjMgMTMuNi0xNy4zIDQ2LjQtNjQuMiAzNi45LTEwNS4yLTUuOC0yNC40LTE4LTI3LjEtMjkuMi0yMy4xLTE3IDYuNy0yMy41IDE2LjctMjMuNSAxNi43cy0yMiAzMi0yNy4xIDc5LjUtMTIuNiAxMDUuMS0xMi42IDEwNS4xLTEwLjUgMTAuMi0yMC4yIDEwLjctNS40LTI4LjctNS40LTI4LjcgNy41LTQ0LjYgNy01Mi4xLTEuMS0xMS42LTkuOS0xNC4yYy04LjktMi43LTE4LjUgOC42LTE4LjUgOC42cy0yNS41IDM4LjctMjcuNyA0NC42bC0xLjMgMi40LTEuMy0xLjZzMTgtNTIuNyAuOC01My41LTI4LjUgMTguOC0yOC41IDE4LjgtMTkuNiAzMi44LTIwLjQgMzYuNWwtMS4zLTEuNnM4LjEtMzguMiA2LjQtNDcuNmMtMS42LTkuNC0xMC41LTcuNS0xMC41LTcuNXMtMTEuMy0xLjMtMTQuMiA1LjktMTMuNyA1NS4zLTE1IDcwLjdjMCAwLTI4LjIgMjAuMi00Ni44IDIwLjQtMTguNSAuMy0xNi43LTExLjgtMTYuNy0xMS44czY4LTIzLjMgNDkuNC02OS4yYy04LjMtMTEuOC0xOC0xNS41LTMxLjctMTUuMy0xMy43IC4zLTMwLjMgOC42LTQxLjMgMzMuMy01LjMgMTEuOC02LjggMjMtNy44IDMxLjUgMCAwLTEyLjMgMi40LTE4LjgtMi45cy0xMCAwLTEwIDAtMTEuMiAxNC0uMSAxOC4zIDI4LjEgNi4xIDI4LjEgNi4xYzEuNiA3LjUgNi4yIDE5LjUgMTkuNiAyOS43IDIwLjIgMTUuMyA1OC44LTEuMyA1OC44LTEuM2wxNS45LTguOHMuNSAxNC42IDEyLjEgMTYuNyAxNi40IDEgMzYuNS00Ny45YzExLjgtMjUgMTIuNi0yMy42IDEyLjYtMjMuNmwxLjMtLjNzLTkuMSA0Ni44LTUuNiA1OS43QzE4Ny43IDMxOS40IDIwMyAzMTggMjAzIDMxOHM4LjMgMi40IDE1LTIxLjIgMTkuNi00OS45IDE5LjYtNDkuOWwxLjYgMHMtNS42IDQ4LjEgMyA2My43IDMwLjkgNS4zIDMwLjkgNS4zIDE1LjYtNy44IDE4LTEwLjJjMCAwIDE4LjUgMTUuOCA0NC42IDEyLjkgNTguMy0xMS41IDc5LjEtMjUuOSA3OS4xLTI1LjlzMTAgMjQuNCA0MS4xIDI2LjdjMzUuNSAyLjcgNTQuOC0xOC42IDU0LjgtMTguNnMtLjMgMTMuNSAxMi4xIDE4LjYgMjAuNy0yMi44IDIwLjctMjIuOGwyMC43LTU3LjIgMS45IDBzMS4xIDM3LjMgMjEuNSA0My4yIDQ3LTEzLjcgNDctMTMuNyA2LjQtMy41IDUuMy0xNC4zem0tNTc4IDUuM2MuOC0zMiAyMS44LTQ1LjkgMjktMzkgNy4zIDcgNC42IDIyLTkuMSAzMS40LTEzLjcgOS41LTE5LjkgNy42LTE5LjkgNy42ek0zMzQuNyAxMzYuMXMxOS4xLTQ5LjcgMjMuNi0yNS41LTQwIDk2LjItNDAgOTYuMmMuNS0xNi4yIDE2LjQtNzAuNyAxNi40LTcwLjd6bTIyLjggMTM4LjRjLTEyLjYgMzMtNDMuMyAxOS42LTQzLjMgMTkuNnMtMy41LTExLjggNi40LTQ0LjkgMzMuMy0yMC4yIDMzLjMtMjAuMiAxNi4yIDEyLjQgMy42IDQ1LjV6bTg0LjYtMTQuNnMtMy0xMC41IDguMS0zMC42YzExLTIwLjIgMTkuNi05LjEgMTkuNi05LjFzOS40IDEwLjItMS4zIDI1LjUtMjYuNCAxNC4yLTI2LjQgMTQuMnoiXX0sdmhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvb3RzdHJhcCIsaWNvbjpbNTc2LDUxMixbXSwiZjgzNiIsIk0zMzMuNSAyMDEuNGMwLTIyLjEtMTUuNi0zNC4zLTQzLTM0LjNsLTUwLjQgMCAwIDcxLjIgNDIuNSAwYzMyLjgtLjEgNTAuOS0xMy4zIDUwLjktMzYuOXpNNTE3IDE4OC42Yy05LjUtMzAuOS0xMC45LTY4LjgtOS44LTk4LjEgMS4xLTMwLjUtMjIuNy01OC41LTU0LjctNTguNUwxMjMuNyAzMmMtMzIuMSAwLTU1LjggMjguMS01NC43IDU4LjUgMSAyOS4zLS4zIDY3LjItOS44IDk4LjEtOS42IDMxLTI1LjcgNTAuNi01Mi4yIDUzLjFsMCAyOC41YzI2LjQgMi41IDQyLjYgMjIuMSA1Mi4yIDUzLjEgOS41IDMwLjkgMTAuOSA2OC44IDkuOCA5OC4xLTEuMSAzMC41IDIyLjcgNTguNSA1NC43IDU4LjVsMzI4LjcgMGMzMi4xIDAgNTUuOC0yOC4xIDU0LjctNTguNS0xLTI5LjMgLjMtNjcuMiA5LjgtOTguMSA5LjYtMzEgMjUuNy01MC42IDUyLjEtNTMuMWwwLTI4LjVjLTI2LjMtMi41LTQyLjUtMjIuMS01Mi01My4xek0zMDAuMiAzNzUuMWwtOTcuOSAwIDAtMjM4LjMgOTcuNCAwYzQzLjMgMCA3MS43IDIzLjQgNzEuNyA1OS40IDAgMjUuMy0xOS4xIDQ3LjktNDMuNSA1MS44bDAgMS4zYzMzLjIgMy42IDU1LjUgMjYuNiA1NS41IDU4LjMgMCA0Mi4xLTMxLjMgNjcuNS04My4yIDY3LjV6bS0xMC0xMDguN2wtNTAuMSAwIDAgNzguNCA1Mi4zIDBjMzQuMiAwIDUyLjMtMTMuNyA1Mi4zLTM5LjUgMC0yNS43LTE4LjYtMzguOS01NC41LTM4Ljl6Il19LHloZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMiLGljb246WzQ0OCw1MTIsW10sImYzYjQiLCJNMjIzLjYgODAuM2ExNzEuMyAxNzEuMyAwIDEgMCAuMiAzNDIuNSAxNzEuMyAxNzEuMyAwIDEgMCAtLjItMzQyLjV6bTc5LjQgMjQwYy0zLjIgMTMuNi0xMy41IDIxLjItMjcuMyAyMy44LTEyLjEgMi4yLTIyLjIgMi44LTMxLjktNS0xMS44LTEwLTEyLTI2LjQtMS40LTM2LjggOC40LTggMjAuMy05LjYgMzgtMTIuOCAzLS41IDUuNi0xLjIgNy43LTMuNyAzLjItMy42IDIuMi0yIDIuMi04MC44IDAtNS42LTIuNy03LjEtOC40LTYuMS00IC43LTkxLjkgMTcuMS05MS45IDE3LjEtNSAxLjEtNi43IDIuNi02LjcgOC4zIDAgMTE2LjEgLjUgMTEwLjgtMS4yIDExOC41LTIuMSA5LTcuNiAxNS44LTE0LjkgMTkuNi04LjMgNC42LTIzLjQgNi42LTMxLjQgNS4yLTIxLjQtNC0yOC45LTI4LjctMTQuNC00Mi45IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgNS01LjcgLjktMTI3IDIuNi0xMzMuNyAuNC0yLjYgMS41LTQuOCAzLjUtNi40IDIuMS0xLjcgNS44LTIuNyA2LjctMi43IDEwMS0xOSAxMTMuMy0yMS40IDExNS4xLTIxLjQgNS43LS40IDkgMyA5IDguNy0uMSAxNzAuNiAuNCAxNjEuNC0xIDE2Ny42ek0zNDUuMiAzMkwxMDIuOCAzMkM0NS45IDMyIDAgNzcuOSAwIDEzNC44TDAgMzc3LjJDMCA0MzQuMSA0NS45IDQ4MCAxMDIuOCA0ODBsMjQyLjQgMGM1NyAwIDEwMi44LTQ1LjkgMTAyLjgtMTAyLjhsMC0yNDIuNEM0NDggNzcuOSA0MDIuMSAzMiAzNDUuMiAzMnpNMjIzLjYgNTlhMTkyLjUgMTkyLjUgMCAxIDEgMCAzODUgMTkyLjUgMTkyLjUgMCAxIDEgMC0zODV6Il19LHdFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS14aW5nIixpY29uOls0NDgsNTEyLFsieGluZy1zcXVhcmUiXSwiZjE2OSIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNOTMuOCAzMjAuMmMtNS41IDAtOC43LTUuMy02LTEwLjNsNDkuMy04Ni43Yy4xIDAgLjEtLjEgMC0uMmwtMzEuNC01NGMtMy01LjYgLjItMTAuMSA2LTEwLjFsNDYuNiAwYzUuMiAwIDkuNSAyLjkgMTIuOSA4LjdsMzEuOSA1NS4zYy0xLjMgMi4zLTE4IDMxLjctNTAuMSA4OC4yLTMuNSA2LjItNy43IDkuMS0xMi42IDkuMWwtNDYuNiAwem0xNjMuNS0zMy40bDAgLjIgNjUuNSAxMTljMi44IDUuMSAuMSAxMC4xLTYgMTAuMWwtNDYuNiAwYy01LjUgMC05LjctMi45LTEyLjktOC43bC02Ni0xMjAuM2MxLjgtMy4yIDIyLjktNDAuNCA2My4zLTExMS42IDExLjctMjAuNyAyNS4xLTQ0LjMgNDAuMS03MC44IDMuMy01LjggNy40LTguNyAxMi41LTguN2w0Ni45IDBjNS43LS4xIDguOCA0LjcgNiAxMEwyNTcuMyAyODYuOHoiXX0seGhlPXdFLHdoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MzLWFsdCIsaWNvbjpbMzg0LDUxMixbXSwiZjM4YiIsIk0wIDMyTDM0LjkgNDI3LjggMTkyIDQ4MCAzNDkuMSA0MjcuOCAzODQgMzIgMCAzMnptMzEzLjEgODBsLTQuOCA0Ny4zLTExNS4zIDQ5LjMtLjMgLjEgMTExLjUgMC0xMi44IDE0Ni42LTk4LjIgMjguNy05OC44LTI5LjItNi40LTczLjkgNDguOSAwIDMuMiAzOC4zIDUyLjYgMTMuMyA1NC43LTE1LjQgMy43LTYxLjYtMTY2LjMtLjUgMC0uMS0uMiAuMS0zLjYtNDYuMyAxMTIuMS00Ni43IDYuNS0yLjctMTIyLjkgMC01LjgtNDcuMyAyNDIuMiAweiJdfSxNaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlc3BhY2UiLGljb246WzUxMiw1MTIsW10sImY1YmUiLCJNMTg2LjEgMzQzLjNjLTkuNyA5LjctOS43IDI1LjMgMCAzNC45czI1LjMgOS42IDM0LjkgMEwzNzguMyAyMjEuMWMxOS4zLTE5LjMgNTAuNi0xOS4zIDY5LjkgMHMxOS4zIDUwLjYgMCA2OS45TDI5NCA0NDUuMWMxOS4zIDE5LjMgNTAuNSAxOS4zIDY5LjggMGwwIDAgMTE5LjMtMTE5LjJjMzguNi0zOC42IDM4LjYtMTAxLjEgMC0xMzkuNy0zOC42LTM4LjYtMTAxLjItMzguNi0xMzkuNyAwTDE4Ni4xIDM0My4zek00MzAuNyAyMzguNWMtOS43LTkuNy0yNS4zLTkuNy0zNC45IDBMMjM4LjUgMzk1LjdjLTE5LjMgMTkuMy01MC41IDE5LjMtNjkuOCAwbDAgMGMtOS42LTkuNi0yNS4zLTkuNy0zNC45IDBsMCAwYy05LjcgOS42LTkuNyAyNS4zIDAgMzQuOWwwIDBjMzguNiAzOC42IDEwMS4xIDM4LjYgMTM5LjcgMEw0MzAuNyAyNzMuNWM5LjYtOS43IDkuNi0yNS4zIDAtMzQuOXptLTI2MiA4Ny4zTDMyNS45IDE2OC43YzkuNi05LjYgOS42LTI1LjMgMC0zNC45LTkuNi05LjYtMjUuMy05LjYtMzQuOSAwTDEzMy43IDI5MC45Yy0xOS4zIDE5LjMtNTAuNiAxOS4zLTY5LjkgMGwwIDBjLTE5LjMtMTkuMy0xOS4zLTUwLjUgMC02OS44bDAgMCAxNTQuMi0xNTQuMmMtMTkuMy0xOS4zLTUwLjUtMTkuMy02OS44IDBsMCAwLTExOS4yIDExOS4zYy0zOC42IDM4LjYtMzguNiAxMDEuMSAwIDEzOS43IDM4LjYgMzguNiAxMDEuMSAzOC42IDEzOS43IDB6TTgxLjMgMjczLjVjOS42IDkuNiAyNS4zIDkuNiAzNC45IDBMMjczLjUgMTE2LjNjMTkuMy0xOS4zIDUwLjYtMTkuMyA2OS44IDBsMCAwYzkuNyA5LjYgMjUuMyA5LjYgMzQuOSAwczkuNi0yNS4zIDAtMzQuOWMtMzguNi0zOC42LTEwMS4xLTM4LjYtMTM5LjcgMEw4MS4zIDIzOC41Yy05LjYgOS42LTkuNiAyNS4zIDAgMzQuOWwwIDB6Il19LHpoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0cmVsbG8iLGljb246WzQ0OCw1MTIsW10sImYxODEiLCJNMzkyLjMgMzJMNTYuMSAzMmMtMzEgMC01Ni4xIDI1LjEtNTYuMSA1Ni0uMSAwIDAtNCAwIDMzNiAwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMzYuMiAwYzMwLjgtLjIgNTUuNy0yNS4yIDU1LjctNTZsMC0zMzZjLjEtMzAuOC0yNC44LTU1LjgtNTUuNi01NnpNMTk3IDM3MS4zYy0uMiAxNC43LTEyLjEgMjYuNi0yNi45IDI2LjZsLTgyLjcgMGMtMTQuOCAuMS0yNi45LTExLjgtMjctMjYuNmwwLTI1NC4yYzAtMTQuOCAxMi0yNi45IDI2LjktMjYuOWw4Mi45IDBjMTQuOCAwIDI2LjkgMTIgMjYuOSAyNi45bDAgMjU0LjItLjEgMHptMTkzLjEtMTEyYzAgMTQuOC0xMiAyNi45LTI2LjkgMjYuOWwtODEgMGMtMTQuOCAwLTI2LjktMTItMjYuOS0yNi45bDAtMTQyLjFjMC0xNC44IDEyLTI2LjkgMjYuOC0yNi45bDgxLjEgMGMxNC44IDAgMjYuOSAxMiAyNi45IDI2LjlsMCAxNDIuMXoiXX0sa2hlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpYWRlbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhOSIsIk0yNzYuNCAxNTAuNWwwIC43Yy0xNy45LTUyLjYtNDIuNi0xMDMuNC03MC44LTE1MS4yIDQzLjMgMjkuMiA2NyAxMDAgNzAuOCAxNTAuNXptMzIuNyAxMjEuN2M3LjYgMTguMiAxMSAzNy41IDExIDU3IDAgNzcuNy01Ny44IDE0MS0xMzcuOCAxMzkuNGwzLjgtLjNjNzQuMi00Ni43IDEwOS4zLTExOC42IDEwOS4zLTIwNS4xIDAtMzguMS02LjUtNzUuOS0xOC45LTExMiAxIDExLjcgMSAyMy43IDEgMzUuNCAwIDkxLjgtMTguMSAyNDEuNi0xMTYuNiAyODAtNjUuNy0xMS40LTExMS4zLTY4LjYtMTExLjMtMTM3LjQgMC03NS42IDU3LjQtMTQyLjMgMTM1LjQtMTQyLjMgMTYuOCAwIDMzLjcgMy4xIDQ5LjEgOS42IDEuNy0xNS4xIDYuNS0yOS45IDEzLjQtNDMuMy0xOS45LTcuMi00MS4yLTEwLjctNjIuNS0xMC43LTE2MS41IDAtMjM4LjcgMTk1LjktMTI5LjkgMzEzLjcgNjcuOSA3NC42IDE5MiA3My45IDI1OS44IDAgNTYuNi02MS4zIDYwLjktMTQyLjQgMzYuNC0yMDEtMTIuNyA4LTI3LjEgMTMuOS00Mi4yIDE3ek00MTguMyAxMS43Yy0zMSA2Ni41LTgxLjMgNDcuMi0xMTUuOCA4MC4xLTEyLjQgMTItMjAuNiAzNC0yMC42IDUwLjUgMCAxNC4xIDQuNSAyNy4xIDEyIDM4LjggNDcuNC0xMSA5OC4zLTQ2IDExOC4yLTkwLjctLjcgNS41LTQuOCAxNC40LTcuMiAxOS4yLTIwLjMgMzUuNy02NC42IDY1LjYtOTkuNyA4NC45IDE0LjggMTQuNCAzMy43IDI1LjggNTUgMjUuOCA3OSAwIDExMC4xLTEzNC42IDU4LjEtMjA4LjZ6Il19LFNoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZWFyY2hlbmdpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlYiIsIk0yMTQuNiAxMzAuM2wtNjcuMiAyOC4yIDAtMTE1LjMtNTQuNyAxOTAuMyA1NC43LTI0LjIgMCAxMzAuMyA2Ny4yLTIwOS4zek0xMzEuNCAzMy42bC0xLjMgNC43LTE1LjIgNTIuOUM3NC42IDEwNi43IDQ2IDE0NS44IDQ2IDE5MS41IDQ2IDI0My44IDgwLjMgMjg3LjQgMTI5LjQgMjk3bDAgNTMuNkM1MS41IDM0MC4xLTYgMjcyLjQtNiAxOTEuNi02IDExMS4xIDUzLjggNDQuNCAxMzEuNCAzMy42ek00NDIuOCA0ODAuOGMtMTEuMiAxMS4yLTIzLjEgMTIuMy0yOC42IDEwLjUtNS40LTEuOC0yNy4xLTE5LjktNjAuNC00NC40LTMzLjMtMjQuNi0zMy42LTM1LjctNDMtNTYuNy05LjQtMjAuOS0zMC40LTQyLjYtNTcuNS01Mi40bC05LjctMTQuN2MtMjQuNyAxNi45LTUzIDI2LjktODEuMyAyOC43bDIuMS02LjYgMTUuOS00OS41YzQ2LjUtMTEuOSA4MC45LTU0IDgwLjktMTA0LjIgMC01NC41LTM4LjQtMTAyLjEtOTYtMTA3LjFsMC01Mi4xYzgzLjIgNS4xIDE0OC44IDc0LjUgMTQ4LjggMTU5LjMgMCAzMy42LTExLjIgNjQuNy0yOSA5MC40bDE0LjYgOS42YzkuOCAyNy4xIDMxLjUgNDggNTIuNCA1Ny40czMyLjIgOS43IDU2LjggNDNjMjQuNiAzMy4yIDQyLjcgNTQuOSA0NC41IDYwLjNzLjcgMTcuMy0xMC41IDI4LjV6bS05LjktMTcuOWMwLTQuNC0zLjYtOC04LThzLTggMy42LTggOCAzLjYgOCA4IDggOC0zLjYgOC04eiJdfSxDaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5yZWFsLWVuZ2luZSIsaWNvbjpbNTEyLDUxMixbXSwiZTg1YyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNjUuNS0xMTMuN2wtMjUuMS0yOC4zLTQyLjQgNDIuNmMtMjQuMS0uMy00Ny45LTYuMi02OS4zLTE3LjJzLTQwLjEtMjYuOS01NC41LTQ2LjNjNC41IDEuNCA5LjIgMi4zIDEzLjkgMi42IDYuOSAuMSAxNC41LTIuNCAxNC41LTE0LjFsMC0xMTUuMWMuMS0zLS41LTUuOS0xLjctOC42cy0zLjEtNS01LjQtNi45LTUtMy4xLTcuOS0zLjctNS45LS41LTguOCAuMmMtMTkuNiA0LjUtMzUuMyA1My41LTM1LjMgNTMuNS0uMi0yMi42IDQuNS00NSAxMy44LTY1LjZzMjMtMzkgNDAuMS01My44YzIyLjUtMTkuNSA1MC4xLTMyLjIgNzkuNi0zNi43LTIxLjQgMTIuMi0zMy41IDMyLjEtMzMuNSA0OC45IDAgMjYuOSAxNi4yIDIzLjYgMjEgMTkuN2wwIDE1NS4zYy44IDEuOSAxLjkgMy44IDMuMiA1LjUgMi4xIDMgNSA1LjQgOC4yIDdzNi45IDIuNSAxMC41IDIuNWMxNi4yIDAgMzcuMy0xOC41IDM3LjMtMTguNWwwLTEyNS43YzAtMTIuOC05LjYtMjguMi0xOS4zLTMzLjUgMCAwIDE3LjktMy4yIDMxLjcgNy40IDIuNi0zLjIgNS4zLTYuMiA4LjItOS4xIDMyLjItMzEuNiA2Mi41LTQwLjYgODcuNy00NS4xIDAgMC00NS45IDM2LjEtNDUuOSA4NC41IDAgMzYgLjkgMTIzLjggLjkgMTIzLjggMTcgMTYuNCA0Mi40LTcuMyA2NS4yLTMwLjgtNC40IDIxLjMtMjQgNzUuOS04Ni42IDEwNS40eiJdfSxfaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGF5cGFsIixpY29uOlszODQsNTEyLFtdLCJmMWVkIiwiTTExMS45IDI5NS45Yy0zLjUgMTkuMi0xNy40IDEwOC43LTIxLjUgMTM0LS4zIDEuOC0xIDIuNS0zIDIuNWwtNzQuNiAwYy03LjYgMC0xMy4xLTYuNi0xMi4xLTEzLjlMNTkuMyA0Ni42YzEuNS05LjYgMTAuMS0xNi45IDIwLTE2LjkgMTUyLjMgMCAxNjUuMS0zLjcgMjA0IDExLjQgNjAuMSAyMy4zIDY1LjYgNzkuNSA0NCAxNDAuMy0yMS41IDYyLjYtNzIuNSA4OS41LTE0MC4xIDkwLjMtNDMuNCAuNy02OS41LTctNzUuMyAyNC4yek0zNTcuNiAxNTJjLTEuOC0xLjMtMi41LTEuOC0zIDEuMy0yIDExLjQtNS4xIDIyLjUtOC44IDMzLjYtMzkuOSAxMTMuOC0xNTAuNSAxMDMuOS0yMDQuNSAxMDMuOS02LjEgMC0xMC4xIDMuMy0xMC45IDkuNC0yMi42IDE0MC40LTI3LjEgMTY5LjctMjcuMSAxNjkuNy0xIDcuMSAzLjUgMTIuOSAxMC42IDEyLjlsNjMuNSAwYzguNiAwIDE1LjctNi4zIDE3LjQtMTQuOSAuNy01LjQtMS4xIDYuMSAxNC40LTkxLjMgNC42LTIyIDE0LjMtMTkuNyAyOS4zLTE5LjcgNzEgMCAxMjYuNC0yOC44IDE0Mi45LTExMi4zIDYuNS0zNC44IDQuNi03MS40LTIzLjgtOTIuNnoiXX0sVGhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1ibHVlc2t5IixpY29uOls0NDgsNTEyLFtdLCJlNmEzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyNDcuNGMxNC41LTMwIDU0LTg1LjggOTAuNy0xMTMuMyAyNi41LTE5LjkgNjkuMy0zNS4yIDY5LjMgMTMuNyAwIDkuOC01LjYgODIuMS04LjkgOTMuOC0xMS40IDQwLjgtNTMgNTEuMi05MCA0NC45IDY0LjcgMTEgODEuMiA0Ny41IDQ1LjYgODQtNjcuNSA2OS4zLTk3LTE3LjQtMTA0LjYtMzkuNmwtLjMtLjljLS45LTIuNi0xLjQtNC4xLTEuOC00LjFzLS45IDEuNS0xLjggNC4xYy0uMSAuMy0uMiAuNi0uMyAuOS03LjYgMjIuMi0zNy4xIDEwOC44LTEwNC42IDM5LjYtMzUuNS0zNi41LTE5LjEtNzMgNDUuNi04NC0zNyA2LjMtNzguNi00LjEtOTAtNDQuOS0zLjMtMTEuNy04LjktODQtOC45LTkzLjggMC00OC45IDQyLjktMzMuNSA2OS4zLTEzLjcgMzYuNyAyNy41IDc2LjIgODMuNCA5MC43IDExMy4zeiJdfSxMaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZC1hbmQtZC1iZXlvbmQiLGljb246WzY0MCw1MTIsW10sImY2Y2EiLCJNMzEzLjggMjQxLjVjMTMuOCAwIDIxLTEwLjEgMjQuOC0xNy45LTEtMS4xLTUtNC4yLTcuNC02LjYtMi40IDQuMy04LjIgMTAuNy0xMy45IDEwLjctMTAuMiAwLTE1LjQtMTQuNy0zLjItMjYuNi0uNS0uMi00LjMtMS44LTggMi40IDAtMyAxLTUuMSAyLjEtNi42LTMuNSAxLjMtOS44IDUuNi0xMS40IDcuOSAuMi01LjggMS42LTcuNSAuNi05bC0uMi0uMnMtOC41IDUuNi05LjMgMTQuN2MwIDAgMS4xLTEuNiAyLjEtMS45IC42LS4zIDEuMyAwIC42IDEuOS0uMiAuNi01LjggMTUuNyA1LjEgMjYtLjYtMS42LTEuOS03LjYgMi40LTEuOS0uMyAuMSA1LjggNy4xIDE1LjcgNy4xem01Mi40LTIxLjFjMC00LTQuOS00LjQtNS42LTQuNSAyIDMuOSAuOSA3LjUgLjIgOSAyLjUtLjQgNS40LTEuNiA1LjQtNC41em0xMC4zIDUuMmMwLTYuNC02LjItMTEuNC0xMy41LTEwLjcgOCAxLjMgNS42IDEzLjgtNSAxMS40IDMuNy0yLjYgMy4yLTkuOS0xLjMtMTIuNSAxLjQgNC4yLTMgOC4yLTcuNCA0LjYtMi40LTEuOS04LTYuNi0xMC42LTguNi0yLjQtMi4xLTUuNS0xLTYuNi0xLjgtMS4zLTEuMS0uNS0zLjgtMi4yLTUtMS42LS44LTMtLjMtNC44LTEtMS42LS42LTIuNy0xLjktMi42LTMuNS0yLjUgNC40IDMuNCA2LjMgNC41IDguNSAxIDEuOS0uOCA0LjggNCA4LjUgMTQuOCAxMS42IDkuMSA4IDEwLjQgMTguMSAuNiA0LjMgNC4yIDYuNyA2LjQgNy40LTIuMS0xLjktMi45LTYuNCAwLTkuMyAwIDEzLjkgMTkuMiAxMy4zIDIzLjEgNi40LTIuNCAxLjEtNy0uMi05LTEuOSA3LjcgMSAxNC4yLTQuMSAxNC42LTEwLjZ6bS0zOS40LTE4LjRjMiAuOCAxLjYgLjcgNi40IDQuNSAxMC4yLTI0LjUgMjEuNy0xNS43IDIyLTE1LjUgMi4yLTEuOSA5LjgtMy44IDEzLjgtMi43LTIuNC0yLjctNy41LTYuMi0xMy4zLTYuMi00LjcgMC03LjQgMi4yLTggMS4zLS44LTEuNCAzLjItMy40IDMuMi0zLjQtNS40IC4yLTkuNiA2LjctMTEuMiA1LjktMS4xLS41IDEuNC0zLjcgMS40LTMuNy01LjEgMi45LTkuMyA5LjEtMTAuMiAxMyA0LjYtNS44IDEzLjgtOS44IDE5LjctOS0xMC41IC41LTE5LjUgOS43LTIzLjggMTUuOHptMjQyLjUgNTEuOWMtMjAuNyAwLTQwIDEuMy01MC4zIDIuMWw3LjQgOC4yIDAgNzcuMi03LjQgOC4yYzEwLjQgLjggMzAuOSAyLjEgNTEuNiAyLjEgNDIuMSAwIDU5LjEtMjAuNyA1OS4xLTQ4LjkgMC0yOS4zLTIzLjItNDguOS02MC40LTQ4Ljl6bS0xNS4xIDc1LjZsMC01My4zYzMwLjEtMy4zIDQ2LjggMy44IDQ2LjggMjYuMyAwIDI1LjYtMjEuNCAzMC4yLTQ2LjggMjd6TTMwMS42IDE4MWMtMS0zLjQtLjItNi45IDEuMS05LjQgMSAzIDIuNiA2LjQgNy41IDktLjUtMi40LS4yLTUuNiAuNS04LTEuNC01LjQgMi4xLTkuOSA2LjQtOS45IDYuOSAwIDguNSA4LjggNC43IDE0LjQgMi4xIDMuMiA1LjUgNS42IDcuNyA3LjggMy4yLTMuNyA1LjUtOS41IDUuNS0xMy44IDAtOC4yLTUuNS0xNS45LTE2LjctMTYuNS0yMC0uOS0yMC4yIDE2LjYtMjAgMTguOSAuNSA1LjIgMy40IDcuOCAzLjMgNy41em0tLjQgNmMtLjUgMS44LTcgMy43LTEwLjIgNi45IDQuOC0xIDctLjIgNy44IDEuOCAuNSAxLjQtLjIgMy40LS41IDUuNiAxLjYtMS44IDctNS41IDExLTYuMi0xLS4zLTMuNC0uOC00LjMtLjggMi45LTMuNCA5LjMtNC41IDEyLjgtMy43LTIuMi0uMi02LjcgMS4xLTguNSAyLjYgMS42IC4zIDMgLjYgNC4zIDEuMS0yLjEgLjgtNC44IDMuNC01LjggNi4xIDctNSAxMy4xIDUuMiA3IDguMiAuOCAuMiAyLjcgMCAzLjUtLjUtLjMgMS4xLTEuOSAzLTMgMy40IDIuOSAwIDctMS45IDguMi00LjYgMCAwLTEuOCAuNi0yLjYtLjJzLjMtNC4zIC4zLTQuM2MtMi4zIDIuOS0zLjQtMS4zLTEuMy00LjItMS0uMy0zLjUtLjYtNC42LS41IDMuMi0xLjEgMTAuNC0xLjggMTEuMi0uMyAuNiAxLjEtMSAzLjQtMSAzLjQgNC0uNSA4LjMgMS4xIDYuNyA1LjEgMi45LTEuNCA1LjUtNS45IDQuOC0xMC40LS4zIDEtMS42IDIuNC0yLjkgMi43IC4yLTEuNC0xLTIuMi0xLjktMi42IDEuNy05LjYtMTQuNi0xNC4yLTE0LjEtMjMuOS0xIDEuMy0xLjggNS0uOCA3LjEgMi43IDMuMiA4LjcgNi43IDEwLjEgMTIuMi0yLjYtNi40LTE1LjEtMTEuNC0xNC42LTIwLjItMS42IDEuNi0yLjYgNy44LTEuMyAxMSAyLjQgMS40IDQuNSAzLjggNC44IDYuMS0yLjItNS4xLTExLjQtNi4xLTEzLjktMTIuMi0uNiAyLjItLjMgNSAxIDYuNyAwIDAtMi4yLS44LTctLjYgMS43IC42IDUuMSAzLjUgNC44IDUuMnptMjUuOSA3LjRjLTIuNyAwLTMuNS0yLjEtNC4yLTQuMyAzLjMgMS4zIDQuMiA0LjMgNC4yIDQuM3ptMzguOSAzLjdsLTEtLjZjLTEuMS0xLTIuOS0xLjQtNC43LTEuNC0yLjkgMC01LjggMS4zLTcuNSAzLjQtLjggLjgtMS40IDEuOC0yLjEgMi42bDAgMTUuN2MzLjUgMi42IDcuMS0yLjkgMy03LjIgMS41IC4zIDQuNiAyLjcgNS4xIDMuMiAwIDAgMi42LS41IDUtLjUgMi4xIDAgMy45IC4zIDUuNiAxLjFsMC0xOC40Yy0xLjEgLjUtMi4yIDEtMi43IDEuNGwtLjcgLjd6TTc5LjkgMzA1LjljMTcuMi00LjYgMTYuMi0xOCAxNi4yLTE5LjkgMC0yMC42LTI0LjEtMjUtMzctMjVsLTU2LjEgMCA4LjMgOC42IDAgMjkuNS0xMS4zIDAgMTEuNCAxNC42IDAgMzIuMy04LjQgOC42YzYxLjcgMCA3My44IDEuNSA4Ni40LTUuOSA2LjctNCA5LjktOS44IDkuOS0xNy42IDAtNS4xIDIuNi0xOC44LTE5LjQtMjUuMnpNMzguNiAyNzguNGMyMCAwIDI5LjYtLjggMjkuNiA5LjFsMCAzYzAgMTIuMS0xOSA4LjgtMjkuNiA4LjhsMC0yMC45em0wIDU5LjJsMC0yMi42YzEyLjIgMCAzMi43LTIuMyAzMi43IDguOGwwIDQuNSAuMiAwYzAgMTEuMi0xMi41IDkuMy0zMi45IDkuM3ptMTAxLjItMTkuM2wyMy4xIC4yIDAtLjIgMTQuMS0yMS4yLTM3LjIgMCAwLTE0LjkgNTIuNCAwLTE0LjEtMjEgMC0uMi03My41IC4yIDcuNCA4LjIgMCA3Ny4xLTcuNCA4LjIgODEuMiAwIDE0LjEtMjEuMi02MC4xIC4yIDAtMTUuNHptMjE0LjctNjAuMWMtNzMuOSAwLTc3LjUgOTkuMy0uMyA5OS4zIDc3LjkgMCA3NC4xLTk5LjMgLjMtOTkuM3ptLS4zIDc3LjVjLTM3LjQgMC0zNi45LTU1LjMgLjItNTUuMyAzNi44IC4xIDM4LjggNTUuMy0uMiA1NS4zem0tOTEuMy04LjNsNDQuMS02Ni4yLTQxLjcgMCA2LjEgNy4yLTIwLjUgMzcuMi0uMyAwLTIxLTM3LjIgNi40LTcuMi00NC45IDAgNDQuMSA2NS44IC4yIDE5LjQtNy43IDguMiA0Mi42IDAtNy4yLTguMi0uMi0xOXpNMjM0LjUgMTc2LjFjMS42IDEuMyAyLjkgMi40IDIuOSA2LjZsMCAzOC44YzAgNC4yLS44IDUuMy0yLjcgNi40LS4xIC4xLTcuNSA0LjUtNy45IDQuNmwzNS4xIDBjMTAgMCAxNy40LTEuNSAyNi04LjYtLjYtNSAuMi05LjUgLjgtMTIgMC0uMi0xLjggMS40LTIuNyAzLjUgMC01LjcgMS42LTE1LjQgOS42LTIwLjUtLjEgMC0zLjctLjgtOSAxLjEgMi0zLjEgMTAtNy45IDEwLjQtNy45LTguMi0yNi0zOC0yMi45LTMyLjItMjIuOS0zMC45IDAtMzIuNiAuMy0zOS45LTQgLjEgLjggLjUgOC4yIDkuNiAxNC45em0yMS41IDUuNWM0LjYgMCAyMy4xLTMuMyAyMy4xIDE3LjMgMCAyMC43LTE4LjQgMTcuMy0yMy4xIDE3LjNsMC0zNC42em0yMjguOSA3OS42bDcgOC4zIDAgNDIuNS0uMyAwYy01LjQtMTQuNC00Mi4zLTQxLjUtNDUuMi01MC45bC0zMS42IDAgNy40IDguNSAwIDc2LjktNy4yIDguMyAzOSAwLTcuNC04LjIgMC00Ny40IC4zIDBjMy43IDEwLjYgNDQuNSA0Mi45IDQ4LjUgNTUuNmwyMS4zIDAgMC04NS4yIDcuNC04LjMtMzkuMi0uMXpNMzc4LjIgMTY1LjFjLTMyLjIgMC0zMi44IC4yLTM5LjktNCAuMSAuNyAuNSA4LjMgOS42IDE0LjkgMy4xIDIgMi45IDQuMyAyLjkgOS41IDEuOC0xLjEgMy44LTIuMiA2LjEtMy0xLjEgMS4xLTIuNyAyLjctMy41IDQuNSAxLTEuMSA3LjUtNS4xIDE0LjYtMy41LTEuNiAuMy00IDEuMS02LjEgMi45IC4xIDAgMi4xLTEuMSA3LjUtLjNsMC00LjNjNC43IDAgMjMuMS0zLjQgMjMuMSAxNy4zIDAgMjAuNS0xOC41IDE3LjMtMTkuNyAxNy4zIDUuNyA0LjQgNS44IDEyIDIuMiAxNi4zbC4zIDBjMzMuNCAwIDM2LjctMjcuMyAzNi43LTM0IDAtMy44LTEuMS0zMi0zMy44LTMzLjZ6Il19LCRoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaWNyb3NvZnQiLGljb246WzQ0OCw1MTIsW10sImYzY2EiLCJNMCAzMmwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42em0yMzMuNCAwbDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6TTAgMjY1LjRsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnptMjMzLjQgMGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42eiJdfSxBaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmx5IixpY29uOlszMjAsNTEyLFtdLCJmNDE3IiwiTTE2NS45IDQyNy44YzEyLjkgMTEuNyAzMy43IDMzLjMgMzMuMiA1MC43IDAgLjgtLjEgMS42LS4xIDIuNS0xLjggMTkuOC0xOC44IDMxLjEtMzkuMSAzMS0yNS0uMS0zOS45LTE2LjgtMzguNy0zNS44IDEtMTYuMiAyMC41LTM2LjcgMzIuNC00Ny42IDIuMy0yLjEgMi43LTIuNyA1LjYtMy42IDMuNCAwIDMuOSAuMyA2LjcgMi44ek0zMDAgNjcuM2MtMTYuMy0yNS43LTM4LjYtNDAuNi02My4zLTUyLjEtMjUuNS0xMC43LTU0LjYtMTUuNC03Ni42LTE1LjItNDQuMSAwLTcxLjIgMTMuMi04MS4xIDE3LjMtNTMuNiAyNy45LTg0LjQgNjkuOS04Mi45IDE0MS4zIDcuMSA4Mi4yIDk3IDE3NiAxNTUuOCAyMzMuOCAxLjcgMS42IDQuNSA0LjUgNi4yIDUuMWwzLjMgLjFjMi4xLS43IDEuOC0uNSAzLjUtMi4xIDUyLjMtNDkuMiAxNDAuNy0xNDUuOCAxNTUuOS0yMTUuNyA3LTM5LjIgMy4xLTcyLjUtMjAuOC0xMTIuNXpNMTU0LjkgMzUxLjljLTI4LTUxLjEtNjUuMi0xMzAuNy02OS4zLTE4OS0zLjQtNDcuNSAxMS40LTEzMS4yIDY5LjMtMTM2LjdsMCAzMjUuN3pNMjk2LjggMTgwYy0xNi40IDU2LjgtNzcuMyAxMjgtMTE4LjkgMTcwLjMgMjcuOC01MS45IDY1LjItMTMzLjMgNjcuMi0xOTEuOSAxLjYtNDUuOS05LjgtMTA1LjgtNDgtMTMxLjQgODguOCAxOC4zIDExNS41IDk4LjEgOTkuNyAxNTN6Il19LERoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1zdHJpcGUiLGljb246WzU3Niw1MTIsW10sImYxZjUiLCJNNDkyLjQgMjIwLjhjLTguOSAwLTE4LjcgNi43LTE4LjcgMjIuN2wzNi43IDBjMC0xNi05LjMtMjIuNy0xOC0yMi43ek0zNzUgMjIzLjRjLTguMiAwLTEzLjMgMi45LTE3IDdsLjIgNTIuOGMzLjUgMy43IDguNSA2LjcgMTYuOCA2LjcgMTMuMSAwIDIxLjktMTQuMyAyMS45LTMzLjQgMC0xOC42LTktMzMuMi0yMS45LTMzLjF6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjIuMiAyODEuMWMwIDI1LjYtMjAuMyA0MC4xLTQ5LjkgNDAuMy0xMi4yIDAtMjUuNi0yLjQtMzguOC04LjFsMC0zMy45YzEyIDYuNCAyNy4xIDExLjMgMzguOSAxMS4zIDcuOSAwIDEzLjYtMi4xIDEzLjYtOC43IDAtMTctNTQtMTAuNi01NC00OS45IDAtMjUuMiAxOS4yLTQwLjIgNDgtNDAuMiAxMS44IDAgMjMuNSAxLjggMzUuMyA2LjVsMCAzMy40Yy0xMC44LTUuOC0yNC41LTkuMS0zNS4zLTkuMS03LjUgMC0xMi4xIDIuMi0xMi4xIDcuNyAwIDE2IDU0LjMgOC40IDU0LjMgNTAuN3pNMTkxIDIyNC41bC0yNyAwIDAgNTAuNWMwIDIwLjkgMjIuNSAxNC40IDI3IDEyLjZsMCAyOC45Yy00LjcgMi42LTEzLjMgNC43LTI0LjkgNC43LTIxLjEgMC0zNi45LTE1LjUtMzYuOS0zNi41bC4yLTExMy45IDM0LjctNy40IDAgMzAuOCAyNi45IDAgMCAzMC4zem03NCAyLjRjLTQuNS0xLjUtMTguNy0zLjYtMjcuMSA3LjRsMCA4NC40LTM1LjUgMCAwLTEyNC41IDMwLjcgMCAyLjIgMTAuNWM4LjMtMTUuMyAyNC45LTEyLjIgMjkuNi0xMC41bC4xIDAgMCAzMi43em00NC4xIDkxLjhsLTM1LjcgMCAwLTEyNC41IDM1LjcgMCAwIDEyNC41em0wLTE0Mi45bC0zNS43IDcuNiAwLTI4LjkgMzUuNy03LjYgMCAyOC45em03NC4xIDE0NS41Yy0xMi40IDAtMjAtNS4zLTI1LjEtOWwtLjEgNDAuMi0zNS41IDcuNSAwLTE2NS44IDMxLjMgMCAxLjggOC44YzQuOS00LjUgMTMuOS0xMS4xIDI3LjgtMTEuMSAyNC45IDAgNDguNCAyMi41IDQ4LjQgNjMuOCAwIDQ1LjEtMjMuMiA2NS41LTQ4LjYgNjUuNnptMTYwLjQtNTEuNWwtNjkuNSAwYzEuNiAxNi42IDEzLjggMjEuNSAyNy42IDIxLjUgMTQuMSAwIDI1LjItMyAzNC45LTcuOWwwIDI4LjZjLTkuNyA1LjMtMjIuNCA5LjItMzkuNCA5LjItMzQuNiAwLTU4LjgtMjEuNy01OC44LTY0LjUgMC0zNi4yIDIwLjUtNjQuOSA1NC4zLTY0LjkgMzMuNyAwIDUxLjMgMjguNyA1MS4zIDY1LjEgMCAzLjUtLjMgMTAuOS0uNCAxMi45eiJdfSxFaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29yZHByZXNzLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjQxMSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTMzIDI1NmMwLTMyLjMgNi45LTYzIDE5LjMtOTAuN0wxNTguNyA0NTYuN0M4NC4zIDQyMC41IDMzIDM0NC4yIDMzIDI1NnpNMjU2IDQ3OWMtMjEuOSAwLTQzLTMuMi02My05LjFsNjYuOS0xOTQuNCA2OC41IDE4Ny44Yy41IDEuMSAxIDIuMSAxLjYgMy4xLTIzLjEgOC4xLTQ4IDEyLjYtNzQgMTIuNnptMzAuNy0zMjcuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTIxLjkgMC01OC43LTIuOC01OC43LTIuOC0xMi0uNy0xMy40IDE3LjctMS40IDE4LjQgMCAwIDExLjQgMS40IDIzLjQgMi4xbDM0LjcgOTUuMi00OC44IDE0Ni4zLTgxLjItMjQxLjVjMTMuNC0uNyAyNS41LTIuMSAyNS41LTIuMSAxMi0xLjQgMTAuNi0xOS4xLTEuNC0xOC40IDAgMC0zNi4xIDIuOC01OS40IDIuOC00LjIgMC05LjEtLjEtMTQuNC0uMyAzOS45LTYwLjUgMTA4LjQtMTAwLjUgMTg2LjMtMTAwLjUgNTggMCAxMTAuOSAyMi4yIDE1MC42IDU4LjUtMS0uMS0xLjktLjItMi45LS4yLTIxLjkgMC0zNy40IDE5LjEtMzcuNCAzOS42IDAgMTguNCAxMC42IDMzLjkgMjEuOSA1Mi4zIDguNSAxNC44IDE4LjQgMzMuOSAxOC40IDYxLjUgMCAxOS4xLTcuMyA0MS4yLTE3IDcyLjFsLTIyLjIgNzQuMy04MC43LTIzOS42em04MS40IDI5Ny4ybDY4LjEtMTk2LjljMTIuNy0zMS44IDE3LTU3LjIgMTctNzkuOSAwLTguMi0uNS0xNS44LTEuNS0yMi45IDE3LjQgMzEuOCAyNy4zIDY4LjIgMjcuMyAxMDcgMCA4Mi4zLTQ0LjYgMTU0LjEtMTEwLjkgMTkyLjd6Il19LFBoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZWxsc3kiLGljb246WzY0MCw1MTIsW10sImYyMTMiLCJNNTQwIDIzNy4zYzMuMS0xMi4zIDQuMy0yNC44IDQuMy0zNy40IDAtOTIuNS03NS40LTE2Ny45LTE2Ny45LTE2Ny45LTc3LjIgMC0xNDQuNiA1My0xNjMgMTI3LjgtMTUuMy0xMy4yLTM0LjktMjAuNS01NS4yLTIwLjUtNDYuMyAwLTg0IDM3LjctODQgODQgMCA3LjQgLjkgMTUgMy4xIDIyLjQtNDIuOSAyMC4yLTcwLjggNjMuNy03MC44IDExMS4yIDAgNjggNTUuNSAxMjMuMiAxMjMuMiAxMjMuMmwzODEuMiAwYzY3LjcgMCAxMjMuMi01NS4yIDEyMy4yLTEyMy4yIDAtNTYuNC0zOC45LTEwNi05NC4xLTExOS41ek0yMDAuMiA0MDEuNmMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMC45IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xMTAuOWMwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMwLjkgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS4zbDAgMTEwLjl6bTg5LjUgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMC45IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xMzEuNWMwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMwLjkgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS4zbDAgMTMxLjV6bTg5LjUgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMSAwYy04LjMgMC0xNS4zLTctMTUuMy0xNS4zbDAtMTYyLjdjMC04LjMgNy0xNS4zIDE1LjMtMTUuM2wzMSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxNjIuN3ptODcgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0yOC41IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0yMjQuNmMwLTguNiA3LTE1LjYgMTUuMy0xNS42bDI4LjUgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS42bDAgMjI0LjZ6Il19LEloZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkYXNoY3ViZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjIxMCIsIk0zMjYuOSAxMDRsLTIxNi4yIDBjLTUxLjEgMC05MS4yIDQzLjMtOTEuMiA5My41bDAgMjI5LjVjMCA1MC41IDQwLjEgODUgOTEuMiA4NWwyMjcuMiAwYzUxLjEgMCA5MS4yLTM0LjUgOTEuMi04NWwwLTQyNy0xMDIuMiAxMDR6TTE1NC4yIDQxNi41Yy0xNy43IDAtMzIuNC0xNS4xLTMyLjQtMzIuOGwwLTE0Mi45YzAtMTcuNyAxNC43LTMyLjUgMzIuNC0zMi41bDE0MC43IDBjMTcuNyAwIDMyIDE0LjggMzIgMzIuNWwwIDEyMy41IDUxLjEgNTIuMy0yMjMuOCAwIDAtLjF6Il19LE5oZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXR0ZXIiLGljb246WzM4NCw1MTIsW10sImY0MjYiLCJNNjYuNCAzMjIuNWwtNTAuNCAwIDAtMzIyLjUgNTAuNCAwIDAgMzIyLjV6TTE2Ni45IDc2LjFsLTUwLjQgMCAwIDQzNS45IDUwLjQgMCAwLTQzNS45em0xMDAuNiAwbC01MC40IDAgMCA0MzUuOSA1MC40IDAgMC00MzUuOXpNMzY4IDc2bC01MC40IDAgMCAyNDcgNTAuNCAwIDAtMjQ3eiJdfSxGaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29sZi1wYWNrLWJhdHRhbGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjUxNCIsIk0yMzYuMiA0NzEuNWwxMC42IDE1LjggNS4zLTEyLjMgNS4zIDcgMCAyOS45YzIxLjEtNy45IDIxLjEtNjYuOSAyNS41LTk3LjIgNC42LTMxLjktLjktOTIuOCA4MS40LTE0OS4xLTguOS0yMy42LTEyLTQ5LjQtMi42LTgwIDI3LjkgMy40IDUzLjkgMTAuNiA2My4zIDU0LjFsLTMwLjMgOC40YzExLjEgMjMgMTcgNDYuOCAxMy4yIDcyLjFsLTI3LjMtNy02LjIgMzMuNC0xOC41LTctOC44IDMzLjQtMTkuNC03IDI2LjQgMjEuMSA4LjgtMjguMiAyNC42IDUuMiA3LTM1LjYgMjYuNCAxNC41Yy4yLTIwIDctNTguMS04LjgtODQuNWwyNi40IDUuM2M0LTIyLjEtMi40LTM5LjItNy45LTU2LjdsMjIuNCA5LjdjLS40LTI1LjEtMjkuOS01Ni44LTYxLjYtNTguNS0yMC4yLTEuMS01Ni43LTI1LjItNTQuMS01MS45IDItMTkuOSAxNy40LTQyLjYgNDMuMS00OS43LTQ0IDM2LjUtOS43IDY3LjMgNS4zIDczLjUgNC40LTExLjQgMTcuNS02OS4xIDAtMTMwLjItNDAuNCAyMi45LTg5LjcgNjUuMS05My4yIDE0Ny44bC01OCAzOC43LTMuNSA5My4yIDEwNy4zLTU5LjggNyA3LTE3LjYgMy41LTQ0IDM4LjctMTUuOC01LjMtMjguMSA0OS4zLTMuNSAxMTkuNiAyMS4xIDE1LjgtMzIuNSAxNS44LTMyLjYtMTUuOCAyMS4xLTE1LjgtMy41LTExOS42LTI4LjItNDkuMy0xNS44IDUuMy00NC0zOC43LTE3LjYtMy41IDctNyAxMDcuMyA1OS44LTMuNS05My4zLTU4LjEtMzguN2MtMy41LTgyLjgtNTIuNy0xMjUtOTMuMi0xNDcuOS0xNy41IDYxLjEtNC40IDExOC44IDAgMTMwLjIgMTUtNi4yIDQ5LjMtMzcgNS4zLTczLjUgMjUuNyA3LjEgNDEuMSAyOS44IDQzLjEgNDkuNyAyLjYgMjYuNy0zMy45IDUwLjgtNTQuMSA1MS45LTMxLjcgMS43LTYxLjIgMzMuNC02MS42IDU4LjVsMjIuNC05LjdDMTMuNCAyMjQuNyA3IDI0MS44IDExIDI2My45bDI2LjQtNS4zYy0xNS44IDI2LjQtOS4xIDY0LjQtOC44IDg0LjRsMjYuNC0xNC41IDcgMzUuNiAyNC42LTUuMyA4LjggMjguMiAyNi40LTIxLjEtMTkuNCA3LTguOC0zMy40LTE4LjUgNy02LjItMzMuNC0yNy4zIDdDMzggMjk0LjggNDMuOCAyNzEgNTUgMjQ4bC0zMC4zLTguNGM5LjQtNDMuNSAzNS41LTUwLjggNjMuMy01NC4xIDkuNCAzMC42IDYuMiA1Ni41LTIuNiA4MC4xIDgyLjMgNTYuMyA3Ni44IDExNy4yIDgxLjQgMTQ5LjEgNC40IDMwLjMgNC40IDg5LjMgMjUuNSA5Ny4ybDAtMjkuOCA1LjMtNyA1LjMgMTIuMyAxMC42LTE1LjggMTEuNCAyMS4xIDExLjQtMjEuMSAwIDB6bTc5LjItOTVMMjk5LjUgMzY2YzcuNS00LjQgMTMuOC04LjQgMTkuNC0xMi4zLS42IDcuMi0uMyAxMy44LTMuNSAyMi44bDAgMHptMjguMi00OS4zYy0uNCAxMC45LS45IDIxLjctMS44IDMxLjctNy44LTEuOS0xNS42LTMuOC0yMS4xLTcgOC4yLTcuOSAxNS42LTE2LjMgMjIuOS0yNC43bDAgMHptMjQuNiA1LjNjMC0xMy40LTIuMS0yNC4yLTUuMy0zMy40LTUuNSA5LjUtMTEuNyAxOC42LTE4LjUgMjcuM2wyMy44IDYuMnptMy41LTgwLjljMTkuNCAxMi44IDI3LjggMzMuNyAyOS45IDU2LjMtMTIuMy00LjUtMjQuNi05LjMtMzctMTAuNiA1LjEtMTIgNi42LTI4LjEgNy00NS43bDAgMHptLTEuOC00NS43Yy44IDE0LjMgMS44IDI4LjggMS44IDQyLjIgMTkuMi04LjEgMjkuOC05LjcgNDQtMTQuMS0xMC42LTE5LTI3LjItMjUuNS00NS44LTI4LjJsMCAwek0xMzQuMiAzNzYuNUwxNTAgMzY2Yy03LjUtNC40LTEzLjgtOC40LTE5LjQtMTIuMyAuNiA3LjMgLjMgMTMuOSAzLjUgMjIuOWwwIDB6TTEwNiAzMjcuM2MuNCAxMC45IC45IDIxLjcgMS44IDMxLjcgNy44LTEuOSAxNS42LTMuOCAyMS4xLTctOC4yLTcuOS0xNS42LTE2LjMtMjIuOS0yNC43em0tMjQuNiA1LjNjMC0xMy40IDItMjQuMiA1LjMtMzMuNCA1LjUgOS41IDExLjcgMTguNiAxOC41IDI3LjNsLTIzLjggNi4yem0tMy41LTgwLjljLTE5LjQgMTIuOC0yNy44IDMzLjctMjkuOSA1Ni4zIDEyLjMtNC41IDI0LjYtOS4zIDM3LTEwLjYtNS0xMi02LjYtMjguMS03LTQ1LjdsLS4xIDB6bTEuOC00NS43Yy0uOCAxNC4zLTEuOCAyOC44LTEuOCA0Mi4yLTE5LjItOC4xLTI5LjgtOS43LTQ0LTE0LjEgMTAuNi0xOSAyNy4yLTI1LjUgNDUuOC0yOC4xeiJdfSxPaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGFzdGZtIixpY29uOls1MTIsNTEyLFtdLCJmMjAyIiwiTTIyNS44IDM2Ny4xbC0xOC44LTUxcy0zMC41IDM0LTc2LjIgMzRjLTQwLjUgMC02OS4yLTM1LjItNjkuMi05MS41IDAtNzIuMSAzNi40LTk3LjkgNzIuMS05Ny45IDY2LjUgMCA3NC44IDUzLjMgMTAwLjkgMTM0LjkgMTguOCA1Ni45IDU0IDEwMi42IDE1NS40IDEwMi42IDcyLjcgMCAxMjItMjIuMyAxMjItODAuOSAwLTcyLjktNjIuNy04MC42LTExNS05Mi4xLTI1LjgtNS45LTMzLjQtMTYuNC0zMy40LTM0IDAtMTkuOSAxNS44LTMxLjcgNDEuNi0zMS43IDI4LjIgMCA0My40IDEwLjYgNDUuNyAzNS44bDU4LjYtN2MtNC43LTUyLjgtNDEuMS03NC41LTEwMC45LTc0LjUtNTIuOCAwLTEwNC40IDE5LjktMTA0LjQgODMuOSAwIDM5LjkgMTkuNCA2NS4xIDY4IDc2LjggNDQuOSAxMC42IDc5LjggMTMuOCA3OS44IDQ1LjcgMCAyMS43LTIxLjEgMzAuNS02MSAzMC41LTU5LjIgMC04My45LTMxLjEtOTcuOS03My45LTMyLTk2LjgtNDMuNi0xNjMtMTYxLjMtMTYzLTg2LjEgMC0xMzEuOCA1NC41LTEzMS44IDE0Ny4yIDAgODkuMSA0NS43IDEzNy4yIDEyNy45IDEzNy4yIDY2LjIgMCA5Ny45LTMxLjEgOTcuOS0zMS4xeiJdfSxSaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hvcHdhcmUiLGljb246WzUxMiw1MTIsW10sImY1YjUiLCJNNDAzLjUgNDU1LjRjLTQyLjYgMzEuNy05NC40IDQ4LjctMTQ3LjUgNDguNi0xMzcuMiAwLTI0OC0xMTEtMjQ4LTI0OCAwLTEzNy4yIDExMS0yNDggMjQ4LTI0OCA2MS4yLS4xIDEyMC4yIDIyLjYgMTY1LjcgNjMuNSAuNiAuNSAuOSAxLjIgMS4xIDEuOXMuMSAxLjUtLjMgMi4yLS44IDEuMy0xLjUgMS42LTEuNCAuNS0yLjIgLjRjLTE4LjgtMi41LTM3LjctMy43LTU2LjctMy43LTEyOS40IDAtMjIyLjQgNTMuNS0yMjIuNCAxNTUuNCAwIDEwOSA5Mi4xIDE0NS45IDE3Ni44IDE3OC43IDMzLjYgMTMgNjUuNCAyNS40IDg3IDQxLjYgLjQgLjMgLjggLjggMS4xIDEuM3MuNCAxIC40IDEuNi0uMSAxLjEtLjQgMS42LS42IC45LTEuMSAxLjNsLS4xIDB6TTUwMyAyMzMuMWMtLjEtLjktLjUtMS44LTEuMy0yLjQtNTEuOC00My05My42LTYwLjUtMTQ0LjUtNjAuNS04NC4xIDAtODAuMyA1Mi4yLTgwLjMgNTMuNiAwIDQyLjYgNTIuMSA2MiAxMTIuMyA4NC41IDMxLjEgMTEuNiA2My4yIDIzLjYgOTIuNyAzOS45IC40IC4yIC45IC40IDEuNCAuNHMxIDAgMS41LS4yIC45LS40IDEuMy0uOCAuNi0uOCAuOC0xLjJjMTQuMS0zNiAxOS41LTc0LjggMTYtMTEzLjN6Il19LEJoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibG9nZ2VyIixpY29uOls0NDgsNTEyLFtdLCJmMzdjIiwiTTE2Mi40IDE5NmM0LjgtNC45IDYuMi01LjEgMzYuNC01LjEgMjcuMiAwIDI4LjEgLjEgMzIuMSAyLjEgNS44IDIuOSA4LjMgNyA4LjMgMTMuNiAwIDUuOS0yLjQgMTAtNy42IDEzLjQtMi44IDEuOC00LjUgMS45LTMxLjEgMi4xLTE2LjQgLjEtMjkuNS0uMi0zMS41LS44LTEwLjMtMi45LTE0LjEtMTcuNy02LjYtMjUuM3ptNjEuNCA5NC41Yy01My45IDAtNTUuOCAuMi02MC4yIDQuMS0zLjUgMy4xLTUuNyA5LjQtNS4xIDEzLjkgLjcgNC43IDQuOCAxMC4xIDkuMiAxMiAyLjIgMSAxNC4xIDEuNyA1Ni4zIDEuMmw0Ny45LS42IDkuMi0xLjVjOS01LjEgMTAuNS0xNy40IDMuMS0yNC40LTUuMy00LjctNS00LjctNjAuNC00Ljd6TTQ0Ny4yIDQyMC42Yy0zLjUgMjguNC0yMyA1MC40LTUxLjEgNTcuNS03LjIgMS44LTkuNyAxLjktMTcyLjkgMS44LTE1Ny44IDAtMTY1LjktLjEtMTcyLTEuOC04LjQtMi4yLTE1LjYtNS41LTIyLjMtMTAtNS42LTMuOC0xMy45LTExLjgtMTctMTYuNC0zLjgtNS42LTguMi0xNS4zLTEwLTIyUzAgNDIwLjMgMCAyNTYuM2MwLTE2My4xIDAtMTY2LjYgMS44LTE3My43IDYuMy0yNC43IDI1LjktNDMuNiA1MS4yLTQ5LjIgNy4zLTEuNiAzMzIuMS0xLjkgMzQwLS4zIDIxLjIgNC4zIDM3LjkgMTcuMSA0Ny42IDM2LjQgNy43IDE1LjMgNy0xLjUgNy4zIDE4MC42IC4yIDExNS44IDAgMTY0LjUtLjcgMTcwLjV6TTM2MS44IDIzNS40Yy0xLjEtNS00LjItOS42LTcuNy0xMS41LTEuMS0uNi04LTEuMy0xNS41LTEuNy0xMi40LS42LTEzLjgtLjgtMTcuOC0zLjEtNi4yLTMuNi03LjktNy42LTgtMTguMyAwLTIwLjQtOC41LTM5LjQtMjUuMy01Ni41LTEyLTEyLjItMjUuMy0yMC41LTQwLjYtMjUuMS0zLjYtMS4xLTExLjgtMS41LTM5LjItMS44LTQyLjktLjUtNTIuNSAuNC02Ny4xIDYuMi0yNyAxMC43LTQ2LjMgMzMuNC01My40IDYyLjQtMS4zIDUuNC0xLjYgMTQuMi0xLjkgNjQuMy0uNCA2Mi44IDAgNzIuMSA0IDg0LjUgOS43IDMwLjcgMzcuMSA1My40IDY0LjYgNTguNCA5LjIgMS43IDEyMi4yIDIuMSAxMzMuNyAuNSAyMC4xLTIuNyAzNS45LTEwLjggNTAuNy0yNS45IDEwLjctMTAuOSAxNy40LTIyLjggMjEuOC0zOC41IDMuMi0xMC45IDIuOS04OC40IDEuNy05My45eiJdfSxIaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWRnZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4MiIsIk0xMjAuMSAzNy40YzQxLTI1LjIgODcuNi0zOC4yIDEzNC45LTM3LjQgMTY4IDAgMjU3IDEyMy44IDI1NyAyMTkuNS0uMSAzMi43LTEzIDYzLjktMzUuOSA4Ny4yLTIyLjkgMjMuMi01NCAzNi41LTg2LjcgMzctNzUuMiAwLTkxLjUtMjMuMS05MS41LTMyIDAtMy44IDEuMi02LjIgNC44LTkuNGwxLTEuMiAuNC0xLjZjMTAuNS0xMS41IDE1LjktMjYuMiAxNS45LTQxLjYgMC03OC43LTgyLjItMTQyLjctMTg0LTE0Mi43LTM3LjUtLjMtNzQuNSA4LjktMTA3LjUgMjYuOSAyNy01Ny41IDgyLjctOTcuNiA5MS4zLTEwMy44IC44LS42IC4zLS44IC4zLS44em0xNS42IDMxOC4xYy0xLjQgMzAgNC42IDYwIDE2LjQgODcuMiAxMy42IDI2LjQgMzIuNyA1MSA1Ni41IDY5LjMtNTkuNS0xMS41LTExMS41LTQzLjktMTQ5LjQtODkuMy0zOC4xLTQ2LjQtNTkuMi0xMDQuMy01OS4yLTE2NC44IDAtNTEuMiA2Mi40LTk0LjQgMTM2LTk0LjQgMzYuNi0uNiA3Mi40IDEwLjkgMTAxLjggMzIuN2wtMy42IDEuMmMtNTEuNSAxNy42LTk4LjUgOTAuNy05OC41IDE1OC4xek00NjkuOCA0MDBsLS43IC4xYy0xMS44IDE4LjgtMjUuOSAzNS4xLTQyLjIgNDkuNS0zMC44IDI4LTY4LjEgNDUuNS0xMDguOCA0OS45LTE4LjYgLjMtMzYuOC0zLjItNTMuOC0xMS40LTI1LjYtMTAuMy00Ny4xLTMwLTYxLjYtNTMtMTQuNC0yMy45LTIxLjEtNTEuNy0xOS03OS42LS42LTIwLjEgNS40LTQwLjMgMTUtNTguMiAxMy45IDMzLjEgMzcuNSA2MS4zIDY3LjYgODAuOHM2NS41IDI5LjUgMTAxLjQgMjguNmMzMSAuMyA2Mi4xLTYuNyA5MC4yLTIwLjVsMS45LS45YzMuOS0yLjMgNy43LTMuOSAxMS42IDAgNC41IDQuOSAxLjggOS4yLTEuMiAxNC0uMiAuMi0uMyAuNS0uNCAuN3oiXX0scWhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImlveGhvc3QiLGljb246WzY0MCw1MTIsW10sImYyMDgiLCJNNjE2IDE2MGwtNjcuMyAwQzUxMS4yIDcwLjcgNDIyLjkgOCAzMjAgOCAxODMgOCA3MiAxMTkgNzIgMjU2IDcyIDI3Mi40IDczLjYgMjg4LjUgNzYuNyAzMDRMMjQgMzA0Yy0xMy4zIDAtMjQgMTAuOC0yNCAyNCAwIDEzLjMgMTAuNyAyNCAyNCAyNGw2Ny4zIDBjMzcuNSA4OS4zIDEyNS44IDE1MiAyMjguNyAxNTIgMTM3IDAgMjQ4LTExMSAyNDgtMjQ4IDAtMTYuNC0xLjYtMzIuNS00LjctNDhsNTIuNyAwYzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0em0tOTYgOTZjMCAxMTAuNS04OS41IDIwMC0yMDAgMjAwLTc1LjcgMC0xNDEuNi00Mi0xNzUuNS0xMDRMNDI0IDM1MmMxMy4zIDAgMjQtMTAuOCAyNC0yNCAwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjk4LjIgMGMtMy44LTE1LjQtNS44LTMxLjQtNS44LTQ4IDAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMCA3NS43IDAgMTQxLjYgNDIgMTc1LjUgMTA0TDIxNiAxNjBjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0bDI5OC4yIDBjMy44IDE1LjQgNS44IDMxLjQgNS44IDQ4ek0yMTYgMjMybDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuMi0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMy4yIDEwLjctMjQgMjQtMjR6Il19LFZoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY2hsaXgiLGljb246WzQ0OCw1MTIsW10sImYzZWEiLCJNMzUwLjUgMTU3LjdsLTU0LjItNDYuMSA3My40LTM5IDc4LjMgNDQuMi05Ny41IDQwLjl6TTE5MiAxMjIuMWw0NS43LTI4LjIgMzQuNyAzNC42LTU1LjQgMjktMjUtMzUuNHptLTY1LjEgNi42bDMxLjktMjIuMSAxNy4yIDI4LjQtMzYuNyAyMi41LTEyLjQtMjguOHptLTIzLjMgODguMmwtOC44LTM0LjggMjkuNi0xOC4zIDEzLjEgMzUuMy0zMy45IDE3Ljh6TTgyLjQgMTMzLjJsMjMuOS0xOC4xIDguOSAyNC0yNi43IDE4LjMtNi4xLTI0LjJ6TTU5IDIwNi41bC0zLjYtMjguNCAyMi4zLTE1LjUgNi4xIDI4LjctMjQuOCAxNS4yek0yOC40IDIyMy4xbDIwLjgtMTIuOCAzLjMgMzMuNC0yMi45IDEyLTEuMi0zMi42ek0xLjQgMjY4TDIwLjYgMjU3LjggMjEgMjk2IDAgMzA0LjggMS40IDI2OHptNTkuMSA1OS4zbC0yOC4zIDguMy0xLjYtNDYuOCAyNS4xLTEwLjcgNC44IDQ5LjJ6TTk5IDI2My4ybC0zMS4xIDEzLTUuMi00MC44IDI3LjQtMTQuNCA4LjkgNDIuMnpNMTIzLjIgMzc3bC00MS42IDUuOS04LjEtNjMuNSAzNS4yLTEwLjggMTQuNSA2OC40em0yOC41LTEzOS45bDIxLjIgNTcuMS00Ni4yIDEzLjYtMTMuNy01NC4xIDM4LjctMTYuNnptODUuNyAyMzAuNWwtNzAuOS0zLjMtMjQuMy05NS44IDU1LjItOC42IDQwIDEwNy43ek0xNTIuNSAxODcuOWw0Mi4yLTIyLjQgMjggNDUuOS01MC44IDIxLjMtMTkuNC00NC44em00MSA5NC45bDYxLjMtMTguNyA1Mi44IDg2LjYtNzkuOCAxMS4zLTM0LjMtNzkuMnptNTEuNC04NS42bDY3LjMtMjguOCA2NS41IDY1LjQtODguNiAyNi4yLTQ0LjItNjIuOHoiXX0samhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImQtYW5kLWQiLGljb246WzU3Niw1MTIsW10sImYzOGQiLCJNODIuOSA5OC45Yy0uNi0xNy4yIDItMzMuOCAxMi43LTQ4LjIgLjMgNy40IDEuMiAxNC41IDQuMiAyMS42IDUuOS0yNy41IDE5LjctNDkuMyA0Mi4zLTY1LjUtMS45IDUuOS0zLjUgMTEuOC0zIDE3LjcgOC43LTcuNCAxOC44LTE3LjggNDQuNC0yMi43IDE0LjctMi44IDI5LjctMiA0Mi4xIDEgMzguNSA5LjMgNjEgMzQuMyA2OS43IDcyLjMgNS4zIDIzLjEgLjcgNDUtOC4zIDY2LjQtNS4yIDEyLjQtMTIgMjQuNC0yMC43IDM1LjEtMi0xLjktMy45LTMuOC01LjgtNS42LTQyLjgtNDAuOC0yNi44LTI1LjItMzcuNC0zNy40LTEuMS0xLjItMS0yLjItLjEtMy42IDguMy0xMy41IDExLjgtMjguMiAxMC00NC0xLjEtOS44LTQuMy0xOC45LTExLjMtMjYuMi0xNC41LTE1LjMtMzkuMi0xNS01My41IC42LTExLjQgMTIuNS0xNC4xIDI3LjQtMTAuOSA0My42IC4yIDEuMyAuNCAyLjcgMCAzLjktMy40IDEzLjctNC42IDI3LjYtMi41IDQxLjYgLjEgLjUgLjEgMS4xIC4xIDEuNiAwIC4zLS4xIC41LS4yIDEuMS0yMS44LTExLTM2LTI4LjMtNDMuMi01Mi4yLTguMyAxNy44LTExLjEgMzUuNS02LjYgNTQuMS0xNS42LTE1LjItMjEuMy0zNC4zLTIyLTU1LjJ6TTU1Mi41IDIyMi4xYy0xMS42LTExLjYtMjUtMjAuNC00MC4xLTI2LjYtMTIuOC01LjItMjYtNy45LTM5LjktNy4xLTEwIC42LTE5LjYgMy4xLTI5IDYuNC0yLjUgLjktNS4xIDEuNi03LjcgMi4yLTQuOSAxLjItNy4zLTMuMS00LjctNi44IDMuMi00LjYgMy40LTQuMiAxNS0xMiAuNi0uNCAxLjItLjggMi4yLTEuNWwtMi41IDBjLS42IDAtMS4yIC4yLTEuOSAuMy0xOS4zIDMuMy0zMC43IDE1LjUtNDguOSAyOS42LTEwLjQgOC4xLTEzLjggMy44LTEyLS41IDEuNC0zLjUgMy4zLTYuNyA1LjEtMTAgMS0xLjggMi4zLTMuNCAzLjUtNS4xLS4yLS4yLS41LS4zLS43LS41LTI3IDE4LjMtNDYuNyA0Mi40LTU3LjcgNzMuMyAuMyAuMyAuNyAuNiAxIC45IC4zLS42IC41LTEuMiAuOS0xLjcgMTAuNC0xMi4xIDIyLjgtMjEuOCAzNi42LTI5LjggMTguMi0xMC42IDM3LjUtMTguMyA1OC43LTIwLjIgNC4zLS40IDguNy0uMSAxMy4xLS4xLTEuOCAuNy0zLjUgLjktNS4zIDEuMS0xOC41IDIuNC0zNS41IDktNTEuNSAxOC41LTMwLjIgMTcuOS01NC41IDQyLjItNzUuMSA3MC40LS4zIC40LS40IC45LS43IDEuMyAxNC41IDUuMyAyNCAxNy4zIDM2LjEgMjUuNiAuMi0uMSAuMy0uMiAuNC0uNGwxLjItMi43YzEyLjItMjYuOSAyNy01Mi4zIDQ2LjctNzQuNSAxNi43LTE4LjggMzgtMjUuMyA2Mi41LTIwIDUuOSAxLjMgMTEuNCA0LjQgMTcuMiA2LjggMi4zLTEuNCA1LjEtMy4yIDgtNC43IDguNC00LjMgMTcuNC03IDI2LjctOSAxNC43LTMuMSAyOS41LTQuOSA0NC41LTEuM2wwLS41Yy0uNS0uNC0xLjItLjgtMS43LTEuNHpNMzE3LjEgMzk3LjZjLTM5LjQtMzMtMjIuOC0xOS41LTQyLjctMzUuNi0uOCAuOSAwLS4yLTEuOSAzLTExLjIgMTkuMS0yNS41IDM1LjMtNDQgNDcuNi0xMC4zIDYuOC0yMS41IDExLjgtMzQuMSAxMS44LTIxLjYgMC0zOC4yLTkuNS00OS40LTI3LjgtMTItMTkuNS0xMy4zLTQwLjctOC4yLTYyLjYgNy44LTMzLjggMzAuMS01NS4yIDM4LjYtNjQuMy0xOC43LTYuMi0zMyAxLjctNDYuNCAxMy45IC44LTEzLjkgNC4zLTI2LjIgMTEuOC0zNy4zLTI0LjMgMTAuNi00NS45IDI1LTY0LjggNDMuOS0uMy01LjggNS40LTQzLjcgNS42LTQ0LjcgLjMtMi43LS42LTUuMy0zLTcuNC0yNC4yIDI0LjctNDQuNSA1MS44LTU2LjEgODQuNiA3LjQtNS45IDE0LjktMTEuNCAyMy42LTE2LjItOC4zIDIyLjMtMTkuNiA1Mi44LTcuOCAxMDEuMSA0LjYgMTkgMTEuOSAzNi44IDI0LjEgNTIuMyAyLjkgMy43IDYuMyA2LjkgOS41IDEwLjMgLjItLjIgLjQtLjMgLjYtLjUtMS40LTctMi4yLTE0LjEtMS41LTIxLjkgMi4yIDMuMiAzLjkgNiA1LjkgOC42IDEyLjYgMTYgMjguNyAyNy40IDQ3LjIgMzUuNiAyNSAxMS4zIDUxLjEgMTMuMyA3Ny45IDguNiA1NC45LTkuNyA5MC43LTQ4LjYgMTE2LTk4LjggMS0xLjggLjYtMi45LS45LTQuMnptMTcyLTQ2LjRjLTkuNS0zLjEtMjIuMi00LjItMjguNy0yLjkgOS45IDQgMTQuMSA2LjYgMTguOCAxMiAxMi42IDE0LjQgMTAuNCAzNC43LTUuNCA0NS42LTExLjcgOC4xLTI0LjkgMTAuNS0zOC45IDkuMS0xLjItLjEtMi4zLS40LTMtLjYgMi44LTMuNyA2LTcgOC4xLTEwLjggOS40LTE2LjggNS40LTQyLjEtOC43LTU2LjEtMi4xLTIuMS00LjYtMy45LTctNS45LS4zIDEuMy0uMSAyLjEgLjEgMi44IDQuMiAxNi42LTguMSAzMi40LTI0LjggMzEuOC03LjYtLjMtMTMuOS0zLjgtMTkuNi04LjUtMTkuNS0xNi4xLTM5LjEtMzIuMS01OC41LTQ4LjMtNS45LTQuOS0xMi41LTguMS0yMC4xLTguNy00LjYtLjQtOS4zLS42LTEzLjktLjktNS45LS40LTguOC0yLjgtMTAuNC04LjQtLjktMy40LTEuNS02LjgtMi4yLTEwLjItMS41LTguMS02LjItMTMtMTQuMy0xNC4yLTQuNC0uNy04LjktMS0xMy4zLTEuNS0xMy0xLjQtMTkuOC03LjQtMjIuNi0yMC4zLTUgMTEtMS42IDIyLjQgNy4zIDI5LjkgNC41IDMuOCA5LjMgNy4zIDEzLjggMTEuMiA0LjYgMy44IDcuNCA4LjcgNy45IDE0LjggLjQgNC43IC44IDkuNSAxLjggMTQuMSAyLjIgMTAuNiA4LjkgMTguNCAxNyAyNS4xIDE2LjUgMTMuNyAzMyAyNy4zIDQ5LjUgNDEuMSAxNy45IDE1IDEzLjkgMzIuOCAxMyA1Ni0uOSAyMi45IDEyLjIgNDIuOSAzMy41IDUxLjIgMSAuNCAyIC42IDMuNiAxLjEtMTUuNy0xOC4yLTEwLjEtNDQuMSAuNy01Mi4zIC4zIDIuMiAuNCA0LjMgLjkgNi40IDkuNCA0NC4xIDQ1LjQgNjQuMiA4NSA1Ni45IDE2LTIuOSAzMC42LTguOSA0Mi45LTE5LjggMi0xLjggMy43LTQuMSA1LjktNi41LTE5LjMgNC42LTM1LjggLjEtNTAuOS0xMC42IC43LS4zIDEuMy0uMyAxLjktLjMgMjEuMyAxLjggNDAuNi0zLjQgNTctMTcuNCAxOS41LTE2LjYgMjYuNi00Mi45IDE3LjQtNjYtOC4zLTIwLjEtMjMuNi0zMi4zLTQzLjgtMzguOXpNOTkuOCAxNzkuM2MtNS4zLTkuMi0xMy4yLTE1LjYtMjIuMS0yMS4zIDEzLjctLjUgMjYuNiAuMiAzOS42IDMuNy03LTEyLjItOC41LTI0LjctNS0zOC43IDUuMyAxMS45IDEzLjcgMjAuMSAyMy42IDI2LjggMTkuNyAxMy4yIDM1LjcgMTkuNiA0Ni43IDMwLjIgMy40IDMuMyA2LjMgNy4xIDkuNiAxMC45LS44LTIuMS0xLjQtNC4xLTIuMi02LTUtMTAuNi0xMy0xOC42LTIyLjYtMjUtMS44LTEuMi0yLjgtMi41LTMuNC00LjUtMy4zLTEyLjUtMy0yNS4xLS43LTM3LjYgMS01LjUgMi44LTEwLjkgNC41LTE2LjMgLjgtMi40IDIuMy00LjYgNC02LjYgLjYgNi45IDAgMjUuNSAxOS42IDQ2IDEwLjggMTEuMyAyMi40IDIxLjkgMzMuOSAzMi43IDkgOC41IDE4LjMgMTYuNyAyNS41IDI2LjggMS4xIDEuNiAyLjIgMy4zIDMuOCA0LjctNS0xMy0xNC4yLTI0LjEtMjQuMi0zMy44LTkuNi05LjMtMTkuNC0xOC40LTI5LjItMjcuNC0zLjMtMy00LjYtNi43LTUuMS0xMC45LTEuMi0xMC40IDAtMjAuNiA0LjMtMzAuMiAuNS0xIDEuMS0yIDEuOS0zLjMgLjUgNC4yIC42IDcuOSAxLjQgMTEuNiA0LjggMjMuMSAyMC40IDM2LjMgNDkuMyA2My41IDEwIDkuNCAxOS4zIDE5LjIgMjUuNiAzMS42IDQuOCA5LjMgNy4zIDE5IDUuNyAyOS42LS4xIC42IC41IDEuNyAxLjEgMiA2LjIgMi42IDEwIDYuOSA5LjcgMTQuMyA3LjctMi42IDEyLjUtOCAxNi40LTE0LjUgNC4yIDIwLjItOS4xIDUwLjMtMjcuMiA1OC43IC40LTQuNSA1LTIzLjQtMTYuNS0yNy43LTYuOC0xLjMtMTIuOC0xLjMtMjIuOS0yLjEgNC43LTkgMTAuNC0yMC42IC41LTIyLjQtMjQuOS00LjYtNTIuOCAxLjktNTcuOCA0LjYgOC4yIC40IDE2LjMgMSAyMy41IDMuMy0yIDYuNS00IDEyLjctNS44IDE4LjktMS45IDYuNSAyLjEgMTQuNiA5LjMgOS42IDEuMi0uOSAyLjMtMS45IDMuMy0yLjctMy4xIDE3LjktMi45IDE1LjktMi44IDE4LjMgLjMgMTAuMiA5LjUgNy44IDE1LjcgNy4zLTIuNSAxMS44LTI5LjUgMjcuMy00NS40IDI1LjggNy00LjcgMTIuNy0xMC4zIDE1LjktMTcuOS02LjUgLjgtMTIuOSAxLjYtMTkuMiAyLjRsLS4zLS45YzQuNy0zLjQgOC03LjggMTAuMi0xMy4xIDguNy0yMS4xLTMuNi0zOC0yNS0zOS45LTkuMS0uOC0xNy44IC44LTI1LjkgNS41IDYuMi0xNS42IDE3LjItMjYuNiAzMi42LTM0LjUtMTUuMi00LjMtOC45LTIuNy0yNC42LTYuMyAxNC42LTkuMyAzMC4yLTEzLjIgNDYuNS0xNC42LTUuMi0zLjItNDguMS0zLjYtNzAuMiAyMC45IDcuOSAxLjQgMTUuNSAyLjggMjMuMiA0LjItMjMuOCA3LTQ0IDE5LjctNjIuNCAzNS42IDEuMS00LjggMi43LTkuNSAzLjMtMTQuMyAuNi00LjUgLjgtOS4yIC4xLTEzLjYtMS41LTkuNC04LjktMTUuMS0xOS43LTE2LjMtNy45LS45LTE1LjYgLjEtMjMuMyAxLjMtLjkgLjEtMS43IC4zLTIuOSAwIDE1LjgtMTQuOCAzNi0yMS43IDUzLjEtMzMuNSA2LTQuNSA2LjgtOC4yIDMtMTQuOXptMTI4LjQgMjYuOGMzLjMgMTYgMTIuNiAyNS41IDIzLjggMjQuMy00LjYtMTEuMy0xMi4xLTE5LjUtMjMuOC0yNC4zeiJdfSxVaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidnVlanMiLGljb246WzQ0OCw1MTIsW10sImY0MWYiLCJNMzU2LjkgNjQuM2wtNzYuOSAwLTU2IDg4LjYtNDgtODguNi0xNzYgMCAyMjQgMzgzLjcgMjI0LTM4My43LTkxLjEgMHpNNTUuNyA5Ni4zbDUzLjggMCAxMTQuNSAxOTguMiAxMTQuNC0xOTguMiA1My44IDAtMTY4LjIgMjg4LjItMTY4LjMtMjg4LjJ6Il19LFdoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZXRhIixpY29uOls2NDAsNTEyLFtdLCJlNDliIiwiTTY0MCAzMTcuOWMwIDkxLjMtMzkuNCAxNDguNS0xMTAuMyAxNDguNS02Mi42IDAtOTUuOC0zNC42LTE1Ni45LTEzNi42bC0zMS40LTUyLjZjLTguMy0xMi41LTE0LjUtMjQuMi0yMS4yLTM1LTIwLjEgMzMuOC00Ny4xIDgzLTQ3LjEgODMtNjcgMTE2LjYtMTA0LjYgMTQxLjItMTU2LjkgMTQxLjItNzIuOCAwLTExNi4yLTU3LjMtMTE2LjItMTQ1LjkgMC0xNDMgNzkuOC0yNzguMSAxODMuOS0yNzguMSA1MC4yIDAgOTMuOCAyNC43IDE0NC44IDg5LjUgMzcuMS01MC4xIDc4LjEtODkuNSAxMzAuNi04OS41IDk5LjEgMCAxODAuNyAxMjUuNyAxODAuNyAyNzUuNXpNMjg3LjQgMTkyLjJjLTQyLjktNjIuMS03MC45LTgwLjUtMTA0LjQtODAuNS02MS45IDAtMTEzLjggMTA2LjEtMTEzLjggMjEwIDAgNDguNSAxOC41IDc1LjcgNDkuNiA3NS43IDMwLjIgMCA0OS0xOSAxMDMuMi0xMDMuOCAwIDAgMjQuNy0zOS4xIDY1LjQtMTAxLjR6TTUzMS4yIDM5Ny40YzMyLjIgMCA0Ni45LTI3LjUgNDYuOS03NC45IDAtMTI0LjItNTQuMy0yMjUuNC0xMjMuMi0yMjUuNC0zMy4yIDAtNjEuMSAyNS45LTk0LjkgNzggOS40IDEzLjggMTkuMSAyOSAyOS4zIDQ1LjRsMzcuNSA2Mi40YzU4LjcgOTQuMSA3My41IDExNC41IDEwNC40IDExNC41eiJdfSxHaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zaGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwMSAxMzIuNGM3LjggMCAxMy43IDYuMSAxMy43IDEzLjdsMCAxODIuNWMwIDcuNy02LjEgMTMuNy0xMy43IDEzLjdsLTEzNS4xIDBjLTcuNyAwLTEzLjctNi0xMy43LTEzLjdsMC01NC01NCAwYy03LjggMC0xMy43LTYtMTMuNy0xMy43bDAtMTgyLjVjMC04LjIgNi42LTEyLjcgMTIuNC0xMy43bDEzNi40IDBjNy43IDAgMTMuNyA2IDEzLjcgMTMuN2wwIDU0IDU0IDB6TTE2Ny45IDMwMC4zbDQwLjcgMCAwLTEwMS40YzAtNy40IDUuOC0xMi42IDEyLTEzLjdsNTUuOCAwIDAtNDAuMy0xMDguNSAwIDAgMTU1LjR6bTE3Ni4yLTg4LjFsLTEwOC41IDAgMCAxNTUuNCAxMDguNSAwIDAtMTU1LjR6Il19LFloZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVkaW92aW5hcmkiLGljb246WzUxMiw1MTIsW10sImYzZjgiLCJNNDgwLjcgMTg3LjdsNC4yIDI4IDAgMjgtMjUuMSA0NC4xLTM5LjggNzguNC01Ni4xIDY3LjUtNzkuMSAzNy44LTE3LjcgMjQuNS03LjcgMTItOS42IDRzMTcuMy02My42IDE5LjQtNjMuNiAyMC4zIC43IDIwLjMgLjdsNjYuNy0zOC42LTkyLjUgMjYuMS01NS45IDM2LjgtMjIuOCAyOC02LjYgMS40IDIwLjgtNzMuNiA2LjktNS41IDIwLjcgMTIuOSA4OC4zLTQ1LjIgNTYuOC01MS41IDE0LjgtNjguNC0xMjUuNCAyMy4zIDE1LjItMTguMi0xNzMuNC01My4zIDgxLjktMTAuNS0xNjYtMTIyLjkgMTE0LjkgMTguMS0xMDEuMy0xMDggMjUyLjkgMTI2LjYtMzEuNS0zOCAxMjQuNCA3NC40LTE0My4zLTk5IDE4LjcgMzguNC00OS42LTE4LjEtNDUuNS04NC4zIDE5NC42IDEyMi00Mi45LTU1LjggMTA4IDk2LjQgMTItOC45LTIxLTE2LjQgNC4yLTM3LjggMzcuOC0xMC40IDI5LjIgMjQuNyAxMS41IDQuMi03IDYuMiA4LjUgMTItMTMuMSA3LjQtMTAuMyAyMC4yIDEwLjUgMjMuOXoiXX0sWmhlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdGJ1Y2tldCIsaWNvbjpbNTEyLDUxMixbNjE4MTBdLCJmMTcxIiwiTTIyLjIgMzJjLTIuMSAwLTQuMiAuNC02LjEgMS4xcy0zLjcgMS45LTUuMiAzLjQtMi43IDMuMi0zLjUgNS4xLTEuMyA0LTEuMyA2LjFjMCAuOSAuMSAxLjkgLjIgMi44TDc0LjEgNDYyLjdjLjggNS4xIDMuNCA5LjcgNy4zIDEzczguOCA1LjIgMTQgNS4ybDMyNS43IDBjMy44IC4xIDcuNS0xLjMgMTAuNS0zLjdzNC45LTUuOSA1LjUtOS43TDUwNSA1MC43Yy43LTQuMi0uMy04LjQtMi44LTExLjlzLTYuMi01LjctMTAuNC02LjRjLS45LS4xLTEuOS0uMi0yLjgtLjJMMjIuMiAzMnpNMzA4LjEgMzI5LjhsLTEwNCAwLTI4LjEtMTQ3IDE1Ny4zIDAtMjUuMiAxNDd6Il19LFhoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2ayIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4OSIsIk0zMS41IDYzLjVDMCA5NSAwIDE0NS43IDAgMjQ3TDAgMjY1QzAgMzY2LjMgMCA0MTcgMzEuNSA0NDguNVMxMTMuNyA0ODAgMjE1IDQ4MGwxNy45IDBjMTAxLjQgMCAxNTIuMSAwIDE4My41LTMxLjVTNDQ4IDM2Ni4zIDQ0OCAyNjVsMC0xNy45YzAtMTAxLjQgMC0xNTIuMS0zMS41LTE4My41UzMzNC4zIDMyIDIzMyAzMkwyMTUgMzJDMTEzLjcgMzIgNjMgMzIgMzEuNSA2My41ek03NS42IDE2OC4zbDUxLjEgMGMxLjcgODUuNSAzOS40IDEyMS43IDY5LjMgMTI5LjJsMC0xMjkuMiA0OC4yIDAgMCA3My43YzI5LjUtMy4yIDYwLjUtMzYuOCA3MC45LTczLjdsNDguMiAwYy0zLjkgMTkuMi0xMS44IDM3LjMtMjMuMSA1My4zcy0yNS43IDI5LjUtNDIuNSAzOS42YzE4LjcgOS4zIDM1LjIgMjIuNCA0OC40IDM4LjVzMjIuOSAzNC45IDI4LjMgNTVsLTUzIDBjLTQuOS0xNy41LTE0LjgtMzMuMS0yOC42LTQ1cy0zMC43LTE5LjQtNDguNy0yMS42bDAgNjYuNi01LjggMGMtMTAyLjEgMC0xNjAuMy03MC0xNjIuOC0xODYuNXoiXX0sS2hlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGh1YiIsaWNvbjpbNTEyLDUxMixbXSwiZjA5YiIsIk0xNzMuOSAzOTcuNGMwIDItMi4zIDMuNi01LjIgMy42LTMuMyAuMy01LjYtMS4zLTUuNi0zLjYgMC0yIDIuMy0zLjYgNS4yLTMuNiAzLS4zIDUuNiAxLjMgNS42IDMuNnptLTMxLjEtNC41Yy0uNyAyIDEuMyA0LjMgNC4zIDQuOSAyLjYgMSA1LjYgMCA2LjItMnMtMS4zLTQuMy00LjMtNS4yYy0yLjYtLjctNS41IC4zLTYuMiAyLjN6bTQ0LjItMS43Yy0yLjkgLjctNC45IDIuNi00LjYgNC45IC4zIDIgMi45IDMuMyA1LjkgMi42IDIuOS0uNyA0LjktMi42IDQuNi00LjYtLjMtMS45LTMtMy4yLTUuOS0yLjl6TTI1Mi44IDhjLTEzOC43IDAtMjQ0LjggMTA1LjMtMjQ0LjggMjQ0IDAgMTEwLjkgNjkuOCAyMDUuOCAxNjkuNSAyMzkuMiAxMi44IDIuMyAxNy4zLTUuNiAxNy4zLTEyLjEgMC02LjItLjMtNDAuNC0uMy02MS40IDAgMC03MCAxNS04NC43LTI5LjggMCAwLTExLjQtMjkuMS0yNy44LTM2LjYgMCAwLTIyLjktMTUuNyAxLjYtMTUuNCAwIDAgMjQuOSAyIDM4LjYgMjUuOCAyMS45IDM4LjYgNTguNiAyNy41IDcyLjkgMjAuOSAyLjMtMTYgOC44LTI3LjEgMTYtMzMuNy01NS45LTYuMi0xMTIuMy0xNC4zLTExMi4zLTExMC41IDAtMjcuNSA3LjYtNDEuMyAyMy42LTU4LjktMi42LTYuNS0xMS4xLTMzLjMgMi42LTY3LjkgMjAuOS02LjUgNjkgMjcgNjkgMjcgMjAtNS42IDQxLjUtOC41IDYyLjgtOC41czQyLjggMi45IDYyLjggOC41YzAgMCA0OC4xLTMzLjYgNjktMjcgMTMuNyAzNC43IDUuMiA2MS40IDIuNiA2Ny45IDE2IDE3LjcgMjUuOCAzMS41IDI1LjggNTguOSAwIDk2LjUtNTguOSAxMDQuMi0xMTQuOCAxMTAuNSA5LjIgNy45IDE3IDIyLjkgMTcgNDYuNCAwIDMzLjctLjMgNzUuNC0uMyA4My42IDAgNi41IDQuNiAxNC40IDE3LjMgMTIuMSAxMDAtMzMuMiAxNjcuOC0xMjguMSAxNjcuOC0yMzkgMC0xMzguNy0xMTIuNS0yNDQtMjUxLjItMjQ0ek0xMDUuMiAzNTIuOWMtMS4zIDEtMSAzLjMgLjcgNS4yIDEuNiAxLjYgMy45IDIuMyA1LjIgMSAxLjMtMSAxLTMuMy0uNy01LjItMS42LTEuNi0zLjktMi4zLTUuMi0xem0tMTAuOC04LjFjLS43IDEuMyAuMyAyLjkgMi4zIDMuOSAxLjYgMSAzLjYgLjcgNC4zLS43IC43LTEuMy0uMy0yLjktMi4zLTMuOS0yLS42LTMuNi0uMy00LjMgLjd6bTMyLjQgMzUuNmMtMS42IDEuMy0xIDQuMyAxLjMgNi4yIDIuMyAyLjMgNS4yIDIuNiA2LjUgMSAxLjMtMS4zIC43LTQuMy0xLjMtNi4yLTIuMi0yLjMtNS4yLTIuNi02LjUtMXptLTExLjQtMTQuN2MtMS42IDEtMS42IDMuNiAwIDUuOXM0LjMgMy4zIDUuNiAyLjNjMS42LTEuMyAxLjYtMy45IDAtNi4yLTEuNC0yLjMtNC0zLjMtNS42LTJ6Il19LFFoZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb2RpZXBpZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4NCIsIk00NDIuNSAyMDIuOWMzMC43IDAgMzMuNSA1My4xLS4zIDUzLjFsLTEwLjggMCAwIDQ0LjMtMjYuNiAwIDAtOTcuNCAzNy43IDB6TTQ5MiAzNTIuNkM0NDkuOSA0NDQuNSAzNzAuNCA1MDQgMjY4IDUwNCAxMzEgNTA0IDIwIDM5MyAyMCAyNTZTMTMxIDggMjY4IDhjOTcuNCAwIDE3Mi44IDUzLjcgMjE4LjIgMTM4LjRMMzAwLjIgMjU1LjIgNDkyIDM1Mi42em0tMzguNSAxMi41bC02MC4zLTMwLjdjLTI3LjEgNDQuMy03MC40IDcxLjQtMTIyLjQgNzEuNC04Mi41IDAtMTQ5LjItNjYuNy0xNDkuMi0xNDguOSAwLTgyLjUgNjYuNy0xNDkuMiAxNDkuMi0xNDkuMiA0OC40IDAgODguOSAyMy41IDExNi45IDYzLjRsNTkuNS0zNC42QzQwNi41IDczLjkgMzQyLjUgMzYuNSAyNjggMzYuNSAxNDYuOCAzNi41IDQ4LjUgMTM0LjggNDguNSAyNTZTMTQ2LjggNDc1LjUgMjY4IDQ3NS41Yzc4LjYgMCAxNDYuNS00Mi4xIDE4NS41LTExMC40eiJdfSxKaGU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGllZC1waXBlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhZSIsIk00NDAuMiAyMy4yYy0yNi43IDYuOC02OC4xIDI4LjUtMTE0LjYgNjcuNS0zMC45LTE3LjUtNjUuOC0yNi43LTEwMS40LTI2LjctMTE0LjkgMC0yMDggOTMuMS0yMDggMjA4czkzLjEgMjA4IDIwOCAyMDggMjA4LTkzLjEgMjA4LTIwOGMuMS01NC4xLTIxLTEwNi4xLTU4LjctMTQ0LjgtNi42IDguNS0xMi4zIDE3LjctMTcgMjcuNCAyOC45IDMyLjMgNDQuOCA3NC4xIDQ0LjkgMTE3LjQgMCA5Ny43LTc5LjQgMTc3LjEtMTc3LjEgMTc3LjEtMzAuOCAwLTYxLTguMS04Ny42LTIzLjQgODIuOS0xMDcuMyAxNTAuOC0zNy44IDE4NC4zLTIyNi42IDUuOC0zMi42IDI4LTk0LjMgMTI2LjItMTYwLjIgOC4xLTUuNCAyLjQtMTguMS03LTE1Ljd6TTEwOS4zIDQwNi40Qzg5LjggMzg5LjggNzQuMiAzNjkuMiA2My41IDM0NnMtMTYuMy00OC41LTE2LjMtNzRjMC05Ny43IDc5LjQtMTc3LjEgMTc3LjEtMTc3LjEgMjYuNiAwIDUyLjggNi4xIDc2LjYgMTcuOC02NiA2Mi4xLTEyNi45IDE1Mi45LTE5MS42IDI5My44eiJdfSxlOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmFzcGJlcnJ5LXBpIixpY29uOls0NDgsNTEyLFtdLCJmN2JiIiwiTTM5Mi41IDIzMi41bC0zLjctNi41Yy4xLTQ2LjQtMjEuNC02NS4zLTQ2LjUtNzkuNyA3LjYtMiAxNS40LTMuNiAxNy42LTEzLjIgMTMuMS0zLjMgMTUuOC05LjQgMTcuMS0xNS44IDMuNC0yLjMgMTQuOC04LjcgMTMuNi0xOS43IDYuNC00LjQgMTAtMTAuMSA4LjEtMTguMSA2LjktNy41IDguNy0xMy43IDUuOC0xOS40IDguMy0xMC4zIDQuNi0xNS42IDEuMS0yMC45IDYuMi0xMS4yIC43LTIzLjItMTYuNi0yMS4yLTYuOS0xMC4xLTIxLjktNy44LTI0LjItNy44LTIuNi0zLjItNi02LTE2LjUtNC43LTYuOC02LjEtMTQuNC01LTIyLjMtMi4xLTkuMy03LjMtMTUuNS0xLjQtMjIuNiAuOC0xMS4zLTMuNi0xMy45IDEuMy0xOS40IDMuNC0xMi4zLTIuNi0xNi4xIDMtMjIgOC45bC02LjktLjFjLTE4LjYgMTAuOC0yNy44IDMyLjgtMzEuMSA0NC4xLTMuMy0xMS4zLTEyLjUtMzMuMy0zMS4xLTQ0LjFsLTYuOSAuMWMtNS45LTUuOS05LjctMTEuNS0yMi04LjktNS42LTItOC4xLTctMTkuNC0zLjQtNC42LTEuNC04LjktNC40LTEzLjktNC4zLTIuNiAuMS01LjUgMS04LjcgMy41LTcuOS0zLTE1LjUtNC0yMi4zIDIuMS0xMC41LTEuMy0xNCAxLjQtMTYuNSA0LjctMi4zIDAtMTcuMy0yLjMtMjQuMiA3LjgtMTcuMy0yLTIyLjcgMTAtMTYuNSAyMS4yLTMuNSA1LjQtNy4yIDEwLjcgMS4xIDIwLjktMi45IDUuNy0xLjEgMTEuOSA1LjggMTkuNC0xLjggOCAxLjggMTMuNyA4LjEgMTguMS0xLjIgMTEgMTAuMiAxNy40IDEzLjYgMTkuNyAxLjMgNi40IDQgMTIuNCAxNy4xIDE1LjggMi4yIDkuNSAxMCAxMS4yIDE3LjYgMTMuMi0yNS4xIDE0LjQtNDYuNiAzMy4zLTQ2LjUgNzkuN2wtMy43IDYuNWMtMjguOCAxNy4yLTU0LjcgNzIuNy0xNC4yIDExNy43IDIuNiAxNC4xIDcuMSAyNC4yIDExIDM1LjQgNS45IDQ1LjIgNDQuNSA2Ni4zIDU0LjYgNjguOCAxNC45IDExLjIgMzAuOCAyMS44IDUyLjIgMjkuMiAyMC4zIDIwLjYgNDIuMyAyOC40IDY0LjMgMjguNGwxIDBjMjIuMSAwIDQ0LTcuOCA2NC4yLTI4LjQgMjEuNS03LjQgMzcuMy0xOCA1Mi4yLTI5LjIgMTAuMi0yLjUgNDguNy0yMy42IDU0LjYtNjguOCAzLjktMTEuMiA4LjQtMjEuMyAxMS0zNS40IDQwLjYtNDUuMSAxNC43LTEwMC41LTE0LTExNy43em0tMjIuMi04Yy0xLjUgMTguNy05OC45LTY1LjEtODIuMS02Ny45IDQ1LjctNy41IDgzLjYgMTkuMiA4Mi4xIDY3Ljl6bS00MyA5My4xYy0yNC41IDE1LjgtNTkuOCA1LjYtNzguOC0yMi44cy0xNC42LTY0LjIgOS45LTgwIDU5LjgtNS42IDc4LjggMjIuOCAxNC42IDY0LjItOS45IDgwek0yNTkuNCAyOS4zYy44IDQuMiAxLjggNi44IDIuOSA3LjYgNS40LTUuOCA5LjgtMTEuNyAxNi44LTE3LjMgMCAzLjMtMS43IDYuOCAyLjUgOS40IDMuNy01IDguOC05LjUgMTUuNS0xMy4zLTMuMiA1LjYtLjYgNy4zIDEuMiA5LjYgNS4xLTQuNCAxMC04LjggMTkuNC0xMi4zLTIuNiAzLjEtNi4yIDYuMi0yLjQgOS44IDUuMy0zLjMgMTAuNi02LjYgMjMuMS04LjktMi44IDMuMS04LjcgNi4zLTUuMSA5LjQgNi42LTIuNSAxNC00LjQgMjIuMS01LjQtMy45IDMuMi03LjEgNi4zLTMuOSA4LjggNy4xLTIuMiAxNi45LTUuMSAyNi40LTIuNmwtNiA2LjFjLS43IC44IDE0LjEgLjYgMjMuOSAuOC0zLjYgNS03LjIgOS43LTkuMyAxOC4yIDEgMSA1LjggLjQgMTAuNCAwLTQuNyA5LjktMTIuOCAxMi4zLTE0LjcgMTYuNiAyLjkgMi4yIDYuOCAxLjYgMTEuMiAuMS0zLjQgNi45LTEwLjQgMTEuNy0xNiAxNy4zIDEuNCAxIDMuOSAxLjYgOS43IC45LTUuMiA1LjUtMTEuNCAxMC41LTE4LjggMTUgMS4zIDEuNSA1LjggMS41IDEwIDEuNi02LjcgNi41LTE1LjMgOS45LTIzLjQgMTQuMiA0IDIuNyA2LjkgMi4xIDEwIDIuMS01LjcgNC43LTE1LjQgNy4xLTI0LjQgMTAgMS43IDIuNyAzLjQgMy40IDcuMSA0LjEtOS41IDUuMy0yMy4yIDIuOS0yNyA1LjYgLjkgMi43IDMuNiA0LjQgNi43IDUuOC0xNS40IC45LTU3LjMtLjYtNjUuNC0zMi4zIDE1LjctMTcuMyA0NC40LTM3LjUgOTMuNy02Mi42LTM4LjQgMTIuOC03MyAzMC0xMDIgNTMuNS0zNC4zLTE1LjktMTAuOC01NS45IDUuOC03MS44ek0yMjUgMTQzLjljMjQuMi0uMyA1NC4xIDE3LjggNTQgMzQuNy0uMSAxNS0yMSAyNy4xLTUzLjggMjYuOS0zMi4xLS40LTUzLjctMTUuMi01My42LTI5LjggMC0xMS45IDI2LjItMzIuNSA1My40LTMxLjh6TTEwMiAxMzEuMWMzLjctLjcgNS40LTEuNSA3LjEtNC4xLTktMi44LTE4LjctNS4zLTI0LjQtMTAgMy4xIDAgNiAuNyAxMC0yLjEtOC4xLTQuMy0xNi43LTcuNy0yMy40LTE0LjIgNC4yLS4xIDguNyAwIDEwLTEuNi03LjQtNC41LTEzLjYtOS41LTE4LjgtMTUgNS44IC43IDguMyAuMSA5LjctLjktNS42LTUuNi0xMi43LTEwLjQtMTYtMTcuMyA0LjMgMS41IDguMyAyIDExLjItLjEtMS45LTQuMi0xMC02LjctMTQuNy0xNi42IDQuNiAuNCA5LjQgMSAxMC40IDAtMi4xLTguNS01LjgtMTMuMy05LjMtMTguMiA5LjgtLjEgMjQuNiAwIDIzLjktLjhsLTYtNi4xYzkuNS0yLjUgMTkuMyAuNCAyNi40IDIuNiAzLjItMi41LS4xLTUuNi0zLjktOC44IDguMSAxLjEgMTUuNCAyLjkgMjIuMSA1LjQgMy41LTMuMS0yLjMtNi4zLTUuMS05LjQgMTIuNSAyLjMgMTcuOCA1LjYgMjMuMSA4LjkgMy44LTMuNiAuMi02LjctMi40LTkuOCA5LjQgMy40IDE0LjMgNy45IDE5LjQgMTIuMyAxLjctMi4zIDQuNC00IDEuMi05LjYgNi43IDMuOCAxMS44IDguMyAxNS41IDEzLjMgNC4xLTIuNiAyLjUtNi4yIDIuNS05LjQgNyA1LjYgMTEuNCAxMS41IDE2LjggMTcuMyAxLjEtLjggMi0zLjQgMi45LTcuNiAxNi42IDE1LjkgNDAuMSA1NS45IDYgNzEuOC0yOS0yMy41LTYzLjYtNDAuNy0xMDItNTMuNSA0OS4zIDI1IDc4IDQ1LjMgOTMuNyA2Mi42LTggMzEuOC01MCAzMy4yLTY1LjQgMzIuMyAzLjEtMS40IDUuOC0zLjIgNi43LTUuOC00LTIuOC0xNy42LS40LTI3LjItNS42em02MC4xIDI0LjFjMTYuOCAyLjgtODAuNiA4Ni41LTgyLjEgNjcuOS0xLjUtNDguNyAzNi41LTc1LjUgODIuMS02Ny45ek01OC43IDM0MmMtMjMuNy0xOC44LTMxLjMtNzMuNyAxMi42LTk4LjMgMjYuNS03IDkgMTA3LjgtMTIuNiA5OC4zem05MSA5OC4yYy0xMy4zIDcuOS00NS44IDQuNy02OC44LTI3LjktMTUuNS0yNy40LTEzLjUtNTUuMi0yLjYtNjMuNCAxNi4zLTkuOCA0MS41IDMuNCA2MC45IDI1LjYgMTYuOSAyMCAyNC42IDU1LjMgMTAuNSA2NS43ek0xMjMuMyAzMjAuNWMtMjQuNS0xNS44LTI4LjktNTEuNi05LjktODBzNTQuMy0zOC42IDc4LjgtMjIuOCAyOC45IDUxLjYgOS45IDgwYy0xOS4xIDI4LjQtNTQuNCAzOC42LTc4LjggMjIuOHpNMjI1LjUgNDk2Yy0yOS40IDEuMi01OC4yLTIzLjctNTcuOC0zMi4zLS40LTEyLjcgMzUuOC0yMi42IDU5LjMtMjIgMjMuNy0xIDU1LjYgNy41IDU1LjcgMTguOSAuNSAxMS0yOC44IDM1LjktNTcuMiAzNS40em01OC45LTEyNC45Yy4yIDI5LjctMjYuMiA1My44LTU4LjggNTRzLTU5LjItMjMuOC01OS40LTUzLjRsMC0uNmMtLjItMjkuNyAyNi4yLTUzLjggNTguOC01NHM1OS4yIDIzLjggNTkuNCA1My40bDAgLjZ6bTgyLjIgNDIuN2MtMjUuMyAzNC42LTU5LjYgMzUuOS03Mi4zIDI2LjMtMTMuMy0xMi40LTMuMi01MC45IDE1LjEtNzIgMjAuOS0yMy4zIDQzLjMtMzguNSA1OC45LTI2LjYgMTAuNSAxMC4zIDE2LjcgNDkuMS0xLjcgNzIuM3ptMjIuOS03My4yYy0yMS41IDkuNC0zOS0xMDUuMy0xMi42LTk4LjMgNDMuOSAyNC43IDM2LjMgNzkuNiAxMi42IDk4LjN6Il19LHQ5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MzIixpY29uOls1MTIsNTEyLFtdLCJmMTNjIiwiTTQ4MCAzMmwtNjQgMzY4LTIyMy4zIDgwLTE5Mi43LTgwIDE5LjYtOTQuOCA4MiAwLTggNDAuNiAxMTYuNCA0NC40IDEzNC4xLTQ0LjQgMTguOC05Ny4xLTMzMy40IDAgMTYtODIgMzMzLjcgMCAxMC41LTUyLjctMzMzLjQgMCAxNi4zLTgyIDQwNy40IDB6Il19LGE5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJodWJzcG90IixpY29uOls0NDgsNTEyLFtdLCJmM2IyIiwiTTIzNS44IDIxMS42Yy0yNS4xIDIzLjctNDAuOCA1Ny4zLTQwLjggOTQuNiAwIDI5LjMgOS43IDU2LjMgMjYgNzhMMTcxLjUgNDM0Yy00LjQtMS42LTkuMS0yLjUtMTQtMi41LTEwLjggMC0yMC45IDQuMi0yOC41IDExLjhzLTExLjggMTcuOC0xMS44IDI4LjYgNC4yIDIwLjkgMTEuOCAyOC41IDE3LjggMTEuNiAyOC41IDExLjZjMTAuOCAwIDIwLjktMy45IDI4LjYtMTEuNiA3LjYtNy42IDExLjgtMTcuOCAxMS44LTI4LjUgMC00LjItLjYtOC4yLTEuOS0xMi4xbDUwLTUwLjJjMjIgMTYuOSA0OS40IDI2LjkgNzkuMyAyNi45IDcxLjkgMCAxMzAtNTguMyAxMzAtMTMwLjIgMC02NS4yLTQ3LjctMTE5LjItMTEwLjItMTI4LjdsMC02MS42YzE3LjUtNy40IDI4LjItMjMuOCAyOC4yLTQyLjkgMC0yNi4xLTIwLjktNDcuOS00Ny00Ny45UzI3OS42IDQ3IDI3OS42IDczLjFjMCAxOS4xIDEwLjcgMzUuNSAyOC4yIDQyLjlsMCA2MS4yYy0xNS4yIDIuMS0yOS42IDYuNy00Mi43IDEzLjYtMjcuNi0yMC45LTExNy41LTg1LjctMTY4LjktMTI0LjggMS4yLTQuNCAyLTkgMi0xMy44IDAtMjguOC0yMy41LTUyLjItNTIuNC01Mi4yLTI4LjggMC01Mi4yIDIzLjQtNTIuMiA1Mi4yIDAgMjguOSAyMy40IDUyLjMgNTIuMiA1Mi4zIDkuOCAwIDE4LjktMi45IDI2LjgtNy42TDIzNS44IDIxMS42em04OS41IDI1LjZhNjkgNjkgMCAxIDEgMCAxMzggNjkgNjkgMCAxIDEgMC0xMzh6Il19LGk5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbXBsaWQiLGljb246WzY0MCw1MTIsW10sImUzNjAiLCJNMjI2LjEgMzg4LjJjMC0uNy0uMi0xLjUtLjYtMi4xcy0xLTEuMS0xLjctMS40Yy0uNS0uMi0xLjEtLjQtMS42LS40bC0xNDkuNiAwYy0zLjEgMC02LjItLjgtOC45LTIuMnMtNS4xLTMuNS02LjktNi4xLTIuOS01LjUtMy4zLTguNiAwLTYuMiAxLjEtOS4xTDgxLjYgMjU1LjdjMi03LjIgNi4yLTEzLjUgMTItMTguMnMxMi45LTcuNCAyMC40LTcuOGwxNDguNiAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNmwxMC44LTQxLjFjLjQtMSAuMy0yLS4xLTIuOXMtMS4yLTEuNi0yLjEtMmMtLjQtLjItLjktLjMtMS40LS4zLS4xIDAtLjEgMC0uMiAwbC0xNDguNSAwYy0yMi4yIDEuMi00My40IDkuMi02MC44IDIzcy0zMCAzMi43LTM2LjIgNTQuMUwzLjUgMzU4LjhjLTMuMiA4LjctNC4yIDE4LTMgMjcuMXM0LjYgMTcuOSA5LjkgMjUuNSAxMi4zIDEzLjggMjAuNSAxOCAxNy4zIDYuNSAyNi41IDYuNmMxIDAgMS45IDAgMi45LS4xbDE0OC42IDBjMS41LS4xIDIuOS0uNyA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjctNDEuMWMuMi0uNSAuMy0uOSAuMy0xLjR6bTgwLjUtMzA3Yy4yLS40IC4zLS45IC4zLTEuNCAwLS41LS4xLTEtLjMtMS41cy0uNS0uOS0uOC0xLjItLjgtLjYtMS4yLS44LTEtLjMtMS41LS4zbC00MS4yIDBjLTEuNSAuMS0yLjkgLjYtNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTIxLjMgODAuOSA1MS4xIDAgMjEuNC04MC45em0tMTI2LjMgMjg3bDUxLjEgMCAzMi0xMjIuNi01MS4xIDAtMzIgMTIyLjZ6TTUxMS45IDc5LjdjMC0xLS41LTEuOS0xLjItMi42cy0xLjctMS4xLTIuNi0xLjFjLS4xIDAtLjEgMC0uMiAwbC00MSAwYy0xLjUgLjEtMi45IC42LTQuMSAxLjVzLTIgMi4yLTIuNSAzLjZMMzY4LjkgNDMwLjZjLS4yIC40LS4zIC45LS4zIDEuMyAwIDEgLjQgMiAxLjEgMi43czEuNyAxLjEgMi43IDEuMWw0MS4yIDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42TDUxMS41IDgxLjJjLjItLjUgLjMtMSAuMy0xLjV6TTMyNC42IDM4NC41bC00MSAwYy0xLjUgLjEtMi45IC43LTQgMS42cy0yIDIuMi0yLjQgMy42bC0xMC43IDQxLjFjLS4yIC40LS4zIC45LS4zIDEuNCAwIC41IC4xIDEgLjMgMS41cy41IC45IC44IDEuMiAuOCAuNiAxLjIgLjggMSAuMyAxLjUgLjNjLjEgMCAuMiAwIC4zIDBsNDAuOSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNmwxMC44LTQxLjFjLjItLjYgLjMtMS4yIC4zLTEuOHMtLjMtMS4yLS42LTEuNy0uOC0uOS0xLjMtMS4yLTEuMi0uNC0xLjgtLjRjLS4xIDAtLjIgMC0uMyAwbDAgMHpNNjM2IDc2LjFsLTQxIDBjLTEuNSAuMS0yLjkgLjYtNCAxLjVzLTIgMi4yLTIuNCAzLjZMNDk3LjEgNDMwLjZjLS4yIC40LS4yIC45LS4yIDEuMyAwIDEgLjQgMiAxLjEgMi43czEuNyAxLjEgMi43IDEuMWw0MS4xIDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42TDYzOS43IDgxLjJjLjItLjUgLjMtMSAuMy0xLjUtLjEtMS0uNS0xLjktMS4yLTIuNXMtMS42LTEtMi42LTFjLS4xIDAtLjEgMC0uMiAwbDAtLjF6TTM3MS42IDIyNS4ybDEwLjgtNDEuMWMuMi0uNCAuMi0uOSAuMi0xLjQgMC0xLS40LTItMS4xLTIuN3MtMS43LTEuMS0yLjctMS4xbC00MS4zIDBjLTEuNSAuMS0yLjkgLjctNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTEwLjggNDEuMWMtLjIgLjUtLjMgMS0uMyAxLjVsMCAuMmMuMSAxIC41IDEuOCAxLjIgMi41czEuNiAxIDIuNiAxYy4xIDAgLjIgMCAuMyAwbDQxLjEgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZ6Il19LHI5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkeWFsb2ciLGljb246WzQ0OCw1MTIsW10sImYzOTkiLCJNMTYgMzJsMCAxMTkuMiA2NCAwIDAtNTUuMiAxMDcuMiAwQzMwMC42IDk2IDM2OCAxNzYuMiAzNjggMjU1LjkgMzY4IDMzMiAzMDkuNCA0MTYgMTg3LjIgNDE2bC0xNzEuMiAwIDAgNjQgMTcxLjIgMEMzNDcuOSA0ODAgNDMyIDM2Ny4zIDQzMiAyNTUuOSA0MzIgMTk3LjIgNDA5LjkgMTQyLjUgMzY5LjcgMTAxLjYgMzI0LjkgNTYgMjYxLjcgMzIgMTg3LjIgMzJMMTYgMzJ6Il19LHM5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGVtZW50b3IiLGljb246WzUxMiw1MTIsW10sImY0MzAiLCJNLjUgMjU2YzAgMTQxIDExMy42IDI1NSAyNTQuNiAyNTUgMTQyIDAgMjU2LTExNCAyNTYtMjU1IDAtMTQwLTExNC0yNTMuOS0yNTYtMjUzLjktMTQxIDAtMjU0LjYgMTEzLjktMjU0LjYgMjUzLjl6TTE5Mi4xIDE1MGwwIDIxMy00MyAwIDAtMjEzIDQzIDB6bTQyIDBsMTI4IDAgMCA0My0xMjggMCAwLTQzem0xMjggODVsMCA0My0xMjggMCAwLTQzIDEyOCAwem0tMTI4IDg1bDEyOCAwIDAgNDMtMTI4IDAgMC00M3oiXX0sbjllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcnN0LW9yZGVyIixpY29uOls0NDgsNTEyLFtdLCJmMmIwIiwiTTEzLjMgMjI5LjJjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40bC0uMiAwek0yMjQuNCA5Ni42Yy03LjEgMC0xNC42IC42LTIxLjQgMS43bDMuNyA2Ny40LTIyLTY0Yy0xNC4zIDMuNy0yNy43IDkuNC00MCAxNi42bDI5LjQgNjEuNC00NS4xLTUwLjljLTExLjQgOC45LTIxLjcgMTkuMS0zMC42IDMwLjlsNTAuNiA0NS40LTYxLjEtMjkuN2MtNy4xIDEyLjMtMTIuOSAyNS43LTE2LjYgNDBsNjQuMyAyMi42LTY4LTRjLS45IDcuMS0xLjQgMTQuNi0xLjQgMjJzLjYgMTQuNiAxLjQgMjEuN2w2Ny43LTQtNjQgMjIuNmMzLjcgMTQuMyA5LjQgMjcuNyAxNi42IDQwLjNMMTQ5IDMwNi45IDk4LjEgMzUyYzguOSAxMS43IDE5LjEgMjIuMyAzMC45IDMwLjlsNDQuOS01MC45LTI5LjUgNjEuNGMxMi4zIDcuNCAyNS43IDEzLjEgNDAgMTYuOWwyMi4zLTY0LjYtNCA2OGM3LjEgMS4xIDE0LjYgMS43IDIxLjcgMS43IDcuNCAwIDE0LjYtLjYgMjEuNy0xLjdsLTQtNjguNiAyMi42IDY1LjFjMTQuMy00IDI3LjctOS40IDQwLTE2LjlsLTI5LjQtNjEuMyA0NC45IDUwLjljMTEuNy04LjkgMjItMTkuMSAzMC42LTMwLjlsLTUwLjYtNDUuMSA2MS4xIDI5LjRjNy4xLTEyLjMgMTIuOS0yNS43IDE2LjYtNDAuM2wtNjQtMjIuMyA2Ny40IDRjMS4xLTcuMSAxLjQtMTQuMyAxLjQtMjEuN3MtLjMtMTQuOS0xLjQtMjJsLTY3LjcgNCA2NC0yMi4zYy0zLjctMTQuMy05LjEtMjgtMTYuNi00MC4zbC02MC45IDI5LjcgNTAuNi00NS40Yy04LjktMTEuNy0xOS4xLTIyLTMwLjYtMzAuOWwtNDUuMSA1MC45IDI5LjQtNjEuMWMtMTIuMy03LjQtMjUuNy0xMy4xLTQwLTE2LjlsLTIyLjMgNjQuMyA0LTY3LjdjLTcuMS0xLjItMTQuMy0xLjctMjEuNy0xLjd6TTQ0My44IDEyOEw0NDMuOCAzODQgMjI0LjQgNTEyIDUgMzg0IDUgMTI4IDIyNC40IDAgNDQzLjggMTI4em0tMTcuMSAxMC4zbC0yMDIuMy0xMTcuNC0yMDIuMyAxMTcuNCAwIDIzNS4xIDIwMi4zIDExNy43IDIwMi4zLTExNy43IDAtMjM1LjF6TTIyNC40IDM3LjFsMTg3LjcgMTA5LjQgMCAyMTguOS0xODcuNyAxMDkuNS0xODcuNy0xMDkuNSAwLTIxOC44IDE4Ny43LTEwOS41em0wIDUwLjljLTkyLjMgMC0xNjYuOSA3NS4xLTE2Ni45IDE2OCAwIDkyLjYgNzQuNiAxNjcuNyAxNjYuOSAxNjcuNyA5MiAwIDE2Ni45LTc1LjEgMTY2LjktMTY3LjcgMC05Mi45LTc0LjktMTY4LTE2Ni45LTE2OHoiXX0sbzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyaWJiYmxlIixpY29uOls1MTIsNTEyLFtdLCJmMTdkIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDIwIDEyMi40YzI5LjUgMzYgNDcuNCA4MiA0Ny44IDEzMi03LTEuNS03Ny0xNS43LTE0Ny41LTYuOC01LjgtMTQtMTEuMi0yNi40LTE4LjYtNDEuNiA3OC4zLTMyIDExMy44LTc3LjUgMTE4LjMtODMuNXpNMzk2LjQgOTcuOWMtMy44IDUuNC0zNS43IDQ4LjMtMTExIDc2LjUtMzQuNy02My44LTczLjItMTE2LjItNzktMTI0IDY3LjItMTYuMiAxMzggMS4zIDE5MC4xIDQ3LjV6TTE2NS45IDY0LjZjNS42IDcuNyA0My40IDYwLjEgNzguNSAxMjIuNS05OS4xIDI2LjMtMTg2LjQgMjUuOS0xOTUuOCAyNS44IDEzLjctNjUuNyA1OC0xMjAuNCAxMTcuMy0xNDguM3pNNDQuMiAyNTYuM2MwLTIuMiAwLTQuMyAuMS02LjUgOS4zIC4yIDExMS45IDEuNSAyMTcuNy0zMC4xIDYuMSAxMS45IDExLjkgMjMuOSAxNy4yIDM1LjktNzYuNiAyMS42LTE0Ni4yIDgzLjUtMTgwLjUgMTQyLjMtMzMuOC0zNy42LTU0LjUtODcuMi01NC41LTE0MS42ek0xMjYgNDIzLjRjMjIuMS00NS4yIDgyLjItMTAzLjYgMTY3LjYtMTMyLjggMjkuNyA3Ny4zIDQyIDE0Mi4xIDQ1LjIgMTYwLjYtNjguMSAyOS0xNTAgMjEuMS0yMTIuOC0yNy45em0yNDguNCA4LjVjLTIuMi0xMi45LTEzLjQtNzQuOS00MS4yLTE1MSA2Ni40LTEwLjYgMTI0LjcgNi44IDEzMS45IDkuMS05LjQgNTguOS00My4zIDEwOS44LTkwLjggMTQyeiJdfSxOZj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rZWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjA4YyIsIk00MTYgMzJMMzEuOSAzMkMxNC4zIDMyIDAgNDYuNSAwIDY0LjNMMCA0NDcuN0MwIDQ2NS41IDE0LjMgNDgwIDMxLjkgNDgwTDQxNiA0ODBjMTcuNiAwIDMyLTE0LjUgMzItMzIuM2wwLTM4My40QzQ0OCA0Ni41IDQzMy42IDMyIDQxNiAzMnpNMTM1LjQgNDE2bC02Ni40IDAgMC0yMTMuOCA2Ni41IDAgMCAyMTMuOC0uMSAwek0xMDIuMiA5NmEzOC41IDM4LjUgMCAxIDEgMCA3NyAzOC41IDM4LjUgMCAxIDEgMC03N3pNMzg0LjMgNDE2bC02Ni40IDAgMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yeiJdfSxsOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtcGF5cGFsIixpY29uOls1NzYsNTEyLFtdLCJmMWY0IiwiTTE4Ni4zIDI1OC4yYzAgMTIuMi05LjcgMjEuNS0yMiAyMS41LTkuMiAwLTE2LTUuMi0xNi0xNSAwLTEyLjIgOS41LTIyIDIxLjctMjIgOS4zIDAgMTYuMyA1LjcgMTYuMyAxNS41ek04MC41IDIwOS43bC00LjcgMGMtMS41IDAtMyAxLTMuMiAyLjdsLTQuMyAyNi43IDguMi0uM2MxMSAwIDE5LjUtMS41IDIxLjUtMTQuMiAyLjMtMTMuNC02LjItMTQuOS0xNy41LTE0Ljl6bTI4NCAwbC00LjUgMGMtMS44IDAtMyAxLTMuMiAyLjdsLTQuMiAyNi43IDgtLjNjMTMgMCAyMi0zIDIyLTE4LS4xLTEwLjYtOS42LTExLjEtMTguMS0xMS4xek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjguMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGwtNDAgMGMtMi41IDAtNSAyLTUuMiA0LjdMMzIgMjk0LjJjLS4zIDIgMS4yIDQgMy4yIDRsMTkgMGMyLjcgMCA1LjItMi45IDUuNS01LjdsNC41LTI2LjZjMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjYgMCA0Ni4xLTE3IDQ2LjEtNDUuOHptODQuMiA4LjhsLTE5IDBjLTMuOCAwLTQgNS41LTQuMiA4LjItNS44LTguNS0xNC4yLTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOSAwIDIwLjItNC45IDI2LjUtMTEuOS0uNSAxLjUtMSA0LjctMSA2LjIgMCAyLjMgMSA0IDMuMiA0bDE3LjIgMGMyLjcgMCA1LTIuOSA1LjUtNS43bDEwLjItNjQuM2MuMy0xLjktMS4yLTMuOS0zLjItMy45ek0yNTMgMzIyLjFsNjMuNy05Mi42Yy41LS41IC41LTEgLjUtMS43IDAtMS43LTEuNS0zLjUtMy4yLTMuNWwtMTkuMiAwYy0xLjcgMC0zLjUgMS00LjUgMi41bC0yNi41IDM5LTExLTM3LjVjLS44LTIuMi0zLTQtNS41LTRsLTE4LjcgMGMtMS43IDAtMy4yIDEuOC0zLjIgMy41IDAgMS4yIDE5LjUgNTYuOCAyMS4yIDYyLjEtMi43IDMuOC0yMC41IDI4LjYtMjAuNSAzMS42IDAgMS44IDEuNSAzLjIgMy4yIDMuMmwxOS4yIDBjMS44LS4xIDMuNS0xLjEgNC41LTIuNnpNNDEyLjMgMjE1LjRjMC0yMS0xNi4yLTI4LTM0LjctMjhsLTM5LjcgMGMtMi43IDAtNS4yIDItNS41IDQuN2wtMTYuMiAxMDJjLS4yIDIgMS4zIDQgMy4yIDRsMjAuNSAwYzIgMCAzLjUtMS41IDQtMy4ybDQuNS0yOWMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNCAwIDQ1LjktMTcgNDUuOS00NS44em04NC4yIDguOGwtMTkgMGMtMy44IDAtNCA1LjUtNC4zIDguMi01LjUtOC41LTE0LTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOS4zIDAgMjAuNS00LjkgMjYuNS0xMS45LS4zIDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRsMTcuMyAwYzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6TTU0NCAxOTAuOWMwLTItMS41LTMuNS0zLjItMy41bC0xOC41IDBjLTEuNSAwLTMgMS4yLTMuMiAyLjdsLTE2LjIgMTA0LS4zIC41YzAgMS44IDEuNSAzLjUgMy41IDMuNWwxNi41IDBjMi41IDAgNS0yLjkgNS4yLTUuN2wxNi4yLTEwMS4yIDAtLjN6bS05MCA1MS44Yy0xMi4yIDAtMjEuNyA5LjctMjEuNyAyMiAwIDkuNyA3IDE1IDE2LjIgMTUgMTIgMCAyMS43LTkuMiAyMS43LTIxLjUgLjEtOS44LTYuOS0xNS41LTE2LjItMTUuNXoiXX0sYzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRobCIsaWNvbjpbNjQwLDUxMixbXSwiZjc5MCIsIk0yMzggMzAxLjJsNTguNyAwIDIyLjMtMzAuMi01OC43IDAtMjIuMyAzMC4yek0wIDI4Mi45bDAgNi40IDgxLjggMCA0LjctNi40LTg2LjUgMHpNMTcyLjkgMjcxYy04LjcgMC02LTMuNi00LjYtNS41IDIuOC0zLjggNy42LTEwLjQgMTAuNC0xNC4xczIuOC01LjktMi44LTUuOWwtNTEgMC00MS4xIDU1LjggMTAwLjEgMGMzMy4xIDAgNTEuNS0yMi41IDU3LjItMzAuM2wtNjguMiAwem0zMTcuNS02LjlsMzkuMy01My40LTYyLjIgMC0zOS4zIDUzLjQgNjIuMiAwek05NS4zIDI3MWwtOTUuMyAwIDAgNi40IDkwLjYgMCA0LjctNi40em0xMTEtMjYuNmMtMi44IDMuOC03LjUgMTAuNC0xMC4zIDE0LjItMS40IDItNC4xIDUuNSA0LjYgNS41bDQ1LjYgMHM3LjMtMTAgMTMuNS0xOC40YzguNC0xMS40IC43LTM1LTI5LjItMzVsLTExNy45IDAtMjAuNCAyNy44IDExMS40IDBjNS42IDAgNS41IDIuMiAyLjcgNS45ek0wIDMwMS4ybDczLjEgMCA0LjctNi40LTc3LjggMCAwIDYuNHptMzIzIDBsNTguNyAwIDIyLjMtMzAuMi01OC43IDBjLS4xIDAtMjIuMyAzMC4yLTIyLjMgMzAuMnptMjIyIC4xbDk1IDAgMC02LjQtOTAuMyAwLTQuNyA2LjR6TTU2Ny4zIDI3MWwtNC43IDYuNCA3Ny40IDAgMC02LjQtNzIuNyAwem0tMTMuNSAxOC4zbDg2LjIgMCAwLTYuNC04MS41IDAtNC43IDYuNHpNMzg5LjYgMjEwLjdsLTIyLjUgMzAuNi0yNi4yIDAgMjIuNS0zMC42LTU4LjcgMC0zOS4zIDUzLjQgMTQzLjYgMCAzOS4zLTUzLjQtNTguNyAwek00MjMuMSAyNzFzLTQuMyA1LjktNi40IDguN2MtNy40IDEwLS45IDIxLjYgMjMuMiAyMS42bDk0LjMgMCAyMi4zLTMwLjMtMTMzLjQgMHoiXX0sZDllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRleCIsaWNvbjpbNjQwLDUxMixbXSwiZTdmZiIsIk02MjAuOCA5NS40Yy0zMC44IC40LTQyLjEgMTYuNi00Ny43IDI0LjVsLS4xIC4xLTU1LjcgODAuNSA4Mi44IDEyMS4xYzcuNSAxMC42IDExLjMgMTIuNSAzNS40IDEyLjVsMCA5LjFjLTkuMS0uNy0yOC0uNy0zNy43LS43LTEyLjQgMC0zMC44IDAtNDIuOSAuN2wwLTkuMWMxMy4yLS44IDE2LjYtNy4zIDE2LjYtMTAuMiAwLTEuMSAwLTIuMy0zLTYuNGwtNjUuNS05Ni4zLTYwLjIgODcuOWMtMS45IDIuNy0zLjggNS40LTMuOCAxMC4yIDAgNi4xIDMuNCAxMy42IDE1IDE0LjdsMCA5LjFjLTkuNC0uNy0yNy4xLS43LTM3LjItLjdsLTIuOCAwLTExLjcgODIuNi0xOTUuOSAwIDAtOS4xYzI2LjcgMCAzMC45IDAgMzAuOS0xNi45bDAtMjAzLjJjMC0xNi45LTQuMy0xNi45LTMwLjktMTYuOWwwLTEwLjMgMTkuOCAwYy00LjgtNjEuMS0xMC44LTcxLjctNjgtNzEuOGwtMjAuNyAwYy02LjggMS41LTYuOCA2LjEtNi44IDE0LjRsMCAyMDVjMCAxMy42IDEuMSAxNy44IDMyLjQgMTcuOGwxMC41IDAgMCA5LjEtLjQgMGMtMTcuOS0uMy0zNi43LS43LTU0LjktLjdzLTM2LjkgLjMtNTQuOCAuN2wtLjYgMCAwLTkuMSAxMC43IDBjMzEuNyAwIDMyLjgtNC4xIDMyLjgtMTcuOGwwLTIwNWMwLTguNyAwLTEzLjItNy4yLTE0LjNsLTIwLjggMGMtNTguNCAwLTYzLjcgMTAuOS02OC42IDczLjNsLTYuOCAwIDYuMy04My4zIDIxNy41IDAgNi4xIDgxLjggMTY0LjEgMCA5IDgzLjMtNi44IDBjLTUuMy00OS44LTEyLjEtNzMtNzAuMy03M2wtNTEuNSAwYy0xNSAwLTE1LjggMS45LTE1LjggMTQuNmwwIDkzLjMgMzUuNSAwYzM1LjUgMCAzOC45LTEyLjggMzguOS00NGw2IDAgMCA5Ny45LTYgMGMwLTMxLjgtMy40LTQ0LjgtMzguOS00NC44bC0zNS41IDAgMCAxMDUuMmMwIDEzIC43IDE0LjggMTUuOCAxNC44bDUyLjIgMGM2MS4xIDAgNjkuOS0yNS44IDc3LjQtNzMuNi03LjcgMC0xNi4zIC4yLTIyLjIgLjdsMC05LjFjNy4yIDAgMzEuNy0uNCA0Ny44LTIzLjhsNjUuNS05NS43LTcyLjctMTA2LjdjLTguMy0xMS43LTE1LjEtMTIuNS0zNS44LTEyLjVsMC05LjFjOS4xIC43IDI3LjkgLjcgMzcuNyAuNyAxMi40IDAgMzAuOCAwIDQyLjktLjdsMCA5LjFjLTEyLjUgLjQtMTYuNiA2LjgtMTYuNiAxMC4yIDAgMS4xIC40IDIuMyAzIDYuNGw1NS43IDgxLjYgNDkuNy03Mi4xYzIuNy0zLjcgNC41LTYuOCA0LjUtMTEuMyAwLTYuMS0zLTEzLjYtMTUtMTQuOGwwLTkuMWM5LjQgLjcgMjQuOCAuNyAzNy4yIC43IDkgMCAyMy4zIDAgMzItLjdsMCA5LjF6Il19LHA5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbGF1ZGUiLGljb246WzUxMiw1MTIsW10sImU4NjEiLCJNMTAwLjQgMzQwLjVsMTAwLjctNTYuNSAxLjctNC45LTEuNy0yLjctNC45IDAtMTYuOC0xLTU3LjUtMS42LTQ5LjktMi4xLTQ4LjMtMi42LTEyLjItMi42LTExLjQtMTUgMS4yLTcuNSAxMC4yLTYuOSAxNC43IDEuM2MxOC45IDEuMyA0NS45IDMuMSA4MSA1LjZsMzUuMiAyLjEgNTIuMiA1LjQgOC4zIDAgMS4yLTMuNC0yLjgtMi4xLTIuMi0yLjEtNTAuMy0zNC4xLTU0LjQtMzYtMjguNS0yMC43LTE1LjQtMTAuNS03LjgtOS44LTMuNC0yMS41IDE0LTE1LjQgMTguOCAxLjMgNC44IDEuMyAxOSAxNC43IDQwLjcgMzEuNSA1My4xIDM5LjEgNy44IDYuNSAzLjEtMi4yIC40LTEuNi0zLjUtNS44LTI4LjktNTIuMi0zMC44LTUzLjEtMTMuNy0yMi0zLjYtMTMuMmMtMS4zLTUuNC0yLjItMTAtMi4yLTE1LjVsMTUuOS0yMS42IDguOC0yLjggMjEuMiAyLjggOC45IDcuOCAxMy4yIDMwLjIgMjEuNCA0Ny41IDMzLjIgNjQuNiA5LjcgMTkuMiA1LjIgMTcuOCAxLjkgNS40IDMuNCAwIDAtMy4xIDIuNy0zNi40IDUtNDQuNyA0LjktNTcuNSAxLjctMTYuMiA4LTE5LjQgMTUuOS0xMC41IDEyLjQgNS45IDEwLjIgMTQuNy0xLjQgOS41LTYuMSAzOS41LTExLjkgNjEuOS03LjggNDEuNSA0LjUgMCA1LjItNS4yIDIxLTI3LjggMzUuMi00NC4xIDE1LjUtMTcuNSAxOC4xLTE5LjMgMTEuNi05LjIgMjIgMCAxNi4yIDI0LjEtNy4zIDI0LjktMjIuNyAyOC43LTE4LjggMjQuNC0yNyAzNi4zLTE2LjggMjkgMS42IDIuMyA0LS40IDYwLjktMTMgMzIuOS01LjkgMzkuMy02LjcgMTcuOCA4LjMgMS45IDguNC03IDE3LjItNDIgMTAuNC00OS4yIDkuOC03My4zIDE3LjMtLjkgLjcgMSAxLjMgMzMgMy4xIDE0LjEgLjggMzQuNiAwIDY0LjQgNC44IDE2LjggMTEuMSAxMC4xIDEzLjYtMS43IDEwLjQtMjUuOSAxMy4yYy0xNS41LTMuNy01NC40LTEyLjktMTE2LjYtMjcuN2wtMjgtNy0zLjkgMCAwIDIuMyAyMy4zIDIyLjggNDIuNyAzOC42IDUzLjUgNDkuOCAyLjcgMTIuMy02LjkgOS43LTcuMy0xLTQ3LTM1LjQtMTguMS0xNS45LTQxLjEtMzQuNi0yLjcgMCAwIDMuNiA5LjUgMTMuOSA1MCA3NS4yIDIuNiAyMy0zLjYgNy41LTEzIDQuNS0xNC4yLTIuNi0yOS4zLTQxLjEtMzAuMi00Ni4zLTI0LjQtNDEuNS0zIDEuNy0xNC40IDE1NC44LTYuNyA3LjktMTUuNSA1LjktMTMtOS44LTYuOS0xNS45IDYuOS0zMS41IDguMy00MS4xIDYuNy0zMi43IDYuMS00MC42IDMuNi0xMy41LS4yLS45LTMgLjQtMzAuNiA0Mi00Ni41IDYyLjktMzYuOCAzOS40LTguOCAzLjUtMTUuMy03LjkgMS40LTE0LjEgOC41LTEyLjYgNTAuOS02NC44IDMwLjctNDAuMiAxOS44LTIzLjItLjEtMy40LTEuMiAwLTEzNS4zIDg3LjgtMjQuMSAzLjEtMTAuNC05LjcgMS4zLTE1LjkgNC45LTUuMiA0MC43LTI4LS4xIC4xIDAgLjF6Il19LGg5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9waWZ5IixpY29uOls0NDgsNTEyLFtdLCJlMDU3IiwiTTM4OC41IDEwNC4xYy0uMi0xLjEtLjctMi4xLTEuNS0yLjhzLTEuOC0xLjItMi45LTEuMmMtMiAwLTM3LjItLjgtMzcuMi0uOHMtMjEuNi0yMC44LTI5LjYtMjguOGwwIDQzMi43IDEyNS43LTMxLjJzLTU0LTM2NS41LTU0LjQtMzY3Ljl6TTI4OC45IDcwLjVjLTEuOS02LjEtNC4zLTExLjktNy4yLTE3LjYtMTAuNC0yMC0yNi0zMC45LTQ0LjQtMzAuOS0xLjMgMC0yLjcgLjEtNCAuNC0uNC0uOC0xLjItMS4yLTEuNi0yLTgtOC44LTE4LjQtMTIuOC0zMC44LTEyLjQtMjQgLjgtNDggMTgtNjcuMiA0OC44LTEzLjYgMjEuNi0yNCA0OC44LTI2LjggNzAuMS0yNy42IDguNC00Ni44IDE0LjQtNDcuMiAxNC44LTE0IDQuNC0xNC40IDQuOC0xNiAxOC0xLjIgMTAtMzggMjkxLjgtMzggMjkxLjhsMzAyLjYgNTIuNSAwLTQzOC4zYy0xLjUgLjEtMi45IC4yLTQuNCAuNCAwIDAtNS42IDEuNi0xNC44IDQuNHpNMjMzLjYgODcuN2MtMTYgNC44LTMzLjYgMTAuNC01MC44IDE1LjYgNC44LTE4LjggMTQuNC0zNy42IDI1LjYtNTAgNC40LTQuNCAxMC40LTkuNiAxNy4yLTEyLjggNi44IDE0LjQgOC40IDM0IDggNDcuMnpNMjAwLjggMjQuNGM1LS4yIDEwIDEuMSAxNC40IDMuNi02LjQgMy4yLTEyLjggOC40LTE4LjggMTQuNC0xNS4yIDE2LjQtMjYuOCA0Mi0zMS42IDY2LjUtMTQuNCA0LjQtMjguOCA4LjgtNDIgMTIuOCA4LjgtMzguNCA0MS4yLTk2LjQgNzgtOTcuMnpNMTU0LjQgMjQ0LjZjMS42IDI1LjYgNjkuMiAzMS4yIDczLjIgOTEuNyAyLjggNDcuNi0yNS4yIDgwLjEtNjUuNiA4Mi41LTQ4LjggMy4yLTc1LjYtMjUuNi03NS42LTI1LjZsMTAuNC00NHMyNi44IDIwLjQgNDguNCAxOC44YzE0LS44IDE5LjItMTIuNCAxOC44LTIwLjQtMi0zMy42LTU3LjItMzEuNi02MC44LTg2LjktMy4yLTQ2LjQgMjcuMi05My4zIDk0LjUtOTcuNyAyNi0xLjYgMzkuMiA0LjggMzkuMiA0LjhsLTE1LjIgNTcuNnMtMTcuMi04LTM3LjYtNi40Yy0yOS42IDItMzAgMjAuOC0yOS42IDI1LjZ6TTI0OS42IDgyLjljMC0xMi0xLjYtMjkuMi03LjItNDMuNiAxOC40IDMuNiAyNy4yIDI0IDMxLjIgMzYuNC03LjIgMi0xNS4yIDQuNC0yNCA3LjJ6Il19LE1FPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1yZWRkaXQiLGljb246WzQ0OCw1MTIsWyJyZWRkaXQtc3F1YXJlIl0sImYxYTIiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyek0zMDUuOSAxNjYuNGMyMC42IDAgMzcuMy0xNi43IDM3LjMtMzcuM3MtMTYuNy0zNy4zLTM3LjMtMzcuM2MtMTggMC0zMy4xIDEyLjgtMzYuNiAyOS44LTMwLjIgMy4yLTUzLjggMjguOC01My44IDU5LjlsMCAuMmMtMzIuOCAxLjQtNjIuOCAxMC43LTg2LjYgMjUuNS04LjgtNi44LTE5LjktMTAuOS0zMi0xMC45LTI4LjkgMC01Mi4zIDIzLjQtNTIuMyA1Mi4zIDAgMjEgMTIuMyAzOSAzMC4xIDQ3LjQgMS43IDYwLjcgNjcuOSAxMDkuNiAxNDkuMyAxMDkuNnMxNDcuNi00OC45IDE0OS4zLTEwOS43YzE3LjctOC40IDI5LjktMjYuNCAyOS45LTQ3LjMgMC0yOC45LTIzLjQtNTIuMy01Mi4zLTUyLjMtMTIgMC0yMyA0LTMxLjkgMTAuOC0yNC0xNC45LTU0LjMtMjQuMi04Ny41LTI1LjRsMC0uMWMwLTIyLjIgMTYuNS00MC43IDM3LjktNDMuNyAzLjkgMTYuNSAxOC43IDI4LjcgMzYuMyAyOC43bC4yLS4yek0xNTUgMjQ4LjFjMTQuNiAwIDI1LjggMTUuNCAyNSAzNC40cy0xMS44IDI1LjktMjYuNSAyNS45LTI3LjUtNy43LTI2LjYtMjYuNyAxMy41LTMzLjUgMjguMS0zMy41bDAtLjF6bTE2Ni40IDMzLjVjLjkgMTktMTIgMjYuNy0yNi42IDI2LjdzLTI1LjYtNi45LTI2LjUtMjUuOSAxMC4zLTM0LjQgMjUtMzQuNCAyNy4zIDE0LjYgMjguMSAzMy41bDAgLjF6bS00Mi4xIDQ5LjZjLTkgMjEuNS0zMC4zIDM2LjctNTUuMSAzNi43cy00Ni4xLTE1LjEtNTUuMS0zNi43Yy0xLjEtMi42IC43LTUuNCAzLjQtNS43IDE2LjEtMS42IDMzLjUtMi41IDUxLjctMi41czM1LjYgLjkgNTEuNyAyLjVjMi43IC4zIDQuNSAzLjEgMy40IDUuN3oiXX0sdTllPU1FLGY5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5jIixpY29uOls1MTIsNTEyLFtdLCJmNGU4IiwiTTI1NS42IDhDMzk1LjQgOCA1MDQgMTE1LjkgNTA0IDI1NiA1MDQgNDAzLjIgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuMSA1MDQgOCAzOTMuMiA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHpNNjMuOCAxODkuMWMtNy40IDIwLjQtMTEuMSA0Mi43LTExLjEgNjYuOSAwIDExMC45IDkyLjEgMjAyLjQgMjAzLjcgMjAyLjQgMTIyLjQgMCAxNzcuMi0xMDEuOCAxNzguNS0xMDQuMWwtOTMuNC00MS42Yy03LjcgMzcuMS00MS4yIDUzLTY4LjIgNTUuNGwwIDM4LjEtMjguOCAwIDAtMzguMmMtMjcuNS0uMy01Mi42LTEwLjItNzUuMy0yOS43bDM0LjEtMzQuNWMzMS43IDI5LjQgODYuNCAzMS44IDg2LjQtMi4yIDAtNi4yLTIuMi0xMS4yLTYuNi0xNS4xLTE0LjItNi0xLjgtLjEtMjE5LjMtOTcuNHpNMjU2LjQgNTIuM0MyMTggNTIuMyAxNDQgNjEgODUuOSAxNDUuM2w5NC44IDQyLjVjMTAtMzEuMyA0MC40LTQyLjkgNjMuOC00NC4zbDAtMzguMSAyOC44IDAgMCAzOC4xYzIyLjcgMS4yIDQzLjQgOC45IDYyIDIzTDMwMyAxOTkuN2MtNDIuNy0yOS45LTgzLjUtOC03MCAxMS4xIDUzLjQgMjQuMSA0My44IDE5LjggOTMgNDEuNmwxMjcuMSA1Ni43YzQuMS0xNy40IDYuMi0zNS4xIDYuMi01My4xIDAtNTctMTkuOC0xMDUtNTkuMy0xNDMuOS0zOS4zLTM5LjktODcuMi01OS44LTE0My42LTU5Ljh6Il19LG05ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnYWxhY3RpYy1yZXB1YmxpYyIsaWNvbjpbNTEyLDUxMixbXSwiZjUwYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAxIDAgNDk2IDI0OCAyNDggMCAxIDEgMC00OTZ6bTAgMTYuNWEyMzEuNSAyMzEuNSAwIDEgMCAwIDQ2Mi45IDIzMS41IDIzMS41IDAgMSAwIDAtNDYyLjl6bTI3LjYgMjEuOGwwIDI0LjZjMzAuMyA0LjUgNTkgMTYuMyA4My42IDM0LjVsMTcuNC0xNy40Yy0yOC43LTIyLjEtNjMuMy0zNi45LTEwMS00MS44em0tNTUuNCAuMWMtMzcuNiA0LjktNzIuMiAxOS44LTEwMC45IDQxLjlsMTcuMyAxNy40IC4xIDBjMjQuMS0xNy44IDUyLjYtMzAuMSA4My41LTM0LjdsMC0yNC41em0xMi4yIDUwLjJsMCA4Mi45Yy0xMCAyLTE5LjQgNS45LTI3LjcgMTEuNGwtNTguNi01OC42LTIxLjkgMjEuOSA1OC43IDU4LjdjLTUuNSA4LjItOS40IDE3LjYtMTEuNSAyNy42bC04Mi45IDAgMCAzMSA4Mi45IDBjMiAxMCA2IDE5LjMgMTEuNSAyNy41bC01OC43IDU4LjcgMjEuOSAyMS45IDU4LjYtNTguNmM4LjQgNS42IDE3LjggOS41IDI3LjcgMTEuNWwwIDgyLjkgMzEgMCAwLTgyLjljMTAtMiAxOS40LTYuMSAyNy42LTExLjVsNTguNyA1OC43IDIxLjktMjEuOS01OC43LTU4LjdjNS41LTguMiA5LjUtMTcuNSAxMS41LTI3LjVsODIuOSAwIDAtMzEtODIuOSAwYy0yLTEwLTYtMTkuNC0xMS41LTI3LjZsNTguNy01OC43LTIxLjktMjEuOS01OC43IDU4LjdjLTguMi01LjUtMTcuNi05LjUtMjcuNi0xMS41bDAtODIuOS0zMSAwem0xODMuMiAzMC43bC0xNy40IDE3LjRjMTguMyAyNC42IDMwLjIgNTMuNCAzNC43IDgzLjdsMjQuNiAwYy01LTM3LjctMTkuOC03Mi4zLTQxLjktMTAxem0tMzM1LjYgLjFjLTIyLjEgMjguNy0zNi45IDYzLjMtNDEuOCAxMDAuOWwyNC42IDBjNC42LTMxIDE2LjgtNTkuNCAzNC42LTgzLjVMODguMiAxMjcuNHpNNDYuMyAyODMuN2M0LjkgMzcuNiAxOS43IDcyLjIgNDEuOCAxMDAuOWwxNy40LTE3LjRDODcuNyAzNDMuMSA3NS42IDMxNC42IDcxIDI4My43bC0yNC42IDAgMCAwem0zOTQuNyAwYy00LjYgMzEtMTYuOCA1OS41LTM0LjcgODMuNmwxNy40IDE3LjRjMjIuMS0yOC43IDM3LTYzLjMgNDEuOS0xMDFsLTI0LjYgMHpNMTQ0LjcgNDA2LjRsLTE3LjQgMTcuNGMyOC43IDIyLjEgNjMuMyAzNyAxMDEgNDEuOWwwLTI0LjZjLTMxLTQuNi01OS41LTE2LjgtODMuNi0zNC42em0yMjIuNSAwYy0yNC4xIDE3LjgtNTIuNiAzMC4xLTgzLjYgMzQuN2wwIDI0LjZjMzcuNy00LjkgNzIuMi0xOS44IDEwMS00MS44bC0xNy4zLTE3LjQtLjEgMHoiXX0sRmY9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmFjZWJvb2siLGljb246WzUxMiw1MTIsWzYyZTNdLCJmMDlhIiwiTTUxMiAyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3NiA4Mi43IDQ3Ni44IDE5NC4yIDUwNC41bDAtMTcwLjMtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE3NS45QzQxMy44IDQ5NC44IDUxMiAzODYuOSA1MTIgMjU2eiJdfSxnOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2l0bGFiIixpY29uOls1MTIsNTEyLFtdLCJmMjk2IiwiTTUwNCAyMDQuNmwtLjctMS44LTY5LjctMTgxLjhjLTEuNC0zLjYtMy45LTYuNi03LjItOC42LTIuNC0xLjYtNS4xLTIuNS04LTIuOHMtNS43IC4xLTguNCAxLjEtNS4xIDIuNy03LjEgNC44Yy0xLjkgMi4xLTMuMyA0LjctNC4xIDcuNGwtNDcgMTQ0LTE5MC41IDAtNDcuMS0xNDRjLS44LTIuOC0yLjItNS4zLTQuMS03LjQtMi0yLjEtNC40LTMuNy03LjEtNC44LTIuNi0xLTUuNS0xLjQtOC40LTEuMXMtNS42IDEuMi04IDIuOGMtMy4yIDItNS44IDUuMS03LjIgOC42TDkuOCAyMDIuOCA5IDIwNC42Yy0xMCAyNi4yLTExLjMgNTUtMy41IDgyIDcuNyAyNi45IDI0IDUwLjcgNDYuNCA2Ny42bC4zIC4yIC42IC40IDEwNiA3OS41YzM4LjUgMjkuMSA2Ni43IDUwLjMgODQuNiA2My45IDMuNyAxLjkgOC4zIDQuMyAxMyA0LjNzOS4zLTIuNCAxMy00LjNjMTcuOS0xMy41IDQ2LjEtMzQuOSA4NC42LTYzLjlsMTA2LjctNzkuOSAuMy0uM2MyMi40LTE2LjkgMzguNy00MC42IDQ1LjYtNjcuNSA4LjYtMjcgNy40LTU1LjgtMi42LTgyeiJdfSxiOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXEiLGljb246WzQ0OCw1MTIsW10sImYxZDYiLCJNNDM0LjEgNDIwLjRjLTExLjUgMS40LTQ0LjktNTIuNy00NC45LTUyLjcgMCAzMS4zLTE2LjEgNzIuMi01MSAxMDEuOCAxNi44IDUuMiA1NC44IDE5LjIgNDUuOCAzNC40LTcuMyAxMi4zLTEyNS41IDcuOS0xNTkuNiA0LTM0LjEgMy44LTE1Mi4zIDguMy0xNTkuNi00LTktMTUuMiAyOC45LTI5LjIgNDUuOC0zNC40LTM0LjktMjkuNS01MS4xLTcwLjQtNTEuMS0xMDEuOCAwIDAtMzMuMyA1NC4xLTQ0LjkgNTIuNy01LjQtLjYtMTIuNC0yOS42IDkuMy05OS43IDEwLjMtMzMgMjItNjAuNSA0MC4xLTEwNS44LTMuMS0xMTYuOSA0NS4yLTIxNSAxNjAuMy0yMTUgMTEzLjcgMCAxNjMuMiA5Ni4xIDE2MC4zIDIxNSAxOC4xIDQ1LjIgMjkuOSA3Mi45IDQwLjEgMTA1LjggMjEuOCA3MC4xIDE0LjcgOTkuMSA5LjMgOTkuN3oiXX0sdjllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmlwZSIsaWNvbjpbNjQwLDUxMixbXSwiZjQyOSIsIk0xNjUgMTQ0LjdsLTQzLjMgOS4yLS4yIDE0Mi40YzAgMjYuMyAxOS44IDQzLjMgNDYuMSA0My4zIDE0LjYgMCAyNS4zLTIuNyAzMS4yLTUuOWwwLTMzLjhjLTUuNyAyLjMtMzMuNyAxMC41LTMzLjctMTUuN2wwLTYzLjIgMzMuNyAwIDAtMzcuOC0zMy43IDAtLjEtMzguNXptODkuMSA1MS42bC0yLjctMTMuMS0zOC40IDAgMCAxNTMuMiA0NC4zIDAgMC0xMDMuMWMxMC41LTEzLjggMjguMi0xMS4xIDMzLjktOS4zbDAtNDAuOGMtNi0yLjEtMjYuNy02LTM3LjEgMTMuMXpNMzQ2LjQgMTI0bC00NC42IDkuNSAwIDM2LjIgNDQuNi05LjUgMC0zNi4yek00NC45IDIyOC4zYzAtNi45IDUuOC05LjYgMTUuMS05LjcgMTMuNSAwIDMwLjcgNC4xIDQ0LjIgMTEuNGwwLTQxLjhjLTE0LjctNS44LTI5LjQtOC4xLTQ0LjEtOC4xLTM2IDAtNjAgMTguOC02MCA1MC4yIDAgNDkuMiA2Ny41IDQxLjIgNjcuNSA2Mi40IDAgOC4yLTcuMSAxMC45LTE3IDEwLjktMTQuNyAwLTMzLjctNi4xLTQ4LjYtMTQuMmwwIDQwYzE2LjUgNy4xIDMzLjIgMTAuMSA0OC41IDEwLjEgMzYuOSAwIDYyLjMtMTUuOCA2Mi4zLTQ3LjggMC01Mi45LTY3LjktNDMuNC02Ny45LTYzLjR6TTY0MCAyNjEuNmMwLTQ1LjUtMjItODEuNC02NC4yLTgxLjRzLTY3LjkgMzUuOS02Ny45IDgxLjFjMCA1My41IDMwLjMgNzguMiA3My41IDc4LjIgMjEuMiAwIDM3LjEtNC44IDQ5LjItMTEuNWwwLTMzLjRjLTEyLjEgNi4xLTI2IDkuOC00My42IDkuOC0xNy4zIDAtMzIuNS02LjEtMzQuNS0yNi45bDg2LjkgMGMuMi0yLjMgLjYtMTEuNiAuNi0xNS45em0tODcuOS0xNi44YzAtMjAgMTIuMy0yOC40IDIzLjQtMjguNCAxMC45IDAgMjIuNSA4LjQgMjIuNSAyOC40bC00NS45IDB6TTQzOS4yIDE4MC4yYy0xNy40IDAtMjguNiA4LjItMzQuOCAxMy45bC0yLjMtMTEtMzkuMSAwIDAgMjA0LjggNDQuNC05LjQgLjEtNTAuMmM2LjQgNC43IDE1LjkgMTEuMiAzMS40IDExLjIgMzEuOCAwIDYwLjgtMjMuMiA2MC44LTc5LjYgLjEtNTEuNi0yOS4zLTc5LjctNjAuNS03OS43ek00MjguNiAzMDIuN2MtMTAuNCAwLTE2LjYtMy44LTIwLjktOC40bC0uMy02NmM0LjYtNS4xIDExLTguOCAyMS4yLTguOCAxNi4yIDAgMjcuNCAxOC4yIDI3LjQgNDEuNCAuMSAyMy45LTEwLjkgNDEuOC0yNy40IDQxLjh6TTMwMS45IDMzNi40bDQ0LjYgMCAwLTE1My4yLTQ0LjYgMCAwIDE1My4yeiJdfSx5OWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFpbHltb3Rpb24iLGljb246WzQ0OCw1MTIsW10sImUwNTIiLCJNMjk4LjkgMjY3Yy03LjQtNC4yLTE1LjgtNi4zLTI0LjQtNi4yLTEzLjIgMC0yNC40IDQuNC0zMy40IDEzLjNzLTEzLjYgMjAtMTMuNiAzMy40YzAgMTQuMSA0LjQgMjUuNiAxMy4zIDM0LjZzMjAgMTMuNCAzMy40IDEzLjRjMTMuNyAwIDI1LTQuNiAzNC4xLTEzLjhTMzIyIDMyMS4xIDMyMiAzMDcuNWMwLTguMi0yLjEtMTYuMy02LjEtMjMuNS00LTcuMS05LjgtMTMtMTctMTd6TTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM3NC43IDQwNS4zbC01My4xIDAgMC0yMy45LS43IDBjLTEwLjUgMTcuNS0yOS4xIDI2LjItNTUuOCAyNi4yLTE4LjQgMC0zNC43LTQuNC00OC45LTEzLjEtMTQuMS04LjYtMjUuNS0yMS0zMi45LTM1LjgtNy43LTE1LjEtMTEuNi0zMi4xLTExLjYtNTAuOSAwLTE4LjQgMy45LTM1LjEgMTEuOC01MC4yIDcuNS0xNC43IDE4LjktMjcuMSAzMi45LTM1LjggMTQuMS04LjcgMzAtMTMuMSA0Ny43LTEzLjEgMTAuMi0uMSAyMC4yIDEuNiAyOS43IDUuMiA4LjkgMy41IDE3LjIgOS4xIDI1IDE3bDAtNzcuOSA1NS44LTEyLjEgMCAyNjQuNHoiXX0seDllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0ZWFtIixpY29uOls1MTIsNTEyLFtdLCJmMWI2IiwiTTUwNCAyNTZjMCAxMzctMTExLjIgMjQ4LTI0OC40IDI0OC0xMTMuOCAwLTIwOS42LTc2LjMtMjM5LTE4MC40bDk1LjIgMzkuM2M2LjQgMzIuMSAzNC45IDU2LjQgNjguOSA1Ni40IDM5LjIgMCA3MS45LTMyLjQgNzAuMi03My41bDg0LjUtNjAuMmM1Mi4xIDEuMyA5NS44LTQwLjkgOTUuOC05My41IDAtNTEuNi00Mi05My41LTkzLjctOTMuNXMtOTMuNyA0Mi05My43IDkzLjVsMCAxLjItNTkuMiA4NS43Yy0xNS41LS45LTMwLjcgMy40LTQzLjUgMTIuMUw4IDIzNi4xQzE4LjIgMTA4LjQgMTI1LjEgOCAyNTUuNiA4IDM5Mi44IDggNTA0IDExOSA1MDQgMjU2ek0xNjMuNyAzODQuM2wtMzAuNS0xMi42YzUuNiAxMS42IDE1LjMgMjAuOCAyNy4yIDI1LjggMjYuOSAxMS4yIDU3LjgtMS42IDY5LTI4LjQgNS40LTEzIDUuNS0yNy4zIC4xLTQwLjNTMjE0IDMwNS42IDIwMSAzMDAuMmMtMTIuOS01LjQtMjYuNy01LjItMzguOS0uNmwzMS41IDEzYzE5LjggOC4yIDI5LjIgMzAuOSAyMC45IDUwLjctOC4zIDE5LjktMzEgMjkuMi01MC44IDIxek0zMzcuNSAxMjkuOGE2Mi4zIDYyLjMgMCAxIDEgMCAxMjQuNiA2Mi4zIDYyLjMgMCAxIDEgMC0xMjQuNnptLjEgMTA5YTQ2LjggNDYuOCAwIDEgMCAwLTkzLjYgNDYuOCA0Ni44IDAgMSAwIDAgOTMuNnoiXX0sdzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZlbm1vLXYiLGljb246WzUxMiw1MTIsW10sImU4NWIiLCJNNDY2LjUgMTQuOGMxNy40IDI4LjcgMjUuMyA1OC4yIDI1LjMgOTUuNSAwIDExOS0xMDEuOSAyNzMuNS0xODQuNyAzODIuMWwtMTg4LjkgMC03NS44LTQ1MS41IDE2NS40LTE1LjcgNDAuMSAzMjEuM2MzNy40LTYwLjggODMuNi0xNTYuMyA4My42LTIyMS40IDAtMzUuNi02LjEtNTkuOS0xNS43LTc5LjlMNDY2LjUgMTQuOHoiXX0sekU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic25hcGNoYXQiLGljb246WzUxMiw1MTIsWzYyMTI0LCJzbmFwY2hhdC1naG9zdCJdLCJmMmFiIiwiTTQ5Ny4xIDM2Ni42Yy0zLjQtOS4yLTkuOC0xNC4xLTE3LjEtMTguMi0xLjQtLjgtMi42LTEuNS0zLjctMS45LTIuMi0xLjEtNC40LTIuMi02LjYtMy40LTIyLjgtMTIuMS00MC42LTI3LjMtNTMtNDUuNC0zLjUtNS4xLTYuNi0xMC41LTkuMS0xNi4xLTEuMS0zLTEtNC43LS4yLTYuMyAuOC0xLjIgMS43LTIuMiAyLjktMyAzLjktMi42IDgtNS4yIDEwLjctNyA0LjktMy4yIDguOC01LjcgMTEuMi03LjQgOS40LTYuNSAxNS45LTEzLjUgMjAtMjEuMyAyLjktNS40IDQuNS0xMS4zIDQuOS0xNy40cy0uNi0xMi4yLTIuOC0xNy44Yy02LjItMTYuMy0yMS42LTI2LjQtNDAuMy0yNi40LTMuOSAwLTcuOSAuNC0xMS43IDEuMi0xIC4yLTIuMSAuNS0zLjEgLjcgLjItMTEuMi0uMS0yMi45LTEuMS0zNC41LTMuNS00MC44LTE3LjgtNjIuMS0zMi43LTc5LjItOS41LTEwLjctMjAuNy0xOS43LTMzLjItMjYuNy0yMi42LTEyLjktNDguMi0xOS40LTc2LjEtMTkuNHMtNTMuNCA2LjUtNzYgMTkuNGMtMTIuNSA3LTIzLjcgMTYuMS0zMy4zIDI2LjgtMTQuOSAxNy0yOS4yIDM4LjQtMzIuNyA3OS4yLTEgMTEuNi0xLjIgMjMuNC0xLjEgMzQuNS0xLS4zLTItLjUtMy4xLS43LTMuOS0uOC03LjgtMS4yLTExLjctMS4yLTE4LjcgMC0zNC4xIDEwLjEtNDAuMyAyNi40LTIuMiA1LjctMy4yIDExLjgtMi44IDE3LjhzMiAxMiA0LjkgMTcuNGM0LjEgNy44IDEwLjcgMTQuNyAyMCAyMS4zIDIuNSAxLjcgNi40IDQuMiAxMS4yIDcuNCAyLjYgMS43IDYuNSA0LjIgMTAuMyA2LjcgMS4zIC45IDIuNCAyIDMuMyAzLjMgLjggMS42IC44IDMuNC0uNCA2LjYtMi41IDUuNS01LjUgMTAuOC04LjkgMTUuOC0xMi4xIDE3LjctMjkuNCAzMi42LTUxLjQgNDQuNi0xMS43IDYuMi0yMy45IDEwLjMtMjkgMjQuMy0zLjkgMTAuNS0xLjMgMjIuNSA4LjUgMzIuNiAzLjYgMy44IDcuOCA2LjkgMTIuNCA5LjQgOS42IDUuMyAxOS44IDkuMyAzMC4zIDEyLjEgMi4yIC42IDQuMyAxLjUgNi4xIDIuNyAzLjYgMy4xIDMuMSA3LjkgNy44IDE0LjggMi40IDMuNiA1LjQgNi43IDkgOS4xIDEwIDYuOSAyMS4zIDcuNCAzMy4yIDcuOCAxMC44IC40IDIzIC45IDM2LjkgNS41IDUuOCAxLjkgMTEuOCA1LjYgMTguNyA5LjkgMTYuNyAxMC4zIDM5LjYgMjQuMyA3Ny44IDI0LjNzNjEuMy0xNC4xIDc4LjEtMjQuNGM2LjktNC4yIDEyLjktNy45IDE4LjUtOS44IDEzLjktNC42IDI2LjItNS4xIDM2LjktNS41IDExLjktLjUgMjMuMi0uOSAzMy4yLTcuOCA0LjItMi45IDcuNy02LjcgMTAuMi0xMS4yIDMuNC01LjggMy40LTkuOSA2LjYtMTIuOCAxLjgtMS4yIDMuNy0yLjEgNS44LTIuNiAxMC43LTIuOCAyMS02LjkgMzAuOC0xMi4yIDQuOS0yLjYgOS4zLTYuMSAxMy0xMC4ybC4xLS4yYzkuMi05LjkgMTEuNS0yMS41IDcuOC0zMS44em0tMzQgMTguM2MtMjAuNyAxMS41LTM0LjUgMTAuMi00NS4zIDE3LjEtOS4xIDUuOS0zLjcgMTguNS0xMC4zIDIzLjEtOC4xIDUuNi0zMi4yLS40LTYzLjIgOS45LTI1LjYgOC41LTQyIDMyLjgtODggMzIuOHMtNjItMjQuMy04OC4xLTMyLjljLTMxLTEwLjMtNTUuMS00LjItNjMuMi05LjktNi42LTQuNi0xLjItMTcuMi0xMC4zLTIzLjEtMTAuNy02LjktMjQuNS01LjctNDUuMy0xNy4xLTEzLjItNy4zLTUuNy0xMS44LTEuMy0xMy45IDc1LjEtMzYuNCA4Ny4xLTkyLjYgODcuNy05Ni43IC42LTUgMS40LTktNC4yLTE0LjEtNS40LTUtMjkuMi0xOS43LTM1LjgtMjQuMy0xMC45LTcuNi0xNS43LTE1LjMtMTIuMi0yNC42IDIuNS02LjUgOC41LTguOSAxNC45LTguOSAyIDAgNCAuMiA2IC43IDEyIDIuNiAyMy43IDguNiAzMC40IDEwLjIgLjggLjIgMS42IC4zIDIuNSAuMyAzLjYgMCA0LjktMS44IDQuNi01LjktLjgtMTMuMS0yLjYtMzguNy0uNi02Mi42IDIuOC0zMi45IDEzLjQtNDkuMiAyNi02My42IDYuMS02LjkgMzQuNS0zNyA4OC45LTM3UzMzOSA3NC4yIDM0NSA4MS4xYzEyLjYgMTQuNCAyMy4yIDMwLjcgMjYgNjMuNiAyLjEgMjMuOSAuMyA0OS41LS42IDYyLjYtLjMgNC4zIDEgNS45IDQuNiA1LjkgLjggMCAxLjctLjEgMi41LS4zIDYuNy0xLjYgMTguNC03LjYgMzAuNC0xMC4yIDItLjQgNC0uNyA2LS43IDYuNCAwIDEyLjQgMi41IDE0LjkgOC45IDMuNSA5LjQtMS4yIDE3LTEyLjIgMjQuNi02LjYgNC42LTMwLjQgMTkuMy0zNS44IDI0LjMtNS42IDUuMS00LjggOS4xLTQuMiAxNC4yIC41IDQuMiAxMi41IDYwLjQgODcuNyA5Ni43IDQuNCAyLjIgMTEuOSA2LjctMS4zIDE0LjF6Il19LE05ZT16RSx6OWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2FsYWN0aWMtc2VuYXRlIixpY29uOls1MTIsNTEyLFtdLCJmNTBkIiwiTTI0OS45IDMzLjVsMCAyNi4xYy0xMy42IDIwLjYtMjMuOSAxMDguNi0yNC41IDIxNS4zIDExLjctMTUuNiAxOS4xLTMzLjMgMTkuMS00OC4ybDAtMTYuOWMwLTUuMyAuOC0xMC41IDIuMi0xNS42IC42LTIuMSAxLjQtNC4xIDIuNi01LjhzMy40LTMuOCA2LjctMy44IDUuNCAyLjEgNi43IDMuOGMxLjIgMS44IDIgMy43IDIuNiA1LjggMS40IDUuMSAyLjIgMTAuMyAyLjIgMTUuNmwwIDE2LjljMCAxNC45IDcuNCAzMi42IDE5LjEgNDguMi0uNi0xMDYuOC0xMC45LTE5NC43LTI0LjUtMjE1LjNsMC0yNi4xLTEyLjMgMHpNMjIzLjUgMTgxLjNjLTkuNSAyLjEtMTguNyA1LjItMjcuNSA5LjEgOC45IDE2LjEgOS44IDMyLjYgMS43IDM3LjMtOCA0LjYtMjEuOC00LjItMzEuNC0xOS44LTExLjYgOC44LTIxLjkgMTkuMy0zMC42IDMxLjEgMTQuNyA5LjYgMjIuOSAyMi45IDE4LjMgMzAuNy00LjUgNy43LTIwIDcuMS0zNS41LTEtNS44IDEzLjItOS43IDI3LjUtMTEuNiA0Mi40IDkuNyAuMiAxOC43IDIuNCAyNi4yIDYgMTcuOC0uMyAzMi44LTIgNDAuNS00LjIgNS42LTI2LjQgMjMtNDguMiA0Ni4zLTU5LjUgLjctMjUuNiAxLjktNDkuNyAzLjUtNzIuMXptNjUgMGMxLjYgMjIuNCAyLjcgNDYuNSAzLjUgNzIuMSAyMy4zIDExLjMgNDAuOCAzMy4yIDQ2LjMgNTkuNSA3LjcgMi4zIDIyLjcgMy45IDQwLjUgNC4yIDcuNS0zLjcgMTYuNS01LjggMjYuMi02LTEuOS0xNC45LTUuOS0yOS4yLTExLjctNDIuNC0xNS40IDguMS0zMC45IDguNy0zNS41IDEtNC42LTcuNyAzLjYtMjEuMSAxOC4zLTMwLjctOC43LTExLjgtMTktMjIuMy0zMC42LTMxLjEtOS41IDE1LjYtMjMuNCAyNC40LTMxLjQgMTkuOC04LjEtNC42LTcuMi0yMS4yIDEuNy0zNy4zLTguOC0zLjktMTgtNy0yNy40LTkuMXpNMjU2IDE4OS45Yy0zLjIgMC01LjkgOC44LTYuMSAxOS45bDAgMCAwIDE2LjljMCA0MS40LTQ5IDk1LTkzLjUgOTUtNTIgMC0xMjIuOC0xLjQtMTU2LjQgMjkuMmwwIDIuNWM5LjQgMTcuMSAyMC42IDMzLjIgMzMuMiA0OCAxMi41LTIxLjEgNTEuNi00MSAxMDgtNDEuNCA0NS43IDEgNzkgMjAuMyA5MC44IDQwLjkgMCAwIDAgMCAwIC4xIDcuNyAyLjEgMTUuOCAzLjIgMjQgMy4yIDguMiAwIDE2LjQtMS4xIDI0LTMuMiAwIDAgMCAwIDAtLjEgMTEuNy0yMC41IDQ1LjEtMzkuOCA5MC44LTQwLjkgNTYuNCAuNCA5NS41IDIwLjMgMTA4IDQxLjQgMTIuNi0xNC44IDIzLjgtMzAuOSAzMy4yLTQ4bDAtMi41Yy0zMy42LTMwLjYtMTA0LjQtMjkuMi0xNTYuNC0yOS4yLTQ0LjUgMC05My41LTUzLjYtOTMuNS05NWwwLTE2LjktLjEgMGMtLjItMTEuMS0yLjktMTkuOS02LjEtMTkuOXptMCAxNzcuOWE0MC42IDQwLjYgMCAxIDEgMC04MS4zIDQwLjYgNDAuNiAwIDEgMSAwIDgxLjN6bTAtNzMuNmEzMyAzMyAwIDEgMCAwIDY1LjkgMzMgMzMgMCAxIDAgMC02NS45em0wIDU5LjhhMjYuOCAyNi44IDAgMSAxIDAtNTMuNiAyNi44IDI2LjggMCAxIDEgMCA1My42em0tMTE0LjggMTNjLTEwLjIgLjEtMjEuNiAuNC0zMC41IDEuNyAuNCA0LjQgMS41IDE4LjYgNy4xIDI5LjggOS4xLTIuNiAxOC40LTMuOSAyNy42LTMuOSA0MS4zIC45IDcxLjUgMzQuNCA3OC4zIDc0LjVsLjEgNC43YzEwLjQgMS45IDIxLjIgMi45IDMyLjIgMi45IDExIDAgMjEuOC0xIDMyLjItMi45bC4xLTQuN2M2LjgtNDAuMSAzNy03My41IDc4LjMtNzQuNSA5LjMgMCAxOC41IDEuMyAyNy42IDMuOSA1LjYtMTEuMSA2LjctMjUuMyA3LjEtMjkuOC04LjktMS4zLTIwLjMtMS42LTMwLjUtMS43LTE4LjggLjQtMzUuMiA0LjItNDguNiA5LjctMTIuNSAxNi0yOS4yIDMwLTQ5LjYgMzMuMS0uMSAwLS4yIDAtLjMgMCAwIDAtLjEgMC0uMiAuMS01LjIgMS4xLTEwLjYgMS42LTE2LjIgMS42LTUuNSAwLTEwLjktLjUtMTYuMi0xLjYtLjEgMC0uMSAwLS4yLS4xLS4xIDAtLjIgMC0uMyAwLTIwLjQtMy0zNy0xNy00OS42LTMzLjEtMTMuNC01LjUtMjkuOS05LjItNDguNi05Ljd6Il19LGs5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaG9lbml4LWZyYW1ld29yayIsaWNvbjpbNjQwLDUxMixbXSwiZjNkYyIsIk0yMTIuOSAzNDQuM2MzLjgtLjEgMjIuOC0xLjQgMjUuNi0yLjItMi40LTIuNi00My42LTEtNjgtNDkuNi00LjMtOC42LTcuNS0xNy42LTYuNC0yNy42IDIuOS0yNS41IDMyLjktMzAgNTItMTguNSAzNiAyMS42IDYzLjMgOTEuMyAxMTMuNyA5Ny41IDM3IDQuNSA4NC42LTE3IDEwOC4yLTQ1LjQtLjYtLjEtLjgtLjItMS0uMS0uNCAuMS0uOCAuMi0xLjEgLjMtMzMuMyAxMi4xLTk0LjMgOS43LTEzNC43LTE0LjgtMzcuNi0yMi44LTUzLjEtNTguNy01MS44LTc0LjYgMS44LTIxLjMgMjIuOS0yMy4yIDM1LjktMTkuNiAxNC40IDMuOSAyNC40IDE3LjYgMzguOSAyNy40IDE1LjYgMTAuNCAzMi45IDEzLjcgNTEuMyAxMC4zIDE0LjktMi43IDM0LjQtMTIuMyAzNi41LTE0LjUtMS4xLS4xLTEuOC0uMS0yLjUtLjItNi4yLS42LTEyLjQtLjgtMTguNS0xLjctMTExLjItMTYuNS0xMjguOS0xNjMuNi0yNTIuNS0xNzMuMS00NC4zLTMuNC05OS40IDguMS0xMzYuMyAzNS0uOCAuNi0xLjUgMS4yLTIuMiAxLjggLjEgLjIgLjEgLjMgLjIgLjUgLjggMCAxLjYtLjEgMi40LS4yIDYuMy0xIDEyLjUtLjggMTguNyAuMyAyMy44IDQuMyA0Ny43IDIzLjEgNTUuOSA3Ni41IDUuMyAzNC4zLS43IDUwLjggOCA4Ni4xIDE5IDc3LjEgOTEgMTA3LjYgMTI3LjcgMTA2LjR6TTc1LjMgNjQuOWMtLjktMS0uOS0xLjItMS4zLTIgMTIuMS0yLjYgMjQuMi00LjEgMzYuNi00LjgtMS4xIDE0LjctMjIuMiAyMS4zLTM1LjMgNi44ek0yNzIuMiA0MTUuNGMtNDIuOCAxLjItOTItMjYuNy0xMjMuNS02MS40LTQuNi01LTE2LjgtMjAuMi0xOC42LTIzLjRsLjQtLjRjNi42IDQuMSAyNS43IDE4LjYgNTQuOCAyNyAyNC4yIDcgNDguMSA2LjMgNzEuNi0zLjMgMjIuNy05LjMgNDEtLjUgNDMuMSAyLjktMTguNSAzLjgtMjAuMSA0LjQtMjQgNy45LTUuMSA0LjQtNC42IDExLjcgNyAxNy4yIDI2LjIgMTIuNCA2My0yLjggOTcuMiAyNS40IDIuNCAyIDguMSA3LjggMTAuMSAxMC43LS4xIC4yLS4zIC4zLS40IC41LTQuOC0xLjUtMTYuNC03LjUtNDAuMi05LjMtMjQuNy0yLTQ2LjMgNS4zLTc3LjUgNi4yek00NDcgMTYzLjRjMTYuNC01LjIgNDEuMy0xMy40IDY2LjUtMy4zIDE2LjEgNi41IDI2LjIgMTguNyAzMi4xIDM0LjYgMy41IDkuNCA1LjEgMTkuNyA1LjEgMjguNy0uMiAwLS40IDAtLjYgLjEtLjItLjQtLjQtLjktLjUtMS4zLTUtMjItMjkuOS00My44LTY3LjYtMjkuOS01MC4yIDE4LjYtMTMwLjQgOS43LTE3Ni45LTQ4LS43LS45LTIuNC0xLjctMS4zLTMuMiAuMS0uMiAyLjEgLjYgMyAxLjMgMTguMSAxMy40IDM4LjMgMjEuOSA2MC4zIDI2LjIgMzAuNSA2LjEgNTQuNiAyLjkgNzkuOS01LjJ6TTU0OS43IDI4MC45Yy0zMi40IC4yLTMzLjggNTAuMS0xMDMuNiA2NC40LTE4LjIgMy43LTM4LjcgNC42LTQ0LjkgNC4ybDAtLjRjMi44LTEuNSAxNC43LTIuNiAyOS43LTE2LjYgNy45LTcuMyAxNS4zLTE1LjEgMjIuOC0yMi45IDE5LjUtMjAuMiA0MS40LTQyLjIgODEuOS0zOSAyMy4xIDEuOCAyOS4zIDguMiAzNi4xIDEyLjcgLjMgLjIgLjQgLjUgLjcgLjktLjUgMC0uNyAuMS0uOSAwLTctMi43LTE0LjMtMy4zLTIxLjgtMy4zem0tMTIuMy0yNC4xYy0uMSAuMi0uMSAuNC0uMiAuNi0yOC45LTQuNC00OC03LjktNjguNSA0LTE3IDkuOS0zMS40IDIwLjUtNjIgMjQuNC0yNy4xIDMuNC00NS4xIDIuNC02Ni4xLTgtLjMtLjItLjYtLjQtMS0uNiAwLS4yIC4xLS4zIC4xLS41IDI0LjkgMy44IDM2LjQgNS4xIDU1LjUtNS44IDIyLjMtMTIuOSA0MC4xLTI2LjYgNzEuMy0zMSAyOS42LTQuMSA1MS4zIDIuNSA3MC45IDE2Ljl6TTI2OC42IDk3LjNjLS42LS42LTEuMS0xLjItMi4xLTIuMyA3LjYgMCAyOS43LTEuMiA1My40IDguNCAxOS43IDggMzIuMiAyMSA1MC4yIDMyLjkgMTEuMSA3LjMgMjMuNCA5LjMgMzYuNCA4LjEgNC4zLS40IDguNS0xLjIgMTIuOC0xLjcgLjQtLjEgLjkgMCAxLjUgLjMtLjYgLjQtMS4yIC45LTEuOCAxLjItOC4xIDQtMTYuNyA2LjMtMjUuNiA3LjEtMjYuMSAyLjYtNTAuMy0zLjctNzMuNC0xNS40LTE5LjMtOS45LTM2LjQtMjIuOS01MS40LTM4LjZ6TTY0MCAzMzUuN2MtMy41IDMuMS0yMi43IDExLjYtNDIuNyA1LjMtMTIuMy0zLjktMTkuNS0xNC45LTMxLjYtMjQuMS0xMC03LjYtMjAuOS03LjktMjguMS04LjQgLjYtLjggLjktMS4yIDEuMi0xLjQgMTQuOC05LjIgMzAuNS0xMi4yIDQ3LjMtNi41IDEyLjUgNC4yIDE5LjIgMTMuNSAzMC40IDI0LjIgMTAuOCAxMC40IDIxIDkuOSAyMy4xIDEwLjUgLjEtLjEgLjIgMCAuNCAuNHptLTIxMi41IDEzN2MyLjIgMS4yIDEuNiAxLjUgMS41IDItMTguNS0xLjQtMzMuOS03LjYtNDYuOC0yMi4yLTIxLjgtMjQuNy00MS43LTI3LjktNDguNi0yOS43IC41LS4yIC44LS40IDEuMS0uNCAxMy4xIC4xIDI2LjEgLjcgMzguOSAzLjkgMjUuMyA2LjQgMzUgMjUuNCA0MS42IDM1LjMgMy4yIDQuOCA3LjMgOC4zIDEyLjMgMTEuMXoiXX0sUzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdCIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMyIsIk0yMTYuMyAxNTguNGwtNzkuMyAwYy00MC0xMC41LTEzMC41LTcuOC0xMzAuNSA3NC44IDAgMzAuMSAxNSA1MS4yIDM1IDYxLTI1LjEgMjMtMzcgMzMuOC0zNyA0OS4yIDAgMTEgNC41IDIxLjEgMTcuOSAyNi44LTE0LjMgMTMuNC0yMi40IDIzLjEtMjIuNCA0MS40IDAgMzIuMSAyOCA1MC44IDEwMS42IDUwLjggNzAuOCAwIDExMS44LTI2LjQgMTExLjgtNzMuMiAwLTU4LjctNDUuMi01Ni41LTE1MS42LTYzbDEzLjQtMjEuNmMyNy4zIDcuNiAxMTguNyAxMCAxMTguNy02Ny45IDAtMTguNy03LjctMzEuNy0xNS00MS4xbDM3LjQtMi44IDAtMzQuNXpNMTUyLjkgNDAwLjNjMCAzMi4xLTEwNC45IDMyLjEtMTA0LjkgMi40IDAtOC4xIDUuMy0xNSAxMC42LTIxLjUgNzcuNyA1LjMgOTQuMyAzLjQgOTQuMyAxOS4xek0xMDIuMSAyNjUuN2MtNTIuOCAwLTUwLjUtNzEuMiAxLjItNzEuMiA0OS41IDAgNTAuOCA3MS4yLTEuMiA3MS4yek0yMzUuNCAzNjYuMmwwLTMyLjFjMjYuNy0zLjcgMjcuMi0yIDI3LjItMTFsMC0xMTkuNWMwLTguNS0yLjEtNy40LTI3LjItMTYuM2w0LjUtMzIuOSA4NC4yIDAgMCAxNjguN2MwIDYuNSAuNCA3LjMgNi41IDguMWwyMC43IDIuOCAwIDMyLjEtMTE1LjkgMHptNTIuNS0yNDQuM2MtMjMuMiAwLTM2LjYtMTMuNC0zNi42LTM2LjZzMTMuNC0zNS44IDM2LjYtMzUuOGMyMy42IDAgMzcgMTIuNiAzNyAzNS44cy0xMy40IDM2LjYtMzcgMzYuNnpNNTEyIDM1MC41Yy0xNy41IDguNS00My4xIDE2LjMtNjYuMyAxNi4zLTQ4LjQgMC02Ni43LTE5LjUtNjYuNy02NS41bDAtMTA2LjVjMC01LjQgMS00LjEtMzEuNy00LjFsMC0zNi4yYzM1LjgtNC4xIDUwLTIyIDU0LjUtNjYuM2wzOC42IDBjMCA2NS44LTEuMyA2MS44IDMuMyA2MS44bDU3LjMgMCAwIDQwLjYtNjAuNiAwIDAgOTcuMWMwIDYuOS00LjkgNTEuNCA2MC42IDI2LjhsMTEgMzUuOHoiXX0sQzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wdGluLW1vbnN0ZXIiLGljb246WzU3Niw1MTIsW10sImYyM2MiLCJNNTcyLjggNDIxLjRjNS42LTkuNSA0LjctMTUuMi01LjQtMTEuNi0zLTQuOS03LTkuNS0xMS4xLTEzLjggMi45LTkuNy0uNy0xNC4yLTEwLjgtOS4yLTQuNi0zLjItMTAuMy02LjUtMTUuOS05LjIgMC0xNS4xLTExLjYtMTEuNi0xNy42LTUuNy0xMC40LTEuNS0xOC43LS4zLTI2LjggNS43IC4zLTYuNSAuMy0xMyAuMy0xOS43IDEyLjYgMCA0MC4yLTExIDQ1LjktMzYuMiAxLjQtNi44IDEuNi0xMy44LS4zLTIxLjktMy0xMy41LTE0LjMtMjEuMy0yNS4xLTI1LjctLjgtNS45LTcuNi0xNC4zLTE0LjktMTUuOXMtMTIuNCA0LjktMTQuMSAxMC4zYy04LjUgMC0xOS4yIDIuOC0yMS4xIDguNC01LjQtLjUtMTEuMS0xLjQtMTYuOC0xLjkgMi43LTEuOSA1LjQtMy41IDguNC00LjYgNS40LTkuMiAxNC42LTExLjQgMjUuNy0xMS42bDAtMi44YzE5LjUtLjUgNDMtNS45IDUzLjgtMTguMSAxMi43LTEzLjggMTQuNi0zNy4zIDEyLjQtNTUuMS0yLjQtMTcuMy05LjctMzcuNi0yNC42LTQ4LjEtOC40LTUuOS0yMS42LS44LTIyLjcgOS41LTIuMiAxOS42IDEuMiAzMC0zOC42IDI1LjEtMTAuMy0yMy44LTI0LjYtNDQuNi00Mi43LTYwLTY5LjYtNTkuNy0xNjcuNy01My44LTI0NC4yLTM3LjYgMTkuNyA0LjYgNDEuMSA4LjYgNTkuNyAxNi41LTI2LjIgMi40LTUyLjcgMTEuMy03Ni4yIDIzLjItMzIuOCAxNy00NCAyOS45LTU2LjcgNDIuNCAxNC45LTIuMiAyOC45LTUuMSA0My44LTMuOC05LjcgNS40LTE4LjQgMTIuMi0yNi41IDIwLTI1LjggLjktMjMuOC01LjMtMjYuMi0yNS45LTEuMS0xMC41LTE0LjMtMTUuNC0yMi43LTkuNy0yOC4xIDE5LjktMzMuNSA3OS45LTEyLjIgMTAzLjUgMTAuOCAxMi4yIDM1LjEgMTcuMyA1NC45IDE3LjgtLjMgMS4xLS4zIDEuOS0uMyAyLjcgMTAuOCAuNSAxOS41IDIuNyAyNC42IDExLjYgMyAxLjEgNS43IDIuNyA4LjEgNC42LTUuNCAuNS0xMS4xIDEuNC0xNi41IDEuOS0zLjMtNi42LTEzLjctOC4xLTIxLjEtOC4xLTEuNi01LjctNi41LTEyLjItMTQuMS0xMC4zLTYuOCAxLjktMTQuMSAxMC0xNC45IDE1LjktMjIuNSA5LjUtMzAuMSAyNi44LTI1LjEgNDcuNiA1LjMgMjQuOCAzMyAzNi4yIDQ1LjkgMzYuMmwwIDE5LjdjLTYuNi01LTE0LjMtNy41LTI2LjgtNS43LTUuNS01LjUtMTcuMy0xMC4xLTE3LjMgNS43LTUuOSAyLjctMTEuNCA1LjktMTUuOSA5LjItOS44LTQuOS0xMy42LTEuNy0xMS4xIDkuMi00LjEgNC4zLTcuOCA4LjYtMTEuMSAxMy44LTEwLjItMy43LTExIDIuMi01LjQgMTEuNi0xLjEgMy41LTEuNiA3LTEuOSAxMC44LS41IDMxLjYgNDQuNiA2NCA3My41IDY1LjEgMTcuMyAuNSAzNC42LTguNCA0My0yMy41IDExMy4yIDQuOSAyMjYuNyA0LjEgMzQwLjIgMCA4LjEgMTUuMSAyNS40IDI0LjMgNDIuNyAyMy41IDI5LjItMS4xIDc0LjMtMzMuNSA3My41LTY1LjEgLjItMy43LS43LTcuMi0xLjctMTAuN3pNNDk5IDE2Ny40YzEuMS0zIDIuNC04LjQgMi40LTE0LjYgMC01LjkgNi44LTguMSAxNC4xLS44IDExLjEgMTEuNiAxNC45IDQwLjUgMTMuOCA1MS4xLTQuMS0xMy42LTEzLTI5LTMwLjMtMzUuN3ptLTQuNiA2LjdjMTkuNSA2LjIgMjguNiAyNy42IDI5LjcgNDguOS0xLjEgMi43LTMgNS40LTQuOSA3LjYtNS43IDUuOS0xNS40IDEwLTI2LjIgMTIuMiA0LjMtMjEuMyAuMy00Ny4zLTEyLjctNjMgNC45LS44IDEwLjktMi40IDE0LjEtNS43em0tMjQuMSA2LjhjMTMuOCAxMS45IDIwIDM5LjIgMTQuMSA2My41LTQuMSAuNS04LjEgLjgtMTEuNiAuOC0xLjktMjEuOS02LjgtNDQtMTQuMy02NC42IDMuNyAuMyA4LjEgLjMgMTEuOCAuM3pNNDcuNyAyMDNjLTEuMS0xMC41IDIuNC0zOS41IDEzLjgtNTEuMSA3LTcuMyAxNC4xLTUuMSAxNC4xIC44IDAgNi4yIDEuNCAxMS42IDIuNCAxNC42LTE3LjMgNi44LTI2LjIgMjIuMi0zMC4zIDM1Ljd6bTkuNyAyNy42Yy0xLjktMi4yLTMuNS00LjktNC45LTcuNiAxLjQtMjEuMyAxMC4zLTQyLjcgMjkuNy00OC45IDMuMiAzLjIgOS4yIDQuOSAxNC4xIDUuNy0xMyAxNS43LTE3IDQxLjYtMTIuNyA2My0xMC44LTIuMi0yMC41LTYtMjYuMi0xMi4yem00Ny45IDE0LjZjLTQuMSAwLTguMS0uMy0xMi43LS44LTQuNi0xOC42LTEuOS0zOC45IDUuNC01M2wwIC4zIDEyLjItNS4xYzQuOS0xLjkgOS43LTMuOCAxNC45LTQuOS0xMC43IDE5LjctMTcuNCA0MS4zLTE5LjggNjMuNXptMTg0LTEwLjVhNzYuMSA3Ni4xIDAgMSAxIDAtMTUyLjIgNzYuMSA3Ni4xIDAgMSAxIDAgMTUyLjJ6bTExNS42IDIyLjFjLS4zIDE3LjgtNyA0OC45LTIzIDU3LTEzLjIgNi42LTYuNS03LjUtMTYuNS01OC4xIDEzLjMgLjMgMjYuNiAuMyAzOS41IDEuMXptLTU0LTEuNmMuOCA0LjkgMy44IDQwLjMtMS42IDQxLjktMTEuNiAzLjUtNDAgNC4zLTUxLjEtMS4xLTQuMS0zLTQuNi0zNS45LTQuMy00MS4xbDAgLjNjMTguOS0uMyAzOC4xLS4zIDU3IDB6TTI3OC41IDMwOWMtMTMgMy41LTQxLjYgNC4xLTU0LjYtMS42LTYuNS0yLjctMy44LTQyLjQtMS45LTUxLjYgMTkuMi0uNSAzOC40LS41IDU3LjgtLjhsMCAuM2MxLjEgOC4zIDMuMyA1MS4yLTEuMyA1My43ek0xNzIgMjU3LjljMTIuMi0uOCAyNC42LTEuNCAzNi44LTEuNi0yLjQgMTUuNC0zIDQzLjUtNC45IDUyLjItMS4xIDYuOC00LjMgNi44LTkuNyA0LjMtMjEuOS05LjgtMjcuNi0zNS4yLTIyLjItNTQuOXptLTM1LjQgMzEuM2M3LjgtMS4xIDE1LjctMS45IDIzLjUtMi43IDEuNiA2LjIgMy44IDExLjkgNyAxNy42IDEwIDE3IDQ0IDM1LjcgNDUuMSA3IDYuMiAxNC45IDQwLjggMTIuMiA1NC45IDEwLjggMTUuNy0xLjQgMjMuOC0xLjQgMjYuOC0xNC4zIDEyLjQgNC4zIDMwLjggNC4xIDQ0IDMgMTEuMy0uOCAyMC44LS41IDI0LjYtOC45IDEuMSA1LjEgMS45IDExLjYgNC42IDE2LjggMTAuOCAyMS4zIDM3LjMgMS40IDQ2LjgtMzEuNiA4LjYgLjggMTcuNiAxLjkgMjYuNSAyLjctLjQgMS4zLTMuOCA3LjMgNy4zIDExLjYtNDcuNiA0Ny05NS43IDg3LjgtMTYzLjIgMTA3LTYzLjItMjAuOC0xMTIuMS01OS41LTE1NS45LTEwNi41IDkuNi0zLjQgMTAuNC04LjggOC0xMi41ek0xMTUgNDYxLjdjLTMuOCAxNy44LTIxLjkgMjkuNy0zOS43IDI4LjktMTkuMi0uOC00Ni41LTE3LTU5LjItMzYuNS0yLjctMzEuMSA0My44LTYxLjMgNjYuMi01NC42IDE0LjkgNC4zIDI3LjggMzAuOCAzMy41IDU0IDAgMy0uMyA1LjctLjggOC4yem0tOC43LTY2Yy0uNS0xMy41LS41LTI3LS4zLTQwLjVsLjMgMGMyLjctMS42IDUuNy0zLjggNy44LTYuNSA2LjUtMS42IDEzLTUuMSAxNS4xLTkuMiAzLjMtNy4xLTctNy41LTUuNC0xMi40IDIuNy0xLjEgNS43LTIuMiA3LjgtMy41IDI5LjIgMjkuMiA1OC42IDU2LjUgOTcuMyA3Ny0zNi44IDExLjMtNzIuNCAyNy42LTEwNS45IDQ3LTEuMi0xOC42LTcuNy0zNS45LTE2LjctNTEuOXptMzM3LjYgNjQuNmMtMTAzIDMuNS0yMDYuMiA0LjEtMzA5LjQgMCAwIC4zIDAgLjMtLjMgLjNsMC0uMyAuMyAwYzM1LjEtMjEuNiA3Mi4yLTM5LjIgMTEyLjQtNTAuOCAxMS42IDUuMSAyMyA5LjUgMzQuOSAxMy4yIDIuMiAuOCAyLjIgLjggNC4zIDAgMTQuMy00LjEgMjguNC05LjIgNDIuMi0xNS40IDQxLjUgMTEuNyA3OC44IDMxLjcgMTE1LjYgNTN6bTEwLjUtMTIuNGMtMzUuOS0xOS41LTczLTM1LjktMTExLjktNDcuNiAzOC4xLTIwIDcxLjktNDcuMyAxMDMuNS03Ni43IDIuMiAxLjQgNC42IDIuNCA3LjYgMy4yIDAgLjggLjMgMS45IC41IDIuNC00LjYgMi43LTcuOCA2LjItNS45IDEwLjMgMi4yIDMuOCA4LjYgNy42IDE1LjEgOC45IDIuNCAyLjcgNS4xIDUuMSA4LjEgNi44IDAgMTMuOC0uMyAyNy42LS44IDQxLjNsLjMtLjNjLTkuMyAxNS45LTE1LjUgMzctMTYuNSA1MS43em0xMDUuOSA2LjJjLTEyLjcgMTkuNS00MCAzNS43LTU5LjIgMzYuNS0xOS4zIC45LTQwLjUtMTMuMi00MC41LTM3IDUuNy0yMy4yIDE4LjktNDkuNyAzMy41LTU0IDIyLjctNi45IDY5LjIgMjMuNCA2Ni4yIDU0LjV6TTM3My4xIDc1LjJjLTMuOC03Mi4xLTEwMC44LTc5LjctMTI2LTIzLjUgNDQuNi0yNC4zIDkwLjMtMTUuNyAxMjYgMjMuNXpNNzUgNDA3LjFjLTE1LjcgMS42LTQ5LjUgMjUuNC00OS41IDQzLjIgMCAxMS42IDE1LjcgMTkuNSAzMi4yIDE0LjkgMTIuMi0zLjIgMzEuMS0xNy42IDM1LjktMjcuMyA2LTExLjYtMy43LTMyLjctMTguNi0zMC44ek0yOTAuOSAyMzAuOWMyOC42IDAgNTEuOS0yMS42IDUxLjktNDguNCAwLTM2LjEtNDAuNS01OC4xLTcyLjItNDQuMyA5LjUgMyAxNi41IDExLjYgMTYuNSAyMS42IDAgMjMuMy0zMy4zIDMyLTQ2LjUgMTEuMy03LjMgMzQuMSAxOS40IDU5LjggNTAuMyA1OS44ek02OC4yIDQ3NC4xYy41IDYuNSAxMi4yIDEyLjcgMjEuNiA5LjUgNi44LTIuNyAxNC42LTEwLjUgMTcuMy0xNi4yIDMtNy0xLjEtMjAtOS43LTE4LjQtOC45IDEuNi0yOS43IDE2LjctMjkuMiAyNS4xem00MzMuMi02N2MtMTQuOS0xLjktMjQuNiAxOS4yLTE4LjkgMzAuOCA0LjkgOS43IDI0LjEgMjQuMSAzNi4yIDI3LjMgMTYuNSA0LjYgMzIuMi0zLjIgMzIuMi0xNC45IDAtMTcuOC0zMy44LTQxLjYtNDkuNS00My4yek00NzkgNDQ5Yy04LjQtMS42LTEyLjQgMTEuMy05LjUgMTguNCAyLjQgNS43IDEwLjMgMTMuNSAxNy4zIDE2LjIgOS4yIDMuMiAyMS4xLTMgMjEuMy05LjUgLjktOC40LTIwLjItMjMuNS0yOS4xLTI1LjF6Il19LF85ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqZW5raW5zIixpY29uOls0NDgsNTEyLFtdLCJmM2I2IiwiTTQ1NS40IDQyNWMtMS40LTExLjItMTktMjMuMS0yOC4yLTMxLjktNS4xLTUtMjktMjMuMS0zMC40LTI5LjktMS40LTYuNiA5LjctMjEuNSAxMy4zLTI4LjkgNS4xLTEwLjcgOC44LTIzLjcgMTEuMy0zMi42IDE4LjgtNjYuMSAyMC43LTE1Ni45LTYuMi0yMTEuMi0xMC4yLTIwLjYtMzguNi00OS01Ni40LTYyLjUtNDItMzEuNy0xMTkuNi0zNS4zLTE3MC4xLTE2LjYtMTQuMSA1LjItMjcuOCA5LjgtNDAuMSAxNy4xLTMzLjEgMTkuNC02OC4zIDMyLjUtNzguMSA3MS42LTI0LjIgMTAuOC0zMS41IDQxLjgtMzAuMyA3Ny44IC4yIDcgNC4xIDE1LjggMi43IDIyLjQtLjcgMy4zLTUuMiA3LjYtNi4xIDkuOC0xMS42IDI3LjctMi4zIDY0IDExLjEgODMuNyA4LjEgMTEuOSAyMS41IDIyLjQgMzkuMiAyNS4yIC43IDEwLjYgMy4zIDE5LjcgOC4yIDMwLjQgMy4xIDYuOCAxNC43IDE5IDEwLjQgMjcuNy0yLjIgNC40LTIxIDEzLjgtMjcuMyAxNy42LTIxLjEgMTIuNS0zNi40IDIwLjMtNTUuOSAzNC4zLTEyLjYgOS0zMi4zIDEwLjItMjkuMiAzMS4xIDIuMSAxNC4xIDEwLjEgMzEuNiAxNC43IDQ1LjggLjcgMiAxLjQgNC4xIDIuMSA2bDQyMiAwYzQuOS0xNS4zIDkuNy0zMC45IDE0LjYtNDcuMiAzLjQtMTEuNCAxMC4yLTI3LjggOC43LTM5Ljd6TTE3NC4yIDMzLjdjMS44LS41IDMuNCAuNyA0LjkgMi40LS4yIDUuMi01LjQgNS4xLTguOSA2LjgtNS40IDYuNy0xMy40IDkuOC0yMCAxNy4yLTYuOCA3LjUtMTQuNCAyNy43LTIzLjQgMzAtNC41IDEuMS05LjctLjgtMTMuNi0uNS0xMC40IC43LTE3LjcgNi0yOC4zIDcuNSAxMy42LTI5LjkgNTYuMS01NCA4OS4zLTYzLjR6TTY5LjQgMTI3LjNjMTMuNS0xNC45IDMyLjEtMjQuMSA1NC44LTI1LjkgMTEuNyAyOS43LTguNCA2NS0uOSA5Ny42IDIuMyA5LjkgMTAuMiAyNS40LTIuNCAyNS43IC4zLTI4LjMtMzQuOC00Ni4zLTYxLjMtMjkuNi0xLjgtMjEuNS00LjktNTEuNyA5LjgtNjcuOHptMzYuNyAyMDAuMmMtMS00LjEtMi43LTEyLjktMi4zLTE1LjEgMS42LTguNyAxNy4xLTEyLjUgMTEtMjQuNy0xMS4zLS4xLTEzLjggMTAuMi0yNC4xIDExLjMtMjYuNyAyLjYtNDUuNi0zNS40LTQ0LjQtNTguNCAxLTE5LjUgMTcuNi0zOC4yIDQwLjEtMzUuOCAxNiAxLjggMjEuNCAxOS4yIDI0LjUgMzQuNyA5LjIgLjUgMjIuNS0uNCAyNi45LTcuNi0uNi0xNy41LTguOC0zMS42LTguMi00Ny43IDEtMzAuMyAxNy41LTU3LjYgNC44LTg3LjQgMTMuNi0zMC45IDUzLjUtNTUuMyA4My4xLTcwIDM2LjYtMTguMyA5NC45LTMuNyAxMjkuMyAxNS44IDE5LjcgMTEuMSAzNC40IDMyLjcgNDguMyA1MC43LTE5LjUtNS44LTM2LjEgNC4yLTMzLjEgMjAuMyAxNi4zLTE0LjkgNDQuMi0uMiA1Mi41IDE2LjQgNy45IDE1LjggNy44IDM5LjMgOSA2Mi44IDIuOSA1Ny0xMC40IDExNS45LTM5LjEgMTU3LjEtNy43IDExLTE0LjEgMjMtMjQuOSAzMC42LTI2IDE4LjItNjUuNCAzNC43LTk5LjIgMjMuNC00NC43LTE1LTY1LTQ0LjgtODkuNS03OC44IC43IDE4LjcgMTMuOCAzNC4xIDI2LjggNDguNCAxMS4zIDEyLjUgMjUgMjYuNiAzOS43IDMyLjQtMTIuMy0yLjktMzEuMS0zLjgtMzYuMiA3LjItMjguNi0xLjktNTUuMS00LjgtNjguNy0yNC4yLTEwLjYtMTUuNC0yMS40LTQxLjQtMjYuMy02MS40em0yMjIgMTI0LjFjNC4xLTMgMTEuMS0yLjkgMTcuNC0zLjYtNS40LTIuNy0xMy0zLjctMTkuMy0yLjItLjEtNC4yLTItNi44LTMuMi0xMC4yIDEwLjYtMy44IDM1LjUtMjguNSA0OS42LTIwLjMgNi43IDMuOSA5LjUgMjYuMiAxMC4xIDM3IC40IDktLjggMTgtNC41IDIyLjgtMTguOC0uNi0zNS44LTIuOC01MC43LTcgLjktNi4xLTEtMTIuMSAuNi0xNi41em0tMTcuMi0yMGMtMTYuOCAuOC0yNi0xLjItMzguMy0xMC44IC4yLS44IDEuNC0uNSAxLjUtMS40IDE4IDggNDAuOC0zLjMgNTktNC45LTcuOSA1LjEtMTQuNiAxMS42LTIyLjIgMTcuMXptLTEyLjEgMzMuMmMtMS42LTkuNC0zLjUtMTItMi44LTIwLjIgMjUtMTYuNiAyOS43IDI4LjYgMi44IDIwLjJ6TTE5NC4zIDQzOC42Yy0xMS42LS43LTQ4LjEtMTQtMzguNS0yMy43IDkuNCA2LjUgMjcuNSA0LjkgNDEuMyA3LjMgLjggNC40LTIuOCAxMC4yLTIuOCAxNi40ek0yNiA0OTcuMWMtNC4zLTEyLjctOS4yLTI1LjEtMTQuOC0zNi45IDMwLjgtMjMuOCA2NS4zLTQ4LjkgMTAyLjItNjMuNSAyLjgtMS4xIDIzLjIgMjUuNCAyNi4yIDI3LjYgMTYuNSAxMS43IDM3IDIxIDU2LjIgMzAuMiAxLjIgOC44IDMuOSAyMC4yIDguNyAzNS41IC43IDIuMyAxLjQgNC43IDIuMiA3LjJsLTE4MC43IDAgMC0uMXptMjQwLjYgNS43bC0uOCAwYy4zLS4yIC41LS40IC44LS41bDAgLjV6bTcuNS01LjdjMi4xLTEuNCA0LjMtMi44IDYuNC00LjMgMS4xIDEuNCAyLjIgMi44IDMuMiA0LjNsLTkuNiAwem0xNS4xLTI0LjdjLTEwLjggNy4zLTIwLjYgMTguMy0zMy4zIDI1LjItNiAzLjMtMjcgMTEuNy0zMy40IDEwLjItMy42LS44LTMuOS01LjMtNS40LTkuNS0zLjEtOS0xMC4xLTIzLjQtMTAuOC0zNy0uOC0xNy4yLTIuNS00NiAxNi00Mi40IDE0LjkgMi45IDMyLjMgOS43IDQzLjkgMTYuMSA3LjEgMy45IDExLjEgOC42IDIxLjkgOS41LS4xIDEuNC0uMSAyLjgtLjIgNC4zLTUuOSAzLjktMTUuMyAzLjgtMjEuOCA3LjEgOS41IC40IDE3IDIuNyAyMy41IDUuOS0uMSAzLjQtLjMgNy0uNCAxMC42em01My40IDI0LjdsLTE0IDBjLS4xLTMuMi0yLjgtNS44LTYuMS01LjhzLTUuOSAyLjYtNi4xIDUuOGwtMTcuNCAwYy0yLjgtNC40LTUuNy04LjYtOC45LTEyLjUgMi4xLTIuMiA0LTQuNyA2LTYuOSA5IDMuNyAxNC44LTQuOSAyMS43LTQuMiA3LjkgLjggMTQuMiAxMS43IDI1LjQgMTFsLS42IDEyLjZ6bTguNyAwYy4yLTQgLjQtNy44IC42LTExLjUgMTUuNi03LjMgMjkgMS4zIDM1LjcgMTEuNWwtMzYuMyAwem04My40LTM3Yy0yLjMgMTEuMi01LjggMjQtOS45IDM3LjEtLjItLjEtLjQtLjEtLjYtLjFsLTI3LjkgMGMuNi0xLjEgMS4yLTIuMiAxLjktMy4zLTIuNi02LjEtOS04LjctMTAuOS0xNS41IDEyLjEtMjIuNyA2LjUtOTMuNC0yNC4yLTc4LjUgNC4zLTYuMyAxNS42LTExLjUgMjAuOC0xOS4zIDEzIDEwLjQgMjAuOCAyMC4zIDMzLjIgMzEuNCA2LjggNiAyMCAxMy4zIDIxLjQgMjMuMSAuOCA1LjUtMi42IDE4LjktMy44IDI1LjF6TTE5MC41IDEzMC41YzUuNC0xNC45IDI3LjItMzQuNyA0NS0zMiA3LjcgMS4yIDE4IDguMiAxMi4yIDE3LjctMzAuMi03LTQ1LjIgMTIuNi01NC40IDMzLjEtOC4xLTItNC45LTEzLjEtMi44LTE4Ljh6bTE4NC4xIDYzLjFjOC4yLTMuNiAyMi40LS43IDI5LjYtNS4zLTQuMi0xMS41LTEwLjMtMjEuNC05LjMtMzcuNyAuNSAwIDEgMCAxLjQgLjEgNi44IDE0LjIgMTIuNyAyOS4yIDIxLjQgNDEuNy01LjcgMTMuNS00My42IDI1LjQtNDMuMSAxLjJ6bS05Ni44IDIuN2MtNi44LTEwLjktMTktMzIuNS0xNC41LTQ1LjMgNi41IDExLjkgOC42IDI0LjQgMTcuOCAzMy4zIDQuMSA0IDEyLjIgOSA4LjIgMjAuMi0uOSAyLjctNy44IDguNi0xMS43IDkuNy0xNC40IDQuMy00Ny45IC45LTM2LjYtMTcuMSAxMS45IC43IDI3LjkgNy44IDM2LjgtLjh6bTI3LjMgNzBjMy44IDYuNiAxLjQgMTguNyAxMi4xIDIwLjYgMjAuMiAzLjQgNDMuNi0xMi4zIDU4LjEtMTcuOCA5LTE1LjItLjgtMjAuNy04LjktMzAuNS0xNi42LTIwLTM4LjgtNDQuOC0zOC03NC43IDYuNy00LjkgNy4zIDcuNCA4LjIgOS43IDguNyAyMC4zIDMwLjQgNDYuMiA0Ni4zIDYzLjUgMy45IDQuMyAxMC4zIDguNCAxMSAxMS4yIDIuMSA4LjItNS40IDE4LTQuNSAyMy41LTIxLjcgMTMuOS00NS44IDI5LjEtODEuNCAyNS42LTcuNC02LjctMTAuMy0yMS40LTIuOS0zMS4xem0tMjAxLjMtOS4yYy02LjgtMy45LTguNC0yMS0xNi40LTIxLjQtMTEuNC0uNy05LjMgMjIuMi05LjMgMzUuNS03LjgtNy4xLTkuMi0yOS4xLTMuNS00MC4zLTYuNi0zLjItOS41IDMuNi0xMy4xIDUuOSA0LjctMzQuMSA0OS44LTE1LjggNDIuMyAyMC4zem0yOTkuNiAyOC44Yy0xMC4xIDE5LjItMjQuNCA0MC40LTU0IDQxLS42LTYuMi0xLjEtMTUuNiAwLTE5LjQgMjIuNy0yLjIgMzYuNi0xMy43IDU0LTIxLjZ6TTI2MS41IDI5OC4zYzE4LjkgOS45IDUzLjYgMTEgNzkuMyAxMC4yIDEuNCA1LjYgMS4zIDEyLjYgMS40IDE5LjQtMzMgMS44LTcyLTYuNC04MC43LTI5LjZ6TTM1My43IDM0NWMtMS43IDQuMy01LjMgOS4zLTkuOCAxMS4xLTEyLjEgNC45LTQ1LjYgOC43LTYyLjQtLjMtMTAuNy01LjctMTcuNS0xOC41LTIzLjQtMjYtMi44LTMuNi0xNi45LTEyLjktLjItMTIuOSAxMy4xIDMyLjcgNTggMjkgOTUuOCAyOC4xeiJdfSxUOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2xpZGVzaGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFlNyIsIk0xODcuOSAxNTMuN2MtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43czYxLjctMjYgNjEuNy01Ny43YzAtMzItMjcuNy01Ny43LTYxLjctNTcuN3ptMTQzLjQgMGMtMzQgMC02MS43IDI1LjctNjEuNyA1Ny43IDAgMzEuNyAyNy43IDU3LjcgNjEuNyA1Ny43IDM0LjMgMCA2MS43LTI2IDYxLjctNTcuNyAuMS0zMi0yNy40LTU3LjctNjEuNy01Ny43em0xNTYuNiA5MGwtNiA0LjMgMC0xOTguM2MwLTI3LjQtMjAuNi00OS43LTQ2LTQ5LjdMNzYuOCAwYy0yNS40IDAtNDYgMjIuMy00NiA0OS43bDAgMTk4LjNjLTItMS40LTQuMy0yLjktNi4zLTQuMy0xNS4xLTEwLjYtMjUuMSA0LTE2IDE3LjcgMTguMyAyMi42IDUzLjEgNTAuMyAxMDYuMyA3Mi01Ni4zIDE5MS43IDEzNy40IDIyMi4zIDEzNC4zIDEyNC4xIDAtLjcgLjMtNTYuNiAuMy05Ni42IDUuMSAxLjEgOS40IDIuMyAxMy43IDMuMSAwIDM5LjcgLjMgOTIuOCAuMyA5My41LTMuMSA5OC4zIDE5MC42IDY3LjcgMTM0LjMtMTI0IDUzLjEtMjEuNyA4OC00OS40IDEwNi4zLTcyIDkuMS0xMy44LS45LTI4LjMtMTYuMS0xNy44em0tMzAuNSAxOS4yYy02OC45IDM3LjQtMTI4LjMgMzEuMS0xNjAuNiAyOS43LTIzLjctLjktMzIuNiA5LjEtMzMuNyAyNC45LTEwLjMtNy43LTE4LjYtMTUuNS0yMC4zLTE3LjEtNS4xLTUuNC0xMy43LTgtMjcuMS03LjctMzEuNyAxLjEtODkuNyA3LjQtMTU3LjQtMjhsMC0xOTIuNGMwLTM0LjkgOC45LTQ1LjcgNDAuNi00NS43bDMxNy43IDBjMzAuMyAwIDQwLjkgMTIuOSA0MC45IDQ1LjdsMCAxOTAuNi0uMSAweiJdfSxMOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWJlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwMiIsIk00MTQuMSAzMkwzMy45IDMyQzE1LjIgMzIgMCA0Ny4yIDAgNjUuOUwwIDQ0NmMwIDE4LjggMTUuMiAzNCAzMy45IDM0TDQxNCA0ODBjMTguNyAwIDMzLjktMTUuMiAzMy45LTMzLjlsMC0zODAuMkM0NDggNDcuMiA0MzIuOCAzMiA0MTQuMSAzMnpNMjM3LjYgMzkxLjFDMTYzIDM5OC42IDk2LjQgMzQ0LjIgODguOSAyNjkuNmw5NC40IDAgMCAyMC40YzAgMy43IDMgNi44IDYuOCA2LjhsNjcuOSAwYzMuNyAwIDYuOC0zIDYuOC02LjhsMC02Ny45YzAtMy43LTMtNi44LTYuOC02LjhsLTY3LjkgMGMtMy43IDAtNi44IDMtNi44IDYuOGwwIDIwLjQtOTQuNCAwYzctNjkuNCA2NS40LTEyMi4yIDEzNS4xLTEyMi4yczEyOC4xIDUyLjggMTM1LjEgMTIyLjJjNy41IDc0LjUtNDYuOSAxNDEuMS0xMjEuNSAxNDguNnoiXX0sJDllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpZ2l0YWwtb2NlYW4iLGljb246WzUxMiw1MTIsW10sImYzOTEiLCJNODcgNDgxLjhsNzMuNyAwIDAtNzMuNi03My43IDAgMCA3My42ek0yNS40IDM0Ni42bDAgNjEuNiA2MS42IDAgMC02MS42LTYxLjYgMHpNNDkxLjYgMTc2LjlDNDY4LjYgMTAyLjcgNDA5LjIgNDMuNiAzMzUgMjAuMyAxNjQuOS0zMi44IDggOTMuNyA4IDI1NS45bDk1LjggMGMwLTEwMS44IDEwMS0xODAuNSAyMDguMS0xNDEuNyAzOS43IDE0LjMgNzEuNSA0Ni4xIDg1LjggODUuNyAzOS4xIDEwNy0zOS43IDIwNy44LTE0MS40IDIwOGwwIC4zLS4zIDAgMCA5NS44YzE2Mi42IDAgMjg4LjgtMTU2LjggMjM1LjYtMzI3LjF6bS0yMzUuMyAyMzFsMC05NS4zLTk1LjYgMCAwIDk1LjYgOTUuMyAwIDAtLjMgLjMgMHoiXX0sQTllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNvdW5kY2xvdWQiLGljb246WzY0MCw1MTIsW10sImYxYmUiLCJNNjQwLjIgMjk4LjZjLTEuMyAyMy4xLTExLjUgNDQuOC0yOC40IDYwLjVzLTM5LjIgMjQuNC02Mi4zIDI0LjFsLTIxOCAwYy00LjggMC05LjQtMi0xMi44LTUuNHMtNS4zLTgtNS4zLTEyLjhsMC0yMzQuOGMtLjItNCAuOS04IDMuMS0xMS40czUuMy02LjEgOS03LjdjMCAwIDIwLjEtMTMuOSA2Mi4zLTEzLjkgMjUuOCAwIDUxLjEgNi45IDczLjMgMjAuMSAxNy4zIDEwLjIgMzIuMyAyMy44IDQ0LjEgNDAuMXMyMCAzNC44IDI0LjIgNTQuNGM3LjUtMi4xIDE1LjMtMy4yIDIzLjEtMy4yIDExLjctLjEgMjMuMyAyLjIgMzQuMiA2LjdzMjAuNSAxMS4zIDI4LjcgMTkuNyAxNC42IDE4LjMgMTguOSAyOS4zIDYuMyAyMi42IDUuOSAzNC4zem0tMzU0LTE1My41Yy4xLTEgMC0yLS4zLTIuOXMtLjgtMS44LTEuNS0yLjYtMS41LTEuMy0yLjQtMS43Yy0xLjgtLjgtNC0uOC01LjggMC0uOSAuNC0xLjcgMS0yLjQgMS43cy0xLjIgMS42LTEuNSAyLjYtLjQgMS45LS4zIDIuOWMtNiA3OC45LTEwLjYgMTUyLjkgMCAyMzEuNiAuMiAxLjcgMSAzLjMgMi4zIDQuNSAyLjYgMi40IDYuOCAyLjQgOS40IDAgMS4zLTEuMiAyLjEtMi44IDIuMy00LjUgMTEuMy03OS40IDYuNi0xNTIgMC0yMzEuNmwuMiAwem0tNDQgMjcuM2MtLjItMS44LTEuMS0zLjUtMi40LTQuN3MtMy4xLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4yIDIuOS0yLjQgNC43Yy03LjkgNjcuOS03LjkgMTM2LjUgMCAyMDQuNCAuMyAxLjggMS4yIDMuNCAyLjUgNC41czMuMSAxLjggNC44IDEuOCAzLjUtLjYgNC44LTEuOCAyLjItMi44IDIuNS00LjVjOC44LTY3LjggOC44LTEzNi41IC4xLTIwNC40bC4xIDB6bS00NC4zLTYuOWMtLjItMS44LTEtMy40LTIuMy00LjZzLTMtMS44LTQuOC0xLjgtMy41IC43LTQuOCAxLjgtMi4xIDIuOC0yLjMgNC42Yy02LjcgNzItMTAuMiAxMzkuMyAwIDIxMS4xIDAgMS45IC43IDMuNyAyLjEgNXMzLjEgMi4xIDUgMi4xIDMuNy0uNyA1LTIuMSAyLjEtMy4xIDIuMS01YzEwLjUtNzIuOCA3LjMtMTM4LjIgLjEtMjExLjFsLS4xIDB6bS00NCAyMC42YzAtMS45LS44LTMuOC0yLjEtNS4ycy0zLjItMi4xLTUuMi0yLjEtMy44IC44LTUuMiAyLjEtMi4xIDMuMi0yLjEgNS4yYy04LjEgNjMuMy04LjEgMTI3LjUgMCAxOTAuOCAuMiAxLjggMSAzLjQgMi40IDQuNnMzLjEgMS45IDQuOCAxLjkgMy41LS43IDQuOC0xLjkgMi4yLTIuOCAyLjQtNC42YzguOC02My4zIDguOS0xMjcuNSAuMy0xOTAuOGwtLjEgMHptLTQ0LjUgNDcuNmMwLTEuOS0uOC0zLjgtMi4xLTUuMXMtMy4yLTIuMS01LjEtMi4xLTMuOCAuOC01LjEgMi4xLTIuMSAzLjItMi4xIDUuMWMtMTAuNSA0OS4yLTUuNSA5My45IC40IDE0My42IC4zIDEuNiAxLjEgMy4xIDIuMyA0LjJzMi44IDEuNyA0LjUgMS43IDMuMi0uNiA0LjUtMS43IDIuMS0yLjUgMi4zLTQuMmM2LjYtNTAuNCAxMS42LTk0LjEgLjQtMTQzLjZ6bS00NC4xLTcuNWMtLjItMS44LTEuMS0zLjUtMi40LTQuOHMtMy4yLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4yIDIuOS0yLjQgNC44Yy05LjMgNTAuMi02LjIgOTQuNCAuMyAxNDQuNSAuNyA3LjYgMTMuNiA3LjUgMTQuNCAwIDcuMi01MC45IDEwLjUtOTMuOCAuMy0xNDQuNWwtLjIgMHpNMjAuNyAyNTAuOGMtLjItMS44LTEuMS0zLjUtMi40LTQuOHMtMy4yLTEuOS01LTEuOS0zLjYgLjctNSAxLjktMi4zIDIuOS0yLjQgNC44Yy04LjUgMzMuNy01LjkgNjEuNiAuNiA5NS40IC4yIDEuNyAxIDMuMyAyLjMgNC40czIuOSAxLjggNC43IDEuOCAzLjQtLjYgNC43LTEuOCAyLjEtMi43IDIuMy00LjRjNy41LTM0LjUgMTEuMi02MS44IC40LTk1LjRsLS4yIDB6Il19LEQ5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZmlnbWEiLGljb246WzQ0OCw1MTIsW10sImU3ZTQiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMTczLjcgOTZjLTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDIxIDEwLjggMzkuNCAyNy4yIDUwLjEtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjFzMTAuOCAzOS41IDI3LjIgNTAuMWMtMTYuNCAxMC43LTI3LjIgMjkuMS0yNy4yIDUwLjEgMCAzMy4xIDI3LjEgNTkuOCA2MC4xIDU5LjggMzMuMiAwIDYwLjYtMjYuOSA2MC42LTYwLjNsMC01NS43YzEwLjYgOS44IDI0LjggMTUuOCA0MC40IDE1LjhsMS4xIDBjMzMgMCA1OS44LTI2LjggNTkuOC01OS44IDAtMjEtMTAuOC0zOS41LTI3LjItNTAuMSAxNi40LTEwLjcgMjcuMi0yOS4xIDI3LjItNTAuMSAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjhMMTczLjcgOTZ6bTQxLjYgMjE5LjhsMCAzOS45YzAgMjIuNi0xOC42IDQxLTQxLjMgNDEtMjIuNCAwLTQwLjctMTguMi00MC43LTQwLjUgMC0yMi4zIDE4LjEtNDAuNCA0MC4zLTQwLjRsNDEuNyAwem0wLTEwMC4zbDAgODAuOS00MS43IDBjLTIyLjMtLjEtNDAuMy0xOC4yLTQwLjMtNDAuNSAwLTIyLjMgMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDB6bTYwLjggMGMyMi4zIDAgNDAuNSAxOC4xIDQwLjUgNDAuNXMtMTguMSA0MC41LTQwLjUgNDAuNWwtMS4xIDBjLTIyLjMgMC00MC40LTE4LjEtNDAuNC00MC41czE4LjEtNDAuNSA0MC40LTQwLjVsMS4xIDB6bS02MC44LTE5LjNsLTQxLjYgMGMtMjIuMyAwLTQwLjUtMTguMS00MC41LTQwLjRzMTguMS00MC41IDQwLjUtNDAuNWw0MS42IDAgMCA4MC45em02MC44LTgwLjljMjIuMyAwIDQwLjUgMTguMSA0MC41IDQwLjVzLTE4LjEgNDAuNC00MC41IDQwLjRsLTQxLjUgMCAwLTgwLjkgNDEuNSAweiJdfSxFOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zYSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlZiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6TTE0NS43IDIyMWMxMy04My45IDgwLjUtOTUuNyAxMDguOS05NS43IDk5LjggMCAxMjcuNSA4Mi41IDEyNy41IDEzNC4yIDAgNjMuNi00MSAxMzIuOS0xMjguOSAxMzIuOS0zOC45IDAtOTkuMS0yMC0xMDkuNC05N2w2Mi41IDBjMS41IDMwLjEgMTkuNiA0NS4yIDU0LjUgNDUuMiAyMy4zIDAgNTgtMTguMiA1OC04Mi44IDAtODIuNS00OS4xLTgwLjYtNTYuNy04MC42LTMzLjEgMC01MS43IDE0LjYtNTUuOCA0My44bDE4LjIgMC00OS4yIDQ5LjItNDktNDkuMiAxOS40IDB6Il19LFA5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaHJvbWUiLGljb246WzUxMiw1MTIsW10sImYyNjgiLCJNMCAyNTZjMC00Ni42IDEyLjUtOTAuNCAzNC4zLTEyOC45TDE0NC4xIDMxOC4zYzIxLjkgMzkuMiA2My44IDY1LjcgMTExLjkgNjUuNyAxNC4zIDAgMjcuMS0yLjMgNDAuOC02LjZMMjIwLjUgNTA5LjZDOTUuOSA0OTIuMyAwIDM4NS4zIDAgMjU2em0zNjUuMSA2NS42YzEyLjMtMTkuMiAxOC45LTQyLjUgMTguOS02NS42IDAtMzguMi0xNi44LTcyLjUtNDMuMy05NmwxNTIuNyAwYzEyIDI5LjYgMTguNiA2Mi4xIDE4LjYgOTYgMCAxNDEuNC0xMTQuNiAyNTUuMS0yNTYgMjU2TDM2NS4xIDMyMS42ek00NzcuOCAxMjhMMjU2IDEyOGMtNjIuOSAwLTExMy43IDQ0LjEtMTI1LjUgMTAyLjdMNTQuMiA5OC41QzEwMSAzOC41IDE3NCAwIDI1NiAwIDM1MC44IDAgNDMzLjUgNTEuNSA0NzcuOCAxMjh6TTM0NCAyNTZhODggODggMCAxIDEgLTE3NiAwIDg4IDg4IDAgMSAxIDE3NiAweiJdfSxJOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHJhZGUtZmVkZXJhdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjUxMyIsIk0yNTYgOC44YTI0Ny4yIDI0Ny4yIDAgMSAwIDAgNDk0LjQgMjQ3LjIgMjQ3LjIgMCAxIDAgMC00OTQuNHptMCAxMS42YTIzNS42IDIzNS42IDAgMSAxIDAgNDcxLjIgMjM1LjYgMjM1LjYgMCAxIDEgMC00NzEuMnpNNDExLjEgMTYzLjFsMC00Ni44LTE5My44IDAgMCA4MS43LTE1NS4xIDAgMzYuNyA0NiAxMTcuNyAwIDAgMTk2LjggNDguOCAwIDAtMTk1LjggODMuMyAwIDAtNDctODMuMyAwIDAtMzQuOCAxNDUuNyAwIDAtLjF6bS03My4zIDQ1LjFsMCAyMy45LTgyLjkgMCAwIDE5Ny40LTI2LjggMCAwLTE5Ny40LTEyMy44IDAtMjAuMS0yMy45IDE0My45IDAgMC04MC42IDE3MS44IDAgMCAyNC40LTE0NSAwIDAgNTYuMiA4Mi45IDB6bS0xNjEuMy02OWwtMTIuNC0yMC43IDIuMSAyMy44LTIzLjUgNS40IDIzLjMgNS40LTIuMSAyNCAxMi4zLTIwLjUgMjIuMiA5LjUtMTUuNy0xOC4xIDE1LjgtMTguMS0yMiA5LjN6bS0yOS42LTE5LjdsOS4zLTExLjUtMTIuNyA1LjktOC0xMi40IDEuNyAxMy45LTE0LjMgMy44IDEzLjcgMi43LS44IDE0LjcgNi44LTEyLjIgMTMuOCA1LjMtOS41LTEwLjJ6TTMxMi4zIDI2NC43bC0xMy4xIDUuNi03LjMtMTIuMiAxLjMgMTQuMi0xMy45IDMuMiAxMy45IDMuMi0xLjIgMTQuMiA3LjMtMTIuMiAxMy4xIDUuNS05LjQtMTAuNyA5LjMtMTAuOHptMTA2LjktNzcuMmwtMjAuOSA5LjEtMTItMTkuNiAyLjIgMjIuNy0yMi4zIDUuNCAyMi4yIDQuOS0xLjggMjIuOSAxMS41LTE5LjYgMjEuMiA4LjgtMTUuMS0xNyAxNS0xNy42ek0yNTYgMjkuOWEyMjYuMSAyMjYuMSAwIDEgMCAwIDQ1Mi4yIDIyNi4xIDIyNi4xIDAgMSAwIDAtNDUyLjJ6TTM1MC42IDE5NmwwIDUxLTgzLjMgMCAwIDE5NS43LTUyLjcgMCAwLTE5Ni44LTExNi43IDAtNDAtNDkuOSAxNTcuNCAwIDAtODEuNiAxOTcuOCAwIDAgNTAuNy0xNDUuNyAwIDAgMzAuOSA4My4yIDB6TTI1NiA0My4yYzYwLjMgMCAxMTQuOCAyNSAxNTMuNiA2NS4ybC0xOTkuMSAwIDAgODEuNi0xNTcuNCAwQzgxLjEgMTA0LjggMTYxLjQgNDMuMiAyNTYgNDMuMnptMCA0MjcuMWMtMTE3LjkgMC0yMTMuNi05NS42LTIxMy42LTIxMy41IDAtMjEuMiAzLjEtNDEuOCA4LjktNjEuMWw0My44IDU2LjMgMTE0LjcgMCAwIDE5Ni44IDY0LjYgMCAwLTE5NS44IDgzLjMgMCAwLTYyLjctODMuMiAwIDAtMTkuMiAxNDUuNiAwIDAtNTAuOGMzMC44IDM3IDQ5LjMgODQuNiA0OS4zIDEzNi41IC4xIDExNy45LTk1LjUgMjEzLjUtMjEzLjQgMjEzLjV6TTE4Ni44IDI3NWwtMTEtMjEuNCAxLjcgMjQuNS0yMy43IDMuOSAyMy44IDUuOS0zLjcgMjMuOCAxMy0yMC45IDIxLjUgMTAuOC0xNS44LTE4LjggMTYuOS0xNy4xLTIyLjcgOS4zeiJdfSxOOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmFhZGluIixpY29uOls0NDgsNTEyLFtdLCJmNDA4IiwiTTIyNC41IDE0MC43QzIyNiAxMjMuMSAyMjkuNCA4OCAyNzQuMyA4OGw5OC42IDBjMjAuNyAwIDMyLjEtNy44IDMyLjEtMjEuNmwwLTEyLjNjMC0xMi4yIDkuMy0yMi4xIDIxLjUtMjIuMVM0NDggNDEuOSA0NDggNTQuMWwwIDM2LjVjMCA0Mi45LTIxLjUgNjItNjYuOCA2MmwtMTAwLjUgMGMtMzAuMSAwLTMzIDE0LjctMzMgMjcuMSAwIDEuMy0uMSAyLjUtLjIgMy43LS43IDEyLjMtMTAuOSAyMi4yLTIzLjQgMjIuMnMtMjIuNy05LjgtMjMuNC0yMi4yYy0uMS0xLjItLjItMi40LS4yLTMuNyAwLTEyLjMtMy0yNy4xLTMzLTI3LjFsLTEwMC43IDBDMjEuNSAxNTIuNiAwIDEzMy41IDAgOTAuNkwwIDU0LjFDMCA0MS45IDkuNCAzMiAyMS42IDMyczIxLjUgOS45IDIxLjUgMjIuMWwwIDEyLjNDNDMuMSA4MC4yIDU0LjUgODggNzUuMiA4OGw5OC42IDBjNDQuOCAwIDQ4LjMgMzUuMSA0OS44IDUyLjdsLjkgMHpNMjI0IDQ1NmMxMS41IDAgMjEuNC03IDI1LjctMTYuMyAxLjEtMS44IDk3LjEtMTY5LjYgOTguMi0xNzEuNCAxMS45LTE5LjYtMy4yLTQ0LjMtMjcuMi00NC4zLTEzLjkgMC0yMy4zIDYuNC0yOS44IDIwLjNMMjI0IDM2MiAxNTcuMSAyNDQuM2MtNi40LTEzLjktMTUuOS0yMC4zLTI5LjgtMjAuMy0yNCAwLTM5LjEgMjQuNi0yNy4yIDQ0LjMgMS4xIDEuOSA5Ny4xIDE2OS42IDk4LjIgMTcxLjQgNC4zIDkuMyAxNC4yIDE2LjMgMjUuNyAxNi4zeiJdfSxGOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGV2aWFudGFydCIsaWNvbjpbMzIwLDUxMixbXSwiZjFiZCIsIk0zMjAgOTMuMmwtOTguMiAxNzkuMSA3LjQgOS41IDkwLjggMCAwIDEyNy43LTE2MC45IDAtMTMuNSA5LjItNDMuNyA4NGMtLjMgMC04LjYgOC42LTkuMiA5LjJsLTkyLjcgMCAwLTkzLjIgOTMuMi0xNzkuNC03LjQtOS4yLTg1LjggMCAwLTEyNy42IDE1NiAwIDEzLjUtOS4yIDQzLjctODRjLjMgMCA4LjYtOC42IDkuMi05LjJsOTcuNiAwIDAgOTMuMXoiXX0sTDU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkaXVtIixpY29uOls0NDgsNTEyLFs2MjQwNywibWVkaXVtLW0iXSwiZjIzYSIsIk0zNjkuNCAzMmM0My40IDAgNzguNiAzNS4yIDc4LjYgNzguNmwwIDgzLjhjLTEuOS0uMS0zLjgtLjItNS43LS4ybC0uNCAwYy0xMCAwLTIyLjMgMi40LTMxLjEgNi44LTEwIDQuNi0xOC43IDExLjUtMjYgMjAuNi0xMS44IDE0LjYtMTguOSAzNC4zLTIwLjYgNTYuNC0uMSAuNy0uMSAxLjMtLjIgMnMtLjEgMS4yLS4xIDEuOWMtLjEgMS4yLS4xIDIuNC0uMSAzLjYgMCAxLjktLjEgMy44IDAgNS44IDEuMiA1MC4xIDI4LjIgOTAuMiA3Ni4zIDkwLjIgMi43IDAgNS4zLS4xIDcuOS0uNGwwIDIwLjRjMCA0My40LTM1LjIgNzguNi03OC42IDc4LjZMNzguNiA0ODBDMzUuMiA0ODAgMCA0NDQuOCAwIDQwMS40TDAgMTEwLjZDMCA2Ny4yIDM1LjIgMzIgNzguNiAzMmwyOTAuOCAwek04Mi4zIDEzOC45bC4zIC4xYzEzLjIgMyAxOS44IDcuNCAxOS44IDIzLjRsMCAxODcuMmMwIDE2LTYuNyAyMC40LTE5LjkgMjMuNGwtLjMgLjEgMCAyLjggNTIuOCAwIDAtMi44LS4zLS4xYy0xMy4yLTMtMTkuOS03LjQtMTkuOS0yMy40bDAtMTc2LjMgODYuMSAyMDIuNSA0LjkgMCA4OC42LTIwOC4yIDAgMTg2LjZjLTEuMSAxMi42LTcuOCAxNi41LTE5LjcgMTkuMmwtLjMgLjEgMCAyLjcgOTEuOSAwIDAtMi43LS4zLS4xYy0xMS45LTIuNy0xOC43LTYuNi0xOS45LTE5LjJsLS4xLTE5MS44IC4xIDBjMC0xNiA2LjctMjAuNCAxOS45LTIzLjRsLjMtLjEgMC0yLjctNzIuMiAwLTY3IDE1Ny40LTY3LTE1Ny40LTc3LjggMCAwIDIuN3pNNDQ4IDM0MC4zYy0yNS4xLTcuNC00My0zNS4xLTQxLjItNjcuOGwwIDAgNDEuMSAwIDAgNjcuOHptLTYuNC0xMzUuNmMyLjMgMCA0LjQgLjMgNi40IC45bDAgNTcuNC00MC4yIDBjMS41LTMzLjYgMTMuNi01Ny45IDMzLjgtNTguM3oiXX0sTzllPUw1LFI5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuY2FydCIsaWNvbjpbNjQwLDUxMixbXSwiZjIzZCIsIk0zMzEuOCA0NDAuNGE0NS44IDQ1LjggMCAxIDEgOTEuNSAuMyA0NS44IDQ1LjggMCAxIDEgLTkxLjUtLjN6TTE2OS40IDM5NC45YTQ1LjcgNDUuNyAwIDEgMCAuMyA5MS4zIDQ1LjcgNDUuNyAwIDEgMCAtLjMtOTEuM3ptMjkxLjctMjcwYy0zMDIuMiAwLTM3OS4yLTEyLjgtNDYxLjEtOTkuMiAzNC40IDUxLjcgNTMuMyAxNDguOSAzNzMuMSAxNDQuMiAzMzMuMy01IDEzMCA4Ni4xIDcwLjggMTg4LjkgMTg2LjctMTY2LjcgMzE5LjQtMjMzLjkgMTcuMi0yMzMuOXoiXX0sQjllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InktY29tYmluYXRvciIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzYiIsIk00NDggMzJsMCA0NDgtNDQ4IDAgMC00NDggNDQ4IDB6TTIzNiAyODcuNWw3Ny41LTE0NS41LTMyLjcgMC00NS44IDkxYy00LjcgOS4zLTkgMTguMy0xMi44IDI2LjhsLTEyLjItMjYuOC00NS4yLTkxLTM1IDAgNzYuNyAxNDMuOCAwIDk0LjUgMjkuNSAwIDAtOTIuOHoiXX0sSDllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmUiLGljb246WzUxMiw1MTIsW10sImYzYzAiLCJNMzExIDE5Ni44bDAgODEuM2MwIDIuMS0xLjYgMy43LTMuNyAzLjdsLTEzIDBjLTEuMyAwLTIuNC0uNy0zLTEuNUwyNTQgMjMwIDI1NCAyNzguMmMwIDIuMS0xLjYgMy43LTMuNyAzLjdsLTEzIDBjLTIuMSAwLTMuNy0xLjYtMy43LTMuN2wwLTgxLjNjMC0yLjEgMS42LTMuNyAzLjctMy43bDEyLjkgMGMxLjEgMCAyLjQgLjYgMyAxLjZsMzcuMyA1MC4zIDAtNDguMmMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMTMgMGMyLjEtLjEgMy44IDEuNiAzLjggMy41bDAgLjF6bS05My43LTMuN2wtMTMgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMTMgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC04MS4zYzAtMS45LTEuNi0zLjctMy43LTMuN3ptLTMxLjQgNjguMWwtMzUuNiAwIDAtNjQuNGMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTEzIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAxIC4zIDEuOCAxIDIuNSAuNyAuNiAxLjUgMSAyLjUgMWw1Mi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTNjMC0xLjktMS42LTMuNy0zLjUtMy43bC4xIDB6bTE5My43LTY4LjFsLTUyLjMgMGMtMS45IDAtMy43IDEuNi0zLjcgMy43bDAgODEuM2MwIDEuOSAxLjYgMy43IDMuNyAzLjdsNTIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzLjFjMC0yLjEtMS42LTMuNy0zLjctMy43bC0zNS41IDAgMC0xMy42IDM1LjUgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xMy4xYzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMzUuNSAwIDAtMTMuNyAzNS41IDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTNjLS4xLTEuOS0xLjctMy43LTMuNy0zLjdsLjEgMHpNNTEyIDkzLjRsMCAzMjZjLS4xIDUxLjItNDIuMSA5Mi43LTkzLjQgOTIuNmwtMzI2IDBDNDEuNCA1MTEuOS0uMSA0NjkuOCAwIDQxOC42bDAtMzI2Qy4xIDQxLjQgNDIuMi0uMSA5My40IDBsMzI2IDBjNTEuMiAuMSA5Mi43IDQyLjEgOTIuNiA5My40ek00NDEuNiAyMzMuNWMwLTgzLjQtODMuNy0xNTEuMy0xODYuNC0xNTEuM1M2OC44IDE1MC4xIDY4LjggMjMzLjVjMCA3NC43IDY2LjMgMTM3LjQgMTU1LjkgMTQ5LjMgMjEuOCA0LjcgMTkuMyAxMi43IDE0LjQgNDIuMS0uOCA0LjctMy44IDE4LjQgMTYuMSAxMC4xczEwNy4zLTYzLjIgMTQ2LjUtMTA4LjJjMjctMjkuNyAzOS45LTU5LjggMzkuOS05My4xbDAtLjJ6Il19LHE5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbWlsaWEiLGljb246WzQ0OCw1MTIsW10sImYzNmQiLCJNMjQwLjIgMzJjLTYxLjkgMC0xMzEuNSAxNi45LTE4NC4yIDU1LjQtNS4xIDMuMS05LjEgOS4yLTcuMiAxOS40IDEuMSA1LjEgNS4xIDI3LjQgMTAuMiAzOS42IDQuMSAxMC4yIDE0LjIgMTAuMiAyMC4zIDYuMSAzMi41LTIyLjMgOTYuNS00Ny43IDE1Mi4zLTQ3LjcgNTcuOSAwIDU4LjkgMjguNCA1OC45IDczLjFsMCAzOC41QzIwMy4xIDIyNy43IDc4LjMgMjUxIDQ2LjggMjY0LjIgMTEuMyAyODAuNSAxNi40IDM1Ny43IDE2LjQgMzc2UzMxLjYgNDgwIDE0MS4zIDQ4MGM0Ny44IDAgMTEzLjctMjAuNyAxNTMuMy00Mi4xbDAgMjUuNGMwIDMgMi4xIDguMiA2LjEgOS4xIDMuMSAxIDUwLjcgMiA1OS45IDJzNjIuNSAuMyA2Ni41LS43YzQuMS0xIDUuMS02LjEgNS4xLTkuMWwwLTI5Ni42Yy0uMS04MC4zLTU3LjktMTM2LTE5Mi0xMzZ6bTUwLjIgMzQ4Yy0yMS40IDEzLjItNDguNyAyNC40LTc5LjEgMjQuNC01Mi44IDAtNTguOS0zMy41LTU5LTQ0LjcgMC0xMi4yLTMtNDIuNyAxOC4zLTUyLjkgMjQuMy0xMy4yIDc1LjEtMjkuNCAxMTkuOC0zMy41bDAgMTA2Ljd6Il19LFY5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhc3ltbWV0cmlrIixpY29uOls1NzYsNTEyLFtdLCJmMzcyIiwiTTUxNy41IDMwOS4yYzM4LjgtNDAgNTguMS04MCA1OC41LTExNi4xIC44LTY1LjUtNTkuNC0xMTguMi0xNjkuNC0xMzUtMTI4LjctMTkuNy0yODguNSAxNS41LTQwNi42IDgyLjQgNTItMjYuNSAxMTAuNi00OC4yIDE3MC43LTU4LjIgNzQuNS0yMC41IDE1My0yNS40IDIyMS4zLTE0LjggMTUyLjUgMjMuOCAxOTYuOCAxMjcuNSA5OC44IDIzMS43LTEwLjIgMTAuOC0yMiAyMS4xLTM1IDMwLjZMMzA0LjkgMTAzLjQgMTE0LjcgMzg4LjljLTY1LjYtMjkuNC03Ni41LTkwLjItMTkuMS0xNTEuMiAyMC44LTIyLjIgNDguMy00MS45IDc5LjUtNTguMSAyMC0xMi4yIDM5LjctMjIuNiA2Mi0zMC43LTY1LjEgMjAuMy0xMjIuNyA1Mi45LTE2MS42IDkyLjktMjcuNyAyOC42LTQxLjQgNTcuMS00MS43IDgyLjktLjUgMzUuMSAyMy40IDY1LjEgNjguNCA4M2wtMzQuNSA1MS43IDEwMS42IDAgMjItMzQuNGMyMi4yIDEgNDUuMyAwIDY4LjYtMi43bC0yMi44IDM3LjEgMTM1LjUgMC0zMi42LTUzLjFjMTguNi01LjMgMzYuOS0xMS41IDU0LjUtMTguN2w0NS45IDcxLjggMTAxLjYgMC03My40LTExMC40YzE4LjUtMTIuMSAzNS0yNS41IDQ4LjktMzkuOHpNMzI5LjkgMzg5LjdsLTI1LTQwLjYtMzIuNyA1My4zYy0yMy40IDMuNS00Ni43IDUuMS02OS4yIDQuNGwxMDEuOS0xNTkuMyA3OC43IDEyM2MtMTcuMiA3LjQtMzUuMyAxMy45LTUzLjcgMTkuMnoiXX0sajllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBoYWJyaWNhdG9yIixpY29uOls1MTIsNTEyLFtdLCJmM2RiIiwiTTMzMS4xIDI2Mi4xbC0uMS0xM3MyMS43LTE5LjggMjEuMS0yMS4ybC05LjUtMjBjLS42LTEuNC0yOS41LS41LTI5LjUtLjVsLTkuNC05LjNzLjItMjguNS0xLjItMjkuMWwtMjAuMS05LjJjLTEuNC0uNi0yMC43IDIxLTIwLjcgMjFsLTEzLjEtLjJzLTIwLjUtMjEuNC0yMS45LTIwLjhsLTIwIDguM2MtMS40IC41IC4yIDI4LjkgLjIgMjguOWwtOS4xIDkuMXMtMjkuMi0uOS0yOS43IC40TDE2MCAyMjYuM2MtLjYgMS40IDIxIDIxIDIxIDIxbC4xIDEyLjlTMTU5LjQgMjgwIDE2MCAyODEuNGw5LjUgMjBjLjYgMS40IDI5LjUgLjUgMjkuNSAuNWw5LjQgOS4zcy0uMiAzMS44IDEuMiAzMi4zbDIwLjEgOC4zYzEuNCAuNiAyMC43LTIzLjUgMjAuNy0yMy41bDEzLjEgLjJzMjAuNSAyMy44IDIxLjggMjMuM2wyMC03LjVjMS40LS42LS4yLTMyLjEtLjItMzIuMWw5LjEtOS4xczI5LjIgLjkgMjkuNy0uNWw4LjEtMTkuOGMuNy0xLjEtMjAuOS0yMC43LTIwLjktMjAuN3ptLTQ0LjktOC43Yy43IDE3LjEtMTIuOCAzMS42LTMwLjEgMzIuNHMtMzIuMS0xMi41LTMyLjgtMjkuNiAxMi44LTMxLjYgMzAuMS0zMi4zYzE3LjMtLjggMzIuMSAxMi41IDMyLjggMjkuNXptMjAxLjItMzcuOWwtOTctOTctLjEgLjFjLTc1LjEtNzMuMy0xOTUuNC03Mi44LTI2OS44IDEuNi01MC45IDUxLTI3LjggMjcuOS05NS43IDk1LjMtMjIuMyAyMi4zLTIyLjMgNTguNyAwIDgxIDY5LjkgNjkuNCA0Ni40IDQ2IDk3LjQgOTdsLjEtLjFjNzUuMSA3My4zIDE5NS40IDcyLjkgMjY5LjgtMS42IDUxLTUwLjkgMjcuOS0yNy45IDk1LjMtOTUuMyAyMi4zLTIyLjMgMjIuMy01OC43IDAtODF6TTM2My41IDE0OC4yYTE1Mi4zIDE1Mi4zIDAgMSAxIC0yMTUgMjE1LjYgMTUyLjMgMTUyLjMgMCAxIDEgMjE1LTIxNS42eiJdfSxVOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYm90cyIsaWNvbjpbNjQwLDUxMixbXSwiZTM0MCIsIk04Ni4zIDE5Ny44Yy04LS4xLTE1LjkgMS43LTIzLjEgNS4xcy0xMy41IDguNi0xOC40IDE0LjlsMC02MS45YzAtMi4yLS45LTQuMy0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTI4LjQgMGMtMi4yIDAtNC4zIC45LTUuOCAyLjRTMCAxNTMuOCAwIDE1NkwwIDMzMy42YzAgMS4xIC4yIDIuMSAuNiAzLjFzMSAxLjkgMS44IDIuNyAxLjcgMS40IDIuNyAxLjggMi4xIC42IDMuMSAuNmwyOC40IDBjMS4xIDAgMi4xLS4yIDMuMS0uNnMxLjktMSAyLjctMS44IDEuNC0xLjcgMS44LTIuNyAuNi0yLjEgLjYtMy4xbDAtOC4xYzExLjYgMTMuNCAyNS45IDE5LjggNDEuNiAxOS44IDM0LjYgMCA2MS45LTI2LjIgNjEuOS03My44IDAtNDUuOS0yNy03My42LTYxLjktNzMuNnpNNzEuNSAzMDUuN2MtOS42IDAtMjEuMi00LjktMjYuNy0xMi41bDAtNDNjNS41LTcuNiAxNy4yLTEyLjggMjYuNy0xMi44IDE3LjcgMCAzMS4xIDEzLjEgMzEuMSAzNCAwIDIxLjItMTMuNCAzNC4zLTMxLjEgMzQuM3ptMTU2LjQtNTlhMTcuNCAxNy40IDAgMSAwIDAgMzQuOCAxNy40IDE3LjQgMCAxIDAgMC0zNC44em00Ni4xLTkwbDAtNDQuN2MyLjgtMS4yIDUuMi0zLjMgNi42LTZzMS45LTUuOCAxLjMtOC45LTIuMi01LjctNC42LTcuNy01LjQtMy04LjQtMy02LjEgMS4xLTguNCAzLTQgNC43LTQuNiA3LjctLjEgNi4xIDEuMyA4LjkgMy44IDQuOCA2LjYgNmwwIDQ0LjdjLTI4IDEuMy01NC40IDEzLjYtNzMuNiAzNC4xcy0yOS41IDQ3LjctMjguOCA3NS44IDEyLjMgNTQuNyAzMi40IDc0LjMgNDcgMzAuNiA3NS4xIDMwLjYgNTUtMTEgNzUuMS0zMC42IDMxLjctNDYuMyAzMi40LTc0LjMtOS43LTU1LjMtMjguOC03NS44LTQ1LjUtMzIuOC03My42LTM0LjF6bTg2IDEwNy40YzAgMzAuNS00MC44IDU1LjMtOTEuMSA1NS4zcy05MS4xLTI0LjctOTEuMS01NS4zIDQwLjgtNTUuMyA5MS4xLTU1LjMgOTEuMSAyNC43IDkxLjEgNTUuM2wwIDB6bS01MC4yIDE3LjRjMy40IDAgNi44LTEgOS43LTIuOXM1LjEtNC42IDYuNC03LjggMS43LTYuNyAxLTEwLjEtMi4zLTYuNS00LjgtOC45LTUuNS00LjEtOC45LTQuOC02LjktLjMtMTAuMSAxLTUuOSAzLjUtNy44IDYuNC0yLjkgNi4yLTIuOSA5LjdjMCA0LjYgMS44IDkgNS4xIDEyLjNzNy43IDUuMSAxMi4zIDUuMWwwIDB6bTI3MC45LTMxYy0xNC44LTIuNi0yMi40LTMuOC0yMi40LTkuOSAwLTUuNSA3LjMtOS45IDE3LjctOS45IDEyLjIgLjEgMjQuMiAzLjYgMzQuNSAxMC4xIDEuOCAxLjIgNCAxLjYgNi4yIDEuMXM0LTEuNyA1LjEtMy42Yy4xLS4xIC4xLS4yIC4yLS4zbDguNi0xNC45YzEuMS0xLjkgMS40LTQuMSAuOC02LjFzLTEuOS0zLjktMy43LTVjLTE1LjctOS40LTMzLjctMTQuMy01Mi0xNC4xLTM5IDAtNjAuMiAyMS41LTYwLjIgNDYuMiAwIDM2LjMgMzMuNyA0MS45IDU3LjYgNDUuNiAxMy40IDIuMyAyNC4xIDQuNCAyNC4xIDExIDAgNi40LTUuNSAxMC44LTE4LjkgMTAuOC0xMy42IDAtMzEtNi4yLTQyLjYtMTMuNi0uOS0uNi0xLjktMS0zLTEuMnMtMi4xLS4yLTMuMiAuMS0yLjEgLjctMi45IDEuMy0xLjYgMS40LTIuMiAyLjNjMCAuMS0uMSAuMS0uMSAuMmwtMTAuMiAxNi45Yy0xLjEgMS44LTEuNCA0LTEgNnMxLjcgMy45IDMuNSA1YzE1LjIgMTAuMyAzNy43IDE2LjcgNTkuNCAxNi43IDQwLjQgMCA2NC0xOS44IDY0LTQ2LjUgMC0zOC4xLTM1LjUtNDMuOS01OS4zLTQ4LjN6bS05NS45IDYwLjhjLS41LTItMS44LTMuNy0zLjYtNC44cy0zLjktMS41LTUuOS0xLjFjLTEuNCAuMy0yLjggLjQtNC4yIC40LTcuOCAwLTEyLjUtNi4xLTEyLjUtMTQuMmwwLTUxLjIgMjAuMyAwYzIuMiAwIDQuMi0uOSA1LjgtMi40czIuNC0zLjYgMi40LTUuOGwwLTIyLjdjMC0yLjItLjktNC4yLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjAuMyAwIDAtMzAuMmMwLTIuMi0uOS00LjItMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yOC4yIDBjLTIuMiAwLTQuMiAuOS01LjggMi40cy0yLjQgMy42LTIuNCA1LjhsMCAzMC4yLTE1LjEgMGMtMS4xIDAtMi4xIC4yLTMuMSAuNnMtMS45IDEtMi42IDEuOC0xLjQgMS43LTEuOCAyLjYtLjYgMi0uNiAzLjFsMCAyMi43YzAgMS4xIC4yIDIuMSAuNiAzLjFzMSAxLjkgMS44IDIuNiAxLjcgMS40IDIuNiAxLjggMiAuNiAzLjEgLjZsMTUuMSAwIDAgNjMuN2MwIDI3IDE1LjQgNDEuMyA0My45IDQxLjMgMTIuMiAwIDIxLjQtMi4yIDI3LjYtNS40IDEuNi0uOCAyLjktMi4yIDMuNy0zLjlzLjktMy42IC41LTUuNGwtNS0xOS4zeiJdfSxXOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmluZSIsaWNvbjpbMzg0LDUxMixbXSwiZjFjYSIsIk0zODQgMjU0LjdsMCA1Mi4xYy0xOC40IDQuMi0zNi45IDYuMS01Mi4xIDYuMS0zNi45IDc3LjQtMTAzIDE0My44LTEyNS4xIDE1Ni4yLTE0IDcuOS0yNy4xIDguNC00Mi43LS44LTI3LjEtMTYuMy0xMjkuOS0xMDAuNi0xNjQuMS0zNjUuNmw3NC41IDBjMTguNyAxNTkuMSA2NC41IDI0MC43IDExNC44IDMwMS44IDI3LjktMjcuOSA1NC44LTY1LjEgNzUuNi0xMDYuOS00OS44LTI1LjMtODAuMS04MC45LTgwLjEtMTQ1LjYgMC02NS42IDM3LjctMTE1LjEgMTAyLjItMTE1LjEgMTE0LjkgMCAxMDYuMiAxMjcuOSA4MS42IDE4MS41IDAgMC00Ni40IDkuMi02My41LTIwLjUgMy40LTExLjMgOC4yLTMwLjggOC4yLTQ4LjUgMC0zMS4zLTExLjMtNDYuNi0yOC40LTQ2LjYtMTguMiAwLTMwLjggMTcuMS0zMC44IDUwIC4xIDc5LjIgNTkuNCAxMTguNyAxMjkuOSAxMDEuOXoiXX0sRzllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZHJ0IixpY29uOls1NzYsNTEyLFtdLCJmM2M4IiwiTTEyOS43IDI1NmMwIDEyMS44IDgzLjkgMjIyLjggMTkzLjUgMjQxLjEtMTguNyA0LjUtMzguMiA2LjktNTguMiA2LjktMTM3LjYgMC0yNDktMTExLTI0OS0yNDhTMTI3LjQgOCAyNjQuOSA4YzIwLjEgMCAzOS42IDIuNCA1OC4yIDYuOS0xMDkuNiAxOC4zLTE5My40IDExOS4zLTE5My40IDI0MS4xek00MjcuMSAzNTYuM2MtNzcuNyA1NS40LTE3OS42IDQ3LjUtMjQwLjQtMTQuNiA1LjUgMTQuMSAxMi43IDI3LjcgMjEuNyA0MC41IDYxLjYgODguMiAxODIuNCAxMDkuMyAyNjkuNyA0N3MxMDguMS0xODQuMyA0Ni41LTI3Mi42Yy05LTEyLjktMTkuMy0yNC4zLTMwLjUtMzQuMiAzNy40IDc4LjggMTAuNyAxNzguNS02NyAyMzMuOXptLTIxOC44LTI0NGMtMS40IDEtMi43IDIuMS00IDMuMSA2NC4zLTE3LjggMTM1LjkgNCAxNzguOSA2MC41IDM1LjcgNDcgNDIuOSAxMDYuNiAyNC40IDE1OCA1Ni43LTU2LjIgNjcuNi0xNDIuMSAyMi4zLTIwMS44LTUwLTY1LjUtMTQ5LjEtNzQuNC0yMjEuNi0xOS44ek0zMTIgMjI0Yy00LjQgMC04LTMuNi04LThsMC00MGMwLTQuNC0zLjYtOC04LThsLTQ4IDBjLTQuNCAwLTggMy42LTggOGwwIDQwYzAgNC40LTMuNiA4LTggOGwtNDAgMGMtNC40IDAtOCAzLjYtOCA4bDAgNDhjMCA0LjQgMy42IDggOCA4bDQwIDBjNC40IDAgOCAzLjYgOCA4bDAgNDBjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC0zLjYgOC04bDAtNDBjMC00LjQgMy42LTggOC04bDQwIDBjNC40IDAgOC0zLjYgOC04bDAtNDhjMC00LjQtMy42LTgtOC04bC00MCAweiJdfSxZOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3NpIixpY29uOls1MTIsNTEyLFtdLCJmNDFhIiwiTTggMjY2LjRjMi4zLTEzNS44IDk3LjQtMjMyLjQgMjEzLjgtMjQ4LjEgMTM4LjgtMTguNiAyNTUuNiA3NS44IDI3OCAyMDEuMSAyMS4zIDExOC44LTQ0IDIzMC0xNTEuNiAyNzQtOS4zIDMuOC0xNC40IDEuNy0xOC03LjctMTcuOC00Ni4zLTM1LjYtOTIuNi01My40LTEzOS0zLjEtOC4xLTEtMTMuMiA3LTE2LjggMjQuMi0xMSAzOS4zLTI5LjQgNDMuMy01NS44IDEuNS05LjcgMS0xOS42LTEuNS0yOS4xcy02LjktMTguNC0xMi45LTI2LjEtMTMuNi0xNC4xLTIyLjItMTguOC0xOC4xLTcuNS0yNy45LTguM2MtMzktMy40LTcxLjggMjMuNy03Ny41IDU5LjctNS4yIDMzIDExLjEgNjMuNyA0MS45IDc3LjcgOS42IDQuNCAxMS41IDguNiA3LjggMTguNC0xNy45IDQ2LjYtMzUuOCA5My4yLTUzLjcgMTM5LjktMi42IDYuOS04LjMgOS4zLTE1LjUgNi41LTUyLjYtMjAuMy0xMDEuNC02MS0xMzAuOC0xMTktMjQuOS00OS4yLTI1LjItODcuNy0yNi44LTEwOC43em0yMC45LTEuOWMuNCA2LjYgLjYgMTQuMyAxLjMgMjIuMSA2LjMgNzEuOSA0OS42IDE0My41IDEzMSAxODMuMSAzLjIgMS41IDQuNCAuOCA1LjYtMi4zIDE0LjktMzkuMSAyOS45LTc4LjIgNDUtMTE3LjMgMS4zLTMuMyAuNi00LjgtMi40LTYuNy0zMS42LTE5LjktNDcuMy00OC41LTQ1LjYtODYgMS0yMS42IDkuMy00MC41IDIzLjgtNTYuMyAzMC0zMi43IDc3LTM5LjggMTE1LjUtMTcuNiAxNS42IDkgMjguMiAyMi4zIDM2LjIgMzguNHMxMS4yIDM0LjIgOSA1MmMtMy42IDMwLjYtMTkuMyA1My45LTQ1LjcgNjkuOC0yLjcgMS42LTMuNSAyLjktMi4zIDYgMTUuMiAzOS4yIDMwLjMgNzguNCA0NS4yIDExNy43IDEuMiAzLjEgMi40IDMuOCA1LjYgMi4zIDM1LjUtMTYuNiA2NS4yLTQwLjMgODguMS03MiAzNC44LTQ4LjIgNDkuMS0xMDEuOSA0Mi4zLTE2MS0xMy43LTExNy41LTExOS40LTIxNC44LTI1NS41LTE5OC0xMDYuMSAxMy0xOTUuMyAxMDIuNS0xOTcuMSAyMjUuOHoiXX0sWjllPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdnIixpY29uOls1MTIsNTEyLFtdLCJmMjYwIiwiTTE3OS4yIDIzMC40bDEwMi40IDEwMi40LTEwMi40IDEwMi40LTE3OS4yLTE3OS4yIDE3OS4yLTE3OS4yIDQ0LjggNDQuOC0yNS42IDI1LjYtMTkuMi0xOS4yLTEyOCAxMjggMTI4IDEyOCA1MS41LTUxLjUtNzcuMS03Ni41IDI1LjYtMjUuNnpNMzMyLjggNzYuOGwtMTAyLjQgMTAyLjQgMTAyLjQgMTAyLjQgMjUuNi0yNS42LTc3LjEtNzYuNSA1MS41LTUxLjUgMTI4IDEyOC0xMjggMTI4LTE5LjItMTkuMi0yNS42IDI1LjYgNDQuOCA0NC44IDE3OS4yLTE3OS4yLTE3OS4yLTE3OS4yeiJdfSxYOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnV5c2VsbGFkcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjIwZCIsIk0yMjQgMTUwLjdsNDIuOSAxNjAuNy04NS44IDAgNDIuOS0xNjAuN3pNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzgyLjcgNDA1LjNsLTk0LjUtMjk4LjctMTI4LjQgMC05NC41IDI5OC43IDkwLjcgMCAxMTEuNy05MS42IDI0LjIgOTEuNiA5MC44IDB6Il19LEs5ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE4NS4zIDM4MGMtMzIuOSAwLTY0LjQtMTMuMS04Ny43LTM2LjNzLTM2LjMtNTQuOC0zNi4zLTg3LjcgMTMuMS02NC40IDM2LjMtODcuNyA1NC44LTM2LjMgODcuNy0zNi4zYzMxLjMgMCA2MC4xIDExIDgzIDMyLjNsLTMzLjYgMzIuNmMtMTMuMi0xMi45LTMxLjMtMTkuMS00OS40LTE5LjEtNDIuOSAwLTc3LjIgMzUuNS03Ny4yIDc4LjFTMTQyLjMgMzM0IDE4NS4zIDMzNGMzMi42IDAgNjQuOS0xOS4xIDcwLjEtNTMuM2wtNzAuMSAwIDAtNDIuNiAxMTYuOSAwYzEuMyA2LjggMS45IDEzLjggMS45IDIwLjcgMCA3MC44LTQ3LjUgMTIxLjItMTE4LjggMTIxLjJ6TTQxNS41IDI3My44bDAgMzUuNS0zNS41IDAgMC0zNS41LTM1LjUgMCAwLTM1LjUgMzUuNSAwIDAtMzUuNSAzNS41IDAgMCAzNS41IDM1LjIgMCAwIDM1LjUtMzUuMiAweiJdfSxROWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NyZWVucGFsIixpY29uOls1MTIsNTEyLFtdLCJlNTcwIiwiTTI3OC42IDIyLjVhMjIuNSAyMi41IDAgMSAxIC00NSAwIDIyLjUgMjIuNSAwIDEgMSA0NSAwek0xOTguNyAyNTlhNTcuNCA1Ny40IDAgMSAxIDExNC44IDAgNTcuNCA1Ny40IDAgMSAxIC0xMTQuOCAwem0xMzguNiA5MWMyMi4zLTE5LjkgMzYuNS00Ny4zIDM5LjktNzdsMTE5LjUgMGMtMy41IDYxLjQtMzAuNCAxMTkuMi03NS4yIDE2MS40LTQ0LjcgNDIuMi0xMDMuOSA2NS44LTE2NS40IDY1LjhTMTM1LjQgNDc2LjYgOTAuNyA0MzQuNEM0NS45IDM5Mi4yIDE5LjEgMzM0LjQgMTUuNSAyNzNsMTE5LjcgMGMzLjQgMjkuNyAxNy42IDU3LjEgMzkuOSA3N3M1MS4yIDMwLjkgODEuMSAzMC45YzI5IDAgNTguNy0xMSA4MS4xLTMwLjl6TTI4LjMgMTQxLjdhMjIuNSAyMi41IDAgMSAxIDQ1LTEuNCAyMi41IDIyLjUgMCAxIDEgLTQ1IDEuNHptNDU1LjYtLjdhMjIuNCAyMi40IDAgMSAxIC00NC45IDAgMjIuNCAyMi40IDAgMSAxIDQ0LjkgMHpNMzE4IDk1LjNjLTE3LjMgMTMuOC0zOS4yIDIyLjgtNjEuOSAyMi44cy00NC42LTktNjEuOS0yMi44Yy0xNy4zLTE0LjctMjguOC0zNS4xLTMyLjQtNTcuNSAxNS4xLTYuNCAzMC44LTExLjMgNDYuOS0xNC41IDAgMTIuNiA1IDI0LjYgMTMuOSAzMy41czIwLjkgMTMuOSAzMy41IDEzLjkgMjQuNi01IDMzLjUtMTMuOSAxMy45LTIwLjkgMTMuOS0zMy41YzE2LjEgMy4yIDMxLjggOC4xIDQ2LjkgMTQuNS0zLjYgMjIuNC0xNS4xIDQyLjgtMzIuNCA1Ny41ek04Mi45IDIzMWMtMjEuNCA3LjYtNDQuNyA3LjQtNjUuOS0uNiAyLTE2LjMgNS42LTMyLjMgMTAuOC00Ny45IDUuNCAzLjEgMTEuMyA1LjEgMTcuNSA2IDYuMiAuOCAxMi40IC40IDE4LjUtMS4yIDYtMS43IDExLjYtNC40IDE2LjYtOC4yczkuMS04LjUgMTIuMi0xMy45IDUuMS0xMS40IDYtMTcuNWMuOC02LjIgLjQtMTIuNS0xLjItMTguNXMtNC40LTExLjYtOC4yLTE2LjZjLTMuOC00LjktOC41LTkuMS0xMy45LTEyLjIgMTAuOC0xMi4zIDIyLjktMjMuNSAzNi0zMy4zIDE3LjYgMTQuMyAyOS41IDM0LjUgMzMuNiA1Ni44cy4xIDQ1LjQtMTEuMiA2NWMtMTEuNCAxOS42LTI5LjQgMzQuNS01MC43IDQyLjF6bTM0Ni40IC4xYy0yMS4zLTcuNi0zOS4zLTIyLjYtNTAuNy00Mi4yLTExLjMtMTkuNi0xNS4yLTQyLjctMTEuMS02NSA0LjEtMjIuMiAxNi00Mi40IDMzLjUtNTYuNyAxMy4xIDkuOCAyNS4yIDIxIDM2IDMzLjMtMTAuNyA2LjQtMTguNCAxNi43LTIxLjUgMjguOC0zLjIgMTItMi4zIDI0LjggNC44IDM1LjYgNi4yIDEwLjggMTYuNCAxOC43IDI4LjQgMjJzMjQuOSAxLjcgMzUuNy00LjNjNS4zIDE1LjUgOC45IDMxLjYgMTAuOSA0Ny44LTIyLjEgOC4xLTQ0LjYgOC4zLTY2IC43eiJdfSxKOWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYml0Y29pbiIsaWNvbjpbNTEyLDUxMixbXSwiZjM3OSIsIk04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem0zNTQuMy0zNS4zYzQuOS0zMy0yMC4yLTUwLjctNTQuNi02Mi42bDExLjEtNDQuNy0yNy4yLTYuOC0xMC45IDQzLjVjLTcuMi0xLjgtMTQuNS0zLjUtMjEuOC01LjFsMTAuOS00My44LTI3LjItNi44LTExLjIgNDQuN2MtNS45LTEuMy0xMS43LTIuNy0xNy40LTQuMWwwLS4xLTM3LjUtOS40LTcuMiAyOS4xczIwLjIgNC42IDE5LjggNC45YzExIDIuOCAxMyAxMCAxMi43IDE1LjhsLTEyLjcgNTAuOWMuOCAuMiAxLjcgLjUgMi44IC45LS45LS4yLTEuOS0uNS0yLjktLjdsLTE3LjggNzEuM2MtMS4zIDMuMy00LjggOC40LTEyLjUgNi41IC4zIC40LTE5LjgtNC45LTE5LjgtNC45bC0xMy41IDMxLjEgMzUuNCA4LjhjNi42IDEuNyAxMyAzLjQgMTkuNCA1bC0xMS4zIDQ1LjIgMjcuMiA2LjggMTEuMi00NC43YzcuMiAyIDE0LjQgMy44IDIxLjcgNS42bC0xMS4xIDQ0LjUgMjcuMiA2LjggMTEuMy00NS4xYzQ2LjQgOC44IDgxLjMgNS4yIDk2LTM2LjcgMTEuOC0zMy44LS42LTUzLjMtMjUtNjYgMTcuOC00LjEgMzEuMi0xNS44IDM0LjctMzkuOXptLTYyLjIgODcuMmMtOC40IDMzLjgtNjUuMyAxNS41LTgzLjggMTAuOWwxNC45LTU5LjljMTguNCA0LjYgNzcuNiAxMy43IDY4LjggNDl6bTguNC04Ny43Yy03LjcgMzAuNy01NSAxNS4xLTcwLjQgMTEuM2wxMy41LTU0LjNjMTUuNCAzLjggNjQuOCAxMSA1Ni44IDQzeiJdfSxldWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3dpZnQiLGljb246WzQ0OCw1MTIsW10sImY4ZTEiLCJNNDQ4IDE1Ni4xYzAtNC41LS4xLTktLjItMTMuNS0uMS05LjktMS0xOS43LTIuNi0yOS40LTEuNy05LjctNC44LTE5LjItOS4yLTI4LTktMTcuNy0yMy40LTMyLjEtNDEuMi00MS4xLTguOC00LjUtMTguMy03LjYtMjgtOS4yLTkuNy0xLjYtMTkuNi0yLjUtMjkuNC0yLjYtNC41LS4xLTktLjItMTMuNS0uMkwxMjQuMSAzMmMtNC41IDAtOSAuMS0xMy41IC4yLTIuNCAuMS00LjkgLjItNy40IC4zLTcuNCAuMy0xNC44IDEuMS0yMi4xIDIuMy03LjMgMS4zLTE0LjQgMy4zLTIxLjIgNi4xLTIuMyAxLTQuNiAyLTYuOCAzLjEtNi42IDMuNC0xMi44IDcuNS0xOC40IDEyLjMtMS45IDEuNi0zLjcgMy4zLTUuNCA1LTcgNy0xMi45IDE1LTE3LjQgMjMuOC00LjQgOC44LTcuNiAxOC4zLTkuMiAyOC0xLjYgOS43LTIuNCAxOS42LTIuNSAyOS40LS4xIDQuNS0uMiA5LS4yIDEzLjVMMCAzNTUuOWMwIDQuNSAuMSA5IC4yIDEzLjUgLjEgOS45IDEgMTkuNyAyLjYgMjkuNCAxLjcgOS43IDQuOCAxOS4yIDkuMiAyOCA5IDE3LjcgMjMuNCAzMi4xIDQxLjEgNDEuMSA4LjggNC40IDE4LjMgNy41IDI4IDkuMiA5LjcgMS42IDE5LjYgMi41IDI5LjQgMi42IDQuNSAuMSA5IC4yIDEzLjUgLjJsMTk5LjggMGM0LjUgMCA5LS4xIDEzLjUtLjIgOS45LS4xIDE5LjctMSAyOS40LTIuNiA5LjctMS43IDE5LjItNC44IDI4LTkuMiAxNy43LTkgMzIuMS0yMy40IDQxLjEtNDEuMiA0LjQtOC44IDcuNi0xOC4zIDkuMi0yOCAxLjYtOS43IDIuNS0xOS42IDIuNi0yOS40IC4xLTQuNSAuMi05IC4yLTEzLjVsMC0xODMuOGMwLTUuNCAwLTEwLjcgMC0xNnptLTY5LjkgMjQxYy0yMC0zOC45LTU3LjItMjkuMy03Ni4zLTE5LjUtMS43IDEtMy41IDItNS4yIDNsLS40IC4yYy0zOS41IDIxLTkyLjUgMjIuNS0xNDUuOC0uNC00My40LTE4LjgtODAuMS01MC4zLTEwNS4zLTkwLjQgMTIuMyA5LjEgMjUuNCAxNi45IDM5LjIgMjMuNCA1Ni40IDI2LjQgMTEzIDI0LjUgMTUzIDAtNTctNDMuOC0xMDQuNi0xMDEtMTQxLjEtMTQ3LjItNy04LjEtMTMuMi0xNi44LTE4LjgtMjUuOSA0My43IDQwIDExMi43IDkwLjIgMTM3LjUgMTA0LjEtNTIuNi01NS41LTk4LjktMTIzLjktOTYuNy0xMjEuNyA4Mi44IDgzLjQgMTU5LjIgMTMwLjYgMTU5LjIgMTMwLjYgMi45IDEuNiA1IDIuOCA2LjcgNCAxLjYtNC4xIDMtOC4yIDQuMi0xMi41IDEzLjItNDguMy0xLjctMTAzLjYtMzUuMy0xNDkuMiA3Ni44IDQ2LjEgMTIyLjIgMTMzLjcgMTAzLjYgMjA3LjgtLjQgMS43LTEgMy40LTEuNCA1LjEgMzguNSA0Ny40IDI4IDk4LjIgMjMuMSA4OC42bDAgMHoiXX0sdHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpbGVzLXBpbndoZWVsIixpY29uOls1MTIsNTEyLFtdLCJlNjlmIiwiTTI1My41IDI0Ni40TDEzNy4yIDEzMC4yYy0uNi0uNi0xLTEuMy0xLjQtMnMtLjUtMS42LS41LTIuNCAuMi0xLjYgLjUtMi40IC44LTEuNCAxLjQtMkwyNTMuNiA1LjFjLjktLjkgMi0xLjUgMy4yLTEuN3MyLjUtLjEgMy42IC4zIDIuMSAxLjMgMi44IDIuMyAxLjEgMi4yIDEuMSAzLjVsMCAyMzIuNWMwIDEuMy0uMyAyLjUtMSAzLjZzLTEuNyAxLjktMi45IDIuNC0yLjUgLjYtMy43IC4zLTIuNC0uOS0zLjItMS45em00MC4zLTQuNGwwLTEzNC40YzAtLjggLjEtMS42IC41LTIuNHMuOC0xLjUgMS4zLTIuMSAxLjMtMS4xIDItMS40IDEuNi0uNSAyLjQtLjVsMTM0LjQgMGMxLjIgMCAyLjUgLjQgMy41IDEuMXMxLjggMS43IDIuMyAyLjggLjYgMi40IC4zIDMuNi0uOSAyLjMtMS43IDMuMkwzMDQuMyAyNDYuNGMtLjkgLjgtMiAxLjQtMy4yIDEuNnMtMi40IC4xLTMuNS0uNC0yLjEtMS4zLTIuOC0yLjMtMS4xLTIuMi0xLjEtMy40bC4xIC4xem0zMC42IDM1Yy0xLjIgMC0yLjUtLjMtMy41LTFzLTEuOS0xLjYtMi40LTIuOC0uNi0yLjQtLjQtMy42IC44LTIuMyAxLjctMy4yTDQwNCAxODIuMmMuNi0uNiAxLjMtMSAyLTEuNHMxLjYtLjUgMi40LS41IDEuNiAuMiAyLjQgLjUgMS40IC44IDIgMS40bDg0LjQgODQuMmMuOSAuOSAxLjUgMiAxLjcgMy4ycy4xIDIuNS0uMyAzLjYtMS4zIDIuMS0yLjMgMi44LTIuMiAxLjEtMy41IDEuMWwtMTY4LjUgMCAuMS0uMXptOTAuNyAxMzFsLTk1LjMtOTUuMmMtLjktLjktMS41LTItMS43LTMuMnMtLjEtMi41IC40LTMuNyAxLjMtMi4xIDIuNC0yLjggMi4zLTEgMy41LTFsOTUuMiAwYzEuNyAwIDMuMiAuNyA0LjQgMS44czEuOCAyLjggMS44IDQuNGwwIDk1LjNjMCAxLjItLjQgMi41LTEuMSAzLjVzLTEuNyAxLjgtMi44IDIuMy0yLjQgLjYtMy42IC4zLTIuMy0uOS0zLjItMS43ek0xNi44IDMwMi4xbDIxNi45IDBjMS4yIDAgMi41IC40IDMuNSAxLjFzMS44IDEuNyAyLjMgMi44IC42IDIuNCAuMyAzLjYtLjggMi4zLTEuNyAzLjJMMTI5LjcgNDIxLjJjLS42IC42LTEuMyAxLTIgMS40cy0xLjYgLjUtMi40IC41LTEuNi0uMi0yLjQtLjUtMS40LS44LTItMS40TDEyLjMgMzEyLjhjLS45LS45LTEuNS0yLTEuNy0zLjJzLS4xLTIuNSAuNC0zLjYgMS4zLTIuMSAyLjMtMi44IDIuMy0xIDMuNS0xbDAtLjF6TTI2NC4zIDQ2NS4zYzAgLjgtLjIgMS42LS41IDIuNHMtLjggMS41LTEuNCAyLTEuMyAxLTIgMS40LTEuNiAuNS0yLjQgLjVsLTEyOCAwYy0xLjIgMC0yLjUtLjQtMy41LTEuMXMtMS44LTEuNy0yLjMtMi44LS42LTIuNC0uMy0zLjYgLjgtMi4zIDEuNy0zLjJsMTI4LTEyOGMuOS0uOSAyLTEuNSAzLjItMS43czIuNS0uMSAzLjYgLjMgMi4xIDEuMyAyLjggMi4zIDEuMSAyLjIgMS4xIDMuNWwwIDEyOHptNDAtMTMyLjVsODIuOCA4Mi43Yy42IC42IDEgMS4zIDEuNCAycy41IDEuNiAuNSAyLjQtLjIgMS42LS41IDIuNC0uOCAxLjQtMS40IDJMMzA0LjMgNTA3Yy0uOSAuOS0yIDEuNS0zLjIgMS43cy0yLjUgLjEtMy42LS4zLTIuMS0xLjMtMi44LTIuMy0xLjEtMi4yLTEuMS0zLjVsMC0xNjUuNGMwLTEuMiAuNC0yLjUgMS4xLTMuNXMxLjctMS44IDIuOC0yLjMgMi40LS42IDMuNi0uMyAyLjMgLjggMy4yIDEuN3pNNzkgMTIyLjRjMC0xLjIgLjMtMi41IDEtMy41czEuNy0xLjggMi44LTIuMyAyLjQtLjYgMy42LS40IDIuMyAuOCAzLjIgMS43TDIzOC4xIDI2Ni40Yy45IC45IDEuNSAyIDEuNyAzLjJzLjEgMi41LS4zIDMuNi0xLjMgMi4xLTIuMyAyLjgtMi4yIDEuMS0zLjUgMS4xbC0xNDguNCAwYy0xLjcgMC0zLjItLjctNC40LTEuOHMtMS44LTIuOC0xLjgtNC40bDAtMTQ4LjQtLjEtLjF6Il19LGF1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsYXJhdmVsIixpY29uOls1MTIsNTEyLFtdLCJmM2JkIiwiTTUwNC42IDExNS44Yy0uMS0uMi0uMi0uNS0uMy0uNy0uMS0uNC0uMy0uOC0uNS0xLjItLjItLjItLjMtLjUtLjUtLjctLjItLjMtLjUtLjYtLjctLjktLjItLjItLjUtLjQtLjgtLjYtLjMtLjItLjYtLjUtLjktLjdMNDA0LjYgNTUuNWMtMS4yLS43LTIuNi0xLjEtNC0xLjFzLTIuOCAuNC00IDEuMUwzMDAuMyAxMTFjLS4zIC4yLS42IC40LS45IC43LS4zIC4yLS41IC40LS44IC42LS4zIC4zLS41IC42LS43IC45LS4yIC4yLS40IC40LS41IC43LS4yIC40LS40IC44LS41IDEuMi0uMSAuMi0uMiAuNC0uMyAuNy0uMiAuNy0uMyAxLjQtLjMgMi4xbDAgMTA1LjItODAuMiA0Ni4yIDAtMjA1LjljMC0uNy0uMS0xLjQtLjMtMi4xLS4xLS4yLS4yLS40LS4zLS43LS4xLS40LS4zLS44LS41LTEuMi0uMS0uMy0uNC0uNS0uNS0uNy0uMi0uMy0uNS0uNi0uNy0uOS0uMi0uMi0uNS0uNC0uOC0uNi0uMy0uMi0uNi0uNS0uOS0uN0wxMTUuOCAxLjFjLTEuMi0uNy0yLjYtMS4xLTQtMS4xcy0yLjggLjQtNCAxLjFMMTEuNSA1Ni41Yy0uMyAuMi0uNiAuNC0uOSAuNy0uMyAuMi0uNSAuNC0uOCAuNi0uMyAuMy0uNSAuNi0uNyAuOS0uMiAuMy0uNCAuNS0uNiAuNy0uMiAuNC0uNCAuOC0uNSAxLjItLjEgLjItLjIgLjQtLjMgLjctLjIgLjctLjMgMS40LS4zIDIuMWwwIDMyOS43YzAgMS40IC40IDIuOCAxLjEgNHMxLjcgMi4yIDIuOSAyLjlMMjA0IDUxMC45Yy40IC4yIC45IC40IDEuMyAuNSAuMiAuMSAuNCAuMiAuNiAuMyAxLjMgLjQgMi44IC40IDQuMSAwIC4yLS4xIC40LS4yIC42LS4yIC41LS4yIDEtLjMgMS40LS42TDQwNC42IDQwMC4xYzEuMi0uNyAyLjItMS43IDIuOS0yLjlzMS4xLTIuNiAxLjEtNGwwLTEwNS4zIDkyLjItNTMuMWMxLjItLjcgMi4yLTEuNyAyLjktM3MxLjEtMi42IDEuMS00bDAtMTA5LjhjMC0uNy0uMS0xLjQtLjItMi4xek0xMTEuOCAxNy4zbDgwLjIgNDYuMS04MC4yIDQ2LjItODAuMi00Ni4yIDgwLjItNDYuMnptODguMiA2MGwwIDIwMS4zYy0zMy4yIDE5LjEtNTkuOSAzNC41LTgwLjIgNDYuMmwwLTIwMS4zQzE1MyAxMDQuNCAxNzkuNyA4OSAyMDAgNzcuM3ptMCA0MTIuOEwyMy41IDM4OC41IDIzLjUgNzcuM2MyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDIxNS4yYzAgLjMgLjEgLjYgLjEgLjkgMCAuNCAuMSAuOCAuMiAxLjIgLjEgLjMgLjIgLjYgLjQgLjkgLjEgLjMgLjMgLjcgLjQgMSAuMiAuMyAuNCAuNSAuNiAuOCAuMiAuMyAuNCAuNiAuNyAuOCAuMiAuMiAuNSAuNCAuOCAuNiAuMyAuMiAuNiAuNSAuOSAuN2w5Mi4yIDUyLjIgLjEgOTIuNHptOC0xMDYuMkwxMjggMzM4LjZjNTQuNy0zMS41IDExMy41LTY1LjMgMTc2LjMtMTAxLjVsODAuMSA0Ni4xQzM1NSAzMDAgMjk2LjIgMzMzLjUgMjA4IDM4My45em0xODQuNSA0LjZsLTE3Ni41IDEwMS42IDAtOTIuM0MzMTcuNCAzNDAgMzc2LjIgMzA2LjQgMzkyLjUgMjk3bDAgOTEuNHptMC0xMTkuMWMtMjAuMy0xMS42LTQ3LjEtMjctODAuMi00Ni4xbDAtOTEuNGMyMC4zIDExLjcgNDcuMSAyNy4xIDgwLjIgNDYuMmwwIDkxLjN6bTgtMTA1LjNsLTgwLjItNDYuMiA4MC4yLTQ2LjIgODAuMiA0Ni4xLTgwLjIgNDYuMnptOCAxMDUuM2wwLTkxLjNjMzMuMi0xOS4xIDYwLTM0LjUgODAuMy00Ni4ybDAgOTEuNC04MC4zIDQ2LjJ6Il19LGl1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGZvcm1zIixpY29uOls0NDgsNTEyLFtdLCJmMjk4IiwiTTQ0OCA3NS4ybDAgMzYxLjdjMCAyNC4zLTE5IDQzLjItNDMuMiA0My4ybC0zNjEuNiAwQzE5LjMgNDgwIDAgNDYxLjQgMCA0MzYuOEwwIDc1LjJDMCA1MS4xIDE4LjggMzIgNDMuMiAzMmwzNjEuNyAwYzI0IDAgNDMuMSAxOC44IDQzLjEgNDMuMnpNNDEwLjcgNDM2LjhsMC0zNjEuNmMwLTMtMi42LTUuOC01LjgtNS44bC05LjMgMC0xMTAuMyA3NC42LTYxLjMtNDkuOS02MS4yIDQ5LjktMTEwLjMtNzQuNy05LjMgMGMtMy4yIDAtNS44IDIuOC01LjggNS44bDAgMzYxLjdjMCAzIDIuNiA1LjggNS44IDUuOGwzNjEuNyAwYzMuMiAuMSA1LjgtMi43IDUuOC01Ljh6TTE1MC4yIDE4NmwwIDM3LTczLjUgMCAwLTM3IDczLjUgMHptMCA3NC40bDAgMzcuMy03My41IDAgMC0zNy4zIDczLjUgMHptMTEuMS0xNDcuM2w1NC00My43LTExOC41IDAgNjQuNSA0My43em0yMTAgNzIuOWwwIDM3LTE5NiAwIDAtMzcgMTk2IDB6bTAgNzQuNGwwIDM3LjMtMTk2IDAgMC0zNy4zIDE5NiAwek0yODYuNyAxMTMuMWw2NC41LTQzLjctMTE4LjQgMCA1My45IDQzLjd6TTM3MS4zIDMzNWwwIDM3LjMtOTkuNCAwIDAtMzcuMyA5OS40IDB6Il19LHJ1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGVha2VyLWRlY2siLGljb246WzUxMiw1MTIsW10sImY4M2MiLCJNMjEzLjkgMjk2TDEwMCAyOTZjLTI2LjUgMC01Mi0xMC41LTcwLjctMjkuM1MwIDIyMi41IDAgMTk2IDEwLjUgMTQ0IDI5LjMgMTI1LjMgNzMuNSA5NiAxMDAgOTZsMTMyLjggMGMxMC42IDAgMjAuOCA0LjIgMjguMyAxMS43czExLjcgMTcuNyAxMS43IDI4LjMtNC4yIDIwLjgtMTEuNyAyOC4zLTE3LjcgMTEuNy0yOC4zIDExLjdMOTggMTc2Yy0yNi41IDAtMjYuNCA0MCAwIDQwbDExMy44IDBjMjYuNSAwIDUyIDEwLjUgNzAuNyAyOS4zczI5LjMgNDQuMiAyOS4zIDcwLjctMTAuNSA1Mi0yOS4zIDcwLjctNDQuMiAyOS4zLTcwLjcgMjkuM0w0MCA0MTZjLTEwLjYgMC0yMC44LTQuMi0yOC4zLTExLjdTMCAzODYuNiAwIDM3NiA0LjIgMzU1LjIgMTEuNyAzNDcuNyAyOS40IDMzNiA0MCAzMzZsMTczLjkgMGMyNi41IDAgMjYuNS00MCAwLTQwek0yOTggNDE2YzEzLjUtOS4yIDI1LTIxIDMzLjgtMzQuN3MxNC43LTI5LjIgMTcuMy00NS4zbDY0LjYgMGMyLjYgMCA1LjItLjYgNy42LTEuNnM0LjYtMi41IDYuNC00LjQgMy4zLTQuMSA0LjItNi41IDEuNS01IDEuNC03LjZsMC0xMjBjMC0yLjYtLjUtNS4yLTEuNC03LjZzLTIuNC00LjYtNC4yLTYuNS00LTMuMy02LjQtNC40LTUtMS42LTcuNi0xLjZsLTExNy4yIDBjOS43LTExLjEgMTUtMjUuMyAxNS00MHMtNS4zLTI4LjktMTUtNDBsMTM2LjkgMGM0My40IDAgNzguNiAzNS44IDc4LjYgODBsMCAxNjBjMCA0NC4yLTM1LjIgODAtNzguNiA4MEwyOTggNDE2eiJdfSxzdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpY2tyIixpY29uOls0NDgsNTEyLFtdLCJmMTZlIiwiTTQwMCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNDQuNSAxOTJhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3ptMTU5IDBhNjMuNSA2My41IDAgMSAxIDAgMTI3IDYzLjUgNjMuNSAwIDEgMSAwLTEyN3oiXX0sbnVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLXZpc2EiLGljb246WzU3Niw1MTIsW10sImYxZjAiLCJNNDcwLjEgMjMxLjNzNy42IDM3LjIgOS4zIDQ1bC0zMy40IDBjMy4zLTguOSAxNi00My41IDE2LTQzLjUtLjIgLjMgMy4zLTkuMSA1LjMtMTQuOWwyLjggMTMuNHpNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTUyLjUgMzMxLjJsNjMuMi0xNTUuMi00Mi41IDAtMzkuMyAxMDYtNC4zLTIxLjUtMTQtNzEuNGMtMi4zLTkuOS05LjQtMTIuNy0xOC4yLTEzLjFsLTY0LjcgMC0uNyAzLjFjMTUuOCA0IDI5LjkgOS44IDQyLjIgMTcuMWwzNS44IDEzNSA0Mi41IDB6bTk0LjQgLjJsMjUuMi0xNTUuNC00MC4yIDAtMjUuMSAxNTUuNCA0MC4xIDB6bTEzOS45LTUwLjhjLjItMTcuNy0xMC42LTMxLjItMzMuNy00Mi4zLTE0LjEtNy4xLTIyLjctMTEuOS0yMi43LTE5LjIgLjItNi42IDcuMy0xMy40IDIzLjEtMTMuNCAxMy4xLS4zIDIyLjcgMi44IDI5LjkgNS45bDMuNiAxLjcgNS41LTMzLjZjLTcuOS0zLjEtMjAuNS02LjYtMzYtNi42LTM5LjcgMC02Ny42IDIxLjItNjcuOCA1MS40LS4zIDIyLjMgMjAgMzQuNyAzNS4yIDQyLjIgMTUuNSA3LjYgMjAuOCAxMi42IDIwLjggMTkuMy0uMiAxMC40LTEyLjYgMTUuMi0yNC4xIDE1LjItMTYgMC0yNC42LTIuNS0zNy43LTguM2wtNS4zLTIuNS01LjYgMzQuOWM5LjQgNC4zIDI2LjggOC4xIDQ0LjggOC4zIDQyLjIgLjEgNjkuNy0yMC44IDcwLTUzek01MjggMzMxLjRsLTMyLjQtMTU1LjQtMzEuMSAwYy05LjYgMC0xNi45IDIuOC0yMSAxMi45bC01OS43IDE0Mi41IDQyLjIgMHM2LjktMTkuMiA4LjQtMjMuM2w1MS42IDBjMS4yIDUuNSA0LjggMjMuMyA0LjggMjMuM2wzNy4yIDB6Il19LG91ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1cHdvcmsiLGljb246WzY0MCw1MTIsW10sImU2NDEiLCJNNDkzLjkgMjk1LjZjLTUwLjMgMC04My41LTM4LjktOTIuOC01My45IDExLjktOTUuMyA0Ni44LTEyNS40IDkyLjgtMTI1LjQgNDUuNSAwIDgwLjkgMzYuNCA4MC45IDg5LjdzLTM1LjQgODkuNy04MC45IDg5LjdsMC0uMXptMC0yMzcuOGMtODEuOSAwLTEyNy44IDUzLjQtMTQxIDEwOC40LTE0LjktMjgtMjUuOS02NS41LTM0LjUtMTAwLjNsLTExMy4yIDAgMCAxNDFjMCA1MS4xLTIzLjMgODktNjguOCA4OXMtNzEuNi0zNy44LTcxLjYtODlsLjUtMTQxLTY1LjMgMCAwIDE0MWMwIDQxLjEgMTMuMyA3OC40IDM3LjYgMTA1LjEgMjUgMjcuNSA1OS4yIDQxLjggOTguOCA0MS44IDc4LjggMCAxMzMuOC02MC40IDEzMy44LTE0Ni45bDAtOTQuOGM4LjIgMzEuMiAyNy44IDkxLjEgNjUuMyAxNDMuNmwtMzUgMTk5LjQgNjYuNCAwIDIzLjEtMTQxLjNjNy42IDYuMyAxNS43IDEyIDI0LjIgMTcgMjIuMiAxNCA0Ny43IDIxLjkgNzMuOSAyMi44IDAgMCA0IC4yIDYuMSAuMiA4MS4yIDAgMTQ1LjktNjIuOSAxNDUuOS0xNDcuOFM1NzUuMyA1Ny45IDQ5NC4xIDU3LjlsLS4yLS4xeiJdfSxsdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FrYW8tdGFsayIsaWNvbjpbNTc2LDUxMixbXSwiZTdkNyIsIk0yODggMi41YzE1OS4xIDAgMjg4IDEwMS43IDI4OCAyMjcuMSAwIDEyNS40LTEyOC45IDIyNy4xLTI4OCAyMjcuMS0xNy41IDAtMzQuNi0xLjItNTEuMi0zLjYtMTYuNiAxMS43LTExMi42IDc5LjEtMTIxLjcgODAuNCAwIDAtMy43IDEuNC02LjktLjRzLTIuNi02LjctMi42LTYuN0MxMDYuNiA1MTkuOCAxMzAuNiA0MzcuMiAxMzUgNDIxLjkgNTMuOSAzODEuOCAwIDMxMC42IDAgMjI5LjUgMCAxMDQuMSAxMjguOSAyLjUgMjg4IDIuNXpNODYuMiAxNjEuN2MtOSAwLTE2LjMgNy4zLTE2LjMgMTYuM3M3LjMgMTYuMyAxNi4zIDE2LjNsMjUuOSAwIDAgOTguN2MwIDguOCA3LjUgMTUuOSAxNi42IDE1LjlzMTYuNi03LjEgMTYuNi0xNS45bDAtOTguNyAyNS45IDBjOSAwIDE2LjMtNy4zIDE2LjMtMTYuM3MtNy4zLTE2LjMtMTYuMy0xNi4zbC04NS4xIDB6bTE0MC44IDBjLTEwLjggLjItMTkuMyA4LjQtMjIuMSAxNi40TDE2NS4yIDI4Mi43Yy01IDE1LjctLjYgMjEuNSAzLjkgMjMuNiAzLjIgMS41IDYuOSAyLjMgMTAuNiAyLjMgNi45IDAgMTIuMi0yLjggMTMuOC03LjNsOC4yLTIxLjYgNTAuNyAwIDguMiAyMS41YzEuNiA0LjUgNi45IDcuMyAxMy44IDcuMyAzLjcgMCA3LjMtLjggMTAuNi0yLjMgNC42LTIuMSA5LTcuOSAzLjktMjMuNkwyNDkuMiAxNzguMWMtMi44LTgtMTEuMy0xNi4yLTIyLjItMTYuNHptMTgwLjkgMGMtOS4yIDAtMTYuNiA3LjUtMTYuNiAxNi42bDAgMTEzLjdjMCA5LjIgNy41IDE2LjYgMTYuNiAxNi42czE2LjYtNy41IDE2LjYtMTYuNmwwLTM2LjIgNS44LTUuOCAzOC45IDUxLjZjMy4yIDQuMiA4IDYuNiAxMy4zIDYuNiAzLjYgMCA3LjEtMS4xIDEwLTMuMyAzLjUtMi43IDUuOC02LjYgNi40LTExcy0uNS04LjgtMy4yLTEyLjNsLTQwLjktNTQuMiAzNy45LTM3LjhjMi42LTIuNiAzLjktNi4yIDMuNy0xMC4xLS4yLTMuOS0yLTcuNi00LjktMTAuNS0zLjEtMy4xLTcuMy00LjktMTEuNC00LjktMy42IDAtNi44IDEuMy05LjIgMy43bC00Ni4zIDQ2LjQgMC0zNS43YzAtOS4yLTcuNS0xNi42LTE2LjYtMTYuNnptLTkxLjMgMGMtOS4zIDAtMTYuOSA3LjUtMTYuOSAxNi42bDAgMTEyLjhjMCA4LjQgNy4xIDE1LjIgMTUuOSAxNS4zbDUzLjMgMGM4LjggMCAxNS45LTYuOSAxNS45LTE1LjNzLTcuMi0xNS4yLTE1LjktMTUuMmwtMzUuMyAwIDAtOTcuNmMwLTkuMi03LjYtMTYuNi0xNy0xNi42em0tNzMgODguNmwtMzMuMiAwIDE2LjYtNDcuMSAxNi42IDQ3LjF6Il19LGN1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmbHV0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjk0IiwiTTQyOS41IDIzNi4zTDI5MS43IDM3NC4xIDQyOS41IDUxMiAyNzIgNTEyYy0zNi4xLTM2LjEtODIuMS04Mi4xLTEzNy45LTEzNy45bDEzNy45LTEzNy44IDE1Ny41IDB6TTI3MiAwTDE2IDI1NiA5NC44IDMzNC44IDQyOS41IDAgMjcyIDB6Il19LGR1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidWZmZXIiLGljb246WzQ0OCw1MTIsW10sImY4MzciLCJNNDI4LjIgMzgwLjdMMjMxLjcgNDc4LjVjLTIuMyAxLTQuOCAxLjUtNy4zIDEuNXMtNS0uNS03LjMtMS41TDIwLjUgMzgwLjdjLTQtMi00LTUuMyAwLTcuM0w2Ny42IDM1MGMyLjMtMSA0LjgtMS41IDcuMy0xLjVzNSAuNSA3LjMgMS41bDEzNC44IDY3YzIuMyAxIDQuOCAxLjUgNy4zIDEuNXM1LS41IDcuMy0xLjVsMTM0LjgtNjdjMi4zLTEgNC44LTEuNSA3LjMtMS41czUgLjUgNy4zIDEuNWw0Ny4xIDIzLjRjNCAyIDQgNS4yIDAgNy4yem0wLTEzNi41bC00Ny4xLTIzLjRjLTIuMy0xLTQuOC0xLjUtNy4zLTEuNXMtNSAuNS03LjMgMS41TDIzMS43IDI4Ny44Yy0yLjMgMS00LjggMS41LTcuMyAxLjVzLTUtLjUtNy4zLTEuNUw4Mi4zIDIyMC43Yy0yLjMtMS00LjgtMS41LTcuMy0xLjVzLTUgLjUtNy4zIDEuNUwyMC41IDI0NC4xYy00IDItNCA1LjMgMCA3LjNsMTk2LjUgOTcuOGMyLjMgMSA0LjggMS41IDcuMyAxLjVzNS0uNSA3LjMtMS41bDE5Ni41LTk3LjhjNC0yIDQtNS4zIDAtNy4zek0yMC41IDEzMC40TDIxNyAyMjAuN2M0LjcgMS45IDEwIDEuOSAxNC43IDBsMTk2LjUtOTAuM2M0LTEuOSA0LTQuOSAwLTYuN0wyMzEuNyAzMy40Yy00LjctMS45LTEwLTEuOS0xNC43IDBMMjAuNSAxMjMuN2MtNCAxLjgtNCA0LjkgMCA2Ljd6Il19LHB1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncmF0aXBheSIsaWNvbjpbNTEyLDUxMixbXSwiZjE4NCIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTM3NC4zIDIzMy43TDI1Ny43IDM5MS4zIDE0MS4zIDIzMy43Yy05LTEyLjMtMTkuNy01MiAxNC03NC4zIDI5LTE4LjcgNTYuNC00LjMgNzAuNyAxMi4zIDE2LjQgMTguNSA0OC4xIDE3LjQgNjMuNyAwIDE0LjMtMTYuNiA0MS43LTMxIDcwLjMtMTIuMyAzNCAyMi4zIDIzLjMgNjEuOSAxNC4yIDc0LjN6Il19LGh1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGF5IixpY29uOls2NDAsNTEyLFtdLCJlMDc5IiwiTTEwNS43IDIxNWwwIDQxLjIgNTcuMSAwYy0xLjIgNi42LTMuNiAxMi45LTcuMiAxOC41cy04LjQgMTAuNC0xMy45IDE0LjFjLTkuNSA2LjYtMjEuNyAxMC4zLTM2IDEwLjMtMjcuNiAwLTUwLjktMTguOS01OS4zLTQ0LjItNC40LTEzLjMtNC40LTI3LjcgMC00MSA4LjQtMjUuNSAzMS43LTQ0LjQgNTkuMy00NC40IDcuNS0uMSAxNC45IDEuMiAyMS45IDRzMTMuMyA2LjkgMTguNiAxMi4xTDE3Ni41IDE1NWMtMTkuMS0xOC4xLTQ0LjQtMjguMS03MC43LTI3LjgtMTkuNyAuMS0zOC45IDUuNy01NS42IDE2LjFzLTMwLjEgMjUuMy0zOC44IDQzQzMuOSAyMDEuMiAwIDIxNy43IDAgMjM0LjRzMy45IDMzLjIgMTEuMyA0OC4xbDAgLjJjOC43IDE3LjcgMjIuMSAzMi41IDM4LjggNDNzMzUuOSAxNiA1NS42IDE2YzI4LjUgMCA1Mi41LTkuNSA3MC0yNS45IDIwLTE4LjYgMzEuNC00Ni4yIDMxLjQtNzguOSAwLTcuMy0uNi0xNC42LTEuOC0yMS44bC05OS43IDB6bTM4OS40LTRjLTEwLjEtOS40LTIzLjktMTQuMS00MS40LTE0LjEtMjIuNSAwLTM5LjMgOC4zLTUwLjUgMjQuOUw0MjQuMSAyMzVjNy42LTExLjMgMTguMS0xNyAzMS4zLTE3IDguNCAwIDE2LjUgMy4yIDIyLjcgOC44IDMgMi42IDUuNSA1LjkgNy4xIDkuNnMyLjUgNy42IDIuNSAxMS43bDAgNS41Yy05LjEtNS4xLTIwLjYtNy44LTM0LjYtNy44LTE2LjQgMC0yOS42IDMuOS0zOS41IDExLjhzLTE0LjggMTguMy0xNC44IDMxLjZjLS4yIDUuOSAxIDExLjggMy40IDE3LjJzNiAxMC4yIDEwLjUgMTQuMWM5LjIgOC4zIDIxIDEyLjUgMzQuOCAxMi41IDE2LjMgMCAyOS4yLTcuMyAzOS0yMS45bDEgMCAwIDE3LjcgMjIuNiAwIDAtNzguN2MuMS0xNi42LTQuOS0yOS43LTE1LTM5em0tMTkuMiA4OS4zYy0zLjUgMy41LTcuNiA2LjMtMTIuMiA4LjJzLTkuNSAyLjktMTQuNCAyLjljLTYuNyAuMS0xMy4xLTIuMS0xOC4zLTYuMi0yLjQtMS44LTQuNC00LjItNS43LTYuOXMtMi01LjctMi04LjdjMC03IDMuMi0xMi44IDkuNS0xNy40czE0LjUtNyAyNC4xLTdjMTMuMi0uMiAyMy41IDIuOCAzMC44IDguOCAwIDEwLjEtNCAxOC45LTExLjcgMjYuNHptLTkzLjctMTQyYy01LjMtNS4zLTExLjYtOS41LTE4LjYtMTIuM3MtMTQuNC00LjItMjEuOS00bC02Mi43IDAgMCAxODYuNyAyMy42IDAgMC03NS42IDM5IDBjMTYgMCAyOS41LTUuNCA0MC41LTE1LjkgLjktLjkgMS44LTEuOCAyLjYtMi43IDkuNi0xMC41IDE0LjgtMjQuNCAxNC4zLTM4LjZzLTYuNi0yNy43LTE2LjktMzcuNmwwIDB6bS0xNi42IDYyLjJjLTMgMy4yLTYuNiA1LjctMTAuNiA3LjRzLTguNCAyLjUtMTIuNyAyLjNsLTM5LjYgMCAwLTY1LjIgMzkuNiAwYzguNSAwIDE2LjYgMy4zIDIyLjYgOS4yIDYuMSA2LjEgOS42IDE0LjMgOS44IDIzcy0zLjEgMTctOSAyMy4zbDAgMHpNNjE0LjMgMjAxbC0zNi41IDkxLjctLjUgMC0zNy40LTkxLjctMjUuNyAwIDUxLjggMTE5LjYtMjkuNCA2NC4zIDI0LjMgMCA3OS0xODMuOS0yNS43IDB6Il19LHV1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjE3OSIsIk0zMTkuMSAyNjguN2MtLjItMzYuNyAxNi40LTY0LjQgNTAtODQuOC0xOC44LTI2LjktNDcuMi00MS43LTg0LjctNDQuNi0zNS41LTIuOC03NC4zIDIwLjctODguNSAyMC43LTE1IDAtNDkuNC0xOS43LTc2LjQtMTkuNy01NS44IC45LTExNS4xIDQ0LjUtMTE1LjEgMTMzLjIgMCAyNi4yIDQuOCA1My4zIDE0LjQgODEuMiAxMi44IDM2LjcgNTkgMTI2LjcgMTA3LjIgMTI1LjIgMjUuMi0uNiA0My0xNy45IDc1LjgtMTcuOSAzMS44IDAgNDguMyAxNy45IDc2LjQgMTcuOSA0OC42LS43IDkwLjQtODIuNSAxMDIuNi0xMTkuMy02NS4yLTMwLjctNjEuNy05MC02MS43LTkxLjl6TTI2Mi41IDEwNC41YzI3LjMtMzIuNCAyNC44LTYxLjkgMjQtNzIuNS0yNC4xIDEuNC01MiAxNi40LTY3LjkgMzQuOS0xNy41IDE5LjgtMjcuOCA0NC4zLTI1LjYgNzEuOSAyNi4xIDIgNDkuOS0xMS40IDY5LjUtMzQuM3oiXX0sZnVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR1bWJsciIsaWNvbjpbMzIwLDUxMixbXSwiZjE3MyIsIk0zMDkuOSA0ODAuM2MtMTMuNiAxNC41LTUwIDMxLjctOTcuNCAzMS43LTEyMC44IDAtMTQ3LTg4LjgtMTQ3LTE0MC42bDAtMTQ0LTQ3LjUgMGMtNS41IDAtMTAtNC41LTEwLTEwbDAtNjhjMC03LjIgNC41LTEzLjYgMTEuMy0xNiA2Mi0yMS44IDgxLjUtNzYgODQuMy0xMTcuMSAuOC0xMSA2LjUtMTYuMyAxNi4xLTE2LjNsNzAuOSAwYzUuNSAwIDEwIDQuNSAxMCAxMGwwIDExNS4yIDgzIDBjNS41IDAgMTAgNC40IDEwIDkuOWwwIDgxLjdjMCA1LjUtNC41IDEwLTEwIDEwbC04My40IDAgMCAxMzMuMmMwIDM0LjIgMjMuNyA1My42IDY4IDM1LjggNC44LTEuOSA5LTMuMiAxMi43LTIuMiAzLjUgLjkgNS44IDMuNCA3LjQgNy45bDIyIDY0LjNjMS44IDUgMy4zIDEwLjYtLjQgMTQuNXoiXX0sbXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBob2VuaXgtc3F1YWRyb24iLGljb246WzUxMiw1MTIsW10sImY1MTEiLCJNOTYgNjMuNGM0Ni41LTM2LjEgMTA1LjYtNTYuMSAxNjQuNS01NC42IDI5LjYtLjQgNTkuMSA1LjQgODYuOSAxNS4zLTI0LjEtNC42LTQ5LTYuMy03My40LTIuNS00Mi45IDUuMy04MyAyNy4yLTExMS44IDU5LjIgNS43LTEgMTAuOC0zLjcgMTYtNS45IDE4LjEtNy45IDM3LjUtMTMuMyA1Ny4yLTE0LjggMTkuNy0yLjEgMzkuNi0uNCA1OS4zIDEuOS0xNC40IDIuOC0yOS4xIDQuNi00MyA5LjYtMzQuNCAxMS4xLTY1LjMgMzMuMi04Ni4zIDYyLjYtMTMuOCAxOS43LTIzLjYgNDIuOS0yNC43IDY3LjEtLjQgMTYuNSA1LjIgMzQuOCAxOS44IDQ0IDExLjIgNi44IDI0LjYgOS4yIDM3LjUgNi43IDE1LjQtMi41IDMwLjEtOC42IDQzLjYtMTYuMyAxMS41LTYuOCAyMi43LTE0LjYgMzItMjQuMyAzLjgtMy4yIDIuNS04LjQgMi42LTEyLjgtMi4xLS4zLTQuNC0xLjEtNi4zIC4zLTExLjQgNi4zLTIzLjQgMTEuNC0zNS44IDE1LjQtMjAgNi4yLTQyLjIgOC41LTYyLjEgLjggMTIuOCAxLjcgMjYuMSAuMyAzNy43LTUuNCAyMC4yLTkuNyAzNi44LTI1LjIgNTQuNC0zOC44IDI3LjctMjEuMyA1Ny41LTM5LjkgODguOS01NS4zIDI1LjctMTIgNTIuOS0yMi44IDgxLjYtMjQuMS0xNS42IDEzLjctMzIuMSAyNi41LTQ2LjggNDEuNC0xNC41IDE0LTI3LjUgMjkuNS00MC4xIDQ1LjItMy41IDQuNi05IDYuOS0xMy42IDEwLjItMjIuNCAxNS00MC4zIDM1LjgtNTEuOSA2MC4xLTkuMyAxOS43LTE0LjUgNDEuOS0xMS44IDYzLjYgMS45IDEzLjcgOC43IDI3LjYgMjAuOSAzNC45IDEyLjkgOCAyOSA4LjEgNDMuNSA1LjEgMzIuOC03LjQgNjEuNC0yOC45IDgxLTU1LjggMjAuNC0yNy41IDMwLjUtNjIuMiAyOS4yLTk2LjMtLjUtNy41LTEuNi0xNS0xLjctMjIuNSA4IDE5LjUgMTQuOCAzOS43IDE2LjYgNjAuOCAyIDE0LjMgLjcgMjguOC0xLjYgNDIuOS0xLjkgMTEtNS43IDIxLjUtNy44IDMyLjQgMjAuNC0yMi45IDM0LTUwLjkgMzkuMy04MS4xIDUuNi0zNS41IC43LTcxLjktMTQuMi0xMDQuNiAyMC44IDMyIDMyLjMgNjkuNiAzNS43IDEwNy41IC41IDEyLjcgLjUgMjUuNSAwIDM4LjItMi44IDM0LjMtMTIuOSA2Ny42LTI5LjYgOTcuOC0yNi4xIDQ3LjMtNjggODUuNi0xMTcuMiAxMDgtNzguMyAzNi4yLTE3NC43IDMxLjMtMjQ4LTE0LjctMzktMjMuOC03MC42LTU4LTkxLjQtOTguNy0xNC43LTI4LjktMjMuMy02MC41LTI1LjQtOTIuOWwwLTMxLjNDMy45IDE3MiA0MC45IDEwNS44IDk2IDYzLjR6bTIyMiA4MC4zYzUuNS0uOSAxMC44LTIuNCAxNi00LjUgNS0xLjggOS4yLTUuOSAxMC4zLTExLjItOSA1LTE4IDkuOS0yNi4zIDE1Ljd6Il19LGd1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjZW50ZXJjb2RlIixpY29uOls1MTIsNTEyLFtdLCJmMzgwIiwiTTIwMS44IDI1NC44YTY0LjEgNjQuMSAwIDEgMSAxMjcuNCAxMy44IDY0LjEgNjQuMSAwIDEgMSAtMTI3LjQtMTMuOHptNDEuNiAyNDguOUM5Ni43IDQ5Ni04LjIgMzY1LjUgMTAuMSAyMjQuMyAyMS4zIDEzNy43IDc1LjkgNjcuNCAxNDkuMiAzMi4zIDMxMC4yLTQ0LjggNDk4LjkgNjkuNyA1MDMuOSAyNDguOSA1MDggMzk1LjkgMzg1LjUgNTExLjEgMjQzLjQgNTAzLjd6bTE3OS45LTE4MGMyNy45LTExOC0xNjAuNS0yMDUuOS0yMzcuMi0yMzQuMi01Ny41IDU2LjMtNjkuMSAxODguNi0zMy44IDM0NC40IDY4LjggMTUuOCAxNjkuMS0yNi40IDI3MS0xMTAuMnoiXX0sYnVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlYmlhbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTYwYiIsIk0zODAuNCAyNDUuNmMzLTcuNiA1LjUtMTQgNS4yLTI0LjRsLTQuMyA5YzQuNC0xMy4yIDQtMjcuMSAzLjYtNDAuNC0uMi02LS4zLTExLjggMC0xNy40bC0xLjgtLjVjLTEuNS00NS4yLTQwLjYtOTMuMS03NS4zLTEwOS40LTMwLTEzLjgtNzYuMS0xNi4yLTk3LjMtNS44IDEuMy0xLjEgNC4yLTIgNi44LTIuN2wuMy0uMWMzLjMtMSA2LTEuNyA0LTIuOS0xOS4yIDEuOS0yNC45IDUuNS0zMS4xIDkuNGwtLjEgMGMtNC42IDIuOS05LjUgNi0yMC4zIDguNy0zLjUgMy40IDEuNyAyIDUuOCAuOXM3LjItMS45LS4xIDIuNGMtMy41IDEtNi42IDEuMy05LjYgMS42bC0uMSAwYy04LjMgLjgtMTUuOCAxLjYtMzAuNyAxNyAuOCAxLjMgMy40LS4yIDUuMy0xLjNsLjEtLjFjMi4zLTEuNCAzLjQtMi0xLjcgNC40LTE5LjEtMi40LTYwLjMgNDMuNy02OS4xIDU5bDQuNiAuOGMtMy4yIDgtNi44IDE0LjgtMTAgMjAuOC00LjMgOC4xLTcuOSAxNC45LTguNyAyMS4zLS4zIDUuMS0xIDExLTEuNyAxNy4zLS4xIDEtLjIgMi0uMyAzbC0uMSAuNmMtMyAyNy4zLTYuNyA2MC44IDMuOSA3M2wtMS4zIDEzYy42IDEuMiAxLjEgMi4zIDEuNiAzLjUgLjIgLjQgLjQgLjggLjUgMS4xIDEgMi4xIDIgNC4yIDMuMyA2LjJsLTMgLjJjNyAyMi4xIDEwLjggMjIuNSAxNS4xIDIyLjkgNC40IC40IDkuMyAuOSAxOC43IDI0LjItMi43LS45LTUuNS0xLjktOS40LTcuMi0uNSA0LjEgNS44IDE2LjMgMTMuMSAyNS44bC0zLjEgMy42YzIuMSAzLjcgNC44IDYuMiA3LjYgOC44IDEgLjkgMi4xIDEuOSAzLjEgMi45LTExLjktNi41IDMuMiAxMy43IDExLjkgMjUuMiAuOCAxLjEgMS41IDIgMi4yIDIuOSAxLjQgMS45IDIuNSAzLjQgMi45IDQuMWwyLjQtNC4yYy0uMyA2LjEgNC4zIDEzLjkgMTMuMSAyNC43bDcuMy0uM2MzIDYgMTQgMTYuNyAyMC43IDE3LjJsLTQuNCA1LjhjOC4xIDIuNiAxMC4zIDQuMyAxMi43IDYuMiAyLjYgMi4xIDUuNCA0LjMgMTYuMSA4LjFsLTQuMi03LjRjMy41IDMgNi4yIDUuOSA4LjggOC43bC4xIC4xYzUuMiA1LjYgOS45IDEwLjYgMTkuNyAxNS4zIDEwLjcgMy43IDE2LjYgNC43IDIyLjcgNS44IC4zIDAgLjYgLjEgLjkgLjEgNS40IC44IDExLjIgMS44IDIwLjggNC41LTEuMS0uMS0yLjItLjEtMy4zLS4xLTIuMy0uMS00LjctLjEtNy0uMS0xNC40LS4yLTI5LjItLjQtNDIuNy01LjItOTYuNi0yNS43LTE4NC45LTEzOS0xNzguNC0yNTUuNi0uNi05LjktLjMtMjAuOSAwLTMwLjcgLjQtMTMuNSAuNy0yNC44LTEuNi0yOC4zbDEtMy4xYzUuMy0xNy40IDExLjctMzguMiAyMy44LTYyLjhsLS4xLS4yIDAtLjFjLjQgLjQgMy40IDMuNCA4LjgtNS44IC44LTEuOCAxLjYtMy43IDIuNC01LjYgLjUtMS4xIC45LTIuMiAxLjQtMy4yIDIuNS02LjEgNS4xLTEyLjMgOC40LTE3LjlsMi42LS42YzEuNy0xMC4xIDE3LTIzLjggMjkuOC0zNS4ybDEuMS0xYzUuNy01LjEgMTAuNy05LjcgMTMuNi0xMy4xbC43IDQuNGMxNy0xNS45IDQ0LjYtMjcuNSA2NS42LTM2LjRsLjUtLjJjNC44LTIgOS4zLTMuOSAxMy4zLTUuNy0zLjQgMy44IDIuMiAyLjcgMTAgMSA0LjgtMSAxMC40LTIuMSAxNS4zLTIuNGwtMy45IDIuMWMtMi43IDEuNC01LjQgMi44LTggNC42IDguMS0yIDExLjctMS40IDE1LjctLjhsLjMgMGMzLjUgLjYgNy4zIDEuMiAxNC42IC4yLTUuNiAuOC0xMi4zIDMtMTEuMiAzLjggNy45IC45IDEyLjgtLjEgMTcuMi0xbC4yIDBjNS41LTEuMSAxMC4zLTIgMTkuMyAuOWwtMS00LjhjNy4zIDIuNiAxMi43IDQuMyAxNy41IDUuOGwuNSAuMWMxMCAzIDE3LjYgNS4zIDM0LjIgMTQuMSAzLjIgLjIgNS4zLS41IDcuNC0xLjJsLjEgMGMzLjYtMS4xIDctMi4xIDE1LjIgMS4yIC4zIC41IC41IDEgLjcgMS40IC4xIC4yIC4yIC41IC4zIC43bDAgLjFjMSAyLjYgMS44IDQuNiAxNC42IDEyLjEgMS43LS43LTIuNy00LjctNi40LTguMmwtLjEtLjFjLS4yLS4xLS4zLS4zLS41LS40IDMyLjIgMTcuMyA2Ny4zIDU0LjEgNzggOTMuNS02LTExLjEtNS4yLTUuNS00LjMgLjUgLjYgNCAxLjIgOC4xLS4yIDcuNSA0LjUgMTIuMSA4LjEgMjQuNSAxMC40IDM3LjRsLS44LTIuOS0uMS0uM2MtMy4zLTExLjktOS42LTM0LjMtMTkuOS00OS4zLS40IDQuMy0yLjggMy45LTUuMiAzLjVsLS4xIDBjLTMuMy0uNi02LjItMS4xLTEuOSAxMi42IDIuNiAzLjggMy4xIDIuNCAzLjUgMS4xIC41LTEuNSAuOS0yLjcgNC43IDUuMiAuMSA0LjEgMSA4LjIgMi4xIDEyLjdsLjEgLjZjLjEgLjMgLjEgLjUgLjIgLjhsLjEgLjZjLjYgMi42IDEuMyA1LjQgMS44IDguNC0xLjEtLjItMi4zLTIuMi0zLjQtNC4yLTEuNC0yLjQtMi44LTQuNy0zLjctMy4yIDIuNCAxMS41IDYuNSAxNy40IDggMTguMy0uMyAuNi0uNiAuNy0xLjEgLjctLjggMC0xLjggLjEtMS45IDUuMyAuNyAxMy43IDMuMyAxMi41IDUuMyAxMS42IC42LS4zIDEuMi0uNiAxLjctLjQtLjYgMi41LTEuNiA1LjEtMi43IDcuOS0yLjggNy4xLTYgMTUuNC0zLjQgMjYuMS0uOC0zLTItNi0zLjEtOC45bC0uMS0uNGMtLjItLjUtLjQtMS0uNi0xLjUtLjMtLjgtLjYtMS42LS45LTIuMy0uNiA0LjQtLjMgNy43LS4xIDEwLjZsMCAuN2MuNCA1LjMgLjcgMTAtMyAxOS45IDQuMy0xNC4yIDMuOC0yNi45LS4yLTIwLjggMSAxMC45LTMuNyAyMC40LTggMjguOWwtLjEgLjJjLTMuNiA3LjEtNi44IDEzLjUtNS45IDE5LjNsLTUuMi03LjFjLTcuNSAxMC45LTcgMTMuMy02LjUgMTUuNWwwIC4xYy41IDEuOSAxIDMuOC0zLjQgMTAuOCAxLjctMi45IDEuMy0zLjYgMS00LjItLjQtLjgtLjctMS41IDEuNy01LjEtMS42IC4xLTUuNSAzLjktMTAuMSA4LjUtMy45IDMuOS04LjUgOC40LTEyLjggMTEuOC0zNy41IDMwLjEtODIuMyAzNC0xMjUuNiAxNy44IC4yLTEtLjItMi4xLTMuMS00LjEtMzYuOC0yOC4yLTU4LjUtNTIuMS01MC45LTEwNy41IDIuMS0xLjYgMy42LTUuOCA1LjMtMTAuOGwuMi0uNCAuMS0uMyAwLS4xYzIuOS04LjQgNi41LTE4LjggMTQuMy0yMy44IDcuOC0xNy4zIDMxLjMtMzMuMyA1Ni40LTMzLjcgMjUuNi0xLjQgNDcuMiAxMy43IDU4LjEgMjcuOS0xOS44LTE4LjQtNTIuMS0yNC03OS43LTEwLjQtMjguMiAxMi43LTQ1IDQzLjgtNDIuNSA3NC43IC4zLS40IC42LS42IC45LS44bC4yLS4yYy42LS41IDEuMS0uOSAxLjQtMy4zLS45IDYwLjIgNjQuOCAxMDQuMyAxMTIuMSA4MmwuNiAxLjNjMTIuNy0zLjUgMTUuOS02LjUgMjAuMy0xMC43bC4xLS4xYzIuMi0yLjEgNC43LTQuNSA4LjktNy4zLS4zIC43LTEuMyAxLjctMi40IDIuNy0yLjIgMi4xLTQuNiA0LjUtMS42IDQuNiA1LTEuMyAxOC41LTEzLjQgMjguNS0yMi4zIC42LS41IDEuMi0xIDEuNy0xLjUgMS41LTEuMyAyLjgtMi41IDQtMy42bC4zLS4zYzEuOS00LjIgMS42LTUuNiAxLjMtN2wwLS4xYy0uNC0xLjYtLjgtMy4zIDIuNC05LjZsNy4zLTMuN2MuOC0yLjEgMS41LTQuMSAyLjItNiAuMi0uNiAuNS0xLjIgLjctMS44bC0uNC0uMi0uMS0uMXpNMjQ4IDMzNC4xYy02LTMtMTMuNy04LjktMTQuOC0xMS40bC0uNCAuM2MtLjMgLjYtLjUgMS4zLS4yIDIuMi0xMi4yLTUuNy0yMy40LTE0LjMtMzIuNi0yNC45IDQuOSA3LjEgMTAuMSAxNC4xIDE3IDE5LjUtNi45LTIuMy0xNS4xLTExLjgtMjEuNi0xOS4zbC0uMS0uMWMtNC4zLTUtNy45LTkuMS05LjctOS41IDE5LjggMzUuNSA4MC41IDYyLjMgMTEyLjMgNDktMTQuNyAuNS0zMy40IC4zLTQ5LjktNS44em03OS4zLTExOS43bC0uMS0uMmMtLjUtMS41LTEuMS0zLjEtMS43LTMuNCAxLjQtNS44IDUuNC0xMC43IDQuNCA0LjYtMSAzLjgtMS44IDEuNS0yLjYtMXptLTQuMiAyMi4yYy0xLjMgNy45LTUgMTUuNS0xMC4xIDIyLjUgLjItMi0xLjItMi40LTIuNi0yLjgtMi45LS44LTUuOS0xLjYgNS42LTE2LjEtLjUgMS45LTIuMSA0LjYtMy43IDcuM2wtLjMgLjRjLTMuNiA1LjktNi43IDExIDQgNC4zbDEtMS44YzIuNi00LjUgNS04LjggNi0xMy44bC4xIDB6bS01NS42IDMzLjljNy4xIC42IDE0LjEgLjYgMjEtMS4xLTIuNSAyLjQtNS4yIDQuOC04LjMgNy4yLTExLjEtMS43LTIxLjItNi0xMi43LTYuMXptLTkyLjYgMTEuNmMzLjYgNy4xIDYuNCAxMS41IDkgMTUuN2wuMSAuMmMyLjMgMy43IDQuNCA3LjEgNi44IDExLjctNS4xLTQuMi04LjctOS41LTEyLjUtMTVsLS4zLS41Yy0xLjQtMi4xLTIuOC00LjItNC40LTYuMmwxLjItNS45IC4xIDB6bTcuNS05LjZjMS42IDMuMyAzLjIgNi40IDUuNyA5LjFsMi42IDcuNy0xLjMtMi4xYy0zLjItNS4zLTYuMy0xMC42LTgtMTYuN2wxIDJ6bTIzOC45LTQxLjZjLTIuMyAxNy40LTcuNyAzNC42LTE2IDUwLjMgNy42LTE0LjkgMTIuNS0zMC45IDE0LjgtNDcuMmwxLjItMy4xek0zNS44IDExMC42Yy40IC44IDEuNCAuNSAyLjMgLjMgMS45LS41IDMuNi0uOS0uMSA3LjYtLjUgLjMtMSAuNy0xLjUgMS0xLjQgLjktMi44IDEuOS0zLjkgMyAxLjktMy44IDMuNS03LjQgMy4yLTExLjl6TTI1LjUgMTUyLjNjLS43IDMuNy0xLjUgNy45LTMuNCAxMy45IC4yLTEuOSAwLTMuNS0uMi00LjlsMC0uMWMtLjQtMy40LS43LTYuMyA0LjMtMTIuOC0uMyAxLjItLjUgMi41LS43IDMuOGwwIC4xeiJdfSx2dWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFzdG9kb24iLGljb246WzQ0OCw1MTIsW10sImY0ZjYiLCJNNDMzIDE3OS4xYzAtOTcuMi02My43LTEyNS43LTYzLjctMTI1LjctNjIuNS0yOC43LTIyOC42LTI4LjQtMjkwLjUgMCAwIDAtNjMuNyAyOC41LTYzLjcgMTI1LjcgMCAxMTUuNy02LjYgMjU5LjQgMTA1LjYgMjg5LjEgNDAuNSAxMC43IDc1LjMgMTMgMTAzLjMgMTEuNCA1MC44LTIuOCA3OS4zLTE4LjEgNzkuMy0xOC4xbC0xLjctMzYuOXMtMzYuMyAxMS40LTc3LjEgMTAuMWMtNDAuNC0xLjQtODMtNC40LTg5LjYtNTQtLjYtNC42LS45LTkuMy0uOS0xMy45IDg1LjYgMjAuOSAxNTguNyA5LjEgMTc4LjcgNi43IDU2LjEtNi43IDEwNS00MS4zIDExMS4yLTcyLjkgOS44LTQ5LjggOS0xMjEuNSA5LTEyMS41ek0zNTcuOSAzMDQuM2wtNDYuNiAwIDAtMTE0LjJjMC00OS43LTY0LTUxLjYtNjQgNi45bDAgNjIuNS00Ni4zIDAgMC02Mi41YzAtNTguNS02NC01Ni42LTY0LTYuOWwwIDExNC4yLTQ2LjcgMGMwLTEyMi4xLTUuMi0xNDcuOSAxOC40LTE3NSAyNS45LTI4LjkgNzkuOC0zMC44IDEwMy44IDYuMWwxMS42IDE5LjUgMTEuNi0xOS41YzI0LjEtMzcuMSA3OC4xLTM0LjggMTAzLjgtNi4xIDIzLjcgMjcuMyAxOC40IDUzIDE4LjQgMTc1bDAgMHoiXX0seXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNrZXRjaCIsaWNvbjpbNTEyLDUxMixbXSwiZjdjNiIsIk0yNy44IDE2Mi4ybC0xOC41IDI0LjkgOTAuNSAwIDYuOS0xMzAuNy03OC45IDEwNS44ek0zOTYuNiA0NS43TDI2OCAzMiA0MDMuNyAxNzkuMiAzOTYuNiA0NS43ek0xMTIuNSAyMTguM2wtMTEuMi0yMi05MS4xIDAgMjI0LjkgMjYxLjctMTIyLjYtMjM5Ljd6bTItMzEuMmwyODQgMEMzNDAuNiAxMjQuMyAyOTMuMyA3Mi45IDI1Ni42IDMzTDExNC41IDE4Ny4xem0yOTcuMyA5LjFsLTEzMy45IDI2MS44IDIyNC44LTI2MS43LTkwLjkgMCAwLS4xek00MTUuNyA2OWwtOS40LTEyLjYgLjkgMTcuMyA2LjEgMTEzLjQgOTAuMyAwLTg3LjktMTE4LjF6TTExMy44IDkzLjVMMTA5LjIgMTc5LjEgMjQ1IDMyIDExNi40IDQ1LjcgMTEzLjggOTMuNXpNNDAxLjUgMTk2LjJsLTI5MCAwYzE4LjIgMzUuNiA2Ni42IDEzMC4yIDE0NS4xIDI4My44TDQwMS41IDE5Ni4yeiJdfSx4dWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2ViLWF3ZXNvbWUiLGljb246WzY0MCw1MTIsW10sImU2ODIiLCJNMzcyLjIgNTJjMCAyMC45LTEyLjQgMzktMzAuMiA0Ny4yTDQ0OCAxOTIgNTUyLjQgMTcxLjFjLTUuMy03LjctOC40LTE3LjEtOC40LTI3LjEgMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDI2LTIwLjYgNDcuMS00Ni40IDQ4TDQ4MSA0NDIuM2MtMTAuMyAyMy0zMy4yIDM3LjctNTguNCAzNy43bC0yMDUuMiAwYy0yNS4yIDAtNDgtMTQuOC01OC40LTM3LjdMNDYuNCAxOTJDMjAuNiAxOTEuMSAwIDE3MCAwIDE0NCAwIDExNy41IDIxLjUgOTYgNDggOTZzNDggMjEuNSA0OCA0OGMwIDEwLjEtMy4xIDE5LjQtOC40IDI3LjFMMTkyIDE5MiAyOTguMSA5OS4xYy0xNy43LTguMy0zMC0yNi4zLTMwLTQ3LjEgMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwuMSAweiJdfSx3dWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FzcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQxZSIsIk0zMDEuOCAzNzguOWwwIDB6bTI0OS4xLTg3Yy0yMC4xIDAtNDAgNC42LTU4IDEzLjUtNS45LTExLjktMTItMjIuMy0xMy0zMC4xLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMyA1LjljLTIuMyA2LjItNC4xIDEyLjYtNS4zIDE5LjEtMi4zIDExLjctMjUuOCA1My41LTM5LjEgNzUuMy00LjQtOC41LTguMS0xNi04LjktMjItMS4yLTkuMS0yLjUtMTQuNS0xLjEtMjUuM3M3LjctMjYuMSA3LjYtMjcuMi0xLjQtNi42LTE0LjMtNi43LTI0IDIuNS0yNS4zIDUuOS0yLjcgMTEuNC01LjMgMTkuMS0zMy45IDc3LjMtNDIuMSA5NS40Yy00LjIgOS4yLTcuOCAxNi42LTEwLjQgMjEuNi0uNCAuOC0uNyAxLjMtLjkgMS43IC4zLS41IC41LTEgLjUtLjgtMi4yIDQuMy0zLjUgNi43LTMuNSA2LjdsMCAuMWMtMS43IDMuMi0zLjYgNi4xLTQuNSA2LjEtLjYgMC0xLjktOC40IC4zLTE5LjkgNC43LTI0LjIgMTUuOC02MS44IDE1LjctNjMuMS0uMS0uNyAyLjEtNy4yLTcuMy0xMC43LTkuMS0zLjMtMTIuNCAyLjItMTMuMiAyLjJzLTEuNCAyLTEuNCAyIDEwLjEtNDIuNC0xOS40LTQyLjRjLTE4LjQgMC00NCAyMC4yLTU2LjYgMzguNS03LjkgNC4zLTI1IDEzLjYtNDMgMjMuNS02LjkgMy44LTE0IDcuNy0yMC43IDExLjQtLjUtLjUtLjktMS0xLjQtMS41LTM1LjgtMzguMi0xMDEuOS02NS4yLTk5LjEtMTE2LjUgMS0xOC43IDcuNS02Ny44IDEyNy4xLTEyNy40IDk4LTQ4LjggMTc2LjMtMzUuNCAxODkuOC01LjYgMTkuNCA0Mi41LTQxLjkgMTIxLjYtMTQzLjcgMTMzLTM4LjggNC4zLTU5LjItMTAuNy02NC4zLTE2LjMtNS4zLTUuOS02LjEtNi4yLTguMS01LjEtMy4zIDEuOC0xLjIgNyAwIDEwLjEgMyA3LjkgMTUuNSAyMS45IDM2LjggMjguOSAxOC43IDYuMSA2NC4yIDkuNSAxMTkuMi0xMS44IDYxLjgtMjMuOCAxMDkuOS05MC4xIDk1LjgtMTQ1LjYtMTQuNC01Ni40LTEwNy45LTc0LjktMTk2LjMtNDMuNS01Mi43IDE4LjctMTA5LjcgNDguMS0xNTAuNyA4Ni40LTQ4LjcgNDUuNi01Ni41IDg1LjMtNTMuMyAxMDEuOSAxMS40IDU4LjkgOTIuNiA5Ny4zIDEyNS4xIDEyNS43LTEuNiAuOS0zLjEgMS43LTQuNSAyLjUtMTYuMyA4LjEtNzguMiA0MC41LTkzLjcgNzQuNy0xNy41IDM4LjggMi45IDY2LjYgMTYuMyA3MC40IDQxLjggMTEuNiA4NC42LTkuMyAxMDcuNi00My42czIwLjItNzkuMSA5LjYtOTkuNWMtLjEtLjMtLjMtLjUtLjQtLjggNC4yLTIuNSA4LjUtNSAxMi44LTcuNSA4LjMtNC45IDE2LjQtOS40IDIzLjUtMTMuMy00IDEwLjgtNi45IDIzLjgtOC40IDQyLjYtMS44IDIyIDcuMyA1MC41IDE5LjEgNjEuNyA1LjIgNC45IDExLjUgNSAxNS40IDUgMTMuOCAwIDIwLTExLjQgMjYuOS0yNSA4LjUtMTYuNiAxNi0zNS45IDE2LTM1LjlzLTkuNCA1Mi4yIDE2LjMgNTIuMmM5LjQgMCAxOC44LTEyLjEgMjMtMTguM2wwIC4xcy4yLS40IC43LTEuMmMxLTEuNSAxLjUtMi40IDEuNS0yLjRsMC0uM2MzLjgtNi41IDEyLjEtMjEuNCAyNC42LTQ2IDE2LjItMzEuOCAzMS43LTcxLjUgMzEuNy03MS41IDEuNSA4LjcgMy42IDE3LjMgNi4yIDI1LjggMi44IDkuNSA4LjcgMTkuOSAxMy40IDMwLTMuOCA1LjItNi4xIDguMi02LjEgOC4yIDAgLjEgMCAuMSAuMSAuMi0zIDQtNi40IDguMy05LjkgMTIuNS0xMi44IDE1LjItMjggMzIuNi0zMCAzNy42LTIuNCA1LjktMS44IDEwLjMgMi44IDEzLjcgMy40IDIuNiA5LjQgMyAxNS43IDIuNSAxMS41LS44IDE5LjYtMy42IDIzLjUtNS40IDcuMi0yLjYgMTQtNi4xIDIwLjItMTAuNiAxMi41LTkuMiAyMC4xLTIyLjQgMTkuNC0zOS44LS40LTkuNi0zLjUtMTkuMi03LjMtMjguMiAxLjEtMS42IDIuMy0zLjMgMy40LTUgMTkuOC0yOC45IDM1LjEtNjAuNiAzNS4xLTYwLjYgMS41IDguNyAzLjYgMTcuMyA2LjIgMjUuOCAyLjQgOC4xIDcuMSAxNyAxMS40IDI1LjctMTguNiAxNS4xLTMwLjEgMzIuNi0zNC4xIDQ0LjEtNy40IDIxLjMtMS42IDMwLjkgOS4zIDMzLjEgNC45IDEgMTEuOS0xLjMgMTcuMS0zLjUgNy43LTIuNiAxNS02LjMgMjEuNi0xMS4xIDEyLjUtOS4yIDI0LjYtMjIuMSAyMy44LTM5LjYtLjMtNy45LTIuNS0xNS44LTUuNC0yMy40IDE1LjctNi42IDM2LjEtMTAuMiA2Mi4xLTcuMiA1NS43IDYuNSA2Ni42IDQxLjMgNjQuNSA1NS44cy0xMy44IDIyLjYtMTcuNyAyNS01LjEgMy4zLTQuOCA1LjFjLjUgMi42IDIuMyAyLjUgNS42IDEuOSA0LjYtLjggMjkuMi0xMS44IDMwLjMtMzguNyAxLjYtMzQtMzEuMS03MS40LTg5LTcxLjFsMCAwek0xMjEuOCA0MzYuNmMtMTguNCAyMC4xLTQ0LjIgMjcuNy01NS4zIDIxLjMtMTEuOS02LjktNy4yLTM2LjUgMTUuNS01Ny45IDEzLjgtMTMgMzEuNi0yNSA0My40LTMyLjQgMi43LTEuNiA2LjYtNCAxMS40LTYuOSAuOC0uNSAxLjItLjcgMS4yLS43IC45LS42IDEuOS0xLjEgMi45LTEuNyA4LjMgMzAuNCAuMyA1Ny4yLTE5LjEgNzguM2wwIDB6bTEzNC40LTkxLjRjLTYuNCAxNS43LTE5LjkgNTUuNy0yOC4xIDUzLjYtNy0xLjgtMTEuMy0zMi4zLTEuNC02Mi4zIDUtMTUuMSAxNS42LTMzLjEgMjEuOS00MC4xIDEwLjEtMTEuMyAyMS4yLTE0LjkgMjMuOC0xMC40IDMuNSA1LjktMTIuMiA0OS40LTE2LjIgNTkuMnptMTExIDUzYy0yLjcgMS40LTUuMiAyLjMtNi40IDEuNi0uOS0uNSAxLjEtMi40IDEuMS0yLjRzMTMuOS0xNC45IDE5LjQtMjEuN2MzLjItNCA2LjktOC43IDEwLjktMTMuOSAwIC41IC4xIDEgLjEgMS42LS4xIDE3LjktMTcuMyAzMC0yNS4xIDM0LjhsMCAwem04NS42LTE5LjVjLTItMS40LTEuNy02LjEgNS0yMC43IDIuNi01LjcgOC42LTE1LjMgMTktMjQuNSAxLjIgMy41IDEuOCA3LjEgMS45IDEwLjgtLjEgMjIuNS0xNi4yIDMwLjktMjUuOSAzNC40bDAgMHoiXX0sTXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRocmVlbWEiLGljb246WzM4NCw1MTIsW10sImU4NWYiLCJNODcuNCA0NDUuMWMxOC41IDAgMzMuNSAxNSAzMy41IDMzLjRTMTA1LjkgNTEyIDg3LjQgNTEyIDU0IDQ5NyA1NCA0NzguNSA2OSA0NDUuMSA4Ny40IDQ0NS4xem0xMDkuMiAwYzE4LjUgMCAzMy41IDE1IDMzLjUgMzMuNHMtMTUgMzMuNS0zMy41IDMzLjUtMzMuNC0xNS0zMy40LTMzLjUgMTUtMzMuNCAzMy40LTMzLjR6bTEwOS4zIDBjMTguNSAwIDMzLjUgMTUgMzMuNSAzMy40cy0xNSAzMy41LTMzLjUgMzMuNS0zMy41LTE1LTMzLjUtMzMuNSAxNS0zMy40IDMzLjUtMzMuNHpNMTkyLjMgLjNjMTA5LjggMCAxOTkuMiA4OS4zIDE5OS4yIDE5OS4xUzMwMi4yIDM5OC41IDE5Mi40IDM5OC41Yy00MC41IDAtNzguMS0xMi4xLTEwOS42LTMyLjlsLTc2LjUgMjQuNSAyNC44LTc0QzcuMyAyODMuNC02LjggMjQzLTYuOCAxOTkuNC02LjggODkuNyA4Mi41IC4zIDE5Mi4zIC4zem0uMSA5My43Yy0zMS42IDAtNTcuMyAyNS44LTU3LjMgNTcuM2wwIDI2LjctMS44IDBjLTEwIDAtMTggOC0xOCAxOGwwIDcyLjNjMCAxMCA4IDE4IDE4IDE4bDExOC4xIDBjMTAgMCAxOC04IDE4LTE4bC4xIDAgMC03Mi4zYzAtMTAtOC4xLTE4LTE4LTE4bC0xLjggMCAwLTI2LjdjMC0zMS42LTI1LjgtNTcuMy01Ny4zLTU3LjN6bS0uMSAyMy41YzE4LjYgMCAzMy44IDE1LjEgMzMuOCAzMy44bDAgMjYuNy02Ny42IDAgMC0yNi43YzAtMTguNiAxNS4xLTMzLjggMzMuOC0zMy44eiJdfSxrRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtd2hhdHNhcHAiLGljb246WzQ0OCw1MTIsWyJ3aGF0c2FwcC1zcXVhcmUiXSwiZjQwYyIsIk05Mi4xIDI1NC42YzAgMjQuOSA3IDQ5LjIgMjAuMiA3MC4xbDMuMSA1LTEzLjMgNDguNiA0OS45LTEzLjEgNC44IDIuOWMyMC4yIDEyIDQzLjQgMTguNCA2Ny4xIDE4LjRsLjEgMGM3Mi42IDAgMTMzLjMtNTkuMSAxMzMuMy0xMzEuOCAwLTM1LjItMTUuMi02OC4zLTQwLjEtOTMuMi0yNS0yNS01OC0zOC43LTkzLjItMzguNy03Mi43IDAtMTMxLjggNTkuMS0xMzEuOSAxMzEuOHpNMjc0LjggMzMwYy0xMi42IDEuOS0yMi40IC45LTQ3LjUtOS45LTM2LjgtMTUuOS02MS44LTUxLjUtNjYuOS01OC43LS40LS42LS43LS45LS44LTEuMS0yLTIuNi0xNi4yLTIxLjUtMTYuMi00MSAwLTE4LjQgOS0yNy45IDEzLjItMzIuMyAuMy0uMyAuNS0uNSAuNy0uOCAzLjYtNCA3LjktNSAxMC42LTUgMi42IDAgNS4zIDAgNy42IC4xbC44IDBjMi4zIDAgNS4yIDAgOC4xIDYuOCAxLjIgMi45IDMgNy4zIDQuOSAxMS44IDMuMyA4IDYuNyAxNi4zIDcuMyAxNy42IDEgMiAxLjcgNC4zIC4zIDYuOS0zLjQgNi44LTYuOSAxMC40LTkuMyAxMy0zLjEgMy4yLTQuNSA0LjctMi4zIDguNiAxNS4zIDI2LjMgMzAuNiAzNS40IDUzLjkgNDcuMSA0IDIgNi4zIDEuNyA4LjYtMSAyLjMtMi42IDkuOS0xMS42IDEyLjUtMTUuNSAyLjYtNCA1LjMtMy4zIDguOS0yczIzLjEgMTAuOSAyNy4xIDEyLjljLjggLjQgMS41IC43IDIuMSAxIDIuOCAxLjQgNC43IDIuMyA1LjUgMy42IC45IDEuOSAuOSA5LjktMi40IDE5LjEtMy4zIDkuMy0xOS4xIDE3LjctMjYuNyAxOC44ek00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTQ4LjEgMzkzLjlMNjQgNDE2IDg2LjUgMzMzLjhjLTEzLjktMjQtMjEuMi01MS4zLTIxLjItNzkuMyAuMS04Ny40IDcxLjItMTU4LjUgMTU4LjYtMTU4LjUgNDIuNCAwIDgyLjIgMTYuNSAxMTIuMiA0Ni41IDI5LjkgMzAgNDcuOSA2OS44IDQ3LjkgMTEyLjIgMCA4Ny40LTcyLjcgMTU4LjUtMTYwLjEgMTU4LjUtMjYuNiAwLTUyLjctNi43LTc1LjgtMTkuM3oiXX0senVlPWtFLGt1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza3lwZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3ZSIsIk00MjQuNyAyOTkuOGMyLjktMTQgNC43LTI4LjkgNC43LTQzLjggMC0xMTMuNS05MS45LTIwNS4zLTIwNS4zLTIwNS4zLTE0LjkgMC0yOS43IDEuNy00My44IDQuNy0xOS0xNC43LTQyLjYtMjMuNC02OC4zLTIzLjQtNjEuOCAwLTExMiA1MC4yLTExMiAxMTIgMCAyNS43IDguNyA0OS4zIDIzLjMgNjguMi0yLjkgMTQtNC43IDI4LjktNC43IDQzLjggMCAxMTMuNSA5MS45IDIwNS4zIDIwNS4zIDIwNS4zIDE0LjkgMCAyOS43LTEuNyA0My44LTQuNyAxOSAxNC42IDQyLjYgMjMuMyA2OC4yIDIzLjMgNjEuOCAwIDExMi01MC4yIDExMi0xMTIgLjEtMjUuNi04LjYtNDkuMi0yMy4yLTY4LjF6TTIzMC4xIDM5MS4zYy02NS42IDAtMTIwLjUtMjkuMi0xMjAuNS02NSAwLTE2IDktMzAuNiAyOS41LTMwLjYgMzEuMiAwIDM0LjEgNDQuOSA4OC4xIDQ0LjkgMjUuNyAwIDQyLjMtMTEuNCA0Mi4zLTI2LjMgMC0xOC43LTE2LTIxLjYtNDItMjgtNjIuNS0xNS40LTExNy44LTIyLTExNy44LTg3LjIgMC01OS4yIDU4LjYtODEuMSAxMDkuMS04MS4xIDU1LjEgMCAxMTAuOCAyMS45IDExMC44IDU1LjQgMCAxNi45LTExLjQgMzEuOC0zMC4zIDMxLjgtMjguMyAwLTI5LjItMzMuNS03NS0zMy41LTI1LjcgMC00MiA3LTQyIDIyLjUgMCAxOS44IDIwLjggMjEuOCA2OS4xIDMzIDQxLjQgOS4zIDkwLjcgMjYuOCA5MC43IDc3LjYgMCA1OS4xLTU3LjEgODYuNS0xMTIgODYuNXoiXX0sU3VlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ3VsYXIiLGljb246WzQ0OCw1MTIsW10sImY0MjAiLCJNMTg1LjcgMjY4LjFsNzYuMiAwLTM4LjEtOTEuNi0zOC4xIDkxLjZ6TTIyMy44IDMyTDE2IDEwNi40IDQ3LjggMzgyLjEgMjIzLjggNDgwIDM5OS44IDM4Mi4xIDQzMS42IDEwNi40IDIyMy44IDMyek0zNTQgMzczLjhsLTQ4LjYgMC0yNi4yLTY1LjQtMTEwLjYgMC0yNi4yIDY1LjQtNDguNyAwIDEzMC4xLTI5Mi4zIDEzMC4yIDI5Mi4zeiJdfSxDdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2lyY2xlLXp1bGlwIixpY29uOls1MTIsNTEyLFtdLCJlODUxIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0yNDMuNSAyNDBjMS4yLTEuOS0uOS00LjItMi42LTIuOGwtODkgNzkuNWMtOS4yIDcuMi0xNS4yIDE5LjEtMTUuMiAzMi41IDAgMjEuOSAxNiAzOS44IDM1LjcgMzkuOGwxNjcuMyAwYzE5LjYgMCAzNS43LTE3LjkgMzUuNy0zOS44IDAtMjEuOS0xNi4xLTM5LjctMzUuNy0zOS44bC0xMjYuNiAwYy0xLjkgMC0zLTIuMy0yLjEtNC4xTDI0My41IDI0MHpNMTcyLjQgMTIzLjFjLTE5LjYgMC0zNS43IDE3LjktMzUuNyAzOS44czE2IDM5LjggMzUuNyAzOS44bDEyNi42IDBjMS45IDAgMy4xIDIuMiAyLjIgNC4xTDI2OC41IDI3MmMtMS4yIDEuOSAuOSA0LjIgMi42IDIuOGw4OS03OS41YzkuMi03LjIgMTUuMi0xOS4xIDE1LjItMzIuNSAwLTIxLjktMTYtMzkuNy0zNS43LTM5LjhsLTE2Ny4zIDB6Il19LF91ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuc3VzZSIsaWNvbjpbNjQwLDUxMixbXSwiZTYyYiIsIk00NzEuMSAxMDIuN3MtLjMgMTguMy0uMyAyMC4zYy05LjEtMy03NC40LTI0LjEtMTM1LjctMjYuMy01MS45LTEuOC0xMjIuOC00LjMtMjIzIDU3LjMtMTkuNCAxMi40LTczLjkgNDYuMS05OS42IDEwOS43LTUuNSAxMy4zLTEyLjYgNDMuMy01LjUgNzEuNCAzLjMgMTIuOCA4LjkgMjQuOSAxNi41IDM1LjcgMTcuNCAyNSA0Ni42IDQxLjYgNzguMSA0NC40IDQ0LjQgMy45IDc4LjEtMTYgOTAtNTMuMyA4LjItMjUuOCAwLTYzLjYtMzEuNS04Mi45LTI1LjYtMTUuNy01My4zLTEyLjEtNjkuMi0xLjYtMTMuOSA5LjItMjEuOCAyMy41LTIxLjYgMzkuMiAuMyAyNy44IDI0LjMgNDIuNiA0MS41IDQyLjYgNS40IDAgMTAuNy0uOSAxNS44LTIuNyA2LjUtMS44IDEzLjMtNi41IDEzLjMtMTQuOSAwLTEyLjEtMTEuNi0xNC44LTE2LjgtMTMuOS0yLjkgLjUtNC41IDItMTEuOCAyLjQtMi0uMi0xMi0zLjEtMTItMTRsMC0uMWMuMi0xMi4zIDEzLjItMTggMjUuNS0xNi45IDMyLjMgMi44IDQ3LjcgNDAuNyAyOC41IDY1LjctMTguMyAyMy43LTc2LjYgMjMuMi05OS43LTIwLjQtMjYtNDkuMiAxMi43LTExMS4yIDg3LTk4LjQgMzMuMiA1LjcgODMuNiAzNS41IDEwMi40IDEwNC4zbDQ1LjkgMGMtNS43LTE3LjYtOC45LTY4LjMgNDIuNy02OC4zIDU2LjcgMCA2My45IDM5LjkgNzkuOCA2OC4zbDQ4LjYgMGMtMTIuOC0xOC4zLTIxLjctMzguNy0xOC45LTU1LjggNS42LTMzLjggMzkuNy0xOC40IDgyLjQtMTcuNCA2Ni41IC40IDEwMi4xLTI3IDEwMy4xLTI4IDMuNy0zLjEgNi41LTE1LjggNy0xNy43IDEuMy01LjEtMy4yLTIuNC0zLjItMi40LTguNyA1LjItMzAuNSAxNS4yLTUwLjkgMTUuNi0yNS4zIC41LTc2LjItMjUuNC04MS42LTI4LjItLjMtLjQgLjEgMS4yLTExLTI1LjUgODguNCA1OC4zIDExOC4zIDQwLjUgMTQ1LjIgMjEuNyAuOC0uNiA0LjMtMi45IDMuNi01LjctMTMuOC00OC4xLTIyLjQtNjIuNy0zNC41LTY5LjYtMzctMjEuNi0xMjUtMzQuNy0xMjkuMi0zNS4zIC4xLS4xLS45LS4zLS45IC43em02MC40IDcyLjhhMzcuNiAzNy42IDAgMSAxIDc1LjIgMi42IDM3LjYgMzcuNiAwIDEgMSAtNzUuMi0yLjZ6bTM4LjYtMjUuM2MtMy42LS4zLTcuMSAuMS0xMC41IDEuMnMtNi41IDIuOS05LjIgNS4zLTQuOCA1LjMtNi4zIDguNS0yLjQgNi43LTIuNSAxMC4zIC41IDcuMSAxLjggMTAuNCAzLjMgNi4zIDUuOCA4LjkgNS41IDQuNSA4LjggNS45IDYuOSAyIDEwLjQgMS45YzMuNiAuMyA3LjEtLjEgMTAuNS0xLjJzNi41LTIuOSA5LjItNS4zIDQuOC01LjMgNi4zLTguNSAyLjQtNi43IDIuNS0xMC4zLS41LTcuMS0xLjgtMTAuNC0zLjMtNi4zLTUuOC04LjktNS41LTQuNS04LjgtNS45LTYuOS0yLTEwLjQtMS45em00LjMgMjguOGMtMTUuNCAwLTE1LjQtMTUuNiAwLTE1LjZzMTUuNCAxNS42IDAgMTUuNnoiXX0sVHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyb3Bib3giLGljb246WzU3Niw1MTIsW10sImYxNmIiLCJNMjg4LjQgMTE2LjNsLTEzMiA4NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi40LTg1LjEgMTMyLjMtODQuMy0xMzIuMy04My41IDEzMi4zLTg0LjMgMTMyLjEgODQuM3pNMTU1LjYgMzk1LjdsMTMyLTg0LjMgMTMyIDg0LjMtMTMyIDg0LjMtMTMyLTg0LjN6TTI4OC40IDI4NC4xbDEzMi04NC4zLTEzMi04My42IDEzMS4zLTg0LjIgMTMyLjMgODQuMy0xMzIuMyA4NC4zIDEzMi4zIDg0LjItMTMyLjMgODQuMy0xMzEuMy04NXoiXX0sTHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlZXplciIsaWNvbjpbNTEyLDUxMixbXSwiZTA3NyIsIk0xNC44IDEwMS4xQzYuNiAxMDEuMSAwIDEyNy42IDAgMTYwLjNzNi42IDU5LjIgMTQuOCA1OS4yIDE0LjgtMjYuNSAxNC44LTU5LjItNi42LTU5LjItMTQuOC01OS4yek00NDguNyA0MC45Yy03LjcgMC0xNC41IDE3LjEtMTkuNCA0NC4xLTcuNy00Ni43LTIwLjItNzctMzQuMi03Ny0xNi44IDAtMzEuMSA0Mi45LTM4IDEwNS40LTYuNi00NS40LTE2LjgtNzQuMi0yOC4zLTc0LjItMTYuMSAwLTI5LjYgNTYuOS0zNC43IDEzNi4yLTkuNC00MC44LTIzLjItNjYuMy0zOC4zLTY2LjNzLTI4LjggMjUuNS0zOC4zIDY2LjNjLTUuMS03OS4zLTE4LjYtMTM2LjItMzQuNy0xMzYuMi0xMS41IDAtMjEuNyAyOC44LTI4LjMgNzQuMi02LjYtNjIuNS0yMS4yLTEwNS40LTM3LjgtMTA1LjQtMTQgMC0yNi41IDMwLjQtMzQuMiA3Ny00LjgtMjctMTEuNy00NC4xLTE5LjQtNDQuMS0xNC4zIDAtMjYgNTkuMi0yNiAxMzIuMVM0OSAzMDUuMiA2My4zIDMwNS4yYzUuOSAwIDExLjUtOS45IDE1LjgtMjYuOCA2LjkgNjEuNyAyMS4yIDEwNC4xIDM4IDEwNC4xIDEzIDAgMjQuNS0yNS41IDMyLjEtNjUuNiA1LjQgNzYuMyAxOC42IDEzMC40IDM0LjIgMTMwLjQgOS43IDAgMTguNi0yMS40IDI1LjMtNTYuNCA3LjkgNzIuMiAyNi4zIDEyMi43IDQ3LjcgMTIyLjdzMzkuNS01MC41IDQ3LjctMTIyLjdjNi42IDM1IDE1LjYgNTYuNCAyNS4zIDU2LjQgMTUuNiAwIDI4LjgtNTQuMSAzNC4yLTEzMC40IDcuNyA0MC4xIDE5LjQgNjUuNiAzMi4xIDY1LjYgMTYuNiAwIDMwLjktNDIuMyAzOC0xMDQuMSA0LjMgMTYuOCA5LjcgMjYuOCAxNS44IDI2LjggMTQuMyAwIDI2LTU5LjIgMjYtMTMyLjFTNDYzIDQwLjkgNDQ4LjcgNDAuOXptNDguNSA2MC4yYy04LjIgMC0xNC44IDI2LjUtMTQuOCA1OS4yczYuNiA1OS4yIDE0LjggNTkuMiAxNC44LTI2LjUgMTQuOC01OS4yLTYuNi01OS4yLTE0LjgtNTkuMnoiXX0sJHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmciLGljb246WzUxMiw1MTIsW10sImY0ZjAiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0zLjYgNTMuMmMyLjgtLjMgMTEuNSAxIDExLjUgMTEuNWw2LjYgMTA3LjIgNC45LTU5LjNjMC02IDQuNy0xMC42IDEwLjYtMTAuNnMxMC42IDQuNyAxMC42IDEwLjZjMCAyLjUtLjUtNS43IDUuNyA4MS41bDUuOC02NC4yYy4zLTIuOSAyLjktOS4zIDEwLjItOS4zIDMuOCAwIDkuOSAyLjMgMTAuNiA4LjlsMTEuNSA5Ni41IDUuMy0xMi44YzEuOC00LjQgNS4yLTYuNiAxMC4yLTYuNmw1OCAwIDAgMjEuMy01MC45IDAtMTguMiA0NC4zYy0zLjkgOS45LTE5LjUgOS4xLTIwLjgtMy4xbC00LTMxLjktNy41IDkyLjZjLS4zIDMtMyA5LjMtMTAuMiA5LjMtMyAwLTkuOC0yLjEtMTAuNi05LjMgMC0xLjkgLjYgNS44LTYuMi03Ny45bC01LjMgNzIuMmMtMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTIuOSAwLTkuOC0yLTEwLjYtOS4zIDAtMS45IC41IDYuNy01LjgtODcuN0wyNTUgMzgzLjljMCA2LjMtMy42IDEyLjQtMTAuNiAxMi40LTUuMiAwLTEwLjYtNC4xLTEwLjYtMTJMMjI4IDI5Ni42Yy01LjggOTIuNS01LjMgODQtNS4zIDg1LjktMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtLjctLjQtMS4xLS40LTIuNmwtNi4yLTg4LjYtNC45IDU2LjdjLS43IDYuNS02LjcgOS4zLTEwLjYgOS4zLTUuOCAwLTkuNi00LjEtMTAuNi04LjlMMTU3LjcgMjcyYy0yIDQtMy41IDguNC0xMS4xIDguNGwtNTEuNCAwIDAtMjEuMyA0NC44IDAgMTMuNy0yNy45YzQuNC05LjkgMTguMi03LjIgMTkuOSAyLjdsMy4xIDIwLjQgOC40LTk3LjljMC02IDQuOC0xMC42IDEwLjYtMTAuNiAuNSAwIDEwLjYtLjIgMTAuNiAxMi40bDQuOSA2OS4xIDYuNi05Mi42YzAtMTAuMSA5LjUtMTAuNiAxMC4yLTEwLjYgLjYgMCAxMC42IC43IDEwLjYgMTAuNmw1LjMgODAuNiA2LjItOTcuOWMuMS0xLjEtLjYtMTAuMyA5LjktMTEuNXoiXX0sQXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImplZGktb3JkZXIiLGljb246WzQ0OCw1MTIsW10sImY1MGUiLCJNMzk4LjkgMzczLjZjOTUuOS0xMjIuMSAxNy4yLTIzMy4xIDE3LjItMjMzLjEgNDUuNCA4NS44LTQxLjQgMTcwLjUtNDEuNCAxNzAuNSAxMDUtMTcxLjUtNjAuNS0yNzEuNS02MC41LTI3MS41IDk2LjkgNzIuNy0xMC4xIDE5MC43LTEwLjEgMTkwLjcgODUuOCAxNTguNC02OC42IDIzMC4xLTY4LjYgMjMwLjFzLS40LTE2LjktMi4yLTg1LjdjNC4zIDQuNSAzNC41IDM2LjIgMzQuNSAzNi4ybC0yNC4yLTQ3LjQgNjIuNi05LjEtNjIuNi05LjEgMjAuMi01NS41LTMxLjQgNDUuOWMtMi4yLTg3LjctNy44LTMwNS4xLTcuOS0zMDYuOSAwIDEtNS42IDIxOS03LjkgMzA2LjlsLTMxLjQtNDUuOSAyMC4yIDU1LjUtNjIuNiA5LjEgNjIuNiA5LjEtMjQuMiA0Ny40IDM0LjUtMzYuMmMtMS44IDY4LjgtMi4yIDg1LjctMi4yIDg1LjdTNTkuMSAzODguNiAxNDQuOSAyMzAuMmMwIDAtMTA3LTExOC4xLTEwLjEtMTkwLjcgMCAwLTE2NS41IDk5LjktNjAuNSAyNzEuNSAwIDAtODYuOC04NC44LTQxLjQtMTcwLjUgMCAwLTc4LjcgMTExIDE3LjIgMjMzLjEgMCAwLTI2LjItMTYuMS00OS40LTc3LjcgMCAwIDE2LjkgMTgzLjMgMjIyIDE4NS43bDQuMSAwYzIwNS0yLjQgMjIyLTE4NS43IDIyMi0xODUuNy0yMy42IDYxLjUtNDkuOSA3Ny43LTQ5LjkgNzcuN3oiXX0sRHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InItcHJvamVjdCIsaWNvbjpbNTc2LDUxMixbXSwiZjRmNyIsIk01NzguNSAyMjYuNkM1NzguNSAxMTkuMSA0NDguNCAzMiAyODggMzJTLTIuNSAxMTkuMS0yLjUgMjI2LjZjMCA5NS44IDEwMy4zIDE3NS40IDIzOS40IDE5MS41bDAgNjEuOSA5OS4xIDAgMC02MS41YzI0LjMtMi43IDQ3LjYtNy40IDY5LjQtMTMuOWw0MC4xIDc1LjQgMTEyIDAtNjcuNC0xMTMuN2M1NC41LTM1LjQgODguNC04NC45IDg4LjQtMTM5Ljd6TTExMS43IDI0MS4xYzAtNzMuNSA5OC45LTEzMyAyMjAuOC0xMzNzMjExLjkgNDAuNyAyMTEuOSAxMzNjMCA1MC4xLTI2LjUgODUtNzAuMyAxMDYuNC0yLjQtMS42LTQuNy0yLjktNi40LTMuNy0xMC4yLTUuMi0yNy44LTEwLjUtMjcuOC0xMC41czg2LjYtNi40IDg2LjYtOTIuNy05MC42LTg3LjktOTAuNi04Ny45bC0xOTkgMCAwIDIwOC4zYy03NC4xLTIxLjUtMTI1LjItNjcuMS0xMjUuMi0xMTkuOXptMjI1LjEgMzguM2wwLTU1LjZjNTcuOCAwIDg3LjgtNi44IDg3LjggMjcuMyAwIDM2LjUtMzguMiAyOC4zLTg3LjggMjguM3ptLS45IDcyLjVsMjYuNiAwYzEwLjggMCAxOC45IDExLjcgMjQgMTkuMi0xNi4xIDEuOS0zMyAyLjgtNTAuNiAyLjlsMC0yMi4xeiJdfSxFdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW5zdGFsb2QiLGljb246WzUxMiw1MTIsW10sImUwODEiLCJNMTUzLjYgNDgwbDIzMy43IDAgMTE1LjQtMjA0LjItMjk4LjMgNTcuNC01MC44IDE0Ni44ek01MDUgMjQwLjFMMzg3LjQgMzIgMTU1LjkgMzIgMzYwLjUgMjY3LjkgNTA1IDI0MC4xek0xMjQuNiA0OC44TDcuNSAyNTYgMTIzLjUgNDYxLjIgMjI1LjkgMTY1LjYgMTI0LjYgNDguOHoiXX0sUHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNhbmFkaWFuLW1hcGxlLWxlYWYiLGljb246WzUxMiw1MTIsW10sImY3ODUiLCJNMzgzLjggMzUxLjdjMi41LTIuNSAxMDUuMi05Mi40IDEwNS4yLTkyLjRsLTE3LjUtNy41Yy0xMC00LjktNy40LTExLjUtNS0xNy40IDIuNC03LjYgMjAuMS02Ny4zIDIwLjEtNjcuM3MtNDcuNyAxMC01Ny43IDEyLjVjLTcuNSAyLjQtMTAtMi41LTEyLjUtNy41cy0xNS0zMi40LTE1LTMyLjQtNTIuNiA1OS45LTU1LjEgNjIuM2MtMTAgNy41LTIwLjEgMC0xNy42LTEwIDAtMTAgMjcuNi0xMjkuNiAyNy42LTEyOS42cy0zMC4xIDE3LjQtNDAuMSAyMi40Yy03LjUgNS0xMi42IDUtMTcuNi01LTUuMS03LjUtNDIuNy03OS44LTQyLjctNzkuOHMtMzcuNSA3Mi4zLTQyLjUgNzkuOGMtNSAxMC0xMCAxMC0xNy42IDUtMTAtNS00MC4xLTIyLjQtNDAuMS0yMi40UzE4My4zIDE4MiAxODMuMyAxOTJjMi41IDEwLTcuNSAxNy41LTE3LjYgMTAtMi41LTIuNS01NS4xLTYyLjMtNTUuMS02Mi4zcy0xMi41IDI3LjMtMTUgMzIuMy01IDkuOS0xMi41IDcuNUM3MyAxNzcgMjUuNCAxNjcgMjUuNCAxNjdTNDMgMjI2LjcgNDUuNSAyMzQuM2MyLjQgNiA1IDEyLjUtNSAxNy40TDIzIDI1OS4zczEwMi42IDg5LjkgMTA1LjIgOTIuNGM1LjEgNSAxMCA3LjUgNS4xIDIyLjUtNS4xIDE1LTEwLjEgMzUuMS0xMC4xIDM1LjFzOTUuMi0yMC4xIDEwNS4zLTIyLjZjOC43LS45IDE4LjMgMi41IDE4LjMgMTIuNVMyNDEgNTEyIDI0MSA1MTJsMzAgMHMtNS44LTEwMi43LTUuOC0xMTIuOCA5LjUtMTMuNCAxOC40LTEyLjVjMTAgMi41IDEwNS4yIDIyLjYgMTA1LjIgMjIuNnMtNS0yMC4xLTEwLTM1LjEgMC0xNy41IDUtMjIuNXoiXX0sSXVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0aGVyZXVtIixpY29uOlszMjAsNTEyLFtdLCJmNDJlIiwiTTMxMS45IDI2MC44TDE2MCAzNTMuNiA4IDI2MC44IDE2MCAwIDMxMS45IDI2MC44ek0xNjAgMzgzLjRMOCAyOTAuNiAxNjAgNTEyIDMxMiAyOTAuNiAxNjAgMzgzLjR6Il19LE51ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3V6eiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3YyIsIk0yNzYgMzMwLjdsLTEwNC42IDAgMCAxNDkuMy0xNTQuMyAwIDAtNDQ4IDEwOS41IDAgMCAxMDQuNSAzMDUuMSA4NS42IDAgMjU3LjktMTU1LjcgMCAwLTE0OS4zeiJdfSxGdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmliZXIiLGljb246WzUxMiw1MTIsW10sImY0MDkiLCJNNDQ0LjMgNDkuOWMtMTIuNy0xMS43LTY0LjEtNDktMTc4LjctNDkuNSAwIDAtMTM1LjEtOC4xLTIwMC45IDUyLjMtMzYuNiAzNi42LTQ5LjUgOTAuMy01MC45IDE1Ni44cy0zLjEgMTkxLjEgMTE3IDIyNC45bC4xIDAtLjEgNTEuNnMtLjggMjAuOSAxMyAyNS4xYzE2LjYgNS4yIDI2LjQtMTAuNyA0Mi4zLTI3LjggOC43LTkuNCAyMC43LTIzLjIgMjkuOC0zMy43IDgyLjIgNi45IDE0NS4zLTguOSAxNTIuNS0xMS4yIDE2LjYtNS40IDExMC41LTE3LjQgMTI1LjctMTQyIDE1LjgtMTI4LjYtNy42LTIwOS44LTQ5LjgtMjQ2LjV6TTQ1OC4yIDI4N2MtMTIuOSAxMDQtODkgMTEwLjYtMTAzIDExNS4xLTYgMS45LTYxLjUgMTUuNy0xMzEuMiAxMS4yIDAgMC01MiA2Mi43LTY4LjIgNzktNS4zIDUuMy0xMS4xIDQuOC0xMS01LjcgMC02LjkgLjQtODUuNyAuNC04NS43bDAgMEM0My40IDM3Mi43IDQ5LjQgMjY2LjYgNTAuNSAyMTEuMXMxMS42LTEwMSA0Mi42LTEzMS42YzU1LjctNTAuNSAxNzAuNC00MyAxNzAuNC00MyA5Ni45IC40IDE0My4zIDI5LjYgMTU0LjEgMzkuNCAzNS43IDMwLjYgNTMuOSAxMDMuOCA0MC42IDIxMS4xem0tMTM5LTgwLjhjLjQgOC42LTEyLjUgOS4yLTEyLjkgLjYtMS4xLTIyLTExLjQtMzIuNy0zMi42LTMzLjktOC42LS41LTcuOC0xMy40IC43LTEyLjkgMjcuOSAxLjUgNDMuNCAxNy41IDQ0LjggNDYuMnptMjAuMyAxMS4zYzEtNDIuNC0yNS41LTc1LjYtNzUuOC03OS4zLTguNS0uNi03LjYtMTMuNSAuOS0xMi45IDU4IDQuMiA4OC45IDQ0LjEgODcuOCA5Mi41LS4xIDguNi0xMy4xIDguMi0xMi45LS4zem00NyAxMy40Yy4xIDguNi0xMi45IDguNy0xMi45IC4xLS42LTgxLjUtNTQuOS0xMjUuOS0xMjAuOC0xMjYuNC04LjUtLjEtOC41LTEyLjkgMC0xMi45IDczLjcgLjUgMTMzIDUxLjQgMTMzLjcgMTM5LjJ6TTM3NS4yIDMyOWwwIC4yYy0xMC44IDE5LTMxIDQwLTUxLjggMzMuM2wtLjItLjNjLTIxLjEtNS45LTcwLjgtMzEuNS0xMDIuMi01Ni41LTE2LjItMTIuOC0zMS0yNy45LTQyLjQtNDIuNC0xMC4zLTEyLjktMjAuNy0yOC4yLTMwLjgtNDYuNi0yMS4zLTM4LjUtMjYtNTUuNy0yNi01NS43LTYuNy0yMC44IDE0LjItNDEgMzMuMy01MS44bC4yIDBjOS4yLTQuOCAxOC0zLjIgMjMuOSAzLjkgMCAwIDEyLjQgMTQuOCAxNy43IDIyLjEgNSA2LjggMTEuNyAxNy43IDE1LjIgMjMuOCA2LjEgMTAuOSAyLjMgMjItMy43IDI2LjZsLTEyIDkuNmMtNi4xIDQuOS01LjMgMTQtNS4zIDE0czE3LjggNjcuMyA4NC4zIDg0LjNjMCAwIDkuMSAuOCAxNC01LjNsOS42LTEyYzQuNi02IDE1LjctOS44IDI2LjYtMy43IDE0LjcgOC4zIDMzLjQgMjEuMiA0NS44IDMyLjkgNyA1LjcgOC42IDE0LjQgMy44IDIzLjZ6Il19LFNFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtpY2tzdGFydGVyIixpY29uOls0NDgsNTEyLFsic3F1YXJlLWtpY2tzdGFydGVyIl0sImYzYmIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzIwLjggMjMzbC0yMy4zIDIzLjEgMjMuMyAyMi45YzI0LjEgMjMuOSAyNC4xIDYzIDAgODYuOXMtNjMuNCAyMy45LTg3LjYgMGwtOC41LTguNGMtMTEuMyAxNi0yOS43IDI2LjUtNTAuOSAyNi41LTM0LjEgMC02MS45LTI3LjUtNjEuOS02MS40bDAtMTMzLjJjMC0zMy44IDI3LjctNjEuNCA2MS45LTYxLjQgMjEuMSAwIDM5LjYgMTAuNSA1MC45IDI2LjVsOC41LTguNGMyNC4xLTIzLjkgNjMuNC0yMy45IDg3LjYgMHMyNC4xIDYzIDAgODYuOXoiXX0sT3VlPVNFLFJ1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcG90aWZ5IixpY29uOls1MTIsNTEyLFtdLCJmMWJjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMzU2LjcgMzcyLjljLTQuMiAwLTYuOC0xLjMtMTAuNy0zLjYtNjIuNC0zNy42LTEzNS0zOS4yLTIwNi43LTI0LjUtMy45IDEtOSAyLjYtMTEuOSAyLjYtOS43IDAtMTUuOC03LjctMTUuOC0xNS44IDAtMTAuMyA2LjEtMTUuMiAxMy42LTE2LjggODEuOS0xOC4xIDE2NS42LTE2LjUgMjM3IDI2LjIgNi4xIDMuOSA5LjcgNy40IDkuNyAxNi41cy03LjEgMTUuNC0xNS4yIDE1LjR6bTI2LjktNjUuNmMtNS4yIDAtOC43LTIuMy0xMi4zLTQuMi02Mi41LTM3LTE1NS43LTUxLjktMjM4LjYtMjkuNC00LjggMS4zLTcuNCAyLjYtMTEuOSAyLjYtMTAuNyAwLTE5LjQtOC43LTE5LjQtMTkuNHM1LjItMTcuOCAxNS41LTIwLjdjMjcuOC03LjggNTYuMi0xMy42IDk3LjgtMTMuNiA2NC45IDAgMTI3LjYgMTYuMSAxNzcgNDUuNSA4LjEgNC44IDExLjMgMTEgMTEuMyAxOS43LS4xIDEwLjgtOC41IDE5LjUtMTkuNCAxOS41em0zMS03Ni4yYy01LjIgMC04LjQtMS4zLTEyLjktMy45LTcxLjItNDIuNS0xOTguNS01Mi43LTI4MC45LTI5LjctMy42IDEtOC4xIDIuNi0xMi45IDIuNi0xMy4yIDAtMjMuMy0xMC4zLTIzLjMtMjMuNiAwLTEzLjYgOC40LTIxLjMgMTcuNC0yMy45IDM1LjItMTAuMyA3NC42LTE1LjIgMTE3LjUtMTUuMiA3MyAwIDE0OS41IDE1LjIgMjA1LjQgNDcuOCA3LjggNC41IDEyLjkgMTAuNyAxMi45IDIyLjYgMCAxMy42LTExIDIzLjMtMjMuMiAyMy4zeiJdfSxCdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGVhbnB1YiIsaWNvbjpbNTc2LDUxMixbXSwiZjIxMiIsIk0zODYuNiAxMTEuNWwxNS4xIDI0OS0xMS0uM2MtMzYuMi0uOC03MS42IDguOC0xMDIuNyAyOC0zMS0xOS4yLTY2LjQtMjgtMTAyLjctMjgtNDUuNiAwLTgyLjEgMTAuNy0xMjMuNSAyNy43TDkzLjIgMTI5LjZjMjguNS0xMS44IDYxLjUtMTguMSA5Mi4yLTE4LjEgNDEuMiAwIDczLjggMTMuMiAxMDIuNyA0Mi41IDI3LjctMjguMyA1OS00MS43IDk4LjUtNDIuNXpNNTY5LjIgNDQ4Yy0yNS41IDAtNDcuNS01LjItNzAuNS0xNS42LTM0LjMtMTUuNi03MC0yNS0xMDcuOS0yNS0zOSAwLTc0LjkgMTIuOS0xMDIuNyA0MC42LTI3LjctMjcuNy02My43LTQwLjYtMTAyLjctNDAuNi0zNy45IDAtNzMuNiA5LjMtMTA3LjkgMjUtMjIuMiA5LjktNDQuNyAxNS42LTY5LjIgMTUuNkw3IDQ0OCA0OS42IDk4LjljMzkuMy0yMi4yIDg3LTM0LjkgMTMyLjMtMzQuOSAzNy4xIDAgNzUuMiA3LjcgMTA2LjIgMjkuMSAzMS0yMS40IDY5LjItMjkuMSAxMDYuMi0yOS4xIDQ1LjMgMCA5MyAxMi42IDEzMi4zIDM0LjlMNTY5LjIgNDQ4em0tNDMuNC00NC43TDQ5MS44IDEyM2MtMzAuNy0xNC02Ny4yLTIxLjQtMTAxLTIxLjQtMzguNCAwLTc0LjQgMTIuMS0xMDIuNyAzOC43LTI4LjMtMjYuNi02NC4yLTM4LjctMTAyLjctMzguNy0zMy44IDAtNzAuMyA3LjQtMTAxIDIxLjRsLTM0IDI4MC4yYzQ3LjItMTkuNSA4Mi45LTMzLjUgMTM1LTMzLjUgMzcuNiAwIDcwLjggOS42IDEwMi43IDI5LjYgMzEuOC0yMCA2NS4xLTI5LjYgMTAyLjctMjkuNiA1Mi4yIDAgODcuOCAxNCAxMzUgMzMuNXoiXX0sSHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImphdmEiLGljb246WzM4NCw1MTIsW10sImY0ZTQiLCJNMjc3LjggMzEyLjljOS44LTYuNyAyMy40LTEyLjUgMjMuNC0xMi41cy0zOC43IDctNzcuMiAxMC4yYy00Ny4xIDMuOS05Ny43IDQuNy0xMjMuMSAxLjMtNjAuMS04IDMzLTMwLjEgMzMtMzAuMXMtMzYuMS0yLjQtODAuNiAxOWMtNTIuNSAyNS40IDEzMCAzNyAyMjQuNSAxMi4xem0tODUuNC0zMi4xYy0xOS00Mi43LTgzLjEtODAuMiAwLTE0NS44IDEwMy43LTgxLjggNTAuNS0xMzUgNTAuNS0xMzUgMjEuNSA4NC41LTc1LjYgMTEwLjEtMTEwLjcgMTYyLjYtMjMuOSAzNS45IDExLjcgNzQuNCA2MC4yIDExOC4yek0zMDcgMTA0LjZjLjEgMC0xNzUuMiA0My44LTkxLjUgMTQwLjIgMjQuNyAyOC40LTYuNSA1NC02LjUgNTRzNjIuNy0zMi40IDMzLjktNzIuOUMyMTYgMTg4LjEgMTk1LjQgMTY5LjMgMzA3IDEwNC42em0tNi4xIDI3MC41Yy0uNSAxLTEuMiAxLjgtMiAyLjYgMTI4LjMtMzMuNyA4MS4xLTExOC45IDE5LjgtOTcuMy0zLjMgMS4yLTYuMiAzLjQtOC4yIDYuMyAzLjYtMS4zIDcuMy0yLjMgMTEtMyAzMS02LjUgNzUuNSA0MS41LTIwLjYgOTEuNHpNMzQ4IDQzNy40czE0LjUgMTEuOS0xNS45IDIxLjJjLTU3LjkgMTcuNS0yNDAuOCAyMi44LTI5MS42IC43LTE4LjMtNy45IDE2LTE5IDI2LjgtMjEuMyAxMS4yLTIuNCAxNy43LTIgMTcuNy0yLTIwLjMtMTQuMy0xMzEuMyAyOC4xLTU2LjQgNDAuMiAyMDQuMiAzMy4yIDM3Mi40LTE0LjkgMzE5LjQtMzguOHpNMTI0LjUgMzk2Yy03OC43IDIyIDQ3LjkgNjcuNCAxNDguMSAyNC41LTkuOC0zLjgtMTkuMi04LjQtMjguMi0xMy44LTQ0LjcgOC41LTY1LjQgOS4xLTEwNiA0LjUtMzMuNS0zLjgtMTMuOS0xNS4yLTEzLjktMTUuMnptMTc5LjggOTcuMmMtNzguNyAxNC44LTE3NS44IDEzLjEtMjMzLjMgMy42IDAtLjEgMTEuOCA5LjcgNzIuNCAxMy42IDkyLjIgNS45IDIzMy44LTMuMyAyMzcuMS00Ni45IDAgMC02LjQgMTYuNS03Ni4yIDI5Ljd6TTI2MC43IDM1M2MtNTkuMiAxMS40LTkzLjUgMTEuMS0xMzYuOCA2LjYtMzMuNS0zLjUtMTEuNi0xOS43LTExLjYtMTkuNy04Ni44IDI4LjggNDguMiA2MS40IDE2OS41IDI1LjktNy44LTIuOC0xNS03LjEtMjEuMS0xMi44eiJdfSxxdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmZjLXN5bWJvbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMSIsIk0zNjAuOSAzMi40YzcuNy0xLjMgMTUuNyAuNSAyMS4yIDUgODQuMSA1OC43IDEyOS45IDEzNi4zIDEyOS45IDIxNy43IDAgODMuMS00NS44IDE2MC44LTEyOS45IDIxOS41LTQuOCA0LTExLjcgNS45LTE4LjYgNS4zLTctLjYtMTMuNS0zLjYtMTguNC04LjVMMTYxLjcgMjg4LjdjLTUuNi01LjUtOC43LTEzLTkuNi0yMC45IDAtNy44IDQtMTUuMyA5LjUtMjAuOSA1LjYtNS41IDEzLjEtOC43IDIwLjktOC43IDcuOSAwIDE1LjQgMy4xIDIwLjkgOC42TDM2OC41IDQxMS4yYzU0LjYtNDQuNyA4NC4zLTk5LjIgODQuMy0xNTYuMSAwLTYxLjYtMzYuOS0xMjIuMi0xMDMuOS0xNjkuMy02LjQtNC41LTEwLjgtMTEuNC0xMi4xLTE5LjEtMS40LTcuNyAuNC0xNS43IDUtMjIuMSA0LjUtNi40IDExLjQtMTAuOCAxOS4xLTEyLjF6bS0yMDYgNDQ3LjJjLTcuNyAxLjMtMTUuNi0uNS0yMi4xLTUtODMuMS01OC43LTEyOS0xMzYuNC0xMjktMjE5LjUgMC04MS40IDQ1LjgtMTU5IDEyOS0yMTcuNyA1LjctNCAxMi42LTUuOSAxOS42LTUuMyA2LjkgLjYgMTMuNCAzLjYgMTguMyA4LjVMMzU0LjEgMjIzLjNjNS42IDUuNSA4LjcgMTMgOC43IDIwLjkgLjEgNi45LTMgMTUuMy04LjYgMjAuOS01LjUgNS41LTEzIDguNy0yMC45IDguNy03LjggMC0xNi4yLTMuMS0yMC45LTguNkwxNDcuMyAxMDAuN2MtNTQuNiA0NS4yLTg0LjMgOTkuMi04NC4zIDE1NC40IDAgNjMuNCAzNi45IDEyNCAxMDMuMSAxNzEuMSA3LjMgNC42IDExLjYgMTEuNCAxMyAxOS4yIDEuMyA3LjctLjUgMTUuNy01IDIyLjFzLTExLjQgMTAuNy0xOS4yIDEyLjF6Il19LFZ1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3b2R1IixpY29uOls2NDAsNTEyLFtdLCJlMDg4IiwiTTE3OC40IDMzOS43bC0zNy4zIDAtMjguOS0xMTYuMi0uNSAwLTI4LjUgMTE2LjItMzggMC00NS4yLTE3MC44IDM3LjUgMCAyNyAxMTYuMiAuNSAwIDI5LjctMTE2LjIgMzUuMiAwIDI5LjIgMTE3LjcgLjUgMCAyOC0xMTcuNyAzNi44IDAtNDUuOSAxNzAuOHptOTMtMTI3YzM5IDAgNjQuMSAyNS44IDY0LjEgNjUuMyAwIDM5LjItMjUuMSA2NS02NC4xIDY1LTM4LjcgMC02My45LTI1LjgtNjMuOS02NSAwLTM5LjUgMjUuMS02NS4zIDYzLjktNjUuM3ptMCAxMDQuOGMyMy4yIDAgMzAuMS0xOS45IDMwLjEtMzkuNSAwLTE5LjktNi45LTM5LjctMzAuMS0zOS43LTI3LjcgMC0yOS45IDE5LjktMjkuOSAzOS43IDAgMTkuNiA2LjkgMzkuNSAyOS45IDM5LjV6bTE2My43IDYuNWwtLjUgMGMtNy45IDEzLjQtMjEuOCAxOS4xLTM3LjUgMTkuMS0zNy4zIDAtNTUuNS0zMi01NS41LTY2LjIgMC0zMy4yIDE4LjQtNjQuMSA1NC44LTY0LjEgMTQuNiAwIDI4LjkgNi4yIDM2LjggMTguNGwuMiAwIDAtNjIuMiAzNCAwIDAgMTcwLjgtMzIuMyAwIDAtMTUuOHptLTI5LjctODUuNmMtMjIuMiAwLTI5LjkgMTkuMS0yOS45IDM5LjUgMCAxOS40IDguOCAzOS43IDI5LjkgMzkuNyAyMi41IDAgMjkuMi0xOS42IDI5LjItMzkuOSAwLTIwLjEtNy4yLTM5LjItMjkuMi0zOS4yek01OTMgMzM5LjdsLTMyLjMgMCAwLTE3LjItLjcgMGMtOC42IDEzLjktMjMuNCAyMC42LTM3LjggMjAuNi0zNi4xIDAtNDUuMi0yMC4zLTQ1LjItNTAuOWwwLTc2LjEgMzQgMCAwIDY5LjhjMCAyMC4zIDYgMzAuNCAyMS44IDMwLjQgMTguNCAwIDI2LjMtMTAuMyAyNi4zLTM1LjRsMC02NC44IDM0IDAgMCAxMjMuNnptOS41LTM2LjhsMzcuNSAwIDAgMzYuOC0zNy41IDAgMC0zNi44eiJdfSxDRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtc3RlYW0iLGljb246WzQ0OCw1MTIsWyJzdGVhbS1zcXVhcmUiXSwiZjFiNyIsIk0xNjUuNiAzMDkuMWMxOC42IDcuNyAyNy4zIDI4LjkgMTkuNiA0Ny40cy0yOSAyNy4yLTQ3LjYgMTkuNGwtMjguNS0xMS44YzUgMTAuNiAxMy44IDE5LjQgMjUuNCAyNC4yIDI1LjIgMTAuNSA1NC4xLTEuNCA2NC42LTI2LjUgNS4xLTEyLjEgNS4xLTI1LjUgLjEtMzcuNy01LjEtMTIuMS0xNC41LTIxLjYtMjYuNy0yNi43LTEyLjEtNS0yNS00LjgtMzYuNC0uNWwyOS41IDEyLjJ6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgMTQ0LjcgMTE2LjYgNDguMWMxMi04LjIgMjYuMi0xMi4xIDQwLjctMTEuM2w1NS40LTgwLjIgMC0xLjFjMC00OC4yIDM5LjMtODcuNSA4Ny42LTg3LjVzODcuNiAzOS4zIDg3LjYgODcuNWMwIDQ5LjItNDAuOSA4OC43LTg5LjYgODcuNWwtNzkgNTYuM2MxLjYgMzguNS0yOS4xIDY4LjgtNjUuNyA2OC44LTMxLjggMC01OC41LTIyLjctNjQuNS01Mi43TDAgMzE5LjIgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI0MS45IDE5Ni4yYTU4LjQgNTguNCAwIDEgMCAxMTYuOCAwIDU4LjQgNTguNCAwIDEgMCAtMTE2LjggMHptMTAyLjQtLjFhNDMuOSA0My45IDAgMSAxIC04Ny44IDAgNDMuOSA0My45IDAgMSAxIDg3LjggMHoiXX0sanVlPUNFLFV1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5jLWV1IixpY29uOls1MTIsNTEyLFtdLCJmNGU5IiwiTTI1NS43IDhDMTExLjYgOCA4IDEyNC44IDggMjU2IDggMzkyLjMgMTE5LjcgNTA0IDI1NS43IDUwNCAzODUuOSA1MDQgNTA0IDQwMy4xIDUwNCAyNTYgNTA0IDExNyAzOTYuNCA4IDI1NS43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjMuMiAzLjctNDUuMiAxMC45LTY2bDY1LjcgMjkuMS00LjcgMCAwIDI5LjUgMjMuMyAwYzAgNi4yLS40IDMuMi0uNCAxOS41bC0yMi44IDAgMCAyOS41IDI3IDBjMTEuNCA2NyA2Ny4yIDEwMS4zIDEyNC42IDEwMS4zIDI2LjYgMCA1MC42LTcuOSA2NC44LTE1LjhsLTEwLTQ2LjFjLTguNyA0LjYtMjguMiAxMC44LTQ3LjMgMTAuOC0yOC4yIDAtNTguMS0xMC45LTY3LjMtNTAuMmw5MC4zIDAgMTI4LjMgNTYuOGMtMS41IDIuMS01Ni4yIDEwNC4zLTE3OC44IDEwNC4zek0yMzkuNiAyNjguMWwtLjUtLjQgLjkgLjQtLjQgMHptNzcuMi0xOS41bDMuNyAwIDAtMjkuNS03MC4zIDAtMjguNi0xMi42YzIuNS01LjUgNS40LTEwLjUgOC44LTE0LjMgMTIuOS0xNS44IDMxLjEtMjIuNCA1MS4xLTIyLjQgMTguMyAwIDM1LjMgNS40IDQ2LjEgMTBsMTEuNi00Ny4zYy0xNS02LjYtMzctMTIuNC02Mi4zLTEyLjQtMzkgMC03Mi4yIDE1LjgtOTUuOSA0Mi4zLTUuMyA2LjEtOS44IDEyLjktMTMuOSAyMC4xTDg1LjUgMTQ2LjRjNjQuNi05Ni44IDE1Ny43LTkzLjYgMTcwLjctOTMuNiAxMTMgMCAyMDMgOTAuMiAyMDMgMjAzLjQgMCAxOC43LTIuMSAzNi4zLTYuMyA1Mi45TDMxNi44IDI0OC42eiJdfSxXdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibnBtIixpY29uOls1NzYsNTEyLFtdLCJmM2Q0IiwiTTI4OCAyODhsLTMyIDAgMC02NCAzMiAwIDAgNjR6TTU3NiAxNjBsMCAxOTItMjg4IDAgMCAzMi0xMjggMCAwLTMyLTE2MCAwIDAtMTkyIDU3NiAwek0xNjAgMTkybC0xMjggMCAwIDEyOCA2NCAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC0xMjh6bTE2MCAwbC0xMjggMCAwIDE2MCA2NCAwIDAtMzIgNjQgMCAwLTEyOHptMjI0IDBsLTE5MiAwIDAgMTI4IDY0IDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtMTI4eiJdfSxHdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRzY2FsZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4MyIsIk0zMTguMSAxNTRsLTkuNCA3LjZjLTIyLjUtMTkuMy01MS41LTMzLjYtODMuMy0zMy42LTcxLjYgMC0xMjkuNCA2MC44LTEyOS40IDEzMi4zIDAgNi42IC40IDEzLjEgMS40IDE5LjQtMi01NiA0MS44LTk3LjQgOTIuNi05Ny40IDI0LjIgMCA0Ni4yIDkuNCA2Mi42IDI0LjdsLTI1LjIgMjAuNGMtOC4zLS45LTE2LjggMS44LTIzLjEgOC4xLTExLjEgMTEtMTEuMSAyOC45IDAgNDAgMTEuMSAxMSAyOC45IDExIDQwIDAgNi4zLTYuMyA5LTE0LjkgOC4xLTIzLjFsNzUuMi04OC44YzYuMy02LjUtMy4zLTE1LjktOS41LTkuNnpNMjEzLjcgMjQ2LjVhMTQgMTQgMCAxIDEgMjAuNiAxOSAxNCAxNCAwIDEgMSAtMjAuNi0xOXpNMjI0IDMyYTIyNCAyMjQgMCAxIDAgMCA0NDggMjI0IDIyNCAwIDEgMCAwLTQ0OHptMCA2NGExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6Il19LFl1ZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aGVtZWNvIixpY29uOls0NDgsNTEyLFtdLCJmNWM2IiwiTTIwMi45IDguNGM5LjktNS43IDI2LTUuOCAzNi0uMkw0MzAgMTE1LjljMTAgNS42IDE4IDE5LjQgMTggMzAuOUw0NDggMzY0YzAgMTEuNC04LjEgMjUuMy0xOCAzMUwyMzguOCA1MDMuN2MtOS45IDUuNy0yNiA1LjYtMzUuOC0uMkwxNy45IDM5NS4xQzggMzg5LjMgMCAzNzUuNCAwIDM2NEwwIDE0Ni43YzAtMTEuNCA4LTI1LjQgMTcuOS0zMS4xTDIwMi45IDguNHpNMTI1LjUgMjA4LjNjLTE1LjkgMC0zMS45IC4xLTQ3LjggLjFsMCAxMDEuNCAxOS4xIDAgMC0yOS44IDI4LjcgMGM0OS43IDAgNDkuNi03MS43IDAtNzEuN3pNMjY1LjYgMzA4LjZsLTMwLjctMzQuNmMzNy03LjUgMzQuOC02NS4yLTEwLjktNjUuNS0xNi4xIDAtMzIuMi0uMS00OC4zLS4xbDAgMTAxLjYgMTkuMSAwIDAtMzMuOSAxOC40IDAgMjkuNiAzMy45IDIyLjggMCAwLTEuM3ptLTQxLjYtODIuM2MyMy4zIDAgMjMuMyAzMi41IDAgMzIuNWwtMjkuMSAwIDAtMzIuNSAyOS4xIDB6bS05NS42LTEuNmMyMS4yIDAgMjEuMSAzOC45IDAgMzguOWwtMzIuMyAwIDAtMzguOCAzMi4zIDB6bTE5Mi42LTE4LjJjLTY4LjUgMC03MSAxMDUuOCAwIDEwNS44IDY5LjUgMCA2OS40LTEwNS44IDAtMTA1Ljh6bTAgMTcuNGM0NC4xIDAgNDQuOCA3MC45IDAgNzAuOXMtNDQuNC03MC45IDAtNzAuOXoiXX0sWnVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1wbGF5IixpY29uOls0NDgsNTEyLFtdLCJmM2FiIiwiTTI5My42IDIzNC4zTDcyLjkgMTMgMzUzLjcgMTc0LjIgMjkzLjYgMjM0LjN6TTE1LjMgMEMyLjMgNi44LTYuNCAxOS4yLTYuNCAzNS4zbDAgNDQxLjNjMCAxNi4xIDguNyAyOC41IDIxLjcgMzUuM0wyNzEuOSAyNTUuOSAxNS4zIDB6TTQ0MC41IDIyNS42bC01OC45LTM0LjEtNjUuNyA2NC41IDY1LjcgNjQuNSA2MC4xLTM0LjFjMTgtMTQuMyAxOC00Ni41LTEuMi02MC44ek03Mi45IDQ5OUwzNTMuNyAzMzcuOCAyOTMuNiAyNzcuNyA3Mi45IDQ5OXoiXX0sWHVlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtvcnZ1ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjQyZiIsIk0zODcuNiAzNGwtMzI3IDBDMjcuOSAzNCAxLjEgNjAuOCAxLjEgOTMuNWwwIDMyNy4xYzAgMzIuNiAyNi44IDU5LjQgNTkuNSA1OS40bDMyNy4xIDBjMzMgMCA1OS41LTI2LjggNTkuNS01OS41bDAtMzI3QzQ0Ny4xIDYwLjggNDIwLjMgMzQgMzg3LjYgMzR6TTg4LjIgMTIwLjhsOTYgMCAwIDExNiA2MS44LTExNiAxMTAuOSAwLTgxLjIgMTMyLTE4Ny41IDAgMC0xMzJ6TTI1MCAzOTIuOWwtNjUuNy0xMTMuNiAwIDExMy42LTk2IDAgMC0xMzAuOCAxOTEuNSAwIDg4LjYgMTMwLjgtMTE4LjQgMHoiXX0sS3VlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InczYyIsaWNvbjpbNjQwLDUxMixbXSwiZTdkZSIsIk0xMDUuMiAzMDUuM2wzMC45LTEwNC43YzcuOS0yNi43IDguNi00MC42IC4yLTY4LjhsLTEwLjEtMzMuOSA0NC4xIDAgNjEgMjA3LjQgNDUuNy0xNTUuNWMxMy4zLTQ1LjMgMjEuMS01MS45IDU5LjQtNTEuOWwxMzIuOCAwYy0yNC4yIDQyLjktNDkuMyA4NS4yLTczLjkgMTI3LjkgMi42IC44IDUuMiAxLjggNy43IDIuOCAxNy4zIDcuMSAzMi4yIDE5LjQgNDIgMzUuNSAxMS4yIDE4LjUgMTYuOCA0MC4yIDE2LjggNjUuMiAwIDMwLjgtOC4yIDU2LjgtMjQuNiA3Ny44LTE0LjUgMTguNi0zNSAyOS41LTU4LjIgMzEuMiAwIC4zLTUuMiAuNC01LjggLjQtMzkuNy0uMS03MC44LTMyLjEtODMuMS02OC43bDQyLjkgMGMzLjUgNS4zIDYuOCAxMC43IDExLjIgMTUuNSA4LjEgNy4zIDE4LjUgMTAuOSAyOS4zIDExLjEgMTMuMSAwIDIzLjMtOS4xIDI5LjktMTkuOCA4LjEtMTMuMiAxMi4yLTI5IDEyLjItNDcuNSAwLTEzLjEtMS44LTI0LjMtNS4zLTMzLjYtLjktMi4zLTEuOS00LjUtMy02LjYtMS40LTIuNi0yLjktNS4xLTQuNy03LjQtMTAuMS0xMy4yLTI5LjMtMTkuNy00Ny41LTE5LjhsLTI4LjIgMCA3MC4zLTEyMi0zNS42IDBjLTQzLjEgMC0zNS45LTUuNC01MC40IDQzLjNsLTc1LjcgMjU1LjMtNC4yIDAtNjMuMS0yMTEuMS02My4xIDIxMS4xLTQuMiAwLTEwMS0zNDAuNyA0NC4yIDAgNjEgMjA3LjR6TTQ2NyAzMzUuN2MuMyAuNiAxMS4zIDIwLjMgMTguMyAzMC4zIDcuMSAxMC4xIDE5LjggMjAuOSAyNC44IDI0LjZzMTkuMSAxMi41IDM0LjMgMTMuOWMxNS4yIDEuNSAyMy4zIC4yIDM4LjctNi42IDE1LjQtNi44IDI3LjktMjAuNCAzNC45LTI4LjEgNi45LTcuNiAxNy45LTI3LjMgMTguMi0yNy43bDMuMyAxNi44YzEuNyA5LTEgMjMuNy00LjEgMzAtNC4zIDguNi03LjYgMTMuNS0xNCAyMC4zLTYuMSA2LjUtMTYuNyAxMy41LTIxLjMgMTYuNC00LjYgMi45LTIzLjEgMTUuMS01MC4xIDEwLjNzLTQ0LjctMjUuOS01My45LTM4LjJjLTkuOC0xMy4yLTE2LjctMjguMy0xOS0zMy4yLTMuOC04LjQtOS45LTI4LjItMTAuMS0yOC44em0xNjkuNy0yMThjMy4zIDIwLjMtLjEgMjguNy05LjEgNDZsLTEyLjcgMjQuMmMtLjMtLjYtMTAtMjAuNy0yNS45LTMxLjktMTMuNi05LjYtMjIuNS0xMS43LTM2LjMtOC44LTE3LjggMy43LTM4IDI1LTQ2LjggNTEuMi0xMC41IDMxLjQtMTAuNyA0Ni42LTExIDYwLjYtLjYgMjIuNCAyLjkgMzUuNiAyLjkgMzUuNnMtMTUuNC0yOC41LTE1LjItNzAuMWMuMS0yOS43IDQuOC01Ni43IDE4LjUtODMuMyAxMi4xLTIzLjQgMzAuMS0zNy40IDQ2LjEtMzkuMSAxNi41LTEuNyAyOS42IDYuMyAzOS43IDE0LjkgMTAuNiA5IDIxLjMgMjguOCAyMS4zIDI4LjhsMjQuOS00OS44IDMuNiAyMS44eiJdfSxRdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JhdiIsaWNvbjpbNTEyLDUxMixbXSwiZjJkNiIsIk0zMDIuNiAyMTAuNmM0LjUgNC41IDQuNSAxMi4zIDAgMTYuOGwtMTAgMTBjLTQuNSA0LjktMTIuMyA0LjktMTcuMSAwbC0xMC44LTEwLjhjLTQuNS00LjktNC41LTEyLjMgMC0xNy4xbDEwLTEwYzQuNS00LjUgMTIuMy00LjUgMTcuMSAwbDEwLjggMTEuMXptLTMxLjItMjAuM2E3LjcgNy43IDAgMSAwIC0xMC42LTExIDcuNyA3LjcgMCAxIDAgMTAuNiAxMXptLTI2LjggNS41YTcuNSA3LjUgMCAxIDAgMTAuNyAxMC41IDcuNSA3LjUgMCAxIDAgLTEwLjctMTAuNXpNMzE5LjQgMTgyYy0yMC41LTE0LjktMzQuOS00NC42LTEyLjMtNzAuMyAyMi4zLTI1LjcgNDItMTcuOCA2MS43IC44IDEyLjMgMTEuNyAzMC4yIDI1LjcgMTcuOCA0OS44LTEyLjkgMjQuMy00Ni42IDM0LjMtNjcuMiAxOS43em00OS4yLTQ1LjljLTkuMi0xMC4zLTI0LjEgNy4xLTE2IDE2LjYgNy42IDkuMyAzMy4xIDIuNSAxNi0xNi42ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem00NDMuNyA0NGMyLjYtMTYuNi0yMC45LTE3LjEtMjYtMjYuNS0xNC0yNC45LTI4LjYtMzgtNTYuMy0zMS40IDEyLTguMyAyNC4zLTYuMyAyNC4zLTYuMyAuMy02LjYgMC0xMy40LTkuNy0yNS43IDQtMTIuOSAuMy0yMy4xIC4zLTIzLjEgMTYtOC45IDI3LjctMjUuMiAzMC00NC42IDMuNy0zMi0xOS40LTYxLjEtNTEuNC02NC44LTIyLjgtMi42LTQ1LjEgNy45LTU2LjEgMjYuNS0yMy45IDQxLjQgMS40IDczLjIgMjMuMSA4NC0xNC45LTEuNC0zNS40LTEyLjMtNDEuNC0zNS40LTYuOC0yNi41IDIuOS01MS40IDkuMi02My40IDAgMC00LjUtNi04LjMtOS4yIDAgMC0xNC4yIDAtMjUuNCA1LjUgMTIuMy0xNS43IDI2LTE0LjkgMjYtMTQuOSAwLTYuNi0uNi0xNS40LTMuNy0yMi4zLTUuNi0xMS40LTI0LjYtMTMuMy0zMi43IDIuOSAuMS0uMiAuMy0uNCAuNC0uNS01LjIgMTIuMy0xLjEgNTcuNyAxNy40IDkwLTIuNiAxLjQtOS40IDYuMy0xMy40IDEwLjMtMjIuMyAxMC01OCA2Mi4yLTU4IDYyLjItMjkuMSAxMS4xLTc5LjcgNTIuNS03Mi45IDgyLjMgLjMgMy4xIDEuNCA1LjcgMy4xIDcuNy0yLjkgMi4zLTUuNyA1LjItOC42IDguNi0xMi4zIDE0LjItNS41IDM2LjMgMTguMyAyNS4yIDE2LjMtNy40IDMwLjYtMjAuOSAzNy41LTMxLjQgMCAwLTUuNy01LjItMTYuOC00LjUgMjguNi02LjggMzUuNC05LjcgNDcuNy05LjQgOC4zIDQgOC4zLTM1LjQgOC4zLTM1LjQgMC0xNS4yLTIuMy0zMi0xMS41LTQyLjggMTIuOSAxMi42IDMwIDMzLjggMjguOSA2Mi42LS44IDE4LjktMTUuNyAyMy43LTE1LjcgMjMuNy05LjQgMTcuMS00NC42IDY4LTMxLjQgMTA5LjQgMCAwLTEwLTE1LjQtMTAuNS0yMi44LTE4IDIwLTQ4IDU0LTI1LjQgNjYuNiAyNy41IDE1LjIgMTEyLjMtOTEuNSAxMzAuMy0xNDYuOSAzNS43LTIxLjUgNTcuMi00OC44IDY2LTY3LjEgMjIuNyA0NC45IDk4LjQgOTcuNSAxMDQuNCA2MC45eiJdfSxKdWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXdzIixpY29uOls2NDAsNTEyLFtdLCJmMzc1IiwiTTE4MC40IDIwM2MtLjcgMjIuNiAxMC42IDMyLjcgMTAuOSAzOS0uMSAxLjMtLjYgMi41LTEuMyAzLjZzLTEuNyAyLTIuOCAyLjZsLTEyLjggOWMtMS43IDEuMi0zLjYgMS44LTUuNiAxLjktLjQgMC04LjIgMS44LTIwLjUtMjUuNi03LjUgOS40LTE3IDE2LjktMjcuOSAyMnMtMjIuNyA3LjctMzQuNyA3LjVjLTE2LjMgLjktNjAuNC05LjItNTguMS01Ni4yLTEuNi0zOC4zIDM0LjEtNjIuMSA3MC45LTYwIDcuMSAwIDIxLjYgLjQgNDcgNi4zbDAtMTUuNmMyLjctMjYuNS0xNC43LTQ3LTQ0LjgtNDMuOS0yLjQgMC0xOS40LS41LTQ1LjggMTAuMS03LjQgMy40LTguMyAyLjgtMTAuOCAyLjgtNy40IDAtNC40LTIxLjUtMi45LTI0LjIgNS4yLTYuNCAzNS45LTE4LjQgNjUuOS0xOC4yIDIwLjEtMS44IDQwLjEgNC40IDU1LjcgMTcuMyA2LjMgNy4xIDExLjIgMTUuNCAxNC4yIDI0LjRzNC4yIDE4LjUgMy41IDI4bDAgNjkuM3pNOTQgMjM1LjRjMzIuNC0uNSA0Ni4yLTIwIDQ5LjMtMzAuNSAyLjUtMTAuMSAyLjEtMTYuNCAyLjEtMjcuNC05LjctMi4zLTIzLjYtNC45LTM5LjYtNC45LTE1LjItMS4xLTQyLjggNS42LTQxLjcgMzIuMy0xLjIgMTYuOCAxMS4xIDMxLjQgMzAgMzAuNXptMTcwLjkgMjMuMWMtNy45IC43LTExLjUtNC45LTEyLjctMTAuNEwyMDIuNCA4My40Yy0xLTIuOC0xLjYtNS42LTEuOS04LjYtLjItMS4yIC4xLTIuNCAuOC0zLjRzMS44LTEuNiAzLTEuOGMuMiAwLTIuMSAwIDIyLjIgMCA4LjgtLjkgMTEuNiA2IDEyLjYgMTAuNEwyNzQuOSAyMjAuOCAzMDguMSA4MGMuNS0zLjIgMi45LTExLjEgMTIuOC0xMC4ybDE3LjIgMGMyLjItLjIgMTEuMS0uNSAxMi43IDEwLjRMMzg0LjEgMjIyLjcgNDIxIDgwLjFjLjUtMi4yIDIuNy0xMS40IDEyLjctMTAuNGwxOS43IDBjLjktLjEgNi4yLS44IDUuMyA4LjYtLjQgMS44IDMuNC0xMC43LTUyLjggMTY5LjktMS4xIDUuNS00LjggMTEuMS0xMi43IDEwLjRsLTE4LjcgMGMtMTAuOSAxLjItMTIuNS05LjctMTIuNy0xMC43bC0zMy4yLTEzNy4xLTMyLjggMTM3Yy0uMiAxLjEtMS43IDExLjktMTIuNyAxMC43bC0xOC4zIDAgMCAwem0yNzMuNSA1LjZjLTUuOSAwLTMzLjktLjMtNTcuNC0xMi4zLTIuMy0xLTQuMy0yLjYtNS43LTQuOHMtMi4xLTQuNi0yLjEtNy4xbDAtMTAuN2MwLTguNSA2LjItNi45IDguOC01LjkgMTAgNC4xIDE2LjUgNy4xIDI4LjggOS42IDM2LjcgNy41IDUyLjgtMi4zIDU2LjctNC41IDEzLjItNy44IDE0LjItMjUuNyA1LjMtMzQuOS0xMC41LTguOC0xNS41LTkuMS01My4xLTIxLTQuNi0xLjMtNDMuNy0xMy42LTQzLjgtNTIuNC0uNi0yOC4yIDI1LTU2LjIgNjkuNS01NiAxMi43IDAgNDYuNCA0LjEgNTUuNiAxNS42IDEuNCAyLjEgMiA0LjYgMS45IDdsMCAxMC4xYzAgNC40LTEuNiA2LjctNC45IDYuNy03LjctLjktMjEuNC0xMS4yLTQ5LjItMTAuOC02LjktLjQtMzkuOSAuOS0zOC40IDI1LS40IDE5IDI2LjYgMjYuMSAyOS43IDI2LjkgMzYuNSAxMSA0OC42IDEyLjggNjMuMSAyOS42IDE3LjEgMjIuMiA3LjkgNDguMyA0LjMgNTUuNC0xOS4xIDM3LjUtNjguNCAzNC40LTY5LjMgMzQuNHptNDAuMiAxMDQuOWMtNzAgNTEuNy0xNzEuNyA3OS4yLTI1OC41IDc5LjItMTE3LjEgLjgtMjMwLjMtNDIuMy0zMTcuMy0xMjAuNy02LjUtNS45LS44LTE0IDcuMi05LjUgOTYuNSA1NS4yIDIwNS43IDg0LjIgMzE2LjkgODQuMSA4My0uNCAxNjUuMS0xNy4zIDI0MS42LTQ5LjUgMTEuOC01IDIxLjggNy44IDEwLjEgMTYuNHptMjkuMi0zMy4zYy05LTExLjUtNTkuMy01LjQtODEuOC0yLjctNi44IC44LTcuOS01LjEtMS44LTkuNSA0MC4xLTI4LjIgMTA1LjktMjAuMSAxMTMuNC0xMC42IDcuNSA5LjUtMi4xIDc1LjQtMzkuNiAxMDYuOS01LjggNC45LTExLjMgMi4zLTguNy00LjEgOC40LTIxLjMgMjcuNC02OC41IDE4LjQtODB6Il19LGVmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnbGlkZS1nIixpY29uOls0NDgsNTEyLFtdLCJmMmE2IiwiTTQwNy4xIDIxMS4yYy0zLjUtMS40LTExLjYtMy44LTE1LjQtMy44LTM3LjEgMC02Mi4yIDE2LjgtOTMuNSAzNC41bC0uOS0uOWM3LTQ3LjMgMjMuNS05MS45IDIzLjUtMTQwLjQgMC03MS41LTM4LjItMTAwLjYtMTA4LjQtMTAwLjYtMTE1LjEgMC0xNzMuNCAxMTMuNy0xNzMuNCAxOTguNCAwIDg3LjkgNTEuMyAxMzYuNiAxMzguNiAxMzYuNiAxMiAwIDExLTEgMTEgMy44LTE2LjkgMTI4LjktOTAuOCAxMzMuMS05MC44IDk0LjYgMC0zOS4yIDQ1LTU4LjYgNDUuNS02MS0uMy0xMi4yLTQ3LTI3LjYtNTguOS0yNy42LTMzLjkgLjEtNTIuNCA1MS4yLTUyLjQgNzkuMyAwIDUxLjkgMzIuOCA4Ny45IDg1LjUgODcuOSA3Ny40IDAgMTM0LTc3LjggMTUxLjQtMTQ1LjQgMTUuMS02MC41IDExLjItNjMuMyAxOS43LTY3LjYgMzIuMi0xNi4yIDU3LjUtMjcgOTMuOC0yNyAxNy44IDAgMzAuNSAzLjcgNTguOSA4LjQgMi45IDAgNi43LTIuOSA2LjctNS44IDAtOC0zMy40LTYwLjUtNDAuOS02My40ek0yMzEuOCAxMjYuOGMtOS4zIDQ0LjctMTguNiA4OS42LTI3LjggMTM0LjMtMi4zIDEwLjItMTMuMyA3LjgtMjIgNy44LTM4LjMgMC00OS00MS44LTQ5LTczLjEgMC00NyAxOC0xMDkuMyA2MS44LTEzMy40IDctNC4xIDE0LjgtNi43IDIyLjYtNi43IDE4LjYgMCAyMCAxMy4zIDIwIDI4LjctLjEgMTQuMy0yLjcgMjguNS01LjYgNDIuNHoiXX0sdGZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImpzZmlkZGxlIixpY29uOls1NzYsNTEyLFtdLCJmMWNjIiwiTTUxMS4xIDIzNy41Yy00LjctMi42LTUuNy01LjctNi40LTEwLjgtMi40LTE2LjUtMy41LTMzLjYtOS4xLTQ5LjEtMzUuOS0xMDAtMTU0LTE0My40LTI0Ni44LTkxLjYtMjcuNCAxNS4yLTQ5IDM2LjQtNjUuNSA2My45LTMuMi0xLjUtNS41LTIuNy03LjgtMy43LTMwLjEtMTIuNC01OS0xMC4xLTg1LjMgOS4yLTI1LjUgMTguNy0zNi40IDQ0LjUtMzIuNyA3Ni40IC40IDMtMiA3LjYtNC41IDkuNS0zOS43IDMwLTU2IDc4LjEtNDEuOSAxMjQuNiAxMy44IDQ1LjYgNTcuNSA3OS44IDEwNS42IDgxLjQgMzAuMyAxIDYwLjYgLjUgOTEgLjUgODQgMCAxNjguMSAuNSAyNTIuMS0uNSA1Mi43LS42IDk2LjEtMzYuOSAxMDguMi04Ny4zIDExLjUtNDguMS0xMS4xLTk3LjMtNTYuOC0xMjIuNnptMjEuMSAxNTYuOWMtMTguMiAyMi40LTQyLjMgMzUuMy03MS4zIDM1LjctNTYuOSAuOC0xMTMuOCAuMi0xNzAuNyAuMiAwIC43LTE2MyAuMi0xNjMuNyAuMi00My45LS4zLTc2LjctMTkuOC05NS4yLTYwLTE4LjktNDEuMi00LTkwLjggMzQuMi0xMTYuMSA5LjItNi4xIDEyLjUtMTEuNiAxMC4xLTIzLjEtNS41LTI2LjQgNC41LTQ4IDI2LjQtNjMgMjMtMTUuNyA0Ny40LTE2LjEgNzItMy4xIDEwLjMgNS40IDE0LjYgMTEuNiAyMi4yLTIuNSAxNC4yLTI2LjQgMzQuNi00Ni43IDYwLjctNjEuMyA5Ny41LTU0LjQgMjI4LjQgNy42IDIzMC4yIDEzMi43IC4xIDguMiAyLjQgMTIuNCA5LjggMTUuOSA1Ny42IDI2LjggNzQuNSA5Ni4xIDM1LjEgMTQ0LjV6bS04Ny44LTgwLjVjLTUuOCAzMS4yLTM0LjYgNTUuMS02Ni43IDU1LjEtMTcgMC0zMi4xLTYuNS00NC4xLTE3LjctMjcuNy0yNS43LTcxLjEtNzUtOTUuOS05My40LTIwLjEtMTQuOS00Mi0xMi4zLTYwLjMgMy44LTUwIDQ0LjEgMTUuOSAxMjEuOCA2Ny4xIDc3LjIgNC41LTQgNy44LTkuNSAxMi43LTEyLjggOC4yLTUuNSAyMC44LS45IDEzLjIgMTAuNi0xNy40IDI2LjMtNDkuMyAzOC4yLTc4LjkgMjkuMy0yOC45LTguNy00OC44LTM2LTQ4LjYtNzAuMiAxLjItMjIuNSAxMi40LTQzLjEgMzUuNC01NiAyMi42LTEyLjYgNDYuNC0xMy4xIDY3IDIuNSA1MC44IDM4LjUgNzUuNiA4MS43IDEwNy4zIDEwMS4yIDI0LjYgMTUuMSA1NC4zIDcuNCA2OC44LTE3LjUgMjguOC00OS4yLTM0LjYtMTA1LTc4LjktNjMuNS00IDMuNy02LjkgOC45LTExLjQgMTEuNy0xMSA2LjgtMTcuMy00LjEtMTIuOC0xMC40IDIwLjctMjguNiA1MC41LTQwLjQgODMuMy0yOC4yIDMxLjQgMTEuNyA0OS4xIDQ0LjQgNDIuOCA3OC4yeiJdfSxhZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2V5YmFzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjRmNSIsIk0yODYuMiA0MTlhMTggMTggMCAxIDAgMCAzNiAxOCAxOCAwIDEgMCAwLTM2ek0zOTguMSAyNzEuNGMtOS41LTE0LjYtMzkuNC01Mi40LTg3LjMtNzMuNy02LjEtMi43LTEyLjItNS4xLTE4LjQtNy4zIDQuMS05LjkgNi0yMC42IDUuOC0zMS40cy0yLjctMjEuMy03LjItMzEuMS0xMC45LTE4LjUtMTguOS0yNS43LTE3LjQtMTIuNi0yNy42LTE2Yy0xMi40LTQuMS0yMy4zLTYtMzIuNC01LjgtLjYtMi0xLjktMTEgOS40LTM1bC0yMi45LTEzLjUtNS41IDcuNmMtOC43IDEyLjEtMTYuOSAyMy42LTI0LjMgMzQuOS0yLjctLjYtNS41LTEuMS04LjMtMS4yLTQxLjUtMi40LTM5LTIuMy00MS4xLTIuMy01MC42IDAtNTAuOCA1Mi4xLTUwLjggNDUuOWwtMi40IDM2LjdjLTEuNiAyNyAxOS44IDUwLjIgNDcuNiA1MS44bDguOSAuNUMxMDYgMjE1LjUgOTAuNCAyMjcuNSA3Ni42IDI0MS40IDE0IDMwNC43IDE0IDM3NCAxNCA0MjkuOGwwIDMzLjYgMjMuMy0yOS44YzMuMSAxMy4xIDggMjUuOCAxNC42IDM3LjYgNS44IDEwLjEgMTQuOSA5LjQgMTkuNiA3LjMgNC4yLTEuOSAxMC02LjkgMy44LTIwLjEtOC0xNi44LTEzLjMtMzQuNy0xNS44LTUzLjFsNDYuOC01OS44LTI0LjcgNzQuMWM1OC4yLTQyLjQgMTU3LjQtNjEuOCAyMzYuMi0zOC42IDM0LjIgMTAuMSA2Ny40IC43IDg0LjctMjMuOCAuNy0xIDEuMi0yLjIgMS44LTMuMiAxLjggOS40IDIuNyAxOC45IDIuOCAyOC40IDAgMjMuMy0zLjcgNTIuOS0xNC45IDgxLjYtMi41IDYuNSAxLjggMTQuNSA4LjYgMTUuNyA3LjQgMS42IDE1LjMtMy4xIDE4LjQtMTEuMSA5LjYtMjUuNSAxNC42LTU0LjYgMTQuNi04Ni4yIDAtMzguNi0xMy03Ny41LTM1LjktMTEwLjl6TTE0Mi40IDEyOC42bC0xNS43LS45LTEuNCAyMS44IDEzLjEgLjhjLS42IDYuNS0uNSAxMy4xIC4zIDE5LjZsLTIyLjQtMS4zYy0xLjYtLjEtMy4yLS41LTQuNy0xLjFzLTIuOC0xLjYtMy45LTIuOC0xLjktMi42LTIuNS00LjEtLjgtMy4xLS43LTQuN0wxMDcgMTE5YzEtMTIuMiAxMy45LTExLjMgMTMuMy0xMS4zbDI5LjEgMS43Yy0yLjggNi4yLTUuMSAxMi42LTcgMTkuMnpNMjkwLjggMzAwLjhjLTIuMSAxLjYtNC44IDIuNC03LjUgMi4ycy01LjEtMS41LTYuOS0zLjVsLTkuNy0xMS41LTM0LjQgMjdjLTEuNiAxLjMtMy43IDEuOS01LjggMS43cy00LTEuMi01LjMtMi44bC0xNS44LTE4LjZjLTEuMi0xLjYtMS43LTMuNS0xLjUtNS40czEuMy0zLjcgMi44LTQuOWwzNC42LTI3LjItMTQuMS0xNi43LTE3LjEgMTMuNWMtMS42IDEuMi0zLjUgMS44LTUuNSAxLjZzLTMuOC0xLjEtNS4xLTIuNmMwIDAtMy43LTQuNC0zLjgtNC41LTEuMi0xLjYtMS43LTMuNS0xLjUtNS41czEuMy0zLjcgMi44LTQuOUwyMTQgMjI1LjJzLTE4LjUtMjItMTguNi0yMi4xYy0uOC0xLTEuMy0yLjEtMS43LTMuM3MtLjQtMi41LS4zLTMuNyAuNi0yLjQgMS4yLTMuNSAxLjUtMiAyLjUtMi44YzIuMS0xLjcgNC44LTIuNCA3LjQtMi4yczUuMSAxLjUgNi45IDMuNmw4MS4xIDk2LjNjLjggMSAxLjMgMi4xIDEuNyAzLjNzLjQgMi41IC4zIDMuNy0uNiAyLjUtMS4yIDMuNS0xLjUgMi4xLTIuNSAyLjh6TTE4Ny40IDQxOWExOCAxOCAwIDEgMCAwIDM2IDE4IDE4IDAgMSAwIDAtMzZ6Il19LGlmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsdW1vbi1kcm9wIixpY29uOls1NzYsNTEyLFtdLCJlN2UzIiwiTTQ4MCAzMmM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZMOTYgNDQ4Yy01MyAwLTk2LTQzLTk2LTk2TDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzg0IDB6TTMwMi40IDExNC43Yy05LjgtMTYuNC0yMC41LTE2LjQtMjkuNiAwbC02OC45IDExNGMtMTAuNyAxNS42LTE2LjQgMzIuOC0xNi40IDUyLjUgMCA1MC45IDQ0LjMgOTQuMyAxMDAuMSA5NC4zIDU1IDAgMTAwLjktNDMuNSAxMDAuOS05NC4zIDAtMTkuNy02LjYtMzcuOC0xNy4yLTUyLjVsLTY4LjktMTE0eiJdfSxyZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9yZ2VqbyIsaWNvbjpbMzIwLDUxMixbXSwiZTg2MCIsIk0yNjEuNSAxLjJjMzQgMCA2MS42IDI3LjYgNjEuNiA2MS42cy0yNy42IDYxLjYtNjEuNiA2MS42Yy0yMyAwLTQzLjEtMTIuNy01My43LTMxLjRsLTI4LjUgMGMtMjQgMC00NyA5LjUtNjQgMjYuNXMtMjYuNSA0MC0yNi41IDY0bDAgNDMuNWMyNi0xOS41IDU3LjctMzAuMiA5MC42LTMwLjJsMjguNSAwYzEwLjYtMTguNyAzMC42LTMxLjQgNTMuNy0zMS40IDM0IDAgNjEuNiAyNy42IDYxLjYgNjEuNnMtMjcuNiA2MS42LTYxLjYgNjEuNmMtMjMgMC00My4xLTEyLjctNTMuNy0zMS40bC0yOC41IDBjLTI0IDAtNDcgOS41LTY0IDI2LjVzLTI2LjUgNDAtMjYuNSA2NGwwIDQ3LjhjMTguNyAxMC42IDMxLjQgMzAuNiAzMS40IDUzLjYgMCAzNC0yNy42IDYxLjYtNjEuNiA2MS42Uy0zIDQ4My4yLTMgNDQ5LjJjMC0yMyAxMi43LTQzLjEgMzEuNC01My42bDAtMjEyYzAtNDAgMTUuOS03OC40IDQ0LjItMTA2LjdzNjYuNy00NC4yIDEwNi43LTQ0LjJsMjguNSAwYzEwLjYtMTguNyAzMC42LTMxLjQgNTMuNy0zMS40ek01OC42IDQyMy45Yy0xNCAwLTI1LjMgMTEuMy0yNS4zIDI1LjNzMTEuMyAyNS40IDI1LjMgMjUuNCAyNS40LTExLjQgMjUuNC0yNS40LTExLjQtMjUuMy0yNS40LTI1LjN6TTI2MS41IDIwMS43YTI1LjQgMjUuNCAwIDEgMCAwIDUwLjcgMjUuNCAyNS40IDAgMSAwIDAtNTAuN3ptMC0xNjQuMmEyNS40IDI1LjQgMCAxIDAgMCA1MC43IDI1LjQgMjUuNCAwIDEgMCAwLTUwLjd6Il19LHNmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwb3N0Z3Jlc3FsIixpY29uOls1MTIsNTEyLFtdLCJlODU4IiwiTTIxOS44IDE3MS4zYzMuOSAuNSAxMy4xIDIuNyAxMi4zIDguNS0uOCA1LjktOS4yIDkuMS0xNC4yIDguNC00LjctLjctMTMuMi02LjEtMTIuMy0xMi4xbC4zLTIuMWM0LjIgMCA4LjMtMy41IDEzLjktMi43em0xNjguMS0zLjRjMTAuOCAyLjYtMS4xIDEzLjUtNi44IDE0LjMtNC4zIC42LTEyLjEtMi4yLTEyLjgtNy40LTEtNy40IDE1LjctNy45IDE5LjctNi45em0tMjItMTQwLjhjMzUuNy0uMyA4MS4zIDkuNCAxMTQuMyA1MS43IDcuMiA5LjIgMTAgMjQgOS43IDQwLjktLjggNDkuNi0yNiAxMjkuNC03MC43IDE5Ny40IDQuNSAyLjkgMTcuNiA3LjQgNTEuMSAuNSA1LjYtMS4yIDEyLjctMi4yIDE3LjYgMS42IDE4LjIgMTMuOS0xOS42IDM1LjEtMjguNCAzOS4yLTEzLjIgNi4yLTM0LjggOS41LTUxLjIgOC43LTIuMS0uMi00LjMtLjItNi4zLS42LTUuMS0xLjEtNy40LTEtOC4zLS43LTEuMSAuMy0xLjQgMi45LTEuNiAzLjgtMi44IDI0LjktNy43IDY0LjctMTAuNyA4Mi0yLjggMTYuMy03LjcgMjkuMy0xNy4yIDM5LjItOS41IDkuOS0yMi44IDE1LjctNDAuNiAxOS41LTIyLjMgNC44LTM3LjktLjEtNDguNy05LjEtMTAuMy04LjctMTUuMi0yMC40LTE4LTI3LjQtMS44LTQuNS0zLTExLjUtNC0xOS44LTIuMy0xOS44LTMuMy01MC40LTMtODMuMy0yNC42IDIyLjEtNTUgMTcuMi02OC4yIDEzLjktMTAuNS0yLjYtMzMtMTYuMS0xNy41LTI4LjcgMTEuOS05LjcgMzAuMy01LjUgNDIuMi0xNSAyLjQtMS45IDExLjQtMTAuNiAxMS40LTEzLjUtMTAtLjMtMTkuNi0yLjktMjguMS03LjUtMTMuNSAxNC41LTI2LjQgMjkuNS0zOS4zIDQ0LjYtOC4zIDkuOS0xNy40IDE1LjgtMjcuNCAxNi4yLTkuOSAuNC0xOC43LTQuNi0yNi4xLTExLjgtNy4zLTcuMS0xNC4xLTE3LjItMjAuNC0yOS0xOS0zNS41LTMzLjItODYuMS00Mi4zLTEyNi40LTYtMjYuNy05LjYtNDkuMS0xMC4xLTU5LTIuMi00NC4zIDgtNzQuMSAyNi05My4yIDE3LjktMTkgNDIuNC0yNiA2Ni4xLTI3LjQgMzUuNi0yIDcxIDguNSA4Ni42IDEzLjhsNSAxLjhjMTUuOS0xMC44IDM2LjEtMTcuNCA2MS43LTE3IDEzLjIgLjIgMjUuNSAyLjIgMzYuNyA0LjIgMTguNi03LjEgMzkuOC05LjUgNTkuNC05Ljd6bS05NiAyMC41Yy0yNC43LS40LTQyLjkgNi41LTU2LjYgMTYuOC0uOCAuNi0xLjggMS0yLjggMS4yLTE0LjQgMTEuOC0yMy45IDI4LTMwLjMgNDQuOC03LjIgMTkuMS0xMCAzOC41LTExLjEgNTEuNSA3LjYtNC4zIDE3LjktOC43IDI4LjctMTEuMiAxMC41LTIuNCAyMi40LTMuMiAzMi43IC44IDEwLjkgNC4yIDE5IDEzLjMgMjIuMiAyOC4xIDcuNSAzNC43IDYuNyA1OC4yIDIuNyA3NS45LTQuOCAyMS0xNi44IDM5LjUtMjEuOSA2MC40IDMuNS0uOSA3LjEtLjYgOS44IC4xbDcuMiAyLjljNy43IDQuNCAxMi44IDEzIDE0IDIxLjcgMiA2IC4xIDE0LjMgMCAyMC42IDYuNyAxNi4zIDcuMiAzNi4xIDYuNyA1My4zLS43IDI1LTEgNDAuMiAzLjIgNTEuNyAyLjkgNy45IDQuNyAxNi40IDEwLjQgMjIuOCAyLjYgMyA2LjEgNS41IDEwLjkgNi44IDE4LjUgNS4xIDQ0LTQuNyA1Ni42LTE4LjIgNy43LTguMiAxMi4zLTE5LjMgMTMuNC0zMy45IDEuMS0xMy42IDQuMi0yNy42IDYuMy00MS4xbDIuOS04LjhjMS43LTE0LjggMy40LTI5LjYgNS00NC40LS40LTkuMSAuOS0xNi4xIDMuOS0yMS41IDMuMS01LjcgNy42LTguOSAxMS44LTEwLjggMS44LS44IDMuOS0xLjIgNS42LTItMS42LTIuNC0zLjYtNC42LTUuMy02LjgtOC4yLTEwLjQtMTMuMy0yMi4zLTE5LjctMzMuOC04LjUtMTUuMi0yMy44LTQyLjItMzAuMS02Ny41LTQuMS0xNi40LTQuOS0zNC41IDYtNDcgOS44LTExLjIgMjYuOS0xNS41IDUxLjktMTMtMy40LTEwLTExLjQtMjcuNS0yNC44LTQ0LjctMTgtMjMtNDUuNy00NS45LTg1LjctNTMuMS03LjMtLjktMTUuMi0xLjUtMjMuNi0xLjd6bS0zMi4yIDI4MmMtOCAuNy0xNS41IDE4LjItMjEuNyAyMy4xLTYuMiA0LjktMTQuNSA3LjYtMzAgMTAuNy00LjUgLjktNy43IDEuOS05LjcgMi44IDIyLjMgMTUuOCA1OC4zIDMuMiA3Mi42LTE2LjggMS43LTIuNCAyLjEtNiAuNS0xMC4yLTEuNy00LjUtNi40LTEwLjEtMTEuOS05LjZ6TTExNy42IDQ5LjJjLTIxLjYgMS4yLTQyIDcuNS01Ni40IDIyLjgtMTQuNCAxNS4yLTI0LjIgNDAuNi0yMi4xIDgyLjUgLjQgOC41IDMuOCAzMCA5LjggNTYuNiA4LjkgMzkuOCAyMy43IDkwLjMgNDAuNiAxMjIuMiA2IDExLjEgMTcuNCAzMyAzMi44IDMyLjMgNC40LS4yIDEwLjEtMi44IDE3LTExIDEyLjYtMTQuOCAyNS4yLTI5LjUgMzguNS00My43LTE3LjktMTUuNC0yOC41LTQwLjMtMjQuOC02Ny4yIDMuNC0yNC4zIC41LTQ4LjIgMS4yLTcyLjUgLjQtMTEuOSAyLjMtMzguNyAxMi42LTY1LjggNS45LTE1LjUgMTQuNS0zMS4zIDI3LjQtNDQuMi0xNi40LTUuNC00Ny4xLTEzLjUtNzYuNi0xMS45ek00MDUuMSAzMjguOWMtMy44IDEuMS02LjcgMi4yLTguNyA1LjgtMS4zIDIuNC0yLjUgNi43LTIuMiAxNC4yIDQuOCAzLjkgMTQuMSAzLjMgMTkuOCAzLjIgMTMuOS0uMiAyOS45LTMuMSAzOS4zLTcuNSA3LjktMy43IDE0LjctOC4zIDE5LTEyLjItMzguMiA3LjctNTUuNCAyLjEtNjMuMi00LjgtMS4zIC40LTIuOSAuOS0zLjkgMS4yek0yMjUuMyAxNjQuOWMtMTUuNC01LjktMzUuNCAxLjgtNDguOSA5LjQtMy42IDItNi41IDQtNy45IDUuMiAuNCA4LjggMi44IDM2LjEtMS40IDY2LjMtNS4xIDM2LjYgMjEuNyA2Ni42IDUyLjUgNjYuNyA1LjEtMjAuOCAxNy0zOS4yIDIxLjgtNjAuMSAzLjUtMTUuMyA0LjUtMzYuNi0yLjctNjkuNy0yLjMtMTAuNS03LjQtMTUuNC0xMy40LTE3Ljd6TTM3MC4xIDQyLjJjLTE1LjItLjItMjguOCAxLjctMzkuMiAzLjggMjYgMTEuOCA0NS42IDI5LjcgNTkuNiA0Ny42IDE3LjQgMjIuMiAyNi4zIDQ0LjEgMjkgNTUgLjcgMi43IDEuMyA1LjcgLjUgOC40IC42IDE4LjktNCAzMS4zLTQuNiA0OS4yLS40IDEyLjkgMi45IDI4LjEgMy43IDQ0LjcgLjggMTUuNy0xIDMyLjUtMTEuMiA0OS41IC44IDEgMS42IDIuMSAyLjQgMy4xIDI2LjgtNDIuMiA0Ni04OC42IDU2LjMtMTI4LjUgNS41LTIxLjQgOC40LTQwLjcgOC43LTU2LjEgLjItMTUuMi0yLTI1LjQtNS44LTMwLjQtMjguMy0zNi4xLTY2LjgtNDUuOC05OS4zLTQ2LjJ6bTM1LjYgMTE5LjVjLTI1LjMtMy4yLTM3LjMgMS41LTQyLjggNy43LTYgNi44LTYuOCAxOC41LTIuOSAzNC4xIDUuNyAyMi42IDIwLjEgNDguNiAyOC43IDY0IDMuNiA2LjQgNi40IDEzLjEgMTAgMTkuNCA1LjUtMTEuNyA2LjYtMjMuNSA2LTM1LjUtLjctMTUtNC4yLTMwLjMtMy43LTQ1LjhsLjQtNy40YzEuMi0xNC4zIDQuMS0yNC42IDQuMi0zNi41eiJdfSxuZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2VlYmx5IixpY29uOls1MTIsNTEyLFtdLCJmNWNjIiwiTTQyNS4xIDY1LjhjLTM5LjkgMC03My4zIDI1LjctODMuNyA2NC4zLTE4LjItNTguMS02NS41LTY0LjMtODUtNjQuMy0xOS44IDAtNjYuOCA2LjMtODUuMyA2NC4zLTEwLjQtMzguNi00My40LTY0LjMtODMuNy02NC4zLTQ5IDAtODcuNSAzMy45LTg3LjUgNzcuMiAwIDI5IDQuMiAzMy4zIDc3LjIgMjMzLjUgMjIuNCA2MC42IDY3LjggNjkuNCA5Mi43IDY5LjQgMzkuMiAwIDcwLTE5LjUgODUuOS01NCAxNS45IDM0LjggNDYuNyA1NC4zIDg1LjkgNTQuMyAyNSAwIDcwLjQtOS4xIDkyLjctNjkuNyA3Ni42LTIwOC42IDc3LjUtMjA1LjYgNzcuNS0yMjcuMiAuNi00OC4zLTM2LTgzLjUtODYuOS04My41em0yNi4zIDExNC44TDM4NS45IDM1Ny4xYy03LjkgMjEuNS0yMS4yIDM3LjItNDYuMiAzNy4yLTIzLjQgMC0zNy40LTEyLjQtNDQtMzMuOWwtMzkuMy0xMTcuNC0xIDAtMzkuMyAxMTcuNGMtNyAyMS41LTIwLjkgMzMuNi00NCAzMy42LTI1IDAtMzguMy0xNS43LTQ2LjItMzcuMkw2MC45IDE4MS42Yy01LjQtMTQuOC03LjktMjMuOS03LjktMzQuNSAwLTE2LjMgMTUuOC0yOS40IDM4LjMtMjkuNCAxOC43IDAgMzIgMTEuOCAzNi4xIDI5LjFsNDQgMTM5LjggMSAwIDQ0LjctMTM2LjhjNi0xOS43IDE2LjUtMzIuMSAzOS0zMi4xczMyLjkgMTIuMSAzOSAzMi4xbDQ0LjcgMTM2LjggMSAwIDQ0LTEzOS44YzQuMS0xNy4yIDE3LjQtMjkuMSAzNi4xLTI5LjEgMjIuMiAwIDM4LjMgMTMuMyAzOC4zIDM1LjctLjMgNy45LTQuMSAxNi03LjYgMjcuMnoiXX0sb2ZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRvY2tlciIsaWNvbjpbNjQwLDUxMixbXSwiZjM5NSIsIk0zNDkuOSAyMzYuM2wtNjYuMSAwIDAtNTkuNCA2Ni4xIDAgMCA1OS40em0wLTIwNC4zbC02Ni4xIDAgMCA2MC43IDY2LjEgMCAwLTYwLjd6bTc4LjIgMTQ0LjhsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHpNMjcxLjggMTA0LjdsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXptNzguMSAwbC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6bTI3Ni44IDEwMGMtMTQuNC05LjctNDcuNi0xMy4yLTczLjEtOC40LTMuMy0yNC0xNi43LTQ0LjktNDEuMS02My43bC0xNC05LjMtOS4zIDE0Yy0xOC40IDI3LjgtMjMuNCA3My42LTMuNyAxMDMuOC04LjcgNC43LTI1LjggMTEuMS00OC40IDEwLjdsLTQzNC43IDBjLTguNyA1MC44IDUuOCAxMTYuOCA0NCAxNjIuMSAzNy4xIDQzLjkgOTIuNyA2Ni4yIDE2NS40IDY2LjIgMTU3LjQgMCAyNzMuOS03Mi41IDMyOC40LTIwNC4yIDIxLjQgLjQgNjcuNiAuMSA5MS4zLTQ1LjIgMS41LTIuNSA2LjYtMTMuMiA4LjUtMTcuMWwtMTMuMy04Ljl6TTExNS42IDE3Ni44bC02NiAwIDAgNTkuNCA2Ni4xIDAgMC01OS40LS4xIDB6bTc4LjEgMGwtNjYuMSAwIDAgNTkuNCA2Ni4xIDAgMC01OS40em03OC4xIDBsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHptLTc4LjEtNzIuMWwtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xeiJdfSxsZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFnZW50byIsaWNvbjpbNDQ4LDUxMixbXSwiZjNjNCIsIk00NDUuOSAxMjcuOWwwIDI1Ni4xLTYzLjQgMzYuNSAwLTI1NS44LTE1OC41LTkxLjYtMTU4LjYgOTEuNiAuNCAyNTUuOS02My4zLTM2LjYgMC0yNTUuOSAyMjEuOS0xMjguMSAyMjEuNSAxMjcuOXpNMjU1LjggNDIwLjVsLTMxLjYgMTguNC0zMS44LTE4LjIgMC0yNTYtNjMuMyAzNi42IC4xIDI1NS45IDk0LjkgNTQuOSA5NS4xLTU0LjkgMC0yNTYtNjMuNC0zNi42IDAgMjU1Ljl6Il19LGNmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0b3ItYnJvd3NlciIsaWNvbjpbNTEyLDUxMixbXSwiZTgzOCIsIk0yNTYuNSA0NjUuNGwwLTMxYzk4LjMtLjMgMTc3LjktODAgMTc3LjktMTc4LjRTMzU0LjggNzcuOSAyNTYuNSA3Ny42bDAtMzFDMzcyIDQ2LjggNDY1LjQgMTQwLjUgNDY1LjQgMjU2UzM3MiA0NjUuMiAyNTYuNSA0NjUuNHptMC0xMDguNmM1NS40LS4zIDEwMC4zLTQ1LjMgMTAwLjMtMTAwLjhTMzEyIDE1NS41IDI1Ni41IDE1NS4ybDAtMzFjNzIuNiAuMyAxMzEuNCA1OS4yIDEzMS40IDEzMS44UzMyOS4xIDM4Ny42IDI1Ni41IDM4Ny44bDAtMzF6bTAtMTU1LjFjMjkuNyAuMyA1My44IDI0LjUgNTMuOCA1NC4zcy0yNCA1NC01My44IDU0LjNsMC0xMDguNnpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHoiXX0sZGZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdC1hbHQiLGljb246WzQ0OCw1MTIsW10sImY4NDEiLCJNNDM5LjYgMjM2LjFMMjQ0IDQwLjVDMjM4LjYgMzUgMjMxLjIgMzIgMjIzLjYgMzJzLTE1IDMtMjAuNCA4LjRsLTQwLjcgNDAuNiA1MS41IDUxLjVjMjcuMS05LjEgNTIuNyAxNi44IDQzLjQgNDMuN2w0OS43IDQ5LjdjMzQuMi0xMS44IDYxLjIgMzEgMzUuNSA1Ni43LTI2LjUgMjYuNS03MC4yLTIuOS01Ni0zNy4zbC00Ni4zLTQ2LjMgMCAxMjEuOWMyNS4zIDEyLjUgMjIuMyA0MS44IDkuMSA1NS02LjQgNi40LTE1LjIgMTAuMS0yNC4zIDEwLjFzLTE3LjgtMy42LTI0LjMtMTAuMWMtMTcuNi0xNy42LTExLjEtNDYuOSAxMS4yLTU2bDAtMTIzYy0yMC44LTguNS0yNC42LTMwLjctMTguNi00NUwxNDIuNiAxMDEgOC41IDIzNS4xQzMgMjQwLjYgMCAyNDcuOSAwIDI1NS41czMgMTUgOC41IDIwLjRMMjA0LjEgNDcxLjZjNS40IDUuNCAxMi43IDguNCAyMC40IDguNHMxNS0zIDIwLjQtOC40TDQzOS42IDI3Ni45YzUuNC01LjQgOC40LTEyLjggOC40LTIwLjRzLTMtMTUtOC40LTIwLjR6Il19LHBmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJlZm94LWJyb3dzZXIiLGljb246WzUxMiw1MTIsW10sImUwMDciLCJNMTMwLjIgMTI3LjVsMCAwem0zNTEuNCA0NS40Yy0xMC42LTI1LjUtMzIuMS01My00OC45LTYxLjcgMTMuNyAyNi45IDIxLjcgNTMuOSAyNC43IDc0IDAgLjEgMCAuMyAuMSAuNC0yNy42LTY4LjgtNzQuNC05Ni41LTExMi42LTE1Ni44LTE1LTIzLjctMTAuOS0yNS4yLTEzLjEtMjQuN2wtLjEgLjFjLTQ2LjcgMjYtNzUuMyA3OC40LTgyLjYgMTIyLjctMTYuNiAuOS0zMi45IDUtNDcuOSAxMi4xLTEuNCAuNi0yLjUgMS43LTMuMSAzcy0uOSAyLjgtLjYgNC4zYy4yIC44IC42IDEuNiAxLjEgMi4zczEuMiAxLjMgMS45IDEuNyAxLjYgLjcgMi40IC44IDEuNyAwIDIuNS0uM2wuNS0uMmMxNS41LTcuMyAzMi40LTExLjIgNDkuNS0xMS4zIDYyLjgtLjYgOTcuMiA0NCAxMDcuNiA2Mi4zLTEzLTkuMi0zNi40LTE4LjItNTguOC0xNC4zIDg3LjcgNDMuOSA2NC4yIDE5NC41LTU3LjQgMTg5LjItNTkuNS0yLjYtOTcuMS01MS0xMDAuNS05MC44IDAgMCAxMS4yLTQxLjkgODAuNi00MS45IDcuNSAwIDI4LjktMjAuOSAyOS4zLTI3LS4xLTItNDIuNS0xOC45LTU5LjEtMzUuMi04LjgtOC43LTEzLjEtMTIuOS0xNi44LTE2LjEtMi0xLjctNC4xLTMuMy02LjMtNC44LTUuNi0xOS41LTUuOC00MC0uNy01OS42LTI1LjEgMTEuNC00NC42IDI5LjQtNTguNyA0NS40bC0uMSAwYy05LjctMTIuMi05LTUyLjYtOC40LTYxLjEtLjEtLjUtNy4yIDMuNy04LjIgNC4zLTguNiA2LjEtMTYuNSAxMi45LTIzLjggMjAuNC0xNi4zIDE2LjYtNDQuMSA1MC4yLTU1LjUgMTAxLjItNC41IDIwLjQtNi44IDQ0LjQtNi44IDUyLjMgMCAxMzQuNyAxMDkuMiAyNDMuOSAyNDMuOSAyNDMuOSAxMjAuNiAwIDIyMy04Ny4yIDI0MC40LTIwMi42IDExLjYtNzYuNy0xNC43LTEzMS4xLTE0LjctMTMyeiJdfSxoZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2xvdWRzbWl0aCIsaWNvbjpbNTEyLDUxMixbXSwiZjM4NCIsIk01MTIgMjI3LjZMNTEyIDI4NC41IDI4NC40IDUxMiAyMjcuNiA1MTIgMCAyODQuNCAwIDIyNy42IDIyNy42IDAgMjg0LjUgMCA1MTIgMjI3LjZ6bS0yNTYgMTYyYzE3LjggLjUgMzUuNi0yLjYgNTIuMi05LjFzMzEuOC0xNi4yIDQ0LjYtMjguNyAyMy0yNy4zIDI5LjktNDMuOCAxMC41LTM0LjEgMTAuNS01Mi0zLjYtMzUuNS0xMC41LTUyLTE3LjEtMzEuMy0yOS45LTQzLjgtMjgtMjIuMi00NC42LTI4LjctMzQuNC05LjYtNTIuMi05LjFjLTE3LjgtLjUtMzUuNiAyLjYtNTIuMiA5LjFzLTMxLjggMTYuMy00NC42IDI4LjctMjMgMjcuMy0yOS45IDQzLjgtMTAuNSAzNC4xLTEwLjUgNTIgMy42IDM1LjUgMTAuNSA1MiAxNy4xIDMxLjMgMjkuOSA0My44IDI4IDIyLjIgNDQuNiAyOC43IDM0LjQgOS42IDUyLjIgOS4xeiJdfSx1ZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2l6YXJkcy1vZi10aGUtY29hc3QiLGljb246WzY0MCw1MTIsW10sImY3MzAiLCJNMjE5LjIgMzQ1LjdjLTEuOSAxLjQtMTEuMSA4LjQtLjMgMjMuNiA0LjYgNi40IDE0LjEgMTIuOCAyMS43IDYuNiA2LjUtNC45IDcuNC0xMi45IC4zLTIzLTUuNS03LjgtMTQuMy0xMi45LTIxLjctNy4xem0zMzYuOCA3NS45Yy0uMyAxLjctLjYgMS43IC44IDAgMi4xLTQuMiA0LjItMTAuMiA1LTE5LjkgMy4xLTM4LjUtNDAuMy03MS41LTEwMS4zLTc4LTU0LjctNi0xMjQuNCA5LjItMTg4LjggNjAuNWwtLjMgMS42YzIuNiA1IDUgMTAuNyAzLjQgMjEuMmwuOCAuM2M2My45LTU4LjQgMTMxLjItNzcuMiAxODQuNC03My44IDU4LjQgMy43IDEwMCAzNCAxMDAgNjguMSAwIDEwLTIuNiAxNS43LTMuOSAyMC4yek0zOTIuMyAyNDAuNGMuOCA3LjEgNC4yIDEwLjIgOS4yIDEwLjUgNS41IC4zIDkuNC0yLjYgMTAuNS02LjYgLjgtMy40IDIuMS0yOS44IDIuMS0yOS44UzQwMi44IDIyMSAzOTkuMSAyMjVjLTMuNyAzLjctNy4zIDguNC02LjggMTUuNXptLTUwLTE1MS4xYy0yMDQuNSAwLTMyOS4yIDEzNy41LTM0MS41IDE1MS45LTEgLjUtMS4zIC44IC44IDEuMyA2MC41IDE2LjUgMTU1LjggODEuMiAxOTYuMSAyMDIuMmwxIC4zYzU1LjItNjkuOSAxNDAuOS0xMjguMSAyMzctMTI4LjEgODAuOSAwIDEzMC4yIDQyLjIgMTMwLjIgODAuNCAwIDE4LjMtNi42IDMzLjUtMjIuMyA0Ni4zIDAgMS0uMiAuOCAuOCAuOCAxNC43LTEwLjcgMjcuNS0yOC44IDI3LjUtNDguMiAwLTIyLjgtMTIuMS0zOC4yLTEyLjEtMzguMiA3LjEgNy4xIDEwLjcgMTYuMiAxMC43IDE2LjIgNS44LTQwLjkgMjctNjIuMyAyNy02Mi4zLTIuNC05LjctNi44LTE3LjgtNi44LTE3LjggNy42IDguMSAxNC40IDI3LjUgMTQuNCA0MS40IDAgMTAuNS0zLjQgMjIuOC0xMi42IDMxLjlsLjMgLjVjOC4xLTUgMTYuNS0xNi44IDE2LjUtMzggMC0xNS43LTQuNy0yNS45LTQuNy0yNS45IDUuOC01LjIgMTEuMy05LjIgMTYtMTEuOCAuOCAzLjQgMi4xIDkuNyAyLjQgMTQuOSAwIDEgLjggMS44IDEgMCAuOC01LjgtLjMtMTYuMi0uMy0xNi41IDYtMy4xIDkuNy00LjUgOS43LTQuNS0xNS43LTExMC4zLTE0NC0xOTYuOS0yOTEuMi0xOTYuOXpNMjQzIDM3OC45Yy0xMS4xIDktMjQuMiA0LjEtMzAuNi00LjItNy40LTkuNi02LjgtMjQuMSA0LjItMzIuNSAxNC44LTExLjQgMjcuMS0uNSAzMS4yIDUuNSAuMyAuNCAxMi4xIDE2LjYtNC43IDMxLjJ6bTIuMS0xMzYuNGw5LjQtMTcuOCAxMS44IDcxLTEyLjYgNi0yNC42LTI4LjggMTQuMS0yNi43IDMuNyA0LjQtMS44LTguMXptMTguNiAxMTcuNmwtLjMtLjNjMi00LjEtMi41LTYuNi0xNy41LTMxLjctMS4zLTIuNC0zLjEtMi45LTQuNC0yLjZsLS4zLS41YzcuOS01LjggMTUuNC0xMC4yIDI1LjQtMTUuN2wuNSAuM2MxLjMgMS44IDIuMSAyLjkgMy40IDQuN2wtLjMgLjVjLTEtLjMtMi40LS44LTUuMiAuMy0yLjEgLjgtNy45IDMuNy0xMi4zIDcuNmwwIDEuM2MxLjYgMi40IDMuOSA2LjYgNS44IDkuN2wuMyAwYzEwLTYuMyA3LjYtNC41IDExLjUtNy45bC4zIDBjLjUgMS44IC41IDEuOCAxLjggNS41bC0uMyAuM2MtMy4xIC42LTQuNyAuMy0xMS41IDUuNWwwIC4zYzkuNSAxNyAxMSAxNi44IDEyLjYgMTZsLjMgLjNjLTIuMyAxLjYtNi4zIDQuMi05LjcgNi42ek0zMTkgMzI3LjZjLTMuMSAxLjYtNiAyLjktMTAgNWwtLjMtLjNjMS4zLTIuNiAxLjItMi43LTExLjgtMzIuNWwtLjMtLjNjLS4yIDAtOC45IDMuNy0xMCA3LjNsLS41IDAtMS01LjggLjMtLjVjNy4zLTQuNiAyNS41LTExLjYgMjcuOC0xMi42bC41IC4zIDMuMSA1LS4zIC41Yy0zLjUtMS44LTcuNCAuOC0xMi4zIDIuNmwwIC4zYzEyLjMgMzIgMTIuNyAzMC42IDE0LjcgMzAuNmwwIC4yem00NC44LTE2LjVjLTQuMiAxLTUuMiAxLjMtOS43IDIuOWwtLjMtLjMgLjUtNC41Yy0xLTMuNC0zLjEtMTEuNS0zLjctMTMuNmwtLjMtLjNjLTMuNCAuOC04LjkgMi42LTEyLjggMy45bC0uMyAuM2MuOCAyLjYgMy4xIDkuOSA0LjIgMTMuOSAuOCAyLjQgMS44IDIuOSAyLjkgMy4xbDAgLjVjLTMuNyAxLTcuMSAyLjYtMTAuMiAzLjlsLS4zLS4zYzEtMS4zIDEtMi45IC4zLTUtMS0zLjEtOC4xLTIzLjgtOS4yLTI3LjItLjUtMS44LTEuNi0zLjEtMi42LTMuMWwwLS41YzMuMS0xIDYtMi4xIDEwLjctMy40bC4zIC4zLS4zIDQuN2MxLjMgMy45IDIuNCA3LjYgMy4xIDkuN2wuMyAwYzMuOS0xLjMgOS40LTIuOSAxMi44LTMuOWwuMy0uMy0yLjYtOS40Yy0uNS0xLjgtMS0zLjQtMi42LTMuOWwwLS4zYzQuNC0xIDcuMy0xLjggMTAuNy0yLjRsLjMgLjNjLTEgMS4zLTEgMi45LS41IDQuNCAxLjYgNi4zIDQuNyAyMC40IDYuMyAyNi41IC41IDIuNiAxLjggMy40IDIuNiAzLjl6bTMyLjItNi44bC0uMyAuM2MtNC43IC41LTE0LjEgMi40LTIyLjUgNC4ybC0uMy0uMyAuOC00LjJjLTEuNi03LjktMy40LTE4LjYtNS0yNi4yLS4zLTEuOC0uOC0yLjktMi42LTMuN2wuOC0uNWM5LjItMS42IDIwLjItMi40IDI0LjktMi42bC4zIC4zYy41IDIuNCAuOCAzLjEgMS42IDUuNWwtLjMgLjNjLTEuMS0xLjEtMy4zLTMuMi0xNi4yLS44bC0uMyAuM2MuMyAxLjYgMSA2LjYgMS42IDkuOWwuMyAuM2M5LjUtMS43IDQuOC0uMSAxMC43LTIuNGwuMyAwYzAgMS42LS4zIDEuOC0uMyA1LjJsLS4zIDBjLTQuOC0xLTIuMi0uOS0xMC4yIDBsLS4zIC4zYy4zIDIuMSAxLjYgOS40IDIuMSAxMi42bC4zIC4zYzEuMiAuNCAxNC4yLS42IDE2LjItNC43bC4zIDBjLS41IDIuNC0xIDQuMi0xLjYgNnptMTAuNy00NC41Yy00LjUgMi40LTguMSAyLjktMTEgMi45LS4yIDAtMTEuNCAxLjEtMTcuNS0xMC02LjctMTAuOC0xLTI1LjIgNS41LTMxLjcgOC44LTguMSAyMy40LTEwLjEgMjguNS0xNyA4LTEwLjMtMTMtMjIuMy0yOS42LTUuOGwtMi42LTIuOSA1LjItMTYuMmMyNS42LTEuNiA0NS4yLTMgNTAgMTYuMiAuOCAzLjEgMCA5LjQtLjMgMTIuMSAwIDIuNi0xLjggMTguOC0yLjEgMjMtLjUgNC4yLS44IDE4LjMtLjggMjAuNyAuMyAyLjQgLjUgNC4yIDEuNiA1LjUgMS42IDEuOCA1LjggMS44IDUuOCAxLjhsLS44IDQuN2MtMTEuOC0xLjEtMTAuMy0uNi0yMC40LTEtMy4yLTUuMS0yLjItMy4zLTQuMi03LjkgMCAwLTQuMiAzLjktNy4zIDUuNXpNNDQzLjkgMjgxYy02LjQtMTAuNi0xOS44LTcuMi0yMS43IDUuNS0yLjYgMTcuMSAxNC4zIDE5LjggMjAuNyAxMC4ybC4zIC4zYy0uNSAxLjgtMS44IDYtMS44IDYuM2wtLjUgLjVjLTEwLjMgNi45LTI4LjUtMi41LTI1LjctMTguNiAxLjktMTAuOSAxNC40LTE4LjkgMjguOC05LjlsLjMgLjVjMCAxLjEtLjMgMy40LS4zIDUuM3ptNS44LTg3LjdsMC02LjZjLjcgMCAxOS42IDMuMyAyNy44IDcuM2wtMS42IDE3LjVzMTAuMi05LjQgMTUuNC0xMC43YzUuMi0xLjYgMTQuOSA3LjMgMTQuOSA3LjNsLTExLjMgMTEuM2MtMTIuMS02LjQtMTkuNi0uMS0yMC43IC44LTUuMyAzOC43LTguNiA0Mi4yIDQuNCA0Ni4xbC0uNSA0LjdjLTE3LjYtNC4zLTE4LjUtNC41LTM2LjktNy4zbC44LTQuN2M3LjMgMCA3LjUtNS4zIDcuNi02LjggMCAwIDUtNTMuMiA1LTU1LjMgMC0yLjktNS0zLjctNS0zLjd6bTExIDExNC40Yy04LjEtMi4xLTE0LjEtMTEtMTAuNy0yMC43IDMuMS05LjQgMTIuMy0xMi4zIDE4LjktMTAuMiA5LjIgMi42IDEyLjggMTEuOCAxMC43IDE5LjQtMi42IDguOS05LjQgMTMuOS0xOC45IDExLjV6bTQyLjIgOS43Yy0yLjQtLjUtNy4xLTIuNC04LjYtMi45bDAtLjMgMS42LTEuOGMuNi04LjIgLjYtNy4zIC4zLTcuNi00LjgtMS44LTYuNy0yLjQtNy4xLTIuNC0xLjMgMS44LTIuOSA0LjUtMy43IDUuNWwtLjggMy40IDAgLjNjLTEuMy0uMy0zLjktMS4zLTYtMS42bDAtLjMgMi42LTEuOGMzLjQtNC43IDEwLTE0LjEgMTMuOS0yMC4ybDAtMi4xIC41LS4zYzIuMSAuOCA1LjUgMi4xIDcuNiAyLjkgLjUgLjUgLjItMS45LTEgMjUuMS0uMiAxLjggMCAyLjYgLjggMy45em0tNC43LTg5LjhjMTEuMy0xOC4zIDMwLjgtMTYuMiAzNC0zLjRsNy42LTI2LjJjMi4zLTYuMi0yLjgtOS45LTQuNS0xMS4zbDEuOC0zLjdjMTIuMiAxMC40IDE2LjQgMTQgMjIuNSAyMC40LTI1LjkgNzMuMS0zMC44IDgwLjgtMjQuNiA4NC4zbC0xLjggNC40Yy02LjQtMy4zLTguOS00LjQtMTcuOC04LjZsMi4xLTYuOGMtLjMtLjMtMy45IDMuOS05LjcgMy43LTE5LjEtMS4zLTIyLjktMzEuNy05LjctNTIuOXptMjkuMyA3OS4zYzAtNS43LTYuMy03LjktNy45LTUuMi0xLjMgMi4xIDEgNSAyLjkgOC40IDEuNiAyLjYgMi42IDYuMyAxIDkuNC0yLjYgNi4zLTEyLjQgNS4zLTE1LjQtLjggMC0uNy0uMyAuMSAxLjgtNC43bC44LS4zYy0uNiA1LjcgNi4xIDkuNiA4LjQgNSAxLTIuMS0uNS01LjUtMi4xLTguNC0xLjYtMi42LTMuNy02LjMtMS44LTkuNyAyLjctNS4xIDExLjMtNC41IDE0LjcgMi40bDAgLjUtMi40IDMuNHptMjEuMiAxMy40Yy0yLTMuMy0uOS0yLjEtNC41LTQuN2wtLjMgMGMtMi40IDQuMi01LjggMTAuNS04LjYgMTYuMi0xLjMgMi40LTEgMy40LS44IDMuOWwtLjMgLjMtNS44LTQuNCAuMy0uMyAyLjEtMS4zYzMuMS01LjggNi42LTEyLjEgOS4yLTE3bDAtLjNjLTIuNi0yLTEuMi0xLjUtNi0xLjhsMC0uMyAzLjEtMy40IC4zIDBjMy43IDIuNCAxMCA2LjggMTIuMyA4LjlsLjMgLjMtMS4zIDMuOXpNNTc1LjggMjc2bC0yLjktMi45Yy44LTIuNCAxLjgtNSAyLjEtNy42IC43LTkuNy0xMS41LTExLjgtMTEuNS01IDAgNSA3LjkgMTkuNCA3LjkgMjcuOCAwIDEwLjItNS44IDE1LjctMTMuOSAxNi41LTguNCAuOC0yMC4yLTEwLjUtMjAuMi0xMC41bDUtMTQuNCAyLjkgMi4xYy0zIDE3LjggMTcuNyAyMC40IDEzLjMgNS4yLTEuMS00LTE4LjctMzQuMiAyLjEtMzguMiAxMy42LTIuNCAyMyAxNi41IDIzIDE2LjVMNTc1LjggMjc2em0zNS42LTEwLjJjLTExLTMwLjQtNjAuNS0xMjcuNS0xOTItMTI5LjYtNTMuNC0xLTk0LjMgMTUuNC0xMzIuOCAzOGw4NS42LTkuMi05MS40IDIwLjcgMjUuMSAxOS42LTMuOS0xNi41YzcuNS0xLjcgMzkuMS04LjUgNjYuOC04LjlsLTIyLjMgODAuNGMxMy42LS43IDE5LTkgMTkuNi0yMi44bDUtMSAuMyAyNi43Yy0yMi41IDMuMi0zNy4zIDYuNy00OS41IDkuOWwxMy4xLTQzLjItNjEuNS0zNi43IDIuNCA4LjEgMTAuMiA1YzYuMyAxOC42IDE5LjQgNTYuNiAyMC40IDU4LjcgMiA0LjMgMy4yIDUuOCAxMiA0LjVsMS4xIDVjLTE2LjEgNC45LTIzLjcgNy42LTM5IDE0LjRsLTIuNC00LjdjNC40LTIuOSA4LjctMy45IDUuNS0xMi44LTIzLjctNjIuNS0yMS41LTU4LjEtMjIuOC01OS40bDIuNC00LjQgMzMuNSA2Ny4zYy0zLjgtMTEuOSAxLjcgMS43LTMzLTc4LjhsLTQxLjkgODguNSA0LjctMTMuOS0zNS45LTQyLjIgMjcuOCA5My41LTExLjggOC40Yy0xMTEuOS0xMDEuNy0xMDUuOC05OC40LTExMy43LTk4LjctNS41LS4zLTEzLjYgNS41LTEzLjYgNS41bC01LTZjMzAuNi0yMy41IDMxLjYtMjQuMyA1OC40LTQyLjdsNC4yIDcuMXMtNS44IDQuMi03LjkgNy4xYy01LjkgOS4zIDEuNyAxMy4zIDYxLjggNzUuN2wtMTguOC01OC45IDM5LjgtMTAuMiAyNS43IDMwLjYgNC40LTEyLjMtNS0yNC42IDEzLjEtMy40IC41IDMuMSAzLjctMTAuNS05NC4zIDI5LjMgMTEuMy01LTEzLjYtNDIuNCAxNy4zLTkuMiAzMC4xIDM2LjEgMjguNS0xMy4xYy0xLjQtNy41LTIuNS0xNC41LTQuNy0xOS42bDE3LjMgMTMuOSA0LjctMi4xLTU5LjItNDIuNyAyMy4xIDExLjVjMTktNi4xIDI1LjItNy41IDMyLjItOS43bDIuNiAxMWMtMTIuNiAxMi42IDEuNCAxNi44IDYuNSAxOS40bC0xMy42LTYxIDEyIDI4LjNjNC4yLTEuMyA3LjMtMi4xIDcuMy0yLjFsMi42IDguNnMtMy4xIDEtNi4zIDIuMWw4LjkgMjEgMzMuOC02NS43LTIwLjcgNjFjNDIuNC0yNC4xIDgxLjQtMzYuNyAxMzItMzUuOSA2NyAxIDE2Ny4zIDQwLjggMTk5LjggMTM5LjggLjggMi4xIDAgMi42LS44IC4zem0tNDA4LTExMy40czEuOC0uNSA0LjItMS4zbDkuNCA3LjZjLS40IDAtMy40LS4zLTExLjMgMi40bC0yLjQtOC42em0xNDMuOCAzOC41Yy0xLjYtLjYtMjYuNS00LjgtMzMuMyAyMC43bDIxLjcgMTcgMTEuNS0zNy43ek0zMTguNCA2Ny4xYy01OC40IDAtMTA2LjEgMTItMTE1IDE0LjRsMCAuOGM4LjQgMi4xIDE0LjQgNC4yIDIxLjIgMTEuOGwxLjYgLjNjNi42LTEuOCA0OS0xMy45IDExMC4yLTEzLjkgMTgwLjIgMCAzMDEuNyAxMTYuOCAzMDEuNyAyMjMuNGwwIDEwYzAgMS4zIC44IDIuNiAxLjEgLjUgLjUtMi4xIC44LTguNiAuOC0xOS42IC4zLTgzLjgtOTYuNi0yMjcuNi0zMjEuNi0yMjcuNnpNNTI5LjUgMjM2LjhjMS4zLTUuOCAwLTEyLjMtNy4zLTEzLjEtOS42LTEuMS0xNi4xIDIzLjgtMTcgMzMuNS0uOCA1LjUtMS4zIDE0LjkgNiAxNC45IDQuNyAwIDkuNy0uOSAxOC4zLTM1LjR6TTQ2OCAyNzkuN2MtMi42LS44LTkuNC0uOC0xMi42IDEwLjUtMS44IDYuOCAuNSAxMy40IDYgMTQuNyAzLjcgMS4xIDguOSAuNSAxMS44LTEwLjcgMi42LTkuOS0xLjgtMTMuNi01LjItMTQuNHptMjMgMjFjMS44IC41IDMuMSAxIDUuOCAxLjggMC0xLjggLjUtOC40IC44LTEyLjEtMSAxLjMtNS41IDguMS02LjYgMTBsMCAuM3oiXX0sZmZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmQiLGljb246WzUxMiw1MTIsW10sImY0ZWIiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem05NCAxNDQuM2wwIDQyLjUtMTgwLjMgMCAwLTQyLjUgMTgwLjMgMHptMCA3OS44bDAgNDIuNS0xODAuMyAwIDAtNDIuNSAxODAuMyAweiJdfSxtZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNwcyIsaWNvbjpbNTEyLDUxMixbXSwiZjdlMSIsIk00MjguMyAyNDEuN2MyNS44LTQxLjMgMTUuMi00OC44LTExLjctNDguOGwtMjcgMGMtLjEgMC0xLjUtMS40LTEwLjkgOC0xMS4yIDUuNi0zNy45IDYuMy0zNy45IDguNyAwIDQuNSA3MC4zLTMuMSA4OC4xIDAgOS41IDEuNS0xLjUgMjAuNC00LjQgMzItLjUgNC41IDIuNCAyLjMgMy44IC4xek0zMTYuMiAyNjQuM2M2NC0yMS4zIDk3LjMtMjMuOSAxMDItMjYuMiA0LjQtMi45LTQuNC02LjYtMjYuMi01LjgtNTEuNyAyLjItMTM3LjYgMzcuMS0xNzIuNiA1My45bC0zMC43LTkzLjMgMTk2LjYgMGMtMi43LTI4LjItMTUyLjktMjIuNi0zMzcuOS0yMi42TC01IDQxNS44YzE5Ni40LTk3LjMgMjU4LjktMTMwLjMgMzIxLjItMTUxLjV6TTYyLjcgOTZjMjUzLjMgNTMuNyAzMzAgNjUuNyAzMzIuMSA4NS4yIDM2LjQgMCA0NS45IDAgNTIuNCA2LjYgMjEuMSAxOS43LTE0LjYgNjcuNy0xNC42IDY3LjctNC40IDIuOS00MDYuNCAxNjAuMi00MDYuNCAxNjAuMkw0NDkuMyA0MTUuNyA1MTcgOTYgNjIuNyA5NnoiXX0sZ2ZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1sZXR0ZXJib3hkIixpY29uOls0NDgsNTEyLFtdLCJlNjJlIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTEwNS4xIDE4N0M2Ni40IDE4NyAzNSAyMTguMyAzNSAyNTdzMzEuNCA3MCA3MC4xIDcwYzI0LjggMCA0Ni41LTEyLjggNTktMzIuMmwuNS0uNy0uNC0uNmMtNi41LTEwLjYtMTAuMi0yMy4xLTEwLjItMzYuNSAwLTEzLjYgMy45LTI2LjMgMTAuNi0zNy4xLTEyLjQtMTkuOC0zNC40LTMyLjktNTkuNS0zMi45ek0yMjQgMTg3Yy0yNC44IDAtNDYuNSAxMi44LTU5IDMyLjJsLS41IC43IC40IC42YzYuNSAxMC42IDEwLjIgMjMuMSAxMC4yIDM2LjUgMCAxMy42LTMuOSAyNi4zLTEwLjYgMzcuMSAxMi40IDE5LjcgMzQuNCAzMi45IDU5LjUgMzIuOSAyNC44IDAgNDYuNS0xMi44IDU5LTMyLjJsLjUtLjctLjQtLjZjLTYuNS0xMC42LTEwLjItMjMuMS0xMC4yLTM2LjUgMC0xMy42IDMuOS0yNi4zIDEwLjYtMzcuMS0xMi40LTE5LjctMzQuNC0zMi45LTU5LjUtMzIuOXptMTE4LjkgMGMtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41IDAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjEgMTIuNCAxOS44IDM0LjQgMzIuOSA1OS41IDMyLjkgMzguNyAwIDcwLjEtMzEuMyA3MC4xLTcwcy0zMS40LTcwLTcwLjEtNzB6Il19LGJmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtYW5kYWxvcmlhbiIsaWNvbjpbMzg0LDUxMixbXSwiZjUwZiIsIk0yMDAuNiA1MTEuOWMtMS0zLjMtMS43LTE1LjgtMS40LTI0LjYgLjYtMTUuOSAxLTI0LjcgMS40LTI4LjggLjYtNi4yIDIuOS0yMC43IDMuMy0yMS40IC42LTEgLjQtMjcuOS0uMi0zMy4xLS4zLTIuNi0uNi0xMS45LS43LTIwLjctLjEtMTYuNS0uNS0yMC4xLTIuNy0yNC44LTEuMS0yLjMtMS4yLTMuOC0xLTExLjQgLjItNC4yIC4xLTguNS0uMy0xMi43LTItMTMtMy41LTI3LjctMy4yLTMzLjlzLjQtNy4xIDIuMS05LjdjMy4xLTQuNyA2LjUtMTQgOC42LTIzLjMgMi4zLTkuOSAzLjktMTcuMiA0LjYtMjAuNyAxLjEtNS4xIDIuNi0xMC4xIDQuNC0xNS4xIDIuMy02LjIgMi41LTE1LjQgLjQtMTUuNC0uMyAwLTEuNCAxLjItMi40IDIuN3MtNC44IDQuOC04LjMgNy40Yy04LjQgNi4xLTExLjcgOS40LTEyLjcgMTIuNnMtMSA3LjItLjIgNy44Yy4zIC4yIDEuMyAyLjQgMi4xIDQuOSAxLjYgNSAxLjkgMTAuMyAuNyAxNS40LS40IDEuOC0xIDUuNS0xLjUgOC4ycy0xIDYuNS0xLjMgOC4yYy0uMiAxLjUtLjcgMy0xLjUgNC4zLTEgMS0xLjEgLjktMi4xLS41LS43LTEuNS0xLjItMy4xLTEuNC00LjctLjItMS43LTEuNi03LjEtMy4xLTExLjktMy4zLTEwLjktMy41LTE2LjItMS0yMSAuOC0xLjQgMS40LTMgMS43LTQuNiAwLTIuNC0yLjItNS4zLTcuNC05LjktNy02LjItOC42LTcuOS0xMC4yLTExLjMtMS43LTMuNi0zLjEtNC4xLTQuNS0xLjUtMS44IDMtMi42IDkuMS0zIDIybC0uMyAxMi4yIDIgMi4yYzMuMiAzLjcgMTIuMSAxNi41IDEzLjggMTkuOCAzLjQgNi43IDQuMyAxMS43IDQuNCAyMy42czEgMjIuOCAyIDI0LjdjLjQgLjcgLjUgMS40IC4zIDEuNXMuNCAyLjEgMS4zIDQuM2MxIDIuOSAxLjcgNS45IDIuMSA5IC40IDMuNSAuOSA3IDEuNyAxMC40IDIuMiA5LjYgMi44IDE0LjEgMi40IDIwLjEtLjIgMy4zLS41IDExLjEtLjcgMTcuMy0xLjMgNDEuOC0xLjggNTgtMiA2MS4yLS4xIDItLjQgMTEuNS0uNiAyMS4xLS40IDE2LjMtMS4zIDI3LjQtMi40IDI4LjYtLjYgLjctOC4xLTQuOS0xMi41LTkuNS0zLjgtMy45LTQtNC44LTIuOC05LjkgLjctMyAyLjMtMTguMyAzLjMtMzIuNiAuNC00LjggLjgtMTAuNSAxLTEyLjcgLjgtOS40IDEuNy0yMC4zIDIuNi0zNC44IC42LTguNSAxLjMtMTYuNCAxLjctMTcuN3MuOS05LjkgMS4xLTE5LjFsLjQtMTYuOC0yLjMtNC4zYy0xLjctMy4zLTQuOS02LjktMTMuMi0xNS4zLTYtNi4xLTExLjgtMTIuMy0xMi45LTEzLjhsLTItMi44IC44LTEwLjljMS4xLTE1LjcgMS4xLTQ4LjYgMC01OS4xbC0uOS04LjctMy4zLTQuNWMtNS45LTguMS01LjgtNy43LTYuMi0zMy4zLS4xLTYuMS0uNC0xMS41LS42LTEyLjEtLjgtMS45LTMtMi43LTguNS0zLTguOS0uNi0xMS0xLjktMjMuOC0xNC42LTYuMi02LTEyLjMtMTItMTMuOC0xMy4yLTIuOC0yLjQtMi44LTItLjYtOS42bDEuNC00LjYtMS43LTNjLS44LTEuNC0xLjYtMi44LTIuNi00LjEtMS4zLTEuNS01LjUtMTAuOS02LTEzLjUtLjItLjctLjItMS40LS4xLTIuMXMuNS0xLjMgLjktMS44YzIuMi0yLjkgMy40LTUuNyA0LjUtMTAuNyAyLjMtMTEuMiA3LjctMjYuMSAxMC42LTI5LjIgMy4yLTMuNSA3LjctMSA5LjQgNSAxLjMgNC44IDEuNCA5LjggLjEgMTguNi0uNSAzLjctLjkgNy40LTEgMTEuMSAwIDQgLjIgNC43IDIuMyA3LjQgMy4zIDQuNCA3LjcgNy40IDE1LjIgMTAuNSAxLjcgLjcgMy4zIDEuNyA0LjcgMi44IDExLjIgMTAuNyAxOC42IDE2LjIgMjIuOSAxNi45IDUuMiAuOCA4IDQuNSAxMCAxMy40IDEuMyA1LjcgNCAxMS4xIDUuNSAxMS4xIDEuMi0uMiAyLjMtLjcgMy4zLTEuNCAyLTEuMiAyLjItMS43IDIuMi00LjItLjMtNi0uOS0xMS45LTItMTcuOC0uNC0xLjctLjgtNC4xLS45LTUuNHMtLjYtMy44LTEtNS43Yy0yLjYtMTEuMi0zLjYtMTUuNS00LjEtMTYtMS42LTItNC4xLTEwLjItNC45LTE1LjktMS42LTExLjEtNC0xNC4yLTEyLjktMTcuNC00LjktMS44LTkuNC00LjUtMTMuMy03LjktMS4yLTEtNC0zLjItNi40LTUuMXMtNC40LTMuNS00LjYtMy44Yy0uOC0uNy0xLjctMS40LTIuNy0yLTYuMi00LjItOC44LTctMTEuMy0xMmwtMi40LTVjLS4xLTguNy0uMy0xNy4zLS40LTI2bDYuOS02LjZjNC0zLjggOC41LTcuNCAxMC42LTguNCAzLjMtMS43IDQuNC0xLjkgMTEuNC0yIDguNS0uMiAxMC4xIDAgMTEuNyAxLjZzMS40IDYuNC0uMyA4LjVjLS42IC43LTEuMSAxLjUtMS4zIDIuMyAwIC42LTIuNiA0LjktNS40IDktMS4xIDIuMi0xLjkgNC41LTIuNCA2LjggMjAuNCAxMy40IDIxLjYgMy44IDE0LjEgMjlsMTEuNCAyLjVjMy4xLTguNyA2LjUtMTcuMyA4LjYtMjYuMiAuMy03LjYtMTItNC4yLTE1LjQtOC43LTIuMy01LjkgMy4xLTE0LjIgNi4xLTE5LjIgMS42LTIuMyA2LjYtNC43IDguOC00LjEgLjkgLjIgNC4yLS40IDcuNC0xLjMgMi41LS44IDUtMS4zIDcuNS0xLjcgMi0uMiA0LjEtLjcgNi0xLjMgMy43LTEuMSA0LjUtMS4yIDYuMy0uNCAxLjkgLjYgMy44IDEuMSA1LjggMS40IDIuMSAuMyA0LjEgLjkgNiAxLjkgMS42IC45IDMuMyAxLjcgNSAyLjIgMi41IC43IDMgLjYgNy0xLjdMMjI2IDUuNCAyMzYuNyA1YzEwLjQtLjQgMTAuOC0uNSAxNS4zLTIuN0wyNTYuNSAwIDI1OSAxLjRjMS44IDEgMy4xIDIuNyA0LjkgNiAyLjQgNC41IDIuNCA0LjYgMS40IDcuNC0uOSAyLjQtLjkgMy4zLS4xIDYuNCAuNSAyIDEuMiA0IDIuMSA1LjkgLjYgMS4zIDEuMSAyLjYgMS4zIDQgLjMgNC4zIDAgNS4zLTIuNCA2LjktMi4yIDEuNS03IDcuOS03IDkuMy0uMiAxLS42IDItMS4xIDMtNSAxMS41LTYuOCAxMy42LTE0LjMgMTctOS4yIDQuMi0xMi4zIDUuMi0xNi4yIDUuMi0zLjEgMC00IC4yLTQuNSAxLjMtMS4yIDEuNC0yLjUgMi43LTQuMSAzLjctMS44IDEuMi0zLjMgMi45LTQuNCA0LjgtLjUgMS4yLTEuNCAyLjItMi41IDIuOS0uOSAuNC0xLjggMS0yLjUgMS43LTIuMiAxLjktNC42IDMuNy03IDUuNC0zLjMgMi4zLTYuOSA1LTcuOSA2LS43IC43LTEuNSAxLjMtMi40IDEuNy0uOCAuNC0xLjYgLjktMi4xIDEuNi0xLjMgMS40LTEuNSAyLjEtMS4xIDQuNiAuMyAyIC44IDQgMS40IDUuOSAxLjMgMy44IDEuMyA3LjkgMCAxMC42cy0uOSA2LjcgMS40IDkuNmMyIDIuNiAyLjIgNC42IC43IDguOC0uOCAyLjktMS4xIDUuOS0xLjEgOC45IDAgNC45IC4yIDYuMyAxLjUgOC40czEuOCAyLjUgMy4yIDIuM2MyLS4yIDIuMy0xLjEgNC43LTEyLjEgMi4yLTEwIDMuNy0xMS45IDEzLjgtMTcuMSAyLjktMS41IDcuNS00IDEwLTUuNHM2LjgtMy43IDkuNC00LjljNS45LTIuNiAxMS4yLTYuNiAxNS4yLTExLjcgNy4xLTguOCAxMC0xNi4yIDEyLjgtMzMuMyAuNC0yLjggMS4zLTUuNCAyLjktNy43IDEuNC0yLjIgMi40LTQuNyAyLjktNy4zIDEtNS4zIDIuOS05LjEgNS42LTExLjUgNC43LTQuMiA2LTEuMSA0LjYgMTAuOS0uNSAzLjktMS4xIDEwLjMtMS40IDE0LjRsLS42IDcuNGMzIDIuNyA1LjkgNS41IDguOSA4LjJsLjEgOC40Yy4xIDQuNiAuNSA5LjUgLjkgMTAuOWwuOCAyLjUtNi40IDYuM2MtOC41IDguMy0xMi45IDEzLjktMTYuOCAyMS42LTEuOCAzLjUtMy43IDcuMS00LjQgOC0yLjIgMy4xLTYuNSAxMy04LjggMjAuM2wtMi4zIDcuMi03IDYuNWMtMy44IDMuNi04IDcuMi05LjIgOC4yLTMgMi4zLTQuMyA1LjEtNC4zIDEwLS4xIDIuNSAuNCA1IDEuNiA3LjMgLjggMS42IDEuNSAzLjIgMi4xIDQuOCAuMyAxIC45IDIgMS42IDIuOSAxLjQgMS42IDEuOSAxNi4xIC44IDIzLjItLjcgNC41LTMuNiAxMi00LjcgMTItMS44IDAtNC4xIDkuMy01LjEgMjAuNy0uMiAyLS42IDUuOS0xIDguN3MtMSAxMC0xLjQgMTZjLS44IDEyLjItLjIgMTguOCAyIDIzLjIgMy40IDYuNyAuNSAxMi43LTExIDIyLjhsLTQgMy41IC4xIDUuMmMuMSAzIC40IDYgMS4xIDguOSA0LjYgMTYgNC43IDE2LjkgNC40IDM3LjEtLjUgMjYuNC0uMyA0MC4zIC42IDQ0LjIgLjUgMi4zIC45IDQuNiAxLjEgNyAuMiAyIC43IDUuMyAxLjEgNy40IC41IDIuMyAuOCAxMSAuOCAyMi43bDAgMTkuMS0xLjggMi42Yy0yLjcgMy45LTE1LjEgMTMuNS0xNS41IDEyLjNsLjEgMHptMjkuNS00NS4xYy0uMi0uMy0uMy02LjktLjMtMTQuNiAwLTE0LjEtLjktMjcuNS0yLjMtMzQuNC0uNC0yLS44LTkuNy0uOS0xNy4xLS4yLTExLjktMS40LTI0LjQtMi42LTI2LjQtLjctMS4xLTMtMTcuNy0zLTIxLjMgMC00LjIgMS02IDUuMy05LjFzNC45LTMuMSA1LjUtLjdjLjMgMS4xIDEuNCA1LjYgMi42IDEwIDMuOSAxNS4xIDQuMSAxNi4zIDQgMjEuNy0uMSA1LjgtLjEgNi4xLTEuNyAxNy43LTEgNy4xLTEuMiAxMi40LTEgMjguNCAuMiAxOS40LS42IDM1LjctMiA0MS4zLS43IDIuOC0yLjggNS41LTMuNCA0LjRsLS4xIDB6bS03MS0zNy42Yy0uOC0zLjYtMS4zLTcuMi0xLjctMTAuOHMtMS03LjItMS43LTEwLjhjLS41LTIuMS0uOS00LjMtMS02LjUtLjMtMy4yLS45LTcuNS0xLjMtOS41LTEtNC44LTMuMy0xOS40LTMuNC0yMS4xIDAtLjctLjMtNC0uNy03LjQtLjctNi4yLS44LTI3LjctLjItMjguMyAxLTEgNi42IDIuOCAxMS4zIDcuNGw1LjMgNS4zLS40IDYuNWMtLjIgMy42LS42IDEwLjItLjggMTQuOC0uNSAxMy4zLS43IDguNy0xLjYgMjguNC0uOCAxNy40LTEuOSAzMS4zLTIuNiAzMi0uMSAuMS0uMiAuMS0uMiAuMnMtLjIgMC0uMyAwLS4yIDAtLjMtLjEtLjEtLjEtLjItLjJsMCAwek03MiAxNjIuNmMyMS4xIDEyLjggMTcuOCAxNC4yIDI4LjUgMTcuNyAxMyA0LjMgMTguOSA3LjEgMjMuMiAxNi45LTQzLjcgMzYuMS02OSA1Ny45LTc2LjcgNzAuOS0zMSA1Mi02IDEwMS42IDYyLjggODcuMi0xNC4yIDI5LjItNzggMjguNi05OC43LTQuOS0yNC43LTQwLTIyLjEtMTE4LjMgNjEtMTg3LjdsMCAwem0yMTAuOCAxNzljNTYuNyA2LjkgODIuMy0zNy43IDQ2LjUtODkuMiAwIDAtMjYuOS0yOS4zLTY0LjMtNjggMy0xNS41IDkuNS0zMi4xIDMwLjYtNTMuOCA4OS4yIDYzLjUgOTIgMTQxLjYgOTIuNSAxNDkuNCA0LjMgNzAuNi03OC43IDkxLjItMTA1LjMgNjEuN2wwIDB6Il19LF9FPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNsYWNrIixpY29uOls0NDgsNTEyLFs2MjQ0Nywic2xhY2staGFzaCJdLCJmMTk4IiwiTTk0LjEgMzE1LjFjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFTMCAzNDEgMCAzMTUuMSAyMS4yIDI2OCA0Ny4xIDI2OGw0Ny4xIDAgMCA0Ny4xem0yMy43IDBjMC0yNS45IDIxLjItNDcuMSA0Ny4xLTQ3LjFTMjEyIDI4OS4yIDIxMiAzMTUuMWwwIDExNy44YzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xcy00Ny4xLTIxLjItNDcuMS00Ny4xbDAtMTE3Ljh6bTQ3LjEtMTg5Yy0yNS45IDAtNDcuMS0yMS4yLTQ3LjEtNDcuMVMxMzkgMzIgMTY0LjkgMzIgMjEyIDUzLjIgMjEyIDc5LjFsMCA0Ny4xLTQ3LjEgMHptMCAyMy43YzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xUzE5MC44IDI0NCAxNjQuOSAyNDRMNDcuMSAyNDRDMjEuMiAyNDQgMCAyMjIuOCAwIDE5Ni45czIxLjItNDcuMSA0Ny4xLTQ3LjFsMTE3LjggMHptMTg5IDQ3LjFjMC0yNS45IDIxLjItNDcuMSA0Ny4xLTQ3LjFTNDQ4IDE3MSA0NDggMTk2LjkgNDI2LjggMjQ0IDQwMC45IDI0NGwtNDcuMSAwIDAtNDcuMXptLTIzLjcgMGMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMVMyMzYgMjIyLjggMjM2IDE5Ni45bDAtMTE3LjhDMjM2IDUzLjIgMjU3LjIgMzIgMjgzLjEgMzJzNDcuMSAyMS4yIDQ3LjEgNDcuMWwwIDExNy44em0tNDcuMSAxODljMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFTMzA5IDQ4MCAyODMuMSA0ODAgMjM2IDQ1OC44IDIzNiA0MzIuOWwwLTQ3LjEgNDcuMSAwem0wLTIzLjdjLTI1LjkgMC00Ny4xLTIxLjItNDcuMS00Ny4xUzI1Ny4yIDI2OCAyODMuMSAyNjhsMTE3LjggMGMyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMXMtMjEuMiA0Ny4xLTQ3LjEgNDcuMWwtMTE3LjggMHoiXX0sT2Y9X0UsdmZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ2VsbGlzdCIsaWNvbjpbMzg0LDUxMixbXSwiZjIwOSIsIk0zMTUuNiAyMTUuNGMxMS43LTMyLjYgNDUuNC0xMjYuOSA0NS40LTE1Ny4xIDAtMjYuNi0xNS43LTQ4LjktNDMuNy00OC45LTQ0LjYgMC04NC42IDEzMS43LTk3LjEgMTYzLjEtOS43LTI4LjUtNTUuMS0xNzIuNS05NS4xLTE3Mi41LTMxLjEgMC00NS43IDIyLjktNDUuNyA1MS43IDAgMzUuMyAzNC4yIDEyNi44IDQ2LjYgMTYyLTYuMy0yLjMtMTMuMS00LjMtMjAtNC4zLTIzLjQgMC00OC4zIDI5LjEtNDguMyA1Mi42IDAgOC45IDQuOSAyMS40IDggMjkuNy0zNi45IDEwLTUxLjEgMzQuNi01MS4xIDcxLjctLjEgNzIuMiA2OC4zIDE0OC42IDE2NC41IDE0OC42IDExOCAwIDE5MS40LTg4LjYgMTkxLjQtMjAyLjkgMC00My4xLTYuOS04Mi01NC45LTkzLjd6TTI4MC4yIDEwOGM0LTEyLjMgMjEuMS02NC4zIDM3LjEtNjQuMyA4LjYgMCAxMC45IDguOSAxMC45IDE2IDAgMTkuMS0zOC42IDEyNC42LTQ3LjEgMTQ4bC0zNC02IDMzLjEtOTMuN3pNMTEwLjggNDguM2MwLTExLjkgMTQuNS00NS43IDQ2LjMgNDcuMWwzNC42IDEwMC4zYy0xNS42LTEuMy0yNy43LTMtMzUuNCAxLjQtMTAuOS0yOC44LTQ1LjUtMTE5LjctNDUuNS0xNDguOHpNMTA4LjUgMjQ0YzI5LjMgMCA2Ny4xIDk0LjYgNjcuMSAxMDcuNCAwIDUuMS00LjkgMTEuNC0xMC42IDExLjQtMjAuOSAwLTc2LjktNzYuOS03Ni45LTk3LjcgLjEtNy43IDEyLjctMjEuMSAyMC40LTIxLjF6TTI5Mi44IDQzMC4zYy0yOS4xIDMyLTY2LjMgNDguNi0xMDkuNyA0OC42LTU5LjQgMC0xMDYuMy0zMi42LTEyOC45LTg4LjMtMTcuMS00My40IDMuOC02OC4zIDIwLjYtNjguMyAxMS40IDAgNTQuMyA2MC4zIDU0LjMgNzMuMSAwIDQuOS03LjcgOC4zLTExLjcgOC4zLTE2LjEgMC0yMi40LTE1LjUtNTEuMS01MS40LTI5LjcgMjkuNyAyMC41IDg2LjkgNTguMyA4Ni45IDI2LjEgMCA0My4xLTI0LjIgMzgtNDIgMy43IDAgOC4zIC4zIDExLjctLjYgMS4xIDI3LjEgOS4xIDU5LjQgNDEuNyA2MS43IDAtLjkgMi03LjEgMi03LjQgMC0xNy40LTEwLjYtMzIuNi0xMC42LTUwLjMgMC0yOC4zIDIxLjctNTUuNyA0My43LTcxLjcgOC02IDE3LjctOS43IDI3LjEtMTMuMSA5LjctMy43IDIwLTggMjcuNC0xNS40LTEuMS0xMS4yLTUuNy0yMS4xLTE2LjktMjEuMS0yNy43IDAtMTIwLjYgNC0xMjAuNi0zOS43IDAtNi43IC4xLTEzLjEgMTcuNC0xMy4xIDMyLjMgMCAxMTQuMyA4IDEzOC4zIDI5LjEgMTguMSAxNi4xIDI0LjMgMTEzLjItMzEgMTc0Ljd6bS05OC42LTEyNmM5LjcgMy4xIDE5LjcgNCAyOS43IDYtNy40IDUuNC0xNCAxMi0yMC4zIDE5LjEtMi44LTguNS02LjItMTYuOC05LjQtMjUuMXoiXX0seWZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZHJvaWQiLGljb246WzU3Niw1MTIsW10sImYxN2IiLCJNNDIwLjUgMjUzLjlhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tMjY1LjEgMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTI3My43LTk2LjVsNDcuOS04M2MuOC0xLjEgMS4zLTIuNCAxLjUtMy44cy4yLTIuNy0uMS00LjEtLjktMi42LTEuNy0zLjctMS44LTItMy0yLjctMi41LTEuMS0zLjktMS4zLTIuNyAwLTQgLjQtMi41IDEuMS0zLjYgMS45LTEuOSAyLTIuNSAzLjJsLTQ4LjUgODQuMWMtMzguOC0xNy40LTgwLjgtMjYuNC0xMjMuMy0yNi40cy04NC41IDktMTIzLjMgMjYuNEwxMTYuMiA2NC40Yy0uNi0xLjItMS41LTIuMy0yLjUtMy4ycy0yLjMtMS41LTMuNi0xLjktMi43LS41LTQtLjQtMi43IC42LTMuOSAxLjMtMi4yIDEuNi0zIDIuNy0xLjQgMi40LTEuNyAzLjctLjMgMi43LS4xIDQuMSAuOCAyLjYgMS41IDMuOGw0Ny45IDgzQzY0LjUgMjAyLjIgOC4yIDI4NS41IDAgMzg0bDU3NiAwYy04LjItOTguNS02NC41LTE4MS44LTE0Ni45LTIyNi42eiJdfSx4ZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVldHVwIixpY29uOls1NzYsNTEyLFtdLCJmMmUwIiwiTTEzMS4xIDQxNC4zYzEuMSA1LjctMi4zIDExLjEtOCAxMi4zLTUuNCAxLjEtMTAuOS0yLjMtMTItOC0xLjEtNS40IDIuMy0xMS4xIDcuNy0xMi4zczExLjEgMi4zIDEyLjMgOHptMTQzLjEgNzEuNGMtNi4zIDQuNi04IDEzLjQtMy43IDIwIDQuNiA2LjYgMTMuNCA4LjMgMjAgMy43IDYuMy00LjYgOC0xMy40IDMuNC0yMC00LjItNi41LTEzLjEtOC4zLTE5LjctMy43em0tODYtNDYyLjNhMTEuOCAxMS44IDAgMSAwIC00LjktMjMgMTEuOCAxMS44IDAgMSAwIDQuOSAyM3pNNjYuNSAyMjYuM2EyMi4yIDIyLjIgMCAxIDAgLTI0LjcgMzYuOSAyMi4yIDIyLjIgMCAxIDAgMjQuNy0zNi45em0yNzItMTcwLjlhMjIuMSAyMi4xIDAgMSAwIC0yMi40LTM4IDIyLjEgMjIuMSAwIDEgMCAyMi40IDM4em0tMTkxLjEgNThhMTYuOSAxNi45IDAgMSAwIC0xOC44LTI4IDE2LjkgMTYuOSAwIDEgMCAxOC44IDI4em0zNzIuMyAxNTZjLTcuNCAxLjctMTIuMyA5LjEtMTAuNiAxNi45IDEuNCA3LjQgOC45IDEyLjMgMTYuMyAxMC42IDcuNC0xLjQgMTIuMy04LjkgMTAuNi0xNi42LTEuNS03LjQtOC45LTEyLjMtMTYuMy0xMC45em0zOS43LTU2LjhhMTAuMSAxMC4xIDAgMSAwIC0xOS44IDQuMyAxMC4xIDEwLjEgMCAxIDAgMTkuOC00LjN6bS04MC4zLTczLjdhMTguOCAxOC44IDAgMSAwIDIwLjcgMzEuMyAxOC44IDE4LjggMCAxIDAgLTIwLjctMzEuM3ptLTYuMyAxMzkuNGMyNi4zIDQzLjEgMTUuMSAxMDAtMjYuMyAxMjkuMS0xNy40IDEyLjMtMzcuMSAxNy43LTU2LjkgMTcuMS0xMiA0Ny4xLTY5LjQgNjQuNi0xMDUuMSAzMi42LTEuMSAuOS0yLjYgMS43LTMuNyAyLjktMzkuMSAyNy4xLTkyLjMgMTcuNC0xMTkuNC0yMi4zLTkuNy0xNC4zLTE0LjYtMzAuNi0xNS4xLTQ2LjktNjUuNC0xMC45LTkwLTk0LTQxLjEtMTM5LjctMjguMy00Ni45IC42LTEwNy40IDUzLjQtMTE0LjkgMjUuMS02Ni4yIDEwNy42LTk3LjYgMTYzLjYtNTQuMiA2Ny40LTIyLjMgMTM2LjMgMjkuNCAxMzAuOSAxMDEuMSA0MS4xIDEyLjYgNTIuOCA2Ni45IDE5LjcgOTUuMnptLTcwIDc0LjNjLTMuMS0yMC42LTQwLjktNC42LTQzLjEtMjcuMS0zLjEtMzIgNDMuNy0xMDEuMSA0MC0xMjgtMy40LTI0LTE5LjQtMjkuMS0zMy40LTI5LjQtMTMuNC0uMy0xNi45IDItMjEuNCA0LjYtMi45IDEuNy02LjYgNC45LTExLjctLjMtNi4zLTYtMTEuMS0xMS43LTE5LjQtMTIuOS0xMi4zLTItMTcuNyAyLTI2LjYgOS43LTMuNCAyLjktMTIgMTIuOS0yMCA5LjEtMy40LTEuNy0xNS40LTcuNy0yNC0xMS40LTE2LjMtNy4xLTQwIDQuNi00OC42IDIwLTEyLjkgMjIuOS0zOCAxMTMuMS00MS43IDEyNS4xLTguNiAyNi42IDEwLjkgNDguNiAzNi45IDQ3LjEgMTEuMS0uNiAxOC4zLTQuNiAyNS40LTE3LjQgNC03LjQgNDEuNy0xMDcuNyA0NC42LTExMi42IDItMy40IDguOS04IDE0LjYtNS4xIDUuNyAzLjEgNi45IDkuNCA2IDE1LjEtMS4xIDkuNy0yOCA3MC45LTI4LjkgNzcuNy0zLjQgMjIuOSAyNi45IDI2LjYgMzguNiA0IDMuNy03LjEgNDUuNy05Mi42IDQ5LjQtOTguMyA0LjMtNi4zIDcuNC04LjMgMTEuNy04IDMuMSAwIDguMyAuOSA3LjEgMTAuOS0xLjQgOS40LTM1LjEgNzIuMy0zOC45IDg3LjctNC42IDIwLjYgNi42IDQxLjQgMjQuOSA1MC42IDExLjQgNS43IDYyLjUgMTUuNyA1OC41LTExLjF6bTUuNyA5Mi4zYTIzLjMgMjMuMyAwIDEgMCAyNi4yIDM4LjQgMjMuMyAyMy4zIDAgMSAwIC0yNi4yLTM4LjR6Il19LHdmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250aWNvbnMtZmkiLGljb246WzM4NCw1MTIsW10sImYzYTIiLCJNMTE0LjQgMjI0bDkyLjQgMC0xNS4yIDUxLjItNzYuNCAwIDAgMTU3LjhjMCA4LTIuOCA5LjIgNC40IDEwbDU5LjYgNS42IDAgMzQuNC0xNzkuMiAwIDAtMzUuMiAyOS4yLTIuOGM3LjItLjggOS4yLTMuMiA5LjItMTAuOGwwLTE1NS44YzAtMy4yLTQtMy4yLTgtMy4ybC0zMC40IDAgMC01MS4yIDM4LjQgMCAwLTI4LjhjMC02OCAzNi40LTk2IDEwNi05NiA0Ni44IDAgODguOCAxMS4yIDg4LjggNzIuNEwxNjMuNiAxODBjLjQtMjUuNi02LTMxLjYtMjIuNC0zMS42LTI1LjIgMC0yNiAxMy42LTI2IDM3LjZsMCAzMmMwIDMuMi00LjggNi0uOCA2ek0zODQgNDgzbC0xNDAuOCAwIDAtMzQuNCAyOC0zLjZjNy4yLS44IDEwLjQtMi40IDEwLjQtMTBsMC0xNDhjMC01LjYtNC05LjItOS4yLTEwLjhsLTMzLjItOC44IDkuMi00MC40IDExMCAwIDAgMjA4YzAgOC0zLjYgOC44IDQgMTBsMjEuNiAzLjYgMCAzNC40ek0zNTQgMTM1LjhsMTIuNCA0NS42LTEwIDEwLTQyLjgtMjIuOC00Mi44IDIyLjgtMTAtMTAgMTIuNC00NS42LTMwLTM2LjQgNC44LTEwIDM4IDAgMjEuMi0zOC40IDEyLjggMCAyMS4yIDM4LjQgMzggMCA0LjggMTMuMi0zMCAzMy4yeiJdfSxNZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFsZmVkIixpY29uOls1NzYsNTEyLFtdLCJmM2Q4IiwiTTM4NC45IDE5My45YzAtNDcuNC01NS4yLTQ0LjItOTUuNC0yOS44LTEuMyAzOS40LTIuNSA4MC43LTMgMTE5LjggLjcgMi44IDIuNiA2LjIgMTUuMSA2LjIgMzYuOCAwIDgzLjQtNDIuOCA4My4zLTk2LjJ6TTE5MC40IDI2Ni4xYy4yIDAgNi41LTIuNyAxMS4yLTIuNyAyNi42IDAgMjAuNyA0NC4xLTE0LjQgNDQuMS0yMS41IDAtMzcuMS0xOC4xLTM3LjEtNDMgMC00MiA0Mi45LTk1LjYgMTAwLjctMTI2LjUgMS0xMi40IDMtMjIgMTAuNS0yOC4yIDExLjItOSAyNi42LTMuNSAyOS41IDExLjEgNzIuMi0yMi4yIDEzNS4yIDEgMTM1LjIgNzIgMCA3Ny45LTc5LjMgMTUyLjYtMTQwLjEgMTM4LjItLjEgMzkuNCAuOSA3NC40IDIuNyAxMDBsMCAuMmMuMiAzLjQgLjYgMTIuNS01LjMgMTkuMS05LjYgMTAuNi0zMy40IDEwLTM2LjQtMjIuMy00LjEtNDQuNCAuMi0yMDYuMSAxLjQtMjQyLjUtMjEuNSAxNS01OC41IDUwLjMtNTguNSA3NS45IC4yIDIuNSAuNCA0IC42IDQuNnpNOCAxODEuMXMtLjEgMzcuNCAzOC40IDM3LjRsMzAgMCAyMi40IDIxNy4yczAgNDQuMyA0NC43IDQ0LjNsMjg4LjkgMHM0NC43LS40IDQ0LjctNDQuM2wyMi40LTIxNy4yIDMwIDBzMzguNCAxLjIgMzguNC0zNy40YzAgMCAuMS0zNy40LTM4LjQtMzcuNGwtMzAuMSAwYy03LjMtMjUuNi0zMC4yLTc0LjMtMTE5LjQtNzQuM2wtMjggMCAwLTE5LjFzLTIuNy0xOC40LTIxLjEtMTguNGwtODUuOCAwUzIyNCAzMS45IDIyNCA1MC4zbDAgMTkuMS0yOC4xIDBzLTEwNSA0LjItMTIwLjUgNzQuM2wtMjkgMFM4IDE0Mi41IDggMTgxLjF6Il19LHpmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGJlZ2lubmVyIixpY29uOls1MTIsNTEyLFtdLCJmMjk3IiwiTTQ2My4yIDMyMi40YzU2LjIgNjQuMyA0LjIgMTU3LjYtOTEuOSAxNTcuNi0zOS42IDAtNzguOC0xNy43LTEwMC4xLTUwLTYuOSAuNC0yMi43IC40LTI5LjYgMC0yMS40IDMyLjQtNjAuNiA1MC0xMDAuMSA1MC05NS41IDAtMTQ4LjMtOTMtOTEuOS0xNTcuNi03OS4xLTEzMS45IDMxLjMtMjkwLjQgMjA2LjgtMjkwLjQgMTc1LjYgMCAyODUuOSAxNTguNiAyMDYuOCAyOTAuNHptLTMzOS42LTgzbDQxLjUgMCAwLTU4LjEtNDEuNSAwIDAgNTguMXptMjE3LjIgODYuMWwwLTIzLjhjLTYwLjUgMjAuOS0xMzIuNCA5LjItMTg3LjYtMzRsLjIgMjQuOWM1MS4xIDQ2LjQgMTMxLjcgNTcuOSAxODcuMyAzMi45ek0xOTAgMjM5LjRsMTY2LjEgMCAwLTU4LjEtMTY2LjEgMCAwIDU4LjF6Il19LGtmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaWFzcG9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc5MSIsIk0yMTkuNyAzNTQuNmMtMS40IDAtODggMTE5LjktODguNyAxMTkuOVM0NC40IDQxNCA0NCA0MTMuMyAxMzAuNiAyODcuNSAxMzAuNiAyODUuOGMwLTIuMi0xMjkuNi00NC0xMzcuNi00Ny4xLTEuMy0uNSAzMS40LTEwMS44IDMxLjctMTAyLjEgLjYtLjcgMTQ0LjQgNDcgMTQ1LjUgNDcgLjQgMCAuOS0uNiAxLTEuMyAuNC0yIDEtMTQ4LjYgMS43LTE0OS42IC44LTEuMiAxMDQuNS0uNyAxMDUuMS0uMyAxLjUgMSAzLjUgMTU2LjEgNi4xIDE1Ni4xIDEuNCAwIDEzOC43LTQ3IDEzOS4zLTQ2LjMgLjggLjkgMzEuOSAxMDIuMiAzMS41IDEwMi42LS45IC45LTE0MC4yIDQ3LjEtMTQwLjYgNDguOC0uMyAxLjQgODIuOCAxMjIuMSA4Mi41IDEyMi45cy04NS41IDYzLjUtODYuMyA2My41Yy0xLS4yLTg5LTEyNS41LTkwLjktMTI1LjVsMCAweiJdfSxTZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHJvZHVjdC1odW50IixpY29uOls1MTIsNTEyLFtdLCJmMjg4IiwiTTMyNi4zIDIxOC44YzAgMjAuNS0xNi43IDM3LjItMzcuMiAzNy4ybC03MC4zIDAgMC03NC40IDcwLjMgMGMyMC41IDAgMzcuMiAxNi43IDM3LjIgMzcuMnpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzY3LjktMzcuMmMwLTQ3LjktMzguOS04Ni44LTg2LjgtODYuOGwtMTE5LjkgMCAwIDI0OCA0OS42IDAgMC03NC40IDcwLjMgMGM0Ny45IDAgODYuOC0zOC45IDg2LjgtODYuOHoiXX0sQ2ZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS11cHdvcmsiLGljb246WzQ0OCw1MTIsW10sImU2N2MiLCJNNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAzMzZjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNDgwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDg4QzAgNTcuMSAyNS4xIDMyIDU2IDMyek0yNzAuOSAyNzQuMmM2LjYtNTIuOSAyNS45LTY5LjUgNTEuNC02OS41IDI1LjMgMCA0NC45IDIwLjIgNDQuOSA0OS43cy0xOS43IDQ5LjctNDQuOSA0OS43Yy0yNy45IDAtNDYuMy0yMS41LTUxLjQtMjkuOXptLTI2LjctNDEuOGMtOC4yLTE1LjUtMTQuMy0zNi4zLTE5LjItNTUuNmwtNjIuOSAwIDAgNzguMWMwIDI4LjQtMTIuOSA0OS40LTM4LjIgNDkuNFM4NC4xIDI4My40IDg0LjEgMjU1bC4zLTc4LjEtMzYuMiAwIDAgNzguMWMwIDIyLjggNy40IDQzLjUgMjAuOSA1OC4yIDEzLjkgMTUuMiAzMi44IDIzLjIgNTQuOCAyMy4yIDQzLjcgMCA3NC4yLTMzLjUgNzQuMi04MS41bDAtNTIuNWM0LjYgMTcuMyAxNS40IDUwLjUgMzYuMiA3OS43bC0xOS4zIDExMC41IDM2LjggMCAxMi44LTc4LjRjNC4yIDMuNSA4LjcgNi42IDEzLjQgOS40IDEyLjMgNy44IDI2LjQgMTIuMiA0MC45IDEyLjZsMy40IDBjNDUuMSAwIDgwLjktMzQuOSA4MC45LTgxLjlzLTM1LjktODIuMi04MC45LTgyLjJjLTQ1LjQgMC03MC45IDI5LjctNzguMSA2MC4xbDAgLjJ6Il19LF9mZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjdXR0bGVmaXNoIixpY29uOls0NDgsNTEyLFtdLCJmMzhjIiwiTTM0OCAzMDUuNWMtMTcuNSAzMS42LTU3LjQgNTQuNS05NiA1NC41LTU2LjYgMC0xMDQtNDcuNC0xMDQtMTA0czQ3LjQtMTA0IDEwNC0xMDRjMzguNiAwIDc4LjUgMjIuOSA5NiA1NC41IDEzLjctNTAuOSA0MS43LTkzLjMgODctMTE3LjgtNDUuMy00OS42LTExMC41LTgwLjctMTgzLTgwLjctMTM3IDAtMjQ4IDExMS0yNDggMjQ4UzExNSA1MDQgMjUyIDUwNGM3Mi41IDAgMTM3LjctMzEuMSAxODMtODAuNy00NS4zLTI0LjUtNzMuMy02Ni45LTg3LTExNy44eiJdfSxUZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkYXBwcyIsaWNvbjpbMzIwLDUxMixbXSwiZjNjNiIsIk0xMTguMyAyMzguNGMzLjUtMTIuNSA2LjktMzMuNiAxMy4yLTMzLjYgOC4zIDEuOCA5LjYgMjMuNCAxOC42IDM2LjYgNC42LTIzLjUgNS4zLTg1LjEgMTQuMS04Ni43IDktLjcgMTkuNyA2Ni41IDIyIDc3LjUgOS45IDQuMSA0OC45IDYuNiA0OC45IDYuNiAxLjkgNy4zLTI0IDcuNi00MCA3LjgtNC42IDE0LjgtNS40IDI3LjctMTEuNCAyOC00LjcgLjItOC4yLTI4LjgtMTcuNS00OS42bC05LjQgNjUuNWMtNC40IDEzLTE1LjUtMjIuNS0yMS45LTM5LjMtMy4zLS4xLTYyLjQtMS42LTQ3LjYtNy44bDMxLTV6TTIyOCA0NDhjMjEuMiAwIDIxLjItMzIgMC0zMkw5MiA0MTZjLTIxLjIgMC0yMS4yIDMyIDAgMzJsMTM2IDB6bS0yNCA2NGMyMS4yIDAgMjEuMi0zMiAwLTMybC04OCAwYy0yMS4yIDAtMjEuMiAzMiAwIDMybDg4IDB6bTM0LjItMTQxLjVjMy4yLTE4LjkgNS4yLTM2LjQgMTEuOS00OC44IDcuOS0xNC43IDE2LjEtMjguMSAyNC00MSAyNC42LTQwLjQgNDUuOS03NS4yIDQ1LjktMTI1LjUgMC04NS42LTcxLjgtMTU1LjItMTYwLTE1NS4yUzAgNjkuNiAwIDE1NS4yYzAgNTAuMiAyMS4zIDg1LjEgNDUuOSAxMjUuNSA3LjkgMTIuOSAxNiAyNi4zIDI0IDQxIDYuNyAxMi41IDguNyAyOS44IDExLjkgNDguOSAzLjUgMjEgMzYuMSAxNS43IDMyLjYtNS4xLTMuNi0yMS43LTUuNi00MC43LTE1LjMtNTguNi0zMi42LTYwLjQtNjYuMS05NS42LTY2LjEtMTUxLjcgMC02Ny45IDU3LTEyMy4yIDEyNy0xMjMuMlMyODcgODcuMyAyODcgMTU1LjJjMCA1Ni4xLTMzLjUgOTEuMy02Ni4xIDE1MS42LTkuNyAxOC0xMS43IDM3LjQtMTUuMyA1OC42LTMuNCAyMC42IDI5IDI2LjQgMzIuNiA1LjF6Il19LExmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXgiLGljb246WzUxMiw1MTIsW10sImU0M2EiLCJNMjQyLjQgMjkyLjVjNS40LTUuNCAxNC43LTUuNCAyMC4xIDBsNzcgNzdjMTQuMiAxNC4yIDMzLjEgMjIgNTMuMSAyMmwxNS4xIDAtOTcuMSA5Ny4xYy0zMC4zIDI5LjUtNzkuNSAyOS41LTEwOS44IDBsLTk3LjUtOTcuNCA5LjMgMGMyMCAwIDM4LjktNy44IDUzLjEtMjJsNzYuNy03Ni43em0yMC4xLTczLjZjLTYuNCA1LjUtMTQuNiA1LjYtMjAuMSAwbC03Ni43LTc2LjdjLTE0LjItMTUuMS0zMy4xLTIyLTUzLjEtMjJsLTkuMyAwIDk3LjQtOTcuNGMzMC40LTMwLjMgNzkuNi0zMC4zIDEwOS45IDBsOTcuMiA5Ny4xLTE1LjIgMGMtMjAgMC0zOC45IDcuOC01My4xIDIybC03NyA3N3pNMTEyLjYgMTQyLjdjMTMuOCAwIDI2LjUgNS42IDM3LjEgMTUuNGw3Ni43IDc2LjdjNy4yIDYuMyAxNi42IDEwLjggMjYuMSAxMC44IDkuNCAwIDE4LjgtNC41IDI2LTEwLjhsNzctNzdjOS44LTkuNyAyMy4zLTE1LjMgMzcuMS0xNS4zbDM3LjcgMCA1OC4zIDU4LjNjMzAuMyAzMC4zIDMwLjMgNzkuNSAwIDEwOS44bC01OC4zIDU4LjMtMzcuNyAwYy0xMy44IDAtMjcuMy01LjYtMzcuMS0xNS40bC03Ny03N2MtMTMuOS0xMy45LTM4LjItMTMuOS01Mi4xIC4xbC03Ni43IDc2LjZjLTEwLjYgOS44LTIzLjMgMTUuNC0zNy4xIDE1LjRsLTMxLjggMC01OC01OGMtMzAuMy0zMC4zLTMwLjMtNzkuNSAwLTEwOS44bDU4LTU4LjEgMzEuOCAweiJdfSxURT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdHVtYmxyIixpY29uOls0NDgsNTEyLFsidHVtYmxyLXNxdWFyZSJdLCJmMTc0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYuOCA0MTZjLTc1LjUgMC05MS45LTU1LjUtOTEuOS04Ny45bDAtOTAtMjkuNyAwYy0zLjQgMC02LjItMi44LTYuMi02LjJsMC00Mi41YzAtNC41IDIuOC04LjUgNy4xLTEwIDM4LjgtMTMuNyA1MC45LTQ3LjUgNTIuNy03My4yIC41LTYuOSA0LjEtMTAuMiAxMC0xMC4ybDQ0LjMgMGMzLjQgMCA2LjIgMi44IDYuMiA2LjJsMCA3MiA1MS45IDBjMy40IDAgNi4yIDIuOCA2LjIgNi4ybDAgNTEuMWMwIDMuNC0yLjggNi4yLTYuMiA2LjJsLTUyLjEgMCAwIDgzLjNjMCAyMS40IDE0LjggMzMuNSA0Mi41IDIyLjQgMy0xLjIgNS42LTIgOC0xLjQgMi4yIC41IDMuNiAyLjEgNC42IDQuOUwzMTggMzg3LjFjMSAzLjIgMiA2LjctLjMgOS4xLTguNSA5LjEtMzEuMiAxOS44LTYwLjkgMTkuOHoiXX0sJGZlPVRFLEFmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFjdCIsaWNvbjpbNTEyLDUxMixbXSwiZjQxYiIsIk00MTguMiAxNzcuMmMtNS40LTEuOC0xMC44LTMuNS0xNi4yLTUuMSAuOS0zLjcgMS43LTcuNCAyLjUtMTEuMSAxMi4zLTU5LjYgNC4yLTEwNy41LTIzLjEtMTIzLjMtMjYuMy0xNS4xLTY5LjIgLjYtMTEyLjYgMzguNC00LjMgMy43LTguNSA3LjYtMTIuNSAxMS41LTIuNy0yLjYtNS41LTUuMi04LjMtNy43LTQ1LjUtNDAuNC05MS4xLTU3LjQtMTE4LjQtNDEuNS0yNi4yIDE1LjItMzQgNjAuMy0yMyAxMTYuNyAxLjEgNS42IDIuMyAxMS4xIDMuNyAxNi43LTYuNCAxLjgtMTIuNyAzLjgtMTguNiA1LjktNTMuNCAxOC41LTkxLjcgNDcuNy05MS43IDc3LjkgMCAzMS4yIDQwLjggNjIuNSA5Ni4zIDgxLjUgNC41IDEuNSA5IDMgMTMuNiA0LjMtMS41IDYtMi44IDExLjktNCAxOC0xMC41IDU1LjUtMi4zIDk5LjUgMjMuOSAxMTQuNiAyNyAxNS42IDcyLjQtLjQgMTE2LjYtMzkuMSAzLjUtMy4xIDctNi4zIDEwLjUtOS43IDQuNCA0LjMgOSA4LjQgMTMuNiAxMi40IDQyLjggMzYuOCA4NS4xIDUxLjcgMTExLjIgMzYuNiAyNy0xNS42IDM1LjgtNjIuOSAyNC40LTEyMC41LS45LTQuNC0xLjktOC45LTMtMTMuNSAzLjItLjkgNi4zLTEuOSA5LjQtMi45IDU3LjctMTkuMSA5OS41LTUwIDk5LjUtODEuNyAwLTMwLjMtMzkuNC01OS43LTkzLjgtNzguNHpNMjgyLjkgOTIuM2MzNy4yLTMyLjQgNzEuOS00NS4xIDg3LjctMzYgMTYuOSA5LjcgMjMuNCA0OC45IDEyLjggMTAwLjQtLjcgMy40LTEuNCA2LjctMi4zIDEwLTIyLjItNS00NC43LTguNi02Ny4zLTEwLjYtMTMtMTguNi0yNy4yLTM2LjQtNDIuNi01My4xIDMuOS0zLjcgNy43LTcuMiAxMS43LTEwLjd6TTE2Ny4yIDMwNy41YzUuMSA4LjcgMTAuMyAxNy40IDE1LjggMjUuOS0xNS42LTEuNy0zMS4xLTQuMi00Ni40LTcuNSA0LjQtMTQuNCA5LjktMjkuMyAxNi4zLTQ0LjUgNC42IDguOCA5LjMgMTcuNSAxNC4zIDI2LjF6TTEzNi45IDE4Ny4yYzE0LjQtMy4yIDI5LjctNS44IDQ1LjYtNy44LTUuMyA4LjMtMTAuNSAxNi44LTE1LjQgMjUuNC00LjkgOC41LTkuNyAxNy4yLTE0LjIgMjYtNi4zLTE0LjktMTEuNi0yOS41LTE2LTQzLjZ6bTI3LjQgNjguOWM2LjYtMTMuOCAxMy44LTI3LjMgMjEuNC00MC42czE1LjgtMjYuMiAyNC40LTM4LjljMTUtMS4xIDMwLjMtMS43IDQ1LjktMS43czMxIC42IDQ1LjkgMS43YzguNSAxMi42IDE2LjYgMjUuNSAyNC4zIDM4LjdzMTQuOSAyNi43IDIxLjcgNDAuNGMtNi43IDEzLjgtMTMuOSAyNy40LTIxLjYgNDAuOC03LjYgMTMuMy0xNS43IDI2LjItMjQuMiAzOS0xNC45IDEuMS0zMC40IDEuNi00Ni4xIDEuNnMtMzAuOS0uNS00NS42LTEuNGMtOC43LTEyLjctMTYuOS0yNS43LTI0LjYtMzlzLTE0LjgtMjYuOC0yMS41LTQwLjZ6bTE4MC42IDUxLjJjNS4xLTguOCA5LjktMTcuNyAxNC42LTI2LjcgNi40IDE0LjUgMTIgMjkuMiAxNi45IDQ0LjMtMTUuNSAzLjUtMzEuMiA2LjItNDcgOCA1LjQtOC40IDEwLjUtMTcgMTUuNS0yNS42em0xNC40LTc2LjVjLTQuNy04LjgtOS41LTE3LjYtMTQuNS0yNi4yLTQuOS04LjUtMTAtMTYuOS0xNS4zLTI1LjIgMTYuMSAyIDMxLjUgNC43IDQ1LjkgOC00LjYgMTQuOC0xMCAyOS4yLTE2LjEgNDMuNHpNMjU2LjIgMTE4LjNjMTAuNSAxMS40IDIwLjQgMjMuNCAyOS42IDM1LjgtMTkuOC0uOS0zOS43LS45LTU5LjUgMCA5LjgtMTIuOSAxOS45LTI0LjkgMjkuOS0zNS44ek0xNDAuMiA1N2MxNi44LTkuOCA1NC4xIDQuMiA5My40IDM5IDIuNSAyLjIgNSA0LjYgNy42IDctMTUuNSAxNi43LTI5LjggMzQuNS00Mi45IDUzLjEtMjIuNiAyLTQ1IDUuNS02Ny4yIDEwLjQtMS4zLTUuMS0yLjQtMTAuMy0zLjUtMTUuNS05LjQtNDguNC0zLjItODQuOSAxMi42LTk0ek0xMTUuNyAzMjAuNmMtNC4yLTEuMi04LjMtMi41LTEyLjQtMy45LTIxLjMtNi43LTQ1LjUtMTcuMy02My0zMS4yLTEwLjEtNy0xNi45LTE3LjgtMTguOC0yOS45IDAtMTguMyAzMS42LTQxLjcgNzcuMi01Ny42IDUuNy0yIDExLjUtMy44IDE3LjMtNS41IDYuOCAyMS43IDE1IDQzIDI0LjUgNjMuNi05LjYgMjAuOS0xNy45IDQyLjUtMjQuOCA2NC41em0xMTYuNiA5OGMtMTYuNSAxNS4xLTM1LjYgMjcuMS01Ni40IDM1LjMtMTEuMSA1LjMtMjMuOSA1LjgtMzUuMyAxLjMtMTUuOS05LjItMjIuNS00NC41LTEzLjUtOTIgMS4xLTUuNiAyLjMtMTEuMiAzLjctMTYuNyAyMi40IDQuOCA0NSA4LjEgNjcuOSA5LjggMTMuMiAxOC43IDI3LjcgMzYuNiA0My4yIDUzLjQtMy4yIDMuMS02LjQgNi4xLTkuNiA4Ljl6bTI0LjUtMjQuM2MtMTAuMi0xMS0yMC40LTIzLjItMzAuMy0zNi4zIDkuNiAuNCAxOS41IC42IDI5LjUgLjYgMTAuMyAwIDIwLjQtLjIgMzAuNC0uNy05LjIgMTIuNy0xOS4xIDI0LjgtMjkuNiAzNi40em0xMzAuNyAzMGMtLjkgMTIuMi02LjkgMjMuNi0xNi41IDMxLjMtMTUuOSA5LjItNDkuOC0yLjgtODYuNC0zNC4yLTQuMi0zLjYtOC40LTcuNS0xMi43LTExLjUgMTUuMy0xNi45IDI5LjQtMzQuOCA0Mi4yLTUzLjYgMjIuOS0xLjkgNDUuNy01LjQgNjguMi0xMC41IDEgNC4xIDEuOSA4LjIgMi43IDEyLjIgNC45IDIxLjYgNS43IDQ0LjEgMi41IDY2LjN6bTE4LjItMTA3LjVjLTIuOCAuOS01LjYgMS44LTguNSAyLjYtNy0yMS44LTE1LjYtNDMuMS0yNS41LTYzLjggOS42LTIwLjQgMTcuNy00MS40IDI0LjUtNjIuOSA1LjIgMS41IDEwLjIgMy4xIDE1IDQuNyA0Ni42IDE2IDc5LjMgMzkuOCA3OS4zIDU4IDAgMTkuNi0zNC45IDQ0LjktODQuOCA2MS40ek0yNTYgMzAxLjhhNDUuOCA0NS44IDAgMSAwIDAtOTEuNiA0NS44IDQ1LjggMCAxIDAgMCA5MS42eiJdfSxEZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaHVnZ2luZy1mYWNlIixpY29uOls1NzYsNTEyLFtdLCJlODY5IiwiTTI4Ni44IDguMmMxMzAgMCAyMzUuNCAxMDUuOCAyMzUuNCAyMzYuMyAwIDE3LjctMS45IDM1LTUuNiA1MS43LTEuNCA2LjUtMy4xIDEyLjgtNS4xIDE5LjEgNi41LS42IDEzIC42IDE4LjcgMy41IDEyLjYgNi41IDIwLjIgMjEuNyAxOC4yIDM1LjctLjcgNC45LTIuNCA5LjQtNC44IDEzLjUgNS4yIDQuMiA5IDEwLjEgMTAuOCAxNy4xIDEuNCA1LjUgMi45IDE3LjEtNC44IDI4LjkgNS44IDkuMiA2LjYgMjAuNiAyLjIgMzAuNi02LjIgMTQuMS0yMS43IDI1LjMtNTEuNyAzNy4zLTMyLjUgMTMtNjcuMSAyMS45LTEwMi4zIDIxLjktMzIgMC01NS45LTguOS03MS0yNi40LTEzIDIuMi0yNi4zIDMuNC00MCAzLjQtMTIuNyAwLTI1LjItMS0zNy4zLTIuOS0xNS4xIDE3LjItMzguOCAyNS45LTcwLjYgMjUuOS0zNS4xIDAtNzAtOS0xMDIuNC0yMS45LTMwLTEyLTQ1LjUtMjMuMS01MS43LTM3LjMtNC40LTkuOS0zLjYtMjEuNCAyLjItMzAuNi03LjctMTEuOS02LjMtMjMuNC00LjgtMjguOSAxLjgtNyA1LjctMTIuOSAxMC44LTE3LjEtMi41LTQuMS00LjEtOC42LTQuOC0xMy41LTEuNS0xMC40IDItMjAuNyA5LjctMjkuMiA2LjEtNi43IDE1LjEtMTAuMyAyNC4yLTEwLjItMS45LTYuMS0zLjYtMTIuNC01LTE4LjctMy43LTE2LjctNS43LTM0LTUuNy01MS44IDAtMTMwLjUgMTA1LjQtMjM2LjMgMjM1LjQtMjM2LjN6TTExNy41IDMxMWMtMTMtOC4yLTIyLjEtMy42LTE5IDEzLjRzNTcuMiA1OC4yIDUyIDY3LjJjLTUuMiA4LjgtMjMuNS0xMC4xLTIzLjgtMTAuNSAwIDAtNTguMi01My4xLTcwLjgtMzkuMy0xMi42IDEzLjggOS42IDI1LjQgNDEuMyA0NC43czM0LjIgMjQuNCAyOS43IDMxLjctNzQuNS01Mi04MS4xLTI2LjhjLTYuNSAyNS4xIDcxLjQgMzIuNCA2Ni43IDQ5LjgtNC44IDE3LjQtNTQuOS0zMi44LTY1LjItMTMuMy0xMC4zIDE5LjYgNzAuOCA0Mi42IDcxLjQgNDIuNyAyNi4yIDYuOCA5Mi42IDIxLjMgMTE1LjktMTIuOSAxNi43LTI0LjYgMTUuNi00My4xLTcuNC02Ni4xcy0zNi4zLTU2LjctMzYuMy01Ni43YzAtLjItNS0xOS41LTE2LjMtMTcuOC0xMS40IDEuOC0xOS43IDMxIDQuMSA0OC45IDIzLjggMTcuOS00LjcgMzAtMTMuOSAxMy4zLTkuMi0xNi44LTM0LjItNTkuOS00Ny4xLTY4LjJ6bTM2MC42IDEzLjRjMy4xLTE3LTYuMS0yMS42LTE5LTEzLjQtMTMgOC4zLTM3LjkgNTEuNC00Ny4xIDY4LjJzLTM3LjcgNC42LTEzLjktMTMuMyAxNS40LTQ3LjEgNC4xLTQ4LjktMTYuMyAxNy44LTE2LjMgMTcuOGMtLjEgLjItMTMuNCAzMy43LTM2LjMgNTYuNy0yMi45IDIzLTI0LjEgNDEuNS03LjQgNjYuMSAyMy4yIDM0LjIgODkuNyAxOS43IDExNS45IDEyLjkgMS41LS40IDgxLjYtMjMuMyA3MS40LTQyLjctMTAuMy0xOS41LTYwLjQgMzAuNi02NS4zIDEzLjMtNC44LTE3LjMgNzMuMi0yNC42IDY2LjctNDkuOC02LjYtMjUuMS03Ni42IDM0LjEtODEuMSAyNi44LTQuNS03LjMtMi0xMi40IDI5LjctMzEuNyAzMS43LTE5LjMgNTQtMzAuOSA0MS4zLTQ0LjctMTIuNy0xMy44LTcwLjggMzkuMy03MC44IDM5LjMtLjQgLjQtMTguNiAxOS4zLTIzLjggMTAuNS01LjMtOC45IDQ4LjktNTAuMSA1Mi02Ny4yek0yODYuOCAzMi42Yy0xMTYuNiAwLTIxMS4xIDk0LjktMjExLjEgMjExLjkgMCAxNy4xIDIgMzMuOCA1LjggNDkuNyAwLS4xIC4xLS4xIC4yLS4yIDYuMS03LjQgMTQuOS0xMS40IDI0LjctMTEuNCAxNy43IDAgMzEuMSAxMS45IDQxLjUgMjQuOSA2LjgtOS40IDE3LjEtMTUgMjcuOS0xNSAyMC43IDAgMzMuMiAxOC4xIDM3LjkgMzQuMyAyLjMgNS41IDEzLjYgMzAuNSAzMC40IDQ3LjQgMjUuNyAyNS44IDMyLjIgNTIuNCAxOS40IDgwLjkgMTYgMS44IDMyLjggMS43IDQ5LjItLjMtMTIuNS0yOC40LTYtNTQuOSAxOS42LTgwLjYgMTYuOS0xNi45IDI4LjEtNDEuOSAzMC41LTQ3LjQgNC43LTE2LjIgMTcuMi0zNC4zIDM3LjktMzQuMyAxMC45IDAgMjEuMiA1LjYgMjcuOSAxNSAxMC40LTEzIDIzLjgtMjQuOSA0MS41LTI0LjkgOC43IDAgMTYuNiAzLjEgMjIuNSA4LjkgNS0yMiA2LjQtNDUuOCA0LjEtNjguNy0xMC44LTEwNi45LTEwMC43LTE5MC4zLTIxMC0xOTAuM3ptMS41IDIzNC4yYzQzLjYgMCA3OS00MiA3OS0xNC41IDAgMjcuNC0xOS4yIDgwLjktNzguOCA4MC45LTE5LjIgMC0zNC4yLTUuNS00NS44LTEzLjktMjMuMi0xOS40LTMzLjQtNDguMi0zMy40LTY2LjkgMC0yNy40IDM1LjQgMTQuNSA3OSAxNC41em0tMTMuMyAyNWMtOC4yIDIuNC0xNS41IDYuOC0yMS41IDEyLjYgMjIgMTIuOCA1MC40IDEyLjkgNzEuNy0xLjMtNS41LTQuOS0xMi04LjctMTkuMS0xMS01LjEtMS42LTEwLjQgMTUuOC0xNiAxNS44LTUuMiAwLTEwLjMtMTcuNi0xNS4xLTE2LjJ6TTE0Ny4xIDIxNS41YTE5LjggMTkuOCAwIDEgMSAwLTM5LjYgMTkuOCAxOS44IDAgMSAxIDAgMzkuNnptMjgyLjQgMGExOS44IDE5LjggMCAxIDEgMC0zOS42IDE5LjggMTkuOCAwIDEgMSAwIDM5LjZ6bS0yNDQtNTUuNGM3LjktMTQuOSAyNi4zLTIwLjUgNDEuMS0xMi42czIwLjQgMjYuNCAxMi42IDQxLjJjLTMuNyA3LTE1LjUtNC40LTIyLjQtMS45LTcuNyAyLjctMTAuOCAxOC43LTE4LjYgMTQuNi0xNC44LTcuOS0yMC40LTI2LjQtMTIuNi00MS4yem0xNjQuNC0xMi42YzE0LjgtNy45IDMzLjItMi4zIDQxLjEgMTIuNnMyLjIgMzMuMy0xMi42IDQxLjJjLTcuOCA0LjItMTAuOS0xMS44LTE4LjctMTQuNi02LjktMi40LTE4LjcgOS0yMi40IDEuOS03LjktMTQuOS0yLjItMzMuMyAxMi42LTQxLjJ6Il19LEVmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqeGwiLGljb246WzQ0OCw1MTIsW10sImU2N2IiLCJNNDEyLjIgMzJMMzUuOCAzMkMxNiAzMiAwIDQ4IDAgNjcuOEwwIDQ0NC4yQzAgNDY0IDE2IDQ4MCAzNS44IDQ4MGwzNzYuNCAwYzE5LjggMCAzNS44LTE2IDM1LjgtMzUuOGwwLTM3Ni40QzQ0OCA0OCA0MzIgMzIgNDEyLjIgMzJ6TTM3OC42IDMzMy43YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6bTAtMTEzLjljMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHptMC0xMTMuOWMwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAweiJdfSxQZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWxpbmtlZGluIixpY29uOls0NDgsNTEyLFtdLCJlN2QwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTUgMTcwLjJsNjYuNSAwIDAgMjEzLjgtNjYuNSAwIDAtMjEzLjh6bTcxLjctNjcuN2EzOC41IDM4LjUgMCAxIDEgLTc3IDAgMzguNSAzOC41IDAgMSAxIDc3IDB6TTMxNy45IDQxNmwwLTEwNGMwLTI0LjgtLjUtNTYuNy0zNC41LTU2LjctMzQuNiAwLTM5LjkgMjctMzkuOSA1NC45bDAgMTA1LjgtNjYuNCAwIDAtMjEzLjggNjMuNyAwIDAgMjkuMiAuOSAwYzguOS0xNi44IDMwLjYtMzQuNSA2Mi45LTM0LjUgNjcuMiAwIDc5LjcgNDQuMyA3OS43IDEwMS45bDAgMTE3LjItNjYuNCAweiJdfSxJZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3NzIixpY29uOls0NDgsNTEyLFtdLCJlNmEyIiwiTTM3Ni4zIDMyTDAgMzIgMCA0MDguM2MwIDE5IDcuNiAzNy4yIDIxIDUwLjdzMzEuNyAyMSA1MC43IDIxbDMwNC42IDBjMTkgMCAzNy4yLTcuNiA1MC43LTIxczIxLTMxLjcgMjEtNTAuN2wwLTMwNC42YzAtMTktNy42LTM3LjItMjEtNTAuN3MtMzEuNy0yMS01MC43LTIxek0zMzIuNCA0MzEuNGMtNy43LTguNS0xMS43LTIwLjctMTItMzYuNmwzMS4zIDBjLjIgMTQuMSA1LjEgMjEuMSAxNC44IDIxLjFjNC45IDAgOC40LTEuNiAxMC41LTQuN2MyLTMuMSAzLTggMy0xNC44YzAtNS40LTEuMy05LjktNC0xMy40Yy0zLjUtNC4yLTguMS03LjUtMTMuMi05LjVMMzUxLjIgMzY4Yy0xMC4zLTQuOS0xNy44LTEwLjgtMjIuNS0xNy42Yy00LjUtNi44LTYuNy0xNi4zLTYuNy0yOC40YzAtMTMuNiA0LTI0LjYgMTEuOC0zMy4xYzguMS04LjUgMTkuMS0xMi43IDMzLjItMTIuN2MxMy42IDAgMjQuMSA0LjIgMzEuNSAxMi41YzcuNSA4LjQgMTEuNSAyMC4zIDExLjggMzUuOWwtMzAuMSAwYy4yLTUuMS0uOS0xMC4yLTMtMTQuOGMtMS43LTMuNC01LTUuMS0xMC01LjFjLTguOCAwLTEzLjIgNS4yLTEzLjIgMTUuN2MwIDUuMyAxLjEgOS40IDMuMiAxMi42YzMuMSAzLjUgNyA2LjIgMTEuNCA3LjhsMTEuMSA0LjljMTEuNSA1LjMgMTkuNyAxMS43IDI0LjggMTkuNGM1LjEgNy43IDcuNiAxOCA3LjYgMzFjMCAxNS41LTQgMjcuNC0xMi4zIDM1LjdjLTguMiA4LjMtMTkuNSAxMi41LTM0LjEgMTIuNXMtMjUuNi00LjItMzMuNC0xMi43em0tMTAxIDBjLTcuNy04LjUtMTEuNy0yMC43LTEyLTM2LjZsMzEuMyAwYy4yIDE0LjEgNS4xIDIxLjEgMTQuOCAyMS4xYzQuOSAwIDguNC0xLjYgMTAuNC00LjdjMi0zLjEgMy04IDMtMTQuOGMwLTUuNC0xLjMtOS45LTMuOS0xMy40Yy0zLjUtNC4yLTguMS03LjUtMTMuMi05LjVMMjUwLjIgMzY4Yy0xMC4zLTQuOS0xNy44LTEwLjgtMjIuNS0xNy42Yy00LjUtNi44LTYuNy0xNi4zLTYuNy0yOC40YzAtMTMuNiA0LTI0LjYgMTEuOC0zMy4xYzguMS04LjUgMTkuMS0xMi43IDMzLjItMTIuN2MxMy42IDAgMjQuMSA0LjIgMzEuNCAxMi41YzcuNiA4LjQgMTEuNSAyMC4zIDExLjkgMzUuOWwtMzAuMSAwYy4yLTUuMS0uOS0xMC4yLTMtMTQuOGMtMS43LTMuNC01LTUuMS0xMC01LjFjLTguOCAwLTEzLjIgNS4yLTEzLjIgMTUuN2MwIDUuMyAxLjEgOS40IDMuMiAxMi42YzMuMSAzLjUgNyA2LjIgMTEuNCA3LjhsMTEuMSA0LjljMTEuNSA1LjMgMTkuNyAxMS43IDI0LjggMTkuNGM1LjEgNy43IDcuNiAxOCA3LjYgMzFjMCAxNS41LTQuMSAyNy40LTEyLjMgMzUuN3MtMTkuNSAxMi41LTM0LjEgMTIuNXMtMjUuNi00LjItMzMuNC0xMi43em0tMTA1LjYgMS4xYy04LjQtNy43LTEyLjUtMTkuMi0xMi41LTM0LjVsMC03NS40YzAtMTUuMiA0LjQtMjYuNyAxMy4yLTM0LjZjOC45LTcuOCAyMC43LTExLjggMzUuMi0xMS44YzE0LjEgMCAyNS4yIDQgMzMuNCAxMmM4LjMgOCAxMi41IDIwIDEyLjUgMzUuOWwwIDYtMzMuMSAwIDAtNS44YzAtNi4xLTEuMy0xMC43LTQtMTMuNmMtMS4xLTEuNS0yLjYtMi43LTQuMy0zLjVzLTMuNS0xLjItNS40LTEuMWMtNS40IDAtOS4yIDEuOC0xMS40IDUuNmMtMi4zIDUuMi0zLjMgMTAuOC0zIDE2LjRsMCA2NS41YzAgMTMuNyA0LjggMjAuNiAxNC40IDIwLjhjNC41IDAgNy45LTEuNiAxMC4yLTQuOGMyLjUtNC4xIDMuNy04LjggMy41LTEzLjZsMC00LjkgMzMuMSAwIDAgNS4xYzAgMTAuNi0yLjEgMTkuNS02LjIgMjYuNmMtNCA2LjktOS45IDEyLjUtMTcuMSAxNmMtNy43IDMuNy0xNi4xIDUuNS0yNC42IDUuM2MtMTQuMiAwLTI1LjUtMy45LTMzLjgtMTEuNnoiXX0sTmZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imhhc2hub2RlIixpY29uOls1MTIsNTEyLFtdLCJlNDk5IiwiTTM1LjcgMTcxLjFjLTQ2LjkgNDYtNDYuOSAxMjIuOSAwIDE2OS44TDE3MS42IDQ3Ni44YzQ2IDQ2LjkgMTIyLjkgNDYuOSAxNjkuOCAwTDQ3Ny4zIDM0MC45YzQ2LjktNDYuOSA0Ni45LTEyMy44IDAtMTY5LjhMMzQxLjQgMzUuMmMtNDYuOS00Ni45LTEyMy44LTQ2LjktMTY5LjggMEwzNS43IDE3MS4xek0xOTYgMTk2LjVhODQuNSA4NC41IDAgMSAxIDEyMCAxMTkgODQuNSA4NC41IDAgMSAxIC0xMjAtMTE5eiJdfSxGZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkZGl0LWFsaWVuIixpY29uOls1MTIsNTEyLFtdLCJmMjgxIiwiTTM3MyAxMzguNmMtMjUuMiAwLTQ2LjMtMTcuNS01MS45LTQxLTMwLjYgNC4zLTU0LjIgMzAuNy01NC4yIDYyLjRsMCAuMmM0Ny40IDEuOCA5MC42IDE1LjEgMTI0LjkgMzYuMyAxMi42LTkuNyAyOC40LTE1LjUgNDUuNS0xNS41IDQxLjMgMCA3NC43IDMzLjQgNzQuNyA3NC43IDAgMjkuOC0xNy40IDU1LjUtNDIuNyA2Ny41LTIuNCA4Ni44LTk3IDE1Ni42LTIxMy4yIDE1Ni42UzQ1LjUgNDEwLjEgNDMgMzIzLjRjLTI1LjQtMTEuOS00My0zNy43LTQzLTY3LjcgMC00MS4zIDMzLjQtNzQuNyA3NC43LTc0LjcgMTcuMiAwIDMzIDUuOCA0NS43IDE1LjYgMzQtMjEuMSA3Ni44LTM0LjQgMTIzLjctMzYuNGwwLS4zYzAtNDQuMyAzMy43LTgwLjkgNzYuOC04NS41IDQuOS0yNC4yIDI2LjMtNDIuNCA1Mi4xLTQyLjQgMjkuNCAwIDUzLjMgMjMuOSA1My4zIDUzLjNzLTIzLjkgNTMuMy01My4zIDUzLjN6TTE1Ny41IDI1NS4zYy0yMC45IDAtMzguOSAyMC44LTQwLjIgNDcuOXMxNy4xIDM4LjEgMzggMzguMSAzNi42LTkuOCAzNy44LTM2LjktMTQuNy00OS4xLTM1LjctNDkuMWwuMSAwek0zOTUgMzAzLjFjLTEuMi0yNy4xLTE5LjItNDcuOS00MC4yLTQ3LjlzLTM2LjkgMjItMzUuNyA0OS4xIDE2LjkgMzYuOSAzNy44IDM2LjkgMzkuMy0xMSAzOC0zOC4xbC4xIDB6bS02MC4xIDcwLjhjMS41LTMuNi0xLTcuNy00LjktOC4xLTIzLTIuMy00Ny45LTMuNi03My44LTMuNnMtNTAuOCAxLjMtNzMuOCAzLjZjLTMuOSAuNC02LjQgNC41LTQuOSA4LjEgMTIuOSAzMC44IDQzLjMgNTIuNCA3OC43IDUyLjRzNjUuOC0yMS42IDc4LjctNTIuNHoiXX0sUmY9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGlrdG9rIixpY29uOls0NDgsNTEyLFtdLCJlMDdiIiwiTTQ0OC41IDIwOS45Yy00NCAuMS04Ny0xMy42LTEyMi44LTM5LjJsMCAxNzguN2MwIDMzLjEtMTAuMSA2NS40LTI5IDkyLjZzLTQ1LjYgNDgtNzYuNiA1OS42LTY0LjggMTMuNS05Ni45IDUuMy02MC45LTI1LjktODIuNy01MC44LTM1LjMtNTYtMzktODguOSAyLjktNjYuMSAxOC42LTk1LjIgNDAtNTIuNyA2OS42LTY3LjcgNjIuOS0yMC41IDk1LjctMTZsMCA4OS45Yy0xNS00LjctMzEuMS00LjYtNDYgLjRzLTI3LjkgMTQuNi0zNyAyNy4zLTE0IDI4LjEtMTMuOSA0My45IDUuMiAzMSAxNC41IDQzLjcgMjIuNCAyMi4xIDM3LjQgMjYuOSAzMS4xIDQuOCA0Ni0uMSAyOC0xNC40IDM3LjItMjcuMSAxNC4yLTI4LjEgMTQuMi00My44bDAtMzQ5LjQgODggMGMtLjEgNy40IC42IDE0LjkgMS45IDIyLjIgMy4xIDE2LjMgOS40IDMxLjkgMTguNyA0NS43czIxLjMgMjUuNiAzNS4yIDM0LjZjMTkuOSAxMy4xIDQzLjIgMjAuMSA2NyAyMC4xbDAgODcuNHoiXX0sT2ZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndvcmRwcmVzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjE5YSIsIk02MS43IDE2OS40bDEwMS41IDI3OGMtNzEtMzQuNC0xMTkuOS0xMDcuMi0xMTkuOS0xOTEuNCAwLTMwLjkgNi42LTYwLjEgMTguNC04Ni42em0zMzcuOSA3NS45YzAtMjYuMy05LjQtNDQuNS0xNy41LTU4LjctMTAuOC0xNy41LTIwLjktMzIuNC0yMC45LTQ5LjkgMC0xOS42IDE0LjgtMzcuOCAzNS43LTM3LjggLjkgMCAxLjggLjEgMi44IC4yLTM3LjktMzQuNy04OC4zLTU1LjktMTQzLjctNTUuOS03NC4zIDAtMTM5LjcgMzguMS0xNzcuOCA5NS45IDUgLjIgOS43IC4zIDEzLjcgLjMgMjIuMiAwIDU2LjctMi43IDU2LjctMi43IDExLjUtLjcgMTIuOCAxNi4yIDEuNCAxNy41IDAgMC0xMS41IDEuMy0yNC4zIDJsNzcuNSAyMzAuNCA0Ni42LTEzOS42LTMzLjEtOTAuOGMtMTEuNS0uNy0yMi4zLTItMjIuMy0yLTExLjUtLjctMTAuMS0xOC4yIDEuMy0xNy41IDAgMCAzNS4xIDIuNyA1NiAyLjcgMjIuMiAwIDU2LjctMi43IDU2LjctMi43IDExLjUtLjcgMTIuOCAxNi4yIDEuNCAxNy41IDAgMC0xMS41IDEuMy0yNC4zIDJsNzYuOSAyMjguNyAyMS4yLTcwLjljOS0yOS40IDE2LTUwLjUgMTYtNjguN3pNMjU5LjcgMjc0LjZMMTk1LjkgNDYwLjFjMTkuMSA1LjYgMzkuMiA4LjcgNjAuMSA4LjcgMjQuOCAwIDQ4LjUtNC4zIDcwLjYtMTIuMS0uNi0uOS0xLjEtMS45LTEuNS0yLjlMMjU5LjcgMjc0LjZ6bTE4My0xMjAuN2MuOSA2LjggMS40IDE0IDEuNCAyMS45IDAgMjEuNi00IDQ1LjgtMTYuMiA3Ni4ybC02NSAxODcuOWM2My4zLTM2LjkgMTA1LjgtMTA1LjQgMTA1LjgtMTgzLjkgMC0zNy05LjQtNzEuOC0yNi0xMDIuMXpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptNDg0LjYgMGEyMzYuNiAyMzYuNiAwIDEgMCAtNDczLjIgMCAyMzYuNiAyMzYuNiAwIDEgMCA0NzMuMiAweiJdfSxSZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaWRlYWwiLGljb246WzUxMiw1MTIsW10sImUwMTMiLCJNOTMuOCAxNjUuNWE0OS4xIDQ5LjEgMCAxIDAgMCA5OC4xIDQ5LjEgNDkuMSAwIDEgMCAwLTk4LjF6TTU0LjMgNDI1LjhsNzguOSAwIDAtMTQwLjUtNzguOSAwIDAgMTQwLjV6TTIwNS44IDIxNC4yYzAtMjAtMTAtMjIuNS0xOC43LTIyLjVsLTE0IDAgMCA0NS44IDE0IDBjOS43IDAgMTguNy0yLjggMTguNy0yMy4zem0yMDEuNyA0NmwwLTkxLjMgMjIuOCAwIDAgNjguNiAzMy43IDBDNDU0LjYgMTEzLjEgMzU2LjggODYuMiAyNjcuOCA4Ni4ybC05NC44IDAgMCA4Mi44IDE0IDBjMjUuNiAwIDQxLjUgMTcuNCA0MS41IDQ1LjMgMCAyOC44LTE1LjUgNDYtNDEuNSA0NmwtMTQgMCAwIDE2NS42IDk0LjggMGMxNDQuNiAwIDE5NC45LTY3LjIgMTk2LjctMTY1LjZsLTU3LjEgMHptLTEwOS44IDBsLTU2LjIgMCAwLTkxLjIgNTQuNCAwIDAgMjIuNy0zMS43IDAgMCAxMC42IDMwIDAgMCAyMi43LTMwIDAgMCAxMi41IDMzLjUgMCAwIDIyLjd6bTc0LjcgMGwtNS4yLTE3LjctMjkuNyAwLTUuMiAxNy43LTIzLjcgMCAyNy41LTkxLjMgMzIuMyAwIDI3LjUgOTEuMy0yMy43IDB6TTI2Ny44IDMyTC4xIDMyIC4xIDQ4MCAyNjcuOCA0ODBjMTYxLjggMCAyNTEtNzkuNyAyNTEtMjI0LjUgMC04My41LTMyLjYtMjIzLjUtMjUxLTIyMy41em0wIDQyNi45bC0yNDYuNiAwIDAtNDA1LjkgMjQ2LjYgMGMxNDIuMSAwIDIyOS45IDY0LjYgMjI5LjkgMjAyLjQgMCAxMzQuMS04MSAyMDMuNC0yMjkuOSAyMDMuNHptODMuOS0yNjQuOWwtNy41IDI1LjggMTYuNCAwLTcuNS0yNS44LTEuNCAweiJdfSxCZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGllZC1waXBlci1wcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjFhNyIsIk0yMDUuMyAxNzQuNmMwIDIxLjEtMTQuMiAzOC4xLTMxLjcgMzguMS03LjEgMC0xMi44LTEuMi0xNy4yLTMuN2wwLTY4YzQuNC0yLjcgMTAuMS00LjIgMTcuMi00LjIgMTcuNSAwIDMxLjcgMTYuOSAzMS43IDM3Ljh6bTUyLjYgNjdjLTcuMSAwLTEyLjggMS41LTE3LjIgNC4ybDAgNjhjNC40IDIuNSAxMC4xIDMuNyAxNy4yIDMuNyAxNy40IDAgMzEuNy0xNi45IDMxLjctMzcuOCAwLTIxLjEtMTQuMy0zOC4xLTMxLjctMzguMXpNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTg1IDI1NS4xYzQxIDAgNzQuMi0zNS42IDc0LjItNzkuNlMyMjYgOTUuOSAxODUgOTUuOWMtMTIgMC0yNC4xIDMuMi0zNC42IDguOGwtNDUuNyAwIDAgMjA2LjMgNTEuOC0xMC4xIDAtNTAuNmM4LjYgMy4xIDE4LjEgNC44IDI4LjUgNC44em0xNTguNCAyNS4zYzAtNDQtMzMuMi03OS42LTczLjktNzkuNi0zLjIgMC02LjQgLjItOS42IC43LTMuNyAxMi41LTEwLjEgMjMuOC0xOS4yIDMzLjQtMTMuOCAxNS0zMi4yIDIzLjgtNTEuOCAyNC44bDAgMTU2LjMgNTEuOC0xMC4xIDAtNTAuNmM4LjYgMy4yIDE4LjIgNC43IDI4LjcgNC43IDQwLjggMCA3NC0zNS42IDc0LTc5LjZ6Il19LEhmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1c3N1bm5haCIsaWNvbjpbNTEyLDUxMixbXSwiZjQwNyIsIk00OTYuOSAyNjguMWMwIDYzLjktMjUuNCAxMjUuMi03MC42IDE3MC4zUzMxOS45IDUwOSAyNTYgNTA5IDEzMC44IDQ4My41IDg1LjcgNDM4LjQgMTUuMSAzMzEuOSAxNS4xIDI2OGMwLTYzLjkgMjUuNC0xMjUuMiA3MC42LTE3MC40UzE5Mi4yIDI3LjEgMjU2LjEgMjcuMSAzODEuMyA1Mi40IDQyNi41IDk3LjYgNDk3IDIwNC4xIDQ5NyAyNjhsLS4xIC4xek0zOS41IDI2OGMtLjYgMjguOCA0LjUgNTcuNSAxNS4xIDg0LjNzMjYuNCA1MS4yIDQ2LjYgNzEuOCA0NC4yIDM3IDcwLjggNDguMSA1NS4xIDE2LjkgODMuOSAxNi45IDU3LjQtNS44IDgzLjktMTYuOSA1MC42LTI3LjUgNzAuOC00OC4xIDM2LTQ1IDQ2LjYtNzEuOCAxNS43LTU1LjUgMTUuMS04NC4zYy42LTI4LjgtNC41LTU3LjUtMTUuMS04NC4zcy0yNi40LTUxLjItNDYuNi03MS44LTQ0LjItMzctNzAuOC00OC4xLTU1LjEtMTYuOS04My45LTE2LjktNTcuNCA1LjgtODMuOSAxNi45LTUwLjYgMjcuNS03MC44IDQ4LjEtMzYgNDUtNDYuNiA3MS44LTE1LjcgNTUuNS0xNS4xIDg0LjN6bTM4NS45IDYzLjNjLTEyLjcgMC0yMS42LTEuOS0yNi43LTUuOS01LjUtNC4zLTguMi0xMi4zLTguMi0yMy44bDAtOTYuNWMwLTYuNS01LjItMjAuMi0xNS43LTQxLjIgNyAwIDE3LTkuMSAzMC0yNy4ybDAgMTQ3LjhjMCAxMSAyLjQgMTkuNCA3IDI1LjMgMy43IDQuNyAxMC4xIDguOSAxOSAxMi42IDEuMiAuNCAyLjYgLjkgNC4xIDEuNCAyLjkgLjkgNi4zIDIuMSAxMC4zIDMuNS0xLjggMi43LTguMyA0LTE5LjkgNGwuMSAwem0tMjE5IDBjLTEuMyAyLjQtMy42IDUuNS02LjggOS40bC0xOC41IDIyLjVjLTEtNi4xLTQtMTMtOS4zLTIwLjZzLTkuNy0xMS40LTEzLjQtMTEuNGwtODkuOCAwYzMuMy01LjMgNC45LTguOCA0LjktMTAuOHMtLjgtNS4zLTIuNC05LjdjLTEuNS00LjQtMi40LTguNS0yLjQtMTIuNCAwLTcuNCAyLjEtMTMuOSA2LjMtMTkuM2wyMC0yNS42LTcuMS0xNy43IDE2LjEtMTkuOCA2LjcgMTYuOCA4LTEwLjNjLTEuOCA2LjQtMi42IDEyLjMtMi42IDE3LjcgMCA0LjIgMi44IDEzLjMgOC4zIDI3LjNsMTYuMiA0MC43IDE3LjcgMGMyLjggLjQgNy43IDUgMTQuNiAxMy45IDEuOCAyLjQgNC4zIDUuOCA3LjcgMTAuMiAxLjQgMS45IDIuOSAzLjkgNC42IDYuMSAxLjMtMi4zIDItNC42IDItNy4xIDAtMi0xLjMtNi42LTQtMTMuNEwxNzggMzA0LjFjLTQtMTAuNi02LjEtMTcuNy02LjEtMjEuMyAwLTYuMyAxLjktMTIuMyA1LjgtMTcuOSAuNS0uNiAxLTEuMyAxLjUtMS45IDQuNC01LjYgOC44LTExLjEgMTMuMy0xNi41LTEuMSA0LjYtMS43IDguNy0xLjcgMTIgMCAzLjcgMS43IDkuOSA1LjEgMTguOGw3LjkgMjAuNGMxLjkgNC43IDMgOC4yIDMuNyAxMC4zbDI1LjkgMC0uOS0yLjZjLTEuNC0zLjktNC03LTcuNy05LjNsMTUuNi0yMC4xIDEyLjMgMzIgMTMuNCAwLTYuMS0xNS44Yy0xLjUtMy45LTQtNy03LjctOS4zbDE1LjctMjAuMSAxNy4zIDQ1LjIgMTMuNCAwLTExLjQtMjkuNGMtMS41LTMuOS00LTctNy43LTkuM2wxNS42LTIwIDIyLjQgNTguNyAyNi4yIDBjMS41IDAgMy0xLjEgNC41LTMuMXMyLjItNC4xIDIuMi02LjNsMC05My41YzAtNi41LTQuNS0yMC4zLTEzLjctNDEuMiA1LjQgMCAxNC4xLTkuMSAyNi4yLTI3LjJsMCAxNjMuNWMwIDcuMiAuNiAxMiAxLjcgMTQuNiAxLjYgMy40IDUuMyA2LjIgMTEuMSA4LjItMy45IDUuNi04LjcgOC41LTE0LjUgOC41bC0xNTQuOCAwLS4xLS4yem0tOTgtNDRjLTIuNy02LjctNC0xMS43LTQtMTUtLjYgMS4yLTIuNCAzLjctNS40IDcuNi0xLjQgMS45LTIuMiAzLjctMi4yIDUuMyAwIDIuNiAuOCA1LjcgMi4yIDkuM2w1LjYgMTMuOWM1IDAgOSAwIDExLjktLjFsLTguMi0yMC45IC4xLS4xem0xMy41LTcyLjRjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHptLTI3LjYgMGMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAwem04NyAyNy41Yy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6Il19LHFmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3J0LWF3ZXNvbWUtYWx0IixpY29uOls1MTIsNTEyLFtdLCJmM2EzIiwiTTIwOCAyMzcuNGwtMjIuMiAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN2wyMi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtNTEuN2MwLTIuMS0xLjYtMy43LTMuNy0zLjd6bTExOC4yIDBsLTIyLjIgMGMtMi4xIDAtMy43IDEuNi0zLjcgMy43bDAgNTEuN2MwIDIuMSAxLjYgMy43IDMuNyAzLjdsMjIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTUxLjdjLS4xLTIuMS0xLjctMy43LTMuNy0zLjd6bTEzMi0xMjUuMWMtMi4zLTMuMi00LjYtNi40LTcuMS05LjUtOS44LTEyLjUtMjAuOC0yNC0zMi44LTM0LjQtNC41LTMuOS05LjEtNy42LTEzLjktMTEuMi0xLjYtMS4yLTMuMi0yLjMtNC44LTMuNS0yNy42LTE5LjYtNTkuMy0zMy43LTkzLjYtNDAuNy0xNi4yLTMuMy0zMi45LTUtNTAtNXMtMzMuOSAxLjctNTAgNWMtMzQuMyA3LjEtNjYgMjEuMi05My4zIDQwLjgtMS42IDEuMS0zLjIgMi4zLTQuOCAzLjUtNC44IDMuNi05LjQgNy4zLTEzLjkgMTEuMi0zIDIuNi01LjkgNS4zLTguOCA4cy01LjcgNS41LTguNCA4LjRjLTUuNSA1LjctMTAuNyAxMS44LTE1LjYgMTgtMi40IDMuMS00LjggNi4zLTcuMSA5LjUtMjguOSA0MC42LTQ1LjggOTAuMS00NS44IDE0My42IDAgMiAuMSA0IC4xIDYgLjEgLjcgLjEgMS4zIC4xIDIgLjEgMS4zIC4xIDIuNyAuMiA0IDAgLjggLjEgMS41IC4xIDIuMyAwIDEuMyAuMSAyLjUgLjIgMy43IC4xIC44IC4xIDEuNiAuMiAyLjQgLjEgMS4xIC4yIDIuMyAuMyAzLjUgMCAuOCAuMSAxLjYgLjIgMi40IC4xIDEuMiAuMyAyLjQgLjQgMy42IC4xIC44IC4yIDEuNSAuMyAyLjMgLjEgMS4zIC4zIDIuNiAuNSAzLjkgLjEgLjYgLjIgMS4zIC4zIDEuOWwuOSA1LjdjLjEgLjYgLjIgMS4xIC4zIDEuNyAuMyAxLjMgLjUgMi43IC44IDQgLjIgLjggLjMgMS42IC41IDIuNCAuMiAxIC41IDIuMSAuNyAzLjIgLjIgLjkgLjQgMS43IC42IDIuNiAuMiAxIC40IDIgLjcgMyAuMiAuOSAuNSAxLjggLjcgMi43IC4zIDEgLjUgMS45IC44IDIuOSAuMyAuOSAuNSAxLjggLjggMi43IC4yIC45IC41IDEuOSAuOCAyLjhzLjUgMS44IC44IDIuN2MuMyAxIC42IDEuOSAuOSAyLjggLjYgMS42IDEuMSAzLjMgMS43IDQuOSAuNCAxIC43IDEuOSAxIDIuOCAuMyAxIC43IDIgMS4xIDMgLjMgLjggLjYgMS41IC45IDIuM2wxLjIgM2MuMyAuNyAuNiAxLjUgLjkgMi4yIC40IDEgLjkgMiAxLjMgM2wuOSAyLjFjLjUgMSAuOSAyIDEuNCAzIC4zIC43IC42IDEuMyAuOSAyIC41IDEgMSAyLjEgMS41IDMuMSAuMiAuNiAuNSAxLjEgLjggMS43IC42IDEuMSAxLjEgMi4yIDEuNyAzLjMgLjEgLjIgLjIgLjMgLjMgLjUgMi4yIDQuMSA0LjQgOC4yIDYuOCAxMi4yIC4yIC40IC41IC44IC43IDEuMiAuNyAxLjEgMS4zIDIuMiAyIDMuMyAuMyAuNSAuNiAuOSAuOSAxLjQgLjYgMS4xIDEuMyAyLjEgMiAzLjIgLjMgLjUgLjYgLjkgLjkgMS40IC43IDEuMSAxLjQgMi4xIDIuMSAzLjIgLjIgLjQgLjUgLjggLjggMS4yIC43IDEuMSAxLjUgMi4yIDIuMyAzLjMgLjIgLjIgLjMgLjUgLjUgLjcgMzcuNSA1MS43IDk0LjQgODguNSAxNjAgOTkuNCAuOSAuMSAxLjcgLjMgMi42IC40IDEgLjIgMi4xIC40IDMuMSAuNXMxLjkgLjMgMi44IC40YzEgLjIgMiAuMyAzIC40IC45IC4xIDEuOSAuMiAyLjkgLjNzMS45IC4yIDIuOSAuMyAyLjEgLjIgMy4xIC4zYy45IC4xIDEuOCAuMSAyLjcgLjIgMS4xIC4xIDIuMyAuMSAzLjQgLjIgLjggMCAxLjcgLjEgMi41IC4xIDEuMyAwIDIuNiAuMSAzLjkgLjEgLjcgLjEgMS40IC4xIDIuMSAuMSAyIC4xIDQgLjEgNiAuMXM0LS4xIDYtLjFjLjcgMCAxLjQtLjEgMi4xLS4xIDEuMyAwIDIuNiAwIDMuOS0uMSAuOCAwIDEuNy0uMSAyLjUtLjEgMS4xLS4xIDIuMy0uMSAzLjQtLjIgLjkgMCAxLjgtLjEgMi43LS4yIDEtLjEgMi4xLS4yIDMuMS0uM3MxLjktLjIgMi45LS4zYy45LS4xIDEuOS0uMiAyLjktLjNzMi0uMyAzLS40IDEuOS0uMyAyLjgtLjRjMS0uMiAyLjEtLjMgMy4xLS41IC45LS4xIDEuNy0uMyAyLjYtLjQgNjUuNi0xMSAxMjIuNS00Ny43IDE2MC4xLTEwMi40IC4yLS4yIC4zLS41IC41LS43IC44LTEuMSAxLjUtMi4yIDIuMy0zLjMgLjItLjQgLjUtLjggLjgtMS4yIC43LTEuMSAxLjQtMi4xIDIuMS0zLjIgLjMtLjUgLjYtLjkgLjktMS40IC42LTEuMSAxLjMtMi4xIDItMy4yIC4zLS41IC42LS45IC45LTEuNCAuNy0xLjEgMS4zLTIuMiAyLTMuMyAuMi0uNCAuNS0uOCAuNy0xLjIgMi40LTQgNC42LTguMSA2LjgtMTIuMiAuMS0uMiAuMi0uMyAuMy0uNSAuNi0xLjEgMS4xLTIuMiAxLjctMy4zIC4yLS42IC41LTEuMSAuOC0xLjcgLjUtMSAxLTIuMSAxLjUtMy4xIC4zLS43IC42LTEuMyAuOS0yIC41LTEgMS0yIDEuNC0zbC45LTIuMWMuNS0xIC45LTIgMS4zLTMgLjMtLjcgLjYtMS41IC45LTIuMmwxLjItM2MuMy0uOCAuNi0xLjUgLjktMi4zIC40LTEgLjctMiAxLjEtM3MuNy0xLjkgMS0yLjhjLjYtMS42IDEuMi0zLjMgMS43LTQuOSAuMy0xIC42LTEuOSAuOS0yLjhzLjUtMS44IC44LTIuN2MuMi0uOSAuNS0xLjkgLjgtMi44cy42LTEuOCAuOC0yLjdjLjMtMSAuNS0xLjkgLjgtMi45IC4yLS45IC41LTEuOCAuNy0yLjcgLjItMSAuNS0yIC43LTMgLjItLjkgLjQtMS43IC42LTIuNiAuMi0xIC41LTIuMSAuNy0zLjIgLjItLjggLjMtMS42IC41LTIuNCAuMy0xLjMgLjYtMi43IC44LTQgLjEtLjYgLjItMS4xIC4zLTEuN2wuOS01LjdjLjEtLjYgLjItMS4zIC4zLTEuOSAuMS0xLjMgLjMtMi42IC41LTMuOSAuMS0uOCAuMi0xLjUgLjMtMi4zIC4xLTEuMiAuMy0yLjQgLjQtMy42IDAtLjggLjEtMS42IC4yLTIuNCAuMS0xLjEgLjItMi4zIC4zLTMuNSAuMS0uOCAuMS0xLjYgLjItMi40IC4xIDEuNyAuMSAuNSAuMi0uNyAwLS44IC4xLTEuNSAuMS0yLjMgLjEtMS4zIC4yLTIuNyAuMi00IC4xLS43IC4xLTEuMyAuMS0yIC4xLTIgLjEtNCAuMS02IDAtNTMuNS0xNi45LTEwMy00NS44LTE0My43ek00NDggMzcxLjVjLTkuNCAxNS41LTIwLjYgMjkuOS0zMy42IDQyLjktMjAuNiAyMC42LTQ0LjUgMzYuNy03MS4yIDQ4LTEzLjkgNS44LTI4LjIgMTAuMy00Mi45IDEzLjJsMC03NS44YzAtNTguNi04OC42LTU4LjYtODguNiAwbDAgNzUuOGMtMTQuNy0yLjktMjktNy4zLTQyLjktMTMuMi0yNi43LTExLjMtNTAuNi0yNy40LTcxLjItNDgtMTMtMTMtMjQuMi0yNy40LTMzLjYtNDIuOWwwLTcxLjNjMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjEgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS44IDI5LjYgMCAwLTE0NGMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTQuOCA2LjUtMy43IDkuNS0zLjdsMC05MC4yYy00LjQtMi03LjQtNi43LTcuNC0xMS41IDAtMTYuOCAyNS40LTE2LjggMjUuNCAwIDAgNC44LTMgOS40LTcuNCAxMS41bDAgMy45YzYuMy0xLjQgMTIuNy0yLjMgMTkuMi0yLjMgOS40IDAgMTguNCAzLjUgMjYuMyAzLjUgNy4yIDAgMTUuMi0zLjUgMTkuNC0zLjUgMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgNDguNGMwIDUuNi0xOC43IDYuNS0yMi40IDYuNS04LjYgMC0xNi42LTMuNS0yNS40LTMuNS03IDAtMTQuMSAxLjItMjAuOCAyLjhsMCAzMC43YzMgMCA5LjUtMS4xIDkuNSAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjIgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAyNS45IDI5LjUgMCAwLTI1LjljMC0yLjEgMS42LTMuNyAzLjctMy43bDIyLjEgMGMyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCAxNDQgMjkuNSAwIDAtMjUuOGMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDcxLjN6Il19LFZmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidXJvbW9iZWxleHBlcnRlIixpY29uOls0NDgsNTEyLFtdLCJmMzdmIiwiTTAgMzJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCAxNTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0xNjAgMzJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCAxNTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0zMjAgMzJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTQ0MCAxNTJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyek0wIDE5MmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDMxMmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDMxMmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6bTQwLTEyMGwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNNDQwIDMxMmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTAgMzUybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgNDcybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgNDcybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAweiJdfSxqZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmlsaWJpbGkiLGljb246WzUxMiw1MTIsW10sImUzZDkiLCJNNDg4LjYgMTA0LjFjMTYuNyAxOC4xIDI0LjQgMzkuNyAyMy4zIDY1LjdsMCAyMDIuNGMtLjQgMjYuNC05LjIgNDguMS0yNi41IDY1LjEtMTcuMiAxNy0zOS4xIDI1LjktNjUuNSAyNi43TDkyIDQ2NGMtMjYuNC0uOC00OC4yLTkuOC02NS4zLTI3LjItMTcuMS0xNy40LTI2LTQwLjMtMjYuNy02OC42TDAgMTY5LjhjLjgtMjYgOS43LTQ3LjYgMjYuNy02NS43IDE3LjEtMTYuMyAzOC44LTI1LjMgNjUuMy0yNi4xbDI5LjQgMC0yNS40LTI1LjhjLTUuNy01LjctOC42LTEzLTguNi0yMS44czIuOS0xNi4xIDguNi0yMS44IDEzLTguNiAyMS45LTguNiAxNi4xIDIuOSAyMS45IDguNmw3My4zIDY5LjQgODggMCA3NC41LTY5LjRDMzgxLjcgMi45IDM4OS4yIDAgMzk4IDBzMTYuMSAyLjkgMjEuOSA4LjZjNS43IDUuNyA4LjYgMTMgOC42IDIxLjhzLTIuOSAxNi4xLTguNiAyMS44TDM5NC42IDc4IDQyMy45IDc4YzI2LjQgLjggNDggOS44IDY0LjcgMjYuMXptLTM4LjggNjkuN2MtLjQtOS42LTMuNy0xNy40LTEwLjctMjMuNS01LjItNi4xLTE0LTkuNC0yMi43LTkuOGwtMzIwLjQgMGMtOS42IC40LTE3LjQgMy43LTIzLjYgOS44LTYuMSA2LjEtOS40IDEzLjktOS44IDIzLjVsMCAxOTQuNGMwIDkuMiAzLjMgMTcgOS44IDIzLjVzMTQuNCA5LjggMjMuNiA5LjhsMzIwLjQgMGM5LjIgMCAxNy0zLjMgMjMuMy05LjhzOS43LTE0LjMgMTAuMS0yMy41bDAtMTk0LjR6TTE4NS41IDIxNi41YzYuMyA2LjMgOS43IDE0LjEgMTAuMSAyMy4ybDAgMzMuM2MtLjQgOS4yLTMuNyAxNi45LTkuOCAyMy4yLTYuMiA2LjMtMTQgOS41LTIzLjYgOS41cy0xNy41LTMuMi0yMy42LTkuNS05LjQtMTQtOS44LTIzLjJsMC0zMy4zYy40LTkuMSAzLjgtMTYuOSAxMC4xLTIzLjJzMTMuMi05LjYgMjMuMy0xMGM5LjIgLjQgMTcgMy43IDIzLjMgMTB6bTE5MS41IDBjNi4zIDYuMyA5LjcgMTQuMSAxMC4xIDIzLjJsMCAzMy4zYy0uNCA5LjItMy43IDE2LjktOS44IDIzLjJzLTE0IDkuNS0yMy42IDkuNS0xNy40LTMuMi0yMy42LTkuNWMtNy02LjMtOS40LTE0LTkuNy0yMy4ybDAtMzMuM2MuMy05LjEgMy43LTE2LjkgMTAtMjMuMnMxNC4xLTkuNiAyMy4zLTEwYzkuMiAuNCAxNyAzLjcgMjMuMyAxMHoiXX0sVWZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5lb3MiLGljb246WzQ0OCw1MTIsW10sImY2MTIiLCJNMzgzLjggNTEybC05NS4xIDAtMTA4LjItMTU0LjUgMCA5MS4xLTg2LjQgNjMuNC05Ny43IDAgMC00ODIuMiA0MC41LTI5LjggMTA4IDAgMTIzLjcgMTc2LjEgMC0xMTIuNyA4Ni40LTYzLjQgOTcuNyAwIDAgNDYxLjUtNjguOSA1MC41ek03LjIgMzUuM2wwIDQ2MC43IDcyLTUyLjkgMC0yNDkuMSAyMTUuNSAzMDcuNiA4NC44IDAgNTIuNC0zOC4yLTc4LjMgMC0zMTYuMS00NTAuNS0zMC4yIDIyLjN6TTg5LjcgNTAxLjlsODAtNTguOCAwLTEwMS03OS44LTExNC40IDAgMjIwLjktNzIuNiA1My4zIDcyLjMgMCAwIDB6TTQ5IDEwLjhsMzEwLjYgNDQyLjYgODIuNCAwIDAtNDQyLjYtNzkuOCAwIDAgMzE3LjYtMjIyLjktMzE3LjYtOTAuMyAwek0yNzkuNCAxOTEuNmw3MiAxMDIuOCAwLTI3OC41LTcyIDUzIDAgMTIyLjd6Il19LFdmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZXYiLGljb246WzQ0OCw1MTIsW10sImY2Y2MiLCJNMTIwLjEgMjA4LjNjLTMuOS0yLjktNy44LTQuMy0xMS42LTQuM2wtMTcuNCAwIDAgMTA0LjUgMTcuNCAwYzMuOSAwIDcuOC0xLjQgMTEuNi00LjNzNS44LTcuMyA1LjgtMTMuMWwwLTY5LjdjMC01LjgtMi0xMC4yLTUuOC0xMy4xek00MDQuMSAzMkw0My45IDMyQzE5LjcgMzIgLjEgNTEuNiAwIDc1LjhMMCA0MzYuMkMuMSA0NjAuNCAxOS43IDQ4MCA0My45IDQ4MGwzNjAuMiAwYzI0LjIgMCA0My44LTE5LjYgNDMuOS00My44bDAtMzYwLjRDNDQ3LjkgNTEuNiA0MjguMyAzMiA0MDQuMSAzMnpNMTU0LjIgMjkxLjJjMCAxOC44LTExLjYgNDcuMy00OC40IDQ3LjNsLTQ2LjQgMCAwLTE2NS41IDQ3LjQgMGMzNS40IDAgNDcuNCAyOC41IDQ3LjQgNDcuM2wwIDcwLjl6bTEwMC43LTg4LjdsLTUzLjMgMCAwIDM4LjQgMzIuNiAwIDAgMjkuNi0zMi42IDAgMCAzOC40IDUzLjMgMCAwIDI5LjYtNjIuMiAwYy0xMS4yIC4zLTIwLjQtOC41LTIwLjctMTkuN2wwLTEyNS4xYy0uMy0xMS4xIDguNi0yMC40IDE5LjctMjAuN2w2My4yIDAgMCAyOS41ek0zNTguNSAzMTcuOGMtMTMuMiAzMC43LTM2LjggMjQuNi00Ny40IDBsLTM4LjUtMTQ0LjggMzIuNiAwIDI5LjcgMTEzLjcgMjkuNi0xMTMuNyAzMi42IDAtMzguNSAxNDQuOHoiXX0sR2ZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhvdGphciIsaWNvbjpbNTEyLDUxMixbXSwiZjNiMSIsIk0zNjEuOCAwYzAgMTMxLjYtODAuNyAxNzYuOC0xNDAuMiAyMDkuNC0uNiAuMy0xLjEgLjYtMS42IC45LTUzLjggMzAuMi04OC43IDQ5LjgtODkuNiAxMjJsLTk4LjEgMGMwLTEzMS41IDgwLjctMTc2LjcgMTQwLjItMjA5LjMgNTQuOC0yOS44IDkwLjMtNTAgOTAuMy0xMjNsOTkgMHpNMzAxLjMgMzAyLjZjNTQuOC0yOS44IDkwLjMtNTAgOTAuMy0xMjNsOTggMGMwIDEzMS42LTgwLjcgMTc2LjctMTQwLjIgMjA5LjQtNTQuOCAyOS44LTkwLjMgNTAtOTAuMyAxMjNsLTk4IDBjMC0xMzEuNiA4MC43LTE3Ni44IDE0MC4yLTIwOS40eiJdfSxZZmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZG9jaHViIixpY29uOls0NDgsNTEyLFtdLCJmMzk0IiwiTTQxMy45IDE2MEwyNzIgMTYwIDI3MiAxOS42IDQxMy45IDE2MHpNMzIwIDE5MmwwIDEzMGMwIDY2LjgtMzYuNSAxMDAuMS0xMTMuMyAxMDAuMWwtOTQuNyAwIDAtMzM3LjMgOTQuNyAwYzEyIDAgMjMuMSAuOCAzMy4xIDIuNWwwLTg0QzIyOC45IDEuMSAyMTcuNCAwIDIwNS4yIDBMMTYgMCAxNiA1MTIgMjA1LjIgNTEyQzM0NS43IDUxMiA0MTYgNDQ3LjQgNDE2IDMxOC4xbDAtMTI2LjEtOTYgMHoiXX0sWmZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbWVvIixpY29uOls0NDgsNTEyLFtdLCJmNDBhIiwiTTQwMy4yIDMyTDQ0LjggMzJDMjAuMSAzMiAwIDUyLjEgMCA3Ni44TDAgNDM1LjJDMCA0NTkuOSAyMC4xIDQ4MCA0NC44IDQ4MGwzNTguNCAwYzI0LjcgMCA0NC44LTIwLjEgNDQuOC00NC44bDAtMzU4LjRDNDQ4IDUyLjEgNDI3LjkgMzIgNDAzLjIgMzJ6TTM3NyAxODAuOGMtMS40IDMxLjUtMjMuNCA3NC43LTY2IDEyOS40LTQ0IDU3LjItODEuMyA4NS44LTExMS43IDg1LjgtMTguOSAwLTM0LjgtMTcuNC00Ny45LTUyLjMtMjUuNS05My4zLTM2LjQtMTQ4LTU3LjQtMTQ4LTIuNCAwLTEwLjkgNS4xLTI1LjQgMTUuMkw1My40IDE5MS4zYzM3LjMtMzIuOCA3Mi45LTY5LjIgOTUuMi03MS4yIDI1LjItMi40IDQwLjcgMTQuOCA0Ni41IDUxLjcgMjAuNyAxMzEuMiAyOS45IDE1MSA2Ny42IDkxLjYgMTMuNS0yMS40IDIwLjgtMzcuNyAyMS44LTQ4LjkgMy41LTMzLjItMjUuOS0zMC45LTQ1LjgtMjIuNCAxNS45LTUyLjEgNDYuMy03Ny40IDkxLjItNzYgMzMuMyAuOSA0OSAyMi41IDQ3LjEgNjQuN3oiXX0sWGZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1heGNkbiIsaWNvbjpbNTEyLDUxMixbXSwiZjEzNiIsIk00NjEuMSA0NDIuN2wtOTcuNCAwIDUxLjktMjQyLjdjMi4zLTEwLjIgLjktMTkuNS00LjQtMjUuNy01LTYuMS0xMy43LTkuNi0yNC4yLTkuNmwtNDkuMyAwLTU5LjUgMjc4LTk3LjQgMCA1OS41LTI3OC04My40IDAtNTkuNSAyNzgtOTcuNCAwIDU5LjUtMjc4LTQ0LjYtOTUuNCAzNzIuMSAwYzM5LjQgMCA3NS4zIDE2LjMgOTguMyA0NC45IDIzLjMgMjguNiAzMS44IDY3LjQgMjMuNiAxMDUuOUw0NjEuMSA0NDIuN3oiXX0sTEU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsWyJmb250LWF3ZXNvbWUtYWx0Il0sImYzNWMiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTU0IDU4YzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NCAzNDIuOSAzMzMuNGMuOCAxLjcgMS4xIDMuNSAxLjEgNS40IDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMmwtMTg2LjggMCAwIDMyLTMyIDAgMC0yMDkuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjUgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnoiXX0sS2ZlPUxFLFFmZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGVha2FwIixpY29uOls0NDgsNTEyLFtdLCJmM2YzIiwiTTY0LjQgMzkxLjhDLTE1IDMwMy42LTcuNiAxNjcuNCA4MS4xIDg3LjZzMjI0LjgtNzMgMzA0LjIgMTUuMiA3MiAyMjQuNC0xNi42IDMwNC4xYy0xOC43IDE2LjkgNjQgNDMuMSA0MiA1Mi4zLTgyLjEgMzQuMi0yNTMuOSAzNS0zNDYuMi02Ny41bDAgMHpNMjc3LjcgMTgwLjJsMzguNS00MC45Yy05LjYtOC45LTMyLTI2LjgtNzYuMi0yNy42LTUyLjMtLjktOTUuOSAyOC4zLTk2LjggODAtLjIgMTEuMyAuMyAzNi43IDI5LjQgNTQuOCAzNC41IDIxLjQgODYuNSAyMS41IDg2IDUyLjMtLjQgMjEuMy0yNi40IDI1LjgtMzguNiAyNS42LTMgMC0zMC4yLS41LTQ3LjYtMjQuNmwtNDAgNDIuNmMyOC4yIDI3IDU5IDMyLjYgODMuNSAzMyAxMC4yIC4yIDk2LjQgLjMgOTcuOC04MSAuMy0xNS44LTIuMS0zOS43LTI4LjktNTYuNi0zNC40LTIxLjYtODUtMTkuNC04NC40LTQ5LjcgLjQtMjMuMyAzMS0yNS40IDM3LjUtMjUuMyAuNCAwIDI2LjYgLjMgMzkuNiAxNy40bDAgMHoiXX0sSmZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZhbnRhc3ktZmxpZ2h0LWdhbWVzIixpY29uOls1MTIsNTEyLFtdLCJmNmRjIiwiTTI1NiAzMi45TDMyLjkgMjU2IDI1NiA0NzkuMSA0NzkuMSAyNTYgMjU2IDMyLjl6TTg4LjMgMjU1LjhjMi0yIDExLjktMTIuMyA5Ni41LTk3LjUgNDEuNC00MS44IDg2LjItNDMuOCAxMTkuOC0xOC43IDI0LjYgMTguNCA2Mi4xIDU4LjkgNjIuMSA1OSAuNyAuNyAxLjEgMi45IC42IDMuNC0xMS4zIDExLjgtMjIuNyAyMy41LTMzLjUgMzQuNy0zNC4yLTMyLjMtNDAuNS0zOC4yLTQ4LjUtNDQtMTcuOC0xMi43LTQxLjQtMTAuMS01NyA1LjEtMi4yIDIuMS0xLjggMy40IC4xIDUuNCAyLjkgMi45IDI4LjEgMjguMyAzNS4xIDM1LjgtMTEuOSAxMS42LTIzLjcgMjMtMzUuNyAzNC43LTEyLTEyLjUtMjQuNS0yNS41LTM2LjUtMzguMS0yMS40IDIxLjEtNDEuNyA0MS4xLTYxLjggNjFMODguMyAyNTUuOHpNMzIzLjIgMzU3LjRjLTM1LjUgMzUuNC03OC4xIDM4LjEtMTA3IDIwLjUtMjIuMS0xMy41LTM5LjQtMzIuMS03Mi45LTY2LjggMTItMTIuNCAyMy44LTI0LjQgMzUuNC0zNi4zIDMzIDMxLjkgMzcuMSAzNiA0NC43IDQyLjEgMTguNSAxNC43IDQyLjUgMTMuNyA1OS4zLTEuOCAzLjctMy40IDMuNy0zLjYgLjEtNy4yLTEwLjYtMTAuNy0yMS4yLTIxLjQtMzEuOC0zMi4yLTEuMy0xLjMtMy0yLjUtLjgtNC43IDEwLjgtMTAuNyAyMS41LTIxLjUgMzIuMi0zMi4zIC4zLS4zIC42LS40IDEuOS0xLjEgMTIuNCAxMi45IDI0LjkgMjUuOSAzNy4yIDM4LjggMjEtMjAuNyA0MS4yLTQwLjcgNjEuMy02MC40IDEzLjcgMTMuNCAyNy4xIDI2LjYgNDAuOSA0MC0yMC4yIDIwLjktODEuNyA4Mi43LTEwMC41IDEwMS41ek0yNTYgMEwwIDI1NiAyNTYgNTEyIDUxMiAyNTYgMjU2IDB6TTE2IDI1NkwyNTYgMTYgNDk2IDI1NiAyNTYgNDk2IDE2IDI1NnoiXX0sZW1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbnV4IixpY29uOls0NDgsNTEyLFtdLCJmMTdjIiwiTTIyMC45IDEyMy4zYzEgLjUgMS44IDEuNyAzIDEuNyAxLjEgMCAyLjgtLjQgMi45LTEuNSAuMi0xLjQtMS45LTIuMy0zLjItMi45LTEuNy0uNy0zLjktMS01LjUtLjEtLjQgLjItLjggLjctLjYgMS4xIC4zIDEuMyAyLjMgMS4xIDMuNCAxLjd6TTE5OSAxMjVjMS4yIDAgMi0xLjIgMy0xLjcgMS4xLS42IDMuMS0uNCAzLjUtMS42IC4yLS40LS4yLS45LS42LTEuMS0xLjYtLjktMy44LS42LTUuNSAuMS0xLjMgLjYtMy40IDEuNS0zLjIgMi45IC4xIDEgMS44IDEuNSAyLjggMS40ek00MjAgNDAzLjhjLTMuNi00LTUuMy0xMS42LTcuMi0xOS43LTEuOC04LjEtMy45LTE2LjgtMTAuNS0yMi40LTEuMy0xLjEtMi42LTIuMS00LTIuOS0xLjMtLjgtMi43LTEuNS00LjEtMiA5LjItMjcuMyA1LjYtNTQuNS0zLjctNzkuMS0xMS40LTMwLjEtMzEuMy01Ni40LTQ2LjUtNzQuNC0xNy4xLTIxLjUtMzMuNy00MS45LTMzLjQtNzIgLjUtNDUuOSA1LjEtMTMxLjItNzUuOC0xMzEuMy0xMDIuNC0uMi03Ni44IDEwMy40LTc3LjkgMTM1LjItMS43IDIzLjQtNi40IDQxLjgtMjIuNSA2NC43LTE4LjkgMjIuNS00NS41IDU4LjgtNTguMSA5Ni43LTYgMTcuOS04LjggMzYuMS02LjIgNTMuMy02LjUgNS44LTExLjQgMTQuNy0xNi42IDIwLjItNC4yIDQuMy0xMC4zIDUuOS0xNyA4LjNzLTE0IDYtMTguNSAxNC41Yy0yLjEgMy45LTIuOCA4LjEtMi44IDEyLjQgMCAzLjkgLjYgNy45IDEuMiAxMS44IDEuMiA4LjEgMi41IDE1LjcgLjggMjAuOC01LjIgMTQuNC01LjkgMjQuNC0yLjIgMzEuNyAzLjggNy4zIDExLjQgMTAuNSAyMC4xIDEyLjMgMTcuMyAzLjYgNDAuOCAyLjcgNTkuMyAxMi41IDE5LjggMTAuNCAzOS45IDE0LjEgNTUuOSAxMC40IDExLjYtMi42IDIxLjEtOS42IDI1LjktMjAuMiAxMi41LS4xIDI2LjMtNS40IDQ4LjMtNi42IDE0LjktMS4yIDMzLjYgNS4zIDU1LjEgNC4xIC42IDIuMyAxLjQgNC42IDIuNSA2LjdsMCAuMWM4LjMgMTYuNyAyMy44IDI0LjMgNDAuMyAyMyAxNi42LTEuMyAzNC4xLTExIDQ4LjMtMjcuOSAxMy42LTE2LjQgMzYtMjMuMiA1MC45LTMyLjIgNy40LTQuNSAxMy40LTEwLjEgMTMuOS0xOC4zIC40LTguMi00LjQtMTcuMy0xNS41LTI5Ljd6TTIyMy44IDg3LjNjOS44LTIyLjIgMzQuMi0yMS44IDQ0LS40IDYuNSAxNC4yIDMuNiAzMC45LTQuMyA0MC40LTEuNi0uOC01LjktMi42LTEyLjYtNC45IDEuMS0xLjIgMy4xLTIuNyAzLjktNC42IDQuOC0xMS44LS4yLTI3LTkuMS0yNy4zLTcuMy0uNS0xMy45IDEwLjgtMTEuOCAyMy00LjEtMi05LjQtMy41LTEzLTQuNC0xLTYuOS0uMy0xNC42IDIuOS0yMS44ek0xODMuMSA3NS44YzEwLjEgMCAyMC44IDE0LjIgMTkuMSAzMy41LTMuNSAxLTcuMSAyLjUtMTAuMiA0LjYgMS4yLTguOS0zLjMtMjAuMS05LjYtMTkuNi04LjQgLjctOS44IDIxLjItMS44IDI4LjEgMSAuOCAxLjktLjItNS45IDUuNS0xNS42LTE0LjYtMTAuNS01Mi4xIDguNC01Mi4xem0tMTMuNiA2MC43YzYuMi00LjYgMTMuNi0xMCAxNC4xLTEwLjUgNC43LTQuNCAxMy41LTE0LjIgMjcuOS0xNC4yIDcuMSAwIDE1LjYgMi4zIDI1LjkgOC45IDYuMyA0LjEgMTEuMyA0LjQgMjIuNiA5LjMgOC40IDMuNSAxMy43IDkuNyAxMC41IDE4LjItMi42IDcuMS0xMSAxNC40LTIyLjcgMTguMS0xMS4xIDMuNi0xOS44IDE2LTM4LjIgMTQuOS0zLjktLjItNy0xLTkuNi0yLjEtOC0zLjUtMTIuMi0xMC40LTIwLTE1LTguNi00LjgtMTMuMi0xMC40LTE0LjctMTUuMy0xLjQtNC45IDAtOSA0LjItMTIuM3ptMy4zIDMzNGMtMi43IDM1LjEtNDMuOSAzNC40LTc1LjMgMTgtMjkuOS0xNS44LTY4LjYtNi41LTc2LjUtMjEuOS0yLjQtNC43LTIuNC0xMi43IDIuNi0yNi40bDAtLjJjMi40LTcuNiAuNi0xNi0uNi0yMy45LTEuMi03LjgtMS44LTE1IC45LTIwIDMuNS02LjcgOC41LTkuMSAxNC44LTExLjMgMTAuMy0zLjcgMTEuOC0zLjQgMTkuNi05LjkgNS41LTUuNyA5LjUtMTIuOSAxNC4zLTE4IDUuMS01LjUgMTAtOC4xIDE3LjctNi45IDguMSAxLjIgMTUuMSA2LjggMjEuOSAxNmwxOS42IDM1LjZjOS41IDE5LjkgNDMuMSA0OC40IDQxIDY4Ljl6bS0xLjQtMjUuOWMtNC4xLTYuNi05LjYtMTMuNi0xNC40LTE5LjYgNy4xIDAgMTQuMi0yLjIgMTYuNy04LjkgMi4zLTYuMiAwLTE0LjktNy40LTI0LjktMTMuNS0xOC4yLTM4LjMtMzIuNS0zOC4zLTMyLjUtMTMuNS04LjQtMjEuMS0xOC43LTI0LjYtMjkuOXMtMy0yMy4zLS4zLTM1LjJjNS4yLTIyLjkgMTguNi00NS4yIDI3LjItNTkuMiAyLjMtMS43IC44IDMuMi04LjcgMjAuOC04LjUgMTYuMS0yNC40IDUzLjMtMi42IDgyLjQgLjYtMjAuNyA1LjUtNDEuOCAxMy44LTYxLjUgMTItMjcuNCAzNy4zLTc0LjkgMzkuMy0xMTIuNyAxLjEgLjggNC42IDMuMiA2LjIgNC4xIDQuNiAyLjcgOC4xIDYuNyAxMi42IDEwLjMgMTIuNCAxMCAyOC41IDkuMiA0Mi40IDEuMiA2LjItMy41IDExLjItNy41IDE1LjktOSA5LjktMy4xIDE3LjgtOC42IDIyLjMtMTUgNy43IDMwLjQgMjUuNyA3NC4zIDM3LjIgOTUuNyA2LjEgMTEuNCAxOC4zIDM1LjUgMjMuNiA2NC42IDMuMy0uMSA3IC40IDEwLjkgMS40IDEzLjgtMzUuNy0xMS43LTc0LjItMjMuMy04NC45LTQuNy00LjYtNC45LTYuNi0yLjYtNi41IDEyLjYgMTEuMiAyOS4yIDMzLjcgMzUuMiA1OSAyLjggMTEuNiAzLjMgMjMuNyAuNCAzNS43IDE2LjQgNi44IDM1LjkgMTcuOSAzMC43IDM0LjgtMi4yLS4xLTMuMiAwLTQuMiAwIDMuMi0xMC4xLTMuOS0xNy42LTIyLjgtMjYuMS0xOS42LTguNi0zNi04LjYtMzguMyAxMi41LTEyLjEgNC4yLTE4LjMgMTQuNy0yMS40IDI3LjMtMi44IDExLjItMy42IDI0LjctNC40IDM5LjktLjUgNy43LTMuNiAxOC02LjggMjktMzIuMSAyMi45LTc2LjcgMzIuOS0xMTQuMyA3LjJ6bTI1Ny40LTExLjVjLS45IDE2LjgtNDEuMiAxOS45LTYzLjIgNDYuNS0xMy4yIDE1LjctMjkuNCAyNC40LTQzLjYgMjUuNXMtMjYuNS00LjgtMzMuNy0xOS4zYy00LjctMTEuMS0yLjQtMjMuMSAxLjEtMzYuMyAzLjctMTQuMiA5LjItMjguOCA5LjktNDAuNiAuOC0xNS4yIDEuNy0yOC41IDQuMi0zOC43IDIuNi0xMC4zIDYuNi0xNy4yIDEzLjctMjEuMSAuMy0uMiAuNy0uMyAxLS41IC44IDEzLjIgNy4zIDI2LjYgMTguOCAyOS41IDEyLjYgMy4zIDMwLjctNy41IDM4LjQtMTYuMyA5LS4zIDE1LjctLjkgMjIuNiA1LjEgOS45IDguNSA3LjEgMzAuMyAxNy4xIDQxLjYgMTAuNiAxMS42IDE0IDE5LjUgMTMuNyAyNC42ek0xNzMuNCAxNDguN2MyIDEuOSA0LjcgNC41IDggNy4xIDYuNiA1LjIgMTUuOCAxMC42IDI3LjMgMTAuNiAxMS42IDAgMjIuNS01LjkgMzEuOC0xMC44IDQuOS0yLjYgMTAuOS03IDE0LjgtMTAuNHM1LjktNi4zIDMuMS02LjYtMi42IDIuNi02IDUuMWMtNC40IDMuMi05LjcgNy40LTEzLjkgOS44LTcuNCA0LjItMTkuNSAxMC4yLTI5LjkgMTAuMnMtMTguNy00LjgtMjQuOS05LjdjLTMuMS0yLjUtNS43LTUtNy43LTYuOS0xLjUtMS40LTEuOS00LjYtNC4zLTQuOS0xLjQtLjEtMS44IDMuNyAxLjcgNi41eiJdfSx0bWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY290dG9uLWJ1cmVhdSIsaWNvbjpbNTEyLDUxMixbXSwiZjg5ZSIsIk00NzQuMyAzMzAuNEM0NTAuNiA0MjIuMyAzODAuMSA0NzUgMjcyLjQgNDc4LjhsMC00OS4yYzAtNDggMjYuNC03NC40IDc0LjQtNzQuNCA2MiAwIDk5LjItMzcuMiA5OS4yLTk5LjIgMC02MS40LTM2LjUtOTguMy05Ny40LTk5LjEtMzMtNjkuMy0xNDYuNS02NC43LTE3Ny4yIDAtNjAuOSAuOC05Ny40IDM3LjctOTcuNCA5OS4xIDAgNjIuMSAzNy4zIDk5LjQgOTkuNCA5OS40IDQ4IDAgNzQuNiAyNi4yIDc0LjYgNzQuNGwwIDQ5LjJjLTEzNC40LTUtMjExLjEtODUuMS0yMTEuMS0yMjMgMC0xNDEuOCA4MS40LTIyMy4yIDIyMy4yLTIyMy4yIDExNC44IDAgMTg5LjggNTMuMiAyMTQuNyAxNDguOGwyNS4zIDBDNDczLjkgNzEuNSAzODguMiA4IDI1OS44IDggMTA1IDggMTIgMTAxLjIgMTIgMjU1LjggMTIgNDExLjEgMTA1LjIgNTA0LjMgMjU5LjggNTA0IDM4OC4xIDUwNCA0NzMuNyA0NDAuMiA0OTkuNSAzMzAuNGwtMjUuMiAwek0zNTcgMTgyLjNjNDEuNCAzLjQgNjQuMiAyOSA2NC4yIDczLjcgMCA0OC0yNi40IDc0LjQtNzQuNCA3NC40LTI4LjYgMC00OS4zLTkuNi02MS42LTI3LjMgODMuMS0xNi41IDc1LjYtOTkuNyA3MS44LTEyMC43em0tODEuNyA5Ny40Yy0yLjUtMTAuMy0xNi4zLTg3IDU2LjItOTcgMi4zIDEwLjEgMTYuNSA4Ny4xLTU2LjMgOTdsMCAwek0yNjAgMTMyYzI4LjYgMCA0OSA5LjcgNjEuNCAyNy42LTI4LjQgNS41LTQ5LjQgMjAuNi02MS42IDQzLjQtMTIuMi0yMi45LTMzLjItMzgtNjEuNi00My40IDEyLjQtMTcuNyAzMy4zLTI3LjQgNjEuNi0yNy40bC4yLS4zem0tNzEuNSA1MC43YzczLjIgMTAuNiA1OC45IDg2LjggNTYuNSA5Ny03Mi40LTkuOC01OS04Ny01Ni4yLTk3bC0uMiAwek0xNzMuMiAzMzAuNGMtNDggMC03NC40LTI2LjQtNzQuNC03NC40IDAtNDQuNCAyMi45LTcwIDY0LjItNzMuNy02LjggMzcuMi0xLjQgMTA2LjUgNzEuNiAxMjAuNy0xMi4xIDE3LjYtMzIuOCAyNy4zLTYxLjEgMjcuM2wtLjMgMHptNTMuMiAxMi40YzE0LjMtNy42IDI2LTE5LjMgMzMuNi0zMy41IDcuOCAxNC41IDE5LjMgMjUuNSAzMy44IDMzLjUtMTQuNCA3LjYtMjYuMSAxOS40LTMzLjYgMzMuOC04LTE0LjUtMTkuMS0yNi4yLTMzLjYtMzMuOGwtLjMgMHoiXX0sYW1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS13YWxsZXQiLGljb246WzQ0OCw1MTIsW10sImYxZWUiLCJNMTU2LjggMTI2LjhjMzcuNiA2MC42IDY0LjIgMTEzLjEgODQuMyAxNjIuNS04LjMgMzMuOC0xOC44IDY2LjUtMzEuMyA5OC4zLTEzLjItNTIuMy0yNi41LTEwMS4zLTU2LTE0OC41IDYuNS0zNi40IDIuMy03My42IDMtMTEyLjN6TTEwOS4zIDIwMGwtOTMuMiAwYy02LjUgMC0xMC41IDcuNS02LjUgMTIuNyA0Mi4yIDU0LjMgNzEuNyAxMTcuOCA5MS43IDE4Ny4zbDEwMy41IDBjLTE2LjItNjkuNy0zOC43LTEzMy43LTgyLjUtMTkzLjUtMy00LTgtNi41LTEzLTYuNXptNDcuOC04OGM2OC41IDEwOCAxMzAgMjM0LjUgMTM4LjIgMzY4TDQwOSA0ODBjLTEyLTEzOC02OC40LTI2NS0xNDMuMi0zNjhsLTEwOC43IDB6TTQwOC45IDQzLjVjLTEuOC02LjgtOC4yLTExLjUtMTUuMi0xMS41bC04OC4zIDBjLTUuMyAwLTkgNS03LjggMTAuMyAxMy4yIDQ2LjUgMjIuMyA5NS41IDI2LjUgMTQ2IDQ4LjIgODYuMiA3OS43IDE3OC4zIDkwLjYgMjcwLjggMTUuOC02MC41IDI1LjMtMTMzLjUgMjUuMy0yMDMgMC03My42LTEyLjEtMTQ1LjEtMzEuMS0yMTIuNnoiXX0saW1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvdXJzcXVhcmUiLGljb246WzM4NCw1MTIsW10sImYxODAiLCJNMzMxLjEgM0w1Ny45IDNDMjAuNCAzIDggMzEuMyA4IDQ5LjFMOCA0ODIuOWMwIDIwLjMgMTIuMSAyNy43IDE4LjIgMzAuMSA2LjIgMi41IDIyLjggNC42IDMyLjktNy4xIDEyOC45LTE0OS40IDEzMS4xLTE1MS45IDEzMS4xLTE1MS45IDMuMS0zLjQgMy40LTMuMSA2LjgtMy4xbDgzLjQgMGMzNS4xIDAgNDAuNi0yNS4yIDQ0LjMtMzkuN2w0OC42LTI0M0MzODEuOCAyNS44IDM3MS4xIDMgMzMxLjEgM3pNMzE0LjggNzYuOGwtMTEuNCA1OS43Yy0xLjIgNi41LTkuNSAxMy4yLTE2LjkgMTMuMmwtMTA2LjQgMGMtMTIgMC0yMC42IDguMy0yMC42IDIwLjNsMCAxM2MwIDEyIDguNiAyMC42IDIwLjYgMjAuNmw5MC40IDBjOC4zIDAgMTYuNiA5LjIgMTQuOCAxOC4yLTEuOCA4LjktMTAuNSA1My44LTExLjQgNTguOC0uOSA0LjktNi44IDEzLjUtMTYuOSAxMy41bC03My41IDBjLTEzLjUgMC0xNy4yIDEuOC0yNi41IDEyLjYgMCAwLTguOSAxMS40LTg5LjUgMTA4LjMtLjkgLjktMS44IC42LTEuOC0uM2wwLTMzOC44YzAtNy43IDYuOC0xNi42IDE2LjYtMTYuNmwyMTkgMGM4LjIgMCAxNS42IDcuNyAxMy41IDE3LjV6Il19LHJtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaGlydHNpbmJ1bGsiLGljb246WzQ0OCw1MTIsW10sImYyMTQiLCJNMTAwIDQxMC4zbDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0zOS40IDE3LjVsMzAuNiAxMy40IDQuNC05LjktMzAuNi0xMy40LTQuNCA5Ljl6bTE3Mi4xLTE0bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40ek0xNzkuMSA0NDVsMzAuMyAxMy43IDQuNC05LjktMzAuMy0xMy40LTQuNCA5LjZ6TTYwLjQgMzkyLjhsMzAuNiAxMy40IDQuNC05LjYtMzAuNi0xMy43LTQuNCA5Ljl6bTIxMS40IDM4LjVsNC40IDkuOSAzMC42LTEzLjQtNC40LTkuOS0zMC42IDEzLjR6bS0zOS4zIDE3LjVsNC40IDkuOSAzMC42LTEzLjctNC40LTkuNi0zMC42IDEzLjR6bTExOC40LTUyLjJsNC40IDkuNiAzMC42LTEzLjQtNC40LTkuOS0zMC42IDEzLjd6TTE3MCA0Ni42bC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6bS00Ny4yIDBsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS00Ny4zIDBsLTMzLjIgMCAwIDEwLjUgMzMuMyAwLS4xLTEwLjV6bTE0MS41IDBsLTMzLjIgMCAwIDEwLjUgMzMuMiAwIDAtMTAuNXptOTQuNSAwbC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6bTQ3LjMgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tOTQuNiAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTE0MS41IDBsLTMzLjMgMCAwIDEwLjUgMzMuMyAwIDAtMTAuNXpNNTIuOCAzNTEuMWwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41em03MC0yMTUuOWwtMzMuNiAwIDAgMTAuNSAzMy41IDAgLjEtMTAuNXptLTcwIDEwLjZsMjIuOCAwIDAtMTAuNS0zMy42IDAgMCAzMy41IDEwLjggMCAwLTIzek0yMjEuNyAzNzQuNGE5MS4zIDkxLjMgMCAxIDAgMC0xODIuNiA5MS4zIDkxLjMgMCAxIDAgMCAxODIuNnpNMTczLjUgMjYzLjNjMC0yNS40IDI5LjUtMzEuOCA0OS42LTMxLjggMTYuOSAwIDI5LjIgNS44IDQ0LjMgMTJsLTguOCAxNi45LS45IDBjLTYuNC05LjktMjQuOC0xMy4xLTM1LjYtMTMuMS05IDAtMjkuOCAxLjgtMjkuOCAxNC45IDAgMjEuNiA3OC41LTEwLjIgNzguNSAzNy45IDAgMjUuNC0zMS41IDMxLjItNTEgMzEuMi0xOC4xIDAtMzIuNC0yLjktNDcuMi0xMi4ybDktMTguNCAuOSAwYzYuMSAxMi4yIDIzLjYgMTQuOSAzNS45IDE0LjkgOC43IDAgMzIuNy0xLjIgMzIuNy0xNC4zIDAtMjYuMS03Ny42IDYuMy03Ny42LTM4ek01Mi44IDE3OC40bC0xMC44IDAgMCAzMy42IDEwLjggMCAwLTMzLjZ6TTM5NS4yIDM4NC42bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXpNNTIuOCAzMDcuOWwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41ek0wIDMuN2wwIDQwNiAyMjEuNyA5OC42IDIyNi4zLTk4LjYgMC00MDYtNDQ4IDB6TTQxOC44IDM5MC44bC0xOTYuOCA4NS43LTE5Mi44LTg1LjcgMC0yNzAuMSAzODkuNyAwIDAgMjcwLjEtLjEgMHptMC0yOTkuM2wtMzg5LjYgMCAwLTU4LjYgMzg5LjcgMCAwIDU4LjYtLjEgMHpNNTIuOCAyMjEuNmwtMTAuOCAwIDAgMzMuNSAxMC44IDAgMC0zMy41em0wIDQzLjJsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMTcwIDEzNS4ybC0zMy41IDAgMCAxMC41IDMzLjUgMCAwLTEwLjV6TTM5NS4yIDI5OC4zbDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptMC00My4ybDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXpNMjE3IDEzNS4ybC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6TTM5NS4yIDIxMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAgMTI5LjVsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0tMTMxLTIwNi4zbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTQ3LjMgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em04My43IDMzLjZsMTAuOCAwIDAtMzMuNS0zMy41IDAgMCAxMC41IDIyLjggMC0uMSAyM3ptLTM2LjQtMzMuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41eiJdfSxzbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWludGJpdCIsaWNvbjpbNTEyLDUxMixbXSwiZTYyZiIsIk03My4yIDUxMmwwLTczLjEgMjkyLjUgMCAwLTczLjIgNzMuMiAwIDAtMTQ2LjMgNzMuMSAwIDAtMjE5LjQtMjE5LjQgMCAwIDczLjEtMTQ2LjMgMCAwIDczLjItNzMuMSAwIDAgMjkyLjYtNzMuMiAwIDAgNzMuMSA3My4yIDB6bTczLjEtMjE5LjRsNzMuMiAwIDAgNzMuMS03My4yIDAgMC03My4xem03My4yLTczLjFsNzMuMSAwIDAgNzMuMS03My4yIDAgMC03My4yIC4xIC4xem03My4xIDBsMC03My4yIDczLjIgMCAwIDczLjEtNzMuMiAwIDAgLjF6TTM2NS43IDczLjFsNzMuMiAwIDAgNzMuMi03My4yIDAgMC03My4yeiJdfSxubWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToienVsaXAiLGljb246WzQ0OCw1MTIsW10sImU4NTMiLCJNNDI0IDk5YzAgMjIuNi0xMC4xIDQyLjYtMjUuNSA1NC44TDI0OS4zIDI4Ny43Yy0yLjggMi40LTYuNC0xLjUtNC40LTQuN2w1NC43LTExMC4xYzEuNS0zLjEtLjUtNi45LTMuNi02LjlMODMuOCAxNjZDNTAuOSAxNjYgMjQgMTM1LjkgMjQgOTkgMjQgNjIuMSA1MC45IDMyIDgzLjggMzJsMjgwLjQgMEMzOTcuMSAzMiA0MjQgNjIuMSA0MjQgOTl6TTgzLjggNDgwbDI4MC40IDBjMzIuOSAwIDU5LjgtMzAuMiA1OS44LTY3cy0yNi45LTY3LTU5LjgtNjdsLTIxMi4zIDBjLTMuMSAwLTUuMS0zLjgtMy42LTYuOUwyMDMuMSAyMjljMi0zLjItMS42LTcuMS00LjQtNC43TDQ5LjUgMzU4LjJDMzQuMSAzNzAuNCAyNCAzOTAuNCAyNCA0MTMgMjQgNDQ5LjggNTAuOSA0ODAgODMuOCA0ODB6Il19LG9tZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGF5bGlua2VkIixpY29uOls0NDgsNTEyLFtdLCJmM2Y1IiwiTTM4Ni43IDI5Mi41bDIuNyAyLjctMTcwLTE2Ny4zYy0zLjUtMy41LTkuNy0zLjctMTMuOC0uNUwxNDguMyAxNzFjLTQuMiAzLjItNC42IDguNy0xLjEgMTIuMmw2OC4xIDY0LjNjMy42IDMuNSA5LjkgMy43IDE0IC41bC4xLS4xYzQuMS0zLjIgMTAuNC0zIDE0IC41bDg0IDgxLjNjMy42IDMuNSAzLjIgOS0uOSAxMi4ybC05My4yIDc0Yy00LjIgMy4zLTEwLjUgMy4xLTE0LjItLjRMNjcuMiAyNjhjLTMuNS0zLjUtOS43LTMuNy0xMy45LS41TDcuNSAzMDIuNGMtNC4yIDMuMi00LjcgOC43LTEuMiAxMi4yTDIxNSA1MTAuN3M3LjQgNi44IDE3LjMtLjhMNDMwLjMgMzQ2YzQtMy4yIDQuNC04LjcgLjctMTIuMmwtNDQuMy00MS4zem01NC41LTgzLjRMMjMwLjcgMi41Yy0xLjUtMS4yLTgtNS41LTE2LjMgMS4xTDcuNiAxNjUuN2MtNC4yIDMuMi00LjggOC43LTEuMiAxMi4ybDQyLjMgNDEuNyAxNzEuNyAxNjUuMWMzLjcgMy41IDEwLjEgMy43IDE0LjMgLjRsNTAuMi0zOC44LS4zLS4zIDcuNy02YzQuMi0zLjIgNC42LTguNyAuOS0xMi4ybC01Ny4xLTU0LjRjLTMuNi0zLjUtMTAtMy43LTE0LjItLjVsLS4xIC4xYy00LjIgMy4yLTEwLjUgMy4xLTE0LjItLjRMMTEzIDE4MC44Yy0zLjYtMy41LTMuMS04LjkgMS4xLTEyLjJsOTIuMi03MS41YzQuMS0zLjIgMTAuMy0zIDEzLjkgLjVsMTYwLjQgMTU5YzMuNyAzLjUgMTAgMy43IDE0LjEgLjVsNDUuOC0zNS44YzQuMS0zLjIgNC40LTguNyAuNy0xMi4yeiJdfSxsbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2ViZmxvdyIsaWNvbjpbNjQwLDUxMixbXSwiZTY1YyIsIk02NDAgNjRsLTIwNC4yIDM5OS4yLTE5MS44IDAgODUuNS0xNjUuNS0zLjggMEMyNTUuMSAzODkuMyAxNDkuOSA0NDkuNSAwIDQ2My4yTDAgMzAwLjFzOTUuOS01LjcgMTUyLjMtNjQuOWwtMTUyLjMgMCAwLTE3MS4yIDE3MS4xIDAgMCAxNDAuOCAzLjggMCA3MC0xNDAuOCAxMjkuNCAwIDAgMTM5LjkgMy44IDAgNzIuNi0xMzkuOSAxODkuMyAweiJdfSxjbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVucmVuIixpY29uOls1MTIsNTEyLFtdLCJmMThiIiwiTTIxNCAxNjkuMUMyMTQgMjc5LjUgMTUzIDM3NC41IDY2LjQgNDE2LjUgMzAgMzczLjIgOCAzMTcuNyA4IDI1Ni42IDggMTMzLjkgOTcuMSAzMi4yIDIxNCAxMi41bDAgMTU2LjZ6TTI1NSA1MDRjLTQyLjkgMC04My4zLTExLTExOC41LTMwLjQgNTcuMi0zNi4xIDEwMy40LTkwLjcgMTE4LjUtMTU0LjYgMTUuNSA2My45IDYxLjcgMTE4LjUgMTE4LjggMTU0LjctMzUuMSAxOS4zLTc1LjUgMzAuMy0xMTguOCAzMC4zem0xOTAuNi04Ny41QzM1OSAzNzQuNSAyOTggMjc5LjYgMjk4IDE2OS4xbDAtMTU2LjZjMTE2LjkgMTkuNyAyMDYgMTIxLjQgMjA2IDI0NC4xIDAgNjEuMS0yMiAxMTYuNi01OC40IDE1OS45eiJdfSxkbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia28tZmkiLGljb246WzUxMiw1MTIsW10sImU4NTYiLCJNMjQ5LjggNzVjODkuOCAwIDExMyAxLjEgMTQ2LjMgNC40IDc4LjEgNy44IDEyMy42IDU2IDEyMy42IDEyNS4ybDAgOC45YzAgNjQuMy00Ny4xIDExNi45LTExMC44IDEyMi40LTUgMTYuNi0xMi44IDMzLjItMjMuMyA0OS45LTI0LjQgMzcuNy03My4xIDg1LjMtMTYyLjkgODUuM2wtMTcuNyAwYy03My4xIDAtMTI5LjctMzEuNi0xNjMuNS04OS4yLTI5LjktNTAuNC0zMy44LTEwNi40LTMzLjgtMTgxLjIgMC03My43IDQ0LjQtMTEzLjYgOTYuNC0xMjAuMiAzOS4zLTUgODguMS01LjUgMTQ1LjctNS41em0wIDQxLjZjLTYwLjQgMC0xMDMuNiAuNS0xMzYuMyA1LjUtNDYgNi43LTY0LjMgMzIuNy02NC4zIDc5LjJsLjIgMjUuN2MxLjIgNTcuMyA3LjEgOTcuMSAyNy41IDEzNC41IDI2LjYgNDkuMyA3NC44IDY4LjIgMTI5LjcgNjguMmwxNy4yIDBjNzIgMCAxMDctMzQuOSAxMjYuMy02NS40IDkuNC0xNS41IDE3LjctMzIuNyAyMi4yLTU0LjNsMy4zLTEzLjggMTkuOSAwYzQ0LjMgMCA4Mi42LTM2IDgyLjYtODJsMC04LjNjMC01MS41LTMyLjItNzguNy04OC4xLTg1LjMtMzEuNi0yLjgtNTAuNC0zLjktMTQwLjItMy45ek0yNjcgMTY5LjJjMzguMiAwIDY0LjggMzEuNiA2NC44IDY3IDAgMzIuNy0xOC4zIDYxLTQyLjEgODMuMS0xNSAxNS0zOS4zIDMwLjUtNTUuOSA0MC41LTQuNCAyLjgtMTAgNC40LTE2LjcgNC40LTUuNSAwLTEwLjUtMS43LTE1LjUtNC40LTE2LjYtMTAtNDEtMjUuNS01Ni41LTQwLjUtMjEuOC0yMC44LTM5LjItNDYuOS00MS4zLTc3bC0uMi02LjFjMC0zNS41IDI1LjUtNjcgNjQuMy02NyAyMi43IDAgMzguOCAxMS42IDQ5LjMgMjcuNyAxMS42LTE2LjEgMjcuMi0yNy43IDQ5LjktMjcuN3ptMTIyLjUtMy45YzI4LjMgMCA0My44IDE2LjYgNDMuOCA0My4ycy0xNS41IDQyLjctNDMuOCA0Mi43Yy04LjkgMC0xMy44LTUtMTMuOC0xMS43bDAtNjIuNmMwLTYuNyA1LTExLjYgMTMuOC0xMS42eiJdfSxwbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmV2IixpY29uOls0NDgsNTEyLFtdLCJmNWIyIiwiTTE1OC43IDI3NC45YTY1LjYgNjUuNiAwIDEgMSAxMzEuMiAwIDY1LjYgNjUuNiAwIDEgMSAtMTMxLjIgMHptMjcwLjctNS4xbC0uMSAwYy0uNy0yOS4zLTcuNy01OC4yLTIwLjUtODQuNnMtMzEuMi00OS43LTUzLjgtNjguNEwzMDkuNiAxNDNjMjIgMTQuMiA0MC4xIDMzLjggNTIuNyA1Ni44czE5LjEgNDguOCAxOS4xIDc1LjFjMCA4Ni42LTcwLjUgMTU3LjEtMTU3LjEgMTU3LjFTNjcuMiAzNjEuNSA2Ny4yIDI3NC45YzAtODEuOSA2My0xNDkuMyAxNDMtMTU2LjRsMCAzOS4xIDEwOC44LTYyLjgtMTA4LjgtNjIuOCAwIDM4LjNjLTEwNi43IDcuMi0xOTEgOTYtMTkxIDIwNC42IDAgMTExLjYgODkuMSAyMDIuMyAyMDAuMSAyMDVsMCAuMSAyMTAuMiAwIDAtMjEwLjJ6Il19LGhtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrZXljZG4iLGljb246WzUxMiw1MTIsW10sImYzYmEiLCJNNjMuOCA0MDkuM2w2MC41LTU5YzMyLjEgNDIuOCA3MS4xIDY2IDEyNi42IDY3LjQgMzAuNSAuNyA2MC4zLTcgODYuNC0yMi40IDUuMSA1LjMgMTguNSAxOS41IDIwLjkgMjItMzIuMiAyMC43LTY5LjYgMzEuMS0xMDguMSAzMC4yLTQzLjMtMS4xLTg0LjYtMTYuNy0xMTcuNy00NC40IC4zLS42LTM4LjIgMzcuNS0zOC42IDM3LjkgOS41IDI5LjgtMTMuMSA2Mi40LTQ2LjMgNjIuNC0yNi44LS4xLTQ3LjUtMjEuNy00Ny41LTQ4LjUgMC0zNC4zIDMzLjEtNTYuNiA2My44LTQ1LjZ6TTQxOC43IDE1Ni45YzE5LjEgMzEuMyAyOS42IDY3LjQgMjguNyAxMDQtMS4xIDQ0LjgtMTkgODcuNS00OC42IDEyMSAuMyAuMyAyMy44IDI1LjIgMjQuMSAyNS41IDkuNi0xLjMgMTkuMiAyIDI1LjkgOS4xIDExLjMgMTIgMTAuOSAzMC45LTEuMSA0Mi40LTEyIDExLjMtMzAuOSAxMC45LTQyLjQtMS4xLTYuNy03LTkuNC0xNi44LTcuNi0yNi4zLTI0LjktMjYuNi00NC40LTQ3LjItNDQuNC00Ny4yIDQyLjctMzQuMSA2My4zLTc5LjYgNjQuNC0xMjQuMiAuNy0yOC45LTcuMi01Ny4yLTIxLjEtODIuMmwyMi4xLTIxek0xMDQgNTMuMWM2LjcgNyA5LjQgMTYuOCA3LjYgMjYuM2w0NS45IDQ4LjFjLTQuNyAzLjgtMTMuMyAxMC40LTIyLjggMjEuMy0yNS40IDI4LjUtMzkuNiA2NC44LTQwLjcgMTAyLjktLjcgMjguOSA2LjEgNTcuMiAyMCA4Mi40TDkyIDM1NS42Yy0xOS4zLTMxLjYtMjguOS02Ny43LTI3LjgtMTA0LjcgMS00NC42IDE4LjMtODcuNiA0Ny41LTEyMS4xTDg2LjQgMTAzLjRjLTkuNiAxLjMtMTkuMi0yLTI1LjktOS4xLTExLjMtMTItMTAuOS0zMC45IDEuMS00Mi40IDExLjktMTEuMiAzMC42LTEwLjkgNDIuNCAxLjJ6TTQ2NC45IDhjMjYgMCA0Ny4xIDIyLjQgNDcuMSA0OC4zUzQ5MC45IDEwNCA0NjQuOSAxMDRjLTYuMyAuMS0xNC0xLjEtMTUuOS0xLjhsLTYyLjkgNTkuN2MtMzIuNy00My42LTc2LjctNjUuOS0xMjYuOS02Ny4yLTMwLjUtLjctNjAuMyA2LjgtODYuMiAyMi40bC0yMS4xLTIyQzE4NC4xIDc0LjMgMjIxLjUgNjQgMjYwIDY0LjkgMzAzLjMgNjYgMzQ0LjYgODEuNiAzNzcuNyAxMDkuNWw0MS4xLTM4LjZjLTEuNS00LjctMi4yLTkuNi0yLjItMTQuNS0uMS0yNi43IDIyLjMtNDguNCA0OC4zLTQ4LjR6TTI1Ni43IDExMy40YzUuNSAwIDEwLjkgLjQgMTYuNCAxLjEgNzguMSA5LjggMTMzLjQgODEuMSAxMjMuOCAxNTkuMS05LjggNzguMS04MS4xIDEzMy40LTE1OS4xIDEyMy44LTc4LjEtOS44LTEzMy40LTgxLjEtMTIzLjgtMTU5LjIgOS4zLTcyLjQgNzAuMS0xMjQuNiAxNDIuNy0xMjQuOHptLTU5IDExOS40Yy42IDIyLjcgMTIuMiA0MS44IDMyLjQgNTIuMmwtMTEgNTEuNyA3My43IDAtMTEtNTEuN2MyMC4xLTEwLjkgMzIuMS0yOSAzMi40LTUyLjItLjQtMzIuOC0yNS44LTU3LjUtNTguMy01OC4zLTMyLjEgLjgtNTcuMyAyNC44LTU4LjIgNTguM3oiXX0sdW1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpcmUtYS1oZWxwZXIiLGljb246WzUxMiw1MTIsW10sImYzYjAiLCJNNDQzLjEgMEw3MS45IDBDNjcuOSAzNy4zIDM3LjQgNjcuOCAwIDcxLjdMMCA0NDMuMmMzNy40IDQuOSA2NiAzMi40IDcxLjkgNjguOGwzNzIuMiAwYzMtMzYuNCAzMi41LTY1LjggNjcuOS02OS44bDAtMzcwLjVDNDc1LjYgNjUuOCA0NDcgMzYuNCA0NDMuMSAwem0tMzcgNDA0LjljLTM2LjMgMC0xOC44LTItNTUuMS0yLTM1LjggMC0yMSAyLTU2LjEgMi01LjkgMC00LjktOC4yIDAtOS44IDIyLjgtNy42IDIyLjktMTAuMiAyNC42LTEyLjggMTAuNC0xNS42IDUuOS04MyA1LjktMTEzIDAtNS4zLTYuNC0xMi44LTEzLjgtMTIuOGwtMTExLjIgMGMtNy40IDAtMTMuOCA3LjUtMTMuOCAxMi44IDAgMzAtNC41IDk3LjQgNS45IDExMyAxLjcgMi41IDEuOCA1LjIgMjQuNiAxMi44IDQuOSAxLjYgNiA5LjggMCA5LjgtMzUuMSAwLTIwLjMtMi01Ni4xLTItMzYuMyAwLTE4LjggMi01NS4xIDItNy45IDAtNS44LTEwLjggMC0xMC44IDEwLjItMy40IDEzLjUtMy41IDIxLjctMTMuOCA3LjctMTIuOSA3LjktNDQuNCA3LjktMTI3LjhsMC0xMDEuMmMwLTIyLjItMTIuMi0yOC4zLTI4LjYtMzIuNC04LjgtMi4yLTQtMTEuOCAxLTExLjggMzYuNSAwIDIwLjYgMiA1Ny4xIDIgMzIuNyAwIDE2LjUtMiA0OS4yLTIgMy4zIDAgOC41IDguMyAxIDEwLjgtNC45IDEuNi0yNy42IDMuNy0yNy42IDM5LjMgMCA0NS42LS4yIDU1LjggMSA2OC44IDAgMS4zIDIuMyAxMi44IDEyLjggMTIuOGwxMDkuMiAwYzEwLjUgMCAxMi44LTExLjUgMTIuOC0xMi44IDEuMi0xMyAxLTIzLjIgMS02OC44IDAtMzUuNi0yMi43LTM3LjctMjcuNi0zOS4zLTcuNS0yLjUtMi4zLTEwLjggMS0xMC44IDMyLjcgMCAxNi41IDIgNDkuMiAyIDM2LjUgMCAyMC42LTIgNTcuMS0yIDQuOSAwIDkuOSA5LjYgMSAxMS44LTE2LjQgNC4xLTI4LjYgMTAuMy0yOC42IDMyLjRsMCAxMDEuMmMwIDgzLjQgLjEgMTE0LjkgNy45IDEyNy44IDguMiAxMC4yIDExLjQgMTAuNCAyMS43IDEzLjggNS44IDAgNy44IDEwLjggMCAxMC44eiJdfSwkRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtaGFja2VyLW5ld3MiLGljb246WzQ0OCw1MTIsWyJoYWNrZXItbmV3cy1zcXVhcmUiXSwiZjNhZiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjEgMjI5LjJzLjEtLjEgLjEtLjIgLjEtLjIgLjItLjJjMCAuMSAwIC4zLS4xIC40bC0uMiAwek0yMzkuMiAzODRsLTMxLjQgMCAwLTEwMi43LTc5LjgtMTUzLjMgMzcuMyAwYzQxLjUgNzcuNyA0OC4xIDk1LjggNTQuMSAxMTIgMS42IDQuMyAzLjEgOC41IDUuMiAxMy42IDMuMi03IDUuMS0xMS45IDcuMS0xNy4zIDUuOS0xNS4zIDEyLjgtMzMuMiA1My41LTEwOC4zbDM0LjggMC04MC44IDE1NS4xIDAgMTAwLjl6Il19LGZtZT0kRSxtbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1wZC1hbHQiLGljb246WzUxMiw1MTIsW10sImY0ZWQiLCJNMjU1LjYgOEMxMTIuNyA4IDggMTIzLjEgOCAyNTYgOCAzOTQuNSAxMjEuNiA1MDQgMjU1LjYgNTA0IDM4NS41IDUwNCA1MDQgNDAzLjEgNTA0IDI1NiA1MDQgMTE4LjEgMzk3LjQgOCAyNTUuNiA4em0uOCA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjUtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjYgMCAyMDIuOSA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNiAyMDIuOC0yMDIuOCAyMDIuOHpNMzI0LjcgMTg2bC01My4yIDAgMCAxMzcuMiA1My4yIDBjMjEuNCAwIDcwLTUuMSA3MC02OC42IDAtNjMuNC00OC42LTY4LjYtNzAtNjguNnptLjggMTA4LjVsLTE5LjkgMCAwLTc5LjcgMTkuNC0uMWMzLjggMCAzNS0yLjEgMzUgMzkuOSAwIDI0LjYtMTAuNSAzOS45LTM0LjUgMzkuOXpNMjExLjcgMTg2bC02OC4yIDAgMCAxMzcuMyAzNC42IDAgMC00NC4zIDI3IDBjNTQuMSAwIDU3LjEtMzcuNSA1Ny4xLTQ2LjUgMC0zMS0xNi44LTQ2LjUtNTAuNS00Ni41em0tNC45IDY3LjNsLTI5LjIgMCAwLTQxLjYgMjguMyAwYzMwLjkgMCAyOC44IDQxLjYgLjkgNDEuNnoiXX0sZ21lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9yY2lkIixpY29uOls1MTIsNTEyLFtdLCJmOGQyIiwiTTI5NC43IDE4OC4ybC00NS45IDAgMCAxNTMuOCA0Ny41IDBjNjcuNiAwIDgzLjEtNTEuMyA4My4xLTc2LjkgMC00MS42LTI2LjUtNzYuOS04NC43LTc2Ljl6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTc1LjIgMzY4LjhsLTI5LjggMCAwLTIwNy41IDI5LjggMCAwIDIwNy41ek0xNjAuMyA5OC41YTE5LjYgMTkuNiAwIDEgMSAwIDM5LjIgMTkuNiAxOS42IDAgMSAxIDAtMzkuMnpNMzAwIDM2OWwtODEgMCAwLTIwNy43IDgwLjYgMGM3Ni43IDAgMTEwLjQgNTQuOCAxMTAuNCAxMDMuOSAwIDUzLjMtNDEuNyAxMDMuOS0xMTAgMTAzLjl6Il19LEFFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvYXJkLWdhbWUtZ2VlayIsaWNvbjpbNjQwLDUxMixbImJnZyJdLCJlODU1IiwiTTE2OC44IDE2OC4zbDMwLjEtOC4yLTEyLjMgOTguOCAxNi43IDE2LjEtMzguOSA5MS4yLTExMS44IDQxLjItNTIuNi0xMzEuOCAxNy43LTE3LTEwLjUtODQuMyAxOTEuMi03MC4zLTI5LjUgNjQuM3ptMTgwLjYgMTYuNWMxMS42IDAgMTkgNy40IDE5IDE3LjlsMCAzMS41YzAgOS43LTYuMyAxOC45LTE5LjUgMjIuMSAxMy4xIDMuMSAyMC41IDEyIDIwLjUgMjEuNGwwIDMwLjljMCAxMS4xLTcuNCAxOC4xLTE5IDE4LjFsLTg5LjEgMCAwLTE0MS44IDg4IDB6TTI5OCAyOTkuOGwzMyAwYzEuNSAwIDIuMS0xIDIuMS0yLjFsMC0yNi45YzAtMS0uNi0yLjMtMi4xLTIuM2wtMzMgMCAwIDMxLjN6bTAtNTcuM2wzMyAwYzEuNSAwIDIuMS0xLjEgMi4xLTIuM2wwLTI0LjhjMC0xLS42LTIuMy0yLjEtMi4zbC0zMyAwIDAgMjkuNHptMjA0LjEtMjcuMmwtNjUuNiAwYy0xIDAtMi4xIDEuMS0yLjEgMi4zbDAgNzYuMWMwIDEuMyAxIDIuMSAyLjEgMi4xbDI5LjcgMGMxLjUgMCAyLjMtLjggMi4zLTIuMWwwLTI0LTE5LjMgMCAxMi44LTMwIDQwLjEgMCAwIDcwLjhjMCA5LjItNy4yIDE2LjItMTYuMyAxNi4ybC03MS41IDBjLTkuMSAwLTE2LjUtNy0xNi41LTE2LjJsMC0xMDkuN2MwLTguNiA3LjQtMTYgMTYuNS0xNmw4Ny44IDAgMCAzMC41em0xMzIuNiAwbC02NS42IDBjLTEuMSAwLTIuMSAxLjEtMi4xIDIuM2wwIDc2LjFjMCAxLjMgMSAyLjEgMi4xIDIuMWwyOS42IDBjMS41IDAgMi4zLS44IDIuMy0yLjFsMC0yNC0xOS4yIDAgMTIuOC0zMCA0MC4xIDAgMCA3MC44YzAgOS4yLTcuMiAxNi4yLTE2LjMgMTYuMmwtNzEuNSAwYy05LjEgMC0xNi41LTYuOS0xNi41LTE2LjJsMC0xMDkuN2MwLTguNiA3LjQtMTYgMTYuNS0xNmw4Ny44IDAgMCAzMC41eiJdfSxibWU9QUUsdm1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJlaGFuY2UiLGljb246WzU3Niw1MTIsW10sImYxYjQiLCJNMjMyIDIzNy4yYzMxLjgtMTUuMiA0OC40LTM4LjIgNDguNC03NCAwLTcwLjYtNTIuNi04Ny44LTExMy4zLTg3LjhsLTE2Ny4xIDAgMCAzNTQuNCAxNzEuOCAwYzY0LjQgMCAxMjQuOS0zMC45IDEyNC45LTEwMi45IDAtNDQuNS0yMS4xLTc3LjQtNjQuNy04OS43ek03Ny45IDEzNS45bDczLjEgMGMyOC4xIDAgNTMuNCA3LjkgNTMuNCA0MC41IDAgMzAuMS0xOS43IDQyLjItNDcuNSA0Mi4ybC03OSAwIDAtODIuN3ptODMuMyAyMzMuN2wtODMuMyAwIDAtOTcuNiA4NC45IDBjMzQuMyAwIDU2IDE0LjMgNTYgNTAuNiAwIDM1LjgtMjUuOSA0Ny01Ny42IDQ3ek01MTkuNyAxMjguOWwtMTQzLjcgMCAwLTM0LjkgMTQzLjcgMCAwIDM0Ljl6TTU3NiAzMDUuMmMwLTc1LjktNDQuNC0xMzkuMi0xMjQuOS0xMzkuMi03OC4yIDAtMTMxLjMgNTguOC0xMzEuMyAxMzUuOCAwIDc5LjkgNTAuMyAxMzQuNyAxMzEuMyAxMzQuNyA2MS4zIDAgMTAxLTI3LjYgMTIwLjEtODYuM2wtNjIuMiAwYy02LjcgMjEuOS0zNC4zIDMzLjUtNTUuNyAzMy41LTQxLjMgMC02My0yNC4yLTYzLTY1LjNsMTg1LjEgMGMuMy00LjIgLjYtOC43IC42LTEzLjJ6TTM5MC40IDI3NGMyLjMtMzMuNyAyNC43LTU0LjggNTguNS01NC44IDM1LjQgMCA1My4yIDIwLjggNTYuMiA1NC44bC0xMTQuNyAweiJdfSx5bWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibW9uZXJvIixpY29uOls1MTIsNTEyLFtdLCJmM2QwIiwiTTM2MCAzODRsMTA4LjQgMEM0MjUgNDU1LjkgMzQ2LjEgNTA0IDI1NiA1MDRTODcgNDU1LjkgNDMuNiAzODRsMTA4LjQgMCAwLTEyNy44IDEwNCAxMDQuOCAxMDQtMTA1IDAgMTI4ek05NiAzMzZsMC0yMDggMTU5LjQgMTU5LjQgMTYwLjYtMTU5LjQgMCAyMDggNzQuOCAwYzguNS0yNS4xIDEzLjItNTIgMTMuMi04MCAwLTEzNy0xMTEtMjQ4LTI0OC0yNDhTOCAxMTkgOCAyNTZjMCAyOCA0LjYgNTQuOSAxMy4yIDgwTDk2IDMzNnoiXX0seG1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpZ21hIixpY29uOlszODQsNTEyLFtdLCJmNzk5IiwiTTE0IDk1LjhDMTQgNDIuOSA1Ni45IDAgMTA5LjggMEwyNzQuMiAwYzUyLjkgMCA5NS44IDQyLjkgOTUuOCA5NS44IDAgMzMuNS0xNy4yIDYzLTQzLjIgODAuMSAyNiAxNy4xIDQzLjIgNDYuNiA0My4yIDgwLjEgMCA1Mi45LTQyLjkgOTUuOC05NS44IDk1LjhsLTIuMSAwYy0yNC44IDAtNDcuNC05LjQtNjQuNC0yNC45bDAgODguM2MwIDUzLjYtNDQgOTYuOC05Ny40IDk2LjgtNTIuOCAwLTk2LjMtNDIuOC05Ni4zLTk1LjggMC0zMy41IDE3LjItNjMgNDMuMi04MC4xLTI2LTE3LjEtNDMuMi00Ni42LTQzLjItODAuMXMxNy4yLTYzIDQzLjItODAuMUMzMS4yIDE1OC44IDE0IDEyOS4zIDE0IDk1Ljh6bTE2Mi4zIDk1LjhsLTY2LjUgMGMtMzUuNiAwLTY0LjQgMjguOC02NC40IDY0LjQgMCAzNS40IDI4LjYgNjQuMiA2NCA2NC40bDY2LjkgMCAwLTEyOC44ek0yMDcuNyAyNTZjMCAzNS42IDI4LjggNjQuNCA2NC40IDY0LjRsMi4xIDBjMzUuNiAwIDY0LjQtMjguOCA2NC40LTY0LjRzLTI4LjgtNjQuNC02NC40LTY0LjRsLTIuMSAwYy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNHptLTk3LjkgOTUuOGwtLjQgMGMtMzUuNCAuMi02NCAyOS02NCA2NC40czI5LjIgNjQuNCA2NC45IDY0LjRjMzYuMyAwIDY2LTI5LjQgNjYtNjUuNWwwLTYzLjQtNjYuNSAwem0wLTMyMC40Yy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNHMyOC44IDY0LjQgNjQuNCA2NC40bDY2LjUgMCAwLTEyOC44LTY2LjUgMHptOTcuOSAxMjguOGw2Ni41IDBjMzUuNiAwIDY0LjQtMjguOCA2NC40LTY0LjRzLTI4LjgtNjQuNC02NC40LTY0LjRsLTY2LjUgMCAwIDEyOC44eiJdfSxCZj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnN0YWdyYW0iLGljb246WzQ0OCw1MTIsW10sImYxNmQiLCJNMjI0LjMgMTQxYTExNSAxMTUgMCAxIDAgLS42IDIzMCAxMTUgMTE1IDAgMSAwIC42LTIzMHptLS42IDQwLjRhNzQuNiA3NC42IDAgMSAxIC42IDE0OS4yIDc0LjYgNzQuNiAwIDEgMSAtLjYtMTQ5LjJ6bTkzLjQtNDUuMWEyNi44IDI2LjggMCAxIDEgNTMuNiAwIDI2LjggMjYuOCAwIDEgMSAtNTMuNiAwem0xMjkuNyAyNy4yYy0xLjctMzUuOS05LjktNjcuNy0zNi4yLTkzLjktMjYuMi0yNi4yLTU4LTM0LjQtOTMuOS0zNi4yLTM3LTIuMS0xNDcuOS0yLjEtMTg0LjkgMC0zNS44IDEuNy02Ny42IDkuOS05My45IDM2LjFzLTM0LjQgNTgtMzYuMiA5My45Yy0yLjEgMzctMi4xIDE0Ny45IDAgMTg0LjkgMS43IDM1LjkgOS45IDY3LjcgMzYuMiA5My45czU4IDM0LjQgOTMuOSAzNi4yYzM3IDIuMSAxNDcuOSAyLjEgMTg0LjkgMCAzNS45LTEuNyA2Ny43LTkuOSA5My45LTM2LjIgMjYuMi0yNi4yIDM0LjQtNTggMzYuMi05My45IDIuMS0zNyAyLjEtMTQ3LjggMC0xODQuOHpNMzk5IDM4OGMtNy44IDE5LjYtMjIuOSAzNC43LTQyLjYgNDIuNi0yOS41IDExLjctOTkuNSA5LTEzMi4xIDlzLTEwMi43IDIuNi0xMzIuMS05Yy0xOS42LTcuOC0zNC43LTIyLjktNDIuNi00Mi42LTExLjctMjkuNS05LTk5LjUtOS0xMzIuMXMtMi42LTEwMi43IDktMTMyLjFjNy44LTE5LjYgMjIuOS0zNC43IDQyLjYtNDIuNiAyOS41LTExLjcgOTkuNS05IDEzMi4xLTlzMTAyLjctMi42IDEzMi4xIDljMTkuNiA3LjggMzQuNyAyMi45IDQyLjYgNDIuNiAxMS43IDI5LjUgOSA5OS41IDkgMTMyLjFzMi43IDEwMi43LTkgMTMyLjF6Il19LHdtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwZXJieXRlIixpY29uOls0NDgsNTEyLFtdLCJlMDgzIiwiTTMwNS4zIDI4NC42bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXpNMTQ5LjQgMTI4LjdsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41ek0zNjYuNiAzMkw4MS40IDMyYy0yMS42IDAtNDIuMiA4LjYtNTcuNSAyMy45UzAgOTEuOCAwIDExMy40TDAgMzk4LjZjMCAyMS42IDguNiA0Mi4yIDIzLjkgNTcuNVM1OS44IDQ4MCA4MS40IDQ4MGwyODUuMyAwYzIxLjYgMCA0Mi4yLTguNiA1Ny41LTIzLjlTNDQ4IDQyMC4yIDQ0OCAzOTguNmwwLTI4NS4zYzAtMjEuNi04LjYtNDIuMi0yMy45LTU3LjVTMzg4LjIgMzIgMzY2LjYgMzJ6bTYzLjYgMzY2LjZjMCAxNi45LTYuNyAzMy0xOC43IDQ1cy0yOC4xIDE4LjYtNDUgMTguN2wtMjg1LjMgMGMtMTYuOSAwLTMzLTYuNy00NS0xOC43cy0xOC42LTI4LjEtMTguNy00NWwwLTI4NS4zYzAtMTYuOSA2LjctMzMgMTguNy00NXMyOC4xLTE4LjYgNDUtMTguN2wyODUuMyAwYzE2LjkgMCAzMyA2LjcgNDUgMTguN3MxOC42IDI4LjEgMTguNyA0NWwwIDI4NS4zem0tMTI1LTI2OS45bC01OC43IDAgMCA5OC43IDU4LjcgMGMxNi4zIDAgMjktNC42IDM4LjItMTMuOHMxMy44LTIxLjIgMTMuOC0zNi4xYzAtMTQuNi00LjctMjYuMy0xNC0zNS4zcy0yMi0xMy41LTM3LjktMTMuNXoiXX0sREU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXZpbWVvIixpY29uOls0NDgsNTEyLFsidmltZW8tc3F1YXJlIl0sImYxOTQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMxOC41IDMwOS41Yy00My41IDU2LjUtODAuMyA4NC44LTExMC40IDg0LjgtMTguNyAwLTM0LjQtMTcuMi00Ny4zLTUxLjYtMy44LTEzLjktNy4zLTI2LjktMTAuNS0zOS0xOC4yLTY4LjMtMjguNi0xMDcuNC00Ni4yLTEwNy40LTIuNCAwLTEwLjggNS0yNS4xIDE1LjFMNjQgMTkyYzctNi4xIDEzLjktMTIuNCAyMC42LTE4LjUgMjkuMS0yNi4zIDU1LjYtNTAuMyA3My41LTUxLjkgMjQuOS0yLjQgNDAuMiAxNC42IDQ2IDUxLjEgMjAuNSAxMjkuNiAyOS42IDE0OS4yIDY2LjggOTAuNSAxMy40LTIxLjIgMjAuNi0zNy4yIDIxLjUtNDguMyAzLjQtMzIuOC0yNS42LTMwLjYtNDUuMi0yMi4yIDE1LjctNTEuNSA0NS44LTc2LjUgOTAuMS03NS4xIDMyLjkgMSA0OC40IDIyLjQgNDYuNSA2NC0xLjQgMzEuMS0yMy4yIDczLjgtNjUuMyAxMjcuOXoiXX0sTW1lPURFLHptZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwdXNoZWQiLGljb246WzQ0OCw1MTIsW10sImYzZTEiLCJNNDE1LjEgMTExLjlsLTk4LjUtOSAxNC0zMy40YzEwLjQtMjMuNS0xMC44LTQwLjQtMjguNy0zN0wzMC42IDc2LjljLTE1LjEgMi43LTI2IDE4LjMtMjEuNCAzNi42TDExNC4zIDQ2MS44YzYuNSAyMS4zIDM2LjcgMjQuMiA0Ny43IDdMMTk3LjMgMzg4IDQzMi41IDE1Ni43YzE2LjQtMTYuOCA0LjMtNDIuOS0xNy40LTQ0Ljh6TTMwNS43IDUzLjZjNS4xLS43IDcuNSAyLjUgNS4yIDcuNGwtMTYuOCAzOS45LTE3Ny40LTE2LjMgMTg5LTMxek0zMC44IDEwNy45Yy0zLjEtNS4xIDEtMTAgNi4xLTkuMWwyNDguNyAyMi43LTk2LjkgMjMwLjctMTU3LjktMjQ0LjN6TTE0NC4xIDQ1Ni40Yy0yLjYgNC03LjkgMy4xLTkuNC0xLjJMNTEuNiAxNzkuNyAxNzkuMyAzNzcuM2MtNyAxNS0zNS4yIDc5LjEtMzUuMiA3OS4xek00MTYuOSAxNDEuOWwtMTk4LjcgMTk1LjQgODkuNy0yMTMuNyAxMDYuNCA5LjdjNCAxLjEgNS43IDUuMyAyLjYgOC42eiJdfSxrbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4Y2xvdWQiLGljb246WzY0MCw1MTIsW10sImYyODkiLCJNMjEzIDM0Ni42bC0zMy4yIDAgMC0xNTEuNSA2LjItMjEuNi0xMC43IDAtMzguMSAxNzMuMS02MSAwLTM4LjQtMTczLjEtMTAuNSAwIDUuOSAyMS42IDAgMTUxLjUtMzMuMiAwIDAtMTgxLjYgNjUuNyAwIDM2LjYgMTczLjEgOC41IDAgMzYuNi0xNzMuMSA2NS43IDAgMCAxODEuNnptMzMxLjUtNjNsLTg2IDYyLjEgMC0zOC4xIDcyLjktNTEuOC03Mi45LTUxLjggMC0zOC4xIDg2IDYyLjMgOS4zIDAgODYuMy02Mi4zIDAgMzguMS03My4xIDUxLjggNzMuMSA1MS44IDAgMzguMS04Ni4zLTYyLjEtOS4zIDB6TTQzMC4yIDI3Mi4zbC0xODIgMCAwLTMzLjEgMTgyIDAgMCAzMy4xeiJdfSxTbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieWFuZGV4LWludGVybmF0aW9uYWwiLGljb246WzMyMCw1MTIsW10sImY0MTQiLCJNMTI5LjUgNTEybDAtMTY2LjEtMTExLTI5Ny45IDU1LjggMCA4MS44IDIyOS43IDk0LjEtMjc3LjcgNTEuMyAwLTEyMC43IDM0Ny44IDAgMTY0LjItNTEuMyAweiJdfSxDbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGl2ZSIsaWNvbjpbNTEyLDUxMixbXSwiZTA3ZiIsIk0yNjAuNCAyNTQuOUwxMzEuNSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zLS44IC4xLTEuMSAuMy0uNiAuNS0uOCAuOEwuMyAyNTQuOWMtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMUwxMjkuMSA0NzguOWMuMiAuMyAuNSAuNiAuOCAuOHMuNyAuMyAxLjEgLjMgLjgtLjEgMS4xLS4zIC42LS41IC44LS44TDI2MC40IDI1Ny4xYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xem0zOS4xLTI1LjdjLjIgLjMgLjUgLjYgLjggLjhzLjcgLjMgMS4xIC4zbDY2LjUgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOCAuMy0uNyAuMy0xLjEtLjEtLjgtLjMtMS4xTDI1OS4xIDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjNsLTY2LjUgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44LS4zIC43LS4zIDEuMSAuMSAuOCAuMyAxLjFMMjk5LjQgMjI5LjJ6bTIxMi4zIDI1LjdMMzg0LjkgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uM2wtNjYuNiAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjgtLjMgLjctLjMgMS4xIC4xIC44IC4zIDEuMUw0NDAuNyAyNTYgMzE0LjUgNDc2LjdjLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjEgLjUgLjYgLjggLjggLjcgLjMgMS4xIC4zbDY2LjYgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOEw1MTEuNyAyNTcuMWMuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMXpNMzY2IDI4NC45bC02Ni41IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOEwxODguOCA0NzYuN2MtLjIgLjMtLjMgLjctLjMgMS4xcy4xIC44IC4zIDEuMSAuNSAuNiAuOCAuOCAuNyAuMyAxLjEgLjNsNjYuNSAwYy40IDAgLjgtLjEgMS4xLS4zcy42LS41IC44LS44TDM2Ny45IDI4OC4zYy4yLS4zIC4zLS43IC4zLTEuMXMtLjEtLjgtLjMtMS4xLS41LS42LS44LS44LS43LS4zLTEuMS0uM3oiXX0sX21lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtemVybyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMyIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bS0uNCA2MC41Yy04MS45IDAtMTAyLjUgNzcuMy0xMDIuNSAxNDIuOFMxNzQuMSAzOTguOCAyNTYgMzk4LjggMzU4LjUgMzIxLjUgMzU4LjUgMjU2IDMzNy45IDExMy4yIDI1NiAxMTMuMnptMCA1My45YzMuMyAwIDYuNCAuNSA5LjIgMS4yIDUuOSA1LjEgOC44IDEyLjEgMy4xIDIxLjlMMjEzLjggMjkwLjRjLTEuNy0xMi43LTEuOS0yNS4xLTEuOS0zNC40IDAtMjguOCAyLTg4LjkgNDQuMS04OC45em00MC44IDQ2LjJjMi45IDE1LjQgMy4zIDMxLjQgMy4zIDQyLjcgMCAyOC45LTIgODguOS00NC4xIDg4LjktMTMuNSAwLTMyLjYtNy43LTIwLjEtMjYuNGw2MC45LTEwNS4yeiJdfSxFRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtc25hcGNoYXQiLGljb246WzQ0OCw1MTIsWyJzbmFwY2hhdC1zcXVhcmUiXSwiZjJhZCIsIk0zODQgMzJMNjQgMzJjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43UzAgNzkgMCA5NkwwIDQxNmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM1M0NyA0ODAgNjQgNDgwbDMyMCAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43UzQ0OCA0MzMgNDQ4IDQxNmwwLTMyMGMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM1M0MDEgMzIgMzg0IDMyem0tMy45IDMxOS4zbC0uMSAuMWMtMi41IDIuOC01LjQgNS4xLTguNyA2LjgtNi41IDMuNi0xMy40IDYuMy0yMC42IDguMi0xLjQgLjQtMi43IDEtMy45IDEuOC0yLjIgMS45LTIuMSA0LjYtNC40IDguNi0xLjcgMy00IDUuNS02LjggNy41LTYuNyA0LjYtMTQuMiA0LjktMjIuMiA1LjItNy4yIC4zLTE1LjQgLjYtMjQuNyAzLjctMy44IDEuMi03LjggMy43LTEyLjQgNi41LTExLjMgNi45LTI2LjcgMTYuNC01Mi4zIDE2LjRzLTQwLjktOS40LTUyLjEtMTYuM2MtNC43LTIuOS04LjctNS40LTEyLjUtNi42LTkuMy0zLjEtMTcuNS0zLjQtMjQuNy0zLjctOC0uMy0xNS41LS42LTIyLjItNS4yLTIuNC0xLjYtNC40LTMuNy02LTYuMS0zLjItNC42LTIuOS03LjgtNS4zLTkuOS0xLjMtLjgtMi42LTEuNS00LjEtMS44LTcuMS0xLjktMTMuOS00LjYtMjAuMy04LjEtMy4xLTEuNi01LjktMy44LTguMy02LjMtNi42LTYuOC04LjMtMTQuOC01LjctMjEuOCAzLjQtOS4zIDExLjYtMTIuMSAxOS40LTE2LjMgMTQuOC04IDI2LjMtMTguMSAzNC40LTI5LjkgMi4zLTMuMyA0LjMtNi45IDYtMTAuNiAuOC0yLjIgLjgtMy4zIC4yLTQuNC0uNi0uOS0xLjMtMS42LTIuMi0yLjItMi41LTEuNy01LjEtMy40LTYuOS00LjUtMy4zLTIuMS01LjktMy44LTcuNS01LTYuMy00LjQtMTAuNi05LTEzLjQtMTQuMi0xLjktMy42LTMtNy42LTMuMy0xMS42cy40LTguMSAxLjktMTEuOWM0LjEtMTAuOSAxNC41LTE3LjcgMjctMTcuNyAyLjYgMCA1LjMgLjMgNy44IC44IC43IC4yIDEuNCAuMyAyIC41LS4xLTcuNCAuMS0xNS40IC43LTIzLjEgMi40LTI3LjMgMTEuOS00MS42IDIxLjktNTMgNi40LTcuMiAxMy45LTEzLjIgMjIuMy0xNy45IDE1LjEtOC42IDMyLjItMTMgNTAuOS0xM3MzNS44IDQuNCA1MC45IDEzYzguMyA0LjcgMTUuOSAxMC44IDIyLjIgMTcuOSAxMCAxMS40IDE5LjUgMjUuNyAyMS45IDUzIC42IDcuNyAuOSAxNS40IC43IDIzLjEgLjctLjIgMS40LS4zIDIuMS0uNSAyLjYtLjYgNS4yLS44IDcuOC0uOCAxMi41IDAgMjIuOCA2LjggMjcgMTcuNyAxLjUgMy44IDIuMSA3LjkgMS45IDExLjlzLTEuNCA4LTMuMyAxMS42Yy0yLjcgNS4yLTcuMSA5LjktMTMuNCAxNC4yLTEuNyAxLjItNC4zIDIuOS03LjUgNS0xLjggMS4yLTQuNSAyLjktNy4yIDQuNy0uOCAuNS0xLjQgMS4yLTEuOSAyLS41IDEtLjUgMi4yIC4yIDQuMiAxLjcgMy44IDMuNyA3LjQgNi4xIDEwLjggOC4zIDEyLjEgMjAuMiAyMi4zIDM1LjUgMzAuNCAxLjUgLjggMyAxLjUgNC40IDIuMyAuNyAuMyAxLjYgLjggMi41IDEuMyA0LjkgMi43IDkuMiA2IDExLjUgMTIuMiAyLjUgNi45IDEgMTQuNy01LjIgMjEuM3ptLTE2LjctMTguNWMtNTAuMy0yNC4zLTU4LjMtNjEuOS01OC43LTY0LjctLjQtMy40LS45LTYgMi44LTkuNSAzLjYtMy4zIDE5LjUtMTMuMiAyNC0xNi4zIDcuMy01LjEgMTAuNS0xMC4yIDguMi0xNi41LTEuNy00LjMtNS43LTYtMTAtNi0xLjMgMC0yLjcgLjItNCAuNC04IDEuNy0xNS44IDUuOC0yMC40IDYuOS0uNSAuMS0xLjEgLjItMS43IC4yLTIuNCAwLTMuMy0xLjEtMy4xLTQgLjYtOC44IDEuOC0yNS45IC40LTQxLjktMS45LTIyLTktMzIuOS0xNy40LTQyLjYtNC4xLTQuNi0yMy4xLTI0LjctNTkuNS0yNC43cy01NS40IDIwLjEtNTkuNSAyNC44Yy04LjQgOS43LTE1LjUgMjAuNi0xNy40IDQyLjYtMS40IDE2LS4xIDMzLjEgLjQgNDEuOSAuMiAyLjgtLjcgNC0zLjEgNC0uNiAwLTEuMS0uMS0xLjctLjItNC41LTEuMS0xMi4zLTUuMS0yMC4zLTYuOS0xLjMtLjMtMi42LS40LTQtLjQtNC4zIDAtOC4zIDEuNi0xMCA2LTIuNCA2LjMgLjggMTEuNCA4LjIgMTYuNSA0LjQgMy4xIDIwLjQgMTMgMjQgMTYuMyAzLjcgMy40IDMuMiA2LjEgMi44IDkuNS0uNCAyLjgtOC40IDQwLjQtNTguNyA2NC43LTIuOSAxLjQtOCA0LjQgLjkgOS4zIDEzLjkgNy42IDIzLjEgNi44IDMwLjMgMTEuNCA2LjEgMy45IDIuNSAxMi40IDYuOSAxNS40IDUuNSAzLjggMjEuNi0uMyA0Mi4zIDYuNiAxNy40IDUuNyAyOC4xIDIyIDU5IDIyczQxLjgtMTYuMyA1OC45LTIyYzIwLjgtNi45IDM2LjktMi44IDQyLjMtNi42IDQuNC0zLjEgLjgtMTEuNSA2LjktMTUuNCA3LjItNC42IDE2LjQtMy44IDMwLjMtMTEuNSA4LjgtNC45IDMuOC03LjkgLjktOS40eiJdfSxUbWU9RUUsTG1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZW1laXNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMiIsIk0yMDggODguM2MwLTEwIDYuMy0yMS43IDE3LjctMjEuNyAxMS4xIDAgMTcuNyAxMS43IDE3LjcgMjEuNyAwIDEwLjMtNi42IDIxLjctMTcuNyAyMS43LTExLjQgMC0xNy43LTExLjQtMTcuNy0yMS43em0zMDQgMTYwYzAgMzYtMTEuNCAxMDIuMy0zNi4zIDEyOS43LTIyLjkgMjQuOS04Ny40IDYxLjEtMTIwLjkgNzAuNmwtMS4xIC4zIDAgMzIuNmMwIDE2LjMtMTIuNiAzMC42LTI5LjEgMzAuNi0xMCAwLTE5LjQtNS43LTI0LjYtMTQuMy01LjQgOC42LTE0LjkgMTQuMy0yNC45IDE0LjNzLTE5LjQtNS43LTI0LjktMTQuM2MtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTEwLjMgMC0xOS40LTUuNy0yNC45LTE0LjMtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTE4LjkgMC0yOS40LTE1LjctMjkuNC0zMi45LTE2LjMgMTIuMy0zNS43IDE5LjQtNTYuNiAxOS40LTIyIDAtNDMuNC04LjMtNjAuMy0yMi45IDEwLjMtLjMgMjAuNi0yLjMgMzAuMy01LjctMjAuOS01LjctMzkuNC0xOC45LTUyLTM2LjMgMjEuNCA0LjYgNDYuMiAxLjcgNjcuMS0xMS4xLTIyLTIyLTU2LjYtNTguOS02OC42LTg3LjQtNS43LTEzLjQtNi45LTMxLjQtNi45LTQ1LjcgMC00OS43IDIwLjMtMTYwIDg2LjMtMTYwIDEwLjYgMCAxOC45IDQuOSAyMy4xIDE0LjkgMy43LTUuNCA3LjctMTAuNSAxMi0xNS40IDItMi42IDUuNy01LjQgNy4xLTguMyA4LTEyLjYgMTEuNy0yMS4xIDIxLjctMzQgMzIuMy00MS4xIDgxLjctNjkuNCAxMzQuOS02OS40IDYgMCAxMiAuMyAxNy43IDEuMSAxMC45LTExLjcgMjYtMTguMyA0MS43LTE4LjMgMTQuNiAwIDI5LjcgNiA0MCAxNi4zIC45IC45IDEuNCAyLjMgMS40IDMuNCAwIDMuNy0xMC4zIDEzLjQtMTIuOSAxNi4zIDQuMyAxLjQgMTUuNyA2LjkgMTUuNyAxMiAwIDIuOS0yLjkgNS4xLTQuNiA3LjEgMzEuNCAyNy43IDQ5LjQgNjcuMSA1Ni4zIDEwOCA0LjMtNS4xIDEwLjMtOC42IDE3LjEtOC42IDEwLjYgMCAyMC45IDcuMSAyOC42IDE0IDIwLjkgMTguNiAyNS43IDUzLjEgMjUuNyA3OS43ek0xODggODkuNGMwIDE4LjMgMTIuNiAzNy4xIDMyLjMgMzcuMXMzMi4zLTE4LjkgMzIuMy0zNy4xYzAtMTgtMTIuNi0zNi45LTMyLjMtMzYuOVMxODggNzEuNCAxODggODkuNHpNMjM3LjcgMTk0YzAtMTkuNyAzLjctMzkuMSA4LjYtNTguMy01MiA3OS41LTEzLjUgMTg0LjYgNjguOSAxODQuNiAyMS40IDAgNDIuNi03LjcgNjAtMjAgMi03LjQgMy43LTE0LjkgMy43LTIyLjYgMC0xNC4zLTYuMy0yMS40LTIwLjYtMjEuNC00LjYgMC05LjEgLjktMTMuNCAxLjctNjMuMyAxMi43LTEwNy4xIDMuNy0xMDcuMS02NHpNMTk2LjYgNDQ4LjljMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAgOS43LTIwIDIwLjlsMCAzMi42YzAgMTEuMSA4LjYgMjEuMSAyMCAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjEgMGMwLTExLjEtOC42LTIwLjktMjAtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLTEwIDIwLTIxLjFsMC0zMi42em00OS43IDBjMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjcgMGMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAuMy0xMCAyMC4zLTIxLjFsMC0zMi42ek00MjEuNyAyODZjLTMwLjkgNTkuMS05MC4zIDEwMi42LTE1OC42IDEwMi42LTk2LjYgMC0xNjAuNi04NC42LTE2MC42LTE3Ni42IDAtMTYuOSAyLTMzLjQgNi00OS43LTIwIDMzLjctMjkuNyA3Mi42LTI5LjcgMTExLjQgMCA2MC4zIDI0LjkgMTIxLjcgNzEuNCAxNjAuOSA1LjEtOS43IDE0LjktMTYuMyAyNi0xNi4zIDEwIDAgMTkuNCA1LjcgMjQuNiAxNC4zIDUuNC04LjYgMTQuNi0xNC4zIDI0LjktMTQuMyAxMCAwIDE5LjQgNS43IDI0LjYgMTQuMyA1LjQtOC42IDE0LjktMTQuMyAyNC45LTE0LjNzMTkuNCA1LjcgMjQuOSAxNC4zYzUuMS04LjYgMTQuNi0xNC4zIDI0LjYtMTQuMyAxMC45IDAgMjAuOSA2LjYgMjUuNyAxNiA0My40LTM2LjMgNjguNi05MiA3MS40LTE0OC4zem0xMC42LTk5LjdjMC01My43LTM0LjYtMTA1LjctOTIuNi0xMDUuNy0zMC4zIDAtNTguNiAxNS4xLTc4LjkgMzYuOS0yMCA2Ni40LTI3LjQgMTM2LjYgNDEuNCAxMzYuNiAyOC44IDAgOTcuNC0yOC41IDg0LjMgMzYuOSAyOC45LTI2IDQ1LjctNjUuNyA0NS43LTEwNC42eiJdfSwkbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFydC1sYW5nIixpY29uOls1MTIsNTEyLFtdLCJlNjkzIiwiTTM3OC42IDc4LjljLTIuOC0uMS01LjYtLjItOC41LS4ybC0yNjQuMSAwIDE0My4yLTcyYzcuNC00LjQgMTguOC02LjcgMzAuNC02LjcgMTMuNSAwIDI5LjQgOS4yIDM3IDE2LjhsNjIgNjIgMCAuMXpNMTA3LjMgOTYuNWwyNjIuOCAwYzE2IDAgMjUuNCAxLjQgMzUuNCA5LjNsMTA2LjUgMTA2LjQgMCAyMDguOC03OS4zIC43LTMyNS40LTMyNS4yek05Ni41IDM3M2wwLTI2Mi4yIDMyMy44IDMyMy44IC43IDc3LjQtMjEyLjIgMC05OC4xLTk4LjJDOTkuNCA0MDIuNSA5Ni41IDM5OC41IDk2LjUgMzczek03OC43IDEwNS4zbDAgMjY3LjdjMCAzLjMgLjEgNi4zIC4yIDkuMWwtNjItNjJDNi41IDMwOS4zIDAgMjk0LjMgMCAyNzkuNiAwIDI3Mi44IDMuOSAyNjIuMSA2LjcgMjU2bDcyLTE1MC43eiJdfSxBbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVwbG95ZG9nIixpY29uOls1MTIsNTEyLFtdLCJmMzhlIiwiTTM4Mi4yIDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTMxNy41IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTE4OC41IDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTEyMy44IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTQ0OCA5NmMxNy41IDAgMzIgMTQuNCAzMiAzMmwwIDI1NmMwIDE3LjUtMTQuNCAzMi0zMiAzMkw2NCA0MTZjLTE3LjUgMC0zMi0xNC40LTMyLTMybDAtMjU2YzAtMTcuNSAxNC40LTMyIDMyLTMybDM4NCAwem0wLTMyTDY0IDY0QzI4LjggNjQgMCA5Mi44IDAgMTI4TDAgMzg0YzAgMzUuMiAyOC44IDY0IDY0IDY0bDM4NCAwYzM1LjIgMCA2NC0yOC44IDY0LTY0bDAtMjU2YzAtMzUuMi0yOC44LTY0LTY0LTY0eiJdfSxEbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpcGJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDRkIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM1OC40IDIxMS4ybC04OS42IDAgMCA4OS42LTg5LjYgMCAwIDg5LjYtODkuNiAwIDAtMjY4LjggMjY4LjggMCAwIDg5LjZ6Il19LEVtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidXktbi1sYXJnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjhhNiIsIk0yODguMiAzMkMxMzMuNSAzMiA4IDEzMi4zIDggMjU2UzEzMy41IDQ4MCAyODguMiA0ODAgNTY4LjQgMzc5LjcgNTY4LjQgMjU2IDQ0Mi45IDMyIDI4OC4yIDMyek0yMDIuOCAzODkuMmwtMTM4LjUgMS40IDc3LjItMjkwLjcgMTMzLjQgMGM2My4yIDAgODQuOSAyOC42IDc4IDcyLjgtLjQgMi4zLS45IDQuNi0xLjUgNi45LTUuNi0xLjMtMTEuNC0xLjktMTcuMi0xLjktNDIuMyAwLTc2LjcgMzMuOS03Ni43IDc1LjcgMCAzNy4xIDI3LjEgNjggNjIuOSA3NC41LTE4LjIgMzcuMi01Ni4yIDYwLjktMTE3LjcgNjEuNXpNMzU4LjIgMjA3LjFsMzIgMC0yMi4yIDkwLjMtMzUuNCAwLTExLjItMzUuNi03LjggMzUuNi0zNy44IDAgMjYuNi05MC4zIDMxLjMgMCAxNSAzNi44IDkuNC0zNi44ek01MDQuMSAzODkuMmwtMTk3LjEgMCAxNS44LTYxLjJjMy44IC42IDcuNiAuOCAxMS41IC44IDQyLjMgMCA3Ni43LTMzLjkgNzYuNy03NS42IDAtMzIuNi0yMS02MC41LTUwLjQtNzEuMWwyMS4zLTgyLjQgOTIuNSAwLTUzIDIwNS40IDEwMy45IDAtMjEuMiA4NC4xek0yMTEuOSAyNjkuNGwtMjQuNyAwLTEzLjggNTYuNSAyNC43IDBjMTYuMSAwIDMyLjEtMy4yIDM3LjktMjYuNiA1LjYtMjIuMy04LTI5LjgtMjQuMS0yOS44ek0yMzMuMiAxNzBsLTIxLjMgMC0xMS43IDQ3LjcgMjEuNCAwYzE4IDAgMzUuNC0xNC42IDM5LjItMzAuMSA0LjYtMTguOS05LjUtMTcuNi0yNy42LTE3LjZ6Il19LFBtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3YXRjaG1hbi1tb25pdG9yaW5nIixpY29uOls1MTIsNTEyLFtdLCJlMDg3IiwiTTI1NiAxNmEyNDAgMjQwIDAgMSAwIDAgNDgwIDI0MCAyNDAgMCAxIDAgMC00ODB6TTEyMS43IDQyOS4xYy01MS42LTQwLjItODQuOS0xMDIuOC04NC45LTE3My4xIDAtMjEuNyAzLjItNDMuMyA5LjYtNjQuMWwxMDIuOS0xNy45LS4xIDExLTEzLjkgMnMtLjEgMTIuNS0uMSAxOS41YzAgMiAuNCA0IDEuMiA1LjhzMi4xIDMuNCAzLjcgNC42bDkuNSA3LjQtMjcuNyAyMDQuOXpNMjI3LjQgMTQ1LjlsOC41LTcuNnM2LjktNS40LS4xLTkuM2MtNy4yLTQtMzkuNS0zNC41LTM5LjUtMzQuNS01LjMtNS41LTguMy03LjMtMTUuNSAwIDAgMC0zMi4zIDMwLjUtMzkuNSAzNC41LTcuMSA0LS4xIDkuMy0uMSA5LjNsOC41IDcuNiAwIDQuNC03My41LTE5LjJjMzkuNi01Ni45IDEwNS41LTk0LjMgMTgwLTk0LjMgMzEuMyAwIDYyLjIgNi43IDkwLjYgMTkuNnM1My44IDMxLjggNzQuMyA1NS40bC0xOTMuNSAzNy43IDAtMy42em0zNC4xIDMyOS4zbC0zMy45LTI1MC45IDkuNS03LjRjMS42LTEuMiAyLjgtMi44IDMuNy00LjZzMS4zLTMuOCAxLjItNS44YzAtNy0uMS0xOS41LS4xLTE5LjVsLTEzLjktMi0uMS0xMC41IDI0MS43IDMxLjRjMy45IDE2LjQgNS44IDMzLjMgNS44IDUwLjEgMCAxMTkuMS05NS40IDIxNi4yLTIxMy44IDIxOS4xeiJdfSxJbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGlwcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQ1MiIsIk0yNTEuNiAxNTcuNmMwLTEuOS0uOS0yLjgtMi44LTIuOGwtNDAuOSAwYy0xLjYgMC0yLjcgMS40LTIuNyAyLjhsMCAyMDEuOGMwIDEuNCAxLjEgMi44IDIuNyAyLjhsNDAuOSAwYzEuOSAwIDIuOC0uOSAyLjgtMi44bDAtMjAxLjh6TTE1Ni41IDE2OGMtMTYuMS0xMS44LTM2LjMtMTcuOS02MC4zLTE4LTE4LjEtLjEtMzQuNiAzLjctNDkuOCAxMS40bDAtODEuMmMwLTEuOC0uOS0yLjctMi44LTIuN2wtNDAuOSAwQy45IDc3LjUgMCA3OC40IDAgODAuMkwwIDM1OS40YzAgMS45IC45IDIuOCAyLjcgMi44bDQxIDBjMS45IDAgMi44LS45IDIuOC0yLjhsMC0xMzYuMWMwLS44LTIuOC0yNyA0NS44LTI3IDQ4LjUgMCA0NS44IDI2LjEgNDUuOCAyN2wwIDEyMi42YzAgOSA3LjMgMTYuMyAxNi40IDE2LjNsMjcuMyAwYzEuOCAwIDIuNy0uOSAyLjctMi44bDAtMTM2LjFjMC0yMy40LTkuMy00MS44LTI4LTU1LjN6TTYzNC45IDI3OC4xYy02LjgtMTUuNy0xOC40LTI3LTM0LjktMzQuMWwtNTcuNi0yNS4zYy04LjYtMy42LTkuMi0xMS4yLTIuNi0xNi4xIDcuNC01LjUgNDQuMy0xMy45IDg0IDYuOCAxLjcgMSA0LS4zIDQtMi40bDAtNDQuN2MwLTEuMy0uNi0yLjEtMS45LTIuNi0xNy43LTYuNi0zNi4xLTkuOS01NS4xLTkuOS0yNi41IDAtNDUuMyA1LjgtNTguNSAxNS40LS41IC40LTI4LjQgMjAtMjIuNyA1My43IDMuNCAxOS42IDE1LjggMzQuMiAzNy4yIDQzLjZMNTgwLjQgMjg2YzExLjYgNS4xIDE1LjIgMTMuMyAxMi4yIDIxLjItMy43IDkuMS0xMy4yIDEzLjYtMzYuNSAxMy42LTI0LjMgMC00NC43LTguOS01OC40LTE5LjEtMi4xLTEuNC00LjQgLjItNC40IDIuM2wwIDM0LjRjMCAxMC40IDQuOSAxNy4zIDE0LjYgMjAuNyAxNS42IDUuNSAzMS42IDguMiA0OC4yIDguMiAxMi43IDAgMjUuOC0xLjIgMzYuMy00LjMgLjctLjMgMzYtOC45IDQ1LjYtNDUuOCAzLjUtMTMuNSAyLjQtMjYuNS0zLjEtMzkuMXpNMzc2LjIgMTQ5LjhjLTMxLjcgMC0xMDQuMiAyMC4xLTEwNC4yIDEwMy41bDAgMTgzLjVjMCAuOCAuNiAyLjcgMi43IDIuN2w0MC45IDBjMS45IDAgMi44LS45IDIuOC0yLjdsMC04OC44YzE2LjUgMTIuNyAzNS44IDE5LjEgNTcuNyAxOS4xIDYwLjUgMCAxMDguNy00OC41IDEwOC43LTEwOC43IC4xLTYwLjMtNDguMi0xMDguNi0xMDguNi0xMDguNnptMCA0Ni42YTYyLjIgNjIuMiAwIDEgMSAwIDEyNC4zIDYyLjIgNjIuMiAwIDEgMSAwLTEyNC4zek0yMjguMyA3Mi41Yy0xNS45IDAtMjguOCAxMi45LTI4LjkgMjguOSAwIDE1LjYgMTIuNyAyOC45IDI4LjkgMjguOXMyOC45LTEzLjEgMjguOS0yOC45YzAtMTYuMi0xMy0yOC45LTI4LjktMjguOXoiXX0sTm1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3VkdmVyc2lmeSIsaWNvbjpbNjQwLDUxMixbXSwiZjM4NSIsIk0xNjAuNiAzMDRjOC4yIDY4LjUgNjcuNCAxMTUuNSAxNDYgMTExLjMgNTEuMiA0My4zIDEzNi44IDQ1LjggMTg2LjQtNS42IDY5LjIgMS4xIDExOC41LTQ0LjYgMTMxLjUtOTkuNSAxNC44LTYyLjUtMTguMi0xMzIuNS05Mi4xLTE1NS4xLTMzLTg4LjEtMTMxLjQtMTAxLjUtMTg2LjUtODUtNTcuMyAxNy4zLTg0LjMgNTMuMi05OS4zIDEwOS43LTcuOCAyLjctMjYuNSA4LjktNDUgMjQuMSAxMS43IDAgMTUuMiA4LjkgMTUuMiAxOS41bDAgMjAuNGMwIDEwLjctOC43IDE5LjUtMTkuNSAxOS41bC0yMC4yIDBjLTEwLjcgMC0xOS41LTYtMTkuNS0xNi43bDAtNi42LTQ2LjggMGMtMy44IDAtMTAuOCA0LjMtMTAuOCAxMS45bDAgNDAuNGMwIDYuNCA1LjMgMTEuOCAxMS43IDExLjhsNDguOSAwIDAtLjF6TTM4OCAzMTJjLTEwLjcgNDYuMyAyMS43IDcyLjQgNTUuMyA4Ni44LTEwNy4yIDMzLjgtMTcxLjYtNTAuOC0xMzUuMy0xMTAuOC0zMy4yIDIxLjYtMzMuNyA3MS4yLTI5LjIgOTIuOS0xNy45LTEyLjQtNTMuOC0zMi40LTU3LjQtNzkuOC0zLTM5LjkgMjEuNS03NS43IDU3LTkzLjkgMzAuNi0xNS44IDEwMy41LTguNSAxMzMuNiA0MC44LTE0LjEtNDgtNTMuOC03MC4xLTEwMS44LTc0LjggMzAuOS0zMC43IDY0LjQtNTAuMyAxMTQuMi00My43IDY5LjggOS4zIDEzMy4yIDgyLjggNjcuNyAxNTAuNSAzNS0xNi4zIDQ4LjctNTQuNCA0Ny41LTc2LjlsMTAuNSAxOS42YzExLjggMjIgMTUuMiA0Ny42IDkuNCA3Mi05LjIgMzktNDAuNiA2OC44LTc5LjcgNzYuNS0zMi4xIDYuMy04My4xLTUuMS05MS44LTU5LjJ6TTE0MCAyMDhsLTM5LjggMGMtOC45IDAtMTYuMi03LjMtMTYuMi0xNi4ybDAtMzkuNmMwLTguOSA3LjMtMTYuMiAxNi4yLTE2LjJsMzkuOCAwYzguOSAwIDE2LjIgNy4zIDE2LjIgMTYuMmwwIDM5LjZjMCA4LjktNy4zIDE2LjItMTYuMiAxNi4yek0yMi4xIDE2OGMtNS42IDAtMTAuMS00LjUtMTAuMS0xMC4xbDAtMjcuOGMwLTUuNiA0LjUtMTAuMSAxMC4xLTEwLjFsMjcuNyAwYzUuNSAwIDEwLjEgNC41IDEwLjEgMTAuMWwwIDI3LjhjMCA1LjYtNC41IDEwLjEtMTAuMSAxMC4xbC0yNy43IDB6TTE4MCAxNDIuN2wwLTIxLjRjMC01LjEgNC4yLTkuMyA5LjMtOS4zbDIxLjQgMGM1LjEgMCA5LjMgNC4yIDkuMyA5LjNsMCAyMS40YzAgNS4xLTQuMiA5LjMtOS4zIDkuM2wtMjEuNCAwYy01LjEgMC05LjMtNC4yLTkuMy05LjN6TTY4IDIzNS41bDAgMjVjMCA2LjMtNS4xIDExLjUtMTEuNCAxMS41bC0yNS4yIDBjLTYuMyAwLTExLjQtNS4yLTExLjQtMTEuNWwwLTI1YzAtNi4zIDUuMS0xMS41IDExLjQtMTEuNWwyNS4xIDBjNi40IDAgMTEuNSA1LjIgMTEuNSAxMS41eiJdfSxGbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJmM2E4IiwiTTI5OS45IDE5MS4yYzUuMSAzNy4zLTQuNyA3OS0zNS45IDEwMC43LTIyLjMgMTUuNS01Mi44IDE0LjEtNzAuOCA1LjctMzcuMS0xNy4zLTQ5LjUtNTguNi00Ni44LTk3LjIgNC4zLTYwLjkgNDAuOS04Ny45IDc1LjMtODcuNSA0Ni45LS4yIDcxLjggMzEuOCA3OC4yIDc4LjN6TTQ0OCA4OGwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6TTMzMCAzMTMuMnMtLjEtMzQtLjEtMjE3LjNsLTI5IDAgMCA0MC4zYy0uOCAuMy0xLjItLjUtMS42LTEuMi05LjYtMjAuNy0zNS45LTQ2LjMtNzYtNDYtNTEuOSAuNC04Ny4yIDMxLjItMTAwLjYgNzcuOC00LjMgMTQuOS01LjggMzAuMS01LjUgNDUuNiAxLjcgNzcuOSA0NS4xIDExNy44IDExMi40IDExNS4yIDI4LjktMS4xIDU0LjUtMTcgNjktNDUuMiAuNS0xIDEuMS0xLjkgMS43LTIuOSAuMiAuMSAuNCAuMSAuNiAuMiAuMyAzLjggLjIgMzAuNyAuMSAzNC41LS4yIDE0LjgtMiAyOS41LTcuMiA0My41LTcuOCAyMS0yMi4zIDM0LjctNDQuNSAzOS41LTE3LjggMy45LTM1LjYgMy44LTUzLjItMS4yLTIxLjUtNi4xLTM2LjUtMTktNDEuMS00MS44LS4zLTEuNi0xLjMtMS4zLTIuMy0xLjNsLTI2LjggMGMuOCAxMC42IDMuMiAyMC4zIDguNSAyOS4yIDI0LjIgNDAuNSA4Mi43IDQ4LjUgMTI4LjIgMzcuNCA0OS45LTEyLjMgNjcuMy01NC45IDY3LjQtMTA2LjN6Il19LE9tZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWRhbCIsaWNvbjpbNjQwLDUxMixbXSwiZTdkYyIsIk0xMDcuMiA0OGwtMS4zIDBjLTMyLjMgMzMuMS02NS40IDY1LjUtOTggOTguNS0yLjYgMi44LTYuMSA1LjEtNy45IDguNiAzNS42IDM1LjQgNzEgNzEgMTA2LjYgMTA2LjQgMzUuNC0zNS4zIDcwLjctNzAuOCAxMDYuMS0xMDYuMWwwLTEuMy03My4yLTczLjJDMTI4LjggNjkuOCAxMTcuMyA1OS42IDEwNy4yIDQ4em0yMTMuNSAwbC0xLjMgMGMtMzQuOSAzNi4xLTcxLjUgNzEtMTA2LjMgMTA3LjIgMzUuOSAzNS4xIDcxIDcxIDEwNi43IDEwNi4zIDM0LjMtMzQuMSA2OC40LTY4LjQgMTAyLjYtMTAyLjQgMS41LTEuNSAzLjMtMi44IDQuMS00LjgtMzQuNi0zMy44LTY4LjQtNjguMi0xMDIuNi0xMDIuMS0xLjMtMS4zLTIuMy0yLjYtMy4zLTQuMXptMjEzLjUgMGwtMS4zIDBjLTE3LjIgMTgtMzUuMSAzNS4zLTUyLjYgNTMtMTcuOSAxNy43LTM1LjQgMzUuNy01My41IDUzLjMgLjggMi4zIDMgMy42IDQuNiA1LjVMNTMzLjMgMjYxLjVjMzYuMS0zNC45IDcwLjgtNzEuMiAxMDYuNy0xMDYuMS0uNS0yLjItMi42LTMuNS00LTVMNTU1LjggNzAuMmMtNy4xLTcuNC0xNC45LTE0LjItMjEuNS0yMi4yek0zMTkuNiAyNjEuN2MtMzQuOSAzNS4xLTcwIDcwLTEwNC45IDEwNC45LS4zIC43LS43IDEuNy0xIDIuMyAyNCAyMy43IDQ3LjcgNDcuNSA3MS41IDcxLjMgMTEuOCAxMS4zIDIyLjggMjMuNSAzNC45IDM0LjQgOC40LTcuNCAxNi40LTE2LjQgMjQuNy0yNC4zIDI1LjUtMjUuMyA1MS01MSA3Ni41LTc2LjMgMS44LTIuMiA0LjMtMy42IDUuNS02LjMtMzUuNC0zNC45LTcwLjUtNzAuMi0xMDUuNi0xMDUuNGwtMS41LS43eiJdfSxSbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pdHkiLGljb246WzQ0OCw1MTIsW10sImUwNDkiLCJNMjQzLjYgOTEuNmw4MC4xIDQ2LjhjMi45IDEuNiAzIDYuMiAwIDcuOGwtOTUuMiA1NS42Yy0yLjkgMS43LTYuMyAxLjYtOSAwbC05NS4yLTU1LjZjLTIuOS0xLjYtMy02LjMgMC03LjhsODAuMS00Ni44IDAtOTEuNi0yMDQuNCAxMTkuNCAwIDIzOC44IDc4LjQtNDUuOCAwLTkzLjZjLS4xLTMuMyAzLjgtNS43IDYuNy0zLjlsOTUuMiA1NS42YzIuOSAxLjcgNC41IDQuNyA0LjUgNy44bDAgMTExLjJjLjEgMy4zLTMuOCA1LjctNi43IDMuOUw5OCAzNDYuOCAxOS42IDM5Mi42IDIyNCA1MTIgNDI4LjQgMzkyLjYgMzUwIDM0Ni44IDI2OS45IDM5My42Yy0yLjggMS43LTYuOC0uNS02LjctMy45bDAtMTExLjJjMC0zLjMgMS44LTYuMyA0LjUtNy44TDM2Mi45IDIxNWMyLjgtMS43IDYuOCAuNSA2LjcgMy45bDAgOTMuNiA3OC40IDQ1LjggMC0yMzguOC0yMDQuNC0xMTkuNCAwIDkxLjZ6Il19LEJtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZW5jZW50LXdlaWJvIixpY29uOlszMjAsNTEyLFtdLCJmMWQ1IiwiTTQwLjUgNDk1LjhjMS40IDE5LjktMjcuNiAyMi4yLTI5LjcgMi45LTExLjYtMTI5LjkgMzEuMS0yMzkuNSAxMDEuNC0zMTMuMi0xNS42LTM0IDkuMi03Ny4xIDUwLjYtNzcuMSAzMC4zIDAgNTUuMSAyNC42IDU1LjEgNTUuMSAwIDQ0LTQ5LjUgNzAuOC04Ni45IDQ1LjEtNjUuNyA3MS4zLTEwMS40IDE2OS44LTkwLjUgMjg3LjJ6TTE2MC4yIC4xYy0xMjUuOSAwLTIwNC4zIDEzNC4yLTE0OC4zIDI0Mi4zIDguNyAxNy40IDM1LjMgNC41IDI2LjMtMTMuNC00Ni4zLTkyLjYgMjEtMTk5LjIgMTIyLTE5OS4yIDc1LjQgMCAxMzYuOSA2MS40IDEzNi45IDEzNi45IDAgOTAuOC04Ni45IDE1My45LTE2Ny43IDEzMy4xLTE5LjEtNC4xLTI1LjYgMjQuNC02LjYgMjkuMSAxMTAuNyAyMy4yIDIwNC02MCAyMDQtMTYyLjMgMC05MS45LTc0LjYtMTY2LjUtMTY2LjYtMTY2LjV6Il19LEhtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmcmVlLWNvZGUtY2FtcCIsaWNvbjpbNTc2LDUxMixbXSwiZjJjNSIsIk05Ny40IDk2LjJjMTAuNC0xMC42IDE2LTE3LjEgMTYtMjEuOSAwLTIuOC0xLjktNS41LTMuOC03LjQtMi40LTEuOC01LjQtMi44LTguNC0yLjgtOC41IDAtMjAuOSA4LjgtMzUuOCAyNS43LTQxLjUgNDcuMy02Mi43IDkzLjEtNjEuOCAxNjAuNlMyMSAzNjcuMyA1Ny42IDQxMi4yYzE4LjggMjMuNiAzMy4yIDM1LjggNDMuNSAzNS44IDMuMi0uMyA2LjEtMS42IDguNC0zLjggMS45LTIuOCAzLjgtNS42IDMuOC04LjQgMC01LjYtMy45LTEyLjItMTMuMi0yMC42LTQ0LjUtNDIuMy02Ny4zLTk3LTY3LjUtMTY1LS4yLTYxLjQgMjEuNi0xMTIuNCA2NC44LTE1NHpNMjM5LjYgNDIwLjFjLjYgLjQgLjkgLjYgLjkgLjZsLS45LS42em05My44IC42bC4yLS4xYy0uMiAuMS0uMyAuMi0uMiAuMXptMy4xLTE1OC4yYy0xNi4yLTQuMiA1MC40LTgyLjktNjguMS0xNzcuMiAwIDAgMTUuNSA0OS40LTYyLjggMTU5LjYtNzQuMyAxMDQuNCAyMy41IDE2OC43IDM0IDE3NS4yLTYuNy00LjMtNDcuNC0zNS43IDkuNi0xMjguNiAxMS0xOC4zIDI1LjUtMzQuOSA0My41LTcyLjIgMCAwIDE1LjkgMjIuNCA3LjYgNzEuMS0xMi41IDczLjYgNTMuOCA1Mi41IDU0LjggNTMuNSAyMi44IDI2LjgtMTcuNyA3My41LTIxLjYgNzYuNiA1LjUtMy43IDExNy43LTc4IDMzLTE4OC4xLTYgNi0xMy44IDM0LjItMzAgMzAuMXpNNTExIDg5LjdjLTE0LjktMTYuOS0yNy40LTI1LjctMzUuOS0yNS43LTMgLjEtNS45IDEuMS04LjQgMi44LTEuOSAxLjktMy44IDQuNy0zLjggNy40IDAgNC44IDUuNiAxMS4zIDE2IDIxLjkgNDMuMiA0MS42IDY1IDkyLjYgNjQuOCAxNTQuMS0uMiA2OC0yMyAxMjIuNi02Ny41IDE2NS05LjMgOC40LTEzLjIgMTQuOS0xMy4yIDIwLjYgMCAyLjcgMS45IDUuNiAzLjggOC40IDIuMyAyLjIgNS4yIDMuNiA4LjQgMy44IDEwLjMgMCAyNC43LTEyLjEgNDMuNS0zNS44IDM2LjYtNDQuOSA1My4xLTk0LjQgNTQuMS0xNjEuOVM1NTIuNSAxMzcgNTExIDg5Ljd6Il19LHFtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4LXR3aXR0ZXIiLGljb246WzQ0OCw1MTIsW10sImU2MWIiLCJNMzU3LjIgNDhMNDI3LjggNDggMjczLjYgMjI0LjIgNDU1IDQ2NCAzMTMgNDY0IDIwMS43IDMxOC42IDc0LjUgNDY0IDMuOCA0NjQgMTY4LjcgMjc1LjUtNS4yIDQ4IDE0MC40IDQ4IDI0MC45IDE4MC45IDM1Ny4yIDQ4ek0zMzIuNCA0MjEuOGwzOS4xIDAtMjUyLjQtMzMzLjgtNDIgMCAyNTUuMyAzMzMuOHoiXX0sVm1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0aWNrZXItbXVsZSIsaWNvbjpbNTc2LDUxMixbXSwiZjNmNyIsIk01NjEuNyAxOTkuNmwwIDB6bS02LjItNzcuNGMtNy43LTIyLjMtNS4xLTcuMi0xMy40LTM2LjktMS42LTYuNS0zLjYtMTQuNS02LjItMjAtNC40LTguNy00LjYtNy41LTQuNi05LjUgMC01LjMgMzAuNy00NS4zIDE5LTQ2LjktNS43LS42LTEyLjIgMTEuNi0yMC42IDE3LTguNiA0LjItOCA1LTEwLjMgNS0yLjYgMC01LjctMy02LjItNS0yLTUuNyAxLjktMjUuOS0zLjYtMjUuOS0zLjYgMC0xMi4zIDI0LjgtMTcgMjUuOC01LjIgMS4zLTI3LjktMTEuNC03NS4xIDE4LTI1LjMgMTMuMi04Ni45IDY1LjItODcgNjUuMy02LjcgNC43LTIwIDQuNy0zNS41IDE2LTQ0LjQgMzAuMS0xMDkuNiA5LjQtMTEwLjcgOS0xMTAuNi0yNi44LTEyOC0xNS4yLTE1OSAxMS41LTIwLjggMTcuOS0yMy43IDM2LjUtMjQuMiAzOC45LTQuMiAyMC40IDUuMiA0OC4zIDYuNyA2NC4zIDEuOCAxOS4zLTIuNyAxNy43IDcuNyA5OC4zIC41IDEgNC4xIDAgNS4xIDEuNSAwIDguNC0zLjggMTIuMS00LjEgMTMtMS41IDQuNS0xLjUgMTAuNSAwIDE2IDIuMyA4LjIgOC4yIDM3LjIgOC4yIDQ2LjkgMCA0MS44IC40IDQ0IDIuNiA0OS40IDMuOSAxMCAxMi41IDkuMSAxNyAxMiAzLjEgMy41LS41IDguNSAxIDEyLjUgLjUgMiAzLjYgNCA2LjIgNSA5LjIgMy42IDI3IC4zIDI5LjktMi41IDEuNi0xLjUgLjUtNC41IDMuMS01IDUuMSAwIDEwLjgtLjUgMTQuNC0yLjUgNS4xLTIuNSA0LjEtNiAxLjUtMTAuNS0uNC0uOC03LTEzLjMtOS44LTE2LTIuMS0yLTUuMS0zLTcuMi00LjUtNS44LTQuOS0xMC4zLTE5LjQtMTAuMy0xOS41LTQuNi0xOS40LTEwLjMtNDYuMy00LjEtNjYuOCA0LjYtMTcuMiAzOS41LTg3LjcgMzkuNi04Ny44IDQuMS02LjUgMTctMTEuNSAyNy4zLTcgNiAxLjkgMTkuMyAyMiA2NS40IDMwLjkgNDcuOSA4LjcgOTcuNC0yIDExMi4yLTIgMi44IDItMS45IDEzLS41IDM4LjkgMCAyNi40LS40IDEzLjctNC4xIDI5LjktMi4yIDkuNyAzLjQgMjMuMi0xLjUgNDYuOS0xLjQgOS44LTkuOSAzMi43LTguMiA0My40IC41IDEgMSAyIDEuNSAzLjUgLjUgNC41IDEuNSA4LjUgNC42IDEwIDcuMyAzLjYgMTItMy41IDkuOCAxMS41LS43IDMuMS0yLjYgMTIgMS41IDE1IDQuNCAzLjcgMzAuNiAzLjQgMzYuNSAuNSAyLjYtMS41IDEuNi00LjUgNi40LTcuNCAxLjktLjkgMTEuMy0uNCAxMS4zLTYuNSAuMy0xLjgtOS4yLTE5LjktOS4zLTIwLTIuNi0zLjUtOS4yLTQuNS0xMS4zLTgtNi45LTEwLjEtMS43LTUyLjYgLjUtNTkuNCAzLTExIDUuNi0yMi40IDguNy0zMi40IDExLTQyLjUgMTAuMy01MC42IDE2LjUtNjguMyAuOC0xLjggNi40LTIzLjEgMTAuMy0yOS45IDkuMy0xNyAyMS43LTMyLjQgMzMuNS00Ny40IDE4LTIyLjkgMzQtNDYuOSA1Mi02OS44IDYuMS03IDguMi0xMy43IDE4LTggMTAuOCA1LjcgMjEuNiA3IDMxLjkgMTcgMTQuNiAxMi44IDEwLjIgMTguMiAxMS44IDIyLjkgMS41IDUgNy43IDEwLjUgMTQuOSA5LjUgMTAuNC0yIDEzLTIuNSAxMy40LTIuNSAyLjYtLjUgNS43LTUgNy4yLTggMy4xLTUuNSA3LjItOSA3LjItMTYuNSAwLTcuNy0uNC0yLjgtMjAuNi01Mi45eiJdfSxqbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHdpdGNoIixpY29uOls0NDgsNTEyLFtdLCJmMWU4IiwiTTM1OS40IDEwMy41bC0zOC42IDAgMCAxMDkuNyAzOC42IDAgMC0xMDkuN3pNMjUzLjIgMTAzbC0zOC42IDAgMCAxMDkuOCAzOC42IDAgMC0xMDkuOHpNODkgMGwtOTYuNSA5MS40IDAgMzI5LjIgMTE1LjggMCAwIDkxLjQgOTYuNS05MS40IDc3LjMgMCAxNzMuOC0xNjQuNiAwLTI1Ni0zNjYuOSAwek00MTcuMyAyMzcuOGwtNzcuMiA3My4xLTc3LjIgMC02Ny42IDY0IDAtNjQtODYuOSAwIDAtMjc0LjMgMzA4LjkgMCAwIDIwMS4yeiJdfSxVbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2lja3N0YXJ0ZXItayIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiYyIsIk0zNTYuNyAyNTYuMmw0MC44LTQwLjVjNDIuMi00MS45IDQyLjItMTEwLjMgMC0xNTIuMXMtMTExLTQxLjktMTUzLjIgMEwyMjkuMyA3OC40QzIwOS42IDUwLjMgMTc3LjEgMzIgMTQwLjIgMzIgODAuNSAzMiAzMiA4MC4yIDMyIDEzOS41bDAgMjMzYzAgNTkuNCA0OC41IDEwNy41IDEwOC4yIDEwNy41IDM3LjEgMCA2OS4zLTE4LjMgODktNDYuNGwxNC45IDE0LjdjNDIuMiA0MS45IDExMSA0MS45IDE1My4yIDBzNDIuMi0xMTAuMyAwLTE1Mi4xbC00MC44LTQwIC4xIDB6Il19LFdtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcml0aWNhbC1yb2xlIixpY29uOls0NDgsNTEyLFtdLCJmNmM5IiwiTTIyNS44IDBjLjMgLjIgMjE2LjYgMTI0LjUgMjE3LjEgMTI0LjcgMyAxLjIgMy43IDMuNSAzLjcgNi42LS4xIDgzLjQtLjEgMTY2LjkgMCAyNTAuNCAuMSAxLjItLjIgMi40LS44IDMuNHMtMS41IDEuOS0yLjYgMi40Yy0yMS40IDEyLTIwNy45IDExOC4zLTIxOC45IDEyNC42bC0zIDBjLTc5LjMtNDUuNy0yMTguMy0xMjUuNC0yMTguNC0xMjUuNS0uNi0uMy0xLjEtLjctMS40LTEuM3MtLjUtMS4yLS40LTEuOWMwLS45IDAtMjI1LjktLjEtMjUzLjEtLjEtMSAuMi0yIC43LTIuOXMxLjMtMS42IDIuMi0yQzI3LjIgMTEyLjEgMjEzLjIgNiAyMjQuMSAwbDEuOCAwek0yMTUuNCAyMC40bC0uMi0uMmMtNjQuNyAzNi45LTEyOS41IDczLjctMTk0LjIgMTEwLjYgMCAuMSAuMSAuMiAuMSAuNEw1MiAxNDIuOWMtNy43IDYtOC4zIDYtMTAuNiA1LjEtLjEgMC0yNC4yLTkuMy0yNi44LTEwbDAgMjMwLjRjLjktMS40IDY0LjEtMTEwLjkgNjQuMS0xMTEgMS42LTIuOCAzLTEuOSA5LjEtMS41IDEuNCAuMSAxLjUgLjIgLjggMS40LTQxLjIgNzEuMy0zNi40IDYzLTY3LjUgMTE2LjktLjggMS40LS42IDEuMSAxLjIgMS4xbDE4Ni41IDBjMS40IDAgMS43LS4yIDEuNy0xLjZsMC04LjljMC0xLjMgMi40LS44LTE4LjQtMS03LjUtLjEtMTQuMS0zLjItMjEuNC0xMi43LTcuNC05LjctMTQuNi0xOS40LTIxLjgtMjkuMi0yLjMtMy4xLTMuNC0yLjQtMTYuOC0yLjQtMS44IDAtMS44IDAtMS44IDEuOCAuMyAyNi4yIC4yIDI1LjMgMSAzMi43IC41IDQuNCAyLjIgNC4yIDkuNyA0LjggMy4xIC4zIDMuOSA0LjEgLjUgNC45LTEuNiAuNC0zMS42IC41LTMzLjctLjEtLjUtLjEtMS0uNS0xLjMtLjlzLS41LTEtLjQtMS42IC4zLTEuMSAuNi0xLjUgLjktLjcgMS40LS44YzMuMy0uOCA2LjIgLjggNi43LTQuNCAxLjMtMTMuNyAxLjItOSAxLjEtNzkuNCAwLTEwLjgtLjQtMTIuNi01LjQtMTMuNi0xLjItLjItMy41LS4yLTQuNy0uNi0yLjktMS0yLTQuOCAxLjgtNC44IDMzLjcgMCA0Ni4xLTEuMSA1Ni4xIDQuOSA3LjcgNC42IDEyIDExLjUgMTIuNSAyMC40IC45IDE0LjYtNi41IDIyLjMtMTUgMzIuNi0uMiAuMS0uMyAuMy0uNCAuNXMtLjEgLjQtLjEgLjYgMCAuNCAuMSAuNiAuMiAuNCAuNCAuNWMyLjYgMy4yIDUgNi42IDcuNyA5LjggMjcuNiAzMy4yIDI0LjEgMzAuNSA0MS4zIDMzLjEgLjkgLjEgMS0uNCAxLTEuMmwwLTExYzAtMSAuMy0xLjQgMS40LTEuMyA3LjggMS4yIDE1LjggMS4xIDIzLjYtLjMgMS4xLS4xIDEuNSAuMiAxLjUgMS4zIDAgLjEgLjkgMjYuNyAuOSAyNi44IDAgMS41IC43IDEuNiAxLjkgMS42bDE4Ni43IDBjLTI3LjItNDctNTQuMi05NC04MS4yLTE0MC44IDIuMy0uNy0uNCAwIDYuNy0xLjQgMi0uNCAyLjEtLjQgMy4xIDEuNCA3LjMgMTIuNiA3Ny4zIDEzNCA3Ny40IDEzNC4xbDAtMjMwLjRjLTEuNyAuNS0xMDMuMyAzOC43LTEwNS44IDM5LjctMS4xIC40LTEuNSAuMi0xLjktLjktLjYtMS45LTEuMy0zLjgtMi4xLTUuNi0uMy0uOC0uMS0xLjEgLjYtMS40IC4xIDAgOTUuNS0zNS44IDEwMy0zOC44LTY1LjQtMzcuNi0xMzAuNi03NS0xOTYtMTEyLjZsODYuOCAxNTAuNC0uMyAuM2MtOS42LS45LTEwLjUtMS42LTExLjgtMy45LTEtMS43LTczLjUtMTI3LjctODItMTQyLjItOS4xIDE0LjctODMuNiAxNDYuMi04NS40IDE0Ni4zLTIuOSAuMi01LjkgLjEtOS4yIC4xIDI4LjgtNDkuOCA1Ny42LTk5LjUgODYuMi0xNDlsMCAwem01MS45IDEyOS45YzEuOS0uMSAzLjctLjQgNS41LS44IDEuNy0uMyAyLjUgLjIgMi42IDEuOSAwIC4xIC4xIDE5LjEtLjkgMjAuNXMtMS45IDEuMi0yLjYtLjJjLTUtOS43IDYuMi05LjctMzkuMS0xMi0uNyAwLTEgLjItMSAuOSAwIC4xIDMuNyAxMjIgMy43IDEyMi4xIDAgLjkgLjUgMS4yIDEuMiAxLjUgMyAxLjIgNS45IDIuNSA4LjcgNCA3LjMgNC4zIDExLjQgMTAuOCAxMi40IDE5LjMgMS40IDExLjgtMi44IDM1LjgtMzIuMiAzNy4xLTIuOCAuMS0yOC4zIDEuMS0zNC4xLTIzLjMtNC43LTE5LjMgOC4zLTMyLjcgMTkuOS0zNi40IC42LS4xIDEuMi0uNCAxLjUtLjlzLjUtMS4xIC41LTEuN2MuMS01LjYgMy0xMDcuMSAzLjctMTIxLjMgMC0xLjEtLjYtMS4yLTEuNC0xLjEtMzIuMyAuNS0zNi43LS4zLTQwLjIgOC41LTIuNCA2LjItNC4xIDEuMy00IC4yIDEuMS02IDIuMi0xMiAzLjMtMTggLjQtMi4xIDEuNC0yLjYgMy40LTEuOSA1LjYgMi4xIDYuNyAxLjcgMzcuMiAxLjkgMS43IDAgMS44LS4xIDEuOC0xLjggLjctMjcuNSAuNi0yMi42IDEtMjkuNiAuMS0uNi0uMS0xLjItLjMtMS43cy0uNy0uOS0xLjMtMS4xYy01LjYtMi45LTguOC03LjYtOC45LTEzLjktLjQtMTQuOCAxNy43LTIxLjcgMjcuNC0xMS41IDYuOCA3LjIgNS44IDE4LjktMi41IDI0LjItLjggLjQtMS40IDEuMS0xLjggMS44cy0uNiAxLjYtLjQgMi41YzAgLjYtLjEtNC4zIDEgMzAgMCAuOSAuNCAxLjEgMS4yIDEuMSAuMSAwIDIzLS4xIDM0LjUtLjRsMC0uMXpNNjguMyAxNDEuN2MxOS44LTQuNSAzMi43LS42IDUyLjUgMS43IDIuOCAuMyAzLjcgMS4yIDMuNiA0LS4yIDUtMS4yIDIyLjMtMS4yIDIzLjEgMCAuNS0uMiAxLS41IDEuNHMtLjcgLjctMS4yIC45Yy00LjEgMS43LTMuNi00LjQtNC03LjMtMy4xLTIyLjQtNzMuOS0zMi43LTc0LjYgMjUuNC0uMyAyMy45IDE3IDUzLjYgNTQuMSA1MC45IDI3LjItMiAxOS0yMC4yIDI0LjgtMjAuNSAuNC0uMSAuOSAwIDEuMyAuMXMuOCAuNCAxLjEgLjcgLjUgLjcgLjYgMS4yIC4xIC45IDAgMS4zYy0xLjggMTAuOC0zLjQgMTktMy40IDE5LjItMS41IDkuMi04Ni43IDIyLjEtOTMuNC00Mi4xLTIuNy0yNS44IDEwLjQtNTMuNCA0MC4zLTYwLjJ6bTgwIDg3LjdsLTE5LjUgMGMtLjYgMC0xLjItLjEtMS42LS40cy0uOC0uOC0xLTEuNGMyLjQtMy44IDUuOSAuOSA1LjktNi4xLS4xLTI1LjggLjItMzggLjItNDAuMSAwLTMuNC0uNS00LjYtMy4zLTQuOS03LS43LTMuMS0zLjQtMS4xLTMuNCAxMS44LS4xIDIyLjYtLjIgMzAgLjcgOC44IDEuMSAxNi43IDEyLjYgNy45IDIyLjYtMiAyLjItNCA0LjQtNi4xIDYuNyAxIDEuMiA2LjkgOC44IDE3LjMgMTkuNyAyLjcgMi44IDYuMiAzLjUgOS45IDMuMSAuNiAwIDEuMS0uMiAxLjUtLjZzLjctLjkgLjctMS41Yy4zLTMuNCAuMyA0LjcgLjQtNDAuNiAwLTUuNi0uMy02LjYtMy4yLTYuOC00LS40LTQtMi4zLS43LTMuNGwxOS4xLS4xYy4zIDAgNC41IC41IDEgMy40IDAgMC0uMiAwLS4yIDAtMy42IC4zLTMuOSAxLTQgNC42LS4zIDQzLjkgLjEgNDAuMiAuNCA0Mi44IC4xIC44IC4zIDIuMiA1LjEgMi4xIDIuNSAwIDMuOSAzLjQgMCAzLjQtMTAuNCAuMS0yMC43IDAtMzEuMSAuMS0xMC43IDAtMTMuNS02LjItMjQuMi0yMC44LTEuNi0yLjItOC4zLTIuNC04LjItLjQgLjkgMTYuNSAwIDE3LjggNCAxNy43IDQuOC0uMSA0LjcgMy42IC44IDMuNWwuMSAwem0yNzUtMTAuMWMtMS4yIDcuMSAuMiAxMC40LTUuMyAxMC4zLTYxLjUtLjQtNDcuOC0uMi01MC43LS4zLTEuMi0uMS0yLjQtLjQtMy42LS43LTIuNS0uNiAxLjUtMS4yLS40LTUuNi0xLjQtMy40LTIuOC02LjgtNC4xLTEwLjItLjEtLjQtLjQtLjgtLjctMS4xcy0uOC0uNC0xLjMtLjRjLTQuOS0uMi05LjctLjItMTQuNiAuMS0uMyAwLS42IC4yLS45IC4zcy0uNSAuNC0uNyAuN2MtMS42IDMuNi0zLjEgNy4zLTQuNSAxMS0xLjMgMy4yIDcuOSAxLjMgMTIuMiAyLjIgMyAuNiA0LjUgMy43IC43IDMuN2wtMjYuNCAwYy0yLjkgMC0zLjEtMy4yLS43LTMuMiAxLjIgLjEgMi40LS4yIDMuNS0uOXMxLjktMS41IDIuNC0yLjZjMS41LTMgMi44LTYgNC4xLTkuMSAxOC4yLTQyLjEgMTcuMS00MC4yIDE4LjQtNDEuNiAuMi0uMiAuNC0uNCAuNy0uNnMuNi0uMiAuOC0uMiAuNiAuMSAuOCAuMiAuNSAuMyAuNyAuNmMyLjkgMy4zIDE4LjQgNDQuNyAyMy42IDUxLjkgMiAyLjcgNS43IDIgNi40IDIgMy42IC4xIDQtMS4xIDQuMS00LjMgLjEtMS45IC4xIDEuMiAuMS00MS4yIDAtNC41LTIuNC0zLjctNS42LTQuMy0uMyAwLTIuNi0uNi0uMS0zLjEgLjItLjItLjktLjIgMjEuNy0uMiAyLjMgMCA1LjMgMi44LTEuMiAzLjQtLjQgMC0uNyAwLTEuMSAuMnMtLjYgLjMtLjkgLjYtLjQgLjYtLjYgLjktLjIgLjctLjEgMS4xYy0uMSAxLjYtLjIgMzguOSAuMyA0MS4yIC4yIC43IC42IDEuNCAxLjIgMS44czEuMyAuNyAyLjEgLjZjMTMuMyAuNCAxNC45IC40IDE2LTMuNCAxLjctNS44IDQuMS0yLjUgMy43LS4ybDAgLjF6TTMxOC42IDI4My42Yy00LjIgMC00LjQtMy40LS42LTMuNCAzNS45LS4yIDI4LjEgLjQgMzcuMi0uNiAxLjctLjIgMi40IC4yIDIuMyAxLjktLjMgMy40LS42IDYuOC0xIDEwLjItLjIgMi4yLTMuMiAyLjYtMy40LS4yLS40LTUuMy0yLjItNC41LTE1LjYtNS4xLTEuNi0uMS0xLjYgMC0xLjYgMS41bDAgMTYuMWMwIDEuNyAwIDEuNiAxLjYgMS41IDMuMS0uMiAxMC4zIC4zIDE1LjctMS41IC41LS4yIDMuMy0xLjggMy4xIDEuOCAwIC4yLS44IDEwLjQtMS4yIDExLjQtLjUgMS4zLTEuOSAxLjUtMi42IC4zLTEuMi0yIDAtNS4xLTMuNy01LjMtMTUuNC0uOS0xMi45LTIuNS0xMi45IDYgMCAxMi4zLS44IDE2LjEgMy45IDE2LjIgMTYuNiAuNSAxNC40IDAgMTYuNC01LjcgLjgtMi40IDMuNS0xLjggMy4yIC42LS40IDMuMi0uOCA2LjQtMS4yIDkuNiAwIC40LS4yIDIuNC00LjcgMi40LTM3LjItLjEtMzQuNS0uMi0zNS4yLS4zLTIuNy0uNS0yLjItMyAuMi0zLjQgMS4xLS4yIDQgLjUgNC4yLTIuNiAyLjQtNTYuMi0uMS01MS4zLTMuOS01MS4zbDAgMHptLS40LTEwOS41YzIuNSAuNiAzLjEgMS44IDMgNC42LS4zIDUuMy0uMyA5LS42IDkuNy0uNyAyLjItMy4xIDIuMS0zLjMtLjMtLjQtNC44LTMtNy44LTcuNi05LjEtMjYuMy03LjctMzIuOCAxNS41LTI3LjIgMzAuMiA1LjkgMTUuNCAyMiAxNS45IDI4LjkgMTMuOCA1LjktMS45IDUuOS02LjUgNi45LTcuNiAxLjItMS4zIDIuMi0xLjggMy4xIDEuMSAwIC4xIC42IDExLjktNiAxMi43LTEuNiAuMi0xOS40IDMuNy0zMi43LTMuNC0yMS0xMS4yLTE2LjctMzUuNS02LjktNDUuMyAxNC0xNC4xIDM5LjktNy4xIDQyLjMtNi41bDAgMHpNMjg5LjggMjgwLjFjMy4zIDAgMy43IDMgLjIgMy40LTIuNiAuMy01LS40LTUgNS41IDAgMi0uMiAyOSAuNCA0MS40IC4xIDIuMyAxLjIgMy41IDMuNCAzLjcgMjIgMS4yIDE1LTEuNyAxOC44LTYuMyAxLjgtMi4yIDIuOCAuOCAyLjggMS4xIC4zIDEzLjYtNCAxMi40LTUuMiAxMi40bC0zOC4yLS4yYy0xLjktLjItMi4xLTMtLjQtMy40IDItLjUgNC45IC40IDUuMS0yLjggMS0xNS45IC42LTQ0LjYgLjMtNDcuOC0uMy0zLjgtMi44LTMuMy01LjctMy43LTIuNS0uNC0yLTMuMiAuMy0zLjIgMS40IDAgMTggMCAyMy4xIDB6bS0zMS42LTU3LjhjLjEgNC4xIDIuOSAzLjUgNiAzLjYgMi42IC4xIDIuNSAzLjQtLjEgMy40LTYuNSAwLTEzLjcgMC0yMS42LS4xLTMuOCAwLTMuNC0zLjQgMC0zLjQgNC41IDAgMy4yIDEuNiAzLjQtNDUuNSAwLTUuMS0zLjMtMy41LTQuNy00LjItMi42LTEuMi0xLjQtMy4xIC40LTMuMiAxLjMgMCAyMC4yLS40IDIxLjIgLjJzMS45IDEuNi0uNCAyLjljLTEgLjUtMy45LS4zLTQuMiAyLjUgMCAuMi0uOCAxLjYtLjEgNDMuOGwwIDB6TTIyMS4zIDQ5Ni42Yy41IC4zIDEgLjUgMS42IC41czEuMS0uMiAxLjYtLjVjMTctOS44IDE4Mi0xMDMuNiAxOTcuNC0xMTIuNS0uMS0uNCAxMS4zLS4yLTE4MS41LS4zLTEuMiAwLTEuNiAuNC0xLjUgMS42IDAgLjEgMS4zIDQ0LjUgMS4yIDUwLjQtLjEgMi42LS42IDUuMi0xLjQgNy43LS42IDEuOCAuNC0uNS0xMy41IDMyLjItLjcgMS43LTEgMi4yLTItLjEtNC4yLTEwLjMtOC4zLTIwLjctMTIuNi0zMS0xLjUtMy40LTIuMi03LjEtMi0xMC44IC4yLTIuNSAuOC0xNi4xIDEuNS00OCAwLTEuOSAwLTItMi0ybC0xODMgMGMyLjYgMS42IDE3OC4zIDEwMi42IDE5NiAxMTIuOGwuMSAwek0xMzAuNCAzMDcuOWMwIDIuNCAuNCAyLjggMi44IDMgMTEuNSAxLjIgMjEgMy43IDI1LjYtNy4zIDYtMTQuNSAyLjctMzQuNC0xMi41LTM4LjgtMi0uNi0xNi0yLjgtMTUuOSAxLjUgMCA4IDAgMTEuNiAwIDQxLjZ6bTEwNS44LTE1YzAgMi4xIDEuMSAzOC43IDEuMSAzOS4xIC4zIDkuOS0yNS42IDUuOC0yNS4yLTIuNiAuMS0yIDEuNC0zNy40IDEuMS0zOS40LTE0LjEgNy40LTE0LjQgNDAuMiA2LjQgNDguOCA0IDEuNyA4LjQgMS45IDEyLjUgLjZzNy42LTQgOS45LTcuN2M0LjktNy44IDYuOC0yOS41LTUuNC0zOS0uMSAuMS0uMiAuMS0uNCAuMWwwIDB6bS0xMi4zLTE5OGMtOS44IDAtOS43IDE0LjgtLjEgMTQuOXMxMC4xLTE0LjkgLjEtMTQuOWwwIDB6TTE0My43IDE5OC42YzAgMS44IC40IDIuNCAyLjIgMi42IDEzLjYgMS40IDEyLjUtMTEgMTIuMi0xMy40LTEuNy0xMS4yLTE0LjQtMTAuMi0xNC40LTcuOCAwIDQuNSAwIDEzLjcgMCAxOC42ek0zNTYgMjA1bC02LjEtMTUuOGMtMi4yIDUuNS00LjIgMTAuNi02LjIgMTUuOGwxMi4zIDB6Il19LEdtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGVhbS1zeW1ib2wiLGljb246WzQ0OCw1MTIsW10sImYzZjYiLCJNMjczLjUgMTc3LjVhNjEgNjEgMCAxIDEgMTIyIDAgNjEgNjEgMCAxIDEgLTEyMiAwem0xNzQuNSAuMmMwIDYzLTUxIDExMy44LTExMy43IDExMy44TDIyNSAzNzEuM2MtNCA0My00MC41IDc2LjgtODQuNSA3Ni44LTQwLjUgMC03NC43LTI4LjgtODMtNjdMMCAzNTggMCAyNTAuNyA5Ny4yIDI5MGMxNS4xLTkuMiAzMi4yLTEzLjMgNTItMTEuNWw3MS0xMDEuN0MyMjAuNyAxMTQuNSAyNzEuNyA2NCAzMzQuMiA2NCAzOTcgNjQgNDQ4IDExNSA0NDggMTc3Ljd6TTIwMyAzNjNjMC0zNC43LTI3LjgtNjIuNS02Mi41LTYyLjUtNC41IDAtOSAuNS0xMy41IDEuNWwyNiAxMC41YzI1LjUgMTAuMiAzOCAzOSAyNy43IDY0LjUtMTAuMiAyNS41LTM5LjIgMzgtNjQuNyAyNy41LTEwLjItNC0yMC41LTguMy0zMC43LTEyLjIgMTAuNSAxOS43IDMxLjIgMzMuMiA1NS4yIDMzLjIgMzQuNyAwIDYyLjUtMjcuOCA2Mi41LTYyLjV6TTQxMC41IDE3Ny43YTc2LjQgNzYuNCAwIDEgMCAtMTUyLjggMCA3Ni40IDc2LjQgMCAxIDAgMTUyLjggMHoiXX0sWW1lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1haWxjaGltcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5ZSIsIk0zMzEgMjQzLjVjMy4xLS40IDYuMi0uNCA5LjMgMCAxLjctMy44IDItMTAuNCAuNS0xNy42LTIuMi0xMC43LTUuMy0xNy4xLTExLjUtMTYuMXMtNi41IDguNy00LjIgMTkuNGMxLjMgNiAzLjUgMTEuMSA2IDE0LjNsMCAwek0yNzcuNCAyNTJjNC41IDIgNy4yIDMuMyA4LjMgMi4xIDEuOS0xLjktMy41LTkuNC0xMi4xLTEzLjEtNS0yLjEtMTAuNC0yLjgtMTUuOC0yLjJzLTEwLjUgMi43LTE0LjggNS44Yy0zIDIuMi01LjggNS4yLTUuNCA3LjEgLjkgMy43IDEwLTIuNyAyMi42LTMuNSA3LS40IDEyLjggMS44IDE3LjMgMy43bDAgMHptLTkgNS4xYy05LjEgMS40LTE1IDYuNS0xMy41IDEwLjEgLjkgLjMgMS4yIC44IDUuMi0uOCA2LTIuMyAxMi40LTIuOSAxOC43LTEuOSAyLjkgLjMgNC4zIC41IDQuOS0uNSAxLjUtMi4yLTUuNy04LTE1LjQtNi45bDAgMHptNTQuMiAxNy4xYzMuNC02LjktMTAuOS0xMy45LTE0LjMtN3MxMC45IDEzLjkgMTQuMyA3bDAgMHptMTUuNy0yMC41Yy03LjctLjEtOCAxNS44LS4zIDE1LjlzOC0xNS44IC4zLTE2bDAgMHpNMTE5LjUgMzMyLjdjLTEuMyAuMy02IDEuNS04LjUtMi4zLTUuMi04IDExLjEtMjAuNCAzLTM1LjgtOS4xLTE3LjUtMjcuOC0xMy41LTM1LTUuNS04LjcgOS42LTguNyAyMy41LTUgMjQuMSA0LjMgLjYgNC4xLTYuNSA3LjQtMTEuNiAuOS0xLjQgMi4xLTIuNiAzLjUtMy42czMtMS42IDQuNi0yIDMuNC0uNCA1IDAgMy4zIDEgNC43IDEuOWMxMS42IDcuNiAxLjQgMTcuOCAyLjMgMjguNiAxLjQgMTYuNyAxOC40IDE2LjQgMjEuNiA5IC4yLS40IC4zLS44IC4zLTEuMnMtLjItLjgtLjUtMS4xYzAgLjkgLjctMS4zLTMuNC0uNGwwIDB6bTI5OS43LTE3LjFjLTMuMy0xMS43LTIuNi05LjItNi44LTIwLjUgMi40LTMuNyAxNS4zLTI0LTMuMS00My4zLTEwLjQtMTAuOS0zMy45LTE2LjUtNDEuMS0xOC41LTEuNS0xMS40IDQuNi01OC43LTIxLjUtODMgMjAuOC0yMS42IDMzLjgtNDUuMyAzMy43LTY1LjctLjEtMzkuMi00OC4yLTUxLTEwNy40LTI2LjVsLTEyLjUgNS4zYy0uMSAwLTIyLjctMjIuMy0yMy4xLTIyLjYtNjcuNS01OC45LTI3OC44IDE3NS45LTIxMS4zIDIzMi45bDE0LjggMTIuNWMtNCAxMC43LTUuNCAyMi4yLTQuMSAzMy41IDMuNCAzMy40IDM2IDYwLjQgNjcuNSA2MC40IDU3LjcgMTMzLjEgMjY3LjkgMTMzLjMgMzIyLjMgMyAxLjctNC41IDkuMS0yNC42IDkuMS00Mi40cy0xMC4xLTI1LjMtMTYuNS0yNS4zbDAgMHptLTMxNiA0OC4yYy0yMi44LS42LTQ3LjUtMjEuMS00OS45LTQ1LjUtNi4yLTYxLjMgNzQuMy03NS4zIDg0LTEyLjMgNC41IDI5LjYtNC43IDU4LjUtMzQuMSA1Ny44bDAgMHpNODQuNyAyNDkuNmMtMTUuMiAzLTI4LjUgMTEuNS0zNi43IDIzLjUtNC45LTQuMS0xNC0xMi0xNS42LTE1LTEzLTI0LjggMTQuMi03MyAzMy4zLTEwMC4yIDQ3LjEtNjcuMiAxMjAuOS0xMTguMSAxNTUtMTA4LjkgNS41IDEuNiAyMy45IDIyLjkgMjMuOSAyMi45cy0zNC4xIDE4LjktNjUuOCA0NS4zQzEzNi4yIDE1MCAxMDQgMTk3LjcgODQuNyAyNDkuNnpNMzIzLjYgMzUwLjdzLTM1LjcgNS4zLTY5LjUtNy4xYzYuMi0yMC4yIDI3IDYuMSA5Ni40LTEzLjggMTUuMy00LjQgMzUuNC0xMyA1MS0yNS40IDMuNCA3LjggNS44IDE1LjkgNy4xIDI0LjMgMy43LS43IDE0LjItLjUgMTEuNCAxOC4xLTMuMyAxOS45LTExLjcgMzYtMjUuOSA1MC44LTguOSA5LjYtMTkuNCAxNy41LTMxLjIgMjMuMy02LjUgMy40LTEzLjMgNi4zLTIwLjMgOC42LTUzLjUgMTcuNS0xMDguMy0xLjctMTI2LTQzLTEuNC0zLjEtMi42LTYuNC0zLjYtOS43LTcuNS0yNy4yLTEuMS01OS44IDE4LjgtODAuNCAxLjItMS4zIDIuNS0yLjkgMi41LTQuOC0uMi0xLjctLjgtMy4zLTEuOS00LjUtNy0xMC4xLTMxLjItMjcuNC0yNi4zLTYwLjggMy41LTI0IDI0LjUtNDAuOSA0NC4xLTM5LjlsNSAuM2M4LjUgLjUgMTUuOSAxLjYgMjIuOSAxLjkgMTEuNyAuNSAyMi4yLTEuMiAzNC42LTExLjYgNC4yLTMuNSA3LjYtNi41IDEzLjMtNy41IDIuMy0uNiA0LjctLjcgNy0uM3M0LjYgMS4yIDYuNiAyLjVjMTAgNi42IDExLjQgMjIuNyAxMS45IDM0LjUgLjMgNi43IDEuMSAyMyAxLjQgMjcuNiAuNiAxMC43IDMuNCAxMi4yIDkuMSAxNCAzLjIgMSA2LjIgMS44IDEwLjUgMy4xIDEzLjIgMy43IDIxIDcuNSAyNiAxMi4zIDIuNSAyLjUgNC4yIDUuOCA0LjcgOS4zIDEuNiAxMS40LTguOCAyNS40LTM2LjMgMzguMi00Ni43IDIxLjctOTMuNyAxNC40LTEwMC41IDEzLjctMjAuMi0yLjctMzEuNiAyMy4zLTE5LjUgNDEuMSAyMi42IDMzLjQgMTIyLjQgMjAgMTUxLjQtMjEuNCAuNy0xIC4xLTEuNi0uNy0xLTQxLjggMjguNi05Ny4xIDM4LjItMTI4LjUgMjYtNC44LTEuOC0xNC43LTYuNC0xNS45LTE2LjcgNDMuNiAxMy41IDcxIC43IDcxIC43czItMi44LS42LTIuNXpNMTcxLjcgMTU3LjVjMTYuNy0xOS40IDM3LjQtMzYuMiA1NS44LTQ1LjYgLjEtLjEgLjMtLjEgLjUtLjFzLjMgLjEgLjQgLjIgLjIgLjMgLjIgLjQgMCAuMy0uMSAuNWMtMS41IDIuNy00LjMgOC4zLTUuMiAxMi43IDAgLjEgMCAuMyAwIC40cy4yIC4zIC4zIC40IC4zIC4xIC40IC4xIC4zIDAgLjQtLjFjMTEuNS03LjggMzEuNS0xNi4yIDQ5LTE3LjMgLjIgMCAuMyAwIC41IC4xcy4yIC4yIC4zIC40IC4xIC4zIDAgLjUtLjEgLjMtLjMgLjRjLTIuOSAyLjItNS41IDQuOC03LjcgNy43LS4xIC4xLS4xIC4yLS4xIC40czAgLjMgLjEgLjQgLjIgLjIgLjMgLjMgLjIgLjEgLjQgLjFjMTIuMyAuMSAyOS43IDQuNCA0MSAxMC43IC44IC40IC4yIDEuOS0uNiAxLjctNjkuNS0xNS45LTEyMy4xIDE4LjUtMTM0LjUgMjYuOC0uMiAuMS0uMyAuMS0uNSAuMXMtLjMtLjEtLjUtLjItLjItLjMtLjItLjUgLjEtLjQgLjItLjVsLS4xIDB6Il19LFptZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsdW1vbiIsaWNvbjpbNjQwLDUxMixbXSwiZTdlMiIsIk00NTIuNSAyMjMuNWM5LjggMCAxNi41IDYuMyAxNi41IDE2LjZsMCAzMS44YzAgMTAuMy02LjYgMTYuNi0xNi42IDE2LjZsLTU2LjIgMGMtOS44IDAtMTYuNS02LjMtMTYuNS0xNi42bDAtMzEuOGMwLTEwLjMgNi43LTE2LjYgMTYuNS0xNi42bDU2LjMgMHptLTI1LjcgMTMuMWMtMS41LTIuNi0zLjItMi42LTQuNiAwbC0xMC43IDE3LjZjLTEuNyAyLjQtMi42IDUuMS0yLjYgOC4yIDAgNy45IDYuOSAxNC42IDE1LjYgMTQuNiA4LjUgMCAxNS42LTYuNyAxNS42LTE0LjYgMC0zLTEtNS44LTIuNy04LjJsLTEwLjctMTcuNnpNODUuOCAyMjMuOGMxIDAgMS41IC42IDEuNSAxLjVsMCA1MC4zIDY0LjYgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA5LjdjMCAuOS0uNiAxLjUtMS42IDEuNWwtNzguNCAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwem04OC4zIDBjMSAwIDEuNSAuNiAxLjUgMS41bDAgNDVjMCA0IDIgNS4yIDUuNyA1LjJsNDYuOSAwYzMuOCAwIDUuNy0xLjMgNS43LTUuMmwwLTQ1YzAtLjkgLjUtMS41IDEuNS0xLjVsMTIuMyAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDQ2YzAgMTAuNS01LjMgMTYuOC0xNy42IDE2LjhsLTU0IDBjLTEyLjMgMC0xNy42LTYuMy0xNy42LTE2LjhsMC00NmMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMHptMTA4LjIgMGMxIDAgMS42IC41IDIuMiAxLjRsMzAuNSA0Ni40IDEuNCAwIDMwLjUtNDYuNGMuNi0uOSAxLjItMS40IDIuMi0xLjRsMTggMGMxIDAgMS41IC42IDEuNSAxLjVsMCA2MS40YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNDMuOC0xLjEgMC0yOC43IDQzLjhjLS42IC45LTEuMyAxLjUtMi40IDEuNWwtMTAuNyAwYy0xIDAtMS43LS42LTIuMy0xLjVsLTI4LjctNDMuOC0xLjEgMCAwIDQzLjhjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTcuOSAwem0yMTQuNCAwYy45IDAgMS4zIC40IDIuMiAxLjFsNTIuNyA0Ni4zIDEuMyAwIDAtNDZjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgNjEuNGMwIC45LS42IDEuNS0xLjYgMS41bC0xNC40IDBjLTEgMC0xLjQtLjQtMi4zLTEuMWwtNTIuNi00Ni4zLTEuNCAwIDAgNDZjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTQuNCAwek0zMjAgMTE0LjFjODcuOSAwIDE2Ny43IDE1LjcgMjI1LjUgNDFsMi43IDEuMkM1ODcuMSAxNzMuOCA2NDAgMjA2LjUgNjQwIDI1NnMtNTIuOSA4Mi4yLTkxLjggOTkuNmwtMi43IDEuMmMtNTcuOCAyNS40LTEzNy42IDQxLTIyNS41IDQxLTc2LjIgMC0xNTUuMS0xMC41LTIyNS41LTQxLTM5LjYtMTcuNC05NC41LTUwLjMtOTQuNS0xMDAuOHM1NC45LTgzLjUgOTQuNS0xMDAuOGM3MC40LTMwLjUgMTQ5LjMtNDEgMjI1LjUtNDF6bS04OC45IDIyOWMyMC4zIDI5IDUyLjggNDkuNiA4OC45IDQ5LjYgMzYuMiAwIDY4LjctMjAuNiA4OS00OS43bC0xNzcuOSAuMXptLTk2LjEgMGM0My4zIDI5LjcgOTYuNyA0My41IDE0OC40IDQ4LTI0LjItOS4xLTQ0LjQtMjYuNy01OC42LTQ4LjFsLTg5LjkgMHptMjgwLjMtLjFjLTE0LjIgMjEuNC0zNC40IDM5LjEtNTguNiA0OC4xIDUxLjgtNC41IDEwNS4zLTE4LjMgMTQ4LjYtNDguMmwtOTAgMHptLTMzNy40IC4xYzQ0LjEgMjMuMSA5My43IDM1LjQgMTQyLjcgNDIuNi0zMy40LTguNi02Ni41LTIxLjktOTQuNC00Mi42bC00OC4zIDB6bTQzNi4yLS4yYy0yNy45IDIwLjgtNjEuMSAzNC4yLTk0LjYgNDIuOCA0Ny4zLTYuOSA4OS42LTE4LjUgMTIzLjktMzMuNmwxLjctLjhjNi4xLTIuNyAxMS45LTUuNSAxNy40LTguNGwtNDguNSAwek01MjAgMTczLjZjMTAuNyA4LjcgMTkuOCAxOC4xIDI3IDI4LjIgLjQgLjYgLjUgMS4zIC4xIDJzLTEgMS0xLjcgMWwtMS42IDBjLS42IDAtMS4yLS4zLTEuNS0uOC03LjktMTAuOS0xOC4yLTIxLjEtMzAuNi0zMC40bC05My41IDBjNS40IDguOCA5LjkgMTguNSAxMy40IDI4LjYgLjIgLjYgLjEgMS4yLS4yIDEuN3MtLjkgLjgtMS42IC44bC0xLjQgMGMtLjggMC0xLjUtLjUtMS44LTEuMy0zLjgtMTAuNy04LjctMjAuOC0xNC41LTI5LjlsLTE4NC4zIC4xYy01LjggOS4xLTEwLjcgMTkuMS0xNC40IDI5LjgtLjMgLjgtMSAxLjMtMS44IDEuM2wtMS40IDBjLS42IDAtMS4yLS4zLTEuNi0uOHMtLjUtMS4xLS4yLTEuN2MzLjUtMTAuMiA4LTE5LjcgMTMuNC0yOC42bC05My42IDBjLTEyLjMgOS4zLTIyLjYgMTkuNC0zMC40IDMwLjMtLjQgLjUtLjkgLjgtMS41IC44bC0xLjYgMGMtLjcgMC0xLjQtLjQtMS43LTFzLS4zLTEuNCAuMS0yYzcuNi0xMC41IDE2LjctMTkuOSAyNi44LTI4bC01MSAwYy0yOC45IDE2LjYtNjIgNDMuMy02My41IDc5LjdsNDQuNyAwYy41IDAgMSAuMiAxLjMgLjZzLjYgLjggLjYgMS4zbDAgMS4zYzAgMS4xLS45IDEuOS0xLjkgMS45bC00NC43IDBDNi44IDI5NSA0MCAzMjEuNyA2OSAzMzguM2w1MC45IDBjLTEwLjMtOC40LTE5LjEtMTcuNC0yNi4xLTI3bC0uOC0xLjFjLS40LS42LS41LTEuMy0uMS0yczEtMSAxLjctMWwxLjYgMCAuMiAwYy41IC4xIDEgLjMgMS4zIC44IDcuOSAxMC45IDE4LjEgMjEgMzAuNSAzMC4zbDkzLjYgMGMtNS4zLTguOC05LjgtMTguNC0xMy40LTI4LjUtLjItLjYtLjEtMS4yIC4yLTEuN3MuOS0uOCAxLjYtLjhsMS40IDAgLjIgMGMuNyAuMSAxLjQgLjYgMS43IDEuMyAzLjggMTAuNyA4LjYgMjAuNyAxNC40IDI5LjhsMTg0LjUtLjFjNS44LTkuMSAxMC42LTE5LjEgMTQuNC0yOS43bC4xLS4xYy4zLS43IDEtMS4xIDEuNy0xLjFsMS40IDBjLjYgMCAxLjIgLjMgMS42IC44cy41IDEuMiAuMiAxLjdjLTMuNSAxMC4xLTggMTkuNy0xMy4zIDI4LjVsOTMuNyAwYzEyLjMtOS4zIDIyLjUtMTkuNCAzMC4zLTMwLjJsLjEtLjJjLjQtLjQgLjktLjYgMS40LS42bDEuNiAwYy43IDAgMS40IC40IDEuNyAxcy4zIDEuNC0uMSAyYy03LjEgMTAtMTYuMSAxOS4zLTI2LjcgMjcuOWw1MS4xIDBjMjguOC0xNi42IDYxLjgtNDMuMyA2My40LTc5LjZsLTQ0LjcgMGMtMSAwLTEuOS0uOS0xLjktMS45bDAtMS4zYzAtMS4xIC45LTEuOSAxLjktMS45bDQ0LjcgMGMtMS42LTM2LjUtMzQuOS02My4zLTYzLjktNzkuOWwtNTAuOSAwek0yMjAuNSAxMjYuMmMtNDkuMSA3LjEtOTguNyAxOS41LTE0MyA0Mi43bDQ4LjQgMGMyNy45LTIwLjggNjEtMzQuMSA5NC41LTQyLjd6bTYyLjgtNS40Yy01MS44IDQuNS0xMDUuMiAxOC4zLTE0OC42IDQ4LjFsOTAgMGMxNC4yLTIxLjQgMzQuNC0zOSA1OC42LTQ4LjF6bTM2LjYtMS42Yy0zNi4yIDAtNjguNyAyMC42LTg5IDQ5LjdsMTc3LjktLjFjLTIwLjMtMjkuMS01Mi43LTQ5LjYtODguOS00OS42em0zNi42IDEuNmMyNC4yIDkuMSA0NC40IDI2LjYgNTguNSA0OGw4OS44IDBjLTQzLjMtMjkuNy05Ni42LTQzLjUtMTQ4LjMtNDh6bTYyLjggNS40YzMzLjQgOC41IDY2LjQgMjEuOSA5NC4zIDQyLjVsNDguMyAwYy00NC4xLTIzLjEtOTMuNi0zNS40LTE0Mi42LTQyLjV6Il19LFhtZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJudXRyaXRpb25peCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkNiIsIk0xMTIgOC4xUzI0NS40LS4xIDIzMyAxMTIuNWMwIDAgMTkuMS03NC45IDEwMy00MC42IDAgMC0xNy43IDc0LTg4IDU2IDAgMCAxNC42LTU0LjYgNjYuMS01Ni42IDAgMC0zOS45LTEwLjMtODIuMSA0OC44IDAgMC0xOS44LTk0LjUtOTMuNi05OS43IDAgMCA3NS4yIDE5LjQgNzcuNiAxMDcuNSAwIC4xLTEwNi40IDctMTA0LTExOS44ek00MjQgMzIzLjdjMCA0OC41LTkuNyA5NS4zLTMyIDEzMi4zLTQyLjIgMzAuOS0xMDUgNDgtMTY4IDQ4LTYyLjkgMC0xMjUuOC0xNy4xLTE2OC00OC0yMi4zLTM3LTMyLTgzLjgtMzItMTMyLjMgMC00OC40IDE3LjctOTQuNyA0MC0xMzEuNyA0Mi4yLTMwLjkgOTcuMS00OC42IDE2MC00OC42IDYzIDAgMTE3LjggMTcuNiAxNjAgNDguNiAyMi4zIDM3IDQwIDgzLjMgNDAgMTMxLjd6TTE0NCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0yMTYgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMjg4IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTM2MCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0zODQgMjU2Yy00LjgtMjIuMy03LjQtMzYuOS0xNi01Ni0zOC44LTE5LjktOTAuNS0zMi0xNDQtMzJTMTE4LjggMTgwLjEgODAgMjAwYy04LjggMTkuNS0xMS4yIDMzLjktMTYgNTYgNDIuMi03LjkgOTguNy0xNC44IDE2MC0xNC44czExNy44IDYuOSAxNjAgMTQuOHoiXX0sS21lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMSIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwNyAyMDUuNmMtNC43IDAtOSAyLjgtMTAuNyA3LjJsLTQgOS41LTExLTkyLjhjLTEuNy0xMy45LTIyLTEzLjQtMjMuMSAuNGwtNC4zIDUxLjQtNS4yLTY4LjhjLTEuMS0xNC4zLTIyLjEtMTQuMi0yMy4yIDBsLTMuNSA0NC45LTUuOS05NC4zYy0uOS0xNC41LTIyLjMtMTQuNC0yMy4yIDBsLTUuMSA4My43LTQuMy02Ni4zYy0uOS0xNC40LTIyLjItMTQuNC0yMy4yIDBsLTUuMyA4MC4yLTQuMS01N2MtMS4xLTE0LjMtMjItMTQuMy0yMy4yLS4ybC03LjcgODkuOC0xLjgtMTIuMmMtMS43LTExLjQtMTcuMS0xMy42LTIyLTMuM2wtMTMuMiAyNy43LTQzLjkgMCAwIDIzLjIgNTEuMyAwYzQuNCAwIDguNC0yLjUgMTAuNC02LjRsMTAuNyA3My4xYzIgMTMuNSAyMS45IDEzIDIzLjEtLjdsMy44LTQzLjYgNS43IDc4LjNjMS4xIDE0LjQgMjIuMyAxNC4yIDIzLjItLjFsNC42LTcwLjQgNC44IDczLjNjLjkgMTQuNCAyMi4zIDE0LjQgMjMuMi0uMWw0LjktODAuNSA0LjUgNzEuOGMuOSAxNC4zIDIyLjEgMTQuNSAyMy4yIC4ybDQuNi01OC42IDQuOSA2NC40YzEuMSAxNC4zIDIyIDE0LjIgMjMuMSAuMWw2LjgtODMgMi43IDIyLjNjMS40IDExLjggMTcuNyAxNC4xIDIyLjMgMy4xbDE4LTQzLjQgNTAuNSAwIDAtMjMuMi01OC40IC4zem0tNzggNS4ybC0yMS45IDAgMCAyMS45YzAgNC4xLTMuMyA3LjUtNy41IDcuNS00LjEgMC03LjUtMy4zLTcuNS03LjVsMC0yMS45LTIxLjkgMGMtNC4xIDAtNy41LTMuMy03LjUtNy41IDAtNC4xIDMuNC03LjUgNy41LTcuNWwyMS45IDAgMC0yMS45YzAtNC4xIDMuNC03LjUgNy41LTcuNXM3LjUgMy4zIDcuNSA3LjVsMCAyMS45IDIxLjkgMGM0LjEgMCA3LjUgMy4zIDcuNSA3LjUgMCA0LjEtMy40IDcuNS03LjUgNy41eiJdfSxRbWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkaGF0IixpY29uOls1MTIsNTEyLFtdLCJmN2JjIiwiTTM0MS41IDI4NS42YzMzLjcgMCA4Mi4zLTYuOSA4Mi4zLTQ3IC4yLTYuNyAuOS0xLjgtMjAuOS05Ni4yLTQuNi0xOS4xLTguNy0yNy44LTQyLjMtNDQuNi0yNi4xLTEzLjMtODIuOS0zNS40LTk5LjctMzUuNC0xNS43IDAtMjAuMiAyMC4yLTM4LjkgMjAuMi0xOCAwLTMxLjMtMTUuMS00OC4xLTE1LjEtMTYuMSAwLTI2LjcgMTEtMzQuOCAzMy42LTI3LjUgNzcuNi0yNi4zIDc0LjMtMjYuMSA3OC4zIDAgMjQuOCA5Ny42IDEwNi4xIDIyOC41IDEwNi4xek00MjkgMjU0LjhjNC43IDIyIDQuNyAyNC4zIDQuNyAyNy4yIDAgMzcuNy00Mi4zIDU4LjYtOTggNTguNi0xMjUuNyAuMS0yMzUuOS03My42LTIzNS45LTEyMi4zIDAtNi44IDEuNC0xMy41IDQuMS0xOS43LTQ1LjIgMi4zLTEwMy44IDEwLjMtMTAzLjggNjIgMCA4NC43IDIwMC42IDE4OSAzNTkuNSAxODkgMTIxLjggMCAxNTIuNS01NS4xIDE1Mi41LTk4LjYgMC0zNC4yLTI5LjYtNzMtODIuOS05Ni4yeiJdfSxQRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtcGllZC1waXBlciIsaWNvbjpbNDQ4LDUxMixbInBpZWQtcGlwZXItc3F1YXJlIl0sImUwMWUiLCJNMzIuMSA0MTlsLTMyIDYwLjIgLjgtMzI4Qy45IDg1LjMgNTQuMSAzMiAxMjAuMSAzMmwzMjcuMiAwQzM1NC4zIDYwLjkgMjU3LjQgMTI2LjIgMTkzLjQgMjAwLjYgMTIyLjggMjgyIDgyLjcgMzM4IDMyLjEgNDE5em00MTYtMzg3UzMwNS4zIDk4LjggMjYxLjcgMTk5LjFjLTIzLjIgNTMuNi0yOC45IDExOC4xLTcxIDE1OC42LTI4LjkgMjcuOC02OS44IDM4LjItMTA1LjMgNTYuMy0yMy4yIDEyLTY2LjQgNDAuNS04NC45IDY2bDMyOC40IDBjNjYgMCAxMTkuMy01My4zIDExOS4zLTExOS4yLS4xIDAtLjEtMzI4LjgtLjEtMzI4Ljh6Il19LEptZT1QRSxlZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2hhdHNhcHAiLGljb246WzQ0OCw1MTIsW10sImYyMzIiLCJNMzgwLjkgOTcuMWMtNDEuOS00Mi05Ny43LTY1LjEtMTU3LTY1LjEtMTIyLjQgMC0yMjIgOTkuNi0yMjIgMjIyIDAgMzkuMSAxMC4yIDc3LjMgMjkuNiAxMTFMMCA0ODAgMTE3LjcgNDQ5LjFjMzIuNCAxNy43IDY4LjkgMjcgMTA2LjEgMjdsLjEgMGMxMjIuMyAwIDIyNC4xLTk5LjYgMjI0LjEtMjIyIDAtNTkuMy0yNS4yLTExNS02Ny4xLTE1N3ptLTE1NyAzNDEuNmMtMzMuMiAwLTY1LjctOC45LTk0LTI1LjdsLTYuNy00LTY5LjggMTguMyAxOC42LTY4LjEtNC40LTdjLTE4LjUtMjkuNC0yOC4yLTYzLjMtMjguMi05OC4yIDAtMTAxLjcgODIuOC0xODQuNSAxODQuNi0xODQuNSA0OS4zIDAgOTUuNiAxOS4yIDEzMC40IDU0LjFzNTYuMiA4MS4yIDU2LjEgMTMwLjVjMCAxMDEuOC04NC45IDE4NC42LTE4Ni42IDE4NC42ek0zMjUuMSAzMDAuNWMtNS41LTIuOC0zMi44LTE2LjItMzcuOS0xOC01LjEtMS45LTguOC0yLjgtMTIuNSAyLjhzLTE0LjMgMTgtMTcuNiAyMS44Yy0zLjIgMy43LTYuNSA0LjItMTIgMS40LTMyLjYtMTYuMy01NC0yOS4xLTc1LjUtNjYtNS43LTkuOCA1LjctOS4xIDE2LjMtMzAuMyAxLjgtMy43IC45LTYuOS0uNS05LjdzLTEyLjUtMzAuMS0xNy4xLTQxLjJjLTQuNS0xMC44LTkuMS05LjMtMTIuNS05LjUtMy4yLS4yLTYuOS0uMi0xMC42LS4ycy05LjcgMS40LTE0LjggNi45Yy01LjEgNS42LTE5LjQgMTktMTkuNCA0Ni4zczE5LjkgNTMuNyAyMi42IDU3LjRjMi44IDMuNyAzOS4xIDU5LjcgOTQuOCA4My44IDM1LjIgMTUuMiA0OSAxNi41IDY2LjYgMTMuOSAxMC43LTEuNiAzMi44LTEzLjQgMzcuNC0yNi40czQuNi0yNC4xIDMuMi0yNi40Yy0xLjMtMi41LTUtMy45LTEwLjUtNi42eiJdfSx0Z2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW1kYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjJkOCIsIk04OS41IDMyMy42bC0zNS42IDAgMC0xMzcuNCAzNS42IDAgMCAxMzcuNHptNjYuNi03My4xbDkuMS02NC4zIDQ2LjMgMCAwIDEzNy40LTMxIDAgMC05Mi43LTEzLjQgOTIuNy0yMS4zIDAtMTMtOTAuNy0uMSA5MC43LTMxLjIgMCAwLTEzNy40IDQ2LjEgMGMuNSA4LjMgMi44IDE4LjEgNC4zIDI5LjRsNC4yIDM0Ljl6bTY3LjYgNzMuMWwwLTEzNy40IDI2LjYgMGMxNyAwIDI3IC45IDMzIDIuNCA2LjEgMS43IDEwLjcgNC4yIDEzLjkgNy45IDMuMSAzLjMgNS4xIDYuNiA1LjggMTIgLjkgNC40IDEuNCAxMy4xIDEuNCAyNi4ybDAgNDguMmMwIDEyLjMtLjcgMjAuNS0xLjkgMjQuNy0xLjEgNC4xLTMuMSA3LjQtNiA5LjctMi44IDIuNC02LjQgNC4xLTEwLjcgNS00LjIgLjgtMTAuNiAxLjMtMTkuMSAxLjNsLTQzIDB6bTM1LjUtMTEzLjlsMCA4OS40YzUuMSAwIDguMy0xIDkuNC0yLjMgMS4xLTIgMS44LTcuNiAxLjgtMTYuN2wwLTUzLjNjMC02LjItLjEtMTAuMi0uNy0xMi0uMy0xLjgtMS4yLTMtMi42LTQuNy0xLjQgMC00LjEtLjQtNy45LS40em01Ny4zIDExMy45bDAtMTM3LjQgMzQuMSAwIDAgNDMuOWMyLjktMi40IDYuMS00LjkgOS41LTYuNiAzLjYtMS41IDguOC0yLjQgMTIuOC0yLjQgNC44IDAgOC45IC44IDEyLjMgMi4yIDMuNCAxLjUgNiAzLjUgOCA2LjIgMS43IDIuNiAyLjcgNS4zIDMuMSA3LjggLjQgMi42LS4yIDgtLjIgMTYuMmwwIDM4LjZjMCA4LjIgLjIgMTQuMy0uOCAxOC40LTEuMSA0LTMuOCA3LjYtNy44IDkuNi00LjEgMy45LTguOSA1LjMtMTQuNiA1LjMtNCAwLTkuMi0uOS0xMi43LTIuNS0zLjUtMS44LTYuNy00LjUtOS42LThsLTIuMSA4LjctMzIgMHptNDUuMS0yMC43Yy43LTEuOCAxLTYgMS0xMi41bDAtMzUuNGMwLTUuNi0uMy05LjUtMS4xLTExLjItLjctMS45LTMuNy0yLjctNS44LTIuNy0yIDAtMy40IC44LTQuMSAyLjMtLjYgMS41LTEgNS40LTEgMTEuNmwwIDM2LjRjMCA2LjEgLjQgMTAgMS4yIDExLjYgLjYgMS43IDIuMSAyLjUgNC4xIDIuNSAyLjIgMCA0LjItLjggNS43LTIuNnpNNDE4LjQgMzJjMTUuNyAxLjIgMjguNyAxNS4yIDI4LjcgMzEuOWwwIDM4NC4yYzAgMTYuNC0xMS45IDMwLjQtMjguMiAzMS0uMyAwLS41IC45LS44IC45TDI5LjkgNDgwYy0uMyAwLS42LS45LS44LS4xLTE1LjctMS40LTI3LjktMTMuOC0yOS0zMC4yTDAgNjEuOEMxLjEgNDUuOSAxMy44IDMzLjEgMzAuMyAzMS4xbDM4Ny40IDBjLjIgMCAuNSAuOSAuNyAuOXpNMzAuMyA0MS4zQzE5IDQyIDEwIDUxIDkuMyA2Mi40bDAgMzg3LjNjLjQgNS40IDIuNyAxMC41IDYuNCAxNC4zIDMuOCAzLjkgOC44IDYuMyAxNC4yIDYuN2wzODguMiAwYzExLjUtMSAyMC42LTExLjYgMjAuNi0yMi42bDAtMzg0LjJjMC01LjctMi4xLTExLjMtNi0xNS41cy05LjMtNi44LTE1LTcuMmwtMzg3LjQgMHoiXX0sYWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InB5dGhvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlMiIsIk00MzkuOCAyMDAuNWMtNy43LTMwLjktMjIuMy01NC4yLTUzLjQtNTQuMmwtNDAuMSAwIDAgNDcuNGMwIDM2LjgtMzEuMiA2Ny44LTY2LjggNjcuOGwtMTA2LjggMGMtMjkuMiAwLTUzLjQgMjUtNTMuNCA1NC4zbDAgMTAxLjhjMCAyOSAyNS4yIDQ2IDUzLjQgNTQuMyAzMy44IDkuOSA2Ni4zIDExLjcgMTA2LjggMCAyNi45LTcuOCA1My40LTIzLjUgNTMuNC01NC4zbDAtNDAuNy0xMDYuNyAwIDAtMTMuNiAxNjAuMiAwYzMxLjEgMCA0Mi42LTIxLjcgNTMuNC01NC4yIDExLjItMzMuNSAxMC43LTY1LjcgMC0xMDguNnpNMjg2LjIgNDQ0LjdhMjAuNCAyMC40IDAgMSAxIDAtNDAuNyAyMC40IDIwLjQgMCAxIDEgMCA0MC43ek0xNjcuOCAyNDguMWwxMDYuOCAwYzI5LjcgMCA1My40LTI0LjUgNTMuNC01NC4zbDAtMTAxLjljMC0yOS0yNC40LTUwLjctNTMuNC01NS42LTM1LjgtNS45LTc0LjctNS42LTEwNi44IC4xLTQ1LjIgOC01My40IDI0LjctNTMuNCA1NS42bDAgNDAuNyAxMDYuOSAwIDAgMTMuNi0xNDcgMGMtMzEuMSAwLTU4LjMgMTguNy02Ni44IDU0LjItOS44IDQwLjctMTAuMiA2Ni4xIDAgMTA4LjYgNy42IDMxLjYgMjUuNyA1NC4yIDU2LjggNTQuMmwzNi43IDAgMC00OC44YzAtMzUuMyAzMC41LTY2LjQgNjYuOC02Ni40ek0xNjEuMiA2NC43YTIwLjQgMjAuNCAwIDEgMSAwIDQwLjggMjAuNCAyMC40IDAgMSAxIDAtNDAuOHoiXX0saWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNhc2gtYXBwIixpY29uOls0NDgsNTEyLFtdLCJlN2Q0IiwiTTQ0MC4zIDk2LjljLTkuNC0yNi41LTMwLjMtNDcuNC01Ni44LTU3LTI0LjEtNy45LTQ2LjMtNy45LTkxLjYtNy45TDE1NiAzMmMtNDQuOCAwLTY3LjIgMC05MS4zIDcuNS0yNi41IDkuNi00Ny40IDMwLjUtNTcgNTctNy43IDI0LjMtNy43IDQ2LjctNy43IDkxLjdMMCAzMjMuOGMwIDQ1LjIgMCA2Ny40IDcuNSA5MS41IDkuNiAyNi41IDMwLjUgNDcuNCA1NyA1NyAyNC4zIDcuNyA0Ni43IDcuNyA5MS42IDcuN2wxMzUuNyAwYzQ1IDAgNjcuNCAwIDkxLjYtNy43IDI2LjUtOS42IDQ3LjQtMzAuNSA1Ny01NyA3LjctMjQuMyA3LjctNDYuNyA3LjctOTEuNWwwLTEzNS41YzAtNDUgMC02Ny40LTcuNy05MS41ek0zMjMuMSAxODUuNGwtMjUuOCAyMS4xYy0yLjMgMS45LTUuNSAxLjUtNy4zLS45LTEzLjItMTYuMi0zMy43LTI1LjQtNTYuMS0yNS40LTI1IDAtNDAuNiAxMC45LTQwLjYgMjYuMi0uNCAxMi44IDExLjcgMTkuNiA0OS4xIDI3LjcgNDcuMiAxMCA2OC43IDI5LjcgNjguNyA2Mi43IDAgNDEuNC0zMy43IDcxLjktODYuNCA3NS4zbC01LjEgMjQuNWMtLjQgMi4zLTIuNiA0LjEtNS4xIDQuMWwtNDAuNiAwYy0zLjQgMC01LjgtMy4yLTUuMS02LjRsNi40LTI3LjNjLTI2LTcuNS00Ny4yLTIyLTU5LjMtMzkuNy0xLjUtMi4zLTEuMS01LjMgMS4xLTdsMjguMi0yMmMyLjMtMS45IDUuOC0xLjMgNy41IDEuMSAxNC45IDIwLjkgMzggMzMuMyA2NS43IDMzLjMgMjUgMCA0My44LTEyLjIgNDMuOC0yOS43IDAtMTMuNC05LjQtMTkuNi00MS4yLTI2LjItNTQuMi0xMS43LTc1LjgtMzEuOC03NS44LTY0LjkgMC0zOC40IDMyLjItNjcuMiA4MC45LTcxbDUuMy0yNS40Yy40LTIuMyAyLjYtNC4xIDUuMS00LjFsMzkuOSAwYzMuMiAwIDUuOCAzIDUuMSA2LjJsLTYuMiAyOC40YzIwLjkgNi40IDM4IDE3LjkgNDguNyAzMi4yIDEuNyAyLjEgMS4zIDUuMy0uOSA3eiJdfSxyZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGludGVyZXN0LXAiLGljb246WzM4NCw1MTIsW10sImYyMzEiLCJNMjA0IDYuNWMtMTAyLjYgMC0yMDQgNjguNC0yMDQgMTc5LjEgMCA3MC40IDM5LjYgMTEwLjQgNjMuNiAxMTAuNCA5LjkgMCAxNS42LTI3LjYgMTUuNi0zNS40IDAtOS4zLTIzLjctMjkuMS0yMy43LTY3LjggMC04MC40IDYxLjItMTM3LjQgMTQwLjQtMTM3LjQgNjguMSAwIDExOC41IDM4LjcgMTE4LjUgMTA5LjggMCA1My4xLTIxLjMgMTUyLjctOTAuMyAxNTIuNy0yNC45IDAtNDYuMi0xOC00Ni4yLTQzLjggMC0zNy44IDI2LjQtNzQuNCAyNi40LTExMy40IDAtNjYuMi05My45LTU0LjItOTMuOSAyNS44IDAgMTYuOCAyLjEgMzUuNCA5LjYgNTAuNy0xMy44IDU5LjQtNDIgMTQ3LjktNDIgMjA5LjEgMCAxOC45IDIuNyAzNy41IDQuNSA1Ni40IDMuNCAzLjggMS43IDMuNCA2LjkgMS41IDUwLjQtNjkgNDguNi04Mi41IDcxLjQtMTcyLjggMTIuMyAyMy40IDQ0LjEgMzYgNjkuMyAzNiAxMDYuMiAwIDE1My45LTEwMy41IDE1My45LTE5Ni44IDAtOTkuMy04NS44LTE2NC4xLTE4MC0xNjQuMXoiXX0sc2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndobWNzIixpY29uOls0NDgsNTEyLFtdLCJmNDBkIiwiTTQ0OCAxNjFsMC0yMS4zLTI4LjUtOC44LTIuMi0xMC40IDIwLjEtMjAuNy0xMC40LTE5LjQtMjkgNy41LTcuMi03LjUgNy41LTI4LjItMTkuMS0xMS42LTIxLjMgMjEtMTAuNy0zLjItNy0yNi40LTIyLjYgMC02LjIgMjYuNC0xMi4xIDMuMi0xOS43LTIxLTE5LjQgMTEgOC4xIDI3LjctOC4xIDguNC0yOC41LTcuNS0xMSAxOS4xIDIwLjcgMjEtMi45IDEwLjQtMjguNSA3LjgtLjMgMjEuNyAyOC44IDcuNSAyLjQgMTIuMS0yMC4xIDE5LjkgMTAuNCAxOC41IDI5LjYtNy41IDcuMiA4LjYtOC4xIDI2LjkgMTkuOSAxMS42IDE5LjQtMjAuNCAxMS42IDIuOSA2LjcgMjguNSAyMi42IC4zIDYuNy0yOC44IDExLjYtMy41IDIwLjcgMjEuNiAyMC40LTEyLjEtOC44LTI4IDcuOC04LjEgMjguOCA4LjggMTAuMy0yMC4xLTIwLjktMTguOCAyLjItMTIuMSAyOS4xLTd6TTMyOC44IDkyLjZhNTYuOCA1Ni44IDAgMSAxIDAgMTEzLjYgNTYuOCA1Ni44IDAgMSAxIDAtMTEzLjZ6bTcyLjMgMTMwbDQ2LjkgMTQuNSAwIDM5LjktNTUuMSAxMy40LTQuMSAyMi43IDM4LjkgMzUuMy0xOS4yIDM3LjktNTQtMTYuNy0xNC42IDE1LjIgMTYuNyA1Mi41LTM4LjMgMjIuNy0zOC45LTQwLjUtMjEuNyA2LjYtMTIuNiA1NC00Mi40LS41LTEyLjYtNTMuNi0yMS43LTUuNi0zNi40IDM4LjQtMzcuNC0yMS43IDE1LjItNTAuNS0xMy43LTE2LjEtNTUuNSAxNC4xLTE5LjctMzQuOCAzNy45LTM3LjQtNC44LTIyLjgtNTQtMTQuMSAuNS00MC45IDUzLjUtMTQuNyA1LjctMTkuNy0zOC45LTM5LjQgMjAuNy0zNS44IDUzLjYgMTQuMSAxNS4yLTE1LjctMTUuMi01MiAzNi40LTIwLjcgMzYuOCAzOS40IDIyLjctNi4xIDExLjYtNTIgNDIuNCAwIDExLjYgNDUuOS0yMi42LTUuOS02LjMtMS43LTMuMyA1LjctMTEgMTkuMS0zLjMgNS42IDQuNiA0LjYgMTcuMiAxNy40LS4zIDEtMjMuOCA2LjUtNi4yIDEuN2MwIDMuMi0uMSA5LjYtLjMgMTkuMy00Ny41IDEwLjQtODMuMyA1Mi44LTgzLjMgMTAzLjUgMCA1OC4zIDQ3LjMgMTA1LjcgMTA1LjcgMTA1LjcgNTAuNSAwIDkyLjctMzUuNCAxMDMuMi04Mi44IDkuOSAuMSAxNi42IC4yIDIwLjEgLjNsMS42LTYuNyA1LjYtMjQgMS45LS42IDE3LjEgMTcuOCA0LjcgNC45IDUuOC0zLjQgMjAuNC0xMi4xIDUuOC0zLjUtMi02LjUtNi44LTIxLjJ6Il19LG5nZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqb2dldCIsaWNvbjpbNTEyLDUxMixbXSwiZjNiNyIsIk0zODYuMSA0NUMzNDUuNiAxOS45IDMwMC42IDggMjU2LjIgOCAxNzMgOCA5MS44IDQ5LjkgNDQuOSAxMjUuOS0yNyAyNDIuNSA5LjMgMzk1LjIgMTI1LjkgNDY3LjFzMjY5LjMgMzUuNiAzNDEuMi04MC45QzUzOSAyNjkuNiA1MDIuNyAxMTYuOCAzODYuMSA0NXptNTEuOCAzMjMuMmMtNDAuNCA2NS41LTExMC40IDEwMS41LTE4MiAxMDEuNS02LjggMC0xMy42LS40LTIwLjQtMS05LTEzLjYtMTkuOS0zMy4zLTIzLjctNDIuNC01LjctMTMuNy0yNy4yLTQ1LjYgMzEuMi02Ny4xIDUxLjctMTkuMSAxNzYuNy0xNi41IDIwOC44LTE3LjYtNCA5LTguNiAxNy45LTEzLjkgMjYuNnpNMjM3LjEgMjgxLjljLTU1LjUtMS40LTgxLjctMjAuOC01OC41LTQ4LjJzNTEuMS00MC43IDY4LjktNTEuMmMxNy45LTEwLjUgMjcuMy0zMy43LTIzLjYtMjkuNy0xMjguNiA4LjctMTY3LjMgOTkuMy0xNzguMyAxNDAuMi04LjgtNDkuNy0uMS0xMDIuNyAyOC41LTE0OS4xIDYxLjktMTAwLjUgMTkzLjUtMTMxLjcgMjk0LTY5LjggNzQuOCA0Ni4xIDExMS4yIDEzMC45IDk5LjMgMjEyLjctMjQuOS0uNS0xNzkuMy0zLjYtMjMwLjMtNC45em0xODMuOC01NC44Yy0yMi43LTYtNTcgMTEuMy04Ni43IDI3LjItMjkuNyAxNS44LTMxLjEgOC4yLTMxLjEgOC4yczQwLjItMjguMSA1MC43LTM0LjUgMzEuOS0xNCAxMy40LTI0LjZjLTMuMi0xLjgtNi43LTIuNy0xMC40LTIuNy0xNy44IDAtNDEuNSAxOC43LTY3LjUgMzUuNi0zMS41IDIwLjUtNjUuMyAzMS4zLTY1LjMgMzEuM0wzOTMuNSAyNjYgNDQwIDI0Mi42czMuNi05LjUtMTkuMS0xNS41eiJdfSxJRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteW91dHViZSIsaWNvbjpbNDQ4LDUxMixbNjE3OTgsInlvdXR1YmUtc3F1YXJlIl0sImY0MzEiLCJNMjgyIDI1Ni4ybC05NS4yLTU0LjEgMCAxMDguMiA5NS4yLTU0LjF6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0em0xNC40IDEzNi4xYzcuNiAyOC42IDcuNiA4OC4yIDcuNiA4OC4yczAgNTkuNi03LjYgODguMWMtNC4yIDE1LjgtMTYuNSAyNy43LTMyLjIgMzEuOS0yOC4zIDcuNy0xNDIuMiA3LjctMTQyLjIgNy43cy0xMTMuOSAwLTE0Mi4yLTcuNmMtMTUuNy00LjItMjgtMTYuMS0zMi4yLTMxLjktNy42LTI4LjYtNy42LTg4LjItNy42LTg4LjJzMC01OS43IDcuNi04OC4yYzQuMi0xNS44IDE2LjUtMjguMiAzMi4yLTMyLjQgMjguMy03LjcgMTQyLjItNy43IDE0Mi4yLTcuN3MxMTMuOSAwIDE0Mi4yIDcuN2MxNS43IDQuMiAyOCAxNi42IDMyLjIgMzIuNHoiXX0sb2dlPUlFLGxnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdGxhc3NpYW4iLGljb246WzUxMiw1MTIsW10sImY3N2IiLCJNMTUyLjIgMjM2LjRjLTcuNy04LjItMTkuNy03LjctMjQuOCAyLjhMMS42IDQ5MC4yYy01IDEwIDIuNCAyMS43IDEzLjQgMjEuN2wxNzUgMGM1LjggLjEgMTEtMy4yIDEzLjQtOC40IDM3LjktNzcuOCAxNS4xLTE5Ni4zLTUxLjItMjY3LjF6TTI0NC40IDguMWMtMTIyLjMgMTkzLjQtOC41IDM0OC42IDY1IDQ5NS41IDIuNSA1LjEgNy43IDguNCAxMy40IDguNEw0OTcgNTEyYzExLjIgMCAxOC40LTExLjggMTMuNC0yMS43IDAgMC0yMzQuNS00NzAuNi0yNDAuNC00ODIuMy01LjMtMTAuNi0xOC44LTEwLjgtMjUuNiAuMXoiXX0sY2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpZWQtcGlwZXItaGF0IixpY29uOls2NDAsNTEyLFtdLCJmNGU1IiwiTTY0MCAyNC45Yy04MC44IDUzLjYtODkuNCA5Mi41LTk2LjQgMTA0LjQtNi43IDEyLjItMTEuNyA2MC4zLTIzLjMgODMuNi0xMS43IDIzLjYtNTQuMiA0Mi4yLTY2LjEgNTAtMTEuNyA3LjgtMjguMyAzOC4xLTQxLjkgNjQuMi0xMDguMS00LjQtMTY3LjQgMzguOC0yNTkuMiA5My42IDI5LjQtOS43IDQzLjMtMTYuNyA0My4zLTE2LjcgOTQuMi0zNiAxMzkuMy02OC4zIDI4MS4xLTQ5LjIgMS4xIDAgMS45IC42IDIuOCAuOCAzLjkgMi4yIDUuMyA2LjkgMy4xIDEwLjhsLTUzLjkgOTUuOGMtMi41IDQuNy03LjggNy4yLTEzLjEgNi4xLTEyNi44LTIzLjgtMjI2LjkgMTcuMy0zMTguOSAxOC42LTczLjQgMS4xLTk3LjUtMzMuNS05Ny41LTM1LjEgMC0xLjEgLjYtMS43IDEuNy0xLjcgMCAwIDM4LjMgMCAxMDMuMS0xNS4zIDczLjYtMTQwLjMgMTM5LjItMTg5LjQgMjEwLjYtMTg5LjQgMCAwIDcxLjcgMCA5MC42IDYxLjkgMjIuOC0zOS43IDI4LjMtNDkuMiAyOC4zLTQ5LjIgNS4zLTkuNCAzNS03Ny4yIDg2LjQtMTQxLjQgNTEuNS02NCA5MC40LTc5LjkgMTE5LjMtOTEuOHoiXX0sZGdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImludGVybmV0LWV4cGxvcmVyIixpY29uOls1MTIsNTEyLFtdLCJmMjZiIiwiTTQ4My4xIDE1OS43YzEwLjktMjQuNiAyMS40LTYwLjQgMjEuNC04Ny45IDAtNzIuNy03OS42LTk4LjQtMjA5LjctMzguNi0xMDcuNi03LjItMjExLjIgNzMuNy0yMzcuMSAxODYuNSAzMC45LTM0LjkgNzguMy04Mi4zIDEyMi0xMDEuMi01NC4zIDQ4LjMtMTAwLjYgMTA5LjQtMTM1LjcgMTczLjItMjAuNyAzNy45LTQ0IDk5LjItNDQgMTQ1IDAgOTguNiA5Mi45IDg2LjUgMTgwLjMgNDIgMzEuNCAxNS40IDY2LjYgMTUuNiAxMDEuNyAxNS42IDk3LjEgMCAxODQuMi01NC4zIDIxNi44LTE0NmwtMTIwLjggMGMtNTIuNSA4OC42LTE5Ni44IDUzLTE5Ni44LTQ3LjRsMzI4LjggMGM2LjQtNDMuNi0xLjctOTUuNy0yNi45LTE0MS4yek02NC42IDM0Ni45QzgyLjMgMzk4IDExOC4zIDQ0Mi43IDE2NC44IDQ3MC4yIDc2LjEgNTE5LjEtOC40IDQ5OS4zIDY0LjYgMzQ2Ljl6TTE4MC41IDIzOGMyLTU1LjIgNTAuMy05NC45IDEwNC05NC45IDUzLjQgMCAxMDIgMzkuNyAxMDQgOTQuOWwtMjA4IDB6TTM2NS4xIDUwLjRjMjEuNC0xMC4zIDQ4LjYtMjIgNzIuNi0yMiAzMS40IDAgNTQuMyAyMS43IDU0LjMgNTMuNyAwIDIwLTcuNCA0OS0xNC42IDY3LjktMjYuMy00Mi4zLTY2LTgxLjYtMTEyLjMtOTkuNnoiXX0scGdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFpcmJuYiIsaWNvbjpbNDQ4LDUxMixbXSwiZjgzNCIsIk0yMjQuNSAzNzMuMWMtMjUuMi0zMS43LTQwLjEtNTkuNC00NS04My4yLTIyLjUtODggMTEyLjYtODggOTAuMSAwLTUuNCAyNC4yLTIwLjMgNTItNDUgODMuMmwtLjEgMHptMTM4LjIgNzMuMmMtNDIuMSAxOC4zLTgzLjctMTAuOS0xMTkuMy01MC41IDEwMy45LTEzMC4xIDQ2LjEtMjAwLTE4LjgtMjAwLTU0LjkgMC04NS4yIDQ2LjUtNzMuMyAxMDAuNSA2LjkgMjkuMiAyNS4yIDYyLjQgNTQuNCA5OS41LTMyLjUgMzYtNjAuNSA1Mi43LTg1LjIgNTQuOS01MCA3LjQtODkuMS00MS4xLTcxLjMtOTEuMSAxNS4xLTM5LjIgMTExLjctMjMxLjIgMTE1LjktMjQxLjYgMTUuOC0zMC4xIDI1LjYtNTcuNCA1OS40LTU3LjQgMzIuMyAwIDQzLjQgMjUuOSA2MC40IDU5LjkgMzYgNzAuNiA4OS40IDE3Ny41IDExNC44IDIzOS4xIDEzLjIgMzMuMS0xLjQgNzEuMy0zNyA4Ni42em00Ny0xMzYuMWMtMTI4LjktMjc0LjMtMTM2LTI3OC4yLTE4NS4xLTI3OC4yLTQ1LjUgMC02NC45IDMxLjctODQuNyA3Mi44LTEwNi4yIDIxMi4zLTExNi40IDI0Mi40LTExNy4zIDI0NS0yNS4yIDY5LjMgMjYuNyAxMzAuMiA4OS42IDEzMC4yIDIxLjcgMCA2MC42LTYuMSAxMTIuNC02Mi40IDU4LjcgNjMuOCAxMDEuMyA2Mi40IDExMi40IDYyLjQgNjIuOSAuMSAxMTQuOS02MC45IDg5LjYtMTMwLjIgMC0zLjktMTYuOC0zOC45LTE2LjgtMzkuNmwwIDB6Il19LGhnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiOCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yNDMuOCAzODEuNGMwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNS0zMy43IDAtNTMuMi0xNy40LTYzLjItMzguNUwxNTIgMzg1LjdjNi42IDExLjcgMTIuNiAyMS42IDI3LjEgMjEuNiAxMy44IDAgMjIuNi01LjQgMjIuNi0yNi41bDAtMTQzLjEgNDIuMSAwIDAgMTQzLjd6bTk5LjYgNjMuNWMtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjZ6Il19LHVnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJxdWluc2NhcGUiLGljb246WzUxMiw1MTIsW10sImY0NTkiLCJNMzEzLjcgNDc0LjZsLTEgMGMtNDEuOSAwLTgyLjEtMTYuNy0xMTEuOC00Ni4zcy00Ni4zLTY5LjktNDYuMy0xMTEuOCAxNi43LTgyLjEgNDYuMy0xMTEuOCA2OS45LTQ2LjMgMTExLjgtNDYuM2M5NC45IDAgMTY4LjIgODMuMSAxNTcgMTc2LjYgNCA1LjEgOC4yIDkuNiAxMS4yIDE1LjMgMTMuNC0zMC4zIDIwLjMtNjIuNCAyMC4zLTk3LjcgMC0xMzUuMS0xMDkuNS0yNDQuNi0yNDQuNi0yNDQuNlMxMi4xIDExNy41IDEyLjEgMjUyLjYgMTIxLjYgNDk3LjIgMjU2LjYgNDk3LjJjMjMuOCAuMiA0Ny42LTMuMiA3MC40LTEwLjEtNS4yLTMuNS04LjktOC4xLTEzLjMtMTIuNXptNzguMy0xNjlhOTkuMiA5OS4yIDAgMSAwIDAgMTk4LjQgOTkuMiA5OS4yIDAgMSAwIDAtMTk4LjR6Il19LGZnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZHZlcnNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YSIsIk00ODIuMSAzMkwyOC43IDMyQzUuOCAzMiAwIDM3LjkgMCA2MC45TDAgNDUxLjFDMCA0NzQuNCA1LjggNDgwIDI4LjcgNDgwbDQ1My40IDBjMjQuNCAwIDI5LjktNS4yIDI5LjktMjkuN2wwLTM4OC4xYzAtMjQuNi01LjQtMzAuMi0yOS45LTMwLjJ6TTE3OC40IDIyMC4zYy0yNy41LTIwLjItNzIuMS04LjctODQuMiAyMy40LTQuMyAxMS4xLTkuMyA5LjUtMTcuNSA4LjMtOS43LTEuNS0xNy4yLTMuMi0yMi41LTUuNS0yOC44LTExLjQgOC42LTU1LjMgMjQuOS02NC4zIDQxLjEtMjEuNCA4My40LTIyLjIgMTI1LjMtNC44IDQwLjkgMTYuOCAzNC41IDU5LjIgMzQuNSAxMjguNSAyLjcgMjUuOC00LjMgNTguMyA5LjMgODguOCAxLjkgNC40IC40IDcuOS0yLjcgMTAuNy04LjQgNi43LTM5LjMgMi4yLTQ2LjYtNy40LTEuOS0yLjItMS44LTMuNi0zLjktNi4yLTMuNi0zLjktNy4zLTIuMi0xMS45IDEtNTcuNCAzNi40LTE0MC4zIDIxLjQtMTQ3LTQzLjMtMy4xLTI5LjMgMTIuNC01Ny4xIDM5LjYtNzEgMzguMi0xOS41IDExMi4yLTExLjggMTE0LTMwLjkgMS4xLTEwLjItMS45LTIwLjEtMTEuMy0yNy4zem0yODYuNyAyMjJjMCAxNS4xLTExLjEgOS45LTE3LjggOS45bC0zOTQuOSAwYy03LjQgMC0xOC4yIDQuOC0xNy44LTEwLjcgLjQtMTMuOSAxMC41LTkuMSAxNy4xLTkuMSAxMzIuMy0uNCAyNjQuNS0uNCAzOTYuOCAwIDYuOCAwIDE2LjYtNC40IDE2LjYgOS45em0zLjgtMzQwLjVsMCAyOTFjMCA1LjctLjcgMTMuOS04LjEgMTMuOS0xMi40LS40LTI3LjUgNy4xLTM2LjEtNS42LTUuOC04LjctNy44LTQtMTIuNC0xLjItNTMuNCAyOS43LTEyOC4xIDcuMS0xNDQuNC04NS4yLTYuMS0zMy40LS43LTY3LjEgMTUuNy0xMDAgMTEuOC0yMy45IDU2LjktNzYuMSAxMzYuMS0zMC41bDAtNzFjMC0yNi4yLS4xLTI2LjIgMjYtMjYuMiAzLjEgMCA2LjYgLjQgOS43IDAgMTAuMS0uOCAxMy42IDQuNCAxMy42IDE0LjMtLjEgLjItLjEgLjMtLjEgLjV6TTQxNy40IDMzNC4xYy0xOS41IDQ3LjYtNzIuOSA0My4zLTkwIDUuMi0xNS4xLTMzLjMtMTUuNS02OC4yIC40LTEwMS41IDE2LjMtMzQuMSA1OS43LTM1LjcgODEuNS00LjggMjAuNiAyOC44IDE0LjkgODQuNiA4LjEgMTAxLjF6TTEyMi42IDM2OS40Yy03LjUtMS4zLTMzLTMuMy0zMy43LTI3LjgtLjQtMTMuOSA3LjgtMjMgMTkuOC0yNS44IDI0LjQtNS45IDQ5LjMtOS45IDczLjctMTQuNyA4LjktMiA3LjQgNC40IDcuOCA5LjUgMS40IDMzLTI2LjEgNTkuMi02Ny42IDU4Ljh6Il19LG1nZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zIixpY29uOls1MTIsNTEyLFtdLCJmMjVlIiwiTTI1My44IDIxNC45bC0zMy4yIDE3LjNjLTkuNC0xOS42LTI1LjItMTkuOS0yNy41LTE5LjktMjIuMSAwLTMzLjIgMTQuNi0zMy4yIDQzLjggMCAyMy42IDkuMiA0My44IDMzLjIgNDMuOCAxNC41IDAgMjQuNi03LjEgMzAuNi0yMS4zbDMwLjYgMTUuNWMtNi4yIDExLjUtMjUuNyAzOS02NS4xIDM5LTIyLjYgMC03NC0xMC4zLTc0LTc3IDAtNTguNyA0My03Ny4xIDcyLjYtNzcuMSAzMC43IDAgNTIuNyAxMS45IDY2IDM1Ljl6bTE0MyAwbC0zMi44IDE3LjNjLTkuNS0xOS44LTI1LjctMTkuOS0yNy45LTE5LjktMjIuMSAwLTMzLjIgMTQuNi0zMy4yIDQzLjggMCAyMy41IDkuMiA0My44IDMzLjIgNDMuOCAxNC40IDAgMjQuNi03LjEgMzAuNS0yMS4zbDMxIDE1LjVjLTIuMSAzLjgtMjEuNCAzOS02NS4xIDM5LTIyLjcgMC03NC05LjktNzQtNzcgMC01OC43IDQzLTc3LjEgNzIuNi03Ny4xIDMwLjcgMCA1Mi42IDExLjkgNjUuNiAzNS45ek0yNTUuNiA4QzExMi43IDggOCAxMjMuMSA4IDI1Ni4xIDggMzk0LjUgMTIxLjYgNTA0LjEgMjU1LjYgNTA0LjEgMzg1LjUgNTA0LjEgNTA0IDQwMy4yIDUwNCAyNTYuMSA1MDQgMTE4LjIgMzk3LjQgOCAyNTUuNiA4em0uOSA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjQtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjUgMCAyMDIuOCA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNyAyMDIuOC0yMDIuOCAyMDIuOHoiXX0sZ2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5vdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTdkOSIsIk05NC45IDEwMC4yYzE0LjkgMTIuMSAyMC41IDExLjIgNDguNiA5LjNMNDA3LjggOTMuNmM1LjYgMCAuOS01LjYtLjktNi41TDM2Mi45IDU1LjRjLTguNC02LjUtMTkuNi0xNC00MS4xLTEyLjFMNjUuOSA2MS45Yy05LjMgLjktMTEuMiA1LjYtNy41IDkuM2wzNi40IDI4Ljl6bTE1LjkgNjEuNmwwIDI3OC4xYzAgMTQuOSA3LjUgMjAuNSAyNC4zIDE5LjZsMjkwLjUtMTYuOGMxNi44LS45IDE4LjctMTEuMiAxOC43LTIzLjNsMC0yNzYuMmMwLTEyLjEtNC43LTE4LjctMTUtMTcuN0wxMjUuNyAxNDMuMWMtMTEuMiAuOS0xNC45IDYuNS0xNC45IDE4Ljd6bTI4Ni43IDE0LjljMS45IDguNCAwIDE2LjgtOC40IDE3LjhsLTE0IDIuOCAwIDIwNS4zYy0xMi4yIDYuNS0yMy40IDEwLjMtMzIuNyAxMC4zLTE1IDAtMTguNy00LjctMjkuOS0xOC43bC05MS41LTE0My43IDAgMTM5IDI5IDYuNXMwIDE2LjgtMjMuNCAxNi44bC02NC40IDMuN2MtMS45LTMuNyAwLTEzLjEgNi41LTE0LjlsMTYuOC00LjcgMC0xODMuOC0yMy4zLTEuOWMtMS45LTguNCAyLjgtMjAuNSAxNS45LTIxLjVsNjkuMS00LjcgOTUuMyAxNDUuNiAwLTEyOC44LTI0LjMtMi44Yy0xLjktMTAuMyA1LjYtMTcuNyAxNC45LTE4LjdsNjQuNS0zLjh6TTQ0LjQgMzYuN0wzMTAuNiAxNy4xYzMyLjctMi44IDQxLjEtLjkgNjEuNiAxNGw4NSA1OS43YzE0IDEwLjMgMTguNyAxMy4xIDE4LjcgMjQuM2wwIDMyNy42YzAgMjAuNS03LjUgMzIuNy0zMy42IDM0LjVMMTMzLjIgNDk1LjhjLTE5LjYgLjktMjktMS45LTM5LjItMTQuOUwzMS40IDM5OS43Yy0xMS4yLTE0LjktMTUuOS0yNi4xLTE1LjktMzkuMmwwLTI5MS4yYzAtMTYuOCA3LjUtMzAuOCAyOC45LTMyLjd6Il19LGJnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjaHJvbWVjYXN0IixpY29uOls1MTIsNTEyLFtdLCJmODM4IiwiTTQ0OCA2NEw2NC4yIDY0Yy0yMy42IDAtNDIuNyAxOS4xLTQyLjcgNDIuN2wwIDYzLjkgNDIuNyAwIDAtNjMuOSAzODMuOCAwIDAgMjk4LjYtMTQ5LjIgMCAwIDQyLjcgMTQ5LjQgMGMyMy42IDAgNDIuNy0xOS4xIDQyLjctNDIuN2wwLTI5OC42QzQ5MC45IDgzLjEgNDcxLjYgNjQgNDQ4IDY0ek0yMS41IDM4My42bDAgNjMuOSA2My45IDBjMC0zNS4zLTI4LjYtNjMuOS02My45LTYzLjl6bTAtODVsMCA0Mi40YzU4LjkgMCAxMDYuNiA0OC4xIDEwNi42IDEwN2w0Mi43IDBjLjEtODIuNC02Ni45LTE0OS4zLTE0OS4zLTE0OS40ek0yMTMuNiA0NDhsNDIuNyAwQzI1NS44IDMxOC41IDE1MSAyMTMuNyAyMS41IDIxMy40bDAgNDIuNGMxMDYtLjIgMTkyIDg2LjIgMTkyLjEgMTkyLjJ6Il19LHZnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bHRyYWx5dGljcy1odWIiLGljb246WzUxMiw1MTIsW10sImU4NmUiLCJNMTMwLjQgMTZjNjAuOSAwIDExMC40IDQ5LjUgMTEwLjQgMTEwLjRsMCAyNC45YzQuOC0uNyA5LjctMSAxNC42LTEgODguMS0uMiAxNjUuMSA0OSAyMDUuNCAxMjEuMi0yMi44LTE2LjItNTAuNy0yNS40LTgwLjQtMjUuMy03Ny4xIC4yLTEzOS41IDYyLjYtMTM5LjYgMTM5LjQtLjEgNjAuOS00OS41IDExMC4zLTExMC43IDExMC41LTYwLjYgLjItMTEwLjItNDkuNS0xMTAuMi0xMTAuNSAuMi0yLjYgMCAwIC4xLTMuMmwwLTI1NkMyMC4xIDY1LjUgNjkuNSAxNiAxMzAuNCAxNnpNMzgwLjMgNDk2YTExMC40IDExMC40IDAgMSAxIDAtMjIwLjkgMTEwLjQgMTEwLjQgMCAxIDEgMCAyMjAuOXoiXX0seWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Indpa2lwZWRpYS13IixpY29uOls2NDAsNTEyLFtdLCJmMjY2IiwiTTY0MCA1MS4ybC0uMyAxMi4yYy0yOC4xIC44LTQ1IDE1LjgtNTUuOCA0MC4zLTI1IDU3LjgtMTAzLjMgMjQwLTE1NS4zIDM1OC42bC0xMy42IDAtODEuOS0xOTMuMWMtMzIuNSA2My42LTY4LjMgMTMwLTk5LjIgMTkzLjEtLjMgLjMtMTUgMC0xNS0uMy00Ni45LTEwOS43LTk2LjEtMjE4LjYtMTQzLjEtMzI4LjYtMTEuNC0yNi43LTQ5LjQtNzAtNzUuNi02OS43IDAtMy4xLS4zLTEwLS4zLTE0LjJsMTYxLjkgMCAwIDEzLjljLTE5LjIgMS4xLTUyLjggMTMuMy00My4zIDM0LjIgMjEuOSA0OS43IDEwMy42IDI0MC4zIDEyNS42IDI4OC42IDE1LTI5LjcgNTcuOC0xMDkuMiA3NS4zLTE0Mi44LTEzLjktMjguMy01OC42LTEzMy45LTcyLjgtMTYwLTkuNy0xNy44LTM2LjEtMTkuNC01NS44LTE5LjdsMC0xMy45IDE0Mi41IC4zIDAgMTMuMWMtMTkuNCAuNi0zOC4xIDcuOC0yOS40IDI2LjEgMTguOSA0MCAzMC42IDY4LjEgNDguMSAxMDQuNyA1LjYtMTAuOCAzNC43LTY5LjQgNDguMS0xMDAuOCA4LjktMjAuNi0zLjktMjguNi0zOC42LTI5LjQgLjMtMy42IDAtMTAuMyAuMy0xMy42IDQ0LjQtLjMgMTExLjEtLjMgMTIzLjEtLjZsMCAxMy42QzQ2Mi40IDY0IDQzOS4xIDc2IDQyNi44IDk0LjlMMzY3LjYgMjE3LjdjNi40IDE2LjEgNjMuMyAxNDIuOCA2OS4yIDE1Ni43TDU1OS4yIDkxLjhjLTguNi0yMy4xLTM2LjQtMjguMS00Ny4yLTI4LjNsMC0xMy45IDEyNy44IDEuMSAuMiAuNXoiXX0seGdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNpdHJveCIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ0YSIsIk0yMTIuNCAwbDAgMCAyMzUuNiAwIDAgMTI4LTM4NCAwQzY0IDU3LjYgMTQxLjggLjUgMjEyLjQgMHptMjQuOCAxOTJsMCAwYzY5LjkgLjUgMTQ2LjcgNTcuNiAxNDYuNyAxMjhsLTE3My4yIDAgMCAwQzE0MC45IDMxOS42IDY0IDI2Mi40IDY0IDE5MmwxNzMuMyAwem0tMS43IDMyMGM3MC43LS41IDE0OC40LTU3LjYgMTQ4LjQtMTI4bC0zODQgMCAwIDEyOCAyMzUuNiAwIDAgMHoiXX0sTkU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdpdGxhYiIsaWNvbjpbNDQ4LDUxMixbImdpdGxhYi1zcXVhcmUiXSwiZTVhZSIsIk0wIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZ6bTMzNy41IDEyLjVsNDQuNiAxMTYuNCAuNCAxLjJjNS42IDE2LjggNy4yIDM1LjIgMi4zIDUyLjUtNSAxNy4yLTE1LjQgMzIuNC0yOS44IDQzLjNsLS4yIC4xLTY4LjQgNTEuMi01NC4xIDQwLjljLS41IC4yLTEuMSAuNS0xLjcgLjgtMiAxLTQuNCAyLTYuNyAyLTMgMC02LjgtMS44LTguMy0yLjhsLTU0LjItNDAuOS02Ny45LTUwLjktLjQtLjMtLjItLjFjLTE0LjMtMTAuOC0yNC44LTI2LTI5LjctNDMuM3MtNC4yLTM1LjcgMi4yLTUyLjVsLjUtMS4yIDQ0LjctMTE2LjRjLjktMi4zIDIuNS00LjMgNC41LTUuNiAxLjYtMSAzLjQtMS42IDUuMi0xLjggMS4zLS43IDIuMS0uNCAzLjQgLjEgLjYgLjIgMS4yIC41IDIgLjcgMSAuNCAxLjYgLjkgMi40IDEuNSAuNiAuNCAxLjIgMSAyLjEgMS41IDEuMiAxLjQgMi4yIDMgMi43IDQuOGwyOS4yIDkyLjIgMTIyLjkgMCAzMC4yLTkyLjJjLjUtMS44IDEuNC0zLjQgMi42LTQuOHMyLjgtMi40IDQuNS0zLjFjMS43LS42IDMuNi0uOSA1LjQtLjdzMy42IC44IDUuMiAxLjhjMiAxLjMgMy43IDMuMyA0LjYgNS42eiJdfSx3Z2U9TkUsTWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNob2VsYWNlIixpY29uOls1MTIsNTEyLFtdLCJlNjBjIiwiTTQwNS4yIDMzMWMyLjItMS4xIDQuNC0yLjMgNi41LTMuN2w4LjMtNC44YzEuNS0xLjEgNC40LTMuNCA4LjctNi43bC41LS41YzMuNC0zLjQgNy4yLTUgMTEuMy00LjkgMS44IDAgMy45IC41IDYuNCAxLjVsMzEtMjcuNWMuOS0uNyAxLjctMS4zIDIuNi0xLjhsLjIgMGMzLjMtMS45IDYtMS44IDguMiAuNCAzLjkgMi4xIDQuMiA1LjYgLjkgMTAuNkw0NTcuMiAzMjJjLjIgLjUgLjQgMSAuNCAxLjUgLjUgMi4yIC4zIDQuNC0uNSA2LjYtLjcgMS41LTEuOCAyLjktMy4xIDQuMi0xLjQgMS40LTIuNyAyLjgtNC4yIDQuMkw0MzEgMzUyLjJjLTEuNyAxLjItMy40IDIuMy01LjEgMy4zLTIuMSAxLjMtNC4zIDIuNS02LjYgMy42LTEgLjQtMS45IC45LTIuOSAxLjMtNS45IDIuNS0xMS45IDQuMi0xOC4yIDUtMi45IDI0LjUtMTEuMyA0Ny4xLTI1LjEgNjcuOC0xNy41IDI1LjctNDEuNCA0NS40LTcxLjggNTguOC0zMC4yIDEzLjUtNjMgMjAuMi05OC4yIDIwLjItNDguNi0uNS04OC0xMS40LTExOC4yLTMyLjgtMzUuMS0yNS01Mi42LTU3LjktNTIuNi05OS4xbDAtNS42YzEuMi0yOC4xIDkuNS01NC42IDI0LjgtNzkuOCAxNS4xLTI0LjkgMzcuMS00MS43IDY2LjEtNTAuNSAxNC45LTQuNCAyOS45LTYuNiA0NS02LjYgMTUuNSAwIDMxLjYgMi45IDQ4LjEgOC42czM1LjIgMTUuNSA1NS45IDI5LjVsNTQuMSAzNi4zYzE1LjEgOS44IDI4LjggMTYuNSA0MS4yIDIwLTIuNi0yNS4xLTExLjctNDYuNi0yNy4zLTY0LjUtMTUuNy0xOC4xLTM1LjYtMzEuMy01OS45LTM5LjdMMjU3IDIyMGMtMjEuNC03LjUtMzcuMy0xNC45LTQ3LjctMjIuMi0yOC4yLTE5LjEtNDMuOC00NS4yLTQ3LTc4LjVsLS41LTkuOGMwLTMyLjEgMTMtNTguOSAzOS04MC41IDIzLTE5LjMgNTAuNi0yOSA4Mi41LTI5IDI0IDAgNDUuNiA2LjkgNjQuNyAyMC44IDE5LjIgMTQgMzAuMSAzMy44IDMyLjYgNTkuNGwuNSAxMGMwIDE4LjYtNC44IDM0LjUtMTQuNCA0Ny43LTkuOCAxMy4yLTE4LjUgMTkuOS0yNiAxOS45LTEuNi0uMS0zLjEtLjMtNC41LS42bC0zNCAzMmMtNS41IDMtOS4yIDIuNS0xMS4xLTEuNi0xLjktMi4yLTEuOC00LjkgLjUtOC4ybC4yLS4yYy41LS43IDEuMi0xLjUgMi0yLjRsMzEuNi0zMGMtLjQtMS41LS42LTMuMS0uNi00LjggMC00LjEgMS42LTcuNiA0LjktMTAuNCAxMy44LTEyLjQgMjAuOC0yNi43IDIwLjgtNDIuOCAwLTE2LTYuMS0yOS41LTE4LjItNDAuNHMtMjguNy0xNi41LTQ5LjctMTYuOGMtMjYuMiAwLTQ3LjggNy45LTY0LjcgMjMuN1MxOTIuNiA4OS45IDE5Mi42IDExMmMwIDE3LjggNi45IDMzLjkgMjAuNiA0OC4zIDEzLjYgMTQuMiAzNC42IDI1LjQgNjMgMzMuNSAzOS44IDExLjUgNzAuMiAzMSA5MS4zIDU4LjMgMTguNyAyNC4yIDI5LjEgNTEuMyAzMS4zIDgxLjQgMi4yLS43IDQuMy0xLjUgNi41LTIuNmwtLjEgLjF6TTI5NC40IDE3OC43YzAgMS4xIC42IDEuNiAxLjggMS42IC4xIDAgOS43LTguOSAyOC44LTI2LjYgMC0yLjQtNS4xIC45LTE1LjMgMTAtMTAuMiA5LjItMTUuMyAxNC4yLTE1LjMgMTQuOWwwIC4xem04IDYuNGMwLTEtLjUtMS41LTEuNS0xLjUtMS4xIDAtMi4xIC41LTIuOSAxLjYtMS45LS4xLTMuMyAuMS00LjIgLjctLjQgLjItLjUgLjUtLjUgLjcgMCAuNyAuNSAxLjMgMS41IDEuNmwzLjMgMGMyLjktMS4xIDQuNC0yLjIgNC40LTMuM2wtLjEgLjJ6TTMyNSAxNjUuMmMwLTIuOC0xLjYtMi44LTQuOSAwLTEuNiAxLjUtMy42IDMuNS02IDYuMi0uOCAuNi0yLjYgMi4yLTUuMyA0LjktMi44IDIuOS00LjIgNC43LTQuMiA1LjNsLjIgMS4zYy43IC4yIDEuMiAuNCAxLjUgLjQgLjEgMCAzLjMtMi45IDkuNS04LjdzOS4zLTguOSA5LjMtOS4zbC0uMS0uMXptMTU5LjcgMTIwbC0zMC42IDI3YzEuOCAxIDMuMiAyLjQgNCA0LjJsMzAuMi0yN2MuMi0xLjIgLjEtMi4yLS41LTIuOS0uNi0uNS0xLjYtLjktMy4xLTEuM3ptLTEuNi0uOWwtLjctLjctMjcgMjEuOSAxLjYgMiAyNi0yMy4xIC4xLS4xek0zNjYuOSAzNjMuOWMtOC0yLjEtMTUuNC00LjYtMjIuMi03LjUtMTUuMy02LjItMzQuMy0xNy01Ny0zMi40bC0zNy40LTI1LjNjLTE1LjgtMTAuMS0zMC4yLTE3LjYtNDMuMi0yMi42LTEzLjEtNC45LTI2LTcuMy0zOC42LTcuM2wtNS41IDBjLTMyLjIgMS43LTU3LjIgMTMuOC03NSAzNi4yLTE2LjYgMjAuOC0yNSA0NS4zLTI1IDczLjYgMCAzMS44IDEyLjggNTYuNyAzOC4yIDc0LjcgMjUuNCAxOC4xIDYwLjIgMjcuMSAxMDQuNCAyNy4xIDM0LjcgMCA2NC02LjIgODcuOC0xOC42IDIzLjctMTIuNCA0Mi4xLTI4LjggNTUuMi00OS4yIDkuOC0xNS41IDE1LjktMzEuOCAxOC4yLTQ4LjhsLjEgLjF6Il19LHpnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuc3RyZWV0bWFwIixpY29uOls1MTIsNTEyLFtdLCJlODZiIiwiTTYxIDQ5OC43Yy03LjEtMS44LTEwLjgtNC43LTI5LjYtMjMuNi0yMi41LTIyLjQtMjMuOS0yNC42LTIzLjktMzYuMyAwLTEzLTMuOS04LjQgNjcuOS04MC4zIDcyLjUtNzIuNyA2OC43LTY5LjUgODEuOS02OS41IDYuMSAwIDcuNiAuNCAxMi41IDIuOGw1LjYgMi44YzExLjctMTEuNyAyMy40LTIzLjQgMzUuMS0zNS4xbC00LjQtNi45Yy04LjYtMTMuMy0xNi42LTMyLjgtMjAuMy00OC45LTEwLjItNDUuNCAuOC05My4zIDI5LjgtMTI5LjcgNTAuMS02Mi44IDE0MC4xLTc2LjcgMjA2LjYtMzIgMzYuNSAyNC41IDYwLjMgNjIuNSA2NyAxMDcgMS40IDkuNCAxLjQgMzEuOCAwIDQxLjgtNC45IDM0LjYtMTkuNyA2NC00NC40IDg4LjctMTIuNyAxMi43LTIzIDIwLjEtMzkuMiAyOC4yLTE5LjMgOS43LTM1LjcgMTQuMy01OCAxNi4xLTMxLjcgMi42LTY2LjktNi4xLTkzLjgtMjMuNGwtNi45LTQuNGMtMTEuNyAxMS43LTIzLjQgMjMuNC0zNS4xIDM1LjFsMi44IDUuNmMyLjUgNC45IDIuOCA2LjQgMi44IDEyLjUgMCAxMy4xIDMuMSA5LjQtNjkgODEuNS01NS42IDU1LjUtNjQuMSA2My43LTY4LjQgNjUuNy01LjUgMi41LTEzLjkgMy40LTE5IDIuMXpNMzU5LjQgMjk2LjljNDAuMS03LjMgNzUuMS0zNCA5Mi43LTcwLjcgMjgtNTguNCA5LjItMTI3LTQ0LjgtMTYzLjMtMTIuOS04LjctMzAuOC0xNi00Ny43LTE5LjQtMTEuNy0yLjQtMzYuNC0yLjEtNDguNiAuNS0xOC4yIDMuOS0zNC45IDExLjEtNDkuNCAyMS40LTguOSA2LjQtMjMuNyAyMS4xLTI5LjkgMjkuOS0zNC42IDQ5LTMxLjUgMTE0LjEgNy43IDE1OS4zIDIwLjEgMjMuMiA0Ny44IDM4LjQgNzguNiA0MyAxMC4yIDEuNSAzMSAxLjIgNDEuNS0uOHptLTM1LjUtMTcuNGMtMTMuOC0yLjItMjUuNi01LjctMzUuMS0xMC41bC01LjQtMi43IDAtNDkuOS05LjUgMGMtOC4yIDAtMTkuNSAxLjYtMjcuNyA0LTEuMSAuMy0xLjUgMS42LTEuNyA0LjhsLS4zIDQuNC00LjEtNy44Yy05LTE3LjItMTIuMi0zMC43LTEyLjItNTEuNCAwLTE2IDEuMS0yMy40IDUuNi0zNi4zIDIuNC02LjggOC4yLTE4LjkgMTAuOC0yMi4zIDEuMS0xLjUgMS4yLTEuMSAxLjMgMy4zbDAgNWMxOC44LS4yIDM3LjYtLjMgNTYuNC0uNSAuMi00LjcgLjMtOS41IC41LTE0LjJsLTE5IDAgMC0zMSAzLjQtMS43YzUuNi0yLjggMTUuOS02LjcgMjEuNy04LjIgMy0uOCA2LjEtMS42IDYuOS0xLjggMS4yLS40IDEuMyAuMSAuNyAzLjMtMS4yIDYuMS0uOSAyMyAuNSAyOSAyLjggMTEuOSA5LjggMjAuNyAxOS4yIDI0LjMgNS42IDIuMSAxNi4zIDIuNiAyMi41IC45IDUuOS0xLjYgMTIuNS02LjQgMTUuOS0xMS41IDUtNy41IDYuNy0xNC4xIDcuMi0yNy4xbC40LTExLjQgNyAzLjZjOCA0LjIgMTcuOCAxMS4yIDI0LjkgMTggNC44IDQuNiA1IDQuOCA1IDkuMmwwIDQuNS0xOC45IDAgMCAxNC42IDM1IDBjMS4zIDIuNiAyLjUgNS4yIDMuOCA3LjdsLTkuNyAwYy02LjcgMC0xMi43IC42LTE5LjQgMS45bC05LjcgMS45IDAgNy4xYzAgMy45IC4yIDcuMSAuMyA3LjFzNC4xLS44IDguNy0xLjcgOC43LTEuNyA5LjEtMS43Yy40IDAgLjggMTEuMyAuOCAyNS44bDAgMjUuOGMtNi4yIC4yLTEyLjMgLjMtMTguNSAuNS0uMiA0LjctLjMgOS40LS41IDE0LjIgMTMuNSAuMiAyNyAuMyA0MC40IC41LTEgMi4zLTIgNC41LTMgNi44bC0xMC43IC4xYy05LjkgLjEtMTEuMSAuMi0xNS42IDIuNS0xMS44IDUuOC0xOC4xIDE4LjktMTguMyAzNy45bC0uMSA5LjMtNS44IDNjLTUgMi42LTIyLjYgOS0yNC45IDktLjUgMC0uOC0xMi0uOC0zMC42bDAtMzAuNi05LjQgMGMtNiAwLTEyLjQgLjYtMTcuOSAxLjctMTIuNiAyLjYtMTEuNSAxLjctMTEuNSA5LjUgMCA1IC4zIDYuOCAxLjEgNi44IC42IDAgNC42LS44IDguOC0xLjdzOC0xLjcgOC4zLTEuNyAuNiAxMSAuNiAyNC41bDAgMjQuNS03LjUtLjFjLTQuMS0uMS04LjUtLjMtOS43LS41em0tMzkuNC03MS42YzguOS0zLjkgMTUuNi0xMi45IDE4LjMtMjQuNCAxLjYtNi45IDEuNy0yMi42IDAtMzAuMi0yLjUtMTItOS42LTIxLjEtMTkuMy0yNC44LTYuOS0yLjYtMTguNC0yLjYtMjUuMyAwLTkuNyAzLjctMTYuNCAxMi44LTE5LjIgMjUuNi0xLjYgNy41LTEuNiAyMS40IDAgMjguOSAyLjYgMTIuNSAxMC41IDIyLjMgMjAuNiAyNS42IDcgMi4zIDE4LjkgMiAyNC45LS43em0tMTkuOS0xNC41Yy0zLjUtMy01LjItOC45LTUuOC0yMC42LS42LTEwLjUgLjYtMjEuMyAyLjktMjYgMi00LjMgNS44LTYuNCAxMC40LTYgNy40IC44IDEwLjMgNi41IDExLjEgMjIuNSAuOSAxNi43LTEuOSAyOC45LTcgMzEuMy0zLjkgMS44LTguNiAxLjMtMTEuNi0xLjJ6bTk0LjkgMTUuMWMxNS00LjYgMjIuOC0yMC4xIDIxLjktNDMuNS0uOC0xOS45LTcuOS0zMi4xLTIxLjUtMzcuMi01LjctMi4xLTE4LTEuOC0yNCAuNS05LjYgMy43LTE2LjQgMTIuNC0xOS4zIDI0LjctMiA4LjYtMS4zIDI4IDEuMyAzNS4yIDQgMTEuMyAxMS42IDE4LjcgMjEuNCAyMSA1LjggMS40IDE0LjQgMSAyMC4zLS44em0tMTYuNy0xNC4yYy01LTIuNy03LjMtMTMuMi02LjUtMzAuMSAuNi0xMi44IDEuNS0xNi43IDQuOC0yMC40IDQuNy01LjMgMTMuNi0zLjggMTYuNyAyLjggMy40IDcuMyA0IDMwLjEgMSA0MC4yLTEuNyA1LjctNS4yIDguOC0xMC4xIDguNy0yIDAtNC42LS42LTUuOC0xLjN6bS04NS4yIDUxLjVjLTcuMy03LjYtOS45LTExLjQtOC40LTExLjkgMi45LS45IDEzLjktMy4xIDE0LjItMi44IC4yIC4yIC4yIDQuOSAuMSAxMC40bC0uMiAxMC4xLTUuNi01Ljl6bTE1Ni40LTEuMmMuNy02IDMuMS0xMS41IDUuNy0xMy4yIDIuOS0xLjggNi40LTIuNiA4LTEuNyAxLjIgLjcgLjkgMS41LTIuNCA1LjktMi4xIDIuOC01LjYgNy03LjggOS40bC00IDQuMyAuNS00Ljd6TTQzOC40IDE2MWwuMS0zMi45IDIuNiA3LjdjNS4xIDE1LjMgNi45IDMxLjggNS4xIDQ2LjYtMS40IDExLjYtMS40IDExLjUtNC45IDExLjVsLTMgMCAuMS0zMi45ek0zNDQgMTA2LjJjLTIuNi0xLTUuMy00LjgtNi41LTktMS4yLTQtMS41LTI4LjUtLjQtMzMuNSAuNi0zIC45LTMuMiAzLjgtMy4yIDYuMiAwIDE4LjMgMiAxOC43IDMuMSAuMiAuNiAuNyA0LjkgMSA5LjUgLjcgOS43LS43IDIzLjItMi44IDI3LjYtMi40IDUuMS04LjUgNy41LTEzLjcgNS4zem0tOTQuMy0yLjRjLjQtLjggMy43LTQuNiA3LjMtOC40bDYuNS02LjljMCA1LjYgMCAxMS4yIC4xIDE2LjhsLTcuMyAwYy02LjcgMC03LjMtLjEtNi41LTEuNXptMzQuNCAzNDEuN2MtMjQtNi45LTQzLjktMTIuOS00NC4yLTEzLjEtLjUtLjYgMjQuMy04OC41IDI1LjMtODkuNiAuNS0uNSA4NS40IDIzLjMgODguOSAyNC45IDEuMiAuNi0uMSA1LjgtMTAuNiA0Mi40LTYuNiAyMy0xMi40IDQzLjItMTIuOCA0NXMtMS40IDMuMi0xLjkgMy4xLTIwLjctNS44LTQ0LjctMTIuN3pNMzQyLjggNDU2YzAtMS4xIDI0LjctODcuMyAyNS4xLTg3LjYgLjktLjcgODcuMS0yNC43IDg3LjQtMjQuNCAuNCAuNC0yNC4xIDg3LjMtMjQuNyA4Ny45LS40IC4zLTgzLjIgMjQtODUuOCAyNC41LTEuMSAuMi0xLjkgLjEtMS45LS40ek0xOTkuNiA0MTcuNWMxNy0xNy4xIDMyLjItMzIuNyAzMy43LTM0LjcgMy40LTQuNSA4LjItMTQuOCA5LjUtMjAuNSAuNS0yLjQgMS4xLTcuMSAxLjItMTAuNWwuMi02LjIgMy43LTFjMi0uNiAzLjgtLjkgNC0uNyAuNSAuNS0yNC4zIDg3LTI1LjEgODcuOC0uNCAuMy0xMy42IDQuMy0yOS40IDguOGwtMjguNyA4LjIgMzEtMzEuMXptMTY2LjktNjEuNmMtLjItLjMtLjctMi0xLjItMy43bC0uOS0zLjIgMy4yLS41YzI3LTQuNiA1NS45LTE3LjMgNzguNy0zNC41IDMuMy0yLjUgNS4xLTMuNCA1LjMtMi43IDEuMSAzLjMgNS41IDE5LjEgNS40IDE5LjMtLjcgLjctOTAuMiAyNS44LTkwLjUgMjUuNHpNNjIuOSAzMjkuOGMtMS0uOC0yMy44LTc3LjktMjUuNS04Ni40LS4zLTEuNyAzLS45IDQzLjggMTAuOCA0Mi43IDEyLjIgNDQuMiAxMi43IDQ0LjggMTQuOSAuNSAyIC4yIDIuNi0yLjUgNC41LTEuNyAxLjItMTUuNSAxNC42LTMwLjcgMjkuOHMtMjcuOCAyNy42LTI4IDI3LjYtMS4xLS41LTEuOC0xLjF6bTE2LjUtODguMmMtMjMuOS02LjktNDMuNS0xMi42LTQzLjYtMTIuNi0uMy0uMiAyNS4zLTg5LjMgMjUuOS04OS44IC40LS40IDg5LjEgMjQuNCA5MCAyNS4yIC4yIC4yLTUuNCAyMC41LTEyLjQgNDUuMS0xMS42IDQwLjctMTIuOSA0NC44LTE0LjUgNDQuNy0xIDAtMjEuMy01LjctNDUuMi0xMi42em01OS42IDEwLjhjLjItLjYgNC4zLTE0LjUgOC45LTMwLjlsOC41LTI5LjcgMS4xIDYuNWMxLjkgMTEuMiA1LjMgMjMuOSA5LjMgMzUuMSAyLjEgNS45IDMuOCAxMC45IDMuNiAxMXMtNi43IDItMTQuNSA0LjMtMTQuOSA0LjItMTUuOCA0LjVjLTEuMSAuMy0xLjUgLjEtMS4yLS43ek0xMDYgMTM5LjFjLTIzLjktNi45LTQzLjctMTIuOC00My45LTEzLjItLjgtMS4zLTI1LjEtODctMjQuNy04Ny40IC41LS41IDg2LjggMjQuMyA4Ny42IDI1LjEgLjkgMSAyNS44IDg4LjIgMjUuMSA4OC0uMyAwLTIwLjEtNS43LTQ0LTEyLjZ6bTQzLjItMzQuNUMxMzYuNSA2MCAxMzkgNjguOCAxMzcuMiA2Mi41bDM0LjEtOS43YzE4LjgtNS40IDM0LjctOS45IDM1LjQtMTAuMnMtMS42IDIuOC01LjIgNi44Yy0xOS4xIDIxLjMtMzEuNSA0NC0zOS40IDcxLjktMS41IDUuMi0yLjcgMTAuMy0yLjcgMTEuMyAwIDUuOS0yLjMtLjUtMTAuMi0yOHoiXX0sa2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlbGxjYXN0IixpY29uOls0NDgsNTEyLFtdLCJmMmRhIiwiTTM1My41IDMyTDk0LjggMzJDNDIuNyAzMiAuMSA3NC42IC4xIDEyNi42bDAgMjU4LjdDLjEgNDM3LjQgNDIuNyA0ODAgOTQuOCA0ODBsMjU4LjcgMGM1Mi4xIDAgOTQuNy00Mi42IDk0LjctOTQuNmwwLTI1OC44YzAtNTItNDIuNi05NC42LTk0LjctOTQuNnptLTUwIDMxNi40Yy0yNy45IDQ4LjItODkuOSA2NC45LTEzOC4yIDM3LjItMjIuOSAzOS44LTU0LjkgOC42LTQyLjMtMTMuMmwxNS43LTI3LjJjNS45LTEwLjMgMTkuMi0xMy45IDI5LjUtNy45IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgMjcuNiAxNS45IDYzLjQgNi4zIDc5LjQtMjEuMyAxNS45LTI3LjYgNi4zLTYzLjQtMjEuMy03OS40LTE3LjgtMTAuMi0uNi0uNC0xOC42LTEwLjYtMjQuNi0xNC4yLTMuNC01MS45IDIxLjYtMzcuNSAxOC42IDEwLjgtLjEtLjEgMTguNSAxMC43IDQ4LjQgMjggNjUuMSA5MC4zIDM3LjIgMTM4LjV6bTIxLjgtMjA4LjhjLTE3IDI5LjUtMTYuMyAyOC44LTE5IDMxLjUtNi41IDYuNS0xNi4zIDguNy0yNi41IDMuNi0xOC42LTEwLjggLjEgLjEtMTguNS0xMC43LTI3LjYtMTUuOS02My40LTYuMy03OS40IDIxLjNzLTYuMyA2My40IDIxLjMgNzkuNGMwIDAgMTguNSAxMC42IDE4LjYgMTAuNiAyNC42IDE0LjIgMy40IDUxLjktMjEuNiAzNy41LTE4LjYtMTAuOCAuMSAuMS0xOC41LTEwLjctNDguMi0yNy44LTY0LjktOTAuMS0zNy4xLTEzOC40IDI3LjktNDguMiA4OS45LTY0LjkgMTM4LjItMzcuMmw0LjgtOC40YzE0LjMtMjQuOSA1Mi0zLjMgMzcuNyAyMS41eiJdfSxTZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4IixpY29uOls0NDgsNTEyLFtdLCJmM2NiIiwiTTAgNjRMMCA0MTIuOWMwIDU2LjIgODggNTguMSA4OCAwbDAtMjM4LjZjNy45LTUyLjkgODgtNTAuNCA4OCA2LjVsMCAxNzUuM2MwIDU3LjkgOTYgNTggOTYgMEwyNzIgMjQwYzUuMy01NC43IDg4LTUyLjUgODggNC4zbDAgMjMuOGMwIDU5LjkgODggNTYuNiA4OCAwTDQ0OCA2NCAwIDY0eiJdfSxDZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtYXBwbGUtcGF5IixpY29uOls1NzYsNTEyLFtdLCJmNDE2IiwiTTMwMi4yIDIxOC40YzAgMTcuMi0xMC41IDI3LjEtMjkgMjcuMWwtMjQuMyAwIDAtNTQuMiAyNC40IDBjMTguNCAwIDI4LjkgOS44IDI4LjkgMjcuMXpNMzQ5LjcgMjgxYzAgOC4zIDcuMiAxMy43IDE4LjUgMTMuNyAxNC40IDAgMjUuMi05LjEgMjUuMi0yMS45bDAtNy43LTIzLjUgMS41Yy0xMy4zIC45LTIwLjIgNS44LTIwLjIgMTQuNHpNNTc2IDc5bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ3OWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA3OUMwIDUyLjUgMjEuNSAzMSA0OCAzMWw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI3LjggMTk3LjJjOC40IC43IDE2LjgtNC4yIDIyLjEtMTAuNCA1LjItNi40IDguNi0xNSA3LjctMjMuNy03LjQgLjMtMTYuNiA0LjktMjEuOSAxMS4zLTQuOCA1LjUtOC45IDE0LjQtNy45IDIyLjh6bTYwLjYgNzQuNWMtLjItLjItMTkuNi03LjYtMTkuOC0zMC0uMi0xOC43IDE1LjMtMjcuNyAxNi0yOC4yLTguOC0xMy0yMi40LTE0LjQtMjcuMS0xNC43LTEyLjItLjctMjIuNiA2LjktMjguNCA2LjktNS45IDAtMTQuNy02LjYtMjQuMy02LjQtMTIuNSAuMi0yNC4yIDcuMy0zMC41IDE4LjYtMTMuMSAyMi42LTMuNCA1NiA5LjMgNzQuNCA2LjIgOS4xIDEzLjcgMTkuMSAyMy41IDE4LjcgOS4zLS40IDEzLTYgMjQuMi02IDExLjMgMCAxNC41IDYgMjQuMyA1LjkgMTAuMi0uMiAxNi41LTkuMSAyMi44LTE4LjIgNi45LTEwLjQgOS44LTIwLjQgMTAtMjF6bTEzNS40LTUzLjRjMC0yNi42LTE4LjUtNDQuOC00NC45LTQ0LjhsLTUxLjIgMCAwIDEzNi40IDIxLjIgMCAwLTQ2LjYgMjkuMyAwYzI2LjggMCA0NS42LTE4LjQgNDUuNi00NXptOTAgMjMuN2MwLTE5LjctMTUuOC0zMi40LTQwLTMyLjQtMjIuNSAwLTM5LjEgMTIuOS0zOS43IDMwLjVsMTkuMSAwYzEuNi04LjQgOS40LTEzLjkgMjAtMTMuOSAxMyAwIDIwLjIgNiAyMC4yIDE3LjJsMCA3LjUtMjYuNCAxLjZjLTI0LjYgMS41LTM3LjkgMTEuNi0zNy45IDI5LjEgMCAxNy43IDEzLjcgMjkuNCAzMy40IDI5LjQgMTMuMyAwIDI1LjYtNi43IDMxLjItMTcuNGwuNCAwIDAgMTYuNCAxOS42IDAgMC02OCAuMSAwek01MTYgMjEwLjlsLTIxLjUgMC0yNC45IDgwLjYtLjQgMC0yNC45LTgwLjYtMjIuMyAwIDM1LjkgOTkuMy0xLjkgNmMtMy4yIDEwLjItOC41IDE0LjItMTcuOSAxNC4yLTEuNyAwLTQuOS0uMi02LjItLjNsMCAxNi40YzEuMiAuNCA2LjUgLjUgOC4xIC41IDIwLjcgMCAzMC40LTcuOSAzOC45LTMxLjhMNTE2IDIxMC45eiJdfSxfZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic29sYW5hIixpY29uOls1MTIsNTEyLFtdLCJlODVlIiwiTTUxMC41IDM4NS4ybC04NC45IDg4LjdjLTEuOCAxLjktNC4xIDMuNS02LjYgNC41cy01LjIgMS42LTcuOSAxLjZMOC45IDQ4MGMtMS45IDAtMy44LS41LTUuNC0xLjZzLTIuOS0yLjUtMy42LTQuMi0xLTMuNi0uNy01LjUgMS4yLTMuNiAyLjUtNC45bDg0LjktODguN2MxLjgtMS45IDQuMS0zLjUgNi41LTQuNXM1LjEtMS42IDcuOC0xLjZsNDAyLjQgMGMxLjkgMCAzLjggLjUgNS40IDEuNnMyLjkgMi41IDMuNiA0LjIgMSAzLjYgLjcgNS41LTEuMiAzLjYtMi41IDQuOXpNNDI1LjcgMjA2LjZjLTEuOC0xLjktNC4xLTMuNS02LjYtNC41cy01LjItMS42LTcuOS0xLjZsLTQwMi40IDBjLTEuOSAwLTMuOCAuNS01LjQgMS42cy0yLjkgMi41LTMuNiA0LjItMSAzLjYtLjcgNS41IDEuMiAzLjYgMi41IDQuOWw4NC45IDg4LjdjMS44IDEuOSA0LjEgMy41IDYuNSA0LjVzNS4xIDEuNiA3LjggMS42bDQwMi40IDBjMS45IDAgMy44LS41IDUuNC0xLjZzMi45LTIuNSAzLjYtNC4yIDEtMy42IC43LTUuNS0xLjItMy42LTIuNS00LjlsLTg0LjktODguN3pNOC45IDE0Mi45bDQwMi40IDBjMi43IDAgNS40LS41IDcuOS0xLjZzNC43LTIuNiA2LjYtNC41bDg0LjktODguN2MxLjMtMS40IDIuMi0zLjEgMi41LTQuOXMuMS0zLjctLjctNS41LTItMy4yLTMuNi00LjItMy41LTEuNi01LjQtMS42TDEwMSAzMmMtMi43IDAtNS40IC41LTcuOCAxLjZzLTQuNyAyLjYtNi41IDQuNUwxLjcgMTI2LjhjLTEuMyAxLjQtMi4yIDMuMS0yLjUgNC45cy0uMSAzLjcgLjcgNS41IDIgMy4yIDMuNiA0LjIgMy41IDEuNiA1LjQgMS42eiJdfSxUZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHlwZXNjcmlwdCIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0MCIsIk0xNi44IDMybDQxNC40IDBjOS4zIDAgMTYuOCA3LjUgMTYuOCAxNi44bDAgNDE0LjRjMCA5LjMtNy41IDE2LjgtMTYuOCAxNi44TDE2LjggNDgwQzcuNSA0ODAgMCA0NzIuNSAwIDQ2My4yTDAgNDguOEMwIDM5LjUgNy41IDMyIDE2LjggMzJ6TTI0OSAyNzAuM2wwLTM2LjctMTU5LjQgMCAwIDM2LjcgNTYuOSAwIDAgMTYzLjYgNDUuMyAwIDAtMTYzLjYgNTcuMiAwem0xOC4xIDE1OS4zYzcuMyAzLjcgMTUuOSA2LjUgMjUuOSA4LjRzMjAuNSAyLjggMzEuNSAyLjhjMTAuOCAwIDIxLTEgMzAuNy0zLjFzMTguMi01LjQgMjUuNS0xMC4xIDEzLjEtMTAuOSAxNy40LTE4LjQgNi40LTE3IDYuNC0yOC4yYzAtOC4xLTEuMi0xNS4yLTMuNy0yMS4zcy01LjktMTEuNS0xMC41LTE2LjMtMTAuMS05LTE2LjUtMTIuOC0xMy43LTcuMy0yMS43LTEwLjdjLTUuOS0yLjQtMTEuMi00LjgtMTUuOS03LjFzLTguNy00LjYtMTEuOS03LTUuOC00LjktNy42LTcuNS0yLjctNS43LTIuNy05YzAtMy4xIC44LTUuOCAyLjQtOC4zczMuOC00LjYgNi43LTYuNCA2LjUtMy4xIDEwLjctNC4xIDguOS0xLjUgMTQuMS0xLjVjMy43IDAgNy43IC4zIDExLjkgLjhzOC40IDEuNCAxMi42IDIuNiA4LjMgMi42IDEyLjMgNC40IDcuNyAzLjggMTEgNi4xbDAtNDEuOGMtNi44LTIuNi0xNC4zLTQuNS0yMi40LTUuOHMtMTcuNC0xLjktMjcuOS0xLjljLTEwLjcgMC0yMC44IDEuMS0zMC40IDMuNHMtMTggNS44LTI1LjIgMTAuNy0xMyAxMS0xNy4yIDE4LjUtNi4zIDE2LjUtNi4zIDI2LjljMCAxMy4zIDMuOSAyNC43IDExLjYgMzQuMXMxOS41IDE3LjQgMzUuMiAyMy45YzYuMiAyLjUgMTEuOSA1IDE3LjMgNy40czEwIDQuOSAxMy44IDcuNSA3IDUuNCA5LjIgOC41IDMuNCA2LjYgMy40IDEwLjVjMCAyLjktLjcgNS42LTIuMSA4cy0zLjUgNC42LTYuNCA2LjQtNi40IDMuMi0xMC43IDQuMy05LjMgMS41LTE1IDEuNWMtOS43IDAtMTkuNC0xLjctMjguOS01LjFzLTE4LjQtOC41LTI2LjYtMTUuM2wwIDQ0Ljd6Il19LExnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJicmF2ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTYzYyIsIk0xNDUuNiAwbDE1NyAwIDQ0LjcgNTAuOHMzOS4zLTEwLjkgNTcuOCA3LjYgMzMuOCAzNC45IDMzLjggMzQuOWwtMTIgMjkuNSAxNS4zIDQzLjdzLTQ0LjkgMTcwLjItNTAuMSAxOTFjLTEwLjQgNDAuOS0xNy40IDU2LjgtNDYuOSA3Ny41cy04Mi45IDU2LjgtOTEuNiA2Mi4yYy0xLjkgMS4yLTMuOSAyLjUtNS45IDMuOS03LjUgNS4xLTE1LjggMTAuOC0yMy41IDEwLjhzLTE2LjEtNS43LTIzLjUtMTAuOGMtMi0xLjQtNC0yLjgtNS45LTMuOS04LjctNS41LTYyLjEtNDEuNS05MS42LTYyLjJzLTM2LjUtMzYuNi00Ni45LTc3LjVjLTUuMy0yMC44LTUwLjEtMTkxLTUwLjEtMTkxTDIxLjUgMTIyLjggOS4zIDkzLjNzMTUuMy0xNi40IDMzLjgtMzQuOSA1Ny44LTcuNiA1Ny44LTcuNkwxNDUuNiAwem03OC41IDQwNy42YzMuNyAwIDguOS00LjcgMTMtOC40IC42LS41IDEuMi0xLjEgMS43LTEuNSA0LjItMy43IDQ3LjgtMzcuNSA1MS0zOS44czUuNC02LjUgMS45LTguN2MtMi44LTEuNy0xMC01LjUtMjAuMy0xMC44LTMtMS42LTYuMy0zLjItOS43LTUtMTUuNC04LTM0LjUtMTQuNy0zNy41LTE0LjdzLTIyLjEgNi44LTM3LjUgMTQuN2MtMy41IDEuOC02LjcgMy41LTkuNyA1LTEwLjMgNS4zLTE3LjYgOS4xLTIwLjMgMTAuOC0zLjYgMi4yLTEuNCA2LjQgMS45IDguN3M0Ni44IDM2LjEgNTEgMzkuOGMuNSAuNSAxLjEgMSAxLjcgMS41IDQuMSAzLjcgOS4zIDguNCAxMyA4LjRsLS4yIDB6bTAtMTY1LjdjNC43IDAgMTcuNi0zIDI2LjQtNWwyLS41YzcuOC0xLjggNy4zLTYuMyA2LjQtMTMtLjEtLjgtLjItMS42LS4zLTIuNC0uNi02LjEtNS44LTMzLjEtOS4xLTUwLjMtMS4xLTUuOC0yLTEwLjUtMi40LTEyLjktMS41LTguMS0uNi05LjQgLjctMTEuMyAuMi0uMyAuNS0uNyAuNy0xLjEgMS40LTIuMyAxNi02LjIgMjcuOS05LjUgMi41LS43IDQuOC0xLjMgNi45LTEuOSAxMC42LTMgMzIuNC0uNiA0NC4yIC42IDEuOCAuMiAzLjQgLjQgNC43IC41IDkuNiAuOSAxMC40IDIuMyA3LjIgMy44LTIuMyAxLjEtMTYuMiA2LjMtMjguNyAxMC45LTQuNyAxLjgtOS4yIDMuNS0xMi44IDQuOC0xLjUgLjUtMyAxLjEtNC41IDEuNy0xMi41IDQuNi0yNy4yIDEwLTI4LjkgMTkuNC0xLjUgOC4zIDUuMiAxOS45IDExLjMgMzAuMyAxLjYgMi44IDMuMiA1LjUgNC42IDguMSA2LjMgMTEuOSA2LjUgMTMuMyA2LjEgMTguMS0uNCAzLjktMTQuNSAxMi43LTIyLjQgMTcuNi0xLjggMS4xLTMuMyAyLjEtNC4yIDIuNy0uOCAuNS0yLjEgMS40LTMuOCAyLjQtOC42IDUuMi0yNi4zIDE2LTI2LjMgMjIuNSAwIDcuOCAyNC42IDI4LjEgMzIuNCAzMy4yczI4LjkgMTYuMSAzNy45IDE3LjggMjMtOC41IDMxLjItMjMuOGM3LjctMTQuNCAxLjctMjguNS0zLjItNDBsLS45LTIuMmMtNC41LTEwLjYgMS45LTE3IDYuMi0yMS4zIC41LS41IDEtMSAxLjQtMS40bDQzLTQ1LjdjMS4zLTEuMyAyLjUtMi42IDMuNy0zLjggNS44LTUuNyAxMC44LTEwLjUgMTAuOC0yMi44IDAtMTQuOS01Ny41LTg0LjUtNTcuNS04NC41cy00OC41IDkuMy01NS4xIDkuM2MtNS4yIDAtMTUuMy0zLjUtMjUuOC03LjEtMi43LS45LTUuNC0xLjktOC0yLjctMTMtNC4zLTIxLjgtNC40LTIxLjgtNC40cy04LjcgMC0yMS44IDQuNGMtMi43IC45LTUuNCAxLjgtOCAyLjctMTAuNSAzLjYtMjAuNiA3LjEtMjUuOCA3LjEtNi41IDAtNTUuMS05LjMtNTUuMS05LjNzLTU3LjUgNjkuNi01Ny41IDg0LjVjMCAxMi4zIDQuOSAxNy4xIDEwLjggMjIuOCAxLjIgMS4yIDIuNSAyLjQgMy43IDMuOGw0My4xIDQ1LjhjLjQgLjUgLjkgLjkgMS40IDEuNCA0LjMgNC4zIDEwLjYgMTAuNyA2LjIgMjEuM2wtLjkgMi4yYy00LjkgMTEuNS0xMSAyNS42LTMuMiA0MCA4LjIgMTUuMyAyMi4yIDI1LjUgMzEuMiAyMy44czMwLjEtMTIuNyAzNy45LTE3LjggMzIuNC0yNS40IDMyLjQtMzMuMmMwLTYuNS0xNy43LTE3LjMtMjYuMy0yMi41LTEuNy0xLTMuMS0xLjktMy44LTIuNC0uOS0uNi0yLjQtMS41LTQuMi0yLjctNy45LTQuOS0yMi0xMy43LTIyLjQtMTcuNi0uNC00LjgtLjMtNi4yIDYuMS0xOC4xIDEuMy0yLjUgMi45LTUuMyA0LjYtOC4xIDYtMTAuNCAxMi44LTIyIDExLjMtMzAuMy0xLjctOS40LTE2LjQtMTQuOC0yOC45LTE5LjQtMS42LS42LTMuMS0xLjEtNC41LTEuNy0zLjYtMS40LTguMS0zLjEtMTIuOC00LjhsLS4xIDBjLTEyLjUtNC43LTI2LjQtOS45LTI4LjctMTAuOS0zLjItMS41LTIuMy0yLjggNy4yLTMuOCAxLjMtLjEgMi45LS4zIDQuNy0uNSAxMS44LTEuMyAzMy42LTMuNiA0NC4yLS42IDIuMSAuNiA0LjQgMS4yIDYuOSAxLjkgMTEuOSAzLjIgMjYuNSA3LjIgMjcuOSA5LjUgLjIgLjQgLjUgLjcgLjcgMS4xIDEuMyAxLjkgMi4yIDMuMiAuNyAxMS4zLS40IDIuNC0xLjMgNy4xLTIuNCAxMi45LTMuMyAxNy4yLTguNSA0NC4yLTkuMSA1MC4zLS4xIC44LS4yIDEuNy0uMyAyLjQtLjggNi43LTEuNCAxMS4yIDYuNCAxM2wyIC41YzguOCAyIDIxLjggNSAyNi40IDVsMC0uMXoiXX0sJGdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0c3kiLGljb246WzM4NCw1MTIsW10sImYyZDciLCJNMzg0IDM0OGMtMS44IDEwLjctMTMuOCAxMTAtMTUuNSAxMzItMTE3LjktNC4zLTIxOS45LTQuNy0zNjguNSAwbDAtMjUuNWM0NS41LTguOSA2MC42LTggNjEtMzUuMiAxLjgtNzIuMyAzLjUtMjQ0LjEgMC0zMjItMS0yOC41LTEyLjEtMjYuOC02MS0zNkwwIDM1LjhjNzMuOSAyLjQgMjU1LjkgOC42IDM2My0zLjgtMy41IDM4LjItNy44IDEyNi41LTcuOCAxMjYuNWwtMjMuMiAwQzMyMC45IDExNS43IDMxMy4yIDY4IDI3Ny4zIDY4bC0xMzcgMGMtMTAuMiAwLTEwLjcgMy41LTEwLjcgOS44bDAgMTYzLjhjNTggLjUgODguNS0yLjUgODguNS0yLjUgMjkuOC0xIDI3LjYtOC41IDQwLjctNjUuM2wyNS44IDBjLTQuNCAxMDEuNC0zLjkgNjEuOC0xLjggMTYwLjNMMjU3IDMzNGMtOS4yLTQwLjEtOS4xLTYxLTM5LjUtNjEuNSAwIDAtMjEuNS0yLTg4LTJsMCAxMzljMCAyNiAxNC4zIDM4LjMgNDQuMyAzOC4zbDg5LjMgMGM2My42IDAgNjYuNi0yNSA5OC43LTk5LjhsMjIuMiAweiJdfSxBZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnRjIixpY29uOlszODQsNTEyLFtdLCJmMTVhIiwiTTMxMC40IDI0Mi42YzI3LjctMTQuMiA0NS40LTM5LjQgNDEuMy04MS4zLTUuNC01Ny40LTUyLjUtNzYuNi0xMTQuOC04MS45bDAtNzkuNC00OC41IDAgMCA3Ny4yYy0xMi42IDAtMjUuNSAuMy0zOC40IC42bDAtNzcuOC00OC41IDAgMCA3OS40Yy0xNy44IC41LTM4LjYgLjMtOTcuNCAwbDAgNTEuN2MzOC4zLS43IDU4LjQtMy4xIDYzIDIxLjRsMCAyMTcuNGMtMi45IDE5LjUtMTguNSAxNi43LTUzLjMgMTYuMUw0IDQ0My43Yzg4LjUgMCA5Ny40IC4zIDk3LjQgLjNsMCA2OCA0OC41IDAgMC02Ny4xYzEzLjIgLjMgMjYuMiAuMyAzOC40IC4zbDAgNjYuNyA0OC41IDAgMC02OGM4MS4zLTQuNCAxMzUuNi0yNC45IDE0Mi45LTEwMS41IDUuNy02MS40LTIzLjMtODguOS02OS4zLTk5Ljl6TTE1MC44IDEzNC42YzI3LjQgMCAxMTMuMS04LjUgMTEzLjEgNDguNSAwIDU0LjUtODUuNyA0OC4yLTExMy4xIDQ4LjJsMC05Ni43em0wIDI1MS44bDAtMTA2LjVjMzIuOCAwIDEzMy4xLTkuMSAxMzMuMSA1My4zIDAgNjAuMi0xMDAuNCA1My4zLTEzMy4xIDUzLjN6Il19LERnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZG4iLGljb246WzUxMiw1MTIsW10sImYxNzAiLCJNMjU2IDE2Ny41bDY0LjkgOTguOC0xMjkuOCAwIDY0LjktOTguOHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzk2LjIgODIuN2wtMTQ4LjItMjIzLjItMTQ4LjIgMjIzLjIgMzAuNCAwIDMzLjYtNTEuNyAxNjguNiAwIDMzLjYgNTEuNyAzMC4yIDB6Il19LEVnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteC10d2l0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjFhIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTI5Ny4xIDg0bC0xMDMuOCAxMTguNiAxMjIuMSAxNjEuNC05NS42IDAtNzQuOC05Ny45LTg1LjcgOTcuOS00Ny41IDAgMTExLTEyNi45LTExNy4xLTE1My4xIDk4IDAgNjcuNyA4OS41IDc4LjItODkuNSA0Ny41IDB6TTMyMy4zIDM2Ny42bC0xNjkuOS0yMjQuNy0yOC4zIDAgMTcxLjggMjI0LjcgMjYuNCAweiJdfSxQZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTVhZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05MCAxMjJjMCA5LjMtNC44IDE3LjQtMTIuMSAyMmwxODguOSAwYzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDEuOC0uNCAzLjctMS4xIDUuNEwzMTIgMjY0IDM0Mi45IDMzMy40Yy43IDEuNyAxLjEgMy41IDEuMSA1LjQgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ybC0xODYuOCAwIDAgMzItMzIgMCAwLTIwOS41Yy02LjEtNC44LTEwLTEyLjItMTAtMjAuNSAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2eiJdfSxJZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydW1iZWUiLGljb246WzQ0OCw1MTIsW10sImYyMTEiLCJNNS44IDMwOS43QzIgMjkyLjcgMCAyNzUuNSAwIDI1OC4zIDAgMTM1IDk5LjggMzUgMjIzLjEgMzUgMjM5LjcgMzUgMjU2LjQgMzcgMjcyLjQgNDAuNSAxNDkgODcuNSA1MS45IDE4NiA1LjggMzA5Ljd6TTM5OC43IDEyMC41Yy0xMy43LTE3LjUtMjkuNy0zMi43LTQ3LjgtNDUuMy0xNDkuNiA0NC4zLTI2Ni4zIDE2Mi4xLTMwOS43IDMxMiAxMi41IDE4LjEgMjggMzUuNiA0NS4yIDQ5IDQzLjEtMTUxLjMgMTYxLjItMjcxLjcgMzEyLjMtMzE1Ljd6bTE1LjggMjUyLjdjMTUuMi0yNS4xIDI1LjQtNTMuNyAyOS41LTgyLjgtNzkuNCA0Mi45LTE0NSAxMTAuNi0xODcuNiAxOTAuMyAzMC00LjQgNTguOS0xNS4zIDg0LjYtMzEuMyAzNSAxMy4xIDcwLjkgMjQuMyAxMDcgMzMuNi05LjMtMzYuNS0yMC40LTc0LjUtMzMuNS0xMDkuOHptMjkuNy0xNDUuNWMtMi42LTE5LjUtNy45LTM4LjctMTUuOC01Ni44LTEzNy45IDQ1LjgtMjQ2LjQgMTU2LjYtMjkxLjMgMjk1LjEgMTguMSA3LjYgMzcgMTIuNSA1Ni42IDE1LjIgNDYuMy0xMTQuMSAxMzYuOC0yMDYuOCAyNTAuNS0yNTMuNXoiXX0sRkU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiNDItZ3JvdXAiLGljb246WzY0MCw1MTIsWyJpbm5vc29mdCJdLCJlMDgwIiwiTTMyMCA5NmwwIDMyMGMyMSAwIDQxLjgtNC4xIDYxLjItMTIuMnMzNy0xOS44IDUxLjktMzQuNyAyNi42LTMyLjUgMzQuNy01MS45IDEyLjItNDAuMiAxMi4yLTYxLjItNC4xLTQxLjgtMTIuMi02MS4yLTE5LjgtMzcuMS0zNC43LTUxLjktMzIuNS0yNi42LTUxLjktMzQuNy00MC4yLTEyLjItNjEuMi0xMi4yek0wIDI1NkwxNjAgNDE2IDMyMCAyNTYgMTYwIDk2IDAgMjU2em00ODAgMGMwIDIxIDQuMSA0MS44IDEyLjIgNjEuMnMxOS44IDM3IDM0LjcgNTEuOSAzMi41IDI2LjYgNTEuOSAzNC43IDQwLjIgMTIuMiA2MS4yIDEyLjJsMC0zMjBjLTQyLjQgMC04My4xIDE2LjktMTEzLjEgNDYuOVM0ODAgMjEzLjYgNDgwIDI1NnoiXX0sTmdlPUZFLEZnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVtYmxldXBvbi1jaXJjbGUiLGljb246WzUxMiw1MTIsW10sImYxYTMiLCJNMjY0IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDE3Ny41Yy05LjggMC0xNy44IDgtMTcuOCAxNy44bDAgMTA2LjljMCA0MC45LTMzLjkgNzMuOS03NC45IDczLjktNDEuNCAwLTc0LjktMzMuNS03NC45LTc0LjlsMC00Ni41IDU3LjMgMCAwIDQ1LjhjMCAxMCA4IDE3LjggMTcuOCAxNy44czE3LjgtNy45IDE3LjgtMTcuOGwwLTEwOC40YzAtNDAgMzQuMi03Mi4xIDc0LjctNzIuMSA0MC43IDAgNzQuNyAzMi4zIDc0LjcgNzIuNmwwIDIzLjctMzQuMSAxMC4xLTIyLjktMTAuNyAwLTIwLjZjLjEtOS42LTcuOS0xNy42LTE3LjctMTcuNnpNNDMxLjYgMzA5LjFjMCA0MS40LTMzLjUgNzQuOS03NC45IDc0LjktNDEuMiAwLTc0LjktMzMuMi03NC45LTc0LjJsMC00Ni44IDIyLjkgMTAuNyAzNC4xLTEwLjEgMCA0Ny4xYzAgOS44IDggMTcuNiAxNy44IDE3LjZzMTcuOC03LjkgMTcuOC0xNy42bDAtNDggNTcuMyAwYy0uMSA0NS45LS4xIDQ2LjQtLjEgNDYuNHoiXX0sT2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN5bWZvbnkiLGljb246WzUxMiw1MTIsW10sImY4M2QiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zODkuNyAxNTEuNWMtMTEuNSAuNC0xOS40LTYuNC0xOS44LTE2LjktLjMtOS4yIDYuNy0xMy40IDYuNS0xOC45LS4yLTYuNS0xMC4yLTYuOC0xMi45LTYuNy0zOS44IDEuMy00OC42IDU3LTU4LjkgMTEzLjggMjEuNCAzLjIgMzYuNi0uNyA0NS4xLTYuMiAxMi03LjctMy4zLTE1LjctMS40LTI0LjYgNC0xOC4yIDMyLjYtMTkgMzIgNS4zLS40IDE3LjktMjUuOSA0MS44LTc3LjYgMzUuNy0xMC44IDU5LjUtMTguNCAxMTUtNTguMiAxNjEuNy0yOSAzNC41LTU4LjQgMzkuOC03MS42IDQwLjMtMjQuNiAuOS00MS0xMi4zLTQxLjYtMjkuOC0uNi0xNyAxNC40LTI2LjMgMjQuMy0yNi42IDIxLjktLjggMzAuMSAyNS43IDE0LjkgMzQtMTIuMSA5LjcgLjEgMTIuNiAyLjEgMTIuNiAxMC40LS40IDE3LjMtNS41IDIyLjItOSAyNC0yMCAzMy4yLTU0LjkgNDUuNC0xMTguMyA4LjItNDkuNyAxNy03OCAxOC4yLTgyLTE2LjktMTIuNy0yNy4xLTI4LjYtNDkuOC0zNC43LTE1LjYtNC4yLTI1LjEtLjYtMzEuOCA3LjgtNy45IDEwLTUuMyAyMyAyLjQgMzAuN2wxMi42IDE0YzE1LjUgMTcuOSAyNCAzMS45IDIwLjggNTAuNi01LjEgMjkuOS00MC43IDUyLjktODIuOSAzOS45LTM2LTExLjEtNDIuNy0zNi42LTM4LjQtNTAuNiA3LjUtMjQuMiA0Mi40LTExLjcgMzQuNiAxMy42LTIuOCA4LjYtNC45IDguNy02LjMgMTMuMS00LjYgMTQuOCA0MS44IDI4LjQgNTEtMS40IDQuNS0xNC41LTUuMy0yMS43LTIyLjItMzkuOS0yOC41LTMxLjctMTYtNjUuNSAyLjktNzkuNyA1Mi44LTM5LjQgMTAwLjUgMTcuNSAxMTAuNiAyNS44IDM3LjItMTA5IDEwMC41LTEwNS41IDEwMi40LTEwNS41IDI1LjItLjggNDQuMiAxMC42IDQ0LjggMjguNiAuMiA3LjctNC4yIDIyLjYtMTkuNSAyMy4xeiJdfSxSZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FsZXNmb3JjZSIsaWNvbjpbNjQwLDUxMixbXSwiZjgzYiIsIk0yNDkuNCAyNDUuNmwtMjYuNCAwYy43LTUuMiAzLjMtMTQuMSAxMy42LTE0LjEgNi44IDAgMTIgMy44IDEyLjcgMTQuMXpNMzg2IDIzMS44Yy0uNSAwLTE0LjEtMS44LTE0LjEgMjBzMTMuNiAyMCAxNC4xIDIwYzEzIDAgMTQuMS0xMy41IDE0LjEtMjAgMC0yMS44LTEzLjctMjAtMTQuMS0yMHpNMTQyLjggMjU1LjVjLTEuMSAuOS0yIDItMi41IDMuMnMtLjggMi43LS43IDRjMCA0LjggMi4xIDYuMSAzLjMgNyA0LjcgMy43IDE1LjEgMi4xIDIwLjkgMWwwLTE2LjljLTUuMy0xLjEtMTYuNy0yLTIwLjkgMS42ek02NDAuNSAyMzJjMCA4Ny42LTgwIDE1NC40LTE2NS40IDEzNi40LTE4LjQgMzMtNzAuNyA3MC44LTEzMi4yIDQxLjYtNDEuMiA5Ni0xNzcuOSA5Mi4yLTIxMy44LTUuMi0xMTkuNyAyMy45LTE3OC44LTEzOC40LTc1LjMtMTk5LjMtMzQuOC03OS40IDIyLjYtMTczLjYgMTE0LjMtMTczLjYgMTkuMSAwIDM3LjkgNC40IDU1IDEyLjlzMzIgMjAuNyA0My42IDM1LjhjMjAuNy0yMS40IDQ5LjQtMzQuOCA4MS4xLTM0LjggNDIuMyAwIDc5IDIzLjUgOTguOCA1OC42IDkyLjgtNDAuNyAxOTMuOCAyOC4yIDE5My44IDEyNy41ek0xMjAuOSAyNjMuOGMwLTExLjgtMTEuNy0xNS4yLTE3LjktMTcuMi01LjMtMi4xLTEzLjQtMy41LTEzLjQtOC45IDAtOS41IDE3LTYuNyAyNS4yLTIuMSAwIDAgMS4yIC43IDEuNi0uNSAuMi0uNyAyLjQtNi42IDIuNi03LjMgLjEtLjMgLjEtLjYtLjEtLjhzLS40LS41LS42LS42Yy0xMi4zLTcuNi00MC43LTguNS00MC43IDEyLjcgMCAxMi41IDExLjUgMTUuNCAxNy45IDE3LjIgNC43IDEuNiAxMy4yIDMgMTMuMiA4LjcgMCA0LTMuNSA3LjEtOS4yIDcuMS02LjkgMC0xMy41LTIuMi0xOS02LjMtLjUtLjItMS40LS43LTEuNiAuN2wtMi40IDcuNWMtLjUgLjkgLjIgMS4yIC4yIDEuNCAxLjggMS40IDEwLjMgNi42IDIyLjggNi42IDEzLjIgMCAyMS40LTcuMSAyMS40LTE4LjFsMCAwem0zMi00Mi42Yy0xMC4xIDAtMTguNyAzLjItMjEuNCA1LjItLjEgLjEtLjIgLjItLjMgLjNzLS4xIC4yLS4xIC40IDAgLjMgMCAuNCAuMSAuMyAuMiAuNGwyLjYgNy4xYy4xIC4yIC4yIC41IC41IC42cy41IC4yIC43IC4xYy42IDAgNi44LTQgMTYuOS00IDQgMCA3LjEgLjcgOS4yIDIuNCAzLjYgMi44IDMuMSA4LjMgMy4xIDEwLjYtNC44LS4zLTE5LjEtMy40LTI5LjQgMy44LTIuMyAxLjYtNC4zIDMuOC01LjUgNi4zcy0xLjkgNS40LTEuOCA4LjJjMCA1LjkgMS41IDEwLjQgNi42IDE0LjQgMTIuMiA4LjIgMzYuMyAyIDM4LjEgMS40IDEuNi0uMyAzLjUtLjcgMy41LTEuOWwwLTMzLjljMC00LjYgLjMtMjEuNi0yMi44LTIxLjZsMCAuMXptNDYuNi0yMWMwLS4yIDAtLjMtLjEtLjVzLS4xLS4zLS4zLS40LS4yLS4yLS40LS4zLS4zLS4xLS41LS4xbC05LjggMGMtLjIgMC0uMyAwLS41IC4xcy0uMyAuMS0uNCAuMy0uMiAuMi0uMyAuNC0uMSAuMy0uMSAuNWwwIDc5YzAgLjIgMCAuMyAuMSAuNXMuMSAuMyAuMyAuNCAuMiAuMiAuNCAuMyAuMyAuMSAuNSAuMWw5LjkgMGMuMiAwIC4zIDAgLjUtLjFzLjMtLjEgLjQtLjMgLjItLjIgLjMtLjQgLjEtLjMgLjEtLjVsLS4xLTc5em01NS43IDI4LjljLTIuMS0yLjMtNi44LTcuNS0xNy42LTcuNS0zLjUgMC0xNC4yIC4yLTIwLjcgOC45LTYuNCA3LjYtNi42IDE4LjEtNi42IDIxLjQgMCAzLjEgLjIgMTQuMyA3LjEgMjEuMiAyLjYgMi45IDkuMSA4LjIgMjIuOCA4LjIgMTAuOCAwIDE2LjUtMi4zIDE4LjYtMy44IC41LS4yIC43LS43IC4yLTEuOWwtMi4zLTYuOGMtLjEtLjMtLjMtLjUtLjYtLjZzLS41LS4yLS44LS4xYy0yLjYgLjktNi4zIDIuOC0xNS4zIDIuOC0xNy40IDAtMTYuOC0xNC43LTE2LjktMTYuN2wzNy4yIDBjLjMgMCAuNS0uMSAuNy0uM3MuNC0uNCAuNC0uN2MtLjMgMCAyLjEtMTQuNy02LjEtMjQuMmwwIDB6bTM2LjcgNTIuN2MxMy4yIDAgMjEuNC03LjEgMjEuNC0xOC4xIDAtMTEuOC0xMS43LTE1LjItMTcuOS0xNy4yLTQuMS0xLjctMTMuNC0zLjQtMTMuNC04LjkgMC0zLjggMy4zLTYuNCA4LjUtNi40IDUuOCAuMSAxMS41IDEuNiAxNi43IDQuMiAwIDAgMS4yIC43IDEuNi0uNSAuMi0uNyAyLjQtNi42IDIuNi03LjMgLjEtLjMgLjEtLjYtLjEtLjhzLS40LS41LS42LS42Yy03LjktNC45LTE2LjctNC45LTIwLjItNC45LTEyIDAtMjAuNSA3LjMtMjAuNSAxNy42IDAgMTIuNSAxMS41IDE1LjQgMTcuOSAxNy4yIDYuMSAyIDEzLjIgMy4zIDEzLjIgOC43IDAgNC0zLjUgNy4xLTkuMiA3LjEtNi45IDAtMTMuNS0yLjItMTktNi40LS4xLS4xLS4zLS4yLS41LS4ycy0uNCAwLS41IC4xLS4zIC4yLS40IC4zLS4yIC4zLS4yIC41bC0yLjMgNy41Yy0uNSAuOSAuMiAxLjIgLjIgMS40IDEuNyAxLjQgMTAuMyA2LjYgMjIuOCA2LjZsMCAwek0zNTcuNiAyMjRjMC0uNy0uMi0xLjItMS4yLTEuMmwtMTEuOCAwYzAtLjEgLjktOC45IDQuNS0xMi41IDQuMi00LjIgMTEuOC0xLjYgMTItMS42IDEuMiAuNSAxLjQgMCAxLjYtLjVsMi44LTcuOGMuNy0uOSAwLTEuMi0uMi0xLjQtNS4xLTItMTcuNC0yLjktMjQuNSA0LjItNS41IDUuNS03IDEzLjktOCAxOS41bC04LjUgMGMtLjMgMC0uNiAuMi0uOCAuNHMtLjMgLjUtLjQgLjhsLTEuNCA3LjhjMCAuNyAuMiAxLjIgMS4yIDEuMmw4LjIgMGMtOC41IDQ3LjktOC43IDUwLjItMTAuMyA1NS41LTEuMSAzLjYtMy4zIDYuOS01LjkgNy44LS4xIDAtMy45IDEuNy05LjYtLjIgMCAwLS45LS41LTEuNCAuNy0uMiAuNy0yLjYgNi44LTIuOCA3LjVzMCAxLjQgLjUgMS40YzUuMSAyIDEzIDEuOCAxNy45IDAgNi4zLTIuMyA5LjctNy45IDExLjUtMTIuOSAyLjgtNy43IDIuOC05LjggMTEuOC01OS43bDEyLjIgMGMuMyAwIC42LS4yIC44LS40cy4zLS41IC40LS44bDEuNC03Ljh6TTQxMSAyNDBjLS42LTEuNy01LjEtMTguMS0yNS4yLTE4LjEtMTUuMiAwLTIzIDEwLTI1LjIgMTguMS0xIDMtMy4yIDE0IDAgMjMuNSAuMSAuMyA0LjQgMTguMSAyNS4yIDE4LjEgMTUgMCAyMi45LTkuNiAyNS4yLTE4LjEgMy4yLTkuNiAxLTIwLjUgMC0yMy41em00NS40LTE2LjdjLTUtMS43LTE2LjYtMS45LTIyLjEgNS40bDAtNC41YzAtLjIgMC0uMy0uMS0uNXMtLjEtLjMtLjMtLjQtLjItLjItLjQtLjMtLjMtLjEtLjUtLjFsLTkuNCAwYy0uMiAwLS4zIDAtLjUgLjFzLS4zIC4xLS40IC4zLS4yIC4yLS4zIC40LS4xIC4zLS4xIC41bDAgNTUuM2MwIC4yIDAgLjMgLjEgLjVzLjEgLjMgLjMgLjQgLjIgLjIgLjQgLjMgLjMgLjEgLjUgLjFsOS42IDBjLjIgMCAuMyAwIC41LS4xcy4zLS4xIC40LS4zIC4yLS4yIC4zLS40IC4xLS4zIC4xLS41bDAtMjcuOGMwLTIuOSAuMS0xMS40IDQuNS0xNS4xIDQuOS00LjkgMTItMy40IDEzLjQtMy4xIC4zIDAgLjYtLjEgLjgtLjNzLjQtLjQgLjYtLjdjMS4yLTIuNiAyLjItNS4zIDMuMS04IC4xLS4zIC4xLS41IDAtLjhzLS4zLS41LS41LS42bDAgMHptNDYuOCA1NC4xbC0yLjEtNy4zYy0uNS0xLjItMS40LS43LTEuNC0uNy00LjIgMS44LTEwLjEgMS45LTExLjMgMS45LTQuNiAwLTE3LjItMS4xLTE3LjItMTkuOCAwLTYuMiAxLjgtMTkuOCAxNi41LTE5LjggMy45LS4xIDcuOCAuNSAxMS41IDEuNiAwIDAgLjkgLjUgMS4yLS43IC45LTIuNiAxLjYtNC41IDIuNi03LjUgLjItLjktLjUtMS4yLS43LTEuMi0xMS42LTMuOS0yMi4zLTIuNS0yNy44IDAtMS42IC43LTE2LjIgNi41LTE2LjIgMjcuNSAwIDIuOS0uNiAzMC4xIDI4LjkgMzAuMSA1LjMgMCAxMC42LTEgMTUuNS0yLjggLjItLjIgLjQtLjQgLjUtLjZzLjEtLjUgMC0uOGwwIDB6bTUzLjktMzkuNWMtLjgtMy01LjQtMTYuMi0yMi4zLTE2LjItMTYgMC0yMy41IDEwLjEtMjUuNiAxOC42LTEuMiAzLjgtMS43IDcuOC0xLjcgMTEuOCAwIDI1LjkgMTguOCAyOS40IDI5LjkgMjkuNCAxMC44IDAgMTYuNS0yLjMgMTguNi0zLjggLjUtLjIgLjctLjcgLjItMS45bC0yLjQtNi44Yy0uMS0uMy0uMy0uNS0uNi0uNnMtLjYtLjItLjgtLjFjLTIuNiAuOS02LjMgMi44LTE1LjMgMi44LTE3LjQgMC0xNi45LTE0LjctMTYuOS0xNi43bDM3LjIgMGMuMyAwIC41LS4xIC43LS4zcy40LS40IC40LS43Yy0uMiAwIC45LTcuMS0xLjQtMTUuNWwwIDB6bS0yMy4zLTYuNGMtMTAuMyAwLTEzIDktMTMuNiAxNC4xbDI2LjQgMGMtLjktMTEuOS03LjYtMTQuMS0xMi43LTE0LjFsMCAweiJdfSxCZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic291cmNldHJlZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjdkMyIsIk00MjcuNCAyMDNjMC0xMTIuMS05MC45LTIwMy0yMDMtMjAzLTExMi4xLS4yLTIwMyA5MC42LTIwMy4yIDIwMi42LS4xIDQzIDEzLjUgODQuOCAzOC43IDExOS42czYwLjkgNjAuNiAxMDEuOCA3My44bDAgMTAxLjdjMCAzLjggMS41IDcuNCA0LjIgMTAuMXM2LjMgNC4yIDEwLjEgNC4ybDk2LjQgMGMzLjggMCA3LjQtMS41IDEwLjEtNC4yczQuMi02LjMgNC4yLTEwLjFsMC0xMDEuNmM0MC44LTEzLjIgNzYuNS0zOSAxMDEuNy03My43czM4LjktNzYuNSAzOS0xMTkuNHptLTI3MS42IDBjMC05MC44IDEzNy4zLTkwLjggMTM3LjMgMC0uMSA4OS45LTEzNy4zIDkxLTEzNy4zIDB6Il19LEhnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rZWRpbi1pbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjBlMSIsIk0xMDAuMyA0NDhsLTkyLjkgMCAwLTI5OS4xIDkyLjkgMCAwIDI5OS4xek01My44IDEwOC4xQzI0LjEgMTA4LjEgMCA4My41IDAgNTMuOCAwIDM5LjUgNS43IDI1LjkgMTUuOCAxNS44czIzLjgtMTUuOCAzOC0xNS44IDI3LjkgNS43IDM4IDE1LjggMTUuOCAyMy44IDE1LjggMzhjMCAyOS43LTI0LjEgNTQuMy01My44IDU0LjN6TTQ0Ny45IDQ0OGwtOTIuNyAwIDAtMTQ1LjZjMC0zNC43LS43LTc5LjItNDguMy03OS4yLTQ4LjMgMC01NS43IDM3LjctNTUuNyA3Ni43bDAgMTQ4LjEtOTIuOCAwIDAtMjk5LjEgODkuMSAwIDAgNDAuOCAxLjMgMGMxMi40LTIzLjUgNDIuNy00OC4zIDg3LjktNDguMyA5NCAwIDExMS4zIDYxLjkgMTExLjMgMTQyLjNsMCAxNjQuMy0uMSAweiJdfSxxZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaHRtbDUiLGljb246WzM4NCw1MTIsW10sImYxM2IiLCJNMCAzMkwzNC45IDQyNy44IDE5MS41IDQ4MCAzNDkuMSA0MjcuOCAzODQgMzIgMCAzMnpNMzA4LjIgMTU5LjlsLTE4My44IDAgNC4xIDQ5LjQgMTc1LjYgMC0xMy42IDE0OC40LTk3LjkgMjcgMCAuMy0xLjEgMC05OC43LTI3LjMtNi03NS44IDQ3LjcgMCAzLjUgMzguMSA1My41IDE0LjUgNTMuNy0xNC41IDYtNjIuMi0xNjYuOSAwLTEyLjgtMTQ1LjYgMjQxLjEgMC00LjQgNDcuN3oiXX0sVmdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJ1c3QiLGljb246WzUxMiw1MTIsW10sImUwN2EiLCJNNTA4LjUgMjQ5LjhsLTIxLjgtMTMuNWMtLjItMi0uMy0zLjktLjUtNS45bDE4LjctMTcuNWMuOS0uOSAxLjYtMS45IDItMy4xcy41LTIuNSAuMi0zLjctLjgtMi40LTEuNi0zLjMtMS44LTEuNy0zLTIuMWwtMjQtOWMtLjUtMS45LTEuMS0zLjgtMS43LTUuNmwxNS0yMC44Yy43LTEgMS4yLTIuMiAxLjMtMy40czAtMi41LS41LTMuNy0xLjItMi4yLTIuMi0yLjktMi4xLTEuMy0zLjQtMS41bC0yNS40LTQuMmMtLjktMS43LTEuOC0zLjQtMi43LTUuMmwxMC43LTIzLjRjLjUtMS4xIC43LTIuNCAuNi0zLjZzLS41LTIuNC0xLjItMy41LTEuNi0xLjktMi44LTIuNS0yLjQtLjgtMy42LS44bC0yNS44IC45Yy0xLjItMS41LTIuNC0yLjktMy42LTQuNEw0MzkgODEuOGMuMy0xLjIgLjMtMi41LS4xLTMuN3MtMS0yLjMtMS45LTMuMi0yLTEuNS0zLjItMS45LTIuNS0uNC0zLjctLjFMNDA1IDc4LjljLTEuNC0xLjItMi45LTIuNC00LjQtMy42bC45LTI1LjhjLjEtMS4zLS4yLTIuNS0uOC0zLjZzLTEuNC0yLjEtMi41LTIuOC0yLjItMS4xLTMuNS0xLjItMi41IC4xLTMuNyAuNkwzNjcuNyA1My4yYy0xLjctLjktMy40LTEuOC01LjEtMi43bC00LjItMjUuNGMtLjItMS4yLS43LTIuNC0xLjUtMy40cy0xLjgtMS43LTIuOS0yLjItMi40LS43LTMuNy0uNS0yLjQgLjYtMy40IDEuM0wzMjYgMzUuM2MtMS45LS42LTMuOC0xLjEtNS42LTEuN2wtOS0yNGMtLjQtMS4yLTEuMi0yLjItMi4xLTNzLTIuMS0xLjQtMy4zLTEuNi0yLjUtLjItMy43IC4yLTIuMyAxLjEtMy4xIDJMMjgxLjYgMjUuOWMtMi0uMi0zLjktLjQtNS45LS41TDI2Mi4zIDMuNWMtLjctMS4xLTEuNi0xLjktMi43LTIuNnMtMi4zLS45LTMuNi0uOS0yLjUgLjMtMy42IC45LTIgMS41LTIuNyAyLjZMMjM2LjIgMjUuM2MtMiAuMi0zLjkgLjMtNS45IC42TDIxMi45IDcuMWMtLjktLjktMS45LTEuNi0zLjEtMnMtMi41LS41LTMuNy0uMi0yLjQgLjgtMy4zIDEuNi0xLjcgMS44LTIuMSAzbC05IDI0Yy0xLjkgLjYtMy44IDEuMS01LjcgMS43bC0yMC44LTE1Yy0xLS43LTIuMi0xLjItMy40LTEuM3MtMi41IDAtMy43IC41LTIuMiAxLjItMi45IDIuMi0xLjMgMi4xLTEuNSAzLjRsLTQuMiAyNS40Yy0xLjcgLjktMy40IDEuOC01LjIgMi43TDEyMC45IDQyLjZjLTEuMS0uNS0yLjQtLjctMy43LS42cy0yLjUgLjUtMy41IDEuMi0xLjkgMS43LTIuNSAyLjgtLjggMi40LS44IDMuNmwuOSAyNS44Yy0xLjUgMS4yLTMgMi40LTQuNCAzLjZMODEuOCA3M2MtMS4yLS4zLTIuNS0uMy0zLjcgLjFzLTIuMyAxLTMuMiAxLjktMS41IDItMS45IDMuMi0uNCAyLjUtLjEgMy43TDc4LjkgMTA3Yy0xLjIgMS40LTIuNCAyLjktMy42IDQuNGwtMjUuOC0uOWMtMS4zIDAtMi41IC4yLTMuNiAuOHMtMi4xIDEuNC0yLjggMi40LTEuMSAyLjItMS4yIDMuNSAuMSAyLjUgLjYgMy42bDEwLjcgMjMuNGMtLjkgMS43LTEuOCAzLjQtMi43IDUuMmwtMjUuNCA0LjFjLTEuMiAuMi0yLjQgLjctMy40IDEuNXMtMS43IDEuOC0yLjIgMi45LS43IDIuNC0uNSAzLjcgLjYgMi40IDEuMyAzLjRsMTUgMjAuOGMtLjYgMS45LTEuMSAzLjgtMS43IDUuN2wtMjQgOWMtMS4yIC40LTIuMiAxLjItMyAyLjFzLTEuNCAyLjEtMS42IDMuMy0uMiAyLjUgLjIgMy43IDEuMSAyLjMgMiAzLjFsMTguNyAxNy41Yy0uMiAyLS40IDMuOS0uNiA1LjlMMy41IDI0OS44Yy0xLjEgLjctMS45IDEuNi0yLjYgMi43cy0uOSAyLjMtLjkgMy42IC4zIDIuNSAuOSAzLjYgMS41IDIgMi42IDIuN2wyMS44IDEzLjVjLjIgMiAuMyAzLjkgLjYgNS45TDcuMSAyOTkuMWMtLjkgLjktMS42IDEuOS0yIDMuMXMtLjUgMi41LS4yIDMuNyAuOCAyLjQgMS42IDMuMyAxLjggMS43IDMgMi4xbDI0IDljLjYgMS45IDEuMSAzLjggMS43IDUuNmwtMTUgMjAuOGMtLjcgMS0xLjIgMi4yLTEuMyAzLjRzMCAyLjUgLjUgMy43IDEuMiAyLjIgMi4yIDIuOSAyLjEgMS4zIDMuNCAxLjVsMjUuNCA0LjJjLjkgMS43IDEuOCAzLjQgMi43IDUuMUw0Mi42IDM5MS4xYy0uNSAxLjEtLjcgMi40LS42IDMuNnMuNSAyLjUgMS4yIDMuNWMuNyAxLjEgMS42IDEuOSAyLjcgMi41czIuNCAuOCAzLjYgLjhsMjUuOC0uOWMxLjIgMS41IDIuNCAyLjkgMy42IDQuNEw3MyA0MzAuMmMtLjMgMS4yLS4zIDIuNSAuMSAzLjdzMSAyLjMgMS45IDMuMiAyIDEuNSAzLjIgMS45IDIuNSAuNCAzLjcgLjFsMjUuMi01LjljMS41IDEuMiAyLjkgMi40IDQuNCAzLjZsLS45IDI1LjhjMCAxLjMgLjIgMi41IC44IDMuNnMxLjQgMi4xIDIuNSAyLjggMi4yIDEuMSAzLjUgMS4yIDIuNS0uMSAzLjYtLjZsMjMuNC0xMC43YzEuNyAuOSAzLjQgMS44IDUuMSAyLjdsNC4yIDI1LjRjLjIgMS4yIC43IDIuNCAxLjUgMy40czEuOCAxLjggMi45IDIuMiAyLjQgLjcgMy43IC41IDIuNC0uNiAzLjQtMS4zbDIwLjgtMTVjMS45IC42IDMuOCAxLjEgNS42IDEuN2w5IDI0Yy40IDEuMiAxLjIgMi4yIDIuMSAzczIuMSAxLjQgMy4zIDEuNiAyLjUgLjIgMy43LS4yIDIuMy0xLjEgMy4xLTJsMTcuNS0xOC43YzIgLjIgMy45IC40IDUuOSAuNmwxMy41IDIxLjhjLjcgMS4xIDEuNiAxLjkgMi43IDIuNnMyLjMgLjkgMy42IC45IDIuNS0uMyAzLjYtLjkgMi0xLjUgMi43LTIuNmwxMy41LTIxLjhjMi0uMiAzLjktLjMgNS45LS42bDE3LjUgMTguN2MuOSAuOSAxLjkgMS42IDMuMSAyczIuNSAuNSAzLjcgLjIgMi40LS44IDMuMy0xLjYgMS43LTEuOCAyLjEtM2w5LTI0YzEuOS0uNiAzLjgtMS4xIDUuNi0xLjdsMjAuOCAxNWMxIC43IDIuMiAxLjIgMy40IDEuM3MyLjUgMCAzLjctLjUgMi4yLTEuMiAyLjktMi4yIDEuMy0yLjEgMS41LTMuNGw0LjItMjUuNGMxLjctLjkgMy40LTEuOCA1LjEtMi43bDIzLjQgMTAuN2MxLjEgLjUgMi40IC43IDMuNiAuNnMyLjQtLjUgMy41LTEuMiAxLjktMS42IDIuNS0yLjggLjgtMi40IC44LTMuNmwtLjktMjUuOGMxLjUtMS4yIDIuOS0yLjQgNC40LTMuNmwyNS4yIDUuOWMxLjIgLjMgMi41IC4zIDMuNy0uMXMyLjMtMSAzLjItMS45IDEuNS0yIDEuOS0zLjIgLjQtMi41IC4xLTMuN0w0MzMuMSA0MDVjMS4yLTEuNCAyLjQtMi45IDMuNi00LjRsMjUuOCAuOWMxLjMgLjEgMi41LS4yIDMuNi0uOHMyLjEtMS40IDIuOC0yLjVjLjctMSAxLjEtMi4yIDEuMi0zLjVzLS4xLTIuNS0uNi0zLjZsLTEwLjctMjMuNGMuOS0xLjcgMS44LTMuNCAyLjctNS4xbDI1LjQtNC4yYzEuMi0uMiAyLjQtLjcgMy40LTEuNXMxLjgtMS44IDIuMi0yLjkgLjctMi40IC41LTMuNy0uNi0yLjQtMS4zLTMuNGwtMTUtMjAuOGMuNi0xLjkgMS4xLTMuOCAxLjctNS42bDI0LTljMS4yLS40IDIuMi0xLjIgMy0yLjFzMS40LTIuMSAxLjYtMy4zIC4yLTIuNS0uMi0zLjctMS4xLTIuMy0yLTMuMWwtMTguNy0xNy41Yy4yLTEuOSAuNC0zLjkgLjYtNS45bDIxLjgtMTMuNWMxLjEtLjcgMS45LTEuNiAyLjYtMi43cy45LTIuMyAuOS0zLjYtLjMtMi41LS45LTMuNi0xLjUtMi0yLjYtMi43bDAgMHptLTE1MSAxMjkuMWMtMy42LS44LTcuNC0uMS0xMC41IDEuOXMtNS4zIDUuMi02IDguOGwtNy42IDM1LjdjLTI0LjYgMTEuMS01MS4zIDE2LjgtNzguMyAxNi43cy01My42LTYuMS03OC4xLTE3LjRsLTcuNi0zNS43Yy0uNC0xLjgtMS4xLTMuNS0yLjEtNXMtMi40LTIuOC0zLjktMy44LTMuMi0xLjctNS0yLTMuNi0uMy01LjQgLjFsLTMxLjUgNi44Yy01LjgtNi0xMS4zLTEyLjUtMTYuMy0xOS4ybDE1My4yIDBjMS43IDAgMi45LS4zIDIuOS0xLjlsMC01NC4yYzAtMS42LTEuMi0xLjktMi45LTEuOWwtNDQuOCAwIDAtMzQuNCA0OC41IDBjNC40IDAgMjMuNyAxLjMgMjkuOCAyNS45IDEuOSA3LjUgNi4yIDMyLjEgOS4xIDQwIDIuOSA4LjggMTQuNiAyNi41IDI3LjEgMjYuNWw3OSAwYy01LjMgNy4xLTExLjEgMTMuOC0xNy4zIDIwLjFsLTMyLjEtNi45em0yNS44IDM0LjVjMCAzLS45IDYtMi42IDguNXMtNCA0LjUtNi44IDUuNi01LjggMS41LTguOCAuOS01LjctMi03LjgtNC4yLTMuNi00LjgtNC4yLTcuOC0uMy02IC44LTguOCAzLjEtNS4yIDUuNi02LjkgNS40LTIuNiA4LjUtMi42bC40IDBjNCAuMSA3LjcgMS44IDEwLjUgNC42czQuMyA2LjcgNC4zIDEwLjZsLjEgMHptLTIyNS42LS43YzAgMy0uOSA2LTIuNiA4LjVzLTQuMSA0LjUtNi44IDUuNi01LjggMS41LTguOCAuOS01LjctMi03LjgtNC4yLTMuNi00LjgtNC4yLTcuOC0uMy02IC45LTguOCAzLjEtNS4yIDUuNi02LjggNS40LTIuNiA4LjUtMi42bC41IDBjNCAuMSA3LjcgMS44IDEwLjUgNC42czQuMyA2LjcgNC4zIDEwLjZsLjEgMHpNNjkuNiAyMzQuMmwzMi44LTE0LjZjMS43LS43IDMuMi0xLjggNC40LTMuMXMyLjItMi45IDIuOS00LjYgMS0zLjUgLjktNS4zLS41LTMuNi0xLjItNS4zbC02LjgtMTUuMiAyNi42IDAgMCAxMTkuNy01My42IDBjLTYuNi0yMy4yLTguNy00Ny42LTYuMS03MS42ek01OC4zIDE5OC4xYzAtMiAuNC00IDEuMi01LjhzMS45LTMuNSAzLjMtNC45IDMuMS0yLjUgNC45LTMuMyAzLjgtMS4yIDUuOC0xLjJsLjUgMGMzIC4xIDUuOSAxIDguMyAyLjhzNC4zIDQuMSA1LjQgNi45IDEuMyA1LjggLjcgOC44LTIuMSA1LjYtNC4zIDcuNy00LjkgMy41LTcuOCA0LjEtNiAuMi04LjctLjktNS4xLTMuMS02LjgtNS42LTIuNS01LjQtMi41LTguNGwwIDB6bTE1NS4yIDI0LjVsMC0zNS4zIDYzLjMgMGMzLjMgMCAyMy4xIDMuOCAyMy4xIDE4LjYgMCAxMi4zLTE1LjIgMTYuNy0yNy43IDE2LjdsLTU4LjcgMHpNMzk5IDMwNi43Yy05LjggMS4xLTIwLjYtNC4xLTIyLTEwLjEtNS44LTMyLjUtMTUuNC0zOS40LTMwLjYtNTEuNCAxOC45LTEyIDM4LjUtMjkuNiAzOC41LTUzLjMgMC0yNS41LTE3LjUtNDEuNi0yOS40LTQ5LjUtMTYuOC0xMS0zNS4zLTEzLjItNDAuMy0xMy4ybC0xOTguOSAwYzI3LjUtMzAuNyA2NC40LTUxLjUgMTA0LjktNTkuMmwyMy41IDI0LjZjMS4zIDEuMyAyLjggMi40IDQuNCAzLjFzMy41IDEuMSA1LjMgMS4yIDMuNi0uMyA1LjMtLjkgMy4yLTEuNyA0LjYtMi45bDI2LjMtMjVjMjYuOCA1IDUyLjEgMTUuOCA3NC4zIDMxLjZzNDAuNiAzNi4yIDU0LjEgNTkuOWwtMTggNDAuNmMtMS41IDMuNC0xLjUgNy4yLS4yIDEwLjZzMy45IDYuMiA3LjMgNy43bDM0LjYgMTUuM2MxLjEgMTAuOCAxLjIgMjEuNyAuNCAzMi41bC0xOS4zIDBjLTEuOSAwLTIuNyAxLjMtMi43IDMuMWwwIDguOGMwIDIwLjgtMTEuNyAyNS4zLTIyIDI2LjV6TTI0MCA2MC4yYzAtNCAxLjYtNy45IDQuNS0xMC43czYuNy00LjUgMTAuNy00LjVsLjQgMGMzIC4xIDUuOSAxIDguNCAyLjhzNC4zIDQuMSA1LjQgNi45IDEuMyA1LjggLjcgOC44LTIuMSA1LjYtNC4zIDcuNy00LjkgMy41LTcuOCA0LTYgLjItOC43LS45LTUuMS0zLjEtNi44LTUuNi0yLjUtNS40LTIuNS04LjR6TTQzNi44IDIxNGMtMiAwLTQtLjQtNS44LTEuMnMtMy41LTEuOS00LjktMy4zLTIuNS0zLjEtMy4zLTQuOS0xLjItMy44LTEuMi01LjggLjQtNCAxLjItNS44IDEuOS0zLjUgMy4zLTQuOSAzLjEtMi41IDQuOS0zLjMgMy44LTEuMiA1LjgtMS4ybC40IDBjNCAuMSA3LjkgMS43IDEwLjcgNC42czQuNCA2LjggNC4zIDEwLjgtMS43IDcuOS00LjYgMTAuNy02LjggNC40LTEwLjggNC4zeiJdfSxqZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG9ybmJpbGwiLGljb246WzUxMiw1MTIsW10sImY1OTIiLCJNNzYuOCAzNzAuM2MxIDcuOC0uNCAxNS44LTQuMSAyMi44cy05LjYgMTIuNi0xNi43IDE2LjEtMTUuMSA0LjctMjIuOSAzLjMtMTUtNS4xLTIwLjYtMTAuNy05LjItMTIuOS0xMC41LTIwLjcgMC0xNS44IDMuNi0yMi45IDkuMy0xMi44IDE2LjMtMTYuNSAxNS01IDIyLjktMy45Yy03OC4zLTExMS4zIDUyLTE5MC41IDUyLTE5MC41LTUuOSA0My04LjIgOTEuMi04LjIgOTEuMi02Ny4zIDQxLjUgLjkgNjQuMSAzOS44IDcyLjkgOS45IDI3IDI3LjggNTAuMiA1MS40IDY2LjdzNTEuNiAyNS4zIDgwLjMgMjUuM2MxLjkgMCAzLjgtLjIgNS43LS4zbC4xIDE4LjljLTk5LjIgMS40LTE1OC43LTI5LjEtMTg4LjktNTEuNnptMTA4LTMyNy43Yy45LTcuMi0uMi0xNC42LTMuNC0yMS4yLTMtNi4yLTcuNi0xMS41LTEzLjQtMTUuM3MtMTIuNS01LjktMTkuNC02LjItMTMuOCAxLjQtMTkuOCA0LjctMTEuMSA4LjMtMTQuNSAxNC4zLTUuMiAxMi44LTUgMTkuNyAyLjIgMTMuNyA1LjkgMTkuNSA4LjkgMTAuNiAxNS4xIDEzLjYgMTMuMSA0LjQgMjAgMy45Yy0yMi42IDI5LjktNTMuOCA4OS42LTUyLjQgMTkwbDIxLjgtLjJjMC0uOS0uMS0xLjgtLjEtMi43IDAtMjggOC40LTU1LjMgMjQuMS03OC41czM3LjktNDEuMiA2My44LTUxLjZjOC0zNy43IDMwLjctMTE0LjMgNzMuOC00NC4zIDAgMCA0OC4xIDIuNCA5MS4yIDguMiAwIDAtNzcuOC0xMjgtMTg3LjYtNTQuMWwwIDB6TTQ4OSAxNzYuOGM2LjMtMyAxMS43LTcuNyAxNS41LTEzLjZzNS45LTEyLjcgNi4xLTE5LjgtMS42LTE0LTUuMi0yMC04LjctMTEtMTQuOS0xNC4zLTEzLjItNC44LTIwLjItNC40LTEzLjggMi44LTE5LjUgNi45LTEwLjIgOS42LTEzIDE2LjEtMy43IDEzLjYtMi43IDIwLjVjLTMxLjctMjEuOS04OS44LTQ5LjEtMTgzLjQtNDcuN2wuMSAyMi41YzIuNy0uMiA1LjQtLjQgOC4xLS40IDI4LjEgMCA1NS42IDguNSA3OC45IDI0LjNzNDEuMiAzOC4zIDUxLjYgNjQuNWMzOS4xIDkgMTA1LjEgMzEuNiAzOC41IDcyLjUgMCAwLTIuMyA0OC4xLTguMiA5MS4yIDAgMCAxMzMuNC04MS4yIDQ5LTE5NC42IDYuNiAuNiAxMy4zLS42IDE5LjMtMy41bDAgMHpNMzc0LjQgNDM2LjJjMjEuNC0zMi41IDQ2LjQtODkuNyA0NS4xLTE3OS43bC0xOS41IC4xYy4xIDIuMSAuMyA0LjEgLjMgNi4yIDAgMjguNi04LjggNTYuNS0yNS4xIDgwcy0zOS41IDQxLjQtNjYuMyA1MS40Yy04LjkgMzktMzEuNCAxMDYuNy03Mi44IDM5LjUgMCAwLTQ4LjEtMi4zLTkxLjItOC4yIDAgMCA3OS45IDEzMS4zIDE5MS45IDUxIC4zIDQuOSAxLjUgOS42IDMuNiAxNCAyLjkgNi4xIDcuNSAxMS40IDEzLjEgMTUuMXMxMi4yIDYgMTkgNi40IDEzLjYtMS4xIDE5LjYtNC4yIDExLjEtNy44IDE0LjctMTMuNiA1LjYtMTIuNCA1LjctMTkuMi0xLjUtMTMuNS00LjgtMTkuNC04LjItMTAuOS0xNC4xLTE0LjMtMTIuNi01LjItMTkuNC01LjFsMC0uMXoiXX0sVWdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBocCIsaWNvbjpbNjQwLDUxMixbXSwiZjQ1NyIsIk0zMjAgMTA0LjVjMTcxLjQgMCAzMDMuMiA3Mi4yIDMwMy4yIDE1MS41UzQ5MS4zIDQwNy41IDMyMCA0MDcuNUMxNDguNiA0MDcuNSAxNi44IDMzNS4zIDE2LjggMjU2UzE0OC43IDEwNC41IDMyMCAxMDQuNXptMC0xNi44QzE0My4zIDg3LjcgMCAxNjMgMCAyNTZTMTQzLjMgNDI0LjMgMzIwIDQyNC4zIDY0MCAzNDkgNjQwIDI1NiA0OTYuNyA4Ny43IDMyMCA4Ny43ek0yMTguMiAyNDIuNWMtNy45IDQwLjUtMzUuOCAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzggMCA2My44LTQuMSA1Ni40IDM0LjN6TTk3LjQgMzUwLjNsMzYuNyAwIDguNy00NC44YzQxLjEgMCA2Ni42IDMgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43bC03MC43IDAtMzIuNyAxNjguN3pNMjgzLjEgMTM2LjdsMzYuNSAwLTguNyA0NC44YzMxLjUgMCA2MC43LTIuMyA3NC44IDEwLjcgMTQuOCAxMy42IDcuNyAzMS04LjMgMTEzLjFsLTM3IDBjMTUuNC03OS40IDE4LjMtODYgMTIuNy05Mi01LjQtNS44LTE3LjctNC42LTQ3LjQtNC42bC0xOC44IDk2LjYtMzYuNSAwIDMyLjctMTY4LjZ6TTUwNSAyNDIuNWMtOCA0MS4xLTM2LjcgMzYuMy03MC4xIDM2LjNsMTMuNy03MC42YzM4LjIgMCA2My44LTQuMSA1Ni40IDM0LjN6TTM4NC4yIDM1MC4zbDM2LjggMCA4LjctNDQuOGM0My4yIDAgNjcuMSAyLjUgOTAuMi0xOS4xIDI2LjEtMjQgMzIuOS02Ni43IDE0LjMtODguMS05LjctMTEuMi0yNS4zLTE2LjctNDYuNS0xNi43bC03MC43IDAtMzIuOCAxNjguN3oiXX0sV2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpc3F1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTdkNSIsIk0yOTAuMiA1MTJjLTYyLjYgMC0xMTkuOS0yMi45LTE2NC4yLTYwLjhMMTcgNDY2LjEgNTkuMSAzNjIuMmMtMTQuNy0zMi40LTIyLjktNjguMy0yMi45LTEwNi4yIDAtMTQxLjQgMTEzLjctMjU2IDI1NC0yNTYgMTQwLjMgMCAyNTQgMTE0LjYgMjU0IDI1NiAwIDE0MS40LTExMy43IDI1Ni0yNTQgMjU2ek00MjguOSAyNTUuM2wwLS43QzQyOC45IDE4MC43IDM3Ni44IDEyOCAyODcgMTI4bC05NyAwIDAgMjU2IDk1LjYgMGM5MC41IDAgMTQzLjQtNTQuOSAxNDMuNC0xMjguN3pNMjg4IDMyMS4xbC0yOC40IDAgMC0xMzAuMiAyOC40IDBjNDEuNyAwIDY5LjMgMjMuOCA2OS4zIDY0LjdsMCAuN2MwIDQxLjMtMjcuNyA2NC43LTY5LjMgNjQuN3oiXX0sR2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IjUwMHB4IixpY29uOlszODQsNTEyLFtdLCJmMjZlIiwiTTcxLjggMzQ0LjNjLTYuNS0xNC4yLTYuOS0xOC4zIDcuNC0yMy4xIDI1LjYtOCA4IDkuMiA0My4yIDQ5LjJsLjMgMCAwLTkzLjljMS4yLTUwLjIgNDQtOTIuMiA5Ny43LTkyLjIgNTMuOSAwIDk3LjcgNDMuNSA5Ny43IDk2LjggMCA2My40LTYwLjggMTEzLjItMTI4LjUgOTMuMy0xMC41LTQuMi0yLjEtMzEuNyA4LjUtMjguNiA1MyAwIDg5LjQtMTAuMSA4OS40LTY0LjQgMC02MS03Ny4xLTg5LjYtMTE2LjktNDQuNi0yMy41IDI2LjQtMTcuNiA0Mi4xLTE3LjYgMTU3LjYgNTAuNyAzMSAxMTguMyAyMiAxNjAuNC0yMC4xIDI0LjgtMjQuOCAzOC41LTU4IDM4LjUtOTMgMC0zNS4yLTEzLjgtNjguMi0zOC44LTkzLjMtMjQuOC0yNC44LTU3LjgtMzguNS05My4zLTM4LjVTMTUxIDE2My4zIDEyNi4zIDE4OGMtLjMgLjMtMTYgMTYuNS0yMS4yIDIzLjlsLS41IC42Yy0zLjMgNC43LTYuMyA5LjEtMjAuMSA2LjEtNi45LTEuNy0xNC4zLTUuOC0xNC4zLTExLjhMNzAuMiAyMGMwLTUgMy45LTEwLjUgMTAuNS0xMC41TDMyMiA5LjVjOC4zIDAgOC4zIDExLjYgOC4zIDE1LjEgMCAzLjkgMCAxNS4xLTguMyAxNS4xbC0yMjMuMiAwIDAgMTMyLjkgLjMgMGMxMDQuMi0xMDkuOCAyODIuOC0zNiAyODIuOCAxMDguOSAwIDE3OC4xLTI0NC44IDIyMC4zLTMxMC4xIDYyLjh6TTEzNS4xIDgzLjVjLS41IDQuMiA0LjYgMjQuNSAxNC42IDIwLjYgMTI0LjgtNDcuNSAyMDIuOCA0MC40IDIwOS40IDQwLjQgNC44IDAgMjIuOC0xNS4zIDE0LjMtMjIuOC05My4yLTg5LTIzNC41LTU3LTIzOC4zLTM4LjJ6TTM2MS41IDQxNC43Yy0xMTAgMTA5LjktMjk5IDYwLjgtMzMyLTEwNC4yIDAtMTIuMi0zMC40LTcuNC0yOC45IDMuMyAyNCAxNzMuNCAyNDYgMjU2LjkgMzgxLjYgMTIxLjMgNi45LTcuOC0xMi42LTI4LjQtMjAuNy0yMC40ek0xODIuMSAzMDYuNmMwIDQgNC4zIDcuMyA1LjUgOC41IDMgMyA2LjEgNC40IDguNSA0LjQgMy44IDAgMi42IC4yIDIyLjMtMTkuNSAxOS42IDE5LjMgMTkuMSAxOS41IDIyLjMgMTkuNSA1LjQgMCAxOC41LTEwLjQgMTAuNy0xOC4ybC0xNy4zLTE3LjMgMTguMi0xOC4yYzYuMy02LjgtMTAuMS0yMS44LTE2LjItMTUuN0wyMTguMiAyNjhjLTE4LjYtMTguOC0xOC40LTE5LjUtMjEuNS0xOS41LTUgMC0xOCAxMS43LTEyLjQgMTcuM0wyMDIuNSAyODRjLTE4LjEgMTcuOS0yMC40IDE5LjItMjAuNCAyMi42eiJdfSxZZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWZmaWxpYXRldGhlbWUiLGljb246WzUxMiw1MTIsW10sImYzNmIiLCJNMTU5LjcgMjM3LjRDMTA4LjQgMzA4LjMgNDMuMSAzNDguMiAxNCAzMjYuNi0xNS4yIDMwNC45IDIuOCAyMzAgNTQuMiAxNTkuMSAxMDUuNSA4OC4yIDE3MC44IDQ4LjMgMTk5LjkgNjkuOXMxMS4xIDk2LjYtNDAuMiAxNjcuNXptMzUxLjItNTcuM2MtNzMuOCAxMjMuNC0xOTEuOSAxODcuNy0yNjQuNSAxNDMuNi0yNS0xNS4yLTQxLjMtNDEuMi00OS03My44LTMzLjYgNjQuOC05Mi44IDExMy44LTE2NC4xIDEzMy4yIDQ5LjggNTkuMyAxMjQuMSA5Ni45IDIwNyA5Ni45IDE1MCAwIDI3MS42LTEyMy4xIDI3MS42LTI3NC45IC4xLTguNS0uMy0xNi44LTEtMjV6Il19LFpnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWQtcml2ZXIiLGljb246WzQ0OCw1MTIsW10sImYzZTMiLCJNMzUzLjIgMzJMOTQuOCAzMkM0Mi40IDMyIDAgNzQuNCAwIDEyNi44TDAgMzg1LjJDMCA0MzcuNiA0Mi40IDQ4MCA5NC44IDQ4MGwyNTguNCAwYzUyLjQgMCA5NC44LTQyLjQgOTQuOC05NC44bDAtMjU4LjRDNDQ4IDc0LjQgNDA1LjYgMzIgMzUzLjIgMzJ6TTE0NC45IDIwMC45bDAgNTYuM2MwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlsMC0xNTQuMmMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWwxNTQuMiAwYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwtNTYuMyAwYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNHptMTc2LjMgNzJsLTU2LjMgMGMtMTIuMy0uNi0yNC42IDExLjYtMjQgMjRsMCA1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwwLTE1NC4yYzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45bDE1NC4yIDBjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45eiJdfSxIZj17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0d2l0dGVyIixpY29uOls1MTIsNTEyLFtdLCJmMDk5IiwiTTQ1OS40IDE1MS43Yy4zIDQuNSAuMyA5LjEgLjMgMTMuNiAwIDEzOC43LTEwNS42IDI5OC42LTI5OC42IDI5OC42LTU5LjUgMC0xMTQuNy0xNy4yLTE2MS4xLTQ3LjEgOC40IDEgMTYuNiAxLjMgMjUuMyAxLjMgNDkuMSAwIDk0LjItMTYuNiAxMzAuMy00NC44LTQ2LjEtMS04NC44LTMxLjItOTguMS03Mi44IDYuNSAxIDEzIDEuNiAxOS44IDEuNiA5LjQgMCAxOC44LTEuMyAyNy42LTMuNi00OC4xLTkuNy04NC4xLTUyLTg0LjEtMTAzbDAtMS4zYzE0IDcuOCAzMC4yIDEyLjcgNDcuNCAxMy4zLTI4LjMtMTguOC00Ni44LTUxLTQ2LjgtODcuNCAwLTE5LjUgNS4yLTM3LjQgMTQuMy01MyA1MS43IDYzLjcgMTI5LjMgMTA1LjMgMjE2LjQgMTA5LjgtMS42LTcuOC0yLjYtMTUuOS0yLjYtMjQgMC01Ny44IDQ2LjgtMTA0LjkgMTA0LjktMTA0LjkgMzAuMiAwIDU3LjUgMTIuNyA3Ni43IDMzLjEgMjMuNy00LjUgNDYuNS0xMy4zIDY2LjYtMjUuMy03LjggMjQuNC0yNC40IDQ0LjgtNDYuMSA1Ny44IDIxLjEtMi4zIDQxLjYtOC4xIDYwLjQtMTYuMi0xNC4zIDIwLjgtMzIuMiAzOS4zLTUyLjYgNTQuM3oiXX0sWGdlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcnQtYXdlc29tZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4NiIsIk00ODkuNSAyODcuOWwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuNiAwIDAtMTc4LjNjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuNiAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuNiAwIDAtMzJjMC02LTgtNC42LTExLjctNC42bDAtMzhjOC4zLTIgMTcuMS0zLjQgMjUuNy0zLjQgMTAuOSAwIDIwLjkgNC4zIDMxLjQgNC4zIDQuNiAwIDI3LjctMS4xIDI3LjctOGwwLTYwYzAtMi42LTItNC42LTQuNi00LjYtNS4xIDAtMTUuMSA0LjMtMjQgNC4zLTkuNyAwLTIwLjktNC4zLTMyLjYtNC4zLTggMC0xNiAxLjEtMjMuNyAyLjlsMC00LjljNS40LTIuNiA5LjEtOC4zIDkuMS0xNC4zIDAtMjAuNy0zMS40LTIwLjgtMzEuNCAwIDAgNiAzLjcgMTEuNyA5LjEgMTQuM2wwIDExMS43Yy0zLjcgMC0xMS43LTEuNC0xMS43IDQuNmwwIDMyLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDMyLTM2LjMgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDE3OC4zLTM2LjYgMCAwLTMyYzAtMi42LTItNC42LTQuNi00LjZsLTI3LjQgMGMtMi42IDAtNC42IDItNC42IDQuNmwwIDIxOS41IDE4Mi45IDAgMC05NmMwLTcyLjYgMTA5LjctNzIuNiAxMDkuNyAwbDAgOTYgMTgyLjkgMCAwLTIxOS41Yy4xLTIuNi0xLjktNC42LTQuNS00LjZ6bS0yODguMS00LjVjMCAyLjYtMiA0LjYtNC42IDQuNmwtMjcuNCAwYy0yLjYgMC00LjYtMi00LjYtNC42bDAtNjRjMC0yLjYgMi00LjYgNC42LTQuNmwyNy40IDBjMi42IDAgNC42IDIgNC42IDQuNmwwIDY0em0xNDYuNCAwYzAgMi42LTIgNC42LTQuNiA0LjZsLTI3LjQgMGMtMi42IDAtNC42LTItNC42LTQuNmwwLTY0YzAtMi42IDItNC42IDQuNi00LjZsMjcuNCAwYzIuNiAwIDQuNiAyIDQuNiA0LjZsMCA2NHoiXX0sS2dlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1peGVyIixpY29uOls0NDgsNTEyLFtdLCJlMDU2IiwiTTgyLjYgNzYuMWMtMy44LTUuMS04LjctOS40LTE0LjItMTIuNXMtMTEuNy01LjEtMTguMS01LjctMTIuOCAuMS0xOC44IDIuMi0xMS42IDUuMy0xNi4zIDkuNmMtMTcuNiAxNi4yLTE5IDQzLjUtNC44IDYyLjhsOTEuOCAxMjMtOTIuMyAxMjQuMWMtMTQuMiAxOS4zLTEzLjEgNDYuNiA0LjcgNjIuOCA0LjcgNC4zIDEwLjMgNy42IDE2LjMgOS42czEyLjUgMi44IDE4LjggMi4yIDEyLjUtMi41IDE4LjEtNS43IDEwLjQtNy40IDE0LjItMTIuNUwyMTAuOSAyNjIuN2MxLjUtMi4xIDIuMy00LjYgMi4zLTcuMXMtLjgtNS0yLjMtNy4xTDgyLjYgNzYuMXpNNDM4LjIgMzc5LjZsLTkyLjMtMTI0LjEgOTEuOC0xMjNjMTQuMi0xOS4yIDEyLjgtNDYuNi00LjctNjIuOC00LjctNC4zLTEwLjMtNy42LTE2LjMtOS42cy0xMi41LTIuOC0xOC44LTIuMi0xMi41IDIuNS0xOC4xIDUuNy0xMC40IDcuNC0xNC4yIDEyLjVsLTEyOCAxNzIuMWMtMS41IDIuMS0yLjMgNC42LTIuMyA3LjFzLjggNSAyLjMgNy4xTDM2NiA0MzUuOWMzLjggNS4xIDguNyA5LjQgMTQuMiAxMi41czExLjcgNS4xIDE4LjEgNS43IDEyLjgtLjEgMTguOC0yLjIgMTEuNi01LjMgMTYuMy05LjZjMTcuOC0xNi4yIDE5LTQzLjUgNC43LTYyLjh6Il19LFFnZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJseWZ0IixpY29uOls1MTIsNTEyLFtdLCJmM2MzIiwiTTAgODEuMWw3Ny44IDAgMCAyMDguN2MwIDMzLjEgMTUgNTIuOCAyNy4yIDYxLTEyLjcgMTEuMS01MS4yIDIwLjktODAuMi0yLjgtMTctMTQtMjQuOC0zNy4zLTI0LjgtNTlMMCA4MS4xek00ODUuOSAyNTQuNmwwLTIyIDIzLjggMCAwLTc2LjgtMjYuMSAwYy0xMC4xLTQ2LjMtNTEuMi04MC43LTEwMC4zLTgwLjctNTYuNiAwLTEwMi43IDQ2LTEwMi43IDEwMi43bDAgMTc5LjJjMTYgMi4zIDM1LjQtLjMgNTEuNy0xNCAxNy4xLTE0IDI0LjgtMzcuMiAyNC44LTU5bDAtNi43IDM4LjggMCAwLTc2LjgtMzguOCAwIDAtMjMuM2MwLTM0LjYgNTIuMi0zNC42IDUyLjIgMGwwIDc3LjFjMCA1Ni42IDQ2IDEwMi43IDEwMi43IDEwMi43bDAtNzYuNWMtMTQuNSAwLTI2LjEtMTEuNy0yNi4xLTI1Ljl6bS0yOTQuMy05OWwwIDExM2MwIDE1LjQtMjMuOCAxNS40LTIzLjggMGwwLTExMy03Ni44IDAgMCAxMzIuN2MwIDIzLjggOCA1NCA0NSA2My45IDM3IDkuOCA1OC4yLTEwLjYgNTguMi0xMC42LTIuMSAxMy40LTE0LjUgMjMuMy0zNC45IDI1LjMtMTUuNSAxLjYtMzUuMi0zLjYtNDUtNy44bDAgNzAuM2MyNS4xIDcuNSA1MS41IDkuOCA3Ny42IDQuNyA0Ny4xLTkuMSA3Ni44LTQ4LjQgNzYuOC0xMDAuOGwwLTE3OC4yLTc3LjEgMCAwIC41eiJdfSxKZ2U9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwbGUtcGF5IixpY29uOls2NDAsNTEyLFtdLCJmNDE1IiwiTTExNi45IDE1OC41Yy03LjUgOC45LTE5LjUgMTUuOS0zMS41IDE0LjktMS41LTEyIDQuNC0yNC44IDExLjMtMzIuNiA3LjUtOS4xIDIwLjYtMTUuNiAzMS4zLTE2LjEgMS4yIDEyLjQtMy43IDI0LjctMTEuMSAzMy44em0xMC45IDE3LjJjLTE3LjQtMS0zMi4zIDkuOS00MC41IDkuOS04LjQgMC0yMS05LjQtMzQuOC05LjEtMTcuOSAuMy0zNC41IDEwLjQtNDMuNiAyNi41LTE4LjggMzIuMy00LjkgODAgMTMuMyAxMDYuMyA4LjkgMTMgMTkuNSAyNy4zIDMzLjUgMjYuOCAxMy4zLS41IDE4LjUtOC42IDM0LjUtOC42IDE2LjEgMCAyMC44IDguNiAzNC44IDguNCAxNC41LS4zIDIzLjYtMTMgMzIuNS0yNiAxMC4xLTE0LjggMTQuMy0yOS4xIDE0LjUtMjkuOS0uMy0uMy0yOC0xMC45LTI4LjMtNDIuOS0uMy0yNi44IDIxLjktMzkuNSAyMi45LTQwLjMtMTIuNS0xOC42LTMyLTIwLjYtMzguOC0yMS4xem0xMDAuNC0zNi4ybDAgMTk0LjkgMzAuMyAwIDAtNjYuNiA0MS45IDBjMzguMyAwIDY1LjEtMjYuMyA2NS4xLTY0LjNzLTI2LjQtNjQtNjQuMS02NGwtNzMuMiAwek0yNTguNSAxNjVsMzQuOSAwYzI2LjMgMCA0MS4zIDE0IDQxLjMgMzguNnMtMTUgMzguOC00MS40IDM4LjhsLTM0LjggMCAwLTc3LjR6TTQyMC43IDMzNS45YzE5IDAgMzYuNi05LjYgNDQuNi0yNC45bC42IDAgMCAyMy40IDI4IDAgMC05N2MwLTI4LjEtMjIuNS00Ni4zLTU3LjEtNDYuMy0zMi4xIDAtNTUuOSAxOC40LTU2LjggNDMuNmwyNy4zIDBjMi4zLTEyIDEzLjQtMTkuOSAyOC42LTE5LjkgMTguNSAwIDI4LjkgOC42IDI4LjkgMjQuNWwwIDEwLjgtMzcuOCAyLjNjLTM1LjEgMi4xLTU0LjEgMTYuNS01NC4xIDQxLjUgLjEgMjUuMiAxOS43IDQyIDQ3LjggNDJ6bTguMi0yMy4xYy0xNi4xIDAtMjYuNC03LjgtMjYuNC0xOS42IDAtMTIuMyA5LjktMTkuNCAyOC44LTIwLjVsMzMuNi0yLjEgMCAxMWMwIDE4LjItMTUuNSAzMS4yLTM2IDMxLjJ6bTEwMi41IDc0LjZjMjkuNSAwIDQzLjQtMTEuMyA1NS41LTQ1LjRsNTMuMS0xNDktMzAuOCAwLTM1LjYgMTE1LjEtLjYgMC0zNS42LTExNS4xLTMxLjYgMCA1MS4yIDE0MS45LTIuOCA4LjZjLTQuNiAxNC42LTEyLjEgMjAuMy0yNS41IDIwLjMtMi40IDAtNy0uMy04LjktLjVsMCAyMy40YzEuOCAuNCA5LjMgLjcgMTEuNiAuN3oiXX0sZWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFydHN0YXRpb24iLGljb246WzUxMiw1MTIsW10sImY3N2EiLCJNMi4xIDM3Ny40bDQzIDc0LjNjNC4zIDguNSAxMC44IDE1LjcgMTguOSAyMC43czE3LjQgNy42IDI3IDcuNmwyODUuNCAwLTU5LjItMTAyLjYtMzE1LjEgMHpNNTAxLjkgMzUwTDMzNS43IDU5LjNjLTQuNC04LjItMTAuOS0xNS4xLTE4LjktMjBTMjk5LjcgMzIgMjkwLjQgMzJsLTg4LjQgMCAyNTcuMyA0NDcuNiA0MC43LTcwLjVjMS45LTMuMiAyMS0yOS43IDItNTkuMXpNMjc1LjIgMzA0LjVsLTExNS41LTIwMC0xMTUuNSAyMDAgMjMxIDB6Il19LHRiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJub2RlLWpzIixpY29uOls0NDgsNTEyLFtdLCJmM2QzIiwiTTIyNC41IDUwOGMtNi43IDAtMTMuNS0xLjgtMTkuNC01LjJsLTYxLjctMzYuNWMtOS4yLTUuMi00LjctNy0xLjctOCAxMi4zLTQuMyAxNC44LTUuMiAyNy45LTEyLjcgMS40LS44IDMuMi0uNSA0LjYgLjRsNDcuNCAyOC4xYzEuNyAxIDQuMSAxIDUuNyAwTDQxMiAzNjcuNWMxLjctMSAyLjgtMyAyLjgtNWwwLTIxMy4yYzAtMi4xLTEuMS00LTIuOS01LjFMMjI3LjMgMzcuN2MtMS43LTEtNC0xLTUuNyAwTDM3LjEgMTQ0LjNjLTEuOCAxLTIuOSAzLTIuOSA1LjFsMCAyMTMuMWMwIDIgMS4xIDQgMi45IDQuOWw1MC42IDI5LjJjMjcuNSAxMy43IDQ0LjMtMi40IDQ0LjMtMTguN2wwLTIxMC40YzAtMyAyLjQtNS4zIDUuNC01LjNsMjMuNCAwYzIuOSAwIDUuNCAyLjMgNS40IDUuM2wwIDIxMC41YzAgMzYuNi0yMCA1Ny42LTU0LjcgNTcuNi0xMC43IDAtMTkuMSAwLTQyLjUtMTEuNkwyMC42IDM5Ni4xYy0xMi02LjktMTkuNC0xOS44LTE5LjQtMzMuN2wwLTIxMy4xYzAtMTMuOCA3LjQtMjYuOCAxOS40LTMzLjdMMjA1LjEgOWMxMS43LTYuNiAyNy4yLTYuNiAzOC44IDBMNDI4LjYgMTE1LjdjMTIgNi45IDE5LjQgMTkuOCAxOS40IDMzLjdsMCAyMTMuMWMwIDEzLjgtNy40IDI2LjctMTkuNCAzMy43TDI0My45IDUwMi44Yy01LjkgMy40LTEyLjYgNS4yLTE5LjQgNS4yek0zNzMuNiAyOTcuOWMwLTM5LjktMjctNTAuNS04My43LTU4LTU3LjQtNy42LTYzLjItMTEuNS02My4yLTI0LjkgMC0xMS4xIDQuOS0yNS45IDQ3LjQtMjUuOSAzNy45IDAgNTEuOSA4LjIgNTcuNyAzMy44IC41IDIuNCAyLjcgNC4yIDUuMiA0LjJsMjQgMGMxLjUgMCAyLjktLjYgMy45LTEuN3MxLjUtMi42IDEuNC00LjFjLTMuNy00NC4xLTMzLTY0LjYtOTIuMi02NC42LTUyLjcgMC04NC4xIDIyLjItODQuMSA1OS41IDAgNDAuNCAzMS4zIDUxLjYgODEuOCA1Ni42IDYwLjUgNS45IDY1LjIgMTQuOCA2NS4yIDI2LjcgMCAyMC42LTE2LjYgMjkuNC01NS41IDI5LjQtNDguOSAwLTU5LjYtMTIuMy02My4yLTM2LjYtLjQtMi42LTIuNi00LjUtNS4zLTQuNWwtMjMuOSAwYy0zIDAtNS4zIDIuNC01LjMgNS4zIDAgMzEuMSAxNi45IDY4LjIgOTcuOCA2OC4yIDU4LjQtLjEgOTItMjMuMiA5Mi02My40eiJdfSxhYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5jaGFydGVkIixpY29uOls0NDgsNTEyLFtdLCJlMDg0IiwiTTE3MS44IDIzMi44YzEuMSAwIDIuMS0uMyAzLS45czEuNi0xLjQgMi0yLjRjMi4yLTkuOCA3LjQtMTguNiAxNC45LTI1LjMgMS4yLS44IDEuNy0yLjUgMS43LTQuMS0uMS0uNy0uMy0xLjMtLjYtMS45cy0uOS0xLjEtMS40LTEuNEw3NC41IDEyOC41IDE0OS4xIDg1YzEuNS0uOCAyLjctMiAzLjYtMy41czEuNC0zLjEgMS40LTQuOGMwLTEuNy0uNC0zLjQtMS4zLTQuOXMtMi4yLTIuNy0zLjctMy40TDEyNi43IDU1LjZjLTEuNS0uOC0zLjEtMS4yLTQuOC0xLjJzLTMuMyAuNC00LjggMS4yTDE3IDExMy42Yy0xLjUgLjgtMi43IDItMy42IDMuNXMtMS40IDMuMS0xLjQgNC44TDEyIDIzN2MwIDEuNyAuNCAzLjQgMS4zIDQuOXMyLjIgMi43IDMuNyAzLjRsMjIuNCAxMi44YzEuNSAuOSAzLjIgMS4zIDUgMS4yIDIuNCAuMSA0LjgtLjggNi42LTIuNSAxLjgtMS45IDIuOC00LjQgMi45LTdsMC04NS4zIDExNS45IDY3LjljLjYgLjMgMS40IC40IDIuMSAuNHpNMzIzLjQgMzc3LjdjLTEuNyAuMS0zLjQgLjUtNSAxLjJsLTc0LjUgNDMuMSAwLTEzNC4yYzAtMi45LTIuOS01LjgtNi4yLTQuNi05LjQgMi44LTE5LjUgMy0yOSAuNC0uNy0uMi0xLjUtLjItMi4yLS4xcy0xLjQgLjQtMiAuOS0xLjEgMS0xLjQgMS43LS41IDEuNC0uNSAyLjFsMCAxMzMuMy03NC41LTQzLjFjLTEuNS0uOS0zLjItMS4zLTUtMS4yLTIuNSAwLTQuOSAxLTYuNyAyLjhzLTIuOCA0LjItMi44IDYuN2wwIDI2LjFjMCAxLjcgLjQgMy40IDEuMyA0LjlzMi4yIDIuNyAzLjcgMy40bDEwMC4yIDU3LjZjMS41IC45IDMuMiAxLjMgNSAxLjIgMS43IDAgMy40LS40IDUtMS4ybDEwMC4yLTU3LjZjMS41LS44IDIuNy0yIDMuNi0zLjVzMS40LTMuMSAxLjQtNC44bDAtMjYuMWMtLjgtNC42LTUuNC05LjEtMTAuNC05LjF6TTI4Ni4xIDc4YTIzIDIzIDAgMSAwIDAtNDYgMjMgMjMgMCAxIDAgMCA0NnptNjMuNi0xMC4xYTIzIDIzIDAgMSAwIDAgNDYgMjMgMjMgMCAxIDAgMC00NnptNjMuMiA4My43YTIzIDIzIDAgMSAwIDAtNDYgMjMgMjMgMCAxIDAgMCA0NnptLTYzLjItOS4yYTIzIDIzIDAgMSAwIDAgNDYgMjMgMjMgMCAxIDAgMC00NnptLTYzLjYgODMuMmM0LjUgMCA5LTEuMyAxMi44LTMuOXM2LjctNi4xIDguNS0xMC4zIDIuMi04LjggMS4zLTEzLjMtMy4xLTguNi02LjMtMTEuOC03LjMtNS40LTExLjgtNi4zLTkuMS0uNC0xMy4zIDEuMy03LjggNC43LTEwLjMgOC41LTMuOSA4LjItMy45IDEyLjhjMCAzIC42IDYgMS44IDguOHMyLjkgNS4zIDUgNy41IDQuNyAzLjggNy41IDUgNS44IDEuOCA4LjggMS44bDAgMHpNMjI0IDI2MmM0LjUgMCA5LTEuNCAxMi44LTMuOXM2LjctNi4xIDguNS0xMC4zIDIuMi04LjggMS4zLTEzLjMtMy4xLTguNi02LjMtMTEuOC03LjMtNS40LTExLjgtNi4zLTkuMS0uNC0xMy4zIDEuMy03LjggNC43LTEwLjMgOC41LTMuOSA4LjItMy45IDEyLjhjMCAzIC42IDYgMS43IDguOHMyLjggNS4zIDUgNy41IDQuNyAzLjggNy41IDUgNS44IDEuOCA4LjggMS44bDAgMHptMTg4LjktODIuNGMtNC42IDAtOSAxLjMtMTIuOCAzLjlzLTYuNyA2LjEtOC41IDEwLjMtMi4yIDguOC0xLjMgMTMuMyAzLjEgOC42IDYuMyAxMS44IDcuMyA1LjQgMTEuOCA2LjMgOS4xIC40IDEzLjMtMS4zIDcuOC00LjcgMTAuMy04LjUgMy45LTguMiAzLjktMTIuOGMwLTYuMS0yLjQtMTEuOS02LjctMTYuM3MtMTAuMi02LjctMTYuMy02LjdsMCAwem0wIDcyLjNjLTQuNiAwLTkgMS4zLTEyLjggMy45cy02LjcgNi4xLTguNSAxMC4zLTIuMiA4LjgtMS4zIDEzLjMgMy4xIDguNiA2LjMgMTEuOCA3LjMgNS40IDExLjggNi4zIDkuMSAuNCAxMy4zLTEuMyA3LjgtNC43IDEwLjMtOC41IDMuOS04LjIgMy45LTEyLjhjMC02LjEtMi40LTExLjktNi43LTE2LjNzLTEwLjItNi43LTE2LjMtNi43bDAgMHoiXX0saWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBsYXlzdGF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmM2RmIiwiTTU3MSAzNzIuM2MtMTEuMyAxNC4yLTM4LjggMjQuMy0zOC44IDI0LjNsLTIwNS4xIDczLjYgMC01NC4zIDE1MC45LTUzLjhjMTcuMS02LjEgMTkuOC0xNC44IDUuOC0xOS40LTEzLjktNC42LTM5LjEtMy4zLTU2LjIgMi45bC0xMDAuNSAzNS41IDAtNTYuNGMyMy4yLTcuOCA0Ny4xLTEzLjYgNzUuNy0xNi44IDQwLjktNC41IDkwLjkgLjYgMTMwLjIgMTUuNSA0NC4yIDE0IDQ5LjIgMzQuNyAzOCA0OC45ek0zNDYuNiAyNzkuOGwwLTEzOWMwLTE2LjMtMy0zMS4zLTE4LjMtMzUuNi0xMS43LTMuOC0xOSA3LjEtMTkgMjMuNGwwIDM0Ny45LTkzLjgtMjkuOCAwLTQxNC43YzM5LjkgNy40IDk4IDI0LjkgMTI5LjIgMzUuNCA3OS41IDI3LjMgMTA2LjQgNjEuMyAxMDYuNCAxMzcuOCAwIDc0LjUtNDYgMTAyLjgtMTA0LjUgNzQuNnpNNDMuMyA0MTAuMmMtNDUuNC0xMi44LTUzLTM5LjUtMzIuMy01NC44IDE5LjEtMTQuMiA1MS43LTI0LjkgNTEuNy0yNC45bDEzNC41LTQ3LjggMCA1NC41LTk2LjggMzQuNmMtMTcuMSA2LjEtMTkuNyAxNC44LTUuOCAxOS40czM5LjEgMy4zIDU2LjItMi45bDQ2LjQtMTYuOSAwIDQ4LjhjLTUxLjYgOS4zLTEwMS40IDcuMy0xNTMuOS0xMHoiXX0scmJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pY3JvYmxvZyIsaWNvbjpbNDQ4LDUxMixbXSwiZTAxYSIsIk0zOTkuOCAzNjIuMmMyOS41LTM0LjcgNDcuMS03OC4zIDQ3LjEtMTI1LjggMC0xMTMtOTkuNi0yMDQuNC0yMjIuNS0yMDQuNFMyIDEyMy41IDIgMjM2LjQgMTAxLjYgNDQwLjkgMjI0LjUgNDQwLjljMjcgMCA1My45LTQuNSA3OS40LTEzLjQgMS40LS41IDMtLjUgNC41LS4xczIuNyAxLjQgMy42IDIuNmMxOC42IDI1LjEgNDcuNiA0Mi43IDc5LjkgNDkuOSAxLjEgLjIgMi4zIDAgMy4zLS42czEuNy0xLjYgMS45LTIuOGMuMS0uNiAuMS0xLjMgMC0xLjlzLS40LTEuMi0uOC0xLjdjLTEyLjMtMTYtMTguNy0zNS44LTE4LTU2czguNC0zOS41IDIxLjctNTQuN2wtLjIgLjF6TTMzMCAyMTIuNGwtNTcuMyA0My41IDIwLjggNjguOWMuNCAxLjMgLjQgMi43LS4xIDRzLTEuMiAyLjQtMi4zIDMuMi0yLjQgMS4yLTMuOCAxLjItMi43LS40LTMuOC0xLjJsLTU5LjEtNDEtNTkuMSA0MS4xYy0xLjEgLjgtMi40IDEuMi0zLjggMS4ycy0yLjctLjQtMy44LTEuMi0xLjktMS45LTIuMy0zLjItLjUtMi43LS4xLTRsMjAuOC02OC45LTU3LjMtNDMuNWMtMS4xLS44LTEuOS0xLjktMi4zLTMuMnMtLjQtMi43IDAtNCAxLjItMi40IDIuMy0zLjIgMi40LTEuMyAzLjctMS4zbDcxLjktMS41IDIzLjctNjcuOWMuNC0xLjMgMS4zLTIuNCAyLjQtMy4yczIuNC0xLjIgMy44LTEuMiAyLjcgLjQgMy44IDEuMiAxLjkgMS45IDIuNCAzLjJsMjMuNyA2Ny45IDcxLjkgMS41YzEuNCAwIDIuNyAuNCAzLjggMS4yczEuOSAxLjkgMi4zIDMuMiAuNCAyLjcgMCA0LTEuMiAyLjQtMi4zIDMuM2wwIDB6Il19LHNiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRrcmFrZW4iLGljb246WzU3Niw1MTIsW10sImYzYTYiLCJNNTU3LjcgMTE4LjFjLTIuMy02LjEtOS4zLTkuMi0xNS4zLTYuNi01LjcgMi40LTguNSA4LjktNi4zIDE0LjYgMTAuOSAyOSAxNi45IDYwLjUgMTYuOSA5My4zIDAgMTM0LjYtMTAwLjMgMjQ1LjctMjMwLjIgMjYyLjdsMC0xMjMuN2M3LjktMS41IDE1LjUtMy42IDIzLTYuMmwwIDEwNGMxMDYuNy0yNS45IDE4NS45LTEyMi4xIDE4NS45LTIzNi44IDAtOTEuOC01MC44LTE3MS44LTEyNS44LTIxMy4zLTUuNy0zLjItMTMtLjktMTUuOSA1LTIuNyA1LjUtLjYgMTIuMiA0LjcgMTUuMSA2Ny45IDM3LjYgMTEzLjkgMTEwIDExMy45IDE5My4yIDAgOTMuMy01Ny45IDE3My4xLTEzOS44IDIwNS40bDAtOTIuMmMxNC4yLTQuNSAyNC45LTE3LjcgMjQuOS0zMy41IDAtMTMuMS02LjgtMjQuNC0xNy4zLTMwLjUgOC4zLTc5LjUgNDQuNS01OC42IDQ0LjUtODMuOWwwLTE0LjdjMC0zOC04Ny45LTE2MS44LTEyOS0xNjQuNy0yLjUtLjItNS0uMi03LjYgMC00MS4yIDMtMTI5LjEgMTI2LjctMTI5LjEgMTY0LjdsMCAxNC44YzAgMjUuMyAzNi4zIDQuMyA0NC41IDgzLjktMTAuNiA2LjEtMTcuMyAxNy40LTE3LjMgMzAuNSAwIDE1LjggMTAuNiAyOSAyNC44IDMzLjVsMCA5Mi4yYy04MS45LTMyLjItMTM5LjgtMTEyLTEzOS44LTIwNS40IDAtODMuMSA0Ni0xNTUuNSAxMTMuOS0xOTMuMiA1LjQtMyA3LjQtOS42IDQuNy0xNS4xLTIuOS01LjktMTAuMS04LjItMTUuOS01LTc1IDQxLjUtMTI1LjggMTIxLjUtMTI1LjggMjEzLjMgMCAxMTQuNyA3OS4yIDIxMC44IDE4NS45IDIzNi44bDAtMTA0YzcuNiAyLjUgMTUuMSA0LjYgMjMgNi4ybDAgMTIzLjdjLTEyOS44LTE3LTIzMC4yLTEyOC4xLTIzMC4yLTI2Mi43IDAtMzIuOCA2LTY0LjMgMTYuOS05My4zIDIuMi01LjgtLjYtMTIuMi02LjMtMTQuNi02LTIuNi0xMyAuNC0xNS4zIDYuNi0xMS44IDMxLjUtMTguMyA2NS42LTE4LjMgMTAxLjMgMCAxNTUuMSAxMjIuNiAyODEuNiAyNzYuMyAyODcuOGwwLTE0NS45YzYuOCAuNCAxNSAuNSAyMy40IDBsMCAxNDUuOGMxNTMuNy02LjEgMjc2LjMtMTMyLjYgMjc2LjMtMjg3LjcgMC0zNS43LTYuNS02OS44LTE4LjMtMTAxLjR6TTM1Ny45IDMyMi45YTIzLjcgMjMuNyAwIDEgMSAwLTQ3LjQgMjMuNyAyMy43IDAgMSAxIDAgNDcuNHpNMjE4LjEgMjc1LjRhMjMuNyAyMy43IDAgMSAxIDAgNDcuNCAyMy43IDIzLjcgMCAxIDEgMC00Ny40eiJdfSxPRT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZWxlZ3JhbSIsaWNvbjpbNTEyLDUxMixbNjI0NjIsInRlbGVncmFtLXBsYW5lIl0sImYyYzYiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zNzEgMTc2LjdjLTMuNyAzOS4yLTE5LjkgMTM0LjQtMjguMSAxNzguMy0zLjUgMTguNi0xMC4zIDI0LjgtMTYuOSAyNS40LTE0LjQgMS4zLTI1LjMtOS41LTM5LjMtMTguNy0yMS44LTE0LjMtMzQuMi0yMy4yLTU1LjMtMzcuMi0yNC41LTE2LjEtOC42LTI1IDUuMy0zOS41IDMuNy0zLjggNjcuMS02MS41IDY4LjMtNjYuNyAuMi0uNyAuMy0zLjEtMS4yLTQuNHMtMy42LS44LTUuMS0uNWMtMi4yIC41LTM3LjEgMjMuNS0xMDQuNiA2OS4xLTkuOSA2LjgtMTguOSAxMC4xLTI2LjkgOS45LTguOS0uMi0yNS45LTUtMzguNi05LjEtMTUuNS01LTI3LjktNy43LTI2LjgtMTYuMyAuNi00LjUgNi43LTkgMTguNC0xMy43IDcyLjMtMzEuNSAxMjAuNS01Mi4zIDE0NC42LTYyLjMgNjguOS0yOC42IDgzLjItMzMuNiA5Mi41LTMzLjggMi4xIDAgNi42IC41IDkuNiAyLjkgMiAxLjcgMy4yIDQuMSAzLjUgNi43IC41IDMuMiAuNiA2LjUgLjQgOS44eiJdfSxuYmU9T0Usb2JlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVsdHJhbHl0aWNzIixpY29uOls1MTIsNTEyLFtdLCJlODZkIiwiTTM5MS40IDM5LjdjNjUuOC0uMiAxMTguNiA1MS44IDEyMC40IDExNi42IC43IDI2LjQtMS41IDU0LjEtMy44IDc0LjEtMTcuMiAxNDguNi0xMjIuNCAyNDItMjUyLjQgMjQyLTk1LjQtLjEtMTc5LjQtNTIuNy0yMjMuMi0xMzAuNiAyNC40IDE3LjQgNTQuNSAyNy40IDg3LjYgMjcuNCA4My4yIC4xIDE1MS40LTY3LjQgMTUxLjItMTUwbC4xLTYwLjZjLS4yLTY1LjcgNTMuOS0xMTkgMTIwLjEtMTE4Ljl6TTExOS45IDEwMC4yYzY2LjIgMCAxMTkuOSA1My4zIDExOS45IDExOVMxODYuMSAzMzguMyAxMTkuOSAzMzguMyAwIDI4NSAwIDIxOS4zYzAtNjUuNyA1My43LTExOSAxMTkuOS0xMTl6Il19LGxiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdHVuZXMtbm90ZSIsaWNvbjpbMzg0LDUxMixbXSwiZjNiNSIsIk0zODEuOSAzODguMmMtNi40IDI3LjQtMjcuMiA0Mi44LTU1LjEgNDgtMjQuNSA0LjUtNDQuOSA1LjYtNjQuNS0xMC4yLTIzLjktMjAuMS0yNC4yLTUzLjQtMi43LTc0LjQgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDYuNC03LjIgNC40LTQuMSA0LjQtMTYzLjIgMC0xMS4yLTUuNS0xNC4zLTE3LTEyLjMtOC4yIDEuNC0xODUuNyAzNC42LTE4NS43IDM0LjYtMTAuMiAyLjItMTMuNCA1LjItMTMuNCAxNi43IDAgMjM0LjcgMS4xIDIyMy45LTIuNSAyMzkuNS00LjIgMTguMi0xNS40IDMxLjktMzAuMiAzOS41LTE2LjggOS4zLTQ3LjIgMTMuNC02My40IDEwLjQtNDMuMi04LjEtNTguNC01OC0yOS4xLTg2LjYgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDEwLjEtMTEuNSAxLjgtMjU2LjYgNS4yLTI3MC4yIC44LTUuMiAzLTkuNiA3LjEtMTIuOSA0LjItMy41IDExLjgtNS41IDEzLjQtNS41IDIwNC0zOC4yIDIyOC45LTQzLjEgMjMyLjQtNDMuMSAxMS41LS44IDE4LjEgNiAxOC4xIDE3LjYgLjIgMzQ0LjUgMS4xIDMyNi0xLjggMzM4LjV6Il19LGNiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZXNzIixpY29uOls2NDAsNTEyLFtdLCJmNDFkIiwiTTYxMy4yIDIxOWMwLTIwLjUgMy4yLTMyLjYgMy4yLTU0LjYgMC0zNC4yLTEyLjYtNDUuMi00MC41LTQ1LjJsLTIwLjUgMCAwIDI0LjIgNi4zIDBjMTQuMiAwIDE3LjMgNC43IDE3LjMgMjIuMSAwIDE2LjMtMS42IDMyLjYtMS42IDUxLjUgMCAyNC4yIDcuOSAzMy42IDIzLjYgMzcuM2wwIDEuNmMtMTUuOCAzLjctMjMuNiAxMy4xLTIzLjYgMzcuMyAwIDE4LjkgMS42IDM0LjIgMS42IDUxLjUgMCAxNy45LTMuNyAyMi42LTE3LjMgMjIuNmwwIC41LTYuMyAwIDAgMjUuMiAyMC41IDBjMjcuOCAwIDQwLjUtMTEgNDAuNS00NS4yIDAtMjIuNi0zLjItMzQuMi0zLjItNTQuNiAwLTExIDYuOC0yMi42IDI3LjMtMjMuNmwwLTI3LjNjLTIwLjUtLjctMjcuMy0xMi4zLTI3LjMtMjMuM3pNNTA3LjYgMjUxYy0xNS44LTYuMy0zMC41LTEwLTMwLjUtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjZzMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjEgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxcy0yMi41LTQxLTQzLTQ3Ljh6TTE0OC43IDMxMC40Yy0zLjcgMC04LjQtMy4yLTguNC0xMy4xbDAtMTc4LjItNzQuNiAwYy0yOC40IDAtNDEgMTEtNDEgNDUuMiAwIDIyLjYgMy4yIDM1LjIgMy4yIDU0LjYgMCAxMS02LjggMjIuNi0yNy4zIDIzLjZsMCAyNy4zYzIwLjUgLjUgMjcuMyAxMi4xIDI3LjMgMjMuMSAwIDE5LjQtMy4yIDMxLTMuMiA1My42IDAgMzQuMiAxMi42IDQ1LjIgNDAuNSA0NS4ybDIwLjUgMCAwLTI0LjItNi4zIDBjLTEzLjEgMC0xNy4zLTUuMy0xNy4zLTIyLjZzMS42LTMyLjEgMS42LTUxLjVjMC0yNC4yLTcuOS0zMy42LTIzLjYtMzcuM2wwLTEuNmMxNS44LTMuNyAyMy42LTEzLjEgMjMuNi0zNy4zIDAtMTguOS0xLjYtMzQuMi0xLjYtNTEuNXMzLjctMjIuMSAxNy4zLTIyLjFsMTQuMSAwIDAgMTUwLjhjMCAzMi4xIDExIDUzLjEgNDMuMSA1My4xIDEwIDAgMTcuOS0xLjYgMjMuNi0zLjdsLTUuMy0zNC4yYy0zLjEgLjgtNC42IC44LTYuMiAuOHpNMzgwLjQgMjUxYy0xNi4zLTYuMy0zMS0xMC0zMS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNnMyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMC41IDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MSAuMS0yOC45LTIyLjUtNDEtNDMtNDcuOHptLTE1NS02OC44Yy0zOC40IDAtNzUuMSAzMi4xLTc0LjEgODIuNSAwIDUyIDM0LjIgODIuNSA3OS4zIDgyLjUgMTguOSAwIDM5LjktNi44IDU2LjItMTcuOUwyNzEgMzAxLjVjLTExLjYgNi44LTIyLjYgMTAtMzQuMiAxMC0yMSAwLTM3LjMtMTAtNDEuNS0zNC4ybDk1LjIgMGMuNS0zLjcgMS42LTExIDEuNi0xOS40IC42LTQyLjYtMjIuNi03NS43LTY2LjctNzUuN3ptLTMwIDY2LjJjMy4yLTIxIDE1LjgtMzEgMzAuNS0zMSAxOC45IDAgMjYuMyAxMy4xIDI2LjMgMzFsLTU2LjggMHoiXX0sZGJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcmVmb3giLGljb246WzUxMiw1MTIsW10sImYyNjkiLCJNNTAzLjUgMjQxLjVjLS4xLTEuNi0uMi0zLjEtLjItNC43bDAtLjEtLjQtNC43IDAtLjFjLTEuMy0xMy45LTMuNy0yNy43LTcuMy00MS4yIDAtLjEgMC0uMS0uMS0uMmwtMS4xLTRjLS4xLS4yLS4xLS41LS4yLS42LS40LTEuMi0uNy0yLjUtMS4xLTMuNy0uMS0uMi0uMS0uNi0uMi0uOC0uNC0xLjItLjctMi40LTEuMS0zLjUtLjEtLjQtLjItLjYtLjQtMS0uNC0xLjItLjctMi4zLTEuMi0zLjVsLS40LTEuMWMtLjQtMS4xLS44LTIuMy0xLjItMy40LS4xLS4zLS4yLS43LS40LTEtLjUtMS4xLS44LTIuMy0xLjMtMy40LS4xLS4yLS4yLS42LS40LS44LS41LTEuMi0xLTIuMy0xLjQtMy41IDAtLjEtLjEtLjItLjEtLjQtMS42LTMuOC0zLjItNy43LTUtMTEuNGwtLjQtLjdjLS41LTEtLjgtMS44LTEuMy0yLjYtLjItLjUtLjUtMS4xLS43LTEuNi0uNC0uOC0uOC0xLjYtMS4yLTIuNC0uNC0uNi0uNi0xLjItMS0xLjhzLS44LTEuNC0xLjItMi4zYy0uNC0uNi0uNy0xLjMtMS4xLTEuOXMtLjgtMS40LTEuMi0yLjJjLS40LS43LS44LTEuNC0xLjItMi0uNC0uNy0uOC0xLjMtMS4yLTJzLS44LTEuMy0xLjItMi0uOC0xLjMtMS4yLTEuOS0uOC0xLjQtMS4zLTIuMmMtLjQtLjYtLjgtMS4yLTEuMi0xLjhsLTEuNC0yLjFjLS40LS42LS44LTEuMi0xLjItMS44LS41LS43LTEuMS0xLjYtMS42LTIuMy0uNC0uNS0uNy0xLjEtMS4xLTEuNmwtMS44LTIuNWMtLjQtLjUtLjYtLjgtMS0xLjMtMS0xLjMtMS44LTIuNS0yLjgtMy43LTcuMi05LjQtMTUtMTguMy0yMy41LTI2LjYtNS43LTYtMTEuOC0xMS41LTE4LjMtMTYuNy00LTMuNS04LjItNi43LTEyLjUtOS44LTcuNy01LjgtMTYtMTAuOC0yNC42LTE1LjEtMi40LTEuMy00LjgtMi41LTcuMi0zLjctMTcuNy04LjYtMzYuMy0xNS4yLTU1LjQtMTkuNi0xLjktLjQtMy44LS44LTUuNi0xLjJsLS4xIDBjLTEtLjEtMS44LS40LTIuOC0uNS0xMi41LTIuNC0yNS4yLTMuNy0zOC00bC0xMC42IDBjLTE1LjMgLjItMzAuNSAxLjktNDUuNSA1LTMzLjYgNy4xLTYzLjIgMjEuMi04Mi45IDM5LTEuMSAxLTEuOSAxLjctMi40IDIuMmwtLjUgLjUgLjEgMGMwIDAgLjEgMCAuMSAwczAtLjEgMC0uMWwtLjEgLjFjLjEtLjEgLjEtLjEgLjItLjEgMTQuNi04LjggMzQuOS0xNiA0OS40LTE5LjZsNS45LTEuNGMuNC0uMSAuOC0uMSAxLjItLjIgMS43LS40IDMuNC0uNyA1LjItMS4xIC4yIDAgLjYtLjEgLjgtLjEgNjQuMi0xMS43IDEzMi42IDcuNSAxODAuMiA1MyAxMC4zIDkuOCAxOS4zIDIwLjggMjYuOSAzMi44IDMwLjQgNDkuMiAyNy41IDExMS4xIDMuOCAxNDcuNi0zNC40IDUzLTExMS40IDcxLjMtMTU5IDI0LjgtMTYtMTUuNS0yNS4yLTM2LjctMjUuNi01OS0uMi0xMC43IDItMjEuMiA2LjItMzEgMS43LTMuOCAxMy4xLTI1LjcgMTguMi0yNC42LTEzLjEtMi44LTM3LjUgMi42LTU0LjcgMjguMi0xNS40IDIyLjktMTQuNSA1OC4yLTUgODMuMy02LTEyLjQtMTAuMS0yNS42LTEyLjEtMzkuMi0xMi4yLTgyLjYgNDMuMy0xNTMgOTQuMy0xNzAuNS0yNy41LTI0LTk2LjUtMjIuMy0xNDcuNyAxNS40LTI5LjkgMjItNTEuMiA1My4yLTYyLjUgOTAuNCAxLjctMjAuOSA5LjYtNTIuMSAyNS44LTgzLjktMTcuMiA4LjktMzkgMzctNDkuOCA2Mi45LTE1LjYgMzcuNC0yMSA4Mi4yLTE2LjEgMTI0LjggLjQgMy4yIC43IDYuNCAxLjEgOS42IDE5LjkgMTE3LjEgMTIyIDIwNi40IDI0NC44IDIwNi40IDEzNy4xIDAgMjQ4LjMtMTExLjIgMjQ4LjMtMjQ4LjQtLjEtNC41LS4yLTkuMS0uNS0xMy41eiJdfSxwYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2FnZ2xlIixpY29uOlszMjAsNTEyLFtdLCJmNWZhIiwiTTMwNC4yIDUwMS41TDE1OC40IDMyMC4zIDI5OC4yIDE4NWMyLjYtMi43IDEuNy0xMC41LTUuMy0xMC41bC02OS4yIDBjLTMuNSAwLTcgMS44LTEwLjUgNS4zbC0xMzIuMyAxMzMuNyAwLTMwNmMwLTUtMi41LTcuNS03LjUtNy41TDIxLjUgMEMxNi41IDAgMTQgMi41IDE0IDcuNWwwIDQ5N2MwIDUgMi41IDcuNSA3LjUgNy41bDUxLjkgMGM1IDAgNy41LTIuNSA3LjUtNy41bDAtMTA5IDMwLjgtMjkuMyAxMTAuNSAxNDAuNmMzIDMuNSA2LjUgNS4zIDEwLjUgNS4zbDY2LjkgMGMzLjUgMCA1LjUtMSA2LTNsLTEuNC03LjZ6Il19LGhiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vay1tZXNzZW5nZXIiLGljb246WzUxMiw1MTIsW10sImYzOWYiLCJNMjU2LjYgOGMtMTQwIDAtMjQ4LjYgMTAyLjMtMjQ4LjYgMjQwLjYgMCA3Mi4zIDI5LjcgMTM0LjggNzguMSAxNzcuOSA4LjMgNy41IDYuNiAxMS45IDggNTguMiAuMSAzLjIgMSA2LjQgMi42IDkuMnMzLjkgNS4yIDYuNyA2LjkgNS45IDIuOCA5LjEgMyA2LjUtLjMgOS41LTEuNkMxNzQuOSA0NzkgMTc1LjYgNDc3LjIgMTg0LjYgNDc5LjYgMzM3LjggNTIxLjggNTA0IDQyMy43IDUwNCAyNDguNiA1MDQgMTEwLjMgMzk2LjYgOCAyNTYuNiA4ek00MDUuOCAxOTMuMWwtNzMgMTE1LjZjLTIuOCA0LjMtNi40IDguMS0xMC42IDExcy05LjEgNC44LTE0LjEgNS44LTEwLjMgLjgtMTUuMy0uNC05LjctMy40LTEzLjgtNi40bC01OC4xLTQzLjVjLTIuNi0xLjktNS44LTMtOS0zcy02LjQgMS4xLTkgM2wtNzguNCA1OS40Yy0xMC41IDcuOS0yNC4yLTQuNi0xNy4xLTE1LjdsNzMtMTE1LjZjMi44LTQuMyA2LjQtOC4xIDEwLjYtMTFzOS4xLTQuOCAxNC4xLTUuOCAxMC4zLS44IDE1LjMgLjQgOS43IDMuNCAxMy45IDYuNGw1OC4xIDQzLjVjMi42IDEuOSA1LjggMyA5IDNzNi40LTEuMSA5LTNsNzguNC01OS40YzEwLjQtOCAyNC4xIDQuNSAxNy4xIDE1LjZ6Il19LHViZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdWRpYmxlIixpY29uOls2NDAsNTEyLFtdLCJmMzczIiwiTTY0MCAxOTkuOWwwIDU0LTMyMCAyMDAtMzIwLTE5OS45IDAtNTQgMzIwIDIwMCAzMjAtMjAwLjF6bS0xOTQuNSA3Mmw0Ny4xLTI5LjRjLTM3LjItNTUuOC0xMDAuNy05Mi42LTE3Mi43LTkyLjZzLTEzNS41IDM2LjctMTcyLjYgOTIuNGwuMyAwYzIuNS0yLjMgNS4xLTQuNSA3LjctNi43IDg5LjctNzQuNCAyMTkuNC01OC4xIDI5MC4yIDM2LjN6TTIyNS40IDI5MC43YzE2LjktMTEuOSAzNi41LTE4LjcgNTcuNC0xOC43IDM0LjQgMCA2NS4yIDE4LjQgODYuNCA0Ny42bDQ1LjQtMjguNGMtMjAuOS0yOS45LTU1LjYtNDkuNS05NC44LTQ5LjUtMzguOSAwLTczLjQgMTkuNC05NC40IDQ5ek0xMDMuNiAxNjEuMUMyMzUuNCA1Ni44IDQyMS44IDg0LjcgNTIxLjEgMjIzLjJsLjcgMSA0OC44LTMwLjRjLTUzLjUtODEuNy0xNDUuOC0xMzUuNy0yNTAuNy0xMzUuNy0xMDMuNSAwLTE5Ni42IDUzLjUtMjUwLjUgMTM1LjYgOS45LTEwLjUgMjIuNy0yMy41IDM0LjItMzIuNnoiXX0sZmJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhdHJlb24iLGljb246WzUxMiw1MTIsW10sImYzZDkiLCJNNDkwIDE1My44Yy0uMS02NS40LTUxLTExOS0xMTAuNy0xMzguMy03NC4yLTI0LTE3Mi0yMC41LTI0Mi45IDEyLjktODUuOCA0MC41LTExMi44IDEyOS4zLTExMy44IDIxNy44LS44IDcyLjggNi40IDI2NC40IDExNC42IDI2NS44IDgwLjMgMSA5Mi4zLTEwMi41IDEyOS41LTE1Mi4zIDI2LjQtMzUuNSA2MC41LTQ1LjUgMTAyLjQtNTUuOSA3Mi0xNy44IDEyMS4xLTc0LjcgMTIxLTE1MGwtLjEgMHoiXX0sbWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZudiIsaWNvbjpbNjQwLDUxMixbXSwiZjQwYiIsIk0xMDQuOSAzNTJjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDIuNiAyMTAuMVMtNy44IDE5MiAxMyAxOTJsMzIuOCAwYzEwLjQgMCAxMy4yIDguNyAxOC44IDE4LjFsMzYuNyA3NC41czUuMiAxMy4xIDIxLjEgMTMuMSAyMS4xLTEzLjEgMjEuMS0xMy4xbDM2LjctNzQuNWM1LjYtOS41IDguNC0xOC4xIDE4LjgtMTguMWwzMi44IDBjMjAuOCAwIDEwLjQgMTguMSAxMC40IDE4LjFMMTg2LjQgMzIxLjZTMTc0LjIgMzUyIDE0MCAzNTJsLTM1LjEgMHptMzk1IDBjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDM5Ny42IDIxMC4xUzM4Ny4yIDE5MiA0MDggMTkybDMyLjggMGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi44LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFsMzIuOSAwYzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xTDU4MS41IDMyMS42UzU2OS4zIDM1MiA1MzUuMSAzNTJsLTM1LjIgMHpNMzM3LjYgMTkyYzM0LjEgMCA0Ni40IDMwLjQgNDYuNCAzMC40bDU1LjkgMTExLjVTNDUwLjMgMzUyIDQyOS41IDM1MmwtMzIuOCAwYy0xMC40IDAtMTMuMi04LjctMTguOC0xOC4xbC0zNi43LTc0LjVzLTUuMi0xMy4xLTIxLjEtMTMuMS0yMS4xIDEzLjEtMjEuMSAxMy4xbC0zNi43IDc0LjVjLTUuNiA5LjQtOC40IDE4LjEtMTguOCAxOC4xbC0zMi45IDBjLTIwLjggMC0xMC40LTE4LjEtMTAuNC0xOC4xbDU1LjktMTExLjVTMjY4LjMgMTkyIDMwMi41IDE5MmwzNS4xIDB6Il19LGdiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYWdlbGluZXMiLGljb246WzM4NCw1MTIsW10sImYxOGMiLCJNMzg0LjEgMzEyLjdjLTU1LjEgMTM2LjctMTg3LjEgNTQtMTg3LjEgNTQtNDAuNSA4MS44LTEwNy40IDEzNC40LTE4NC42IDEzNC43LTE2LjEgMC0xNi42LTI0LjQgMC0yNC40IDY0LjQtLjMgMTIwLjUtNDIuNyAxNTcuMi0xMTAuMS00MS4xIDE1LjktMTE4LjYgMjcuOS0xNjEuNi04Mi4yIDEwOS00NC45IDE1OS4xIDExLjIgMTc4LjMgNDUuNSA5LjktMjQuNCAxNy01MC45IDIxLjYtNzkuNyAwIDAtMTM5LjcgMjEuOS0xNDkuNS05OC4xIDExOS4xLTQ3LjkgMTUyLjYgNzYuNyAxNTIuNiA3Ni43IDEuNi0xNi43IDMuMy01Mi42IDMuMy01My40IDAgMC0xMDYuMy03My43LTM4LjEtMTY1LjIgMTI0LjYgNDMgNjEuNCAxNjIuNCA2MS40IDE2Mi40IC41IDEuNiAuNSAyMy44IDAgMzMuNCAwIDAgNDUuMi04OSAxMzYuNC01Ny41LTQuMiAxMzQtMTQxLjkgMTA2LjQtMTQxLjkgMTA2LjQtNC40IDI3LjQtMTEuMiA1My40LTIwIDc3LjUgMCAwIDgzLTkxLjggMTcyLTIweiJdfSxiYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1hem9uIixpY29uOls0NDgsNTEyLFtdLCJmMjcwIiwiTTI1Ny43IDE2Mi43Yy00OC43IDEuOC0xNjkuNSAxNS41LTE2OS41IDExNy41IDAgMTA5LjUgMTM4LjMgMTE0IDE4My41IDQzLjIgNi41IDEwLjIgMzUuNCAzNy41IDQ1LjMgNDYuOGw1Ni44LTU2cy0zMi4zLTI1LjMtMzIuMy01Mi44bDAtMTQ3LjFDMzQxLjUgODkgMzE3IDMyIDIyOS4yIDMyIDE0MS4yIDMyIDk0LjUgODcgOTQuNSAxMzYuM2w3My41IDYuOGMxNi4zLTQ5LjUgNTQuMi00OS41IDU0LjItNDkuNSA0MC43LS4xIDM1LjUgMjkuOCAzNS41IDY5LjF6bTAgODYuOGMwIDgwLTg0LjIgNjgtODQuMiAxNy4yIDAtNDcuMiA1MC41LTU2LjcgODQuMi01Ny44bDAgNDAuNnpNMzkzLjcgNDEzYy03LjcgMTAtNzAgNjctMTc0LjUgNjdTMzQuNyA0MDguNSAxMC4yIDM3OWMtNi44LTcuNyAxLTExLjMgNS41LTguMyA3My4zIDQ0LjUgMTg3LjggMTE3LjggMzcyLjUgMzAuMyA3LjUtMy43IDEzLjMgMiA1LjUgMTJ6bTM5LjggMi4yYy02LjUgMTUuOC0xNiAyNi44LTIxLjIgMzEtNS41IDQuNS05LjUgMi43LTYuNS0zLjhzMTkuMy00Ni41IDEyLjctNTVjLTYuNS04LjMtMzctNC4zLTQ4LTMuMi0xMC44IDEtMTMgMi0xNC0uMy0yLjMtNS43IDIxLjctMTUuNSAzNy41LTE3LjUgMTUuNy0xLjggNDEtLjggNDYgNS43IDMuNyA1LjEgMCAyNy4xLTYuNSA0My4xeiJdfSx2YmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW52aXJhIixpY29uOls0NDgsNTEyLFtdLCJmMjk5IiwiTTAgMzJjNDc3LjYgMCAzNjYuNiAzMTcuMyAzNjcuMSAzNjYuM2w4MC45IDgxLjctMjYgMC03MC40LTcxLjJDMzEyLjYgNDEzIDIyNy4yIDQ0My4zIDEzNy4yIDM3MS44IDQ3IDMwMC4zIDUyIDIxNC43IDAgMzJ6TTc5LjcgNzhjLTQ5LjctMjMuNS01LjIgOS4yLTUuMiA5LjIgNDUuMiAzMS4yIDY2IDczLjcgOTAuMiAxMTkuOSAzMS41IDYwLjIgNzkgMTM5LjcgMTQ0LjIgMTY3LjcgNjUgMjggMzQuMiAxMi41IDYtOC41LTI4LjItMjEuMi02OC4yLTg3LTkxLTEzMC4yLTMxLjctNjAtNjEtMTE4LjYtMTQ0LjItMTU4LjF6Il19LHliZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5vZGUiLGljb246WzQ0OCw1MTIsW10sImYyYjgiLCJNMzY2LjMgMTg2LjlsLTU5LjUgMzYuOS0uOCAzNi45LTI5LjMtMTkuMy0zOS40IDI0LjNjMi4yIDU1LjIgMi41IDU5LjMgMi41IDU5LjVsLTk3LjIgNjUuNC0xNS4xLTEwNC43IDEwOC4xLTYyLTQwLjItMjYtNzUuNCAzOC41LTIxLTE0My4zIDEyOS00OS40LTkxLjMtNDMuNi0xMjUuNyAzOS40IDI3LjcgMTM0LjkgNDEuOSAzMi43LTMxLjggMTUuMSAyMC45IDEwMS40IDI5LjMgMjcuNy0yMC45IDEyLjYgMTYuOCA3OC44IDY2LjIgNjkuNmMtMTAuOC03NC44LTExLjctNzguNi0xMS43LTc4LjhsNzcuOS01NS4zQzI0NCAzNjUuNCAyNDIuMyAzNjcgMjQyLjMgMzY3bC44IDI0LjMgMzMuNSAyOC41LS44LTc3LjEgNDYuOS0zMy41IDI2LjgtMTguNC0yLjUgMzYgMjUuMSAxNy42IDYuNy03NC42IDU4LjctNDMuNi03MS4yLTM5LjR6Il19LHhiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhY2N1c29mdCIsaWNvbjpbNjQwLDUxMixbXSwiZjM2OSIsIk0zMjIuMSAyNTJsMC0xLTUxLjItNjUuOHMtMTIgMS42LTI1IDE1LjFjLTkgOS4zLTI0Mi4xIDIzOS4xLTI0My40IDI0MC45LTcgMTAgMS42IDYuOCAxNS43IDEuNyAuOCAwIDExNC41LTM2LjYgMTE0LjUtMzYuNiAuNS0uNi0uMS0uMSAuNi0uNi0uNC01LjEtLjgtMjYuMi0xLTI3LjctLjYtNS4yIDIuMi02LjkgNy04LjlsOTIuNi0zMy44Yy42LS44IDg4LjUtODEuNyA5MC4yLTgzLjN6TTQ4Mi4yIDM3Mi4xYzEzLjMgMTYuMSAyMC43IDEzLjMgMzAuOCA5LjMgMy4yLTEuMiAxMTUuNC00Ny42IDExNy44LTQ4LjkgOC00LjMtMS43LTE2LjctNy4yLTIzLjQtMi4xLTIuNS0yMDUuMS0yNDUuNi0yMDcuMi0yNDguMy05LjctMTIuMi0xNC4zLTEyLjktMzguNC0xMi44LTEwLjIgMC0xMDYuOCAuNS0xMTYuNSAuNi0xOS4yIC4xLTMyLjktLjMtMTkuMiAxNi45IDcuNyA5LjUgMjM0LjIgMjk5LjcgMjM5LjkgMzA2LjZ6bTE1Mi43IDEuNmMtMi4zLS4zLTI0LjYtNC43LTM4LTcuMiAwIDAtMTE1IDUwLjQtMTE3LjUgNTEuNi0xNiA3LjMtMjYuOS0zLjItMzYuNy0xNC42bC01Ny4xLTc0Yy01LjQtLjktNjAuNC05LjYtNjUuMy05LjMtMy4xIC4yLTkuNiAuOC0xNC40IDIuOS00LjkgMi4xLTE0NS4yIDUyLjgtMTUwLjIgNTQuNy01LjEgMi0xMS40IDMuNi0xMS4xIDcuNiAuMiAyLjUgMiAyLjYgNC42IDMuNSAyLjcgLjggMzAwLjkgNjcuNiAzMDggNjkuMSAxNS42IDMuMyAzOC41IDEwLjUgNTMuNiAxLjcgMi4xLTEuMiAxMjMuOC03Ni40IDEyNS44LTc3LjggNS40LTQgNC4zLTYuOC0xLjctOC4yeiJdfSx3YmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZXJsYW5nIixpY29uOls2NDAsNTEyLFtdLCJmMzlkIiwiTTg3LjIgNTMuNWwtODcuMiAwIDAgNDA1IDEwMC40IDBjLTQ5LjctNTIuNi03OC44LTEyNS4zLTc4LjctMjEyLjEtLjEtNzYuNyAyNC0xNDIuNyA2NS41LTE5Mi45em0yMzguMiA5LjdjLTQ1LjkgLjEtODUuMSAzMy41LTg5LjIgODMuMmwxNjkuOSAwYy0xLjEtNDkuNy0zNC41LTgzLjEtODAuNy04My4yem0yMzAuNy05LjZsLjMgMC0uMS0uMS0uMiAuMXptLjMgMGMzMS40IDQyLjcgNDguNyA5Ny41IDQ2LjIgMTYyLjcgLjUgNiAuNSAxMS43IDAgMjQuMWwtMzcyLjQgMGMtLjIgMTA5LjcgMzguOSAxOTQuOSAxMzguNiAxOTUuMyA2OC41LS4zIDExOC01MSAxNTEuOS0xMDYuMWw5Ni40IDQ4LjJjLTE3LjQgMzAuOS0zNi41IDU3LjgtNTcuOSA4MC44bDgwLjggMCAwLTQwNS04My42IDB6Il19LE1iZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmlzb24iLGljb246WzUxMiw1MTIsW10sImU4NTQiLCJNNDM1LjEgMTYxLjdhMTMuOSAxMy45IDAgMSAxIDE5LjYtMTkuNyAxMy45IDEzLjkgMCAxIDEgLTE5LjYgMTkuN3pNMzY5LjcgOTcuOGMxMC40IDIuMSAyMC42IDUuMiAzMC40IDkuMiA2LjggMi44IDEwLjEgMTAuOCA3LjMgMTcuNy0yLjggNi43LTEwLjkgMTAuMS0xNy42IDcuMy04LjMtMy40LTE2LjgtNS44LTI1LjctNy44LTguNi0xLjctMTcuMy0yLjUtMjYtMi41LTE5LjMgMC0zNy4xLTEwLjMtNDYuNy0yNy04LjctMTUuMS0yMC42LTI4LjktMzQuNy0zOS43LTU5LjEtNDUuNS0xNDMuOC0zNC4zLTE4OS4yIDI1LTIuNiAzLjMtNi41IDUuMy0xMC43IDUuMy03LjQgMC0xMy41LTYuMS0xMy41LTEzLjUgMC0zLjIgMS4yLTYuMyAzLjItOC44IDEyLjktMTYuNyAyOC45LTMwLjcgNDcuMS00MS4yIDc3LjQtNDQuOCAxNzYuNC0xOC4yIDIyMS4xIDU5LjQgNC4zIDguMiAxMy43IDEzLjMgMjIuOCAxMy41IDEwLjggMCAyMS42IDEgMzIuMiAzLjF6TTM1IDI3MGM0LjYtOC4yIDQuNi0xOC4yIDAtMjYuNC0yMS45LTM2LjUtMjcuMy04Mi4zLTE2LjMtMTIzLjIgMS42LTUuOSA2LjktMTAgMTMtMTAgOC43IDAgMTUuMyA4LjcgMTMgMTctOS41IDM1LjQtMy40IDcxIDEzLjcgMTAyLjkgOS4zIDE2LjUgOS4zIDM2LjcgMCA1My4xLTguNyAxNS43LTE0LjggMzIuNC0xNy4yIDUwLjMtOS43IDczLjkgNDIuMyAxNDEuNyAxMTYuMiAxNTEuNCA3LjMgMSAxMi42IDcuOSAxMS42IDE1LjItMSA3LjMtNy44IDEyLjYtMTUuMSAxMS42LTIxLjEtMi44LTQxLjQtOS43LTU5LjgtMjAuMy03NS42LTQzLjYtMTA0LjktMTQ1LjgtNTkuMi0yMjEuNXpNMjE2LjkgNTA5Yy03LjQgMi0xNS4xLTIuNC0xNy4xLTkuOHMyLjUtMTUgOS45LTE2LjljOC41LTIuMiAxNy40IDQuNSAxNy40IDEzLjQgMCA2LjItNC4yIDExLjYtMTAuMiAxMy4zem0xMjIuMy05MWMtOS41IDAtMTguNCA1LTIzLjIgMTMuMi00LjkgOS40LTExLjcgMTguMi0xOC43IDI2LjJsMCAwYy03LjEgOC0xNC44IDE1LjItMjMuMiAyMS43LTUuOSA0LjUtMTQuNCAzLjQtMTktMi41cy0zLjQtMTQuNCAyLjUtMTguOWM3LTUuNCAxMy41LTExLjUgMTkuNC0xOC4xbDAgMGM1LjktNi42IDExLjEtMTMuOCAxNS41LTIxLjYgOS43LTE2LjcgMjcuNS0yNyA0Ni44LTI3IDE3LjggMCAzNS40LTMuNSA1MS44LTEwLjMgNjguMy0yOC4zIDEwMS4xLTEwOC4zIDczLjItMTc2LjUtLjYtMS42LTEtMy4zLTEtNSAwLTcuNCA2LjEtMTMuNSAxMy41LTEzLjUgNS40IDAgMTAuMyAzLjIgMTIuNCA4LjIgOC4yIDE5LjcgMTIuNCA0MC44IDEyLjQgNjIuMSAwIDg5LjUtNzIuNyAxNjIuMS0xNjIuNCAxNjIuMWwwIDB6bS0xMy4xLTI2OGMzLjktLjQgNy45LS42IDExLjktLjYgNTkuMyAwIDEwOC4yIDQ4LjcgMTA4LjIgMTA3LjhTMzk3LjMgMzY1IDMzOCAzNjVjLTQgMC03LjktLjItMTEuOC0uNi0yMi4yLTEuNy00My4zIDEwLjQtNTIuOSAzMC40LTE3LjIgMzkuMS01Ni4yIDY0LjUtOTkuMSA2NC41LTU5LjMgMC0xMDguMi00OC43LTEwOC4yLTEwNy44IDAtMjMuMiA3LjUtNDUuNyAyMS40LTY0LjMgMTIuMi0xOC4zIDEyLjEtNDIuMy0uNC02MC41LTEzLjYtMTguNS0yMC45LTQwLjgtMjAuOS02My43IDAtNTkuMSA0OC44LTEwNy44IDEwOC4yLTEwNy44IDQyLjggMCA4MS44IDI1LjQgOTkgNjQuNCA5LjYgMjAgMzAuNyAzMi4xIDUyLjkgMzAuNHpNMTA2LjggMzkzLjRjMTQuNCAyNS4yIDQxLjEgNDAuOCA2OS44IDQwLjggNDQuMiAwIDgwLjYtMzYuOCA4MC42LTgxLjZzLTM2LjQtODEuNi04MC42LTgxLjZjLTE0LjIgMC0yOC4xIDMuOC00MC4zIDEwLjktMzguMyAyMi40LTUxLjYgNzIuNy0yOS41IDExMS40ek0yNjggMjk4YzE0LjQgMjUuMiA0MS4xIDQwLjggNjkuOCA0MC44IDQ0LjIgMCA4MC42LTM2LjggODAuNi04MS42cy0zNi40LTgxLjYtODAuNi04MS42Yy0xNC4yIDAtMjguMSAzLjgtNDAuMyAxMC45LTM4LjMgMjIuNC01MS42IDcyLjctMjkuNSAxMTEuNHptLTkxLjItNTQuNmM0NC4yIDAgODAuNS0zNi44IDgwLjUtODEuNnMtMzYuNC04MS42LTgwLjYtODEuNi04MC42IDM2LjgtODAuNiA4MS42YzAgNDQuNyAzNi40IDgxLjYgODAuNiA4MS42eiJdfSx6YmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtZGlzY292ZXIiLGljb246WzU3Niw1MTIsW10sImYxZjIiLCJNNTIwLjQgMTk2LjFjMC03LjktNS41LTEyLjEtMTUuNi0xMi4xbC00LjkgMCAwIDI0LjkgNC43IDBjMTAuMyAwIDE1LjgtNC40IDE1LjgtMTIuOHpNNTI4IDMyTDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4My45IDE3MC45YzIyLjYgMCA1Mi45LTQuMSA1Mi45IDI0LjQgMCAxMi42LTYuNiAyMC43LTE4LjcgMjMuMmwyNS44IDM0LjQtMTkuNiAwLTIyLjItMzIuOC0yLjIgMCAwIDMyLjgtMTYgMCAwLTgyek00MjggMTcxbDQ1LjMgMCAwIDE0LTI5LjMgMCAwIDE4LjIgMjguMyAwIDAgMTMuOC0yOC4zIDAgMCAyMi4yIDI5LjMgMCAwIDEzLjgtNDUuMyAwIDAtODJ6bS02OC43IDBsMjEuOSA1NS4yIDIyLjItNTUuMiAxNy41IDAtMzUuNSA4NC4yLTguNiAwLTM1LTg0LjIgMTcuNSAwem0tNTUuOSA4Ni4yYTQ0LjYgNDQuNiAwIDEgMSAwLTg5LjIgNDQuNiA0NC42IDAgMSAxIDAgODkuMnptLTQ5LjMtODMuMWwwIDE5Yy0yMC4xLTIwLjEtNDYuOC00LjctNDYuOCAxOSAwIDI1IDI3LjUgMzguNSA0Ni44IDE5LjJsMCAxOWMtMjkuNyAxNC4zLTYzLjMtNS43LTYzLjMtMzguMiAwLTMxLjIgMzMuMS01MyA2My4zLTM4em0tOTcuMiA2Ni4zYzExLjQgMCAyMi40LTE1LjMtMy4zLTI0LjQtMTUtNS41LTIwLjItMTEuNC0yMC4yLTIyLjcgMC0yMy4yIDMwLjYtMzEuNCA0OS43LTE0LjNsLTguNCAxMC44Yy0xMC40LTExLjYtMjQuOS02LjItMjQuOSAyLjUgMCA0LjQgMi43IDYuOSAxMi4zIDEwLjMgMTguMiA2LjYgMjMuNiAxMi41IDIzLjYgMjUuNiAwIDI5LjUtMzguOCAzNy40LTU2LjYgMTEuM2wxMC4zLTkuOWMzLjcgNy4xIDkuOSAxMC44IDE3LjUgMTAuOHpNNTUuNCAyNTNsLTIzLjQgMCAwLTgyIDIzLjQgMGMyNi4xIDAgNDQuMSAxNyA0NC4xIDQxLjEgMCAxOC41LTEzLjIgNDAuOS00NC4xIDQwLjl6bTY3LjUgMGwtMTYgMCAwLTgyIDE2IDAgMCA4MnpNNTQ0IDQzM2MwIDguMi02LjggMTUtMTUgMTVsLTQwMSAwYzE4OS42LTM1LjYgMzgyLjctMTM5LjIgNDE2LTE2MGwwIDE0NXpNNzQuMSAxOTEuNmMtNS4yLTQuOS0xMS42LTYuNi0yMS45LTYuNmwtNC4yIDAgMCA1NC4yIDQuMiAwYzEwLjMgMCAxNy0yIDIxLjktNi40IDUuNy01LjIgOC45LTEyLjggOC45LTIwLjdzLTMuMi0xNS41LTguOS0yMC41eiJdfSxrYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2FmYXJpIixpY29uOls1MTIsNTEyLFtdLCJmMjY3IiwiTTI3NC43IDI3NC43TDIzNy4zIDIzNy4zIDE2NiAzNDYgMjc0LjcgMjc0Ljd6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDExLjggMTgyLjhsMTQuOC02LjFjMS0uNCAyLS42IDMuMS0uNnMyLjEgLjIgMy4xIC42IDEuOCAxIDIuNiAxLjcgMS4zIDEuNiAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNiAzLjEtMSAxLjktMS43IDIuNi0xLjYgMS4zLTIuNiAxLjdMNDE4IDE5Ny42Yy0yIC44LTQuMiAuOC02LjEgMHMtMy41LTIuNC00LjMtNC4zLS44LTQuMiAwLTYuMSAyLjQtMy41IDQuMy00LjN6TTMxNC40IDk0bDYuMS0xNC44Yy44LTIgMi40LTMuNSA0LjMtNC4zczQuMi0uOCA2LjEgMCAzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xbC02LjEgMTQuOGMtLjggMi0yLjQgMy41LTQuMyA0LjNzLTQuMiAuOC02LjEgMGMtMS0uNC0xLjktMS0yLjYtMS43cy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMXpNMjU2IDYwYzIuMSAwIDQuMiAuOCA1LjcgMi4zUzI2NCA2NS45IDI2NCA2OGwwIDE2YzAgMi4xLS44IDQuMi0yLjMgNS43cy0zLjUgMi4zLTUuNyAyLjMtNC4yLS44LTUuNy0yLjMtMi4zLTMuNS0yLjMtNS43bDAtMTZjMC0yLjEgLjgtNC4yIDIuMy01LjdTMjUzLjkgNjAgMjU2IDYwek0xODEgNzQuOWMxLS40IDItLjYgMy4xLS42czIuMSAuMiAzLjEgLjYgMS45IDEgMi42IDEuNyAxLjMgMS42IDEuNyAyLjZMMTk3LjYgOTRjLjQgMSAuNyAyIC43IDMuMXMtLjIgMi4xLS42IDMuMS0xIDEuOS0xLjcgMi42LTEuNiAxLjQtMi42IDEuOC0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjgtMS4zLTEuNy0xLjctMi43bC02LjEtMTQuOGMtLjgtMi0uOC00LjIgMC02LjFzMi40LTMuNSA0LjMtNC4zem0tNjMuNiA0Mi41YzEuNS0xLjUgMy41LTIuMyA1LjctMi4zczQuMiAuOCA1LjcgMi4zTDE0MCAxMjguN2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zcy00LjItLjgtNS43LTIuM2wtMTEuMy0xMS4zYy0xLjUtMS41LTIuMy0zLjUtMi4zLTUuNnMuOC00LjEgMi4zLTUuNmwwIDB6TTYwIDI1NmMwLTIuMSAuOC00LjIgMi4zLTUuN1M2NS45IDI0OCA2OCAyNDhsMTYgMGMyLjEgMCA0LjIgLjggNS43IDIuM3MyLjMgMy41IDIuMyA1LjctLjggNC4yLTIuMyA1LjctMy41IDIuMy01LjcgMi4zbC0xNiAwYy0yLjEgMC00LjItLjgtNS43LTIuM1M2MCAyNTguMSA2MCAyNTZ6bTQwLjIgNzMuMmwtMTQuOCA2LjFjLTEgLjQtMiAuNi0zLjEgLjZzLTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjYtLjYtMi0uNi0zLjEgLjItMi4xIC42LTMuMSAxLTEuOSAxLjctMi42IDEuNi0xLjMgMi42LTEuN0w5NCAzMTQuNGMyLS44IDQuMi0uOCA2LjEgMHMzLjUgMi40IDQuMyA0LjMgLjggNC4yIDAgNi4xLTIuNCAzLjUtNC4zIDQuM3ptNC4zLTEzNmMtLjQgMS0xIDEuOS0xLjcgMi42cy0xLjYgMS4zLTIuNiAxLjctMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNmwtMTQuOC02LjFjLTItLjgtMy41LTIuNC00LjMtNC4zcy0uOC00LjIgMC02LjEgMi40LTMuNSA0LjMtNC4zIDQuMi0uOCA2LjEgMGwxNC44IDYuMWMyIC44IDMuNSAyLjQgNC4zIDQuM3MuOCA0LjIgMCA2LjFsMCAwek0xOTcuNiA0MThsLTYuMSAxNC44Yy0uNCAxLTEgMS45LTEuNyAyLjZzLTEuNiAxLjMtMi42IDEuNy0yIC42LTMuMSAuNi0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjFsNi4xLTE0LjhjLjQtMSAxLTEuOSAxLjctMi43czEuNi0xLjQgMi42LTEuOCAyLS42IDMuMS0uNiAyLjEgLjIgMy4xIC42IDEuOSAxIDIuNiAxLjggMS4zIDEuNyAxLjcgMi42IC42IDIgLjYgMy4xLS4yIDIuMS0uNyAzLjF6TTI2NCA0NDRjMCAyLjEtLjggNC4yLTIuMyA1LjdzLTMuNSAyLjMtNS43IDIuMy00LjItLjgtNS43LTIuMy0yLjMtMy41LTIuMy01LjdsMC0xNmMwLTIuMSAuOC00LjIgMi4zLTUuN3MzLjUtMi4zIDUuNy0yLjMgNC4yIC44IDUuNyAyLjMgMi4zIDMuNSAyLjMgNS43bDAgMTZ6bTY3LTYuOWMtMSAuNC0yIC42LTMuMSAuNnMtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNkwzMTQuNCA0MThjLS44LTItLjgtNC4yIDAtNi4xczIuNC0zLjUgNC4zLTQuMyA0LjItLjggNi4xIDAgMy41IDIuNCA0LjMgNC4zbDYuMSAxNC44Yy44IDIgLjggNC4yIDAgNi4xcy0yLjQgMy41LTQuMyA0LjN6bTYzLjYtNDIuNWMtMS41IDEuNS0zLjUgMi4zLTUuNyAyLjNzLTQuMi0uOC01LjctMi4zTDM3MiAzODMuM2MtMS41LTEuNS0yLjMtMy41LTIuMy01LjZzLjgtNC4xIDIuMy01LjYgMy41LTIuMyA1LjctMi4zIDQuMiAuOCA1LjcgMi4zbDExLjMgMTEuM2MxLjUgMS41IDIuMyAzLjUgMi4zIDUuNnMtLjggNC4xLTIuMyA1LjZsMCAwek0yODYuMiAyODYuMkwxMTAuMyA0MDEuNyAyMjUuOCAyMjUuOCA0MDEuNyAxMTAuMyAyODYuMiAyODYuMnpNNDM3LjEgMzMxYy0uOCAyLTIuNCAzLjUtNC4zIDQuM3MtNC4yIC44LTYuMSAwbC0xNC44LTYuMWMtMi0uOC0zLjUtMi40LTQuMy00LjNzLS44LTQuMiAwLTYuMWMuNC0xIDEtMS45IDEuNy0yLjZzMS42LTEuMyAyLjYtMS43IDItLjYgMy4xLS42IDIuMSAuMiAzLjEgLjZsMTQuOCA2LjFjMiAuOCAzLjUgMi40IDQuMyA0LjNzLjggNC4yIDAgNi4xem02LjktNjdsLTE2IDBjLTIuMSAwLTQuMi0uOC01LjctMi4zcy0yLjMtMy41LTIuMy01LjcgLjgtNC4yIDIuMy01LjcgMy41LTIuMyA1LjctMi4zbDE2IDBjMi4xIDAgNC4yIC44IDUuNyAyLjNzMi4zIDMuNSAyLjMgNS43LS44IDQuMi0yLjMgNS43LTMuNSAyLjMtNS43IDIuM3oiXX0sU2JlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwYWNlLWF3ZXNvbWUiLGljb246WzUxMiw1MTIsW10sImU1YWMiLCJNOTYgMjU2bDMyIDAgMCAyNTYtMTI4IDAgMC0xNjAgMzIgMCAwLTMyIDMyIDAgMC0zMiAzMiAwIDAtMzJ6bTQxNiA5NmwwIDE2MC0xMjggMCAwLTI1NiAzMiAwIDAgMzIgMzIgMCAwIDMyIDMyIDAgMCAzMiAzMiAwek0zMjAgNjRsMzIgMCAwIDM4NC0zMiAwIDAtMzItMTI4IDAgMCAzMi0zMiAwIDAtMzg0IDMyIDAgMC0zMiAzMiAwIDAtMzIgNjQgMCAwIDMyIDMyIDAgMCAzMnptLTMyIDY0bC02NCAwIDAgNjQgNjQgMCAwLTY0eiJdfSxDYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibm9kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjQxOSIsIk0zMTYuMyA0NTJjLTIuMSAwLTQuMi0uNi02LjEtMS42TDI5MSA0MzljLTIuOS0xLjYtMS41LTIuMi0uNS0yLjUgMy44LTEuMyA0LjYtMS42IDguNy00IC40LS4yIDEtLjEgMS40IC4xbDE0LjggOC44Yy41IC4zIDEuMyAuMyAxLjggMEwzNzUgNDA4Yy41LS4zIC45LS45IC45LTEuNmwwLTY2LjdjMC0uNy0uMy0xLjMtLjktMS42bC01Ny44LTMzLjNjLS41LS4zLTEuMi0uMy0xLjggMGwtNTcuOCAzMy4zYy0uNiAuMy0uOSAxLS45IDEuNmwwIDY2LjdjMCAuNiAuNCAxLjIgLjkgMS41bDE1LjggOS4xYzguNiA0LjMgMTMuOS0uOCAxMy45LTUuOGwwLTY1LjljMC0uOSAuNy0xLjcgMS43LTEuN2w3LjMgMGMuOSAwIDEuNyAuNyAxLjcgMS43bDAgNjUuOWMwIDExLjUtNi4yIDE4LTE3LjEgMTgtMy4zIDAtNiAwLTEzLjMtMy42bC0xNS4yLTguN2MtMy43LTIuMi02LjEtNi4yLTYuMS0xMC41bDAtNjYuN2MwLTQuMyAyLjMtOC40IDYuMS0xMC41bDU3LjgtMzMuNGMzLjctMi4xIDguNS0yLjEgMTIuMSAwbDU3LjggMzMuNGMzLjcgMi4yIDYuMSA2LjIgNi4xIDEwLjVsMCA2Ni43YzAgNC4zLTIuMyA4LjQtNi4xIDEwLjVsLTU3LjggMzMuNGMtMS43IDEuMS0zLjggMS43LTYgMS43ek0zNjMgMzg2LjJjMC0xMi41LTguNC0xNS44LTI2LjItMTguMi0xOC0yLjQtMTkuOC0zLjYtMTkuOC03LjggMC0zLjUgMS41LTguMSAxNC44LTguMSAxMS45IDAgMTYuMyAyLjYgMTguMSAxMC42IC4yIC44IC44IDEuMyAxLjYgMS4zbDcuNSAwYy41IDAgLjktLjIgMS4yLS41IC4zLS40IC41LS44IC40LTEuMy0xLjItMTMuOC0xMC4zLTIwLjItMjguOC0yMC4yLTE2LjUgMC0yNi4zIDctMjYuMyAxOC42IDAgMTIuNyA5LjggMTYuMSAyNS42IDE3LjcgMTguOSAxLjkgMjAuNCA0LjYgMjAuNCA4LjMgMCA2LjUtNS4yIDkuMi0xNy40IDkuMi0xNS4zIDAtMTguNy0zLjgtMTkuOC0xMS40LS4xLS44LS44LTEuNC0xLjctMS40bC03LjUgMGMtLjkgMC0xLjcgLjctMS43IDEuNyAwIDkuNyA1LjMgMjEuMyAzMC42IDIxLjMgMTguNSAwIDI5LTcuMiAyOS0xOS44em01NC41LTUwLjFjMCA2LjEtNSAxMS4xLTExLjEgMTEuMXMtMTEuMS01LTExLjEtMTEuMWMwLTYuMyA1LjItMTEuMSAxMS4xLTExLjEgNi0uMSAxMS4xIDQuOCAxMS4xIDExLjF6bS0xLjggMGMwLTUuMi00LjItOS4zLTkuNC05LjMtNS4xIDAtOS4zIDQuMS05LjMgOS4zczQuMiA5LjQgOS4zIDkuNGM1LjItLjEgOS40LTQuMyA5LjQtOS40em0tNC41IDYuMmwtMi42IDBjLS4xLS42LS41LTMuOC0uNS0zLjktLjItLjctLjQtMS4xLTEuMy0xLjFsLTIuMiAwIDAgNS0yLjQgMCAwLTEyLjUgNC4zIDBjMS41IDAgNC40IDAgNC40IDMuMyAwIDIuMy0xLjUgMi44LTIuNCAzLjEgMS43IC4xIDEuOCAxLjIgMi4xIDIuOCAuMSAxIC4zIDIuNyAuNiAzLjN6bS0yLjgtOC44YzAtMS43LTEuMi0xLjctMS44LTEuN2wtMiAwIDAgMy41IDEuOSAwYzEuNiAwIDEuOS0xLjEgMS45LTEuOHpNMTM3LjMgMTkxYzAtMi43LTEuNC01LjEtMy43LTYuNEw3Mi4zIDE0OS4zYy0xLS42LTIuMi0uOS0zLjQtMWwtLjYgMGMtMS4yIDAtMi4zIC40LTMuNCAxTDMuNyAxODQuNkMxLjQgMTg1LjkgMCAxODguNCAwIDE5MWwuMSA5NWMwIDEuMyAuNyAyLjUgMS44IDMuMnMyLjUgLjcgMy43IDBMNDIgMjY4LjNjMi4zLTEuNCAzLjctMy44IDMuNy02LjRsMC00NC40YzAtMi42IDEuNC01LjEgMy43LTYuNGwxNS41LTguOWMxLjItLjcgMi40LTEgMy43LTFzMi42IC4zIDMuNyAxbDE1LjUgOC45YzIuMyAxLjMgMy43IDMuOCAzLjcgNi40bDAgNDQuNGMwIDIuNiAxLjQgNS4xIDMuNyA2LjRsMzYuNCAyMC45YzEuMSAuNyAyLjYgLjcgMy43IDAgMS4xLS42IDEuOC0xLjkgMS44LTMuMmwuMi05NXpNNDcyLjUgODcuM2wwIDE3Ni40YzAgMi42LTEuNCA1LjEtMy43IDYuNGwtNjEuMyAzNS40Yy0yLjMgMS4zLTUuMSAxLjMtNy40IDBsLTYxLjMtMzUuNGMtMi4zLTEuMy0zLjctMy44LTMuNy02LjRsMC03MC44YzAtMi42IDEuNC01LjEgMy43LTYuNGw2MS4zLTM1LjRjMi4zLTEuMyA1LjEtMS4zIDcuNCAwbDE1LjMgOC44YzEuNyAxIDMuOS0uMyAzLjktMi4ybDAtOTRjMC0yLjggMy00LjYgNS41LTMuMmwzNi41IDIwLjRjMi4zIDEuMiAzLjggMy43IDMuOCA2LjR6bS00NiAxMjguOWMwLS43LS40LTEuMy0uOS0xLjZsLTIxLTEyLjJjLS42LS4zLTEuMy0uMy0xLjkgMGwtMjEgMTIuMmMtLjYgLjMtLjkgLjktLjkgMS42bDAgMjQuM2MwIC43IC40IDEuMyAuOSAxLjZsMjEgMTIuMWMuNiAuMyAxLjMgLjMgMS44IDBsMjEtMTIuMWMuNi0uMyAuOS0uOSAuOS0xLjZsMC0yNC4zIC4xIDB6bTIwOS44LS43YzIuMy0xLjMgMy43LTMuOCAzLjctNi40bDAtMTcuMWMwLTIuNi0xLjQtNS4xLTMuNy02LjRsLTYwLjktMzUuNGMtMi4zLTEuMy01LjEtMS4zLTcuNCAwbC02MS4zIDM1LjRjLTIuMyAxLjMtMy43IDMuOC0zLjcgNi40bDAgNzAuOGMwIDIuNyAxLjQgNS4xIDMuNyA2LjRsNjAuOSAzNC43YzIuMiAxLjMgNSAxLjMgNy4zIDBsMzYuOC0yMC41YzIuNS0xLjQgMi41LTUgMC02LjRMNTUwIDI0MS42Yy0xLjItLjctMS45LTEuOS0xLjktMy4ybDAtMjIuMmMwLTEuMyAuNy0yLjUgMS45LTMuMmwxOS4yLTExLjFjMS4xLS43IDIuNi0uNyAzLjcgMEw1OTIuMSAyMTNjMS4xIC43IDEuOSAxLjkgMS45IDMuMmwwIDE3LjRjMCAyLjggMy4xIDQuNiA1LjYgMy4ybDM2LjctMjEuM3pNNTU5IDIxOWMtLjQgLjMtLjcgLjctLjcgMS4ybDAgMTMuNmMwIC41IC4zIDEgLjcgMS4ybDExLjggNi44Yy40IC4zIDEgLjMgMS40IDBMNTg0IDIzNWMuNC0uMyAuNy0uNyAuNy0xLjJsMC0xMy42YzAtLjUtLjMtMS0uNy0xLjJsLTExLjgtNi44Yy0uNC0uMy0xLS4zLTEuNCAwTDU1OSAyMTl6TTMwNC44IDI2Mi41bDAtNzAuNGMwLTIuNi0xLjYtNS4xLTMuOS02LjRsLTYxLjEtMzUuMmMtMi4xLTEuMi01LTEuNC03LjQgMGwtNjEuMSAzNS4yYy0yLjMgMS4zLTMuOSAzLjctMy45IDYuNGwwIDcwLjRjMCAyLjggMS45IDUuMiA0IDYuNGw2MS4yIDM1LjJjMi40IDEuNCA1LjIgMS4zIDcuNCAwbDYxLTM1LjJjMS44LTEgMy4xLTIuNyAzLjYtNC43IC4xLS41IC4yLTEuMSAuMi0xLjd6TTIzMC41IDEzNy42bC0uOCAuNSAxLjEgMC0uMy0uNXptNzYuMiAxMzAuMmwtLjQtLjcgMCAuOSAuNC0uMnoiXX0sX2JlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvZGVwZW4iLGljb246WzUxMiw1MTIsW10sImYxY2IiLCJNNTAyLjMgMTU5LjdsLTIzNC0xNTZjLTgtNC45LTE2LjUtNS0yNC42IDBsLTIzNCAxNTZjLTYgNC05LjcgMTEuMS05LjcgMTguM0wwIDMzNGMwIDcuMSAzLjcgMTQuMyA5LjcgMTguM2wyMzQgMTU2YzggNC45IDE2LjUgNSAyNC42IDBsMjM0LTE1NmM2LTQgOS43LTExLjEgOS43LTE4LjNsMC0xNTZjMC03LjEtMy43LTE0LjMtOS43LTE4LjN6TTI3OCA2My4xbDE3Mi4zIDExNC45LTc2LjkgNTEuNC05NS40LTYzLjcgMC0xMDIuNnptLTQ0IDBMMjM0IDE2NS43IDEzOC42IDIyOS40IDYxLjcgMTc4IDIzNCA2My4xek00NCAyMTkuMUw5OS4xIDI1NiA0NCAyOTIuOCA0NCAyMTkuMXpNMjM0IDQ0OC44TDYxLjcgMzM0IDEzOC42IDI4Mi42IDIzNCAzNDYuMyAyMzQgNDQ4Ljh6TTI1NiAzMDhsLTc3LjctNTIgNzcuNy01MiA3Ny43IDUyLTc3LjcgNTJ6bTIyIDE0MC45bDAtMTAyLjYgOTUuNC02My43IDc2LjkgNTEuNC0xNzIuMyAxMTQuOXptMTkwLTE1NmwtNTUuMS0zNi45IDU1LjEtMzYuOSAwIDczLjd6Il19LFRiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyYXZlbHJ5IixpY29uOls1MTIsNTEyLFtdLCJmMmQ5IiwiTTQ5OC42IDIzNC4yYy0xLjItMTAuMy0xLjctMjAuOC0zLjctMzEtMi41LTEyLjQtNS43LTI0LjYtOS42LTM2LjYtNi44LTIwLjktMTcuMi00MC4zLTMwLjktNTcuNS01LjktNy42LTEyLjEtMTQuOC0xOC44LTIxLjctMTQuMS0xNC0zMC0yNi4xLTQ3LjEtMzYuMS0xNy44LTEwLjYtMzYuOC0xOC45LTU2LjctMjQuNy0xMS0zLjEtMjIuMy01LjQtMzMuNS03LjYtNi44LTEuMy0xMy43LTEuNy0yMC42LTIuNS0uMyAwLS42LS40LS45LS42LTEwLjggMC0yMS41IDAtMzIuMyAwLTIuNCAuNC00LjggLjktNy4yIDEuMi0xMS42IDEuMi0yMy4xIDMuNi0zNC4zIDcuMS0xMy44IDQuMS0yNy4xIDkuNi0zOS44IDE2LjQtMTMuMyA3LTI2LjEgMTUuMS0zOC4xIDI0LjItNi4yIDQuNi0xMi4zIDkuNC0xOCAxNC41LTEwLjIgOS4yLTIwLjQgMTguNC0yOS45IDI4LjMtMTIuOCAxMy4zLTI0LjEgMjguMS0zMy42IDQ0LTguNiAxNC0xNS41IDI5LTIwLjUgNDQuNi03LjIgMjIuNy0xMC4zIDQ2LjYtOS4yIDcwLjMgLjYgMTMuNSAyIDI2LjkgNC40IDQwLjIgMy40IDE4LjQgOSAzNi4zIDE2LjcgNTMuMyAxMy42IDI5LjIgMzIuMSA1MS41IDUwLjQgNjcuOSAxMi44IDExLjYgMjYuOCAyMS45IDQxLjggMzAuNiAxNy43IDEwLjQgMzYuNCAxOC45IDU1LjkgMjUuMyAxMy4zIDQuMyAyNi45IDcuNiA0MC42IDkuOCA2LjEgMSAxMi4zIDEuMyAxOC40IDEuOSAuNCAuMSAuOCAuMyAxLjIgLjZsMzIuMyAwYzIuNS0uNCA1LS45IDcuNS0xLjEgMTYuMy0xLjMgMzIuMS01LjMgNDcuNS0xMC43IDE3LjItNS45IDMzLjctMTMuOSA0OS0yMy44IDkuNy02LjQgMTkuNC0xMy4xIDI4LjctMjAuMSA1LjgtNC4zIDExLTkuNSAxNi4zLTE0LjUgNC0zLjcgNy44LTcuNiAxMS41LTExLjUgMTItMTIuNyAyMi42LTI2LjYgMzEuNC00MS42IDkuNS0xNiAxNy40LTMyLjkgMjIuMy01MC45IDIuOS0xMC40IDQuOS0yMSA3LTMxLjcgMS01LjMgMS4zLTEwLjcgMS45LTE2LjEgMC0uMyAuNC0uNiAuNi0uOWwwLTM3LjFjLS4yLS42LS40LTEuMi0uNi0xLjh6bS0xNjEuMS0xLjJzLTE2LjYtMy0yOC41LTNjLTI3LjIgMC0zMy42IDE0LjktMzMuNiAzN2wwIDkzLjctNzMuNSAwIDAtMTkwLjcgNzMuNSAwIDAgMzEuOWM4LjktMjYuOCAyNi44LTM2LjIgNjItMzYuMmwwIDY3LjN6Il19LExiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbGlwYXkiLGljb246WzQ0OCw1MTIsW10sImY2NDIiLCJNMzc3LjcgMzJMNzAuMyAzMkMzMS40IDMyIDAgNjMuNCAwIDEwMi4zTDAgNDA5LjdDMCA0NDguNiAzMS40IDQ4MCA3MC4zIDQ4MGwzMDcuNSAwYzM4LjUgMCA2OS44LTMxLjEgNzAuMy02OS42LTQ2LTI1LjYtMTEwLjYtNjAuMy0xNzEuNi04OC40LTMyLjEgNDQtODQuMSA4MS0xNDguNiA4MS03MC42IDAtOTMuNy00NS4zLTk3LTc2LjQtNC0zOSAxNC45LTgxLjUgOTkuNS04MS41IDM1LjQgMCA3OS40IDEwLjIgMTI3LjEgMjUgMTYuNS0zMC4xIDI2LjUtNjAuMyAyNi41LTYwLjNsLTE3OC4yIDAgMC0xNi43IDkyLjEgMCAwLTMxLjItMTA5LjQgMCAwLTE5IDEwOS40IDAgMC01MC40IDUwLjkgMCAwIDUwLjQgMTA5LjQgMCAwIDE5LTEwOS40IDAgMCAzMS4yIDg4LjggMHMtMTUuMiA0Ni42LTM4LjMgOTAuOWM0OC45IDE2LjcgMTAwIDM2IDE0OC42IDUyLjdsMC0yMzQuNGMuMi0zOC43LTMxLjItNzAuMy02OS45LTcwLjN6TTQ3LjMgMzIzYzEgMjAuMiAxMC4yIDUzLjcgNjkuOSA1My43IDUyLjEgMCA5Mi42LTM5LjcgMTE3LjktNzIuOS00NC42LTE4LjctODQuNS0zMS40LTEwOS40LTMxLjQtNjcuNCAwLTc5LjQgMzMuMS03OC40IDUwLjZ6Il19LCRiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hbWV4IixpY29uOls1NzYsNTEyLFtdLCJmMWYzIiwiTTAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMS4xLTYxLjcgMC0zMS45LTM1LjEtMzEuOSAzNS4xLTIwMy43IDAgMC0xNjMuOC02NS44IDAgODEuNy0xODQuNyA3OC42IDAgMjguMSA2My4yIDAtNjMuMiA5Ny4yIDAgMTYuOSA0Ny42IDE3LTQ3LjYgNzUuNSAwIDAtMi40YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBMMCA0MzJ6bTQ0MC40LTIxLjdsNDIuMi00Ni4zIDQyIDQ2LjMgNTEuNCAwLTY4LTcyLjEgNjgtNzIuMS01MC42IDAtNDIgNDYuNy00MS41LTQ2LjctNTEuNCAwIDY3LjUgNzIuNS02Ny40IDcxLjYgMC0zMy4xLTgzIDAgMC0yMi4yIDgwLjkgMCAwLTMyLjMtODAuOSAwIDAtMjIuNCA4MyAwIDAtMzMuMS0xMjIgMCAwIDE0My4yIDE3MS44IDB6bTk2LjMtNzJsMzkuMyA0MS45IDAtODMuMy0zOS4zIDQxLjR6bS0zNi4zLTkybDM2LjktMTAwLjYgMCAxMDAuNiAzOC43IDAgMC0xNDMuMy02MC4yIDAtMzIuMiA4OS4zLTMxLjktODkuMy02MS4yIDAgMCAxNDMuMS02My4yLTE0My4xLTUxLjIgMC02Mi40IDE0My4zIDQzIDAgMTEuOS0yOC43IDY1LjkgMCAxMiAyOC43IDgyLjcgMCAwLTEwMC4zIDM2LjggMTAwLjMgMzQuNCAwek0yODIgMTg1LjRsMTkuNS00Ni45IDE5LjQgNDYuOS0zOC45IDB6Il19LEFiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLWFsdCIsaWNvbjpbNTc2LDUxMixbXSwiZjFhOCIsIk0yNDQgMjQ2Yy0zLjItMi02LjMtMi45LTEwLjEtMi45LTYuNiAwLTEyLjYgMy4yLTE5LjMgMy43bDEuNyA0LjkgMjcuNy01Ljd6TTM3OS45IDQ0My45Yy0xOSAwLTY0LjEgOS41LTc5LjkgMTkuOGw2LjkgNDUuMWMzNS43IDYuMSA3MC4xIDMuNiAxMDYtOS44LTQuOC0xMC0yMy41LTU1LjEtMzMtNTUuMXpNMzQwLjggMTc3YzYuNiAyLjggMTEuNSA5LjIgMjIuNyAyMi4xIDItMS40IDcuNS01LjIgNy41LTguNiAwLTQuOS0xMS44LTEzLjItMTMuMi0yMyAxMS4yLTUuNyAyNS4yLTYgMzcuNi04LjkgNjguMS0xNi40IDExNi4zLTUyLjkgMTQ2LjgtMTE2LjcgNi4xLTEyLjYgMTEuOC0yNS44IDEyLjQtMzkuOWwtMiAyLjZjLTI4LjQgNTAtMzMgNjMuMi04MS4zIDEwMC0zMS45IDI0LjQtNjkuMiA0MC4yLTEwNi42IDU0LjZsLTYuMy0uMyAwLTIxLjhjLTE5LjYgMS42LTE5LjctMTQuNi0zMS42LTIzLTE4LjcgMjAuNi0zMS42IDQwLjgtNTguOSA1MS4xLTEyLjcgNC44LTE5LjYgMTAtMjUuOSAyMS44IDM0LjktMTYuNCA5MS4yLTEzLjUgOTguOC0xMHpNNTU1LjUgMGwtLjYgMS4xLS4zIC45IC42LS42IC4zLTEuNHpNNDk2LjMgMzgyLjFjLTMzLjktNTYuOS03NS4zLTExOC40LTE1MC0xMTUuNWwtLjMtNmMtMS4xLTEzLjUgMzIuOCAzLjIgMzUuMS0zMWwtMTQuNCA3LjJjLTE5LjgtNDUuNy04LjYtNTQuMy02NS41LTU0LjMtMTQuNyAwLTI2LjcgMS43LTQxLjQgNC42IDIuOSAxOC42IDIuMiAzNi43LTEwLjkgNTAuM2wxOS41IDUuNWMtMS43IDMuMi0yLjkgNi4zLTIuOSA5LjggMCAyMSA0Mi44IDIuOSA0Mi44IDMzLjYgMCAxOC40LTM2LjggNjAuMS01NC45IDYwLjEtOCAwLTUzLjctNTAtNTMuNC02MC4xbC4zLTQuNiA1Mi4zLTExLjVjMTMtMi42IDEyLjMtMjIuNy0yLjktMjIuNy0zLjcgMC00My4xIDkuMi00OS40IDEwLjYtMi01LjItNy41LTE0LjEtMTMuOC0xNC4xLTMuMiAwLTYuMyAzLjItOS41IDQtOS4yIDIuNi0zMSAyLjktMjEuNSAyMC4xTDE1LjkgMjk4LjVjLTUuNSAxLjEtOC45IDYuMy04LjkgMTEuOCAwIDYgNS41IDEwLjkgMTEuNSAxMC45IDggMCAxMzEuMy0yOC40IDE0Ny40LTMyLjIgMi42IDMuMiA0LjYgNi4zIDcuOCA4LjYgMjAuMSAxNC40IDU5LjggODUuOSA3Ni40IDg1LjkgMjQuMSAwIDU4LTIyLjQgNzEuMy00MS45IDMuMi00LjMgNi45LTcuNSAxMi40LTYuOSAuNiAxMy44LTMxLjYgMzQuMi0zMyA0My43LTEuNCAxMC4yLTEgMzUuMi0uMyA0MS4xIDI2LjcgOC4xIDUyLTMuNiA3Ny45LTIuOSA0LjMtMjEgMTAuNi00MS45IDkuOC02My41bC0uMy05LjVjLTEuNC0zNC4yLTEwLjktMzguNS0zNC44LTU4LjYtMS4xLTEuMS0yLjYtMi42LTMuNy00IDIuMi0xLjQgMS4xLTEgNC42LTEuNyA4OC41IDAgNTYuMyAxODMuNiAxMTEuNSAyMjkuOSAzMy4xLTE1IDcyLjUtMjcuOSAxMDMuNS00Ny4yLTI5LTI1LjYtNTIuNi00NS43LTcyLjctNzkuOXpNMzAwLjEgNDI4LjJsMCAyNy4yIDExLjgtMy40LTIuOS0yMy44LTguOSAwek0yMzEuNCAyNzcuOGwyNC4xIDYxLjIgMjEtMTMuOC0zMS4zLTUwLjktMTMuOCAzLjV6bTg0LjQgMTU0LjlsMiAxMi40YzktMS41IDU4LjQtNi42IDU4LjQtMTQuMSAwLTEuNC0uNi0zLjItLjktNC42LTI2LjggMC0zNi45IDMuOC01OS41IDYuM3oiXX0sRGJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxldHRlcmJveGQiLGljb246WzY0MCw1MTIsW10sImU2MmQiLCJNNTIxLjMgMTI4QzU4Ni45IDEyOCA2NDAgMTgxLjEgNjQwIDI0Ni42UzU4Ni45IDM2NS4yIDUyMS4zIDM2NS4yYy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjggMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwuOC0xLjJjMjAuOC0zMi4zIDU2LjgtNTMuOSA5Ny45LTU0LjZsMiAwek0zMjAgMTI4YzQyLjUgMCA3OS43IDIyLjMgMTAwLjcgNTUuOC0xMS40IDE4LjItMTggMzkuNy0xOCA2Mi44czYuNiA0NC42IDE4IDYyLjhsLS44IDEuMmMtMjAuOCAzMi4zLTU2LjggNTMuOS05Ny45IDU0LjZsLTIgMGMtNDIuNSAwLTc5LjctMjIuMy0xMDAuNy01NS44IDExLjQtMTguMiAxOC0zOS43IDE4LTYyLjhzLTYuNi00NC42LTE4LTYyLjhsLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHptLTIwMS4zIDBjNDIuNSAwIDc5LjcgMjIuMyAxMDAuNyA1NS44LTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwQzUzLjEgMzY1LjEgMCAzMTIuMSAwIDI0Ni42UzUzLjEgMTI4IDExOC43IDEyOHoiXX0sRWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZXJhIixpY29uOls1MTIsNTEyLFtdLCJmMjZhIiwiTTMyMS45IDMyLjdjLTE3MC4yIDAtMjUyLjYgMjIzLjgtMTQ3LjUgMzU1LjEgMzYuNSA0NS40IDg4LjYgNzUuNiAxNDcuNSA3NS42IDM2LjMgMCA3MC4zLTExLjEgOTkuNC0zMC40LTQzLjggMzkuMi0xMDEuOSA2My0xNjUuMyA2My0zLjkgMC04IDAtMTEuOS0uMy0xMzEuNS02LjEtMjM2LjEtMTE0LjYtMjM2LjEtMjQ3LjcgMC0xMzcgMTExLTI0OCAyNDgtMjQ4bC44IDBjNjMuMSAuMyAxMjAuNyAyNC4xIDE2NC40IDYzLjEtMjktMTkuNC02My4xLTMwLjQtOTkuMy0zMC40ek00MjMuNyA0MzAuNGMtNDAuOSAyNC43LTkwLjcgMjMuNi0xMzItNS44IDU2LjItMjAuNSA5Ny43LTkxLjYgOTcuNy0xNzYuNiAwLTg0LjctNDEuMi0xNTUuOC05Ny40LTE3Ni42IDQxLjgtMjkuMiA5MS4yLTMwLjMgMTMyLjktNSAxMDUuOSA5OC43IDEwNS41IDI2NS43LTEuMiAzNjR6Il19LFBiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWlibyIsaWNvbjpbNTEyLDUxMixbXSwiZjE4YSIsIk00MDcgMTc3LjZjNy42LTI0LTEzLjQtNDYuOC0zNy40LTQxLjctMjIgNC44LTI4LjgtMjguMS03LjEtMzIuOCA1MC4xLTEwLjkgOTIuMyAzNy4xIDc2LjUgODQuOC02LjggMjEuMi0zOC44IDEwLjgtMzItMTAuM3pNMjE0LjggNDQ2LjdjLTEwNi4zIDAtMjE0LjgtNTEuNC0yMTQuOC0xMzYuMyAwLTQ0LjMgMjgtOTUuNCA3Ni4zLTE0My43IDk5LjctOTkuNyAyMDMuMi0xMDAuOSAxNzMuNi01LjctNCAxMy4xIDEyLjMgNS43IDEyLjMgNiA3OS41LTMzLjYgMTQwLjUtMTYuOCAxMTQgNTEuNC0zLjcgOS40IDEuMSAxMC45IDguMyAxMy4xIDEzNS43IDQyLjMgMzQuOCAyMTUuMi0xNjkuNyAyMTUuMnpNMzU4LjUgMzAwLjRjLTUuNC01NS43LTc4LjUtOTQtMTYzLjQtODUuNy04NC44IDguNi0xNDguOCA2MC4zLTE0My40IDExNnM3OC41IDk0IDE2My40IDg1LjdjODQuOC04LjYgMTQ4LjgtNjAuMyAxNDMuNC0xMTZ6TTM0Ny45IDM1LjFjLTI1LjkgNS42LTE2LjggNDMuNyA4LjMgMzguMyA3Mi4zLTE1LjIgMTM0LjggNTIuOCAxMTEuNyAxMjQtNy40IDI0LjIgMjkuMSAzNyAzNy40IDEyIDMxLjktOTkuOC01NS4xLTE5NS45LTE1Ny40LTE3NC4zem0tNzguNSAzMTFjLTE3LjEgMzguOC02Ni44IDYwLTEwOS4xIDQ2LjMtNDAuOC0xMy4xLTU4LTUzLjQtNDAuMy04OS43IDE3LjctMzUuNCA2My4xLTU1LjQgMTAzLjQtNDUuMSA0MiAxMC44IDYzLjEgNTAuMiA0NiA4OC41em0tODYuMy0zMGMtMTIuOS01LjQtMzAgLjMtMzggMTIuOS04LjMgMTIuOS00LjMgMjggOC42IDM0IDEzLjEgNiAzMC44IC4zIDM5LjEtMTIuOSA4LTEzLjEgMy43LTI4LjMtOS43LTM0em0zMi42LTEzLjRjLTUuMS0xLjctMTEuNCAuNi0xNC4zIDUuNC0yLjkgNS4xLTEuNCAxMC42IDMuNyAxMi45IDUuMSAyIDExLjctLjMgMTQuNi01LjQgMi44LTUuMiAxLjEtMTAuOS00LTEyLjl6Il19LEliZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWFkbWUiLGljb246WzU3Niw1MTIsW10sImY0ZDUiLCJNNTI4LjMgNDYuNWwtMTM5LjggMGMtNDguMSAwLTg5LjkgMzMuMy0xMDAuNCA4MC4zLTEwLjYtNDctNTIuMy04MC4zLTEwMC40LTgwLjNMNDggNDYuNUMyMS41IDQ2LjUgMCA2OCAwIDk0LjVMMCAzNDAuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OGw4OS43IDBjMTAyLjIgMCAxMzIuNyAyNC40IDE0Ny4zIDc1IC43IDIuOCA1LjIgMi44IDYgMCAxNC43LTUwLjYgNDUuMi03NSAxNDcuMy03NWw4OS43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yNDUuN2MwLTI2LjQtMjEuMy00Ny45LTQ3LjctNDguMXpNMjQyIDMxMS45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHpNNTAxLjMgMzExLjhjMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjhjMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOC0uMSAweiJdfSxOYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29sYW5nIixpY29uOls2NDAsNTEyLFtdLCJlNDBmIiwiTTQwMC4xIDE5NC44Yy0xMC45IDIuOC0xOS45IDQuMy0yOS4xIDcuNi03LjMgMS45LTE0LjcgMy45LTIzLjIgNi4xbC0uNiAuMWMtNC4yIDEuMi00LjYgMS4zLTguNS0zLjItNC43LTUuMy04LjEtOC43LTE0LjYtMTEuOS0xOS43LTkuNi0zOC43LTYuOC01Ni40IDQuNy0yMS4yIDEzLjctMzIuMSAzNC0zMS44IDU5LjIgLjMgMjUgMTcuNCA0NS41IDQxLjIgNDguOSAyMiAyLjggMzkuOC00LjYgNTMuOC0yMC41IDIuMS0yLjYgNC01LjMgNi4xLTguMyAuOC0xIDEuNS0yLjEgMi4zLTMuM2wtNjAuMSAwYy02LjUgMC04LjEtNC01LjktOS4zIDQtOS43IDExLjUtMjUuOSAxNS45LTM0IC45LTEuOCAzLjEtNS44IDYuOS01LjhsMTAxLjEgMGM0LjUtMTMuNCAxMS44LTI2LjkgMjEuNi0zOS43IDIyLjctMjkuOSA0OS4zLTQ1LjUgODcuMi01MiAzMS44LTUuNiA2MS43LTIuNSA4OC45IDE1LjkgMjQuNiAxNi44IDM5LjggMzkuNiA0My45IDY5LjUgNS4zIDQyLjEtNi45IDc2LjMtMzYuNyAxMDUuNi0xOS43IDIwLjktNDQuOSAzNC03My45IDM5LjktNS42IDEtMTEuMSAxLjUtMTYuNSAyLTIuOSAuMi01LjcgLjUtOC41IC44LTI4LjMtLjYtNTQuMi04LjctNzYtMjcuNC0xNS4zLTEzLjMtMjUuOS0yOS42LTMxLjEtNDguNS0zLjcgNy4zLTggMTQuNC0xNCAyMS4xLTIxLjYgMjkuNi01MC45IDQ4LTg3LjkgNTIuOS0zMC42IDQuMS01OC45LTEuOC04My45LTIwLjUtMjMtMTcuNS0zNi4xLTQwLjUtMzkuNS02OS4yLTQuMS0zNCA1LjktNjUuNCAyNi40LTkxLjMgMjIuMi0yOSA1MS41LTQ3LjQgODcuMy01My45IDI5LjMtNi4yIDU3LjMtMS45IDgyLjYgMTUuMyAxNi41IDEwLjkgMjguMyAyNS44IDM2LjEgNDMuOSAxLjkgMi44IC42IDQuNC0zLjEgNS4zek00OC4zIDIwMC40Yy0xLjMgMC0xLjYtLjYtLjktMS42bDYuNi04LjRjLjYtLjkgMi4yLTEuNSAzLjQtMS41bDExMS4zIDBjMS4yIDAgMS41IC45IC45IDEuOGwtNS4zIDguMWMtLjYgMS0yLjIgMS45LTMuMSAxLjlsLTExMi44LS4zek0xLjIgMjI5LjFjLTEuMiAwLTEuNi0uNy0uOS0xLjZsNi41LTguNGMuNi0uOSAyLjItMS42IDMuNC0xLjZsMTQyLjEgMGMxLjIgMCAxLjggMSAxLjUgMS45bC0yLjUgNy41Yy0uMyAxLjItMS41IDEuOS0yLjggMS45TDEuMiAyMjkuMXptNzQuNSAyNi44Yy0uNiAuOS0uMyAxLjggLjkgMS44bDY4IC4zYy45IDAgMi4yLS45IDIuMi0yLjFsLjYtNy41YzAtMS4zLS42LTIuMi0xLjktMi4ybC02Mi4zIDBjLTEuMiAwLTIuNSAuOS0zLjEgMS45bC00LjQgNy44em01MDEuNS0xOGMtLjItMi42LS4zLTQuOC0uNy03LTUuNi0zMC44LTM0LTQ4LjMtNjMuNi00MS40LTI5IDYuNS00Ny43IDI0LjktNTQuNSA1NC4yLTUuNiAyNC4zIDYuMiA0OC45IDI4LjYgNTguOSAxNy4yIDcuNSAzNC4zIDYuNiA1MC44LTEuOSAyNC42LTEzLjYgMzgtMzIuNyAzOS42LTU5LjUtLjEtMS4yLS4xLTIuMy0uMi0zLjN6Il19LEZiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGFjay1leGNoYW5nZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4ZCIsIk0xOC4xIDMzMi4zbDQxMi43IDAgMCAyMmMwIDM3LjctMjkuMyA2OC02NS4zIDY4bC0xOSAwLTg2LjggODkuNyAwLTg5LjctMTc2LjMgMGMtMzYgMC02NS4zLTMwLjMtNjUuMy02OGwwLTIyem0wLTIzLjZsNDEyLjcgMCAwLTg1LTQxMi43IDAgMCA4NXptMC0xMDkuNGw0MTIuNyAwIDAtODUtNDEyLjcgMCAwIDg1ek0zNjUuNCAwTDgzLjQgMGMtMzYgMC02NS4zIDMwLjMtNjUuMyA2Ny43bDAgMjIuMyA0MTIuNyAwIDAtMjIuM0M0MzAuNyAzMC4zIDQwMS40IDAgMzY1LjQgMHoiXX0sT2JlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imd1bHAiLGljb246WzI1Niw1MTIsW10sImYzYWUiLCJNMjEwIDM5MS4xbC0xNC4xIDI0LjYtNC42IDgwLjJjMCA4LjktMjguMyAxNi4xLTYzLjEgMTYuMXMtNjMuMS03LjItNjMuMS0xNi4xbC01LjgtNzkuNC0xNC45LTI1LjRjNDEuMiAxNy4zIDEyNiAxNi43IDE2NS42IDB6TTE0IDEzNy44TDI3LjYgMjYzLjNjNS45LTIwIDIwLjgtNDcgNDAtNTUuMiA2LjMtMi43IDEyLjctMi43IDE4LjcgLjkgNS4yIDMgOS42IDkuMyAxMC4xIDExLjggMS4yIDYuNS0yIDkuMS00LjUgOS4xLTMgMC01LjMtNC42LTYuOC03LjMtNC4xLTcuMy0xMC4zLTcuNi0xNi45LTIuOC02LjkgNS0xMi45IDEzLjQtMTcuMSAyMC43LTUuMSA4LjgtOS40IDE4LjUtMTIgMjguMi0xLjUgNS42LTIuOSAxNC42LS42IDE5LjkgMSAyLjIgMi41IDMuNiA0LjkgMy42IDUgMCAxMi4zLTYuNiAxNS44LTEwLjEgNC41LTQuNSAxMC4zLTExLjUgMTIuNS0xNmw1LjItMTUuNWMyLjYtNi44IDkuOS01LjYgOS45IDAgMCAxMC4yLTMuNyAxMy42LTEwIDM0LjctNS44IDE5LjUtNy42IDI1LjgtNy42IDI1LjgtLjcgMi44LTMuNCA3LjUtNi4zIDcuNS0xLjIgMC0yLjEtLjQtMi42LTEuMi0xLTEuNC0uOS01LjMtLjgtNi4zIC4yLTMuMiA2LjMtMjIuMiA3LjMtMjUuMi0yIDIuMi00LjEgNC40LTYuNCA2LjYtNS40IDUuMS0xNC4xIDExLjgtMjEuNSAxMS44LTMuNCAwLTUuNi0uOS03LjctMi40bDcuNiA3OS42YzIgNSAzOS4yIDE3LjEgODguMiAxNy4xIDQ5LjEgMCA4Ni4zLTEyLjIgODguMi0xNy4xbDEwLjktOTQuNmMtNS43IDUuMi0xMi4zIDExLjYtMTkuNiAxNC44LTUuNCAyLjMtMTcuNCAzLjgtMTcuNC01LjcgMC01LjIgOS4xLTE0LjggMTQuNC0yMS41IDEuNC0xLjcgNC43LTUuOSA0LjctOC4xIDAtMi45LTYtMi4yLTExLjcgMi41LTMuMiAyLjctNi4yIDYuMy04LjcgOS43LTQuMyA2LTYuNiAxMS4yLTguNSAxNS41LTYuMiAxNC4yLTQuMSA4LjYtOS4xIDIyLTUgMTMuMy00LjIgMTEuOC01LjIgMTQtLjkgMS45LTIuMiAzLjUtNCA0LjUtMS45IDEtNC41IC45LTYuMS0uMy0uOS0uNi0xLjMtMS45LTEuMy0zLjcgMC0uOSAuMS0xLjggLjMtMi43IDEuNS02LjEgNy44LTE4LjEgMTUtMzQuMyAxLjYtMy43IDEtMi42IC44LTIuMy02LjIgNi0xMC45IDguOS0xNC40IDEwLjUtNS44IDIuNi0xMyAyLjYtMTQuNS00LjEtLjEtLjQtLjEtLjgtLjItMS4yLTExLjggOS4yLTI0LjMgMTEuNy0yMC04LjEtNC42IDguMi0xMi42IDE0LjktMjIuNCAxNC45LTQuMSAwLTcuMS0xLjQtOC42LTUuMS0yLjMtNS41IDEuMy0xNC45IDQuNi0yMy44IDEuNy00LjUgNC05LjkgNy4xLTE2LjIgMS42LTMuNCA0LjItNS40IDcuNi00LjUgLjYgLjIgMS4xIC40IDEuNiAuNyAyLjYgMS44IDEuNiA0LjUgLjMgNy4yLTMuOCA3LjUtNy4xIDEzLTkuMyAyMC44LS45IDMuMy0yIDkgMS41IDkgMi40IDAgNC43LS44IDYuOS0yLjQgNC42LTMuNCA4LjMtOC41IDExLjEtMTMuNSAyLTMuNiA0LjQtOC4zIDUuNi0xMi4zIC41LTEuNyAxLjEtMy4zIDEuOC00LjggMS4xLTIuNSAyLjYtNS4xIDUuMi01LjEgMS4zIDAgMi40IC41IDMuMiAxLjUgMS43IDIuMiAxLjMgNC41IC40IDYuOS0yIDUuNi00LjcgMTAuNi02LjkgMTYuNy0xLjMgMy41LTIuNyA4LTIuNyAxMS43IDAgMy40IDMuNyAyLjYgNi44IDEuMiAyLjQtMS4xIDQuOC0yLjggNi44LTQuNSAxLjItNC45IC45LTMuOCAyNi40LTY4LjIgMS4zLTMuMyAzLjctNC43IDYuMS00LjcgMS4yIDAgMi4yIC40IDMuMiAxLjEgMS43IDEuMyAxLjcgNC4xIDEgNi4yLS43IDEuOS0uNiAxLjMtNC41IDEwLjUtNS4yIDEyLjEtOC42IDIwLjgtMTMuMiAzMS45LTEuOSA0LjYtNy43IDE4LjktOC43IDIyLjMtLjYgMi4yLTEuMyA1LjggMSA1LjggNS40IDAgMTkuMy0xMy4xIDIzLjEtMTcgLjItLjMgLjUtLjQgLjktLjYgLjYtMS45IDEuMi0zLjcgMS43LTUuNSAxLjQtMy44IDIuNy04LjIgNS4zLTExLjMgLjgtMSAxLjctMS42IDIuNy0xLjYgMi44IDAgNC4yIDEuMiA0LjIgNCAwIDEuMS0uNyA1LjEtMS4xIDYuMiAxLjQtMS41IDIuOS0zIDQuNS00LjUgMTUtMTMuOSAyNS43LTYuOCAyNS43IC4yIDAgNy40LTguOSAxNy43LTEzLjggMjMuNC0xLjYgMS45LTQuOSA1LjQtNSA2LjQgMCAxLjMgLjkgMS44IDIuMiAxLjggMiAwIDYuNC0zLjUgOC00LjcgNS0zLjkgMTEuOC05LjkgMTYuNi0xNC4xbDE0LjgtMTM2LjhjLTMwLjUgMTcuMS0xOTcuNiAxNy4yLTIyOC4zIC4yem0yMjkuNy04LjVjMCAyMS0yMzEuMiAyMS0yMzEuMiAwIDAtOC44IDUxLjgtMTUuOSAxMTUuNi0xNS45IDkgMCAxNy44IC4xIDI2LjMgLjRMMTY3IDY1LjEgMjI4LjMgLjZjMS40LTEuNCA1LjgtLjIgOS45IDMuNXM2LjYgNy45IDUuMyA5LjNsLS4xIC4xLTU3LjMgNjAuNS0xMCA0MC43YzM5LjkgMi42IDY3LjYgOC4xIDY3LjYgMTQuNnptLTY5LjQgNC42YzAtLjgtLjktMS41LTIuNS0yLjFsLS4yIC44YzAgMS4zLTUgMi40LTExLjEgMi40cy0xMS4xLTEuMS0xMS4xLTIuNGMwLS4xIDAtLjIgLjEtLjNsLjItLjdjLTEuOCAuNi0zIDEuNC0zIDIuMyAwIDIuMSA2LjIgMy43IDEzLjcgMy43IDcuNyAuMSAxMy45LTEuNiAxMy45LTMuN3oiXX0sUmJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InllbHAiLGljb246WzM4NCw1MTIsW10sImYxZTkiLCJNNDIuOSAyNDAuM2w5OS42IDQ4LjZjMTkuMiA5LjQgMTYuMiAzNy41LTQuNSA0Mi43TDMwLjUgMzU4LjVjLTMuMiAuOC02LjQgLjktOS42IC4zcy02LjItMS44LTguOS0zLjctNC45LTQuMy02LjYtNy4xLTIuNy01LjktMy4xLTkuMmMtMy4zLTI4LjgtLjItNTcuOSA5LTg1LjMgMS0zLjEgMi43LTUuOSA0LjktOC4zczQuOS00LjIgNy45LTUuNSA2LjItMS44IDkuNS0xLjggNi40IC45IDkuMyAyLjN6bTQ0IDIzOS4zYzIzLjggMTYuMyA1MC45IDI3LjMgNzkuNCAzMi4xIDMuMiAuNiA2LjUgLjQgOS42LS40czYuMS0yLjMgOC42LTQuNCA0LjYtNC42IDYtNy41IDIuMy02LjEgMi40LTkuNGwzLjktMTEwLjhjLjctMjEuMy0yNS41LTMxLjktMzkuOC0xNi4xTDgyLjggNDQ1LjVjLTIuMiAyLjQtMy44IDUuMy00LjggOC40cy0xLjMgNi40LS45IDkuNiAxLjUgNi4zIDMuMSA5LjEgMy45IDUuMiA2LjYgN2wwIDB6TTIzMi4yIDM2OS43bDU4LjggOTRjMS43IDIuOCA0IDUuMSA2LjggNi45czUuOCAzIDkgMy41IDYuNSAuMyA5LjctLjUgNi4xLTIuNCA4LjYtNC40YzIyLjMtMTguNCA0MC4zLTQxLjUgNTIuNy02Ny42IDEuNC0yLjkgMi4xLTYuMSAyLjItOS40cy0uNi02LjUtMS45LTkuNC0zLjItNS43LTUuNi03LjgtNS4yLTMuOS04LjMtNC45TDI1OC43IDMzNS43Yy0yMC4zLTYuNS0zNy44IDE1LjgtMjYuNSAzMy45ek0zODAuNiAyMzcuNGMtMTEuNS0yNi41LTI4LjctNTAuMi01MC40LTY5LjMtMi40LTIuMS01LjMtMy43LTguNC00LjdzLTYuNC0xLjItOS42LS44LTYuMyAxLjUtOS4xIDMuMi01LjEgNC02LjkgNi43bC02MiA5MS45Yy0xMS45IDE3LjcgNC43IDQwLjYgMjUuMiAzNC43TDM2NiAyNjguNmMzLjEtLjkgNi0yLjUgOC41LTQuNnM0LjUtNC43IDUuOC03LjcgMi4xLTYuMiAyLjItOS40LS42LTYuNS0xLjktOS41bDAgMHpNNjIuMSAzMC4yYy0yLjggMS40LTUuNCAzLjMtNy40IDUuN3MtMy42IDUuMi00LjUgOC4yLTEuMiA2LjItLjkgOS4zIDEuMyA2LjEgMi45IDguOUwxNTYuMyAyNDIuNmMxMS43IDIwLjIgNDIuNiAxMS45IDQyLjYtMTEuNGwwLTIwOC4zYzAtMy4xLS42LTYuMy0xLjgtOS4ycy0zLjEtNS41LTUuNC03LjYtNS0zLjgtOC00LjgtNi4xLTEuNC05LjMtMS4yYy0zOSAzLjEtNzcgMTMuMy0xMTIuMyAzMC4xeiJdfSxCYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29mb3JlIixpY29uOls0NDgsNTEyLFtdLCJmM2E3IiwiTTM0OCAzMTkuOGwtMTMuMiAwIDAgMzQuN2MtMjQuNSAyMy4xLTU2LjMgMzUuOC04OS45IDM1LjgtNzMuMiAwLTEzMi40LTYwLjItMTMyLjQtMTM0LjQgMC03NC4xIDU5LjItMTM0LjQgMTMyLjQtMTM0LjQgMzUuMyAwIDY4LjYgMTQgOTMuNiAzOS40bDYyLjMtNjMuM2MtNDEuOC00Mi4zLTk3LjEtNjUuNi0xNTYuMS02NS42LTEyMi43IDAtMjIwLjcgMTAwLjYtMjIwLjcgMjI0IDAgMTIyLjUgOTcgMjI0IDIyMC43IDIyNCA2My4yIDAgMTI0LjUtMjYuMiAxNzEtODIuNS0yLTI3LjYtMTMuNC03Ny43LTY3LjctNzcuN3pNMzM1LjkgMjA3LjNsLTEwNi4zIDAgMCA4OSAxMTguNCAwYzMzLjUgMCA2MC41IDE1LjEgNzYgNDEuOGwwLTMwLjZjMC02NS4yLTQwLjQtMTAwLjItODguMS0xMDAuMnoiXX0sSGJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF2aWF0byIsaWNvbjpbNjQwLDUxMixbXSwiZjQyMSIsIk0xMDcuMiAyODMuNWwtMTktNDEuOC01Mi4xIDAtMTkgNDEuOC0xNy4xIDAgNjIuMi0xMzEuNCA2Mi4yIDEzMS40LTE3LjIgMHptLTQ1LTk4LjFsLTE5LjYgNDIuNSAzOS4yIDAtMTkuNi00Mi41ek0xNzQuOSAyODcuOGwtNjIuMi0xMzEuNCAxNy4xIDAgNDUuMSA5NiA0NS4xLTk2IDE3IDAtNjIuMSAxMzEuNHptODAuNi00LjNsMC0xMjcuMSAxNS41IDAgMCAxMjcuMS0xNS41IDB6TTQ2NC42IDE2Ny45bDAgMTE1LjYtMTcuMyAwIDAtMTE1LjYtNDEuMiAwIDAtMTEuNSA5OS42IDAgMCAxMS41LTQxLjEgMHpNNjQwIDIxOC44YzAgOS4yLTEuNyAxNy44LTUuMSAyNS44cy04LjIgMTUuMS0xNC4yIDIxLjEtMTMuMSAxMC44LTIxLjEgMTQuMi0xNi42IDUuMS0yNS44IDUuMS0xNy44LTEuNy0yNS44LTUuMS0xNS4xLTguMi0yMS4xLTE0LjItMTAuOC0xMy0xNC4yLTIxLjFjLTMuNC04LTUuMS0xNi42LTUuMS0yNS44czEuNy0xNy44IDUuMS0yNS44IDguMi0xNS4xIDE0LjItMjEuMSAxMy04LjQgMjEuMS0xMS45YzgtMy40IDE2LjYtNS4xIDI1LjgtNS4xczE3LjggMS43IDI1LjggNS4xIDE1LjEgNS44IDIxLjEgMTEuOWM2IDYgMTAuNyAxMy4xIDE0LjIgMjEuMSAzLjQgOCA1LjEgMTYuNiA1LjEgMjUuOHptLTE1LjUgMGMwLTcuMy0xLjMtMTQtMy45LTIwLjNzLTYuMi0xMS43LTEwLjgtMTYuMy0xMC04LjItMTYuMi0xMC45LTEyLjgtNC0xOS44LTQtMTMuNiAxLjMtMTkuOCA0LTExLjYgNi4zLTE2LjIgMTAuOS04LjIgMTAtMTAuOCAxNi4zLTMuOSAxMy4xLTMuOSAyMC4zYzAgNy4zIDEuMyAxNCAzLjkgMjAuM3M2LjIgMTEuNyAxMC44IDE2LjMgMTAgOC4yIDE2LjIgMTAuOSAxMi44IDQgMTkuOCA0IDEzLjYtMS4zIDE5LjgtNCAxMS42LTYuMyAxNi4yLTEwLjkgOC4yLTEwIDEwLjgtMTYuMyAzLjktMTMuMSAzLjktMjAuM3ptLTk0LjggOTYuN2wwLTYuMyA4OC45LTEwLTI0Mi45IDEzLjRjLjYtMi4yIDEuMS00LjYgMS40LTcuMiAuMy0yIC41LTQuMiAuNi02LjVsNjQuOC04LjEtNjQuOSAxLjljMC0uNC0uMS0uNy0uMS0xLjEtMi44LTE3LjItMjUuNS0yMy43LTI1LjUtMjMuN2wtMS4xLTI2LjMgMjMuOCAwIDE5IDQxLjggMTcuMSAwLTYyLjItMTMxLjQtNjIuMiAxMzEuNCAxNy4xIDAgMTktNDEuOCAyMy42IDAtMS4xIDI2LjRzLTIyLjcgNi41LTI1LjUgMjMuN2MtLjEgLjMtLjEgLjctLjEgMS4xbC02NC45LTEuOSA2NC44IDguMWMuMSAyLjMgLjMgNC40IC42IDYuNSAuMyAyLjYgLjggNSAxLjQgNy4ybC0yNDIuOS0xMy41IDg4LjkgMTAgMCA2LjNjLTUuOSAuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNHMxMi40LTUuNiAxMi40LTEyLjRjMC02LjItNC42LTExLjMtMTAuNS0xMi4ybDAtNS44IDgwLjMgOSAwIDUuNGMtNS43IDEuMS05LjkgNi4yLTkuOSAxMi4xIDAgNi44IDUuNiAxMC4yIDEyLjQgMTAuMnMxMi40LTMuNCAxMi40LTEwLjJjMC02LTQuMy0xMS05LjktMTIuMWwwLTQuOSAyOC40IDMuMiAwIDIzLjctNS45IDAgMCAxMy45IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy4yIDM4LjMgNC4zYzguMSAxMS40IDE5IDEzLjYgMTkgMTMuNmwtLjEgNi43LTUuMSAuMi0uMSAxMi4xIDQuMSAwIC4xLTUgNS4yIDAgLjEgNSA0LjEgMC0uMS0xMi4xLTUuMS0uMi0uMS02LjdzMTAuOS0yLjEgMTktMTMuNmwzOC4zLTQuMyAwIDIzLjItNS45IDAgMCAxMy44IDUuOSAwIDAtNi42IDUgMCAwIDYuNiA1LjkgMCAwLTEzLjgtNS45IDAgMC0yMy43IDI4LjQtMy4yIDAgNC45Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yczEyLjQtMy40IDEyLjQtMTAuMmMwLTYtNC4zLTExLTkuOS0xMi4xbDAtNS40IDgwLjMtOSAwIDUuOGMtNS45IC45LTEwLjUgNi0xMC41IDEyLjIgMCA2LjggNS42IDEyLjQgMTIuNCAxMi40czEyLjQtNS42IDEyLjQtMTIuNGMtLjItNi4zLTQuNy0xMS40LTEwLjctMTIuM3pNMzI4LjkgMjI3LjlsMTkuNi00Mi41IDE5LjYgNDIuNS0xNy45IDAtMS43LTQwLjMtMS43IDQwLjMtMTcuOSAweiJdfSxxYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFkbGV0IixpY29uOls2NDAsNTEyLFtdLCJlNGEwIiwiTTI5Ny45IDBsLjEgMGM3LjYgLjEgMTQuNCA0LjcgMTcuNSAxMS44bDEzMiAzMDguNSAuMy0uMSAuMiAuNC0yLjggMTAtNDIuOSAxNThjLTMuNyAxNi4yLTE5LjcgMjYuMy0zNS44IDIyLjZsLTY4LjQtMTUuNi02OC41IDE1LjZjLTE2LjEgMy43LTMyLjEtNi40LTM1LjgtMjIuNmwtNDIuOS0xNTgtMi43LTEwIC4xLS40IDEzMi4xLTMwOC40YzMtNyA5LjktMTEuNiAxNy41LTExLjh6TTE2MC4xIDMyMi4xbDEzMSAzOS4xIDYuOSAxMjIuNSA3LjktMTIxLjUgMTMwLjYtMzkuMyAuMi0uMS0xMzEgMjUuMS04LjYtMzIwLjItNS4yIDMyMC4yLTEzMS44LTI1Ljh6TTQyNiAyMjIuNmw5NC40LTQxIDczLjggMC0xNTcgMjQ3LjYgMzEuNi0xMDktNDIuOC05Ny42em0xNzEuNS00MS4ybDQxLjQgNzYuMmM0IDcuNS0zLjkgMTUuOS0xMS42IDEyLjJsLTQ3LjYtMjIuNyAxNy44LTY1Ljd6TTEyNy4zIDMxOC41TDE1OC43IDQzMCAxLjYgMTU0LjVjLTUuOS0xMC40IDUuNS0yMiAxNS45LTE2LjJsMTUxLjggODQuMi00Mi4xIDk2eiJdfSxWYmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWRnZS1sZWdhY3kiLGljb246WzQ0OCw1MTIsW10sImUwNzgiLCJNLTYgMjI4LjJsLjQtLjVjMCAuMiAwIC4zLS4xIC41bC0uMyAwem00NjAuNiAxNS41YzAtNDQtNy44LTg0LjUtMjguOC0xMjIuNC00MS03My40LTExMy42LTExMy4zLTE5OC42LTExMy4zLTEzOS45LS4zLTIxOC4zIDEwNS4yLTIzMi44IDIxOS43IDQyLjQtNjEuMyAxMTcuMS0xMjEuNCAyMjAuNC0xMjUgMCAwIDEwOS43IDAgOTkuNCAxMDVsLTE3NS44IDBjNi40LTM3LjQgMTguNS01OSAzNC4zLTc4LjktNzUgMzQuOS0xMjEuOCA5Ni4xLTEyMC44IDE4OC4zIC44IDcxLjUgNTAuMSAxNDQuOCAxMjAuOCAxNzIgODMuNCAzMS44IDE5Mi44IDcuMiAyNDAuMS0yMS4zbDAtMTA0LjRjLTgwLjkgNTYuNS0yNzAuOSA2MC45LTI3Mi4zLTY3LjZsMzE0LjEgMCAwLTUyLjF6Il19LFJFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1sYXN0Zm0iLGljb246WzQ0OCw1MTIsWyJsYXN0Zm0tc3F1YXJlIl0sImYyMDMiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTIxMC43IDI4MC44Yy0xLjgtNS41LTMuNC0xMC44LTUtMTUuOS0xMi45LTQxLjktMjEtNjguNC01OC02OC40LTIyLjQgMC00NS4xIDE2LjEtNDUuMSA2MS4yIDAgMzUuMiAxOCA1Ny4yIDQzLjMgNTcuMiAyOC42IDAgNDcuNi0yMS4zIDQ3LjYtMjEuM2wxMS43IDMxLjlzLTE5LjggMTkuNC02MS4yIDE5LjRjLTUxLjMgMC03OS45LTMwLjEtNzkuOS04NS44IDAtNTcuOSAyOC42LTkyIDgyLjUtOTIgNjcuOSAwIDc5LjMgMzUuMyA5Ni40IDg4LjQgMS40IDQuNCAyLjkgOC45IDQuNCAxMy41IDguOCAyNi44IDI0LjIgNDYuMiA2MS4yIDQ2LjIgMjQuOSAwIDM4LjEtNS41IDM4LjEtMTkuMSAwLTE3LjUtMTYuOS0yMS4yLTQwLTI2LjQtMy4yLS43LTYuNS0xLjQtOS45LTIuMi0zMC40LTcuMy00Mi41LTIzLjEtNDIuNS00OCAwLTQwIDMyLjMtNTIuNCA2NS4yLTUyLjQgMzcuNCAwIDYwLjEgMTMuNiA2MyA0Ni42bC0zNi43IDQuNGMtMS41LTE1LjgtMTEtMjIuNC0yOC42LTIyLjQtMTYuMSAwLTI2IDcuMy0yNiAxOS44IDAgMTEgNC44IDE3LjYgMjAuOSAyMS4zIDIuMiAuNSA0LjUgMSA2LjcgMS40IDMxLjEgNi41IDY1LjEgMTMuNyA2NS4xIDU2LjEgLjEgMzYuNy0zMC43IDUwLjYtNzYuMSA1MC42LTYzLjQgMC04NS40LTI4LjYtOTcuMS02NC4xeiJdfSxqYmU9UkUsVWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2RyZWFkcy1nIixpY29uOlszMjAsNTEyLFtdLCJmM2E5IiwiTTEwLjggNDAzLjNsMi44IDBjMTIuNyAwIDI1LjUgMCAzOC4yIC4xIDEuNiAwIDMuMS0uNCAzLjYgMi4xIDcuMSAzNC45IDMwIDU0LjYgNjIuOSA2My45IDI2LjkgNy42IDU0LjEgNy44IDgxLjMgMS44IDMzLjgtNy40IDU2LTI4LjMgNjgtNjAuNCA4LTIxLjUgMTAuNy00My44IDExLTY2LjUgLjEtNS44IC4zLTQ3LS4yLTUyLjhsLS45LS4zYy0uOCAxLjUtMS43IDIuOS0yLjUgNC40LTIyLjEgNDMuMS02MS4zIDY3LjQtMTA1LjQgNjkuMS0xMDMgNC0xNjkuNC01Ny0xNzItMTc2LjItLjUtMjMuNyAxLjgtNDYuOSA4LjMtNjkuNyAyMC42LTcxLjEgNzQuNi0xMTguMiAxNTMuOS0xMTguOCA2MS4zLS40IDEwMS41IDM4LjcgMTE2LjIgNzAuMyAuNSAxLjEgMS4zIDIuMyAyLjQgMS45bDAtNjEuNiA0NC4zIDBjMCAyODAuMyAuMSAzMzIuMiAuMSAzMzIuMi0uMSA3OC41LTI2LjcgMTQzLjctMTAzIDE2Mi4yLTY5LjUgMTYuOS0xNTkgNC44LTE5Ni01Ny4yLTgtMTMuNS0xMS44LTI4LjMtMTMtNDQuNXpNMTU3LjEgMzYuNWMtNTIuNS0uNS0xMDguNSA0MC43LTExNSAxMzMuOC00LjEgNTkgMTQuOCAxMjIuMiA3MS41IDE0OC42IDI3LjYgMTIuOSA3NC4zIDE1IDEwOC4zLTguNyA0Ny42LTMzLjIgNjIuNy05NyA1NC44LTE1NC05LjctNzEuMS00Ny44LTEyMC0xMTkuNi0xMTkuN3oiXX0sV2JlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLW1hc3RlcmNhcmQiLGljb246WzU3Niw1MTIsW10sImYxZjEiLCJNNDgyLjkgNDEwLjNjMCA2LjgtNC42IDExLjctMTEuMiAxMS43LTYuOCAwLTExLjItNS4yLTExLjItMTEuN3M0LjQtMTEuNyAxMS4yLTExLjdjNi42IDAgMTEuMiA1LjIgMTEuMiAxMS43ek0xNzIuMSAzOTguNmMtNy4xIDAtMTEuMiA1LjItMTEuMiAxMS43UzE2NSA0MjIgMTcyLjEgNDIyYzYuNSAwIDEwLjktNC45IDEwLjktMTEuNy0uMS02LjUtNC40LTExLjctMTAuOS0xMS43em0xMTcuNS0uM2MtNS40IDAtOC43IDMuNS05LjUgOC43bDE5LjEgMGMtLjktNS43LTQuNC04LjctOS42LTguN3ptMTA3LjggLjNjLTYuOCAwLTEwLjkgNS4yLTEwLjkgMTEuN3M0LjEgMTEuNyAxMC45IDExLjcgMTEuMi00LjkgMTEuMi0xMS43YzAtNi41LTQuNC0xMS43LTExLjItMTEuN3ptMTA1LjkgMjYuMWMwIC4zIC4zIC41IC4zIDEuMSAwIC4zLS4zIC41LS4zIDEuMS0uMyAuMy0uMyAuNS0uNSAuOC0uMyAuMy0uNSAuNS0xLjEgLjUtLjMgLjMtLjUgLjMtMS4xIC4zLS4zIDAtLjUgMC0xLjEtLjMtLjMgMC0uNS0uMy0uOC0uNS0uMy0uMy0uNS0uNS0uNS0uOC0uMy0uNS0uMy0uOC0uMy0xLjEgMC0uNSAwLS44IC4zLTEuMSAwLS41IC4zLS44IC41LTEuMSAuMy0uMyAuNS0uMyAuOC0uNSAuNS0uMyAuOC0uMyAxLjEtLjMgLjUgMCAuOCAwIDEuMSAuMyAuNSAuMyAuOCAuMyAxLjEgLjVzLjIgLjYgLjUgMS4xem0tMi4yIDEuNGMuNSAwIC41LS4zIC44LS4zIC4zLS4zIC4zLS41IC4zLS44czAtLjUtLjMtLjhjLS4zIDAtLjUtLjMtMS4xLS4zbC0xLjYgMCAwIDMuNSAuOCAwIDAtMS40IC4zIDAgMS4xIDEuNCAuOCAwLTEuMS0xLjN6TTU3NiA4MWwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODFjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODFDMCA1NC41IDIxLjUgMzMgNDggMzNsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTY0IDIyMC42YzAgNzYuNSA2Mi4xIDEzOC41IDEzOC41IDEzOC41IDI3LjIgMCA1My45LTguMiA3Ni41LTIzLjEtNzIuOS01OS4zLTcyLjQtMTcxLjIgMC0yMzAuNS0yMi42LTE1LTQ5LjMtMjMuMS03Ni41LTIzLjEtNzYuNC0uMS0xMzguNSA2Mi0xMzguNSAxMzguMnpNMjg4IDMyOS40YzcwLjUtNTUgNzAuMi0xNjIuMiAwLTIxNy41LTcwLjIgNTUuMy03MC41IDE2Mi42IDAgMjE3LjV6TTE0NS43IDQwNS43YzAtOC43LTUuNy0xNC40LTE0LjctMTQuNy00LjYgMC05LjUgMS40LTEyLjggNi41LTIuNC00LjEtNi41LTYuNS0xMi4yLTYuNS0zLjggMC03LjYgMS40LTEwLjYgNS40bDAtNC40LTguMiAwIDAgMzYuNyA4LjIgMGMwLTE4LjktMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAuMiA4LjIgMzAuMmw3LjkgMGMwLTE4LjMtMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAgOC4yIDMwLjJsOC4yIDAgMC0yMy0uMiAwek0xOTAuNiAzOTJsLTcuOSAwIDAgNC40Yy0yLjctMy4zLTYuNS01LjQtMTEuNy01LjQtMTAuMyAwLTE4LjIgOC4yLTE4LjIgMTkuMyAwIDExLjIgNy45IDE5LjMgMTguMiAxOS4zIDUuMiAwIDktMS45IDExLjctNS40bDAgNC42IDcuOSAwIDAtMzYuOHptNDAuNSAyNS42YzAtMTUtMjIuOS04LjItMjIuOS0xNS4yIDAtNS43IDExLjktNC44IDE4LjUtMS4xbDMuMy02LjVjLTkuNC02LjEtMzAuMi02LTMwLjIgOC4yIDAgMTQuMyAyMi45IDguMyAyMi45IDE1IDAgNi4zLTEzLjUgNS44LTIwLjcgLjhsLTMuNSA2LjNjMTEuMiA3LjYgMzIuNiA2IDMyLjYtNy41em0zNS40IDkuM2wtMi4yLTYuOGMtMy44IDIuMS0xMi4yIDQuNC0xMi4yLTQuMWwwLTE2LjYgMTMuMSAwIDAtNy40LTEzLjEgMCAwLTExLjItOC4yIDAgMCAxMS4yLTcuNiAwIDAgNy4zIDcuNiAwIDAgMTYuN2MwIDE3LjYgMTcuMyAxNC40IDIyLjYgMTAuOXptMTMuMy0xMy40bDI3LjUgMGMwLTE2LjItNy40LTIyLjYtMTcuNC0yMi42LTEwLjYgMC0xOC4yIDcuOS0xOC4yIDE5LjMgMCAyMC41IDIyLjYgMjMuOSAzMy44IDE0LjJsLTMuOC02Yy03LjggNi40LTE5LjYgNS44LTIxLjktNC45ek0zMzguOSAzOTJjLTQuNi0yLTExLjYtMS44LTE1LjIgNC40bDAtNC40LTguMiAwIDAgMzYuNyA4LjIgMCAwLTIwLjdjMC0xMS42IDkuNS0xMC4xIDEyLjgtOC40bDIuNC03LjZ6bTEwLjYgMTguM2MwLTExLjQgMTEuNi0xNS4xIDIwLjctOC40bDMuOC02LjVjLTExLjYtOS4xLTMyLjctNC4xLTMyLjcgMTUgMCAxOS44IDIyLjQgMjMuOCAzMi43IDE1bC0zLjgtNi41Yy05LjIgNi41LTIwLjcgMi42LTIwLjctOC42ek00MTYuMiAzOTJsLTguMiAwIDAgNC40Yy04LjMtMTEtMjkuOS00LjgtMjkuOSAxMy45IDAgMTkuMiAyMi40IDI0LjcgMjkuOSAxMy45bDAgNC42IDguMiAwIDAtMzYuOHptMzMuNyAwYy0yLjQtMS4yLTExLTIuOS0xNS4yIDQuNGwwLTQuNC03LjkgMCAwIDM2LjcgNy45IDAgMC0yMC43YzAtMTEgOS0xMC4zIDEyLjgtOC40bDIuNC03LjZ6bTQwLjMtMTQuOWwtNy45IDAgMCAxOS4zYy04LjItMTAuOS0yOS45LTUuMS0yOS45IDEzLjkgMCAxOS40IDIyLjUgMjQuNiAyOS45IDEzLjlsMCA0LjYgNy45IDAgMC01MS43em03LjYtNzUuMWwwIDQuNiAuOCAwIDAtNC42IDEuOSAwIDAtLjgtNC42IDAgMCAuOCAxLjkgMHptNi42IDEyMy44YzAtLjUgMC0xLjEtLjMtMS42LS4zLS4zLS41LS44LS44LTEuMXMtLjgtLjUtMS4xLS44Yy0uNSAwLTEuMS0uMy0xLjYtLjMtLjMgMC0uOCAuMy0xLjQgLjMtLjUgLjMtLjggLjUtMS4xIC44LS41IC4zLS44IC44LS44IDEuMS0uMyAuNS0uMyAxLjEtLjMgMS42IDAgLjMgMCAuOCAuMyAxLjQgMCAuMyAuMyAuOCAuOCAxLjEgLjMgLjMgLjUgLjUgMS4xIC44IC41IC4zIDEuMSAuMyAxLjQgLjMgLjUgMCAxLjEgMCAxLjYtLjMgLjMtLjMgLjgtLjUgMS4xLS44cy41LS44IC44LTEuMWMuMy0uNiAuMy0xLjEgLjMtMS40em0zLjItMTI0LjdsLTEuNCAwLTEuNiAzLjUtMS42LTMuNS0xLjQgMCAwIDUuNCAuOCAwIDAtNC4xIDEuNiAzLjUgMS4xIDAgMS40LTMuNSAwIDQuMSAxLjEgMCAwLTUuNHptNC40LTgwLjVjMC03Ni4yLTYyLjEtMTM4LjMtMTM4LjUtMTM4LjMtMjcuMiAwLTUzLjkgOC4yLTc2LjUgMjMuMSA3Mi4xIDU5LjMgNzMuMiAxNzEuNSAwIDIzMC41IDIyLjYgMTUgNDkuNSAyMy4xIDc2LjUgMjMuMSA3Ni40IC4xIDEzOC41LTYxLjkgMTM4LjUtMTM4LjR6Il19LEdiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaXNjb3Vyc2UiLGljb246WzQ0OCw1MTIsW10sImYzOTMiLCJNMjI1LjkgMzJDMTAzLjMgMzIgMCAxMzAuNSAwIDI1Mi4xIDAgMjU2IC4xIDQ4MCAuMSA0ODBsMjI1LjgtLjJDMzQ4LjYgNDc5LjggNDQ4IDM3Ny41IDQ0OCAyNTUuOVMzNDguNiAzMiAyMjUuOSAzMnpNMjI0IDM4NGMtMTkuNCAwLTM3LjktNC4zLTU0LjQtMTIuMUw4OC41IDM5MiAxMTEuNCAzMTdjLTkuOC0xOC4xLTE1LjQtMzguOS0xNS40LTYxIDAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjgtNTcuMyAxMjgtMTI4IDEyOHoiXX0sWWJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsYWNrLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3ZSIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0zMTYuNSAzNTcuMmwtOTIuNSA4OC43LTkyLjUtODguNyA2NC41LTE4NC02NC41LTg2LjYgMTg0LjkgMC02NC40IDg2LjYgNjQuNSAxODR6Il19LEJFPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1mYWNlYm9vayIsaWNvbjpbNDQ4LDUxMixbImZhY2Vib29rLXNxdWFyZSJdLCJmMDgyIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsOTguMiAwIDAtMTQ1LjgtNTIuOCAwIDAtNzguMiA1Mi44IDAgMC0zMy43YzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNSAxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRsMCA3MC44Yy02LS42LTE2LjUtMS0yOS42LTEtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4ybDAgMjcuOCA4My42IDAtMTQuNCA3OC4yLTY5LjMgMCAwIDE0NS44IDEyOSAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxaYmU9QkUsWGJlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJhdHRsZS1uZXQiLGljb246WzUxMiw1MTIsW10sImY4MzUiLCJNNDQ4LjggMjI1LjZjMjYuOSAuMiAzNS42LTcuNCAzOC45LTEyLjQgMTIuNS0xNi4zLTcuMS00Ny42LTUyLjgtNzEuMyAxNy44LTMzLjYgMzAuMS02My43IDM2LjMtODUuMyAzLjQtMTEuOCAxLjEtMTkgLjUtMjAuMy0xLjcgMTAuNS0xNS44IDQ4LjUtNDguMiAxMDAtMjUtMTEuMi01Ni41LTIwLjEtOTMuOC0yMy44LTguOS0xNi45LTM0LjktNjMuOS02MC41LTg4LjktMTYuOC0xNi41LTMwLjMtMjIuNi00MC44LTIzLjVsMCAwYy0xMy44LTEuNi0yMi43IDUuOC0yNy40IDExLTE3LjIgMTguNS0yNC4zIDQ4LjktMjUgODQuMS03LjItMTIuMy0xNy4yLTI0LjYtMjguNS0yNS45bC0uMiAwYy0yMC43LTMuNS0zOC40IDI5LjItMzYgODEuMy0zOC40IDEuNC03MSA1LjgtOTMgMTEuMi05LjkgMi40LTE2LjIgNy4zLTE3LjggOS43IDEtLjQgMjIuNC05LjIgMTExLjYtOS4yIDUuMiA1MyAyOS44IDEwMS44IDI2IDkzLjItOS43IDE1LjQtMzguMiA2Mi40LTQ3LjMgOTcuNy01LjkgMjIuOS00LjQgMzcuNiAuMiA0Ny4xIDUuNiAxMi44IDE2LjQgMTYuNyAyMy4yIDE4LjMgMjUgNS43IDU1LjQtMy42IDg2LjctMjEuMS03LjUgMTIuOC0xMy45IDI4LjUtOS4xIDM5LjMgNy4zIDE5LjYgNDQuNSAxOC43IDg4LjQtOS40IDIwLjIgMzIuMiA0MC4xIDU3LjkgNTUuNyA3NC4xIDIuNiAyLjggNS41IDUuMiA4LjggNy4xIDUuMSAzLjIgOC42IDMuNCA4LjYgMy40LTguMi02LjctMzQtMzgtNjIuNS05MS44IDIyLjItMTYgNDUuNy0zOC45IDY3LjUtNjkuMyAxMjIuOCA0LjYgMTQzLjMtMjQuOCAxNDgtMzEuNiAxNC43LTE5LjkgMy40LTU3LjQtNTcuMy05My43ek0zNzEgMzMxLjhjMjMuOC0zNy43IDMwLjMtNjcuOCAyOS40LTkyLjMgMjcuOSAxNy42IDQ3LjIgMzcuNiA0OS4xIDU4LjggMS4xIDEyLjktOC4xIDI5LjEtNzguNSAzMy41ek0yMTcuMSAzODcuN2M5LjgtNi4yIDE5LjUtMTMuMSAyOS4yLTIwLjUgNi43IDEzLjMgMTMuNiAyNi4xIDIwLjYgMzguMi00MC42IDIxLjktNjguOCAxMi44LTQ5LjgtMTcuN3ptMjE1LTE3MS4zYy0xMC4zLTUuMy0yMS4yLTEwLjMtMzIuNC0xNSA3LjktMTIuMSAxNS41LTI0LjQgMjIuNy0zNi45IDM5LjEgMjQuMSA0NS45IDUzLjIgOS42IDUxLjl6TTI3OS40IDM5OGMtNS41LTExLjQtMTEtMjMuNS0xNi41LTM2LjQgNDMuMiAxLjMgNjIuNC0xOC43IDYzLjMtMjAuNCAwIC4xLTI1IDE1LjYtNjIuNSAxMi4yIDMwLjYtMjUuNiA1OS4xLTUzLjcgODUuMS04NCA4LjctMTAuMiAxNy0yMC42IDI0LjktMzEuMS0uNC0uMy0xLjUtMy0xNi41LTEyLTUxLjcgNjAuMy0xMDIuMyA5OC0xMzIuOCAxMTUuOS0yMC42LTExLjItNDAuOC0zMS44LTU1LjctNjEuNS0yMC0zOS45LTMwLTgyLjQtMzEuNi0xMTYuMSAxMi4zIC45IDI1LjMgMi4yIDM4LjggMy45LTIyLjMgMzYuOC0xNC40IDYzLTEzLjUgNjQuMiAwLS4xLTEtMjkuMiAyMC4xLTU5LjYgOSA1Mi41IDI0IDEwMy44IDQ0LjcgMTUyLjggLjktLjQgMS44IC45IDE4LjctOC4yLTI2LjMtNzQuNS0zMy44LTEzOC4yLTM0LTE3My40IDIwLTEyLjQgNDguMi0xOS44IDgxLjYtMTcuOCA0NC42IDIuNyA4Ni40IDE1LjIgMTE2LjMgMzAuNy03LjEgMTAuNC0xNC45IDIxLjMtMjMuMyAzMi41LTIwLjctMzcuNy00Ny4zLTQzLjktNDguOS00My43IC4xIDAgMjUuOSAxNC4xIDQxLjUgNDcuMi0zNy41LTEzLjgtNzYuMS0yNC40LTExNS4zLTMxLjctMTMuMS0yLjQtMjYuMi00LjQtMzkuNC02LS4xIC40LTEuOCAxLjgtMi4yIDIwLjMgNzcuOSAxNC41IDEzNi42IDM5LjkgMTY3LjIgNTcuMiAuNyAyMy42LTcgNTEuNi0yNS40IDc5LjYtMjQuNiAzNy4zLTU2LjQgNjcuMi04NC44IDg1LjR6bTI3LjQtMjg3Yy00NC42LTEuNy03My42IDcuNC05NC43IDIwLjcgMi01Mi4zIDIxLjMtNzYuNCAzOC4yLTc1LjMgMTYuOS00LjIgNTQuOSA1Mi4yIDU2LjUgNTQuNnptLTEzMC43IDMuMWMuNSAxMi4xIDEuNiAyNC42IDMuMiAzNy4zLTE0LjYtLjktMjguNy0xLjMtNDIuNC0xLjMtLjEgMy4yLS4xLTUxIDI0LjctNDkuNmwuMSAwYzUuOCAxLjEgMTAuNiA2LjkgMTQuNCAxMy42em0tMjguMSAxNjJjMjAuOCAzOS43IDQzLjMgNjAuNiA2NS4zIDcyLjMtNDYuOCAyNC44LTc3LjUgMjAtODQuOSA0LjUtLjItLjItMTEuMS0xNS4zIDE5LjctNzYuOGwwIDB6Il19LEtiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaW1vYmplY3QiLGljb246WzQ0OCw1MTIsW10sImYzNzgiLCJNNDE2IDMyTDMyIDMyQzE0LjQgMzIgMCA0Ni40IDAgNjRMMCA0NDhjMCAxNy42IDE0LjQgMzIgMzIgMzJsMzg0IDBjMTcuNiAwIDMyLTE0LjQgMzItMzJsMC0zODRjMC0xNy42LTE0LjQtMzItMzItMzJ6TTM1MiAyODkuNGMwIDQ5LjQtMTEuNCA4Mi42LTEwMy44IDgyLjZsLTE2LjkgMGMtNDQuMSAwLTYyLjQtMTQuOS03MC40LTM4LjhsLS45IDAgMCAzNC44LTY0IDAgMC0yMzIgNjQgMCAwIDc0LjcgMS4xIDBjNC42LTMwLjUgMzkuNy0zOC44IDY5LjctMzguOGwxNy4zIDBjOTIuNCAwIDEwMy44IDMzLjEgMTAzLjggODIuNWwwIDM1IC4xIDB6bS02NC0yOC45bDAgMjIuOWMwIDIxLjctMy40IDMzLjgtMzguNCAzMy44bC00NS4zIDBjLTI4LjkgMC00NC4xLTYuNS00NC4xLTM1LjdsMC0xOWMwLTI5LjMgMTUuMi0zNS43IDQ0LjEtMzUuN2w0NS4zIDBjMzUtLjIgMzguNCAxMiAzOC40IDMzLjd6Il19LFFiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdmVsdGUiLGljb246WzQ0OCw1MTIsW10sImU4NjgiLCJNMjAyLjEgMjYuNGM2Ni44LTQyLjYgMTU5LjMtMjIuNyAyMDYuMSA0NC4zIDExLjEgMTUuNSAxOSAzMy4xIDIzLjIgNTEuOHM0LjcgMzcuOSAxLjMgNTYuN2MtMy4yIDE4LTEwLjEgMzUuMS0yMC4xIDUwLjMgMTQuNiAyNy45IDE5LjYgNjAgMTQgOTEtMy4zIDE4LjQtMTAuNCAzNi0yMC45IDUxLjVzLTI0LjEgMjguNy0zOS45IDM4LjdMMjQ4LjMgNDg1LjZjLTY2LjggNDIuNi0xNTkuMyAyMi43LTIwNi4xLTQ0LjItMTEuMS0xNS41LTE5LTMzLjItMjMuMi01MS44cy00LjctMzcuOS0xLjMtNTYuN2MzLjItMTggMTAuMS0zNS4xIDIwLjEtNTAuMy0xNC43LTI3LjktMTkuNi02MC0xNC05MS4xIDMuMy0xOC40IDEwLjQtMzYgMjAuOS01MS41czI0LjEtMjguNyAzOS45LTM4LjdMMjAyLjEgMjYuNHpNMzE1LjYgNjcuMmMtMTcuOS02LjYtMzcuNC03LjYtNTUuOS0yLjgtOC40IDIuMy0xNi41IDUuOC0yMy44IDEwLjVMMTE4LjUgMTQ5LjdjLTkuNSA2LTE3LjcgMTMuOS0yNCAyMy4zUzg0IDE5Mi44IDgyIDIwMy45Yy0yIDExLjMtMS43IDIyLjkgLjggMzQuMXM3LjMgMjEuOCAxMy45IDMxLjJjMTAuOSAxNS43IDI2LjMgMjcuNiA0NC4yIDM0LjNzMzcuNCA3LjYgNTUuOSAyLjhjOC40LTIuMyAxNi41LTUuOCAyMy44LTEwLjVsNDQuOC0yOC42YzIuMi0xLjQgNC43LTIuNSA3LjItMy4yIDUuNi0xLjQgMTEuNC0xLjIgMTYuOCAuOHMxMCA1LjYgMTMuMyAxMC4zYzIgMi44IDMuNSA2IDQuMiA5LjRzLjkgNi45IC4zIDEwLjNjLS42IDMuMy0xLjkgNi41LTMuOCA5LjMtMS45IDIuOC00LjQgNS4yLTcuMiA3TDE3OC44IDM4Ni4xYy0yLjIgMS40LTQuNyAyLjUtNy4yIDMuMi01LjYgMS40LTExLjQgMS4yLTE2LjgtLjhzLTEwLTUuNi0xMy4zLTEwLjNjLTMuNi01LjEtNS4zLTExLjItNC43LTE3LjRsLjQtNC40LTQuMy0xLjNjLTE2LjUtNS0zMi4xLTEyLjctNDUuOS0yMi45bC02LTQuNC0yLjIgNi43Yy0xLjIgMy42LTIuMSA3LjMtMi44IDExLTIgMTEuMy0xLjcgMjIuOSAuOCAzNC4xczcuMyAyMS44IDEzLjkgMzEuMWMxMC45IDE1LjcgMjYuMyAyNy42IDQ0LjIgMzQuM3MzNy40IDcuNiA1NS44IDIuOGM4LjQtMi4zIDE2LjUtNS44IDIzLjktMTAuNWwxMTcuMy03NC44YzkuNS02IDE3LjctMTMuOSAyNC0yMy4zczEwLjYtMTkuOSAxMi42LTMxYzItMTEuMyAxLjgtMjIuOS0uOC0zNC4xcy03LjMtMjEuOC0xNC0zMS4xYy0xMC45LTE1LjctMjYuMy0yNy42LTQ0LjItMzQuM3MtMzcuNC03LjYtNTUuOS0yLjhjLTguNCAyLjMtMTYuNSA1LjgtMjMuOCAxMC41TDE4NSAyNDQuOGMtMi4yIDEuNC00LjYgMi41LTcuMiAzLjItNS42IDEuNC0xMS41IDEuMi0xNi44LS44cy0xMC01LjYtMTMuMy0xMC4zYy0yLTIuOC0zLjQtNi00LjItOS40cy0uOS02LjktLjItMTAuM2MuNi0zLjMgMS45LTYuNSAzLjgtOS4zczQuNC01LjIgNy4yLTdsMTE3LjQtNzQuOGMyLjItMS40IDQuNy0yLjUgNy4yLTMuMiA1LjYtMS40IDExLjQtMS4xIDE2LjggLjlzMTAgNS42IDEzLjMgMTAuM2MzLjYgNS4xIDUuMiAxMS4zIDQuNyAxNy40bC0uNCA0LjQgNC40IDEuM2MxNi41IDUgMzIgMTIuOCA0NS45IDIzbDYgNC40IDIuMi02LjhjMS4yLTMuNiAyLjEtNy4zIDIuOC0xMSAyLTExLjMgMS44LTIyLjktLjgtMzQuMXMtNy4zLTIxLjgtMTQtMzEuMWMtMTAuOS0xNS43LTI2LjMtMjcuNi00NC4yLTM0LjN6Il19LEpiZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZGVza3BybyIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0NCIsIk00MDguOCAzMkM0MzAuNCAzMiA0NDggNDkuNiA0NDggNzEuMmwwIDM2OS42YzAgMjEuNi0xNy42IDM5LjItMzkuMiAzOS4yTDM5LjIgNDgwQzE3LjYgNDgwIDAgNDYyLjQgMCA0NDAuOEwwIDcxLjJDMCA0OS42IDE3LjYgMzIgMzkuMiAzMmwzNjkuNiAwek0xMTAuOSAyNzQuMWwwIDExNC40IDg5LjEtLjFjMjAuNiAwIDM5LjQtMy4yIDU2LjMtOS41czMxLjMtMTUuNCA0My4yLTI3YzEyLjItMTEuOSAyMS42LTI2IDI4LjItNDIuMSA0LjYtMTEuMSA3LjctMjMgOS4yLTM1LjdsLTQzLjggMGMtMS4xIDYuNC0yLjggMTIuNC01LjEgMTguMi00LjIgMTAuOS0xMC4zIDIwLjMtMTguMiAyOC4yLTcuOSA3LjctMTcuNCAxMy43LTI4LjYgMTcuOS0xMS4xIDQuMy0yMy41IDYuNC0zNy4zIDYuNGwtNTAgMCAwLTcwLjYtNDMgLjF6bTAtMTUxLjRsMCAxMTQuNCA0My0uMSAwLTcwLjcgNTAgMGMxMy43IDAgMjYuMiAyLjEgMzcuMyA2LjQgMTEuMSA0LjMgMjAuNiAxMC4zIDI4LjYgMTguMyA3LjkgNy43IDE0IDE3LjEgMTguMiAyOC4yIDIuMyA1LjYgNCAxMS41IDUuMSAxNy44bDQzLjkgLjFjLTEuNC0xMi42LTQuNC0yNC40LTguOS0zNS4zLTYuNi0xNi40LTE2LTMwLjUtMjguMS00Mi4yLTEyLjEtMTEuOS0yNi43LTIxLjEtNDMuNi0yNy41LTE2LjktNi40LTM1LjctOS41LTU2LjMtOS41bC04OSAuMXoiXX0sZXZlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRhaWx3aW5kLWNzcyIsaWNvbjpbNjQwLDUxMixbXSwiZTg2NiIsIk0zMjAgNjRjLTg1LjMgMC0xMzguNyA0Mi43LTE2MCAxMjggMzItNDIuNyA2OS4zLTU4LjcgMTEyLTQ4IDI0LjMgNi4xIDQxLjcgMjMuOCA2MSA0My4zIDMxLjQgMzEuOCA2Ny43IDY4LjcgMTQ3IDY4LjcgODUuMyAwIDEzOC43LTQyLjcgMTYwLTEyOC0zMiA0Mi43LTY5LjMgNTguNy0xMTIgNDgtMjQuMy02LjEtNDEuNy0yMy44LTYxLTQzLjMtMzEuNC0zMS44LTY3LjctNjguNy0xNDctNjguN3pNMTYwIDI1NmMtODUuMyAwLTEzOC43IDQyLjctMTYwIDEyOCAzMi00Mi43IDY5LjMtNTguNyAxMTItNDggMjQuMyA2LjEgNDEuNyAyMy44IDYxIDQzLjMgMzEuNCAzMS44IDY3LjcgNjguNyAxNDcgNjguNyA4NS4zIDAgMTM4LjctNDIuNyAxNjAtMTI4LTMyIDQyLjctNjkuMyA1OC43LTExMiA0OC0yNC4zLTYuMS00MS43LTIzLjgtNjEtNDMuMy0zMS40LTMxLjgtNjcuNy02OC43LTE0Ny02OC43eiJdfSx4anQ9e2ZhU3F1YXJlR2l0aHViOm9FLGZhR2l0aHViU3F1YXJlOks4ZSxmYVRoaW5rUGVha3M6UThlLGZhR29vZ2xlRHJpdmU6SjhlLGZhQXV0b3ByZWZpeGVyOmVkZSxmYVNxdWFyZVZpYWRlbzpsRSxmYVZpYWRlb1NxdWFyZTp0ZGUsZmFDcGFuZWw6YWRlLGZhTWVuZGVsZXk6aWRlLGZhRHJhZnQyZGlnaXRhbDpyZGUsZmFSZXBseWQ6c2RlLGZhRW1waXJlOm5kZSxmYUFjY2Vzc2libGVJY29uOm9kZSxmYVF1b3JhOmxkZSxmYUNjSmNiOmNkZSxmYUZlZG9yYTpkZGUsZmFEdW9saW5nbzpwZGUsZmFGaXJzdGRyYWZ0OmhkZSxmYUZyZWVic2Q6dWRlLGZhT2R5c2VlOmZkZSxmYUdnQ2lyY2xlOm1kZSxmYUNsb3VkZmxhcmU6Z2RlLGZhSGFja2VycmFuazpiZGUsZmFTa3lhdGxhczp2ZGUsZmFEZXNrcHJvOnlkZSxmYVJlc29sdmluZzp4ZGUsZmFCbGFja2JlcnJ5OndkZSxmYVN0cmlwZVM6TWRlLGZhU3F1YXJlQmVoYW5jZTpjRSxmYUJlaGFuY2VTcXVhcmU6emRlLGZhU2VydmljZXN0YWNrOmtkZSxmYVJvY2tldGNoYXQ6U2RlLGZhUmViZWw6Q2RlLGZhU3F1YXJlV2ViQXdlc29tZTpfZGUsZmFMaW5rdHJlZTpUZGUsZmFTaW1wbHlidWlsdDpMZGUsZmFTdHViYmVyOiRkZSxmYUFwcGVyOkFkZSxmYUdvb2dsZVNjaG9sYXI6RGRlLGZhWWFybjpFZGUsZmFTdGFja092ZXJmbG93OlBkZSxmYUJsdWV0b290aDpJZGUsZmFDcmVhdGl2ZUNvbW1vbnNOY0pwOk5kZSxmYVJlZGRpdDpGZGUsZmFDb25uZWN0ZGV2ZWxvcDpPZGUsZmFSZXNlYXJjaGdhdGU6UmRlLGZhU2lnbmFsTWVzc2VuZ2VyOkJkZSxmYVhpbmc6SGRlLGZhU3F1YXJlSnM6ZEUsZmFKc1NxdWFyZTpxZGUsZmFGb250aWNvbnM6VmRlLGZhVXBzOmpkZSxmYUFtYXpvblBheTpVZGUsZmFQYW5kb3JhOldkZSxmYU9wZW5pZDpHZGUsZmFWc2NvOllkZSxmYUdsb2JhbGVha3M6WmRlLGZhVmVubW86WGRlLGZhVWJ1bnR1OktkZSxmYVZpYWNvaW46UWRlLGZhWmhpaHU6SmRlLGZhWWFuZGV4OmU3ZSxmYVBpeGl2OnQ3ZSxmYU9wZW5haTphN2UsZmFTaXRoOmk3ZSxmYUp1bGlhOnI3ZSxmYU5mY0RpcmVjdGlvbmFsOnM3ZSxmYUNyZWF0aXZlQ29tbW9uc0J5Om43ZSxmYVVtYnJhY286bzdlLGZhSG9vbGk6bDdlLGZhU3F1YXJlR2l0OnBFLGZhR2l0U3F1YXJlOmM3ZSxmYU9kbm9rbGFzc25pa2k6ZDdlLGZhRHJ1cGFsOnA3ZSxmYUJsb2dnZXJCOmg3ZSxmYUludmlzaW9uOnU3ZSxmYUZhY2Vib29rRjpmN2UsZmFDZW50b3M6bTdlLGZhU2NhbGV3YXk6ZzdlLGZhQ2NBbWF6b25QYXk6YjdlLGZhRWJheTp2N2UsZmFDb250YW86eTdlLGZhRWxsbzp4N2UsZmFTaXN0cml4Onc3ZSxmYVBlcmlzY29wZTpNN2UsZmFFeHBlZGl0ZWRzc2w6ejdlLGZhTmFwc3RlcjprN2UsZmFEZWxpY2lvdXM6UzdlLGZhR3VpbGRlZDpDN2UsZmFPYnNpZGlhbjpfN2UsZmFYYm94OlQ3ZSxmYVVudGFwcGQ6TDdlLGZhR29vZ2xlUGx1c0c6JDdlLGZhR2l0aHViQWx0OkE3ZSxmYUdldFBvY2tldDpEN2UsZmFHbGlkZTpFN2UsZmFCaXR5OlA3ZSxmYVdwZXhwbG9yZXI6STdlLGZhTWVnYXBvcnQ6TjdlLGZhTGVldGNvZGU6RjdlLGZhTWRiOk83ZSxmYVBhZ2U0OlI3ZSxmYVRoZVJlZFlldGk6QjdlLGZhSmlyYTpIN2UsZmFGZWRleDpxN2UsZmFFdmVybm90ZTpWN2UsZmFVc2I6ajdlLGZhQW5ncnljcmVhdGl2ZTpVN2UsZmFNaXp1bmk6VzdlLGZhSXRjaElvOkc3ZSxmYVdpbmRvd3M6WTdlLGZhU3R1bWJsZXVwb246WjdlLGZhR29vZ2xlOklmLGZhRGlzY29yZDpYN2UsZmFIYWNrZXJOZXdzOks3ZSxmYUVsZXZlbnR5OmhFLGZhMTF0eTpRN2UsZmFUZWFtc3BlYWs6SjdlLGZhU3VwcGxlOmVwZSxmYVNxdWFyZVR3aXR0ZXI6dUUsZmFUd2l0dGVyU3F1YXJlOnRwZSxmYVZpbTphcGUsZmFGb250QXdlc29tZTpQZixmYUZvbnRBd2Vzb21lRmxhZzppcGUsZmFGb250QXdlc29tZUxvZ29GdWxsOnJwZSxmYVdpcnNpbmRoYW5kd2VyazpmRSxmYVdzaDpzcGUsZmFab29tOm5wZSxmYUNvbmZsdWVuY2U6b3BlLGZhRGlnZzpscGUsZmFUaHJlYWRzOmNwZSxmYVdwcmVzc3I6bUUsZmFSZW5kYWN0OmRwZSxmYVlvYXN0OnBwZSxmYU5pbWJscjpocGUsZmFQaXhlbGZlZDp1cGUsZmFZYWhvbzpmcGUsZmFCbHVlc2t5Om1wZSxmYVNjcmliZDpncGUsZmFDcmVhdGl2ZUNvbW1vbnNQZDpicGUsZmFFYXJseWJpcmRzOnZwZSxmYVN5bWZvbnljYXN0czp5cGUsZmFTcXVhcmVPZG5va2xhc3NuaWtpOmdFLGZhT2Rub2tsYXNzbmlraVNxdWFyZTp4cGUsZmFNYXJrZG93bjp3cGUsZmFUeXBvMzpNcGUsZmFKb29tbGE6enBlLGZhV2VpeGluOmtwZSxmYUdydW50OlNwZSxmYVN1cHBvcnRub3c6Q3BlLGZhUm9ja3JtczpfcGUsZmFVbnNwbGFzaDpUcGUsZmFTcXVhcmVJbnN0YWdyYW06YkUsZmFJbnN0YWdyYW1TcXVhcmU6THBlLGZhRmlyc3RPcmRlckFsdDokcGUsZmFGdWxjcnVtOkFwZSxmYUFyY2hMaW51eDpEcGUsZmFGZWRpdmVyc2U6RXBlLGZhQnJhdmVSZXZlcnNlOlBwZSxmYUF2aWFuZXg6SXBlLGZhTnM4Ok5wZSxmYVNxdWFyZVBpbnRlcmVzdDp2RSxmYVBpbnRlcmVzdFNxdWFyZTpGcGUsZmFCbHVldG9vdGhCOk9wZSxmYUdyaXBmaXJlOlJwZSxmYVNxdWFyZUdvb2dsZVBsdXM6eUUsZmFHb29nbGVQbHVzU3F1YXJlOkJwZSxmYUdpdGVlOkhwZSxmYVhtcHA6cXBlLGZhQXBwU3RvcmU6VnBlLGZhV2l4OmpwZSxmYUludGVyY29tOlVwZSxmYVJlYWN0ZXVyb3BlOldwZSxmYVdhemU6R3BlLGZhQ3JlYXRpdmVDb21tb25zUmVtaXg6WXBlLGZhQmFuZGNhbXA6WnBlLGZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZTpYcGUsZmFWaW1lb1Y6S3BlLGZhU3RyYXZhOlFwZSxmYVVuaXJlZ2lzdHJ5OkpwZSxmYUNjRGluZXJzQ2x1YjplaGUsZmFLdWJlcm5ldGVzOnRoZSxmYVBpbnRlcmVzdDphaGUsZmFBbGdvbGlhOmloZSxmYVN0YWNrcGF0aDpyaGUsZmFPY3RvcHVzRGVwbG95OnNoZSxmYVlhbW1lcjpuaGUsZmFNb2R4Om9oZSxmYVNxdWFyZVRocmVhZHM6bGhlLGZhT2xkUmVwdWJsaWM6Y2hlLGZhU3VzZTpkaGUsZmFBcHBTdG9yZUlvczpwaGUsZmFVbHRyYWx5dGljc1lvbG86aGhlLGZhU3F1YXJlRHJpYmJibGU6eEUsZmFEcmliYmJsZVNxdWFyZTp1aGUsZmFVaWtpdDpmaGUsZmFTdXBlcnBvd2VyczptaGUsZmFZb3V0dWJlOmdoZSxmYUVtYmVyOmJoZSxmYUJvb3RzdHJhcDp2aGUsZmFJdHVuZXM6eWhlLGZhU3F1YXJlWGluZzp3RSxmYVhpbmdTcXVhcmU6eGhlLGZhQ3NzM0FsdDp3aGUsZmFTcXVhcmVzcGFjZTpNaGUsZmFUcmVsbG86emhlLGZhVmlhZGVvOmtoZSxmYVNlYXJjaGVuZ2luOlNoZSxmYVVucmVhbEVuZ2luZTpDaGUsZmFQYXlwYWw6X2hlLGZhU3F1YXJlQmx1ZXNreTpUaGUsZmFEQW5kREJleW9uZDpMaGUsZmFNaWNyb3NvZnQ6JGhlLGZhRmx5OkFoZSxmYUNjU3RyaXBlOkRoZSxmYVdvcmRwcmVzc1NpbXBsZTpFaGUsZmFTZWxsc3k6UGhlLGZhRGFzaGN1YmU6SWhlLGZhR2l0dGVyOk5oZSxmYVdvbGZQYWNrQmF0dGFsaW9uOkZoZSxmYUxhc3RmbTpPaGUsZmFTaG9wd2FyZTpSaGUsZmFCbG9nZ2VyOkJoZSxmYUVkZ2U6SGhlLGZhSW94aG9zdDpxaGUsZmFTY2hsaXg6VmhlLGZhREFuZEQ6amhlLGZhVnVlanM6VWhlLGZhTWV0YTpXaGUsZmFDcmVhdGl2ZUNvbW1vbnNTaGFyZTpHaGUsZmFTdHVkaW92aW5hcmk6WWhlLGZhQml0YnVja2V0OlpoZSxmYVZrOlhoZSxmYUdpdGh1YjpLaGUsZmFDb2RpZXBpZTpRaGUsZmFQaWVkUGlwZXI6SmhlLGZhUmFzcGJlcnJ5UGk6ZTllLGZhQ3NzMzp0OWUsZmFIdWJzcG90OmE5ZSxmYUNtcGxpZDppOWUsZmFEeWFsb2c6cjllLGZhRWxlbWVudG9yOnM5ZSxmYUZpcnN0T3JkZXI6bjllLGZhRHJpYmJibGU6bzllLGZhTGlua2VkaW46TmYsZmFDY1BheXBhbDpsOWUsZmFEaGw6YzllLGZhVGV4OmQ5ZSxmYUNsYXVkZTpwOWUsZmFTaG9waWZ5Omg5ZSxmYVNxdWFyZVJlZGRpdDpNRSxmYVJlZGRpdFNxdWFyZTp1OWUsZmFDcmVhdGl2ZUNvbW1vbnNOYzpmOWUsZmFHYWxhY3RpY1JlcHVibGljOm05ZSxmYUZhY2Vib29rOkZmLGZhR2l0bGFiOmc5ZSxmYVFxOmI5ZSxmYVN0cmlwZTp2OWUsZmFEYWlseW1vdGlvbjp5OWUsZmFTdGVhbTp4OWUsZmFWZW5tb1Y6dzllLGZhU25hcGNoYXQ6ekUsZmFTbmFwY2hhdEdob3N0Ok05ZSxmYUdhbGFjdGljU2VuYXRlOno5ZSxmYVBob2VuaXhGcmFtZXdvcms6azllLGZhR2l0OlM5ZSxmYU9wdGluTW9uc3RlcjpDOWUsZmFKZW5raW5zOl85ZSxmYVNsaWRlc2hhcmU6VDllLGZhVWJlcjpMOWUsZmFEaWdpdGFsT2NlYW46JDllLGZhU291bmRjbG91ZDpBOWUsZmFTcXVhcmVGaWdtYTpEOWUsZmFDcmVhdGl2ZUNvbW1vbnNTYTpFOWUsZmFDaHJvbWU6UDllLGZhVHJhZGVGZWRlcmF0aW9uOkk5ZSxmYVZhYWRpbjpOOWUsZmFEZXZpYW50YXJ0OkY5ZSxmYU1lZGl1bTpMNSxmYU1lZGl1bU06TzllLGZhT3BlbmNhcnQ6UjllLGZhWUNvbWJpbmF0b3I6QjllLGZhTGluZTpIOWUsZmFBbWlsaWE6cTllLGZhQXN5bW1ldHJpazpWOWUsZmFQaGFicmljYXRvcjpqOWUsZmFCb3RzOlU5ZSxmYVZpbmU6VzllLGZhTWVkcnQ6RzllLGZhT3NpOlk5ZSxmYUdnOlo5ZSxmYUJ1eXNlbGxhZHM6WDllLGZhR29vZ2xlUGx1czpLOWUsZmFTY3JlZW5wYWw6UTllLGZhQml0Y29pbjpKOWUsZmFTd2lmdDpldWUsZmFGaWxlc1BpbndoZWVsOnR1ZSxmYUxhcmF2ZWw6YXVlLGZhV3Bmb3JtczppdWUsZmFTcGVha2VyRGVjazpydWUsZmFGbGlja3I6c3VlLGZhQ2NWaXNhOm51ZSxmYVVwd29yazpvdWUsZmFLYWthb1RhbGs6bHVlLGZhRmx1dHRlcjpjdWUsZmFCdWZmZXI6ZHVlLGZhR3JhdGlwYXk6cHVlLGZhR29vZ2xlUGF5Omh1ZSxmYUFwcGxlOnV1ZSxmYVR1bWJscjpmdWUsZmFQaG9lbml4U3F1YWRyb246bXVlLGZhQ2VudGVyY29kZTpndWUsZmFEZWJpYW46YnVlLGZhTWFzdG9kb246dnVlLGZhU2tldGNoOnl1ZSxmYVdlYkF3ZXNvbWU6eHVlLGZhU2Fzczp3dWUsZmFUaHJlZW1hOk11ZSxmYVNxdWFyZVdoYXRzYXBwOmtFLGZhV2hhdHNhcHBTcXVhcmU6enVlLGZhU2t5cGU6a3VlLGZhQW5ndWxhcjpTdWUsZmFDaXJjbGVadWxpcDpDdWUsZmFPcGVuc3VzZTpfdWUsZmFEcm9wYm94OlR1ZSxmYURlZXplcjpMdWUsZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZzokdWUsZmFKZWRpT3JkZXI6QXVlLGZhUlByb2plY3Q6RHVlLGZhSW5zdGFsb2Q6RXVlLGZhQ2FuYWRpYW5NYXBsZUxlYWY6UHVlLGZhRXRoZXJldW06SXVlLGZhSG91eno6TnVlLGZhVmliZXI6RnVlLGZhS2lja3N0YXJ0ZXI6U0UsZmFTcXVhcmVLaWNrc3RhcnRlcjpPdWUsZmFTcG90aWZ5OlJ1ZSxmYUxlYW5wdWI6QnVlLGZhSmF2YTpIdWUsZmFOZmNTeW1ib2w6cXVlLGZhV29kdTpWdWUsZmFTcXVhcmVTdGVhbTpDRSxmYVN0ZWFtU3F1YXJlOmp1ZSxmYUNyZWF0aXZlQ29tbW9uc05jRXU6VXVlLGZhTnBtOld1ZSxmYUNsb3Vkc2NhbGU6R3VlLGZhVGhlbWVjbzpZdWUsZmFHb29nbGVQbGF5Olp1ZSxmYUtvcnZ1ZTpYdWUsZmFXM2M6S3VlLGZhR3JhdjpRdWUsZmFBd3M6SnVlLGZhR2xpZGVHOmVmZSxmYUpzZmlkZGxlOnRmZSxmYUtleWJhc2U6YWZlLGZhTHVtb25Ecm9wOmlmZSxmYUZvcmdlam86cmZlLGZhUG9zdGdyZXNxbDpzZmUsZmFXZWVibHk6bmZlLGZhRG9ja2VyOm9mZSxmYU1hZ2VudG86bGZlLGZhVG9yQnJvd3NlcjpjZmUsZmFHaXRBbHQ6ZGZlLGZhRmlyZWZveEJyb3dzZXI6cGZlLGZhQ2xvdWRzbWl0aDpoZmUsZmFXaXphcmRzT2ZUaGVDb2FzdDp1ZmUsZmFDcmVhdGl2ZUNvbW1vbnNOZDpmZmUsZmFVc3BzOm1mZSxmYVNxdWFyZUxldHRlcmJveGQ6Z2ZlLGZhTWFuZGFsb3JpYW46YmZlLGZhU2xhY2s6X0UsZmFTbGFja0hhc2g6T2YsZmFBbmdlbGxpc3Q6dmZlLGZhQW5kcm9pZDp5ZmUsZmFNZWV0dXA6eGZlLGZhRm9udGljb25zRmk6d2ZlLGZhUGFsZmVkOk1mZSxmYVdwYmVnaW5uZXI6emZlLGZhRGlhc3BvcmE6a2ZlLGZhUHJvZHVjdEh1bnQ6U2ZlLGZhU3F1YXJlVXB3b3JrOkNmZSxmYUN1dHRsZWZpc2g6X2ZlLGZhTWVkYXBwczpUZmUsZmFQaXg6TGZlLGZhU3F1YXJlVHVtYmxyOlRFLGZhVHVtYmxyU3F1YXJlOiRmZSxmYVJlYWN0OkFmZSxmYUh1Z2dpbmdGYWNlOkRmZSxmYUp4bDpFZmUsZmFTcXVhcmVMaW5rZWRpbjpQZmUsZmFDc3M6SWZlLGZhSGFzaG5vZGU6TmZlLGZhUmVkZGl0QWxpZW46RmZlLGZhVGlrdG9rOlJmLGZhV29yZHByZXNzOk9mZSxmYUlkZWFsOlJmZSxmYVBpZWRQaXBlclBwOkJmZSxmYVVzc3VubmFoOkhmZSxmYUZvcnRBd2Vzb21lQWx0OnFmZSxmYUJ1cm9tb2JlbGV4cGVydGU6VmZlLGZhQmlsaWJpbGk6amZlLGZhTmVvczpVZmUsZmFEZXY6V2ZlLGZhSG90amFyOkdmZSxmYURvY2h1YjpZZmUsZmFWaW1lbzpaZmUsZmFNYXhjZG46WGZlLGZhU3F1YXJlRm9udEF3ZXNvbWVTdHJva2U6TEUsZmFGb250QXdlc29tZUFsdDpLZmUsZmFTcGVha2FwOlFmZSxmYUZhbnRhc3lGbGlnaHRHYW1lczpKZmUsZmFMaW51eDplbWUsZmFDb3R0b25CdXJlYXU6dG1lLGZhR29vZ2xlV2FsbGV0OmFtZSxmYUZvdXJzcXVhcmU6aW1lLGZhU2hpcnRzaW5idWxrOnJtZSxmYU1pbnRiaXQ6c21lLGZhWnVsaXA6bm1lLGZhU3RheWxpbmtlZDpvbWUsZmFXZWJmbG93OmxtZSxmYVJlbnJlbjpjbWUsZmFLb0ZpOmRtZSxmYVJldjpwbWUsZmFLZXljZG46aG1lLGZhSGlyZUFIZWxwZXI6dW1lLGZhU3F1YXJlSGFja2VyTmV3czokRSxmYUhhY2tlck5ld3NTcXVhcmU6Zm1lLGZhQ3JlYXRpdmVDb21tb25zUGRBbHQ6bW1lLGZhT3JjaWQ6Z21lLGZhQm9hcmRHYW1lR2VlazpBRSxmYUJnZzpibWUsZmFCZWhhbmNlOnZtZSxmYU1vbmVybzp5bWUsZmFGaWdtYTp4bWUsZmFJbnN0YWdyYW06QmYsZmFQZXJieXRlOndtZSxmYVNxdWFyZVZpbWVvOkRFLGZhVmltZW9TcXVhcmU6TW1lLGZhUHVzaGVkOnptZSxmYU1peGNsb3VkOmttZSxmYVlhbmRleEludGVybmF0aW9uYWw6U21lLGZhSGl2ZTpDbWUsZmFDcmVhdGl2ZUNvbW1vbnNaZXJvOl9tZSxmYVNxdWFyZVNuYXBjaGF0OkVFLGZhU25hcGNoYXRTcXVhcmU6VG1lLGZhVGhlbWVpc2xlOkxtZSxmYURhcnRMYW5nOiRtZSxmYURlcGxveWRvZzpBbWUsZmFGbGlwYm9hcmQ6RG1lLGZhQnV5TkxhcmdlOkVtZSxmYVdhdGNobWFuTW9uaXRvcmluZzpQbWUsZmFIaXBzOkltZSxmYUNsb3VkdmVyc2lmeTpObWUsZmFHb29kcmVhZHM6Rm1lLGZhVGlkYWw6T21lLGZhVW5pdHk6Um1lLGZhVGVuY2VudFdlaWJvOkJtZSxmYUZyZWVDb2RlQ2FtcDpIbWUsZmFYVHdpdHRlcjpxbWUsZmFTdGlja2VyTXVsZTpWbWUsZmFUd2l0Y2g6am1lLGZhS2lja3N0YXJ0ZXJLOlVtZSxmYUNyaXRpY2FsUm9sZTpXbWUsZmFTdGVhbVN5bWJvbDpHbWUsZmFNYWlsY2hpbXA6WW1lLGZhTHVtb246Wm1lLGZhTnV0cml0aW9uaXg6WG1lLGZhQ3JlYXRpdmVDb21tb25zU2FtcGxpbmdQbHVzOkttZSxmYVJlZGhhdDpRbWUsZmFTcXVhcmVQaWVkUGlwZXI6UEUsZmFQaWVkUGlwZXJTcXVhcmU6Sm1lLGZhV2hhdHNhcHA6ZWdlLGZhSW1kYjp0Z2UsZmFQeXRob246YWdlLGZhQ2FzaEFwcDppZ2UsZmFQaW50ZXJlc3RQOnJnZSxmYVdobWNzOnNnZSxmYUpvZ2V0Om5nZSxmYVNxdWFyZVlvdXR1YmU6SUUsZmFZb3V0dWJlU3F1YXJlOm9nZSxmYUF0bGFzc2lhbjpsZ2UsZmFQaWVkUGlwZXJIYXQ6Y2dlLGZhSW50ZXJuZXRFeHBsb3JlcjpkZ2UsZmFBaXJibmI6cGdlLGZhSnM6aGdlLGZhUXVpbnNjYXBlOnVnZSxmYUFkdmVyc2FsOmZnZSxmYUNyZWF0aXZlQ29tbW9uczptZ2UsZmFOb3Rpb246Z2dlLGZhQ2hyb21lY2FzdDpiZ2UsZmFVbHRyYWx5dGljc0h1Yjp2Z2UsZmFXaWtpcGVkaWFXOnlnZSxmYVNpdHJveDp4Z2UsZmFTcXVhcmVHaXRsYWI6TkUsZmFHaXRsYWJTcXVhcmU6d2dlLGZhU2hvZWxhY2U6TWdlLGZhT3BlbnN0cmVldG1hcDp6Z2UsZmFTZWxsY2FzdDprZ2UsZmFNaXg6U2dlLGZhQ2NBcHBsZVBheTpDZ2UsZmFTb2xhbmE6X2dlLGZhVHlwZXNjcmlwdDpUZ2UsZmFCcmF2ZTpMZ2UsZmFFdHN5OiRnZSxmYUJ0YzpBZ2UsZmFBZG46RGdlLGZhU3F1YXJlWFR3aXR0ZXI6RWdlLGZhU3F1YXJlRm9udEF3ZXNvbWU6UGdlLGZhRm9ydW1iZWU6SWdlLGZhNDJHcm91cDpGRSxmYUlubm9zb2Z0Ok5nZSxmYVN0dW1ibGV1cG9uQ2lyY2xlOkZnZSxmYVN5bWZvbnk6T2dlLGZhU2FsZXNmb3JjZTpSZ2UsZmFTb3VyY2V0cmVlOkJnZSxmYUxpbmtlZGluSW46SGdlLGZhSHRtbDU6cWdlLGZhUnVzdDpWZ2UsZmFIb3JuYmlsbDpqZ2UsZmFQaHA6VWdlLGZhRGlzcXVzOldnZSxmYTUwMHB4OkdnZSxmYUFmZmlsaWF0ZXRoZW1lOllnZSxmYVJlZFJpdmVyOlpnZSxmYVR3aXR0ZXI6SGYsZmFGb3J0QXdlc29tZTpYZ2UsZmFNaXhlcjpLZ2UsZmFMeWZ0OlFnZSxmYUFwcGxlUGF5OkpnZSxmYUFydHN0YXRpb246ZWJlLGZhTm9kZUpzOnRiZSxmYVVuY2hhcnRlZDphYmUsZmFQbGF5c3RhdGlvbjppYmUsZmFNaWNyb2Jsb2c6cmJlLGZhR2l0a3Jha2VuOnNiZSxmYVRlbGVncmFtOk9FLGZhVGVsZWdyYW1QbGFuZTpuYmUsZmFVbHRyYWx5dGljczpvYmUsZmFJdHVuZXNOb3RlOmxiZSxmYUxlc3M6Y2JlLGZhRmlyZWZveDpkYmUsZmFLYWdnbGU6cGJlLGZhRmFjZWJvb2tNZXNzZW5nZXI6aGJlLGZhQXVkaWJsZTp1YmUsZmFQYXRyZW9uOmZiZSxmYVZudjptYmUsZmFQYWdlbGluZXM6Z2JlLGZhQW1hem9uOmJiZSxmYUVudmlyYTp2YmUsZmFMaW5vZGU6eWJlLGZhQWNjdXNvZnQ6eGJlLGZhRXJsYW5nOndiZSxmYVVuaXNvbjpNYmUsZmFDY0Rpc2NvdmVyOnpiZSxmYVNhZmFyaTprYmUsZmFTcGFjZUF3ZXNvbWU6U2JlLGZhTm9kZTpDYmUsZmFDb2RlcGVuOl9iZSxmYVJhdmVscnk6VGJlLGZhQWxpcGF5OkxiZSxmYUNjQW1leDokYmUsZmFQaWVkUGlwZXJBbHQ6QWJlLGZhTGV0dGVyYm94ZDpEYmUsZmFPcGVyYTpFYmUsZmFXZWlibzpQYmUsZmFSZWFkbWU6SWJlLGZhR29sYW5nOk5iZSxmYVN0YWNrRXhjaGFuZ2U6RmJlLGZhR3VscDpPYmUsZmFZZWxwOlJiZSxmYUdvZm9yZTpCYmUsZmFBdmlhdG86SGJlLGZhUGFkbGV0OnFiZSxmYUVkZ2VMZWdhY3k6VmJlLGZhU3F1YXJlTGFzdGZtOlJFLGZhTGFzdGZtU3F1YXJlOmpiZSxmYUdvb2RyZWFkc0c6VWJlLGZhQ2NNYXN0ZXJjYXJkOldiZSxmYURpc2NvdXJzZTpHYmUsZmFCbGFja1RpZTpZYmUsZmFTcXVhcmVGYWNlYm9vazpCRSxmYUZhY2Vib29rU3F1YXJlOlpiZSxmYUJhdHRsZU5ldDpYYmUsZmFCaW1vYmplY3Q6S2JlLGZhU3ZlbHRlOlFiZSxmYVNxdWFyZURlc2twcm86SmJlLGZhVGFpbHdpbmRDc3M6ZXZlfX0pO3ZhciB3anQsSEUsYXZlLGl2ZSxxRSxydmUsRDUsc3ZlLG52ZSxvdmUsbHZlLFZFLGN2ZSxkdmUscHZlLEU1LGh2ZSxqRSx1dmUsVUUsZnZlLG12ZSxndmUsYnZlLFdFLHZ2ZSxHRSx5dmUsWUUseHZlLFpFLHd2ZSxYRSxNdmUsS0UsenZlLFFFLGt2ZSxTdmUsSkUsQ3ZlLGVQLF92ZSx0UCxUdmUsYVAsTHZlLCR2ZSxpUCxBdmUsclAsRHZlLHNQLEV2ZSxuUCxQdmUsb1AsSXZlLE52ZSxGdmUscWYsT3ZlLFJ2ZSxCdmUsSHZlLHF2ZSxWdmUsanZlLFV2ZSxWZixXdmUsR3ZlLGxQLFl2ZSxadmUsWHZlLEt2ZSxRdmUsSnZlLGV5ZSx0eWUsY1AsYXllLGl5ZSxyeWUsY2wsc3llLG55ZSxkUCxveWUsbHllLHBQLGN5ZSxYZixkeWUscHllLGpmLGh5ZSx1eWUsaFAsZnllLG15ZSxneWUsdVAsYnllLGZQLHZ5ZSxVZix5eWUseHllLG1QLHd5ZSxnUCxNeWUsenllLGt5ZSxiUCxTeWUsdlAsQ3llLHlQLF95ZSx4UCxUeWUsTHllLCR5ZSxBeWUsd1AsRHllLEV5ZSxNUCxQeWUsSXllLHpQLE55ZSxGeWUsa1AsT3llLFJ5ZSxCeWUsJDUsSHllLHF5ZSxWeWUsUDUsanllLFV5ZSxXeWUsU1AsR3llLFl5ZSxDUCxaeWUsX1AsWHllLEE1LEt5ZSxReWUsSnllLFRQLGV4ZSxXZix0eGUsYXhlLGl4ZSxyeGUsTFAsc3hlLEdmLG54ZSxveGUsJFAsbHhlLEFQLGN4ZSxkeGUsRFAscHhlLEVQLGh4ZSxZZix1eGUsZnhlLG14ZSxJNSxneGUsYnhlLHZ4ZSx5eGUsUFAseHhlLElQLHd4ZSxOUCxNeGUsRlAsenhlLE9QLGt4ZSxSUCxTeGUsWmYsQ3hlLF94ZSxUeGUsTHhlLEJQLCR4ZSxIUCxBeGUscVAsRHhlLFZQLEV4ZSxQeGUsSXhlLE54ZSxGeGUsT3hlLFJ4ZSxqUCxCeGUsVVAsSHhlLHF4ZSxXUCxWeGUsR1AsanhlLFlQLFV4ZSxLZixXeGUsWlAsR3hlLFl4ZSxYUCxaeGUsS1AsWHhlLEt4ZSxReGUsUVAsSnhlLGV3ZSxKUCx0d2UsYXdlLGl3ZSxyd2UsZUksc3dlLHRJLG53ZSxhSSxvd2UsbHdlLGN3ZSxpSSxkd2UsckkscHdlLHNJLGh3ZSx1d2UsbkksZndlLG9JLG13ZSxnd2UsbEksYndlLHZ3ZSx5d2UsTWp0LHh3ZT1iKCgpPT57d2p0PSJmYXIiLEhFPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1taW51cyIsaWNvbjpbNDQ4LDUxMixbNjE3NjcsIm1pbnVzLXNxdWFyZSJdLCJmMTQ2IiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xMzYgMjMybDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sYXZlPUhFLGl2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1jaGVjayIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3NCIsIk0zMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDExMnptMjMwLjcgNjUuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM3NC4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0scUU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzIixpY29uOls1MTIsNTEyLFsxMjg1MzUsImtpc3MiXSwiZjU5NiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI0MCAwbDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS05Ni00OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxydmU9cUUsRDU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicGFzdGUiLGljb246WzUxMiw1MTIsWyJmaWxlLWNsaXBib2FyZCJdLCJmMGVhIiwiTTY0IDQ4bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxMTIgMCAwLTQ4LTExMiAwYy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2em0xNzYgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRMMTA0IDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNS42IDBjOC44LTguNiAxOS0xNS44IDMwLjItMjEuMSAuMS0uOSAuMi0xLjkgLjItMi45ek00NDggNDY0bC0xNjAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmwxMDEuNSAwYzQuMiAwIDguMyAxLjcgMTEuMyA0LjdsNTguNSA1OC41YzMgMyA0LjcgNy4xIDQuNyAxMS4zTDQ2NCA0NDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMjI0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNsLTU4LjUtNTguNWMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wyODggMTYwYy0zNS4zIDAtNjQgMjguNy02NCA2NHoiXX0sc3ZlPUQ1LG52ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50LWxlZnQiLGljb246WzUxMiw1MTIsW10sImYwYTUiLCJNNjQgMTI4bDE3Ny42IDBjLTEgNS4yLTEuNiAxMC41LTEuNiAxNmwwIDE2LTE3NiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0yMjQgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMGwwIDQ4YzAgNTIuNS0zMy43IDk3LjEtODAuNyAxMTMuNCAuNS0zLjEgLjctNi4yIC43LTkuNCAwLTIwLTkuMi0zNy45LTIzLjYtNDkuNyA0LjktOSA3LjYtMTkuNCA3LjYtMzAuMyAwLTE1LjEtNS4zLTI5LTE0LTQwIDguOC0xMSAxNC0yNC45IDE0LTQwbDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwem0zMi04MGwwIDBjLTE4IDAtMzQuNiA2LTQ4IDE2TDY0IDgwQzI4LjcgODAgMCAxMDguNyAwIDE0NHMyOC43IDY0IDY0IDY0bDgyIDBjLTEuMyA1LjEtMiAxMC41LTIgMTYgMCAyNS4zIDE0LjcgNDcuMiAzNiA1Ny42LTIuNiA3LTQgMTQuNS00IDIyLjQgMCAyMCA5LjIgMzcuOSAyMy42IDQ5LjctNC45IDktNy42IDE5LjQtNy42IDMwLjMgMCAzNS4zIDI4LjcgNjQgNjQgNjRsODggMGM5Mi44IDAgMTY4LTc1LjIgMTY4LTE2OGwwLTQ4YzAtOTIuOC03NS4yLTE2OC0xNjgtMTY4bC0yNCAwek0yNTYgNDAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTY0IDB6TTI0MCAyMjRjMCA1LjUgLjcgMTAuOSAyIDE2bC0zNCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDMyIDAgMCAxNnptMjQgNjRsNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwyNCAweiJdfSxvdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1leGNlbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem05OS4yIDI2NS42Yy04LTEwLjYtMjMtMTIuOC0zMy42LTQuOHMtMTIuOCAyMy00LjggMzMuNkwxNjIgMzQ0IDEyNC44IDM5My42Yy04IDEwLjYtNS44IDI1LjYgNC44IDMzLjZzMjUuNiA1LjggMzMuNi00LjhMMTkyIDM4NCAyMjAuOCA0MjIuNGM4IDEwLjYgMjMgMTIuOCAzMy42IDQuOHMxMi44LTIzIDQuOC0zMy42TDIyMiAzNDQgMjU5LjIgMjk0LjRjOC0xMC42IDUuOC0yNS42LTQuOC0zMy42cy0yNS42LTUuOC0zMy42IDQuOEwxOTIgMzA0IDE2My4yIDI2NS42eiJdfSxsdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZW52ZWxvcGUiLGljb246WzUxMiw1MTIsWzEyODM4Niw5OTkzLDYxNDQzXSwiZjBlMCIsIk02MS40IDY0QzI3LjUgNjQgMCA5MS41IDAgMTI1LjQgMCAxMjYuMyAwIDEyNy4xIC4xIDEyOEwwIDEyOCAwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1Ni0uMSAwYzAtLjkgLjEtMS43IC4xLTIuNiAwLTMzLjktMjcuNS02MS40LTYxLjQtNjEuNEw2MS40IDY0ek00NjQgMTkyLjNMNDY0IDM4NGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xOTEuNyAxNTQuOCAxMTcuNGMzMS40IDIzLjkgNzQuOSAyMy45IDEwNi40IDBMNDY0IDE5Mi4zek00OCAxMjUuNEM0OCAxMTggNTQgMTEyIDYxLjQgMTEybDM4OS4yIDBjNy40IDAgMTMuNCA2IDEzLjQgMTMuNCAwIDQuMi0yIDguMi01LjMgMTAuN0wyODAuMiAyNzEuNWMtMTQuMyAxMC44LTM0LjEgMTAuOC00OC40IDBMNTMuMyAxMzYuMWMtMy4zLTIuNS01LjMtNi41LTUuMy0xMC43eiJdfSxWRT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQzMmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwem02NC0xNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlTMTEwLjUgMTkyIDEyMCAxOTJsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3oiXX0sY3ZlPVZFLGR2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMuMyAwYzEwLjQtMzYuOSA0NC40LTY0IDg0LjctNjRzNzQuMiAyNy4xIDg0LjcgNjRsMTAyLjYgMGM0LjktMTcuNCAxNS4xLTMyLjcgMjguNy00My45TDM2OCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6bTMuMyAzNjhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTUuNCAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQwLjYgNDAuNmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDU3NiAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjR6TTQxNiAyNTZsMTEyIDAgMC0yMy40YzAtNC4yLTEuNy04LjMtNC43LTExLjNsLTQwLjYtNDAuNmMtMy0zLTcuMS00LjctMTEuMy00LjdsLTU1LjQgMCAwIDgwem0wIDQ4bDAgMzIuNGMyLjYtLjIgNS4zLS40IDgtLjQgNDAuMyAwIDc0LjIgMjcuMSA4NC43IDY0bDMuMyAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTgwLTExMiAwek0xNTIgNDY0YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptMjcyIDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxwdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbCIsaWNvbjpbNDQ4LDUxMixbMTI4Mjc2LDYxNjAyXSwiZjBmMyIsIk0yMjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5LjdDMTE4LjYgNDUuMyA1NiAxMTUuNCA1NiAyMDBsMCAxNC41YzAgMzcuNy0xMCA3NC43LTI5IDEwNy4zTDUuMSAzNTkuMkMxLjggMzY1IDAgMzcxLjUgMCAzNzguMiAwIDM5OS4xIDE2LjkgNDE2IDM3LjggNDE2bDM3Mi40IDBjMjAuOSAwIDM3LjgtMTYuOSAzNy44LTM3LjggMC02LjctMS44LTEzLjMtNS4xLTE5TDQyMSAzMjEuN2MtMTktMzIuNi0yOS02OS42LTI5LTEwNy4zbDAtMTQuNWMwLTg0LjYtNjIuNi0xNTQuNy0xNDQtMTY2LjNsMC05LjdjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTM5Mi40IDM2OGwtMzM2LjkgMCAxMi45LTIyLjFDOTEuNyAzMDYgMTA0IDI2MC42IDEwNCAyMTQuNWwwLTE0LjVjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBzMTIwIDUzLjcgMTIwIDEyMGwwIDE0LjVjMCA0Ni4yIDEyLjMgOTEuNSAzNS41IDEzMS40TDM5Mi40IDM2OHpNMTU2LjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sRTU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibWVzc2FnZSIsaWNvbjpbNTEyLDUxMixbImNvbW1lbnQtYWx0Il0sImYyN2EiLCJNMjAzLjcgNTEyLjlzMCAwIDAgMGwtMzcuOCAyNi43Yy03LjMgNS4yLTE2LjkgNS44LTI0LjkgMS43UzEyOCA1MjkgMTI4IDUyMGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZMMCAxMjhDMCA3NSA0MyAzMiA5NiAzMmwzMjAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjI0YzAgNTMtNDMgOTYtOTYgOTZsLTEyMC40IDAtOTEuOSA2NC45em02NC4zLTEwNC4xYzguMS01LjcgMTcuOC04LjggMjcuNy04LjhMNDE2IDQwMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiA4MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyMjRjMCAyNi41IDIxLjUgNDggNDggNDhsNTYgMGMxMC40IDAgMTkuMyA2LjYgMjIuNiAxNS45IC45IDIuNSAxLjQgNS4yIDEuNCA4LjFsMCA0OS43YzMyLjctMjMuMSA2My4zLTQ0LjcgOTEuOS02NC45eiJdfSxodmU9RTUsakU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1kaXp6eSIsaWNvbjpbNTEyLDUxMixbImRpenp5Il0sImY1NjciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xMzQuMSAxNTMuOWwyNS45IDI1LjkgMjUuOS0yNS45YzcuOC03LjggMjAuNS03LjggMjguMyAwczcuOCAyMC41IDAgMjguM2wtMjUuOSAyNS45IDI1LjkgMjUuOWM3LjggNy44IDcuOCAyMC41IDAgMjguM3MtMjAuNSA3LjgtMjguMyAwbC0yNS45LTI1LjktMjUuOSAyNS45Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMHMtNy44LTIwLjUgMC0yOC4zbDI1LjktMjUuOS0yNS45LTI1LjljLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMHptMTkyIDBsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6TTI1NiAyODhhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LHV2ZT1qRSxVRT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0zODQgNDMyYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0LTg4IDAgMCA4MCA3MiAwem0xNi0xMjhsMC04MC04OCAwIDAgODAgODggMHptLTEzNiAwbDAtODAtODAgMCAwIDgwIDgwIDB6bS0xMjggMGwwLTgwLTg4IDAgMCA4MCA4OCAwek00OCAzNTJsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNzIgMCAwLTgwLTg4IDB6bTEzNiAwbDAgODAgODAgMCAwLTgwLTgwIDB6TTEyMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHoiXX0sZnZlPVVFLG12ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50LXVwIixpY29uOlszODQsNTEyLFs5NzU3XSwiZjBhNiIsIk02NCA2NGwwIDE3Ny42YzUuMi0xIDEwLjUtMS42IDE2LTEuNmwxNiAwIDAtMTc2YzAtOC44LTcuMi0xNi0xNi0xNlM2NCA1NS4yIDY0IDY0ek04MCAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjRjMCA2Ni4zIDUzLjcgMTIwIDEyMCAxMjBsNDggMGM1Mi41IDAgOTcuMS0zMy43IDExMy40LTgwLjctMy4xIC41LTYuMiAuNy05LjQgLjctMjAgMC0zNy45LTkuMi00OS43LTIzLjYtOSA0LjktMTkuNCA3LjYtMzAuMyA3LjYtMTUuMSAwLTI5LTUuMy00MC0xNC0xMSA4LjgtMjQuOSAxNC00MCAxNGwtNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0MCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC04MCAwek0wIDMyMGwwIDBjMC0xOCA2LTM0LjYgMTYtNDhMMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMHM2NCAyOC43IDY0IDY0bDAgODJjNS4xLTEuMyAxMC41LTIgMTYtMiAyNS4zIDAgNDcuMiAxNC43IDU3LjYgMzYgNy0yLjYgMTQuNS00IDIyLjQtNCAyMCAwIDM3LjkgOS4yIDQ5LjcgMjMuNiA5LTQuOSAxOS40LTcuNiAzMC4zLTcuNiAzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDg4YzAgOTIuOC03NS4yIDE2OC0xNjggMTY4bC00OCAwQzc1LjIgNTEyIDAgNDM2LjggMCAzNDRsMC0yNHptMzM2LTY0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0ek0xNjAgMjQwYzUuNSAwIDEwLjkgLjcgMTYgMmwwLTM0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMzIgMTYgMHptNjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAyNHoiXX0sZ3ZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtbGl6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmMjU4IiwiTTcyIDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTUyIDBjNC41IDAgOC45IDEuMyAxMi43IDMuNmw2NCA0MGM3IDQuNCAxMS4zIDEyLjEgMTEuMyAyMC40bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMC43LTQ2LjktMjkuMy0xNDUuMSAwYy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcybDEwNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDcyIDIwOGMtMzkuOCAwLTcyLTMyLjItNzItNzJTMzIuMiA2NCA3MiA2NGwyMDkuNiAwYzQ2LjcgMCA5MC45IDIxLjUgMTE5LjcgNTguM2w3OC40IDEwMC4xYzIwLjkgMjYuNyAzMi4zIDU5LjcgMzIuMyA5My43TDUxMiA0MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDcuOWMwLTIzLjItNy44LTQ1LjgtMjIuMS02NC4xTDM2My41IDE1MS45Yy0xOS43LTI1LjItNDkuOS0zOS45LTgxLjktMzkuOUw3MiAxMTJ6Il19LGJ2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtZnVsbCIsaWNvbjpbNTEyLDUxMixbMTI4OTk3LDEyODk5OCwxMjg5OTksMTI5ZTMsMTI5MDAxLDEyOTAwMiwxMjkwMDMsMTEwMzUsMTEwMzZdLCJmNDVjIiwiTTQ0OCA0OGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzODRjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHoiXX0sV0U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXBhdXNlIixpY29uOls1MTIsNTEyLFs2MjA5MiwicGF1c2UtY2lyY2xlIl0sImYyOGIiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMjQgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDR6bTExMiAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDR6Il19LHZ2ZT1XRSxHRT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYXJkLWRyaXZlIixpY29uOls0NDgsNTEyLFsxMjg0MzYsImhkZCJdLCJmMGEwIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNjJjNS4xLTEuMyAxMC41LTIgMTYtMmwzMjAgMGM1LjUgMCAxMC45IC43IDE2IDJsMC0xNjJjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek00OCAzMjBsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDMwNGMtOC44IDAtMTYgNy4yLTE2IDE2ek0wIDMyMEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC05NnptMjE2IDQ4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyMC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LHl2ZT1HRSxZRT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXppcHBlciIsaWNvbjpbMzg0LDUxMixbImZpbGUtYXJjaGl2ZSJdLCJmMWM2IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTgwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNjQgNTZsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSx4dmU9WUUsWkU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmxvcHB5LWRpc2siLGljb246WzQ0OCw1MTIsWzEyODE5MCwxMjg0MjYsInNhdmUiXSwiZjBjNyIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDIuN2MwLTQuMi0xLjctOC4zLTQuNy0xMS4zTDMyMCA4Ni42IDMyMCAxNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTMyIDB6bTgwIDBsMCA4MCAxMjggMCAwLTgwLTEyOCAwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI0Mi43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNDI5LjMgMTI4YzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNDQ4IDQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTE2MCAzMjBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSx3dmU9WkUsWEU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODU0MSwiZ3Jpbi10b25ndWUtc3F1aW50Il0sImY1OGEiLCJNNDY0IDI1NmMwLTExNC45LTkzLjEtMjA4LTIwOC0yMDhTNDggMTQxLjEgNDggMjU2YzAgNzUuOSA0MC43IDE0Mi40IDEwMS41IDE3OC43LTMuNi0xMC45LTUuNS0yMi42LTUuNS0zNC43bDAtMzcuNWMtMTAuMi0xMi42LTE4LjMtMjYuOS0yMy44LTQyLjQtNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42IDExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC01LjUgMTUuNi0xMy42IDI5LjktMjMuOCA0Mi41bDAgMzcuNWMwIDEyLjEtMS45IDIzLjgtNS41IDM0LjcgNjAuOC0zNi4zIDEwMS41LTEwMi43IDEwMS41LTE3OC43ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMjUuOC03NS43Yy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xczEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM3ptMjYzLjYtMjEuMWM0LjUgNi44IDMuMSAxNS45LTMuMSAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjV6TTMyMCA0MTZsMC0zNy40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgMzcuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxNdmU9WEUsS0U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE5My4xIDMyYy0xOC43IDAtMzYuMiA5LjQtNDYuNiAyNC45TDEyMC41IDk2IDY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtNTYuNSAwLTI2LTM5LjFDMzU1LjEgNDEuNCAzMzcuNiAzMiAzMTguOSAzMkwxOTMuMSAzMnptLTYuNyA1MS42YzEuNS0yLjIgNC0zLjYgNi43LTMuNmwxMjUuNyAwYzIuNyAwIDUuMiAxLjMgNi43IDMuNmwzMy4yIDQ5LjhjNC41IDYuNyAxMS45IDEwLjcgMjAgMTAuN2w2OS4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsNjkuMyAwYzggMCAxNS41LTQgMjAtMTAuN2wzMy4yLTQ5Ljh6TTI1NiAzODRhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0xOTIgMjcyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0senZlPUtFLFFFPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zdGFycyIsaWNvbjpbNTEyLDUxMixbMTI5MzIxLCJncmluLXN0YXJzIl0sImY1ODciLCJNMCAyNTZjMC0yOS42IDUtNTcuOSAxNC4yLTg0LjRsMTcuMyAxNi45LTQuNiAyN2MtNC4yIDI0LjQgNS42IDQ2LjIgMjIgNTkuOSA5LjggMTA1LjggOTguOCAxODguNyAyMDcuMSAxODguN3MxOTcuNC04Mi44IDIwNy4xLTE4OC42YzE2LjQtMTMuNyAyNi4xLTM1LjQgMjItNTkuOWwtNC42LTI3IDE3LjMtMTYuOWM5LjIgMjYuNCAxNC4yIDU0LjggMTQuMiA4NC40IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMCAzOTcuNCAwIDI1NnpNMjU2IDQ4Yy0xNS4yIDAtMzAgMS42LTQ0LjMgNC43TDIwMS40IDMxLjhDMTk3IDIzIDE5MS4xIDE1LjggMTg0LjIgMTAuMiAyMDcgMy42IDIzMS4xIDAgMjU2IDBzNDkgMy42IDcxLjggMTAuMkMzMjAuOSAxNS44IDMxNSAyMyAzMTAuNiAzMS44TDMwMC4zIDUyLjdDMjg2IDQ5LjYgMjcxLjIgNDggMjU2IDQ4ek0zNzIuMiAzMDIuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMzUzLjcgNTMuMWM1LjktMTEuOSAyMi44LTExLjkgMjguNyAwbDIzLjMgNDcuMiA1MiA3LjZjMTMuMSAxLjkgMTguNCAxOCA4LjkgMjcuM2wtMzcuNyAzNi43IDguOSA1MS44YzIuMiAxMy4xLTExLjUgMjMtMjMuMiAxNi45TDM2OCAyMTYgMzIxLjUgMjQwLjVjLTExLjcgNi4yLTI1LjUtMy44LTIzLjItMTYuOWw4LjktNTEuOC0zNy43LTM2LjdjLTkuNS05LjMtNC4zLTI1LjQgOC45LTI3LjNsNTItNy42IDIzLjMtNDcuMnptLTE5NS4zIDBsMjMuMyA0Ny4yIDUyIDcuNmMxMy4xIDEuOSAxOC40IDE4IDguOSAyNy4zbC0zNy43IDM2LjcgOC45IDUxLjhjMi4yIDEzLjEtMTEuNSAyMy0yMy4yIDE2LjlMMTQ0IDIxNiA5Ny41IDI0MC41Yy0xMS43IDYuMi0yNS41LTMuOC0yMy4yLTE2LjlsOC45LTUxLjgtMzcuNy0zNi43Yy05LjUtOS4zLTQuMy0yNS40IDguOS0yNy4zbDUyLTcuNiAyMy4zLTQ3LjJjNS45LTExLjkgMjIuOC0xMS45IDI4LjcgMHoiXX0sa3ZlPVFFLFN2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJleWUiLGljb246WzU3Niw1MTIsWzEyODA2NV0sImYwNmUiLCJNMjg4IDgwQzIyMi44IDgwIDE2OS4yIDEwOS42IDEyOC4xIDE0Ny43IDg5LjYgMTgzLjUgNjMgMjI2IDQ5LjQgMjU2IDYzIDI4NiA4OS42IDMyOC41IDEyOC4xIDM2NC4zIDE2OS4yIDQwMi40IDIyMi44IDQzMiAyODggNDMyczExOC44LTI5LjYgMTU5LjktNjcuN0M0ODYuNCAzMjguNSA1MTMgMjg2IDUyNi42IDI1NiA1MTMgMjI2IDQ4Ni40IDE4My41IDQ0Ny45IDE0Ny43IDQwNi44IDEwOS42IDM1My4yIDgwIDI4OCA4MHpNOTUuNCAxMTIuNkMxNDIuNSA2OC44IDIwNy4yIDMyIDI4OCAzMnMxNDUuNSAzNi44IDE5Mi42IDgwLjZjNDYuOCA0My41IDc4LjEgOTUuNCA5MyAxMzEuMSAzLjMgNy45IDMuMyAxNi43IDAgMjQuNi0xNC45IDM1LjctNDYuMiA4Ny43LTkzIDEzMS4xLTQ3LjEgNDMuNy0xMTEuOCA4MC42LTE5Mi42IDgwLjZTMTQyLjUgNDQzLjIgOTUuNCAzOTkuNGMtNDYuOC00My41LTc4LjEtOTUuNC05My0xMzEuMS0zLjMtNy45LTMuMy0xNi43IDAtMjQuNiAxNC45LTM1LjcgNDYuMi04Ny43IDkzLTEzMS4xek0yODggMzM2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMjkuNi0xNi4xLTU1LjUtNDAtNjkuMy0xLjQgNTkuNy00OS42IDEwNy45LTEwOS4zIDEwOS4zIDEzLjggMjMuOSAzOS43IDQwIDY5LjMgNDB6bS03OS42LTg4LjRjMi41IC4zIDUgLjQgNy42IC40IDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMi42LS4yLTUuMS0uNC03LjYtMzcuNCAzLjktNjcuMiAzMy43LTcxLjEgNzEuMXptNDUuNi0xMTVjMTAuOC0zIDIyLjItNC41IDMzLjktNC41IDguOCAwIDE3LjUgLjkgMjUuOCAyLjYgLjMgLjEgLjUgLjEgLjggLjIgNTcuOSAxMi4yIDEwMS40IDYzLjcgMTAxLjQgMTI1LjIgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNjEuNiAwLTExMy00My41LTEyNS4yLTEwMS40LTEuOC04LjYtMi44LTE3LjUtMi44LTI2LjYgMC0xMSAxLjQtMjEuOCA0LTMyIC4yLS43IC4zLTEuMyAuNS0xLjkgMTEuOS00My40IDQ2LjEtNzcuNiA4OS41LTg5LjV6Il19LEpFPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc2FkLXRlYXIiLGljb246WzUxMiw1MTIsWzEyODU0Niwic2FkLXRlYXIiXSwiZjViNCIsIk00NjQgMjU2YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOFM0OCAxNDEuMSA0OCAyNTZjMCA0MS44IDEyLjMgODAuNyAzMy42IDExMy4zIDguMiA0NC43IDQ3LjMgNzguNiA5NC4zIDc4LjcgMjQuNyAxMC4zIDUxLjcgMTYgODAuMSAxNiAxMTQuOSAwIDIwOC05My4xIDIwOC0yMDh6TTI4OCAzNTJjLTUuNSAwLTEwLjkgLjYtMTYgMS44IDAtLjYgMC0xLjIgMC0xLjggMC0xNi4yLTQtMzEuNS0xMS4xLTQ0LjkgOC43LTIgMTcuOC0zLjEgMjcuMS0zLjEgNDAuMiAwIDc1LjcgMTkuOCA5Ny41IDUwIDcuNyAxMC44IDUuMyAyNS44LTUuNSAzMy41cy0yNS44IDUuMy0zMy41LTUuNWMtMTMuMS0xOC4yLTM0LjQtMzAtNTguNS0zMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc2LTgwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE4NS40IDI3Ni44YzYuNSA3LjggMTIuNiAxNi4xIDE4LjMgMjQuNiA5IDEzLjQgMjAuMyAzMC4yIDIwLjMgNDcuNCAwIDI4LjMtMjEuNSA1MS4yLTQ4IDUxLjJzLTQ4LTIyLjktNDgtNTEuMmMwLTE3LjIgMTEuMi0zNCAyMC4zLTQ3LjQgNS43LTguNSAxMS45LTE2LjcgMTguMy0yNC42IDIuNC0yLjkgNS43LTQuOCA5LjQtNC44czcgMS45IDkuNCA0Ljh6Il19LEN2ZT1KRSxlUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzaGFyZS1mcm9tLXNxdWFyZSIsaWNvbjpbNTc2LDUxMixbNjE1MDksInNoYXJlLXNxdWFyZSJdLCJmMTRkIiwiTTQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNGwwIDU2LTQ4IDBjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgNDYuNyAyMC43IDgwLjQgNDMuNiAxMDMuNCA4LjEgOC4yIDE2LjUgMTQuOSAyNC4zIDIwLjQgOS4yIDYuNSAyMS43IDUuNyAzMC4xLTEuOXMxMC4yLTIwIDQuNS0yOS44Yy0zLjYtNi4zLTYuNS0xNC45LTYuNS0yNi43IDAtMzYuMiAyOS4zLTY1LjUgNjUuNS02NS41bDQ2LjUgMCAwIDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDd6bTcgOTdsMC0yMi4xIDc4LjEgNzguMS03OC4xIDc4LjEgMC0yMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0TDMzOCAxOTJjLTUwLjkgMC05My45IDMzLjUtMTA4LjMgNzkuNi0zLjMtOS40LTUuMi0xOS44LTUuMi0zMS42IDAtNjEuOSA1MC4xLTExMiAxMTItMTEybDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjR6bS0zMjAtOGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQgMHoiXX0sX3ZlPWVQLHRQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im5vdGUtc3RpY2t5IixpY29uOls0NDgsNTEyLFs2MjAyNiwic3RpY2t5LW5vdGUiXSwiZjI0OSIsIk0yNDAgNDMyTDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNzYtODggMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA4OHpNMzgwLjEgMzIwTDI4OCA0MTIuMSAyODggMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDY4LjEgMHpNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0MjkuMyAzMzguN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2eiJdfSxUdmU9dFAsYVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1iYWNrLWZpc3QiLGljb246WzM4NCw1MTIsWyJoYW5kLXJvY2siXSwiZjI1NSIsIk05NiA0MDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiA0MDB6TTczLjIgMzUybDY0LjYgMC03OS41LTg4LjNDNTEuNyAyNTYuMyA0OCAyNDYuOCA0OCAyMzYuOUw0OCAyMDRjMC0xNi4xIDExLjktMjkuNSAyNy40LTMxLjcgMTEuOC0xLjcgMjAuNi0xMS44IDIwLjYtMjMuOEw5NiA3MmMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3LjIgMCAxMy42IDMuMSAxOCA4LjEgNC42IDUuMiAxMS4xIDguMSAxOCA4LjFzMTMuNC0zIDE4LTguMWM0LjQtNSAxMC44LTguMSAxOC04LjEgOC41IDAgMTUuOSA0LjQgMjAuMiAxMS4xIDYuOSAxMC43IDIwLjkgMTQuMiAzMiA4IDMuNS0xLjkgNy40LTMuMSAxMS44LTMuMSAxMC42IDAgMTkuNyA2LjkgMjIuOCAxNi42IDMuOCAxMS43IDE1LjkgMTguNyAyOCAxNiAxLjctLjQgMy40LS42IDUuMi0uNiAxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDkyLjJjMCAxNC40LTMuNSAyOC41LTEwLjIgNDEuMmwtNTIuMiA5OC42IDU0LjMgMCA0MC4zLTc2LjJjMTAuNC0xOS42IDE1LjgtNDEuNSAxNS44LTYzLjZsMC05Mi4yYzAtMzguNC0zMC4xLTY5LjgtNjguMS03MS45LTEyLjktMTkuMy0zNC45LTMyLjEtNTkuOS0zMi4xLTUuNyAwLTExLjIgLjctMTYuNSAxLjktMTIuNy0xMS4xLTI5LjMtMTcuOS00Ny41LTE3LjktMTMuMSAwLTI1LjQgMy41LTM2IDkuNi0xMC42LTYuMS0yMi45LTkuNi0zNi05LjYtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA1OC43QzE5LjcgMTQzIDAgMTcxLjIgMCAyMDRsMCAzMi45YzAgMjEuNyA4IDQyLjcgMjIuNiA1OC45TDczLjIgMzUyeiJdfSxMdmU9YVAsJHZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXF1ZWVuIixpY29uOls1MTIsNTEyLFs5ODE5XSwiZjQ0NSIsIk0zMjUuMyA5MC44YzkuMS00LjggMjAuNi0zLjMgMjguMiA0LjNsMzkuOCAzOS44IDMuNyAzLjNjOS4xIDcuMSAyMC45IDEwIDMyLjQgNy43bDQ2LjQtOS4zIDMuNS0uNGM4LS40IDE1LjggMy4yIDIwLjYgOS44IDUuNSA3LjYgNi4xIDE3LjYgMS42IDI1LjhsLTExMi42IDIwMi42IDUxLjUgNzAuOSAxLjggMi43YzQgNi42IDYuMiAxNC4yIDYuMiAyMiAwIDIzLjMtMTguOSA0Mi4xLTQyLjEgNDIuMWwtMjk5LjggMGMtMjEuOCAwLTM5LjgtMTYuNi00MS45LTM3LjhsLS4yLTQuMyAuMS0zLjNjLjYtNy43IDMuNC0xNS4xIDcuOS0yMS40bDUxLjUtNzAuOS0xMTIuNS0yMDIuNmMtNC41LTguMi0zLjktMTguMyAxLjYtMjUuOHMxNC45LTExLjIgMjQuMS05LjRsNDYuNCA5LjNjMTMuMSAyLjYgMjYuNy0xLjUgMzYuMS0xMC45TDE1OS41IDk1IDE2MyA5Mi4yYzguNi01LjggMjAuMS01LjYgMjguNSAxLjFsNDAgMzIgMi44IDIuMWMxNC40IDkuNiAzMy41IDguOSA0Ny4yLTIuMWw0MC0zMiAzLjgtMi41ek0xNjQuNyA0MDBsLTQ2LjYgNjQgMjc2LjcgMC00Ni42LTY0LTE4My42IDB6TTMxMS41IDE2Mi44Yy0zMC4xIDI0LjEtNzIuMSAyNS42LTEwMy44IDQuNWwtNi4yLTQuNS0yMy4zLTE4LjYtMjQuNiAyNC42Yy0xOS44IDE5LjgtNDcuNyAyOC45LTc1LjEgMjQuOGw4OC4xIDE1OC41IDE3OS44IDAgODgtMTU4LjVjLTI1LjcgMy44LTUxLjctMy45LTcxLjEtMjFsLTQtMy43LTI0LjYtMjQuNi0yMy4yIDE4LjZ6TTI1Ni41IDcyYTQwIDQwIDAgMSAxIDAtODAgNDAgNDAgMCAxIDEgMCA4MHoiXX0saVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRlYXJzIixpY29uOls2NDAsNTEyLFsxMjg1MTQsImdyaW4tdGVhcnMiXSwiZjU4OCIsIk01MDQuMSAzNTNDNTEyLjkgMzY3LjIgNTI1LjMgMzc5IDUzOS44IDM4Ny4yIDQ5NS4xIDQ2MiA0MTMuNCA1MTIgMzIwIDUxMlMxNDQuOSA0NjIgMTAwLjIgMzg3LjJjMTQuNi04LjIgMjYuOS0yMCAzNS44LTM0LjMgMzQuOSA2NiAxMDQuMiAxMTEgMTg0LjEgMTExczE0OS4yLTQ1IDE4NC4xLTExMXptMTYuNC0xNTIuNUM0OTYuMiAxMTIuNiA0MTUuNyA0OCAzMjAgNDhTMTQzLjggMTEyLjYgMTE5LjUgMjAwLjVjLTEwLjYtNC44LTIyLjctNi44LTM1LjQtNWwtMTMuNCAxLjlDOTcuMiA4NC4zIDE5OC44IDAgMzIwIDBTNTQyLjggODQuMyA1NjkuMyAxOTcuNGwtMTMuNC0xLjljLTEyLjctMS44LTI0LjggLjItMzUuNCA1ek00NTUuOCAzMjBjLTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44ek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAgMjguNC0yMyA1MS40LTUxLjQgNTEuNC0yNS42IDAtNDcuMy0xOC44LTUwLjktNDQuMUw1MzEgMjYxLjFjLTEuNS0xMC42IDcuNS0xOS42IDE4LjEtMTguMWw0Ni43IDYuN2MyNS4zIDMuNiA0NC4xIDI1LjMgNDQuMSA1MC45em0tNjQwIDBjMC0yNS42IDE4LjgtNDcuMyA0NC4xLTUwLjlMOTAuOSAyNDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDMzMy4yIDc3IDM1MiA1MS40IDM1MiAyMyAzNTIgMCAzMjkgMCAzMDAuNnoiXX0sQXZlPWlQLHJQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBlbi10by1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJlZGl0Il0sImYwNDQiLCJNNDQxIDU4LjlMNDUzLjEgNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNDI0IDEzNC4xIDM3Ny45IDg4IDQwNyA1OC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwek0yMDkuOCAyNTYuMkwzNDQgMTIxLjkgMzkwLjEgMTY4IDI1NS44IDMwMi4yYy0yLjkgMi45LTYuNSA1LTEwLjQgNi4xbC01OC41IDE2LjcgMTYuNy01OC41YzEuMS0zLjkgMy4yLTcuNSA2LjEtMTAuNHpNMzczLjEgMjVMMTc1LjggMjIyLjJjLTguNyA4LjctMTUgMTkuNC0xOC4zIDMxLjFsLTI4LjYgMTAwYy0yLjQgOC40LS4xIDE3LjQgNi4xIDIzLjZzMTUuMiA4LjUgMjMuNiA2LjFsMTAwLTI4LjZjMTEuOC0zLjQgMjIuNS05LjcgMzEuMS0xOC4zTDQ4NyAxMzguOWMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjhMNDc0LjkgMjVDNDQ2LjgtMy4xIDQwMS4yLTMuMSAzNzMuMSAyNXpNODggNjRDMzkuNCA2NCAwIDEwMy40IDAgMTUyTDAgNDI0YzAgNDguNiAzOS40IDg4IDg4IDg4bDI3MiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMjIuMS0xNy45IDQwLTQwIDQwTDg4IDQ2NGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0yNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6Il19LER2ZT1yUCxzUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbS1zd2VhdCIsaWNvbjpbNTc2LDUxMixbMTI4NTE3LCJncmluLWJlYW0tc3dlYXQiXSwiZjU4MyIsIk01MzAuMiAxNS45Yy04LjgtMTAuNy0xOC41LTIwLjktMjktMzAtMy0yLjYtNy40LTIuNi0xMC40IDAtMTAuNSA5LjEtMjAuMSAxOS4zLTI5IDMwLTE0LjcgMTcuOC0yOS44IDQwLjEtMjkuOCA2NC4xIDAgMzYuNCAyNy42IDY0IDY0IDY0czY0LTI3LjYgNjQtNjRjMC0yNC0xNS4yLTQ2LjMtMjkuOC02NC4xem0tMTMyIDguOUMzNjQuOCA4LjkgMzI3LjQgMCAyODggMCAxNDYuNiAwIDMyIDExNC42IDMyIDI1NlMxNDYuNiA1MTIgMjg4IDUxMiA1NDQgMzk3LjQgNTQ0IDI1NmMwLTI0LjQtMy40LTQ4LTkuOC03MC40LTExLjkgNC4yLTI0LjcgNi40LTM4LjIgNi40LTMuNCAwLTYuOC0uMS0xMC4yLS40IDYuNiAyMC4zIDEwLjIgNDEuOSAxMC4yIDY0LjQgMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzgwIDM3MC45IDgwIDI1NiAxNzMuMSA0OCAyODggNDhjMzQuOCAwIDY3LjUgOC41IDk2LjMgMjMuNiAxLjQtMTcuNCA2LjktMzMuMSAxMy44LTQ2Ljh6TTQyMy44IDMyMGM0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3LjgtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggMTkuOCA1NS45IDczLjEgOTUuOSAxMzUuOCA5NS45IDYyLjcgMCAxMTYtNDAuMSAxMzUuOC05NnpNMTgwIDIwOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHMyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOHptMTg4LTI4YzE1LjUgMCAyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHoiXX0sRXZlPXNQLG5QPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sUHZlPW5QLG9QPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtd2luayIsaWNvbjpbNTEyLDUxMixbImxhdWdoLXdpbmsiXSwiZjU5YyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxJdmU9b1AsTnZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBhcGVyLXBsYW5lIixpY29uOls1NzYsNTEyLFs2MTkxM10sImYxZDgiLCJNMjkwLjUgMjg3LjdMNDkxLjQgODYuOSAzNTkgNDU2LjMgMjkwLjUgMjg3Ljd6TTQ1Ny40IDUzTDI1Ni42IDI1My44IDg4IDE4NS4zIDQ1Ny40IDUzek0zOC4xIDIxNi44bDIwNS44IDgzLjYgODMuNiAyMDUuOGM1LjMgMTMuMSAxOC4xIDIxLjcgMzIuMyAyMS43IDE0LjcgMCAyNy44LTkuMiAzMi44LTIzLjFMNTcwLjYgOGMzLjUtOS44IDEtMjAuNi02LjMtMjhzLTE4LjItOS44LTI4LTYuM0wzOS40IDE1MS43Yy0xMy45IDUtMjMuMSAxOC4xLTIzLjEgMzIuOCAwIDE0LjIgOC42IDI3IDIxLjcgMzIuM3oiXX0sRnZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYXJ0IixpY29uOls1MTIsNTEyLFsxMjgxNTMsMTI4MTU0LDEyODE1NSwxMjgxNTYsMTI4NDIwLDEyOTI5MywxMjkyOTQsMTI5NTA1LDk4MjksMTAwODQsNjE1NzhdLCJmMDA0IiwiTTM3OC45IDgwYy0yNy4zIDAtNTMgMTMuMS02OSAzNS4ybC0zNC40IDQ3LjZjLTQuNSA2LjItMTEuNyA5LjktMTkuNCA5LjlzLTE0LjktMy43LTE5LjQtOS45bC0zNC40LTQ3LjZjLTE2LTIyLjEtNDEuNy0zNS4yLTY5LTM1LjItNDcgMC04NS4xIDM4LjEtODUuMSA4NS4xIDAgNDkuOSAzMiA5OC40IDY4LjEgMTQyLjMgNDEuMSA1MCA5MS40IDk0IDEyNS45IDEyMC4zIDMuMiAyLjQgNy45IDQuMiAxNCA0LjJzMTAuOC0xLjggMTQtNC4yYzM0LjUtMjYuMyA4NC44LTcwLjQgMTI1LjktMTIwLjMgMzYuMi00My45IDY4LjEtOTIuNCA2OC4xLTE0Mi4zIDAtNDctMzguMS04NS4xLTg1LjEtODUuMXpNMjcxIDg3LjFjMjUtMzQuNiA2NS4yLTU1LjEgMTA3LjktNTUuMSA3My41IDAgMTMzLjEgNTkuNiAxMzMuMSAxMzMuMSAwIDY4LjYtNDIuOSAxMjguOS03OS4xIDE3Mi44LTQ0LjEgNTMuNi05Ny4zIDEwMC4xLTEzMy44IDEyNy45LTEyLjMgOS40LTI3LjUgMTQuMS00My4xIDE0LjFzLTMwLjgtNC43LTQzLjEtMTQuMUMxNzYuNCA0MzggMTIzLjIgMzkxLjUgNzkuMSAzMzggNDIuOSAyOTQuMSAwIDIzMy43IDAgMTY1LjEgMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43eiJdfSxxZj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDQ4IDAgMC02NCAzODkuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnpNODAgNDAwbDAtMjU2IDM1Ni40IDAtNDguMiAxMDguNWMtNS41IDEyLjQtNS41IDI2LjYgMCAzOUw0MzYuNCA0MDAgODAgNDAweiJdfSxPdmU9cWYsUnZlPXFmLEJ2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDY0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC00OCAwIDAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2ek0yMjQgMzA0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTIyNCAwem0tNjQtMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjI0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0eiJdfSxIdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTk3LjUgNDAwbDUwLTE2MCAzNzkuNCAwLTUwIDE2MC0zNzkuNCAwem0xOTAuNyA0OEw0NzcgNDQ4YzIxIDAgMzkuNi0xMy42IDQ1LjgtMzMuN2w1MC0xNjBjOS43LTMwLjktMTMuNC02Mi4zLTQ1LjgtNjIuM2wtMzc5LjQgMGMtMjEgMC0zOS42IDEzLjYtNDUuOCAzMy43TDgwLjIgMjk0LjQgODAuMiA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjgyLjkgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2bDExNy4zIDBjOC44IDAgMTYgNy4yIDE2IDE2bDQ4IDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMzMwLjkgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI3My4zIDQ0LjhDMjYyLjIgMzYuNSAyNDguOCAzMiAyMzQuOSAzMkw5Ni4yIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMHoiXX0scXZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1taW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDY5XSwiZjJkMSIsIk0wIDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxWdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3Rhci1oYWxmIixpY29uOls1NzYsNTEyLFs2MTczMV0sImYwODkiLCJNMjg1LjctMTUuOGMxMC44IDIuNiAxOC40IDEyLjIgMTguNCAyMy4zbDAgMzg3LjFjMCA5LTUuMSAxNy4zLTEzLjEgMjEuNEwxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM0wxOTMuMSAxMjUuMyAyNTguOC0zLjNjNS05LjkgMTYuMi0xNSAyNy0xMi40ek0yNTYuMSAxMDcuNEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDkyLjItNDYuOSAwLTI3Mi42eiJdfSxqdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWxhcm0tY2xvY2siLGljb246WzUxMiw1MTIsWzkyMDBdLCJmMzRlIiwiTTQwMi42IDUwLjJjLTUuNCAxLjctMTEuMyAxLjgtMTYuMi0uOS01LjgtMy4yLTExLjgtNi4yLTE3LjgtOC45LTEwLjQtNC43LTEzLjctMTguMy00LjEtMjQuNiAxNS05LjkgMzMtMTUuNyA1Mi4zLTE1LjcgNTIuNiAwIDk1LjIgNDIuNiA5NS4yIDk1LjIgMCAxMy4yLTIuNyAyNS44LTcuNiAzNy4zLTQuNSAxMC41LTE4LjQgOS44LTI0LjkgLjQtMy44LTUuNS03LjgtMTAuOC0xMi0xNi0zLjUtNC40LTQuNS0xMC4yLTMuOC0xNS44IC4yLTEuOSAuNC0zLjkgLjQtNS45IDAtMjYuMS0yMS4yLTQ3LjItNDcuMi00Ny4yLTQuOSAwLTkuNyAuOC0xNC4yIDIuMnpNMzIuNSAxMzIuOWMtNi41IDkuNC0yMC41IDEwLjEtMjQuOS0uNC00LjktMTEuNS03LjYtMjQuMS03LjYtMzcuMyAwLTUyLjYgNDIuNi05NS4yIDk1LjItOTUuMiAxOS4zIDAgMzcuMyA1LjggNTIuMyAxNS43IDkuNiA2LjMgNi4zIDE5LjktNC4xIDI0LjYtNi4xIDIuOC0xMiA1LjctMTcuOCA4LjktNC45IDIuNy0xMC45IDIuNi0xNi4yIC45LTQuNS0xLjQtOS4yLTIuMi0xNC4yLTIuMi0yNi4xIDAtNDcuMiAyMS4yLTQ3LjIgNDcuMiAwIDIgLjEgNCAuNCA1LjkgLjcgNS42LS4zIDExLjQtMy44IDE1LjgtNC4yIDUuMi04LjIgMTAuNS0xMiAxNnpNNDMyIDI4OGExNzYgMTc2IDAgMSAwIC0zNTIgMCAxNzYgMTc2IDAgMSAwIDM1MiAwek0zOTYuNSA0NjIuNUMzNTguMSA0OTMuNCAzMDkuMiA1MTIgMjU2IDUxMnMtMTAyLjEtMTguNi0xNDAuNS00OS41TDczIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Mi41LTQyLjVDNTAuNiAzOTAuMSAzMiAzNDEuMiAzMiAyODggMzIgMTY0LjMgMTMyLjMgNjQgMjU2IDY0UzQ4MCAxNjQuMyA0ODAgMjg4YzAgNTMuMi0xOC42IDEwMi4xLTQ5LjUgMTQwLjVMNDczIDQ3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Mi41LTQyLjV6TTI4MCAxODRsMCA5NC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy00LjUtNC41LTctMTAuNi03LTE3bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LFV2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJuZXdzcGFwZXIiLGljb246WzUxMiw1MTIsWzEyODI0MF0sImYxZWEiLCJNMTY4IDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDguNC0xLjQgMTYuNS00LjEgMjRMNDQwIDQzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwxNjggODB6TTcyIDQ4MGMtMzkuOCAwLTcyLTMyLjItNzItNzJMMCAxMTJDMCA5OC43IDEwLjcgODggMjQgODhzMjQgMTAuNyAyNCAyNGwwIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMzkuOCAzMi4yLTcyIDcyLTcybDI3MiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMzA0YzAgMzkuOC0zMi4yIDcyLTcyIDcyTDcyIDQ4MHpNMTkyIDE1MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6bTE1MiAyNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yMTYgMjU2bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA4MGwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFZmPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Imhvc3BpdGFsIixpY29uOls1NzYsNTEyLFsxMjc5NzMsNjI1ODksImhvc3BpdGFsLWFsdCIsImhvc3BpdGFsLXdpZGUiXSwiZjBmOCIsIk0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA0OC00OCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3MmMwLTM1LjMtMjguNy02NC02NC02NGwtNDggMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE3NiAwek0xNjAgNjRjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjcyYzAgOC44LTcuMiAxNi0xNiAxNmwtMTc2IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA4MC0xNzYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjcyYzAtOC44IDcuMi0xNiAxNi0xNmw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNzJ6TTExMiAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNOTYgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMyMCAwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2LTExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0yNjQgMTA0bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxXdmU9VmYsR3ZlPVZmLGxQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1zdG9wIixpY29uOls1MTIsNTEyLFs2MjA5NCwic3RvcC1jaXJjbGUiXSwiZjI4ZCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2MCAxOTJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNDggMTEybDAtOTYgOTYgMCAwIDk2LTk2IDB6Il19LFl2ZT1sUCxadmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToib2JqZWN0LXVuZ3JvdXAiLGljb246WzY0MCw1MTIsW10sImYyNDgiLCJNNDguMiA2Ni44Yy0uMS0uOC0uMi0xLjctLjItMi41bDAtLjJjMC04LjggNy4yLTE2IDE2LTE2IC45IDAgMS45IC4xIDIuOCAuMiA3LjUgMS4zIDEzLjIgNy45IDEzLjIgMTUuOCAwIDguOC03LjIgMTYtMTYgMTYtNy45IDAtMTQuNS01LjctMTUuOC0xMy4yek0wIDY0YzAgMjYuOSAxNi41IDQ5LjkgNDAgNTkuM2wwIDEwNS4zYy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDIwMS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTEwNS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NC0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBMMTIzLjMgNDBDMTEzLjkgMTYuNSA5MC45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjR6bTM2OCAwYTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTMyNC43IDg4YzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMTA1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0yMDEuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTEwNS4zYzE2LTYuNSAyOC45LTE5LjMgMzUuMy0zNS4zbDIwMS4zIDB6TTM4NCAyNzJhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyek04MCAyODhjMCA3LjktNS43IDE0LjUtMTMuMiAxNS44LS44IC4xLTEuNyAuMi0yLjUgLjJsLS4yIDBjLTguOCAwLTE2LTcuMi0xNi0xNiAwLS45IC4xLTEuOSAuMi0yLjggMS4zLTcuNSA3LjktMTMuMiAxNS44LTEzLjIgOC44IDAgMTYgNy4yIDE2IDE2em00MzYuNy00MGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDEwNS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMjAxLjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0yMC43LTQ4IDAgMCAyMC43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDIwMS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTEwNS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NC0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBsLTUyLjcgMCAwIDkuNmMxMC43IDEwLjkgMTkuMSAyMy45IDI0LjYgMzguNGwyOCAwem01OS4zLThhMTYgMTYgMCAxIDEgMC0zMiAxNiAxNiAwIDEgMSAwIDMyek0yNzEuOCA0NTAuN2ExNiAxNiAwIDEgMSAtMzEuNS01LjUgMTYgMTYgMCAxIDEgMzEuNSA1LjV6bTMwMS41IDEzYy03LjUtMS4zLTEzLjItNy45LTEzLjItMTUuOCAwLTguOCA3LjItMTYgMTYtMTYgNy45IDAgMTQuNSA1LjcgMTUuOCAxMy4ybDAgLjFjLjEgLjkgLjIgMS44IC4yIDIuNyAwIDguOC03LjIgMTYtMTYgMTYtLjkgMC0xLjktLjEtMi44LS4yeiJdfSxYdmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tbWVudCIsaWNvbjpbNTEyLDUxMixbMTI4NDg5LDYxNjY5XSwiZjA3NSIsIk01MS45IDM4NC45QzE5LjMgMzQ0LjYgMCAyOTQuNCAwIDI0MCAwIDEwNy41IDExNC42IDAgMjU2IDBTNTEyIDEwNy41IDUxMiAyNDAgMzk3LjQgNDgwIDI1NiA0ODBjLTM2LjUgMC03MS4yLTcuMi0xMDIuNi0yMEwzNyA1MDkuOWMtMy43IDEuNi03LjUgMi4xLTExLjUgMi4xLTE0LjEgMC0yNS41LTExLjQtMjUuNS0yNS41IDAtNC4zIDEuMS04LjUgMy4xLTEyLjJsNDguOC04OS40em0zNy4zLTMwLjJjMTIuMiAxNS4xIDE0LjEgMzYuMSA0LjggNTMuMmwtMTggMzMuMSA1OC41LTI1LjFjMTEuOC01LjEgMjUuMi01LjIgMzcuMS0uMyAyNS43IDEwLjUgNTQuMiAxNi40IDg0LjMgMTYuNCAxMTcuOCAwIDIwOC04OC44IDIwOC0xOTJTMzczLjggNDggMjU2IDQ4IDQ4IDEzNi44IDQ4IDI0MGMwIDQyLjggMTUuMSA4Mi40IDQxLjIgMTE0Ljd6Il19LEt2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1wYXduIixpY29uOlszODQsNTEyLFs5ODIzXSwiZjQ0MyIsIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy42LTkuMyA1Mi45LTI0LjkgNzMuMiA5LjggMyAxNi45IDEyLjEgMTYuOSAyMi44IDAgMTMuMy0xMC43IDI0LTI0IDI0bC0uNiAwIDI0LjYgMTYwIDUzLjYgNjdjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDYzLjQgNTEyYy0yNi4yIDAtNDcuNC0yMS4yLTQ3LjQtNDcuNCAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDUzLjYtNjcgMjQuNi0xNjAtLjYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC44IDcuMS0xOS44IDE2LjktMjIuOC0xNS42LTIwLjMtMjQuOS00NS42LTI0LjktNzMuMiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHpNMTE1LjkgNDAwbC01MS4yIDY0IDI1NC43IDAtNTEuMi02NC0xNTIuMiAwem0zNi4yLTE4NC43bC0yMSAxMzYuNyAxMjEuOSAwLTIxLTEzNi43LTEuMS03LjMtNzcuNiAwLTEuMSA3LjN6TTE5MiAxNmE3MiA3MiAwIDEgMCAwIDE0NCA3MiA3MiAwIDEgMCAwLTE0NHoiXX0sUXZlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLXBsdXMiLGljb246WzQ0OCw1MTIsW10sImYyNzEiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMTA0IDY0YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDggNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDgtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LEp2ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbGlwYm9hcmQiLGljb246WzM4NCw1MTIsWzEyODIwM10sImYzMjgiLCJNMjMyIDk2bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6bTAgNDhjMzcuMSAwIDY3LjYtMjggNzEuNi02NEwzMjAgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzUyYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYuNCAwYzQgMzYgMzQuNSA2NCA3MS42IDY0bDgwIDB6TTI5MS45IDMyQzI3OSAxMi43IDI1NyAwIDIzMiAwTDE1MiAwYy0yNSAwLTQ3IDEyLjctNTkuOSAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yOC4xIDB6Il19LGV5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0aHVtYnMtZG93biIsaWNvbjpbNTEyLDUxMixbMTI4MDc4LDYxNTc2XSwiZjE2NSIsIk0zNjAgMzJsNy40IC40YzM1IDMuNiA2Mi41IDMyLjIgNjQuNCA2Ny43IDE3LjggMTEuOCAzMC4xIDMxLjQgMzIgNTMuOWwuMiA2YzAgNS43LS43IDExLjItMiAxNi41IDEwLjIgMTEuNSAxNi44IDI2LjMgMTcuOCA0Mi43bC4yIDQuOGMwIDEzLjItMy42IDI1LjQtOS44IDM2IDQuOSA4LjQgOC4yIDE3LjkgOS4zIDI4bC40IDhjMCAzNy4zLTI4LjMgNjcuOS02NC42IDcxLjZsLTcuNCAuNC0xMDkuNyAwIDE0LjEgMzAgMy4xIDcuNmMxMi41IDM1LjctMS44IDc1LjUtMzQuMiA5NWwtNy4yIDMuOWMtMzcuNSAxNy42LTgxLjcgMy42LTEwMi42LTMxLjJsLS42LS45LTIuNy01LS42LTEuMi0zMC4xLTY0Yy05LjQgMTcuOC0yOCAyOS45LTQ5LjUgMjkuOWwtMzIgMGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCAxNTJjMC0zMC45IDI1LjEtNTYgNTYtNTZsMzIgMGMxMi40IDAgMjMuOSA0LjEgMzMuMiAxMSAxMy4yLTIxLjQgMzItMzkuNCA1NS01MS42bDEyLjItNi41IC43LS4zIDYuNi0zLjIgLjctLjMgNy4xLTNjMTYuNy02LjYgMzQuNS05LjkgNTIuNi05LjlMMzYwIDMyek0yNTUuOSA4MGMtMTIgMC0yMy45IDIuMy0zNS4xIDYuNmwtNC43IDItNS4zIDIuNiAwIDAtMTIuMiA2LjVjLTI5LjIgMTUuNS00OC4zIDQ0LjktNTAuNyA3Ny42bC0uMiA4IDAgMTEyLjkgLjEgNC4xYy41IDguMiAyLjUgMTYuMiA2IDIzLjdsNTYuOCAxMjAuOSAyLjEgMy44YzguNCAxMy43IDI2IDE5LjEgNDAuOCAxMi4ybDIuOS0xLjZjMTMtNy44IDE4LjctMjMuNyAxMy43LTM4bC0xLjItMy0zMC4yLTY0LjJjLTMuNS03LjQtMi45LTE2LjEgMS41LTIzLjFzMTItMTEuMSAyMC4yLTExLjFsMTQ3LjUgMCAyLjQtLjFjMTEuMy0xLjEgMjAuMy0xMC4xIDIxLjQtMjEuNGwuMS0yLjVjMC03LjEtMy4xLTEzLjUtOC4yLTE4LTUuMi00LjYtOC4yLTExLjEtOC4yLTE4czMtMTMuNCA4LjItMThjNC40LTMuOSA3LjQtOS4zIDgtMTUuM2wuMi0yLjdjMC04LjQtNC40LTE1LjktMTEuMi0yMC4yLTEwLjctNi45LTE0LjItMjAuOS04LTMyIDEuNS0yLjYgMi41LTUuNiAyLjktOC42bC4yLTMuMmMwLTEwLjYtNi45LTE5LjYtMTYuNi0yMi44LTExLjctMy44LTE4LjctMTUuOS0xNi0yOCAuMi0uOSAuMy0xLjggLjQtMi42bC4yLTIuNmMwLTEyLjQtOS41LTIyLjYtMjEuNi0yMy44TDM2MCA4MCAyNTUuOSA4MHpNNTYgMTQ0Yy00LjQgMC04IDMuNi04IDhsMCAyMjRjMCA0LjQgMy42IDggOCA4bDMyIDBjNC40IDAgOC0zLjYgOC04bDAtMjI0YzAtNC40LTMuNi04LTgtOGwtMzIgMHoiXX0sdHllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImlkLWJhZGdlIixpY29uOlszODQsNTEyLFtdLCJmMmMxIiwiTTI1NiA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzg0YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0xNjAgMzIwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAweiJdfSxjUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHptMjMwLjcgODkuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sYXllPWNQLGl5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1iaXNob3AiLGljb246WzMyMCw1MTIsWzk4MjFdLCJmNDNhIiwiTTIxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDgxLjggOTguMWMyNC43IDI5LjYgMzguMiA2NyAzOC4yIDEwNS42IDAgNDMuNy0xNy40IDg1LjctNDguMyAxMTYuNmwtOC42IDguNiA0Ni41IDU4LjJjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDQ3LjQgNTEyQzIxLjIgNTEyIDAgNDkwLjggMCA0NjQuNiAwIDQ1My45IDMuNyA0NDMuNCAxMC40IDQzNWw0Ni41LTU4LjItOC42LTguNkMxNy40IDMzNy40IDAgMjk1LjQgMCAyNTEuNyAwIDIxMy4xIDEzLjUgMTc1LjggMzguMiAxNDYuMUwxMjAgNDggMTA0IDQ4QzkwLjcgNDggODAgMzcuMyA4MCAyNFM5MC43IDAgMTA0IDBMMjE2IDB6TTk0LjQgNDA2LjhsLTQ1LjcgNTcuMiAyMjIuNyAwLTQ1LjctNTcuMS01LjUtNi45LTEyMC4zIDAtNS41IDYuOHpNMTU2LjkgNzguN0w3NS4xIDE3Ni44Yy0xNS4zIDE4LjQtMjQuNiA0MS0yNi43IDY0LjdMNDggMjUxLjdjMCAzMSAxMi4zIDYwLjcgMzQuMiA4Mi43bDE3LjcgMTcuNyAxMjAuMiAwYzYuMi02LjIgMTIuMS0xMi4xIDE3LjgtMTcuNyAyMS45LTIxLjkgMzQuMi01MS42IDM0LjItODIuNmwtLjQtMTAuMmMtMS41LTE3LTYuNy0zMy4zLTE1LjItNDhMMjA5IDI0MWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1MS44LTUxLjgtNjMuNy03Ni41LTMuMS0zLjgtMy4xIDMuOHoiXX0scnllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4iLGljb246WzUxMiw1MTIsWzYyMTM1XSwiZjJiNiIsIk01MTIgNDE2YzAgMzUuMy0yOC41IDY0LTYzLjkgNjRMNjQgNDgwYy0zNS40IDAtNjQtMjguNy02NC02NEwwIDE2NGMuMS0xNS41IDcuOC0zMCAyMC41LTM4LjhMMjA2LTIuN2MzMC4xLTIwLjcgNjkuOC0yMC43IDk5LjkgMEw0OTEuNSAxMjUuMmMxMi44IDguOCAyMC40IDIzLjMgMjAuNSAzOC44bDAgMjUyek02NCA0MzJsMzg0LjEgMGM4LjggMCAxNS45LTcuMSAxNS45LTE2bDAtMTkxLjctMTU0LjggMTE3LjRjLTMxLjQgMjMuOS03NC45IDIzLjktMTA2LjQgMEw0OCAyMjQuMyA0OCA0MTZjMCA4LjkgNy4yIDE2IDE2IDE2ek00NjMuNiAxNjQuNEwyNzguNyAzNi44Yy0xMy43LTkuNC0zMS43LTkuNC00NS40IDBMNDguNCAxNjQuNCAyMzEuOCAzMDMuNWMxNC4zIDEwLjggMzQuMSAxMC44IDQ4LjQgMEw0NjMuNiAxNjQuNHoiXX0sY2w9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MTUzMiwidGltZXMtY2lyY2xlIiwieG1hcmstY2lyY2xlIl0sImYwNTciLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjcgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAweiJdfSxzeWU9Y2wsbnllPWNsLGRQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC11cCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS11cCJdLCJmMTUxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMjQgNjRjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlTMzM3LjUgMzIwIDMyOCAzMjBsLTIwOCAwYy05LjUgMC0xOC4yLTUuNy0yMi0xNC40cy0yLjEtMTguOSA0LjQtMjUuOWwxMDQtMTEyYzQuNS00LjkgMTAuOS03LjcgMTcuNi03Ljd6Il19LG95ZT1kUCxseWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTkuNCA0MzJsLTEzNC44IDBjLTE1LjggMC0yOC42LTEyLjgtMjguNi0yOC42IDAtNi40IDIuMS0xMi41IDYtMTcuNmw2Ny42LTg2LjlDMTc1IDI5MiAxODMuMyAyODggMTkyIDI4OHMxNyA0IDIyLjQgMTAuOUwyODIgMzg1LjljMy45IDUgNiAxMS4yIDYgMTcuNiAwIDE1LjgtMTIuOCAyOC42LTI4LjYgMjguNnpNMTEyIDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHBQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1yaWdodCJdLCJmMTUyIiwiTTQwMCA5NmMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwek0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0zMjAgMjU2YzAgNi43LTIuOCAxMy03LjcgMTcuNmwtMTEyIDEwNGMtNyA2LjUtMTcuMiA4LjItMjUuOSA0LjRTMTYwIDM2OS41IDE2MCAzNjBsMC0yMDhjMC05LjUgNS43LTE4LjIgMTQuNC0yMnMxOC45LTIuMSAyNS45IDQuNGwxMTIgMTA0YzQuOSA0LjUgNy43IDEwLjkgNy43IDE3LjZ6Il19LGN5ZT1wUCxYZj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzdW4iLGljb246WzU3Niw1MTIsWzk3MjhdLCJmMTg1IiwiTTI4OC0zMmM4IDAgMTUuNCA0IDE5LjkgMTAuNmw1OC44IDg3LjQgMTAzLjQtMjAuMmM3LjgtMS41IDE1LjkgLjkgMjEuNiA2LjZzOC4xIDEzLjggNi42IDIxLjZMNDc4IDE3Ny4zIDU2NS40IDIzNi4xQzU3MiAyNDAuNSA1NzYgMjQ4IDU3NiAyNTZzLTQgMTUuNC0xMC42IDE5LjlMNDc4IDMzNC43IDQ5OC4yIDQzOGMxLjUgNy44LS45IDE1LjktNi42IDIxLjZzLTEzLjggOC4xLTIxLjYgNi42TDM2Ni43IDQ0NiAzMDcuOSA1MzMuNEMzMDMuNCA1NDAgMjk2IDU0NCAyODggNTQ0cy0xNS40LTQtMTkuOS0xMC42TDIwOS4zIDQ0NiAxMDUuOSA0NjYuMmMtNy44IDEuNS0xNS45LS45LTIxLjYtNi42cy04LjEtMTMuOC02LjYtMjEuNkw5OCAzMzQuNyAxMC42IDI3NS45QzQgMjcxLjQgMCAyNjQgMCAyNTZzNC0xNS40IDEwLjYtMTkuOUw5OCAxNzcuMyA3Ny44IDczLjljLTEuNS03LjggLjktMTUuOSA2LjYtMjEuNnMxMy44LTguMSAyMS42LTYuNmwxMDMuMyAyMC4yIDU4LjgtODcuNCAxLjgtMi4zQzI3NC40LTI5IDI4MS0zMiAyODgtMzJ6bS00Ny44IDEzOGMtNS40IDgtMTUgMTItMjQuNSAxMC4ybC04NC0xNi40IDE2LjQgODRjMS44IDkuNS0yLjIgMTkuMS0xMC4yIDI0LjVMNjcgMjU2IDEzOCAzMDMuOGM4IDUuNCAxMiAxNSAxMC4yIDI0LjVsLTE2LjQgODQgODQtMTYuNCAzLjUtLjRjOC4zLS40IDE2LjMgMy42IDIxIDEwLjZsNDcuOCA3MSA0Ny44LTcxIDIuMi0yLjhjNS42LTYuMSAxNC05IDIyLjMtNy4zbDg0IDE2LjQtMTYuNC04NGMtMS44LTkuNSAyLjItMTkuMSAxMC4yLTI0LjVsNzEtNDcuOC03MS00Ny44Yy04LTUuNC0xMi0xNS0xMC4yLTI0LjVsMTYuNC04NC04NCAxNi40Yy05LjUgMS44LTE5LjEtMi4yLTI0LjUtMTAuMmwtNDcuOC03MS00Ny44IDcxek0yODggMzc2YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptMC0xOTJhNzIgNzIgMCAxIDAgMCAxNDQgNzIgNzIgMCAxIDAgMC0xNDR6Il19LGR5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpbWFnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzZSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTI4IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTM2IDcyYzguNSAwIDE2LjQgNC41IDIwLjcgMTEuOGw4MCAxMzZjNC40IDcuNCA0LjQgMTYuNiAuMSAyNC4xUzM1Mi42IDM4NCAzNDQgMzg0bC0yNDAgMGMtOC45IDAtMTcuMi01LTIxLjMtMTIuOXMtMy41LTE3LjUgMS42LTI0LjhsNTYtODBjNC41LTYuNCAxMS44LTEwLjIgMTkuNy0xMC4yczE1LjIgMy44IDE5LjcgMTAuMmwxNy4yIDI0LjYgNDYuNS03OWM0LjMtNy4zIDEyLjItMTEuOCAyMC43LTExLjh6Il19LHB5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsaWdodGJ1bGIiLGljb246WzM4NCw1MTIsWzEyODE2MV0sImYwZWIiLCJNMjk2LjUgMjkxLjFDMzIxIDI2NS4yIDMzNiAyMzAuNCAzMzYgMTkyIDMzNiAxMTIuNSAyNzEuNSA0OCAxOTIgNDhTNDggMTEyLjUgNDggMTkyYzAgMzguNCAxNSA3My4yIDM5LjUgOTkuMSAyMS4zIDIyLjQgNDQuOSA1NCA1My4zIDkyLjlsMTAyLjQgMGM4LjQtMzkgMzItNzAuNSA1My4zLTkyLjl6bTM0LjggMzNDMzA3LjcgMzQ5IDI4OCAzNzkuNCAyODggNDEzLjdsMCAxOC4zYzAgNDQuMi0zNS44IDgwLTgwIDgwbC0zMiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE4LjNDOTYgMzc5LjQgNzYuMyAzNDkgNTIuNyAzMjQuMSAyMCAyODkuNyAwIDI0My4yIDAgMTkyIDAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MmMwIDUxLjItMjAgOTcuNy01Mi43IDEzMi4xek0xNDQgMTg0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNiAzOS40LTg4IDg4LTg4IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHoiXX0samY9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk01MTIgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsNDQ4IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOCAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bS0zMiA0MGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpNMzc2IDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LGh5ZT1qZix1eWU9amYsaFA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE3NiAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg0IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGZ5ZT1oUCxteWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibWFwIixpY29uOls1MTIsNTEyLFsxMjg1MDYsNjIwNzJdLCJmMjc5IiwiTTUxMiA0OGMwLTguMy00LjMtMTYtMTEuMy0yMC40cy0xNS45LTQuOC0yMy4zLTEuMUwzNTIuNSA4OC4xIDE4MCAyOS40Yy0xMy43LTQuNy0yOC43LTMuOC00MS45IDIuM0wxMy44IDkwLjNDNS40IDk0LjIgMCAxMDIuNyAwIDExMkwwIDQ2NGMwIDguMiA0LjIgMTUuOSAxMS4xIDIwLjNzMTUuNiA0LjkgMjMuMSAxLjRsMTI3LjMtNTkuOSAxNzAuNyA1Ni45YzEzLjcgNC42IDI4LjUgMy43IDQxLjYtMi41bDEyNC40LTU4LjVjOC40LTQgMTMuOC0xMi40IDEzLjgtMjEuN2wwLTM1MnpNMTQ0IDgyLjFsMCAyOTktOTYgNDUuMiAwLTI5OSA5Ni00NS4yem00OCAzMDMuM2wwLTMwMS4xIDEyOCA0My41IDAgMzAwLjMtMTI4LTQyLjd6TTM2OCAxMzRsOTYtNDcuNCAwIDI5OC4yLTk2IDQ1LjIgMC0yOTZ6Il19LGd5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXBvaW50LWRvd24iLGljb246WzM4NCw1MTIsW10sImYwYTciLCJNNjQgNDQ4bDAtMTc3LjZjNS4yIDEgMTAuNSAxLjYgMTYgMS42bDE2IDAgMCAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZ6TTgwIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMGw0OCAwYzUyLjUgMCA5Ny4xIDMzLjcgMTEzLjQgODAuNy0zLjEtLjUtNi4yLS43LTkuNC0uNy0yMCAwLTM3LjkgOS4yLTQ5LjcgMjMuNi05LTQuOS0xOS40LTcuNi0zMC4zLTcuNi0xNS4xIDAtMjkgNS4zLTQwIDE0LTExLTguOC0yNC45LTE0LTQwLTE0bC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTgwIDB6TTAgMTkybDAgMGMwIDE4IDYgMzQuNiAxNiA0OGwwIDIwOGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtODJjNS4xIDEuMyAxMC41IDIgMTYgMiAyNS4zIDAgNDcuMi0xNC43IDU3LjYtMzYgNyAyLjYgMTQuNSA0IDIyLjQgNCAyMCAwIDM3LjktOS4yIDQ5LjctMjMuNiA5IDQuOSAxOS40IDcuNiAzMC4zIDcuNiAzNS4zIDAgNjQtMjguNyA2NC02NGwwLTg4QzM4NCA3NS4yIDMwOC44IDAgMjE2IDBMMTY4IDBDNzUuMiAwIDAgNzUuMiAwIDE2OGwwIDI0em0zMzYgNjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNjR6TTE2MCAyNzJjNS41IDAgMTAuOS0uNyAxNi0ybDAgMzRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0zMiAxNiAwem02NC0yNGwwLTQwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTI0eiJdfSx1UD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2ek01MTIgMjU2YTI1NiAyNTYgMCAxIDEgLTUxMiAwIDI1NiAyNTYgMCAxIDEgNTEyIDB6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sYnllPXVQLGZQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUiLGljb246WzUxMiw1MTIsWzEyODUzOSwiZ3Jpbi10b25ndWUiXSwiZjU4OSIsIk00NjQgMjU2YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOFM0OCAxNDEuMSA0OCAyNTZjMCA3NC4xIDM4LjggMTM5LjIgOTcuMSAxNzYtLjctNS4yLTEuMS0xMC42LTEuMS0xNmwwLTUzLjVjLTEwLjItMTIuNi0xOC4zLTI2LjktMjMuOC00Mi40LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNiAxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtNS41IDE1LjYtMTMuNiAyOS45LTIzLjggNDIuNWwwIDUzLjVjMCA1LjQtLjQgMTAuOC0xLjEgMTYgNTguNC0zNi44IDk3LjEtMTAxLjkgOTcuMS0xNzZ6bTQ4IDBjMCAxMTYuMy03Ny42IDIxNC42LTE4My45IDI0NS43LTE5LjUgMTYuNC00NC42IDI2LjMtNzIuMSAyNi4zcy01Mi42LTkuOS03Mi4xLTI2LjNDNzcuNiA0NzAuNiAwIDM3Mi4zIDAgMjU2IDAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNiAyMDhsMC0zNy40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgMzcuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSx2eWU9ZlAsVWY9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZnV0Ym9sIixpY29uOls1MTIsNTEyLFs5OTE3LCJmdXRib2wtYmFsbCIsInNvY2Nlci1iYWxsIl0sImYxZTMiLCJNMzg3IDIyOC4zYy00LjQtMi44LTcuNi03LTkuMi0xMS45cy0xLjQtMTAuMiAuNS0xNUw0MTEuNiAxMThjLTE5LjktMjIuNC00NC42LTQwLjUtNzIuNC01Mi43bC02OS4xIDU3LjZjLTQgMy4zLTkgNS4xLTE0LjEgNS4xcy0xMC4yLTEuOC0xNC4xLTUuMUwxNzIuOCA2NS4zYy0yNy44IDEyLjItNTIuNSAzMC4zLTcyLjQgNTIuN2wzMy40IDgzLjRjMS45IDQuOCAyLjEgMTAuMSAuNSAxNXMtNC45IDkuMS05LjIgMTEuOUw0OSAyNzYuMmMzIDMwLjkgMTIuNyA1OS43IDI3LjYgODUuMmw4OS43LTZjNS4yLS4zIDEwLjMgMS4xIDE0LjUgNC4yczcuMiA3LjQgOC40IDEyLjVsMjIgODcuMmMxNC40IDMuMiAyOS40IDQuOCA0NC44IDQuOHMzMC4zLTEuNyA0NC44LTQuOGwyMi04Ny4yYzEuMy01IDQuMi05LjQgOC40LTEyLjVzOS4zLTQuNSAxNC41LTQuMmw4OS43IDZjMTUtMjUuNCAyNC43LTU0LjMgMjcuNi04NS4xTDM4NyAyMjguM3pNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyem02MiAyMjFjOC40IDYuMSAxMS45IDE2LjkgOC43IDI2LjhsLTE4LjMgNTYuM2MtMy4yIDkuOS0xMi40IDE2LjYtMjIuOCAxNi42bC01OS4yIDBjLTEwLjQgMC0xOS42LTYuNy0yMi44LTE2LjZsLTE4LjMtNTYuM2MtMy4yLTkuOSAuMy0yMC43IDguNy0yNi44bDQ3LjktMzQuOGM4LjQtNi4xIDE5LjgtNi4xIDI4LjIgMEwzMTggMjIxeiJdfSx5eWU9VWYseHllPVVmLG1QPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc3VycHJpc2UiLGljb246WzUxMiw1MTIsWzEyODU1OCwic3VycHJpc2UiXSwiZjVjMiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNDggODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LHd5ZT1tUCxnUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb2xkZXIiLGljb246WzUxMiw1MTIsWzEyODE5MywxMjg0NDcsNjE3MTYsImZvbGRlci1ibGFuayJdLCJmMDdiIiwiTTY0IDQwMGwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xNDkuMyAwYy0xNy4zIDAtMzQuMi01LjYtNDgtMTZMMjEyLjMgODMuMmMtMi44LTIuMS02LjEtMy4yLTkuNi0zLjJMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZ6bTM4NCA0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sTXllPWdQLHp5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG91ZCIsaWNvbjpbNTc2LDUxMixbOTcyOV0sImYwYzIiLCJNODAgMTkyYzAtODguNCA3MS42LTE2MCAxNjAtMTYwIDQ3LjEgMCA4OS40IDIwLjQgMTE4LjcgNTIuNyAxMC42LTMuMSAyMS44LTQuNyAzMy4zLTQuNyA2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMCAwIDEzLjItMi4xIDI1LjktNi4xIDM3LjggNDEuNiAyMS4xIDcwLjEgNjQuMyA3MC4xIDExNC4yIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC01Ni44IDMyLjktMTA1LjkgODAuNy0xMjkuNC0uNC00LjgtLjctOS43LS43LTE0LjZ6TTI0MCA4MGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTIgMCA4LjQgLjkgMTYuNiAyLjcgMjQuNSAyLjcgMTIuMS00LjMgMjQuMy0xNi4xIDI4LjEtMzguNyAxMi40LTY2LjYgNDguNy02Ni42IDkxLjQgMCA1MyA0MyA5NiA5NiA5NmwzMDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTM3LjQtMjUuNy02OC45LTYwLjUtNzcuNi03LjUtMS45LTEzLjYtNy4yLTE2LjUtMTQuM3MtMi4xLTE1LjIgMi0yMS43YzctMTEuMSAxMS0yNC4yIDExLTM4LjMgMC0zOS44LTMyLjItNzItNzItNzItMTEuMSAwLTIxLjUgMi41LTMwLjggNi45LTEwLjUgNS0yMy4xIDEuNy0yOS44LTcuOC0yMC4zLTI4LjYtNTMuNy00Ny4xLTkxLjMtNDcuMXoiXX0sa3llPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZSIsaWNvbjpbNTEyLDUxMixbMTI4MzA4LDEyODMwOSwxMjg5OTIsMTI4OTkzLDEyODk5NCwxMjg5OTUsMTI4OTk2LDk2NzksOTg5OCw5ODk5LDExMDQ0LDYxNzA4LDYxOTE1XSwiZjExMSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LGJQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODUxOCwiZ3Jpbi1zcXVpbnQiXSwiZjU4NSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6bS0yNDkuNi0xNDNjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0sU3llPWJQLHZQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS11c2VyIixpY29uOls1MTIsNTEyLFs2MjE0MiwidXNlci1jaXJjbGUiXSwiZjJiZCIsIk00MDYuNSAzOTkuNkMzODcuNCAzNTIuOSAzNDEuNSAzMjAgMjg4IDMyMGwtNjQgMGMtNTMuNSAwLTk5LjQgMzIuOS0xMTguNSA3OS42LTM1LjYtMzcuMy01Ny41LTg3LjktNTcuNS0xNDMuNiAwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU1LjctMjEuOSAxMDYuMi01Ny41IDE0My42em0tNDAuMSAzMi43QzMzNC40IDQ1Mi40IDI5Ni42IDQ2NCAyNTYgNDY0cy03OC40LTExLjYtMTEwLjUtMzEuN2M3LjMtMzYuNyAzOS43LTY0LjMgNzguNS02NC4zbDY0IDBjMzguOCAwIDcxLjIgMjcuNiA3OC41IDY0LjN6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTI3MmE0MCA0MCAwIDEgMSAwLTgwIDQwIDQwIDAgMSAxIDAgODB6bS04OC00MGE4OCA4OCAwIDEgMCAxNzYgMCA4OCA4OCAwIDEgMCAtMTc2IDB6Il19LEN5ZT12UCx5UD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWN0YW5nbGUtbGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3QtYWx0Il0sImYwMjIiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNjAgMzIwYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTEwNC01NmwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sX3llPXlQLHhQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQiLGljb246WzUxMiw1MTIsWzEyOTMwNiw5OTk1LCJoYW5kLXBhcGVyIl0sImYyNTYiLCJNMjU2LjUgMGMtMjUuMyAwLTQ3LjIgMTQuNy01Ny42IDM2LTctMi42LTE0LjUtNC0yMi40LTQtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAxNjUuNS0yLjctMi43Yy0yNS0yNS02NS41LTI1LTkwLjUgMHMtMjUgNjUuNSAwIDkwLjVMMTA3IDQzN2M0OCA0OCAxMTMuMSA3NSAxODEgNzVsMTYuNSAwYzEuNSAwIDMtLjEgNC41LS40IDkxLjctNi4yIDE2NS03OS40IDE3MS4xLTE3MS4xIC4zLTEuNSAuNC0zIC40LTQuNWwwLTE3NmMwLTM1LjMtMjguNy02NC02NC02NC01LjUgMC0xMC45IC43LTE2IDJsMC0yYzAtMzUuMy0yOC43LTY0LTY0LTY0LTcuOSAwLTE1LjQgMS40LTIyLjQgNC0xMC40LTIxLjMtMzIuMy0zNi01Ny42LTM2em0tMTYgOTYuMWwwLS4xIDAtMzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTM2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNzIuOWMtLjEgLjYtLjEgMS4zLS4yIDEuOS0zLjQgNjkuNy01OS4zIDEyNS42LTEyOSAxMjktLjYgMC0xLjMgLjEtMS45IC4yTDI4OCA0NjRDMjMyLjkgNDY0IDE4MCA0NDIuMSAxNDEgNDAzLjFMNTMuMiAzMTUuM2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDQzLjcgNDMuN2M2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yczE0LjgtMTIuNSAxNC44LTIyLjJsMC0yMjMuNGMwLTguOCA3LjItMTYgMTYtMTYgOC44IDAgMTYgNy4xIDE2IDE1LjlsMCAxMzYuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTM1Ljl6Il19LFR5ZT14UCxMeWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidGh1bWJzLXVwIixpY29uOls1MTIsNTEyLFsxMjgwNzcsNjE1NzVdLCJmMTY0IiwiTTE3MS41IDM4LjhDMTkyLjMgNCAyMzYuNS0xMCAyNzQgNy42bDcuMiAzLjhDMzE2IDMyLjMgMzMwIDc2LjUgMzEyLjQgMTE0bDAgMC0xNC4xIDMwIDEwOS43IDAgNy40IC40YzM2LjMgMy43IDY0LjYgMzQuNCA2NC42IDcxLjYgMCAxMy4yLTMuNiAyNS40LTkuOCAzNiA2LjEgMTAuNiA5LjcgMjIuOCA5LjggMzYgMCAxOC4zLTYuOSAzNC44LTE4IDQ3LjUgMS4zIDUuMyAyIDEwLjggMiAxNi41IDAgMjUuMS0xMi45IDQ3LTMyLjIgNTkuOS0xLjkgMzUuNS0yOS40IDY0LjItNjQuNCA2Ny43bC03LjQgLjQtMTA0LjEgMGMtMTggMC0zNS45LTMuNC01Mi42LTkuOWwtNy4xLTMtLjctLjMtNi42LTMuMi0uNy0uMy0xMi4yLTYuNWMtMTIuMy02LjUtMjMuMy0xNC43LTMyLjktMjQuMS00LjEgMjYuOS0yNy4zIDQ3LjQtNTUuMyA0Ny40bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDIwMGMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEwLjggMCAyMC45IDMuMSAyOS41IDguNWw1MC4xLTEwNi41IC42LTEuMiAyLjctNSAuNi0uOXpNNTYgMTkyYy00LjQgMC04IDMuNi04IDhsMCAyMjRjMCA0LjQgMy42IDggOCA4bDMyIDBjNC40IDAgOC0zLjYgOC04bDAtMjI0YzAtNC40LTMuNi04LTgtOGwtMzIgMHpNMjUzLjYgNTFjLTE0LjgtNi45LTMyLjMtMS42LTQwLjcgMTJsLTIuMiA0LTU2LjggMTIwLjljLTMuNSA3LjUtNS41IDE1LjUtNiAyMy43bC0uMSA0LjIgMCAxMTIuOSAuMiA3LjljMi40IDMyLjcgMjEuNCA2Mi4xIDUwLjcgNzcuN2wxMS41IDYuMSA2LjMgMy4xYzEyLjQgNS42IDI1LjggOC41IDM5LjQgOC41bDEwNC4xIDAgMi40LS4xYzEyLjEtMS4yIDIxLjYtMTEuNSAyMS42LTIzLjlsLS4yLTIuNmMtLjEtLjktLjItMS43LS40LTIuNi0yLjctMTIuMSA0LjMtMjQuMiAxNi0yOCA5LjctMy4xIDE2LjYtMTIuMiAxNi42LTIyLjggMC00LjMtMS4xLTguMi0zLjEtMTEuOC02LjMtMTEuMS0yLjgtMjUuMiA4LTMyIDYuOC00LjMgMTEuMi0xMS44IDExLjItMjAuMiAwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM1LjEtNC41IDguMi0xMC45IDguMi0xOGwtLjEtMi40Yy0xLjEtMTEuMy0xMC4xLTIwLjMtMjEuNC0yMS40bC0yLjQtLjEtMTQ3LjUgMGMtOC4yIDAtMTUuOC00LjItMjAuMi0xMS4xLTQuNC02LjktNS0xNS43LTEuNS0yMy4xTDI2OSA5My42YzctMTUgMS40LTMyLjctMTIuNS00MUwyNTMuNiA1MXoiXX0sJHllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDgwIDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDQ4ek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTk2IDQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEF5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEzOC43YzAgMTMuOC00LjUgMjcuMy0xMi44IDM4LjRsLTM1LjIgNDYuOSAwIDExMiA0MC44IDY4LjFjNC43IDcuOCA3LjIgMTYuNyA3LjIgMjUuOCAwIDI3LjctMjIuNCA1MC4xLTUwLjEgNTAuMUw1MC4xIDUxMmMtMjcuNyAwLTUwLjEtMjIuNC01MC4xLTUwLjEgMC05LjEgMi41LTE4IDcuMi0yNS44TDQ4IDM2OCA0OCAyNTYgMTIuOCAyMDkuMUM0LjUgMTk4IDAgMTg0LjUgMCAxNzAuN0wwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMHpNNDguMyA0NjAuOGwtLjMgMS4xYzAgMS4yIDEgMi4xIDIuMSAyLjFsMjgzLjggMGMxLjIgMCAyLjEtMSAyLjEtMi4xbC0uMy0xLjEtMzYuNS02MC44LTIxNC40IDAtMzYuNSA2MC44ek00OCAxNzAuN2MwIDIuNiAuNiA1LjEgMS44IDcuNGwxLjQgMi4yIDAgMCAzNS4yIDQ2LjkgOS42IDEyLjggMCAxMTIgMTkyIDAgMC0xMTIgOS42LTEyLjggMzUuMi00Ni45IDAgMCAxLjQtMi4yYzEuMi0yLjMgMS44LTQuOCAxLjgtNy40bDAtMTIyLjctNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDEyMi43eiJdfSx3UD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtcXVlc3Rpb24iLGljb246WzUxMiw1MTIsWzYyMTA4LCJxdWVzdGlvbi1jaXJjbGUiXSwiZjA1OSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1Ni04MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDQ3LjItMzYgNjcuMi01NiA3NC41bDAgMy44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC4xYzAtMjAuNSAxNC44LTM1LjIgMzAuMS00MC4yIDYuNC0yLjEgMTMuMi01LjUgMTguMi0xMC4zIDQuMy00LjIgNy43LTEwIDcuNy0xOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyek0yMjQgMzY4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LER5ZT13UCxFeWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZSIsaWNvbjpbMzg0LDUxMixbMTI4MTk2LDEyODQ1OSw2MTQ2Ml0sImYxNWIiLCJNMTc2IDQ4TDY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0MC04OCAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTg4ek0zMTYuMSAxNjBMMjI0IDY3LjkgMjI0IDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2OC4xIDB6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDE5Ny41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTQxLjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHoiXX0sTVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk00MDAgNDA2LjFMNDAwIDI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE1Mi42Yy0yOC43IDE1LTYxLjQgMjMuNC05NiAyMy40cy02Ny4zLTguNS05Ni0yMy40TDE2MCAyODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTguMUM3Mi42IDM2OC4yIDQ4IDMxNSA0OCAyNTYgNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4czIwOCA5My4xIDIwOCAyMDhjMCA1OS0yNC42IDExMi4yLTY0IDE1MC4xek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTUyIDE5NmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE3MiAyMGMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHoiXX0sUHllPU1QLEl5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1taW51cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MiIsIk0xMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI4OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwem0zMiAxMzZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSx6UD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXRpcmVkIixpY29uOls1MTIsNTEyLFsxMjg1NTUsInRpcmVkIl0sImY1YzgiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzYuNSA2NC4zQzE5Ni4xIDMwMi4xIDIyMy44IDI4OCAyNTYgMjg4czU5LjkgMTQuMSA3OS41IDMyLjNjMTkgMTcuOCAzMi41IDQxLjcgMzIuNSA2My43IDAgNS40LTIuNyAxMC40LTcuMiAxMy40cy0xMC4yIDMuNC0xNS4yIDEuM2wtMTcuMi03LjVjLTIyLjgtMTAtNDcuNS0xNS4xLTcyLjQtMTUuMXMtNDkuNiA1LjItNzIuNCAxNS4xbC0xNy4yIDcuNWMtNC45IDIuMi0xMC43IDEuNy0xNS4yLTEuM3MtNy4yLTgtNy4yLTEzLjRjMC0yMiAxMy41LTQ1LjkgMzIuNS02My43ek0xMjIuNiAxNTkuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxOeWU9elAsRnllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImYwYTQiLCJNNDQ4IDEyOGwtMTc3LjYgMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTZsMCAxNiAxNzYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNnpNMjI0IDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjQgMGMtNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsMCA0OGMwIDUyLjUgMzMuNyA5Ny4xIDgwLjcgMTEzLjQtLjUtMy4xLS43LTYuMi0uNy05LjQgMC0yMCA5LjItMzcuOSAyMy42LTQ5LjctNC45LTktNy42LTE5LjQtNy42LTMwLjMgMC0xNS4xIDUuMy0yOSAxNC00MC04LjgtMTEtMTQtMjQuOS0xNC00MGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODB6TTE5MiA2NGwwIDBjMTggMCAzNC42IDYgNDggMTZsMjA4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTgyIDBjMS4zIDUuMSAyIDEwLjUgMiAxNiAwIDI1LjMtMTQuNyA0Ny4yLTM2IDU3LjYgMi42IDcgNCAxNC41IDQgMjIuNCAwIDIwLTkuMiAzNy45LTIzLjYgNDkuNyA0LjkgOSA3LjYgMTkuNCA3LjYgMzAuMyAwIDM1LjMtMjguNyA2NC02NCA2NGwtODggMEM3NS4yIDQ0OCAwIDM3Mi44IDAgMjgwbDAtNDhDMCAxMzkuMiA3NS4yIDY0IDE2OCA2NGwyNCAwem02NCAzMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNjQgMHptMTYtMTc2YzAgNS41LS43IDEwLjktMiAxNmwzNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAgMTZ6bS0yNCA2NGwtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw2NCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSxrUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtdXAiLGljb246WzUxMiw1MTIsWzYxNDY3LCJhcnJvdy1hbHQtY2lyY2xlLXVwIl0sImYzNWIiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMTA0IDEwNGMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNHM4LjMgOS45IDE0LjggOS45bDcyIDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTEwNCA3MiAwYzYuNSAwIDEyLjMtMy45IDE0LjgtOS45czEuMS0xMi45LTMuNS0xNy40bC0xMDQtMTA0eiJdfSxPeWU9a1AsUnllPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtc2Npc3NvcnMiLGljb246WzUxMiw1MTIsW10sImYyNTciLCJNLjIgMjc2LjNjLTEuMi0zNS4zIDI2LjQtNjUgNjEuNy02Ni4ybDMuMy0uMS04LjItMS44QzIyLjUgMjAwLjUgLjcgMTY2LjMgOC4zIDEzMS44UzUwLjIgNzUuNSA4NC43IDgzLjJsMTczIDM4LjNjMi4zLTIuOSA0LjYtNS43IDcuMS04LjVsMTguNC0yMC4zQzI5OS45IDc0LjUgMzIzLjUgNjQgMzQ4LjMgNjRsMTAuMiAwYzU0LjEgMCAxMDQuMSAyOC43IDEzMS4zIDc1LjRsMS41IDIuNmMxMy42IDIzLjIgMjAuNyA0OS43IDIwLjcgNzYuNkw1MTIgMzQ0YzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC0xMDQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yLjggLjItNS42IC41LTguMy0xOS40LTExLTMyLjUtMzEuOC0zMi41LTU1LjcgMC0uOCAwLTEuNiAwLTIuNEw2Ni40IDMzOGMtMzUuMyAxLjItNjUtMjYuNC02Ni4yLTYxLjd6bTYzLjQtMTguMmMtOC44IC4zLTE1LjcgNy43LTE1LjQgMTYuNnM3LjcgMTUuNyAxNi41IDE1LjRsMTYxLjUtNS42YzkuOC0uMyAxOC43IDUuMyAyMi43IDE0LjJzMi4yIDE5LjMtNC41IDI2LjRjLTIuOCAyLjktNC40IDYuNy00LjQgMTEgMCA4LjggNy4yIDE2IDE2IDE2IDkuMSAwIDE3LjQgNS4xIDIxLjUgMTMuM3MzLjIgMTcuOS0yLjMgMjUuMWMtMiAyLjctMy4yIDYtMy4yIDkuNiAwIDguOCA3LjIgMTYgMTYgMTZsMTA0IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0xMjUuNGMwLTE4LjQtNC45LTM2LjUtMTQuMi01Mi40bC0xLjUtMi42Yy0xOC42LTMyLTUyLjgtNTEuNi04OS44LTUxLjZsLTEwLjIgMGMtMTEuMyAwLTIyIDQuOC0yOS42IDEzLjFsMCAwLTE4LjQgMjAuM2MtLjYgLjYtMS4xIDEuMy0xLjcgMS45bDU3IDEzLjJjOC42IDIgMTQgMTAuNiAxMiAxOS4ycy0xMC42IDE0LTE5LjIgMTJMMjYyLjggMTcxLjggNzQuMyAxMzBjLTguNi0xLjktMTcuMiAzLjUtMTkuMSAxMi4yczMuNSAxNy4yIDEyLjIgMTkuMWwxODcuNSA0MS42YzEwLjIgMi4zIDE3LjggMTAuOSAxOC43IDIxLjRsLjEgMWMuNiA2LjYtMS41IDEzLjEtNS44IDE4LjFzLTEwLjYgNy45LTE3LjIgOC4yTDYzLjYgMjU4LjF6Il19LEJ5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJnZW0iLGljb246WzUxMiw1MTIsWzEyODE0Ml0sImYzYTUiLCJNMTY4LjUgNzJsODcuNSA5MyA4Ny41LTkzLTE3NSAwek0zODMuOSA5OS4xbC03Mi4zIDc2LjkgMTI5IDAtNTYuNi03Ni45em01MCAxMjQuOUw3OC4xIDIyNCAyNTYgNDIwLjMgNDMzLjkgMjI0ek03MS41IDE3NmwxMjkgMC03Mi4zLTc2LjktNTYuNiA3Ni45em00MzQuMyA0MC4xbC0yMzIgMjU2Yy00LjUgNS0xMSA3LjktMTcuOCA3LjlzLTEzLjItMi45LTE3LjgtNy45bC0yMzItMjU2Yy03LjctOC41LTguMy0yMS4yLTEuNS0zMC40bDExMi0xNTJjNC41LTYuMSAxMS43LTkuOCAxOS4zLTkuOGwyNDAgMGM3LjYgMCAxNC44IDMuNiAxOS4zIDkuOGwxMTIgMTUyYzYuOCA5LjIgNi4xIDIxLjktMS41IDMwLjR6Il19LCQ1PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InJlY3RhbmdsZS14bWFyayIsaWNvbjpbNTEyLDUxMixbNjIxNjQsInJlY3RhbmdsZS10aW1lcyIsInRpbWVzLXJlY3RhbmdsZSIsIndpbmRvdy1jbG9zZSJdLCJmNDEwIiwiTTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjU2YzAgOC44IDcuMiAxNiAxNiAxNmwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDExMnpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMzM0LjEgNDkuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNDQuMSA0NC4xIDQ0LjEgNDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00NC4xLTQ0LjEtNDQuMSA0NC4xYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ0LjEtNDQuMS00NC4xLTQ0LjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0NC4xIDQ0LjEgNDQuMS00NC4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxIeWU9JDUscXllPSQ1LFZ5ZT0kNSxQNT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0cmFzaC1jYW4iLGljb246WzQ0OCw1MTIsWzYxNDYwLCJ0cmFzaC1hbHQiXSwiZjJlZCIsIk0xNjYuMi0xNmMtMTMuMyAwLTI1LjMgOC4zLTMwIDIwLjhMMTIwIDQ4IDI0IDQ4QzEwLjcgNDggMCA1OC43IDAgNzJTMTAuNyA5NiAyNCA5Nmw0MDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMC0xNi4yLTQzLjJDMzA3LjEtNy43IDI5NS4yLTE2IDI4MS44LTE2TDE2Ni4yLTE2ek0zMiAxNDRsMCAzMDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMDQtNDggMCAwIDMwNGMwIDguOC03LjIgMTYtMTYgMTZMOTYgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0zMDQtNDggMHptMTYwIDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzZ6bTExMiAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNzZ6Il19LGp5ZT1QNSxVeWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibGlmZS1yaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMWNkIiwiTTM4NS4xIDQxOS4xQzM0OS43IDQ0Ny4yIDMwNC44IDQ2NCAyNTYgNDY0cy05My43LTE2LjgtMTI5LjEtNDQuOWw4MC40LTgwLjRjMTQuMyA4LjQgMzEgMTMuMyA0OC44IDEzLjNzMzQuNS00LjggNDguOC0xMy4zbDgwLjQgODAuNHptNjguMSAuMkM0ODkuOSAzNzQuOSA1MTIgMzE4LjEgNTEyIDI1NlM0ODkuOSAxMzcuMSA0NTMuMiA5Mi43TDQ2NSA4MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQxOS4zIDU4LjhDMzc0LjkgMjIuMSAzMTguMSAwIDI1NiAwUzEzNy4xIDIyLjEgOTIuNyA1OC44TDgxIDQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMzNy43IDcxLjYgNDcgODFMNTguOCA5Mi43QzIyLjEgMTM3LjEgMCAxOTMuOSAwIDI1NlMyMi4xIDM3NC45IDU4LjggNDE5LjNMNDcgNDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTEuOC0xMS44QzEzNy4xIDQ4OS45IDE5My45IDUxMiAyNTYgNTEyczExOC45LTIyLjEgMTYzLjMtNTguOEw0MzEgNDY1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTEuOC0xMS44em0tMzQuMS0zNC4xbC04MC40LTgwLjRjOC40LTE0LjMgMTMuMy0zMSAxMy4zLTQ4LjhzLTQuOC0zNC41LTEzLjMtNDguOGw4MC40LTgwLjRDNDQ3LjIgMTYyLjMgNDY0IDIwNy4yIDQ2NCAyNTZzLTE2LjggOTMuNy00NC45IDEyOS4xek0zODUuMSA5Mi45bC04MC40IDgwLjRjLTE0LjMtOC40LTMxLTEzLjMtNDguOC0xMy4zcy0zNC41IDQuOC00OC44IDEzLjNMMTI2LjkgOTIuOUMxNjIuMyA2NC44IDIwNy4yIDQ4IDI1NiA0OHM5My43IDE2LjggMTI5LjEgNDQuOXpNMTczLjMgMzA0LjhMOTIuOSAzODUuMUM2NC44IDM0OS43IDQ4IDMwNC44IDQ4IDI1NnMxNi44LTkzLjcgNDQuOS0xMjkuMWw4MC40IDgwLjRjLTguNCAxNC4zLTEzLjMgMzEtMTMuMyA0OC44czQuOCAzNC41IDEzLjMgNDguOHpNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSxXeWU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29weXJpZ2h0IixpY29uOls1MTIsNTEyLFsxNjldLCJmMWY5IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjA1LjEgMzA2LjljLTI4LjEtMjguMS0yOC4xLTczLjcgMC0xMDEuOHM3My43LTI4LjEgMTAxLjggMGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTQ2LjktNDYuOS0xMjIuOC00Ni45LTE2OS43IDBzLTQ2LjkgMTIyLjggMCAxNjkuNyAxMjIuOCA0Ni45IDE2OS43IDBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGMtMjguMSAyOC4xLTczLjcgMjguMS0xMDEuOCAweiJdfSxTUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbNjE4NDAsImFycm93LWFsdC1jaXJjbGUtbGVmdCJdLCJmMzU5IiwiTTQ4IDI1NmEyMDggMjA4IDAgMSAxIDQxNiAwIDIwOCAyMDggMCAxIDEgLTQxNiAwem00NjQgMGEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMTA0IDEwNGM0LjYgNC42IDExLjUgNS45IDE3LjQgMy41czkuOS04LjMgOS45LTE0LjhsMC03MiAxMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMDQgMCAwLTcyYzAtNi41LTMuOS0xMi4zLTkuOS0xNC44cy0xMi45LTEuMS0xNy40IDMuNWwtMTA0IDEwNHoiXX0sR3llPVNQLFl5ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNDggMzUyIDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTI2NCAwek00OCAyMjRsMCAxOTJjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE5Mi0zNTIgMHoiXX0sQ1A9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1mcm93bi1vcGVuIixpY29uOls1MTIsNTEyLFsxMjg1NTAsImZyb3duLW9wZW4iXSwiZjU3YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTE4Mi40IDM4Mi41Yy0xMi40IDUuMi0yNi41LTQuMS0yMS4xLTE2LjQgMTYtMzYuNiA1Mi40LTYyLjEgOTQuOC02Mi4xczc4LjggMjUuNiA5NC44IDYyLjFjNS40IDEyLjMtOC43IDIxLjYtMjEuMSAxNi40LTIyLjQtOS41LTQ3LjQtMTQuOC03My43LTE0LjhzLTUxLjMgNS4zLTczLjcgMTQuOHpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxaeWU9Q1AsX1A9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hhcnQtYmFyIixpY29uOls1MTIsNTEyLFsiYmFyLWNoYXJ0Il0sImYwODAiLCJNNDggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCA0Mi43IDAgNTZMMCA0MDBjMCA0NC4yIDM1LjggODAgODAgODBsNDA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODAgNDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMkw0OCA1NnptMTA0IDcybDIwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE1MiA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNzIgMHoiXX0sWHllPV9QLEE1PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhvdXNlIixpY29uOls1MTIsNTEyLFsxMjc5NjgsNjM0OTgsNjM1MDAsImhvbWUiLCJob21lLWFsdCIsImhvbWUtbGctYWx0Il0sImYwMTUiLCJNMjQwIDYuMWM5LjEtOC4yIDIyLjktOC4yIDMyIDBsMjMyIDIwOGM5LjkgOC44IDEwLjcgMjQgMS44IDMzLjlzLTI0IDEwLjctMzMuOSAxLjhsLTgtNy4yIDAgMjA1LjNjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIwNS4zLTggNy4yYy05LjkgOC44LTI1IDgtMzMuOS0xLjhzLTgtMjUgMS44LTMzLjlMMjQwIDYuMXptMTYgNTAuMUw5NiAxOTkuNyA5NiA0NDhjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDAgMC0xMDRjMC0zOS44IDMyLjItNzIgNzItNzJsNDggMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDEwNCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0OC4zLTE2MC0xNDMuNHpNMjA4IDQ2NGw5NiAwIDAtMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEwNHoiXX0sS3llPUE1LFF5ZT1BNSxKeWU9QTUsVFA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1mcm93biIsaWNvbjpbNTEyLDUxMixbOTc4NSwiZnJvd24iXSwiZjExOSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMzNC43IDM4NC42QzMxOS43IDM2OSAyOTMuNiAzNTIgMjU2IDM1MnMtNjMuNyAxNy03OC43IDMyLjZjLTkuMiA5LjYtMjQuNCA5LjktMzMuOSAuN3MtOS45LTI0LjQtLjctMzMuOWMyMi4xLTIzIDYwLTQ3LjQgMTEzLjMtNDcuNHM5MS4yIDI0LjQgMTEzLjMgNDcuNGM5LjIgOS42IDguOSAyNC44LS43IDMzLjlzLTI0LjggOC45LTMzLjktLjd6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sZXhlPVRQLFdmPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InVzZXIiLGljb246WzQ0OCw1MTIsWzEyODEwMCw2MjE0NCw2MjQ3MCwidXNlci1hbHQiLCJ1c2VyLWxhcmdlIl0sImYwMDciLCJNMTQ0IDEyOGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6bTIwOCAwYTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6TTQ4IDQ4MGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOGw5NiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOGMwLTk3LjItNzguOC0xNzYtMTc2LTE3NmwtOTYgMEM3OC44IDMwNCAwIDM4Mi44IDAgNDgwbDAgOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOHoiXX0sdHhlPVdmLGF4ZT1XZixpeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic25vd2ZsYWtlIixpY29uOls1MTIsNTEyLFsxMDA1MiwxMDA1NF0sImYyZGMiLCJNMjgwLjEtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDc4LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTcgNTcgMCA3Ni41LTY2LjItMzguMi0yMC45LTc3LjhjLTMuNC0xMi44LTE2LjYtMjAuNC0yOS40LTE3Uzk1LjIgOTggOTguNyAxMTAuOGw4LjQgMzEuNS02Ny42LTM5QzI4IDk2LjYgMTMuMyAxMDAuNSA2LjcgMTEyUzQgMTM4LjIgMTUuNSAxNDQuOGw2Ny42IDM5LTMxLjUgOC40Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w3Ny44LTIwLjkgNjYuMiAzOC4yLTY2LjIgMzguMi03Ny44LTIwLjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDMxLjUgOC40LTY3LjYgMzlDNCAzNzMuOCAuMSAzODguNSA2LjcgNDAwczIxLjMgMTUuNCAzMi44IDguOGw2Ny42LTM5LTguNCAzMS41Yy0zLjQgMTIuOCA0LjIgMjYgMTcgMjkuNHMyNi00LjIgMjkuNC0xN2wyMC45LTc3LjggNjYuMi0zOC4yIDAgNzYuNS01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDIzLTIzIDAgNzguMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzguMSAyMyAyM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU3LTU3IDAtNzYuNSA2Ni4yIDM4LjIgMjAuOSA3Ny44YzMuNCAxMi44IDE2LjYgMjAuNCAyOS40IDE3czIwLjQtMTYuNiAxNy0yOS40bC04LjQtMzEuNSA2Ny42IDM5YzExLjUgNi42IDI2LjIgMi43IDMyLjgtOC44czIuNy0yNi4yLTguOC0zMi44bC02Ny42LTM5IDMxLjUtOC40YzEyLjgtMy40IDIwLjQtMTYuNiAxNy0yOS40cy0xNi42LTIwLjQtMjkuNC0xN2wtNzcuOCAyMC45LTY2LjItMzguMiA2Ni4yLTM4LjIgNzcuOCAyMC45YzEyLjggMy40IDI2LTQuMiAyOS40LTE3cy00LjItMjYtMTctMjkuNGwtMzEuNS04LjQgNjcuNi0zOWMxMS41LTYuNiAxNS40LTIxLjMgOC44LTMyLjhzLTIxLjMtMTUuNC0zMi44LTguOGwtNjcuNiAzOSA4LjQtMzEuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTIwLjkgNzcuOC02Ni4yIDM4LjIgMC03Ni41IDU3LTU3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtNzguMXoiXX0scnhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJvb2ttYXJrIixpY29uOlszODQsNTEyLFsxMjgyNzgsNjE1OTFdLCJmMDJlIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDE3LjFjMCAyNS42LTI4LjUgNDAuOC00OS44IDI2LjZMMTkyIDQxMi44IDQ5LjggNTA3LjdDMjguNSA1MjEuOSAwIDUwNi42IDAgNDgxLjFMMCA2NHpNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4Ny4yIDExNy40LTc4LjJjMTYuMS0xMC43IDM3LjEtMTAuNyA1My4yIDBMMzM2IDQ1MS4yIDMzNiA2NGMwLTguOC03LjItMTYtMTYtMTZMNjQgNDh6Il19LExQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1sZWZ0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWxlZnQiXSwiZjE5MSIsIk00OCA0MTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMHptMTYgNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwem02NC0yMjRjMC02LjcgMi44LTEzIDcuNy0xNy42bDExMi0xMDRjNy02LjUgMTcuMi04LjIgMjUuOS00LjRTMjg4IDE0Mi41IDI4OCAxNTJsMCAyMDhjMCA5LjUtNS43IDE4LjItMTQuNCAyMnMtMTguOSAyLjEtMjUuOS00LjRsLTExMi0xMDRjLTQuOS00LjUtNy43LTEwLjktNy43LTE3LjZ6Il19LHN4ZT1MUCxHZj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzY0MCw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk01OTguMSA3NS40YzEwLjctNy44IDEzLjEtMjIuOCA1LjMtMzMuNXMtMjIuOC0xMy4xLTMzLjUtNS4zbC03NC41IDU0LjItOS45LTYuNkM0NjUuOCA3MSA0NDIuNiA2NCA0MTguOSA2NGwtNTkuMiAwLS40IDAtMTQzLjYgMGMtMjYuNyAwLTUyLjUgOC45LTczLjQgMjUuMUw3MC4xIDM2LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zcy01LjQgMjUuNyA1LjMgMzMuNWw4OCA2NGM5LjYgNi45IDIyLjcgNS45IDMxLjEtMi40bDMuOS0zLjljMTMuNS0xMy41IDMxLjgtMjEuMSA1MC45LTIxLjFsNDYuMyAwLTkxLjcgOTEuN2MtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZsLjggLjhDMjE4IDMwOCAyOTQgMzA4IDM0MC45IDI2MS4xbDI3LjEtMjcuMSA5Ny44IDk3LjhjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTkuOCA5LjgtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMjggMjhjLTE3LjUgMTAuNC0zNy4yIDE2LjctNTcuNiAxOC41TDMxMyAzOTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtMy44IDBjLTM2LjEgMC03MC43LTE0LjMtOTYuMi0zOS44TDY1IDI3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwxNjAuMiA0NDIuMWMzNC41IDM0LjUgODEuMyA1My45IDEzMC4xIDUzLjlsNTEuOCAwIDEgMSAxLTEgNS43IDBjNDguOCAwIDk1LjYtMTkuNCAxMzAuMS01My45bDE5LjktMTkuOWMxLjItMS4yIDIuMy0yLjMgMy40LTMuNSAuNy0uNSAxLjMtMS4xIDEuOS0xLjdMNjA5IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01My44IDUzLjhjLTQuMi0xMi44LTExLjMtMjQuOS0yMS41LTM1LjFMMzg1IDE4M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTQ0LjEgNDQuMWMtMjYuNSAyNi41LTY4LjUgMjgtOTYuNyA0LjZsOTguNy05OC43YzEzLjQtMTMuNCAzMS42LTIxIDUwLjYtMjEuMWw4LjUgMCAuMiAwIDUwLjggMGMxNC4yIDAgMjguMSA0LjIgMzkuOSAxMi4xTDQ4Mi43IDE0MGM4LjQgNS42IDE5LjMgNS4zIDI3LjQtLjZsODgtNjR6Il19LG54ZT1HZixveGU9R2YsJFA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zbWlsZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1MjEsInNtaWxlLXdpbmsiXSwiZjRkYSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LGx4ZT0kUCxBUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50LXRlYXJzIixpY29uOls1MTIsNTEyLFsxMjkzMTUsImdyaW4tc3F1aW50LXRlYXJzIl0sImY1ODYiLCJNNDAzLjEgNDAzLjFjNjcuMi02Ny4yIDc4LjgtMTY4LjkgMzQuOS0yNDhsMzYuNy01LjJjNC41LS42IDguOC0xLjYgMTMuMS0yLjggNDQuNiA5NC45IDI3LjcgMjExLjUtNTAuNyAyOTBzLTE5NS4xIDk1LjMtMjkwIDUwLjdjMS4yLTQuMiAyLjEtOC42IDIuOC0xMy4xbDUuMi0zNi43Yzc5LjEgNDMuOSAxODAuOCAzMi4zIDI0OC0zNC45ek03NSA3NWM3OC40LTc4LjQgMTk1LjEtOTUuMyAyOTAtNTAuNy0xLjIgNC4yLTIuMSA4LjYtMi44IDEzLjFsLTUuMiAzNi43Yy03OS4xLTQzLjktMTgwLjgtMzIuMy0yNDggMzQuOXMtNzguOCAxNjguOS0zNC45IDI0OGwtMzYuNyA1LjJjLTQuNSAuNi04LjggMS42LTEzLjEgMi44LTQ0LjYtOTQuOS0yNy43LTIxMS41IDUwLjctMjkwek0zNzAuOSAyMDYuNWM1LjgtMTAuOSAyMS4xLTEyLjQgMjYuNC0xLjMgMjUuNiA1My41IDE2LjIgMTE5LjYtMjguMiAxNjMuOS00NC4zIDQ0LjMtMTEwLjMgNTMuNy0xNjMuOCAyOC4yLTExLjEtNS4zLTkuNi0yMC42IDEuMy0yNi40IDMyLTE3LjEgNjQuMi00MC44IDkzLjgtNzAuNCAyOS43LTI5LjcgNTMuNC02MS45IDcwLjUtOTR6TTkzLjMgMjgxLjljLTEuNy04IDIuOS0xNS45IDEwLjYtMTguNGw4NC42LTI4YzUuNy0xLjkgMTIuMS0uNCAxNi4zIDMuOXM1LjggMTAuNiAzLjkgMTYuM2wtMjggODQuNmMtMi42IDcuNy0xMC41IDEyLjMtMTguNCAxMC42cy0xMy40LTktMTIuNy0xNy4xbDMuOS00My4xLTQzLjEgMy45Yy04LjEgLjctMTUuNS00LjctMTcuMS0xMi43ek0yOTQuNiAxMTAuNGwtMy45IDQzLjEgNDMuMS0zLjljOC4xLS43IDE1LjUgNC43IDE3LjEgMTIuN3MtMi45IDE1LjktMTAuNiAxOC40bC04NC42IDI4Yy01LjcgMS45LTEyLjEgLjQtMTYuMy0zLjlzLTUuOC0xMC42LTMuOS0xNi4zbDI4LTg0LjZjMi42LTcuNyAxMC41LTEyLjMgMTguNC0xMC42czEzLjQgOSAxMi43IDE3LjF6TTUxMiA1MS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQyMS4xIDEwOWMtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQxMy4zIDE4LjggNDM1IDAgNDYwLjYgMCA0ODkgMCA1MTIgMjMgNTEyIDUxLjR6TTQ0LjEgNDA5LjdMOTAuOSA0MDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDQ5My4yIDc3IDUxMiA1MS40IDUxMiAyMyA1MTIgMCA0ODkgMCA0NjAuNiAwIDQzNSAxOC44IDQxMy4zIDQ0LjEgNDA5Ljd6Il19LGN4ZT1BUCxkeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1hdWRpbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek0yMjEuOSAyNjcuNmMtNC43IDEwLS4zIDIxLjkgOS43IDI2LjYgMTkuMiA4LjkgMzIuNCAyOC4zIDMyLjQgNTAuOHMtMTMuMiA0MS45LTMyLjQgNTAuOGMtMTAgNC43LTE0LjQgMTYuNi05LjcgMjYuNnMxNi42IDE0LjQgMjYuNiA5LjdDMjgxLjIgNDE2LjggMzA0IDM4My42IDMwNCAzNDVzLTIyLjgtNzEuOS01NS42LTg3LjFjLTEwLTQuNy0yMS45LS4zLTI2LjYgOS43ek0xMDQgMzA1Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDAgMjcuMiAzNGMzIDMuOCA3LjYgNiAxMi41IDZsLjMgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0uMyAwYy00LjkgMC05LjUgMi4yLTEyLjUgNmwtMjcuMiAzNC0xNiAwek0yMjMuMyAzNzNjOS45LTUuNCAxNi43LTE2IDE2LjctMjguMXMtNi43LTIyLjctMTYuNy0yOC4xYy03LjgtNC4yLTE1LjMgMy4zLTE1LjMgMTIuMWwwIDMyYzAgOC44IDcuNiAxNi4zIDE1LjMgMTIuMXoiXX0sRFA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXIteG1hcmsiLGljb246WzQ0OCw1MTIsWyJjYWxlbmRhci10aW1lcyJdLCJmMjczIiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjg4YzAtOC44LTcuMi0xNi0xNi0xNmwtMjY0IDB6bTE3MS45IDkyLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0scHhlPURQLEVQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1kb3duIixpY29uOls1MTIsNTEyLFs2MTQ2NiwiYXJyb3ctYWx0LWNpcmNsZS1kb3duIl0sImYzNTgiLCJNMjU2IDQ2NGEyMDggMjA4IDAgMSAxIDAtNDE2IDIwOCAyMDggMCAxIDEgMCA0MTZ6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMjQ0LjcgMzg3LjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMTA0LTEwNGM0LjYtNC42IDUuOS0xMS41IDMuNS0xNy40UzM2Ni41IDI1NiAzNjAgMjU2bC03MiAwIDAtMTA0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDEwNC03MiAwYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsMTA0IDEwNHoiXX0saHhlPUVQLFlmPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtbGluZXMiLGljb246WzM4NCw1MTIsWzEyODQ0MSwxMjg0NjIsNjE2ODYsImZpbGUtYWx0IiwiZmlsZS10ZXh0Il0sImYxNWMiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptNTYgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LHV4ZT1ZZixmeGU9WWYsbXhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbW1lbnRzIixpY29uOls1NzYsNTEyLFsxMjg0OTAsNjE2NzBdLCJmMDg2IiwiTTc2LjIgMjU4LjdjNi4xLTE1LjIgNC0zMi42LTUuNi00NS45LTE0LjUtMjAuMS0yMi42LTQzLjctMjIuNi02OC44IDAtNjYuOCA2MC41LTEyOCAxNDQtMTI4czE0NCA2MS4yIDE0NCAxMjgtNjAuNSAxMjgtMTQ0IDEyOGMtMTUuOSAwLTMxLjEtMi4zLTQ1LjMtNi41LTEwLjMtMy4xLTIxLjQtMi41LTMxLjQgMS41bC01MC40IDIwLjIgMTEuNC0yOC41ek0wIDE0NGMwIDM1LjggMTEuNiA2OS4xIDMxLjcgOTYuOEwxLjkgMzE1LjJjLTEuMyAzLjItMS45IDYuNi0xLjkgMTAgMCAxNC44IDEyIDI2LjggMjYuOCAyNi44IDMuNCAwIDYuOC0uNyAxMC0xLjlsOTYuMy0zOC41YzE4LjYgNS41IDM4LjQgOC40IDU4LjkgOC40IDEwNiAwIDE5Mi03OC44IDE5Mi0xNzZTMjk4LTMyIDE5Mi0zMiAwIDQ2LjggMCAxNDR6TTM4NCA1MTJjMjAuNiAwIDQwLjMtMyA1OC45LTguNGw5Ni4zIDM4LjVjMy4yIDEuMyA2LjYgMS45IDEwIDEuOSAxNC44IDAgMjYuOC0xMiAyNi44LTI2LjggMC0zLjQtLjctNi44LTEuOS0xMGwtMjkuNy03NC40YzIwLTI3LjggMzEuNy02MS4xIDMxLjctOTYuOCAwLTgyLjQtNjEuNy0xNTEuNS0xNDUtMTcwLjctMS42IDE2LjMtNS4xIDMxLjktMTAuMSA0Ni45IDYzLjkgMTQuOCAxMDcuMiA2Ny4zIDEwNy4yIDEyMy45IDAgMjUuMS04LjEgNDguNy0yMi42IDY4LjgtOS42IDEzLjMtMTEuNyAzMC42LTUuNiA0NS45bDExLjQgMjguNS01MC40LTIwLjJjLTEwLTQtMjEuMS00LjUtMzEuNC0xLjUtMTQuMiA0LjItMjkuNCA2LjUtNDUuMyA2LjUtNzIuMiAwLTEyNy4xLTQ1LjctMTQwLjctMTAxLjItMTUuNiAzLjItMzEuNyA1LTQ4LjEgNS4yIDE2LjQgODEuOSA5NC43IDE0NCAxODguOCAxNDR6Il19LEk1PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbNjE1MzMsImNoZWNrLWNpcmNsZSJdLCJmMDU4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTQ2NGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6bTcwLjcgMTIxLjljNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zIDEwLjcgNy44IDEzLjEgMjIuOCA1LjMgMzMuNUwyNDMuNCAzNjYuMWMtNC4xIDUuNy0xMC41IDkuMy0xNy41IDkuOC03IC41LTEzLjktMi0xOC44LTYuOWwtNTUuOS01NS45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzYgMzYgMTA1LjYtMTQ1LjJ6Il19LGd4ZT1JNSxieGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibW9vbiIsaWNvbjpbNTEyLDUxMixbMTI3NzY5LDkyMTRdLCJmMTg2IiwiTTIzOS4zIDQ4LjdjLTEwNy4xIDguNS0xOTEuMyA5OC4xLTE5MS4zIDIwNy4zIDAgMTE0LjkgOTMuMSAyMDggMjA4IDIwOCAzMy4zIDAgNjQuNy03LjggOTIuNi0yMS43LTEwMy40LTIzLjQtMTgwLjYtMTE1LjgtMTgwLjYtMjI2LjMgMC02NS44IDI3LjQtMTI1LjEgNzEuMy0xNjcuM3pNMCAyNTZjMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiAxOS40IDAgMzguNCAyLjIgNTYuNyA2LjMgOS45IDIuMiAxNy4zIDEwLjUgMTguNSAyMC41cy00IDE5LjgtMTMuMSAyNC40Yy02MC42IDMwLjItMTAyLjEgOTIuNy0xMDIuMSAxNjQuOCAwIDEwMS42IDgyLjQgMTg0IDE4NCAxODQgNSAwIDkuOS0uMiAxNC44LS42IDEwLjEtLjggMTkuNiA0LjggMjMuOCAxNC4xczIgMjAuMS01LjMgMjcuMUMzODcuMyA0ODQuOCAzMjQuOCA1MTIgMjU2IDUxMiAxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NnoiXX0sdnhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNsb3NlZC1jYXB0aW9uaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMjBhIiwiTTQ0OCAxMTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6TTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em04OCAxNDRsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODBjMC00LjQgMy42LTggOC04em0xNjggOGMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4MGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtODB6Il19LHl4ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpbWFnZXMiLGljb246WzU3Niw1MTIsW10sImYzMDIiLCJNNDgwIDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZsLTMyMCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDMyMCAwek0xNjAgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAzMnptODAgMTEyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTE0MC43IDMuOGMtNC4zLTcuMy0xMi4yLTExLjgtMjAuNy0xMS44cy0xNi40IDQuNS0yMC43IDExLjhsLTQ2LjUgNzktMTcuMi0yNC42Yy00LjUtNi40LTExLjgtMTAuMi0xOS43LTEwLjJzLTE1LjIgMy44LTE5LjcgMTAuMmwtNTYgODBjLTUuMSA3LjMtNS44IDE2LjktMS42IDI0LjhTMTkxLjEgMzIwIDIwMCAzMjBsMjQwIDBjOC42IDAgMTYuNi00LjYgMjAuOC0xMi4xczQuMi0xNi43LS4xLTI0LjFsLTgwLTEzNnpNNDggMTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTM4LjcgMCAxNTJMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzYwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yOTZ6Il19LFBQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6bTM4Ny4zIDExLjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTEwNC0xMDRjLTQuNi00LjYtMTEuNS01LjktMTcuNC0zLjVTMjU2IDE0NS41IDI1NiAxNTJsMCA3Mi0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDcyYzAgNi41IDMuOSAxMi4zIDkuOSAxNC44czEyLjkgMS4xIDE3LjQtMy41bDEwNC0xMDR6Il19LHh4ZT1QUCxJUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpZC1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0NywiZHJpdmVycy1saWNlbnNlIl0sImYyYzIiLCJNNDggNDE2bDAtMjU2IDQ4MCAwIDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTkyIDBjMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwbC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOCAzMTJhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTM3NiAyMDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAweiJdfSx3eGU9SVAsTlA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXBsYXkiLGljb246WzUxMiw1MTIsWzYxNDY5LCJwbGF5LWNpcmNsZSJdLCJmMTQ0IiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjEyLjUgMTQ3LjVjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNVMxNzYgMTU5LjMgMTc2IDE2OGwwIDE3NmMwIDguNyA0LjcgMTYuNyAxMi4zIDIwLjlzMTYuOCA0LjEgMjQuMy0uNWwxNDQtODhjNy4xLTQuNCAxMS41LTEyLjEgMTEuNS0yMC41cy00LjQtMTYuMS0xMS41LTIwLjVsLTE0NC04OHpNMjk4IDI1NmwtNzQgNDUuMiAwLTkwLjQgNzQgNDUuMnoiXX0sTXhlPU5QLEZQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSx6eGU9RlAsT1A9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWRkcmVzcy1ib29rIixpY29uOls1MTIsNTEyLFs2MjEzOCwiY29udGFjdC1ib29rIl0sImYyYjkiLCJNMzg0IDQ4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDM4NGMwIDguOC03LjIgMTYtMTYgMTZMOTYgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMODAgNjRjMC04LjggNy4yLTE2IDE2LTE2bDI4OCAwek05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6TTI0MCAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bS0zMiA0MGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpNNTEyIDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0ek00OTYgMTkyYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2em0xNiAxNDRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6Il19LGt4ZT1PUCxSUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTI0IDBDMTAuNyAwIDAgMTAuNyAwIDI0UzEwLjcgNDggMjQgNDhsOCAwIDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsODEuNSA4MS41LTgxLjUgODEuNUM0OCAzNjYgMzIgNDA0LjcgMzIgNDQ1bDAgMTktOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtODEuNS04MS41IDgxLjUtODEuNUMzMzYgMTQ2IDM1MiAxMDcuMyAzNTIgNjdsMC0xOSA4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzczLjMgMCAzNjAgMEwyNCAwek0xOTIgMjg5LjlsODEuNSA4MS41QzI5MyAzOTEgMzA0IDQxNy40IDMwNCA0NDVsMCAxOS0yMjQgMCAwLTE5YzAtMjcuNiAxMS01NCAzMC41LTczLjVMMTkyIDI4OS45em0wLTY3LjlsLTgxLjUtODEuNUM5MSAxMjEgODAgOTQuNiA4MCA2N2wwLTE5IDIyNCAwIDAgMTljMCAyNy42LTExIDU0LTMwLjUgNzMuNUwxOTIgMjIyLjF6Il19LFN4ZT1SUCxaZj17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoZWFkcGhvbmVzIixpY29uOls0NDgsNTEyLFsxMjc5MTEsNjI4NjMsImhlYWRwaG9uZXMtYWx0IiwiaGVhZHBob25lcy1zaW1wbGUiXSwiZjAyNSIsIk00OCAyMjRjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZzMTc2IDc4LjggMTc2IDE3NmwwIDQ0LjhjLTE0LjEtOC4yLTMwLjUtMTIuOC00OC0xMi44bC0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0xNjBDNDQ4IDEwMC4zIDM0Ny43IDAgMjI0IDBTMCAxMDAuMyAwIDIyNEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xMjhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDBjLTE3LjUgMC0zMy45IDQuNy00OCAxMi44TDQ4IDIyNHptMCAxMjhjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwIDEyOC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMyem0zNTIgMGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNiAwIDAtMTI4IDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6Il19LEN4ZT1aZixfeGU9WmYsVHhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtcG93ZXJwb2ludCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNCIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem04OCAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTI4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAyOCAwYzM3LjYgMCA2OC0zMC40IDY4LTY4cy0zMC40LTY4LTY4LTY4bC01MiAwem01MiA4OGwtMjggMCAwLTQwIDI4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIweiJdfSxMeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToid2luZG93LW1heGltaXplIixpY29uOls1MTIsNTEyLFsxMjg0NzBdLCJmMmQwIiwiTTQ4IDIyNGwwIDE2MGMwIDguOCA3LjIgMTYgMTYgMTZsMzg0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTYwLTQxNiAwek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4eiJdfSxCUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50LWRvdHMiLGljb246WzUxMiw1MTIsWzEyODE3Miw2MjA3NSwiY29tbWVudGluZyJdLCJmNGFkIiwiTTAgMjQwYzAgNTQuNCAxOS4zIDEwNC42IDUxLjkgMTQ0LjlMMy4xIDQ3NC4zYy0yIDMuNy0zLjEgNy45LTMuMSAxMi4yIDAgMTQuMSAxMS40IDI1LjUgMjUuNSAyNS41IDQgMCA3LjgtLjYgMTEuNS0yLjFMMTUzLjQgNDYwYzMxLjQgMTIuOSA2Ni4xIDIwIDEwMi42IDIwIDE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwek05NCA0MDcuOWM5LjMtMTcuMSA3LjQtMzguMS00LjgtNTMuMi0yNi4xLTMyLjMtNDEuMi03MS45LTQxLjItMTE0LjcgMC0xMDMuMiA5MC4yLTE5MiAyMDgtMTkyczIwOCA4OC44IDIwOCAxOTItOTAuMiAxOTItMjA4IDE5MmMtMzAuMiAwLTU4LjctNS45LTg0LjMtMTYuNC0xMS45LTQuOS0yNS4zLTQuOC0zNy4xIC4zTDc2IDQ0MC45IDk0IDQwNy45ek0xNDQgMjcyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTQ0LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTgwIDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sJHhlPUJQLEhQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10b25ndWUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTQwLCJncmluLXRvbmd1ZS13aW5rIl0sImY1OGIiLCJNMzY2LjkgNDMyYy44LTUuMiAxLjEtMTAuNiAxLjEtMTZsMC01My41YzEwLjItMTIuNiAxOC4zLTI2LjkgMjMuOC00Mi41IDQuMS0xMS42LTcuOC0yMS40LTE5LjYtMTcuOC0zNC44IDEwLjYtNzQuMyAxNi42LTExNi4zIDE2LjYtNDEuOSAwLTgxLjQtNi0xMTYuMS0xNi41LTExLjgtMy42LTIzLjcgNi4xLTE5LjYgMTcuOCA1LjUgMTUuNSAxMy42IDI5LjkgMjMuOCA0Mi40bDAgNTMuNWMwIDUuNCAuNCAxMC44IDEuMSAxNi01OC40LTM2LjgtOTcuMS0xMDEuOS05Ny4xLTE3NiAwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGMwIDc0LjEtMzguOCAxMzkuMi05Ny4xIDE3NnptLTM4LjggNjkuN0M0MzQuNCA0NzAuNiA1MTIgMzcyLjMgNTEyIDI1NiA1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2QzAgMzcyLjMgNzcuNiA0NzAuNiAxODMuOSA1MDEuNyAyMDMuNCA1MTguMSAyMjguNSA1MjggMjU2IDUyOHM1Mi42LTkuOSA3Mi4xLTI2LjN6TTMyMCAzNzguNmwwIDM3LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRsMC0zNy40YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42bDIgMGMxMS4zIDAgMjEuMSA3LjkgMjMuNiAxOC45IDIuOCAxMi42IDIwLjggMTIuNiAyMy42IDAgMi41LTExLjEgMTIuMy0xOC45IDIzLjYtMTguOWwyIDBjMTQuNyAwIDI2LjYgMTEuOSAyNi42IDI2LjZ6TTEzMiAyMzJjMC0xMSA5LTIwIDIwLTIwbDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjB6bTIyOC40LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTI4OCAyMDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMTI4IDBhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAweiJdfSxBeGU9SFAscVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91cmdsYXNzLWhhbGYiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMiJdLCJmMjUyIiwiTTAgMjRDMCAxMC43IDEwLjcgMCAyNCAwTDM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAxOWMwIDQwLjMtMTYgNzktNDQuNSAxMDcuNWwtODEuNSA4MS41IDgxLjUgODEuNUMzMzYgMzY2IDM1MiA0MDQuNyAzNTIgNDQ1bDAgMTkgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0xOWMwLTQwLjMgMTYtNzkgNDQuNS0xMDcuNWw4MS41LTgxLjUtODEuNS04MS41QzQ4IDE0NiAzMiAxMDcuMyAzMiA2N2wwLTE5LTggMEMxMC43IDQ4IDAgMzcuMyAwIDI0ek0xMTAuNSAzNzEuNWMtMy45IDMuOS03LjUgOC4xLTEwLjcgMTIuNWwxODQuNCAwYy0zLjItNC40LTYuOC04LjYtMTAuNy0xMi41bC04MS41LTgxLjUtODEuNSA4MS41ek04MC44IDQzMmMtLjUgNC4zLS44IDguNi0uOCAxM2wwIDE5IDIyNCAwIDAtMTljMC00LjQtLjMtOC43LS44LTEzTDgwLjggNDMyek0yNTQuMSAxNjBsLTEyNC4xIDAgNjIuMSA2Mi4xIDYyLjEtNjIuMXptMzkuNy00OEMzMDAuNCA5OC4xIDMwNCA4Mi43IDMwNCA2N2wwLTE5LTIyNCAwIDAgMTljMCAxNS43IDMuNiAzMS4xIDEwLjIgNDVsMjAzLjUgMHoiXX0sRHhlPXFQLFZQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTQ0OCAxMTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzItNDE2IDAgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6bTE2IDExMmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjAgNDE2IDB6TTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek04MCAzNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTE0NCAwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxFeGU9VlAsUHhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtc3BvY2siLGljb246WzUxMiw1MTIsWzEyODQwNl0sImYyNTkiLCJNMTM4LjMgODAuOGMtOS4yLTMzLjggMTAuNS02OC44IDQ0LjMtNzguNCAzNC05LjYgNjkuNCAxMC4yIDc5IDQ0LjJMMjkxLjkgMTUzLjcgMzA1LjEgODRjNi42LTM0LjcgNDAuMS01Ny41IDc0LjgtNTAuOSAzMS40IDYgNTMgMzMuOSA1MiA2NC45IDEwLTIuNiAyMC44LTIuOCAzMS41LS4xIDM0LjMgOC42IDU1LjEgNDMuMyA0Ni42IDc3LjZMNDU0LjcgMzk3LjJDNDM3LjggNDY0LjcgMzc3LjIgNTEyIDMwNy42IDUxMmwtMzMuNyAwYy01Ni45IDAtMTEyLjItMTktMTU3LjItNTMuOWwtOTItNzEuNmMtMjcuOS0yMS43LTMyLjktNjEuOS0xMS4yLTg5LjhzNjEuOS0zMi45IDg5LjgtMTEuMmwxNyAxMy4yLTUxLjgtMTMxLjJjLTEzLTMyLjkgMy4yLTcwLjEgMzYtODMgMTEuMS00LjQgMjIuNy01LjQgMzMuNy0zLjd6bTc3LjEtMjEuMmMtMi40LTguNS0xMS4yLTEzLjQtMTkuNy0xMXMtMTMuNCAxMS4yLTExIDE5LjdsNTQuOCAxODIuNGMzLjUgMTIuMy0zLjMgMjUuMi0xNS40IDI5LjNzLTI1LjMtMi0zMC0xMy45TDE0Mi45IDEzOC4xYy0zLjItOC4yLTEyLjUtMTIuMy0yMC44LTlzLTEyLjMgMTIuNS05IDIwLjhsNzMuMyAxODUuNmMxMiAzMC4zLTIzLjcgNTctNDkuNCAzN0w3My44IDMyMy40Yy03LTUuNC0xNy00LjItMjIuNSAyLjhzLTQuMiAxNyAyLjggMjIuNWw5MiA3MS42YzM2LjUgMjguNCA4MS40IDQzLjggMTI3LjcgNDMuOGwzMy43IDBjNDcuNSAwIDg5LTMyLjQgMTAwLjUtNzguNWw1NS40LTIyMS42YzIuMS04LjYtMy4xLTE3LjMtMTEuNi0xOS40cy0xNy4zIDMuMS0xOS40IDExLjZsLTI2IDEwNGMtMi45IDExLjctMTMuNCAxOS45LTI1LjUgMTkuOS0xNi41IDAtMjguOS0xNS0yNS44LTMxLjJMMzgzLjcgOTljMS43LTguNy00LTE3LjEtMTIuNy0xOC43UzM1NCA4NC4zIDM1Mi4zIDkzTDMyMC41IDI2MGMtMi4yIDExLjYtMTIuNCAyMC0yNC4yIDIwLTExIDAtMjAuNy03LjMtMjMuNy0xNy45TDIxNS40IDU5LjZ6Il19LEl4ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJiZWxsLXNsYXNoIixpY29uOls1NzYsNTEyLFsxMjgyNzcsNjE5NDNdLCJmMWY2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg3LjgtODcuOGMxNy41LTMuMyAzMC44LTE4LjcgMzAuOC0zNy4xIDAtNi43LTEuOC0xMy4zLTUuMS0xOUw0ODUgMzIxLjdjLTE5LTMyLjYtMjktNjkuNi0yOS0xMDcuM2wwLTE0LjVjMC04NC42LTYyLjYtMTU0LjctMTQ0LTE2Ni4zbDAtOS43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOS43Yy00Mi4yIDYtNzkuNCAyNy44LTEwNS40IDU5LjFMNDEtMjQuOXpNMTkyLjggMTI2LjlDMjE0LjcgOTguNCAyNDkuMiA4MCAyODggODAgMzU0LjMgODAgNDA4IDEzMy43IDQwOCAyMDBsMCAxNC41YzAgNDYuMiAxMi4zIDkxLjUgMzUuNSAxMzEuNGwxMi45IDIyLjEtMjIuNiAwLTI0MS4xLTI0MS4xek0xMzIuNSAzNDUuOWMxOS41LTMzLjQgMzEuMy03MC43IDM0LjYtMTA5bC00Ni43LTQ2LjdjLS4yIDMuMy0uMyA2LjYtLjMgOS45bDAgMTQuNWMwIDM3LjctMTAgNzQuNy0yOSAxMDcuM0w2OS4xIDM1OS4yYy0zLjQgNS44LTUuMSAxMi4zLTUuMSAxOSAwIDIwLjkgMTYuOSAzNy44IDM3LjggMzcuOGwyNDQuNCAwLTQ4LTQ4LTE3OC42IDAgMTIuOS0yMi4xek0yMjAuMSA0NjRjOS45IDI4IDM2LjYgNDggNjcuOSA0OHM1OC0yMCA2Ny45LTQ4bC0xMzUuOCAweiJdfSxOeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3RhciIsaWNvbjpbNTc2LDUxMixbMTEwODgsNjE0NDZdLCJmMDA1IiwiTTI4OC4xLTMyYzkgMCAxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4ycy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXptMCA3Ni44TDIzMC4zIDE1OGMtMy41IDYuOC0xMCAxMS42LTE3LjYgMTIuOGwtMTI1LjUgMjAgODkuOCA4OS45YzUuNCA1LjQgNy45IDEzLjEgNi43IDIwLjdsLTE5LjggMTI1LjUgMTEzLjMtNTcuNmM2LjgtMy41IDE0LjktMy41IDIxLjggMGwxMTMuMyA1Ny42LTE5LjgtMTI1LjVjLTEuMi03LjYgMS4zLTE1LjMgNi43LTIwLjdsODkuOC04OS45LTEyNS41LTIwYy03LjYtMS4yLTE0LjEtNi0xNy42LTEyLjhMMjg4LjEgNDQuOHoiXX0sRnhlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZsYWciLGljb246WzQ0OCw1MTIsWzEyNzk4OCw2MTcyNV0sImYwMjQiLCJNNDggMjRDNDggMTAuNyAzNy4zIDAgMjQgMFMwIDEwLjcgMCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAwIDgwLjMtMjAuMWM0MS4xLTEwLjMgODQuNi01LjUgMTIyLjUgMTMuNCA0NC4yIDIyLjEgOTUuNSAyNC44IDE0MS43IDcuNGwzNC43LTEzYzEyLjUtNC43IDIwLjgtMTYuNiAyMC44LTMwbDAtMjc5LjdjMC0yMy0yNC4yLTM4LTQ0LjgtMjcuN2wtOS42IDQuOGMtNDYuMyAyMy4yLTEwMC44IDIzLjItMTQ3LjEgMC0zNS4xLTE3LjYtNzUuNC0yMi0xMTMuNS0xMi41TDQ4IDUyIDQ4IDI0em0wIDc3LjVsOTYuNi0yNC4yYzI3LTYuNyA1NS41LTMuNiA4MC40IDguOCA1NC45IDI3LjQgMTE4LjcgMjkuNyAxNzUgNi44bDAgMjQxLjgtMjQuNCA5LjFjLTMzLjcgMTIuNi03MS4yIDEwLjctMTAzLjQtNS40LTQ4LjItMjQuMS0xMDMuMy0zMC4xLTE1NS42LTE3LjFsLTY4LjYgMTcuMiAwLTIzN3oiXX0sT3hlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImxlbW9uIixpY29uOls0NDgsNTEyLFsxMjc4MTldLCJmMDk0IiwiTTM2OCA4MGMtMy4yIDAtNi4yIC40LTguOSAxLjMtMTkuMSA1LjUtNDYuMSAxMC43LTc0LjMgMy4zLTU3LjQtMTQuOS0xMjQuNiA3LjQtMTc0LjcgNTcuNVMzNy43IDI1OS40IDUyLjYgMzE2LjhjNy4zIDI4LjIgMi4yIDU1LjItMy4zIDc0LjMtLjggMi44LTEuMyA1LjgtMS4zIDguOSAwIDE3LjcgMTQuMyAzMiAzMiAzMiAzLjIgMCA2LjItLjQgOC45LTEuMyAxOS4xLTUuNSA0Ni4xLTEwLjcgNzQuMy0zLjMgNTcuNCAxNC45IDEyNC42LTcuNCAxNzQuNy01Ny41czcyLjQtMTE3LjMgNTcuNS0xNzQuN2MtNy4zLTI4LjItMi4yLTU1LjIgMy4zLTc0LjMgLjgtMi44IDEuMy01LjggMS4zLTguOSAwLTE3LjctMTQuMy0zMi0zMi0zMnptMC00OGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDcuNy0xLjEgMTUuMi0zLjEgMjIuMy00LjYgMTUuOC03LjEgMzIuOS0zIDQ4LjkgMjAuMSA3Ny42LTEwLjkgMTYxLjUtNzAgMjIwLjdzLTE0My4xIDkwLjItMjIwLjcgNzBjLTE2LTQuMS0zMy0xLjYtNDguOSAzLTcuMSAyLTE0LjYgMy4xLTIyLjMgMy4xLTQ0LjIgMC04MC0zNS44LTgwLTgwIDAtNy43IDEuMS0xNS4yIDMuMS0yMi4zIDQuNi0xNS44IDcuMS0zMi45IDMtNDguOS0yMC4xLTc3LjYgMTAuOS0xNjEuNSA3MC0yMjAuN1MyMTkuMyAxOCAyOTYuOCAzOC4xYzE2IDQuMSAzMyAxLjYgNDguOS0zIDcuMS0yIDE0LjYtMy4xIDIyLjMtMy4xek0yNDYuNyAxNjdjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43LTMuNyAxMi43LTE3LjEgMjAtMjkuOCAxNi4zUzg1LjIgMjc4IDg5IDI2NS4zYzE5LjgtNjcuNyA3Ni42LTEyNC41IDE0NC4zLTE0NC4zIDEyLjctMy43IDI2LjEgMy42IDI5LjggMTYuM3MtMy42IDI2LjEtMTYuMyAyOS44eiJdfSxSeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToid2luZG93LXJlc3RvcmUiLGljb246WzU3Niw1MTIsW10sImYyZDIiLCJNNTEyIDgwTDIyNCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTYtNDggMCAwLTE2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OCAwIDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTJjMC04LjgtNy4yLTE2LTE2LTE2ek0zNjggMjg4bC0zMjAgMCAwIDEyOGMwIDguOCA3LjIgMTYgMTYgMTZsMjg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4ek02NCAxNjBsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0salA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLWhlYXJ0cyIsaWNvbjpbNTEyLDUxMixbMTI4NTI1LCJncmluLWhlYXJ0cyJdLCJmNTg0IiwiTTQ2NCAyNTZjMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzQ4IDM3MC45IDQ4IDI1NmMwLTMuNSAuMS03LjEgLjMtMTAuNi0xNC0xMy45LTI5LjctMzMuMS0zOS4zLTU2LjctNS44IDIxLjQtOC45IDQ0LTguOSA2Ny4zIDAgMTQxLjQgMTE0LjYgMjU2IDI1NiAyNTZTNTEyIDM5Ny40IDUxMiAyNTZjMC0yMy4zLTMuMS00NS45LTguOS02Ny4zLTkuNiAyMy43LTI1LjQgNDIuOC0zOS4zIDU2LjcgLjIgMy41IC4zIDcgLjMgMTAuNnpNMzY4IDU4LjljMTEuNy02IDI0LjUtOS42IDM3LjctMTAuNi00Mi4xLTMwLjQtOTMuOC00OC4zLTE0OS43LTQ4LjNTMTQ4LjQgMTcuOSAxMDYuMyA0OC4zYzEzLjIgMSAyNiA0LjYgMzcuNyAxMC42IDEzLjgtNy4xIDI5LjMtMTAuOSA0NS4xLTEwLjlsMi45IDBjOC45IDAgMTcuNiAxLjIgMjUuOCAzLjUgMTIuNC0yLjMgMjUuMi0zLjUgMzguMi0zLjVzMjUuOCAxLjIgMzguMiAzLjVjOC4yLTIuMyAxNi45LTMuNSAyNS44LTMuNWwyLjkgMGMxNS44IDAgMzEuMyAzLjggNDUuMSAxMC45em00LjIgMjQzLjRjLTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDE5LjggNTUuOSA3My4xIDk1LjkgMTM1LjggOTUuOSA2Mi43IDAgMTE2LTQwLjEgMTM1LjgtOTYgNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44ek0zMjIuOSA5NkwzMjAgOTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgNTMuNCA2Ni45IDk1LjcgODkgMTA4LjIgNC40IDIuNSA5LjYgMi41IDE0IDAgMjIuMS0xMi41IDg5LTU0LjggODktMTA4LjIgMC0yNi41LTIxLjUtNDgtNDgtNDhsLTIuOSAwYy0xMy41IDAtMjYuNSA1LjQtMzYgMTQuOWwtOS4xIDkuMS05LjEtOS4xYy05LjUtOS41LTIyLjUtMTQuOS0zNi0xNC45em0tMTg4IDE0LjljLTkuNS05LjUtMjIuNS0xNC45LTM2LTE0LjlMOTYgOTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgNTMuNCA2Ni45IDk1LjcgODkgMTA4LjIgNC40IDIuNSA5LjYgMi41IDE0IDAgMjIuMS0xMi41IDg5LTU0LjggODktMTA4LjIgMC0yNi41LTIxLjUtNDgtNDgtNDhsLTIuOSAwYy0xMy41IDAtMjYuNSA1LjQtMzYgMTQuOWwtOS4xIDkuMS05LjEtOS4xeiJdfSxCeGU9alAsVVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNDAgMTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTY0LTkyYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sSHhlPVVQLHF4ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXBkZiIsaWNvbjpbNTc2LDUxMixbXSwiZjFjMSIsIk0yMDggNDhMOTYgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsODAgMCAwIDQ4LTgwIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMjI5LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzOTcuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgMTQ5LjUtNDggMCAwLTEyOC04OCAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTg4ek0zNDguMSAxNjBMMjU2IDY3LjkgMjU2IDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2OC4xIDB6TTI0MCAzODBsMzIgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MHMtMjYuOSA2MC02MCA2MGwtMTIgMCAwIDI4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTEyOGMwLTExIDktMjAgMjAtMjB6bTMyIDgwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtMTIgMCAwIDQwIDEyIDB6bTk2LTgwbDMyIDBjMjguNyAwIDUyIDIzLjMgNTIgNTJsMCA2NGMwIDI4LjctMjMuMyA1Mi01MiA1MmwtMzIgMGMtMTEgMC0yMC05LTIwLTIwbDAtMTI4YzAtMTEgOS0yMCAyMC0yMHptMzIgMTI4YzYuNiAwIDEyLTUuNCAxMi0xMmwwLTY0YzAtNi42LTUuNC0xMi0xMi0xMmwtMTIgMCAwIDg4IDEyIDB6bTc2LTEwOGMwLTExIDktMjAgMjAtMjBsNDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTI4IDAgMCAyNCAyOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtMjggMCAwIDQ0YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTEyOHoiXX0sV1A9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXdpZGUiLGljb246WzUxMiw1MTIsWzEyODUxNSwiZ3Jpbi1hbHQiXSwiZjU4MSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTIyNCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjQgMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0em05NiA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LFZ4ZT1XUCxHUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWxhdWdoLXNxdWludCIsaWNvbjpbNTEyLDUxMixbImxhdWdoLXNxdWludCJdLCJmNTliIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTI1LjIgNzYuNGMtNi41LTE0IDUtMjguNCAyMC40LTI4LjRsMjIwLjggMGMxNS40IDAgMjYuOCAxNC40IDIwLjQgMjguNC0yMi44IDQ5LjQtNzIuOCA4My42LTEzMC44IDgzLjZzLTEwNy45LTM0LjItMTMwLjgtODMuNnptLTIuNi0xNzMuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxqeGU9R1AsWVA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1raXNzLXdpbmstaGVhcnQiLGljb246WzY0MCw1MTIsWzEyODUzNiwia2lzcy13aW5rLWhlYXJ0Il0sImY1OTgiLCJNMzg2IDQzOS41Yy0yOS4yIDE1LjYtNjIuNSAyNC41LTk4IDI0LjUtMTE0LjkgMC0yMDgtOTMuMS0yMDgtMjA4UzE3My4yIDQ4IDI4OCA0OGMxMTMuMiAwIDIwNS4yIDkwLjQgMjA3LjkgMjAyLjkgMTQuMyAxLjUgMjguNiA2IDQxLjkgMTMuNyAyIDEuMiA0IDIuNCA1LjkgMy43IC4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy01LjgtMTIuOS0xMi0yOC41LTE3LjItNDUuMnpNMjU2IDI4OGMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC0xMi4zLTQuNi0yMy41LTEyLjItMzIgNy42LTguNSAxMi4yLTE5LjcgMTIuMi0zMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0tNDgtNDhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNTItNDRsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwek01NDIuOCAzNTBjLTIuMi0xOC4zLTEyLjktMzQuNi0yOC45LTQzLjgtMjguMS0xNi4yLTYzLjktNi42LTgwLjEgMjEuNWwtMi43IDQuNmMtMjQuNSA0Mi41IDcuOSAxMTcuOSAyNC40IDE1MC44IDUuMSAxMC4xIDE1LjUgMTYuMSAyNi44IDE1LjUgMzYuNy0yLjIgMTE4LjItMTEuNyAxNDIuOC01NC4ybDIuNy00LjZjMTYuMi0yOC4xIDYuNi02My45LTIxLjUtODAuMS0xNi05LjItMzUuNC0xMC40LTUyLjQtMy4xbC05LjggNC4yLTEuMy0xMC42eiJdfSxVeGU9WVAsS2Y9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29weSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjNSIsIk0zODQgMzM2bC0xOTIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxMzMuNSAwYzQuMiAwIDguMyAxLjcgMTEuMyA0LjdsNTguNSA1OC41YzMgMyA0LjcgNy4xIDQuNyAxMS4zTDQwMCAzMjBjMCA4LjgtNy4yIDE2LTE2IDE2ek0xOTIgMzg0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTk3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzcwLjcgMTguN0MzNTguNyA2LjcgMzQyLjUgMCAzMjUuNSAwTDE5MiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTQ4IDAgMCAxNmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDE2IDAgMC00OC0xNiAweiJdfSxXeGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3Mta2luZyIsaWNvbjpbNDQ4LDUxMixbOTgxOF0sImY0M2YiLCJNMjI0LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDgwIDE2MS44IDBjMjEuMSAwIDM4LjIgMTcuMSAzOC4yIDM4LjIgMCA2LjQtMS42IDEyLjctNC43IDE4LjNMMzU3LjIgMzc0LjUgNDA1LjYgNDM1YzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNiAwIDI2LjItMjEuMiA0Ny40LTQ3LjQgNDcuNEw3OS40IDUxMmMtMjYuMiAwLTQ3LjQtMjEuMi00Ny40LTQ3LjQgMC0xMC44IDMuNy0yMS4yIDEwLjQtMjkuNkw5MC44IDM3NC41IDQuNyAyMTYuNkMxLjYgMjEwLjkgMCAyMDQuNiAwIDE5OC4yIDAgMTc3LjEgMTcuMSAxNjAgMzguMiAxNjBsMTYxLjggMCAwLTgwLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xMzEuOCA0MDBsLTMuNiA0LjQtNDcuNiA1OS42IDI4Ni42IDAtNDcuNi01OS42LTMuNi00LjQtMTg0LjMgMHptMS4xLTQ4LjVsLjMgLjUgMTgxLjYgMCAuMy0uNSA3OC4zLTE0My41LTMzOC43IDAgNzguMyAxNDMuNXoiXX0sWlA9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0yMDAgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sR3hlPVpQLFl4ZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLWNvZGUiLGljb246WzM4NCw1MTIsW10sImYxYzkiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNMTcwLjIgMjk1LjZjOC42LTEwLjEgNy41LTI1LjItMi42LTMzLjhzLTI1LjItNy41LTMzLjggMi42bC00OCA1NmMtNy43IDktNy43IDIyLjIgMCAzMS4ybDQ4IDU2YzguNiAxMC4xIDIzLjggMTEuMiAzMy44IDIuNnMxMS4yLTIzLjggMi42LTMzLjhsLTM0LjYtNDAuNCAzNC42LTQwLjR6bTgwLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LFhQPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aW5rIixpY29uOls1MTIsNTEyLFsiZ3Jpbi13aW5rIl0sImY1OGMiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6Il19LFp4ZT1YUCxLUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtb25leS1iaWxsLTEiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLWFsdCJdLCJmM2QxIiwiTTExMiAxMTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMjg4IDBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMC0xNjBjLTM1LjMgMC02NC0yOC43LTY0LTY0bC0yODggMHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptMjU2IDE2YTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHptLTE2IDQ0Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSxYeGU9S1AsS3hlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImV5ZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZjA3MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05Ni40LTk2LjRjMi43LTIuNCA1LjQtNC44IDgtNy4yIDQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42LTU2LjggMC0xMDUuNiAxOC4yLTE0NiA0NC4yTDQxLTI0Ljl6TTE3Ni45IDExMS4xYzMyLjEtMTguOSA2OS4yLTMxLjEgMTExLjEtMzEuMSA2NS4yIDAgMTE4LjggMjkuNiAxNTkuOSA2Ny43IDM4LjUgMzUuNyA2NS4xIDc4LjMgNzguNiAxMDguMy0xMy42IDMwLTQwLjIgNzIuNS03OC42IDEwOC4zLTMuMSAyLjgtNi4yIDUuNi05LjQgOC40TDM5My44IDMyOGMxNC0yMC41IDIyLjItNDUuMyAyMi4yLTcyIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4LTI2LjcgMC01MS41IDguMi03MiAyMi4ybC0zOS4xLTM5LjF6bTE4MiAxODJsLTEwOC0xMDhjMTEuMS01LjggMjMuNy05LjEgMzcuMS05LjEgNDQuMiAwIDgwIDM1LjggODAgODAgMCAxMy40LTMuMyAyNi05LjEgMzcuMXpNMTAzLjQgMTczLjJsLTM0LTM0Yy0zMi42IDM2LjgtNTUgNzUuOC02Ni45IDEwNC41LTMuMyA3LjktMy4zIDE2LjcgMCAyNC42IDE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjEgNDcuMSA0My43IDExMS44IDgwLjYgMTkyLjYgODAuNiAzNy4zIDAgNzEuMi03LjkgMTAxLjUtMjAuNkwzNTIuMiA0MjJjLTIwIDYuNC00MS40IDEwLTY0LjIgMTAtNjUuMiAwLTExOC44LTI5LjYtMTU5LjktNjcuNy0zOC41LTM1LjctNjUuMS03OC4zLTc4LjYtMTA4LjMgMTAuNC0yMy4xIDI4LjYtNTMuNiA1NC04Mi44eiJdfSxReGU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS13b3JkIixpY29uOlszODQsNTEyLFtdLCJmMWMyIiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTcxLjMgMjc0LjJjLTMuMi0xMi45LTE2LjItMjAuNy0yOS4xLTE3LjVTODUuNSAyNzMgODguNyAyODUuOGwzMiAxMjhjMi41IDEwLjIgMTEuNCAxNy41IDIxLjkgMTguMXMyMC4xLTUuNyAyMy44LTE1LjVsMjUuNS02OC4xIDI1LjUgNjguMWMzLjcgOS44IDEzLjMgMTYuMSAyMy44IDE1LjVzMTkuNC03LjkgMjEuOS0xOC4xbDMyLTEyOGMzLjItMTIuOS00LjYtMjUuOS0xNy41LTI5LjFzLTI1LjkgNC42LTI5LjEgMTcuNWwtMTMuMyA1My4yLTIwLjktNTUuOEMyMTEgMjYyLjIgMjAyIDI1NiAxOTIgMjU2cy0xOSA2LjItMjIuNSAxNS42bC0yMC45IDU1LjgtMTMuMy01My4yeiJdfSxRUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWFuZ3J5IixpY29uOls1MTIsNTEyLFsxMjg1NDQsImFuZ3J5Il0sImY1NTYiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTE0NGMyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MHMtNzUuNyAxOS44LTk3LjUgNTBjLTcuNyAxMC44LTUuMyAyNS44IDUuNSAzMy41czI1LjggNS4zIDMzLjUtNS41YzEzLjEtMTguMiAzNC40LTMwIDU4LjUtMzB6bS04MC05NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLS4zIDkuNyAzLjJjMTAuNSAzLjUgMjEuOC0yLjIgMjUuMy0xMi42cy0yLjItMjEuOC0xMi42LTI1LjNsLTk2LTMyYy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zbDI4LjkgOS42Yy00LjEgNS40LTYuNiAxMi4xLTYuNiAxOS40IDAgMTcuNyAxNC4zIDMyIDMyIDMyem0xOTItMzJjMC03LjMtMi40LTE0LTYuNi0xOS40bDI4LjktOS42YzEwLjUtMy41IDE2LjEtMTQuOCAxMi42LTI1LjNzLTE0LjgtMTYuMS0yNS4zLTEyLjZsLTk2IDMyYy0xMC41IDMuNS0xNi4xIDE0LjgtMTIuNiAyNS4zczE0LjggMTYuMSAyNS4zIDEyLjZsOS43LTMuMiAwIC4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LEp4ZT1RUCxld2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2hlc3Mta25pZ2h0IixpY29uOls0NDgsNTEyLFs5ODIyXSwiZjQ0MSIsIk0yMzItMzJjMTEwLjUgMCAyMDAgODkuNSAyMDAgMjAwbDAgMTI3LjdjMCAxOC45LTYuMSAzNy4xLTE3LjIgNTIuMmwtNS4xIDYuMi0zNi4zIDQwLjcgMzIuMSA0MC4yYzYuNyA4LjQgMTAuNCAxOC44IDEwLjQgMjkuNmwtLjIgNC44Yy0yLjQgMjMuOS0yMi42IDQyLjUtNDcuMSA0Mi41bC0yODkuMiAwLTQuOC0uMmMtMjMuOS0yLjQtNDIuNS0yMi42LTQyLjUtNDcuMSAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDM3LjYtNDcgMC0yNC4zYzAtMjQuMyAxMC4xLTQ3LjYgMjcuOC02NC4ybDYzLjUtNTkuNS0xNy40IDAtLjIgLjJjLTIwLjMgMjAuMy00OS42IDI4LjItNzcuMSAyMS4xbC01LjUtMS42Yy0zMC45LTEwLjMtNTIuMy0zOC01NC45LTcwLjFsLS4yLTYuNCAwLTEuNGMwLTE5LjcgNy4xLTM4LjggMTkuOS01My44bDc2LjEtODguOCAwLTQ3LjEgLjEtMi41QzExMy40LTIyLjYgMTIzLjYtMzIgMTM2LTMybDk2IDB6TTgwLjcgNDY0bDI4Ni42IDAtMzguNC00OC0yMDkuOSAwLTM4LjQgNDh6TTE2MCA0OGMwIDUuNy0yLjEgMTEuMy01LjggMTUuNkw3Mi4zIDE1OS4xQzY3IDE2NS40IDY0IDE3My40IDY0IDE4MS43bDAgMS40IC40IDUuMmMxLjkgMTEuOSAxMC4zIDIxLjkgMjEuOSAyNS44bDQuNSAxLjFjMTAuNSAxLjkgMjEuMy0xLjQgMjktOWw3LjItNy4yIDMuNy0zYzMuOS0yLjYgOC41LTQgMTMuMy00bDg4IDBjOS44IDAgMTguNyA2IDIyLjMgMTUuMnMxLjMgMTkuNi01LjkgMjYuM2wtMTA3LjggMTAxYy04LjEgNy42LTEyLjcgMTguMS0xMi43IDI5LjJsMCA0LjMgMjA1LjIgMCA0MC43LTQ1LjggMi4zLTIuOGM1LjEtNi44IDcuOC0xNS4yIDcuOC0yMy43TDM4NCAxNjhjMC04My45LTY4LjEtMTUyLTE1Mi0xNTJsLTcyIDAgMCAzMnptMzIgNzJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4eiJdfSxKUD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTE2LCJncmluLWJlYW0iXSwiZjU4MiIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSx0d2U9SlAsYXdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTIxOSAxLjRjLTM1LjItMy43LTY2LjYgMjEuOC03MC4zIDU3bC02LjQgNjAuNi0xNy40LTQ5LjRDMTEzLjIgMzYuMyA3Ni42IDE4LjggNDMuMyAzMC41Uy03LjYgNzguOCA0LjEgMTEyLjFMNTYuOSAyNjIuMkM0MS43IDI3Ni43IDMyLjIgMjk3LjMgMzIuMiAzMjBsMCAyNGMwIDkyLjggNzUuMiAxNjggMTY4IDE2OGw0OCAwYzkyLjggMCAxNjgtNzUuMiAxNjgtMTY4bDAtMTIwYzAtMzUuMy0yOC43LTY0LTY0LTY0LTcuOSAwLTE1LjQgMS40LTIyLjQgNC0xMC40LTIxLjMtMzIuMy0zNi01Ny42LTM2LS43IDAtMS41IDAtMi4yIDBsNS45LTU2LjNjMy43LTM1LjItMjEuOC02Ni42LTU3LTcwLjN6bS0uMiAxNTUuNGMtNi42IDEwLjEtMTAuNSAyMi4yLTEwLjUgMzUuMmwwIDQ4YzAgLjcgMCAxLjQgMCAyLTUuMS0xLjMtMTAuNS0yLTE2LTJsLTcuNCAwLTUuNC0xNS4zIDE3LTE2MS4zYy45LTguOCA4LjgtMTUuMiAxNy42LTE0LjJzMTUuMiA4LjggMTQuMiAxNy42bC05LjUgOTAuMXpNNzkuNiA4NS42bDU0LjMgMTU0LjQtMjEuNyAwYy00IDAtOCAuMy0xMS45IC45TDQ5LjQgOTYuMmMtMi45LTguMyAxLjUtMTcuNSA5LjgtMjAuNHMxNy41IDEuNSAyMC40IDkuOHpNMjU2LjIgMTkyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4em0zOC40IDEwOGMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2IDUuNSAwIDEwLjktLjcgMTYtMmwwIDEwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC00OCAwYy02Ni4zIDAtMTIwLTUzLjctMTIwLTEyMGwwLTI0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDgwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGMzNS4zIDAgNjQtMjguNyA2NC02NCAwLS43IDAtMS40IDAtMiA1LjEgMS4zIDEwLjUgMiAxNiAyIDcuOSAwIDE1LjQtMS40IDIyLjQtNHptNzMuNi0yOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OHoiXX0saXdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbXBhc3MiLGljb246WzUxMiw1MTIsWzEyOTUxN10sImYxNGUiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMDYuNyA2OS4xTDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4zIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0scndlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZSIsaWNvbjpbNDQ4LDUxMixbOTYzMiw5NzIzLDk3MjQsNjE1OTBdLCJmMGM4IiwiTTM4NCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMjBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sZUk9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluIixpY29uOls1MTIsNTEyLFsxMjg1MTIsImdyaW4iXSwiZjU4MCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sc3dlPWVJLHRJPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUiLGljb246WzUxMiw1MTIsWzEyODU3OCwic21pbGUiXSwiZjExOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LG53ZT10SSxhST17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTc3LjMgNjMuNEMxOTIuMyAzMzUgMjE4LjQgMzUyIDI1NiAzNTJzNjMuNy0xNyA3OC43LTMyLjZjOS4yLTkuNiAyNC40LTkuOSAzMy45LS43czkuOSAyNC40IC43IDMzLjljLTIyLjEgMjMtNjAgNDcuNC0xMTMuMyA0Ny40cy05MS4yLTI0LjQtMTEzLjMtNDcuNGMtOS4yLTkuNi04LjktMjQuOCAuNy0zMy45czI0LjgtOC45IDMzLjkgLjd6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxvd2U9YUksbHdlPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQwMEw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE0NCA0MTYgMCAwIDE0NGMwIDguOC03LjIgMTYtMTYgMTZ6bTE2LTIwOGwtNDE2IDAgMC05NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjUwLjcgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2TDQ0OCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDh6TTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxjd2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNzYgMzIwbDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptLTcyLTcyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LGlJPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utcm9sbGluZy1leWVzIixpY29uOls1MTIsNTEyLFsxMjg1ODAsIm1laC1yb2xsaW5nLWV5ZXMiXSwiZjVhNSIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAzNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMTYwIDI2NGMtMjIuMSAwLTQwLTE3LjktNDAtNDAgMC05LjUgMy4zLTE4LjEgOC44LTI1IDMuMiAxNC4zIDE2IDI1IDMxLjIgMjVzMjgtMTAuNyAzMS4yLTI1YzUuNSA2LjggOC44IDE1LjUgOC44IDI1IDAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDQwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xOTItNDBjLTIyLjEgMC00MC0xNy45LTQwLTQwIDAtOS41IDMuMy0xOC4xIDguOC0yNSAzLjIgMTQuMyAxNiAyNSAzMS4yIDI1czI4LTEwLjcgMzEuMi0yNWM1LjUgNi44IDguOCAxNS41IDguOCAyNSAwIDIyLjEtMTcuOSA0MC00MCA0MHptMCA0MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sZHdlPWlJLHJJPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3JpbWFjZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU2LCJncmltYWNlIl0sImY1N2YiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnpNNTEyIDI1NmEyNTYgMjU2IDAgMSAxIC01MTIgMCAyNTYgMjU2IDAgMSAxIDUxMiAwek0xNTIgMzUyYzAgMTEuOSA4LjYgMjEuOCAyMCAyMy43bDAtNDcuM2MtMTEuNCAxLjktMjAgMTEuOC0yMCAyMy43em04NCAyNGwwLTQ4LTI0IDAgMCA0OCAyNCAwem02NCAwbDAtNDgtMjQgMCAwIDQ4IDI0IDB6bTQwLS4zYzExLjQtMS45IDIwLTExLjggMjAtMjMuN3MtOC42LTIxLjgtMjAtMjMuN2wwIDQ3LjN6TTE3NiAyODhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTE2MCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0em0wLTExMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxwd2U9ckksc0k9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLWRvdCIsaWNvbjpbNTEyLDUxMixbMTI4MjgwLCJkb3QtY2lyY2xlIl0sImYxOTIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtNDY0YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnptMCAzMDRhOTYgOTYgMCAxIDEgMC0xOTIgOTYgOTYgMCAxIDEgMCAxOTJ6Il19LGh3ZT1zSSx1d2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToib2JqZWN0LWdyb3VwIixpY29uOls1NzYsNTEyLFtdLCJmMjQ3IiwiTTQwIDY0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTQ4IDU5LjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNsMzI5LjMgMGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDI2NS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMzI5LjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0yNjUuM3pNNTEyIDBjLTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEwxMjMuMyA0MEMxMTMuOSAxNi41IDkwLjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NCAwIDkwLjkgMTYuNSAxMTMuOSA0MCAxMjMuM2wwIDI2NS4zYy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDMyOS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTI2NS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NHpNNDg4IDY0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTY0IDQyNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQyNCAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0xOTIgMTc2bDg4IDAgMCA1Ni04OCAwIDAtNTZ6bS04LTQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDcyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwem03MiAxODRsMCAyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNCAwYzAgMTQuNi0zLjkgMjguMi0xMC43IDQwbDI2LjcgMCAwIDU2LTg4IDAgMC0xNi40Yy0yLjYgLjMtNS4zIC40LTggLjRsLTMyIDB6Il19LG5JPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTE2MCAyNDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yMTYtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTkyIDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDB6TTE2MCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0wIDEyOGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTQ0LTgwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTEyOCAwYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHoiXX0sZndlPW5JLG9JPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMzA5LjUtMTguOWMtNC4xLTgtMTIuNC0xMy4xLTIxLjQtMTMuMXMtMTcuMyA1LjEtMjEuNCAxMy4xTDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjg4LjEgNDE3LjYgNDMyLjQgNDkxYzggNC4xIDE3LjcgMy4zIDI1LTJzMTEtMTQuMiA5LjYtMjMuMkw0NDEuNyAzMDUuOSA1NTYuMSAxOTEuNGM2LjQtNi40IDguNi0xNS44IDUuOC0yNC40cy0xMC4xLTE0LjktMTkuMS0xNi4zTDM4MyAxMjUuMyAzMDkuNS0xOC45ek0yNjQuMSA5MS44bDAgMjg0LjEtMTAwLjEgNTAuOSAxOS44LTEyNS41YzEuMi03LjYtMS4zLTE1LjMtNi43LTIwLjdsLTg5LjgtODkuOSAxMjUuNS0yMGM3LjYtMS4yIDE0LjEtNiAxNy42LTEyLjhsMzMuOC02Ni4yem00OCAyODQuMWwwLTI4NC4xIDMzLjggNjYuMmMzLjUgNi44IDEwIDExLjYgMTcuNiAxMi44bDEyNS41IDIwLTg5LjggODkuOWMtNS40IDUuNC03LjkgMTMuMS02LjcgMjAuN2wxOS44IDEyNS41LTEwMC4xLTUwLjl6Il19LG13ZT1vSSxnd2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS12aWRlbyIsaWNvbjpbMzg0LDUxMixbXSwiZjFjOCIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek04MCAyODhsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMjQgMzUgMzVjMy4yIDMuMiA3LjUgNSAxMiA1IDkuNCAwIDE3LTcuNiAxNy0xN2wwLTk0LjFjMC05LjQtNy42LTE3LTE3LTE3LTQuNSAwLTguOCAxLjgtMTIgNWwtMzUgMzUgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LGxJPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2giLGljb246WzUxMiw1MTIsWyJsYXVnaCJdLCJmNTk5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMTE4LjMgNTguMmMtNC4yLTEzLjcgNy4xLTI2LjIgMjEuNC0yNi4ybDIzMi42IDBjMTQuMyAwIDI1LjYgMTIuNSAyMS40IDI2LjItMTggNTguOS03Mi45IDEwMS44LTEzNy43IDEwMS44UzEzNi4zIDM3My4xIDExOC4zIDMxNC4yek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGJ3ZT1sSSx2d2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludGVyIixpY29uOls0NDgsNTEyLFtdLCJmMjVhIiwiTTE2MCA2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTAuMyA2LjYgMTkuNSAxNi40IDIyLjhzMjAuNi0uMSAyNi44LTguM2MzLTMuOSA3LjYtNi40IDEyLjgtNi40IDguOCAwIDE2IDcuMiAxNiAxNiAwIDEwLjMgNi42IDE5LjUgMTYuNCAyMi44czIwLjYtLjEgMjYuOC04LjNjMy0zLjkgNy42LTYuNCAxMi44LTYuNCA3LjggMCAxNC4zIDUuNiAxNS43IDEzIDEuNiA4LjIgNy4zIDE1LjEgMTUuMSAxOHMxNi43IDEuNiAyMy4zLTMuNmMyLjctMi4xIDYuMS0zLjQgOS45LTMuNCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxMjBjMCAzOS44LTMyLjIgNzItNzIgNzJsLTExNi42IDBjLTM3LjQgMC03Mi40LTE4LjctOTMuMi00OS45TDUwLjcgMzEyLjljLTQuOS03LjQtMi45LTE3LjMgNC40LTIyLjJzMTcuMy0yLjkgMjIuMiA0LjRMMTE2IDM1My4yYzUuOSA4LjggMTYuOCAxMi43IDI2LjkgOS43czE3LTEyLjQgMTctMjNMMTYwIDY0ek0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAxOTcuN0M5MS4yIDIzOCA1NS41IDIzMi44IDI4LjUgMjUwLjctLjkgMjcwLjQtOC45IDMxMC4xIDEwLjggMzM5LjVMNzguMyA0NDAuOGMyOS43IDQ0LjUgNzkuNiA3MS4yIDEzMy4xIDcxLjJMMzI4IDUxMmM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwwLTEyMGMwLTM1LjMtMjguNy02NC02NC02NC00LjUgMC04LjggLjUtMTMgMS4zLTExLjctMTUuNC0zMC4yLTI1LjMtNTEtMjUuMy02LjkgMC0xMy41IDEuMS0xOS43IDMuMS0xMS42LTE2LjQtMzAuNy0yNy4xLTUyLjMtMjcuMS0yLjcgMC01LjQgLjItOCAuNUwyNDAgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTQ4IDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2eiJdfSx5d2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicmVnaXN0ZXJlZCIsaWNvbjpbNTEyLDUxMixbMTc0XSwiZjI1ZCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwMCAxNDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NiAzNC40IDAgNDEgNjguM2M2LjggMTEuNCAyMS42IDE1IDMyLjkgOC4yczE1LTIxLjYgOC4yLTMyLjlsLTMwLjItNTAuM2MyNC42LTExLjUgNDEuNi0zNi40IDQxLjYtNjUuMyAwLTM5LjgtMzIuMi03Mi03Mi03MmwtODAgMHptNzIgOTZsLTQ4IDAgMC00OCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDB6Il19LE1qdD17ZmFTcXVhcmVNaW51czpIRSxmYU1pbnVzU3F1YXJlOmF2ZSxmYUNhbGVuZGFyQ2hlY2s6aXZlLGZhRmFjZUtpc3M6cUUsZmFLaXNzOnJ2ZSxmYVBhc3RlOkQ1LGZhRmlsZUNsaXBib2FyZDpzdmUsZmFIYW5kUG9pbnRMZWZ0Om52ZSxmYUZpbGVFeGNlbDpvdmUsZmFFbnZlbG9wZTpsdmUsZmFTcXVhcmVDYXJldERvd246VkUsZmFDYXJldFNxdWFyZURvd246Y3ZlLGZhVHJ1Y2s6ZHZlLGZhQmVsbDpwdmUsZmFNZXNzYWdlOkU1LGZhQ29tbWVudEFsdDpodmUsZmFGYWNlRGl6enk6akUsZmFEaXp6eTp1dmUsZmFDYWxlbmRhckRheXM6VUUsZmFDYWxlbmRhckFsdDpmdmUsZmFIYW5kUG9pbnRVcDptdmUsZmFIYW5kTGl6YXJkOmd2ZSxmYVNxdWFyZUZ1bGw6YnZlLGZhQ2lyY2xlUGF1c2U6V0UsZmFQYXVzZUNpcmNsZTp2dmUsZmFIYXJkRHJpdmU6R0UsZmFIZGQ6eXZlLGZhRmlsZVppcHBlcjpZRSxmYUZpbGVBcmNoaXZlOnh2ZSxmYUZsb3BweURpc2s6WkUsZmFTYXZlOnd2ZSxmYUZhY2VHcmluVG9uZ3VlU3F1aW50OlhFLGZhR3JpblRvbmd1ZVNxdWludDpNdmUsZmFDYW1lcmE6S0UsZmFDYW1lcmFBbHQ6enZlLGZhRmFjZUdyaW5TdGFyczpRRSxmYUdyaW5TdGFyczprdmUsZmFFeWU6U3ZlLGZhRmFjZVNhZFRlYXI6SkUsZmFTYWRUZWFyOkN2ZSxmYVNoYXJlRnJvbVNxdWFyZTplUCxmYVNoYXJlU3F1YXJlOl92ZSxmYU5vdGVTdGlja3k6dFAsZmFTdGlja3lOb3RlOlR2ZSxmYUhhbmRCYWNrRmlzdDphUCxmYUhhbmRSb2NrOkx2ZSxmYUNoZXNzUXVlZW46JHZlLGZhRmFjZUdyaW5UZWFyczppUCxmYUdyaW5UZWFyczpBdmUsZmFQZW5Ub1NxdWFyZTpyUCxmYUVkaXQ6RHZlLGZhRmFjZUdyaW5CZWFtU3dlYXQ6c1AsZmFHcmluQmVhbVN3ZWF0OkV2ZSxmYUNsb2NrOm5QLGZhQ2xvY2tGb3VyOlB2ZSxmYUZhY2VMYXVnaFdpbms6b1AsZmFMYXVnaFdpbms6SXZlLGZhUGFwZXJQbGFuZTpOdmUsZmFIZWFydDpGdmUsZmFGb250QXdlc29tZTpxZixmYUZvbnRBd2Vzb21lRmxhZzpPdmUsZmFGb250QXdlc29tZUxvZ29GdWxsOlJ2ZSxmYUNsb25lOkJ2ZSxmYUZvbGRlck9wZW46SHZlLGZhV2luZG93TWluaW1pemU6cXZlLGZhU3RhckhhbGY6VnZlLGZhQWxhcm1DbG9jazpqdmUsZmFOZXdzcGFwZXI6VXZlLGZhSG9zcGl0YWw6VmYsZmFIb3NwaXRhbEFsdDpXdmUsZmFIb3NwaXRhbFdpZGU6R3ZlLGZhQ2lyY2xlU3RvcDpsUCxmYVN0b3BDaXJjbGU6WXZlLGZhT2JqZWN0VW5ncm91cDpadmUsZmFDb21tZW50Olh2ZSxmYUNoZXNzUGF3bjpLdmUsZmFDYWxlbmRhclBsdXM6UXZlLGZhQ2xpcGJvYXJkOkp2ZSxmYVRodW1ic0Rvd246ZXllLGZhSWRCYWRnZTp0eWUsZmFTcXVhcmVDaGVjazpjUCxmYUNoZWNrU3F1YXJlOmF5ZSxmYUNoZXNzQmlzaG9wOml5ZSxmYUVudmVsb3BlT3BlbjpyeWUsZmFDaXJjbGVYbWFyazpjbCxmYVRpbWVzQ2lyY2xlOnN5ZSxmYVhtYXJrQ2lyY2xlOm55ZSxmYVNxdWFyZUNhcmV0VXA6ZFAsZmFDYXJldFNxdWFyZVVwOm95ZSxmYUZpbGVJbWFnZTpseWUsZmFTcXVhcmVDYXJldFJpZ2h0OnBQLGZhQ2FyZXRTcXVhcmVSaWdodDpjeWUsZmFTdW46WGYsZmFJbWFnZTpkeWUsZmFMaWdodGJ1bGI6cHllLGZhQWRkcmVzc0NhcmQ6amYsZmFDb250YWN0Q2FyZDpoeWUsZmFWY2FyZDp1eWUsZmFGYWNlTWVoOmhQLGZhTWVoOmZ5ZSxmYU1hcDpteWUsZmFIYW5kUG9pbnREb3duOmd5ZSxmYUZhY2VNZWhCbGFuazp1UCxmYU1laEJsYW5rOmJ5ZSxmYUZhY2VHcmluVG9uZ3VlOmZQLGZhR3JpblRvbmd1ZTp2eWUsZmFGdXRib2w6VWYsZmFGdXRib2xCYWxsOnl5ZSxmYVNvY2NlckJhbGw6eHllLGZhRmFjZVN1cnByaXNlOm1QLGZhU3VycHJpc2U6d3llLGZhRm9sZGVyOmdQLGZhRm9sZGVyQmxhbms6TXllLGZhQ2xvdWQ6enllLGZhQ2lyY2xlOmt5ZSxmYUZhY2VHcmluU3F1aW50OmJQLGZhR3JpblNxdWludDpTeWUsZmFDaXJjbGVVc2VyOnZQLGZhVXNlckNpcmNsZTpDeWUsZmFSZWN0YW5nbGVMaXN0OnlQLGZhTGlzdEFsdDpfeWUsZmFIYW5kOnhQLGZhSGFuZFBhcGVyOlR5ZSxmYVRodW1ic1VwOkx5ZSxmYUJ1aWxkaW5nOiR5ZSxmYUNoZXNzUm9vazpBeWUsZmFDaXJjbGVRdWVzdGlvbjp3UCxmYVF1ZXN0aW9uQ2lyY2xlOkR5ZSxmYUZpbGU6RXllLGZhRmFjZVNhZENyeTpNUCxmYVNhZENyeTpQeWUsZmFDYWxlbmRhck1pbnVzOkl5ZSxmYUZhY2VUaXJlZDp6UCxmYVRpcmVkOk55ZSxmYUhhbmRQb2ludFJpZ2h0OkZ5ZSxmYUNpcmNsZVVwOmtQLGZhQXJyb3dBbHRDaXJjbGVVcDpPeWUsZmFIYW5kU2Npc3NvcnM6UnllLGZhR2VtOkJ5ZSxmYVJlY3RhbmdsZVhtYXJrOiQ1LGZhUmVjdGFuZ2xlVGltZXM6SHllLGZhVGltZXNSZWN0YW5nbGU6cXllLGZhV2luZG93Q2xvc2U6VnllLGZhVHJhc2hDYW46UDUsZmFUcmFzaEFsdDpqeWUsZmFMaWZlUmluZzpVeWUsZmFDb3B5cmlnaHQ6V3llLGZhQ2lyY2xlTGVmdDpTUCxmYUFycm93QWx0Q2lyY2xlTGVmdDpHeWUsZmFDYWxlbmRhcjpZeWUsZmFGYWNlRnJvd25PcGVuOkNQLGZhRnJvd25PcGVuOlp5ZSxmYUNoYXJ0QmFyOl9QLGZhQmFyQ2hhcnQ6WHllLGZhSG91c2U6QTUsZmFIb21lOkt5ZSxmYUhvbWVBbHQ6UXllLGZhSG9tZUxnQWx0Okp5ZSxmYUZhY2VGcm93bjpUUCxmYUZyb3duOmV4ZSxmYVVzZXI6V2YsZmFVc2VyQWx0OnR4ZSxmYVVzZXJMYXJnZTpheGUsZmFTbm93Zmxha2U6aXhlLGZhQm9va21hcms6cnhlLGZhU3F1YXJlQ2FyZXRMZWZ0OkxQLGZhQ2FyZXRTcXVhcmVMZWZ0OnN4ZSxmYUhhbmRzaGFrZTpHZixmYUhhbmRzaGFrZUFsdDpueGUsZmFIYW5kc2hha2VTaW1wbGU6b3hlLGZhRmFjZVNtaWxlV2luazokUCxmYVNtaWxlV2luazpseGUsZmFGYWNlR3JpblNxdWludFRlYXJzOkFQLGZhR3JpblNxdWludFRlYXJzOmN4ZSxmYUZpbGVBdWRpbzpkeGUsZmFDYWxlbmRhclhtYXJrOkRQLGZhQ2FsZW5kYXJUaW1lczpweGUsZmFDaXJjbGVEb3duOkVQLGZhQXJyb3dBbHRDaXJjbGVEb3duOmh4ZSxmYUZpbGVMaW5lczpZZixmYUZpbGVBbHQ6dXhlLGZhRmlsZVRleHQ6ZnhlLGZhQ29tbWVudHM6bXhlLGZhQ2lyY2xlQ2hlY2s6STUsZmFDaGVja0NpcmNsZTpneGUsZmFNb29uOmJ4ZSxmYUNsb3NlZENhcHRpb25pbmc6dnhlLGZhSW1hZ2VzOnl4ZSxmYUNpcmNsZVJpZ2h0OlBQLGZhQXJyb3dBbHRDaXJjbGVSaWdodDp4eGUsZmFJZENhcmQ6SVAsZmFEcml2ZXJzTGljZW5zZTp3eGUsZmFDaXJjbGVQbGF5Ok5QLGZhUGxheUNpcmNsZTpNeGUsZmFGYWNlTGF1Z2hCZWFtOkZQLGZhTGF1Z2hCZWFtOnp4ZSxmYUFkZHJlc3NCb29rOk9QLGZhQ29udGFjdEJvb2s6a3hlLGZhSG91cmdsYXNzOlJQLGZhSG91cmdsYXNzRW1wdHk6U3hlLGZhSGVhZHBob25lczpaZixmYUhlYWRwaG9uZXNBbHQ6Q3hlLGZhSGVhZHBob25lc1NpbXBsZTpfeGUsZmFGaWxlUG93ZXJwb2ludDpUeGUsZmFXaW5kb3dNYXhpbWl6ZTpMeGUsZmFDb21tZW50RG90czpCUCxmYUNvbW1lbnRpbmc6JHhlLGZhRmFjZUdyaW5Ub25ndWVXaW5rOkhQLGZhR3JpblRvbmd1ZVdpbms6QXhlLGZhSG91cmdsYXNzSGFsZjpxUCxmYUhvdXJnbGFzczI6RHhlLGZhQ3JlZGl0Q2FyZDpWUCxmYUNyZWRpdENhcmRBbHQ6RXhlLGZhSGFuZFNwb2NrOlB4ZSxmYUJlbGxTbGFzaDpJeGUsZmFTdGFyOk54ZSxmYUZsYWc6RnhlLGZhTGVtb246T3hlLGZhV2luZG93UmVzdG9yZTpSeGUsZmFGYWNlR3JpbkhlYXJ0czpqUCxmYUdyaW5IZWFydHM6QnhlLGZhRmFjZUtpc3NCZWFtOlVQLGZhS2lzc0JlYW06SHhlLGZhRmlsZVBkZjpxeGUsZmFGYWNlR3JpbldpZGU6V1AsZmFHcmluQWx0OlZ4ZSxmYUZhY2VMYXVnaFNxdWludDpHUCxmYUxhdWdoU3F1aW50Omp4ZSxmYUZhY2VLaXNzV2lua0hlYXJ0OllQLGZhS2lzc1dpbmtIZWFydDpVeGUsZmFDb3B5OktmLGZhQ2hlc3NLaW5nOld4ZSxmYVNxdWFyZVBsdXM6WlAsZmFQbHVzU3F1YXJlOkd4ZSxmYUZpbGVDb2RlOll4ZSxmYUZhY2VHcmluV2luazpYUCxmYUdyaW5XaW5rOlp4ZSxmYU1vbmV5QmlsbDE6S1AsZmFNb25leUJpbGxBbHQ6WHhlLGZhRXllU2xhc2g6S3hlLGZhRmlsZVdvcmQ6UXhlLGZhRmFjZUFuZ3J5OlFQLGZhQW5ncnk6SnhlLGZhQ2hlc3NLbmlnaHQ6ZXdlLGZhRmFjZUdyaW5CZWFtOkpQLGZhR3JpbkJlYW06dHdlLGZhSGFuZFBlYWNlOmF3ZSxmYUNvbXBhc3M6aXdlLGZhU3F1YXJlOnJ3ZSxmYUZhY2VHcmluOmVJLGZhR3Jpbjpzd2UsZmFGYWNlU21pbGU6dEksZmFTbWlsZTpud2UsZmFGYWNlU21pbGVCZWFtOmFJLGZhU21pbGVCZWFtOm93ZSxmYUZvbGRlckNsb3NlZDpsd2UsZmFLZXlib2FyZDpjd2UsZmFGYWNlUm9sbGluZ0V5ZXM6aUksZmFNZWhSb2xsaW5nRXllczpkd2UsZmFGYWNlR3JpbWFjZTpySSxmYUdyaW1hY2U6cHdlLGZhQ2lyY2xlRG90OnNJLGZhRG90Q2lyY2xlOmh3ZSxmYU9iamVjdEdyb3VwOnV3ZSxmYUZhY2VGbHVzaGVkOm5JLGZhRmx1c2hlZDpmd2UsZmFTdGFySGFsZlN0cm9rZTpvSSxmYVN0YXJIYWxmQWx0Om13ZSxmYUZpbGVWaWRlbzpnd2UsZmFGYWNlTGF1Z2g6bEksZmFMYXVnaDpid2UsZmFIYW5kUG9pbnRlcjp2d2UsZmFSZWdpc3RlcmVkOnl3ZX19KTt2YXIgemp0LHd3ZSxNd2UsendlLGt3ZSxTd2UsQ3dlLF93ZSxUd2UsTHdlLCR3ZSxRZixBd2UsRHdlLEV3ZSxQd2UsY0ksSXdlLGRJLE53ZSxGd2UsT3dlLHBJLFJ3ZSxCd2UsSHdlLHF3ZSxRNSxWd2UsandlLGhJLFV3ZSxXd2UsR3dlLFl3ZSxad2UsWHdlLEt3ZSxRd2UsdUksSndlLGVNZSx0TWUsZkksYU1lLGlNZSxyTWUsc01lLG5NZSxKNSxvTWUsbUksbE1lLGNNZSxKZixkTWUscE1lLGdJLGhNZSxiSSx1TWUsZk1lLHZJLG1NZSx5SSxnTWUseEksYk1lLHZNZSx5TWUseE1lLHdNZSxNTWUsek1lLHdJLGtNZSxTTWUsQ01lLF9NZSxNSSxUTWUsTE1lLCRNZSxBTWUsRE1lLEVNZSxlbSxQTWUsSU1lLE5NZSx0bSxGTWUsT01lLFJNZSx6SSxCTWUsSE1lLHFNZSxWTWUsa0ksak1lLFptLFVNZSxYbSxXTWUsR01lLFNJLFlNZSxDSSxaTWUsWE1lLGFtLEtNZSxRTWUsSk1lLGV6ZSx0emUsYXplLGl6ZSxyemUsS20sZTgsc3plLG56ZSxfSSxvemUsbHplLE41LGN6ZSxkemUscHplLFRJLGh6ZSx1emUsZnplLExJLG16ZSwkSSxnemUsYnplLHZ6ZSx5emUsQUkseHplLHd6ZSxNemUsREksenplLEVJLGt6ZSxTemUsQ3plLF96ZSxpbSxUemUsTHplLCR6ZSxBemUsRHplLEV6ZSxQemUsUEksSXplLE56ZSxGemUsT3plLFJ6ZSxJSSxCemUsSHplLEY1LHF6ZSxWemUsanplLFV6ZSxXemUsR3plLHJtLFl6ZSxaemUsWHplLEt6ZSxRemUsTkksSnplLGVrZSx0a2UsYWtlLGlrZSxya2UsRkksc2tlLG5rZSxva2UsbGtlLE9JLGNrZSxka2UscGtlLFJJLGhrZSx1a2UsQkksZmtlLEhJLG1rZSxna2UscUksYmtlLHZrZSxWSSx5a2UsakkseGtlLHdrZSx0OCxNa2UsYTgsemtlLGtrZSxzbSxTa2UsQ2tlLF9rZSxVSSxUa2UsTGtlLFdJLCRrZSxBa2UsRGtlLEVrZSxHSSxQa2UsSWtlLE5rZSxGa2UsT2tlLFlJLFJrZSxCa2UsSGtlLHFrZSxaSSxWa2UsWEksamtlLFVrZSxXa2UsR2tlLFlrZSxLSSxaa2UsWGtlLEtrZSxRa2UsUUksSmtlLGVTZSxKSSx0U2UsZU4sYVNlLGlTZSxyU2Usc1NlLG5TZSxvU2UsdE4sbFNlLGNTZSxkU2UscFNlLGhTZSxhTix1U2UsZlNlLG1TZSxnU2UsaU4sYlNlLHJOLHZTZSxRbSxKbSxzTix5U2Usbk4seFNlLHdTZSxNU2UsZjgsb04selNlLGtTZSxTU2UsQ1NlLF9TZSxUU2UsbE4sTFNlLGVnLCRTZSxBU2UsRFNlLEVTZSxQU2UsY04sSVNlLGROLE5TZSxGU2UsT1NlLFJTZSxwTixCU2Usbm0sSFNlLHFTZSxWU2UsaE4salNlLFVTZSxXU2UsR1NlLHVOLFlTZSxaU2UsWFNlLEtTZSxmTixRU2UsSlNlLGVDZSx0Q2UsYUNlLGlDZSxyQ2Usc0NlLG5DZSxvQ2UsbENlLGNDZSxkQ2UsbU4scENlLGhDZSx1Q2UsZkNlLG1DZSxnQ2UsYkNlLGdOLHZDZSx5Q2UseENlLGRsLHdDZSxNQ2UsekNlLGtDZSxTQ2UsYk4sQ0NlLHZOLF9DZSx5TixUQ2UseE4sTENlLHdOLCRDZSxpOCxBQ2UsTU4sRENlLHpOLEVDZSxrTixQQ2UsSUNlLE5DZSxGQ2UsU04sT0NlLFJDZSxDTixCQ2UsSENlLF9OLHFDZSxWQ2UsakNlLFVDZSxUTixXQ2UsR0NlLFlDZSxMTixaQ2UsWENlLE81LEtDZSxRQ2UsSkNlLGVfZSx0X2UsYV9lLCROLGlfZSxBTixyX2Usc19lLG5fZSxETixvX2UsbF9lLGNfZSxFTixkX2UsUE4scF9lLG9tLGhfZSx1X2UsZl9lLG1fZSxnX2UsYl9lLHZfZSx5X2UseF9lLHdfZSxNX2Usel9lLGtfZSxTX2UsUjUsQ19lLF9fZSxUX2UsTF9lLCRfZSxBX2UsRF9lLEVfZSxJTixQX2UsSV9lLE5fZSxGX2UsT19lLFJfZSxCX2UsSF9lLHFfZSxWX2UsTk4sal9lLFVfZSxXX2UsR19lLFlfZSxaX2UsWF9lLEZOLEtfZSxPTixRX2UsSl9lLFJOLGVUZSx0VGUsYVRlLGlUZSxCTixyVGUsc1RlLG5UZSxITixvVGUscU4sbFRlLGNUZSxWTixkVGUscFRlLGhUZSx1VGUsak4sZlRlLG1UZSxnVGUsdGcsYlRlLHZUZSx5VGUsVU4seFRlLHdUZSxNVGUselRlLGtUZSxXTixTVGUsQ1RlLF9UZSxUVGUsTFRlLEdOLCRUZSxBVGUsRFRlLFlOLEVUZSxQVGUsbG0sSVRlLE5UZSxGVGUsT1RlLFpOLFJUZSxCVGUsSFRlLFhOLHFUZSxLTixWVGUsalRlLFVUZSxXVGUscjgsR1RlLFFOLFlUZSxaVGUsWFRlLEtUZSxRVGUsSk4sSlRlLGVGLGVMZSx0Rix0TGUsYUxlLGNtLGlMZSxyTGUsYUYsc0xlLGRtLG5MZSxvTGUsbExlLGNMZSxkTGUscExlLGhMZSx1TGUsaUYsZkxlLG1MZSxnTGUsYkxlLHZMZSxyRix5TGUseExlLHdMZSxzRixNTGUsbkYsekxlLG9GLGtMZSxTTGUsQ0xlLF9MZSxUTGUsTExlLCRMZSxsRixBTGUsRExlLEVMZSxQTGUsY0YsSUxlLE5MZSxGTGUsT0xlLFJMZSxCTGUsZEYsSExlLHFMZSxwRixWTGUsakxlLGhGLFVMZSxXTGUsR0xlLFlMZSx1RixaTGUsWExlLEtMZSxmRixRTGUsbUYsSkxlLGUkZSx0JGUsYSRlLGdGLGkkZSxyJGUscyRlLG4kZSxvJGUsYkYsbCRlLHZGLGMkZSx5RixkJGUscCRlLHhGLGgkZSx3Rix1JGUsZiRlLG0kZSxnJGUsYiRlLHYkZSx5JGUseCRlLHckZSxNJGUseiRlLHBtLGskZSxTJGUsZmwsQyRlLF8kZSxUJGUsaG0sTCRlLCQkZSxBJGUsRCRlLEUkZSxQJGUsSSRlLE1GLE4kZSx6RixGJGUsTyRlLFIkZSxrRixCJGUsU0YsSCRlLHEkZSx1bSxWJGUsaiRlLFUkZSxXJGUscGwsRyRlLFkkZSxaJGUsWCRlLEskZSxRJGUsSiRlLENGLGVBZSx0QWUsYUFlLGlBZSxfRixyQWUsc0FlLG5BZSxvQWUsbEFlLGNBZSxkQWUsVEYscEFlLGhBZSx1QWUsZkFlLG1BZSxnQWUsTEYsYkFlLGFnLCRGLHZBZSx5QWUseEFlLEFGLHdBZSxERixNQWUsekFlLGtBZSxFRixTQWUsQ0FlLFBGLF9BZSxUQWUsTEFlLCRBZSxJRixBQWUsREFlLEVBZSxQQWUsSUFlLE5BZSxORixGQWUsT0FlLGlnLFJBZSxCQWUsRkYsSEFlLHFBZSxWQWUsQjUsakFlLFVBZSxXQWUsR0FlLEg1LFlBZSxaQWUsWEFlLEtBZSxRQWUsSkFlLE9GLGVEZSxmbSx0RGUsYURlLGlEZSxSRixyRGUsc0RlLG5EZSxvRGUsbERlLGNEZSxkRGUsQkYscERlLHJnLGhEZSx1RGUsZkRlLEhGLG1EZSxxRixnRGUsYkRlLFZGLHZEZSxxNSx5RGUseERlLHdEZSxNRGUsekRlLGtEZSxTRGUsQ0RlLF9EZSxqRixURGUsTERlLCREZSxBRGUsbW0sRERlLEVEZSxVRixQRGUsSURlLE5EZSxXRixGRGUsT0RlLFJEZSxHRixCRGUsSERlLHFEZSxWRGUsakRlLFVEZSxXRGUsR0RlLFlEZSxZRixaRGUsWkYsWERlLEtEZSxRRGUsSkRlLGVFZSx0RWUsYUVlLFhGLGlFZSxyRWUsc0VlLEtGLG5FZSxvRWUsUUYsbEVlLEpGLGNFZSxlTyxkRWUscEVlLGhFZSx0Tyx1RWUsYU8sZkVlLGlPLG1FZSxnRWUsck8sYkVlLHNPLHZFZSxuTyx5RWUseEVlLG9PLHdFZSxNRWUsekVlLGtFZSxTRWUsQ0VlLF9FZSxURWUsTEVlLCRFZSxsTyxBRWUsY08sREVlLGRPLEVFZSxQRWUsc2csSUVlLHBPLE5FZSxGRWUsT0VlLGhPLFJFZSxCRWUsdU8sSEVlLHM4LHFFZSxWRWUsakVlLGZPLFVFZSxtTyxXRWUsR0VlLGdPLFlFZSxiTyxaRWUsdk8sWEVlLEtFZSxRRWUsSkVlLGVQZSx5Tyx0UGUseE8sYVBlLGlQZSxyUGUsc1BlLHdPLG5QZSxvUGUsbFBlLE1PLGNQZSxkUGUscFBlLHpPLGhQZSx1UGUsZlBlLG1QZSxrTyxnUGUsYlBlLFNPLHZQZSx5UGUseFBlLENPLHdQZSxNUGUselBlLF9PLGtQZSxUTyxTUGUsZ20sQ1BlLF9QZSxUUGUsTE8sTFBlLCRQZSxBUGUsJE8sRFBlLEVQZSxQUGUsQU8sSVBlLE5QZSxGUGUsT1BlLFJQZSxCUGUsSFBlLHFQZSxWUGUsalBlLFVQZSxXUGUsRE8sR1BlLG5nLFlQZSxFTyxaUGUsWFBlLEtQZSxRUGUsUE8sSlBlLGVJZSx0SWUsYUllLGlJZSxySWUsc0llLFY1LG5JZSxvSWUsbEllLGNJZSxuOCxkSWUsSU8scEllLGhJZSx1SWUsTk8sZkllLG1JZSxGTyxnSWUsYkllLHZJZSx5SWUseEllLE9PLHdJZSxSTyxNSWUsekllLGtJZSxCTyxTSWUsQ0llLF9JZSxITyxUSWUsTEllLCRJZSxBSWUsREllLEVJZSxQSWUscU8sSUllLG9nLE5JZSxGSWUsT0llLFZPLFJJZSxCSWUsak8sSEllLFVPLHFJZSxWSWUsakllLFdPLFVJZSxHTyxXSWUsWU8sR0llLFlJZSxaTyxaSWUsWEllLEtJZSxRSWUsWE8sSkllLGo1LGVOZSx0TmUsYU5lLGlOZSxLTyxyTmUsUU8sc05lLG5OZSxvTmUsbE5lLEpPLGNOZSxVNSxkTmUscE5lLGhOZSxlUix1TmUsZk5lLG1OZSxnTmUsdFIsYk5lLGFSLHZOZSx5TmUseE5lLGlSLHdOZSxyUixNTmUsek5lLHNSLGtOZSxuUixTTmUsb1IsQ05lLGxSLF9OZSxUTmUsTE5lLCROZSxjUixBTmUsRE5lLEVOZSxQTmUsSU5lLE5OZSxGTmUsT05lLGRSLFJOZSxwUixCTmUsSE5lLHFOZSxWTmUsaFIsak5lLFVOZSxibSxXTmUsR05lLFlOZSxaTmUsWE5lLEtOZSxRTmUsVzUsSk5lLGVGZSx0RmUsYUZlLGlGZSxyRmUsc0ZlLG5GZSxvRmUsbEZlLGNGZSxkRmUscEZlLHZtLGhGZSx1RmUsZkZlLG1GZSxnRmUsYkZlLHVSLHZGZSxmUix5RmUseEZlLHdGZSx5bSxNRmUsekZlLGtGZSxtUixTRmUseG0sQ0ZlLF9GZSxURmUsTEZlLGxnLHdtLCRGZSxBRmUsZ1IsREZlLEVGZSxQRmUsSUZlLGJSLE5GZSxGRmUsdlIsT0ZlLFJGZSx5UixCRmUsSEZlLHFGZSxWRmUsakZlLFVGZSxNbSxXRmUsR0ZlLHhSLFlGZSxaRmUsWEZlLEtGZSxRRmUsSkZlLGVPZSx0T2Usd1IsYU9lLGlPZSxNUixyT2UselIsc09lLG5PZSxpbyxvT2UsbE9lLGNPZSxkT2Usa1IscE9lLGhPZSx1T2UsZk9lLFNSLG1PZSxDUixnT2Usem0sYk9lLHZPZSx5T2UsX1IseE9lLGNnLHdPZSxNT2UsVFIsek9lLGttLGtPZSxTT2UsQ09lLF9PZSxUT2UsTE9lLG84LCRPZSxBT2UsTFIsRE9lLEVPZSxQT2UsJFIsSU9lLEFSLE5PZSxHNSxGT2UsT09lLFJPZSxCT2UsSE9lLHFPZSxWT2UsRFIsak9lLFVPZSxFUixXT2UsUFIsR09lLElSLFlPZSxaT2UsWE9lLEtPZSxRT2UsSk9lLE5SLGVSZSx0UmUsYVJlLGlSZSxyUmUsRlIsc1JlLE9SLG5SZSxSUixvUmUsbFJlLGNSZSxTbSxkUmUscFJlLGhSZSx1UmUsZlJlLEJSLG1SZSxIUixnUmUsYlJlLHZSZSx5UmUscVIseFJlLFZSLHdSZSxNUmUsQ20selJlLGtSZSxTUmUsQ1JlLF9SZSxqUixUUmUsTFJlLFVSLCRSZSxXUixBUmUsRFJlLEVSZSxQUmUsSVJlLE5SZSxGUmUsT1JlLFJSZSxCUmUsR1IsSFJlLHFSZSxWUmUsalJlLF9tLFVSZSxXUmUsR1JlLFlSZSxZUixaUmUsWFJlLFpSLEtSZSxRUmUsSlJlLGVCZSxYUix0QmUsYUJlLGlCZSxsOCxyQmUsc0JlLFRtLG5CZSxvQmUsS1IsbEJlLGNCZSxkQmUscEJlLGhCZSxRUix1QmUsZkJlLEpSLG1CZSxlQixnQmUsYkJlLHZCZSx5QmUseEJlLHRCLHdCZSxhQixNQmUsaUIsekJlLGtCZSxTQmUsQ0JlLHJCLF9CZSxUQmUsc0IsTEJlLCRCZSxBQmUsbkIsREJlLEVCZSxMbSxQQmUsSUJlLG9CLE5CZSxsQixGQmUsY0IsT0JlLGRnLGRCLFJCZSxwQixCQmUsSEJlLHFCZSxWQmUsakJlLFVCZSwkbSxXQmUsR0JlLFlCZSxoQixaQmUsWEJlLEtCZSxBbSxRQmUsSkJlLGVIZSx0SGUsRG0sYUhlLGlIZSxySGUsc0hlLHVCLG5IZSxmQixvSGUsbEhlLGNIZSxkSGUscEhlLEVtLGhIZSx1SGUsZkhlLG1IZSxnSGUsYkhlLFBtLHZIZSx5SGUseEhlLG1CLHdIZSxNSGUsekhlLGtIZSxnQixTSGUsQ0hlLF9IZSxUSGUsTEhlLCRIZSxiQixBSGUsREhlLEVIZSxQSGUsdkIsSUhlLE5IZSxZNSxGSGUsT0hlLFJIZSx5QixCSGUsSEhlLHFIZSxWSGUsakhlLFVIZSxXSGUsR0hlLFlIZSx4QixaSGUsWEhlLHdCLEtIZSxRSGUsSkhlLE1CLGVxZSx0cWUsYXFlLGlxZSxycWUsekIsc3FlLHBnLGtCLG5xZSxvcWUsbHFlLGNxZSxkcWUsU0IscHFlLGhxZSx1cWUsZnFlLG1xZSxDQixncWUsYnFlLHZxZSx5cWUseHFlLEltLHdxZSxNcWUsenFlLGtxZSxTcWUsX0IsQ3FlLFRCLF9xZSxUcWUsTHFlLE5tLCRxZSxBcWUsRHFlLExCLEVxZSwkQixQcWUsSXFlLE5xZSxGcWUsT3FlLFJxZSxBQixCcWUsSHFlLERCLHFxZSxFQixWcWUsUEIsanFlLFVxZSxJQixXcWUsTkIsR3FlLFlxZSxacWUsWHFlLEtxZSxRcWUsSnFlLGVWZSx0VmUsRkIsYVZlLGlWZSxGbSxyVmUsc1ZlLE9CLG5WZSxvVmUsbFZlLFJCLGNWZSxkVmUscFZlLGhWZSxCQix1VmUsZlZlLG1WZSxnVmUsYlZlLEhCLHZWZSx5VmUseFZlLE9tLHdWZSxNVmUselZlLGtWZSxTVmUsQ1ZlLFJtLF9WZSxUVmUsTFZlLHFCLCRWZSxWQixBVmUsRFZlLEVWZSxQVmUsakIsSVZlLFVCLE5WZSxGVmUsV0IsT1ZlLFJWZSxHQixCVmUsSFZlLHFWZSxWVmUsWUIsalZlLFVWZSxXVmUsR1ZlLGM4LFlWZSxoZyxaVmUsWFZlLEtWZSxRVmUsWkIsSlZlLFhCLGVqZSx0amUsYWplLGlqZSxaNSxyamUsc2plLG5qZSxYNSxvamUsbGplLGNqZSxLQixkamUscGplLEJtLGhqZSx1amUsZmplLG1qZSxRQixnamUsYmplLHZqZSxKQix5amUseGplLHdqZSxNamUsemplLGVILGtqZSxIbSxTamUsQ2plLF9qZSxUamUsTGplLCRqZSx0SCxBamUsYUgsRGplLGlILEVqZSxQamUsckgsSWplLHVnLHNILE5qZSxGamUsT2plLG5ILFJqZSxCamUsZmcsb0gsSGplLHFqZSxWamUsamplLGhsLFVqZSxXamUsR2plLFlqZSxsSCxaamUsWGplLEtqZSxjSCxRamUsSmplLGVVZSx0VWUsZEgsYVVlLGlVZSxyVWUsc1VlLG5VZSxxbSxvVWUsbFVlLGQ4LGNVZSxwSCxkVWUsaEgscFVlLGhVZSx1VWUsZlVlLHVILG1VZSxnVWUsYlVlLHZVZSxmSCx5VWUseFVlLHdVZSxtSCxNVWUselVlLGtVZSxTVWUsZ0gsQ1VlLF9VZSxUVWUsYkgsTFVlLCRVZSxBVWUscDgsRFVlLEVVZSx2SCxQVWUseUgsSVVlLHhILE5VZSx3SCxGVWUsT1VlLE1ILFJVZSxCVWUsSFVlLHFVZSxWVWUsalVlLHpILFVVZSxXVWUsa0gsR1VlLFlVZSxTSCxaVWUsWFVlLEtVZSxDSCxRVWUsSlVlLGVXZSx0V2UsYVdlLHVsLGlXZSxyV2Usc1dlLG5XZSxvV2UsbFdlLGNXZSxkV2UscFdlLGhXZSx1V2UsZldlLG1XZSxnV2UsYldlLHZXZSx5V2UsX0gseFdlLHdXZSxNV2UseldlLFRILGtXZSxTV2UsQ1dlLEs1LF9XZSxUV2UsTFdlLCRXZSxBV2UsTEgsRFdlLGg4LEVXZSxQV2UsSVdlLCRILE5XZSxGV2UsT1dlLFJXZSxBSCxCV2UsSFdlLERILHFXZSxWV2UsaldlLEVILFVXZSxXV2UsUEgsR1dlLElILFlXZSxaV2UsWFdlLEtXZSxRV2UsTkgsSldlLGVHZSx0R2UsRkgsYUdlLGlHZSxyR2Usc0dlLG5HZSxvR2UsbEdlLE9ILGNHZSxSSCxkR2UsQkgscEdlLFZtLGhHZSx1R2UsSEgsZkdlLHFILG1HZSxWSCxnR2UsYkdlLHZHZSx5R2UseEdlLHdHZSxqSCxNR2UsVUgsekdlLGtHZSxTR2UsQ0dlLF9HZSxXSCxUR2UsR0gsTEdlLFlILCRHZSxaSCxBR2UsREdlLEVHZSxQR2UsWEgsSUdlLE5HZSxqbSxGR2UsT0dlLEtILFJHZSxCR2UsSEdlLHFHZSxRSCxWR2UsakdlLFVHZSxXR2UsSkgsR0dlLG1sLFlHZSxaR2UsZXEsWEdlLHRxLEtHZSxRR2UsSkdlLFVtLGVZZSx0WWUsYVllLGFxLGlZZSxpcSxyWWUscnEsc1llLHNxLG5ZZSxvWWUsbFllLGNZZSxkWWUscFllLGhZZSxXbSx1WWUsZlllLG1ZZSxnWWUsYlllLG5xLHZZZSx5WWUseFllLHdZZSxNWWUselllLG9xLGtZZSxTWWUsbHEsQ1llLF9ZZSxHbSxUWWUsTFllLCRZZSx1OCxBWWUsRFllLEVZZSxjcSxQWWUsZHEsSVllLE5ZZSxGWWUsT1llLFJZZSxwcSxCWWUsSFllLHFZZSxWWWUsalllLFltLFVZZSxXWWUsR1llLFlZZSxaWWUsaHEsWFllLHVxLEtZZSxRWWUsZnEsSlllLG1xLGVaZSxncSx0WmUsYnEsYVplLGlaZSx2cSxyWmUsc1plLG5aZSxvWmUsbFplLGNaZSxranQsZFplPWIoKCk9Pnt6anQ9ImZhcyIsd3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjAiLGljb246WzMyMCw1MTIsW10sIjMwIiwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJzMTYwIDcxLjYgMTYwIDE2MGwwIDEyOGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwTDAgMTkyek0xNjAgOTZjLTUzIDAtOTYgNDMtOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2eiJdfSxNd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMSIsaWNvbjpbMjU2LDUxMixbXSwiMzEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDY0IDAgMCAzMjAtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sendlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjIiLGljb246WzM4NCw1MTIsW10sIjMyIiwiTTQ4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE3MSAwYzYwLjIgMCAxMDkgNDguOCAxMDkgMTA5IDAgNDMuOC0yNi4yIDgzLjMtNjYuNCAxMDAuNGwtMTM5LjEgNTlDMTE5IDMxNS40IDk2IDM1MC4yIDk2IDM4OC43bDAgMjcuMyAyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuM2MwLTY0LjIgMzguNC0xMjIuMiA5Ny41LTE0Ny4zbDEzOS4xLTU5YzE2LjYtNy4xIDI3LjQtMjMuNCAyNy40LTQxLjQgMC0yNC45LTIwLjItNDUtNDUtNDVMODAgOTZDNjIuMyA5NiA0OCA4MS43IDQ4IDY0eiJdfSxrd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMyIsaWNvbjpbMzIwLDUxMixbXSwiMzMiLCJNODAgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOCAwIDM4LjItMTYuOCA3Mi41LTQzLjMgOTYgMjYuNiAyMy41IDQzLjMgNTcuOCA0My4zIDk2IDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4TDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEw4MCAyODh6Il19LFN3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiI0IixpY29uOlszODQsNTEyLFtdLCIzNCIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjI0LTE5MiAwIDAtMjI0eiJdfSxDd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiNSIsaWNvbjpbMzIwLDUxMixbXSwiMzUiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDAgMCAxMTIgMTIwIDBjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZTMjU5LjEgNDgwIDE4NCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE1MiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcyTDMyIDI3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCA2NHoiXX0sX3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjYiLGljb246WzM4NCw1MTIsW10sIjM2IiwiTTI1NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtODggMGMtNDguNiAwLTg4IDM5LjQtODggODhsMCAzMi4yYzIyLjktMTUuMyA1MC40LTI0LjIgODAtMjQuMmw0OCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI4Ny41IDQ4MCAyMDggNDgwbC00OCAwQzgwLjUgNDgwIDE2IDQxNS41IDE2IDMzNmwwLTE1MkMxNiAxMDAuMSA4NC4xIDMyIDE2OCAzMmw4OCAwek04MCAzMzZjMCA0NC4yIDM1LjggODAgODAgODBsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6Il19LFR3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiI3IixpY29uOlszMjAsNTEyLFtdLCIzNyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI1NiAwYzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTIyNCAzODRjLTguOSAxNS4zLTI4LjUgMjAuNC00My44IDExLjVzLTIwLjQtMjguNS0xMS41LTQzLjhMMjMyLjMgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sTHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjgiLGljb246WzMyMCw1MTIsW10sIjM4IiwiTTMwNCAxNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTMyIDBjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4IDAgMzQuNiAxMy43IDY2IDM2IDg5LTMxLjUgMjMuMy01MiA2MC44LTUyIDEwMyAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw2NCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDIuMi0yMC41LTc5LjctNTItMTAzIDIyLjMtMjMgMzYtNTQuNCAzNi04OXpNMTc2LjEgMjg4bDE1LjkgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OC4xIDB6bTAtNjRMMTQ0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDM1LjMtMjguNiA2NC02NCA2NHoiXX0sJHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjkiLGljb246WzM4NCw1MTIsW10sIjM5IiwiTTIwOCAzMjBjMjkuNiAwIDU3LjEtOC45IDgwLTI0LjJsMCAzMi4yYzAgNDguNi0zOS40IDg4LTg4IDg4TDk2IDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMDQgMGM4My45IDAgMTUyLTY4LjEgMTUyLTE1MmwwLTE1Mi4xQzM1MS45IDk2LjQgMjg3LjUgMzIgMjA4IDMybC00OCAwQzgwLjUgMzIgMTYgOTYuNSAxNiAxNzZTODAuNSAzMjAgMTYwIDMyMGw0OCAwem04MC0xNDRjMCA0NC4yLTM1LjggODAtODAgODBsLTQ4IDBjLTQ0LjIgMC04MC0zNS44LTgwLTgwczM1LjgtODAgODAtODBsNDggMGM0NC4yIDAgODAgMzUuOCA4MCA4MHoiXX0sUWY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9sbGFyLXNpZ24iLGljb246WzMyMCw1MTIsWzEyODE3OCw2MTc4MSwiZG9sbGFyIiwidXNkIl0sIjI0IiwiTTEzNiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTE0LjkgMGMtMjQuOSAwLTQ1LjEgMjAuMi00NS4xIDQ1LjEgMCAyMi41IDE2LjUgNDEuNSAzOC43IDQ0LjdsOTEuNiAxMy4xYzUzLjggNy43IDkzLjcgNTMuNyA5My43IDEwOCAwIDYwLjMtNDguOSAxMDkuMS0xMDkuMSAxMDkuMWwtMTAuOSAwIDAgNDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00MC03MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEzMC45IDBjMjQuOSAwIDQ1LjEtMjAuMiA0NS4xLTQ1LjEgMC0yMi41LTE2LjUtNDEuNS0zOC43LTQ0LjdsLTkxLjYtMTMuMUM1NS45IDI3My41IDE2IDIyNy40IDE2IDE3My4xIDE2IDExMi45IDY0LjkgNjQgMTI1LjEgNjRsMTAuOSAwIDAtNDB6Il19LEF3ZT1RZixEd2U9UWYsRXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvZyIsaWNvbjpbNTc2LDUxMixbMTI4MDIxXSwiZjZkMyIsIk0zMiAxMTJjMTYuNiAwIDMwLjIgMTIuNiAzMS44IDI4LjdsLjMgNi42QzY1LjggMTYzLjQgNzkuNCAxNzYgOTYgMTc2bDE3OS4xIDAgMTQwLjkgNjAuNCAwIDI0My42YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEzMS4zQzI5NiAzNjEgMjY4LjggMzY4IDI0MCAzNjhzLTU2LTctODAtMTkuM0wxNjAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0NS42Yy0zNy4zLTEzLjItNjQtNDguNi02NC05MC40IDAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTUuOC0zMmM3LjcgMCAxNC45IDMuNiAxOS42IDkuOEwzOTIgMCA0NDQuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjFMNDk2IDMyIDU1MiAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgNDQuMi0zNS44IDgwLTgwIDgwbC02NCAwLTcgMjgtMTI0LjctNTMuNCAzMS42LTE0Ny4yQzMzNC4zLTIzLjkgMzQ0LjItMzIgMzU1LjgtMzJ6TTQ0OCA0NGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LFB3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb3ZpbmciLGljb246WzY0MCw1MTIsW10sImY0ZGYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OCAyNS4yIDAgNDgtMTAuNiA2NC0yNy42IDE2IDE3IDM4LjggMjcuNiA2NCAyNy42IDQwLjMgMCA3NC4yLTI3LjEgODQuNy02NGwxMzQuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjQgNDMgMCA3OC45LTMwLjkgODYuNS03MS43IDIwLTEwLjggMzMuNS0zMiAzMy41LTU2LjNsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1NzYgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek00ODAgMTkybDUwLjcgMCA0NS4zIDQ1LjMgMCA1MC43LTk2IDAgMC05NnpNODggMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMzkyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTIxNiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxjST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3RhdGUiLGljb246WzUxMiw1MTIsWzEyODI2MCwic3luYy1hbHQiXSwiZjJmMSIsIk00ODAuMSAxOTJsNy45IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IC4yIDQ3MSA3TDQxOS4zIDU4LjhDMzc1IDIyLjEgMzE4IDAgMjU2IDAgMTI3IDAgMjAuMyA5NS40IDIuNiAyMTkuNSAuMSAyMzcgMTIuMiAyNTMuMiAyOS43IDI1NS43czMzLjctOS43IDM2LjItMjcuMUM3OS4yIDEzNS41IDE1OS4zIDY0IDI1NiA2NCAzMDAuNCA2NCAzNDEuMiA3OSAzNzMuNyAxMDQuM0wzMjcgMTUxYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yUzMzNC4zIDE5MiAzNDQgMTkybDEzNi4xIDB6bTI5LjQgMTAwLjVjMi41LTE3LjUtOS43LTMzLjctMjcuMS0zNi4ycy0zMy43IDkuNy0zNi4yIDI3LjFjLTEzLjMgOTMtOTMuNCAxNjQuNS0xOTAuMSAxNjQuNS00NC40IDAtODUuMi0xNS0xMTcuNy00MC4zTDE4NSAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNzcuNyAzMjAgMTY4IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDg4YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDUxMS44IDQxIDUwNWw1MS44LTUxLjhDMTM3IDQ4OS45IDE5NCA1MTIgMjU2IDUxMiAzODUgNTEyIDQ5MS43IDQxNi42IDUwOS40IDI5Mi41eiJdfSxJd2U9Y0ksZEk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLW1pbnVzIixpY29uOls0NDgsNTEyLFs2MTc2NywibWludXMtc3F1YXJlIl0sImYxNDYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNzIgMjAwbDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sTndlPWRJLEZ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1qdXN0aWZ5IixpY29uOls0NDgsNTEyLFtdLCJmMDM5IiwiTTQ0OCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTAgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDQ4IDQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6Il19LE93ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1jaGVjayIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3NCIsIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTIyIDE2MS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wxODkuMSAzMzEuMiAxMzcgMjc5LjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjkgNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNDcuMyAxOTUuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0scEk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1raXNzIixpY29uOls1MTIsNTEyLFsxMjg1MzUsImtpc3MiXSwiZjU5NiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjQwIDI4OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0tOTYtODBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUndlPXBJLEJ3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXRjaGVuLXNldCIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYSIsIk0yNDAgMTQ0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptNDQuNCAzMkMyNjkuOSAyNDAuMSAyMTIuNSAyODggMTQ0IDI4OCA2NC41IDI4OCAwIDIyMy41IDAgMTQ0UzY0LjUgMCAxNDQgMGM2OC41IDAgMTI1LjkgNDcuOSAxNDAuNCAxMTJsNzEuOCAwYzguOC05LjggMjEuNi0xNiAzNS44LTE2bDEwNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xMDQgMGMtMTQuMiAwLTI3LTYuMi0zNS44LTE2bC03MS44IDB6TTE0NCA4MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDAwIDI0MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDggOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTYgMCAwLThjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI4OCA0NjRsMC0xMTIgMjI0IDAgMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OHpNNDggMzIwbDEyOCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xNiAwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwIDAgMzIgMTYgMHpNMjQgNDY0bDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sSHdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRuYSIsaWNvbjpbMzg0LDUxMixbMTI5NTE2XSwiZjQ3MSIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDU3LjgtMjQuNCAxMDQuOC01Ny40IDE0NC41LTI0LjEgMjguOS01My44IDU1LjEtODMuNiA3OS41IDI5LjggMjQuNSA1OS41IDUwLjYgODMuNiA3OS41IDMzIDM5LjYgNTcuNCA4Ni43IDU3LjQgMTQ0LjUgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJMNjQgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDk3LjcgMCA0ODBDMCA0MjIuMiAyNC40IDM3NS4yIDU3LjQgMzM1LjUgODEuNSAzMDYuNiAxMTEuMiAyODAuNSAxNDEgMjU2IDExMS4yIDIzMS41IDgxLjUgMjA1LjQgNTcuNCAxNzYuNSAyNC40IDEzNi44IDAgODkuOCAwIDMyIDAgMTQuMyAxNC4zIDAgMzIgMFM2NCAxNC4zIDY0IDMybDI1NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSAzODRsLTE4Mi45IDBjLTguMiAxMC41LTE1LjEgMjEuMS0yMC42IDMybDIyNC4yIDBjLTUuNi0xMC45LTEyLjUtMjEuNS0yMC42LTMyek0yMzggMzM2Yy0xNC4zLTEzLTI5LjgtMjUuOC00Ni0zOS0xNi4yIDEzLjEtMzEuNyAyNi00NiAzOWw5MiAwek0xMDAuNSAxMjhsMTgyLjkgMGM4LjItMTAuNSAxNS4xLTIxLjEgMjAuNi0zMkw3OS45IDk2YzUuNiAxMC45IDEyLjUgMjEuNSAyMC42IDMyek0xNDYgMTc2YzE0LjMgMTMgMjkuOCAyNS44IDQ2IDM5IDE2LjItMTMuMSAzMS43LTI2IDQ2LTM5bC05MiAweiJdfSxxd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtcmVhY2hpbmciLGljb246WzM4NCw1MTIsW10sImU1OWQiLCJNMjU2IDY0YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMTUyLjkgMTY5LjNjLTIzLjctOC40LTQ0LjUtMjQuMy01OC44LTQ1LjhMNzQuNiA5NC4yQzY0LjggNzkuNSA0NSA3NS42IDMwLjMgODUuNFMxMS42IDExNSAyMS40IDEyOS44TDQwLjkgMTU5YzE4LjEgMjcuMSA0Mi44IDQ4LjQgNzEuMSA2Mi40TDExMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU4LjRjMjkuMS0xNC4yIDU0LjQtMzYuMiA3Mi43LTY0LjJsMTguMi0yNy45YzkuNi0xNC44IDUuNC0zNC42LTkuNC00NC4zcy0zNC42LTUuNS00NC4zIDkuNEwyOTEgMTIyLjRjLTIxLjggMzMuNC01OC45IDUzLjYtOTguOCA1My42LTEyLjYgMC0yNC45LTItMzYuNi01LjgtLjktLjMtMS44LS43LTIuNy0uOXoiXX0sUTU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFzdGUiLGljb246WzUxMiw1MTIsWyJmaWxlLWNsaXBib2FyZCJdLCJmMGVhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDExMiAwIDAtMjI0YzAtNjEuOSA1MC4xLTExMiAxMTItMTEybDY0IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0yNDggMTEybC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHptNDAgNDhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNsLTU4LjUtNTguNWMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wyODggMTYweiJdfSxWd2U9UTUsandlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1ldGVvciIsaWNvbjpbNTEyLDUxMixbOTczMl0sImY3NTMiLCJNNDkzLjcgLjlsLTE5NC4yIDc0LjcgMi4zLTI5LjNjMS0xMi44LTEyLjgtMjEuNS0yNC0xNS4xTDEwMS4zIDEzMy40QzM4LjYgMTY5LjcgMCAyMzYuNiAwIDMwOSAwIDQyMS4xIDkwLjkgNTEyIDIwMyA1MTIgMjc1LjQgNTEyIDM0Mi4zIDQ3My40IDM3OC42IDQxMC43TDQ4MC44IDIzNC4zYzYuNS0xMS4xLTIuMi0yNS0xNS4xLTI0bC0yOS4zIDIuMyA3NC43LTE5NC4yYy42LTEuNSAuOS0zLjIgLjktNC44IDAtNy41LTYtMTMuNS0xMy41LTEzLjUtMS43IDAtMy4zIC4zLTQuOCAuOXpNMTkyIDE5MmExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTYgOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxoST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZWFycyIsaWNvbjpbNjQwLDUxMixbImNvZ3MiXSwiZjA4NSIsIk00MTUuOSAyMTAuNWMxMi4yLTMuMyAyNSAyLjUgMzAuNSAxMy44TDQ2NSAyNjEuOWMxMC4zIDEuNCAyMC40IDQuMiAyOS45IDguMWwzNS0yMy4zYzEwLjUtNyAyNC40LTUuNiAzMy4zIDMuM2wxOS4yIDE5LjJjOC45IDguOSAxMC4zIDIyLjkgMy4zIDMzLjNsLTIzLjMgMzQuOWMxLjkgNC43IDMuNiA5LjYgNSAxNC43IDEuNCA1LjEgMi4zIDEwLjEgMyAxNS4ybDM3LjcgMTguNmMxMS4zIDUuNiAxNy4xIDE4LjQgMTMuOCAzMC41bC03IDI2LjJjLTMuMyAxMi4xLTE0LjYgMjAuMy0yNy4yIDE5LjVsLTQyLTIuN2MtNi4zIDguMS0xMy42IDE1LjYtMjEuOSAyMmwyLjcgNDEuOWMuOCAxMi42LTcuNCAyNC0xOS41IDI3LjJsLTI2LjIgN2MtMTIuMiAzLjMtMjQuOS0yLjUtMzAuNS0xMy44bC0xOC42LTM3LjZjLTEwLjMtMS40LTIwLjQtNC4yLTI5LjktOC4xbC0zNSAyMy4zYy0xMC41IDctMjQuNCA1LjYtMzMuMy0zLjNsLTE5LjItMTkuMmMtOC45LTguOS0xMC4zLTIyLjgtMy4zLTMzLjNsMjMuMy0zNWMtMS45LTQuNy0zLjYtOS42LTUtMTQuN3MtMi4zLTEwLjItMy0xNS4ybC0zNy43LTE4LjZjLTExLjMtNS42LTE3LTE4LjQtMTMuOC0zMC41bDctMjYuMmMzLjMtMTIuMSAxNC42LTIwLjMgMjcuMi0xOS41bDQxLjkgMi43YzYuMy04LjEgMTMuNi0xNS42IDIxLjktMjJsLTIuNy00MS44Yy0uOC0xMi42IDcuNC0yNCAxOS41LTI3LjJsMjYuMi03ek00NDguNCAzNDBhNDQgNDQgMCAxIDAgLjEgODggNDQgNDQgMCAxIDAgLS4xLTg4ek0yMjQuOS00NS41bDI2LjIgN2MxMi4xIDMuMyAyMC4zIDE0LjcgMTkuNSAyNy4ybC0yLjcgNDEuOGM4LjMgNi40IDE1LjYgMTMuOCAyMS45IDIybDQyLTIuN2MxMi41LS44IDIzLjkgNy40IDI3LjIgMTkuNWw3IDI2LjJjMy4yIDEyLjEtMi41IDI0LjktMTMuOCAzMC41bC0zNy43IDE4LjZjLS43IDUuMS0xLjcgMTAuMi0zIDE1LjJzLTMuMSAxMC01IDE0LjdsMjMuMyAzNWM3IDEwLjUgNS42IDI0LjQtMy4zIDMzLjNMMzA3LjMgMjYyYy04LjkgOC45LTIyLjggMTAuMy0zMy4zIDMuM0wyMzkgMjQyYy05LjUgMy45LTE5LjYgNi43LTI5LjkgOC4xbC0xOC42IDM3LjZjLTUuNiAxMS4zLTE4LjQgMTctMzAuNSAxMy44bC0yNi4yLTdjLTEyLjItMy4zLTIwLjMtMTQuNy0xOS41LTI3LjJsMi43LTQxLjljLTguMy02LjQtMTUuNi0xMy44LTIxLjktMjJsLTQyIDIuN2MtMTIuNSAuOC0yMy45LTcuNC0yNy4yLTE5LjVsLTctMjYuMmMtMy4yLTEyLjEgMi41LTI0LjkgMTMuOC0zMC41bDM3LjctMTguNmMuNy01LjEgMS43LTEwLjEgMy0xNS4yIDEuNC01LjEgMy0xMCA1LTE0LjdMNTUuMSA0Ni41Yy03LTEwLjUtNS42LTI0LjQgMy4zLTMzLjNMNzcuNi02YzguOS04LjkgMjIuOC0xMC4zIDMzLjMtMy4zbDM1IDIzLjNjOS41LTMuOSAxOS42LTYuNyAyOS45LTguMWwxOC42LTM3LjZjNS42LTExLjMgMTguMy0xNyAzMC41LTEzLjh6TTE5Mi40IDg0YTQ0IDQ0IDAgMSAwIDAgODggNDQgNDQgMCAxIDAgMC04OHoiXX0sVXdlPWhJLFd3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1wbHVzIixpY29uOls1NzYsNTEyLFs1ODYwNl0sImU0OTQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0sR3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImljaWNsZXMiLGljb246WzUxMiw1MTIsW10sImY3YWQiLCJNNzUuOCAzMDQuOEwxIDM1LjdDLjMgMzMuMiAwIDMwLjcgMCAyOC4yIDAgMTIuNiAxMi42IDAgMjguMiAwTDQ4Mi40IDBjMTYuMyAwIDI5LjYgMTMuMiAyOS42IDI5LjYgMCAxLjYtLjEgMy4zLS40IDQuOUw0MzQuNiA0OTYuMWMtMS41IDkuMi05LjUgMTUuOS0xOC44IDE1LjktOS4yIDAtMTcuMS02LjYtMTguNy0xNS42TDMzNiAxNjAgMzA3LjIgMzAzLjljLTEuOSA5LjMtMTAuMSAxNi4xLTE5LjYgMTYuMS05LjIgMC0xNy4yLTYuMi0xOS40LTE1LjFMMjQwIDE5MiAyMTAuNiAzNjguMmMtMS41IDkuMS05LjQgMTUuOC0xOC42IDE1LjhzLTE3LjEtNi43LTE4LjYtMTUuOEwxNDQgMTkyIDExNS45IDMwNC4zYy0yLjMgOS4yLTEwLjYgMTUuNy0yMC4xIDE1LjctOS4zIDAtMTcuNS02LjItMjAtMTUuMnoiXX0sWXdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXRyZW5kLXVwIixpY29uOls1NzYsNTEyLFtdLCJlMDk4IiwiTTM4NCAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04Mi43LTE2OS40IDE2OS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEwxOTIgMjY5LjMgNTQuNiA0MDYuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMEwzMjAgMzA2LjcgNDY2LjcgMTYwIDM4NCAxNjB6Il19LFp3ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uLW5vZGVzLWJvbHQiLGljb246WzU3Niw1MTIsW10sImU2OWEiLCJNMjQ4IDEwNi42YzE4LjktOSAzMi0yOC4zIDMyLTUwLjZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMi44IDEuMy01LjUgMi45LTggNC43bC04MC4xLTQ1LjhjMS42LTIwLjgtOC42LTQxLjYtMjcuOS01Mi44QzU3LjIgOTYgMjMgMTA1LjIgNy41IDEzMlMxLjIgMTkzIDI4IDIwOC41YzEuMyAuOCAyLjYgMS41IDQgMi4xbDAgOTAuOGMtMS4zIC42LTIuNyAxLjMtNCAyLjFDMS4yIDMxOS04IDM1My4yIDcuNSAzODBTNTcuMiA0MTYgODQgNDAwLjVjMTkuMy0xMS4xIDI5LjQtMzIgMjcuOC01Mi44bDUwLjUtMjguOWMtMTEuNS0xMS4yLTE5LjktMjUuNi0yMy44LTQxLjdMODggMzA2LjFjLTIuNi0xLjgtNS4yLTMuMy04LTQuN2wwLTkwLjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtLjEgMS40LS4yIDIuOC0uMiA0LjNjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMTguOSA5LTMyIDI4LjMtMzIgNTAuNmMwIDMwLjkgMjUuMSA1NiA1NiA1NmMzMC43IDAgNTUuNi0yNC43IDU2LTU1LjJjLTcuNS0xMi45LTEzLjUtMjYuOC0xNy42LTQxLjVjLTQuMi00LTkuMS03LjMtMTQuNC05LjlsMC05OC44YzIuOC0xLjMgNS41LTIuOSA4LTQuN2wxMC41IDZjNS41LTE1LjMgMTMuMS0yOS41IDIyLjQtNDIuNWwtOS4xLTUuMmMuMS0xLjQgLjItMi44IC4yLTQuM2MwLTIyLjMtMTMuMS00MS42LTMyLTUwLjZsMC05OC44ek00NDAuNSAxMzJDNDI1IDEwNS4yIDM5MC44IDk2IDM2NCAxMTEuNWMtMTkuMyAxMS4xLTI5LjQgMzItMjcuOCA1Mi44bC01MC42IDI4LjljMTEuNSAxMS4yIDE5LjkgMjUuNiAyMy44IDQxLjdMMzYwIDIwNS45Yy40IC4zIC44IC42IDEuMyAuOWMyMS43LTkuNSA0NS42LTE0LjggNzAuOC0xNC44YzIgMCA0IDAgNS45IC4xYzEyLjEtMTcuMyAxMy44LTQwLjYgMi42LTYwLjF6TTQzMiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em00Ny45LTIyNWM0LjMgMy43IDUuNCA5LjkgMi42IDE0LjlMNDUyLjQgMzU2bDM1LjYgMGM1LjIgMCA5LjggMy4zIDExLjQgOC4ycy0uMSAxMC4zLTQuMiAxMy40bC05NiA3MmMtNC41IDMuNC0xMC44IDMuMi0xNS4xLS42cy01LjQtOS45LTIuNi0xNC45TDQxMS42IDM4MCAzNzYgMzgwYy01LjIgMC05LjgtMy4zLTExLjQtOC4ycy4xLTEwLjMgNC4yLTEzLjRsOTYtNzJjNC41LTMuNCAxMC44LTMuMiAxNS4xIC42eiJdfSxYd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicXVlc3Rpb24iLGljb246WzMyMCw1MTIsWzEwMDY3LDEwMDY4LDYxNzM2XSwiM2YiLCJNNjQgMTYwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0Mi43LTI3LjkgNzguOS02Ni41IDkxLjQtMjguNCA5LjItNjEuNSAzNS4zLTYxLjUgNzYuNmwwIDI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNGMwLTEuNyAuNi00LjEgMy41LTcuMyAzLTMuMyA3LjktNi41IDEzLjctOC40IDY0LjMtMjAuNyAxMTAuOC04MSAxMTAuOC0xNTIuMyAwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MFMwIDcxLjYgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnptOTYgMzUyYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwLTQwIDE3LjktNDAgNDAgMTcuOSA0MCA0MCA0MHoiXX0sS3dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWJvdW5kIixpY29uOls1NzYsNTEyLFtdLCJlNGY5IiwiTTY0IDMyQzY0IDE0LjMgNDkuNyAwIDMyIDBTMCAxNC4zIDAgMzJMMCAyMTMuOWMwIDE0LjIgNS4xIDI3LjkgMTQuMyAzOC43TDk5LjYgMzUyIDk2IDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzODQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMy42IDAgODUuMy05OS41YzkuMi0xMC44IDE0LjMtMjQuNSAxNC4zLTM4LjdMNTc2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTEyLjgtNjkuMyA5Mi40Yy01LjcgNy42LTE2LjEgOS42LTI0LjIgNC44LTkuNy01LjctMTIuMS0xOC43LTUuMS0yNy41TDQ0MSAxODBjMTAuOC0xMy41IDguOS0zMy4zLTQuNC00NC41cy0zMy05LjgtNDQuNSAzLjJsLTQ2LjcgNTIuNUMzMjkgMjA5LjcgMzIwIDIzMy40IDMyMCAyNTguMWwwIDkzLjktNjQgMCAwLTkzLjljMC0yNC42LTktNDguNC0yNS40LTY2LjhsLTQ2LjctNTIuNWMtMTEuNS0xMy0zMS4zLTE0LjQtNDQuNS0zLjJTMTI0LjIgMTY2LjQgMTM1IDE4MGwyNy42IDM0LjVjNyA4LjggNC43IDIxLjgtNS4xIDI3LjUtOC4xIDQuOC0xOC42IDIuNy0yNC4yLTQuOEw2NCAxNDQuOCA2NCAzMnptNjQgNDQ4bDAgMzIgMTI4IDAgMC0zMiA2NCAwIDAgMzIgMTI4IDAgMC0zMiAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDk2IDQzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAweiJdfSxRd2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctbHVnZ2FnZSIsaWNvbjpbNTEyLDUxMixbXSwiZTU1NCIsIk0yNjQuMyAyNGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bS04IDE4MS4zbC0yMi42IDIyLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDM3LjVjMCAxMi4zLTcgMjMtMTcuMiAyOC40LS45IDQuMi0yLjQgOC40LTQuMyAxMi4zbC02OSAxMzguMS0uOC0uNC0yNy43IDU1LjNjLTkuOSAxOS44LTMzLjkgMjcuOC01My43IDE3LjlMMTQuNiA1MjFjLTE5LjgtOS45LTI3LjgtMzMuOS0xNy45LTUzLjdMNDcuMyAzNjYuM2M5LjktMTkuOCAzMy45LTI3LjggNTMuNy0xNy45bDMwLjcgMTUuMyAyOC4zLTU2LjZjLjMtLjYgLjQtMS4yIC40LTEuOGwwLTE2LjljMC0uMiAwLS4zIDAtLjVsMC0zNy41YzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDM1LjEtMzUuMWMyMi44LTIyLjggNTMuNi0zNS42IDg1LjgtMzUuNiAzNi45IDAgNzEuOCAxNi44IDk0LjggNDUuNkw0MjIuMSAxODBjNi4xIDcuNiAxNS4zIDEyIDI1IDEybDMzLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzMuMiAwYy0yOS4yIDAtNTYuNy0xMy4zLTc1LTM2bC0zLjgtNC43IDAgMTE1LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zTDQ0OCA1MDcuNWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMkwzNzIgNDI4LjRjLTEuMS03LjctNS0xNC43LTEwLjktMTkuOGwtNzEuNC02MS4yYy0yMS4zLTE4LjItMzMuNS00NC45LTMzLjUtNzIuOWwwLTY5LjN6bS4xIDE2NS44YzIuNCAyLjMgNC44IDQuNiA3LjQgNi44bDQ2IDM5LjQtMi4yIDcuNmMtNC41IDE1LjctMTIuOSAzMC0yNC40IDQxLjVsLTY4LjMgNjguM2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjM4IDQyMS4xYzMuOC0zLjggNi42LTguNiA4LjEtMTMuOEwyNTYuNCAzNzF6Il19LHVJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXJyb3ctZG93biIsaWNvbjpbMzg0LDUxMixbImZpbGUtZG93bmxvYWQiXSwiZjU2ZCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTc1IDQ0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2NC02NGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTg2LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4Ni4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDY0IDY0eiJdfSxKd2U9dUksZU1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1ib290aCIsaWNvbjpbNTc2LDUxMixbXSwiZjc1NiIsIk00MCAyNEE1NiA1NiAwIDEgMSAxNTIgMjQgNTYgNTYgMCAxIDEgNDAgMjR6bTUxLjEgODhjMjMuNSAwIDQ1LjUgMTEuMyA1OS4xIDMwLjRsNDguNyA2OC4yYzYgOC40IDE1LjcgMTMuNCAyNiAxMy40bDMxLjEgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzEuMSAwYy0zMSAwLTYwLjEtMTUtNzguMS00MC4ybC0yLjgtMy45IDAgODAuMSA0MS42IDMxLjJDMjA5LjggMzczLjMgMjI0IDQwMS44IDIyNCA0MzJsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMNzAuNCAzNDguOEM0Ni4yIDMzMC43IDMyIDMwMi4yIDMyIDI3MmwwLTEwMC45QzMyIDEzOC41IDU4LjUgMTEyIDkxLjEgMTEyek0zMiA1MTJsMC0xMzIuN2MzLjEgMi43IDYuMyA1LjQgOS42IDcuOUw5NiA0MjggOTYgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyem01NDQtODhsMCA5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTcyLTE2OCAwYy03LjEgMC0xMy44LTMuMS0xOC40LTguNnMtNi41LTEyLjYtNS4zLTE5LjZsMzAuNy0xNzYuNy02My4xLTEzNy42IDAgNzJjLTUuMi0xLTEwLjUtMS42LTE2LTEuNmwtMzIgMCAwLTEyMGMwLTMwLjkgMjUuMS01NiA1Ni01Nkw1MjAgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDM2OHpNMjg4IDMzNmM1LjUgMCAxMC44LS42IDE2LTEuNkwzMDQgNTIwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTg0IDMyIDB6Il19LHRNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2N1c3QiLGljb246WzU3Niw1MTIsW10sImU1MjAiLCJNMzI4IDMyYzEzNyAwIDI0OCAxMTEgMjQ4IDI0OGwwIDQwLS40IDguMkM1NzEuNSAzNjguNSA1MzcuNCA0MDAgNDk2IDQwMGwtMTIuMyAwIDI1LjIgNDQuMWM2LjYgMTEuNSAyLjYgMjYuMi04LjkgMzIuOHMtMjYuMiAyLjYtMzIuNy04LjlsLTM4LjgtNjcuOS04MC40IDAtNDguMiA2OS43Yy03LjUgMTAuOS0yMi41IDEzLjYtMzMuNCA2LjFzLTEzLjYtMjIuNS02LjEtMzMuNGwyOS4zLTQyLjMtNzQuNSAwLTUxLjcgNzAuMmMtNy45IDEwLjctMjIuOSAxMi45LTMzLjYgNS4xcy0xMi45LTIyLjktNS4xLTMzLjZsNDAuNS01NS00My0xNi40LTc5LjMgMTAwLjVjLTguMiAxMC40LTIzLjMgMTIuMi0zMy43IDRzLTEyLjItMjMuMy00LTMzLjdsMjQwLTMwNCAyLjEtMi4zYzUuMi01LjEgMTIuNS03LjUgMTkuOS02LjYgOC40IDEuMSAxNS42IDYuNSAxOC45IDE0LjNsMjEuNyA1MC43IDQwLjktNTUuNSAyLjEtMi40YzUuMS01LjMgMTIuNS04IDIwLTcuMiA4LjUgMSAxNS45IDYuNSAxOS4zIDE0LjRsNDEuOCA5Ny41IDY0LjIgMGMxMC4yIDAgMjAgMiAyOSA1LjUtMTYuNC05NC05OC4zLTE2NS41LTE5Ny0xNjUuNWwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwek00ODggMjk2YTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpNNDMuNSAzMzEuMUMzNi4yIDMyMS40IDMyIDMwOS41IDMyIDI5Ni44IDMyIDI2NS41IDU3LjUgMjQwIDg4LjkgMjQwbDI3LjYgMC03Mi45IDkxLjF6TTIyNS4xIDI0MGw0OC4yIDAgMS40LTEuOS0xNi45LTM5LjUtMzIuNyA0MS41em0xMDcuOCAwbDQ2LjcgMC0xNy4yLTQwLTI5LjUgNDB6Il19LGZJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWxvbmciLGljb246WzU3Niw1MTIsWyJsb25nLWFycm93LWFsdC1yaWdodCJdLCJmMzBiIiwiTTU2Ni42IDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xMjggMTI4Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzODQgMzk2LjkgMzg0IDM4NGwwLTY0LTMzNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMzNiAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWwxMjggMTI4eiJdfSxhTWU9ZkksaU1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWRyb3BsZXQiLGljb246WzU3Niw1MTIsW10sImU1OGMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjA4IDMwNGMtMzkuOCAwLTcyLTMyLjItNzItNzIgMC0zMy4yIDM0LjUtNzggNTUuOC0xMDIuNCA4LjctMTAgMjMuOC0xMCAzMi41IDAgMjEuMiAyNC40IDU1LjggNjkuMSA1NS44IDEwMi40IDAgNDgtMzIuMiA3Mi03MiA3MnoiXX0sck1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1tZWRpY2FsIixpY29uOls1NzYsNTEyLFtdLCJlMDVjIiwiTTI0MCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNTYgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC01NiAwIDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNTYtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1NiAwIDAtNTZ6TTY2LjcgMzg0bDQyLjUtNDIuNWMyNC0yNCA1Ni42LTM3LjUgOTAuNS0zNy41TDM1MiAzMDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyLjYgMCAxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXM5LjMgNDIuOC04LjUgNTUuOUw0MzMuMSA0ODUuNWMtMjMuNCAxNy4yLTUxLjYgMjYuNS04MC43IDI2LjVMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM0LjcgMHoiXX0sc01lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNSIsIk0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmwyMDggMCAwLTY0LTIwOCAwek0xOTIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bS02NC02NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOTYgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDB6bTg4LTk2bC0uNiAwYzUuNCA5LjQgOC42IDIwLjMgOC42IDMyIDAgMTMuMi00IDI1LjQtMTAuOCAzNS42IDI0LjkgOC43IDQyLjggMzIuNSA0Mi44IDYwLjQgMCAxMS43LTMuMSAyMi42LTguNiAzMmw4LjYgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTYxLjdjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC0xMS42LTExLjZDNDI5LjUgNzcuNSAzOTYuOSA2NCAzNjMgNjRsLTI3IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgODhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTU2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA1NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnoiXX0sbk1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGN1bGF0b3IiLGljb246WzM4NCw1MTIsWzEyODQyNV0sImYxZWMiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNOTYgNjRsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2IDE2OGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwem04MCAyNGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyOC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek04OCAzNTJhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjgtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHptODAgMjRhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek02NCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMjMyLTI0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHoiXX0sSjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWludXMiLGljb246WzQ0OCw1MTIsWzgyMTEsODcyMiwxMDEzNCwic3VidHJhY3QiXSwiZjA2OCIsIk0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxvTWU9SjUsbUk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtei1hIixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS11cC1hbHQiXSwiZjg4MiIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODB6TTI4OCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1MC43IDAtNzMuNCA3My40Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMzMDcuMSAyMjQgMzIwIDIyNGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTAuNyAwIDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0NjEgMzIgNDQ4IDMyTDMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQxMi42IDI3My43QzQwNy4yIDI2Mi44IDM5Ni4xIDI1NiAzODQgMjU2cy0yMy4yIDYuOC0yOC42IDE3LjdsLTgwIDE2MGMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjlsLTgwLTE2MHpNMzg0IDM1OS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40eiJdfSxsTWU9bUksY01lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImYxMzEiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MjQuNyAzNTguOEM0NTguOSAzMjQuMiA0ODAgMjc2LjYgNDgwIDIyNGwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCAzOS4zLTE1LjcgNzQuOS00MS4zIDEwMC45TDM1Ni44IDI5MUMzNzMuNiAyNzMuNyAzODQgMjUwIDM4NCAyMjRsMC0xMjhjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMC4yLTE1MS0xNTF6bTI5OC4zIDQzNGwtNDEuNC00MS40Yy0zLjMgLjItNi41IC4zLTkuOCAuMy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NGwwLTEwLjItNDMuNi00My42Yy0yLjggMy45LTQuNCA4LjctNC40IDEzLjhsMCA0MGMwIDk3LjkgNzMuMyAxNzguNyAxNjggMTkwLjVsMCA0OS41LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OS41YzkuMy0xLjIgMTguNC0zIDI3LjMtNS40eiJdfSxKZj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGVuIixpY29uOls0NDgsNTEyLFsicGVuLXNxdWFyZSIsInBlbmNpbC1zcXVhcmUiXSwiZjE0YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjUuOCAxMzkuN2wxNC40IDE0LjRjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTIzLjggMjMuOC03MS03MSAyMy44LTIzLjhjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDB6TTExOS45IDI4OWw5MS41LTkxLjYgNzEgNzEtOTEuNiA5MS41Yy00LjEgNC4xLTkuMiA3LTE0LjkgOC40bC02MC4xIDE1Yy01LjUgMS40LTExLjItLjItMTUuMi00LjJzLTUuNi05LjctNC4yLTE1LjJsMTUtNjAuMWMxLjQtNS42IDQuMy0xMC44IDguNC0xNC45eiJdfSxkTWU9SmYscE1lPUpmLGdJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtZmlzdCIsaWNvbjpbMzg0LDUxMixbOTk5NCwiZmlzdC1yYWlzZWQiXSwiZjZkZSIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDExMi02NCAwIDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgODAtNjQgMCAwLTgwem0xOTIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NnptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDUyLjMtMjUuMSA5OC44LTY0IDEyOGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03OC40Yy0xNy4zLTcuOS0zMy4yLTE4LjgtNDYuOS0zMi41TDM3LjUgMzU3LjVDMTMuNSAzMzMuNSAwIDMwMC45IDAgMjY3bDAtMjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsODggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw1NiAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyeiJdfSxoTWU9Z0ksYkk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1zbXMiLGljb246WzUxMiw1MTIsWyJzbXMiXSwiZjdjZCIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMTQwLjggMTcyLjhsMTkuMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOS4yIDBjLTUuMyAwLTkuNiA0LjMtOS42IDkuNnM0LjMgOS42IDkuNiA5LjZjMjMgMCA0MS42IDE4LjYgNDEuNiA0MS42cy0xOC42IDQxLjYtNDEuNiA0MS42bC0yNS42IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjUuNiAwYzUuMyAwIDkuNi00LjMgOS42LTkuNnMtNC4zLTkuNi05LjYtOS42Yy0yMyAwLTQxLjYtMTguNi00MS42LTQxLjZzMTguNi00MS42IDQxLjYtNDEuNnptMTg4LjggNDEuNmMwLTIzIDE4LjYtNDEuNiA0MS42LTQxLjZsMTkuMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0xOS4yIDBjLTUuMyAwLTkuNiA0LjMtOS42IDkuNnM0LjMgOS42IDkuNiA5LjZjMjMgMCA0MS42IDE4LjYgNDEuNiA0MS42cy0xOC42IDQxLjYtNDEuNiA0MS42bC0yNS42IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMjUuNiAwYzUuMyAwIDkuNi00LjMgOS42LTkuNnMtNC4zLTkuNi05LjYtOS42Yy0yMyAwLTQxLjYtMTguNi00MS42LTQxLjZ6bS05OC4zLTMzLjhsMjQuNyA0MS4xIDI0LjctNDEuMWMzLjctNi4yIDExLjEtOS4xIDE4LTcuMnMxMS43IDguMiAxMS43IDE1LjRsMCAxMDIuNGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ0LjYtOC43IDE0LjVjLTIuOSA0LjgtOC4xIDcuOC0xMy43IDcuOHMtMTAuOC0zLTEzLjctNy44bC04LjctMTQuNSAwIDQ0LjZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xMDIuNGMwLTcuMiA0LjgtMTMuNSAxMS43LTE1LjRzMTQuMyAxIDE4IDcuMnoiXX0sdU1lPWJJLGZNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW0tY2FyZCIsaWNvbjpbMzg0LDUxMixbXSwiZjdjNCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyNTguNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDgwYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0MCAxMjggMCAwLTcyLTk2IDB6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0OCAwIDAtNzItODAgMCAwIDQwem0yNTYgMGwwLTQwLTEyOCAwIDAgNzIgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnptMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJsLTQ4IDAgMCA3MiA4MCAwIDAtNDB6Il19LHZJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjYWxlLWJhbGFuY2VkIixpY29uOls2NDAsNTEyLFs5ODc4LCJiYWxhbmNlLXNjYWxlIl0sImYyNGUiLCJNMzg0IDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDM5OC40IDk2Yy01LjIgMjUuOC0yMi45IDQ3LjEtNDYuNCA1Ny4zbDAgMjk0LjcgMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIzLjUtMTAuMy00MS4yLTMxLjYtNDYuNC01Ny4zTDEyOCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMjggMGMxNC42LTE5LjQgMzcuOC0zMiA2NC0zMnM0OS40IDEyLjYgNjQgMzJ6bTU1LjYgMjg4TDU4NC40IDMyMCA1MTIgMTk1LjggNDM5LjYgMzIwek01MTIgNDE2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45ek0xMjYuOCAxOTUuOEw1NC40IDMyMCAxOTkuMyAzMjAgMTI2LjggMTk1Ljh6TS45IDMzNy4xYy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xLTEwLjggNDQuOC02My4xIDc4LjktMTI2IDc4LjlTMTEuNyAzODIgLjkgMzM3LjF6Il19LG1NZT12SSx5ST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXIiLGljb246WzUxMiw1MTIsWzEyODY2NCwiYXV0b21vYmlsZSJdLCJmMWI5IiwiTTEzNS4yIDExNy40bC0yNi4xIDc0LjYgMjkzLjggMC0yNi4xLTc0LjZDMzcyLjMgMTA0LjYgMzYwLjIgOTYgMzQ2LjYgOTZMMTY1LjQgOTZjLTEzLjYgMC0yNS43IDguNi0zMC4yIDIxLjR6TTM5LjYgMTk2LjhMNzQuOCA5Ni4zQzg4LjMgNTcuOCAxMjQuNiAzMiAxNjUuNCAzMmwxODEuMiAwYzQwLjggMCA3Ny4xIDI1LjggOTAuNiA2NC4zbDM1LjIgMTAwLjVjMjMuMiA5LjYgMzkuNiAzMi41IDM5LjYgNTkuMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMi0zMjAgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDI1NmMwLTI2LjcgMTYuNC00OS42IDM5LjYtNTkuMnpNMTI4IDMwNGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yODggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxnTWU9eUkseEk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvcC1zaW1wbGUiLGljb246WzUxMiw1MTIsWyJjcm9wLWFsdCJdLCJmNTY1IiwiTTEyOCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCAxNC4zIDY0IDMybDAgMzItMzIgMEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsMzIgMCAwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDggMCAwLTY0LTIwOCAwIDAtMzUyek0zODQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yMDggMCAwIDY0IDIwOCAwIDAgMzUyeiJdfSxiTWU9eEksdk1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lZGFsIixpY29uOls0NDgsNTEyLFsxMjc5NDFdLCJmNWEyIiwiTTIyNC4zIDEyOEwxMzkuNy0xMi45Yy02LjUtMTAuOC0yMC4xLTE0LjctMzEuMy05LjFMMjEuOCAyMS4zQzkuOSAyNy4yIDUuMSA0MS42IDExIDUzLjVMODAuNiAxOTIuNmMtMzAuMSAzMy45LTQ4LjMgNzguNS00OC4zIDEyNy40IDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtNDguOS0xOC4zLTkzLjUtNDguMy0xMjcuNEw0MzcuNiA1My41YzUuOS0xMS45IDEuMS0yNi4zLTEwLjctMzIuMkwzNDAuMi0yMi4xYy0xMS4yLTUuNi0yNC45LTEuNi0zMS4zIDkuMUwyMjQuMyAxMjh6bTMwLjggMTQyLjVjMS40IDIuOCA0IDQuNyA3IDUuMWw1MC4xIDcuM2M3LjcgMS4xIDEwLjcgMTAuNSA1LjIgMTZsLTM2LjMgMzUuNGMtMi4yIDIuMi0zLjIgNS4yLTIuNyA4LjNsOC42IDQ5LjljMS4zIDcuNi02LjcgMTMuNS0xMy42IDkuOWwtNDQuOC0yMy42Yy0yLjctMS40LTYtMS40LTguNyAwbC00NC44IDIzLjZjLTYuOSAzLjYtMTQuOS0yLjItMTMuNi05LjlsOC42LTQ5LjljLjUtMy0uNS02LjEtMi43LTguM2wtMzYuMy0zNS40Yy01LjYtNS40LTIuNS0xNC44IDUuMi0xNmw1MC4xLTcuM2MzLS40IDUuNy0yLjQgNy01LjFsMjIuNC00NS40YzMuNC03IDEzLjMtNyAxNi44IDBsMjIuNCA0NS40eiJdfSx5TWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsIixpY29uOls1NzYsNTEyLFsxMjgyMjBdLCJmNzBlIiwiTTAgMTEyQzAgNzAuNSAzMS42IDM2LjQgNzIgMzIuNGwwLS40IDI4MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAxNzYtMTc2IDBjLTM5LjggMC03MiAzMi4yLTcyIDcybDAgNjBjMCAyNC4zLTE5LjcgNDQtNDQgNDRzLTQ0LTE5LjctNDQtNDRsMC0yMjgtNjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OHpNMjM2LjggNDgwYzcuMS0xMy4xIDExLjItMjguMSAxMS4yLTQ0bDAtNjBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjI3LjIgMHpNODAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSx4TWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1leGNlbCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTY0IDI2Ni43Yy03LjQtMTEtMjIuMy0xNC0zMy4zLTYuN3MtMTQgMjIuMy02LjcgMzMuM0wxNjMuMiAzNTIgMTI0IDQxMC43Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMjgtNDIgMjggNDJjNy40IDExIDIyLjMgMTQgMzMuMyA2LjdzMTQtMjIuMyA2LjctMzMuM0wyMjAuOCAzNTIgMjYwIDI5My4zYzcuNC0xMSA0LjQtMjUuOS02LjctMzMuM3MtMjUuOS00LjQtMzMuMyA2LjdsLTI4IDQyLTI4LTQyeiJdfSx3TWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyIixpY29uOls1MTIsNTEyLFtdLCJmMGIwIiwiTTMyIDY0QzE5LjEgNjQgNy40IDcxLjggMi40IDgzLjhTLjIgMTA5LjUgOS40IDExOC42TDE5MiAzMDEuMyAxOTIgNDE2YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzMyMCA0OTIuOSAzMjAgNDgwbDAtMTc4LjcgMTgyLjYtMTgyLjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0eiJdfSxNTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bSIsaWNvbjpbNTEyLDUxMixbMTI5MzQ1XSwiZjU2OSIsIk01MDEuMiA3Ni4xYzExLjEtNy4zIDE0LjItMjIuMSA2LjktMzMuMnMtMjIuMS0xNC4yLTMzLjItNi45TDM3MC4yIDEwNC41QzMzNS44IDk4LjcgMjk3IDk2IDI1NiA5NiAxMTQuNiA5NiAwIDEyOCAwIDIwOEwwIDM2OGMwIDMxLjMgMjcuNCA1OC44IDcyIDc4LjdMNzIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMTkuNGMzMyA4LjkgNzEuMSAxNC41IDExMiAxNi4xTDIzMiAzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMy41YzQwLjktMS42IDc5LTcuMiAxMTItMTYuMUwzOTIgMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDIuN2M0NC42LTE5LjkgNzItNDcuNCA3Mi03OC43bDAtMTYwYzAtNDEuMS0zMC4yLTY5LjUtNzguOC04Ny40bDY3LjktNDQuNXpNMzA3LjQgMTQ1LjZsLTY0LjYgNDIuM2MtMTEuMSA3LjMtMTQuMiAyMi4xLTYuOSAzMy4yczIyLjEgMTQuMiAzMy4yIDYuOWwxMTEuMS03Mi44YzE0LjcgMy4yIDI3LjkgNyAzOS40IDExLjUgMzguOCAxNS4xIDQ0LjQgMzAuNiA0NC40IDQxLjMgMCAuOC0yLjcgMTcuMi00NiAzNS45LTM4LjkgMTYuOC05NiAyOC4xLTE2MiAyOC4xUzEzMi45IDI2MC43IDk0IDI0My45Yy00My4zLTE4LjctNDYtMzUuMS00Ni0zNS45IDAtMTAuNiA1LjYtMjYuMiA0NC40LTQxLjMgMzguMy0xNC45IDk1LjQtMjIuNyAxNjMuNi0yMi43IDE4IDAgMzUuMSAuNSA1MS40IDEuNnoiXX0sek1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcC1waW4iLGljb246WzMyMCw1MTIsWzEyODIwNV0sImYyNzYiLCJNMTkyIDI4NC40QzI1Ni4xIDI2OS45IDMwNCAyMTIuNSAzMDQgMTQ0IDMwNCA2NC41IDIzOS41IDAgMTYwIDBTMTYgNjQuNSAxNiAxNDRjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40TDEyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5NS42ek0xNjggOTZjLTMwLjkgMC01NiAyNS4xLTU2IDU2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNCA0Ni42LTEwNCAxMDQtMTA0IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSx3ST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS11bmJhbGFuY2VkLWZsaXAiLGljb246WzY0MCw1MTIsWyJiYWxhbmNlLXNjYWxlLXJpZ2h0Il0sImY1MTYiLCJNMTE4LjIgNjIuNEMxMDEuNSA1Ni44IDkyLjQgMzguNiA5OCAyMS45UzEyMS43LTMuOSAxMzguNSAxLjZsMTEzIDM3LjdjMTMuOS0yMy41IDM5LjYtMzkuMyA2OC45LTM5LjMgNDQuMiAwIDgwIDM1LjggODAgODAgMCAzLS4yIDUuOS0uNSA4LjhsMTIyLjYgNDAuOWMxNi44IDUuNiAyNS44IDIzLjcgMjAuMiA0MC41cy0yMy43IDI1LjgtNDAuNSAyMC4yTDM2Ni43IDE0NS4yYy00LjUgMy4yLTkuMyA1LjktMTQuNCA4LjJsMCAzMjYuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDAgMC0yOTQuN2MtMjEtOS4yLTM3LjItMjctNDQuMi00OWwtMTI1LjktNDJ6TTIwMC44IDI4OEwxMjguMyAxNjMuOCA1NS45IDI4OCAyMDAuOCAyODh6bS03Mi40IDk2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45em0zODIuOC05Mi4ybC03Mi40IDEyNC4yIDE0NC45IDAtNzIuNC0xMjQuMnptMTI2IDE0MS4zQzYyNi40IDQ3OCA1NzQuMSA1MTIgNTExLjIgNTEycy0xMTUuMi0zNC0xMjYtNzguOWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMXoiXX0sa01lPXdJLFNNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdG8tY2lyY2xlIixpY29uOls1MTIsNTEyLFtdLCJlNGJkIiwiTTkuNCA5LjRDMjEuOS0zLjEgNDIuMS0zLjEgNTQuNiA5LjRMMTI4IDgyLjcgMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC43IDAtNzMuNC03My40Qy0zLjEgNDIuMS0zLjEgMjEuOSA5LjQgOS40ek0yMDAgMjU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNNTAyLjYgNTQuNkw0MjkuMyAxMjggNDQ4IDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTguNyA3My40LTczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptLTQ1LjMgNDQ4TDM4NCA0MjkuMyAzODQgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguNyAwIDczLjQgNzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMHpNOS40IDQ1Ny40TDgyLjcgMzg0IDY0IDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOC43LTczLjQgNzMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6Il19LENNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZSIsaWNvbjpbNTEyLDUxMixbMTI4Mzg2LDk5OTMsNjE0NDNdLCJmMGUwIiwiTTQ4IDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDE1LjEgNy4xIDI5LjMgMTkuMiAzOC40bDIwOCAxNTZjMTcuMSAxMi44IDQwLjUgMTIuOCA1Ny42IDBsMjA4LTE1NmMxMi4xLTkuMSAxOS4yLTIzLjMgMTkuMi0zOC40IDAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDY0ek0wIDE5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE4OC0xOTguNCAxNDguOGMtMzQuMSAyNS42LTgxLjEgMjUuNi0xMTUuMiAwTDAgMTk2eiJdfSxfTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFieSIsaWNvbjpbMzg0LDUxMixbXSwiZjc3YyIsIk0xMjAgODhhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwek03LjcgMTQ0LjVjMTMtMTcuOSAzOC0yMS44IDU1LjktOC44TDk5LjggMTYyYzI2LjggMTkuNSA1OS4xIDMwIDkyLjIgMzBzNjUuNC0xMC41IDkyLjItMzBsMzYuMi0yNi40YzE3LjktMTMgNDIuOS05IDU1LjkgOC44czkgNDIuOS04LjggNTUuOWwtMzYuMiAyNi40Yy0xMy42IDkuOS0yOC4xIDE4LjItNDMuMyAyNWwwIDM2LjMtMTkyIDAgMC0zNi4zYy0xNS4yLTYuNy0yOS43LTE1LjEtNDMuMy0yNUwxNi41IDIwMC4zYy0xNy45LTEzLTIxLjgtMzgtOC44LTU1Ljl6TTk3LjUgMzI5LjNsNjAuNiA1My0yNiAzNy4yIDI0LjMgMjQuM2MxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNnMtNDAuOSAxNS42LTU2LjYgMGwtNDgtNDhDMzggNDM4LjYgMzYuMSA0MTcgNDcuMiA0MDEuMWw1MC4yLTcxLjh6bTEyOC41IDUzbDYwLjYtNTMgNTAuMiA3MS44YzExLjEgMTUuOSA5LjIgMzcuNS00LjUgNTEuMmwtNDggNDhjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwcy0xNS42LTQwLjkgMC01Ni42bDI0LjMtMjQuMy0yNi0zNy4yeiJdfSxNST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQ4MGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45UzExMC41IDE5MiAxMjAgMTkybDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6Il19LFRNZT1NSSxMTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3ZCIsIk0yNi45IDIwNi45TDMuNyA0NDQuOUMxLjggNDYzLjcgMTYuNiA0ODAgMzUuNSA0ODBsMTcyLjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOWMwLTguMyA2LjctMTUgMTUtMTUgNS41IDAgMTAuNiAzIDEzLjIgNy45bDg2LjEgMTU5YzguNCAxNS41IDI0LjYgMjUuMSA0Mi4yIDI1LjFsNjQuMSAwYzE4LjkgMCAzMy43LTE2LjMgMzEuOC0zNS4xTDQ4NS42IDIwNy4xYy0xLjktMTkuNi0xMi44LTM3LjMtMjkuNS00Ny44TDI4MC45IDQ4LjNjLTE1LjctMTAtMzUuOC05LjktNTEuNSAuMUw1Ni4xIDE1OS4yYy0xNi41IDEwLjYtMjcuMyAyOC4yLTI5LjIgNDcuN3oiXX0sJE1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImEiLGljb246WzM4NCw1MTIsWzk3XSwiNDEiLCJNMjIxLjUgNTEuN0MyMTYuNiAzOS44IDIwNC45IDMyIDE5MiAzMnMtMjQuNiA3LjgtMjkuNSAxOS43Yy05My4zIDIyNC0xNDYuNyAzNTItMTYwIDM4NC02LjggMTYuMyAuOSAzNSAxNy4yIDQxLjhzMzUtLjkgNDEuOC0xNy4ybDMxLjgtNzYuMyAxOTcuMyAwIDMxLjggNzYuM2M2LjggMTYuMyAyNS41IDI0IDQxLjggMTcuMnMyNC0yNS41IDE3LjItNDEuOGMtMTMuMy0zMi02Ni43LTE2MC0xNjAtMzg0ek0yNjQgMzIwbC0xNDQgMCA3Mi0xNzIuOCA3MiAxNzIuOHoiXX0sQU1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcmFjaHV0ZS1ib3giLGljb246WzUxMiw1MTIsW10sImY0Y2QiLCJNMTI4IDIyNEMxMjggMTUyLjIgMTQ0LjMgODguNCAxNjkuNSA0My40IDE5NS4xLTIuNCAyMjYuNi0yNCAyNTYtMjRzNjAuOSAyMS42IDg2LjUgNjcuNEMzNjcuNyA4OC40IDM4NCAxNTIuMiAzODQgMjI0bC0xMDQgMCAwIDk2IDggMGM5LjMgMCAxOC4xIDIgMjYgNS41bDExOC40LTEwMS41LS41IDBjMC03OC40LTE3LjctMTUwLjYtNDcuNi0yMDQtNi4xLTExLTEyLjktMjEuMy0yMC4zLTMwLjkgODYuNSAzNS45IDE0Ny44IDExNS4xIDE0Ny44IDIxOC45IDAgNy0zLjEgMTMuNy04LjQgMTguMkwzNDcuNCAzNjAuMWMzIDcuNCA0LjYgMTUuNCA0LjYgMjMuOWwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtOC40IDEuNi0xNi41IDQuNi0yMy45TDguNCAyMjYuMkMzLjEgMjIxLjcgMCAyMTUgMCAyMDggMCAxMDQuMiA2MS4zIDI0LjkgMTQ3LjgtMTAuOSAxNDAuNS0xLjQgMTMzLjcgOSAxMjcuNiAyMCA5Ny43IDczLjQgODAgMTQ1LjYgODAgMjI0bC0uNSAwIDExOC40IDEwMS41YzgtMy41IDE2LjgtNS41IDI2LTUuNWw4IDAgMC05Ni0xMDQgMHoiXX0sRE1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtYXJyb3ctZG93biIsaWNvbjpbNjQwLDUxMixbXSwiZjIxOCIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgMTg3LjIgMCAwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjEgMTc3LjQgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sRU1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzU3Niw1MTIsW10sImU0Y2EiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2IDYuNCAwIDEyLjcgLjYgMTguNyAxLjggMzQuNy00OS41IDkyLjItODEuOCAxNTcuMy04MS44IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNC00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxlbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1hcnJvdy11cCIsaWNvbjpbNTc2LDUxMixbNjIzMzgsImNsb3VkLXVwbG9hZCIsImNsb3VkLXVwbG9hZC1hbHQiXSwiZjBlZSIsIk0xNDQgNDgwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTYzLjQgNDEtMTE3LjIgOTcuOS0xMzYuNS0xLjMtNy43LTEuOS0xNS41LTEuOS0yMy41IDAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDU1LjQgMCAxMDMuNSAzMS4zIDEyNy42IDc3LjEgMTQuMi04LjMgMzAuOC0xMy4xIDQ4LjQtMTMuMSA1MyAwIDk2IDQzIDk2IDk2IDAgMTUuNy0zLjggMzAuNi0xMC41IDQzLjcgNDQgMjAuMyA3NC41IDY0LjcgNzQuNSAxMTYuMyAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDB6TTMwNSAxOTFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC03MiA3MmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMxLTMxIDAgMTAyLjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMi4xIDMxIDMxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzItNzJ6Il19LFBNZT1lbSxJTWU9ZW0sTk1lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF0IixpY29uOls1MTIsNTEyLFs2MTk0Nl0sIjQwIiwiTTI1NiA2NEMxNTAgNjQgNjQgMTUwIDY0IDI1NnM4NiAxOTIgMTkyIDE5MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NlMxMTQuNiAwIDI1NiAwIDUxMiAxMTQuNiA1MTIgMjU2bDAgMzJjMCA1My00MyA5Ni05NiA5Ni0yOS4zIDAtNTUuNi0xMy4yLTczLjItMzMuOS0yMi44IDIxLTUzLjMgMzMuOS04Ni44IDMzLjktNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGMyNy45IDAgNTMuNyA4LjkgNzQuNyAyNC4xIDUuNy01IDEzLjEtOC4xIDIxLjMtOC4xIDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMmMwLTEwNi04Ni0xOTItMTkyLTE5MnptNjQgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHoiXX0sdG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kaWFuLXJ1cGVlLXNpZ24iLGljb246WzMyMCw1MTIsWyJpbmRpYW4tcnVwZWUiLCJpbnIiXSwiZTFiYyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC03Ni43IDBjMTcuNyAxOS44IDMwLjEgNDQuNiAzNC43IDcybDQyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQyIDBjLTEwLjQgNjIuMi02MC44IDExMC45LTEyMy44IDExOC45TDI3NC42IDQyMmMxNC40IDEwLjMgMTcuNyAzMC4zIDcuNCA0NC42cy0zMC4zIDE3LjctNDQuNiA3LjRMMTMuNCAzMTRDMi4xIDMwNi0yLjcgMjkxLjUgMS41IDI3OC4yUzE4LjEgMjU2IDMyIDI1Nmw4MCAwYzM1LjggMCA2Ni4xLTIzLjUgNzYuMy01NkwyNCAyMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTY0LjMgMGMtMTAuMi0zMi41LTQwLjUtNTYtNzYuMy01NkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0eiJdfSxGTWU9dG0sT01lPXRtLFJNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNTU3LjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNTc2IDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMy4zIDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0xMDIuNiAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTUxMiAyODhsMC01MC43LTQ1LjMtNDUuMy01MC43IDAgMCA5NiA5NiAwek0xOTIgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTIzMiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LHpJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWxrYm9hcmQtdXNlciIsaWNvbjpbNjQwLDUxMixbImNoYWxrYm9hcmQtdGVhY2hlciJdLCJmNTFjIiwiTTE5MiAzODRjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtNTMgNDMtOTYgOTYtOTZsOTYgMHpNNTQ0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzMuMS0yNS4yIDYwLjQtNTcuNSA2My43bC02LjUgLjMtMjExLjEgMGMtNS4xLTI0LjItMTYuMy00Ni4xLTMyLjEtNjRsNTEuMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDAgMC0yODgtMzUyIDAgMCA1Ny4zYy0xNC44LTYtMzEtOS4zLTQ4LTkuMy01LjQgMC0xMC44IC4zLTE2IDFsMC00OWMwLTM1LjMgMjguNy02NCA2NC02NGwzNTIgMHpNMTQ0IDM1MmE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHoiXX0sQk1lPXpJLEhNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJmNGZjIiwiTTI4NiAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzggNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM2w1OS40IDB6TTU4NS43IDEwNS45YzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVMNTIyLjEgMjc0LjljLTQuMiA1LjctMTAuNyA5LjQtMTcuNyA5LjhzLTE0LTIuMi0xOC45LTcuM2wtNDYuNC00OGMtOS4yLTkuNS05LTI0LjcgLjYtMzMuOSA5LjUtOS4yIDI0LjctOC45IDMzLjkgLjZsMjYuNSAyNy40IDg1LjYtMTE3Ljd6TTI1Ni4zIDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LHFNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW5pbmphIixpY29uOls0NDgsNTEyLFsxMjkzOTldLCJmNTA0IiwiTTM1MiAxMjhjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjgtNTcuMiAwLTEwNS42LTM3LjUtMTIyLTg5LjMtMS4xIDEuMy0yLjIgMi42LTMuNSAzLjgtMTUuOCAxNS44LTM4LjggMjAuNy01My42IDIyLjEtOC4xIC44LTE0LjYtNS43LTEzLjgtMTMuOCAxLjQtMTQuNyA2LjMtMzcuOCAyMi4xLTUzLjYgNS44LTUuOCAxMi42LTEwLjEgMTkuNi0xMy40LTctMy4yLTEzLjgtNy42LTE5LjYtMTMuNC0xNS44LTE1LjgtMjAuNy0zOC44LTIyLjEtNTMuNi0uOC04LjEgNS43LTE0LjYgMTMuOC0xMy44IDE0LjcgMS40IDM3LjggNi4zIDUzLjYgMjIuMSA0LjggNC44IDguNyAxMC40IDExLjcgMTYuMSAyMS4zLTQxLjIgNjQuMy02OS40IDExMy44LTY5LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjh6TTE0NCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2TDE2MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2em0tMS40IDIxMWw2NyA1MC4yYzguNSA2LjQgMjAuMyA2LjQgMjguOCAwbDY3LTUwLjJjNi41LTQuOSAxNS4yLTYuMiAyMi42LTIuOCA2MS40IDI4LjIgMTA0LjEgOTAuMiAxMDQuMSAxNjIuMSAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0NS43IDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC03MiA0Mi43LTEzNCAxMDQuMS0xNjIuMSA3LjQtMy40IDE2LjEtMi4xIDIyLjYgMi44eiJdfSxWTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbnQtd2lsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTVhYSIsIk0zNDQtMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjBsMCA2LjJjMjkuMyAxMi4yIDQ4IDQxLjMgNDggNzYuOSAwIDI3LjktMjUuMyA3NC44LTY2IDExMS43LTMuOCAzLjUtOC44IDUuMy0xNCA1LjNzLTEwLjItMS44LTE0LTUuM2MtNDAuNy0zNi44LTY2LTgzLjctNjYtMTExLjcgMC0zNS42IDE4LjctNjQuNyA0OC03Ni45bDAtNi4yYzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgNDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjk2YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2bDAgMzguMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zQzI1LjMgNDA1LjkgMCAzNTkgMCAzMzEuMSAwIDI5NS40IDE4LjcgMjY2LjQgNDggMjU0LjJMNDggMjE2YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDIwLjIgMCAzOS4zIDUgNTYgMTMuOEwyMjQgODhjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjB6Il19LGtJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1zY2FsZSIsaWNvbjpbNDQ4LDUxMixbIndlaWdodCJdLCJmNDk2IiwiTTExNi42IDE5MmMtMy0xMC4xLTQuNi0yMC45LTQuNi0zMiAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMlMzMzYgOTguMSAzMzYgMTYwYzAgMTEuMS0xLjYgMjEuOS00LjYgMzJsLTcxIDAgMjQuNi00NC4zYzYuNC0xMS42IDIuMy0yNi4yLTkuMy0zMi42cy0yNi4yLTIuMy0zMi42IDkuM2wtMzcuNiA2Ny43LTg4LjggMHpNMTI4IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBDMjkzLjMgMTEuOSAyNjAgMCAyMjQgMHMtNjkuMyAxMS45LTk2IDMyeiJdfSxqTWU9a0ksWm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyZXQtcmlnaHQiLGljb246WzI1Niw1MTIsW10sImYwZGEiLCJNMjQ5LjMgMjM1LjhjMTAuMiAxMi42IDkuNSAzMS4xLTIuMiA0Mi44bC0xMjggMTI4Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVM2NC41IDM5Ni45IDY0LjUgMzg0bDAtMjU2YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsMTI4IDEyOCAyLjIgMi40eiJdfSxVTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxvcmluLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxODQiLCJNMzE0LjcgMzJjLTM4LjggMC03My43IDIzLjMtODguNiA1OS4xTDE3MC43IDIyNCA2NCAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODAgMC00NS4xIDEwOC4zYy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN0wzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcuMyAwYzM4LjggMCA3My43LTIzLjMgODguNi01OS4xTDIxMy4zIDI4OCAzMjAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04MCAwIDQ1LjEtMTA4LjNjNS0xMS45IDE2LjYtMTkuNyAyOS41LTE5LjdMMzUyIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNy4zIDB6Il19LFhtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlbGwiLGljb246WzQ0OCw1MTIsWzEyODI3Niw2MTYwMl0sImYwZjMiLCJNMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMy4yQzExOSA1MCA2NCAxMTQuNiA2NCAxOTJsMCAyMS43YzAgNDguMS0xNi40IDk0LjgtNDYuNCAxMzIuNEw3LjggMzU4LjNDMi43IDM2NC42IDAgMzcyLjQgMCAzODAuNSAwIDQwMC4xIDE1LjkgNDE2IDM1LjUgNDE2bDM3Ni45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTkuOC0xMi4yQzQwMC40IDMwOC41IDM4NCAyNjEuOCAzODQgMjEzLjdsMC0yMS43YzAtNzcuNC01NS0xNDItMTI4LTE1Ni44bDAtMy4yYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xNjIgNDY0YzcuMSAyNy42IDMyLjIgNDggNjIgNDhzNTQuOS0yMC40IDYyLTQ4bC0xMjQgMHoiXX0sV01lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxhcmktc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTFjOCIsIk0xNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQxLjVjNy45LTEgMTUuOS0xLjUgMjQtMS41czE2LjEgLjUgMjQgMS41TDIxNiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNTRjNTguOSAyMy44IDEwMy4yIDc2IDExNi4yIDEzOS43IDMuNSAxNy4zLTcuNyAzNC4yLTI1IDM3LjdzLTM0LjItNy43LTM3LjctMjVjLTYuNy0zMy4yLTI2LjQtNjEuOC01My40LTgwLjJsMCA4MS44YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTAxLjhjLTcuOC0xLjUtMTUuOC0yLjItMjQtMi4ycy0xNi4yIC44LTI0IDIuMkwxNjggMjMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtODEuOGMtMzMuOCAyMy01NiA2MS45LTU2IDEwNS44IDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNi45IDBDMTguNSAzNTAgMCAzMDUuMiAwIDI1NiAwIDE3NS40IDQ5LjYgMTA2LjQgMTIwIDc4bDAtNTRjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LEdNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWxsLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZWQiLCJNMjk3LTIyLjJjMTIuMyA1IDE4LjIgMTkgMTMuMiAzMS4zbC0yOSA3MS4zQzMzOC44IDg1LjEgMzg0IDEzMy4zIDM4NCAxOTJsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDgtNi40IDAtMTIuNSAxLjItMTggMy41bC0zMCA3My44IDAgMTc4LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMS4yLTU3LjggMTQyLjJjLTUgMTIuMy0xOSAxOC4yLTMxLjMgMTMuMnMtMTguMi0xOS0xMy4yLTMxLjNMMTYwIDI1MS4zIDE2MCAxOTJjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0MTcuNyAwIDQwMEwwIDExMmMwLTE3LjcgMTQuMy0zMiAzMi0zMiAxMC45IDAgMjAuNSA1LjQgMjYuMyAxMy43IDE2LTguNyAzNC4zLTEzLjcgNTMuNy0xMy43IDMxLjMgMCA1OS43IDEyLjkgODAgMzMuNiA5LjYtOS44IDIwLjktMTcuOCAzMy41LTIzLjVMMjY1LjgtOWM1LTEyLjMgMTktMTguMiAzMS4zLTEzLjJ6Il19LFNJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1zbm93Ym9hcmRpbmciLGljb246WzU3Niw1MTIsWzEyNzkzOCwic25vd2JvYXJkaW5nIl0sImY3Y2UiLCJNNDI0LjUgMTZhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE2Ni40IDQ1LjVjMTAuMi0xNC40IDMwLjItMTcuOSA0NC42LTcuN2wyNzIgMTkyYzE0LjQgMTAuMiAxNy45IDMwLjIgNy43IDQ0LjZzLTMwLjIgMTcuOS00NC42IDcuN2wtOTIuMi02NS4xLTYyLjIgNTMuMyAzMi4xIDI2LjdjMTguMiAxNS4yIDI4LjggMzcuNyAyOC44IDYxLjVsMCA4Ny44IDc3LjUgMTUuMmM2LjIgMS4yIDEyLjYgLjkgMTguNy0uOGw0MS4yLTExLjhjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtNDEuMiAxMS44Yy0xMy40IDMuOC0yNy40IDQuNC00MS4xIDEuOEw4Ny4xIDQ0My4zYy0xNy4yLTMuNC0zMy0xMS44LTQ1LjMtMjQuMUwxNS41IDM5M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDI2LjIgMjYuMmM1LjYgNS42IDEyLjggOS40IDIwLjYgMTFsNjQuMiAxMi42IDAtMTIzLjdjMC0yNy43IDEyLTU0IDMyLjgtNzIuMmw2OS02MC40LTg4LjItNjIuM0MxNTkuNiA4MCAxNTYuMiA2MCAxNjYuNCA0NS41em01OC4xIDM3NS43bDY0IDEyLjUgMC03NS4zYzAtNC43LTIuMS05LjMtNS44LTEyLjNsLTU4LjItNDguNSAwIDEyMy42eiJdfSxZTWU9U0ksQ0k9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHR5IixpY29uOls1MTIsNTEyLFsidGVsZXR5cGUiXSwiZjFlNCIsIk00NTAuMiAyNjYuOGMxNS44IDYuNSAzNC4xIC4zIDQyLjYtMTQuNmwyLjQtNC4yYzI3LjktNDguOSAyMy42LTExOC44LTMxLjMtMTU0LjUtMTI2LTgyLTI4OS42LTgyLTQxNS42IDAtNTQuOSAzNS43LTU5LjMgMTA1LjctMzEuMyAxNTQuNWwyLjQgNC4yYzguNSAxNC45IDI2LjcgMjEuMSA0Mi42IDE0LjZsODEuOS0zMy43YzEzLjktNS43IDIyLjQtMTkuOSAyMC45LTM0LjlsLTUuMS01MWM2Mi41LTIxIDEzMC44LTE5LjkgMTkyLjYgMy4zbC00LjggNDcuN2MtMS41IDE1IDcgMjkuMiAyMC45IDM0LjlsODEuOSAzMy43ek0zMiAzNTJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHptOTYgMGEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwek02NCA0MTZhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0zNTIgMzJhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHpNMjU2IDMyMGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTY0IDMyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTEyOC0zMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTEyOCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sWk1lPUNJLFhNZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1yZWN0YW5nbGUiLGljb246WzU3Niw1MTIsW10sImU1OTQiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjI0IDcyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0wIDE1MmM1MyAwIDk2IDQzIDk2IDk2bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtNTMgNDMtOTYgOTYtOTZ6bTk2LTY0YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAyNzIuM2MtMTUuMiAyMi44LTI0IDUwLjItMjQgNzkuN2wwIDI0YzAgOC40IDEuNCAxNi41IDQuMSAyNGwtNDYuOCAwQzg5LjYgNDAwIDgwIDM5MC40IDgwIDM3OC43TDgwIDM2OGMwLTUwLjMgMzguNy05MS42IDg4LTk1Ljd6TTQyNy45IDQwMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLTI0YzAtMjkuNS04LjgtNTYuOS0yNC03OS43IDQ5LjMgNC4xIDg4IDQ1LjMgODggOTUuN2wwIDEwLjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtNDYuOCAwek05NiAxOTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sYW09e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlIixpY29uOlszODQsNTEyLFsxMjgyNDEsIm1vYmlsZS1hbmRyb2lkIiwibW9iaWxlLXBob25lIl0sImYzY2UiLCJNODAgMEM0NC43IDAgMTYgMjguNyAxNiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw4MCAwem03MiA0MTZsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sS01lPWFtLFFNZT1hbSxKTWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXR1cm4tdG8tZG90cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMSIsIk0yNjUuNC02LjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wyODUuMyA2NCAzNTIgNjRjNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTY2LjcgMCAyNS40IDI1LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w4MC04MHptLTgyLjcgMjcybDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTYyLjcgNDAwIDk2IDQwMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ4MS43IDAgNDY0bDAtMzJjMC01MyA0My05NiA5Ni05Nmw2Ni43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwek0zMjAgMzY4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNjQgMTYwYTY0IDY0IDAgMSAxIDAtMTI4IDY0IDY0IDAgMSAxIDAgMTI4eiJdfSxlemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXhjbGFtYXRpb24iLGljb246WzEyOCw1MTIsWzEwMDY5LDEwMDcxLDYxNzM4XSwiMjEiLCJNNjQgNDMyYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDBjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAuNiAwIDEuMSAwIDEuN2wtMTYgMzA0Yy0uOSAxNy0xNSAzMC4zLTMyIDMwLjNTMzMgMzcwLjcgMzIgMzUzLjdMMTYgNDkuN2MwLS42IDAtMS4xIDAtMS43IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4eiJdfSx0emU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2h1cmNoIixpY29uOls1MTIsNTEyLFs5OTYyXSwiZjUxZCIsIk0yODAtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMyMzItMjEuMyAyMzItOGwwIDI0LTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDQ4LTk4LjYgNjUuOEMxMjAgMTg2LjcgMTEyIDIwMS42IDExMiAyMTcuN2wwIDM4LjMtNzkuOCA0NS42QzEyLjMgMzEzIDAgMzM0LjIgMCAzNTcuMUwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCA3NC43IDAgODUuNCAwIDMyMCAwbDY0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05MC45YzAtMjMtMTIuMy00NC4yLTMyLjItNTUuNkw0MDAgMjU2IDQwMCAyMTcuN2MwLTE2LTgtMzEtMjEuNC0zOS45bC05OC42LTY1LjggMC00OCAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMjR6TTI1NiAzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4MC0xMjggMCAwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxhemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9nZ2xlLW9mZiIsaWNvbjpbNTc2LDUxMixbXSwiZjIwNCIsIk0zODQgMTI4YzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzQ1NC43IDM4NCAzODQgMzg0bC0xOTIgMGMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGwxOTIgMHpNNTc2IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MkwxOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhsMTkyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJ6TTE5MiAzMzZhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6Il19LGl6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9lLXByaW50cyIsaWNvbjpbNTc2LDUxMixbXSwiZjU0YiIsIk0yOTYgMTkyYy0yMS4xLTEyLjEtNDIuMy0yNC4yLTcyLTI5LjNsMC0xNDAuM0MyNTcuNyAxMyAzMTEuNCAwIDM1MiAwIDQ0OCAwIDU3NiA0OCA1NzYgMTI4cy0xMTkuNiA5Ni0xNzYgOTZjLTQ4IDAtNzYtMTYtMTA0LTMyek0xMjggMzJsNDggMCAwIDEyOC00OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0ek0yMzIgMzIwYzI4LTE2IDU2LTMyIDEwNC0zMiA1Ni40IDAgMTc2IDE2IDE3NiA5NlMzODQgNTEyIDI4OCA1MTJjLTQwLjUgMC05NC4zLTEzLTEyOC0yMi40bDAtMTQwLjNjMjkuNy01LjIgNTAuOS0xNy4zIDcyLTI5LjR6TTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGw0OCAwIDAgMTI4LTQ4IDB6Il19LHJ6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTRlYiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxLbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YWxsZXQiLGljb246WzUxMiw1MTIsW10sImY1NTUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw3MiAxMjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzU4LjcgODAgNzIgODBsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgMzJ6TTQxNiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxlOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZXNzYWdlIixpY29uOls1MTIsNTEyLFsiY29tbWVudC1hbHQiXSwiZjI3YSIsIk0wIDM1MkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDMyMCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCA1My00MyA5Ni05NiA5NmwtMTIwIDBjLTUuMiAwLTEwLjIgMS43LTE0LjQgNC44TDE2Ni40IDUzOS4yYy00LjIgMy4xLTkuMiA0LjgtMTQuNCA0LjgtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC03Mi0zMiAwYy01MyAwLTk2LTQzLTk2LTk2eiJdfSxzemU9ZTgsbnplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyb3BoeSIsaWNvbjpbNTEyLDUxMixbMTI3OTQyXSwiZjA5MSIsIk0xNDQuMyAwbDIyNCAwYzI2LjUgMCA0OC4xIDIxLjggNDcuMSA0OC4yLS4yIDUuMy0uNCAxMC42LS43IDE1LjhsNDkuNiAwYzI2LjEgMCA0OS4xIDIxLjYgNDcuMSA0OS44LTcuNSAxMDMuNy02MC41IDE2MC43LTExOCAxOTAuNS0xNS44IDguMi0zMS45IDE0LjMtNDcuMiAxOC44LTIwLjIgMjguNi00MS4yIDQzLjctNTcuOSA1MS44bDAgNzMuMSA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtNzMuMWMtMTYtNy43LTM1LjktMjItNTUuMy00OC4zLTE4LjQtNC44LTM4LjQtMTIuMS01Ny45LTIzLjEtNTQuMS0zMC4zLTEwMi45LTg3LjQtMTA5LjktMTg5LjktMS45LTI4LjEgMjEtNDkuNyA0Ny4xLTQ5LjdsNDkuNiAwYy0uMy01LjItLjUtMTAuNC0uNy0xNS44LTEtMjYuNSAyMC42LTQ4LjIgNDcuMS00OC4yek0xMDEuNSAxMTJsLTUyLjQgMGM2LjIgODQuNyA0NS4xIDEyNy4xIDg1LjIgMTQ5LjYtMTQuNC0zNy4zLTI2LjMtODYtMzIuOC0xNDkuNnpNMzgwIDI1Ni44YzQwLjUtMjMuOCA3Ny4xLTY2LjEgODMuMy0xNDQuOEw0MTEgMTEyYy02LjIgNjAuOS0xNy40IDEwOC4yLTMxIDE0NC44eiJdfSxfST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWRpenp5IixpY29uOls1MTIsNTEyLFsiZGl6enkiXSwiZjU2NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMzA0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxvemU9X0ksbHplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY3RlcmlhIixpY29uOls2NDAsNTEyLFtdLCJlMDU5IiwiTTI1Ni0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDExYzguNiAyLjIgMTYuOSA1LjYgMjQuOCAxMC4zTDMxMSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNi4zIDYuM2M0LjYgNy44IDggMTYuMiAxMC4zIDI0LjhsMTEgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEgMGMtMi4yIDguNi01LjYgMTYuOS0xMC4zIDI0LjhMMzQ1IDE1MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xLTMwLjEgMzAuMSA0LjEgNC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjFjLTEwIDEwLTIwIDIwLTMwLjEgMzAuMUwyMTcgMjc5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTYuMy02LjNjLTcuOCA0LjYtMTYuMiA4LTI0LjggMTAuM2wwIDExYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTFjLTguNi0yLjItMTYuOS01LjYtMjQuOC0xMC4zTDczIDMxM2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw2LjMtNi4zYy00LjYtNy44LTgtMTYuMi0xMC4zLTI0LjhsLTExIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEgMGMyLjItOC42IDUuNi0xNi45IDEwLjMtMjQuOEwzOSAxNjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xYzEwLTEwIDIwLTIwIDMwLjEtMzAuMUwxMDMgMTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMSAzMC4xLTMwLjEtNC4xLTQuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlTMTkxLjYtMi4zIDIwMSA3bDYuMyA2LjNjNy44LTQuNiAxNi4yLTggMjQuOC0xMC4zbDAtMTFjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTEyOCAyNTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0yNDAgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI5NiA0MGwwIDExYzguNiAyLjIgMTYuOSA1LjYgMjQuOCAxMC4zTDU2NyAxOTljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02LjMgNi4zYzQuNiA3LjggOCAxNi4yIDEwLjMgMjQuOGwxMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMSAwYy0yLjIgOC42LTUuNiAxNi45LTEwLjMgMjQuOEw2MDEgMzQzYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjEtMzAuMSAzMC4xIDQuMSA0LjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMWMtMTAgMTAtMjAgMjAtMzAuMSAzMC4xTDQ3MyA0NzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNi4zLTYuM2MtNy44IDQuNi0xNi4yIDgtMjQuOCAxMC4zbDAgMTFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMWMtOC42LTIuMi0xNi45LTUuNi0yNC44LTEwLjNMMzI5IDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw2LjMtNi4zYy00LjYtNy44LTgtMTYuMi0xMC4zLTI0LjhsLTExIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEgMGMyLjItOC42IDUuNi0xNi45IDEwLjMtMjQuOEwyOTUgMzYxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMWMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMzU5IDI5N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjEgMzAuMS0zMC4xLTQuMS00LjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw2LjMgNi4zYzcuOC00LjYgMTYuMi04IDI0LjgtMTAuM2wwLTExYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTQ0OCAzODRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sTjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFyLWRlYWYiLGljb246WzUxMiw1MTIsWyJkZWFmIiwiZGVhZm5lc3MiLCJoYXJkLW9mLWhlYXJpbmciXSwiZjJhNCIsIk01MDIuNiA1NC42bC00MCA0MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNDAtNDBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptLTMyMCAzMjBsLTEyOCAxMjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMjQwIDEyOGMtNTcuNiAwLTEwNS4xIDQzLjYtMTExLjMgOTkuNS0xLjkgMTcuNi0xNy44IDMwLjItMzUuMyAyOC4zcy0zMC4yLTE3LjgtMjguMy0zNS4zYzkuNy04OCA4NC4zLTE1Ni41IDE3NC45LTE1Ni41IDk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgNDYtMTcuNyA4Ny45LTQ2LjYgMTE5LjMtMTIgMTMtMTcuNCAyNC44LTE3LjQgMzQuN2wwIDYuMWMwIDYxLjktNTAuMSAxMTItMTEyIDExMi0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNi4xYzAtMzIuOSAxNy40LTU5LjYgMzQuNC03OCAxOC40LTIwIDI5LjYtNDYuNiAyOS42LTc1LjkgMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6bTAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LGN6ZT1ONSxkemU9TjUscHplPU41LFRJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1hcnJvd3MiLGljb246WzUxMiw1MTIsWyJwZW9wbGUtYXJyb3dzLWxlZnQtcmlnaHQiXSwiZTA2OCIsIk0zMiA2NEE2NCA2NCAwIDEgMSAxNjAgNjQgNjQgNjQgMCAxIDEgMzIgNjR6TTAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDBjMy4yIDAgNi40IC4yIDkuNSAuN0w5My4xIDIwNS4xQzY1IDIzMy4yIDY1IDI3OC44IDkzLjEgMzA2LjlsNTYgNTZjMy40IDMuNCA3IDYuNCAxMC45IDlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTEyMC42QzEyLjkgMzMyLjQgMCAzMTEuNyAwIDI4OGwwLTY0ek0zNTIgNjRhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem02Ni45IDE0MS4xbC00NC40LTQ0LjRjMy4xLS41IDYuMy0uNyA5LjUtLjdsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNEw0ODAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFjMy45LTIuNiA3LjUtNS42IDEwLjktOWw1Ni01NmMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjh6TTMwMi44IDE3Ny44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMyODggMzIxLjcgMjg4IDMxMmwwLTI0LTY0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMyMjQgMTkwLjMgMjI0IDIwMGwwIDI0IDY0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6Il19LGh6ZT1USSx1emU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtY2xhcHBpbmciLGljb246WzUxMiw1MTIsW10sImUxYTgiLCJNMzQ0IDhsMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0UzM0NC01LjMgMzQ0IDh6TTIyMCAxMC43bDMyIDQ4YzcuNCAxMSA0LjQgMjUuOS02LjcgMzMuM3MtMjUuOSA0LjQtMzMuMy02LjdsLTMyLTQ4Yy03LjQtMTEtNC40LTI1LjkgNi43LTMzLjNTMjEyLjYtLjMgMjIwIDEwLjd6TTEzNSAxMTljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjkyLjcgMjQyLjdjMTAuMSAxMC4xIDI3LjMgMi45IDI3LjMtMTEuM2wwLTM5LjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE1My42YzAgNTcuMS0zMCAxMTAtNzguOSAxMzkuNC02NCAzOC40LTE0NS44IDI4LjMtMTk4LjUtMjQuNEw3IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDUzIDUzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDIzIDI2NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDkzIDkzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDU1IDE4NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDExNyAxMTdjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFsLTkzLTkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNNDMzLjEgNDg0LjljLTI0LjIgMTQuNS01MC45IDIyLjEtNzcuNyAyMy4xIDQ4LjEtMzkuNiA3Ni42LTk5IDc2LjYtMTYyLjRsMC05OC4xYzguMi0uMSAxNi02LjQgMTYtMTZsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjR6TTQ1My4zIDRjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3oiXX0sZnplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLWNvdmlkLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlNGE5IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTgzLTgzIDExLjQtMTEuNGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xMS4zIDExLjMtMjMuOC0yMy44YzE3LjktMjMuNSAyOS45LTUxLjcgMzQuMS04Mi4zbDMzLjYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTMzLjYgMGMtNC4yLTMwLjctMTYuMy01OC44LTM0LjEtODIuM2wyMy44LTIzLjggMTEuMyAxMS4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NDAuNyA0Ni43Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDExLjMgMTEuMy0yMy44IDIzLjhDMzcwLjggOTcuOSAzNDIuNyA4NS44IDMxMiA4MS42bDAtMzMuNiAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzM0MS4zIDAgMzI4IDBMMjQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjZjLTMwLjcgNC4yLTU4LjggMTYuMy04Mi4zIDM0LjFMMTU3LjkgOTIgMTY5LjIgODAuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDEyMy45IDU4LjEgNDEtMjQuOXpNMTEzLjYgMjMybC0zMy42IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAzMy42IDBjNC4yIDMwLjcgMTYuMyA1OC44IDM0LjEgODIuM2wtMjMuOCAyMy44LTExLjMtMTEuM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1Ni42IDU2LjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMS4zLTExLjMgMjMuOC0yMy44YzIzLjUgMTcuOSA1MS43IDI5LjkgODIuMyAzNC4xbDAgMzMuNi0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMC0zMy42YzEzLjQtMS44IDI2LjQtNS4yIDM4LjctOS45TDEyMy41IDE5My4zYy00LjcgMTIuMy04IDI1LjItOS45IDM4Ljd6Il19LExJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLWRheXMiLGljb246WzQ0OCw1MTIsWyJjYWxlbmRhci1hbHQiXSwiZjA3MyIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDI0MGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xMjggMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNjQgMzY4bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE0NC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sbXplPUxJLCRJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYW1vbmQtdHVybi1yaWdodCIsaWNvbjpbNTEyLDUxMixbImRpcmVjdGlvbnMiXSwiZjVlYiIsIk0yMTUgMTdMMTcgMjE1QzYuMSAyMjUuOSAwIDI0MC42IDAgMjU2czYuMSAzMC4xIDE3IDQxTDIxNSA0OTVjMTAuOSAxMC45IDI1LjYgMTcgNDEgMTdzMzAuMS02LjEgNDEtMTdMNDk1IDI5N2MxMC45LTEwLjkgMTctMjUuNiAxNy00MXMtNi4xLTMwLjEtMTctNDFMMjk3IDE3QzI4Ni4xIDYuMSAyNzEuNCAwIDI1NiAwcy0zMC4xIDYuMS00MSAxN3pNMzg1IDI1N2wtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtNzguMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDBjMC0zOS44IDMyLjItNzIgNzItNzJsNzguMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6Il19LGd6ZT0kSSxiemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludC11cCIsaWNvbjpbMzg0LDUxMixbOTc1N10sImYwYTYiLCJNMzIgMzJDMzIgMTQuMyA0Ni4zIDAgNjQgMFM5NiAxNC4zIDk2IDMybDAgMjA4LTY0IDAgMC0yMDh6TTIyNCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS02NC02NGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2MCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTk2IDg4bDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjYgMTMuMiAwIDI1LjQtNCAzNS42LTEwLjggOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOCAxMS43IDAgMjIuNi0zLjEgMzItOC42bDAgOC42YzAgODguNC03MS42IDE2MC0xNjAgMTYwbC02MS43IDBjLTQyLjQgMC04My4xLTE2LjktMTEzLjEtNDYuOUwzNy41IDQ1My41QzEzLjUgNDI5LjUgMCAzOTYuOSAwIDM2M2wwLTI3YzAtMzUuMyAyOC43LTY0IDY0LTY0bDg4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNTYgMGMzOS44IDAgNzItMzIuMiA3Mi03MnoiXX0sdnplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlemllci1jdXJ2ZSIsaWNvbjpbNjQwLDUxMixbXSwiZjU1YiIsIk0yOTYgMTM2bDAtNDggNDggMCAwIDQ4LTQ4IDB6TTI4OCAzMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA0LTExOC40IDBDMTExLjIgNjIuNyA4OS4zIDQ4IDY0IDQ4IDI4LjcgNDggMCA3Ni43IDAgMTEyczI4LjcgNjQgNjQgNjRjMjUuMyAwIDQ3LjItMTQuNyA1Ny42LTM2bDY2LjkgMGMtNTguOSAzOS42LTk4LjkgMTA1LTEwNCAxODBMODAgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMy4zIDBjNS45LTY3IDQ4LjUtMTIzLjQgMTA3LjUtMTQ5LjEgOC42IDEyLjcgMjMuMiAyMS4xIDM5LjggMjEuMWw2NCAwYzE2LjYgMCAzMS4xLTguNCAzOS44LTIxLjEgNTkgMjUuNyAxMDEuNiA4Mi4xIDEwNy41IDE0OS4xbC0zLjMgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQuNSAwYy01LTc1LTQ1LjEtMTQwLjQtMTA0LTE4MGw2Ni45IDBjMTAuNCAyMS4zIDMyLjMgMzYgNTcuNiAzNiAzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGMtMjUuMyAwLTQ3LjIgMTQuNy01Ny42IDM2bC0xMTguNCAwIDAtNGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNODggMzc2bDQ4IDAgMCA0OC00OCAwIDAtNDh6bTQxNiA0OGwwLTQ4IDQ4IDAgMCA0OC00OCAweiJdfSx5emU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWhhbGYtZHJlc3MiLGljb246WzM4NCw1MTIsW10sImU1NDgiLCJNMTQzLjQtMy45YzkuNy0xNi44IDI3LjgtMjguMSA0OC42LTI4LjEgMzAuOSAwIDU2IDI1LjEgNTYgNTYgMCAyNS40LTE2LjkgNDYuOC00MCA1My43bDAgMGMtNS4xIDEuNS0xMC40IDIuMy0xNiAyLjMtMzAuOSAwLTU2LTI1LjEtNTYtNTZsMCAwYzAtMTAuMSAyLjctMTkuNyA3LjQtMjcuOXpNMzE4LjMgMjk5LjFMMjcyIDIzNi43IDI3MiA1MTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjAgMC0uNCAwLTIzOC42YzM2LjIgNC40IDY5LjIgMjMuNCA5MS4yIDUzbDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnpNMTc2IDExM2wwIDM5OWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0yNS44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDQzLTEyOS00OC4zIDY1LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1YzIyLTI5LjYgNTUuMS00OC42IDkxLjItNTN6Il19LEFJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLWhvcml6b250YWwiLGljb246WzQ0OCw1MTIsWyJwb2xsLWgiXSwiZjY4MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjU2IDE1MmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6bTcyIDgwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMDggMHpNMTkyIDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSx4emU9QUksd3plPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NmQiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sTXplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtbGl6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmMjU4IiwiTTAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDIzOC41IDBjMzYuOCAwIDcxLjIgMTggOTIuMSA0OC4ybDExMy41IDE2NGMxMyAxOC43IDE5LjkgNDEgMTkuOSA2My44bDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTMuOC03OC4xLTUwLjItMTYxLjkgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw0OCAxNjBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxEST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFsa2JvYXJkIixpY29uOls1NzYsNTEyLFsiYmxhY2tib2FyZCJdLCJmNTFiIiwiTTk2IDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw5NiA2NHpNNDgwIDM4NGwtNjQgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTE2MCAwIDAtMjU2IDM4NCAwIDAgMjU2eiJdfSx6emU9REksRUk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtcmlnaHQtZnJvbS1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJleHRlcm5hbC1saW5rLWFsdCJdLCJmMzVkIiwiTTI5MC40IDE5LjhDMjk1LjQgNy44IDMwNy4xIDAgMzIwIDBMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlMNDAwIDE1Ny4zIDI0Ni42IDMxMC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzNTQuNyAxMTIgMjk3LjQgNTQuNmMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0Ljl6TTAgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwYzAgNDQuMi0zNS44IDgwLTgwIDgwTDgwIDUxMmMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCAxNzZ6Il19LGt6ZT1FSSxTemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWZ1bGwiLGljb246WzUxMiw1MTIsWzEyODk5NywxMjg5OTgsMTI4OTk5LDEyOWUzLDEyOTAwMSwxMjkwMDIsMTI5MDAzLDExMDM1LDExMDM2XSwiZjQ1YyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6Il19LEN6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG92ZXIiLGljb246WzUxMiw1MTIsW10sImUxMzkiLCJNMzEwLjQgMTZDMzQ2LjYgMTYgMzc2IDQ1LjQgMzc2IDgxLjdsMCA1LjJjMCAxMS4yLTIuNyAyMi4zLTcuOCAzMi4ybC0yLjMgNC4yLTIwLjEgMzMuNWMtMS4xIDEuOS0xLjIgMy40LTEuMSA0LjUgLjIgMS4zIC45IDIuNyAyLjEgMy45czIuNiAxLjkgMy45IDIuMWMxLjEgLjIgMi42IC4xIDQuNS0xLjFsMzMuNS0yMC4xIDQuMi0yLjNjMTAtNS4xIDIxLTcuOCAzMi4yLTcuOGw1LjIgMGMzNi4yIDAgNjUuNiAyOS40IDY1LjYgNjUuNyAwIDE3LjQtNi45IDM0LjEtMTkuMiA0Ni40bC0xLjMgMS4zYy0zLjcgMy43LTMuNyA5LjYgMCAxMy4zbDEuMyAxLjNjMTIuMyAxMi4zIDE5LjIgMjkgMTkuMiA0Ni40IDAgMzYuMi0yOS40IDY1LjYtNjUuNiA2NS42bC01LjIgMGMtMTIuOCAwLTI1LjUtMy41LTM2LjUtMTAuMWwtMzMuNS0yMC4xYy0xLjktMS4xLTMuNC0xLjItNC41LTEuMS0xLjMgLjItMi43IC45LTMuOSAyLjFzLTEuOSAyLjYtMi4xIDMuOWMtLjIgMS4xLS4xIDIuNiAxLjEgNC41bDIwLjEgMzMuNWM2LjYgMTEgMTAuMSAyMy42IDEwLjEgMzYuNWwwIDUuMmMwIDM2LjItMjkuNCA2NS42LTY1LjYgNjUuNi0xNy40IDAtMzQuMS02LjktNDYuNC0xOS4ybC0xLjMtMS4zYy0zLjctMy43LTkuNi0zLjctMTMuMyAwbC0xLjMgMS4zYy0xMi4zIDEyLjMtMjkgMTkuMi00Ni40IDE5LjItMzYuMiAwLTY1LjYtMjkuNC02NS43LTY1LjZsMC01LjJjMC0xMi44IDMuNS0yNS41IDEwLjEtMzYuNWwyMC4xLTMzLjVjMS4xLTEuOSAxLjItMy40IDEuMS00LjUtLjItMS4zLS45LTIuNy0yLjEtMy45cy0yLjYtMS45LTMuOS0yLjFjLS41LS4xLTEuMi0uMS0xLjkgMGwtMi41IDEtMzMuNSAyMC4xYy0xMSA2LjYtMjMuNiAxMC4xLTM2LjUgMTAuMWwtNS4yIDBDNDUuNCAzNzYgMTYgMzQ2LjYgMTYgMzEwLjQgMTYgMjkzIDIyLjkgMjc2LjMgMzUuMiAyNjRsMS4zLTEuMyAxLjItMS41YzIuMS0zLjEgMi4xLTcuMiAwLTEwLjNsLTEuMi0xLjUtMS4zLTEuM0MyMi45IDIzNS44IDE2IDIxOS4xIDE2IDIwMS43IDE2IDE2NS40IDQ1LjQgMTM2IDgxLjcgMTM2bDUuMiAwYzEyLjggMCAyNS41IDMuNSAzNi41IDEwLjFsMzMuNSAyMC4xIDIuNSAxYy43IC4xIDEuNCAuMSAxLjkgLjEgMS4zLS4yIDIuNy0uOSAzLjktMi4xczEuOS0yLjYgMi4xLTMuOWMuMS0uNSAuMS0xLjItLjEtMS45bC0xLTIuNS0yMC4xLTMzLjVjLTYuNi0xMS0xMC4xLTIzLjYtMTAuMS0zNi41bDAtNS4yYzAtMzYuMiAyOS40LTY1LjcgNjUuNy02NS43IDE3LjQgMCAzNC4xIDYuOSA0Ni40IDE5LjJsMS4zIDEuM2MzLjcgMy42IDkuNiAzLjcgMTMuMyAwbDEuMy0xLjMgNC44LTQuNEMyODAuNSAyMS4zIDI5NS4xIDE2IDMxMC40IDE2eiJdfSxfemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVldGgtb3BlbiIsaWNvbjpbNTEyLDUxMixbXSwiZjYyZiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgODBjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC04MGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMCAyNzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMDR6bTgwLTE2MGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjR6bTEyOCAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0yNHpNODAgMTEyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTMyMCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjR6TTQ4IDM4NGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyem0xNDQgNDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDY0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0xMTItMTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJ6Il19LGltPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMtc3RhZ2dlcmVkIixpY29uOls1MTIsNTEyLFsicmVvcmRlciIsInN0cmVhbSJdLCJmNTUwIiwiTTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NnpNNjQgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk2IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxUemU9aW0sTHplPWltLCR6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXJlaG91c2UiLGljb246WzU3Niw1MTIsW10sImY0OTQiLCJNMCAxNDIuMUwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMzcuOWMwLTI3LjUtMTcuNi01Mi00My44LTYwLjdMMzAzLjIgNS4xYy05LjktMy4zLTIwLjUtMy4zLTMwLjQgMEw0My44IDgxLjRDMTcuNiA5MC4xIDAgMTE0LjYgMCAxNDIuMXpNNDY0IDI1NmwtMzUyIDAgMCA2NCAzNTIgMCAwLTY0ek0xMTIgNDE2bDM1MiAwIDAtNjQtMzUyIDAgMCA2NHptMzUyIDMybC0zNTIgMCAwIDY0IDM1MiAwIDAtNjR6Il19LEF6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzd2F0Y2hib29rIixpY29uOls1MTIsNTEyLFtdLCJmNWMzIiwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwbDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNjhjMCA1My00MyA5Ni05NiA5NlMwIDQ2OSAwIDQxNkwwIDQ4ek0yNDAgNDA5LjZsMC0yNzEuNSA0OC4xLTQ4LjFjMTguNy0xOC43IDQ5LjEtMTguNyA2Ny45IDBsNjcuOSA2Ny45YzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45TDI0MCA0MDkuNnpNMjA1LjUgNTEybDE5Mi0xOTIgNjYuNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI1OC41IDB6TTgwIDY0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZMODAgNjR6TTY0IDIwOGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek05NiA0NDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxEemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtcGdyb3VuZCIsaWNvbjpbNTEyLDUxMixbOTk3OF0sImY2YmIiLCJNMzQ0LjggNTIuM2MxMS4yLTEzLjcgOS4yLTMzLjgtNC41LTQ1cy0zMy44LTkuMi00NSA0LjVsLTM5LjIgNDgtMzkuMi00OEMyMDUuNi0xLjkgMTg1LjQtNCAxNzEuNyA3LjJzLTE1LjcgMzEuNC00LjUgNDVsNDcuNCA1OC0yMDIgMjQ2LjlDNC41IDM2Ny4xIDAgMzc5LjYgMCAzOTIuNkwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM5LjRjMC0xMi45LTQuNS0yNS41LTEyLjctMzUuNWwtMjAyLTI0Ni45IDQ3LjQtNTh6TTI1NiAyODhsMTEyIDEyOC0yMjQgMCAxMTItMTI4eiJdfSxFemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctYXJyb3ctcmlnaHQiLGljb246WzU3Niw1MTIsW10sImU1NTIiLCJNMTA0LjUgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0tOCAxODEuM0w3My45IDIyNy45Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNS4xLTM1LjFjMjIuOC0yMi44IDUzLjYtMzUuNiA4NS44LTM1LjYgMzYuOSAwIDcxLjggMTYuOCA5NC44IDQ1LjZMMjYyLjMgMTgwYzYuMSA3LjYgMTUuMyAxMiAyNSAxMmwzMy4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMzLjIgMGMtMjkuMiAwLTU2LjctMTMuMy03NS0zNmwtMy44LTQuNyAwIDExNS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44TDEzMCAzNDcuNWMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zek05Ni42IDM3MWMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41TDU1LjEgNTM0LjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY4LjMtNjguM2MzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMOTYuNiAzNzF6TTUwNS41IDM0NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwMi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJ6Il19LFB6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbGFzc2VzIixpY29uOls1NzYsNTEyLFtdLCJmNTMwIiwiTTE0My4zIDk2Yy0xNCAwLTI2LjUgOS4yLTMwLjYgMjIuNkw3MC40IDI1NiAyMjQgMjU2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDY0IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsMTUzLjYgMC00Mi4zLTEzNy40QzQ1OS4yIDEwNS4yIDQ0Ni44IDk2IDQzMi43IDk2TDQwMCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMi43IDBjNDIuMSAwIDc5LjQgMjcuNSA5MS44IDY3LjhsNDUuNCAxNDcuNWM0LjEgMTMuMiA2LjEgMjYuOSA2LjEgNDAuN2wwIDk2YzAgNTMtNDMgOTYtOTYgOTZsLTY0IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC0zMi02NCAwIDAgMzJjMCA1My00MyA5Ni05NiA5NmwtNjQgMGMtNTMgMC05Ni00My05Ni05NmwwLTk2YzAtMTMuOCAyLjEtMjcuNSA2LjEtNDAuN0w1MS41IDk5LjhDNjMuOSA1OS41IDEwMS4xIDMyIDE0My4zIDMyTDE3NiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIuNyAwek02NCAzMjBsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjQtMTI4IDB6bTQxNiA5NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0LTEyOCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMHoiXX0sUEk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBhdXNlIixpY29uOls1MTIsNTEyLFs2MjA5MiwicGF1c2UtY2lyY2xlIl0sImYyOGIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxOTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0sSXplPVBJLE56ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZW1vcnkiLGljb246WzUxMiw1MTIsW10sImY1MzgiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA3LjRDMCAxNDIuMiA0LjQgMTQ4IDEwLjEgMTUxLjcgMjMuMyAxNjAuMyAzMiAxNzUuMSAzMiAxOTJzLTguNyAzMS43LTIxLjkgNDAuM0M0LjQgMjM2IDAgMjQxLjggMCAyNDguNmwwIDU1LjQgNTEyIDAgMC01NS40YzAtNi44LTQuNC0xMi42LTEwLjEtMTYuMy0xMy4yLTguNi0yMS45LTIzLjQtMjEuOS00MC4zczguNy0zMS43IDIxLjktNDAuM2M1LjctMy43IDEwLjEtOS41IDEwLjEtMTYuM2wwLTcuNGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNTEyIDQxNmwwLTY0LTUxMiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDg4IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTYwIDE2MGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxGemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2lmdCIsaWNvbjpbNTEyLDUxMixbMTI3ODczXSwiZjA2YiIsIk0zMjEuNSA2OC44QzMyOS4xIDU1LjkgMzQyLjkgNDggMzU3LjggNDhsMi4yIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTczLjMgMCAzNC44LTU5LjJ6bS0xMzEgMGwzNC44IDU5LjItNzMuMyAwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwbDIuMiAwYzE0LjkgMCAyOC44IDcuOSAzNi4zIDIwLjh6bTg5LjYtMjQuM2wtMjQuMSA0MS0yNC4xLTQxQzIxNS43IDE2LjkgMTg2LjEgMCAxNTQuMiAwTDE1MiAwYy00OC42IDAtODggMzkuNC04OCA4OCAwIDE0LjQgMy41IDI4IDkuNiA0MEwzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDEuNiAwYzYuMS0xMiA5LjYtMjUuNiA5LjYtNDAgMC00OC42LTM5LjQtODgtODgtODhsLTIuMiAwYy0zMS45IDAtNjEuNSAxNi45LTc3LjcgNDQuNHpNNDgwIDI3MmwtMjAwIDAgMCAyMDggMTM2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDR6bS0yNDggMGwtMjAwIDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTM2IDAgMC0yMDh6Il19LE96ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXdoZWF0IixpY29uOls1MTIsNTEyLFtdLCJlNTJhIiwiTTE3Ni0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2ek01NiAwbDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNTYgNDhDNDIuNyA0OCAzMiAzNy4zIDMyIDI0UzQyLjcgMCA1NiAwek0yNCA3MmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCAxMjBDMTAuNyAxMjAgMCAxMDkuMyAwIDk2UzEwLjcgNzIgMjQgNzJ6bTggOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI3MiAwYzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODB6TTQwMC0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2em04MCAxNDRjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDExMmM4LjggMCAxNiA3LjIgMTYgMTYgMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMwNHpNNDggNDE2bDAgNDggNDggMGMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgMzA0bC00OCAwIDAgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTQ2NCA0MTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDQ4IDAgMC00OHpNNDE2IDMwNGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwwLTQ4LTQ4IDB6bS05NiA4MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LFJ6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW5nZW9uIixpY29uOls1MTIsNTEyLFtdLCJmNmQ5IiwiTTM0Ny41IDE0NC44YzYuNSA1LjQgMTIuNSAxMS4zIDE4IDE3LjcgOC43IDEwLjIgMjMuNyAxNCAzNS4xIDYuOWw1NC4xLTMzLjhjMTEuMi03IDE0LjctMjEuNyA2LjktMzIuMi0xNS4zLTIwLjUtMzMuNS0zOC42LTU0LjEtNTMuOC0xMC40LTcuNi0yNC43LTQuMy0zMS44IDYuNGwtMzUuMSA1Mi42Yy03LjggMTEuNi0zLjggMjcuMyA3IDM2LjJ6TTMyNy44IDQxLjFjOC42LTEyLjkgMi45LTMwLjUtMTIuMi0zNC4xLTE5LjEtNC42LTM5LjEtNy01OS42LTdzLTQwLjQgMi40LTU5LjYgN2MtMTUuMSAzLjYtMjAuOCAyMS4yLTEyLjIgMzQuMWw0MCA2MGM1LjIgNy44IDE0LjUgMTEuNyAyMy45IDExLjIgNS4yLS4zIDEwLjYtLjMgMTUuOCAwIDkuNCAuNSAxOC43LTMuNCAyMy45LTExLjJsNDAtNjB6TTUwLjUgMTAzLjNjLTcuOSAxMC41LTQuMyAyNS4zIDYuOSAzMi4ybDU0LjEgMzMuOGMxMS40IDcuMSAyNi4zIDMuMyAzNS4xLTYuOSA1LjUtNi40IDExLjUtMTIuMyAxOC0xNy43IDEwLjgtOC45IDE0LjgtMjQuNiA3LTM2LjJMMTM2LjQgNTUuOWMtNy4xLTEwLjctMjEuNS0xNC0zMS44LTYuNC0yMC42IDE1LjEtMzguOCAzMy4zLTU0LjEgNTMuOHptNjIgMTQxLjFjLjgtOS45LTMuMy0xOS45LTExLjgtMjUuMUw0MSAxODJjLTEyLjktOC0yOS45LTIuMy0zMy42IDEyLjUtNC45IDE5LjctNy41IDQwLjMtNy41IDYxLjZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0zLjkgLjItNy44IC41LTExLjZ6bTI4Ny4xIDBjLjMgMy44IC41IDcuNyAuNSAxMS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjEuMi0yLjYtNDEuOC03LjUtNjEuNi0zLjYtMTQuNy0yMC43LTIwLjUtMzMuNi0xMi41bC01OS43IDM3LjNjLTguNCA1LjMtMTIuNiAxNS4yLTExLjggMjUuMXpNODggMzUybC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em00MDAgMGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjgwIDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0em0tODAgMzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnptMTYwIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnoiXX0sSUk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VpdGNhc2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbIm1lZGtpdCJdLCJmMGZhIiwiTTE5MiA1NmwwIDQwIDEyOCAwIDAtNDBjMC00LjQtMy42LTgtOC04TDIwMCA0OGMtNC40IDAtOCAzLjYtOCA4em0tNDggOGwwLThjMC0zMC45IDI1LjEtNTYgNTYtNTZMMzEyIDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MjQtMjI0IDAgMC00MTZ6TTk2IDE3NmwwIDMwNC0zMiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE2MGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwIDAgODB6TTQxNiA0ODBsMC0zODQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMzIgMHpNMjQ0IDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzYtMzYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDM2IDAgMCAzNmMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zNiAzNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMzYgMCAwLTM2YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMHoiXX0sQnplPUlJLEh6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2FuZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYyIsIk0yMzItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE0NCAyMzYuN0w5Ny43IDI5OS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxNDIgMTMyIDE4MS43IDExMiAyMjQgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42TDMwNCAyMzYuNyAzMDQgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc1LjN6TTM5MiAzODRjLTQuNCAwLTggMy42LTggOCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTI4YzAtNC40LTMuNi04LTgtOHoiXX0sRjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2F1Z2UiLGljb246WzUxMiw1MTIsWyJkYXNoYm9hcmQiLCJnYXVnZS1tZWQiLCJ0YWNob21ldGVyLWFsdC1hdmVyYWdlIl0sImY2MjQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0ek0xNDQgMTc2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptLTE2IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQwMCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0scXplPUY1LFZ6ZT1GNSxqemU9RjUsVXplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVudmVsb3BlLW9wZW4tdGV4dCIsaWNvbjpbNTc2LDUxMixbXSwiZjY1OCIsIk0yODggMzMuOUw5Ni40IDE3NS44IDI1NC41IDI5M2M1LjMgMy45IDExLjIgNi45IDE3LjUgOC43TDI3MiA0NjRjMCA1LjUgLjUgMTAuOCAxLjMgMTZMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTIzOS45YzAtMjAuMyA5LjYtMzkuNCAyNS45LTUxLjRMMjU0LjUtMjFjOS43LTcuMiAyMS40LTExIDMzLjUtMTFzMjMuOCAzLjkgMzMuNSAxMUw1MTguMSAxMjQuN2M3LjIgNS4zIDEzLjEgMTIgMTcuNCAxOS42LTIuNS0uMi01LS4zLTcuNS0uM0w0MzYuNiAxNDQgMjg4IDMzLjl6TTMyMCAyNDBjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyMjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTIyNHptODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAweiJdfSxXemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9vbGJveCIsaWNvbjpbNTEyLDUxMixbMTI5NTIwXSwiZjU1MiIsIk0xNzYgNTZsMCA0MCAxNjAgMCAwLTQwYzAtNC40LTMuNi04LTgtOEwxODQgNDhjLTQuNCAwLTggMy42LTggOHpNMTI4IDk2bDAtNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZMMzI4IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCA0MCAyOC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw1MS45IDUxLjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlsMCA3Ni4xLTEzNiAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xNDQgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtMTM2IDAgMC03Ni4xYzAtMTIuNyA1LjEtMjQuOSAxNC4xLTMzLjlsNTEuOS01MS45YzktOSAyMS4yLTE0LjEgMzMuOS0xNC4xTDEyOCA5NnpNMCA0MTZsMC05NiAxMzYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxNDQgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAxMzYgMCAwIDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6Il19LEd6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb3dlci1vZmYiLGljb246WzUxMiw1MTIsWzkyMTFdLCJmMDExIiwiTTI4OCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzIyNC0xNy43IDIyNCAwbDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMMjg4IDB6TTE0Ni4zIDk4LjRjMTQuNS0xMC4xIDE4LTMwLjEgNy45LTQ0LjZzLTMwLjEtMTgtNDQuNi03LjlDNDMuNCA5Mi4xIDAgMTY5IDAgMjU2IDAgMzk3LjQgMTE0LjYgNTEyIDI1NiA1MTJTNTEyIDM5Ny40IDUxMiAyNTZjMC04Ny00My40LTE2My45LTEwOS43LTIxMC4xLTE0LjUtMTAuMS0zNC40LTYuNi00NC42IDcuOXMtNi42IDM0LjQgNy45IDQ0LjZjNDkuOCAzNC44IDgyLjMgOTIuNCA4Mi4zIDE1Ny42IDAgMTA2LTg2IDE5Mi0xOTIgMTkyUzY0IDM2MiA2NCAyNTZjMC02NS4yIDMyLjUtMTIyLjkgODIuMy0xNTcuNnoiXX0scm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbmFsIixpY29uOls1MTIsNTEyLFsxMjgyNDYsInNpZ25hbC01Iiwic2lnbmFsLXBlcmZlY3QiXSwiZjAxMiIsIk00ODggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMHpNMzYwIDEyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjgwIDI0OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4ek0xNTIgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0ek00OCAzODRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxZemU9cm0sWnplPXJtLFh6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3Mtc3BpbiIsaWNvbjpbNTEyLDUxMixbXSwiZTRiYiIsIk00ODEuNyAyNDAuMWMtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5LjctMy4zIDQ3LTIzLjYgODkuNC01NC44IDEyMUwzNjEgMzU5Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAzNjYuMyAzMjAgMzc2bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtMzUtMzVjNDEuNy00Mi4yIDY4LjktOTguOCA3My40LTE2MS44IDEuMi0xNy42LTEyLTMyLjktMjkuNy0zNC4yek0zOSA0MUw3NCA3NmMtNDEuNyA0Mi4yLTY4LjkgOTguOC03My40IDE2MS44LTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yczMyLjktMTIgMzQuMi0yOS43YzMuMy00NyAyMy42LTg5LjQgNTQuOC0xMjFMMTUxIDE1M2M2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzE5MiAxNDUuNyAxOTIgMTM2bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0TDU2IDBDNDYuMyAwIDM3LjUgNS44IDMzLjggMTQuOFMzMi4yIDM0LjEgMzkgNDF6bTIwMS0xMC43Yy0xLjIgMTcuNiAxMiAzMi45IDI5LjcgMzQuMiA0NyAzLjMgODkuNCAyMy42IDEyMSA1NC44TDM1OSAxNTFjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMzY2LjMgMTkyIDM3NiAxOTJsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IDMyLjIgNDcxIDM5TDQzNiA3NGMtNDIuMi00MS43LTk4LjgtNjguOS0xNjEuOC03My40LTE3LjYtMS4yLTMyLjkgMTItMzQuMiAyOS43ek00MSA0NzNsMzUtMzVjNDIuMiA0MS43IDk4LjggNjguOSAxNjEuOCA3My40IDE3LjYgMS4yIDMyLjktMTIgMzQuMi0yOS43cy0xMi0zMi45LTI5LjctMzQuMmMtNDctMy4zLTg5LjQtMjMuNi0xMjEtNTQuOEwxNTMgMzYxYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTQ1LjcgMzIwIDEzNiAzMjBMMjQgMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ1NmMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJTMzQuMSA0NzkuOCA0MSA0NzN6Il19LEt6ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqb2ludCIsaWNvbjpbNTc2LDUxMixbXSwiZjU5NSIsIk0zNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDIxIDIxQzQ2OSAxOTEgNDgwIDIxNy40IDQ4MCAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE5YzAtMTQuOS01LjktMjkuMS0xNi40LTM5LjZsLTIxLTIxQzM1Ny4xIDE0Ni45IDMzNiA5NiAzMzYgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNTUyIDI4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xOWMwLTQwLjMtMTYtNzktNDQuNS0xMDcuNWwtMjEtMjFDNDQzIDk3IDQzMiA3MC42IDQzMiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxOWMwIDE0LjkgNS45IDI5LjEgMTYuNCAzOS42bDIxIDIxQzU1NC45IDE0MS4xIDU3NiAxOTIgNTc2IDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0yOTIuNyAzMjBjNS42IDAgMTAuNyAyLjkgMTMuNiA3LjZMMzk0LjYgNDcxYzEuMyAyLjEgMCA0LjktMi40IDUuMi0xNi4xIDIuNS0zMi40IDMuNy00OC43IDMuN2wtMzguMSAwYy01LjYgMC0xMC43LTIuOS0xMy42LTcuNmwtNzktMTI4LjRjLTYtOS44IDAtMjIuNiAxMS41LTIzLjMgNi43LS40IDEzLjQtLjYgMjAuMi0uNmw0OC4zIDB6TTQ1OS4zIDQ2NS45Yy02LjQgMS0xMi43LTEuOS0xNi4xLTcuNEwzNzQuMSAzNDYuMWMtNi43LTEwLjkgMS41LTI0LjcgMTQuMi0yMi45IDEuMyAuMiAyLjYgLjQgMy44IC42bDEzNi40IDIxYzI3LjMgNC4yIDQ3LjQgMjcuNyA0Ny40IDU1LjNzLTIwLjEgNTEuMS00Ny40IDU1LjNsLTY5LjIgMTAuNnpNMTM4LjcgMzM2YzYuNy0xLjUgMTMuNiAxLjQgMTcuMiA3LjJsNjguOSAxMTJjNi42IDEwLjctMS4yIDI0LjQtMTMuOCAyMy4xLTEzLTEuNC0yNS45LTMuNS0zOC42LTYuNUwzMS4yIDQzOS4yQzEyLjkgNDM1IDAgNDE4LjcgMCA0MDBzMTIuOS0zNSAzMS4yLTM5LjJMMTM4LjcgMzM2eiJdfSxRemU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhaWxsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjJhMSIsIk04MCAxNDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wIDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAgNTZjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODAtODAgMzUuOC04MCA4MCAzNS44IDgwIDgwIDgwem0yNDgtODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0em01NiAwYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODAgODAtMzUuOCA4MC04MHpNMzA0IDIzMmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAgMTA0YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTE5MmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sTkk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0LXNob3BwaW5nIixpY29uOls1NzYsNTEyLFsic2hvcHBpbmctYmFza2V0Il0sImYyOTEiLCJNMjg4IDBjNi42IDAgMTIuOSAyLjcgMTcuNCA3LjVsMTQ0IDE1MiAuNSAuNSA3OC4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAxNC41LTkuNiAyNi43LTIyLjggMzAuN0w0OTEuMSA0MjkuOWMtNi41IDI5LjMtMzIuNSA1MC4xLTYyLjUgNTAuMWwtMjgxLjMgMGMtMzAgMC01Ni0yMC44LTYyLjUtNTAuMWwtNDYtMjA3LjJjLTEzLjItMy45LTIyLjgtMTYuMi0yMi44LTMwLjcgMC0xNy43IDE0LjMtMzIgMzItMzJsNzguMSAwIC41LS41IDE0NC0xNTJDMjc1LjEgMi43IDI4MS40IDAgMjg4IDB6bTAgNTguOUwxOTIuMiAxNjAgMzgzLjggMTYwIDI4OCA1OC45ek0yMDggMjY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6bTgwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMjggMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMnoiXX0sSnplPU5JLGVrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UiLGljb246WzUxMiw1MTIsW10sImU0YzgiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk0YzAtMzguOCAyNi40LTcyLjYgNjQtODJsMC0xMTItNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0eiJdfSx0a2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtYXJyaXZhbCIsaWNvbjpbNTc2LDUxMixbMTI4NzQ4XSwiZjVhZiIsIk0zODYuNiAxOTMuMUwyNjUuOSAzLjdjLTQuOC03LjYtMTIuNi0xMi44LTIxLjQtMTQuM2wtNDMuMS03LjZjLTEwLjgtMS45LTIwLjIgNy4zLTE4LjYgMTguMWwyNCAxNjEuNi0xMDUtMTguNS0zMy44LTYxLjhDNjQuNSA3NC43IDU4LjIgNzAuMiA1MS4xIDY5TDM0IDY2Yy05LjgtMS43LTE4LjggNS45LTE4LjggMTUuOGwuNiAxMDYuM2MuMiAzMC45IDIyLjQgNTcuMyA1Mi45IDYyLjdsMTMuNSAyLjQgMCAwIDQxNy42IDczLjZjMzAuNSA1LjQgNTkuNS0xNSA2NC45LTQ1LjRzLTE1LTU5LjUtNDUuNC02NC45TDM4Ni42IDE5My4xek0yMjQgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTMxLjItMTUuM2EzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDQ4eiJdfSxha2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FzaC1yZWdpc3RlciIsaWNvbjpbNTEyLDUxMixbXSwiZjc4OCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0czI4LjcgNjQgNjQgNjRsNDggMCAwIDMyLTU3IDBjLTMxLjYgMC01OC41IDIzLjEtNjMuMyA1NC40TDEuMSAzNjQuMUMuNCAzNjguOCAwIDM3My42IDAgMzc4LjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02OS42YzAtNC44LS40LTkuNi0xLjEtMTQuNEw0ODguMiAyMTQuNEM0ODMuNSAxODMuMSA0NTYuNiAxNjAgNDI1IDE2MGwtMjE3IDAgMC0zMiA0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0UzI5MS4zIDAgMjU2IDBMOTYgMHptMCA0OGwxNjAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkw5NiA4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNNjQgNDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDMzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDQ0OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTQ4LTE2MGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyMC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0xNjAgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpNMzI4IDI0MGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0yNTYgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHpNNDI0IDI0MGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwek0zNTIgMzQ0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHoiXX0saWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpbmciLGljb246WzUxMiw1MTIsW10sImY3MGIiLCJNNjQgMjA4YzAgNy44IDQuNCAxOC43IDE3LjEgMzAuMyA0NS40LTI0LjIgMTA3LjctMzguMyAxNzQuOS0zOC4zczEyOS41IDE0LjEgMTc0LjkgMzguM2MxMi44LTExLjYgMTcuMS0yMi41IDE3LjEtMzAuMyAwLTEyLjMtMTAuOC0zMi00Ny45LTUwLjYtMzUuMi0xNy42LTg2LjEtMjkuNC0xNDQuMS0yOS40cy0xMDguOSAxMS44LTE0NC4xIDI5LjRDNzQuOCAxNzYgNjQgMTk1LjcgNjQgMjA4em0xOTIgNDBjLTQ3IDAtODkuMyA3LjYtMTIyLjkgMTkuNyAzMy4yIDEyLjQgNzUuNyAyMC4zIDEyMi45IDIwLjNzODkuNy03LjggMTIyLjktMjAuM0MzNDUuMyAyNTUuNiAzMDMgMjQ4IDI1NiAyNDh6TTAgMjA4QzAgMTU4LjQgMzkuNCAxMjIuMiA4My4zIDEwMC4yIDEyOS4xIDc3LjMgMTkwLjMgNjQgMjU2IDY0czEyNi45IDEzLjMgMTcyLjcgMzYuMmM0My45IDIyIDgzLjMgNTguMiA4My4zIDEwNy44bDAgOTZjMCA0OS42LTM5LjQgODUuOC04My4zIDEwNy44LTQ1LjkgMjIuOS0xMDcgMzYuMi0xNzIuNyAzNi4yUzEyOS4xIDQzNC43IDgzLjMgNDExLjhDMzkuNCAzODkuOCAwIDM1My42IDAgMzA0bDAtOTZ6Il19LHJrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcXVhcml1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTg0NSIsIk00MDEuNyAyOTEuNGM5LTQuNSAxOS42LTQuNSAyOC42IDBsMTI4IDY0YzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjlzLTI3LjEgMjIuMi00Mi45IDE0LjNMNDE2IDM1NS44IDMwMi4zIDQxMi42Yy05IDQuNS0xOS42IDQuNS0yOC42IDBMMTYwIDM1NS44IDQ2LjMgNDEyLjZjLTE1LjggNy45LTM1IDEuNS00Mi45LTE0LjNzLTEuNS0zNSAxNC4zLTQyLjlsMTI4LTY0YzktNC41IDE5LjYtNC41IDI4LjYgMEwyODggMzQ4LjIgNDAxLjcgMjkxLjR6bTMuNC0xOTMuNWM4LjItMyAxNy4zLTIuNSAyNS4yIDEuNWwxMjggNjRjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM0w0MTYgMTYzLjggMzAyLjMgMjIwLjZjLTkgNC41LTE5LjYgNC41LTI4LjYgMEwxNjAgMTYzLjggNDYuMyAyMjAuNmMtMTUuOCA3LjktMzUgMS41LTQyLjktMTQuM3MtMS41LTM1IDE0LjMtNDIuOWwxMjgtNjQgMy40LTEuNWM4LjItMyAxNy4zLTIuNSAyNS4yIDEuNWwxMTMuNyA1Ni44IDExMy43LTU2LjggMy40LTEuNXoiXX0sRkk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtbm9kZXMiLGljb246WzUxMiw1MTIsWyJzaGFyZS1hbHQiXSwiZjFlMCIsIk0zODQgMTkyYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2YzAgNS40IC41IDEwLjggMS4zIDE2TDE1OS42IDE4NC4xYy0xNi45LTE1LTM5LjItMjQuMS02My42LTI0LjEtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyNC40IDAgNDYuNi05LjEgNjMuNi0yNC4xTDI4OS4zIDQwMGMtLjkgNS4yLTEuMyAxMC41LTEuMyAxNiAwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2LTQzLTk2LTk2LTk2Yy0yNC40IDAtNDYuNiA5LjEtNjMuNiAyNC4xTDE5MC43IDI3MmMuOS01LjIgMS4zLTEwLjUgMS4zLTE2cy0uNS0xMC44LTEuMy0xNmwxMjkuNy03Mi4xYzE2LjkgMTUgMzkuMiAyNC4xIDYzLjYgMjQuMXoiXX0sc2tlPUZJLG5rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTNmIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LG9rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaW5vY3VsYXJzIixpY29uOls1MTIsNTEyLFtdLCJmMWU1IiwiTTEyOCAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA5NmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuMWMwLTM0LjYgOS40LTY4LjYgMjcuMi05OC4zIDEzLjctMjIuOCAyMi41LTQ4LjIgMjUuOC03NC42TDYwLjUgMTU2YzItMTYgMTUuNi0yOCAzMS44LTI4bDk5LjggMHptMjI3LjggMGMxNi4xIDAgMjkuOCAxMiAzMS44IDI4TDQ1OSAyMTZjMy4zIDI2LjQgMTIuMSA1MS44IDI1LjggNzQuNiAxNy44IDI5LjcgMjcuMiA2My43IDI3LjIgOTguM2wwIDU5LjFjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyMCA5OS44IDB6TTMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyem0tMzIgNjRsMCAxNjAtNjQgMCAwLTE2MCA2NCAweiJdfSxsa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2lwLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxYzQiLCJNMzQwLjggODguM2MxMy40LTExLjUgMTUtMzEuNyAzLjUtNDUuMXMtMzEuNy0xNS00NS4xLTMuNUwxMjggMTg2LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNjgtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjIuNCAxNzEuMiAxNDYuN2MxMy40IDExLjUgMzMuNiA5LjkgNDUuMS0zLjVzOS45LTMzLjYtMy41LTQ1LjFMMTczLjIgMjgwIDM1MiAyODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTczLjIgMjMyIDM0MC44IDg4LjN6Il19LE9JPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhcmQtZHJpdmUiLGljb246WzQ0OCw1MTIsWzEyODQzNiwiaGRkIl0sImYwYTAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDI2MC4xQzE4LjEgMjQ3LjQgNDAuMiAyNDAgNjQgMjQwbDMyMCAwYzIzLjggMCA0NS45IDcuNCA2NCAyMC4xTDQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNDQ4IDM1MmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NHpNMjI0IDM4NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjgtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxja2U9T0ksZGtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhbmtpbmctc3RhciIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MSIsIk0zMjEuOCA1NC4xTDI5OC4yIDYuM2MtMy45LTguMy0xNi4xLTguNi0yMC40IDBsLTIzLjYgNDcuOC01Mi4zIDcuNWMtOS4zIDEuNC0xMy4zIDEyLjktNi40IDE5LjhsMzggMzctOSA1Mi4xYy0xLjQgOS4zIDguMiAxNi41IDE2LjggMTIuMmw0Ni45LTI0LjggNDYuNiAyNC40YzguNiA0LjMgMTguMy0yLjkgMTYuOC0xMi4ybC05LTUyLjEgMzgtMzYuNmM2LjgtNi44IDIuOS0xOC4zLTYuNC0xOS44bC01Mi4zLTcuNXpNMjU2IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNjBjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2MGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDggMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNNDE2IDQzMmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh6Il19LHBrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwOCIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptLTMwLjUgNTZsNjEgMGM5LjcgMCAxNy41IDcuOCAxNy41IDE3LjUgMCA0LjItMS41IDguMi00LjIgMTEuNGwtMjcuNCAzMiAzMSAxMTUuMSAuNiAwIDM0LjYtMTM4LjVjMi4yLTguNyAxMS4xLTE0IDE5LjUtMTAuOCA2MS45IDIzLjYgMTA1LjkgODMuNiAxMDUuOSAxNTMuOCAwIDE1LjEtMTIuMyAyNy40LTI3LjQgMjcuNEw0My40IDUxMmMtMTUuMSAwLTI3LjQtMTIuMy0yNy40LTI3LjQgMC03MC4yIDQ0LTEzMC4yIDEwNS45LTE1My44IDguNC0zLjIgMTcuMyAyLjEgMTkuNSAxMC44bDM0LjYgMTM4LjUgLjYgMCAzMS0xMTUuMS0yNy40LTMyYy0yLjctMy4yLTQuMi03LjItNC4yLTExLjQgMC05LjcgNy44LTE3LjUgMTcuNS0xNy41eiJdfSxSST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcyIsaWNvbjpbNDQ4LDUxMixbImVsbGlwc2lzLWgiXSwiZjE0MSIsIk0wIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTE2OCAwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjI0LTU2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyeiJdfSxoa2U9UkksdWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3JlLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDcxIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU4LjYtNTguNmMxLjEtNCAxLjYtOC4yIDEuNi0xMi41bDAtMTUxLjJjLTEyLjUgNC42LTI2LjEgNy4yLTQwLjUgNy4yLTguMSAwLTE1LjktLjgtMjMuNS0yLjRsMCA2Ni40LTMwLjIgMC0xMzcuNS0xMzcuNWMyLjktMy42IDUuNS03LjQgNy42LTExLjUgMTEuNiAyMiAzNC43IDM3IDYxLjMgMzcgMjYuOCAwIDQ5LjgtMTUuMSA2MS40LTM3LjEgMTEuNCAyMi4xIDM0LjUgMzcuMSA2MC44IDM3LjEgNDUuNiAwIDc4LjQtNDMuNyA2NS42LTg3LjVMNTEzLjggNzIuM0M1MDYuOCA0OC40IDQ4NC45IDMyIDQ2MCAzMkwxMTYgMzJjLTUuNSAwLTEwLjggLjgtMTUuOSAyLjNMNDEtMjQuOXpNMTUxLjUgMjIxLjNMNDguNyAxMTguNiAzOC45IDE1Mi41Yy0xMi44IDQzLjcgMjAgODcuNSA2NS42IDg3LjUgMTguMSAwIDM0LjctNy4xIDQ3LTE4Ljd6TTQxMC4yIDQ4MGwtMTI4LTEyOC0xNTQuMiAwIDAtNjYuNGMtNy42IDEuNi0xNS41IDIuNC0yMy41IDIuNC0xNC40IDAtMjgtMi42LTQwLjUtNy4yTDY0IDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyOTguMiAweiJdfSxCST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJjZW50IixpY29uOls0NDgsNTEyLFs2MjEwMSw2Mjc4NSwicGVyY2VudGFnZSJdLCIyNSIsIk0xOTIgMTI4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDQ4IDM4NGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6TTQzOC42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTM4NCAzODRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMzg0LTM4NHoiXX0sZmtlPUJJLEhJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtemlwcGVyIixpY29uOlszODQsNTEyLFsiZmlsZS1hcmNoaXZlIl0sImYxYzYiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTY0IDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNDhDNzQuNyA0OCA2NCA1OC43IDY0IDcyem0wIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em02NCA3MmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4bDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0xNiA2NGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6Il19LG1rZT1ISSxna2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzcGxheSIsaWNvbjpbNTEyLDUxMixbXSwiZTE2MyIsIk00NDggOTZsMCAyNTYtMzg0IDAgMC0yNTYgMzg0IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ0IDAtMTYgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMC0xNi00OCAxNDQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0scUk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNvbnMiLGljb246WzUxMiw1MTIsWyJoZWFydC1tdXNpYy1jYW1lcmEtYm9sdCJdLCJmODZkIiwiTTE3NC45IDI3MmMxMC43IDAgMjAuNyA1LjMgMjYuNiAxNC4ybDExLjggMTcuOCAyNi43IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDM1MmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNi43IDAgMTEuOC0xNy44YzUuOS04LjkgMTUuOS0xNC4yIDI2LjYtMTQuMmw2MS43IDB6bTI3OC42LTEyYzUuNi00LjkgMTMuOS01LjMgMTkuOS0uOXM4LjMgMTIuNCA1LjMgMTkuM0w0NDAuMyAzNjggNDk2IDM2OGM2LjcgMCAxMi42IDQuMSAxNSAxMC40cy42IDEzLjMtNC40IDE3LjdsLTEyOCAxMTJjLTUuNiA0LjktMTMuOSA1LjMtMTkuOSAuOXMtOC4zLTEyLjQtNS4zLTE5LjNsMzguNS04OS43LTU1LjggMGMtNi43IDAtMTIuNi00LjEtMTUtMTAuNHMtLjYtMTMuMyA0LjQtMTcuN2wxMjgtMTEyek0xNDQgMzYwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnpNNDgzLjggLjRjNi41LTEuMSAxMy4xIC40IDE4LjUgNC40IDYuMSA0LjUgOS43IDExLjcgOS43IDE5LjJsMCAxNTItLjMgNC45Yy0zLjMgMjQuMi0zMC41IDQzLjEtNjMuNyA0My4xLTM1LjMgMC02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhjNS41IDAgMTAuOSAuNiAxNiAxLjZsMC00OS4zLTExMiAzMy42IDAgMTEwLjItLjMgNC45Yy0zLjMgMjQuMi0zMC41IDQzLjEtNjMuNyA0My4xLTM1LjMgMC02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhjNS41IDAgMTAuOSAuNiAxNiAxLjZMMzA0IDcyYzAtMTAuNiA3LTIwIDE3LjEtMjNsMTYwLTQ4IDIuNy0uNnpNMTg4LjkgMEMyMjYgMCAyNTYgMzAgMjU2IDY3LjFsMCA2LjFjMCA1Ni4xLTc1LjIgMTEyLjEtMTEwLjMgMTM1LjMtMTAuOCA3LjEtMjQuNiA3LjEtMzUuNCAwLTM1LjEtMjMuMS0xMTAuMy03OS4yLTExMC4zLTEzNS4zbDAtNi4xQzAgMzAgMzAgMCA2Ny4xIDAgODguMiAwIDEwOCA5LjkgMTIwLjcgMjYuOGw3LjMgOS44IDcuMy05LjhDMTQ4IDkuOSAxNjcuOCAwIDE4OC45IDB6Il19LGJrZT1xSSx2a2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVsZXItdmVydGljYWwiLGljb246WzI1Niw1MTIsW10sImY1NDgiLCJNMCAxNkMwLTEwLjUgMjEuNS0zMiA0OC0zMmwxNjAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI0LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDI0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDU0NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxNnoiXX0sVkk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uLWRvdCIsaWNvbjpbNjQwLDUxMixbIm1hcC1tYXJrZWQtYWx0Il0sImY1YTAiLCJNNTc2IDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDQxMy41IDc3LjUgMjM0LjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzcwLjggODguOCA2NCA5OS45IDY0IDExMmwwIDM1MmMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTczLjMgNTcuOGMtNC4zLTYuNC04LjUtMTMuMS0xMi42LTE5LjktMTEtMTguMy0yMS45LTM5LjMtMzAtNjEuOGwtMTAxLjItMzMuNyAwLTI4NC41IDEyOCA0Mi43IDAgOTkuM2MzMS0zNS44IDc3LTU4LjQgMTI4LTU4LjQgMjIuNiAwIDQ0LjIgNC40IDY0IDEyLjVMNTc2IDQ4ek01MTIgMjI0Yy02Ni4zIDAtMTIwIDUyLjgtMTIwIDExNy45IDAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOXpNNDcyIDM0NGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSx5a2U9Vkksakk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY3JhY2siLGljb246WzUxMiw1MTIsWzEyODE0OCwiaGVhcnQtYnJva2VuIl0sImY3YTkiLCJNMTMzLjEgMzJjMTcuMyAwIDM0LjIgMy40IDQ5LjkgOS43bDU0LjggODUuMi03NS40IDc1LjRjLTEuNSAxLjUtMi40IDMuNi0yLjMgNS44czEgNC4yIDIuNiA1LjdsMTEyIDEwNGMyLjkgMi43IDcuNCAyLjkgMTAuNSAuM3MzLjgtNyAxLjctMTAuNGwtNjAuNC05OC4xIDkwLjctNzUuNmMyLjYtMi4xIDMuNS01LjcgMi40LTguOEwyOTYuNCA2MC42QzMxOS42IDQyLjMgMzQ4LjYgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTEyLjItMTM5LjkgMjQyLjUtMjEyLjkgMjk4LjItMTIuNCA5LjQtMjcuNiAxNC4xLTQzLjEgMTQuMXMtMzAuOC00LjYtNDMuMS0xNC4xQzEzOS45IDQxMC4yIDAgMjc5LjkgMCAxNjcuN2wwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMnoiXX0seGtlPWpJLHdrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3ciLGljb246WzY0MCw1MTIsWzEyODAwNF0sImY2YzgiLCJNOTYgMjI0bDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC04OC4yYzkuOSA2LjYgMjAuNiAxMiAzMiAxNi4xbDAgMjQuMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTYuOWM1LjMgLjYgMTAuNiAuOSAxNiAuOXMxMC43LS4zIDE2LS45bDAgMTYuOWMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMjQuMmMxMS40LTQgMjIuMS05LjQgMzItMTYuMWwwIDg4LjJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MCAzMiAzMiAwIDQ5LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZMNTMwIDQyN2M4LjggMTMuMSAyMy41IDIxIDM5LjMgMjEgMjIuNSAwIDQxLjktMTUuOSA0Ni4zLTM4bDIwLjMtMTAxLjZjMi42LTEzLS4zLTI2LjUtOC0zNy4zbC0zLjktNS41IDAtODEuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE0LjQtNTIuOS03NC4xQzQ5NiA4Ni41IDQ1Mi40IDY0IDQwNS45IDY0TDE0NCA2NEM3Ny43IDY0IDI0IDExNy43IDI0IDE4NGwwIDU0QzkuNCAyNDkuOCAwIDI2Ny44IDAgMjg4bDAgMTcuNmMwIDggNi40IDE0LjQgMTQuNCAxNC40IDMxLjggMCA1Ny42LTI1LjggNTcuNi01Ny42TDcyIDE4NGMwLTI0LjMgMTIuMS00NS44IDMwLjUtNTguOS00LjIgMTAuOC02LjUgMjIuNi02LjUgMzQuOWwwIDY0ek01NjAgMzM2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTE2Ni42IDE2Ni42Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMTc4LjcgMGMxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNiAwIDYtMi40IDExLjgtNi42IDE2bC0yMy40IDIzLjRDMzMyLjIgMjExLjggMzAyLjcgMjI0IDI3MiAyMjRzLTYwLjItMTIuMi04MS45LTMzLjlsLTIzLjQtMjMuNHoiXX0sdDg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnNzIixpY29uOls0NDgsNTEyLFsiZmVlZCJdLCJmMDllIiwiTTAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzIgMjI5LjggMCA0MTYgMTg2LjIgNDE2IDQxNiAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkMzODQgMjUzLjYgMjI2LjQgOTYgMzIgOTYgMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCA0MTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0zMiAxNjBjMTU5LjEgMCAyODggMTI4LjkgMjg4IDI4OCAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0LTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LE1rZT10OCxhOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzIixpY29uOls1MTIsNTEyLFsxMjgyNjksInNlYXJjaCJdLCJmMDAyIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDM1MmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6Il19LHprZT1hOCxra2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbW9vbiIsaWNvbjpbNjQwLDUxMixbXSwiZjZjMyIsIk00ODAgMGMxNC42IDAgMjguOCAxLjYgNDIuNSA0LjcgNy40IDEuNyAxMyA3LjggMTMuOSAxNS40cy0zIDE0LjktOS44IDE4LjNjLTQ1LjQgMjIuNi03Ni42IDY5LjUtNzYuNiAxMjMuNiAwIDc2LjIgNjEuOCAxMzggMTM4IDEzOCAzLjcgMCA3LjQtLjEgMTEuMS0uNCA3LjYtLjYgMTQuNyAzLjYgMTcuOCAxMC42czEuNSAxNS4xLTMuOSAyMC40Yy0yNiAyNS01OS4xIDQyLjctOTUuOSA0OS45LTExLjEtMjUuMy0zMC4yLTQ2LjMtNTQuMS01OS44LTcuNi02My40LTYxLjYtMTEyLjYtMTI3LjEtMTEyLjYtMTEuMiAwLTIyLjEgMS41LTMyLjUgNC4yLTQuOC00LjItOS45LTguMi0xNS4yLTExLjgtLjEtMi44LS4yLTUuNi0uMi04LjQgMC0xMDYgODYtMTkyIDE5Mi0xOTJ6bS0uMSA0MzEuOWMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMjcxLjkgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04NyA4MC05NC42LS40LTUyLjggNDIuOS05Ny4zIDk2LTk3LjMgMzQuOSAwIDY1LjQgMTguNiA4Mi4yIDQ2LjQgMTMtOS4xIDI4LjgtMTQuNCA0NS44LTE0LjQgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjktLjYgMTEuNy0xLjkgMTcuMiAzNy40IDYuNyA2NS44IDM5LjQgNjUuOCA3OC43eiJdfSxzbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3hlcy1zdGFja2VkIixpY29uOls1MTIsNTEyLFs2MjYyNSwiYm94ZXMiLCJib3hlcy1hbHQiXSwiZjQ2OCIsIk0yMjQgMGwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCA1LjUtLjcgMTAuOS0yIDE2bC0yNTIgMGMtMS4zLTUuMS0yLTEwLjUtMi0xNmwwLTEyOGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwem05NiA1MTJjLTExLjIgMC0yMS44LTIuOS0zMS04IDkuNS0xNi41IDE1LTM1LjYgMTUtNTZsMC0xMjhjMC0yMC40LTUuNS0zOS41LTE1LTU2IDkuMi01LjEgMTkuNy04IDMxLThsMzIgMCAwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwek0wIDMyMGMwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwIDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzIweiJdfSxTa2U9c20sQ2tlPXNtLF9rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWJyYW5jaCIsaWNvbjpbNDQ4LDUxMixbXSwiZjEyNiIsIk04MCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04MC0yNGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgNzAuNyAxNzYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyLjdjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zbDAgMjIuN2MwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMTc2IDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBTMCA0NzYuMiAwIDQzMmMwLTMyLjggMTkuNy02MSA0OC03My4zbDAtMjA1LjNDMTkuNyAxNDEgMCAxMTIuOCAwIDgwIDAgMzUuOCAzNS44IDAgODAgMHM4MCAzNS44IDgwIDgwem0yMzIgMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek04MCA0NTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxVST17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4iLGljb246WzUxMiw1MTIsWzEyODY4MywiY2FuY2VsIl0sImYwNWUiLCJNMzY3LjIgNDEyLjVMOTkuNSAxNDQuOGMtMjIuNCAzMS40LTM1LjUgNjkuOC0zNS41IDExMS4yIDAgMTA2IDg2IDE5MiAxOTIgMTkyIDQxLjUgMCA3OS45LTEzLjEgMTExLjItMzUuNXptNDUuMy00NS4zYzIyLjQtMzEuNCAzNS41LTY5LjggMzUuNS0xMTEuMiAwLTEwNi04Ni0xOTItMTkyLTE5Mi00MS41IDAtNzkuOSAxMy4xLTExMS4yIDM1LjVMNDEyLjUgMzY3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LFRrZT1VSSxMa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToianVnLWRldGVyZ2VudCIsaWNvbjpbMzg0LDUxMixbXSwiZTUxOSIsIk05NiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjQgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDk2Qzc0LjcgOTYgNjQgODUuMyA2NCA3MlM3NC43IDQ4IDg4IDQ4bDggMCAwLTI0ek0wIDI1NmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOGwxMjggMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjU2em0yNTYgMGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnoiXX0sV0k9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwbHkiLGljb246WzUxMiw1MTIsWzYxNzE0LCJtYWlsLXJlcGx5Il0sImYzZTUiLCJNMjA0LjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCAxMTIgMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDExMy4zLTgxLjUgMTYzLjktMTAwLjIgMTc0LjEtMi41IDEuNC01LjMgMS45LTguMSAxLjktMTAuOSAwLTE5LjctOC45LTE5LjctMTkuNyAwLTcuNSA0LjMtMTQuNCA5LjgtMTkuNSA5LjQtOC44IDIyLjItMjYuNCAyMi4yLTU2LjcgMC01My00My05Ni05Ni05NmwtOTYgMCAwIDgwYzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2wxNjAtMTYwYzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45eiJdfSwka2U9V0ksQWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1bi1wbGFudC13aWx0IixpY29uOls2NDAsNTEyLFtdLCJlNTdhIiwiTTE2MCAwYy01LjUgMC0xMC42IDIuOC0xMy41IDcuNGwtMS4xIDIuMS0yNC44IDU1LjQtNTYuNy0yMS43Yy01LjktMi4yLTEyLjUtLjgtMTcgMy43UzQxIDU4IDQzLjIgNjMuOWwyMS43IDU2LjctNTUuNCAyNC44QzMuNyAxNDggMCAxNTMuNyAwIDE2MHMzLjcgMTIgOS41IDE0LjZsNTUuNCAyNC44LTIxLjcgNTYuN2MtMi4yIDUuOS0uOCAxMi41IDMuNyAxN3MxMS4xIDUuOSAxNyAzLjdsNTYuNy0yMS43IDI0LjggNTUuNGMyLjYgNS44IDguMyA5LjUgMTQuNiA5LjVzMTItMy43IDE0LjYtOS41bDI0LjgtNTUuNCA1Ni44IDIxLjdjNS45IDIuMiAxMi41IC44IDE3LTMuN3M1LjktMTEuMSAzLjctMTdsLTIxLjctNTYuNyA1NS40LTI0LjhjNS44LTIuNiA5LjUtOC4zIDkuNS0xNC42cy0zLjctMTItOS41LTE0LjZsLTU1LjQtMjQuOCAyMS43LTU2LjcgLjctMi4yYzEuMi01LjMtLjQtMTAuOS00LjMtMTQuOHMtOS41LTUuNS0xNC44LTQuM2wtMi4yIC43LTU2LjggMjEuNy0yNC44LTU1LjRDMTcyIDMuNyAxNjYuMyAwIDE2MCAwem0wIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zNzYgMTZsMCA1My40Yy0xNC44IDcuNy0yNCAyMy4xLTI0IDQ0LjYgMCAxNi44IDE2IDQ0IDM3LjQgNjcuMiA1LjggNi4yIDE1LjUgNi4yIDIxLjIgMCAyMS40LTIzLjMgMzcuNC01MC42IDM3LjQtNjcuMiAwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC01My40YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgMjIuN2MtOS44LTQuMy0yMC42LTYuNy0zMi02LjctNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMS40Yy0xNC44IDcuNi0yNCAyMy4xLTI0IDQ0LjYgMCAxNi44IDE2IDQ0IDM3LjQgNjcuMiA1LjggNi4yIDE1LjUgNi4yIDIxLjIgMCAyMS40LTIzLjMgMzcuNC01MC42IDM3LjQtNjcuMiAwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC0yMS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzYtNDI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwNCAwIDAtMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LERrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWN0ZXJpdW0iLGljb246WzU3Niw1MTIsW10sImUwNWEiLCJNNDA4IDE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzM2MCAyLjcgMzYwIDE2bDAgMjMuNGMtMTMuOSA1LjMtMjYuOSAxMy41LTM4LjIgMjQuNUwzMDUgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMTc3IDE3NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjgtMzAuMSAzMC4xLTE2LjgtMTYuOGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjhjLTExIDExLjMtMTkuMiAyNC4zLTI0LjUgMzguMkw0OCAzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYuMyAwYzEuMyAxOC4zIDcuMSAzNi40IDE3LjQgNTIuNEw3MSA0MzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMC42LTEwLjZjMTYgMTAuMyAzNC4xIDE2LjEgNTIuNCAxNy40bDAgMTYuM2MwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjMuNGMxMy45LTUuMyAyNi45LTEzLjUgMzguMi0yNC41TDI3MSA0NjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMzk5IDMzN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOCAzMC4xLTMwLjEgMTYuOCAxNi44YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44YzExLTExLjMgMTkuMi0yNC4zIDI0LjUtMzguMmwyMy40IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2LjMgMGMtMS4zLTE4LjMtNy4xLTM2LjQtMTcuNC01Mi40TDUwNSA3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQ2MC40IDQ5LjdjLTE2LTEwLjMtMzQuMS0xNi4xLTUyLjQtMTcuNEw0MDggMTZ6TTE2MCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjcyIDI0MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEVrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWNvcmQtdmlueWwiLGljb246WzUxMiw1MTIsW10sImY4ZDkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0wIDI0MGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTEyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sR0k9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxvcHB5LWRpc2siLGljb246WzQ0OCw1MTIsWzEyODE5MCwxMjg0MjYsInNhdmUiXSwiZjBjNyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjQyLjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzUyIDUwLjdDMzQwIDM4LjcgMzIzLjcgMzIgMzA2LjcgMzJMNjQgMzJ6bTMyIDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0yMjQgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxQa2U9R0ksSWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldHMtcG9ydGFibGUiLGljb246WzUxMiw1MTIsW10sImU1ODQiLCJNNjQgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNkMwIDI4LjcgMjguNyAwIDY0IDB6TTAgMTI4bDIyNCAwIDAgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjggMCAwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA1MDEuMyAwIDQ4OEwwIDEyOHpNMTI4IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzUyIDBsOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTIyNCAwIDAtMTZjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTI4OCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTM2MHpNNDE2IDI0OGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0IDAgMC05Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sTmtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im8iLGljb246WzQ0OCw1MTIsWzExMV0sIjRmIiwiTTIyNCA5NmExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAxIDAgMC0zMjB6TTQ0OCAyNTZhMjI0IDIyNCAwIDEgMSAtNDQ4IDAgMjI0IDIyNCAwIDEgMSA0NDggMHoiXX0sRmtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGV0dGUiLGljb246WzUxMiw1MTIsWzEyNzkxMl0sImY1M2YiLCJNNTEyIDI1NmMwIC45IDAgMS44IDAgMi43LS40IDM2LjUtMzMuNiA2MS4zLTcwLjEgNjEuM0wzNDQgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDMuNCAuNCA2LjcgMSA5LjkgMi4xIDEwLjIgNi41IDIwIDEwLjggMjkuOSA2LjEgMTMuOCAxMi4xIDI3LjUgMTIuMSA0MiAwIDMxLjgtMjEuNiA2MC43LTUzLjQgNjItMy41IC4xLTcgLjItMTAuNiAuMi0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2UzExNC42IDAgMjU2IDAgNTEyIDExNC42IDUxMiAyNTZ6TTEyOCAyODhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC05NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI4OCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LE9rZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bmxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NV0sImYwOWMiLCJNMTI4IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0IDMxLjcgMCA1OCAyMyA2My4xIDUzLjMgMi45IDE3LjQgMTkuNCAyOS4yIDM2LjkgMjYuM3MyOS4yLTE5LjQgMjYuMy0zNi45QzMwOC4xIDE0LjEgMjU1LjUtMzIgMTkyLTMyIDEyMS4zLTMyIDY0IDI1LjMgNjQgOTZsMCA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE5MiAwIDAtNjR6Il19LFlJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhci1saXN0ZW4iLGljb246WzUxMiw1MTIsWyJhc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXMiXSwiZjJhMiIsIk0zNzkuNiAuM2MtOC45IDEuMi0xNy4yIDYuMi0yMi40IDE0LjEtNi44IDEwLjQtNyAyNC4xLS40IDM0LjYgNS42IDguOSAxNS41IDEyLjcgMjMuOCAxOC41IDcuNSA1LjIgMTcuNiAxMy4yIDI3LjcgMjQuMiAyMCAyMS43IDM5LjUgNTQuMyAzOS41IDEwMC4zIDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02Ni0yOC41LTExMy40LTU2LjUtMTQzLjctMTMuOS0xNS4xLTI3LjgtMjYuMS0zOC4zLTMzLjMtMTEtNy42LTIzLjUtMTYuNi0zNy42LTE0Ljd6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyek0wIDQ4MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjAtOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek04Ni42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHpNMjQwIDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sUmtlPVlJLEJrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLXB1bGwtcmVxdWVzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTEzYyIsIk0zMjggMjRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzI5My45IC4yIDI4NyA3TDIzMSA2M2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTYgNTZjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMlMzMjggMTQ1LjcgMzI4IDEzNmwwLTI0IDI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMTQuN2MtMjguMyAxMi4zLTQ4IDQwLjUtNDggNzMuMyAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzIuOC0xOS43LTYxLTQ4LTczLjNMNDQ4IDE0NGMwLTUzLTQzLTk2LTk2LTk2bC0yNCAwIDAtMjR6TTcyIDgwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTU2IDczLjNjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MFMxNiAzNS44IDE2IDgwYzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCAyMDUuM2MtMjguMyAxMi4zLTQ4IDQwLjUtNDggNzMuMyAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzIuOC0xOS43LTYxLTQ4LTczLjNsMC0yMDUuM3pNNzIgNDMyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTM0NC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LEhrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrZXkiLGljb246WzUxMiw1MTIsWzEyODI3M10sImYwODQiLCJNMzM2IDM1MmM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NlM0MzMuMiAwIDMzNiAwIDE2MCA3OC44IDE2MCAxNzZjMCAxOC43IDIuOSAzNi44IDguMyA1My43TDcgMzkxYy00LjUgNC41LTcgMTAuNi03IDE3bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQwIDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00MCA0MCAwYzYuNCAwIDEyLjUtMi41IDE3LTdsMzMuMy0zMy4zYzE2LjkgNS40IDM1IDguMyA1My43IDguM3pNMzc2IDk2YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0scWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNrdWxsIixpY29uOls1MTIsNTEyLFsxMjgxMjhdLCJmNTRjIiwiTTQxNiA0MjcuNGM1OC41LTQ0IDk2LTExMS42IDk2LTE4Ny40IDAtMTMyLjUtMTE0LjYtMjQwLTI1Ni0yNDBTMCAxMDcuNSAwIDI0MGMwIDc1LjggMzcuNSAxNDMuNCA5NiAxODcuNEw5NiA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCA2NCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNi42ek05NiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwem0yNTYtNjRhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LFpJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlLXVwIixpY29uOlszODQsNTEyLFs5ODk2LCJtYXJzLXN0cm9rZS12Il0sImYyMmEiLCJNMTkyIDI1NmExMTIgMTEyIDAgMSAwIDAgMjI0IDExMiAxMTIgMCAxIDAgMC0yMjR6TTE2IDM2OGMwLTg2LjMgNjIuMS0xNTguMSAxNDQuMS0xNzMuMS0uMS0uOS0uMS0xLjktLjEtMi45bDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjEuNC0yOCAyMi40Yy0xMy44IDExLTMzLjkgOC44LTQ1LTVzLTguOC0zMy45IDUtNDVsODAtNjRjMTEuNy05LjMgMjguMy05LjMgNDAgMGw4MCA2NGMxMy44IDExIDE2IDMxLjIgNSA0NXMtMzEuMiAxNi00NSA1bC0yOC0yMi40IDAgNjEuNCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTZjMCAxIDAgMS45LS4xIDIuOSA4MiAxNSAxNDQuMSA4Ni44IDE0NC4xIDE3My4xIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzE2IDQ2NS4yIDE2IDM2OHoiXX0sVmtlPVpJLFhJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtZmxhbWUtc2ltcGxlIixpY29uOlszODQsNTEyLFsiYnVybiJdLCJmNDZhIiwiTTM3Mi41IDI1Ni41bC0uNy0xLjlDMzM3LjggMTYwLjggMjgyIDc2LjUgMjA5LjEgOC41bC0zLjMtM0MyMDIuMSAyIDE5Ny4xIDAgMTkyIDBzLTEwLjEgMi0xMy44IDUuNWwtMy4zIDNDMTAyIDc2LjUgNDYuMiAxNjAuOCAxMi4yIDI1NC42bC0uNyAxLjlDMy45IDI3Ny4zIDAgMjk5LjQgMCAzMjEuNiAwIDQyNi43IDg2LjggNTEyIDE5MiA1MTJzMTkyLTg1LjMgMTkyLTE5MC40YzAtMjIuMi0zLjktNDQuMi0xMS41LTY1LjF6bS05MC44IDQ5LjVjNC4xIDkuMyA2LjIgMTkuNCA2LjIgMjkuNSAwIDUzLTQzIDk2LjUtOTYgOTYuNXMtOTYtNDMuNS05Ni05Ni41YzAtMTAuMSAyLjEtMjAuMyA2LjItMjkuNWwxLjktNC4zYzE1LjgtMzUuNCAzNy45LTY3LjcgNjUuMy05NS4xbDguOS04LjljMy42LTMuNiA4LjUtNS42IDEzLjYtNS42czEwIDIgMTMuNiA1LjZsOC45IDguOWMyNy40IDI3LjQgNDkuNiA1OS43IDY1LjMgOTUuMWwxLjkgNC4zeiJdfSxqa2U9WEksVWtlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUiLGljb246WzQ0OCw1MTIsWzEyNzc5NF0sImYxYmIiLCJNMjI0LTMyYzcgMCAxMy43IDMuMSAxOC4zIDguNWwxMzYgMTYwYzYuMSA3LjEgNy40IDE3LjEgMy41IDI1LjZTMzY5LjQgMTc2IDM2MCAxNzZsLTI0LjkgMCA3NS4yIDg4LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MDEuNCAzMDQgMzkyIDMwNGwtMzguNSAwIDg4LjggMTA0LjVjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlM0MzMuNCA0NDggNDI0IDQ0OGwtMTY4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0LTE2OCAwYy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDk0LjUgMzA0IDU2IDMwNGMtOS40IDAtMTcuOS01LjQtMjEuOC0xMy45cy0yLjYtMTguNSAzLjUtMjUuNkwxMTIuOSAxNzYgODggMTc2Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42bDEzNi0xNjBDMjEwLjMtMjguOSAyMTctMzIgMjI0LTMyeiJdfSxXa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic21vZyIsaWNvbjpbNTc2LDUxMixbXSwiZjc1ZiIsIk0xNzYgMjg4Qzk2LjUgMjg4IDMyIDIyMy41IDMyIDE0NFM5Ni41IDAgMTc2IDBjMjcuMiAwIDUyLjYgNy41IDc0LjMgMjAuNiAyMC4xLTEzIDQ0LTIwLjYgNjkuNy0yMC42IDQ3LjQgMCA4OC43IDI1LjcgMTEwLjkgNjRsMS4xIDBjNjEuOSAwIDExMiA1MC4xIDExMiAxMTIgMCA2MC4zLTQ3LjYgMTA5LjQtMTA3LjIgMTExLjktMjIuNiAyMC01Mi4zIDMyLjEtODQuOCAzMi4xLTMyLjUgMC02Mi4xLTEyLjEtODQuNy0zMkwxNzYgMjg4ek01MTIgMzkyYzAgMTMuMy0xMC43IDI0LTI0IDI0TDI0IDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0NjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHpNODggNDY0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTE3NiAwbDI4OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yODggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sR2tlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InMiLGljb246WzMyMCw1MTIsWzExNV0sIjUzIiwiTTAgMTU3LjVDMCA4OC4yIDU2LjIgMzIgMTI1LjUgMzJMMjcyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDEyNS41IDk2Yy0zNCAwLTYxLjUgMjcuNS02MS41IDYxLjUgMCAzMSAyMy4xIDU3LjIgNTMuOSA2MUwyMTAuMSAyMzBDMjcyLjkgMjM3LjkgMzIwIDI5MS4yIDMyMCAzNTQuNSAzMjAgNDIzLjggMjYzLjggNDgwIDE5NC41IDQ4MEw0OCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ2LjUgMGMzNCAwIDYxLjUtMjcuNSA2MS41LTYxLjUgMC0zMS0yMy4xLTU3LjItNTMuOS02MUwxMDkuOSAyODJDNDcuMSAyNzQuMSAwIDIyMC44IDAgMTU3LjV6Il19LFlrZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqZWRpIixpY29uOls1NzYsNTEyLFtdLCJmNjY5IiwiTTI0NiAzMTUuN2wtMjEuMi0zMS45Yy0yLjEtMy4yLTEuNy03LjQgMS0xMC4xczYuOS0zLjEgMTAuMS0xbDI5LjUgMTkuN2MyLjEgMS40IDQuOS0uMSA1LTIuNkwyNzkuNyA4Yy4xLTQuNSAzLjgtOCA4LjMtOHM4LjEgMy41IDguMyA4bDkuNCAyODEuOWMuMSAyLjUgMi45IDMuOSA1IDIuNmwyOS41LTE5LjdjMy4yLTIuMSA3LjQtMS43IDEwLjEgMXMzLjEgNi45IDEgMTAuMUwzMzAgMzE1LjdjLTEuMyAxLjktLjIgNC41IDIgNC45bDM3LjYgNy41YzMuNyAuNyA2LjQgNCA2LjQgNy44cy0yLjcgNy4xLTYuNCA3LjhMMzMyIDM1MS40Yy0yLjIgLjQtMy4zIDMtMiA0LjlsMjEuMiAzMS45YzIuMSAzLjIgMS43IDcuNC0xIDEwLjFzLTYuOSAzLjEtMTAuMSAxbC0yNi4zLTE3LjZjLTIuMi0xLjQtNS4xIC4yLTUgMi44bDIuMSA2MS41YzU5LjgtMTAuOCAxMDUuMS02My4xIDEwNS4xLTEyNiAwLTM3LTE1LjctNzAuNC00MC44LTkzLjctNy02LjUtNi41LTE4LjYgMS0yNC40IDM0LTI2LjMgNTUuOC02Ny41IDU1LjgtMTEzLjkgMC0xNi44LTIuOS0zMy04LjItNDgtNC42LTEzIDEwLjItMzAgMjEuNC0yMiA1My41IDM4IDkyLjcgOTQuOCAxMDcuOCAxNjAuNyAuNSAyLjEtLjIgNC4zLTEuNyA1LjlsLTI4LjQgMjguNGMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDI2IDBjMy40IDAgNi4yIDIuNiA2LjMgNiAuMSAzLjMgLjIgNi42IC4yIDEwIDAgMTcuNS0xLjcgMzQuNy00LjggNTEuMy0uMiAxLjItLjkgMi40LTEuNyAzLjNsLTQ2LjUgNDYuNWMtNCA0LTEuMiAxMC45IDQuNSAxMC45bDE0LjYgMGM0LjYgMCA3LjcgNC44IDUuNyA5LTQ0LjUgODkuNS0xMzYuOSAxNTEtMjQzLjcgMTUxUzg4LjggNDUwLjUgNDQuMyAzNjFjLTIuMS00LjIgMS05IDUuNy05bDE0LjYgMGM1LjcgMCA4LjYtNi45IDQuNS0xMC45TDIyLjYgMjk0LjZjLS45LS45LTEuNS0yLTEuNy0zLjMtMy4yLTE2LjYtNC44LTMzLjgtNC44LTUxLjMgMC0zLjMgLjEtNi43IC4yLTEwIC4xLTMuNCAyLjktNiA2LjMtNmwyNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjQuNiAxODQuNmMtMS41LTEuNS0yLjItMy44LTEuNy01LjkgMTUuMi02NiA1NC4zLTEyMi44IDEwNy44LTE2MC43IDExLjMtOCAyNiA4LjkgMjEuNCAyMi01LjMgMTUtOC4yIDMxLjItOC4yIDQ4IDAgNDYuMyAyMS45IDg3LjUgNTUuOCAxMTMuOSA3LjUgNS44IDggMTcuOSAxIDI0LjQtMjUuMSAyMy40LTQwLjggNTYuNy00MC44IDkzLjcgMCA2Mi45IDQ1LjQgMTE1LjIgMTA1LjEgMTI2bDIuMS02MS41Yy4xLTIuNi0yLjgtNC4yLTUtMi44bC0yNi4zIDE3LjZjLTMuMiAyLjEtNy40IDEuNy0xMC4xLTFzLTMuMS02LjktMS0xMC4xTDI0NiAzNTYuM2MxLjMtMS45IC4yLTQuNS0yLTQuOWwtMzcuNi03LjVjLTMuNy0uNy02LjQtNC02LjQtNy44czIuNy03LjEgNi40LTcuOGwzNy42LTcuNWMyLjItLjQgMy4zLTMgMi00Ljl6Il19LEtJPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oaWtpbmciLGljb246WzQ0OCw1MTIsWyJoaWtpbmciXSwiZjZlYyIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTEyOCAxNzMuNmMwLTM0IDI3LjYtNjEuNiA2MS42LTYxLjYgMjAuMyAwIDM5LjcgOC4xIDU0IDIyLjRsNDguMiA0OC4yYzYgNiAxNC4xIDkuNCAyMi42IDkuNGwzNy41IDBjNS44IDAgMTEuMyAxLjYgMTYgNC4zbDAtNzYuM2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjY4LjNjLTQuNyAyLjctMTAuMiA0LjMtMTYgNC4zbC0zNy41IDBjLTI1LjUgMC00OS45LTEwLjEtNjcuOS0yOC4xbC02LjYtNi42IDAgMTA5LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC0xMDF6bS00LjggMjAzLjdjMi4zIDIuMyA0LjcgNC40IDcuMSA2LjVsNDQuOSAzOC41Yy0zLjYgOC40LTguNSAxNi4zLTE0LjQgMjMuNEw4OC42IDUzMi41Yy0xMS4zIDEzLjYtMzEuNSAxNS40LTQ1LjEgNC4xcy0xNS40LTMxLjUtNC4xLTQ1LjFsNzIuMy04Ni43YzIuNi0zLjEgNC41LTYuNiA1LjgtMTAuNGw1LjctMTcuMXpNMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjQgMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6Il19LFprZT1LSSxYa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXVwLXRvLWxpbmUiLGljb246WzQ0OCw1MTIsW10sImU0YzIiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMlM0MzMuNyAwIDQxNiAwTDMyIDB6bTg2LjYgMTM3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw2NCAyMzcuMyA2NCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0Mi43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6bTI1NiAwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNCAwIDI0Mi43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDIuNyA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0eiJdfSxLa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1kb3VibGUiLGljb246WzY0MCw1MTIsWzk4OTFdLCJmMjI3IiwiTTI4OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctOTUgOTVjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMwIDQwMS4yIDAgMzA0IDc4LjggMTI4IDE3NiAxMjhjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw5NS05NS01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xNzYgNDE2YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHptMTYwIDY0Yy02LjggMC0xMy40LS40LTIwLTEuMSAyMy42LTE4LjkgNDMuMy00Mi41IDU3LjYtNjkuNCA0My4zLTE1LjUgNzQuNC01Ni45IDc0LjQtMTA1LjUgMC0yNS4yLTguMy00OC41LTIyLjQtNjcuMiA3LjEgMi4xIDE0LjYgMy4yIDIyLjQgMy4yIDE3IDAgMzIuNy01LjMgNDUuNy0xNC4zIDExLjcgMjMuNiAxOC4zIDUwLjIgMTguMyA3OC4zIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2ek01MjggMTU3LjNMNTI4IDMyYzAtMTEuNC0yLjQtMjIuMi02LjctMzJMNjA4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC01MC43LTQ4IDQ4eiJdfSxRa2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGhlcm1vbWV0ZXIiLGljb246WzUxMiw1MTIsW10sImY0OTEiLCJNOTYgMzgyLjFsMC04OC44YzAtMTQuOSA1LjktMjkuMSAxNi40LTM5LjZsMjEuNy0yMS43IDQxIDQxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDEtNDEgNDYuMS00Ni4xIDQxIDQxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDEtNDEgNDYuMS00Ni4xIDQxIDQxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDEtNDEgNy44LTcuOGMxOS40LTE5LjQgNDUuNi0zMC4yIDczLTMwLjIgNTcgMCAxMDMuMiA0Ni4yIDEwMy4yIDEwMy4yIDAgMjcuNC0xMC45IDUzLjYtMzAuMiA3M0wyNTguMyAzOTkuNmMtMTAuNSAxMC41LTI0LjcgMTYuNC0zOS42IDE2LjRsLTg4LjggMC04OSA4OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBTLTIuMyA0ODAuNCA3IDQ3MWw4OS04OXoiXX0sUUk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFpbnRicnVzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mzk2LCJwYWludC1icnVzaCJdLCJmMWZjIiwiTTQ4MC41IDEwLjNMMjU5LjEgMTU4Yy0yOS4xIDE5LjQtNDcuNiA1MC45LTUwLjYgODUuMyA2Mi4zIDEyLjggMTExLjQgNjEuOSAxMjQuMyAxMjQuMyAzNC41LTMgNjUuOS0yMS41IDg1LjMtNTAuNkw1NjUuNyA5NS41YzYuNy0xMC4xIDEwLjMtMjEuOSAxMC4zLTM0LjEgMC0zMy45LTI3LjUtNjEuNC02MS40LTYxLjQtMTIuMSAwLTI0IDMuNi0zNC4xIDEwLjN6TTI4OCA0MDBjMC02MS45LTUwLjEtMTEyLTExMi0xMTJTNjQgMzM4LjEgNjQgNDAwYzAgMy45IC4yIDcuOCAuNiAxMS42IDEuOCAxNy41LTEwLjIgMzYuNC0yNy44IDM2LjRMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE0NCAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyeiJdfSxKa2U9UUksZVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ldXRlciIsaWNvbjpbMzg0LDUxMixbOTkwNl0sImYyMmMiLCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTIyMy45IDM0OS4xQzMwNS45IDMzNC4xIDM2OCAyNjIuMyAzNjggMTc2IDM2OCA3OC44IDI4OS4yIDAgMTkyIDBTMTYgNzguOCAxNiAxNzZjMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0LjEgMTczLjEtLjEgMS0uMSAxLjktLjEgMi45bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC0xIDAtMS45LS4xLTIuOXoiXX0sSkk9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBob25lLWZsaXAiLGljb246WzQ0OCw1MTIsWyJwaG9uZS1zcXVhcmUtYWx0Il0sImY4N2IiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjMyIDk2LjdsMi44IC44YzMyLjMgOC44IDU5LjkgNDAuMSA1MS44IDc4LjItMTguNSA4Ny41LTg3LjQgMTU2LjMtMTc0LjkgMTc0LjktMzguMSA4LjEtNjkuNC0xOS41LTc4LjItNTEuOGwtLjgtMi44Yy0yLjctOS44IDIuNC0yMC4xIDExLjgtMjRsNDguNy0yMC4zYzguMy0zLjQgMTcuOC0xLjEgMjMuNSA1LjlsMTkuMyAyMy42YzM1LjEtMTcuNCA2My40LTQ2LjYgNzkuNi04Mi40bC0yMi4xLTE4Yy02LjktNS43LTkuMy0xNS4yLTUuOS0yMy41bDIwLjMtNDguN2MzLjktOS40IDE0LjItMTQuNCAyNC0xMS44eiJdfSx0U2U9SkksZU49e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODU0MSwiZ3Jpbi10b25ndWUtc3F1aW50Il0sImY1OGEiLCJNMCAyNTZjMCAxMDQuNCA2Mi41IDE5NC4yIDE1Mi4yIDIzNC4xLTUuMy0xMy04LjItMjcuMi04LjItNDIuMWwwLTYxLjdjLTE2LjktMTYuNS0zMC4xLTM2LjctMzguMy01OS4zLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtOC4zIDIyLjYtMjEuNSA0Mi44LTM4LjMgNTkuM2wwIDYxLjdjMCAxNC45LTIuOSAyOS4xLTguMiA0Mi4xIDg5LjctMzkuOCAxNTIuMi0xMjkuNiAxNTIuMi0yMzQuMSAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzAgMTE0LjYgMCAyNTZ6bTEyNS44LTkxLjdjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjFzMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zem0yNjMuNi0yMS4xYzQuNSA2LjggMy4xIDE1LjktMy4xIDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXpNMzIwIDQ0OGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LGFTZT1lTixpU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1kb2xsYXIiLGljb246WzUxMiw1MTIsW10sImY2NTEiLCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6bTQtMzUyYzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Yy0yNS4zLTQuMi00My45LTI2LjEtNDMuOS01MS44IDAtMjguOCAyMy4yLTUyLjIgNTItNTIuNWwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxyU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlwcG8iLGljb246WzY0MCw1MTIsWzEyOTQzNV0sImY2ZWQiLCJNNDA3IDQ3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDE3LjIgMTcuMmMxLjktLjEgMy45LS4yIDUuOC0uMmwzMiAwYzExLjIgMCAyMS45IDIuMyAzMS42IDYuNUw1NDMgNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDU2NCAxMDEuOWM3LjYgMTIuMiAxMiAyNi43IDEyIDQyLjEgMCAxMC4yIDcuNCAxOC44IDE2LjcgMjMgMjcuOSAxMi41IDQ3LjMgNDAuNSA0Ny4zIDczIDAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2LTY0IDAgMCAxNmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE3LjZjLTExLjgtMi40LTIyLjctNy40LTMyLTE0LjQtMS41LTEuMS0yLjktMi4zLTQuMy0zLjUtMTctMTQuNy0yNy43LTM2LjQtMjcuNy02MC41IDAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2YzAgNDQuNyAyNi4yIDgzLjIgNjQgMTAxLjJsMCAxMC44YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03NmMtMTkuOCA3LjctNDEuNCAxMi02NCAxMnMtNDQuMi00LjMtNjQtMTJsMCA3NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTguOS0xOC4xIDQwLjdjLTUuNCAxMi4xLTE5LjYgMTcuNi0zMS43IDEyLjJTLTMuMyAzNjIuNCAyLjEgMzUwLjNMMjQgMzAwLjljNS4zLTExLjkgOC0yNC43IDgtMzcuNyAwLTEwNy41IDg1LjItMTk1LjIgMTkxLjgtMTk5LjFsLjItLjEgNjQgMGM0MS43IDAgODMuNCAxMi4xIDExNy4yIDI1LjcgMS43LTEuOCAzLjUtMy42IDUuMy01LjJMNDA3IDgxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptNzMgMTg1YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTg4IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNNDgwIDE0NGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6Il19LHNTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsLWZvb2QiLGljb246WzUxMiw1MTIsW10sImU0YzYiLCJNMCAxNzZjMC0zNS4zIDI4LjctNjQgNjQtNjQgLjUgMCAxLjEgMCAxLjYgMCA3LjQtMzYuNSAzOS43LTY0IDc4LjQtNjQgMTUgMCAyOSA0LjEgNDAuOSAxMS4yIDEzLjMtMjUuNyA0MC4xLTQzLjIgNzEuMS00My4yczU3LjggMTcuNiA3MS4xIDQzLjJjMTItNy4xIDI2LTExLjIgNDAuOS0xMS4yIDM4LjcgMCA3MSAyNy41IDc4LjQgNjQgLjUgMCAxLjEgMCAxLjYgMCAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDExLjctMy4xIDIyLjYtOC42IDMyTDguNiAyMDhDMy4xIDE5OC42IDAgMTg3LjcgMCAxNzZ6TTAgMjgzLjRDMCAyNjguMyAxMi4zIDI1NiAyNy40IDI1Nmw0NTcuMSAwYzE1LjEgMCAyNy40IDEyLjMgMjcuNCAyNy40IDAgNzAuNS00NC40IDEzMC43LTEwNi43IDE1NC4xTDQwMy41IDQ1MmMtMiAxNi0xNS42IDI4LTMxLjggMjhsLTIzMS41IDBjLTE2LjEgMC0yOS44LTEyLTMxLjgtMjhsLTEuOC0xNC40QzQ0LjQgNDE0LjEgMCAzNTMuOSAwIDI4My40eiJdfSxuU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXZpcnVzIixpY29uOls0NDgsNTEyLFtdLCJlNTc4IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTE2MCA4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDIyLjkgMjcuNyAzNC40IDQzLjkgMTguMiA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTE2LjIgMTYuMi00LjcgNDMuOSAxOC4yIDQzLjkgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIyLjkgMC0zNC40IDI3LjctMTguMiA0My45IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTE2LjItMTYuMi00My45LTQuNy00My45IDE4LjIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0yMi45LTI3LjctMzQuNC00My45LTE4LjItOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMxNi4yLTE2LjIgNC43LTQzLjktMTguMi00My45LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjIuOSAwIDM0LjQtMjcuNyAxOC4yLTQzLjktOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzE2LjIgMTYuMiA0My45IDQuNyA0My45LTE4LjIgMC0xMy4zIDEwLjctMjQgMjQtMjR6TTE5MiAyNDhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OCA0MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxvU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtc3VuLXJhaW4iLGljb246WzY0MCw1MTIsWzEyNzc4Ml0sImY3NDMiLCJNMjU0LjkgNDQ4LjJjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjMtMTUuMiAxMi42IDQuMiAxOS40IDE3LjggMTUuMiAzMC40bC0yMS40IDY0LjFjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJzLTE5LjQtMTcuOC0xNS4yLTMwLjNsMjEuNC02NC4yem0xMjAgMGM0LjItMTIuNiAxNy44LTE5LjQgMzAuMy0xNS4yIDEyLjYgNC4yIDE5LjQgMTcuOCAxNS4yIDMwLjRsLTIxLjQgNjQuMWMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMnMtMTkuNC0xNy44LTE1LjItMzAuM2wyMS40LTY0LjJ6bTEyMCAwYzQuMi0xMi42IDE3LjgtMTkuNCAzMC4zLTE1LjIgMTIuNiA0LjIgMTkuNCAxNy44IDE1LjIgMzAuNGwtMjEuNCA2NC4xYy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4ycy0xOS40LTE3LjgtMTUuMi0zMC4zbDIxLjQtNjQuMnpNNDQ4LjMgMTI4YzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNy41LTEuMSAxNC43LTMgMjEuNSAyOS44IDExLjYgNTEgNDAuNiA1MSA3NC41IDAgNDQuMi0zNS44IDgwLTgwIDgwbC0xOTIgMC04LjItLjRjLTQwLjMtNC4xLTcxLjgtMzguMi03MS44LTc5LjYgMC0zOSAyNy45LTcxLjUgNjQuOS03OC41LS41LTMuMS0uOS02LjItLjktOS41IDAtMzAuOSAyNS4xLTU2IDU2LTU2IDEyLjQgMCAyMy45IDQuMSAzMy4yIDEwLjkgMTMuNC0yNS41IDQwLjEtNDIuOSA3MC44LTQyLjl6TTI0MC4zLTMxLjhjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjFsNDcuMyA3MC40IDgzLjMtMTYuM2M1LjItMSAxMC42IC43IDE0LjMgNC40IDMuOCAzLjggNS40IDkuMiA0LjQgMTQuNGwtOC42IDQzLjhjLTExLjkgNS41LTIyLjggMTIuOS0zMi40IDIxLjYtNS43LTEtMTEuNy0xLjUtMTcuNy0xLjUtMTQuMyAwLTI4IDMtNDAuNCA4LjItMTYuOS0xNS0zOS4yLTI0LjItNjMuNi0yNC4yLTUzIDAtOTYgNDMtOTYgOTYgMCAzMC45IDE0LjYgNTguMiAzNy4yIDc1LjgtMy40IDExLjUtNS4yIDIzLjYtNS4yIDM2LjIgMCAxMy4yIDIgMjUuOSA1LjcgMzcuOWwtMi40LTMuNS04My4yIDE2LjNjLTUuMiAxLTEwLjYtLjctMTQuMy00LjQtMy44LTMuOC01LjQtOS4yLTQuNC0xNC40bDE2LjMtODMuMy03MC40LTQ3LjRjLTQuNC0zLTcuMS04LTcuMS0xMy4zIDAtNS4zIDIuNi0xMC4zIDctMTMuMmw3MC40LTQ3LjQtMTYuMy04My4yLS4yLTJjLS4zLTQuNiAxLjMtOS4xIDQuNi0xMi40IDMuOC0zLjggOS4yLTUuNCAxNC40LTQuNGw4My4yIDE2LjMgNDcuMy03MC40IDEuMi0xLjZjMy0zLjUgNy40LTUuNSAxMi4xLTUuNXptMCAxNzUuOGM4LjYgMCAxNi42IDIuMyAyMy42IDYuMi05LjcgMTEuOS0xNi45IDI1LjktMjAuNyA0MS4zLTE1IDguMS0yOC4yIDE5LjItMzguOCAzMi4zLTcuNS04LjUtMTIuMi0xOS42LTEyLjItMzEuOCAwLTI2LjUgMjEuNS00OCA0OC00OHoiXX0sdE49e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctcmlnaHQiXSwiZjE3OCIsIk01NjYuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDY2LjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0MzQuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxsU2U9dE4sY1NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVuIixpY29uOls1MTIsNTEyLFtdLCJlNGQ5IiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNzItMTEyIDBjLTIwLjkgMC0zOS41IDEwLjEtNTEuMiAyNS42LTgtNi0xOC05LjYtMjguOC05LjYtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NCA2NCAwIDAgNDgtMTQ0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTQyNy40IDM4MC41YzktMi4xIDE4LjMgMi4yIDIyLjUgMTAuNWwyNi4xIDUyLjIgMC00My4zYzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgMTI4YzAgOS4zLTYuNCAxNy4zLTE1LjQgMTkuNXMtMTguMy0yLjItMjIuNS0xMC41TDQ1MiA0ODQuNyA0NTIgNTI4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTEyOGMwLTkuMyA2LjQtMTcuMyAxNS40LTE5LjV6TTMyNCA0MDBsMCA5NmMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtOTZjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA5NmMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIweiJdfSxkU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtbG93IixpY29uOls1MTIsNTEyLFtdLCJmNzZiIiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00NjQgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzUyIDgwYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHoiXX0scFNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvb3Itb3BlbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjUyYiIsIk0yODggNjRsNjQgMCAwIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwIDAgMC0xNjAgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQxNnpNMTYwIDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxoU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tbGVmdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNiIsIk0yODggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiAzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxhTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1lcmEiLGljb246WzUxMiw1MTIsWzYyMjU4LCJjYW1lcmEtYWx0Il0sImYwMzAiLCJNMTQ5LjEgNjQuOEwxMzguNyA5NiA2NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTc0LjcgMC0xMC40LTMxLjJDMzU2LjQgNDUuMiAzMzguMSAzMiAzMTcuNCAzMkwxOTQuNiAzMmMtMjAuNyAwLTM5IDEzLjItNDUuNSAzMi44ek0yNTYgMTkyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSx1U2U9YU4sZlNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJheXMiLGljb246WzY0MCw1MTIsW10sImU1OTMiLCJNMzEtMzNDMjEuNy0yMy42IDIxLjctOC40IDMxIDFMODcgNTdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDY1LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNNjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw1MTkgMjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEw2MDkgMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXpNNjUgNTQ1bDU2LTU2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzEgNTExYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6bTU0NCAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC01Ni01NmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHpNMzIwIDIwOGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptMCAzMmMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJsMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOGMwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMjE2LTgwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNNDUxLjIgMjYwLjRDNDY5LjQgMjg2LjMgNDgwIDMxNy45IDQ4MCAzNTJsMCA4YzAgOC40LTEuNCAxNi41LTQuMSAyNGw3OC44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01My00My05Ni05Ni05Ni0xMCAwLTE5LjcgMS41LTI4LjggNC40em0tMjYyLjQgMGMtOS4xLTIuOS0xOC44LTQuNC0yOC44LTQuNC01MyAwLTk2IDQzLTk2IDk2bDAgMTAuN2MwIDExLjggOS42IDIxLjMgMjEuMyAyMS4zbDc4LjggMGMtMi43LTcuNS00LjEtMTUuNi00LjEtMjRsMC04YzAtMzQuMSAxMC42LTY1LjcgMjguOC05MS42ek0yMTYgMTYwYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHoiXX0sbVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhaW5ib3ciLGljb246WzY0MCw1MTIsWzEyNzc1Ml0sImY3NWIiLCJNMzIwIDk2QzE3OC42IDk2IDY0IDIxMC42IDY0IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDMzLjcgMCA0MTZsMC02NEMwIDE3NS4zIDE0My4zIDMyIDMyMCAzMlM2NDAgMTc1LjMgNjQwIDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRDNTc2IDIxMC42IDQ2MS40IDk2IDMyMCA5NnptMCAxMTJjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTExNC45IDkzLjEtMjA4IDIwOC0yMDhzMjA4IDkzLjEgMjA4IDIwOGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDR6TTI4OCAzNTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyeiJdfSxnU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2l0ZW1hcCIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOCIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04IDAgMCA2NCAxMjAgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjAgMCAwIDgwIDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTgwLTEyMCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDU2IDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDggMCAwLTU2YzAtMzkuOCAzMi4yLTcyIDcyLTcybDEyMCAwIDAtNjQtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0eiJdfSxpTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tc3RhcnMiLGljb246WzUxMiw1MTIsWzEyOTMyMSwiZ3Jpbi1zdGFycyJdLCJmNTg3IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTI0LjQtMy40LTQ4LjEtOS44LTcwLjUgMTguNi0zNi4xLTIuNy04My42LTQ2LjctOTAtNDYuOS01OC4zLTExOC45LTk1LjUtMTk5LjUtOTUuNVMxMDMuNCAzNy4zIDU2LjUgOTUuNWMtNDQgNi40LTY1LjMgNTMuOS00Ni43IDkwLTYuNCAyMi40LTkuOCA0Ni05LjggNzAuNSAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXptLTMxLjYtMjMxYzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40em0tMTk4LjIgMGwyMC45IDQyLjQgNDYuNyA2LjhjMTEuOCAxLjcgMTYuNSAxNi4yIDggMjQuNWwtMzMuOCAzMyA4IDQ2LjZjMiAxMS43LTEwLjMgMjAuNy0yMC45IDE1LjJsLTQxLjgtMjItNDEuOCAyMmMtMTAuNSA1LjUtMjIuOS0zLjQtMjAuOS0xNS4ybDgtNDYuNi0zMy44LTMzYy04LjUtOC4zLTMuOC0yMi44IDgtMjQuNWw0Ni43LTYuOCAyMC45LTQyLjRjNS4zLTEwLjcgMjAuNS0xMC43IDI1LjggMHoiXX0sYlNlPWlOLHJOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtdXAiLGljb246WzM4NCw1MTIsWyJzb3J0LWFzYyJdLCJmMGRlIiwiTTMyIDIyNGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuMiAxNzguNSA5LjQgMTY5LjRsMTYwLTE2MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzM2NC45IDIyNCAzNTIgMjI0TDMyIDIyNHoiXX0sdlNlPXJOLFFtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZSIsaWNvbjpbNTc2LDUxMixbMTI4MDY1XSwiZjA2ZSIsIk0yODggMzJjLTgwLjggMC0xNDUuNSAzNi44LTE5Mi42IDgwLjYtNDYuOCA0My41LTc4LjEgOTUuNC05MyAxMzEuMS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjZzMTQ1LjUtMzYuOCAxOTIuNi04MC42YzQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42ek0xNDQgMjU2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0NC02NGMwIDM1LjMtMjguNyA2NC02NCA2NC0xMS41IDAtMjIuMy0zLTMxLjctOC40LTEgMTAuOS0uMSAyMi4xIDIuOSAzMy4yIDEzLjcgNTEuMiA2Ni40IDgxLjYgMTE3LjYgNjcuOXM4MS42LTY2LjQgNjcuOS0xMTcuNmMtMTIuMi00NS43LTU1LjUtNzQuOC0xMDEuMS03MC44IDUuMyA5LjMgOC40IDIwLjEgOC40IDMxLjd6Il19LEptPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWxlZnQiLGljb246WzI1Niw1MTIsW10sImYwZDkiLCJNNy43IDIzNS44Yy0xMC4zIDEyLjYtOS41IDMxLjEgMi4yIDQyLjhsMTI4IDEyOGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMjU2YzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC0xMjggMTI4LTIuMiAyLjR6Il19LHNOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFwcGxlLXdob2xlIixpY29uOls0NDgsNTEyLFsxMjc4MjIsMTI3ODIzLCJhcHBsZS1hbHQiXSwiZjVkMSIsIk0yMjQgMTEyYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0xNiAwek0wIDI4OGMwLTc2LjMgMzUuNy0xNjAgMTEyLTE2MCAyNy4zIDAgNTkuNyAxMC4zIDgyLjcgMTkuMyAxOC44IDcuMyAzOS45IDcuMyA1OC43IDAgMjIuOS04LjkgNTUuNC0xOS4zIDgyLjctMTkuMyA3Ni4zIDAgMTEyIDgzLjcgMTEyIDE2MCAwIDEyOC04MCAyMjQtMTYwIDIyNC0xNi41IDAtMzguMS02LjYtNTEuNS0xMS4zLTguMS0yLjgtMTYuOS0yLjgtMjUgMC0xMy40IDQuNy0zNSAxMS4zLTUxLjUgMTEuMy04MCAwLTE2MC05Ni0xNjAtMjI0eiJdfSx5U2U9c04sbk49e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsLXRvcmFoIixpY29uOls1NzYsNTEyLFsidG9yYWgiXSwiZjZhMCIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMCA2OC45IDAgODYuNyAxMy40IDkzLjMgMzJsMzg5LjUgMGM2LjYtMTguNiAyNC40LTMyIDQ1LjMtMzIgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDgtMjAuOSAwLTM4LjctMTMuNC00NS4zLTMyTDkzLjMgNDgwYy02LjYgMTguNi0yNC40IDMyLTQ1LjMgMzItMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpNMTc3LjkgMzAxYy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yYy0yLjYtNC4yLTcuMi02LjgtMTIuMi02LjhzLTkuNiAyLjYtMTIuMiA2LjhsLTMwLjUgNDkuMi01Ni45IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDIuMyAuNiA0LjYgMS45IDYuNmwyNy44IDQ1LTI3LjggNDV6Il19LHhTZT1uTix3U2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTUxMCIsIk01MjggMjI0LjFjNDQuMiAwIDgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDE4NSAxNzEuOEM0NDAuMiAxOTUgNDAwIDI0NC44IDQwMCAzMDRsMCAyNC40Yy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTI3MiAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTYgMCAwLTg3LjNjMC0xNi41IDctMzEuNSAxOC40LTQyLjEtOC43LTktMjAuOS0xNC42LTM0LjQtMTQuNmwtMzIgMHptMjU2LTQ3LjljLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sTVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1sZWZ0LXJpZ2h0LXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU0YmEiLCJNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4TDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM5MC42IDM0Mi42bDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNC0xMzMuNSAwIDkuNC05LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOS40LTkuNCAxMzMuNSAwLTkuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6TTU3NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1NnoiXX0sZjg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhc2giLGljb246WzQ0OCw1MTIsW10sImYxZjgiLCJNMTM2LjcgNS45TDEyOCAzMiAzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDAtOC43LTI2LjFDMzA2LjktNy4yIDI5NC43LTE2IDI4MC45LTE2TDE2Ny4xLTE2Yy0xMy44IDAtMjYgOC44LTMwLjQgMjEuOXpNNDE2IDE0NEwzMiAxNDQgNTMuMSA0NjcuMUM1NC43IDQ5Mi40IDc1LjcgNTEyIDEwMSA1MTJMMzQ3IDUxMmMyNS4zIDAgNDYuMy0xOS42IDQ3LjktNDQuOUw0MTYgMTQ0eiJdfSxvTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNhZC10ZWFyIixpY29uOls1MTIsNTEyLFsxMjg1NDYsInNhZC10ZWFyIl0sImY1YjQiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjcxIDk4YzUuNS0xLjMgMTEuMS0yIDE3LTIgMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTAtMTIuNSAwLTI0LjYgMS45LTM1LjkgNS41IDkuOCAxMi43IDE2LjUgMjcuOSAxOC45IDQ0LjZ6TTE3NiAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTg1LjQgMjkyLjhjLTIuNC0yLjktNS43LTQuOC05LjQtNC44cy03IDEuOS05LjQgNC44Yy02LjUgNy44LTEyLjYgMTYuMS0xOC4zIDI0LjYtOSAxMy40LTIwLjMgMzAuMi0yMC4zIDQ3LjQgMCAyOC4zIDIxLjUgNTEuMiA0OCA1MS4yczQ4LTIyLjkgNDgtNTEuMmMwLTE3LjItMTEuMi0zNC0yMC4zLTQ3LjQtNS43LTguNS0xMS45LTE2LjctMTguMy0yNC42eiJdfSx6U2U9b04sa1NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZheCIsaWNvbjpbNTEyLDUxMixbMTI4MjI0LDEyODQzOV0sImYxYWMiLCJNMTYwIDY0bDAgODAgNjQgMCAwLTgwIDE0Ni43IDAgNDUuMyA0NS4zIDAgMzQuNyA2NCAwIDAtMzQuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MTYgMTguN0M0MDQgNi43IDM4Ny43IDAgMzcwLjcgMEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMHptNDQ4IDY0bC0zMjAgMCAwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDI4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0wIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTMzNiAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zMTIgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTQyNCAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek00MDAgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LFNTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NDEiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0sQ1NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbXNhIixpY29uOls1MTIsNTEyLFtdLCJmNjY1IiwiTTM0LjYgMjg4TDgwIDI4OGM4LjggMCAxNi03LjIgMTYtMTZMOTYgNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDEzMmMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTE2NGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTY0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTMyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMDBjMCA4LjggNy4yIDE2IDE2IDE2bDQ1LjQgMGMxOS4xIDAgMzQuNiAxNS41IDM0LjYgMzQuNiAwIDguNi0zLjIgMTYuOS05IDIzLjNMNDE2LjYgNDQxYy00MS4xIDQ1LjItOTkuNCA3MS0xNjAuNiA3MVMxMzYuNiA0ODYuMiA5NS40IDQ0MUw5IDM0NS45Yy01LjgtNi40LTktMTQuNy05LTIzLjMgMC0xOS4xIDE1LjUtMzQuNiAzNC42LTM0LjZ6TTI1NiAyODhjLTM4LjQgMC03Ni44IDM1LjgtOTAuNiA1MC4yLTMuNiAzLjctNS40IDguNy01LjQgMTMuOHMxLjggMTAuMSA1LjQgMTMuOEMxNzkuMiAzODAuMiAyMTcuNiA0MTYgMjU2IDQxNnM3Ni44LTM1LjggOTAuNi01MC4yYzMuNi0zLjcgNS40LTguNyA1LjQtMTMuOHMtMS44LTEwLjEtNS40LTEzLjhDMzMyLjggMzIzLjggMjk0LjQgMjg4IDI1NiAyODh6bTAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxfU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFRTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtY2hlY2siLGljb246WzM4NCw1MTIsW10sImY0NmMiLCJNMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMHptMjYuOSAyMTIuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjZzLTkuOCAyNC40LS42IDMzLjlsNDYuNCA0OGM0LjkgNS4xIDExLjggNy44IDE4LjkgNy4zczEzLjYtNC4xIDE3LjgtOS44TDI4OC4yIDI0Ni4xYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41ek0xMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0eiJdfSxsTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFyZS1mcm9tLXNxdWFyZSIsaWNvbjpbNTc2LDUxMixbNjE1MDksInNoYXJlLXNxdWFyZSJdLCJmMTRkIiwiTTM4NC41IDI0bDAgNzItNjQgMGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCA5My40IDgyLjggMTM0LjggMTAwLjYgMTQyLjYgMi4yIDEgNC42IDEuNCA3LjEgMS40bDIuNSAwYzkuOCAwIDE3LjgtOCAxNy44LTE3LjggMC04LjMtNS45LTE1LjUtMTIuOC0yMC4zLTguOS02LjItMTkuMi0xOC4yLTE5LjItNDAuNSAwLTQ1IDM2LjUtODEuNSA4MS41LTgxLjVsMzAuNSAwIDAgNzJjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4ybDEzNi0xMzZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDI1LjUgN2MtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMzODQuNSAxNC4zIDM4NC41IDI0em0tMjcyIDcyYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyNTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yNTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAweiJdfSxMU2U9bE4sZWc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjZWlwdCIsaWNvbjpbMzg0LDUxMixbMTI5NTM0XSwiZjU0MyIsIk0xNCAyLjJDMjIuNS0xLjcgMzIuNS0uMyAzOS42IDUuOEw4MCA0MC40IDEyMC40IDUuOGM5LTcuNyAyMi4zLTcuNyAzMS4yIDBMMTkyIDQwLjQgMjMyLjQgNS44YzktNy43IDIyLjItNy43IDMxLjIgMEwzMDQgNDAuNCAzNDQuNCA1LjhjNy4xLTYuMSAxNy4xLTcuNSAyNS42LTMuNlMzODQgMTQuNiAzODQgMjRsMCA0NjRjMCA5LjQtNS41IDE3LjktMTQgMjEuOHMtMTguNSAyLjUtMjUuNi0zLjZsLTQwLjQtMzQuNi00MC40IDM0LjZjLTkgNy43LTIyLjIgNy43LTMxLjIgMGwtNDAuNC0zNC42LTQwLjQgMzQuNmMtOSA3LjctMjIuMyA3LjctMzEuMiAwTDgwIDQ3MS42IDM5LjYgNTA2LjJjLTcuMSA2LjEtMTcuMSA3LjUtMjUuNiAzLjZTMCA0OTcuNCAwIDQ4OEwwIDI0QzAgMTQuNiA1LjUgNi4xIDE0IDIuMnpNMTA0IDEzNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6TTgwIDM1MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNC0xMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSwkU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXF1YWxzIixpY29uOls0NDgsNTEyLFs2Mjc2NF0sIjNkIiwiTTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxMjh6bTAgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHoiXX0sQVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tdXAiLGljb246WzQ0OCw1MTIsW10sImYwNzciLCJNMjAxLjQgMTA1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyMjQgMTczLjMgNTQuNiAzNDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTkyLTE5MnoiXX0sRFNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDc1IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTg4LjYtODguNmMxLjctMTIuMS0yLTI0LjgtMTEuMy0zNC0zMS4yLTMxLjItOS4xLTg0LjUgMzUtODQuNSAyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGMtNDQuMSAwLTY2LjEtNTMuMy0zNS04NC41IDE1LjYtMTUuNiAxNS42LTQwLjkgMC01Ni42cy00MC45LTE1LjYtNTYuNiAwYy0zMS4yIDMxLjItODQuNSA5LjEtODQuNS0zNSAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDQ0LjEtNTMuMyA2Ni4xLTg0LjUgMzUtOS4zLTkuMy0yMi0xMy0zNC0xMS4zTDQxLTI0Ljl6TTcyIDIxNmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGM0NC4xIDAgNjYuMSA1My4zIDM1IDg0LjUtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZzNDAuOSAxNS42IDU2LjYgMGMzMS4yLTMxLjIgODQuNS05LjEgODQuNSAzNSAwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwYzAtMjEuNCAxMi42LTM3LjYgMjkuMS00NS4xbC0yNDAtMjQwQzEwOS42IDIwMy40IDkzLjQgMjE2IDcyIDIxNnoiXX0sRVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNzE1IiwiTTctMjVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMNTY5IDUwM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOUMtMi4zLS40LTIuMy0xNS42IDctMjV6Il19LFBTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleHBhbmQiLGljb246WzQ0OCw1MTIsW10sImYwNjUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJTMCAzMzQuMyAwIDM1MmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC02NHpNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6TTQ0OCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NnoiXX0sY049e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIxMy41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zTDMyMi43IDQ2MS4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDY0IDQ4MHpNMzg5LjUgMzA0TDI5NiAzMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXoiXX0sSVNlPWNOLGROPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNvbHVtbnMiLGljb246WzQ0OCw1MTIsWyJjb2x1bW5zIl0sImYwZGIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTY0IDY0bDAgMjU2IDEyOCAwIDAtMjU2LTEyOCAwem0zMjAgMGwtMTI4IDAgMCAyNTYgMTI4IDAgMC0yNTZ6Il19LE5TZT1kTixGU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNoZWx0ZXIiLGljb246WzUxMiw1MTIsW10sImU1NGYiLCJNMjcxLjkgNC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOEM2LjIgMTM3LjkgMCAxNDguNSAwIDE2MEwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDE3OC42IDI1NiA2OC45IDQ0OCAxNzguNiA0NDggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMjBjMC0xMS41LTYuMi0yMi4xLTE2LjEtMjcuOGwtMjI0LTEyOHpNMjU2IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bS04IDE5MmwxNiAwIDAgODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NC41IDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTMzLjItNjEuN0MzMjkuNyAyNDUuMSAyOTQuNCAyMjQgMjU2IDIyNHMtNzMuNyAyMS4xLTkxLjkgNTQuOWwtMzMuMiA2MS43Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEwyMDAgMzEzLjUgMjAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODh6Il19LE9TZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbm90Y2giLGljb246WzUxMiw1MTIsW10sImYxY2UiLCJNMjIyLjcgMzIuMWM1IDE2LjktNC42IDM0LjgtMjEuNSAzOS44LTc5LjMgMjMuNi0xMzcuMSA5Ny4xLTEzNy4xIDE4NC4xIDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtODYuOS01Ny44LTE2MC40LTEzNy4xLTE4NC4xLTE2LjktNS0yNi42LTIyLjktMjEuNS0zOS44czIyLjktMjYuNiAzOS44LTIxLjVDNDM0LjkgNDIuMSA1MTIgMTQwIDUxMiAyNTYgNTEyIDM5Ny40IDM5Ny40IDUxMiAyNTYgNTEyUzAgMzk3LjQgMCAyNTZjMC0xMTYgNzcuMS0yMTMuOSAxODIuOS0yNDUuNCAxNi45LTUgMzQuOCA0LjYgMzkuOCAyMS41eiJdfSxSU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2F0ZXIiLGljb246WzUxMiw1MTIsW10sImY3NzMiLCJNNDEwLjYgMTI0LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0wIDE0NGMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuNy0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDE0NGMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LHBOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRlbGV0ZS1sZWZ0IixpY29uOls2NDAsNTEyLFs5MDAzLCJiYWNrc3BhY2UiXSwiZjU1YSIsIk01NzYgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDIwNS4zIDY0Yy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN0w5LjQgMjMzLjRjLTYgNi05LjQgMTQuMS05LjQgMjIuNnMzLjQgMTYuNiA5LjQgMjIuNkwxNjAgNDI5LjNjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN0w1MTIgNDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2ek0yODQuMSAxODguMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMy45IDMzLjkgMzMuOS0zMy45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45IDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zMy45LTMzLjktMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOS0zMy45LTMzLjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxCU2U9cE4sbm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJvb20tYmFsbCIsaWNvbjpbNTc2LDUxMixbInF1aWRkaXRjaCIsInF1aWRkaXRjaC1icm9vbS1iYWxsIl0sImY0NTgiLCJNNDk2IDU0NGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHpNMTA2LjggMjc3LjJjMzAuNi0zMC42IDczLjEtNDUuOSAxMTUuOC00Mi4yTDM0MSAzNTMuM2MzLjcgNDIuOC0xMS42IDg1LjItNDIuMiAxMTUuOS0yNy40IDI3LjQtNjQuNiA0Mi44LTEwMy4zIDQyLjhMMjIuMSA1MTJjLTEyLjIgMC0yMi4xLTkuOS0yMi4xLTIyLjEgMC02LjMgMi43LTEyLjMgNy4zLTE2LjVMMTMzLjcgMzU5LjdjNC4yLTMuNy0uNC0xMC40LTUuNC03LjlMNzcuMiAzNzcuNGMtNi4xIDMtMTMuMi0xLjQtMTMuMi04LjIgMC0zMS41IDEyLjUtNjEuOCAzNC44LTg0bDgtOHptNDE3LTI3MGMxMi42LTEwLjMgMzEuMS05LjUgNDIuOCAyLjJzMTIuNCAzMC4yIDIuMiA0Mi44bC0yLjIgMi40LTE5MiAxOTIgMzQuOCAzNC43YzQuMiA0LjIgNi42IDEwIDYuNiAxNiAwIDEyLjUtMTAuMSAyMi42LTIyLjYgMjIuNmwtMjkuMSAwLTEwOC4zLTEwOC4zIDAtMjkuMWMwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNiA2IDAgMTEuOCAyLjQgMTYgNi42bDM0LjggMzQuNyAxOTItMTkyIDIuNC0yLjJ6Il19LEhTZT1ubSxxU2U9bm0sVlNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImoiLGljb246WzMyMCw1MTIsWzEwNl0sIjRhIiwiTTI4OCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwbDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGhOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNodXR0bGUtc3BhY2UiLGljb246WzU3Niw1MTIsWyJzcGFjZS1zaHV0dGxlIl0sImYxOTciLCJNMCAzNjhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw1MCAwYzQwLjYgMCA4MC40LTExIDExNS4yLTMxLjlsMTMzLjUtODAuMS05My4zIDAtNjQuOSAzOC45Yy0xNCA4LjQtMjguOSAxNC43LTQ0LjUgMTlsMC02Ni40YzkuNy01LjYgMTcuOC0xMy43IDIzLjQtMjMuNGwxOTguOCAwYzY3LjEgMCAxMjcuOC0yMC42IDE3MC4zLTcwLjYgNC42LTUuNCA0LjYtMTMuMyAwLTE4LjgtNDIuNS01MC4xLTEwMy4yLTcwLjYtMTcwLjMtNzAuNmwtMTk4LjggMGMtNS42LTkuNy0xMy43LTE3LjgtMjMuNC0yMy40bDAtNjYuNGMxNS42IDQuMiAzMC42IDEwLjYgNDQuNSAxOWw2NC45IDM4LjkgOTMuMyAwLTEzMy41LTgwLjFDMTc4LjQgNDMgMTM4LjYgMzIgOTggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDM2OHptOTYgMGwwIDY0LTQ4IDAgMC02NCA0OCAwek05NiA4MGwwIDY0LTQ4IDAgMC02NCA0OCAwek00MTYgMjI0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxqU2U9aE4sVVNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Inlpbi15YW5nIixpY29uOls1MTIsNTEyLFs5Nzc1XSwiZjZhZCIsIk0yMjQgMTYwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDM1MmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtNDQ4YzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2LTk2IDQzLTk2IDk2IDQzIDk2IDk2IDk2QzE1MCA0NDggNjQgMzYyIDY0IDI1NlMxNTAgNjQgMjU2IDY0ek0yMjQgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LFdTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wIixpY29uOls0NDgsNTEyLFs5MjA5XSwiZjA0ZCIsIk02NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJ6Il19LEdTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cm93ZWwiLGljb246WzU3Niw1MTIsW10sImU1ODkiLCJNNDA3LjkgMTgxLjRMMjc3LjMgMzEyIDM0Mi42IDM3Ny40YzcuOSA3LjkgMTEuMSAxOS40IDguNCAzMC4zcy0xMC44IDE5LjYtMjEuNSAyMi45bC0yNTYgODBjLTExLjQgMy41LTIzLjggLjUtMzIuMi03LjlzLTExLjUtMjAuOC03LjktMzIuMmw4MC0yNTZjMy4zLTEwLjcgMTItMTguOSAyMi45LTIxLjVzMjIuNCAuNSAzMC4zIDguNEwyMzIgMjY2LjcgMzYyLjYgMTM2LjFjLTE0LjMtMTQuNi0xNC4yLTM4IC4zLTUyLjVsOTUuNC05NS40YzI2LjktMjYuOSA3MC41LTI2LjkgOTcuNSAwczI2LjkgNzAuNSAwIDk3LjVsLTk1LjQgOTUuNGMtMTQuNSAxNC41LTM3LjkgMTQuNi01Mi41IC4zeiJdfSx1Tj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWJhY2stZmlzdCIsaWNvbjpbMzg0LDUxMixbImhhbmQtcm9jayJdLCJmMjU1IiwiTTcuNCAyNTMuNkMyLjYgMjQ1LjkgMCAyMzcuMSAwIDIyOGwwLTM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OCAxNy4zIDAgMzIuNCA5LjEgNDAuOSAyMi44IDQuMy0yMi4xIDIzLjgtMzguOCA0Ny4xLTM4LjggMjMuNCAwIDQyLjkgMTYuOCA0Ny4xIDM4LjkgNy4zLTQuNCAxNS44LTYuOSAyNC45LTYuOSAyMi4xIDAgNDAuOCAxNSA0Ni4zIDM1LjQgNS41LTIuMiAxMS40LTMuNCAxNy43LTMuNCAyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LjljMCA5LjktMi4zIDE5LjctNi44IDI4LjZsLTM5LjYgNzkuMWMtMTAuOCAyMS43LTMzIDM1LjQtNTcuMiAzNS40TDk2IDM1MmMtMTYuNSAwLTMxLjgtOC40LTQwLjYtMjIuNGwtNDgtNzZ6TTMyIDQ4MGwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sWVNlPXVOLFpTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1oaWdoIixpY29uOls1MTIsNTEyLFtdLCJmNzY5IiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjE2IDk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjEyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDY0IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM1MiA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6Il19LFhTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4iLGljb246WzUxMiw1MTIsWzYyNzY5XSwiM2UiLCJNMzQuOSA1MC42Yy03LjQgMTYtLjQgMzUuMSAxNS42IDQyLjVMNDAzLjYgMjU2IDUwLjYgNDE5Yy0xNiA3LjQtMjMuMSAyNi40LTE1LjYgNDIuNXMyNi40IDIzIDQyLjUgMTUuNmw0MTYtMTkyYzExLjMtNS4yIDE4LjYtMTYuNiAxOC42LTI5LjFzLTcuMy0yMy44LTE4LjYtMjkuMUw3Ny40IDM1Yy0xNi03LjQtMzUuMS0uNC00Mi41IDE1LjZ6Il19LEtTZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcnV0Y2giLGljb246WzUxMiw1MTIsW10sImY3ZjciLCJNMjk3LjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTEuNC0xLjQtMTU4LjYgMTU4LjZjLTE4IDE4LTQyLjQgMjguMS02Ny45IDI4LjFsLTU5IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40LTYxLjcgNjEuNy05Mi44IDkyLjgtOTMuMyA5My4zLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2LTE2IDAgMCA3Ny4zLTc3LjNjNi02IDkuNC0xNC4xIDkuNC0yMi42bDAtNTljMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlMMjk4LjcgNTYgMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6TTM0NCAxMDEuM0wyNjEuMyAxODQgMzI4IDI1MC43IDQxMC43IDE2OCAzNDQgMTAxLjN6bS0xMjggMTI4bC0zMC42IDMwLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDUzLjUgNTMuNSAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40TDI4Mi43IDI5NiAyMTYgMjI5LjN6Il19LGZOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlcHRhZ29uIixpY29uOls1NzYsNTEyLFsiaGVwdGFnb24iXSwiZTgyMCIsIk0yNjcuNC0zMS41YzE1LjktNS41IDMzLjUtNC42IDQ4LjggMi43bDE3Mi40IDgzIDYuMyAzLjVjMTQuMiA5IDI0LjUgMjMuMyAyOC4zIDM5LjlsNDIuNiAxODYuNSAxLjIgNy4yYzEuNiAxNC4zLTEuNyAyOC44LTkuNCA0MS4xbC00LjIgNS45LTExOS4zIDE0OS42Yy0xMi4xIDE1LjItMzAuNiAyNC4xLTUwIDI0LjFsLTE5MS4zIDBjLTE5LjUgMC0zNy45LTguOS01MC0yNC4xTDIzLjUgMzM4LjRjLTEyLjEtMTUuMi0xNi43LTM1LjItMTIuMy01NC4ybDQyLjYtMTg2LjUgMi03YzUuNi0xNS45IDE3LjItMjkgMzIuNi0zNi40bDE3Mi40LTgzIDYuNy0yLjd6Il19LFFTZT1mTixKU2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RyZWV0LXZpZXciLGljb246WzUxMiw1MTIsW10sImYyMWQiLCJNMjU2IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTIyNCAxNjBsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xLjggMC0xMS4xIDk5LjVjLTEuOCAxNi4yLTE1LjUgMjguNS0zMS44IDI4LjVsLTM4LjcgMGMtMTYuMyAwLTMwLTEyLjMtMzEuOC0yOC41bC0xMS4xLTk5LjUtMS44IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDhjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTQxMi40IDQwMC4yYy0xNi4xLTQuMi0zNC44LTcuNi01NS40LTEwLjJsNS4zLTQ3LjdjMjIuNyAyLjkgNDMuNyA2LjcgNjIuMSAxMS41IDIyLjQgNS44IDQyLjYgMTMuMyA1Ny44IDIzLjMgMTQuNyA5LjYgMjkuOCAyNC45IDI5LjggNDdzLTE1LjEgMzcuNC0yOS44IDQ3Yy0xNS4yIDkuOS0zNS41IDE3LjUtNTcuOCAyMy4zLTQ1LjEgMTEuNy0xMDUuMyAxNy44LTE2OC40IDE3LjhzLTEyMy4zLTYuMS0xNjguNC0xNy44QzY1LjIgNDg4LjQgNDUgNDgwLjkgMjkuOCA0NzEgMTUuMSA0NjEuNCAwIDQ0Ni4xIDAgNDI0czE1LjEtMzcuNCAyOS44LTQ3YzE1LjItOS45IDM1LjUtMTcuNSA1Ny44LTIzLjMgMTguNS00LjggMzkuNS04LjYgNjIuMS0xMS41TDE1NSAzOTBjLTIwLjYgMi42LTM5LjMgNi4xLTU1LjQgMTAuMi01Ni42IDE0LjYtNTYuNiAzMi45IDAgNDcuNSAzOS45IDEwLjMgOTUuOCAxNi4yIDE1Ni40IDE2LjJzMTE2LjUtNS45IDE1Ni40LTE2LjJjNTYuNi0xNC42IDU2LjYtMzIuOSAwLTQ3LjV6Il19LGVDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXZlLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZSIsIk02NCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI4OCA5NiAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI4OC05NiAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0xMjh6Il19LHRDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZS1sZWZ0IixpY29uOlsyNTYsNTEyLFs4MjQ5XSwiZjEwNCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHoiXX0sYUNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyIixpY29uOls1NzYsNTEyLFsxMjk2OTFdLCJmNTRhIiwiTTM1Mi4xIDE0Ni43bDAtNDkuNmMwLTEwLjcgNS4zLTIwLjcgMTQuMi0yNi42TDQ4NS4yLTguN2M2LjMtNC4yIDE0LjgtMy40IDIwLjIgMmw0NS40IDQ1LjVjNS40IDUuNCA2LjIgMTMuOCAyIDIwLjJMNDczLjYgMTc3LjhjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMmwtNDkuNiAwLTkwLjcgOTAuN2MxNSAzMy4zIDguOSA3My45LTE4LjUgMTAxLjNMMTYyLjEgNTEwLjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDM0LjEgNDQ5LjljLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45TDE2MC4xIDI1NmMyNy40LTI3LjQgNjcuOS0zMy42IDEwMS4zLTE4LjVsOTAuNy05MC43eiJdfSxpQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhY3RvciIsaWNvbjpbNTc2LDUxMixbMTI4NjY4XSwiZjcyMiIsIk0xNjAgOTZsMCA5NiAxMzMuNCAwLTU3LjYtOTYtNzUuOCAwek05NiAyMjNMOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA3LjggMGMyMi41IDAgNDMuMyAxMS44IDU0LjkgMzEuMWw3Ny40IDEyOC45IDY0IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxLjVjMCAxNC4yLTYuMyAyNy44LTE3LjMgMzYuOWwtMzUgMjkuMmMyNi41IDE1LjIgNDQuMyA0My43IDQ0LjMgNzYuNCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTE0LjQgMy41LTI4IDkuNi00MGwtMTAxLjIgMGMtMyAxMy40LTcuOSAyNi0xNC40IDM3LjcgNy43IDkuNCA3LjIgMjMuNC0xLjYgMzIuMmwtMjIuNiAyMi42Yy04LjggOC44LTIyLjcgOS4zLTMyLjIgMS42LTkuMyA1LjItMTkuMyA5LjMtMjkuOCAxMi4zLTEuMiAxMi4xLTExLjQgMjEuNi0yMy45IDIxLjZsLTMyIDBjLTEyLjQgMC0yMi43LTkuNS0yMy45LTIxLjYtMTAuNS0zLTIwLjQtNy4yLTI5LjgtMTIuMy05LjQgNy43LTIzLjQgNy4yLTMyLjItMS42TDM1LjUgNDUzLjhjLTguOC04LjgtOS4zLTIyLjctMS42LTMyLjItNS4yLTkuMy05LjMtMTkuMy0xMi4zLTI5LjgtMTIuMS0xLjItMjEuNi0xMS40LTIxLjYtMjMuOWwwLTMyYzAtMTIuNCA5LjUtMjIuNyAyMS42LTIzLjkgMy0xMC41IDcuMi0yMC40IDEyLjMtMjkuOC03LjctOS40LTcuMi0yMy40IDEuNi0zMi4ybDIyLjYtMjIuNmM4LjgtOC44IDIyLjctOS4zIDMyLjItMS42IDEuOS0xIDMuNy0yIDUuNy0zem02NCA2NWE2NCA2NCAwIDEgMCAwIDEyOCA2NCA2NCAwIDEgMCAwLTEyOHpNNDQwIDQyNGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwIC04MCAweiJdfSxyQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjYiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LHNDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFscyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ5MyIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTIgNjQgMCAwIDM1MmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQ5Ny43IDAgNDgwIDBMMzIgMHpNMTYwIDY0bDAgMTI4LTY0IDAgMC0xMjggNjQgMHptMjU2IDBsMCAxMjgtNjQgMCAwLTEyOCA2NCAweiJdfSxuQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RldGhvc2NvcGUiLGljb246WzU3Niw1MTIsWzEyOTY1OF0sImYwZjEiLCJNMzIgNDhDMzIgMjEuNSA1My41IDAgODAgMGw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjgtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMjM4LjMgMCAyNTYgMGw0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTQ0YzAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMTkuMmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtODUuNWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNSAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDEuOC0yNi43IDc3LjQtNjQgOTAuNWwwIDg1LjVjMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMTYwIDQ2NS4yIDE2MCAzNjhsMC0xOS4yQzg3IDMzNCAzMiAyNjkuNCAzMiAxOTJMMzIgNDh6TTQ4MCAyMjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxvQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9kY2FzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjJjZSIsIk0zMzYgMzU5LjhjMzkuMS0zMi4zIDY0LTgxLjEgNjQtMTM1LjggMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZTNDggMTI2LjggNDggMjI0QzQ4IDI3OC43IDcyLjkgMzI3LjUgMTEyIDM1OS44IDExMi40IDM3Ny40IDExNS4yIDQwMC4yIDExOC40IDQyMS42IDQ4IDM4My45IDAgMzA5LjUgMCAyMjQgMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0YzAgODUuNi00OCAxNTkuOS0xMTguNSAxOTcuNiAzLjMtMjEuNCA2LTQ0LjIgNi40LTYxLjh6bS0xNC01My40Yy04LjMtMTIuNi0xOS4yLTIxLjYtMzAuNC0yNy44LTIuMS0xLjEtNC4yLTIuMi02LjMtMy4yIDExLjctMTMuOSAxOC44LTMxLjkgMTguOC01MS41IDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMTkuNiA3LjEgMzcuNiAxOC44IDUxLjUtMi4xIDEtNC4yIDItNi4zIDMuMi0xMS4yIDYuMi0yMi4xIDE1LjItMzAuNCAyNy44LTE4LjgtMjIuMy0zMC4xLTUxLTMwLjEtODIuNCAwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4YzAgMzEuNC0xMS4zIDYwLjItMzAuMSA4Mi40ek0yMjQgMzEyYzMyLjkgMCA2NCA4LjYgNjQgNDMuOCAwIDMzLTEyLjkgMTA0LjEtMjAuNiAxMzIuOS01LjEgMTktMjQuNSAyMy40LTQzLjQgMjMuNHMtMzguMi00LjQtNDMuNC0yMy40Yy03LjgtMjguNS0yMC42LTk5LjctMjAuNi0xMzIuOCAwLTM1LjEgMzEuMS00My44IDY0LTQzLjh6bTAtMTI4YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sbENlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXJpZ2h0LWRvdHMiLGljb246WzUxMiw1MTIsW10sImU0YjciLCJNOTYgMzJDNzguMyAzMiA2NCA0Ni4zIDY0IDY0Uzc4LjMgOTYgOTYgOTZMMTE0LjcgOTYgOS40IDIwMS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxNDEuMyAxNjAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAzMnpNNDAzLjggNzAuMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek0yNzkuNyAxOTQuMmEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjIuMi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnpNMTU2LjIgMzE3LjhhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYxLjYtMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwek03MC4xIDQwMy44YTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2MS42LTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHoiXX0sY0NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXF1ZWVuIixpY29uOls1MTIsNTEyLFs5ODE5XSwiZjQ0NSIsIk0yNTYgODBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek01LjUgMTg1TDEyOCAzODQgNzEuOCA0NTQuM2MtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMzEyLjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMkwzODQgMzg0IDUwNi41IDE4NWMzLjYtNS45IDUuNS0xMi43IDUuNS0xOS42bDAtLjZjMC0yMC4zLTE2LjUtMzYuOC0zNi44LTM2LjgtNy4zIDAtMTQuNCAyLjItMjAuNCA2LjJsLTE2LjkgMTEuM2MtMTIuNyA4LjUtMjkuNiA2LjgtNDAuNC00bC0zNC4xLTM0LjFDMzU2LjEgMTAwLjEgMzQ2LjIgOTYgMzM2IDk2cy0yMC4xIDQuMS0yNy4zIDExLjNsLTMwLjEgMzAuMWMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTMwLjEtMzAuMUMxOTYuMSAxMDAuMSAxODYuMiA5NiAxNzYgOTZzLTIwLjEgNC4xLTI3LjMgMTEuM2wtMzQuMSAzNC4xYy0xMC44IDEwLjgtMjcuNyAxMi41LTQwLjQgNEw1Ny4zIDEzNC4yYy02LjEtNC0xMy4yLTYuMi0yMC40LTYuMi0yMC4zIDAtMzYuOCAxNi41LTM2LjggMzYuOGwwIC42YzAgNi45IDEuOSAxMy43IDUuNSAxOS42eiJdfSxkQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYiIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxtTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcy12ZXJ0aWNhbCIsaWNvbjpbMTI4LDUxMixbImVsbGlwc2lzLXYiXSwiZjE0MiIsIk02NCAxNDRhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6bTAgMjI0YzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2LTU2LTI1LjEtNTYtNTYgMjUuMS01NiA1Ni01NnptNTYtMTEyYzAgMzAuOS0yNS4xIDU2LTU2IDU2cy01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTYgNTYgMjUuMSA1NiA1NnoiXX0scENlPW1OLGhDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzU3Niw1MTIsW10sImU0ZmUiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LHVDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzU3Niw1MTIsW10sImU0ZDMiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sZkNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1hcnJvdy11cC1mcm9tLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1MzkiLCJNMTkyLTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0zMTguMyAyOTkuMWwtNDYuMy02Mi40IDAgMjQzLjMgMjcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgwIDAgMC0yNDMuMy00Ni4zIDYyLjRjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTIwOCA0ODBsMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxMjggMzIgMHpNNTY2LjYgMTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDQ5NiA3Ny4zIDQ5NiAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDYuNy0yNS40IDI1LjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDgwLTgwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zeiJdfSxtQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90LWVxdWFsIixpY29uOls0NDgsNTEyLFtdLCJmNTNlIiwiTTM3OC42IDgxLjhjOS44LTE0LjcgNS44LTM0LjYtOC45LTQ0LjRzLTM0LjYtNS44LTQ0LjQgOC45TDI3MC45IDEyOCAzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTk2LjIgMC04NS4zIDEyOC0xMTAuOSAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY4LjIgMC0zMC44IDQ2LjJjLTkuOCAxNC43LTUuOCAzNC42IDguOSA0NC40czM0LjYgNS44IDQ0LjQtOC45TDE3Ny4xIDM4NCA0MTYgMzg0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOTYuMiAwIDg1LjMtMTI4IDExMC45IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY4LjIgMCAzMC44LTQ2LjJ6Il19LGdDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFpbi10cmFtIixpY29uOlszODQsNTEyLFsxMjg2NTBdLCJlNWI0IiwiTTAgOEMwLTUuMyAxMC43LTE2IDI0LTE2bDMzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyMCAwIDAgNjQgNDAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMTYwYzAgMzEuMi0xNC45IDU5LTM4IDc2LjVsNjQuMyA3NmM4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LjYtODguMWMtMy42IC40LTcuMyAuNi0xMS4xIC42bC0xMjggMGMtMy44IDAtNy41LS4yLTExLjEtLjZMNDIuMyA1MzUuNWMtOC42IDEwLjEtMjMuNyAxMS40LTMzLjggMi44cy0xMS40LTIzLjctMi44LTMzLjhsNjQuMy03NkM0Ni45IDQxMSAzMiAzODMuMiAzMiAzNTJsMC0xNjBjMC01MyA0My05NiA5Ni05Nmw0MCAwIDAtNjQtMTIwIDAgMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0UzAgNTMuMyAwIDQwTDAgOHpNMTI4IDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMHptMzIgMTkyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYkNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWRlcGFydHVyZSIsaWNvbjpbNTc2LDUxMixbMTI4NzQ3XSwiZjViMCIsIk0zNzIgMTQzLjlMMTcyLjcgNDAuMmMtOC00LjEtMTcuMy00LjgtMjUuNy0xLjdsLTQxLjEgMTVjLTEwLjMgMy43LTEzLjggMTYuNC03LjEgMjVMMjAwLjMgMjA2LjQgMTAwLjEgMjQyLjggNDAgMjA2LjJjLTYuMi0zLjgtMTMuOC00LjUtMjAuNy0yLjFMMyAyMTAuMWMtOS40IDMuNC0xMy40IDE0LjUtOC4zIDIzLjFsNTMuNiA5MS44YzE1LjYgMjYuNyA0OC4xIDM4LjQgNzcuMSAyNy44bDEyLjktNC43IDAgMCAzOTguNC0xNDVjMjkuMS0xMC42IDQ0LTQyLjcgMzMuNS03MS44cy00Mi43LTQ0LTcxLjgtMzMuNUwzNzIgMTQzLjl6TTMyLjIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01MTIgMHoiXX0sZ049e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmlnaHQtdG8tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24taW4tYWx0Il0sImYyZjYiLCJNMzQ1IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyMDEgOTVjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMTYwIDEwMi4zIDE2MCAxMTJsMCA4MC0xMTIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMTIgMCAwIDgwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMkwzNDUgMjczem03IDE0M2MtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yNTZjMC01My00My05Ni05Ni05NmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAweiJdfSx2Q2U9Z04seUNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNkLWNhcmQiLGljb246WzM4NCw1MTIsW10sImY3YzIiLCJNMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyNS4zIDBDMTA4LjMgMCA5MiA2LjcgODAgMTguN0wxOC43IDgwQzYuNyA5MiAwIDEwOC4zIDAgMTI1LjNMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODR6TTE2MCA4OGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0seENlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYSIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMSA0Ny4yLTE3NS44IDExNC44LTUuMS0xLjgtMTAuNS0yLjgtMTYuMi0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTEgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTQ5NiA0NDRhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem0wLTE0MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2IDguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sZGw9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hla2VsLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjIsImlscyIsInNoZWtlbCIsInNoZXFlbCIsInNoZXFlbC1zaWduIl0sImYyMGIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTMyMCA0ODBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAweiJdfSx3Q2U9ZGwsTUNlPWRsLHpDZT1kbCxrQ2U9ZGwsU0NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhZGlvIixpY29uOls1MTIsNTEyLFsxMjgyNTFdLCJmOGQ3IiwiTTQ5NC44IDE1YzEyLjctMy43IDIwLTE3LjEgMTYuMy0yOS44UzQ5NC0zNC44IDQ4MS4zLTMxTDUxLjggOTQuOUM0Mi40IDk3LjYgMzMuOSAxMDIuMSAyNi42IDEwOCAxMC41IDExOS43IDAgMTM4LjYgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjE4LjUgOTYgNDk0LjggMTV6TTM2OCAyMDhhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTY0IDI0OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAyNzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LGJOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtZG90cyIsaWNvbjpbNTEyLDUxMixbImFsbGVyZ2llcyJdLCJmNDYxIiwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDIwOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDI3MmMwIDEuNSAwIDMuMSAuMSA0LjZMNjcuNiAyODNjLTE2LTE1LjItNDEuMy0xNC42LTU2LjYgMS40Uy0zLjYgMzI1LjcgMTIuNCAzNDFMMTI0LjggNDQ4YzQzLjEgNDEuMSAxMDAuNCA2NCAxNjAgNjRsMTkuMiAwYzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2bDAtMjA4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTEyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTc2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMjA4ek0yMDAgMzUyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyMC01NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bS04OCAyNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LENDZT1iTix2Tj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXNrdWxsIixpY29uOls0NDgsNTEyLFsiYm9vay1kZWFkIl0sImY2YjciLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTI3MiAxNjMuMmwwIDEyLjhjMCA4LjgtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMi44Yy0xOS40LTExLjctMzItMzAuMy0zMi01MS4yIDAtMzUuMyAzNS44LTY0IDgwLTY0czgwIDI4LjcgODAgNjRjMCAyMC45LTEyLjYgMzkuNS0zMiA1MS4yek0yMDggMTEyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptNzQuMiA5NS43YzQuNiAxMC4xIC4xIDIxLjktOS45IDI2LjVsLTQ3LjkgMjEuOCA0Ny45IDIxLjhjMTAuMSA0LjYgMTQuNSAxNi40IDkuOSAyNi41cy0xNi40IDE0LjUtMjYuNSA5LjlMMjI0IDI5NCAxNDQuMyAzMzAuMmMtMTAuMSA0LjYtMjEuOSAuMS0yNi41LTkuOXMtLjEtMjEuOSA5LjktMjYuNWw0Ny45LTIxLjgtNDcuOS0yMS44Yy0xMC4xLTQuNi0xNC41LTE2LjQtOS45LTI2LjVzMTYuNC0xNC41IDI2LjUtOS45TDIyNCAyNTAgMzAzLjcgMjEzLjhjMTAuMS00LjYgMjEuOS0uMSAyNi41IDkuOXoiXX0sX0NlPXZOLHlOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVubG9jay1rZXlob2xlIixpY29uOlszODQsNTEyLFsidW5sb2NrLWFsdCJdLCJmMTNlIiwiTTE5MiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NCAxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtNjRjMC03MC43IDU3LjMtMTI4IDEyOC0xMjggNjMuNSAwIDExNi4xIDQ2LjEgMTI2LjIgMTA2LjcgMi45IDE3LjQtOC44IDMzLjktMjYuMyAzNi45cy0zMy45LTguOC0zNi45LTI2LjNDMjUwIDU1LjEgMjIzLjcgMzIgMTkyIDMyem00MCAzMjhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODAgMHoiXX0sVENlPXlOLHhOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtYXJyb3ctdXAiLGljb246WzM4NCw1MTIsWyJmaWxlLXVwbG9hZCJdLCJmNTc0IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0yMDkgMjYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtNjQgNjRjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwyMy0yMyAwIDg2LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTg2LjEgMjMgMjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NC02NHoiXX0sTENlPXhOLHdOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10ZWFycyIsaWNvbjpbNjQwLDUxMixbMTI4NTE0LCJncmluLXRlYXJzIl0sImY1ODgiLCJNNTU0LjggMjAzLjRsMTYuMyAyLjNDNTQ3LjcgODguNCA0NDQuMiAwIDMyMCAwUzkyLjMgODguNCA2OC45IDIwNS43bDE2LjMtMi4zYzM3LTUuMyA2OC42IDI2LjQgNjMuNCA2My40bC02LjcgNDYuN2MtNC4xIDI5LTIxLjYgNTMuMi00NS44IDY2LjggNDMuNyA3OC41IDEyNy42IDEzMS43IDIyMy44IDEzMS43czE4MC4xLTUzLjEgMjIzLjgtMTMxLjdjLTI0LjEtMTMuNS00MS42LTM3LjgtNDUuOC02Ni44bC02LjctNDYuN2MtNS4zLTM3IDI2LjQtNjguNiA2My40LTYzLjR6TTQ3MC4zIDMyNi45QzQ0Ny45IDM4OC4yIDM4OS4xIDQzMiAzMjAgNDMyUzE5Mi4xIDM4OC4yIDE2OS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAtMjUuNi0xOC44LTQ3LjMtNDQuMS01MC45TDU0OS4xIDI0M2MtMTAuNi0xLjUtMTkuNiA3LjUtMTguMSAxOC4xbDYuNyA0Ni43YzMuNiAyNS4zIDI1LjMgNDQuMSA1MC45IDQ0LjEgMjguNCAwIDUxLjQtMjMgNTEuNC01MS40em0tNjQwIDBDMCAzMjkgMjMgMzUyIDUxLjQgMzUyIDc3IDM1MiA5OC43IDMzMy4yIDEwMi4zIDMwNy45bDYuNy00Ni43YzEuNS0xMC42LTcuNS0xOS42LTE4LjEtMTguMWwtNDYuNyA2LjdDMTguOCAyNTMuMyAwIDI3NSAwIDMwMC42eiJdfSwkQ2U9d04saTg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLXRvLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImVkaXQiXSwiZjA0NCIsIk00NzEuNiAyMS43Yy0yMS45LTIxLjktNTcuMy0yMS45LTc5LjIgMEwzNjggNDYuMSA0NjUuOSAxNDQgNDkwLjMgMTE5LjZjMjEuOS0yMS45IDIxLjktNTcuMyAwLTc5LjJMNDcxLjYgMjEuN3ptLTI5OS4yIDIyMGMtNi4xIDYuMS0xMC44IDEzLjYtMTMuNSAyMS45bC0yOS42IDg4LjhjLTIuOSA4LjYtLjYgMTguMSA1LjggMjQuNnMxNS45IDguNyAyNC42IDUuOGw4OC44LTI5LjZjOC4yLTIuNyAxNS43LTcuNCAyMS45LTEzLjVMNDMyIDE3Ny45IDMzNC4xIDgwIDE3Mi40IDI0MS43ek05NiA2NEM0MyA2NCAwIDEwNyAwIDE2MEwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiA2NHoiXX0sQUNlPWk4LE1OPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWV1cm9wZSIsaWNvbjpbNTEyLDUxMixbImdsb2JlLWV1cm9wZSJdLCJmN2EyIiwiTTI1Ni4yIDQ4YzExNC44IC4xIDIwNy44IDkzLjIgMjA3LjggMjA4IDAgMjIuMS0zLjQgNDMuNC05LjggNjMuNC0yIC40LTQuMSAuNi02LjIgLjZsLTIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC01MC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNi03LjIgMTYtMTYtNy4yLTE2LTE2LTE2bC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2cy03LjIgMTYtMTYgMTZsLTI1LjQgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmw3MC4xLTcwLjFjMi4xLTIuMSAzLjMtNSAzLjMtOCAwLTYuMi01LjEtMTEuMy0xMS4zLTExLjNsLTE0LjEgMGMtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjYgMC02IDIuNC0xMS44IDYuNi0xNmwyMy4xLTIzLjFjLjgtLjggMS42LTEuNSAyLjUtMi4yek00MzguNCAzNTYuMWMtMzIuOCA1OS42LTkzLjkgMTAxLjQtMTY1LjIgMTA3LjItLjctMi4zLTEuMS00LjgtMS4xLTcuMyAwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjYuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMjkuMy0yOS4zYy02LTYtOS40LTE0LjEtOS40LTIyLjZsMC02Ni43YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNGwyOS4zIDI5LjNjNiA2IDE0LjEgOS40IDIyLjYgOS40bDUuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDE2IDE2YzQuMiA0LjIgMTAgNi42IDE2IDYuNiA0LjggMCA5LjMgMS41IDEzIDQuMXpNMjU2IDUxMmwyNi4yLTEuM2MtOC42IC45LTE3LjMgMS4zLTI2LjIgMS4zem0yNi4yLTEuM0M0MTEuMyA0OTcuNiA1MTIgMzg4LjYgNTEyIDI1NiA1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMGwwIDBDMTE0LjYgMCAwIDExNC42IDAgMjU2IDAgMzgzLjUgOTMuMiA0ODkuMyAyMTUuMyA1MDguOCAyMjguNSA1MTAuOSAyNDIuMSA1MTIgMjU2IDUxMnpNMTg3LjMgMTIzLjNsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sRENlPU1OLHpOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1iZWFtLXN3ZWF0IixpY29uOls1NzYsNTEyLFsxMjg1MTcsImdyaW4tYmVhbS1zd2VhdCJdLCJmNTgzIiwiTTU0Ni4yLS4xYzE0LjcgMTcuOCAyOS44IDQwLjEgMjkuOCA2NC4xIDAgMzYuNC0yNy42IDY0LTY0IDY0cy02NC0yNy42LTY0LTY0YzAtMjQgMTUuMi00Ni4zIDI5LjgtNjQuMSA4LjgtMTAuNyAxOC41LTIwLjggMjktMzAgMy0yLjYgNy40LTIuNiAxMC40IDAgMTAuNSA5LjEgMjAuMSAxOS4zIDI5IDMwek0yODggMGM0Mi41IDAgODIuNiAxMC40IDExNy44IDI4LjctMy42IDEwLjktNS44IDIyLjctNS44IDM1LjMgMCA2Mi45IDQ5LjEgMTEyIDExMiAxMTIgNi40IDAgMTIuNy0uNSAxOC44LTEuNSA4LjYgMjUuNiAxMy4yIDUzIDEzLjIgODEuNSAwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzMyIDM5Ny40IDMyIDI1NiAxNDYuNiAwIDI4OCAwek00MTguNyAzMDguOUMzNzkuNSAzMjEuMSAzMzUuMSAzMjggMjg4IDMyOHMtOTEuNS02LjktMTMwLjctMTkuMWMtMTEuOS0zLjctMjMuOSA2LjMtMTkuNiAxOC4xIDIyLjQgNjEuMyA4MS4zIDEwNS4xIDE1MC4zIDEwNS4xczEyNy45LTQzLjggMTUwLjMtMTA1LjFjNC4zLTExLjgtNy43LTIxLjgtMTkuNi0xOC4xek0yMDggMTgwYzE1LjUgMCAyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHptMTMyIDI4YzAtMTUuNSAxMi41LTI4IDI4LTI4czI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04eiJdfSxFQ2U9ek4sa049e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWhhbGYtc3Ryb2tlIixpY29uOls1MTIsNTEyLFs5NjgwLCJhZGp1c3QiXSwiZjA0MiIsIk00NDggMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkybDAgMzg0YzEwNiAwIDE5Mi04NiAxOTItMTkyek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxQQ2U9a04sSUNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1taWxpdGFyeS10by1wZXJzb24iLGljb246WzUxMiw1MTIsW10sImU1NGMiLCJNNzEgMTIuNWMtOC42IDEtMTUgOC4yLTE1IDE2LjggMCA5LjMgNy41IDE2LjggMTYuNyAxNi45bDExMS40IDBjOC44LS4xIDE1LjktNy4yIDE1LjktMTZMMjAwIDE2YzAtOS41LTguMy0xNy0xNy44LTE1LjlMNzEgMTIuNXpNMTg5LjUgNzguMWwtMTIyLjkgMGMtMS42IDUuNy0yLjUgMTEuNy0yLjUgMTcuOSAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtNi4yLS45LTEyLjItMi41LTE3Ljl6TTMyIDI1NmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzEuOCAwIDMuNS0uMSA1LjItLjRMNTMgMjA4LjZDNDAuMSAyMjAuMyAzMiAyMzcuMiAzMiAyNTZ6bTE5MC4yIDQyLjVjMS4xLTMuMyAxLjgtNi44IDEuOC0xMC41bDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBjLTMuNyAwLTcuNCAuMy0xMC45IC45TDIyMi4yIDI5OC41ek0zODQgMTYwYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0tMzIgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMHpNMjE1LjggNDUwLjFjNS4yLTQuNiA4LjItMTEuMSA4LjItMTguMXMtMy0xMy41LTguMi0xOC4xbC02NC01NmMtNy4xLTYuMi0xNy4xLTcuNy0yNS43LTMuOFMxMTIgMzY2LjYgMTEyIDM3NmwwIDMyLTg4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODggMCAwIDMyYzAgOS40IDUuNSAxOCAxNC4xIDIxLjlzMTguNiAyLjQgMjUuNy0zLjhsNjQtNTZ6TTI4OCA0MzEuOWMwIDYuOSAzIDEzLjUgOC4xIDE4LjFsNjQgNTYuNGM3LjEgNi4yIDE3LjEgNy44IDI1LjcgMy45UzQwMCA0OTcuOCA0MDAgNDg4LjRsMC0zMi40IDg4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg4IDAgMC0zMmMwLTkuNC01LjUtMTgtMTQuMS0yMS45cy0xOC42LTIuNC0yNS43IDMuOGwtNjQgNTZjLTUuMiA0LjUtOC4yIDExLjEtOC4yIDE4eiJdfSxOQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtY29sdW1uLWxvY2siLGljb246WzY0MCw1MTIsW10sImU2NzgiLCJNMjU2IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTI1Ni03OWMtNDYuNyA1LjgtODUuNiAzNi44LTEwMi43IDc5bC0yNS4zIDAgMCA5MC44Yy0xMC4xIDE1LjItMTYgMzMuNC0xNiA1My4xbDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxMjggNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ5ek0xMjggMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptNDMyIDQ4LjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek00MTYgMzY4YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxGQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZmllbGQtdW4iLGljb246WzY0MCw1MTIsW10sImU1OGUiLCJNOTYgMzJDNjAuNyAzMiAzMiA2MC43IDMyIDk2bDAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMCA0OGMwIDIxLjEgMTMuNyAzOS4xIDMyLjYgNDUuNS0uNCAzLjQtLjYgNy0uNiAxMC41IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMTQ0LjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsLjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yNC43IDAtMS43LTQuMi00My44LTEwNi4zYy0xMi4zLTMwLTQxLjYtNDkuNS03NC00OS41bC00MC40IDBDMzY0LjQgNDQuOSAzNDMuNyAzMiAzMjAgMzJMOTYgMzJ6TTM4NCAyMjRsMC05NiAzMS45IDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlsMzUuNCA4Ni4xLTgyLjEgMHpNMTUyIDM1MmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTI4MCA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0yNTYuNiAxMzIuOWwyNy40IDQxIDAtMjkuOWMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDk2YzAgOC44LTUuOCAxNi42LTE0LjIgMTkuMXMtMTcuNS0uNy0yMi40LThsLTI3LjQtNDEgMCAyOS45YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTk2YzAtOC44IDUuOC0xNi42IDE0LjItMTkuMXMxNy41IC43IDIyLjQgOHpNMTMyIDE0NGwwIDY0YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJsMC02NGMwLTExIDktMjAgMjAtMjBzMjAgOSAyMCAyMGwwIDY0YzAgMjguNy0yMy4zIDUyLTUyIDUycy01Mi0yMy4zLTUyLTUybDAtNjRjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjB6Il19LFNOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrIixpY29uOls1MTIsNTEyLFsxMjgzMzksImNsb2NrLWZvdXIiXSwiZjAxNyIsIk0yNTYgMGEyNTYgMjU2IDAgMSAxIDAgNTEyIDI1NiAyNTYgMCAxIDEgMC01MTJ6TTIzMiAxMjBsMCAxMzZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjIgMjgwIDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sT0NlPVNOLFJDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rIixpY29uOls0NDgsNTEyLFsxMjgyMTJdLCJmMDJkIiwiTTM4NCA1MTJMOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHpNOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6bTMyLTIzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNCA3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LENOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtd2luayIsaWNvbjpbNTEyLDUxMixbImxhdWdoLXdpbmsiXSwiZjU5YyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTAxLjYgMzE0Yy0zLjctMTMuNyA3LjUtMjYgMjEuNy0yNmwyNjUuNCAwYzE0LjIgMCAyNS40IDEyLjMgMjEuNyAyNi0xOC41IDY4LTgwLjYgMTE4LTE1NC40IDExOFMxMjAgMzgyIDEwMS42IDMxNHpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxCQ2U9Q04sSENlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLW1lYXRiYWxsIixpY29uOls1MTIsNTEyLFtdLCJmNzNiIiwiTTAgMjI0YzAgNTMgNDMgOTYgOTYgOTZsMjYuOSAwYzMuNS0xMi4xIDEwLjEtMjMuMyAxOS4yLTMyLjRsMS40LTEuNGMxNS0xNSAzNS4zLTIyLjkgNTYuMS0yMi4yIDE0LjItMTUuMSAzNC4yLTIzLjkgNTUuNC0yMy45bDIgMGMyMS4xIDAgNDEuMSA4LjggNTUuNCAyMy45IDIwLjgtLjYgNDEuMSA3LjMgNTYuMSAyMi4ybDEuNCAxLjRjOS4yIDkuMiAxNS43IDIwLjQgMTkuMiAzMi40bDI2LjkgMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NmMtLjUgMC0xLjEgMC0xLjYgMCAxLjEtNS4yIDEuNi0xMC41IDEuNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjgtMTguNy0zNS43LTU2LjEtNjAtOTkuMi02MC02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDcuMSAuNyAxNC4xIDEuOSAyMC44LTM4LjMgMTIuNi02NS45IDQ4LjctNjUuOSA5MS4yek0xNTYuNSA0MjQuM2M5LjUgNi4zIDE0LjIgMTcuNyAxMS45IDI4LjgtMS44IDkuMiAxIDE4LjcgNy43IDI1LjNsMS40IDEuNGM2LjYgNi42IDE2LjEgOS41IDI1LjMgNy43IDExLjEtMi4yIDIyLjUgMi41IDI4LjggMTEuOSA1LjIgNy44IDE0IDEyLjUgMjMuMyAxMi41bDIgMGM5LjQgMCAxOC4xLTQuNyAyMy4zLTEyLjUgNi4zLTkuNSAxNy43LTE0LjIgMjguOC0xMS45IDkuMiAxLjggMTguNy0xIDI1LjMtNy43bDEuNC0xLjRjNi42LTYuNiA5LjUtMTYuMSA3LjctMjUuMy0yLjItMTEuMSAyLjUtMjIuNSAxMS45LTI4LjggNy44LTUuMiAxMi41LTE0IDEyLjUtMjMuM2wwLTJjMC05LjQtNC43LTE4LjEtMTIuNS0yMy4zLTkuNS02LjMtMTQuMi0xNy43LTExLjktMjguOCAxLjgtOS4yLTEtMTguNy03LjctMjUuM2wtMS40LTEuNGMtNi42LTYuNi0xNi4xLTkuNS0yNS4zLTcuNy0xMS4xIDIuMi0yMi41LTIuNS0yOC44LTExLjktNS4yLTcuOC0xNC0xMi41LTIzLjMtMTIuNWwtMiAwYy05LjQgMC0xOC4xIDQuNy0yMy4zIDEyLjUtNi4zIDkuNS0xNy43IDE0LjItMjguOCAxMS45LTkuMi0xLjgtMTguNyAxLTI1LjMgNy43bC0xLjQgMS40Yy02LjYgNi42LTkuNSAxNi4xLTcuNyAyNS4zIDIuMiAxMS4xLTIuNSAyMi41LTExLjkgMjguOC03LjggNS4yLTEyLjUgMTQtMTIuNSAyMy4zbDAgMmMwIDkuNCA0LjcgMTguMSAxMi41IDIzLjN6TTQ4IDQ0OGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQxNiAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sX049e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtYXJlYSIsaWNvbjpbNTEyLDUxMixbImFyZWEtY2hhcnQiXSwiZjFmZSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0yNDAgOTZjNi43IDAgMTMuMSAyLjggMTcuNyA3LjhMMzI4LjggMTgxLjMgMzc1IDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw2NCA2NGM0LjUgNC41IDcgMTAuNiA3IDE3bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0zMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xMTJjMC02IDIuMy0xMS44IDYuMy0xNi4ybDg4LTk2YzQuNS01IDExLTcuOCAxNy43LTcuOHoiXX0scUNlPV9OLFZDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydXBpYWgtc2lnbiIsaWNvbjpbNTEyLDUxMixbXSwiZTIzZCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDgwIDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA1NC4zLTMwIDEwMS41LTc0LjQgMTI2LjFsNDEgMTM2LjdjNS4xIDE2LjktNC41IDM0LjgtMjEuNSAzOS44cy0zNC44LTQuNS0zOS44LTIxLjVMMTIwLjEgMzE5LjhjLTIuNyAuMS01LjQgLjItOC4xIC4ybC00OCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBsLTQ4IDAgMCAxNjB6bTI1Ni0zMmw4MCAwYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyUzQ2MS45IDQ0OCA0MDAgNDQ4bC00OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTgwIDE2MGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtNDggMCAwIDk2IDQ4IDB6Il19LGpDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXh0LXdpZHRoIixpY29uOls0NDgsNTEyLFtdLCJmMDM1IiwiTTQwIDBDMTcuOSAwIDAgMTcuOSAwIDQwTDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDEyOCAwIDAgMTYwLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0xNjAgMTI4IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNTZjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgMHptNzguNiA0MDYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMjI5LjUgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNC0yMjkuNSAwIDkuNC05LjR6Il19LFVDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYXRlbGxpdGUiLGljb246WzUxMiw1MTIsWzEyODc1Ml0sImY3YmYiLCJNMTk5IDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsODkuNCA4OS40IDU1LTU1YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDQ4IDQ4YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC01NSA1NSA4OS40IDg5LjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTk2IDk2Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtODkuNC04OS40LTE1LjUgMTUuNWMxMS40IDI0LjYgMTcuOCA1MiAxNy44IDgwLjkgMCAzMS43LTcuNyA2MS41LTIxLjIgODcuOC00LjcgOS0xNi43IDEwLjMtMjMuOCAzLjFsLTk2LjMtOTYuMy02MCA2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjAtNjAtOTYuMy05Ni4zYy03LjItNy4yLTUuOS0xOS4yIDMuMS0yMy44IDI2LjMtMTMuNiA1Ni4yLTIxLjIgODcuOC0yMS4yIDI4LjkgMCA1Ni4zIDYuNCA4MC45IDE3LjhMMTkyLjQgMjI2LjMgMTAzIDEzN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMTk5IDd6bTE3IDUwLjlsLTYyLjEgNjIuMSA3Mi40IDcyLjQgNjIuMS02Mi4xLTcyLjQtNzIuNHpNMzkyIDM1OC4xbDYyLjEtNjIuMS03Mi40LTcyLjQtNjIuMSA2Mi4xIDcyLjQgNzIuNHoiXX0sVE49e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1taW51cyIsaWNvbjpbNTEyLDUxMixbInNlYXJjaC1taW51cyJdLCJmMDEwIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMTM2IDE4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LFdDZT1UTixHQ2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJlNTMzIiwiTTI1NiAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em05NiAzMTJjMCAyNS0xMi43IDQ3LTMyIDU5LjlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFDMTcyLjcgMzU5IDE2MCAzMzcgMTYwIDMxMmwwLTQwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA0MHpNOTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTE2IDI0MGwwIDMyYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDc1LjNjMCAxLjIgMCAyLjUgLjEgMy43LTguNSA3LjYtMTkuNyAxMi4zLTMyLjEgMTIuM2wtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC01Ni42QzEyLjkgMzY0LjQgMCAzNDMuNyAwIDMyMGwwLTMyYzAtNTMgNDMtOTYgOTYtOTYgMTIuNyAwIDI0LjggMi41IDM1LjkgNi45LTEyLjYgMjEuNC0xOS45IDQ2LjQtMTkuOSA3My4xek0zNjggNDY0bDAtNzUuM2MxOS45LTIyLjUgMzItNTIuMiAzMi04NC43bDAtMzJjMC0yNi43LTcuMy01MS42LTE5LjktNzMuMSAxMS4xLTQuNSAyMy4yLTYuOSAzNS45LTYuOSA1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgNTYuNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMTIuMyAwLTIzLjYtNC42LTMyLjEtMTIuMyAwLTEuMiAuMS0yLjUgLjEtMy43ek00MTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6Il19LFlDZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtYmluYXJ5IixpY29uOls0NDgsNTEyLFtdLCJlNjliIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNDQgNGMtMjQuMyAwLTQ0IDE5LjctNDQgNDRsMCA0OGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwzMiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtNDhjMC0yNC4zLTE5LjctNDQtNDQtNDRsLTMyIDB6bS00IDQ0YzAtMi4yIDEuOC00IDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDh6bTE0MC00NGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwek0xMzIgMjk2YzAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6bTk2IDI0bDAgNDhjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMzIgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTQ4YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0zMiAwYy0yNC4zIDAtNDQgMTkuNy00NCA0NHptNDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDhjMC0yLjIgMS44LTQgNC00eiJdfSxMTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrcy10aGVhdGVyIixpY29uOls1NzYsNTEyLFsxMjc5MTcsInRoZWF0ZXItbWFza3MiXSwiZjYzMCIsIk0tNSAxMThMMjMuNSAyNzkuN2MxNCA3OS41IDc2LjMgMTQxLjggMTU1LjggMTU1LjhsMTIuNyAyLjJjLTE2LjUtMjguNi0yNy4xLTYwLjctMzAuNi05NC41bC0yNC4xIDQuM2MtOS43IDEuNy0xOC44LTUuOC0xNi45LTE1LjUgNC44LTI0LjcgMTkuMS00Ni42IDM5LjctNjAuOWwwLTc0LjZjLTEuNCAuOC0zIDEuMy00LjcgMS42bC02MyAxMS4xYy04LjcgMS41LTE3LjMtNC40LTE1LjktMTMuMSAzLjEtMTkuNiAxOC40LTM2IDM5LjEtMzkuNyAxNy4yLTMgMzMuOSAzLjUgNDQuNiAxNS44bDAtMjIuN2MwLTIyLjUgNi45LTUyLjQgMzIuMy03My40IDI2LTIxLjUgNjcuNy00My45IDEyNC45LTU0LjItMzAuNS0xNi4zLTg2LjMtMzItMTYzLjgtMTguNC04MC4zIDE0LjItMTI4IDUwLjEtMTUwLjEgNzYuMS05IDEwLjUtMTAuOCAyNC45LTguNCAzOC41ek0yMDggMTM4LjdsMCAxNzQuOGMwIDgwLjcgNTAuNSAxNTIuOSAxMjYuNCAxODAuNEwzNjIuMSA1MDRjMTQuMSA1LjEgMjkuNiA1LjEgNDMuNyAwTDQzMy42IDQ5NEM1MDkuNSA0NjYuNCA1NjAgMzk0LjMgNTYwIDMxMy41bDAtMTc0LjhjMC02LjktMi4xLTEzLjgtNy0xOC42LTIyLjYtMjIuNS03OC4yLTU2LTE2OS01NnMtMTQ2LjQgMzMuNi0xNjkgNTZjLTQuOSA0LjktNyAxMS43LTcgMTguNnptNjYuMSAxODcuMWMtMS40LTcgNy0xMSAxMi43LTYuNiAyNi45IDIwLjYgNjAuNiAzMi45IDk3LjIgMzIuOXM3MC4yLTEyLjMgOTcuMi0zMi45YzUuNy00LjQgMTQuMS0uNCAxMi43IDYuNi0xMC4xIDUxLjQtNTUuNSA5MC4zLTEwOS45IDkwLjNzLTk5LjgtMzguOC0xMDkuOS05MC4zem0uNS0xMDEuNUMyODEuMiAyMDUuNSAyOTkgMTkyIDMyMCAxOTJzMzguOSAxMy41IDQ1LjQgMzIuM2MyLjkgOC40LTQuNSAxNS43LTEzLjQgMTUuN2wtNjQgMGMtOC44IDAtMTYuMy03LjQtMTMuNC0xNS43ek00ODAgMjQwbC02NCAwYy04LjggMC0xNi4zLTcuNC0xMy40LTE1LjcgNi41LTE4LjggMjQuNC0zMi4zIDQ1LjQtMzIuM3MzOC45IDEzLjUgNDUuNCAzMi4zYzIuOSA4LjQtNC41IDE1LjctMTMuNCAxNS43eiJdfSxaQ2U9TE4sWENlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZjIxNyIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgNDEyLjcgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMzM2IDc4LjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzMuNi0zMy42IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzMuNiAwIDAgMzMuNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzMuNiAzMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMzLjYgMCAwLTMzLjZjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LE81PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWFzbC1pbnRlcnByZXRpbmciLGljb246WzY0MCw1MTIsWyJhbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyIsImFzbC1pbnRlcnByZXRpbmciLCJoYW5kcy1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyJdLCJmMmEzIiwiTTE1Ni42IDQ2LjNjNy45LTE1LjggMS41LTM1LTE0LjMtNDIuOXMtMzUtMS41LTQyLjkgMTQuM0wxMy41IDE4OS40QzQuNiAyMDcuMiAwIDIyNi44IDAgMjQ2LjdMMCAyNTZjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsODAgMCAwLS4zYzM1LjItMi43IDY1LjQtMjIuOCA4Mi4xLTUxLjcgOC44LTE1LjMgMy42LTM0LjktMTEuNy00My43cy0zNC45LTMuNi00My43IDExLjdjLTcgMTItMTkuOSAyMC0zNC43IDIwLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDBjMTQuOCAwIDI3LjcgOCAzNC43IDIwIDguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdzMjAuNS0yOC40IDExLjctNDMuN2MtMTIuOC0yMi4xLTMzLjYtMzkuMS01OC40LTQ3LjFsODAuOC0yMmMxNy00LjYgMjcuMS0yMi4yIDIyLjUtMzkuM3MtMjIuMi0yNy4xLTM5LjMtMjIuNWwtMTAwLjcgMjcuNSA4MS42LTY4YzEzLjYtMTEuMyAxNS40LTMxLjUgNC4xLTQ1LjFTMjQ5LjEtMy45IDIzNS41IDcuNGwtMTAxLjkgODQuOSAyMy00NnpNNDgzLjQgNDY1LjdjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w4NS45LTE3MS43YzguOS0xNy44IDEzLjUtMzcuNCAxMy41LTU3LjJsMC05LjNjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTgwIDAgMCAuM2MtMzUuMiAyLjctNjUuNCAyMi44LTgyLjEgNTEuNy04LjkgMTUuMy0zLjYgMzQuOSAxMS43IDQzLjdzMzQuOSAzLjYgNDMuNy0xMS43YzctMTIgMTkuOS0yMCAzNC43LTIwIDIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwYy0xNC44IDAtMjcuNy04LTM0LjctMjAtOC45LTE1LjMtMjguNC0yMC41LTQzLjctMTEuN3MtMjAuNSAyOC40LTExLjcgNDMuN2MxMi44IDIyLjEgMzMuNiAzOS4xIDU4LjQgNDcuMWwtODAuOCAyMmMtMTcuMSA0LjYtMjcuMSAyMi4yLTIyLjUgMzkuM3MyMi4yIDI3LjEgMzkuMyAyMi41bDEwMC43LTI3LjUtODEuNiA2OGMtMTMuNiAxMS4zLTE1LjQgMzEuNS00LjEgNDUuMXMzMS41IDE1LjQgNDUuMSA0LjFsMTAxLjktODQuOS0yMyA0NnoiXX0sS0NlPU81LFFDZT1PNSxKQ2U9TzUsZV9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLXJvdy11bmxvY2siLGljb246WzY0MCw1MTIsW10sImU2OTEiLCJNMjU2IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTI1Ni03OWMtNDYuNyA1LjgtODUuNiAzNi44LTEwMi43IDc5bC0yNS4zIDAgMCA5MC44Yy0xMC4xIDE1LjItMTYgMzMuNC0xNiA1My4xbDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUwxMjggNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQ5ek0xMjggMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptNDMyIDQ4Yy0uMS0xNy42LTE0LjQtMzEuOS0zMi0zMS45LTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDcuOSA5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODAgNDQuMiAwIDc5LjkgMzUuOCA4MCA3OS45bC00OCAweiJdfSx0X2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9ja2V0IixpY29uOls1MTIsNTEyLFtdLCJmMTM1IiwiTTEyOCAzMjBMMjQuNSAzMjBjLTI0LjkgMC00MC4yLTI3LjEtMjcuNC00OC41TDUwIDE4My4zQzU4LjcgMTY4LjggNzQuMyAxNjAgOTEuMiAxNjBsOTUgMGM3Ni4xLTEyOC45IDE4OS42LTEzNS40IDI2NS41LTEyNC4zIDEyLjggMS45IDIyLjggMTEuOSAyNC42IDI0LjYgMTEuMSA3NS45IDQuNiAxODkuNC0xMjQuMyAyNjUuNWwwIDk1YzAgMTYuOS04LjggMzIuNS0yMy4zIDQxLjJsLTg4LjIgNTIuOWMtMjEuMyAxMi44LTQ4LjUtMi42LTQ4LjUtMjcuNEwxOTIgMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0uMSAwek00MDAgMTYwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LGFfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaHJpbXAiLGljb246WzUxMiw1MTIsWzEyOTQyNF0sImU0NDgiLCJNNzIgMzJDMzIuMiAzMiAwIDY0LjIgMCAxMDQgMCAxNDEuOSAyOS4zIDE3Mi45IDY2LjQgMTc1LjggNzcuNiAyNTcuMiAxNDcuNCAzMjAgMjMyIDMyMGw1NiAwIDAtMTkyLTIxNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM1OC43IDgwIDcyIDgwbDM4NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDcyIDMyek0yMjQgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDcyIDAgMC03Mi4yLTY0LjEtMjIuNGMtMTIuNS00LjQtMjYuMiAyLjItMzAuNiAxNC43czIuMiAyNi4yIDE0LjcgMzAuNmw0LjUgMS42QzIzMyA0MzMuOSAyMjQgNDQzLjkgMjI0IDQ1NnptMTI4IDIzLjNjMzYuNC0zLjMgNjkuNS0xNy42IDk2LjEtMzkuNmwtODYuNS0zNC42Yy0zIDEuOC02LjIgMy4yLTkuNiA0LjNsMCA2OS45ek00NzIuNiA0MTVjMjQuNi0zMC4zIDM5LjQtNjguOSAzOS40LTExMSAwLTEyLjMtMS4zLTI0LjMtMy43LTM1LjlMMzgyLjggMzU1LjFjLjggMy40IDEuMiA3IDEuMiAxMC42IDAgNC42LS43IDktMS45IDEzLjFMNDcyLjYgNDE1ek0zMzYgMTI4bC0xNiAwIDAgMTkyIDE4LjMgMGM5LjkgMCAxOS4xIDMuMiAyNi42IDguNWwxMzMuNS05Mi40QzQ3MS44IDE3Mi42IDQwOS4xIDEyOCAzMzYgMTI4ek0xNjggMTkyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LCROPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbmdlLXNpZ24iLGljb246WzM4NCw1MTIsWzgzNzYsInRlbmdlIl0sImY3ZDciLCJNMCA1NkMwIDQyLjcgMTAuNyAzMiAyNCAzMmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA4MEMxMC43IDgwIDAgNjkuMyAwIDU2ek0wIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDAgMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNTYtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxpX2U9JE4sQU49e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiY2xpbmljLW1lZGljYWwiXSwiZjdmMiIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMjI0IDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0scl9lPUFOLHNfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1zbGFzaCIsaWNvbjpbNjQwLDUxMixbXSwiZTA3MyIsIk03My0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMyOS43LS4zIDM5IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMjEuOCAyMjRjNTYuNi0xIDEwMi4yLTQ3LjIgMTAyLjItMTA0IDAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTU2LjggMC0xMDMgNDUuNi0xMDQgMTAyLjJMNzMtMjQuOXpNNTEyIDI4OGMtMTcuMiAwLTMzLjcgMy40LTQ4LjcgOS42bDE3MCAxNzBjNC4yLTUuNCA2LjctMTIuMiA2LjctMTkuNmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4ek01OS45IDk3LjdjLTIxLjUgMTIuNS0zNS45IDM1LjctMzUuOSA2Mi4zIDAgMzkuOCAzMi4yIDcyIDcyIDcyIDI2LjYgMCA0OS44LTE0LjQgNjIuMy0zNS45TDU5LjkgOTcuN3pNMjUwLjIgMjg4QzE5Ni44IDMxMy45IDE2MCAzNjguNyAxNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjUwLjIgMC0xOTItMTkyek0xMjggMjg4QzU3LjMgMjg4IDAgMzQ1LjMgMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjR6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAweiJdfSxuX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXItcGxhbmUiLGljb246WzU3Niw1MTIsWzYxOTEzXSwiZjFkOCIsIk01MzYuNC0yNi4zYzkuOC0zLjUgMjAuNi0xIDI4IDYuM3M5LjggMTguMiA2LjMgMjhsLTE3OCA0OTYuOWMtNSAxMy45LTE4LjEgMjMuMS0zMi44IDIzLjEtMTQuMiAwLTI3LTguNi0zMi4zLTIxLjdsLTY0LjItMTU4Yy00LjUtMTEtMi41LTIzLjYgNS4yLTMyLjZsOTQuNS0xMTIuNGM1LjEtNi4xIDQuNy0xNS0uOS0yMC42cy0xNC42LTYtMjAuNi0uOUwyMjkuMiAyNzYuMWMtOS4xIDcuNi0yMS42IDkuNi0zMi42IDUuMkwzOC4xIDIxNi44Yy0xMy4xLTUuMy0yMS43LTE4LjEtMjEuNy0zMi4zIDAtMTQuNyA5LjItMjcuOCAyMy4xLTMyLjhsNDk2LjktMTc4eiJdfSxETj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWF0bGFzIixpY29uOls0NDgsNTEyLFsiYXRsYXMiXSwiZjU1OCIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiAwQzQzIDAgMCA0MyAwIDk2TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZ6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMCAwIDY0LTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMzEwLjYgMjA4TDI3OSAyMDhjLTEuNCAyMy4xLTYgNDQuMi0xMi42IDYxLjIgMjIuNy0xMi41IDM5LjQtMzQuOCA0NC4yLTYxLjJ6bS0xNzMuMSAwYzQuOCAyNi40IDIxLjUgNDguNyA0NC4yIDYxLjItNi43LTE3LTExLjItMzgtMTIuNi02MS4ybC0zMS42IDB6bTc2LjQgNTVjNC41IDkuNiA4LjIgMTMuOCAxMC4yIDE1LjUgMi0xLjcgNS43LTUuOCAxMC4yLTE1LjUgNi4yLTEzLjQgMTEuMS0zMi41IDEyLjctNTVsLTQ1LjggMGMxLjYgMjIuNSA2LjUgNDEuNiAxMi43IDU1em0tMTIuNy04N2w0NS44IDBjLTEuNi0yMi41LTYuNS00MS42LTEyLjctNTUtNC41LTkuNi04LjItMTMuOC0xMC4yLTE1LjUtMiAxLjctNS43IDUuOC0xMC4yIDE1LjUtNi4yIDEzLjQtMTEuMSAzMi41LTEyLjcgNTV6bTEwOS41IDBjLTQuOC0yNi40LTIxLjUtNDguNy00NC4yLTYxLjIgNi43IDE3IDExLjIgMzggMTIuNiA2MS4ybDMxLjYgMHpNMTY5IDE3NmMxLjQtMjMuMSA2LTQ0LjIgMTIuNi02MS4yLTIyLjcgMTIuNS0zOS40IDM0LjgtNDQuMiA2MS4ybDMxLjYgMHpNOTYgMTkyYTEyOCAxMjggMCAxIDEgMjU2IDAgMTI4IDEyOCAwIDEgMSAtMjU2IDB6Il19LG9fZT1ETixsX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUiLGljb246WzQ0OCw1MTIsW10sImYwY2UiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMC02LjUtLjNDMjUuMiA0NzYuNCAwIDQ0OS4xIDAgNDE2TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTY0IDMyMGwwIDk2IDEyOCAwIDAtOTYtMTI4IDB6bTE5MiAwbDAgOTYgMTI4IDAgMC05Ni0xMjggMHpNNjQgMjU2bDEyOCAwIDAtOTYtMTI4IDAgMCA5NnptMTkyIDBsMTI4IDAgMC05Ni0xMjggMCAwIDk2eiJdfSxjX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQiLGljb246WzUxMiw1MTIsWzEyODE1MywxMjgxNTQsMTI4MTU1LDEyODE1NiwxMjg0MjAsMTI5MjkzLDEyOTI5NCwxMjk1MDUsOTgyOSwxMDA4NCw2MTU3OF0sImYwMDQiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6Il19LEVOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLXVwIixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtdXAiXSwiZjEzOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzc3IDI3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC04Ny04Ny04NyA4N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwyMzkgMTY3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDM3NyAyNzF6Il19LGRfZT1FTixQTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWhhbGYiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTMiXSwiZjI0MiIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LHBfZT1QTixvbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnoiXX0saF9lPW9tLHVfZT1vbSxmX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZGN1ZmZzIixpY29uOls1NzYsNTEyLFtdLCJlNGY4IiwiTTMyMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJ6TTE5MiA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTE1MiA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEgLjEgMS45IC4yIDIuOS03NC43IDI2LjMtMTI4LjIgOTcuNS0xMjguMiAxODEuMSAwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6TTY0IDMyMGExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem00NDggMGMwIDY2LjktNTEuMyAxMjEuOC0xMTYuNiAxMjcuNS0xNC4zIDIyLjgtMzIuNCA0My4xLTUzLjQgNTkuOSAxMy41IDMgMjcuNiA0LjYgNDIgNC42IDEwNiAwIDE5Mi04NiAxOTItMTkyIDAtODMuNy01My41LTE1NC44LTEyOC4yLTE4MS4xIC4xLS45IC4yLTEuOSAuMi0yLjlsMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTIuMyAwLTIyLjQgOS4yLTIzLjggMjEuMSAzMC4zIDE5LjIgNTYuMSA0NSA3NS4yIDc1LjQgNjUuNCA1LjggMTE2LjYgNjAuNiAxMTYuNiAxMjcuNXpNMzg0IDY0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sbV9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhdC1jb3dib3ktc2lkZSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMSIsIk02NDAgMzg4LjNjMCAxNi45LTcuMSAzMi4yLTE4LjQgNDMuMWwtMzUtMjMuMy0yOTIuNy0xOTUuMWMtMzYuMS0yNC4xLTc4LjYtMzYuOS0xMjItMzYuOWwtMy45IDBjLTIuNyAwLTUuNCAwLTggLjFsMjIuMi0xMDBjNS43LTI1LjggMjguNi00NC4xIDU1LTQ0LjEgMTIuMiAwIDI0LjEgNCAzMy44IDExLjNsNC43IDMuNWMyNi4zIDE5LjcgNjIuNCAxOS43IDg4LjYgMGw0LjctMy41YzkuOC03LjMgMjEuNi0xMS4zIDMzLjgtMTEuMyAyNi40IDAgNDkuMyAxOC4zIDU1IDQ0LjFsMzMgMTQ4LjVDNTc0LjUgMjMyLjMgNjQwIDMwMi42IDY0MCAzODguM3pNMTcxLjkgMjI0YzMzLjkgMCA2Ny4xIDEwIDk1LjQgMjguOUw1NjAgNDQ4IDU2IDQ0OGMtMzAuOSAwLTU2LTI1LjEtNTYtNTYgMC05Mi44IDc1LjItMTY4IDE2OC0xNjhsMy45IDB6Il19LGdfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmR1c3RyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjI3NSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjc5LjhjMC0xOC4yLTE5LjQtMjkuNy0zNS40LTIxLjFsLTE1Ni42IDg0LjMgMC02My4yYzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xTDEyOCAyMTUuNCAxMjggNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LGJfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5lcy1sZWFuaW5nIixpY29uOlszODQsNTEyLFtdLCJlNTFlIiwiTTE5MC40IDc0LjFjNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJsLTEyOCAzODRjLTUuNiAxNi44IDMuNSAzNC45IDIwLjIgNDAuNXMzNC45LTMuNSA0MC41LTIwLjJsMTI4LTM4NHptNzAuOS00MS43Yy0xNy40LTIuOS0zMy45IDguOS0zNi44IDI2LjNsLTY0IDM4NGMtMi45IDE3LjQgOC45IDMzLjkgMjYuMyAzNi44czMzLjktOC45IDM2LjgtMjYuM2w2NC0zODRjMi45LTE3LjQtOC45LTMzLjktMjYuMy0zNi44ek0zNTIgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LHZfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXNzcG9ydCIsaWNvbjpbMzg0LDUxMixbXSwiZjVhYiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDQwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0yNzguNiAyMDhjLTQuOCAyNi40LTIxLjUgNDguNy00NC4yIDYxLjIgNi43LTE3IDExLjItMzggMTIuNi02MS4ybDMxLjYgMHptLTE3My4xIDBsMzEuNiAwYzEuNCAyMy4xIDYgNDQuMiAxMi42IDYxLjItMjIuNy0xMi41LTM5LjQtMzQuOC00NC4yLTYxLjJ6bTc2LjQgNTVjLTYuMi0xMy40LTExLjEtMzIuNS0xMi43LTU1bDQ1LjggMGMtMS42IDIyLjUtNi41IDQxLjYtMTIuNyA1NS00LjUgOS42LTguMiAxMy44LTEwLjIgMTUuNS0yLTEuNy01LjctNS44LTEwLjItMTUuNXptMC0xNDJjNC41LTkuNiA4LjItMTMuOCAxMC4yLTE1LjUgMiAxLjcgNS43IDUuOCAxMC4yIDE1LjUgNi4yIDEzLjQgMTEuMSAzMi41IDEyLjcgNTVsLTQ1LjggMGMxLjYtMjIuNSA2LjUtNDEuNiAxMi43LTU1em05Ni43IDU1TDI0NyAxNzZjLTEuNC0yMy4xLTYtNDQuMi0xMi42LTYxLjIgMjIuNyAxMi41IDM5LjQgMzQuOCA0NC4yIDYxLjJ6TTEzNyAxNzZsLTMxLjYgMGM0LjgtMjYuNCAyMS41LTQ4LjcgNDQuMi02MS4yLTYuNyAxNy0xMS4yIDM4LTEyLjYgNjEuMnptMTgzIDE2YTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6Il19LHlfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmZpbml0eSIsaWNvbjpbNjQwLDUxMixbODczNCw5ODU0XSwiZjUzNCIsIk0wIDI1NmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCA1MC40IDAgOTcuOCAyMy43IDEyOCA2NGwzMiA0Mi43IDMyLTQyLjdjMzAuMi00MC4zIDc3LjYtNjQgMTI4LTY0IDg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwUzU2OC40IDQxNiA0ODAgNDE2Yy01MC40IDAtOTcuOC0yMy43LTEyOC02NGwtMzItNDIuNy0zMiA0Mi43Yy0zMC4yIDQwLjMtNzcuNiA2NC0xMjggNjQtODguNCAwLTE2MC03MS42LTE2MC0xNjB6bTI4MCAwbC00My4yLTU3LjZjLTE4LjEtMjQuMi00Ni42LTM4LjQtNzYuOC0zOC40LTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjMzAuMiAwIDU4LjctMTQuMiA3Ni44LTM4LjRMMjgwIDI1NnptODAgMGw0My4yIDU3LjZjMTguMSAyNC4yIDQ2LjYgMzguNCA3Ni44IDM4LjQgNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTMwLjIgMC01OC43IDE0LjItNzYuOCAzOC40TDM2MCAyNTZ6Il19LHhfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDQ4bC0yMjQgMCAwLTIyNCA0OCAwIDAtNjQtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC02NCAwIDAgNDh6bS02NC05NmwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjR6Il19LHdfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb3J3YXJkIixpY29uOls1NzYsNTEyLFs5MTkzXSwiZjA0ZSIsIk0zNzEuNyA0My4xQzM2MC4xIDMyIDM0MyAyOC45IDMyOC4zIDM1LjJTMzA0IDU2IDMwNCA3MmwwIDEzNi4zLTE3Mi4zLTE2NS4xQzEyMC4xIDMyIDEwMyAyOC45IDg4LjMgMzUuMlM2NCA1NiA2NCA3MmwwIDM2OGMwIDE2IDkuNiAzMC41IDI0LjMgMzYuOHMzMS44IDMuMiA0My40LTcuOUwzMDQgMzAzLjcgMzA0IDQ0MGMwIDE2IDkuNiAzMC41IDI0LjMgMzYuOHMzMS44IDMuMiA0My40LTcuOWwxOTItMTg0YzcuOS03LjUgMTIuMy0xOCAxMi4zLTI4LjlzLTQuNS0yMS4zLTEyLjMtMjguOWwtMTkyLTE4NHoiXX0sTV9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im0iLGljb246WzQ0OCw1MTIsWzEwOV0sIjRkIiwiTTIyLjcgMzMuNGMxMy41LTQuMSAyOC4xIDEuMSAzNS45IDEyLjlMMjI0IDI5NC4zIDM4OS40IDQ2LjNjNy44LTExLjcgMjIuNC0xNyAzNS45LTEyLjlTNDQ4IDQ5LjkgNDQ4IDY0bDAgMzg0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc4LjMtMTMzLjQgMjAwLjFjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMnMtMjAuNy01LjMtMjYuNi0xNC4yTDY0IDE2OS43IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA0OS45IDkuMiAzNy41IDIyLjcgMzMuNHoiXX0sel9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtc3Bpa2VzIixpY29uOls2NDAsNTEyLFtdLCJlNTY4IiwiTTY0IDExNi44YzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45TDYwNi44IDMwMi4yYzE0LjIgMjEuMy0xLjEgNDkuOC0yNi42IDQ5LjhMNjQgMzUyIDY0IDExNi44ek0zMiAzODRsNTc2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxrX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bnRhaW4iLGljb246WzUxMiw1MTIsWzEyNzk1Nl0sImY2ZmMiLCJNMjU2LjUgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjUtNy4yIDEyLjEtMjAuMyAxOS41LTM0LjMgMTkuNWwtNDMyIDBjLTE0LjEgMC0yNy4xLTcuNC0zNC4zLTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMCAyLjktNC42QzIzMS43IDYuMiAyNDMuNiAwIDI1Ni41IDB6TTE3MC40IDI0OS45bDI2LjggMjYuOGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw0My4zLTQzLjNjNi02IDE0LjEtOS40IDIyLjYtOS40bDQyLjggMC03Mi4xLTEzMy41LTg2LjEgMTU5LjR6Il19LFNfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjQzOSIsIk0xNjggNTZsMCA0MC03OC4xIDBjLTE0LjMgMC0yNS45IDExLjYtMjUuOSAyNS45IDAgNCAuOSA4IDIuNyAxMS42bDMzLjQgNjYuOGMtMTEuNCAxLjgtMjAuMiAxMS43LTIwLjIgMjMuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNGw1LjYgMC0xMy42IDEzNi01Ni4yIDcwLjNjLTUgNi4zLTcuOCAxNC4xLTcuOCAyMi4yIDAgMTkuNiAxNS45IDM1LjUgMzUuNSAzNS41bDI0OC45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJMMjg4IDM4NCAyNzQuNCAyNDggMjgwIDI0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNCAwLTExLjktOC43LTIxLjktMjAuMi0yMy43bDMzLjQtNjYuOGMxLjgtMy42IDIuNy03LjYgMi43LTExLjYgMC0xNC4zLTExLjYtMjUuOS0yNS45LTI1LjlsLTc4LjEgMCAwLTQwIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMjQ1LjMgOCAyMzIgOGwtMTYgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzE2OC0yMS4zIDE2OC04bDAgMTYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNiAwek0zMjUuOCAyNzkuNmw4LjUgODUuNSA0Ny40IDU5LjIgNC4yIDUuN2M5LjIgMTMuNyAxNC4xIDI5LjkgMTQuMSA0Ni41IDAgMTIuNy0yLjggMjQuOC03LjkgMzUuNWw4My4xIDBjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjggMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRsLTI1LjgtMzguNyAwLTY0IDEzLjMtMTMuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiAxOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNi0zMiAwIDAtMTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDIyLjQtMTAuMiA0Mi40LTI2LjIgNTUuNnoiXX0sUjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtdGhyZWUtcXVhcnRlcnMiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS0zIiwidGhlcm1vbWV0ZXItMyIsInRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzIl0sImYyYzgiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zTDEzNiAxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE1Ni43YzIzLjUgOS41IDQwIDMyLjUgNDAgNTkuM3oiXX0sQ19lPVI1LF9fZT1SNSxUX2U9UjUsTF9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImIiLGljb246WzMyMCw1MTIsWzk4XSwiNDIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTQ2LjUtMjQuOC04Ny4zLTYyLTEwOS43IDE4LjctMjIuMyAzMC01MSAzMC04Mi4zIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0xNjAgMjI0bC05NiAwIDAtMTI4IDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTY0IDI4OGwxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTI4IDAgMC0xMjh6Il19LCRfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtdmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNmMiLCJNMjUzLjQgMi45QzI0OS4yIDEgMjQ0LjcgMCAyNDAgMHMtOS4yIDEtMTMuNCAyLjlMMzguMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNTMuNCAyLjl6TTI0MCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0ek0yMDggMjY0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODggNDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sQV9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpdGVjb2luLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZDMiLCJNMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNTcuOS0zOC42IDExYy0xMi43IDMuNi0yMC4xIDE2LjktMTYuNSAyOS43czE2LjkgMjAuMSAyOS43IDE2LjVMNjQgMjcxLjggNjQgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTE2Mi41IDEzNC42LTM4LjVjMTIuNy0zLjYgMjAuMS0xNi45IDE2LjUtMjkuN3MtMTYuOS0yMC4xLTI5LjctMTYuNUwxMjggMjAzLjYgMTI4IDY0eiJdfSxEX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1kNiIsaWNvbjpbNTEyLDUxMixbXSwiZjZkMSIsIk0yMjQuNCA4LjNDMjQ0LTIuOCAyNjgtMi44IDI4Ny42IDguM2wxNzYgOTkuN2MyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAxOTcuNGMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE3NiA5OS43Yy0xOS42IDExLjEtNDMuNiAxMS4xLTYzLjEgMGwtMTc2LTk5LjdDMjguNCA0MDUuNSAxNiAzODQuMiAxNiAzNjEuMmwwLTE5Ny40YzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN2wxNzYtOTkuN3pNMTAyLjYgMTU1LjZjLTguOC0zLjEtMTguOCAuMy0yMy44IDguNnMtMy4yIDE4LjcgMy42IDI1bDMuMiAyLjQgMTUwLjIgOTAuMiAwIDE0OC43YzAgMTEgOSAyMCAyMCAyMCAxMSAwIDIwLTkgMjAtMjBsMC0xNDguNyAxNTAuMy05MC4yYzkuNS01LjcgMTIuNi0xOCA2LjktMjcuNHMtMTgtMTIuNS0yNy40LTYuOWwtMTQ5LjcgODkuOC0xNDkuNy04OS44LTMuNy0xLjd6Il19LEVfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLWxpbmVzLXZlcnRpY2FsIixpY29uOlsxOTIsNTEyLFtdLCJmN2E1IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgNjR6bTEyOCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODR6Il19LElOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdvbGYtYmFsbC10ZWUiLGljb246WzM4NCw1MTIsWyJnb2xmLWJhbGwiXSwiZjQ1MCIsIk0yOTguNSAzODQuMWMxMi4xIDEuMiAyMS41IDExLjUgMjEuNSAyMy45cy05LjQgMjIuNi0yMS41IDIzLjlsLTIuNSAuMS04MCAwIDAgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04OC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNCAwLTEyLjQgOS40LTIyLjYgMjEuNS0yMy45bDIuNS0uMSAyMDggMCAyLjUgLjF6TTE5MiAwYzEwNiAwIDE5MiA4NiAxOTIgMTkyIDAgNTcuNC0yNS4yIDEwOC44LTY1LjEgMTQ0TDY1LjEgMzM2QzI1LjIgMzAwLjggMCAyNDkuNCAwIDE5MiAwIDg2IDg2IDAgMTkyIDB6bTMyIDI0MGMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2em02NC02NGMtNy43IDAtMTQuMiA1LjUtMTUuNyAxMi44bC0uNiA2LjRjLTEuMyA2LjMtNi4yIDExLjItMTIuNSAxMi41bC02LjQgLjZjLTcuMyAxLjUtMTIuOCA4LTEyLjggMTUuNyAwIDguOCA3LjIgMTYgMTYgMTYgMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2em0tODAtMTZjLTcuNyAwLTE0LjIgNS41LTE1LjcgMTIuOGwtLjYgNi40Yy0xLjMgNi4zLTYuMiAxMS4yLTEyLjUgMTIuNWwtNi40IC42Yy03LjMgMS41LTEyLjggOC0xMi44IDE1LjcgMCA4LjggNy4yIDE2IDE2IDE2IDI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNnoiXX0sUF9lPUlOLElfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uIixpY29uOls1NzYsNTEyLFsxMTA0M10sImYzMTIiLCJNMzMuNSAyMjAuM2MtMTIuNyAyMi4yLTEyLjcgNDkuNCAwIDcxLjVsOTYuMiAxNjguMWMxMi44IDIyLjQgMzYuNyAzNi4yIDYyLjUgMzYuMmwxOTEuNiAwYzI1LjggMCA0OS43LTEzLjggNjIuNS0zNi4ybDk2LjItMTY4LjFjMTIuNy0yMi4yIDEyLjctNDkuNCAwLTcxLjVMNDQ2LjMgNTIuMkM0MzMuNSAyOS44IDQwOS42IDE2IDM4My44IDE2TDE5Mi4yIDE2Yy0yNS44IDAtNDkuNyAxMy44LTYyLjUgMzYuMkwzMy41IDIyMC4zeiJdfSxOX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW9wZW4iLGljb246WzU3Niw1MTIsWzEyODE5NCwxMjg0NDksNjE3MTddLCJmMDdjIiwiTTU2IDIyNS42TDMyLjQgMjk2LjIgMzIuNCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRsMTE3LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2LTM2NS40IDBjLTQxLjMgMC03OCAyNi40LTkxLjEgNjUuNnpNNDc3LjggNDQ4TDk5IDQ0OGMtMzIuOCAwLTU1LjktMzIuMS00NS41LTYzLjJsNDgtMTQ0QzEwOCAyMjEuMiAxMjYuNCAyMDggMTQ3IDIwOGwzNzguOCAwYzMyLjggMCA1NS45IDMyLjEgNDUuNSA2My4ybC00OCAxNDRjLTYuNSAxOS42LTI0LjkgMzIuOC00NS41IDMyLjh6Il19LEZfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJrYWFiYSIsaWNvbjpbNTEyLDUxMixbMTI4MzMxXSwiZjY2YiIsIk0yNTYgNTEuM0w5Mi44IDExMi40IDI0Ny41IDE3MS4xYzUuNSAyLjEgMTEuNSAyLjEgMTcgMEw0MTkuMiAxMTIuNCAyNTYgNTEuM3pNMCAxMjkuM2MwLTIwIDEyLjQtMzcuOSAzMS4xLTQ0LjlsMjA4LTc4YzEwLjktNC4xIDIyLjgtNC4xIDMzLjcgMGwyMDggNzhjMTguNyA3IDMxLjEgMjQuOSAzMS4xIDQ0LjlsMCAzNi0yNTMuMiA5NmMtMS44IC43LTMuOCAuNy01LjcgMGwtMjUzLjItOTYgMC0zNnptMCAxNDBsMC01Mi43IDIzNi4xIDg5LjZjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDIzNi4xLTg5LjYgMCA1Mi43LTEyOCA0OC42IDAgNTEuMyAxMjgtNDguNiAwIDYyLjJjMCAyMC0xMi40IDM3LjktMzEuMSA0NC45bC0yMDggNzhjLTEwLjkgNC4xLTIyLjggNC4xLTMzLjcgMGwtMjA4LTc4QzEyLjQgNDIwLjcgMCA0MDIuNyAwIDM4Mi43bDAtNjIuMiAxMjggNDguNiAwLTUxLjMtMTI4LTQ4LjZ6TTIzNi4xIDQxMC4xYzEyLjggNC45IDI2LjkgNC45IDM5LjcgMGw2MC4xLTIyLjggMC01MS4zLTc3LjIgMjkuM2MtMS44IC43LTMuOCAuNy01LjcgMGwtNzcuMi0yOS4zIDAgNTEuMyA2MC4xIDIyLjh6Il19LE9fZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmciLGljb246WzU3Niw1MTIsW10sImY0YmQiLCJNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAweiJdfSxSX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2luZ2xlLXF1b3RlLXJpZ2h0IixpY29uOlsxOTIsNTEyLFtdLCJlODFjIiwiTTY0IDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAweiJdfSxCX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLWRyb3BsZXQiLGljb246WzMyMCw1MTIsW10sImU0YzQiLCJNODAgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTAzLjNjNjQuOSAyMC40IDExMiA4MSAxMTIgMTUyLjdsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI4OGMwLTcxLjYgNDcuMS0xMzIuMyAxMTItMTUyLjdMMTEyIDMyQzk0LjMgMzIgODAgMTcuNyA4MCAwem04MCA0MTZjMzUuMyAwIDY0LTMyLjQgNjQtNjQgMC0yMS4yLTI4LjktNjQuNS00Ny45LTkwLjYtOC4xLTExLjEtMjQuMi0xMS4xLTMyLjMgMC0xOSAyNi4xLTQ3LjkgNjkuNC00Ny45IDkwLjYgMCAzMS42IDI4LjcgNjQgNjQgNjR6Il19LEhfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctbWluaW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ2OV0sImYyZDEiLCJNMCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0scV9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tcmlnaHQiLGljb246WzMyMCw1MTIsWzkwMDJdLCJmMDU0IiwiTTMxMS4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDMuMiAyNTYgNzMuOSA4Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJ6Il19LFZfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlZ2ciLGljb246WzM4NCw1MTIsWzEyOTM3MF0sImY3ZmIiLCJNMTkyIDQ5NkM4NiA0OTYgMCAzOTQgMCAyODggMCAxNzYgNjQgMTYgMTkyIDE2UzM4NCAxNzYgMzg0IDI4OGMwIDEwNi04NiAyMDgtMTkyIDIwOHpNMTU0LjggMTM0YzYuNS02IDctMTYuMSAxLTIyLjZzLTE2LjEtNy0yMi42LTFjLTIzLjkgMjEuOC00MS4xIDUyLjctNTIuMyA4NC4yLTExLjIgMzEuNi0xNi45IDY1LjEtMTYuOSA5My41IDAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0yNC41IDUtNTQuNCAxNS4xLTgyLjggMTAuMS0yOC41IDI1LTU0LjEgNDMuNy03MS4yeiJdfSxOTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyay1kb21lIixpY29uOls1MTIsNTEyLFsibGFuZG1hcmstYWx0Il0sImY3NTIiLCJNMjU2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgLjkgMCAxLjggLjEgMi42LTgwLjUgMTMuNC0xNDQgNzYuOS0xNTcuNSAxNTcuNEw2NCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAxNjAtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMNDQ4IDQxNiA0NDggMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yLjcgMGMtMTMuNS04MC40LTc3LTE0My45LTE1Ny41LTE1Ny40IC4xLS45IC4xLTEuNyAuMS0yLjYgMC0xNy43LTE0LjMtMzItMzItMzJ6bTgwIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6TTIyNCA0MTZsMC0xNjAgNjQgMCAwIDE2MC02NCAwek0xMTIgMjU2bDY0IDAgMCAxNjAtNjQgMCAwLTE2MHoiXX0sal9lPU5OLFVfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3b3JtIixpY29uOls0NDgsNTEyLFtdLCJlNTk5IiwiTTIyNCA5NmMwLTUzIDQzLTk2IDk2LTk2bDM4LjQgMEM0MDcuOSAwIDQ0OCA0MC4xIDQ0OCA4OS42TDQ0OCAzNzZjMCA3NS4xLTYwLjkgMTM2LTEzNiAxMzZTMTc2IDQ1MS4xIDE3NiAzNzZsMC04MGMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGwwIDE2OGMwIDI2LjUtMjEuNSA0OC00OCA0OFMwIDQ5MC41IDAgNDY0TDAgMjk2YzAtNzUuMSA2MC45LTEzNiAxMzYtMTM2czEzNiA2MC45IDEzNiAxMzZsMCA4MGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMTg0LTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZ6bTE0NC04YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFdfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWluanVyZWQiLGljb246WzQ0OCw1MTIsW10sImY3MjgiLCJNMjQyLjcgODBMMzM0IDgwYy0xMC43LTI0LjYtMjkuNS00NC45LTUyLjktNTcuNkwyNDIuNyA4MHptLS45LTcwLjdDMjM2IDguNCAyMzAgOCAyMjQgOCAxNzQuOCA4IDEzMi41IDM3LjYgMTE0IDgwbDgwLjYgMCA0Ny4xLTcwLjd6TTIyNCAyNDhjNjYuMyAwIDEyMC01My43IDEyMC0xMjBsLTI0MCAwYzAgNjYuMyA1My43IDEyMCAxMjAgMTIwek05OC43IDM0MS44QzQ5LjMgMzcwLjIgMTYgNDIzLjUgMTYgNDg0LjYgMTYgNDk5LjcgMjguMyA1MTIgNDMuNCA1MTJsMTUxIDAtOTUuOC0xNzAuMnptNDUuMS0xNy43bDQyLjcgNzUuOSA4NS41IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCAxMS40LTIuNCAyMi4yLTYuNyAzMmw1OS4yIDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC05MC45LTczLjctMTY0LjYtMTY0LjYtMTY0LjZsLTg2LjkgMGMtMTIuNiAwLTI0LjkgMS40LTM2LjcgNC4xek0yMTMuNSA0NDhsMzYgNjQgMjIuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01OC41IDB6Il19LEdfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdHJpa2V0aHJvdWdoIixpY29uOls1MTIsNTEyLFtdLCJmMGNjIiwiTTk2IDE1Ny41Qzk2IDg4LjIgMTUyLjIgMzIgMjIxLjUgMzJMMzY4IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDIyMS41IDk2Yy0zNCAwLTYxLjUgMjcuNS02MS41IDYxLjUgMCAzMSAyMy4xIDU3LjIgNTMuOSA2MWw0NC4xIDUuNSAyMjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODMuMSAwQzEwMyAyMDQuNiA5NiAxODEuOCA5NiAxNTcuNXpNMzQ5LjIgMzM2bDY1LjUgMGMuOSA2LjEgMS40IDEyLjIgMS40IDE4LjUgMCA2OS4zLTU2LjIgMTI1LjUtMTI1LjUgMTI1LjVMMTQ0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNDYuNSAwYzM0IDAgNjEuNS0yNy41IDYxLjUtNjEuNSAwLTYuNC0xLTEyLjctMi44LTE4LjV6Il19LFlfZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJibG9nIixpY29uOls1MTIsNTEyLFtdLCJmNzgxIiwiTTIyNCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxNDUuOCAwIDI2NCAxMTguMiAyNjQgMjY0IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTE5LjMtOTYuNy0yMTYtMjE2LTIxNi0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNODAgOTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyMjRjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OC0yMS41LTQ4LTQ4LTQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTYgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRTMjU1LjUgNTEyIDE3NiA1MTIgMzIgNDQ3LjUgMzIgMzY4bDAtMjI0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em0xNjggMGM5Mi44IDAgMTY4IDc1LjIgMTY4IDE2OCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTY2LjMtNTMuNy0xMjAtMTIwLTEyMC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxaX2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcHdhdGNoLTIwIixpY29uOls0NDgsNTEyLFtdLCJlMDZmIiwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptLTYwIDI0MGMwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUybDAgMy44YzAgMTEuNy0zLjIgMjMuMS05LjMgMzNsLTQzLjggNzEuMiAzMy4xIDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC01Ny44IDBjLTE0LjUgMC0yNi4yLTExLjctMjYuMi0yNi4yIDAtNC45IDEuMy05LjYgMy45LTEzLjhsNTYuNy05Mi4xYzIuMi0zLjYgMy40LTcuOCAzLjQtMTIuMWwwLTMuOGMwLTYuNi01LjQtMTItMTItMTJzLTEyIDUuNC0xMiAxMmMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjB6bTE4MC01MmMyOC43IDAgNTIgMjMuMyA1MiA1MmwwIDk2YzAgMjguNy0yMy4zIDUyLTUyIDUycy01Mi0yMy4zLTUyLTUybDAtOTZjMC0yOC43IDIzLjMtNTIgNTItNTJ6bS0xMiA1MmwwIDk2YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJsMC05NmMwLTYuNi01LjQtMTItMTItMTJzLTEyIDUuNC0xMiAxMnoiXX0sWF9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLXBpY2t1cCIsaWNvbjpbNjQwLDUxMixbMTI4NzYzXSwiZjYzYyIsIk0zNjMuOCA5Nmw1Ny42IDk2LTEzMy40IDAgMC05NiA3NS44IDB6TTQ5NiAxOTJMNDE4LjYgNjMuMUM0MDcuMSA0My44IDM4Ni4yIDMyIDM2My44IDMyTDI1NiAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjgtMTQ0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIuNCAwYy0uMiAyLjYtLjQgNS4zLS40IDggMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwxNjAuNyAwYy0uMiAyLjYtLjQgNS4zLS40IDggMCA0OC42IDM5LjQgODggODggODhzODgtMzkuNCA4OC04OGMwLTIuNy0uMS01LjQtLjQtOGwzMi40IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC04MGMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHpNMTEyIDM5MmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwem0zNzYtNDBhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxGTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZWVkbGluZyIsaWNvbjpbNTEyLDUxMixbMTI3NzkzLCJzcHJvdXQiXSwiZjRkOCIsIk01MTIgMzJDNTEyIDE0MC4xIDQzNS40IDIzMC4zIDMzMy42IDI1MS40IDMyNS43IDE5My4zIDI5OS42IDE0MSAyNjEuMSAxMDAuNSAzMDEuMiA0MCAzNjkuOSAwIDQ0OCAwbDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRsMzIgMGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0bDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwQzEwMC4zIDMyMCAwIDIxOS43IDAgOTZ6Il19LEtfZT1GTixPTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFuc2dlbmRlciIsaWNvbjpbNTc2LDUxMixbOTg5NSwidHJhbnNnZW5kZXItYWx0Il0sImYyMjUiLCJNMTI4LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDk3LjkgMzIgMTM2IDcwLjEgMTUxIDU1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMTUgMTUgMTQuMiAxNC4yYzI3LjktMjMuOCA2NC4yLTM4LjIgMTAzLjgtMzguMiAzNi43IDAgNzAuNiAxMi40IDk3LjYgMzMuMkw0NjYuNyAzMiA0NDggMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguNy04NC40IDg0LjRjMTMgMjMuMSAyMC40IDQ5LjkgMjAuNCA3OC4zIDAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMzUuMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zNS4yYy03My0xNC44LTEyOC03OS40LTEyOC0xNTYuOCAwLTMxLjQgOS02MC43IDI0LjctODUuNGwtMTYuNy0xNi43LTE1IDE1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDE1LTE1LTM4LjEtMzguMSAwIDMwLjFjMCAxNy43LTE0LjMgMzItMzIgMzJTMCAxMTMuNyAwIDk2TDAgMEMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwek0yODggMzM2YTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyeiJdfSxRX2U9T04sSl9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZiIsaWNvbjpbNTc2LDUxMixbNjE3MzFdLCJmMDg5IiwiTTMwNC4xIDcuNmMwLTExLjEtNy42LTIwLjctMTguNC0yMy4zcy0yMS45IDIuNS0yNyAxMi40TDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjkxIDQxNi4xYzgtNC4xIDEzLjEtMTIuNCAxMy4xLTIxLjRsMC0zODcuMXoiXX0sUk49e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvdG8tZmlsbSIsaWNvbjpbNjQwLDUxMixbInBob3RvLXZpZGVvIl0sImY4N2MiLCJNMTkyIDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDU3NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMjR6TTMyMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNTYuNSAxMS41QzQ3Mi4xIDEwMC40IDQ2NC40IDk2IDQ1NiA5NnMtMTYuMSA0LjQtMjAuNSAxMS41bC01NCA4OC4zLTE3LjktMjUuNmMtNC41LTYuNC0xMS44LTEwLjItMTkuNy0xMC4ycy0xNS4yIDMuOC0xOS43IDEwLjJsLTU2IDgwYy01LjEgNy4zLTUuOCAxNi45LTEuNiAyNC44UzI3OS4xIDI4OCAyODggMjg4bDI1NiAwYzguNyAwIDE2LjctNC43IDIwLjktMTIuM3M0LjEtMTYuOC0uNS0yNC4zbC04OC0xNDR6TTE0NCAxMjhsMCAxNjBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMTkyIDAgMCAxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDgwIDB6TTUyIDE5NmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAwem0wIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDB6Il19LGVUZT1STix0VGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGljdHVyZS1pbi1waWN0dXJlIixpY29uOls1MTIsNTEyLFtdLCJlODBiIiwiTTQ0OCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDExMi02NCAwIDAtMTEyLTM4NCAwIDAgMzIwIDE0NCAwIDAgNjQtMTQ0IDAtNi41LS4zYy0zMC4xLTMuMS01NC4xLTI3LTU3LjEtNTcuMUwwIDQxNiAwIDk2QzAgNjIuOSAyNS4yIDM1LjYgNTcuNSAzMi4zTDY0IDMyIDQ0OCAzMnptMTYgMjI0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xMjhjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYwIDB6Il19LGFUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdW1wLW1lZGljYWwiLGljb246WzMyMCw1MTIsW10sImUwNmEiLCJNOTYgMGwwIDgwIDEyOCAwIDAtMjQgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyA4IDI5NiA4bC03MiAwIDAtOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMEMxMTAuMy0zMiA5Ni0xNy43IDk2IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4em02NCAxMjBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LGlUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlIixpY29uOls0NDgsNTEyLFsxMjgyOTNdLCJmMDZkIiwiTTE2MC41LTI2LjRjOS4zLTcuOCAyMy03LjUgMzEuOSAuOSAxMi4zIDExLjYgMjMuMyAyNC40IDMzLjkgMzcuNCAxMy41IDE2LjUgMjkuNyAzOC4zIDQ1LjMgNjQuMiA1LjItNi44IDEwLTEyLjggMTQuMi0xNy45IDEuMS0xLjMgMi4yLTIuNyAzLjMtNC4xIDcuOS05LjggMTcuNy0yMi4xIDMwLjgtMjIuMSAxMy40IDAgMjIuOCAxMS45IDMwLjggMjIuMSAxLjMgMS43IDIuNiAzLjMgMy45IDQuOCAxMC4zIDEyLjQgMjQgMzAuMyAzNy43IDUyLjQgMjcuMiA0My45IDU1LjYgMTA2LjQgNTUuNiAxNzYuNiAwIDEyMy43LTEwMC4zIDIyNC0yMjQgMjI0UzAgNDExLjcgMCAyODhjMC05MS4xIDQxLjEtMTcwIDgwLjUtMjI1IDE5LjktMjcuNyAzOS43LTQ5LjkgNTQuNi02NS4xIDguMi04LjQgMTYuNS0xNi43IDI1LjUtMjQuMnpNMjI1LjcgNDE2YzI1LjMgMCA0Ny43LTcgNjguOC0yMSA0Mi4xLTI5LjQgNTMuNC04OC4yIDI4LjEtMTM0LjQtNC41LTktMTYtOS42LTIyLjUtMmwtMjUuMiAyOS4zYy02LjYgNy42LTE4LjUgNy40LTI0LjctLjUtMTcuMy0yMi4xLTQ5LjEtNjIuNC02NS4zLTgzLTUuNC02LjktMTUuMi04LTIxLjUtMS45LTE4LjMgMTcuOC01MS41IDU2LjgtNTEuNSAxMDQuMyAwIDY4LjYgNTAuNiAxMDkuMiAxMTMuNyAxMDkuMnoiXX0sQk49e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1wbHVzIixpY29uOls1MTIsNTEyLFsic2VhcmNoLXBsdXMiXSwiZjAwZSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTIwOCAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sclRlPUJOLHNUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFzayIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjMyIsIk0yODggMEwxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJzMTQuMyAzMiAzMiAzMkwxMjggMjE1LjUgNy41IDQyNi4zQzIuNiA0MzUgMCA0NDQuNyAwIDQ1NC43IDAgNDg2LjQgMjUuNiA1MTIgNTcuMyA1MTJsMzMzLjQgMGMzMS42IDAgNTcuMy0yNS42IDU3LjMtNTcuMyAwLTEwLTIuNi0xOS44LTcuNS0yOC40TDMyMCAyMTUuNSAzMjAgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzM3LjcgMCAzMjAgMEwyODggMHpNMTkyIDIxNS41bDAtMTUxLjUgNjQgMCAwIDE1MS41YzAgMTEuMSAyLjkgMjIuMSA4LjQgMzEuOGw0MS42IDcyLjctMTY0IDAgNDEuNi03Mi43YzUuNS05LjcgOC40LTIwLjYgOC40LTMxLjh6Il19LG5UZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1yaWdodCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzOCIsIk00NDggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMTkyIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxITj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWJsZS1jYXIiLGljb246WzUxMiw1MTIsWzEyODY3Myw1NzU1MSwidHJhbSJdLCJmN2RhIiwiTTI4OC0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE2MCAyNGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zMiAyODhjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTM2IDAgMC05Ni4yLTE5My40IDU1LjNjLTEyLjcgMy42LTI2LTMuNy0yOS43LTE2LjVzMy43LTI2IDE2LjUtMjkuN2wyMjQtNjQgMCAwIDIyNC02NGMxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC0yMDYuNiA1OSAwIDEwOS45IDEzNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNjB6bTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw1NiAwIDAtOTYtNTYgMHptMTg0IDk2bDAtOTYtODAgMCAwIDk2IDgwIDB6bTQ4IDBsNTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZsLTU2IDAgMCA5NnoiXX0sb1RlPUhOLHFOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpdC1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiZmlyc3QtYWlkIl0sImY0NzkiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYgMCAwLTM4NC0xNiAwem02NCAwbDAgMzg0IDI1NiAwIDAtMzg0LTI1NiAwek00NDggNDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xNiAwIDAgMzg0IDE2IDB6TTIyNCAxODRjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LGxUZT1xTixjVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcC1saW5lcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjdhNCIsIk0zMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMjg4em0wLTEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxNjB6Il19LFZOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cmdlciIsaWNvbjpbNTEyLDUxMixbImhhbWJ1cmdlciJdLCJmODA1IiwiTTQ4IDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDI4OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNkw0OCAzODR6TTMyIDIwMmMwIDEyLjIgOS45IDIyIDIyIDIyTDQ1OCAyMjRjMTIuMiAwIDIyLTkuOSAyMi0yMiAwLTE3LjItMi42LTM0LjQtMTAuOC00OS41LTIyLjItNDAuOC04Mi4zLTEyMC41LTIxMy4yLTEyMC41UzY1IDExMS42IDQyLjggMTUyLjVDMzQuNiAxNjcuNiAzMiAxODQuOCAzMiAyMDJ6TTAgMzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTI1NiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTEyMCAxMjhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjQ4LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sZFRlPVZOLHBUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93bWFuIixpY29uOls2NDAsNTEyLFs5NzMxLDk5MjRdLCJmN2QwIiwiTTQwMyAyMTEuN2MzMi4yLTI0LjkgNTMtNjMuOSA1My0xMDcuNyAwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNlMxODQgMjguOSAxODQgMTA0YzAgNDMuOSAyMC44IDgyLjkgNTMgMTA3LjctMzIuMiAxNi4zLTU5IDQxLjgtNzYuOCA3My4xTDExMiAyNjQuMiAxMTIgMjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTkuNi0yMi41LTkuN2MtMTIuMi01LjItMjYuMyAuNC0zMS41IDEyLjZzLjQgMjYuMyAxMi42IDMxLjVjMzYuMSAxNS41IDc1LjkgMzIuNSAxMTkuNCA1MS4yLTMuOSAxNC45LTYgMzAuNi02IDQ2LjcgMCA3MCAzOS4xIDEzMC44IDk2LjYgMTYxLjkgNy45IDQuMyAxNi45IDYuMSAyNS45IDYuMWwxMjMgMGM5IDAgMTgtMS44IDI1LjktNi4xIDU3LjUtMzEuMSA5Ni42LTkyIDk2LjYtMTYxLjkgMC0xNi4yLTIuMS0zMS44LTYtNDYuNyA0My41LTE4LjcgODMuNC0zNS43IDExOS40LTUxLjIgMTIuMi01LjIgMTcuOC0xOS4zIDEyLjYtMzEuNXMtMTkuMy0xNy44LTMxLjUtMTIuNmwtMjIuNSA5LjcgMC0xOS42YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAuMi00OC4yIDIwLjZjLTE3LjktMzEuMy00NC42LTU2LjgtNzYuOC03My4xek0yOTYgNDE2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTI0LTEyMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTI0OCA4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zNjggNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yOTIuMiAxNTkuM2MtMi43LTQuOC00LjItMTAuMi00LjItMTUuNyAwLTE3LjUgMTQuMi0zMS42IDMxLjYtMzEuNmwuOCAwYzE3LjUgMCAzMS42IDE0LjIgMzEuNiAzMS42IDAgNS41LTEuNCAxMC45LTQuMiAxNS43TDMyNyAxOTUuOGMtMy4xIDUuNC0xMC44IDUuNC0xMy45IDBsLTIwLjktMzYuNnoiXX0saFRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdGVsIixpY29uOls1MTIsNTEyLFsxMjc5NzZdLCJmNTk0IiwiTTE2IDI0QzE2IDEwLjcgMjYuNyAwIDQwIDBMNDcyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQxNiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNDAgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTQxNi04IDBDMjYuNyA0OCAxNiAzNy4zIDE2IDI0em0yMDggODhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTI4IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTk2IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMTEyIDIwOGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0yNDAtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDM4NGw0My44IDBjOS45IDAgMTcuNS05IDE0LTE4LjItMTMuOC0zNi4xLTQ4LjgtNjEuOC04OS43LTYxLjhzLTc1LjkgMjUuNy04OS43IDYxLjhjLTMuNSA5LjIgNC4xIDE4LjIgMTQgMTguMmw0My44IDAgMCA4MCA2NCAwIDAtODB6Il19LHVUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmludCIsaWNvbjpbNTEyLDUxMixbMTI4NDI0LDEyODQzOCw5MTEzXSwiZjAyZiIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzNDEuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQyLjUgNDIuNWMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgMzcuNS0zODQgMCAwLTgwek0wIDI1NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTEyOCA0MTZsMCAzMiAyNTYgMCAwLTk2LTI1NiAwIDAgNjR6TTQ1NiAyNzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sak49e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sbGV5YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTUyLCJ2b2xsZXliYWxsLWJhbGwiXSwiZjQ1ZiIsIk01MTIgMjU4LjljLTIzLjQgOC00Ny44IDEzLjEtNzIuNiAxNS4xIDUuOS05OC42LTMwLjctMTkxLjEtOTQuOS0yNTguMyA5Ny44IDM2IDE2Ny41IDEzMCAxNjcuNSAyNDAuMyAwIDEgMCAxLjkgMCAyLjl6bS01LjkgNTJjLTUuMiAyMy43LTEzLjYgNDYuMi0yNC45IDY2LjktOTQuNyA1Mi4yLTIxNCA1MC0zMDguNC0xMy42IDIxLjctMzEuMyA0OS44LTU4LjkgODMuOC04MC41IDc5LjUgNDEuNiAxNjguNSA0OS4xIDI0OS41IDI3LjF6TTI3OS43IDI0MS42Yy0zLjctODkuNy00MS43LTE3MC41LTEwMS4zLTIyOS43IDIyLjMtNy4xIDQ2LTExLjIgNzAuNS0xMS45IDkyLjUgNTUuOSAxNTAuMyAxNjAuMyAxNDIuNCAyNzMuOC0zOC0zLjItNzUuOS0xMy43LTExMS42LTMyLjN6TTEzMC41IDMyLjhDMTQ5LjEgNDkuMSAxNjUuOCA2Ny43IDE3OS45IDg4LjIgOTEuNSAxMzIuMyAyOS43IDIxMC4zIDMuNyAyOTkuNSAxLjMgMjg1LjMgMCAyNzAuOCAwIDI1NiAwIDE2MC4yIDUyLjYgNzYuNyAxMzAuNSAzMi44em03My40IDk3YzE2LjMgMzQuNSAyNi4xIDcyLjYgMjcuOSAxMTIuOC03NS44IDQ4LTEyNi44IDEyMS4zLTE0OC4zIDIwMi41LTE3LjYtMTYuMS0zMy0zNC42LTQ1LjUtNTUgMi4xLTEwOC4xIDYzLjctMjEwLjQgMTY1LjktMjYwLjN6TTI1NiA1MTJjLTQ3LjcgMC05Mi4zLTEzLTEzMC41LTM1LjcgNC44LTI0LjMgMTIuNi00OCAyMy4yLTcwLjQgODIuNCA1NC40IDE4MC44IDY4LjkgMjcxIDQ3LTQ0LjQgMzctMTAxLjUgNTkuMi0xNjMuNyA1OS4yeiJdfSxmVGU9ak4sbVRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWZmaWMtbGlnaHQiLGljb246WzMyMCw1MTIsWzEyODY3OF0sImY2MzciLCJNNjQtMzJDMjguNy0zMiAwLTMuMyAwIDMyTDAgMzg0YzAgODguNCA3MS42IDE2MCAxNjAgMTYwczE2MC03MS42IDE2MC0xNjBsMC0zNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQtMzJ6bTk2IDM5MmMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1Ni01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTZ6bTU2LTEwNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6TTE2MCAxNTJhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6Il19LGdUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NTUiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LHRnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzIixpY29uOls2NDAsNTEyLFtdLCJmMGMwIiwiTTMyMCAxNmExMDQgMTA0IDAgMSAxIDAgMjA4IDEwNCAxMDQgMCAxIDEgMC0yMDh6TTk2IDg4YTcyIDcyIDAgMSAxIDAgMTQ0IDcyIDcyIDAgMSAxIDAtMTQ0ek0wIDQxNmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCAxMi44IDAgMjUuMiAxLjkgMzYuOSA1LjQtMzIuOSAzNi44LTUyLjkgODUuNC01Mi45IDEzOC42bDAgMTZjMCAxMS40IDIuNCAyMi4yIDYuNyAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJ6bTUyMS4zIDY0YzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtMTZjMC01My4yLTIwLTEwMS44LTUyLjktMTM4LjYgMTEuNy0zLjUgMjQuMS01LjQgMzYuOS01LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtODYuNyAwek00NzIgMTYwYTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNMTYwIDQzMmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MHMxNjAgNzEuNiAxNjAgMTYwbDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2eiJdfSxiVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2VydGlmaWNhdGUiLGljb246WzU3Niw1MTIsW10sImYwYTMiLCJNMjM5LjItOGMtNi4xLTYuMi0xNS04LjctMjMuNC02LjRTMjAwLjktNS42IDE5OC44IDIuOEwxODMuNSA2M2MtMS4xIDQuNC01LjYgNy05LjkgNS43TDExMy44IDUxLjljLTguNC0yLjQtMTcuNCAwLTIzLjUgNi4xcy04LjUgMTUuMS02LjEgMjMuNWwxNi45IDU5LjhjMS4yIDQuMy0xLjQgOC44LTUuNyA5LjlMMzUuMSAxNjYuNWMtOC40IDIuMS0xNSA4LjctMTcuMyAxNy4xcy4yIDE3LjMgNi40IDIzLjRsNDQuNSA0My4zYzMuMiAzLjEgMy4yIDguMyAwIDExLjVMMjQuMyAzMDUuMWMtNi4yIDYuMS04LjcgMTUtNi40IDIzLjRzOC45IDE0LjkgMTcuMyAxNy4xbDYwLjIgMTUuM2M0LjQgMS4xIDcgNS42IDUuNyA5LjlMODQuMiA0MzAuNWMtMi40IDguNCAwIDE3LjQgNi4xIDIzLjVzMTUuMSA4LjUgMjMuNSA2LjFsNTkuOC0xNi45YzQuMy0xLjIgOC44IDEuNCA5LjkgNS43bDE1LjMgNjAuMmMyLjEgOC40IDguNyAxNSAxNy4xIDE3LjNzMTcuMy0uMiAyMy40LTYuNGw0My4zLTQ0LjVjMy4xLTMuMiA4LjMtMy4yIDExLjUgMEwzMzcuMyA1MjBjNi4xIDYuMiAxNSA4LjcgMjMuNCA2LjRzMTQuOS04LjkgMTcuMS0xNy4zTDM5My4xIDQ0OWMxLjEtNC40IDUuNi03IDkuOS01LjdsNTkuOCAxNi45YzguNCAyLjQgMTcuNCAwIDIzLjUtNi4xczguNS0xNS4xIDYuMS0yMy41bC0xNi45LTU5LjhjLTEuMi00LjMgMS40LTguOCA1LjctOS45bDYwLjItMTUuM2M4LjQtMi4xIDE1LTguNyAxNy4zLTE3LjFzLS4yLTE3LjQtNi40LTIzLjRsLTQ0LjUtNDMuM2MtMy4yLTMuMS0zLjItOC4zIDAtMTEuNWw0NC41LTQzLjNjNi4yLTYuMSA4LjctMTUgNi40LTIzLjRzLTguOS0xNC45LTE3LjMtMTcuMWwtNjAuMi0xNS4zYy00LjQtMS4xLTctNS42LTUuNy05LjlsMTYuOS01OS44YzIuNC04LjQgMC0xNy40LTYuMS0yMy41cy0xNS4xLTguNS0yMy41LTYuMUw0MDMgNjguOGMtNC4zIDEuMi04LjgtMS40LTkuOS01LjdMMzc3LjggMi44Yy0yLjEtOC40LTguNy0xNS0xNy4xLTE3LjNzLTE3LjMgLjItMjMuNCA2LjRMMjk0IDM2LjVjLTMuMSAzLjItOC4zIDMuMi0xMS41IDBMMjM5LjItOHoiXX0sdlRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsYXJtLWNsb2NrIixpY29uOls1MTIsNTEyLFs5MjAwXSwiZjM0ZSIsIk01MDQuNCAxMzIuNWMtNC41IDEwLjUtMTguNCA5LjgtMjQuOSAuNC0yNy44LTQwLTY2LjEtNzIuMi0xMTEtOTIuNi0xMC40LTQuNy0xMy43LTE4LjMtNC4xLTI0LjYgMTUtOS45IDMzLTE1LjcgNTIuMy0xNS43IDUyLjYgMCA5NS4yIDQyLjYgOTUuMiA5NS4yIDAgMTMuMi0yLjcgMjUuOC03LjYgMzcuM3ptLTQ3MS45IC40Yy02LjUgOS40LTIwLjUgMTAuMS0yNC45LS40LTQuOS0xMS41LTcuNi0yNC4xLTcuNi0zNy4zIDAtNTIuNiA0Mi42LTk1LjIgOTUuMi05NS4yIDE5LjMgMCAzNy4zIDUuOCA1Mi4zIDE1LjcgOS42IDYuMyA2LjMgMTkuOS00LjEgMjQuNi00NC44IDIwLjQtODMuMSA1Mi42LTExMSA5Mi42ek0zOTAuMiA0NjcuNEMzNTIuOCA0OTUuNCAzMDYuMyA1MTIgMjU2IDUxMnMtOTYuOC0xNi42LTEzNC4xLTQ0LjZMODYuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMzUuMi0zNS4yQzQ4LjYgMzg0LjggMzIgMzM4LjMgMzIgMjg4IDMyIDE2NC4zIDEzMi4zIDY0IDI1NiA2NFM0ODAgMTY0LjMgNDgwIDI4OGMwIDUwLjMtMTYuNiA5Ni44LTQ0LjYgMTM0LjJsMzUuMiAzNS4yYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC0zNS4yLTM1LjJ6TTI4MCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w1NiA1NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ5LTQ5IDAtOTQuMXoiXX0seVRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbGljb3B0ZXItc3ltYm9sIixpY29uOls1MTIsNTEyLFtdLCJlNTAyIiwiTTQ0NS40IDIyNGw2NC43IDBDNDk1LjYgMTA4LjIgNDAzLjggMTYuNCAyODggMmwwIDY0LjdDMzY4LjQgODAuMSA0MzEuOSAxNDMuNiA0NDUuNCAyMjR6TTUxMCAyODhsLTY0LjcgMEM0MzEuOSAzNjguNCAzNjguNCA0MzEuOSAyODggNDQ1LjNsMCA2NC43YzExNS44LTE0LjQgMjA3LjYtMTA2LjIgMjIyLTIyMnpNMiAyODhDMTYuNCA0MDMuOCAxMDguMiA0OTUuNiAyMjQgNTEwbDAtNjQuN0MxNDMuNiA0MzEuOSA4MC4yIDM2OC40IDY2LjcgMjg4TDIgMjg4em0wLTY0bDY0LjcgMEM4MC4yIDE0My42IDE0My42IDgwLjEgMjI0IDY2LjdMMjI0IDJDMTA4LjIgMTYuNCAxNi40IDEwOC4yIDIgMjI0em0yMDYtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDk2IDAgMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjQtOTYgMCAwLTY0eiJdfSxVTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LWNyYWNrIixpY29uOls1MTIsNTEyLFsiaG91c2UtZGFtYWdlIl0sImY2ZjEiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEwNS42IDAtMzguNC02NCA4MC44LTY3LjNjNy44LTYuNSA3LjYtMTguNi0uNC0yNC45TDIxOC42IDI2My4yYy0xNC42LTExLjUtMzMuOCA3LTIyLjggMjJMMjU2IDM2OCAxNzAuNSA0MzkuMmMtNi4xIDUtNy41IDEzLjgtMy41IDIwLjVsMzEuMyA1Mi4yLTg2LjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4eiJdfSx4VGU9VU4sd1RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1taWxpdGFyeS1wb2ludGluZyIsaWNvbjpbNTEyLDUxMixbXSwiZTU0YSIsIk0yMTQuOSAxNC4xQzIwMiAxNS4yIDE5MiAyNiAxOTIgMzkgMTkyIDUyLjggMjAzLjIgNjQgMjE3IDY0bDE1MSAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMwLjZDMzg0IDggMzc2IC43IDM2Ni43IDEuNEwyMTQuOSAxNC4xek0yMDggMTEyYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC01LjUtLjYtMTAuOC0xLjYtMTZMMjA5LjYgOTZjLTEgNS4yLTEuNiAxMC41LTEuNiAxNnpNNDAgMjI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDE1MiAwIDAgODkuNCAxNjIuOC0xNjIuOGMtMTMuMy00LjMtMjcuMy02LjUtNDEuNi02LjVMNDAgMjI0em0zNDUuNyAyMC45bC0xNzEuMSAxNzEuMSAxNjkuNCAwIDAtNDYuMyA1My42IDkwLjZjMTEuMiAxOSAzNS44IDI1LjMgNTQuOCAxNC4xczI1LjMtMzUuOCAxNC4xLTU0LjhMNDMwLjMgMjkwLjhjLTExLjItMTktMjYuNi0zNC41LTQ0LjYtNDUuOXpNMTkyIDQ0OGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzItMTkyIDB6Il19LE1UZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkYXRhYmFzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjFjMCIsIk00NDggMjA1LjhjLTE0LjggOS44LTMxLjggMTcuNy00OS41IDI0LTQ3IDE2LjgtMTA4LjcgMjYuMi0xNzQuNSAyNi4yUzk2LjQgMjQ2LjUgNDkuNSAyMjkuOGMtMTcuNi02LjMtMzQuNy0xNC4yLTQ5LjUtMjRMMCAyODhjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODBsMC04Mi4yem0wLTc3LjhsMC00OEM0NDggMzUuOCAzNDcuNyAwIDIyNCAwUzAgMzUuOCAwIDgwbDAgNDhjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODB6TTM5OC41IDM4OS44QzM1MS42IDQwNi41IDI4OS45IDQxNiAyMjQgNDE2Uzk2LjQgNDA2LjUgNDkuNSAzODkuOGMtMTcuNi02LjMtMzQuNy0xNC4yLTQ5LjUtMjRMMCA0MzJjMCA0NC4yIDEwMC4zIDgwIDIyNCA4MHMyMjQtMzUuOCAyMjQtODBsMC02Ni4yYy0xNC44IDkuOC0zMS44IDE3LjctNDkuNSAyNHoiXX0selRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ld3NwYXBlciIsaWNvbjpbNTEyLDUxMixbMTI4MjQwXSwiZjFlYSIsIk0wIDQxNkwwIDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHpNMTYwIDEyOGwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTI0IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQwIDB6bS0yNC03MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwyNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zNjAgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDB6Il19LGtUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1yYWluIixpY29uOls1MTIsNTEyLFsxMjc3ODMsOTkyNl0sImY3M2QiLCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yLTEuMy02LjctMS45LTEzLjctMS45LTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTIgNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwIDE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjggNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOC0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bTEuNiA2OC4yYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNmwzMC4yLTY4LjJ6bTE1MiAwYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNmwzMC4yLTY4LjJ6bTEyMS44IDY4LjJsMzAuMi02OC4yYzEuMS0yLjUgMy42LTQuMiA2LjQtNC4yczUuMyAxLjYgNi40IDQuMmwzMC4yIDY4LjJjMi4yIDUuMSAzLjQgMTAuNSAzLjQgMTYgMCAyMS45LTE4LjEgMzkuNi00MCAzOS42cy00MC0xNy43LTQwLTM5LjZjMC01LjUgMS4yLTExIDMuNC0xNnoiXX0sV049e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWF4aW1pemUiLGljb246WzQ0OCw1MTIsWyJleHBhbmQtYXJyb3dzLWFsdCJdLCJmMzFlIiwiTTE2OCAzMkwyNCAzMkMxMC43IDMyIDAgNDIuNyAwIDU2TDAgMjAwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDIyMy44IDQxIDIxN2w0MC00MCA3OSA3OS03OSA3OS00MC00MGMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMwIDMwMi4zIDAgMzEyTDAgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDAtNDAgNzktNzkgNzkgNzktNDAgNDBjLTYuOSA2LjktOC45IDE3LjItNS4yIDI2LjJTMjcwLjMgNDgwIDI4MCA0ODBsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4ycy0xOS4zLTEuNy0yNi4yIDUuMmwtNDAgNDAtNzktNzkgNzktNzkgNDAgNDBjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMlM0NDggMjA5LjcgNDQ4IDIwMGwwLTE0NGMwLTEzLjMtMTAuNy0yNC0yNC0yNEwyODAgMzJjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOFMyNTYuMiA2Ni4xIDI2MyA3M2w0MCA0MC03OSA3OS03OS03OSA0MC00MGM2LjktNi45IDguOS0xNy4yIDUuMi0yNi4yUzE3Ny43IDMyIDE2OCAzMnoiXX0sU1RlPVdOLENUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1hcnJvdyIsaWNvbjpbNTEyLDUxMixbXSwiZjEyNCIsIk00NzcuOSA3NS41YzQuNS0xMS44IDEuNy0yNS4yLTcuMi0zNC4xcy0yMi4zLTExLjgtMzQuMS03LjJsLTQxNiAxNjBDNy45IDE5OS0uMyAyMTEuMiAwIDIyNC43czkuMSAyNS40IDIxLjkgMjkuNmwxNzYuOCA1OC45IDU4LjkgMTc2LjhjNC4zIDEyLjggMTYuMSAyMS42IDI5LjYgMjEuOXMyNS43LTcuOSAzMC42LTIwLjVsMTYwLTQxNnoiXX0sX1RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpdHkiLGljb246WzU3Niw1MTIsWzEyNzk2MV0sImY2NGYiLCJNMzIwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzItNDggMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzItNjQgMCAwLTcyQzk2IDEwLjcgODUuMyAwIDcyIDBTNDggMTAuNyA0OCAyNGwwIDc0Yy0yNy42IDcuMS00OCAzMi4yLTQ4IDYyTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwIDAtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDMyMCAwem02NCAxMTJsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnptLTE2IDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6bTE2IDExMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2em0xMTItMTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHpNMjU2IDMwNGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2ek0yNDAgMTkyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6TTEyOCAzMDRsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNMTEyIDE5MmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAweiJdfSxUVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieC1yYXkiLGljb246WzUxMiw1MTIsW10sImY0OTciLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDMyMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHptMjgwIDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwIDAgNDgtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwIDAgNDgtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDAgMC00OCA4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwIDAtNDggNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMCAwLTE2eiJdfSxMVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW1icmVsbGEtYmVhY2giLGljb246WzUxMiw1MTIsWzEyNzk1OF0sImY1Y2EiLCJNNDk3LjUgMzQxLjFjLTUuOSAxNi43LTI1LjMgMjMtNDEuMSAxNS4xbC0xNzguMi04OS4xLTEuNiAzLjItODguOCAxNzcuNyAyOTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4NC4yIDAgMTAzLjItMjA2LjMgMS42LTMuMi0xNjUuNC04Mi43Yy0xNS44LTcuOS0yMi40LTI3LjMtMTIuNS00MiA0NS45LTY4LjYgMTI0LjEtMTEzLjggMjEyLjktMTEzLjggMTQxLjQgMCAyNTYgMTE0LjYgMjU2IDI1NiAwIDI5LjgtNS4xIDU4LjUtMTQuNSA4NS4xeiJdfSxHTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC10by1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1pbiJdLCJmMDkwIiwiTTM1MiA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0tOS40IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wyNDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LCRUZT1HTixBVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZHNldCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5MCIsIk0yMjQgNjRjLTc5IDAtMTQ0LjcgNTcuMy0xNTcuNyAxMzIuNyA5LjMtMyAxOS4zLTQuNyAyOS43LTQuN2wxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC02NEMwIDEwMC4zIDEwMC4zIDAgMjI0IDBTNDQ4IDEwMC4zIDQ0OCAyMjRsMCAxNjguMWMwIDY2LjMtNTMuOCAxMjAtMTIwLjEgMTIwbC04Ny45LS4xLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDAgNDAgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTIwLjljLTE0LjEgOC4yLTMwLjUgMTIuOC00OCAxMi44bC0xNiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDBjMTAuNCAwIDIwLjMgMS42IDI5LjcgNC43LTEzLTc1LjMtNzguNi0xMzIuNy0xNTcuNy0xMzIuN3oiXX0sRFRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwbG90Y2giLGljb246WzUxMiw1MTIsW10sImY1YmMiLCJNMjA4LjUgNjIuM2wyOC4xLTM2LjlDMjQ4LjggOS40IDI2Ny44IDAgMjg4IDAgMzE2LjUgMCAzNDEuNiAxOC43IDM0OS44IDQ2bDE3LjggNTkuNGMxMC4zIDM0LjQgMzYuMSA2MiA2OS44IDc0LjZsMzkuOCAxNC45YzIwLjkgNy45IDM0LjggMjcuOSAzNC44IDUwLjIgMCAxNi45LTcuOSAzMi44LTIxLjUgNDIuOWwtNjcuMyA1MC41Yy0yNC4zIDE4LjItMzcuMiA0Ny45LTMzLjggNzguMWwyLjUgMjIuN2M0LjMgMzguNy0yNiA3Mi42LTY1IDcyLjYtMTQuOCAwLTI5LjMtNS4xLTQwLjktMTQuM2wtNTUuMy00NC4zYy00LjUtMy42LTkuMy02LjctMTQuNS05LjItMTUuOC03LjktMzMuNy0xMC40LTUxLTcuM0w4Mi40IDQ1MS45Yy0zNC42IDYuMy02Ni40LTIwLjMtNjYuNC01NS40IDAtMTMuMiA0LjctMjYgMTMuMS0zNi4ybDExLjItMTMuNGMxNC42LTE3LjQgMjIuNi0zOS40IDIyLjYtNjIuMSAwLTE4LjgtNS41LTM3LjItMTUuOC01M0w4LjggMTczLjVDMy4xIDE2NC43IDAgMTU0LjQgMCAxNDMuOSAwIDExMC41IDMwLjEgODUuMSA2MyA5MC43bDUxLjMgOC43YzM1LjkgNi4xIDcyLjItOC4yIDk0LjItMzcuMXoiXX0sWU49e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctYWx0LXVwIl0sImYzMGMiLCJNMTM3LjQtMjIuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMwMC45IDE2MCAyODggMTYwbC02NCAwIDAgMzM2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMzNi02NCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44Uy4yIDExNC41IDkuNCAxMDUuNGwxMjgtMTI4eiJdfSxFVGU9WU4sUFRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24tbm9kZXMiLGljb246WzQ0OCw1MTIsW10sImU2OTkiLCJNMjQ4IDEwNi42YzE4LjktOSAzMi0yOC4zIDMyLTUwLjZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMi44IDEuMy01LjUgMi45LTggNC43bC04MC4xLTQ1LjhjMS42LTIwLjgtOC42LTQxLjYtMjcuOS01Mi44QzU3LjIgOTYgMjMgMTA1LjIgNy41IDEzMlMxLjIgMTkzIDI4IDIwOC41YzEuMyAuOCAyLjYgMS41IDQgMi4xbDAgOTAuOGMtMS4zIC42LTIuNyAxLjMtNCAyLjFDMS4yIDMxOS04IDM1My4yIDcuNSAzODBTNTcuMiA0MTYgODQgNDAwLjVjMTkuMy0xMS4xIDI5LjQtMzIgMjcuOC01Mi44bDUwLjUtMjguOWMtMTEuNS0xMS4yLTE5LjktMjUuNi0yMy44LTQxLjdMODggMzA2LjFjLTIuNi0xLjgtNS4yLTMuMy04LTQuN2wwLTkwLjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtLjEgMS40LS4yIDIuOC0uMiA0LjNjMCAyMi4zIDEzLjEgNDEuNiAzMiA1MC42bDAgOTguOGMtMTguOSA5LTMyIDI4LjMtMzIgNTAuNmMwIDMwLjkgMjUuMSA1NiA1NiA1NnM1Ni0yNS4xIDU2LTU2YzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4LjhjMi44LTEuMyA1LjUtMi45IDgtNC43bDgwLjEgNDUuOGMtMS42IDIwLjggOC42IDQxLjYgMjcuOCA1Mi44YzI2LjggMTUuNSA2MSA2LjMgNzYuNS0yMC41czYuMy02MS0yMC41LTc2LjVjLTEuMy0uOC0yLjctMS41LTQtMi4xbDAtOTAuOGMxLjQtLjYgMi43LTEuMyA0LTIuMWMyNi44LTE1LjUgMzYtNDkuNyAyMC41LTc2LjVTMzkwLjggOTYgMzY0IDExMS41Yy0xOS4zIDExLjEtMjkuNCAzMi0yNy44IDUyLjhsLTUwLjYgMjguOWMxMS41IDExLjIgMTkuOSAyNS42IDIzLjggNDEuN0wzNjAgMjA1LjljMi42IDEuOCA1LjIgMy4zIDggNC43bDAgOTAuOGMtMi44IDEuMy01LjUgMi45LTggNC42bC04MC4xLTQ1LjhjLjEtMS40IC4yLTIuOCAuMi00LjNjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOHoiXX0sbG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9zcGl0YWwiLGljb246WzU3Niw1MTIsWzEyNzk3Myw2MjU4OSwiaG9zcGl0YWwtYWx0IiwiaG9zcGl0YWwtd2lkZSJdLCJmMGY4IiwiTTEyOCA2NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDAtNjR6TTI3MiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAgOTYgMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwek0xMjggMzY4bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTExMiAyNTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHpNNTEyIDM2OGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTI2NCAxMDRsMCAzMi0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LElUZT1sbSxOVGU9bG0sRlRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oYXJhc3NpbmciLGljb246WzU3Niw1MTIsW10sImU1NDkiLCJNMTkyIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNTkuNCAzMDQuNUw4OCAyNTYuOSA4OCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDQuNyA0Ny40IDU3LjFjMTEuMyAxMy42IDMxLjUgMTUuNSA0NS4xIDQuMnMxNS41LTMxLjUgNC4yLTQ1LjFsLTczLjctODguOWMtMTguMi0yMi00NS4zLTM0LjctNzMuOS0zNC43bC0zNS45IDBjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45ek00ODAgMjQwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ2NCAzNDRsMCA1OC43LTQxLjQtNDEuNGMtNy4zLTcuMy0xNy42LTEwLjYtMjcuOC05cy0xOC45IDguMS0yMy41IDE3LjNsLTQ4IDk2Yy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsMjguMS01Ni4zIDU0LjcgNTQuN2MxMi40IDEyLjQgMjkuMSAxOS4zIDQ2LjYgMTkuMyAzNi40IDAgNjUuOS0yOS41IDY1LjktNjUuOUw1NzYgMzQ0YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2ek0yODggNDhjMCA4LjggNy4yIDE2IDE2IDE2bDU2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLS44IDQ5LjdjLTcuOS00LTE3LjUtLjctMjEuNSA3LjJzLS43IDE3LjUgNy4yIDIxLjVsNDggMjRjNy45IDQgMTcuNSAuNyAyMS41LTcuMnMuNy0xNy41LTcuMi0yMS41bC00OC0yNHoiXX0sT1RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJlbmQtdXAiLGljb246WzUxMiw1MTIsW10sImU1MjkiLCJNNDgwIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRMMzU0LjItMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDMuOSAwLTExMS4zIDExMS4zLTk1LjEtODEuNWMtOS03LjctMjIuMi03LjctMzEuMiAwbC0xMTIgOTZjLTEwLjEgOC42LTExLjIgMjMuOC0yLjYgMzMuOHMyMy44IDExLjIgMzMuOCAyLjZsOTYuNC04Mi42IDk2LjQgODIuNmM5LjUgOC4yIDIzLjcgNy42IDMyLjYtMS4zbDEyNy0xMjcgMCA0My45YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRMNDgwIDh6TTQ4IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNjBjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMjU2em00Ny4zIDU2Yy0zLjQgMjAuMS0xOS4yIDM2LTM5LjQgMzkuNC00LjQgLjctOC0yLjktOC03LjNsMC0zMmMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4LjEgMy42IDcuMyA4em0wIDE0NC4xYy43IDQuNC0yLjkgOC03LjMgOGwtMzIgMGMtNC40IDAtOC0zLjYtOC04bDAtMzJjMC00LjQgMy42LTguMSA4LTcuMyAyMC4xIDMuNCAzNiAxOS4yIDM5LjQgMzkuNHpNNDU2IDQxNi43YzQuNC0uNyA4IDIuOSA4IDcuM2wwIDMyYzAgNC40LTMuNiA4LTggOGwtMzIgMGMtNC40IDAtOC4xLTMuNi03LjMtOCAzLjQtMjAuMSAxOS4yLTM2IDM5LjQtMzkuNHpNNDE2LjcgMzEyYy0uNy00LjQgMi45LTggNy4zLThsMzIgMGM0LjQgMCA4IDMuNiA4IDhsMCAzMmMwIDQuNC0zLjYgOC4xLTggNy4zLTIwLjEtMy40LTM2LTE5LjItMzkuNC0zOS40ek0xOTIgMzg0YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sWk49e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLXJ1bGVyIixpY29uOls1MTIsNTEyLFsicGVuY2lsLXJ1bGVyIl0sImY1YWUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTU4LjkgMzE1LjFMMjc0LjEgMTAwIDQxMiAyMzcuOSAxOTYuOSA0NTMuMWMtMTAuNyAxMC43LTI0LjEgMTguNS0zOC43IDIyLjZMMzAuNCA1MTEuMWMtOC4zIDIuMy0xNy4zIDAtMjMuNC02LjJzLTguNS0xNS4xLTYuMi0yMy40TDM2LjQgMzUzLjhjNC4xLTE0LjYgMTEuOC0yNy45IDIyLjYtMzguN3pNMjI1LjQgODAuOEw4MC44IDIyNS40IDExLjcgMTU2LjNjLTE1LjYtMTUuNi0xNS42LTQwLjkgMC01Ni42bDg4LTg4YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwbDUuOSA1LjktNTYuMyA1Ni4zYy03LjggNy44LTcuOCAyMC41IDAgMjguM3MyMC41IDcuOCAyOC4zIDBsNTYuMy01Ni4zIDM0LjkgMzQuOXpNNDMxLjIgMjg2LjZsMzQuOSAzNC45LTU2LjMgNTYuM2MtNy44IDcuOC03LjggMjAuNSAwIDI4LjNzMjAuNSA3LjggMjguMyAwbDU2LjMtNTYuMyA1LjkgNS45YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC04OCA4OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBsLTY5LjEtNjkuMSAxNDQuNi0xNDQuNnoiXX0sUlRlPVpOLEJUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXBlYXQiLGljb246WzUxMiw1MTIsWzEyODI1N10sImYzNjMiLCJNNDcwLjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMzNTIgMTkuMSAzNTIgMzJsMCAzMi0xNjAgMEM4NiA2NCAwIDE1MCAwIDI1NiAwIDI3My43IDE0LjMgMjg4IDMyIDI4OHMzMi0xNC4zIDMyLTMyYzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDE2MCAwIDAgMzJjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWw2NC02NHpNNDEuNCAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlTMTYwIDQ5Mi45IDE2MCA0ODBsMC0zMiAxNjAgMGMxMDYgMCAxOTItODYgMTkyLTE5MiAwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMTYwIDAgMC0zMmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtNjQgNjR6Il19LEhUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib25lIixpY29uOls2NDAsNTEyLFsxMjk0NjBdLCJmNWQ3IiwiTTE5Ny40IDE2MGMtMy45IDAtNy4yLTIuOC04LjEtNi42LTEwLjItNDIuMS00OC4xLTczLjQtOTMuMy03My40LTUzIDAtOTYgNDMtOTYgOTYgMCAyOS4xIDEyLjkgNTUuMSAzMy4zIDcyLjcgNC4zIDMuNyA0LjMgMTAuOCAwIDE0LjUtMjAuNCAxNy42LTMzLjMgNDMuNy0zMy4zIDcyLjcgMCA1MyA0MyA5NiA5NiA5NiA0NS4yIDAgODMuMS0zMS4zIDkzLjMtNzMuNCAuOS0zLjggNC4yLTYuNiA4LjEtNi42bDI0NS4xIDBjMy45IDAgNy4yIDIuOCA4LjEgNi42IDEwLjIgNDIuMSA0OC4xIDczLjQgOTMuMyA3My40IDUzIDAgOTYtNDMgOTYtOTYgMC0yOS4xLTEyLjktNTUuMS0zMy4zLTcyLjctNC4zLTMuNy00LjMtMTAuOCAwLTE0LjUgMjAuNC0xNy42IDMzLjMtNDMuNyAzMy4zLTcyLjcgMC01My00My05Ni05Ni05Ni00NS4yIDAtODMuMSAzMS4zLTkzLjMgNzMuNC0uOSAzLjgtNC4yIDYuNi04LjEgNi42bC0yNDUuMSAweiJdfSxYTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWZsYW1lLWN1cnZlZCIsaWNvbjpbMzg0LDUxMixbImZpcmUtYWx0Il0sImY3ZTQiLCJNMTUzLjYgMjkuOWwxNi0yMS4zQzE3My42IDMuMiAxODAgMCAxODYuNyAwIDE5OC40IDAgMjA4IDkuNiAyMDggMjEuM2wwIDIyLjFjMCAxMy4xIDUuNCAyNS43IDE0LjkgMzQuN0wzMDcuNiAxNTlDMzU2LjQgMjA1LjYgMzg0IDI3MC4yIDM4NCAzMzcuNyAzODQgNDM0IDMwNiA1MTIgMjA5LjcgNTEyTDE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwbDAtMy44YzAtNDguOCAxOS40LTk1LjYgNTMuOS0xMzAuMWwzLjUtMy41YzQuMi00LjIgMTAtNi42IDE2LTYuNiAxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNkw5NiAyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGwwLTMuOWMwLTE4LTcuMi0zNS4zLTE5LjktNDhsLTM4LjYtMzguNmMtMjQtMjQtMzcuNS01Ni43LTM3LjUtOTAuNyAwLTI3LjcgOS01NC44IDI1LjYtNzYuOXoiXX0scVRlPVhOLEtOPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cy1zaW1wbGUiLGljb246WzQ0OCw1MTIsWyJidXMtYWx0Il0sImY1NWUiLCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM4NGMwIDI5LjggMjAuNCA1NC45IDQ4IDYybDAgMzRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE5MiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM0YzI3LjYtNy4xIDQ4LTMyLjIgNDgtNjJsMC0yODhjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTk2IDMyMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTI1NiAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sVlRlPUtOLGpUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZW51cy1tYXJzIixpY29uOls2NDAsNTEyLFs5ODkyXSwiZjIyOCIsIk00ODAtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyUzQ2Mi4zIDAgNDgwIDBMNTMwLjcgMCA0NzQgNTYuN2MtMjYuMy0xNS43LTU3LjEtMjQuNy05MC0yNC43LTM1LjQgMC02OC40IDEwLjUtOTYgMjguNS0yNy42LTE4LTYwLjYtMjguNS05Ni0yOC41LTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMWwwIDM0LjktMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0zNC45YzIzLjMtNC4zIDQ0LjktMTMuMSA2NC0yNS42IDI3LjYgMTggNjAuNiAyOC41IDk2IDI4LjUgOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzYgMC00MS4xLTE0LjEtNzktMzcuOC0xMDlMNTc2IDQ1LjMgNTc2IDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMNDgwLTY0ek0zMzYgMzA5LjJjMjAuMi0yOC42IDMyLTYzLjUgMzItMTAxLjJzLTExLjgtNzIuNi0zMi0xMDEuMmMxNC42LTYuOSAzMC44LTEwLjggNDgtMTAuOCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM0NDUuOSAzMjAgMzg0IDMyMGMtMTcuMiAwLTMzLjUtMy45LTQ4LTEwLjh6TTI4OCAxNTAuM2MxMC4yIDE2LjkgMTYgMzYuNiAxNiA1Ny43cy01LjggNDAuOS0xNiA1Ny43Yy0xMC4yLTE2LjktMTYtMzYuNi0xNi01Ny43czUuOC00MC45IDE2LTU3Ljd6bS00OC00My41Yy0yMC4yIDI4LjYtMzIgNjMuNS0zMiAxMDEuMnMxMS44IDcyLjYgMzIgMTAxLjJjLTE0LjUgNi45LTMwLjggMTAuOC00OCAxMC44LTYxLjkgMC0xMTItNTAuMS0xMTItMTEyUzEzMC4xIDk2IDE5MiA5NmMxNy4yIDAgMzMuNSAzLjkgNDggMTAuOHoiXX0sVVRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJsZW5kZXIiLGljb246WzUxMiw1MTIsW10sImY1MTciLCJNMCA1NkMwIDI1LjEgMjUuMSAwIDU2IDBMNDM3LjYgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw0NTcuMSA4MCAzNDQgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwLTkuMS05Ni02Mi45IDBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgNTZ6TTExNC4zIDE5MkwxMDAuNiA0OCA1NiA0OGMtNC40IDAtOCAzLjYtOCA4bDAgMTI4YzAgNC40IDMuNiA4IDggOGw1OC4zIDB6TTEzNiAzODRsMjQwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQwIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6bTEyMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LFdUZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1IixpY29uOlszODQsNTEyLFsxMTddLCI1NSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIyNGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyMjRjMCAxMDYtODYgMTkyLTE5MiAxOTJTMCAzOTQgMCAyODhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnoiXX0scjg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUiLGljb246WzUxMiw1MTIsWyJtYWlsLWZvcndhcmQiXSwiZjA2NCIsIk0zMDcuOCAxOC40Yy0xMiA1LTE5LjggMTYuNi0xOS44IDI5LjZsMCA4MC0xMTIgMGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCAxMTMuMyA4MS41IDE2My45IDEwMC4yIDE3NC4xIDIuNSAxLjQgNS4zIDEuOSA4LjEgMS45IDEwLjkgMCAxOS43LTguOSAxOS43LTE5LjcgMC03LjUtNC4zLTE0LjQtOS44LTE5LjUtOS40LTguOC0yMi4yLTI2LjQtMjIuMi01Ni43IDAtNTMgNDMtOTYgOTYtOTZsOTYgMCAwIDgwYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02Ljl6Il19LEdUZT1yOCxRTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZS1mbGlwIixpY29uOls1MTIsNTEyLFsxMjgzODEsInBob25lLWFsdCJdLCJmODc5IiwiTTM1MS44IDI1YzcuOC0xOC44IDI4LjQtMjguOSA0OC4xLTIzLjVsNS41IDEuNWM2NC42IDE3LjYgMTE5LjggODAuMiAxMDMuNyAxNTYuNC0zNy4xIDE3NS0xNzQuOCAzMTIuNy0zNDkuOCAzNDkuOC03Ni4zIDE2LjItMTM4LjgtMzkuMS0xNTYuNC0xMDMuN2wtMS41LTUuNWMtNS40LTE5LjcgNC43LTQwLjMgMjMuNS00OC4xbDk3LjMtNDAuNWMxNi41LTYuOSAzNS42LTIuMSA0NyAxMS44bDM4LjYgNDcuMmM3MC4zLTM0LjkgMTI2LjgtOTMuMyAxNTkuMy0xNjQuOWwtNDQuMS0zNi4xYy0xMy45LTExLjMtMTguNi0zMC40LTExLjgtNDdMMzUxLjggMjV6Il19LFlUZT1RTixaVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0LXBvcnRhYmxlIixpY29uOlszMjAsNTEyLFtdLCJlNTgzIiwiTTAgNjRsMCAxNiAzMjAgMCAwLTE2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0em0yNCA2NEwwIDEyOCAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAyMjQgMCAwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTM2MC0yOTYgMHptMjI0IDk2bDI0IDAgMCA5Ni0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxYVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXByZWduYW50IixpY29uOlszODQsNTEyLFtdLCJlMzFlIiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptODAgMzIxLjJjOC42LTQuNSAxNi44LTEwIDI0LjMtMTYuNWw0LTMuNGMyMi42LTE5LjQgMzUuNy00Ny43IDM1LjctNzcuNiAwLTM1LjktMTguOC02OS4xLTQ5LjYtODcuNmwtMzAuNC0xOC4yIDAtMS44YzAtNDYuNS0zNy43LTg0LjEtODQuMS04NC4xLTI4LjEgMC01NC40IDE0LjEtNzAgMzcuNUwyMS40IDI3MC4yYy05LjggMTQuNy01LjggMzQuNiA4LjkgNDQuNHMzNC42IDUuOCA0NC40LTguOWwyOS00My41LTMwLjUgMTEzLjVjLTIuNiA5LjYtLjYgMTkuOSA1LjUgMjcuOFM5NCA0MTYgMTA0IDQxNmw4IDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMzIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTAuOHoiXX0sS1RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbiIsaWNvbjpbNTEyLDUxMixbNjI3NzRdLCIzYyIsIk00NzcuMSA1MC42YzcuNCAxNiAuNCAzNS4xLTE1LjYgNDIuNUwxMDguNCAyNTYgNDYxLjQgNDE5YzE2IDcuNCAyMyAyNi40IDE1LjYgNDIuNXMtMjYuNCAyMy00Mi41IDE1LjZsLTQxNi0xOTJDNy4zIDI3OS44IDAgMjY4LjUgMCAyNTZTNy4zIDIzMi4yIDE4LjYgMjI3bDQxNi0xOTJjMTYtNy40IDM1LjEtLjQgNDIuNSAxNS42eiJdfSxRVGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VwZXJzY3JpcHQiLGljb246WzU3Niw1MTIsW10sImYxMmIiLCJNNTQ0IDMyYzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40bC0zMiAxNkM0NDkuOSAyNy4zIDQ0My41IDQ2LjUgNDUxLjQgNjIuMyA0NTcgNzMuNSA0NjguMyA4MCA0ODAgODBsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4ek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmwxNS4zIDAgODkuNiAxMjgtODkuNiAxMjgtMTUuMyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTAuNCAwIDIwLjItNS4xIDI2LjItMTMuNkwyNDAgMzExLjggMzI1LjggNDM0LjRjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNS4zIDAtODkuNi0xMjggODkuNi0xMjggMTUuMyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xMC40IDAtMjAuMiA1LjEtMjYuMiAxMy42TDI0MCAyMDAuMiAxNTQuMiA3Ny42QzE0OC4yIDY5LjEgMTM4LjQgNjQgMTI4IDY0TDk2IDY0eiJdfSxKTj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtc3RvcCIsaWNvbjpbNTEyLDUxMixbNjIwOTQsInN0b3AtY2lyY2xlIl0sImYyOGQiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAxNjBsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sSlRlPUpOLGVGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy11cC1kb3duIixpY29uOlsyNTYsNTEyLFsiYXJyb3dzLXYiXSwiZjA3ZCIsIk0xNTAuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgNzcuMyA5NiA0MzQuNyA1NC42IDM5My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRzMTYuNi0zLjQgMjIuNi05LjRsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTQxLjQgNDEuNCAwLTM1Ny41IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnoiXX0sZUxlPWVGLHRGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvby1zdG9ybSIsaWNvbjpbNTEyLDUxMixbInBvby1ib2x0Il0sImY3NWEiLCJNMjY4LjktMzEuOGMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjNjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMSAwIDIxLjctOC41IDM3LjItMjEuOSA0Ny42LTEzLjkgMTAuOC0zNC4xIDE3LTU4LjEgMTdsLTI0IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4IDAgMTQuOCAzLjcgMjguOCAxMC4yIDQxLjEtNDIgNi42LTc0LjIgNDMtNzQuMiA4Ni45IDAgNDYuNiAzNi4yIDg0LjcgODEuOSA4Ny44IDMuMS0xMi40IDkuOS0yMy44IDE5LjYtMzIuNUwyNDIuNyAyMjVjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43bC0xMi43IDQyLjRjMjguOCAxLjIgNTIuNyAyMS4xIDU5LjggNDcuOWwyNi4yIDBjNDguNiAwIDg4LTM5LjQgODgtODggMC00My45LTMyLjEtODAuMy03NC4yLTg2LjkgNi41LTEyLjMgMTAuMi0yNi4yIDEwLjItNDEuMSAwLTQ4LjYtMzkuNC04OC04OC04OGwtOS40IDBjLjktNS40IDEuNC0xMC45IDEuNC0xNi42IDAtNDguNy0zNi4xLTg4LjktODMuMS05NS4yek0xNDQuNiA0MTZsNjEuOCAwLTMxLjIgMTA0LjFjLTMuNiAxMS45IDUuMyAyMy45IDE3LjggMjMuOSA0LjYgMCA5LTEuNyAxMi40LTQuN0wzNDYuNSA0MTIuOWMzLjUtMy4xIDUuNS03LjYgNS41LTEyLjQgMC05LjItNy40LTE2LjYtMTYuNi0xNi42bC02MS44IDAgMzEuMi0xMDQuMWMzLjYtMTEuOS01LjMtMjMuOS0xNy44LTIzLjktNC42IDAtOSAxLjctMTIuNCA0LjdMMTMzLjUgMzg3LjFjLTMuNSAzLjEtNS41IDcuNi01LjUgMTIuNCAwIDkuMiA3LjQgMTYuNiAxNi42IDE2LjZ6Il19LHRMZT10RixhTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlkZW8tc2xhc2giLGljb246WzU3Niw1MTIsW10sImY0ZTIiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTUzLTE1MyAwLTIyMi4yYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOS44IDY0IDQxLTI0Ljl6TTMyIDEyOGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGM3LjggMCAxNS4zLTEuNCAyMi4yLTRMMzYgMTA1LjhjLTIuNiA2LjktNCAxNC40LTQgMjIuMnpNNDY0IDMzNmw3My41IDU4LjhjNC4yIDMuNCA5LjQgNS4yIDE0LjggNS4yIDEzLjEgMCAyMy43LTEwLjYgMjMuNy0yMy43bDAtMjQwLjZjMC0xMy4xLTEwLjYtMjMuNy0yMy43LTIzLjctNS40IDAtMTAuNiAxLjgtMTQuOCA1LjJMNDY0IDE3NiA0NjQgMzM2eiJdfSxjbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUteG1hcmsiLGljb246WzQ0OCw1MTIsWzEwMDYyLCJ0aW1lcy1zcXVhcmUiLCJ4bWFyay1zcXVhcmUiXSwiZjJkMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LGlMZT1jbSxyTGU9Y20sYUY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWRyb3BsZXQiLGljb246WzU3Niw1MTIsWyJoYW5kLWhvbGRpbmctd2F0ZXIiXSwiZjRjMSIsIk0yNzUuNSA2LjZMMjA5LjIgMTAzQzE5OCAxMTkuMyAxOTIgMTM4LjYgMTkyIDE1OC4zbDAgMS43YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xLjdjMC0xOS44LTYtMzktMTcuMi01NS4zTDMwMC41IDYuNkMyOTcuNyAyLjUgMjkzIDAgMjg4IDBzLTkuNyAyLjUtMTIuNSA2LjZ6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSxzTGU9YUYsZG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToid29uLXNpZ24iLGljb246WzUxMiw1MTIsWzgzNjEsImtydyIsIndvbiJdLCJmMTU5IiwiTTYyLjQgNTMuOUM1Ni44IDM3LjEgMzguNyAyOC4xIDIxLjkgMzMuNlMtMy45IDU3LjQgMS43IDc0LjFMNTYuOSAyNDAgMzIgMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwLjkgMCA1Ni43IDE3MC4xYzQuNSAxMy41IDE3LjQgMjIuNCAzMS42IDIxLjlzMjYuNC0xMC40IDI5LjgtMjQuMkwyMzMgMjg4IDI3OSAyODggMzIxIDQ1NS44YzMuNCAxMy44IDE1LjYgMjMuNyAyOS44IDI0LjJzMjcuMS04LjQgMzEuNi0yMS45TDQzOS4xIDI4OCA0ODAgMjg4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNC45IDAgNTUuMy0xNjUuOWM1LjYtMTYuOC0zLjUtMzQuOS0yMC4yLTQwLjVzLTM0LjkgMy41LTQwLjUgMjAuMmwtNjIgMTg2LjEtNTQuNiAwLTQ1LjktMTgzLjhDMjgzLjUgNDIgMjcwLjcgMzIgMjU2IDMycy0yNy41IDEwLTMxIDI0LjJMMTc5IDI0MCAxMjQuNCAyNDAgNjIuNCA1My45em03OCAyMzQuMWwyNi42IDAtMTEuNCA0NS42LTE1LjItNDUuNnpNMjQ1IDI0MGwxMS00NC4xIDExIDQ0LjEtMjIgMHptMTAwIDQ4bDI2LjYgMC0xNS4yIDQ1LjYtMTEuNC00NS42eiJdfSxuTGU9ZG0sb0xlPWRtLGxMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvYmplY3QtdW5ncm91cCIsaWNvbjpbNjQwLDUxMixbXSwiZjI0OCIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwyMDkuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMTEzLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTIwOS4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMTEzLjF6TTExOS40IDk2Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjRsMCAxMTMuMWM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRsMjA5LjEgMGM1LjYtOS43IDEzLjctMTcuOCAyMy40LTIzLjRsMC0xMTMuMWMtOS43LTUuNi0xNy44LTEzLjctMjMuNC0yMy40TDExOS40IDk2ek01NDQgMjc5LjRjLTkuNy01LjYtMTcuOC0xMy43LTIzLjQtMjMuNGwtMjkuMiAwYy01LjMtMTcuNy0xNC44LTMzLjUtMjcuNC00Ni40bDAtMTcuNiA1Ni42IDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCAxMTMuMWMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjA5LjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNC42IDY0IDAgMCAyNC42YzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTExMy4xeiJdfSxjTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudCIsaWNvbjpbNTEyLDUxMixbMTI4NDg5LDYxNjY5XSwiZjA3NSIsIk01MTIgMjQwYzAgMTMyLjUtMTE0LjYgMjQwLTI1NiAyNDAtMzcuMSAwLTcyLjMtNy40LTEwNC4xLTIwLjdMMzMuNSA1MTAuMWMtOS40IDQtMjAuMiAxLjctMjcuMS01LjhTLTIgNDg1LjggMi44IDQ3Ni44bDQ4LjgtOTIuMkMxOS4yIDM0NC4zIDAgMjk0LjMgMCAyNDAgMCAxMDcuNSAxMTQuNiAwIDI1NiAwUzUxMiAxMDcuNSA1MTIgMjQweiJdfSxkTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlsbC1hdmFsYW5jaGUiLGljb246WzU3Niw1MTIsW10sImU1MDciLCJNNDQwLjEgNDAxLjljMzQuMiAyMy4xIDgxLjEgMTkuNSAxMTEuNC0xMC44IDM0LjQtMzQuNCAzNC40LTkwLjEgMC0xMjQuNS0yNy44LTI3LjgtNjkuNS0zMy4xLTEwMi42LTE2LTExLjggNi4xLTE2LjQgMjAuNi0xMC4zIDMyLjNzMjAuNiAxNi40IDMyLjMgMTAuM2MxNS4xLTcuOCAzNC01LjMgNDYuNiA3LjMgMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTgxLjctODEuN2MyMi4zLTE0LjIgMzcuMS0zOS4xIDM3LjEtNjcuNSAwLTMzLjktMjEuMS02Mi45LTUwLjktNzQuNSAxLjktNi44IDIuOS0xNCAyLjktMjEuNSAwLTQ0LjItMzUuOC04MC04MC04MC0yNy4zIDAtNTEuNSAxMy43LTY1LjkgMzQuNi01LjgtMjAtMjQuMi0zNC42LTQ2LjEtMzQuNi0yNi41IDAtNDggMjEuNS00OCA0OCAwIDQgLjUgNy45IDEuNCAxMS42TDQ0MC4xIDQwMS45ek00ODAuNCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wIDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTY4LjcgODdDNDMuNSA2MS44IC40IDc5LjcgLjQgMTE1LjNMLjQgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguNyA4N3oiXX0scExlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1leWUiLGljb246WzY0MCw1MTIsW10sImU0YmYiLCJNMTc2IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzguMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTMjEuNyA1NS42IDMxIDY1bDYzIDYzLTM4LjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtOTZ6bTAgNDAwbDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzguMSAwLTYzIDYzYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNjMtNjMgMCAzOC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6bTMxMiAyNGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTM4LjEgNjMgNjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02My02MyAzOC4xIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjR6TTQ2NCA1NmwwIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTM4LjEgMCA2My02M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC02MyA2MyAwLTM4LjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6TTMyMCAxMjBjLTU3LjMgMC05OS40IDM0LTEyNS42IDY0LjMtMjAgMjMuMS0zMi40IDQ1LjgtMzcuNiA1Ni4xLTIuNSA1LTQuOSA5LjctNC45IDE1LjZzMi4zIDEwLjYgNC45IDE1LjZjNS4yIDEwLjMgMTcuNiAzMyAzNy42IDU2LjEgMjYuMiAzMC4zIDY4LjIgNjQuMyAxMjUuNiA2NC4zczk5LjQtMzQgMTI1LjYtNjQuM2MyMC0yMy4xIDMyLjQtNDUuOCAzNy42LTU2LjEgMi41LTUgNC45LTkuNyA0LjktMTUuNnMtMi4zLTEwLjYtNC45LTE1LjZjLTUuMi0xMC4zLTE3LjYtMzMtMzcuNi01Ni4xLTI2LjItMzAuMy02OC4yLTY0LjMtMTI1LjYtNjQuM3pNMjU2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LGhMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93cGxvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjdkMiIsIk0xMjggMTYwbDAtOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjk2LjQgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw4Ny42IDE3NS4xYzQuNCA4LjkgNi44IDE4LjcgNi44IDI4LjZsMCA1Ni45IDgwIDAgMC04MGMwLTQ4LjYgMzkuNC04OCA4OC04OCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAyMDhjMCAyMi4xIDE3LjkgNDAgNDAgNDAgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4bDAtODAtNjMgMGM5LjUgMTYuNSAxNSAzNS42IDE1IDU2IDAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0yMjQgMGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTIgMC0zMC41IDEyLjItNTguMiAzMi03OC40TDY0IDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHptOTEuNyAzNC45bDQzLjYgMjkuMSAxMTMuMiAwLTgwLTE2MC0xMDQuNCAwIDAgMTA4LjggMjcuNyAyMi4xek00MTYgNDAwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OHptLTI4MCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTIxNi0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTIzMiA0MDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sdUxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWdhbnR0IixpY29uOls1MTIsNTEyLFtdLCJlMGU0IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2TDY0IDY0em05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTY0IDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDB6TTM4NCAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHoiXX0saUY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlkZW8iLGljb246WzU3Niw1MTIsWyJ2aWRlby1jYW1lcmEiXSwiZjAzZCIsIk05NiA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgNjR6TTQ2NCAzMzZsNzMuNSA1OC44YzQuMiAzLjQgOS40IDUuMiAxNC44IDUuMiAxMy4xIDAgMjMuNy0xMC42IDIzLjctMjMuN2wwLTI0MC42YzAtMTMuMS0xMC42LTIzLjctMjMuNy0yMy43LTUuNCAwLTEwLjYgMS44LTE0LjggNS4yTDQ2NCAxNzYgNDY0IDMzNnoiXX0sZkxlPWlGLG1MZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1wYXduIixpY29uOlszODQsNTEyLFs5ODIzXSwiZjQ0MyIsIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy04LjkgNTEuOS0yNCA3MiAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTAuNyAwIDI2LjcgMTYwIDU2LjIgNzAuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUw1MS41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMODAgMzg0IDEwNi43IDIyNCA5NiAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjLTE1LjEtMjAuMS0yNC00NS0yNC03MiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHoiXX0sZ0xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN5bmFnb2d1ZSIsaWNvbjpbNTc2LDUxMixbMTI4MzMzXSwiZjY5YiIsIk0xNiA4MGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzItMTI4IDAgMC0zMnptMCAzNjhsMC0yODggMTI4IDAgMTI2LjItODQuMmMxMC43LTcuMiAyNC44LTcuMiAzNS41IDBsMTI2LjIgODQuMiAxMjggMCAwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0ek01NjAgMTEybC0xMjggMCAwLTMyYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMnpNMjI0IDM4NGwwIDgwIDEyOCAwIDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjR6bTY0LTE1MmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LGJMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU0ZDIiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtNzQuOSAwIDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMyIDAgNCAuMiA1LjkgLjUgNi0yMy42IDE2LjMtNDUuNCAzMC4xLTY0LjVsLTQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNGMyNy41LTE5LjggNjAuMy0zMi40IDk2LTM1LjRMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sdkxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXBsdXMiLGljb246WzQ0OCw1MTIsW10sImYyNzEiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDgtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwIDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQ4IDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sckY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlZWxjaGFpci1tb3ZlIixpY29uOls0NDgsNTEyLFsid2hlZWxjaGFpci1hbHQiXSwiZTJjZSIsIk0zMTIgNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0yMDUuNCAxMjQuMWMtNi40LTUuMi0xNS42LTQuNy0yMS40IDEuMWwtMzMuNCAzMy40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxMzguOCA4MGMyOS0yOSA3NS4yLTMxLjQgMTA3LTUuNWw4MS4zIDY2YzIxLjQgMTcuNCAyMy44IDQ5LjIgNS4yIDY5LjVsLTQxLjggNDYgOTggMGMzMC4zIDAgNTMgMjcuNyA0Ny4xIDU3LjRMNDA3LjQgNDU0LjNjLTMuNSAxNy4zLTIwLjMgMjguNi0zNy43IDI1LjFzLTI4LjYtMjAuMy0yNS4xLTM3LjdMMzY5IDMyMCAzMTYuOCAzMjBjMi4xIDEwLjMgMy4yIDIxIDMuMiAzMiAwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQ0MC40IDAgMzUyIDcxLjYgMTkyIDE2MCAxOTJjNiAwIDExLjkgLjMgMTcuOCAxbDUwLjQtNTAuNC0yMi43LTE4LjV6TTE2MCA0NDhhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6Il19LHlMZT1yRix4TGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zaGllbGQiLGljb246WzU3Niw1MTIsW10sImY1MDUiLCJNMjI0IDI0OGExMjAgMTIwIDAgMSAwIDAtMjQwIDEyMCAxMjAgMCAxIDAgMCAyNDB6bS0yOS43IDU2Qzk1LjggMzA0IDE2IDM4My44IDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDI1MS41IDBDMjYxIDQ2OS40IDI0MCA0MTQuNSAyNDAgMzU2LjRsMC0zMS4xYzAtNy4zIDEtMTQuNSAyLjktMjEuM2wtNDguNiAwem0yNTEgMTg0LjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAweiJdfSx3TGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9sZCIsaWNvbjpbMzg0LDUxMixbXSwiZjAzMiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzIgMCAwIDMyMC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIyNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDYuNS0yNC44LTg3LjMtNjItMTA5LjcgMTguNy0yMi4zIDMwLTUxIDMwLTgyLjMgMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTI4OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDAgMC0xMjggOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHpNMTI4IDQxNmwwLTEyOCAxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTI4IDB6Il19LHNGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LXB1bHNlIixpY29uOls1MTIsNTEyLFsiaGVhcnRiZWF0Il0sImYyMWUiLCJNMjU2IDEwNy45TDI0MSA4Ny4xQzIxNiA1Mi41IDE3NS45IDMyIDEzMy4xIDMyIDU5LjYgMzIgMCA5MS42IDAgMTY1LjFsMCAyLjZjMCAyMy42IDYuMiA0OCAxNi42IDcyLjNsMTA2IDBjMy4yIDAgNi4xLTEuOSA3LjQtNC45bDMxLjgtNzYuM2MzLjctOC44IDEyLjMtMTQuNiAyMS44LTE0LjhzMTguMyA1LjQgMjIuMiAxNC4xbDUxLjMgMTEzLjkgNDEuNC04Mi44YzQuMS04LjEgMTIuNC0xMy4zIDIxLjUtMTMuM3MxNy40IDUuMSAyMS41IDEzLjNsMjMuMiA0Ni4zYzEuNCAyLjcgNC4xIDQuNCA3LjIgNC40bDEyMy42IDBjMTAuNS0yNC4zIDE2LjYtNDguNyAxNi42LTcyLjNsMC0yLjZDNTEyIDkxLjYgNDUyLjQgMzIgMzc4LjkgMzIgMzM2LjIgMzIgMjk2IDUyLjUgMjcxIDg3LjFsLTE1IDIwLjd6TTQ2OS42IDI4OGwtOTcuOCAwYy0yMS4yIDAtNDAuNi0xMi01MC4xLTMxbC0xLjctMy40LTQyLjUgODUuMWMtNC4xIDguMy0xMi43IDEzLjUtMjIgMTMuM3MtMTcuNi01LjctMjEuNC0xNC4xbC00OS4zLTEwOS41LTEwLjUgMjUuMmMtOC43IDIwLjktMjkuMSAzNC41LTUxLjcgMzQuNWwtODAuMiAwYzQ3LjIgNzMuOCAxMjMgMTQxLjcgMTcwLjQgMTc3LjkgMTIuNCA5LjQgMjcuNiAxNC4xIDQzLjEgMTQuMXMzMC44LTQuNiA0My4xLTE0LjFDMzQ2LjYgNDI5LjcgNDIyLjQgMzYxLjggNDY5LjYgMjg4eiJdfSxNTGU9c0YsbkY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXJvb3QtdmFyaWFibGUiLGljb246WzU3Niw1MTIsWyJzcXVhcmUtcm9vdC1hbHQiXSwiZjY5OCIsIk0yODIuNiA3OC4xYzgtMjcuMyAzMy00Ni4xIDYxLjQtNDYuMWwyMDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzNDQgOTYgMjM4LjcgNDU3Yy0zLjYgMTIuMy0xNC4xIDIxLjItMjYuOCAyMi44cy0yNS4xLTQuNi0zMS41LTE1LjZMNzcuNiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1LjYgMGMyMi44IDAgNDMuOCAxMi4xIDU1LjMgMzEuOGw2NS4yIDExMS44IDg0LjQtMjg5LjV6TTM5My40IDIzMy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDQxLjQgNDEuNCA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtNDEuNCA0MS40IDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNDEuNC00MS40LTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6Il19LHpMZT1uRixvRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1idWJibGVzIixpY29uOls1MTIsNTEyLFsiaGFuZHMtd2FzaCJdLCJlMDVlIiwiTTM4NCA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTk2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTEyOCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMCAxNjBsLjEgNzIuNmMwIDQ0LjggMTcuNiA4Ny4xIDQ3LjkgMTE4LjQgLjMtNzcgNDAuMS0xNDguNCAxMDUuNC0xODkuM2wxLjktMS4yYy0yLjUtMy43LTIuOC04LjYtLjQtMTIuN2w2Mi0xMDcuNGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOFMxODIgNSAxNzUuNCAxNi41bC02OCAxMTcuOCAwIDAgMCAwLTQzLjMgNzUgMC00OS4zYzAtMTcuNy0xNC40LTMyLTMyLTMyUzAgMTQyLjQgMCAxNjB6bTIxMy42LTM1LjljMTQuMS04LjggMjkuOC0xMi43IDQ1LjItMTIuMWwzNi41LTYzLjNjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44bC02Ny4xIDExNi4yIDI3LTE2Ljl6bTg2LjUtMzUuN2wtMTYuNCAyOC40YzE1LjEgNS41IDI4LjYgMTUuNiAzOC4zIDI5LjdsMTkuNy0zNC4yYzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHptNDYuNCA2My43bC0xMi41IDIxLjdjMiA4LjYgMi41IDE3LjUgMS43IDI2LjFsNC4zIDAgMCAwIDM0LjQgMCAxMy43LTIzLjhjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44ek0yODMuMSAxNzVjLTkuNC0xNS0yOS4xLTE5LjUtNDQuMS0xMC4ybC02MC4yIDM3LjZDMTI3LjMgMjM0LjcgOTYgMjkxLjIgOTYgMzUybDAgOGMwIDguOSAuOCAxNy42IDIuMiAyNi4xIDM1LjQgOC4yIDYxLjggNDAgNjEuOCA3Ny45IDAgNi4zLS43IDEyLjUtMi4xIDE4LjQgMjUuMiAxOC42IDU2LjQgMjkuNiA5MC4xIDI5LjZsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTkyIDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEyNCAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDE1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNTYgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTM2IDAgMCAwIDAgMC05My4yIDAgNDYuMi0yOC45YzE1LTkuNCAxOS41LTI5LjEgMTAuMi00NC4xeiJdfSxrTGU9b0YsU0xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcmtlciIsaWNvbjpbNTEyLDUxMixbXSwiZjVhMSIsIk00MDguOCAwYy0yNy40IDAtNTMuNiAxMC45LTczIDMwLjJMMzE4LjEgNDggMzA1IDM0LjljLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMEwxMDMgMTM1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBMMjM3LjEgNjguOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwyODQuMSA4MS45IDE4NCAxODIuMSAzMjkuOSAzMjggNDgxLjggMTc2LjJjMTkuNC0xOS40IDMwLjItNDUuNiAzMC4yLTczIDAtNTctNDYuMi0xMDMuMi0xMDMuMi0xMDMuMnpNMTAyLjQgMjYzLjdjLTQ5LjkgNDkuOS04My4zIDExNC05NS41IDE4My41TC40IDQ4My44Qy0xIDQ5MS42IDEuNSA0OTkuNCA3IDUwNXMxMy40IDggMjEuMSA2LjdsMzYuNy02LjVjNjkuNS0xMi4zIDEzMy42LTQ1LjYgMTgzLjUtOTUuNUwyOTYgMzYxLjkgMTUwLjEgMjE2IDEwMi40IDI2My43eiJdfSxDTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkIixpY29uOlszODQsNTEyLFsxMjgyMDNdLCJmMzI4IiwiTTMyMCAzMmwtOC42IDBDMzAwLjQgMTIuOSAyNzkuNyAwIDI1NiAwTDEyOCAwQzEwNC4zIDAgODMuNiAxMi45IDcyLjYgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NHpNMTM2IDExMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDB6Il19LF9MZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFjZS1vZi13b3JzaGlwIixpY29uOls1MTIsNTEyLFtdLCJmNjdmIiwiTTE2MCA3OWwwIDgxLTQ0LjggMzMuNkMxMDMuMSAyMDIuNyA5NiAyMTYuOSA5NiAyMzJsMCA0MC02MC42IDMwLjNDMTMuNyAzMTMuMiAwIDMzNS4zIDAgMzU5LjZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjQgNzQuNyAwIDg1LjQgMCAzMjAgMGw2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODguNGMwLTI0LjItMTMuNy00Ni40LTM1LjQtNTcuMkw0MTYgMjcyIDQxNiAyMzJjMC0xNS4xLTcuMS0yOS4zLTE5LjItMzguNEwzNTIgMTYwIDM1MiA3OWMwLTkuNS00LjItMTguNS0xMS41LTI0LjZMMjcxLjQtMy4yYy04LjktNy40LTIxLjgtNy40LTMwLjcgMEwxNzEuNSA1NC40QzE2NC4yIDYwLjUgMTYwIDY5LjUgMTYwIDc5em05NiAyNDFjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4MC0xMjggMCAwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxUTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FubmFiaXMiLGljb246WzUxMiw1MTIsW10sImY1NWYiLCJNMjU2IDBjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjEgMTUuOCAyMy41IDM2LjcgNjMuNyA0OS4yIDEwOSA3LjMgMjYuNCAxMS44IDU1LjMgMTAuMyA4NCAxMS42LTguOSAyMy43LTE2LjcgMzUuOS0yMy43IDQxLTIzLjMgODQuNC0zNi45IDExMi4yLTQyLjUgNS4yLTEgMTAuNyAuNiAxNC40IDQuNHM1LjQgOS4yIDQuNCAxNC41Yy01LjYgMjcuNy0xOS4zIDcwLjktNDIuNyAxMTEuNy05LjEgMTUuOS0xOS45IDMxLjctMzIuNSA0Ni4zIDI3LjkgNi42IDUyLjUgMTcuMiA2Ny4zIDI1LjQgNS4xIDIuOCA4LjIgOC4yIDguMiAxNHMtMy4yIDExLjItOC4yIDE0Yy0xNS4yIDguNC00MC45IDE5LjUtNjkuOCAyNi4xLTIwLjIgNC42LTQyLjkgNy4yLTY1LjIgNC42bDguMyAzMy4yYzEuNSA2LjEtLjYgMTIuNS01LjUgMTYuNHMtMTEuNiA0LjYtMTcuMiAxLjhMMjgwIDQxNy4yIDI4MCA0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03MC44LTU4LjUgMjkuMWMtNS42IDIuOC0xMi4zIDIuMS0xNy4yLTEuOHMtNy0xMC4zLTUuNS0xNi40bDguMy0zMy4yYy0yMi4yIDIuNi00NSAwLTY1LjItNC42LTI4LjktNi42LTU0LjUtMTcuNi02OS44LTI2LjEtNS4xLTIuOC04LjItOC4yLTguMi0xNHMzLjItMTEuMiA4LjItMTRsNi4yLTMuM2MxNS03LjYgMzYuOC0xNi40IDYxLjEtMjIuMi0xMi41LTE0LjUtMjMuMy0zMC40LTMyLjQtNDYuMi0yMy40LTQwLjgtMzcuMS04NC00Mi43LTExMS43LTEuMS01LjIgLjYtMTAuNyA0LjQtMTQuNXM5LjItNS40IDE0LjQtNC40YzI3LjkgNS41IDcxLjIgMTkuMiAxMTIuMiA0Mi41IDEyLjIgNi45IDI0LjMgMTQuOCAzNS44IDIzLjctMS40LTI4LjcgMy4xLTU3LjYgMTAuMy04NCAxMi41LTQ1LjMgMzMuNC04NS41IDQ5LjItMTA5bDEuMi0xLjZDMjQ2LjkgMiAyNTEuMyAwIDI1NiAweiJdfSxMTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLXJvb2YiLGljb246WzU3Niw1MTIsW10sImU1MzciLCJNMzAyLjMtMTIuNmMtOS00LjUtMTkuNi00LjUtMjguNiAwbC0yNTYgMTI4QzEuOSAxMjMuMy00LjUgMTQyLjUgMy40IDE1OC4zczI3LjEgMjIuMiA0Mi45IDE0LjNMMjg4IDUxLjggNTI5LjcgMTcyLjZjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45bC0yNTYtMTI4ek0yODggMjcyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0wIDQ4Yy01MyAwLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTUzLTQzLTk2LTk2LTk2ek0xNjAgMjU2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTExMiAzMzZjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMzMuMWMwIDE3IDEzLjggMzAuOSAzMC45IDMwLjlsODcuOCAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTQ4YzAtMTguNCAzLjUtMzYgOS44LTUyLjItMTIuMi03LjUtMjYuNS0xMS44LTQxLjgtMTEuOHpNNDI1LjQgNDgwbDg3LjggMGMxNyAwIDMwLjktMTMuOCAzMC45LTMwLjlsMC0zMy4xYzAtNDQuMi0zNS44LTgwLTgwLTgwLTE1LjMgMC0yOS42IDQuMy00MS44IDExLjggNi4zIDE2LjIgOS44IDMzLjggOS44IDUyLjJsMCA0OGMwIDExLjQtMi40IDIyLjItNi43IDMyeiJdfSwkTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzZWFzZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdmYSIsIk0yMzYuNSAyOS40TDIyNCA0OGMtMjAgMzAtNTMuNiA0OC04OS43IDQ4TDY4IDk2Yy0zNy41IDAtNjcuOSAzMC40LTY3LjkgNjcuOSAwIDE4IDcuMiAzNS4yIDE5LjkgNDcuOWwyNyAyN2MxMSAxMSAxNy4yIDI1LjkgMTcuMiA0MS41IDAgMTUuOC02LjQgMzAuOS0xNy43IDQyTDMzLjQgMzM1LjFjLTExLjEgMTAuOC0xNy4zIDI1LjctMTcuMyA0MS4yIDAgMzYuOCAzNC4xIDY0LjIgNzAuMSA1Ni4ybDYyLjMtMTMuOGM3LjctMS43IDE1LjctMi42IDIzLjYtMi42IDMyLjggMCA2NC4yIDE0LjYgODUuMiAzOS44bDMwLjUgMzYuNmMxMC40IDEyLjQgMjUuNyAxOS42IDQxLjkgMTkuNiAzMC4xIDAgNTQuNS0yNC40IDU0LjUtNTQuNWwwLTUxLjJjMC00MS40IDI1LjQtNzguNSA2NC05My41bDIyLjItOC42YzI1LjItOS44IDQxLjgtMzQuMSA0MS44LTYxLjEgMC0yNi40LTE1LjktNTAuMy00MC4zLTYwLjVMNDI5IDE2NC44Yy0zMy4yLTEzLjktNTcuNi00My02NS41LTc4LjFsLTcuOS0zNS4yYy02LjgtMzAuMS0zMy41LTUxLjUtNjQuMy01MS41LTIyIDAtNDIuNiAxMS01NC44IDI5LjR6TTE2MCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sbEY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1iaWJsZSIsaWNvbjpbNDQ4LDUxMixbImJpYmxlIl0sImY2NDciLCJNOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5NiA1MTJ6bTAtMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6TTE5MiA4MGwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwIDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTExMiA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxBTGU9bEYsRExlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDNjIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDY0bDAgNjQgNjQgMCAwLTY0IDY0IDAgMCA2NCA2NCAwIDAtNjQgNjQgMCAwIDY0LTY0IDAgMCA2NCA2NCAwIDAgNjQtNjQgMCAwIDY0IDY0IDAgMCA2NC02NCAwIDAtNjQtNjQgMCAwIDY0LTY0IDAgMC02NC02NCAwIDAgNjQtNjQgMCAwLTY0IDY0IDAgMC02NC02NCAwIDAtNjQgNjQgMCAwLTY0LTY0IDAgMC02NCA2NCAwem02NCAxMjhsNjQgMCAwLTY0LTY0IDAgMCA2NHptMCA2NGwwLTY0LTY0IDAgMCA2NCA2NCAwem02NCAwbC02NCAwIDAgNjQgNjQgMCAwLTY0em0wIDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sRUxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMiLGljb246WzUxMiw1MTIsWzk3OTRdLCJmMjIyIiwiTTMyMCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkw0ODAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTUwLjctOTUgOTVjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOCAwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMzMiA0MDEuMiAzMiAzMDQgMTEwLjggMTI4IDIwOCAxMjhjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw5NS05NS01MC43IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yMDggNDE2YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHoiXX0sUExlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcCIsaWNvbjpbNjQwLDUxMixbMTI4MTg3XSwiZjEwOSIsIk0xMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2bDAgMjQwIDY0IDAgMC0yNDAgMzg0IDAgMCAyNDAgNjQgMCAwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwxMjggMzJ6TTE5LjIgMzg0QzguNiAzODQgMCAzOTIuNiAwIDQwMy4yIDAgNDQ1LjYgMzQuNCA0ODAgNzYuOCA0ODBsNDg2LjQgMGM0Mi40IDAgNzYuOC0zNC40IDc2LjgtNzYuOCAwLTEwLjYtOC42LTE5LjItMTkuMi0xOS4yTDE5LjIgMzg0eiJdfSxjRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXhtYXJrIixpY29uOls1NzYsNTEyLFsidXNlci10aW1lcyJdLCJmMjM1IiwiTTI1NC4xIDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0Ni4xIDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjNsNTkuNCAwek01MzAuMyAxMDguMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOXpNMjI0LjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHoiXX0sSUxlPWNGLE5MZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLXVzYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc0ZCIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMzYuMS00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTIwLjMtOS00MS44LTE0LjctNjMuNi0xNi45bDAgMzIuMmMxNy40IDIuMSAzNC40IDYuNyA1MC42IDEzLjlsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCA2Mi00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNsLTYzLjUgMTMuNiAwIDMyLjcgNzAuMi0xNS4xYzM2LjQtNy44IDc0LjMtMy45IDEwOC40IDExLjNsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCA2MS45LTQ0LjcgMTYuMmMtNDIuOCAxNS42LTkwIDEzLjktMTMxLjYtNC42bC0xNi4xLTcuMmMtNDAuMi0xNy45LTg1LTIyLjUtMTI4LjEtMTMuM2wtNjMuNSAxMy42IDAgMzIuNyA3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40bDMzLjctMTIuMyAwIDMzLjVjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgNDAwIDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwem04MCA5NmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptLTMyIDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTMyIDBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxGTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1taWRkbGUtZmluZ2VyIixpY29uOls0NDgsNTEyLFsxMjg0MDVdLCJmODA2IiwiTTIzMiAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDE2NC4yYy04LjUtNy42LTE5LjctMTIuMi0zMi0xMi4yLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC01NS43Yy0yIDEuNC0zLjkgMy01LjggNC41TDU1IDI4NC44QzQwLjQgMjk3IDMyIDMxNSAzMiAzMzRMMzIgMzcyYzAgMzggMTYuOSA3NCA0Ni4xIDk4LjNsNS40IDQuNWMyOC44IDI0IDY1IDM3LjEgMTAyLjQgMzcuMUwzMDQgNTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDgtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuMy0xLjktMjQuOC0yMi42LTQ0LjMtNDcuOS00NC4zLTEyLjMgMC0yMy41IDQuNi0zMiAxMi4yTDI3MiA0MGMwLTIyLjEtMTcuOS00MC00MC00MHoiXX0sT0xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vcnRhci1wZXN0bGUiLGljb246WzUxMiw1MTIsW10sImY1YTciLCJNNTA0LjMgMTEuMUM0OTMuMy0xLjYgNDc0LjUtMy43IDQ2MSA2LjJMMjUyLjMgMTYwIDM5Ny4zIDE2MCA1MDIuNiA1NC42YzExLjgtMTEuOCAxMi42LTMwLjggMS42LTQzLjV6TTMyIDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmMwIDgyLjUgNDMuNCAxNDcuNyAxMjMuOSAxNzYuMi0xMS4xIDEzLjktMTkuNCAzMC4zLTIzLjkgNDguMS00LjQgMTcuMSAxMC40IDMxLjcgMjguMSAzMS43bDE5MiAwYzE3LjcgMCAzMi40LTE0LjYgMjguMS0zMS43LTQuNS0xNy44LTEyLjgtMzQuMS0yMy45LTQ4LjEgODAuNS0yOC42IDEyMy45LTkzLjcgMTIzLjktMTc2LjIgMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTkyeiJdfSxSTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLWNvdWdoIixpY29uOls1MTIsNTEyLFtdLCJlMDYxIiwiTTk2IDUxMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZsMSAwYzI2IDAgNDctMjEgNDctNDcgMC0xMS0zLjktMjEuNi0xMC45LTMwLjFMMjczLjMgMjAwQzI3MS40IDE5Ny42IDI3MC4xIDE5NC43IDI2OS43IDE5MS43IDI1NCA4My4zIDE2MC43IDAgNDggMCA0MC40IDAgMzIuOSAuNCAyNS40IDEuMSAxMC41IDIuNiAwIDE1LjkgMCAzMC45TDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDB6bTE2LTMyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem02My4xIDIzNy4ybC00MS41LTMuNWMtMTIuMi0xLTIxLjYtMTEuMi0yMS42LTIzLjQgMC0xMC44IDcuMy0yMC4yIDE3LjgtMjIuOGw0MC40LTEwLjFjMTkuMi00LjggMzcuOCA5LjcgMzcuOCAyOS41IDAgMTcuOC0xNS4yIDMxLjgtMzIuOSAzMC4zek00ODAgMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwIDI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS02NCA0OGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0xMjggMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek00ODAgNTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptLTQwLTcyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LEJMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNTU4IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgODIuMSA3NS4yQzQwOS43IDI0OC4xIDQwMCAyNzQuOSA0MDAgMzA0bDAgMjQuNGMtNy4zIDYuNi0xMy42IDE0LjItMTguNyAyMi43bC0zNy4zLTEyLjQgMCA5OS43IDI0IDE5LjIgMCAzOC4zYzAgMTMuNSAyLjggMjYuNCA3LjggMzguMUwyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNTYwIDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sZEY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0dGVyeS10aHJlZS1xdWFydGVycyIsaWNvbjpbNjQwLDUxMixbImJhdHRlcnktNCJdLCJmMjQxIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDIyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0yMjQgMHoiXX0sSExlPWRGLHFMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmcmFuYy1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMThmIiwiTTgwIDMyQzYyLjMgMzIgNDggNDYuMyA0OCA2NGwwIDI1Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODggMCAwLTY0IDE0NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNDQgMCAwLTk2IDE3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDMyeiJdfSxwRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXItY2lyY2xlLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbImZ1bm5lbC1kb2xsYXIiXSwiZjY2MiIsIk0zMiA2NEMxOS4xIDY0IDcuNCA3MS44IDIuNCA4My44Uy4yIDEwOS41IDkuNCAxMTguNkwxOTIgMzAxLjMgMTkyIDQxNmMwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmw2NCA2NGMyLjUgMi41IDUuMyA0LjUgOC4zIDYtMjEuMi0zMC45LTMzLjYtNjguMy0zMy42LTEwOC42IDAtOTkuNCA3NS41LTE4MS4xIDE3Mi4zLTE5MWw5MC40LTkwLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgNjQgNDgwIDY0TDMyIDY0ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTQxNiAzMjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDggMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDUuOCAwYy01LjYgMC0xMC4yIDQuNi0xMC4yIDEwLjIgMCA0LjkgMy41IDkuMSA4LjMgMTBsNDUgOC4yYzIwIDMuNiAzNC42IDIxLjEgMzQuNiA0MS41IDAgMjMuMy0xOC45IDQyLjItNDIuMiA0Mi4ybC01LjggMCAwIDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04LTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNTMuOCAwYzUuNiAwIDEwLjItNC42IDEwLjItMTAuMiAwLTQuOS0zLjUtOS4xLTguMy0xMGwtNDUtOC4yYy0yMC0zLjYtMzQuNi0yMS4xLTM0LjYtNDEuNSAwLTIyLjYgMTcuNy00MSA0MC00Mi4xbDAtOC4xeiJdfSxWTGU9cEYsakxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZWVzZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdlZiIsIk01MTIgMjQwLjJsMCAxNS44LTUxMiAwYzAtMjAgMTAtMzguNyAyNi42LTQ5LjhMMjc0LjkgNDAuN2M4LjYtNS43IDE4LjYtOC43IDI4LjktOC43IDExNSAwIDIwOC4yIDkzLjIgMjA4LjIgMjA4LjJ6bTAgNjMuOGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTEyIDUxMiAweiJdfSxoRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtaCIsaWNvbjpbNTEyLDUxMixbOTQwNSwiaG9zcGl0YWwtc3ltYm9sIl0sImY0N2UiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTk2LTM0NGwwIDE3NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0LTk2IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgOTYgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LFVMZT1oRixXTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nob29sIixpY29uOls1NzYsNTEyLFsxMjc5NzldLCJmNTQ5IiwiTTAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDY0IDAgMTI3LjktMTE1LjFjMTguMy0xNi40IDQ2LTE2LjQgNjQuMiAwTDQ0OCAxMjggNTEyIDEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyek0yMjQgMzc2bDAgODggMTI4IDAgMC04OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6bS0xMTIgOGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDM4NGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNMjg4IDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHoiXX0sR0xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZml2ZSIsaWNvbjpbNDQ4LDUxMixbOTg2MF0sImY1MjMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek05NiAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0LTY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFlMZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3JuYWRvIixpY29uOls0NDgsNTEyLFsxMjc3ODZdLCJmNzZmIiwiTTAgMzJMMCA0NS42QzAgNjIuNyAxLjcgNzkuNiA1IDk2bDM1Mi44IDBjMy4yLTYuOSA3LjUtMTMuMyAxMy0xOC44bDM4LjYtMzguNmM0LjItNC4yIDYuNi0xMCA2LjYtMTYgMC0xMi41LTEwLjEtMjIuNi0yMi42LTIyLjZMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ6TTM1NS43IDE0NGwtMzM2IDBjMTIuNCAyOS43IDMwLjIgNTYuOCA1Mi43IDgwbDMzOS42IDAtNDcuMi02Mi45Yy0zLjktNS4yLTctMTEtOS4yLTE3LjF6TTI0Mi42IDMzNC43YzguMiA0LjggMTUuOCAxMC43IDIyLjUgMTcuM0w0NDUgMzUyYzItOS44IDMtMTkuOSAzLTMwLjEgMC0xNy4xLTIuOS0zNC04LjYtNDkuOUwxMzYgMjcyIDI0Mi42IDMzNC43ek0yOTQuMyA0MDBjNS4zIDE3IDYuNSAzNS4yIDMuNiA1M2wtNS45IDM1LjdjLTIgMTIuMiA3LjQgMjMuNCAxOS44IDIzLjQgNS4zIDAgMTAuNC0yLjEgMTQuMi01LjlsNzguMi03OC4yYzguNS04LjUgMTUuOC0xNy44IDIxLjktMjcuOWwtMTMxLjggMHoiXX0sdUY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamV0LWZpZ2h0ZXIiLGljb246WzU3Niw1MTIsWyJmaWdodGVyLWpldCJdLCJmMGZiIiwiTTQ5Ni4yIDIwNi44Yy0xMC43LTQuNS0yMi4yLTYuOC0zMy44LTYuOEwzNjIgMjAwIDI0OCA0OCAyOTYgNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgMCAyOTYgMEwxNTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4IDAgMCAxNTItNTQuNCAwLTUyLjgtNjZjLTMtMy44LTcuNi02LTEyLjUtNkwxNiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDg4IDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA4OGMwIDguOCA3LjIgMTYgMTYgMTZsMjQuMyAwYzQuOSAwIDkuNS0yLjIgMTIuNS02bDUyLjgtNjYgNTQuNCAwIDAgMTUyLTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAxMTQtMTUyIDEwMC40IDBjMTEuNiAwIDIzLjEtMi4zIDMzLjgtNi44bDY1LTI3LjFjOC45LTMuNyAxNC44LTEyLjUgMTQuOC0yMi4ycy01LjgtMTguNC0xNC44LTIyLjJsLTY1LTI3LjF6Il19LFpMZT11RixYTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJzLWRvd24iLGljb246WzUxMiw1MTIsWzEyODA3OCw2MTU3Nl0sImYxNjUiLCJNMzg0IDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNi4zLTEuMyAxMi4yLTMuNCAxNy43IDIwLjQgNS41IDM1LjQgMjQuMSAzNS40IDQ2LjMgMCA5LjEtMi42IDE3LjYtNyAyNC45IDIyLjIgNC4yIDM5IDIzLjcgMzkgNDcuMSAwIDE5LjctMTEuOSAzNi42LTI4LjkgNDQgMTcgNy40IDI4LjkgMjQuMyAyOC45IDQ0IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMCAyOC4yIDcwLjRjMi41IDYuMyAzLjggMTMuMSAzLjggMTkuOWwwIDQuMmMwIDI3LjMtMjIuMSA0OS40LTQ5LjQgNDkuNC0xOC43IDAtMzUuOC0xMC42LTQ0LjItMjcuM0wxNzAuMSAzNTYuM2MtNi43LTEzLjMtMTAuMS0yOC0xMC4xLTQyLjlsMC0xODYuNmMwLTE5LjQgOC45LTM3LjggMjQtNTBsMTIuMi05LjdDMjI0LjYgNDQuNCAyNTkuOCAzMiAyOTYuMSAzMkwzODQgMzJ6TTgwIDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0OCAweiJdfSxLTGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJvb20iLGljb246WzU3Niw1MTIsWzEyOTUyOV0sImY1MWEiLCJNNTY2LjYgNTQuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5Mi0zNC43LTM0LjdjLTQuMi00LjItMTAtNi42LTE2LTYuNi0xMi41IDAtMjIuNiAxMC4xLTIyLjYgMjIuNmwwIDI5LjEgMTA4LjMgMTA4LjMgMjkuMSAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42IDAtNi0yLjQtMTEuOC02LjYtMTZsLTM0LjctMzQuNyAxOTItMTkyek0zNDEuMSAzNTMuNEwyMjIuNiAyMzQuOWMtNDIuNy0zLjctODUuMiAxMS43LTExNS44IDQyLjNsLTggOGMtMjIuMyAyMi4zLTM0LjggNTIuNS0zNC44IDg0IDAgNi44IDcuMSAxMS4yIDEzLjIgOC4ybDUxLjEtMjUuNWM1LTIuNSA5LjUgNC4xIDUuNCA3LjlMNy4zIDQ3My40QzIuNyA0NzcuNiAwIDQ4My42IDAgNDg5LjkgMCA1MDIuMSA5LjkgNTEyIDIyLjEgNTEybDE3My4zIDBjMzguOCAwIDc1LjktMTUuNCAxMDMuNC00Mi44IDMwLjYtMzAuNiA0NS45LTczLjEgNDIuMy0xMTUuOHoiXX0sZkY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbXBvcnQiLGljb246WzM4NCw1MTIsWyJhcnJvdy1yaWdodC10by1maWxlIl0sImY1NmYiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCAyNDAgMTgyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xODIuMSAwIDAgOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnoiXX0sUUxlPWZGLG1GPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InV0ZW5zaWxzIixpY29uOls1MTIsNTEyLFsxMjc4NjAsNjE2ODUsImN1dGxlcnkiXSwiZjJlNyIsIk02My45IDE0LjRDNjMuMSA2LjIgNTYuMiAwIDQ4IDBzLTE1LjEgNi4yLTE2IDE0LjNMMTcuOSAxNDkuN2MtMS4zIDYtMS45IDEyLjEtMS45IDE4LjIgMCA0NS45IDM1LjEgODMuNiA4MCA4Ny43TDk2IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0LjRjNDQuOS00LjEgODAtNDEuOCA4MC04Ny43IDAtNi4xLS42LTEyLjItMS45LTE4LjJMMjIzLjkgMTQuM0MyMjMuMSA2LjIgMjE2LjIgMCAyMDggMHMtMTUuMSA2LjItMTUuOSAxNC40TDE3OC41IDE0OS45Yy0uNiA1LjctNS40IDEwLjEtMTEuMSAxMC4xLTUuOCAwLTEwLjYtNC40LTExLjItMTAuMkwxNDMuOSAxNC42QzE0My4yIDYuMyAxMzYuMyAwIDEyOCAwcy0xNS4yIDYuMy0xNS45IDE0LjZMOTkuOCAxNDkuOGMtLjUgNS44LTUuNCAxMC4yLTExLjIgMTAuMi01LjggMC0xMC42LTQuNC0xMS4xLTEwLjFMNjMuOSAxNC40ek00NDggMEM0MzIgMCAzMjAgMzIgMzIwIDE3NmwwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00NDhjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEpMZT1tRixlJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWQtYmFkZ2UiLGljb246WzM4NCw1MTIsW10sImYyYzEiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHptOTYgMzUybDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xNTIgNjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sdCRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwaWRlciIsaWNvbjpbNTEyLDUxMixbMTI4Mzc1XSwiZjcxNyIsIk0zNjkuMy0zMWMxMS45LTMuNSAyNC40IDIuNyAyOSAxMy45bC44IDIuMyA0MCAxMzZjMi41IDguNCAuMSAxNy41LTYuMSAyMy43bC02NC4xIDY0LjEgNzYuNC0yMC44IDE5LjktNTkuOCAuOS0yLjNjNS0xMS4xIDE3LjctMTYuOCAyOS41LTEyLjkgMTEuOCAzLjkgMTguNSAxNi4xIDE1LjggMjhsLS43IDIuNC0yNCA3MmMtMi41IDcuNi04LjcgMTMuNC0xNi41IDE1LjZsLTkxLjEgMjQuOCA5MS4xIDI0LjhjNy43IDIuMSAxMy45IDggMTYuNSAxNS42bDI0IDcyIC43IDIuNGMyLjcgMTEuOS00LjEgMjQuMS0xNS44IDI4LTExLjggMy45LTI0LjUtMS44LTI5LjUtMTIuOWwtLjktMi4zLTE5LjktNTkuOC03Ni40LTIwLjggNjQuMSA2NC4xYzYuMSA2LjEgOC41IDE1LjEgNi4yIDIzLjRsLTQwIDE0NC0uOCAyLjNjLTQuNCAxMS4zLTE2LjggMTcuNy0yOC44IDE0LjQtMTItMy4zLTE5LjMtMTUuMi0xNy4yLTI3LjJsLjUtMi40IDM2LjItMTMwLjUtMzcuMi0zNy4yQzM1MSA0MDYgMzA4LjQgNDQ4IDI1NiA0NDhzLTk1LTQyLTk2LTk0LjFsLTM3IDM3IDM2IDEyMi4zIC42IDIuNGMyLjIgMTEuOS00LjkgMjMuOS0xNi44IDI3LjQtMTEuOSAzLjUtMjQuNC0yLjctMjktMTMuOWwtLjgtMi4zLTQwLTEzNmMtMi41LTguNC0uMS0xNy41IDYuMS0yMy44bDY0LjEtNjQuMS03Ni40IDIwLjgtMTkuOSA1OS44LS45IDIuM2MtNSAxMS4xLTE3LjcgMTYuOC0yOS41IDEyLjlzLTE4LjUtMTYuMS0xNS44LTI4bC43LTIuNCAyNC03MmMyLjUtNy42IDguNy0xMy40IDE2LjUtMTUuNmw5MS4xLTI0LjgtOTEuMS0yNC44Yy03LjctMi4xLTEzLjktOC0xNi41LTE1LjZsLTI0LTcyLS43LTIuNGMtMi43LTExLjkgNC4xLTI0LjEgMTUuOC0yOHMyNC41IDEuOCAyOS41IDEyLjlsLjkgMi4zIDE5LjkgNTkuOCA3Ni40IDIwLjgtNjQuMS02NC4xYy02LjItNi4yLTguNS0xNS4zLTYuMS0yMy43bDQwLTEzNiAuOC0yLjNjNC42LTExLjMgMTcuMS0xNy40IDI5LTEzLjkgMTEuOSAzLjUgMTkgMTUuNSAxNi44IDI3LjRsLS42IDIuNC0zNiAxMjIuMyA1MyA1M2MxLTQzLjMgMzYuNC03OC4xIDc5LjktNzguMXM3OC45IDM0LjggNzkuOSA3OC4ybDUzLjEtNTMuMS0zNi0xMjIuMy0uNi0yLjRjLTIuMi0xMiA0LjktMjMuOSAxNi44LTI3LjR6Il19LGEkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtcmV0cm8iLGljb246WzM4NCw1MTIsW10sImU1MjciLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0em04MCA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOCAxOTJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6bTY0LTcyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0em02NC03MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHpNMTY4IDQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LGdGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25zLXBvc3QiLGljb246WzUxMiw1MTIsWyJtYXAtc2lnbnMiXSwiZjI3NyIsIk0yNTYuNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwIDAgNjQtMTUzLjQgMGMtNC4yIDAtOC4zIDEuNy0xMS4zIDQuN2wtNDggNDhjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDQ4IDQ4YzMgMyA3LjEgNC43IDExLjMgNC43bDE1My40IDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC02NCAxNTMuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsNDgtNDhjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTQ4LTQ4Yy0zLTMtNy4xLTQuNy0xMS4zLTQuN2wtMTUzLjQgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxpJGU9Z0YsciRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdyb3VwLWFycm93cy1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImU0ZjYiLCJNMzcuNiAxMjIuM2MtMTEuNSAxOC43LTIwLjYgMzktMjcgNjAuNS01IDE2LjkgNC42IDM0LjggMjEuNSAzOS44czM0LjgtNC42IDM5LjgtMjEuNWMxOC40LTYxLjkgNjcuMy0xMTAuOCAxMjkuMi0xMjkuMiAxNi45LTUgMjYuNi0yMi45IDIxLjUtMzkuOFMxOTkuOCA1LjYgMTgyLjkgMTAuNkMxNjEuNCAxNyAxNDEuMSAyNi4xIDEyMi4zIDM3LjYgMTEyLjMgMTUuNCA4OS45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjQgMCA4OS45IDE1LjQgMTEyLjMgMzcuNiAxMjIuM3ptNDM2LjcgMGMyMi4yLTEwIDM3LjYtMzIuNCAzNy42LTU4LjMgMC0zNS4zLTI4LjctNjQtNjQtNjQtMjUuOSAwLTQ4LjMgMTUuNC01OC4zIDM3LjYtMTguNy0xMS41LTM5LTIwLjYtNjAuNS0yNy0xNi45LTUtMzQuOCA0LjYtMzkuOCAyMS41czQuNiAzNC44IDIxLjUgMzkuOGM2MS45IDE4LjQgMTEwLjggNjcuMyAxMjkuMiAxMjkuMiA1IDE2LjkgMjIuOSAyNi42IDM5LjggMjEuNXMyNi42LTIyLjkgMjEuNS0zOS44Yy02LjQtMjEuNS0xNS41LTQxLjgtMjctNjAuNXpNNTEyIDQ0OGMwLTI1LjktMTUuNC00OC4zLTM3LjYtNTguMyAxMS41LTE4LjcgMjAuNi0zOSAyNy02MC41IDUtMTYuOS00LjYtMzQuOC0yMS41LTM5LjhzLTM0LjggNC42LTM5LjggMjEuNWMtMTguNCA2MS45LTY3LjMgMTEwLjgtMTI5LjIgMTI5LjItMTYuOSA1LTI2LjYgMjIuOS0yMS41IDM5LjhzMjIuOSAyNi42IDM5LjggMjEuNWMyMS41LTYuNCA0MS44LTE1LjUgNjAuNS0yNyAxMCAyMi4yIDMyLjQgMzcuNiA1OC4zIDM3LjYgMzUuMyAwIDY0LTI4LjcgNjQtNjR6TTM3LjYgMzg5LjdjLTIyLjIgMTAtMzcuNiAzMi40LTM3LjYgNTguMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNS45IDAgNDguMy0xNS40IDU4LjMtMzcuNiAxOC43IDExLjUgMzkgMjAuNiA2MC41IDI3IDE2LjkgNSAzNC44LTQuNiAzOS44LTIxLjVzLTQuNi0zNC44LTIxLjUtMzkuOGMtNjEuOS0xOC40LTExMC44LTY3LjMtMTI5LjItMTI5LjItNS0xNi45LTIyLjktMjYuNi0zOS44LTIxLjVTNS42IDMxMi4yIDEwLjYgMzI5LjFjNi40IDIxLjUgMTUuNSA0MS44IDI3IDYwLjV6TTI1NiAxOTJjMTUuNiAwIDMwIDUuNiA0MS4xIDE0LjlsLTE1LjMgMTUuM2MtNi42IDYuNi0xLjkgMTcuOCA3LjQgMTcuOGw2MC41IDBjNS43IDAgMTAuNC00LjcgMTAuNC0xMC40bDAtNjAuNWMwLTkuMy0xMS4yLTEzLjktMTcuOC03LjRsLTExLjIgMTEuMmMtMTkuOC0xNy45LTQ2LjItMjguOS03NS4xLTI4LjktNDMuNiAwLTgxLjMgMjQuOS05OS44IDYxLjEtNiAxMS44LTEuNCAyNi4zIDEwLjQgMzIuM3MyNi4zIDEuNCAzMi4zLTEwLjRjMTAuNi0yMC44IDMyLjItMzQuOSA1Ny0zNC45em01OC42IDkzLjFjLTEwLjYgMjAuOC0zMi4yIDM0LjktNTcgMzQuOS0xNS43IDAtMzAtNS42LTQxLjEtMTQuOWwxNS4zLTE1LjNjNi42LTYuNiAxLjktMTcuOC03LjQtMTcuOEwxNjQgMjcyYy01LjcgMC0xMC40IDQuNy0xMC40IDEwLjRsMCA2MC41YzAgOS4zIDExLjIgMTMuOSAxNy44IDcuNGwxMS4yLTExLjJjMTkuOCAxNy45IDQ2LjIgMjguOSA3NS4xIDI4LjkgNDMuNiAwIDgxLjMtMjQuOSA5OS44LTYxLjEgNi0xMS44IDEuNC0yNi4zLTEwLjQtMzIuM3MtMjYuMy0xLjQtMzIuMyAxMC40eiJdfSxzJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXNwbGl0LXVwLWFuZC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJlNGJjIiwiTTM0Mi42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw0MS40LTQxLjQgMCAxOTUuOWMtMTguOC0xMC45LTQwLjctMTcuMS02NC0xNy4xbC0xMTQuNyAwIDQxLjQtNDEuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMzIwIDIyNCAzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LG4kZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxsLWRyaXAiLGljb246WzU3Niw1MTIsW10sImY1NzYiLCJNMzA5LjcgNzEuNmwtNjQuNCA2NC40IDMzLjQgMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtMzMuNC0zMy40LTk2LjQgOTYuNGMtMi45IDIuOS01LjEgNi41LTYuMyAxMC4zbDMyMS41IDAgNTMuNy01My43YzQuOS00LjkgNy42LTExLjUgNy42LTE4LjNzLTIuNy0xMy41LTcuNi0xOC4zTDM0Ni4zIDcxLjZDMzQxLjUgNjYuNyAzMzQuOSA2NCAzMjggNjRzLTEzLjUgMi43LTE4LjMgNy42ek01OC4zIDIzMi40bDk2LjQtOTYuNC00OS40LTQ5LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMjAwIDkwLjcgMjY0LjQgMjYuM0MyODEuMyA5LjUgMzA0LjEgMCAzMjggMHM0Ni43IDkuNSA2My42IDI2LjNMNTE3LjcgMTUyLjRDNTM0LjUgMTY5LjMgNTQ0IDE5Mi4xIDU0NCAyMTZzLTkuNSA0Ni43LTI2LjMgNjMuNkwzMTEuNiA0ODUuN0MyOTQuNyA1MDIuNSAyNzEuOSA1MTIgMjQ4IDUxMnMtNDYuNy05LjUtNjMuNi0yNi4zTDU4LjMgMzU5LjZDNDEuNSAzNDIuNyAzMiAzMTkuOSAzMiAyOTZzOS41LTQ2LjcgMjYuMy02My42ek01MTIgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTI1LjIgMzIuNi03OS42IDUxLjItMTA4LjcgNi05LjQgMTkuNS05LjQgMjUuNSAwIDE4LjcgMjkuMSA1MS4yIDgzLjUgNTEuMiAxMDguNyAwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sbyRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1oZWFydCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3NCIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMjQ5LjYgMTgzLjVsNi40IDguNSA2LjQtOC41YzExLjEtMTQuOCAyOC41LTIzLjUgNDYuOS0yMy41IDMyLjQgMCA1OC43IDI2LjMgNTguNyA1OC43bDAgNS4zYzAgNDkuMS02NS44IDk4LjEtOTYuNSAxMTguMy05LjUgNi4yLTIxLjUgNi4yLTMwLjkgMC0zMC43LTIwLjItOTYuNS02OS4zLTk2LjUtMTE4LjNsMC01LjNjMC0zMi40IDI2LjMtNTguNyA1OC43LTU4LjcgMTguNSAwIDM1LjkgOC43IDQ2LjkgMjMuNXoiXX0sYkY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNraWluZy1ub3JkaWMiLGljb246WzU3Niw1MTIsWyJza2lpbmctbm9yZGljIl0sImY3Y2EiLCJNNDI0LjggMTZhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTk5LjggMTkzLjdjNy42IDE1LjIgMS45IDMzLjYtMTIuNiA0MmwwIDE4MC4zLTMyIDAgMC0xNjQuMi0xMC4xIDVjLTI3LjQgMTMuNy02MC43IDYuMS03OS40LTE4LjJsLTE5LjYtMjUuNS0zOS41IDY4LjggMjQuOCAxMi40YzI5LjUgMTQuNyA0Mi45IDQ5LjUgMzEuMSA4MC4ybC0yOC4yIDczLjQgMTQ5LjQgMGM3LjkgMCAxNS42LTIuMyAyMi4yLTYuN2w3LjktNS4zYzExLTcuNCAyNS45LTQuNCAzMy4zIDYuN3M0LjQgMjUuOS02LjcgMzMuM2wtNy45IDUuM0M1NDMgNTA2LjkgNTI2IDUxMiA1MDguNiA1MTJsLTE4OS4xIDBjLS41IDAtMSAwLTEuNSAwTDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4OCAwYzAtOC4yIDMuMS0xNi40IDkuNC0yMi42bDc0LjEtNzQuMSAxMC4yLTM1LjljMTEuMyAxOC4zIDI3LjcgMzMuOCA0OC40IDQ0LjJsNC44IDIuNC0xLjkgNi44Yy0zIDEwLjUtOC42IDIwLTE2LjMgMjcuN2wtNTEuNSA1MS41IDEwMS4zIDAgMzcuMS05Ni40LTU1LjYtMjcuOEMyMzAuNCAzMTkgMjE1LjMgMjY3IDIzOS4zIDIyNy4xbDM3LjctNjIuNy0yNy43LTcuN2MtOS0yLjUtMTguMSAzLjItMjAgMTIuM2wtNS45IDI5LjNjLTMuMSAxNS42LTE3LjEgMjYuMy0zMi41IDI1LjdsLTEzMCAyMDgtMzcuNyAwIDE0MC42LTIyNWMtMy40LTYuMy00LjYtMTMuOC0zLjEtMjEuM2w1LjktMjkuM2M5LjEtNDUuNiA1NS4xLTczLjggOTkuOS02MS40bDMyLjUgOWM0Ni43IDEzIDg4IDQwLjggMTE3LjYgNzkuM2wyNC45IDMyLjMgNDAuNC0yMC4yYzE1LjgtNy45IDM1LTEuNSA0Mi45IDE0LjN6Il19LGwkZT1iRix2Rj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzQyIDE0NS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wxODkuMSAzMTUuMiAxMzcgMjYzLjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjkgNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNDcuMyAxNzkuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0sYyRlPXZGLHlGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdGgiLGljb246WzUxMiw1MTIsWzEyODcwNSwiYmF0aHR1YiJdLCJmMmNkIiwiTTk2IDc3LjNjMC03LjMgNS45LTEzLjMgMTMuMy0xMy4zIDMuNSAwIDYuOSAxLjQgOS40IDMuOWwxNC45IDE0LjljLTMuNiA5LjEtNS41IDE4LjktNS41IDI5LjIgMCAxOS45IDcuMiAzOCAxOS4yIDUyLTUuMyA5LjItNCAyMS4xIDMuOCAyOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMEwyODkgODljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjktNy44LTcuOS0xOS44LTkuMS0yOS0zLjgtMTQtMTItMzIuMS0xOS4yLTUyLTE5LjItMTAuMyAwLTIwLjIgMi0yOS4yIDUuNUwxNjMuOSAyMi42QzE0OS40IDguMSAxMjkuNyAwIDEwOS4zIDAgNjYuNiAwIDMyIDM0LjYgMzIgNzcuM0wzMiAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCA0OGMwIDI4LjQgMTIuNCA1NCAzMiA3MS42TDY0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYgMjU2IDAgMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDAuNGMxOS42LTE3LjYgMzItNDMuMSAzMi03MS42bDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgMjU2IDk2IDc3LjN6Il19LGQkZT15RixwJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtYmlzaG9wIixpY29uOlszMjAsNTEyLFs5ODIxXSwiZjQzYSIsIk02NCAzODRMNDguMyAzNjguM0MxNy40IDMzNy40IDAgMjk1LjQgMCAyNTEuNyAwIDIxMy4xIDEzLjUgMTc1LjggMzguMiAxNDYuMUwxMDYuNyA2NCA5NiA2NEM3OC4zIDY0IDY0IDQ5LjcgNjQgMzJTNzguMyAwIDk2IDBMMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjcgMCA0Ny42IDU3LjEtODUuOSA4NS45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODIuMy04Mi4zYzE4LjcgMjcuMyAyOC43IDU5LjcgMjguNyA5MyAwIDQzLjctMTcuNCA4NS43LTQ4LjMgMTE2LjZMMjU2IDM4NCAzMTIuMiA0NTQuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUwzNS41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMNjQgMzg0eiJdfSx4Rj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24tYm90dGxlLW1lZGljYWwiLGljb246WzM4NCw1MTIsWyJwcmVzY3JpcHRpb24tYm90dGxlLWFsdCJdLCJmNDg2IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NEwwIDMyek0zMiAxNDRsMzIwIDAgMCAzMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTMwNHpNMTYwIDI0OGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0saCRlPXhGLHdGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyYXctcG9seWdvbiIsaWNvbjpbNTEyLDUxMixbNTgwNTUsInZlY3Rvci1wb2x5Z29uIl0sImY1ZWUiLCJNNjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsMjczLjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMzQtMjYuNSA2MS44LTYwIDYzLjlsLTIuMSAyLjktNzEuNSA5OS4xYzMuNiA4IDUuNiAxNi45IDUuNiAyNi4ycy0yIDE4LjItNS42IDI2LjJsMi4yIDMuMSA2OS4zIDk2IDIuMSAyLjljMzMuNSAyLjEgNjAgMjkuOSA2MCA2My45IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjczLjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNzMuMUMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMHpNMzk0LjIgNDEzLjRsLTY1LjUtOTAuNi0yLjItMy4xYy0yLjEgLjItNC4zIC4zLTYuNSAuMy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzIuMiAwIDQuNCAuMSA2LjUgLjNsNjcuNy05My43Yy0uNi0uOS0xLjEtMS43LTEuNi0yLjZMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyNzMuMSAwYy41LS45IDEuMS0xLjggMS42LTIuNnoiXX0sdSRlPXdGLGYkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpLWN1cnNvciIsaWNvbjpbMjU2LDUxMixbXSwiZjI0NiIsIk0uMSAyOS4zQy0xLjQgNDcgMTEuNyA2Mi40IDI5LjMgNjMuOWw4IC43QzcwLjUgNjcuMyA5NiA5NSA5NiAxMjguM2wwIDk1LjctMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgOTUuN2MwIDMzLjMtMjUuNSA2MS01OC43IDYzLjhsLTggLjdDMTEuNyA0NDkuNi0xLjQgNDY1IC4xIDQ4Mi43UzE3IDUxMy40IDM0LjcgNTExLjlsOC0uN2MzNC4xLTIuOCA2NC4yLTE4LjkgODUuNC00Mi45IDIxLjIgMjQgNTEuMiA0MCA4NS40IDQyLjlsOCAuN2MxNy42IDEuNSAzMy4xLTExLjYgMzQuNS0yOS4ycy0xMS42LTMzLjEtMjkuMi0zNC41bC04LS43QzE4NS41IDQ0NC43IDE2MCA0MTcgMTYwIDM4My43bDAtOTUuNyAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtOTUuN2MwLTMzLjMgMjUuNS02MSA1OC43LTYzLjhsOC0uN2MxNy42LTEuNSAzMC43LTE2LjkgMjkuMi0zNC41UzIzOS0xLjQgMjIxLjMgLjFsLTggLjdjLTM0LjEgMi44LTY0LjIgMTguOS04NS40IDQyLjktMjEuMi0yNC01MS4yLTQwLTg1LjQtNDIuOWwtOC0uN0MxNy0xLjQgMS42IDExLjcgLjEgMjkuM3oiXX0sbSRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1wbHVzIixpY29uOls1NzYsNTEyLFtdLCJlNTAwIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDh6Il19LGckZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtZG9nIixpY29uOls1MTIsNTEyLFtdLCJlNTczIiwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yIC41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMiAxNi43IDggMzYuMSA4IDUyLjggMCAxNzIuNC04Mi41IDIxMy4yLTI2NCAyMTMuNi0zNjMuMiAuMS0yNi4yLTE2LjMtNDcuOS0zOC4zLTU3LjJMMjY5LjQgMi45ek0xNjAuOSAyODYuMmM0LjggMS4yIDkuOSAxLjggMTUuMSAxLjggMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NCA0NC4yIDBjMTIuMSAwIDIzLjIgNi44IDI4LjYgMTcuN2w3LjIgMTQuMyA2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgNDQuMi0zNS44IDgwLTgwIDgwbC00OCAwIDAgNTAuN2MwIDcuMy01LjkgMTMuMy0xMy4zIDEzLjMtMS44IDAtMy42LS40LTUuMi0xLjFsLTk4LjctNDIuM2MtNi42LTIuOC0xMC44LTkuMy0xMC44LTE2LjQgMC0yLjggLjYtNS41IDEuOS04bDE1LTMwek0xNjAgMTYwbDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6Il19LGIkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4tZXF1YWwiLGljb246WzQ0OCw1MTIsW10sImY1MzIiLCJNMjEuOSA5NC40QzUuMSA4OC44LTMuOSA3MC42IDEuNyA1My45UzI1LjQgMjguMSA0Mi4xIDMzLjZsMzg0IDEyOEM0MzkuMiAxNjYgNDQ4IDE3OC4yIDQ0OCAxOTJzLTguOCAyNi0yMS45IDMwLjRsLTM4NCAxMjhjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVMMzE0LjggMTkyIDIxLjkgOTQuNHpNNDE2IDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDB6Il19LHYkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZS1vcGVuIixpY29uOls1MTIsNTEyLFs2MjEzNV0sImYyYjYiLCJNNjQuNCAxNzUuOEwyNTYgMzMuOSA0NDcuNiAxNzUuOCAyODkuNSAyOTNjLTkuNyA3LjItMjEuNCAxMS0zMy41IDExcy0yMy44LTMuOS0zMy41LTExTDY0LjQgMTc1Ljh6TTI1Ni0zMmMtMTIuMSAwLTIzLjggMy45LTMzLjUgMTFMMjUuOSAxMjQuN0M5LjYgMTM2LjggMCAxNTUuOCAwIDE3Ni4xTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjM5LjljMC0yMC4zLTkuNi0zOS40LTI1LjktNTEuNEwyODkuNS0yMWMtOS43LTcuMi0yMS40LTExLTMzLjUtMTF6Il19LHkkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VuZCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyZCIsIk0xMTIuNCAxNzkuMkMxNDIgMTI3LjcgMTk2LjggOTYgMjU2LjIgOTZzMTE0LjIgMzEuNyAxNDMuOSA4My4yTDUwOC43IDM2OGMxMi4zIDIxLjMtMy4xIDQ4LTI3LjcgNDhMMzEuNSA0MTZjLTI0LjYgMC00MC0yNi42LTI3LjctNDhMMTEyLjQgMTc5LjJ6Il19LHgkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2ljZW1haWwiLGljb246WzY0MCw1MTIsW10sImY4OTciLCJNMTQ0IDE2MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNMjYzLjggMzIwYzE1LjMtMjIuOSAyNC4yLTUwLjQgMjQuMi04MCAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDE2MC41IDAgMjQwIDY0LjUgMzg0IDE0NCAzODRsMzUyIDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRTNTc1LjUgOTYgNDk2IDk2IDM1MiAxNjAuNSAzNTIgMjQwYzAgMjkuNiA4LjkgNTcuMSAyNC4yIDgwbC0xMTIuNSAwek00OTYgMTYwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYweiJdfSx3JGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVzdCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA4NSIsIk0yMDAgNDY0bDAtMTcwLjFjMC0zLjktLjUtNy44LTEuNC0xMS42TDE0NC40IDY1LjRDMTYyLjEgNzcuMiAxODguMiA4OCAyMjQgODhzNjEuOS0xMC44IDc5LjYtMjIuNkwyNDkuNCAyODIuM2MtMSAzLjgtMS40IDcuNy0xLjQgMTEuNkwyNDggNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkzLjVjMC05LjUtMi44LTE4LjctOC4xLTI2LjZsLTQ3LjktNzEuOGMtNS4zLTcuOS04LjEtMTcuMS04LjEtMjYuNkwzODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMuNSAwYy0uMyAwLS42IDAtMSAwLS42IDAtMS4yIDAtMS44IDAtMTguOCAwLTM0LjEgOS43LTQ0LjEgMTguOC05LjMgOC40LTI4LjUgMjEuMi02MS43IDIxLjJzLTUyLjQtMTIuOC02MS43LTIxLjJjLTEwLTkuMS0yNS4zLTE4LjgtNDQuMS0xOC44LS42IDAtMS4yIDAtMS44IDAtLjMgMC0uNiAwLTEgMEwxMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OGwwIDk3LjVjMCA5LjUtMi44IDE4LjctOC4xIDI2LjZMOC4xIDI0My45QzIuOCAyNTEuOCAwIDI2MS4xIDAgMjcwLjVMMCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTA0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6Il19LE0kZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdWRpby1kZXNjcmlwdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjI5ZSIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA5NmwwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQgNDggMCAwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTE2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0em00OCAzMmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyLTQ4IDB6bTE1Mi05NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTQ4YzAtMzkuOC0zMi4yLTcyLTcyLTcybC00OCAwem00OCAxNDRsLTI0IDAgMC05NiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjR6Il19LHokZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3IixpY29uOls1NzYsNTEyLFsxMTldLCI1NyIsIk0yMC44IDM0YzE2LjUtNi4yIDM1IDIuMiA0MS4yIDE4LjdMMTcyLjIgMzQ2LjcgMjU3LjMgNTVjNC0xMy43IDE2LjUtMjMgMzAuNy0yM3MyNi43IDkuNCAzMC43IDIzTDQwMy44IDM0Ni43IDUxNCA1Mi44YzYuMi0xNi41IDI0LjYtMjQuOSA0MS4yLTE4LjdTNTgwLjIgNTguNyA1NzQgNzUuMmwtMTQ0IDM4NGMtNC44IDEyLjktMTcuNCAyMS4zLTMxLjIgMjAuN3MtMjUuNy05LjgtMjkuNS0yM0wyODggMTc4LjMgMjA2LjcgNDU3Yy0zLjkgMTMuMi0xNS44IDIyLjUtMjkuNSAyM3MtMjYuMy03LjgtMzEuMi0yMC43TDIgNzUuMkMtNC4yIDU4LjcgNC4yIDQwLjIgMjAuOCAzNHoiXX0scG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLWRyb3BwZXIiLGljb246WzUxMiw1MTIsWyJleWUtZHJvcHBlci1lbXB0eSIsImV5ZWRyb3BwZXIiXSwiZjFmYiIsIk0zNDEuNiAyOS4ybC0xMDEuNiAxMDEuNi05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTAxLjYtMTAxLjZjMzktMzkgMzktMTAyLjIgMC0xNDEuMXMtMTAyLjItMzktMTQxLjEgMHpNNTUuNCAzMjMuM2MtMTUgMTUtMjMuNCAzNS40LTIzLjQgNTYuNmwwIDQyLjQtMjYuNiAzOS45Yy04LjUgMTIuNy02LjggMjkuNiA0IDQwLjRzMjcuNyAxMi41IDQwLjQgNGwzOS45LTI2LjYgNDIuNCAwYzIxLjIgMCA0MS42LTguNCA1Ni42LTIzLjRsMTA5LjQtMTA5LjQtNDUuMy00NS4zLTEwOS40IDEwOS40Yy0zIDMtNy4xIDQuNy0xMS4zIDQuN2wtMzYuMSAwIDAtMzYuMWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zbDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNHoiXX0sayRlPXBtLFMkZT1wbSxmbD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYxNTMyLCJ0aW1lcy1jaXJjbGUiLCJ4bWFyay1jaXJjbGUiXSwiZjA1NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sQyRlPWZsLF8kZT1mbCxUJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaWxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTA0MSIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yOTYuNCAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTIuNyAuMS01LjQgLjQtOEw5NiA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDk2em00MDggMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTExMiAxMzZsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptMTc2LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0yNjQgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6Il19LGhtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cmtpc2gtbGlyYS1zaWduIixpY29uOls0NDgsNTEyLFsidHJ5IiwidHVya2lzaC1saXJhIl0sImUyYmIiLCJNMTYwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDMuNiAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCA0Ni4xIDEyMS40LTM0LjdjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtMTM0LjYgMzguNSAwIDE2Mi41IDcyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyYzAgODguNC03MS42IDE2MC0xNjAgMTYwbC0xMDQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNzYuMi0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC00Ni4xLTI1LjQgNy4zYy0xMi43IDMuNi0yNi0zLjctMjkuNy0xNi41czMuNy0yNiAxNi41LTI5LjdsMzguNi0xMSAwLTYxLjljMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LEwkZT1obSwkJGU9aG0sQSRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbGNhbm8iLGljb246WzUxMiw1MTIsWzEyNzc1NV0sImY3NzAiLCJNMTYwIDE0NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxNS43IDAgMzAgNS42IDQxLjIgMTUgMTEuMi0xOC42IDMxLjYtMzEgNTQuOC0zMXM0My42IDEyLjQgNTQuOCAzMWMxMS4xLTkuNCAyNS41LTE1IDQxLjItMTUgMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRjLTE0LjcgMC0yOC4zLTUtMzkuMS0xMy4zbC0zMiA0OEMyNzUuMyAxODcgMjY2IDE5MiAyNTYgMTkycy0xOS4zLTUtMjQuOS0xMy4zbC0zMi00OEMxODguMyAxMzkgMTc0LjcgMTQ0IDE2MCAxNDR6TTE0NCAzNTJsNDguNC0yNC4yYzEwLjItNS4xIDIxLjYtNy44IDMzLTcuOCAxOS42IDAgMzguNCA3LjggNTIuMiAyMS42bDMyLjUgMzIuNWM2LjMgNi4zIDE0LjkgOS45IDIzLjggOS45IDExLjMgMCAyMS44LTUuNiAyOC0xNWw5LjctMTQuNi01OS02Ni4zYy05LjEtMTAuMi0yMi4yLTE2LjEtMzUuOS0xNi4xbC00MS44IDBjLTEzLjcgMC0yNi44IDUuOS0zNS45IDE2LjFsLTU5LjkgNjcuNCA0LjctMy41em0xOS40LTk1LjhjMTguMi0yMC41IDQ0LjMtMzIuMiA3MS44LTMyLjJsNDEuOCAwYzI3LjQgMCA1My41IDExLjcgNzEuOCAzMi4ybDE1MC4yIDE2OWM4LjUgOS41IDEzLjIgMjEuOSAxMy4yIDM0LjcgMCAyOC44LTIzLjQgNTIuMi01Mi4yIDUyLjJMNTIuMiA1MTJDMjMuNCA1MTIgMCA0ODguNiAwIDQ1OS44IDAgNDQ3LjEgNC43IDQzNC43IDEzLjIgNDI1LjJsMTUwLjItMTY5eiJdfSxEJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1zcGFya2xlcyIsaWNvbjpbNTEyLDUxMixbXSwiZjcyYiIsIk00NjQgNi4xYzkuNS04LjUgMjQtOC4xIDMzIC45bDggOGM5IDkgOS40IDIzLjUgLjkgMzNsLTg1LjggOTUuOWMtMi42IDIuOS00LjEgNi43LTQuMSAxMC43bDAgMjEuNGMwIDguOC03LjIgMTYtMTYgMTZsLTE1LjggMGMtNC42IDAtOC45IDEuOS0xMS45IDUuM0wxMDAuNyA1MDAuOWMtNi4zIDcuMS0xNS4zIDExLjEtMjQuOCAxMS4xLTguOCAwLTE3LjMtMy41LTIzLjUtOS44TDkuNyA0NTkuN2MtNi4yLTYuMi05LjctMTQuNy05LjctMjMuNSAwLTkuNSA0LTE4LjUgMTEuMS0yNC44bDExMS42LTk5LjhjMy40LTMgNS4zLTcuNCA1LjMtMTEuOWwwLTI3LjZjMC04LjggNy4yLTE2IDE2LTE2bDM0LjYgMGMzLjkgMCA3LjctMS41IDEwLjctNC4xTDQ2NCA2LjF6TTQzMiAyODhjMy42IDAgNi43IDIuNCA3LjcgNS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOC0xNC44IDUxLjdjLTEgMy40LTQuMSA1LjgtNy43IDUuOHMtNi43LTIuNC03LjctNS44bC0xNC44LTUxLjctNTEuNy0xNC44Yy0zLjQtMS01LjgtNC4xLTUuOC03LjdzMi40LTYuNyA1LjgtNy43bDUxLjctMTQuOCAxNC44LTUxLjdjMS0zLjQgNC4xLTUuOCA3LjctNS44ek04Ny43IDY5LjhsMTQuOCA1MS43IDUxLjcgMTQuOGMzLjQgMSA1LjggNC4xIDUuOCA3LjdzLTIuNCA2LjctNS44IDcuN2wtNTEuNyAxNC44LTE0LjggNTEuN2MtMSAzLjQtNC4xIDUuOC03LjcgNS44cy02LjctMi40LTcuNy01LjhMNTcuNSAxNjYuNSA1LjggMTUxLjdjLTMuNC0xLTUuOC00LjEtNS44LTcuN3MyLjQtNi43IDUuOC03LjdsNTEuNy0xNC44IDE0LjgtNTEuN2MxLTMuNCA0LjEtNS44IDcuNy01LjhzNi43IDIuNCA3LjcgNS44ek0yMDggMGMzLjcgMCA2LjkgMi41IDcuOCA2LjFsNi44IDI3LjMgMjcuMyA2LjhjMy42IC45IDYuMSA0LjEgNi4xIDcuOHMtMi41IDYuOS02LjEgNy44bC0yNy4zIDYuOC02LjggMjcuM2MtLjkgMy42LTQuMSA2LjEtNy44IDYuMXMtNi45LTIuNS03LjgtNi4xbC02LjgtMjcuMy0yNy4zLTYuOGMtMy42LS45LTYuMS00LjEtNi4xLTcuOHMyLjUtNi45IDYuMS03LjhsMjcuMy02LjggNi44LTI3LjNjLjktMy42IDQuMS02LjEgNy44LTYuMXoiXX0sRSRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUiLGljb246WzM4NCw1MTIsW10sImYxMzAiLCJNMTkyIDBDMTM5IDAgOTYgNDMgOTYgOTZsMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek00OCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxNzAuNyAwIDE4NGwwIDQwYzAgOTcuOSA3My4zIDE3OC43IDE2OCAxOTAuNWwwIDQ5LjUtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ5LjVjOTQuNy0xMS44IDE2OC05Mi42IDE2OC0xOTAuNWwwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDBjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTNDggMzAzLjUgNDggMjI0bDAtNDB6Il19LFAkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm93biIsaWNvbjpbNTc2LDUxMixbMTI4MDgxXSwiZjUyMSIsIk0zMTMgODcuMmM5LjItNy4zIDE1LTE4LjYgMTUtMzEuMiAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDEyLjYgNS45IDIzLjkgMTUgMzEuMkwxOTQuNiAxOTQuOGMtMTAgMTUuNy0zMS4zIDE5LjYtNDYuMiA4LjRMODguOSAxNTguN2M0LjUtNi40IDcuMS0xNC4zIDcuMS0yMi43IDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgMjEuOCAxNy41IDM5LjYgMzkuMiA0MEw4Ny44IDM5My41YzQuNyAzMS4zIDMxLjYgNTQuNSA2My4zIDU0LjVsMjczLjggMGMzMS43IDAgNTguNi0yMy4yIDYzLjMtNTQuNUw1MjAuOCAxNzZjMjEuNy0uNCAzOS4yLTE4LjIgMzkuMi00MCAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDguNCAyLjYgMTYuMyA3LjEgMjIuN2wtNTkuNCA0NC42Yy0xNC45IDExLjItMzYuMiA3LjMtNDYuMi04LjRMMzEzIDg3LjJ6Il19LEkkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LXR1cm4tbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU4MCIsIk0tLjUgMTEzbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzEtMzEgMzUwLjEgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OGwtMzUwLjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOVM4MC45LTIuMyA3MS41IDdMLS41IDc5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXpNNjAuMyAyOTIuNkwzNy4xIDQ3NmMtMi40IDE5LjEgMTIuNSAzNiAzMS43IDM2bDE1NC41IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMTcuNGMwLTUuOSA0LjctMTAuNiAxMC42LTEwLjYgNCAwIDcuNyAyLjMgOS41IDUuOWw2OC4yIDEzNi41YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdsNzEuOSAwYzE5LjMgMCAzNC4yLTE2LjkgMzEuNy0zNkw0NTIuNyAyOTIuN2MtMS4yLTkuNy02LjktMTguNC0xNS4zLTIzLjRMMjcxLjkgMTY5LjljLTEwLjItNi4xLTIyLjktNi4xLTMzLjEgLjFMNzUuNCAyNjkuM2MtOC4zIDUuMS0xMy45IDEzLjctMTUuMSAyMy4zeiJdfSxNRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1mYXN0IixpY29uOls2NDAsNTEyLFsic2hpcHBpbmctZmFzdCJdLCJmNDhiIiwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIgNTAuNyAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDYyMS4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDY0MCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMuMyAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMTAyLjYgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRsLTMuMyAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTQ4LTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDE0NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTMTAuNyA5NiAyNCA5Nmw0MCAwek01NzYgMjg4bDAtNTAuNy00NS4zLTQ1LjMtNTAuNyAwIDAgOTYgOTYgMHpNMjU2IDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yMzIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxOJGU9TUYsekY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1wZW4iLGljb246WzY0MCw1MTIsWyJ1c2VyLWVkaXQiXSwiZjRmZiIsIk0yNTYuMSAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NmMtOTguNSAwLTE3OC4zIDc5LjgtMTc4LjMgMTc4LjMgMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMTk2LjUgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsNjcuMy02Ny4zYy0yOC0xOC4zLTYxLjQtMjguOS05Ny40LTI4LjlsLTU5LjQgMHpNMzMyLjMgNDY2LjlsLTExLjkgNTkuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42IDEgMCAxLjktLjEgMi45LS4zbDU5LjYtMTEuOWMxMi40LTIuNSAyMy44LTguNiAzMi43LTE3LjVsMTE4LjktMTE4LjktODAtODAtMTE4LjkgMTE4LjljLTguOSA4LjktMTUgMjAuMy0xNy41IDMyLjd6bTI2Ny44LTEyM2MyMi4xLTIyLjEgMjIuMS01Ny45IDAtODBzLTU3LjktMjIuMS04MCAwbC0yOC44IDI4LjggODAgODAgMjguOC0yOC44eiJdfSxGJGU9ekYsTyRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItY2xvY2siLGljb246WzU3Niw1MTIsW10sImY0ZmQiLCJNMjI0IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0xOTQuMyAzMDRsNTkuNCAwYzMuOSAwIDcuOSAuMSAxMS44IC40LTE2LjIgMjguMi0yNS41IDYwLjgtMjUuNSA5NS42IDAgNDEuOCAxMy40IDgwLjUgMzYgMTEyTDQ1LjcgNTEyQzI5LjMgNTEyIDE2IDQ5OC43IDE2IDQ4Mi4zIDE2IDM4My44IDk1LjggMzA0IDE5NC4zIDMwNHpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNmw0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxSJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hvd2VyIixpY29uOls1MTIsNTEyLFsxMjg3MDNdLCJmMmNjIiwiTTY0IDEzMS45YzAtMTkuOCAxNi4xLTM1LjkgMzUuOS0zNS45IDkuNSAwIDE4LjYgMy44IDI1LjQgMTAuNWwxNi4yIDE2LjJjLTIxIDM4LjktMTcuNCA4Ny41IDEwLjkgMTIzTDE1MSAyNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwzNDUgMTIxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTEuMyAxLjNjLTM1LjUtMjguMy04NC4xLTMxLjktMTIzLTEwLjlMMTcwLjUgNjEuM0MxNTEuOCA0Mi41IDEyNi40IDMyIDk5LjkgMzIgNDQuNyAzMiAwIDc2LjcgMCAxMzEuOUwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzE2LjF6TTI1NiAzNTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzItMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxrRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtdXAiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtdXAiXSwiZjE1MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMjQgMTYwYzYuNyAwIDEzIDIuOCAxNy42IDcuN2wxMDQgMTEyYzYuNSA3IDguMiAxNy4yIDQuNCAyNS45UzMzNy41IDMyMCAzMjggMzIwbC0yMDggMGMtOS41IDAtMTguMi01LjctMjItMTQuNHMtMi4xLTE4LjkgNC40LTI1LjlsMTA0LTExMmM0LjUtNC45IDEwLjktNy43IDE3LjYtNy43eiJdfSxCJGU9a0YsU0Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLWxvY2F0aW9uIixpY29uOls2NDAsNTEyLFsibWFwLW1hcmtlZCJdLCJmNTlmIiwiTTU3NiA0OGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNEw0MTMuNSA3Ny41IDIzNC4xIDE3LjZjLTguMS0yLjctMTYuOC0yLjEtMjQuNCAxLjdsLTEyOCA2NEM3MC44IDg4LjggNjQgOTkuOSA2NCAxMTJsMCAzNTJjMCAxMS4xIDUuNyAyMS40IDE1LjIgMjcuMnMyMS4yIDYuNCAzMS4xIDEuNGwxMTYuMS01OC4xIDE3My4zIDU3LjhjLTQuMy02LjQtOC41LTEzLjEtMTIuNi0xOS45LTExLTE4LjMtMjEuOS0zOS4zLTMwLTYxLjhsLTEwMS4yLTMzLjcgMC0yODQuNSAxMjggNDIuNyAwIDk5LjNjMzEtMzUuOCA3Ny01OC40IDEyOC01OC40IDIyLjYgMCA0NC4yIDQuNCA2NCAxMi41TDU3NiA0OHpNMzkyIDM0MS45YzAgNjguOSA2NC4xIDE1MC40IDk4LjYgMTg5LjMgMTEuNiAxMyAzMS4zIDEzIDQyLjkgMCAzNC41LTM4LjkgOTguNi0xMjAuNCA5OC42LTE4OS4zIDAtNjUuMS01My43LTExNy45LTEyMC0xMTcuOVMzOTIgMjc2LjggMzkyIDM0MS45eiJdfSxIJGU9U0YscSRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1mYW5jeSIsaWNvbjpbNTEyLDUxMixbMTI4Mzk1LDEwMDAyXSwiZjVhYyIsIk0zNzMuNSAyNy4xYzE1LTE3LjIgMzYuNy0yNy4xIDU5LjYtMjcuMSA0My42IDAgNzkgMzUuNCA3OSA3OSAwIDIyLjgtOS45IDQ0LjYtMjcuMSA1OS42TDI4My43IDMxMy44IDI3MyAzMDMgMjA5IDIzOSAxOTguMiAyMjguMyAzNzMuNSAyNy4xek0xNjEuMSAyNTlDMTYyIDI2MCAxODggMjg2IDIzOSAzMzdsMTMuOSAxMy45LTE3LjEgNzQuMmMtMy45IDE3LjEtMTYuOSAzMC43LTMzLjggMzUuNGwtMTY5LjggNDcuNSA5Mi4zLTkyLjNjMS4yIC4xIDIuMyAuMiAzLjUgLjIgMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMmMwIDEuMiAuMSAyLjQgLjIgMy41TDMuOSA0NzkuOCA1MS41IDMxMGM0LjctMTYuOSAxOC4zLTI5LjkgMzUuNC0zMy44TDE2MS4xIDI1OXoiXX0sdW09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXVyby1zaWduIixpY29uOls0NDgsNTEyLFs4MzY0LCJldXIiLCJldXJvIl0sImYxNTMiLCJNNzMuMyAxOTJDMTAwLjggOTkuNSAxODYuNSAzMiAyODggMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtNjUuNiAwLTEyMiAzOS41LTE0Ni43IDk2TDI3MiAxOTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0My4yIDBjLS41IDUuMy0uOCAxMC42LS44IDE2cy4zIDEwLjcgLjggMTZMMjcyIDI3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTMwLjcgMGMyNC43IDU2LjUgODEuMSA5NiAxNDYuNyA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xMDEuNSAwLTE4Ny4yLTY3LjUtMjE0LjctMTYwTDQwIDMyMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNC42IDBjLS43LTEwLjUtLjctMjEuNSAwLTMyTDQwIDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzMy4zIDB6Il19LFYkZT11bSxqJGU9dW0sVSRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYiIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMiA0Ny4yLTE3NS45IDExNC44LTUtMS44LTEwLjUtMi44LTE2LjEtMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkwLjkgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMiA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTU1NS4zIDM0MC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2LjdjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6Il19LFckZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXJhLXNpZ24iLGljb246WzM4NCw1MTIsWzgzNTZdLCJmMTk1IiwiTTg0LjkgMjU2bC0yOC40IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEuNiAwQzUzLjIgMTI0LjcgMTE2LjggNDIgMjA3LjYgNDJsOC4yIDBjMzMuNiAwIDY2LjIgMTEuMyA5Mi41IDMyLjJsMTYuMSAxMi43YzEzLjkgMTEgMTYuMiAzMS4xIDUuMiA0NXMtMzEuMSAxNi4yLTQ1IDUuMmwtMTYuMS0xMi43Yy0xNS0xMS45LTMzLjYtMTguNC01Mi44LTE4LjRsLTguMiAwYy01My44IDAtOTAuMSA1Mi45LTczLjUgMTAybDE2Mi40IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NS4xIDBjMi4zIDEwLjYgMy42IDIxLjMgMy45IDMybDE0MS4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMTUwIDMzNmMtNC44IDE4LjYtMTIuNiAzNi41LTIzLjYgNTIuOWwtMTguMSAyNy4xIDIxMi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI3MiAwYy0xMS44IDAtMjIuNi02LjUtMjguMi0xNi45cy01LTIzIDEuNi0zMi45bDUxLjItNzYuOGMzLjctNS42IDYuOS0xMS40IDkuNC0xNy40bC0yNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDM0LjggMGMtLjUtMTAuOC0yLjYtMjEuNi02LjQtMzJ6Il19LHBsPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Inllbi1zaWduIixpY29uOlszODQsNTEyLFsxNjUsImNueSIsImpweSIsInJtYiIsInllbiJdLCJmMTU3IiwiTTc0LjkgNDYuN2MtOS42LTE0LjktMjkuNC0xOS4yLTQ0LjItOS42UzExLjUgNjYuNCAyMS4xIDgxLjNMMTQzLjcgMjcyIDg4IDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgMzItNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC0zMiA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NS43IDAgMTIyLjYtMTkwLjdjOS42LTE0LjkgNS4zLTM0LjctOS42LTQ0LjJzLTM0LjctNS4zLTQ0LjIgOS42TDE5MiAyMjguOCA3NC45IDQ2Ljd6Il19LEckZT1wbCxZJGU9cGwsWiRlPXBsLFgkZT1wbCxLJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94LW9wZW4iLGljb246WzY0MCw1MTIsW10sImY0OWUiLCJNNTYwLjMgMjM3LjJjMTAuNCAxMS44IDI4LjMgMTQuNCA0MS44IDUuNSAxNC43LTkuOCAxOC43LTI5LjcgOC45LTQ0LjRsLTQ4LTcyYy0yLjgtNC4yLTYuNi03LjctMTEuMS0xMC4yTDM1MS40IDQuN2MtMTkuMy0xMC43LTQyLjgtMTAuNy02Mi4yIDBMODguOCAxMTZjLTUuNCAzLTkuNyA3LjQtMTIuNiAxMi44TDI3LjcgMjE4LjdjLTEyLjYgMjMuNC0zLjggNTIuNSAxOS42IDY1LjFsMzMgMTcuNyAwIDUzLjNjMCAyMyAxMi40IDQ0LjMgMzIuNCA1NS43bDE3NiA5OS43YzE5LjYgMTEuMSA0My41IDExLjEgNjMuMSAwbDE3Ni05OS43YzIwLjEtMTEuNCAzMi40LTMyLjYgMzIuNC01NS43bDAtMTE3LjV6bS0yNDAtOS44TDE3MC4yIDE0NCAzMjAuMyA2MC42IDQ3MC40IDE0NCAzMjAuMyAyMjcuNHptLTQxLjUgNTAuMmwtMjEuMyA0Ni4yLTE2NS44LTg4LjggMjUuNC00Ny4yIDE2MS43IDg5Ljh6Il19LFEkZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1maWVsZCIsaWNvbjpbNjQwLDUxMixbXSwiZTU4ZCIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyMjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsNDAuNCAwYzMyLjQgMCA2MS42IDE5LjYgNzQgNDkuNWw0My44IDEwNi4zIDEuNyA0LjIgMjQuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLS40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04bC0xNDQuNyAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTMuNiAuMi03LjEgLjYtMTAuNS0xOS02LjQtMzIuNi0yNC40LTMyLjYtNDUuNWwwLTQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtMzJ6bTM1MiAzMmwwIDk2IDgyLjEgMC0zNS40LTg2LjFjLTIuNS02LTguMy05LjktMTQuOC05LjlMMzg0IDEyOHpNMTkyIDM5MmE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yODAgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxKJGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tcGluLWxvY2siLGljb246WzUxMiw1MTIsW10sImU1MWYiLCJNMCAxODguNkMwIDg0LjQgODYgMCAxOTIgMCAyOTQuMSAwIDM3Ny42IDc4LjMgMzgzLjYgMTc3IDMyMC43IDE4NS4xIDI3MiAyMzguOCAyNzIgMzA0bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDc1LjdjLTkuOSAxMS42LTE4LjkgMjEuNy0yNi40IDI5LjgtMTEuOCAxMi44LTMxLjUgMTIuOC00My4zIDAtNTAuMi01NC41LTE3MC40LTE5Ny41LTE3MC40LTMxNi44ek0xOTIgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0yNDAgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTI4OCA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LENGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1wcmF5aW5nIixpY29uOlszODQsNTEyLFsxMjg3MjAsInByYXkiXSwiZjY4MyIsIk0zMjAgNjRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek0yMDAuNyAyNjRsMjIuOSAzMS41YzYuNSA4LjkgMTYuMyAxNC43IDI3LjIgMTYuMXMyMS45LTEuNyAzMC40LTguN2w4OC03MmMxNy4xLTE0IDE5LjYtMzkuMiA1LjYtNTYuM3MtMzkuMi0xOS42LTU2LjMtNS42bC01NS4yIDQ1LjItMjYuMi0zNmMtMTUuNi0yMS41LTQwLjYtMzQuMi02Ny4yLTM0LjItMzAuOSAwLTU5LjIgMTcuMS03My42IDQ0LjRMNDcuOCAyODAuOWMtMjAuMiAzOC41LTkuNCA4NS45IDI1LjYgMTExLjhMMTI2LjYgNDMyIDQwIDQzMmMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwyMDggMGMxNy4zIDAgMzIuNi0xMS4xIDM4LTI3LjVzLS4zLTM0LjQtMTQuMi00NC43bC0xMTYuMS04NS44IDQ1LTkweiJdfSxlQWU9Q0YsdEFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC1saXN0IixpY29uOlszODQsNTEyLFtdLCJmNDZkIiwiTTMxMS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJ6TTI0OCAxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwek0xMjggMjU2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTMyIDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNOTYgNDE2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYUFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhY2stZG9sbGFyIixpY29uOls1MTIsNTEyLFsxMjgxNzZdLCJmODFkIiwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0yNjAgMjI0Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMjE2IDM4NGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHoiXX0saUFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdW50YWluLXN1biIsaWNvbjpbNTc2LDUxMixbXSwiZTUyZiIsIk0yNTYuNSAwYzE0LjcgMCAyOC4yIDguMSAzNS4yIDIxbDIxNiA0MDBjNi43IDEyLjQgNi40IDI3LjQtLjggMzkuNS03LjIgMTIuMS0yMC4zIDE5LjUtMzQuMyAxOS41bC00MzIgMGMtMTQuMSAwLTI3LjEtNy40LTM0LjMtMTkuNXMtNy41LTI3LjEtLjgtMzkuNWwyMTYtNDAwIDIuOS00LjZDMjMxLjcgNi4yIDI0My42IDAgMjU2LjUgMHpNMTcwLjQgMjQ5LjlsMjYuOCAyNi44YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDQzLjMtNDMuM2M2LTYgMTQuMS05LjQgMjIuNi05LjRsNDIuOCAwLTcyLjEtMTMzLjUtODYuMSAxNTkuNHpNNDk2LjUgMTYwYTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYweiJdfSxfRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC13aWRlLXNob3J0IixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtdXAiXSwiZjE2MSIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTMyMCA0ODBsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6Il19LHJBZT1fRixzQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MiIsIk0yMjQgMTI4YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDMzNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHpNMzkyIDE0NGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMGMtMTguMiAyNi0yOC44IDU3LjUtMjguOCA5MS42bDAgOGMwIDguNCAxLjQgMTYuNSA0LjEgMjRsLTc4LjggMEM0MS42IDM2OCAzMiAzNTguNCAzMiAzNDYuN0wzMiAzMzZjMC01MyA0My05NiA5Ni05NiAxMCAwIDE5LjcgMS41IDI4LjggNC40ek03MiAxNDRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0wIDQ0MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA0NjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxuQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1vZi1kYXZpZCIsaWNvbjpbNTEyLDUxMixbMTAwMTddLCJmNjlhIiwiTTQxNS45IDMxMS45bC0yNy44IDQ4LjEgNTUuNyAwLTI3LjgtNDguMXpNMzgzLjYgMjU2bC02MC4yLTEwNC0xMzQuOCAwLTYwLjIgMTA0IDYwLjIgMTA0IDEzNC44IDAgNjAuMi0xMDR6bTY0LjcgMGw1OC40IDEwMC45YzMuNSA2IDUuMyAxMi44IDUuMyAxOS43IDAgMjEuNy0xNy42IDM5LjQtMzkuNCAzOS40bC0xMTcgMC02MS4zIDEwNS44QzI4Ni41IDUzNS42IDI3MS44IDU0NCAyNTYgNTQ0cy0zMC41LTguNC0zOC40LTIyLjJsLTYxLjMtMTA1LjgtMTE3IDBjLTIxLjcgMC0zOS40LTE3LjYtMzkuNC0zOS40IDAtNi45IDEuOC0xMy43IDUuMy0xOS43TDYzLjcgMjU2IDUuMyAxNTUuMUMxLjggMTQ5LjEgMCAxNDIuMyAwIDEzNS40IDAgMTEzLjYgMTcuNiA5NiAzOS40IDk2bDExNyAwIDYxLjMtMTA1LjhDMjI1LjUtMjMuNiAyNDAuMi0zMiAyNTYtMzJzMzAuNSA4LjQgMzguNCAyMi4ybDYxLjMgMTA1LjggMTE3IDBjMjEuNyAwIDM5LjQgMTcuNiAzOS40IDM5LjQgMCA2LjktMS44IDEzLjctNS4zIDE5LjdMNDQ4LjMgMjU2ek0zODguMSAxNTJsMjcuOCA0OC4xIDI3LjgtNDguMS01NS43IDB6TTI5MSA5NmwtMzUtNjAuNC0zNSA2MC40IDcwIDB6TTEyMy45IDE1MmwtNTUuNyAwIDI3LjggNDguMSAyNy44LTQ4LjF6TTk2LjEgMzExLjlsLTI3LjggNDguMSA1NS43IDAtMjcuOC00OC4xek0yMjEgNDE2bDM1IDYwLjQgMzUtNjAuNC03MCAweiJdfSxvQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZXMtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQ4MSIsIk05NiAzNTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgxLjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0OTMuMyAyOTAuN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiA2NGMwLTM1LjMtMjguNy02NC02NC02NEwxNjAgMEMxMjQuNyAwIDk2IDI4LjcgOTYgNjRsMCAyODh6TTI4OCAxMTJsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCA0OCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQ4IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZ6TTQ4IDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEwNi43IDAgMTIwTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzI4eiJdfSxsQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXVzdHJhbC1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMGE5IiwiTTI2Ni41IDI0MGwtODUgMCA0Mi41LTEwNi40IDQyLjUgMTA2LjR6bTY4LjkgMEwyNjIuOSA1OC4zQzI1Ni41IDQyLjQgMjQxLjEgMzIgMjI0IDMycy0zMi41IDEwLjQtMzguOSAyNi4zTDExMi42IDI0MCAzMiAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjEuNCAwLTE5LjIgNDgtNDIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDIzLjEgMC0yMC44IDUyLjFjLTYuNiAxNi40IDEuNCAzNSAxNy45IDQxLjZzMzUtMS40IDQxLjYtMTcuOWwzMC4zLTc1LjkgMjAwIDAgMzAuMyA3NS45YzYuNiAxNi40IDI1LjIgMjQuNCA0MS42IDE3LjlzMjQuNC0yNS4yIDE3LjktNDEuNkwzOTIuOSAzODQgNDE2IDM4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDIuMyAwLTE5LjItNDggNjEuNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MC42IDB6bS00OS43IDQ4bDE5LjIgNDgtMTYxLjYgMCAxOS4yLTQ4IDEyMy4zIDB6Il19LGNBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtdXNlciIsaWNvbjpbMzg0LDUxMixbXSwiZjdmMyIsIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTkyIDM0NGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNOTguMyA0MTNjLTEyLjkgMTUuNiAyLjIgMzUgMjIuNCAzNWwxNDIuNSAwYzIwLjIgMCAzNS4zLTE5LjQgMjIuNC0zNS0xNC43LTE3LjctMzYuOS0yOS02MS43LTI5bC02NCAwYy0yNC44IDAtNDcgMTEuMy02MS43IDI5eiJdfSxkQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbWFnZSIsaWNvbjpbMzg0LDUxMixbMTI4NDQzXSwiZjFjNSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTI4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05Mi42IDQ0OGwxOTguOCAwYzE1LjggMCAyOC42LTEyLjggMjguNi0yOC42IDAtNy4zLTIuOC0xNC40LTcuOS0xOS43TDIxNS4zIDI5Ny45Yy02LTYuMy0xNC40LTkuOS0yMy4yLTkuOWwtLjMgMGMtOC44IDAtMTcuMSAzLjYtMjMuMiA5LjlMNzEuOSAzOTkuN0M2Ni44IDQwNSA2NCA0MTIuMSA2NCA0MTkuNCA2NCA0MzUuMiA3Ni44IDQ0OCA5Mi42IDQ0OHoiXX0sVEY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXJpZ2h0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXJpZ2h0Il0sImYxNTIiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNFMxNjAgMzY5LjUgMTYwIDM2MGwwLTIwOGMwLTkuNSA1LjctMTguMiAxNC40LTIyczE4LjktMi4xIDI1LjkgNC40bDExMiAxMDRjNC45IDQuNSA3LjcgMTAuOSA3LjcgMTcuNnoiXX0scEFlPVRGLGhBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsIixpY29uOls1MTIsNTEyLFsxMjk1MTRdLCJmNDkyIiwiTTM0Mi42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzA2LjcgNjQgMjguMSAzNDIuNkMxMC4xIDM2MC42IDAgMzg1IDAgNDEwLjVMMCA0MTZjMCA1MyA0MyA5NiA5NiA5Nmw1LjUgMGMyNS41IDAgNDkuOS0xMC4xIDY3LjktMjguMWwyNzguNi0yNzguNiA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6TTIwNS4zIDI1NmwxNDYuNy0xNDYuNyA1MC43IDUwLjctOTYgOTYtMTAxLjUgMHoiXX0sdUFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbGljb3B0ZXIiLGljb246WzU3Niw1MTIsWzEyODY0MV0sImY1MzMiLCJNMTc2IDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE1MiAwIDAgNDgtMjIwLjggMC0zMi44LTM5LjRDNjkuOSA4My4yIDYzLjEgODAgNTYgODBMMjQgODBDMTUuNyA4MCA4IDg0LjMgMy42IDkxLjRzLTQuOCAxNS45LTEuMSAyMy40bDQ4IDk2QzU0LjYgMjE4LjkgNjIuOSAyMjQgNzIgMjI0bDEwNy44IDAgMTA0IDE0My4xYzE1LjEgMjAuNyAzOS4xIDMyLjkgNjQuNyAzMi45bDc1LjUgMGM3NS4xIDAgMTM2LTYwLjkgMTM2LTEzNlM0OTkuMSAxMjggNDI0IDEyOGwtNDggMCAwLTQ4IDE1MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE3NiAzMnpNMzc2IDE5Mmw0OCAwYzM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcybC00OCAwIDAtMTQ0ek01NTIgNDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNCAwIDQuNC0zLjYgOC04IDhsLTI3MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxmQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWl0dGVuIixpY29uOls0NDgsNTEyLFtdLCJmN2I1IiwiTTM1MiAzODRMNjQgMzg0IDUuNCAxNzguOUMxLjggMTY2LjQgMCAxNTMuNCAwIDE0MC4zIDAgNjIuOCA2Mi44IDAgMTQwLjMgMGwzLjQgMGM2NiAwIDEyMy41IDQ0LjkgMTM5LjUgMTA4LjlsMzEuNCAxMjUuOCAxNy42LTIwLjFDMzQ0LjggMjAwLjIgMzYyLjkgMTkyIDM4MiAxOTJsMi44IDBjMzQuOSAwIDYzLjMgMjguMyA2My4zIDYzLjMgMCAxNS45LTYgMzEuMi0xNi44IDQyLjlMMzUyIDM4NHpNMzIgNDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2eiJdfSxtQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2FzLXB1bXAiLGljb246WzUxMiw1MTIsWzk5ODFdLCJmNTJmIiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMjU2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTIgOCAwYzQ4LjYgMCA4OCAzOS40IDg4IDg4bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE1NGMtMjcuNi03LjEtNDgtMzIuMi00OC02MmwwLTU5LjUtMjUuOC0yOC4zYy04LjktOS44LTguMi0yNSAxLjYtMzMuOXMyNS04LjIgMzMuOSAxLjZsNzEuNyA3OC44YzkuNCAxMC4zIDE0LjYgMjMuNyAxNC42IDM3LjdMNTEyIDM3NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnMtNzItMzIuMi03Mi03MmwwLTMyYzAtMjIuMS0xNy45LTQwLTQwLTQwbC04IDAgMCAxNjEuNGM5LjMgMy4zIDE2IDEyLjIgMTYgMjIuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNEw0MCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTAuNSA2LjctMTkuMyAxNi0yMi42TDMyIDY0ek05NiA4MGwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZMMTEyIDY0Yy04LjggMC0xNiA3LjItMTYgMTZ6Il19LGdBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU0ZTgiLCJNNjQgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODEuNGMtMjQuNC0xMS4yLTUxLjQtMTcuNC04MC0xNy40LTg3LjcgMC0xNjEuNyA1OC44LTE4NC43IDEzOS4yLTcuMS0xLjMtMTQuMS00LjItMjAuMS04LjhsLTIwOC0xNTZDNzEuMSAxNDEuMyA2NCAxMjcuMSA2NCAxMTJ6TTMwNCAzNjhjMCAyOC42IDYuMiA1NS42IDE3LjQgODBMMTI4IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xODggMTk4LjQgMTQ4LjhjMTIuNiA5LjQgMjYuOSAxNS40IDQxLjcgMTcuOSAwIDEuOC0uMSAzLjUtLjEgNS4zem00OCAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxMRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc2thdGluZyIsaWNvbjpbNTEyLDUxMixbInNrYXRpbmciXSwiZjdjNSIsIk0zNjggNTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMjggMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1MC4xIDBjNDkuOSAwIDc0LjkgNjAuMyAzOS42IDk1LjZsLTYzLjkgNjMuOSA2OS44IDMxYzE3LjMgNy43IDI4LjUgMjQuOSAyOC41IDQzLjlsMCA4NS42YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNzUuMi04Mi40LTM2LjZjLTQxLTE4LjItNTEtNzItMTkuMy0xMDMuN2w0MC40LTQwLjQtOTguNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODkuNCAzNjEuNGw3NS45LTc1LjljNy43IDE5LjcgMjEuNiAzNy4zIDQxIDQ5LjZsLTcxLjYgNzEuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6bTM0Ni41IDg3LjFjOC42IDIuMSAxMy44IDEwLjggMTEuNiAxOS40bC0uNCAxLjdjLTYuMiAyNC45LTI4LjYgNDIuNC01NC4zIDQyLjRMMzA0IDUxMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OC44IDBjMTEgMCAyMC42LTcuNSAyMy4zLTE4LjJsLjQtMS43YzIuMS04LjYgMTAuOC0xMy44IDE5LjQtMTEuNnpNMTQzLjIgNDg2LjNsLTYuMiAzLjFjLTIxLjYgMTAuOC00Ny42IDYuNi02NC42LTEwLjVMMTIuNyA0MTkuM2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDU5LjYgNTkuNmM3LjMgNy4zIDE4LjUgOS4xIDI3LjcgNC41bDYuMi0zLjFjNy45LTQgMTcuNS0uNyAyMS41IDcuMnMuNyAxNy41LTcuMiAyMS41eiJdfSxiQWU9TEYsYWc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VuIixpY29uOls1NzYsNTEyLFs5NzI4XSwiZjE4NSIsIk0yODgtMzJjOC40IDAgMTYuMyA0LjQgMjAuNiAxMS43TDM2NC4xIDcyLjMgNDY4LjkgNDZjOC4yLTIgMTYuOSAuNCAyMi44IDYuM1M1MDAgNjcgNDk4IDc1LjFsLTI2LjMgMTA0LjcgOTIuNyA1NS41YzcuMiA0LjMgMTEuNyAxMi4yIDExLjcgMjAuNnMtNC40IDE2LjMtMTEuNyAyMC42TDQ3MS43IDMzMi4xIDQ5OCA0MzYuOGMyIDguMi0uNCAxNi45LTYuMyAyMi44UzQ3NyA0NjggNDY4LjkgNDY2bC0xMDQuNy0yNi4zLTU1LjUgOTIuN2MtNC4zIDcuMi0xMi4yIDExLjctMjAuNiAxMS43cy0xNi4zLTQuNC0yMC42LTExLjdMMjExLjkgNDM5LjcgMTA3LjIgNDY2Yy04LjIgMi0xNi44LS40LTIyLjgtNi4zUzc2IDQ0NSA3OCA0MzYuOGwyNi4yLTEwNC43LTkyLjYtNTUuNUM0LjQgMjcyLjIgMCAyNjQuNCAwIDI1NnM0LjQtMTYuMyAxMS43LTIwLjZMMTA0LjMgMTc5LjkgNzggNzUuMWMtMi04LjIgLjMtMTYuOCA2LjMtMjIuOFM5OSA0NCAxMDcuMiA0NmwxMDQuNyAyNi4yIDU1LjUtOTIuNiAxLjgtMi42YzQuNS01LjcgMTEuNC05LjEgMTguOC05LjF6bTAgMTQ0YTE0NCAxNDQgMCAxIDAgMCAyODggMTQ0IDE0NCAwIDEgMCAwLTI4OHptMCAyNDBhOTYgOTYgMCAxIDEgMC0xOTIgOTYgOTYgMCAxIDEgMCAxOTJ6Il19LCRGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsIixpY29uOls1MTIsNTEyLFsxMjkzNTgsOTkxOCwiYmFzZWJhbGwtYmFsbCJdLCJmNDMzIiwiTTIzMi40IDEuMWMtMTIyLjIgMTEuNC0yMTkuNSAxMDguNy0yMzAuOSAyMzAuOSAxNi4yLS4xIDMyLTEuOCA0Ny4yLTUgMTMtMi43IDI1LjcgNS41IDI4LjQgMTguNXMtNS41IDI1LjctMTguNSAyOC40Yy0xOC40IDMuOS0zNy42IDYtNTcuMSA2LjEgMTEuNCAxMjIuMiAxMDguNyAyMTkuNSAyMzAuOSAyMzAuOSAuMS0xOS41IDIuMi0zOC43IDYuMS01Ny4xIDIuNy0xMyAxNS41LTIxLjMgMjguNC0xOC41czIxLjMgMTUuNSAxOC41IDI4LjRjLTMuMiAxNS4yLTQuOSAzMS01IDQ3LjIgMTIyLjItMTEuNCAyMTkuNS0xMDguNyAyMzAuOS0yMzAuOS0xNi4yIC4xLTMyIDEuOC00Ny4yIDUtMTMgMi43LTI1LjctNS41LTI4LjQtMTguNXM1LjUtMjUuNyAxOC41LTI4LjRjMTguNC0zLjkgMzcuNi02IDU3LjEtNi4xLTExLjQtMTIyLjItMTA4LjctMjE5LjUtMjMwLjktMjMwLjktLjEgMTkuNS0yLjIgMzguNy02LjEgNTcuMS0yLjcgMTMtMTUuNSAyMS4zLTI4LjQgMTguNXMtMjEuMy0xNS41LTE4LjUtMjguNGMzLjItMTUuMiA0LjktMzEgNS00Ny4yem0yLjggMTUxLjRjLTIxLjQgMzIuOS00OS41IDYwLjktODIuMyA4Mi4zLTExLjEgNy4yLTI2IDQuMS0zMy4yLTdzLTQuMS0yNiA3LTMzLjJjMjcuMi0xNy43IDUwLjUtNDEgNjguMy02OC4zIDcuMi0xMS4xIDIyLjEtMTQuMyAzMy4yLTdzMTQuMyAyMi4xIDcgMzMuMnpNMzkzLjEgMjg0LjJjNy4yIDExLjEgNC4xIDI2LTcgMzMuMi0yNy4yIDE3LjctNTAuNSA0MS02OC4zIDY4LjMtNy4yIDExLjEtMjIuMSAxNC4zLTMzLjIgN3MtMTQuMy0yMi4xLTctMzMuMmMyMS40LTMyLjkgNDkuNS02MC45IDgyLjMtODIuMyAxMS4xLTcuMiAyNi00LjEgMzMuMiA3eiJdfSx2QWU9JEYseUFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImltYWdlIixpY29uOls0NDgsNTEyLFtdLCJmMDNlIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDgwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMjcyIDIyNGM4LjQgMCAxNi4xIDQuNCAyMC41IDExLjVsODggMTQ0YzQuNSA3LjQgNC43IDE2LjcgLjUgMjQuM1MzNjguNyA0MTYgMzYwIDQxNkw4OCA0MTZjLTguOSAwLTE3LjItNS0yMS4zLTEyLjlzLTMuNS0xNy41IDEuNi0yNC44bDU2LTgwYzQuNS02LjQgMTEuOC0xMC4yIDE5LjctMTAuMnMxNS4yIDMuOCAxOS43IDEwLjJsMjYuNCAzNy44IDYxLjQtMTAwLjVjNC40LTcuMSAxMi4xLTExLjUgMjAuNS0xMS41eiJdfSx4QWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZGVmIixpY29uOlszODQsNTEyLFtdLCJlMWZlIiwiTTY0IDM5MC4zTDE1My41IDI1NiA2NCAxMjEuNyA2NCAzOTAuM3pNMTAyLjUgNDQ4TDI4MS41IDQ0OCAxOTIgMzEzLjcgMTAyLjUgNDQ4em0xMjgtMTkyTDMyMCAzOTAuMyAzMjAgMTIxLjcgMjMwLjUgMjU2ek0yODEuNSA2NEwxMDIuNSA2NCAxOTIgMTk4LjMgMjgxLjUgNjR6TTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwTDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHoiXX0sQUY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTM2LCJiYXNrZXRiYWxsLWJhbGwiXSwiZjQzNCIsIk05Mi43IDU4LjhsNzguNCA3OC40YzE4LjItMjUgMjguOS01NS45IDI4LjktODkuMiAwLTE0LjEtMS45LTI3LjctNS41LTQwLjYtMzggOS40LTcyLjYgMjcuMi0xMDEuOCA1MS40ek01OC44IDkyLjdjLTI0LjIgMjkuMi00MiA2My44LTUxLjQgMTAxLjggMTIuOSAzLjYgMjYuNSA1LjUgNDAuNiA1LjUgMzMuMyAwIDY0LjEtMTAuNyA4OS4yLTI4LjlMNTguOCA5Mi43ek0yNTYgMGMtNC42IDAtOS4yIC4xLTEzLjcgLjQgMy43IDE1LjMgNS43IDMxLjIgNS43IDQ3LjYgMCA0Ni42LTE1LjkgODkuNC00Mi42IDEyMy40TDI1NiAyMjIuMSA0MTkuMyA1OC44QzM3NC45IDIyLjEgMzE4LjEgMCAyNTYgMHpNNDggMjQ4Yy0xNi40IDAtMzIuNC0yLTQ3LjYtNS43LS4yIDQuNS0uNCA5LjEtLjQgMTMuNyAwIDYyLjEgMjIuMSAxMTguOSA1OC44IDE2My4zTDIyMi4xIDI1NiAxNzEuNCAyMDUuNEMxMzcuNCAyMzIuMSA5NC42IDI0OCA0OCAyNDh6bTQ2My42IDIxLjdjLjItNC41IC40LTkuMSAuNC0xMy43IDAtNjIuMS0yMi4xLTExOC45LTU4LjgtMTYzLjNMMjg5LjkgMjU2IDM0MC42IDMwNi42YzM0LTI2LjcgNzYuOS00Mi42IDEyMy40LTQyLjYgMTYuNCAwIDMyLjQgMiA0Ny42IDUuN3ptLTcuMSA0Ny44Yy0xMi45LTMuNi0yNi41LTUuNS00MC42LTUuNS0zMy4zIDAtNjQuMSAxMC43LTg5LjIgMjguOWw3OC40IDc4LjRjMjQuMi0yOS4yIDQyLTYzLjggNTEuNC0xMDEuOHpNMzQwLjkgMzc0LjhjLTE4LjIgMjUtMjguOSA1NS45LTI4LjkgODkuMiAwIDE0LjEgMS45IDI3LjcgNS41IDQwLjYgMzgtOS40IDcyLjYtMjcuMiAxMDEuOC01MS40bC03OC40LTc4LjR6bS0zNC4zLTM0LjNMMjU2IDI4OS45IDkyLjcgNDUzLjJjNDQuMyAzNi43IDEwMS4yIDU4LjggMTYzLjMgNTguOCA0LjYgMCA5LjItLjEgMTMuNy0uNC0zLjctMTUuMy01LjctMzEuMi01LjctNDcuNiAwLTQ2LjYgMTUuOS04OS40IDQyLjYtMTIzLjR6Il19LHdBZT1BRixERj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW5jaWwiLGljb246WzUxMiw1MTIsWzk5OTksNjE1MDQsInBlbmNpbC1hbHQiXSwiZjMwMyIsIk0zNi40IDM1My4yYzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdsMTgxLjItMTgxLjIgMzMuOS0zMy45YzE2LjYgMTYuNiA1MS4zIDUxLjMgMTA0IDEwNGwzMy45IDMzLjktMzMuOSAzMy45LTE4MS4yIDE4MS4yYy0xMC43IDEwLjctMjQuMSAxOC41LTM4LjcgMjIuNkwzMC40IDUxMC42Yy04LjMgMi4zLTE3LjMgMC0yMy40LTYuMlMtMS40IDQ4OS4zIC45IDQ4MUwzNi40IDM1My4yem01NS42LTMuN2MtNC40IDQuNy03LjYgMTAuNC05LjMgMTYuNmwtMjQuMSA4Ni45IDg2LjktMjQuMWM2LjQtMS44IDEyLjItNS4xIDE3LTkuN0w5MS45IDM0OS41em0zNTQtMTQ2LjFjLTE2LjYtMTYuNi01MS4zLTUxLjMtMTA0LTEwNEwzMDggNjUuNUMzMzQuNSAzOSAzNDkuNCAyNC4xIDM1Mi45IDIwLjYgMzY2LjQgNyAzODQuOC0uNiA0MDQtLjZTNDQxLjYgNyA0NTUuMSAyMC42bDM1LjcgMzUuN0M1MDQuNCA2OS45IDUxMiA4OC4zIDUxMiAxMDcuNHMtNy42IDM3LjYtMjEuMiA1MS4xYy0zLjUgMy41LTE4LjQgMTguNC00NC45IDQ0Ljl6Il19LE1BZT1ERix6QWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctYXJyb3ctbG9vcC1sZWZ0IixpY29uOls2NDAsNTEyLFtdLCJlNTUxIiwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNMzU5IDMzNWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMS0zMSAxMDIuMSAwYzEuMiAwIDIuNC0uMSAzLjUtLjMgNTYuMS0zLjkgMTAwLjUtNTAuNiAxMDAuNS0xMDcuNyAwLTU5LjYtNDguNC0xMDgtMTA4LTEwOGwtOTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5MiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwcy0yNi45IDYwLTYwIDYwbC05OC4xIDAgMzEtMzFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNzIgNzJ6Il19LGtBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXNpeCIsaWNvbjpbNDQ4LDUxMixbOTg2MV0sImY1MjYiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE2MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xMjggMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxFRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtZG93biIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS1kb3duIl0sImYxMDMiLCJNMjE0LjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE5MiA0MDIuNyAzMjkuNCAyNjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwem0xNjAtMzUybC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxOTIgMjEwLjcgMzI5LjQgNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zeiJdfSxTQWU9RUYsQ0FlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN5cmluZ2UiLGljb246WzU3Niw1MTIsWzEyODEzN10sImY0OGUiLCJNNDk3LjUtMTdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtNDYuMSA0Ni4xLTYzLTYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcgNy03OC4xIDc4LjEgNDEgNDFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDEtNDEtNDYuMSA0Ni4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQxLTQxLTM3LjcgMzcuN2MtMTAuNSAxMC41LTE2LjQgMjQuNy0xNi40IDM5LjZsMCA4OC44LTU3IDU3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTctNTcgODguOCAwYzE0LjkgMCAyOS4xLTUuOSAzOS42LTE2LjRsMjI5LjctMjI5LjcgNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjMtNjMgNDYuMS00Ni4xIDE1IDE1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjQtNjR6Il19LFBGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWF0LWF3biIsaWNvbjpbNTc2LDUxMixbIndoZWF0LWFsdCJdLCJlMmNkIiwiTTc5LjcgMjM0LjZjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4yIDgzLjkgMzEuNy03LjcgNjYuMiAxIDkwLjYgMjUuM2w0Ni4xIDQ2LjFjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMEwxMzQuMSA0NDQuMyA0OS40IDUyOWMtOS40IDkuNC0yNC41IDkuNC0zMy45IDAtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODQuNy04NC43LTMwLjUtMzAuNWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXptMTA0LTEwNGM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjIgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDQ2LjEgNDYuMWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwbC05NC45LTk0LjljLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTQ5NS4yIDE1YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4yTDUyOS4yIDQ5IDQxNC43IDE2My40YzcuNyAxIDE1LjIgMyAyMi41IDUuOUw0OTUuNSAxMTFjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFsLTEuNyAxLjgtNTIuNyA1Mi43IDM5IDM5YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMWM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDM5IDM5IDUyLjctNTIuN2M5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01OC4zIDU4LjNjMi44IDcuMSA0LjcgMTQuNSA1LjcgMjIuMUw0OTUuMiAxNXoiXX0sX0FlPVBGLFRBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS11cCIsaWNvbjpbNTEyLDUxMixbXSwiZTIyZCIsIk0yMDAgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDE3My42IDE1OS4yYzYuNiA2LjEgMTAuNCAxNC42IDEwLjQgMjMuNmwwIDQzLjdjMCAxMC45LTEwLjcgMTguNi0yMS4xIDE1LjJsLTE2Mi45LTU0LjMgMCA5OS43IDY2IDUyLjhjMy44IDMgNiA3LjYgNiAxMi41bDAgMTkuOGMwIDEwLjQtOS44IDE4LTE5LjkgMTUuNUwyNTYgNTEyIDE0Ny45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzI2LjcgMzk2LjQgMTYgMzg4LjcgMTYgMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjAwIDE1MS4zIDIwMCAyNHoiXX0sTEFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLWNlbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNyIsIk0zNTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem05NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNTIgMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnoiXX0sJEFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvY2tleS1wdWNrIixpY29uOls1MTIsNTEyLFtdLCJmNDUzIiwiTTI1NiAyNTZDMTE0LjYgMjU2IDAgMjEzIDAgMTYwczExNC42LTk2IDI1Ni05NiAyNTYgNDMgMjU2IDk2LTExNC42IDk2LTI1NiA5NnpNMCAzNTJMMCAyNDIuN2MxNi45IDEyLjMgMzcgMjIuMiA1OC4xIDMwLjEgNTMgMTkuOSAxMjMgMzEuMiAxOTcuOSAzMS4yczE0NC45LTExLjMgMTk3LjktMzEuMmMyMS4yLTcuOSA0MS4yLTE3LjggNTguMS0zMC4xTDUxMiAzNTJjMCA1My0xMTQuNiA5Ni0yNTYgOTZTMCA0MDUgMCAzNTJ6Il19LElGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1hcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFsiYXJyb3ctY2lyY2xlLWxlZnQiXSwiZjBhOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM1IDIzOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTM5IDM5IDE1MC4xIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE1MC4xIDAgMzkgMzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtODAtODBjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxBQWU9SUYsREFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWJvbHQiLGljb246WzY0MCw1MTIsW10sImU1NWIiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFM0MzMuMiA0MTYgNDQwIDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM1NTguOCAzODQgNTUyIDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LEVBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXN0cm9vbSIsaWNvbjpbNjQwLDUxMixbXSwiZjdiZCIsIk04MCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNTQuOGMtOC4xIDkuMi0yMS4xIDEzLjItMzMuNSA5LjQtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMjkuNy05NS4yQzQ0LjQgMTU2LjkgODMuNiAxMjggMTI4IDEyOHM4My42IDI4LjkgOTYuOCA3MS4ybDI5LjcgOTUuMmM1LjMgMTYuOS00LjEgMzQuOC0yMSA0MC4xLTEyLjQgMy45LTI1LjQtLjItMzMuNS05LjRMMjAwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOC0xNiAwek0zMjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ2NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDY0IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTQ0MCA0ODBsMC05Ni0xNy44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDktMjYuOWMtMy4yIDAtNi40LS41LTkuNS0xLjUtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMjkuNy05NS4yQzQyOC40IDE1Ni45IDQ2Ny42IDEyOCA1MTIgMTI4czgzLjYgMjguOSA5Ni44IDcxLjJsMjkuNyA5NS4yYzUuMyAxNi45LTQuMSAzNC44LTIxIDQwLjEtMy4yIDEtNi40IDEuNS05LjUgMS41bDkgMjYuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTE3LjggMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyeiJdfSxQQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWxvY2siLGljb246WzY0MCw1MTIsW10sImU0YWQiLCJNMzIwLjUgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2Yy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM2wxNi4yLTE0LjJjMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDI4LjMgMCA1NS40LTUuNyA4MC0xNS45bDAtLjIgMC03Mi4yYy0xNC40IDkuNi0zMC42IDE2LjctNDggMjAuN2wwLTI1Ny45YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjcyIDMwNC4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00MTYuNSA0MDBsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM2wwLTUwLjZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCA1MC42Yy0xOC42IDYuNi0zMiAyNC40LTMyIDQ1LjN6Il19LElBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aW1lbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTI5YyIsIk0xNjAgMTY5LjNjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MFM0OCA1MS44IDQ4IDk2YzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCA1NC43LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDAgMCA1NC43Yy0yOC4zIDEyLjMtNDggNDAuNS00OCA3My4zIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTU0LjcgMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMC01NC43YzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjMgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDU0LjctMjU2IDAgMC01NC43eiJdfSxOQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlnaHRidWxiIixpY29uOlszODQsNTEyLFsxMjgxNjFdLCJmMGViIiwiTTI5Mi45IDM4NGM3LjMtMjIuMyAyMS45LTQyLjUgMzguNC01OS45IDMyLjctMzQuNCA1Mi43LTgwLjkgNTIuNy0xMzIuMSAwLTEwNi04Ni0xOTItMTkyLTE5MlMwIDg2IDAgMTkyYzAgNTEuMiAyMCA5Ny43IDUyLjcgMTMyLjEgMTYuNSAxNy40IDMxLjIgMzcuNiAzOC40IDU5LjlsMjAxLjcgMHpNMjg4IDQzMmwtMTkyIDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMTZ6TTE4NCAxMTJjLTM5LjggMC03MiAzMi4yLTcyIDcyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwIDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0eiJdfSxORj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtcmlnaHQiXSwiZjBhOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNDEtMTU5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDM5LTM5LTE1MC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTUwLjEgMC0zOS0zOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04MCA4MHoiXX0sRkFlPU5GLE9BZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLWFuZC12ZW51cyIsaWNvbjpbNTEyLDUxMixbOTg5M10sImYyMjQiLCJNMzY4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTEyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNC43LTYzIDYzYzE5LjUgMjguNCAzMSA2Mi43IDMxIDk5LjggMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0IDE3My4xbDAgMzQuOSAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zNC45Yy04MS45LTE1LTE0NC04Ni44LTE0NC0xNzMuMSAwLTk3LjIgNzguOC0xNzYgMTc2LTE3NiAzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDYzLTYzLTM0LjcgMHpNMzUyIDIwOGExMTIgMTEyIDAgMSAwIC0yMjQgMCAxMTIgMTEyIDAgMSAwIDIyNCAweiJdfSxpZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuZXR3b3JrLXdpcmVkIixpY29uOls1NzYsNTEyLFtdLCJmNmZmIiwiTTI0OCA4OGw4MCAwIDAgNDgtODAgMCAwLTQ4em0tOC01NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxNiAwIDAgMzItMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMCAwIDMyLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwIDAtMzIgMTkyIDAgMCAzMi0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMCAwLTMyIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwIDAtMzIgMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC05NiAwek00NDggMzc2bDggMCAwIDQ4LTgwIDAgMC00OCA3MiAwem0tMjU2IDBsOCAwIDAgNDgtODAgMCAwLTQ4IDcyIDB6Il19LFJBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1zaGllbGQiLGljb246WzU3Niw1MTIsW10sImU0ZDgiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDEuMiAwYy0xMi41LTE0LjctMjMuMi0zMC44LTMxLjgtNDhsLTg5LjUgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDAgMC0yNi43YzAtMTguMSA2LjEtMzUuMiAxNi42LTQ4LjgtLjQtMS40LS42LTIuOS0uNi00LjVsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxIDg2LjctMjguOWMzLjEtMSA2LjItMS44IDkuMy0yLjVMNDE2IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6bTMyIDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek00NDUuMyA0ODguNWwtMTMuMyA2LjMgMC0xODguMSA5NiAzMiAwIDE5LjZjMCA1NS44LTMyLjIgMTA2LjUtODIuNyAxMzAuM3pNNDIxLjkgMjU5LjVsLTExMiAzNy4zYy0xMy4xIDQuNC0yMS45IDE2LjYtMjEuOSAzMC40bDAgMzEuMWMwIDc0LjQgNDMgMTQyLjEgMTEwLjIgMTczLjdsMTguNSA4LjdjNC44IDIuMiAxMCAzLjQgMTUuMiAzLjRzMTAuNS0xLjIgMTUuMi0zLjRsMTguNS04LjdDNTMzIDUwMC4zIDU3NiA0MzIuNiA1NzYgMzU4LjJsMC0zMS4xYzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC0xMTItMzcuM2MtNi42LTIuMi0xMy43LTIuMi0yMC4yIDB6Il19LEJBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlIixpY29uOls1NzYsNTEyLFtdLCJmMTIxIiwiTTM2MC44IDEuMmMtMTctNC45LTM0LjcgNS0zOS42IDIybC0xMjggNDQ4Yy00LjkgMTcgNSAzNC43IDIyIDM5LjZzMzQuNy01IDM5LjYtMjJsMTI4LTQ0OGM0LjktMTctNS0zNC43LTIyLTM5LjZ6bTY0LjYgMTM2LjFjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDczLjQgNzMuNC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHptLTI3NC43IDBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAxNTAuNiAxODIuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3oiXX0sRkY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlci1wb2ludGVkIixpY29uOls1MTIsNTEyLFsiZmVhdGhlci1hbHQiXSwiZjU2YiIsIk00NzUuMyAuMWM5LjktLjggMTkuNiAzIDI2LjYgMTBzMTAuOCAxNi43IDEwIDI2LjZjLTQgNDkuMy0xNy40IDEyNi4yLTQ2LjMgMTk5LjctMS44IDQuNS01LjUgNy45LTEwLjIgOS4zTDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDM4LjYgMGMxMiAwIDE5LjcgMTIuOCAxMy41IDIzLjEtNCA2LjctOC4zIDEzLjItMTIuNyAxOS42LTIgMi45LTUgNS04LjQgNi4xTDMxMC41IDM2NmMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDE2IDBjMTQuNiAwIDIxIDE3LjQgOC44IDI1LjQtNjggNDUtMTM3LjcgNDMuMy0xODIuNCAzMS4zLTEyLjctMy40LTI0LTkuOS0zNC40LTE3LjlMNDggNDk2Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJsODAtODAgLjUgLjVjLjctMS4zIDEuNi0yLjUgMi43LTMuNkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw4OS43IDMyNi4yYy04LjkgOC45LTI0IDQuNC0yNS04LjItNC4zLTUzLjIgOS4zLTEyMy4xIDcyLjYtMTg2LjQgOTEuMS05MS4xIDI1NC4yLTEyNC43IDMzNy45LTEzMS41eiJdfSxIQWU9RkYscUFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGVmIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xMDBjLTExLjYgMC0yMS4zIDguMi0yMy41IDE5LjItMS44IDguNy0xMC4yIDE0LjMtMTguOSAxMi41cy0xNC4zLTEwLjItMTIuNS0xOC45YzUuMi0yNS42IDI3LjgtNDQuOCA1NC45LTQ0LjggMzAuOSAwIDU2IDI1LjEgNTYgNTYgMCAxOS44LTExLjcgMzcuOC0yOS44IDQ1LjlsLTEwLjQgNC42Yy0xLjIgNy43LTcuOCAxMy41LTE1LjggMTMuNS04LjggMC0xNi03LjItMTYtMTYgMC0xMS4yIDYuNi0yMS4zIDE2LjgtMjUuOWwxMi40LTUuNWM2LjYtMi45IDEwLjgtOS40IDEwLjgtMTYuNiAwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sVkFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25hdHVyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjViNyIsIk0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA3LjhjMCAyNy43LTIuNCA1NS4zLTcuMSA4Mi41bC04NC40IDI1LjNjLTQwLjYgMTIuMi02OC40IDQ5LjYtNjguNCA5MmwwIDMyLjQtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3Mi41IDBjNC4yIDM2IDM0LjggNjQgNzIgNjQgMjYgMCA1MC0xMy45IDYyLjktMzYuNWwxMy45LTI0LjNjMjYuOC00NyA0Ni41LTk3LjcgNTguNC0xNTAuNWw5NC40LTI4LjMtMTIuNSAzNy41Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44UzQwNS43IDMyMCA0MTYgMzIwbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04My42IDAgMTgtNTMuOWMzLjgtMTEuMyAuOS0yMy44LTcuNC0zMi40cy0yMC43LTExLjgtMzIuMi04LjRMMzE2LjQgMTk4LjFjMi40LTIwLjcgMy42LTQxLjQgMy42LTYyLjNsMC03LjhjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJ6bS05LjIgMTc3bDQ5LTE0LjdjLTEwLjQgMzMuOC0yNC41IDY2LjQtNDIuMSA5Ny4ybC0xMy45IDI0LjNjLTEuNSAyLjYtNC4zIDQuMy03LjQgNC4zLTQuNyAwLTguNS0zLjgtOC41LTguNWwwLTcxLjljMC0xNC4xIDkuMy0yNi42IDIyLjgtMzAuN3pNNjE2IDQxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjkyLjkgMGMtNi41IDE2LjMtMTMuNyAzMi4zLTIxLjYgNDhMNjE2IDQxNnoiXX0sQjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYW1lcmljYXMiLGljb246WzUxMiw1MTIsWzEyNzc1OCwiZWFydGgiLCJlYXJ0aC1hbWVyaWNhIiwiZ2xvYmUtYW1lcmljYXMiXSwiZjU3ZCIsIk01NS43IDE5OS43bDMwLjkgMzAuOWM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMjEuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDI5LjMgMjkuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZsMCAzNy41YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDEzLjMgMTMuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsNDUuMy00NS4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTM0LjdjMC0xNy43LTE0LjMtMzItMzItMzJsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMzQuNyAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42IDAtNi0yLjQtMTEuOC02LjYtMTZsLTE5LjctMTkuN0MyNDIgMTMwIDI0MCAxMjUuMSAyNDAgMTIwczItMTAgNS43LTEzLjdsMTcuMy0xNy4zYzUuOC01LjggOS4xLTEzLjcgOS4xLTIxLjkgMC03LjItMi40LTEzLjctNi40LTE4LjktMy4yLS4xLTYuNC0uMi05LjYtLjItOTUuNCAwLTE3NS43IDY0LjItMjAwLjMgMTUxLjd6TTQ2NCAyNTZjMC0zNC42LTguNC02Ny4yLTIzLjQtOTUuOC02LjQgLjktMTIuNyAzLjktMTcuOSA5LjFsLTEzLjQgMTMuNGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzQuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNC4xIDBjMi41IDAgNS0uMyA3LjMtLjggLjQtNSAuNS0xMC4xIC41LTE1LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LGpBZT1CNSxVQWU9QjUsV0FlPUI1LEdBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJyb3QiLGljb246WzY0MCw1MTIsWzEyOTM2NV0sImY3ODciLCJNNDUzLjEtMzYuN0w0NDAuOS0yNC42Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjEgMTUuNiAxNS42IDMxLjIgMzEuMiA0Ni45IDQ2LjkgMzEuMiAzMS4yIDgxLjkgMzEuMiAxMTMuMSAwbDEyLjEtMTIuMWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNkw2MDAuOSA4OC42Yy0zMS4yLTMxLjItODEuOS0zMS4yLTExMy4xIDAgMzEuMi0zMS4yIDMxLjItODEuOSAwLTExMy4xTDQ3NS43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwek0zMzEuNiA5NmMtNDUuMiAwLTg3LjEgMjAuNC0xMTUgNTQuM0wyNzMuMyAyMDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxOTEuNiAxOTMuMiA2Ny4yIDQ2Ni44Yy01LjUgMTIuMS0yLjkgMjYuNCA2LjUgMzUuOXMyMy43IDEyIDM1LjkgNi41bDE0MS42LTY0LjQtNDMuOC00My44Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTYuNSA1Ni41IDk1LjMtNDMuM2M1My4xLTI0LjEgODcuMi03Ny4xIDg3LjItMTM1LjUgMC04Mi4yLTY2LjYtMTQ4LjgtMTQ4LjgtMTQ4Ljh6Il19LEg1PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWZ1bGwiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS00IiwidGhlcm1vbWV0ZXItNCIsInRoZXJtb21ldGVyLWZ1bGwiXSwiZjJjNyIsIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNMMTM2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyMTIuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LFlBZT1INSxaQWU9SDUsWEFlPUg1LEtBZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1yb3ctbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY3YSIsIk0yNTYgMjg4bDAtNjQgMTUzLjMgMGMxNy4xLTQyLjIgNTYtNzMuMiAxMDIuNy03OWwwLTQ5YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAzMkM5Mi43IDMyIDY0IDYwLjcgNjQgOTZsMCAzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjQxLjMgMGMtLjktNS4yLTEuMy0xMC42LTEuMy0xNi4xbDAtNDcuOS0xMTIgMCAwLTY0IDExMy4zIDBjMy43LTIyIDE0LjgtNDEuNCAzMC43LTU1LjZsMC04LjQtMTQ0IDB6bTAtMTkybDE5MiAwIDAgNjQtMTkyIDAgMC02NHpNNTYwIDI3Mi4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00MTYgMzY4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNsMC01MC42YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgNTAuNmMtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zeiJdfSxRQWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9sdC1saWdodG5pbmciLGljb246WzM4NCw1MTIsW10sImUwYjciLCJNMCAyNTZMMjguNSAyOGMyLTE2IDE1LjYtMjggMzEuOC0yOEwyMjguOSAwYzE1IDAgMjcuMSAxMi4xIDI3LjEgMjcuMSAwIDMuMi0uNiA2LjUtMS43IDkuNUwyMDggMTYwIDM0Ny4zIDE2MGMyMC4yIDAgMzYuNyAxNi40IDM2LjcgMzYuNyAwIDcuNC0yLjIgMTQuNi02LjQgMjAuN2wtMTkyLjIgMjgxYy01LjkgOC42LTE1LjYgMTMuNy0yNS45IDEzLjdsLTIuOSAwYy0xNS43IDAtMjguNS0xMi44LTI4LjUtMjguNSAwLTIuMyAuMy00LjYgLjktNi45TDE3NiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sSkFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXNob3dlcnMtd2F0ZXIiLGljb246WzUxMiw1MTIsW10sImU0ZTQiLCJNMjc5LjIgNTUuN0MyNjMuOSAyMi44IDIzMC42IDAgMTkyIDAgMTM5IDAgOTYgNDMgOTYgOTYgNjAuNyA5NiAzMiAxMjQuNyAzMiAxNjBzMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGwtMS42IDBjLTcuNC0zNi41LTM5LjctNjQtNzguNC02NC0yMi4yIDAtNDIuMyA5LjEtNTYuOCAyMy43ek00MTAuNiA0NzYuMWMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6TTEwMC4xIDMwMy42YzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0QzI5IDM2NSAzNS44IDM3OC42IDQ4LjQgMzgyLjhzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTEyMCAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTExMiAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTEyMCAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6Il19LE9GPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LXVwIl0sImYxNzYiLCJNMTgyLjYtMjIuNmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTI4IDc3LjMgMTI4IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNDM0LjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjh6Il19LGVEZT1PRixmbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhZGRyZXNzLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQwLCJjb250YWN0LWNhcmQiLCJ2Y2FyZCJdLCJmMmJiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTgwIDI1Nmw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNkw4MCAzODRjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjQwLTQ4bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA5NmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHREZT1mbSxhRGU9Zm0saURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLXJpZ2h0IixpY29uOlsyNTYsNTEyLFs4MjUwXSwiZjEwNSIsIk0yNDcuMSAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTYwIDE2MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTc5LjIgMjU2IDQxLjkgMTE4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MHoiXX0sUkY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTc2IDMyMGwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHJEZT1SRixzRGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtZnJvbS1ncm91bmQtd2F0ZXIiLGljb246WzY0MCw1MTIsW10sImU0YjUiLCJNMzAzIDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsODggODhjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDcgMCAyNzguMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI3OC4xLTQ3IDQ3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDMwMyA3ek0yNDAgMTkybDAgMTYzLjFjLTEwLjYtMi4yLTIxLjMtMy4yLTMyLTMuMS0zMi41IC4yLTY0LjkgMTAuNy05Mi4zIDMxLjQtOC44IDYuNi0xNS45IDEwLjktMjEuNyAxMy41bC0uOCAuNGMtMy43IDEuNy02LjQgMi45LTkuOCAuMy02LTQuNS0xMi42LTgtMTkuMy0xMC40TDY0IDI0MGMwLTI2LjUgMjEuNS00OCA0OC00OGwxMjggMHptMzM2IDQ4bDAgMTU1LjJjLTEuMSAuOC0yLjIgMS41LTMuMyAyLjQtNC4xIDMuMS04LjMgLjgtMTIuNi0xLjUtLjYtLjMtMS4yLS42LTEuOC0xLTUuMi0yLjctMTEuMS02LjYtMTgtMTEuNy0yOC4xLTIxLjEtNjEuMy0zMS42LTk0LjQtMzEuNC0xNS41IC4xLTMxIDIuNS00NiA3LjNsMC0xNjcuMyAxMjggMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNNDAzLjQgNDc2LjFDMzc5LjEgNDk0LjMgMzUxLjEgNTEyIDMyMCA1MTJzLTU5LjEtMTcuNy04My40LTM1LjljLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTIzLjggMTcuOS01NC4xIDM1LjUtODguMSAzNS4zLTIwLjQtLjEtNDAuNy02LjctNTkuOC0yMS4xLTEwLjYtOC0xMi43LTIzLTQuNy0zMy42czIzLTEyLjcgMzMuNi00LjdjMTEuMyA4LjUgMjEuNiAxMS40IDMxLjIgMTEuNSAxNy42IC4xIDM3LjMtOS40IDU4LjktMjUuNyAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMjQgMTguMSA0MC43IDI2LjMgNTQuNSAyNi4zczMwLjUtOC4yIDU0LjUtMjYuM2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSxuRGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwIixpY29uOls1MTIsNTEyLFsxMjg1MDYsNjIwNzJdLCJmMjc5IiwiTTUxMiA0OGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNEwzNDkuNSA3Ny41IDE3MC4xIDE3LjZjLTguMS0yLjctMTYuOC0yLjEtMjQuNCAxLjdsLTEyOCA2NEM2LjggODguOCAwIDk5LjkgMCAxMTJMMCA0NjRjMCAxMS4xIDUuNyAyMS40IDE1LjIgMjcuMnMyMS4yIDYuNCAzMS4xIDEuNGwxMTYuMS01OC4xIDE3OS40IDU5LjhjOC4xIDIuNyAxNi44IDIuMSAyNC40LTEuN2wxMjgtNjRjMTAuOC01LjQgMTcuNy0xNi41IDE3LjctMjguNmwwLTM1MnpNMTkyIDM3Ni45bDAtMjg0LjUgMTI4IDQyLjcgMCAyODQuNS0xMjgtNDIuN3oiXX0sb0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZjIzNCIsIk0yODUuNyAzMDRjOTguNSAwIDE3OC4zIDc5LjggMTc4LjMgMTc4LjMgMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdMNzcuNyA1MTJDNjEuMyA1MTIgNDggNDk4LjcgNDggNDgyLjMgNDggMzgzLjggMTI3LjggMzA0IDIyNi4zIDMwNGw1OS40IDB6TTUyOCA4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDAgMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4LTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNDggMCAwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0ek0yNTYgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHoiXX0sbERlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzIixpY29uOlszODQsNTEyLFs5NzkyXSwiZjIyMSIsIk04MCAxNzZhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHpNMjIzLjkgMzQ5LjFDMzA1LjkgMzM0LjEgMzY4IDI2Mi4zIDM2OCAxNzYgMzY4IDc4LjggMjg5LjIgMCAxOTIgMFMxNiA3OC44IDE2IDE3NmMwIDg2LjMgNjIuMSAxNTguMSAxNDQuMSAxNzMuMS0uMSAxLS4xIDEuOS0uMSAyLjlsMCA2NC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTY0YzAtMSAwLTEuOS0uMS0yLjl6Il19LGNEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFncmFtLXN1Y2Nlc3NvciIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ3YSIsIk0yODkuMiAxMzcuOWMyLjUtNiA4LjMtOS45IDE0LjgtOS45bDQwIDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtOTggMGMxLjMgNS4xIDIgMTAuNSAyIDE2bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjU2IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyNCA0MCAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45czEuMSAxMi45LTMuNSAxNy40bC02NCA2NGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy00LjYtNC42LTUuOS0xMS41LTMuNS0xNy40ek0zODQgNDgwTDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0ek0xNjAgMTYwbDAtNjQtOTYgMCAwIDY0IDk2IDB6Il19LGREZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtY291Z2gtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNjIiLCJNNTM1LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDQxIDUzNy4xYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDI1LTI1IDAtNDQ3LjJjMC0xNSAxMC41LTI4LjMgMjUuNC0yOS44IDcuNC0uNyAxNC45LTEuMSAyMi42LTEuMSAxMTIuNyAwIDIwNiA4My4zIDIyMS43IDE5MS43IC40IDMgMS43IDUuOSAzLjYgOC4zbDIuMiAyLjYgMjI3LjUtMjI3LjV6TTEzMy44IDUxMkwyODggMzU3LjggMjg4IDQxNmMwIDUzLTQzIDk2LTk2IDk2bC01OC4yIDB6TTE3NiAyMjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMzYgNDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tODggNzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptLTY0IDQ4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyOCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTI0IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTg4LTI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEJGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJvamVjdCIsaWNvbjpbNTEyLDUxMixbInByb2plY3QtZGlhZ3JhbSJdLCJmNTQyIiwiTTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2IDEyOCAwIDAtMTZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2LTEyOCAwIDAgMTZjMCA3LjMtMS43IDE0LjMtNC42IDIwLjVsNjguNiA5MS41IDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTcuMyAxLjctMTQuMyA0LjYtMjAuNUwxMjggMjI0IDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MHoiXX0scERlPUJGLHJnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlcm1pbmFsIixpY29uOls1MTIsNTEyLFtdLCJmMTIwIiwiTTkuNCAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNDYuNyAyNTYgOS40IDExOC42ek0yMjQgMzg0bDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0saERlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZpcmUiLGljb246WzY0MCw1MTIsW10sImU1MGMiLCJNNDQ4IDE5MmMxNC4xIC40IDIzLjggMTEuNCAzMi43IDIxLjcgMiAyLjMgNCA0LjYgNiA2LjdsMTkgMTkuOSAxMi4yLTEzLjhjNS40LTYuMSAxMy4zLTguOSAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMiAyNi4yIDg4LjIgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjEgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwxNDcuNSAxMzdjLTE5LjItNC4zLTQwIC41LTU1LjUgMTQuNC0zNi40IDMyLjYtNjcuNyA2OS44LTkwLjMgMTA2LjQtMTAuMyAxNi42LTE5LjcgMzQuOS0yNi44IDUzLjdMMjcyIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA2NC42IDBjNy4zIDE3LjIgMTYuOCAzMy40IDI4LjIgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek00ODkuMyAzNDMuN2MtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjcgNTEuOS01NC43IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTM2LjUtMzctNzMtNTQuNy04OC40eiJdfSx1RGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzayIsaWNvbjpbNTc2LDUxMixbXSwiZjZmYSIsIk0yODggNjRDNjQgNjQgMCAxNjAgMCAyNzJTODAgNDQ4IDE3NiA0NDhsOC40IDBjMjQuMiAwIDQ2LjQtMTMuNyA1Ny4yLTM1LjRsMjMuMi00Ni4zYzQuNC04LjggMTMuMy0xNC4zIDIzLjItMTQuM3MxOC44IDUuNSAyMy4yIDE0LjNsMjMuMiA0Ni4zYzEwLjggMjEuNyAzMyAzNS40IDU3LjIgMzUuNGw4LjQgMGM5NiAwIDE3Ni02NCAxNzYtMTc2UzUxMiA2NCAyODggNjR6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTMyMC02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sZkRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imh1cnJpY2FuZSIsaWNvbjpbMzg0LDUxMixbXSwiZjc1MSIsIk0wIDIwOEMwIDEwNC40IDc1LjcgMTguNSAxNzQuOSAyLjYgMTg0IDEuMiAxOTIgOC42IDE5MiAxNy45bDAgNjMuM2MwIDguNCA2LjUgMTUuMyAxNC43IDE2LjUgMTAwLjMgMTQuOSAxNzcuMyAxMDEuMyAxNzcuMyAyMDUuNyAwIDEwMy42LTc1LjcgMTg5LjUtMTc0LjkgMjA1LjQtOS4yIDEuNS0xNy4xLTUuOS0xNy4xLTE1LjJsMC02My4zQzE5MiA0MjEuOSAxODUuNSA0MTUgMTc3LjMgNDEzLjcgNzcgMzk4LjkgMCAzMTIuNCAwIDIwOHptMjg4IDQ4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptLTk2LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sSEY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYWZyaWNhIixpY29uOls1MTIsNTEyLFsxMjc3NTcsImdsb2JlLWFmcmljYSJdLCJmNTdjIiwiTTQ0Ny42IDE3NWMtMzEuNi03NC42LTEwNS41LTEyNy0xOTEuNi0xMjctMjIuMSAwLTQzLjQgMy41LTYzLjQgOS44LS40IDItLjYgNC4xLS42IDYuMmwwIDczLjRjMCAxMi41IDEwLjEgMjIuNiAyMi42IDIyLjYgNiAwIDExLjgtMi40IDE2LTYuNmwxNi0xNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsNS41IDBjMjguNSAwIDQyLjggMzQuNSAyMi42IDU0LjYtNiA2LTE0LjEgOS40LTIyLjYgOS40bC02MS41IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40bC0yMS4zIDIxLjNjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDQyLjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDIuNyAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40bDI5LjMtMjkuM2M2LTYgOS40LTE0LjEgOS40LTIyLjZsMC0xOC43YzAtOC44IDcuMi0xNiAxNi0xNnMxNi03LjIgMTYtMTZsMC0zNC43YzAtOC41LTMuNC0xNi42LTkuNC0yMi42bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2IDAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDQ1IDBjMTIuNCAwIDIyLjctNy4xIDI4LTE3ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxtRGU9SEYscUY9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJ0YWNrIixpY29uOlszODQsNTEyLFsxMjgyMDQsMTI4MzkyLCJ0aHVtYi10YWNrIl0sImYwOGQiLCJNMzIgMzJDMzIgMTQuMyA0Ni4zIDAgNjQgMEwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjkuNSAwIDEwLjMgMTM0LjFjMzcuMSAyMS4yIDY1LjggNTYuNCA3OC4yIDk5LjdsMy44IDEzLjRjMi44IDkuNyAuOCAyMC01LjIgMjguMVMzNjIgMzUyIDM1MiAzNTJMMzIgMzUyYy0xMCAwLTE5LjUtNC43LTI1LjUtMTIuN3MtOC0xOC40LTUuMi0yOC4xTDUgMjk3LjhjMTIuNC00My4zIDQxLTc4LjUgNzguMi05OS43TDkzLjUgNjQgNjQgNjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyek0xNjAgNDAwbDY0IDAgMCAxMTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMTJ6Il19LGdEZT1xRixiRGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludC1kb3duIixpY29uOlszODQsNTEyLFtdLCJmMGE3IiwiTTMyIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjA4LTY0IDAgMCAyMDh6TTIyNCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjR6bS02NCA2NGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE2MC05NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NHptLTk2LTg4bDAgLjZjOS40LTUuNCAyMC4zLTguNiAzMi04LjYgMTMuMiAwIDI1LjQgNCAzNS42IDEwLjggOC43LTI0LjkgMzIuNS00Mi44IDYwLjQtNDIuOCAxMS43IDAgMjIuNiAzLjEgMzIgOC42bDAtOC42QzM4NCA3MS42IDMxMi40IDAgMjI0IDBMMTYyLjMgMEMxMTkuOCAwIDc5LjEgMTYuOSA0OS4xIDQ2LjlMMzcuNSA1OC41QzEzLjUgODIuNSAwIDExNS4xIDAgMTQ5bDAgMjdjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODggMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MGwtNTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcyeiJdfSxWRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yMDgtNDhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTI4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sdkRlPVZGLHE1PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWVtcHR5IixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMCIsInRoZXJtb21ldGVyLTAiLCJ0aGVybW9tZXRlci1lbXB0eSJdLCJmMmNiIiwiTTY0IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxNiA0NDcuNSAxNiAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMNjQgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6Il19LHlEZT1xNSx4RGU9cTUsd0RlPXE1LE1EZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JkZXItbm9uZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjg1MCIsIk0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyek0xNjAgMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0yODggNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpNMTYwIDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6TTI4OCAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTQxNiA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0wLTM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTMyIDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNNDE2IDM1MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTMyIDE2MGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDE2IDE2MGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6Il19LHpEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaWdobGlnaHRlciIsaWNvbjpbNTc2LDUxMixbXSwiZjU5MSIsIk0zMTUgMzE1TDQ3My40IDk5LjkgNDQ0LjEgNzAuNiAyMjkgMjI5IDMxNSAzMTV6bS0xODcgNWwwIDAgMC03MS43YzAtMTUuMyA3LjItMjkuNiAxOS41LTM4LjZMNDIwLjYgOC40QzQyOCAyLjkgNDM3IDAgNDQ2LjIgMCA0NTcuNiAwIDQ2OC41IDQuNSA0NzYuNiAxMi42bDU0LjggNTQuOGM4LjEgOC4xIDEyLjYgMTkgMTIuNiAzMC41IDAgOS4yLTIuOSAxOC4yLTguNCAyNS42TDMzNC40IDM5Ni41Yy05IDEyLjMtMjMuNCAxOS41LTM4LjYgMTkuNWwtNzEuNyAwLTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTUwLjctNTAuN2MtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMTI4IDMyMHpNNyA0NjYuM2w1MS43LTUxLjcgNzAuNiA3MC42LTE5LjcgMTkuN2MtNC41IDQuNS0xMC42IDctMTcgN0wyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNC43YzAtNi40IDIuNS0xMi41IDctMTd6Il19LGtEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXdhdmUiLGljb246WzUxMiw1MTIsW10sImY1M2EiLCJNMCA0MTkuNkwwIDEwOS41YzAtMjMuMiAyNC4xLTM4LjYgNDYuMy0zMiA4Ny43IDI2LjIgMTQ5LjcgNS41IDIxMi4xLTE1LjMgNjQuNS0yMS41IDEyOS40LTQzLjEgMjIzLjMtMTMuMSAxOC41IDUuOSAzMC4zIDIzLjggMzAuMyA0My4zbDAgMzEwLjFjMCAyMy4yLTI0LjEgMzguNi00Ni4yIDMyLTg3LjctMjYuMi0xNDkuOC01LjUtMjEyLjEgMTUuMy02NC41IDIxLjUtMTI5LjQgNDMuMS0yMjMuMyAxMy4xLTE4LjUtNS45LTMwLjMtMjMuOC0zMC4zLTQzLjN6TTMzNiAyNTZjMC01My0zNS44LTk2LTgwLTk2cy04MCA0My04MCA5NiAzNS44IDk2IDgwIDk2IDgwLTQzIDgwLTk2ek0xMjAgNDEzLjZjNC40IDAgNy45LTMuOCA3LjItOC4xLTQuNi0yNy44LTI3LTQ5LjUtNTUuMi01My00LjQtLjUtOCAzLjEtOCA3LjVsMCAzOS45YzAgMy42IDIuNCA2LjggNiA3LjcgMTcuOSA0LjIgMzQuMyA2LjEgNTAgNi4xem0zMTguNS01MS4xYzUgLjggOS41LTMgOS41LThsMC00Mi42YzAtNC40LTMuNi04LjEtOC03LjUtMjUuMiAzLjEtNDUuOSAyMC45LTUzLjIgNDQuNi0xLjQgNC43IDIuMyA5LjEgNy4yIDkuMiAxNC4yIC40IDI5IDEuNyA0NC40IDQuM3pNNDQ4IDE1MmwwLTM5LjljMC0zLjYtMi41LTYuOC02LTcuNy0xNy45LTQuMi0zNC4zLTYuMS01MC02LjEtNC40IDAtNy45IDMuOC03LjIgOC4xIDQuNiAyNy44IDI3IDQ5LjUgNTUuMiA1MyA0LjQgLjUgOC0zLjEgOC03LjV6TTEyNS4yIDE2Mi45YzEuNC00LjctMi4zLTkuMS03LjItOS4yLTE0LjItLjQtMjktMS43LTQ0LjQtNC4zLTUtLjgtOS41IDMtOS41IDhMNjQgMjAwYzAgNC40IDMuNiA4LjEgOCA3LjUgMjUuMi0zLjEgNDUuOS0yMC45IDUzLjItNDQuNnoiXX0sU0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wYXBlci1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA3MiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05NC41LTk0LjVjNDAuMi0yMyA2OS41LTk2LjkgNjkuNS0xODQuNiAwLTEwNi00My0xOTItOTYtMTkycy05NiA4Ni05NiAxOTJjMCAyNC4xIDIuMiA0Ny4yIDYuMyA2OC40TDMwNCAyMzguMiAzMDQgMjI0YzAtNTguOSAxMS44LTExNC41IDMzLjItMTU3LjIgNS45LTExLjcgMTMuMS0yMy43IDIxLjktMzQuOEwxMjggMzJjLTguMyAwLTE2LjQgMi4xLTI0LjEgNi4xbC02My02M3pNMzIgMjI0bDAgMjY0YzAgMzAuOSAyNS4xIDU2IDU2IDU2bDE2MCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtMTE0LjItMjU2LTI1NkMzNy45IDE0OC4yIDMyIDE4NC43IDMyIDIyNHptNDE2IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0sQ0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtc2hpZWxkIixpY29uOls1NzYsNTEyLFtdLCJlNGYwIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjAxLjIgMEMyNjEgNDY5LjQgMjQwIDQxNC41IDI0MCAzNTYuNGwwLTMxLjFjMC0zNC40IDIyLTY1IDU0LjctNzUuOWwxMTItMzcuM2MzLjEtMSA2LjItMS44IDkuMy0yLjVsMC0zOS4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2em04Ny44IDMxMi41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sX0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRleHQtaGVpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJmMDM0IiwiTTQwIDMyQzE3LjkgMzIgMCA0OS45IDAgNzJsMCA1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgNjQgMCAwIDMyMC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzIwIDY0IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNTZjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgMzJ6TTQzOC42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOS40IDkuNCAwLTIyOS41IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNHMtMTYuNiAzLjQtMjIuNiA5LjRsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAyMjkuNS05LjQtOS40eiJdfSxqRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlIixpY29uOls1MTIsNTEyLFsxMjg1MzksImdyaW4tdG9uZ3VlIl0sImY1ODkiLCJNMCAyNTZjMCAxMDQuNCA2Mi41IDE5NC4yIDE1Mi4yIDIzNC4xLTUuMy0xMy04LjItMjcuMi04LjItNDIuMWwwLTYxLjdjLTE2LjktMTYuNS0zMC4xLTM2LjctMzguMy01OS4zLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtOC4zIDIyLjYtMjEuNSA0Mi44LTM4LjMgNTkuM2wwIDYxLjdjMCAxNC45LTIuOSAyOS4xLTguMiA0Mi4xIDg5LjctMzkuOCAxNTIuMi0xMjkuNiAxNTIuMi0yMzQuMSAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzAgMTE0LjYgMCAyNTZ6bTE3Ni04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNiAyNDBsMC00NS40YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42bC0yIDBjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjktMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMC0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45bC0yIDBjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42bDAgNDUuNGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxURGU9akYsTERlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtc2lnbmF0dXJlIixpY29uOls2NDAsNTEyLFtdLCJmNTczIiwiTTY0LjEgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMjc3LjYgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w0MjkuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgOTcuNS0xMzIgMTMyLTQyLjEgMC0xNi4xLTUzLjZjLTQuNy0xNS43LTE5LjEtMjYuNC0zNS41LTI2LjQtMTEuMyAwLTIxLjkgNS4xLTI4LjkgMTMuOUwxMzMuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDMxLjUgMGMtLjkgMy4xLTEuNyA2LjMtMi4zIDkuNWwtMTAuOSA1NC41LTE0Ni4yIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzg0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw5My41IDAtMTE3LjUtMTE3LjV6bTYwLjIgNDA4LjRjMi41LTEyLjQgOC42LTIzLjggMTcuNS0zMi43bDExOC45LTExOC45IDgwIDgwLTExOC45IDExOC45Yy04LjkgOC45LTIwLjMgMTUtMzIuNyAxNy41bC01OS42IDExLjljLS45IC4yLTEuOSAuMy0yLjkgLjMtOCAwLTE0LjYtNi41LTE0LjYtMTQuNiAwLTEgLjEtMS45IC4zLTIuOWwxMS45LTU5LjZ6bTI2Ny44LTEyM2wtMjguOCAyOC44LTgwLTgwIDI4LjgtMjguOGMyMi4xLTIyLjEgNTcuOS0yMi4xIDgwIDBzMjIuMSA1Ny45IDAgODB6Il19LCREZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy13aGVhdCIsaWNvbjpbNjQwLDUxMixbXSwiZTRkYiIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI0OS4zIDBjLTYtMTQuOC05LjMtMzEtOS4zLTQ4IDAtMTcuNyA3LjItMzMuNyAxOC44LTQ1LjMtMTEuOS0xOS40LTE4LjgtNDIuMy0xOC44LTY2LjcgMC0xNy43IDcuMi0zMy43IDE4LjgtNDUuMy0xMS45LTE5LjQtMTguOC00Mi4zLTE4LjgtNjYuNyAwLTI1LjIgMTQuNS00Ni45IDM1LjYtNTcuNC0yLjQtNy4xLTMuNi0xNC43LTMuNi0yMi42bDAtMzJDMzY4IDk2LjcgMzg4IDcwLjEgNDE1LjkgNjAuMSA0MTMuOSAyNi42IDM4NiAwIDM1MiAwTDk2IDB6TTIwOCAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTI4IDExMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0yNzIgOTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptMzUyIDBsLTE2IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgOC44IDcuMiAxNiAxNiAxNmwxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6bTAgMTEyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODB6TTQ5NiA1MjhjMC00NC4yLTM1LjgtODAtODAtODBsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTE2LTk2YzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDB6bTE2LTEyOGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2ek01MTIgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTk2IDY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyek00NDAgMTA0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sQURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJlNTVlIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnoiXX0sbW09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZnV0Ym9sIixpY29uOls1MTIsNTEyLFs5OTE3LCJmdXRib2wtYmFsbCIsInNvY2Nlci1iYWxsIl0sImYxZTMiLCJNNDE3LjMgMzYwLjFsLTcxLjYtNC44Yy01LjItLjMtMTAuMyAxLjEtMTQuNSA0LjJzLTcuMiA3LjQtOC40IDEyLjVsLTE3LjYgNjkuNkMyODkuNSA0NDUuOCAyNzMgNDQ4IDI1NiA0NDhzLTMzLjUtMi4yLTQ5LjItNi40TDE4OS4yIDM3MmMtMS4zLTUtNC4zLTkuNC04LjQtMTIuNXMtOS4zLTQuNS0xNC41LTQuMmwtNzEuNiA0LjhjLTE3LjYtMjcuMi0yOC41LTU5LjItMzAuNC05My42TDEyNSAyMjguM2M0LjQtMi44IDcuNi03IDkuMi0xMS45czEuNC0xMC4yLS41LTE1bC0yNi43LTY2LjZDMTI4IDEwOS4yIDE1NS4zIDg5IDE4Ni43IDc2LjlsNTUuMiA0NmM0IDMuMyA5IDUuMSAxNC4xIDUuMXMxMC4yLTEuOCAxNC4xLTUuMWw1NS4yLTQ2YzMxLjMgMTIuMSA1OC43IDMyLjMgNzkuNiA1Ny45bC0yNi43IDY2LjZjLTEuOSA0LjgtMi4xIDEwLjEtLjUgMTVzNC45IDkuMSA5LjIgMTEuOWw2MC43IDM4LjJjLTEuOSAzNC40LTEyLjggNjYuNC0zMC40IDkzLjZ6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xNC4xLTMyNS43Yy04LjQtNi4xLTE5LjgtNi4xLTI4LjIgMEwxOTQgMjIxYy04LjQgNi4xLTExLjkgMTYuOS04LjcgMjYuOGwxOC4zIDU2LjNjMy4yIDkuOSAxMi40IDE2LjYgMjIuOCAxNi42bDU5LjIgMGMxMC40IDAgMTkuNi02LjcgMjIuOC0xNi42bDE4LjMtNTYuM2MzLjItOS45LS4zLTIwLjctOC43LTI2LjhsLTQ3LjktMzQuOHoiXX0sRERlPW1tLEVEZT1tbSxVRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGx1cyIsaWNvbjpbNTEyLDUxMixbInBsdXMtY2lyY2xlIl0sImYwNTUiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIzMiAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxQRGU9VUYsSURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyYXppbGlhbi1yZWFsLXNpZ24iLGljb246WzUxMiw1MTIsW10sImU0NmMiLCJNNDAwIDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNDguOSAwYy0yNiAwLTQ3LjEgMjEuMS00Ny4xIDQ3LjEgMCAyMi41IDE1LjkgNDEuOCAzNy45IDQ2LjJsMzIuOCA2LjZjNTEuOSAxMC40IDg5LjMgNTYgODkuMyAxMDkgMCA1MC42LTMzLjggOTMuMy04MCAxMDYuN2wwIDIwLjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0LjkgMGMyNiAwIDQ3LjEtMjEuMSA0Ny4xLTQ3LjEgMC0yMi41LTE1LjktNDEuOC0zNy45LTQ2LjJsLTMyLjgtNi42Yy01MS45LTEwLjQtODkuMy01Ni04OS4zLTEwOSAwLTUwLjYgMzMuOC05My4yIDgwLTEwNi43TDM2OCA0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYweiJdfSxORGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1hbmQtY3Jlc2NlbnQiLGljb246WzUxMiw1MTIsWzk3NzBdLCJmNjk5IiwiTTAgMjU2YzAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTYgMzMgMCA2NC42IDYuMyA5My42IDE3LjcgNy40IDIuOSAxMS41IDEwLjcgOS44IDE4LjRzLTguOCAxMy0xNi43IDEyLjRjLTQuOC0uMy05LjctLjUtMTQuNi0uNS0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDhzOTMuMSAyMDggMjA4IDIwOGM0LjkgMCA5LjgtLjIgMTQuNi0uNSA3LjktLjUgMTUgNC43IDE2LjcgMTIuNHMtMi40IDE1LjUtOS44IDE4LjRDMzIwLjYgNTA1LjcgMjg5IDUxMiAyNTYgNTEyIDExNC42IDUxMiAwIDM5Ny40IDAgMjU2ek0zNzUuNCAxMzcuNGMzLjUtNy4xIDEzLjctNy4xIDE3LjIgMGwzMS41IDYzLjhjMS40IDIuOCA0LjEgNC44IDcuMiA1LjNsNzAuNCAxMC4yYzcuOSAxLjEgMTEgMTAuOCA1LjMgMTYuNGwtNTAuOSA0OS42Yy0yLjMgMi4yLTMuMyA1LjQtMi44IDguNWwxMiA3MC4xYzEuMyA3LjgtNi45IDEzLjgtMTMuOSAxMC4xbC02My0zMy4xYy0yLjgtMS41LTYuMS0xLjUtOC45IDBsLTYzIDMzLjFjLTcgMy43LTE1LjMtMi4zLTEzLjktMTAuMWwxMi03MC4xYy41LTMuMS0uNS02LjMtMi44LTguNUwyNjEgMjMzLjFjLTUuNy01LjYtMi42LTE1LjIgNS4zLTE2LjRsNzAuNC0xMC4yYzMuMS0uNSA1LjgtMi40IDcuMi01LjNsMzEuNS02My44eiJdfSxXRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXN1cnByaXNlIixpY29uOls1MTIsNTEyLFsxMjg1NTgsInN1cnByaXNlIl0sImY1YzIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTQ4IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxGRGU9V0YsT0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imhvc3BpdGFsLXVzZXIiLGljb246WzY0MCw1MTIsW10sImY4MGQiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguNyAwIDI3LjcgOC44IDUzLjQgMjMuOCA3NC40LTUxLjUgMjEtODcuOCA3MS42LTg3LjggMTMwLjcgMCAxIDAgMS45IDAgMi45bC0xNzYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgNjR6TTIwOCA0MDBsMCA2NCA1My40IDBjNy4yLTI5LjQgMjEuMy01Ni4xIDQwLjQtNzguMy02LjEtMTkuNS0yNC4zLTMzLjctNDUuOC0zMy43LTI2LjUgMC00OCAyMS41LTQ4IDQ4ek0yNDggODhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDB6TTQxNiAzMDRhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0zNTIgNTEyYzAtNTMgNDMtOTYgOTYtOTZsOTYgMGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LFJEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLXVwLWxvY2siLGljb246WzU3Niw1MTIsW10sImU0YjAiLCJNMjYyLjYgNDIyLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMjUuNCAyNS40IDAtMTE0LjctNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyNTYgMCAwLTExNC43LTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsODAtODBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTI1LjQtMjUuNCAwIDk0LjhjLTI1LjMgMjAuMy00Mi44IDUwLjEtNDcgODMuOWwtMTQ1IDAgMCAxMTQuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMTkyIDMybDAgMTQ0LTY0IDAgMC0xNDRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDk2IDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sR0Y9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyIixpY29uOls1MTIsNTEyLFsxMjgxOTMsMTI4NDQ3LDYxNzE2LCJmb2xkZXItYmxhbmsiXSwiZjA3YiIsIk02NCA0NDhsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNDBjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjk4LjcgODBjLTYuOSAwLTEzLjctMi4yLTE5LjItNi40TDI0MS4xIDQ0LjhDMjMwIDM2LjUgMjE2LjUgMzIgMjAyLjcgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NHoiXX0sQkRlPUdGLEhEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob2xseS1iZXJyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYSIsIk0yNTYuMiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTI3NyAzODMuOGMxIC4xIDIuMSAuMiAzLjIgLjIgMzkuOCAwIDcyIDMyLjIgNzIgNzJsMCAyMi43YzAgMTYuNCAxNiAyNy45IDMxLjYgMjIuOGwxMi44LTQuM2MxOC02IDM3LjMtNi41IDU1LjYtMS41bDE5LjQgNS4zYzE3LjkgNC45IDM0LjQtMTEuNiAyOS41LTI5LjVMNDk1LjkgNDUyYy01LTE4LjMtNC40LTM3LjYgMS41LTU1LjZsNC4zLTEyLjhjNS4yLTE1LjUtNi40LTMxLjYtMjIuOC0zMS42LTM0LjYgMC02Mi43LTI4LjEtNjIuNy02Mi43bDAtMzJjMC0xNi40LTE2LTI3LjktMzEuNi0yMi44bC0xMi44IDQuM2MtMTggNi0zNy4zIDYuNS01NS42IDEuNWwtMjkuNi04LjFjLTIuOS0uOC01LjktMS04LjctLjcgNC4yIDkuNyA1LjggMjAuOCAzLjcgMzIuM2wtNi4zIDM0LjhjLTEuNSA4LjQtMS40IDE3IC41IDI1LjNsNS4zIDIzLjljMi44IDEyLjcgMS4xIDI1LjItNCAzNS45ek0xMjcuOCAyMzQuNWMtMTUuNS01LjItMzEuNiA2LjQtMzEuNiAyMi44bDAgMzJjMCAzNC42LTI4LjEgNjIuNy02Mi43IDYyLjctMTYuNCAwLTI3LjkgMTYtMjIuOCAzMS42TDE1IDM5Ni40YzYgMTggNi41IDM3LjMgMS41IDU1LjZsLTUuMyAxOS40QzYuNCA0ODkuNCAyMi44IDUwNS44IDQwLjcgNTAxbDE5LjQtNS4zYzE4LjMtNSAzNy42LTQuNSA1NS42IDEuNWwxMi44IDQuM2MxNS41IDUuMiAzMS42LTYuNCAzMS42LTIyLjhsMC0zMmMwLTM0LjYgMjguMS02Mi43IDYyLjctNjIuNyAxNi40IDAgMjcuOS0xNiAyMi44LTMxLjZsLTQuMy0xMi44Yy02LTE4LTYuNS0zNy4zLTEuNS01NS42bDUuMy0xOS40YzQuOS0xNy45LTExLjYtMzQuNC0yOS41LTI5LjVsLTE5LjQgNS4zYy0xOC4zIDUtMzcuNiA0LjQtNTUuNi0xLjVsLTEyLjgtNC4zek0zODQuMiAxNDRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0scURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlbnVzLWRvdWJsZSIsaWNvbjpbNjQwLDUxMixbOTg5MF0sImYyMjYiLCJNMTkyIDI4OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTM2OCAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0LjEgMTczLjEgLjEgMSAuMSAxLjkgLjEgMi45bDAgNjQgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjRjMC0xIDAtMS45IC4xLTIuOS04Mi0xNS0xNDQuMS04Ni44LTE0NC4xLTE3My4xIDAtOTcuMiA3OC44LTE3NiAxNzYtMTc2UzM2OCA3OC44IDM2OCAxNzZ6TTM1Ny41IDMyN2MxNC40LTE1LjggMjYuNi0zMy43IDM2LjEtNTMuMSAxNi4xIDkgMzQuNyAxNC4xIDU0LjUgMTQuMSA2MS45IDAgMTEyLTUwLjEgMTEyLTExMlM1MDkuOSA2NCA0NDggNjRjLTE5LjggMC0zOC4zIDUuMS01NC41IDE0LjEtOS41LTE5LjQtMjEuNi0zNy4zLTM2LjEtNTMuMSAyNi40LTE1LjkgNTcuNC0yNSA5MC41LTI1IDk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgODYuMy02Mi4xIDE1OC4xLTE0NC4xIDE3My4xIC4xIC45IC4xIDEuOSAuMSAyLjlsMCA2NCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02NGMwLTEgMC0xLjkgLjEtMi45LTIxLjEtMy45LTQwLjktMTEuNS01OC42LTIyLjJ6Il19LFZEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtcXVlc3Rpb24iLGljb246WzM4NCw1MTIsW10sImU0ZTMiLCJNMzExLjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMnpNMjQ4IDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDB6TTE5MiAyNDhjMTYuMSAwIDI5LjIgMTMuMSAyOS4yIDI5LjIgMCA4LjctMy4xIDEzLjktNi45IDE3LjctNC41IDQuNC0xMC43IDcuNS0xNi44IDkuNS0xNC45IDUtMjkuNSAxOS4zLTI5LjUgMzkuNSAwIDEzLjMgMTAuNyAyNCAyNCAyNCAxMS41IDAgMjEuMi04LjEgMjMuNS0xOSAxOS4yLTcuMSA1My43LTI2LjMgNTMuNy03MS44IDAtNDIuNi0zNC42LTc3LjItNzcuMi03Ny4ycy03Ny4yIDM0LjYtNzcuMiA3Ny4yYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xNi4xIDEzLjEtMjkuMiAyOS4yLTI5LjJ6bTI4IDE2OGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6Il19LGpEZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3Rkb2ciLGljb246WzUxMiw1MTIsWzEyNzc4OV0sImY4MGYiLCJNMjg4IDBjLTIwLjUgMC00MC4xIDguMS01NC42IDIyLjZMMjIuNiAyMzMuNEM4LjEgMjQ3LjkgMCAyNjcuNSAwIDI4OCAwIDMwMC4yIDIuOSAzMTIuMSA4LjIgMzIyLjdMMzIyLjcgOC4yQzMxMi4xIDIuOSAzMDAuMiAwIDI4OCAwek0yMjQgNTEyYzIwLjUgMCA0MC4xLTguMSA1NC42LTIyLjZMNDg5LjQgMjc4LjZjMTQuNS0xNC41IDIyLjYtMzQuMSAyMi42LTU0LjYgMC0xMi4yLTIuOS0yNC4xLTguMi0zNC43TDE4OS4zIDUwMy44YzEwLjcgNS40IDIyLjYgOC4yIDM0LjcgOC4yek00NTYuNiAxNjguNmMzMS4yLTMxLjIgMzEuMi04MS45IDAtMTEzLjFzLTgxLjktMzEuMi0xMTMuMSAwbC0yODggMjg4Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjFzODEuOSAzMS4yIDExMy4xIDBsMjg4LTI4OHoiXX0sVURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20tYnJhY2tldCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA5YSIsIk0yNDYuNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAxOTIgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMTAuNyA3My40IDczLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOHpNNjQgMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMzM0LjMgMCAzNTJsMCA2NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHoiXX0sV0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3Jvc2NvcGUiLGljb246WzUxMiw1MTIsWzEyODMwMF0sImY2MTAiLCJNMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NCAzMiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzM5MC43IDQ0OCAzMjAgNDQ4TDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYuOSAwYzMwLjQtMzQgNDguOS03OC44IDQ4LjktMTI4IDAtMTA2LTg2LTE5Mi0xOTItMTkybC0zMiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTc2IDB6TTEyMCAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE3NiAweiJdfSxHRGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQiLGljb246WzU3Niw1MTIsWzk3MjldLCJmMGMyIiwiTTAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0bDMwNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNTEuNi0zMC41LTk2LjEtNzQuNS0xMTYuMyA2LjctMTMuMSAxMC41LTI4IDEwLjUtNDMuNyAwLTUzLTQzLTk2LTk2LTk2LTE3LjcgMC0zNC4yIDQuOC00OC40IDEzLjEtMjQuMS00NS44LTcyLjItNzcuMS0xMjcuNi03Ny4xLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOCAuNyAxNS45IDEuOSAyMy41LTU2LjkgMTkuMi05Ny45IDczLjEtOTcuOSAxMzYuNXoiXX0sWURlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsLWJhdC1iYWxsIixpY29uOls1NzYsNTEyLFtdLCJmNDMyIiwiTTQ2NC4xIDU0NGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHptOC40LTU3NmMxNS4xIDAgMjkuNyA1LjggNDAuNyAxNi4ybDQ3LjIgNDQuOGMxMi42IDEyIDE5LjEgMjkgMTcuNSA0Ni4zLTEuMiAxMy4zLTcgMjUuOC0xNi41IDM1LjJMMzYzLjEgMzA5Yy03LjMgNy4zLTE1LjcgMTMuNC0yNSAxOEwyMDYgMzkzYy05LjIgNC42LTE3LjcgMTAuNy0yNSAxOGwtOTIgOTIgMS43IDEuOGM3LjcgOS40IDcuMSAyMy4zLTEuNyAzMi4xcy0yMi43IDkuMy0zMi4xIDEuN2wtMS44LTEuNy00OC00OC0xLjctMS44Yy03LjctOS40LTcuMS0yMy4zIDEuNy0zMi4xczIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgOTItOTJjNy4zLTcuMyAxMy40LTE1LjcgMTgtMjVsNjYuMS0xMzIuMWM0LjYtOS4yIDEwLjctMTcuNyAxOC0yNUw0MzAuOC0xNC43QzQ0MS45LTI1LjggNDU2LjktMzIgNDcyLjUtMzJ6Il19LFlGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1yZWFyIixpY29uOls1MTIsNTEyLFsiY2FyLWFsdCJdLCJmNWRlIiwiTTE2NS40IDk2bDE4MS4yIDBjMTMuNiAwIDI1LjcgOC42IDMwLjIgMjEuNGwyNi4xIDc0LjYtMjkzLjggMCAyNi4xLTc0LjZjNC41LTEyLjggMTYuNi0yMS40IDMwLjItMjEuNHptLTkwLjYgLjNMMzkuNiAxOTYuOEMxNi40IDIwNi40IDAgMjI5LjMgMCAyNTZsMCA5NmMwIDIzLjcgMTIuOSA0NC40IDMyIDU1LjRMMzIgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAyNTYgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MC42YzE5LjEtMTEuMSAzMi0zMS43IDMyLTU1LjRsMC05NmMwLTI2LjctMTYuNC00OS42LTM5LjYtNTkuMkw0MzcuMiA5Ni4zQzQyMy43IDU3LjggMzg3LjQgMzIgMzQ2LjYgMzJMMTY1LjQgMzJjLTQwLjggMC03Ny4xIDI1LjgtOTAuNiA2NC4zek0yMDggMjg4bDk2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC05NiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ4IDI4MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMzYwLTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LFpEZT1ZRixaRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnRhY2stc2xhc2giLGljb246WzU3Niw1MTIsWyJ0aHVtYi10YWNrLXNsYXNoIl0sImU2OGYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MTcuOCAzNTIgNDQ4IDM1MmMxMCAwIDE5LjUtNC43IDI1LjUtMTIuN3M4LTE4LjQgNS4yLTI4LjFMNDc1IDI5Ny44Yy0xMi40LTQzLjMtNDEtNzguNS03OC4yLTk5LjdMMzg2LjUgNjQgNDE2IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzQzMy43IDAgNDE2IDBMMTYwIDBjLTcuNCAwLTE0LjEgMi41LTE5LjUgNi42TDE5MC4xIDU2LjMgMTg1LjMgMTE5LjQgNDEtMjQuOXpNMjgyLjIgMzUyTDE0OS43IDIxOS42Yy0yMi43IDIwLjUtMzkuOCA0Ny40LTQ4LjcgNzguM2wtMy44IDEzLjRjLTIuOCA5LjctLjggMjAgNS4yIDI4LjFTMTE4IDM1MiAxMjggMzUybDE1NC4yIDB6TTI1NiA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMi02NCAwIDAgMTEyeiJdfSxYRGU9WkYsS0RlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdXMtbWludXMiLGljb246WzM4NCw1MTIsW10sImU0M2MiLCJNMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTI4LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwIDAtMTI4ek0wIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxRRGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTA5IiwiTTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDIxNy42IDIwMmMtMTAuMi0xLjctMjAuNy0yLjYtMzEuMy0yLjYtNzguNiAwLTE0Ni4xIDQ3LjItMTc1LjggMTE0LjgtNS4xLTEuOC0xMC41LTIuOC0xNi4yLTIuOGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5MSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4xIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNTUzLjQgMzM5LjFjLTcuMS01LjItMTcuMS0zLjYtMjIuMyAzLjVsLTUzIDcyLjgtMjYuNy0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMC02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC43czguOS0yLjggMTEuNy02LjZsNjQtODhjNS4yLTcuMSAzLjYtMTcuMS0zLjUtMjIuM3oiXX0sSkRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLWRheSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4MyIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHoiXX0sZUVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpYnJhIixpY29uOls1MTIsNTEyLFtdLCJlODRiIiwiTTQ4MCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ0OCAwek0yNTYgMzJjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCAxNi42LTIuNCAzMi43LTYuNyA0OGw1NC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwNC4yIDBjLTExLjggMC0yMi43LTYuNS0yOC4yLTE2LjlzLTQuOS0yMy4xIDEuNi0zMi45YzExLjktMTcuOCAxOC44LTM5LjEgMTguOC02Mi4yIDAtNjEuOS01MC4xLTExMi0xMTItMTEyUzE0NCAxNDYuMSAxNDQgMjA4YzAgMjMuMSA2LjkgNDQuNCAxOC44IDYyLjIgNi42IDkuOCA3LjIgMjIuNSAxLjYgMzIuOVMxNDguMSAzMjAgMTM2LjIgMzIwTDMyIDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1NC44IDBjLTQuMy0xNS4zLTYuOC0zMS40LTYuOC00OCAwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnoiXX0sdEVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZSIsaWNvbjpbNTEyLDUxMixbMTI4MzA4LDEyODMwOSwxMjg5OTIsMTI4OTkzLDEyODk5NCwxMjg5OTUsMTI4OTk2LDk2NzksOTg5OCw5ODk5LDExMDQ0LDYxNzA4LDYxOTE1XSwiZjExMSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxhRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXZpYnJhdGUiLGljb246WzU3Niw1MTIsW10sImU4MTYiLCJNMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE5MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTM4NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMHpNMjQ4IDQxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwek00OC44IDEzMy40YzkuNC03LjcgMjMuMy03LjEgMzIuMSAxLjcgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDI1LjQgMjUuNCAyLjkgMy4yYzYuMyA3LjcgOS44IDE3LjQgOS44IDI3LjQgMCAxMS41LTQuNiAyMi41LTEyLjcgMzAuNmwtMjUuNCAyNS40IDMxIDMxIDEuNyAxLjhjNy43IDkuNCA3LjEgMjMuMy0xLjcgMzIuMXMtMjIuNyA5LjMtMzIuMSAxLjdMNDcgMzc3IDEyLjcgMzQyLjZDNS42IDMzNS41IDEuMiAzMjYuMiAuMiAzMTYuM0wwIDMxMiAuMiAzMDcuN2MxLTkuOSA1LjQtMTkuMiAxMi41LTI2LjNMMzguMSAyNTYgMTIuNyAyMzAuNkM1LjYgMjIzLjUgMS4yIDIxNC4yIC4yIDIwNC4zTDAgMjAwIC4yIDE5NS43YzEtOS45IDUuNC0xOS4yIDEyLjUtMjYuM0w0NyAxMzUgNDguOCAxMzMuNHpNNDk1IDEzNWM4LjgtOC44IDIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgMzQuMyAzNC4zYzcuMSA3LjEgMTEuNSAxNi40IDEyLjUgMjYuM2wuMiA0LjMtLjIgNC4zYy0xIDkuOS01LjQgMTkuMi0xMi41IDI2LjNsLTI1LjQgMjUuNCAyNS40IDI1LjRjNy4xIDcuMSAxMS41IDE2LjQgMTIuNSAyNi4zbC4yIDQuMy0uMiA0LjNjLTEgOS45LTUuNCAxOS4yLTEyLjUgMjYuM2wtMzQuMyAzNC4zLTEuOCAxLjdjLTkuNCA3LjctMjMuMyA3LjEtMzIuMS0xLjdzLTkuMy0yMi43LTEuNy0zMi4xbDEuNy0xLjggMzEtMzEtMjUuNC0yNS40Yy04LjEtOC4xLTEyLjctMTkuMS0xMi43LTMwLjYgMC0xMCAzLjUtMTkuNyA5LjgtMjcuNGwyLjktMy4yIDI1LjQtMjUuNC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LFhGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODUxOCwiZ3Jpbi1zcXVpbnQiXSwiZjU4NSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg2LjcgMzA4LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDM4OC4yIDEwNS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTEyMi42IDE0My4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAxOTIgMzg2LjIgMjE5LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LGlFZT1YRixyRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtYmV0d2Vlbi1saW5lcyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5MSIsIk0yNCAxNmw1MjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA2NEMxMC43IDY0IDAgNTMuMyAwIDQwUzEwLjcgMTYgMjQgMTZ6bTAgNDQ4bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMzkyIDE5MmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTI3LjIgMTAwLjRjOS4xLTIuOSAxOC44LTQuNCAyOC44LTQuNCA1MyAwIDk2IDQzIDk2IDk2bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC03OC44IDBjMi43LTcuNSA0LjEtMTUuNiA0LjEtMjRsMC04YzAtMzQuMS0xMC42LTY1LjctMjguOC05MS42em0tMjYyLjQgMEMxMzguNiAzMTguMyAxMjggMzQ5LjkgMTI4IDM4NGwwIDhjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC03OC44IDBDNDEuNiA0MTYgMzIgNDA2LjQgMzIgMzk0LjdMMzIgMzg0YzAtNTMgNDMtOTYgOTYtOTYgMTAgMCAxOS43IDEuNSAyOC44IDQuNHpNNzIgMTkyYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMTUyLTE2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMTc2IDM4NGMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEybDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtOHoiXX0sc0VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTEzIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgNDAweiJdfSxLRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1saXN0IixpY29uOls0NDgsNTEyLFsidGgtbGlzdCJdLCJmMDBiIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em02NCAwbDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6TTY0IDIyNGwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0ek02NCAzNTJsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHoiXX0sbkVlPUtGLG9FZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFzay12aWFsIixpY29uOls2NDAsNTEyLFtdLCJlNGYzIiwiTTE4NC42IDQxMS41Yy0zLjEgNy4zLTUuNCAxNC45LTYuOCAyMi42LTE0LjUgOC44LTMxLjUgMTMuOS00OS44IDEzLjktNTMgMC05Ni00My05Ni05NkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwTDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMjU1LjYtMzkuNCA5MS45ek05NiA2NGwwIDEyOCA2NCAwIDAtMTI4LTY0IDB6TTM1MiAwTDUxMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUzLjQgOTEuMyAyMTNjMi4zIDUuNCAzLjggMTEuMSA0LjQgMTdsLjMgLjYtLjMgMGMuMiAxLjggLjMgMy42IC4zIDUuNCAwIDMyLjMtMjYuMiA1OC42LTU4LjYgNTguNmwtMjY2LjkgMGMtMzIuMyAwLTU4LjYtMjYuMi01OC42LTU4LjYgMC0xLjggLjEtMy42IC4zLTUuNGwtLjMgMCAuMy0uNmMuNi01LjggMi4xLTExLjYgNC40LTE3TDMyMCAyMTcuNCAzMjAgNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzMwMi4zIDAgMzIwIDBsMzIgMHpNNDUzLjIgMjQyLjZjLTMuNC04LTUuMi0xNi41LTUuMi0yNS4ybDAtMTUzLjQtNjQgMCAwIDE1My40YzAgOC43LTEuOCAxNy4yLTUuMiAyNS4ybC0zMy4yIDc3LjQgMTQwLjcgMC0zMy4yLTc3LjR6Il19LFFGPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNTEyLDUxMixbImV4Y2xhbWF0aW9uLWNpcmNsZSJdLCJmMDZhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyem0wLTE5MmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAtMTkyYy0xOC4yIDAtMzIuNyAxNS41LTMxLjQgMzMuN2w3LjQgMTA0Yy45IDEyLjYgMTEuNCAyMi4zIDIzLjkgMjIuMyAxMi42IDAgMjMtOS43IDIzLjktMjIuM2w3LjQtMTA0YzEuMy0xOC4yLTEzLjEtMzMuNy0zMS40LTMzLjd6Il19LGxFZT1RRixKRj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXhpIixpY29uOls1MTIsNTEyLFsxMjg2NjIsImNhYiJdLCJmMWJhIiwiTTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTguOSAwYy00MiAwLTc5LjEgMjcuMy05MS42IDY3LjRsLTIzIDczLjVDMTQuNSAyMTkuMSAwIDI0My45IDAgMjcyTDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAzMjAgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xNzZjMC0yOC4xLTE0LjUtNTIuOS0zNi40LTY3LjFsLTIzLTczLjVDNDQwLjEgOTEuMyA0MDIuOSA2NCAzNjAuOSA2NGwtOC45IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwxOTIgMHpNMTUxLjEgMTI4bDIwOS45IDBjMTQgMCAyNi40IDkuMSAzMC41IDIyLjVsMTMgNDEuNS0yOTYuOSAwIDEzLTQxLjVjNC4yLTEzLjQgMTYuNS0yMi41IDMwLjUtMjIuNXpNOTYgMjcyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjg4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LGNFZT1KRixlTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXh0LXNsYXNoIixpY29uOls1NzYsNTEyLFsicmVtb3ZlLWZvcm1hdCJdLCJmODdkIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzIyLjcgMjU2LjkgMzY4LjIgOTYgNDcxIDk2IDQ2NSAxMjAuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wxMS00NC4xQzU0NS42IDYxLjMgNTIyLjcgMzIgNDkxLjUgMzJsLTMxOSAwYy0xOS44IDAtMzcuMyAxMi4xLTQ0LjUgMzAuMWwtODctODd6TTE4MC40IDExNC41bDQuNi0xOC41IDExNi43IDAtMzAuOCAxMDktOTAuNS05MC41ek0yNDEgMzEwLjhMMjExLjMgNDE2IDE2MCA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQyLjIgMCAxNS4xLTUzLjMtNTEuOS01MS45eiJdfSxkRWU9ZU8scEVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1wdWxsaW5nIixpY29uOls1NzYsNTEyLFtdLCJlNTM1IiwiTTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMiA5LjggMCAxOC41LTQuNCAyNC40LTExLjJMODAuNCA0ODUuM2MyLjkgMTcuNCAxOS40IDI5LjIgMzYuOCAyNi4zczI5LjItMTkuNCAyNi4zLTM2LjhsLTIwLjUtMTIyLjcgMTUuNyAwIDMwIDEzNC45YzMuOCAxNy4zIDIwLjkgMjguMSAzOC4yIDI0LjNzMjguMS0yMC45IDI0LjMtMzguMmwtNTcuMy0yNTggMTE2LjMgNTMuOGMuNSAuMyAxLjEgLjUgMS42IC43IDguNiAzLjYgMTggMy4xIDI1LjktLjcgMy40LTEuNiA2LjYtMy45IDkuMy02LjcgMy4xLTMuMiA1LjUtNyA3LjEtMTEuNCAuMS0uMyAuMi0uNyAuMy0xbDIuNS03LjVjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNWMxLS40IDEuOS0uOCAyLjktMS4ybC0xNi45IDYzLjVjLTUuNiAyMS4xLS4xIDQzLjYgMTQuNyA1OS43bDcwLjcgNzcuMSAyMiA4OC4xYzQuMyAxNy4xIDIxLjcgMjcuNiAzOC44IDIzLjNzMjcuNi0yMS43IDIzLjMtMzguOGwtMjMtOTIuMWMtMS45LTcuOC01LjgtMTQuOS0xMS4yLTIwLjhsLTQ5LjUtNTQgMTkuMy02NS41IDkuNiAyM2M0LjQgMTAuNiAxMi41IDE5LjMgMjIuOCAyNC41bDI2LjcgMTMuM2MxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlsLTIxLjQtMTAuNy0xNS4zLTM2LjhjLTE3LjEtNDEuMS01Ny4zLTY3LjktMTAxLjktNjcuOS0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTI0LjQgMTAuOS00NC42IDI5LTU4LjEgNTEuNkwxNTcuMyAxMzYuOUMxNDQuNyAxMzEgMTMwLjkgMTI4IDExNyAxMjhsLTUzIDB6TTQ2NCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTM0OS43IDMzNS42bC0yNSA2Mi40LTU5LjQgNTkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwzNzIuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42eiJdfSxoRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFja3dhcmQiLGljb246WzU3Niw1MTIsWzkxOTRdLCJmMDRhIiwiTTIwNC4zIDQzLjFDMjE1LjkgMzIgMjMzIDI4LjkgMjQ3LjcgMzUuMlMyNzIgNTYgMjcyIDcybDAgMTM2LjMgMTcyLjMtMTY1LjFDNDU1LjkgMzIgNDczIDI4LjkgNDg3LjcgMzUuMlM1MTIgNTYgNTEyIDcybDAgMzY4YzAgMTYtOS42IDMwLjUtMjQuMyAzNi44cy0zMS44IDMuMi00My40LTcuOUwyNzIgMzAzLjcgMjcyIDQ0MGMwIDE2LTkuNiAzMC41LTI0LjMgMzYuOHMtMzEuOCAzLjItNDMuNC03LjlsLTE5Mi0xODRDNC41IDI3Ny4zIDAgMjY2LjkgMCAyNTZzNC41LTIxLjMgMTIuMy0yOC45bDE5Mi0xODR6Il19LHRPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1idXJzdCIsaWNvbjpbNjQwLDUxMixbImNhci1jcmFzaCJdLCJmNWUxIiwiTTIzMiAxNi4xbDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0ek0zMiAxNjguMWw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0ek0yODEuNSA3MC42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDI4MS41IDM2LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em0tMTgxIDIxNWwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1Mi45IDE3NS40TDUwNSAyMTYuMmM2LjQgMS43IDExLjEgNy4zIDExLjggMTMuOWw3LjIgNzQtMjMxLjUtNjIgNDMuMi02MC41YzMuOS01LjQgMTAuNy03LjkgMTcuMi02LjJ6TTIyMy42IDIyOC41bC0yLjEgMi45Yy0yMS43IDUuNS0zOS45IDIyLjMtNDYuMSA0NS41LTQuMSAxNS41LTEyLjQgNDYuNC0yNC44IDkyLjdsLTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45IDI3OC4yIDc0LjUtOC4zIDMwLjljLTQuNiAxNy4xIDUuNiAzNC42IDIyLjYgMzkuMmwxNS41IDQuMWMxNy4xIDQuNiAzNC42LTUuNiAzOS4yLTIyLjYgNC4xLTE1LjUgMTIuNC00Ni40IDI0LjgtOTIuN2w4LjMtMzAuOWM2LjItMjMuMi0xLjEtNDYuOC0xNy4yLTYyLjVsLS4zLTMuNi0xMC0xMDNjLTMuMi0zMy4yLTI2LjctNjAuOS01OC45LTY5LjVMMzY5LjUgMTEzLjZjLTMyLjItOC42LTY2LjQgMy42LTg1LjggMzAuOGwtNjAuMiA4NC4yem00OC43IDU3LjhhMzIgMzIgMCAxIDEgLTE2LjYgNjEuOCAzMiAzMiAwIDEgMSAxNi42LTYxLjh6bTIwOC4xIDg4LjlhMzIgMzIgMCAxIDEgNjEuOCAxNi42IDMyIDMyIDAgMSAxIC02MS44LTE2LjZ6Il19LHVFZT10TyxhTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5rIixpY29uOls1NzYsNTEyLFsxMjgyNzksImNoYWluIl0sImYwYzEiLCJNNDE5LjUgOTZjLTE2LjYgMC0zMi43IDQuNS00Ni44IDEyLjctMTUuOC0xNi0zNC4yLTI5LjQtNTQuNS0zOS41IDI4LjItMjQgNjQuMS0zNy4yIDEwMS4zLTM3LjIgODYuNCAwIDE1Ni41IDcwIDE1Ni41IDE1Ni41IDAgNDEuNS0xNi41IDgxLjMtNDUuOCAxMTAuNmwtNzEuMSA3MS4xYy0yOS4zIDI5LjMtNjkuMSA0NS44LTExMC42IDQ1LjgtODYuNCAwLTE1Ni41LTcwLTE1Ni41LTE1Ni41IDAtMS41IDAtMyAuMS00LjUgLjUtMTcuNyAxNS4yLTMxLjYgMzIuOS0zMS4xczMxLjYgMTUuMiAzMS4xIDMyLjljMCAuOSAwIDEuOCAwIDIuNiAwIDUxLjEgNDEuNCA5Mi41IDkyLjUgOTIuNSAyNC41IDAgNDgtOS43IDY1LjQtMjcuMWw3MS4xLTcxLjFjMTcuMy0xNy4zIDI3LjEtNDAuOSAyNy4xLTY1LjQgMC01MS4xLTQxLjQtOTIuNS05Mi41LTkyLjV6TTI3NS4yIDE3My4zYy0xLjktLjgtMy44LTEuOS01LjUtMy4xLTEyLjYtNi41LTI3LTEwLjItNDIuMS0xMC4yLTI0LjUgMC00OCA5LjctNjUuNCAyNy4xTDkxLjEgMjU4LjJjLTE3LjMgMTcuMy0yNy4xIDQwLjktMjcuMSA2NS40IDAgNTEuMSA0MS40IDkyLjUgOTIuNSA5Mi41IDE2LjUgMCAzMi42LTQuNCA0Ni43LTEyLjYgMTUuOCAxNiAzNC4yIDI5LjQgNTQuNiAzOS41LTI4LjIgMjMuOS02NCAzNy4yLTEwMS4zIDM3LjItODYuNCAwLTE1Ni41LTcwLTE1Ni41LTE1Ni41IDAtNDEuNSAxNi41LTgxLjMgNDUuOC0xMTAuNmw3MS4xLTcxLjFjMjkuMy0yOS4zIDY5LjEtNDUuOCAxMTAuNi00NS44IDg2LjYgMCAxNTYuNSA3MC42IDE1Ni41IDE1Ni45IDAgMS4zIDAgMi42IDAgMy45LS40IDE3LjctMTUuMSAzMS42LTMyLjggMzEuMnMtMzEuNi0xNS4xLTMxLjItMzIuOGMwLS44IDAtMS41IDAtMi4zIDAtMzMuNy0xOC02My4zLTQ0LjgtNzkuNnoiXX0sZkVlPWFPLGlPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkLXN0ZXAiLGljb246WzM4NCw1MTIsWyJzdGVwLWJhY2t3YXJkIl0sImYwNDgiLCJNMzYzIDM2LjhjLTEyLjktNy0yOC43LTYuMy00MSAxLjhMNjQgMjA4LjEgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0NC4xIDI1OCAxNjkuNmMxMi4zIDguMSAyOCA4LjggNDEgMS44czIxLTIwLjUgMjEtMzUuMmwwLTM2OGMwLTE0LjctOC4xLTI4LjItMjEtMzUuMnoiXX0sbUVlPWlPLGdFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4IixpY29uOlszODQsNTEyLFsxMjBdLCI1OCIsIk0zNzYuNiA4NC41YzExLjMtMTMuNiA5LjUtMzMuOC00LjEtNDUuMXMtMzMuOC05LjUtNDUuMSA0LjFMMTkyIDIwNiA1Ni42IDQzLjVDNDUuMyAyOS45IDI1LjEgMjguMSAxMS41IDM5LjRTLTMuOSA3MC45IDcuNCA4NC41TDE1MC4zIDI1NiA3LjQgNDI3LjVjLTExLjMgMTMuNi05LjUgMzMuOCA0LjEgNDUuMXMzMy44IDkuNSA0NS4xLTQuMUwxOTIgMzA2IDMyNy40IDQ2OC41YzExLjMgMTMuNiAzMS41IDE1LjQgNDUuMSA0LjFzMTUuNC0zMS41IDQuMS00NS4xTDIzMy43IDI1NiAzNzYuNiA4NC41eiJdfSxyTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtdXNlciIsaWNvbjpbNTEyLDUxMixbNjIxNDIsInVzZXItY2lyY2xlIl0sImYyYmQiLCJNMzk5IDM4NC4yQzM3Ni45IDM0NS44IDMzNS40IDMyMCAyODggMzIwbC02NCAwYy00Ny40IDAtODguOSAyNS44LTExMSA2NC4yIDM1LjIgMzkuMiA4Ni4yIDYzLjggMTQzIDYzLjhzMTA3LjgtMjQuNyAxNDMtNjMuOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDE2YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0eiJdfSxiRWU9ck8sc089e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLWxpc3QiLGljb246WzUxMiw1MTIsWyJsaXN0LWFsdCJdLCJmMDIyIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em05NiAyNTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTIwLTU2bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCAxMjhsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSx2RWU9c08sbk89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZCIsaWNvbjpbNTEyLDUxMixbMTI5MzA2LDk5OTUsImhhbmQtcGFwZXIiXSwiZjI1NiIsIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHoiXX0seUVlPW5PLHhFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW5jZXIiLGljb246WzUxMiw1MTIsW10sImU4NDciLCJNNDA4IDE1MmM1Ny40IDAgMTA0IDQ2LjYgMTA0IDEwNCAwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2LTU0LjMgMC0xMDQuOC0xNy0xNDYuMy00NS45LTE0LjUtMTAuMS0xOC0zMC4xLTcuOS00NC42czMwLjEtMTggNDQuNi03LjljMzEuMSAyMS43IDY4LjkgMzQuNCAxMDkuNyAzNC40IDY3LjkgMCAxMjcuNS0zNS4zIDE2MS43LTg4LjUtMy4yIC4zLTYuNCAuNS05LjcgLjUtNTcuNCAwLTEwNC00Ni42LTEwNC0xMDRzNDYuNi0xMDQgMTA0LTEwNHpNMjU2IDBjNTQuMyAwIDEwNC44IDE3IDE0Ni4zIDQ1LjkgMTQuNSAxMC4xIDE4IDMwLjEgNy45IDQ0LjZzLTMwLjEgMTgtNDQuNiA3LjljLTMxLjEtMjEuNy02OC45LTM0LjQtMTA5LjctMzQuNC02Ny45IDAtMTI3LjUgMzUuMi0xNjEuNyA4OC40IDMuMi0uMyA2LjQtLjQgOS43LS40IDU3LjQgMCAxMDQgNDYuNiAxMDQgMTA0UzE2MS40IDM2MCAxMDQgMzYwIDAgMzEzLjQgMCAyNTZDMCAyNTQuMSAwIDI1Mi4yIC4xIDI1MC40IDMuMSAxMTEuNiAxMTYuNSAwIDI1NiAwek0xMDQgMjE2YTQwIDQwIDAgMSAwIDAgODAgNDAgNDAgMCAxIDAgMC04MHptMzA0IDBhNDAgNDAgMCAxIDAgMCA4MCA0MCA0MCAwIDEgMCAwLTgweiJdfSxvTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2YW4tc2h1dHRsZSIsaWNvbjpbNTc2LDUxMixbMTI4NjU2LCJzaHV0dGxlLXZhbiJdLCJmNWI2IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzM2YzAgMzUuMyAyOC43IDY0IDY0IDY0bC40IDBjNCA0NC45IDQxLjcgODAgODcuNiA4MHM4My42LTM1LjEgODcuNi04MGwxMDQuNyAwYzQgNDQuOSA0MS43IDgwIDg3LjYgODAgNDYuMSAwIDgzLjktMzUuNCA4Ny43LTgwLjUgMzEuNy0zLjggNTYuMy0zMC44IDU2LjMtNjMuNWwwLTEwMS4zYzAtMTMuOC00LjUtMjcuMy0xMi44LTM4LjRsLTgwLTEwNi43QzQ3MS4xIDczLjUgNDUyLjEgNjQgNDMyIDY0TDY0IDY0ek01MDQgMjI0bC0xMjAgMCAwLTk2IDQ4IDAgNzIgOTZ6TTY0IDIyNGwwLTk2IDk2IDAgMCA5Ni05NiAwem0xNjAgMGwwLTk2IDk2IDAgMCA5Ni05NiAwek0zOTIgMzkyYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE1MiAzNTJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSx3RWU9b08sTUVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YWlycyIsaWNvbjpbNTc2LDUxMixbXSwiZTI4OSIsIk0zODQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTk2eiJdfSx6RWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9yc2UtaGVhZCIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYiIsIk0wIDQ2NEwwIDMxNi45QzAgMjA4LjUgNjguMyAxMTEuOCAxNzAuNSA3NS42TDM0MC4yIDE1LjVjMjEuNC03LjYgNDMuOCA4LjMgNDMuOCAzMC45IDAgMTEtNS41IDIxLjItMTQuNiAyNy4zTDMzNiA5NmM0OC4xIDAgOTEuMiAyOS44IDEwOC4xIDc0LjlsNDguNiAxMjkuNWMxMS44IDMxLjQgNC4xIDY2LjgtMTkuNiA5MC41LTE2IDE2LTM3LjggMjUuMS02MC41IDI1LjFsLTMuNCAwYy0yNi4xIDAtNTAuOS0xMS42LTY3LjYtMzEuN2wtMzIuMy0zOC43Yy0xMS43IDQuMS0yNC4yIDYuNC0zNy4zIDYuNGwtLjEgMGMtNi4zIDAtMTIuNS0uNS0xOC42LTEuNS0zLjYtLjYtNy4yLTEuNC0xMC43LTIuM2wwIDBjLTI4LjktNy44LTUzLjEtMjYuOC02Ny44LTUyLjItNC40LTcuNy0xNC4yLTEwLjMtMjEuOS01LjhzLTEwLjMgMTQuMi01LjggMjEuOWMyNCA0MS41IDY4LjMgNzAgMTE5LjMgNzEuOWw0Ny4yIDcwLjhjNCA2LjEgNi4yIDEzLjIgNi4yIDIwLjQgMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OHpNMzI4IDIyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGtFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2YXVsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTJjNSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMjU2IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjU2IDI1NmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTY0IDI1NmExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem0zODQtNDhjMCAxNy44LTkuNyAzMy4zLTI0IDQxLjZsMCA3OC40YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzguNGMtMTQuMy04LjMtMjQtMjMuOC0yNC00MS42IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh6Il19LFNFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTEzNSIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMTI5LjggNjQgNDgwIDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMjUuNS0xNC45IDQ3LjQtMzYuNCA1Ny44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45em0zNDUgMzExbDAtNzAuMmMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCAyMi4yIDQ4IDQ4em02MS41IDYxLjVjMjAuMi04LjQgMzQuNS0yOC40IDM0LjUtNTEuNyAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTIyLjIgMCA0My43IDQzLjd6TTEzMC4zIDIwMC4xYy0xLjUgNS0yLjMgMTAuNC0yLjMgMTUuOWwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMTguMSAwIDM0LjEtOC41IDQ0LjQtMjEuOEwzNzguMiA0NDggOTYgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI1NmMwLTcuOCAxLjQtMTUuMyA0LTIyLjJsOTQuMyA5NC4zem05My44IDkzLjhjLS4xIC43LS4xIDEuNC0uMSAyLjEgMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC01MC4yIDQ4LjEgNDguMXoiXX0sQ0VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRydW0tc3RlZWxwYW4iLGljb246WzU3Niw1MTIsW10sImY1NmEiLCJNMjg4IDMyYzE1OS4xIDAgMjg4IDQ4IDI4OCAxMjhsMCAxOTJjMCA4MC0xMjguOSAxMjgtMjg4IDEyOFMwIDQzMiAwIDM1MkwwIDE2MEMwIDgwIDEyOC45IDMyIDI4OCAzMnpNNTI4IDE2MGMwLTkuOS04LTI5LjktNTUtNDkuOC0xOC42LTcuOS00MC45LTE0LjQtNjYtMTkuNGwtMjcuOCA0My42Yy03LjMgMTEuNS0xMS4yIDI0LjgtMTEuMiAzOC40IDAgMTcuNSA2LjQgMzQuNCAxOC4xIDQ3LjVsOS44IDExYzI5LjgtNS4yIDU1LjktMTIuNSA3Ny4yLTIxLjUgNDcuMS0xOS45IDU1LTM5LjkgNTUtNDkuOHpNMzQ5LjIgMjM3LjNjLTgtMjYuMi0zMi40LTQ1LjMtNjEuMi00NS4zcy01My4zIDE5LjEtNjEuMiA0NS4zYzE5LjQgMS43IDM5LjkgMi43IDYxLjIgMi43czQxLjgtLjkgNjEuMi0yLjd6TTE2OSA5MC44Yy0yNS4yIDUtNDcuNCAxMS42LTY2IDE5LjQtNDcuMSAxOS45LTU1IDM5LjktNTUgNDkuOHM4IDI5LjkgNTUgNDkuOGMyMS4zIDkgNDcuNCAxNi4zIDc3LjIgMjEuNWw5LjgtMTFjMTEuNi0xMy4xIDE4LjEtMzAgMTguMS00Ny41IDAtMTMuNi0zLjktMjYuOS0xMS4yLTM4LjRMMTY5IDkwLjh6bTU2LjMtOGMtLjkgNC4zLTEuNCA4LjctMS40IDEzLjIgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTQuNS0uNS05LTEuNC0xMy4yLTE5LjgtMS44LTQwLjgtMi44LTYyLjYtMi44cy00Mi44IDEtNjIuNiAyLjh6Il19LF9FZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnMtdXAiLGljb246WzUxMiw1MTIsWzEyODA3Nyw2MTU3NV0sImYxNjQiLCJNODAgMTYwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0OCAwek0yNzAuNiAxNkMyOTcuOSAxNiAzMjAgMzguMSAzMjAgNjUuNGwwIDQuMmMwIDYuOC0xLjMgMTMuNi0zLjggMTkuOUwyODggMTYwIDQ0OCAxNjBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxOS43LTExLjkgMzYuNi0yOC45IDQ0IDE3IDcuNCAyOC45IDI0LjMgMjguOSA0NCAwIDIzLjQtMTYuOCA0Mi45LTM5IDQ3LjEgNC40IDcuMyA3IDE1LjggNyAyNC45IDAgMjIuMi0xNSA0MC44LTM1LjQgNDYuMyAyLjIgNS41IDMuNCAxMS41IDMuNCAxNy43IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC04Ny45IDBjLTM2LjMgMC03MS42LTEyLjQtOTkuOS0zNS4xTDE4NCA0MzUuMmMtMTUuMi0xMi4xLTI0LTMwLjUtMjQtNTBsMC0xODYuNmMwLTE0LjkgMy41LTI5LjYgMTAuMS00Mi45TDIyNi4zIDQzLjNDMjM0LjcgMjYuNiAyNTEuOCAxNiAyNzAuNiAxNnoiXX0sVEVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YW1wIixpY29uOls1MTIsNTEyLFtdLCJmNWJmIiwiTTMxMiAyMDEuOGMwLTE3LjQgOS4yLTMzLjIgMTkuOS00NyAxMi42LTE2LjIgMjAuMS0zNi42IDIwLjEtNTguOCAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDIyLjEgNy41IDQyLjUgMjAuMSA1OC44IDEwLjcgMTMuOCAxOS45IDI5LjYgMTkuOSA0NyAwIDI5LjktMjQuMyA1NC4yLTU0LjIgNTQuMkwxMTIgMjU2Yy02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTYxLjktNTAuMS0xMTItMTEyLTExMmwtMzMuOCAwYy0yOS45IDAtNTQuMi0yNC4zLTU0LjItNTQuMnpNNTYgNDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwMCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDU2IDQ2NHoiXX0sTEVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lbm9yYWgiLGljb246WzY0MCw1MTIsW10sImY2NzYiLCJNMjAuOCA3LjRDMjIuOCAyLjkgMjcuMSAwIDMyIDBzOS4yIDIuOSAxMS4yIDcuNEw2MS4zIDQ5LjdjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xTDY0IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgODEuNyAwIDY0bDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwyMC44IDcuNHptOTYgMEMxMTguOCAyLjkgMTIzLjEgMCAxMjggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJTOTYgODEuNyA5NiA2NGwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMTE2LjggNy40em03Ny44IDQyLjRMMjEyLjggNy40QzIxNC44IDIuOSAyMTkuMSAwIDIyNCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMwOC44IDcuNEMzMTAuOCAyLjkgMzE1LjEgMCAzMjAgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDMwOC44IDcuNHptNzcuOCA0Mi40TDQwNC44IDcuNEM0MDYuOCAyLjkgNDExLjEgMCA0MTYgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek01MDAuOCA3LjRDNTAyLjggMi45IDUwNy4xIDAgNTEyIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUw1MDAuOCA3LjR6bTc3LjggNDIuNEw1OTYuOCA3LjRDNTk4LjggMi45IDYwMy4xIDAgNjA4IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNMzIgMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwIDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNjAgMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMCAwIDY0IDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMjggMCAwLTY0LTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDAgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSwkRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGRyZW4iLGljb246WzY0MCw1MTIsW10sImU0ZTEiLCJNMTYwLjUgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptLTcyIDQ4MGwwLTgwLTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFMODYuNyAyODUuNSA1OCAzMjMuM2MtMTAuNyAxNC4xLTMwLjggMTYuOC00NC44IDYuMlMtMy43IDI5OC43IDcgMjg0LjdMNjUuOSAyMDdjMjIuNC0yOS42IDU3LjUtNDcgOTQuNi00N3M3Mi4yIDE3LjQgOTQuNiA0N0wzMTQgMjg0LjdjMTAuNyAxNC4xIDcuOSAzNC4yLTYuMiA0NC44cy0zNC4yIDcuOS00NC44LTYuMmwtMjguNy0zNy44IDMxLjEgOTMuNGMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTE3LjggMCAwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODAtMTYgMCAwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyek00ODAuNSAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0tOCAzODRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE3OS41LTEyLjkgMjAuNWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwcy0xOS40LTI5LjItMTAtNDQuMWw1MS43LTgyLjFjMTcuNi0yNy45IDQ4LjMtNDQuOSA4MS4yLTQ0LjlsMTIuMyAwYzMzIDAgNjMuNyAxNi45IDgxLjIgNDQuOUw2MTkuNiAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBsLTEyLjktMjAuNSAwIDE3OS41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMHoiXX0sbE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtbGluZSIsaWNvbjpbNTEyLDUxMixbImxpbmUtY2hhcnQiXSwiZjIwMSIsIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQwMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MDAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw4MCA0MTZjLTguOCAwLTE2LTcuMi0xNi0xNkw2NCA2NHptNDA2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwzMjAgMjEwLjcgMjYyLjYgMTUzLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw3My40LTczLjQgNTcuNCA1Ny40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LEFFZT1sTyxjTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtZW52ZWxvcGUiLGljb246WzQ0OCw1MTIsWyJlbnZlbG9wZS1zcXVhcmUiXSwiZjE5OSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDkuMSAyNjcuOUwxMDguNCAyMDcuNGMtNy43LTQuNi0xMi40LTEyLjktMTIuNC0yMS45IDAtMTQuMSAxMS40LTI1LjUgMjUuNS0yNS41bDIwNC45IDBjMTQuMSAwIDI1LjUgMTEuNCAyNS41IDI1LjUgMCA5LTQuNyAxNy4zLTEyLjQgMjEuOUwyMzguOSAyNjcuOWMtNC41IDIuNy05LjYgNC4xLTE0LjkgNC4xcy0xMC40LTEuNC0xNC45LTQuMXpNMzUyIDIzNy4zbDAgODIuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODIuNyA5Ni43IDU4QzIwMi4xIDMwMSAyMTMgMzA0IDIyNCAzMDRzMjEuOS0zIDMxLjMtOC43bDk2LjctNTh6Il19LERFZT1jTyxkTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4tc21va2luZyIsaWNvbjpbNTEyLDUxMixbMTI4Njg1LCJzbW9raW5nLWJhbiJdLCJmNTRkIiwiTTk5LjUgMTQ0LjhsNzkuMiA3OS4yLTUwLjcgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNDYuNyAwIDkyLjUgOTIuNWMtMzEuNCAyMi40LTY5LjggMzUuNS0xMTEuMiAzNS41LTEwNiAwLTE5Mi04Ni0xOTItMTkyIDAtNDEuNSAxMy4xLTc5LjkgMzUuNS0xMTEuMnpNMzMzLjMgMjg4bC0zMi0zMiA4Mi43IDAgMCAzMi01MC43IDB6bTMyIDMybDE4LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDI2OS4zIDIyNCAxNDQuOCA5OS41YzMxLjQtMjIuNCA2OS44LTM1LjUgMTExLjItMzUuNSAxMDYgMCAxOTIgODYgMTkyIDE5MiAwIDQxLjUtMTMuMSA3OS45LTM1LjUgMTExLjJMMzY1LjMgMzIwek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjcyIDk2Yy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZ6Il19LEVFZT1kTyxQRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZnJvbnQiLGljb246WzQ0OCw1MTIsW10sImUyYjciLCJNMCAxMTJDMCA2Ny44IDM1LjggMzIgODAgMzJsMjg4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAyNTZjMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyLTE5MiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDhDMTIuNiA0MTcuNCAwIDM5NC4yIDAgMzY4TDAgMTEyem05NiA4MGwwIDY0IDI1NiAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMzIgMTYwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTIyNCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHNnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTE3NiAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNOTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LElFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWxsc2V5ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjE0MCIsIk00NDggMjU2YTE5MiAxOTIgMCAxIDAgLTM4NCAwIDE5MiAxOTIgMCAxIDAgMzg0IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiA4MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMC0yMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4ek0yMjQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHBPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWxlZnQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctbGVmdCJdLCJmMTc3IiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OCA1NDQgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00MzQuNyAwIDczLjQtNzMuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOHoiXX0sTkVlPXBPLEZFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0wIDMyTDAgMTMzLjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMNjQgMjI0IDY0IDM4NCA3LjggNDU0LjNDMi43IDQ2MC42IDAgNDY4LjQgMCA0NzYuNSAwIDQ5Ni4xIDE1LjkgNTEyIDM1LjUgNTEybDMxMi45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTU2LjItNzAuMyAwLTE2MCA0NS4zLTQ1LjNjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0wzODQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItNDggMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE3NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTQ4IDAgMC0zMkM5NiAxNC4zIDgxLjcgMCA2NCAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyeiJdfSxPRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxlbmRlci1waG9uZSIsaWNvbjpbNTc2LDUxMixbXSwiZjZiNiIsIk0xNTEuNCAxMy4yYzEwLjIgNS44IDE0LjUgMTguNCAxMCAyOS4zTDEzOC4yIDk4LjhjLTMuOSA5LjYtMTMuNyAxNS40LTI0IDE0LjRsLTIwLjItMkM3OC43IDE1Mi45IDc4IDE5OC45IDkxLjkgMjQxLjFsMjIuNC0yLjJjMTAuMy0xIDIwIDQuOCAyNCAxNC40bDIzLjIgNTYuM2M0LjUgMTAuOSAuMiAyMy40LTEwIDI5LjNsLTIuOSAxLjZjLTMzLjYgMTkuMi04MS43IDE2LjItMTA2LjItMjEuNi01Ni4zLTg2LjYtNTYuMy0xOTkuMSAwLTI4NS43IDI0LjYtMzcuNyA3Mi43LTQwLjcgMTA2LjItMjEuNmwyLjkgMS42ek0yMjQgMzM2TDE5My43IDE3LjVDMTkyLjggOC4xIDIwMC4yIDAgMjA5LjYgMGwzMjQgMGMyMS4zIDAgMzYuNiAyMC4zIDMwLjggNDAuOEw1NTMuMSA4MCA0NDAgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsOTkuNCAwLTE4LjMgNjQtODEuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDY3LjQgMC0yNy40IDk2LTI1NiAwem04IDQ4bDI0MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTI0MCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwem0xMjAgODhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxoTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLXVwIixpY29uOlszODQsNTEyLFsibGV2ZWwtdXAiXSwiZjE0OCIsIk0zMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzA2LjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuMyAxNjAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAweiJdfSxSRWU9aE8sQkVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJpY3ljbGUiLGljb246WzY0MCw1MTIsWzEyODY5MF0sImYyMDYiLCJNMzMxLjcgNDMuM0MzMzYgMzYuMyAzNDMuNyAzMiAzNTIgMzJsMTA0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY1LjYgMCA3Mi4yIDE0OC40YzEwLjctMi45IDIxLjktNC40IDMzLjQtNC40IDcwLjcgMCAxMjggNTcuMyAxMjggMTI4cy01Ny4zIDEyOC0xMjggMTI4LTEyOC01Ny4zLTEyOC0xMjhjMC00MiAyMC4yLTc5LjIgNTEuNC0xMDIuNmwtMjAuNC00MS45LTczLjUgMTQ3Yy0yLjMgNC44LTYuMyA4LjgtMTEuNCAxMS4yLS42IC4zLTEuMiAuNS0xLjggLjctMi45IDEuMS01LjkgMS42LTguOSAxLjVMMjcxIDM2OGMtNy45IDYzLjEtNjEuNyAxMTItMTI3IDExMi03MC43IDAtMTI4LTU3LjMtMTI4LTEyOFM3My4zIDIyNCAxNDQgMjI0YzEwLjggMCAyMS4yIDEuMyAzMS4yIDMuOGwyOC41LTU2LjktMTEuNS0yNi45LTQwLjIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw1NiAwYzkuNiAwIDE4LjMgNS43IDIyLjEgMTQuNWwxNC4zIDMzLjUgMTIzLjcgMC0zNy43LTc3LjVjLTMuNi03LjQtMy4yLTE2LjIgMS4yLTIzLjJ6TTIyOC41IDIyOC43bC00NS42IDkxLjMgODQuOCAwLTM5LjEtOTEuM3pNMzA1LjcgMjg3bDQ3LjUtOTUtODguMiAwIDQwLjcgOTV6bTE2OC43IDc1LjVsLTI5LjctNjFjLTEyLjggMTMtMjAuNyAzMC44LTIwLjcgNTAuNSAwIDM5LjggMzIuMiA3MiA3MiA3MnM3Mi0zMi4yIDcyLTcyLTMyLjItNzItNzItNzJjLTIuNyAwLTUuNSAuMi04LjEgLjVsMjkuNyA2MWM1LjggMTEuOSAuOCAyNi4zLTExLjEgMzIuMXMtMjYuMyAuOC0zMi4xLTExLjF6TTE0OS4yIDM2OGMtMjAuMiAwLTMzLjQtMjEuMy0yNC4zLTM5LjRsMjQuMi00OC41Yy0xLjctLjEtMy40LS4yLTUuMS0uMi0zOS44IDAtNzIgMzIuMi03MiA3MnMzMi4yIDcyIDcyIDcyYzM0LjMgMCA2Mi45LTIzLjkgNzAuMi01NmwtNjUgMHoiXX0sdU89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWFycm93LWRvd24iLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtZG93biJdLCJmMGFiIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMzkgMzc3bC04MC04MGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDM5IDM5IDAtMTUwLjFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE1MC4xIDM5LTM5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODAgODBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxIRWU9dU8sczg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhciIsaWNvbjpbNTEyLDUxMixbOTg4MSwiY29nIl0sImYwMTMiLCJNMTk1LjEgOS41QzE5OC4xLTUuMyAyMTEuMi0xNiAyMjYuNC0xNmw1OS44IDBjMTUuMiAwIDI4LjMgMTAuNyAzMS4zIDI1LjVMMzMyIDc5LjVjMTQuMSA2IDI3LjMgMTMuNyAzOS4zIDIyLjhsNjcuOC0yMi41YzE0LjQtNC44IDMwLjIgMS4yIDM3LjggMTQuNGwyOS45IDUxLjhjNy42IDEzLjIgNC45IDI5LjgtNi41IDM5LjlMNDQ3IDIzMy4zYy45IDcuNCAxLjMgMTUgMS4zIDIyLjdzLS41IDE1LjMtMS4zIDIyLjdsNTMuNCA0Ny41YzExLjQgMTAuMSAxNCAyNi44IDYuNSAzOS45bC0yOS45IDUxLjhjLTcuNiAxMy4xLTIzLjQgMTkuMi0zNy44IDE0LjRsLTY3LjgtMjIuNWMtMTIuMSA5LjEtMjUuMyAxNi43LTM5LjMgMjIuOGwtMTQuNCA2OS45Yy0zLjEgMTQuOS0xNi4yIDI1LjUtMzEuMyAyNS41bC01OS44IDBjLTE1LjIgMC0yOC4zLTEwLjctMzEuMy0yNS41bC0xNC40LTY5LjljLTE0LjEtNi0yNy4yLTEzLjctMzkuMy0yMi44TDczLjUgNDMyLjNjLTE0LjQgNC44LTMwLjItMS4yLTM3LjgtMTQuNEw1LjggMzY2LjFjLTcuNi0xMy4yLTQuOS0yOS44IDYuNS0zOS45bDUzLjQtNDcuNWMtLjktNy40LTEuMy0xNS0xLjMtMjIuN3MuNS0xNS4zIDEuMy0yMi43TDEyLjMgMTg1LjhjLTExLjQtMTAuMS0xNC0yNi44LTYuNS0zOS45TDM1LjcgOTQuMWM3LjYtMTMuMiAyMy40LTE5LjIgMzcuOC0xNC40bDY3LjggMjIuNWMxMi4xLTkuMSAyNS4zLTE2LjcgMzkuMy0yMi44TDE5NS4xIDkuNXpNMjU2LjMgMzM2YTgwIDgwIDAgMSAwIC0uNi0xNjAgODAgODAgMCAxIDAgLjYgMTYweiJdfSxxRWU9czgsVkVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtYW5kLXZlbnVzLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTIzIiwiTTQ2NC0zMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzNC43IDAtNjMgNjNjLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzEtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC0zNy0xMS40LTcxLjQtMzEtOTkuOGw2My02MyAwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNjggOTZhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0ek0xOTAuOS0yMS45QzE4OC40LTI4IDE4Mi42LTMyIDE3Ni0zMnMtMTIuNCA0LTE0LjkgMTAuMWwtMjkuNCA3NC03Ni4yLTIzLjFjLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM1MzMy44IDQ2LjUgMzcgNTIuMmwzOS41IDY5LjEtNjUuNiA0NS4xYy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yLTUuNiA3OS40Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE1Mi4xIDI2OGMtNS4zLTE5LjEtOC4xLTM5LjItOC4xLTYwIDAtNjUuNCAyOC0xMjQuMiA3Mi42LTE2NS4xTDE5MC45LTIxLjl6Il19LGpFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvdHRlciIsaWNvbjpbNjQwLDUxMixbMTI5NDQ2XSwiZjcwMCIsIk0xODEuNSAxOTcuMWwxMi45IDYuNGM1LjkgMyAxMi40IDQuNSAxOS4xIDQuNSAyMy41IDAgNDIuNi0xOS4xIDQyLjYtNDIuNmwwLTIxLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjEuNGMwIDIzLjUgMTkuMSA0Mi42IDQyLjYgNDIuNiA2LjYgMCAxMy4xLTEuNSAxOS4xLTQuNSA5LjMtNC43IDE2LjQtOC4yIDIxLjItMTAuNkwxMzUuMSAxODVjLTQuNS0zLTcuMS04LTcuMS0xMy4zbDAtMy43YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAzLjdjMCA1LjMtMi43IDEwLjMtNy4xIDEzLjNsLTExLjggNy45IDguNCA0LjJ6bS04LjYgNDkuNGwtMTIuOS02LjQtMTIuOSA2LjRjLTEyLjYgNi4zLTI2LjUgOS42LTQwLjUgOS42LTMuNiAwLTcuMS0uMi0xMC42LS42bDAgLjZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwxNjAgMCAwLTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNCA5LjQtNS40IDIwLjMtOC42IDMyLTguNmwwLTE2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDguOCAwIDE2IDcuMiAxNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05OS43YzAtNDguMi0zMC44LTkxLTc2LjYtMTA2LjNsLTguNS0yLjhjLTgtMi43LTEyLjYtMTEuMS0xMC40LTE5LjNzMTAuMy0xMy4yIDE4LjYtMTEuNmwxOS45IDRDNTc2IDg2LjEgNjQwIDE2NC4yIDY0MCAyNTQuOWwwIDEuMSAwIDBjMCAxMjMuNy0xMDAuMyAyMjQtMjI0IDIyNGwtMTYwLjYgMEMxMzIgNDgwIDMyIDM4MCAzMiAyNTYuNmwwLTM5LjhjLTEwLjEtMTQuNi0xNi0zMi4zLTE2LTUxLjRsMC0yMS40IDAtMS40QzYuNyAxMzkuMyAwIDEzMC41IDAgMTIwIDAgMTA2LjcgMTAuNyA5NiAyNCA5NmwyLjggMEM0NC44IDU4LjIgODMuMyAzMiAxMjggMzJsNjQgMGM0NC43IDAgODMuMiAyNi4yIDEwMS4yIDY0bDIuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTAuNS02LjcgMTkuMy0xNiAyMi42bDAgMS40IDAgMjEuNGMwIDEuNCAwIDIuOC0uMSA0LjMgMTItNi4yIDI1LjctOS42IDQwLjEtOS42bDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDggNTYuNCAwYy0xNS4yIDE3LTI0LjQgMzkuNC0yNC40IDY0bC0zMiAwYy00Mi4zIDAtNzguMi0yNy40LTkxLTY1LjMtNS4xIC45LTEwLjMgMS4zLTE1LjYgMS4zLTE0LjEgMC0yNy45LTMuMy00MC41LTkuNnpNOTYgMTI4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptMTEyIDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6Il19LGZPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLWxlZnQiLGljb246WzUxMiw1MTIsWyJjaGV2cm9uLWNpcmNsZS1sZWZ0Il0sImYxMzciLCJNNTEyIDI1NmEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0yNzEgMTM1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODcgODcgODcgODdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxNjcgMjczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwyNzEgMTM1eiJdfSxVRWU9Zk8sbU89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1MTIsNTEyLFs2MjEwOCwicXVlc3Rpb24tY2lyY2xlIl0sImYwNTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzM2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgNDcuMi0zNiA2Ny4yLTU2IDc0LjVsMCAzLjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LjFjMC0yMC41IDE0LjgtMzUuMiAzMC4xLTQwLjIgNi40LTIuMSAxMy4yLTUuNSAxOC4yLTEwLjMgNC4zLTQuMiA3LjctMTAgNy43LTE5LjYgMC0xNy43LTE0LjMtMzItMzItMzJ6TTIyNCAzNjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sV0VlPW1PLEdFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YWxraWUtdGFsa2llIixpY29uOlszODQsNTEyLFtdLCJmOGVmIiwiTTg4LTMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNzIgNDggMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDMyIDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwLjljMCA5LjktMi4zIDE5LjctNi44IDI4LjZsLTIwLjIgNDAuNGMtMy4zIDYuNy01LjEgMTQtNS4xIDIxLjVsMCA4NC43YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC04NC43YzAtNy41LTEuNy0xNC44LTUuMS0yMS41TDYuOCAzMDEuNUMyLjMgMjkyLjYgMCAyODIuOCAwIDI3Mi45TDAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDE2IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMzIgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGdPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZ3JvdXAiLGljb246WzU3Niw1MTIsWzEyODEwMSwidXNlci1mcmllbmRzIl0sImY1MDAiLCJNNjQgMTI4YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTAgNDY0YzAtOTcuMiA3OC44LTE3NiAxNzYtMTc2czE3NiA3OC44IDE3NiAxNzZsMCA2YzAgMjMuMi0xOC44IDQyLTQyIDQyTDQyIDUxMmMtMjMuMiAwLTQyLTE4LjgtNDItNDJsMC02ek00MzIgNjRhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTAgMjQwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgMjIuNGMwIDIzLTE4LjYgNDEuNi00MS42IDQxLjZsLTE0NC44IDBjNi42LTEyLjUgMTAuNC0yNi44IDEwLjQtNDJsMC02YzAtNTEuNS0xNy40LTk4LjktNDYuNS0xMzYuNyAyMi42LTE0LjcgNDkuNi0yMy4zIDc4LjUtMjMuM3oiXX0sWUVlPWdPLGJPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXkiLGljb246WzUxMiw1MTIsWzYzNDk5LCJob21lLWxnIl0sImUzYWYiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6TTI0MCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgMTI4IDAgMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMHoiXX0sWkVlPWJPLHZPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWZyb20tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24tb3V0LWFsdCJdLCJmMmY1IiwiTTUwNSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMzYxIDk1Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAxMDIuMyAzMjAgMTEybDAgODAtMTEyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTEyIDAgMCA4MGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJMNTA1IDI3M3pNMTYwIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5Nmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAweiJdfSxYRWU9dk8sS0VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUiLGljb246WzM4NCw1MTIsWzEyODE5NiwxMjg0NTksNjE0NjJdLCJmMTViIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6Il19LFFFZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA2OSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xODMuNC0xODMuNCA3LjEtNy43IDEyNy4zIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZzLTI1LjEtNTYtNTYtNTZMMzkyLjcgMjAwIDIzMy41IDI2LjRDMjI3LjUgMTkuOCAyMTguOSAxNiAyMDkuOSAxNmwtNDMuNyAwYy0xMC45IDAtMTguNiAxMC43LTE1LjIgMjEuMUwxNzUuMSAxMDkuMiA0MS0yNC45ek0xMzAuMiAyMDBsLTI0LjYgMC01Mi44LTY2Yy0zLTMuOC03LjYtNi0xMi41LTZsLTE5LjggMGMtMTAuNCAwLTE4IDkuOC0xNS41IDE5LjlMMzIgMjU2IDUgMzY0LjFDMi40IDM3NC4yIDEwLjEgMzg0IDIwLjUgMzg0bDE5LjggMGM0LjkgMCA5LjUtMi4yIDEyLjUtNmw1Mi44LTY2IDk5LjcgMC01NC4zIDE2Mi45Yy0zLjUgMTAuNCA0LjMgMjEuMSAxNS4yIDIxLjFsNDMuNyAwYzkgMCAxNy41LTMuOCAyMy42LTEwLjRMMzIwLjcgMzkwLjUgMTMwLjIgMjAweiJdfSxKRWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtc2hvd2Vycy1oZWF2eSIsaWNvbjpbNTEyLDUxMixbXSwiZjc0MCIsIk05NiAzMjBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Mi41IDI3LjYtNzguNiA2NS45LTkxLjItMS4zLTYuNy0xLjktMTMuNy0xLjktMjAuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA0My4xIDAgODAuNSAyNC4zIDk5LjIgNjAgMTQuNy0xNy4xIDM2LjUtMjggNjAuOC0yOCA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuNS0uNiAxMC44LTEuNiAxNiAuNSAwIDEuMSAwIDEuNiAwIDUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2TDk2IDMyMHptNi44IDc5LjZsLTMyIDk2QzY2LjYgNTA4LjIgNTMgNTE1IDQwLjQgNTEwLjhTMjEgNDkzIDI1LjIgNDgwLjRsMzItOTZDNjEuNCAzNzEuOCA3NSAzNjUgODcuNiAzNjkuMlMxMDcgMzg3IDEwMi44IDM5OS42em0xMjAgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMTQxIDQ5MyAxNDUuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzIyNyAzODcgMjIyLjggMzk5LjZ6bTExMiAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMyNTMgNDkzIDI1Ny4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTMzM5IDM4NyAzMzQuOCAzOTkuNnptMTIwIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzM3MyA0OTMgMzc3LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlM0NTkgMzg3IDQ1NC44IDM5OS42eiJdfSxlUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWZhbGxpbmciLGljb246WzUxMiw1MTIsW10sImU1NDYiLCJNMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNS40YzAgNDUtMjMuNiA4Ni42LTYyLjEgMTA5LjhsLTQuNiAyLjhDMTMxLjQgMTg0LjcgOTYgMjQ3LjEgOTYgMzE0LjZMOTYgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02OS40YzAtMTYuNyAzLjMtMzMgOS40LTQ4TDM1OS4yIDUwMC4yYzExLjEgMTMuNyAzMS4zIDE1LjggNDUgNC43czE1LjgtMzEuMyA0LjctNDVMMjk1LjIgMzIwIDQwMCAzMjAgNDM4LjQgMzcxLjJjMTAuNiAxNC4xIDMwLjcgMTcgNDQuOCA2LjRzMTctMzAuNyA2LjQtNDQuOGwtNDMuMi01Ny42QzQzNy4zIDI2My4xIDQyMy4xIDI1NiA0MDggMjU2bC04OSAwLTYyLjktNzUuNWM0MC4zLTM2IDYzLjktODcuOSA2My45LTE0My4xbDAtNS40ek0xMDQgMTQ0YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSx5Tz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJuLWRvd24iLGljb246WzM4NCw1MTIsWzEwNTQ5LCJsZXZlbC1kb3duLWFsdCJdLCJmM2JlIiwiTTE2OS40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzMyLjkgMzIwIDMyMCAzMjBsLTY0IDAgMC0xNjBDMjU2IDcxLjYgMTg0LjQgMCA5NiAwTDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MC02NCAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWwxMjggMTI4eiJdfSx0UGU9eU8seE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtcmlnaHQtYW5kLWRvd24tbGVmdC1mcm9tLWNlbnRlciIsaWNvbjpbNTEyLDUxMixbImV4cGFuZC1hbHQiXSwiZjQyNCIsIk0zNDQgMEw0ODggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC0zOS0zOS04NyA4N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTMyLTMyYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4Ny04Ny0zOS0zOWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlMzMzQuMyAwIDM0NCAwek0xNjggNTEyTDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMCAzNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yUzM0LjEgMzIwLjIgNDEgMzI3bDM5IDM5IDg3LTg3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMyIDMyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04NyA4NyAzOSAzOWM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4yUzE3Ny43IDUxMiAxNjggNTEyeiJdfSxhUGU9eE8saVBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItdGFnIixpY29uOls2NDAsNTEyLFtdLCJmNTA3IiwiTTI1Ni4xIDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNCAzMDRsNTkuNCAwYzYuNyAwIDEzLjIgLjQgMTkuNyAxLjEtLjkgNC45LTEuNCA5LjktMS40IDE1bDAgOTIuMWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOWwzMS45IDMxLjktMjg2LjMgMGMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjN6TTM1Mi4xIDQxMi4ybDAtOTIuMWMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5Mi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw5NiA5NmMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOWwtNzYuMSA3Ni4xYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMGwtOTYtOTZjLTktOS0xNC4xLTIxLjItMTQuMS0zMy45em0xMDQtNDQuMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxyUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1zcGFya2xlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTA1ZCIsIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDIwOGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTExMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc4LjJjLTE5LjIgNS40LTM0LjcgMjAuNC00MC40IDQwLjNsLTYuNSAyMi43LTIyLjcgNi41Yy0yNS4yIDcuMi00Mi41IDMwLjItNDIuNSA1Ni40IDAgMjIuMSAxMi40IDQyIDMxLjQgNTEuOS0yNy41IDE3LjgtNjAuMiAyOC4xLTk1LjQgMjguMWwtMTkuMiAwYy01OS42IDAtMTE2LjktMjIuOS0xNjAtNjRMNzYuNCAzNDFjLTE2LTE1LjItMTYuNi00MC42LTEuNC01Ni42czQwLjYtMTYuNiA1Ni42LTEuNGw2MC41IDU3LjZjMC0xLjUtLjEtMy4xLS4xLTQuNmwwLTI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS03LjMgMzI2LjZjLTEuMS0zLjktNC43LTYuNi04LjctNi42cy03LjYgMi43LTguNyA2LjZsLTcuMyAyNS40LTI1LjQgNy4zYy0zLjkgMS4xLTYuNiA0LjctNi42IDguN3MyLjcgNy42IDYuNiA4LjdsMjUuNCA3LjMgNy4zIDI1LjRjMS4xIDMuOSA0LjcgNi42IDguNyA2LjZzNy42LTIuNyA4LjctNi42bDcuMy0yNS40IDI1LjQtNy4zYzMuOS0xLjEgNi42LTQuNyA2LjYtOC43cy0yLjctNy42LTYuNi04LjdsLTI1LjQtNy4zLTcuMy0yNS40ek0xMDQgMTIwbDQ4LjMgMTMuOGM0LjYgMS4zIDcuNyA1LjUgNy43IDEwLjJzLTMuMSA4LjktNy43IDEwLjJMMTA0IDE2OCA5MC4yIDIxNi4zYy0xLjMgNC42LTUuNSA3LjctMTAuMiA3LjdzLTguOS0zLjEtMTAuMi03LjdMNTYgMTY4IDcuNyAxNTQuMkMzLjEgMTUyLjkgMCAxNDguNyAwIDE0NHMzLjEtOC45IDcuNy0xMC4yTDU2IDEyMCA2OS44IDcxLjdDNzEuMSA2Ny4xIDc1LjMgNjQgODAgNjRzOC45IDMuMSAxMC4yIDcuN0wxMDQgMTIwek01ODQgNDA4bDQ4LjMgMTMuOGM0LjYgMS4zIDcuNyA1LjUgNy43IDEwLjJzLTMuMSA4LjktNy43IDEwLjJMNTg0IDQ1NiA1NzAuMiA1MDQuM2MtMS4zIDQuNi01LjUgNy43LTEwLjIgNy43cy04LjktMy4xLTEwLjItNy43TDUzNiA0NTYgNDg3LjcgNDQyLjJjLTQuNi0xLjMtNy43LTUuNS03LjctMTAuMnMzLjEtOC45IDcuNy0xMC4yTDUzNiA0MDggNTQ5LjggMzU5LjdjMS4zLTQuNiA1LjUtNy43IDEwLjItNy43czguOSAzLjEgMTAuMiA3LjdMNTg0IDQwOHoiXX0sc1BlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10by1kb3QiLGljb246WzUxMiw1MTIsW10sImU0YmUiLCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45UzE3OS4xIDY0IDE5MiA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2OS40IDM5My40bDY0LTY0YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMzMi45IDQ0OCAzMjAgNDQ4bC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOXpNMzIgMjI0bDMyIDAgMC0zMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC02NCA2NGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTNjQgMzMyLjkgNjQgMzIwbDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTNDQ4IDE3OS4xIDQ0OCAxOTJsMCAzMiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTY0LTY0ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sd089e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk0zNTIgNDkzLjRjLTI5LjYgMTItNjIuMSAxOC42LTk2IDE4LjZzLTY2LjQtNi42LTk2LTE4LjZMMTYwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3MS43QzQ0LjQgNDIxLjYgMCAzNDQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgODgtNDQuNCAxNjUuNi0xMTIgMjExLjdMNDAwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE5Ny40ek0xNTIgMTk2bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTcyIDIwYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwek0yMDggMzM2bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4eiJdfSxuUGU9d08sb1BlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbmctc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE2OSIsIk0yODgtMTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCA3Mi4yYy0yMi45LTE1LjMtNTAuNC0yNC4yLTgwLTI0LjItNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRTOTYuNSA0MzIgMTc2IDQzMmMzMCAwIDU3LjgtOS4xIDgwLjgtMjQuOCAzLjMgMTQuMiAxNiAyNC44IDMxLjIgMjQuOCAxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMwNCA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTk2IDI4OGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTI0IDQ2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCA0NjR6Il19LGxQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzNCIsIk0yODggMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptOTYgMzEyYzAgMjUtMTIuNyA0Ny0zMiA1OS45bDAgNDQuMS0xMjggMCAwLTQ0LjFDMjA0LjcgMzU5IDE5MiAzMzcgMTkyIDMxMmwwLTQwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA0MHptMTYgMTA0bDAtMjcuM2MxOS45LTIyLjUgMzItNTIuMiAzMi04NC43bDAtMzJjMC0yNi43LTcuMy01MS42LTE5LjktNzMuMSAxMS4xLTQuNSAyMy4yLTYuOSAzNS45LTYuOSA1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgNDAuNi0xMTIgMHpNNjQgMzc1LjRDNDQuOSAzNjQuNCAzMiAzNDMuNyAzMiAzMjBsMC0zMmMwLTUzIDQzLTk2IDk2LTk2IDEyLjcgMCAyNC44IDIuNSAzNS45IDYuOS0xMi42IDIxLjQtMTkuOSA0Ni40LTE5LjkgNzMuMWwwIDMyYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDI3LjMtMTEyIDAgMC00MC42ek0xMjggMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTMyMCAwYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0yNCA0NjRsNTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxNTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcnNzIixpY29uOls0NDgsNTEyLFsicnNzLXNxdWFyZSJdLCJmMTQzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDEzNmMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMzcgMCAyNDggMTExIDI0OCAyNDggMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMTAuNS04OS41LTIwMC0yMDAtMjAwLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDgzLjkgMCAxNTIgNjguMSAxNTIgMTUyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDEyMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxjUGU9TU8sZFBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLW1pbnVzIixpY29uOls0NDgsNTEyLFtdLCJmMjcyIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMjQgMjY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0scFBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWRpYWdyYW0iLGljb246WzUxMiw1MTIsW10sImU2OTUiLCJNODAgMzJDNTMuNSAzMiAzMiA1My41IDMyIDgwczIxLjUgNDggNDggNDhsMTUyIDAgMCA0MC00OCA0OC03MiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDY0LTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDcyIDAgNDggNDggMCA0MC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC00MCA0OC00OCA3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNjQtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNjRjMC0zOS44LTMyLjItNzItNzItNzJsLTcyIDAtNDgtNDggMC00MCAxNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw4MCAzMnoiXX0sek89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS10aXJlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTU1LCJ0aXJlZCJdLCJmNWM4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuNyAzMjguN2MyMi0yMiA1My45LTQwLjcgOTEuMy00MC43czY5LjMgMTguNyA5MS4zIDQwLjdjMTEuMSAxMS4xIDIwLjEgMjMuNCAyNi40IDM1LjQgNi4yIDExLjcgMTAuMyAyNC40IDEwLjMgMzUuOSAwIDUuMi0yLjYgMTAuMi02LjkgMTMuMnMtOS44IDMuNy0xNC43IDEuOGwtMjAuNS03LjdjLTI2LjktMTAuMS01NS41LTE1LjMtODQuMy0xNS4zbC0zLjIgMGMtMjguOCAwLTU3LjMgNS4yLTg0LjMgMTUuM0wxNDkuNiA0MTVjLTQuOSAxLjgtMTAuNCAxLjItMTQuNy0xLjhTMTI4IDQwNS4yIDEyOCA0MDBjMC0xMS42IDQuMi0yNC4yIDEwLjMtMzUuOSA2LjMtMTIgMTUuMy0yNC4zIDI2LjQtMzUuNHpNMTIyLjYgMTU5LjJjNC41LTYuOCAxMy4zLTkuMiAyMC42LTUuNWw3OS42IDQwYzUuNCAyLjcgOC44IDguMiA4LjggMTQuM3MtMy40IDExLjYtOC44IDE0LjNsLTc5LjYgNDBjLTcuMyAzLjYtMTYuMSAxLjMtMjAuNi01LjVzLTMuMS0xNS45IDMuMS0yMS4xTDE1OSAyMDggMTI1LjggMTgwLjNjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjF6bTI2My42IDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXMzLjEgMTUuOS0zLjEgMjEuMXoiXX0saFBlPXpPLHVQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXBvaW50LXJpZ2h0IixpY29uOls1MTIsNTEyLFtdLCJmMGE0IiwiTTQ4MCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjA4IDAgMC02NCAyMDggMHpNMzIwIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem02NC02NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNDggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyek0yODggMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bS04OC05NmwuNiAwYy01LjQgOS40LTguNiAyMC4zLTguNiAzMiAwIDEzLjIgNCAyNS40IDEwLjggMzUuNi0yNC45IDguNy00Mi44IDMyLjUtNDIuOCA2MC40IDAgMTEuNyAzLjEgMjIuNiA4LjYgMzJsLTguNiAwQzcxLjYgNDQ4IDAgMzc2LjQgMCAyODhsMC02MS43YzAtNDIuNCAxNi45LTgzLjEgNDYuOS0xMTMuMWwxMS42LTExLjZDODIuNSA3Ny41IDExNS4xIDY0IDE0OSA2NGwyNyAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODhjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDBsMC01NmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDU2YzAgMzkuOCAzMi4yIDcyIDcyIDcyeiJdfSxmUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAiLGljb246WzM4NCw1MTIsWzg1OTNdLCJmMDYyIiwiTTIxNC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDEwOS4zIDE2MCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3MC43IDEwNS40IDEwNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6Il19LG1QZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjdWJlcy1zdGFja2VkIixpY29uOls1MTIsNTEyLFtdLCJlNGU2IiwiTTE5MiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6bTMyIDM1Mmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzIwIDE5Mmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS0xODIuNi0zLjljMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNDUuMyA0NS4zYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC00NS4zIDQ1LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDkyLjEgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDQ1LjMtNDUuM3pNMzIgMzg0bDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sa089e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtY29tYmF0YW50IixpY29uOls1NzYsNTEyLFsiY2hpbGQtcmlmbGUiXSwiZTRlMCIsIk0xNzYuNSAxMjhhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0xNiAzNTJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5Mi4yIDIwLjkgMzMuMmM5LjQgMTUgMjkuMiAxOS40IDQ0LjEgMTBzMTkuNC0yOS4yIDEwLTQ0LjFsLTM5LjktNjMuM0MyNjYuOCAxODQgMjIzLjMgMTYwIDE3Ni41IDE2MFM4Ni4yIDE4NCA2MS4zIDIyMy42TDIxLjQgMjg3Yy05LjQgMTUtNC45IDM0LjcgMTAgNDQuMXMzNC43IDQuOSA0NC4xLTEwbDIwLjktMzMuMiAwIDE5Mi4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTQ0OC41IDBsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN2wwLTExNi4zYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sZ1BlPWtPLGJQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZXN0LXBhdGNoZXMiLGljb246WzQ0OCw1MTIsW10sImUwODYiLCJNMjAwIDI5My45TDIwMCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDI3MC41YzAtOS41IDIuOC0xOC43IDguMS0yNi42bDQ3LjktNzEuOGM1LjMtNy45IDguMS0xNy4xIDguMS0yNi42TDY0IDQ4QzY0IDIxLjUgODUuNSAwIDExMiAwbDMuNSAwYy4zIDAgLjYgMCAxIDAgLjYgMCAxLjIgMCAxLjggMCAxOC44IDAgMzQuMSA5LjcgNDQuMSAxOC44IDkuMyA4LjQgMjguNSAyMS4yIDYxLjcgMjEuMnM1Mi40LTEyLjggNjEuNy0yMS4yYzEwLTkuMSAyNS4zLTE4LjggNDQuMS0xOC44IC42IDAgMS4yIDAgMS44IDAgLjMgMCAuNiAwIDEgMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk3LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZsNDcuOSA3MS44YzUuMyA3LjkgOC4xIDE3LjEgOC4xIDI2LjZMNDQ4IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTA0IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTcwLjFjMC0zLjkgLjUtNy44IDEuNC0xMS42TDMwMy42IDY1LjRDMjg1LjkgNzcuMiAyNTkuOCA4OCAyMjQgODhzLTYxLjktMTAuOC03OS42LTIyLjZsNTQuMiAyMTYuOGMxIDMuOCAxLjQgNy43IDEuNCAxMS42ek05NiA0NTZhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek02My41IDI1NS41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdMNzkgMjg4IDYzLjUgMzAzLjVjLTQuNyA0LjctNC43IDEyLjMgMCAxN3MxMi4zIDQuNyAxNyAwTDk2IDMwNSAxMTEuNSAzMjAuNWM0LjcgNC43IDEyLjMgNC43IDE3IDBzNC43LTEyLjMgMC0xN0wxMTMgMjg4IDEyOC41IDI3Mi41YzQuNy00LjcgNC43LTEyLjMgMC0xN3MtMTIuMy00LjctMTcgMEw5NiAyNzEgODAuNSAyNTUuNWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwek0zMDQgMjgwbDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTggMCAwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LFNPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MtZW1wdHkiLGljb246WzUxMiw1MTIsWyJnbGFzcy1tYXJ0aW5pIl0sImYwMDAiLCJNMzIgMzJDMTkuMSAzMiA3LjQgMzkuOCAyLjQgNTEuOFMuMiA3Ny41IDkuNCA4Ni42bDIxNC42IDIxNC42IDAgMTQ2LjctNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTE0Ni43IDIxNC42LTIxNC42YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDMyIDQ4MCAzMkwzMiAzMnpNMjU2IDI0Mi43TDEwOS4zIDk2IDQwMi43IDk2IDI1NiAyNDIuN3oiXX0sdlBlPVNPLHlQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduZXQiLGljb246WzQ0OCw1MTIsWzEyOTUyMl0sImYwNzYiLCJNMCAxNzZMMCAyODhDMCA0MTEuNyAxMDAuMyA1MTIgMjI0IDUxMlM0NDggNDExLjcgNDQ4IDI4OGwwLTExMi0xMjggMCAwIDExMmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExMi0xMjggMHptMC00OGwxMjggMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRsMCA2NHptMzIwIDBsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NHoiXX0seFBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtYmFycmllciIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgMjY2LjMgMTQ5LjIgOTYgNjQgOTYgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNS4yIDk2bC03NC4zIDAtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuM3pNMzYyLjggMjg4bDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zLTc0LjMgMC01LjQgMTAuNy05MC42IDE4MS4zek0yMDIuOCA5NmwtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuMy03NC4zIDB6bTI4OCAxOTJsODUuMiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My43LTg1LjIgMTcwLjN6Il19LENPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXBhc3MtZHJhZnRpbmciLGljb246WzUxMiw1MTIsWyJkcmFmdGluZy1jb21wYXNzIl0sImY1NjgiLCJNOTkuMyAyNTYuMWw2OS40LTExOS45Yy01LjYtMTIuMi04LjgtMjUuOC04LjgtNDAuMiAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgMTQuMy0zLjEgMjcuOS04LjggNDAuMmw0NC40IDc2LjdjLTIzLjEgMjYtNTMuNyA0NS4xLTg4LjQgNTMuOEwyNTYgMTkxLjkgMTg3LjkgMzA5LjVjMjEuNSA2LjggNDQuMyAxMC41IDY4LjEgMTAuNSA3MC43IDAgMTMzLjgtMzIuNyAxNzQuOS04NCAxMS4xLTEzLjggMzEuMi0xNiA0NS01czE2IDMxLjIgNSA0NWMtNTIuNyA2NS44LTEzMy45IDEwOC0yMjQuOCAxMDgtMzUuNCAwLTY5LjQtNi40LTEwMC43LTE4LjFMOTguNyA0NjMuN0M5NCA0NzEuOCA4NyA0NzguNCA3OC42IDQ4Mi42TDIzLjIgNTEwLjNjLTUgMi41LTEwLjkgMi4yLTE1LjYtLjdTMCA1MDEuNSAwIDQ5NmwwLTU1LjRjMC04LjQgMi4yLTE2LjcgNi41LTI0LjFsNjAtMTAzLjdjLTEyLjgtMTEuMi0yNC42LTIzLjUtMzUuMy0zNi44LTExLjEtMTMuOC04LjgtMzMuOSA1LTQ1czMzLjktOC44IDQ1IDVjNS43IDcuMSAxMS44IDEzLjggMTguMiAyMC4xek0zODEuMSA0MDcuOWMzMi41LTEzIDYyLjQtMzEgODguOS01Mi45bDM1LjYgNjEuNWM0LjIgNy4zIDYuNSAxNS42IDYuNSAyNC4xbDAgNTUuNGMwIDUuNS0yLjkgMTAuNy03LjYgMTMuNnMtMTAuNiAzLjItMTUuNiAuN2wtNTUuNC0yNy43Yy04LjQtNC4yLTE1LjQtMTAuOC0yMC4xLTE4LjlsLTMyLjMtNTUuOHpNMjU2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHdQZT1DTyxNUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBlcnNvbi1jb25maW5lZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTU3NyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05NiAxMTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptODAgMTA0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMDIuMWMwIDM2LjQtMjkuNSA2NS45LTY1LjkgNjUuOS0xNy41IDAtMzQuMy02LjktNDYuNi0xOS4zbC01NC43LTU0LjctMjguMSA1Ni4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDQ4LTk2YzQuNi05LjIgMTMuMy0xNS42IDIzLjUtMTcuM3MyMC41IDEuNyAyNy44IDlsNDEuNCA0MS40IDAtNTguN3oiXX0selBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYXRlLXdoZWF0IixpY29uOls1MTIsNTEyLFtdLCJlNTVhIiwiTTE3NiAzMmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnpNNTYgNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNDIuNyA2NCA1NiA2NHpNMjQgMTM2bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDE4NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjcyIDQ4YzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2ek00MDAgMzJjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxNmMwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2MGwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDE3NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2bDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODAgOC44IDAgMTYgNy4yIDE2IDE2ek0zLjUgMzQ3LjZDMS42IDMzMi45IDEzIDMyMCAyNy44IDMyMGw0NTYuNCAwYzE0LjggMCAyNi4yIDEyLjkgMjQuNCAyNy42LTYuMyA1MC4yLTQ0LjQgODkuNC05Mi42IDk4LjRsMCAyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yYy00OC4yLTktODYuMy00OC4yLTkyLjUtOTguNHoiXX0sX089e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbi1oYW5naW5nIixpY29uOls1MTIsNTEyLFsic2lnbiJdLCJmNGQ5IiwiTTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzUyIDAgMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNTItMzIgMEMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NGwzMiAwIDAtMzJDNjQgMTQuMyA3OC4zIDAgOTYgMHpNMjA4IDE3NmwyNDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjQwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxrUGU9X08sVE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLWJhdHRlcnkiLGljb246WzUxMiw1MTIsWyJiYXR0ZXJ5LWNhciJdLCJmNWRmIiwiTTgwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxNiAwek0zOTIgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0zMnpNNjQgMjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDIxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LFNQZT1UTyxnbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGlydCIsaWNvbjpbNjQwLDUxMixbMTI4MDg1LCJ0LXNoaXJ0IiwidHNoaXJ0Il0sImY1NTMiLCJNMzIwLjIgMTEyYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDUzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w2MTcuNiAxNjkuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNTAuNyA1MC43Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40IDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMjQtNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEwyMi45IDIxNC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wxNDEuNSA1MC43YzEyLTEyIDI4LjMtMTguNyA0NS4zLTE4LjdsNTMuNSAwYzAgNDQuMiAzNS44IDgwIDgwIDgweiJdfSxDUGU9Z20sX1BlPWdtLFRQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhZ3JhcGgiLGljb246WzQ0OCw1MTIsWzE4Ml0sImYxZGQiLCJNMTYwIDBMNDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00MTYtNDggMCAwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MC00OCAwQzcxLjYgMzIwIDAgMjQ4LjQgMCAxNjBTNzEuNiAwIDE2MCAweiJdfSxMTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZXMtYnVsayIsaWNvbjpbNTc2LDUxMixbIm1haWwtYnVsayJdLCJmNjc0IiwiTTExMiAwQzg1LjUgMCA2NCAyMS41IDY0IDQ4bDAgMTYwIDgwIDAgMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDIwOCAwIDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhMMTEyIDB6TTI0MCAxMjhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzIgODAgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMTEyIDE2MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0yODggMHptMjAwIDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDggMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEwLjQgMTU2LjYgODYuMmMxLjEgLjYgMi4yIC45IDMuNCAuOXMyLjQtLjMgMy40LS45TDMyMCAzMTQuNCAzMjAgMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDI1NnpNMzIwIDM2OS4yTDE4Ni42IDQ0Mi42Yy04LjEgNC41LTE3LjMgNi44LTI2LjYgNi44cy0xOC40LTIuNC0yNi42LTYuOEwwIDM2OS4yIDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTQuOHoiXX0sTFBlPUxPLCRQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJndWl0YXIiLGljb246WzUxMiw1MTIsW10sImY3YTYiLCJNNDY1IDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDM4MyA1NWMtMi40IDIuNC00LjMgNS4zLTUuNSA4LjVsLTE1LjQgNDEtNzcuNSA3Ny42Yy00NS4xLTI5LjQtOTkuMy0zMC4yLTEzMSAxLjYtMTEgMTEtMTggMjQuNi0yMS40IDM5LjYtMy43IDE2LjYtMTkuMSAzMC43LTM2LjEgMzEuNi0yNS42IDEuMy00OS4zIDEwLjctNjcuMyAyOC42LTQ0LjggNDQuOC0zNi40IDEyNS44IDE4LjcgMTgwLjlTMTgzLjYgNTI4IDIyOC40IDQ4My4yYzE3LjktMTcuOSAyNy40LTQxLjcgMjguNi02Ny4zIC45LTE3IDE1LTMyLjMgMzEuNi0zNi4xIDE1LTMuNCAyOC42LTEwLjUgMzkuNi0yMS40IDMxLjgtMzEuOCAzMS04NS45IDEuNi0xMzFsNzcuNi03Ny42IDQxLTE1LjRjMy4yLTEuMiA2LjEtMy4xIDguNS01LjVsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMNDY1IDd6TTIwOCAyNTZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSxBUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VpdGNhc2UiLGljb246WzUxMiw1MTIsWzEyOTUyM10sImYwZjIiLCJNMjAwIDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQyNCAyMjQgMCAwLTQyNGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6TTQxNiA5NmwwIDM4NCAzMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwek05NiA0ODBsMC0zODQtMzIgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIgMHoiXX0sJE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXVwIixpY29uOls1MTIsNTEyLFs2MTQ2NywiYXJyb3ctYWx0LWNpcmNsZS11cCJdLCJmMzViIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zbDEwNCAxMDRjNC42IDQuNiA1LjkgMTEuNSAzLjUgMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTU2IDBjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45cy0xLjEtMTIuOSAzLjUtMTcuNGwxMDQtMTA0YzYuMi02LjIgMTYuNC02LjIgMjIuNiAweiJdfSxEUGU9JE8sRVBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImYiLGljb246WzMyMCw1MTIsWzEwMl0sIjQ2IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0xMjggMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LFBQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4bWFya3MtbGluZXMiLGljb246WzY0MCw1MTIsW10sImU1OWEiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDU3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZ6TTcgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwek0yNjUgMTY3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NXpNNDU1IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sQU89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtb2NlYW5pYSIsaWNvbjpbNTEyLDUxMixbImdsb2JlLW9jZWFuaWEiXSwiZTQ3YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTkyIDE1MC42YzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42bDQxLjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTYtMTZjLTQuMi00LjItNi42LTEwLTYuNi0xNnpNNDMyIDI1NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDExLjMgMzc5LjNsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpNMjI0IDQzMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2em0tOTYtODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTguN2MwLTguNSAzLjQtMTYuNiA5LjQtMjIuNmw0OC00OGM0LjItNC4yIDEwLTYuNiAxNi02LjZsNi42IDBjOC44IDAgMTYgNy4yIDE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTYgNy4yLTE2IDE2LTE2bDYuNiAwYzYgMCAxMS44IDIuNCAxNiA2LjZsNDggNDhjNiA2IDkuNCAxNC4xIDkuNCAyMi42bDAgNTAuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtNTAuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTMuMy0xMy4zYy02LTYtMTQuMS05LjQtMjIuNi05LjRMMTI4IDM1MnoiXX0sSVBlPUFPLE5QZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNGIzIiwiTTQxLTI1QzMxLjYtMzQuMyAxNi40LTM0LjMgNy0yNVMtMi4zLS40IDcgOUw1MzUgNTM3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNi05Ni42YzQ0LjQtNDMuMiA3MS42LTEwMS44IDcxLjYtMTY2LjUgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MC02MyAwLTEyMC44IDIxLjQtMTY1LjQgNTYuOEw0MS0yNXptMTkuNCAxNTVDNDIuMiAxNjMgMzIgMjAwLjMgMzIgMjM5LjkgMzIgMjk0LjIgNTEuMiAzNDQuMiA4My42IDM4NC40TDM0LjggNDc2LjdjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNVM1Ni4xIDUxNCA2NS41IDUxMGwxMTguNC01MC43YzMxLjggMTMuMyA2Ny4xIDIwLjcgMTA0LjEgMjAuNyAzNi40IDAgNzAuOS03LjEgMTAyLjMtMTkuOUw2MC4zIDEzMC4xeiJdfSxGUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxheSIsaWNvbjpbNDQ4LDUxMixbOTY1NF0sImYwNGIiLCJNOTEuMiAzNi45Yy0xMi40LTYuOC0yNy40LTYuNS0zOS42IC43UzMyIDU3LjkgMzIgNzJsMCAzNjhjMCAxNC4xIDcuNSAyNy4yIDE5LjYgMzQuNHMyNy4yIDcuNSAzOS42IC43bDMzNi0xODRjMTIuOC03IDIwLjgtMjAuNSAyMC44LTM1LjFzLTgtMjguMS0yMC44LTM1LjFsLTMzNi0xODR6Il19LE9QZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsLWNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZTU5NiIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTYxLjRjLTY2LjEgMzAuMy0xMTIgOTcuMS0xMTIgMTc0LjYgMCAzOS43IDEyIDc2LjYgMzIuNyAxMDcuMi0xMC4zIDMuMS0yMS4zIDQuOC0zMi43IDQuOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw2NCA2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHptOTYgMzM2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxSUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjOSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LEJQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZWRpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUwZGYiLCJNMjMyIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjYuNUM4OC44IDczLjkgMTYgMTU2LjQgMTYgMjU2Uzg4LjggNDM4LjEgMTg0IDQ1My41bDAgMjYuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQuNmM0Ni44LTMuNyA4OS4xLTIzLjYgMTIxLjMtNTMuOSAxMi45LTEyLjEgMTMuNC0zMi40IDEuMy00NS4ycy0zMi40LTEzLjQtNDUuMi0xLjNjLTIwLjcgMTkuNi00Ny42IDMyLjctNzcuMyAzNi4ybDAtMjcwLjFjMjkuOCAzLjUgNTYuNiAxNi42IDc3LjMgMzYuMiAxMi45IDEyLjEgMzMuMSAxMS41IDQ1LjItMS4zczExLjUtMzMuMS0xLjMtNDUuMkMzMjEuMSA4MC4yIDI3OC44IDYwLjMgMjMyIDU2LjZMMjMyIDMyem0tNDggOTEuOGwwIDI2NC40QzEyNC4zIDM3My44IDgwIDMyMC4xIDgwIDI1NnM0NC4zLTExNy44IDEwNC0xMzIuMnoiXX0sSFBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1enpsZS1waWVjZSIsaWNvbjpbNTEyLDUxMixbMTI5NTEzXSwiZjEyZSIsIk0yMjQgMGMzNS4zIDAgNjQgMjEuNSA2NCA0OCAwIDEwLjQtNC40IDIwLTEyIDI3LjktNi42IDYuOS0xMiAxNS4zLTEyIDI0LjkgMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4ybDQ0LjggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ0LjhjMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4yIDkuNSAwIDE4LTUuNCAyNC45LTEyIDcuOS03LjUgMTcuNS0xMiAyNy45LTEyIDI2LjUgMCA0OCAyOC43IDQ4IDY0cy0yMS41IDY0LTQ4IDY0Yy0xMC40IDAtMjAuMS00LjQtMjcuOS0xMi02LjktNi42LTE1LjMtMTItMjQuOS0xMi0xNSAwLTI3LjIgMTIuMi0yNy4yIDI3LjJMMzg0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNTYuOCAwYy0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMiAwLTkuMiA1LjgtMTcuMyAxMy4yLTIyLjggMTEuNi04LjcgMTguOC0yMC43IDE4LjgtMzQgMC0yNi41LTI4LjctNDgtNjQtNDhzLTY0IDIxLjUtNjQgNDhjMCAxMy4zIDcuMiAyNS4zIDE4LjggMzQgNy40IDUuNSAxMy4yIDEzLjUgMTMuMiAyMi44IDAgMTIuOC0xMC40IDIzLjItMjMuMiAyMy4yTDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNDMuMmMwLTEyLjggMTAuNC0yMy4yIDIzLjItMjMuMiA5LjIgMCAxNy4zIDUuOCAyMi44IDEzLjIgOC43IDExLjYgMjAuNyAxOC44IDM0IDE4LjggMjYuNSAwIDQ4LTI4LjcgNDgtNjRzLTIxLjUtNjQtNDgtNjRjLTEzLjMgMC0yNS4zIDcuMi0zNCAxOC44LTUuNSA3LjQtMTMuNSAxMy4yLTIyLjggMTMuMi0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMkwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxMDguOCAwYzE1IDAgMjcuMi0xMi4yIDI3LjItMjcuMiAwLTkuNS01LjQtMTgtMTItMjQuOS03LjUtNy45LTEyLTE3LjUtMTItMjcuOSAwLTI2LjUgMjguNy00OCA2NC00OHoiXX0scVBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbG1ldC11biIsaWNvbjpbNTEyLDUxMixbXSwiZTUwMyIsIk00NzkuNSAyMjRDNDcxLjIgOTguOSAzNjcuMiAwIDI0MCAwIDEwNy41IDAgMCAxMDcuNSAwIDI0MGwwIDU2LjNDMCAzNDQuOCAzOS4yIDM4NCA4Ny43IDM4NGwxMjcuMyAwIDEyOC42IDEyMS40YzQuNSA0LjIgMTAuNCA2LjYgMTYuNSA2LjZsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODYuNSAwLTEuNS0xLjUgMC0xNzQuNSAxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtLjUgMHpNMzIwIDQxNy4ybC03OC03My43IDMyLjQtNTUuNSA0NS42IDAgMCAxMjkuMnpNMjg1LjMgMTAzLjFsMzQuNyA1MiAwLTQzLjJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRsLTM0LjctNTIgMCA0My4yYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC03LjEgNC42LTEzLjMgMTEuNC0xNS4zczE0IC42IDE3LjkgNi40ek0xNjAgMTEybDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LFZQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbGFzcy13YXRlciIsaWNvbjpbMzg0LDUxMixbXSwiZTRmNCIsIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek03MyAxNTYuNWwtNi42LTkyLjUgMjUxLjMgMC02LjYgOTIuNS0yNC4yIDEyLjFjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMC0yMC45LTEwLjQtNDUuNS0xMC40LTY2LjQgMC0xOS40IDkuNy00Mi4yIDkuNy02MS42IDBMNzMgMTU2LjV6Il19LGpQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmYyIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFMzNjkuMiA0MTYgMzc2IDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM0OTQuOCAzODQgNDg4IDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LFVQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdW1wLXNvYXAiLGljb246WzMyMCw1MTIsW10sImUwNmIiLCJNOTYgMGwwIDgwIDEyOCAwIDAtMjQgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyA4IDI5NiA4bC03MiAwIDAtOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMEMxMTAuMy0zMiA5Ni0xNy43IDk2IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4ek0yMjQgMzQ0YzAgMzUuMy0yOC43IDU2LTY0IDU2cy02NC0yMC43LTY0LTU2YzAtMzIuNSAzNy04MC45IDUwLjktOTcuOSAzLjItMy45IDguMS02LjEgMTMuMS02LjFzOS45IDIuMiAxMy4xIDYuMUMxODcgMjYzLjEgMjI0IDMxMS41IDIyNCAzNDR6Il19LFdQZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNjaXNzb3JzIixpY29uOls1MTIsNTEyLFtdLCJmMjU3IiwiTTQwIDIwOGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxODAuMiAwYy03LjYgOC41LTEyLjIgMTkuNy0xMi4yIDMyIDAgMjUuMyAxOS41IDQ2IDQ0LjMgNDcuOS03LjcgOC41LTEyLjMgMTkuOC0xMi4zIDMyLjEgMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTExMy4xYzAtNDAuMi0xNi03OC44LTQ0LjQtMTA3LjMtMjIuOC0yMi44LTUzLjYtMzUuNi04NS44LTM1LjZMMzM2IDY0Yy0yMS4zIDAtMzkuMyAxMy45LTQ1LjYgMzMuMWw3NC41IDIzLjdjOC40IDIuNyAxMy4xIDExLjcgMTAuNCAyMC4xcy0xMS43IDEzLjEtMjAuMSAxMC40bC02Ny4xLTIxLjQgMCAuMS0yMDQtNjQuMUM2Mi45IDU5LjIgNDAuNSA3MC45IDMzLjkgOTJzNS4xIDQzLjUgMjYuMiA1MC4yTDI2OS41IDIwOCA0MCAyMDh6Il19LERPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvbGx5IixpY29uOls1NzYsNTEyLFsiZG9sbHktYm94Il0sImY0NzIiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGw3Mi45IDAgOTIuMSAyNzYuMmMtMjIuNSAxNy42LTM3IDQ1LTM3IDc1LjggMCA1MyA0MyA5NiA5NiA5NiA1Mi40IDAgOTUuMS00MiA5Ni05NC4zbDIwMi4xLTY3LjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNXMtMjMuNy0yNS44LTQwLjUtMjAuMkwzMzEuOCAzNTdjLTE3LjItMjIuMS00My45LTM2LjUtNzQtMzdMMTY1LjcgNDMuOEMxNTYuOSAxNy42IDEzMi41IDAgMTA0LjkgMEwzMiAwek0yMDggNDE2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTI4MC41IDg5LjNjLTI1LjIgOC4yLTM5IDM1LjMtMzAuOCA2MC41bDM5LjYgMTIxLjdjOC4yIDI1LjIgMzUuMyAzOSA2MC41IDMwLjhsMTIxLjctMzkuNmMyNS4yLTguMiAzOS0zNS4zIDMwLjgtNjAuNUw0NjIuOCA4MC41Yy04LjItMjUuMi0zNS4zLTM5LTYwLjUtMzAuOEwyODAuNSA4OS4zeiJdfSxHUGU9RE8sbmc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXJjbGlwIixpY29uOls1MTIsNTEyLFsxMjgyMDZdLCJmMGM2IiwiTTIyNC42IDEyLjhjNTYuMi01Ni4yIDE0Ny40LTU2LjIgMjAzLjYgMHM1Ni4yIDE0Ny40IDAgMjAzLjZsLTE2NCAxNjRjLTM0LjQgMzQuNC05MC4xIDM0LjQtMTI0LjUgMHMtMzQuNC05MC4xIDAtMTI0LjVMMjkyLjUgMTAzLjNjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wxODUgMzAxLjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxNjQtMTY0YzMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMXMtODEuOS0zMS4yLTExMy4xIDBsLTE2NCAxNjRjLTUzLjEgNTMuMS01My4xIDEzOS4yIDAgMTkyLjNzMTM5LjIgNTMuMSAxOTIuMyAwTDQyOC4zIDI4NC4zYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMzQzLjQgNDU5LjZjLTc4LjEgNzguMS0yMDQuNyA3OC4xLTI4Mi44IDBzLTc4LjEtMjA0LjcgMC0yODIuOGwxNjQtMTY0eiJdfSxZUGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGVtb2NyYXQiLGljb246WzY0MCw1MTIsW10sImY3NDciLCJNNjQgMzJjMC04LjkgMy44LTIwLjkgNi4yLTI3LjMgMS0yLjggMy44LTQuNyA2LjgtNC43IDEuOSAwIDMuOCAuNyA1LjIgMi4xTDEyOCA0NS43IDE3My44IDIuMWMxLjQtMS4zIDMuMi0yLjEgNS4yLTIuMSAzIDAgNS44IDEuOCA2LjggNC43IDIuNCA2LjUgNi4yIDE4LjQgNi4yIDI3LjMgMCAyNi41LTIxLjkgNDItMjkuNSA0Ni42bDc2LjIgNzIuNmM2IDUuNyAxMy45IDguOCAyMi4xIDguOGwyMTkuMiAwIDMyIDBjNDAuMyAwIDc4LjIgMTkgMTAyLjQgNTEuMmwxOS4yIDI1LjZjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44cy0zNC4yIDcuNy00NC44LTYuNGwtMTkuMi0yNS42Yy01LjMtNy0xMS44LTEyLjgtMTkuMi0xN2wwIDg3LjQtMzUyIDAtNDAuNC05NC4zYy0zLjktOS4yLTE1LjMtMTIuNi0yMy42LTdsLTQyLjEgMjhjLTkuMSA2LjEtMTkuNyA5LjMtMzAuNyA5LjNsLTIgMEMyMy45IDI1NiAwIDIzMi4xIDAgMjAyLjcgMCAxOTAuNiA0LjEgMTc4LjkgMTEuNyAxNjkuNEw4Ny42IDc0LjZDNzguMSA2Ny40IDY0IDUzLjIgNjQgMzJ6TTU0NCAzNTJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjQtMTYwIDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjggMzUyIDB6TTI1NiAyODBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNDgtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMzY4IDI4MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LEVPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1hcnJvdy11cC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImV4dGVybmFsLWxpbmstc3F1YXJlIl0sImYxNGMiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMjcyIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NC4xIDAtMTAzIDEwM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDEwMy0xMDMgMCA1NC4xeiJdfSxaUGU9RU8sWFBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZlcnJ5IixpY29uOls2NDAsNTEyLFtdLCJlNGVhIiwiTTIyNCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDQ4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxMjgtLjEgMGMuMSAuNyAuMSAxLjMgLjEgMiAwIDMwLjItNy42IDU5LjgtMjIgODYuM2wtMTIuNyAyMy4zLS42IDFjLTIyLjMtMTEuMy00Ni41LTE2LjgtNzAuOC0xNi43LTMyLjUgLjItNjQuOSAxMC43LTkyLjQgMzEuNC0yMi4xIDE2LjYtMjkuMSAxNi42LTUxLjIgMC0yOC4xLTIxLjEtNjEuMy0zMS42LTk0LjQtMzEuNC0yMy42IC4yLTQ3LjEgNS43LTY4LjcgMTYuN2wtLjYtMS0xMi43LTIzLjNjLTE0LjQtMjYuNS0yMi01Ni4yLTIyLTg2LjMgMC0uNyAwLTEuNCAuMS0ybC0uMSAwIDAtMTI4YzAtNDQuMiAzNS44LTgwIDgwLTgwbDQ4IDAgMC0zMnpNMTYwIDI1NmwzMjAgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZsLTI4OCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTJ6TTQwMy40IDQ3Ni4xQzM3OS4xIDQ5NC4zIDM1MS4xIDUxMiAzMjAgNTEycy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sS1BlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1aXRvIixpY29uOls1NzYsNTEyLFtdLCJlNTJiIiwiTTE3OC41IDQ5NS4yYy03LjUgOS42LTIxIDEyLjEtMzEuMyA1LjNTMTMzLjUgNDgwIDEzOC45IDQ2OWwxLjItMi4yIDM2LjItNTggMC00MSAuMy00Yy42LTMuOSAyLjItNy43IDQuNi0xMC45bDM5LjMtNTIuMi02Ni4yIDU5LjVjLTE3IDE1LjMtMzkgMjMuNy02MS45IDIzLjhsLTguMSAwYy00Ni42IDAtODQuNC0zNy44LTg0LjQtODQuNCAwLTQzIDMyLjQtNzkuMiA3NS4xLTgzLjlsMTMwLjUtMTQuNS00NC44LTM4LjMtMi40LTIuNGMtNS4zLTYtNy4zLTE0LjQtNS4zLTIyLjNsMTMuMy01My40LTI1LjktMzguOS0xLjMtMi4xYy01LjgtMTAuOC0yLjctMjQuNiA3LjQtMzEuNyAxMC4xLTcuMSAyMy43LTUuMSAzMS40IDQuM2wxLjUgMiAzMiA0OCAxLjQgMi4yYzIuOCA1LjMgMy41IDExLjYgMi4xIDE3LjZsLTEyLjMgNDkuMiA1My4zIDQ1LjcgMC0yOC44YzAtMTEuOCA2LjUtMjIuMSAxNi0yNy43bDAtNjAuNSAuMy0zLjNjMS41LTcuMyA4LTEyLjcgMTUuNy0xMi43czE0LjIgNS41IDE1LjcgMTIuN2wuMyAzLjIgMCA2MC41YzkuNiA1LjUgMTYgMTUuOCAxNiAyNy43bDAgMjguOSA1My40LTQ1LjgtMTIuMy00OS4yYy0xLjUtNS45LS43LTEyLjIgMi4xLTE3LjZsMS40LTIuMiAzMi00OCAxLjUtMmM3LjctOS40IDIxLjMtMTEuNSAzMS40LTQuMyAxMC4xIDcuMSAxMy4xIDIwLjkgNy40IDMxLjdsLTEuMyAyLjEtMjUuOSAzOC45IDEzLjMgNTMuNGMyIDgtLjEgMTYuMy01LjMgMjIuM2wtMi40IDIuNC00NC43IDM4LjMgMTMwLjUgMTQuNWM0Mi44IDQuOCA3NS4xIDQwLjkgNzUuMSA4My45IDAgNDYuNi0zNy44IDg0LjQtODQuNCA4NC40bC04LjEgMGMtMjIuOCAwLTQ0LjktOC41LTYxLjktMjMuOGwtNjYuMS01OS41IDM5LjIgNTIuMmMyLjQgMy4yIDQgNyA0LjYgMTAuOWwuMyA0IDAgNDEgMzYuMiA1OCAxLjIgMi4xYzUuNCAxMSAyIDI0LjctOC4zIDMxLjVzLTIzLjggNC40LTMxLjMtNS4zbC0xLjQtMi00MC02NC0xLjYtMy4xYy0xLjQtMy4xLTIuMS02LjYtMi4xLTEwLjFsMC0zOS44LTMyLjQtNDMuMSAwIDc0LjdjMCAxNy43LTE0LjMgMzItMzIgMzItMTcuNyAwLTMyLTE0LjMtMzItMzJsMC03NC42LTMyLjMgNDMgMCAzOS44YzAgMy41LS43IDYuOS0yLjEgMTAuMWwtMS42IDMuMS00MCA2NC0xLjQgMnoiXX0sUVBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTQ0LjdjLTM1LjcgMi45LTY4LjUgMTUuNi05NiAzNS40bDAtNGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0IDBjLTEzLjggMTkuMi0yNC4xIDQxLTMwLjEgNjQuNS0xLjktLjQtMy45LS41LTUuOS0uNWwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA4MCA3NC45IDBjNi4xIDE3LjMgMTQuNiAzMy40IDI1LjEgNDhMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQwLjctNjcuM2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMjguNyAyOC43LTg5LjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw4OS40IDAtMjguNyAyOC43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNTYtNTZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTU2LTU2Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHoiXX0sUE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbODU5NiwiYXJyb3dzLWFsdC1oIl0sImYzMzciLCJNNTAyLjYgNDA2LjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgNDkyLjkgMzUyIDQ4MGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3pNOS40IDE1MC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxNjAgMTkuMSAxNjAgMzJsMCA2NCAzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtOTYtOTZ6Il19LEpQZT1QTyxlSWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNzQiLCJNMjk2IDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgNDQuMS01My4zIDY2LjEtODQuNSAzNS0xNS42LTE1LjYtNDAuOS0xNS42LTU2LjYgMHMtMTUuNiA0MC45IDAgNTYuNmMzMS4yIDMxLjIgOS4xIDg0LjUtMzUgODQuNS0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwYzQ0LjEgMCA2Ni4xIDUzLjMgMzUgODQuNS0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNnM0MC45IDE1LjYgNTYuNiAwYzMxLjItMzEuMiA4NC41LTkuMSA4NC41IDM1IDAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBjMC00NC4xIDUzLjMtNjYuMSA4NC41LTM1IDE1LjYgMTUuNiA0MC45IDE1LjYgNTYuNiAwczE1LjYtNDAuOSAwLTU2LjZjLTMxLjItMzEuMi05LjEtODQuNSAzNS04NC41IDIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwYy00NC4xIDAtNjYuMS01My4zLTM1LTg0LjUgMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZzLTQwLjktMTUuNi01Ni42IDBDMzQ5LjMgMTA2LjEgMjk2IDg0LjEgMjk2IDQwek0xNjAgMjI0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2MCAzMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHRJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW0iLGljb246WzUxMiw1MTIsWzEyODE0Ml0sImYzYTUiLCJNMTE2LjcgMzMuOGM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44bDI0MCAwYzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNGwtMjMyIDI1NmMtNC41IDUtMTEgNy45LTE3LjggNy45cy0xMy4yLTIuOS0xNy44LTcuOWwtMjMyLTI1NmMtNy43LTguNS04LjMtMjEuMi0xLjUtMzAuNGwxMTItMTUyem0zOC41IDM5LjhjLTMuMyAyLjUtNC4yIDctMi4xIDEwLjVMMjEwLjUgMTc5LjggNjMuMyAxOTJjLTQuMSAuMy03LjMgMy44LTcuMyA4czMuMiA3LjYgNy4zIDhsMTkyIDE2Yy40IDAgLjkgMCAxLjMgMGwxOTItMTZjNC4xLS4zIDcuMy0zLjggNy4zLThzLTMuMi03LjYtNy4zLThsLTE0Ny4yLTEyLjMgNTcuNC05NS42YzIuMS0zLjUgMS4yLTguMS0yLjEtMTAuNXMtNy45LTItMTAuNyAxTDI1NiAxNzIuMiAxNjUuOSA3NC42Yy0yLjgtMy03LjQtMy40LTEwLjctMXoiXX0sYUllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldCIsaWNvbjpbNDQ4LDUxMixbMTI4NzAxXSwiZjdkOCIsIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE0OC45Yy0xLjkgMS40LTMuOCAyLjktNS42IDQuNC0xNS41IDEzLjItMjYuNCAzMS42LTI2LjQgNTQuNiAwIDQ2LjkgMTQuMyA4NC4xIDM3IDExMi41IDE0LjIgMTcuNyAzMS4xIDMxLjMgNDguNSA0MS44TDY1LjYgNDY5LjljLTMuMyA5LjgtMS42IDIwLjUgNC40IDI4LjhTODUuNyA1MTIgOTYgNTEybDI1NiAwYzEwLjMgMCAxOS45LTQuOSAyNi0xMy4zczcuNy0xOS4xIDQuNC0yOC44bC0xOS44LTU5LjVjMTcuNC0xMC41IDM0LjMtMjQuMSA0OC41LTQxLjggMjIuNy0yOC40IDM3LTY1LjUgMzctMTEyLjUgMC0yMy4xLTEwLjktNDEuNS0yNi40LTU0LjYtMS44LTEuNS0zLjctMy01LjYtNC40bDAtMTQ4LjkgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzQzNy4zIDAgNDI0IDBMMjQgMHpNOTYgODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNMjI0IDI4OGMtODguNCAwLTE2MC0xNC4zLTE2MC0zMnM3MS42LTMyIDE2MC0zMiAxNjAgMTQuMyAxNjAgMzItNzEuNiAzMi0xNjAgMzJ6Il19LGlJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5nbGUtcXVvdGUtbGVmdCIsaWNvbjpbMTkyLDUxMixbXSwiZTgxYiIsIk0xMjggOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDB6Il19LHJJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxscyIsaWNvbjpbNTc2LDUxMixbXSwiZTFmMyIsIk0xNjAgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM1MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAzMnptMTc2IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek0xNjAgMTUybDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNS00LjQgLjUtOC0zLjEtOC03LjV6bTAgMTEyYzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHpNNTA0IDE1OS41Yy0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OGMwIDQuNC0zLjYgOC4xLTggNy41ek01MTIgMjY0bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41IDQuNC0uNSA4IDMuMSA4IDcuNXpNNDggMTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTM4LjcgMCAxNTJMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzkyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZsMC0yNjR6Il19LHNJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXQtYnV0dG9uIixpY29uOls0NDgsNTEyLFtdLCJmMTBhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTIyNCA0MDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxWNT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWN0YW5nbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYyMTY0LCJyZWN0YW5nbGUtdGltZXMiLCJ0aW1lcy1yZWN0YW5nbGUiLCJ3aW5kb3ctY2xvc2UiXSwiZjQxMCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sbkllPVY1LG9JZT1WNSxsSWU9VjUsY0llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndyZW5jaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjk1XSwiZjBhZCIsIk01MDkuNCA5OC42YzcuNi03LjYgMjAuMy01LjcgMjQuMSA0LjMgNi44IDE3LjcgMTAuNSAzNyAxMC41IDU3LjEgMCA4OC40LTcxLjYgMTYwLTE2MCAxNjAtMTcuNSAwLTM0LjQtMi44LTUwLjItOEwxNDYuOSA0OTguOWMtMjguMSAyOC4xLTczLjcgMjguMS0xMDEuOCAwcy0yOC4xLTczLjcgMC0xMDEuOEwyMzIgMjEwLjJjLTUuMi0xNS44LTgtMzIuNi04LTUwLjIgMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgMjAuMSAwIDM5LjQgMy43IDU3LjEgMTAuNSAxMCAzLjggMTEuOCAxNi41IDQuMyAyNC4xbC04OC43IDg4LjdjLTMgMy00LjcgNy4xLTQuNyAxMS4zbDAgNDEuNGMwIDguOCA3LjIgMTYgMTYgMTZsNDEuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsODguNy04OC43eiJdfSxuOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1jYW4iLGljb246WzQ0OCw1MTIsWzYxNDYwLCJ0cmFzaC1hbHQiXSwiZjJlZCIsIk0xMzYuNyA1LjlDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMXpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTg4IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LGRJZT1uOCxJTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscyIsaWNvbjpbNDQ4LDUxMixbInRoIl0sImYwMGEiLCJNMzg0IDk2bDAgNjQtNjQgMCAwLTY0IDY0IDB6bTAgMTI4bDAgNjQtNjQgMCAwLTY0IDY0IDB6bTAgMTI4bDAgNjQtNjQgMCAwLTY0IDY0IDB6TTI1NiAyODhsLTY0IDAgMC02NCA2NCAwIDAgNjR6bS02NCA2NGw2NCAwIDAgNjQtNjQgMCAwLTY0em0tNjQtNjRsLTY0IDAgMC02NCA2NCAwIDAgNjR6TTY0IDM1Mmw2NCAwIDAgNjQtNjQgMCAwLTY0em0wLTE5MmwwLTY0IDY0IDAgMCA2NC02NCAwem0xMjggMGwwLTY0IDY0IDAgMCA2NC02NCAwek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxwSWU9SU8saEllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpYmJvbiIsaWNvbjpbMzg0LDUxMixbMTI3ODk1XSwiZjRkNiIsIk0yMzUuMSAwYzMzLjQgMCA2NC41IDE3LjQgODEuOSA0NS45IDEuMiAyIDEzIDIxLjMgMzUuMyA1Ny44IDIxLjEgMzQuNSAxOC4zIDc4LjUtNyAxMTBMMjc4LjMgMjk3LjcgMzY0LjUgNDA2YzUuNSA2LjkgNC40IDE2LjktMi41IDIyLjVsLTgwIDY0Yy02LjkgNS41LTE3IDQuNC0yMi41LTIuNUwzOC42IDIxMy44QzEzLjMgMTgyLjMgMTAuNSAxMzguMyAzMS42IDEwMy44IDU0IDY3LjIgNjUuNyA0Ny45IDY3IDQ1LjkgODQuNCAxNy40IDExNS40IDAgMTQ4LjkgMGw4Ni4zIDB6TTE5MiAxODkuMmw0OC42LTYxLjItOTcuMyAwIDQ4LjYgNjEuMnpNNzUgMzM2LjJsODYuMiAxMDcuOC0zNi44IDQ2Yy01LjUgNi45LTE1LjYgOC0yMi41IDIuNWwtODAtNjRjLTYuOS01LjUtOC0xNS42LTIuNS0yMi41TDc1IDMzNi4yeiJdfSx1SWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmstZmxhZyIsaWNvbjpbNTEyLDUxMixbXSwiZTUxYyIsIk0zNTItMzJMMjQwLTMyYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNDQtMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMCAwIDIyNC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjI0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE5MiAwIDAtNjQgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTQ4IDIyNGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6bS0xMTIgMGwwIDIyNC02NCAwIDAtMjI0IDY0IDB6Il19LE5PPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLWRvd24tbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93cy1hbHQiXSwiZjBiMiIsIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTc5LjEgMTI4IDE5MiAxMjhsMzIgMCAwIDk2LTk2IDAgMC0zMmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzEyOCAzMzIuOSAxMjggMzIwbDAtMzIgOTYgMCAwIDk2LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMzMi45IDM4NCAzMjAgMzg0bC0zMiAwIDAtOTYgOTYgMCAwIDMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMzODQgMTc5LjEgMzg0IDE5MmwwIDMyLTk2IDAgMC05NiAzMiAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0eiJdfSxmSWU9Tk8sbUllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1zaWRlIixpY29uOls2NDAsNTEyLFsxMjg2NjNdLCJmNWU0IiwiTTE0NyAxMDYuN2wtMjkuOCA4NS4zIDEyMi45IDAgMC05Ni03Ny45IDBjLTYuOCAwLTEyLjkgNC4zLTE1LjEgMTAuN3pNNDguNiAxOTMuOUw4Ni41IDg1LjZDOTcuOCA1My41IDEyOC4xIDMyIDE2Mi4xIDMyTDM2MCAzMmMyNS4yIDAgNDguOSAxMS45IDY0IDMybDk2LjIgMTI4LjNDNTg3LjEgMTk2LjUgNjQwIDI1Mi4xIDY0MCAzMjBsMCAxNmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTYuNCAwYy00IDQ0LjktNDEuNyA4MC04Ny42IDgwcy04My42LTM1LjEtODcuNi04MGwtMTQ0LjcgMGMtNCA0NC45LTQxLjcgODAtODcuNiA4MHMtODMuNi0zNS4xLTg3LjYtODBsLS40IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtODBjMC0zMC4xIDIwLjctNTUuMyA0OC42LTYyLjF6TTQ0MCAxOTJsLTY3LjItODkuNmMtMy00LTcuOC02LjQtMTIuOC02LjRsLTcyIDAgMCA5NiAxNTIgMHpNMTUyIDQzMmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bTM2MC00MGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAweiJdfSxGTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUiXSwiZjgyOSIsIk0xNjcuMS0xNmwxMTMuOSAwYzEzLjggMCAyNiA4LjggMzAuNCAyMS45TDMyMCAzMiA0MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDk2IDAgOC43LTI2LjFDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2ek0zMiAxNDRsMzg0IDAtMjEuMSAzMjMuMUMzOTMuMyA0OTIuNCAzNzIuMyA1MTIgMzQ3IDUxMkwxMDEgNTEyYy0yNS4zIDAtNDYuMy0xOS42LTQ3LjktNDQuOUwzMiAxNDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sZ0llPUZPLGJJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWZlLXJpbmciLGljb246WzUxMiw1MTIsW10sImYxY2QiLCJNMzY3LjIgNDEyLjVDMzM1LjkgNDM0LjkgMjk3LjUgNDQ4IDI1NiA0NDhzLTc5LjktMTMuMS0xMTEuMi0zNS41bDU4LTU4YzE1LjggOC42IDM0IDEzLjUgNTMuMyAxMy41czM3LjQtNC45IDUzLjMtMTMuNWw1OCA1OHptOTAuNyAuOGMzMy44LTQzLjQgNTQtOTggNTQtMTU3LjNTNDkxLjggMTQyLjEgNDU4IDk4LjdjOS0xMi41IDcuOS0zMC4xLTMuNC00MS4zUzQyNS44IDQ1IDQxMy4zIDU0QzM2OS45IDIwLjIgMzE1LjMgMCAyNTYgMFMxNDIuMSAyMC4yIDk4LjcgNTRjLTEyLjUtOS0zMC4xLTcuOS00MS4zIDMuNFM0NSA4Ni4yIDU0IDk4LjdDMjAuMiAxNDIuMSAwIDE5Ni43IDAgMjU2UzIwLjIgMzY5LjkgNTQgNDEzLjNjLTkgMTIuNS03LjkgMzAuMSAzLjQgNDEuM1M4Ni4yIDQ2NyA5OC43IDQ1OGM0My40IDMzLjggOTggNTQgMTU3LjMgNTRzMTEzLjktMjAuMiAxNTcuMy01NGMxMi41IDkgMzAuMSA3LjkgNDEuMy0zLjRzMTIuNC0yOC44IDMuNC00MS4zem0tNDUuNS00Ni4xbC01OC01OGM4LjYtMTUuOCAxMy41LTM0IDEzLjUtNTMuM3MtNC45LTM3LjQtMTMuNS01My4zbDU4LTU4QzQzNC45IDE3Ni4xIDQ0OCAyMTQuNSA0NDggMjU2cy0xMy4xIDc5LjktMzUuNSAxMTEuMnpNMzY3LjIgOTkuNWwtNTggNThjLTE1LjgtOC42LTM0LTEzLjUtNTMuMy0xMy41cy0zNy40IDQuOS01My4zIDEzLjVsLTU4LTU4QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0czc5LjkgMTMuMSAxMTEuMiAzNS41ek0xNTcuNSAzMDkuM2wtNTggNThDNzcuMSAzMzUuOSA2NCAyOTcuNSA2NCAyNTZzMTMuMS03OS45IDM1LjUtMTExLjJsNTggNThjLTguNiAxNS44LTEzLjUgMzQtMTMuNSA1My4zczQuOSAzNy40IDEzLjUgNTMuM3pNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSx2SWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29weXJpZ2h0IixpY29uOls1MTIsNTEyLFsxNjldLCJmMWY5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDUuMSAzMDYuOWMyOC4xIDI4LjEgNzMuNyAyOC4xIDEwMS44IDAgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy00Ni45IDQ2LjktMTIyLjggNDYuOS0xNjkuNyAwcy00Ni45LTEyMi44IDAtMTY5LjcgMTIyLjgtNDYuOSAxNjkuNyAwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMHMtMjguMSA3My43IDAgMTAxLjh6Il19LHlJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXByZXNjcmlwdGlvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNODggMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgMjIuNSAwIDU4LjQgNTUtMzMuNCAzMS42Yy05LjYgOS4xLTEwLjEgMjQuMy0uOSAzMy45czI0LjMgMTAuMSAzMy45IC45bDM1LjQtMzMuNSAzNS42IDMzLjVjOS43IDkuMSAyNC44IDguNiAzMy45LTFzOC42LTI0LjgtMS0zMy45bC0zMy42LTMxLjYgMzMuNi0zMS44YzkuNi05LjEgMTAuMS0yNC4zIC45LTMzLjlzLTI0LjMtMTAuMS0zMy45LS45bC0zNS43IDMzLjctNDAuOS0zOC41YzEyLjktMTEuNyAyMS4xLTI4LjYgMjEuMS00Ny41IDAtMzUuMy0yOC43LTY0LTY0LTY0bC01NiAwem0zMiA4MGwtOCAwIDAtMzIgMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjQgMHoiXX0seEllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVyYXNlciIsaWNvbjpbNTc2LDUxMixbXSwiZjEyZCIsIk0xNzguNSA0MTZsMTIzIDAgNjUuMy02NS4zLTE3My41LTE3My41LTEyNi43IDEyNi43IDExMiAxMTJ6TTIyNCA0ODBsLTQ1LjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMTcgMzQ1QzYuMSAzMzQuMSAwIDMxOS40IDAgMzA0czYuMS0zMC4xIDE3LTQxTDI2MyAxN0MyNzMuOSA2LjEgMjg4LjYgMCAzMDQgMHMzMC4xIDYuMSA0MSAxN0w1MjcgMTk5YzEwLjkgMTAuOSAxNyAyNS42IDE3IDQxcy02LjEgMzAuMS0xNyA0MWwtMTM1IDEzNSAxMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDB6Il19LE9PPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1zdGFydCIsaWNvbjpbMzg0LDUxMixbImhvdXJnbGFzcy0xIl0sImYyNTEiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJTMTQuMyA2NCAzMiA2NGwwIDExYzAgNDIuNCAxNi45IDgzLjEgNDYuOSAxMTMuMWw2Ny45IDY3LjktNjcuOSA2Ny45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3bDAgMTFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMWMwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTY3LjktNjcuOSA2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFsMC0xMWMxNy43IDAgMzItMTQuMyAzMi0zMlMzNjkuNyAwIDM1MiAwTDMyIDB6TTI4OCA0MzdsMCAxMS0xOTIgMCAwLTExYzAtMjUuNSAxMC4xLTQ5LjkgMjguMS02Ny45bDY3LjktNjcuOSA2Ny45IDY3LjljMTggMTggMjguMSA0Mi40IDI4LjEgNjcuOXoiXX0sd0llPU9PLFJPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1sZWZ0IixpY29uOls1MTIsNTEyLFs2MTg0MCwiYXJyb3ctYWx0LWNpcmNsZS1sZWZ0Il0sImYzNTkiLCJNNTEyIDI1NmEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2wxMDQtMTA0YzQuNi00LjYgMTEuNS01LjkgMTcuNC0zLjVzOS45IDguMyA5LjkgMTQuOGwwIDU2IDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDU2YzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNWwtMTA0LTEwNGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6Il19LE1JZT1STyx6SWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3J1emVpcm8tc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTE1MiIsIk0yNDAgOTZjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgNzEuNiA0Ny4xIDEzMi4zIDExMiAxNTIuN0wxOTIgMjU2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDEyLjggMCAyMy4zIDEwLjEgMjQgMjIuNyAxNS41LTkuNSAzMy41LTE0LjcgNTIuMy0xNC43bDExLjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEuOCAwYy0xOC44IDAtMzYuMSAxMC00NS40IDI2LjMtNC41IDcuOS02LjkgMTYuOC02LjkgMjUuOWwwIDc1LjhjNDIuNSAwIDgxLjEtMTYuNiAxMDkuOC00My42IDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yQzM1My43IDQ1Ni44IDI5OS41IDQ4MCAyNDAgNDgwIDExNi4zIDQ4MCAxNiAzNzkuNyAxNiAyNTZTMTE2LjMgMzIgMjQwIDMyYzU5LjUgMCAxMTMuNyAyMy4yIDE1My43IDYxLjEgMTIuOSAxMi4xIDEzLjQgMzIuNCAxLjMgNDUuMnMtMzIuNCAxMy40LTQ1LjIgMS4zQzMyMS4xIDExMi42IDI4Mi41IDk2IDI0MCA5NnoiXX0sa0llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNtb2tpbmciLGljb246WzU3Niw1MTIsWzEyODY4NF0sImY0OGQiLCJNMzYwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxOWMwIDQwLjMgMTYgNzkgNDQuNSAxMDcuNWwyMSAyMUM0NjkgMTkxIDQ4MCAyMTcuNCA0ODAgMjQ1bDAgMTljMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xOWMwLTE0LjktNS45LTI5LjEtMTYuNC0zOS42bC0yMS0yMUMzNTcuMSAxNDYuOSAzMzYgOTYgMzM2IDQzbDAtMTljMC0xMy4zIDEwLjctMjQgMjQtMjR6TTU1MiAyODhjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTljMC00MC4zLTE2LTc5LTQ0LjUtMTA3LjVsLTIxLTIxQzQ0MyA5NyA0MzIgNzAuNiA0MzIgNDNsMC0xOWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTljMCAxNC45IDUuOSAyOS4xIDE2LjQgMzkuNmwyMSAyMUM1NTQuOSAxNDEuMSA1NzYgMTkyIDU3NiAyNDVsMCAxOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHpNMzIwIDQ0OGw5NiAwIDAtMzItOTYgMCAwIDMyek0wIDQxNmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMnptNTc2LTQwbDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEJPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1wb2xsLXZlcnRpY2FsIixpY29uOls0NDgsNTEyLFsicG9sbCJdLCJmNjgxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTU2IDE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMTg0IDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4ek0yMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjA4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxTSWU9Qk8sQ0llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUtbWludXMiLGljb246WzY0MCw1MTIsW10sImU1NDAiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS02NCAwYzAgOC44LTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2eiJdfSxfSWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmlvaGF6YXJkIixpY29uOls1NzYsNTEyLFs5NzYzXSwiZjc4MCIsIk0yNjAgMTIuNmMwLTguMy03LjYtMTQuNS0xNS41LTEyLjEtNjAuOSAxOC44LTEwNS4xIDc1LjgtMTA1LjEgMTQzLjEgMCAyNS4xIDYuMSA0OC43IDE3IDY5LjUtMjEgMS44LTQyIDguMi02MS41IDE5LjUtNTcuOSAzMy42LTg0LjggMTAwLjItNzAuOSAxNjIuNSAxLjkgOC40IDExLjQgMTIgMTguOSA3LjYgNS0yLjkgNy42LTguNiA3LjEtMTQuNC0uMy0zLjMtLjQtNi42LS40LTEwLjEgMC0xMjMuNSAxODQuNC0xMjMuNSAxODQuNCAwIDAgODguNC05NC41IDExMy42LTE0OC4yIDc1LjQtNC41LTMuMi0xMC41LTMuOS0xNS4zLTEuMS03IDQuMS04LjYgMTMuNi0yLjcgMTkuMSA0Ni42IDQzLjggMTE4IDUzLjkgMTc2LjEgMjAuMiAxNy45LTEwLjQgMzIuOC0yMy45IDQ0LjUtMzkuNCAxMS43IDE1LjYgMjYuNiAyOS4xIDQ0LjUgMzkuNCA1OC4xIDMzLjcgMTI5LjUgMjMuNiAxNzYuMS0yMC4yIDUuOS01LjUgNC4zLTE1LjEtMi43LTE5LjEtNC44LTIuOC0xMC44LTIuMS0xNS4zIDEuMS01My43IDM4LjItMTQ4LjIgMTMtMTQ4LjItNzUuNCAwLTEyMy41IDE4NC40LTEyMy41IDE4NC40IDAgMCAzLjQtLjEgNi44LS40IDEwLjEtLjUgNS44IDIuMSAxMS41IDcuMSAxNC40IDcuNCA0LjMgMTcgLjggMTguOS03LjYgMTMuOS02Mi4yLTEzLTEyOC45LTcwLjktMTYyLjUtMTkuNS0xMS4zLTQwLjQtMTcuNy02MS41LTE5LjUgMTAuOS0yMC44IDE3LTQ0LjQgMTctNjkuNSAwLTY3LjMtNDQuMi0xMjQuMy0xMDUuMS0xNDMuMS03LjktMi40LTE1LjUgMy44LTE1LjUgMTIuMSAwIDUuOSA0IDExIDkuNSAxMy4yIDgzLjQgMzMuNiA3MC44IDE3OC40LTM3LjggMTc4LjRTMTY3LjEgNTkuNCAyNTAuNSAyNS44YzUuNS0yLjIgOS41LTcuMyA5LjUtMTMuMnpNMjQ4LjQgMjg4YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTQzNSAzMTcuN2MtMTYuMiAwLTMxLjQgNS41LTQyLjEgMTUtMTAuMSA5LjEtMTguMSAyMy40LTE4LjEgNDUuNiAwIDIxLjEgNy4yIDM1IDE2LjUgNDQuMSAzMi4yLTI0LjYgNTUuNS02MC41IDYzLjktMTAxLjgtNi4zLTEuOS0xMy4yLTMtMjAuMi0zek0yMDIgMzc4LjNjMC0yMi4zLTgtMzYuNi0xOC4xLTQ1LjYtMTAuNy05LjYtMjUuOS0xNS00Mi4xLTE1LTcgMC0xMy45IDEtMjAuMiAzIDguNCA0MS4zIDMxLjYgNzcuMiA2My45IDEwMS44IDkuNC05LjEgMTYuNS0yMy4xIDE2LjUtNDQuMnptNDEuMi0yMjQuM2M5IDEwLjIgMjMuMiAxOC4yIDQ1LjIgMTguMnMzNi4yLTggNDUuMi0xOC4yYzYuNy03LjYgMTEuNS0xNy41IDEzLjYtMjguNC0xOC4zLTYuOC0zOC4yLTEwLjUtNTguOC0xMC41cy00MC41IDMuNy01OC44IDEwLjVjMi4yIDEwLjkgNi45IDIwLjggMTMuNiAyOC41eiJdfSxITz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsLWNvbmNpZXJnZSIsaWNvbjpbNTEyLDUxMixbMTI4NzE4LCJjb25jaWVyZ2UtYmVsbCJdLCJmNTYyIiwiTTIxNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNiAwIDAgMzMuM0MxMjQuOCAxNTYuNyA0MC4yIDI0My43IDMyLjYgMzUybDQ0Ni45IDBDNDcxLjggMjQzLjcgMzg3LjIgMTU2LjcgMjgwIDE0NS4zbDAtMzMuMyAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwek0yNCA0MDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgNDAweiJdfSxUSWU9SE8sTEllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWhvcml6b250YWwiLGljb246WzU3Niw1MTIsW10sImY1NDciLCJNNDggMzg0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgNDggMCAwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MiA0OCAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDQgMjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAzODR6Il19LCRJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3JzZSIsaWNvbjpbNTc2LDUxMixbMTI4MDE0XSwiZjZmMCIsIk00NDggMjM4LjFsMC03OC4xIDE2IDAgOS44IDE5LjZjMTIuNSAyNS4xIDQyLjIgMzYuNCA2OC4zIDI2IDIwLjUtOC4yIDMzLjktMjggMzMuOS01MC4xTDU3NiA4MGMwLTE5LjEtOC40LTM2LjMtMjEuNy00OGw1LjcgMGM4LjggMCAxNi03LjIgMTYtMTZTNTY4LjggMCA1NjAgMEw0NDggMEMzNzcuMyAwIDMyMCA1Ny4zIDMyMCAxMjhsLTE3MS4yIDBDMTE4LjEgMTI4IDkxLjIgMTQ0LjMgNzYuMyAxNjguOCAzMy4yIDE3NC41IDAgMjExLjQgMCAyNTZsMCA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTZjMC0xMy40IDYuNi0yNS4yIDE2LjctMzIuNSAxLjYgMTMgNi4zIDI1LjQgMTMuNiAzNi40bDI4LjIgNDIuNGM4LjMgMTIuNCA2LjQgMjguNy0xLjIgNDEuNi0xNi41IDI4LTIwLjYgNjIuMi0xMCA5My45bDE3LjUgNTIuNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45bDMzLjcgMGMyMS44IDAgMzcuMy0yMS40IDMwLjQtNDIuMWwtMjAuOC02Mi41Yy0yLjEtNi40LS41LTEzLjQgNC4zLTE4LjJsMTIuNy0xMi43YzEzLjItMTMuMiAyMC42LTMxLjEgMjAuNi00OS43IDAtMi4zLS4xLTQuNi0uMy02LjlsODQgMjRjNC4xIDEuMiA4LjIgMi4xIDEyLjMgMi44TDMyMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2NC4zYzE5LjItMTkuMiAzMS41LTQ1LjcgMzItNzUuN2wwIDAgMC0xLjl6TTQ5NiA2NGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6Il19LEFJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhciIsaWNvbjpbNDQ4LDUxMixbMTI4MTk3LDEyODE5OF0sImYxMzMiLCJNMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMybDAgMzItMzIgMEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDQ4IDQ0OCAwIDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyLTEyOCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMjI0TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyLTQ0OCAweiJdfSxESWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZy1jaGlsZCIsaWNvbjpbNjQwLDUxMixbXSwiZTRmYSIsIk0zMjAtMzJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDE2MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMSAxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjgtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjJsMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjYuNyAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNUwwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyMjEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDBjNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4yLTExIDExLTkuMiAyOS4yIDMuNyAzNy44IDkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDU2MCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTM4NC41IDE0OWwtMTkuOC0xNi43IDExLjEgODguOGMxLjYgMTMuMi03LjcgMjUuMS0yMC44IDI2LjhzLTI1LjEtNy43LTI2LjgtMjAuOGwtNC40LTM1LTcuNiAwLTQuNCAzNWMtMS42IDEzLjItMTMuNiAyMi41LTI2LjggMjAuOHMtMjIuNS0xMy42LTIwLjgtMjYuOGwxMS4xLTg4LjgtMTkuOCAxNi43Yy0xMC4xIDguNi0yNS4zIDcuMy0zMy44LTIuOHMtNy4zLTI1LjMgMi44LTMzLjhsMjcuOS0yMy42QzI3MS4zIDcyLjggMjk1LjMgNjQgMzIwIDY0czQ4LjcgOC44IDY3LjYgMjQuN2wyNy45IDIzLjZjMTAuMSA4LjYgMTEuNCAyMy43IDIuOCAzMy44cy0yMy43IDExLjQtMzMuOCAyLjh6Il19LEVJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpdGFsaWMiLGljb246WzM4NCw1MTIsW10sImYwMzMiLCJNMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC01OC43IDAtMTMzLjMgMzIwIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDU4LjcgMCAxMzMuMy0zMjAtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LFBJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraGFuZGEiLGljb246WzUxMiw1MTIsWzk3NzJdLCJmNjZkIiwiTTI0MC43IDhjOC45LTcuNCAyMS44LTcuNCAzMC43IDBsMzcuOCAzMS41YzguNyA3LjMgMTEuMSAxOS42IDYgMjkuNi0xLjIgMi40LTIuOCA1LjUtNC42IDkuMiAzNC4yIDE5LjIgNTcuMyA1NS44IDU3LjMgOTcuOHMtMjMuMSA3OC42LTU3LjMgOTcuOGMxLjggMy43IDMuMyA2LjggNC42IDkuMiA1LjEgMTAgMi43IDIyLjMtNiAyOS42bC0zNy4yIDMxIDAgMTkuOGMyMi45LTE1LjcgNDguNC0zMy4zIDc2LjctNTIuNyA0Mi44LTI5LjQgNjguNC03OCA2OC40LTEzMGwwLTExLjFjMC0yMy45LTcuMS00Ny4zLTIwLjQtNjcuMi01LjEtNy43LTQuNi0xNy44IDEuNy0yNC42IDYuNi03LjEgMTcuMi04LjEgMjUuMi0yLjggMjcuNSAxOC4xIDg5LjQgNjcuNSA4OS40IDE0OS4xIDAgNDYuNS0yMC4yIDg4LjYtNDEuOCAxMjAuNC0yMS42IDMyLTQ1LjYgNTUtNTUuMyA2My44LTcuOCA3LjEtMTkgNy45LTI3LjYgM2wtNzAuOC00MC4zLTMyLjcgMjIuNSA0NS41IDMxLjNjMS44LS40IDMuNy0uNyA1LjctLjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTEyLjIgMC0yMi4zLTkuMS0yMy44LTIxbC00MC4yLTI3LjYgMCAyOC45YzkuNiA1LjUgMTYgMTUuOSAxNiAyNy43IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTEuOCA2LjQtMjIuMiAxNi0yNy43bDAtMjguMS00MC4zIDI3LjdjLTEuOCAxMS40LTExLjggMjAuMS0yMy43IDIwLjEtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyLjIgMCA0LjQgLjMgNi41IC45bDQ1LjgtMzEuNS0zMi43LTIyLjUtNzAuOCA0MC4zYy04LjcgNC45LTE5LjggNC4xLTI3LjYtMy05LjctOC44LTMzLjctMzEuOS01NS4zLTYzLjgtMjEuNS0zMS44LTQxLjgtNzMuOS00MS44LTEyMC40IDAtODEuNyA2MS45LTEzMS4xIDg5LjQtMTQ5LjEgOC4xLTUuMyAxOC42LTQuMyAyNS4yIDIuOCA2LjQgNi45IDYuOCAxNyAxLjcgMjQuNi0xMy4zIDE5LjktMjAuNCA0My4zLTIwLjQgNjcuMmwwIDExLjFjMCA1MS45IDI1LjYgMTAwLjYgNjguNCAxMzAgMjguNCAxOS42IDUzLjcgMzYuOSA3NS42IDUybDAtMTkuMS0zNy4yLTMxYy04LjctNy4zLTExLjEtMTkuNi02LTI5LjYgMS4yLTIuNCAyLjgtNS41IDQuNi05LjItMzQuMi0xOS4yLTU3LjMtNTUuOC01Ny4zLTk3LjhzMjMuMS03OC42IDU3LjMtOTcuOGMtMS44LTMuNy0zLjMtNi44LTQuNi05LjItNS4xLTEwLTIuNy0yMi4zIDYtMjkuNkwyNDAuNyA4ek0yMjAuMyAxMjIuOWMtMTcgMTEuNS0yOC4yIDMxLTI4LjIgNTMuMXMxMS4yIDQxLjYgMjguMiA1My4xYzYuOC0xOS4yIDExLjgtMzguNCAxMS44LTUzLjFzLTQuOS0zMy45LTExLjgtNTMuMXptNzEuNSAxMDYuMmMxNy0xMS41IDI4LjItMzEgMjguMi01My4xcy0xMS4yLTQxLjYtMjguMi01My4xYy02LjggMTkuMi0xMS44IDM4LjQtMTEuOCA1My4xczQuOSAzMy45IDExLjggNTMuMXoiXX0scU89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1mcm93bi1vcGVuIixpY29uOls1MTIsNTEyLFsxMjg1NTAsImZyb3duLW9wZW4iXSwiZjU3YSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40IDE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNC0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6Il19LElJZT1xTyxvZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjayIsaWNvbjpbNDQ4LDUxMixbMTAwMDMsMTAwMDRdLCJmMDBjIiwiTTQzNC44IDcwLjFjMTQuMyAxMC40IDE3LjUgMzAuNCA3LjEgNDQuN2wtMjU2IDM1MmMtNS41IDcuNi0xNCAxMi4zLTIzLjQgMTMuMXMtMTguNS0yLjctMjUuMS05LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTAxLjUgMTAxLjUgMjM0LTMyMS43YzEwLjQtMTQuMyAzMC40LTE3LjUgNDQuNy03LjF6Il19LE5JZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaW5nZXJwcmludCIsaWNvbjpbNTEyLDUxMixbXSwiZjU3NyIsIk00OCAyNTZjMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4IDYzLjEgMCAxMTkuNiAyOC4xIDE1Ny44IDcyLjUgOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOEM0MDMuMyAzNC42IDMzMy43IDAgMjU2IDAgMTE0LjYgMCAwIDExNC42IDAgMjU2bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwem00NTguNS01Mi45Yy0yLjctMTMtMTUuNS0yMS4zLTI4LjQtMTguNXMtMjEuMyAxNS41LTE4LjUgMjguNGMyLjkgMTMuOSA0LjUgMjguMyA0LjUgNDMuMWwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMwLTE4LjEtMS45LTM1LjgtNS41LTUyLjl6TTI1NiA4MGMtMTkgMC0zNy40IDMtNTQuNSA4LjYtMTUuMiA1LTE4LjcgMjMuNy04LjMgMzUuOSA3LjEgOC4zIDE4LjggMTAuOCAyOS40IDcuOSAxMC42LTIuOSAyMS44LTQuNCAzMy40LTQuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDI0LjljMCAyNS4yLTEuNSA1MC4zLTQuNCA3NS4zLTEuNyAxNC42IDkuNCAyNy44IDI0LjIgMjcuOCAxMS44IDAgMjEuOS04LjYgMjMuMy0yMC4zIDMuMy0yNy40IDUtNTUgNS04Mi43bDAtMjQuOWMwLTk3LjItNzguOC0xNzYtMTc2LTE3NnpNMTUwLjcgMTQ4LjdjLTkuMS0xMC42LTI1LjMtMTEuNC0zMy45LS40LTIzLjEgMjkuOC0zNi44IDY3LjEtMzYuOCAxMDcuN2wwIDI0LjljMCAyNC4yLTIuNiA0OC40LTcuOCA3MS45LTMuNCAxNS42IDcuOSAzMS4xIDIzLjkgMzEuMSAxMC41IDAgMTkuOS03IDIyLjItMTcuMyA2LjQtMjguMSA5LjctNTYuOCA5LjctODUuOGwwLTI0LjljMC0yNy4yIDguNS01Mi40IDIyLjktNzMuMSA3LjItMTAuNCA4LTI0LjYtLjItMzQuMnpNMjU2IDE2MGMtNTMgMC05NiA0My05NiA5NmwwIDI0LjljMCAzNS45LTQuNiA3MS41LTEzLjggMTA2LjEtMy44IDE0LjMgNi43IDI5IDIxLjUgMjkgOS41IDAgMTcuOS02LjIgMjAuNC0xNS40IDEwLjUtMzkgMTUuOS03OS4yIDE1LjktMTE5LjdsMC0yNC45YzAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsMCAyNC45YzAgMzYuMy0zLjUgNzIuNC0xMC40IDEwNy45LTIuNyAxMy45IDcuNyAyNy4yIDIxLjggMjcuMiAxMC4yIDAgMTktNyAyMS0xNyA3LjctMzguOCAxMS42LTc4LjMgMTEuNi0xMTguMWwwLTI0LjljMC01My00My05Ni05Ni05NnptMjQgOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNC45YzAgNTkuOS0xMSAxMTkuMy0zMi41IDE3NS4ybC01LjkgMTUuM2MtNC44IDEyLjQgMS40IDI2LjMgMTMuOCAzMXMyNi4zLTEuNCAzMS0xMy44bDUuOS0xNS4zQzI2Ny45IDQxMS45IDI4MCAzNDYuNyAyODAgMjgwLjlsMC0yNC45eiJdfSxGSWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcmdpbmctc3RhdGlvbiIsaWNvbjpbNTc2LDUxMixbXSwiZjVlNyIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIyNGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyYzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTI3LjdjLTMyLjUtMTAuMi01Ni00MC41LTU2LTc2LjNsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OCAzMiAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCAzNS44LTIzLjUgNjYuMS01NiA3Ni4zTDUyMCAzODBjMCAzNy42LTMwLjQgNjgtNjggNjhzLTY4LTMwLjQtNjgtNjhsMC0xMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwwIDEyOS40YzkuMyAzLjMgMTYgMTIuMiAxNiAyMi42IDAgMTMuMy0xMC43IDI0LTI0IDI0TDcyIDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC41IDYuNy0xOS4zIDE2LTIyLjZMNjQgNjR6bTgyLjcgMTI1LjdsMzkgMC0yMC45IDY2LjljLTIuNCA3LjYgMy4zIDE1LjQgMTEuMyAxNS40IDIuOSAwIDUuNi0xIDcuOC0yLjlsOTQuNi04MmMzLjEtMi43IDQuOS02LjYgNC45LTEwLjcgMC03LjgtNi4zLTE0LjEtMTQuMS0xNC4xbC0zOSAwIDIwLjktNjYuOWMyLjQtNy42LTMuMy0xNS40LTExLjMtMTUuNC0yLjkgMC01LjYgMS03LjggMi45bC05NC42IDgyYy0zLjEgMi43LTQuOSA2LjYtNC45IDEwLjcgMCA3LjggNi4zIDE0LjEgMTQuMSAxNC4xeiJdfSxPSWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJmNTAyIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDEgMCAyNDAgMTIwIDEyMCAwIDEgMSAwLTI0MHpNMTk0LjMgMzA0bDU5LjQgMGMyOS43IDAgNTcuNyA3LjMgODIuMyAyMC4xbDAgNC4zYy0xOS42IDE3LjYtMzIgNDMuMS0zMiA3MS41bDAgOTZjMCA1LjUgLjUgMTAuOSAxLjMgMTYuMUw0NS43IDUxMkMyOS4zIDUxMiAxNiA0OTguNyAxNiA0ODIuMyAxNiAzODMuOCA5NS44IDMwNCAxOTQuMyAzMDR6bTMwMS43IC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sVk89e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXNjcmVlbi1idXR0b24iLGljb246WzM4NCw1MTIsWyJtb2JpbGUtYWx0Il0sImYzY2QiLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0em02NCAwbDAgMzA0IDIyNCAwIDAtMzA0LTIyNCAwek0xOTIgNDcyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnoiXX0sUkllPVZPLEJJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNGFhIiwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwek0yODggMGMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNMODAgMzA3LjljMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDE2LjYgMCAzMi43LTEuOSA0OC4yLTUuNi0yMC4zLTMwLjUtMzIuMi02Ny0zMi4yLTEwNi40IDAtMjcuMyA1LjctNTMuMyAxNi03Ni45bDAtMTM2LjZjMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sak89e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXdhbGtpbmctd2l0aC1jYW5lIixpY29uOls1NzYsNTEyLFsiYmxpbmQiXSwiZjI5ZCIsIk0yMjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTE2MCAyMDUuM2wtMjIuNiAyMi42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNC40LTM0LjRjMjMuMi0yMy4yIDU0LjYtMzYuMiA4Ny4zLTM2LjIgMzYuMSAwIDcwLjMgMTUuOCA5My44IDQzLjFsNjguNiA4MGMxMS41IDEzLjQgOS45IDMzLjYtMy41IDQ1LjFzLTMzLjYgOS45LTQ1LjEtMy41bC01NS43LTY1IDAgMTE4LjYgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zem0uMSAxNjUuOGMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41bC02OC4zIDY4LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY4LjMtNjguM2MzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMMTYwLjEgMzcxem0yMzMuNS02Mi4yYzEwLjYtOCAyNS42LTUuOCAzMy42IDQuOGwxNDQgMTkyYzggMTAuNiA1LjggMjUuNi00LjggMzMuNnMtMjUuNiA1LjgtMzMuNi00LjhsLTE0NC0xOTJjLTgtMTAuNi01LjgtMjUuNiA0LjgtMzMuNnoiXX0sSEllPWpPLFVPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtd2F2ZWZvcm0iLGljb246WzM4NCw1MTIsWyJmaWxlLW1lZGljYWwtYWx0Il0sImY0NzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTk2IDYwLjMgMCA0OC44IDYyLjdjNS4xIDYuNiAxMy4zIDEwIDIxLjYgOS4xczE1LjUtNi4xIDE5LjEtMTMuNmw0Mi45LTkxLjIgOS45IDE5LjhjNC4xIDguMSAxMi40IDEzLjMgMjEuNSAxMy4zbDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU3LjIgMC0yNS40LTUwLjdjLTQuMS04LjItMTIuNi0xMy40LTIxLjgtMTMuM3MtMTcuNSA1LjUtMjEuNCAxMy44bC00Ny4zIDEwMC42LTMyLTQxLjFDODYuNCAzMDcuNCA3OS40IDMwNCA3MiAzMDRMMCAzMDQgMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41eiJdfSxxSWU9VU8sVkllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNyYWNrIixpY29uOls1MTIsNTEyLFtdLCJlM2IxIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODYuNCAwLTMxLjMtNTIuMmMtNC4xLTYuOC0yLjYtMTUuNSAzLjUtMjAuNUwyNTYgMzY4IDE5NS44IDI4NS4yYy0xMC45LTE1IDguMi0zMy41IDIyLjgtMjJsMTE3LjkgOTIuNmM4IDYuMyA4LjIgMTguNCAuNCAyNC45TDI1NiA0NDggMjk0LjQgNTEyIDQwMCA1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6Il19LGpJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtd2l6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmNmU4IiwiTTY0IDQwMGw4NS43LTIwOC4yYzE3LTQxLjMgNDcuOC03NS4zIDg3LjItOTYuM0wzODMuOCAxNy4yYzEyLjMtNi42IDI2LjUgNC43IDIzIDE4LjJMMzY5LjYgMTc3LjhjLTEuMSA0LjEtMS42IDguMy0xLjYgMTIuNiAwIDYuMyAxLjIgMTIuNiAzLjYgMTguNWw3Ni40IDE5MS4xLTIwNy4xIDAgMTEuOC0zNS40IDQwLjQtMTMuNWM2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMnMtNC40LTEzLTEwLjktMTUuMmwtNDAuNC0xMy41LTEzLjUtNDAuNEMyMzcgMjYwLjQgMjMwLjkgMjU2IDIyNCAyNTZzLTEzIDQuNC0xNS4yIDEwLjlsLTEzLjUgNDAuNC00MC40IDEzLjVDMTQ4LjQgMzIzIDE0NCAzMjkuMSAxNDQgMzM2czQuNCAxMyAxMC45IDE1LjJsNDAuNCAxMy41IDExLjggMzUuNC0xNDMuMSAwek0yNzkuNiAxNDEuNWMtMS4xLTMuMy00LjEtNS41LTcuNi01LjVzLTYuNSAyLjItNy42IDUuNWwtNi43IDIwLjItMjAuMiA2LjdjLTMuMyAxLjEtNS41IDQuMS01LjUgNy42czIuMiA2LjUgNS41IDcuNmwyMC4yIDYuNyA2LjcgMjAuMmMxLjEgMy4zIDQuMSA1LjUgNy42IDUuNXM2LjUtMi4yIDcuNi01LjVsNi43LTIwLjIgMjAuMi02LjdjMy4zLTEuMSA1LjUtNC4xIDUuNS03LjZzLTIuMi02LjUtNS41LTcuNmwtMjAuMi02LjctNi43LTIwLjJ6TTMyIDQ0OGw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LFdPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItZG9jdG9yIixpY29uOls0NDgsNTEyLFsidXNlci1tZCJdLCJmMGYwIiwiTTIyNCA4YTEyMCAxMjAgMCAxIDAgMCAyNDAgMTIwIDEyMCAwIDEgMCAwLTI0MHptNjAgMzEyLjhjLTUuNC0uNS0xMS0uOC0xNi42LS44bC04Ni45IDBjLTUuNiAwLTExLjEgLjMtMTYuNiAuOGwwIDY3LjVjMTYuNSA3LjYgMjggMjQuMyAyOCA0My42IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtMTkuNCAxMS41LTM2LjEgMjgtNDMuNmwwLTU4LjRDNjEgMzUzIDE2IDQxMy42IDE2IDQ4NC42IDE2IDQ5OS43IDI4LjMgNTEyIDQzLjQgNTEybDM2MS4xIDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC03MS00NS0xMzEuNS0xMDgtMTU0LjZsMCAzNy40YzIzLjMgOC4yIDQwIDMwLjUgNDAgNTYuNmwwIDMyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTMyYzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDMyYzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTMyYzAtMjYuMSAxNi43LTQ4LjMgNDAtNTYuNmwwLTQ2LjZ6Il19LFVJZT1XTyxHTz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1iYXIiLGljb246WzUxMiw1MTIsWyJiYXItY2hhcnQiXSwiZjA4MCIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyem05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA4MGwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTEybDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sV0llPUdPLFlPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwcmF5LWNhbi1zcGFya2xlcyIsaWNvbjpbNTc2LDUxMixbImFpci1mcmVzaGVuZXIiXSwiZjVkMCIsIk0xNjAgMzJsMCA4MCAxMjggMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMCAxMjhjLTUzIDAtOTYgNDMtOTYgOTZsMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMDhjMC01My00My05Ni05Ni05NmwtMTI4IDB6bTY0IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek00NDggNDhjMC0xLjQtMS0zLTIuMi0zLjZMNDE2IDMyIDQwMy42IDIuMkM0MDMgMSA0MDEuNCAwIDQwMCAwcy0zIDEtMy42IDIuMkwzODQgMzIgMzU0LjIgNDQuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkwzODQgNjQgMzk2LjQgOTMuOEMzOTcgOTUgMzk4LjYgOTYgNDAwIDk2czMtMSAzLjYtMi4yTDQxNiA2NCA0NDUuOCA1MS42QzQ0NyA1MSA0NDggNDkuNCA0NDggNDh6bTc2LjQgNDUuOEM1MjUgOTUgNTI2LjYgOTYgNTI4IDk2czMtMSAzLjYtMi4yTDU0NCA2NCA1NzMuOCA1MS42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjYgMC0xLjQtMS0zLTIuMi0zLjZMNTQ0IDMyIDUzMS42IDIuMkM1MzEgMSA1MjkuNCAwIDUyOCAwcy0zIDEtMy42IDIuMkw1MTIgMzIgNDgyLjIgNDQuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw1MTIgNjQgNTI0LjQgOTMuOHptNy4yIDEwMC40Yy0uNi0xLjItMi4yLTIuMi0zLjYtMi4ycy0zIDEtMy42IDIuMkw1MTIgMjI0IDQ4Mi4yIDIzNi40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDUxMiAyNTYgNTI0LjQgMjg1LjhjLjYgMS4yIDIuMiAyLjIgMy42IDIuMnMzLTEgMy42LTIuMkw1NDQgMjU2IDU3My44IDI0My42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjYgMC0xLjQtMS0zLTIuMi0zLjZMNTQ0IDIyNCA1MzEuNiAxOTQuMnpNNTEyIDE0NGMwLTEuNC0xLTMtMi4yLTMuNkw0ODAgMTI4IDQ2Ny42IDk4LjJDNDY3IDk3IDQ2NS40IDk2IDQ2NCA5NnMtMyAxLTMuNiAyLjJMNDQ4IDEyOCA0MTguMiAxNDAuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw0NDggMTYwIDQ2MC40IDE4OS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNDgwIDE2MCA1MDkuOCAxNDcuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42eiJdfSxHSWU9WU8sWUllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaHQtc2lnbiIsaWNvbjpbMzIwLDUxMixbXSwiZTBhYyIsIk0xMzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MC03NC40IDBDMTYuOCA2NCAwIDgwLjggMCAxMDEuNkwwIDQwNi4zYzAgMjMgMTguNyA0MS43IDQxLjcgNDEuN2w3MC4zIDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNDggMGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMiAwLTQwLjEtMjEuMS03NS4zLTUyLjctOTUuMSAxMy4xLTE4LjMgMjAuNy00MC43IDIwLjctNjQuOSAwLTYxLjktNTAuMS0xMTItMTEyLTExMmwtMTYgMCAwLTQwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xMTIgMTI4bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtMTYgMHptLTQ4IDY0bDAgOTYtNDggMCAwLTk2IDQ4IDB6bTQ4IDk2bDAtOTYgNDggMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGwtNDggMHoiXX0sWk89e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJ0ZW1wZXJhdHVyZS11cCJdLCJlMDQwIiwiTTY0LjUgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0cy0xNDQtNjQuNS0xNDQtMTQ0YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0LjUgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yMTIuN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIxMi43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTQzOS4xIDkuNGw2NCA2NGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtOS40LTkuNCAwIDE3OC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTc4LjctOS40IDkuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNjQtNjRjNi02IDE0LjEtOS40IDIyLjYtOS40czE2LjYgMy40IDIyLjYgOS40eiJdfSxaSWU9Wk8sWEllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlYi1hd2Vzb21lIixpY29uOls2NDAsNTEyLFtdLCJlNjgyIiwiTTM3Mi4yIDUyYzAgMjAuOS0xMi40IDM5LTMwLjIgNDcuMkw0NDggMTkyIDU1Mi40IDE3MS4xYy01LjMtNy43LTguNC0xNy4xLTguNC0yNy4xIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhjMCAyNi0yMC42IDQ3LjEtNDYuNCA0OEw0ODEgNDQyLjNjLTEwLjMgMjMtMzMuMiAzNy43LTU4LjQgMzcuN2wtMjA1LjIgMGMtMjUuMiAwLTQ4LTE0LjgtNTguNC0zNy43TDQ2LjQgMTkyQzIwLjYgMTkxLjEgMCAxNzAgMCAxNDQgMCAxMTcuNSAyMS41IDk2IDQ4IDk2czQ4IDIxLjUgNDggNDhjMCAxMC4xLTMuMSAxOS40LTguNCAyNy4xTDE5MiAxOTIgMjk4LjEgOTkuMWMtMTcuNy04LjMtMzAtMjYuMy0zMC00Ny4xIDAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJ6Il19LEtJZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub24tYmluYXJ5IixpY29uOlszODQsNTEyLFtdLCJlODA3IiwiTTE5MiA1NDRjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2IDAtODYuMyA2Mi4xLTE1OCAxNDQtMTczbDAtNDcuMi00OS43IDI0LjgtMyAxLjNjLTE1LjIgNS43LTMyLjUtLjgtMzkuOS0xNS43LTcuNC0xNC44LTIuMi0zMi42IDExLjUtNDEuM2wyLjgtMS42IDM4LjgtMTkuNC0zOC44LTE5LjRjLTE1LjgtNy45LTIyLjItMjcuMS0xNC4zLTQyLjkgNy40LTE0LjggMjQuOC0yMS40IDQwLTE1LjZsMyAxLjMgNDkuNyAyNC44IDAtNDQuMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDQuMiA0OS43LTI0LjggMy0xLjNjMTUuMi01LjggMzIuNSAuOCAzOS45IDE1LjZzMi4yIDMyLjctMTEuNSA0MS4zbC0yLjggMS42LTM4LjcgMTkuNCAzOC43IDE5LjNjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOS03LjQgMTQuOC0yNC43IDIxLjQtMzkuOSAxNS42bC0zLTEuMy00OS43LTI0LjggMCA0Ny4yYzgxLjkgMTUuMSAxNDQgODYuOCAxNDQgMTczIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2em0wLTY0YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHoiXX0sUUllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im4iLGljb246WzM4NCw1MTIsWzExMF0sIjRlIiwiTTIxLjEgMzMuOWMxMi43LTQuNiAyNi45LS43IDM1LjUgOS42TDMyMCAzNTkuNiAzMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDM4NGMwIDEzLjUtOC40IDI1LjUtMjEuMSAzMC4xcy0yNi45IC43LTM1LjUtOS42TDY0IDE1Mi40IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA1MC41IDguNCAzOC41IDIxLjEgMzMuOXoiXX0sWE89e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXVwLWRvd24tbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93cyJdLCJmMDQ3IiwiTTI3OC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAxMTQuNy0xMTQuNyAwIDkuNC05LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDExNC43IDAgMCAxMTQuNy05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOS40IDkuNCAwLTExNC43IDExNC43IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTE0LjcgMCAwLTExNC43IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjR6Il19LEpJZT1YTyxqNT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZSIsaWNvbjpbNTEyLDUxMixbMTI3OTY4LDYzNDk4LDYzNTAwLCJob21lIiwiaG9tZS1hbHQiLCJob21lLWxnLWFsdCJdLCJmMDE1IiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTI0MCAzMjBsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2LTEyOCAwIDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LGVOZT1qNSx0TmU9ajUsYU5lPWo1LGlOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlubmVyIixpY29uOls1MTIsNTEyLFtdLCJmMTEwIiwiTTIwOCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0wIDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek00OCAyMDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0zNjggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNzUgMzY5LjFBNDggNDggMCAxIDEgMTQyLjkgNDM3IDQ4IDQ4IDAgMSAxIDc1IDM2OS4xek03NSA3NUE0OCA0OCAwIDEgMSAxNDIuOSAxNDIuOSA0OCA0OCAwIDEgMSA3NSA3NXpNNDM3IDM2OS4xQTQ4IDQ4IDAgMSAxIDM2OS4xIDQzNyA0OCA0OCAwIDEgMSA0MzcgMzY5LjF6Il19LEtPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdmVsIixpY29uOls1NzYsNTEyLFsibGVnYWwiXSwiZjBlMyIsIk0xNjkuNiAxNTMuNGwtMTguNy0xOC43Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wyNjUuNi0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDMyOS42LTYuNmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0wyMTQuOSAxNTMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDB6TTI3NiAyMTEuN2wtMzEuNC0zMS40IDExMi0xMTIgMTE5LjQgMTE5LjQtMTEyIDExMi0zMS40LTMxLjQtMjMyIDIzMmMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZsMjMyLTIzMnpNMzkwLjkgMzc0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDUwNS42IDIxNC42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE4LjcgMTguN2MxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0w0NTQuOSAzOTMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE4LjctMTguN3oiXX0sck5lPUtPLFFPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpY2tldC1zaW1wbGUiLGljb246WzU3Niw1MTIsWyJ0aWNrZXQtYWx0Il0sImYzZmYiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDguOC03LjQgMTUuNy0xNS43IDE4LjYtMTguOCA2LjUtMzIuMyAyNC40LTMyLjMgNDUuNHMxMy41IDM4LjkgMzIuMyA0NS40YzguMyAyLjkgMTUuNyA5LjggMTUuNyAxOC42bDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0QzAgMzExLjIgNy40IDMwNC4zIDE1LjcgMzAxLjQgMzQuNSAyOTQuOSA0OCAyNzcgNDggMjU2cy0xMy41LTM4LjktMzIuMy00NS40QzcuNCAyMDcuNyAwIDIwMC44IDAgMTkybDAtNjR6Il19LHNOZT1RTyxuTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG92ZSIsaWNvbjpbNTEyLDUxMixbMTI4MzMwXSwiZjRiYSIsIk00OTYgNjRjMTMuMiAwIDIwLjcgMTUuMSAxMi44IDI1LjZMNDgwIDEyOCA0ODAgMzA0YzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0bC0xMTIgMC00Ni4zIDQ2LjNjLTEwLjQgMTAuNC0yNi41IDEyLjQtMzkuMSA0LjhMNDEuNSA0NDAuOWMtMTctMTAuMi0xNS0zNS41IDMuNC00Mi45TDE2MCAzNTJDMjMuOCAzMTEuMSA3LjUgMTY5LjggMjIgOTUuNyAyNS42IDc3LjkgNDUuMyA3MS40IDYxLjMgODAuMkwzMjAgMjI0IDMyMCAxNDRjMC00NC4yIDM1LjgtODAgODAtODBsOTYgMHptLTk2IDU2YTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpNMTgyLjUtOS42YzEyLjQtMTMuNyAzMy4zLTguOSA0Mi41IDcuMWw1Ni40IDk4LjNjLTUuOCAxNC40LTkuMiAzMC4xLTkuNCA0Ni41TDEzOC4xIDY4YzEwLjEtMzEuNiAyNy01OC40IDQ0LjQtNzcuNnoiXX0sb05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcnAtZHJvcGxldCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3YyIsIk0yNTYgMTYwYzM1LjMgMCA2NC0yNi45IDY0LTYwIDAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHpNMzY4IDk2YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzE0NCAxNTcuOSAxNDQgOTZjMC0xMS4xIDEuNi0yMS45IDQuNi0zMkw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My4zIDMyMi43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTEyIDEyOGMwLTM1LjMtMjguNy02NC02NC02NGwtODQuNiAwYzMgMTAuMSA0LjYgMjAuOSA0LjYgMzJ6bTg1LjUgMTc2TDMzNiAzODkuNSAzMzYgMjk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDkzLjUgMHpNOTYgMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sbE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUtY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTU4NyIsIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4IDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyMGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDE2em02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0zNTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTUyOCAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNTEyIDMwNGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek05NiA0ODBsMC0xNjAtMTYgMGMtNDQuMiAwLTgwLTM1LjgtODAtODAgMC0yNi43IDEzLjEtNTAuMyAzMy4yLTY0LjktLjgtNC45LTEuMi0xMC0xLjItMTUuMSAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6Il19LEpPPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cm4tdXAiLGljb246WzM4NCw1MTIsWzEwNTQ4LCJsZXZlbC11cC1hbHQiXSwiZjNiZiIsIk0xNjkuNCA5LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMzIuOSAxOTIgMzIwIDE5MmwtNjQgMCAwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwLTY0IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45bDEyOC0xMjh6Il19LGNOZT1KTyxVNT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1xdWFydGVyIixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMSIsInRoZXJtb21ldGVyLTEiLCJ0aGVybW9tZXRlci1xdWFydGVyIl0sImYyY2EiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zbDAtMjguN2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjguN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LGROZT1VNSxwTmU9VTUsaE5lPVU1LGVSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsaWRlcnMiLGljb246WzUxMiw1MTIsWyJzbGlkZXJzLWgiXSwiZjFkZSIsIk0zMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsODYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4TDQ4MCAxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMjY1LjMgNjRDMjUzIDM1LjcgMjI0LjggMTYgMTkyIDE2cy02MSAxOS43LTczLjMgNDhMMzIgNjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI0Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhsNTQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01NC43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDhzLTYxIDE5LjctNzMuMyA0OEwzMiAyMjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU0LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OEw0ODAgNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNDYuNyAwYy0xMi4zLTI4LjMtNDAuNS00OC03My4zLTQ4cy02MSAxOS43LTczLjMgNDhMMzIgMzg0eiJdfSx1TmU9ZVIsZk5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1ZSIsaWNvbjpbNTc2LDUxMixbMTI4MzMyXSwiZjY3OCIsIk0xNzQuOCAyMjRsMjI2LjQgMGM0My41IDAgNzguOC0zNS4zIDc4LjgtNzguOCAwLTI1LjUtMTIuMy00OS40LTMzLjEtNjQuMkwyOTcuMy0yNS40Yy01LjYtMy45LTEzLTMuOS0xOC41IDBMMTI5LjEgODFDMTA4LjMgOTUuOCA5NiAxMTkuNyA5NiAxNDUuMiA5NiAxODguNyAxMzEuMyAyMjQgMTc0LjggMjI0ek01MTIgNTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNDQ4IDAgMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDIwNi4zIDAgMjI0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwek0yNDAgMzg0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCA4MC05NiAwIDAtODB6Il19LG1OZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoIixpY29uOlszODQsNTEyLFsxMDRdLCI0OCIsIk0zMjAgMjg4bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAtMjU2IDAgMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAyNTYgMHoiXX0sZ05lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluZm8iLGljb246WzE5Miw1MTIsW10sImYxMjkiLCJNNDggNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NiAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMjI0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSx0Uj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZyIsaWNvbjpbMzg0LDUxMixbMTI4Njk0LCJ3YWxraW5nIl0sImY1NTQiLCJNMTkyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0xMDUuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMNjAuMSAxODIuNkM0Mi4xIDIwMC42IDMyIDIyNSAzMiAyNTAuNUwzMiAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6bTEyLjQgMTc5LjRjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDQxLjQgNDg5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguMy02OC4zYzExLjUtMTEuNSAxOS45LTI1LjggMjQuNC00MS41bDIuMi03LjYtNDYtMzkuNGMtMi41LTIuMi01LTQuNC03LjQtNi44bC0xMC40IDM2LjJ6Il19LGJOZT10UixhUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLWRvd24iLGljb246WzM4NCw1MTIsWyJsZXZlbC1kb3duIl0sImYxNDkiLCJNMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMlMxNC4zIDAgMzIgMGw5NiAwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMDYuNyA3My40LTczLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTYwIDQwMi43IDE2MCA5NmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA2NHoiXX0sdk5lPWFSLHlOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkIixpY29uOls1MTIsNTEyLFsxMjg3MzldLCJmMDE4IiwiTTIyMy45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDEuNCA0MjAuNUMtNi4xIDQ1MC43IDE2LjggNDgwIDQ4IDQ4MGwxNzUuOSAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0IDE3Ni4xIDBjMzEuMiAwIDU0LjEtMjkuMyA0Ni42LTU5LjVMNDI2LjUgODAuNkM0MTkuNCA1Mi4xIDM5My44IDMyIDM2NC4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em02NCAxOTJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LHhOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlyYWwiLGljb246WzUxMiw1MTIsW10sImU4MGEiLCJNMTE1LjUgNy40YzEzLjYtMTEuMyAzMy44LTkuNSA0NS4xIDQuMXM5LjUgMzMuOC00LjEgNDUuMUMxMDAuMiAxMDMuNSA2NCAxNzUuMiA2NCAyNTYgNjQgMzYyIDE1MCA0NDggMjU2IDQ0OHMxOTItODYgMTkyLTE5MmMwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNlMxNzYgMTgwLjkgMTc2IDI1NmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtNDguNiAzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRTMTEyIDMzNS41IDExMiAyNTZjMC0xMTAuNSA4OS41LTIwMCAyMDAtMjAwczIwMCA4OS41IDIwMCAyMDBjMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2QzAgMTU1LjggNDUgNjYuMSAxMTUuNSA3LjR6Il19LGlSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZnJvd24iLGljb246WzUxMiw1MTIsWzk3ODUsImZyb3duIl0sImYxMTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTkwLjYtMTEzLjljLTIwLjQtMjgtNTMuNC00Ni4xLTkwLjYtNDYuMXMtNzAuMiAxOC4xLTkwLjYgNDYuMWMtNy44IDEwLjctMjIuOCAxMy4xLTMzLjUgNS4zcy0xMy4xLTIyLjgtNS4zLTMzLjVDMTU1LjcgMzMwIDIwMi44IDMwNCAyNTYgMzA0czEwMC4zIDI2IDEyOS40IDY1LjljNy44IDEwLjcgNS40IDI1LjctNS4zIDMzLjVzLTI1LjcgNS40LTMzLjUtNS4zek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHdOZT1pUixyUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWdsYXNzLWVtcHR5IixpY29uOlszMjAsNTEyLFsid2luZS1nbGFzcy1hbHQiXSwiZjVjZSIsIk02NCAwQzQ4LjcgMCAzNS42IDEwLjggMzIuNiAyNS43TDMuMiAxNzNDMS4xIDE4My41IDAgMTk0LjIgMCAyMDVsMCAzYzAgNzcuNCA1NSAxNDIgMTI4IDE1Ni44bDAgMTE1LjItNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTExNS4yQzI2NSAzNTAgMzIwIDI4NS40IDMyMCAyMDhsMC0zYzAtMTAuNy0xLjEtMjEuNC0zLjItMzJMMjg3LjQgMjUuN0MyODQuNCAxMC44IDI3MS4zIDAgMjU2IDBMNjQgMHptMS45IDE4NS42TDkwLjIgNjQgMjI5LjggNjQgMjU0LjEgMTg1LjZjMS4zIDYuNCAxLjkgMTIuOSAxLjkgMTkuNGwwIDNjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZsMC0zYzAtNi41IC42LTEzIDEuOS0xOS40eiJdfSxNTmU9clIsek5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsYXBwZXJib2FyZCIsaWNvbjpbNTEyLDUxMixbXSwiZTEzMSIsIk00NDggNjRjMiAwIDMuOSAuMSA1LjggLjNsLTk1LjcgOTUuNyA2Ny45IDAgNzItNzJjOC44IDExIDE0IDI0LjkgMTQgNDBsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw3MC4xIDAtOTYgOTYgNjcuOSAwIDk1LTk1IDEtMSA5Mi4xIDAtOTYgOTYgNjcuOSAwIDk1LTk1IDEtMSA4Ni4xIDB6Il19LHNSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvcndhcmQtc3RlcCIsaWNvbjpbMzg0LDUxMixbInN0ZXAtZm9yd2FyZCJdLCJmMDUxIiwiTTIxIDM2LjhjMTIuOS03IDI4LjctNi4zIDQxIDEuOEwzMjAgMjA4LjEgMzIwIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzODRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQuMS0yNTggMTY5LjZjLTEyLjMgOC4xLTI4IDguOC00MSAxLjhTMCA0NTQuNyAwIDQ0MEwwIDcyQzAgNTcuMyA4LjEgNDMuOCAyMSAzNi44eiJdfSxrTmU9c1IsblI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXVwLXJpZ2h0IixpY29uOls0NDgsNTEyLFs4NTk5LCJleHRlcm5hbC1saW5rLXNxdWFyZS1hbHQiXSwiZjM2MCIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xNjggMTYwYy05LjcgMC0xOC41IDUuOC0yMi4yIDE0LjhzLTEuNyAxOS4zIDUuMiAyNi4ybDM1IDM1LTY3IDY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyNCAyNGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2Ny02NyAzNSAzNWM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzMyMCAzMjEuNyAzMjAgMzEybDAtMTI4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjggMHoiXX0sU05lPW5SLG9SPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stam91cm5hbC13aGlsbHMiLGljb246WzQ0OCw1MTIsWyJqb3VybmFsLXdoaWxscyJdLCJmNjZhIiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0yNzQuMSA5OS4yYzIuNi0yLjYgNi43LTMuMSA5LjktMS4xIDMyLjEgMjAgNTMuNCA1NS42IDUzLjQgOTYuMiAwIDYyLjYtNTAuNyAxMTMuMy0xMTMuMyAxMTMuM1MxMTAuNyAyNTYuOSAxMTAuNyAxOTQuM2MwLTQwLjYgMjEuNC03Ni4yIDUzLjQtOTYuMiAzLjEtMiA3LjItMS41IDkuOSAxLjFzMy4xIDYuNyAxLjIgOS44Yy01LjIgOC42LTguMiAxOC43LTguMiAyOS41IDAgMTUuMSA1LjkgMjguOCAxNS41IDM5LjEgMi41IDIuNyAyLjkgNi43IC45IDkuNy00LjcgNy40LTcuNCAxNi4xLTcuNCAyNS41IDAgMjEuNiAxNC4zIDM5LjkgMzQgNDUuOWwxLTI0LjhjLTcuMS00LjQtMTEuOC0xMi4yLTExLjgtMjEuMSAwLTkuNiA1LjUtMTggMTMuNS0yMi4xbDMuMy04MS44Yy4yLTQuMyAzLjctNy43IDgtNy43czcuOCAzLjQgOCA3LjdsMy4zIDgxLjhjOCA0LjEgMTMuNSAxMi40IDEzLjUgMjIuMSAwIDguOS00LjcgMTYuNy0xMS44IDIxLjFsMSAyNC44YzE5LjYtNiAzMy45LTI0LjEgMzQtNDUuNmwwLS42Yy0uMS05LjMtMi43LTE3LjktNy40LTI1LjItMS45LTMuMS0xLjYtNy4xIC45LTkuNyA5LjYtMTAuMiAxNS41LTIzLjkgMTUuNS0zOS4xIDAtMTAuOC0zLTIwLjktOC4yLTI5LjUtMS45LTMuMi0xLjQtNy4yIDEuMi05Ljh6Il19LENOZT1vUixsUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFtcGFnbmUtZ2xhc3NlcyIsaWNvbjpbNjQwLDUxMixbMTI5MzQ2LCJnbGFzcy1jaGVlcnMiXSwiZjc5ZiIsIk0xNTUuNiAxNy4zQzE2MyAzIDE3OS45LTMuNiAxOTUgMS45bDEyNSA0NS42IDEyNS00NS42YzE1LjEtNS41IDMyIDEuMSAzOS40IDE1LjRsNzguOCAxNTIuOWMyOC44IDU1LjggMTAuMyAxMjIuMy0zOC41IDE1Ni42bDMxLjMgODYuMiA0MS0xNWMxNi42LTYgMzUgMi41IDQxIDE5LjFzLTIuNSAzNS0xOS4xIDQxYy00Ny40IDE3LjMtOTQuOCAzNC41LTE0Mi4yIDUxLjgtMTYuNiA2LjEtMzUtMi41LTQxLTE5LjFzMi41LTM1IDE5LjEtNDFsNDEtMTUtMzEuMy04Ni4yYy01OS40IDUuMi0xMTYuMi0zMy45LTEzMC05NS4ybC0xNC42LTY0LjctMTQuNiA2NC43Yy0xMy44IDYxLjMtNzAuNiAxMDAuNC0xMzAgOTUuMmwtMzEuMyA4Ni4yIDQxIDE1YzE2LjYgNi4xIDI1LjIgMjQuNCAxOS4xIDQxcy0yNC40IDI1LjItNDEgMTkuMWMtNDcuNC0xNy4zLTk0LjgtMzQuNi0xNDIuMi01MS44LTE2LjYtNi4xLTI1LjItMjQuNC0xOS4xLTQxUzI2LjMgMzkyIDQyLjkgMzk4bDQxIDE1IDMxLjMtODYuMkM2Ni41IDI5Mi41IDQ4LjEgMjI2IDc2LjkgMTcwLjJMMTU1LjYgMTcuM3ptNDQgNTQuNGwtMjcuMiA1Mi44IDg5LjIgMzIuNSAxMy4xLTU3LjktNzUuMS0yNy40em0yNDAuOSAwbC03NS4xIDI3LjQgMTMuMSA1Ny45IDg5LjItMzIuNS0yNy4yLTUyLjh6Il19LF9OZT1sUixUTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtcHN0ZXIiLGljb246WzU3Niw1MTIsW10sImY3OTMiLCJNMTMyLjMgNjRMMTA2LjcgMTkyIDI0IDE5MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjFjMC0yLjYgLjQtNS4xIDEuMi03LjZMMjYuNSA4MC40QzI5LjggNzAuNiAzOSA2NCA0OS4zIDY0bDgzIDB6bTIzLjQgMTI4bDI1LjYtMTI4IDgyLjcgMCAwIDEyOC0xMDguMyAwek0zMTIgNjRsODIuNyAwIDI1LjYgMTI4LTEwOC4zIDAgMC0xMjh6bTEzMS43IDBsODMgMGMxMC4zIDAgMTkuNSA2LjYgMjIuOCAxNi40bDI1LjMgNzUuOWMuOCAyLjQgMS4yIDUgMS4yIDcuNmwwIDQuMWMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtODIuNyAwLTI1LjYtMTI4ek0yNS43IDI0MGw1MjQuNyAwYy0uNCAyLjEtMTMuMyA3My40LTM4LjkgMjEzLjctMyAxNi4zLTE3LjkgMjcuNi0zNC40IDI2LjFTNDQ4IDQ2NC42IDQ0OCA0NDhsMC0xNi0zMjAgMCAwIDE2YzAgMTYuNi0xMi42IDMwLjQtMjkuMSAzMS45UzY3LjUgNDcwIDY0LjUgNDUzLjdDMzkgMzEzLjMgMjYgMjQyLjEgMjUuNyAyNDB6Il19LExOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU1MDEiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNNDMyIDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6Il19LCROZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wdXRlciIsaWNvbjpbNTc2LDUxMixbXSwiZTRlNSIsIk0zNDguOCAzMkMzNDAuNyA0Ni4xIDMzNiA2Mi41IDMzNiA4MGwwIDE2LTI3MiAwIDAgMjI0IDI3MiAwIDAgNjQtMjcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg0LjggMHpNMzM2IDQzMmMwIDE3LjUgNC43IDMzLjkgMTIuOCA0OEwxMjAgNDgwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIxNiAwek00MzIgMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTI0IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNTYgMTQ0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LGNSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbmQtbWFnaWMiLGljb246WzUxMiw1MTIsWyJtYWdpYyJdLCJmMGQwIiwiTTM5OC41IDEyLjJsLTg4LjIgODguMiAxMDEuMyAxMDEuMyA4OC4yLTg4LjJDNTA3LjYgMTA1LjYgNTEyIDk1IDUxMiA4NHMtNC40LTIxLjYtMTIuMi0yOS41TDQ1Ny41IDEyLjJDNDQ5LjYgNC40IDQzOSAwIDQyOCAwcy0yMS42IDQuNC0yOS41IDEyLjJ6TTI3Ni40IDEzNC4zTDEyLjIgMzk4LjVDNC40IDQwNi40IDAgNDE3IDAgNDI4czQuNCAyMS42IDEyLjIgMjkuNWw0Mi4zIDQyLjNDNjIuNCA1MDcuNiA3MyA1MTIgODQgNTEyczIxLjYtNC40IDI5LjUtMTIuMkwzNzcuNyAyMzUuNiAyNzYuNCAxMzQuM3oiXX0sQU5lPWNSLEROZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmFpbiIsaWNvbjpbNTEyLDUxMixbMTI5NTA0XSwiZjVkYyIsIk0xMjAgNTZjMC0zMC45IDI1LjEtNTYgNTYtNTZsMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMjkuOCAwLTU0LjktMjAuNC02Mi00OC0uNyAwLTEuMyAwLTIgMC00NC4yIDAtODAtMzUuOC04MC04MCAwLTE4IDYtMzQuNiAxNi00OC0xOS40LTE0LjYtMzItMzcuOC0zMi02NCAwLTMwLjkgMTcuNi01Ny44IDQzLjItNzEuMS03LjEtMTItMTEuMi0yNi0xMS4yLTQwLjkgMC00NC4yIDM1LjgtODAgODAtODBsMC0yNHptMjcyIDBsMCAyNGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDE1LTQuMSAyOS0xMS4yIDQwLjkgMjUuNyAxMy4zIDQzLjIgNDAuMSA0My4yIDcxLjEgMCAyNi4yLTEyLjYgNDkuNC0zMiA2NCAxMCAxMy40IDE2IDMwIDE2IDQ4IDAgNDQuMi0zNS44IDgwLTgwIDgwLS43IDAtMS4zIDAtMiAwLTcuMSAyNy42LTMyLjIgNDgtNjIgNDhsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6Il19LEVOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmllZmNhc2UtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjQ2OSIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTgwIDE2MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sUE5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLW1lZGljYWwtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTEyIiwiTTMwOS44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTNTAuOCAyNzIgNjQgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk2IDBjLTIxLjItMjkuNS0zNC4zLTY1LjMtMzUuOS0xMDRMMjcyIDQwOGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCAyMCAwYzM0LjktNDguNSA5MS43LTgwIDE1Ni04MCAxMC43IDAgMjEuMSAuOSAzMS4zIDIuNUwzMDkuOCA4LjZ6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxJTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1jb21taXQiLGljb246WzU3Niw1MTIsW10sImYzODYiLCJNMjg4IDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTU2LjgtNDhDNDMwIDM2MSAzNjUuNCA0MTYgMjg4IDQxNlMxNDYgMzYxIDEzMS4yIDI4OEwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTkuMiAwQzE0NiAxNTEgMjEwLjYgOTYgMjg4IDk2czE0MiA1NSAxNTYuOCAxMjhsOTkuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05OS4yIDB6Il19LE5OZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnJlYXN0ZmVlZGluZyIsaWNvbjpbNDQ4LDUxMixbXSwiZTUzYSIsIk0yMjQgMGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpNNDM2LjggMzgyLjhMMzczLjUgNDYyYy0xNi42IDIwLjctNDYuOCAyNC4xLTY3LjUgNy41LTE3LjYtMTQuMS0yMi43LTM4LjEtMTMuNS01Ny43bC0uNy0uMWMtMzguOS01LjYtNzQuMy0yNS4xLTk5LjctNTQuOGwwLTM2LjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OGMwIC44IDAgMS42IC4xIDIuNGwxMDEuNCA1MC43YzIzLjcgMTEuOSAzMy4zIDQwLjcgMjEuNSA2NC40cy00MC43IDMzLjMtNjQuNCAyMS41TDI3LjIgNDI3LjNjLTEuMS0uNS0yLjItMS4xLTMuMy0xLjctNC45LTIuOC05LjItNi40LTEyLjYtMTAuNi00LjYtNS40LTcuOC0xMS43LTkuNi0xOC40LTMuMy0xMi0xLjktMjUuMiA0LjgtMzYuNiAuNi0xLjEgMS4zLTIuMiAyLTMuMkw3NS42IDI1Ni4xYzI2LjctNDAuMSA3MS43LTY0LjEgMTE5LjgtNjQuMWw3NS4yIDBjNDYuNSAwIDkwLjEgMjIuNSAxMTcuMiA2MC4zbDUwLjcgNzAuOWMyLjIgMyA0IDYuMSA1LjUgOS40IDIuOSA2LjcgNC4zIDEzLjggNCAyMC44LS4zIDEwLjYtNC4yIDIxLTExLjIgMjkuNHpNMzIwIDMzMmE0NCA0NCAwIDEgMCAtODggMCA0NCA0NCAwIDEgMCA4OCAweiJdfSxGTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXJheXMiLGljb246WzUxMiw1MTIsW10sImU1NGQiLCJNMzEyLjUgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMzM4LjUgMTMyIDI5OC44IDExMiAyNTYuNSAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNmw0Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek03LjUgN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsODAgODBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxLjUgN0MzMi4xLTIuMyAxNi45LTIuMyA3LjUgN3ptNDY0IDBsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMHpNNy41IDUwNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw4MC04MGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC04MCA4MGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjl6bTQ2NCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODAtODBjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsODAgODB6Il19LE9OZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYW5hdC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWQ1IiwiTTE5MiAzMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MS41QzczLjMgMTA5LjMgMCAxOTAuMSAwIDI4OEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtNjIuNSA0NC44LTExNC41IDEwNC0xMjUuOEwxNjggNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yOTMuOGM1OS4yIDExLjIgMTA0IDYzLjMgMTA0IDEyNS44bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC05Ny45LTczLjMtMTc4LjctMTY4LTE5MC41TDIxNiA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sZFI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ydCIsaWNvbjpbMzg0LDUxMixbInVuc29ydGVkIl0sImYwZGMiLCJNMi40IDIwNC4yYzUgMTIgMTYuNiAxOS44IDI5LjYgMTkuOGwzMjAgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0Ljl6bTAgMTAzLjVjLTUgMTItMi4yIDI1LjcgNi45IDM0LjlsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHoiXX0sUk5lPWRSLHBSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yYWRpYXRpb24iLGljb246WzUxMiw1MTIsWzk3NjIsInJhZGlhdGlvbi1hbHQiXSwiZjdiYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem04MCAwbDY0LjMgMGM4LjcgMCAxNS43LTcuMSAxNy4zLTE1LjYgNC40LTI0LjQgMTguMS00NS41IDM3LjItNTkuNyA3LjQtNS41IDEwLjYtMTUuNiA2LTIzLjZsLTMyLjUtNTYuM2MtNC4zLTcuNS0xMy45LTEwLjMtMjEuMi01LjUtNDguMiAzMS41LTgxLjMgODQuMi04Ni4zIDE0NC44LS43IDguOCA2LjUgMTYgMTUuMyAxNnptMTM3LjkgODkuOGMtOC41LTMuNy0xOC44LTEuNC0yMy41IDYuNmwtMzEgNTMuOGMtNC4zIDcuNS0xLjkgMTcuMiA1LjggMjEuMSAyNi4xIDEzLjIgNTUuNSAyMC43IDg2LjggMjAuN3M2MC43LTcuNSA4Ni44LTIwLjdjNy43LTMuOSAxMC4xLTEzLjYgNS44LTIxLjFsLTMxLTUzLjhjLTQuNi04LTE1LTEwLjMtMjMuNS02LjYtMTEuNyA1LTI0LjUgNy44LTM4LjEgNy44cy0yNi40LTIuOC0zOC4xLTcuOHpNMzUwLjQgMjQwLjRjMS42IDguNiA4LjUgMTUuNiAxNy4zIDE1LjZsNjQuMyAwYzguOCAwIDE2LjEtNy4yIDE1LjMtMTYtNS02MC42LTM4LjEtMTEzLjItODYuMy0xNDQuOC03LjMtNC44LTE2LjgtMi0yMS4yIDUuNUwzMDcuMyAxNTdjLTQuNiA4LTEuNCAxOC4xIDYgMjMuNiAxOS4xIDE0LjIgMzIuNyAzNS40IDM3LjIgNTkuN3pNMjU2IDMwNS43YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sQk5lPXBSLEhOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtY29kZSIsaWNvbjpbNjQwLDUxMixbXSwiZjVmYyIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MC02NCAwIDAtMjQwLTM4NCAwIDAgMjQwLTY0IDAgMC0yNDB6TTAgNDAzLjJDMCAzOTIuNiA4LjYgMzg0IDE5LjIgMzg0bDYwMS42IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMiAwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEw3Ni44IDQ4MEMzNC40IDQ4MCAwIDQ0NS42IDAgNDAzLjJ6TTI4MSAyMDlsLTMxIDMxIDMxIDMxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ4LTQ4Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw0OC00OGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6TTM5MyAxNzVsNDggNDhjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6Il19LHFOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5rIixpY29uOls1MTIsNTEyLFtdLCJlMDZkIiwiTTI4OCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyIDE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDE5Mi02NCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC04MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgNjRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTgwIDAgMC00MGMwLTQuNCAzLjYtOCA4LThsNTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTYgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA0MC02NCAwIDAtMTkyeiJdfSxWTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtZnJvbS13YXRlci1wdW1wIixpY29uOls2NDAsNTEyLFtdLCJlNGI2IiwiTTE0NCAzMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNzYtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA3OS42YzE3LjYtMiAzNiAyLjUgNTEuMyAxNCAzLjQgMi42IDYuMSAxLjQgOS44LS4zbC44LS40YzUuNy0yLjYgMTIuOS02LjkgMjEuNy0xMy41IDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuMy0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgNi45IDUuMiAxMi44IDkgMTggMTEuNyAuNiAuMyAxLjIgLjYgMS44IDEgNC4yIDIuMyA4LjUgNC42IDEyLjYgMS41IDEwLjctOC4xIDIyLjktMTIuNyAzNS4zLTE0LjFsMC03OS41YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC01NiAwIDAtMTQyLjEgNDcgNDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ5NyAzOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTg4IDg4Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDctNDcgMCAxNDIuMS0xMzYgMCAwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OEwxNDQgMzJ6TTQ3NC42IDQ3Ni4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDgyLjMgMTcuNiA0OTAuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6Il19LGhSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUtbGluZXMtc2xhc2giLGljb246WzU3Niw1MTIsWyJtaWNyb3Bob25lLWFsdC1zbGFzaCJdLCJmNTM5IiwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxNTEgMTUxIDAtMzAuMmMwLTUzIDQzLTk2IDk2LTk2IDUwLjMgMCA5MS42IDM4LjcgOTUuNyA4OEwzMjggODhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMCAwIDQ4LTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTUuNyAwYy0xLjkgMjIuOS0xMS44IDQzLjQtMjYuOSA1OWwzMy45IDMzLjljMjUuNS0yNiA0MS4zLTYxLjYgNDEuMy0xMDAuOWwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDUyLjYtMjEuMSAxMDAuMi01NS4zIDEzNC44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45ek0yOTcuOCAzNjcuN2w0MS40IDQxLjRjLTguOCAyLjQtMTcuOSA0LjMtMjcuMyA1LjRsMCA0OS41IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OS41QzE2OS4zIDQwMi43IDk2IDMyMS45IDk2IDIyNGwwLTQwYzAtNS4xIDEuNi05LjkgNC40LTEzLjhsNDMuNiA0My42IDAgMTAuMmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NCAzLjMgMCA2LjYtLjEgOS44LS4zeiJdfSxqTmU9aFIsVU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlcnZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptMjE2IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNTYgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMjg4em0yMTYgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em01NiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxibT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMCAwLTI0MCAxMjAgMTIwIDAgMSAwIDAgMjQwem0tMjkuNyA1NkM5NS44IDMwNCAxNiAzODMuOCAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwzNTYuNiAwYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43IDAtOTguNS03OS44LTE3OC4zLTE3OC4zLTE3OC4zbC01OS40IDB6Il19LFdOZT1ibSxHTmU9Ym0sWU5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNub3dmbGFrZSIsaWNvbjpbNTEyLDUxMixbMTAwNTIsMTAwNTRdLCJmMmRjIiwiTTI4OC4yIDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2Mi4xLTE1LTE1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDQ5IDQ5IDAgNzAuNi02MS4yLTM1LjMtMTcuOS02Ni45Yy0zLjQtMTIuOC0xNi42LTIwLjQtMjkuNC0xN1M5NS4zIDk4IDk4LjcgMTEwLjhsNS41IDIwLjUtNTMuNy0zMUMzNS4yIDkxLjUgMTUuNiA5Ni43IDYuOCAxMTJzLTMuNiAzNC45IDExLjcgNDMuN2w1My43IDMxLTIwLjUgNS41Yy0xMi44IDMuNC0yMC40IDE2LjYtMTcgMjkuNHMxNi42IDIwLjQgMjkuNCAxN2w2Ni45LTE3LjkgNjEuMiAzNS4zLTYxLjIgMzUuMy02Ni45LTE3LjljLTEyLjgtMy40LTI2IDQuMi0yOS40IDE3czQuMiAyNiAxNyAyOS40bDIwLjUgNS41LTUzLjcgMzFDMy4yIDM2NS4xLTIgMzg0LjcgNi44IDQwMHMyOC40IDIwLjYgNDMuNyAxMS43bDUzLjctMzEtNS41IDIwLjVjLTMuNCAxMi44IDQuMiAyNiAxNyAyOS40czI2LTQuMiAyOS40LTE3bDE3LjktNjYuOSA2MS4yLTM1LjMgMCA3MC42LTQ5IDQ5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMTUtMTUgMCA2Mi4xYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02Mi4xIDE1IDE1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDktNDkgMC03MC42IDYxLjIgMzUuMyAxNy45IDY2LjljMy40IDEyLjggMTYuNiAyMC40IDI5LjQgMTdzMjAuNC0xNi42IDE3LTI5LjRsLTUuNS0yMC41IDUzLjcgMzFjMTUuMyA4LjggMzQuOSAzLjYgNDMuNy0xMS43czMuNi0zNC45LTExLjctNDMuN2wtNTMuNy0zMSAyMC41LTUuNWMxMi44LTMuNCAyMC40LTE2LjYgMTctMjkuNHMtMTYuNi0yMC40LTI5LjQtMTdsLTY2LjkgMTcuOS02MS4yLTM1LjMgNjEuMi0zNS4zIDY2LjkgMTcuOWMxMi44IDMuNCAyNi00LjIgMjkuNC0xN3MtNC4yLTI2LTE3LTI5LjRsLTIwLjUtNS41IDUzLjctMzFjMTUuMy04LjggMjAuNi0yOC40IDExLjctNDMuN3MtMjguNC0yMC41LTQzLjctMTEuN2wtNTMuNyAzMSA1LjUtMjAuNWMzLjQtMTIuOC00LjItMjYtMTctMjkuNHMtMjYgNC4yLTI5LjQgMTdsLTE3LjkgNjYuOS02MS4yIDM1LjMgMC03MC42IDQ5LTQ5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTE1IDE1IDAtNjIuMXoiXX0sWk5lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhdXJ1cyIsaWNvbjpbMzg0LDUxMixbXSwiZTg0ZiIsIk0zMzYtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCA1OC41LTI4LjYgMTEwLjMtNzIuNSAxNDIuMyA1My4yIDM0LjEgODguNSA5My44IDg4LjUgMTYxLjcgMCAxMDYtODYgMTkyLTE5MiAxOTJTMCA0MjYgMCAzMjBDMCAyNTIuMSAzNS4zIDE5Mi40IDg4LjUgMTU4LjMgNDQuNiAxMjYuMyAxNiA3NC41IDE2IDE2IDE2LTEuNyAzMC4zLTE2IDQ4LTE2UzgwLTEuNyA4MCAxNmMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMlMzMDQgNzcuOSAzMDQgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE5MiAxOTJhMTI4IDEyOCAwIDEgMCAwIDI1NiAxMjggMTI4IDAgMSAwIDAtMjU2eiJdfSxYTmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2t1bGwtY3Jvc3Nib25lcyIsaWNvbjpbNDQ4LDUxMixbMTI4MzY5LDk3NjBdLCJmNzE0IiwiTTM4NCAxNDRDMzg0IDY0LjUgMzEyLjQgMCAyMjQgMFM2NCA2NC41IDY0IDE0NGMwIDQ3LjEgMjUuMSA4OC45IDY0IDExNS4ybDAgMjguOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4LjhjMzguOS0yNi4zIDY0LTY4LjEgNjQtMTE1LjJ6TTE2MCAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDUuNSAzMzkuN2MtNi44LTE2LjMtMjUuNS0yNC00MS44LTE3LjJMMjI0IDM5Ny4zIDQ0LjMgMzIyLjVjLTE2LjMtNi44LTM1IC45LTQxLjggMTcuMnMuOSAzNSAxNy4yIDQxLjhMMTQwLjggNDMyIDE5LjcgNDgyLjVDMy40IDQ4OS4zLTQuMyA1MDggMi41IDUyNC4zczI1LjUgMjQgNDEuOCAxNy4yTDIyNCA0NjYuNyA0MDMuNyA1NDEuNWMxNi4zIDYuOCAzNS0uOSA0MS44LTE3LjJzLS45LTM1LTE3LjItNDEuOEwzMDcuMiA0MzIgNDI4LjMgMzgxLjVjMTYuMy02LjggMjQtMjUuNSAxNy4yLTQxLjh6Il19LEtOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXNvLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjIiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDY0LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDMyLTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgOTYgMGM2NS42IDAgMTIyLTM5LjUgMTQ2LjctOTZsMzcuMyAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNC44IDBjLjUtNS4zIC44LTEwLjYgLjgtMTZzLS4zLTEwLjctLjgtMTZsMjQuOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zNy4zIDBDMzYyIDcxLjUgMzA1LjYgMzIgMjQwIDMyTDExMiAzMnptMTk5LjYgOTZsLTE2Ny42IDAgMC0zMiA5NiAwYzI4LjQgMCA1NCAxMi40IDcxLjYgMzJ6TTE0NCAxNzZsMTkwLjcgMGMuOSA1LjIgMS4zIDEwLjUgMS4zIDE2cy0uNSAxMC44LTEuMyAxNmwtMTkwLjcgMCAwLTMyem0xNjcuNiA4MGMtMTcuNiAxOS42LTQzLjEgMzItNzEuNiAzMmwtOTYgMCAwLTMyIDE2Ny42IDB6Il19LFFOZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5lLWdsYXNzIixpY29uOlszMjAsNTEyLFsxMjc4NjNdLCJmNGUzIiwiTTMyLjYgMjUuN0MzNS42IDEwLjggNDguNyAwIDY0IDBMMjU2IDBjMTUuMyAwIDI4LjQgMTAuOCAzMS40IDI1LjdMMzE2LjggMTczYzIuMSAxMC41IDMuMiAyMS4yIDMuMiAzMmwwIDNjMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAxMTUuMiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTE1LjJDNTUgMzUwIDAgMjg1LjQgMCAyMDhsMC0zYzAtMTAuNyAxLjEtMjEuNCAzLjItMzJMMzIuNiAyNS43ek03Ny40IDEyOGwxNjUuMSAwLTEyLjgtNjQtMTM5LjUgMC0xMi44IDY0eiJdfSxXNT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1oYWxmIixpY29uOlszMjAsNTEyLFsxMjc3NzcsInRlbXBlcmF0dXJlLTIiLCJ0aGVybW9tZXRlci0yIiwidGhlcm1vbWV0ZXItaGFsZiJdLCJmMmM5IiwiTTE2MCAwQzEwNyAwIDY0IDQzIDY0IDk2bDAgMTY0LjdDMzQuNSAyODcgMTYgMzI1LjQgMTYgMzY4IDE2IDQ0Ny41IDgwLjUgNTEyIDE2MCA1MTJzMTQ0LTY0LjUgMTQ0LTE0NGMwLTQyLjYtMTguNS04MS00OC0xMDcuM0wyNTYgOTZjMC01My00My05Ni05Ni05NnptNjQgMzY4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYuOSAxNi41LTQ5LjkgNDAtNTkuM2wwLTkyLjdjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDkyLjdjMjMuNSA5LjUgNDAgMzIuNSA0MCA1OS4zeiJdfSxKTmU9VzUsZUZlPVc1LHRGZT1XNSxhRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGlja2V0IixpY29uOls1NzYsNTEyLFsxMjc5MDNdLCJmMTQ1IiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNjRDMCAyMDAuOCA3LjQgMjA3LjcgMTUuNyAyMTAuNiAzNC41IDIxNy4xIDQ4IDIzNSA0OCAyNTZzLTEzLjUgMzguOS0zMi4zIDQ1LjRDNy40IDMwNC4zIDAgMzExLjIgMCAzMjBsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtOC44LTcuNC0xNS43LTE1LjctMTguNi0xOC44LTYuNS0zMi4zLTI0LjQtMzIuMy00NS40czEzLjUtMzguOSAzMi4zLTQ1LjRjOC4zLTIuOSAxNS43LTkuOCAxNS43LTE4LjZsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNDE2IDMzNmwwLTE2MC0yNTYgMCAwIDE2MCAyNTYgMHpNMTEyIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyeiJdfSxpRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlYXQtYXduLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU5OCIsIk00OTYgNTc2YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNODEgNTI5Yy05LjQgOS4zLTI0LjUgOS4zLTMzLjkgMC05LjQtOS40LTkuNC0yNC42IDAtMzMuOUw4MSA1Mjl6bTMwLjItMjk0LjRjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWw0Ni4xIDQ2LjEgNi4xIDYuN2MxOS43IDIzLjggMjYuMyA1NSAxOS4zIDgzLjkgMzEuNy03LjcgNjYuMiAxIDkwLjYgMjUuM2wxMiAxMmMtLjggNy0xLjIgMTQuMi0xLjIgMjEuNCAwIDIwIDMgMzkuMyA4LjcgNTcuNC0zNi44IDIxLjgtODUgMTctMTE2LjYtMTQuN0wxNjUuNiA0NDQuMyA4MSA1MjlDNjkuNyA1MTcuNyA1OC40IDUwNi4zIDQ3IDQ5NWw4NC43LTg0LjctMzAuNS0zMC41Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xek00OTYgNDc2YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptMC0xNDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNiA4LjggMCAxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6TTIxNS4yIDEzMC42YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMyA4My45IDI0LjItNS45IDUwLjEtMi4xIDcxLjkgMTAuOC0zMi4yIDI0LjktNTYuMiA1OS44LTY3LjQgMTAwLjEtMy44LTIuOC03LjUtNi0xMS05LjVsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNTI2LjcgMTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDAgOC44IDguOCA5LjMgMjIuNyAxLjcgMzIuMUw1NjAuNiA0OSA0NDYuMiAxNjMuNGM3LjcgMSAxNS4zIDMgMjIuNSA1LjlMNTI3IDExMWM5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01Mi43IDUyLjcgMzkgMzljMy4yIDMuMiA0LjcgNy40IDQuNyAxMS42LTE3LjctNS40LTM2LjUtOC4zLTU1LjktOC4zLTM0LjIgMC02Ni4zIDguOS05NC4xIDI0LjZsLTkyLjctOTIuN2MtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS44bDcuNC03LjQgMi41LTIuMWM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDM5IDM5IDUyLjctNTIuN2M5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMUw0NjUgNDkgNDA2LjcgMTA3LjNjMi44IDcuMSA0LjcgMTQuNSA1LjggMjIuMUw1MjYuNyAxNXoiXX0sckZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy10dXJuLXJpZ2h0IixpY29uOls0NDgsNTEyLFtdLCJlNGMwIiwiTTMxMy40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDMzOC43IDEyOCAxMjggMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgMjQxLjcgMCAyMjRsMC0zMkMwIDEyMS4zIDU3LjMgNjQgMTI4IDY0bDIxMC43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3ptLTk2IDI1NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDM4NCA5NiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OGwwLTMyYzAtNTMgNDMtOTYgOTYtOTZsMTQ2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zeiJdfSxzRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FuZHktY2FuZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4NiIsIk00MjEuOCAzOS42QzQ1MiA4NS4yIDQ1Ni41IDE0Mi45IDQzNS4xIDE5MmwtMTY1LjQgMCA0MS40LTQxLjRjLjgtLjggMS41LTEuNiAyLjItMi40TDQyMS44IDM5LjZ6TTI2OCAxMDIuOWMtLjggLjctMS42IDEuNC0yLjQgMi4ybC0yOC4xIDI4LjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNUwxNzUgMTQuNkMyMjkuOS00MC4yIDMxNC41LTQ2LjcgMzc2LjUtNS42TDI2OCAxMDIuOXpNMTI1LjcgMzM2bDgwLTgwIDE4MSAwLTgyLjUgODIuNSAwLTIuNS0xNzguNSAwem0xMTcgNjRMMTQxLjQgNTAxLjNjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNWwxMC43LTEwLjcgMTgxIDB6Il19LG5GZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGVlbGNoYWlyIixpY29uOls1MTIsNTEyLFtdLCJmMTkzIiwiTTEzNiA0MGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTExNy45IDE5Ny42bDEyLjYgNjNjLTM4LjYgMTIuNC02Ni41IDQ4LjctNjYuNSA5MS40IDAgNTMgNDMgOTYgOTYgOTYgMzUuNiAwIDY2LjctMTkuNCA4My4zLTQ4LjIgMi4zIC4xIDQuNiAuMiA3IC4ybDQuMSAwYzEgMCAyLjEgMCAzLjEgMGw1NS4yIDBjLTIwLjQgNjQuOS04MSAxMTItMTUyLjcgMTEyLTg4LjQgMC0xNjAtNzEuNi0xNjAtMTYwIDAtNzMuOCA1MC0xMzUuOSAxMTcuOS0xNTQuNHptMTQ4LjYtMjguMWwyMy43IDExOC41IDYwLjUgMGMzMy4zIDAgNjMuMiAyMC43IDc0LjkgNTEuOWwyNS41IDY4IDE4LjctNi4yYzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMnMtMy41IDM0LjktMjAuMiA0MC41bC00OCAxNmMtMTYuMyA1LjQtMzQtMy00MC4xLTE5LjFsLTM2LjMtOTYuOWMtMi4zLTYuMi04LjMtMTAuNC0xNS0xMC40bC04Ni4xIDBjLS40IDAtLjggMC0xLjMgMGwtMTMuMSAwYy0zMC41IDAtNTYuOC0yMS41LTYyLjgtNTEuNEwxNjUuMyAxODkuN2MtNi40LTMxLjkgMTgtNjEuNyA1MC42LTYxLjcgMjQuNiAwIDQ1LjggMTcuNCA1MC42IDQxLjV6Il19LG9GZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGVsbC1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZjg5MSIsIk0xMjAgMzJjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2OGMwLTQ4LjYtMzkuNC04OC04OC04OGwtMTYgMHptNDAgMTI4bC02NCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwek0zMDQgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDcyIDBjNDguNiAwIDg4LTM5LjQgODgtODggMC0yMy42LTkuMy00NS0yNC40LTYwLjggMTAuMy0xNC40IDE2LjQtMzIuMSAxNi40LTUxLjIgMC00OC42LTM5LjQtODgtODgtODhsLTY0IDB6bTY0IDExMmwtMzIgMCAwLTQ4IDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6TTMzNiAyNTZsMC00OCA0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwem0yMzMgODRjMTEtMTMuOCA4LjgtMzMuOS01LTQ1cy0zMy45LTguOC00NSA1bC0xMDUuNyAxMzIuMS0zOC43LTM4LjdjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzYuNCA2LjQgMTUuMyA5LjggMjQuNCA5LjNzMTcuNS00LjkgMjMuMi0xMkw1NjkgMzQweiJdfSxsRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLW9mZiIsaWNvbjpbMzIwLDUxMixbXSwiZjAyNiIsIk05NiAzNTJsLTQ4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDhsNDggMCAxMzQuMS0xMTkuMmM2LjQtNS43IDE0LjYtOC44IDIzLjEtOC44IDE5LjIgMCAzNC44IDE1LjYgMzQuOCAzNC44bDAgMzc4LjRjMCAxOS4yLTE1LjYgMzQuOC0zNC44IDM0LjgtOC41IDAtMTYuNy0zLjEtMjMuMS04LjhMOTYgMzUyeiJdfSxjRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibHVuZ3MiLGljb246WzU3Niw1MTIsWzEyOTcyOV0sImY2MDQiLCJNMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTQxLjktMzIgMTkuMiAwLTExNi43YzAtMjQuNS0xOS45LTQ0LjQtNDQuNC00NC40LTEyLjUgMC0yNC40IDUuMy0zMi44IDE0LjVsLTI2LjQgMjlDNDIuOSAxNjAuOCAwIDI3MS44IDAgMzg3bDAgMzAuNWMwIDUyLjIgNDIuMyA5NC41IDk0LjUgOTQuNSAyMiAwIDQzLjctNS4xIDYzLjQtMTVsNS0yLjVjMzcuNC0xOC43IDYxLTU2LjkgNjEtOTguOGwwLTEyOCA2NC0zOC40IDY0IDM4LjQgMCAxMjhjMCA0MS44IDIzLjYgODAuMSA2MSA5OC44bDUgMi41YzE5LjcgOS44IDQxLjQgMTUgNjMuNCAxNSA1Mi4yIDAgOTQuNS00Mi4zIDk0LjUtOTQuNWwwLTYuMmMwLTExMS4xLTM2LjctMjE5LTEwNC40LTMwN0w0MjguOSA0OC43Yy04LjEtMTAuNi0yMC43LTE2LjctMzQtMTYuNy0yMy43IDAtNDIuOSAxOS4yLTQyLjkgNDIuOWwwIDExOC4yLTMyLTE5LjIgMC0xNDEuOXoiXX0sZEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2ttYXJrIixpY29uOlszODQsNTEyLFsxMjgyNzgsNjE1OTFdLCJmMDJlIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDgwYzAgMTEuNSA2LjIgMjIuMiAxNi4yIDI3LjhzMjIuMyA1LjUgMzIuMi0uNEwxOTIgNDIxLjMgMzM1LjUgNTA3LjRjOS45IDUuOSAyMi4yIDYuMSAzMi4yIC40UzM4NCA0OTEuNSAzODQgNDgwbDAtNDE2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6Il19LHBGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXJjb2RlIixpY29uOls0NDgsNTEyLFtdLCJmMDJhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkw2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptODggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptNzIgMzJsMCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnptMjA4LThsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptLTk2IDBsMCA0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHoiXX0sdm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdC1vbCIsaWNvbjpbNTEyLDUxMixbImxpc3QtMS0yIiwibGlzdC1udW1lcmljIl0sImYwY2IiLCJNMCA3MkMwIDU4LjggMTAuNyA0OCAyNCA0OGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTk2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTgwLTI0IDBDMTAuNyA5NiAwIDg1LjMgMCA3MnpNMzAuNCAzMDEuMkM0MS44IDI5Mi42IDU1LjcgMjg4IDcwIDI4OGw0LjkgMGMzMy43IDAgNjEuMSAyNy40IDYxLjEgNjEuMSAwIDE5LjYtOS40IDM3LjktMjUuMiA0OS40bC0yNCAxNy41IDMzLjIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTAuNyAwQzEzLjEgNDY0IDAgNDUwLjkgMCA0MzQuNyAwIDQyNS4zIDQuNSA0MTYuNSAxMi4xIDQxMWw3MC41LTUxLjNjMy40LTIuNSA1LjQtNi40IDUuNC0xMC42IDAtNy4yLTUuOS0xMy4xLTEzLjEtMTMuMUw3MCAzMzZjLTMuOSAwLTcuNyAxLjMtMTAuOCAzLjZMMzguNCAzNTUuMmMtMTAuNiA4LTI1LjYgNS44LTMzLjYtNC44Uy0xIDMyNC44IDkuNiAzMTYuOGwyMC44LTE1LjZ6TTIyNCA2NGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxNjBsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxoRmU9dm0sdUZlPXZtLGZGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTVhMSIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxtRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3ViZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFiMiIsIk0yMjQuMy0yLjVjMTkuOC0xMS40IDQ0LjItMTEuNCA2NCAwTDQ2NC4yIDk5YzE5LjggMTEuNCAzMiAzMi42IDMyIDU1LjRsMCAyMDNjMCAyMi45LTEyLjIgNDQtMzIgNTUuNEwyODguMyA1MTQuNWMtMTkuOCAxMS40LTQ0LjIgMTEuNC02NCAwTDQ4LjUgNDEzYy0xOS44LTExLjQtMzItMzIuNi0zMi01NS40bDAtMjAzYzAtMjIuOSAxMi4yLTQ0IDMyLTU1LjRMMjI0LjMtMi41em0yMDcuOCAzNjBsMC0xNjYuMS0xNDMuOCA4MyAwIDE2Ni4xIDE0My44LTgzeiJdfSxnRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFwZSIsaWNvbjpbNTc2LDUxMixbXSwiZjRkYiIsIk00MTIuOCA0MTZjNDEuNS00MC43IDY3LjItOTcuMyA2Ny4yLTE2MCAwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0UzMyIDEzMi4zIDMyIDI1NiAxMzIuMyA0ODAgMjU2IDQ4MGwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTMxLjIgMHpNMjU2IDE2MGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptNDggOTZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sYkZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbWIiLGljb246WzU3Niw1MTIsWzEyODE2M10sImYxZTIiLCJNNDgwLTE2YzYuOSAwIDEzIDQuNCAxNS4yIDEwLjlsMTMuNSA0MC40IDQwLjQgMTMuNUM1NTUuNiA1MSA1NjAgNTcuMSA1NjAgNjRzLTQuNCAxMy0xMC45IDE1LjJsLTQwLjQgMTMuNS0xMy41IDQwLjRDNDkzIDEzOS42IDQ4Ni45IDE0NCA0ODAgMTQ0cy0xMy00LjQtMTUuMi0xMC45bC0xMy41LTQwLjQtNDAuNC0xMy41QzQwNC40IDc3IDQwMCA3MC45IDQwMCA2NHM0LjQtMTMgMTAuOS0xNS4ybDQwLjQtMTMuNSAxMy41LTQwLjRDNDY3LTExLjYgNDczLjEtMTYgNDgwLTE2ek0zMjEuNCA5Ny40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDgwIDgwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xMC45IDEwLjljNy45IDIyIDEyLjIgNDUuNyAxMi4yIDcwLjUgMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzMyIDQxOC45IDMyIDMwNCAxMjUuMSA5NiAyNDAgOTZjMjQuNyAwIDQ4LjUgNC4zIDcwLjUgMTIuM2wxMC45LTEwLjl6TTE0NCAzMDRjMC01MyA0My05NiA5Ni05NiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHoiXX0sdVI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NhbGUtdW5iYWxhbmNlZCIsaWNvbjpbNjQwLDUxMixbImJhbGFuY2Utc2NhbGUtbGVmdCJdLCJmNTE1IiwiTTUxOS44IDYyLjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNVM1MTYuMy0zLjkgNDk5LjYgMS42bC0xMTMgMzcuN2MtMTMuOS0yMy41LTM5LjYtMzkuMy02OC45LTM5LjMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCAzIC4yIDUuOSAuNSA4LjhMMTE1LjYgMTI5LjZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmwxMzUuNS00NS4yYzQuNSAzLjIgOS4zIDUuOSAxNC40IDguMmwwIDMyNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTI5NC43YzIxLTkuMiAzNy4yLTI3IDQ0LjItNDlsMTI1LjktNDJ6TTQzNy4zIDI4OGw3Mi40LTEyNC4yIDcyLjQgMTI0LjItMTQ0LjkgMHptNzIuNCA5NmM2Mi45IDAgMTE1LjItMzQgMTI2LTc4LjkgMi42LTExLTEtMjIuMy02LjctMzIuMUw1MzMuOCAxMDkuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDM5MC40IDI3My4xYy01LjcgOS44LTkuMyAyMS4xLTYuNyAzMi4xIDEwLjggNDQuOCA2My4xIDc4LjkgMTI2IDc4Ljl6TTEyNi44IDI5MS44bDcyLjQgMTI0LjItMTQ0LjkgMCA3Mi40LTEyNC4yek0uOSA0MzMuMUMxMS43IDQ3OCA2NCA1MTIgMTI2LjggNTEyczExNS4yLTM0IDEyNi03OC45YzIuNi0xMS0xLTIyLjMtNi43LTMyLjFMMTUwLjkgMjM3LjhjLTUtOC42LTE0LjItMTMuOC0yNC4xLTEzLjhzLTE5LjEgNS4zLTI0LjEgMTMuOEw3LjYgNDAxLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjF6Il19LHZGZT11UixmUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1sZWZ0Il0sImYxOTEiLCJNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNnpNMTI4IDI1NmMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNFMyODggMTQyLjUgMjg4IDE1MmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnoiXX0seUZlPWZSLHhGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlciIsaWNvbjpbNTc2LDUxMixbMTI4MjA3XSwiZjU0NSIsIk0yMDkuMSA1MTYuMmMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjguMSA0MDMuMWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlsMTctMTcgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDMzLjktMzMuOSA1MC45IDUwLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01MC45LTUwLjkgMzMuOS0zMy45IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAzMy45LTMzLjkgNTAuOSA1MC45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTAuOS01MC45IDMzLjktMzMuOSA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMTctMTdjMTguNy0xOC43IDQ5LjEtMTguNyA2Ny45IDBMNTQ4LjUgMTA4LjljMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMjA5LjEgNTE2LjJ6Il19LHdGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpIixpY29uOlszMjAsNTEyLFsxMDVdLCI0OSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOTYgMCAwIDMyMC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwIDAtMzIwIDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LHltPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZS14bWFyayIsaWNvbjpbNTc2LDUxMixbInZvbHVtZS1tdXRlIiwidm9sdW1lLXRpbWVzIl0sImY2YTkiLCJNNDggMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDk2IDE2MCA0OCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6TTM2NyAxNzVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDQ3IDQ3LTQ3IDQ3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDctNDcgNDcgNDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00Ny00NyA0Ny00N2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC00NyA0Ny00Ny00N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6Il19LE1GZT15bSx6RmU9eW0sa0ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFyY2h3YXkiLGljb246WzUxMiw1MTIsW10sImY1NTciLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyem0wIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMCAwLTEyOGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTI4IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMjcyLTQ0OCAwIDAgMjcyeiJdfSxtUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZGlnZ2luZyIsaWNvbjpbNTc2LDUxMixbImRpZ2dpbmciXSwiZjg1ZSIsIk0yMDggNDBhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMC41IDE4MS4zYzUuOS0xMS45IDIwLjMtMTYuNyAzMi4yLTEwLjdsMjQuNiAxMi4zIDEyLjItMjAuNGMxOC45LTMxLjUgNTMuMi01MC41IDg5LjYtNTAuNSA0Ni4yIDAgODcuNyAzMC41IDEwMC41IDc1LjRsMzIuMiAxMTIuNyA5Mi45IDQ2LjQgMjUuOC00M2M1LjgtOS42IDE2LjItMTUuNSAyNy40LTE1LjVzMjEuNyA1LjkgMjcuNCAxNS41bDk2IDE2MGM1LjkgOS45IDYuMSAyMi4yIC40IDMyLjJTNTU1LjUgNTEyIDU0NCA1MTJsLTE5MiAwYy0xMS41IDAtMjIuMi02LjItMjcuOC0xNi4ycy01LjUtMjIuMyAuNC0zMi4yTDM3MCAzODcuOCAyMS4zIDIxMy41Yy0xMS45LTUuOS0xNi43LTIwLjMtMTAuNy0zMi4yek05NC4zIDMwNy40bDExMiA1NmMxMC44IDUuNCAxNy43IDE2LjUgMTcuNyAyOC42bDAgODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OC4yLTYxLjMtMzAuNy0zNi4zIDEwOWMtNS42IDE2LjgtMjMuNyAyNS44LTQwLjUgMjAuMlMtMy45IDQ4Ni42IDEuNyA0NjkuOWw0OC0xNDRjMi45LTguOCA5LjUtMTUuOSAxOC4xLTE5LjRzMTguMy0zLjIgMjYuNiAuOXoiXX0sU0ZlPW1SLHhtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdWdlLWhpZ2giLGljb246WzUxMiw1MTIsWzYyNDYxLCJ0YWNob21ldGVyLWFsdCIsInRhY2hvbWV0ZXItYWx0LWZhc3QiXSwiZjYyNSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0yODggOTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMjU2IDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTE2LjItNi0zMS4xLTE2LTQyLjNsNjkuNS0xMzguOWM1LjktMTEuOSAxLjEtMjYuMy0xMC43LTMyLjJzLTI2LjMtMS4xLTMyLjIgMTAuN0wyNjEuMSAyODguMmMtMS43LS4xLTMuNC0uMi01LjEtLjItMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NHpNMTc2IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05NiAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zNTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sQ0ZlPXhtLF9GZT14bSxURmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VuZGVybGVzcyIsaWNvbjpbMzg0LDUxMixbXSwiZjIyZCIsIk0xOTIgMTI4YTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnptMCAzMjBhMTkyIDE5MiAwIDEgMCAwLTM4NCAxOTIgMTkyIDAgMSAwIDAgMzg0eiJdfSxMRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtc3VuIixpY29uOls2NDAsNTEyLFs5OTI1XSwiZjZjNCIsIk0yMDguMyAxOTJjNDMuMSAwIDgwLjUgMjQuNCA5OS4yIDYwLjEgMTQuNy0xNy4yIDM2LjQtMjguMSA2MC44LTI4LjEgNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOS0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMzIwIDBjLTUzIDAtOTYtNDMtOTYtOTYgMC00Mi41IDI3LjctNzguNSA2Ni05MS4yLTEuMy02LjgtMi0xMy43LTItMjAuOCAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnptMTkyLTIyMy44YzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xbDQ3LjMgNzAuNCA4My4zLTE2LjNjNS4yLTEgMTAuNiAuNyAxNC4zIDQuNCAzLjggMy44IDUuNCA5LjIgNC40IDE0LjRsLTE2LjMgODMuMyA3MC40IDQ3LjNjNC40IDMgNy4xIDggNy4xIDEzLjMgMCA1LjMtMi42IDEwLjMtNyAxMy4ybC03MC40IDQ3LjMgMTQuNSA3NC4yYy0xNy4yLTIxLjctNDAuNC0zOC40LTY3LjItNDcuMy0yLjUtMTIuNy02LjktMjQuNi0xMi44LTM1LjcgOS42LTE0LjkgMTUuMi0zMi43IDE1LjItNTEuNyAwLTUzLTQzLTk2LTk2LTk2LTQ3LjkgMC04Ny42IDM1LjEtOTQuOCA4MC45LTIwLjktMTYtNDUuOS0yNy03My4xLTMxLjFsMjEuNS0xNC41LTE2LjMtODMuMi0uMy0yYy0uMy00LjYgMS4zLTkuMSA0LjYtMTIuNCAzLjgtMy44IDkuMi01LjQgMTQuNC00LjRsODMuMyAxNi4zIDQ3LjMtNzAuNCAxLjItMS42YzMtMy41IDcuNC01LjUgMTIuMS01LjV6bTAgMTc1LjhjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAzLjgtLjUgNy42LTEuNCAxMS4xLTIxLjctMTYuOS00OC45LTI3LjEtNzguNi0yNy4xLTQuNiAwLTkuMSAuMi0xMy41IC43IDYuNC0xOSAyNC4zLTMyLjcgNDUuNS0zMi43eiJdfSxsZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbODU5NF0sImYwNjEiLCJNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzcwLjcgMC0xMDUuNCAxMDUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYweiJdfSx3bT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzU3Niw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk0yNjguOSA4NS4yTDE1Mi4zIDIxNC44Yy00LjYgNS4xLTQuNCAxMyAuNSAxNy45IDMwLjUgMzAuNSA4MCAzMC41IDExMC41IDBsMzEuOC0zMS44YzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMXpNMTE2LjYgMTgyLjdMMjIzLjQgNjQgMTgzLjggNjRjLTI1LjUgMC00OS45IDEwLjEtNjcuOSAyOC4xTDExMiA5NiAwIDMyIDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMxOS4xIDAgMzcuOC00LjMgNTQuOC0xMi4zTDM1OSA0NDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMiAzMiAxNy41LTE3LjVjOC45LTguOSAxMS41LTIxLjggNy42LTMzLjFsLTEzNy45LTEzNi44LTE0LjkgMTQuOWMtNDkuMyA0OS4zLTEyOS4xIDQ5LjMtMTc4LjQgMC0yMy0yMy0yMy45LTU5LjktMi4yLTg0eiJdfSwkRmU9d20sQUZlPXdtLGdSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1za2lpbmciLGljb246WzU3Niw1MTIsWzk5NzUsInNraWluZyJdLCJmN2M5IiwiTTQxNiA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTIuNyAzMDAuOWM2LjEtMTEuOCAyMC42LTE2LjMgMzIuNC0xMC4ybDE5Ny44IDEwMi43IDYyLjMtODcuMi04Mi05Mi4yYy0xMS0xMi40LTE2LjItMjcuNS0xNi4yLTQyLjRsMTExLjYgNTMuNCA0Mi45IDQ4LjJjMTQuOSAxNi43IDE2LjIgNDEuNiAzLjIgNTkuOGwtNjQuNCA5MC4yIDEyOC4zIDY2LjZjMTMuNiA3LjEgMjkuOCA3LjIgNDMuNiAuM2wxNS4yLTcuNmMxMS45LTUuOSAyNi4zLTEuMSAzMi4yIDEwLjdzMS4xIDI2LjMtMTAuNyAzMi4ybC0xNS4yIDcuNmMtMjcuNSAxMy43LTU5LjkgMTMuNS04Ny4yLS43TDEyLjkgMzMzLjNDMS4yIDMyNy4yLTMuNCAzMTIuNyAyLjcgMzAwLjl6TTEwMyA0OS42bDE4IDguNyA4LjctMTcuNGM0LTcuOSAxMy42LTExLjEgMjEuNS03LjJzMTEuMSAxMy42IDcuMiAyMS41bC04LjUgMTcgODQuOCA0MSAuNC0uMiA3Ni4xLTMzLjhjMzEuMy0xMy45IDY3LjktLjcgODMuMiAyOS45bDI4LjkgNTcuOCA2OC43IDI3LjVjMTYuNCA2LjYgMjQuNCAyNS4yIDE3LjggNDEuNnMtMjUuMiAyNC40LTQxLjYgMTcuOEwzOTMuOCAyMjRjLTEwLjktNC40LTE5LjgtMTIuNi0yNS4xLTIzLjFsLTExLjUtMjMuMWMtMTYuNCA5LjQtMjUuOSAxNC44LTI4LjUgMTYuM2wtNy42LTMuNy0xODUuNi04OS42LTkuMiAxOC4zYy00IDcuOS0xMy42IDExLjEtMjEuNSA3LjJzLTExLjEtMTMuNi03LjItMjEuNWw5LTE3LjktMTcuNi04LjVDODEuMSA3NC42IDc3LjggNjUgODEuNiA1N1M5NSA0NS43IDEwMyA0OS42eiJdfSxERmU9Z1IsRUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRjZSIsIk02NCA2NGw1MTIgMCAwIDExMmMtMzcuNiA5LjQtNjQgNDMuMi02NCA4MmwwIDc2LjRjLTIxLTkuNy00My41LTE0LjUtNjYtMTQuNC0xMCAuMS0yMC4xIDEuMS0zMCAzLjFsMC0zNS4xYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzIuN2MtNS4zLS41LTEwLjctLjgtMTYtLjctMjcuNyAuMi01NS40IDcuOC04MCAyM2wwLTg1YzAtMzguOC0yNi40LTcyLjYtNjQtODJMNjQgNjR6TTQwMy40IDQ0NC4xQzM3OS4xIDQ2Mi4zIDM1MS4xIDQ4MCAzMjAgNDgwcy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sUEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLW5nbyIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNyIsIk0xMjggMEM5Mi43IDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDIwOCAwIDAtMjcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMzA0IDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTUyMCAzODBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTgwYzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0xNiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4MGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwem0tMTY4IDBsMCA4MGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwxNiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtMjRjMC0xMS05LTIwLTIwLTIwbC04IDBjLTExIDAtMjAgOS0yMCAyMCAwIDYuNSAzLjEgMTIuNCA4IDE2bDAgOGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwYzAtMi4yIDEuOC00IDQtNGwyMC40IDBjMS45IDkuMSA5LjkgMTYgMTkuNiAxNiAxMSAwIDIwLTkgMjAtMjAgMC0xOS45LTE2LjEtMzYtMzYtMzZsLTI0IDBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0em0tOTAuMS0zMi45Yy00LjEtOC4zLTEzLjUtMTIuNy0yMi41LTEwLjVTMjIwIDM5MC43IDIyMCA0MDBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00My4zIDI2LjEgNTIuMmM0LjEgOC4zIDEzLjUgMTIuNyAyMi41IDEwLjVTMzI0IDUzNy4zIDMyNCA1MjhsMC0xMjhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgNDMuMy0yNi4xLTUyLjJ6Il19LElGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZ2xvbyIsaWNvbjpbNTc2LDUxMixbXSwiZjdhZSIsIk0zMjAgMzMuOGwwIDEyNi4yLTI3MS41IDBjNTEuNy03Ny4yIDEzOS42LTEyOCAyMzkuNS0xMjggMTAuOCAwIDIxLjUgLjYgMzIgMS44ek0zNjggMTYwbDAtMTE2LjdjNjYgMTkgMTIyLjIgNjEgMTU5LjUgMTE2LjdMMzY4IDE2MHpNMjIuNiAyMDhsNzMuNCAwIDAgMTEyLTk2IDBjMC0zOS43IDgtNzcuNiAyMi42LTExMnpNMTc2IDMyMGwtMzIgMCAwLTExMiAyODggMCAwIDExMi0zMiAwIDAgNDggMTc2IDAgMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjQgMTc2IDAgMC00OHptMzA0IDBsMC0xMTIgNzMuNCAwQzU2OCAyNDIuNCA1NzYgMjgwLjMgNTc2IDMyMGwtOTYgMHpNMjg4IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4MCAxMjggMCAwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0eiJdfSxiUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG9sbGFyLXRvLXNsb3QiLGljb246WzU3Niw1MTIsWyJkb25hdGUiXSwiZjRiOSIsIk05NiAyMjRhMTkyIDE5MiAwIDEgMSAzODQgMCAxOTIgMTkyIDAgMSAxIC0zODQgMHptMTc2LTkybDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDI0OCAyNzJjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjB6TTQ4IDM0NGwwIDEwNGMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxORmU9YlIsRkZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InkiLGljb246WzM4NCw1MTIsWzEyMV0sIjU5IiwiTTU4IDQ1LjRDNDcuOCAzMSAyNy44IDI3LjcgMTMuNCAzOFMtNC4zIDY4LjIgNiA4Mi42TDE2MCAyOTguMyAxNjAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDkuNyAxNTQtMjE1LjdjMTAuMy0xNC40IDYuOS0zNC40LTcuNC00NC42UzMzNi4yIDMxIDMyNiA0NS40TDE5MiAyMzIuOSA1OCA0NS40eiJdfSx2Uj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODUyMSwic21pbGUtd2luayJdLCJmNGRhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sT0ZlPXZSLFJGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLWZvdXIiLGljb246WzQ0OCw1MTIsWzk4NTldLCJmNTI0IiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNjAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTM1MiAxNjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHlSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zcXVpbnQtdGVhcnMiLGljb246WzU3Niw1MTIsWzEyOTMxNSwiZ3Jpbi1zcXVpbnQtdGVhcnMiXSwiZjU4NiIsIk01NjAgMzUuNGMwIDI1LjYtMTguOCA0Ny4zLTQ0LjEgNTAuOUw0NjkuMSA5M2MtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQ2MS4zIDIuOCA0ODMtMTYgNTA4LjYtMTYgNTM3LTE2IDU2MCA3IDU2MCAzNS40ek00MDMuNSA2OC4xYy02IDQyLjIgMzAuMiA3OC40IDcyLjQgNzIuNGwzNy44LTUuNEM1NjUuNyAyMzIgNTUwLjggMzU1LjMgNDY5IDQzN3MtMjA1IDk2LjYtMzAxLjkgNDQuN2w1LjQtMzcuOGM2LTQyLjItMzAuMi03OC40LTcyLjQtNzIuNGwtMzcuOCA1LjRDMTAuMyAyODAgMjUuMiAxNTYuNyAxMDcgNzVTMzEyLTIxLjcgNDA4LjkgMzAuM2wtNS40IDM3Ljh6TTQxNy44IDIwMWMtMTkuMSAzNi40LTQ1LjYgNzIuNy03OC45IDEwNnMtNjkuNiA1OS44LTEwNiA3OC45Yy0xMS4xIDUuOC0xMi40IDIxLjQtMS4xIDI2LjYgNTkuMiAyNy41IDEzMS44IDE2LjggMTgwLjYtMzJzNTkuNS0xMjEuNCAzMi0xODAuNmMtNS4zLTExLjMtMjAuOC0xMC0yNi42IDEuMXpNMTEzLjkgMjcwLjZjMS43IDggOSAxMy40IDE3LjEgMTIuN2w0My4xLTMuOS0zLjkgNDMuMWMtLjcgOC4xIDQuNyAxNS41IDEyLjcgMTcuMXMxNS45LTIuOSAxOC40LTEwLjZsMjgtODQuNmMxLjktNS43IC40LTEyLjEtMy45LTE2LjNzLTEwLjYtNS44LTE2LjMtMy45bC04NC42IDI4Yy03LjcgMi42LTEyLjMgMTAuNS0xMC42IDE4LjV6TTMxNS4yIDk5LjFjLjctOC4xLTQuNy0xNS41LTEyLjctMTcuMXMtMTUuOSAyLjktMTguNSAxMC42bC0yOCA4NC42Yy0xLjkgNS43LS40IDEyLjEgMy45IDE2LjNzMTAuNiA1LjggMTYuMyAzLjlsODQuNi0yOGM3LjctMi42IDEyLjMtMTAuNSAxMC42LTE4LjRzLTktMTMuNC0xNy4xLTEyLjdsLTQzLjEgMy45IDMuOS00My4xek02MC4xIDQyNS43bDQ2LjctNi43YzEwLjYtMS41IDE5LjYgNy41IDE4LjEgMTguMWwtNi43IDQ2LjdDMTE0LjcgNTA5LjIgOTMgNTI4IDY3LjQgNTI4IDM5IDUyOCAxNiA1MDUgMTYgNDc2LjYgMTYgNDUxIDM0LjggNDI5LjMgNjAuMSA0MjUuN3oiXX0sQkZlPXlSLEhGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWF1ZGlvIixpY29uOlszODQsNTEyLFtdLCJmMWM3IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41em01My44IDE4NS4yYy05LjEtNi4zLTIxLjUtNC4xLTI3LjggNXMtNC4xIDIxLjUgNSAyNy44YzIzLjkgMTYuNyAzOS40IDQ0LjMgMzkuNCA3NS41cy0xNS42IDU4LjktMzkuNCA3NS41Yy05LjEgNi4zLTExLjMgMTguOC01IDI3LjhzMTguOCAxMS4zIDI3LjggNWMzNC4xLTIzLjggNTYuNi02My41IDU2LjYtMTA4LjNTMjk2IDI2Ny41IDI2MS44IDI0My43ek04MCAzMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMjQgMHptMTI4IDcyLjJjMCAxMC43IDEwLjUgMTguMiAxOC45IDExLjYgMTIuOS0xMC4zIDIxLjEtMjYuMSAyMS4xLTQzLjhzLTguMi0zMy41LTIxLjEtNDMuOGMtOC40LTYuNy0xOC45IC45LTE4LjkgMTEuNmwwIDY0LjV6Il19LHFGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtZG93bi10by1saW5lIixpY29uOls1MTIsNTEyLFtdLCJlNGI4IiwiTTIxNC42IDMxMC42bC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDI3NC43IDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNDIuNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTI1NiAwbC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDkuNCA5LjQgMC0yNDIuN2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjQyLjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0zMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyeiJdfSxWRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZyIsaWNvbjpbNDQ4LDUxMixbMTAzXSwiNDciLCJNMjI0IDk2QzEzNS42IDk2IDY0IDE2Ny42IDY0IDI1NnM3MS42IDE2MCAxNjAgMTYwYzc3LjQgMCAxNDItNTUgMTU2LjgtMTI4TDI1NiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ0IDBjMjUuOCAwIDQ5LjYgMjEuNCA0Ny4yIDUwLjYtOS41IDExNS0xMDUuOCAyMDUuNC0yMjMuMiAyMDUuNC0xMjMuNyAwLTIyNC0xMDAuMy0yMjQtMjI0UzEwMC4zIDMyIDIyNCAzMmM1Ny40IDAgMTA5LjcgMjEuNiAxNDkuMyA1NyAxMy4yIDExLjggMTQuMyAzMiAyLjUgNDUuMnMtMzIgMTQuMy00NS4yIDIuNUMzMDIuMyAxMTEuNCAyNjUgOTYgMjI0IDk2eiJdfSxqRmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmloYXJhIixpY29uOls1NzYsNTEyLFtdLCJmNmE3IiwiTTI3My42LTMuMmM4LjUtNi40IDIwLjMtNi40IDI4LjggMEw0NDMuMiAxMDIuNGM4LjMgNi4yIDE4LjQgOS42IDI4LjggOS42IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgNDggNTguNyA2NCAxMy4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQ4IDI0LjQgMzIgMTUuNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xMjggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjIuMSAwIDE3LjktMzIgMC00OC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTMuMyAwIDU4LjctNjQgMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzEwLjQgMCAyMC41LTMuNCAyOC44LTkuNkwyNzMuNi0zLjJ6TTEyOCAzNjhsMzIwIDAgMC00OC0zMjAgMCAwIDQ4ek0zODQgMTYwbC0xOTIgMCAwIDQ4IDE5MiAwIDAtNDh6Il19LFVGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLWNoZWNrZXJlZCIsaWNvbjpbNDQ4LDUxMixbMTI3OTM3XSwiZjExZSIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMjc5LjdjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgMzg0IDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwek02NCAxODcuMWw2NC0xMy45IDAgNjUuNS02NCAxMy45IDAgNjUuNSA0OC44LTEyLjJjNS4xLTEuMyAxMC4xLTIuNCAxNS4yLTMuM2wwLTYzLjkgMzguOS04LjRjOC4zLTEuOCAxNi43LTIuNSAyNS4xLTIuMWwwLTY0YzEzLjYgLjQgMjcuMiAyLjYgNDAuNCA2LjRsMjMuNiA2LjkgMCA2Ni43LTQxLjctMTIuM2MtNy4zLTIuMS0xNC44LTMuNC0yMi4zLTMuOGwwIDcxLjRjMjEuOCAxLjkgNDMuMyA2LjcgNjQgMTQuNGwwLTY5LjggMjIuNyA2LjdjMTMuNSA0IDI3LjMgNi40IDQxLjMgNy40bDAtNjQuMmMtNy44LS44LTE1LjYtMi4zLTIzLjItNC41bC00MC44LTEyIDAtNjJjLTEzLTMuOC0yNS44LTguOC0zOC4yLTE1LTguMi00LjEtMTYuOS03LTI1LjgtOC44bDAgNzIuNGMtMTMtLjQtMjYgLjgtMzguNyAzLjZsLTI1LjMgNS41IDAtNzUuMi02NCAxNiAwIDczLjF6TTMyMCAzMzUuN2MxNi44IDEuNSAzMy45LS43IDUwLTYuOGwxNC01LjIgMC03MS43LTcuOSAxLjhjLTE4LjQgNC4zLTM3LjMgNS43LTU2LjEgNC41bDAgNzcuNHptNjQtMTQ5LjRsMC03MC44Yy0yMC45IDYuMS00Mi40IDkuMS02NCA5LjFsMCA2OS40YzEzLjkgMS40IDI4IC41IDQxLjctMi42bDIyLjMtNS4yeiJdfSxNbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUiLGljb246WzUxMiw1MTIsWyJnYXVnZS1zaW1wbGUtbWVkIiwidGFjaG9tZXRlci1hdmVyYWdlIl0sImY2MjkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxXRmU9TW0sR0ZlPU1tLHhSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWxlZnQiLGljb246WzUxMiw1MTIsWyJleGNoYW5nZS1hbHQiXSwiZjM2MiIsIk01MDIuNiAxNTAuNmwtOTYgOTZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM1MiAyMzYuOSAzNTIgMjI0bDAtNjQtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzE0LjMgOTYgMzIgOTZsMzIwIDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zem0tMzk3LjMgMzUybC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMTYwIDI3NS4xIDE2MCAyODhsMCA2NCAzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCA2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOXoiXX0sWUZlPXhSLFpGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWxscyIsaWNvbjpbNTEyLDUxMixbXSwiZjQ4NCIsIk02NCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMi05NiAwIDAtMTEyek0xNzYgMzY4YzAtNDguNyAxOC4xLTkzLjIgNDgtMTI3bDAtMTI5QzIyNCA1MC4xIDE3My45IDAgMTEyIDBTMCA1MC4xIDAgMTEyTDAgNDAwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyIDM3LjMgMCA3MC4zLTE4LjIgOTAuNy00Ni4zLTE3LTI4LjYtMjYuNy02Mi0yNi43LTk3Ljd6bTY0LjcgNjcuNGM0LjYgOC43IDE2LjMgOS43IDIzLjMgMi43TDQzOC4xIDI2NGM3LTcgNi0xOC43LTIuNy0yMy4zLTIwLjEtMTAuNy00My0xNi43LTY3LjQtMTYuNy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDI0LjMgNiA0Ny4zIDE2LjcgNjcuNHpNMjk3LjkgNDcyYy03IDctNiAxOC43IDIuNyAyMy4zIDIwLjEgMTAuNyA0MyAxNi43IDY3LjQgMTYuNyA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI0LjMtNi00Ny4zLTE2LjctNjcuNC00LjYtOC43LTE2LjMtOS43LTIzLjMtMi43TDI5Ny45IDQ3MnoiXX0sWEZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV4cGxvc2lvbiIsaWNvbjpbNTEyLDUxMixbXSwiZTRlOSIsIk0yNTYtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDE2MGMxMi40IDAgMjIuNyA5LjQgMjMuOSAyMS43TDI5My40IDI5MS42IDQ2Ny42IDExLjNjNi43LTEwLjcgMjAuNS0xNC41IDMxLjctOC41czE1LjggMTkuNSAxMC42IDMxTDM3Mi44IDMzOC42YzIuMiAyLjMgNC4zIDQuNyA2LjMgNy4xbDk3LjItNTQuN2MxMC41LTUuOSAyMy42LTMuMSAzMC45IDYuNHM2LjMgMjMtMi4yIDMxLjVsLTg3IDg3LTcxLjQgMGMtMTMuMi0zNy4zLTQ4LjctNjQtOTAuNS02NHMtNzcuNCAyNi43LTkwLjUgNjRsLTc5LjYgMC03NS41LTUyLjNDLjYgMzU3LTIuOCAzNDQuMSAyLjQgMzMzLjVzMTcuNC0xNS45IDI4LjctMTIuNGw5Ny4yIDMwLjRjMy0zLjkgNi4xLTcuNiA5LjQtMTEuM0w3NS40IDIzNi4zYy02LjEtMTAuMS0zLjktMjMuMSA1LjEtMzAuN3MyMi4yLTcuNSAzMS4xIC4xTDIxNCAyOTMuNmMxLjUtLjQgMy0uOCA0LjUtMS4xbDEzLjYtMTQyLjdjMS4yLTEyLjMgMTEuNS0yMS43IDIzLjktMjEuN3pNMzIgNDY0bDQ1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDB6Il19LEtGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtZG93bi10by1wZW9wbGUiLGljb246WzUxMiw1MTIsW10sImU0YjkiLCJNMTEzIDE1M2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTUgODlDNS43IDc5LjYgNS43IDY0LjQgMTUgNTVTMzkuNiA0NS43IDQ5IDU1TDcyIDc4LjEgNzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODYuMSAyMy0yM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTY0IDY0em0zMjAgMGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzM1IDg5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjMgMjMgMC04Ni4xYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4Ni4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjR6TTI1NiAxOTJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTAgMTYwYzUzIDAgOTYgNDMgOTYgOTZsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC01MyA0My05NiA5Ni05NnpNMzIgMjg4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTgwIDM2OGMxNS4zIDAgMjkuNiA0LjMgNDEuOCAxMS44LTYuMyAxNi4yLTkuOCAzMy44LTkuOCA1Mi4ybDAgNDhjMCAxMS40IDIuNCAyMi4yIDYuNyAzMmwtODcuOCAwQzEzLjggNTEyIDAgNDk4LjIgMCA0ODEuMUwwIDQ0OGMwLTQ0LjIgMzUuOC04MCA4MC04MHpNMzkzLjMgNTEyYzQuMy05LjggNi43LTIwLjYgNi43LTMybDAtNDhjMC0xOC40LTMuNS0zNi05LjgtNTIuMiAxMi4yLTcuNSAyNi41LTExLjggNDEuOC0xMS44IDQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMzMuMWMwIDE3LTEzLjggMzAuOS0zMC45IDMwLjlsLTg3LjggMHoiXX0sUUZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXZpZXdmaW5kZXIiLGljb246WzU3Niw1MTIsW10sImU1OTUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzJjMC04LjggNy4yLTE2IDE2LTE2bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMTQ5LjMgMCAxMzYgMEw2NCAwek00NDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTM1LjMtMjguNy02NC02NC02NEw0NDAgMHpNNDggMzc2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMzYyLjcgMCAzNzZsMCA3MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwYy04LjggMC0xNi03LjItMTYtMTZsMC03MnptNTI4IDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3MmMwIDguOC03LjIgMTYtMTYgMTZsLTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTcyek0yODggMjE2YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0wIDQwYy01MyAwLTk2IDQzLTk2IDk2bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTUzLTQzLTk2LTk2LTk2em0xOTItNjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTY4IDI3Mi4zYy00OS4zIDQuMS04OCA0NS4zLTg4IDk1LjdsMCAxMC43YzAgMTEuOCA5LjYgMjEuMyAyMS4zIDIxLjNsNDYuOCAwYy0yLjctNy41LTQuMS0xNS42LTQuMS0yNGwwLTI0YzAtMjkuNSA4LjgtNTYuOSAyNC03OS43ek00MjcuOSA0MDBsNDYuOCAwYzExLjggMCAyMS4zLTkuNiAyMS4zLTIxLjNsMC0xMC43YzAtNTAuMy0zOC43LTkxLjYtODgtOTUuNyAxNS4yIDIyLjggMjQgNTAuMiAyNCA3OS43bDAgMjRjMCA4LjQtMS40IDE2LjUtNC4xIDI0ek0xOTIgMTkyYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LEpGZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItb24iLGljb246WzQ0OCw1MTIsW10sImU0ZGQiLCJNMjQ4LThjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjAwLTIxLjMgMjAwLThsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjR6TTE0NS4zIDIwOGwxNTcuNSAwYzYuNyAwIDEyLjYgNC4xIDE1IDEwLjRsMjYuMSA2OS42LTIzOS42IDAgMjYuMS02OS42YzIuMy02LjIgOC4zLTEwLjQgMTUtMTAuNHpNMzQgMjkyLjhsLTEuMyAzLjRDMTMuMiAzMDcuMSAwIDMyOCAwIDM1MkwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMjg4IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMjQtMTMuMi00NC45LTMyLjgtNTUuOWwtMS4zLTMuNC0zNi4zLTk2LjljLTExLjctMzEuMi00MS42LTUxLjktNzQuOS01MS45bC0xNTcuNSAwYy0zMy4zIDAtNjMuMiAyMC43LTc0LjkgNTEuOUwzNCAyOTIuOHpNOTYgMzM2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjI0IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTcgN0MtMi4zIDE2LjQtMi4zIDMxLjYgNyA0MUw1NSA4OWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMFM5OC4zIDY0LjQgODkgNTVMNDEgN0MzMS42LTIuMyAxNi40LTIuMyA3IDd6TTQwNyA3TDM1OSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ4LTQ4YzkuNC05LjQgOS40LTI0LjYgMC0zMy45UzQxNi40LTIuMyA0MDcgN3oiXX0sZU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsZWlnaCIsaWNvbjpbNjQwLDUxMixbXSwiZjdjYyIsIk02NCAzMkM0Ni4zIDMyIDMyIDQ2LjMgMzIgNjRTNDYuMyA5NiA2NCA5NmwwIDE2MGMwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCA2OS41LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTA0IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtODAgMCAwLTY0YzUzIDAgOTYtNDMgOTYtOTZsMC05NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDguOSAwYy00OC41IDAtOTIuOC0yNy40LTExNC41LTcwLjhsLTI1LjItNTAuNUMyMzcuNyA1OS40IDE5My40IDMyIDE0NC45IDMyTDY0IDMyek00MzIgNDE2bC0yNTYgMCAwLTY0IDI1NiAwIDAgNjR6Il19LHRPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW1iYmVsbCIsaWNvbjpbNjQwLDUxMixbXSwiZjQ0YiIsIk05NiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMiAyNTYgMCAwLTExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTYgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDAgMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTExMi0yNTYgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTE2LTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC00OGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwIDAtMTZ6Il19LHdSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhYnktY2FycmlhZ2UiLGljb246WzUxMiw1MTIsWyJjYXJyaWFnZS1iYWJ5Il0sImY3N2QiLCJNNjQgMjA4bDAgODBjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTEyIDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYtMzM2IDB6bS4yLTQ4bDIyMy44IDAgMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMjMyIDBDMTQxLjkgMCA2OC40IDcwLjkgNjQuMiAxNjB6TTE2MCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMjg4IDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sYU9lPXdSLGlPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJraXdpLWJpcmQiLGljb246WzU3Niw1MTIsW10sImY1MzUiLCJNMjkxLjIgMzg4LjRjMzEuMi0xOC44IDY0LjctMzYuNCAxMDEuMS0zNi40bDU1LjcgMGM0LjYgMCA5LjEtLjIgMTMuNi0uN2w4NS4zIDEyMS45YzQgNS43IDExLjMgOC4yIDE3LjkgNi4xUzU3NiA0NzEgNTc2IDQ2NGwwLTI0MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtNTUuNyAwQzM1NS45IDk2IDMyMi40IDc4LjQgMjkxLjIgNTkuNiAyNjIuMyA0Mi4xIDIyOC4zIDMyIDE5MiAzMiA4NiAzMiAwIDExOCAwIDIyNCAwIDI5NS4xIDM4LjYgMzU3LjEgOTYgMzkwLjNMOTYgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00NmMxNS4zIDMuOSAzMS40IDYgNDggNiA1LjQgMCAxMC43LS4yIDE2LS43bDAgNDAuN2MwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNTAuOWMxMi40LTQuNCAyNC4yLTEwIDM1LjItMTYuN3pNNDQ4IDIwMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LE1SPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXhtYXJrIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItdGltZXMiXSwiZjI3MyIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI5MS45IDIyMC4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMzMuOSAzMy45LTMzLjktMzMuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjktMzMuOSAzMy45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzMuOS0zMy45IDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMzLjktMzMuOSAzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjl6Il19LHJPZT1NUix6Uj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG93biIsaWNvbjpbNTEyLDUxMixbNjE0NjYsImFycm93LWFsdC1jaXJjbGUtZG93biJdLCJmMzU4IiwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDEgMCAwLTUxMnpNMjQ0LjcgMzg3LjNsLTEwNC0xMDRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjRzOC4zLTkuOSAxNC44LTkuOWw1NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDU2IDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTEwNCAxMDRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAweiJdfSxzT2U9elIsbk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtbWVkaWNhbCIsaWNvbjpbMzg0LDUxMixbXSwiZjQ3NyIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTYwIDI4MGwwIDQwLTQwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwIDAgNDBjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNDAgNDAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQwIDAgMC00MGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0saW89e3ByZWZpeDoiZmFzIixpY29uTmFtZToieG1hcmsiLGljb246WzM4NCw1MTIsWzEyODQ3MywxMDAwNSwxMDAwNiwxMDA2MCwyMTUsImNsb3NlIiwibXVsdGlwbHkiLCJyZW1vdmUiLCJ0aW1lcyJdLCJmMDBkIiwiTTU1LjEgNzMuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTQ3LjIgMjU2IDkuOSAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIuNSAzMDEuMyAzMjkuOSA0MzguNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIzNy44IDI1NiAzNzUuMSAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIuNSAyMTAuNyA1NS4xIDczLjR6Il19LG9PZT1pbyxsT2U9aW8sY09lPWlvLGRPZT1pbyxrUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFwZXMiLGljb246WzUxMiw1MTIsWyJ0cmlhbmdsZS1jaXJjbGUtc3F1YXJlIl0sImY2MWYiLCJNMjU2IDBjMTEuMiAwIDIxLjcgNS45IDI3LjQgMTUuNWw5NiAxNjBjNS45IDkuOSA2LjEgMjIuMiAuNCAzMi4yUzM2My41IDIyNCAzNTIgMjI0bC0xOTIgMGMtMTEuNSAwLTIyLjItNi4yLTI3LjgtMTYuMnMtNS41LTIyLjMgLjQtMzIuMmw5Ni0xNjBDMjM0LjMgNS45IDI0NC44IDAgMjU2IDB6TTEyOCAyNzJhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0yMDAgMTZsMTEyIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTExMiAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTExMmMwLTIyLjEgMTcuOS00MCA0MC00MHoiXX0scE9lPWtSLGhPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLW9uZSIsaWNvbjpbNDQ4LDUxMixbOTg1Nl0sImY1MjUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjI0IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHVPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NrLW9wZW4iLGljb246WzU3Niw1MTIsW10sImYzYzEiLCJNMzg0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjRsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhTMzIwIDI1LjMgMzIwIDk2bDAgNjQtMTYwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0zMiAwIDAtNjR6Il19LGZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXBwZXItaG90IixpY29uOls1NzYsNTEyLFsxMjc3OThdLCJmODE2IiwiTTU0NSA2NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQ3OC45IDYzLjJDNDUyLjMgNDMuNiA0MTkuNSAzMiAzODQgMzIgMzQ4LjkgMzIgMzE2LjUgNDMuMyAyOTAuMSA2Mi40IDI3NC4xIDc0LjEgMjg0LjIgOTYgMzA0IDk2bDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCAxOS44IDIxLjkgMjkuOSAzMy42IDEzLjkgMTkuMS0yNi40IDMwLjQtNTguOCAzMC40LTkzLjkgMC0zNS41LTExLjYtNjguMy0zMS4yLTk0LjlMNTQ1IDY1ek0yNzAgMTM1LjVsLTE1OS42IDIyOEMxMDEuMyAzNzYuNCA4Ni43IDM4NCA3MSAzODRsLTcgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyNy4xIDBjNjUuNyAwIDEyOS43LTIwLjIgMTgzLjUtNTcuOEw0NDAuNSAzMDYuMUM0MzUgMjk1LjkgNDMyIDI4NC4yIDQzMiAyNzJsLTU2IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtNTZjLTEyLjIgMC0yMy45LTMtMzQtOC41eiJdfSxTUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcm9wbGV0LXNsYXNoIixpY29uOls1NzYsNTEyLFsidGludC1zbGFzaCJdLCJmNWM3IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDYzLjYgMzk3LjhjMTAuNS0yMy44IDE2LjQtNTAuMSAxNi40LTc3LjggMC05MS4yLTEzMC4yLTI3NC4xLTE2Ni42LTMyMy41LTUuOS04LTE1LjItMTIuNS0yNS4yLTEyLjVsLS40IDBjLTEwIDAtMTkuMyA0LjUtMjUuMiAxMi41LTE1LjYgMjEuMi00OC41IDY2LjktODAuOSAxMTkuNEw0MS0yNC45em05MiAyMjcuN2MtMjEuNiA0My44LTM3IDg1LjktMzcgMTE3LjIgMCAxMDYgODYgMTkyIDE5MiAxOTIgNDMuNCAwIDgzLjQtMTQuNCAxMTUuNS0zOC42TDEzMyAyMDIuOHoiXX0sbU9lPVNSLENSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyb3BsZXQiLGljb246WzM4NCw1MTIsWzEyODE2NywidGludCJdLCJmMDQzIiwiTTE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwIDAgMjI4LjggMTMwLjIgNDUuOSAxNjYuNi0zLjUgMTcyLjUtMTEuNSAxODEuOC0xNiAxOTEuOC0xNmwuNCAwYzEwIDAgMTkuMyA0LjUgMjUuMiAxMi41IDM2LjQgNDkuNCAxNjYuNiAyMzIuMyAxNjYuNiAzMjMuNSAwIDEwNi04NiAxOTItMTkyIDE5MnpNMTEyIDMxMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDc1LjEgNjAuOSAxMzYgMTM2IDEzNiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNDguNiAwLTg4LTM5LjQtODgtODh6Il19LGdPZT1DUix6bT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWxpbmVzIixpY29uOlszODQsNTEyLFsxMjg0NDEsMTI4NDYyLDYxNjg2LCJmaWxlLWFsdCIsImZpbGUtdGV4dCJdLCJmMTVjIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMjAgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LGJPZT16bSx2T2U9em0seU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnRzLWRvbGxhciIsaWNvbjpbNTc2LDUxMixbXSwiZjY1MyIsIk0xOTIgMzIwYzEwNiAwIDE5Mi03OC44IDE5Mi0xNzZTMjk4LTMyIDE5Mi0zMiAwIDQ2LjggMCAxNDRjMCAzOS42IDE0LjMgNzYuMiAzOC40IDEwNS42TDIuOCAzMTYuOEMtMi4xIDMyNi4xLS40IDMzNy41IDcgMzQ1czE4LjkgOS4yIDI4LjIgNC4yTDExNi44IDMwNmMyMy4xIDkgNDguNSAxNCA3NS4yIDE0em0zLjIgNDhjMTYuNCA4MS45IDk0LjcgMTQ0IDE4OC44IDE0NCAyNi43IDAgNTIuMS01IDc1LjItMTRsODEuNiA0My4yYzkuMyA0LjkgMjAuNyAzLjIgMjguMi00LjJzOS4yLTE4LjkgNC4yLTI4LjJsLTM1LjYtNjcuMmMyNC4xLTI5LjQgMzguNC02NiAzOC40LTEwNS42IDAtODIuNC02MS43LTE1MS41LTE0NS0xNzAuNy0xMS41IDExNS44LTExNS44IDIwMS4yLTIzNS44IDIwMi43ek0xOTYgMzJjMTEgMCAyMCA5IDIwIDIwbDAgNCA4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC00Ny41IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDYuMSA0LjQgMTEuMyAxMC40IDEyLjNsNDEuNyA3YzI1LjMgNC4yIDQzLjkgMjYuMSA0My45IDUxLjggMCAyNi4xLTE5IDQ3LjctNDQgNTEuOGwwIDQuN2MwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC00LTI0IDBjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwbDU1LjUgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC02LjEtNC40LTExLjMtMTAuNC0xMi4zbC00MS43LTdjLTI1LjMtNC4yLTQzLjktMjYuMS00My45LTUxLjggMC0yOC44IDIzLjItNTIuMiA1Mi01Mi41bDAtNGMwLTExIDktMjAgMjAtMjB6Il19LF9SPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtbG9jYXRpb24iLGljb246WzUxMiw1MTIsWyJzZWFyY2gtbG9jYXRpb24iXSwiZjY4OSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTI4OCAxNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCA0OC44IDQ2LjUgMTExLjYgNjguNiAxMzguNiA2IDcuMyAxNi44IDcuMyAyMi43IDAgMjIuMS0yNyA2OC42LTg5LjggNjguNi0xMzguNnptLTExMiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHhPZT1fUixjZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWludm9pY2UiLGljb246WzM4NCw1MTIsW10sImY1NzAiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNTguNyAxOC43QzI0Ni43IDYuNyAyMzAuNSAwIDIxMy41IDBMNjQgMHpNMzI1LjUgMTc2TDIzMiAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDIwOCA1OC41IDMyNS41IDE3NnpNNjQgMzg0bDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiA0MTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek04OCA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM3NC43IDY0IDg4IDY0em0wIDk2bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LHdPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW50YWdvbiIsaWNvbjpbNTc2LDUxMixbXSwiZTc5MCIsIk0zMTYuNC0zLjFjLTE2LjgtMTIuMi0zOS42LTEyLjItNTYuNCAwTDM1LjMgMTYwLjJjLTE2LjggMTIuMi0yMy45IDMzLjktMTcuNCA1My43bDg1LjggMjY0LjFjNi40IDE5LjggMjQuOSAzMy4yIDQ1LjcgMzMuMmwyNzcuNyAwYzIwLjggMCAzOS4yLTEzLjQgNDUuNy0zMy4ybDg1LjgtMjY0LjFjNi40LTE5LjgtLjYtNDEuNC0xNy40LTUzLjdMMzE2LjQtMy4xeiJdfSxNT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwdWJsaWNhbiIsaWNvbjpbNjQwLDUxMixbXSwiZjc1ZSIsIk0wIDE5MkMwIDEwMy42IDcxLjYgMzIgMTYwIDMybDIyNCAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwbDAgNjQtNTQ0IDAgMC02NHptMTUyLTMyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTIzMiAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTI4MCAxNjBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTI4IDI4OGw0MTYgMCAwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwbDAtNDgtMzIgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0LTE5MiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwIDEyOCAweiJdfSxUUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0Il0sImY1NGYiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTYuOCAxMTMuN2MzLjYgNy4yIDUuNSAxNS4xIDUuNSAyMy4yIDAgMjcuMy0yMS4yIDQ5LjctNDggNTEuNkw1MTIgNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTk2IDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAweiJdfSx6T2U9VFIsa209e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsbSIsaWNvbjpbNDQ4LDUxMixbMTI3OTAyLDYyMzY4LCJmaWxtLWFsdCIsImZpbG0tc2ltcGxlIl0sImYwMDgiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTQ4IDM2OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNDggMjQwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMwNC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAxMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZMNjQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNnpNMzUyIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6Il19LGtPZT1rbSxTT2U9a20sQ09lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNDU0LjYgNDAweiJdfSxfT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudHMiLGljb246WzU3Niw1MTIsWzEyODQ5MCw2MTY3MF0sImYwODYiLCJNMzg0IDE0NGMwIDk3LjItODYgMTc2LTE5MiAxNzYtMjYuNyAwLTUyLjEtNS03NS4yLTE0TDM1LjIgMzQ5LjJjLTkuMyA0LjktMjAuNyAzLjItMjguMi00LjJzLTkuMi0xOC45LTQuMi0yOC4ybDM1LjYtNjcuMkMxNC4zIDIyMC4yIDAgMTgzLjYgMCAxNDQgMCA0Ni44IDg2LTMyIDE5Mi0zMlMzODQgNDYuOCAzODQgMTQ0em0wIDM2OGMtOTQuMSAwLTE3Mi40LTYyLjEtMTg4LjgtMTQ0IDEyMC0xLjUgMjI0LjMtODYuOSAyMzUuOC0yMDIuNyA4My4zIDE5LjIgMTQ1IDg4LjMgMTQ1IDE3MC43IDAgMzkuNi0xNC4zIDc2LjItMzguNCAxMDUuNmwzNS42IDY3LjJjNC45IDkuMyAzLjIgMjAuNy00LjIgMjguMnMtMTguOSA5LjItMjguMiA0LjJMNDU5LjIgNDk4Yy0yMy4xIDktNDguNSAxNC03NS4yIDE0eiJdfSxUT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFncyIsaWNvbjpbNTc2LDUxMixbXSwiZjAyYyIsIk00MDEuMiAzOS4xTDU0OS40IDE4OS40YzI3LjcgMjguMSAyNy43IDczLjEgMCAxMDEuMkwzOTMgNDQ4LjljLTkuMyA5LjQtMjQuNSA5LjUtMzMuOSAuMnMtOS41LTI0LjUtLjItMzMuOUw1MTUuMyAyNTYuOGM5LjItOS4zIDkuMi0yNC40IDAtMzMuN0wzNjcgNzIuOWMtOS4zLTkuNC05LjItMjQuNiAuMi0zMy45czI0LjYtOS4yIDMzLjkgLjJ6TTMyLjEgMjI5LjVMMzIuMSA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDE0NCAxNDRjMjUgMjUgMjUgNjUuNSAwIDkwLjVMMjg1LjQgNDE4LjdjLTI1IDI1LTY1LjUgMjUtOTAuNSAwbC0xNDQtMTQ0Yy0xMi0xMi0xOC43LTI4LjMtMTguNy00NS4zem0xNDQtODUuNWEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxMT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VuIixpY29uOls1NzYsNTEyLFtdLCJlMTliIiwiTTUyOCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgtNDQ4IDBDMTQuMyA2NCAwIDc4LjMgMCA5NkwwIDIwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMCAwYzIwLjggMCAzNi4xIDE5LjYgMzEgMzkuOEwzMyA0NDAuMmMtMi40IDkuNi0uMiAxOS43IDUuOCAyNy41UzU0LjEgNDgwIDY0IDQ4MGw5NiAwYzE0LjcgMCAyNy41LTEwIDMxLTI0LjJMMjE3IDM1MiAzMjEuNCAzNTJjMjMuNyAwIDQ0LjgtMTQuOSA1Mi43LTM3LjJsMjYuNy03NC44IDMxLjEgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNGwyMi42LTIyLjYgNjYuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2IDAgMC04ek0zMjEuNCAzMDRsLTkyLjUgMCAxNi02NCAxMDUgMC0yMSA1OC43Yy0xLjEgMy4yLTQuMiA1LjMtNy41IDUuM3pNODAgMTI4bDM4NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDgwIDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnoiXX0sbzg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFs2MTUzMywiY2hlY2stY2lyY2xlIl0sImYwNTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6TTM3NCAxNDUuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMjIxLjEgMzE1LjIgMTY5IDI2My4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS44IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzc5LjMgMTc5LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LCRPZT1vOCxBT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NvcnBpbyIsaWNvbjpbNjQwLDUxMixbXSwiZTg0ZSIsIk0zNjggMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJsMCAyODkuN2MwIDcuOSA2LjQgMTQuMyAxNC4zIDE0LjMgMy45IDAgNy42LTEuNiAxMC4yLTQuM2w0MC4xLTQxLjEtOS43LTkuN2MtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM1NDIuMyAzNTIgNTUyIDM1Mmw2NCAwIDIuNSAuMWMxMi4xIDEuMiAyMS41IDExLjUgMjEuNSAyMy45bDAgNjQtLjMgMy42Yy0xLjIgOC4yLTYuNyAxNS4zLTE0LjUgMTguNi05IDMuNy0xOS4zIDEuNi0yNi4yLTUuMmwtOS4xLTkuMS0zOS42IDQwLjZjLTE0LjcgMTUuMS0zNC45IDIzLjYtNTYgMjMuNi00My4zIDAtNzguMy0zNS4xLTc4LjMtNzguM0w0MTYgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzIwYzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiA5NC4yIDMyIDgwLjYgMzIgNjQgMzIgNDYuMyA0Ni4zIDMyIDY0IDMyIDkxIDMyIDExNS4zIDQzLjEgMTMyLjcgNjEgMTUyLjYgNDMgMTc5IDMyIDIwOCAzMiAyMzkuMyAzMiAyNjcuNyA0NC45IDI4OCA2NS43IDMwOC4zIDQ0LjkgMzM2LjYgMzIgMzY4IDMyeiJdfSxMUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1jYXJkLWNsaXAiLGljb246WzU3Niw1MTIsWyJpZC1jYXJkLWFsdCJdLCJmNDdmIiwiTTI1Ni0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjQtMTI4IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgMzJsMTEyIDAgMCAzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTMyIDExMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnpNMTc2IDQwMGMwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHpNMjg4IDI4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnoiXX0sRE9lPUxSLEVPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb29uIixpY29uOls1MTIsNTEyLFsxMjc3NjksOTIxNF0sImYxODYiLCJNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyYzY4LjggMCAxMzEuMy0yNy4yIDE3Ny4zLTcxLjQgNy4zLTcgOS40LTE3LjkgNS4zLTI3LjFzLTEzLjctMTQuOS0yMy44LTE0LjFjLTQuOSAuNC05LjggLjYtMTQuOCAuNi0xMDEuNiAwLTE4NC04Mi40LTE4NC0xODQgMC03Mi4xIDQxLjUtMTM0LjYgMTAyLjEtMTY0LjggOS4xLTQuNSAxNC4zLTE0LjMgMTMuMS0yNC40UzMyMi42IDguNSAzMTIuNyA2LjNDMjk0LjQgMi4yIDI3NS40IDAgMjU2IDB6Il19LFBPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvaWwtd2VsbCIsaWNvbjpbNTc2LDUxMixbXSwiZTUzMiIsIk01MjguMyA2MS4zYy0xMS40LTQyLjctNTUuMy02OC05OC01Ni42TDQxNC45IDguOEMzOTcuOCAxMy40IDM4Ny43IDMxIDM5Mi4zIDQ4bDI0LjUgOTEuNC0xMDguMiAyOC4xLTYuMy0xOC4xQzI5Ny43IDEzNi42IDI4NS42IDEyOCAyNzIgMTI4cy0yNS43IDguNi0zMC4yIDIxLjRsLTEzLjYgMzktMTMyLjIgMzQuMyAwLTM4LjZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNjQtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTM3LjMgMC02MS40LTE3NS40LTYyLjIgMTYuMSAyMi4xIDYzLjItNjYuNiAwIDE5LjktNTYuOS03NC42IDE5LjMtNDYuNyAxMzMuNS00MS4zIDAgMC0xNTkuMiAzMzcuNC04Ny41IDI1LjIgOTRjNC42IDE3LjEgMjIuMSAyNy4yIDM5LjIgMjIuNmwxNS41LTQuMWM0Mi43LTExLjQgNjgtNTUuMyA1Ni42LTk4TDUyOC4zIDYxLjN6TTIwNS4xIDQ0OGwxNi44LTQ4IDEwMC4yIDAgMTYuOCA0OC0xMzMuOCAweiJdfSwkUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWNob2dyYXBoLWRpZ2l0YWwiLGljb246WzU3Niw1MTIsWyJkaWdpdGFsLXRhY2hvZ3JhcGgiXSwiZjU2NiIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em02NCAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNODggMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDM1MnptMjU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwek00OTYgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNODggMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMTA0LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTU2IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sSU9lPSRSLEFSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldCIsaWNvbjpbNDQ4LDUxMixbInRhYmxldC1hbmRyb2lkIl0sImYzZmIiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTg0IDQwMGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxOT2U9QVIsRzU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVibGUtc2lnbiIsaWNvbjpbNDQ4LDUxMixbODM4MSwicm91YmxlIiwicnViIiwicnVibGUiXSwiZjE1OCIsIk0xMTIgMzJDOTQuMyAzMiA4MCA0Ni4zIDgwIDY0bDAgMjA4LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDQ4LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxNTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTUyIDAgMC00OCAxMTIgMGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NFMzMzUuNSAzMiAyNTYgMzJMMTEyIDMyek0yNTYgMjU2bC0xMTIgMCAwLTE2MCAxMTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHoiXX0sRk9lPUc1LE9PZT1HNSxST2U9RzUsQk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3NlZC1jYXB0aW9uaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMjBhIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTE1MiA4MGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MGMwLTQuNCAzLjYtOCA4LTh6bTE2OCA4YzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MHoiXX0sSE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbiIsaWNvbjpbNTEyLDUxMixbMTI4Mzk0XSwiZjMwNCIsIk0zNTIuOSAyMS4yTDMwOCA2Ni4xIDQ0NS45IDIwNCA0OTAuOCAxNTkuMUM1MDQuNCAxNDUuNiA1MTIgMTI3LjIgNTEyIDEwOHMtNy42LTM3LjYtMjEuMi01MS4xTDQ1NS4xIDIxLjJDNDQxLjYgNy42IDQyMy4yIDAgNDA0IDBzLTM3LjYgNy42LTUxLjEgMjEuMnpNMjc0LjEgMTAwTDU4LjkgMzE1LjFjLTEwLjcgMTAuNy0xOC41IDI0LjEtMjIuNiAzOC43TC45IDQ4MS42Yy0yLjMgOC4zIDAgMTcuMyA2LjIgMjMuNHMxNS4xIDguNSAyMy40IDYuMmwxMjcuOC0zNS41YzE0LjYtNC4xIDI3LjktMTEuOCAzOC43LTIyLjZMNDEyIDIzNy45IDI3NC4xIDEwMHoiXX0scU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lIixpY29uOls1NzYsNTEyLFtdLCJmMDcyIiwiTTUyMCAyMDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZzLTI1LjEgNTYtNTYgNTZsLTEyNy4zIDAtMTU5LjIgMTczLjZjLTYuMSA2LjYtMTQuNiAxMC40LTIzLjYgMTAuNGwtNDMuNyAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw1NC4zLTE2Mi45LTk5LjcgMC01Mi44IDY2Yy0zIDMuOC03LjYgNi0xMi41IDZsLTE5LjggMGMtMTAuNCAwLTE4LTkuOC0xNS41LTE5LjlMMzIgMjU2IDUgMTQ3LjlDMi40IDEzNy44IDEwLjEgMTI4IDIwLjUgMTI4bDE5LjggMGM0LjkgMCA5LjUgMi4yIDEyLjUgNmw1Mi44IDY2IDk5LjcgMC01NC4zLTE2Mi45QzE0Ny42IDI2LjcgMTU1LjMgMTYgMTY2LjIgMTZsNDMuNyAwYzkgMCAxNy41IDMuOCAyMy42IDEwLjRMMzkyLjcgMjAwIDUyMCAyMDB6Il19LFZPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZXMiLGljb246WzU3Niw1MTIsW10sImYzMDIiLCJNOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyMCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw5NiA5NnpNMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjk2YzAgOC44IDcuMiAxNiAxNiAxNmwzNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0xNjggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTYuNSAxMS41Yy00LjQtNy4xLTEyLjEtMTEuNS0yMC41LTExLjVzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTYuMyA5Mi4xLTI0LjUtMzAuNmMtNC42LTUuNy0xMS40LTktMTguNy05cy0xNC4yIDMuMy0xOC43IDlsLTY0IDgwYy01LjggNy4yLTYuOSAxNy4xLTIuOSAyNS40UzE3NC44IDM1MiAxODQgMzUybDI3MiAwYzguNyAwIDE2LjctNC43IDIwLjktMTIuM3M0LjEtMTYuOC0uNS0yNC4zbC04OC0xNDR6Il19LERSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vYmlsZS1zY3JlZW4iLGljb246WzM4NCw1MTIsWyJtb2JpbGUtYW5kcm9pZC1hbHQiXSwiZjNjZiIsIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwTDMwNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMTYgNjR6TTEyOCA0NDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTMwNCA2NGwtMjI0IDAgMCAzMDQgMjI0IDAgMC0zMDR6Il19LGpPZT1EUixVT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VhcmFuaS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTlhIiwiTTE5MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQxLjVDNzMuMyA3Ny4zIDAgMTU4LjEgMCAyNTZTNzMuMyA0MzQuNyAxNjggNDQ2LjVsMCA0MS41YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MS41Yzk0LjctMTEuOCAxNjgtOTIuNiAxNjgtMTkwLjUgMC0xNy43LTE0LjMtMzItMzItMzJsLTEzNiAwIDAtOTMuOGMyNS4zIDQuOCA0Ny45IDE3IDY1LjYgMzQuMyAxMi42IDEyLjQgMzIuOSAxMi4yIDQ1LjMtLjRzMTIuMi0zMi45LS41LTQ1LjNDMjk3LjIgOTAuMiAyNTguOCA3MC44IDIxNiA2NS41TDIxNiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTY4IDEzMC4ybDAgMjUxLjVDMTA4LjggMzcwLjUgNjQgMzE4LjUgNjQgMjU2czQ0LjgtMTE0LjUgMTA0LTEyNS44em00OCAyNTEuNWwwLTkzLjggMTAwIDBjLTEyLjMgNDcuNi01MS4yIDg0LjUtMTAwIDkzLjh6Il19LEVSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhZy1zaG9wcGluZyIsaWNvbjpbNDQ4LDUxMixbInNob3BwaW5nLWJhZyJdLCJmMjkwIiwiTTE2MCA4MGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgNDgtMTI4IDAgMC00OHptLTQ4IDQ4bC02NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDAgMC00OGMwLTYxLjktNTAuMS0xMTItMTEyLTExMlMxMTIgMTguMSAxMTIgODBsMCA0OHptMjQgNDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0xNTIgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sV09lPUVSLFBSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwem0zODcuMyAxMS4zbC0xMDQgMTA0Yy00LjYgNC42LTExLjUgNS45LTE3LjQgMy41UzI1NiAzNjYuNSAyNTYgMzYwbDAtNTYtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtNTZjMC02LjUgMy45LTEyLjMgOS45LTE0LjhzMTIuOS0xLjEgMTcuNCAzLjVsMTA0IDEwNGM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnoiXX0sR09lPVBSLElSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lLXZvbHVtZSIsaWNvbjpbNTc2LDUxMixbInZvbHVtZS1jb250cm9sLXBob25lIl0sImYyYTAiLCJNMzQ0LTMyYzEyOC4xIDAgMjMyIDEwMy45IDIzMiAyMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMzIwIDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0IDc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNi0zOS40LTg4LTg4LTg4LTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xNDQuMSAxLjRjMTkuNy01LjQgNDAuMyA0LjcgNDguMSAyMy41bDQwLjUgOTcuM2M2LjkgMTYuNSAyLjEgMzUuNi0xMS44IDQ3bC00NC4xIDM2LjFjMzIuNSA3MS42IDg5IDEzMCAxNTkuMyAxNjQuOUwzNzQuNyAzMjNjMTEuMy0xMy45IDMwLjQtMTguNiA0Ny0xMS44TDUxOSAzNTEuOGMxOC44IDcuOCAyOC45IDI4LjQgMjMuNSA0OC4xbC0xLjUgNS41QzUyMy40IDQ3MC4xIDQ2MC45IDUyNS4zIDM4NC42IDUwOS4yIDIwOS42IDQ3Mi4xIDcxLjkgMzM0LjQgMzQuOCAxNTkuNCAxOC43IDgzLjEgNzMuOSAyMC42IDEzOC41IDIuOWw1LjUtMS41eiJdfSxZT2U9SVIsWk9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmVzIixpY29uOls1MTIsNTEyLFtdLCJmMWIzIiwiTTI4NC0xLjNjLTE3LjMtMTAtMzguNy0xMC01NiAwTDE0My44IDQ3LjNjLTE3LjMgMTAtMjggMjguNS0yOCA0OC41bDAgMTAxLjktODguMyA1MWMtMTcuMyAxMC0yOCAyOC41LTI4IDQ4LjVsMCA5Ny4zYzAgMjAgMTAuNyAzOC41IDI4IDQ4LjVsODQuMyA0OC42YzE3LjMgMTAgMzguNyAxMCA1NiAwbDg4LjMtNTEgODguMyA1MWMxNy4zIDEwIDM4LjcgMTAgNTYgMEw0ODQuNSA0NDNjMTcuMy0xMCAyOC0yOC41IDI4LTQ4LjVsMC05Ny4zYzAtMjAtMTAuNy0zOC41LTI4LTQ4LjVsLTg4LjMtNTEgMC0xMDEuOWMwLTIwLTEwLjctMzguNS0yOC00OC41TDI4NC0xLjN6TTIzMiAyOTIuNmwwIDEwNi41LTg4LjMgNTFjLTEuMiAuNy0yLjYgMS4xLTQgMS4xbDAtMTA1LjMgOTIuMy01My4zem0yMzEuNCAuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNGwwIDk3LjNjMCAyLjktMS41IDUuNS00IDYuOWwtODQuMyA0OC42Yy0xLjIgLjctMi42IDEuMS00IDEuMWwwLTEwNS4zIDkxLjItNTIuNnpNMzQ4LjMgOTUuOGwwIDEwMS45LTkyLjMgNTMuMyAwLTEwNi41IDkxLjItNTIuNmMuNyAxLjIgMS4xIDIuNiAxLjEgNHoiXX0sWE9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lIixpY29uOls1MTIsNTEyLFsxMjgyMjIsMTI4Mzc5XSwiZjA5NSIsIk0xNjAuMiAyNUMxNTIuMyA2LjEgMTMxLjctMy45IDExMi4xIDEuNGwtNS41IDEuNWMtNjQuNiAxNy42LTExOS44IDgwLjItMTAzLjcgMTU2LjQgMzcuMSAxNzUgMTc0LjggMzEyLjcgMzQ5LjggMzQ5LjggNzYuMyAxNi4yIDEzOC44LTM5LjEgMTU2LjQtMTAzLjdsMS41LTUuNWM1LjQtMTkuNy00LjctNDAuMy0yMy41LTQ4LjFsLTk3LjMtNDAuNWMtMTYuNS02LjktMzUuNi0yLjEtNDcgMTEuOGwtMzguNiA0Ny4yQzIzMy45IDMzNS40IDE3Ny4zIDI3NyAxNDQuOCAyMDUuM0wxODkgMTY5LjNjMTMuOS0xMS4zIDE4LjYtMzAuNCAxMS44LTQ3TDE2MC4yIDI1eiJdfSxLT2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9yaWktZ2F0ZSIsaWNvbjpbNDQ4LDUxMixbOTk2MV0sImY2YTEiLCJNMCA5NkwwIDI4LjVDMCAyMS42IDUuNiAxNiAxMi41IDE2IDE0LjggMTYgMTcgMTYuNiAxOSAxNy44TDU4IDQxLjJDODIuOSA1Ni4xIDExMS4zIDY0IDE0MC4zIDY0bDE2Ny40IDBjMjkgMCA1Ny41LTcuOSA4Mi4zLTIyLjhsMzktMjMuNGMxLjktMS4yIDQuMi0xLjggNi40LTEuOCA2LjkgMCAxMi41IDUuNiAxMi41IDEyLjVMNDQ4IDk2YzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgNjQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xOTIgMCAwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE5Mi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC02NEMyOC43IDE2MCAwIDEzMS4zIDAgOTZ6TTEyOCAyMjRsNjQgMCAwLTY0LTY0IDAgMCA2NHptMTI4IDBsNjQgMCAwLTY0LTY0IDAgMCA2NHoiXX0sUU9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY29uIixpY29uOls1NzYsNTEyLFsxMjkzNjNdLCJmN2U1IiwiTTU1NyA5Ni43YzE0LjQgMTQuNCAxMi40IDM4LjQtNC4zIDUwLjJsLTY0LjYgNDUuN2MtNDMuNyAzMC45LTc5LjIgNzEuOS0xMDMuNCAxMTkuNmwtMjUuMyA0OS44Yy0yNS4xIDQ5LjMtNjIuMSA5MS41LTEwNy44IDEyMi42bC03NC4xIDUwLjZjLTEzLjEgOC45LTMwLjcgNy4zLTQxLjgtMy45bC00NC45LTQ0LjkgODYuNS02Ni41YzQyLjMtMzIuNSA3Ni43LTc0LjMgMTAwLjYtMTIybDI0LjUtNDkuMWMyNC41LTQ5IDYxLjgtOTAuNiAxMDcuOS0xMjAuMmwxMDguNy02OS45IDM4IDM4ek00ODQuMiAyMy45TDM4NC4zIDg4LjJjLTUzLjQgMzQuMy05Ni41IDgyLjQtMTI0LjkgMTM5LjFsLTI0LjUgNDkuMWMtMjAuNiA0MS4zLTUwLjMgNzcuMy04Ni45IDEwNS40bC05MS40IDcwLjMtMzYuOS0zNi45Yy0xNC40LTE0LjQtMTIuNC0zOC40IDQuMy01MC4ybDY0LjYtNDUuN2M0My43LTMwLjkgNzkuMi03MS45IDEwMy40LTExOS42bDI1LjMtNDkuOEMyNDIuMyAxMDAuOCAyNzkuMyA1OC42IDMyNSAyNy40bDc0LjEtNTAuNmMxMy4xLTguOSAzMC42LTcuMyA0MS44IDMuOWw0My4zIDQzLjN6Il19LEpPZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZmFsbGluZy1idXJzdCIsaWNvbjpbNTc2LDUxMixbXSwiZTU0NyIsIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDUuNGMwIDU1LjItMjMuNyAxMDctNjMuOSAxNDMuMWw2Mi45IDc1LjUgODkgMGMxNS4xIDAgMjkuMyA3LjEgMzguNCAxOS4ybDQzLjIgNTcuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40TDM2OCAzMjAgMjYzLjIgMzIwIDM3Ni44IDQ1OS44YzExLjEgMTMuNyA5LjEgMzMuOS00LjcgNDVzLTMzLjkgOS4xLTQ1LTQuN0wxMzcuNCAyNjYuNmMtNi4xIDE1LTkuNCAzMS4zLTkuNCA0OGwwIDY5LjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OS40YzAtNjcuNCAzNS40LTEyOS45IDkzLjItMTY0LjZsNC42LTIuOEMyMDAuNCAxMjQgMjI0IDgyLjQgMjI0IDM3LjRsMC01LjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2IDg4QTU2IDU2IDAgMSAxIDEyOCA4OCA1NiA1NiAwIDEgMSAxNiA4OHptMzc2LTcuOWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0OHptMTA0IDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwem0tNTQuNS05Ny41Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMy45IDMzLjljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAweiJdfSxOUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdW90ZS1yaWdodCIsaWNvbjpbNDQ4LDUxMixbODIyMSwicXVvdGUtcmlnaHQtYWx0Il0sImYxMGUiLCJNNDQ4IDI5NmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDggMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTgtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTM2em0tMjU2IDBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNnoiXX0sZVJlPU5SLHRSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsLWZsYWciLGljb246WzY0MCw1MTIsW10sImU1MTQiLCJNNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yNjcuNSA1OS4xTDQwMCAxODYuOSA0MDAgNTAzLjRjLTkuNCA1LjQtMjAuMyA4LjYtMzIgOC42bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNDQtMTkuOSAwQzEyLjYgMzA0IDAgMjkxLjQgMCAyNzUuOSAwIDI2OC4zIDMuMSAyNjEgOC42IDI1NS43TDIxMi41IDU5LjFDMjE5LjkgNTIgMjI5LjcgNDggMjQwIDQ4czIwLjEgNCAyNy41IDExLjF6TTIwNC44IDI1Ni44bDAgNDQtNDQgMGMtOS43IDAtMTcuNiA3LjktMTcuNiAxNy42bDAgMzUuMmMwIDkuNyA3LjkgMTcuNiAxNy42IDE3LjZsNDQgMCAwIDQ0YzAgOS43IDcuOSAxNy42IDE3LjYgMTcuNmwzNS4yIDBjOS43IDAgMTcuNi03LjkgMTcuNi0xNy42bDAtNDQgNDQgMGM5LjcgMCAxNy42LTcuOSAxNy42LTE3LjZsMC0zNS4yYzAtOS43LTcuOS0xNy42LTE3LjYtMTcuNmwtNDQgMCAwLTQ0YzAtOS43LTcuOS0xNy42LTE3LjYtMTcuNmwtMzUuMiAwYy05LjcgMC0xNy42IDcuOS0xNy42IDE3LjZ6Il19LGFSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24iLGljb246WzQ0OCw1MTIsW10sImY1YjEiLCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDUwLjcgMCAxMjggMTI4LTEwNS40IDEwNS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDI4OCAzOTcuMyAzOTMuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDMzMy4zIDM1MiA0MzguNiAyNDYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyODggMzA2LjcgMjAyLjIgMjIwLjlDMjUxLjQgMjA5LjEgMjg4IDE2NC44IDI4OCAxMTIgMjg4IDUwLjEgMjM3LjkgMCAxNzYgMEwzMiAwek0xNzYgMTYwbC0xMTIgMCAwLTk2IDExMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4eiJdfSxpUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS10aHJlZSIsaWNvbjpbNDQ4LDUxMixbOTg1OF0sImY1MjciLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sclJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWxvY2siLGljb246WzU3Niw1MTIsW10sImU0ZDYiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyMS4zYy00Ni45IDE5LTgwIDY1LTgwIDExOC43bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA2NHpNMTc2IDM4NGwwIDgwIDgwIDAgMC02NC4xYzAtMTMuNyAxLjktMjcgNS41LTM5LjYtNS43LTUuMi0xMy4yLTguMy0yMS41LTguM2wtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTMwNyAyMjQuM2MtMS0uMi0yLS4zLTMtLjNsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNi43IDBjMi4xLTIyLjggOC40LTQ0LjMgMTguMy02My43ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMzUyIDgwLjFjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDY0IDAgMC00Ny45ek0zNTIgNDAwYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTUwLjZjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDUwLjZjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zbDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEyOCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2eiJdfSxGUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZC1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0NywiZHJpdmVycy1saWNlbnNlIl0sImYyYzIiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NEwwIDk2em0wIDQ4bDU3NiAwIDAgMjcyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNDR6TTI0Ny4zIDQxNmMyMC4yIDAgMzUuMy0xOS40IDIyLjQtMzUtMTQuNy0xNy43LTM2LjktMjktNjEuNy0yOWwtNjQgMGMtMjQuOCAwLTQ3IDExLjMtNjEuNyAyOS0xMi45IDE1LjYgMi4yIDM1IDIyLjQgMzVsMTQyLjUgMHpNMTc2IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzYwIDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTExMiAweiJdfSxzUmU9RlIsT1I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXBsYXkiLGljb246WzUxMiw1MTIsWzYxNDY5LCJwbGF5LWNpcmNsZSJdLCJmMTQ0IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTE4OC4zIDE0Ny4xYy03LjYgNC4yLTEyLjMgMTIuMy0xMi4zIDIwLjlsMCAxNzZjMCA4LjcgNC43IDE2LjcgMTIuMyAyMC45czE2LjggNC4xIDI0LjMtLjVsMTQ0LTg4YzcuMS00LjQgMTEuNS0xMi4xIDExLjUtMjAuNXMtNC40LTE2LjEtMTEuNS0yMC41bC0xNDQtODhjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNXoiXX0sblJlPU9SLFJSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE3NiAxNjRjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxvUmU9UlIsbFJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlYWYiLGljb246WzUxMiw1MTIsW10sImYwNmMiLCJNNDcxLjMgNi43QzQ3Ny43IC42IDQ4Ny0xLjYgNDk1LjYgMS4yIDUwNS40IDQuNSA1MTIgMTMuNyA1MTIgMjRsMCAxODYuOWMwIDEzMS4yLTEwOC4xIDIzNy4xLTIzOC44IDIzNy4xLTc3IDAtMTQzLjQtNDkuNS0xNjcuNS0xMTguNy0zNS40IDMwLjgtNTcuNyA3Ni4xLTU3LjcgMTI2LjcgMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCA0NjkuMyAwIDQ1NkMwIDM4MS4xIDM4LjIgMzE1LjEgOTYuMSAyNzYuMyAxMzEuNCAyNTIuNyAxNzMuNSAyNDAgMjE2IDI0MGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwYy0zOS43IDAtNzcuMyA4LjgtMTExIDI0LjUgMjMuMy03MCA4OS4yLTEyMC41IDE2Ny0xMjAuNSA2Ni40IDAgMTE1LjgtMjIuMSAxNDguNy00NCAxOS4yLTEyLjggMzUuNS0yOC4xIDUwLjctNDUuM3oiXX0sY1JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXktdXNlciIsaWNvbjpbNTEyLDUxMixbXSwiZTA2NSIsIk0yMzQuMiA4LjZjMTIuMy0xMS40IDMxLjMtMTEuNCA0My41IDBMMzY4IDkyLjMgMzY4IDgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMDEuNSAzNy44IDM1LjFjOS42IDkgMTIuOCAyMi45IDggMzUuMVM0OTMuMiAyNzIgNDgwIDI3MmwtMTYgMCAwIDE3NmMwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOHpNMzEyIDI1NmE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6TTE0NCA0MzJjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6Il19LFNtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdGF0ZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbInJlZG8tYWx0Iiwicm90YXRlLWZvcndhcmQiXSwiZjJmOSIsIk00ODggMTkybC0xNDQgMGMtOS43IDAtMTguNS01LjgtMjIuMi0xNC44cy0xLjctMTkuMyA1LjItMjYuMmw0Ni43LTQ2LjdjLTc1LjMtNTguNi0xODQuMy01My4zLTI1My41IDE1LjktNzUgNzUtNzUgMTk2LjUgMCAyNzEuNXMxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTQuMy05NC4zIDI0My43LTk5LjYgMzQ0LjMtMTYuMkw0NzEgN2M2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzUxMiAxNC4zIDUxMiAyNGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHoiXX0sZFJlPVNtLHBSZT1TbSxoUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9vdGgiLGljb246WzQ0OCw1MTIsWzEyOTQ2M10sImY1YzkiLCJNMTQ1IDUuN0wyMjQgMzIgMzAzIDUuN0MzMTQuMyAxLjkgMzI2IDAgMzM3LjkgMCAzOTguNyAwIDQ0OCA0OS4zIDQ0OCAxMTAuMWwwIDY4LjVjMCAyOS40LTkuNSA1OC4xLTI3LjIgODEuNmwtMS4xIDEuNWMtMTIuOSAxNy4yLTIxLjMgMzcuNC0yNC4zIDU4LjdMMzczLjcgNDcxLjljLTMuMyAyMy0yMyA0MC4xLTQ2LjIgNDAuMS0yMi44IDAtNDIuMy0xNi41LTQ2LTM5TDI2MS4zIDM1MS42Yy0zLTE4LjItMTguOC0zMS42LTM3LjMtMzEuNnMtMzQuMiAxMy40LTM3LjMgMzEuNkwxNjYuNSA0NzNjLTMuOCAyMi41LTIzLjIgMzktNDYgMzktMjMuMiAwLTQyLjktMTcuMS00Ni4yLTQwLjFMNTIuNiAzMjAuNWMtMy0yMS4zLTExLjQtNDEuNS0yNC4zLTU4LjdsLTEuMS0xLjVDOS41IDIzNi43IDAgMjA4LjEgMCAxNzguN2wwLTY4LjVDMCA0OS4zIDQ5LjMgMCAxMTAuMSAwIDEyMiAwIDEzMy43IDEuOSAxNDUgNS43eiJdfSx1UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2hpbW5leS13aW5kb3ciLGljb246WzUxMiw1MTIsW10sImUwMGQiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6TTIxNiAyMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC04MCAweiJdfSxmUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW90b3JjeWNsZSIsaWNvbjpbNjQwLDUxMixbMTI3OTQ5XSwiZjIxYyIsIk0yODAgMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYuNiAwIDIyLjUgNDguNy05NS4xIDcxLjNjLTMzLjQtMjUuMS03NS00MC0xMjAtNDBsLTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMGM3OC41IDAgMTQzLjIgNTkuNiAxNTEuMiAxMzZsLTI1LjQgMGMtMTEuMi01OS4yLTYzLjMtMTA0LTEyNS44LTEwNC03MC43IDAtMTI4IDU3LjMtMTI4IDEyOFM3My4zIDQ4MCAxNDQgNDgwYzYyLjUgMCAxMTQuNS00NC44IDEyNS44LTEwNGw1MC4yIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yMi41YzAtNDUuMSAyNS43LTg1LjQgNjUuNS0xMDcuN2wxMi4xIDI2LjFjLTMyLjQgMjMuMi01My41IDYxLjItNTMuNSAxMDQuMSAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4LTU3LjMtMTI4LTEyOC0xMjhjLTEwLjcgMC0yMSAxLjMtMzAuOSAzLjhMNDMzLjggMTYwIDQ4OCAxNjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNTMuMyAwYy02LjkgMC0xMy43IDIuMi0xOS4yIDYuNGwtMTcuMSAxMi44LTI0LjYtNTMuM0MzNjkuOSAyMS40IDM2MS40IDE2IDM1MiAxNmwtNzIgMHpNNDQ1LjggMzAwLjRsMjguNCA2MS42YzUuNiAxMiAxOS44IDE3LjMgMzEuOCAxMS43czE3LjMtMTkuOCAxMS43LTMxLjhsLTI4LjUtNjEuNmMyLjItLjIgNC40LS4zIDYuNy0uMyAzOS44IDAgNzIgMzIuMiA3MiA3MnMtMzIuMiA3Mi03MiA3Mi03Mi0zMi4yLTcyLTcyYzAtMjAuMiA4LjMtMzguNSAyMS44LTUxLjZ6TTE0NCA0MjRjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzJjMzEuMyAwIDU4IDIwIDY3LjkgNDhMMTQ0IDMyOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2Ny45IDBjLTkuOSAyOC0zNi42IDQ4LTY3LjkgNDh6Il19LEJSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkLWZhc3QiLGljb246WzUxMiw1MTIsWzkxOTgsImZhc3QtYmFja3dhcmQiXSwiZjA0OSIsIk00OTIuMiA0NzcuNmMtMTIgNS0yNS43IDIuMi0zNC45LTYuOUwyODggMzAxLjMgMjg4IDQ0OGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOUw2NCAzMDEuMyA2NCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyUzY0IDQ2LjMgNjQgNjRMNjQgMjEwLjcgMjMzLjQgNDEuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMyODggNTEuMSAyODggNjRsMCAxNDYuNyAxNjkuNC0xNjkuNGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM1MTIgNTEuMSA1MTIgNjRsMCAzODRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnoiXX0sbVJlPUJSLEhSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFkZHJlc3MtYm9vayIsaWNvbjpbNTEyLDUxMixbNjIxMzgsImNvbnRhY3QtYm9vayJdLCJmMmI5IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHpNMjA4IDI4OGw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNmwtMTkyIDBjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNNTEyIDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0em0wIDEyOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHpNNDk2IDMyMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sZ1JlPUhSLGJSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWlsYm9hdCIsaWNvbjpbNTEyLDUxMixbXSwiZTQ0NSIsIk0yNDAgMzUuOWwwIDM0OC4xLTIyNCAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMjg4IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC04LjgtNy4yLTE2LTE2LTE2bC0yMDggMCAwLTQ4IDE2MS43IDBjMTIuOSAwIDIwLjUtMTQuNCAxMy4yLTI1TDI2OS4yIDI2LjljLTguOS0xMy0yOS4yLTYuNy0yOS4yIDl6TTE5MiAzMjBsMC0xODQuMmMwLTE2LjEtMjEtMjIuMS0yOS42LTguNUw0Ny4zIDMxMS41Yy02LjcgMTAuNyAxIDI0LjUgMTMuNiAyNC41TDE3NiAzMzZjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSx2UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1ib29rbWFyayIsaWNvbjpbNDQ4LDUxMixbXSwiZTBiYiIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDE2OS40YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42LTYgMC0xMS44LTIuNC0xNi02LjZMMjcyIDE0NCAyMzAuNiAxODUuNGMtNC4yIDQuMi0xMCA2LjYtMTYgNi42LTEyLjUgMC0yMi42LTEwLjEtMjIuNi0yMi42TDE5MiAwIDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSx5UmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1hcnJvdy1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTMwNSAyMjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSxxUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLWxpbmVzIixpY29uOlszODQsNTEyLFsxMjc4OTcsIm1pY3JvcGhvbmUtYWx0Il0sImYzYzkiLCJNOTYgOTZjMC01MyA0My05NiA5Ni05NiA1MC4zIDAgOTEuNiAzOC43IDk1LjcgODhMMjMyIDg4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDAgMCA0OC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU1LjcgMGMtNC4xIDQ5LjMtNDUuMyA4OC05NS43IDg4LTUzIDAtOTYtNDMtOTYtOTZMOTYgOTZ6TTI0IDE2MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwYzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDBjMCA5Ny45LTczLjMgMTc4LjctMTY4IDE5MC41bDAgNDkuNSA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDkuNUM3My4zIDQwMi43IDAgMzIxLjkgMCAyMjRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0seFJlPXFSLFZSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcGx5LWFsbCIsaWNvbjpbNTc2LDUxMixbIm1haWwtcmVwbHktYWxsIl0sImYxMjIiLCJNMzMyLjIgMTguNGMxMiA1IDE5LjggMTYuNiAxOS44IDI5LjZsMCA4MCA0OCAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMS0yLjUgMS40LTUuMyAxLjktOC4xIDEuOS0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43IDAtNy41IDQuMy0xNC40IDkuOC0xOS41IDkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuNyAwLTUzLTQzLTk2LTk2LTk2bC0zMiAwIDAgODBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02Ljl6TTIwNS42IDIzLjFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNTQuNiAyMDggMjA1LjYgMzU4LjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxMCAyMzEuMmMtNi40LTYtMTAtMTQuNC0xMC0yMy4yczMuNi0xNy4yIDEwLTIzLjJMMTcxLjYgMjMuMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sd1JlPVZSLE1SZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bml2ZXJzYWwtYWNjZXNzIixpY29uOls1MTIsNTEyLFtdLCJmMjlhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE2MS41LTg2LjFjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41bDExLjkgNS4xYzE3LjMgNy40IDM1LjIgMTIuOSA1My42IDE2LjNsMCA1MC4xYzAgNC4zLS43IDguNi0yLjEgMTIuNmwtMjguNyA4Ni4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDI0LjQtNzMuMmMxLjMtMy44IDQuOC02LjQgOC44LTYuNHM3LjYgMi42IDguOCA2LjRsMjQuNCA3My4yYzQuMiAxMi42IDE3LjggMTkuNCAzMC40IDE1LjJTMzM5IDM5NyAzMzQuOCAzODQuNGwtMjguNy04Ni4xYy0xLjQtNC4xLTIuMS04LjMtMi4xLTEyLjZsMC01MC4xYzE4LjQtMy41IDM2LjMtOC45IDUzLjYtMTYuM2wxMS45LTUuMWMxMi4yLTUuMiAxNy44LTE5LjMgMTIuNi0zMS41cy0xOS4zLTE3LjgtMzEuNS0xMi42TDMzOC43IDE3NWMtMjYuMSAxMS4yLTU0LjIgMTctODIuNyAxN3MtNTYuNS01LjgtODIuNy0xN2wtMTEuOS01LjF6TTI1NiAxNjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxDbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcGFwZXIiLGljb246WzUxMiw1MTIsWzEyOTUzMSw2MzI2MywidG9pbGV0LXBhcGVyLWFsdCIsInRvaWxldC1wYXBlci1ibGFuayJdLCJmNzFlIiwiTTMyNy4xIDMyYy04LjggMTEuMS0xNiAyMy4xLTIxLjkgMzQuOC0yMS40IDQyLjctMzMuMiA5OC40LTMzLjIgMTU3LjJsMCAyNjRjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNTQ0Yy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDIyNEMwIDExOCA0MyAzMiA5NiAzMmwyMzEuMSAwek00MTYgNDE2Yy01MyAwLTk2LTg2LTk2LTE5MnM0My0xOTIgOTYtMTkyIDk2IDg2IDk2IDE5Mi00MyAxOTItOTYgMTkyem0wLTEyOGMxNy43IDAgMzItMjguNyAzMi02NHMtMTQuMy02NC0zMi02NC0zMiAyOC43LTMyIDY0IDE0LjMgNjQgMzIgNjR6Il19LHpSZT1DbSxrUmU9Q20sU1JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZyLWNhcmRib2FyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjcyOSIsIk01MTIgOTZMNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDExNy41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdsMzMuOS0zMy45YzcuMi03LjIgMTcuMS0xMS4zIDI3LjMtMTEuM3MyMC4xIDQuMSAyNy4zIDExLjNsMzMuOSAzMy45YzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NHpNODAgMjQwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMzUyLTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxDUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGl6emEtc2xpY2UiLGljb246WzUxMiw1MTIsW10sImY4MTgiLCJNMTY5LjcgLjljLTIyLjgtMS42LTQxLjkgMTQtNDcuNSAzNC43TDExMi41IDcyQzI5My4zIDcyLjMgNDM5LjcgMjE4LjcgNDQwIDM5OS41bDM2LjQtOS43YzIwLjgtNS41IDM2LjMtMjQuNyAzNC43LTQ3LjUtMTIuNi0xODIuOC0xNTguNi0zMjguOC0zNDEuNC0zNDEuNHptMjIyIDQxMS41Yy4yLTQuMSAuMy04LjIgLjMtMTIuNCAwLTE1NC42LTEyNS40LTI4MC0yODAtMjgwLTQuMSAwLTguMyAuMS0xMi40IC4zTC41IDQ5MS45Yy0xLjUgNS41IC4xIDExLjQgNC4xIDE1LjRzOS45IDUuNiAxNS40IDQuMWwzNzEuNi05OS4xek0xNzYgMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMTI4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTk2IDM4NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxfUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3ByYXktY2FuIixpY29uOls1NzYsNTEyLFtdLCJmNWJkIiwiTTE5MiAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC0xMjggMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAyNTZjMC01MyA0My05NiA5Ni05NmwxMjggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjA4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yMjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yMDh6bTI0MCA4MGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTMyMCA2NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTUxMiAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ4IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGpSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZS1sb3ciLGljb246WzQ0OCw1MTIsWzEyODI2NCwidm9sdW1lLWRvd24iXSwiZjAyNyIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNMzgwLjYgMTgxLjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzNjEuMSAyMjcuNiAzNjggMjQxIDM2OCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MDIuMSAzMTIuOSA0MTYgMjg2LjEgNDE2IDI1NnMtMTMuOS01Ni45LTM1LjUtNzQuNXoiXX0sVFJlPWpSLExSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9zcyIsaWNvbjpbMzg0LDUxMixbMTI4MzI3LDEwMDEzXSwiZjY1NCIsIk0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA4MC04MCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDgwIDAgMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMzIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIwOCA4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgwIDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OEwxNzYgMHoiXX0sVVI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uIixpY29uOlszODQsNTEyLFsxMjk0ODUsIm1hbGUiXSwiZjE4MyIsIk0yNDggMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMjc0IDEzMiAyMzQuMyAxMTIgMTkyIDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDExMiAyMzYuNyAxMTIgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6Il19LCRSZT1VUixXUj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MiLGljb246WzM4NCw1MTIsWzkyMDMsNjIwMzIsImhvdXJnbGFzcy1lbXB0eSJdLCJmMjU0IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTFjMCA0Mi40LTE2LjkgODMuMS00Ni45IDExMy4xbC02Ny45IDY3LjkgNjcuOSA2Ny45YzMwIDMwIDQ2LjkgNzAuNyA0Ni45IDExMy4xbDAgMTFjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtMTFjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDY3LjktNjcuOS02Ny45LTY3LjlDNDguOSAxNTguMSAzMiAxMTcuNCAzMiA3NWwwLTExQzE0LjMgNjQgMCA0OS43IDAgMzJ6TTk2IDY0bDAgMTFjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlsNjcuOSA2Ny45IDY3LjktNjcuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45bDAtMTEtMTkyIDB6bTAgMzg0bDE5MiAwIDAtMTFjMC0yNS41LTEwLjEtNDkuOS0yOC4xLTY3LjlsLTY3LjktNjcuOS02Ny45IDY3LjljLTE4IDE4LTI4LjEgNDIuNC0yOC4xIDY3LjlsMCAxMXoiXX0sQVJlPVdSLERSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXNoIixpY29uOls1NzYsNTEyLFsxMjgwMzFdLCJmNTc4IiwiTTE4MC41IDE0MS41QzIxOS43IDEwOC41IDI3Mi42IDgwIDMzNiA4MHMxMTYuMyAyOC41IDE1NS41IDYxLjVjMzkuMSAzMyA2Ni45IDcyLjQgODEgOTkuOCA0LjcgOS4yIDQuNyAyMC4xIDAgMjkuMy0xNC4xIDI3LjQtNDEuOSA2Ni44LTgxIDk5LjgtMzkuMiAzMy4xLTkyIDYxLjUtMTU1LjUgNjEuNXMtMTE2LjMtMjguNS0xNTUuNS02MS41Yy0xNi4yLTEzLjctMzAuNS0yOC41LTQyLjctNDMuMUw0OC4xIDM3OS42Yy0xMi41IDcuMy0yOC40IDUuMy0zOC43LTQuOXMtMTIuNC0yNi01LjMtMzguNkw1MCAyNTYgNC4yIDE3NS45Yy03LjItMTIuNi01LTI4LjQgNS4zLTM4LjZzMjYuMS0xMi4yIDM4LjctNC45bDg5LjcgNTIuM2MxMi4yLTE0LjYgMjYuNS0yOS40IDQyLjctNDMuMXpNNDQ4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxFUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bXN0aWNrLWJpdGUiLGljb246WzUxMiw1MTIsW10sImY2ZDciLCJNMTYwIDI2NS4yYzAgOC41LTMuNCAxNi42LTkuNCAyMi42bC0yNi44IDI2LjhjLTEyLjMgMTIuMy0zMi41IDExLjQtNDkuNCA3LjItNC42LTEuMS05LjUtMS44LTE0LjUtMS44LTMzLjEgMC02MCAyNi45LTYwIDYwczI2LjkgNjAgNjAgNjBjNi4zIDAgMTIgNS43IDEyIDEyIDAgMzMuMSAyNi45IDYwIDYwIDYwczYwLTI2LjkgNjAtNjBjMC01LS42LTkuOC0xLjgtMTQuNS00LjItMTYuOS01LjItMzcuMSA3LjItNDkuNGwyNi44LTI2LjhjNi02IDE0LjEtOS40IDIyLjYtOS40bDg5LjIgMGM2LjMgMCAxMi40LS4zIDE4LjUtMSAxMS45LTEuMiAxNi40LTE1LjUgMTAuOC0yNi04LjUtMTUuOC0xMy4zLTMzLjgtMTMuMy01MyAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA4IDAgMTUuNyAuOCAyMy4yIDIuNCAxMS43IDIuNSAyNC4xLTUuOSAyMi0xNy42LTE0LjctODIuMy04Ni43LTE0NC44LTE3My4yLTE0NC44LTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2bDAgODkuMnoiXX0sUFJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTQ3MyIsIk0xOTIgODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJ6TTAgMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMjcyek00MzIgOTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yODhjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LElSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdG9tIixpY29uOls0NDgsNTEyLFs5ODgzXSwiZjVkMiIsIk0yMjQgMzk4LjhjLTExLjggNS4xLTIzLjQgOS43LTM0LjkgMTMuNSAxNi43IDMzLjggMzEgMzUuNyAzNC45IDM1LjdzMTguMS0xLjkgMzQuOS0zNS43Yy0xMS40LTMuOS0yMy4xLTguNC0zNC45LTEzLjV6TTQxNCAyNTZjMzMgNDUuMiA0NC4zIDkwLjkgMjMuNiAxMjgtMjAuMiAzNi4zLTYyLjUgNDkuMy0xMTUuMiA0My4yLTIyIDUyLjEtNTUuNyA4NC44LTk4LjQgODQuOHMtNzYuNC0zMi43LTk4LjQtODQuOEM3Mi45IDQzMy4zIDMwLjYgNDIwLjMgMTAuNCAzODQtMTAuMyAzNDYuOSAxIDMwMS4yIDM0IDI1NiAxIDIxMC44LTEwLjMgMTY1LjEgMTAuNCAxMjggMzAuNiA5MS43IDcyLjkgNzguNyAxMjUuNiA4NC44IDE0Ny42IDMyLjcgMTgxLjIgMCAyMjQgMHM3Ni40IDMyLjcgOTguNCA4NC44YzUyLjctNi4xIDk1IDYuOCAxMTUuMiA0My4yIDIwLjcgMzcuMSA5LjQgODIuOC0yMy42IDEyOHptLTY1LjggNjcuNGMtMS43IDE0LjItMy45IDI4LTYuNyA0MS4yIDMxLjggMS40IDM4LjYtOC43IDQwLjItMTEuNyAyLjMtNC4yIDctMTcuOS0xMS45LTQ4LjEtNi44IDYuMy0xNCAxMi41LTIxLjYgMTguNnptLTYuNy0xNzUuOWMyLjggMTMuMSA1IDI2LjkgNi43IDQxLjIgNy42IDYuMSAxNC44IDEyLjMgMjEuNiAxOC42IDE4LjktMzAuMiAxNC4yLTQ0IDExLjktNDguMS0xLjYtMi45LTguNC0xMy00MC4yLTExLjd6TTI1OC45IDk5LjdDMjQyLjEgNjUuOSAyMjcuOSA2NCAyMjQgNjRzLTE4LjEgMS45LTM0LjkgMzUuN2MxMS40IDMuOSAyMy4xIDguNCAzNC45IDEzLjUgMTEuOC01LjEgMjMuNC05LjcgMzQuOS0xMy41em0tMTU5IDg4LjljMS43LTE0LjMgMy45LTI4IDYuNy00MS4yLTMxLjgtMS40LTM4LjYgOC43LTQwLjIgMTEuNy0yLjMgNC4yLTcgMTcuOSAxMS45IDQ4LjEgNi44LTYuMyAxNC0xMi41IDIxLjYtMTguNnpNNzguMiAzMDQuOGMtMTguOSAzMC4yLTE0LjIgNDQtMTEuOSA0OC4xIDEuNiAyLjkgOC40IDEzIDQwLjIgMTEuNy0yLjgtMTMuMS01LTI2LjktNi43LTQxLjItNy42LTYuMS0xNC44LTEyLjMtMjEuNi0xOC42ek0zMDQgMjU2YTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHptLTgwLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sTlJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InAiLGljb246WzMyMCw1MTIsWzExMl0sIjUwIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMTI4IDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBTMjQ4LjQgMzUyIDE2MCAzNTJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI4OGw5NiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2bC05NiAwIDAgMTkyeiJdfSxGUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamV0LWZpZ2h0ZXItdXAiLGljb246WzUxMiw1MTIsW10sImU1MTgiLCJNMjA2LjggNDcuOEMyMDIuMyA1OC41IDIwMCA3MCAyMDAgODEuNmwwIDEwMC40LTE1MiAxMTQgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDIzNC43IDAgMjQ4TDAgMzkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04IDE1MiAwIDAgNTQuNC02NiA1Mi44Yy0zLjggMy02IDcuNi02IDEyLjVsMCAyNC4zYzAgOC44IDcuMiAxNiAxNiAxNmw4OCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQuM2MwLTQuOS0yLjItOS41LTYtMTIuNWwtNjYtNTIuOCAwLTU0LjQgMTUyIDAgMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OC0xNTItMTE0IDAtMTAwLjRjMC0xMS42LTIuMy0yMy4xLTYuOC0zMy44bC0yNy4xLTY1QzI3NC40LTI2LjIgMjY1LjctMzIgMjU2LTMycy0xOC40IDUuOC0yMi4yIDE0LjhsLTI3LjEgNjV6Il19LE9SZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MCIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43eiJdfSxSUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hlZXQtcGxhc3RpYyIsaWNvbjpbMzg0LDUxMixbXSwiZTU3MSIsIk0wIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDkuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDM2NS4zIDM4Ni43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4em0yMDggNS41bDAtOTMuNWMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5My41IDAtMTE3LjUgMTE3LjV6TTE1MyAxMDVsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ4LTQ4YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXptOTYgMzJMMTM3IDI0OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwyMTUgMTAzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXoiXX0sQlJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InYiLGljb246WzM4NCw1MTIsWzExOF0sIjU2IiwiTTE5LjcgMzQuNWMxNi4zLTYuOCAzNSAuOSA0MS44IDE3LjJMMTkyIDM2NC44IDMyMi41IDUxLjdjNi44LTE2LjMgMjUuNS0yNCA0MS44LTE3LjJzMjQgMjUuNSAxNy4yIDQxLjhsLTE2MCAzODRjLTUgMTEuOS0xNi42IDE5LjctMjkuNSAxOS43cy0yNC42LTcuOC0yOS41LTE5LjdMMi41IDc2LjNjLTYuOC0xNi4zIC45LTM1IDE3LjItNDEuOHoiXX0sR1I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3Qtc3F1YXJlcyJdLCJmMDNhIiwiTTQwIDQ4QzI2LjcgNDggMTYgNTguNyAxNiA3MmwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNEw0MCA0OHpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6TTE2IDIzMmwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTQwIDM2OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LEhSZT1HUixxUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGlzY2VzIixpY29uOls0NDgsNTEyLFtdLCJlODRjIiwiTTQwLjQgMTAuNGMxMS45LTEzIDMyLjItMTMuOSA0NS4yLTIgMi45IDIuNyAyOC4zIDI2LjcgNTMuNiA2Ny44IDIyLjMgMzYuMiA0NSA4Ni42IDUxLjEgMTQ3LjhsNjcuMyAwYzYuMS02MS4xIDI4LjgtMTExLjYgNTEuMS0xNDcuOCAyNS4zLTQxLjEgNTAuNy02NS4xIDUzLjYtNjcuOCAxMy0xMS45IDMzLjMtMTEuMSA0NS4yIDIgMTEuOSAxMyAxMSAzMy4zLTIgNDUuMi0xLjQgMS4zLTIyIDIxLjEtNDIuNCA1NC4yLTE3LjkgMjkuMS0zNS40IDY4LTQxLjIgMTE0LjJsOTQgMCAzLjMgLjJjMTYuMSAxLjYgMjguNyAxNS4zIDI4LjcgMzEuOHMtMTIuNiAzMC4yLTI4LjcgMzEuOGwtMy4zIC4yLTk0IDBjNS44IDQ2LjIgMjMuMyA4NS4xIDQxLjIgMTE0LjIgMjAuNCAzMy4xIDQxIDUyLjkgNDIuNCA1NC4yIDEzIDExLjkgMTMuOSAzMi4yIDIgNDUuMi0xMS45IDEzLTMyLjIgMTMuOS00NS4yIDItMi45LTIuNy0yOC4zLTI2LjctNTMuNi02Ny44LTIyLjMtMzYuMi00NS04Ni42LTUxLjEtMTQ3LjhsLTY3LjMgMGMtNi4xIDYxLjEtMjguOCAxMTEuNi01MS4xIDE0Ny44LTI1LjMgNDEuMS01MC43IDY1LjEtNTMuNiA2Ny44LTEzIDExLjktMzMuMyAxMS4xLTQ1LjItMi0xMS45LTEzLTExLTMzLjMgMi00NS4yIDEuNC0xLjMgMjItMjEuMSA0Mi40LTU0LjIgMTcuOS0yOS4xIDM1LjQtNjggNDEuMi0xMTQuMmwtOTQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NCAwYy01LjgtNDYuMi0yMy4zLTg1LjEtNDEuMi0xMTQuMi0yMC40LTMzLjEtNDEtNTIuOS00Mi40LTU0LjItMTMtMTEuOS0xMy45LTMyLjItMi00NS4yeiJdfSxWUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29sYXItcGFuZWwiLGljb246WzU3Niw1MTIsW10sImY1YmEiLCJNMTIxLjggMzJjLTMwIDAtNTYgMjAuOC02Mi41IDUwLjFMOS42IDMwNi4xQy43IDM0Ni4xIDMxLjEgMzg0IDcyIDM4NGwxODQuMSAwIDAgNjQtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0IDE4NC4xIDBjNDAuOSAwIDcxLjQtMzcuOSA2Mi41LTc3LjlsLTQ5LjgtMjI0QzUxMC40IDUyLjggNDg0LjUgMzIgNDU0LjUgMzJMMTIxLjggMzJ6TTI0NS42IDk2bDg1LjIgMCA3LjMgODgtOTkuOCAwIDcuMy04OHptLTU1LjUgODhsLTg3LjggMCAxOS42LTg4IDc1LjYgMC03LjMgODh6TTkxLjYgMjMybDk0LjUgMC03LjMgODgtMTA2LjcgMCAxOS42LTg4em0xNDIuNiAwbDEwNy44IDAgNy4zIDg4LTEyMi41IDAgNy4zLTg4em0xNTYgMGw5NC41IDAgMTkuNiA4OC0xMDYuNyAwLTcuMy04OHpNNDc0IDE4NGwtODcuOCAwLTcuMy04OCA3NS42IDAgMTkuNiA4OHoiXX0salJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhbmQtbWluZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZTUxYiIsIk0zMTIgMGwwIDEyOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNEwyNjQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek0xNjAgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OGw4MCAwIDAtMzJ6TTEyIDExNC43YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43bDk2IDY0YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zcy0yMi4zIDE0LTMzLjMgNi43bC05Ni02NGMtMTEtNy40LTE0LTIyLjMtNi43LTMzLjN6TTUzMC43IDEwOGMxMS03LjQgMjUuOS00LjQgMzMuMyA2LjdzNC40IDI1LjktNi43IDMzLjNsLTk2IDY0Yy0xMSA3LjQtMjUuOSA0LjQtMzMuMy02LjdzLTQuNC0yNS45IDYuNy0zMy4zbDk2LTY0eiJdfSxfbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkcGhvbmVzIixpY29uOls0NDgsNTEyLFsxMjc5MTEsNjI4NjMsImhlYWRwaG9uZXMtYWx0IiwiaGVhZHBob25lcy1zaW1wbGUiXSwiZjAyNSIsIk02NCAyMjRjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBzMTYwIDcxLjYgMTYwIDE2MGwwIDM3LjVjLTEwLTMuNS0yMC44LTUuNS0zMi01LjVsLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTE2MEM0NDggMTAwLjMgMzQ3LjcgMCAyMjQgMFMwIDEwMC4zIDAgMjI0TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMGMtMTEuMiAwLTIyIDEuOS0zMiA1LjVMNjQgMjI0eiJdfSxVUmU9X20sV1JlPV9tLEdSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMiLGljb246WzQ0OCw1MTIsWzEyODY1M10sImYyMDciLCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM4NGMwIDI5LjggMjAuNCA1NC45IDQ4IDYybDAgMzRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE5MiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM0YzI3LjYtNy4xIDQ4LTMyLjIgNDgtNjJsMC0yODhjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxNzZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTA0IDAgMCAxMTItMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDh6bTE4NCA4MGwwLTExMiAxMDQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMDQgMHpNOTYgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMjU2IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNTIgNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsOTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LFlSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBvd2VycG9pbnQiLGljb246WzM4NCw1MTIsW10sImYxYzQiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1MiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yNCAyNCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcycy0zMi4yLTcyLTcyLTcybC00OCAwem00OCA5NmwtMjQgMCAwLTQ4IDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LFlSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InF1b3RlLWxlZnQiLGljb246WzQ0OCw1MTIsWzgyMjAsInF1b3RlLWxlZnQtYWx0Il0sImYxMGQiLCJNMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMTZ6bTI1NiAwYzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTEzNnoiXX0sWlJlPVlSLFhSZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGV2cm9uLWRvd24iLGljb246WzQ0OCw1MTIsW10sImYwNzgiLCJNMjAxLjQgNDA2LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTkyLTE5MmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyMjQgMzM4LjcgNTQuNiAxNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTkyIDE5MnoiXX0sWlI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYXNpYSIsaWNvbjpbNTEyLDUxMixbMTI3NzU5LCJnbG9iZS1hc2lhIl0sImY1N2UiLCJNNTAgMjg0LjhjNC4yIDIuMSA5IDMuMiAxNCAzLjJsNTAuNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDEzLjMgMTMuM2M2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMTguNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQtMTAuNyAyNC0yNGwwLTQyLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsMTMuMy0xMy4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNkwzMDQgNTdjMC0xLjItLjEtMi4zLS4yLTMuNS0xNS40LTMuNi0zMS40LTUuNS00Ny44LTUuNS0xMTQuOSAwLTIwOCA5My4xLTIwOCAyMDggMCA5LjggLjcgMTkuNCAyIDI4Ljh6bTQwMy4zIDM3LjNjLTMuMi0xLjQtNi43LTIuMS0xMC41LTIuMUw0MzIgMzIwYy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzQuNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNGwtNDUuMyA0NS4zYy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE4LjcgMGM4LjUgMCAxNi42IDMuNCAyMi42IDkuNCAyLjIgMi4yIDQuNyA0LjEgNy4zIDUuNSAzOS4zLTI1LjQgNjkuNS02My42IDg0LjYtMTA4Ljh6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTEyOCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMjcyIDI1NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnptNDgtMTEybDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2eiJdfSxLUmU9WlIsUVJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNlbnQtc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTNmNSIsIk0yMDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1LjRjNDMuNiA1LjIgODMgMjQuNSAxMTMuMyA1My4xIDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM2MtMjQuNC0yMy01Ny4yLTM3LjEtOTMuMy0zNy4xLTc1LjEgMC0xMzYgNjAuOS0xMzYgMTM2czYwLjkgMTM2IDEzNiAxMzZjMzYuMiAwIDY5LTE0LjEgOTMuMy0zNy4xIDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yQzMyMyA0MzAuMSAyODMuNiA0NDkuNCAyNDAgNDU0LjZsMCAyNS40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjhDODQuNyA0MzMuNSAxNiAzNTIuOCAxNiAyNTZTODQuNyA3OC41IDE3NiA2MGwwLTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxKUmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWNhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3MiIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwIDE1NC40YzAtNS44IDQuNy0xMC40IDEwLjQtMTAuNGwuMiAwYzMuNCAwIDYuNSAxLjYgOC41IDQuM2w0MCA1My4zYzMgNCA3LjggNi40IDEyLjggNi40bDQ4IDBjNSAwIDkuOC0yLjQgMTIuOC02LjRsNDAtNTMuM2MyLTIuNyA1LjItNC4zIDguNS00LjNsLjIgMGM1LjggMCAxMC40IDQuNyAxMC40IDEwLjRMMzUyIDI3MmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExNy42ek0yMTYgMjg4YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptOTYtMTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sZUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NmIiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sWFI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFydGluaS1nbGFzcyIsaWNvbjpbNTEyLDUxMixbMTI3ODY0LCJnbGFzcy1tYXJ0aW5pLWFsdCJdLCJmNTdiIiwiTTIuNCA1MS44QzcuNCAzOS44IDE5LjEgMzIgMzIgMzJsNDQ4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwyODggMzAxLjMgMjg4IDQ0OCAzNTIgNDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwIDAtMTQ2LjctMjE0LjYtMjE0LjZDLjIgNzcuNS0yLjUgNjMuNyAyLjQgNTEuOHpNMzU0LjcgMTQ0bDQ4LTQ4LTI5My41IDAgNDggNDggMTk3LjUgMHoiXX0sdEJlPVhSLGFCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnIixpY29uOls0NDgsNTEyLFsxMjgyNjhdLCJmMWU2IiwiTTEyOC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA2NGMwIDk1LjEtNjkuMiAxNzQuMS0xNjAgMTg5LjNsMCA2Ni43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxMDEuMiAzOTguMSAzMiAzMTkuMSAzMiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGlCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYW5vcmFtYSIsaWNvbjpbNTc2LDUxMixbXSwiZTIwOSIsIk00My45IDQ4QzE5LjcgNDggMCA2Ny43IDAgOTEuOUwwIDQyMC4xYzAgMjQuMyAxOS43IDQzLjkgNDMuOSA0My45IDUuNSAwIDEwLjctMSAxNS43LTIuOSAxMi45LTQuOSAxMDMuNC0zNy4xIDIyOC40LTM3LjFzMjE1LjUgMzIuMyAyMjguNCAzNy4xYzUgMS45IDEwLjIgMi45IDE1LjcgMi45IDI0LjMgMCA0My45LTE5LjcgNDMuOS00My45bDAtMzI4LjJjMC0yNC4zLTE5LjctNDMuOS00My45LTQzLjktNS41IDAtMTAuNyAxLTE1LjcgMi45LTEyLjkgNC45LTEwMy40IDM3LjEtMjI4LjQgMzcuMVM3Mi41IDU1LjcgNTkuNiA1MC45QzU0LjYgNDkgNDkuNCA0OCA0My45IDQ4ek03MiAxNzZhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHptMjY0LjEtMTZjNy41IDAgMTQuNiAzLjYgMTkuMSA5LjZMNDc5LjcgMzM2LjJjNS45IDcuOSA2LjQgMTguNSAxLjMgMjYuOXMtMTQuOCAxMi44LTI0LjUgMTEuMWMtNDUuOC03LjgtMTAzLjMtMTQuMi0xNjguNC0xNC4yLTY1LjYgMC0xMjMuNCA2LjUtMTY5LjMgMTQuNC05LjggMS43LTE5LjctMi45LTI0LjctMTEuNXMtNC4zLTE5LjQgMS45LTI3LjJMMTY1LjMgMjQ5YzQuNi01LjcgMTEuNS05IDE4LjctOXMxNC4yIDMuMyAxOC43IDlsMjcuNSAzNC40IDg2LjctMTEzLjljNC42LTYgMTEuNy05LjUgMTkuMi05LjV6Il19LGw4PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb2NrLXJvdGF0ZS1sZWZ0IixpY29uOls1NzYsNTEyLFsiaGlzdG9yeSJdLCJmMWRhIiwiTTI4OCA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MlMzOTQgNDQ4IDI4OCA0NDhjLTY1LjIgMC0xMjIuOS0zMi41LTE1Ny42LTgyLjMtMTAuMS0xNC41LTMwLjEtMTgtNDQuNi03LjlzLTE4IDMwLjEtNy45IDQ0LjZDMTI0LjEgNDY4LjYgMjAxIDUxMiAyODggNTEyIDQyOS40IDUxMiA1NDQgMzk3LjQgNTQ0IDI1NlM0MjkuNCAwIDI4OCAwQzIwMi4zIDAgMTI2LjUgNDIuMSA4MCAxMDYuN0w4MCA4MGMwLTE3LjctMTQuMy0zMi0zMi0zMlMxNiA2Mi4zIDE2IDgwbDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDI0LjYgMGMuNSAwIDEgMCAxLjUgMGw4NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zOC4zIDBDMTU0LjkgMTAyLjYgMjE3IDY0IDI4OCA2NHptMjQgODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDRjMCA2LjQgMi41IDEyLjUgNyAxN2w3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY1LTY1IDAtOTQuMXoiXX0sckJlPWw4LHNCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXItd2hlYXQiLGljb246WzMyMCw1MTIsW10sImU1MTciLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0xMTIgMzJsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMTYwYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6bTQ4IDExNy43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjdsLTQyLjIgMGMtMy4yIDAtNS44IDIuNi01LjggNS44IDAgMzIuMSAyNiA1OC4yIDU4LjIgNTguMmw3NS42IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMjU2Yy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuN3pNMTEyIDM1MmwtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDIxLjggMCAwIDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0zMiAyMS44IDBjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yIDAtMy4yLTIuNi01LjgtNS44LTUuOEwyMDggMzUyYy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuNy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6Il19LFRtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLWFycm93LWRvd24iLGljb246WzU3Niw1MTIsWzYyMzM3LCJjbG91ZC1kb3dubG9hZCIsImNsb3VkLWRvd25sb2FkLWFsdCJdLCJmMGVkIiwiTTE0NCA0ODBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNjMuNCA0MS0xMTcuMiA5Ny45LTEzNi41LTEuMy03LjctMS45LTE1LjUtMS45LTIzLjUgMC03OS41IDY0LjUtMTQ0IDE0NC0xNDQgNTUuNCAwIDEwMy41IDMxLjMgMTI3LjYgNzcuMSAxNC4yLTguMyAzMC44LTEzLjEgNDguNC0xMy4xIDUzIDAgOTYgNDMgOTYgOTYgMCAxNS43LTMuOCAzMC42LTEwLjUgNDMuNyA0NCAyMC4zIDc0LjUgNjQuNyA3NC41IDExNi4zIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMDQgMHpNMzc3IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6Il19LG5CZT1UbSxvQmU9VG0sS1I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcmFtcC1ib3giLGljb246WzU3Niw1MTIsWyJ0cnVjay1sb2FkaW5nIl0sImY0ZGUiLCJNNDAwIDMyYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI0OC4yLTI5Ny4yIDg5LjJDNS45IDQ1NC40LTMuNyA0NzIuMyAxLjQgNDg5LjJzMjIuOSAyNi41IDM5LjggMjEuNWwzMTUuNS05NC42IDQzLjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhsMC0zOTItMTc2IDB6TTUyOCA0MjRjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MGMyMi4xIDAgMzkuOSAxNy45IDQwIDM5LjlsMCAuMXpNNTEuOSAxNDkuNUMxOC4xIDE1OS44LS45IDE5NS42IDkuNCAyMjkuNGwyOC4xIDkxLjhDNDcuOCAzNTUgODMuNiAzNzQgMTE3LjQgMzYzLjdsOTEuOC0yOC4xYzMzLjgtMTAuMyA1Mi44LTQ2LjEgNDIuNS03OS45bC0yOC4xLTkxLjhjLTEwLjMtMzMuOC00Ni4xLTUyLjgtNzkuOS00Mi41TDUxLjkgMTQ5LjV6Il19LGxCZT1LUixjQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtZG93biIsaWNvbjpbMzg0LDUxMixbODk2NF0sImYxMDciLCJNMTY5LjQgMzc0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxOTIgMzA2LjcgNTQuNiAxNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHoiXX0sZEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTVjIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0scEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmRvdy1tYXhpbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcwXSwiZjJkMCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMjQgNjRsMzM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMODggMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxoQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZy1jaXJjbGUiLGljb246WzY0MCw1MTIsW10sImU0ZmIiLCJNMzIwIDBhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2ek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDE2MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMSAxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjgtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjJsMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4ybDAgNzguOWMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNjYuNyAwYy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyOC4xIDM5My40QzEwLjEgMzc1LjQgMCAzNTEgMCAzMjUuNUwwIDEwNEMwIDgxLjkgMTcuOSA2NCA0MCA2NHptNTYwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyMjEuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNDAwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC03OC45YzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDBjNy4zLTcuMyAyMy4xLTIzLjEgNDcuMi00Ny4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4yLTExIDExLTkuMiAyOS4yIDMuNyAzNy44IDkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDU2MCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6Il19LFFSPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLXBpbiIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXIiXSwiZjA0MSIsIk0xOTIgMEM4NiAwIDAgODQuNCAwIDE4OC42IDAgMzA3LjkgMTIwLjIgNDUwLjkgMTcwLjQgNTA1LjQgMTgyLjIgNTE4LjIgMjAxLjggNTE4LjIgMjEzLjYgNTA1LjQgMjYzLjggNDUwLjkgMzg0IDMwNy45IDM4NCAxODguNiAzODQgODQuNCAyOTggMCAxOTIgMHoiXX0sdUJlPVFSLGZCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsaW5nLWJhbGwiLGljb246WzUxMiw1MTIsW10sImY0MzYiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCA4MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIwOCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTY0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sSlI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1mbGF0YmVkIixpY29uOls1NzYsNTEyLFsiZG9sbHktZmxhdGJlZCJdLCJmNDc0IiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyODhjMCAzOS44IDI5LjEgNzIuOCA2Ny4xIDc5LTIgNS4zLTMuMSAxMS0zLjEgMTcgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNmwxOTcuNSAwYy0xLjggNS0yLjcgMTAuNC0yLjcgMTYgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLTExLTIuNy0xNmwzNC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQwMCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yODhDMTI4IDM1LjggOTIuMiAwIDQ4IDBMMzIgMHpNMjI0IDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE3NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyNDAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE3NmMwLTI2LjUtMjEuNS00OC00OC00OEwyMjQgNjR6Il19LG1CZT1KUixlQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS11c2VyIixpY29uOls1MTIsNTEyLFsiaG9tZS11c2VyIl0sImUxYjAiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHpNMjAwIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTE0NCA0MzJjMC00NC4yIDM1LjgtODAgODAtODBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZ6Il19LGdCZT1lQixiQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2hvc3QiLGljb246WzM4NCw1MTIsWzEyODEyM10sImY2ZTIiLCJNNDAuMSA0NjcuMWwtMTEuMiA5QzI1LjcgNDc4LjYgMjEuOCA0ODAgMTcuOCA0ODAgOCA0ODAgMCA0NzIgMCA0NjIuMkwwIDE5MkMwIDg2IDg2IDAgMTkyIDBTMzg0IDg2IDM4NCAxOTJsMCAyNzAuMmMwIDkuOC04IDE3LjgtMTcuOCAxNy44LTQgMC03LjktMS40LTExLjEtMy45bC0xMS4yLTljLTEzLjQtMTAuNy0zMi44LTktNDQuMSAzLjlMMjY5LjMgNTA2Yy0zLjMgMy44LTguMiA2LTEzLjMgNnMtOS45LTIuMi0xMy4zLTZsLTI2LjYtMzAuNWMtMTIuNy0xNC42LTM1LjQtMTQuNi00OC4yIDBMMTQxLjMgNTA2Yy0zLjMgMy44LTguMiA2LTEzLjMgNnMtOS45LTIuMi0xMy4zLTZMODQuMiA0NzFjLTExLjMtMTIuOS0zMC43LTE0LjYtNDQuMS0zLjl6TTE2MCAxOTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSx2QmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudC1ub2RlcyIsaWNvbjpbNjQwLDUxMixbXSwiZTY5NiIsIk00ODAgMjA4QzUwMy43IDIwOCA1MjUuNiAyMTUuMyA1NDMuNyAyMjcuOSA1MzYuOSAxMDAuOSA0MjUgMCAyODggMCAxNDYuNiAwIDMyIDEwNy41IDMyIDI0MCAzMiAyOTQuMyA1MS4yIDM0NC4zIDgzLjYgMzg0LjVMMzQuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdjMjcuMiAxMS40IDU2LjkgMTguNCA4OC4xIDIwLjIgLjEtMTguOSA0LjktMzggMTUtNTUuNSAxNy4xLTI5LjcgNDUuOC00OC41IDc3LTU0LjJsOS4yLTE2Yy0zLjQtMTAuNy01LjItMjItNS4yLTMzLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTJ6TTMyOC42IDQ0OGMtMTcuNyAzMC42LTcuMiA2OS43IDIzLjQgODcuNHM2OS43IDcuMiA4Ny40LTIzLjRjMS41LTIuNiAyLjgtNS4zIDMuOS04bDczLjMgMGMxLjEgMi43IDIuNCA1LjQgMy45IDggMTcuNyAzMC42IDU2LjggNDEuMSA4Ny40IDIzLjRzNDEuMS01Ni44IDIzLjQtODcuNGMtMTMuNC0yMy4yLTM5LjEtMzQuOC02NC0zMS40bC0xNy42LTMwLjdjLTExIDExLjctMjUgMjAuNi00MC42IDI1LjZsMTYuNSAyOC45Yy0zLjggNC44LTYuOCAxMC05IDE1LjZsLTczLjQgMGMtMi4yLTUuNi01LjMtMTAuOC05LTE1LjZsMzMtNTcuN2M0LjEgLjggOC40IDEuMyAxMi44IDEuMyAzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0YzAgMTMuNCA0LjEgMjUuOCAxMS4yIDM2LjFsLTM0LjYgNjAuNWMtMjUtMy40LTUwLjYgOC4zLTY0IDMxLjR6Il19LHlCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYXJyb3ctZG93bi10by1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTM4IiwiTTE5Mi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMzE4LjMgMjk5LjFsLTQ2LjMtNjIuNCAwIDI0My4zIDI3MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MCAwIDAtMjQzLjMtNDYuMyA2Mi40Yy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxMTAgMTMyIDE0OS43IDExMiAxOTIgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0xNzYgNDgwbDMyIDAgMC0xMjhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxMjh6TTU2Ni42IDE2Ni42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDQzMiAxNDYuNyA0MzIgMGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTQ2LjcgMjUuNC0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6Il19LHhCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJlNTVmIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTE2IDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNDgtNDggMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw0OCAwIDAgNDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTQ4IDAgMC00OHoiXX0sdEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXN3aW1taW5nIixpY29uOls2NDAsNTEyLFsxMjc5NDYsInN3aW1tZXIiXSwiZjVjNCIsIk01NTIgMTUyYTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHpNMjkzLjQgMTk4LjJsLTg4LjYgNzMuOWMxLjEgMCAyLjItLjEgMy4zLS4xIDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCA0LjggMCA5LjcgLjIgMTQuNSAuNi04LjMtMzAtMjQuMy01Ny43LTQ2LjgtODAuMi0xOC40LTE4LjQtNDAuNi0zMi43LTY1LTQxLjhsLTY4LjYtMjUuN2MtMjcuNC0xMC4zLTU4LTcuNS04My4xIDcuNmwtNTMuNSAzMi4xYy0xNS4yIDkuMS0yMC4xIDI4LjctMTEgNDMuOXMyOC43IDIwLjEgNDMuOSAxMUwyMzAgMTg3LjNjOC40LTUgMTguNi01LjkgMjcuNy0yLjVsMzUuNyAxMy40em0xMTAgMTgxLjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyAzODYuMyAxNy42IDM5NC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0sd0JlPXRCLGFCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtZG90cyIsaWNvbjpbNTEyLDUxMixbMTI4MTcyLDYyMDc1LCJjb21tZW50aW5nIl0sImY0YWQiLCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6TTEyOCAyMDhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTk2IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LE1CZT1hQixpQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1waWUiLGljb246WzU3Niw1MTIsWyJwaWUtY2hhcnQiXSwiZjIwMCIsIk01MTIuNCAyNDBsLTE3NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE3NmMwLTE3LjcgMTQuNC0zMi4yIDMxLjktMjkuOSAxMDcgMTQuMiAxOTEuOCA5OSAyMDYgMjA2IDIuMyAxNy41LTEyLjIgMzEuOS0yOS45IDMxLjl6TTIyMi42IDM3LjJjMTguMS0zLjggMzMuOCAxMSAzMy44IDI5LjVsMCAxOTcuM2MwIDUuNiAyIDExIDUuNSAxNS4zTDM5NCA0MzguN2MxMS43IDE0LjEgOS4yIDM1LjQtNi45IDQ0LjEtMzQuMSAxOC42LTczLjIgMjkuMi0xMTQuNyAyOS4yLTEzMi41IDAtMjQwLTEwNy41LTI0MC0yNDAgMC0xMTUuNSA4MS41LTIxMS45IDE5MC4yLTIzNC44ek00NzcuOCAyODhsNjQgMGMxOC41IDAgMzMuMyAxNS43IDI5LjUgMzMuOC0xMC4yIDQ4LjQtMzUgOTEuNC02OS42IDEyNC4yLTEyLjMgMTEuNy0zMS42IDkuMi00Mi40LTMuOUwzNzQuOSAzNDAuNGMtMTcuMy0yMC45LTIuNC01Mi40IDI0LjYtNTIuNGw3OC4yIDB6Il19LHpCZT1pQixrQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZnJvZyIsaWNvbjpbNTc2LDUxMixbXSwiZjUyZSIsIk0zNjggMzJjNDEuNyAwIDc1LjkgMzEuOCA3OS43IDcyLjVsODUuNiAyNi4zYzI1LjQgNy44IDQyLjggMzEuMyA0Mi44IDU3LjkgMCAyMS44LTExLjcgNDEuOS0zMC43IDUyLjdsLTE0NC41IDgyLjEgOTIuNSA5Mi41IDUwLjcgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMMzQ2LjkgMzYwLjJjMTEuNy0zNiAzLjItNzcuMS0yNS40LTEwNS43LTQwLjYtNDAuNi0xMDYuMy00MC42LTE0Ni45LS4xTDEwMSAzMjQuNGMtNi40IDYuMS02LjcgMTYuMi0uNiAyMi42czE2LjIgNi42IDIyLjYgLjZsNzMuOC03MC4yIC4xLS4xIC4xLS4xYzMuNS0zLjUgNy4zLTYuNiAxMS4zLTkuMiAyNy45LTE4LjUgNjUuOS0xNS40IDkwLjUgOS4yIDI0LjcgMjQuNyAyNy43IDYyLjkgOSA5MC45LTIuNiAzLjgtNS42IDcuNS05IDEwLjlMMjYxLjggNDE2IDM1MiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNDgwQzI4LjcgNDgwIDAgNDUxLjMgMCA0MTYgMCAyNDkuNiAxMjcgMTEyLjkgMjg5LjMgOTcuNSAyOTYuMiA2MC4yIDMyOC44IDMyIDM2OCAzMnptMCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxTQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZS1ib3R0bGUiLGljb246WzMyMCw1MTIsW10sImY3MmYiLCJNODAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMiAwIDExLjgtNi40IDIyLjItMTYgMjcuN2wwIDE0NS42YzU2LjUgMjQuNyA5NiA4MS4xIDk2IDE0Ni43bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDU3NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyODhjMC02NS42IDM5LjUtMTIyIDk2LTE0Ni43TDk2LTQuM0M4Ni40LTkuOCA4MC0yMC4yIDgwLTMyek05NiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDI4OHoiXX0sQ0JlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImluYm94IixpY29uOls1MTIsNTEyLFtdLCJmMDFjIiwiTTkxLjggMzJDNTkuOSAzMiAzMi45IDU1LjQgMjguNCA4Ni45TC42IDI4MS4yYy0uNCAzLS42IDYtLjYgOS4xTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTI1LjdjMC0zLS4yLTYuMS0uNi05LjFMNDgzLjYgODYuOUM0NzkuMSA1NS40IDQ1Mi4xIDMyIDQyMC4yIDMyTDkxLjggMzJ6bTAgNjRsMzI4LjUgMCAyNy40IDE5Mi01OS45IDBjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3LjdsLTE0LjMgMjguNmMtNS40IDEwLjgtMTYuNSAxNy43LTI4LjYgMTcuN2wtMTIwLjQgMGMtMTIuMSAwLTIzLjItNi44LTI4LjYtMTcuN2wtMTQuMy0yOC42Yy01LjQtMTAuOC0xNi41LTE3LjctMjguNi0xNy43TDY0LjMgMjg4IDkxLjggOTZ6Il19LHJCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1oIixpY29uOls0NDgsNTEyLFsiaC1zcXVhcmUiXSwiZjBmZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjAgMTY4bDAgMTc2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNjQtOTYgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA5NiAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sX0JlPXJCLFRCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJlM2IyIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTIyNCAyNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LHNCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLXJpZ2h0IixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtcmlnaHQiXSwiZjEzOCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwek0yNDEgMzc3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDg3LTg3LTg3LTg3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBMMzQ1IDIzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyNDEgMzc3eiJdfSxMQmU9c0IsJEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY3N2IixpY29uOls1NzYsNTEyLFtdLCJmNmRkIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNjQgMzgwYy0yNC4zIDAtNDQgMTkuNy00NCA0NGwwIDgwYzAgMjQuMyAxOS43IDQ0IDQ0IDQ0bDE2IDBjMjQuMyAwIDQ0LTE5LjcgNDQtNDRsMC04YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDhjMCAyLjItMS44IDQtNCA0bC0xNiAwYy0yLjIgMC00LTEuOC00LTRsMC04MGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTI0LjMtMTkuNy00NC00NC00NGwtMTYgMHptMTM2IDBjLTI4LjcgMC01MiAyMy4zLTUyIDUyczIzLjMgNTIgNTIgNTJjNi42IDAgMTIgNS40IDEyIDEycy01LjQgMTItMTIgMTJsLTMyIDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJzLTIzLjMtNTItNTItNTJjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMjQgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTI0IDB6bTk2IDBjLTExIDAtMjAgOS0yMCAyMGwwIDMxLjZjMCAzNS41IDEwLjUgNzAuMyAzMC4yIDk5LjhsNS4xIDcuN2MzLjcgNS42IDEwIDguOSAxNi42IDguOXMxMi45LTMuMyAxNi42LTguOWw1LjEtNy43YzE5LjctMjkuNiAzMC4yLTY0LjMgMzAuMi05OS44bDAtMzEuNmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjBsMCAzMS42YzAgMTkuNi00LjEgMzguOS0xMiA1Ni43LTcuOS0xNy44LTEyLTM3LjEtMTItNTYuN2wwLTMxLjZjMC0xMS05LTIwLTIwLTIweiJdfSxBQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGF0LWNvd2JveSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMCIsIk0xODIuMiA3Ni4xTDEzMC44IDMwNy41QzE0NS41IDMyNC45IDE2Ny40IDMzNiAxOTIgMzM2bDI1NiAwYzI0LjYgMCA0Ni41LTExLjEgNjEuMi0yOC41TDQ1Ny44IDc2LjFjLTUuNy0yNS44LTI4LjYtNDQuMS01NS00NC4xLTEyLjIgMC0yNC4xIDQtMzMuOCAxMS4zbC00LjcgMy41Yy0yNi4zIDE5LjctNjIuNCAxOS43LTg4LjYgMEwyNzEgNDMuM2MtOS44LTcuMy0yMS42LTExLjMtMzMuOC0xMS4zLTI2LjQgMC00OS4zIDE4LjMtNTUgNDQuMXpNNjQgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjM4LjMgMCAyNTZDMCAzNjIgODYgNDQ4IDE5MiA0NDhsMjU2IDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTIgMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTI1NiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHoiXX0sbkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1NDAsImdyaW4tdG9uZ3VlLXdpbmsiXSwiZjU4YiIsIk0xNTIuMiA0OTAuMUM2Mi41IDQ1MC4yIDAgMzYwLjQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgMTA0LjQtNjIuNSAxOTQuMi0xNTIuMiAyMzQuMSA1LjMtMTMgOC4yLTI3LjIgOC4yLTQyLjFsMC02MS43YzE2LjktMTYuNSAzMC4xLTM2LjcgMzguMy01OS4zIDQuMy0xMS44LTcuNy0yMS44LTE5LjYtMTguMS0zOS4yIDEyLjItODMuNyAxOS4xLTEzMC43IDE5LjFzLTkxLjUtNi45LTEzMC43LTE5LjFjLTExLjktMy43LTIzLjkgNi4zLTE5LjYgMTguMSA4LjMgMjIuNiAyMS41IDQyLjggMzguMyA1OS4zbDAgNjEuN2MwIDE0LjkgMi45IDI5LjEgOC4yIDQyLjF6TTE1MiAyMTJsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwem0xODQgNjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6TTMyMCA0MDIuNmwwIDQ1LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRsMC00NS40YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42bDIgMGMxMS4zIDAgMjEuMSA3LjkgMjMuNiAxOC45IDIuOCAxMi42IDIwLjggMTIuNiAyMy42IDAgMi41LTExLjEgMTIuMy0xOC45IDIzLjYtMTguOWwyIDBjMTQuNyAwIDI2LjYgMTEuOSAyNi42IDI2LjZ6TTMzNiAxODRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxEQmU9bkIsRUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImwiLGljb246WzMyMCw1MTIsWzEwOF0sIjRjIiwiTTY0IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzUyIDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMzIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LExtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tc2hvcnQtd2lkZSIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LWRlc2MiLCJzb3J0LWFtb3VudC1kb3duLWFsdCJdLCJmODg0IiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxQQmU9TG0sSUJlPUxtLG9CPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcy1oYWxmIixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTIiXSwiZjI1MiIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMTktNS42IDM3LjQtMTYgNTNMMTEyIDEyOGMtMTAuMy0xNS42LTE2LTM0LTE2LTUzem0xNiAzMDljMy41LTUuMyA3LjYtMTAuMyAxMi4xLTE0LjlsNjcuOS02Ny45IDY3LjkgNjcuOWM0LjYgNC42IDguNiA5LjYgMTIuMiAxNC45TDExMiAzODR6Il19LE5CZT1vQixsQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcG9vbiIsaWNvbjpbNTEyLDUxMixbMTI5MzQ4LDYxODczLCJ1dGVuc2lsLXNwb29uIl0sImYyZTUiLCJNMjQ1LjggMjIwLjljLTE0LjUtMTcuNi0yMS44LTM5LjItMjEuOC02MC44IDAtODAuMiA5Ni0xNjAuMiAxOTItMTYwLjIgNTMgMCA5NiA0MyA5NiA5NiAwIDk2LTgwIDE5Mi0xNjAuMiAxOTItMjEuNiAwLTQzLjItNy4zLTYwLjgtMjEuOEw1NC42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDUuOCAyMjAuOXoiXX0sRkJlPWxCLGNCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTAgMTI4bDAgMzIgNTEyIDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHptMCA4MEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3Ni01MTIgMHpNNjQgMzYwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xNDQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sT0JlPWNCLGRnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW52b2ljZS1kb2xsYXIiLGljb246WzM4NCw1MTIsW10sImY1NzEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTY0IDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjRDNzQuNyA2NCA2NCA3NC43IDY0IDg4em0wIDk2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0xMTIgNzZsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMTUyIDQwMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMHoiXX0sZEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BhZ2hldHRpLW1vbnN0ZXItZmx5aW5nIixpY29uOls2NDAsNTEyLFsicGFzdGFmYXJpYW5pc20iXSwiZjY3YiIsIk0yMDggNjRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMGMwIDE2LjItNiAzMS4xLTE2IDQyLjNsMTUuNiAzMS4yYzE4LjctNiAzOS45LTkuNSA2NC40LTkuNXM0NS44IDMuNSA2NC40IDkuNUw0MDAgMTA2LjNjLTEwLTExLjMtMTYtMjYuMS0xNi00Mi4zIDAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjQtMjguNyA2NC02NCA2NGMtMS43IDAtMy40LS4xLTUuMS0uMkw0MjcuOCAxNThjMjEuMSAxMy42IDM3LjcgMzAuMiA1MS40IDQ2LjQgNy4xIDguMyAxMy41IDE2LjYgMTkuMyAyNGwxLjQgMS44YzYuMyA4LjEgMTEuNiAxNC44IDE2LjcgMjAuNCAxMC43IDExLjcgMTYuMSAxMy40IDE5LjQgMTMuNCAyLjUgMCA0LjMtLjYgNy4xLTMuMyAzLjctMy41IDcuMS04LjggMTIuNS0xNy40bC42LS45YzQuNi03LjQgMTEtMTcuNiAxOS40LTI1LjcgOS43LTkuMyAyMi45LTE2LjcgNDAuNC0xNi43IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yLjUgMC00LjMgLjYtNy4xIDMuMy0zLjcgMy41LTcuMSA4LjgtMTIuNSAxNy40bC0uNiAuOWMtNC42IDcuNC0xMSAxNy42LTE5LjQgMjUuNy05LjcgOS4zLTIyLjkgMTYuNy00MC40IDE2LjctMTguNSAwLTMyLjktOC41LTQ0LjMtMTguNi0zLjEgNC02LjYgOC4zLTEwLjUgMTIuNyAxLjQgNC4zIDIuOCA4LjUgNCAxMi41IC45IDMgMS44IDUuOCAyLjYgOC42IDMgOS44IDUuNSAxOC4yIDguNiAyNS45IDMuOSA5LjggNy40IDE1LjQgMTAuOCAxOC41IDIuNiAyLjQgNS45IDQuMyAxMi44IDQuMyA4LjcgMCAxNi45LTQuMiAzMy43LTEzLjIgMTUtOCAzNS43LTE4LjggNjIuMy0xOC44IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0xMy40IDAtMjQuNyA1LjItMzkuNyAxMy4yLTEgLjYtMi4xIDEuMS0zLjIgMS43LTEzLjEgNy4xLTMxLjYgMTcuMS01My4xIDE3LjEtMTguNCAwLTMzLjYtNi4xLTQ1LjUtMTcuMi0xMS4xLTEwLjMtMTcuOS0yMy43LTIyLjctMzYtMy42LTktNi43LTE5LjEtOS41LTI4LjUtMTYuNCAxMi4zLTM2LjEgMjMuNi01OC45IDMxLjMgMy42IDEwLjggOC40IDIzLjUgMTQuNCAzNi4yIDcuNSAxNS45IDE2LjIgMzAuNCAyNS44IDQwLjUgOS42IDEwLjIgMTcuNyAxMy43IDI0LjUgMTMuNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjUuMiAwLTQ1LTEzLjUtNTkuNS0yOC44LTE0LjUtMTUuNC0yNS43LTM0LjktMzQuMi01My04LTE3LTE0LjEtMzMuOC0xOC4zLTQ2LjktNS4yIC40LTEwLjYgLjYtMTYgLjZzLTEwLjgtLjItMTYtLjZjLTQuMiAxMy0xMC4zIDI5LjktMTguMyA0Ni45LTguNSAxOC4xLTE5LjggMzcuNi0zNC4yIDUzLTE0LjQgMTUuMy0zNC4zIDI4LjgtNTkuNSAyOC44LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjNi44IDAgMTUtMy41IDI0LjUtMTMuNyA5LjUtMTAuMSAxOC4zLTI0LjYgMjUuOC00MC41IDUuOS0xMi42IDEwLjctMjUuNCAxNC40LTM2LjItMjIuOC03LjctNDIuNS0xOS01OC45LTMxLjMtMi45IDkuNC02IDE5LjUtOS41IDI4LjUtNC44IDEyLjItMTEuNiAyNS42LTIyLjcgMzYtMTEuOSAxMS4xLTI3LjEgMTcuMi00NS41IDE3LjItMTMuMSAwLTI0LjUtNC4xLTMzLjgtOC45LTcuOS00LTE1LjctOS4yLTIyLjEtMTMuNWwwIDAtMi40LTEuNmMtMTUuMy0xMC4yLTI1LjgtMTYtMzcuNy0xNi0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzI4LjEgMCA0OS42IDE0LjIgNjQuMyAyNGwyLjQgMS42YzYuOSA0LjYgMTIuMSA4LjEgMTcuMiAxMC43IDUuNSAyLjggOS4xIDMuNiAxMiAzLjYgNi44IDAgMTAuMi0xLjkgMTIuOC00LjMgMy40LTMuMiA3LTguOCAxMC44LTE4LjUgMy03LjcgNS42LTE2LjEgOC42LTI1LjkgLjgtMi43IDEuNy01LjYgMi42LTguNiAxLjItNCAyLjYtOC4yIDQtMTIuNS0zLjktNC41LTcuNC04LjgtMTAuNS0xMi43LTExLjQgMTAuMS0yNS45IDE4LjYtNDQuMyAxOC42LTE3LjUgMC0zMC43LTcuNC00MC40LTE2LjctOC40LTguMS0xNC44LTE4LjMtMTkuNC0yNS43bC0uNi0uOWMtNS40LTguNi04LjgtMTMuOS0xMi41LTE3LjQtMi44LTIuNy00LjYtMy4zLTcuMS0zLjMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMxNy41IDAgMzAuNyA3LjQgNDAuNCAxNi43IDguNCA4LjEgMTQuOCAxOC4zIDE5LjQgMjUuN2wuNiAuOWM1LjQgOC42IDguOCAxMy45IDEyLjUgMTcuNCAyLjggMi43IDQuNiAzLjMgNy4xIDMuMyAzLjMgMCA4LjctMS43IDE5LjQtMTMuNCA1LjEtNS42IDEwLjQtMTIuMyAxNi43LTIwLjRsMS40LTEuOGM1LjgtNy40IDEyLjItMTUuNyAxOS4zLTI0IDEzLjgtMTYuMiAzMC4zLTMyLjggNTEuNC00Ni40bC0xNS4xLTMwLjJjLTEuNyAuMS0zLjQgLjItNS4xIC4yLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NHptMjA4IDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sUkJlPWRCLHBCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MtY2l0cnVzIixpY29uOls2NDAsNTEyLFsiY29ja3RhaWwiXSwiZjU2MSIsIk01NzYgODBjMC00NC4yLTM1LjgtODAtODAtODAtMTggMC0zNC42IDYtNDggMTZsLTgxIDBjMjMuNi00Ny40IDcyLjUtODAgMTI5LTgwIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzU3NS41IDIyNCA0OTYgMjI0Yy02LjUgMC0xMy0uNC0xOS4zLTEuM2w2NC03NC43YzEuMS0xLjMgMi4yLTIuNyAzLjMtNC4xIDE5LjQtMTQuNiAzMi0zNy44IDMyLTY0ek02Ni45IDgyLjZDNzIuMiA3MS4zIDgzLjUgNjQgOTYgNjRsMzg0IDBjMTIuNSAwIDIzLjggNy4zIDI5LjEgMTguNnMzLjQgMjQuNy00LjggMzQuMmwtMTg0LjMgMjE1IDAgMTE2LjIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTExNi4yLTE4NC4zLTIxNWMtOC4xLTkuNS0xMC0yMi44LTQuOC0zNC4yek0xNjUuNiAxMjhMMjg4IDI3MC44IDQxMC40IDEyOCAxNjUuNiAxMjh6Il19LEJCZT1wQixIQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVsbGhvcm4iLGljb246WzUxMiw1MTIsWzEyODIyNiwxMjgzNjNdLCJmMGExIiwiTTQ2MS4yIDE4LjlDNDcyLjcgMjQgNDgwIDM1LjQgNDgwIDQ4bDAgNDE2YzAgMTIuNi03LjMgMjQtMTguOCAyOS4xcy0yNC44IDMuMi0zNC4zLTUuMWwtNDYuNi00MC43Yy00My42LTM4LjEtOTguNy02MC4zLTE1Ni40LTYzbDAgOTUuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NkM1Ny4zIDM4NCAwIDMyNi43IDAgMjU2UzU3LjMgMTI4IDEyOCAxMjhsODQuNSAwYzYxLjgtLjIgMTIxLjQtMjIuNyAxNjcuOS02My4zbDQ2LjYtNDAuN2M5LjQtOC4zIDIyLjktMTAuMiAzNC4zLTUuMXpNMjI0IDMyMGwwIC4yYzcwLjMgMi43IDEzNy44IDI4LjUgMTkyIDczLjRsMC0yNzUuM2MtNTQuMiA0NC45LTEyMS43IDcwLjctMTkyIDczLjRMMjI0IDMyMHoiXX0scUJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveC10aXNzdWUiLGljb246WzUxMiw1MTIsW10sImUwNWIiLCJNMTAzLjkgMzJsMTYxIDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlsMTcuNCA1Mi4yYzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjlsNjAuNSAwYzIxLjggMCAzNy4zIDIxLjQgMzAuNCA0Mi4xTDM4NCAzMjAgMTI4IDMyMCA3Mi43IDcwLjlDNjguMiA1MSA4My40IDMyIDEwMy45IDMyek00OCAyNTZsMTYuNiAwIDE2LjUgNzQuNEM4NiAzNTIuNCAxMDUuNSAzNjggMTI4IDM2OGwyNTYgMGMyMC43IDAgMzktMTMuMiA0NS41LTMyLjhsMjYuNC03OS4yIDguMSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LFZCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXR0cmVzcy1waWxsb3ciLGljb246WzU3Niw1MTIsW10sImU1MjUiLCJNMjU2IDY0TDY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwIDAtMzg0em00OCAzODRsMjA4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTIwOCAwIDAgMzg0ek02NCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOTJ6Il19LGpCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGV2cm9uLWxlZnQiLGljb246WzMyMCw1MTIsWzkwMDFdLCJmMDUzIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTkyIDE5MmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDI0Ni42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTJ6Il19LFVCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1tb29uLXJhaW4iLGljb246WzU3Niw1MTIsW10sImY3M2MiLCJNNDQ4IDBjLTY4LjYgMC0xMjcuMSA0My4xLTE0OS44IDEwMy44IDE3LjEgMTQuMSAyOS42IDMzLjUgMzQuOSA1NS44IDM5LjkgMjEuNyA2Ni45IDYzLjkgNjYuOSAxMTIuNSAwIDEzLjUtMi4xIDI2LjUtNS45IDM4LjcgMTYuOSA2IDM1IDkuMyA1My45IDkuMyA0MyAwIDgyLjEtMTcgMTEwLjgtNDQuNiA0LjYtNC40IDUuOS0xMS4yIDMuMy0xN3MtOC42LTkuMy0xNC45LTguOGMtMyAuMi02LjEgLjQtOS4yIC40LTYzLjUgMC0xMTUtNTEuNS0xMTUtMTE1IDAtNDUuMSAyNi04NC4yIDYzLjgtMTAzIDUuNy0yLjggOS04LjkgOC4yLTE1LjJTNDg5LjYgNS4zIDQ4My40IDMuOUM0NzIgMS40IDQ2MC4yIDAgNDQ4IDB6TTI3MiAzNTJjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zOS0yNy45LTcxLjUtNjQuOC03OC42IC41LTMuMSAuOC02LjIgLjgtOS40IDAtMzAuOS0yNS4xLTU2LTU2LTU2LTEyLjQgMC0yMy45IDQtMzMuMSAxMC44LTEzLjQtMjUuNS00MC4xLTQyLjgtNzAuOS00Mi44LTQ0LjIgMC04MCAzNS44LTgwIDgwIDAgNy40IDEgMTQuNiAyLjkgMjEuNS0yOS44IDExLjYtNTAuOSA0MC42LTUwLjkgNzQuNSAwIDQ0LjIgMzUuOCA4MCA4MCA4MGwxOTIgMHpNNjkgNDAxLjFjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMkwxNy4yIDQ4MC40QzEzIDQ5MyAxOS44IDUwNi42IDMyLjQgNTEwLjhzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6bTEyMCAwYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjQgNjQuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40em0xMjAgMGMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS40IDY0LjFjLTQuMiAxMi42IDIuNiAyNi4yIDE1LjIgMzAuNHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHoiXX0sJG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi0xLTkiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtYXNjIiwic29ydC1udW1lcmljLWRvd24iXSwiZjE2MiIsIk00MTguNyAzOGM4LjMgNiAxMy4zIDE1LjcgMTMuMyAyNmwwIDk2IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTUxLjYtNS45IDJjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVsNDgtMTZjOS44LTMuMyAyMC41LTEuNiAyOC44IDQuNHpNMzY1LjEgNDMwLjZsMTEuNy0xOGMtMzIuOS05LjktNTYuOC00MC41LTU2LjgtNzYuNiAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMjIuOS02LjYgNDUuMy0xOS4xIDY0LjVsLTQyLjEgNjQuOWMtOS42IDE0LjgtMjkuNCAxOS4xLTQ0LjMgOS40cy0xOS4xLTI5LjQtOS40LTQ0LjN6TTQyNCAzMzZhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTUwLjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2eiJdfSxXQmU9JG0sR0JlPSRtLFlCZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNwb2NrIixpY29uOls1MTIsNTEyLFsxMjg0MDZdLCJmMjU5IiwiTTIxNC45IDIzLjdDMjEwLjMgNi42IDE5Mi44LTMuNSAxNzUuNyAxLjFzLTI3LjIgMjIuMS0yMi42IDM5LjJMMjA2IDIzNy44YzIuNSA5LjItNC41IDE4LjItMTQgMTguMi02LjQgMC0xMi00LjItMTMuOS0xMC4zTDEzNC42IDEwMi43Yy01LjEtMTYuOS0yMy0yNi40LTM5LjktMjEuM3MtMjYuNCAyMy0yMS4zIDM5LjlsNjIuOCAyMDYuNGMyLjQgNy45LTcuMiAxMy44LTEzLjIgOC4xTDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjEgMGMuMSAwIC4xLS4xIC4xLS4xcy4xLS4xIC4xLS4xYzU4LjMtMy41IDEwOC42LTQzLjIgMTI1LjMtOTkuN2w4MS4yLTI3NWM1LTE2LjktNC43LTM0LjctMjEuNi0zOS44cy0zNC43IDQuNy0zOS44IDIxLjZMNDExLjUgMjQ3LjFjLTEuNiA1LjMtNi40IDguOS0xMiA4LjktNy45IDAtMTMuOC03LjMtMTIuMi0xNS4xbDM2LTE3MC4zYzMuNy0xNy4zLTcuNC0zNC4zLTI0LjctMzcuOXMtMzQuMyA3LjQtMzcuOSAyNC43TDMyMy4xIDIzNS4xYy0yLjYgMTIuMi0xMy4zIDIwLjktMjUuOCAyMC45LTExLjkgMC0yMi40LTgtMjUuNC0xOS41bC01Ny0yMTIuOHoiXX0saEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1tYWdpYy1zcGFya2xlcyIsaWNvbjpbNTc2LDUxMixbIm1hZ2ljLXdhbmQtc3BhcmtsZXMiXSwiZTJjYSIsIk0yNjMuNC0yN0wyNzguMiA5LjggMzE1IDI0LjZjMyAxLjIgNSA0LjIgNSA3LjRzLTIgNi4yLTUgNy40TDI3OC4yIDU0LjIgMjYzLjQgOTFjLTEuMiAzLTQuMiA1LTcuNCA1cy02LjItMi03LjQtNUwyMzMuOCA1NC4yIDE5NyAzOS40Yy0zLTEuMi01LTQuMi01LTcuNHMyLTYuMiA1LTcuNEwyMzMuOCA5LjggMjQ4LjYtMjdjMS4yLTMgNC4yLTUgNy40LTVzNi4yIDIgNy40IDV6TTExMC43IDQxLjdsMjEuNSA1MC4xIDUwLjEgMjEuNWM1LjkgMi41IDkuNyA4LjMgOS43IDE0LjdzLTMuOCAxMi4yLTkuNyAxNC43bC01MC4xIDIxLjUtMjEuNSA1MC4xYy0yLjUgNS45LTguMyA5LjctMTQuNyA5LjdzLTEyLjItMy44LTE0LjctOS43TDU5LjggMTY0LjIgOS43IDE0Mi43QzMuOCAxNDAuMiAwIDEzNC40IDAgMTI4czMuOC0xMi4yIDkuNy0xNC43TDU5LjggOTEuOCA4MS4zIDQxLjdDODMuOCAzNS44IDg5LjYgMzIgOTYgMzJzMTIuMiAzLjggMTQuNyA5Ljd6TTQ2NCAzMDRjNi40IDAgMTIuMiAzLjggMTQuNyA5LjdsMjEuNSA1MC4xIDUwLjEgMjEuNWM1LjkgMi41IDkuNyA4LjMgOS43IDE0LjdzLTMuOCAxMi4yLTkuNyAxNC43bC01MC4xIDIxLjUtMjEuNSA1MC4xYy0yLjUgNS45LTguMyA5LjctMTQuNyA5LjdzLTEyLjItMy44LTE0LjctOS43bC0yMS41LTUwLjEtNTAuMS0yMS41Yy01LjktMi41LTkuNy04LjMtOS43LTE0LjdzMy44LTEyLjIgOS43LTE0LjdsNTAuMS0yMS41IDIxLjUtNTAuMWMyLjUtNS45IDguMy05LjcgMTQuNy05Ljd6TTQ2MCAwYzExIDAgMjEuNiA0LjQgMjkuNSAxMi4ybDQyLjMgNDIuM0M1MzkuNiA2Mi40IDU0NCA3MyA1NDQgODRzLTQuNCAyMS42LTEyLjIgMjkuNWwtODguMiA4OC4yLTEwMS4zLTEwMS4zIDg4LjItODguMkM0MzguNCA0LjQgNDQ5IDAgNDYwIDB6TTQ0LjIgMzk4LjVMMzA4LjQgMTM0LjMgNDA5LjcgMjM1LjYgMTQ1LjUgNDk5LjhDMTM3LjYgNTA3LjYgMTI3IDUxMiAxMTYgNTEycy0yMS42LTQuNC0yOS41LTEyLjJMNDQuMiA0NTcuNUMzNi40IDQ0OS42IDMyIDQzOSAzMiA0MjhzNC40LTIxLjYgMTIuMi0yOS41eiJdfSxaQmU9aEIsWEJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtbWVkaWNhbCIsaWNvbjpbNTEyLDUxMixbXSwiZjdmNSIsIk0yNTYgNDgwYzE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwYzAgNTQuMyAxOS4yIDEwNC4zIDUxLjYgMTQ0LjVMMi44IDQ3Ni44Yy00LjggOS0zLjMgMjAgMy42IDI3LjVzMTcuOCA5LjggMjcuMSA1LjhsMTE4LjQtNTAuN0MxODMuNyA0NzIuNiAyMTguOSA0ODAgMjU2IDQ4MHpNMjE3LjYgMTUzLjZjMC0xMC42IDguNi0xOS4yIDE5LjItMTkuMmwzOC40IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmwwIDQ4IDQ4IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmwwIDM4LjRjMCAxMC42LTguNiAxOS4yLTE5LjIgMTkuMmwtNDggMCAwIDQ4YzAgMTAuNi04LjYgMTkuMi0xOS4yIDE5LjJsLTM4LjQgMGMtMTAuNiAwLTE5LjItOC42LTE5LjItMTkuMmwwLTQ4LTQ4IDBjLTEwLjYgMC0xOS4yLTguNi0xOS4yLTE5LjJsMC0zOC40YzAtMTAuNiA4LjYtMTkuMiAxOS4yLTE5LjJsNDggMCAwLTQ4eiJdfSxLQmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVsbC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjc3LDYxOTQzXSwiZjFmNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04Ny41LTg3LjVjMTcuMi0yLjQgMzAuNS0xNy4zIDMwLjUtMzUuMiAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtOS44LTEyLjJDNDY0LjQgMzA4LjUgNDQ4IDI2MS44IDQ0OCAyMTMuN2wwLTIxLjdjMC03Ny40LTU1LTE0Mi0xMjgtMTU2LjhsMC0zLjJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzLjJjLTM4LjYgNy44LTcyLjIgMjkuNi05NS4yIDU5LjdMNDEtMjQuOXptODcgMjM4LjVjMCA0OC4xLTE2LjQgOTQuOC00Ni40IDEzMi40bC05LjggMTIuMmMtNSA2LjMtNy44IDE0LjEtNy44IDIyLjIgMCAxOS42IDE1LjkgMzUuNSAzNS41IDM1LjVsMjM1LjMgMC0yMDYuOS0yMDYuOSAwIDQuNXpNMjg4IDUxMmMyOS44IDAgNTQuOS0yMC40IDYyLTQ4bC0xMjQgMGM3LjEgMjcuNiAzMi4yIDQ4IDYyIDQ4eiJdfSxBbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kc2hha2Utc2xhc2giLGljb246WzU3Niw1MTIsWzU3NDM5LCJoYW5kc2hha2UtYWx0LXNsYXNoIiwiaGFuZHNoYWtlLXNpbXBsZS1zbGFzaCJdLCJlMDYwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTI4OC0yODggMTQuMi0xNC4yYzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM3NiA1NzYgMzIwIDU3NiAzMiA0NjQgOTYgNDQwLjIgODAuMUM0MjQuNCA2OS42IDQwNS45IDY0IDM4Ni45IDY0bC03MC40IDBjLTEuMSAwLTIuMyAwLTMuNCAuMS0xNi45IC45LTMyLjggOC41LTQ0LjIgMjEuMWwtNTUuOCA2Mi4xLTM0LTM0IDQ0LjMtNDkuMi0zOS43IDBjLTE1LjMgMC0zMC4xIDMuNi00My41IDEwLjRMNDEtMjQuOXpNMCA2OS44TDAgMzIwIDE1Ni40IDQ1MC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMyMi4yIDAgNDMuOC01LjggNjIuOC0xNi40TDAgNjkuOHoiXX0sUUJlPUFtLEpCZT1BbSxlSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm90dGxlLXdhdGVyIixpY29uOlszMjAsNTEyLFtdLCJlNGM1IiwiTTExMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwQzk0LjMgMzIgODAgMTcuNyA4MCAwczE0LjMtMzIgMzItMzJ6TTE2IDE0NGMwLTM1LjMgMjguNy02NCA2NC02NGwxNjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDI0LjEtMTMuMyA0NS4xLTMzIDU2IDE5LjcgMTAuOSAzMyAzMS45IDMzIDU2cy0xMy4zIDQ1LjEtMzMgNTZjMTkuNyAxMC45IDMzIDMxLjkgMzMgNTZzLTEzLjMgNDUuMS0zMyA1NmMxOS43IDEwLjkgMzMgMzEuOSAzMyA1NiAwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjQuMSAxMy4zLTQ1LjEgMzMtNTYtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZzMTMuMy00NS4xIDMzLTU2Yy0xOS43LTEwLjktMzMtMzEuOS0zMy01NnMxMy4zLTQ1LjEgMzMtNTZjLTE5LjctMTAuOS0zMy0zMS45LTMzLTU2eiJdfSx0SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1kMjAiLGljb246WzUxMiw1MTIsW10sImY2Y2YiLCJNMjI0LjQtOC4yYzE5LjYtMTEuMSA0My42LTExLjEgNjMuMSAwbDE5MiAxMDguOGMyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAyMTUuNmMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE5MiAxMDguOGMtMTkuNiAxMS4xLTQzLjYgMTEuMS02My4xIDBMMzIuNCA0MjcuNUMxMi40IDQxNi4xIDAgMzk0LjggMCAzNzEuOEwwIDE1Ni4yYzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN0wyMjQuNC04LjJ6bTUyIDczLjJDMjY3IDQ5LjggMjQ1IDQ5LjggMjM1LjYgNjVsLTc2LjYgMTIzLjctODUuNC00Ni4zLTMuOC0xLjZjLTguOS0yLjctMTguOCAxLjEtMjMuNCA5LjZzLTIuNCAxOC45IDQuNyAyNC44bDMuMyAyLjMgODMuNCA0NS4yLTc0LjYgMTIwLjZDNTUuMyAzNTYuMiA2MSAzNzMgNzUgMzc4LjRsMTYxIDYxLjkgMCAzOS43YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMzkuNyAxNjEtNjEuOWMxNC01LjQgMTkuNy0yMi4yIDExLjgtMzVsLTc0LjctMTIwLjYgODMuNC00NS4yYzkuNy01LjMgMTMuMy0xNy40IDguMS0yNy4xcy0xNy40LTEzLjMtMjcuMS04LjFMMzUzIDE4OC43IDI3Ni40IDY1em0tNDcgMzI5LjlsLTEyMi00Ni45IDU0LjUtODguMSA2Ny41IDEzNXpNNDA0LjYgMzQ4bC0xMjIgNDYuOSA2Ny41LTEzNSA1NC41IDg4LjF6TTMxOS4zIDIzMkwyNTYgMzU4LjYgMTkyLjcgMjMyIDMxOS4zIDIzMnpNMzA4IDE5MmwtMTA0LjEgMCA1Mi04NCA1MiA4NHoiXX0sRG09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi16LWEiLGljb246WzUxMiw1MTIsWyJzb3J0LWFscGhhLWRlc2MiLCJzb3J0LWFscGhhLWRvd24tYWx0Il0sImY4ODEiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yODggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUwzOTcuMyAxNjAgNDQ4IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45TDM3MC44IDk2IDMyMCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQxMi42IDI3My43bDgwIDE2MGM3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsODAtMTYwYzUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMzU5LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40eiJdfSxhSGU9RG0saUhlPURtLHJIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicnVzaCIsaWNvbjpbMzg0LDUxMixbXSwiZjU1ZCIsIk0xNjIuNCA2Yy0xLjUtMy42LTUtNi04LjktNmwtMTkgMGMtMy45IDAtNy41IDIuNC04LjkgNkwxMDQuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDY2LjQgNmMtMS41LTMuNi01LTYtOC45LTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhsMCAyMDggMzg0IDAgMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjMwLjUgMGMtMy45IDAtNy41IDIuNC04LjkgNkwyMDAuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDE2Mi40IDZ6TTAgMzA0bDAgMTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMCAwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC02NCA2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtMzg0IDB6TTE5MiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnoiXX0sc0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWRhc2hlZC1saW5lLWFycm93LXJpZ2h0IixpY29uOls2NDAsNTEyLFtdLCJlNTUzIiwiTTE2MCA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNNzMuNCAyMjcuOWwyMi42LTIyLjYgMCA2OS4zYzAgMjggMTIuMiA1NC43IDMzLjUgNzIuOWw3MS40IDYxLjJjNS45IDUuMSA5LjggMTIuMSAxMC45IDE5LjhsMTIuNiA4OC4xYzIuNSAxNy41IDE4LjcgMjkuNyAzNi4yIDI3LjJzMjkuNy0xOC43IDI3LjItMzYuMmwtMTIuNi04OC4xYy0zLjMtMjMuMS0xNC45LTQ0LjEtMzIuNi01OS4zbC0zNC41LTI5LjYgMC0xMTUuMiAzLjggNC43YzE4LjIgMjIuOCA0NS44IDM2IDc1IDM2bDMzLjIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzMuMiAwYy05LjcgMC0xOC45LTQuNC0yNS0xMmwtMTcuOS0yMi40Yy0yMy0yOC44LTU3LjktNDUuNi05NC44LTQ1LjYtMzIuMiAwLTYzLjEgMTIuOC04NS44IDM1LjZMMjguMSAxODIuNkMxMC4xIDIwMC42IDAgMjI1IDAgMjUwLjVMMCAyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM3LjVjMC04LjUgMy40LTE2LjYgOS40LTIyLjZ6TTg1LjggNDA3LjNjLTEuNSA1LjItNC4zIDEwLTguMSAxMy44TDkuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhMODUuOCA0MDcuM3pNNDMyIDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMzg0LTUuMyAzODQgOGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMnptMCAxMjhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTQwOCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTYwOSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTcyLTcyYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMxIDMxLTEwMi4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTAyLjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyeiJdfSx1Qj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1zaG9ydC13aWRlIixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtdXAtYWx0Il0sImY4ODUiLCJNMzIwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwek0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LG5IZT11QixmQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLXZlcnRpY2FsIixpY29uOlszMjAsNTEyLFsiZ3JpZC12ZXJ0aWNhbCJdLCJmNThlIiwiTTEyOCA0MGMwLTIyLjEtMTcuOS00MC00MC00MEw0MCAwQzE3LjkgMCAwIDE3LjkgMCA0MEwwIDg4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHptMCAxOTJjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4ek0wIDQyNGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTMyMCA0MGMwLTIyLjEtMTcuOS00MC00MC00MEwyMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6TTE5MiAyMzJsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0zMjAgNDI0YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHoiXX0sb0hlPWZCLGxIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItdHVubmVsIixpY29uOls1MTIsNTEyLFtdLCJlNGRlIiwiTTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0Mi44IDBjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRsMC0xMTMuMWMwLTEzLjUgMy4xLTI2LjggOS0zOC45bDM5LjctODAuOGM5LjQtMTkuMSAyOC45LTMxLjMgNTAuMi0zMS4zTDMxNyAyMjRjMjEuMyAwIDQwLjggMTIuMSA1MC4yIDMxLjNMNDA3IDMzNmM1LjkgMTIuMSA5IDI1LjQgOSAzOC45TDQxNiA0ODhjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNGw0Mi44IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJDNTEyIDExNC42IDM5Ny40IDAgMjU2IDB6TTM2Mi44IDUxMmMtNi42LTUuOS0xMC44LTE0LjQtMTAuOC0yNGwwLTI0LTE5MiAwIDAgMjRjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNGwyMTMuNyAwem0tMTc1LTIzNS41bC0yOS4zIDU5LjUgMTk0LjkgMC0yOS4zLTU5LjVjLTEuMy0yLjctNC4xLTQuNS03LjItNC41TDE5NSAyNzJjLTMgMC01LjggMS43LTcuMiA0LjV6TTE3NiA0MjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0xODQtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sY0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWNvbHVtbiIsaWNvbjpbNTEyLDUxMixbXSwiZTBlMyIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0xNDQgMjI0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTQ0LTY0bDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTgwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNTEyIDk2bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LGRIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXByaWNvcm4iLGljb246WzU3Niw1MTIsW10sImU4NDgiLCJNMjQwIDMyYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0bDAgNjUuMmMxOC44LTEwLjkgNDAuNy0xNy4yIDY0LTE3LjIgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNTE4LjcgNDgwIDQ0OCA0ODBjLTM1LjggMC02OC4yLTE0LjctOTEuNC0zOC40LTI4LjggNDIuNS03Ny40IDcwLjQtMTMyLjYgNzAuNC0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYzUzIDAgOTYtNDMgOTYtOTZsMC0xNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBsMCAyMDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRjMC0zNS4zLTI4LjctNjQtNjQtNjQtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyAzMiAzMiAzMkM3Mi42IDMyIDEwOC44IDUxIDEzMi4yIDgwLjUgMTU4LjYgNTAuNyAxOTcuMSAzMiAyNDAgMzJ6TTQ0OCAyODhhNjQgNjQgMCAxIDAgMCAxMjggNjQgNjQgMCAxIDAgMC0xMjh6Il19LHBIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1hcnJvdy1yaWdodCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4YiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMuMyAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMTAyLjYgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDMuMyAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDE0Ni43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43bC01MC43IDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNTEyIDIzNy4zbDAgNTAuNy05NiAwIDAtOTYgNTAuNyAwIDQ1LjMgNDUuM3pNMTUyIDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTIzMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0zMDUgMjI1bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEwMi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXoiXX0sRW09e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHYiLGljb246WzU3Niw1MTIsWzYzNzE3LCJ0ZWxldmlzaW9uIiwidHYtYWx0Il0sImYyNmMiLCJNNjQgOTZsMCAyNDAgNDQ4IDAgMC0yNDAtNDQ4IDB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNjAgNDQ4bDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0saEhlPUVtLHVIZT1FbSxmSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2VjdGlvbiIsaWNvbjpbMjU2LDUxMixbXSwiZTQ0NyIsIk0xMTAgMEM0OS4yIDAgMCA0OS4yIDAgMTEwIDAgMTMzLjcgNy42IDE1NS44IDIwLjUgMTc0IDcuNiAxOTIgMCAyMTQuMSAwIDIzOCAwIDI5MS43IDM4LjkgMzM3LjYgOTEuOSAzNDYuNGw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDI1LjQtMjAuNiA0Ni00NiA0NmwtOTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5OCAwYzYwLjcgMCAxMTAtNDkuMiAxMTAtMTEwIDAtMjMuNy03LjYtNDUuOS0yMC41LTY0IDEyLjktMTggMjAuNS00MC4xIDIwLjUtNjQgMC01My44LTM4LjktOTkuNi05MS45LTEwOC41bC02MS43LTEwLjNDODAuMiAxNTEuNiA2NCAxMzIuNCA2NCAxMTAgNjQgODQuNiA4NC42IDY0IDExMCA2NGw5OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzIyNS43IDAgMjA4IDBMMTEwIDB6bTc0LjcgMjk5LjFjLTYuNS0yLjQtMTMuNC00LjMtMjAuNS01LjVsLTYxLjctMTAuM2MtMjIuMi0zLjctMzguNC0yMi45LTM4LjQtNDUuMyAwLTkuMiAyLjctMTcuOCA3LjQtMjUgNi41IDIuNCAxMy40IDQuMyAyMC41IDUuNWw2MS43IDEwLjNjMjIuMiAzLjcgMzguNCAyMi45IDM4LjQgNDUuMyAwIDkuMi0yLjcgMTcuOC03LjQgMjV6Il19LG1IZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZWFjZSIsaWNvbjpbNTEyLDUxMixbOTc3NF0sImY2N2MiLCJNMjI0IDQ0NS4zbDAtMTIxLjgtOTQuMyA3Ny4xYzI2LjEgMjIuOCA1OC41IDM4LjcgOTQuMyA0NC43ek04OS4yIDM1MS4xTDIyNCAyNDAuOCAyMjQgNjYuN2MtOTAuOCAxNS4yLTE2MCA5NC4yLTE2MCAxODkuMyAwIDM0LjYgOS4yIDY3LjEgMjUuMiA5NS4xem0yOTMuMSA0OS41bC05NC4zLTc3LjEgMCAxMjEuOGMzNS43LTYgNjguMS0yMS45IDk0LjMtNDQuN3ptNDAuNi00OS41YzE2LTI4IDI1LjItNjAuNSAyNS4yLTk1LjEgMC05NS4xLTY5LjItMTc0LjEtMTYwLTE4OS4zbDAgMTc0LjIgMTM0LjggMTEwLjN6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LGdIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGFyIixpY29uOls1NzYsNTEyLFsxMTA4OCw2MTQ0Nl0sImYwMDUiLCJNMzA5LjUtMTguOWMtNC4xLTgtMTIuNC0xMy4xLTIxLjQtMTMuMXMtMTcuMyA1LjEtMjEuNCAxMy4xTDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjg4LjEgNDE3LjYgNDMyLjQgNDkxYzggNC4xIDE3LjcgMy4zIDI1LTJzMTEtMTQuMiA5LjYtMjMuMkw0NDEuNyAzMDUuOSA1NTYuMSAxOTEuNGM2LjQtNi40IDguNi0xNS44IDUuOC0yNC40cy0xMC4xLTE0LjktMTkuMS0xNi4zTDM4MyAxMjUuMyAzMDkuNS0xOC45eiJdfSxiSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhZyIsaWNvbjpbNDQ4LDUxMixbMTI3OTg4LDYxNzI1XSwiZjAyNCIsIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjEuNiA2Mi43LTE4LjhjNDEuOS0xMi42IDg3LjEtOC43IDEyNi4yIDEwLjkgNDIuNyAyMS40IDkyLjUgMjQgMTM3LjIgNy4ybDM3LjEtMTMuOWMxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI0Ny43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTExLjggNS45Yy00NC45IDIyLjUtOTcuOCAyMi41LTE0Mi44IDAtMzYuNC0xOC4yLTc4LjMtMjEuOC0xMTcuMi0xMC4xTDY0IDU0LjQgNjQgMzJ6Il19LFBtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyaWFuZ2xlLWV4Y2xhbWF0aW9uIixpY29uOls1MTIsNTEyLFs5ODg4LCJleGNsYW1hdGlvbi10cmlhbmdsZSIsIndhcm5pbmciXSwiZjA3MSIsIk0yNTYgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjVTNDg2LjEgNDgwIDQ3MiA0ODBMNDAgNDgwYy0xNC4xIDAtMjcuMi03LjQtMzQuNC0xOS41cy03LjUtMjcuMS0uOC0zOS41bDIxNi00MDBjNy0xMi45IDIwLjUtMjEgMzUuMi0yMXptMCAzNTJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em0wLTE5MmMtMTguMiAwLTMyLjcgMTUuNS0zMS40IDMzLjdsNy40IDEwNGMuOSAxMi41IDExLjQgMjIuMyAyMy45IDIyLjMgMTIuNiAwIDIzLTkuNyAyMy45LTIyLjNsNy40LTEwNGMxLjMtMTguMi0xMy4xLTMzLjctMzEuNC0zMy43eiJdfSx2SGU9UG0seUhlPVBtLHhIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTZjIiwiTTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjc2IDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTkwLjkgMCAwLTg4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMSAwIDEuOSAwIDIuOSAuMSAyNi4zLTc0LjYgOTcuNS0xMjguMSAxODEuMS0xMjguMSAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTMzLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDAtMTI3LjktMTE1LjFjLTE4LjMtMTYuNC00Ni0xNi40LTY0LjIgMEwxMjggMTI4IDY0IDEyOHptNjQgMjQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJ6TTExMiAyNTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMjg4IDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LG1CPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyYWR1YXRpb24tY2FwIixpY29uOls1NzYsNTEyLFsxMjc4OTEsIm1vcnRhci1ib2FyZCJdLCJmMTlkIiwiTTQ4IDE5NS44bDIwOS4yIDg2LjFjOS44IDQgMjAuMiA2LjEgMzAuOCA2LjFzMjEtMi4xIDMwLjgtNi4xbDI0Mi40LTk5LjhjOS0zLjcgMTQuOC0xMi40IDE0LjgtMjIuMXMtNS44LTE4LjQtMTQuOC0yMi4xTDMxOC44IDM4LjFDMzA5IDM0LjEgMjk4LjYgMzIgMjg4IDMycy0yMSAyLjEtMzAuOCA2LjFMMTQuOCAxMzcuOUM1LjggMTQxLjYgMCAxNTAuMyAwIDE2MEwwIDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjYwLjJ6bTQ4IDcxLjdMOTYgMzg0YzAgNTMgODYgOTYgMTkyIDk2czE5Mi00MyAxOTItOTZsMC0xMTYuNi0xNDIuOSA1OC45Yy0xNS42IDYuNC0zMi4yIDkuNy00OS4xIDkuN3MtMzMuNS0zLjMtNDkuMS05LjdMOTYgMjY3LjR6Il19LHdIZT1tQixNSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcmUiLGljb246WzUxMiw1MTIsW10sImY1NGUiLCJNMzAuNyA3Mi4zQzM3LjYgNDguNCA1OS41IDMyIDg0LjQgMzJsMzQ0IDBjMjQuOSAwIDQ2LjggMTYuNCA1My44IDQwLjNsMjMuNCA4MC4yYzEyLjggNDMuNy0yMC4xIDg3LjUtNjUuNiA4Ny41LTI2LjMgMC00OS40LTE0LjktNjAuOC0zNy4xLTExLjYgMjEuOS0zNC42IDM3LjEtNjEuNCAzNy4xLTI2LjYgMC00OS43LTE1LTYxLjMtMzctMTEuNiAyMi0zNC43IDM3LTYxLjMgMzctMjYuOCAwLTQ5LjgtMTUuMS02MS40LTM3LjEtMTEuNCAyMi4xLTM0LjUgMzcuMS02MC44IDM3LjEtNDUuNiAwLTc4LjQtNDMuNy02NS42LTg3LjVMMzAuNyA3Mi4zek05Ni40IDM1MmwzMjAgMCAwLTY2LjRjNy42IDEuNiAxNS41IDIuNCAyMy41IDIuNCAxNC4zIDAgMjgtMi42IDQwLjUtNy4ybDAgMTUxLjJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTM1MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE1MS4yYzEyLjUgNC42IDI2LjEgNy4yIDQwLjUgNy4yIDguMSAwIDE1LjktLjggMjMuNS0yLjRsMCA2Ni40eiJdfSx6SGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1hc3Ryb25hdXQiLGljb246WzQ0OCw1MTIsW10sImY0ZmIiLCJNMjI0IDMzNmM3NC42IDAgMTM4LjQtNDYuNCAxNjQtMTEybDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0bC00IDBDMzYyLjQgMzAuNCAyOTguNi0xNiAyMjQtMTZTODUuNiAzMC40IDYwIDk2bC00IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNCAwYzI1LjYgNjUuNiA4OS40IDExMiAxNjQgMTEyek0yMDggODBsMzIgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMzIgMGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NnpNMTYgNDg0LjZDMTYgNDk5LjcgMjguMyA1MTIgNDMuNCA1MTJsNTIuNiAwIDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OCA1Mi42IDBjMTUuMSAwIDI3LjQtMTIuMyAyNy40LTI3LjQgMC01OS44LTMxLjktMTEyLjItNzkuNi0xNDEtMzYuNCAyNS41LTgwLjYgNDAuNC0xMjguNCA0MC40cy05Mi0xNC45LTEyOC40LTQwLjRDNDcuOSAzNzIuNCAxNiA0MjQuOCAxNiA0ODQuNnpNMTgzLjMgMTQxLjVjLS45LTMuMy0zLjktNS41LTcuMy01LjVzLTYuNCAyLjItNy4zIDUuNWwtNiAyMS4yLTIxLjIgNmMtMy4zIC45LTUuNSAzLjktNS41IDcuM3MyLjIgNi40IDUuNSA3LjNsMjEuMiA2IDYgMjEuMmMuOSAzLjMgMy45IDUuNSA3LjMgNS41czYuNC0yLjIgNy4zLTUuNWw2LTIxLjIgMjEuMi02YzMuMy0uOSA1LjUtMy45IDUuNS03LjNzLTIuMi02LjQtNS41LTcuM2wtMjEuMi02LTYtMjEuMnpNMTUyIDQ4OGwwIDI0IDQ4IDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptMTIwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDI0IDQ4IDAgMC0yNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sa0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWZsYWciLGljb246WzY0MCw1MTIsW10sImU0ZDUiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMHpNMTc2IDM1MmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtOTYgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjQwIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTk2IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyem0xNDQtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnpNNDY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yODggMTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LGdCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11Zy1zYXVjZXIiLGljb246WzU3Niw1MTIsWyJjb2ZmZWUiXSwiZjBmNCIsIk02NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzNTIgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFM1MTguNyAyODggNDQ4IDI4OGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMGMtNTMgMC05Ni00My05Ni05Nkw2NCA2NHptNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0bDAgMTI4YzM1LjMgMCA2NC0yOC43IDY0LTY0ek02NCA0NDhsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxTSGU9Z0IsQ0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlbW9uIixpY29uOls0NDgsNTEyLFsxMjc4MTldLCJmMDk0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NC02LjYgMC0xMyAxLTE5IDIuOS0yMi41IDctNDguMSAxNC45LTcxIDktNzUuMi0xOS4xLTE1Ni40IDExLTIxMy43IDY4LjNTLTcuMiAyNTAuOCAxMS45IDMyNmM1LjggMjIuOS0yIDQ4LjQtOSA3MS0xLjkgNi0yLjkgMTIuNC0yLjkgMTkgMCAzNS4zIDI4LjcgNjQgNjQgNjQgNi42IDAgMTMtMSAxOS4xLTIuOSAyMi41LTcgNDguMS0xNC45IDcxLTkgNzUuMiAxOS4xIDE1Ni40LTExIDIxMy43LTY4LjNTNDU1LjIgMjYxLjIgNDM2LjEgMTg2Yy01LjgtMjIuOSAyLTQ4LjQgOS03MSAxLjktNiAyLjktMTIuNCAyLjktMTkuMXpNMjIyLjcgMTQzYy01MiAxNS4yLTk2LjUgNTkuNy0xMTEuNyAxMTEuNy0zLjcgMTIuNy0xNy4xIDIwLTI5LjggMTYuM1M2MS4yIDI1NCA2NSAyNDEuM2MxOS44LTY3LjcgNzYuNi0xMjQuNSAxNDQuMy0xNDQuMyAxMi43LTMuNyAyNi4xIDMuNiAyOS44IDE2LjNzLTMuNiAyNi4xLTE2LjMgMjkuOHoiXX0sX0hlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmF2YW4iLGljb246WzY0MCw1MTIsW10sImY4ZmYiLCJNMzIgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxOTIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjk2LjQgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0yLjcgLjEtNS40IC40LThMOTYgNDE2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA5NnpNMzUyIDM1Mmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDgtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyek0xNjAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHptNjQgMzM2YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sVEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InEiLGljb246WzQ0OCw1MTIsWzExM10sIjUxIiwiTTY0IDI1NmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MCAyOC45IDAgNTYtNy43IDc5LjQtMjEuMWwtNzItODYuNGMtMTEuMy0xMy42LTkuNS0zMy44IDQuMS00NS4xczMzLjgtOS41IDQ1LjEgNC4xbDcwLjkgODUuMWMyMC40LTI2LjggMzIuNS02MC4zIDMyLjUtOTYuNiAwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MFM2NCAxNjcuNiA2NCAyNTZ6TTM0NC45IDQ0NC42QzMxMCA0NjcgMjY4LjUgNDgwIDIyNCA0ODAgMTAwLjMgNDgwIDAgMzc5LjcgMCAyNTZTMTAwLjMgMzIgMjI0IDMyIDQ0OCAxMzIuMyA0NDggMjU2YzAgNTYuMS0yMC42IDEwNy40LTU0LjcgMTQ2LjdsNDcuMyA1Ni44YzExLjMgMTMuNiA5LjUgMzMuOC00LjEgNDUuMXMtMzMuOCA5LjUtNDUuMS00LjFsLTQ2LjYtNTUuOXoiXX0sTEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NF0sImYwMjMiLCJNMTI4IDk2bDAgNjQgMTI4IDAgMC02NGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NHpNNjQgMTYwbDAtNjRDNjQgMjUuMyAxMjEuMy0zMiAxOTItMzJTMzIwIDI1LjMgMzIwIDk2bDAgNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0sJEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhaW50LXJvbGxlciIsaWNvbjpbNTEyLDUxMixbXSwiZjVhYSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwxNiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgOTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxOC43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTE4LjdjMC00NC4yIDM1LjgtODAgODAtODBsMTYwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDE5MmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHoiXX0sYkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLWhpZ2giLGljb246WzY0MCw1MTIsWzEyODI2Niwidm9sdW1lLXVwIl0sImYwMjgiLCJNNTMzLjYgMzIuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzU1Ny41IDExMy44IDU5MiAxODAuOCA1OTIgMjU2cy0zNC41IDE0Mi4yLTg4LjcgMTg2LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNTk4LjUgNDI2LjcgNjQwIDM0Ni4yIDY0MCAyNTZTNTk4LjUgODUuMiA1MzMuNiAzMi41ek00NzMuMSAxMDdjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEM0NzUuMyAxNzAuNyA0OTYgMjEwLjkgNDk2IDI1NnMtMjAuNyA4NS4zLTUzLjIgMTExLjhjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVjNDMuMi0zNS4yIDcwLjktODguOSA3MC45LTE0OXMtMjcuNy0xMTMuOC03MC45LTE0OXptLTYwLjUgNzQuNWMtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzM5My4xIDIyNy42IDQwMCAyNDEgNDAwIDI1NnMtNi45IDI4LjQtMTcuNyAzNy4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzQzNC4xIDMxMi45IDQ0OCAyODYuMSA0NDggMjU2cy0xMy45LTU2LjktMzUuNC03NC41ek04MCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMMTI4IDE2MCA4MCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6Il19LEFIZT1iQixESGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLXBsdXMiLGljb246WzUxMiw1MTIsW10sImY2NWUiLCJNNTEyIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MHpNMjU2IDE2MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxFSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVyY3VyeSIsaWNvbjpbMzg0LDUxMixbOTc5MV0sImYyMjMiLCJNMTE3LTRDMTA2LTE3LjggODUuOC0yMCA3Mi4xLTlzLTE2IDMxLjItNSA0NUM3NC45IDQ1LjcgODMuNyA1NC41IDkzLjUgNjIuMSA0Ni43IDkzLjcgMTYgMTQ3LjMgMTYgMjA4IDE2IDI5NC4zIDc4LjEgMzY2LjEgMTYwIDM4MS4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC02MC43LTMwLjctMTE0LjMtNzcuNS0xNDUuOSA5LjgtNy43IDE4LjctMTYuNCAyNi40LTI2LjEgMTEuMS0xMy44IDguOC0zMy45LTUtNDVTMjc4LTE3LjggMjY3LTRjLTE3LjYgMjItNDQuNyAzNi03NSAzNlMxMzQuNyAxOCAxMTctNHptNzUgMzI0Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMlMxMzAuMSA5NiAxOTIgOTYgMzA0IDE0Ni4xIDMwNCAyMDhjMCA2MS44LTUwLjEgMTEyLTExMS45IDExMmwtLjEgMHoiXX0sUEhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvciIsaWNvbjpbNTc2LDUxMixbOTg3NV0sImYxM2QiLCJNMjg4IDY0YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0MS44LTI2LjcgNzcuNC02NCA5MC41bDAgMjU3LjljNjIuOS0xNC4zIDExMC4yLTY5LjcgMTExLjktMTM2LjVsLTE2LjEgMTQuMWMtMTAgOC43LTI1LjEgNy43LTMzLjktMi4zcy03LjctMjUuMSAyLjMtMzMuOWw2NC01NmM5LTcuOSAyMi42LTcuOSAzMS42IDBsNjQgNTZjMTAgOC43IDExIDIzLjkgMi4zIDMzLjlzLTIzLjkgMTEtMzMuOSAyLjNMNDk2IDMwNy45QzQ5My45IDQyMSA0MDEuNiA1MTIgMjg4IDUxMlM4Mi4xIDQyMSA4MCAzMDcuOUw2My44IDMyMi4xYy0xMCA4LjctMjUuMSA3LjctMzMuOS0yLjNzLTcuNy0yNS4xIDIuMy0zMy45bDY0LTU2YzktNy45IDIyLjYtNy45IDMxLjYgMGw2NCA1NmMxMCA4LjcgMTEgMjMuOSAyLjMgMzMuOXMtMjMuOSAxMS0zMy45IDIuM2wtMTYuMS0xNC4xYzEuOCA2Ni44IDQ5LjEgMTIyLjIgMTExLjkgMTM2LjVsMC0yNTcuOWMtMzcuMy0xMy4yLTY0LTQ4LjctNjQtOTAuNXoiXX0sdkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBhcmtpbmciLGljb246WzQ0OCw1MTIsWzEyNzM1OSwicGFya2luZyJdLCJmNTQwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTE5MiAyNTZsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDggMCAwIDY0em00OCA2NGwtNDggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTg0YzAtMjIuMSAxNy45LTQwIDQwLTQwbDcyIDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZ6Il19LElIZT12QixOSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFudWtpYWgiLGljb246WzY0MCw1MTIsWzEyODMzNF0sImY2ZTYiLCJNMzE0LjIgMy4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zem0tMjg4IDQ4QzIxLjEgNjAuMSA4IDg0LjYgOCAxMDQgOCAxMTcuMyAxOC43IDEyOCAzMiAxMjhzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek04OCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzEwMS4xIDYwLjEgODggODQuNiA4OCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNMjE2IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDMjI5LjEgNjAuMSAyMTYgODQuNiAyMTYgMTA0ek0zOTQuMiA1MS4zYy01LjEgOC44LTE4LjIgMzMuMy0xOC4yIDUyLjcgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zek00NDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0M0NTMuMSA2MC4xIDQ0MCA4NC42IDQ0MCAxMDR6bTgyLjItNTIuN2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNTg0IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNTk3LjEgNjAuMSA1ODQgODQuNiA1ODQgMTA0ek0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em0xNjAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzUyIDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3Ni0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDE3NC4zIDAgMTkybDAgOTZjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMCAwIDY0LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMCAwLTY0IDE5MiAwYzUzIDAgOTYtNDMgOTYtOTZsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xOTIgMCAwLTE3NnoiXX0sWTU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm90YXRlLWxlZnQiLGljb246WzUxMiw1MTIsWyJyb3RhdGUtYmFjayIsInJvdGF0ZS1iYWNrd2FyZCIsInVuZG8tYWx0Il0sImYyZWEiLCJNMjQgMTkybDE0NCAwYzkuNyAwIDE4LjUtNS44IDIyLjItMTQuOHMxLjctMTkuMy01LjItMjYuMmwtNDYuNy00Ni43Yzc1LjMtNTguNiAxODQuMy01My4zIDI1My41IDE1LjkgNzUgNzUgNzUgMTk2LjUgMCAyNzEuNXMtMTk2LjUgNzUtMjcxLjUgMGMtMTAuMi0xMC4yLTE5LTIxLjMtMjYuNC0zMy05LjUtMTQuOS0yOS4zLTE5LjMtNDQuMi05LjhzLTE5LjMgMjkuMy05LjggNDQuMkM0OS43IDQwOC43IDYxLjQgNDIzLjUgNzUgNDM3IDE3NSA1MzcgMzM3IDUzNyA0MzcgNDM3UzUzNyAxNzUgNDM3IDc1QzM0Mi44LTE5LjMgMTkzLjMtMjQuNyA5Mi43IDU4LjhMNDEgN0MzNC4xIC4yIDIzLjgtMS45IDE0LjggMS44UzAgMTQuMyAwIDI0TDAgMTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0eiJdfSxGSGU9WTUsT0hlPVk1LFJIZT1ZNSx5Qj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkaW5nIixpY29uOls0NDgsNTEyLFsiaGVhZGVyIl0sImYxZGMiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNiAwIDAgMTEyIDIyNCAwIDAtMTEyLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYgMCAwIDMyMCAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNDQtMjI0IDAgMCAxNDQgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMzIwLTE2IDBDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sQkhlPXlCLEhIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFtdLCJmMDViIiwiTTI4OC0xNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE4LjNjOTguMSAxNCAxNzUuNyA5MS42IDE4OS43IDE4OS43bDE4LjMgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguMyAwYy0xNCA5OC4xLTkxLjYgMTc1LjctMTg5LjcgMTg5LjdsMCAxOC4zYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguM0MxNTcuOSA0NjMuNyA4MC4zIDM4Ni4xIDY2LjMgMjg4TDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC4zIDBDODAuMyAxMjUuOSAxNTcuOSA0OC4zIDI1NiAzNC4zTDI1NiAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTMxLjIgMjg4YzEyLjcgNjIuNyA2Mi4xIDExMi4xIDEyNC44IDEyNC44bDAtMTIuOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTIuOGM2Mi43LTEyLjcgMTEyLjEtNjIuMSAxMjQuOC0xMjQuOEw0MzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEyLjggMEM0MzIuMSAxNjEuMyAzODIuNyAxMTEuOSAzMjAgOTkuMmwwIDEyLjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMi44QzE5My4zIDExMS45IDE0My45IDE2MS4zIDEzMS4yIDIyNGwxMi44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyLjggMHpNMjg4IDIwOGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LHFIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbm9kZXMiLGljb246WzUxMiw1MTIsW10sImU0ZTIiLCJNNDE4LjQgMTU3LjljMzUuMy04LjMgNjEuNi00MCA2MS42LTc3LjkgMC00NC4yLTM1LjgtODAtODAtODAtNDMuNCAwLTc4LjcgMzQuNS04MCA3Ny41TDEzNi4yIDE1MS4xQzEyMS43IDEzNi44IDEwMS45IDEyOCA4MCAxMjggMzUuOCAxMjggMCAxNjMuOCAwIDIwOHMzNS44IDgwIDgwIDgwYzEyLjIgMCAyMy44LTIuNyAzNC4xLTcuNkwyNTkuNyA0MDcuOGMtMi40IDcuNi0zLjcgMTUuOC0zLjcgMjQuMiAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMjcuNy0xNC01Mi4xLTM1LjQtNjYuNGwzNy44LTIwNy43ek0xNTYuMyAyMzIuMmMyLjItNi45IDMuNS0xNC4yIDMuNy0yMS43bDE4My44LTczLjVjMy42IDMuNSA3LjQgNi43IDExLjYgOS41TDMxNy42IDM1NC4xYy01LjUgMS4zLTEwLjggMy4xLTE1LjggNS41TDE1Ni4zIDIzMi4yeiJdfSxWSGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZG93LXJlc3RvcmUiLGljb246WzU3Niw1MTIsW10sImYyZDIiLCJNNTEyIDk2TDE2MCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDggMCAwLTY0IDQ4IDAgMC0xOTJ6TTAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjR6bTY0IDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LGpIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyIixpY29uOlszMjAsNTEyLFsxMTRdLCI1MiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggOTUuMyAwIDEwMi40IDE0Ni40YzEwLjEgMTQuNSAzMC4xIDE4IDQ0LjYgNy45czE4LTMwLjEgNy45LTQ0LjZMMjMwLjEgMzA5LjVDMjgyLjggMjg4LjEgMzIwIDIzNi40IDMyMCAxNzYgMzIwIDk2LjUgMjU1LjUgMzIgMTc2IDMyTDMyIDMyek0xNzYgMjU2bC0xMTIgMCAwLTE2MCAxMTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHoiXX0sVUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbHRlci1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImUxN2IiLCJNMzIgNjRDMTkuMSA2NCA3LjQgNzEuOCAyLjQgODMuOFMuMiAxMDkuNSA5LjQgMTE4LjZMMTkyIDMwMS4zIDE5MiA0MTZjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjMi41IDIuNSA1LjMgNC41IDguMyA2LTIxLjItMzAuOS0zMy42LTY4LjMtMzMuNi0xMDguNiAwLTk5LjQgNzUuNS0xODEuMSAxNzIuMy0xOTFsOTAuNC05MC40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDY0IDQ4MCA2NEwzMiA2NHpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LFdIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnb3B1cmFtIixpY29uOls1MTIsNTEyLFtdLCJmNjY0IiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOCA0MCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOCA0OCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOCA0MCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTM2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTQ4IDAgMC0yMjQtMzIgMCAwLTEyOC00OCAwIDAgMTI4IDMyIDAgMCAyMjQtMjI0IDAgMC0yMjQgMzIgMCAwLTEyOC00OCAwIDAgMTI4LTMyIDAgMCAyMjQtNDggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OEw5NiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjU2IDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6TTIwOCA0MDBsMCA2NCA5NiAwIDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTI1NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMiA2NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEdIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtbWludXMiLGljb246WzU3Niw1MTIsW10sImU0ZmYiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnoiXX0sWUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItb2YtbGlmZSIsaWNvbjpbNTEyLDUxMixbXSwiZjYyMSIsIk0yMDguNSAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTQwLjkgMTIyLTcwLjRjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDE2IDI3LjdjOC44IDE1LjMgMy42IDM0LjktMTEuNyA0My43bC0xMjIgNzAuNCAxMjIgNzAuNGMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43bC0xNiAyNy43Yy04LjggMTUuMy0yOC40IDIwLjYtNDMuNyAxMS43bC0xMjItNzAuNCAwIDE0MC45YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE0MC45LTEyMiA3MC40Yy0xNS4zIDguOC0zNC45IDMuNi00My43LTExLjdsLTE2LTI3LjdjLTguOC0xNS4zLTMuNi0zNC45IDExLjctNDMuN2wxMjItNzAuNC0xMjItNzAuNGMtMTUuMy04LjgtMjAuNS0yOC40LTExLjctNDMuN2wxNi0yNy43YzguOC0xNS4zIDI4LjQtMjAuNSA0My43LTExLjdsMTIyIDcwLjQgMC0xNDAuOXoiXX0seEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzaW5lc3MtdGltZSIsaWNvbjpbNjQwLDUxMixbImJyaWVmY2FzZS1jbG9jayJdLCJmNjRhIiwiTTI2NCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDk2IDMwNSAwYzMzLjgtMjkuOSA3OC4zLTQ4IDEyNy00OCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyNjQgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6bTgwIDI5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNi0xOTIgMCAwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTMuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0xNi42IDIuMS0zMi43IDYtNDhsLTIyIDB6bTM1MiA0OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwek00OTYgMzIwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQ4IDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sWkhlPXhCLFhIZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWV4dGluZ3Vpc2hlciIsaWNvbjpbNTEyLDUxMixbMTI5NTE5XSwiZjEzNCIsIk01MTIgMzJjMC05LjYtNC4zLTE4LjctMTEuNy0yNC43UzQ4My4xLTEuMyA0NzMuNyAuNmwtMTYwIDMyQzMwMS41IDM1LjEgMjkyIDQ0LjMgMjg5IDU2bC02NSAwIDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjguNGMtNTUuMyAxMi4zLTEwMS4zIDQ5LjUtMTI1LjUgOTkuMS01LjggMTEuOS0uOSAyNi4zIDExLjEgMzIuMXMyNi4zIC45IDMyLjEtMTEuMUM2MiAxNDYuOSA5MS44IDEyMS4xIDEyOCAxMTBsMCAyOC44Yy0zNy44IDE4LTY0IDU2LjUtNjQgMTAxLjJsMCAxMjggMjI0IDAgMC0xMjhjMC00NC43LTI2LjItODMuMi02NC0xMDEuMmwwLTM0LjggNjUgMGMzIDExLjcgMTIuNSAyMC45IDI0LjcgMjMuNGwxNjAgMzJjOS40IDEuOSAxOS4xLS42IDI2LjYtNi42UzUxMiAxMzcuNiA1MTIgMTI4bDAtOTZ6TTI4OCA0NDhsMC0zMi0yMjQgMCAwIDMyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDk2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjR6Il19LHdCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctZG93biJdLCJmMTc1IiwiTTEzNy40IDUzNC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDQzNC43IDE5MiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzEyOC0xNy43IDEyOCAwbDAgNDM0LjctNzMuNC03My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4eiJdfSxLSGU9d0IsUUhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbWludXMiLGljb246WzY0MCw1MTIsW10sImY1MDMiLCJNMjg1LjcgMzA0Yzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDc3LjcgNTEyQzYxLjMgNTEyIDQ4IDQ5OC43IDQ4IDQ4Mi4zIDQ4IDM4My44IDEyNy44IDMwNCAyMjYuMyAzMDRsNTkuNCAwek0yNTYgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptMzQ0LTk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNDQgMHoiXX0sSkhlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWNoZWNrIixpY29uOls1MTIsNTEyLFtdLCJmNTNjIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6TTk2IDMxMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNC0xMzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI3MiAweiJdfSxNQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1sYXB0b3AiLGljb246WzY0MCw1MTIsWyJsYXB0b3AtaG91c2UiXSwiZTA2NiIsIk00NDggMjQwbDE5LjkgMGMxNS41IDAgMjguMS0xMi42IDI4LjEtMjguMSAwLTcuNi0zLjEtMTQuOS04LjYtMjAuMkwyODMuNS00LjlDMjc2LjEtMTIgMjY2LjMtMTYgMjU2LTE2cy0yMC4xIDQtMjcuNSAxMS4xTDI0LjYgMTkxLjdDMTkuMSAxOTcgMTYgMjA0LjMgMTYgMjExLjkgMTYgMjI3LjQgMjguNiAyNDAgNDQuMSAyNDBsMTkuOSAwIDAgMTQ0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg1LjcgMGM3LjQtNi42IDE2LjQtMTEuNCAyNi4zLTE0bDAtMTMwYzAtNS41IC43LTEwLjkgMi0xNmwtMTAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjQgMTQ0IDB6TTM1MiAzNTJsMTYwIDAgMCAxMjgtMTYwIDAgMC0xMjh6bS02NC0zMmwwIDE2MC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCAyNi41IDIxLjUgNDggNDggNDhsMjg4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwIDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LGVxZT1NQix0cWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bmxvYWQiLGljb246WzQ0OCw1MTIsW10sImYwMTkiLCJNMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjEwLjctNDEuNC00MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyNTYgMjQyLjcgMjU2IDMyek02NCAzMjBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNDYuOSAwLTU2LjYgNTYuNmMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwTDExMC45IDMyMCA2NCAzMjB6bTMwNCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LGFxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWdpdHRhcml1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0ZCIsIk00MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04Mi44LTE0Ni44IDE0Ni44IDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuMnMtMzIuOCAxMi41LTQ1LjMgMEwxOTIgMzMzLjMgNTQuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4yIDBzLTEyLjUtMzIuOCAwLTQ1LjJMMTQ2LjggMjg4IDEwNS40IDI0Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuMnMzMi44LTEyLjUgNDUuMiAwTDE5MiAyNDIuOCAzMzguOCA5NiAyNTYgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDB6Il19LGlxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3VjaCIsaWNvbjpbNjQwLDUxMixbXSwiZjRiOCIsIk0xNDQgMjcyQzE0NCAyMjQuNyAxMDkuOCAxODUuNCA2NC44IDE3Ny41IDcyIDExMy42IDEyNi4yIDY0IDE5MiA2NGwyNTYgMGM2NS44IDAgMTIwIDQ5LjYgMTI3LjIgMTEzLjUtNDUgOC03OS4yIDQ3LjItNzkuMiA5NC41bDAgMzItMzUyIDAgMC0zMnpNMCAzODRMMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDQ0OCAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0eiJdfSxycWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNTY3IiwiTTI1NiAzMmwtNzYuMyAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkwzMy40IDQyMC41QzI1LjkgNDUwLjcgNDguOCA0ODAgODAgNDgwbDE3NS45IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMiA2LjEgMCAxMS44IDEuNyAxNi43IDQuNyAyLjgtMjMuOSAxNC4zLTQ1LjEgMzEuNC02MC4zbDAtMjQuNGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCA2LjIgMCAxMi40IC40IDE4LjQgMS4zTDQ1OC41IDgwLjZDNDUxLjQgNTIuMSA0MjUuOCAzMiAzOTYuMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptNjQgMTkybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xNzYgODAuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNMzUyIDQwMGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sekI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Npc3NvcnMiLGljb246WzUxMiw1MTIsWzk5ODQsOTk4Niw5OTg4LCJjdXQiXSwiZjBjNCIsIk0xOTIgMjU2bC0zOS41IDM5LjVjLTEyLjYtNC45LTI2LjItNy41LTQwLjUtNy41LTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyczUwLjEgMTEyIDExMiAxMTIgMTEyLTUwLjEgMTEyLTExMmMwLTE0LjMtMi43LTI3LjktNy41LTQwLjVMNDk5LjIgNzYuOGM3LjEtNy4xIDcuMS0xOC41IDAtMjUuNi0yOC4zLTI4LjMtNzQuMS0yOC4zLTEwMi40IDBMMjU2IDE5MiAyMTYuNSAxNTIuNWM0LjktMTIuNiA3LjUtMjYuMiA3LjUtNDAuNSAwLTYxLjktNTAuMS0xMTItMTEyLTExMlMwIDUwLjEgMCAxMTIgNTAuMSAyMjQgMTEyIDIyNGMxNC4zIDAgMjcuOS0yLjcgNDAuNS03LjVMMTkyIDI1NnptOTcuOSA5Ny45TDM5Ni44IDQ2MC44YzI4LjMgMjguMyA3NC4xIDI4LjMgMTAyLjQgMCA3LjEtNy4xIDcuMS0xOC41IDAtMjUuNmwtMTQ1LjMtMTQ1LjMtNjQgNjR6TTY0IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00OCAyNDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2eiJdfSxzcWU9ekIscGc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVnIixpY29uOls1NzYsNTEyLFtdLCJmMTg4IiwiTTE5MiA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40bC0xMzUuMSAwYy0xNS43IDAtMjguNC0xMi43LTI4LjQtMjguNGwwLTMuNnptMzQ1LjYgMTIuOGMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhsLTk3LjggNzMuM2M1LjMgOC45IDkuMyAxOC43IDExLjggMjkuMWw5OC44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCAzMmMwIDIuNi0uMSA1LjMtLjIgNy45bDgzLjQgNjIuNWMxNC4xIDEwLjYgMTcgMzAuNyA2LjQgNDQuOHMtMzAuNyAxNy00NC44IDYuNGwtNjMuMS00Ny4zYy0yMy4yIDQ0LjItNjYuNSA3Ni4yLTExNy43IDgzLjlMMzEyIDI4MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIzMC4yYy01MS4yLTcuNy05NC41LTM5LjctMTE3LjctODMuOUw4My4yIDQ3My42Yy0xNC4xIDEwLjYtMzQuMiA3LjctNDQuOC02LjRzLTcuNy0zNC4yIDYuNC00NC44bDgzLjQtNjIuNWMtLjEtMi42LS4yLTUuMi0uMi03LjlsMC0zMi05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk4LjggMGMyLjUtMTAuNCA2LjUtMjAuMiAxMS44LTI5LjFMNDQuOCAxNTMuNmMtMTQuMS0xMC42LTE3LTMwLjctNi40LTQ0LjhzMzAuNy0xNyA0NC44LTYuNEwxOTIgMTg0YzEyLjMtNS4xIDI1LjgtOCA0MC04bDExMiAwYzE0LjIgMCAyNy43IDIuOCA0MCA4bDEwOC44LTgxLjZjMTQuMS0xMC42IDM0LjItNy43IDQ0LjggNi40eiJdfSxrQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1mcm9tLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLW91dCJdLCJmMDhiIiwiTTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAxOTIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LG5xZT1rQixvcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLWhhbmQiLGljb246WzU3Niw1MTIsW10sImU0ZjciLCJNNDY2LjggMTg2LjVsNDIuNS00Mi41IDM0LjcgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDIyMy42IDE2Yy0yOSAwLTU3LjMgOS4zLTgwLjcgMjYuNUwxNi4zIDEzNS44Yy0xNy44IDEzLjEtMjEuNiAzOC4xLTguNSA1NS45czM4LjEgMjEuNiA1NS45IDguNUwxODMuNCAxMTIgMjk2IDExMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNTIuMiAwYzMzLjkgMCA2Ni41LTEzLjUgOTAuNS0zNy41em0tMzU3LjUgMTM5TDY2LjcgMzY4IDMyIDM2OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQwMCAyODAgNDAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSxscWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Ryb29wd2FmZWwiLGljb246WzUxMiw1MTIsW10sImY1NTEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMzEyLjYgNjMuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMjU2IDk3LjYgMjIyLjEgNjMuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzMy45IDMzLjktNDUuMyA0NS4zLTU2LjYtNTYuNmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw1Ni42IDU2LjYtNDUuMyA0NS4zLTMzLjktMzMuOWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw5Ny42IDI1NiA2My43IDI4OS45Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzMuOS0zMy45IDQ1LjMgNDUuMy01Ni42IDU2LjZjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni42LTU2LjYgNDUuMyA0NS4zLTMzLjkgMzMuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMzLjktMzMuOSAzMy45IDMzLjljNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zMy45LTMzLjkgNDUuMy00NS4zIDU2LjYgNTYuNmM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU2LjYtNTYuNiA0NS4zLTQ1LjMgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzMuOS0zMy45IDMzLjktMzMuOWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zMy45IDMzLjktNDUuMy00NS4zIDU2LjYtNTYuNmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC01Ni42IDU2LjYtNDUuMy00NS4zIDMzLjktMzMuOWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpNMTQyLjkgMjU2bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3ptNjcuOSA2Ny45bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3pNMjc4LjYgMjU2bDQ1LjMtNDUuMyA0NS4zIDQ1LjMtNDUuMyA0NS4zLTQ1LjMtNDUuM3ptMjIuNi02Ny45bC00NS4zIDQ1LjMtNDUuMy00NS4zIDQ1LjMtNDUuMyA0NS4zIDQ1LjN6Il19LGNxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZCIsaWNvbjpbMzIwLDUxMixbXSwiZjFhZSIsIk05NiA2NEE2NCA2NCAwIDEgMSAyMjQgNjQgNjQgNjQgMCAxIDEgOTYgNjR6bTQ4IDMyMGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDgwIDI4Ny44IDU5LjEgMzIxYy05LjQgMTUtMjkuMiAxOS40LTQ0LjEgMTBTLTQuNSAzMDEuOSA0LjkgMjg3bDM5LjktNjMuM0M2OS43IDE4NCAxMTMuMiAxNjAgMTYwIDE2MHM5MC4zIDI0IDExNS4yIDYzLjZMMzE1LjEgMjg3YzkuNCAxNSA0LjkgMzQuNy0xMCA0NC4xcy0zNC43IDQuOS00NC4xLTEwTDI0MCAyODcuOCAyNDAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMzIgMHoiXX0sZHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImljZS1jcmVhbSIsaWNvbjpbMzg0LDUxMixbMTI3ODQ4XSwiZjgxMCIsIk0zMzUuMSAxNjBjLjYtNS4zIC45LTEwLjYgLjktMTYgMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTNDggNjQuNSA0OCAxNDRjMCA1LjQgLjMgMTAuNyAuOSAxNmwtLjkgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGwyODggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtLjkgMHpNNjQgMzA0TDE2OS4yIDUyOS41YzQuMSA4LjggMTMgMTQuNSAyMi44IDE0LjVzMTguNi01LjcgMjIuOC0xNC41TDMyMCAzMDQgNjQgMzA0eiJdfSxTQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wdXRlci1tb3VzZSIsaWNvbjpbMzg0LDUxMixbMTI4NDMzLCJtb3VzZSJdLCJmOGNjIiwiTTAgMTkybDE2OCAwIDAtMTkyLTggMEM3MS42IDAgMCA3MS42IDAgMTYwbDAgMzJ6bTAgNDhMMCAzNTJjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBsNjQgMGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MGwwLTExMi0zODQgMHptMzg0LTQ4bDAtMzJDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMGwtOCAwIDAgMTkyIDE2OCAweiJdfSxwcWU9U0IsaHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldCIsaWNvbjpbNTEyLDUxMixbXSwiZTAwNSIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgNjQgMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDIyLjYgMjIuNiAzMiAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwIDAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzYuMSAwYy0yMC4yIDI5LTUzLjkgNDgtOTEuOSA0OHMtNzEuNy0xOS05MS45LTQ4TDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsMTguNyAwIDAtNjQtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA2NCA5NiA2NGw5NiAweiJdfSx1cWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXdhcmQiLGljb246WzQ0OCw1MTIsW10sImY1NTkiLCJNMjQ1LjktMjUuOWMtMTMuNC04LjItMzAuMy04LjItNDMuNyAwLTI0LjQgMTQuOS0zOS41IDE4LjktNjguMSAxOC4zLTE1LjctLjQtMzAuMyA4LjEtMzcuOSAyMS45LTEzLjcgMjUuMS0yNC44IDM2LjItNDkuOSA0OS45LTEzLjggNy41LTIyLjIgMjIuMi0yMS45IDM3LjkgLjcgMjguNi0zLjQgNDMuNy0xOC4zIDY4LjEtOC4yIDEzLjQtOC4yIDMwLjMgMCA0My43IDE0LjkgMjQuNCAxOC45IDM5LjUgMTguMyA2OC4xLS40IDE1LjcgOC4xIDMwLjMgMjEuOSAzNy45IDIyLjEgMTIuMSAzMy4zIDIyLjEgNDUuMSA0MS41TDQyLjcgNDU4LjVjLTUuOSAxMS45LTEuMSAyNi4zIDEwLjcgMzIuMmw4NiA0M2MxMS41IDUuNyAyNS41IDEuNCAzMS43LTkuOGw1Mi44LTk1LjEgNTIuOCA5NS4xYzYuMiAxMS4yIDIwLjIgMTUuNiAzMS43IDkuOGw4Ni00M2MxMS45LTUuOSAxNi43LTIwLjMgMTAuNy0zMi4ybC00OC42LTk3LjJjMTEuNy0xOS40IDIzLTI5LjQgNDUuMS00MS41IDEzLjgtNy41IDIyLjItMjIuMiAyMS45LTM3LjktLjctMjguNiAzLjQtNDMuNyAxOC4zLTY4LjEgOC4yLTEzLjQgOC4yLTMwLjMgMC00My43LTE0LjktMjQuNC0xOC45LTM5LjUtMTguMy02OC4xIC40LTE1LjctOC4xLTMwLjMtMjEuOS0zNy45LTI1LjEtMTMuNy0zNi4yLTI0LjgtNDkuOS00OS45LTcuNS0xMy44LTIyLjItMjIuMi0zNy45LTIxLjktMjguNiAuNy00My43LTMuNC02OC4xLTE4LjN6TTIyNCA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sZnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kcm93bmluZyIsaWNvbjpbNjQwLDUxMixbXSwiZTU0NSIsIk0yNjQgODhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMzMuOSA2NS42YzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMmwxMC45IDMyLjhjOS40IDI4LjMgMzMuMiA0OS41IDYyLjUgNTUuNiA1LjYgMS4yIDExLjMgMS44IDE3LjEgMS44bDg4IDBjMTcuMiAwIDM0LjMtMi44IDUwLjYtOC4ybDExNC40LTM4LjFjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVMNDIzLjcgMjI4LjVjLTguNCAyLjgtMTcgNS4xLTI1LjcgNi45bC0yNi41IDg4LjNjLTYuMSAzLjQtMTIuMSA3LjMtMTcuOSAxMS43LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI2LjItMTkuNy01Ni45LTMwLjItODcuOC0zMS4zbDIwLjItNjcuMmMtNTEuNS0xMC43LTkzLjUtNDguMS0xMTAuMi05OGwtMTAuOS0zMi44Yy01LjYtMTYuOCAzLjUtMzQuOSAyMC4yLTQwLjV6TTQwMy40IDQxMi4xQzM3OS4xIDQzMC4zIDM1MS4xIDQ0OCAzMjAgNDQ4cy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sbXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYS1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImUwZDgiLCJNMTM4LjcgOTZsMTAuNC0zMS4yQzE1NS42IDQ1LjIgMTczLjkgMzIgMTk0LjYgMzJsMTIyLjggMGMyMC43IDAgMzkgMTMuMiA0NS41IDMyLjhMMzczLjMgOTYgNDQ4IDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsNzQuNyAwek05NiAzMDUuOWMwIDMuOSAxLjQgNy43IDQgMTAuNmw0OCA1NGM2LjQgNy4yIDE3LjYgNy4yIDIzLjkgMGw0OC01NGMyLjYtMi45IDQtNi43IDQtMTAuNmwwLTEuOWMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjMC0zOS44IDMyLjItNzIgNzItNzIgNC40IDAgOC43IC40IDEyLjkgMS4ybDM0LjktMzkuM2MtMTQuNi02LjQtMzAuOC05LjktNDcuOC05LjktNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDEuOXptMTk2LTQ2LjVjLTIuNiAyLjktNCA2LjctNCAxMC42bDAgMS45YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzAgMzkuOC0zMi4yIDcyLTcyIDcyLTQuNCAwLTguNy0uNC0xMi45LTEuMmwtMzQuOSAzOS4zYzE0LjcgNi40IDMwLjggOS45IDQ3LjggOS45IDY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMS45YzAtMy45LTEuNC03LjctNC0xMC42bC00OC01NGMtNi40LTcuMi0xNy42LTcuMi0yMy45IDBsLTQ4IDU0eiJdfSxDQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4taGVhcnRzIixpY29uOls1MTIsNTEyLFsxMjg1MjUsImdyaW4taGVhcnRzIl0sImY1ODQiLCJNMjU2IDUxMmMxNDEuNCAwIDI1Ni0xMTQuNiAyNTYtMjU2IDAtMjMuMy0zLjEtNDUuOS04LjktNjcuMyA1LjUtMTMuNSA4LjktMjguNCA4LjktNDQuNyAwLTUzLTQzLTk2LTk2LTk2bC0yLjkgMGMtMi41IDAtNSAuMS03LjQgLjMtNDIuMS0zMC40LTkzLjgtNDguMy0xNDkuNy00OC4zUzE0OC40IDE3LjkgMTA2LjMgNDguM2MtMi41LS4yLTQuOS0uMy03LjQtLjNMOTYgNDhjLTUzIDAtOTYgNDMtOTYgOTYgMCAxNi4zIDMuNSAzMS4yIDguOSA0NC43LTUuOCAyMS40LTguOSA0NC04LjkgNjcuMyAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMzIyLjkgOTZjMTMuNSAwIDI2LjUgNS40IDM2IDE0LjlsOS4xIDkuMSA5LjEtOS4xYzkuNS05LjUgMjIuNS0xNC45IDM2LTE0LjlsMi45IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCA1My40LTY2LjkgOTUuNy04OSAxMDguMi00LjQgMi41LTkuNiAyLjUtMTQgMC0yMi4xLTEyLjUtODktNTQuOC04OS0xMDguMiAwLTI2LjUgMjEuNS00OCA0OC00OGwyLjkgMHptLTE4OCAxNC45bDkuMSA5LjEgOS4xLTkuMWM5LjUtOS41IDIyLjUtMTQuOSAzNi0xNC45bDIuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNTMuNC02Ni45IDk1LjctODkgMTA4LjItNC40IDIuNS05LjYgMi41LTE0IDAtMjIuMS0xMi41LTg5LTU0LjgtODktMTA4LjIgMC0yNi41IDIxLjUtNDggNDgtNDhsMi45IDBjMTMuNSAwIDI2LjUgNS40IDM2IDE0Ljl6Il19LGdxZT1DQixicWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1mcmFnbWVudCIsaWNvbjpbMzg0LDUxMixbXSwiZTY5NyIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI0MCAxMjggMGM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDEyOCAxMTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek0zMiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAweiJdfSx2cWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLW1pbGl0YXJ5LXJpZmxlIixpY29uOls0NDgsNTEyLFtdLCJlNTRiIiwiTTEyOCAzOWMwLTEzIDEwLTIzLjggMjIuOS0yNC45TDMwMi43IDEuNEMzMTIgLjcgMzIwIDggMzIwIDE3LjRMMzIwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNkwxNTMgNjRjLTEzLjggMC0yNS0xMS4yLTI1LTI1em0xNy42IDU3bDE1Ni44IDBjMSA1LjIgMS42IDEwLjUgMS42IDE2IDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtNS41IC42LTEwLjggMS42LTE2em0yMjggMzY0LjNMMzIwIDM2OS43IDMyMCA0ODBjMCAxLjMtLjEgMi41LS4yIDMuOEwxNDUuNSAyMzQuOWMxNi42LTcuMSAzNC42LTEwLjkgNTMuMy0xMC45bDUwLjQgMGMxNS45IDAgMzEuMyAyLjggNDUuOCA3LjlMMzg5LjkgNjcuN2MtNy43LTQuNC0xMC4zLTE0LjItNS45LTIxLjlzMTQuMi0xMC4zIDIxLjktNS45bDI3LjcgMTZjNy43IDQuNCAxMC4zIDE0LjIgNS45IDIxLjlsLTU1LjUgOTYuMSAxLjYgLjljMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN0wzNjAuNyAyODJjMiAyLjggMy45IDUuOCA1LjcgOC44bDc2LjEgMTI4LjhjMTEuMiAxOSA0LjkgNDMuNS0xNC4xIDU0LjhzLTQzLjUgNC45LTU0LjgtMTQuMXpNMjg4IDUxMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTEwLjMtNTMuNiA5MC42Yy0xMS4yIDE5LTM1LjggMjUuMy01NC44IDE0LjFTLTUuNyA0MzguNyA1LjYgNDE5LjdMODEuNyAyOTAuOGM5LjQtMTUuOCAyMS43LTI5LjMgMzYtNDBMMjk5LjEgNTEwYy0zLjUgMS4zLTcuMiAyLTExLjEgMnpNMjY0IDMyMGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LHlxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2dnbGUtb24iLGljb246WzU3Niw1MTIsW10sImYyMDUiLCJNMTkyIDY0Qzg2IDY0IDAgMTUwIDAgMjU2Uzg2IDQ0OCAxOTIgNDQ4bDE5MiAwYzEwNiAwIDE5Mi04NiAxOTItMTkyUzQ5MCA2NCAzODQgNjRMMTkyIDY0em0xOTIgOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LHhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsdW5ncy12aXJ1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTA2NyIsIk0yODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNTEuM2M5LjYtNC44IDIwLjUtNy41IDMyLTcuNXMyMi40IDIuNyAzMiA3LjVMMzIwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NTAuMSA0NTFjOCAxOC4zIDguMSAzOS4yIC4yIDU3LjUgMTAuMiAyLjMgMjAuNiAzLjUgMzEuMiAzLjUgNTIuMiAwIDk0LjUtNDIuMyA5NC41LTk0LjVsMC02LjJjMC0xMTEuMS0zNi43LTIxOS0xMDQuNC0zMDdMNDI4LjkgNDguN2MtOC4xLTEwLjYtMjAuNy0xNi43LTM0LTE2LjctMjMuNyAwLTQyLjkgMTkuMi00Mi45IDQyLjlsMCAxMzkuOWMxLjIgMi4yIDIuMiA0LjYgMy4xIDYuOSAyNi40LTExLjYgNTguMy02LjYgNzkuOSAxNXMyNi42IDUzLjYgMTUgNzkuOUM0NzcgMzI3LjIgNDk2IDM1My4zIDQ5NiAzODMuOHMtMTkgNTYuNy00NS45IDY3LjF6TTIyMC45IDIyMS44Yy45LTIuNCAyLTQuNyAzLjEtNi45bDAtMTM4LjVjMC0yNC41LTE5LjktNDQuNC00NC40LTQ0LjQtMTIuNSAwLTI0LjQgNS4zLTMyLjggMTQuNWwtMjYuNCAyOUM0Mi45IDE2MC44IDAgMjcxLjggMCAzODdsMCAzMC41YzAgNTIuMiA0Mi4zIDk0LjUgOTQuNSA5NC41IDEwLjUgMCAyMS0xLjIgMzEuMi0zLjUtNy45LTE4LjMtNy44LTM5LjMgLjItNTcuNS0yNi45LTEwLjQtNDUuOS0zNi42LTQ1LjktNjcuMXMxOS01Ni43IDQ1LjktNjcuMWMtMTEuNi0yNi40LTYuNi01OC4zIDE1LTc5LjlzNTMuNi0yNi42IDc5LjktMTV6TTE1MiA0MDhjMjguOCAwIDQzLjIgMzQuOCAyMi45IDU1LjItOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzIwLjQtMjAuNCA1NS4yLTUuOSA1NS4yIDIyLjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTI4LjggMzQuOC00My4yIDU1LjItMjIuOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTIwLjQtMjAuNC01LjktNTUuMiAyMi45LTU1LjIgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTI4LjggMC00My4yLTM0LjgtMjIuOS01NS4yIDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTIwLjQgMjAuNC01NS4yIDUuOS01NS4yLTIyLjkgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCAyOC44LTM0LjggNDMuMi01NS4yIDIyLjktOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMyMC40IDIwLjQgNS45IDU1LjItMjIuOSA1NS4yLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTEwNC04MGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LEltPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLXRlbm5pcy1wYWRkbGUtYmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTU1LCJwaW5nLXBvbmctcGFkZGxlLWJhbGwiLCJ0YWJsZS10ZW5uaXMiXSwiZjQ1ZCIsIk05NyAxMjdsNjcuNC02Ny40YzM4LjItMzguMiA5MC01OS42IDE0NC01OS42IDExMi41IDAgMjAzLjcgOTEuMiAyMDMuNyAyMDMuNiAwIDQ2LjQtMTUuOCA5MS4xLTQ0LjUgMTI3LTIzLjYtMTYuOC01Mi40LTI2LjctODMuNS0yNi43LTMxLjEgMC01OS45IDkuOS04My40IDI2LjZMOTcgMTI3ek0yNDAgNDQ4YzAgOS43IDEgMTkuMSAyLjggMjguMi0xOS44LTUuMi0zOC0xNS41LTUyLjctMzAuMi0xMi4yLTEyLjItMzEuOS0xMi4yLTQ0LjEgMEw5Ni42IDQ5NS40Yy0xMC42IDEwLjYtMjUgMTYuNi00MCAxNi42LTMxLjIgMC01Ni42LTI1LjMtNTYuNi01Ni42IDAtMTUgNi0yOS40IDE2LjYtNDBsNDkuNC00OS40YzEyLjItMTIuMiAxMi4yLTMxLjkgMC00NC4xLTIxLjctMjEuNy0zMy45LTUxLjItMzMuOS04MS45IDAtMjkuNCAxMS4xLTU3LjYgMzEuMS03OUwyNjYuNiAzNjQuNkMyNDkuOSAzODguMSAyNDAgNDE2LjkgMjQwIDQ0OHptMTQ0LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSx3cWU9SW0sTXFlPUltLHpxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3hlcy1wYWNraW5nIixpY29uOls1NzYsNTEyLFtdLCJlNGM3IiwiTTIwOCAwbDgwIDAgMCA1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNTYgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTA4LjggMGM4LjItMTQuMSAxMi44LTMwLjUgMTIuOC00OGwwLTE2MGMxMC0xMy40IDE2LTMwIDE2LTQ4bDAtMzJjMC00NC4yLTM1LjgtODAtODAtODBsLTE3NiAwIDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDh6TTMyIDMzNmwzMjAgMCAwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OEw4MCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTI4ek00OCAxOTJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LGtxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2hhbGtib2FyZCIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZCIsIk0xOTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTE3NiA1MTJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM2IDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNiAwIDAtNDggMTkyIDAgMCAxOTItMTkyIDAgMC0zMi02NCAwIDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzY4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjQtMTIyLjcgMGMtNDUuNiAwLTg4LjUgMjEuNi0xMTUuNiA1OC4yTDE0LjMgMjYwLjljLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxMTIgMjM2LjcgMTEyIDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSxTcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS10d28iLGljb246WzQ0OCw1MTIsWzk4NTddLCJmNTI4IiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0zNTIgMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxfQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1hcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjQ0LCJleGNoYW5nZSJdLCJmMGVjIiwiTTUwMi42IDE1MC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDAyLjcgMTYwIDMyIDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5NmwzNzAuNyAwLTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMTA5LjMgMzUyIDQ4MCAzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM3MC43IDAgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxDcWU9X0IsVEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9vdGJhbGwiLGljb246WzUxMiw1MTIsWzEyNzk0NCwiZm9vdGJhbGwtYmFsbCJdLCJmNDRlIiwiTTI2MS4xIDIyLjZjLTg5IDE4LTE1MC41IDYzLjQtMTkwIDEyMy45LTIzLjMgMzUuNi0zOC4xIDc1LjMtNDYuNyAxMTUuNUwyNTEuOSA0ODkuNGM4OS0xOCAxNTAuNS02My40IDE5MC4xLTEyMy45IDIzLjMtMzUuNiAzOC4xLTc1LjMgNDYuNy0xMTUuNUwyNjEuMSAyMi42em0yMzYgMTY4LjFjMy4yLTQyLjMgLjctODMuMy00LjgtMTE4LjctNC40LTI3LjgtMjYuOC00OC01My4xLTUxLjYtNDMtNS45LTgyLjItNy41LTExNy44LTUuNEw0OTcuMSAxOTAuNnpNMTkxLjcgNDk3LjFMMTUuOSAzMjEuNGMtMy4yIDQyLjMtLjcgODMuMyA0LjggMTE4LjcgNC40IDI3LjggMjYuOCA0OCA1My4xIDUxLjYgNDMgNS45IDgyLjIgNy41IDExNy44IDUuNHpNMjcxLjUgMTQzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptLTY0IDY0YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptLTY0IDY0YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDY0IDY0YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sX3FlPVRCLFRxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb25zdGVyIixpY29uOls1NzYsNTEyLFtdLCJmNjNiIiwiTTMzNiA5Nmw0OCA2NC0xMjggMCAwLTY0IDgwIDB6bTEyOCA2NEwzODcuMiA1Ny42QzM3NS4xIDQxLjUgMzU2LjEgMzIgMzM2IDMyTDIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5Ni0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDE4LjEgMTAuMSAzMy45IDI0LjkgNDIuMS0uNSA1LjcgMS4xIDExLjYgNC43IDE2LjQtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4zIDMxLjNsMTEuMyAxMS4zYzguNiA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS43LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4zLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMi40LTMuMiAzLjktNi44IDQuNS0xMC41bDExNC4yIDBjLjYgMy43IDIuMSA3LjMgNC41IDEwLjUtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4yIDMxLjNsMTEuMyAxMS4zYzguNSA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS44LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4yLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMy42LTQuOCA1LjItMTAuNyA0LjctMTYuNCAxNC44LTguMiAyNC45LTIzLjkgMjQuOS00Mi4xbDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTEyOCAzMzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNzIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sTHFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFzdGVyaXNrIixpY29uOls0NDgsNTEyLFsxMDAzMyw2MTU0NV0sIjJhIiwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTY4LjYgMTQ0LTgzLjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43czMuNiAzNC45LTExLjcgNDMuN0wyODggMjU2IDQzMiAzMzkuMWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43cy0yOC40IDIwLjYtNDMuNyAxMS43TDI1NiAzMTEuNCAyNTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTY4LjYtMTQ0IDgzLjFjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN1MuNyAzNDggMTYgMzM5LjFMMTYwIDI1NiAxNiAxNzIuOUMuNyAxNjQtNC41IDE0NC41IDQuMyAxMjkuMVMzMi43IDEwOC42IDQ4IDExNy40TDE5MiAyMDAuNiAxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LE5tPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZnVsbCIsaWNvbjpbNjQwLDUxMixbMTI4MjY3LCJiYXR0ZXJ5IiwiYmF0dGVyeS01Il0sImYyNDAiLCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMzA0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTMwNCAweiJdfSwkcWU9Tm0sQXFlPU5tLERxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1kcmVzcyIsaWNvbjpbMzIwLDUxMixbXSwiZTU5YyIsIk0yMjQgNjRBNjQgNjQgMCAxIDAgOTYgNjQgNjQgNjQgMCAxIDAgMjI0IDY0ek04OCA0MDBsMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMTYgMCAwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNy44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTMxLjEtOTMuNCAyOC43IDM3LjhjMTAuNyAxNC4xIDMwLjggMTYuOCA0NC44IDYuMnMxNi44LTMwLjcgNi4yLTQ0LjhMMjU0LjYgMjA3Yy0yMi40LTI5LjYtNTcuNS00Ny05NC42LTQ3cy03Mi4yIDE3LjQtOTQuNiA0N0w2LjUgMjg0LjdjLTEwLjcgMTQuMS03LjkgMzQuMiA2LjIgNDQuOHMzNC4yIDcuOSA0NC44LTYuMkw4Ni4yIDI4NS41IDU1IDM3OC45QzUxLjYgMzg5LjMgNTkuMyA0MDAgNzAuMiA0MDBMODggNDAweiJdfSxMQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3MtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTM3LCJraXNzLWJlYW0iXSwiZjU5NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjQwIDI4OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sRXFlPUxCLCRCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWNhbi1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUtYWx0Il0sImY4MmEiLCJNMTY3LjEtMTZsMTEzLjkgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOUwzMjAgMzIgNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDguNy0yNi4xQzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNnpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0sUHFlPSRCLElxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb250IixpY29uOls1MTIsNTEyLFtdLCJmMDMxIiwiTTI4NS4xIDUwLjdDMjc5LjkgMzkuMyAyNjguNSAzMiAyNTYgMzJzLTIzLjkgNy4zLTI5LjEgMTguN0w1OS41IDQxNiA0OCA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNi4xIDAgMjItNDggMjA4LjMgMCAyMiA0OC02LjEgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMS41IDAtMTY3LjQtMzY1LjN6TTMzMC44IDMwNEwxODEuMiAzMDQgMjU2IDE0MC44IDMzMC44IDMwNHoiXX0sTnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmUtaG9sZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRjMyIsIk0yNTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMzIuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtMjMuNy0xMi45LTQ0LjQtMzItNTUuNEwyODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTAgMzg0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzJjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTQ4IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTQ0YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzE0NCAzODEuOSAxNDQgMzIwbDAtMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDM4NHoiXX0sRnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLWNvdmlkIixpY29uOls1MTIsNTEyLFtdLCJlNGE4IiwiTTE5MiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgMzMuNmMzMC43IDQuMiA1OC44IDE2LjMgODIuMyAzNC4xTDM4Ni4xIDkyIDM3NC44IDgwLjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1Ni42IDU2LjZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMTEuMy0xMS4zLTIzLjggMjMuOGMxNy45IDIzLjUgMjkuOSA1MS43IDM0LjEgODIuM2wzMy42IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNi0zMy42IDBjLTQuMiAzMC43LTE2LjMgNTguOC0zNC4xIDgyLjNsMjMuOCAyMy44IDExLjMtMTEuM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU2LjYgNTYuNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwxMS4zLTExLjMtMjMuOC0yMy44Yy0yMy41IDE3LjktNTEuNyAyOS45LTgyLjMgMzQuMWwwIDMzLjYgMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwIDAtMzMuNmMtMzAuNy00LjItNTguOC0xNi4zLTgyLjMtMzQuMWwtMjMuOCAyMy44IDExLjMgMTEuM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDQ2LjcgNDA4LjdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwxMS4zIDExLjMgMjMuOC0yMy44Qzk3LjkgMzM4LjggODUuOCAzMTAuNyA4MS42IDI4MGwtMzMuNiAwIDAgMTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRTMCAzMDkuMyAwIDI5NmwwLTgwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNiAzMy42IDBjNC4yLTMwLjcgMTYuMy01OC44IDM0LjEtODIuM0w5MiAxMjUuOSA4MC42IDEzNy4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU2LjYtNTYuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMTI1LjkgOTIgMTQ5LjcgMTE1LjdjMjMuNS0xNy45IDUxLjctMjkuOSA4Mi4zLTM0LjFsMC0zMy42LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0zMiAyMDBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptOTYgOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxPcWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wZGYiLGljb246WzU3Niw1MTIsW10sImYxYzEiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw4MCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE3NiAwIDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTI0MCAzODBjLTExIDAtMjAgOS0yMCAyMGwwIDEyOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTI4IDEyIDBjMzMuMSAwIDYwLTI2LjkgNjAtNjBzLTI2LjktNjAtNjAtNjBsLTMyIDB6bTMyIDgwbC0xMiAwIDAtNDAgMTIgMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjB6bTk2LTgwYy0xMSAwLTIwIDktMjAgMjBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwbDMyIDBjMjguNyAwIDUyLTIzLjMgNTItNTJsMC02NGMwLTI4LjctMjMuMy01Mi01Mi01MmwtMzIgMHptMjAgMTI4bDAtODggMTIgMGM2LjYgMCAxMiA1LjQgMTIgMTJsMCA2NGMwIDYuNi01LjQgMTItMTIgMTJsLTEyIDB6bTg4LTEwOGwwIDEyOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQ0IDI4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC0yOCAwIDAtMjQgMjggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQ4IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sUnFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxhbmd1YWdlIixpY29uOls1NzYsNTEyLFtdLCJmMWFiIiwiTTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTkuNiAwLTguNCAyMy4xYy0xNi40IDQ1LjItNDEuMSA4Ni41LTcyLjIgMTIyIDE0LjIgOC44IDI5IDE2LjYgNDQuNCAyMy41bDUwLjQgMjIuNCA2Mi4yLTE0MGM1LjEtMTEuNiAxNi42LTE5IDI5LjItMTlzMjQuMSA3LjQgMjkuMiAxOWwxMjggMjg4YzcuMiAxNi4yLS4xIDM1LjEtMTYuMiA0Mi4ycy0zNS4xLS4xLTQyLjItMTYuMmwtMjAtNDUtMTU3LjUgMC0yMCA0NWMtNy4yIDE2LjItMjYuMSAyMy40LTQyLjIgMTYuMnMtMjMuNC0yNi4xLTE2LjItNDIuMmwzOS44LTg5LjUtNTAuNC0yMi40Yy0yMy0xMC4yLTQ1LTIyLjQtNjUuOC0zNi40LTIxLjMgMTcuMi00NC42IDMyLjItNjkuNSA0NC43TDc4LjMgMzgwLjZjLTE1LjggNy45LTM1IDEuNS00Mi45LTE0LjNzLTEuNS0zNSAxNC4zLTQyLjlsMzQuNS0xNy4zYzE2LjMtOC4yIDMxLjgtMTcuNyA0Ni40LTI4LjMtMTMuOC0xMi43LTI2LjgtMjYuNC0zOC45LTQwLjlMODEuNiAyMjQuN2MtMTEuMy0xMy42LTkuNS0zMy44IDQuMS00NS4xczMzLjgtOS41IDQ1LjEgNC4xbDEwLjIgMTIuMmMxMS41IDEzLjkgMjQuMSAyNi44IDM3LjQgMzguNyAyNy41LTMwLjQgNDkuMi02Ni4xIDYzLjUtMTA1LjRsLjUtMS4yLTIxMC4zIDBDMTQuMyAxMjggMCAxMTMuNyAwIDk2UzE0LjMgNjQgMzIgNjRsOTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek00MTYgMjcwLjhMMzY1LjcgMzg0IDQ2Ni4zIDM4NCA0MTYgMjcwLjh6Il19LEFCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1oYWx2ZWQiLGljb246WzUxMiw1MTIsWyJzaGllbGQtYWx0Il0sImYzZWQiLCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjggODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjItLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yLTE2LjcgOC0zNi4xIDgtNTIuOCAwLTE3Mi40LTgyLjUtMjEzLjEtMjY0LTIxMy42LTM2My4yLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjkgMSAyNTEuNCAwIDI1NiAwem0wIDY2LjhsMCAzNzguMWMxMzgtNjYuOCAxNzUuMS0yMTQuOCAxNzYtMzAzLjRsLTE3Ni03NC42IDAgMHoiXX0sQnFlPUFCLEhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC11cCIsaWNvbjpbMzIwLDUxMixbXSwiZjBkOCIsIk0xNDAuMyAxMzUuMmMxMi42LTEwLjMgMzEuMS05LjUgNDIuOCAyLjJsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMDEuNCAzMjAgMjg4LjUgMzIwbC0yNTYgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuNyAyNzQuNSA5LjkgMjY1LjRsMTI4LTEyOCAyLjQtMi4yeiJdfSxEQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXBlbiIsaWNvbjpbNjQwLDUxMixbMTI4MjIxLCJmaWxlLWVkaXQiXSwiZjMxYyIsIk0xMjguMSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDYuMiAwIDEwLjktNTQuNWM0LjMtMjEuNyAxNS00MS42IDMwLjYtNTcuMmwxMzIuMi0xMzIuMiAwLTk3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzIyLjggMTguN0MzMTAuOCA2LjcgMjk0LjUgMCAyNzcuNiAwTDEyOC4xIDB6TTM4OS42IDE3NmwtOTMuNSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTkzLjUgMTE3LjUgMTE3LjV6TTMzMi4zIDQ2Ni45bC0xMS45IDU5LjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNiAxIDAgMS45LS4xIDIuOS0uM2w1OS42LTExLjljMTIuNC0yLjUgMjMuOC04LjYgMzIuNy0xNy41bDExOC45LTExOC45LTgwLTgwLTExOC45IDExOC45Yy04LjkgOC45LTE1IDIwLjMtMTcuNSAzMi43em0yNjcuOC0xMjNjMjIuMS0yMi4xIDIyLjEtNTcuOSAwLTgwcy01Ny45LTIyLjEtODAgMGwtMjguOCAyOC44IDgwIDgwIDI4LjgtMjguOHoiXX0scXFlPURCLEVCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1iaWtpbmciLGljb246WzU3Niw1MTIsWzEyODY5MiwiYmlraW5nIl0sImY4NGEiLCJNMzY4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjcuMiA2NGwtNjEuOC00OC44Yy0xNy4zLTEzLjYtNDEuNy0xMy44LTU5LjEtLjNsLTgzLjEgNjQuMmMtMzAuNyAyMy44LTI4LjUgNzAuOCA0LjMgOTEuNkwyNTYgMzA1LjEgMjU2IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTAuNy01LjMtMjAuNy0xNC4yLTI2LjZMMjYzIDIzMi45IDMyMy4zIDE4NC40IDM2NCAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2w2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi44IDB6TTExMiA1MTJhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0zNTIgMGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LFZxZT1FQixQQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLW9wZW4tcmVhZGVyIixpY29uOls1MTIsNTEyLFsiYm9vay1yZWFkZXIiXSwiZjVkYSIsIk0yNTYgMTUyYTg4IDg4IDAgMSAwIDAtMTc2IDg4IDg4IDAgMSAwIDAgMTc2em0wIDI5OC43bDAtMTQ5LjNjMTYuMy02LjggMzIuOS0xMy43IDQ5LjctMjAuNyAzOS0xNi4yIDgwLjgtMjQuNiAxMjMuMS0yNC42bDE5LjIgMCAwIDE2MC0xOS4yIDBjLTU5LjEgMC0xMTcuNyAxMS43LTE3Mi4zIDM0LjVsLS41IC4yek0yNTYgMjMybC0yNS4xLTEwLjVDMTg0LjEgMjAyIDEzMy45IDE5MiA4My4yIDE5Mkw0OCAxOTJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDM1LjIgMGM1MC43IDAgMTAwLjkgMTAgMTQ3LjcgMjkuNWwxMi44IDUuM2M3LjkgMy4zIDE2LjcgMy4zIDI0LjYgMGwxMi44LTUuM2M0Ni44LTE5LjUgOTctMjkuNSAxNDcuNy0yOS41bDM1LjIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5MmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzUuMiAwYy01MC43IDAtMTAwLjkgMTAtMTQ3LjcgMjkuNUwyNTYgMjMyeiJdfSxqcWU9UEIsVXFlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzLXdhdGVyLWRyb3BsZXQiLGljb246WzM4NCw1MTIsW10sImU0ZjUiLCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zbDE2Ni42IDBjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBMMzIgMHpNODMgMjk3LjVMNjYuNCA2NCAzMTcuNiA2NCAzMDEgMjk3LjUgMjg4IDMwNGMtMjAuMSAxMC4xLTQzLjkgMTAuMS02NCAwcy00My45LTEwLjEtNjQgMC00My45IDEwLjEtNjQgMGwtMTMtNi41ek0yNTYgMTk2YzAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHM2NC0yNi45IDY0LTYweiJdfSxJQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3dlci1icm9hZGNhc3QiLGljb246WzU3Niw1MTIsWyJicm9hZGNhc3QtdG93ZXIiXSwiZjUxOSIsIk04Ny45IDExLjVjLTExLjMtNi45LTI2LjEtMy4yLTMzIDguMS0yNC44IDQxLTM5IDg5LjEtMzkgMTQwLjRzMTQuMiA5OS40IDM5IDE0MC40YzYuOSAxMS4zIDIxLjYgMTUgMzMgOC4xczE1LTIxLjYgOC4xLTMzQzc1LjcgMjQxLjkgNjQgMjAyLjMgNjQgMTYwUzc1LjcgNzguMSA5Ni4xIDQ0LjRjNi45LTExLjMgMy4yLTI2LjEtOC4xLTMzem00MDAuMSAwYy0xMS4zIDYuOS0xNSAyMS42LTguMSAzMyAyMC40IDMzLjcgMzIuMSA3My4zIDMyLjEgMTE1LjZzLTExLjcgODEuOS0zMi4xIDExNS42Yy02LjkgMTEuMy0zLjIgMjYuMSA4LjEgMzNzMjYuMSAzLjIgMzMtOC4xYzI0LjgtNDEgMzktODkuMSAzOS0xNDAuNFM1NDUuOCA2MC42IDUyMSAxOS42Yy02LjktMTEuMy0yMS42LTE1LTMzLTguMXpNMzIwIDIxNS40YzE5LjEtMTEuMSAzMi0zMS43IDMyLTU1LjQgMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRjMCAyMy43IDEyLjkgNDQuNCAzMiA1NS40TDI1NiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI2NC42ek0xODAuMiA5MWM3LjItMTEuMiAzLjktMjYtNy4yLTMzLjJzLTI2LTMuOS0zMy4yIDcuMmMtMTcuNiAyNy40LTI3LjggNjAtMjcuOCA5NXMxMC4yIDY3LjYgMjcuOCA5NWM3LjIgMTEuMiAyMiAxNC40IDMzLjIgNy4yczE0LjQtMjIgNy4yLTMzLjJjLTEyLjgtMTkuOS0yMC4yLTQzLjYtMjAuMi02OXM3LjQtNDkuMSAyMC4yLTY5ek00MzYuMiA2NWMtNy4yLTExLjItMjItMTQuNC0zMy4yLTcuMnMtMTQuNCAyMi03LjIgMzMuMmMxMi44IDE5LjkgMjAuMiA0My42IDIwLjIgNjlzLTcuNCA0OS4xLTIwLjIgNjljLTcuMiAxMS4yLTMuOSAyNiA3LjIgMzMuMnMyNiAzLjkgMzMuMi03LjJjMTcuNi0yNy40IDI3LjgtNjAgMjcuOC05NXMtMTAuMi02Ny42LTI3LjgtOTV6Il19LFdxZT1JQixOQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFycm93cy1hbHQiXSwiZjc4YyIsIk00NTYgMjI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yUzMyMi4xIDMyLjIgMzI5IDM5bDQwIDQwIDczLjQtNzMuNEM0NDYgMiA0NTAuOSAwIDQ1NiAwczEwIDIgMTMuNyA1LjdsMzYuNyAzNi43QzUxMCA0NiA1MTIgNTAuOSA1MTIgNTZzLTIgMTAtNS43IDEzLjdMNDMzIDE0MyA0NzMgMTgzYzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDY1LjcgMjI0IDQ1NiAyMjR6bTAgNjRjOS43IDAgMTguNSA1LjggMjIuMiAxNC44czEuNyAxOS4zLTUuMiAyNi4ybC00MCA0MCA3My40IDczLjRjMy42IDMuNiA1LjcgOC41IDUuNyAxMy43cy0yIDEwLTUuNyAxMy43bC0zNi43IDM2LjdDNDY2IDUxMCA0NjEuMSA1MTIgNDU2IDUxMnMtMTAtMi0xMy43LTUuN0wzNjkgNDMzIDMyOSA0NzNjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJTMjg4IDQ2NS43IDI4OCA0NTZsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTQ0IDB6bS0yNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC00MC00MC03My40IDczLjRDNjYgNTEwIDYxLjEgNTEyIDU2IDUxMnMtMTAtMi0xMy43LTUuN0w1LjcgNDY5LjdDMiA0NjYgMCA0NjEuMSAwIDQ1NnMyLTEwIDUuNy0xMy43TDc5IDM2OSAzOSAzMjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNDYuMyAyODggNTYgMjg4bDE0NCAwek01NiAyMjRjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOFMzMi4yIDE4OS45IDM5IDE4M0w3OSAxNDMgNS43IDY5LjdDMiA2NiAwIDYxLjEgMCA1NlMyIDQ2IDUuNyA0Mi4zTDQyLjMgNS43QzQ2IDIgNTAuOSAwIDU2IDBTNjYgMiA2OS43IDUuN0wxNDMgNzkgMTgzIDM5YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTMjI0IDQ2LjMgMjI0IDU2bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0TDU2IDIyNHoiXX0sR3FlPU5CLFlxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC10by1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNGIzIiwiTTI4OCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODAgNDggMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00MTZ6bTY0IDY0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTM1MiAzMDRsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTc2LTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTUxMiAzMzZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTUzIDE2N2w3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDB6Il19LFpxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXB0b3AtbWVkaWNhbCIsaWNvbjpbNjQwLDUxMixbXSwiZjgxMiIsIk02NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MC02NCAwIDAtMjQwLTM4NCAwIDAgMjQwLTY0IDAgMC0yNDB6TTAgNDAzLjJDMCAzOTIuNiA4LjYgMzg0IDE5LjIgMzg0bDYwMS42IDBjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMiAwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEw3Ni44IDQ4MEMzNC40IDQ4MCAwIDQ0NS42IDAgNDAzLjJ6TTI4OCAxNjBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LFhxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmVhZC1zbGljZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdlYyIsIk02NCA0MzJsMC0xNzZjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjE2LjUgNTEyLTIxNi41IDUxMiAwIDAgMzUuMy0yOC43IDY0LTY0IDY0bDAgMTc2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yODggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6Il19LEtxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbG9iZSIsaWNvbjpbNTEyLDUxMixbMTI3NzYwXSwiZjBhYyIsIk0zNTEuOSAyODBsLTE5MC45IDBjMi45IDY0LjUgMTcuMiAxMjMuOSAzNy41IDE2Ny40IDExLjQgMjQuNSAyMy43IDQxLjggMzUuMSA1Mi40IDExLjIgMTAuNSAxOC45IDEyLjIgMjIuOSAxMi4yczExLjctMS43IDIyLjktMTIuMmMxMS40LTEwLjYgMjMuNy0yOCAzNS4xLTUyLjQgMjAuMy00My41IDM0LjYtMTAyLjkgMzcuNS0xNjcuNHpNMTYwLjkgMjMybDE5MC45IDBDMzQ5IDE2Ny41IDMzNC43IDEwOC4xIDMxNC40IDY0LjYgMzAzIDQwLjIgMjkwLjcgMjIuOCAyNzkuMyAxMi4yIDI2OC4xIDEuNyAyNjAuNCAwIDI1Ni40IDBzLTExLjcgMS43LTIyLjkgMTIuMmMtMTEuNCAxMC42LTIzLjcgMjgtMzUuMSA1Mi40LTIwLjMgNDMuNS0zNC42IDEwMi45LTM3LjUgMTY3LjR6bS00OCAwQzExNi40IDE0Ni40IDEzOC41IDY2LjkgMTcwLjggMTQuNyA3OC43IDQ3LjMgMTAuOSAxMzEuMiAxLjUgMjMybDExMS40IDB6TTEuNSAyODBjOS40IDEwMC44IDc3LjIgMTg0LjcgMTY5LjMgMjE3LjMtMzIuMy01Mi4yLTU0LjQtMTMxLjctNTcuOS0yMTcuM0wxLjUgMjgwem0zOTguNCAwYy0zLjUgODUuNi0yNS42IDE2NS4xLTU3LjkgMjE3LjMgOTIuMS0zMi43IDE1OS45LTExNi41IDE2OS4zLTIxNy4zbC0xMTEuNCAwem0xMTEuNC00OEM1MDEuOSAxMzEuMiA0MzQuMSA0Ny4zIDM0MiAxNC43IDM3NC4zIDY2LjkgMzk2LjQgMTQ2LjQgMzk5LjkgMjMybDExMS40IDB6Il19LFFxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItbWludXMiLGljb246WzUxMiw1MTIsW10sImY2NWQiLCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NHpNMTg0IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LEpxZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrLWZhY2UiLGljb246WzY0MCw1MTIsW10sImUxZDciLCJNMzIwIDY0Yy0yNy4yIDAtNTMuOCA4LTc2LjQgMjMuMWwtMzcuMSAyNC44Yy0xNS44IDEwLjUtMzQuMyAxNi4xLTUzLjMgMTYuMUw2NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNzguN2MwIDYyLjYgNDUuMiAxMTYgMTA3IDEyNi4zbDk3LjkgMTYuM2MzMyAyMiA3Mi42IDM0LjcgMTE1LjEgMzQuN3M4Mi4yLTEyLjggMTE1LjEtMzQuN0w1MzMgMzk2LjljNjEuNy0xMC4zIDEwNy02My43IDEwNy0xMjYuM2wwLTc4LjdjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTg5LjIgMGMtMTkgMC0zNy41LTUuNi01My4zLTE2LjFMMzk2LjQgODcuMUMzNzMuOCA3MiAzNDcuMiA2NCAzMjAgNjR6TTEzNS45IDMzNi45bC0xOC40LTMuMUM4Ni42IDMyOC43IDY0IDMwMiA2NCAyNzAuN2wwLTc4LjcgNDggMCAwIDQ4YzAgMzUgOC42IDY3LjkgMjMuOSA5Ni45em0zODYuNi0zLjFsLTE4LjQgMy4xQzUxOS40IDMwNy45IDUyOCAyNzUgNTI4IDI0MGwwLTQ4IDQ4IDAgMCA3OC43YzAgMzEuMy0yMi42IDU4LTUzLjUgNjMuMXpNMTkyIDIzMmMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjA4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em01NiA1NmwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGVWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib25nIixpY29uOls1MTIsNTEyLFtdLCJmNTVjIiwiTTQ0OC41IDM4NGMwIDQxLjUtMTMuMSA3OS45LTM1LjUgMTExLjMtNy45IDExLjEtMjEuMiAxNi43LTM0LjggMTYuN2wtMjQzLjMgMGMtMTMuNyAwLTI2LjktNS42LTM0LjgtMTYuNy0yMi40LTMxLjQtMzUuNS02OS44LTM1LjUtMTExLjMgMC03MS4xIDM4LjYtMTMzLjEgOTYtMTY2LjNsMC0xNTMuN2MtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1My43YzE0LjIgOC4yIDI3LjIgMTguMiAzOC44IDI5LjZsMzkuMy0zOS4zLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzE2IDE2IDMyIDMyIDQ4IDQ4IDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTctNy00My4zIDQzLjNjMTcuMyAyOC45IDI3LjMgNjIuNiAyNy4zIDk4Ljh6TTI4OC41IDY0bC02NCAwIDAgMTkwLjYtMzIgMTguNWMtMTkuNSAxMS4zLTM1LjcgMjcuNS00Ni45IDQ2LjlsMjIxLjggMGMtMTEuMi0xOS40LTI3LjQtMzUuNi00Ni45LTQ2LjlsLTMyLTE4LjUgMC0xOTAuNnoiXX0sdFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtYnJpZGdlIixpY29uOls1NzYsNTEyLFtdLCJlNTYzIiwiTTMyIDMybDIwOCAwIDAgNjQtMjQgMCAwIDY0IDI0IDAgMCAxMjkuM2MtNDUuNCA3LjYtODAgNDcuMS04MCA5NC43bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTRjMC0zOC44LTI2LjQtNzIuNi02NC04MmwwLTExMiA0MCAwIDAtNjQtOCAwQzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMnpNODggOTZsMCA2NCA4MCAwIDAtNjQtODAgMHpNMzM2IDMybDcyIDAgMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzIgNzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNzIgMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzItNzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTk2IDE2MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LEZCPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLTktMSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy11cC1hbHQiXSwiZjg4NyIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTM2NS4xIDIwNi42Yy05LjYgMTQuOC01LjQgMzQuNiA5LjQgNDQuM3MzNC42IDUuNCA0NC4zLTkuNGw0Mi4xLTY0LjljMTIuNC0xOS4yIDE5LjEtNDEuNiAxOS4xLTY0LjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzNi4xIDIzLjkgNjYuNyA1Ni44IDc2LjZsLTExLjcgMTh6TTM3NiAxMTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDIuNyAxODJjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yIDAgNTEuNi0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC05NmMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnoiXX0sYVZlPUZCLGlWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VudGFpbi1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNTJlIiwiTTI1Ni4zIDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTc3LjggMGM0LTE1LjQgMi40LTMyLjYtNi43LTQ4LjJMMzU0LjYgMjU2IDM2OC4zIDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTYuMSAwLTExLjQgMy40LTE0LjEgOC41bC00Mi42LTczYy02LTEwLjItMTQuMS0xOC0yMy4zLTIzLjNsMC01Ni4yem02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNjAgOTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptLTI3Mi02NC43bC02NS4xIDExMS42IDMzLjEgMzMuMSA0OC00OCA0MC40IDAtNTYuNC05Ni43em0tMjcuNi00Ny45YzEyLjMtMjEuMiA0Mi45LTIxLjIgNTUuMyAwTDQyMC4zIDQ2My45YzEyLjQgMjEuMy0yLjkgNDguMS0yNy42IDQ4LjFMNTYgNTEyYy0yNC43IDAtNDAuMS0yNi44LTI3LjYtNDguMUwxOTYuNyAxNzUuNHoiXX0sRm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi05LTEiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtZGVzYyIsInNvcnQtbnVtZXJpYy1kb3duLWFsdCJdLCJmODg2IiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptMTM0LjUtMTg0bDExLjctMThjLTMyLjktOS45LTU2LjgtNDAuNS01Ni44LTc2LjYgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDIyLjktNi42IDQ1LjMtMTkuMSA2NC41bC00Mi4xIDY0LjljLTkuNiAxNC44LTI5LjQgMTkuMS00NC4zIDkuNHMtMTkuMS0yOS40LTkuNC00NC4zek00MjQgMTEyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS01LjMgMTgyYzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40eiJdfSxyVmU9Rm0sc1ZlPUZtLE9CPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aWRlIixpY29uOls1MTIsNTEyLFsxMjg1MTUsImdyaW4tYWx0Il0sImY1ODEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0yMDggMTkyYzAgMzUuMy0xNC4zIDY0LTMyIDY0cy0zMi0yOC43LTMyLTY0IDE0LjMtNjQgMzItNjQgMzIgMjguNyAzMiA2NHptMTI4IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0sblZlPU9CLG9WZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb29wIixpY29uOls1MTIsNTEyLFtdLCJmNjE5IiwiTTI1NC40IDYuNmMzLjUtNC4zIDktNi41IDE0LjUtNS43IDQ2LjkgNi4zIDgzLjEgNDYuNSA4My4xIDk1LjEgMCAxMS4yLTEuOSAyMi01LjUgMzJsNS41IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAxOS4xLTguNCAzNi4zLTIxLjcgNDhsMTMuNyAwYzM5LjggMCA3MiAzMi4yIDcyIDcyIDAgMjMuMi0xMSA0My44LTI4IDU3IDM0LjEgNS43IDYwIDM1LjMgNjAgNzEgMCAzOS44LTMyLjIgNzItNzIgNzJMNzIgNTEyYy0zOS44IDAtNzItMzIuMi03Mi03MiAwLTM1LjcgMjUuOS02NS4zIDYwLTcxLTE3LTEzLjItMjgtMzMuOC0yOC01NyAwLTM5LjggMzIuMi03MiA3Mi03MmwxMy43IDBjLTEzLjMtMTEuNy0yMS43LTI4LjktMjEuNy00OCAwLTM1LjMgMjguNy02NCA2NC02NGwxNi4yIDBjNDQuMS0uMSA3OS44LTM1LjkgNzkuOC04MCAwLTkuMi0xLjUtMTcuOS00LjMtMjYuMS0xLjgtNS4yLS44LTExLjEgMi44LTE1LjR6Il19LGxWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaGFybWFjaGFrcmEiLGljb246WzUxMiw1MTIsWzk3ODRdLCJmNjU1IiwiTTMzNy44IDIwNS43bDQ4LjYtNDIuNWMxMy44IDE5LjMgMjMuNCA0MS45IDI3LjQgNjYuMmwtNjQuNCA0LjNjLTIuNC0xMC4xLTYuNC0xOS41LTExLjYtMjh6bTE0MC4xIDE5LjVjLTUuMy0zOC44LTIwLjYtNzQuNS00My4yLTEwNC4zbC44LS43QzQ0OSAxMDguNCA0NDkuNyA4Ny42IDQzNyA3NXMtMzMuNC0xMi00NS4yIDEuNWwtLjcgLjhjLTI5LjgtMjIuNi02NS41LTM3LjktMTA0LjMtNDMuMmwuMS0xLjFjMS4yLTE3LjktMTMtMzMtMzAuOS0zM3MtMzIuMSAxNS4yLTMwLjkgMzNsLjEgMS4xYy0zOC44IDUuMy03NC41IDIwLjYtMTA0LjMgNDMuMmwtLjctLjhDMTA4LjQgNjMgODcuNiA2Mi4zIDc1IDc1cy0xMiAzMy40IDEuNSA0NS4ybC44IC43Yy0yMi42IDI5LjgtMzcuOSA2NS41LTQzLjIgMTA0LjNsLTEuMS0uMWMtMTcuOS0xLjItMzMgMTMtMzMgMzAuOXMxNS4yIDMyLjEgMzMgMzAuOWwxLjEtLjFjNS4zIDM4LjggMjAuNiA3NC41IDQzLjIgMTA0LjNsLS44IC43QzYzIDQwMy42IDYyLjMgNDI0LjQgNzUgNDM3czMzLjQgMTIgNDUuMi0xLjVsLjctLjhjMjkuOCAyMi42IDY1LjUgMzcuOSAxMDQuMyA0My4ybC0uMSAxLjFjLTEuMiAxNy45IDEzIDMzIDMwLjkgMzNzMzIuMS0xNS4yIDMwLjktMzNsLS4xLTEuMWMzOC44LTUuMyA3NC41LTIwLjYgMTA0LjMtNDMuMmwuNyAuOGMxMS44IDEzLjUgMzIuNSAxNC4yIDQ1LjIgMS41czEyLTMzLjQtMS41LTQ1LjJsLS44LS43YzIyLjYtMjkuOCAzNy45LTY1LjUgNDMuMi0xMDQuM2wxLjEgLjFjMTcuOSAxLjIgMzMtMTMgMzMtMzAuOXMtMTUuMi0zMi4xLTMzLTMwLjlsLTEuMSAuMXpNMTYzLjIgMTI1LjZjMTkuMy0xMy44IDQxLjktMjMuNCA2Ni4yLTI3LjVsNC4zIDY0LjRjLTEwIDIuNC0xOS41IDYuNC0yOCAxMS42bC00Mi41LTQ4LjZ6bS02NSAxMDMuOGM0LjEtMjQuNCAxMy43LTQ2LjkgMjcuNS02Ni4ybDQ4LjYgNDIuNWMtNS4zIDguNS05LjIgMTgtMTEuNiAyOGwtNjQuNC00LjN6bTI3LjUgMTE5LjRjLTEzLjgtMTkuMy0yMy40LTQxLjktMjcuNS02Ni4ybDY0LjQtNC4zYzIuNCAxMC4xIDYuNCAxOS41IDExLjYgMjhsLTQ4LjYgNDIuNXptMTAzLjggNjVjLTI0LjQtNC4xLTQ2LjktMTMuNy02Ni4yLTI3LjRsNDIuNS00OC42YzguNSA1LjMgMTggOS4yIDI4IDExLjZsLTQuMyA2NC40em0xMTkuNC0yNy40Yy0xOS4zIDEzLjgtNDEuOSAyMy40LTY2LjIgMjcuNGwtNC4zLTY0LjRjMTAtMi40IDE5LjUtNi40IDI4LTExLjZsNDIuNSA0OC42em02NS0xMDMuOGMtNC4xIDI0LjQtMTMuNyA0Ni45LTI3LjQgNjYuMmwtNDguNi00Mi41YzUuMy04LjYgOS4yLTE4IDExLjYtMjhsNjQuNCA0LjN6bS02NS0xNTYuOWwtNDIuNSA0OC42Yy04LjYtNS4zLTE4LTkuMi0yOC0xMS42bDQuMy02NC40YzI0LjQgNC4xIDQ2LjkgMTMuNyA2Ni4yIDI3LjV6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxSQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LXF1YXJ0ZXIiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTIiXSwiZjI0MyIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC02NCAweiJdfSxjVmU9UkIsZFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFua2giLGljb246WzMyMCw1MTIsWzk3NjVdLCJmNjQ0IiwiTTk2IDEyOGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0YzAgNDEuNi0yMC43IDc2LjYtNDYuNiAxMDQuMS01LjkgNi4yLTExLjggMTEuOC0xNy40IDE2LjctNS42LTQuOS0xMS41LTEwLjUtMTcuNC0xNi43LTI1LjktMjcuNS00Ni42LTYyLjYtNDYuNi0xMDQuMXpNMTYwIDBDODkuMyAwIDMyIDU3LjMgMzIgMTI4IDMyIDE4MC40IDUzLjUgMjIzLjUgNzguOCAyNTZMMzIgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00Ni44IDBDMjY2LjUgMjIzLjUgMjg4IDE4MC40IDI4OCAxMjggMjg4IDU3LjMgMjMwLjcgMCAxNjAgMHoiXX0scFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYW1vbmQiLGljb246WzUxMiw1MTIsWzk4MzBdLCJmMjE5IiwiTTE3IDIxNUwyMTUgMTdDMjI1LjkgNi4xIDI0MC42IDAgMjU2IDBzMzAuMSA2LjEgNDEgMTdMNDk1IDIxNWMxMC45IDEwLjkgMTcgMjUuNiAxNyA0MXMtNi4xIDMwLjEtMTcgNDFMMjk3IDQ5NWMtMTAuOSAxMC45LTI1LjYgMTctNDEgMTdzLTMwLjEtNi4xLTQxLTE3TDE3IDI5N0M2LjEgMjg2LjEgMCAyNzEuNCAwIDI1NnM2LjEtMzAuMSAxNy00MXoiXX0saFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1YnNjcmlwdCIsaWNvbjpbNTc2LDUxMixbXSwiZjEyYyIsIk05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmwxNS4zIDAgODkuNiAxMjgtODkuNiAxMjgtMTUuMyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTAuNCAwIDIwLjItNS4xIDI2LjItMTMuNkwyNDAgMzExLjggMzI1LjggNDM0LjRjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNS4zIDAtODkuNi0xMjggODkuNi0xMjggMTUuMyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xMC40IDAtMjAuMiA1LjEtMjYuMiAxMy42TDI0MCAyMDAuMiAxNTQuMiA3Ny42QzE0OC4yIDY5LjEgMTM4LjQgNjQgMTI4IDY0TDk2IDY0ek01NDQgMzIwYzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40bC0zMiAxNmMtMTUuOCA3LjktMjIuMiAyNy4xLTE0LjMgNDIuOSA1LjYgMTEuMiAxNi45IDE3LjcgMjguNiAxNy43bDAgODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTEyOHoiXX0sQkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVwZWUtc2lnbiIsaWNvbjpbNDQ4LDUxMixbODM2MCwicnVwZWUiXSwiZjE1NiIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDgwIDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA1NC4zLTMwIDEwMS41LTc0LjQgMTI2LjFsNDEgMTM2LjdjNS4xIDE2LjktNC41IDM0LjgtMjEuNSAzOS44cy0zNC44LTQuNS0zOS44LTIxLjVMMTIwLjEgMzE5LjhjLTIuNyAuMS01LjQgLjItOC4xIC4ybC00OCAwIDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NHpNNjQgMjU2bDQ4IDBjNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBsLTQ4IDAgMCAxNjB6bTI4NS4xLTMybDM0LjkgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzQuOSAwYy03LjIgMC0xMy4xIDUuOS0xMy4xIDEzLjEgMCA1LjcgMy43IDEwLjcgOS4xIDEyLjVsNDkuNCAxNS45YzMxLjkgMTAuMyA1My41IDM5LjkgNTMuNSA3My40IDAgNDIuNi0zNC41IDc3LjEtNzcuMSA3Ny4xTDMyMCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNTAuOSAwYzcuMiAwIDEzLjEtNS45IDEzLjEtMTMuMSAwLTUuNy0zLjctMTAuNy05LjEtMTIuNWwtNDkuNC0xNS45Yy0zMS45LTEwLjMtNTMuNS0zOS45LTUzLjUtNzMuNCAwLTQyLjYgMzQuNS03Ny4xIDc3LjEtNzcuMXoiXX0sdVZlPUJCLGZWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcmlmbGUiLGljb246WzUxMiw1MTIsW10sImU1NGUiLCJNNDE2IDBMMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN0w0MzIgMTZjMC04LjgtNy4yLTE2LTE2LTE2ek0yMjQgMjA4QzExOCAyMDggMzIgMjk0IDMyIDQwMGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OGMwLTMyLjUgMTIuMS02Mi4xIDMyLTg0LjdsMCAxOTYuNyAxNjAgMCAwLTI5My4xYy0yMC03LjEtNDEuNi0xMC45LTY0LTEwLjl6TTI4MCA4OGE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6Il19LG1WZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkIixpY29uOlszODQsNTEyLFsxMDBdLCI0NCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRTMjgzLjcgNDgwIDE2MCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0ek02NCA5NmwwIDMyMCA5NiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwUzI0OC40IDk2IDE2MCA5Nkw2NCA5NnoiXX0sZ1ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1uZmkiLGljb246WzQ0OCw1MTIsW10sImU1NzYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTMgMTcyLjNsMzUgNjMgMC01MS40YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNDRjMCAxMC45LTcuNCAyMC41LTE4IDIzLjJzLTIxLjctMi0yNy0xMS42bC0zNS02MyAwIDUxLjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMC45IDcuNC0yMC41IDE4LTIzLjJzMjEuNyAyIDI3IDExLjZ6TTIwOCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwIDMyIDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NHptMTkyIDBsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sYlZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoIixpY29uOls1MTIsNTEyLFtdLCJmNjJlIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNDQgMjA4bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em0xMjggMGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNODAgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptMzIwIDMybDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyek00OCAzMzZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZ6bTE0NCA0OGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAyNi41IDIxLjUgNDggNDggNDh6bTEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMTEyLTE2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnoiXX0sSEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1kb2xsYXIiLGljb246WzUxMiw1MTIsWyJzZWFyY2gtZG9sbGFyIl0sImY2ODgiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0yMTIgOTZjLTExIDAtMjAgOS0yMCAyMGwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwxNjggMjU2Yy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIweiJdfSx2VmU9SEIseVZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bXBzdGVyLWZpcmUiLGljb246WzY0MCw1MTIsW10sImY3OTQiLCJNMTY0LjMgNjRMMTM4LjcgMTkyIDU2IDE5MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00LjFjMC0yLjYgLjQtNS4xIDEuMi03LjZMNTguNSA4MC40QzYxLjggNzAuNiA3MSA2NCA4MS4zIDY0bDgzIDB6bTIzLjQgMTI4bDI1LjYtMTI4IDgyLjcgMCAwIDEyOC0xMDguMyAwek0zNDQgNjRsODIuNyAwIDE2IDgwYy0xNC43IC4yLTI5LjMgNS41LTQwLjkgMTUuOS0xMS41IDEwLjMtMjIuNSAyMS0zMi44IDMyLjFsLTI0LjkgMCAwLTEyOHpNOTYgMjQwbDIzMy4yIDBjLTYuNCA4LjgtMTIuMyAxNy42LTE3LjcgMjYuMy0yMS40IDM0LjctMzkuNSA3Ni4xLTM5LjUgMTE1LjggMCAxNy4xIDIuMSAzMy44IDYgNDkuOWwtMTIwLjQgMCAxLjkgMTAuM2MzLjIgMTcuNC04LjQgMzQtMjUuOCAzNy4ycy0zNC04LjQtMzcuMi0yNS44QzcxIDMxMy4zIDU4IDI0Mi4xIDU3LjcgMjQwTDk2IDI0MHptNTEyLTcyYzAgMTEtNy40IDIwLjMtMTcuNSAyMy4xLS45LS44LTEuNy0xLjYtMi42LTIuNC0yMS44LTIwLTU0LjMtMjEuOC03OC01LjUtNC4yLTQuMy04LjUtOC41LTEyLjktMTIuNmwtMjEuMy0xMDYuNiA4MyAwYzEwLjMgMCAxOS41IDYuNiAyMi44IDE2LjRsMjUuMyA3NS45Yy44IDIuNCAxLjIgNSAxLjIgNy42bDAgNC4xek01MDUuNyAyNDAuM0w1MTggMjI2LjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMSAyNi4yIDg4LjEgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjIgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXMxMy40IDMuMiAxOC44IDcuNWMxNC40IDExLjQgMzguOSA0MC43IDM4LjkgNDAuN3pNNTQ0IDQzMi4yYzAtMzYuNS0zNy03My01NC44LTg4LjQtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjggNTEuOS01NC44IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0seFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwbG9hZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA5MyIsIk0yNTYgMTA5LjNMMjU2IDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIxMC43LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMjU2IDEwOS4zek0yMjQgNDAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDgwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzJjMC0zNS4zIDI4LjctNjQgNjQtNjRsODAgMGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHptMTQ0IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sT209e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zbGFzaCIsaWNvbjpbNTc2LDUxMixbNjI3MTQsInVzZXItYWx0LXNsYXNoIiwidXNlci1sYXJnZS1zbGFzaCJdLCJmNTA2IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzExLjUgMjQ1LjdjNTUtMTAuOSA5Ni41LTU5LjUgOTYuNS0xMTcuNyAwLTY2LjMtNTMuNy0xMjAtMTIwLTEyMC01OC4yIDAtMTA2LjggNDEuNS0xMTcuNyA5Ni41TDQxLTI0Ljl6TTIzNS42IDMwNS40QzE0Ny45IDMxNi42IDgwIDM5MS41IDgwIDQ4Mi4zIDgwIDQ5OC43IDkzLjMgNTEyIDEwOS43IDUxMmwzMzIuNSAwLTIwNi42LTIwNi42eiJdfSx3VmU9T20sTVZlPU9tLHpWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NTkyXSwiZjA2MCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyODggNDgwIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzcwLjcgMCAxMDUuNC0xMDUuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHoiXX0sa1ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWwtdmlydXMiLGljb246WzU3Niw1MTIsW10sImU1OTciLCJNNjQgMzJDNjQgMTQuMyA3OC4zIDAgOTYgMEwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1MS43Yy0xOC41IDAtMzcgNy01MS4xIDIxLjEtMjEuNiAyMS42LTI2LjYgNTMuNi0xNSA3OS45LTI2LjkgMTAuNC00NS45IDM2LjYtNDUuOSA2Ny4xczE5IDU2LjcgNDUuOSA2Ny4xYy03LjMgMTYuNS04IDM1LjItMi4zIDUyLjItMTMuNCA1LjctMjguMiA4LjgtNDMuNiA4LjgtNjEuOSAwLTExMi01MC4xLTExMi0xMTJMOTYgNjRDNzguMyA2NCA2NCA0OS43IDY0IDMyem05NiAzMmwwIDEyOCA5NiAwIDAtMTI4LTk2IDB6TTI4MCA0MDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjguOCAwIDQzLjItMzQuOCAyMi45LTU1LjItOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzIwLjQgMjAuNCA1NS4yIDUuOSA1NS4yLTIyLjkgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDI4LjggMzQuOCA0My4yIDU1LjIgMjIuOSA5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTIwLjQgMjAuNC01LjkgNTUuMiAyMi45IDU1LjIgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI4LjggMC00My4yIDM0LjgtMjIuOSA1NS4yIDkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTIwLjQtMjAuNC01NS4yLTUuOS01NS4yIDIyLjkgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC0yOC44LTM0LjgtNDMuMi01NS4yLTIyLjktOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMyMC40LTIwLjQgNS45LTU1LjItMjIuOS01NS4yem0xMDQtMzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OCA0MGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxTVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2stZG91YmxlIixpY29uOlszODQsNTEyLFtdLCJmNTYwIiwiTTI0OS45IDY2LjhjMTAuNC0xNC4zIDcuMi0zNC4zLTcuMS00NC43cy0zNC4zLTcuMi00NC43IDcuMWwtMTA2IDE0NS43LTM3LjUtMzcuNWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjNi42IDYuNiAxNS44IDEwIDI1LjEgOS4zczE3LjktNS41IDIzLjQtMTMuMWwxMjgtMTc2em0xMjggMTM2YzEwLjQtMTQuMyA3LjItMzQuMy03LjEtNDQuN3MtMzQuMy03LjItNDQuNyA3LjFsLTE3MCAyMzMuNy02OS41LTY5LjVjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzYuNiA2LjYgMTUuOCAxMCAyNS4xIDkuM3MxNy45LTUuNSAyMy40LTEzLjFsMTkyLTI2NHoiXX0sQ1ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhdyIsaWNvbjpbNTEyLDUxMixbXSwiZjFiMCIsIk0yMzQuNSA5Mi45YzE0LjMgNDIuOS0uMyA4Ni4yLTMyLjYgOTYuOHMtNzAuMS0xNS42LTg0LjQtNTguNSAuMy04Ni4yIDMyLjYtOTYuOCA3MC4xIDE1LjYgODQuNCA1OC41ek0xMDAuNCAxOTguNmMxOC45IDMyLjQgMTQuMyA3MC4xLTEwLjIgODQuMXMtNTkuNy0uOS03OC41LTMzLjMtMTQuMy03MC4xIDEwLjItODQuMSA1OS43IC45IDc4LjUgMzMuM3pNNjkuMiA0MDEuMkMxMjEuNiAyNTkuOSAyMTQuNyAyMjQgMjU2IDIyNHMxMzQuNCAzNS45IDE4Ni44IDE3Ny4yYzMuNiA5LjcgNS4yIDIwLjEgNS4yIDMwLjVsMCAxLjZjMCAyNS44LTIwLjkgNDYuNy00Ni43IDQ2LjctMTEuNSAwLTIyLjktMS40LTM0LTQuMmwtODgtMjJjLTE1LjMtMy44LTMxLjMtMy44LTQ2LjYgMGwtODggMjJjLTExLjEgMi44LTIyLjUgNC4yLTM0IDQuMi0yNS44IDAtNDYuNy0yMC45LTQ2LjctNDYuN2wwLTEuNmMwLTEwLjQgMS42LTIwLjggNS4yLTMwLjV6TTQyMS44IDI4Mi43Yy0yNC41LTE0LTI5LjEtNTEuNy0xMC4yLTg0LjFzNTQtNDcuMyA3OC41LTMzLjMgMjkuMSA1MS43IDEwLjIgODQuMS01NCA0Ny4zLTc4LjUgMzMuM3pNMzEwLjEgMTg5LjdjLTMyLjMtMTAuNi00Ni45LTUzLjktMzIuNi05Ni44czUyLjEtNjkuMSA4NC40LTU4LjUgNDYuOSA1My45IDMyLjYgOTYuOC01Mi4xIDY5LjEtODQuNCA1OC41eiJdfSxSbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWxtZXQtc2FmZXR5IixpY29uOls1NzYsNTEyLFsiaGFyZC1oYXQiLCJoYXQtaGFyZCJdLCJmODA3IiwiTTM1MiAyNjRsMC0yMDBjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjAwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTg1LjlDOTAgMTA5LjggMzIgMTkxLjggMzIgMjg4bDAgNjQgNTEyIDAgMC02NGMtMS05NS4yLTU4LjQtMTc3LjctMTQ0LTIwOS44TDQwMCAyNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6TTQwIDQwMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGw0OTYgMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MEw0MCA0MDB6Il19LF9WZT1SbSxUVmU9Um0sTFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImUiLGljb246WzMyMCw1MTIsWzEwMV0sIjQ1IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTIyNCAwIDAtMTI4IDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTEyOCAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0scUI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTA3LjcgMzMyLjFDMTAyIDMxOCAxMTMuNCAzMDQgMTI4LjYgMzA0bDI1NC45IDBjMTUuMiAwIDI2LjYgMTQgMjAuOSAyOC4xLTIzLjggNTguNi04MS4yIDk5LjktMTQ4LjMgOTkuOXMtMTI0LjYtNDEuMy0xNDguMy05OS45em0xNS0xODguOGM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMTkyIDM4Ni4yIDIxOS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSwkVmU9cUIsVkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bi1sZWZ0LWFuZC11cC1yaWdodC10by1jZW50ZXIiLGljb246WzUxMiw1MTIsWyJjb21wcmVzcy1hbHQiXSwiZjQyMiIsIk00MzkuNSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDMyIDMyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04NyA4NyAzOSAzOWM2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4yUzQ1MC4yIDI0MCA0NDAuNSAyNDBsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsMzkgMzkgODctODd6TTcyLjUgMjcybDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTQ0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMzItMzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3LTM5LTM5Yy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzYyLjggMjcyIDcyLjUgMjcyeiJdfSxBVmU9VkIsRFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnRzIixpY29uOls1NzYsNTEyLFtdLCJmNzljIiwiTTIwMi0zMC42YzEyLjUgNC40IDE5IDE4LjEgMTQuNiAzMC42bC04LjIgMjMuMSAyNS40LTE4LjVjMTAuNy03LjggMjUuNy01LjQgMzMuNSA1LjNzNS40IDI1LjctNS4zIDMzLjVMMjMzLjggNjQgMjcyIDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMi4xYy01NC43IDEwLjQtOTYgNTguNC05NiAxMTZsMCAxLjljMCA4LjkgMSAxNy41IDIuOCAyNS45LTExLjkgMTcuOC0xOC44IDM5LjEtMTguOCA2Mi4xbDAgMTI4YzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMzguMiAwLTI4LjMtMjAuNkM0Ny4yIDM1LjYgNDQuOCAyMC42IDUyLjYgOS45Uzc1LjQtMy4yIDg2LjEgNC42bDI3LjQgMjAtOC4zLTI1QzEwMS0xMyAxMDcuOC0yNi42IDEyMC40LTMwLjhzMjYuMiAyLjYgMzAuNCAxNS4ybDkuOSAyOS44IDEwLjctMzAuMmM0LjQtMTIuNSAxOC4xLTE5IDMwLjYtMTQuNnpNNDg5LjkgMjA4Yy03LjUgMC0xNC41IDMuOC0xOC42IDEwLjFMNDQ2LjkgMjU2IDQ4OCAyNTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xLjljMC0xMi4yLTkuOS0yMi4xLTIyLjEtMjIuMXpNMzg1LjEgMjU2bC0yNC40LTM3LjljLTQuMS02LjMtMTEuMS0xMC4xLTE4LjYtMTAuMS0xMi4yIDAtMjIuMSA5LjktMjIuMSAyMi4xbDAgMS45YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQxLjEgMHpNMjgxLjkgMjY4LjVjLTYuMy0xMC43LTkuOS0yMy4yLTkuOS0zNi41bDAtMS45YzAtMzguNyAzMS40LTcwLjEgNzAuMS03MC4xIDIzLjggMCA0NiAxMi4xIDU4LjkgMzIuMWwxNSAyMy4yIDE1LTIzLjJjMTIuOS0yMCAzNS4xLTMyLjEgNTguOS0zMi4xIDM4LjcgMCA3MC4xIDMxLjQgNzAuMSA3MC4xbDAgMS45YzAgMTMuMy0zLjYgMjUuOC05LjkgMzYuNSAxNS43IDExLjcgMjUuOSAzMC40IDI1LjkgNTEuNWwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNzIgMCAwLTIwOC00OCAwIDAgMjA4LTcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTI4YzAtMjEuMSAxMC4yLTM5LjggMjUuOS01MS41eiJdfSxFVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVkIixpY29uOls1NzYsNTEyLFsxMjg3MTZdLCJmMjM2IiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0IDIyNCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NC00NDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptODAgMTYwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sUFZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJhbnNmZXIiLGljb246WzY0MCw1MTIsW10sImU1MjgiLCJNMzEgMTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxMDMtMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDY3LjcgMCAwIDAgMzM4LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE3OC4yLTUuMS01LjFjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMC0yNy4yIDI3LjItMjguMSA3MC42LTIuOCA5OC45bDY3LjcgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS00MDYuMSAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3OC4yIDUuMSA1LjFjMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDI3LjItMjcuMiAyOC4xLTcwLjYgMi44LTk4LjlsLTY3LjcgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDMxIDEwNXpNNDE2IDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bTg4LTY0LjVjNC40IC41IDgtMy4xIDgtNy41bDAtNDhjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04LjEgMy42LTcuNSA4IDMuNiAyOSAyNi42IDUxLjkgNTUuNSA1NS41em0tMzY4IDEyOWMtNC40LS41LTggMy4xLTggNy41bDAgNDhjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC4xLTMuNiA3LjUtOC0zLjYtMjktMjYuNi01MS45LTU1LjUtNTUuNXoiXX0sakI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXJ1bm5pbmciLGljb246WzQ0OCw1MTIsWzEyNzkzOSwicnVubmluZyJdLCJmNzBjIiwiTTI1Ni41LTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xMjMuNiAxNzZjLTMuMyAwLTYuMiAyLTcuNCA1TDk0LjIgMjM1LjljLTYuNiAxNi40LTI1LjIgMjQuNC00MS42IDE3LjhzLTI0LjQtMjUuMi0xNy44LTQxLjZsMjEuOS01NC45QzY3LjcgMTI5LjkgOTQuMSAxMTIgMTIzLjYgMTEybDk3LjMgMGMyOC41IDAgNTQuOCAxNS4xIDY5LjEgMzkuN2wzMi44IDU2LjMgNjEuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02MS42IDBjLTIyLjggMC00My44LTEyLjEtNTUuMy0zMS44bC0xMC0xNy4xLTIwLjcgNzAuNCA3NS40IDIyLjZjMjcuNyA4LjMgNDEuOCAzOSAzMC4xIDY1LjVMMjg1LjcgNTA5Yy03LjIgMTYuMi0yNi4xIDIzLjQtNDIuMiAxNi4ycy0yMy40LTI2LjEtMTYuMi00Mi4ybDQ5LjItMTEwLjgtOTUuOS0yOC44Yy0zMi43LTkuOC01Mi00My43LTQzLjctNzYuOGwyMi43LTkwLjYtMzUuOSAwem0tOCAxODFjMTMuMyAxNC45IDMwLjcgMjYuMyA1MS4yIDMyLjRsNC43IDEuNC02LjkgMTkuM2MtNS44IDE2LjMtMTYgMzAuOC0yOS4zIDQxLjhMNTIuOSA1MTkuOGMtMTMuNiAxMS4yLTMzLjggOS4zLTQ1LTQuM3MtOS4zLTMzLjggNC4zLTQ1bDgyLjQtNjcuOWM0LjUtMy43IDcuOC04LjUgOS44LTEzLjlMMTE1LjYgMzU3eiJdfSxJVmU9akIsVUI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tZG93biIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLWRvd24iXSwiZjEzYSIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTEzNSAyNDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4NyA4NyA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMjczIDM0NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTM1IDI0MXoiXX0sTlZlPVVCLEZWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW51cnNlIixpY29uOls0NDgsNTEyLFtdLCJmODJmIiwiTTk2IDQ0LjljMC0xMi43IDcuNS0yNC4yIDE5LjItMjkuM2w5Ni00MmM4LjItMy42IDE3LjUtMy42IDI1LjcgMGw5NiA0MkMzNDQuNSAyMC43IDM1MiAzMi4yIDM1MiA0NC45bDAgOTkuMWMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOFM5NiAyMTQuNyA5NiAxNDRsMC05OS4xek0zMDQgMTI4bC0xMTEuNiAwLS40IDAtNDggMCAwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBsMC0xNnpNMjA4IDE2bDAgMTYtMTYgMGMtNC40IDAtOCAzLjYtOCA4bDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDAgMCAxNmMwIDQuNCAzLjYgOCA4IDhsMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNiAxNiAwYzQuNCAwIDgtMy42IDgtOGwwLTE2YzAtNC40LTMuNi04LTgtOGwtMTYgMCAwLTE2YzAtNC40LTMuNi04LTgtOEwyMTYgOGMtNC40IDAtOCAzLjYtOCA4ek0xNDIuNiAzMjNjLTYuNS00LjktMTUuMi02LjItMjIuNi0yLjgtNjEuNCAyOC4yLTEwNC4xIDkwLjItMTA0LjEgMTYyLjEgMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTcyLTQyLjctMTM0LTEwNC4xLTE2Mi4xLTcuNC0zLjQtMTYuMS0yLjEtMjIuNiAyLjhsLTY3IDUwLjJjLTguNSA2LjQtMjAuMyA2LjQtMjguOCAwbC02Ny01MC4yeiJdfSxXQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWtpc3Mtd2luay1oZWFydCIsaWNvbjpbNjQwLDUxMixbMTI4NTM2LCJraXNzLXdpbmstaGVhcnQiXSwiZjU5OCIsIk01NDMuNyAyNjguM2MuMi00LjEgLjMtOC4yIC4zLTEyLjMgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMzMiAxMTQuNiAzMiAyNTYgMTQ2LjYgNTEyIDI4OCA1MTJjNDEuNCAwIDgwLjUtOS44IDExNS4xLTI3LjMtNy42LTE3LjEtMTYuMS0zOC44LTIxLjgtNjEuNy03LjctMzAuNS0xNC4xLTc2LjIgOC4yLTExNC43bDIuNy00LjZjMjkuNS01MSA5NC43LTY4LjUgMTQ1LjctMzkgMiAxLjIgNCAyLjQgNS45IDMuN3pNMjQwIDMwNGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2ek0yMDggMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTUyIDIwYy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek01NDIuOCAzNTBjLTIuMi0xOC4zLTEyLjktMzQuNi0yOC45LTQzLjgtMjguMS0xNi4yLTYzLjktNi42LTgwLjEgMjEuNWwtMi43IDQuNmMtMjQuNSA0Mi41IDcuOSAxMTcuOSAyNC40IDE1MC44IDUuMSAxMC4xIDE1LjUgMTYuMSAyNi44IDE1LjUgMzYuNy0yLjIgMTE4LjItMTEuNyAxNDIuOC01NC4ybDIuNy00LjZjMTYuMi0yOC4xIDYuNi02My45LTIxLjUtODAuMS0xNi05LjItMzUuNC0xMC40LTUyLjQtMy4xbC05LjggNC4yLTEuMy0xMC42eiJdfSxPVmU9V0IsUlZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGwiLGljb246WzUxMiw1MTIsW10sImY1NzUiLCJNMjk2IDY0YzYuOSAwIDEzLjUgMi43IDE4LjMgNy42TDQ0MC40IDE5Ny43YzQuOSA0LjkgNy42IDExLjUgNy42IDE4LjNzLTIuNyAxMy41LTcuNiAxOC4zTDM4Ni43IDI4OCA2NS4zIDI4OGMxLjMtMy45IDMuNC03LjQgNi4zLTEwLjNsOTYuNC05Ni40IDMzLjQgMzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIxMy4zIDEzNiAyNzcuNyA3MS42YzQuOS00LjkgMTEuNS03LjYgMTguMy03LjZ6TTEyMi43IDEzNkwyNi4zIDIzMi40QzkuNSAyNDkuMyAwIDI3Mi4xIDAgMjk2czkuNSA0Ni43IDI2LjMgNjMuNkwxNTIuNCA0ODUuN0MxNjkuMyA1MDIuNSAxOTIuMSA1MTIgMjE2IDUxMnM0Ni43LTkuNSA2My42LTI2LjNMNDg1LjcgMjc5LjZDNTAyLjUgMjYyLjcgNTEyIDIzOS45IDUxMiAyMTZzLTkuNS00Ni43LTI2LjMtNjMuNkwzNTkuNiAyNi4zQzM0Mi43IDkuNSAzMTkuOSAwIDI5NiAwcy00Ni43IDkuNS02My42IDI2LjNMMTY4IDkwLjcgMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTIyLjcgMTM2eiJdfSxHQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLTEtd2F2ZSIsaWNvbjpbNTEyLDUxMixbIm1vbmV5LWJpbGwtd2F2ZS1hbHQiXSwiZjUzYiIsIk0wIDEwOS41TDAgNDE5LjZjMCAxOS40IDExLjggMzcuMyAzMC4zIDQzLjMgOTQgMzAgMTU4LjggOC40IDIyMy4zLTEzLjEgNjIuNC0yMC44IDEyNC40LTQxLjUgMjEyLjEtMTUuMyAyMi4yIDYuNiA0Ni4yLTguOCA0Ni4yLTMybDAtMzEwLjFjMC0xOS40LTExLjgtMzcuMy0zMC4zLTQzLjMtOTQtMzAtMTU4LjgtOC40LTIyMy4zIDEzLjEtNjIuNCAyMC44LTEyNC40IDQxLjUtMjEyLjEgMTUuMy0yMi4yLTYuNi00Ni4zIDguOC00Ni4zIDMyek0yNTYgMzY4Yy01MyAwLTk2LTUwLjEtOTYtMTEyczQzLTExMiA5Ni0xMTIgOTYgNTAuMSA5NiAxMTItNDMgMTEyLTk2IDExMnpNMTI3LjEgNDA1LjVjLjcgNC40LTIuOCA4LjEtNy4yIDguMS0xNS43IDAtMzIuMS0xLjgtNTAtNi4xLTMuNS0uOC02LTQtNi03LjdMNjQgMzYwYzAtNC40IDMuNi04LjEgOC03LjUgMjguMSAzLjUgNTAuNiAyNS4yIDU1LjIgNTN6TTQ0OCAzNTQuNmMwIDUtNC42IDguOC05LjUgOC0xNS40LTIuNS0zMC4yLTMuOS00NC40LTQuMy00LjktLjEtOC43LTQuNS03LjItOS4yIDcuMy0yMy43IDI4LTQxLjQgNTMuMi00NC42IDQuNC0uNSA4IDMuMSA4IDcuNWwwIDQyLjZ6bS04LTE5NS4xYy0yOC4xLTMuNS01MC42LTI1LjItNTUuMi01My0uNy00LjQgMi44LTguMSA3LjItOC4xIDE1LjcgMCAzMi4xIDEuOCA1MCA2LjEgMy41IC44IDYgNCA2IDcuN2wwIDM5LjljMCA0LjQtMy42IDguMS04IDcuNXptLTMyMi4xLTUuOGM0LjkgLjEgOC43IDQuNSA3LjIgOS4yLTcuMyAyMy43LTI4IDQxLjQtNTMuMiA0NC42LTQuNCAuNS04LTMuMS04LTcuNWwwLTQyLjZjMC01IDQuNi04LjggOS41LTggMTUuNCAyLjUgMzAuMiAzLjkgNDQuNCA0LjN6TTI0MCAxODhjLTExIDAtMjAgOS0yMCAyMCAwIDkuNyA2LjkgMTcuNyAxNiAxOS42bDAgNDguNC00IDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDQ4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00IDAgMC02OGMwLTExLTktMjAtMjAtMjBsLTE2IDB6Il19LEJWZT1HQixIVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZG1hcmsiLGljb246WzUxMiw1MTIsWzEyNzk2M10sImY2NmYiLCJNMjM4LjcgNS4xYzEwLjUtNi44IDI0LjEtNi44IDM0LjYgMGwyMjQgMTQ0YzExLjkgNy43IDE3LjQgMjIuMyAxMy40IDM1LjlzLTE2LjUgMjMtMzAuNyAyM2wtMzIgMCAwIDIwOCA1MS4yIDM4LjRjOC4xIDYgMTIuOCAxNS41IDEyLjggMjUuNiAwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtMTAuMSA0LjctMTkuNiAxMi44LTI1LjZsNTEuMi0zOC40IDAgMCAwLTIwOC0zMiAwYy0xNC4yIDAtMjYuNy05LjQtMzAuNy0yM3MxLjUtMjguMyAxMy40LTM1LjlsMjI0LTE0NHpNMzM2IDIwOGwwIDIwOCA2NCAwIDAtMjA4LTY0IDB6TTIyNCA0MTZsNjQgMCAwLTIwOC02NCAwIDAgMjA4ek0xMTIgMjA4bDAgMjA4IDY0IDAgMC0yMDgtNjQgMHoiXX0scVZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11c2ljIixpY29uOls1MTIsNTEyLFsxMjc5MjVdLCJmMDAxIiwiTTQ2OCA3YzcuNiA2LjEgMTIgMTUuMyAxMiAyNWwwIDMwNGMwIDQ0LjItNDMgODAtOTYgODBzLTk2LTM1LjgtOTYtODAgNDMtODAgOTYtODBjMTEuMiAwIDIyIDEuNiAzMiA0LjZsMC0xMTYuNy0yMjQgNDkuOCAwIDIwNi4zYzAgNDQuMi00MyA4MC05NiA4MHMtOTYtMzUuOC05Ni04MCA0My04MCA5Ni04MGMxMS4yIDAgMjIgMS42IDMyIDQuNkwxMjggOTZjMC0xNSAxMC40LTI4IDI1LjEtMzEuMmwyODgtNjRjOS41LTIuMSAxOS40IC4yIDI3IDYuM3oiXX0sVlZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stbWVkaWNhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjdlNiIsIk05NiA1MTJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC02Ni43YzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM2wwLTI4OGMwLTI2LjUtMjEuNS00OC00OC00OEw5NiAwQzQzIDAgMCA0MyAwIDk2TDAgNDE2YzAgNTMgNDMgOTYgOTYgOTZ6TTY0IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNTYgMCAwIDY0LTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTkyIDEyMGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sWUI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2h1ZmZsZSIsaWNvbjpbNTEyLDUxMixbMTI4MjU2LCJyYW5kb20iXSwiZjA3NCIsIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAyMDQuOSAzODQgMTkybDAtMzItMzIgMGMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOGwtMzIuNCA0My4yLTQwLTUzLjMgMjEuMi0yOC4zQzI5My4zIDExMC4yIDMyMS44IDk2IDM1MiA5NmwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnpNMTU0IDI5Nmw0MCA1My4zLTIxLjIgMjguM0MxNTQuNyA0MDEuOCAxMjYuMiA0MTYgOTYgNDE2bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjMTAuMSAwIDE5LjYtNC43IDI1LjYtMTIuOEwxNTQgMjk2ek00MzguNiA0NzAuNmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDQ2MC45IDM4NCA0NDhsMC0zMi0zMiAwYy0zMC4yIDAtNTguNy0xNC4yLTc2LjgtMzguNEwxMjEuNiAxNzIuOGMtNi04LjEtMTUuNS0xMi44LTI1LjYtMTIuOGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwYzMwLjIgMCA1OC43IDE0LjIgNzYuOCAzOC40TDMyNi40IDMzOS4yYzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjR6Il19LGpWZT1ZQixVVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5kZXJsaW5lIixpY29uOlszODQsNTEyLFtdLCJmMGNkIiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJTMTEzLjcgNjQgOTYgNjRsMCAxNjBjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMjcwLjMgMCAyODggMGw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTYwYzAgODguNC03MS42IDE2MC0xNjAgMTYwUzMyIDMxMi40IDMyIDIyNEwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyek0wIDQ4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxXVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctdXNlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRkYSIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyMS4zYy00Ni45IDE5LTgwIDY1LTgwIDExOC43IDAgMjcuNyA4LjggNTMuNCAyMy44IDc0LjQtNTEuNSAyMS04Ny44IDcxLjYtODcuOCAxMzAuNyAwIDEgMCAxLjkgMCAyLjlsLTE3NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw2NCA2NHpNMjA4IDQwMGwwIDY0IDUzLjQgMGM3LjItMjkuNCAyMS4zLTU2LjEgNDAuNC03OC4zLTYuMS0xOS41LTI0LjMtMzMuNy00NS44LTMzLjctMjYuNSAwLTQ4IDIxLjUtNDggNDh6TTMzOSAyMjQuM2MtMS0uMi0yLS4zLTMtLjNsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxNi43IDBjMi4xLTIyLjggOC40LTQ0LjMgMTguMy02My43ek0xNzYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE3NiAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMjQwIDgwYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNMzUyIDUxMmMwLTUzIDQzLTk2IDk2LTk2bDk2IDBjNTMgMCA5NiA0MyA5NiA5NiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxHVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9ib3QiLGljb246WzY0MCw1MTIsWzEyOTMwMl0sImY1NDQiLCJNMzUyIDBjMC0xNy43LTE0LjMtMzItMzItMzJTMjg4LTE3LjcgMjg4IDBsMCA2NC05NiAwYy01MyAwLTk2IDQzLTk2IDk2bDAgMjI0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTIyNGMwLTUzLTQzLTk2LTk2LTk2bC05NiAwIDAtNjR6TTE2MCAzNjhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTEyMCAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xMjAgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMjI0IDE3NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTE0NCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek02NCAyMjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCAyMDYuMyAwIDIyNGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NnptNTQ0LTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sYzg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1cyIsaWNvbjpbNDQ4LDUxMixbMTAxMzMsNjE1NDMsImFkZCJdLCIyYiIsIk0yNTYgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNjAtMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDAgMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MCAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYwIDAgMC0xNjB6Il19LFlWZT1jOCxoZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3B5IixpY29uOls0NDgsNTEyLFtdLCJmMGM1IiwiTTE5MiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIwMC42YzAtMTcuNC03LjEtMzQuMS0xOS43LTQ2LjJMMzcwLjYgMTcuOEMzNTguNyA2LjQgMzQyLjggMCAzMjYuMyAwTDE5MiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtNjQgMCAwIDE2LTE5MiAwIDAtMjU2IDE2IDAgMC02NC0xNiAweiJdfSxaVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3Mta2luZyIsaWNvbjpbNDQ4LDUxMixbOTgxOF0sImY0M2YiLCJNMjI0LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDY0IDE1My44IDBjMjEuMSAwIDM4LjIgMTcuMSAzOC4yIDM4LjIgMCA2LjQtMS42IDEyLjctNC43IDE4LjNMMzUyIDM4NCA0MDguMiA0NTQuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUw2Ny41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMOTYgMzg0IDQuNyAyMTYuNkMxLjYgMjEwLjkgMCAyMDQuNiAwIDE5OC4yIDAgMTc3LjEgMTcuMSAxNjAgMzguMiAxNjBsMTUzLjggMCAwLTY0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxYVmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtZmxvb2Qtd2F0ZXIiLGljb246WzY0MCw1MTIsW10sImU1MGUiLCJNNDk2IDIwOGw0LjUgMGMxNS4yIDAgMjcuNS0xMi4zIDI3LjUtMjcuNSAwLTcuOS0zLjQtMTUuNS05LjQtMjAuN0wzNDggMTAuNUMzNDAuMyAzLjcgMzMwLjMgMCAzMjAgMHMtMjAuMyAzLjctMjggMTAuNUwxMjEuNCAxNTkuOGMtNiA1LjItOS40IDEyLjgtOS40IDIwLjcgMCAxNS4yIDEyLjMgMjcuNSAyNy41IDI3LjVsNC41IDAgMCA5NC40YzIwLjMtOS40IDQyLjEtMTQuMiA2NC0xNC40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAxNi45LS4xIDMzLjggMi42IDUwIDhsMC04OHptLTIyNC04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OHpNNDc0LjYgNDEyLjFjMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyA0MTguMyAxNy42IDQyNi4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHptLTcxLjIgOTZjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyA1MTQuMyAxNy42IDUyMi4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0sS1ZlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJpdGNvaW4tc2lnbiIsaWNvbjpbMzIwLDUxMixbXSwiZTBiNCIsIk02NCAyNEM2NCAxMC43IDc0LjcgMCA4OCAwczI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQxLjFjNTQuMyA3LjggOTYgNTQuNCA5NiAxMTAuOSAwIDI0LjItNy43IDQ2LjYtMjAuNyA2NC45IDMxLjcgMTkuOCA1Mi43IDU1IDUyLjcgOTUuMSAwIDYxLjktNTAuMSAxMTItMTEyIDExMmwtMTYgMCAwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDAtMzIgMCAwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDAtMjIuMyAwQzE4LjcgNDQ4IDAgNDI5LjMgMCA0MDYuM0wwIDEwMS42QzAgODAuOCAxNi44IDY0IDM3LjYgNjRMNjQgNjQgNjQgMjR6bTAgMjAwbDExMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0xMTIgMCAwIDk2em0xMTIgNjRsLTExMiAwIDAgOTYgMTQ0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTMyIDB6Il19LFFWZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3giLGljb246WzQ0OCw1MTIsWzEyODIzMF0sImY0NjYiLCJNMzY5LjQgMTI4bC0zNC4zLTQ4LTIyMi4xIDAtMzQuMyA0OCAyOTAuNyAwek0wIDE0OC41YzAtMTMuMyA0LjItMjYuMyAxMS45LTM3LjJMNjAuOSA0Mi44QzcyLjkgMjYgOTIuMyAxNiAxMTIuOSAxNmwyMjIuMSAwYzIwLjcgMCA0MC4xIDEwIDUyLjEgMjYuOGw0OC45IDY4LjVjNy44IDEwLjkgMTEuOSAyMy45IDExLjkgMzcuMkw0NDggNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNDguNXoiXX0sWkI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwMCAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxKVmU9WkIsWEI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLWxlZnQtcmlnaHQiLGljb246WzU3Niw1MTIsWyJhcnJvd3MtaCJdLCJmMDdlIiwiTTQ3MC42IDM3NC42bDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNDEuNCA0MS40LTM1Ny41IDAgNDEuNC00MS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42bDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTQxLjQtNDEuNCAzNTcuNSAwLTQxLjQgNDEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMHoiXX0sZWplPVhCLHRqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYW4iLGljb246WzUxMiw1MTIsW10sImY4NjMiLCJNMTYwIDE0NGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxNTIuMmMxNS01LjMgMzEuMi04LjIgNDgtOC4yIDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgOC44LTcuMiAxNi0xNiAxNmwtMTUyLjIgMGM1LjMgMTUgOC4yIDMxLjIgOC4yIDQ4IDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0LTguOCAwLTE2LTcuMi0xNi0xNmwwLTE1Mi4yYy0xNSA1LjMtMzEuMiA4LjItNDggOC4yLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtOC44IDcuMi0xNiAxNi0xNmwxNTIuMiAwYy01LjMtMTUtOC4yLTMxLjItOC4yLTQ4em05NiAxNDRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxhamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvdyIsaWNvbjpbNjQwLDUxMixbXSwiZjUyMCIsIk00NTYuNSAwYy00OC42IDAtODggMzkuNC04OCA4OGwwIDM2LTM1NS4yIDI2Ni40Qy0uOCA0MDEtMy43IDQyMSA2LjkgNDM1LjJzMzAuNiAxNyA0NC44IDYuNGw3Ni44LTU3LjYgMTMxLjMgMCA0Ni42IDExMy4xIDEgMi4yYzUuNyAxMC43IDE4LjggMTUuNSAzMC4zIDEwLjhzMTcuMy0xNy4zIDEzLjktMjlsLS44LTIuMy0zOS4xLTk0LjkgNDAuOSAwYzEuMSAwIDIuMiAwIDMuMiAwbDQ2LjYgMTEzLjIgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTQyLTEwMkM0ODUuMyAzNTQuMSA1NDQuNSAyODAgNTQ0LjUgMTkybDAtNzIgODAuNS0yMC4xYzguNi0yLjEgMTMuOC0xMC44IDExLjYtMTkuNC03LjEtMjguNS0zMi43LTQ4LjUtNjIuMS00OC41bC01MC4xIDBDNTA4LjIgMTIuNSA0ODMuOCAwIDQ1Ni41IDB6bTAgNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxpamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtY2hlY2siLGljb246WzU3Niw1MTIsW10sImU1YTAiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek01NzYgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sWjU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluay1zbGFzaCIsaWNvbjpbNTc2LDUxMixbImNoYWluLWJyb2tlbiIsImNoYWluLXNsYXNoIiwidW5saW5rIl0sImYxMjciLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTIyLTEyMmM0LjItMy40IDguMy03LjEgMTIuMS0xMC45bDcxLjEtNzEuMWMyOS4zLTI5LjMgNDUuOC02OS4xIDQ1LjgtMTEwLjYgMC04Ni40LTcwLTE1Ni41LTE1Ni41LTE1Ni41LTM3LjMgMC03My4xIDEzLjMtMTAxLjMgMzcuMiAyMC4zIDEwLjEgMzguNyAyMy41IDU0LjUgMzkuNSAxNC4xLTguMyAzMC4yLTEyLjcgNDYuOC0xMi43IDUxLjEgMCA5Mi41IDQxLjQgOTIuNSA5Mi41IDAgMjQuNS05LjcgNDgtMjcuMSA2NS40bC03MS4xIDcxLjFjLTMuOSAzLjktOC4xIDcuNC0xMi42IDEwLjVsLTQ3LjUtNDcuNWMxNi41LS45IDI5LjctMTQuNCAzMC4yLTMxLjEgMC0xLjMgMC0yLjYgMC0zLjkgMC04Ni4zLTY5LjktMTU2LjktMTU2LjUtMTU2LjktMTkuMiAwLTM3LjkgMy41LTU1LjUgMTAuMkw0MS0yNC45ek0yMjUuOSAxNjBjLjYgMCAxLjEgMCAxLjcgMCAxNS4xIDAgMjkuNSAzLjcgNDIuMSAxMC4yIDEuOCAxLjIgMy42IDIuMyA1LjUgMy4xIDI2LjggMTYuMyA0NC44IDQ1LjkgNDQuOCA3OS42IDAgLjQgMCAuOCAwIDEuMkwyMjUuOSAxNjB6TTM0Ni4yIDQxNkwxOTIgMjYxLjhjMS4yIDg0LjYgNjkuNiAxNTIuOSAxNTQuMSAxNTQuMXpNMTM5LjcgMjA5LjVsLTQ1LjMtNDUuMy00OC42IDQ4LjZjLTI5LjMgMjkuMy00NS44IDY5LjEtNDUuOCAxMTAuNiAwIDg2LjQgNzAgMTU2LjUgMTU2LjUgMTU2LjUgMzcuMiAwIDczLjEtMTMuMyAxMDEuMy0zNy4yLTIwLjMtMTAuMS0zOC44LTIzLjUtNTQuNi0zOS41LTE0IDguMi0zMC4xIDEyLjYtNDYuNyAxMi42LTUxLjEgMC05Mi41LTQxLjQtOTIuNS05Mi41IDAtMjQuNSA5LjctNDggMjcuMS02NS40bDQ4LjYtNDguNnoiXX0scmplPVo1LHNqZT1aNSxuamU9WjUsWDU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcm90YXRlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NjM1LCJhcnJvdy1yaWdodC1yb3RhdGUiLCJhcnJvdy1yb3RhdGUtZm9yd2FyZCIsInJlZG8iXSwiZjAxZSIsIk00MzYuNyA3NC43TDQ0OCA4NS40IDQ0OCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0Ny45IDAtNy42LTcuMmMtLjItLjItLjQtLjQtLjYtLjYtNzUtNzUtMTk2LjUtNzUtMjcxLjUgMHMtNzUgMTk2LjUgMCAyNzEuNSAxOTYuNSA3NSAyNzEuNSAwYzguMi04LjIgMTUuNS0xNi45IDIxLjktMjYuMSAxMC4xLTE0LjUgMzAuMS0xOCA0NC42LTcuOXMxOCAzMC4xIDcuOSA0NC42Yy04LjUgMTIuMi0xOC4yIDIzLjgtMjkuMSAzNC43LTEwMCAxMDAtMjYyLjEgMTAwLTM2MiAwUy0yNSAxNzUgNzUgNzVjOTkuOS05OS45IDI2MS43LTEwMCAzNjEuNy0uM3oiXX0sb2plPVg1LGxqZT1YNSxjamU9WDUsS0I9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLWNsaXAiLGljb246WzUxMiw1MTIsWyJwZW4tYWx0Il0sImYzMDUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTI3NC4xIDEwMGwwIDAgMTM3LjkgMTM3LjktMjE1LjEgMjE1LjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdMMjQwLjEgMTMzLjkgMjIzIDExNi45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw4OSAyMTdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMTU1LjEgODIuOWMyOC4xLTI4LjEgNzMuNy0yOC4xIDEwMS44IDBMMjc0LjEgMTAweiJdfSxkamU9S0IscGplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvb3ItY2xvc2VkIixpY29uOls0NDgsNTEyLFsxMjg2ODJdLCJmNTJhIiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyTDMyIDY0ek0zMjAgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sQm09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi13aWRlLXNob3J0IixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtYXNjIiwic29ydC1hbW91bnQtZG93biJdLCJmMTYwIiwiTTI0Ni42IDM3NC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDB6bTAtMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyMCA5NnoiXX0saGplPUJtLHVqZT1CbSxmamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyZXQtZG93biIsaWNvbjpbMzIwLDUxMixbXSwiZjBkNyIsIk0xNDAuMyAzNzYuOGMxMi42IDEwLjIgMzEuMSA5LjUgNDIuOC0yLjJsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMDEuNCAxOTIgMjg4LjUgMTkybC0yNTYgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuNyAyMzcuNSA5LjkgMjQ2LjZsMTI4IDEyOCAyLjQgMi4yeiJdfSxtamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiayIsaWNvbjpbMzIwLDUxMixbMTA3XSwiNGIiLCJNMzExIDg2LjNjMTIuMy0xMi43IDEyLTMyLjktLjctNDUuMnMtMzIuOS0xMi00NS4yIC43QzE0My40IDE2Ny4yIDc2LjQgMjM2LjMgNjQgMjQ5TDY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMDcgNjQuNy02Ni43IDEzMyAxOTJjMTAuMSAxNC41IDMwIDE4LjEgNDQuNSA4LjFzMTguMS0zMCA4LjEtNDQuNUwxNzQuMSAyMjcuNCAzMTEgODYuM3oiXX0sUUI9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2stdG8tc2xvdCIsaWNvbjpbNTc2LDUxMixbInZvdGUteWVhIl0sImY3NzIiLCJNNTUyIDI4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzEyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDE2IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjU2IDB6bS0zNy4xIDg0LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zbC04NS42IDExNy43LTI2LjUtMjcuNGMtOS4yLTkuNS0yNC40LTkuOC0zMy45LS42LTkuNSA5LjItOS44IDI0LjQtLjYgMzMuOWw0Ni40IDQ4YzQuOSA1LjEgMTEuOCA3LjggMTguOSA3LjNzMTMuNi00LjEgMTcuOC05LjhMMzg0LjIgMTUwLjFjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LGdqZT1RQixiamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlzaC1maW5zIixpY29uOls1NzYsNTEyLFtdLCJlNGYyIiwiTTI3NS4yIDM4LjRjLTEwLjYtOC0yNS04LjUtMzYuMy0xLjVTMjIyIDU3LjMgMjI0LjYgNzAuM2w5LjcgNDguNmMtMTkuNCA5LTM2LjkgMTkuOS01Mi40IDMxLjUtMTUuMyAxMS41LTI5IDIzLjktNDAuNyAzNi4zTDQ4LjEgMTMyLjRjLTEyLjUtNy4zLTI4LjQtNS4zLTM4LjcgNC45cy0xMi40IDI2LTUuMyAzOC42TDUwIDI1NiA0LjIgMzM2LjFjLTcuMiAxMi42LTUgMjguNCA1LjMgMzguNnMyNi4xIDEyLjIgMzguNyA0LjlsOTMuMS01NC4zYzExLjggMTIuMyAyNS40IDI0LjggNDAuNyAzNi4zIDE1LjUgMTEuNiAzMyAyMi41IDUyLjQgMzEuNWwtOS43IDQ4LjZjLTIuNiAxMyAzLjEgMjYuMyAxNC4zIDMzLjNzMjUuNiA2LjUgMzYuMy0xLjVsNzcuNi01OC4yYzU0LjktNCAxMDEuNS0yNyAxMzcuMi01My44IDM5LjItMjkuNCA2Ny4yLTY0LjcgODEuNi04OS41IDUuOC05LjkgNS44LTIyLjIgMC0zMi4xLTE0LjQtMjQuOC00Mi41LTYwLjEtODEuNi04OS41LTM1LjgtMjYuOC04Mi4zLTQ5LjgtMTM3LjItNTMuOEwyNzUuMiAzOC40ek0zODQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHZqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wcmVzcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjA2NiIsIk0xNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgNDYuMyA5NiA2NGwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2ek0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAweiJdfSxKQj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1hLXoiLGljb246WzUxMiw1MTIsWyJzb3J0LWFscGhhLXVwIl0sImYxNWUiLCJNNDEyLjYgNDkuN0M0MDcuMiAzOC44IDM5Ni4xIDMyIDM4NCAzMnMtMjMuMiA2LjgtMjguNiAxNy43Yy01MC43IDEwMS4zLTc3LjMgMTU0LjctODAgMTYwLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w3LjItMTQuMyA4OC40IDAgNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45Yy0yLjctNS4zLTI5LjMtNTguNy04MC0xNjB6TTM4NCAxMzUuNmwyMC4yIDQwLjQtNDAuNCAwIDIwLjItNDAuNHpNMjg4IDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1MC43IDAtNzMuNCA3My40Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMzMDcuMSA0ODAgMzIwIDQ4MGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTAuNyAwIDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0NjAuOSAyODggNDQ4IDI4OGwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODB6Il19LHlqZT1KQix4amU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1ncmFkdWF0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjUwMSIsIk0yNDEuMy0xM2MtMTEuNC0yLjMtMjMuMS0yLjMtMzQuNSAwTDE5LjMgMjQuNUM4LjEgMjYuNyAwIDM2LjYgMCA0OCAwIDU4LjMgNi41IDY3LjMgMTYgNzAuNkwxNiAxNDQgLjMgMjIyLjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNmwzNC45IDBjOCAwIDE0LjYtNi41IDE0LjYtMTQuNiAwLTEtLjEtMS45LS4zLTIuOUw0OCAxNDQgNDggNzcuMyA5NiA4Ni45IDk2IDE0NGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4bDAtNTcuMSA3Ni43LTE1LjNDNDM5LjkgNjkuMyA0NDggNTkuNCA0NDggNDhzLTguMS0yMS4zLTE5LjMtMjMuNUwyNDEuMy0xM3pNMjI0IDIyNGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMTYwIDBjMCA0NC4yLTM1LjggODAtODAgODB6TTEyMC4xIDMyMC4xQzU4LjcgMzQ4LjMgMTYgNDEwLjMgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMTU0LjMgMCAwLTE0Ni01Ny40LTQzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44ek0yNDggNTEybDE1NC4zIDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC01Ny40IDQzIDAgMTQ2eiJdfSx3amU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jb2RlIixpY29uOlszODQsNTEyLFtdLCJmMWM5IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNTQuMiAyOTUuNmM4LjYtMTAuMSA3LjUtMjUuMi0yLjYtMzMuOHMtMjUuMi03LjUtMzMuOCAyLjZsLTQ4IDU2Yy03LjcgOS03LjcgMjIuMiAwIDMxLjJsNDggNTZjOC42IDEwLjEgMjMuOCAxMS4yIDMzLjggMi42czExLjItMjMuOCAyLjYtMzMuOGwtMzQuNi00MC40IDM0LjYtNDAuNHptMTEyLTMxLjJjLTguNi0xMC4xLTIzLjgtMTEuMi0zMy44LTIuNnMtMTEuMiAyMy44LTIuNiAzMy44bDM0LjYgNDAuNC0zNC42IDQwLjRjLTguNiAxMC4xLTcuNSAyNS4yIDIuNiAzMy44czI1LjIgNy41IDMzLjgtMi42bDQ4LTU2YzcuNy05IDcuNy0yMi4yIDAtMzEuMmwtNDgtNTZ6Il19LE1qZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2FwIixpY29uOls1MTIsNTEyLFsxMjk1MzJdLCJlMDZlIiwiTTIwOC0zMmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTMyMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMzUyIDBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNOTYgMTYwbDExMiAwYzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDE2MCAyMjRjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZsMTkyIDBjNTMgMCA5Ni00MyA5Ni05NiAwLTM1LjEtMTguOS02NS45LTQ3LTgyLjYgMTktMTkuOCAzMC43LTQ2LjYgMzEtNzYuMSA0NS40IDcuNiA4MCA0Ny4xIDgwIDk0LjdsMCAxMjhjMCA1My00MyA5Ni05NiA5Nkw5NiA0ODBjLTUzIDAtOTYtNDMtOTYtOTZMMCAyNTZjMC01MyA0My05NiA5Ni05NnptNjQgMTEybDE5MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4bC0xOTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OHoiXX0semplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3ljbGUiLGljb246WzUxMiw1MTIsWzk4NDIsOTg1MCw5ODUxXSwiZjFiOCIsIk0xNTIuMyA2MEMxOTguNS0yMCAzMTQtMjAgMzYwLjIgNjBsMzcuMyA2NC42IDI3LjctMTZjOC40LTQuOSAxOC45LTQuMiAyNi42IDEuN3MxMS4xIDE1LjkgOC42IDI1LjNMNDM2LjkgMjIzYy0zLjQgMTIuOC0xNi42IDIwLjQtMjkuNCAxN2wtODcuNC0yMy40Yy05LjQtMi41LTE2LjMtMTAuNC0xNy42LTIwczMuNC0xOS4xIDExLjgtMjMuOWwyNy43LTE2LTM3LjMtNjQuNmMtMjEuNi0zNy4zLTc1LjQtMzcuMy05NyAwbC01LjMgOS4xYy04LjggMTUuMy0yOC40IDIwLjUtNDMuNyAxMS43UzEzOC4yIDg0LjUgMTQ3IDY5LjFsNS4zLTkuMXpNNDQ5LjcgMjc5LjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDUuMyA5LjFjNDYuMiA4MC0xMS41IDE4MC0xMDMuOSAxODBsLTc0LjYgMCAwIDMyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2NC02NGM2LjktNi45IDE3LjItOC45IDI2LjItNS4yczE0LjggMTIuNSAxNC44IDIyLjJsMCAzMiA3NC42IDBjNDMuMSAwIDcwLjEtNDYuNyA0OC41LTg0bC01LjMtOS4xYy04LjgtMTUuMy0zLjYtMzQuOSAxMS43LTQzLjd6TTUxIDIzNS40bC0yNy43LTE2Yy04LjQtNC45LTEzLjEtMTQuMy0xMS44LTIzLjlzOC4yLTE3LjUgMTcuNi0yMEwxMTYuNSAxNTJjMTIuOC0zLjQgMjYgNC4yIDI5LjQgMTdsMjMuNCA4Ny40YzIuNSA5LjQtLjkgMTkuMy04LjYgMjUuM3MtMTguMiA2LjYtMjYuNiAxLjdsLTI3LjctMTYtMzcuMyA2NC42Yy0yMS42IDM3LjMgNS40IDg0IDQ4LjUgODRsMTAuNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMC42IDBDMjUuMyA0ODAtMzIuNCAzODAgMTMuOCAzMDBMNTEgMjM1LjR6Il19LGVIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aW5rIixpY29uOls1MTIsNTEyLFsiZ3Jpbi13aW5rIl0sImY1OGMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0zMjggMTk2Yy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sa2plPWVILEhtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdGVyLWxhZGRlciIsaWNvbjpbNjQwLDUxMixbImxhZGRlci13YXRlciIsInN3aW1taW5nLXBvb2wiXSwiZjVjNSIsIk0zNzQuNSA0MDUuN2MzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTYuOSAxMi43IDMyLjkgMjEuNSA0Ny44IDI0LjYgMTMuNyAyLjggMjcuNCAuOSA0Mi4zLTEwLjMgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOCAyNS43LTQuOCAzMy42Yy0yNi40IDE5LjktNTQuMiAyNC40LTgwLjcgMTkuMS0yNS4zLTUuMS00OC4xLTE4LjktNjcuMi0zMy4zLTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAwLTI0LjIgMTguMy01Mi4zIDM1LjktODMuNCAzNS45cy01OS4xLTE3LjctODMuMy0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC42LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjN6TTUxMS44IDMyYzQ4LjMgMCA4OSAzNiA5NSA4My45bDEgOC4yYzIuMiAxNy41LTEwLjIgMzMuNS0yNy44IDM1LjdzLTMzLjUtMTAuMi0zNS43LTI3LjhsLTEtOC4yYy0yLTE1LjktMTUuNS0yNy44LTMxLjUtMjcuOC0xNy41IDAtMzEuOCAxNC4yLTMxLjggMzEuOGwwIDIxMS44Yy0yMy4xLTUuMS00NC45LTQuNC02NC0uNGwwLTUxLjItMTkyIDAgMCA0OC43Yy01LjMtLjUtMTAuNy0uOC0xNi0uNy0xNi4yIC4xLTMyLjQgMi43LTQ4IDhsMC0yMTYuMmMwLTUyLjkgNDIuOS05NS44IDk1LjctOTUuOCA0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjgtMTcuNSAwLTMxLjcgMTQuMi0zMS43IDMxLjhsMCA5Ni4yIDE5MiAwIDAtOTYuMkM0MTYgNzQuOSA0NTguOSAzMiA1MTEuOCAzMnoiXX0sU2plPUhtLENqZT1IbSxfamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VtaW5pIixpY29uOls0NDgsNTEyLFtdLCJlODQ5IiwiTTM5NS40IDhjMTMuMi0xMS43IDMzLjMtMTAuNSA0NS4xIDIuNyAxMS43IDEzLjIgMTAuNSAzMy40LTIuNyA0NS4yLTIuNyAyLjQtMjMuMSAxOS44LTU4LjMgMzYuOC04LjIgNC0xNy4yIDcuOS0yNyAxMS42bDAgMzAzLjJjOS44IDMuOCAxOC44IDcuNiAyNyAxMS42IDE4LjIgOC44IDMyLjQgMTcuNyA0Mi4yIDI0LjUgMyAyLjEgNS41IDQuMSA3LjcgNS43IDEuMiAuOSAyLjMgMS42IDMuMiAyLjQgLjIgLjEgLjMgLjIgLjUgLjQgMS4zIDEuMSAyLjQgMiAzLjIgMi42IC40IC4zIC43IC42IC45IC44IC4xIC4xIC4zIC4yIC4zIC4zIDAgMCAuMSAuMSAuMSAuMWwuMSAwIDAgMCAwIDBjMy4zIDIuOSA1LjkgNi40IDcuNyAxMC4yIDUuNCAxMS4zIDMuOCAyNS4xLTUgMzUtLjMgLjQtLjcgLjctMS4xIDEuMS0xMS45IDEyLjItMzEuMiAxMy4xLTQ0IDEuNy0uMy0uMy0xLjUtMS4zLTMuNS0yLjgtLjQtLjMtLjktLjctMS41LTEuMS0xLjktMS40LTQuMi0zLjEtNy4xLTUuMS0yLjItMS41LTQuNy0zLjEtNy40LTQuOC02LjYtNC4xLTE0LjgtOC44LTI0LjQtMTMuNS03LjQtMy42LTE1LjYtNy4yLTI0LjctMTAuNS0xMy42LTUuMS0yOS05LjYtNDYuMS0xMi45LTUuNy0xLjEtMTEuNi0yLjEtMTcuNy0yLjgtMTIuMS0xLjYtMjUtMi41LTM4LjYtMi41LTU0LjIgMC05Ny40IDE0LjQtMTI3IDI4LjgtMy40IDEuNi02LjUgMy4zLTkuNSA0LjktNS4xIDIuOC05LjcgNS40LTEzLjggNy45LTMuMyAyLjEtNi4zIDQtOC45IDUuNy0xLjcgMS4yLTMuMiAyLjMtNC42IDMuMy0xLjkgMS40LTMuNSAyLjUtNC42IDMuNC0xLjQgMS4xLTIuMiAxLjgtMi41IDItMTMuMiAxMS43LTMzLjMgMTAuNS00NS4xLTIuOC0yLjItMi41LTQtNS4yLTUuMi04LjFzLTIuMS01LjktMi41LTguOWMtMS40LTEwLjIgMi4yLTIwLjggMTAuNC0yOC4yIC4yLS4yIC42LS41IDEuMi0xIC4xLS4xIC4yLS4yIC4zLS4zbDMuMi0yLjZjMS43LTEuMyAzLjctMi44IDYuMi00LjYgMS42LTEuMiAzLjMtMi41IDUuMi0zLjggOS44LTYuOCAyNC0xNS43IDQyLjItMjQuNSA4LjItNCAxNy4yLTcuOSAyNy0xMS42bDAtMzAzLjJDODYuNyAxMDAuNiA3Ny43IDk2LjcgNjkuNSA5Mi44IDM0LjMgNzUuNyAxNCA1OC4zIDExLjMgNTUuOS0xLjkgNDQuMi0zLjEgMjQgOC42IDEwLjcgMjAuMy0yLjUgNDAuNS0zLjcgNTMuNyA4IDU1LjEgOS4yIDcwLjcgMjIuMiA5Ny41IDM1LjIgMTI3LjEgNDkuNiAxNzAuMyA2NCAyMjQuNSA2NHM5Ny40LTE0LjQgMTI3LTI4LjhjMjYuOC0xMyA0Mi40LTI2IDQzLjgtMjcuMnpNMjg4LjUgMTIyLjNjLTE5LjcgMy41LTQxIDUuNy02NCA1LjdzLTQ0LjMtMi4yLTY0LTUuN2wwIDI2Ny40YzEyLjYtMi4zIDI1LjktNCAzOS45LTQuOSA3LjgtLjUgMTUuOC0uOCAyNC0uOCAyMyAwIDQ0LjQgMi4yIDY0IDUuN2wwLTI2Ny40eiJdfSxUamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItY2VsbCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4NSIsIk01OS42IDkuOEM0Ny4zIDQuOCAzMy4zIDEwLjcgMjguNCAyMyAxNS4yIDU1LjUgOCA5MC45IDggMTI4czcuMiA3Mi41IDIwLjQgMTA1YzUgMTIuMyAxOSAxOC4yIDMxLjMgMTMuMnMxOC4yLTE5IDEzLjItMzEuM0M2MiAxODguMiA1NiAxNTguOCA1NiAxMjhzNi02MC4yIDE2LjktODdjNS0xMi4zLTEtMjYuMy0xMy4yLTMxLjN6bTQ1Ni44IDBjLTEyLjMgNS0xOC4yIDE5LTEzLjIgMzEuMyAxMC45IDI2LjggMTYuOSA1Ni4yIDE2LjkgODdzLTYgNjAuMi0xNi45IDg3Yy01IDEyLjMgMSAyNi4zIDEzLjIgMzEuM3MyNi4zLTEgMzEuMy0xMy4yYzEzLjEtMzIuNSAyMC40LTY3LjkgMjAuNC0xMDVzLTcuMi03Mi41LTIwLjQtMTA1Yy01LTEyLjMtMTktMTguMi0zMS4zLTEzLjJ6TTM0MC4xIDE2NS4yYzcuNS0xMC41IDExLjktMjMuMyAxMS45LTM3LjIgMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRjMCAxMy45IDQuNCAyNi43IDExLjkgMzcuMkw5OC45IDQ2Ni44Yy03LjMgMTYuMS0uMiAzNS4xIDE1LjkgNDIuNHMzNS4xIC4yIDQyLjQtMTUuOWwyMC42LTQ1LjIgMjIwLjYgMCAyMC42IDQ1LjJjNy4zIDE2LjEgMjYuMyAyMy4yIDQyLjQgMTUuOXMyMy4yLTI2LjMgMTUuOS00Mi40TDM0MC4xIDE2NS4yek0zNzYuNSA0MDBsLTE3NyAwIDIxLjgtNDggMTMzLjMgMCAyMS44IDQ4ek0yODggMjA1LjNsNDQuOCA5OC43LTg5LjcgMCA0NC44LTk4Ljd6TTE2My4zIDczLjZjNS4zLTEyLjEtLjItMjYuMy0xMi40LTMxLjZzLTI2LjMgLjItMzEuNiAxMi40QzEwOS41IDc3IDEwNCAxMDEuOSAxMDQgMTI4czUuNSA1MSAxNS4zIDczLjZjNS4zIDEyLjEgMTkuNSAxNy43IDMxLjYgMTIuNHMxNy43LTE5LjUgMTIuNC0zMS42QzE1NiAxNjUuOCAxNTIgMTQ3LjQgMTUyIDEyOHM0LTM3LjggMTEuMy01NC40ek00NTYuNyA1NC40Yy01LjMtMTIuMS0xOS41LTE3LjctMzEuNi0xMi40cy0xNy43IDE5LjUtMTIuNCAzMS42QzQyMCA5MC4yIDQyNCAxMDguNiA0MjQgMTI4cy00IDM3LjgtMTEuMyA1NC40Yy01LjMgMTIuMSAuMiAyNi4zIDEyLjQgMzEuNnMyNi4zLS4yIDMxLjYtMTIuNEM0NjYuNSAxNzkgNDcyIDE1NC4xIDQ3MiAxMjhzLTUuNS01MS0xNS4zLTczLjZ6Il19LExqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2xvbi1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTQwIiwiTTIxMy44IDguN2MxMi45IDMuMiAyMC43IDE2LjIgMTcuNSAyOS4xbC00LjYgMTguNWMxNS40IC44IDMwLjQgMy40IDQ0LjcgNy41bDkuNC0zNy42QzI4My45IDEzLjMgMjk3IDUuNSAzMDkuOCA4LjdTMzMwLjUgMjUgMzI3LjMgMzcuOEwzMTYgODIuOGMxMy41IDcuOCAyNiAxNy4xIDM3LjIgMjcuOCAxMi45IDEyLjEgMTMuNCAzMi40IDEuMyA0NS4ycy0zMi40IDEzLjQtNDUuMiAxLjNjLTMuMS0yLjktNi40LTUuOC05LjgtOC40TDIzOS4yIDM5MGMyNi45LTQuNiA1MS4xLTE3LjEgNzAuMS0zNS4xIDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yYy0zNC4zIDMyLjMtODAgNTIuOC0xMzAuNSA1NC40bC03LjUgMjkuOWMtMy4yIDEyLjktMTYuMiAyMC43LTI5LjEgMTcuNXMtMjAuNy0xNi4yLTE3LjUtMjkuMWw1LjYtMjIuNWMtMTUtMy4yLTI5LjQtOC00Mi45LTE0LjRsLTEyLjEgNDguNWMtMy4yIDEyLjktMTYuMiAyMC43LTI5LjEgMTcuNVM2OS41IDQ4NyA3Mi43IDQ3NC4ybDE2LTYzLjlDNDQuMyAzNzMuNiAxNiAzMTguMSAxNiAyNTYgMTYgMTU5LjIgODQuOCA3OC40IDE3Ni4zIDYwbDguNC0zMy44QzE4Ny45IDEzLjMgMjAxIDUuNSAyMTMuOCA4Ljd6TTE1OCAxMzIuOWMtNDYuMSAyMS44LTc4IDY4LjctNzggMTIzLjEgMCAzMC41IDEwIDU4LjYgMjYuOSA4MS4zTDE1OCAxMzIuOXpNMTQ3LjQgMzczLjRjMTMgNy42IDI3LjMgMTMuMSA0Mi41IDE2LjFsNjUuOS0yNjMuNmMtMTIuNi0zLjgtMjUuOS01LjktMzkuOC01LjktMS44IDAtMy41IDAtNS4zIC4xTDE0Ny40IDM3My40eiJdfSwkamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wLWZpbGUiLGljb246WzU3Niw1MTIsW10sImU1MWQiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMNDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA0OC02NCAwIDAtNDgtMjg4IDAgMCAxOTIgMTEyIDAgMCA5Ni0xNjMuMiAwQzM0LjQgMzUyIDAgMzE3LjYgMCAyNzUuMiAwIDI2NC42IDguNiAyNTYgMTkuMiAyNTZMNjQgMjU2IDY0IDY0ek01MjkuOSAyNTcuOWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOUw1NDQgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yNTZjMC0yNi41IDIxLjUtNDggNDgtNDhsNzYuMSAwYzEyLjcgMCAyNC45IDUuMSAzMy45IDE0LjEgMjAgMjAgNDcuOSA0Ny45IDgzLjkgODMuOXpNNDE2IDI3MmMwIDguOCA3LjIgMTYgMTYgMTZsNjAuMSAwLTc2LjEtNzYuMSAwIDYwLjF6Il19LHRIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhaGFpIixpY29uOls1NzYsNTEyLFsiaGF5a2FsIl0sImY2NjYiLCJNMjg4LjQtOGMxMy4yIDAgMjUgOC4xIDI5LjggMjAuNGwzMS45IDgyIDc3LjItNDIuM2MxMS42LTYuMyAyNS44LTQuOSAzNS45IDMuNXMxNCAyMi4zIDkuNyAzNC44bC0yOC4yIDgzLjMgODYuMyAxNy4yYzEyLjkgMi42IDIzIDEyLjggMjUuMyAyNS44cy0zLjYgMjYuMS0xNC45IDMyLjlsLTc1LjIgNDUuNyA1NSA2OC42YzguMyAxMC4zIDkuMyAyNC42IDIuNyAzNnMtMTkuNSAxNy42LTMyLjYgMTUuNmwtODctMTMuMy0yIDg4Yy0uMyAxMy4yLTguNiAyNC44LTIxIDI5LjRzLTI2LjMgMS0zNS05bC01OC02Ni4xLTU4IDY2LjFjLTguNyA5LjktMjIuNiAxMy41LTM1IDlzLTIwLjgtMTYuMi0yMS0yOS40bC0yLTg4LTg3IDEzLjNjLTEzIDItMjYtNC4yLTMyLjYtMTUuNnMtNS41LTI1LjcgMi43LTM2bDU1LTY4LjYtNzUuMi00NS43Yy0xMS4zLTYuOC0xNy4yLTE5LjktMTQuOS0zMi45czEyLjMtMjMuMiAyNS4zLTI1LjhsODYuMy0xNy4yLTI4LjItODMuM2MtNC4yLTEyLjUtLjQtMjYuMyA5LjctMzQuOHMyNC40LTkuOSAzNS45LTMuNWw3Ny4xIDQyLjMgMzEuOS04MkMyNjMuMyAuMSAyNzUuMi04IDI4OC40LTh6bTAgMTIwLjJMMjczIDE1MS42Yy0zLjMgOC42LTEwLjIgMTUuMy0xOC45IDE4LjVzLTE4LjIgMi40LTI2LjMtMmwtMzctMjAuMyAxMy42IDQwYzMgOC43IDIgMTguMy0yLjYgMjYuM3MtMTIuNCAxMy42LTIxLjUgMTUuNGwtNDEuNCA4LjMgMzYuMSAyMS45YzcuOSA0LjggMTMuMyAxMi43IDE0LjkgMjEuOHMtLjggMTguNC02LjUgMjUuNmwtMjYuNCAzMyA0MS44LTYuNGM5LjEtMS40IDE4LjQgMS4yIDI1LjQgNy4xczExLjIgMTQuNiAxMS40IDIzLjhsLjkgNDIuMiAyNy45LTMxLjhjNi4xLTYuOSAxNC44LTEwLjkgMjQuMS0xMC45czE4IDQgMjQuMSAxMC45bDI3LjkgMzEuOCAuOS00Mi4yYy4yLTkuMiA0LjQtMTcuOSAxMS40LTIzLjhzMTYuMy04LjUgMjUuNC03LjFsNDEuOCA2LjQtMjYuNC0zM2MtNS44LTcuMi04LjItMTYuNS02LjYtMjUuNnM3LTE3IDE0LjktMjEuOGwzNi4xLTIxLjktNDEuNC04LjNjLTktMS44LTE2LjktNy40LTIxLjUtMTUuNHMtNS41LTE3LjYtMi42LTI2LjNsMTMuNi00MC0zNyAyMC4zYy04LjEgNC40LTE3LjcgNS4yLTI2LjMgMnMtMTUuNS05LjktMTguOS0xOC41bC0xNS4zLTM5LjR6Il19LEFqZT10SCxhSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLTEiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLWFsdCJdLCJmM2QxIiwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0em0xOTIgODBhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0ek02NCAxODRsMC00OGMwLTQuNCAzLjYtOCA4LThsNDggMGM0LjQgMCA4LjEgMy42IDcuNSA4LTMuNiAyOS0yNi42IDUxLjktNTUuNSA1NS41LTQuNCAuNS04LTMuMS04LTcuNXptMCAxNDRjMC00LjQgMy42LTguMSA4LTcuNSAyOSAzLjYgNTEuOSAyNi42IDU1LjUgNTUuNSAuNSA0LjQtMy4xIDgtNy41IDhsLTQ4IDBjLTQuNCAwLTgtMy42LTgtOGwwLTQ4ek00NDAgMTkxLjVjLTI5LTMuNi01MS45LTI2LjYtNTUuNS01NS41LS41LTQuNCAzLjEtOCA3LjUtOGw0OCAwYzQuNCAwIDggMy42IDggOGwwIDQ4YzAgNC40LTMuNiA4LjEtOCA3LjV6TTQ0OCAzMjhsMCA0OGMwIDQuNC0zLjYgOC04IDhsLTQ4IDBjLTQuNCAwLTguMS0zLjYtNy41LTggMy42LTI5IDI2LjYtNTEuOSA1NS41LTU1LjUgNC40LS41IDggMy4xIDggNy41ek0yNDAgMTg4Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSxEamU9YUgsaUg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtYm9sdCIsaWNvbjpbNTEyLDUxMixbMTI3Nzg1LCJ0aHVuZGVyc3Rvcm0iXSwiZjc2YyIsIk0wIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDM4LjYgMCAxMjQuMS0xMTFjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43TDM1NC4xIDMyMCA0MTYgMzIwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwIDEuMS01LjIgMS42LTEwLjUgMS42LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOC0xOC43LTM1LjctNTYuMS02MC05OS4yLTYwLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNy4xIC43IDE0LjEgMS45IDIwLjgtMzguMyAxMi42LTY1LjkgNDguNy02NS45IDkxLjJ6TTE2MC42IDQwMGw2MS44IDAtMzEuMiAxMDQuMWMtMy42IDExLjkgNS4zIDIzLjkgMTcuOCAyMy45IDQuNiAwIDktMS43IDEyLjQtNC43TDM2Mi41IDM5Ni45YzMuNS0zLjEgNS41LTcuNiA1LjUtMTIuNCAwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZsLTYxLjggMCAzMS4yLTEwNC4xYzMuNi0xMS45LTUuMy0yMy45LTE3LjgtMjMuOS00LjYgMC05IDEuNy0xMi40IDQuN0wxNDkuNSAzNzEuMWMtMy41IDMuMS01LjUgNy42LTUuNSAxMi40IDAgOS4yIDcuNCAxNi42IDE2LjYgMTYuNnoiXX0sRWplPWlILFBqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJldGhlcm5ldCIsaWNvbjpbNTEyLDUxMixbXSwiZjc5NiIsIk0wIDIyNEwwIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMTYwIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LHJIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhyeXZuaWEtc2lnbiIsaWNvbjpbMzg0LDUxMixbODM3MiwiaHJ5dm5pYSJdLCJmNmYyIiwiTTMzNiAxNDkuNEMzMzYgNzcgMjY4LjUgMjMuNSAxOTggNDAuMUw5My4yIDY0LjlDNzYgNjguOSA2NS40IDg2LjIgNjkuNCAxMDMuNHMyMS4zIDI3LjkgMzguNSAyMy44bDEwNC44LTI0LjdjMzAuMy03LjEgNTkuMyAxNS44IDU5LjMgNDYuOSAwIDE3LjYtOS42IDMzLjgtMjUgNDIuM2wtLjcgLjQtMjIyLjMgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIuNCAwYzUuNS0xMy4zIDguNC0yNy44IDguNC00Mi42ek0zNjAgMjcyTDI0IDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMy4zIDBjLTYuMSAxMy40LTkuMyAyOC4xLTkuMyA0My4zIDAgNjQuMSA1Ni45IDExMy40IDEyMC40IDEwNC4ybDEzNy45LTE5LjljMTcuNS0yLjUgMjkuNi0xOC43IDI3LjEtMzYuMnMtMTguOC0yOS42LTM2LjItMjcuMUwxNTkuMiA0MDQuMmMtMjQuOSAzLjYtNDcuMi0xNS43LTQ3LjItNDAuOSAwLTE1LjEgOC4yLTI4LjkgMjEuNC0zNi4ybDEzLTcuMSAyMTMuNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0eiJdfSxJamU9ckgsdWc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMDcwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMjA0LjUgMTM4LjdjMjMuNS0xNi44IDUyLjQtMjYuNyA4My41LTI2LjcgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCAzMS4xLTkuOSA1OS45LTI2LjcgODMuNWwtMzQuNy0zNC43YzEyLjctMjEuNCAxNy00Ny43IDEwLjEtNzMuNy0xMy43LTUxLjItNjYuNC04MS42LTExNy42LTY3LjktOC42IDIuMy0xNi43IDUuNy0yNCAxMGwtMzQuNy0zNC43ek0zMjUuMyAzOTUuMWMtMTEuOSAzLjItMjQuNCA0LjktMzcuMyA0LjktNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC0xMi45IDEuNy0yNS40IDQuOS0zNy4zTDY5LjQgMTM5LjJjLTMyLjYgMzYuOC01NSA3NS44LTY2LjkgMTA0LjUtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42IDM3LjMgMCA3MS4yLTcuOSAxMDEuNS0yMC42bC02NC4yLTY0LjJ6Il19LHNIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtZmxhdGJlZC1zdWl0Y2FzZSIsaWNvbjpbNTc2LDUxMixbImx1Z2dhZ2UtY2FydCJdLCJmNTlkIiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDQ4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNC43IDBjMS44IDUgMi43IDEwLjQgMi43IDE2IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNS42IDEtMTEgMi43LTE2bC0xOTcuNSAwYzEuOCA1IDIuNyAxMC40IDIuNyAxNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTYgMS4xLTExLjcgMy4xLTE3LTM4LjEtNi4yLTY3LjEtMzkuMi02Ny4xLTc5TDY0IDgwYzAtOC44LTcuMi0xNi0xNi0xNkwzMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyek0xNzYgMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDAgMC0yNGMwLTMwLjkgMjUuMS01NiA1Ni01Nmw2NCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgMjQgMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE0NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjQwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTQ0ek0zODQgOTZsMC0yNGMwLTQuNC0zLjYtOC04LThsLTY0IDBjLTQuNCAwLTggMy42LTggOGwwIDI0IDgwIDB6Il19LE5qZT1zSCxGamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFkaWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJmN2I5IiwiTTQ0Ni4yIDM0LjVjLTE0LjItMTAuMS0zMy41LTQuNi00Mi4yIDEwLjVMMzMxLjYgMTcwLjNjMzEuMyAxNS44IDUyLjggNDguMyA1Mi44IDg1LjdsMTQ0IDBjMTcuNyAwIDMyLjItMTQuNCAzMC4xLTMxLjktOS4xLTc4LjEtNTEuNC0xNDYuMS0xMTIuMy0xODkuNnpNMTcyLjcgNDQuOUMxNjQgMjkuOCAxNDQuNyAyNC4zIDEzMC41IDM0LjUgNjkuNiA3Ny45IDI3LjMgMTQ1LjkgMTguMiAyMjQuMSAxNi4xIDI0MS42IDMwLjcgMjU2IDQ4LjMgMjU2bDE0NCAwYzAtMzcuNSAyMS41LTY5LjkgNTIuOC04NS43TDE3Mi43IDQ0Ljl6bS05LjQgNDE2LjhjLTguNyAxNS4xLTMuOCAzNC41IDEyIDQxLjggMzQuNCAxNS43IDcyLjcgMjQuNSAxMTMgMjQuNXM3OC42LTguOCAxMTMtMjQuNWMxNS44LTcuMiAyMC43LTI2LjcgMTItNDEuOEwzNDEgMzM2LjNjLTE1LjEgOS45LTMzLjIgMTUuNy01Mi42IDE1LjdzLTM3LjUtNS44LTUyLjYtMTUuN0wxNjMuMyA0NjEuN3pNMjg4LjMgMzA0YTQ4IDQ4IDAgMSAwIC0uNy05NiA0OCA0OCAwIDEgMCAuNyA5NnoiXX0sT2plPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtd29yZCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjMiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTM1LjQgMjc0LjhjLTIuOS0xMi45LTE1LjctMjEuMS0yOC42LTE4LjJzLTIxLjEgMTUuNy0xOC4yIDI4LjZsMzIgMTQ0YzIuMyAxMC41IDExLjQgMTguMiAyMi4yIDE4LjhzMjAuNi02LjEgMjQtMTYuNGwyNS4yLTc1LjcgMjUuMiA3NS43YzMuNCAxMC4yIDEzLjIgMTYuOSAyNCAxNi40czE5LjktOC4yIDIyLjItMTguOGwzMi0xNDRjMi45LTEyLjktNS4zLTI1LjgtMTguMi0yOC42cy0yNS44IDUuMy0yOC42IDE4LjJsLTEzLjIgNTkuNC0yMC42LTYxLjhjLTMuMy05LjgtMTIuNC0xNi40LTIyLjgtMTYuNHMtMTkuNSA2LjYtMjIuOCAxNi40bC0yMC42IDYxLjgtMTMuMi01OS40eiJdfSxuSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWQtcHVsc2UiLGljb246WzY0MCw1MTIsWyJwcm9jZWR1cmVzIl0sImY0ODciLCJNNTMxLjItMjIuNEw1NzIgMzIgNjE2IDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwYy03LjYgMC0xNC43LTMuNi0xOS4yLTkuNmwtMjQuMS0zMi4xLTQ3IDk5LjljLTMuNyA3LjgtMTEuMyAxMy4xLTE5LjkgMTMuN3MtMTYuOS0zLjQtMjEuNy0xMC42TDM4Ny4yIDgwIDM0NCA4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw1NiAwYzggMCAxNS41IDQgMjAgMTAuN2wyNC40IDM2LjYgNDUuOS05Ny41YzMuNi03LjYgMTAuOS0xMi44IDE5LjMtMTMuN3MxNi42IDIuNyAyMS42IDkuNXpNMzIwIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5LjUgMCAyNi42IDM5LjljMTQuNCAyMS42IDM5LjMgMzMuOCA2NS4yIDMxLjlzNDguOC0xNy42IDU5LjgtNDEuMUw1MjcgMTI5LjJjNDUuOSA3LjIgODEgNDYuOSA4MSA5NC44bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtNDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgMjI0IDIyNCAwIDAtMTI4ek0xNDQgMTkyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sUmplPW5ILEJqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50cyIsaWNvbjpbNTc2LDUxMixbXSwiZTU4MiIsIk01MzkuOSAzNTJsLTk1LjYgMC04LjQtNjYuMWMtMi45LTIzLjItMTUuOS00My45LTM1LjQtNTYuOEwyNTIuMiAxMzEuNWMtMTgtMTEuOS0zOS43LTE1LjctNjAuMS0xMS41IDIuNS00LjMgNS45LTcuOSAxMC4xLTEwLjdMMzUwLjYgMTEuNmMxMC43LTcgMjQuNS03IDM1LjIgMGwxNDguNCA5Ny43YzcuOCA1LjEgMTMgMTMuNCAxNC4yIDIyLjdsMjMuMyAxODRjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2ek00LjggNDc2bDIzLjMtMTg0YzEuMi05LjMgNi4zLTE3LjYgMTQuMi0yMi43bDE0OC40LTk3LjdjMTAuNy03IDI0LjUtNyAzNS4yIDBsMTQ4LjQgOTcuN2M3LjggNS4xIDEzIDEzLjQgMTQuMiAyMi43bDIzLjMgMTg0YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNmwtNDkuNyAwYy0xMS4yIDAtMjEuNS01LjgtMjcuMy0xNS40bC03Ny0xMjYuN2MtMS43LTIuOC00LjgtNC42LTguMS00LjYtNS4zIDAtOS41IDQuMy05LjUgOS41bDAgMTA1LjJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzYuNSA1MTJjLTE5LjMgMC0zNC4yLTE2LjktMzEuNy0zNnoiXX0sZmc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibXVnLWhvdCIsaWNvbjpbNTc2LDUxMixbOTc0OV0sImY3YjYiLCJNMTUyLTE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNCAwIDM4LjkgMjMuNCA1OS40IDM5LjEgNzMuMWwxLjEgMWMxNi4zIDE0LjMgMjMuOCAyMS44IDIzLjggMzcuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzguOS0yMy40LTU5LjQtMzkuMS03My4xbC0xLjEtMUMxODMuNSAzMS43IDE3NiAyNC4xIDE3NiA4IDE3Ni01LjMgMTY1LjMtMTYgMTUyLTE2ek05NiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTkyYzAgNTMgNDMgOTYgOTYgOTZsMTkyIDBjNDEuOCAwIDc3LjQtMjYuNyA5MC41LTY0bDUuNSAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzUxOC43IDE5MiA0NDggMTkyTDk2IDE5MnpNNDQ4IDM4NGwwLTEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NHpNMjg4IDhjMC0xMy4zLTEwLjctMjQtMjQtMjRTMjQwLTUuMyAyNDAgOGMwIDM4LjkgMjMuNCA1OS40IDM5LjEgNzMuMWwxLjEgMWMxNi4zIDE0LjMgMjMuOCAyMS44IDIzLjggMzcuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzguOS0yMy40LTU5LjQtMzkuMS03My4xbC0xLjEtMUMyOTUuNSAzMS43IDI4OCAyNC4xIDI4OCA4eiJdfSxvSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib2x0IixpY29uOls0NDgsNTEyLFs5ODg5LCJ6YXAiXSwiZjBlNyIsIk0zMzguOC05LjljMTEuOSA4LjYgMTYuMyAyNC4yIDEwLjkgMzcuOEwyNzEuMyAyMjQgNDE2IDIyNGMxMy41IDAgMjUuNSA4LjQgMzAuMSAyMS4xcy43IDI2LjktOS42IDM1LjVsLTI4OCAyNDBjLTExLjMgOS40LTI3LjQgOS45LTM5LjMgMS4zcy0xNi4zLTI0LjItMTAuOS0zNy44TDE3Ni43IDI4OCAzMiAyODhjLTEzLjUgMC0yNS41LTguNC0zMC4xLTIxLjFzLS43LTI2LjkgOS42LTM1LjVsMjg4LTI0MGMxMS4zLTkuNCAyNy40LTkuOSAzOS4zLTEuM3oiXX0sSGplPW9ILHFqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXIiLGljb246WzMyMCw1MTIsW10sImU1MTYiLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTkyeiJdfSxWamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGxhbmUiLGljb246WzY0MCw1MTIsW10sImU1OGYiLCJNMTQ0IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAzMjBjMCAzMi41IDEyLjEgNjIuMSAzMiA4NC43bDAgMjcuM2MwIDcuMSAuOSAxNC4xIDIuNyAyMC43TDE5MiA0ODAgODMuOSA1MDdDNzMuOCA1MDkuNiA2NCA1MDEuOSA2NCA0OTEuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNzQtNTkuMiAwLTU3LjYtMTIyLjEgNDguOEMxMS40IDM5NS40IDAgMzg3LjcgMCAzNzYuNGwwLTQ0YzAtOCAzLTE1LjYgOC4zLTIxLjVMMTQ0IDE2MS42IDE0NCA0OHptMjI0IDgwbDE5MiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTYwYzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMtMTkuNC0xNC42LTMyLTM3LjgtMzItNjRsMC0xNjBjMC00NC4yIDM1LjgtODAgODAtODB6bTAgMTc2bDE5MiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyem0wIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGpqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctaGVhcnQiLGljb246WzU3Niw1MTIsW10sImY0YmUiLCJNMjc5LjYgMzFDMjY1LjUgMTEuNSAyNDIuOSAwIDIxOC45IDAgMTc3LjUgMCAxNDQgMzMuNSAxNDQgNzQuOWwwIDIuNGMwIDY0LjQgODIgMTMzLjQgMTIyLjIgMTYzLjMgMTMgOS43IDMwLjUgOS43IDQzLjUgMCA0MC4yLTMwIDEyMi4yLTk4LjkgMTIyLjItMTYzLjNsMC0yLjRjMC00MS40LTMzLjUtNzQuOS03NC45LTc0LjktMjQgMC00Ni42IDExLjUtNjAuNyAzMUwyODggNDIuNyAyNzkuNiAzMXpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LGhsPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJvdGF0ZS1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjM0LCJhcnJvdy1sZWZ0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1iYWNrIiwiYXJyb3ctcm90YXRlLWJhY2t3YXJkIiwidW5kbyJdLCJmMGUyIiwiTTI1NiA2NGMtNTYuOCAwLTEwNy45IDI0LjctMTQzLjEgNjRsNDcuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBTNjQgMTQuMyA2NCAzMmwwIDU0LjdDMTEwLjkgMzMuNiAxNzkuNSAwIDI1NiAwIDM5Ny40IDAgNTEyIDExNC42IDUxMiAyNTZTMzk3LjQgNTEyIDI1NiA1MTJjLTg3IDAtMTYzLjktNDMuNC0yMTAuMS0xMDkuNy0xMC4xLTE0LjUtNi42LTM0LjQgNy45LTQ0LjZzMzQuNC02LjYgNDQuNiA3LjljMzQuOCA0OS44IDkyLjQgODIuMyAxNTcuNiA4Mi4zIDEwNiAwIDE5Mi04NiAxOTItMTkyUzM2MiA2NCAyNTYgNjR6Il19LFVqZT1obCxXamU9aGwsR2plPWhsLFlqZT1obCxsSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWFuZ3J5IixpY29uOls1MTIsNTEyLFsxMjg1NDQsImFuZ3J5Il0sImY1NTYiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMjU2IDM2OGMyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MHMtNzUuNyAxOS44LTk3LjUgNTBjLTcuNyAxMC44LTUuMyAyNS44IDUuNSAzMy41czI1LjggNS4zIDMzLjUtNS41YzEzLjEtMTguMiAzNC40LTMwIDU4LjUtMzB6bS04MC05NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLS4zIDkuNyAzLjJjMTAuNSAzLjUgMjEuOC0yLjIgMjUuMy0xMi42cy0yLjItMjEuOC0xMi42LTI1LjNsLTk2LTMyYy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zbDI4LjkgOS42Yy00LjEgNS40LTYuNiAxMi4xLTYuNiAxOS40IDAgMTcuNyAxNC4zIDMyIDMyIDMyem0xOTItMzJjMC03LjMtMi40LTE0LTYuNi0xOS40bDI4LjktOS42YzEwLjUtMy41IDE2LjEtMTQuOCAxMi42LTI1LjNzLTE0LjgtMTYuMS0yNS4zLTEyLjZsLTk2IDMyYy0xMC41IDMuNS0xNi4xIDE0LjgtMTIuNiAyNS4zczE0LjggMTYuMSAyNS4zIDEyLjZsOS43LTMuMiAwIC4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LFpqZT1sSCxYamU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVyc3QiLGljb246WzUxMiw1MTIsW10sImU0ZGMiLCJNMzcuNiA0LjJDMjgtMi4zIDE1LjItMS4xIDcgN1MtMi4zIDI4IDQuMiAzNy42bDExMiAxNjMuMy05OS42IDMyLjNDNi43IDIzNi40IDAgMjQ1LjYgMCAyNTZzNi43IDE5LjYgMTYuNiAyMi44bDEwMy4xIDMzLjQtNTIuOSAxMDAuNmMtNC45IDkuMy0zLjIgMjAuNyA0LjMgMjguMXMxOC44IDkuMiAyOC4xIDQuM2wxMDAuNi01Mi45IDMzLjQgMTAzLjFjMy4yIDkuOSAxMi40IDE2LjYgMjIuOCAxNi42czE5LjYtNi43IDIyLjgtMTYuNmwzMy40LTEwMy4xIDEwMC42IDUyLjljOS4zIDQuOSAyMC43IDMuMiAyOC4xLTQuM3M5LjItMTguOCA0LjMtMjguMWwtNTIuOS0xMDAuNiAxMDMuMS0zMy40YzkuOS0zLjIgMTYuNi0xMi40IDE2LjYtMjIuOHMtNi43LTE5LjYtMTYuNi0yMi44bC0xMDYuNS0zNC41IDI1LjctNzAuNGMzLjItOC44IDEtMTguNi01LjYtMjUuMnMtMTYuNC04LjgtMjUuMi01LjZsLTcwLjQgMjUuNy0zNC41LTEwNi41QzI3NS42IDYuNyAyNjYuNCAwIDI1NiAwcy0xOS42IDYuNy0yMi44IDE2LjZMMjAwLjkgMTE2LjIgMzcuNiA0LjJ6Il19LEtqZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ6IixpY29uOlszODQsNTEyLFsxMjJdLCI1YSIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDMyMCAwYzEyLjQgMCAyMy43IDcuMiAyOSAxOC40czMuNiAyNC41LTQuNCAzNC4xTDEwMC4zIDQxNiAzNTIgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTIuNCAwLTIzLjctNy4yLTI5LTE4LjRzLTMuNi0yNC41IDQuNC0zNC4xTDI4My43IDk2IDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6Il19LGNIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmRhZ2UiLGljb246WzU3Niw1MTIsWzEyOTY1NywiYmFuZC1haWQiXSwiZjQ2MiIsIk00NjQgNDE2bDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMCAzMjB6TTQxNiA5NmwtMjU2IDAgMCAzMjAgMjU2IDAgMC0zMjB6TTY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMzIwLTQ4IDB6TTIxNiAyMDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjE2IDMwNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxRamU9Y0gsSmplPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU1NiIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LGVVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXMtc2lkZSIsaWNvbjpbNjQwLDUxMixbXSwiZTgxZCIsIk00ODAgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGwwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNS42IDBjLTEzLjIgMzcuMy00OC42IDY0LTkwLjQgNjRzLTc3LjMtMjYuNy05MC40LTY0bC0xMzkuMSAwYy0xMy4yIDM3LjMtNDguNyA2NC05MC40IDY0cy03Ny4yLTI2LjctOTAuNC02NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDgwIDB6TTE2MCAzNjhhNDggNDggMCAxIDAgMCA5NiA0OCA0OCAwIDEgMCAwLTk2em0zMjAgMGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6bTAtMzA0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6TTI0OCAyMjRsMTA0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTA0IDAgMCAxNjB6TTk2IDY0Qzc4LjMgNjQgNjQgNzguMyA2NCA5NmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwIDAtMTYwLTEwNCAweiJdfSx0VWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVncyIsaWNvbjpbNTc2LDUxMixbXSwiZTRkMCIsIk00NDcuNSAxNzQuNmM4LjgtOC40IDIyLjctOC45IDMyLjItLjhzMTEgMjEuOSA0LjEgMzEuOWwtMS41IDEuOS0yMyAyNi43YzI2LjcgMTMuNSA0Ni4zIDM5LjEgNTEuNCA2OS42bDI1LjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDMyIDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1LjMgMGMtNy42IDQ1LjQtNDcuMSA4MC05NC43IDgwcy04Ny0zNC42LTk0LjctODBMMjk2IDQzMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtMzItMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNS4zIDBjNS4xLTMwLjUgMjQuNy01Ni4xIDUxLjQtNjkuNmwtMjIuOS0yNi43Yy04LjYtMTAuMS03LjUtMjUuMiAyLjYtMzMuOHMyNS4yLTcuNSAzMy44IDIuNmwyOS44IDM0LjggMjkuOC0zNC44IDEuNy0xLjh6bS0yNTYtMTkyYzguOC04LjQgMjIuNy04LjkgMzIuMi0uOHMxMSAyMS45IDQuMSAzMS45bC0xLjUgMS45LTIzIDI2LjdDMjMwIDU1LjkgMjQ5LjUgODEuNSAyNTQuNyAxMTJsMjUuMyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgMzIgMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjUuMyAwYy03LjYgNDUuNC00Ny4xIDgwLTk0LjcgODBzLTg3LTM0LjYtOTQuNy04MEw0MCAyNDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTMyLTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjUuMyAwQzcwLjUgODEuNSA5MCA1NS45IDExNi43IDQyLjRMOTMuOCAxNS42Qzg1LjIgNS42IDg2LjMtOS42IDk2LjQtMTguMnMyNS4yLTcuNSAzMy44IDIuNmwyOS44IDM0LjggMjkuOC0zNC44IDEuNy0xLjh6Il19LGRIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlZXItbXVnLWVtcHR5IixpY29uOls1NzYsNTEyLFsiYmVlciJdLCJmMGZjIiwiTTY0IDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDI4OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYgNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEwOC4yYzAgMjQuMi0xMy43IDQ2LjQtMzUuNCA1Ny4yTDQ0OCAzNzEuOCA0NDggMzg0YzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDY0IDgwek00NDggMzAwLjJsNjQtMzIgMC0xMDguMi02NCAwIDAgMTQwLjJ6TTE5MiAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHptODggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4em04OCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6Il19LGFVZT1kSCxpVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZSIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxyVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhcGxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTVhZiIsIk02NDAgMjk5LjNMNjQwIDQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDAgMC00OC0zNTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTYuNi0zMC4yLTUuNGMtMTkuNi0zLjUtMzMuOC0yMC41LTMzLjgtNDAuNCAwLTguOSAyLjktMTcuNSA4LjItMjQuNmwzNS42LTQ3LjVjMzIuOC00My44IDg0LjQtNjkuNiAxMzkuMS02OS42IDI3IDAgNTMuNiA2LjMgNzcuOCAxOC40TDU4Ni45IDIxMy41QzYxOS41IDIyOS43IDY0MCAyNjMgNjQwIDI5OS4zek00NDggMzA0bDAtMTYtMzIwLTU3LjEgMCA3My4xIDMyMCAweiJdfSxzVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1MTEiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LG5VZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuYWlyYS1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMWY2IiwiTTEyMi42IDQ2LjNjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzY0IDQ5LjkgNjQgNjRsMCAxOTItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQgODkuNSAwIDEwNy44IDE2MS44YzcuOCAxMS43IDIyLjQgMTcgMzUuOSAxMi45UzM4NCA0NjIuMSAzODQgNDQ4bDAtMTQ0IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTItNTcuNSAwLTEzOS44LTIwOS43ek0yOTQuNSAzMDRsMjUuNSAwIDAgMzguMy0yNS41LTM4LjN6TTE4NS41IDI1NmwtNTcuNSAwIDAtODYuMyA1Ny41IDg2LjN6Il19LHFtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpZmkiLGljb246WzU3Niw1MTIsWyJ3aWZpLTMiLCJ3aWZpLXN0cm9uZyJdLCJmMWViIiwiTTI4OCA5NmMtOTAuOSAwLTE3My4yIDM2LTIzMy43IDk0LjYtMTIuNyAxMi4zLTMzIDEyLTQ1LjItLjdzLTEyLTMzIC43LTQ1LjJDODEuNyA3NC45IDE3OS45IDMyIDI4OCAzMlM0OTQuMyA3NC45IDU2Ni4zIDE0NC43YzEyLjcgMTIuMyAxMyAzMi42IC43IDQ1LjJzLTMyLjYgMTMtNDUuMiAuN0M0NjEuMiAxMzIgMzc4LjkgOTYgMjg4IDk2ek0yNDAgNDMyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAzMjYuMmMtMTEuNyAxMy4zLTMxLjkgMTQuNS00NS4yIDIuOHMtMTQuNS0zMS45LTIuOC00NS4yQzE2MSAyMzcuNCAyMjEuMSAyMDggMjg4IDIwOHMxMjcgMjkuNCAxNjggNzUuOGMxMS43IDEzLjMgMTAuNCAzMy41LTIuOCA0NS4ycy0zMy41IDEwLjQtNDUuMi0yLjhDMzc4LjYgMjkyLjkgMzM1LjggMjcyIDI4OCAyNzJzLTkwLjYgMjAuOS0xMjAgNTQuMnoiXX0sb1VlPXFtLGxVZT1xbSxkOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1jaGVjay1kb2xsYXIiLGljb246WzUxMiw1MTIsWyJtb25leS1jaGVjay1hbHQiXSwiZjUzZCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMjk2IDI4OGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bS0yNC04OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xNDggMTQ0YzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Qzk0LjUgMjY4IDc2IDI0Ni4xIDc2IDIyMC41IDc2IDE5MS43IDk5LjIgMTY4LjMgMTI4IDE2OGwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxjVWU9ZDgscEg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLWxvdy12aXNpb24iLGljb246WzU3Niw1MTIsWyJsb3ctdmlzaW9uIl0sImYyYTgiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNC05Ni40YzIuNy0yLjQgNS40LTQuOCA4LTcuMiA0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xIDMuMy03LjkgMy4zLTE2LjcgMC0yNC42LTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjEtNDcuMS00My43LTExMS44LTgwLjYtMTkyLjYtODAuNi01Ni44IDAtMTA1LjYgMTguMi0xNDYgNDQuMkw0MS0yNC45ek0yMDQuNSAxMzguN2MyMy41LTE2LjggNTIuNC0yNi43IDgzLjUtMjYuNyA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDMxLjEtOS45IDU5LjktMjYuNyA4My41bC0zNC43LTM0LjdjMTIuNy0yMS40IDE3LTQ3LjcgMTAuMS03My43LTEzLjctNTEuMi02Ni40LTgxLjYtMTE3LjYtNjcuOS04LjYgMi4zLTE2LjcgNS43LTI0IDEwbC0zNC43LTM0Ljd6TTg4IDE1Ny45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDMyOC4yIDQ2NmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMODggMTU3Ljl6TTQ1LjcgMjUxLjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlMMTgxLjkgNDU1LjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ1LjcgMjUxLjN6Il19LGRVZT1wSCxoSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtdXAiXSwiZjBhYSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTctMzc3bDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTM5LTM5IDAgMTUwLjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNTAuMS0zOSAzOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0scFVlPWhILGhVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYW1lcmEtcmV0cm8iLGljb246WzUxMiw1MTIsWzEyODI0N10sImYwODMiLCJNMCA0MTZsMC0yMDggMTM2LjIgMGMxMy41LTIwLjIgMzItMzYuOCA1My43LTQ4TDAgMTYwIDAgMTI1LjdjMC0zNS4zIDI4LjctNjQgNjQtNjRsLjEgMEM2NS4zIDQ1LjEgNzkuMSAzMiA5NiAzMmwzMiAwYzE2LjkgMCAzMC43IDEzLjEgMzEuOSAyOS43bDMyLjEgMCA1MS4yLTIzLjhjOC40LTMuOSAxNy42LTYgMjYuOS02TDQ0OCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0LTE5MCAwYzIxLjcgMTEuMiA0MC4yIDI3LjggNTMuNyA0OGwxMzYuMiAwIDAgMjA4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTI1NiAxOTJhOTYuMSA5Ni4xIDAgMSAwIDAgMTkyLjEgOTYuMSA5Ni4xIDAgMSAwIDAtMTkyLjF6Il19LHVVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXBzdWxlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjQ2YiIsIk05NiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMi05NiAwIDAtMTEyem0tNjQgMGwwIDI4OGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEybDAtMTA1LjggMTE2LjMgMTY5LjVjMzUuNSA1MS43IDEwNS4zIDY0LjMgMTU2IDI4LjFzNjMtMTA3LjUgMjcuNS0xNTkuMkw0MjcuMyAxNDUuM2MtMzUuNS01MS43LTEwNS4zLTY0LjMtMTU2LTI4LjEtNS42IDQtMTAuNyA4LjQtMTUuMyAxMy4xbDAtMTguM0MyNTYgNTAuMSAyMDUuOSAwIDE0NCAwUzMyIDUwLjEgMzIgMTEyek0yOTYuNiAyNDAuMmMtMTYtMjMuMy0xMC01NS4zIDExLjktNzEgMjEuMi0xNS4xIDUwLjUtMTAuMyA2NiAxMi4ybDY3IDk3LjYtNzkuOSA1NS45LTY1LTk0Ljh6Il19LGZVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb28iLGljb246WzUxMiw1MTIsWzEyODE2OV0sImYyZmUiLCJNMjY4LjkgLjljLTUuNS0uNy0xMSAxLjQtMTQuNSA1LjdzLTQuNiAxMC4xLTIuOCAxNS40YzIuOCA4LjIgNC4zIDE2LjkgNC4zIDI2LjEgMCA0NC4xLTM1LjcgNzkuOS03OS44IDgwTDE2MCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0IDAgMTkuMSA4LjQgMzYuMyAyMS43IDQ4TDEwNCAyNDBjLTM5LjggMC03MiAzMi4yLTcyIDcyIDAgMjMuMiAxMSA0My44IDI4IDU3LTM0LjEgNS43LTYwIDM1LjMtNjAgNzEgMCAzOS44IDMyLjIgNzIgNzIgNzJsMzY4IDBjMzkuOCAwIDcyLTMyLjIgNzItNzIgMC0zNS43LTI1LjktNjUuMy02MC03MSAxNy0xMy4yIDI4LTMzLjggMjgtNTcgMC0zOS44LTMyLjItNzItNzItNzJsLTEzLjcgMGMxMy4zLTExLjcgMjEuNy0yOC45IDIxLjctNDggMC0zNS4zLTI4LjctNjQtNjQtNjRsLTUuNSAwYzMuNS0xMCA1LjUtMjAuOCA1LjUtMzIgMC00OC42LTM2LjItODguOC04My4xLTk1LjF6TTE5MiAyNTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem02NCAxMDguM2MwIDIuNC0uNyA0LjgtMi4yIDYuNy04LjIgMTAuNS0zOS41IDQ1LTkzLjggNDVzLTg1LjYtMzQuNi05My44LTQ1Yy0xLjUtMS45LTIuMi00LjMtMi4yLTYuNyAwLTYuOCA1LjUtMTIuMyAxMi4zLTEyLjNsMTY3LjQgMGM2LjggMCAxMi4zIDUuNSAxMi4zIDEyLjN6Il19LHVIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZSIsaWNvbjpbNTEyLDUxMixbMTI4MjY1LCJ2b2x1bWUtbWVkaXVtIl0sImY2YTgiLCJNNDggMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDk2IDE2MCA0OCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6TTQ0MS4xIDEwN2MtMTAuMy04LjQtMjUuNC02LjgtMzMuOCAzLjVzLTYuOCAyNS40IDMuNSAzMy44QzQ0My4zIDE3MC43IDQ2NCAyMTAuOSA0NjQgMjU2cy0yMC43IDg1LjMtNTMuMiAxMTEuOGMtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNWM0My4yLTM1LjIgNzAuOS04OC45IDcwLjktMTQ5cy0yNy43LTExMy44LTcwLjktMTQ5em0tNjAuNSA3NC41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDMzYxLjEgMjI3LjYgMzY4IDI0MSAzNjggMjU2cy02LjkgMjguNC0xNy43IDM3LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNDAyLjEgMzEyLjkgNDE2IDI4Ni4xIDQxNiAyNTZzLTEzLjktNTYuOS0zNS41LTc0LjV6Il19LG1VZT11SCxnVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxldmF0b3IiLGljb246WzUxMiw1MTIsW10sImUxNmQiLCJNMjkyLjctNC43bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTNDM4LjUtMzIgNDMyLTMyTDMwNC0zMmMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40em0tMTYwLTIyLjZsLTY0IDY0Yy00LjYgNC42LTUuOSAxMS41LTMuNSAxNy40UzczLjUgNjQgODAgNjRsMTI4IDBjNi41IDAgMTIuMy0zLjkgMTQuOC05LjlzMS4xLTEyLjktMy41LTE3LjRsLTY0LTY0Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTk2IDk2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODAgNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMTkyIDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0zMi0xMjhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sYlVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZyIsaWNvbjpbNTEyLDUxMixbMTI3OTkxXSwiZjAyYiIsIk0zMi41IDk2bDAgMTQ5LjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsMTkyIDE5MmMyNSAyNSA2NS41IDI1IDkwLjUgMEw0ODMuMiAzMzMuM2MyNS0yNSAyNS02NS41IDAtOTAuNWwtMTkyLTE5MkMyNzkuMiAzOC43IDI2MyAzMiAyNDYgMzJMOTYuNSAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTExMiAxNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHZVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1taW51cyIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6Il19LGZIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvd24tbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctYWx0LWRvd24iXSwiZjMwOSIsIk0xMzcuNCA1MzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMwMC45IDM1MiAyODggMzUybC02NCAwIDAtMzM2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMzNi02NCAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44Uy4yIDM5Ny41IDkuNCA0MDYuNmwxMjggMTI4eiJdfSx5VWU9ZkgseFVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXBhY3QtZGlzYyIsaWNvbjpbNTEyLDUxMixbMTI4MTkxLDEyODE5MiwxMjg0NDBdLCJmNTFmIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiAzMmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bS05Ni0zMmE5NiA5NiAwIDEgMCAxOTIgMCA5NiA5NiAwIDEgMCAtMTkyIDB6bS01Ni0xNmMwLTMyLjQgMTYuMy02Ni42IDQyLjgtOTMuMlMyMDcuNiAxMDQgMjQwIDEwNGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtNDcuOSAwLTkzLjcgMjMuNS0xMjcuMSA1Ni45UzU2IDE5Mi4xIDU2IDI0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0eiJdfSx3VWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VpdGNhc2Utcm9sbGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZjVjMSIsIk0xNDQgMjRjMC00LjQgMy42LTggOC04bDgwIDBjNC40IDAgOCAzLjYgOCA4bDAgNzItOTYgMCAwLTcyek0zMjAgOTZsLTMyIDAgMC03MmMwLTMwLjktMjUuMS01Ni01Ni01NmwtODAgMEMxMjEuMS0zMiA5Ni02LjkgOTYgMjRsMCA3Mi0zMiAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yODhjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTEyMCAyMDhsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDEyOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LG1IPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stcXVyYW4iLGljb246WzQ0OCw1MTIsWyJxdXJhbiJdLCJmNjg3IiwiTTY0IDUxMmwyODggMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzIwYzAtNTMtNDMtOTYtOTYtOTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzMzZjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zTDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwek0zNTIgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMCAwLTY0IDI1NiAwek0yNzMuMSAxNDQuNGMyLjUtNi4xIDExLjItNi4xIDEzLjcgMGwxMC4zIDI0LjggMjYuOCAyLjFjNi42IC41IDkuMiA4LjcgNC4yIDEzTDMwNy44IDIwMS45IDMxNCAyMjhjMS41IDYuNC01LjUgMTEuNS0xMS4xIDguMWwtMjIuOS0xNC0yMi45IDE0Yy01LjYgMy40LTEyLjYtMS42LTExLjEtOC4xbDYuMi0yNi4xLTIwLjQtMTcuNWMtNS00LjMtMi4zLTEyLjUgNC4yLTEzbDI2LjgtMi4xIDEwLjMtMjQuOHpNMTAwIDE5MmMwLTY4LjUgNTUuNS0xMjQgMTI0LTEyNCAyMy44IDAgNDYuMSA2LjcgNjUgMTguNCA0LjggMi45IDYuOSA4LjggNSAxNC4xcy03LjEgOC42LTEyLjcgOGMtMy4xLS4zLTYuMi0uNS05LjQtLjUtNDYuNCAwLTg0IDM3LjYtODQgODRzMzcuNiA4NCA4NCA4NGMzLjIgMCA2LjMtLjIgOS40LS41IDUuNi0uNiAxMC44IDIuNyAxMi43IDhzLS4zIDExLjItNSAxNC4xYy0xOC45IDExLjctNDEuMiAxOC40LTY1IDE4LjQtNjguNSAwLTEyNC01NS41LTEyNC0xMjR6Il19LE1VZT1tSCx6VWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImYzZGQiLCJNNTM1LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDQxIDUzNy4xYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDE0MS41IDM2OC42Qzg5LjIgMzEwLjUgNTEuNiAyMzguOCAzNC44IDE1OS40IDE4LjcgODMuMSA3My45IDIwLjYgMTM4LjUgMi45bDUuNS0xLjVjMTkuNy01LjQgNDAuMyA0LjcgNDguMSAyMy41bDQwLjUgOTcuM2M2LjkgMTYuNSAyLjEgMzUuNi0xMS44IDQ3bC00NC4xIDM2LjFjMTIuOSAyOC41IDI5LjYgNTQuOCA0OS41IDc4LjVMNTM1LTI0Ljl6bS0xNTAuNCA1MzRjLTYzLTEzLjQtMTIxLjMtMzkuOC0xNzEuNy03Ni4zTDI5Ny44IDM0OGMxMi4yIDguMiAyNSAxNS42IDM4LjMgMjIuMkwzNzQuNyAzMjNjMTEuMy0xMy45IDMwLjQtMTguNiA0Ny0xMS44TDUxOSAzNTEuOGMxOC44IDcuOCAyOC45IDI4LjQgMjMuNSA0OC4xbC0xLjUgNS41Yy0xNy42IDY0LjYtODAuMiAxMTkuOC0xNTYuNCAxMDMuN3oiXX0sa1VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTY0IiwiTTI4OCAzMmwtNzYuMyAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkw2NS40IDQyMC41QzU3LjkgNDUwLjcgODAuOCA0ODAgMTEyIDQ4MGwyMDkuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0yOC42IDYuMi01NS43IDE3LjQtODAtLjUgMC0xIDAtMS41IDAtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDljMzUuMi0zOS45IDg2LjctNjUgMTQ0LTY1IDkgMCAxNy44IC42IDI2LjUgMS44bC0zMi0xMjkuMkM0ODMuNCA1Mi4xIDQ1Ny44IDMyIDQyOC4zIDMybC03Ni40IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sU1VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob3AtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhNSIsIk0yMS41IDE4MS4xTDc4LjMgNjcuNEM4OS4yIDQ1LjcgMTExLjMgMzIgMTM1LjYgMzJsMzA0LjkgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw1NS42IDExMS4xYy04LjItMS42LTE2LjYtMi41LTI1LjItMi41LTUzLjcgMC05OS43IDMzLjEtMTE4LjcgODBsLTU3LjMgMCAwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTc2LjFjLTI2LjgtMS45LTQ4LTI0LjMtNDgtNTEuNiAwLTggMS45LTE2IDUuNS0yMy4yek0xMjggMjU2bDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTItMTYwIDB6bTQzMiA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sZ0g9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW1hZ2UtcG9ydHJhaXQiLGljb246WzM4NCw1MTIsWyJwb3J0cmFpdCJdLCJmM2UwIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNODAgMzY4YzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgwek0xOTIgMjQ4YTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyeiJdfSxDVWU9Z0gsX1VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMCAwIDMyLjJjMTMuOCAuNiAyNy4yIDIuOCA0MCA2LjRsMCA1MC43Yy0xNC44LTYtMzEtOS4zLTQ4LTkuMy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLS40IC4zLS43IC42LTEuMSAxLTE3LjMtMjUtNDYuMi00MS4zLTc4LjktNDEuMy01MyAwLTk2IDQzLTk2IDk2bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTRjMC0zOC44LTI2LjQtNzIuNi02NC04MmwwLTExMiA0MCAwIDAtNjQtOCAwQzE0LjMgOTYgMCA4MS43IDAgNjR6bTQyNCA2OC42bDAtMzYuNi04MCAwIDAgNjQgMTguOCAwYzE4LjItMTIuOCAzOC45LTIyLjIgNjEuMi0yNy40ek0yMTYgOTZsMCA2NCA4MCAwIDAtNjQtODAgMHptLTQ4IDBsLTgwIDAgMCA2NCA4MCAwIDAtNjR6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LFRVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW1tZXIiLGljb246WzY0MCw1MTIsWzEyODI5Nl0sImY2ZTMiLCJNMjQ2LjkgMTguM0wyNzEgMy44YzIxLjYtMTMgNDYuMy0xOS44IDcxLjUtMTkuOCAzNi44IDAgNzIuMiAxNC42IDk4LjIgNDAuN2w2My45IDYzLjljMTUgMTUgMjMuNCAzNS40IDIzLjQgNTYuNmwwIDMwLjkgMTkuNyAxOS43IDAgMGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHMxNS42IDQwLjkgMCA1Ni42bC02NCA2NGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZMNDY0IDI0MCA0MzMuMSAyNDBjLTIxLjIgMC00MS42LTguNC01Ni42LTIzLjRsLTQ5LjEtNDkuMWMtMTUtMTUtMjMuNC0zNS40LTIzLjQtNTYuNmwwLTEyLjdjMC0xMS4yLTUuOS0yMS43LTE1LjUtMjcuNGwtNDEuNi0yNWMtMTAuNC02LjItMTAuNC0yMS4yIDAtMjcuNHpNNTAuNyA0MDIuN2wyMjIuMS0yMjIuMSA5MC41IDkwLjUtMjIyLjEgMjIyLjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNXoiXX0sYkg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtMS05IixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLXVwIl0sImYxNjMiLCJNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2ek00MTguNyAzOGMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTk2YzAtMTAuMy00LjktMTkuOS0xMy4zLTI2ek0zNjUuMSA0MzAuNmMtOS42IDE0LjgtNS40IDM0LjYgOS40IDQ0LjNzMzQuNiA1LjQgNDQuMy05LjRsNDIuMS02NC45YzEyLjQtMTkuMiAxOS4xLTQxLjYgMTkuMS02NC41IDAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgMzYuMSAyMy45IDY2LjcgNTYuOCA3Ni42bC0xMS43IDE4ek0zNzYgMzM2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LExVZT1iSCwkVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3Mta25pZ2h0IixpY29uOlszODQsNTEyLFs5ODIyXSwiZjQ0MSIsIk0xOTItMzJjMTA2IDAgMTkyIDg2IDE5MiAxOTJsMCAxMzMuNWMwIDE3LTYuOCAzMy4yLTE4LjcgNDUuMkwzMjAgMzg0IDM3MC44IDQzNC43YzguNSA4LjUgMTMuMiAyMCAxMy4yIDMyIDAgMjUtMjAuMyA0NS4yLTQ1LjIgNDUuM0w0NS4zIDUxMmMtMjUgMC00NS4yLTIwLjMtNDUuMi00NS4zIDAtMTIgNC44LTIzLjUgMTMuMi0zMkw2NCAzODQgNjQgMzQ5LjRjMC0xOC43IDguMi0zNi40IDIyLjMtNDguNmw4OS43LTc2LjgtNDggMC0xMi4xIDEyLjFjLTEyLjcgMTIuNy0zMCAxOS45LTQ4IDE5LjktMzcuNSAwLTY3LjktMzAuNC02Ny45LTY3LjlsMC04LjdjMC0yMi44IDguMi00NC45IDIzLjEtNjIuM0w5NiAzMiA5NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDB6TTE2MCA3MmEyNCAyNCAwIDEgMCAwIDQ4IDI0IDI0IDAgMSAwIDAtNDh6Il19LEFVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1mbG9vZC13YXRlci1jaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzY0MCw1MTIsW10sImU1MGYiLCJNMjg4LjUgMTEyYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6TTE0MS4yIDQ0LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsNTYgNTZjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTU2IDU2Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDI4LjctMjguNy04OS40IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsODkuNCAwLTI4LjctMjguN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6TTMzNi41IDExMmMwIDcxLjEtMzguNiAxMzMuMS05NiAxNjYuM2wwIDEyLjhjMjIuMSA0LjUgNDMuNCAxMy45IDYyLjQgMjguMiAyMi4xIDE2LjYgMjkuMSAxNi42IDUxLjIgMCAyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgNi45IDUuMiAxMi44IDkgMTggMTEuNyAuNiAuMyAxLjIgLjYgMS44IDEgNC4yIDIuMyA4LjUgNC42IDEyLjYgMS41IDYtNC41IDEyLjYtOCAxOS4zLTEwLjRsMC0xMTUuMiA0LjUgMGMxNS4yIDAgMjcuNS0xMi4zIDI3LjUtMjcuNSAwLTcuOS0zLjQtMTUuNS05LjQtMjAuN0w0NDQuNSAxMC41QzQzNi44IDMuNyA0MjYuOCAwIDQxNi41IDBzLTIwLjMgMy43LTI4IDEwLjVMMzI5LjkgNjEuOGM0LjMgMTYgNi42IDMyLjggNi42IDUwLjJ6bTMyIDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC00OHpNNDc1LjEgNDEyLjFjMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zUzI5MCAzOTEuOCAyNjYgMzczLjdjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdzLTUuOSAyNS42IDQuNyAzMy42YzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHptLTcxLjIgOTZjMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zUzI5MCA0ODcuOCAyNjYgNDY5LjdjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdzLTUuOSAyNS42IDQuNyAzMy42YzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOXoiXX0scDg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtcmlnaHQtZnJvbS1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJleHRlcm5hbC1saW5rIl0sImYwOGUiLCJNMzIwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODIuNyAwLTIwMS40IDIwMS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDQ0OCAxMDkuMyA0NDggMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJMMzIwIDB6TTgwIDk2QzM1LjggOTYgMCAxMzEuOCAwIDE3NkwwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwyNTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2TDgwIDQ0OGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmw4MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDk2eiJdfSxEVWU9cDgsRVVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tdXAtYWNyb3NzLWxpbmUiLGljb246WzUxMiw1MTIsW10sImU0YWYiLCJNMjY1LjQgMTA1LjRsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsOTYgOTZjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTQxLjQtNDEuNCAwIDExNC43IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgMTE0LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTk2IDk2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgNDAyLjcgOTYgMjg4IDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMjAgMCAwLTExNC43LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjN6TTQxNiAzMzZsMCAxNDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNDQgNjQgMHpNOTYgMTc2TDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNDQtNjQgMHoiXX0sdkg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxNiwiZ3Jpbi1iZWFtIl0sImY1ODIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0sUFVlPXZILHlIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3RhbmdsZS1hZCIsaWNvbjpbNTEyLDUxMixbImFkIl0sImY2NDEiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTQxNiAxODRsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjQtNy4xIDAtMTMuNS0zLjEtMTcuOS04LTEwLjIgNS4xLTIxLjggOC0zNC4xIDgtNDIgMC03Ni0zNC03Ni03NnMzNC03NiA3Ni03NmM5LjkgMCAxOS4zIDEuOSAyOCA1LjNsMC0yMS4zYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6bS00OCA5MmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0xNjAgMjA4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMiA0OCAwIDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwem0zMiA5NmwtNDggMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDE2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNHoiXX0sSVVlPXlILHhIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stdGFuYWtoIixpY29uOls0NDgsNTEyLFsidGFuYWtoIl0sImY4MjciLCJNMzUyIDUxMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC02Ni43QzEzLjQgMzc0LjcgMCAzNTYuOSAwIDMzNkwwIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzNTIgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzIwYzAgNTMtNDMgOTYtOTYgOTZ6bTMyLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNTYgMCAwIDY0IDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0xMTMuOSAyMjljLTEuMiAyLTEuOSA0LjItMS45IDYuNiAwIDYuOSA1LjYgMTIuNSAxMi41IDEyLjVsNTYuOSAwIDMwLjUgNDkuMmMyLjYgNC4yIDcuMiA2LjggMTIuMiA2LjhzOS42LTIuNiAxMi4yLTYuOGwzMC41LTQ5LjIgNTYuOSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTIuMy0uNi00LjYtMS45LTYuNmwtMjcuOC00NSAyNy44LTQ1YzEuMi0yIDEuOS00LjIgMS45LTYuNiAwLTYuOS01LjYtMTIuNS0xMi41LTEyLjVsLTU2LjkgMC0zMC41LTQ5LjJDMjMzLjYgNjYuNiAyMjkgNjQgMjI0IDY0cy05LjYgMi42LTEyLjIgNi44bC0zMC41IDQ5LjItNTYuOSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCAyLjMgLjYgNC42IDEuOSA2LjZsMjcuOCA0NS0yNy44IDQ1eiJdfSxOVWU9eEgsd0g9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG90LXR1Yi1wZXJzb24iLGljb246WzQ0OCw1MTIsWyJob3QtdHViIl0sImY1OTMiLCJNMjQwIDQwYzAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMjAzLjUgOTMuMSAxOTIgNjcuMiAxOTIgNDAgMTkyIDI2LjcgMjAyLjcgMTYgMjE2IDE2czI0IDEwLjcgMjQgMjR6TTAgMzM2bDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTkuNyAwYzguMSAwIDE2LjIgMS42IDIzLjggNC42bDEzNy4xIDU0LjhjNy42IDMgMTUuNiA0LjYgMjMuOCA0LjZMMzg0IDI1NmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzM2em05Ni0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTE1MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MHptMTA0LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzI4IDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMzE1LjUgOTMuMSAzMDQgNjcuMiAzMDQgNDAgMzA0IDI2LjcgMzE0LjcgMTYgMzI4IDE2ek02NCA0MGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0sRlVlPXdILE9VZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWhhbGYtZGFzaGVkIixpY29uOlszODQsNTEyLFtdLCJlNjk4IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjU2IDM4NCAwIDAtMTQ5LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTAgMzUybDAgNjQgNjQgMCAwLTY0LTY0IDB6TTY0IDUxMmwwLTY0LTY0IDBjMCAzNS4zIDI4LjcgNjQgNjQgNjR6bTMyIDBsODAgMCAwLTY0LTgwIDAgMCA2NHptMTEyIDBsODAgMCAwLTY0LTgwIDAgMCA2NHptMTEyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsLTY0IDAgMCA2NHptNjQtMTYwbC02NCAwIDAgNjQgNjQgMCAwLTY0eiJdfSxNSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvdXRkZW50IixpY29uOls0NDgsNTEyLFsiZGVkZW50Il0sImYwM2IiLCJNLjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwQzE0LjggOTYgLjQgODEuNyAuNCA2NHptMTkyIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TS40IDQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzg0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0uNyAyNjguNmMtOC4yLTYuNC04LjItMTguOSAwLTI1LjNsMTAxLjktNzkuM2MxMC41LTguMiAyNS44LS43IDI1LjggMTIuNmwwIDE1OC42YzAgMTMuMy0xNS4zIDIwLjgtMjUuOCAxMi42TC43IDI2OC42eiJdfSxSVWU9TUgsQlVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4LTY0IDAgMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek02MS4zIDUxLjJMMTQzLjkgMjQwIDc0LjEgMjQwIDIuNyA3Ni44Qy00LjQgNjAuNiAzIDQxLjggMTkuMiAzNC43UzU0LjIgMzUgNjEuMyA1MS4yem0yNyAyMjEuM2wtLjItLjUgOTUuOSAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDY5LjUgNDUzLjVDNDUuNSA0MjkuNSAzMiAzOTYuOSAzMiAzNjNsMC0yN2MwLTMyLjcgMjQuNi01OS43IDU2LjMtNjMuNXoiXX0sSFVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS12aXJ1cyIsaWNvbjpbNTEyLDUxMixbXSwiZTA2NCIsIk0zMjkuNyA0NDhjLTUuMSAwLTkuNyAzLjctOS43IDguOGwwIDcuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjMuNmMwLTEyLjYtNS4xLTI0LjUtMTMuMS0zNC4yLTMxLjgtMzguNy01MC45LTg4LjItNTAuOS0xNDIuMiAwLTEyMy43IDEwMC4zLTIyNCAyMjQtMjI0IDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMzUuOCA0Mi45YzcgOC40IDEwLjkgMTkuMSAxMC45IDMwLjEgMCAyNS45LTIxIDQ3LTQ3IDQ3bC0xIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zOC4zIDB6TTIyNCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAyMi45LTI3LjcgMzQuNC00My45IDE4LjItOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMxNi4yIDE2LjIgNC43IDQzLjktMTguMiA0My45LTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRjMjIuOSAwIDM0LjQgMjcuNyAxOC4yIDQzLjktOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzE2LjItMTYuMiA0My45LTQuNyA0My45IDE4LjIgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTIyLjkgMjcuNy0zNC40IDQzLjktMTguMiA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTE2LjItMTYuMi00LjctNDMuOSAxOC4yLTQzLjkgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTIyLjkgMC0zNC40LTI3LjctMTguMi00My45IDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTE2LjIgMTYuMi00My45IDQuNy00My45LTE4LjIgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS0zMiA4OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LHFVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzIixpY29uOls1MTIsNTEyLFsxMjk1MTddLCJmMTRlIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem01MC43LTE4Ni45TDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4yIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sVlVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1uaWIiLGljb246WzUxMiw1MTIsWzEwMDAxXSwiZjVhZCIsIk0zNjguNSAxOC4zbC01MC4xIDUwLjEgMTI1LjMgMTI1LjMgNTAuMS01MC4xYzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ0Ny43IDE4LjNjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwek0yNzkuMyA5Ny4ybC0uNSAuMS0xNDQuMSA0My4yYy0xOS45IDYtMzUuNyAyMS4yLTQyLjMgNDFMMy44IDQ0NS44Yy0yLjkgOC43LTEuOSAxOC4yIDIuNSAyNkwxNjEuNyAzMTYuNGMtMS4xLTQtMS42LTguMS0xLjYtMTIuNCAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDhjLTQuMyAwLTguNS0uNi0xMi40LTEuNkw0MC4zIDUwNS43YzcuOCA0LjQgMTcuMiA1LjQgMjYgMi41bDI2NC4zLTg4LjZjMTkuNy02LjYgMzUtMjIuNCA0MS00Mi4zbDQzLjItMTQ0LjEgLjEtLjUtMTM1LjUtMTM1LjV6Il19LGpVZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93cy1kb3duIixpY29uOls1MTIsNTEyLFtdLCJlNTgxIiwiTTE4NS41IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6bTI0OCA3Mmw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDB6TTYwLjMgMjkyLjZMMzcuMSA0NzZjLTIuNCAxOS4xIDEyLjUgMzYgMzEuNyAzNmwxNTQuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE3LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlsNjguMiAxMzYuNWM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDcxLjkgMGMxOS4zIDAgMzQuMi0xNi45IDMxLjctMzZMNDUyLjcgMjkyLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDI3MS45IDE2OS45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDc1LjQgMjY5LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3oiXX0sekg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9yd2FyZC1mYXN0IixpY29uOls1MTIsNTEyLFs5MTk3LCJmYXN0LWZvcndhcmQiXSwiZjA1MCIsIk0xOS44IDQ3Ny42YzEyIDUgMjUuNyAyLjIgMzQuOS02LjlMMjI0IDMwMS4zIDIyNCA0NDhjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOUw0NDggMzAxLjMgNDQ4IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTQ2LjctMTY5LjQtMTY5LjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzIyNCA1MS4xIDIyNCA2NEwyMjQgMjEwLjcgNTQuNiA0MS40Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMwIDUxLjEgMCA2NEwwIDQ0OGMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42eiJdfSxVVWU9ekgsV1VlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3AiLGljb246WzUxMiw1MTIsW10sImYxMjUiLCJNNDQ4IDEwOS4zbDU0LjYtNTQuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEw0MDIuNyA2NCAxNzYgNjQgMTc2IDEyOCAzMzguNyAxMjggMTI4IDMzOC43IDEyOCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMlM2NCAxNC4zIDY0IDMybDAgMzItMzIgMEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsMzIgMCAwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyMDggMCAwLTY0LTE2Mi43IDAgMjEwLjctMjEwLjcgMCAzMDYuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTI3NC43eiJdfSxrSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGlza2V5LWdsYXNzIixpY29uOls0NDgsNTEyLFsxMjkzNDcsImdsYXNzLXdoaXNrZXkiXSwiZjdhMCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE5MiAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAyNTZsMC0xNjAgMzIwIDAgMCAxNjAtMzIwIDB6Il19LEdVZT1rSCxZVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlIixpY29uOls0NDgsNTEyLFs5NjMyLDk3MjMsOTcyNCw2MTU5MF0sImYwYzgiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyeiJdfSxTSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4iLGljb246WzUxMiw1MTIsWzEyODUxMiwiZ3JpbiJdLCJmNTgwIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxaVWU9U0gsWFVlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY29udHJhY3QiLGljb246WzM4NCw1MTIsW10sImY1NmMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDY0Qzc0LjcgNjQgNjQgNzQuNyA2NCA4OHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNzAuMyAxNjBjLTExLjMgMC0yMS45IDUuMS0yOC45IDEzLjlMNjkuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04Ni4xIDAtMTYuMS01My42Yy00LjctMTUuNy0xOS4xLTI2LjQtMzUuNS0yNi40eiJdfSxLVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtdXAiLGljb246WzM4NCw1MTIsWzg5NjNdLCJmMTA2IiwiTTE2OS40IDEzNy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMTkyIDIwNS4zIDU0LjYgMzQyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjB6Il19LENIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc21pbGUiLGljb246WzUxMiw1MTIsWzEyODU3OCwic21pbGUiXSwiZjExOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY1LjQgMzIxLjljMjAuNCAyOCA1My40IDQ2LjEgOTAuNiA0Ni4xczcwLjItMTguMSA5MC42LTQ2LjFjNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUMzNTYuMyAzOTAgMzA5LjIgNDE2IDI1NiA0MTZzLTEwMC4zLTI2LTEyOS40LTY1LjljLTcuOC0xMC43LTUuNC0yNS43IDUuMy0zMy41czI1LjctNS40IDMzLjUgNS4zek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFFVZT1DSCxKVWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRyZXNzLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTQ0IiwiTTIwOCA0MC4xYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHpNOCAxNDQuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptOTIuNSAxNDEuNGwzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw2Ni42IDI1MS42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDB6TTY2LjYgMi43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDEwMC41IDIuN0M5MS4xLTYuNyA3Ni02LjcgNjYuNiAyLjd6TTM1MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMjQ2LjIgMzg0bDI1LjggMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDMyIDAgMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAyNS44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTQzLTEyOSA0OC4zIDY1LjFjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDNDM0IDEzMiAzOTQuMyAxMTIgMzUyIDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42bDQ4LjMtNjUuMS00MyAxMjljLTMuNSAxMC40IDQuMyAyMS4xIDE1LjIgMjEuMXoiXX0sZVdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpdmlkZSIsaWNvbjpbNDQ4LDUxMixbMTAxMzUsMjQ3XSwiZjUyOSIsIk0yMjQgNDhhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE2OCA0MDhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAweiJdfSx0V2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1mb3JrIixpY29uOls0NDgsNTEyLFtdLCJlMTNiIiwiTTgwIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTgwLTI0YzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjIuN2MtMjguMy0xMi4zLTQ4LTQwLjUtNDgtNzMuMyAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0zMiAwIDAgNzAuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zIDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNsMC03MC43LTMyIDBDOTguMSAyODggNDggMjM3LjkgNDggMTc2bDAtMjIuN0MxOS43IDE0MSAwIDExMi44IDAgODAgMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIwOCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTI0OCA0MzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sYVdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsYWciLGljb246WzY0MCw1MTIsW10sImU1MGQiLCJNNDcyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0yODMuNSA1OS4xbDEwMC41IDk2LjkgMCAzNTYtMjU2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTQ0LTE5LjkgMGMtMTUuNSAwLTI4LjEtMTIuNi0yOC4xLTI4LjEgMC03LjYgMy4xLTE0LjkgOC42LTIwLjJMMjI4LjUgNTkuMUMyMzUuOSA1MiAyNDUuNyA0OCAyNTYgNDhzMjAuMSA0IDI3LjUgMTEuMXpNMjMyIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDB6Il19LHVsPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNvbHVtbnMiLGljb246WzUxMiw1MTIsWyJiYW5rIiwiaW5zdGl0dXRpb24iLCJtdXNldW0iLCJ1bml2ZXJzaXR5Il0sImYxOWMiLCJNMjcxLjkgMjAuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhjLTEyLjYgNy4yLTE4LjggMjItMTUuMSAzNlMxNy41IDIwOCAzMiAyMDhsMzIgMCAwIDIwOCAwIDAtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZsLTUxLjItMzguNCAwLTIwOCAzMiAwYzE0LjUgMCAyNy4yLTkuOCAzMC45LTIzLjhzLTIuNS0yOC44LTE1LjEtMzZsLTIyNC0xMjh6TTQwMCAyMDhsMCAyMDgtNjQgMCAwLTIwOCA2NCAwem0tMTEyIDBsMCAyMDgtNjQgMCAwLTIwOCA2NCAwem0tMTEyIDBsMCAyMDgtNjQgMCAwLTIwOCA2NCAwek0yNTYgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxpV2U9dWwscldlPXVsLHNXZT11bCxuV2U9dWwsb1dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1ZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU2OSIsIk0yNCA2NGw1NiAwIDAgMzg0LTU2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC0zMi04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtNDAtOCAwQzEwLjcgMTEyIDAgMTAxLjMgMCA4OFMxMC43IDY0IDI0IDY0em0xMDQgMGwzMjAgMCAwIDM4NC0zMjAgMCAwLTM4NHpNNTc2IDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDMyIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCA0MCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTU2IDAgMC0zODQgNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHoiXX0sbFdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtbWVyZ2UiLGljb246WzQ0OCw1MTIsW10sImYzODciLCJNODAgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0zMi40IDk3LjJjMjgtMTIuNCA0Ny42LTQwLjUgNDcuNi03My4yIDAtNDQuMi0zNS44LTgwLTgwLTgwUzAgMzUuOCAwIDgwYzAgMzIuOCAxOS43IDYxIDQ4IDczLjNsMCAyMDUuM0MxOS43IDM3MSAwIDM5OS4yIDAgNDMyIDAgNDc2LjIgMzUuOCA1MTIgODAgNTEyczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM2wwLTg2LjZjMjYuNyAyMC4xIDYwIDMyIDk2IDMybDg2LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4IDQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwYy0zMi44IDAtNjEgMTkuNy03My4zIDQ4TDIwOCAyNDBjLTQ5LjkgMC05MS0zOC4xLTk1LjYtODYuOHpNODAgNDA4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzQ0IDI3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxjV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtdHN1bmFtaSIsaWNvbjpbNjQwLDUxMixbXSwiZTUxNSIsIk0yODggMTZDMTU1LjUgMTYgNDggMTIzLjUgNDggMjU2UzE1NS41IDQ5NiAyODggNDk2YzcuNCAwIDE5LjctMi4zIDMzLjctNy4zIDEzLjgtNC45IDI3LjEtMTEuNyAzNi43LTE4LjkgMzguNC0yOSA5MC41LTI5IDEyOSAwIDE1LjQgMTEuNiAzNS4zIDIxLjEgNTUgMjQuNCAxOS41IDMuMyAzNyAuNCA1MS4xLTEwLjIgMTAuNi04IDI1LjYtNS45IDMzLjYgNC43czUuOSAyNS42LTQuNyAzMy42Yy0yNy4zIDIwLjUtNTkuMiAyNC04Ny45IDE5LjItMjguNS00LjgtNTUuNC0xOC03NS45LTMzLjQtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMTQuNSAxMC45LTMyLjQgMTkuNy00OS41IDI1LjgtMTYuOCA2LTM0LjkgMTAuMS00OS45IDEwLjFsLS4xIDBDMTI4LjkgNTQzLjkgMCA0MTUgMCAyNTYgMCA5Ni45IDEyOC45LTMyIDI4OC0zMiAzMDEuMy0zMiAzMTItMjEuMyAzMTItOHMtMTAuNyAyNC0yNCAyNHptNDQuOCAxNjYuNGw5Ni03MmMxMS40LTguNSAyNy4xLTguNSAzOC41IDBsOTUuNSA3MmM4IDYgMTIuNyAxNS41IDEyLjcgMjUuNWwuMyAxMjEuNWMtMi4yIDEuMy00LjMgMi42LTYuNCA0LjItNC4zIDMuMS04LjcgLjgtMTMuMi0xLjVsLTEuMi0uNi0uNy0uM2MtNS40LTIuNy0xMS43LTYuNi0xOC45LTExLjctMjkuNS0yMS4xLTY0LjMtMzEuNi05OS4xLTMxLjQtMzQuMSAuMi02OC4xIDEwLjctOTcgMzEuNC03LjggNS42LTEzLjggOS4zLTE5LjMgMTEuMkwzMjAgMjA4YzAtMTAuMSA0LjctMTkuNiAxMi44LTI1LjZ6bTU0LjYgMjI5LjdjLTE0LjUgMTAuOS0zMi40IDE5LjctNDkuNSAyNS44LTE2LjggNi0zNC45IDEwLjEtNDkuOSAxMC4xLTEwNiAwLTE5Mi04Ni0xOTItMTkyUzE4MiA2NCAyODggNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0czY0LjUgMTQ0IDE0NCAxNDRjNy40IDAgMTkuNy0yLjMgMzMuNy03LjMgMTMuOC00LjkgMjcuMS0xMS43IDM2LjctMTguOSAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTUuNCAxMS42IDM1LjMgMjEuMSA1NSAyNC40IDE5LjUgMy4zIDM3IC40IDUxLjEtMTAuMiAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI3LjMgMjAuNS01OS4yIDI0LTg3LjkgMTkuMi0yOC41LTQuOC01NS40LTE4LTc1LjktMzMuNC0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sZFdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtY2hhcnQiLGljb246WzUxMiw1MTIsW10sImU1MjIiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4em0tMzEyIDhsMCA2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwLTk2bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTgwIDY0bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxwV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW1icmVsbGEiLGljb246WzUxMiw1MTIsW10sImYwZTkiLCJNMjU2LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMmMxMjYuMyAxNS43IDIyNCAxMjMuNSAyMjQgMjU0IDAgMy44LS4xIDcuNS0uMiAxMS4zLS4zIDYuOS01IDEyLjgtMTEuNyAxNC43cy0xMy44LS43LTE3LjYtNi41Yy0xNC40LTIxLjQtMzguOC0zNS41LTY2LjUtMzUuNS0yOS4zIDAtNTQuOSAxNS43LTY4LjkgMzkuMy0yLjcgNC42LTcuNiA3LjYtMTMgNy44cy0xMC41LTIuMi0xMy43LTYuNWMtMTQuNi0xOS44LTM4LTMyLjYtNjQuNS0zMi42cy00OS45IDEyLjgtNjQuNSAzMi42Yy0zLjIgNC4zLTguMyA2LjgtMTMuNyA2LjVzLTEwLjItMy4yLTEzLTcuOGMtMTQtMjMuNi0zOS42LTM5LjMtNjguOS0zOS4zLTI3LjcgMC01Mi4xIDE0LjEtNjYuNSAzNS41LTMuOSA1LjctMTEgOC40LTE3LjYgNi41Uy41IDI3NC4yIC4yIDI2Ny4zQy4xIDI2My41IDAgMjU5LjggMCAyNTYgMCAxMjUuNSA5Ny43IDE3LjcgMjI0IDJsMC0yYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0zMiAzNjBsMCAxMDIuNmMwIDQ1LTM2LjUgODEuNC04MS40IDgxLjQtMzAuOCAwLTU5LTE3LjQtNzIuOC00NWwtMi4zLTQuN2MtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOXMzNS0xLjUgNDIuOSAxNC4zbDIuMyA0LjdjMyA1LjkgOSA5LjYgMTUuNiA5LjYgOS42IDAgMTcuNC03LjggMTcuNC0xNy40TDIyNCAzMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0saFdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpbGwtcm9ja3NsaWRlIixpY29uOls1NzYsNTEyLFtdLCJlNTA4IiwiTTI1Mi40IDEwMy44bDI3IDQ4YzIuOCA1IDguMiA4LjIgMTMuOSA4LjJsNTMuMyAwYzUuOCAwIDExLjEtMy4xIDEzLjktOC4ybDI3LTQ4YzIuNy00LjkgMi43LTEwLjggMC0xNS43bC0yNy00OGMtMi44LTUtOC4yLTguMi0xMy45LTguMmwtNTMuMyAwYy01LjggMC0xMS4xIDMuMS0xMy45IDguMmwtMjcgNDhjLTIuNyA0LjktMi43IDEwLjggMCAxNS43ek02OC4zIDg3QzQzLjEgNjEuOCAwIDc5LjcgMCAxMTUuM0wwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGwzMTYuNyAwYzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjMgODd6TTUwNC4yIDQwMy42YzQuOSAyLjcgMTAuOCAyLjcgMTUuNyAwbDQ4LTI3YzUtMi44IDguMi04LjIgOC4yLTEzLjlsMC01My4zYzAtNS44LTMuMS0xMS4xLTguMi0xMy45bC00OC0yN2MtNC45LTIuNy0xMC44LTIuNy0xNS43IDBsLTQ4IDI3Yy01IDIuOC04LjIgOC4yLTguMiAxMy45bDAgNTMuM2MwIDUuOCAzLjEgMTEuMSA4LjIgMTMuOWw0OCAyN3pNMTkyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSx1V2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zZWNyZXQiLGljb246WzQ0OCw1MTIsWzEyODM3M10sImYyMWIiLCJNMTcxLTE2Yy0zNi40IDAtNTcuOCA1OC4zLTY4LjMgMTEyTDcyIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAzMmMwIDE3IDMuMyAzMy4yIDkuMyA0OGwtOS4zIDAgMCAwLTIwLjUgMGMtMTUuMiAwLTI3LjUgMTIuMy0yNy41IDI3LjUgMCAzIC41IDUuOSAxLjQgOC43bDI4LjkgODYuNkM0MC4yIDM3OS42IDE2IDQyOC4xIDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDM1Ni42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC01NC4yLTI0LjItMTAyLjctNjIuMy0xMzUuNGwyOC45LTg2LjZjLjktMi44IDEuNC01LjcgMS40LTguNyAwLTE1LjItMTIuMy0yNy41LTI3LjUtMjcuNWwtMjAuNSAwIDAgMC05LjMgMGM2LTE0LjggOS4zLTMxIDkuMy00OGwwLTMyIDI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMwLjcgMGMtMTAuNC01My43LTMxLjktMTEyLTY4LjMtMTEyLTkuNiAwLTE5IDMuOS0yNy41IDguMi04LjIgNC4xLTE4LjQgNy44LTI1LjUgNy44cy0xNy4zLTMuNy0yNS41LTcuOEMxOTAtMTIuMSAxODAuNi0xNiAxNzEtMTZ6bTkzLjcgNDg0LjRsLTI0LjgtNzAuOSAyNy45LTMyLjVjMi43LTMuMiA0LjItNy4yIDQuMi0xMS40IDAtOS43LTcuOC0xNy41LTE3LjUtMTcuNWwtNjEgMGMtOS43IDAtMTcuNSA3LjgtMTcuNSAxNy41IDAgNC4yIDEuNSA4LjIgNC4yIDExLjRsMjcuOSAzMi41LTI0LjggNzAuOS01Ny0xODAuNCAzNS43IDBjMTguNCAxMC4yIDM5LjUgMTYgNjIgMTZzNDMuNi01LjggNjItMTZsMzUuNyAwLTU3IDE4MC40ek0yMjQgMjU2Yy0zNC43IDAtNjQuMi0yMi4xLTc1LjMtNTMgNS43IDMuMiAxMi4zIDUgMTkuMyA1bDEyLjQgMGMxNi41IDAgMzEuMS0xMC42IDM2LjMtMjYuMiAyLjMtNyAxMi4yLTcgMTQuNSAwIDUuMiAxNS42IDE5LjkgMjYuMiAzNi4zIDI2LjJsMTIuNCAwYzcgMCAxMy42LTEuOCAxOS4zLTUtMTEuMSAzMC45LTQwLjYgNTMtNzUuMyA1M3oiXX0sZldlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhZ2VyIixpY29uOls1MTIsNTEyLFsxMjgyMjNdLCJmODE1IiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTY0IDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04OCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sbVdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWVmY2FzZSIsaWNvbjpbNTEyLDUxMixbMTI4MTg4XSwiZjBiMSIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMEMyOC43IDk2IDAgMTI0LjcgMCAxNjBsMCA5NiA1MTIgMCAwLTk2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04MCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjAwIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek01MTIgMzA0bC0xOTIgMCAwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTE5MiAwIDAgMTEyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTEyeiJdfSxnV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvd2VsLWJyaWNrcyIsaWNvbjpbNTEyLDUxMixbXSwiZTU4YSIsIk0yMjQgMzJjMC0xMS41LTYuMi0yMi4yLTE2LjItMjcuOHMtMjIuMy01LjUtMzIuMiAuNGwtMTYwIDk2QzUuOSAxMDYuMyAwIDExNi44IDAgMTI4czUuOSAyMS43IDE1LjUgMjcuNGwxNjAgOTZjOS45IDUuOSAyMi4yIDYuMSAzMi4yIC40UzIyNCAyMzUuNSAyMjQgMjI0bDAtNjQgMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI1NiAwIDAtNjR6bTk2IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNjAgMHpNMCA0MTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0yMjQtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjU2IDB6Il19LGJXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2NrcyIsaWNvbjpbNTEyLDUxMixbMTI5NTEwXSwiZjY5NiIsIk0yNTIuOCAwTDE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2IDExMiAwIDAtMTZjMC0xNy41IDQuNy0zMy45IDEyLjgtNDh6TTEyOCAxMTJsMCAxMjhjMCAyMC4xLTkuNSAzOS4xLTI1LjYgNTEuMmwtNjQgNDhjLTI0LjIgMTguMS0zOC40IDQ2LjYtMzguNCA3Ni44IDAgNTMgNDMgOTYgOTYgOTYgMTUuNCAwIDMwLjUtMy43IDQ0LTEwLjctMTcuNi0yMy45LTI4LTUzLjQtMjgtODUuMyAwLTQ1LjMgMjEuMy04OCA1Ny42LTExNS4ybDY0LTQ4YzQtMyA2LjQtNy44IDYuNC0xMi44bDAtMTI4LTExMiAwem0xNjAgMGwwIDEyOGMwIDIwLjEtOS41IDM5LjEtMjUuNiA1MS4ybC02NCA0OGMtMjQuMiAxOC4xLTM4LjQgNDYuNi0zOC40IDc2LjggMCA1MyA0MyA5NiA5NiA5NiAyMC44IDAgNDEtNi43IDU3LjYtMTkuMmwxMTUuMi04Ni40QzQ2MSAzODIuMiA0ODAgMzQ0LjMgNDgwIDMwNGwwLTE5Mi0xOTIgMHpNNDgwIDY0bDAtMTZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYgMTkyIDB6Il19LHZXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0IixpY29uOlszODQsNTEyLFsxMTZdLCI1NCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMTI4IDAgMCAzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM1MiAxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0seVdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvY2hpcCIsaWNvbjpbNTEyLDUxMixbXSwiZjJkYiIsIk0xNzYgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDU2LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDU2LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGMwIDM1LjMgMjguNyA2NCA2NCA2NGwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MCA1NiAwIDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC01NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwYzAtMzUuMy0yOC43LTY0LTY0LTY0bDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC01NiAwIDAtNDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0MC01NiAwIDAtNDB6TTE2MCAxMjhsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYgNDhsMCAxNjAgMTYwIDAgMC0xNjAtMTYwIDB6Il19LF9IPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1lZGljYWwiLGljb246WzU3Niw1MTIsWzEyODY1NywiYW1idWxhbmNlIl0sImYwZjkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTc2IDEzNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0seFdlPV9ILHdXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvbSIsaWNvbjpbNTc2LDUxMixbMTI4MzI5XSwiZjY3OSIsIk0zODguNyA0LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBsMTYgMTZjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTE2IDE2Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtMTYtMTZjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42bDE2LTE2ek0xNzYgMTYwYy0xMC44IDAtMjAuOCAzLjYtMjguOCA5LjYtMTQuMSAxMC42LTM0LjIgNy44LTQ0LjgtNi40cy03LjgtMzQuMiA2LjQtNDQuOGMxOC43LTE0LjEgNDItMjIuNCA2Ny4yLTIyLjQgNjEuOSAwIDExMiA1MC4xIDExMiAxMTIgMCAxNy4yLTMuOSAzMy41LTEwLjggNDhsNDkuNyAwYzEyLjcgMCAyNC45LTUgMzMuOS0xNC4xbDIwLjctMjAuN2MxOC43LTE4LjcgNDQuMS0yOS4zIDcwLjYtMjkuMyA1NS4yIDAgOTkuOSA0NC43IDk5LjkgOTkuOWwwIDk2LjFjMCA1NS4yLTQ0LjggMTAwLTEwMCAxMDBTMzUyIDQ0My4yIDM1MiAzODhsMC00YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0YzAgMTkuOSAxNi4xIDM2IDM2IDM2czM2LTE2LjEgMzYtMzZsMC05Ni4xYzAtMTkuOC0xNi4xLTM1LjktMzUuOS0zNS45LTkuNSAwLTE4LjYgMy44LTI1LjQgMTAuNWwtMjAuNyAyMC43Yy0yMSAyMS00OS40IDMyLjgtNzkuMSAzMi44bC0yNi44IDBjMTIuNiAxOS42IDE5LjkgNDIuOCAxOS45IDY4IDAgNzUuMi02NSAxMzItMTQwIDEzMlM0MCA0NjMuMiA0MCAzODhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmMwIDM1LjMgMzEuNyA2OCA3NiA2OHM3Ni0zMi43IDc2LTY4LTMxLjctNjgtNzYtNjhsLTIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OHpNMzM3LjEgNjAuMWMtMTEtMTMuOC0zMS4xLTE2LjItNDUtNS4ycy0xNi4yIDMxLjEtNS4yIDQ1QzMxMi42IDEzMi4yIDM1NC40IDE1MiA0MDAgMTUyczg3LjQtMTkuOCAxMTMuMS01Mi4xYzExLTEzLjggOC43LTM0LTUuMi00NXMtMzQtOC43LTQ1IDUuMkM0NTAuMyA3NiA0MjcuNSA4OCA0MDAgODhzLTUwLjMtMTItNjIuOS0yNy45eiJdfSxNV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9zcXVpdG8tbmV0IixpY29uOls2NDAsNTEyLFtdLCJlNTJjIiwiTTU3NiAzNTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNiAxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwIDAgNDggMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDE2LS4xIDIuNUM1OTguNiA1NjYuNiA1ODguNCA1NzYgNTc2IDU3NnMtMjIuNi05LjQtMjMuOS0yMS41bC0uMS0yLjUgMC0xNi00OCAwIDAgMTYtLjEgMi41QzUwMi42IDU2Ni42IDQ5Mi40IDU3NiA0ODAgNTc2cy0yMi42LTkuNC0yMy45LTIxLjVsLS4xLTIuNSAwLTE2LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTQ4LTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNiA0OCAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQyOS45IDE2LjNjNy43LTkuNCAyMS4zLTExLjUgMzEuNC00LjMgMTAuMSA3LjEgMTMuMSAyMC45IDcuNCAzMS43bC0xLjMgMi4xLTI1LjkgMzguOSAxMy4zIDUzLjRjMiA4LS4xIDE2LjMtNS4zIDIyLjNsLTIuNCAyLjQtNDQuNyAzOC4zIDEzMC41IDE0LjVjNDIuOCA0LjggNzUuMSA0MC45IDc1LjEgODMuOSAwIDMuOS0uNCA3LjctLjkgMTEuNS03LjMtMy41LTE1LjMtNS44LTIzLjgtNi43TDU3NiAzMDRjLTE4LjUgMC0zNS4zIDctNDggMTguNC0xMS05LjktMjUuMS0xNi41LTQwLjYtMTguMUw0ODAgMzA0Yy0zMC4zIDAtNTYuMSAxOC43LTY2LjggNDUuMi0xMi41IDUtMjMuMiAxMy40LTMxLjEgMjRsLTMwLjItNDAuMSAwIDc0LjdjMCAxNy43LTE0LjMgMzItMzIgMzItMTYuNiAwLTMwLjItMTIuNi0zMS44LTI4LjdsLS4yLTMuMyAwLTc0LjYtMzIuMyA0MyAwIDM5LjhjMCAzLjUtLjcgNi45LTIuMSAxMC4xbC0xLjYgMy4xLTQwIDY0LTEuNCAyYy03LjUgOS42LTIxIDEyLjEtMzEuMyA1LjMtMTAuMy02LjgtMTMuNy0yMC41LTguMy0zMS41bDEuMi0yLjIgMzYuMi01OCAwLTQxIC4zLTRjLjYtMy45IDIuMi03LjcgNC42LTEwLjlsMzkuMy01Mi4yLTY2LjIgNTkuNWMtMTcgMTUuMy0zOSAyMy43LTYxLjkgMjMuOGwtOC4xIDBjLTQ2LjYgMC04NC40LTM3LjgtODQuNC04NC40IDAtNDMgMzIuNC03OS4yIDc1LjEtODMuOWwxMzAuNS0xNC41LTQ0LjctMzguMy0yLjQtMi40Yy01LjItNi03LjMtMTQuNC01LjMtMjIuM2wxMy4zLTUzLjQtMjUuOS0zOC45LTEuMi0yLjFjLTUuNy0xMC44LTIuNy0yNC42IDcuNC0zMS43IDEwLjEtNy4xIDIzLjctNS4xIDMxLjQgNC4zbDEuNSAyIDMyIDQ4IDEuNCAyLjJjMi44IDUuMyAzLjUgMTEuNiAyLjEgMTcuNmwtMTIuMyA0OS4yIDUzLjMgNDUuNyAwLTI4LjggLjItMy4yYzEuMS0xMC40IDcuMi0xOS40IDE1LjgtMjQuNGwwLTYwLjUgLjMtMy4yYzEuNS03LjMgOC0xMi43IDE1LjctMTIuOCA3LjcgMCAxNC4yIDUuNSAxNS43IDEyLjhsLjMgMy4yIDAgNjAuNWM4LjcgNSAxNC44IDE0IDE1LjggMjQuNGwuMiAzLjIgMCAyOC45IDUzLjQtNDUuNy0xMi4zLTQ5LjJjLTEuNS01LjktLjctMTIuMiAyLjEtMTcuNmwxLjQtMi4yIDMyLTQ4IDEuNS0yek01MDQgNDg4bDQ4IDAgMC00OC00OCAwIDAgNDh6Il19LHpXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmVzY3JpcHRpb24tYm90dGxlIixpY29uOlszODQsNTEyLFtdLCJmNDg1IiwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwTDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NEwwIDMyek0zMiAxNDRsMzIwIDAgMCAzMDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNDggNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC02NHoiXX0sVEg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtZ2VhciIsaWNvbjpbNjQwLDUxMixbInVzZXJzLWNvZyJdLCJmNTA5IiwiTTMyMCAyMjRhMTA0IDEwNCAwIDEgMCAwLTIwOCAxMDQgMTA0IDAgMSAwIDAgMjA4ek05NiAyMzJhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6TTAgNDE2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODYuNyAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTE2YzAtNTMuMiAyMC0xMDEuOCA1Mi45LTEzOC42LTExLjctMy41LTI0LjEtNS40LTM2LjktNS40LTcwLjcgMC0xMjggNTcuMy0xMjggMTI4ek02MTYgMTYwYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHpNMTYwIDQzMmwwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE1Ni44IDBjLTcuMS0yMS42LTYuMy00NC40IDEwLjctNjQtMTQtMTYuMi0yMC41LTM5LjctMTEuNC02My4zIDYuNi0xNy4xIDE1LjktMzMuMSAyNy40LTQ3LjMgNS40LTYuNiAxMS42LTExLjcgMTguMy0xNS40LTIyLjEtMTEuNS00Ny4yLTE4LTczLjgtMTgtODguNCAwLTE2MCA3MS42LTE2MCAxNjB6bTQ2NC42LTQ0LjFjNi4zLTMuNiA5LjUtMTEuMSA2LjgtMTgtNC44LTEyLjQtMTEuNS0yNC4xLTE5LjktMzQuNC00LjYtNS43LTEyLjctNi43LTE5LTMtMjEuOCAxMi42LTQ4LjYtMi44LTQ4LjYtMjguMSAwLTcuMy00LjktMTMuOC0xMi4xLTE0LjktMTIuOS0yLTI2LjgtMi0zOS43IDAtNy4yIDEuMS0xMi4xIDcuNi0xMi4xIDE0LjkgMCAyNS4yLTI2LjggNDAuNy00OC42IDI4LjEtNi4zLTMuNi0xNC40LTIuNi0xOSAzLTguNCAxMC4zLTE1LjEgMjItMTkuOSAzNC40LTIuNiA2LjggLjUgMTQuMyA2LjggMTcuOSAyMS45IDEyLjYgMjEuOSA0My41IDAgNTYuMi02LjMgMy42LTkuNSAxMS4xLTYuOCAxNy45IDQuOCAxMi40IDExLjUgMjQuMSAxOS45IDM0LjQgNC42IDUuNyAxMi43IDYuNyAxOSAzIDIxLjgtMTIuNiA0OC42IDIuOSA0OC42IDI4LjEgMCA3LjMgNC45IDEzLjggMTIuMSAxNC45IDEyLjkgMiAyNi44IDIgMzkuNyAwIDcuMi0xLjEgMTIuMS03LjYgMTIuMS0xNC45IDAtMjUuMiAyNi44LTQwLjcgNDguNi0yOC4xIDYuMyAzLjYgMTQuNCAyLjYgMTktMyA4LjQtMTAuMyAxNS4xLTIyIDE5LjktMzQuNCAyLjYtNi44LS41LTE0LjMtNi44LTE3LjktMjEuOS0xMi42LTIxLjktNDMuNSAwLTU2LjJ6TTQ3MiA0MTZhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHoiXX0sa1dlPVRILFNXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NSIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LENXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXVzZSIsaWNvbjpbMzg0LDUxMixbOTIwOF0sImYwNGMiLCJNNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyem0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzNTJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHoiXX0sSzU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhZmYtc25ha2UiLGljb246WzQ0OCw1MTIsWyJyb2QtYXNjbGVwaXVzIiwicm9kLXNuYWtlIiwic3RhZmYtYWVzY3VsYXBpdXMiXSwiZTU3OSIsIk0xOTIgMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjQgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMTYgMCAwLTY0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMCAxOTIgMzIgMGM1MyAwIDk2IDQzIDk2IDk2IDAgNDcuNi0zNC42IDg3LjEtODAgOTQuN2wwLTY3YzkuNi01LjUgMTYtMTUuOSAxNi0yNy43IDAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjQtMzIgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04Ny4xIDgwLTk0LjdsMCA2N2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjcgMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTE5Mi03Mi42IDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJsLTE2IDBDMjEuNSAxMjggMCAxMDYuNSAwIDgwUzIxLjUgMzIgNDggMzJsMTQ0IDB6Il19LF9XZT1LNSxUV2U9SzUsTFdlPUs1LCRXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWdneS1iYW5rIixpY29uOls1NzYsNTEyLFtdLCJmNGQzIiwiTTI4OC0zMmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpNNDggMzA0YzAtNzAuMSA0Ny0xMzEuNCAxMTcuMS0xNjQuOSAyNS4zIDQxLjMgNzAuOSA2OC45IDEyMi45IDY4LjkgNTUuNyAwIDEwNC4xLTMxLjcgMTI4LTc4IDE1LjgtMTEuMyAzNS4xLTE4IDU2LTE4bDE5LjUgMGMxMC40IDAgMTggOS44IDE1LjUgMTkuOWwtMTcuMSA2OC4zYzkuOSAxMi40IDE4LjIgMjUuNyAyNC40IDM5LjhsMjEuNyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00MCAwYy0xNi41IDIyLTM4LjUgMzkuNi02NCA1MC43bDAgMjkuM2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzMgMGMtMTQuMyAwLTI2LjgtOS41LTMwLjgtMjMuMmwtNy4xLTI0LjgtODIuMyAwLTcuMSAyNC44QzIzNS44IDUwMi41IDIyMy4zIDUxMiAyMDkgNTEybC0zMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI5LjNDODcuNSA0MjYgNDggMzY5LjYgNDggMzA0em0zNzYgMTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxBV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9udW1lbnQiLGljb246WzM4NCw1MTIsW10sImY1YTYiLCJNMjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw5NSA0N2MtNC4xIDQuMS02LjUgOS40LTcgMTUuMUw1OC40IDQ0OCA0OCA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjQgMC0yOS43LTM4NS44Yy0uNC01LjctMi45LTExLjEtNy0xNS4xTDIwOS0zM3pNMTI4IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sTEg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLXJpZ2h0IixpY29uOls0NDgsNTEyLFsxODcsImFuZ2xlLWRvdWJsZS1yaWdodCJdLCJmMTAxIiwiTTQzOS4xIDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wzNzEuMiAyNTYgMjMzLjkgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHptLTM1MiAxNjBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTc5LjIgMjU2IDQxLjkgMzkzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6Il19LERXZT1MSCxoOD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZXNrdG9wIixpY29uOls1MTIsNTEyLFsxMjg0MjEsNjE3MDQsImRlc2t0b3AtYWx0Il0sImYzOTAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDQgMC0xNiA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwLTE2LTQ4IDE0NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek05NiA5NmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxFV2U9aDgsUFdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1NyIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTU5LjMgMTA3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2Ljd6Il19LElXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXR3ZWV0IixpY29uOls1NzYsNTEyLFtdLCJmMDc5IiwiTTExOC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTkuMSAxNjAgMzIgMTYwbDMyIDAgMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjI0IDMyIDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtNjQtNjR6TTQ1Ny40IDQ3MC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzU1Ni45IDM1MiA1NDQgMzUybC0zMiAwIDAtMjI0YzAtNTMtNDMtOTYtOTYtOTZMMjg4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0eiJdfSwkSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdlYXIiLGljb246WzY0MCw1MTIsWyJ1c2VyLWNvZyJdLCJmNGZlIiwiTTI1Ni41IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNyAzMDRsNTkuNCAwIDEuNSAwYy0xMi45IDI2LjgtNy44IDU4LjIgMTEuNSA3OS41LTIwLjIgMjIuMy0yNC44IDU1LjgtOS40IDgzLjRsMjIuNSA0MC40Yy45IDEuNiAxLjkgMy4yIDIuOSA0LjdsLTIzNyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3ptMjA1LjktNTYuNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNi4xYzAgMTguOSAyNC4xIDMyLjggNDAuNSAyMy40bDUtMi45YzExLjYtNi43IDI2LjUtMi42IDMzIDkuMWwyMi40IDQwLjJjNi4yIDExLjIgMi42IDI1LjItOC4yIDMybC00LjcgMi45Yy0xNi4yIDEwLjEtMTYuMiAzOS45IDAgNTAuMWw0LjYgMi45YzEwLjggNi44IDE0LjUgMjAuOCA4LjMgMzJMNjA3IDQ4My44Yy02LjUgMTEuNy0yMS40IDE1LjktMzMgOS4xbC00LjktMi45Yy0xNi40LTkuNS00MC41IDQuNS00MC41IDIzLjRsMCA2LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNS45YzAtMTktMjQuMi0zMy00MC43LTIzLjVsLTQuOCAyLjhjLTExLjYgNi43LTI2LjQgMi42LTMzLTkuMWwtMjIuNi00MC40Yy02LjItMTEuMi0yLjYtMjUuMyA4LjMtMzIuMWw0LjQtMi43YzE2LjMtMTAuMSAxNi4zLTQwLjEgMC01MC4ybC00LjUtMi44Yy0xMC45LTYuOC0xNC41LTIwLjktOC4zLTMyLjFsMjIuNS00MC4zYzYuNS0xMS43IDIxLjQtMTUuOCAzMi45LTkuMWw0LjggMi44YzE2LjUgOS41IDQwLjctNC41IDQwLjctMjMuNWwwLTUuOXptOTkuOSAxMzYuMmE1MiA1MiAwIDEgMCAtMTA0IDAgNTIgNTIgMCAxIDAgMTA0IDB6Il19LE5XZT0kSCxGV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9yZGVyLWFsbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjg0YyIsIk0zODQgOTZsMCAxMjgtMTI4IDAgMC0xMjggMTI4IDB6bTAgMTkybDAgMTI4LTEyOCAwIDAtMTI4IDEyOCAwek0xOTIgMjI0bC0xMjggMCAwLTEyOCAxMjggMCAwIDEyOHpNNjQgMjg4bDEyOCAwIDAgMTI4LTEyOCAwIDAtMTI4ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSxPV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29pbnMiLGljb246WzUxMiw1MTIsW10sImY1MWUiLCJNMTI4IDk2bDAtMTZjMC00NC4yIDg2LTgwIDE5Mi04MFM1MTIgMzUuOCA1MTIgODBsMCAxNmMwIDMwLjYtNDEuMyA1Ny4yLTEwMiA3MC43LTIuNC0yLjgtNC45LTUuNS03LjQtOC0xNS41LTE1LjMtMzUuNS0yNi45LTU2LjQtMzUuNS00MS45LTE3LjUtOTYuNS0yNy4xLTE1NC4yLTI3LjEtMjEuOSAwLTQzLjMgMS40LTYzLjggNC4xLS4yLTEuMy0uMi0yLjctLjItNC4xek00MzIgMzUzbDAtNDYuMmMxNS4xLTMuOSAyOS4zLTguNSA0Mi4yLTEzLjkgMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM2wwIDE1LjRjMCAyNi44LTMxLjUgNTAuNS04MCA2NXptMC05NmwwLTMzYzAtNC41LS40LTguOC0xLTEzIDE1LjUtMy45IDMwLTguNiA0My4yLTE0LjJzMjYuMS0xMi4yIDM3LjgtMjAuM2wwIDE1LjRjMCAyNi44LTMxLjUgNTAuNS04MCA2NXpNMCAyNDBsMC0xNmMwLTQ0LjIgODYtODAgMTkyLTgwczE5MiAzNS44IDE5MiA4MGwwIDE2YzAgNDQuMi04NiA4MC0xOTIgODBTMCAyODQuMiAwIDI0MHptMzg0IDk2YzAgNDQuMi04NiA4MC0xOTIgODBTMCAzODAuMiAwIDMzNmwwLTE1LjRjMTEuNiA4LjEgMjQuNSAxNC43IDM3LjggMjAuMyA0MS45IDE3LjUgOTYuNSAyNy4xIDE1NC4yIDI3LjFzMTEyLjMtOS43IDE1NC4yLTI3LjFjMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM2wwIDE1LjR6bTAgODAuNmwwIDE1LjRjMCA0NC4yLTg2IDgwLTE5MiA4MFMwIDQ3Ni4yIDAgNDMybDAtMTUuNGMxMS42IDguMSAyNC41IDE0LjcgMzcuOCAyMC4zIDQxLjkgMTcuNSA5Ni41IDI3LjEgMTU0LjIgMjcuMXMxMTIuMy05LjcgMTU0LjItMjcuMWMxMy4yLTUuNSAyNi4xLTEyLjIgMzcuOC0yMC4zeiJdfSxSV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UiLGljb246WzU3Niw1MTIsWzk4OTRdLCJmMjI5IiwiTTQxNi0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MC43IDAtNTguNyA1OC43LTE3LjQtMTcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTcuNCAxNy40LTIzIDIzYy0yOC40LTE5LjUtNjIuNy0zMS05OS44LTMxLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDIzLTIzIDE3LjQgMTcuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDQ1My4zIDEzNiA1MTIgNzcuMyA1MTIgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNTc2IDBjMC0xNy43LTE0LjMtMzItMzItMzJMNDE2LTMyek0xMjggMzA0YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6Il19LEFIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzaGFrZS1hbmdsZSIsaWNvbjpbNTc2LDUxMixbImhhbmRzLWhlbHBpbmciXSwiZjRjNCIsIk0yNjguOSA1My4yTDE1Mi4zIDE4Mi44Yy00LjYgNS4xLTQuNCAxMyAuNSAxNy45IDMwLjUgMzAuNSA4MCAzMC41IDExMC41IDBsMzEuOC0zMS44YzQuMi00LjIgOS41LTYuNSAxNC45LTYuOSA2LjgtLjYgMTMuOCAxLjcgMTkgNi45TDUwNS42IDM0NCA1NzYgMjg4IDU3NiAwIDQ2NCA2NCA0NDAuMiA0OC4xQzQyNC40IDM3LjYgNDA1LjkgMzIgMzg2LjkgMzJsLTcwLjQgMGMtMS4xIDAtMi4zIDAtMy40IC4xLTE2LjkgLjktMzIuOCA4LjUtNDQuMiAyMS4xek0xMTYuNiAxNTAuN0wyMjMuNCAzMiAxODMuOCAzMmMtMjUuNSAwLTQ5LjkgMTAuMS02Ny45IDI4LjFMMCAxOTIgMCA1NDQgMTQ0IDQwOCAxNTYuNCA0MTguM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMTkuMSAwIDM3LjgtNC4zIDU0LjgtMTIuM0wzNTkgNDA5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzIgMzIgMTcuNS0xNy41YzguOS04LjkgMTEuNS0yMS44IDcuNi0zMy4xbC0xMzcuOS0xMzYuOC0xNC45IDE0LjljLTQ5LjMgNDkuMy0xMjkuMSA0OS4zLTE3OC40IDAtMjMtMjMtMjMuOS01OS45LTIuMi04NHoiXX0sQldlPUFILEhXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duIixpY29uOlszODQsNTEyLFs4NTk1XSwiZjA2MyIsIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCA0MDIuNyAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzNzAuNy0xMDUuNC0xMDUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHoiXX0sREg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tZG90IixpY29uOlszODQsNTEyLFsibWFwLW1hcmtlci1hbHQiXSwiZjNjNSIsIk0wIDE4OC42QzAgODQuNCA4NiAwIDE5MiAwUzM4NCA4NC40IDM4NCAxODguNmMwIDExOS4zLTEyMC4yIDI2Mi4zLTE3MC40IDMxNi44LTExLjggMTIuOC0zMS41IDEyLjgtNDMuMyAwLTUwLjItNTQuNS0xNzAuNC0xOTcuNS0xNzAuNC0zMTYuOHpNMTkyIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHoiXX0scVdlPURILFZXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU1ZCIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxqV2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29va2llLWJpdGUiLGljb246WzUxMiw1MTIsW10sImY1NjQiLCJNMjU3LjUgMjcuNmMtLjgtNS40LTQuOS05LjgtMTAuMy0xMC42LTIyLjEtMy4xLTQ0LjYgLjktNjQuNCAxMS40bC03NCAzOS41Qzg5LjEgNzguNCA3My4yIDk0LjkgNjMuNCAxMTVMMjYuNyAxOTAuNmMtOS44IDIwLjEtMTMgNDIuOS05LjEgNjQuOWwxNC41IDgyLjhjMy45IDIyLjEgMTQuNiA0Mi4zIDMwLjcgNTcuOWw2MC4zIDU4LjRjMTYuMSAxNS42IDM2LjYgMjUuNiA1OC43IDI4LjdsODMgMTEuN2MyMi4xIDMuMSA0NC42LS45IDY0LjQtMTEuNGw3NC0zOS41YzE5LjctMTAuNSAzNS42LTI3IDQ1LjQtNDcuMmwzNi43LTc1LjVjOS44LTIwLjEgMTMtNDIuOSA5LjEtNjQuOS0uOS01LjMtNS4zLTkuMy0xMC42LTEwLjEtNTEuNS04LjItOTIuOC00Ny4xLTEwNC41LTk3LjQtMS44LTcuNi04LTEzLjQtMTUuNy0xNC42LTU0LjYtOC43LTk3LjctNTItMTA2LjItMTA2Ljh6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEVIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyLXdyZW5jaCIsaWNvbjpbNTc2LDUxMixbInRvb2xzIl0sImY3ZDkiLCJNNzAuOC02LjdjNS40LTUuNCAxMy44LTYuMiAyMC4yLTJMMjA5LjkgNzAuNWM4LjkgNS45IDE0LjIgMTUuOSAxNC4yIDI2LjZsMCA0OS42IDkwLjggOTAuOGMzMy4zLTE1IDczLjktOC45IDEwMS4yIDE4LjVMNTQyLjIgMzgyLjFjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlsLTYwLjEgNjAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjg4LjEgMzg0Yy0yNy40LTI3LjQtMzMuNS02Ny45LTE4LjUtMTAxLjJsLTkwLjgtOTAuOC00OS42IDBjLTEwLjcgMC0yMC43LTUuMy0yNi42LTE0LjJMMjMuNCA1OC45Yy00LjItNi4zLTMuNC0xNC44IDItMjAuMkw3MC44LTYuN3ptMTQ1IDMwMy41Yy02LjMgMzYuOSAyLjMgNzUuOSAyNi4yIDEwNy4ybC05NC45IDk1Yy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDBzLTI4LjEtNzMuNyAwLTEwMS44bDEzNS40LTEzNS41IDM1LjIgMzUuMXpNMzg0LjEgMGMyMC4xIDAgMzkuNCAzLjcgNTcuMSAxMC41IDEwIDMuOCAxMS44IDE2LjUgNC4zIDI0LjFMMzg4LjggOTEuM2MtMyAzLTQuNyA3LjEtNC43IDExLjNsMCA0MS40YzAgOC44IDcuMiAxNiAxNiAxNmw0MS40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w1Ni43LTU2LjdjNy42LTcuNSAyMC4zLTUuNyAyNC4xIDQuMyA2LjggMTcuNyAxMC41IDM3IDEwLjUgNTcuMSAwIDQzLjItMTcuMiA4Mi4zLTQ1IDExMS4xbC00OS4xLTQ5LjFjLTMzLjEtMzMtNzguNS00NS43LTEyMS4xLTM4LjRsLTU2LjgtNTYuOCAwLTI5LjctLjItNWMtLjgtMTIuNC00LjQtMjQuMy0xMC41LTM0LjkgMjkuNC0zNSA3My40LTU3LjIgMTIyLjctNTcuM3oiXX0sVVdlPUVILFdXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmRlbnQiLGljb246WzQ0OCw1MTIsW10sImYwM2MiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek0xOTIgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDk2bDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNMCA0NDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTI3LjggMjY4LjZMMjUuOCAzNDcuOUMxNS4zIDM1Ni4xIDAgMzQ4LjYgMCAzMzUuM0wwIDE3Ni43YzAtMTMuMyAxNS4zLTIwLjggMjUuOC0xMi42bDEwMS45IDc5LjNjOC4yIDYuNCA4LjIgMTguOSAwIDI1LjN6Il19LFBIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMiLGljb246WzQ0OCw1MTIsWyJuYXZpY29uIl0sImYwYzkiLCJNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAxMjhDMTQuMyAxMjggMCAxMTMuNyAwIDk2ek0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sR1dlPVBILElIPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLXByYXlpbmciLGljb246WzY0MCw1MTIsWyJwcmF5aW5nLWhhbmRzIl0sImY2ODQiLCJNMjI0IDI5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMi42IDg4LjItMTE5LjdjMTMuMS0xNy44IDkuMy00Mi44LTguNS01NS45cy00Mi44LTkuMy01NS45IDguNUwxMDYuNSAxNDIuOUM4OS4zIDE2Ni4yIDgwIDE5NC41IDgwIDIyMy42bDAgMTEwLjctNTguMSAxOS40QzguOCAzNTggMCAzNzAuMiAwIDM4NGwwIDk2YzAgMTAgNC43IDE5LjUgMTIuNyAyNS41czE4LjQgOCAyOC4xIDUuMmwxNTQuNC00NC4xYzU1LTE1LjcgOTIuOC02NS45IDkyLjgtMTIzLjFMMjg4IDIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDcyem0xOTIgMGwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTE5LjZjMCA1Ny4yIDM3LjkgMTA3LjQgOTIuOCAxMjMuMWwxNTQuNCA0NC4xYzkuNyAyLjggMjAgLjggMjguMS01LjJTNjQwIDQ5MCA2NDAgNDgwbDAtOTZjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTU4LjEtMTkuNCAwLTExMC43YzAtMjktOS4zLTU3LjMtMjYuNS04MC43TDQ0MC4yIDE2LjNDNDI3LjEtMS41IDQwMi4xLTUuMyAzODQuMyA3LjhzLTIxLjYgMzguMS04LjUgNTUuOUw0NjQgMTgzLjQgNDY0IDI5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sWVdlPUlILFpXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1c2VzIixpY29uOls2NDAsNTEyLFtdLCJlMDc2IiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgMzAuNSAzNi45IDQ1LjggNTguNSAyNC4yIDEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTIxLjYgMjEuNi02LjMgNTguNSAyNC4yIDU4LjUgMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJjLTMwLjUgMC00NS44IDM2LjktMjQuMiA1OC41IDEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwYy0yMS42LTIxLjYtNTguNS02LjMtNTguNSAyNC4yIDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMzAuNS0zNi45LTQ1LjgtNTguNS0yNC4yLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zQzc3LjggMjYwLjkgNjIuNSAyMjQgMzIgMjI0IDE0LjMgMjI0IDAgMjA5LjcgMCAxOTJzMTQuMy0zMiAzMi0zMmMzMC41IDAgNDUuOC0zNi45IDI0LjItNTguNS0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwQzEyMy4xIDc3LjggMTYwIDYyLjUgMTYwIDMyIDE2MCAxNC4zIDE3NC4zIDAgMTkyIDB6TTE0NCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xMjggNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjQ4IDQwYzAgMjIuOSAyNy43IDM0LjQgNDMuOSAxOC4yIDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMTYuMiAxNi4yLTQuNyA0My45IDE4LjIgNDMuOSAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjIuOSAwLTM0LjQgMjcuNy0xOC4yIDQzLjkgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMTYuMi0xNi4yLTQzLjktNC43LTQzLjkgMTguMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTIyLjktMjcuNy0zNC40LTQzLjktMTguMi05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzE2LjItMTYuMiA0LjctNDMuOS0xOC4yLTQzLjktMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyMi45IDAgMzQuNC0yNy43IDE4LjItNDMuOS05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMTYuMiAxNi4yIDQzLjkgNC43IDQzLjktMTguMiAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek01MDQgMzg0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LFhXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtZmxhZyIsaWNvbjpbNTc2LDUxMixbXSwiZTU2ZSIsIk0yNTYtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC03MiAwIDAgMTkuMiAxMjggNzYuOCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAxMjgtNzYuOCAwLTkxLjJ6TTI0MCAzODRsMCA4MCA5NiAwIDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTExMiA0MTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTQ5NiA0MTZjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6bS0yMjQgMGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6Il19LEtXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFkZW1hcmsiLGljb246WzY0MCw1MTIsWzg0ODJdLCJmMjVjIiwiTTM0Ni42IDExMC4yYy03LjgtMTEuNy0yMi40LTE3LTM1LjktMTIuOVMyODggMTEzLjkgMjg4IDEyOGwwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTUwLjMgNjkuNCAxMDQuMWM1LjkgOC45IDE1LjkgMTQuMiAyNi42IDE0LjJzMjAuNy01LjMgMjYuNi0xNC4yTDU0NCAyMzMuNyA1NDQgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZjMC0xNC4xLTkuMi0yNi41LTIyLjctMzAuNnMtMjguMSAxLjEtMzUuOSAxMi45TDQ0OCAyNjIuMyAzNDYuNiAxMTAuMnpNMzIgOTZDMTQuMyA5NiAwIDExMC4zIDAgMTI4czE0LjMgMzIgMzIgMzJsNjQgMCAwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgOTZ6Il19LFFXZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWJ1cm5lciIsaWNvbjpbNTEyLDUxMixbXSwiZTRmMSIsIk0yODEuNyA0OC4zTDI5NCAzNC41YzUuNC02LjEgMTMuMy04LjggMjAuOS04LjkgNy4yIDAgMTQuMyAyLjYgMTkuOSA3LjggMTkuNyAxOC4zIDM5LjggNDMuMiA1NSA3MC42IDE1LjEgMjcuMiAyNi4yIDU4LjEgMjYuMiA4OC4xIDAgODguNy03MS4zIDE1OS44LTE2MCAxNTkuOC04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44IDAtMzcuMyAxNi03My40IDM2LjgtMTA0LjUgMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4yIDUuNy01LjIgMTMuMS03LjcgMjAuMy03LjVzMTMuNCAzLjIgMTguOCA3LjVjMTQuNCAxMS40IDM4LjkgNDAuNyAzOC45IDQwLjd6TTMyMCAyNDAuMmMwLTM2LjUtMzctNzMtNTQuOC04OC40LTUuNC00LjctMTMuMS00LjctMTguNSAwLTE3LjcgMTUuNC01NC44IDUxLjktNTQuOCA4OC40IDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTkyLjggMzIwYzM3LjcgNDguMyA5Ni4xIDgwIDE2My4yIDgwIDY2LjUgMCAxMjUuMS0zMS43IDE2My04MGw0NSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTY0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ0LjggMHpNNDU2IDQwMGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxOSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxKV2U9TkgsZUdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbnQtYXJyb3ctbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3ZiIsIk0tLjUgMTEzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw3Mi03MmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDMxMC4xIDAgNTQuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDAtLjEgMC0yNjIgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03Mi03MnpNMzcuMSA0NzZMNjAuMyAyOTIuNmMxLjItOS43IDYuOC0xOC4zIDE1LjEtMjMuM0wyMzguOCAxNzBjMTAuMi02LjIgMjIuOS02LjIgMzMuMS0uMWwxNjUuNSA5OS40YzguNCA1IDE0IDEzLjcgMTUuMyAyMy40TDQ3NS45IDQ3NmMyLjQgMTkuMS0xMi41IDM2LTMxLjcgMzZsLTcxLjkgMGMtMTIuMSAwLTIzLjItNi44LTI4LjYtMTcuN0wyNzUuNCAzNTcuOWMtMS44LTMuNi01LjUtNS45LTkuNS01LjktNS45IDAtMTAuNiA0LjctMTAuNiAxMC42bDAgMTE3LjRjMCAxNy43LTE0LjMgMzItMzIgMzJMNjguOCA1MTJjLTE5LjMgMC0zNC4yLTE2LjktMzEuNy0zNnoiXX0sdEdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdXRlIixpY29uOls1MTIsNTEyLFtdLCJmNGQ3IiwiTTUxMiA5NmMwIDUwLjItNTkuMSAxMjUuMS04NC42IDE1NS0zLjggNC40LTkuNCA2LjEtMTQuNSA1TDMyMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMjc2LjQgMGM4LjctOS45IDE5LjMtMjIuNiAzMC0zNi44IDYuMy04LjQgMTIuOC0xNy42IDE5LTI3LjJMNDE2IDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NmwzOS44IDBjLTIxLTMxLjUtMzkuOC02Ny43LTM5LjgtOTYgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NnpNMTE3LjEgNDg5LjFjLTMuOCA0LjMtNy4yIDguMS0xMC4xIDExLjNsLTEuOCAyLS4yLS4yYy02IDQuNi0xNC42IDQtMjAtMS44LTI1LjItMjcuNC04NS05Ny45LTg1LTE0OC40IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAzMC0yMS4xIDY3LTQzLjUgOTcuOS0xMC43IDE0LjctMjEuNyAyOC0zMC44IDM4LjVsLS42IC43ek0xMjggMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTQxNiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxGSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtdXAiLGljb246WzM4NCw1MTIsWyJhbmdsZS1kb3VibGUtdXAiXSwiZjEwMiIsIk0yMTQuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMTA5LjMgMzI5LjQgMjQ2LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHptMTYwIDM1MmwtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDMwMS4zIDMyOS40IDQzOC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjN6Il19LGFHZT1GSCxpR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVja2V0IixpY29uOls0NDgsNTEyLFtdLCJlNGNmIiwiTTQ0My43IDIwOGMyLjcgNC43IDQuMyAxMC4yIDQuMyAxNiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtNS4xIDAtMjIuNCAyMTNjLTIuNiAyNC40LTIzLjIgNDMtNDcuOCA0M2wtMjMzLjYgMGMtMjQuNiAwLTQ1LjItMTguNS00Ny44LTQzTDM3LjEgMjU2IDMyIDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01LjggMS42LTExLjMgNC4zLTE2bDQzOS40IDB6TTIyNC0xNmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDMyLTQ4IDAgMC0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMyLTQ4IDAgMC0zMkM4MCA0OC41IDE0NC41LTE2IDIyNC0xNnoiXX0sckdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbi1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzNyIsIk00MjYuMSA5NC40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJsLTM4NCAxMjhDOC44IDE2NiAwIDE3OC4yIDAgMTkyczguOCAyNiAyMS45IDMwLjRsMzg0IDEyOGMxNi44IDUuNiAzNC45LTMuNSA0MC41LTIwLjJzLTMuNS0zNC45LTIwLjItNDAuNUwxMzMuMiAxOTIgNDI2LjEgOTQuNHpNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNnoiXX0sc0dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2IDUxMiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0em02NC0yODhMMCAxNjAgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTZ6Il19LG5HZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tdGhyb3VnaC13aW5kb3ciLGljb246WzY0MCw1MTIsW10sImU1YTkiLCJNNjQgNjRsMjI0IDAgMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNC02MC41IDI0LjItMTAwLjEgODIuNy0xMDAuMSAxNDcuOWwwIDczLjgtNjQgMCAwLTMyMHptMjg4IDBsMjI0IDAgMCAzMjAtNjcuNyAwLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNCA0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwbC0yNi42IDAgNDIuNyA2NCAxNTAuOSAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI2MC4yIDAgMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRsLTg0LjItMTI2LjIgNzQuNiAwIDQwIDQ4em0tMTU5LjUgMGwtNzMuNSAwIDAtNzMuOGMwLTEwLjIgMS42LTIwLjEgNC43LTI5LjVMMjY1LjUgMzg0ek0xOTIgMTI4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LG9HZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2ZiIsIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzMgMCA2MC4yIDI1IDYzLjYgNTcuMi0xNC43LTUuOS0zMC44LTkuMi00Ny42LTkuMi03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTMzMi4zIDM0MS41Yy02LTMuNS0xMi45LTUuNS0yMC4zLTUuNWwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA4OCA5NiAwIDAtNjQuMWMwLTIwLjggNC40LTQwLjUgMTIuMy01OC40ek0xMTIgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2em0yMjQtNDhhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek01NjAgMzUybDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMHptLTExMiAyLjdsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjN6Il19LGxHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1M2IiLCJNMjA0IDQwLjFjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0ek00IDE0NC4xYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek05Ni41IDI4NS41Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMOTYuNSAyODUuNXpNNjIuNiAyLjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNjIuNiAzNi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNMzUyLjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTQ3OC43IDI5OS4xbC00Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3NS4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjUuMi0zMy45IDY1LTUzLjkgMTA3LjItNTMuOXM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnoiXX0sT0g9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGVmdC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1hbHQtbGVmdCJdLCJmMzBhIiwiTTkuNCAyNzguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsMTI4LTEyOGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVMxOTIgMTE1LjEgMTkyIDEyOGwwIDY0IDMzNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMzNiAwIDAgNjRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTEyOC0xMjh6Il19LGNHZT1PSCxSSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1jcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFsibG9jYXRpb24iXSwiZjYwMSIsIk0yODgtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOC4zYzk4LjEgMTQgMTc1LjcgOTEuNiAxODkuNyAxODkuN2wxOC4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjMgMGMtMTQgOTguMS05MS42IDE3NS43LTE4OS43IDE4OS43bDAgMTguM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjNDMTU3LjkgNDYzLjcgODAuMyAzODYuMSA2Ni4zIDI4OEw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguMyAwQzgwLjMgMTI1LjkgMTU3LjkgNDguMyAyNTYgMzQuM0wyNTYgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEyOCAyNTZhMTYwIDE2MCAwIDEgMCAzMjAgMCAxNjAgMTYwIDAgMSAwIC0zMjAgMHptMTYwLTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxkR2U9UkgsQkg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWRvdHMtZnJvbS1saW5lIixpY29uOls1MTIsNTEyLFsiZGlhZ25vc2VzIl0sImY0NzAiLCJNMTg0IDcyYTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNMTYwIDI5OS4zYy0xOS45IDIyLjYtMzIgNTIuMi0zMiA4NC43bDAgMzItNjQgMCAwLTMyYzAtMTA2IDg2LTE5MiAxOTItMTkyczE5MiA4NiAxOTIgMTkybDAgMzItNjQgMCAwLTMyYzAtMzIuNS0xMi4xLTYyLjEtMzItODQuN2wwIDExNi43LTE5MiAwIDAtMTE2Ljd6TTIzMiAzODRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em04OC0xMDRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMjQgNDY0bDQ2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNNjQgMTg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTQyNCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LHBHZT1CSCxWbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUtaGlnaCIsaWNvbjpbNTEyLDUxMixbNjE2NjgsInRhY2hvbWV0ZXIiLCJ0YWNob21ldGVyLWZhc3QiXSwiZjYyYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NHoiXX0saEdlPVZtLHVHZT1WbSxISD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtbGVmdCIsaWNvbjpbNDQ4LDUxMixbMTcxLCJhbmdsZS1kb3VibGUtbGVmdCJdLCJmMTAwIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDIxNC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwem0zNTItMTYwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjY5LjMgMjU2IDQwNi42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAweiJdfSxmR2U9SEgscUg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtZG93biIsaWNvbjpbNTEyLDUxMixbODU5NywxMTAyMSwiYXJyb3dzLWFsdC12Il0sImYzMzgiLCJNNDA2LjYgNTAyLjZsOTYtOTZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzUyIDQ4MCAzNTJsLTY0IDAgMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMjAtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDB6TTE1MC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsNjQgMCAwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwIDY0IDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtOTYtOTZ6Il19LG1HZT1xSCxWSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LWVtcHR5IixpY29uOls2NDAsNTEyLFsiYmF0dGVyeS0wIl0sImYyNDQiLCJNMTEyIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjI0YzAgOC44IDcuMiAxNiAxNiAxNmw0MTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yMjRjMC04LjgtNy4yLTE2LTE2LTE2bC00MTYgMHpNMzIgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDQxNiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDQ4YzAgNDQuMi0zNS44IDgwLTgwIDgwbC00MTYgMGMtNDQuMiAwLTgwLTM1LjgtODAtODBsMC0yMjR6Il19LGdHZT1WSCxiR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE2IDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNzYgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sdkdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvb2tpZSIsaWNvbjpbNTEyLDUxMixbMTI3ODUwXSwiZjU2MyIsIk0yNDcuMiAxN2MtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45bC0xNC42LTgyLjhjLTMuOS0yMi4xLTE0LjYtNDIuMy0zMC43LTU3LjlMMzg4LjkgNTcuNWMtMTYuMS0xNS42LTM2LjYtMjUuNi01OC43LTI4LjdMMjQ3LjIgMTd6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHlHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2giLGljb246WzQ0OCw1MTIsWzkyMDFdLCJmMmYyIiwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptODAgMTg0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LHhHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlamVjdCIsaWNvbjpbNDQ4LDUxMixbOTE2N10sImYwNTIiLCJNMjI0IDMyYzEzLjUgMCAyNi4zIDUuNiAzNS40IDE1LjZsMTc2IDE5MmMxMi45IDE0IDE2LjIgMzQuMyA4LjYgNTEuOFM0MTkgMzIwIDQwMCAzMjBMNDggMzIwYy0xOSAwLTM2LjMtMTEuMi00My45LTI4LjdzLTQuMy0zNy43IDguNi01MS44bDE3Ni0xOTJDMTk3LjcgMzcuNiAyMTAuNSAzMiAyMjQgMzJ6TTAgNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6Il19LHdHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYXRlbGxpdGUtZGlzaCIsaWNvbjpbNTEyLDUxMixbMTI4MjI1XSwiZjdjMCIsIk0yMzIgMGMxNTQuNiAwIDI4MCAxMjUuNCAyODAgMjgwIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTI4LjEtMTAzLjktMjMyLTIzMi0yMzItMTMuMyAwLTI0LTEwLjctMjQtMjRTMjE4LjcgMCAyMzIgMHpNMjA4IDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMDEuNiAwIDE4NCA4Mi40IDE4NCAxODQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC03NS4xLTYwLjktMTM2LTEzNi0xMzYtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI2LjQgMTQyLjdjOC44LTE3LjkgMzIuNC0xOS45IDQ2LjUtNS44bDEyOC41IDEyOC41IDMyLTMyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTMyIDMyIDEyOC41IDEyOC41YzE0LjEgMTQuMSAxMiAzNy42LTUuOCA0Ni41LTM0LjIgMTYuOS03Mi42IDI2LjQtMTEzLjMgMjYuNC0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2IDAtNDAuNyA5LjUtNzkuMiAyNi40LTExMy4zeiJdfSxqSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXJvbGxpbmctZXllcyIsaWNvbjpbNTEyLDUxMixbMTI4NTgwLCJtZWgtcm9sbGluZy1leWVzIl0sImY1YTUiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5MiAzNTJsMTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTEyOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0zMi0xMjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNiAxNS41LTQ4LjQgMzcuOC01OC40LTMuNyA1LjItNS44IDExLjYtNS44IDE4LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTYuOS0yLjItMTMuMi01LjgtMTguNCAyMi4zIDEwIDM3LjggMzIuNCAzNy44IDU4LjR6bTEyOCA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNiAxNS41LTQ4LjQgMzcuOC01OC40LTMuNyA1LjItNS44IDExLjYtNS44IDE4LjQgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTYuOS0yLjItMTMuMi01LjgtMTguNCAyMi4zIDEwIDM3LjggMzIuNCAzNy44IDU4LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjR6Il19LE1HZT1qSCxVSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LWNoZWNrIixpY29uOls1MTIsNTEyLFsidGFza3MiXSwiZjBhZSIsIk0xMzMuOCAzNi4zYzEwLjkgNy42IDEzLjUgMjIuNiA1LjkgMzMuNGwtNTYgODBjLTQuMSA1LjgtMTAuNSA5LjUtMTcuNiAxMC4xUzUyIDE1OCA0NyAxNTNMNyAxMTNDLTIuMyAxMDMuNi0yLjMgODguNCA3IDc5UzMxLjYgNjkuNyA0MSA3OWwxOS44IDE5LjggMzkuNi01Ni42YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXptMCAxNjBjMTAuOSA3LjYgMTMuNSAyMi42IDUuOSAzMy40bC01NiA4MGMtNC4xIDUuOC0xMC41IDkuNS0xNy42IDEwLjFTNTIgMzE4IDQ3IDMxM0w3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDE5LjggMTkuOCAzOS42LTU2LjZjNy42LTEwLjkgMjIuNi0xMy41IDMzLjQtNS45ek0yMjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTYwIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek02NCAzNzZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSx6R2U9VUgsa0dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhY2steG1hcmsiLGljb246WzUxMiw1MTIsW10sImU1NmEiLCJNMzI4IDExMmwtMTQ0IDAtMzcuMy03NC41Yy0xLjgtMy42LTIuNy03LjYtMi43LTExLjYgMC0xNC4zIDExLjYtMjUuOSAyNS45LTI1LjlMMzQyLjEgMGMxNC4zIDAgMjUuOSAxMS42IDI1LjkgMjUuOSAwIDQtLjkgOC0yLjcgMTEuNkwzMjggMTEyek0xNjkuNiAxNjBsMTcyLjggMCA0OC43IDQwLjZDNDU3LjYgMjU2IDQ5NiAzMzggNDk2IDQyNC41IDQ5NiA0NzIuOCA0NTYuOCA1MTIgNDA4LjUgNTEybC0zMDUuMSAwQzU1LjIgNTEyIDE2IDQ3Mi44IDE2IDQyNC41IDE2IDMzOCA1NC40IDI1NiAxMjAuOSAyMDAuNkwxNjkuNiAxNjB6TTMyMy45IDI4NC4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMzMuOSAzMy45LTMzLjktMzMuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMy45IDMzLjktMzMuOSAzMy45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzMuOS0zMy45IDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMzLjktMzMuOSAzMy45LTMzLjljOS40LTkuNCA5LjQtMjQuNiAwLTMzLjl6Il19LFNHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXNodGFnIixpY29uOls1MTIsNTEyLFs2MjA5OF0sIjIzIiwiTTIxNC43IC43YzE3LjMgMy43IDI4LjMgMjAuNyAyNC42IDM4bC0xOS4xIDg5LjMgMTI2LjUgMCAyMi0xMDIuN0MzNzIuNCA4IDM4OS40LTMgNDA2LjcgLjdzMjguMyAyMC43IDI0LjYgMzhMNDEyLjIgMTI4IDQ4MCAxMjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgxLjYgMC0yNy40IDEyOCA2Ny44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgxLjYgMC0yMiAxMDIuN2MtMy43IDE3LjMtMjAuNyAyOC4zLTM4IDI0LjZzLTI4LjMtMjAuNy0yNC42LTM4bDE5LjEtODkuMy0xMjYuNSAwLTIyIDEwMi43Yy0zLjcgMTcuMy0yMC43IDI4LjMtMzggMjQuNnMtMjguMy0yMC43LTI0LjYtMzhMOTkuOCAzODQgMzIgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgxLjYgMCAyNy40LTEyOC02Ny44IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODEuNiAwIDIyLTEwMi43QzE4MC40IDggMTk3LjQtMyAyMTQuNyAuN3pNMjA2LjQgMTkybC0yNy40IDEyOCAxMjYuNSAwIDI3LjQtMTI4LTEyNi41IDB6Il19LENHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFpbiIsaWNvbjpbMzg0LDUxMixbMTI4NjQ2XSwiZjIzOCIsIk0wIDk2QzAgNDMgNDMgMCA5NiAwTDI4OCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyNTZjMCA0MC4xLTI0LjYgNzQuNS01OS41IDg4LjhsNTMuOSA2My43YzguNiAxMC4xIDcuMyAyNS4zLTIuOCAzMy44cy0yNS4zIDcuMy0zMy44LTIuOGwtNzQtODcuNS0xNTEuMyAwLTc0IDg3LjVjLTguNiAxMC4xLTIzLjcgMTEuNC0zMy44IDIuOHMtMTEuNC0yMy43LTIuOC0zMy44bDUzLjktNjMuN0MyNC42IDQyNi41IDAgMzkyLjEgMCAzNTJMMCA5NnptNjQgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTkyIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LF9HZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYW1lcGFkIixpY29uOls2NDAsNTEyLFtdLCJmMTFiIiwiTTQ0OCA2NGMxMDYgMCAxOTIgODYgMTkyIDE5MlM1NTQgNDQ4IDQ0OCA0NDhsLTI1NiAwQzg2IDQ0OCAwIDM2MiAwIDI1NlM4NiA2NCAxOTIgNjRsMjU2IDB6TTE5MiAxNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyIDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMjQwIDk2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptNjQtOTZhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0eiJdfSxXSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWV4cG9ydCIsaWNvbjpbNTc2LDUxMixbImFycm93LXJpZ2h0LWZyb20tZmlsZSJdLCJmNTZlIiwiTTk2LjUgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC05NiA3OC4xIDAtMzEgMzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtNzguMSAwIDAtMTMzLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkxLjIgMTguN0MyNzkuMiA2LjcgMjYzIDAgMjQ2IDBMOTYuNSAwek0zNTggMTc2bC05My41IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MC41IDU4LjUgMzU4IDE3NnpNMjI0LjUgMzI4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDEwNCAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxUR2U9V0gsR0g9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmltYWNlIixpY29uOls1MTIsNTEyLFsxMjg1NTYsImdyaW1hY2UiXSwiZjU3ZiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNNDAwIDM1MmMwIDI1LjItMTkuNCA0NS44LTQ0IDQ3LjhsMC05NS43YzI0LjYgMiA0NCAyMi43IDQ0IDQ3Ljh6TTI3NiAzMDRsNDAgMCAwIDk2LTQwIDAgMC05NnptLTgwIDk2bDAtOTYgNDAgMCAwIDk2LTQwIDB6bS00MC05NS44bDAgOTUuN2MtMjQuNi0yLTQ0LTIyLjctNDQtNDcuOHMxOS40LTQ1LjggNDQtNDcuOHpNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxMR2U9R0gsWUg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tc3Vid2F5IixpY29uOlszODQsNTEyLFsic3Vid2F5Il0sImYyMzkiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMCAwLTE2MC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjE2IDI1Nmw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTcyIDAgMCAxNjB6TTk2IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTIyNC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSwkR2U9WUgsWkg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvdCIsaWNvbjpbNTEyLDUxMixbMTI4MjgwLCJkb3QtY2lyY2xlIl0sImYxOTIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzUyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxBR2U9WkgsREdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9iamVjdC1ncm91cCIsaWNvbjpbNTc2LDUxMixbXSwiZjI0NyIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwzMzcuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMjczLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTMzNy4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjczLjF6bTQ0OCAwYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwzMzcuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTI3My4xek0xNDQgMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTExMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0yNTYgMzIwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0sRUdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaXAiLGljb246WzY0MCw1MTIsWzEyODY3NF0sImYyMWEiLCJNMjcyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAxMDguOC0yMS42IDguNmMtMTQuOCA1LjktMjIuNSAyMi40LTE3LjQgMzcuNSAxMC40IDMxLjMgMjYuOCA1OS4zIDQ3LjcgODMuMSAyMC4xLTkuMiA0MS43LTEzLjkgNjMuMy0xNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjRsMS42IDEuMiAwLTIxNS0xMDQgNDEuNiAwLTgzLjJjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgzLjItMTA0LTQxLjYgMCAyMTUgMS42LTEuMmMyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAyMi4zLS4xIDQ0LjYgNC41IDY1LjMgMTQgMjAuOS0yMy43IDM3LjMtNTEuOCA0Ny43LTgzLjEgNS0xNS4yLTIuNi0zMS42LTE3LjQtMzcuNUw1MTIgMjUyLjggNTEyIDE0NGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMCAwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDI3MiAwek00MDMuNCA0NzYuMWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQ4Mi4zIDE3LjYgNDkwLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxQR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYyIsaWNvbjpbMzg0LDUxMixbOTldLCI0MyIsIk0zMjkuMSAxNDIuOWMtNjIuNS02Mi41LTE1NS44LTYyLjUtMjE4LjMgMHMtNjIuNSAxNjMuOCAwIDIyNi4zIDE1NS44IDYyLjUgMjE4LjMgMGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy04Ny41IDg3LjUtMjIxLjMgODcuNS0zMDguOCAwcy04Ny41LTIyOS4zIDAtMzE2LjggMjIxLjMtODcuNSAzMDguOCAwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxYSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGhvbmUiLGljb246WzQ0OCw1MTIsWyJwaG9uZS1zcXVhcmUiXSwiZjA5OCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem04OCA5Ni43YzkuOC0yLjcgMjAuMSAyLjQgMjQgMTEuOGwyMC4zIDQ4LjdjMy40IDguMyAxLjEgMTcuOC01LjkgMjMuNWwtMjIuMSAxOGMxNi4yIDM1LjggNDQuNSA2NSA3OS42IDgyLjRsMTkuMy0yMy42YzUuNy02LjkgMTUuMi05LjMgMjMuNS01LjlsNDguNyAyMC4zYzkuNCAzLjkgMTQuNCAxNC4yIDExLjggMjRsLS44IDIuOGMtOC44IDMyLjMtNDAuMSA1OS45LTc4LjIgNTEuOC04Ny41LTE4LjUtMTU2LjMtODcuNC0xNzQuOS0xNzQuOS04LjEtMzguMSAxOS41LTY5LjQgNTEuOC03OC4ybDIuOC0uOHoiXX0sSUdlPVhILE5HZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydWxlci1jb21iaW5lZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU0NiIsIk0xIDQ0MS43QzUuNSA0NjMuNSAyNC44IDQ4MCA0OCA0ODBsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDcyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzItNjQgMCAwIDcyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzItNzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwIDAtNjQtNzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwIDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDMuMyAuMyA2LjYgMSA5Ljd6Il19LGptPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1yb3RhdGUiLGljb246WzUxMiw1MTIsWzEyODQ3MiwicmVmcmVzaCIsInN5bmMiXSwiZjAyMSIsIk02NS45IDIyOC41YzEzLjMtOTMgOTMuNC0xNjQuNSAxOTAuMS0xNjQuNSA1MyAwIDEwMSAyMS41IDEzNS44IDU2LjIgLjIgLjIgLjQgLjQgLjYgLjZsNy42IDcuMi00Ny45IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My40LTExLjMtMTAuN0MzOTAuNSAyOC42IDMyNi41IDAgMjU2IDAgMTI3IDAgMjAuMyA5NS40IDIuNiAyMTkuNSAuMSAyMzcgMTIuMiAyNTMuMiAyOS43IDI1NS43czMzLjctOS43IDM2LjItMjcuMXptNDQzLjUgNjRjMi41LTE3LjUtOS43LTMzLjctMjcuMS0zNi4ycy0zMy43IDkuNy0zNi4yIDI3LjFjLTEzLjMgOTMtOTMuNCAxNjQuNS0xOTAuMSAxNjQuNS01MyAwLTEwMS0yMS41LTEzNS44LTU2LjItLjItLjItLjQtLjQtLjYtLjZsLTcuNi03LjIgNDcuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMGMtOC41IDAtMTYuNyAzLjQtMjIuNyA5LjVTLS4xIDM0My43IDAgMzUyLjNsMSAxMjdjLjEgMTcuNyAxNC42IDMxLjkgMzIuMyAzMS43UzY1LjIgNDk2LjQgNjUgNDc4LjdsLS40LTUxLjUgMTAuNyAxMC4xYzQ2LjMgNDYuMSAxMTAuMiA3NC43IDE4MC43IDc0LjcgMTI5IDAgMjM1LjctOTUuNCAyNTMuNC0yMTkuNXoiXX0sRkdlPWptLE9HZT1qbSxLSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MiLGljb246WzM4NCw1MTIsWyJmZW1hbGUiXSwiZjE4MiIsIk0xMzYgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMTIgMzg0bC0yNS44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDQzLTEyOS00OC4zIDY1LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMjcwIDIzNCAzMTMgMzYyLjljMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0yNS44IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOHoiXX0sUkdlPUtILEJHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLW9wZW4iLGljb246WzUxMiw1MTIsWzEyODIxNCwxMjgzNjZdLCJmNTE4IiwiTTI1NiAxNDEuM2wwIDMwOS4zIC41LS4yQzMxMS4xIDQyNy43IDM2OS43IDQxNiA0MjguOCA0MTZsMTkuMiAwIDAtMzIwLTE5LjIgMGMtNDIuMiAwLTg0LjEgOC40LTEyMy4xIDI0LjYtMTYuOCA3LTMzLjQgMTMuOS00OS43IDIwLjd6TTIzMC45IDYxLjVMMjU2IDcyIDI4MS4xIDYxLjVDMzI3LjkgNDIgMzc4LjEgMzIgNDI4LjggMzJMNDY0IDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zNS4yIDBjLTUwLjcgMC0xMDAuOSAxMC0xNDcuNyAyOS41bC0xMi44IDUuM2MtNy45IDMuMy0xNi43IDMuMy0yNC42IDBsLTEyLjgtNS4zQzE4NC4xIDQ5MCAxMzMuOSA0ODAgODMuMiA0ODBMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1LjIgMGM1MC43IDAgMTAwLjkgMTAgMTQ3LjcgMjkuNXoiXX0sSEdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci10cmVlIixpY29uOls1NzYsNTEyLFtdLCJmODAyIiwiTTQ4IDI0QzQ4IDEwLjcgMzcuMyAwIDI0IDBTMCAxMC43IDAgMjRMMCAzOTJjMCAzMC45IDI1LjEgNTYgNTYgNTZsMTg0IDAgMC00OC0xODQgMGMtNC40IDAtOC0zLjYtOC04bDAtMjMyIDE5MiAwIDAtNDgtMTkyIDAgMC04OHpNMzM2IDIyNGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC04LjYtOC42Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDh6bTAgMjg4bDE5MiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTguNi04LjZjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xTDMzNiAyODhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4eiJdfSxxR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlyZ28iLGljb246WzY0MCw1MTIsW10sImU4NTAiLCJNMzY4IDMyYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEybDAgMjYuOGMxNC41LTYuOSAzMC44LTEwLjggNDgtMTAuOCA2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM1ODkuOSAzODQgNTI4IDM4NGwtNDggMCAwIDMyYzAgMTYuNiAxMi42IDMwLjIgMjguNyAzMS44bDYuNiAuM2MxNi4xIDEuNiAyOC43IDE1LjMgMjguNyAzMS44IDAgMTcuNy0xNC4zIDMyLTMyIDMyLTUzIDAtOTYtNDMtOTYtOTZsMC0zMi0xNiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCAzMDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMDRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDhsMCAzMDRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMjBjMC0xNi42LTEyLjYtMzAuMi0yOC43LTMxLjhsLTYuNi0uM0M0NC42IDk0LjIgMzIgODAuNiAzMiA2NCAzMiA0Ni4zIDQ2LjMgMzIgNjQgMzIgOTEgMzIgMTE1LjMgNDMuMSAxMzIuNyA2MSAxNTIuNiA0MyAxNzkgMzIgMjA4IDMyIDIzOS4zIDMyIDI2Ny43IDQ0LjkgMjg4IDY1LjcgMzA4LjMgNDQuOSAzMzYuNiAzMiAzNjggMzJ6TTUyOCAyMjRjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNDggNDggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OHoiXX0sUUg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94LWFyY2hpdmUiLGljb246WzUxMiw1MTIsWyJhcmNoaXZlIl0sImYxODciLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZMMCA2NHpNMzIgMTc2bDQ0OCAwIDAgMjQwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yNDB6bTE1MiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6Il19LFZHZT1RSCxqR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvdy1kb3duLXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1N2UiLCJNMTg1IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xQzEyMCAyLjcgMTA5LjMtOCA5Ni04UzcyIDIuNyA3MiAxNmwwIDEwMi4xLTMxLTMxQzMxLjYgNzcuNyAxNi40IDc3LjcgNyA4N1MtMi4zIDExMS42IDcgMTIxbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyek0xNTUuOCAyNjAuNkwxMzIuMSA0NDggMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMi44LS40LTUuNS0xLThMNTQ4LjIgMjYwLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDM2Ny40IDEzNy45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDE3MC45IDIzNy4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6TTQ0OCA0NDhsLTk3LjEgMCAwLTE0OS40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45TDQ0OCA0NDh6Il19LFVHZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxcmNvZGUiLGljb246WzQ0OCw1MTIsW10sImYwMjkiLCJNNjQgMTYwbDY0IDAgMC02NC02NCAwIDAgNjR6TTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwek02NCA0MTZsNjQgMCAwLTY0LTY0IDAgMCA2NHpNMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2ek0zMjAgOTZsMCA2NCA2NCAwIDAtNjQtNjQgMHpNMzA0IDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMjg4IDM1MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem05NiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0tMzIgMzJhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHoiXX0sV0dlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyYWdvbiIsaWNvbjpbNjQwLDUxMixbMTI4MDA5XSwiZjZkNSIsIk0zNTIgMTI0LjVsLTUxLjktMTNjLTYuNS0xLjYtMTEuMy03LjEtMTItMTMuOHMyLjgtMTMuMSA4LjctMTYuMWw0MC44LTIwLjQtNDMuMy0zMi41Yy01LjUtNC4xLTcuOC0xMS4zLTUuNi0xNy45UzI5Ny4xIDAgMzA0IDBMNDY0IDBjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRsNTcuNiA3Ni44YzYuMiA4LjMgOS42IDE4LjQgOS42IDI4LjggMCAyNi41LTIxLjUgNDgtNDggNDhsLTIxLjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdsLTEzLjMtMTMuMy0zMiAwIDAgMjEuNWMwIDI0LjggMTIuOCA0Ny45IDMzLjggNjEuMWwxMDYuNiA2Ni42YzMyLjEgMjAuMSA1MS42IDU1LjIgNTEuNiA5My4xIDAgNjAuNi00OS4xIDEwOS44LTEwOS44IDEwOS44TDMyLjMgNTEyYy0zLjMgMC02LjYtLjQtOS42LTEuNC05LjItMi44LTE2LjctOS42LTIwLjQtMTguNi0xLjMtMy4zLTIuMi02LjktMi4zLTEwLjctLjItMy43IC4zLTcuMyAxLjMtMTAuNyAyLjgtOS4yIDkuNi0xNi43IDE4LjYtMjAuNCAzLTEuMiA2LjItMiA5LjUtMi4yTDQzMy4zIDQxMmM4LjMtLjcgMTQuNy03LjcgMTQuNy0xNi4xIDAtNC4zLTEuNy04LjQtNC43LTExLjRsLTQ0LjQtNDQuNGMtMzAtMzAtNDYuOS03MC43LTQ2LjktMTEzLjFsMC0xMDIuNXpNNTEyIDcyLjNjMC0uMSAwLS4yIDAtLjNzMC0uMiAwLS4zbDAgLjZ6bS0xLjMgNy40TDQ2NC4zIDY4LjFjLS4yIDEuMy0uMyAyLjYtLjMgMy45IDAgMTMuMyAxMC43IDI0IDI0IDI0IDEwLjYgMCAxOS41LTYuOCAyMi43LTE2LjN6TTEzMC45IDExNi41YzE2LjMtMTQuNSA0MC40LTE2LjIgNTguNS00LjFsMTMwLjYgODcgMCAyNy41YzAgMzIuOCA4LjQgNjQuOCAyNCA5M2wtMjMyIDBjLTYuNyAwLTEyLjctNC4yLTE1LTEwLjRzLS41LTEzLjMgNC42LTE3LjdMMTcxIDIzMi4zIDE4LjQgMjU1LjhjLTcgMS4xLTEzLjktMi42LTE2LjktOVMuMSAyMzIuOCA1LjQgMjI4TDEzMC45IDExNi41eiJdfSxKSD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3MtZW5kIixpY29uOlszODQsNTEyLFs4OTg3LCJob3VyZ2xhc3MtMyJdLCJmMjUzIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek05NiA3NWwwLTExIDE5MiAwIDAgMTFjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlsLTY3LjkgNjcuOS02Ny45LTY3LjlDMTA2LjEgMTI0LjkgOTYgMTAwLjQgOTYgNzV6Il19LEdHZT1KSCxtbD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwIixpY29uOls1MTIsNTEyLFs1ODExOSwiZ3JpZC1ob3Jpem9udGFsIiwiZ3JpcC1ob3Jpem9udGFsIl0sImY1OGQiLCJNODggOTZjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwek0yODAgMjI0bC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHptMTkyIDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwem0wIDE5MmwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6TTI4MCAyODhjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwek04OCA0MTZsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQweiJdfSxZR2U9bWwsWkdlPW1sLGVxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci10b3AtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImJvcmRlci1zdHlsZSJdLCJmODUzIiwiTTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNTIgMzUyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OHptMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJ6bTEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyem0xNjAgMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0zODQgMTkyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFhHZT1lcSx0cT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LXVsIixpY29uOls1MTIsNTEyLFsibGlzdC1kb3RzIl0sImYwY2EiLCJNNDggMTQ0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTkyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDE5MiA2NHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6TTQ4IDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTk2IDI1NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSxLR2U9dHEsUUdlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1yb2JiZXJ5IixpY29uOls1NzYsNTEyLFtdLCJlNTM2IiwiTTQ4OC4yIDU5LjFDNDc4LjEgOTkuNiA0NDEuNyAxMjggNDAwIDEyOHMtNzguMS0yOC40LTg4LjItNjguOUwzMDMgMjQuMkMyOTguOCA3LjEgMjgxLjQtMy4zIDI2NC4yIDFTMjM2LjcgMjIuNiAyNDEgMzkuOGw4LjcgMzQuOWMxMSA0NCA0MC4yIDc5LjYgNzguMyA5OS42TDMyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDUuN2MzOC4xLTIwIDY3LjMtNTUuNiA3OC4zLTk5LjZMNTU5IDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzUwMS4yIDcuMSA0OTcgMjQuMmwtOC43IDM0Ljl6TTQwMCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTggMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTYgMCAuNiAwIDE5MS40YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI3LjMgMTMgMjAuNWM1LjkgOS4yIDE2LjEgMTQuOSAyNyAxNC45bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMwLjQgMC0zNy40LTU4LjlDMTU3LjYgMTQyIDEzMi4xIDEyOCAxMDQuNyAxMjhMNzIgMTI4eiJdfSxKR2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLWJ1dHRvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjEwYiIsIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6TTE5MiA0NjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyeiJdfSxVbT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLWEteiIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtYXNjIiwic29ydC1hbHBoYS1kb3duIl0sImYxNWQiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0xODItMzQwLjljNTAuNyAxMDEuMyA3Ny4zIDE1NC43IDgwIDE2MCA3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjljMi43LTUuMyAyOS4zLTU4LjcgODAtMTYwIDUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMTM1LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40ek0yODggMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMzk3LjMgNDE2IDQ0OCA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOWw3My40LTczLjQtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sZVllPVVtLHRZZT1VbSxhWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjBkNiIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTkyIDk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0xOTIgMjRjMCA0LjQtMy42IDguMS04IDcuNS0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OHpNNjQgMzI4YzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHptOC0xMzYuNWMtNC40IC41LTgtMy4xLTgtNy41bDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNXptMzY4IDEyOWM0LjQtLjUgOCAzLjEgOCA3LjVsMCA0OGMwIDQuNC0zLjYgOC04IDhsLTQ4IDBjLTQuNCAwLTguMS0zLjYtNy41LTggMy42LTI5IDI2LjYtNTEuOSA1NS41LTU1LjV6Il19LGFxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1taW51cyIsaWNvbjpbNTEyLDUxMixbIm1pbnVzLWNpcmNsZSJdLCJmMDU2IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjggMjMybDE3NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0saVllPWFxLGlxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXBvaW50ZXIiLGljb246WzQ0OCw1MTIsWyJtb3VzZS1wb2ludGVyIl0sImYyNDUiLCJNNzcuMyAyLjVjOC4xLTQuMSAxNy45LTMuMiAyNS4xIDIuM2wzMjAgMjM5LjljOC4zIDYuMiAxMS42IDE3IDguNCAyNi44cy0xMi40IDE2LjQtMjIuOCAxNi40bC0xNTIuMyAwIDg4LjkgMTc3LjdjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtODguOS0xNzcuNy05MS4zIDEyMS44Yy02LjIgOC4zLTE3IDExLjYtMjYuOCA4LjRTNjQgNDM0LjMgNjQgNDI0TDY0IDI0YzAtOS4xIDUuMS0xNy40IDEzLjMtMjEuNXoiXX0sclllPWlxLHJxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1zaGFyZS1ub2RlcyIsaWNvbjpbNDQ4LDUxMixbInNoYXJlLWFsdC1zcXVhcmUiXSwiZjFlMSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zNjggMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0LTE1LjQgMC0yOS41LTUuNC00MC42LTE0LjVsLTg1LjMgNDYuNSA4NS4zIDQ2LjVjMTEtOS4xIDI1LjItMTQuNSA0MC42LTE0LjUgMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NGMwLTIuNSAuMS00LjkgLjQtNy4zTDE1OC41IDMwMGMtMTEuNyAxMi4zLTI4LjIgMjAtNDYuNSAyMC0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE4LjMgMCAzNC44IDcuNyA0Ni41IDIwbDgxLjktNDQuN2MtLjMtMi40LS40LTQuOS0uNC03LjMgMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHoiXX0sc1llPXJxLHNxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLWxhcmdlIixpY29uOls0NDgsNTEyLFsidGgtbGFyZ2UiXSwiZjAwOSIsIk0zODQgOTZsLTEyOCAwIDAgMTI4IDEyOCAwIDAtMTI4em02NCAxMjhsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4ek02NCAyODhsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6bTEyOC02NGwwLTEyOC0xMjggMCAwIDEyOCAxMjggMHptNjQgNjRsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6Il19LG5ZZT1zcSxvWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2F0IixpY29uOls1NzYsNTEyLFsxMjgwMDhdLCJmNmJlIiwiTTY0IDk2YzUzIDAgOTYgNDMgOTYgOTZsMCA4NS44YzI5LjctNDQuNyA3Ny44LTc2LjIgMTMzLjQtODQgMjUuNiA2MCA4NS4yIDEwMi4xIDE1NC42IDEwMi4xIDEwLjkgMCAyMS42LTEuMSAzMi0zLjFMNDgwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0MC44LTEzNiAxMDguOCA1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNDQgMGMtNTMgMC05Ni00My05Ni05NmwwLTIyNGMwLTE2LjYtMTIuNi0zMC4yLTI4LjctMzEuOGwtNi42LS4zQzQ0LjYgMTU4LjIgMzIgMTQ0LjYgMzIgMTI4IDMyIDExMC4zIDQ2LjMgOTYgNjQgOTZ6TTUzMy44IDMuMkM1NDQuMi01LjUgNTYwIDEuOSA1NjAgMTUuNUw1NjAgMTI4YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzMzNiAxODkuOSAzMzYgMTI4bDAtMTEyLjVjMC0xMy42IDE1LjgtMjEgMjYuMi0xMi4zTDQxNiA0OCA0ODAgNDggNTMzLjggMy4yek00MDAgMTA4YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHptOTYgMGEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6Il19LGxZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci13ZWVrIixpY29uOls0NDgsNTEyLFtdLCJmNzg0IiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTkyIDB6Il19LGNZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWNvbXBhcmUiLGljb246WzUxMiw1MTIsW10sImUxM2EiLCJNMTk4LjggMS44YzktMy43IDE5LjMtMS43IDI2LjIgNS4ybDU2IDU2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC01NiA1NmMtNi45IDYuOS0xNy4yIDguOS0yNi4yIDUuMlMxODQgMTQ1LjcgMTg0IDEzNmwwLTI0LTI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjE0LjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuMyAwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zTDY0IDE0NGMwLTUzIDQzLTk2IDk2LTk2bDI0IDAgMC0yNGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJ6TTM5MiA4MGEyNCAyNCAwIDEgMCA0OCAwIDI0IDI0IDAgMSAwIC00OCAwem0tOCA3My4zYy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM0w0NDggMzY4YzAgNTMtNDMgOTYtOTYgOTZsLTI0IDAgMCAyNGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC01Ni01NmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNTYtNTZjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlMzMjggMzY2LjMgMzI4IDM3NmwwIDI0IDI0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yMTQuN3pNNzIgNDMyYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6Il19LGRZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZW8iLGljb246WzUxMiw1MTIsW10sImU4NGEiLCJNMjYwIDBjNzIuOSAwIDEzMiA1OS4xIDEzMiAxMzJsMCA1LjQtLjEgMS40LTIzLjggMjcwYy40IDIxLjcgMTguMiAzOS4yIDQwIDM5LjIgMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDBjMCA1Ny40LTQ2LjYgMTA0LTEwNCAxMDRTMzA0IDQ2NS40IDMwNCA0MDhsMC0xLjQgLjEtMS40IDIzLjktMjcwLjYgMC0yLjZjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA0YzAgMy43IC4zIDcuMyAuOCAxMWwyOS43IDE5My40Yy45IDYuMSAxLjQgMTIuMiAxLjQgMTguNGwwIDkuMmMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMwIDQyOS45IDAgMzY4IDUwLjEgMjU2IDExMiAyNTZjMTEuNyAwIDIzIDEuOCAzMy43IDUuMUwxMjkuNiAxNTYuN2MtMS4xLTYuOC0xLjYtMTMuOC0xLjYtMjAuN2wwLTRDMTI4IDU5LjEgMTg3LjEgMCAyNjAgMHpNMTEyIDMyMGE0OCA0OCAwIDEgMCAwIDk2IDQ4IDQ4IDAgMSAwIDAtOTZ6Il19LHBZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NiIsIk0yODcuOSAzMmwtNzYuMiAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkw2NS40IDQyMC41QzU3LjkgNDUwLjcgODAuOCA0ODAgMTEyIDQ4MGwyMDkuNCAwYy0xMS4yLTI0LjQtMTcuNC01MS40LTE3LjQtODAgMC0yOC42IDYuMi01NS43IDE3LjQtODAtLjUgMC0xIDAtMS42IDAtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDkuMmMzNS4yLTQwIDg2LjctNjUuMiAxNDQuMi02NS4yIDkgMCAxNy44IC42IDI2LjQgMS44bC0zMi0xMjkuMkM0ODMuNCA1Mi4xIDQ1Ny44IDMyIDQyOC4zIDMybC03Ni41IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0saFllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbGxldCIsaWNvbjpbNTc2LDUxMixbXSwiZjQ4MiIsIk0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDY0LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC02NCAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyMHptOTYgNjRsMTI4IDAgMCA2NC0xMjggMCAwLTY0em0xOTIgMGwxMjggMCAwIDY0LTEyOCAwIDAtNjR6Il19LFdtPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNha2UtY2FuZGxlcyIsaWNvbjpbNDQ4LDUxMixbMTI3ODc0LCJiaXJ0aGRheS1jYWtlIiwiY2FrZSJdLCJmMWZkIiwiTTg2LjQtMTAuNUw2MS44IDMxLjZDNTggMzguMSA1NiA0NS42IDU2IDUzLjJMNTYgNTZjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDEwNS42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41em0xMjggMEwxODkuOCAzMS42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNmwwIDIuOGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMjMzLjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjV6TTMxNy44IDMxLjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42bDAgMi44YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwzNjEuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNUwzMTcuOCAzMS42ek0xMjggMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNTMuNUMyNi43IDIyNi42IDAgMjYyLjIgMCAzMDRsMCAyMC44YzIwLjkgMS4zIDQxLjYgNy4zIDYwLjMgMThsNy4xIDQuMWMyNi4zIDE1IDU4LjkgMTMuNCA4My42LTQuMiA0My43LTMxLjIgMTAyLjMtMzEuMiAxNDYgMCAyNC42IDE3LjYgNTcuMyAxOS4zIDgzLjYgNC4ybDcuMS00LjFjMTguNy0xMC43IDM5LjMtMTYuNyA2MC4zLTE4bDAtMjAuOGMwLTQxLjgtMjYuNy03Ny40LTY0LTkwLjVsMC01My41YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDgtNjQgMCAwLTQ4ek00NDggMzczYy0xMi43IDEuMi0yNS4xIDUtMzYuNSAxMS41bC03LjEgNC4xYy00Mi42IDI0LjMtOTUuNCAyMS43LTEzNS4zLTYuOC0yNy0xOS4zLTYzLjItMTkuMy05MC4yIDAtMzkuOSAyOC41LTkyLjcgMzEuMi0xMzUuMyA2LjhsLTcuMS00LjFDMjUuMSAzNzggMTIuNyAzNzQuMSAwIDM3M2wwIDc1YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNzV6Il19LHVZZT1XbSxmWWU9V20sbVllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Zy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTQ5MCIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjQxLjggMTc2IDM0NCAxNzZjMTQuMiAwIDI3LjcgMi44IDQwIDhsMTA4LjgtODEuNmMxNC4xLTEwLjYgMzQuMi03LjcgNDQuOCA2LjRzNy43IDM0LjItNi40IDQ0LjhsLTk3LjggNzMuM2M1LjMgOC45IDkuMyAxOC43IDExLjggMjkuMWw5OC44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCAzMmMwIDkuNS0uOCAxOC43LTIuNCAyNy44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45ek0zOTguMiA0NjhjLTIzLjIgMjIuMS01MyAzNy4yLTg2LjIgNDIuMmwwLTEyOC40IDg2LjIgODYuMnpNMjY0IDMzMy44bDAgMTc2LjRjLTUxLjItNy43LTk0LjUtMzkuNy0xMTcuNy04My45TDgzLjIgNDczLjZjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsODMuNC02Mi41Yy0uMS0yLjYtLjItNS4yLS4yLTcuOWwwLTMyLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTguOCAwYzMuMy0xMy45IDkuMy0yNi43IDE3LjYtMzcuOEwyNjQgMzMzLjh6TTM1NS42IDEyOGwtODIuNCAwLTcyLjMtNzIuM0MyMTYuMSAyMi44IDI0OS40IDAgMjg4IDAgMzQxIDAgMzg0IDQzIDM4NCA5NmwwIDMuNmMwIDE1LjctMTIuNyAyOC40LTI4LjQgMjguNHoiXX0sZ1llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcnAiLGljb246WzUxMiw1MTIsW10sImU1N2IiLCJNNDQ4IDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTQ5LjVjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNMMzg2LjcgNDI5LjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMHptNS41IDIwOEwzNjAgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDkzLjUgMTE3LjUtMTE3LjV6TTk2IDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGJZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFncmFtLXByZWRlY2Vzc29yIixpY29uOls0NDgsNTEyLFtdLCJlNDc3IiwiTTI4OS4yIDEzNy45YzIuNS02IDguMy05LjkgMTQuOC05LjlsNDAgMCAwLTI0YzAtMTMuMy0xMC43LTI0LTI0LTI0bC05OCAwYzEuMyA1LjEgMiAxMC41IDIgMTZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtOTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDI0IDQwIDBjNi41IDAgMTIuMyAzLjkgMTQuOCA5LjlzMS4xIDEyLjktMy41IDE3LjRsLTY0IDY0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNjQtNjRjLTQuNi00LjYtNS45LTExLjUtMy41LTE3LjR6TTM4NCAzNTJsLTMyMCAwIDAgNjQgMzIwIDAgMC02NHptNjQgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjR6Il19LG5xPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTY4IDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0tOC05NmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHptMjY0LTcyYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHptLTI4OCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTE5MiAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LHZZZT1ucSx5WWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1uZXh0IixpY29uOls0NDgsNTEyLFtdLCJlNDc2IiwiTTM4NCAyMjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTI4IDAgMCA2NC0zMiAwYy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsNjQgNjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNjQtNjRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFMyOTQuNSAyODggMjg4IDI4OGwtMzIgMCAwLTY0IDEyOCAwek02NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTM1LjMtMjguNy02NC02NC02NGwtMzQgMGM1LjYgMjEuNy0uNSA0NS4xLTE2LjcgNjEuM2wtNjQgNjRjLTI1IDI1LTY1LjUgMjUtOTAuNSAwbC02NC02NEM5OC42IDMzMy4xIDkyLjQgMzA5LjcgOTggMjg4bC0zNCAweiJdfSx4WWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhYyIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMTYuNiAwIDMyLjctMS45IDQ4LjItNS42LTIwLjMtMzAuNS0zMi4yLTY3LTMyLjItMTA2LjQgMC0yNy4zIDUuNy01My4zIDE2LTc2LjlsMC0xMzYuNmMzNy4zLTEzLjIgNjQtNDguNyA2NC05MC41IDAtNTMtNDMtOTYtOTYtOTZ6bTIwOCA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSx3WWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MyIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgNDAweiJdfSxNWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BhIixpY29uOls1NzYsNTEyLFtdLCJmNWJiIiwiTTE2OS43IDIyNy41YzM0LjMgMTguNyA2NC41IDQ0LjEgODguOCA3NC41IDExLjEgMTMuOSAyMSAyOC45IDI5LjQgNDQuOCA4LjUtMTUuOSAxOC4zLTMwLjggMjkuNC00NC44IDI0LjMtMzAuNSA1NC41LTU1LjkgODguOC03NC41IDQxLjctMjIuNyA4OS40LTM1LjUgMTM5LjctMzUuNWw5LjkgMGMxMS4xIDAgMjAuMSA5IDIwLjEgMjAuMSAwIDE0OC0xMTkuOSAyNjcuOS0yNjcuOSAyNjcuOWwtNDAuMiAwQzExOS45IDQ4MCAwIDM2MC4xIDAgMjEyLjEgMCAyMDEgOSAxOTIgMjAuMSAxOTJsOS45IDBjNTAuNCAwIDk4LjEgMTIuOCAxMzkuNyAzNS41ek0zMDMuOSAzOGMxNi45IDE1LjkgNjEuNCA2My40IDg5IDE0Mi4zLTQwLjEgMjAuMi03NS44IDQ4LjItMTA0LjkgODIuMS0yOS4yLTMzLjktNjQuOC02MS44LTEwNC45LTgyLjEgMjcuNi03OC45IDcyLjItMTI2LjQgODktMTQyLjMgNC4zLTQuMSAxMC02IDE1LjktNnMxMS42IDIgMTUuOSA2eiJdfSx6WWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJpZXMiLGljb246WzUxMiw1MTIsW10sImU4NDYiLCJNNDAxLjYgMGM2MS4zIDAgMTEwLjQgNTAuMyAxMTAuNCAxMTEgMCAyOS40LTExLjYgNTcuOS0zMi42IDc4LjhsLTguOCA4LjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMiAwcy0xMi41LTMyLjggMC00NS4ybDguOC04LjhjOC44LTguOCAxMy44LTIxIDEzLjgtMzMuNiAwLTI1LjktMjEuMS00Ny00Ni40LTQ3LTIyLjUgMC00MS43IDE2LjEtNDUuNyAzOC4yTDI4Ny41IDQ4NS42YzAgLjEtLjEgLjMtLjEgLjQtLjIgLjgtLjMgMS42LS41IDIuMy0uMSAuMy0uMSAuNS0uMiAuNy0uMiAuNi0uNCAxLjMtLjcgMS45LS4yIC41LS40IDEtLjYgMS41LS4xIC4zLS4zIC42LS40IC45LTEuNiAzLjUtMy44IDYuNS02LjQgOS4yLTIgMi00LjIgMy43LTYuNiA1LjEtLjIgLjEtLjMgLjItLjUgLjMtLjcgLjQtMS40IC43LTIuMSAxLS4zIC4xLS42IC4zLS45IC40LS41IC4yLTEgLjQtMS41IC42LS42IC4yLTEuMiAuNS0xLjkgLjctLjIgLjEtLjUgLjItLjcgLjItLjggLjItMS42IC40LTIuMyAuNS0uMiAwLS4zIC4xLS40IC4xLS4yIDAtLjQgMC0uNiAuMS0uNyAuMS0xLjMgLjItMiAuMi0uNCAwLS44IC4xLTEuMiAuMS0uNiAwLTEuMiAuMS0xLjggLjEtLjYgMC0xLjIgMC0xLjgtLjEtLjQgMC0uOC0uMS0xLjItLjEtLjctLjEtMS40LS4xLTItLjItLjIgMC0uNCAwLS42LS4xLS4yIDAtLjMtLjEtLjUtLjEtLjgtLjItMS42LS4zLTIuMy0uNS0uMy0uMS0uNS0uMS0uOC0uMi0uNi0uMi0xLjMtLjQtMS45LS43LS41LS4yLTEtLjQtMS41LS42LS4zLS4xLS42LS4zLS45LS40LS43LS4zLTEuNC0uNy0yLjEtMS0uMi0uMS0uMy0uMi0uNS0uMy0yLjQtMS40LTQuNy0zLjEtNi42LTUuMS0yLjYtMi42LTQuOC01LjctNi40LTkuMi0uMS0uMi0uMi0uMy0uMi0uNWwtLjUtMS4xYy0uMS0uMy0uMi0uNS0uMy0uOC0uMi0uNi0uNS0xLjItLjctMS45LS4xLS4yLS4yLS41LS4yLS43LS4yLS44LS40LTEuNi0uNS0yLjMgMC0uMS0uMS0uMy0uMS0uNEwxNTYgMTAyLjJjLTQtMjIuMS0yMy4yLTM4LjItNDUuNy0zOC4yLTI1LjMgMC00Ni40IDIxLjEtNDYuNCA0NyAwIDEyLjYgNSAyNC44IDEzLjggMzMuNmw4LjggOC44YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4ycy0zMi44IDEyLjUtNDUuMiAwbC04LjgtOC44QzExLjYgMTY4LjkgMCAxNDAuMyAwIDExMSAwIDUwLjMgNDkuMSAwIDExMC40IDAgMTYzLjggMCAyMDkuNiAzOC4zIDIxOSA5MWwzNyAyMDcgMzctMjA3YzkuNC01Mi42IDU1LjItOTEgMTA4LjctOTF6Il19LG9xPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhcnMtcHJvZ3Jlc3MiLGljb246WzQ0OCw1MTIsWyJ0YXNrcy1hbHQiXSwiZjgyOCIsIk0yODggMTYwbDk2IDAgMC02NC05NiAwIDAgNjR6TTAgMTYwTDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCAyMjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZ6TTE2MCA0MTZsMjI0IDAgMC02NC0yMjQgMCAwIDY0ek0wIDQxNmwwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2eiJdfSxrWWU9b3EsU1llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxscT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJzLXN0cm9rZS1yaWdodCIsaWNvbjpbNjQwLDUxMixbOTg5NywibWFycy1zdHJva2UtaCJdLCJmMjJiIiwiTTMyMC41IDI1NmExMTIgMTEyIDAgMSAwIC0yMjQgMCAxMTIgMTEyIDAgMSAwIDIyNCAwek0yMDguNSA4MGM4Ni4zIDAgMTU4LjEgNjIuMSAxNzMuMSAxNDQuMSAxLS4xIDEuOS0uMSAyLjktLjFsMTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiA2MS40IDAtMjIuNC0yOGMtMTEtMTMuOC04LjgtMzMuOSA1LTQ1czMzLjktOC44IDQ1IDVsNjQgODBjOS4zIDExLjcgOS4zIDI4LjMgMCA0MGwtNjQgODBjLTExIDEzLjgtMzEuMiAxNi00NSA1cy0xNi0zMS4yLTUtNDVsMjIuNC0yOC02MS40IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2IDBjLTEgMC0xLjkgMC0yLjktLjEtMTUgODItODYuOCAxNDQuMS0xNzMuMSAxNDQuMS05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2eiJdfSxDWWU9bHEsX1llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvd2VyLW9ic2VydmF0aW9uIixpY29uOls0NDgsNTEyLFtdLCJlNTg2IiwiTTIwOS43IDMuNGM5LTQuNSAxOS42LTQuNSAyOC42IDBsMTYwIDgwYzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjktNS42IDExLjItMTYuOSAxNy43LTI4LjYgMTcuN2wwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMyAwIDMyIDE5MiA0NSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0NSAwIDMyLTE5Mi0xMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTgwYy0xMS43IDAtMjMtNi41LTI4LjYtMTcuNy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45bDE2MC04MHpNMzEwLjcgNDQ4bC04Ni43LTYxLjktODYuNyA2MS45IDE3My40IDB6bS0xNTMtMTkybC0zLjUgMjEuMiA2OS45IDQ5LjkgNjkuOS00OS45LTMuNS0yMS4yLTEzMi43IDB6bS0xMi4zIDczLjlsLTEwLjEgNjAuNiA0Ny41LTMzLjktMzcuNC0yNi43em0xMTkuOSAyNi43bDQ3LjUgMzMuOS0xMC4xLTYwLjYtMzcuNCAyNi43ek0xNTIgMTI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sR209e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rlcmxpbmctc2lnbiIsaWNvbjpbMzg0LDUxMixbMTYzLCJnYnAiLCJwb3VuZC1zaWduIl0sImYxNTQiLCJNOTEuMyAyODhsLTM0LjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyMS40IDBDMzcuMyAxNDcuMyAxMDUuMSA0MiAyMDcuNiA0Mmw4LjIgMGMzMy42IDAgNjYuMiAxMS4zIDkyLjUgMzIuMmwxNi4xIDEyLjdjMTMuOSAxMSAxNi4yIDMxLjEgNS4yIDQ1cy0zMS4xIDE2LjItNDUgNS4ybC0xNi4xLTEyLjdjLTE1LTExLjktMzMuNi0xOC40LTUyLjgtMTguNGwtOC4yIDBjLTU3LjMgMC05NC43IDU5LjktNjkuNyAxMTEuNCAzLjYgNy40IDYuNiAxNC45IDkuMSAyMi42bDE0OS41IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0MS4yIDBjMSAzNS4zLTguNyA3MC42LTI4LjkgMTAwLjlsLTE4LjEgMjcuMSAyMTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNzIgMGMtMTEuOCAwLTIyLjYtNi41LTI4LjItMTYuOXMtNS0yMyAxLjYtMzIuOWw1MS4yLTc2LjhjMTMuMS0xOS42IDE5LjItNDIuNiAxOC4yLTY1LjR6Il19LFRZZT1HbSxMWWU9R20sJFllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldC1kcmlwIixpY29uOls1MTIsNTEyLFsxMjg2ODhdLCJlMDA2IiwiTTIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsOTYgMCAwIDY0LTE4LjcgMGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRMMTI4IDIyNCAzMiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTAwLjEgMGMyMC4yIDI5IDUzLjkgNDggOTEuOSA0OHM3MS43LTE5IDkxLjktNDhsMzYuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MGwtMzIgMC0yMi42LTIyLjZjLTYtNi0xNC4xLTkuNC0yMi42LTkuNGwtMTguNyAwIDAtNjQgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDM2LjggNDU1LjRsLTE4LjIgNDIuNGMtMS44IDQuMS0yLjcgOC42LTIuNyAxMy4xbDAgMS4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xLjJjMC00LjUtLjktOC45LTIuNy0xMy4xbC0xOC4yLTQyLjRjLTEuOS00LjUtNi4zLTcuNC0xMS4yLTcuNHMtOS4yIDIuOS0xMS4yIDcuNHoiXX0sdTg9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWluZm8iLGljb246WzUxMiw1MTIsWyJpbmZvLWNpcmNsZSJdLCJmMDVhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMjQgMTYwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS04IDY0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA4OCA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTY0LTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LEFZZT11OCxEWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmVhdGhlciIsaWNvbjpbNTEyLDUxMixbMTI5NzE4XSwiZjUyZCIsIk0zNTIgMGM0MSAwIDgwLjMgMTYuMyAxMDkuMiA0NS4ybDUuNSA1LjVjMjkgMjkgNDUuMyA2OC4zIDQ1LjMgMTA5LjIgMCAyNC4xLTUuNyA0Ny42LTE2LjIgNjguOC0xLjkgMy43LTUuMyA2LjUtOS4zIDcuN0wzNzQuNSAyNzBjLTMuOSAxLjItNi41IDQuNy02LjUgOC44IDAgNS4xIDQuMSA5LjIgOS4yIDkuMmwzMi4yIDBjMTQuMyAwIDIxLjQgMTcuMiAxMS4zIDI3LjNsLTIyLjQgMjIuNGMtMS45IDEuOS00LjIgMy4yLTYuNyA0bC04MSAyNC4zYy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjIgMTMuMiAwIDE4LjkgMTUuNyA3LjggMjIuOS00MS4xIDI2LjYtODkuMyA0MS4xLTEzOSA0MS4xbC04NiAwLTQ4IDQ4Yy04LjggOC44LTIzLjIgOC44LTMyIDBzLTguOC0yMy4yIDAtMzJMMjU2IDIyNGM4LjgtOC44IDguOC0yMy4yIDAtMzJzLTIzLjItOC44LTMyIDBMNzkuNSAzMzYuNWMtNS43IDUuNy0xNS41IDEuNy0xNS41LTYuNCAwLTY3LjkgMjctMTMzIDc1LTE4MUwyNDIuOCA0NS4yQzI3MS43IDE2LjMgMzExIDAgMzUyIDB6Il19LEVZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsLXJpY2UiLGljb246WzUxMiw1MTIsW10sImUyZWIiLCJNMTc2IDQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yNCA0OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek01NiAxNjBsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMCAyODMuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2bDQ1Ny4xIDBjMTUuMSAwIDI3LjQgMTIuMyAyNy40IDI3LjQgMCA3MC41LTQ0LjQgMTMwLjctMTA2LjcgMTU0LjFMNDAzLjUgNDUyYy0yIDE2LTE1LjYgMjgtMzEuOCAyOGwtMjMxLjUgMGMtMTYuMSAwLTI5LjgtMTItMzEuOC0yOGwtMS44LTE0LjRDNDQuNCA0MTQuMSAwIDM1My45IDAgMjgzLjR6TTIyNCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS05NiAwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xMDQgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMjE2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yOTYgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTIwIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0zOTIgODhsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjk2IDE2bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LGNxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMjg4LjEgMzUzLjZjMTAgMCAxOS45IDIuMyAyOSA3bDc0LjQgMzcuOS0xMy04Mi41Yy0zLjItMjAuMiAzLjUtNDAuNyAxNy45LTU1LjJsNTktNTkuMS04Mi41LTEzLjFjLTIwLjItMy4yLTM3LjctMTUuOS00Ny0zNC4xbC0zOC03NC40IDAgMjczLjZ6TTQ1Ny40IDQ4OWMtNy4zIDUuMy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXMxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4yeiJdfSxQWWU9Y3EsZHE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtYXJyb3ctZG93biIsaWNvbjpbNTEyLDUxMixbInRlbXBlcmF0dXJlLWRvd24iXSwiZTAzZiIsIk02NC41IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NHMtMTQ0LTY0LjUtMTQ0LTE0NGMwLTQyLjYgMTguNS04MSA0OC0xMDcuM0w2NC41IDk2em05NiAzMzZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0yNi45LTE2LjUtNDkuOS00MC01OS4zbDAtMjguN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI4LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDM5LjEgMzEwLjZjLTYgNi0xNC4xIDkuNC0yMi42IDkuNHMtMTYuNi0zLjQtMjIuNi05LjRsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDkuNCA5LjQgMC0xNzguN2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTc4LjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC02NCA2NHoiXX0sSVllPWRxLE5ZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrLXZlbnRpbGF0b3IiLGljb246WzY0MCw1MTIsW10sImU1MjQiLCJNMTUyLjIgMTkyYy0xNS40IDM4LjMtMjQuMiA3Ny4yLTI0LjIgMTA4LjggMCAxMy4zIDEuNSAyNi4yIDQuNCAzOC43bC0xNy0zLjRjLTI5LjktNi01MS40LTMyLjItNTEuNC02Mi44bDAtODEuMyA4OC4yIDB6bTMyLjktNjRMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDgxLjNjMCA2MSA0My4xIDExMy41IDEwMi45IDEyNS41bDY2LjMgMTMuM2MxOC43IDIyLjEgNDIuOSA0MCA3MC44IDUxLjhsMC04Ny44Yy0xMC4xLTE0LjItMTYtMzEuMy0xNi00OS43IDAtNDkuNSA0My0xMzQuNCA5Ni0xMzQuNCA1Mi41IDAgOTYgODQuOSA5NiAxMzQuNCAwIDE4LjQtNS45IDM1LjQtMTYgNDkuNmwwIDg3LjdjMjcuNi0xMS44IDUxLjctMjkuNiA3MC40LTUxLjZsNjYuNy0xMy4zYzU5LjgtMTIgMTAyLjktNjQuNSAxMDIuOS0xMjUuNWwwLTgxLjNjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTEyMS41IDBjLTM0LjgtNTQuMi04Mi41LTk2LTEzNC41LTk2LTUyLjYgMC0xMDAuMiA0MS44LTEzNC45IDk2em0zMDIuNSA2NGw4OC40IDAgMCA4MS4zYzAgMzAuNS0yMS41IDU2LjgtNTEuNCA2Mi44bC0xNyAzLjRjMi45LTEyLjQgNC41LTI1LjQgNC41LTM4LjcgMC0zMS42LTguOS03MC41LTI0LjQtMTA4Ljh6TTI4OCAzMjBsMCAxOTIgNjQgMCAwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnoiXX0sRlllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtdmlkZW8iLGljb246WzM4NCw1MTIsW10sImYxYzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTgwIDMwNGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNCAzNSAzNWMzLjIgMy4yIDcuNSA1IDEyIDUgOS40IDAgMTctNy42IDE3LTE3bDAtOTQuMWMwLTkuNC03LjYtMTctMTctMTctNC41IDAtOC44IDEuOC0xMiA1bC0zNSAzNSAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sT1llPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXRyZW5kLWRvd24iLGljb246WzU3Niw1MTIsW10sImUwOTciLCJNMzg0IDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDgyLjctMTY5LjQtMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE5MiAyNDIuNyA1NC42IDEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwTDMyMCAyMDUuMyA0NjYuNyAzNTIgMzg0IDM1MnoiXX0sUlllPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9pbC1jYW4iLGljb246WzY0MCw1MTIsW10sImY2MTMiLCJNMzIwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyLTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0LjhjMCAxOSAxMS4yIDM2LjIgMjguNSA0My45bDY3LjUgMzAgMCAyMS4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI1OS4xIDBjMTguNCAwIDM1LjgtNy45IDQ4LTIxLjdMNjMzLjUgMTg3LjdjMTIuMy0xMy45LS4zLTM1LjQtMTguNC0zMS41TDQ0OCAxOTIgMzk3LjUgMTY2LjhjLTguOS00LjQtMTguNy02LjgtMjguNi02LjhsLTgwLjkgMCAwLTMyIDMyIDB6TTk2IDIwOGwwIDg2LjEtNDgtMjEuMyAwLTY0LjggNDggMHoiXX0scHE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWNhcnJ5LWJveCIsaWNvbjpbNTc2LDUxMixbInBlb3BsZS1jYXJyeSJdLCJmNGNlIiwiTTY0LTMyQTU2IDU2IDAgMSAxIDY0IDgwIDU2IDU2IDAgMSAxIDY0LTMyek0wIDE3MS4xYzAtMzIuNiAyNi41LTU5LjEgNTkuMS01OS4xIDIzLjUgMCA0NS41IDExLjMgNTkuMSAzMC40bDQ4LjcgNjguMmM1LjggOC4yIDE1LjEgMTMuMSAyNS4xIDEzLjRsMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzEwLS4zIDE5LjMtNS4yIDI1LjEtMTMuNGw0OC43LTY4LjJjMTMuNi0xOS4xIDM1LjYtMzAuNCA1OS4xLTMwLjQgMzIuNiAwIDU5LjEgMjYuNSA1OS4xIDU5LjFMNTc2IDI3MmMwIDMwLjItMTQuMiA1OC43LTM4LjQgNzYuOGwtNzYuOCA1Ny42Yy04LjEgNi0xMi44IDE1LjUtMTIuOCAyNS42bDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTMwLjIgMTQuMi01OC43IDM4LjQtNzYuOGw0MS42LTMxLjIgMC04MC4xLTIuOCAzLjljLTE4IDI1LjItNDcuMSA0MC4yLTc4LjEgNDAuMkwzNTIgMjg4Yy0uNiAwLTEuMyAwLTEuOS0uMS0uNiAwLTEuMyAuMS0xLjkgLjFsLTEyMC40IDBjLS42IDAtMS4zIDAtMS45LS4xLS42IDAtMS4zIC4xLTEuOSAuMWwtMzEuMSAwYy0zMSAwLTYwLjEtMTUtNzguMS00MC4ybC0yLjgtMy45IDAgODAuMSA0MS42IDMxLjJDMTc3LjggMzczLjMgMTkyIDQwMS44IDE5MiA0MzJsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMMzguNCAzNDguOEMxNC4yIDMzMC43IDAgMzAyLjIgMCAyNzJMMCAxNzEuMXpNMCAzNzkuM2MzLjEgMi43IDYuMyA1LjQgOS42IDcuOUw2NCA0MjggNjQgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNTI5LjcgMCA1MTJMMCAzNzkuM3pNNTY4IDI0YTU2IDU2IDAgMSAxIC0xMTIgMCA1NiA1NiAwIDEgMSAxMTIgMHptOCA0ODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04NCA1NC40LTQwLjhjMy4zLTIuNSA2LjUtNS4xIDkuNi03LjlMNTc2IDUxMnoiXX0sQlllPXBxLEhZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFpciIsaWNvbjpbNDQ4LDUxMixbMTI5NjgxXSwiZjZjMCIsIk0xNTIgMjU2bDAtMTgxLjhjLTI0LjUgMjAuNS00MCA1MS40LTQwIDg1LjhsMCA5NiA0MCAwem00OCAwbDQ4IDAgMC0yMDUuNGMtNy43LTEuNy0xNS44LTIuNi0yNC0yLjZzLTE2LjMgLjktMjQgMi42TDIwMCAyNTZ6TTI5NiA3NC4ybDAgMTgxLjggNDAgMCAwLTk2YzAtMzQuNC0xNS41LTY1LjItNDAtODUuOHpNMzIgMjU2bDMyIDAgMC05NkM2NCA3MS42IDEzNS42IDAgMjI0IDBTMzg0IDcxLjYgMzg0IDE2MGwwIDk2IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMjU2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxxWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZCIsaWNvbjpbNTEyLDUxMixbXSwiZjcyZSIsIk0yODggMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwzMiAxMTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzI4IDBjNDguNiAwIDg4LTM5LjQgODgtODhTNDA4LjYgMCAzNjAgMEwzMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTY0IDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2TDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTEyOCA1MTJsNDAgMGM0OC42IDAgODgtMzkuNCA4OC04OHMtMzkuNC04OC04OC04OEwzMiAzMzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTM2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6Il19LFZZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXllci1ncm91cCIsaWNvbjpbNTEyLDUxMixbXSwiZjVmZCIsIk0yMzIuNSA1LjJjMTQuOS02LjkgMzIuMS02LjkgNDcgMGwyMTguNiAxMDFjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEwxMy45IDE0OS44QzUuNCAxNDUuOCAwIDEzNy4zIDAgMTI4czUuNC0xNy45IDEzLjktMjEuOEwyMzIuNSA1LjJ6TTQ4LjEgMjE4LjRsMTY0LjMgNzUuOWMyNy43IDEyLjggNTkuNiAxMi44IDg3LjMgMGwxNjQuMy03NS45IDM0LjEgMTUuOGM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgMjc3LjhDNS40IDI3My44IDAgMjY1LjMgMCAyNTZzNS40LTE3LjkgMTMuOS0yMS44bDM0LjEtMTUuOHpNMTMuOSAzNjIuMmwzNC4xLTE1LjggMTY0LjMgNzUuOWMyNy43IDEyLjggNTkuNiAxMi44IDg3LjMgMGwxNjQuMy03NS45IDM0LjEgMTUuOGM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgNDA1LjhDNS40IDQwMS44IDAgMzkzLjMgMCAzODRzNS40LTE3LjkgMTMuOS0yMS44eiJdfSxqWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLW1hc2siLGljb246WzUxMiw1MTIsW10sImUwNjMiLCJNNDQ1LjkgMTkzYy0uMS0uNC0uMi0uOS0uMi0xLjMtMTUuNy0xMDguNC0xMDguOS0xOTEuNy0yMjEuNy0xOTEuNy04NSAwLTE1OSA0Ny40LTE5Ni45IDExNy4yTDI4My4zIDI4OCA0NTYgMjg4IDQ0Mi45IDMzNiAzMzYgMzM2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDk4LjIgMC04LjcgMzItODkuNSAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDgwLjYgMGMtNi43IDE5LjEtMjQuOCAzMi00NS4zIDMyTDI4OCA0NjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTA0LjUtMjQ3LjUtMTY1QzMgMTgyLjEgMCAyMDIuNyAwIDIyNCAwIDI3OCAxOS4xIDMyNy41IDUwLjkgMzY2LjIgNTguOSAzNzUuOSA2NCAzODcuOCA2NCA0MDAuNEw2NCA0NjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTI3LjMgMCAuNyAwIDEzMS4zIDBjNDQuOSAwIDgzLjgtMzEuMSA5My42LTc0LjlsMzMuOS0xNTAuM2MzLjMtMTQuNC0uMy0yOS41LTkuNy00MUw0NDUuOSAxOTN6TTI4OCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0sWW09e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMiLGljb246WzUxMiw1MTIsWyJzaWduLWxhbmd1YWdlIiwic2lnbmluZyJdLCJmMmE3IiwiTTUxMiAxNjBsLS4xIDcyLjZjMCA0NC44LTE3LjYgODcuMS00Ny45IDExOC40LS4zLTc3LTQwLjEtMTQ4LjQtMTA1LjQtMTg5LjNsLTEuOS0xLjJjMi41LTMuNyAyLjgtOC42IC40LTEyLjdsLTYyLTEwNy40Yy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOFMzMzAgNSAzMzYuNiAxNi41bDY4IDExNy44IDAgMCAwIDAgNDMuMyA3NSAuMS00OS4zYzAtMTcuNyAxNC40LTMyIDMyLTMyczMyIDE0LjQgMzIgMzJ6TTI5OC40IDEyNC4yYy0xNC4xLTguOC0yOS44LTEyLjctNDUuMi0xMi4xTDIxNi43IDQ4LjhjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44bDY3LjEgMTE2LjItMjctMTYuOXpNMjExLjkgODguNWwxNi40IDI4LjRjLTE1LjEgNS41LTI4LjYgMTUuNi0zOC4zIDI5LjdsLTE5LjctMzQuMmMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6bS00Ni40IDYzLjdsMTIuNSAyMS43Yy0yIDguNi0yLjUgMTcuNS0xLjcgMjYuMWwtNC4zIDAgMCAwLTM0LjQgMC0xMy43LTIzLjhjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44czI2LjItMi43IDMyLjggOC44ek0yMjguOSAxNzVjOS40LTE1IDI5LjEtMTkuNSA0NC4xLTEwLjJsNjAuMiAzNy42QzM4NC43IDIzNC43IDQxNiAyOTEuMiA0MTYgMzUybDAgOGMwIDgzLjktNjguMSAxNTItMTUyIDE1Mkw4OCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOTIgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkw1NiA0NDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTI0IDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMMjQgMzY4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE1NiAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDI5NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMzYgMCAwIDAgMCAwIDkzLjIgMC00Ni4yLTI4LjljLTE1LTkuNC0xOS41LTI5LjEtMTAuMi00NC4xeiJdfSxVWWU9WW0sV1llPVltLEdZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXRzIixpY29uOls1MTIsNTEyLFtdLCJmNDkwIiwiTTQ5NS4zIDc2LjZjLTQuNi04LjctMTYuMy05LjctMjMuMy0yLjdMMjk3LjkgMjQ4Yy03IDctNiAxOC43IDIuNyAyMy4zIDIwLjEgMTAuNyA0MyAxNi43IDY3LjQgMTYuNyA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI0LjMtNi00Ny4zLTE2LjctNjcuNHpNMjQwLjcgMjExLjRjNC42IDguNyAxNi4zIDkuNyAyMy4zIDIuN0w0MzguMSA0MGM3LTcgNi0xOC43LTIuNy0yMy4zLTIwLjEtMTAuNy00My0xNi43LTY3LjQtMTYuNy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NCAwIDI0LjMgNiA0Ny4zIDE2LjcgNjcuNHpNMTQ0IDIyNEM3OS4yIDIyNCAyNC40IDI2Ni44IDYuMyAzMjUuNiAzLjQgMzM1LjEgMTEgMzQ0IDIwLjkgMzQ0bDI0Ni4yIDBjOS45IDAgMTcuNS04LjkgMTQuNi0xOC40LS45LTMtMS45LTUuOS0zLTguNy0zNy40LTE4LjEtNjgtNDgtODctODQuOC0xNC45LTUuMi0zMC45LTguMS00Ny42LTguMXpNMjgxLjcgNDEwLjRjMi45LTkuNS00LjctMTguNC0xNC42LTE4LjRMMjAuOSAzOTJDMTEgMzkyIDMuNCA0MDAuOSA2LjMgNDEwLjQgMjQuNCA0NjkuMiA3OS4yIDUxMiAxNDQgNTEyczExOS42LTQyLjggMTM3LjctMTAxLjZ6Il19LFlZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3ZWlnaHQtaGFuZ2luZyIsaWNvbjpbNTEyLDUxMixbXSwiZjVjZCIsIk0yMjQgOTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTIyLjUgMzJjMy41LTEwIDUuNS0yMC44IDUuNS0zMiAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDExLjIgMS45IDIyIDUuNSAzMmwtMjEuOCAwYy0yOC4zIDAtNTMuMiAxOC41LTYxLjMgNDUuNkwyLjQgNDQwLjJDLjggNDQ1LjQgMCA0NTAuOCAwIDQ1Ni4yIDAgNDg3IDI1IDUxMiA1NS44IDUxMmw0MDAuNCAwYzMwLjggMCA1NS44LTI1IDU1LjgtNTUuOCAwLTUuNC0uOC0xMC44LTIuNC0xNmwtODAtMjY2LjVjLTguMS0yNy4xLTMzLTQ1LjYtNjEuMy00NS42bC0yMS44IDB6Il19LFpZZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlIixpY29uOls1MTIsNTEyLFsxMjc5MjJdLCJmNTIyIiwiTTE0MS40IDIuM0MxMDMtOCA2My41IDE0LjggNTMuMyA1My4yTDIuNSAyNDIuN0MtNy44IDI4MS4xIDE1IDMyMC42IDUzLjQgMzMwLjlsMTg5LjUgNTAuOGMzOC40IDEwLjMgNzcuOS0xMi41IDg4LjItNTAuOWw1MC44LTE4OS41YzEwLjMtMzguNC0xMi41LTc3LjktNTAuOS04OC4yTDE0MS40IDIuM3ptMjMgMjA1LjdhMzIgMzIgMCAxIDEgNTUuNC0zMiAzMiAzMiAwIDEgMSAtNTUuNCAzMnpNNzkuMiAyMjAuM2EzMiAzMiAwIDEgMSAzMiA1NS40IDMyIDMyIDAgMSAxIC0zMi01NS40em0xODUgOTYuNGEzMiAzMiAwIDEgMSAtMzItNTUuNCAzMiAzMiAwIDEgMSAzMiA1NS40em05LTIwOC40YTMyIDMyIDAgMSAxIDMyIDU1LjQgMzIgMzIgMCAxIDEgLTMyLTU1LjR6bS0xMjEgMTQuNGEzMiAzMiAwIDEgMSAtMzItNTUuNCAzMiAzMiAwIDEgMSAzMiA1NS40ek00MTggMTkyTDM3Ny40IDM0My4yYy0xNy4yIDY0LTgzIDEwMi0xNDcgODQuOWwtMzguMy0xMC4zIDAgMzAuMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NEw0MTggMTkyeiJdfSxocT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLXNsYXNoIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0LXNsYXNoIl0sImUwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTctNTcgMC0xOTAuM2MyNi44LTEuOSA0OC0yNC4zIDQ4LTUxLjYgMC04LTEuOS0xNi01LjUtMjMuMkw0OTcuNyA2Ny40QzQ4Ni44IDQ1LjcgNDY0LjcgMzIgNDQwLjQgMzJMMTM1LjYgMzJjLTEwLjcgMC0yMSAyLjctMzAuMiA3LjZMNDEtMjQuOXpNMzIxLjggMjU2TDQ0OCAyNTYgNDQ4IDM4Mi4yIDMyMS44IDI1NnpNMzUyIDQyMS44bC02NC02NCAwIDEwLjJjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTEyIDU4LjIgMC0xMzQuOC0xMzQuOC0yOS45IDU5LjljLTMuNiA3LjItNS41IDE1LjEtNS41IDIzLjIgMCAyNy4zIDIxLjIgNDkuNyA0OCA1MS42TDY0IDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEwLjJ6Il19LFhZZT1ocSx1cT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb3J0LWRvd24iLGljb246WzM4NCw1MTIsWyJzb3J0LWRlc2MiXSwiZjBkZCIsIk0zMiAyODhjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhTLjIgMzMzLjUgOS40IDM0Mi42bDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzNjQuOSAyODggMzUyIDI4OEwzMiAyODh6Il19LEtZZT11cSxRWWU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVzZXRhLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjEiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDEwNC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAyMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjODAuMiAwIDE0Ni42LTU5IDE1OC4yLTEzNmwyNS44IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI1LjggMEMzODYuNiA5MSAzMjAuMiAzMiAyNDAgMzJMMTEyIDMyek0zMzMgMTY4bC0xODkgMCAwLTcyIDk2IDBjNDQuNyAwIDgyLjMgMzAuNiA5MyA3MnpNMTQ0IDIxNmwxODkgMGMtMTAuNyA0MS40LTQ4LjIgNzItOTMgNzJsLTk2IDAgMC03MnoiXX0sZnE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0LXNjcmVlbi1idXR0b24iLGljb246WzQ0OCw1MTIsWyJ0YWJsZXQtYWx0Il0sImYzZmEiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0yNTYgNDMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCA2NGwtMzIwIDAgMCAyODggMzIwIDAgMC0yODh6Il19LEpZZT1mcSxtcT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctZG9sbGFyIixpY29uOls1NzYsNTEyLFsiaGFuZC1ob2xkaW5nLXVzZCJdLCJmNGMwIiwiTTI4OC0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMi0xLjggMGMtMzYuNiAwLTY2LjIgMjkuNy02Ni4yIDY2LjIgMCAzMy40IDI0LjkgNjEuNiA1OCA2NS43bDYxIDcuNmM1LjEgLjYgOSA1IDkgMTAuMiAwIDUuNy00LjYgMTAuMi0xMC4yIDEwLjJMMjQwIDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhzMTIuNSAyOCAyOCAyOGwyNCAwIDAgMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEyIDEuOCAwYzM2LjYgMCA2Ni4yLTI5LjcgNjYuMi02Ni4yIDAtMzMuNC0yNC45LTYxLjYtNTgtNjUuN2wtNjEtNy42Yy01LjEtLjYtOS01LTktMTAuMiAwLTUuNyA0LjYtMTAuMiAxMC4yLTEwLjJMMzI4IDc2YzE1LjUgMCAyOC0xMi41IDI4LTI4cy0xMi41LTI4LTI4LTI4bC0xNiAwIDAtMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSxlWmU9bXEsZ3E9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkIixpY29uOls1MTIsNTEyLFsxMjg3MzcsInNoaWVsZC1ibGFuayJdLCJmMTMyIiwiTTI1NiAwYzQuNiAwIDkuMiAxIDEzLjQgMi45TDQ1Ny44IDgyLjhjMjIgOS4zIDM4LjQgMzEgMzguMyA1Ny4yLS41IDk5LjItNDEuMyAyODAuNy0yMTMuNiAzNjMuMi0xNi43IDgtMzYuMSA4LTUyLjggMC0xNzIuNC04Mi41LTIxMy4xLTI2NC0yMTMuNi0zNjMuMi0uMS0yNi4yIDE2LjMtNDcuOSAzOC4zLTU3LjJMMjQyLjcgMi45QzI0Ni45IDEgMjUxLjQgMCAyNTYgMHoiXX0sdFplPWdxLGJxPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2giLGljb246WzUxMiw1MTIsWyJsYXVnaCJdLCJmNTk5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xMDEuNiAzMTRjLTMuNy0xMy43IDcuNS0yNiAyMS43LTI2bDI2NS40IDBjMTQuMiAwIDI1LjQgMTIuMyAyMS43IDI2LTE4LjUgNjgtODAuNiAxMTgtMTU0LjQgMTE4UzEyMCAzODIgMTAxLjYgMzE0ek0xNDQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGFaZT1icSxpWmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtaG9sZGluZyIsaWNvbjpbNjQwLDUxMixbXSwiZjRjMiIsIk04MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBTMCA4MS45IDAgMTA0TDAgMzI1LjVjMCAyNS41IDEwLjEgNDkuOSAyOC4xIDY3LjlMMTI4IDQ5My4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdsNjYuNyAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNzguOWMwLTI5LjctMTEuOC01OC4yLTMyLjgtNzkuMmwtMjUuMy0yNS4zIDAgMGMtNy4zLTcuMy0yMy4xLTIzLjEtNDcuMi00Ny4yLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zYzI0LjEgMjQuMSAzOS45IDM5LjkgNDcuMiA0Ny4yIDExIDExIDkuMiAyOS4yLTMuNyAzNy44LTkuNyA2LjUtMjIuNyA1LjItMzEtMy4xTDk4LjcgMzA5LjVjLTEyLTEyLTE4LjctMjguMy0xOC43LTQ1LjNMODAgMTA0em00ODAgMGwwIDE2MC4yYzAgMTctNi43IDMzLjMtMTguNyA0NS4zbC01MS4xIDUxLjFjLTguMyA4LjMtMjEuMyA5LjYtMzEgMy4xLTEyLjktOC42LTE0LjctMjYuOS0zLjctMzcuOCA3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBjLTI0LjEgMjQuMS0zOS45IDM5LjktNDcuMiA0Ny4ybDAgMC0yNS4zIDI1LjNjLTIxIDIxLTMyLjggNDkuNS0zMi44IDc5LjJsMCA3OC45YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDY2LjcgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN2w5OS45LTk5LjljMTgtMTggMjguMS00Mi40IDI4LjEtNjcuOUw2NDAgMTA0YzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQweiJdfSx2cT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LXNob3BwaW5nIixpY29uOls2NDAsNTEyLFsxMjg3MjIsInNob3BwaW5nLWNhcnQiXSwiZjA3YSIsIk0yNC0xNkMxMC43LTE2IDAtNS4zIDAgOFMxMC43IDMyIDI0IDMybDQ1LjMgMGMzLjkgMCA3LjIgMi44IDcuOSA2LjZsNTIuMSAyODYuM2M2LjIgMzQuMiAzNiA1OS4xIDcwLjggNTkuMUw0NTYgMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNTUuOSAwYy0xMS42IDAtMjEuNS04LjMtMjMuNi0xOS43bC01LjEtMjguMyAzMDMuNiAwYzMwLjggMCA1Ny4yLTIxLjkgNjIuOS01Mi4yTDU2OC45IDY5LjlDNTcyLjYgNTAuMiA1NTcuNSAzMiA1MzcuNCAzMmwtNDEyLjcgMC0uNC0yYy00LjgtMjYuNi0yOC00Ni01NS4xLTQ2TDI0LTE2ek0yMDggNTEyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjI0IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxyWmU9dnEsc1plPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9jdGFnb24iLGljb246WzUxMiw1MTIsWzEyODcyMV0sImYzMDYiLCJNMTg4LjYgLjFjLTE3IDAtMzMuMyA2LjctNDUuMyAxOC43TDE5LjIgMTQzQzcuMiAxNTUgLjUgMTcxLjIgLjUgMTg4LjJsMCAxMzUuNmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0wxNDMuNCA0OTMuMmMxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43bDEzNS42IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMNDkzLjYgMzY5YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNsMC0xMzUuNmMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNjkuNSAxOC44Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDE4OC42IC4xeiJdfSxuWmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludGVyIixpY29uOls0NDgsNTEyLFtdLCJmMjVhIiwiTTEyOCA0MGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTQ4LjJjOC41LTcuNiAxOS43LTEyLjIgMzItMTIuMiAyMC42IDAgMzguMiAxMyA0NSAzMS4yIDguOC05LjMgMjEuMi0xNS4yIDM1LTE1LjIgMjUuMyAwIDQ2IDE5LjUgNDcuOSA0NC4zIDguNS03LjcgMTkuOC0xMi4zIDMyLjEtMTIuMyAyNi41IDAgNDggMjEuNSA0OCA0OGwwIDExMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtODUuMyAwYy01IDAtOS45LS4zLTE0LjctMS01NS4zLTUuNi0xMDYuMi0zNC0xNDAtNzlMOCAzMzZjLTEzLjMtMTcuNy05LjctNDIuNyA4LTU2czQyLjctOS43IDU2IDhsNTYgNzQuNyAwLTMyMi43ek0yNDAgMzA0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2em00OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2YzAtOC44LTcuMi0xNi0xNi0xNnptODAgMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtOTZ6Il19LG9aZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWdpc3RlcmVkIixpY29uOls1MTIsNTEyLFsxNzRdLCJmMjVkIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDAgMTQ0bDgwIDBjMzkuOCAwIDcyIDMyLjIgNzIgNzIgMCAyOC45LTE3IDUzLjgtNDEuNiA2NS4zbDMwLjIgNTAuM2M2LjggMTEuNCAzLjEgMjYuMS04LjIgMzIuOXMtMjYuMSAzLjEtMzIuOS04LjJsLTQxLTY4LjMtMzQuNCAwIDAgNTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNzZjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTcyIDk2bDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNTYgMCAwIDQ4IDQ4IDB6Il19LGxaZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1zaWduYWwiLGljb246WzU3Niw1MTIsW10sImUwMTIiLCJNNTE1LjkgMjQwbC0xOS45IDAgMCAxNDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEzNyAwYy0yNC05MS43LTkzLjUtMTY1LTE4My0xOTQuM2wwLTEzLjctMTkuOSAwYy0xNS41IDAtMjguMS0xMi42LTI4LjEtMjguMSAwLTcuNiAzLjEtMTQuOSA4LjYtMjAuMkwyNzYuNS00LjlDMjgzLjktMTIgMjkzLjctMTYgMzA0LTE2czIwLjEgNCAyNy41IDExLjFMNTM1LjQgMTkxLjdjNS41IDUuMyA4LjYgMTIuNiA4LjYgMjAuMiAwIDE1LjUtMTIuNiAyOC4xLTI4LjEgMjguMXpNMjgwIDE5MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDB6TTI0IDI4OGMxMjguMSAwIDIzMiAxMDMuOSAyMzIgMjMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDE5MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTAgNDA4YzAtMTMuMyAxMC43LTI0IDI0LTI0IDc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNi0zOS40LTg4LTg4LTg4LTEzLjMgMC0yNC0xMC43LTI0LTI0eiJdfSxjWmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFuZ2xhZGVzaGktdGFrYS1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMmU2IiwiTTM2IDMyLjNDMTguNCAzMC4xIDIuNCA0Mi41IC4zIDYwUzEwLjUgOTMuNiAyOCA5NS44bDcuOSAxYzE2IDIgMjggMTUuNiAyOCAzMS44bDAgMzEuNS00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDAgMCAxNzZjMCA1MyA0MyA5NiA5NiA5NmwzMiAwYzEwNiAwIDE5Mi04NiAxOTItMTkybDAtMzJjMC01My00My05Ni05Ni05NmwtMTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTc2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDAgMC0zMS41QzEyOCA4MC4xIDkyIDM5LjIgNDMuOSAzMy4ybC03LjktMXoiXX0sa2p0PXtmYTA6d3dlLGZhMTpNd2UsZmEyOnp3ZSxmYTM6a3dlLGZhNDpTd2UsZmE1OkN3ZSxmYTY6X3dlLGZhNzpUd2UsZmE4Okx3ZSxmYTk6JHdlLGZhRG9sbGFyU2lnbjpRZixmYURvbGxhcjpBd2UsZmFVc2Q6RHdlLGZhRG9nOkV3ZSxmYVRydWNrTW92aW5nOlB3ZSxmYVJvdGF0ZTpjSSxmYVN5bmNBbHQ6SXdlLGZhU3F1YXJlTWludXM6ZEksZmFNaW51c1NxdWFyZTpOd2UsZmFBbGlnbkp1c3RpZnk6RndlLGZhQ2FsZW5kYXJDaGVjazpPd2UsZmFGYWNlS2lzczpwSSxmYUtpc3M6UndlLGZhS2l0Y2hlblNldDpCd2UsZmFEbmE6SHdlLGZhQ2hpbGRSZWFjaGluZzpxd2UsZmFQYXN0ZTpRNSxmYUZpbGVDbGlwYm9hcmQ6VndlLGZhTWV0ZW9yOmp3ZSxmYUdlYXJzOmhJLGZhQ29nczpVd2UsZmFGaWxlQ2lyY2xlUGx1czpXd2UsZmFJY2ljbGVzOkd3ZSxmYUFycm93VHJlbmRVcDpZd2UsZmFIZXhhZ29uTm9kZXNCb2x0Olp3ZSxmYVF1ZXN0aW9uOlh3ZSxmYUhhbmRzQm91bmQ6S3dlLGZhUGVyc29uV2Fsa2luZ0x1Z2dhZ2U6UXdlLGZhRmlsZUFycm93RG93bjp1SSxmYUZpbGVEb3dubG9hZDpKd2UsZmFQZXJzb25Cb290aDplTWUsZmFMb2N1c3Q6dE1lLGZhUmlnaHRMb25nOmZJLGZhTG9uZ0Fycm93QWx0UmlnaHQ6YU1lLGZhVHJ1Y2tEcm9wbGV0OmlNZSxmYUhhbmRIb2xkaW5nTWVkaWNhbDpyTWUsZmFIYW5kUG9pbnRMZWZ0OnNNZSxmYUNhbGN1bGF0b3I6bk1lLGZhTWludXM6SjUsZmFTdWJ0cmFjdDpvTWUsZmFBcnJvd1VwWkE6bUksZmFTb3J0QWxwaGFVcEFsdDpsTWUsZmFNaWNyb3Bob25lU2xhc2g6Y01lLGZhU3F1YXJlUGVuOkpmLGZhUGVuU3F1YXJlOmRNZSxmYVBlbmNpbFNxdWFyZTpwTWUsZmFIYW5kRmlzdDpnSSxmYUZpc3RSYWlzZWQ6aE1lLGZhQ29tbWVudFNtczpiSSxmYVNtczp1TWUsZmFTaW1DYXJkOmZNZSxmYVNjYWxlQmFsYW5jZWQ6dkksZmFCYWxhbmNlU2NhbGU6bU1lLGZhQ2FyOnlJLGZhQXV0b21vYmlsZTpnTWUsZmFDcm9wU2ltcGxlOnhJLGZhQ3JvcEFsdDpiTWUsZmFNZWRhbDp2TWUsZmFTY3JvbGw6eU1lLGZhRmlsZUV4Y2VsOnhNZSxmYUZpbHRlcjp3TWUsZmFEcnVtOk1NZSxmYU1hcFBpbjp6TWUsZmFTY2FsZVVuYmFsYW5jZWRGbGlwOndJLGZhQmFsYW5jZVNjYWxlUmlnaHQ6a01lLGZhQXJyb3dzVG9DaXJjbGU6U01lLGZhRW52ZWxvcGU6Q01lLGZhQmFieTpfTWUsZmFTcXVhcmVDYXJldERvd246TUksZmFDYXJldFNxdWFyZURvd246VE1lLGZhVGVudDpMTWUsZmFBOiRNZSxmYVBhcmFjaHV0ZUJveDpBTWUsZmFDYXJ0QXJyb3dEb3duOkRNZSxmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uOkVNZSxmYUNsb3VkQXJyb3dVcDplbSxmYUNsb3VkVXBsb2FkOlBNZSxmYUNsb3VkVXBsb2FkQWx0OklNZSxmYUF0Ok5NZSxmYUluZGlhblJ1cGVlU2lnbjp0bSxmYUluZGlhblJ1cGVlOkZNZSxmYUlucjpPTWUsZmFUcnVjazpSTWUsZmFDaGFsa2JvYXJkVXNlcjp6SSxmYUNoYWxrYm9hcmRUZWFjaGVyOkJNZSxmYVVzZXJDaGVjazpITWUsZmFVc2VyTmluamE6cU1lLGZhUGxhbnRXaWx0OlZNZSxmYVdlaWdodFNjYWxlOmtJLGZhV2VpZ2h0OmpNZSxmYUNhcmV0UmlnaHQ6Wm0sZmFGbG9yaW5TaWduOlVNZSxmYUJlbGw6WG0sZmFMYXJpU2lnbjpXTWUsZmFNaWxsU2lnbjpHTWUsZmFQZXJzb25Tbm93Ym9hcmRpbmc6U0ksZmFTbm93Ym9hcmRpbmc6WU1lLGZhVHR5OkNJLGZhVGVsZXR5cGU6Wk1lLGZhVXNlcnNSZWN0YW5nbGU6WE1lLGZhTW9iaWxlOmFtLGZhTW9iaWxlQW5kcm9pZDpLTWUsZmFNb2JpbGVQaG9uZTpRTWUsZmFBcnJvd3NUdXJuVG9Eb3RzOkpNZSxmYUV4Y2xhbWF0aW9uOmV6ZSxmYUNodXJjaDp0emUsZmFUb2dnbGVPZmY6YXplLGZhU2hvZVByaW50czppemUsZmFGaWxlQ2lyY2xlRXhjbGFtYXRpb246cnplLGZhV2FsbGV0OkttLGZhTWVzc2FnZTplOCxmYUNvbW1lbnRBbHQ6c3plLGZhVHJvcGh5Om56ZSxmYUZhY2VEaXp6eTpfSSxmYURpenp5Om96ZSxmYUJhY3RlcmlhOmx6ZSxmYUVhckRlYWY6TjUsZmFEZWFmOmN6ZSxmYURlYWZuZXNzOmR6ZSxmYUhhcmRPZkhlYXJpbmc6cHplLGZhUGVvcGxlQXJyb3dzOlRJLGZhUGVvcGxlQXJyb3dzTGVmdFJpZ2h0Omh6ZSxmYUhhbmRzQ2xhcHBpbmc6dXplLGZhVmlydXNDb3ZpZFNsYXNoOmZ6ZSxmYUNhbGVuZGFyRGF5czpMSSxmYUNhbGVuZGFyQWx0Om16ZSxmYURpYW1vbmRUdXJuUmlnaHQ6JEksZmFEaXJlY3Rpb25zOmd6ZSxmYUhhbmRQb2ludFVwOmJ6ZSxmYUJlemllckN1cnZlOnZ6ZSxmYVBlcnNvbkhhbGZEcmVzczp5emUsZmFTcXVhcmVQb2xsSG9yaXpvbnRhbDpBSSxmYVBvbGxIOnh6ZSxmYVNjaG9vbENpcmNsZVhtYXJrOnd6ZSxmYUhhbmRMaXphcmQ6TXplLGZhQ2hhbGtib2FyZDpESSxmYUJsYWNrYm9hcmQ6enplLGZhVXBSaWdodEZyb21TcXVhcmU6RUksZmFFeHRlcm5hbExpbmtBbHQ6a3plLGZhU3F1YXJlRnVsbDpTemUsZmFDbG92ZXI6Q3plLGZhVGVldGhPcGVuOl96ZSxmYUJhcnNTdGFnZ2VyZWQ6aW0sZmFSZW9yZGVyOlR6ZSxmYVN0cmVhbTpMemUsZmFXYXJlaG91c2U6JHplLGZhU3dhdGNoYm9vazpBemUsZmFDYW1wZ3JvdW5kOkR6ZSxmYVBlcnNvbldhbGtpbmdBcnJvd1JpZ2h0OkV6ZSxmYUdsYXNzZXM6UHplLGZhQ2lyY2xlUGF1c2U6UEksZmFQYXVzZUNpcmNsZTpJemUsZmFNZW1vcnk6TnplLGZhR2lmdDpGemUsZmFNb25leUJpbGxXaGVhdDpPemUsZmFEdW5nZW9uOlJ6ZSxmYVN1aXRjYXNlTWVkaWNhbDpJSSxmYU1lZGtpdDpCemUsZmFQZXJzb25DYW5lOkh6ZSxmYUdhdWdlOkY1LGZhRGFzaGJvYXJkOnF6ZSxmYUdhdWdlTWVkOlZ6ZSxmYVRhY2hvbWV0ZXJBbHRBdmVyYWdlOmp6ZSxmYUVudmVsb3BlT3BlblRleHQ6VXplLGZhVG9vbGJveDpXemUsZmFQb3dlck9mZjpHemUsZmFTaWduYWw6cm0sZmFTaWduYWw1Oll6ZSxmYVNpZ25hbFBlcmZlY3Q6WnplLGZhQXJyb3dzU3BpbjpYemUsZmFKb2ludDpLemUsZmFCcmFpbGxlOlF6ZSxmYUJhc2tldFNob3BwaW5nOk5JLGZhU2hvcHBpbmdCYXNrZXQ6SnplLGZhQnJpZGdlOmVrZSxmYVBsYW5lQXJyaXZhbDp0a2UsZmFDYXNoUmVnaXN0ZXI6YWtlLGZhUmluZzppa2UsZmFBcXVhcml1czpya2UsZmFTaGFyZU5vZGVzOkZJLGZhU2hhcmVBbHQ6c2tlLGZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb246bmtlLGZhQmlub2N1bGFyczpva2UsZmFLaXBTaWduOmxrZSxmYUhhcmREcml2ZTpPSSxmYUhkZDpja2UsZmFSYW5raW5nU3Rhcjpka2UsZmFVc2VyVGllOnBrZSxmYUVsbGlwc2lzOlJJLGZhRWxsaXBzaXNIOmhrZSxmYVN0b3JlU2xhc2g6dWtlLGZhUGVyY2VudDpCSSxmYVBlcmNlbnRhZ2U6ZmtlLGZhRmlsZVppcHBlcjpISSxmYUZpbGVBcmNoaXZlOm1rZSxmYURpc3BsYXk6Z2tlLGZhSWNvbnM6cUksZmFIZWFydE11c2ljQ2FtZXJhQm9sdDpia2UsZmFSdWxlclZlcnRpY2FsOnZrZSxmYU1hcExvY2F0aW9uRG90OlZJLGZhTWFwTWFya2VkQWx0OnlrZSxmYUhlYXJ0Q3JhY2s6akksZmFIZWFydEJyb2tlbjp4a2UsZmFDb3c6d2tlLGZhUnNzOnQ4LGZhRmVlZDpNa2UsZmFNYWduaWZ5aW5nR2xhc3M6YTgsZmFTZWFyY2g6emtlLGZhQ2xvdWRNb29uOmtrZSxmYUJveGVzU3RhY2tlZDpzbSxmYUJveGVzOlNrZSxmYUJveGVzQWx0OkNrZSxmYUNvZGVCcmFuY2g6X2tlLGZhQmFuOlVJLGZhQ2FuY2VsOlRrZSxmYUp1Z0RldGVyZ2VudDpMa2UsZmFSZXBseTpXSSxmYU1haWxSZXBseToka2UsZmFTdW5QbGFudFdpbHQ6QWtlLGZhQmFjdGVyaXVtOkRrZSxmYVJlY29yZFZpbnlsOkVrZSxmYUZsb3BweURpc2s6R0ksZmFTYXZlOlBrZSxmYVRvaWxldHNQb3J0YWJsZTpJa2UsZmFPOk5rZSxmYVBhbGV0dGU6RmtlLGZhVW5sb2NrOk9rZSxmYUVhckxpc3RlbjpZSSxmYUFzc2lzdGl2ZUxpc3RlbmluZ1N5c3RlbXM6UmtlLGZhQ29kZVB1bGxSZXF1ZXN0OkJrZSxmYUtleTpIa2UsZmFTa3VsbDpxa2UsZmFNYXJzU3Ryb2tlVXA6WkksZmFNYXJzU3Ryb2tlVjpWa2UsZmFGaXJlRmxhbWVTaW1wbGU6WEksZmFCdXJuOmprZSxmYVRyZWU6VWtlLGZhU21vZzpXa2UsZmFTOkdrZSxmYUplZGk6WWtlLGZhUGVyc29uSGlraW5nOktJLGZhSGlraW5nOlprZSxmYUFycm93c1VwVG9MaW5lOlhrZSxmYU1hcnNEb3VibGU6S2tlLGZhVGhlcm1vbWV0ZXI6UWtlLGZhUGFpbnRicnVzaDpRSSxmYVBhaW50QnJ1c2g6SmtlLGZhTmV1dGVyOmVTZSxmYVNxdWFyZVBob25lRmxpcDpKSSxmYVBob25lU3F1YXJlQWx0OnRTZSxmYUZhY2VHcmluVG9uZ3VlU3F1aW50OmVOLGZhR3JpblRvbmd1ZVNxdWludDphU2UsZmFDb21tZW50RG9sbGFyOmlTZSxmYUhpcHBvOnJTZSxmYUJvd2xGb29kOnNTZSxmYVNxdWFyZVZpcnVzOm5TZSxmYUNsb3VkU3VuUmFpbjpvU2UsZmFBcnJvd1JpZ2h0TG9uZzp0TixmYUxvbmdBcnJvd1JpZ2h0OmxTZSxmYUJ1aWxkaW5nVW46Y1NlLGZhVGVtcGVyYXR1cmVMb3c6ZFNlLGZhRG9vck9wZW46cFNlLGZhQWxpZ25MZWZ0OmhTZSxmYUNhbWVyYTphTixmYUNhbWVyYUFsdDp1U2UsZmFVc2Vyc1JheXM6ZlNlLGZhUmFpbmJvdzptU2UsZmFTaXRlbWFwOmdTZSxmYUZhY2VHcmluU3RhcnM6aU4sZmFHcmluU3RhcnM6YlNlLGZhU29ydFVwOnJOLGZhU29ydEFzYzp2U2UsZmFFeWU6UW0sZmFDYXJldExlZnQ6Sm0sZmFBcHBsZVdob2xlOnNOLGZhQXBwbGVBbHQ6eVNlLGZhU2Nyb2xsVG9yYWg6bk4sZmFUb3JhaDp4U2UsZmFIb3VzZUxvY2s6d1NlLGZhQXJyb3dzTGVmdFJpZ2h0VG9MaW5lOk1TZSxmYVRyYXNoOmY4LGZhRmFjZVNhZFRlYXI6b04sZmFTYWRUZWFyOnpTZSxmYUZheDprU2UsZmFQZXJzb25DaXJjbGVQbHVzOlNTZSxmYUhhbXNhOkNTZSxmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uOl9TZSxmYUNsaXBib2FyZENoZWNrOlRTZSxmYVNoYXJlRnJvbVNxdWFyZTpsTixmYVNoYXJlU3F1YXJlOkxTZSxmYVJlY2VpcHQ6ZWcsZmFFcXVhbHM6JFNlLGZhQ2hldnJvblVwOkFTZSxmYVZpcnVzU2xhc2g6RFNlLGZhU2xhc2g6RVNlLGZhRXhwYW5kOlBTZSxmYU5vdGVTdGlja3k6Y04sZmFTdGlja3lOb3RlOklTZSxmYVRhYmxlQ29sdW1uczpkTixmYUNvbHVtbnM6TlNlLGZhUGVyc29uU2hlbHRlcjpGU2UsZmFDaXJjbGVOb3RjaDpPU2UsZmFXYXRlcjpSU2UsZmFEZWxldGVMZWZ0OnBOLGZhQmFja3NwYWNlOkJTZSxmYUJyb29tQmFsbDpubSxmYVF1aWRkaXRjaDpIU2UsZmFRdWlkZGl0Y2hCcm9vbUJhbGw6cVNlLGZhSjpWU2UsZmFTaHV0dGxlU3BhY2U6aE4sZmFTcGFjZVNodXR0bGU6alNlLGZhWWluWWFuZzpVU2UsZmFTdG9wOldTZSxmYVRyb3dlbDpHU2UsZmFIYW5kQmFja0Zpc3Q6dU4sZmFIYW5kUm9jazpZU2UsZmFUZW1wZXJhdHVyZUhpZ2g6WlNlLGZhR3JlYXRlclRoYW46WFNlLGZhQ3J1dGNoOktTZSxmYVNlcHRhZ29uOmZOLGZhSGVwdGFnb246UVNlLGZhU3RyZWV0VmlldzpKU2UsZmFXYXZlU3F1YXJlOmVDZSxmYUFuZ2xlTGVmdDp0Q2UsZmFTY3Jld2RyaXZlcjphQ2UsZmFUcmFjdG9yOmlDZSxmYUJyaWRnZUNpcmNsZVhtYXJrOnJDZSxmYVZpYWxzOnNDZSxmYVN0ZXRob3Njb3BlOm5DZSxmYVBvZGNhc3Q6b0NlLGZhQXJyb3dVcFJpZ2h0RG90czpsQ2UsZmFDaGVzc1F1ZWVuOmNDZSxmYUFuY2hvckNpcmNsZUV4Y2xhbWF0aW9uOmRDZSxmYUVsbGlwc2lzVmVydGljYWw6bU4sZmFFbGxpcHNpc1Y6cENlLGZhSGVhcnRDaXJjbGVFeGNsYW1hdGlvbjpoQ2UsZmFCdWlsZGluZ0NpcmNsZUV4Y2xhbWF0aW9uOnVDZSxmYVBlcnNvbkFycm93VXBGcm9tTGluZTpmQ2UsZmFOb3RFcXVhbDptQ2UsZmFUcmFpblRyYW06Z0NlLGZhUGxhbmVEZXBhcnR1cmU6YkNlLGZhUmlnaHRUb0JyYWNrZXQ6Z04sZmFTaWduSW5BbHQ6dkNlLGZhU2RDYXJkOnlDZSxmYUhvdXNlQ2lyY2xlRXhjbGFtYXRpb246eENlLGZhU2hla2VsU2lnbjpkbCxmYUlsczp3Q2UsZmFTaGVrZWw6TUNlLGZhU2hlcWVsOnpDZSxmYVNoZXFlbFNpZ246a0NlLGZhUmFkaW86U0NlLGZhSGFuZERvdHM6Yk4sZmFBbGxlcmdpZXM6Q0NlLGZhQm9va1NrdWxsOnZOLGZhQm9va0RlYWQ6X0NlLGZhVW5sb2NrS2V5aG9sZTp5TixmYVVubG9ja0FsdDpUQ2UsZmFGaWxlQXJyb3dVcDp4TixmYUZpbGVVcGxvYWQ6TENlLGZhRmFjZUdyaW5UZWFyczp3TixmYUdyaW5UZWFyczokQ2UsZmFQZW5Ub1NxdWFyZTppOCxmYUVkaXQ6QUNlLGZhRWFydGhFdXJvcGU6TU4sZmFHbG9iZUV1cm9wZTpEQ2UsZmFGYWNlR3JpbkJlYW1Td2VhdDp6TixmYUdyaW5CZWFtU3dlYXQ6RUNlLGZhQ2lyY2xlSGFsZlN0cm9rZTprTixmYUFkanVzdDpQQ2UsZmFQZXJzb25NaWxpdGFyeVRvUGVyc29uOklDZSxmYVRhYmxlQ2VsbHNDb2x1bW5Mb2NrOk5DZSxmYVRydWNrRmllbGRVbjpGQ2UsZmFDbG9jazpTTixmYUNsb2NrRm91cjpPQ2UsZmFCb29rOlJDZSxmYUZhY2VMYXVnaFdpbms6Q04sZmFMYXVnaFdpbms6QkNlLGZhQ2xvdWRNZWF0YmFsbDpIQ2UsZmFDaGFydEFyZWE6X04sZmFBcmVhQ2hhcnQ6cUNlLGZhUnVwaWFoU2lnbjpWQ2UsZmFUZXh0V2lkdGg6akNlLGZhU2F0ZWxsaXRlOlVDZSxmYU1hZ25pZnlpbmdHbGFzc01pbnVzOlROLGZhU2VhcmNoTWludXM6V0NlLGZhUGVvcGxlR3JvdXA6R0NlLGZhU3F1YXJlQmluYXJ5OllDZSxmYU1hc2tzVGhlYXRlcjpMTixmYVRoZWF0ZXJNYXNrczpaQ2UsZmFDYXJ0UGx1czpYQ2UsZmFIYW5kc0FzbEludGVycHJldGluZzpPNSxmYUFtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nOktDZSxmYUFzbEludGVycHJldGluZzpRQ2UsZmFIYW5kc0FtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nOkpDZSxmYVRhYmxlQ2VsbHNSb3dVbmxvY2s6ZV9lLGZhUm9ja2V0OnRfZSxmYVNocmltcDphX2UsZmFUZW5nZVNpZ246JE4sZmFUZW5nZTppX2UsZmFIb3VzZUNoaW1uZXlNZWRpY2FsOkFOLGZhQ2xpbmljTWVkaWNhbDpyX2UsZmFVc2Vyc1NsYXNoOnNfZSxmYVBhcGVyUGxhbmU6bl9lLGZhQm9va0F0bGFzOkROLGZhQXRsYXM6b19lLGZhVGFibGU6bF9lLGZhSGVhcnQ6Y19lLGZhQ2lyY2xlQ2hldnJvblVwOkVOLGZhQ2hldnJvbkNpcmNsZVVwOmRfZSxmYUJhdHRlcnlIYWxmOlBOLGZhQmF0dGVyeTM6cF9lLGZhRm9udEF3ZXNvbWU6b20sZmFGb250QXdlc29tZUZsYWc6aF9lLGZhRm9udEF3ZXNvbWVMb2dvRnVsbDp1X2UsZmFIYW5kY3VmZnM6Zl9lLGZhSGF0Q293Ym95U2lkZTptX2UsZmFJbmR1c3RyeTpnX2UsZmFMaW5lc0xlYW5pbmc6Yl9lLGZhUGFzc3BvcnQ6dl9lLGZhSW5maW5pdHk6eV9lLGZhQ2xvbmU6eF9lLGZhRm9yd2FyZDp3X2UsZmFNOk1fZSxmYVJvYWRTcGlrZXM6el9lLGZhTW91bnRhaW46a19lLGZhQ2hlc3M6U19lLGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzOlI1LGZhVGVtcGVyYXR1cmUzOkNfZSxmYVRoZXJtb21ldGVyMzpfX2UsZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnM6VF9lLGZhQjpMX2UsZmFTaGllbGRWaXJ1czokX2UsZmFMaXRlY29pblNpZ246QV9lLGZhRGljZUQ2OkRfZSxmYUdyaXBMaW5lc1ZlcnRpY2FsOkVfZSxmYUdvbGZCYWxsVGVlOklOLGZhR29sZkJhbGw6UF9lLGZhSGV4YWdvbjpJX2UsZmFGb2xkZXJPcGVuOk5fZSxmYUthYWJhOkZfZSxmYUhhbmRIb2xkaW5nOk9fZSxmYVNpbmdsZVF1b3RlUmlnaHQ6Ul9lLGZhQm90dGxlRHJvcGxldDpCX2UsZmFXaW5kb3dNaW5pbWl6ZTpIX2UsZmFDaGV2cm9uUmlnaHQ6cV9lLGZhRWdnOlZfZSxmYUxhbmRtYXJrRG9tZTpOTixmYUxhbmRtYXJrQWx0OmpfZSxmYVdvcm06VV9lLGZhVXNlckluanVyZWQ6V19lLGZhU3RyaWtldGhyb3VnaDpHX2UsZmFCbG9nOllfZSxmYVN0b3B3YXRjaDIwOlpfZSxmYVRydWNrUGlja3VwOlhfZSxmYVNlZWRsaW5nOkZOLGZhU3Byb3V0OktfZSxmYVRyYW5zZ2VuZGVyOk9OLGZhVHJhbnNnZW5kZXJBbHQ6UV9lLGZhU3RhckhhbGY6Sl9lLGZhUGhvdG9GaWxtOlJOLGZhUGhvdG9WaWRlbzplVGUsZmFQaWN0dXJlSW5QaWN0dXJlOnRUZSxmYVB1bXBNZWRpY2FsOmFUZSxmYUZpcmU6aVRlLGZhTWFnbmlmeWluZ0dsYXNzUGx1czpCTixmYVNlYXJjaFBsdXM6clRlLGZhRmxhc2s6c1RlLGZhQWxpZ25SaWdodDpuVGUsZmFDYWJsZUNhcjpITixmYVRyYW06b1RlLGZhS2l0TWVkaWNhbDpxTixmYUZpcnN0QWlkOmxUZSxmYUdyaXBMaW5lczpjVGUsZmFCdXJnZXI6Vk4sZmFIYW1idXJnZXI6ZFRlLGZhU25vd21hbjpwVGUsZmFIb3RlbDpoVGUsZmFQcmludDp1VGUsZmFWb2xsZXliYWxsOmpOLGZhVm9sbGV5YmFsbEJhbGw6ZlRlLGZhVHJhZmZpY0xpZ2h0Om1UZSxmYVBsYW5lQ2lyY2xlQ2hlY2s6Z1RlLGZhVXNlcnM6dGcsZmFDZXJ0aWZpY2F0ZTpiVGUsZmFBbGFybUNsb2NrOnZUZSxmYUhlbGljb3B0ZXJTeW1ib2w6eVRlLGZhSG91c2VDaGltbmV5Q3JhY2s6VU4sZmFIb3VzZURhbWFnZTp4VGUsZmFQZXJzb25NaWxpdGFyeVBvaW50aW5nOndUZSxmYURhdGFiYXNlOk1UZSxmYU5ld3NwYXBlcjp6VGUsZmFDbG91ZFJhaW46a1RlLGZhTWF4aW1pemU6V04sZmFFeHBhbmRBcnJvd3NBbHQ6U1RlLGZhTG9jYXRpb25BcnJvdzpDVGUsZmFDaXR5Ol9UZSxmYVhSYXk6VFRlLGZhVW1icmVsbGFCZWFjaDpMVGUsZmFBcnJvd1JpZ2h0VG9CcmFja2V0OkdOLGZhU2lnbkluOiRUZSxmYUhlYWRzZXQ6QVRlLGZhU3Bsb3RjaDpEVGUsZmFVcExvbmc6WU4sZmFMb25nQXJyb3dBbHRVcDpFVGUsZmFIZXhhZ29uTm9kZXM6UFRlLGZhSG9zcGl0YWw6bG0sZmFIb3NwaXRhbEFsdDpJVGUsZmFIb3NwaXRhbFdpZGU6TlRlLGZhUGVyc29uSGFyYXNzaW5nOkZUZSxmYU1vbmV5QmlsbFRyZW5kVXA6T1RlLGZhUGVuUnVsZXI6Wk4sZmFQZW5jaWxSdWxlcjpSVGUsZmFSZXBlYXQ6QlRlLGZhQm9uZTpIVGUsZmFGaXJlRmxhbWVDdXJ2ZWQ6WE4sZmFGaXJlQWx0OnFUZSxmYUJ1c1NpbXBsZTpLTixmYUJ1c0FsdDpWVGUsZmFWZW51c01hcnM6alRlLGZhQmxlbmRlcjpVVGUsZmFVOldUZSxmYVNoYXJlOnI4LGZhTWFpbEZvcndhcmQ6R1RlLGZhUGhvbmVGbGlwOlFOLGZhUGhvbmVBbHQ6WVRlLGZhVG9pbGV0UG9ydGFibGU6WlRlLGZhUGVyc29uUHJlZ25hbnQ6WFRlLGZhTGVzc1RoYW46S1RlLGZhU3VwZXJzY3JpcHQ6UVRlLGZhQ2lyY2xlU3RvcDpKTixmYVN0b3BDaXJjbGU6SlRlLGZhQXJyb3dzVXBEb3duOmVGLGZhQXJyb3dzVjplTGUsZmFQb29TdG9ybTp0RixmYVBvb0JvbHQ6dExlLGZhVmlkZW9TbGFzaDphTGUsZmFTcXVhcmVYbWFyazpjbSxmYVRpbWVzU3F1YXJlOmlMZSxmYVhtYXJrU3F1YXJlOnJMZSxmYUhhbmRIb2xkaW5nRHJvcGxldDphRixmYUhhbmRIb2xkaW5nV2F0ZXI6c0xlLGZhV29uU2lnbjpkbSxmYUtydzpuTGUsZmFXb246b0xlLGZhT2JqZWN0VW5ncm91cDpsTGUsZmFDb21tZW50OmNMZSxmYUhpbGxBdmFsYW5jaGU6ZExlLGZhQXJyb3dzVG9FeWU6cExlLGZhU25vd3Bsb3c6aExlLGZhQ2hhcnRHYW50dDp1TGUsZmFWaWRlbzppRixmYVZpZGVvQ2FtZXJhOmZMZSxmYUNoZXNzUGF3bjptTGUsZmFTeW5hZ29ndWU6Z0xlLGZhQnVpbGRpbmdDaXJjbGVDaGVjazpiTGUsZmFDYWxlbmRhclBsdXM6dkxlLGZhV2hlZWxjaGFpck1vdmU6ckYsZmFXaGVlbGNoYWlyQWx0OnlMZSxmYVVzZXJTaGllbGQ6eExlLGZhQm9sZDp3TGUsZmFIZWFydFB1bHNlOnNGLGZhSGVhcnRiZWF0Ok1MZSxmYVNxdWFyZVJvb3RWYXJpYWJsZTpuRixmYVNxdWFyZVJvb3RBbHQ6ekxlLGZhSGFuZHNCdWJibGVzOm9GLGZhSGFuZHNXYXNoOmtMZSxmYU1hcmtlcjpTTGUsZmFDbGlwYm9hcmQ6Q0xlLGZhUGxhY2VPZldvcnNoaXA6X0xlLGZhQ2FubmFiaXM6VExlLGZhUGVvcGxlUm9vZjpMTGUsZmFEaXNlYXNlOiRMZSxmYUJvb2tCaWJsZTpsRixmYUJpYmxlOkFMZSxmYUNoZXNzQm9hcmQ6RExlLGZhTWFyczpFTGUsZmFMYXB0b3A6UExlLGZhVXNlclhtYXJrOmNGLGZhVXNlclRpbWVzOklMZSxmYUZsYWdVc2E6TkxlLGZhSGFuZE1pZGRsZUZpbmdlcjpGTGUsZmFNb3J0YXJQZXN0bGU6T0xlLGZhSGVhZFNpZGVDb3VnaDpSTGUsZmFQbGFuZUxvY2s6QkxlLGZhQmF0dGVyeVRocmVlUXVhcnRlcnM6ZEYsZmFCYXR0ZXJ5NDpITGUsZmFGcmFuY1NpZ246cUxlLGZhRmlsdGVyQ2lyY2xlRG9sbGFyOnBGLGZhRnVubmVsRG9sbGFyOlZMZSxmYUNoZWVzZTpqTGUsZmFDaXJjbGVIOmhGLGZhSG9zcGl0YWxTeW1ib2w6VUxlLGZhU2Nob29sOldMZSxmYURpY2VGaXZlOkdMZSxmYVRvcm5hZG86WUxlLGZhSmV0RmlnaHRlcjp1RixmYUZpZ2h0ZXJKZXQ6WkxlLGZhVGh1bWJzRG93bjpYTGUsZmFCcm9vbTpLTGUsZmFGaWxlSW1wb3J0OmZGLGZhQXJyb3dSaWdodFRvRmlsZTpRTGUsZmFVdGVuc2lsczptRixmYUN1dGxlcnk6SkxlLGZhSWRCYWRnZTplJGUsZmFTcGlkZXI6dCRlLGZhTW9iaWxlUmV0cm86YSRlLGZhU2lnbnNQb3N0OmdGLGZhTWFwU2lnbnM6aSRlLGZhR3JvdXBBcnJvd3NSb3RhdGU6ciRlLGZhQXJyb3dzU3BsaXRVcEFuZExlZnQ6cyRlLGZhRmlsbERyaXA6biRlLGZhU2hpZWxkSGVhcnQ6byRlLGZhUGVyc29uU2tpaW5nTm9yZGljOmJGLGZhU2tpaW5nTm9yZGljOmwkZSxmYVNxdWFyZUNoZWNrOnZGLGZhQ2hlY2tTcXVhcmU6YyRlLGZhQmF0aDp5RixmYUJhdGh0dWI6ZCRlLGZhQ2hlc3NCaXNob3A6cCRlLGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbDp4RixmYVByZXNjcmlwdGlvbkJvdHRsZUFsdDpoJGUsZmFEcmF3UG9seWdvbjp3RixmYVZlY3RvclBvbHlnb246dSRlLGZhSUN1cnNvcjpmJGUsZmFIZWFydENpcmNsZVBsdXM6bSRlLGZhU2hpZWxkRG9nOmckZSxmYUdyZWF0ZXJUaGFuRXF1YWw6YiRlLGZhRW52ZWxvcGVPcGVuOnYkZSxmYU1vdW5kOnkkZSxmYVZvaWNlbWFpbDp4JGUsZmFWZXN0OnckZSxmYUF1ZGlvRGVzY3JpcHRpb246TSRlLGZhVzp6JGUsZmFFeWVEcm9wcGVyOnBtLGZhRXllRHJvcHBlckVtcHR5OmskZSxmYUV5ZWRyb3BwZXI6UyRlLGZhQ2lyY2xlWG1hcms6ZmwsZmFUaW1lc0NpcmNsZTpDJGUsZmFYbWFya0NpcmNsZTpfJGUsZmFUcmFpbGVyOlQkZSxmYVR1cmtpc2hMaXJhU2lnbjpobSxmYVRyeTpMJGUsZmFUdXJraXNoTGlyYTokJGUsZmFWb2xjYW5vOkEkZSxmYVdhbmRTcGFya2xlczpEJGUsZmFNaWNyb3Bob25lOkUkZSxmYUNyb3duOlAkZSxmYVRlbnRBcnJvd1R1cm5MZWZ0OkkkZSxmYVRydWNrRmFzdDpNRixmYVNoaXBwaW5nRmFzdDpOJGUsZmFVc2VyUGVuOnpGLGZhVXNlckVkaXQ6RiRlLGZhVXNlckNsb2NrOk8kZSxmYVNob3dlcjpSJGUsZmFTcXVhcmVDYXJldFVwOmtGLGZhQ2FyZXRTcXVhcmVVcDpCJGUsZmFNYXBMb2NhdGlvbjpTRixmYU1hcE1hcmtlZDpIJGUsZmFQZW5GYW5jeTpxJGUsZmFFdXJvU2lnbjp1bSxmYUV1cjpWJGUsZmFFdXJvOmokZSxmYUhvdXNlQ2lyY2xlWG1hcms6VSRlLGZhTGlyYVNpZ246VyRlLGZhWWVuU2lnbjpwbCxmYUNueTpHJGUsZmFKcHk6WSRlLGZhUm1iOlokZSxmYVllbjpYJGUsZmFCb3hPcGVuOkskZSxmYVRydWNrRmllbGQ6USRlLGZhTG9jYXRpb25QaW5Mb2NrOkokZSxmYVBlcnNvblByYXlpbmc6Q0YsZmFQcmF5OmVBZSxmYUNsaXBib2FyZExpc3Q6dEFlLGZhU2Fja0RvbGxhcjphQWUsZmFNb3VudGFpblN1bjppQWUsZmFBcnJvd1VwV2lkZVNob3J0Ol9GLGZhU29ydEFtb3VudFVwOnJBZSxmYVVzZXJzTGluZTpzQWUsZmFTdGFyT2ZEYXZpZDpuQWUsZmFOb3Rlc01lZGljYWw6b0FlLGZhQXVzdHJhbFNpZ246bEFlLGZhQ2xpcGJvYXJkVXNlcjpjQWUsZmFGaWxlSW1hZ2U6ZEFlLGZhU3F1YXJlQ2FyZXRSaWdodDpURixmYUNhcmV0U3F1YXJlUmlnaHQ6cEFlLGZhVmlhbDpoQWUsZmFIZWxpY29wdGVyOnVBZSxmYU1pdHRlbjpmQWUsZmFHYXNQdW1wOm1BZSxmYUVudmVsb3BlQ2lyY2xlQ2hlY2s6Z0FlLGZhUGVyc29uU2thdGluZzpMRixmYVNrYXRpbmc6YkFlLGZhU3VuOmFnLGZhQmFzZWJhbGw6JEYsZmFCYXNlYmFsbEJhbGw6dkFlLGZhSW1hZ2U6eUFlLGZhTm90ZGVmOnhBZSxmYUJhc2tldGJhbGw6QUYsZmFCYXNrZXRiYWxsQmFsbDp3QWUsZmFQZW5jaWw6REYsZmFQZW5jaWxBbHQ6TUFlLGZhUGVyc29uV2Fsa2luZ0Fycm93TG9vcExlZnQ6ekFlLGZhRGljZVNpeDprQWUsZmFBbmdsZXNEb3duOkVGLGZhQW5nbGVEb3VibGVEb3duOlNBZSxmYVN5cmluZ2U6Q0FlLGZhV2hlYXRBd246UEYsZmFXaGVhdEFsdDpfQWUsZmFQbGFuZVVwOlRBZSxmYUFsaWduQ2VudGVyOkxBZSxmYUhvY2tleVB1Y2s6JEFlLGZhQ2lyY2xlQXJyb3dMZWZ0OklGLGZhQXJyb3dDaXJjbGVMZWZ0OkFBZSxmYVBsdWdDaXJjbGVCb2x0OkRBZSxmYVJlc3Ryb29tOkVBZSxmYUFuY2hvckxvY2s6UEFlLGZhVGltZWxpbmU6SUFlLGZhTGlnaHRidWxiOk5BZSxmYUNpcmNsZUFycm93UmlnaHQ6TkYsZmFBcnJvd0NpcmNsZVJpZ2h0OkZBZSxmYU1hcnNBbmRWZW51czpPQWUsZmFOZXR3b3JrV2lyZWQ6aWcsZmFCdWlsZGluZ1NoaWVsZDpSQWUsZmFDb2RlOkJBZSxmYUZlYXRoZXJQb2ludGVkOkZGLGZhRmVhdGhlckFsdDpIQWUsZmFGaWxlQ2lyY2xlUXVlc3Rpb246cUFlLGZhU2lnbmF0dXJlOlZBZSxmYUVhcnRoQW1lcmljYXM6QjUsZmFFYXJ0aDpqQWUsZmFFYXJ0aEFtZXJpY2E6VUFlLGZhR2xvYmVBbWVyaWNhczpXQWUsZmFDYXJyb3Q6R0FlLGZhVGVtcGVyYXR1cmVGdWxsOkg1LGZhVGVtcGVyYXR1cmU0OllBZSxmYVRoZXJtb21ldGVyNDpaQWUsZmFUaGVybW9tZXRlckZ1bGw6WEFlLGZhVGFibGVDZWxsc1Jvd0xvY2s6S0FlLGZhQm9sdExpZ2h0bmluZzpRQWUsZmFDbG91ZFNob3dlcnNXYXRlcjpKQWUsZmFBcnJvd1VwTG9uZzpPRixmYUxvbmdBcnJvd1VwOmVEZSxmYUFkZHJlc3NDYXJkOmZtLGZhQ29udGFjdENhcmQ6dERlLGZhVmNhcmQ6YURlLGZhQW5nbGVSaWdodDppRGUsZmFGYWNlTWVoOlJGLGZhTWVoOnJEZSxmYUFycm93VXBGcm9tR3JvdW5kV2F0ZXI6c0RlLGZhTWFwOm5EZSxmYVVzZXJQbHVzOm9EZSxmYVZlbnVzOmxEZSxmYURpYWdyYW1TdWNjZXNzb3I6Y0RlLGZhSGVhZFNpZGVDb3VnaFNsYXNoOmREZSxmYURpYWdyYW1Qcm9qZWN0OkJGLGZhUHJvamVjdERpYWdyYW06cERlLGZhVGVybWluYWw6cmcsZmFIb3VzZUZpcmU6aERlLGZhTWFzazp1RGUsZmFIdXJyaWNhbmU6ZkRlLGZhRWFydGhBZnJpY2E6SEYsZmFHbG9iZUFmcmljYTptRGUsZmFUaHVtYnRhY2s6cUYsZmFUaHVtYlRhY2s6Z0RlLGZhSGFuZFBvaW50RG93bjpiRGUsZmFGYWNlTWVoQmxhbms6VkYsZmFNZWhCbGFuazp2RGUsZmFUZW1wZXJhdHVyZUVtcHR5OnE1LGZhVGVtcGVyYXR1cmUwOnlEZSxmYVRoZXJtb21ldGVyMDp4RGUsZmFUaGVybW9tZXRlckVtcHR5OndEZSxmYUJvcmRlck5vbmU6TURlLGZhSGlnaGxpZ2h0ZXI6ekRlLGZhTW9uZXlCaWxsV2F2ZTprRGUsZmFUb2lsZXRQYXBlclNsYXNoOlNEZSxmYUZpbGVTaGllbGQ6Q0RlLGZhVGV4dEhlaWdodDpfRGUsZmFGYWNlR3JpblRvbmd1ZTpqRixmYUdyaW5Ub25ndWU6VERlLGZhRmlsZVNpZ25hdHVyZTpMRGUsZmFCdWlsZGluZ1doZWF0OiREZSxmYVBsdWdDaXJjbGVNaW51czpBRGUsZmFGdXRib2w6bW0sZmFGdXRib2xCYWxsOkREZSxmYVNvY2NlckJhbGw6RURlLGZhQ2lyY2xlUGx1czpVRixmYVBsdXNDaXJjbGU6UERlLGZhQnJhemlsaWFuUmVhbFNpZ246SURlLGZhU3RhckFuZENyZXNjZW50Ok5EZSxmYUZhY2VTdXJwcmlzZTpXRixmYVN1cnByaXNlOkZEZSxmYUhvc3BpdGFsVXNlcjpPRGUsZmFBcnJvd0Rvd25VcExvY2s6UkRlLGZhRm9sZGVyOkdGLGZhRm9sZGVyQmxhbms6QkRlLGZhSG9sbHlCZXJyeTpIRGUsZmFWZW51c0RvdWJsZTpxRGUsZmFDbGlwYm9hcmRRdWVzdGlvbjpWRGUsZmFIb3Rkb2c6akRlLGZhQXJyb3dVcEZyb21CcmFja2V0OlVEZSxmYU1pY3Jvc2NvcGU6V0RlLGZhQ2xvdWQ6R0RlLGZhQmFzZWJhbGxCYXRCYWxsOllEZSxmYUNhclJlYXI6WUYsZmFDYXJBbHQ6WkRlLGZhVGh1bWJ0YWNrU2xhc2g6WkYsZmFUaHVtYlRhY2tTbGFzaDpYRGUsZmFQbHVzTWludXM6S0RlLGZhSG91c2VDaXJjbGVDaGVjazpRRGUsZmFDYWxlbmRhckRheTpKRGUsZmFMaWJyYTplRWUsZmFDaXJjbGU6dEVlLGZhTW9iaWxlVmlicmF0ZTphRWUsZmFGYWNlR3JpblNxdWludDpYRixmYUdyaW5TcXVpbnQ6aUVlLGZhVXNlcnNCZXR3ZWVuTGluZXM6ckVlLGZhSG91c2VNZWRpY2FsQ2lyY2xlWG1hcms6c0VlLGZhVGFibGVMaXN0OktGLGZhVGhMaXN0Om5FZSxmYUZsYXNrVmlhbDpvRWUsZmFDaXJjbGVFeGNsYW1hdGlvbjpRRixmYUV4Y2xhbWF0aW9uQ2lyY2xlOmxFZSxmYVRheGk6SkYsZmFDYWI6Y0VlLGZhVGV4dFNsYXNoOmVPLGZhUmVtb3ZlRm9ybWF0OmRFZSxmYVBlb3BsZVB1bGxpbmc6cEVlLGZhQmFja3dhcmQ6aEVlLGZhQ2FyQnVyc3Q6dE8sZmFDYXJDcmFzaDp1RWUsZmFMaW5rOmFPLGZhQ2hhaW46ZkVlLGZhQmFja3dhcmRTdGVwOmlPLGZhU3RlcEJhY2t3YXJkOm1FZSxmYVg6Z0VlLGZhQ2lyY2xlVXNlcjpyTyxmYVVzZXJDaXJjbGU6YkVlLGZhUmVjdGFuZ2xlTGlzdDpzTyxmYUxpc3RBbHQ6dkVlLGZhSGFuZDpuTyxmYUhhbmRQYXBlcjp5RWUsZmFDYW5jZXI6eEVlLGZhVmFuU2h1dHRsZTpvTyxmYVNodXR0bGVWYW46d0VlLGZhU3RhaXJzOk1FZSxmYUhvcnNlSGVhZDp6RWUsZmFWYXVsdDprRWUsZmFDbG9zZWRDYXB0aW9uaW5nU2xhc2g6U0VlLGZhRHJ1bVN0ZWVscGFuOkNFZSxmYVRodW1ic1VwOl9FZSxmYVN0YW1wOlRFZSxmYU1lbm9yYWg6TEVlLGZhQ2hpbGRyZW46JEVlLGZhQ2hhcnRMaW5lOmxPLGZhTGluZUNoYXJ0OkFFZSxmYVNxdWFyZUVudmVsb3BlOmNPLGZhRW52ZWxvcGVTcXVhcmU6REVlLGZhQmFuU21va2luZzpkTyxmYVNtb2tpbmdCYW46RUVlLGZhVHJ1Y2tGcm9udDpQRWUsZmFCdWlsZGluZzpzZyxmYUJ1bGxzZXllOklFZSxmYUFycm93TGVmdExvbmc6cE8sZmFMb25nQXJyb3dMZWZ0Ok5FZSxmYUNoZXNzUm9vazpGRWUsZmFCbGVuZGVyUGhvbmU6T0VlLGZhQXJyb3dUdXJuVXA6aE8sZmFMZXZlbFVwOlJFZSxmYUJpY3ljbGU6QkVlLGZhQ2lyY2xlQXJyb3dEb3duOnVPLGZhQXJyb3dDaXJjbGVEb3duOkhFZSxmYUdlYXI6czgsZmFDb2c6cUVlLGZhTWFyc0FuZFZlbnVzQnVyc3Q6VkVlLGZhT3R0ZXI6akVlLGZhQ2lyY2xlQ2hldnJvbkxlZnQ6Zk8sZmFDaGV2cm9uQ2lyY2xlTGVmdDpVRWUsZmFDaXJjbGVRdWVzdGlvbjptTyxmYVF1ZXN0aW9uQ2lyY2xlOldFZSxmYVdhbGtpZVRhbGtpZTpHRWUsZmFVc2VyR3JvdXA6Z08sZmFVc2VyRnJpZW5kczpZRWUsZmFIb3VzZUNoaW1uZXk6Yk8sZmFIb21lTGc6WkVlLGZhUmlnaHRGcm9tQnJhY2tldDp2TyxmYVNpZ25PdXRBbHQ6WEVlLGZhRmlsZTpLRWUsZmFQbGFuZVNsYXNoOlFFZSxmYUNsb3VkU2hvd2Vyc0hlYXZ5OkpFZSxmYVBlcnNvbkZhbGxpbmc6ZVBlLGZhVHVybkRvd246eU8sZmFMZXZlbERvd25BbHQ6dFBlLGZhVXBSaWdodEFuZERvd25MZWZ0RnJvbUNlbnRlcjp4TyxmYUV4cGFuZEFsdDphUGUsZmFVc2VyVGFnOmlQZSxmYUhhbmRTcGFya2xlczpyUGUsZmFBcnJvd3NUb0RvdDpzUGUsZmFGYWNlU2FkQ3J5OndPLGZhU2FkQ3J5Om5QZSxmYURvbmdTaWduOm9QZSxmYVBlb3BsZUxpbmU6bFBlLGZhU3F1YXJlUnNzOk1PLGZhUnNzU3F1YXJlOmNQZSxmYUNhbGVuZGFyTWludXM6ZFBlLGZhQ2hhcnREaWFncmFtOnBQZSxmYUZhY2VUaXJlZDp6TyxmYVRpcmVkOmhQZSxmYUhhbmRQb2ludFJpZ2h0OnVQZSxmYUFycm93VXA6ZlBlLGZhQ3ViZXNTdGFja2VkOm1QZSxmYUNoaWxkQ29tYmF0YW50OmtPLGZhQ2hpbGRSaWZsZTpnUGUsZmFWZXN0UGF0Y2hlczpiUGUsZmFNYXJ0aW5pR2xhc3NFbXB0eTpTTyxmYUdsYXNzTWFydGluaTp2UGUsZmFNYWduZXQ6eVBlLGZhUm9hZEJhcnJpZXI6eFBlLGZhQ29tcGFzc0RyYWZ0aW5nOkNPLGZhRHJhZnRpbmdDb21wYXNzOndQZSxmYVNxdWFyZVBlcnNvbkNvbmZpbmVkOk1QZSxmYVBsYXRlV2hlYXQ6elBlLGZhU2lnbkhhbmdpbmc6X08sZmFTaWduOmtQZSxmYUNhckJhdHRlcnk6VE8sZmFCYXR0ZXJ5Q2FyOlNQZSxmYVNoaXJ0OmdtLGZhVFNoaXJ0OkNQZSxmYVRzaGlydDpfUGUsZmFQYXJhZ3JhcGg6VFBlLGZhRW52ZWxvcGVzQnVsazpMTyxmYU1haWxCdWxrOkxQZSxmYUd1aXRhcjokUGUsZmFTdWl0Y2FzZTpBUGUsZmFDaXJjbGVVcDokTyxmYUFycm93QWx0Q2lyY2xlVXA6RFBlLGZhRjpFUGUsZmFYbWFya3NMaW5lczpQUGUsZmFFYXJ0aE9jZWFuaWE6QU8sZmFHbG9iZU9jZWFuaWE6SVBlLGZhQ29tbWVudFNsYXNoOk5QZSxmYVBsYXk6RlBlLGZhVmlhbENpcmNsZUNoZWNrOk9QZSxmYUJyaWRnZUNpcmNsZUNoZWNrOlJQZSxmYUNlZGlTaWduOkJQZSxmYVB1enpsZVBpZWNlOkhQZSxmYUhlbG1ldFVuOnFQZSxmYUdsYXNzV2F0ZXI6VlBlLGZhSGVhcnRDaXJjbGVCb2x0OmpQZSxmYVB1bXBTb2FwOlVQZSxmYUhhbmRTY2lzc29yczpXUGUsZmFEb2xseTpETyxmYURvbGx5Qm94OkdQZSxmYVBhcGVyY2xpcDpuZyxmYURlbW9jcmF0OllQZSxmYVNxdWFyZUFycm93VXBSaWdodDpFTyxmYUV4dGVybmFsTGlua1NxdWFyZTpaUGUsZmFGZXJyeTpYUGUsZmFNb3NxdWl0bzpLUGUsZmFCdWlsZGluZ0NpcmNsZUFycm93UmlnaHQ6UVBlLGZhTGVmdFJpZ2h0OlBPLGZhQXJyb3dzQWx0SDpKUGUsZmFWaXJ1czplSWUsZmFHZW06dEllLGZhVG9pbGV0OmFJZSxmYVNpbmdsZVF1b3RlTGVmdDppSWUsZmFNb25leUJpbGxzOnJJZSxmYVRhYmxldEJ1dHRvbjpzSWUsZmFSZWN0YW5nbGVYbWFyazpWNSxmYVJlY3RhbmdsZVRpbWVzOm5JZSxmYVRpbWVzUmVjdGFuZ2xlOm9JZSxmYVdpbmRvd0Nsb3NlOmxJZSxmYVdyZW5jaDpjSWUsZmFUcmFzaENhbjpuOCxmYVRyYXNoQWx0OmRJZSxmYVRhYmxlQ2VsbHM6SU8sZmFUaDpwSWUsZmFSaWJib246aEllLGZhTGFuZG1hcmtGbGFnOnVJZSxmYVVwRG93bkxlZnRSaWdodDpOTyxmYUFycm93c0FsdDpmSWUsZmFDYXJTaWRlOm1JZSxmYVRyYXNoQXJyb3dVcDpGTyxmYVRyYXNoUmVzdG9yZTpnSWUsZmFMaWZlUmluZzpiSWUsZmFDb3B5cmlnaHQ6dkllLGZhRmlsZVByZXNjcmlwdGlvbjp5SWUsZmFFcmFzZXI6eEllLGZhSG91cmdsYXNzU3RhcnQ6T08sZmFIb3VyZ2xhc3MxOndJZSxmYUNpcmNsZUxlZnQ6Uk8sZmFBcnJvd0FsdENpcmNsZUxlZnQ6TUllLGZhQ3J1emVpcm9TaWduOnpJZSxmYVNtb2tpbmc6a0llLGZhU3F1YXJlUG9sbFZlcnRpY2FsOkJPLGZhUG9sbDpTSWUsZmFQZXJzb25DaXJjbGVNaW51czpDSWUsZmFCaW9oYXphcmQ6X0llLGZhQmVsbENvbmNpZXJnZTpITyxmYUNvbmNpZXJnZUJlbGw6VEllLGZhUnVsZXJIb3Jpem9udGFsOkxJZSxmYUhvcnNlOiRJZSxmYUNhbGVuZGFyOkFJZSxmYUhhbmRzSG9sZGluZ0NoaWxkOkRJZSxmYUl0YWxpYzpFSWUsZmFLaGFuZGE6UEllLGZhRmFjZUZyb3duT3BlbjpxTyxmYUZyb3duT3BlbjpJSWUsZmFDaGVjazpvZyxmYUZpbmdlcnByaW50Ok5JZSxmYUNoYXJnaW5nU3RhdGlvbjpGSWUsZmFVc2VyTG9jazpPSWUsZmFNb2JpbGVTY3JlZW5CdXR0b246Vk8sZmFNb2JpbGVBbHQ6UkllLGZhQW5jaG9yQ2lyY2xlQ2hlY2s6QkllLGZhUGVyc29uV2Fsa2luZ1dpdGhDYW5lOmpPLGZhQmxpbmQ6SEllLGZhRmlsZVdhdmVmb3JtOlVPLGZhRmlsZU1lZGljYWxBbHQ6cUllLGZhSG91c2VDcmFjazpWSWUsZmFIYXRXaXphcmQ6akllLGZhVXNlckRvY3RvcjpXTyxmYVVzZXJNZDpVSWUsZmFDaGFydEJhcjpHTyxmYUJhckNoYXJ0OldJZSxmYVNwcmF5Q2FuU3BhcmtsZXM6WU8sZmFBaXJGcmVzaGVuZXI6R0llLGZhQmFodFNpZ246WUllLGZhVGVtcGVyYXR1cmVBcnJvd1VwOlpPLGZhVGVtcGVyYXR1cmVVcDpaSWUsZmFXZWJBd2Vzb21lOlhJZSxmYU5vbkJpbmFyeTpLSWUsZmFOOlFJZSxmYUFycm93c1VwRG93bkxlZnRSaWdodDpYTyxmYUFycm93czpKSWUsZmFIb3VzZTpqNSxmYUhvbWU6ZU5lLGZhSG9tZUFsdDp0TmUsZmFIb21lTGdBbHQ6YU5lLGZhU3Bpbm5lcjppTmUsZmFHYXZlbDpLTyxmYUxlZ2FsOnJOZSxmYVRpY2tldFNpbXBsZTpRTyxmYVRpY2tldEFsdDpzTmUsZmFEb3ZlOm5OZSxmYVRhcnBEcm9wbGV0Om9OZSxmYVRyZWVDaXR5OmxOZSxmYVR1cm5VcDpKTyxmYUxldmVsVXBBbHQ6Y05lLGZhVGVtcGVyYXR1cmVRdWFydGVyOlU1LGZhVGVtcGVyYXR1cmUxOmROZSxmYVRoZXJtb21ldGVyMTpwTmUsZmFUaGVybW9tZXRlclF1YXJ0ZXI6aE5lLGZhU2xpZGVyczplUixmYVNsaWRlcnNIOnVOZSxmYU1vc3F1ZTpmTmUsZmFIOm1OZSxmYUluZm86Z05lLGZhUGVyc29uV2Fsa2luZzp0UixmYVdhbGtpbmc6Yk5lLGZhQXJyb3dUdXJuRG93bjphUixmYUxldmVsRG93bjp2TmUsZmFSb2FkOnlOZSxmYVNwaXJhbDp4TmUsZmFGYWNlRnJvd246aVIsZmFGcm93bjp3TmUsZmFXaW5lR2xhc3NFbXB0eTpyUixmYVdpbmVHbGFzc0FsdDpNTmUsZmFDbGFwcGVyYm9hcmQ6ek5lLGZhRm9yd2FyZFN0ZXA6c1IsZmFTdGVwRm9yd2FyZDprTmUsZmFTcXVhcmVVcFJpZ2h0Om5SLGZhRXh0ZXJuYWxMaW5rU3F1YXJlQWx0OlNOZSxmYUJvb2tKb3VybmFsV2hpbGxzOm9SLGZhSm91cm5hbFdoaWxsczpDTmUsZmFDaGFtcGFnbmVHbGFzc2VzOmxSLGZhR2xhc3NDaGVlcnM6X05lLGZhRHVtcHN0ZXI6VE5lLGZhSGVhcnRDaXJjbGVYbWFyazpMTmUsZmFDb21wdXRlcjokTmUsZmFXYW5kTWFnaWM6Y1IsZmFNYWdpYzpBTmUsZmFCcmFpbjpETmUsZmFCcmllZmNhc2VNZWRpY2FsOkVOZSxmYUhvdXNlTWVkaWNhbENpcmNsZUV4Y2xhbWF0aW9uOlBOZSxmYUNvZGVDb21taXQ6SU5lLGZhUGVyc29uQnJlYXN0ZmVlZGluZzpOTmUsZmFQZXJzb25SYXlzOkZOZSxmYU1hbmF0U2lnbjpPTmUsZmFTb3J0OmRSLGZhVW5zb3J0ZWQ6Uk5lLGZhQ2lyY2xlUmFkaWF0aW9uOnBSLGZhUmFkaWF0aW9uQWx0OkJOZSxmYUxhcHRvcENvZGU6SE5lLGZhU2luazpxTmUsZmFBcnJvd1VwRnJvbVdhdGVyUHVtcDpWTmUsZmFNaWNyb3Bob25lTGluZXNTbGFzaDpoUixmYU1pY3JvcGhvbmVBbHRTbGFzaDpqTmUsZmFTZXJ2ZXI6VU5lLGZhVXNlcjpibSxmYVVzZXJBbHQ6V05lLGZhVXNlckxhcmdlOkdOZSxmYVNub3dmbGFrZTpZTmUsZmFUYXVydXM6Wk5lLGZhU2t1bGxDcm9zc2JvbmVzOlhOZSxmYVBlc29TaWduOktOZSxmYVdpbmVHbGFzczpRTmUsZmFUZW1wZXJhdHVyZUhhbGY6VzUsZmFUZW1wZXJhdHVyZTI6Sk5lLGZhVGhlcm1vbWV0ZXIyOmVGZSxmYVRoZXJtb21ldGVySGFsZjp0RmUsZmFUaWNrZXQ6YUZlLGZhV2hlYXRBd25DaXJjbGVFeGNsYW1hdGlvbjppRmUsZmFBcnJvd3NUdXJuUmlnaHQ6ckZlLGZhQ2FuZHlDYW5lOnNGZSxmYVdoZWVsY2hhaXI6bkZlLGZhU3BlbGxDaGVjazpvRmUsZmFWb2x1bWVPZmY6bEZlLGZhTHVuZ3M6Y0ZlLGZhQm9va21hcms6ZEZlLGZhQmFyY29kZTpwRmUsZmFMaXN0T2w6dm0sZmFMaXN0MTI6aEZlLGZhTGlzdE51bWVyaWM6dUZlLGZhRmlsZUNpcmNsZVhtYXJrOmZGZSxmYUN1YmU6bUZlLGZhVGFwZTpnRmUsZmFCb21iOmJGZSxmYVNjYWxlVW5iYWxhbmNlZDp1UixmYUJhbGFuY2VTY2FsZUxlZnQ6dkZlLGZhU3F1YXJlQ2FyZXRMZWZ0OmZSLGZhQ2FyZXRTcXVhcmVMZWZ0OnlGZSxmYVJ1bGVyOnhGZSxmYUk6d0ZlLGZhVm9sdW1lWG1hcms6eW0sZmFWb2x1bWVNdXRlOk1GZSxmYVZvbHVtZVRpbWVzOnpGZSxmYUFyY2h3YXk6a0ZlLGZhUGVyc29uRGlnZ2luZzptUixmYURpZ2dpbmc6U0ZlLGZhR2F1Z2VIaWdoOnhtLGZhVGFjaG9tZXRlckFsdDpDRmUsZmFUYWNob21ldGVyQWx0RmFzdDpfRmUsZmFHZW5kZXJsZXNzOlRGZSxmYUNsb3VkU3VuOkxGZSxmYUFycm93UmlnaHQ6bGcsZmFIYW5kc2hha2U6d20sZmFIYW5kc2hha2VBbHQ6JEZlLGZhSGFuZHNoYWtlU2ltcGxlOkFGZSxmYVBlcnNvblNraWluZzpnUixmYVNraWluZzpERmUsZmFCcmlkZ2VXYXRlcjpFRmUsZmFCdWlsZGluZ05nbzpQRmUsZmFJZ2xvbzpJRmUsZmFDaXJjbGVEb2xsYXJUb1Nsb3Q6YlIsZmFEb25hdGU6TkZlLGZhWTpGRmUsZmFGYWNlU21pbGVXaW5rOnZSLGZhU21pbGVXaW5rOk9GZSxmYURpY2VGb3VyOlJGZSxmYUZhY2VHcmluU3F1aW50VGVhcnM6eVIsZmFHcmluU3F1aW50VGVhcnM6QkZlLGZhRmlsZUF1ZGlvOkhGZSxmYUFycm93c0Rvd25Ub0xpbmU6cUZlLGZhRzpWRmUsZmFWaWhhcmE6akZlLGZhRmxhZ0NoZWNrZXJlZDpVRmUsZmFHYXVnZVNpbXBsZTpNbSxmYUdhdWdlU2ltcGxlTWVkOldGZSxmYVRhY2hvbWV0ZXJBdmVyYWdlOkdGZSxmYVJpZ2h0TGVmdDp4UixmYUV4Y2hhbmdlQWx0OllGZSxmYVBpbGxzOlpGZSxmYUV4cGxvc2lvbjpYRmUsZmFBcnJvd3NEb3duVG9QZW9wbGU6S0ZlLGZhVXNlcnNWaWV3ZmluZGVyOlFGZSxmYUNhck9uOkpGZSxmYVNsZWlnaDplT2UsZmFEdW1iYmVsbDp0T2UsZmFCYWJ5Q2FycmlhZ2U6d1IsZmFDYXJyaWFnZUJhYnk6YU9lLGZhS2l3aUJpcmQ6aU9lLGZhQ2FsZW5kYXJYbWFyazpNUixmYUNhbGVuZGFyVGltZXM6ck9lLGZhQ2lyY2xlRG93bjp6UixmYUFycm93QWx0Q2lyY2xlRG93bjpzT2UsZmFGaWxlTWVkaWNhbDpuT2UsZmFYbWFyazppbyxmYUNsb3NlOm9PZSxmYU11bHRpcGx5OmxPZSxmYVJlbW92ZTpjT2UsZmFUaW1lczpkT2UsZmFTaGFwZXM6a1IsZmFUcmlhbmdsZUNpcmNsZVNxdWFyZTpwT2UsZmFEaWNlT25lOmhPZSxmYUxvY2tPcGVuOnVPZSxmYVBlcHBlckhvdDpmT2UsZmFEcm9wbGV0U2xhc2g6U1IsZmFUaW50U2xhc2g6bU9lLGZhRHJvcGxldDpDUixmYVRpbnQ6Z09lLGZhRmlsZUxpbmVzOnptLGZhRmlsZUFsdDpiT2UsZmFGaWxlVGV4dDp2T2UsZmFDb21tZW50c0RvbGxhcjp5T2UsZmFNYWduaWZ5aW5nR2xhc3NMb2NhdGlvbjpfUixmYVNlYXJjaExvY2F0aW9uOnhPZSxmYUZpbGVJbnZvaWNlOmNnLGZhUGVudGFnb246d09lLGZhUmVwdWJsaWNhbjpNT2UsZmFTaG9wOlRSLGZhU3RvcmVBbHQ6ek9lLGZhRmlsbTprbSxmYUZpbG1BbHQ6a09lLGZhRmlsbVNpbXBsZTpTT2UsZmFCdWlsZGluZ0NpcmNsZVhtYXJrOkNPZSxmYUNvbW1lbnRzOl9PZSxmYVRhZ3M6VE9lLGZhR3VuOkxPZSxmYUNpcmNsZUNoZWNrOm84LGZhQ2hlY2tDaXJjbGU6JE9lLGZhU2NvcnBpbzpBT2UsZmFJZENhcmRDbGlwOkxSLGZhSWRDYXJkQWx0OkRPZSxmYU1vb246RU9lLGZhT2lsV2VsbDpQT2UsZmFUYWNob2dyYXBoRGlnaXRhbDokUixmYURpZ2l0YWxUYWNob2dyYXBoOklPZSxmYVRhYmxldDpBUixmYVRhYmxldEFuZHJvaWQ6Tk9lLGZhUnVibGVTaWduOkc1LGZhUm91YmxlOkZPZSxmYVJ1YjpPT2UsZmFSdWJsZTpST2UsZmFDbG9zZWRDYXB0aW9uaW5nOkJPZSxmYVBlbjpIT2UsZmFQbGFuZTpxT2UsZmFJbWFnZXM6Vk9lLGZhTW9iaWxlU2NyZWVuOkRSLGZhTW9iaWxlQW5kcm9pZEFsdDpqT2UsZmFHdWFyYW5pU2lnbjpVT2UsZmFCYWdTaG9wcGluZzpFUixmYVNob3BwaW5nQmFnOldPZSxmYUNpcmNsZVJpZ2h0OlBSLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpHT2UsZmFQaG9uZVZvbHVtZTpJUixmYVZvbHVtZUNvbnRyb2xQaG9uZTpZT2UsZmFDdWJlczpaT2UsZmFQaG9uZTpYT2UsZmFUb3JpaUdhdGU6S09lLGZhQmFjb246UU9lLGZhUGVyc29uRmFsbGluZ0J1cnN0OkpPZSxmYVF1b3RlUmlnaHQ6TlIsZmFRdW90ZVJpZ2h0QWx0OmVSZSxmYUhvdXNlTWVkaWNhbEZsYWc6dFJlLGZhUHJlc2NyaXB0aW9uOmFSZSxmYURpY2VUaHJlZTppUmUsZmFCdWlsZGluZ0xvY2s6clJlLGZhSWRDYXJkOkZSLGZhRHJpdmVyc0xpY2Vuc2U6c1JlLGZhQ2lyY2xlUGxheTpPUixmYVBsYXlDaXJjbGU6blJlLGZhRmFjZUxhdWdoQmVhbTpSUixmYUxhdWdoQmVhbTpvUmUsZmFMZWFmOmxSZSxmYUhvdXNlQ2hpbW5leVVzZXI6Y1JlLGZhUm90YXRlUmlnaHQ6U20sZmFSZWRvQWx0OmRSZSxmYVJvdGF0ZUZvcndhcmQ6cFJlLGZhVG9vdGg6aFJlLGZhSG91c2VDaGltbmV5V2luZG93OnVSZSxmYU1vdG9yY3ljbGU6ZlJlLGZhQmFja3dhcmRGYXN0OkJSLGZhRmFzdEJhY2t3YXJkOm1SZSxmYUFkZHJlc3NCb29rOkhSLGZhQ29udGFjdEJvb2s6Z1JlLGZhU2FpbGJvYXQ6YlJlLGZhQm9va0Jvb2ttYXJrOnZSZSxmYU1hZ25pZnlpbmdHbGFzc0Fycm93UmlnaHQ6eVJlLGZhTWljcm9waG9uZUxpbmVzOnFSLGZhTWljcm9waG9uZUFsdDp4UmUsZmFSZXBseUFsbDpWUixmYU1haWxSZXBseUFsbDp3UmUsZmFVbml2ZXJzYWxBY2Nlc3M6TVJlLGZhVG9pbGV0UGFwZXI6Q20sZmFUb2lsZXRQYXBlckFsdDp6UmUsZmFUb2lsZXRQYXBlckJsYW5rOmtSZSxmYVZyQ2FyZGJvYXJkOlNSZSxmYVBpenphU2xpY2U6Q1JlLGZhU3ByYXlDYW46X1JlLGZhVm9sdW1lTG93OmpSLGZhVm9sdW1lRG93bjpUUmUsZmFDcm9zczpMUmUsZmFQZXJzb246VVIsZmFNYWxlOiRSZSxmYUhvdXJnbGFzczpXUixmYUhvdXJnbGFzc0VtcHR5OkFSZSxmYUZpc2g6RFJlLGZhRHJ1bXN0aWNrQml0ZTpFUmUsZmFDaGFydFNpbXBsZTpQUmUsZmFBdG9tOklSZSxmYVA6TlJlLGZhSmV0RmlnaHRlclVwOkZSZSxmYVBsdWdDaXJjbGVYbWFyazpPUmUsZmFTaGVldFBsYXN0aWM6UlJlLGZhVjpCUmUsZmFMaXN0OkdSLGZhTGlzdFNxdWFyZXM6SFJlLGZhUGlzY2VzOnFSZSxmYVNvbGFyUGFuZWw6VlJlLGZhTGFuZE1pbmVPbjpqUmUsZmFIZWFkcGhvbmVzOl9tLGZhSGVhZHBob25lc0FsdDpVUmUsZmFIZWFkcGhvbmVzU2ltcGxlOldSZSxmYUJ1czpHUmUsZmFGaWxlUG93ZXJwb2ludDpZUmUsZmFRdW90ZUxlZnQ6WVIsZmFRdW90ZUxlZnRBbHQ6WlJlLGZhQ2hldnJvbkRvd246WFJlLGZhRWFydGhBc2lhOlpSLGZhR2xvYmVBc2lhOktSZSxmYUNlbnRTaWduOlFSZSxmYVNoaWVsZENhdDpKUmUsZmFTY2hvb2xDaXJjbGVDaGVjazplQmUsZmFNYXJ0aW5pR2xhc3M6WFIsZmFHbGFzc01hcnRpbmlBbHQ6dEJlLGZhUGx1ZzphQmUsZmFQYW5vcmFtYTppQmUsZmFDbG9ja1JvdGF0ZUxlZnQ6bDgsZmFIaXN0b3J5OnJCZSxmYUphcldoZWF0OnNCZSxmYUNsb3VkQXJyb3dEb3duOlRtLGZhQ2xvdWREb3dubG9hZDpuQmUsZmFDbG91ZERvd25sb2FkQWx0Om9CZSxmYVRydWNrUmFtcEJveDpLUixmYVRydWNrTG9hZGluZzpsQmUsZmFBbmdsZURvd246Y0JlLGZhUGx1Z0NpcmNsZUNoZWNrOmRCZSxmYVdpbmRvd01heGltaXplOnBCZSxmYUhhbmRzSG9sZGluZ0NpcmNsZTpoQmUsZmFMb2NhdGlvblBpbjpRUixmYU1hcE1hcmtlcjp1QmUsZmFCb3dsaW5nQmFsbDpmQmUsZmFDYXJ0RmxhdGJlZDpKUixmYURvbGx5RmxhdGJlZDptQmUsZmFIb3VzZVVzZXI6ZUIsZmFIb21lVXNlcjpnQmUsZmFHaG9zdDpiQmUsZmFDb21tZW50Tm9kZXM6dkJlLGZhUGVyc29uQXJyb3dEb3duVG9MaW5lOnlCZSxmYVBsdWdDaXJjbGVQbHVzOnhCZSxmYVBlcnNvblN3aW1taW5nOnRCLGZhU3dpbW1lcjp3QmUsZmFDb21tZW50RG90czphQixmYUNvbW1lbnRpbmc6TUJlLGZhQ2hhcnRQaWU6aUIsZmFQaWVDaGFydDp6QmUsZmFGcm9nOmtCZSxmYVdpbmVCb3R0bGU6U0JlLGZhSW5ib3g6Q0JlLGZhU3F1YXJlSDpyQixmYUhTcXVhcmU6X0JlLGZhSG91c2VNZWRpY2FsOlRCZSxmYUNpcmNsZUNoZXZyb25SaWdodDpzQixmYUNoZXZyb25DaXJjbGVSaWdodDpMQmUsZmFGaWxlQ3N2OiRCZSxmYUhhdENvd2JveTpBQmUsZmFGYWNlR3JpblRvbmd1ZVdpbms6bkIsZmFHcmluVG9uZ3VlV2luazpEQmUsZmFMOkVCZSxmYUFycm93RG93blNob3J0V2lkZTpMbSxmYVNvcnRBbW91bnREZXNjOlBCZSxmYVNvcnRBbW91bnREb3duQWx0OklCZSxmYUhvdXJnbGFzc0hhbGY6b0IsZmFIb3VyZ2xhc3MyOk5CZSxmYVNwb29uOmxCLGZhVXRlbnNpbFNwb29uOkZCZSxmYUNyZWRpdENhcmQ6Y0IsZmFDcmVkaXRDYXJkQWx0Ok9CZSxmYUZpbGVJbnZvaWNlRG9sbGFyOmRnLGZhU3BhZ2hldHRpTW9uc3RlckZseWluZzpkQixmYVBhc3RhZmFyaWFuaXNtOlJCZSxmYU1hcnRpbmlHbGFzc0NpdHJ1czpwQixmYUNvY2t0YWlsOkJCZSxmYUJ1bGxob3JuOkhCZSxmYUJveFRpc3N1ZTpxQmUsZmFNYXR0cmVzc1BpbGxvdzpWQmUsZmFDaGV2cm9uTGVmdDpqQmUsZmFDbG91ZE1vb25SYWluOlVCZSxmYUFycm93RG93bjE5OiRtLGZhU29ydE51bWVyaWNBc2M6V0JlLGZhU29ydE51bWVyaWNEb3duOkdCZSxmYUhhbmRTcG9jazpZQmUsZmFXYW5kTWFnaWNTcGFya2xlczpoQixmYU1hZ2ljV2FuZFNwYXJrbGVzOlpCZSxmYUNvbW1lbnRNZWRpY2FsOlhCZSxmYUJlbGxTbGFzaDpLQmUsZmFIYW5kc2hha2VTbGFzaDpBbSxmYUhhbmRzaGFrZUFsdFNsYXNoOlFCZSxmYUhhbmRzaGFrZVNpbXBsZVNsYXNoOkpCZSxmYUJvdHRsZVdhdGVyOmVIZSxmYURpY2VEMjA6dEhlLGZhQXJyb3dEb3duWkE6RG0sZmFTb3J0QWxwaGFEZXNjOmFIZSxmYVNvcnRBbHBoYURvd25BbHQ6aUhlLGZhQnJ1c2g6ckhlLGZhUGVyc29uV2Fsa2luZ0Rhc2hlZExpbmVBcnJvd1JpZ2h0OnNIZSxmYUFycm93VXBTaG9ydFdpZGU6dUIsZmFTb3J0QW1vdW50VXBBbHQ6bkhlLGZhR3JpcFZlcnRpY2FsOmZCLGZhR3JpZFZlcnRpY2FsOm9IZSxmYUNhclR1bm5lbDpsSGUsZmFDaGFydENvbHVtbjpjSGUsZmFDYXByaWNvcm46ZEhlLGZhVHJ1Y2tBcnJvd1JpZ2h0OnBIZSxmYVR2OkVtLGZhVGVsZXZpc2lvbjpoSGUsZmFUdkFsdDp1SGUsZmFTZWN0aW9uOmZIZSxmYVBlYWNlOm1IZSxmYVN0YXI6Z0hlLGZhRmxhZzpiSGUsZmFUcmlhbmdsZUV4Y2xhbWF0aW9uOlBtLGZhRXhjbGFtYXRpb25UcmlhbmdsZTp2SGUsZmFXYXJuaW5nOnlIZSxmYVNjaG9vbENpcmNsZUV4Y2xhbWF0aW9uOnhIZSxmYUdyYWR1YXRpb25DYXA6bUIsZmFNb3J0YXJCb2FyZDp3SGUsZmFTdG9yZTpNSGUsZmFVc2VyQXN0cm9uYXV0OnpIZSxmYUJ1aWxkaW5nRmxhZzprSGUsZmFNdWdTYXVjZXI6Z0IsZmFDb2ZmZWU6U0hlLGZhTGVtb246Q0hlLGZhQ2FyYXZhbjpfSGUsZmFROlRIZSxmYUxvY2s6TEhlLGZhUGFpbnRSb2xsZXI6JEhlLGZhVm9sdW1lSGlnaDpiQixmYVZvbHVtZVVwOkFIZSxmYUZvbGRlclBsdXM6REhlLGZhTWVyY3VyeTpFSGUsZmFBbmNob3I6UEhlLGZhU3F1YXJlUGFya2luZzp2QixmYVBhcmtpbmc6SUhlLGZhSGFudWtpYWg6TkhlLGZhUm90YXRlTGVmdDpZNSxmYVJvdGF0ZUJhY2s6RkhlLGZhUm90YXRlQmFja3dhcmQ6T0hlLGZhVW5kb0FsdDpSSGUsZmFIZWFkaW5nOnlCLGZhSGVhZGVyOkJIZSxmYUNyb3NzaGFpcnM6SEhlLGZhQ2lyY2xlTm9kZXM6cUhlLGZhV2luZG93UmVzdG9yZTpWSGUsZmFSOmpIZSxmYUZpbHRlckNpcmNsZVhtYXJrOlVIZSxmYUdvcHVyYW06V0hlLGZhSGVhcnRDaXJjbGVNaW51czpHSGUsZmFTdGFyT2ZMaWZlOllIZSxmYUJ1c2luZXNzVGltZTp4QixmYUJyaWVmY2FzZUNsb2NrOlpIZSxmYUZpcmVFeHRpbmd1aXNoZXI6WEhlLGZhQXJyb3dEb3duTG9uZzp3QixmYUxvbmdBcnJvd0Rvd246S0hlLGZhVXNlck1pbnVzOlFIZSxmYU1vbmV5Q2hlY2s6SkhlLGZhSG91c2VMYXB0b3A6TUIsZmFMYXB0b3BIb3VzZTplcWUsZmFEb3dubG9hZDp0cWUsZmFTYWdpdHRhcml1czphcWUsZmFDb3VjaDppcWUsZmFSb2FkTG9jazpycWUsZmFTY2lzc29yczp6QixmYUN1dDpzcWUsZmFCdWc6cGcsZmFBcnJvd1JpZ2h0RnJvbUJyYWNrZXQ6a0IsZmFTaWduT3V0Om5xZSxmYUhhbmRIb2xkaW5nSGFuZDpvcWUsZmFTdHJvb3B3YWZlbDpscWUsZmFDaGlsZDpjcWUsZmFJY2VDcmVhbTpkcWUsZmFDb21wdXRlck1vdXNlOlNCLGZhTW91c2U6cHFlLGZhRmF1Y2V0OmhxZSxmYUF3YXJkOnVxZSxmYVBlcnNvbkRyb3duaW5nOmZxZSxmYUNhbWVyYVJvdGF0ZTptcWUsZmFGYWNlR3JpbkhlYXJ0czpDQixmYUdyaW5IZWFydHM6Z3FlLGZhRmlsZUZyYWdtZW50OmJxZSxmYVBlcnNvbk1pbGl0YXJ5UmlmbGU6dnFlLGZhVG9nZ2xlT246eXFlLGZhTHVuZ3NWaXJ1czp4cWUsZmFUYWJsZVRlbm5pc1BhZGRsZUJhbGw6SW0sZmFQaW5nUG9uZ1BhZGRsZUJhbGw6d3FlLGZhVGFibGVUZW5uaXM6TXFlLGZhQm94ZXNQYWNraW5nOnpxZSxmYVBlcnNvbkNoYWxrYm9hcmQ6a3FlLGZhRGljZVR3bzpTcWUsZmFBcnJvd1JpZ2h0QXJyb3dMZWZ0Ol9CLGZhRXhjaGFuZ2U6Q3FlLGZhRm9vdGJhbGw6VEIsZmFGb290YmFsbEJhbGw6X3FlLGZhVHJ1Y2tNb25zdGVyOlRxZSxmYUFzdGVyaXNrOkxxZSxmYUJhdHRlcnlGdWxsOk5tLGZhQmF0dGVyeTokcWUsZmFCYXR0ZXJ5NTpBcWUsZmFDaGlsZERyZXNzOkRxZSxmYUZhY2VLaXNzQmVhbTpMQixmYUtpc3NCZWFtOkVxZSxmYVRyYXNoQ2FuQXJyb3dVcDokQixmYVRyYXNoUmVzdG9yZUFsdDpQcWUsZmFGb250OklxZSxmYUJvcmVIb2xlOk5xZSxmYVZpcnVzQ292aWQ6RnFlLGZhRmlsZVBkZjpPcWUsZmFMYW5ndWFnZTpScWUsZmFTaGllbGRIYWx2ZWQ6QUIsZmFTaGllbGRBbHQ6QnFlLGZhQ2FyZXRVcDpIcWUsZmFGaWxlUGVuOkRCLGZhRmlsZUVkaXQ6cXFlLGZhUGVyc29uQmlraW5nOkVCLGZhQmlraW5nOlZxZSxmYUJvb2tPcGVuUmVhZGVyOlBCLGZhQm9va1JlYWRlcjpqcWUsZmFHbGFzc1dhdGVyRHJvcGxldDpVcWUsZmFUb3dlckJyb2FkY2FzdDpJQixmYUJyb2FkY2FzdFRvd2VyOldxZSxmYU1pbmltaXplOk5CLGZhQ29tcHJlc3NBcnJvd3NBbHQ6R3FlLGZhQXJyb3dSaWdodFRvQ2l0eTpZcWUsZmFMYXB0b3BNZWRpY2FsOlpxZSxmYUJyZWFkU2xpY2U6WHFlLGZhR2xvYmU6S3FlLGZhRm9sZGVyTWludXM6UXFlLGZhTWFza0ZhY2U6SnFlLGZhQm9uZzplVmUsZmFSb2FkQnJpZGdlOnRWZSxmYUFycm93VXA5MTpGQixmYVNvcnROdW1lcmljVXBBbHQ6YVZlLGZhTW91bnRhaW5DaXR5OmlWZSxmYUFycm93RG93bjkxOkZtLGZhU29ydE51bWVyaWNEZXNjOnJWZSxmYVNvcnROdW1lcmljRG93bkFsdDpzVmUsZmFGYWNlR3JpbldpZGU6T0IsZmFHcmluQWx0Om5WZSxmYVBvb3A6b1ZlLGZhRGhhcm1hY2hha3JhOmxWZSxmYUJhdHRlcnlRdWFydGVyOlJCLGZhQmF0dGVyeTI6Y1ZlLGZhQW5raDpkVmUsZmFEaWFtb25kOnBWZSxmYVN1YnNjcmlwdDpoVmUsZmFSdXBlZVNpZ246QkIsZmFSdXBlZTp1VmUsZmFQZXJzb25SaWZsZTpmVmUsZmFEOm1WZSxmYVNxdWFyZU5maTpnVmUsZmFUZWV0aDpiVmUsZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXI6SEIsZmFTZWFyY2hEb2xsYXI6dlZlLGZhRHVtcHN0ZXJGaXJlOnlWZSxmYVVwbG9hZDp4VmUsZmFVc2VyU2xhc2g6T20sZmFVc2VyQWx0U2xhc2g6d1ZlLGZhVXNlckxhcmdlU2xhc2g6TVZlLGZhQXJyb3dMZWZ0OnpWZSxmYVZpYWxWaXJ1czprVmUsZmFDaGVja0RvdWJsZTpTVmUsZmFQYXc6Q1ZlLGZhSGVsbWV0U2FmZXR5OlJtLGZhSGFyZEhhdDpfVmUsZmFIYXRIYXJkOlRWZSxmYUU6TFZlLGZhRmFjZUxhdWdoU3F1aW50OnFCLGZhTGF1Z2hTcXVpbnQ6JFZlLGZhRG93bkxlZnRBbmRVcFJpZ2h0VG9DZW50ZXI6VkIsZmFDb21wcmVzc0FsdDpBVmUsZmFHaWZ0czpEVmUsZmFCZWQ6RVZlLGZhTW9uZXlCaWxsVHJhbnNmZXI6UFZlLGZhUGVyc29uUnVubmluZzpqQixmYVJ1bm5pbmc6SVZlLGZhQ2lyY2xlQ2hldnJvbkRvd246VUIsZmFDaGV2cm9uQ2lyY2xlRG93bjpOVmUsZmFVc2VyTnVyc2U6RlZlLGZhRmFjZUtpc3NXaW5rSGVhcnQ6V0IsZmFLaXNzV2lua0hlYXJ0Ok9WZSxmYUZpbGw6UlZlLGZhTW9uZXlCaWxsMVdhdmU6R0IsZmFNb25leUJpbGxXYXZlQWx0OkJWZSxmYUxhbmRtYXJrOkhWZSxmYU11c2ljOnFWZSxmYUJvb2tNZWRpY2FsOlZWZSxmYVNodWZmbGU6WUIsZmFSYW5kb206alZlLGZhVW5kZXJsaW5lOlVWZSxmYUJ1aWxkaW5nVXNlcjpXVmUsZmFSb2JvdDpHVmUsZmFQbHVzOmM4LGZhQWRkOllWZSxmYUNvcHk6aGcsZmFDaGVzc0tpbmc6WlZlLGZhSG91c2VGbG9vZFdhdGVyOlhWZSxmYUJpdGNvaW5TaWduOktWZSxmYUJveDpRVmUsZmFTcXVhcmVQbHVzOlpCLGZhUGx1c1NxdWFyZTpKVmUsZmFBcnJvd3NMZWZ0UmlnaHQ6WEIsZmFBcnJvd3NIOmVqZSxmYUZhbjp0amUsZmFDcm93OmFqZSxmYUZpbGVDaXJjbGVDaGVjazppamUsZmFMaW5rU2xhc2g6WjUsZmFDaGFpbkJyb2tlbjpyamUsZmFDaGFpblNsYXNoOnNqZSxmYVVubGluazpuamUsZmFBcnJvd1JvdGF0ZVJpZ2h0Olg1LGZhQXJyb3dSaWdodFJvdGF0ZTpvamUsZmFBcnJvd1JvdGF0ZUZvcndhcmQ6bGplLGZhUmVkbzpjamUsZmFQZW5DbGlwOktCLGZhUGVuQWx0OmRqZSxmYURvb3JDbG9zZWQ6cGplLGZhQXJyb3dEb3duV2lkZVNob3J0OkJtLGZhU29ydEFtb3VudEFzYzpoamUsZmFTb3J0QW1vdW50RG93bjp1amUsZmFDYXJldERvd246ZmplLGZhSzptamUsZmFDaGVja1RvU2xvdDpRQixmYVZvdGVZZWE6Z2plLGZhRmlzaEZpbnM6YmplLGZhQ29tcHJlc3M6dmplLGZhQXJyb3dVcEFaOkpCLGZhU29ydEFscGhhVXA6eWplLGZhVXNlckdyYWR1YXRlOnhqZSxmYUZpbGVDb2RlOndqZSxmYVNvYXA6TWplLGZhUmVjeWNsZTp6amUsZmFGYWNlR3Jpbldpbms6ZUgsZmFHcmluV2luazpramUsZmFXYXRlckxhZGRlcjpIbSxmYUxhZGRlcldhdGVyOlNqZSxmYVN3aW1taW5nUG9vbDpDamUsZmFHZW1pbmk6X2plLGZhVG93ZXJDZWxsOlRqZSxmYUNvbG9uU2lnbjpMamUsZmFMYXB0b3BGaWxlOiRqZSxmYUJhaGFpOnRILGZhSGF5a2FsOkFqZSxmYU1vbmV5QmlsbDE6YUgsZmFNb25leUJpbGxBbHQ6RGplLGZhQ2xvdWRCb2x0OmlILGZhVGh1bmRlcnN0b3JtOkVqZSxmYUV0aGVybmV0OlBqZSxmYUhyeXZuaWFTaWduOnJILGZhSHJ5dm5pYTpJamUsZmFFeWVTbGFzaDp1ZyxmYUNhcnRGbGF0YmVkU3VpdGNhc2U6c0gsZmFMdWdnYWdlQ2FydDpOamUsZmFSYWRpYXRpb246RmplLGZhRmlsZVdvcmQ6T2plLGZhQmVkUHVsc2U6bkgsZmFQcm9jZWR1cmVzOlJqZSxmYVRlbnRzOkJqZSxmYU11Z0hvdDpmZyxmYUJvbHQ6b0gsZmFaYXA6SGplLGZhSmFyOnFqZSxmYVRydWNrUGxhbmU6VmplLGZhSGFuZEhvbGRpbmdIZWFydDpqamUsZmFBcnJvd1JvdGF0ZUxlZnQ6aGwsZmFBcnJvd0xlZnRSb3RhdGU6VWplLGZhQXJyb3dSb3RhdGVCYWNrOldqZSxmYUFycm93Um90YXRlQmFja3dhcmQ6R2plLGZhVW5kbzpZamUsZmFGYWNlQW5ncnk6bEgsZmFBbmdyeTpaamUsZmFCdXJzdDpYamUsZmFaOktqZSxmYUJhbmRhZ2U6Y0gsZmFCYW5kQWlkOlFqZSxmYVBsYW5lQ2lyY2xlRXhjbGFtYXRpb246SmplLGZhQnVzU2lkZTplVWUsZmFCdWdzOnRVZSxmYUJlZXJNdWdFbXB0eTpkSCxmYUJlZXI6YVVlLGZhUGVyc29uQ2lyY2xlQ2hlY2s6aVVlLGZhU3RhcGxlcjpyVWUsZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjazpzVWUsZmFOYWlyYVNpZ246blVlLGZhV2lmaTpxbSxmYVdpZmkzOm9VZSxmYVdpZmlTdHJvbmc6bFVlLGZhTW9uZXlDaGVja0RvbGxhcjpkOCxmYU1vbmV5Q2hlY2tBbHQ6Y1VlLGZhRXllTG93VmlzaW9uOnBILGZhTG93VmlzaW9uOmRVZSxmYUNpcmNsZUFycm93VXA6aEgsZmFBcnJvd0NpcmNsZVVwOnBVZSxmYUNhbWVyYVJldHJvOmhVZSxmYUNhcHN1bGVzOnVVZSxmYVBvbzpmVWUsZmFWb2x1bWU6dUgsZmFWb2x1bWVNZWRpdW06bVVlLGZhRWxldmF0b3I6Z1VlLGZhVGFnOmJVZSxmYUZpbGVDaXJjbGVNaW51czp2VWUsZmFEb3duTG9uZzpmSCxmYUxvbmdBcnJvd0FsdERvd246eVVlLGZhQ29tcGFjdERpc2M6eFVlLGZhU3VpdGNhc2VSb2xsaW5nOndVZSxmYUJvb2tRdXJhbjptSCxmYVF1cmFuOk1VZSxmYVBob25lU2xhc2g6elVlLGZhUm9hZENpcmNsZUNoZWNrOmtVZSxmYVNob3BMb2NrOlNVZSxmYUltYWdlUG9ydHJhaXQ6Z0gsZmFQb3J0cmFpdDpDVWUsZmFCcmlkZ2VMb2NrOl9VZSxmYUhhbW1lcjpUVWUsZmFBcnJvd1VwMTk6YkgsZmFTb3J0TnVtZXJpY1VwOkxVZSxmYUNoZXNzS25pZ2h0OiRVZSxmYUhvdXNlRmxvb2RXYXRlckNpcmNsZUFycm93UmlnaHQ6QVVlLGZhQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZTpwOCxmYUV4dGVybmFsTGluazpEVWUsZmFBcnJvd0Rvd25VcEFjcm9zc0xpbmU6RVVlLGZhRmFjZUdyaW5CZWFtOnZILGZhR3JpbkJlYW06UFVlLGZhUmVjdGFuZ2xlQWQ6eUgsZmFBZDpJVWUsZmFCb29rVGFuYWtoOnhILGZhVGFuYWtoOk5VZSxmYUhvdFR1YlBlcnNvbjp3SCxmYUhvdFR1YjpGVWUsZmFGaWxlSGFsZkRhc2hlZDpPVWUsZmFPdXRkZW50Ok1ILGZhRGVkZW50OlJVZSxmYUhhbmRQZWFjZTpCVWUsZmFIZWFkU2lkZVZpcnVzOkhVZSxmYUNvbXBhc3M6cVVlLGZhUGVuTmliOlZVZSxmYVRlbnRBcnJvd3NEb3duOmpVZSxmYUZvcndhcmRGYXN0OnpILGZhRmFzdEZvcndhcmQ6VVVlLGZhQ3JvcDpXVWUsZmFXaGlza2V5R2xhc3M6a0gsZmFHbGFzc1doaXNrZXk6R1VlLGZhU3F1YXJlOllVZSxmYUZhY2VHcmluOlNILGZhR3JpbjpaVWUsZmFGaWxlQ29udHJhY3Q6WFVlLGZhQW5nbGVVcDpLVWUsZmFGYWNlU21pbGU6Q0gsZmFTbWlsZTpRVWUsZmFQZXJzb25EcmVzc0J1cnN0OkpVZSxmYURpdmlkZTplV2UsZmFDb2RlRm9yazp0V2UsZmFIb3VzZUZsYWc6YVdlLGZhQnVpbGRpbmdDb2x1bW5zOnVsLGZhQmFuazppV2UsZmFJbnN0aXR1dGlvbjpyV2UsZmFNdXNldW06c1dlLGZhVW5pdmVyc2l0eTpuV2UsZmFSdWc6b1dlLGZhQ29kZU1lcmdlOmxXZSxmYUhvdXNlVHN1bmFtaTpjV2UsZmFNYWduaWZ5aW5nR2xhc3NDaGFydDpkV2UsZmFVbWJyZWxsYTpwV2UsZmFIaWxsUm9ja3NsaWRlOmhXZSxmYVVzZXJTZWNyZXQ6dVdlLGZhUGFnZXI6ZldlLGZhQnJpZWZjYXNlOm1XZSxmYVRyb3dlbEJyaWNrczpnV2UsZmFTb2NrczpiV2UsZmFUOnZXZSxmYU1pY3JvY2hpcDp5V2UsZmFUcnVja01lZGljYWw6X0gsZmFBbWJ1bGFuY2U6eFdlLGZhT206d1dlLGZhTW9zcXVpdG9OZXQ6TVdlLGZhUHJlc2NyaXB0aW9uQm90dGxlOnpXZSxmYVVzZXJzR2VhcjpUSCxmYVVzZXJzQ29nOmtXZSxmYVJvYWRDaXJjbGVFeGNsYW1hdGlvbjpTV2UsZmFQYXVzZTpDV2UsZmFTdGFmZlNuYWtlOks1LGZhUm9kQXNjbGVwaXVzOl9XZSxmYVJvZFNuYWtlOlRXZSxmYVN0YWZmQWVzY3VsYXBpdXM6TFdlLGZhUGlnZ3lCYW5rOiRXZSxmYU1vbnVtZW50OkFXZSxmYUFuZ2xlc1JpZ2h0OkxILGZhQW5nbGVEb3VibGVSaWdodDpEV2UsZmFEZXNrdG9wOmg4LGZhRGVza3RvcEFsdDpFV2UsZmFQbGFuZUNpcmNsZVhtYXJrOlBXZSxmYVJldHdlZXQ6SVdlLGZhVXNlckdlYXI6JEgsZmFVc2VyQ29nOk5XZSxmYUJvcmRlckFsbDpGV2UsZmFDb2luczpPV2UsZmFNYXJzU3Ryb2tlOlJXZSxmYUhhbmRzaGFrZUFuZ2xlOkFILGZhSGFuZHNIZWxwaW5nOkJXZSxmYUFycm93RG93bjpIV2UsZmFMb2NhdGlvbkRvdDpESCxmYU1hcE1hcmtlckFsdDpxV2UsZmFQbHVnQ2lyY2xlRXhjbGFtYXRpb246VldlLGZhQ29va2llQml0ZTpqV2UsZmFTY3Jld2RyaXZlcldyZW5jaDpFSCxmYVRvb2xzOlVXZSxmYUluZGVudDpXV2UsZmFCYXJzOlBILGZhTmF2aWNvbjpHV2UsZmFIYW5kc1ByYXlpbmc6SUgsZmFQcmF5aW5nSGFuZHM6WVdlLGZhVmlydXNlczpaV2UsZmFTY2hvb2xGbGFnOlhXZSxmYVRyYWRlbWFyazpLV2UsZmFGaXJlQnVybmVyOlFXZSxmYUZhY2VTbWlsZUJlYW06TkgsZmFTbWlsZUJlYW06SldlLGZhVGVudEFycm93TGVmdFJpZ2h0OmVHZSxmYVJvdXRlOnRHZSxmYUFuZ2xlc1VwOkZILGZhQW5nbGVEb3VibGVVcDphR2UsZmFCdWNrZXQ6aUdlLGZhTGVzc1RoYW5FcXVhbDpyR2UsZmFGb2xkZXJDbG9zZWQ6c0dlLGZhUGVyc29uVGhyb3VnaFdpbmRvdzpuR2UsZmFTY2hvb2xMb2NrOm9HZSxmYVBlcnNvbkJ1cnN0OmxHZSxmYUxlZnRMb25nOk9ILGZhTG9uZ0Fycm93QWx0TGVmdDpjR2UsZmFMb2NhdGlvbkNyb3NzaGFpcnM6UkgsZmFMb2NhdGlvbjpkR2UsZmFQZXJzb25Eb3RzRnJvbUxpbmU6QkgsZmFEaWFnbm9zZXM6cEdlLGZhR2F1Z2VTaW1wbGVIaWdoOlZtLGZhVGFjaG9tZXRlcjpoR2UsZmFUYWNob21ldGVyRmFzdDp1R2UsZmFBbmdsZXNMZWZ0OkhILGZhQW5nbGVEb3VibGVMZWZ0OmZHZSxmYVVwRG93bjpxSCxmYUFycm93c0FsdFY6bUdlLGZhQmF0dGVyeUVtcHR5OlZILGZhQmF0dGVyeTA6Z0dlLGZhS2V5Ym9hcmQ6YkdlLGZhQ29va2llOnZHZSxmYVN0b3B3YXRjaDp5R2UsZmFFamVjdDp4R2UsZmFTYXRlbGxpdGVEaXNoOndHZSxmYUZhY2VSb2xsaW5nRXllczpqSCxmYU1laFJvbGxpbmdFeWVzOk1HZSxmYUxpc3RDaGVjazpVSCxmYVRhc2tzOnpHZSxmYVNhY2tYbWFyazprR2UsZmFIYXNodGFnOlNHZSxmYVRyYWluOkNHZSxmYUdhbWVwYWQ6X0dlLGZhRmlsZUV4cG9ydDpXSCxmYUFycm93UmlnaHRGcm9tRmlsZTpUR2UsZmFGYWNlR3JpbWFjZTpHSCxmYUdyaW1hY2U6TEdlLGZhVHJhaW5TdWJ3YXk6WUgsZmFTdWJ3YXk6JEdlLGZhQ2lyY2xlRG90OlpILGZhRG90Q2lyY2xlOkFHZSxmYU9iamVjdEdyb3VwOkRHZSxmYVNoaXA6RUdlLGZhQzpQR2UsZmFTcXVhcmVQaG9uZTpYSCxmYVBob25lU3F1YXJlOklHZSxmYVJ1bGVyQ29tYmluZWQ6TkdlLGZhQXJyb3dzUm90YXRlOmptLGZhUmVmcmVzaDpGR2UsZmFTeW5jOk9HZSxmYVBlcnNvbkRyZXNzOktILGZhRmVtYWxlOlJHZSxmYUJvb2tPcGVuOkJHZSxmYUZvbGRlclRyZWU6SEdlLGZhVmlyZ286cUdlLGZhQm94QXJjaGl2ZTpRSCxmYUFyY2hpdmU6VkdlLGZhVGVudEFycm93RG93blRvTGluZTpqR2UsZmFRcmNvZGU6VUdlLGZhRHJhZ29uOldHZSxmYUhvdXJnbGFzc0VuZDpKSCxmYUhvdXJnbGFzczM6R0dlLGZhR3JpcDptbCxmYUdyaWRIb3Jpem9udGFsOllHZSxmYUdyaXBIb3Jpem9udGFsOlpHZSxmYUJvcmRlclRvcExlZnQ6ZXEsZmFCb3JkZXJTdHlsZTpYR2UsZmFMaXN0VWw6dHEsZmFMaXN0RG90czpLR2UsZmFQZW9wbGVSb2JiZXJ5OlFHZSxmYU1vYmlsZUJ1dHRvbjpKR2UsZmFBcnJvd0Rvd25BWjpVbSxmYVNvcnRBbHBoYUFzYzplWWUsZmFTb3J0QWxwaGFEb3duOnRZZSxmYU1vbmV5QmlsbDphWWUsZmFDaXJjbGVNaW51czphcSxmYU1pbnVzQ2lyY2xlOmlZZSxmYUFycm93UG9pbnRlcjppcSxmYU1vdXNlUG9pbnRlcjpyWWUsZmFTcXVhcmVTaGFyZU5vZGVzOnJxLGZhU2hhcmVBbHRTcXVhcmU6c1llLGZhVGFibGVDZWxsc0xhcmdlOnNxLGZhVGhMYXJnZTpuWWUsZmFDYXQ6b1llLGZhQ2FsZW5kYXJXZWVrOmxZZSxmYUNvZGVDb21wYXJlOmNZZSxmYUxlbzpkWWUsZmFSb2FkQ2lyY2xlWG1hcms6cFllLGZhUGFsbGV0OmhZZSxmYUNha2VDYW5kbGVzOldtLGZhQmlydGhkYXlDYWtlOnVZZSxmYUNha2U6ZlllLGZhQnVnU2xhc2g6bVllLGZhVGFycDpnWWUsZmFEaWFncmFtUHJlZGVjZXNzb3I6YlllLGZhRmFjZUZsdXNoZWQ6bnEsZmFGbHVzaGVkOnZZZSxmYURpYWdyYW1OZXh0OnlZZSxmYUFuY2hvckNpcmNsZVhtYXJrOnhZZSxmYVBlcnNvbkNpcmNsZVhtYXJrOndZZSxmYVNwYTpNWWUsZmFBcmllczp6WWUsZmFCYXJzUHJvZ3Jlc3M6b3EsZmFUYXNrc0FsdDprWWUsZmFIZWFydENpcmNsZUNoZWNrOlNZZSxmYU1hcnNTdHJva2VSaWdodDpscSxmYU1hcnNTdHJva2VIOkNZZSxmYVRvd2VyT2JzZXJ2YXRpb246X1llLGZhU3RlcmxpbmdTaWduOkdtLGZhR2JwOlRZZSxmYVBvdW5kU2lnbjpMWWUsZmFGYXVjZXREcmlwOiRZZSxmYUNpcmNsZUluZm86dTgsZmFJbmZvQ2lyY2xlOkFZZSxmYUZlYXRoZXI6RFllLGZhQm93bFJpY2U6RVllLGZhU3RhckhhbGZTdHJva2U6Y3EsZmFTdGFySGFsZkFsdDpQWWUsZmFUZW1wZXJhdHVyZUFycm93RG93bjpkcSxmYVRlbXBlcmF0dXJlRG93bjpJWWUsZmFNYXNrVmVudGlsYXRvcjpOWWUsZmFGaWxlVmlkZW86RlllLGZhQXJyb3dUcmVuZERvd246T1llLGZhT2lsQ2FuOlJZZSxmYVBlb3BsZUNhcnJ5Qm94OnBxLGZhUGVvcGxlQ2Fycnk6QlllLGZhQ2hhaXI6SFllLGZhV2luZDpxWWUsZmFMYXllckdyb3VwOlZZZSxmYUhlYWRTaWRlTWFzazpqWWUsZmFIYW5kczpZbSxmYVNpZ25MYW5ndWFnZTpVWWUsZmFTaWduaW5nOldZZSxmYVRhYmxldHM6R1llLGZhV2VpZ2h0SGFuZ2luZzpZWWUsZmFEaWNlOlpZZSxmYVNob3BTbGFzaDpocSxmYVN0b3JlQWx0U2xhc2g6WFllLGZhU29ydERvd246dXEsZmFTb3J0RGVzYzpLWWUsZmFQZXNldGFTaWduOlFZZSxmYVRhYmxldFNjcmVlbkJ1dHRvbjpmcSxmYVRhYmxldEFsdDpKWWUsZmFIYW5kSG9sZGluZ0RvbGxhcjptcSxmYUhhbmRIb2xkaW5nVXNkOmVaZSxmYVNoaWVsZDpncSxmYVNoaWVsZEJsYW5rOnRaZSxmYUZhY2VMYXVnaDpicSxmYUxhdWdoOmFaZSxmYUhhbmRzSG9sZGluZzppWmUsZmFDYXJ0U2hvcHBpbmc6dnEsZmFTaG9wcGluZ0NhcnQ6clplLGZhT2N0YWdvbjpzWmUsZmFIYW5kUG9pbnRlcjpuWmUsZmFSZWdpc3RlcmVkOm9aZSxmYUhvdXNlU2lnbmFsOmxaZSxmYUJhbmdsYWRlc2hpVGFrYVNpZ246Y1plfX0pO3ZhciBNeD1wdCh1PT57InVzZSBzdHJpY3QiO3ZhciBwWmU9e3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6MjQsaGVpZ2h0OjI0LHZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoibm9uZSIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLCJzdHJva2Utd2lkdGgiOjIsInN0cm9rZS1saW5lY2FwIjoicm91bmQiLCJzdHJva2UtbGluZWpvaW4iOiJyb3VuZCJ9LGhaZT0oW3QsZSxhXSk9PntsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix0KTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaChyPT57aS5zZXRBdHRyaWJ1dGUocixTdHJpbmcoZVtyXSkpfSksYT8ubGVuZ3RoJiZhLmZvckVhY2gocj0+e2xldCBzPWhaZShyKTtpLmFwcGVuZENoaWxkKHMpfSksaX0sdVplPSh0LGU9e30pPT57bGV0IGk9ey4uLnBaZSwuLi5lfTtyZXR1cm4gaFplKFsic3ZnIixpLHRdKX0sU2p0PXQ9Pntmb3IobGV0IGUgaW4gdClpZihlLnN0YXJ0c1dpdGgoImFyaWEtIil8fGU9PT0icm9sZSJ8fGU9PT0idGl0bGUiKXJldHVybiEwO3JldHVybiExfSxDanQ9KC4uLnQpPT50LmZpbHRlcigoZSxhLGkpPT4hIWUmJmUudHJpbSgpIT09IiImJmkuaW5kZXhPZihlKT09PWEpLmpvaW4oIiAiKS50cmltKCksX2p0PXQ9PnQucmVwbGFjZSgvXihbQS1aXSl8W1xzLV9dKyhcdykvZywoZSxhLGkpPT5pP2kudG9VcHBlckNhc2UoKTphLnRvTG93ZXJDYXNlKCkpLFRqdD10PT57bGV0IGU9X2p0KHQpO3JldHVybiBlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9LExqdD10PT5BcnJheS5mcm9tKHQuYXR0cmlidXRlcykucmVkdWNlKChlLGEpPT4oZVthLm5hbWVdPWEudmFsdWUsZSkse30pLGZaZT10PT50eXBlb2YgdD09InN0cmluZyI/dDohdHx8IXQuY2xhc3M/IiI6dC5jbGFzcyYmdHlwZW9mIHQuY2xhc3M9PSJzdHJpbmciP3QuY2xhc3Muc3BsaXQoIiAiKTp0LmNsYXNzJiZBcnJheS5pc0FycmF5KHQuY2xhc3MpP3QuY2xhc3M6IiIsbVplPSh0LHtuYW1lQXR0cjplLGljb25zOmEsYXR0cnM6aX0pPT57bGV0IHI9dC5nZXRBdHRyaWJ1dGUoZSk7aWYocj09bnVsbClyZXR1cm47bGV0IHM9VGp0KHIpLG49YVtzXTtpZighbilyZXR1cm4gY29uc29sZS53YXJuKGAke3Qub3V0ZXJIVE1MfSBpY29uIG5hbWUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcHJvdmlkZWQgaWNvbnMgb2JqZWN0LmApO2xldCBvPUxqdCh0KSxkPVNqdChvKT97fTp7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9LGM9ey4uLnBaZSwiZGF0YS1sdWNpZGUiOnIsLi4uZCwuLi5pLC4uLm99LHA9ZlplKG8pLGw9ZlplKGkpLGY9Q2p0KCJsdWNpZGUiLGBsdWNpZGUtJHtyfWAsLi4ucCwuLi5sKTtmJiZPYmplY3QuYXNzaWduKGMse2NsYXNzOmZ9KTtsZXQgZz11WmUobixjKTtyZXR1cm4gdC5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQoZyx0KX0sZ1plPVtbInBhdGgiLHtkOiJtMTQgMTIgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZWNyJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV0sYlplPVtbInBhdGgiLHtkOiJtMTQgMTEgNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZWNyJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV0sdlplPVtbInBhdGgiLHtkOiJtMTUgMTYgMi41MzYtNy4zMjhhMS4wMiAxLjAyIDEgMCAxIDEuOTI4IDBMMjIgMTYifV0sWyJwYXRoIix7ZDoiTTE1LjY5NyAxNGg1LjYwNiJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV0seVplPVtbImNpcmNsZSIse2N4OiIxNiIsY3k6IjQiLHI6IjEifV0sWyJwYXRoIix7ZDoibTE4IDE5IDEtNy02IDEifV0sWyJwYXRoIix7ZDoibTUgOCAzLTMgNS41IDMtMi4zNiAzLjUifV0sWyJwYXRoIix7ZDoiTTQuMjQgMTQuNWE1IDUgMCAwIDAgNi44OCA2In1dLFsicGF0aCIse2Q6Ik0xMy43NiAxNy41YTUgNSAwIDAgMC02Ljg4LTYifV1dLHhaZT1bWyJwYXRoIix7ZDoiTTE4IDE3LjVhMi41IDIuNSAwIDEgMS00IDIuMDNWMTIifV0sWyJwYXRoIix7ZDoiTTYgMTJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjVhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNiA4aDEyIn1dLFsicGF0aCIse2Q6Ik02LjYgMTUuNTcyQTIgMiAwIDEgMCAxMCAxN3YtNSJ9XV0sd1plPVtbInBhdGgiLHtkOiJNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMiJ9XV0sTVplPVtbInBhdGgiLHtkOiJNNSAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMmgtMSJ9XSxbInBhdGgiLHtkOiJtMTIgMTUgNSA2SDdaIn1dXSxtZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJtOSAxMyAyIDIgNC00In1dXSxnZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dXSx6WmU9W1sicGF0aCIse2Q6Ik02Ljg3IDYuODdhOCA4IDAgMSAwIDExLjI2IDExLjI2In1dLFsicGF0aCIse2Q6Ik0xOS45IDE0LjI1YTggOCAwIDAgMC05LjE1LTkuMTUifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjI2IDE4LjY3IDQgMjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCA0IDIgNiJ9XV0sYmc9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XV0sa1plPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik0xMiA5djRsMiAyIn1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dXSxTWmU9W1sicGF0aCIse2Q6Ik0xMSAyMWMwLTIuNSAyLTIuNSAyLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIxYzAtMi41IDItMi41IDItNSJ9XSxbInBhdGgiLHtkOiJtMTkgOC0uOCAzYTEuMjUgMS4yNSAwIDAgMS0xLjIgMUg3YTEuMjUgMS4yNSAwIDAgMS0xLjItMUw1IDgifV0sWyJwYXRoIix7ZDoiTTIxIDNhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgMjFjMC0yLjUgMi0yLjUgMi01In1dXSxDWmU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjExIDMgMTEgMTEgMTQgOCAxNyAxMSAxNyAzIn1dXSxfWmU9W1sicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnY0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xMCA4VjRhMiAyIDAgMCAwLTItMkg2YTIgMiAwIDAgMC0yIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjAgMTZ2MWEyIDIgMCAwIDEtMiAyaC0yYTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTE0IDhWN2MwLTEuMS45LTIgMi0yaDJhMiAyIDAgMCAxIDIgMnYxIn1dXSxUWmU9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Ik04IDEwSDRhMiAyIDAgMCAxLTItMlY2YzAtMS4xLjktMiAyLTJoNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoNGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMmgtNCJ9XSxbInBhdGgiLHtkOiJNOCAyMEg3YTIgMiAwIDAgMS0yLTJ2LTJjMC0xLjEuOS0yIDItMmgxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGgxYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAyaC0xIn1dXSxMWmU9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiI5Iix4OiIxNCIseToiOSIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDIySDIifV1dLCRaZT1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjYiLHg6IjkiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjJWMiJ9XV0sQVplPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE3IDdWMiJ9XSxbInBhdGgiLHtkOiJNNyAyMnYtMyJ9XSxbInBhdGgiLHtkOiJNNyA1VjIifV1dLERaZT1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjQiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNCIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIwIDJ2MjAifV1dLEVaZT1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjQiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNCIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyMCJ9XV0sUFplPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE2Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XV0sSVplPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjEyIix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMnYyMCJ9XV0sTlplPVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNiIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE2Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAydjIwIn1dXSxGWmU9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiI5Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAyMlYyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMlYyIn1dXSxPWmU9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiIzIix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTUiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIxIDJ2MjAifV1dLFJaZT1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjkiLHg6IjE0Iix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMkgyIn1dXSxCWmU9W1sicmVjdCIse3dpZHRoOiI5IixoZWlnaHQ6IjYiLHg6IjYiLHk6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiNiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMnYyMCJ9XV0sSFplPVtbInBhdGgiLHtkOiJNMjIgMTdoLTMifV0sWyJwYXRoIix7ZDoiTTIyIDdoLTUifV0sWyJwYXRoIix7ZDoiTTUgMTdIMiJ9XSxbInBhdGgiLHtkOiJNNyA3SDIifV0sWyJyZWN0Iix7eDoiNSIseToiMTQiLHdpZHRoOiIxNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI3Iix5OiI0Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dLHFaZT1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMjBoMjAifV0sWyJwYXRoIix7ZDoiTTIgMTBoMjAifV1dLFZaZT1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTIgNGgyMCJ9XV0salplPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XV0sVVplPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XV0sV1plPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyaDIwIn1dXSxHWmU9W1sicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI5IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjBIMiJ9XSxbInBhdGgiLHtkOiJNMjIgNEgyIn1dXSxZWmU9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDIxaDIwIn1dLFsicGF0aCIse2Q6Ik0yIDNoMjAifV1dLFpaZT1bWyJwYXRoIix7ZDoiTTEwIDEwSDYifV0sWyJwYXRoIix7ZDoiTTE0IDE4VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTFhMSAxIDAgMCAwIDEgMWgyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuMjhhMSAxIDAgMCAwLS42ODQtLjk0OGwtMS45MjMtLjY0MWExIDEgMCAwIDEtLjU3OC0uNTAybC0xLjUzOS0zLjA3NkExIDEgMCAwIDAgMTYuMzgyIDhIMTQifV0sWyJwYXRoIix7ZDoiTTggOHY0In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV1dLFhaZT1bWyJwYXRoIix7ZDoiTTE2IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTJhOCA4IDAgMCAxLTggOEE0LjUgNC41IDAgMCAxIDUgMTUuNWMwLTYgOC00IDgtOC41YTMgMyAwIDEgMC02IDBjMCAzIDIuNSA4LjUgMTIgMTMifV1dLEtaZT1bWyJwYXRoIix7ZDoiTTEwIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxN2MtNS0zLTctNy03LTlhMiAyIDAgMCAxIDQgMGMwIDIuNS01IDIuNS01IDYgMCAxLjcgMS4zIDMgMyAzIDIuOCAwIDUtMi4yIDUtNSJ9XV0sUVplPVtbInBhdGgiLHtkOiJNMTAgMnY1LjYzMmMwIC40MjQtLjI3Mi43OTUtLjY1My45ODJBNiA2IDAgMCAwIDYgMTRjLjAwNiA0IDMgNyA1IDgifV0sWyJwYXRoIix7ZDoiTTEwIDVIOGEyIDIgMCAwIDAgMCA0aC42OCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1LjYzMmMwIC40MjQuMjcyLjc5NS42NTIuOTgyQTYgNiAwIDAgMSAxOCAxNGMwIDQtMyA3LTUgOCJ9XSxbInBhdGgiLHtkOiJNMTQgNWgyYTIgMiAwIDAgMSAwIDRoLS42OCJ9XSxbInBhdGgiLHtkOiJNMTggMjJINiJ9XSxbInBhdGgiLHtkOiJNOSAyaDYifV1dLEpaZT1bWyJwYXRoIix7ZDoiTTEyIDZ2MTYifV0sWyJwYXRoIix7ZDoibTE5IDEzIDItMWE5IDkgMCAwIDEtMTggMGwyIDEifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV1dLGVYZT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE2IDE2cy0xLjUtMi00LTItNCAyLTQgMiJ9XSxbInBhdGgiLHtkOiJNNy41IDggMTAgOSJ9XSxbInBhdGgiLHtkOiJtMTQgOSAyLjUtMSJ9XSxbInBhdGgiLHtkOiJNOSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDEwaC4wMSJ9XV0sdFhlPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg4In1dLFsicGF0aCIse2Q6Ik04IDloMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgyIn1dXSxhWGU9W1sicGF0aCIse2Q6Ik0yIDEyIDcgMiJ9XSxbInBhdGgiLHtkOiJtNyAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Im0xMiAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Im0xNyAxMiA1LTEwIn1dLFsicGF0aCIse2Q6Ik00LjUgN2gxNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XV0saVhlPVtbInBhdGgiLHtkOiJNNyAxMEg2YTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWg0In1dLFsicGF0aCIse2Q6Ik03IDVhMSAxIDAgMCAxIDEtMWgxM2ExIDEgMCAwIDEgMSAxIDcgNyAwIDAgMS03IDdIOGExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOSAxMnY1In1dLFsicGF0aCIse2Q6Ik0xNSAxMnY1In1dLFsicGF0aCIse2Q6Ik01IDIwYTMgMyAwIDAgMSAzLTNoOGEzIDMgMCAwIDEgMyAzIDEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xIn1dXSxyWGU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNC4zMSA4IDUuNzQgOS45NCJ9XSxbInBhdGgiLHtkOiJNOS42OSA4aDExLjQ4In1dLFsicGF0aCIse2Q6Im03LjM4IDEyIDUuNzQtOS45NCJ9XSxbInBhdGgiLHtkOiJNOS42OSAxNiAzLjk1IDYuMDYifV0sWyJwYXRoIix7ZDoiTTE0LjMxIDE2SDIuODMifV0sWyJwYXRoIix7ZDoibTE2LjYyIDEyLTUuNzQgOS45NCJ9XV0sc1hlPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgOGguMDEifV1dLG5YZT1bWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTAgNHY0In1dLFsicGF0aCIse2Q6Ik0yIDhoMjAifV0sWyJwYXRoIix7ZDoiTTYgNHY0In1dXSxvWGU9W1sicGF0aCIse2Q6Ik0xMiA2LjUyOFYzYTEgMSAwIDAgMSAxLTFoMCJ9XSxbInBhdGgiLHtkOiJNMTguMjM3IDIxQTE1IDE1IDAgMCAwIDIyIDExYTYgNiAwIDAgMC0xMC00LjQ3MkE2IDYgMCAwIDAgMiAxMWExNS4xIDE1LjEgMCAwIDAgMy43NjMgMTAgMyAzIDAgMCAwIDMuNjQ4LjY0OCA1LjUgNS41IDAgMCAxIDUuMTc4IDBBMyAzIDAgMCAwIDE4LjIzNyAyMSJ9XV0sbFhlPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNSIseDoiMiIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDh2MTFhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnY5In1dXSxjWGU9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4In1dLFsicGF0aCIse2Q6Im05LjUgMTcgNS01In1dLFsicGF0aCIse2Q6Im05LjUgMTIgNSA1In1dXSxkWGU9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4In1dLFsicGF0aCIse2Q6Ik0xMCAxMmg0In1dXSxwWGU9W1sicGF0aCIse2Q6Ik0xOSA5VjZhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMyAxNmEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTVhMiAyIDAgMCAwLTQgMHYxLjVhLjUuNSAwIDAgMS0uNS41aC05YS41LjUgMCAwIDEtLjUtLjVWMTFhMiAyIDAgMCAwLTQgMHoifV0sWyJwYXRoIix7ZDoiTTUgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTkgMTh2MiJ9XV0saFhlPVtbInBhdGgiLHtkOiJNMTUgMTFhMSAxIDAgMCAwIDEgMWgyLjkzOWExIDEgMCAwIDEgLjc1IDEuODExbC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMS0xLjcwNyAwTDQuMzEgMTMuODFhMSAxIDAgMCAxIC43NS0xLjgxMUg4YTEgMSAwIDAgMCAxLTFWOWExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkgNGg2In1dXSx1WGU9W1sicGF0aCIse2Q6Ik0xNSAxMWExIDEgMCAwIDAgMSAxaDIuOTM5YTEgMSAwIDAgMSAuNzUgMS44MTFsLTYuODM1IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA3IDBMNC4zMSAxMy44MWExIDEgMCAwIDEgLjc1LTEuODExSDhhMSAxIDAgMCAwIDEtMVY1YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxeiJ9XV0sZlhlPVtbInBhdGgiLHtkOiJNMTMgOWExIDEgMCAwIDEtMS0xVjUuMDYxYTEgMSAwIDAgMC0xLjgxMS0uNzVsLTYuODM1IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAwIDAgMS43MDdsNi44MzUgNi44MzVhMSAxIDAgMCAwIDEuODExLS43NVYxNmExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAwIDEtMXYtNGExIDEgMCAwIDAtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMjAgOXY2In1dXSxtWGU9W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNS4wNjFhMSAxIDAgMCAwLTEuODExLS43NWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN2w2LjgzNSA2LjgzNWExIDEgMCAwIDAgMS44MTEtLjc1VjE2YTEgMSAwIDAgMSAxLTFoNmExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTF6In1dXSxnWGU9W1sicGF0aCIse2Q6Ik0xMSA5YTEgMSAwIDAgMCAxLTFWNS4wNjFhMSAxIDAgMCAxIDEuODExLS43NWw2LjgzNiA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA3bC02LjgzNiA2LjgzNWExIDEgMCAwIDEtMS44MTEtLjc1VjE2YTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik00IDl2NiJ9XV0sYlhlPVtbInBhdGgiLHtkOiJNMTEgOWExIDEgMCAwIDAgMS0xVjUuMDYxYTEgMSAwIDAgMSAxLjgxMS0uNzVsNi44MzYgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwN2wtNi44MzYgNi44MzVhMSAxIDAgMCAxLTEuODExLS43NVYxNmExIDEgMCAwIDAtMS0xSDVhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgMS0xeiJ9XV0sdlhlPVtbInBhdGgiLHtkOiJNOSAxM2ExIDEgMCAwIDAtMS0xSDUuMDYxYTEgMSAwIDAgMS0uNzUtMS44MTFsNi44MzYtNi44MzVhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDcgMGw2LjgzNSA2LjgzNWExIDEgMCAwIDEtLjc1IDEuODExSDE2YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik05IDIwaDYifV1dLHlYZT1bWyJwYXRoIix7ZDoiTTkgMTNhMSAxIDAgMCAwLTEtMUg1LjA2MWExIDEgMCAwIDEtLjc1LTEuODExbDYuODM2LTYuODM1YTEuMjA3IDEuMjA3IDAgMCAxIDEuNzA3IDBsNi44MzUgNi44MzVhMSAxIDAgMCAxLS43NSAxLjgxMUgxNmExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAxLTEgMWgtNGExIDEgMCAwIDEtMS0xeiJ9XV0seFhlPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjQiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMHYtNmgtMiJ9XSxbInBhdGgiLHtkOiJNMTUgMjBoNCJ9XV0sd1hlPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoiTTE3IDEwVjRoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDEwaDQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XV0sdmc9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMjAgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGg1bC01IDZoNSJ9XV0sTVhlPVtbInBhdGgiLHtkOiJNMTkgM0g1In1dLFsicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im02IDE1IDYgNiA2LTYifV1dLHpYZT1bWyJwYXRoIix7ZDoiTTE3IDcgNyAxNyJ9XSxbInBhdGgiLHtkOiJNMTcgMTdIN1Y3In1dXSxrWGU9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTEgNGg0In1dLFsicGF0aCIse2Q6Ik0xMSA4aDcifV0sWyJwYXRoIix7ZDoiTTExIDEyaDEwIn1dXSxTWGU9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAifV0sWyJwYXRoIix7ZDoiTTE3IDd2MTBINyJ9XV0sQ1hlPVtbInBhdGgiLHtkOiJNMTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJtMTkgOS03IDctNy03In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjEiLHI6IjEifV1dLF9YZT1bWyJwYXRoIix7ZDoiTTEyIDE3VjMifV0sWyJwYXRoIix7ZDoibTYgMTEgNiA2IDYtNiJ9XSxbInBhdGgiLHtkOiJNMTkgMjFINSJ9XV0sVFhlPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDIwVjQifV0sWyJwYXRoIix7ZDoibTIxIDgtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTcgNHYxNiJ9XV0seWc9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTEgNGgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgOGg3In1dLFsicGF0aCIse2Q6Ik0xMSAxMmg0In1dXSx4Zz1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNSA0aDVsLTUgNmg1In1dLFsicGF0aCIse2Q6Ik0xNSAyMHYtMy41YTIuNSAyLjUgMCAwIDEgNSAwVjIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgtNSJ9XV0sTFhlPVtbInBhdGgiLHtkOiJNMTIgNXYxNCJ9XSxbInBhdGgiLHtkOiJtMTkgMTItNyA3LTctNyJ9XV0sJFhlPVtbInBhdGgiLHtkOiJtOSA2LTYgNiA2IDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTQifV0sWyJwYXRoIix7ZDoiTTIxIDE5VjUifV1dLEFYZT1bWyJwYXRoIix7ZDoiTTggMyA0IDdsNCA0In1dLFsicGF0aCIse2Q6Ik00IDdoMTYifV0sWyJwYXRoIix7ZDoibTE2IDIxIDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTIwIDE3SDQifV1dLERYZT1bWyJwYXRoIix7ZDoiTTMgMTlWNSJ9XSxbInBhdGgiLHtkOiJtMTMgNi02IDYgNiA2In1dLFsicGF0aCIse2Q6Ik03IDEyaDE0In1dXSxFWGU9W1sicGF0aCIse2Q6Im0xMiAxOS03LTcgNy03In1dLFsicGF0aCIse2Q6Ik0xOSAxMkg1In1dXSxQWGU9W1sicGF0aCIse2Q6Ik0zIDV2MTQifV0sWyJwYXRoIix7ZDoiTTIxIDEySDcifV0sWyJwYXRoIix7ZDoibTE1IDE4IDYtNi02LTYifV1dLElYZT1bWyJwYXRoIix7ZDoibTE2IDMgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g0In1dLFsicGF0aCIse2Q6Im04IDIxLTQtNCA0LTQifV0sWyJwYXRoIix7ZDoiTTQgMTdoMTYifV1dLE5YZT1bWyJwYXRoIix7ZDoiTTE3IDEySDMifV0sWyJwYXRoIix7ZDoibTExIDE4IDYtNi02LTYifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dLEZYZT1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV0sWyJwYXRoIix7ZDoibTEyIDUgNyA3LTcgNyJ9XV0sT1hlPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInJlY3QiLHt4OiIxNSIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDIwdi02aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAyMGg0In1dXSxSWGU9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyAxMFY0aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGg0In1dLFsicmVjdCIse3g6IjE1Iix5OiIxNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV1dLHdnPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMjAgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBWNi41YTIuNSAyLjUgMCAwIDEgNSAwVjEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGg1bC01IDZoNSJ9XV0sQlhlPVtbInBhdGgiLHtkOiJtMjEgMTYtNCA0LTQtNCJ9XSxbInBhdGgiLHtkOiJNMTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XV0sSFhlPVtbInBhdGgiLHtkOiJtNSA5IDctNyA3IDcifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMSIscjoiMSJ9XV0scVhlPVtbInBhdGgiLHtkOiJtMTggOS02LTYtNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAzdjE0In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXSxWWGU9W1sicGF0aCIse2Q6Ik03IDE3VjdoMTAifV0sWyJwYXRoIix7ZDoiTTE3IDE3IDcgNyJ9XV0sTWc9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xMSAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMSAxNmg3In1dLFsicGF0aCIse2Q6Ik0xMSAyMGgxMCJ9XV0salhlPVtbInBhdGgiLHtkOiJNNyA3aDEwdjEwIn1dLFsicGF0aCIse2Q6Ik03IDE3IDE3IDcifV1dLFVYZT1bWyJwYXRoIix7ZDoiTTUgM2gxNCJ9XSxbInBhdGgiLHtkOiJtMTggMTMtNi02LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxNCJ9XV0sV1hlPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTExIDE2aDcifV0sWyJwYXRoIix7ZDoiTTExIDIwaDQifV1dLHpnPVtbInBhdGgiLHtkOiJtMyA4IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTcgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTUgNGg1bC01IDZoNSJ9XSxbInBhdGgiLHtkOiJNMTUgMjB2LTMuNWEyLjUgMi41IDAgMCAxIDUgMFYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMThoLTUifV1dLEdYZT1bWyJwYXRoIix7ZDoibTUgMTIgNy03IDcgNyJ9XSxbInBhdGgiLHtkOiJNMTIgMTlWNSJ9XV0sWVhlPVtbInBhdGgiLHtkOiJtNCA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTcgMTdWMyJ9XSxbInBhdGgiLHtkOiJtMTQgNiAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxN1YzIn1dLFsicGF0aCIse2Q6Ik00IDIxaDE2In1dXSxaWGU9W1sicGF0aCIse2Q6Ik0xMiA2djEyIn1dLFsicGF0aCIse2Q6Ik0xNy4xOTYgOSA2LjgwNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi44MDQgOSAxMC4zOTIgNiJ9XV0sWFhlPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNiA4djVhMyAzIDAgMCAwIDYgMHYtMWExMCAxMCAwIDEgMC00IDgifV1dLEtYZT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMjAuMiAyMC4yYzIuMDQtMi4wMy4wMi03LjM2LTQuNS0xMS45LTQuNTQtNC41Mi05Ljg3LTYuNTQtMTEuOS00LjUtMi4wNCAyLjAzLS4wMiA3LjM2IDQuNSAxMS45IDQuNTQgNC41MiA5Ljg3IDYuNTQgMTEuOSA0LjVaIn1dLFsicGF0aCIse2Q6Ik0xNS43IDE1LjdjNC41Mi00LjU0IDYuNTQtOS44NyA0LjUtMTEuOS0yLjAzLTIuMDQtNy4zNi0uMDItMTEuOSA0LjUtNC41MiA0LjU0LTYuNTQgOS44Ny00LjUgMTEuOSAyLjAzIDIuMDQgNy4zNi4wMiAxMS45LTQuNVoifV1dLFFYZT1bWyJwYXRoIix7ZDoiTTIgMTB2MyJ9XSxbInBhdGgiLHtkOiJNNiA2djExIn1dLFsicGF0aCIse2Q6Ik0xMCAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNCA4djcifV0sWyJwYXRoIix7ZDoiTTE4IDV2MTMifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjMifV1dLEpYZT1bWyJwYXRoIix7ZDoiTTIgMTNhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMFY0YTIgMiAwIDAgMSA0IDB2MTNhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgMi0yIn1dXSxlS2U9W1sicGF0aCIse2Q6Im0xNS40NzcgMTIuODkgMS41MTUgOC41MjZhLjUuNSAwIDAgMS0uODEuNDdsLTMuNTgtMi42ODdhMSAxIDAgMCAwLTEuMTk3IDBsLTMuNTg2IDIuNjg2YS41LjUgMCAwIDEtLjgxLS40NjlsMS41MTQtOC41MjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiI2In1dXSx0S2U9W1sicGF0aCIse2Q6Im0xNCAxMi04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDkifV0sWyJwYXRoIix7ZDoiTTE1IDE1LjVhLjUuNSAwIDAgMCAuNS41QTYuNSA2LjUgMCAwIDAgMjIgOS41YS41LjUgMCAwIDAtLjUtLjVoLTEuNjcyYTIgMiAwIDAgMS0xLjQxNC0uNTg2bC01LjA2Mi01LjA2MmExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwTDkuMzUyIDUuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsNS4wNjIgNS4wNjJBMiAyIDAgMCAxIDE1IDEzLjgyOHoifV1dLGtnPVtbInBhdGgiLHtkOiJNMTMuNSAxMC41IDE1IDkifV0sWyJwYXRoIix7ZDoiTTQgNHYxNWExIDEgMCAwIDAgMSAxaDE1In1dLFsicGF0aCIse2Q6Ik00LjI5MyAxOS43MDcgNiAxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNSAxLjUtMS41In1dXSxhS2U9W1sicGF0aCIse2Q6Ik00IDEwYTQgNCAwIDAgMSA0LTRoOGE0IDQgMCAwIDEgNCA0djEwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiJ9XSxbInBhdGgiLHtkOiJNOCAxMGg4In1dLFsicGF0aCIse2Q6Ik04IDE4aDgifV0sWyJwYXRoIix7ZDoiTTggMjJ2LTZhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2NiJ9XSxbInBhdGgiLHtkOiJNOSA2VjRhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MiJ9XV0saUtlPVtbInBhdGgiLHtkOiJNMTAgMTZjLjUuMyAxLjIuNSAyIC41czEuNS0uMiAyLS41In1dLFsicGF0aCIse2Q6Ik0xNSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5LjM4IDYuODEzQTkgOSAwIDAgMSAyMC44IDEwLjJhMiAyIDAgMCAxIDAgMy42IDkgOSAwIDAgMS0xNy42IDAgMiAyIDAgMCAxIDAtMy42QTkgOSAwIDAgMSAxMiAzYzIgMCAzLjUgMS4xIDMuNSAyLjVzLS45IDIuNS0yIDIuNWMtLjggMC0xLjUtLjQtMS41LTEifV0sWyJwYXRoIix7ZDoiTTkgMTJoLjAxIn1dXSxyS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dLHNLZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNS40IDEwYTQgNCAwIDEgMCAwIDQifV1dLFNnPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV0sbktlPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTggOGg4In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTEzIDE3LTUtMWgxYTQgNCAwIDAgMCAwLTgifV1dLG9LZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV1dLGxLZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik03IDEyaDUifV0sWyJwYXRoIix7ZDoiTTE1IDkuNGE0IDQgMCAxIDAgMCA1LjIifV1dLGNLZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTYiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjgiLHkyOiI4In1dXSxkS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJtOSA4IDMgM3Y3In1dLFsicGF0aCIse2Q6Im0xMiAxMSAzLTMifV0sWyJwYXRoIix7ZDoiTTkgMTJoNiJ9XSxbInBhdGgiLHtkOiJNOSAxNmg2In1dXSxwS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMTIiLHkyOiIxMiJ9XV0saEtlPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dLHVLZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjE2In1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dXSxmS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCAxNlY5LjVhMi41IDIuNSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XV0sQ2c9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxNyIseTI6IjE3In1dXSxtS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOSAxNmg1In1dLFsicGF0aCIse2Q6Ik05IDEyaDVhMiAyIDAgMSAwIDAtNGgtM3Y5In1dXSxnS2U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNMTEgMTdWOGg0In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgzIn1dLFsicGF0aCIse2Q6Ik05IDE2aDQifV1dLGJLZT1bWyJwYXRoIix7ZDoiTTExIDd2MTBhNSA1IDAgMCAwIDUtNSJ9XSxbInBhdGgiLHtkOiJtMTUgOC02IDMifV0sWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzYifV1dLHZLZT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV0seUtlPVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV1dLHhLZT1bWyJwYXRoIix7ZDoiTTIyIDE4SDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMC0yLTIifV0sWyJwYXRoIix7ZDoiTTE3IDE0VjRhMiAyIDAgMCAwLTItMmgtMWEyIDIgMCAwIDAtMiAydjEwIn1dLFsicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI4Iix4OiI4Iix5OiI2IixyeDoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjIwIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIyMCIscjoiMiJ9XV0sd0tlPVtbInBhdGgiLHtkOiJNMTIgMTZ2MWEyIDIgMCAwIDAgMiAyaDFhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDhjMCA0LTMuNSA4LTYgOHMtNi00LTYtOGE2IDYgMCAwIDEgMTIgMCJ9XV0sTUtlPVtbInBhdGgiLHtkOiJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSx6S2U9W1sicGF0aCIse2Q6Ik00IDEzYzMuNS0yIDgtMiAxMCAyYTUuNSA1LjUgMCAwIDEgOCA1In1dLFsicGF0aCIse2Q6Ik01LjE1IDE3Ljg5YzUuNTItMS41MiA4LjY1LTYuODkgNy0xMkMxMS41NSA0IDExLjUgMiAxMyAyYzMuMjIgMCA1IDUuNSA1IDggMCA2LjUtNC4yIDEyLTEwLjQ5IDEyQzUuMTEgMjIgMiAyMiAyIDIwYzAtMS41IDEuMTQtMS41NSAzLjE1LTIuMTFaIn1dXSxrS2U9W1sicGF0aCIse2Q6Ik0xMCAxMC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE0LjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTAuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZ2MTIifV0sWyJwYXRoIix7ZDoiTTYgNnYxMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSxTS2U9W1sicGF0aCIse2Q6Ik0xMiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXSxDS2U9W1sicGF0aCIse2Q6Ik0xMiAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOSAyMnYtNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTktMy0zLTMgMyJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV0sX0tlPVtbInBhdGgiLHtkOiJNMTMgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Im0yMiAxNy01IDUifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLFRLZT1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMU0xOCAxMmguMDEifV1dLExLZT1bWyJwYXRoIix7ZDoiTTMgNXYxNCJ9XSxbInBhdGgiLHtkOiJNOCA1djE0In1dLFsicGF0aCIse2Q6Ik0xMiA1djE0In1dLFsicGF0aCIse2Q6Ik0xNyA1djE0In1dLFsicGF0aCIse2Q6Ik0yMSA1djE0In1dXSwkS2U9W1sicGF0aCIse2Q6Ik0xMCAzYTQxIDQxIDAgMCAwIDAgMTgifV0sWyJwYXRoIix7ZDoiTTE0IDNhNDEgNDEgMCAwIDEgMCAxOCJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42OC45MiAxNS4yNSAxNS4yNSAwIDAgMSAwIDE2LjE2QTIgMiAwIDAgMSAxNyAyMUg3YTIgMiAwIDAgMS0xLjY4LS45MiAxNS4yNSAxNS4yNSAwIDAgMSAwLTE2LjE2QTIgMiAwIDAgMSA3IDN6In1dLFsicGF0aCIse2Q6Ik0zLjg0IDE3aDE2LjMyIn1dLFsicGF0aCIse2Q6Ik0zLjg0IDdoMTYuMzIifV1dLEFLZT1bWyJwYXRoIix7ZDoiTTQgMjBoMTYifV0sWyJwYXRoIix7ZDoibTYgMTYgNi0xMiA2IDEyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dLERLZT1bWyJwYXRoIix7ZDoiTTEwIDQgOCA2In1dLFsicGF0aCIse2Q6Ik0xNyAxOXYyIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Ik03IDE5djIifV0sWyJwYXRoIix7ZDoiTTkgNSA3LjYyMSAzLjYyMUEyLjEyMSAyLjEyMSAwIDAgMCA0IDV2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01In1dXSxFS2U9W1sicGF0aCIse2Q6Im0xMSA3LTMgNWg0bC0zIDUifV0sWyJwYXRoIix7ZDoiTTE0Ljg1NiA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjkzNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTUuMTQgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyLjkzNiJ9XV0sUEtlPVtbInBhdGgiLHtkOiJNMTAgMTB2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTB2NCJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTB2NCJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSxJS2U9W1sicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNiAxNHYtNCJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSxOS2U9W1sicGF0aCIse2Q6Ik0xMCAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMTR2LTQifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV0sRktlPVtbInBhdGgiLHtkOiJNMTAgOXY2In1dLFsicGF0aCIse2Q6Ik0xMi41NDMgNkgxNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMy42MDUifV0sWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik03IDEyaDYifV0sWyJwYXRoIix7ZDoiTTcuNjA2IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMy42MDYifV1dLE9LZT1bWyJwYXRoIix7ZDoiTTEwIDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgN3Y2In1dLFsicGF0aCIse2Q6Ik0xNCA2aDJhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMiJ9XV0sUktlPVtbInBhdGgiLHtkOiJNIDIyIDE0IEwgMjIgMTAifV0sWyJyZWN0Iix7eDoiMiIseToiNiIsd2lkdGg6IjE2IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV0sQktlPVtbInBhdGgiLHtkOiJNNC41IDNoMTUifV0sWyJwYXRoIix7ZDoiTTYgM3YxNmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlYzIn1dLFsicGF0aCIse2Q6Ik02IDE0aDEyIn1dXSxIS2U9W1sicGF0aCIse2Q6Ik05IDljLS42NC42NC0xLjUyMS45NTQtMi40MDIgMS4xNjVBNiA2IDAgMCAwIDggMjJhMTMuOTYgMTMuOTYgMCAwIDAgOS45LTQuMSJ9XSxbInBhdGgiLHtkOiJNMTAuNzUgNS4wOTNBNiA2IDAgMCAxIDIyIDhjMCAyLjQxMS0uNjEgNC42OC0xLjY4MyA2LjY2In1dLFsicGF0aCIse2Q6Ik01LjM0MSAxMC42MmE0IDQgMCAwIDAgNi40ODcgMS4yMDhNMTAuNjIgNS4zNDFhNC4wMTUgNC4wMTUgMCAwIDEgMi4wMzkgMi4wNCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxxS2U9W1sicGF0aCIse2Q6Ik0xMC4xNjUgNi41OThDOS45NTQgNy40NzggOS42NCA4LjM2IDkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmM3LjczMiAwIDE0LTYuMjY4IDE0LTE0YTYgNiAwIDAgMC0xMS44MzUtMS40MDJaIn1dLFsicGF0aCIse2Q6Ik01LjM0MSAxMC42MmE0IDQgMCAxIDAgNS4yNzktNS4yOCJ9XV0sVktlPVtbInBhdGgiLHtkOiJNMiAyMHYtOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNCAxMFY2YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0xMiA0djYifV0sWyJwYXRoIix7ZDoiTTIgMThoMjAifV1dLGpLZT1bWyJwYXRoIix7ZDoiTTMgMjB2LThhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjgifV0sWyJwYXRoIix7ZDoiTTUgMTBWNmEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxOGgxOCJ9XV0sVUtlPVtbInBhdGgiLHtkOiJNMiA0djE2In1dLFsicGF0aCIse2Q6Ik0yIDhoMThhMiAyIDAgMCAxIDIgMnYxMCJ9XSxbInBhdGgiLHtkOiJNMiAxN2gyMCJ9XSxbInBhdGgiLHtkOiJNNiA4djkifV1dLFdLZT1bWyJwYXRoIix7ZDoiTTE2LjQgMTMuN0E2LjUgNi41IDAgMSAwIDYuMjggNi42Yy0xLjEgMy4xMy0uNzggMy45LTMuMTggNi4wOEEzIDMgMCAwIDAgNSAxOGM0IDAgOC40LTEuOCAxMS40LTQuMyJ9XSxbInBhdGgiLHtkOiJtMTguNSA2IDIuMTkgNC41YTYuNDggNi40OCAwIDAgMS0yLjI5IDcuMkMxNS40IDIwLjIgMTEgMjIgNyAyMmEzIDMgMCAwIDEtMi42OC0xLjY2TDIuNCAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjEyLjUiLGN5OiI4LjUiLHI6IjIuNSJ9XV0sR0tlPVtbInBhdGgiLHtkOiJNMTMgMTN2NSJ9XSxbInBhdGgiLHtkOiJNMTcgMTEuNDdWOCJ9XSxbInBhdGgiLHtkOiJNMTcgMTFoMWEzIDMgMCAwIDEgMi43NDUgNC4yMTEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNSA4djEyYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik03LjUzNiA3LjUzNUM2Ljc2NiA3LjY0OSA2LjE1NCA4IDUuNSA4YTIuNSAyLjUgMCAwIDEtMS43NjgtNC4yNjgifV0sWyJwYXRoIix7ZDoiTTguNzI3IDMuMjA0QzkuMzA2IDIuNzY3IDkuODg1IDIgMTEgMmMxLjU2IDAgMiAxLjUgMyAxLjVzMS43Mi0uNSAyLjUtLjVhMSAxIDAgMSAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNWEzLjE0OSAzLjE0OSAwIDAgMC0uODQyLjEyIn1dLFsicGF0aCIse2Q6Ik05IDE0LjZWMTgifV1dLFlLZT1bWyJwYXRoIix7ZDoiTTE3IDExaDFhMyAzIDAgMCAxIDAgNmgtMSJ9XSxbInBhdGgiLHtkOiJNOSAxMnY2In1dLFsicGF0aCIse2Q6Ik0xMyAxMnY2In1dLFsicGF0aCIse2Q6Ik0xNCA3LjVjLTEgMC0xLjQ0LjUtMyAuNXMtMi0uNS0zLS41LTEuNzIuNS0yLjUuNWEyLjUgMi41IDAgMCAxIDAtNWMuNzggMCAxLjU3LjUgMi41LjVTOS40NCAyIDExIDJzMiAxLjUgMyAxLjUgMS43Mi0uNSAyLjUtLjVhMi41IDIuNSAwIDAgMSAwIDVjLS43OCAwLTEuNS0uNS0yLjUtLjVaIn1dLFsicGF0aCIse2Q6Ik01IDh2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCJ9XV0sWktlPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xMS42OCAyLjAwOUE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M2MtLjgyNC0uODUtMS42NzgtMS43MzEtMi4yMS0zLjM0OCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjUiLHI6IjMifV1dLFhLZT1bWyJwYXRoIix7ZDoiTTE4LjUxOCAxNy4zNDdBNyA3IDAgMCAxIDE0IDE5In1dLFsicGF0aCIse2Q6Ik0xOC44IDRBMTEgMTEgMCAwIDEgMjAgOSJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE2IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiI3In1dLFsicmVjdCIse3g6IjQiLHk6IjE2Iix3aWR0aDoiMTAiLGhlaWdodDoiNiIscng6IjIifV1dLEtLZT1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMTUgOGg2In1dLFsicGF0aCIse2Q6Ik0xNi4yNDMgMy43NTdBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNBOS40IDkuNCAwIDAgMSAxOC42NjcgMTIifV1dLFFLZT1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTdINGExIDEgMCAwIDEtLjc0LTEuNjczQzQuNTkgMTMuOTU2IDYgMTIuNDk5IDYgOGE2IDYgMCAwIDEgLjI1OC0xLjc0MiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY2OCAzLjAxQTYgNiAwIDAgMSAxOCA4YzAgMi42ODcuNzcgNC42NTMgMS43MDcgNi4wNSJ9XV0sSktlPVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4aDYifV0sWyJwYXRoIix7ZDoiTTE4IDV2NiJ9XSxbInBhdGgiLHtkOiJNMjAuMDAyIDE0LjQ2NGE5IDkgMCAwIDAgLjczOC44NjNBMSAxIDAgMCAxIDIwIDE3SDRhMSAxIDAgMCAxLS43NC0xLjY3M0M0LjU5IDEzLjk1NiA2IDEyLjQ5OSA2IDhhNiA2IDAgMCAxIDguNzUtNS4zMzIifV1dLGVRZT1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMjIgOGMwLTIuMy0uOC00LjMtMi02In1dLFsicGF0aCIse2Q6Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2In1dLFsicGF0aCIse2Q6Ik00IDJDMi44IDMuNyAyIDUuNyAyIDgifV1dLHRRZT1bWyJwYXRoIix7ZDoiTTEwLjI2OCAyMWEyIDIgMCAwIDAgMy40NjQgMCJ9XSxbInBhdGgiLHtkOiJNMy4yNjIgMTUuMzI2QTEgMSAwIDAgMCA0IDE3aDE2YTEgMSAwIDAgMCAuNzQtMS42NzNDMTkuNDEgMTMuOTU2IDE4IDEyLjQ5OSAxOCA4QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNiJ9XV0sX2c9W1sicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJtMjIgMTUtMy0zIDMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dXSxUZz1bWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjgiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0yIDkgMyAzLTMgMyJ9XSxbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiOCIseToiMTQiLHJ4OiIxIn1dXSxhUWU9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEzIix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJtOSAyMiAzLTMgMyAzIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEzIix4OiIxNCIseToiMyIscng6IjEifV1dLGlRZT1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0xNSAyLTMgMy0zLTMifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjE0Iix5OiI4IixyeDoiMSJ9XV0sclFlPVtbInBhdGgiLHtkOiJNMTIuNDA5IDEzLjAxN0E1IDUgMCAwIDEgMjIgMTVjMCAzLjg2Ni00IDctOSA3LTQuMDc3IDAtOC4xNTMtLjgyLTEwLjM3MS0yLjQ2Mi0uNDI2LS4zMTYtLjYzMS0uODMyLS42Mi0xLjM2MkMyLjExOCAxMi43MjMgMi42MjcgMiAxMCAyYTMgMyAwIDAgMSAzIDMgMiAyIDAgMCAxLTIgMmMtMS4xMDUgMC0xLjY0LS40NDQtMi0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGE1IDUgMCAwIDAtNy41ODQgMiJ9XSxbInBhdGgiLHtkOiJNOS45NjQgNi44MjVDOC4wMTkgNy45NzcgOS41IDEzIDggMTUifV1dLHNRZT1bWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI1LjUiLGN5OiIxNy41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiI1IixyOiIxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNy41VjE0bC0zLTMgNC0zIDIgM2gyIn1dXSxuUWU9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscng6IjIifV0sWyJyZWN0Iix7eDoiNiIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMjBoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTBoNCJ9XSxbInBhdGgiLHtkOiJNNiAxNGgydjYifV0sWyJwYXRoIix7ZDoiTTE0IDRoMnY2In1dXSxvUWU9W1sicGF0aCIse2Q6Ik0xMCAxMGg0In1dLFsicGF0aCIse2Q6Ik0xOSA3VjRhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMifV0sWyJwYXRoIix7ZDoiTTIwIDIxYTIgMiAwIDAgMCAyLTJ2LTMuODUxYzAtMS4zOS0yLTIuOTYyLTItNC44MjlWOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2MTFhMiAyIDAgMCAwIDIgMnoifV0sWyJwYXRoIix7ZDoiTSAyMiAxNiBMIDIgMTYifV0sWyJwYXRoIix7ZDoiTTQgMjFhMiAyIDAgMCAxLTItMnYtMy44NTFjMC0xLjM5IDItMi45NjIgMi00LjgyOVY4YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjExYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik05IDdWNGExIDEgMCAwIDAtMS0xSDZhMSAxIDAgMCAwLTEgMXYzIn1dXSxsUWU9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTEuOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNi43IDMuNGMtLjkgMi41IDAgNS4yIDIuMiA2LjdDNi41IDkgMy43IDkuNiAyIDExLjYifV0sWyJwYXRoIix7ZDoibTguOSAxMC4xIDEuNC44In1dLFsicGF0aCIse2Q6Ik0xNy4zIDMuNGMuOSAyLjUgMCA1LjItMi4yIDYuNyAyLjQtMS4yIDUuMi0uNiA2LjkgMS41In1dLFsicGF0aCIse2Q6Im0xNS4xIDEwLjEtMS40LjgifV0sWyJwYXRoIix7ZDoiTTE2LjcgMjAuOGMtMi42LS40LTQuNi0yLjYtNC43LTUuMy0uMiAyLjYtMi4xIDQuOC00LjcgNS4yIn1dLFsicGF0aCIse2Q6Ik0xMiAxMy45djEuNiJ9XSxbInBhdGgiLHtkOiJNMTMuNSA1LjRjLTEtLjItMi0uMi0zIDAifV0sWyJwYXRoIix7ZDoiTTE3IDE2LjRjLjctLjcgMS4yLTEuNiAxLjUtMi41In1dLFsicGF0aCIse2Q6Ik01LjUgMTMuOWMuMy45LjggMS44IDEuNSAyLjUifV1dLGNRZT1bWyJwYXRoIix7ZDoiTTE2IDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zLjQgMThIMTJhOCA4IDAgMCAwIDgtOFY3YTQgNCAwIDAgMC03LjI4LTIuM0wyIDIwIn1dLFsicGF0aCIse2Q6Im0yMCA3IDIgLjUtMiAuNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTh2MyJ9XSxbInBhdGgiLHtkOiJNMTQgMTcuNzVWMjEifV0sWyJwYXRoIix7ZDoiTTcgMThhNiA2IDAgMCAwIDMuODQtMTAuNjEifV1dLGRRZT1bWyJwYXRoIix7ZDoiTTEyIDE4djQifV0sWyJwYXRoIix7ZDoibTE3IDE4IDEuOTU2LTExLjQ2OCJ9XSxbInBhdGgiLHtkOiJtMyA4IDcuODItNS42MTVhMiAyIDAgMCAxIDIuMzYgMEwyMSA4In1dLFsicGF0aCIse2Q6Ik00IDE4aDE2In1dLFsicGF0aCIse2Q6Ik03IDE4IDUuMDQ0IDYuNTMyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjIifV1dLHBRZT1bWyJwYXRoIix7ZDoiTTExLjc2NyAxOS4wODljNC45MjQuODY4IDYuMTQtNi4wMjUgMS4yMTYtNi44OTRtLTEuMjE2IDYuODk0TDUuODYgMTguMDQ3bTUuOTA4IDEuMDQyLS4zNDcgMS45N20xLjU2My04Ljg2NGM0LjkyNC44NjkgNi4xNC02LjAyNSAxLjIxNS02Ljg5M20tMS4yMTUgNi44OTMtMy45NC0uNjk0bTUuMTU1LTYuMkw4LjI5IDQuMjZtNS45MDggMS4wNDIuMzQ4LTEuOTdNNy40OCAyMC4zNjRsMy4xMjYtMTcuNzI3In1dXSxoUWU9W1siY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiI3In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTUiLHI6IjcifV1dLHVRZT1bWyJwYXRoIix7ZDoiTTMgM2gxOCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g4In1dLFsicGF0aCIse2Q6Ik0yMCAxMUg4In1dLFsicGF0aCIse2Q6Ik0xMCAxOWgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAzdjE0In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxOSIscjoiMiJ9XV0sZlFlPVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dLFsibGluZSIse3gxOiIxOCIseDI6IjIxIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjYiLHkxOiIxMiIseTI6IjEyIn1dXSxtUWU9W1sicGF0aCIse2Q6Ik0xMCAyMlY3YTEgMSAwIDAgMC0xLTFINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtNWExIDEgMCAwIDAtMS0xSDIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXSxnUWU9W1sicGF0aCIse2Q6Im0xNyAxNy01IDVWMTJsLTUgNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xNC41IDkuNSAxNyA3bC01LTV2NC41In1dXSxiUWU9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcifV0sWyJwYXRoIix7ZDoiTTIwLjgzIDE0LjgzYTQgNCAwIDAgMCAwLTUuNjYifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XV0sdlFlPVtbInBhdGgiLHtkOiJNNiAxMmg5YTQgNCAwIDAgMSAwIDhIN2ExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMWg3YTQgNCAwIDAgMSAwIDgifV1dLHlRZT1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMC01IDVWMmw1IDVMNyAxNyJ9XV0seFFlPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjEzIixyOiI5In1dLFsicGF0aCIse2Q6Ik0xNC4zNSA0LjY1IDE2LjMgMi43YTIuNDEgMi40MSAwIDAgMSAzLjQgMGwxLjYgMS42YTIuNCAyLjQgMCAwIDEgMCAzLjRsLTEuOTUgMS45NSJ9XSxbInBhdGgiLHtkOiJtMjIgMi0xLjUgMS41In1dXSx3UWU9W1sicGF0aCIse2Q6Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV0sTVFlPVtbInBhdGgiLHtkOiJNMTcgMTBjLjctLjcgMS42OSAwIDIuNSAwYTIuNSAyLjUgMCAxIDAgMC01IC41LjUgMCAwIDEtLjUtLjUgMi41IDIuNSAwIDEgMC01IDBjMCAuODEuNyAxLjggMCAyLjVsLTcgN2MtLjcuNy0xLjY5IDAtMi41IDBhMi41IDIuNSAwIDAgMCAwIDVjLjI4IDAgLjUuMjIuNS41YTIuNSAyLjUgMCAxIDAgNSAwYzAtLjgxLS43LTEuOCAwLTIuNVoifV1dLHpRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTggMTMgNC03IDQgNyJ9XSxbInBhdGgiLHtkOiJNOS4xIDExaDUuNyJ9XV0sa1FlPVtbInBhdGgiLHtkOiJNMTIgMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA2djMifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dLFNRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgOS41IDIgMiA0LTQifV1dLENRZT1bWyJwYXRoIix7ZDoiTTEyIDZ2NyJ9XSxbInBhdGgiLHtkOiJNMTYgOHYzIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDh2MyJ9XV0sX1FlPVtbInBhdGgiLHtkOiJNNSA3YTIgMiAwIDAgMC0yIDJ2MTEifV0sWyJwYXRoIix7ZDoiTTUuODAzIDE4SDVhMiAyIDAgMCAwIDAgNGg5LjVhLjUuNSAwIDAgMCAuNS0uNVYyMSJ9XSxbInBhdGgiLHtkOiJNOSAxNVY0YTIgMiAwIDAgMSAyLTJoOS41YS41LjUgMCAwIDEgLjUuNXYxNGEuNS41IDAgMCAxLS41LjVIMTFhMiAyIDAgMCAxIDAtNGgxMCJ9XV0sTGc9W1sicGF0aCIse2Q6Ik0xMiAxN2gxLjUifV0sWyJwYXRoIix7ZDoiTTEyIDIyaDEuNSJ9XSxbInBhdGgiLHtkOiJNMTIgMmgxLjUifV0sWyJwYXRoIix7ZDoiTTE3LjUgMjJIMTlhMSAxIDAgMCAwIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTcuNSAySDE5YTEgMSAwIDAgMSAxIDF2MS41In1dLFsicGF0aCIse2Q6Ik0yMCAxNHYzaC0yLjUifV0sWyJwYXRoIix7ZDoiTTIwIDguNVYxMCJ9XSxbInBhdGgiLHtkOiJNNCAxMFY4LjUifV0sWyJwYXRoIix7ZDoiTTQgMTkuNVYxNCJ9XSxbInBhdGgiLHtkOiJNNCA0LjVBMi41IDIuNSAwIDAgMSA2LjUgMkg4In1dLFsicGF0aCIse2Q6Ik04IDIySDYuNWExIDEgMCAwIDEgMC01SDgifV1dLFRRZT1bWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgMTAgMyAzIDMtMyJ9XV0sTFFlPVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMmE0IDQgMCAwIDEgOCAwdjIifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV1dLCRRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTguNjIgOS44QTIuMjUgMi4yNSAwIDEgMSAxMiA2LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoifV1dLEFRZT1bWyJwYXRoIix7ZDoibTIwIDEzLjctMi4xLTIuMWEyIDIgMCAwIDAtMi44IDBMOS43IDE3In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiMiJ9XV0sRFFlPVtbInBhdGgiLHtkOiJNMTMgMkg2LjVBMi41IDIuNSAwIDAgMCA0IDQuNXYxNSJ9XSxbInBhdGgiLHtkOiJNMTcgMnY2In1dLFsicGF0aCIse2Q6Ik0xNyA0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE1LjJWMjFhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjEwIixyOiIyIn1dXSxFUWU9W1sicGF0aCIse2Q6Ik0xOCA2VjRhMiAyIDAgMSAwLTQgMHYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNXY2YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxMCJ9XSxbInJlY3QiLHt4OiIxMiIseToiNiIsd2lkdGg6IjgiLGhlaWdodDoiNSIscng6IjEifV1dLFBRZT1bWyJwYXRoIix7ZDoiTTEwIDJ2OGwzLTMgMyAzVjIifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dLElRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV0sTlFlPVtbInBhdGgiLHtkOiJNMTIgMjFWNyJ9XSxbInBhdGgiLHtkOiJtMTYgMTIgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMjIgNlY0YTEgMSAwIDAgMC0xLTFoLTVhNCA0IDAgMCAwLTQgNCA0IDQgMCAwIDAtNC00SDNhMSAxIDAgMCAwLTEgMXYxM2ExIDEgMCAwIDAgMSAxaDZhMyAzIDAgMCAxIDMgMyAzIDMgMCAwIDEgMy0zaDZhMSAxIDAgMCAwIDEtMXYtMS4zIn1dXSxGUWU9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aDIifV0sWyJwYXRoIix7ZDoiTTMgMThhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoNWE0IDQgMCAwIDEgNCA0IDQgNCAwIDAgMSA0LTRoNWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDFoLTZhMyAzIDAgMCAwLTMgMyAzIDMgMCAwIDAtMy0zeiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgyIn1dLFsicGF0aCIse2Q6Ik02IDhoMiJ9XV0sT1FlPVtbInBhdGgiLHtkOiJNMTIgN3YxNCJ9XSxbInBhdGgiLHtkOiJNMyAxOGExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg1YTQgNCAwIDAgMSA0IDQgNCA0IDAgMCAxIDQtNGg1YTEgMSAwIDAgMSAxIDF2MTNhMSAxIDAgMCAxLTEgMWgtNmEzIDMgMCAwIDAtMyAzIDMgMyAwIDAgMC0zLTN6In1dXSxSUWU9W1sicGF0aCIse2Q6Ik0xMiA3djYifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV0sQlFlPVtbInBhdGgiLHtkOiJNMTEgMjJINS41YTEgMSAwIDAgMSAwLTVoNC41MDEifV0sWyJwYXRoIix7ZDoibTIxIDIyLTEuODc5LTEuODc4In1dLFsicGF0aCIse2Q6Ik0zIDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNS41IDJIMThhMSAxIDAgMCAxIDEgMXY4In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjMifV1dLEhRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTggMTFoOCJ9XSxbInBhdGgiLHtkOiJNOCA3aDYifV1dLHFRZT1bWyJwYXRoIix7ZDoiTTEwIDEzaDQifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NyJ9XSxbInBhdGgiLHtkOiJNMTYgOFY2SDh2MiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV0sVlFlPVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNMTggMmgxYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAyIn1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgNSAzLTMgMyAzIn1dXSxqUWU9W1sicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV1dLFVRZT1bWyJwYXRoIix7ZDoiTTE1IDEzYTMgMyAwIDEgMC02IDAifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiIyIn1dXSxXUWU9W1sicGF0aCIse2Q6Im0xNC41IDctNSA1In1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Im05LjUgNyA1IDUifV1dLEdRZT1bWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV1dLFlRZT1bWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJtOSAxMCAyIDIgNC00In1dXSxaUWU9W1sicGF0aCIse2Q6Ik0xNSAxMEg5In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV1dLFhRZT1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMTBIOSJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dXSxLUWU9W1sicGF0aCIse2Q6Im0xNC41IDcuNS01IDUifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJtOS41IDcuNSA1IDUifV1dLFFRZT1bWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XV0sSlFlPVtbInBhdGgiLHtkOiJNNCA5VjVhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTggOHYxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djEifV0sWyJwYXRoIix7ZDoiTTE2IDh2MSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjkiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE1IixyOiIyIn1dXSxlSmU9W1sicGF0aCIse2Q6Ik0xMiA2VjJIOCJ9XSxbInBhdGgiLHtkOiJNMTUgMTF2MiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNmEyIDIgMCAwIDEtMiAySDguODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSA0IDIwLjI4NlY4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTF2MiJ9XV0sdEplPVtbInBhdGgiLHtkOiJNMTIgOFY0SDgifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEyIix4OiI0Iix5OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAxM3YyIn1dLFsicGF0aCIse2Q6Ik05IDEzdjIifV1dLGFKZT1bWyJwYXRoIix7ZDoiTTEzLjY3IDhIMThhMiAyIDAgMCAxIDIgMnY0LjMzIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XSxbInBhdGgiLHtkOiJNOCA4SDZhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNDE0LS41ODYifV0sWyJwYXRoIix7ZDoiTTkgMTN2MiJ9XSxbInBhdGgiLHtkOiJNOS42NyA0SDEydjIuMzMifV1dLGlKZT1bWyJwYXRoIix7ZDoiTTEwIDNhMSAxIDAgMCAxIDEtMWgyYTEgMSAwIDAgMSAxIDF2MmE2IDYgMCAwIDAgMS4yIDMuNmwuNi44QTYgNiAwIDAgMSAxNyAxM3Y4YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xdi04YTYgNiAwIDAgMSAxLjItMy42bC42LS44QTYgNiAwIDAgMCAxMCA1eiJ9XSxbInBhdGgiLHtkOiJNMTcgMTNoLTRhMSAxIDAgMCAwLTEgMXYzYTEgMSAwIDAgMCAxIDFoNCJ9XV0sckplPVtbInBhdGgiLHtkOiJNMTcgM2g0djQifV0sWyJwYXRoIix7ZDoiTTE4LjU3NSAxMS4wODJhMTMgMTMgMCAwIDEgMS4wNDggOS4wMjcgMS4xNyAxLjE3IDAgMCAxLTEuOTE0LjU5N0wxNCAxNyJ9XSxbInBhdGgiLHtkOiJNNyAxMCAzLjI5IDYuMjlhMS4xNyAxLjE3IDAgMCAxIC42LTEuOTEgMTMgMTMgMCAwIDEgOS4wMyAxLjA1In1dLFsicGF0aCIse2Q6Ik03IDE0YTEuNyAxLjcgMCAwIDAtMS4yMDcuNWwtMi42NDYgMi42NDZBLjUuNSAwIDAgMCAzLjUgMThINWExIDEgMCAwIDEgMSAxdjEuNWEuNS41IDAgMCAwIC44NTQuMzU0TDkuNSAxOC4yMDdBMS43IDEuNyAwIDAgMCAxMCAxN3YtMmExIDEgMCAwIDAtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOS43MDcgMTQuMjkzIDIxIDMifV1dLHNKZT1bWyJwYXRoIix7ZDoiTTIxIDhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2WiJ9XSxbInBhdGgiLHtkOiJtMy4zIDcgOC43IDUgOC43LTUifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dXSxuSmU9W1sicGF0aCIse2Q6Ik0yLjk3IDEyLjkyQTIgMiAwIDAgMCAyIDE0LjYzdjMuMjRhMiAyIDAgMCAwIC45NyAxLjcxbDMgMS44YTIgMiAwIDAgMCAyLjA2IDBMMTIgMTl2LTUuNWwtNS0zLTQuMDMgMi40MloifV0sWyJwYXRoIix7ZDoibTcgMTYuNS00Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoibTcgMTYuNSA1LTMifV0sWyJwYXRoIix7ZDoiTTcgMTYuNXY1LjE3In1dLFsicGF0aCIse2Q6Ik0xMiAxMy41VjE5bDMuOTcgMi4zOGEyIDIgMCAwIDAgMi4wNiAwbDMtMS44YTIgMiAwIDAgMCAuOTctMS43MXYtMy4yNGEyIDIgMCAwIDAtLjk3LTEuNzFMMTcgMTAuNWwtNSAzWiJ9XSxbInBhdGgiLHtkOiJtMTcgMTYuNS01LTMifV0sWyJwYXRoIix7ZDoibTE3IDE2LjUgNC43NC0yLjg1In1dLFsicGF0aCIse2Q6Ik0xNyAxNi41djUuMTcifV0sWyJwYXRoIix7ZDoiTTcuOTcgNC40MkEyIDIgMCAwIDAgNyA2LjEzdjQuMzdsNSAzIDUtM1Y2LjEzYTIgMiAwIDAgMC0uOTctMS43MWwtMy0xLjhhMiAyIDAgMCAwLTIuMDYgMGwtMyAxLjhaIn1dLFsicGF0aCIse2Q6Ik0xMiA4IDcuMjYgNS4xNSJ9XSxbInBhdGgiLHtkOiJtMTIgOCA0Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjVWOCJ9XV0sJGc9W1sicGF0aCIse2Q6Ik04IDNIN2EyIDIgMCAwIDAtMiAydjVhMiAyIDAgMCAxLTIgMiAyIDIgMCAwIDEgMiAydjVjMCAxLjEuOSAyIDIgMmgxIn1dLFsicGF0aCIse2Q6Ik0xNiAyMWgxYTIgMiAwIDAgMCAyLTJ2LTVjMC0xLjEuOS0yIDItMmEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAwLTItMmgtMSJ9XV0sb0plPVtbInBhdGgiLHtkOiJNMTYgM2gzYTEgMSAwIDAgMSAxIDF2MTZhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMUg1YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDMifV1dLGxKZT1bWyJwYXRoIix7ZDoiTTEyIDVhMyAzIDAgMSAwLTUuOTk3LjEyNSA0IDQgMCAwIDAtMi41MjYgNS43NyA0IDQgMCAwIDAgLjU1NiA2LjU4OEE0IDQgMCAxIDAgMTIgMThaIn1dLFsicGF0aCIse2Q6Ik05IDEzYTQuNSA0LjUgMCAwIDAgMy00In1dLFsicGF0aCIse2Q6Ik02LjAwMyA1LjEyNUEzIDMgMCAwIDAgNi40MDEgNi41In1dLFsicGF0aCIse2Q6Ik0zLjQ3NyAxMC44OTZhNCA0IDAgMCAxIC41ODUtLjM5NiJ9XSxbInBhdGgiLHtkOiJNNiAxOGE0IDQgMCAwIDEtMS45NjctLjUxNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTNoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNmEyIDIgMCAwIDEgMiAydjEifV0sWyJwYXRoIix7ZDoiTTEyIDhoOCJ9XSxbInBhdGgiLHtkOiJNMTYgOFY1YTIgMiAwIDAgMSAyLTIifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMyIscjoiLjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIzIixyOiIuNSJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjIxIixyOiIuNSJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjgiLHI6Ii41In1dXSxjSmU9W1sicGF0aCIse2Q6Im0xMC44NTIgMTQuNzcyLS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xMC44NTIgOS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy4xNDggMTQuNzcyLjM4Mi45MjQifV0sWyJwYXRoIix7ZDoibTEzLjUzMSA4LjMwNS0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDAgMC01LjYzLTEuNDQ2IDMgMyAwIDAgMC0uMzY4IDEuNTcxIDQgNCAwIDAgMC0yLjUyNSA1Ljc3MSJ9XSxbInBhdGgiLHtkOiJNMTcuOTk4IDUuMTI1YTQgNCAwIDAgMSAyLjUyNSA1Ljc3MSJ9XSxbInBhdGgiLHtkOiJNMTkuNTA1IDEwLjI5NGE0IDQgMCAwIDEtMS41IDcuNzA2In1dLFsicGF0aCIse2Q6Ik00LjAzMiAxNy40ODNBNCA0IDAgMCAwIDExLjQ2NCAyMGMuMTgtLjMxMS44OTItLjMxMSAxLjA3MiAwYTQgNCAwIDAgMCA3LjQzMi0yLjUxNiJ9XSxbInBhdGgiLHtkOiJNNC41IDEwLjI5MUE0IDQgMCAwIDAgNiAxOCJ9XSxbInBhdGgiLHtkOiJNNi4wMDIgNS4xMjVhMyAzIDAgMCAwIC40IDEuMzc1In1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV0sZEplPVtbInBhdGgiLHtkOiJNMTIgMThWNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTNhNC4xNyA0LjE3IDAgMCAxLTMtNCA0LjE3IDQuMTcgMCAwIDEtMyA0In1dLFsicGF0aCIse2Q6Ik0xNy41OTggNi41QTMgMyAwIDEgMCAxMiA1YTMgMyAwIDEgMC01LjU5OCAxLjUifV0sWyJwYXRoIix7ZDoiTTE3Ljk5NyA1LjEyNWE0IDQgMCAwIDEgMi41MjYgNS43NyJ9XSxbInBhdGgiLHtkOiJNMTggMThhNCA0IDAgMCAwIDItNy40NjQifV0sWyJwYXRoIix7ZDoiTTE5Ljk2NyAxNy40ODNBNCA0IDAgMSAxIDEyIDE4YTQgNCAwIDEgMS03Ljk2Ny0uNTE3In1dLFsicGF0aCIse2Q6Ik02IDE4YTQgNCAwIDAgMS0yLTcuNDY0In1dLFsicGF0aCIse2Q6Ik02LjAwMyA1LjEyNWE0IDQgMCAwIDAtMi41MjYgNS43NyJ9XV0scEplPVtbInBhdGgiLHtkOiJNMTYgM3YyLjEwNyJ9XSxbInBhdGgiLHtkOiJNMTcgOWMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAyMiAxN2E1IDUgMCAwIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDMTMgMTEuNSAxNiA5IDE3IDkifV0sWyJwYXRoIix7ZDoiTTIxIDguMjc0VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjkzOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWg1LjI1MyJ9XSxbInBhdGgiLHtkOiJNMyA5aDguMjI4In1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXSxoSmU9W1sicGF0aCIse2Q6Ik0xMiA5djEuMjU4In1dLFsicGF0aCIse2Q6Ik0xNiAzdjUuNDYifV0sWyJwYXRoIix7ZDoiTTIxIDkuMTE4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg1Ljc1In1dLFsicGF0aCIse2Q6Ik0yMiAxNy41YzAgMi40OTktMS43NSAzLjc0OS0zLjgzIDQuNDc0YS41LjUgMCAwIDEtLjMzNS0uMDA1Yy0yLjA4NS0uNzItMy44MzUtMS45Ny0zLjgzNS00LjQ3VjE0YS41LjUgMCAwIDEgLjUtLjQ5OWMxIDAgMi4yNS0uNiAzLjEyLTEuMzZhLjYuNiAwIDAgMSAuNzYtLjAwMWMuODc1Ljc2NSAyLjEyIDEuMzYgMy4xMiAxLjM2YS41LjUgMCAwIDEgLjUuNXoifV0sWyJwYXRoIix7ZDoiTTMgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMyA5aDEyLjE0MiJ9XSxbInBhdGgiLHtkOiJNOCAxNXY2In1dLFsicGF0aCIse2Q6Ik04IDN2NiJ9XV0sdUplPVtbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTIyIDEzYTE4LjE1IDE4LjE1IDAgMCAxLTIwIDAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV0sZkplPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV0sWyJwYXRoIix7ZDoiTTE2IDE1djYifV0sWyJwYXRoIix7ZDoiTTE2IDN2NiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXSxtSmU9W1sicGF0aCIse2Q6Ik0xMCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xNCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMHYyIn1dLFsicGF0aCIse2Q6Ik0yMSAyMEgzIn1dLFsicGF0aCIse2Q6Ik02IDIwdjIifV0sWyJwYXRoIix7ZDoiTTggMTZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxMiJ9XSxbInJlY3QiLHt4OiI0Iix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTAiLHJ4OiIyIn1dXSxnSmU9W1sicGF0aCIse2Q6Ik0xMiAxMXY0In1dLFsicGF0aCIse2Q6Ik0xNCAxM2gtNCJ9XSxbInBhdGgiLHtkOiJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOCA2djE0In1dLFsicGF0aCIse2Q6Ik02IDZ2MTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV0sYkplPVtbInBhdGgiLHtkOiJNMTYgMjBWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MTYifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI2IixyeDoiMiJ9XV0sdkplPVtbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE0IDIwYTIgMiAwIDAgMCAyIDJoNGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTIifV1dLHlKZT1bWyJwYXRoIix7ZDoibTE2IDIyLTEtNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTRhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0yaC0zYTEgMSAwIDAgMS0xLTFWNGEyIDIgMCAwIDAtNCAwdjVhMSAxIDAgMCAxLTEgMUg2YTIgMiAwIDAgMC0yIDJ2MWExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNEg1bC0xLjk3MyA2Ljc2N0ExIDEgMCAwIDAgNCAyMmgxNmExIDEgMCAwIDAgLjk3My0xLjIzM3oifV0sWyJwYXRoIix7ZDoibTggMjIgMS00In1dXSx4SmU9W1sicGF0aCIse2Q6Im0xMSAxMCAzIDMifV0sWyJwYXRoIix7ZDoiTTYuNSAyMUEzLjUgMy41IDAgMSAwIDMgMTcuNWEyLjYyIDIuNjIgMCAwIDEtLjcwOCAxLjc5MkExIDEgMCAwIDAgMyAyMXoifV0sWyJwYXRoIix7ZDoiTTkuOTY5IDE3LjAzMSAyMS4zNzggNS42MjRhMSAxIDAgMCAwLTMuMDAyLTMuMDAyTDYuOTY3IDE0LjAzMSJ9XV0sd0plPVtbInBhdGgiLHtkOiJNNy4wMDEgMTUuMDg1QTEuNSAxLjUgMCAwIDEgOSAxNi41In1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiI4LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiI1LjUifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNC41IixyOiIyLjUifV1dLE1KZT1bWyJwYXRoIix7ZDoiTTEyIDIwdi04In1dLFsicGF0aCIse2Q6Ik0xMi42NTYgN0gxNGE0IDQgMCAwIDEgNCA0djEuMzQ0In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAzLjg4IDE2IDIifV0sWyJwYXRoIix7ZDoiTTE3LjEyMyAxNy4xMjNBNiA2IDAgMCAxIDYgMTR2LTNhNCA0IDAgMCAxIDEuNzItMy4yODcifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik0yMiAxM2gtMy4zNDQifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTYgMTNIMiJ9XSxbInBhdGgiLHtkOiJtOCAyIDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNOS43MTIgNC4wNkEzIDMgMCAwIDEgMTUgNnYxLjEzIn1dXSx6SmU9W1sicGF0aCIse2Q6Ik0xMCAxOS42NTVBNiA2IDAgMCAxIDYgMTR2LTNhNCA0IDAgMCAxIDQtNGg0YTQgNCAwIDAgMSA0IDMuOTcifV0sWyJwYXRoIix7ZDoiTTE0IDE1LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdhMSAxIDAgMCAxLTEuNTE3LS44NnoifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDMuODggMTYgMiJ9XSxbInBhdGgiLHtkOiJNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik0zIDIxYTQgNCAwIDAgMSAzLjgxLTQifV0sWyJwYXRoIix7ZDoiTTMgNWE0IDQgMCAwIDAgMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik02IDEzSDIifV0sWyJwYXRoIix7ZDoibTggMiAxLjg4IDEuODgifV0sWyJwYXRoIix7ZDoiTTkgNy4xM1Y2YTMgMyAwIDEgMSA2IDB2MS4xMyJ9XV0sa0plPVtbInBhdGgiLHtkOiJNMTIgMjB2LTkifV0sWyJwYXRoIix7ZDoiTTE0IDdhNCA0IDAgMCAxIDQgNHYzYTYgNiAwIDAgMS0xMiAwdi0zYTQgNCAwIDAgMSA0LTR6In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAzLjg4IDE2IDIifV0sWyJwYXRoIix7ZDoiTTIxIDIxYTQgNCAwIDAgMC0zLjgxLTQifV0sWyJwYXRoIix7ZDoiTTIxIDVhNCA0IDAgMCAxLTMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNMjIgMTNoLTQifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTYgMTNIMiJ9XSxbInBhdGgiLHtkOiJtOCAyIDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzIn1dXSxTSmU9W1sicGF0aCIse2Q6Ik0xMCAxMmg0In1dLFsicGF0aCIse2Q6Ik0xMCA4aDQifV0sWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNNiAxMEg0YTIgMiAwIDAgMC0yIDJ2N2EyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWOWEyIDIgMCAwIDAtMi0yaC0yIn1dLFsicGF0aCIse2Q6Ik02IDIxVjVhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2MTYifV1dLENKZT1bWyJwYXRoIix7ZDoiTTEyIDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTggNmguMDEifV0sWyJwYXRoIix7ZDoiTTkgMjJ2LTNhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MyJ9XSxbInJlY3QiLHt4OiI0Iix5OiIyIix3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHJ4OiIyIn1dXSxfSmU9W1sicGF0aCIse2Q6Ik00IDYgMiA3In1dLFsicGF0aCIse2Q6Ik0xMCA2aDQifV0sWyJwYXRoIix7ZDoibTIyIDctMi0xIn1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTFoMTYifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTggMjF2LTIifV1dLFRKZT1bWyJwYXRoIix7ZDoiTTggNnY2In1dLFsicGF0aCIse2Q6Ik0xNSA2djYifV0sWyJwYXRoIix7ZDoiTTIgMTJoMTkuNiJ9XSxbInBhdGgiLHtkOiJNMTggMThoM3MuNS0xLjcuOC0yLjhjLjEtLjQuMi0uOC4yLTEuMiAwLS40LS4xLS44LS4yLTEuMmwtMS40LTVDMjAuMSA2LjggMTkuMSA2IDE4IDZINGEyIDIgMCAwIDAtMiAydjEwaDMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dLFsicGF0aCIse2Q6Ik05IDE4aDUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxOCIscjoiMiJ9XV0sTEplPVtbInBhdGgiLHtkOiJNMTAgM2guMDEifV0sWyJwYXRoIix7ZDoiTTE0IDJoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDkgMjAtNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJWNi41In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxMCIseDoiNCIseToiMTIiLHJ4OiIzIn1dLFsicGF0aCIse2Q6Ik05IDEydjUifV0sWyJwYXRoIix7ZDoiTTE1IDEydjUifV0sWyJwYXRoIix7ZDoiTTQgMTdoMTYifV1dLCRKZT1bWyJwYXRoIix7ZDoiTTE3IDE5YTEgMSAwIDAgMS0xLTF2LTJhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAyIDJ2MmExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTE5IDE0VjYuNWExIDEgMCAwIDAtNyAwdjExYTEgMSAwIDAgMS03IDBWMTAifV0sWyJwYXRoIix7ZDoiTTIxIDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0zIDVWMyJ9XSxbInBhdGgiLHtkOiJNNCAxMGEyIDIgMCAwIDEtMi0yVjZhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNNyA1VjMifV1dLEFKZT1bWyJwYXRoIix7ZDoiTTE2IDEzSDMifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDMifV0sWyJwYXRoIix7ZDoibTcuMiA3LjktMy4zODggMi41QTIgMiAwIDAgMCAzIDEyLjAxVjIwYTEgMSAwIDAgMCAxIDFoMTZhMSAxIDAgMCAwIDEtMXYtOC42NTRjMC0yLTIuNDQtNi4wMjYtNi40NC04LjAyNmExIDEgMCAwIDAtMS4wODIuMDU3TDEwLjQgNS42In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiIyIn1dXSxESmU9W1sicGF0aCIse2Q6Ik0yMCAyMXYtOGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY4In1dLFsicGF0aCIse2Q6Ik00IDE2cy41LTEgMi0xIDIuNSAyIDQgMiAyLjUtMiA0LTIgMi41IDIgNCAyIDItMSAyLTEifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV0sWyJwYXRoIix7ZDoiTTcgOHYzIn1dLFsicGF0aCIse2Q6Ik0xMiA4djMifV0sWyJwYXRoIix7ZDoiTTE3IDh2MyJ9XSxbInBhdGgiLHtkOiJNNyA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDRoLjAxIn1dXSxFSmU9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjYiLHkyOiI2In1dLFsibGluZSIse3gxOiIxNiIseDI6IjE2Iix5MToiMTQiLHkyOiIxOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMThoLjAxIn1dXSxQSmU9W1sicGF0aCIse2Q6Ik0xMSAxNGgxdjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sSUplPVtbInBhdGgiLHtkOiJtMTQgMTggNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOCAxNHY4In1dLFsicGF0aCIse2Q6Ik0yMSAxMS4zNTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMzQzIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV0sTkplPVtbInBhdGgiLHtkOiJtMTQgMTggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuMzQzVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg5In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV0sRkplPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTRWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE2IDIwIDIgMiA0LTQifV1dLE9KZT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNiAyIDIgNC00In1dXSxSSmU9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgNy41VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgzLjUifV0sWyJwYXRoIix7ZDoiTTMgMTBoNSJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxNiIscjoiNiJ9XV0sQkplPVtbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxOS4xNDgtLjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJtMTYuNDcgMTQuMzA1LjM4Mi45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNMjEgMTAuNTkyVjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXSxISmU9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMThoLjAxIn1dXSxxSmU9W1sicGF0aCIse2Q6Ik0zIDIwYTIgMiAwIDAgMCAyIDJoMTBhMi40IDIuNCAwIDAgMCAxLjcwNi0uNzA2bDMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMjEgMTZWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE1IDIydi01YTEgMSAwIDAgMSAxLTFoNSJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XV0sVkplPVtbInBhdGgiLHtkOiJNMTIuMTI3IDIySDVhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjEyNSJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV0sakplPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik0xMCAxNmg0In1dXSxVSmU9W1sicGF0aCIse2Q6Ik0xNiAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDE1VjZhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg4LjUifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXSxXSmU9W1sicGF0aCIse2Q6Ik00LjIgNC4yQTIgMiAwIDAgMCAzIDZ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMS44Mi0xLjE4In1dLFsicGF0aCIse2Q6Ik0yMSAxNS41VjZhMiAyIDAgMCAwLTItMkg5LjUifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMyAxMGg3In1dLFsicGF0aCIse2Q6Ik0yMSAxMGgtNS41In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLEdKZT1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTZoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2NCJ9XV0sWUplPVtbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMi41OThWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dLFpKZT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMTRoLTYifV0sWyJwYXRoIix7ZDoiTTEzIDE4SDcifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxOGguMDEifV1dLFhKZT1bWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuNzVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDcuMjUifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODc1LTEuODc1In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXSxLSmU9W1sicGF0aCIse2Q6Ik0xMSAxMHY0aDQifV0sWyJwYXRoIix7ZDoibTExIDE0IDEuNTM1LTEuNjA1YTUgNSAwIDAgMSA4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Im0yMSAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTIxIDIydi00aC00In1dLFsicGF0aCIse2Q6Ik0yMSA4LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDQuMyJ9XSxbInBhdGgiLHtkOiJNMyAxMGg0In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV0sUUplPVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE3IDIyIDUtNSJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNSA1In1dXSxKSmU9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoibTE0IDE0LTQgNCJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNCA0In1dXSxlZXQ9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV1dLHRldD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTUuNzI2IDIxLjAxQTIgMiAwIDAgMSAxNCAyMkg0YTIgMiAwIDAgMS0yLTJWMTBhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNMTggMnYyIn1dLFsicGF0aCIse2Q6Ik0yIDEzaDIifV0sWyJwYXRoIix7ZDoiTTggOGgxNCJ9XSxbInJlY3QiLHt4OiI4Iix5OiIzIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSxhZXQ9W1sicGF0aCIse2Q6Ik0xNC41NjQgMTQuNTU4YTMgMyAwIDEgMS00LjEyMi00LjEyMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDEuOTk3YTIgMiAwIDAgMCAuODE5LS4xNzUifV0sWyJwYXRoIix7ZDoiTTkuNjk1IDQuMDI0QTIgMiAwIDAgMSAxMC4wMDQgNGgzLjk5M2EyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY3LjM0NCJ9XV0saWV0PVtbInBhdGgiLHtkOiJNMTMuOTk3IDRhMiAyIDAgMCAxIDEuNzYgMS4wNWwuNDg2LjlBMiAyIDAgMCAwIDE4LjAwMyA3SDIwYTIgMiAwIDAgMSAyIDJ2OWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIDEuNzU5LTEuMDQ4bC40ODktLjkwNEEyIDIgMCAwIDEgMTAuMDA0IDR6In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjMifV1dLHJldD1bWyJwYXRoIix7ZDoiTTUuNyAyMWEyIDIgMCAwIDEtMy41LTJsOC42LTE0YTYgNiAwIDAgMSAxMC40IDYgMiAyIDAgMSAxLTMuNDY0LTIgMiAyIDAgMSAwLTMuNDY0LTJaIn1dLFsicGF0aCIse2Q6Ik0xNy43NSA3IDE1IDIuMSJ9XSxbInBhdGgiLHtkOiJNMTAuOSA0LjggMTMgOSJ9XSxbInBhdGgiLHtkOiJtNy45IDkuNyAyIDQuNCJ9XSxbInBhdGgiLHtkOiJNNC45IDE0LjcgNyAxOC45In1dXSxzZXQ9W1sicGF0aCIse2Q6Ik0xMCAxMHY3LjkifV0sWyJwYXRoIix7ZDoiTTExLjgwMiA2LjE0NWE1IDUgMCAwIDEgNi4wNTMgNi4wNTMifV0sWyJwYXRoIix7ZDoiTTE0IDYuMXYyLjI0MyJ9XSxbInBhdGgiLHtkOiJtMTUuNSAxNS41NzEtLjk2NC45NjRhNSA1IDAgMCAxLTcuMDcxIDAgNSA1IDAgMCAxIDAtNy4wN2wuOTY0LS45NjUifV0sWyJwYXRoIix7ZDoiTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTggMTd2NGExIDEgMCAwIDEtMS43MDcuNzA3IDIuNSAyLjUgMCAwIDAtMi4xNTItLjcxNyAxIDEgMCAwIDEtMS4xMzEtMS4xMzEgMi41IDIuNSAwIDAgMC0uNzE3LTIuMTUyQTEgMSAwIDAgMSAzIDE2aDQifV1dLG5ldD1bWyJwYXRoIix7ZDoiTTEwIDd2MTAuOSJ9XSxbInBhdGgiLHtkOiJNMTQgNi4xVjE3In1dLFsicGF0aCIse2Q6Ik0xNiA3VjNhMSAxIDAgMCAxIDEuNzA3LS43MDcgMi41IDIuNSAwIDAgMCAyLjE1Mi43MTcgMSAxIDAgMCAxIDEuMTMxIDEuMTMxIDIuNSAyLjUgMCAwIDAgLjcxNyAyLjE1MkExIDEgMCAwIDEgMjEgOGgtNCJ9XSxbInBhdGgiLHtkOiJNMTYuNTM2IDcuNDY1YTUgNSAwIDAgMC03LjA3MiAwbC0yIDJhNSA1IDAgMCAwIDAgNy4wNyA1IDUgMCAwIDAgNy4wNzIgMGwyLTJhNSA1IDAgMCAwIDAtNy4wNyJ9XSxbInBhdGgiLHtkOiJNOCAxN3Y0YTEgMSAwIDAgMS0xLjcwNy43MDcgMi41IDIuNSAwIDAgMC0yLjE1Mi0uNzE3IDEgMSAwIDAgMS0xLjEzMS0xLjEzMSAyLjUgMi41IDAgMCAwLS43MTctMi4xNTJBMSAxIDAgMCAxIDMgMTZoNCJ9XV0sb2V0PVtbInBhdGgiLHtkOiJNMTIgMjJ2LTRjMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSJ9XSxbInBhdGgiLHtkOiJNMTMuOTg4IDguMzI3QzEzLjkwMiA2LjA1NCAxMy4zNjUgMy44MiAxMiAyYTkuMyA5LjMgMCAwIDAtMS40NDUgMi45In1dLFsicGF0aCIse2Q6Ik0xNy4zNzUgMTEuNzI1QzE4Ljg4MiAxMC41MyAyMSA3Ljg0MSAyMSA2Yy0yLjMyNCAwLTUuMDggMS4yOTYtNi42NjIgMi42ODQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjEuMDI0IDE1LjM3OEExNSAxNSAwIDAgMCAyMiAxNWMtLjQyNi0xLjI3OS0yLjY3LTIuNTU3LTQuMjUtMi45MDcifV0sWyJwYXRoIix7ZDoiTTYuOTk1IDYuOTkyQzUuNzE0IDYuNCA0LjI5IDYgMyA2YzAgMiAyLjUgNSA0IDYtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zIn1dXSxjZXQ9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNCJ9XSxbInBhdGgiLHtkOiJNNyAxMmMtMS41IDAtNC41IDEuNS01IDMgMy41IDEuNSA2IDEgNiAxLTEuNSAxLjUtMiAzLjUtMiA1IDIuNSAwIDQuNS0xLjUgNi0zIDEuNSAxLjUgMy41IDMgNiAzIDAtMS41LS41LTMuNS0yLTUgMCAwIDIuNS41IDYtMS0uNS0xLjUtMy41LTMtNS0zIDEuNS0xIDQtNCA0LTYtMi41IDAtNS41IDEuNS03IDMgMC0yLjUtLjUtNS0yLTctMS41IDItMiA0LjUtMiA3LTEuNS0xLjUtNC41LTMtNy0zIDAgMiAyLjUgNSA0IDYifV1dLGRldD1bWyJwYXRoIix7ZDoiTTEwLjUgNUgxOWEyIDIgMCAwIDEgMiAydjguNSJ9XSxbInBhdGgiLHtkOiJNMTcgMTFoLS41In1dLFsicGF0aCIse2Q6Ik0xOSAxOUg1YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTcgMTFoNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWgyLjUifV1dLEFnPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjUiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNyAxNWg0TTE1IDE1aDJNNyAxMWgyTTEzIDExaDQifV1dLHBldD1bWyJwYXRoIix7ZDoibTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXSxoZXQ9W1sicGF0aCIse2Q6Ik0xMCAyaDQifV0sWyJwYXRoIix7ZDoibTIxIDgtMiAyLTEuNS0zLjdBMiAyIDAgMCAwIDE1LjY0NiA1SDguNGEyIDIgMCAwIDAtMS45MDMgMS4yNTdMNSAxMCAzIDgifV0sWyJwYXRoIix7ZDoiTTcgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXSx1ZXQ9W1sicGF0aCIse2Q6Ik0xOSAxN2gyYy42IDAgMS0uNCAxLTF2LTNjMC0uOS0uNy0xLjctMS41LTEuOUMxOC43IDEwLjYgMTYgMTAgMTYgMTBzLTEuMy0xLjQtMi4yLTIuM2MtLjUtLjQtMS4xLS43LTEuOC0uN0g1Yy0uNiAwLTEuMS40LTEuNC45bC0xLjQgMi45QTMuNyAzLjcgMCAwIDAgMiAxMnY0YzAgLjYuNCAxIDEgMWgyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjIifV1dLGZldD1bWyJwYXRoIix7ZDoiTTE4IDE5VjlhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2OGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIgOWgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDIifV0sWyJwYXRoIix7ZDoiTTIyIDE3djFhMSAxIDAgMCAxLTEgMUgxMHYtOWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY5In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxOSIscjoiMiJ9XV0sbWV0PVtbInBhdGgiLHtkOiJNMTIgMTR2NCJ9XSxbInBhdGgiLHtkOiJNMTQuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4NmwzLjgyOCAzLjgyOEEyIDIgMCAwIDEgMjAgNy44MjhWMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicmVjdCIse3g6IjgiLHk6IjEwIix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV0sZ2V0PVtbInBhdGgiLHtkOiJNMi4yNyAyMS43czkuODctMy41IDEyLjczLTYuMzZhNC41IDQuNSAwIDAgMC02LjM2LTYuMzdDNS43NyAxMS44NCAyLjI3IDIxLjcgMi4yNyAyMS43ek04LjY0IDE0bC0yLjA1LTIuMDRNMTUuMzQgMTVsLTIuNDYtMi40NiJ9XSxbInBhdGgiLHtkOiJNMjIgOXMtMS4zMy0yLTMuNS0yQzE2Ljg2IDcgMTUgOSAxNSA5czEuMzMgMiAzLjUgMlMyMiA5IDIyIDl6In1dLFsicGF0aCIse2Q6Ik0xNSAycy0yIDEuMzMtMiAzLjVTMTUgOSAxNSA5czItMS44NCAyLTMuNUMxNyAzLjMzIDE1IDIgMTUgMnoifV1dLGJldD1bWyJwYXRoIix7ZDoiTTEwIDl2NyJ9XSxbInBhdGgiLHtkOiJNMTQgNnYxMCJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTIuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XV0sdmV0PVtbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0yMiA5djcifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxMi41IixyOiIzLjUifV1dLHlldD1bWyJwYXRoIix7ZDoiTTE1IDExaDQuNWExIDEgMCAwIDEgMCA1aC00YS41LjUgMCAwIDEtLjUtLjV2LTlhLjUuNSAwIDAgMSAuNS0uNWgzYTEgMSAwIDAgMSAwIDUifV0sWyJwYXRoIix7ZDoibTIgMTYgNC4wMzktOS42OWEuNS41IDAgMCAxIC45MjMgMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV1dLHhldD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTAiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEwIixyOiIyIn1dLFsicGF0aCIse2Q6Im02IDIwIC43LTIuOUExLjQgMS40IDAgMCAxIDguMSAxNmg3LjhhMS40IDEuNCAwIDAgMSAxLjQgMWwuNyAzIn1dXSx3ZXQ9W1sicGF0aCIse2Q6Ik0yIDhWNmEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMmgtNiJ9XSxbInBhdGgiLHtkOiJNMiAxMmE5IDkgMCAwIDEgOCA4In1dLFsicGF0aCIse2Q6Ik0yIDE2YTUgNSAwIDAgMSA0IDQifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyLjAxIix5MToiMjAiLHkyOiIyMCJ9XV0sTWV0PVtbInBhdGgiLHtkOiJNMTAgNVYzIn1dLFsicGF0aCIse2Q6Ik0xNCA1VjMifV0sWyJwYXRoIix7ZDoiTTE1IDIxdi0zYTMgMyAwIDAgMC02IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTggM3Y4In1dLFsicGF0aCIse2Q6Ik0xOCA1SDYifV0sWyJwYXRoIix7ZDoiTTIyIDExSDIifV0sWyJwYXRoIix7ZDoiTTIyIDl2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOSJ9XSxbInBhdGgiLHtkOiJNNiAzdjgifV1dLHpldD1bWyJwYXRoIix7ZDoiTTEyIDVjLjY3IDAgMS4zNS4wOSAyIC4yNiAxLjc4LTIgNS4wMy0yLjg0IDYuNDItMi4yNiAxLjQuNTgtLjQyIDctLjQyIDcgLjU3IDEuMDcgMSAyLjI0IDEgMy40NEMyMSAxNy45IDE2Ljk3IDIxIDEyIDIxcy05LTMtOS03LjU2YzAtMS4yNS41LTIuNCAxLTMuNDQgMCAwLTEuODktNi40Mi0uNS03IDEuMzktLjU4IDQuNzIuMjMgNi41IDIuMjNBOS4wNCA5LjA0IDAgMCAxIDEyIDVaIn1dLFsicGF0aCIse2Q6Ik04IDE0di41In1dLFsicGF0aCIse2Q6Ik0xNiAxNHYuNSJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgMTYuMjVoMS41TDEyIDE3bC0uNzUtLjc1WiJ9XV0sa2V0PVtbInBhdGgiLHtkOiJNMTYuNzUgMTJoMy42MzJhMSAxIDAgMCAxIC44OTQgMS40NDdsLTIuMDM0IDQuMDY5YTEgMSAwIDAgMS0xLjcwOC4xMzRsLTIuMTI0LTIuOTcifV0sWyJwYXRoIix7ZDoiTTE3LjEwNiA5LjA1M2ExIDEgMCAwIDEgLjQ0NyAxLjM0MWwtMy4xMDYgNi4yMTFhMSAxIDAgMCAxLTEuMzQyLjQ0N0wzLjYxIDEyLjNhMi45MiAyLjkyIDAgMCAxLTEuMy0zLjkxTDMuNjkgNS42YTIuOTIgMi45MiAwIDAgMSAzLjkyLTEuM3oifV0sWyJwYXRoIix7ZDoiTTIgMTloMy43NmEyIDIgMCAwIDAgMS44LTEuMUw5IDE1In1dLFsicGF0aCIse2Q6Ik0yIDIxdi00In1dLFsicGF0aCIse2Q6Ik03IDloLjAxIn1dXSxEZz1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDExLjIwN2EuNS41IDAgMCAxIC4xNDYtLjM1M2wyLTJhLjUuNSAwIDAgMSAuNzA4IDBsMy4yOTIgMy4yOTJhLjUuNSAwIDAgMCAuNzA4IDBsNC4yOTItNC4yOTJhLjUuNSAwIDAgMSAuODU0LjM1M1YxNmExIDEgMCAwIDEtMSAxSDhhMSAxIDAgMCAxLTEtMXoifV1dLEVnPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV0sQ2V0PVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTFoOCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgzIn1dLFsicGF0aCIse2Q6Ik03IDZoMTIifV1dLF9ldD1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik03IDExaDgifV0sWyJwYXRoIix7ZDoiTTcgMTZoMTIifV0sWyJwYXRoIix7ZDoiTTcgNmgzIn1dXSxUZXQ9W1sicGF0aCIse2Q6Ik0xMSAxM3Y0In1dLFsicGF0aCIse2Q6Ik0xNSA1djQifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicmVjdCIse3g6IjciLHk6IjEzIix3aWR0aDoiOSIsaGVpZ2h0OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt4OiI3Iix5OiI1Iix3aWR0aDoiMTIiLGhlaWdodDoiNCIscng6IjEifV1dLFBnPVtbInBhdGgiLHtkOiJNOSA1djQifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNiIseDoiNyIseToiOSIscng6IjEifV0sWyJwYXRoIix7ZDoiTTkgMTV2MiJ9XSxbInBhdGgiLHtkOiJNMTcgM3YyIn1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjgiLHg6IjE1Iix5OiI1IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTN2MyJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV1dLElnPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjUiLHdpZHRoOiI0IixoZWlnaHQ6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt4OiI3Iix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI5IixyeDoiMSJ9XV0sTGV0PVtbInBhdGgiLHtkOiJNMTMgMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTggMTd2LTMifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Ik04IDE3VjUifV1dLE5nPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTZoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMWgxMiJ9XSxbInBhdGgiLHtkOiJNNyA2aDMifV1dLEZnPVtbInBhdGgiLHtkOiJNMTMgMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTggMTdWNSJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMifV1dLCRldD1bWyJwYXRoIix7ZDoiTTExIDEzSDcifV0sWyJwYXRoIix7ZDoiTTE5IDloLTQifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicmVjdCIse3g6IjE1Iix5OiI1Iix3aWR0aDoiNCIsaGVpZ2h0OiIxMiIscng6IjEifV0sWyJyZWN0Iix7eDoiNyIseToiOCIsd2lkdGg6IjQiLGhlaWdodDoiOSIscng6IjEifV1dLE9nPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTE4IDE3VjkifV0sWyJwYXRoIix7ZDoiTTEzIDE3VjUifV0sWyJwYXRoIix7ZDoiTTggMTd2LTMifV1dLEFldD1bWyJwYXRoIix7ZDoiTTEwIDZoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoNiJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTFoNyJ9XV0sUmc9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJtMTkgOS01IDUtNC00LTMgMyJ9XV0sRGV0PVtbInBhdGgiLHtkOiJtMTMuMTEgNy42NjQgMS43OCAyLjY3MiJ9XSxbInBhdGgiLHtkOiJtMTQuMTYyIDEyLjc4OC0zLjMyNCAxLjQyNCJ9XSxbInBhdGgiLHtkOiJtMjAgNC02LjA2IDEuNTE1In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjIifV1dLEVldD1bWyJwYXRoIix7ZDoiTTUgMjFWMyJ9XSxbInBhdGgiLHtkOiJNMTIgMjFWOSJ9XSxbInBhdGgiLHtkOiJNMTkgMjF2LTYifV1dLEJnPVtbInBhdGgiLHtkOiJNNSAyMXYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgMjFWOSJ9XSxbInBhdGgiLHtkOiJNMTkgMjFWMyJ9XV0sSGc9W1sicGF0aCIse2Q6Ik01IDIxdi02In1dLFsicGF0aCIse2Q6Ik0xMiAyMVYzIn1dLFsicGF0aCIse2Q6Ik0xOSAyMVY5In1dXSxQZXQ9W1sicGF0aCIse2Q6Ik0xMiAxNnY1In1dLFsicGF0aCIse2Q6Ik0xNiAxNHY3In1dLFsicGF0aCIse2Q6Ik0yMCAxMHYxMSJ9XSxbInBhdGgiLHtkOiJtMjIgMy04LjY0NiA4LjY0NmEuNS41IDAgMCAxLS43MDggMEw5LjM1NCA4LjM1NGEuNS41IDAgMCAwLS43MDcgMEwyIDE1In1dLFsicGF0aCIse2Q6Ik00IDE4djMifV0sWyJwYXRoIix7ZDoiTTggMTR2NyJ9XV0scWc9W1sicGF0aCIse2Q6Ik02IDVoMTIifV0sWyJwYXRoIix7ZDoiTTQgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE5aDgifV1dLFZnPVtbInBhdGgiLHtkOiJNMjEgMTJjLjU1MiAwIDEuMDA1LS40NDkuOTUtLjk5OGExMCAxMCAwIDAgMC04Ljk1My04Ljk1MWMtLjU1LS4wNTUtLjk5OC4zOTgtLjk5OC45NXY4YTEgMSAwIDAgMCAxIDF6In1dLFsicGF0aCIse2Q6Ik0yMS4yMSAxNS44OUExMCAxMCAwIDEgMSA4IDIuODMifV1dLGpnPVtbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjUuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTEuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XV0sSWV0PVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTZjLjUtMiAxLjUtNyA0LTcgMiAwIDIgMyA0IDMgMi41IDAgNC41LTUgNS03In1dXSxOZXQ9W1sicGF0aCIse2Q6Ik0yMCA0TDkgMTUifV0sWyJwYXRoIix7ZDoiTTIxIDE5TDMgMTkifV0sWyJwYXRoIix7ZDoiTTkgMTVMNCAxMCJ9XV0sRmV0PVtbInBhdGgiLHtkOiJNMTggNiA3IDE3bC01LTUifV0sWyJwYXRoIix7ZDoibTIyIDEwLTcuNSA3LjVMMTMgMTYifV1dLE9ldD1bWyJwYXRoIix7ZDoiTTE3IDIxYTEgMSAwIDAgMCAxLTF2LTUuMzVjMC0uNDU3LjMxNi0uODQ0LjcyNy0xLjA0MWE0IDQgMCAwIDAtMi4xMzQtNy41ODkgNSA1IDAgMCAwLTkuMTg2IDAgNCA0IDAgMCAwLTIuMTM0IDcuNTg4Yy40MTEuMTk4LjcyNy41ODUuNzI3IDEuMDQxVjIwYTEgMSAwIDAgMCAxIDFaIn1dLFsicGF0aCIse2Q6Ik02IDE3aDEyIn1dXSxSZXQ9W1sicGF0aCIse2Q6Ik0yIDE3YTUgNSAwIDAgMCAxMCAwYzAtMi43Ni0yLjUtNS01LTMtMi41LTItNSAuMjQtNSAzWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTdhNSA1IDAgMCAwIDEwIDBjMC0yLjc2LTIuNS01LTUtMy0yLjUtMi01IC4yNC01IDNaIn1dLFsicGF0aCIse2Q6Ik03IDE0YzMuMjItMi45MSA0LjI5LTguNzUgNS0xMiAxLjY2IDIuMzggNC45NCA5IDUgMTIifV0sWyJwYXRoIix7ZDoiTTIyIDljLTQuMjkgMC03LjE0LTIuMzMtMTAtNyA1LjcxIDAgMTAgNC42NyAxMCA3WiJ9XV0sQmV0PVtbInBhdGgiLHtkOiJNMjAgNiA5IDE3bC01LTUifV1dLEhldD1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xNSAxOGMxLjUtLjYxNSAzLTIuNDYxIDMtNC45MjNDMTggOC43NjkgMTQuNSA0LjQ2MiAxMiAyIDkuNSA0LjQ2MiA2IDguNzcgNiAxMy4wNzcgNiAxNS41MzkgNy41IDE3LjM4NSA5IDE4In1dLFsicGF0aCIse2Q6Im0xNiA3LTIuNSAyLjUifV0sWyJwYXRoIix7ZDoiTTkgMmg2In1dXSxxZXQ9W1sicGF0aCIse2Q6Ik00IDIwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtNi43IDE4LTEtMUM0LjM1IDE1LjY4MiAzIDE0LjA5IDMgMTJhNSA1IDAgMCAxIDQuOTUtNWMxLjU4NCAwIDIuNy40NTUgNC4wNSAxLjgxOEMxMy4zNSA3LjQ1NSAxNC40NjYgNyAxNi4wNSA3QTUgNSAwIDAgMSAyMSAxMmMwIDIuMDgyLTEuMzU5IDMuNjczLTIuNyA1bC0xIDEifV0sWyJwYXRoIix7ZDoiTTEwIDRoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY2LjgxOCJ9XV0sVmV0PVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTE0LjUgMTAgMS41IDgifV0sWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoibTggMTggMS41LTgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI2IixyOiI0In1dXSxqZXQ9W1sicGF0aCIse2Q6Ik00IDIwYTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtMTIuNDc0IDUuOTQzIDEuNTY3IDUuMzRhMSAxIDAgMCAwIDEuNzUuMzI4bDIuNjE2LTMuNDAyIn1dLFsicGF0aCIse2Q6Im0yMCA5LTMgOSJ9XSxbInBhdGgiLHtkOiJtNS41OTQgOC4yMDkgMi42MTUgMy40MDNhMSAxIDAgMCAwIDEuNzUtLjMyOWwxLjU2Ny01LjM0In1dLFsicGF0aCIse2Q6Ik03IDE4IDQgOSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiI3IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiI3IixyOiIyIn1dXSxVZXQ9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTYuNSAxOGMxLTIgMi41LTUgMi41LTlhNyA3IDAgMCAwLTctN0g2LjYzNWExIDEgMCAwIDAtLjc2OCAxLjY0TDcgNWwtMi4zMiA1LjgwMmEyIDIgMCAwIDAgLjk1IDIuNTI2bDIuODcgMS40NTYifV0sWyJwYXRoIix7ZDoibTE1IDUgMS40MjUtMS40MjUifV0sWyJwYXRoIix7ZDoibTE3IDggMS41My0xLjUzIn1dLFsicGF0aCIse2Q6Ik05LjcxMyAxMi4xODUgNyAxOCJ9XV0sV2V0PVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyIn1dLFsicGF0aCIse2Q6Im0xNyAxOC0xLTkifV0sWyJwYXRoIix7ZDoiTTYgMnY1YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjIifV0sWyJwYXRoIix7ZDoiTTYgNGgxMiJ9XSxbInBhdGgiLHtkOiJtNyAxOCAxLTkifV1dLEdldD1bWyJwYXRoIix7ZDoibTYgOSA2IDYgNi02In1dXSxZZXQ9W1sicGF0aCIse2Q6Im0xNyAxOC02LTYgNi02In1dLFsicGF0aCIse2Q6Ik03IDZ2MTIifV1dLFpldD1bWyJwYXRoIix7ZDoibTcgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJNMTcgNnYxMiJ9XV0sWGV0PVtbInBhdGgiLHtkOiJtMTUgMTgtNi02IDYtNiJ9XV0sS2V0PVtbInBhdGgiLHtkOiJtOSAxOCA2LTYtNi02In1dXSxRZXQ9W1sicGF0aCIse2Q6Im0xOCAxNS02LTYtNiA2In1dXSxKZXQ9W1sicGF0aCIse2Q6Im03IDIwIDUtNSA1IDUifV0sWyJwYXRoIix7ZDoibTcgNCA1IDUgNS01In1dXSxldHQ9W1sicGF0aCIse2Q6Im03IDYgNSA1IDUtNSJ9XSxbInBhdGgiLHtkOiJtNyAxMyA1IDUgNS01In1dXSx0dHQ9W1sicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTcgNyA1IDUtNSA1In1dLFsicGF0aCIse2Q6Im03IDctNSA1IDUgNSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV1dLGF0dD1bWyJwYXRoIix7ZDoibTkgNy01IDUgNSA1In1dLFsicGF0aCIse2Q6Im0xNSA3IDUgNS01IDUifV1dLGl0dD1bWyJwYXRoIix7ZDoibTExIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTE4IDE3LTUtNSA1LTUifV1dLHJ0dD1bWyJwYXRoIix7ZDoibTIwIDE3LTUtNSA1LTUifV0sWyJwYXRoIix7ZDoibTQgMTcgNS01LTUtNSJ9XV0sc3R0PVtbInBhdGgiLHtkOiJtNiAxNyA1LTUtNS01In1dLFsicGF0aCIse2Q6Im0xMyAxNyA1LTUtNS01In1dXSxudHQ9W1sicGF0aCIse2Q6Im0xNyAxMS01LTUtNSA1In1dLFsicGF0aCIse2Q6Im0xNyAxOC01LTUtNSA1In1dXSxVZz1bWyJwYXRoIix7ZDoiTTEwLjg4IDIxLjk0IDE1LjQ2IDE0In1dLFsicGF0aCIse2Q6Ik0yMS4xNyA4SDEyIn1dLFsicGF0aCIse2Q6Ik0zLjk1IDYuMDYgOC41NCAxNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXSxvdHQ9W1sicGF0aCIse2Q6Im03IDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoibTcgOSA1LTUgNSA1In1dXSxsdHQ9W1sicGF0aCIse2Q6Ik0xMiAxMkgzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDEzIn1dLFsicGF0aCIse2Q6Ik0xOCA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxMmExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLS41Ljg2NiJ9XSxbInBhdGgiLHtkOiJNMjIgOGMwLTIuNS0yLTIuNS0yLTUifV0sWyJwYXRoIix7ZDoiTTcgMTJ2NCJ9XV0sY3R0PVtbInBhdGgiLHtkOiJNMTAgOWg0In1dLFsicGF0aCIse2Q6Ik0xMiA3djUifV0sWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJtMTggOSAzLjUyIDIuMTQ3YTEgMSAwIDAgMSAuNDguODU0VjE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi02Ljk5OWExIDEgMCAwIDEgLjQ4LS44NTRMNiA5In1dLFsicGF0aCIse2Q6Ik02IDIxVjdhMSAxIDAgMCAxIC4zNzYtLjc4Mmw1LTMuOTk5YTEgMSAwIDAgMSAxLjI0OS4wMDFsNSA0QTEgMSAwIDAgMSAxOCA3djE0In1dXSxkdHQ9W1sicGF0aCIse2Q6Ik0xNyAxMkgzYTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDE0In1dLFsicGF0aCIse2Q6Ik0xOCA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXSxXZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxNiIseTI6IjE2In1dXSxHZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxMiA0IDQgNC00In1dXSxZZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTEyIDgtNCA0IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XV0sWmc9W1sicGF0aCIse2Q6Ik0yIDEyYTEwIDEwIDAgMSAxIDEwIDEwIn1dLFsicGF0aCIse2Q6Im0yIDIyIDEwLTEwIn1dLFsicGF0aCIse2Q6Ik04IDIySDJ2LTYifV1dLFhnPVtbInBhdGgiLHtkOiJNMTIgMjJhMTAgMTAgMCAxIDEgMTAtMTAifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDEyIDEyIn1dLFsicGF0aCIse2Q6Ik0yMiAxNnY2aC02In1dXSxLZz1bWyJwYXRoIix7ZDoiTTIgOFYyaDYifV0sWyJwYXRoIix7ZDoibTIgMiAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMkExMCAxMCAwIDEgMSAyIDEyIn1dXSxRZz1bWyJwYXRoIix7ZDoiTTIyIDEyQTEwIDEwIDAgMSAxIDEyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDIgMTIgMTIifV0sWyJwYXRoIix7ZDoiTTE2IDJoNnY2In1dXSxKZz1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTEyIDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV0sZWI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNiAxMi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAxNlY4In1dXSx0Yj1bWyJwYXRoIix7ZDoiTTIxLjgwMSAxMEExMCAxMCAwIDEgMSAxNyAzLjMzNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSAzIDNMMjIgNCJ9XV0sYWI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dLGliPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTYgMTAtNCA0LTQtNCJ9XV0scmI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNCAxNi00LTQgNC00In1dXSxzYj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTEwIDggNCA0LTQgNCJ9XV0sbmI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im04IDE0IDQtNCA0IDQifV1dLHB0dD1bWyJwYXRoIix7ZDoiTTEwLjEgMi4xODJhMTAgMTAgMCAwIDEgMy44IDAifV0sWyJwYXRoIix7ZDoiTTEzLjkgMjEuODE4YTEwIDEwIDAgMCAxLTMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xNy42MDkgMy43MjFhMTAgMTAgMCAwIDEgMi42OSAyLjcifV0sWyJwYXRoIix7ZDoiTTIuMTgyIDEzLjlhMTAgMTAgMCAwIDEgMC0zLjgifV0sWyJwYXRoIix7ZDoiTTIwLjI3OSAxNy42MDlhMTAgMTAgMCAwIDEtMi43IDIuNjkifV0sWyJwYXRoIix7ZDoiTTIxLjgxOCAxMC4xYTEwIDEwIDAgMCAxIDAgMy44In1dLFsicGF0aCIse2Q6Ik0zLjcyMSA2LjM5MWExMCAxMCAwIDAgMSAyLjctMi42OSJ9XSxbInBhdGgiLHtkOiJNNi4zOTEgMjAuMjc5YTEwIDEwIDAgMCAxLTIuNjktMi43In1dXSxvYj1bWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLGh0dD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XV0sdXR0PVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4YTkuOTMgOS45MyAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTcuNiAzLjcxYTkuOTUgOS45NSAwIDAgMSAyLjY5IDIuNyJ9XSxbInBhdGgiLHtkOiJNMjEuODIgMTAuMWE5LjkzIDkuOTMgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTIwLjI5IDE3LjZhOS45NSA5Ljk1IDAgMCAxLTIuNyAyLjY5In1dLFsicGF0aCIse2Q6Ik0xMy45IDIxLjgyYTkuOTQgOS45NCAwIDAgMS0zLjggMCJ9XSxbInBhdGgiLHtkOiJNNi40IDIwLjI5YTkuOTUgOS45NSAwIDAgMS0yLjY5LTIuNyJ9XSxbInBhdGgiLHtkOiJNMi4xOCAxMy45YTkuOTMgOS45MyAwIDAgMSAwLTMuOCJ9XSxbInBhdGgiLHtkOiJNMy43MSA2LjRhOS45NSA5Ljk1IDAgMCAxIDIuNy0yLjY5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dLGZ0dD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV0sbXR0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTcgMTJoLjAxIn1dXSxndHQ9W1sicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE0aDEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxidHQ9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoibTE2IDEyLTQtNC00IDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjgifV0sWyJwYXRoIix7ZDoiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIn1dLFsicGF0aCIse2Q6Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40In1dLFsicGF0aCIse2Q6Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcifV0sWyJwYXRoIix7ZDoiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCJ9XV0sdnR0PVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV0sWyJwYXRoIix7ZDoiTTIuNSA4Ljg3NWExMCAxMCAwIDAgMC0uNSAzIn1dLFsicGF0aCIse2Q6Ik0yLjgzIDE2YTEwIDEwIDAgMCAwIDIuNDMgMy40In1dLFsicGF0aCIse2Q6Ik00LjYzNiA1LjIzNWExMCAxMCAwIDAgMSAuODkxLS44NTcifV0sWyJwYXRoIix7ZDoiTTguNjQ0IDIxLjQyYTEwIDEwIDAgMCAwIDcuNjMxLS4zOCJ9XV0sbGI9W1sicGF0aCIse2Q6Ik0xNS42IDIuN2ExMCAxMCAwIDEgMCA1LjcgNS43In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEzLjQgMTAuNiAxOSA1In1dXSxjYj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV0sZGI9W1sicGF0aCIse2Q6Ik0xMi42NTYgN0gxM2EzIDMgMCAwIDEgMi45ODQgMy4zMDcifV0sWyJwYXRoIix7ZDoiTTEzIDEzSDkifV0sWyJwYXRoIix7ZDoiTTE5LjA3MSAxOS4wNzFBMSAxIDAgMCAxIDQuOTMgNC45MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjM1NyAyLjY4N2ExMCAxMCAwIDAgMSAxMi45NTYgMTIuOTU2In1dLFsicGF0aCIse2Q6Ik05IDE3VjkifV1dLHl0dD1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC4zNSAyLjY5QTEwIDEwIDAgMCAxIDIxLjMgMTUuNjUifV0sWyJwYXRoIix7ZDoiTTE5LjA4IDE5LjA4QTEwIDEwIDAgMSAxIDQuOTIgNC45MiJ9XV0scGI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik05IDE3VjdoNGEzIDMgMCAwIDEgMCA2SDkifV1dLGhiPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV0sdWI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXSxmYj1bWyJwYXRoIix7ZDoiTTkgOS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3QTEgMSAwIDAgMSA5IDE0Ljk5NnoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHh0dD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTIiLHI6IjIifV1dLG1iPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV1dLHd0dD1bWyJwYXRoIix7ZDoiTTEwIDE2VjkuNWExIDEgMCAwIDEgNSAwIn1dLFsicGF0aCIse2Q6Ik04IDEyaDQifV0sWyJwYXRoIix7ZDoiTTggMTZoNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sZ2I9W1sicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTcuOTk4IDkuMDAzYTUgNSAwIDEgMCA4LS4wMDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLGdsPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV0sYmI9W1sicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLE10dD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjE1Iix5MjoiOSJ9XV0senR0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dXSxrdHQ9W1sicGF0aCIse2Q6Ik0xMS4wNTEgNy42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjdsLTEuMTU2LTEuMTUyYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHZiPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInJlY3QiLHt4OiI5Iix5OiI5Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV0seWI9W1sicGF0aCIse2Q6Ik0xOCAyMGE2IDYgMCAwIDAtMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSx4Yj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMC42NjJWMTlhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MS42NjIifV1dLHdiPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dLFN0dD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLEN0dD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTEgOWg0YTIgMiAwIDAgMCAyLTJWMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNyAyMXYtNGEyIDIgMCAwIDEgMi0yaDQifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiMiJ9XV0sX3R0PVtbInBhdGgiLHtkOiJNMjEuNjYgMTcuNjdhMS4wOCAxLjA4IDAgMCAxLS4wNCAxLjZBMTIgMTIgMCAwIDEgNC43MyAyLjM4YTEuMSAxLjEgMCAwIDEgMS42MS0uMDR6In1dLFsicGF0aCIse2Q6Ik0xOS42NSAxNS42NkE4IDggMCAwIDEgOC4zNSA0LjM0In1dLFsicGF0aCIse2Q6Im0xNCAxMC01LjUgNS41In1dLFsicGF0aCIse2Q6Ik0xNCAxNy44NVYxMEg2LjE1In1dXSxUdHQ9W1sicGF0aCIse2Q6Ik0yMC4yIDYgMyAxMWwtLjktMi40Yy0uMy0xLjEuMy0yLjIgMS4zLTIuNWwxMy41LTRjMS4xLS4zIDIuMi4zIDIuNSAxLjNaIn1dLFsicGF0aCIse2Q6Im02LjIgNS4zIDMuMSAzLjkifV0sWyJwYXRoIix7ZDoibTEyLjQgMy40IDMuMSA0In1dLFsicGF0aCIse2Q6Ik0zIDExaDE4djhhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJaIn1dXSxMdHQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoibTkgMTQgMiAyIDQtNCJ9XV0sJHR0PVtbInBhdGgiLHtkOiJNMTYgMTR2Mi4ybDEuNiAxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYuODMyIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXSxBdHQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTIxIDE0SDExIn1dLFsicGF0aCIse2Q6Im0xNSAxMC00IDQgNCA0In1dXSxEdHQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTEyIDExaDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aDQifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV0sRXR0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDE0aDYifV1dLFB0dD1bWyJwYXRoIix7ZDoiTTExIDE0aDEwIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxLjM0NCJ9XSxbInBhdGgiLHtkOiJtMTcgMTggNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNOCA0SDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAxLjc5My0xLjExMyJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV0sTWI9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtLjUifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMS43MyAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aDEifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxMi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV0semI9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC01LjUifV0sWyJwYXRoIix7ZDoiTTQgMTMuNVY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTMuMzc4IDE1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXSxJdHQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTkgMTRoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2LTYifV1dLE50dD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNOSAxMnYtMWg2djEifV0sWyJwYXRoIix7ZDoiTTExIDE3aDIifV0sWyJwYXRoIix7ZDoiTTEyIDExdjYifV1dLEZ0dD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtMTUgMTEtNiA2In1dLFsicGF0aCIse2Q6Im05IDExIDYgNiJ9XV0sT3R0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDItNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sUnR0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dXSxCdHQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsLTQtMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sSHR0PVtbInBhdGgiLHtkOiJNMTIgNnY2bC0yLTQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHF0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2NiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sVnR0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQtMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sanR0PVtbInBhdGgiLHtkOiJNMTIgNnY2aDQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLFV0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLFd0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwyIDQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLEd0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2MTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLFl0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwtMiA0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxadHQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsLTQgMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sWHR0PVtbInBhdGgiLHtkOiJNMTIgNnY2SDgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLEt0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwyIDEifV0sWyJwYXRoIix7ZDoiTTEyLjMzNyAyMS45OTRhMTAgMTAgMCAxIDEgOS41ODgtOC43NjcifV0sWyJwYXRoIix7ZDoibTE0IDE4IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djgifV1dLFF0dD1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJwYXRoIix7ZDoiTTIwIDEydjUifV0sWyJwYXRoIix7ZDoiTTIwIDIxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEuMjUgOC4yQTEwIDEwIDAgMSAwIDE2IDIxLjE2In1dXSxKdHQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsMS41Ni43OCJ9XSxbInBhdGgiLHtkOiJNMTMuMjI3IDIxLjkyNWExMCAxMCAwIDEgMSA4Ljc2Ny05LjU4OCJ9XSxbInBhdGgiLHtkOiJtMTQgMTggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTggMjJ2LTgifV1dLGUxdD1bWyJwYXRoIix7ZDoiTTEyIDZ2Nmw0IDIifV0sWyJwYXRoIix7ZDoiTTIyIDEyYTEwIDEwIDAgMSAwLTExIDkuOTUifV0sWyJwYXRoIix7ZDoibTIyIDE2LTUuNSA1LjVMMTQgMTkifV1dLHQxdD1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXSxhMXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsMy42NDQgMS44MjIifV0sWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIxLjkyIDEzLjI2N2ExMCAxMCAwIDEgMC04LjY1MyA4LjY1MyJ9XV0saTF0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0scjF0PVtbInBhdGgiLHtkOiJNMTAgOS4xN2EzIDMgMCAxIDAgMCA1LjY2In1dLFsicGF0aCIse2Q6Ik0xNyA5LjE3YTMgMyAwIDEgMCAwIDUuNjYifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV0sczF0PVtbInBhdGgiLHtkOiJNMTIgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjEyOCAxNi45NDlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWExIDEgMCAwIDEgMCA5aC0xLjY0MiJ9XV0sbjF0PVtbInBhdGgiLHtkOiJNMjEgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNSA4aC0xLjc5QTcgNyAwIDEgMCAzIDEzLjYwNyJ9XSxbInBhdGgiLHtkOiJNNyAxMXY0aDQifV0sWyJwYXRoIix7ZDoiTTggMTlhNSA1IDAgMCAwIDktMyA0LjUgNC41IDAgMCAwLTQuNS00LjUgNC44MiA0LjgyIDAgMCAwLTMuNDEgMS40MUw3IDE1In1dXSxvMXQ9W1sicGF0aCIse2Q6Im0xNyAxNS01LjUgNS41TDkgMTgifV0sWyJwYXRoIix7ZDoiTTUuNTE2IDE2LjA3QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAzLjUwMSA3LjMyNyJ9XV0sbDF0PVtbInBhdGgiLHtkOiJtMTAuODUyIDE5Ljc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDE0LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE5Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuNTMgMjAuNjk2LS4zODItLjkyNGEzIDMgMCAxIDEtMi4yOTYtNS41NDQifV0sWyJwYXRoIix7ZDoibTE0Ljc3MiAxNS44NTIuOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE0Ljc3MiAxOC4xNDguOTIzLjM4MyJ9XSxbInBhdGgiLHtkOiJNNC4yIDE1LjFhNyA3IDAgMSAxIDkuOTMtOS44NThBNyA3IDAgMCAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjIifV0sWyJwYXRoIix7ZDoibTkuMjI4IDE1Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTkuMjI4IDE4LjE0OC0uOTIzLjM4MyJ9XV0sa2I9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4bC00LTQifV0sWyJwYXRoIix7ZDoibTEyIDIxIDQtNCJ9XSxbInBhdGgiLHtkOiJNNC4zOTMgMTUuMjY5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjQzNiA4LjI4NCJ9XV0sYzF0PVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNOCAxOXYxIn1dLFsicGF0aCIse2Q6Ik04IDE0djEifV0sWyJwYXRoIix7ZDoiTTE2IDE5djEifV0sWyJwYXRoIix7ZDoiTTE2IDE0djEifV0sWyJwYXRoIix7ZDoiTTEyIDIxdjEifV0sWyJwYXRoIix7ZDoiTTEyIDE2djEifV1dLGQxdD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDcifV0sWyJwYXRoIix7ZDoiTTE3IDIxSDkifV1dLHAxdD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTE2IDE0djIifV0sWyJwYXRoIix7ZDoiTTggMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJoLjAxIn1dXSxoMXQ9W1sicGF0aCIse2Q6Ik0xMSAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOC4zNzYgMTQuNTEyYTYgNiAwIDAgMCAzLjQ2MS00LjEyN2MuMTQ4LS42MjUtLjY1OS0uOTctMS4yNDgtLjcxNGE0IDQgMCAwIDEtNS4yNTktNS4yNmMuMjU1LS41ODktLjA5LTEuMzk1LS43MTYtMS4yNDhhNiA2IDAgMCAwLTQuNTk0IDUuMzYifV0sWyJwYXRoIix7ZDoiTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XV0sdTF0PVtbInBhdGgiLHtkOiJNNiAxNi4zMjZBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIC41IDguOTczIn1dLFsicGF0aCIse2Q6Im0xMyAxMi0zIDVoNGwtMyA1In1dXSxmMXQ9W1sicGF0aCIse2Q6Ik0xMyAxNmEzIDMgMCAwIDEgMCA2SDdhNSA1IDAgMSAxIDQuOS02eiJ9XSxbInBhdGgiLHtkOiJNMTguMzc2IDE0LjUxMmE2IDYgMCAwIDAgMy40NjEtNC4xMjdjLjE0OC0uNjI1LS42NTktLjk3LTEuMjQ4LS43MTRhNCA0IDAgMCAxLTUuMjU5LTUuMjZjLjI1NS0uNTg5LS4wOS0xLjM5NS0uNzE2LTEuMjQ4YTYgNiAwIDAgMC00LjU5NCA1LjM2In1dXSxtMXQ9W1sicGF0aCIse2Q6Ik0xMC45NCA1LjI3NEE3IDcgMCAwIDEgMTUuNzEgMTBoMS43OWE0LjUgNC41IDAgMCAxIDQuMjIyIDYuMDU3In1dLFsicGF0aCIse2Q6Ik0xOC43OTYgMTguODFBNC41IDQuNSAwIDAgMSAxNy41IDE5SDlBNyA3IDAgMCAxIDUuNzkgNS43OCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxnMXQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Im05LjIgMjIgMy03In1dLFsicGF0aCIse2Q6Im05IDEzLTMgNyJ9XSxbInBhdGgiLHtkOiJtMTcgMTMtMyA3In1dXSxiMXQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNHY2In1dLFsicGF0aCIse2Q6Ik04IDE0djYifV0sWyJwYXRoIix7ZDoiTTEyIDE2djYifV1dLHYxdD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTggMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTloLjAxIn1dXSx5MXQ9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0xNS45NDcgMTIuNjVhNCA0IDAgMCAwLTUuOTI1LTQuMTI4In1dLFsicGF0aCIse2Q6Ik0zIDIwYTUgNSAwIDEgMSA4LjktNEgxM2EzIDMgMCAwIDEgMiA1LjI0In1dLFsicGF0aCIse2Q6Ik0xMSAyMHYyIn1dLFsicGF0aCIse2Q6Ik03IDE5djIifV1dLHgxdD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTE1Ljk0NyAxMi42NWE0IDQgMCAwIDAtNS45MjUtNC4xMjgifV0sWyJwYXRoIix7ZDoiTTEzIDIySDdhNSA1IDAgMSAxIDQuOS02SDEzYTMgMyAwIDAgMSAwIDZaIn1dXSx3MXQ9W1sicGF0aCIse2Q6Im0xNyAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTE3IDIydi00aC00In1dLFsicGF0aCIse2Q6Ik0yMC45OTYgMTUuMjUxQTQuNSA0LjUgMCAwIDAgMTcuNDk1IDhoLTEuNzlhNyA3IDAgMSAwLTEyLjcwOSA1LjYwNyJ9XSxbInBhdGgiLHtkOiJNNyAxMHY0aDQifV0sWyJwYXRoIix7ZDoibTcgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dXSxTYj1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoibTggMTcgNC00IDQgNCJ9XV0sTTF0PVtbInBhdGgiLHtkOiJNMTcuNSAxOUg5YTcgNyAwIDEgMSA2LjcxLTloMS43OWE0LjUgNC41IDAgMSAxIDAgOVoifV1dLHoxdD1bWyJwYXRoIix7ZDoiTTE3LjUgMTJhMSAxIDAgMSAxIDAgOUg5LjAwNmE3IDcgMCAxIDEgNi43MDItOXoifV0sWyJwYXRoIix7ZDoiTTIxLjgzMiA5QTMgMyAwIDAgMCAxOSA3aC0yLjIwN2E1LjUgNS41IDAgMCAwLTEwLjcyLjYxIn1dXSxrMXQ9W1sicGF0aCIse2Q6Ik0xNi4xNyA3LjgzIDIgMjIifV0sWyJwYXRoIix7ZDoiTTQuMDIgMTJhMi44MjcgMi44MjcgMCAxIDEgMy44MS00LjE3QTIuODI3IDIuODI3IDAgMSAxIDEyIDQuMDJhMi44MjcgMi44MjcgMCAxIDEgNC4xNyAzLjgxQTIuODI3IDIuODI3IDAgMSAxIDE5Ljk4IDEyYTIuODI3IDIuODI3IDAgMSAxLTMuODEgNC4xN0EyLjgyNyAyLjgyNyAwIDEgMSAxMiAxOS45OGEyLjgyNyAyLjgyNyAwIDEgMS00LjE3LTMuODFBMSAxIDAgMSAxIDQgMTIifV0sWyJwYXRoIix7ZDoibTcuODMgNy44MyA4LjM0IDguMzQifV1dLFMxdD1bWyJwYXRoIix7ZDoiTTE3LjI4IDkuMDVhNS41IDUuNSAwIDEgMC0xMC41NiAwQTUuNSA1LjUgMCAxIDAgMTIgMTcuNjZhNS41IDUuNSAwIDEgMCA1LjI4LTguNloifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjY2TDEyIDIyIn1dXSxDYj1bWyJwYXRoIix7ZDoibTE4IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Im0xNC41IDQtNSAxNiJ9XV0sQzF0PVtbInBhdGgiLHtkOiJtMTYgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJtOCA2LTYgNiA2IDYifV1dLF8xdD1bWyJwb2x5Z29uIix7cG9pbnRzOiIxMiAyIDIyIDguNSAyMiAxNS41IDEyIDIyIDIgMTUuNSAyIDguNSAxMiAyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxNS41In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjIyIDguNSAxMiAxNS41IDIgOC41In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjIgMTUuNSAxMiA4LjUgMjIgMTUuNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI4LjUifV1dLFQxdD1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiI3LjUgNC4yMSAxMiA2LjgxIDE2LjUgNC4yMSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiI3LjUgMTkuNzkgNy41IDE0LjYgMyAxMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIyMSAxMiAxNi41IDE0LjYgMTYuNSAxOS43OSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI3IDYuOTYgMTIgMTIuMDEgMjAuNzMgNi45NiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyLjA4Iix5MjoiMTIifV1dLEwxdD1bWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNiA4YTEgMSAwIDAgMSAxIDF2OGE0IDQgMCAwIDEtNCA0SDdhNCA0IDAgMCAxLTQtNFY5YTEgMSAwIDAgMSAxLTFoMTRhNCA0IDAgMSAxIDAgOGgtMSJ9XSxbInBhdGgiLHtkOiJNNiAydjIifV1dLCQxdD1bWyJwYXRoIix7ZDoiTTExIDEwLjI3IDcgMy4zNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTMuNzMtNCA2LjkzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMmg4In1dLFsicGF0aCIse2Q6Im0xNyAyMC42Ni0xLTEuNzMifV0sWyJwYXRoIix7ZDoibTE3IDMuMzQtMSAxLjczIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoibTIwLjY2IDE3LTEuNzMtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNjYgNy0xLjczIDEifV0sWyJwYXRoIix7ZDoibTMuMzQgMTcgMS43My0xIn1dLFsicGF0aCIse2Q6Im0zLjM0IDcgMS43MyAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiOCJ9XV0sQTF0PVtbImNpcmNsZSIse2N4OiI4IixjeToiOCIscjoiNiJ9XSxbInBhdGgiLHtkOiJNMTguMDkgMTAuMzdBNiA2IDAgMSAxIDEwLjM0IDE4In1dLFsicGF0aCIse2Q6Ik03IDZoMXY0In1dLFsicGF0aCIse2Q6Im0xNi43MSAxMy44OC43LjcxLTIuODIgMi44MiJ9XV0sX2I9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV1dLGJsPVtbInBhdGgiLHtkOiJNMTAuNSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NS41In1dLFsicGF0aCIse2Q6Im0xNC4zIDE5LjYgMS0uNCJ9XSxbInBhdGgiLHtkOiJNMTUgM3Y3LjUifV0sWyJwYXRoIix7ZDoibTE1LjIgMTYuOS0uOS0uMyJ9XSxbInBhdGgiLHtkOiJtMTYuNiAyMS43LjMtLjkifV0sWyJwYXRoIix7ZDoibTE2LjggMTUuMy0uNC0xIn1dLFsicGF0aCIse2Q6Im0xOS4xIDE1LjIuMy0uOSJ9XSxbInBhdGgiLHtkOiJtMTkuNiAyMS43LS40LTEifV0sWyJwYXRoIix7ZDoibTIwLjcgMTYuOCAxLS40In1dLFsicGF0aCIse2Q6Im0yMS43IDE5LjQtLjktLjMifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXSxUYj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXSxEMXQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcuNSAzdjE4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNi41IDN2MTgifV1dLEUxdD1bWyJwYXRoIix7ZDoiTTE0IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoibTcgMTUgMyAzIn1dLFsicGF0aCIse2Q6Im03IDIxIDMtM0g1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XV0sUDF0PVtbInBhdGgiLHtkOiJNMTUgNnYxMmEzIDMgMCAxIDAgMy0zSDZhMyAzIDAgMSAwIDMgM1Y2YTMgMyAwIDEgMC0zIDNoMTJhMyAzIDAgMSAwLTMtMyJ9XV0sSTF0PVtbInBhdGgiLHtkOiJtMTYuMjQgNy43Ni0xLjgwNCA1LjQxMWEyIDIgMCAwIDEtMS4yNjUgMS4yNjVMNy43NiAxNi4yNGwxLjgwNC01LjQxMWEyIDIgMCAwIDEgMS4yNjUtMS4yNjV6In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxOMXQ9W1sicGF0aCIse2Q6Ik0xNS41MzYgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc2IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0bC0yLjM3Ny0yLjM3N2ExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTIuMjk3IDExLjI5M2ExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3N2ExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3N2ExIDEgMCAwIDAgMC0xLjQxNEw2LjA4OCA4LjkxNmExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTguOTE2IDE3LjkxMmExIDEgMCAwIDAgMCAxLjQxNWwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNWwtMi4zNzctMi4zNzZhMSAxIDAgMCAwLTEuNDE0IDB6In1dLFsicGF0aCIse2Q6Ik04LjkxNiA0LjY3NGExIDEgMCAwIDAgMCAxLjQxNGwyLjM3NyAyLjM3NmExIDEgMCAwIDAgMS40MTQgMGwyLjM3Ny0yLjM3NmExIDEgMCAwIDAgMC0xLjQxNGwtMi4zNzctMi4zNzdhMSAxIDAgMCAwLTEuNDE0IDB6In1dXSxGMXQ9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI4Iix4OiI1Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02IDE4aDIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aDYifV1dLE8xdD1bWyJwYXRoIix7ZDoiTTMgMjBhMSAxIDAgMCAxLTEtMXYtMWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxWiJ9XSxbInBhdGgiLHtkOiJNMjAgMTZhOCA4IDAgMSAwLTE2IDAifV0sWyJwYXRoIix7ZDoiTTEyIDR2NCJ9XSxbInBhdGgiLHtkOiJNMTAgNGg0In1dXSxSMXQ9W1sicGF0aCIse2Q6Im0yMC45IDE4LjU1LTgtMTUuOThhMSAxIDAgMCAwLTEuOCAwbC04IDE1Ljk4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjE5IixyeDoiOSIscnk6IjMifV1dLExiPVtbInBhdGgiLHtkOiJNMTYgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNy45MTUgMjJhNiA2IDAgMCAwLTEyIDAifV0sWyJwYXRoIix7ZDoiTTggMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sQjF0PVtbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiOCIscng6IjEifV0sWyJwYXRoIix7ZDoiTTE3IDE0djcifV0sWyJwYXRoIix7ZDoiTTcgMTR2NyJ9XSxbInBhdGgiLHtkOiJNMTcgM3YzIn1dLFsicGF0aCIse2Q6Ik03IDN2MyJ9XSxbInBhdGgiLHtkOiJNMTAgMTQgMi4zIDYuMyJ9XSxbInBhdGgiLHtkOiJtMTQgNiA3LjcgNy43In1dLFsicGF0aCIse2Q6Im04IDYgOCA4In1dXSxIMXQ9W1sicGF0aCIse2Q6Ik0xNiAydjIifV0sWyJwYXRoIix7ZDoiTTcgMjJ2LTJhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNOCAydjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiMyJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxxMXQ9W1sicGF0aCIse2Q6Ik0yMiA3LjdjMC0uNi0uNC0xLjItLjgtMS41bC02LjMtMy45YTEuNzIgMS43MiAwIDAgMC0xLjcgMGwtMTAuMyA2Yy0uNS4yLS45LjgtLjkgMS40djYuNmMwIC41LjQgMS4yLjggMS41bDYuMyAzLjlhMS43MiAxLjcyIDAgMCAwIDEuNyAwbDEwLjMtNmMuNS0uMy45LTEgLjktMS41WiJ9XSxbInBhdGgiLHtkOiJNMTAgMjEuOVYxNEwyLjEgOS4xIn1dLFsicGF0aCIse2Q6Im0xMCAxNCAxMS45LTYuOSJ9XSxbInBhdGgiLHtkOiJNMTQgMTkuOHYtOC4xIn1dLFsicGF0aCIse2Q6Ik0xOCAxNy41VjkuNCJ9XV0sVjF0PVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMCA0IDQgMCAwIDEtNS01IDQgNCAwIDAgMS01LTUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjV2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNS41di4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMSAxN3YuMDEifV0sWyJwYXRoIix7ZDoiTTcgMTR2LjAxIn1dXSxqMXQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGE2IDYgMCAwIDAgMC0xMnYxMnoifV1dLFUxdD1bWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTIwIDEydjhhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTgifV0sWyJwYXRoIix7ZDoibTQgOCAxNi00In1dLFsicGF0aCIse2Q6Im04Ljg2IDYuNzgtLjQ1LTEuODFhMiAyIDAgMCAxIDEuNDUtMi40M2wxLjk0LS40OGEyIDIgMCAwIDEgMi40MyAxLjQ2bC40NSAxLjgifV1dLFcxdD1bWyJwYXRoIix7ZDoibTEyIDE1IDIgMiA0LTQifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV0sRzF0PVtbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE1Iix5MjoiMTUifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV0sWTF0PVtbImxpbmUiLHt4MToiMTUiLHgyOiIxNSIseTE6IjEyIix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxNSIseTI6IjE1In1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dLFoxdD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxOCIseTI6IjEyIn1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dLFgxdD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxMiIseTI6IjE4In1dLFsibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTgiLHkyOiIxMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXSxLMXQ9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dLFExdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkuMTcgMTQuODNhNCA0IDAgMSAwIDAtNS42NiJ9XV0sSjF0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTQuODMgMTQuODNhNCA0IDAgMSAxIDAtNS42NiJ9XV0sZTJ0PVtbInBhdGgiLHtkOiJNMjAgNHY3YTQgNCAwIDAgMS00IDRINCJ9XSxbInBhdGgiLHtkOiJtOSAxMC01IDUgNSA1In1dXSx0MnQ9W1sicGF0aCIse2Q6Im0xNSAxMCA1IDUtNSA1In1dLFsicGF0aCIse2Q6Ik00IDR2N2E0IDQgMCAwIDAgNCA0aDEyIn1dXSxhMnQ9W1sicGF0aCIse2Q6Im0xNCAxNS01IDUtNS01In1dLFsicGF0aCIse2Q6Ik0yMCA0aC03YTQgNCAwIDAgMC00IDR2MTIifV1dLGkydD1bWyJwYXRoIix7ZDoiTTE0IDkgOSA0IDQgOSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBoLTdhNCA0IDAgMCAxLTQtNFY0In1dXSxyMnQ9W1sicGF0aCIse2Q6Im0xMCAxNSA1IDUgNS01In1dLFsicGF0aCIse2Q6Ik00IDRoN2E0IDQgMCAwIDEgNCA0djEyIn1dXSxzMnQ9W1sicGF0aCIse2Q6Im0xMCA5IDUtNSA1IDUifV0sWyJwYXRoIix7ZDoiTTQgMjBoN2E0IDQgMCAwIDAgNC00VjQifV1dLG4ydD1bWyJwYXRoIix7ZDoiTTIwIDIwdi03YTQgNCAwIDAgMC00LTRINCJ9XSxbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dXSxvMnQ9W1sicGF0aCIse2Q6Im0xNSAxNCA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik00IDIwdi03YTQgNCAwIDAgMSA0LTRoMTIifV1dLGwydD1bWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTcgMnYyIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMiA3aDIifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE3aDIifV0sWyJwYXRoIix7ZDoiTTIwIDdoMiJ9XSxbInBhdGgiLHtkOiJNNyAyMHYyIn1dLFsicGF0aCIse2Q6Ik03IDJ2MiJ9XSxbInJlY3QiLHt4OiI0Iix5OiI0Iix3aWR0aDoiMTYiLGhlaWdodDoiMTYiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjgiLHk6IjgiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXSxjMnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMCA5LjNhMi44IDIuOCAwIDAgMC0zLjUgMSAzLjEgMy4xIDAgMCAwIDAgMy40IDIuNyAyLjcgMCAwIDAgMy41IDEifV0sWyJwYXRoIix7ZDoiTTE3IDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMSJ9XV0sZDJ0PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiIyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIxMCIseTI6IjEwIn1dXSxwMnQ9W1sicGF0aCIse2Q6Ik0xMC4yIDE4SDQuNzc0YTEuNSAxLjUgMCAwIDEtMS4zNTItLjk3IDExIDExIDAgMCAxIC4xMzItNi40ODcifV0sWyJwYXRoIix7ZDoiTTE4IDEwLjJWNC43NzRhMS41IDEuNSAwIDAgMC0uOTctMS4zNTIgMTEgMTEgMCAwIDAtNi40ODYuMTMyIn1dLFsicGF0aCIse2Q6Ik0xOCA1YTQgMyAwIDAgMSA0IDMgMiAyIDAgMCAxLTIgMiAxMCAxMCAwIDAgMC01LjEzOSAxLjQyIn1dLFsicGF0aCIse2Q6Ik01IDE4YTMgNCAwIDAgMCAzIDQgMiAyIDAgMCAwIDItMiAxMCAxMCAwIDAgMSAxLjQyLTUuMTQifV0sWyJwYXRoIix7ZDoiTTguNzA5IDIuNTU0YTEwIDEwIDAgMCAwLTYuMTU1IDYuMTU1IDEuNSAxLjUgMCAwIDAgLjY3NiAxLjYyNmw5LjgwNyA1LjQyYTIgMiAwIDAgMCAyLjcxOC0yLjcxOGwtNS40Mi05LjgwN2ExLjUgMS41IDAgMCAwLTEuNjI2LS42NzYifV1dLGgydD1bWyJwYXRoIix7ZDoiTTYgMnYxNGEyIDIgMCAwIDAgMiAyaDE0In1dLFsicGF0aCIse2Q6Ik0xOCAyMlY4YTIgMiAwIDAgMC0yLTJIMiJ9XV0sdTJ0PVtbInBhdGgiLHtkOiJNNCA5YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDRhMSAxIDAgMCAxIDEgMXY0YTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi00YTEgMSAwIDAgMSAxLTFoNGEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTRhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0YTEgMSAwIDAgMS0xIDF6In1dXSxmMnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiIyMiIseDI6IjE4Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjIiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiNiIseTI6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjE4In1dXSxtMnQ9W1sicGF0aCIse2Q6Ik0xMS41NjIgMy4yNjZhLjUuNSAwIDAgMSAuODc2IDBMMTUuMzkgOC44N2ExIDEgMCAwIDAgMS41MTYuMjk0TDIxLjE4MyA1LjVhLjUuNSAwIDAgMSAuNzk4LjUxOWwtMi44MzQgMTAuMjQ2YTEgMSAwIDAgMS0uOTU2LjczNEg1LjgxYTEgMSAwIDAgMS0uOTU3LS43MzRMMi4wMiA2LjAyYS41LjUgMCAwIDEgLjc5OC0uNTE5bDQuMjc2IDMuNjY0YTEgMSAwIDAgMCAxLjUxNi0uMjk0eiJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV0sZzJ0PVtbInBhdGgiLHtkOiJtMjEuMTIgNi40LTYuMDUtNC4wNmEyIDIgMCAwIDAtMi4xNy0uMDVMMi45NSA4LjQxYTIgMiAwIDAgMC0uOTUgMS43djUuODJhMiAyIDAgMCAwIC44OCAxLjY2bDYuMDUgNC4wN2EyIDIgMCAwIDAgMi4xNy4wNWw5Ljk1LTYuMTJhMiAyIDAgMCAwIC45NS0xLjdWOC4wNmEyIDIgMCAwIDAtLjg4LTEuNjZaIn1dLFsicGF0aCIse2Q6Ik0xMCAyMnYtOEwyLjI1IDkuMTUifV0sWyJwYXRoIix7ZDoibTEwIDE0IDExLjc3LTYuODcifV1dLGIydD1bWyJwYXRoIix7ZDoibTYgOCAxLjc1IDEyLjI4YTIgMiAwIDAgMCAyIDEuNzJoNC41NGEyIDIgMCAwIDAgMi0xLjcyTDE4IDgifV0sWyJwYXRoIix7ZDoiTTUgOGgxNCJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3IDYuNDcgMCAwIDEgNSAwIDYuNDcgNi40NyAwIDAgMCA1IDAifV0sWyJwYXRoIix7ZDoibTEyIDggMS02aDIifV1dLHYydD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDE4IDBWNSJ9XV0seTJ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dLFsibGluZSIse3gxOiIzIix4MjoiNiIseTE6IjMiLHkyOiI2In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE4Iix5MToiMyIseTI6IjYifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI2Iix5MToiMjEiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxOCIseTE6IjIxIix5MjoiMTgifV1dLHgydD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgMyAwIDAgMCA1IDIuNjkifV0sWyJwYXRoIix7ZDoiTTIxIDkuM1Y1In1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDYuNDcgMi44OCJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NGg0In1dLFsicGF0aCIse2Q6Ik0xMyAyMGE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNWMtMS4zMyAwLTIuNTQuNTQtMy40MSAxLjQxTDEyIDE2In1dXSx3MnQ9W1sicGF0aCIse2Q6Ik0xMSAxMS4zMWMxLjE3LjU2IDEuNTQgMS42OSAzLjUgMS42OSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTExLjc1IDE4Yy4zNS41IDEuNDUgMSAyLjc1IDEgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNNyAzYTEgMSAwIDAgMC0xIDF2MTZhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDAgMCAxLTFMMTAgNGExIDEgMCAwIDAtMS0xeiJ9XV0sTTJ0PVtbInBhdGgiLHtkOiJNMjEgMTEuNjkzVjUifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuODc1LTEuODc1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgMyAwIDAgMCA4LjY5NyAyLjk5OCJ9XSxbInBhdGgiLHtkOiJNMyA1djE0YTkgMyAwIDAgMCA5LjI4IDIuOTk5In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dXSx6MnQ9W1siZWxsaXBzZSIse2N4OiIxMiIsY3k6IjUiLHJ4OiI5IixyeToiMyJ9XSxbInBhdGgiLHtkOiJNMyA1VjE5QTkgMyAwIDAgMCAxNSAyMS44NCJ9XSxbInBhdGgiLHtkOiJNMjEgNVY4In1dLFsicGF0aCIse2Q6Ik0yMSAxMkwxOCAxN0gyMkwxOSAyMiJ9XSxbInBhdGgiLHtkOiJNMyAxMkE5IDMgMCAwIDAgMTQuNTkgMTQuODcifV1dLGsydD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDVWMTlBOSAzIDAgMCAwIDIxIDE5VjUifV0sWyJwYXRoIix7ZDoiTTMgMTJBOSAzIDAgMCAwIDIxIDEyIn1dXSxTMnQ9W1sicGF0aCIse2Q6Im0xMyAyMS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0yMCAxOEgxMCJ9XSxbInBhdGgiLHtkOiJNMyAxMWguMDEifV0sWyJyZWN0Iix7eDoiNiIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiOCIscng6IjIuNSJ9XV0sQzJ0PVtbInBhdGgiLHtkOiJNMTAgMThoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxIDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTMgMTFoLjAxIn1dLFsicmVjdCIse3g6IjE1Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dLFsicmVjdCIse3g6IjYiLHk6IjMiLHdpZHRoOiI1IixoZWlnaHQ6IjgiLHJ4OiIyLjUifV1dLF8ydD1bWyJwYXRoIix7ZDoiTTEwIDVhMiAyIDAgMCAwLTEuMzQ0LjUxOWwtNi4zMjggNS43NGExIDEgMCAwIDAgMCAxLjQ4MWw2LjMyOCA1Ljc0MUEyIDIgMCAwIDAgMTAgMTloMTBhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJ6In1dLFsicGF0aCIse2Q6Im0xMiA5IDYgNiJ9XSxbInBhdGgiLHtkOiJtMTggOS02IDYifV1dLFQydD1bWyJwYXRoIix7ZDoiTTEwLjE2MiAzLjE2N0ExMCAxMCAwIDAgMCAyIDEzYTIgMiAwIDAgMCA0IDB2LTFhMiAyIDAgMCAxIDQgMHY0YTIgMiAwIDAgMCA0IDB2LTRhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMCA0LS4wMDYgMTAgMTAgMCAwIDAtOC4xNjEtOS44MjYifV0sWyJwYXRoIix7ZDoiTTIwLjgwNCAxNC44NjlhOSA5IDAgMCAxLTE3LjYwOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNCIscjoiMiJ9XV0sTDJ0PVtbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIyIn1dLFsicGF0aCIse2Q6Ik02LjQ4IDMuNjZhMTAgMTAgMCAwIDEgMTMuODYgMTMuODYifV0sWyJwYXRoIix7ZDoibTYuNDEgNi40MSAxMS4xOCAxMS4xOCJ9XSxbInBhdGgiLHtkOiJNMy42NiA2LjQ4YTEwIDEwIDAgMCAwIDEzLjg2IDEzLjg2In1dXSwkMnQ9W1sicGF0aCIse2Q6Ik0yLjcgMTAuM2EyLjQxIDIuNDEgMCAwIDAgMCAzLjQxbDcuNTkgNy41OWEyLjQxIDIuNDEgMCAwIDAgMy40MSAwbDcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAgMC0zLjQxTDEzLjcgMi43MWEyLjQxIDIuNDEgMCAwIDAtMy40MSAweiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXSwkYj1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dLFsicGF0aCIse2Q6Ik05LjIgOS4yaC4wMSJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Ik0xNC43IDE0LjhoLjAxIn1dXSxBMnQ9W1sicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDB6In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dLEQydD1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFsLTcuNTktNy41OWEyLjQxIDIuNDEgMCAwIDAtMy40MSAwWiJ9XV0sRTJ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXSxQMnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNOSAxNWguMDEifV1dLEkydD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXSxOMnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XV0sRjJ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV0sTzJ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dLFIydD1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjEyIix4OiIyIix5OiIxMCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Im0xNy45MiAxNCAzLjUtMy41YTIuMjQgMi4yNCAwIDAgMCAwLTNsLTUtNC45MmEyLjI0IDIuMjQgMCAwIDAtMyAwTDEwIDYifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA5aC4wMSJ9XV0sQjJ0PVtbInBhdGgiLHtkOiJNMTIgM3YxNCJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV0sSDJ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dLHEydD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTYgMTJjMC0xLjcuNy0zLjIgMS44LTQuMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmMwIDEuNy0uNyAzLjItMS44IDQuMiJ9XV0sVjJ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV0sajJ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXSxVMnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIxIn1dXSxXMnQ9W1sicGF0aCIse2Q6Ik0xNSAyYy0xLjM1IDEuNS0yLjA5MiAzLTIuNSA0LjVMMTQgOCJ9XSxbInBhdGgiLHtkOiJtMTcgNi0yLjg5MS0yLjg5MSJ9XSxbInBhdGgiLHtkOiJNMiAxNWMzLjMzMy0zIDYuNjY3LTMgMTAtMyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im0yMCA5IC44OTEuODkxIn1dLFsicGF0aCIse2Q6Ik0yMiA5Yy0xLjUgMS4zNS0zIDIuMDkyLTQuNSAyLjVsLTEtMSJ9XSxbInBhdGgiLHtkOiJNMy4xMDkgMTQuMTA5IDQgMTUifV0sWyJwYXRoIix7ZDoibTYuNSAxMi41IDEgMSJ9XSxbInBhdGgiLHtkOiJtNyAxOCAyLjg5MSAyLjg5MSJ9XSxbInBhdGgiLHtkOiJNOSAyMmMxLjM1LTEuNSAyLjA5Mi0zIDIuNS00LjVMMTAgMTYifV1dLEcydD1bWyJwYXRoIix7ZDoibTEwIDE2IDEuNSAxLjUifV0sWyJwYXRoIix7ZDoibTE0IDgtMS41LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTUgMmMtMS43OTggMS45OTgtMi41MTggMy45OTUtMi44MDcgNS45OTMifV0sWyJwYXRoIix7ZDoibTE2LjUgMTAuNSAxIDEifV0sWyJwYXRoIix7ZDoibTE3IDYtMi44OTEtMi44OTEifV0sWyJwYXRoIix7ZDoiTTIgMTVjNi42NjctNiAxMy4zMzMgMCAyMC02In1dLFsicGF0aCIse2Q6Im0yMCA5IC44OTEuODkxIn1dLFsicGF0aCIse2Q6Ik0zLjEwOSAxNC4xMDkgNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi41IDEyLjUgMSAxIn1dLFsicGF0aCIse2Q6Im03IDE4IDIuODkxIDIuODkxIn1dLFsicGF0aCIse2Q6Ik05IDIyYzEuNzk4LTEuOTk4IDIuNTE4LTMuOTk1IDIuODA3LTUuOTkzIn1dXSxZMnQ9W1sicGF0aCIse2Q6Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxNHYuNSJ9XSxbInBhdGgiLHtkOiJNNC40MiAxMS4yNDdBMTMuMTUyIDEzLjE1MiAwIDAgMCA0IDE0LjU1NkM0IDE4LjcyOCA3LjU4MiAyMSAxMiAyMXM4LTIuMjcyIDgtNi40NDRhMTEuNzAyIDExLjcwMiAwIDAgMC0uNDkzLTMuMzA5In1dLFsicGF0aCIse2Q6Ik04IDE0di41In1dLFsicGF0aCIse2Q6Ik04LjUgOC41Yy0uMzg0IDEuMDUtMS4wODMgMi4wMjgtMi4zNDQgMi41LTEuOTMxLjcyMi0zLjU3Ni0uMjk3LTMuNjU2LTEtLjExMy0uOTk0IDEuMTc3LTYuNTMgNC03IDEuOTIzLS4zMjEgMy42NTEuODQ1IDMuNjUxIDIuMjM1QTcuNDk3IDcuNDk3IDAgMCAxIDE0IDUuMjc3YzAtMS4zOSAxLjg0NC0yLjU5OCAzLjc2Ny0yLjI3NyAyLjgyMy40NyA0LjExMyA2LjAwNiA0IDctLjA4LjcwMy0xLjcyNSAxLjcyMi0zLjY1NiAxLTEuMjYxLS40NzItMS44NTUtMS40NS0yLjIzOS0yLjUifV1dLFoydD1bWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiMjIifV0sWyJwYXRoIix7ZDoiTTE3IDVIOS41YTMuNSAzLjUgMCAwIDAgMCA3aDVhMy41IDMuNSAwIDAgMSAwIDdINiJ9XV0sWDJ0PVtbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMTZoMTIifV1dLEsydD1bWyJwYXRoIix7ZDoiTTIwLjUgMTBhMi41IDIuNSAwIDAgMS0yLjQtM0gxOGEyLjk1IDIuOTUgMCAwIDEtMi42LTQuNCAxMCAxMCAwIDEgMCA2LjMgNy4xYy0uMy4yLS44LjMtMS4yLjMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV0sUTJ0PVtbInBhdGgiLHtkOiJNMTAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA5VjZhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTQifV0sWyJwYXRoIix7ZDoiTTIgMjBoOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIn1dLFsicmVjdCIse3g6IjE0Iix5OiIxNyIsd2lkdGg6IjgiLGhlaWdodDoiNSIscng6IjEifV1dLEoydD1bWyJwYXRoIix7ZDoiTTEwIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggMjBWNmEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XV0sZWF0PVtbInBhdGgiLHtkOiJNMTEgMjBIMiJ9XSxbInBhdGgiLHtkOiJNMTEgNC41NjJ2MTYuMTU3YTEgMSAwIDAgMCAxLjI0Mi45N0wxOSAyMFY1LjU2MmEyIDIgMCAwIDAtMS41MTUtMS45NGwtNC0xQTIgMiAwIDAgMCAxMSA0LjU2MXoifV0sWyJwYXRoIix7ZDoiTTExIDRIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDIwaC0zIn1dXSx0YXQ9W1siY2lyY2xlIix7Y3g6IjEyLjEiLGN5OiIxMi4xIixyOiIxIn1dXSxhYXQ9W1sicGF0aCIse2Q6Ik0xMiAxNVYzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00In1dLFsicGF0aCIse2Q6Im03IDEwIDUgNSA1LTUifV1dLGlhdD1bWyJwYXRoIix7ZDoibTEyLjk5IDYuNzQgMS45MyAzLjQ0In1dLFsicGF0aCIse2Q6Ik0xOS4xMzYgMTJhMTAgMTAgMCAwIDEtMTQuMjcxIDAifV0sWyJwYXRoIix7ZDoibTIxIDIxLTIuMTYtMy44NCJ9XSxbInBhdGgiLHtkOiJtMyAyMSA4LjAyLTE0LjI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XV0scmF0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTkuMTMgNS4wOUMxNS4yMiA5LjE0IDEwIDEwLjQ0IDIuMjUgMTAuOTQifV0sWyJwYXRoIix7ZDoiTTIxLjc1IDEyLjg0Yy02LjYyLTEuNDEtMTIuMTQgMS0xNi4zOCA2LjMyIn1dLFsicGF0aCIse2Q6Ik04LjU2IDIuNzVjNC4zNyA2IDYgOS40MiA4IDE3LjcyIn1dXSxzYXQ9W1sicGF0aCIse2Q6Ik0xMCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNNi41IDEzLjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiA1YzAgOS00IDEyLTYgMTJzLTYtMy02LTEyYzAtMiAyLTMgNi0zczYgMSA2IDMifV0sWyJwYXRoIix7ZDoiTTE3LjQgOS45Yy0uOC44LTIgLjgtMi44IDAifV0sWyJwYXRoIix7ZDoiTTEwLjEgNy4xQzkgNy4yIDcuNyA3LjcgNiA4LjZjLTMuNSAyLTQuNyAzLjktMy43IDUuNiA0LjUgNy44IDkuNSA4LjQgMTEuMiA3LjQuOS0uNSAxLjktMi4xIDEuOS00LjcifV0sWyJwYXRoIix7ZDoiTTkuMSAxNi41Yy4zLTEuMSAxLjQtMS43IDIuNC0xLjQifV1dLG5hdD1bWyJwYXRoIix7ZDoiTTEwIDE4YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxSDVhMyAzIDAgMCAxLTMtMyAxIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTMgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTEgMSAwIDAgMSAxIDF2NmExIDEgMCAwIDEtMSAxbC0uODEgMy4yNDJhMSAxIDAgMCAxLS45Ny43NThIOCJ9XSxbInBhdGgiLHtkOiJNMTQgNGgzYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik0xOCA2aDQifV0sWyJwYXRoIix7ZDoibTUgMTAtMiA4In1dLFsicGF0aCIse2Q6Im03IDE4IDItOCJ9XV0sb2F0PVtbInBhdGgiLHtkOiJNMTAgMTAgNyA3In1dLFsicGF0aCIse2Q6Im0xMCAxNC0zIDMifV0sWyJwYXRoIix7ZDoibTE0IDEwIDMtMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTQgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNC4yMDUgNC4xMzlhNCA0IDAgMSAxIDUuNDM5IDUuODYzIn1dLFsicGF0aCIse2Q6Ik0xOS42MzcgMTRhNCA0IDAgMSAxLTUuNDMyIDUuODY4In1dLFsicGF0aCIse2Q6Ik00LjM2NyAxMGE0IDQgMCAxIDEgNS40MzgtNS44NjIifV0sWyJwYXRoIix7ZDoiTTkuNzk1IDE5Ljg2MmE0IDQgMCAxIDEtNS40MjktNS44NzMifV0sWyJyZWN0Iix7eDoiMTAiLHk6IjgiLHdpZHRoOiI0IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXSxsYXQ9W1sicGF0aCIse2Q6Ik0xOC43MTUgMTMuMTg2QzE4LjI5IDExLjg1OCAxNy4zODQgMTAuNjA3IDE2IDkuNWMtMi0xLjYtMy41LTQtNC02LjVhMTAuNyAxMC43IDAgMCAxLS44ODQgMi41ODYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC43OTUgOC43OTdBMTEgMTEgMCAwIDEgOCA5LjVDNiAxMS4xIDUgMTMgNSAxNWE3IDcgMCAwIDAgMTMuMjIyIDMuMjA4In1dXSxjYXQ9W1sicGF0aCIse2Q6Ik0xMiAyMmE3IDcgMCAwIDAgNy03YzAtMi0xLTMuOS0zLTUuNXMtMy41LTQtNC02LjVjLS41IDIuNS0yIDQuOS00IDYuNUM2IDExLjEgNSAxMyA1IDE1YTcgNyAwIDAgMCA3IDd6In1dXSxkYXQ9W1sicGF0aCIse2Q6Ik03IDE2LjNjMi4yIDAgNC0xLjgzIDQtNC4wNSAwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5UzcuMjkgNi43NSA3IDUuM2MtLjI5IDEuNDUtMS4xNCAyLjg0LTIuMjkgMy43NlMzIDExLjEgMyAxMi4yNWMwIDIuMjIgMS44IDQuMDUgNCA0LjA1eiJ9XSxbInBhdGgiLHtkOiJNMTIuNTYgNi42QTEwLjk3IDEwLjk3IDAgMCAwIDE0IDMuMDJjLjUgMi41IDIgNC45IDQgNi41czMgMy41IDMgNS41YTYuOTggNi45OCAwIDAgMS0xMS45MSA0Ljk3In1dXSxwYXQ9W1sicGF0aCIse2Q6Im0yIDIgOCA4In1dLFsicGF0aCIse2Q6Im0yMiAyLTggOCJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI5IixyeDoiMTAiLHJ5OiI1In1dLFsicGF0aCIse2Q6Ik03IDEzLjR2Ny45In1dLFsicGF0aCIse2Q6Ik0xMiAxNHY4In1dLFsicGF0aCIse2Q6Ik0xNyAxMy40djcuOSJ9XSxbInBhdGgiLHtkOiJNMiA5djhhMTAgNSAwIDAgMCAyMCAwVjkifV1dLGhhdD1bWyJwYXRoIix7ZDoiTTE1LjQgMTUuNjNhNy44NzUgNiAxMzUgMSAxIDYuMjMtNi4yMyA0LjUgMy40MyAxMzUgMCAwLTYuMjMgNi4yMyJ9XSxbInBhdGgiLHtkOiJtOC4yOSAxMi43MS0yLjYgMi42YTIuNSAyLjUgMCAxIDAtMS42NSA0LjY1QTIuNSAyLjUgMCAxIDAgOC43IDE4LjNsMi41OS0yLjU5In1dXSx1YXQ9W1sicGF0aCIse2Q6Ik0xNy41OTYgMTIuNzY4YTIgMiAwIDEgMCAyLjgyOS0yLjgyOWwtMS43NjgtMS43NjdhMiAyIDAgMCAwIDIuODI4LTIuODI5bC0yLjgyOC0yLjgyOGEyIDIgMCAwIDAtMi44MjkgMi44MjhsLTEuNzY3LTEuNzY4YTIgMiAwIDEgMC0yLjgyOSAyLjgyOXoifV0sWyJwYXRoIix7ZDoibTIuNSAyMS41IDEuNC0xLjQifV0sWyJwYXRoIix7ZDoibTIwLjEgMy45IDEuNC0xLjQifV0sWyJwYXRoIix7ZDoiTTUuMzQzIDIxLjQ4NWEyIDIgMCAxIDAgMi44MjktMi44MjhsMS43NjcgMS43NjhhMiAyIDAgMSAwIDIuODI5LTIuODI5bC02LjM2NC02LjM2NGEyIDIgMCAxIDAtMi44MjkgMi44MjlsMS43NjggMS43NjdhMiAyIDAgMCAwLTIuODI4IDIuODI5eiJ9XSxbInBhdGgiLHtkOiJtOS42IDE0LjQgNC44LTQuOCJ9XV0sZmF0PVtbInBhdGgiLHtkOiJNNiAxOC41YTMuNSAzLjUgMCAxIDAgNyAwYzAtMS41Ny45Mi0yLjUyIDIuMDQtMy40NiJ9XSxbInBhdGgiLHtkOiJNNiA4LjVjMC0uNzUuMTMtMS40Ny4zNi0yLjE0In1dLFsicGF0aCIse2Q6Ik04LjggMy4xNUE2LjUgNi41IDAgMCAxIDE5IDguNWMwIDEuNjMtLjQ0IDIuODEtMS4wOSAzLjc2In1dLFsicGF0aCIse2Q6Ik0xMi41IDZBMi41IDIuNSAwIDAgMSAxNSA4LjVNMTAgMTNhMiAyIDAgMCAwIDEuODItMS4xOCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxtYXQ9W1sicGF0aCIse2Q6Ik03IDMuMzRWNWEzIDMgMCAwIDAgMyAzIn1dLFsicGF0aCIse2Q6Ik0xMSAyMS45NVYxOGEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMS0yLTJ2LTFhMiAyIDAgMCAwLTItMkgyLjA1In1dLFsicGF0aCIse2Q6Ik0yMS41NCAxNUgxN2EyIDIgMCAwIDAtMiAydjQuNTQifV0sWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAxIDAgOS41NCAxMyJ9XSxbInBhdGgiLHtkOiJNMjAgNlY0YTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiNiIscng6IjEifV1dLGdhdD1bWyJwYXRoIix7ZDoiTTYgOC41YTYuNSA2LjUgMCAxIDEgMTMgMGMwIDYtNiA2LTYgMTBhMy41IDMuNSAwIDEgMS03IDAifV0sWyJwYXRoIix7ZDoiTTE1IDguNWEyLjUgMi41IDAgMCAwLTUgMHYxYTIgMiAwIDEgMSAwIDQifV1dLEFiPVtbInBhdGgiLHtkOiJNMjEuNTQgMTVIMTdhMiAyIDAgMCAwLTIgMnY0LjU0In1dLFsicGF0aCIse2Q6Ik03IDMuMzRWNWEzIDMgMCAwIDAgMyAzYTIgMiAwIDAgMSAyIDJjMCAxLjEuOSAyIDIgMmEyIDIgMCAwIDAgMi0yYzAtMS4xLjktMiAyLTJoMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjEuOTVWMThhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDEtMi0ydi0xYTIgMiAwIDAgMC0yLTJIMi4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sYmF0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMmE3IDcgMCAxIDAgMTAgMTAifV1dLHZhdD1bWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XSxbInBhdGgiLHtkOiJNMyA4YzAtMy41IDIuNS02IDYuNS02IDUgMCA0LjgzIDMgNy41IDVzNSAyIDUgNmMwIDQuNS0yLjUgNi41LTcgNi41LTIuNSAwLTIuNSAyLjUtNiAyLjVzLTctMi03LTUuNWMwLTMgMS41LTMgMS41LTVDMy41IDEwIDMgOSAzIDhaIn1dXSx5YXQ9W1sicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjM0N1YxNGMwLTYtNC0xMi04LTEyLTEuMDc4IDAtMi4xNTcuNDM2LTMuMTU3IDEuMTkifV0sWyJwYXRoIix7ZDoiTTYuMjA2IDYuMjFDNC44NzEgOC40IDQgMTEuMiA0IDE0YTggOCAwIDAgMCAxNC41NjggNC41NjgifV1dLHhhdD1bWyJwYXRoIix7ZDoiTTEyIDJDOCAyIDQgOCA0IDE0YTggOCAwIDAgMCAxNiAwYzAtNi00LTEyLTgtMTIifV1dLERiPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIxIn1dXSxFYj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxMiIscjoiMSJ9XV0sd2F0PVtbInBhdGgiLHtkOiJNNSAxNWE2LjUgNi41IDAgMCAxIDcgMCA2LjUgNi41IDAgMCAwIDcgMCJ9XSxbInBhdGgiLHtkOiJNNSA5YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwIn1dXSxNYXQ9W1sibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTUiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiI1Iix5MToiNSIseTI6IjE5In1dXSx6YXQ9W1sibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjE5Iix5MToiMTUiLHkyOiIxNSJ9XV0sa2F0PVtbInBhdGgiLHtkOiJtMTUgMjAgMy0zaDJhMiAyIDAgMCAwIDItMlY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjlhMiAyIDAgMCAwIDIgMmgybDMgM3oifV0sWyJwYXRoIix7ZDoiTTYgOHYxIn1dLFsicGF0aCIse2Q6Ik0xMCA4djEifV0sWyJwYXRoIix7ZDoiTTE0IDh2MSJ9XSxbInBhdGgiLHtkOiJNMTggOHYxIn1dXSxTYXQ9W1sicGF0aCIse2Q6Ik0yMSAyMUg4YTIgMiAwIDAgMS0xLjQyLS41ODdsLTMuOTk0LTMuOTk5YTIgMiAwIDAgMSAwLTIuODI4bDEwLTEwYTIgMiAwIDAgMSAyLjgyOSAwbDUuOTk5IDZhMiAyIDAgMCAxIDAgMi44MjhMMTIuODM0IDIxIn1dLFsicGF0aCIse2Q6Im01LjA4MiAxMS4wOSA4LjgyOCA4LjgyOCJ9XV0sQ2F0PVtbInBhdGgiLHtkOiJNNCAxMGgxMiJ9XSxbInBhdGgiLHtkOiJNNCAxNGg5In1dLFsicGF0aCIse2Q6Ik0xOSA2YTcuNyA3LjcgMCAwIDAtNS4yLTJBNy45IDcuOSAwIDAgMCA2IDEyYzAgNC40IDMuNSA4IDcuOCA4IDIgMCAzLjgtLjggNS4yLTIifV1dLF9hdD1bWyJwYXRoIix7ZDoiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1In1dLFsicGF0aCIse2Q6Ik0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDdoMTEifV0sWyJwYXRoIix7ZDoibTkgMTEtMiAzaDNsLTIgMyJ9XV0sVGF0PVtbInBhdGgiLHtkOiJtMTUgMTUgNiA2In1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dLFsicGF0aCIse2Q6Ik0zIDE2djVoNSJ9XSxbInBhdGgiLHtkOiJtMyAyMSA2LTYifV0sWyJwYXRoIix7ZDoiTTMgOFYzaDUifV0sWyJwYXRoIix7ZDoiTTkgOSAzIDMifV1dLExhdD1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyMSAzIn1dLFsicGF0aCIse2Q6Ik0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2In1dXSwkYXQ9W1sicGF0aCIse2Q6Im0xNSAxOC0uNzIyLTMuMjUifV0sWyJwYXRoIix7ZDoiTTIgOGExMC42NDUgMTAuNjQ1IDAgMCAwIDIwIDAifV0sWyJwYXRoIix7ZDoibTIwIDE1LTEuNzI2LTIuMDUifV0sWyJwYXRoIix7ZDoibTQgMTUgMS43MjYtMi4wNSJ9XSxbInBhdGgiLHtkOiJtOSAxOCAuNzIyLTMuMjUifV1dLEFhdD1bWyJwYXRoIix7ZDoiTTIuMDYyIDEyLjM0OGExIDEgMCAwIDEgMC0uNjk2IDEwLjc1IDEwLjc1IDAgMCAxIDE5Ljg3NiAwIDEgMSAwIDAgMSAwIC42OTYgMTAuNzUgMTAuNzUgMCAwIDEtMTkuODc2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XV0sRGF0PVtbInBhdGgiLHtkOiJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5In1dLFsicGF0aCIse2Q6Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxFYXQ9W1sicGF0aCIse2Q6Ik0xOCAyaC0zYTUgNSAwIDAgMC01IDV2M0g3djRoM3Y4aDR2LThoM2wxLTRoLTRWN2ExIDEgMCAwIDEgMS0xaDN6In1dXSxQYXQ9W1sicGF0aCIse2Q6Ik0xMiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWOC41YS41LjUgMCAwIDAtLjc2OS0uNDIybC00LjQ2MiAyLjg0NEEuNS41IDAgMCAxIDE1IDEwLjV2LTJhLjUuNSAwIDAgMC0uNzY5LS40MjJMOS43NyAxMC45MjJBLjUuNSAwIDAgMSA5IDEwLjVWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnoifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXSxJYXQ9W1sicGF0aCIse2Q6Ik0xMC44MjcgMTYuMzc5YTYuMDgyIDYuMDgyIDAgMCAxLTguNjE4LTcuMDAybDUuNDEyIDEuNDVhNi4wODIgNi4wODIgMCAwIDEgNy4wMDItOC42MThsLTEuNDUgNS40MTJhNi4wODIgNi4wODIgMCAwIDEgOC42MTggNy4wMDJsLTUuNDEyLTEuNDVhNi4wODIgNi4wODIgMCAwIDEtNy4wMDIgOC42MThsMS40NS01LjQxMloifV0sWyJwYXRoIix7ZDoiTTEyIDEydi4wMSJ9XV0sTmF0PVtbInBhdGgiLHtkOiJNMTIgNmEyIDIgMCAwIDEgMy40MTQtMS40MTRsNiA2YTIgMiAwIDAgMSAwIDIuODI4bC02IDZBMiAyIDAgMCAxIDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJNMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMiAxOHoifV1dLEZhdD1bWyJwYXRoIix7ZDoiTTEyLjY3IDE5YTIgMiAwIDAgMCAxLjQxNi0uNTg4bDYuMTU0LTYuMTcyYTYgNiAwIDAgMC04LjQ5LTguNDlMNS41ODYgOS45MTRBMiAyIDAgMCAwIDUgMTEuMzI4VjE4YTEgMSAwIDAgMCAxIDF6In1dLFsicGF0aCIse2Q6Ik0xNiA4IDIgMjIifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTVIOSJ9XV0sT2F0PVtbInBhdGgiLHtkOiJNNCAzIDIgNXYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dLFsicGF0aCIse2Q6Ik02IDhoNCJ9XSxbInBhdGgiLHtkOiJNNiAxOGg0In1dLFsicGF0aCIse2Q6Im0xMiAzLTIgMnYxNWMwIC42LjQgMSAxIDFoMmMuNiAwIDEtLjQgMS0xVjVaIn1dLFsicGF0aCIse2Q6Ik0xNCA4aDQifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDQifV0sWyJwYXRoIix7ZDoibTIwIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoifV1dLFJhdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Im02LjggMTUtMy41IDIifV0sWyJwYXRoIix7ZDoibTIwLjcgNy0zLjUgMiJ9XSxbInBhdGgiLHtkOiJNNi44IDkgMy4zIDcifV0sWyJwYXRoIix7ZDoibTIwLjcgMTctMy41LTIifV0sWyJwYXRoIix7ZDoibTkgMjIgMy04IDMgOCJ9XSxbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik0xOCAxOC43YTkgOSAwIDEgMC0xMiAwIn1dXSxCYXQ9W1sicGF0aCIse2Q6Ik01IDUuNUEzLjUgMy41IDAgMCAxIDguNSAySDEydjdIOC41QTMuNSAzLjUgMCAwIDEgNSA1LjV6In1dLFsicGF0aCIse2Q6Ik0xMiAyaDMuNWEzLjUgMy41IDAgMSAxIDAgN0gxMlYyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTIuNWEzLjUgMy41IDAgMSAxIDcgMCAzLjUgMy41IDAgMSAxLTcgMHoifV0sWyJwYXRoIix7ZDoiTTUgMTkuNUEzLjUgMy41IDAgMCAxIDguNSAxNkgxMnYzLjVhMy41IDMuNSAwIDEgMS03IDB6In1dLFsicGF0aCIse2Q6Ik01IDEyLjVBMy41IDMuNSAwIDAgMSA4LjUgOUgxMnY3SDguNUEzLjUgMy41IDAgMCAxIDUgMTIuNXoifV1dLEhhdD1bWyJwYXRoIix7ZDoiTTEzLjY1OSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjExLjUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTJ2LTEifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJwYXRoIix7ZDoiTTggN1Y2In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIyMCIscjoiMiJ9XV0sUGI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im04IDE4IDQtNCJ9XSxbInBhdGgiLHtkOiJNOCAxMHY4aDgifV1dLEliPVtbInBhdGgiLHtkOiJNMTMgMjJoNWEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNy42OSAxNi40NzkgMS4yOSA0Ljg4YS41LjUgMCAwIDEtLjY5OC41OTFsLTEuODQzLS44NDlhMSAxIDAgMCAwLS44NzkuMDAxbC0xLjg0Ni44NWEuNS41IDAgMCAxLS42OTItLjU5M2wxLjI5LTQuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE0IixyOiIzIn1dXSxOYj1bWyJwYXRoIix7ZDoiTTE0IDIyaDRhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik01IDE0YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik05IDIyYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0yYTEgMSAwIDAgMC0xLTEifV1dLHFhdD1bWyJwYXRoIix7ZDoiTTE0LjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjgifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTExLjcgMTQuMiA3IDE3bC00LjctMi44In1dLFsicGF0aCIse2Q6Ik0zIDEzLjFhMiAyIDAgMCAwLS45OTkgMS43NnYzLjI0YTIgMiAwIDAgMCAuOTY5IDEuNzhMNiAyMS43YTIgMiAwIDAgMCAyLjAzLjAxTDExIDE5LjlhMiAyIDAgMCAwIDEtMS43NlYxNC45YTIgMiAwIDAgMC0uOTctMS43OEw4IDExLjNhMiAyIDAgMCAwLTIuMDMtLjAxeiJ9XSxbInBhdGgiLHtkOiJNNyAxN3Y1In1dXSxGYj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDEyYTEgMSAwIDAgMC0xIDF2MWExIDEgMCAwIDEtMSAxIDEgMSAwIDAgMSAxIDF2MWExIDEgMCAwIDAgMSAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxOGExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTEgMSAxIDAgMCAxLTEtMXYtMWExIDEgMCAwIDAtMS0xIn1dXSxPYj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTh2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDE4di00In1dLFsicGF0aCIse2Q6Ik0xNiAxOHYtNiJ9XV0sUmI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE4di0xIn1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTh2LTMifV1dLEJiPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTYgMTMtMy41IDMuNS0yLTJMOCAxNyJ9XV0sSGI9W1sicGF0aCIse2Q6Ik0xNS45NDEgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNGwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjUxMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNNC4wMTcgMTEuNTEyYTYgNiAwIDEgMCA4LjQ2NiA4LjQ3NSJ9XSxbInBhdGgiLHtkOiJNOSAxNmExIDEgMCAwIDEtMS0xdi00YzAtLjU1Mi40NS0xLjAwOC45OTUtLjkxN2E2IDYgMCAwIDEgNC45MjIgNC45MjJjLjA5MS41NDQtLjM2NS45OTUtLjkxNy45OTV6In1dXSxxYj1bWyJwYXRoIix7ZDoiTTEwLjUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNCAyMCAyIDIgNC00In1dXSxWYXQ9W1sicGF0aCIse2Q6Ik0xNiAyMmgyYTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2Mi44NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxNHYyLjJsMS42IDEifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE2IixyOiI2In1dXSxqYXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im05IDE1IDIgMiA0LTQifV1dLFZiPVtbInBhdGgiLHtkOiJNNCAxMi4xNVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMy4zNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNSAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtMy0zLTMifV1dLFVhdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDEyLjUgOCAxNWwyIDIuNSJ9XSxbInBhdGgiLHtkOiJtMTQgMTIuNSAyIDIuNS0yIDIuNSJ9XV0samI9W1sicGF0aCIse2Q6Ik0xNSA4YTEgMSAwIDAgMS0xLTFWMmEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh6In1dLFsicGF0aCIse2Q6Ik0yMCA4djEyYTIgMiAwIDAgMS0yIDJoLTQuMTgyIn1dLFsicGF0aCIse2Q6Im0zLjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJNNCAxMC41OTJWNGEyIDIgMCAwIDEgMi0yaDgifV0sWyJwYXRoIix7ZDoibTQuMjI4IDE2Ljg1Mi0uOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTUuODUyIDE1LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTUuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtOC4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im04LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTkuNzczIDE2Ljg1Mi45MjItLjM4MyJ9XSxbInBhdGgiLHtkOiJtOS43NzMgMTkuMTQ4LjkyMi4zODMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIzIn1dXSxXYXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV0sWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJwYXRoIix7ZDoiTTkgMTdoNiJ9XV0sR2F0PVtbInBhdGgiLHtkOiJNNCAxMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZoMnY2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dLFsicmVjdCIse3g6IjIiLHk6IjE2Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XV0sWWF0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTYifV0sWyJwYXRoIix7ZDoibTkgMTUgMyAzIDMtMyJ9XV0sVWI9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV0sdmw9W1sicGF0aCIse2Q6Ik00IDYuODM1VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0uMzQzIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0yIDE5YTIgMiAwIDAgMSA0IDB2MWEyIDIgMCAwIDEtNCAwdi00YTYgNiAwIDAgMSAxMiAwdjRhMiAyIDAgMCAxLTQgMHYtMWEyIDIgMCAwIDEgNCAwIn1dXSxaYXQ9W1sicGF0aCIse2Q6Ik0xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2NyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMy42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSA3IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhMSAxIDAgMCAxLTEuNTA3IDB6In1dXSxYYXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoibTIwIDE3LTEuMjk2LTEuMjk2YTIuNDEgMi40MSAwIDAgMC0zLjQwOCAwTDkgMjIifV1dLEthdD1bWyJwYXRoIix7ZDoiTTQgMTFWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0yIDE1aDEwIn1dLFsicGF0aCIse2Q6Im05IDE4IDMtMy0zLTMifV1dLFdiPVtbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNNCAxMnY2In1dLFsicGF0aCIse2Q6Ik00IDE0aDIifV0sWyJwYXRoIix7ZDoiTTkuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY0In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIyMCIscjoiMiJ9XV0sR2I9W1sicGF0aCIse2Q6Ik00IDkuOFY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxN3YtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMyIseToiMTciLHJ4OiIxIn1dXSxZYj1bWyJwYXRoIix7ZDoiTTIwIDE0VjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDYifV1dLFFhdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XV0sSmF0PVtbInBhdGgiLHtkOiJNMTEuNjUgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxMC4zNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAyMHYtN2wzIDEuNDc0In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIyMCIscjoiMiJ9XV0sZWl0PVtbInBhdGgiLHtkOiJNNC4yMjYgMjAuOTI1QTIgMiAwIDAgMCA2IDIyaDEyYTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My4xMjcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTUgMTEtMyAzIn1dLFsicGF0aCIse2Q6Im01IDE3LTMtM2gxMCJ9XV0sWmI9W1sicGF0aCIse2Q6Im0xOC4yMjYgNS4yMjYtMi41Mi0yLjUyQTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0uMzUxIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTIuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJwYXRoIix7ZDoiTTggMThoMSJ9XV0sWGI9W1sicGF0aCIse2Q6Ik0xMi42NTkgMjJIMThhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY5LjM0In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMC4zNzggMTIuNjIyYTEgMSAwIDAgMSAzIDMuMDAzTDguMzYgMjAuNjM3YTIgMiAwIDAgMS0uODU0LjUwNmwtMi44NjcuODM3YS41LjUgMCAwIDEtLjYyLS42MmwuODM2LTIuODY5YTIgMiAwIDAgMSAuNTA2LS44NTN6In1dXSxLYj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE1LjAzMyAxMy40NGEuNjQ3LjY0NyAwIDAgMSAwIDEuMTJsLTQuMDY1IDIuMzUyYS42NDUuNjQ1IDAgMCAxLS45NjgtLjU2di00LjcwNGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoifV1dLFFiPVtbInBhdGgiLHtkOiJNMTEuMzUgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1LjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNCAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNyAxNnY2In1dXSxKYj1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XV0sdGl0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XV0sYWl0PVtbInBhdGgiLHtkOiJNMjAgMTBWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDRsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmg0LjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xNiAxNGEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMmEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0yMCAxNGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMmEyIDIgMCAwIDAgMi0yIn1dXSxpaXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsiY2lyY2xlIix7Y3g6IjExLjUiLGN5OiIxNC41IixyOiIyLjUifV0sWyJwYXRoIix7ZDoiTTEzLjMgMTYuMyAxNSAxOCJ9XV0sZXY9W1sicGF0aCIse2Q6Ik0xMS4xIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OSAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2My4yNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMjEgMjItMi44OC0yLjg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTciLHI6IjMifV1dLHR2PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTExLjUgMTMuNWEyLjUgMi41IDAgMCAxIDAgMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTJhNSA1IDAgMCAxIDAgNiJ9XV0scml0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMCAxMXYyIn1dLFsicGF0aCIse2Q6Ik04IDE3aDgifV0sWyJwYXRoIix7ZDoiTTE0IDE2djIifV1dLHNpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoMiJ9XSxbInBhdGgiLHtkOiJNOCAxN2gyIn1dLFsicGF0aCIse2Q6Ik0xNCAxN2gyIn1dXSxuaXQ9W1sicGF0aCIse2Q6Ik0xMSAyMWExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXYtOGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmExIDEgMCAwIDEtMSAxSDlhMSAxIDAgMCAxLTEtMVY4YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTIxIDZhMiAyIDAgMCAwLS41ODYtMS40MTRsLTItMkEyIDIgMCAwIDAgMTcgMmgtM2ExIDEgMCAwIDAtMSAxdjhhMSAxIDAgMCAwIDEgMWg2YTEgMSAwIDAgMCAxLTF6In1dXSxvaXQ9W1sicGF0aCIse2Q6Ik00IDExVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTEwIDE4IDMtMy0zLTMifV1dLGxpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTggMTYgMi0yLTItMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNCJ9XV0sY2l0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgOUg4In1dLFsicGF0aCIse2Q6Ik0xNiAxM0g4In1dLFsicGF0aCIse2Q6Ik0xNiAxN0g4In1dXSxhdj1bWyJwYXRoIix7ZDoiTTEyIDIyaDZhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0zIDE2di0xLjVhLjUuNSAwIDAgMSAuNS0uNWg3YS41LjUgMCAwIDEgLjUuNVYxNiJ9XSxbInBhdGgiLHtkOiJNNiAyMmgyIn1dLFsicGF0aCIse2Q6Ik03IDE0djgifV1dLGRpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTExIDE4aDIifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV0sWyJwYXRoIix7ZDoiTTkgMTN2LS41YS41LjUgMCAwIDEgLjUtLjVoNWEuNS41IDAgMCAxIC41LjV2LjUifV1dLHBpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEyIDEydjYifV0sWyJwYXRoIix7ZDoibTE1IDE1LTMtMy0zIDMifV1dLGhpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE2IDIyYTQgNCAwIDAgMC04IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMyJ9XV0saXY9W1sicGF0aCIse2Q6Ik00IDEyVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xMCAxNy44NDMgMy4wMzMtMS43NTVhLjY0LjY0IDAgMCAxIC45NjcuNTZ2NC43MDRhLjY1LjY1IDAgMCAxLS45NjcuNTZMMTAgMjAuMTU3In1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjYiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XV0sdWl0PVtbInBhdGgiLHtkOiJNNCAxMS41NVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtMS45NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTVhNSA1IDAgMCAxIDAgNiJ9XSxbInBhdGgiLHtkOiJNOCAxNC41MDJhLjUuNSAwIDAgMC0uODI2LS4zODFsLTEuODkzIDEuNjMxYTEgMSAwIDAgMS0uNjUxLjI0M0gzLjVhLjUuNSAwIDAgMC0uNS41MDF2My4wMDZhLjUuNSAwIDAgMCAuNS41MDFoMS4xMjlhMSAxIDAgMCAxIC42NTIuMjQzbDEuODkzIDEuNjMzYS41LjUgMCAwIDAgLjgyNi0uMzh6In1dXSxydj1bWyJwYXRoIix7ZDoiTTExIDIySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTUgMTcgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNy01IDUifV1dLGZpdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSAxMi41IDUgNSJ9XV0sbWl0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XV0sZ2l0PVtbInBhdGgiLHtkOiJNMTUgMmgtNGEyIDIgMCAwIDAtMiAydjExYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjgifV0sWyJwYXRoIix7ZDoiTTE2LjcwNiAyLjcwNkEyLjQgMi40IDAgMCAwIDE1IDJ2NWExIDEgMCAwIDAgMSAxaDVhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2eiJ9XSxbInBhdGgiLHtkOiJNNSA3YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAxLjczMi0xIn1dXSxiaXQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMyA3LjVoNCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNi41aDQifV0sWyJwYXRoIix7ZDoiTTE3IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE3IDcuNWg0In1dLFsicGF0aCIse2Q6Ik0xNyAxNi41aDQifV1dLHN2PVtbInBhdGgiLHtkOiJNMTIgMTBhMiAyIDAgMCAwLTIgMmMwIDEuMDItLjEgMi41MS0uMjYgNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTMuMTJjMCAyLjM4IDAgNi4zOC0xIDguODgifV0sWyJwYXRoIix7ZDoiTTE3LjI5IDIxLjAyYy4xMi0uNi40My0yLjMuNS0zLjAyIn1dLFsicGF0aCIse2Q6Ik0yIDEyYTEwIDEwIDAgMCAxIDE4LTYifV0sWyJwYXRoIix7ZDoiTTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMS44IDE2Yy4yLTIgLjEzMS01LjM1NCAwLTYifV0sWyJwYXRoIix7ZDoiTTUgMTkuNUM1LjUgMTggNiAxNSA2IDEyYTYgNiAwIDAgMSAuMzQtMiJ9XSxbInBhdGgiLHtkOiJNOC42NSAyMmMuMjEtLjY2LjQ1LTEuMzIuNTctMiJ9XSxbInBhdGgiLHtkOiJNOSA2LjhhNiA2IDAgMCAxIDkgNS4ydjIifV1dLHZpdD1bWyJwYXRoIix7ZDoiTTE1IDYuNVYzYTEgMSAwIDAgMC0xLTFoLTJhMSAxIDAgMCAwLTEgMXYzLjUifV0sWyJwYXRoIix7ZDoiTTkgMThoOCJ9XSxbInBhdGgiLHtkOiJNMTggM2gtMyJ9XSxbInBhdGgiLHtkOiJNMTEgM2E2IDYgMCAwIDAtNiA2djExIn1dLFsicGF0aCIse2Q6Ik01IDEzaDQifV0sWyJwYXRoIix7ZDoiTTE3IDEwYTQgNCAwIDAgMC04IDB2MTBhMiAyIDAgMCAwIDIgMmg0YTIgMiAwIDAgMCAyLTJaIn1dXSx5aXQ9W1sicGF0aCIse2Q6Ik0xOCAxMi40N3YuMDNtMC0uNXYuNDdtLS40NzUgNS4wNTZBNi43NDQgNi43NDQgMCAwIDEgMTUgMThjLTMuNTYgMC03LjU2LTIuNTMtOC41LTYgLjM0OC0xLjI4IDEuMTE0LTIuNDMzIDIuMTIxLTMuMzhtMy40NDQtMi4wODhBOC44MDIgOC44MDIgMCAwIDEgMTUgNmMzLjU2IDAgNi4wNiAyLjU0IDcgNi0uMzA5IDEuMTQtLjc4NiAyLjE3Ny0xLjQxMyAzLjA1OCJ9XSxbInBhdGgiLHtkOiJNNyAxMC42N0M3IDggNS41OCA1Ljk3IDIuNzMgNS41Yy0xIDEuNS0xIDUgLjIzIDYuNS0xLjI0IDEuNS0xLjI0IDUtLjIzIDYuNUM1LjU4IDE4LjAzIDcgMTYgNyAxMy4zM203LjQ4LTQuMzcyQTkuNzcgOS43NyAwIDAgMSAxNiA2LjA3bTAgMTEuODZhOS43NyA5Ljc3IDAgMCAxLTEuNzI4LTMuNjE4In1dLFsicGF0aCIse2Q6Im0xNi4wMSAxNy45My0uMjMgMS40QTIgMiAwIDAgMSAxMy44IDIxSDkuNWE1Ljk2IDUuOTYgMCAwIDAgMS40OS0zLjk4TTguNTMgM2g1LjI3YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNE0yIDJsMjAgMjAifV1dLHhpdD1bWyJwYXRoIix7ZDoiTTIgMTZzOS0xNSAyMC00QzExIDIzIDIgOCAyIDgifV1dLHdpdD1bWyJwYXRoIix7ZDoiTTYuNSAxMmMuOTQtMy40NiA0Ljk0LTYgOC41LTYgMy41NiAwIDYuMDYgMi41NCA3IDYtLjk0IDMuNDctMy40NCA2LTcgNnMtNy41Ni0yLjUzLTguNS02WiJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2LjUifV0sWyJwYXRoIix7ZDoiTTE2IDE3LjkzYTkuNzcgOS43NyAwIDAgMSAwLTExLjg2In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzIn1dLFsicGF0aCIse2Q6Ik0xMC40NiA3LjI2QzEwLjIgNS44OCA5LjE3IDQuMjQgOCAzaDUuOGEyIDIgMCAwIDEgMS45OCAxLjY3bC4yMyAxLjQifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOTgifV1dLE1pdD1bWyJwYXRoIix7ZDoibTE3LjU4NiAxMS40MTQtNS45MyA1LjkzYTEgMSAwIDAgMS04LThsMy4xMzctMy4xMzdhLjcwNy43MDcgMCAwIDEgMS4yMDcuNVYxMCJ9XSxbInBhdGgiLHtkOiJNMjAuNDE0IDguNTg2IDIyIDcifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxMCIscjoiMiJ9XV0seml0PVtbInBhdGgiLHtkOiJNMTYgMTZjLTMgMC01LTItOC0yYTYgNiAwIDAgMC00IDEuNTI4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTQgMjJWNCJ9XSxbInBhdGgiLHtkOiJNNy42NTYgMkg4YzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTAuMzQ3In1dXSxraXQ9W1sicGF0aCIse2Q6Ik0xOCAyMlYyLjhhLjguOCAwIDAgMC0xLjE3LS43MUw1LjQ1IDcuNzhhLjguOCAwIDAgMCAwIDEuNDRMMTggMTUuNSJ9XV0sU2l0PVtbInBhdGgiLHtkOiJNNiAyMlYyLjhhLjguOCAwIDAgMSAxLjE3LS43MWwxMS4zOCA1LjY5YS44LjggMCAwIDEgMCAxLjQ0TDYgMTUuNSJ9XV0sQ2l0PVtbInBhdGgiLHtkOiJNNCAyMlY0YTEgMSAwIDAgMSAuNC0uOEE2IDYgMCAwIDEgOCAyYzMgMCA1IDIgNy4zMzMgMnEyIDAgMy4wNjctLjhBMSAxIDAgMCAxIDIwIDR2MTBhMSAxIDAgMCAxLS40LjhBNiA2IDAgMCAxIDE2IDE2Yy0zIDAtNS0yLTgtMmE2IDYgMCAwIDAtNCAxLjUyOCJ9XV0sX2l0PVtbInBhdGgiLHtkOiJNMTIgMmMxIDMgMi41IDMuNSAzLjUgNC41QTUgNSAwIDAgMSAxNyAxMGE1IDUgMCAxIDEtMTAgMGMwLS4zIDAtLjYuMS0uOWEyIDIgMCAxIDAgMy4zLTJDOCA0LjUgMTEgMiAxMiAyWiJ9XSxbInBhdGgiLHtkOiJtNSAyMiAxNC00In1dLFsicGF0aCIse2Q6Im01IDE4IDE0IDQifV1dLFRpdD1bWyJwYXRoIix7ZDoiTTEyIDNxMSA0IDQgNi41dDMgNS41YTEgMSAwIDAgMS0xNCAwIDUgNSAwIDAgMSAxLTMgMSAxIDAgMCAwIDUgMGMwLTItMS41LTMtMS41LTVxMC0yIDIuNS00In1dXSxMaXQ9W1sicGF0aCIse2Q6Ik0xMS42NTIgNkgxOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTN2MSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZ2NGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJ2LThhNCA0IDAgMCAwLS44LTIuNGwtLjYtLjhBMyAzIDAgMCAxIDYgN1Y2In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTcuNjQ5IDJIMTdhMSAxIDAgMCAxIDEgMXY0YTMgMyAwIDAgMS0uNiAxLjhsLS42LjhhNCA0IDAgMCAwLS41NSAxLjAwNyJ9XV0sJGl0PVtbInBhdGgiLHtkOiJNMTIgMTN2MSJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOEE0IDQgMCAwIDAgMTYgMTJ2OGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LThhNCA0IDAgMCAwLS44LTIuNGwtLjYtLjhBMyAzIDAgMCAxIDYgN1YzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDZoMTIifV1dLEFpdD1bWyJwYXRoIix7ZDoiTTEwIDJ2Mi4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2Ni4zNDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0xLjc1NS0yLjk2bDUuMjI3LTkuNTYzIn1dLFsicGF0aCIse2Q6Ik02LjQ1MyAxNUgxNSJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XV0sRGl0PVtbInBhdGgiLHtkOiJNMTQgMnY2YTIgMiAwIDAgMCAuMjQ1Ljk2bDUuNTEgMTAuMDhBMiAyIDAgMCAxIDE4IDIySDZhMiAyIDAgMCAxLTEuNzU1LTIuOTZsNS41MS0xMC4wOEEyIDIgMCAwIDAgMTAgOFYyIn1dLFsicGF0aCIse2Q6Ik02LjQ1MyAxNWgxMS4wOTQifV0sWyJwYXRoIix7ZDoiTTguNSAyaDcifV1dLEVpdD1bWyJwYXRoIix7ZDoiTTEwIDJ2Ni4yOTJhNyA3IDAgMSAwIDQgMFYyIn1dLFsicGF0aCIse2Q6Ik01IDE1aDE0In1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dXSxQaXQ9W1sicGF0aCIse2Q6Im0zIDcgNSA1LTUgNVY3In1dLFsicGF0aCIse2Q6Im0yMSA3LTUgNSA1IDVWNyJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV1dLElpdD1bWyJwYXRoIix7ZDoiTTggM0g1YTIgMiAwIDAgMC0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgzIn1dLFsicGF0aCIse2Q6Ik0xNiAzaDNhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC0zIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiA4djIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XV0sTml0PVtbInBhdGgiLHtkOiJtMTcgMy01IDUtNS01aDEwIn1dLFsicGF0aCIse2Q6Im0xNyAyMS01LTUtNSA1aDEwIn1dLFsicGF0aCIse2Q6Ik00IDEySDIifV0sWyJwYXRoIix7ZDoiTTEwIDEySDgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XV0sRml0PVtbInBhdGgiLHtkOiJNMjEgOFY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDE2djNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXSxPaXQ9W1sicGF0aCIse2Q6Ik0xMiA1YTMgMyAwIDEgMSAzIDNtLTMtM2EzIDMgMCAxIDAtMyAzbTMtM3YxTTkgOGEzIDMgMCAxIDAgMyAzTTkgOGgxbTUgMGEzIDMgMCAxIDEtMyAzbTMtM2gtMW0tMiAzdi0xIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2MTIifV0sWyJwYXRoIix7ZDoiTTEyIDIyYzQuMiAwIDctMS42NjcgNy01LTQuMiAwLTcgMS42NjctNyA1WiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJjLTQuMiAwLTctMS42NjctNy01IDQuMiAwIDcgMS42NjcgNyA1WiJ9XV0sUml0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNi41QTQuNSA0LjUgMCAxIDEgNy41IDEyIDQuNSA0LjUgMCAxIDEgMTIgNy41YTQuNSA0LjUgMCAxIDEgNC41IDQuNSA0LjUgNC41IDAgMSAxLTQuNSA0LjUifV0sWyJwYXRoIix7ZDoiTTEyIDcuNVY5In1dLFsicGF0aCIse2Q6Ik03LjUgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMTYuNSAxMkgxNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTYuNVYxNSJ9XSxbInBhdGgiLHtkOiJtOCA4IDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgOS44OCAxNiA4In1dLFsicGF0aCIse2Q6Im04IDE2IDEuODgtMS44OCJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMTQuMTIgMTYgMTYifV1dLEJpdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dXSxIaXQ9W1sicGF0aCIse2Q6Ik0yIDEyaDYifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC02In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgOS0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im01IDE1IDMtMy0zLTMifV1dLHFpdD1bWyJwYXRoIix7ZDoiTTEyIDIydi02In1dLFsicGF0aCIse2Q6Ik0xMiA4VjIifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA1LTMgMy0zLTMifV1dLFZpdD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJtOSAxMyAyIDIgNC00In1dXSxqaXQ9W1siY2lyY2xlIix7Y3g6IjE1IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTIwLjkgMTkuOEEyIDIgMCAwIDAgMjIgMThWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyaDUuMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTF2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDE3di0yIn1dXSxVaXQ9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTcgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dXSxXaXQ9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTIgMTBoMjAifV1dLEdpdD1bWyJwYXRoIix7ZDoiTTEwIDEwLjUgOCAxM2wyIDIuNSJ9XSxbInBhdGgiLHtkOiJtMTQgMTAuNSAyIDIuNS0yIDIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJ6In1dXSxudj1bWyJwYXRoIix7ZDoiTTEwLjMgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjk4YTIgMiAwIDAgMSAxLjY5LjlsLjY2IDEuMkEyIDIgMCAwIDAgMTIgNmg4YTIgMiAwIDAgMSAyIDJ2My4zIn1dLFsicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLFlpdD1bWyJwYXRoIix7ZDoiTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMloifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMSJ9XV0sWml0PVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Im0xNSAxMy0zIDMtMy0zIn1dXSxYaXQ9W1sicGF0aCIse2Q6Ik0xOCAxOWE1IDUgMCAwIDEtNS01djgifV0sWyJwYXRoIix7ZDoiTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnY1In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV0sS2l0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTE0IDEzaDMifV0sWyJwYXRoIix7ZDoiTTcgMTNoMyJ9XV0sUWl0PVtbInBhdGgiLHtkOiJNMTAuNjM4IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2My40MTcifV0sWyJwYXRoIix7ZDoiTTE0LjYyIDE4LjhBMi4yNSAyLjI1IDAgMSAxIDE4IDE1LjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoifV1dLEppdD1bWyJwYXRoIix7ZDoiTTIgOVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTIgMTNoMTAifV0sWyJwYXRoIix7ZDoibTkgMTYgMy0zLTMtMyJ9XV0sZXJ0PVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbInBhdGgiLHtkOiJNOCAxMHY0In1dLFsicGF0aCIse2Q6Ik0xMiAxMHYyIn1dLFsicGF0aCIse2Q6Ik0xNiAxMHY2In1dXSx0cnQ9W1sicGF0aCIse2Q6Ik0xMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEuMzYifV0sWyJwYXRoIix7ZDoiTTE5IDEydjYifV0sWyJwYXRoIix7ZDoiTTE5IDE0aDIifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIyMCIscjoiMiJ9XV0sYXJ0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMTciLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgMTd2LTJhMiAyIDAgMSAwLTQgMHYyIn1dXSxpcnQ9W1sicGF0aCIse2Q6Ik05IDEzaDYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV0scnJ0PVtbInBhdGgiLHtkOiJtNiAxNCAxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVjMC0xLjEuOS0yIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxNCIsY3k6IjE1IixyOiIxIn1dXSxzcnQ9W1sicGF0aCIse2Q6Im02IDE0IDEuNS0yLjlBMiAyIDAgMCAxIDkuMjQgMTBIMjBhMiAyIDAgMCAxIDEuOTQgMi41bC0xLjU0IDZhMiAyIDAgMCAxLTEuOTUgMS41SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDE4YTIgMiAwIDAgMSAyIDJ2MiJ9XV0sbnJ0PVtbInBhdGgiLHtkOiJNMiA3LjVWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0xLjUifV0sWyJwYXRoIix7ZDoiTTIgMTNoMTAifV0sWyJwYXRoIix7ZDoibTUgMTAtMyAzIDMgMyJ9XV0sb3Y9W1sicGF0aCIse2Q6Ik0yIDExLjVWNWEyIDIgMCAwIDEgMi0yaDMuOWMuNyAwIDEuMy4zIDEuNy45bC44IDEuMmMuNC42IDEgLjkgMS43LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC05LjUifV0sWyJwYXRoIix7ZDoiTTExLjM3OCAxMy42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV0sb3J0PVtbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV1dLGxydD1bWyJwYXRoIix7ZDoiTTQgMjBoMTZhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOTNhMiAyIDAgMCAxLTEuNjYtLjlsLS44Mi0xLjJBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNjMCAxLjEuOSAyIDIgMloifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NSJ9XV0sY3J0PVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMi41In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEzLjMgMTQuMyAxNSAxNiJ9XV0sZHJ0PVtbInBhdGgiLHtkOiJNMTAuNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjQuMSJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMS45LTEuOSJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiIzIn1dXSxwcnQ9W1sicGF0aCIse2Q6Ik0yIDkuMzVWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoNyJ9XSxbInBhdGgiLHtkOiJtOCAxNiAzLTMtMy0zIn1dXSxocnQ9W1sicGF0aCIse2Q6Ik05IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2LjUifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtMTIgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0yMiAyMnYtNGgtNCJ9XSxbInBhdGgiLHtkOiJtMjIgMTgtMS41MzUgMS42MDVhNSA1IDAgMCAxLTgtMS41In1dXSx1cnQ9W1sicGF0aCIse2Q6Ik0yMCAxMGExIDEgMCAwIDAgMS0xVjZhMSAxIDAgMCAwLTEtMWgtMi41YTEgMSAwIDAgMS0uOC0uNGwtLjktMS4yQTEgMSAwIDAgMCAxNSAzaC0yYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhMSAxIDAgMCAwIDEtMXYtM2ExIDEgMCAwIDAtMS0xaC0yLjlhMSAxIDAgMCAxLS44OC0uNTVsLS40Mi0uODVhMSAxIDAgMCAwLS45Mi0uNkgxM2ExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMVoifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTMgM3YxM2EyIDIgMCAwIDAgMiAyaDMifV1dLGZydD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJtOSAxMyAzLTMgMyAzIn1dXSxtcnQ9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoibTkuNSAxMC41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMC41LTUgNSJ9XV0sZ3J0PVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dXSxicnQ9W1sicGF0aCIse2Q6Ik0yMCA1YTIgMiAwIDAgMSAyIDJ2N2EyIDIgMCAwIDEtMiAySDlhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMi41YTEuNSAxLjUgMCAwIDEgMS4yLjZsLjYuOGExLjUgMS41IDAgMCAwIDEuMi42eiJ9XSxbInBhdGgiLHtkOiJNMyA4LjI2OGEyIDIgMCAwIDAtMSAxLjczOFYxOWEyIDIgMCAwIDAgMiAyaDExYTIgMiAwIDAgMCAxLjczMi0xIn1dXSx2cnQ9W1sicGF0aCIse2Q6Ik0xMiAxMkg1YTIgMiAwIDAgMC0yIDJ2NSJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxOWgzbTUtMTd2MTdoNk02IDEyVjdjMC0xLjEuOS0yIDItMmgzbDUgNSJ9XV0seXJ0PVtbInBhdGgiLHtkOiJNNCAxNnYtMi4zOEM0IDExLjUgMi45NyAxMC41IDMgOGMuMDMtMi43MiAxLjQ5LTYgNC41LTZDOS4zNyAyIDEwIDMuOCAxMCA1LjVjMCAzLjExLTIgNS42Ni0yIDguNjhWMTZhMiAyIDAgMSAxLTQgMFoifV0sWyJwYXRoIix7ZDoiTTIwIDIwdi0yLjM4YzAtMi4xMiAxLjAzLTMuMTIgMS01LjYyLS4wMy0yLjcyLTEuNDktNi00LjUtNkMxNC42MyA2IDE0IDcuOCAxNCA5LjVjMCAzLjExIDIgNS42NiAyIDguNjhWMjBhMiAyIDAgMSAwIDQgMFoifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDQifV0sWyJwYXRoIix7ZDoiTTQgMTNoNCJ9XV0seHJ0PVtbInBhdGgiLHtkOiJNNCAxNGg2In1dLFsicGF0aCIse2Q6Ik00IDJoMTAifV0sWyJyZWN0Iix7eDoiNCIseToiMTgiLHdpZHRoOiIxNiIsaGVpZ2h0OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt4OiI0Iix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiNCIscng6IjEifV1dLHdydD1bWyJwYXRoIix7ZDoibTE1IDE3IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTQgMTh2LTJhNCA0IDAgMCAxIDQtNGgxMiJ9XV0sTXJ0PVtbImxpbmUiLHt4MToiMjIiLHgyOiIyIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMiIseTE6IjE4Iix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2Iix5MToiMiIseTI6IjIyIn1dLFsibGluZSIse3gxOiIxOCIseDI6IjE4Iix5MToiMiIseTI6IjIyIn1dXSx6cnQ9W1sicGF0aCIse2Q6Ik01IDE2VjloMTRWMkg1bDE0IDE0aC03bS03IDAgNyA3di03bS03IDBoNyJ9XV0sa3J0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dLFNydD1bWyJwYXRoIix7ZDoiTTE0IDEzaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMCA0IDB2LTYuOTk4YTIgMiAwIDAgMC0uNTktMS40MkwxOCA1In1dLFsicGF0aCIse2Q6Ik0xNCAyMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDloMTEifV1dLENydD1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiOCIseDoiNyIseToiOCIscng6IjEifV1dLF9ydD1bWyJwYXRoIix7ZDoiTTEzLjM1NCAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR2NmExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MWwxLjIxOC0xLjM0OCJ9XSxbInBhdGgiLHtkOiJNMTYgNmg2In1dLFsicGF0aCIse2Q6Ik0xOSAzdjYifV1dLGx2PVtbInBhdGgiLHtkOiJNMTIuNTMxIDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbC40MjctLjQ3MyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAzLjUgNSA1In1dLFsicGF0aCIse2Q6Im0yMS41IDMuNS01IDUifV1dLGN2PVtbInBhdGgiLHtkOiJNMTAgMjBhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFMMjEuNzQgNC42N0ExIDEgMCAwIDAgMjEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0eiJ9XV0sVHJ0PVtbInBhdGgiLHtkOiJNMiA3djEwIn1dLFsicGF0aCIse2Q6Ik02IDV2MTQifV0sWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjE4Iix4OiIxMCIseToiMyIscng6IjIifV1dLExydD1bWyJwYXRoIix7ZDoiTTIgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMTgiLHg6IjYiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAzdjE4In1dXSwkcnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxNCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAyMWgxIn1dXSxBcnQ9W1sicGF0aCIse2Q6Ik03IDJoMTAifV0sWyJwYXRoIix7ZDoiTTUgNmgxNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XV0sRHJ0PVtbInBhdGgiLHtkOiJNMyAyaDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMjJoMTgifV1dLEVydD1bWyJsaW5lIix7eDE6IjYiLHgyOiIxMCIseTE6IjExIix5MjoiMTEifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiOSIseTI6IjEzIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjEwIix5MjoiMTAifV0sWyJwYXRoIix7ZDoiTTE3LjMyIDVINi42OGE0IDQgMCAwIDAtMy45NzggMy41OWMtLjAwNi4wNTItLjAxLjEwMS0uMDE3LjE1MkMyLjYwNCA5LjQxNiAyIDE0LjQ1NiAyIDE2YTMgMyAwIDAgMCAzIDNjMSAwIDEuNS0uNSAyLTFsMS40MTQtMS40MTRBMiAyIDAgMCAxIDkuODI4IDE2aDQuMzQ0YTIgMiAwIDAgMSAxLjQxNC41ODZMMTcgMThjLjUuNSAxIDEgMiAxYTMgMyAwIDAgMCAzLTNjMC0xLjU0NS0uNjA0LTYuNTg0LS42ODUtNy4yNTgtLjAwNy0uMDUtLjAxMS0uMS0uMDE3LS4xNTFBNCA0IDAgMCAwIDE3LjMyIDV6In1dXSxQcnQ9W1sicGF0aCIse2Q6Ik0xMS4xNDYgMTUuODU0YTEuMjA3IDEuMjA3IDAgMCAxIDEuNzA4IDBsMS41NiAxLjU2QTIgMiAwIDAgMSAxNSAxOC44MjhWMjFhMSAxIDAgMCAxLTEgMWgtNGExIDEgMCAwIDEtMS0xdi0yLjE3MmEyIDIgMCAwIDEgLjU4Ni0xLjQxNHoifV0sWyJwYXRoIix7ZDoiTTE4LjgyOCAxNWEyIDIgMCAwIDEtMS40MTQtLjU4NmwtMS41Ni0xLjU2YTEuMjA3IDEuMjA3IDAgMCAxIDAtMS43MDhsMS41Ni0xLjU2QTIgMiAwIDAgMSAxOC44MjggOUgyMWExIDEgMCAwIDEgMSAxdjRhMSAxIDAgMCAxLTEgMXoifV0sWyJwYXRoIix7ZDoiTTYuNTg2IDE0LjQxNEEyIDIgMCAwIDEgNS4xNzIgMTVIM2ExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTFoMi4xNzJhMiAyIDAgMCAxIDEuNDE0LjU4NmwxLjU2IDEuNTZhMS4yMDcgMS4yMDcgMCAwIDEgMCAxLjcwOHoifV0sWyJwYXRoIix7ZDoiTTkgM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyLjE3MmEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtMS41NiAxLjU2YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA4IDBsLTEuNTYtMS41NkEyIDIgMCAwIDEgOSA1LjE3MnoifV1dLElydD1bWyJsaW5lIix7eDE6IjYiLHgyOiIxMCIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiMTAiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxNS4wMSIseTE6IjEzIix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTguMDEiLHkxOiIxMSIseTI6IjExIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dLE5ydD1bWyJwYXRoIix7ZDoibTEyIDE0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMy4zNCAxOWExMCAxMCAwIDEgMSAxNy4zMiAwIn1dXSxGcnQ9W1sicGF0aCIse2Q6Im0xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zbDguMzg0LTguMzgxIn1dLFsicGF0aCIse2Q6Im0xNiAxNiA2LTYifV0sWyJwYXRoIix7ZDoibTIxLjUgMTAuNS04LTgifV0sWyJwYXRoIix7ZDoibTggOCA2LTYifV0sWyJwYXRoIix7ZDoibTguNSA3LjUgOCA4In1dXSxPcnQ9W1sicGF0aCIse2Q6Ik0xMC41IDMgOCA5bDQgMTMgNC0xMy0yLjUtNiJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMS42LjhsMyA0YTIgMiAwIDAgMSAuMDEzIDIuMzgybC03Ljk5IDEwLjk4NmEyIDIgMCAwIDEtMy4yNDcgMGwtNy45OS0xMC45ODZBMiAyIDAgMCAxIDIuNCA3LjhsMi45OTgtMy45OTdBMiAyIDAgMCAxIDcgM3oifV0sWyJwYXRoIix7ZDoiTTIgOWgyMCJ9XV0sUnJ0PVtbInBhdGgiLHtkOiJNMTEuNSAyMWE3LjUgNy41IDAgMSAxIDcuMzUtOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTJWMyJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxNiJ9XSxbInBhdGgiLHtkOiJNOSAxMlYzIn1dXSxCcnQ9W1sicGF0aCIse2Q6Ik05IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyYTggOCAwIDAgMC04IDh2MTJsMy0zIDIuNSAyLjVMMTIgMTlsMi41IDIuNUwxNyAxOWwzIDNWMTBhOCA4IDAgMCAwLTgtOHoifV1dLEhydD1bWyJwYXRoIix7ZDoiTTE1IDZhOSA5IDAgMCAwLTkgOVYzIn1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dXSxxcnQ9W1sicGF0aCIse2Q6Ik02IDN2MTIifV0sWyJwYXRoIix7ZDoiTTE4IDlhMyAzIDAgMSAwIDAtNiAzIDMgMCAwIDAgMCA2eiJ9XSxbInBhdGgiLHtkOiJNNiAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6In1dLFsicGF0aCIse2Q6Ik0xNSA2YTkgOSAwIDAgMC05IDkifV0sWyJwYXRoIix7ZDoiTTE4IDE1djYifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dXSxWcnQ9W1sicmVjdCIse3g6IjMiLHk6IjgiLHdpZHRoOiIxOCIsaGVpZ2h0OiI0IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTIgOHYxMyJ9XSxbInBhdGgiLHtkOiJNMTkgMTJ2N2EyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMnYtNyJ9XSxbInBhdGgiLHtkOiJNNy41IDhhMi41IDIuNSAwIDAgMSAwLTVBNC44IDggMCAwIDEgMTIgOGE0LjggOCAwIDAgMSA0LjUtNSAyLjUgMi41IDAgMCAxIDAgNSJ9XV0sanJ0PVtbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5VjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XV0sZHY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI5Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIyMSIseTE6IjEyIix5MjoiMTIifV1dLFVydD1bWyJwYXRoIix7ZDoiTTEyIDN2NiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY2In1dXSxXcnQ9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiA2aDVhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Im0xNSA5LTMtMyAzLTMifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgMThIN2EyIDIgMCAwIDEtMi0yVjkifV0sWyJwYXRoIix7ZDoibTkgMTUgMyAzLTMgMyJ9XV0sR3J0PVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3In1dLFsicGF0aCIse2Q6Ik0xMSAxOEg4YTIgMiAwIDAgMS0yLTJWOSJ9XV0sWXJ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTggOXYyYzAgLjYtLjQgMS0xIDFIN2MtLjYgMC0xLS40LTEtMVY5In1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dXSxacnQ9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik01IDl2NiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNiAxNS43QTkgOSAwIDAgMCAxOSA5In1dXSxYcnQ9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYgMjFWOWE5IDkgMCAwIDAgOSA5In1dXSxLcnQ9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik01IDl2MTIifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0xMiA2aDVhMiAyIDAgMCAxIDIgMnY3In1dXSxRcnQ9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik02IDl2MTIifV0sWyJwYXRoIix7ZDoibTIxIDMtNiA2In1dLFsicGF0aCIse2Q6Im0yMSA5LTYtNiJ9XSxbInBhdGgiLHtkOiJNMTggMTEuNVYxNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXSxKcnQ9W1siY2lyY2xlIix7Y3g6IjUiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik01IDl2MTIifV0sWyJwYXRoIix7ZDoibTE1IDktMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMTIgNmg1YTIgMiAwIDAgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjIgMThoLTYifV1dLGVzdD1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYgOXYxMiJ9XSxbInBhdGgiLHtkOiJNMTMgNmgzYTIgMiAwIDAgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTYifV1dLHRzdD1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTggNlY1In1dLFsicGF0aCIse2Q6Ik0xOCAxMXYtMSJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiI5Iix5MjoiMjEifV1dLGFzdD1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTMgNmgzYTIgMiAwIDAgMSAyIDJ2NyJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiI5Iix5MjoiMjEifV1dLGlzdD1bWyJwYXRoIix7ZDoiTTE1IDIydi00YTQuOCA0LjggMCAwIDAtMS0zLjVjMyAwIDYtMiA2LTUuNS4wOC0xLjI1LS4yNy0yLjQ4LTEtMy41LjI4LTEuMTUuMjgtMi4zNSAwLTMuNSAwIDAtMSAwLTMgMS41LTIuNjQtLjUtNS4zNi0uNS04IDBDNiAyIDUgMiA1IDJjLS4zIDEuMTUtLjMgMi4zNSAwIDMuNUE1LjQwMyA1LjQwMyAwIDAgMCA0IDljMCAzLjUgMyA1LjUgNiA1LjUtLjM5LjQ5LS42OCAxLjA1LS44NSAxLjY1LS4xNy42LS4yMiAxLjIzLS4xNSAxLjg1djQifV0sWyJwYXRoIix7ZDoiTTkgMThjLTQuNTEgMi01LTItNy0yIn1dXSxyc3Q9W1sicGF0aCIse2Q6Im0yMiAxMy4yOS0zLjMzLTEwYS40Mi40MiAwIDAgMC0uMTQtLjE4LjM4LjM4IDAgMCAwLS4yMi0uMTEuMzkuMzkgMCAwIDAtLjIzLjA3LjQyLjQyIDAgMCAwLS4xNC4xOGwtMi4yNiA2LjY3SDguMzJMNi4xIDMuMjZhLjQyLjQyIDAgMCAwLS4xLS4xOC4zOC4zOCAwIDAgMC0uMjYtLjA4LjM5LjM5IDAgMCAwLS4yMy4wNy40Mi40MiAwIDAgMC0uMTQuMThMMiAxMy4yOWEuNzQuNzQgMCAwIDAgLjI3LjgzTDEyIDIxbDkuNjktNi44OGEuNzEuNzEgMCAwIDAgLjMxLS44M1oifV1dLHNzdD1bWyJwYXRoIix7ZDoiTTUuMTE2IDQuMTA0QTEgMSAwIDAgMSA2LjExIDNoMTEuNzhhMSAxIDAgMCAxIC45OTQgMS4xMDVMMTcuMTkgMjAuMjFBMiAyIDAgMCAxIDE1LjIgMjJIOC44YTIgMiAwIDAgMS0yLTEuNzl6In1dLFsicGF0aCIse2Q6Ik02IDEyYTUgNSAwIDAgMSA2IDAgNSA1IDAgMCAwIDYgMCJ9XV0sbnN0PVtbImNpcmNsZSIse2N4OiI2IixjeToiMTUiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNSIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTVhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0yLjUgMTMgNSA3Yy43LTEuMyAxLjQtMiAzLTIifV0sWyJwYXRoIix7ZDoiTTIxLjUgMTMgMTkgN2MtLjctMS4zLTEuNS0yLTMtMiJ9XV0sb3N0PVtbInBhdGgiLHtkOiJNMTUuNjg2IDE1QTE0LjUgMTQuNSAwIDAgMSAxMiAyMmExNC41IDE0LjUgMCAwIDEgMC0yMCAxMCAxMCAwIDEgMCA5LjU0MiAxMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmg4LjUifV0sWyJwYXRoIix7ZDoiTTIwIDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNSIseDoiMTQiLHk6IjYiLHJ4OiIxIn1dXSxsc3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyYTE0LjUgMTQuNSAwIDAgMCAwIDIwIDE0LjUgMTQuNSAwIDAgMCAwLTIwIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dXSxjc3Q9W1sicGF0aCIse2Q6Im0xNiAzIDUgNSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMEExMCAxMCAwIDEgMSAxMiAyYTE0LjUgMTQuNSAwIDAgMCAwIDIwIDE0LjUgMTQuNSAwIDAgMCA0LTEwIn1dLFsicGF0aCIse2Q6Im0yMSAzLTUgNSJ9XV0sZHN0PVtbInBhdGgiLHtkOiJNMTIgMTNWMmw4IDQtOCA0In1dLFsicGF0aCIse2Q6Ik0yMC41NjEgMTAuMjIyYTkgOSAwIDEgMS0xMi41NS01LjI5In1dLFsicGF0aCIse2Q6Ik04LjAwMiA5Ljk5N2E1IDUgMCAxIDAgOC45IDIuMDIifV1dLHBzdD1bWyJwYXRoIix7ZDoiTTIgMjFWMyJ9XSxbInBhdGgiLHtkOiJNMiA1aDE4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDIuMjYifV0sWyJwYXRoIix7ZDoiTTcgMTd2M2ExIDEgMCAwIDAgMSAxaDVhMSAxIDAgMCAwIDEtMXYtMyJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjExIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMSIscjoiMiJ9XV0saHN0PVtbInBhdGgiLHtkOiJNMjEuNDIgMTAuOTIyYTEgMSAwIDAgMC0uMDE5LTEuODM4TDEyLjgzIDUuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgOS4wOGExIDEgMCAwIDAgMCAxLjgzMmw4LjU3IDMuOTA4YTIgMiAwIDAgMCAxLjY2IDB6In1dLFsicGF0aCIse2Q6Ik0yMiAxMHY2In1dLFsicGF0aCIse2Q6Ik02IDEyLjVWMTZhNiAzIDAgMCAwIDEyIDB2LTMuNSJ9XV0sdXN0PVtbInBhdGgiLHtkOiJNMjIgNVYybC01Ljg5IDUuODkifV0sWyJjaXJjbGUiLHtjeDoiMTYuNiIsY3k6IjE1Ljg5IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjguMTEiLGN5OiI3LjQiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTIuMzUiLGN5OiIxMS42NSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMy45MSIsY3k6IjUuODUiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTguMTUiLGN5OiIxMC4wOSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2LjU2IixjeToiMTMuMiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMC44IixjeToiMTcuNDQiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIzIn1dXSxwdj1bWyJwYXRoIix7ZDoiTTEyIDN2MTdhMSAxIDAgMCAxLTEgMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2NmExIDEgMCAwIDEtMSAxSDMifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dLGh2PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTkgMjJ2LTYifV1dLHV2PVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNSA1In1dLFsicGF0aCIse2Q6Im0xNiAyMSA1LTUifV1dLGZ2PVtbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxmc3Q9W1sicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0seWw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXSxtc3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxNSIscjoiMSJ9XV0sZ3N0PVtbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTkiLHI6IjEifV1dLGJzdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjEifV1dLHZzdD1bWyJwYXRoIix7ZDoiTTMgN1Y1YzAtMS4xLjktMiAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYzEuMSAwIDIgLjkgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJjMCAxLjEtLjkgMi0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWMtMS4xIDAtMi0uOS0yLTJ2LTIifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiNyIseToiNyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNSIseDoiMTAiLHk6IjEyIixyeDoiMSJ9XV0seXN0PVtbInBhdGgiLHtkOiJtMTEuOSAxMi4xIDQuNTE0LTQuNTE0In1dLFsicGF0aCIse2Q6Ik0yMC4xIDIuM2ExIDEgMCAwIDAtMS40IDBsLTEuMTE0IDEuMTE0QTIgMiAwIDAgMCAxNyA0LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMTcuODI4IDdoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMjEuNyA1LjNhMSAxIDAgMCAwIDAtMS40eiJ9XSxbInBhdGgiLHtkOiJtNiAxNiAyIDIifV0sWyJwYXRoIix7ZDoiTTguMjMgOS44NUEzIDMgMCAwIDEgMTEgOGE1IDUgMCAwIDEgNSA1IDMgMyAwIDAgMS0xLjg1IDIuNzdsLS45Mi4zOEEyIDIgMCAwIDAgMTIgMThhNCA0IDAgMCAxLTQgNCA2IDYgMCAwIDEtNi02IDQgNCAwIDAgMSA0LTQgMiAyIDAgMCAwIDEuODUtMS4yM3oifV1dLHhzdD1bWyJwYXRoIix7ZDoiTTEzLjE0NCAyMS4xNDRBNy4yNzQgMTAuNDQ1IDQ1IDEgMCAyLjg1NiAxMC44NTYifV0sWyJwYXRoIix7ZDoiTTEzLjE0NCAyMS4xNDRBNy4yNzQgNC4zNjUgNDUgMCAwIDIuODU2IDEwLjg1NmE3LjI3NCA0LjM2NSA0NSAwIDAgMTAuMjg4IDEwLjI4OCJ9XSxbInBhdGgiLHtkOiJNMTYuNTY1IDEwLjQzNSAxOC42IDguNGEyLjUwMSAyLjUwMSAwIDEgMCAxLjY1LTQuNjUgMi41IDIuNSAwIDEgMC00LjY2IDEuNjZsLTIuMDI0IDIuMDI1In1dLFsicGF0aCIse2Q6Im04LjUgMTYuNS0xLTEifV1dLHdzdD1bWyJwYXRoIix7ZDoiTTEyIDE2SDRhMiAyIDAgMSAxIDAtNGgxNmEyIDIgMCAxIDEgMCA0aC00LjI1In1dLFsicGF0aCIse2Q6Ik01IDEyYTIgMiAwIDAgMS0yLTIgOSA3IDAgMCAxIDE4IDAgMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNNSAxNmEyIDIgMCAwIDAtMiAyIDMgMyAwIDAgMCAzIDNoMTJhMyAzIDAgMCAwIDMtMyAyIDIgMCAwIDAtMi0ycTAgMCAwIDAifV0sWyJwYXRoIix7ZDoibTYuNjcgMTIgNi4xMyA0LjZhMiAyIDAgMCAwIDIuOC0uNGwzLjE1LTQuMiJ9XV0sTXN0PVtbInBhdGgiLHtkOiJtMTUgMTItOS4zNzMgOS4zNzNhMSAxIDAgMCAxLTMuMDAxLTNMMTIgOSJ9XSxbInBhdGgiLHtkOiJtMTggMTUgNC00In1dLFsicGF0aCIse2Q6Im0yMS41IDExLjUtMS45MTQtMS45MTRBMiAyIDAgMCAxIDE5IDguMTcydi0uMzQ0YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC0xLjY1Ny0xLjY1N0E2IDYgMCAwIDAgMTIuNTE2IDNIOWwxLjI0MyAxLjI0M0E2IDYgMCAwIDEgMTIgOC40ODVWMTBsMiAyaDEuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZMMTguNSAxNC41In1dXSx6c3Q9W1sicGF0aCIse2Q6Ik0xMSAxNWgyYTIgMiAwIDEgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNyJ9XSxbInBhdGgiLHtkOiJtNyAyMSAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGEyIDIgMCAwIDAtMi43NS0yLjkxbC00LjIgMy45In1dLFsicGF0aCIse2Q6Im0yIDE2IDYgNiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjkiLHI6IjIuOSJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNSIscjoiMyJ9XV0sa3N0PVtbInBhdGgiLHtkOiJNMTIuMDM1IDE3LjAxMmEzIDMgMCAwIDAtMy0zbC0uMzExLS4wMDJhLjcyLjcyIDAgMCAxLS41MDUtMS4yMjlsMS4xOTUtMS4xOTVBMiAyIDAgMCAxIDEwLjgyOCAxMUgxMmEyIDIgMCAwIDAgMC00SDkuMjQzYTMgMyAwIDAgMC0yLjEyMi44NzlsLTIuNzA3IDIuNzA3QTQuODMgNC44MyAwIDAgMCAzIDE0YTggOCAwIDAgMCA4IDhoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHYyYTIgMiAwIDEgMCA0IDAifV0sWyJwYXRoIix7ZDoiTTEzLjg4OCA5LjY2MkEyIDIgMCAwIDAgMTcgOFY1QTIgMiAwIDEgMCAxMyA1In1dLFsicGF0aCIse2Q6Ik05IDVBMiAyIDAgMSAwIDUgNVYxMCJ9XSxbInBhdGgiLHtkOiJNOSA3VjRBMiAyIDAgMSAxIDEzIDRWNy4yNjgifV1dLG12PVtbInBhdGgiLHtkOiJNMTggMTEuNVY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxLjQifV0sWyJwYXRoIix7ZDoiTTE0IDEwVjhhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTEwIDkuOVY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnY1In1dLFsicGF0aCIse2Q6Ik02IDE0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTggMTFhMiAyIDAgMSAxIDQgMHYzYTggOCAwIDAgMS04IDhoLTRhOCA4IDAgMCAxLTgtOCAyIDIgMCAxIDEgNCAwIn1dXSxTc3Q9W1sicGF0aCIse2Q6Ik0xMSAxNGgyYTIgMiAwIDAgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNiJ9XSxbInBhdGgiLHtkOiJtMTQuNDUgMTMuMzkgNS4wNS00LjY5NEMyMC4xOTYgOCAyMSA2Ljg1IDIxIDUuNzVhMi43NSAyLjc1IDAgMCAwLTQuNzk3LTEuODM3LjI3Ni4yNzYgMCAwIDEtLjQwNiAwQTIuNzUgMi43NSAwIDAgMCAxMSA1Ljc1YzAgMS4yLjgwMiAyLjI0OCAxLjUgMi45NDZMMTYgMTEuOTUifV0sWyJwYXRoIix7ZDoibTIgMTUgNiA2In1dLFsicGF0aCIse2Q6Im03IDIwIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTEgMSAwIDAgMC0yLjc1LTIuOTEifV1dLGd2PVtbInBhdGgiLHtkOiJNMTEgMTJoMmEyIDIgMCAxIDAgMC00aC0zYy0uNiAwLTEuMS4yLTEuNC42TDMgMTQifV0sWyJwYXRoIix7ZDoibTcgMTggMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMiAyIDAgMCAwLTIuNzUtMi45MWwtNC4yIDMuOSJ9XSxbInBhdGgiLHtkOiJtMiAxMyA2IDYifV1dLENzdD1bWyJwYXRoIix7ZDoiTTE4IDEyLjVWMTBhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEuNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTFWOWEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTEwIDEwLjVWNWEyIDIgMCAxIDAtNCAwdjkifV0sWyJwYXRoIix7ZDoibTcgMTUtMS43Ni0xLjc2YTIgMiAwIDAgMC0yLjgzIDIuODJsMy42IDMuNkM3LjUgMjEuMTQgOS4yIDIyIDEyIDIyaDJhOCA4IDAgMCAwIDgtOFY3YTIgMiAwIDEgMC00IDB2NSJ9XV0sX3N0PVtbInBhdGgiLHtkOiJNMTIgM1YyIn1dLFsicGF0aCIse2Q6Im0xNS40IDE3LjQgMy4yLTIuOGEyIDIgMCAxIDEgMi44IDIuOWwtMy42IDMuM2MtLjcuOC0xLjcgMS4yLTIuOCAxLjJoLTRjLTEuMSAwLTIuMS0uNC0yLjgtMS4ybC0xLjMwMi0xLjQ2NEExIDEgMCAwIDAgNi4xNTEgMTlINSJ9XSxbInBhdGgiLHtkOiJNMiAxNGgxMmEyIDIgMCAwIDEgMCA0aC0yIn1dLFsicGF0aCIse2Q6Ik00IDEwaDE2In1dLFsicGF0aCIse2Q6Ik01IDEwYTcgNyAwIDAgMSAxNCAwIn1dLFsicGF0aCIse2Q6Ik01IDE0djZhMSAxIDAgMCAxLTEgMUgyIn1dXSxUc3Q9W1sicGF0aCIse2Q6Ik0xOCAxMVY2YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTAgMTAuNVY2YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnY4In1dLFsicGF0aCIse2Q6Ik0xOCA4YTIgMiAwIDEgMSA0IDB2NmE4IDggMCAwIDEtOCA4aC0yYy0yLjggMC00LjUtLjg2LTUuOTktMi4zNGwtMy42LTMuNmEyIDIgMCAwIDEgMi44My0yLjgyTDcgMTUifV1dLExzdD1bWyJwYXRoIix7ZDoiTTIuMDQ4IDE4LjU2NkEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45NTItMi40MzRsLTItOUEyIDIgMCAwIDAgMTggOEg2YTIgMiAwIDAgMC0xLjk1MiAxLjU2NnoifV0sWyJwYXRoIix7ZDoiTTggMTFWNmE0IDQgMCAwIDEgOCAwdjUifV1dLCRzdD1bWyJwYXRoIix7ZDoibTExIDE3IDIgMmExIDEgMCAxIDAgMy0zIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAyLjUgMi41YTEgMSAwIDEgMCAzLTNsLTMuODgtMy44OGEzIDMgMCAwIDAtNC4yNCAwbC0uODguODhhMSAxIDAgMSAxLTMtM2wyLjgxLTIuODFhNS43OSA1Ljc5IDAgMCAxIDcuMDYtLjg3bC40Ny4yOGEyIDIgMCAwIDAgMS40Mi4yNUwyMSA0In1dLFsicGF0aCIse2Q6Im0yMSAzIDEgMTFoLTIifV0sWyJwYXRoIix7ZDoiTTMgMyAyIDE0bDYuNSA2LjVhMSAxIDAgMSAwIDMtMyJ9XSxbInBhdGgiLHtkOiJNMyA0aDgifV1dLEFzdD1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJtMTYgNi00IDQtNC00In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOGguMDEifV1dLERzdD1bWyJwYXRoIix7ZDoibTE2IDYtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOGguMDEifV1dLEVzdD1bWyJwYXRoIix7ZDoiTTEwIDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMi4yMTIgMTEuNTc3YTIgMiAwIDAgMC0uMjEyLjg5NlYxOGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTUuNTI3YTIgMiAwIDAgMC0uMjEyLS44OTZMMTguNTUgNS4xMUEyIDIgMCAwIDAgMTYuNzYgNEg3LjI0YTIgMiAwIDAgMC0xLjc5IDEuMTF6In1dLFsicGF0aCIse2Q6Ik0yMS45NDYgMTIuMDEzSDIuMDU0In1dLFsicGF0aCIse2Q6Ik02IDE2aC4wMSJ9XV0sUHN0PVtbInBhdGgiLHtkOiJNMTAgMTBWNWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXY1In1dLFsicGF0aCIse2Q6Ik0xNCA2YTYgNiAwIDAgMSA2IDZ2MyJ9XSxbInBhdGgiLHtkOiJNNCAxNXYtM2E2IDYgMCAwIDEgNi02In1dLFsicmVjdCIse3g6IjIiLHk6IjE1Iix3aWR0aDoiMjAiLGhlaWdodDoiNCIscng6IjEifV1dLElzdD1bWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxMCIseDI6IjgiLHkxOiIzIix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMTQiLHkxOiIzIix5MjoiMjEifV1dLE5zdD1bWyJwYXRoIix7ZDoiTTE0IDE4YTIgMiAwIDAgMC00IDAifV0sWyJwYXRoIix7ZDoibTE5IDExLTIuMTEtNi42NTdhMiAyIDAgMCAwLTIuNzUyLTEuMTQ4bC0xLjI3Ni42MUEyIDIgMCAwIDEgMTIgNEg4LjVhMiAyIDAgMCAwLTEuOTI1IDEuNDU2TDUgMTEifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjMifV1dLEZzdD1bWyJwYXRoIix7ZDoibTUuMiA2LjIgMS40IDEuNCJ9XSxbInBhdGgiLHtkOiJNMiAxM2gyIn1dLFsicGF0aCIse2Q6Ik0yMCAxM2gyIn1dLFsicGF0aCIse2Q6Im0xNy40IDcuNiAxLjQtMS40In1dLFsicGF0aCIse2Q6Ik0yMiAxN0gyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMUgyIn1dLFsicGF0aCIse2Q6Ik0xNiAxM2E0IDQgMCAwIDAtOCAwIn1dLFsicGF0aCIse2Q6Ik0xMiA1VjIuNSJ9XV0sT3N0PVtbInBhdGgiLHtkOiJNMTAgMTJINiJ9XSxbInBhdGgiLHtkOiJNMTAgMTVWOSJ9XSxbInBhdGgiLHtkOiJNMTQgMTQuNWEuNS41IDAgMCAwIC41LjVoMWEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTFBMi41IDIuNSAwIDAgMCAxNS41IDloLTFhLjUuNSAwIDAgMC0uNS41eiJ9XSxbInBhdGgiLHtkOiJNNiAxNVY5In1dLFsicmVjdCIse3g6IjIiLHk6IjUiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLFJzdD1bWyJwYXRoIix7ZDoiTTIyIDlhMSAxIDAgMCAwLTEtMUgzYTEgMSAwIDAgMC0xIDF2NGExIDEgMCAwIDAgMSAxaDFsMiAyaDEybDItMmgxYTEgMSAwIDAgMCAxLTFaIn1dLFsicGF0aCIse2Q6Ik03LjUgMTJoOSJ9XV0sQnN0PVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoibTE3IDEyIDMtMnY4In1dXSxIc3Q9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTRjMC00IDQtMyA0LTYgMC0xLjUtMi0yLjUtNC0xIn1dXSxxc3Q9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMC41YzEuNy0xIDMuNSAwIDMuNSAxLjVhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuNWMyIDEuNSA0IC4zIDQtMS41YTIgMiAwIDAgMC0yLTIifV1dLFZzdD1bWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoiTTE3IDEwdjNhMSAxIDAgMCAwIDEgMWgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMHY4In1dLFsicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XV0sanN0PVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJwYXRoIix7ZDoiTTE3IDEzdi0zaDQifV0sWyJwYXRoIix7ZDoiTTE3IDE3LjdjLjQuMi44LjMgMS4zLjMgMS41IDAgMi43LTEuMSAyLjctMi41UzE5LjggMTMgMTguMyAxM0gxNyJ9XV0sVXN0PVtbInBhdGgiLHtkOiJNNCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDE4VjYifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjYifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTBjLTIgMi0zIDMuNS0zIDYifV1dLFdzdD1bWyJwYXRoIix7ZDoiTTYgMTJoMTIifV0sWyJwYXRoIix7ZDoiTTYgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTggMjBWNCJ9XV0sR3N0PVtbInBhdGgiLHtkOiJNMjEgMTRoLTEuMzQzIn1dLFsicGF0aCIse2Q6Ik05LjEyOCAzLjQ3QTkgOSAwIDAgMSAyMSAxMnYzLjM0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMC40MTQgMjAuNDE0QTIgMiAwIDAgMSAxOSAyMWgtMWEyIDIgMCAwIDEtMi0ydi0zIn1dLFsicGF0aCIse2Q6Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAyLjYzNi02LjM2NCJ9XV0sWXN0PVtbInBhdGgiLHtkOiJNMyAxNGgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtN2E5IDkgMCAwIDEgMTggMHY3YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDMifV1dLFpzdD1bWyJwYXRoIix7ZDoiTTEyLjQwOSA1LjgyNGMtLjcwMi43OTItMS4xNSAxLjQ5Ni0xLjQxNSAyLjE2NmwyLjE1MyAyLjE1NmEuNS41IDAgMCAxIDAgLjcwN2wtMi4yOTMgMi4yOTNhLjUuNSAwIDAgMCAwIC43MDdMMTIgMTUifV0sWyJwYXRoIix7ZDoiTTEzLjUwOCAyMC4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzcuNi42IDAgMCAwIC44MTguMDAxQTUuNSA1LjUgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNXoifV1dLFhzdD1bWyJwYXRoIix7ZDoiTTMgMTFoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTVabTAgMGE5IDkgMCAxIDEgMTggMG0wIDB2NWEyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmgzWiJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2MmE0IDQgMCAwIDEtNCA0aC01In1dXSxLc3Q9W1sicGF0aCIse2Q6Ik0xOS40MTQgMTQuNDE0QzIxIDEyLjgyOCAyMiAxMS41IDIyIDkuNWE1LjUgNS41IDAgMCAwLTkuNTkxLTMuNjc2LjYuNiAwIDAgMS0uODE4LjAwMUE1LjUgNS41IDAgMCAwIDIgOS41YzAgMi4zIDEuNSA0IDMgNS41bDUuNTM1IDUuMzYyYTIgMiAwIDAgMCAyLjg3OS4wNTIgMi4xMiAyLjEyIDAgMCAwLS4wMDQtMyAyLjEyNCAyLjEyNCAwIDEgMCAzLTMgMi4xMjQgMi4xMjQgMCAwIDAgMy4wMDQgMCAyIDIgMCAwIDAgMC0yLjgyOGwtMS44ODEtMS44ODJhMi40MSAyLjQxIDAgMCAwLTMuNDA5IDBsLTEuNzEgMS43MWEyIDIgMCAwIDEtMi44MjggMCAyIDIgMCAwIDEgMC0yLjgyOGwyLjgyMy0yLjc2MiJ9XV0sUXN0PVtbInBhdGgiLHtkOiJtMTQuODc2IDE4Ljk5LTEuMzY4IDEuMzIzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjI0NCAxLjU3MiJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoNiJ9XV0sSnN0PVtbInBhdGgiLHtkOiJNMTAuNSA0Ljg5M2E1LjUgNS41IDAgMCAxIDEuMDkxLjkzMS41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDEuODcyLTEuMDAyIDMuMzU2LTIuMTg3IDQuNjU1In1dLFsicGF0aCIse2Q6Im0xNi45NjcgMTYuOTY3LTMuNDU5IDMuMzQ2YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDIuNzQ3LTQuNzYxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLGVudD1bWyJwYXRoIix7ZDoiTTIgOS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVjMCAyLjI5LTEuNSA0LTMgNS41bC01LjQ5MiA1LjMxM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjUifV0sWyJwYXRoIix7ZDoiTTMuMjIgMTNIOS41bC41LTEgMiA0LjUgMi03IDEuNSAzLjVoNS4yNyJ9XV0sdG50PVtbInBhdGgiLHtkOiJtMTQuNDc5IDE5LjM3NC0uOTcxLjkzOWEyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWE1LjIgNS4yIDAgMCAxLS4yMTkgMS40OSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoNiJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2NiJ9XV0sYW50PVtbInBhdGgiLHtkOiJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSJ9XV0saW50PVtbInBhdGgiLHtkOiJNMTEgOGMyLTMtMi0zIDAtNiJ9XSxbInBhdGgiLHtkOiJNMTUuNSA4YzItMy0yLTMgMC02In1dLFsicGF0aCIse2Q6Ik02IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2di00In1dLFsicGF0aCIse2Q6Ik0xNCAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTZ2LTQifV0sWyJwYXRoIix7ZDoiTTIwIDZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNNSAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAyMHYyIn1dXSxybnQ9W1sicGF0aCIse2Q6Ik0xMSAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xNCAzdjhhMiAyIDAgMCAwIDIgMmg1Ljg2NSJ9XSxbInBhdGgiLHtkOiJNMTcgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTdhNCA0IDAgMCAwIDQtNCA4IDYgMCAwIDAtOC02IDYgNSAwIDAgMC02IDV2M2EyIDIgMCAwIDAgMiAyeiJ9XSxbInBhdGgiLHtkOiJNMiAxMHY1In1dLFsicGF0aCIse2Q6Ik02IDNoMTYifV0sWyJwYXRoIix7ZDoiTTcgMjFoMTQifV0sWyJwYXRoIix7ZDoiTTggMTNIMiJ9XV0sc250PVtbInBhdGgiLHtkOiJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6In1dXSxubnQ9W1sicGF0aCIse2Q6Im05IDExLTYgNnYzaDlsMy0zIn1dLFsicGF0aCIse2Q6Im0yMiAxMi00LjYgNC42YTIgMiAwIDAgMS0yLjggMGwtNS4yLTUuMmEyIDIgMCAwIDEgMC0yLjhMMTQgNCJ9XV0sb250PVtbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0xMiA3djVsNCAyIn1dXSxsbnQ9W1sicGF0aCIse2Q6Ik0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjU1LjAzIDEtLjQyLjk3LS45Ny0uMDYtMS4yNy0uMjYtMy41LS44NS01LjE4In1dLFsicGF0aCIse2Q6Ik0xMS41IDYuNWMxLjY0IDAgNS0uMzggNi43MS0xLjA3LjUyLS4yLjU1LS44Mi4xMi0xLjE3QTEwIDEwIDAgMCAwIDQuMjYgMTguMzNjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODguODggMCAwIDAgLjczLS43NGMuMy0yLjE0LS4xNS0zLjUtLjYxLTQuODgifV0sWyJwYXRoIix7ZDoiTTE1LjYyIDE2Ljk1Yy4yLjg1LjYyIDIuNzYuNSA0LjI4YS43Ny43NyAwIDAgMS0uOS43IDE2LjY0IDE2LjY0IDAgMCAxLTQuMDgtMS4zNiJ9XSxbInBhdGgiLHtkOiJNMTYuMTMgMjEuMDVjMS42NS42MyAzLjY4Ljg0IDQuODcuOTFhLjkuOSAwIDAgMCAuOTYtLjk2IDE3LjY4IDE3LjY4IDAgMCAwLS45LTQuODcifV0sWyJwYXRoIix7ZDoiTTE2Ljk0IDE1LjYyYy44Ni4yIDIuNzcuNjIgNC4yOS41YS43Ny43NyAwIDAgMCAuNy0uOSAxNi42NCAxNi42NCAwIDAgMC0xLjM2LTQuMDgifV0sWyJwYXRoIix7ZDoiTTE3Ljk5IDUuNTJhMjAuODIgMjAuODIgMCAwIDEgMy4xNSA0LjUuOC44IDAgMCAxLS42OCAxLjEzYy0yLjMzLjItNS4zLS4zMi04LjI3LTEuNTcifV0sWyJwYXRoIix7ZDoiTTQuOTMgNC45MyAzIDNhLjcuNyAwIDAgMSAwLTEifV0sWyJwYXRoIix7ZDoiTTkuNTggMTIuMThjMS4yNCAyLjk4IDEuNzcgNS45NSAxLjU3IDguMjhhLjguOCAwIDAgMS0xLjEzLjY4IDIwLjgyIDIwLjgyIDAgMCAxLTQuNS0zLjE1In1dXSxjbnQ9W1sicGF0aCIse2Q6Ik0xMC44MiAxNi4xMmMxLjY5LjYgMy45MS43OSA1LjE4Ljg1LjI4LjAxLjUzLS4wOS43LS4yNyJ9XSxbInBhdGgiLHtkOiJNMTEuMTQgMjAuNTdjLjUyLjI0IDIuNDQgMS4xMiA0LjA4IDEuMzcuNDYuMDYuODYtLjI1LjktLjcxLjEyLTEuNTItLjMtMy40My0uNS00LjI4In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC43LS4yNiJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MyAyMC44MyAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTEuMTcuMS0yLjUuMDItMy45LS4yNSJ9XSxbInBhdGgiLHtkOiJNMjAuNTcgMTEuMTRjLjI0LjUyIDEuMTIgMi40NCAxLjM3IDQuMDguMDQuMy0uMDguNTktLjMxLjc1In1dLFsicGF0aCIse2Q6Ik00LjkzIDQuOTNhMTAgMTAgMCAwIDAtLjY3IDEzLjRjLjM1LjQzLjk2LjQgMS4xNy0uMTIuNjktMS43MSAxLjA3LTUuMDcgMS4wNy02LjcxIDEuMzQuNDUgMy4xLjkgNC44OC42MmEuODUuODUgMCAwIDAgLjQ4LS4yNCJ9XSxbInBhdGgiLHtkOiJNNS41MiAxNy45OWMxLjA1Ljk1IDIuOTEgMi40MiA0LjUgMy4xNWEuOC44IDAgMCAwIDEuMTMtLjY4Yy4yLTIuMzQtLjMzLTUuMy0xLjU3LTguMjgifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OGExMCAxMCAwIDAgMSA5Ljk4IDEuNThjLjQzLjM1LjQuOTYtLjEyIDEuMTctMS41LjYtNC4zLjk4LTYuMDcgMS4wNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxkbnQ9W1sicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTQgOWgtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTFoMmEyIDIgMCAwIDEgMiAydjZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMVY1YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2In1dXSxwbnQ9W1sicGF0aCIse2Q6Ik0xMCAyMnYtNi41NyJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDNWMjIifV0sWyJwYXRoIix7ZDoiTTE1IDE2YTUgNSAwIDAgMC02IDAifV0sWyJwYXRoIix7ZDoiTTE2IDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgN2guMDEifV0sWyJwYXRoIix7ZDoiTTggMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDdoLjAxIn1dLFsicmVjdCIse3g6IjQiLHk6IjIiLHdpZHRoOiIxNiIsaGVpZ2h0OiIyMCIscng6IjIifV1dLGhudD1bWyJwYXRoIix7ZDoiTTUgMjJoMTQifV0sWyJwYXRoIix7ZDoiTTUgMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTQuMTcyYTIgMiAwIDAgMC0uNTg2LTEuNDE0TDEyIDEybC00LjQxNCA0LjQxNEEyIDIgMCAwIDAgNyAxNy44MjhWMjIifV0sWyJwYXRoIix7ZDoiTTcgMnY0LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNEwxMiAxMmw0LjQxNC00LjQxNEEyIDIgMCAwIDAgMTcgNi4xNzJWMiJ9XV0sdW50PVtbInBhdGgiLHtkOiJNOC42MiAxMy44QTIuMjUgMi4yNSAwIDEgMSAxMiAxMC44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dXSxmbnQ9W1sicGF0aCIse2Q6Ik0xMCAxMlY4Ljk2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJWOC45NjQifV0sWyJwYXRoIix7ZDoiTTE1IDEyYTEgMSAwIDAgMSAxIDF2MmEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0yLTJ2LTJhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTguNSAyMUg1YTIgMiAwIDAgMS0yLTJ2LTlhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAyaC01YTIgMiAwIDAgMS0yLTJ2LTIifV1dLG1udD1bWyJwYXRoIix7ZDoiTTEyLjM1IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcxLTEuNTNsNy02YTIgMiAwIDAgMSAyLjU4IDBsNyA2QTIgMiAwIDAgMSAyMSAxMHYyLjM1In1dLFsicGF0aCIse2Q6Ik0xNC44IDEyLjRBMSAxIDAgMCAwIDE0IDEyaC00YTEgMSAwIDAgMC0xIDF2OCJ9XSxbInBhdGgiLHtkOiJNMTUgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XV0sZ250PVtbInBhdGgiLHtkOiJNOS41IDEzLjg2NmE0IDQgMCAwIDEgNSAuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiJ9XSxbInBhdGgiLHtkOiJNNyAxMC43NTRhOCA4IDAgMCAxIDEwIDAifV1dLGJ2PVtbInBhdGgiLHtkOiJNMTUgMjF2LThhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjgifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV1dLHZ2PVtbInBhdGgiLHtkOiJNMTIgMTdjNSAwIDgtMi42OSA4LTZINGMwIDMuMzEgMyA2IDggNm0tNCA0aDhtLTQtM3YzTTUuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAifV0sWyJwYXRoIix7ZDoiTTEyLjE0IDExYTMuNSAzLjUgMCAxIDEgNi43MSAwIn1dLFsicGF0aCIse2Q6Ik0xNS41IDYuNWEzLjUgMy41IDAgMSAwLTcgMCJ9XV0seXY9W1sicGF0aCIse2Q6Im03IDExIDQuMDggMTAuMzVhMSAxIDAgMCAwIDEuODQgMEwxNyAxMSJ9XSxbInBhdGgiLHtkOiJNMTcgN0E1IDUgMCAwIDAgNyA3In1dLFsicGF0aCIse2Q6Ik0xNyA3YTIgMiAwIDAgMSAwIDRIN2EyIDIgMCAwIDEgMC00In1dXSxibnQ9W1sicGF0aCIse2Q6Ik0xMy41IDhoLTMifV0sWyJwYXRoIix7ZDoibTE1IDItMSAyaDNhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYuODk5IDIyQTUgNSAwIDAgMCA3LjEgMjIifV0sWyJwYXRoIix7ZDoibTkgMiAzIDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMyJ9XV0sdm50PVtbInBhdGgiLHtkOiJNMTYgMTBoMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoMiJ9XSxbInBhdGgiLHtkOiJNNi4xNyAxNWEzIDMgMCAwIDEgNS42NiAwIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMSIscjoiMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI1Iix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSx5bnQ9W1sicGF0aCIse2Q6Ik0xMC4zIDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxMGwtMy4xLTMuMWEyIDIgMCAwIDAtMi44MTQuMDE0TDYgMjEifV0sWyJwYXRoIix7ZDoibTE0IDE5IDMgM3YtNS41In1dLFsicGF0aCIse2Q6Im0xNyAyMiAzLTMifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dLHhudD1bWyJwYXRoIix7ZDoiTTIxIDl2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjIiLHkxOiI1Iix5MjoiNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSJ9XV0sd250PVtbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dLFsicGF0aCIse2Q6Ik0xMC40MSAxMC40MWEyIDIgMCAxIDEtMi44My0yLjgzIn1dLFsibGluZSIse3gxOiIxMy41Iix4MjoiNiIseTE6IjEzLjUiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIyMSIseTE6IjEyIix5MjoiMTUifV0sWyJwYXRoIix7ZDoiTTMuNTkgMy41OUExLjk5IDEuOTkgMCAwIDAgMyA1djE0YTIgMiAwIDAgMCAyIDJoMTRjLjU1IDAgMS4wNTItLjIyIDEuNDEtLjU5In1dLFsicGF0aCIse2Q6Ik0yMSAxNVY1YTIgMiAwIDAgMC0yLTJIOSJ9XV0sTW50PVtbInBhdGgiLHtkOiJNMTUgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XSxbInBhdGgiLHtkOiJNMjEgMTIuMTdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoibTYgMjEgNS01In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXSx6bnQ9W1sicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMTEuNVYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNy41In1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXSxrbnQ9W1sicGF0aCIse2Q6Ik0xMC4zIDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnYxMGwtMy4xLTMuMWEyIDIgMCAwIDAtMi44MTQuMDE0TDYgMjEifV0sWyJwYXRoIix7ZDoibTE0IDE5LjUgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTUuNSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV0sU250PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSJ9XV0sQ250PVtbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoiTTE3IDIxaDJhMiAyIDAgMCAwIDItMiJ9XSxbInBhdGgiLHtkOiJNMjEgMTJ2MyJ9XSxbInBhdGgiLHtkOiJtMjEgMy01IDUifV0sWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoibTUgMjEgNC4xNDQtNC4xNDRhMS4yMSAxLjIxIDAgMCAxIDEuNzEyIDBMMTMgMTkifV0sWyJwYXRoIix7ZDoiTTkgM2gzIn1dLFsicmVjdCIse3g6IjMiLHk6IjExIix3aWR0aDoiMTAiLGhlaWdodDoiMTAiLHJ4OiIxIn1dXSxfbnQ9W1sicGF0aCIse2Q6Im0yMiAxMS0xLjI5Ni0xLjI5NmEyLjQgMi40IDAgMCAwLTMuNDA4IDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTQgOGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMiJ9XSxbImNpcmNsZSIse2N4OiIxMyIsY3k6IjciLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInJlY3QiLHt4OiI4Iix5OiIyIix3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSxUbnQ9W1sicGF0aCIse2Q6Ik0xMiAzdjEyIn1dLFsicGF0aCIse2Q6Im04IDExIDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTggNUg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtNCJ9XV0sTG50PVtbInBvbHlsaW5lIix7cG9pbnRzOiIyMiAxMiAxNiAxMiAxNCAxNSAxMCAxNSA4IDEyIDIgMTIifV0sWyJwYXRoIix7ZDoiTTUuNDUgNS4xMSAyIDEydjZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi02bC0zLjQ1LTYuODlBMiAyIDAgMCAwIDE2Ljc2IDRINy4yNGEyIDIgMCAwIDAtMS43OSAxLjExeiJ9XV0sJG50PVtbInBhdGgiLHtkOiJNNiAzaDEyIn1dLFsicGF0aCIse2Q6Ik02IDhoMTIifV0sWyJwYXRoIix7ZDoibTYgMTMgOC41IDgifV0sWyJwYXRoIix7ZDoiTTYgMTNoMyJ9XSxbInBhdGgiLHtkOiJNOSAxM2M2LjY2NyAwIDYuNjY3LTEwIDAtMTAifV1dLEFudD1bWyJwYXRoIix7ZDoiTTYgMTZjNSAwIDctOCAxMi04YTQgNCAwIDAgMSAwIDhjLTUgMC03LTgtMTItOGE0IDQgMCAxIDAgMCA4In1dXSxEbnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgOGguMDEifV1dLEVudD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgN2guMDEifV0sWyJwYXRoIix7ZDoiTTcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxN2guMDEifV1dLFBudD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjIwIix4OiIyIix5OiIyIixyeDoiNSIscnk6IjUifV0sWyJwYXRoIix7ZDoiTTE2IDExLjM3QTQgNCAwIDEgMSAxMi42MyA4IDQgNCAwIDAgMSAxNiAxMS4zN3oifV0sWyJsaW5lIix7eDE6IjE3LjUiLHgyOiIxNy41MSIseTE6IjYuNSIseTI6IjYuNSJ9XV0sSW50PVtbInBhdGgiLHtkOiJtMTYgMTQgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMjAgMTBhOCA4IDAgMSAwLTggOGg4In1dXSxObnQ9W1sibGluZSIse3gxOiIxOSIseDI6IjEwIix5MToiNCIseTI6IjQifV0sWyJsaW5lIix7eDE6IjE0Iix4MjoiNSIseTE6IjIwIix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XV0sRm50PVtbInBhdGgiLHtkOiJNNCAxMGE4IDggMCAxIDEgOCA4SDQifV0sWyJwYXRoIix7ZDoibTggMjItNC00IDQtNCJ9XV0sT250PVtbInBhdGgiLHtkOiJNMTIgOS41VjIxbTAtMTEuNUw2IDNtNiA2LjVMMTggMyJ9XSxbInBhdGgiLHtkOiJNNiAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNNiAxMWgxMiJ9XV0sUm50PVtbInBhdGgiLHtkOiJNMjEgMTdhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTJaIn1dLFsicGF0aCIse2Q6Ik02IDE1di0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxNVY5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMyJ9XV0sQm50PVtbInBhdGgiLHtkOiJNNSAzdjE0In1dLFsicGF0aCIse2Q6Ik0xMiAzdjgifV0sWyJwYXRoIix7ZDoiTTE5IDN2MTgifV1dLEhudD1bWyJwYXRoIix7ZDoiTTE4IDE3YTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDAgMi0yeiJ9XSxbInBhdGgiLHtkOiJNMjAuOTcgMy42MWEuNDUuNDUgMCAwIDAtLjU4LS41OEMxMC4yIDYuNiA2LjYgMTAuMiAzLjAzIDIwLjM5YS40NS40NSAwIDAgMCAuNTguNThDMTMuOCAxNy40IDE3LjQgMTMuOCAyMC45NyAzLjYxIn1dLFsicGF0aCIse2Q6Im02LjcwNyA2LjcwNyAxMC41ODYgMTAuNTg2In1dLFsicGF0aCIse2Q6Ik03IDVhMiAyIDAgMSAwLTIgMmgxYTEgMSAwIDAgMCAxLTF6In1dXSxxbnQ9W1sicGF0aCIse2Q6Ik0yLjU4NiAxNy40MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTRhNi41IDYuNSAwIDEgMC00LTR6In1dLFsiY2lyY2xlIix7Y3g6IjE2LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV1dLFZudD1bWyJwYXRoIix7ZDoiTTEyLjQgMi43YTIuNSAyLjUgMCAwIDEgMy40IDBsNS41IDUuNWEyLjUgMi41IDAgMCAxIDAgMy40bC0zLjcgMy43YTIuNSAyLjUgMCAwIDEtMy40IDBMOC43IDkuOGEyLjUgMi41IDAgMCAxIDAtMy40eiJ9XSxbInBhdGgiLHtkOiJtMTQgNyAzIDMifV0sWyJwYXRoIix7ZDoibTkuNCAxMC42LTYuODE0IDYuODE0QTIgMiAwIDAgMCAyIDE4LjgyOFYyMWExIDEgMCAwIDAgMSAxaDNhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaDFhMSAxIDAgMCAwIDEtMXYtMWExIDEgMCAwIDEgMS0xaC4xNzJhMiAyIDAgMCAwIDEuNDE0LS41ODZsLjgxNC0uODE0In1dXSxqbnQ9W1sicGF0aCIse2Q6Im0xNS41IDcuNSAyLjMgMi4zYTEgMSAwIDAgMCAxLjQgMGwyLjEtMi4xYTEgMSAwIDAgMCAwLTEuNEwxOSA0In1dLFsicGF0aCIse2Q6Im0yMSAyLTkuNiA5LjYifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTUuNSIscjoiNS41In1dXSxVbnQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgOGg0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTYgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTAgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTJ2NCJ9XV0sV250PVtbInBhdGgiLHtkOiJNIDIwIDQgQTIgMiAwIDAgMSAyMiA2In1dLFsicGF0aCIse2Q6Ik0gMjIgNiBMIDIyIDE2LjQxIn1dLFsicGF0aCIse2Q6Ik0gNyAxNiBMIDE2IDE2In1dLFsicGF0aCIse2Q6Ik0gOS42OSA0IEwgMjAgNCJ9XSxbInBhdGgiLHtkOiJNMTQgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDhoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dXSxHbnQ9W1sicGF0aCIse2Q6Ik0xMCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XV0sWW50PVtbInBhdGgiLHtkOiJNMTIgMnY1In1dLFsicGF0aCIse2Q6Ik0xNC44MjkgMTUuOTk4YTMgMyAwIDEgMS01LjY1OCAwIn1dLFsicGF0aCIse2Q6Ik0yMC45MiAxNC42MDZBMSAxIDAgMCAxIDIwIDE2SDRhMSAxIDAgMCAxLS45Mi0xLjM5NGwzLTdBMSAxIDAgMCAxIDcgN2gxMGExIDEgMCAwIDEgLjkyLjYwNnoifV1dLFpudD1bWyJwYXRoIix7ZDoiTTEwLjI5MyAyLjI5M2ExIDEgMCAwIDEgMS40MTQgMGwyLjUgMi41IDUuOTk0IDEuMjI3YTEgMSAwIDAgMSAuNTA2IDEuNjg3bC03IDdhMSAxIDAgMCAxLTEuNjg3LS41MDZsLTEuMjI3LTUuOTk0LTIuNS0yLjVhMSAxIDAgMCAxIDAtMS40MTR6In1dLFsicGF0aCIse2Q6Im0xNC4yMDcgNC43OTMtMy40MTQgMy40MTQifV0sWyJwYXRoIix7ZDoiTTMgMjBhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoibTkuMDg2IDYuNS00Ljc5MyA0Ljc5M2ExIDEgMCAwIDAtLjE4IDEuMTdMNyAxOCJ9XV0sWG50PVtbInBhdGgiLHtkOiJNMTIgMTB2MTIifV0sWyJwYXRoIix7ZDoiTTE3LjkyOSA3LjYyOUExIDEgMCAwIDEgMTcgOUg3YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgOSAyaDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNOSAyMmg2In1dXSxLbnQ9W1sicGF0aCIse2Q6Ik0xOS45MjkgMTguNjI5QTEgMSAwIDAgMSAxOSAyMEg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgMTNoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik02IDNhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTggNmg0YTIgMiAwIDAgMSAyIDJ2NSJ9XV0sUW50PVtbInBhdGgiLHtkOiJNMTkuOTI5IDkuNjI5QTEgMSAwIDAgMSAxOSAxMUg5YTEgMSAwIDAgMS0uOTI4LTEuMzcxbDItNUExIDEgMCAwIDEgMTEgNGg2YTEgMSAwIDAgMSAuOTI4LjYyOXoifV0sWyJwYXRoIix7ZDoiTTYgMTVhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJINWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik04IDE4aDRhMiAyIDAgMCAwIDItMnYtNSJ9XV0sSm50PVtbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNNC4wNzcgMTAuNjE1QTEgMSAwIDAgMCA1IDEyaDE0YTEgMSAwIDAgMCAuOTIzLTEuMzg1bC0zLjA3Ny03LjM4NEEyIDIgMCAwIDAgMTUgMkg5YTIgMiAwIDAgMC0xLjg0NiAxLjIzWiJ9XSxbInBhdGgiLHtkOiJNOCAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xeiJ9XV0sZW90PVtbInBhdGgiLHtkOiJNMTAgMTh2LTcifV0sWyJwYXRoIix7ZDoiTTExLjEyIDIuMTk4YTIgMiAwIDAgMSAxLjc2LjAwNmw3Ljg2NiAzLjg0N2MuNDc2LjIzMy4zMS45NDktLjIyLjk0OUgzLjQ3NGMtLjUzIDAtLjY5NS0uNzE2LS4yMi0uOTQ5eiJ9XSxbInBhdGgiLHtkOiJNMTQgMTh2LTcifV0sWyJwYXRoIix7ZDoiTTE4IDE4di03In1dLFsicGF0aCIse2Q6Ik0zIDIyaDE4In1dLFsicGF0aCIse2Q6Ik02IDE4di03In1dXSx0b3Q9W1sicGF0aCIse2Q6Im0xMiA4IDYtMy02LTN2MTAifV0sWyJwYXRoIix7ZDoibTggMTEuOTktNS41IDMuMTRhMSAxIDAgMCAwIDAgMS43NGw4LjUgNC44NmEyIDIgMCAwIDAgMiAwbDguNS00Ljg2YTEgMSAwIDAgMCAwLTEuNzRMMTYgMTIifV0sWyJwYXRoIix7ZDoibTYuNDkgMTIuODUgMTEuMDIgNi4zIn1dLFsicGF0aCIse2Q6Ik0xNy41MSAxMi44NSA2LjUgMTkuMTUifV1dLGFvdD1bWyJwYXRoIix7ZDoibTUgOCA2IDYifV0sWyJwYXRoIix7ZDoibTQgMTQgNi02IDItMyJ9XSxbInBhdGgiLHtkOiJNMiA1aDEyIn1dLFsicGF0aCIse2Q6Ik03IDJoMSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItNS0xMC01IDEwIn1dLFsicGF0aCIse2Q6Ik0xNCAxOGg2In1dXSxpb3Q9W1sicGF0aCIse2Q6Ik0yIDIwaDIwIn1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjE4IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV0seHY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiNCIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyMCIseTI6IjIwIn1dXSxyb3Q9W1sicGF0aCIse2Q6Ik0xOCA1YTIgMiAwIDAgMSAyIDJ2OC41MjZhMiAyIDAgMCAwIC4yMTIuODk3bDEuMDY4IDIuMTI3YTEgMSAwIDAgMS0uOSAxLjQ1SDMuNjJhMSAxIDAgMCAxLS45LTEuNDVsMS4wNjgtMi4xMjdBMiAyIDAgMCAwIDQgMTUuNTI2VjdhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTIwLjA1NCAxNS45ODdIMy45NDYifV1dLHNvdD1bWyJwYXRoIix7ZDoiTTcgMjJhNSA1IDAgMCAxLTItNCJ9XSxbInBhdGgiLHtkOiJNNyAxNi45M2MuOTYuNDMgMS45Ni43NCAyLjk5LjkxIn1dLFsicGF0aCIse2Q6Ik0zLjM0IDE0QTYuOCA2LjggMCAwIDEgMiAxMGMwLTQuNDIgNC40OC04IDEwLThzMTAgMy41OCAxMCA4YTcuMTkgNy4xOSAwIDAgMS0uMzMgMiJ9XSxbInBhdGgiLHtkOiJNNSAxOGEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDR6In1dLFsicGF0aCIse2Q6Ik0xNC4zMyAyMmgtLjA5YS4zNS4zNSAwIDAgMS0uMjQtLjMydi0xMGEuMzQuMzQgMCAwIDEgLjMzLS4zNGMuMDggMCAuMTUuMDMuMjEuMDhsNy4zNCA2YS4zMy4zMyAwIDAgMS0uMjEuNTloLTQuNDlsLTIuNTcgMy44NWEuMzUuMzUgMCAwIDEtLjI4LjE0eiJ9XV0sbm90PVtbInBhdGgiLHtkOiJNMy43MDQgMTQuNDY3YTEwIDggMCAxIDEgMy4xMTUgMi4zNzUifV0sWyJwYXRoIix7ZDoiTTcgMjJhNSA1IDAgMCAxLTItMy45OTQifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE2IixyOiIyIn1dXSxvb3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxM2E2IDYgMCAwIDEtNiA1IDYgNiAwIDAgMS02LTVoMTJaIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dLGxvdD1bWyJwYXRoIix7ZDoiTTEzIDEzLjc0YTIgMiAwIDAgMS0yIDBMMi41IDguODdhMSAxIDAgMCAxIDAtMS43NEwxMSAyLjI2YTIgMiAwIDAgMSAyIDBsOC41IDQuODdhMSAxIDAgMCAxIDAgMS43NHoifV0sWyJwYXRoIix7ZDoibTIwIDE0LjI4NSAxLjUuODQ1YTEgMSAwIDAgMSAwIDEuNzRMMTMgMjEuNzRhMiAyIDAgMCAxLTIgMGwtOC41LTQuODdhMSAxIDAgMCAxIDAtMS43NGwxLjUtLjg0NSJ9XV0sY290PVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAuODMuMTggMiAyIDAgMCAwIC44My0uMThsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44MzF6In1dLFsicGF0aCIse2Q6Ik0xNiAxN2g2In1dLFsicGF0aCIse2Q6Ik0xOSAxNHY2In1dLFsicGF0aCIse2Q6Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIC44MjUuMTc4In1dLFsicGF0aCIse2Q6Ik0yIDE3YTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGwyLjExNi0uOTYyIn1dXSx3dj1bWyJwYXRoIix7ZDoiTTEyLjgzIDIuMThhMiAyIDAgMCAwLTEuNjYgMEwyLjYgNi4wOGExIDEgMCAwIDAgMCAxLjgzbDguNTggMy45MWEyIDIgMCAwIDAgMS42NiAwbDguNTgtMy45YTEgMSAwIDAgMCAwLTEuODN6In1dLFsicGF0aCIse2Q6Ik0yIDEyYTEgMSAwIDAgMCAuNTguOTFsOC42IDMuOTFhMiAyIDAgMCAwIDEuNjUgMGw4LjU4LTMuOUExIDEgMCAwIDAgMjIgMTIifV0sWyJwYXRoIix7ZDoiTTIgMTdhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxNyJ9XV0sZG90PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxNCIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiOSIseDoiMTQiLHk6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNiIscng6IjEifV1dLHBvdD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dXSxob3Q9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTQgNGg3In1dLFsicGF0aCIse2Q6Ik0xNCA5aDcifV0sWyJwYXRoIix7ZDoiTTE0IDE1aDcifV0sWyJwYXRoIix7ZDoiTTE0IDIwaDcifV1dLHVvdD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dXSxmb3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjE0IixyeDoiMSJ9XV0sbW90PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjciLHg6IjE2Iix5OiIxNCIscng6IjEifV1dLGdvdD1bWyJwYXRoIix7ZDoiTTExIDIwQTcgNyAwIDAgMSA5LjggNi4xQzE1LjUgNSAxNyA0LjQ4IDE5IDJjMSAyIDIgNC4xOCAyIDggMCA1LjUtNC43OCAxMC0xMCAxMFoifV0sWyJwYXRoIix7ZDoiTTIgMjFjMC0zIDEuODUtNS4zNiA1LjA4LTZDOS41IDE0LjUyIDEyIDEzIDEzIDEyIn1dXSxib3Q9W1sicGF0aCIse2Q6Ik0yIDIyYzEuMjUtLjk4NyAyLjI3LTEuOTc1IDMuOS0yLjJhNS41NiA1LjU2IDAgMCAxIDMuOCAxLjUgNCA0IDAgMCAwIDYuMTg3LTIuMzUzIDMuNSAzLjUgMCAwIDAgMy42OS01LjExNkEzLjUgMy41IDAgMCAwIDIwLjk1IDggMy41IDMuNSAwIDEgMCAxNiAzLjA1YTMuNSAzLjUgMCAwIDAtNS44MzEgMS4zNzMgMy41IDMuNSAwIDAgMC01LjExNiAzLjY5IDQgNCAwIDAgMC0yLjM0OCA2LjE1NUMzLjQ5OSAxNS40MiA0LjQwOSAxNi43MTIgNC4yIDE4LjEgMy45MjYgMTkuNzQzIDMuMDE0IDIwLjczMiAyIDIyIn1dLFsicGF0aCIse2Q6Ik0yIDIyIDE3IDcifV1dLHZvdD1bWyJwYXRoIix7ZDoiTTE2IDEyaDNhMiAyIDAgMCAwIDEuOTAyLTEuMzhsMS4wNTYtMy4zMzNBMSAxIDAgMCAwIDIxIDZIM2ExIDEgMCAwIDAtLjk1OCAxLjI4N2wxLjA1NiAzLjMzNEEyIDIgMCAwIDAgNSAxMmgzIn1dLFsicGF0aCIse2Q6Ik0xOCA2VjNhMSAxIDAgMCAwLTEtMWgtMyJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiIxMiIseDoiOCIseToiMTAiLHJ4OiIxIn1dXSx5b3Q9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNyAzdjE4In1dLFsicGF0aCIse2Q6Ik0yMC40IDE4LjljLjIuNS0uMSAxLjEtLjYgMS4zbC0xLjkuN2MtLjUuMi0xLjEtLjEtMS4zLS42TDExLjEgNS4xYy0uMi0uNS4xLTEuMS42LTEuM2wxLjktLjdjLjUtLjIgMS4xLjEgMS4zLjZaIn1dXSx4b3Q9W1sicGF0aCIse2Q6Im0xNiA2IDQgMTQifV0sWyJwYXRoIix7ZDoiTTEyIDZ2MTQifV0sWyJwYXRoIix7ZDoiTTggOHYxMiJ9XSxbInBhdGgiLHtkOiJNNCA0djE2In1dXSx3b3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgNC4yNCA0LjI0In1dLFsicGF0aCIse2Q6Im0xNC44MyA5LjE3IDQuMjQtNC4yNCJ9XSxbInBhdGgiLHtkOiJtMTQuODMgMTQuODMgNC4yNCA0LjI0In1dLFsicGF0aCIse2Q6Im05LjE3IDE0LjgzLTQuMjQgNC4yNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXSxNb3Q9W1sicGF0aCIse2Q6Ik0xNCAxMmgydjgifV0sWyJwYXRoIix7ZDoiTTE0IDIwaDQifV0sWyJwYXRoIix7ZDoiTTYgMTJoNCJ9XSxbInBhdGgiLHtkOiJNNiAyMGg0In1dLFsicGF0aCIse2Q6Ik04IDIwVjhhNCA0IDAgMCAxIDcuNDY0LTIifV1dLHpvdD1bWyJwYXRoIix7ZDoiTTE2LjggMTEuMmMuOC0uOSAxLjItMiAxLjItMy4yYTYgNiAwIDAgMC05LjMtNSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik02LjMgNi4zYTQuNjcgNC42NyAwIDAgMCAxLjIgNS4yYy43LjcgMS4zIDEuNSAxLjUgMi41In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV1dLGtvdD1bWyJwYXRoIix7ZDoiTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xMCAyMmg0In1dXSxTb3Q9W1sicGF0aCIse2Q6Ik03IDMuNWM1LTIgNyAyLjUgMyA0QzEuNSAxMCAyIDE1IDUgMTZjNSAyIDktMTAgMTQtN3MuNSAxMy41LTQgMTJjLTUtMi41LjUtMTEgNi0yIn1dXSxDb3Q9W1sicGF0aCIse2Q6Ik05IDE3SDdBNSA1IDAgMCAxIDcgNyJ9XSxbInBhdGgiLHtkOiJNMTUgN2gyYTUgNSAwIDAgMSA0IDgifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sX290PVtbInBhdGgiLHtkOiJNOSAxN0g3QTUgNSAwIDAgMSA3IDdoMiJ9XSxbInBhdGgiLHtkOiJNMTUgN2gyYTUgNSAwIDEgMSAwIDEwaC0yIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dXSxUb3Q9W1sicGF0aCIse2Q6Ik0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxIn1dLFsicGF0aCIse2Q6Ik0xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MSJ9XV0sTG90PVtbInBhdGgiLHtkOiJNMTYgOGE2IDYgMCAwIDEgNiA2djdoLTR2LTdhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAydjdoLTR2LTdhNiA2IDAgMCAxIDYtNnoifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjkifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjQiLHI6IjIifV1dLCRvdD1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTlIMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggMiAyIDQtNCJ9XV0sQW90PVtbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Im0zIDE3IDIgMiA0LTQifV0sWyJwYXRoIix7ZDoibTMgNyAyIDIgNC00In1dXSxEb3Q9W1sicGF0aCIse2Q6Ik0zIDVoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0zIDE5aDgifV0sWyJwYXRoIix7ZDoibTE1IDUgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTkgMy0zIDMgMyJ9XV0sRW90PVtbInBhdGgiLHtkOiJNMyA1aDgifV0sWyJwYXRoIix7ZDoiTTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWg4In1dLFsicGF0aCIse2Q6Im0xNSA4IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE1IDE2IDMgMyAzLTMifV1dLFBvdD1bWyJwYXRoIix7ZDoiTTEwIDVoMTEifV0sWyJwYXRoIix7ZDoiTTEwIDEyaDExIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWgxMSJ9XSxbInBhdGgiLHtkOiJtMyAxMCAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Im0zIDIwIDMtMy0zLTMifV1dLElvdD1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIMyJ9XSxbInBhdGgiLHtkOiJNOSAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNiAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0yMSA1djEyYTIgMiAwIDAgMS0yIDJoLTYifV1dLE5vdD1bWyJwYXRoIix7ZDoiTTEyIDVIMiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiA1aDYifV0sWyJwYXRoIix7ZDoiTTE5IDhWMiJ9XV0sRm90PVtbInBhdGgiLHtkOiJNMiA1aDIwIn1dLFsicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsicGF0aCIse2Q6Ik05IDE5aDYifV1dLHhsPVtbInBhdGgiLHtkOiJNMjEgNUgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDExIn1dLFsicGF0aCIse2Q6Im03IDgtNCA0IDQgNCJ9XV0sd2w9W1sicGF0aCIse2Q6Ik0yMSA1SDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlIMTEifV0sWyJwYXRoIix7ZDoibTMgOCA0IDQtNCA0In1dXSxPb3Q9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXSxSb3Q9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTExIDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2VjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNiIscjoiMyJ9XV0sQm90PVtbInBhdGgiLHtkOiJNMTEgNWgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTExIDE5aDEwIn1dLFsicGF0aCIse2Q6Ik00IDRoMXY1In1dLFsicGF0aCIse2Q6Ik00IDloMiJ9XSxbInBhdGgiLHtkOiJNNi41IDIwSDMuNGMwLTEgMi42LTEuOTI1IDIuNi0zLjVhMS41IDEuNSAwIDAgMC0yLjYtMS4wMiJ9XV0sSG90PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xOCA5djYifV0sWyJwYXRoIix7ZDoiTTIxIDEyaC02In1dXSxxb3Q9W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTcgMTJIMyJ9XSxbInBhdGgiLHtkOiJNNyAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNWMtMS4zMyAwLTIuNTQuNTQtMy40MSAxLjQxTDExIDE0In1dLFsicGF0aCIse2Q6Ik0xMSAxMHY0aDQifV1dLFZvdD1bWyJwYXRoIix7ZDoiTTMgNWg2In1dLFsicGF0aCIse2Q6Ik0zIDEyaDEzIn1dLFsicGF0aCIse2Q6Ik0zIDE5aDEzIn1dLFsicGF0aCIse2Q6Im0xNiA4LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTIxIDE5VjdhMiAyIDAgMCAwLTItMmgtNiJ9XV0sam90PVtbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Im0zIDE3IDIgMiA0LTQifV0sWyJyZWN0Iix7eDoiMyIseToiNCIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dLFVvdD1bWyJwYXRoIix7ZDoiTTggNWgxMyJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XSxbInBhdGgiLHtkOiJNMyAxMGEyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTMgNXYxMmEyIDIgMCAwIDAgMiAyaDMifV1dLFdvdD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTIuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XV0sR290PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNS41IDkuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIwLjUgOS41LTUgNSJ9XV0sWW90PVtbInBhdGgiLHtkOiJNMyA1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTMgMTloLjAxIn1dLFsicGF0aCIse2Q6Ik04IDVoMTMifV0sWyJwYXRoIix7ZDoiTTggMTJoMTMifV0sWyJwYXRoIix7ZDoiTTggMTloMTMifV1dLE12PVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYifV1dLFpvdD1bWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtMTYuMiA3LjggMi45LTIuOSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoNCJ9XSxbInBhdGgiLHtkOiJtMTYuMiAxNi4yIDIuOSAyLjkifV0sWyJwYXRoIix7ZDoiTTEyIDE4djQifV0sWyJwYXRoIix7ZDoibTQuOSAxOS4xIDIuOS0yLjkifV0sWyJwYXRoIix7ZDoiTTIgMTJoNCJ9XSxbInBhdGgiLHtkOiJtNC45IDQuOSAyLjkgMi45In1dXSxYb3Q9W1sicGF0aCIse2Q6Ik0yMiAxMmExIDEgMCAwIDEtMTAgMCAxIDEgMCAwIDAtMTAgMCJ9XSxbInBhdGgiLHtkOiJNNyAyMC43YTEgMSAwIDEgMSA1LTguNyAxIDEgMCAxIDAgNS04LjYifV0sWyJwYXRoIix7ZDoiTTcgMy4zYTEgMSAwIDEgMSA1IDguNiAxIDEgMCAxIDAgNSA4LjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLEtvdD1bWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE5Iix5MjoiMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXSxRb3Q9W1sicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAydjMifV0sWyJwYXRoIix7ZDoiTTE4Ljg5IDEzLjI0YTcgNyAwIDAgMC04LjEzLTguMTMifV0sWyJwYXRoIix7ZDoiTTE5IDEyaDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik03LjA1IDcuMDVhNyA3IDAgMCAwIDkuOSA5LjkifV1dLEpvdD1bWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE5Iix5MjoiMjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNyJ9XV0sZTB0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE2IixyOiIxIn1dLFsicmVjdCIse3g6IjMiLHk6IjEwIix3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwVjdhNSA1IDAgMCAxIDEwIDB2MyJ9XV0senY9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTYiLHI6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiIxMCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBWN2E1IDUgMCAwIDEgOS4zMy0yLjUifV1dLHQwdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjExIix4OiIzIix5OiIxMSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExVjdhNSA1IDAgMCAxIDEwIDB2NCJ9XV0sa3Y9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMSIseDoiMyIseToiMTEiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMVY3YTUgNSAwIDAgMSA5LjktMSJ9XV0sYTB0PVtbInBhdGgiLHtkOiJtMTAgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTUgM2g0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMmgtNCJ9XV0saTB0PVtbInBhdGgiLHtkOiJNMyA1aDEifV0sWyJwYXRoIix7ZDoiTTMgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxIn1dLFsicGF0aCIse2Q6Ik04IDVoMSJ9XSxbInBhdGgiLHtkOiJNOCAxMmgxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDEifV0sWyJwYXRoIix7ZDoiTTEzIDVoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTMgMTloOCJ9XV0scjB0PVtbInBhdGgiLHtkOiJtMTYgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIOSJ9XSxbInBhdGgiLHtkOiJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQifV1dLHMwdD1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTFhMiAyIDAgMCAwIDQgMCA0IDQgMCAwIDAtOCAwIDYgNiAwIDAgMCAxMiAwIn1dXSxuMHQ9W1sicGF0aCIse2Q6Ik02IDIwYTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOCAxOFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjE0In1dLFsicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXSxvMHQ9W1sicGF0aCIse2Q6Im0xMiAxNSA0IDQifV0sWyJwYXRoIix7ZDoiTTIuMzUyIDEwLjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNi4wMjktNi4wMjlhMSAxIDAgMSAxIDMgM2wtNi4wMjkgNi4wMjlhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDYuMzY1LTYuMzY3QTEgMSAwIDAgMCA4LjcxNiA0LjI4MnoifV0sWyJwYXRoIix7ZDoibTUgOCA0IDQifV1dLGwwdD1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dXSxjMHQ9W1sicGF0aCIse2Q6Ik0yMiAxNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XV0sZDB0PVtbInBhdGgiLHtkOiJNMjEuMiA4LjRjLjUuMzguOC45Ny44IDEuNnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgLjgtMS42bDgtNmEyIDIgMCAwIDEgMi40IDBsOCA2WiJ9XSxbInBhdGgiLHtkOiJtMjIgMTAtOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDEwIn1dXSxwMHQ9W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOCJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XV0sU3Y9W1sicGF0aCIse2Q6Ik0yMiAxMC41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMi41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOCAxNS4yOGMuMi0uNC41LS44LjktMWEyLjEgMi4xIDAgMCAxIDIuNi40Yy4zLjQuNS44LjUgMS4zIDAgMS4zLTIgMi0yIDIifV0sWyJwYXRoIix7ZDoiTTIwIDIydi4wMSJ9XV0saDB0PVtbInBhdGgiLHtkOiJNMjIgMTIuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoNy41In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOCAyMWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZaIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuNS0xLjUifV1dLHUwdD1bWyJwYXRoIix7ZDoiTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTIwIDE0djQifV0sWyJwYXRoIix7ZDoiTTIwIDIydi4wMSJ9XV0sZjB0PVtbInBhdGgiLHtkOiJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDcifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV0sbTB0PVtbInBhdGgiLHtkOiJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDkifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoibTE3IDE3IDQgNCJ9XSxbInBhdGgiLHtkOiJtMjEgMTctNCA0In1dXSxnMHQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5LjVDMiA3IDQgNSA2LjUgNUgxOGMyLjIgMCA0IDEuOCA0IDR2OFoifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTUsOSAxOCw5IDE4LDExIn1dLFsicGF0aCIse2Q6Ik02LjUgNUM5IDUgMTEgNyAxMSA5LjVWMTdhMiAyIDAgMCAxLTIgMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjciLHkxOiIxMCIseTI6IjEwIn1dXSxiMHQ9W1sicGF0aCIse2Q6Ik0xNyAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtOGEyIDIgMCAwIDEgMS0xLjczMiJ9XSxbInBhdGgiLHtkOiJtMjIgNS41LTYuNDE5IDQuMTc5YTIgMiAwIDAgMS0yLjE2MiAwTDcgNS41In1dLFsicmVjdCIse3g6IjciLHk6IjMiLHdpZHRoOiIxNSIsaGVpZ2h0OiIxMiIscng6IjIifV1dLHYwdD1bWyJwYXRoIix7ZDoibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTQifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0VjE0In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV0seTB0PVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV1dLHgwdD1bWyJwYXRoIix7ZDoiTTE5LjQzIDEyLjkzNWMuMzU3LS45NjcuNTctMS45NTUuNTctMi45MzVhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDMyLjE5NyAzMi4xOTcgMCAwIDAgLjgxMy0uNzI4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoibTE2IDE4IDIgMiA0LTQifV1dLHcwdD1bWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIC40NDUtLjgzMmwzLTJhMSAxIDAgMCAxIDEuMTEgMGwzIDJBMSAxIDAgMCAxIDIyIDE3djRhMSAxIDAgMCAxLTEgMXoifV0sWyJwYXRoIix7ZDoiTTE4IDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgLjYwMS4yIn1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtMyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEwIixyOiIzIn1dXSxNMHQ9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV0sejB0PVtbInBhdGgiLHtkOiJNMTguOTc3IDE0QzE5LjYgMTIuNzAxIDIwIDExLjM0MyAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE2IDE4aDYifV1dLGswdD1bWyJwYXRoIix7ZDoiTTEyLjc1IDcuMDlhMyAzIDAgMCAxIDIuMTYgMi4xNiJ9XSxbInBhdGgiLHtkOiJNMTcuMDcyIDE3LjA3MmMtMS42MzQgMi4xNy0zLjUyNyAzLjkxMi00LjQ3MSA0LjcyN2ExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMS40MzItNC41NjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC40NzUgMi44MThBOCA4IDAgMCAxIDIwIDEwYzAgMS4xODMtLjMxIDIuMzc3LS44MSAzLjUzMyJ9XSxbInBhdGgiLHtkOiJNOS4xMyA5LjEzYTMgMyAwIDAgMCAzLjc0IDMuNzQifV1dLEN2PVtbInBhdGgiLHtkOiJNMTcuOTcgOS4zMDRBOCA4IDAgMCAwIDIgMTBjMCA0LjY5IDQuODg3IDkuNTYyIDcuMDIyIDExLjQ2OCJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTAiLHI6IjMifV1dLFMwdD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dLEMwdD1bWyJwYXRoIix7ZDoiTTE5LjkxNCAxMS4xMDVBNy4yOTggNy4yOTggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDMyIDMyIDAgMCAwIC44MjQtLjczOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOGg2In1dLFsicGF0aCIse2Q6Ik0xOSAxNXY2In1dXSxfMHQ9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJwYXRoIix7ZDoibTE0LjUgNy41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDcuNSA1IDUifV1dLFQwdD1bWyJwYXRoIix7ZDoiTTE5Ljc1MiAxMS45MDFBNy43OCA3Ljc4IDAgMCAwIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAxOSAxOSAwIDAgMCAuMDktLjA3NyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Im0yMS41IDE1LjUtNSA1In1dLFsicGF0aCIse2Q6Im0yMS41IDIwLjUtNS01In1dXSxMMHQ9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XV0sJDB0PVtbInBhdGgiLHtkOiJNMTggOGMwIDMuNjEzLTMuODY5IDcuNDI5LTUuMzkzIDguNzk1YTEgMSAwIDAgMS0xLjIxNCAwQzkuODcgMTUuNDI5IDYgMTEuNjEzIDYgOGE2IDYgMCAwIDEgMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTguNzE0IDE0aC0zLjcxYTEgMSAwIDAgMC0uOTQ4LjY4M2wtMi4wMDQgNkExIDEgMCAwIDAgMyAyMmgxOGExIDEgMCAwIDAgLjk0OC0xLjMxNmwtMi02YTEgMSAwIDAgMC0uOTQ5LS42ODRoLTMuNzEyIn1dXSxBMHQ9W1sicGF0aCIse2Q6Im0xMSAxOS0xLjEwNi0uNTUyYTIgMiAwIDAgMC0xLjc4OCAwbC0zLjY1OSAxLjgzQTEgMSAwIDAgMSAzIDE5LjM4MVY2LjYxOGExIDEgMCAwIDEgLjU1My0uODk0bDQuNTUzLTIuMjc3YTIgMiAwIDAgMSAxLjc4OCAwbDQuMjEyIDIuMTA2YTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5VjEyIn1dLFsicGF0aCIse2Q6Ik0xNSA1Ljc2NFYxMiJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTYifV0sWyJwYXRoIix7ZDoiTTkgMy4yMzZ2MTUifV1dLEQwdD1bWyJwYXRoIix7ZDoiTTE0LjEwNiA1LjU1M2EyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOXYxMi43NjRhMSAxIDAgMCAxLS41NTMuODk0bC00LjU1MyAyLjI3N2EyIDIgMCAwIDEtMS43ODggMGwtNC4yMTItMi4xMDZhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDB6In1dLFsicGF0aCIse2Q6Ik0xNSA1Ljc2NHYxNSJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV0sRTB0PVtbInBhdGgiLHtkOiJtMTQgNiA0IDQifV0sWyJwYXRoIix7ZDoiTTE3IDNoNHY0In1dLFsicGF0aCIse2Q6Im0yMSAzLTcuNzUgNy43NSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTUiLHI6IjYifV1dLFAwdD1bWyJwYXRoIix7ZDoiTTE2IDNoNXY1In1dLFsicGF0aCIse2Q6Im0yMSAzLTYuNzUgNi43NSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjE0IixyOiI2In1dXSxJMHQ9W1sicGF0aCIse2Q6Ik04IDIyaDgifV0sWyJwYXRoIix7ZDoiTTEyIDExdjExIn1dLFsicGF0aCIse2Q6Im0xOSAzLTcgOC03LThaIn1dXSxOMHQ9W1sicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMjEgMy03IDcifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik05IDIxSDN2LTYifV1dLEYwdD1bWyJwYXRoIix7ZDoiTTggM0g1YTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMjEgOFY1YTIgMiAwIDAgMC0yLTJoLTMifV0sWyJwYXRoIix7ZDoiTTMgMTZ2M2EyIDIgMCAwIDAgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTE2IDIxaDNhMiAyIDAgMCAwIDItMnYtMyJ9XV0sTzB0PVtbInBhdGgiLHtkOiJNNy4yMSAxNSAyLjY2IDcuMTRhMiAyIDAgMCAxIC4xMy0yLjJMNC40IDIuOEEyIDIgMCAwIDEgNiAyaDEyYTIgMiAwIDAgMSAxLjYuOGwxLjYgMi4xNGEyIDIgMCAwIDEgLjE0IDIuMkwxNi43OSAxNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTIgNS4xMiAyLjIifV0sWyJwYXRoIix7ZDoibTEzIDEyIDUuODgtOS44In1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtMmgtLjUifV1dLFIwdD1bWyJwYXRoIix7ZDoiTTExLjYzNiA2QTEzIDEzIDAgMCAwIDE5LjQgMy4yIDEgMSAwIDAgMSAyMSA0djExLjM0NCJ9XSxbInBhdGgiLHtkOiJNMTQuMzc4IDE0LjM1N0ExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djYifV1dLEIwdD1bWyJwYXRoIix7ZDoiTTExIDZhMTMgMTMgMCAwIDAgOC40LTIuOEExIDEgMCAwIDEgMjEgNHYxMmExIDEgMCAwIDEtMS42LjhBMTMgMTMgMCAwIDAgMTEgMTRINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoiTTYgMTRhMTIgMTIgMCAwIDAgMi40IDcuMiAyIDIgMCAwIDAgMy4yLTIuNEE4IDggMCAwIDEgMTAgMTQifV0sWyJwYXRoIix7ZDoiTTggNnY4In1dXSxIMHQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dLHEwdD1bWyJwYXRoIix7ZDoiTTQgNWgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxNiJ9XSxbInBhdGgiLHtkOiJNNCAxOWgxNiJ9XV0sVjB0PVtbInBhdGgiLHtkOiJNMTIgMTJ2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDE4di0yIn1dLFsicGF0aCIse2Q6Ik0xNiAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTIgMTFoMS41In1dLFsicGF0aCIse2Q6Ik0yMCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMjAuNSAxMUgyMiJ9XSxbInBhdGgiLHtkOiJNNCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMjAiLGhlaWdodDoiMTAiLHJ4OiIyIn1dXSxqMHQ9W1sicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYxMC4zYTQgNCAwIDAgMS0xLjE3MiAyLjg3Mkw0IDIyIn1dLFsicGF0aCIse2Q6Im0yMCAyMi01LTUifV1dLFUwdD1bWyJwYXRoIix7ZDoibTEwIDktMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTUgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV1dLFcwdD1bWyJwYXRoIix7ZDoiTTEwLjEgMi4xODJhMTAgMTAgMCAwIDEgMy44IDAifV0sWyJwYXRoIix7ZDoiTTEzLjkgMjEuODE4YTEwIDEwIDAgMCAxLTMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xNy42MDkgMy43MmExMCAxMCAwIDAgMSAyLjY5IDIuNyJ9XSxbInBhdGgiLHtkOiJNMi4xODIgMTMuOWExMCAxMCAwIDAgMSAwLTMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjggMTcuNjFhMTAgMTAgMCAwIDEtMi43IDIuNjkifV0sWyJwYXRoIix7ZDoiTTIxLjgxOCAxMC4xYTEwIDEwIDAgMCAxIDAgMy44In1dLFsicGF0aCIse2Q6Ik0zLjcyMSA2LjM5MWExMCAxMCAwIDAgMSAyLjctMi42OSJ9XSxbInBhdGgiLHtkOiJtNi4xNjMgMjEuMTE3LTIuOTA2Ljg1YTEgMSAwIDAgMS0xLjIzNi0xLjE2OWwuOTY1LTIuOTgifV1dLEcwdD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDUuMDA0IDIuMjI0IDMgMyAwIDAgMS0uODMyIDIuMDgzbC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ1LS4wMDF6In1dXSxZMHQ9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dXSxaMHQ9W1sicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTQuOTMgNC45MjlhMTAgMTAgMCAwIDAtMS45MzggMTEuNDEyIDIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAwIDAgMTEuMzAyLTEuOTg5In1dLFsicGF0aCIse2Q6Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSJ9XV0sWDB0PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXSxfdj1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXSxLMHQ9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJNMTIgOHY0In1dLFsicGF0aCIse2Q6Ik0xMiAxNmguMDEifV1dLFEwdD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im0xMCAxNS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik03IDEyaDhhMiAyIDAgMCAxIDIgMnYxIn1dXSxKMHQ9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dLGU0dD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dXSx0NHQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoibTEwIDgtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTQgMy0zLTMtMyJ9XV0sYTR0PVtbInBhdGgiLHtkOiJNMTQgM2gyIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWgtMiJ9XSxbInBhdGgiLHtkOiJNMiAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNMiAxNnY1LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDEuMTQ5LTEuMTQ5In1dLFsicGF0aCIse2Q6Ik0yMCAxOWEyIDIgMCAwIDAgMi0ydi0xIn1dLFsicGF0aCIse2Q6Ik0yMiAxMHYyIn1dLFsicGF0aCIse2Q6Ik0yMiA2VjVhMiAyIDAgMCAwLTItMiJ9XSxbInBhdGgiLHtkOiJNNCAzYTIgMiAwIDAgMC0yIDJ2MSJ9XSxbInBhdGgiLHtkOiJNOCAxOWgyIn1dLFsicGF0aCIse2Q6Ik04IDNoMiJ9XV0saTR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Ik0xMCA5aDQifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XV0scjR0PVtbInBhdGgiLHtkOiJNMTIuNyAzSDRhMiAyIDAgMCAwLTIgMnYxNi4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwyLjIwMi0yLjIwMkEyIDIgMCAwIDEgNi44MjggMTlIMjBhMiAyIDAgMCAwIDItMnYtNC43In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNiIscjoiMyJ9XV0sczR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik03LjUgOS41YzAgLjY4Ny4yNjUgMS4zODMuNjk3IDEuODQ0bDMuMDA5IDMuMjY0YTEuMTQgMS4xNCAwIDAgMCAuNDA3LjMxNCAxIDEgMCAwIDAgLjc4My0uMDA0IDEuMTQgMS4xNCAwIDAgMCAuMzk4LS4zMWwzLjAwOC0zLjI2NEEyLjc3IDIuNzcgMCAwIDAgMTYuNSA5LjUgMi41IDIuNSAwIDAgMCAxMiA4YTIuNSAyLjUgMCAwIDAtNC41IDEuNSJ9XV0sbjR0PVtbInBhdGgiLHtkOiJNMjIgOC41VjVhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDEwIn1dLFsicGF0aCIse2Q6Ik0yMCAxNXYtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE1Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV0sbzR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV1dLGw0dD1bWyJwYXRoIix7ZDoiTTE5IDE5SDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43LjcgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMS4xODQtMS44MjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOC42NTYgM0gyMGEyIDIgMCAwIDEgMiAydjExLjM0NCJ9XV0sYzR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiA4djYifV0sWyJwYXRoIix7ZDoiTTkgMTFoNiJ9XV0sZDR0PVtbInBhdGgiLHtkOiJNMTQgMTRhMiAyIDAgMCAwIDItMlY4aC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTggMTRhMiAyIDAgMCAwIDItMlY4SDgifV1dLHA0dD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJtMTAgOC0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHYtMWEyIDIgMCAwIDAtMi0ySDcifV1dLGg0dD1bWyJwYXRoIix7ZDoiTTEyIDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00In1dLFsicGF0aCIse2Q6Ik0xNiAzaDZ2NiJ9XSxbInBhdGgiLHtkOiJtMTYgOSA2LTYifV1dLHU0dD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNNyAxMWgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxNWg2In1dLFsicGF0aCIse2Q6Ik03IDdoOCJ9XV0sZjR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0xMiAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XV0sbTR0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xNC41IDguNS01IDUifV0sWyJwYXRoIix7ZDoibTkuNSA4LjUgNSA1In1dXSxnNHQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV1dLGI0dD1bWyJwYXRoIix7ZDoiTTE2IDEwYTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMTQuMjg2VjRhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNMjAgOWEyIDIgMCAwIDEgMiAydjEwLjI4NmEuNzEuNzEgMCAwIDEtMS4yMTIuNTAybC0yLjIwMi0yLjIwMkEyIDIgMCAwIDAgMTcuMTcyIDE5SDEwYTIgMiAwIDAgMS0yLTJ2LTEifV1dLHY0dD1bWyJwYXRoIix7ZDoiTTEyIDE5djMifV0sWyJwYXRoIix7ZDoiTTE1IDkuMzRWNWEzIDMgMCAwIDAtNS42OC0xLjMzIn1dLFsicGF0aCIse2Q6Ik0xNi45NSAxNi45NUE3IDcgMCAwIDEgNSAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTguODkgMTMuMjNBNyA3IDAgMCAwIDE5IDEydi0yIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTkgOXYzYTMgMyAwIDAgMCA1LjEyIDIuMTIifV1dLFR2PVtbInBhdGgiLHtkOiJtMTEgNy42MDEtNS45OTQgOC4xOWExIDEgMCAwIDAgLjEgMS4yOThsLjgxNy44MThhMSAxIDAgMCAwIDEuMzE0LjA4N0wxNS4wOSAxMiJ9XSxbInBhdGgiLHtkOiJNMTYuNSAyMS4xNzRDMTUuNSAyMC41IDE0LjM3MiAyMCAxMyAyMGMtMi4wNTggMC0zLjkyOCAyLjM1Ni02IDItMi4wNzItLjM1Ni0yLjc3NS0zLjM2OS0xLjUtNC41In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiNyIscjoiNSJ9XV0seTR0PVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTB2MmE3IDcgMCAwIDEtMTQgMHYtMiJ9XSxbInJlY3QiLHt4OiI5Iix5OiIyIix3aWR0aDoiNiIsaGVpZ2h0OiIxMyIscng6IjMifV1dLHg0dD1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDE3aDQifV0sWyJwYXRoIix7ZDoiTTEwIDdoNCJ9XSxbInBhdGgiLHtkOiJNMTggMTJoMiJ9XSxbInBhdGgiLHtkOiJNMTggMThoMiJ9XSxbInBhdGgiLHtkOiJNMTggNmgyIn1dLFsicGF0aCIse2Q6Ik00IDEyaDIifV0sWyJwYXRoIix7ZDoiTTQgMThoMiJ9XSxbInBhdGgiLHtkOiJNNCA2aDIifV0sWyJyZWN0Iix7eDoiNiIseToiMiIsd2lkdGg6IjEyIixoZWlnaHQ6IjIwIixyeDoiMiJ9XV0sdzR0PVtbInBhdGgiLHtkOiJNNiAxOGg4In1dLFsicGF0aCIse2Q6Ik0zIDIyaDE4In1dLFsicGF0aCIse2Q6Ik0xNCAyMmE3IDcgMCAxIDAgMC0xNGgtMSJ9XSxbInBhdGgiLHtkOiJNOSAxNGgyIn1dLFsicGF0aCIse2Q6Ik05IDEyYTIgMiAwIDAgMS0yLTJWNmg2djRhMiAyIDAgMCAxLTIgMloifV0sWyJwYXRoIix7ZDoiTTEyIDZWM2ExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYzIn1dXSxNNHQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNSIseDoiMiIseToiNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNyIseDoiNiIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NyJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicGF0aCIse2Q6Ik0xOCAxOXYyIn1dXSx6NHQ9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjMifV0sWyJwYXRoIix7ZDoiTTQgNmExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWgxM2EyIDIgMCAwIDAgMS4xNTItLjM2NWwzLjQyNC0yLjMxN2ExIDEgMCAwIDAgMC0xLjYzNWwtMy40MjQtMi4zMThBMiAyIDAgMCAwIDE3IDZ6In1dXSxrNHQ9W1sicGF0aCIse2Q6Ik04IDJoOCJ9XSxbInBhdGgiLHtkOiJNOSAydjEuMzQzTTE1IDJ2Mi43ODlhNCA0IDAgMCAwIC42NzIgMi4yMTlsLjY1Ni45ODRhNCA0IDAgMCAxIC42NzIgMi4yMnYxLjEzMU03LjggNy44bC0uMTI4LjE5MkE0IDQgMCAwIDAgNyAxMC4yMTJWMjBhMiAyIDAgMCAwIDIgMmg2YTIgMiAwIDAgMCAyLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTcgMTVhNi40NyA2LjQ3IDAgMCAxIDUgMCA2LjQ3MiA2LjQ3MiAwIDAgMCAzLjQzNS40MzUifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sUzR0PVtbInBhdGgiLHtkOiJtMTQgMTAgNy03In1dLFsicGF0aCIse2Q6Ik0yMCAxMGgtNlY0In1dLFsicGF0aCIse2Q6Im0zIDIxIDctNyJ9XSxbInBhdGgiLHtkOiJNNCAxNGg2djYifV1dLEM0dD1bWyJwYXRoIix7ZDoiTTggMmg4In1dLFsicGF0aCIse2Q6Ik05IDJ2Mi43ODlhNCA0IDAgMCAxLS42NzIgMi4yMTlsLS42NTYuOTg0QTQgNCAwIDAgMCA3IDEwLjIxMlYyMGEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMnYtOS43ODlhNCA0IDAgMCAwLS42NzItMi4yMTlsLS42NTYtLjk4NEE0IDQgMCAwIDEgMTUgNC43ODhWMiJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3MiA2LjQ3MiAwIDAgMSA1IDAgNi40NyA2LjQ3IDAgMCAwIDUgMCJ9XV0sXzR0PVtbInBhdGgiLHtkOiJNOCAzdjNhMiAyIDAgMCAxLTIgMkgzIn1dLFsicGF0aCIse2Q6Ik0yMSA4aC0zYTIgMiAwIDAgMS0yLTJWMyJ9XSxbInBhdGgiLHtkOiJNMyAxNmgzYTIgMiAwIDAgMSAyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTYgMjF2LTNhMiAyIDAgMCAxIDItMmgzIn1dXSxUNHQ9W1sicGF0aCIse2Q6Ik01IDEyaDE0In1dXSxMNHQ9W1sicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXSwkNHQ9W1sicGF0aCIse2Q6Ik0xMSAxM2EzIDMgMCAxIDEgMi44My00SDE0YTIgMiAwIDAgMSAwIDR6In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV0sQTR0PVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDcuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCA0Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAzLjIyOC0uMzgzLS45MjQifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiA4Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDMuMjI4LjM4My0uOTI0In1dLFsicGF0aCIse2Q6Im0xOS41MyA5LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiA0Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDcuMTQ4LjkyNC4zODMifV0sWyJwYXRoIix7ZDoiTTIyIDEzdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDcifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV1dLEQ0dD1bWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTIyIDEyLjMwN1YxNWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoOC42OTMifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV1dLEU0dD1bWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJwYXRoIix7ZDoibTE1IDEwLTMgMy0zLTMifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXSxQNHQ9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xNyAxN0g0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMS4xODQtMS44MjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLS4yOTMgMS4wNDIifV1dLEk0dD1bWyJwYXRoIix7ZDoiTTEwIDEzVjcifV0sWyJwYXRoIix7ZDoiTTE0IDEzVjcifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dXSxONHQ9W1sicGF0aCIse2Q6Ik0xNS4wMzMgOS40NGEuNjQ3LjY0NyAwIDAgMSAwIDEuMTJsLTQuMDY1IDIuMzUyYS42NDUuNjQ1IDAgMCAxLS45NjgtLjU2VjcuNjQ4YS42NDUuNjQ1IDAgMCAxIC45NjctLjU2eiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicmVjdCIse3g6IjIiLHk6IjMiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLEY0dD1bWyJwYXRoIix7ZDoiTTE4IDhWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTl2LTMuOTYgMy4xNSJ9XSxbInBhdGgiLHtkOiJNNyAxOWg1In1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNiIseToiMTIiLHJ4OiIyIn1dXSxPNHQ9W1sicGF0aCIse2Q6Ik01LjUgMjBIOCJ9XSxbInBhdGgiLHtkOiJNMTcgOWguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjE2Iix4OiIxMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggNkg0YTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyaDQifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNSIscjoiMSJ9XV0sUjR0PVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicmVjdCIse3g6IjIiLHk6IjMiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV0sWyJyZWN0Iix7eDoiOSIseToiNyIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV1dLEI0dD1bWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dLEg0dD1bWyJwYXRoIix7ZDoibTE0LjUgMTIuNS01LTUifV0sWyJwYXRoIix7ZDoibTkuNSAxMi41IDUtNSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dLHE0dD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMjEiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE3Iix5MjoiMjEifV1dLFY0dD1bWyJwYXRoIix7ZDoiTTE4IDVoNCJ9XSxbInBhdGgiLHtkOiJNMjAgM3Y0In1dLFsicGF0aCIse2Q6Ik0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIn1dXSxqNHQ9W1sicGF0aCIse2Q6Ik0yMC45ODUgMTIuNDg2YTkgOSAwIDEgMS05LjQ3My05LjQ3MmMuNDA1LS4wMjIuNjE3LjQ2LjQwMi44MDNhNiA2IDAgMCAwIDguMjY4IDguMjY4Yy4zNDQtLjIxNS44MjUtLjAwNC44MDMuNDAxIn1dXSxVNHQ9W1sicGF0aCIse2Q6Im0xOCAxNC0xLTMifV0sWyJwYXRoIix7ZDoibTMgOSA2IDJhMiAyIDAgMCAxIDItMmgyYTIgMiAwIDAgMSAxLjk5IDEuODEifV0sWyJwYXRoIix7ZDoiTTggMTdoM2ExIDEgMCAwIDAgMS0xIDYgNiAwIDAgMSA2LTYgMSAxIDAgMCAwIDEtMXYtLjc1QTUgNSAwIDAgMCAxNyA1In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTciLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE3IixyOiIzIn1dXSxXNHQ9W1sicGF0aCIse2Q6Im04IDMgNCA4IDUtNSA1IDE1SDJMOCAzeiJ9XSxbInBhdGgiLHtkOiJNNC4xNCAxNS4wOGMyLjYyLTEuNTcgNS4yNC0xLjQzIDcuODYuNDIgMi43NCAxLjk0IDUuNDkgMiA4LjIzLjE5In1dXSxHNHQ9W1sicGF0aCIse2Q6Im04IDMgNCA4IDUtNSA1IDE1SDJMOCAzeiJ9XV0sWTR0PVtbInBhdGgiLHtkOiJNMTIgNnYuMzQzIn1dLFsicGF0aCIse2Q6Ik0xOC4yMTggMTguMjE4QTcgNyAwIDAgMSA1IDE1VjlhNyA3IDAgMCAxIC43ODItMy4yMTgifV0sWyJwYXRoIix7ZDoiTTE5IDEzLjM0M1Y5QTcgNyAwIDAgMCA4LjU2IDIuOTAyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMiAyIDIifV1dLFo0dD1bWyJwYXRoIix7ZDoibTE1LjU1IDguNDUgNS4xMzggMi4wODdhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjNMOC40NSAxNS41NTEifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbInBhdGgiLHtkOiJtNi44MTYgMTEuNTI4LTIuNzc5LTYuODRhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDYuODQgMi43NzkifV1dLFg0dD1bWyJwYXRoIix7ZDoiTTQuMDM3IDQuNjg4YS40OTUuNDk1IDAgMCAxIC42NTEtLjY1MWwxNiA2LjVhLjUuNSAwIDAgMS0uMDYzLjk0N2wtNi4xMjQgMS41OGEyIDIgMCAwIDAtMS40MzggMS40MzVsLTEuNTc5IDYuMTI2YS41LjUgMCAwIDEtLjk0Ny4wNjN6In1dXSxLNHQ9W1sicGF0aCIse2Q6Ik0yLjAzNCAyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0NEw4LjIwNCA3LjU0NWExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NiAzLjQ0M2EuNS41IDAgMCAxLS45NDQuMDMzeiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dLFsicGF0aCIse2Q6Im0xMS44IDExLjggOC40IDguNCJ9XV0sUTR0PVtbInBhdGgiLHtkOiJNMTQgNC4xIDEyIDYifV0sWyJwYXRoIix7ZDoibTUuMSA4LTIuOS0uOCJ9XSxbInBhdGgiLHtkOiJtNiAxMi0xLjkgMiJ9XSxbInBhdGgiLHtkOiJNNy4yIDIuMiA4IDUuMSJ9XSxbInBhdGgiLHtkOiJNOS4wMzcgOS42OWEuNDk4LjQ5OCAwIDAgMSAuNjUzLS42NTNsMTEgNC41YS41LjUgMCAwIDEtLjA3NC45NDlsLTQuMzQ5IDEuMDQxYTEgMSAwIDAgMC0uNzQuNzM5bC0xLjA0IDQuMzVhLjUuNSAwIDAgMS0uOTUuMDc0eiJ9XV0sSjR0PVtbInBhdGgiLHtkOiJNMTIuNTg2IDEyLjU4NiAxOSAxOSJ9XSxbInBhdGgiLHtkOiJNMy42ODggMy4wMzdhLjQ5Ny40OTcgMCAwIDAtLjY1MS42NTFsNi41IDE1Ljk5OWEuNTAxLjUwMSAwIDAgMCAuOTQ3LS4wNjJsMS41NjktNi4wODNhMiAyIDAgMCAxIDEuNDQ4LTEuNDc5bDYuMTI0LTEuNTc5YS41LjUgMCAwIDAgLjA2My0uOTQ3eiJ9XV0sZTN0PVtbInJlY3QiLHt4OiI1Iix5OiIyIix3aWR0aDoiMTQiLGhlaWdodDoiMjAiLHJ4OiI3In1dLFsicGF0aCIse2Q6Ik0xMiA2djQifV1dLEx2PVtbInBhdGgiLHtkOiJNNSAzdjE2aDE2In1dLFsicGF0aCIse2Q6Im01IDE5IDYtNiJ9XSxbInBhdGgiLHtkOiJtMiA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE4IDE2IDMgMy0zIDMifV1dLHQzdD1bWyJwYXRoIix7ZDoiTTE5IDEzdjZoLTYifV0sWyJwYXRoIix7ZDoiTTUgMTFWNWg2In1dLFsicGF0aCIse2Q6Im01IDUgMTQgMTQifV1dLGEzdD1bWyJwYXRoIix7ZDoiTTExIDE5SDV2LTYifV0sWyJwYXRoIix7ZDoiTTEzIDVoNnY2In1dLFsicGF0aCIse2Q6Ik0xOSA1IDUgMTkifV1dLGkzdD1bWyJwYXRoIix7ZDoiTTExIDE5SDVWMTMifV0sWyJwYXRoIix7ZDoiTTE5IDVMNSAxOSJ9XV0scjN0PVtbInBhdGgiLHtkOiJNMTkgMTNWMTlIMTMifV0sWyJwYXRoIix7ZDoiTTUgNUwxOSAxOSJ9XV0sczN0PVtbInBhdGgiLHtkOiJNOCAxOEwxMiAyMkwxNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTIgMlYyMiJ9XV0sbjN0PVtbInBhdGgiLHtkOiJtMTggOCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Im02IDgtNCA0IDQgNCJ9XV0sbzN0PVtbInBhdGgiLHtkOiJNNiA4TDIgMTJMNiAxNiJ9XSxbInBhdGgiLHtkOiJNMiAxMkgyMiJ9XV0sbDN0PVtbInBhdGgiLHtkOiJNMTggOEwyMiAxMkwxOCAxNiJ9XSxbInBhdGgiLHtkOiJNMiAxMkgyMiJ9XV0sYzN0PVtbInBhdGgiLHtkOiJNNSAxMVY1SDExIn1dLFsicGF0aCIse2Q6Ik01IDVMMTkgMTkifV1dLGQzdD1bWyJwYXRoIix7ZDoiTTEzIDVIMTlWMTEifV0sWyJwYXRoIix7ZDoiTTE5IDVMNSAxOSJ9XV0scDN0PVtbInBhdGgiLHtkOiJNOCA2TDEyIDJMMTYgNiJ9XSxbInBhdGgiLHtkOiJNMTIgMlYyMiJ9XV0saDN0PVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XV0sdTN0PVtbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XSxbInBhdGgiLHtkOiJtMTUgMTktMyAzLTMtMyJ9XSxbInBhdGgiLHtkOiJtMTkgOSAzIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dLFsicGF0aCIse2Q6Im01IDktMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSA1IDMtMyAzIDMifV1dLGYzdD1bWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE4IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAxOFYybDcgNCJ9XV0sbTN0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE4IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNiAxOFYyIn1dXSxnM3Q9W1sicGF0aCIse2Q6Ik05IDE4VjVsMTItMnYxMyJ9XSxbInBhdGgiLHtkOiJtOSA5IDEyLTIifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dLGIzdD1bWyJwYXRoIix7ZDoiTTkgMThWNWwxMi0ydjEzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE2IixyOiIzIn1dXSx2M3Q9W1sicGF0aCIse2Q6Ik05LjMxIDkuMzEgNSAyMWw3LTQgNyA0LTEuMTctMy4xNyJ9XSxbInBhdGgiLHtkOiJNMTQuNTMgOC44OCAxMiAybC0xLjE3IDMuMTcifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0seTN0PVtbInBvbHlnb24iLHtwb2ludHM6IjEyIDIgMTkgMjEgMTIgMTcgNSAyMSAxMiAyIn1dXSx4M3Q9W1sicG9seWdvbiIse3BvaW50czoiMyAxMSAyMiAyIDEzIDIxIDExIDEzIDMgMTEifV1dLHczdD1bWyJwYXRoIix7ZDoiTTguNDMgOC40MyAzIDExbDggMiAyIDggMi41Ny01LjQzIn1dLFsicGF0aCIse2Q6Ik0xNy4zOSAxMS43MyAyMiAybC05LjczIDQuNjEifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sTTN0PVtbInJlY3QiLHt4OiIxNiIseToiMTYiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjIiLHk6IjE2Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XSxbInJlY3QiLHt4OiI5Iix5OiIyIix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNSAxNnYtM2ExIDEgMCAwIDEgMS0xaDEyYTEgMSAwIDAgMSAxIDF2MyJ9XSxbInBhdGgiLHtkOiJNMTIgMTJWOCJ9XV0sejN0PVtbInBhdGgiLHtkOiJNMTUgMThoLTUifV0sWyJwYXRoIix7ZDoiTTE4IDE0aC04In1dLFsicGF0aCIse2Q6Ik00IDIyaDE2YTIgMiAwIDAgMCAyLTJWNGEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDEtNCAwdi05YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiIxMCIseToiNiIscng6IjEifV1dLGszdD1bWyJwYXRoIix7ZDoiTTYgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik05LjQ2IDYuMjFhMTEuNzYgMTEuNzYgMCAwIDEgMCAxMS41OCJ9XSxbInBhdGgiLHtkOiJNMTIuOTEgNC4xYTE1LjkxIDE1LjkxIDAgMCAxIC4wMSAxNS44In1dLFsicGF0aCIse2Q6Ik0xNi4zNyAyYTIwLjE2IDIwLjE2IDAgMCAxIDAgMjAifV1dLFMzdD1bWyJwYXRoIix7ZDoiTTEyIDJ2MTAifV0sWyJwYXRoIix7ZDoibTguNSA0IDcgNCJ9XSxbInBhdGgiLHtkOiJtOC41IDggNy00In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV1dLEMzdD1bWyJwYXRoIix7ZDoiTTEzLjQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi03LjQifV0sWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggNS42MjZhMSAxIDAgMSAwLTMuMDA0LTMuMDA0bC01LjAxIDUuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XV0sXzN0PVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMTUgN2g1In1dLFsicGF0aCIse2Q6Ik0xNSAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNSAxN2g1In1dXSxUM3Q9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05LjUgOGg1In1dLFsicGF0aCIse2Q6Ik05LjUgMTJIMTYifV0sWyJwYXRoIix7ZDoiTTkuNSAxNkgxNCJ9XV0sTDN0PVtbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTYgMnYyMCJ9XV0sJDN0PVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMnYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOHYyYTIgMiAwIDAgMS0yIDJoLTEifV0sWyJwYXRoIix7ZDoiTTEzIDIyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIySDZhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNCAxNHYtMiJ9XSxbInBhdGgiLHtkOiJNNCA4VjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDYifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg1In1dXSxBM3Q9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjE4Iix4OiI0Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMGg2In1dLFsicGF0aCIse2Q6Ik04IDE0aDgifV0sWyJwYXRoIix7ZDoiTTggMThoNSJ9XV0sRDN0PVtbInBhdGgiLHtkOiJNMTIgNFYyIn1dLFsicGF0aCIse2Q6Ik01IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MkE3LjAwMyA3LjAwMyAwIDAgMCAxOSAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgNEM4IDQgNC41IDYgNCA4Yy0uMjQzLjk3LS45MTkgMS45NTItMiAzIDEuMzEtLjA4MiAxLjk3Mi0uMjkgMy0xIC41NC45Mi45ODIgMS4zNTYgMiAyIDEuNDUyLS42NDcgMS45NTQtMS4wOTggMi41LTIgLjU5NS45OTUgMS4xNTEgMS40MjcgMi41IDIgMS4zMS0uNjIxIDEuODYyLTEuMDU4IDIuNS0yIC42MjkuOTc3IDEuMTYyIDEuNDIzIDIuNSAyIDEuMjA5LS41NDggMS42OC0uOTY3IDItMiAxLjAzMi45MTYgMS42ODMgMS4xNTcgMyAxLTEuMjk3LTEuMDM2LTEuNzU4LTIuMDMtMi0zLS41LTItNC00LTgtNFoifV1dLEUzdD1bWyJwYXRoIix7ZDoiTTEyIDRWMiJ9XSxbInBhdGgiLHtkOiJNNSAxMHY0YTcuMDA0IDcuMDA0IDAgMCAwIDUuMjc3IDYuNzg3Yy40MTIuMTA0LjgwMi4yOTIgMS4xMDIuNTkyTDEyIDIybC42MjEtLjYyMWMuMy0uMy42OS0uNDg4IDEuMTAyLS41OTJhNy4wMSA3LjAxIDAgMCAwIDQuMTI1LTIuOTM5In1dLFsicGF0aCIse2Q6Ik0xOSAxMHYzLjM0MyJ9XSxbInBhdGgiLHtkOiJNMTIgMTJjLTEuMzQ5LS41NzMtMS45MDUtMS4wMDUtMi41LTItLjU0Ni45MDItMS4wNDggMS4zNTMtMi41IDItMS4wMTgtLjY0NC0xLjQ2LTEuMDgtMi0yLTEuMDI4LjcxLTEuNjkuOTE4LTMgMSAxLjA4MS0xLjA0OCAxLjc1Ny0yLjAzIDItMyAuMTk0LS43NzYuODQtMS41NTEgMS43OS0yLjIxbTExLjY1NCA1Ljk5N2MuODg3LS40NTcgMS4yOC0uODkxIDEuNTU2LTEuNzg3IDEuMDMyLjkxNiAxLjY4MyAxLjE1NyAzIDEtMS4yOTctMS4wMzYtMS43NTgtMi4wMy0yLTMtLjUtMi00LTQtOC00LS43NCAwLTEuNDYxLjA2OC0yLjE1LjE5MiJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSwkdj1bWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgOHY0In1dLFsicGF0aCIse2Q6Ik0xNS4zMTIgMmEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NmwtNC42ODgtNC42ODhBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyeiJ9XV0sUDN0PVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV0sQXY9W1sicGF0aCIse2Q6Ik0xMCAxNVY5In1dLFsicGF0aCIse2Q6Ik0xNCAxNVY5In1dLFsicGF0aCIse2Q6Ik0yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eiJ9XV0sRHY9W1sicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dLEkzdD1bWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dXSxOM3Q9W1sicGF0aCIse2Q6Ik0zIDIwaDQuNWEuNS41IDAgMCAwIC41LS41di0uMjgyYS41Mi41MiAwIDAgMC0uMjQ3LS40MzcgOCA4IDAgMSAxIDguNDk0LS4wMDEuNTIuNTIgMCAwIDAtLjI0Ny40Mzh2LjI4MmEuNS41IDAgMCAwIC41LjVIMjEifV1dLEYzdD1bWyJwYXRoIix7ZDoiTTIwLjM0MSA2LjQ4NEExMCAxMCAwIDAgMSAxMC4yNjYgMjEuODUifV0sWyJwYXRoIix7ZDoiTTMuNjU5IDE3LjUxNkExMCAxMCAwIDAgMSAxMy43NCAyLjE1MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV1dLE8zdD1bWyJwYXRoIix7ZDoiTTMgM2g2bDYgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTQgM2g3In1dXSxSM3Q9W1sicGF0aCIse2Q6Ik0xMiAxMlY0YTEgMSAwIDAgMSAxLTFoNi4yOTdhMSAxIDAgMCAxIC42NTEgMS43NTlsLTQuNjk2IDQuMDI1In1dLFsicGF0aCIse2Q6Im0xMiAyMS03LjQxNC03LjQxNEEyIDIgMCAwIDEgNCAxMi4xNzJWNi40MTVhMS4wMDIgMS4wMDIgMCAwIDEgMS43MDctLjcwN0wyMCAyMC4wMDkifV0sWyJwYXRoIix7ZDoibTEyLjIxNCAzLjM4MSA4LjQxNCAxNC45NjZhMSAxIDAgMCAxLS4xNjcgMS4xOTlsLTEuMTY4IDEuMTYzYTEgMSAwIDAgMS0uNzA2LjI5MUg2LjM1MWExIDEgMCAwIDEtLjYyNS0uMjE5TDMuMjUgMTguOGExIDEgMCAwIDEgLjYzMS0xLjc4MWw0LjE2NS4wMjcifV1dLEIzdD1bWyJwYXRoIix7ZDoiTTEyIDN2NiJ9XSxbInBhdGgiLHtkOiJNMTYuNzYgM2EyIDIgMCAwIDEgMS44IDEuMWwyLjIzIDQuNDc5YTIgMiAwIDAgMSAuMjEuODkxVjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjkuNDcyYTIgMiAwIDAgMSAuMjExLS44OTRMNS40NSA0LjFBMiAyIDAgMCAxIDcuMjQgM3oifV0sWyJwYXRoIix7ZDoiTTMuMDU0IDkuMDEzaDE3Ljg5MyJ9XV0sSDN0PVtbInBhdGgiLHtkOiJtMTYgMTYgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjkgNyAxMiAxMiAyMC43MSA3In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxMiJ9XV0scTN0PVtbInBhdGgiLHtkOiJNMTYgMTZoNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjkgNyAxMiAxMiAyMC43MSA3In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIiLHkyOiIxMiJ9XV0sVjN0PVtbInBhdGgiLHtkOiJNMTIgMjJ2LTkifV0sWyJwYXRoIix7ZDoiTTE1LjE3IDIuMjFhMS42NyAxLjY3IDAgMCAxIDEuNjMgMEwyMSA0LjU3YTEuOTMgMS45MyAwIDAgMSAwIDMuMzZMOC44MiAxNC43OWExLjY1NSAxLjY1NSAwIDAgMS0xLjY0IDBMMyAxMi40M2ExLjkzIDEuOTMgMCAwIDEgMC0zLjM2eiJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2My44N2EyLjA2IDIuMDYgMCAwIDEtMS4xMSAxLjgzbC02IDMuMDhhMS45MyAxLjkzIDAgMCAxLTEuNzggMGwtNi0zLjA4QTIuMDYgMi4wNiAwIDAgMSA0IDE2Ljg3VjEzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMi40M2ExLjkzIDEuOTMgMCAwIDAgMC0zLjM2TDguODMgMi4yYTEuNjQgMS42NCAwIDAgMC0xLjYzIDBMMyA0LjU3YTEuOTMgMS45MyAwIDAgMCAwIDMuMzZsMTIuMTggNi44NmExLjYzNiAxLjYzNiAwIDAgMCAxLjYzIDB6In1dXSxqM3Q9W1sicGF0aCIse2Q6Ik0xNiAxNmg2In1dLFsicGF0aCIse2Q6Ik0xOSAxM3Y2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dXSxVM3Q9W1sicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dLFsiY2lyY2xlIix7Y3g6IjE4LjUiLGN5OiIxNS41IixyOiIyLjUifV0sWyJwYXRoIix7ZDoiTTIwLjI3IDE3LjI3IDIyIDE5In1dXSxXM3Q9W1sicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dLFsicGF0aCIse2Q6Im0xNyAxMyA1IDVtLTUgMCA1LTUifV1dLEczdD1bWyJwYXRoIix7ZDoiTTExIDIxLjczYTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzN6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYxMiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbInBhdGgiLHtkOiJtNy41IDQuMjcgOSA1LjE1In1dXSxZM3Q9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI2Iix4OiIyIix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LTJhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC0yIn1dLFsicmVjdCIse3dpZHRoOiI0IixoZWlnaHQ6IjYiLHg6IjgiLHk6IjE2IixyeDoiMSJ9XV0sWjN0PVtbInBhdGgiLHtkOiJNMTEgNyA2IDIifV0sWyJwYXRoIix7ZDoiTTE4Ljk5MiAxMkgyLjA0MSJ9XSxbInBhdGgiLHtkOiJNMjEuMTQ1IDE4LjM4QTMuMzQgMy4zNCAwIDAgMSAyMCAxNi41YTMuMyAzLjMgMCAwIDEtMS4xNDUgMS44OGMtLjU3NS40Ni0uODU1IDEuMDItLjg1NSAxLjU5NUEyIDIgMCAwIDAgMjAgMjJhMiAyIDAgMCAwIDItMi4wMjVjMC0uNTgtLjI4NS0xLjEzLS44NTUtMS41OTUifV0sWyJwYXRoIix7ZDoibTguNSA0LjUgMi4xNDgtMi4xNDhhMS4yMDUgMS4yMDUgMCAwIDEgMS43MDQgMGw3LjI5NiA3LjI5NmExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC03LjU5MiA3LjU5MmEzLjYxNSAzLjYxNSAwIDAgMS01LjExMiAwbC0zLjg4OC0zLjg4OGEzLjYxNSAzLjYxNSAwIDAgMSAwLTUuMTEyTDUuNjcgNy4zMyJ9XV0sRXY9W1sicGF0aCIse2Q6Ik0xMCAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTcgMmExIDEgMCAwIDEgMSAxdjlINlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik02IDEyYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAwIDAgMiAyaDJhMSAxIDAgMCAxIDEgMXYyLjlhMiAyIDAgMSAwIDQgMFYxN2ExIDEgMCAwIDEgMS0xaDJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xIn1dXSxYM3Q9W1sicGF0aCIse2Q6Im0xNC42MjIgMTcuODk3LTEwLjY4LTIuOTEzIn1dLFsicGF0aCIse2Q6Ik0xOC4zNzYgMi42MjJhMSAxIDAgMSAxIDMuMDAyIDMuMDAyTDE3LjM2IDkuNjQzYS41LjUgMCAwIDAgMCAuNzA3bC45NDQuOTQ0YTIuNDEgMi40MSAwIDAgMSAwIDMuNDA4bC0uOTQ0Ljk0NGEuNS41IDAgMCAxLS43MDcgMEw4LjM1NCA3LjM0OGEuNS41IDAgMCAxIDAtLjcwN2wuOTQ0LS45NDRhMi40MSAyLjQxIDAgMCAxIDMuNDA4IDBsLjk0NC45NDRhLjUuNSAwIDAgMCAuNzA3IDB6In1dLFsicGF0aCIse2Q6Ik05IDhjLTEuODA0IDIuNzEtMy45NyAzLjQ2LTYuNTgzIDMuOTQ4YS41MDcuNTA3IDAgMCAwLS4zMDIuODE5bDcuMzIgOC44ODNhMSAxIDAgMCAwIDEuMTg1LjIwNEMxMi43MzUgMjAuNDA1IDE2IDE2Ljc5MiAxNiAxNSJ9XV0sSzN0PVtbInBhdGgiLHtkOiJNMTIgMjJhMSAxIDAgMCAxIDAtMjAgMTAgOSAwIDAgMSAxMCA5IDUgNSAwIDAgMS01IDVoLTIuMjVhMS43NSAxLjc1IDAgMCAwLTEuNCAyLjhsLjMuNGExLjc1IDEuNzUgMCAwIDEtMS40IDIuOHoifV0sWyJjaXJjbGUiLHtjeDoiMTMuNSIsY3k6IjYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTAuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiI2LjUiLGN5OiIxMi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV0sUTN0PVtbInBhdGgiLHtkOiJNMTEuMjUgMTcuMjVoMS41TDEyIDE4eiJ9XSxbInBhdGgiLHtkOiJtMTUgMTIgMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCA2LjVhLjUuNSAwIDAgMC0uNS0uNSJ9XSxbInBhdGgiLHtkOiJNMjAuNjkgOS42N2E0LjUgNC41IDAgMSAwLTcuMDQtNS41IDguMzUgOC4zNSAwIDAgMC0zLjMgMCA0LjUgNC41IDAgMSAwLTcuMDQgNS41QzIuNDkgMTEuMiAyIDEyLjg4IDIgMTQuNSAyIDE5LjQ3IDYuNDggMjIgMTIgMjJzMTAtMi41MyAxMC03LjVjMC0xLjYyLS40OC0zLjMtMS4zLTQuODMifV0sWyJwYXRoIix7ZDoiTTYgNi41YS40OTUuNDk1IDAgMCAxIC41LS41In1dLFsicGF0aCIse2Q6Im05IDEyLTIgMiJ9XV0sSjN0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Im0xNSA4LTMgMy0zLTMifV1dLFB2PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDIifV0sWyJwYXRoIix7ZDoiTTkgMTVoMSJ9XV0sZWx0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Im05IDEwIDMtMyAzIDMifV1dLHRsdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XV0sSXY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTYgMTUtMy0zIDMtMyJ9XV0sTnY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTR2MSJ9XSxbInBhdGgiLHtkOiJNOSAxOXYyIn1dLFsicGF0aCIse2Q6Ik05IDN2MiJ9XSxbInBhdGgiLHtkOiJNOSA5djEifV1dLEZ2PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoibTE0IDkgMyAzLTMgMyJ9XV0sYWx0PVtbInBhdGgiLHtkOiJNMTUgMTBWOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTV2LTEifV0sWyJwYXRoIix7ZDoiTTE1IDIxdi0yIn1dLFsicGF0aCIse2Q6Ik0xNSA1VjMifV0sWyJwYXRoIix7ZDoiTTkgMTBWOSJ9XSxbInBhdGgiLHtkOiJNOSAxNXYtMSJ9XSxbInBhdGgiLHtkOiJNOSAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNOSA1VjMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sT3Y9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XV0saWx0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dLFsicGF0aCIse2Q6Im04IDkgMyAzLTMgMyJ9XV0sUnY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDE0djEifV0sWyJwYXRoIix7ZDoiTTE1IDE5djIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MiJ9XSxbInBhdGgiLHtkOiJNMTUgOXYxIn1dXSxybHQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoibTEwIDE1LTMtMyAzLTMifV1dLHNsdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV0sbmx0PVtbInBhdGgiLHtkOiJNMTQgMTVoMSJ9XSxbInBhdGgiLHtkOiJNMTQgOWgxIn1dLFsicGF0aCIse2Q6Ik0xOSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xOSA5aDIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDIifV0sWyJwYXRoIix7ZDoiTTkgMTVoMSJ9XSxbInBhdGgiLHtkOiJNOSA5aDEifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sb2x0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoibTkgMTYgMy0zIDMgMyJ9XV0sQnY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE0IDloMSJ9XSxbInBhdGgiLHtkOiJNMTkgOWgyIn1dLFsicGF0aCIse2Q6Ik0zIDloMiJ9XSxbInBhdGgiLHtkOiJNOSA5aDEifV1dLGxsdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Im0xNSAxNC0zIDMtMy0zIn1dXSxjbHQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XV0sZGx0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTkgMTVoMTIifV1dLHBsdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XV0sSHY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNOSAyMVY5In1dXSxobHQ9W1sicGF0aCIse2Q6Im0xNiA2LTguNDE0IDguNTg2YTIgMiAwIDAgMCAyLjgyOSAyLjgyOWw4LjQxNC04LjU4NmE0IDQgMCAxIDAtNS42NTctNS42NTdsLTguMzc5IDguNTUxYTYgNiAwIDEgMCA4LjQ4NSA4LjQ4NWw4LjM3OS04LjU1MSJ9XV0sdWx0PVtbInBhdGgiLHtkOiJNOCAyMXMtNC0zLTQtOSA0LTkgNC05In1dLFsicGF0aCIse2Q6Ik0xNiAzczQgMyA0IDktNCA5LTQgOSJ9XV0sZmx0PVtbInBhdGgiLHtkOiJNMTEgMTVoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2MyJ9XSxbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTUuMjgyIDE5YTEgMSAwIDAgMCAuOTQ4LS42OGwyLjM3LTYuOTg4YTcgNyAwIDEgMC0xMy4yIDBsMi4zNyA2Ljk4OGExIDEgMCAwIDAgLjk0OC42OHoifV0sWyJwYXRoIix7ZDoiTTkgOWEzIDMgMCAxIDEgNiAwIn1dXSxtbHQ9W1sicGF0aCIse2Q6Ik01LjggMTEuMyAyIDIybDEwLjctMy43OSJ9XSxbInBhdGgiLHtkOiJNNCAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgOGguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDJoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiAyMGguMDEifV0sWyJwYXRoIix7ZDoibTIyIDItMi4yNC43NWEyLjkgMi45IDAgMCAwLTEuOTYgMy4xMmMuMS44Ni0uNTcgMS42My0xLjQ1IDEuNjNoLS4zOGMtLjg2IDAtMS42LjYtMS43NiAxLjQ0TDE0IDEwIn1dLFsicGF0aCIse2Q6Im0yMiAxMy0uODItLjMzYy0uODYtLjM0LTEuODIuMi0xLjk4IDEuMTFjLS4xMS43LS43MiAxLjIyLTEuNDMgMS4yMkgxNyJ9XSxbInBhdGgiLHtkOiJtMTEgMiAuMzMuODJjLjM0Ljg2LS4yIDEuODItMS4xMSAxLjk4QzkuNTIgNC45IDkgNS41MiA5IDYuMjNWNyJ9XSxbInBhdGgiLHtkOiJNMTEgMTNjMS45MyAxLjkzIDIuODMgNC4xNyAyIDUtLjgzLjgzLTMuMDctLjA3LTUtMi0xLjkzLTEuOTMtMi44My00LjE3LTItNSAuODMtLjgzIDMuMDcuMDcgNSAyWiJ9XV0sZ2x0PVtbInJlY3QiLHt4OiIxNCIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiMTgiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjUiLHk6IjMiLHdpZHRoOiI1IixoZWlnaHQ6IjE4IixyeDoiMSJ9XV0sYmx0PVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjQiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTYiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTBhNSA1IDAgMCAxIDUgNXYzLjVhMy41IDMuNSAwIDAgMS02Ljg0IDEuMDQ1UTYuNTIgMTcuNDggNC40NiAxNi44NEEzLjUgMy41IDAgMCAxIDUuNSAxMFoifV1dLHZsdD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik05IDZoNiJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXSxxdj1bWyJwYXRoIix7ZDoiTTEzIDIxaDgifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dLHlsdD1bWyJwYXRoIix7ZDoibTEwIDEwLTYuMTU3IDYuMTYyYTIgMiAwIDAgMC0uNS44MzNsLTEuMzIyIDQuMzZhLjUuNSAwIDAgMCAuNjIyLjYyNGw0LjM1OC0xLjMyM2EyIDIgMCAwIDAgLjgzLS41TDE0IDEzLjk4MiJ9XSxbInBhdGgiLHtkOiJtMTIuODI5IDcuMTcyIDQuMzU5LTQuMzQ2YTEgMSAwIDEgMSAzLjk4NiAzLjk4NmwtNC4zNTMgNC4zNTMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0seGx0PVtbInBhdGgiLHtkOiJNMTUuNzA3IDIxLjI5M2ExIDEgMCAwIDEtMS40MTQgMGwtMS41ODYtMS41ODZhMSAxIDAgMCAxIDAtMS40MTRsNS41ODYtNS41ODZhMSAxIDAgMCAxIDEuNDE0IDBsMS41ODYgMS41ODZhMSAxIDAgMCAxIDAgMS40MTR6In1dLFsicGF0aCIse2Q6Im0xOCAxMy0xLjM3NS02Ljg3NGExIDEgMCAwIDAtLjc0Ni0uNzc2TDMuMjM1IDIuMDI4YTEgMSAwIDAgMC0xLjIwNyAxLjIwN0w1LjM1IDE1Ljg3OWExIDEgMCAwIDAgLjc3Ni43NDZMMTMgMTgifV0sWyJwYXRoIix7ZDoibTIuMyAyLjMgNy4yODYgNy4yODYifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiMiJ9XV0sVnY9W1sicGF0aCIse2Q6Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6In1dXSx3bHQ9W1sicGF0aCIse2Q6Ik0xMyAyMWg4In1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XSxbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XV0sTWx0PVtbInBhdGgiLHtkOiJtMTAgMTAtNi4xNTcgNi4xNjJhMiAyIDAgMCAwLS41LjgzM2wtMS4zMjIgNC4zNmEuNS41IDAgMCAwIC42MjIuNjI0bDQuMzU4LTEuMzIzYTIgMiAwIDAgMCAuODMtLjVMMTQgMTMuOTgyIn1dLFsicGF0aCIse2Q6Im0xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MyJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0semx0PVtbInBhdGgiLHtkOiJNMTMgNyA4LjcgMi43YTIuNDEgMi40MSAwIDAgMC0zLjQgMEwyLjcgNS4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNEw3IDEzIn1dLFsicGF0aCIse2Q6Im04IDYgMi0yIn1dLFsicGF0aCIse2Q6Im0xOCAxNiAyLTIifV0sWyJwYXRoIix7ZDoibTE3IDExIDQuMyA0LjNjLjk0Ljk0Ljk0IDIuNDYgMCAzLjRsLTIuNiAyLjZjLS45NC45NC0yLjQ2Ljk0LTMuNCAwTDExIDE3In1dLFsicGF0aCIse2Q6Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6In1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XV0sa2x0PVtbInBhdGgiLHtkOiJNMTAuODMgMi4zOGEyIDIgMCAwIDEgMi4zNCAwbDggNS43NGEyIDIgMCAwIDEgLjczIDIuMjVsLTMuMDQgOS4yNmEyIDIgMCAwIDEtMS45IDEuMzdINy4wNGEyIDIgMCAwIDEtMS45LTEuMzdMMi4xIDEwLjM3YTIgMiAwIDAgMSAuNzMtMi4yNXoifV1dLFNsdD1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dXSxDbHQ9W1sibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiNi41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XV0sX2x0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjEifV0sWyJwYXRoIix7ZDoibTkgMjAgMy02IDMgNiJ9XSxbInBhdGgiLHtkOiJtNiA4IDYgMiA2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjQifV1dLFRsdD1bWyJwYXRoIix7ZDoiTTIwIDExSDQifV0sWyJwYXRoIix7ZDoiTTIwIDdINCJ9XSxbInBhdGgiLHtkOiJNNyAyMVY0YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMCAxMkg3In1dXSxMbHQ9W1sicGF0aCIse2Q6Ik0xMyAyYTkgOSAwIDAgMSA5IDkifV0sWyJwYXRoIix7ZDoiTTEzIDZhNSA1IDAgMCAxIDUgNSJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dLCRsdD1bWyJwYXRoIix7ZDoiTTE0IDZoOCJ9XSxbInBhdGgiLHtkOiJtMTggMiA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV0sQWx0PVtbInBhdGgiLHtkOiJNMTYgMnY2aDYifV0sWyJwYXRoIix7ZDoibTIyIDItNiA2In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV0sRGx0PVtbInBhdGgiLHtkOiJtMTYgMiA2IDYifV0sWyJwYXRoIix7ZDoibTIyIDItNiA2In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV0sRWx0PVtbInBhdGgiLHtkOiJNMTAuMSAxMy45YTE0IDE0IDAgMCAwIDMuNzMyIDIuNjY4IDEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMiAxOCAxOCAwIDAgMS0xMi43MjgtNS4yNzIifV0sWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbInBhdGgiLHtkOiJNNC43NiAxMy41ODJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgLjI0NC40NzMifV1dLFBsdD1bWyJwYXRoIix7ZDoibTE2IDggNi02In1dLFsicGF0aCIse2Q6Ik0yMiA4VjJoLTYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXSxJbHQ9W1sicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV0sTmx0PVtbImxpbmUiLHt4MToiOSIseDI6IjkiLHkxOiI0Iix5MjoiMjAifV0sWyJwYXRoIix7ZDoiTTQgN2MwLTEuNyAxLjMtMyAzLTNoMTMifV0sWyJwYXRoIix7ZDoiTTE4IDIwYy0xLjcgMC0zLTEuMy0zLTNWNCJ9XV0sRmx0PVtbInBhdGgiLHtkOiJNMTguNSA4Yy0xLjQgMC0yLjYtLjgtMy4yLTJBNi44NyA2Ljg3IDAgMCAwIDIgOXYxMWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTguNUMyMiA5LjYgMjAuNCA4IDE4LjUgOCJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNNiAxNHY0In1dLFsicGF0aCIse2Q6Ik0xMCAxNHY0In1dLFsicGF0aCIse2Q6Ik0xNCAxNHY0In1dLFsicGF0aCIse2Q6Ik0xOCAxNHY0In1dXSxPbHQ9W1sicGF0aCIse2Q6Im0xNCAxMy04LjM4MSA4LjM4YTEgMSAwIDAgMS0zLjAwMS0zTDExIDkuOTk5In1dLFsicGF0aCIse2Q6Ik0xNS45NzMgNC4wMjdBMTMgMTMgMCAwIDAgNS45MDIgMi4zNzNjLTEuMzk4LjM0Mi0xLjA5MiAyLjE1OC4yNzcgMi42MDFhMTkuOSAxOS45IDAgMCAxIDUuODIyIDMuMDI0In1dLFsicGF0aCIse2Q6Ik0xNi4wMDEgMTEuOTk5YTE5LjkgMTkuOSAwIDAgMSAzLjAyNCA1LjgyNGMuNDQ0IDEuMzY5IDIuMjYgMS42NzYgMi42MDMuMjc4QTEzIDEzIDAgMCAwIDIwIDguMDY5In1dLFsicGF0aCIse2Q6Ik0xOC4zNTIgMy4zNTJhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMGwtNS4yOTYgNS4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDUuMjk2LTUuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDR6In1dXSxSbHQ9W1sicGF0aCIse2Q6Ik0yMSA5VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBjMCAxLjEuOSAyIDIgMmg0In1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI3Iix4OiIxMiIseToiMTMiLHJ4OiIyIn1dXSxCbHQ9W1sicGF0aCIse2Q6Ik0xMSAxN2gzdjJhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhMy4xNiAzLjE2IDAgMCAwIDItMmgxYTEgMSAwIDAgMCAxLTF2LTJhMSAxIDAgMCAwLTEtMWgtMWE1IDUgMCAwIDAtMi00VjNhNCA0IDAgMCAwLTMuMiAxLjZsLS4zLjRIMTFhNiA2IDAgMCAwLTYgNnYxYTUgNSAwIDAgMCAyIDR2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXoifV0sWyJwYXRoIix7ZDoiTTE2IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4djFhMiAyIDAgMCAwIDIgMmgxIn1dXSxIbHQ9W1sicGF0aCIse2Q6Ik0yIDEwaDZWNCJ9XSxbInBhdGgiLHtkOiJtMiA0IDYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTBWN2EyIDIgMCAwIDAtMi0yaC03In1dLFsicGF0aCIse2Q6Ik0zIDE0djJhMiAyIDAgMCAwIDIgMmgzIn1dLFsicmVjdCIse3g6IjEyIix5OiIxNCIsd2lkdGg6IjEwIixoZWlnaHQ6IjciLHJ4OiIxIn1dXSxxbHQ9W1sicGF0aCIse2Q6Ik0xNCAzdjExIn1dLFsicGF0aCIse2Q6Ik0xNCA5aC0zYTMgMyAwIDAgMSAwLTZoOSJ9XSxbInBhdGgiLHtkOiJNMTggM3YxMSJ9XSxbInBhdGgiLHtkOiJNMjIgMThIMmw0LTQifV0sWyJwYXRoIix7ZDoibTYgMjItNC00In1dXSxWbHQ9W1sicGF0aCIse2Q6Ik0xMCAzdjExIn1dLFsicGF0aCIse2Q6Ik0xMCA5SDdhMSAxIDAgMCAxIDAtNmg4In1dLFsicGF0aCIse2Q6Ik0xNCAzdjExIn1dLFsicGF0aCIse2Q6Im0xOCAxNCA0IDRIMiJ9XSxbInBhdGgiLHtkOiJtMjIgMTgtNCA0In1dXSxqbHQ9W1sicGF0aCIse2Q6Ik0xMyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0SDkuNWE0LjUgNC41IDAgMCAwIDAgOUgxMyJ9XV0sVWx0PVtbInBhdGgiLHtkOiJNMTggMTFoLTRhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFoNCJ9XSxbInBhdGgiLHtkOiJNNiA3djEzYTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjcifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjUiLHg6IjQiLHk6IjIiLHJ4OiIxIn1dXSxXbHQ9W1sicGF0aCIse2Q6Im0xMC41IDIwLjUgMTAtMTBhNC45NSA0Ljk1IDAgMSAwLTctN2wtMTAgMTBhNC45NSA0Ljk1IDAgMSAwIDcgN1oifV0sWyJwYXRoIix7ZDoibTguNSA4LjUgNyA3In1dXSxHbHQ9W1sicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik0xNSA5LjM0VjdhMSAxIDAgMCAxIDEtMSAyIDIgMCAwIDAgMC00SDcuODkifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOSA5djEuNzZhMiAyIDAgMCAxLTEuMTEgMS43OWwtMS43OC45QTIgMiAwIDAgMCA1IDE1LjI0VjE2YTEgMSAwIDAgMCAxIDFoMTEifV1dLFlsdD1bWyJwYXRoIix7ZDoiTTEyIDE3djUifV0sWyJwYXRoIix7ZDoiTTkgMTAuNzZhMiAyIDAgMCAxLTEuMTEgMS43OWwtMS43OC45QTIgMiAwIDAgMCA1IDE1LjI0VjE2YTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtLjc2YTIgMiAwIDAgMC0xLjExLTEuNzlsLTEuNzgtLjlBMiAyIDAgMCAxIDE1IDEwLjc2VjdhMSAxIDAgMCAxIDEtMSAyIDIgMCAwIDAgMC00SDhhMiAyIDAgMCAwIDAgNCAxIDEgMCAwIDEgMSAxeiJ9XV0sWmx0PVtbInBhdGgiLHtkOiJtMTIgOS04LjQxNCA4LjQxNEEyIDIgMCAwIDAgMyAxOC44Mjh2MS4zNDRhMiAyIDAgMCAxLS41ODYgMS40MTRBMiAyIDAgMCAxIDMuODI4IDIxaDEuMzQ0YTIgMiAwIDAgMCAxLjQxNC0uNTg2TDE1IDEyIn1dLFsicGF0aCIse2Q6Im0xOCA5IC40LjRhMSAxIDAgMSAxLTMgM2wtMy44LTMuOGExIDEgMCAxIDEgMy0zbC40LjQgMy40LTMuNGExIDEgMCAxIDEgMyAzeiJ9XSxbInBhdGgiLHtkOiJtMiAyMiAuNDE0LS40MTQifV1dLFhsdD1bWyJwYXRoIix7ZDoibTEyIDE0LTEgMSJ9XSxbInBhdGgiLHtkOiJtMTMuNzUgMTguMjUtMS4yNSAxLjQyIn1dLFsicGF0aCIse2Q6Ik0xNy43NzUgNS42NTRhMTUuNjggMTUuNjggMCAwIDAtMTIuMTIxIDEyLjEyIn1dLFsicGF0aCIse2Q6Ik0xOC44IDkuM2ExIDEgMCAwIDAgMi4xIDcuNyJ9XSxbInBhdGgiLHtkOiJNMjEuOTY0IDIwLjczMmExIDEgMCAwIDEtMS4yMzIgMS4yMzJsLTE4LTVhMSAxIDAgMCAxLS42OTUtMS4yMzJBMTkuNjggMTkuNjggMCAwIDEgMTUuNzMyIDIuMDM3YTEgMSAwIDAgMSAxLjIzMi42OTV6In1dXSxLbHQ9W1sicGF0aCIse2Q6Ik0yIDIyaDIwIn1dLFsicGF0aCIse2Q6Ik0zLjc3IDEwLjc3IDIgOWwyLTQuNSAxLjEuNTVjLjU1LjI4LjkuODQuOSAxLjQ1cy4zNSAxLjE3LjkgMS40NUw4IDguNWwzLTYgMS4wNS41M2EyIDIgMCAwIDEgMS4wOSAxLjUybC43MiA1LjRhMiAyIDAgMCAwIDEuMDkgMS41Mmw0LjQgMi4yYy40Mi4yMi43OC41NSAxLjAxLjk2bC42IDEuMDNjLjQ5Ljg4LS4wNiAxLjk4LTEuMDYgMi4xbC0xLjE4LjE1Yy0uNDcuMDYtLjk1LS4wMi0xLjM3LS4yNEw0LjI5IDExLjE1YTIgMiAwIDAgMS0uNTItLjM4WiJ9XV0sUWx0PVtbInBhdGgiLHtkOiJNMiAyMmgyMCJ9XSxbInBhdGgiLHtkOiJNNi4zNiAxNy40IDQgMTdsLTItNCAxLjEtLjU1YTIgMiAwIDAgMSAxLjggMGwuMTcuMWEyIDIgMCAwIDAgMS44IDBMOCAxMiA1IDZsLjktLjQ1YTIgMiAwIDAgMSAyLjA5LjJsNC4wMiAzYTIgMiAwIDAgMCAyLjEuMmw0LjE5LTIuMDZhMi40MSAyLjQxIDAgMCAxIDEuNzMtLjE3TDIxIDdhMS40IDEuNCAwIDAgMSAuODcgMS45OWwtLjM4Ljc2Yy0uMjMuNDYtLjYuODQtMS4wNyAxLjA4TDcuNTggMTcuMmEyIDIgMCAwIDEtMS4yMi4xOFoifV1dLEpsdD1bWyJwYXRoIix7ZDoiTTE3LjggMTkuMiAxNiAxMWwzLjUtMy41QzIxIDYgMjEuNSA0IDIxIDNjLTEtLjUtMyAwLTQuNSAxLjVMMTMgOCA0LjggNi4yYy0uNS0uMS0uOS4xLTEuMS41bC0uMy41Yy0uMi41LS4xIDEgLjMgMS4zTDkgMTJsLTIgM0g0bC0xIDEgMyAyIDIgMyAxLTF2LTNsMy0yIDMuNSA1LjNjLjMuNC44LjUgMS4zLjNsLjUtLjJjLjQtLjMuNi0uNy41LTEuMnoifV1dLGVjdD1bWyJwYXRoIix7ZDoiTTUgNWEyIDIgMCAwIDEgMy4wMDgtMS43MjhsMTEuOTk3IDYuOTk4YTIgMiAwIDAgMSAuMDAzIDMuNDU4bC0xMiA3QTIgMiAwIDAgMSA1IDE5eiJ9XV0sdGN0PVtbInBhdGgiLHtkOiJNOSAydjYifV0sWyJwYXRoIix7ZDoiTTE1IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NSJ9XSxbInBhdGgiLHtkOiJNNSA4aDE0In1dLFsicGF0aCIse2Q6Ik02IDExVjhoMTJ2M2E2IDYgMCAxIDEtMTIgMFoifV1dLGp2PVtbInBhdGgiLHtkOiJNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFoifV0sWyJwYXRoIix7ZDoibTIgMjIgMy0zIn1dLFsicGF0aCIse2Q6Ik03LjUgMTMuNSAxMCAxMSJ9XSxbInBhdGgiLHtkOiJNMTAuNSAxNi41IDEzIDE0In1dLFsicGF0aCIse2Q6Im0xOCAzLTQgNGg2bC00IDQifV1dLGFjdD1bWyJwYXRoIix7ZDoiTTEyIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNSA4VjIifV0sWyJwYXRoIix7ZDoiTTE3IDhhMSAxIDAgMCAxIDEgMXY0YTQgNCAwIDAgMS00IDRoLTRhNCA0IDAgMCAxLTQtNFY5YTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik05IDhWMiJ9XV0saWN0PVtbInBhdGgiLHtkOiJNNSAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNXYxNCJ9XV0scmN0PVtbInBhdGgiLHtkOiJNMyAydjFjMCAxIDIgMSAyIDJTMyA2IDMgN3MyIDEgMiAyLTIgMS0yIDIgMiAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTggNmguMDEifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMC44MyA4LjgzYTQgNCAwIDAgMC01LjY2LTUuNjZsLTEyIDEyYTQgNCAwIDEgMCA1LjY2IDUuNjZaIn1dLFsicGF0aCIse2Q6Ik0xOCAxMS42NlYyMmE0IDQgMCAwIDAgNC00VjYifV1dLHNjdD1bWyJwYXRoIix7ZDoiTTEzIDE3YTEgMSAwIDEgMC0yIDBsLjUgNC41YTAuNSAwLjUgMCAwIDAgMSAweiIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Ik0xNi44NSAxOC41OGE5IDkgMCAxIDAtOS43IDAifV0sWyJwYXRoIix7ZDoiTTggMTRhNSA1IDAgMSAxIDggMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiIxIixmaWxsOiJjdXJyZW50Q29sb3IifV1dLG5jdD1bWyJwYXRoIix7ZDoiTTIwIDNhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0yMCAwVjVhMiAyIDAgMCAxIDItMnoifV0sWyJwYXRoIix7ZDoibTggMTAgNCA0IDQtNCJ9XV0sb2N0PVtbInBhdGgiLHtkOiJNMTAgNC41VjRhMiAyIDAgMCAwLTIuNDEtMS45NTcifV0sWyJwYXRoIix7ZDoiTTEzLjkgOC40YTIgMiAwIDAgMC0xLjI2LTEuMjk1In1dLFsicGF0aCIse2Q6Ik0yMS43IDE2LjJBOCA4IDAgMCAwIDIyIDE0di0zYTIgMiAwIDEgMC00IDB2LTFhMiAyIDAgMCAwLTMuNjMtMS4xNTgifV0sWyJwYXRoIix7ZDoibTcgMTUtMS44LTEuOGEyIDIgMCAwIDAtMi43OSAyLjg2TDYgMTkuN2E3Ljc0IDcuNzQgMCAwIDAgNiAyLjNoMmE4IDggMCAwIDAgNS42NTctMi4zNDMifV0sWyJwYXRoIix7ZDoiTTYgNnY4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLGxjdD1bWyJwYXRoIix7ZDoiTTIyIDE0YTggOCAwIDAgMS04IDgifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xYTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOWEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTAgOS41VjRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtMmMtMi44IDAtNC41LS44Ni01Ljk5LTIuMzRsLTMuNi0zLjZhMiAyIDAgMCAxIDIuODMtMi44Mkw3IDE1In1dXSxjY3Q9W1sicGF0aCIse2Q6Ik0xOCA4YTIgMiAwIDAgMCAwLTQgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwIDAgNCJ9XSxbInBhdGgiLHtkOiJNMTAgMjIgOSA4In1dLFsicGF0aCIse2Q6Im0xNCAyMiAxLTE0In1dLFsicGF0aCIse2Q6Ik0yMCA4Yy41IDAgLjkuNC44IDFsLTIuNiAxMmMtLjEuNS0uNyAxLTEuMiAxSDdjLS42IDAtMS4xLS40LTEuMi0xTDMuMiA5Yy0uMS0uNi4zLTEgLjgtMVoifV1dLGRjdD1bWyJwYXRoIix7ZDoiTTE4LjYgMTQuNGMuOC0uOC44LTIgMC0yLjhsLTguMS04LjFhNC45NSA0Ljk1IDAgMSAwLTcuMSA3LjFsOC4xIDguMWMuOS43IDIuMS43IDIuOS0uMVoifV0sWyJwYXRoIix7ZDoibTIyIDIyLTUuNS01LjUifV1dLHBjdD1bWyJwYXRoIix7ZDoiTTE4IDdjMC01LjMzMy04LTUuMzMzLTggMCJ9XSxbInBhdGgiLHtkOiJNMTAgN3YxNCJ9XSxbInBhdGgiLHtkOiJNNiAyMWgxMiJ9XSxbInBhdGgiLHtkOiJNNiAxM2gxMCJ9XV0saGN0PVtbInBhdGgiLHtkOiJNMTguMzYgNi42NEE5IDkgMCAwIDEgMjAuNzcgMTUifV0sWyJwYXRoIix7ZDoiTTYuMTYgNi4xNmE5IDkgMCAxIDAgMTIuNjggMTIuNjgifV0sWyJwYXRoIix7ZDoiTTEyIDJ2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSx1Y3Q9W1sicGF0aCIse2Q6Ik0xMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0xOC40IDYuNmE5IDkgMCAxIDEtMTIuNzcuMDQifV1dLGZjdD1bWyJwYXRoIix7ZDoiTTEzLjUgMjJIN2ExIDEgMCAwIDEtMS0xdi02YTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXYuNSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dXSxtY3Q9W1sicGF0aCIse2Q6Ik0yIDNoMjAifV0sWyJwYXRoIix7ZDoiTTIxIDN2MTFhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWMyJ9XSxbInBhdGgiLHtkOiJtNyAyMSA1LTUgNSA1In1dXSxnY3Q9W1sicGF0aCIse2Q6Ik0xMi41MzEgMjJIN2ExIDEgMCAwIDEtMS0xdi02YTEgMSAwIDAgMSAxLTFoNi4zNzcifV0sWyJwYXRoIix7ZDoibTE2LjUgMTYuNSA1IDUifV0sWyJwYXRoIix7ZDoibTE2LjUgMjEuNSA1LTUifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxLjUifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dXSxiY3Q9W1sicGF0aCIse2Q6Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik02IDlWM2ExIDEgMCAwIDEgMS0xaDEwYTEgMSAwIDAgMSAxIDF2NiJ9XSxbInJlY3QiLHt4OiI2Iix5OiIxNCIsd2lkdGg6IjEyIixoZWlnaHQ6IjgiLHJ4OiIxIn1dXSx2Y3Q9W1sicGF0aCIse2Q6Ik01IDcgMyA1In1dLFsicGF0aCIse2Q6Ik05IDZWMyJ9XSxbInBhdGgiLHtkOiJtMTMgNyAyLTIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEzIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMS44MyAxMkgyMGEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmgyLjE3In1dLFsicGF0aCIse2Q6Ik0xNiAxNmgyIn1dXSx5Y3Q9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDl2MTEifV0sWyJwYXRoIix7ZDoiTTIgOWgxM2EyIDIgMCAwIDEgMiAydjkifV1dLHhjdD1bWyJwYXRoIix7ZDoiTTE1LjM5IDQuMzlhMSAxIDAgMCAwIDEuNjgtLjQ3NCAyLjUgMi41IDAgMSAxIDMuMDE0IDMuMDE1IDEgMSAwIDAgMC0uNDc0IDEuNjhsMS42ODMgMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMCAzLjQxNEwxOS42MSAxNS4zOWExIDEgMCAwIDEtMS42OC0uNDc0IDIuNSAyLjUgMCAxIDAtMy4wMTQgMy4wMTUgMSAxIDAgMCAxIC40NzQgMS42OGwtMS42ODMgMS42ODJhMi40MTQgMi40MTQgMCAwIDEtMy40MTQgMEw4LjYxIDE5LjYxYTEgMSAwIDAgMC0xLjY4LjQ3NCAyLjUgMi41IDAgMSAxLTMuMDE0LTMuMDE1IDEgMSAwIDAgMCAuNDc0LTEuNjhsLTEuNjgzLTEuNjgyYTIuNDE0IDIuNDE0IDAgMCAxIDAtMy40MTRMNC4zOSA4LjYxYTEgMSAwIDAgMSAxLjY4LjQ3NCAyLjUgMi41IDAgMSAwIDMuMDE0LTMuMDE1IDEgMSAwIDAgMS0uNDc0LTEuNjhsMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMy40MTQgMHoifV1dLHdjdD1bWyJwYXRoIix7ZDoiTTIuNSAxNi44OGExIDEgMCAwIDEtLjMyLTEuNDNsOS0xMy4wMmExIDEgMCAwIDEgMS42NCAwbDkgMTMuMDFhMSAxIDAgMCAxLS4zMiAxLjQ0bC04LjUxIDQuODZhMiAyIDAgMCAxLTEuOTggMFoifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV1dLE1jdD1bWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMTYiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI1IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZoLTNhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yMSAyMXYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDd2M2EyIDIgMCAwIDEtMiAySDcifV0sWyJwYXRoIix7ZDoiTTMgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMSAxMnYuMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi0xIn1dXSx6Y3Q9W1sicGF0aCIse2Q6Ik0xNiAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyIDEgMSAwIDAgMSAxIDF2MWEyIDIgMCAwIDEtMiAyIDEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxIDYgNiAwIDAgMCA2LTZWNWEyIDIgMCAwIDAtMi0yeiJ9XV0sa2N0PVtbInBhdGgiLHtkOiJNMTMgMTZhMyAzIDAgMCAxIDIuMjQgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMWgtOGE0IDQgMCAwIDEtNC00IDcgNyAwIDAgMSA3LTdoLjJMOS42IDYuNGExIDEgMCAxIDEgMi44LTIuOEwxNS44IDdoLjJjMy4zIDAgNiAyLjcgNiA2djFhMiAyIDAgMCAxLTIgMmgtMWEzIDMgMCAwIDAtMyAzIn1dLFsicGF0aCIse2Q6Ik0yMCA4LjU0VjRhMiAyIDAgMSAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik03LjYxMiAxMi41MjRhMyAzIDAgMSAwLTEuNiA0LjMifV1dLFNjdD1bWyJwYXRoIix7ZDoiTTE5LjA3IDQuOTNBMTAgMTAgMCAwIDAgNi45OSAzLjM0In1dLFsicGF0aCIse2Q6Ik00IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yLjI5IDkuNjJBMTAgMTAgMCAxIDAgMjEuMzEgOC4zNSJ9XSxbInBhdGgiLHtkOiJNMTYuMjQgNy43NkE2IDYgMCAxIDAgOC4yMyAxNi42NyJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy45OSAxMS42NkE2IDYgMCAwIDEgMTUuNzcgMTYuNjcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTMuNDEgMTAuNTkgNS42Ni01LjY2In1dXSxDY3Q9W1sicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDE1LjQ2NDFhNCA0IDAgMCAxLTQgMEw3LjUyNzg2IDE5Ljc0NTk3IEEgMSAxIDAgMCAwIDcuOTkzMDMgMjEuMTYyMTEgMTAgMTAgMCAwIDAgMTYuMDA2OTcgMjEuMTYyMTEgMSAxIDAgMCAwIDE2LjQ3MjE0IDE5Ljc0NTk3eiJ9XSxbInBhdGgiLHtkOiJNMTYgMTJhNCA0IDAgMCAwLTItMy40NjRsMi40NzItNC4yODJhMSAxIDAgMCAxIDEuNDYtLjMwNSAxMCAxMCAwIDAgMSA0LjAwNiA2Ljk0QTEgMSAwIDAgMSAyMSAxMnoifV0sWyJwYXRoIix7ZDoiTTggMTJhNCA0IDAgMCAxIDItMy40NjRMNy41MjggNC4yNTRhMSAxIDAgMCAwLTEuNDYtLjMwNSAxMCAxMCAwIDAgMC00LjAwNiA2Ljk0QTEgMSAwIDAgMCAzIDEyeiJ9XV0sX2N0PVtbInBhdGgiLHtkOiJNMyAxMmgzLjI4YTEgMSAwIDAgMSAuOTQ4LjY4NGwyLjI5OCA3LjkzNGEuNS41IDAgMCAwIC45Ni0uMDQ0TDEzLjgyIDQuNzcxQTEgMSAwIDAgMSAxNC43OTIgNEgyMSJ9XV0sVGN0PVtbInBhdGgiLHtkOiJNNSAxNnYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnYyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dXSxMY3Q9W1sicGF0aCIse2Q6Ik00LjkgMTYuMUMxIDEyLjIgMSA1LjggNC45IDEuOSJ9XSxbInBhdGgiLHtkOiJNNy44IDQuN2E2LjE0IDYuMTQgMCAwIDAtLjggNy41In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTYuMiA0LjhjMiAyIDIuMjYgNS4xMS44IDcuNDcifV0sWyJwYXRoIix7ZDoiTTE5LjEgMS45YTkuOTYgOS45NiAwIDAgMSAwIDE0LjEifV0sWyJwYXRoIix7ZDoiTTkuNSAxOGg1In1dLFsicGF0aCIse2Q6Im04IDIyIDQtMTEgNCAxMSJ9XV0sJGN0PVtbInBhdGgiLHtkOiJNMTYuMjQ3IDcuNzYxYTYgNiAwIDAgMSAwIDguNDc4In1dLFsicGF0aCIse2Q6Ik0xOS4wNzUgNC45MzNhMTAgMTAgMCAwIDEgMCAxNC4xMzQifV0sWyJwYXRoIix7ZDoiTTQuOTI1IDE5LjA2N2ExMCAxMCAwIDAgMSAwLTE0LjEzNCJ9XSxbInBhdGgiLHtkOiJNNy43NTMgMTYuMjM5YTYgNiAwIDAgMSAwLTguNDc4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLEFjdD1bWyJwYXRoIix7ZDoiTTIwLjM0IDE3LjUyYTEwIDEwIDAgMSAwLTIuODIgMi44MiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0xMy40MSAxMy40MSA0LjE4IDQuMTgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV0sRGN0PVtbInBhdGgiLHtkOiJNNSAxNWgxNCJ9XSxbInBhdGgiLHtkOiJNNSA5aDE0In1dLFsicGF0aCIse2Q6Im0xNCAyMC01LTUgNi02LTUtNSJ9XV0sRWN0PVtbInBhdGgiLHtkOiJNMjIgMTdhMTAgMTAgMCAwIDAtMjAgMCJ9XSxbInBhdGgiLHtkOiJNNiAxN2E2IDYgMCAwIDEgMTIgMCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdhMiAyIDAgMCAxIDQgMCJ9XV0sUGN0PVtbInBhdGgiLHtkOiJNMTMgMjJINGEyIDIgMCAwIDEgMC00aDEyIn1dLFsicGF0aCIse2Q6Ik0xMy4yMzYgMThhMyAzIDAgMCAwLTIuMi01In1dLFsicGF0aCIse2Q6Ik0xNiA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYuODIgMy45NGEzIDMgMCAxIDEgMy4yMzcgNC44NjhsMS44MTUgMi41ODdhMS41IDEuNSAwIDAgMS0xLjUgMi4xbC0yLjg3Mi0uNDUzYTMgMyAwIDAgMC0zLjUgMyJ9XSxbInBhdGgiLHtkOiJNMTcgNC45ODhhMyAzIDAgMSAwLTUuMiAyLjA1MkE3IDcgMCAwIDAgNCAxNC4wMTUgNCA0IDAgMCAwIDggMTgifV1dLEljdD1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjIwIix4OiI2Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXSxOY3Q9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik0xMiA2LjV2MTEifV0sWyJwYXRoIix7ZDoiTTE1IDkuNGE0IDQgMCAxIDAgMCA1LjIifV1dLEZjdD1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTggMTJoNSJ9XSxbInBhdGgiLHtkOiJNMTYgOS41YTQgNCAwIDEgMCAwIDUuMiJ9XV0sT2N0PVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNOCA3aDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjUgOCAxNWgxYTQgNCAwIDAgMCAwLTgifV0sWyJwYXRoIix7ZDoiTTggMTFoOCJ9XV0sUmN0PVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJtMTIgMTAgMy0zIn1dLFsicGF0aCIse2Q6Im05IDcgMyAzdjcuNSJ9XSxbInBhdGgiLHtkOiJNOSAxMWg2In1dLFsicGF0aCIse2Q6Ik05IDE1aDYifV1dLEJjdD1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTggMTNoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTdWOS41YTIuNSAyLjUgMCAwIDEgNSAwIn1dLFsicGF0aCIse2Q6Ik04IDE3aDcifV1dLEhjdD1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTggMTVoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMWg1YTIgMiAwIDEgMCAwLTRoLTN2MTAifV1dLHFjdD1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTEwIDE3VjdoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTFoNCJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dXSxWY3Q9W1sicGF0aCIse2Q6Ik0xMyAxNkg4In1dLFsicGF0aCIse2Q6Ik0xNCA4SDgifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV0sWyJwYXRoIix7ZDoiTTQgM2ExIDEgMCAwIDEgMS0xIDEuMyAxLjMgMCAwIDEgLjcuMmwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTM0LS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzMy42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNmExLjMgMS4zIDAgMCAxIDEuNCAwbC45MzQuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzMtLjZBMS4zIDEuMyAwIDAgMSAxOSAyYTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMSAxLjMgMS4zIDAgMCAxLS43LS4ybC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzQuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTMzLS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLTEuNCAwbC0uOTM0LS42YTEuMyAxLjMgMCAwIDAtMS40IDBsLS45MzMuNmExLjMgMS4zIDAgMCAxLS43LjIgMSAxIDAgMCAxLTEtMXoifV1dLGpjdD1bWyJwYXRoIix7ZDoiTTEwIDYuNXYxMWE1LjUgNS41IDAgMCAwIDUuNS01LjUifV0sWyJwYXRoIix7ZDoibTE0IDgtNiAzIn1dLFsicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDF6In1dXSxVY3Q9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC02YTIgMiAwIDEgMCAwIDRoNGEyIDIgMCAxIDEgMCA0SDgifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjV2LTExIn1dXSxXY3Q9W1sicGF0aCIse2Q6Ik0xNCA0djE2SDNhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTF6In1dLFsiY2lyY2xlIix7Y3g6IjE0IixjeToiMTIiLHI6IjgifV1dLFV2PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dLEdjdD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV0sWWN0PVtbInBhdGgiLHtkOiJNMjAgNmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtNGEyIDIgMCAwIDEtMS42LS44bC0xLjYtMi4xM2ExIDEgMCAwIDAtMS42IDBMOS42IDE3LjJBMiAyIDAgMCAxIDggMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMnoifV1dLFpjdD1bWyJyZWN0Iix7d2lkdGg6IjEyIixoZWlnaHQ6IjIwIix4OiI2Iix5OiIyIixyeDoiMiJ9XV0sWGN0PVtbInBhdGgiLHtkOiJNNyAxOUg0LjgxNWExLjgzIDEuODMgMCAwIDEtMS41Ny0uODgxIDEuNzg1IDEuNzg1IDAgMCAxLS4wMDQtMS43ODRMNy4xOTYgOS41In1dLFsicGF0aCIse2Q6Ik0xMSAxOWg4LjIwM2ExLjgzIDEuODMgMCAwIDAgMS41NTYtLjg5IDEuNzg0IDEuNzg0IDAgMCAwIDAtMS43NzVsLTEuMjI2LTIuMTIifV0sWyJwYXRoIix7ZDoibTE0IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTguMjkzIDEzLjU5NiA3LjE5NiA5LjUgMy4xIDEwLjU5OCJ9XSxbInBhdGgiLHtkOiJtOS4zNDQgNS44MTEgMS4wOTMtMS44OTJBMS44MyAxLjgzIDAgMCAxIDExLjk4NSAzYTEuNzg0IDEuNzg0IDAgMCAxIDEuNTQ2Ljg4OGwzLjk0MyA2Ljg0MyJ9XSxbInBhdGgiLHtkOiJtMTMuMzc4IDkuNjMzIDQuMDk2IDEuMDk4IDEuMDk3LTQuMDk2In1dXSxLY3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjEifV0sWyJwYXRoIix7ZDoiTTIxIDd2NmgtNiJ9XSxbInBhdGgiLHtkOiJNMyAxN2E5IDkgMCAwIDEgOS05IDkgOSAwIDAgMSA2IDIuM2wzIDIuNyJ9XV0sUWN0PVtbInBhdGgiLHtkOiJtMTUgMTQgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNMjAgOUg5LjVBNS41IDUuNSAwIDAgMCA0IDE0LjVBNS41IDUuNSAwIDAgMCA5LjUgMjBIMTMifV1dLEpjdD1bWyJwYXRoIix7ZDoiTTIxIDd2NmgtNiJ9XSxbInBhdGgiLHtkOiJNMyAxN2E5IDkgMCAwIDEgOS05IDkgOSAwIDAgMSA2IDIuM2wzIDIuNyJ9XV0sZTZ0PVtbInBhdGgiLHtkOiJNMjEgMTJhOSA5IDAgMCAwLTktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XSxbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAwIDAgOSA5IDkuNzUgOS43NSAwIDAgMCA2Ljc0LTIuNzRMMjEgMTYifV0sWyJwYXRoIix7ZDoiTTE2IDE2aDV2NSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dXSx0NnQ9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dXSxhNnQ9W1sicGF0aCIse2Q6Ik0yMSA4TDE4Ljc0IDUuNzRBOS43NSA5Ljc1IDAgMCAwIDEyIDNDMTEgMyAxMC4wMyAzLjE2IDkuMTMgMy40NyJ9XSxbInBhdGgiLHtkOiJNOCAxNkgzdjUifV0sWyJwYXRoIix7ZDoiTTMgMTJDMyA5LjUxIDQgNy4yNiA1LjY0IDUuNjQifV0sWyJwYXRoIix7ZDoibTMgMTYgMi4yNiAyLjI2QTkuNzUgOS43NSAwIDAgMCAxMiAyMWMyLjQ5IDAgNC43NC0xIDYuMzYtMi42NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJjMCAxLS4xNiAxLjk3LS40NyAyLjg3In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XV0saTZ0PVtbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dLFsicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiJ9XSxbInBhdGgiLHtkOiJNOCAxNkgzdjUifV1dLHI2dD1bWyJwYXRoIix7ZDoiTTUgNmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDQgNHYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2WiJ9XSxbInBhdGgiLHtkOiJNNSAxMGgxNCJ9XSxbInBhdGgiLHtkOiJNMTUgN3Y2In1dXSxzNnQ9W1sicGF0aCIse2Q6Ik0xNyAzdjEwIn1dLFsicGF0aCIse2Q6Im0xMi42NyA1LjUgOC42NiA1In1dLFsicGF0aCIse2Q6Im0xMi42NyAxMC41IDguNjYtNSJ9XSxbInBhdGgiLHtkOiJNOSAxN2EyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0ydi0yeiJ9XV0sbjZ0PVtbInBhdGgiLHtkOiJNNCA3VjRoMTZ2MyJ9XSxbInBhdGgiLHtkOiJNNSAyMGg2In1dLFsicGF0aCIse2Q6Ik0xMyA0IDggMjAifV0sWyJwYXRoIix7ZDoibTE1IDE1IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjAgMTUtNSA1In1dXSxvNnQ9W1sicGF0aCIse2Q6Im0yIDkgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNMTMgMThIN2EyIDIgMCAwIDEtMi0yVjYifV0sWyJwYXRoIix7ZDoibTIyIDE1LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoiTTExIDZoNmEyIDIgMCAwIDEgMiAydjEwIn1dXSxsNnQ9W1sicGF0aCIse2Q6Im0xNyAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTBoMXY0In1dXSxjNnQ9W1sicGF0aCIse2Q6Im0xNyAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTMgMTF2LTFhNCA0IDAgMCAxIDQtNGgxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMi00LTQgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxM3YxYTQgNCAwIDAgMS00IDRIMyJ9XV0sZDZ0PVtbInBhdGgiLHtkOiJNMTQgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTE0IDRhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBhMSAxIDAgMCAxLTEtMSJ9XSxbInBhdGgiLHtkOiJNMTkgMTRhMSAxIDAgMCAxIDEgMXY1YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoiTTIxIDRhMSAxIDAgMCAwLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgOWExIDEgMCAwIDEtMSAxIn1dLFsicGF0aCIse2Q6Im0zIDcgMyAzIDMtMyJ9XSxbInBhdGgiLHtkOiJNNiAxMFY1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV1dLHA2dD1bWyJwYXRoIix7ZDoiTTE0IDRhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBhMSAxIDAgMCAxLTEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgNGExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA5YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoibTMgNyAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Ik02IDEwVjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3g6IjMiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XV0saDZ0PVtbInBhdGgiLHtkOiJtMTIgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTh2LTJhNCA0IDAgMCAwLTQtNEg3In1dLFsicGF0aCIse2Q6Im03IDE3LTUtNSA1LTUifV1dLHU2dD1bWyJwYXRoIix7ZDoiTTIwIDE4di0yYTQgNCAwIDAgMC00LTRINCJ9XSxbInBhdGgiLHtkOiJtOSAxNy01LTUgNS01In1dXSxmNnQ9W1sicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMTIgMTh6In1dLFsicGF0aCIse2Q6Ik0yMiA2YTIgMiAwIDAgMC0zLjQxNC0xLjQxNGwtNiA2YTIgMiAwIDAgMCAwIDIuODI4bDYgNkEyIDIgMCAwIDAgMjIgMTh6In1dXSxtNnQ9W1sicGF0aCIse2Q6Ik0xMiAxMS4yMkMxMSA5Ljk5NyAxMCA5IDEwIDhhMiAyIDAgMCAxIDQgMGMwIDEtLjk5OCAyLjAwMi0yLjAxIDMuMjIifV0sWyJwYXRoIix7ZDoibTEyIDE4IDIuNTctMy41In1dLFsicGF0aCIse2Q6Ik02LjI0MyA5LjAxNmE3IDcgMCAwIDEgMTEuNTA3LS4wMDkifV0sWyJwYXRoIix7ZDoiTTkuMzUgMTQuNTMgMTIgMTEuMjIifV0sWyJwYXRoIix7ZDoiTTkuMzUgMTQuNTNDNy43MjggMTIuMjQ2IDYgMTAuMjIxIDYgN2E2IDUgMCAwIDEgMTIgMGMtLjAwNSAzLjIyLTEuNzc4IDUuMjM1LTMuNDMgNy41bDMuNTU3IDQuNTI3YTEgMSAwIDAgMS0uMjAzIDEuNDNsLTEuODk0IDEuMzZhMSAxIDAgMCAxLTEuMzg0LS4yMTVMMTIgMThsLTIuNjc5IDMuNTkzYTEgMSAwIDAgMS0xLjM5LjIxM2wtMS44NjUtMS4zNTNhMSAxIDAgMCAxLS4yMDMtMS40MjJ6In1dXSxnNnQ9W1sicGF0aCIse2Q6Ik00LjUgMTYuNWMtMS41IDEuMjYtMiA1LTIgNXMzLjc0LS41IDUtMmMuNzEtLjg0LjctMi4xMy0uMDktMi45MWEyLjE4IDIuMTggMCAwIDAtMi45MS0uMDl6In1dLFsicGF0aCIse2Q6Im0xMiAxNS0zLTNhMjIgMjIgMCAwIDEgMi0zLjk1QTEyLjg4IDEyLjg4IDAgMCAxIDIyIDJjMCAyLjcyLS43OCA3LjUtNiAxMWEyMi4zNSAyMi4zNSAwIDAgMS00IDJ6In1dLFsicGF0aCIse2Q6Ik05IDEySDRzLjU1LTMuMDMgMi00YzEuNjItMS4wOCA1IDAgNSAwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY1czMuMDMtLjU1IDQtMmMxLjA4LTEuNjIgMC01IDAtNSJ9XV0sYjZ0PVtbInBvbHlsaW5lIix7cG9pbnRzOiIzLjUgMiA2LjUgMTIuNSAxOCAxMi41In1dLFsibGluZSIse3gxOiI5LjUiLHgyOiI1LjUiLHkxOiIxMi41Iix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTguNSIseTE6IjEyLjUiLHkyOiIyMCJ9XSxbInBhdGgiLHtkOiJNMi43NSAxOGExMyAxMyAwIDAgMCAxOC41IDAifV1dLHY2dD1bWyJwYXRoIix7ZDoiTTYgMTlWNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTlWNi44In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtNy44In1dLFsicGF0aCIse2Q6Ik0xOCA1djQifV0sWyJwYXRoIix7ZDoiTTE4IDE5di02In1dLFsicGF0aCIse2Q6Ik0yMiAxOVY5In1dLFsicGF0aCIse2Q6Ik0yIDE5VjlhNCA0IDAgMCAxIDQtNGMyIDAgNCAxLjMzIDYgNHM0IDQgNiA0YTQgNCAwIDEgMC0zLTYuNjUifV1dLHk2dD1bWyJwYXRoIix7ZDoiTTE3IDEwaC0xYTQgNCAwIDEgMSA0LTR2LjUzNCJ9XSxbInBhdGgiLHtkOiJNMTcgNmgxYTQgNCAwIDAgMSAxLjQyIDcuNzRsLTIuMjkuODdhNiA2IDAgMCAxLTUuMzM5LTEwLjY4bDIuMDY5LTEuMzEifV0sWyJwYXRoIix7ZDoiTTQuNSAxN2MyLjgtLjUgNC40IDAgNS41LjhzMS44IDIuMiAyLjMgMy43Yy0yIC40LTMuNS40LTQuOC0uMy0xLjItLjYtMi4zLTEuOS0zLTQuMiJ9XSxbInBhdGgiLHtkOiJNOS43NyAxMkM0IDE1IDIgMjIgMiAyMiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjgiLHI6IjIifV1dLFd2PVtbInBhdGgiLHtkOiJNMTYuNDY2IDcuNUMxNS42NDMgNC4yMzcgMTMuOTUyIDIgMTIgMiA5LjIzOSAyIDcgNi40NzcgNyAxMnMyLjIzOSAxMCA1IDEwYy4zNDIgMCAuNjc3LS4wNjkgMS0uMiJ9XSxbInBhdGgiLHtkOiJtMTUuMTk0IDEzLjcwNyAzLjgxNCAxLjg2LTEuODYgMy44MTQifV0sWyJwYXRoIix7ZDoiTTE5IDE1LjU3Yy0xLjgwNC44ODUtNC4yNzQgMS40My03IDEuNDMtNS41MjMgMC0xMC0yLjIzOS0xMC01czQuNDc3LTUgMTAtNWM0LjgzOCAwIDguODczIDEuNzE4IDkuOCA0In1dXSx4NnQ9W1sicGF0aCIse2Q6Ik0xMiA3djYifV0sWyJwYXRoIix7ZDoiTTEyIDloMiJ9XSxbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzQgOS43NCAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTUiLHI6IjIifV1dLHc2dD1bWyJwYXRoIix7ZDoiTTIwIDlWN2EyIDIgMCAwIDAtMi0yaC02In1dLFsicGF0aCIse2Q6Im0xNSAyLTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTIwIDEzdjVhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDIifV1dLE02dD1bWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDktOSA5Ljc1IDkuNzUgMCAwIDAtNi43NCAyLjc0TDMgOCJ9XSxbInBhdGgiLHtkOiJNMyAzdjVoNSJ9XV0sejZ0PVtbInBhdGgiLHtkOiJNMTIgNUg2YTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJtOSA4IDMtMy0zLTMifV0sWyJwYXRoIix7ZDoiTTQgMTR2NGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC0yIn1dXSxrNnQ9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAxIDEtOS05YzIuNTIgMCA0LjkzIDEgNi43NCAyLjc0TDIxIDgifV0sWyJwYXRoIix7ZDoiTTIxIDN2NWgtNSJ9XV0sUzZ0PVtbImNpcmNsZSIse2N4OiI2IixjeToiMTkiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTloOC41Yy40IDAgLjktLjEgMS4zLS4yIn1dLFsicGF0aCIse2Q6Ik01LjIgNS4yQTMuNSAzLjUzIDAgMCAwIDYuNSAxMkgxMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNS4zYTMuNSAzLjUgMCAwIDAtMy4zLTMuMyJ9XSxbInBhdGgiLHtkOiJNMTUgNWgtNC4zIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV0sQzZ0PVtbImNpcmNsZSIse2N4OiI2IixjeToiMTkiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTloOC41YTMuNSAzLjUgMCAwIDAgMC03aC0xMWEzLjUgMy41IDAgMCAxIDAtN0gxNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjUiLHI6IjMifV1dLF82dD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNi4wMSAxOEg2In1dLFsicGF0aCIse2Q6Ik0xMC4wMSAxOEgxMCJ9XSxbInBhdGgiLHtkOiJNMTUgMTB2NCJ9XSxbInBhdGgiLHtkOiJNMTcuODQgNy4xN2E0IDQgMCAwIDAtNS42NiAwIn1dLFsicGF0aCIse2Q6Ik0yMC42NiA0LjM0YTggOCAwIDAgMC0xMS4zMSAwIn1dXSxHdj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XV0sWXY9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIxIDlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVIMyJ9XV0sVDZ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMSA3LjVIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTYuNUgzIn1dXSxMNnQ9W1sicGF0aCIse2Q6Ik00IDExYTkgOSAwIDAgMSA5IDkifV0sWyJwYXRoIix7ZDoiTTQgNGExNiAxNiAwIDAgMSAxNiAxNiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjEifV1dLCQ2dD1bWyJwYXRoIix7ZDoiTTEwIDE1di0zIn1dLFsicGF0aCIse2Q6Ik0xNCAxNXYtMyJ9XSxbInBhdGgiLHtkOiJNMTggMTV2LTMifV0sWyJwYXRoIix7ZDoiTTIgOFY0In1dLFsicGF0aCIse2Q6Ik0yMiA2SDIifV0sWyJwYXRoIix7ZDoiTTIyIDhWNCJ9XSxbInBhdGgiLHtkOiJNNiAxNXYtMyJ9XSxbInJlY3QiLHt4OiIyIix5OiIxMiIsd2lkdGg6IjIwIixoZWlnaHQ6IjgiLHJ4OiIyIn1dXSxBNnQ9W1sicGF0aCIse2Q6Ik02IDExaDhhNCA0IDAgMCAwIDAtOEg5djE4In1dLFsicGF0aCIse2Q6Ik02IDE1aDgifV1dLEQ2dD1bWyJwYXRoIix7ZDoiTTIxLjMgMTUuM2EyLjQgMi40IDAgMCAxIDAgMy40bC0yLjYgMi42YTIuNCAyLjQgMCAwIDEtMy40IDBMMi43IDguN2EyLjQxIDIuNDEgMCAwIDEgMC0zLjRsMi42LTIuNmEyLjQxIDIuNDEgMCAwIDEgMy40IDBaIn1dLFsicGF0aCIse2Q6Im0xNC41IDEyLjUgMi0yIn1dLFsicGF0aCIse2Q6Im0xMS41IDkuNSAyLTIifV0sWyJwYXRoIix7ZDoibTguNSA2LjUgMi0yIn1dLFsicGF0aCIse2Q6Im0xNy41IDE1LjUgMi0yIn1dXSxFNnQ9W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyMWE5IDkgMCAwIDAgOS05SDNhOSA5IDAgMCAwIDkgOVoifV0sWyJwYXRoIix7ZDoiTTExLjM4IDEyYTIuNCAyLjQgMCAwIDEtLjQtNC43NyAyLjQgMi40IDAgMCAxIDMuMi0yLjc3IDIuNCAyLjQgMCAwIDEgMy40Ny0uNjMgMi40IDIuNCAwIDAgMSAzLjM3IDMuMzcgMi40IDIuNCAwIDAgMS0xLjEgMy43IDIuNTEgMi41MSAwIDAgMSAuMDMgMS4xIn1dLFsicGF0aCIse2Q6Im0xMyAxMiA0LTQifV0sWyJwYXRoIix7ZDoiTTEwLjkgNy4yNUEzLjk5IDMuOTkgMCAwIDAgNCAxMGMwIC43My4yIDEuNDEuNTQgMiJ9XV0sUDZ0PVtbInBhdGgiLHtkOiJNMTAgMnYxNSJ9XSxbInBhdGgiLHtkOiJNNyAyMmE0IDQgMCAwIDEtNC00IDEgMSAwIDAgMSAxLTFoMTZhMSAxIDAgMCAxIDEgMSA0IDQgMCAwIDEtNCA0eiJ9XSxbInBhdGgiLHtkOiJNOS4xNTkgMi40NmExIDEgMCAwIDEgMS41MjEtLjE5M2w5Ljk3NyA4Ljk4QTEgMSAwIDAgMSAyMCAxM0g0YTEgMSAwIDAgMS0uODI0LTEuNTY3eiJ9XV0sSTZ0PVtbInBhdGgiLHtkOiJtMi4zNyAxMS4yMjMgOC4zNzItNi43NzdhMiAyIDAgMCAxIDIuNTE2IDBsOC4zNzEgNi43NzcifV0sWyJwYXRoIix7ZDoiTTIxIDE1YTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtMSAxaC01LjI1In1dLFsicGF0aCIse2Q6Ik0zIDE1YTEgMSAwIDAgMC0xIDF2MmExIDEgMCAwIDAgMSAxaDkifV0sWyJwYXRoIix7ZDoibTYuNjcgMTUgNi4xMyA0LjZhMiAyIDAgMCAwIDIuOC0uNGwzLjE1LTQuMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNCIseDoiMiIseToiMTEiLHJ4OiIxIn1dXSxONnQ9W1sicGF0aCIse2Q6Ik00IDEwYTcuMzEgNy4zMSAwIDAgMCAxMCAxMFoifV0sWyJwYXRoIix7ZDoibTkgMTUgMy0zIn1dLFsicGF0aCIse2Q6Ik0xNyAxM2E2IDYgMCAwIDAtNi02In1dLFsicGF0aCIse2Q6Ik0yMSAxM0ExMCAxMCAwIDAgMCAxMSAzIn1dXSxGNnQ9W1sicGF0aCIse2Q6Im0xMy41IDYuNS0zLjE0OC0zLjE0OGExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwTDYuMzUyIDUuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRMOS41IDEwLjUifV0sWyJwYXRoIix7ZDoiTTE2LjUgNy41IDE5IDUifV0sWyJwYXRoIix7ZDoibTE3LjUgMTAuNSAzLjE0OCAzLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC0yLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMS0xLjcwNCAwTDEzLjUgMTQuNSJ9XSxbInBhdGgiLHtkOiJNOSAyMWE2IDYgMCAwIDAtNi02In1dLFsicGF0aCIse2Q6Ik05LjM1MiAxMC42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGwyLjI5NiAyLjI5NmExLjIwNSAxLjIwNSAwIDAgMCAxLjcwNCAwbDQuMjk2LTQuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDAtMS43MDRsLTIuMjk2LTIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDB6In1dXSxPNnQ9W1sicGF0aCIse2Q6Im0yMCAxOS41LTUuNSAxLjIifV0sWyJwYXRoIix7ZDoiTTE0LjUgNHYxMS4yMmExIDEgMCAwIDAgMS4yNDIuOTdMMjAgMTUuMiJ9XSxbInBhdGgiLHtkOiJtMi45NzggMTkuMzUxIDUuNTQ5LTEuMzYzQTIgMiAwIDAgMCAxMCAxNlYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMCA0IDEzLjUifV1dLFI2dD1bWyJwYXRoIix7ZDoiTTEwIDJ2M2ExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE4IDE4di02YTEgMSAwIDAgMC0xLTFoLTZhMSAxIDAgMCAwLTEgMXY2In1dLFsicGF0aCIse2Q6Ik0xOCAyMkg0YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNOCAxOGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5LjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDIuODI4IDIuODI4QTIgMiAwIDAgMSAyMiA2LjgyOFYxNmEyIDIgMCAwIDEtMi4wMSAyeiJ9XV0sQjZ0PVtbInBhdGgiLHtkOiJNMTMgMTNIOGExIDEgMCAwIDAtMSAxdjcifV0sWyJwYXRoIix7ZDoiTTE0IDhoMSJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAuNDEgMjAuNDFBMiAyIDAgMCAxIDE5IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAuNTktMS40MSJ9XSxbInBhdGgiLHtkOiJNMjkuNSAxMS41czUgNSA0IDUifV0sWyJwYXRoIix7ZDoiTTkgM2g2LjJhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxNSJ9XV0sSDZ0PVtbInBhdGgiLHtkOiJNMTUuMiAzYTIgMiAwIDAgMSAxLjQuNmwzLjggMy44YTIgMiAwIDAgMSAuNiAxLjRWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNMTcgMjF2LTdhMSAxIDAgMCAwLTEtMUg4YTEgMSAwIDAgMC0xIDF2NyJ9XSxbInBhdGgiLHtkOiJNNyAzdjRhMSAxIDAgMCAwIDEgMWg3In1dXSxadj1bWyJwYXRoIix7ZDoiTTUgN3YxMWExIDEgMCAwIDAgMSAxaDExIn1dLFsicGF0aCIse2Q6Ik01LjI5MyAxOC43MDcgMTEgMTMifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiNSIscjoiMiJ9XV0scTZ0PVtbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTkgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyJ9XSxbInBhdGgiLHtkOiJNMyA3aDFhMTcgMTcgMCAwIDAgOC0yIDE3IDE3IDAgMCAwIDggMmgxIn1dLFsicGF0aCIse2Q6Im01IDggMyA4YTUgNSAwIDAgMS02IDB6VjcifV0sWyJwYXRoIix7ZDoiTTcgMjFoMTAifV1dLFY2dD1bWyJwYXRoIix7ZDoiTTEyIDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTVIOXYtNSJ9XSxbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoiTTIxIDMgOSAxNSJ9XV0sajZ0PVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV0sVTZ0PVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik04IDd2MTAifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE3IDd2MTAifV1dLFc2dD1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV1dLEc2dD1bWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNy44MjggMTMuMDdBMyAzIDAgMCAxIDEyIDguNzY0YTMgMyAwIDAgMSA0LjE3MiA0LjMwNmwtMy40NDcgMy42MmExIDEgMCAwIDEtMS40NDkgMHoifV1dLFk2dD1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNyAxMmgxMCJ9XV0sWjZ0PVtbInBhdGgiLHtkOiJNMTcgMTJ2NGExIDEgMCAwIDEtMSAxaC00In1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNyA4VjcifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik03IDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJyZWN0Iix7eDoiNyIseToiNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV1dLFg2dD1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Im0xNiAxNi0xLjktMS45In1dXSxLNnQ9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTcgOGg4In1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDYifV1dLFE2dD1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XV0sSjZ0PVtbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCA1djE2In1dLFsicGF0aCIse2Q6Im00IDYgNy4xMDYtMy43OWEyIDIgMCAwIDEgMS43ODggMEwyMCA2In1dLFsicGF0aCIse2Q6Im02IDExLTMuNTIgMi4xNDdhMSAxIDAgMCAwLS40OC44NTRWMTlhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0uNDgtLjg1M0wxOCAxMSJ9XSxbInBhdGgiLHtkOiJNNiA1djE2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiMiJ9XV0sZTV0PVtbInBhdGgiLHtkOiJNNS40MiA5LjQyIDggMTIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjgiLHI6IjIifV0sWyJwYXRoIix7ZDoibTE0IDYtOC41OCA4LjU4In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTAuOCAxNC44IDE0IDE4In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTIifV1dLHQ1dD1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTguMTIgOC4xMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMjAgNCA4LjEyIDE1Ljg4In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTQuOCAxNC44IDIwIDIwIn1dXSxhNXQ9W1sicGF0aCIse2Q6Ik0yMSA0aC0zLjVsMiAxMS4wNSJ9XSxbInBhdGgiLHtkOiJNNi45NSAxN2g1LjE0MmMuNTIzIDAgLjk1LS40MDYgMS4wNjMtLjkxNmE2LjUgNi41IDAgMCAxIDUuMzQ1LTUuMDA5In1dLFsiY2lyY2xlIix7Y3g6IjE5LjUiLGN5OiIxNy41IixyOiIyLjUifV0sWyJjaXJjbGUiLHtjeDoiNC41IixjeToiMTcuNSIscjoiMi41In1dXSxpNXQ9W1sicGF0aCIse2Q6Ik0xMyAzSDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMjIgMy01IDUifV0sWyJwYXRoIix7ZDoibTE3IDMgNSA1In1dXSxyNXQ9W1sicGF0aCIse2Q6Ik0xMyAzSDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJtMTcgOCA1LTUifV0sWyJwYXRoIix7ZDoiTTE3IDNoNXY1In1dXSxzNXQ9W1sicGF0aCIse2Q6Ik0xOSAxN1Y1YTIgMiAwIDAgMC0yLTJINCJ9XSxbInBhdGgiLHtkOiJNOCAyMWgxMmEyIDIgMCAwIDAgMi0ydi0xYTEgMSAwIDAgMC0xLTFIMTFhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMS00IDBWNWEyIDIgMCAxIDAtNCAwdjJhMSAxIDAgMCAwIDEgMWgzIn1dXSxuNXQ9W1sicGF0aCIse2Q6Ik0xNSAxMmgtNSJ9XSxbInBhdGgiLHtkOiJNMTUgOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTkgMTdWNWEyIDIgMCAwIDAtMi0ySDQifV0sWyJwYXRoIix7ZDoiTTggMjFoMTJhMiAyIDAgMCAwIDItMnYtMWExIDEgMCAwIDAtMS0xSDExYTEgMSAwIDAgMC0xIDF2MWEyIDIgMCAxIDEtNCAwVjVhMiAyIDAgMSAwLTQgMHYyYTEgMSAwIDAgMCAxIDFoMyJ9XV0sbzV0PVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dLFsicGF0aCIse2Q6Ik0xMSA3djQifV0sWyJwYXRoIix7ZDoiTTExIDE1aC4wMSJ9XV0sbDV0PVtbInBhdGgiLHtkOiJtOCAxMSAyIDIgNC00In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV1dLGM1dD1bWyJwYXRoIix7ZDoibTEzIDEzLjUgMi0yLjUtMi0yLjUifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTkgOC41IDcgMTFsMiAyLjUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XV0sZDV0PVtbInBhdGgiLHtkOiJtMTMuNSA4LjUtNSA1In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV1dLHA1dD1bWyJwYXRoIix7ZDoibTEzLjUgOC41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA1IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV0saDV0PVtbInBhdGgiLHtkOiJtMjEgMjEtNC4zNC00LjM0In1dLFsiY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV1dLHU1dD1bWyJwYXRoIix7ZDoiTTE2IDVhNCAzIDAgMCAwLTggMGMwIDQgOCAzIDggN2E0IDMgMCAwIDEtOCAwIn1dLFsicGF0aCIse2Q6Ik04IDE5YTQgMyAwIDAgMCA4IDBjMC00LTgtMy04LTdhNCAzIDAgMCAxIDggMCJ9XV0sWHY9W1sicGF0aCIse2Q6Ik0zLjcxNCAzLjA0OGEuNDk4LjQ5OCAwIDAgMC0uNjgzLjYyN2wyLjg0MyA3LjYyN2EyIDIgMCAwIDEgMCAxLjM5NmwtMi44NDIgNy42MjdhLjQ5OC40OTggMCAwIDAgLjY4Mi42MjdsMTgtOC41YS41LjUgMCAwIDAgMC0uOTA0eiJ9XSxbInBhdGgiLHtkOiJNNiAxMmgxNiJ9XV0sZjV0PVtbInJlY3QiLHt4OiIxNCIseToiMTQiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjIiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDE0djFhMiAyIDAgMCAwIDIgMmgxIn1dLFsicGF0aCIse2Q6Ik0xNCA3aDFhMiAyIDAgMCAxIDIgMnYxIn1dXSxtNXQ9W1sicGF0aCIse2Q6Ik0xNC41MzYgMjEuNjg2YS41LjUgMCAwIDAgLjkzNy0uMDI0bDYuNS0xOWEuNDk2LjQ5NiAwIDAgMC0uNjM1LS42MzVsLTE5IDYuNWEuNS41IDAgMCAwLS4wMjQuOTM3bDcuOTMgMy4xOGEyIDIgMCAwIDEgMS4xMTIgMS4xMXoifV0sWyJwYXRoIix7ZDoibTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzkifV1dLGc1dD1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoibTE2IDE2IDQtNC00LTQifV0sWyJwYXRoIix7ZDoibTggOC00IDQgNCA0In1dXSxiNXQ9W1sicGF0aCIse2Q6Im0xNiAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Im04IDggNC00IDQgNCJ9XV0sdjV0PVtbInBhdGgiLHtkOiJtMTAuODUyIDE0Ljc3Mi0uMzgzLjkyMyJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ4IDE0Ljc3MmEzIDMgMCAxIDAtMi4yOTYtNS41NDRsLS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTMuMTQ4IDkuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAxNS42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEwLjg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDEzLjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjUgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtLjUifV0sWyJwYXRoIix7ZDoiTTQuNSAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtLjUifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDZoLjAxIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMC44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im05LjIyOCAxMy4xNDgtLjkyMy4zODMifV1dLHk1dD1bWyJwYXRoIix7ZDoiTTYgMTBINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNiAxNEg0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMmgtMiJ9XSxbInBhdGgiLHtkOiJNNiA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoibTEzIDYtNCA2aDZsLTQgNiJ9XV0seDV0PVtbInBhdGgiLHtkOiJNNyAyaDEzYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC01In1dLFsicGF0aCIse2Q6Ik0xMCAxMCAyLjUgMi41QzIgMiAyIDIuNSAyIDV2M2EyIDIgMCAwIDAgMiAyaDZ6In1dLFsicGF0aCIse2Q6Ik0yMiAxN3YtMWEyIDIgMCAwIDAtMi0yaC0xIn1dLFsicGF0aCIse2Q6Ik00IDE0YTIgMiAwIDAgMC0yIDJ2NGEyIDIgMCAwIDAgMiAyaDE2LjVsMS0uNS41LjUtOC04SDR6In1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSx3NXQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjYiLHgyOiI2LjAxIix5MToiMTgiLHkyOiIxOCJ9XV0sTTV0PVtbInBhdGgiLHtkOiJNMTQgMTdINSJ9XSxbInBhdGgiLHtkOiJNMTkgN2gtOSJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE3IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiI3IixyOiIzIn1dXSx6NXQ9W1sicGF0aCIse2Q6Ik05LjY3MSA0LjEzNmEyLjM0IDIuMzQgMCAwIDEgNC42NTkgMCAyLjM0IDIuMzQgMCAwIDAgMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxIDIuMzMgNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAgMy44MzEgMi4zNCAyLjM0IDAgMCAxLTIuMzMgNC4wMzMgMi4zNCAyLjM0IDAgMCAwLTMuMzE5IDEuOTE1IDIuMzQgMi4zNCAwIDAgMS00LjY1OSAwIDIuMzQgMi4zNCAwIDAgMC0zLjMyLTEuOTE1IDIuMzQgMi4zNCAwIDAgMS0yLjMzLTQuMDMzIDIuMzQgMi4zNCAwIDAgMCAwLTMuODMxQTIuMzQgMi4zNCAwIDAgMSA2LjM1IDYuMDUxYTIuMzQgMi4zNCAwIDAgMCAzLjMxOS0xLjkxNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXSxrNXQ9W1sicGF0aCIse2Q6Ik04LjMgMTBhLjcuNyAwIDAgMS0uNjI2LTEuMDc5TDExLjQgM2EuNy43IDAgMCAxIDEuMTk4LS4wNDNMMTYuMyA4LjlhLjcuNyAwIDAgMS0uNTcyIDEuMVoifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxNy41IixyOiIzLjUifV1dLFM1dD1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiIxMiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE5IixyOiIzIn1dLFsibGluZSIse3gxOiI4LjU5Iix4MjoiMTUuNDIiLHkxOiIxMy41MSIseTI6IjE3LjQ5In1dLFsibGluZSIse3gxOiIxNS40MSIseDI6IjguNTkiLHkxOiI2LjUxIix5MjoiMTAuNDkifV1dLEM1dD1bWyJwYXRoIix7ZDoiTTEyIDJ2MTMifV0sWyJwYXRoIix7ZDoibTE2IDYtNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNNCAxMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtOCJ9XV0sXzV0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjIxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjMiLHgyOiIyMSIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5Iix5MToiOSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1Iix5MToiOSIseTI6IjIxIn1dXSxUNXQ9W1sicGF0aCIse2Q6Ik0xNCAxMWEyIDIgMCAxIDEtNCAwIDQgNCAwIDAgMSA4IDAgNiA2IDAgMCAxLTEyIDAgOCA4IDAgMCAxIDE2IDAgMTAgMTAgMCAxIDEtMjAgMCAxMS45MyAxMS45MyAwIDAgMSAyLjQyLTcuMjIgMiAyIDAgMSAxIDMuMTYgMi40NCJ9XV0sTDV0PVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTEyIDh2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dXSwkNXQ9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtNC4yNDMgNS4yMSAxNC4zOSAxMi40NzIifV1dLEE1dD1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dLEQ1dD1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV1dLEU1dD1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik0xMiAyMlYyIn1dXSxQNXQ9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dXSxJNXQ9W1sicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTUgNWExIDEgMCAwIDAtMSAxdjdjMCA1IDMuNSA3LjUgNy42NyA4Ljk0YTEgMSAwIDAgMCAuNjcuMDFjMi4zNS0uODIgNC40OC0xLjk3IDUuOS0zLjcxIn1dLFsicGF0aCIse2Q6Ik05LjMwOSAzLjY1MkExMi4yNTIgMTIuMjUyIDAgMCAwIDExLjI0IDIuMjhhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxdjdhOS43ODQgOS43ODQgMCAwIDEtLjA4IDEuMjY0In1dXSxONXQ9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dLEt2PVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTkuMSA5YTMgMyAwIDAgMSA1LjgyIDFjMCAyLTMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV0sRjV0PVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTYuMzc2IDE4LjkxYTYgNiAwIDAgMSAxMS4yNDkuMDAzIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjQifV1dLFF2PVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoibTE0LjUgOS41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDkuNSA1IDUifV1dLE81dD1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dXSxSNXQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTEyIDJ2Ny41In1dLFsicGF0aCIse2Q6Im0xOSA1LTUuMjMgNS4yMyJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTcuNSJ9XSxbInBhdGgiLHtkOiJtMTkgMTktNS4yMy01LjIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNC41VjIyIn1dLFsicGF0aCIse2Q6Ik0xMC4yMyAxMy43NyA1IDE5In1dLFsicGF0aCIse2Q6Ik05LjUgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAuMjMgMTAuMjMgNSA1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIuNSJ9XV0sQjV0PVtbInBhdGgiLHtkOiJNMTIgMTAuMTg5VjE0In1dLFsicGF0aCIse2Q6Ik0xMiAydjMifV0sWyJwYXRoIix7ZDoiTTE5IDEzVjdhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTkuMzggMjBBMTEuNiAxMS42IDAgMCAwIDIxIDE0bC04LjE4OC0zLjYzOWEyIDIgMCAwIDAtMS42MjQgMEwzIDE0YTExLjYgMTEuNiAwIDAgMCAyLjgxIDcuNzYifV0sWyJwYXRoIix7ZDoiTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDFzMS4yIDEgMi41IDFjMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dXSxINXQ9W1sicGF0aCIse2Q6Ik0yMC4zOCAzLjQ2IDE2IDJhNCA0IDAgMCAxLTggMEwzLjYyIDMuNDZhMiAyIDAgMCAwLTEuMzQgMi4yM2wuNTggMy40N2ExIDEgMCAwIDAgLjk5Ljg0SDZ2MTBjMCAxLjEuOSAyIDIgMmg4YTIgMiAwIDAgMCAyLTJWMTBoMi4xNWExIDEgMCAwIDAgLjk5LS44NGwuNTgtMy40N2EyIDIgMCAwIDAtMS4zNC0yLjIzeiJ9XV0scTV0PVtbInBhdGgiLHtkOiJNMTYgMTBhNCA0IDAgMCAxLTggMCJ9XSxbInBhdGgiLHtkOiJNMy4xMDMgNi4wMzRoMTcuNzk0In1dLFsicGF0aCIse2Q6Ik0zLjQgNS40NjdhMiAyIDAgMCAwLS40IDEuMlYyMGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNi42NjdhMiAyIDAgMCAwLS40LTEuMmwtMi0yLjY2N0EyIDIgMCAwIDAgMTcgMkg3YTIgMiAwIDAgMC0xLjYuOHoifV1dLFY1dD1bWyJwYXRoIix7ZDoibTE1IDExLTEgOSJ9XSxbInBhdGgiLHtkOiJtMTkgMTEtNC03In1dLFsicGF0aCIse2Q6Ik0yIDExaDIwIn1dLFsicGF0aCIse2Q6Im0zLjUgMTEgMS42IDcuNGEyIDIgMCAwIDAgMiAxLjZoOS44YTIgMiAwIDAgMCAyLTEuNmwxLjctNy40In1dLFsicGF0aCIse2Q6Ik00LjUgMTUuNWgxNSJ9XSxbInBhdGgiLHtkOiJtNSAxMSA0LTcifV0sWyJwYXRoIix7ZDoibTkgMTEgMSA5In1dXSxqNXQ9W1siY2lyY2xlIix7Y3g6IjgiLGN5OiIyMSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIxIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yLjA1IDIuMDVoMmwyLjY2IDEyLjQyYTIgMiAwIDAgMCAyIDEuNThoOS43OGEyIDIgMCAwIDAgMS45NS0xLjU3bDEuNjUtNy40M0g1LjEyIn1dXSxVNXQ9W1sicGF0aCIse2Q6Ik0yMS41NiA0LjU2YTEuNSAxLjUgMCAwIDEgMCAyLjEyMmwtLjQ3LjQ3YTMgMyAwIDAgMS00LjIxMi0uMDMgMyAzIDAgMCAxIDAtNC4yNDNsLjQ0LS40NGExLjUgMS41IDAgMCAxIDIuMTIxIDB6In1dLFsicGF0aCIse2Q6Ik0zIDIyYTEgMSAwIDAgMS0xLTF2LTMuNTg2YTEgMSAwIDAgMSAuMjkzLS43MDdsMy4zNTUtMy4zNTVhMS4yMDUgMS4yMDUgMCAwIDEgMS43MDQgMGwzLjI5NiAzLjI5NmExLjIwNSAxLjIwNSAwIDAgMSAwIDEuNzA0bC0zLjM1NSAzLjM1NWExIDEgMCAwIDEtLjcwNy4yOTN6In1dLFsicGF0aCIse2Q6Im05IDE1IDcuODc5LTcuODc4In1dXSxXNXQ9W1sicGF0aCIse2Q6Im00IDQgMi41IDIuNSJ9XSxbInBhdGgiLHtkOiJNMTMuNSA2LjVhNC45NSA0Ljk1IDAgMCAwLTcgNyJ9XSxbInBhdGgiLHtkOiJNMTUgNSA1IDE1In1dLFsicGF0aCIse2Q6Ik0xNCAxN3YuMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2di4wMSJ9XSxbInBhdGgiLHtkOiJNMTMgMTN2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMHYuMDEifV0sWyJwYXRoIix7ZDoiTTExIDIwdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTR2LjAxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMXYuMDEifV1dLEc1dD1bWyJwYXRoIix7ZDoiTTQgMTNWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwIDIydi01In1dLFsicGF0aCIse2Q6Ik0xNCAxOXYtMiJ9XSxbInBhdGgiLHtkOiJNMTggMjB2LTMifV0sWyJwYXRoIix7ZDoiTTIgMTNoMjAifV0sWyJwYXRoIix7ZDoiTTYgMjB2LTMifV1dLFk1dD1bWyJwYXRoIix7ZDoiTTExIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTMgMjJjLjUtLjUgMS4xMi0xIDIuNS0xLTEuMzggMC0yLS41LTIuNS0xIn1dLFsicGF0aCIse2Q6Ik0xNCAyYTMuMjggMy4yOCAwIDAgMS0zLjIyNyAxLjc5OGwtNi4xNy0uNTYxQTIuMzg3IDIuMzg3IDAgMSAwIDQuMzg3IDhIMTUuNWExIDEgMCAwIDEgMCAxMyAxIDEgMCAwIDAgMC01SDEyYTcgNyAwIDAgMS03LTdWOCJ9XSxbInBhdGgiLHtkOiJNMTQgOGE4LjUgOC41IDAgMCAxIDAgOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTZjMiAwIDQuNS00IDQtNiJ9XV0sWjV0PVtbInBhdGgiLHtkOiJtMTUgMTUgNiA2bS02LTZ2NC44bTAtNC44aDQuOCJ9XSxbInBhdGgiLHtkOiJNOSAxOS44VjE1bTAgMEg0LjJNOSAxNWwtNiA2In1dLFsicGF0aCIse2Q6Ik0xNSA0LjJWOW0wIDBoNC44TTE1IDlsNi02In1dLFsicGF0aCIse2Q6Ik05IDQuMlY5bTAgMEg0LjJNOSA5IDMgMyJ9XV0sWDV0PVtbInBhdGgiLHtkOiJtMTggMTQgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJtMTggMiA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDEuOTczYTQgNCAwIDAgMCAzLjMtMS43bDUuNDU0LTguNmE0IDQgMCAwIDEgMy4zLTEuN0gyMiJ9XSxbInBhdGgiLHtkOiJNMiA2aDEuOTcyYTQgNCAwIDAgMSAzLjYgMi4yIn1dLFsicGF0aCIse2Q6Ik0yMiAxOGgtNi4wNDFhNCA0IDAgMCAxLTMuMy0xLjhsLS4zNTktLjQ1In1dXSxLNXQ9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNS4xNzJhMiAyIDAgMCAwLS41ODYtMS40MTRMOS41IDEzLjUifV0sWyJwYXRoIix7ZDoiTTE0LjUgMTQuNSAxMiAxNyJ9XSxbInBhdGgiLHtkOiJNMTcgOC44QTYgNiAwIDAgMSAxMy44IDIwSDEwQTYuNSA2LjUgMCAwIDEgNyA4YTUgNSAwIDAgMSAxMCAweiJ9XV0sUTV0PVtbInBhdGgiLHtkOiJNMTggN1Y1YTEgMSAwIDAgMC0xLTFINi41YS41LjUgMCAwIDAtLjQuOGw0LjUgNmEyIDIgMCAwIDEgMCAyLjRsLTQuNSA2YS41LjUgMCAwIDAgLjQuOEgxN2ExIDEgMCAwIDAgMS0xdi0yIn1dXSxKNXQ9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTE3IDIwVjgifV1dLGU4dD1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dXSx0OHQ9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV1dLGE4dD1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dXSxpOHQ9W1sicGF0aCIse2Q6Ik0yIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAyMHYtNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTE3IDIwVjgifV0sWyJwYXRoIix7ZDoiTTIyIDR2MTYifV1dLHI4dD1bWyJwYXRoIix7ZDoibTIxIDE3LTIuMTU2LTEuODY4QS41LjUgMCAwIDAgMTggMTUuNXYuNWExIDEgMCAwIDEtMSAxaC0yYTEgMSAwIDAgMS0xLTFjMC0yLjU0NS0zLjk5MS0zLjk3LTguNS00YTEgMSAwIDAgMCAwIDVjNC4xNTMgMCA0Ljc0NS0xMS4yOTUgNS43MDgtMTMuNWEyLjUgMi41IDAgMSAxIDMuMzEgMy4yODQifV0sWyJwYXRoIix7ZDoiTTMgMjFoMTgifV1dLHM4dD1bWyJwYXRoIix7ZDoiTTEwIDlINEwyIDdsMi0yaDYifV0sWyJwYXRoIix7ZDoiTTE0IDVoNmwyIDItMiAyaC02In1dLFsicGF0aCIse2Q6Ik0xMCAyMlY0YTIgMiAwIDEgMSA0IDB2MTgifV0sWyJwYXRoIix7ZDoiTTggMjJoOCJ9XV0sbjh0PVtbInBhdGgiLHtkOiJNMTIgMTN2OCJ9XSxbInBhdGgiLHtkOiJNMTIgM3YzIn1dLFsicGF0aCIse2Q6Ik0xOCA2YTIgMiAwIDAgMSAxLjM4Ny41NmwyLjMwNyAyLjIyYTEgMSAwIDAgMSAwIDEuNDRsLTIuMzA3IDIuMjJBMiAyIDAgMCAxIDE4IDEzSDZhMiAyIDAgMCAxLTEuMzg3LS41NmwtMi4zMDYtMi4yMmExIDEgMCAwIDEgMC0xLjQ0bDIuMzA2LTIuMjJBMiAyIDAgMCAxIDYgNnoifV1dLG84dD1bWyJwYXRoIix7ZDoiTTcgMTh2LTZhNSA1IDAgMSAxIDEwIDB2NiJ9XSxbInBhdGgiLHtkOiJNNSAyMWExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwLTItMkg3YTIgMiAwIDAgMC0yIDJ6In1dLFsicGF0aCIse2Q6Ik0yMSAxMmgxIn1dLFsicGF0aCIse2Q6Ik0xOC41IDQuNSAxOCA1In1dLFsicGF0aCIse2Q6Ik0yIDEyaDEifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MSJ9XSxbInBhdGgiLHtkOiJtNC45MjkgNC45MjkuNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XV0sbDh0PVtbInBhdGgiLHtkOiJNMTcuOTcxIDQuMjg1QTIgMiAwIDAgMSAyMSA2djEyYTIgMiAwIDAgMS0zLjAyOSAxLjcxNWwtOS45OTctNS45OThhMiAyIDAgMCAxLS4wMDMtMy40MzJ6In1dLFsicGF0aCIse2Q6Ik0zIDIwVjQifV1dLGM4dD1bWyJwYXRoIix7ZDoiTTIxIDR2MTYifV0sWyJwYXRoIix7ZDoiTTYuMDI5IDQuMjg1QTIgMiAwIDAgMCAzIDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiJ9XV0sZDh0PVtbInBhdGgiLHtkOiJtMTIuNSAxNy0uNS0xLS41IDFoMXoifV0sWyJwYXRoIix7ZDoiTTE1IDIyYTEgMSAwIDAgMCAxLTF2LTFhMiAyIDAgMCAwIDEuNTYtMy4yNSA4IDggMCAxIDAtMTEuMTIgMEEyIDIgMCAwIDAgOCAyMHYxYTEgMSAwIDAgMCAxIDF6In1dLFsiY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIxIn1dXSxwOHQ9W1sicmVjdCIse3dpZHRoOiIzIixoZWlnaHQ6IjgiLHg6IjEzIix5OiIyIixyeDoiMS41In1dLFsicGF0aCIse2Q6Ik0xOSA4LjVWMTBoMS41QTEuNSAxLjUgMCAxIDAgMTkgOC41In1dLFsicmVjdCIse3dpZHRoOiIzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjE0IixyeDoiMS41In1dLFsicGF0aCIse2Q6Ik01IDE1LjVWMTRIMy41QTEuNSAxLjUgMCAxIDAgNSAxNS41In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjMiLHg6IjE0Iix5OiIxMyIscng6IjEuNSJ9XSxbInBhdGgiLHtkOiJNMTUuNSAxOUgxNHYxLjVhMS41IDEuNSAwIDEgMCAxLjUtMS41In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjMiLHg6IjIiLHk6IjgiLHJ4OiIxLjUifV0sWyJwYXRoIix7ZDoiTTguNSA1SDEwVjMuNUExLjUgMS41IDAgMSAwIDguNSA1In1dXSxoOHQ9W1sicGF0aCIse2Q6Ik0yMiAyIDIgMjIifV1dLHU4dD1bWyJwYXRoIix7ZDoiTTExIDE2LjU4NlYxOWExIDEgMCAwIDEtMSAxSDJMMTguMzcgMy42M2ExIDEgMCAxIDEgMyAzbC05LjY2MyA5LjY2M2ExIDEgMCAwIDEtMS40MTQgMEw4IDE0In1dXSxmOHQ9W1sicGF0aCIse2Q6Ik0xMCA1SDMifV0sWyJwYXRoIix7ZDoiTTEyIDE5SDMifV0sWyJwYXRoIix7ZDoiTTE0IDN2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLTkifV0sWyJwYXRoIix7ZDoiTTIxIDE5aC01In1dLFsicGF0aCIse2Q6Ik0yMSA1aC03In1dLFsicGF0aCIse2Q6Ik04IDEwdjQifV0sWyJwYXRoIix7ZDoiTTggMTJIMyJ9XV0sSnY9W1sicGF0aCIse2Q6Ik0xMCA4aDQifV0sWyJwYXRoIix7ZDoiTTEyIDIxdi05In1dLFsicGF0aCIse2Q6Ik0xMiA4VjMifV0sWyJwYXRoIix7ZDoiTTE3IDE2aDQifV0sWyJwYXRoIix7ZDoiTTE5IDEyVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxdi01In1dLFsicGF0aCIse2Q6Ik0zIDE0aDQifV0sWyJwYXRoIix7ZDoiTTUgMTBWMyJ9XSxbInBhdGgiLHtkOiJNNSAyMXYtNyJ9XV0sbTh0PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMjAiLHg6IjUiLHk6IjIiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIuNjY3IDggMTAgMTJoNGwtMi42NjcgNCJ9XV0sZzh0PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTEzIDguMzJhNy40MyA3LjQzIDAgMCAxIDAgNy4zNiJ9XSxbInBhdGgiLHtkOiJNMTYuNDYgNi4yMWExMS43NiAxMS43NiAwIDAgMSAwIDExLjU4In1dLFsicGF0aCIse2Q6Ik0xOS45MSA0LjFhMTUuOTEgMTUuOTEgMCAwIDEgLjAxIDE1LjgifV1dLGI4dD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjIwIix4OiI1Iix5OiIyIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XV0sdjh0PVtbInBhdGgiLHtkOiJNMjIgMTF2MWExMCAxMCAwIDEgMS05LTEwIn1dLFsicGF0aCIse2Q6Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV0sWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMnY2In1dXSx5OHQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIn1dLFsibGluZSIse3gxOiI5Iix4MjoiOS4wMSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiOSIseTI6IjkifV1dLHg4dD1bWyJwYXRoIix7ZDoiTTIgMTNhNiA2IDAgMSAwIDEyIDAgNCA0IDAgMSAwLTggMCAyIDIgMCAwIDAgNCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTJjNC40IDAgOC0zLjYgOC04VjdhMiAyIDAgMSAwLTQgMHY2In1dLFsicGF0aCIse2Q6Ik0xOCAzIDE5LjEgNS4yIn1dLFsicGF0aCIse2Q6Ik0yMiAzIDIwLjkgNS4yIn1dXSx3OHQ9W1sicGF0aCIse2Q6Ik0xMC41IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMkg3YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5LjI5IDE0Ljc2QTYuNjcgNi42NyAwIDAgMSAxNyAxMWE2LjYgNi42IDAgMCAxLTIuMjkgMy43NmMtMS4xNS45Mi0xLjcxIDIuMDQtMS43MSAzLjE5IDAgMi4yMiAxLjggNC4wNSA0IDQuMDVzNC0xLjgzIDQtNC4wNWMwLTEuMTYtLjU3LTIuMjYtMS43MS0zLjE5In1dLFsicGF0aCIse2Q6Ik05LjYwNyAyMUg2YTIgMiAwIDAgMS0yLTJ2LTdhMiAyIDAgMCAxIDItMmg3VjdhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMC0xIDF2MyJ9XV0sTTh0PVtbInBhdGgiLHtkOiJtMTAgMjAtMS4yNS0yLjVMNiAxOCJ9XSxbInBhdGgiLHtkOiJNMTAgNCA4Ljc1IDYuNSA2IDYifV0sWyJwYXRoIix7ZDoibTE0IDIwIDEuMjUtMi41TDE4IDE4In1dLFsicGF0aCIse2Q6Im0xNCA0IDEuMjUgMi41TDE4IDYifV0sWyJwYXRoIix7ZDoibTE3IDIxLTMtNmgtNCJ9XSxbInBhdGgiLHtkOiJtMTcgMy0zIDYgMS41IDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoNi41TDEwIDkifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtNi41TDE0IDE1In1dLFsicGF0aCIse2Q6Im00IDEwIDEuNSAyTDQgMTQifV0sWyJwYXRoIix7ZDoibTcgMjEgMy02LTEuNS0zIn1dLFsicGF0aCIse2Q6Im03IDMgMyA2aDQifV1dLHo4dD1bWyJwYXRoIix7ZDoiTTIwIDlWNmEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yIDE2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTExYS41LjUgMCAwIDEtLjUtLjVWMTFhMiAyIDAgMCAwLTQgMHoifV0sWyJwYXRoIix7ZDoiTTQgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMjAgMTh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgNHY5In1dXSxrOHQ9W1sicGF0aCIse2Q6Ik0xMSAyaDIifV0sWyJwYXRoIix7ZDoibTE0LjI4IDE0LTQuNTYgOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjItMS41NTgtNEg0LjU1OCJ9XSxbInBhdGgiLHtkOiJNMyAxMHYyIn1dLFsicGF0aCIse2Q6Ik02LjI0NSAxNS4wNEEyIDIgMCAwIDEgOCAxNGgxMmExIDEgMCAwIDEgLjg2NCAxLjUwNWwtMy4xMSA1LjQ1N0EyIDIgMCAwIDEgMTYgMjJINGExIDEgMCAwIDEtLjg2My0xLjUwNnoifV0sWyJwYXRoIix7ZDoiTTcgMmE0IDQgMCAwIDEtNCA0In1dLFsicGF0aCIse2Q6Im04LjY2IDcuNjYgMS40MSAxLjQxIn1dXSxTOHQ9W1sicGF0aCIse2Q6Ik0xMiAyMWE5IDkgMCAwIDAgOS05SDNhOSA5IDAgMCAwIDkgOVoifV0sWyJwYXRoIix7ZDoiTTcgMjFoMTAifV0sWyJwYXRoIix7ZDoiTTE5LjUgMTIgMjIgNiJ9XSxbInBhdGgiLHtkOiJNMTYuMjUgM2MuMjcuMS44LjUzLjc1IDEuMzYtLjA2LjgzLS45MyAxLjItMSAyLjAyLS4wNS43OC4zNCAxLjI0LjczIDEuNjIifV0sWyJwYXRoIix7ZDoiTTExLjI1IDNjLjI3LjEuOC41My43NCAxLjM2LS4wNS44My0uOTMgMS4yLS45OCAyLjAyLS4wNi43OC4zMyAxLjI0LjcyIDEuNjIifV0sWyJwYXRoIix7ZDoiTTYuMjUgM2MuMjcuMS44LjUzLjc1IDEuMzYtLjA2LjgzLS45MyAxLjItMSAyLjAyLS4wNS43OC4zNCAxLjI0Ljc0IDEuNjIifV1dLEM4dD1bWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXSxfOHQ9W1sicGF0aCIse2Q6Ik0xMiAxOHY0In1dLFsicGF0aCIse2Q6Ik0yIDE0LjQ5OWE1LjUgNS41IDAgMCAwIDkuNTkxIDMuNjc1LjYuNiAwIDAgMSAuODE4LjAwMUE1LjUgNS41IDAgMCAwIDIyIDE0LjVjMC0yLjI5LTEuNS00LTMtNS41bC01LjQ5Mi01LjMxMmEyIDIgMCAwIDAtMy0uMDJMNSA4Ljk5OWMtMS41IDEuNS0zIDMuMi0zIDUuNSJ9XV0sVDh0PVtbInBhdGgiLHtkOiJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6In1dXSxleT1bWyJwYXRoIix7ZDoiTTExLjAxNyAyLjgxNGExIDEgMCAwIDEgMS45NjYgMGwxLjA1MSA1LjU1OGEyIDIgMCAwIDAgMS41OTQgMS41OTRsNS41NTggMS4wNTFhMSAxIDAgMCAxIDAgMS45NjZsLTUuNTU4IDEuMDUxYTIgMiAwIDAgMC0xLjU5NCAxLjU5NGwtMS4wNTEgNS41NThhMSAxIDAgMCAxLTEuOTY2IDBsLTEuMDUxLTUuNTU4YTIgMiAwIDAgMC0xLjU5NC0xLjU5NGwtNS41NTgtMS4wNTFhMSAxIDAgMCAxIDAtMS45NjZsNS41NTgtMS4wNTFhMiAyIDAgMCAwIDEuNTk0LTEuNTk0eiJ9XSxbInBhdGgiLHtkOiJNMjAgMnY0In1dLFsicGF0aCIse2Q6Ik0yMiA0aC00In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIyMCIscjoiMiJ9XV0sTDh0PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA2aC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE0IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV1dLCQ4dD1bWyJwYXRoIix7ZDoiTTguOCAyMHYtNC4xbDEuOS4yYTIuMyAyLjMgMCAwIDAgMi4xNjQtMi4xVjguM0E1LjM3IDUuMzcgMCAwIDAgMiA4LjI1YzAgMi44LjY1NiAzLjA1NCAxIDQuNTVhNS43NyA1Ljc3IDAgMCAxIC4wMjkgMi43NThMMiAyMCJ9XSxbInBhdGgiLHtkOiJNMTkuOCAxNy44YTcuNSA3LjUgMCAwIDAgLjAwMy0xMC42MDMifV0sWyJwYXRoIix7ZDoiTTE3IDE1YTMuNSAzLjUgMCAwIDAtLjAyNS00Ljk3NSJ9XV0sQTh0PVtbInBhdGgiLHtkOiJtNiAxNiA2LTEyIDYgMTIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAyMWMxLjEgMCAxLjEtMSAyLjMtMXMxLjEgMSAyLjMgMWMxLjEgMCAxLjEtMSAyLjMtMSAxLjEgMCAxLjEgMSAyLjMgMSAxLjEgMCAxLjEtMSAyLjMtMSAxLjEgMCAxLjEgMSAyLjMgMSAxLjEgMCAxLjEtMSAyLjMtMSJ9XV0sRDh0PVtbInBhdGgiLHtkOiJtNiAxNiA2LTEyIDYgMTIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJtMTYgMjAgMiAyIDQtNCJ9XV0sRTh0PVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjUiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dXSxQOHQ9W1siY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTUgMTdBMTIgMTIgMCAwIDEgMTcgNSJ9XV0sSTh0PVtbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoiTTggM0gzdjUifV0sWyJwYXRoIix7ZDoiTTEyIDIydi04LjNhNCA0IDAgMCAwLTEuMTcyLTIuODcyTDMgMyJ9XSxbInBhdGgiLHtkOiJtMTUgOSA2LTYifV1dLE44dD1bWyJwYXRoIix7ZDoiTTE3IDEzLjQ0IDQuNDQyIDE3LjA4MkEyIDIgMCAwIDAgNC45ODIgMjFIMTlhMiAyIDAgMCAwIC41NTgtMy45MjFsLTEuMTE1LS4zMkEyIDIgMCAwIDEgMTcgMTQuODM3VjcuNjYifV0sWyJwYXRoIix7ZDoibTcgMTAuNTYgMTIuNTU4LTMuNjQyQTIgMiAwIDAgMCAxOS4wMTggM0g1YTIgMiAwIDAgMC0uNTU4IDMuOTIxbDEuMTE1LjMyQTIgMiAwIDAgMSA3IDkuMTYzdjcuMTc4In1dXSxGOHQ9W1sicGF0aCIse2Q6Ik0xNS4yOTUgMTkuNTYyIDE2IDIyIn1dLFsicGF0aCIse2Q6Im0xNyAxNiAzLjc1OCAyLjA5OCJ9XSxbInBhdGgiLHtkOiJtMTkgMTIuNSAzLjAyNi0uNTk4In1dLFsicGF0aCIse2Q6Ik03LjYxIDYuM2EzIDMgMCAwIDAtMy45MiAxLjNsLTEuMzggMi43OWEzIDMgMCAwIDAgMS4zIDMuOTFsNi44OSAzLjU5N2ExIDEgMCAwIDAgMS4zNDItLjQ0N2wzLjEwNi02LjIxMWExIDEgMCAwIDAtLjQ0Ny0xLjM0MXoifV0sWyJwYXRoIix7ZDoiTTggOVYyIn1dXSxPOHQ9W1sicGF0aCIse2Q6Ik0zIDNoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMSA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxMWguMDEifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNCIseDoiMTUiLHk6IjUifV0sWyJwYXRoIix7ZDoibTE5IDkgMiAydjEwYzAgLjYtLjQgMS0xIDFoLTZjLS42IDAtMS0uNC0xLTFWMTFsMi0yIn1dLFsicGF0aCIse2Q6Im0xMyAxNCA4LTIifV0sWyJwYXRoIix7ZDoibTEzIDE5IDgtMiJ9XV0sUjh0PVtbInBhdGgiLHtkOiJNMTQgOS41MzZWN2E0IDQgMCAwIDEgNC00aDEuNWEuNS41IDAgMCAxIC41LjVWNWE0IDQgMCAwIDEtNCA0IDQgNCAwIDAgMC00IDRjMCAyIDEgMyAxIDVhNSA1IDAgMCAxLTEgMyJ9XSxbInBhdGgiLHtkOiJNNCA5YTUgNSAwIDAgMSA4IDQgNSA1IDAgMCAxLTgtNCJ9XSxbInBhdGgiLHtkOiJNNSAyMWgxNCJ9XV0sdHk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTE2IDgtOCA4In1dLFsicGF0aCIse2Q6Ik0xNiAxNkg4VjgifV1dLGF5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAxMmgtMmwtMiA1LTItMTAtMiA1SDcifV1dLGl5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im04IDggOCA4In1dLFsicGF0aCIse2Q6Ik0xNiA4djhIOCJ9XV0scnk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxMiA0IDQgNC00In1dXSxzeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTIgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dXSxueT1bWyJwYXRoIix7ZDoiTTEzIDIxaDZhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjYifV0sWyJwYXRoIix7ZDoibTMgMjEgOS05In1dLFsicGF0aCIse2Q6Ik05IDIxSDN2LTYifV1dLG95PVtbInBhdGgiLHtkOiJNMTMgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTYifV0sWyJwYXRoIix7ZDoibTMgMyA5IDkifV0sWyJwYXRoIix7ZDoiTTMgOVYzaDYifV1dLGx5PVtbInBhdGgiLHtkOiJNMjEgMTFWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoibTIxIDIxLTktOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTV2NmgtNiJ9XV0sY3k9W1sicGF0aCIse2Q6Ik0yMSAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg2In1dLFsicGF0aCIse2Q6Im0yMSAzLTkgOSJ9XSxbInBhdGgiLHtkOiJNMTUgM2g2djYifV1dLGR5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoibTEyIDE2IDQtNC00LTQifV1dLHB5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDE2VjhoOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTYgOCA4In1dXSxoeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA4aDh2OCJ9XSxbInBhdGgiLHtkOiJtOCAxNiA4LTgifV1dLHV5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xNiAxMi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAxNlY4In1dXSxmeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04LjUgMTQgNy00In1dLFsicGF0aCIse2Q6Im04LjUgMTAgNyA0In1dXSxteT1bWyJsaW5lIix7eDE6IjUiLHkxOiIzIix4MjoiMTkiLHkyOiIzIn1dLFsibGluZSIse3gxOiIzIix5MToiNSIseDI6IjMiLHkyOiIxOSJ9XSxbImxpbmUiLHt4MToiMjEiLHkxOiI1Iix4MjoiMjEiLHkyOiIxOSJ9XSxbImxpbmUiLHt4MToiOSIseTE6IjIxIix4MjoiMTAiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTQiLHkxOiIyMSIseDI6IjE1Iix5MjoiMjEifV0sWyJwYXRoIix7ZDoiTSAzIDUgQTIgMiAwIDAgMSA1IDMifV0sWyJwYXRoIix7ZDoiTSAxOSAzIEEyIDIgMCAwIDEgMjEgNSJ9XSxbInBhdGgiLHtkOiJNIDUgMjEgQTIgMiAwIDAgMSAzIDE5In1dLFsicGF0aCIse2Q6Ik0gMjEgMTkgQTIgMiAwIDAgMSAxOSAyMSJ9XSxbImNpcmNsZSIse2N4OiI4LjUiLGN5OiI4LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjkuNTYwNjYiLHgyOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxNyIseTE6IjE3Iix4MjoiMTQuODIiLHkyOiIxNC44MiJ9XSxbImNpcmNsZSIse2N4OiI4LjUiLGN5OiIxNS41IixyOiIxLjUifV0sWyJsaW5lIix7eDE6IjkuNTYwNjYiLHkxOiIxNC40MzkzNCIseDI6IjE3Iix5MjoiNyJ9XV0sTWw9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgOGg3In1dLFsicGF0aCIse2Q6Ik04IDEyaDYifV0sWyJwYXRoIix7ZDoiTTExIDE2aDUifV1dLGd5PVtbInBhdGgiLHtkOiJNMjEgMTAuNjU2VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMi4zNDQifV0sWyJwYXRoIix7ZDoibTkgMTEgMyAzTDIyIDQifV1dLGJ5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dLHZ5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xNiAxMC00IDQtNC00In1dXSx5eT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtNC00IDQtNCJ9XV0seHk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTEwIDggNCA0LTQgNCJ9XV0sd3k9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTggMTQgNC00IDQgNCJ9XV0sQjh0PVtbInBhdGgiLHtkOiJNMTAgOS41IDggMTJsMiAyLjUifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoibTE0IDkuNSAyIDIuNS0yIDIuNSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XV0sTXk9W1sicGF0aCIse2Q6Im0xMCA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDE1IDMtMy0zLTMifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sSDh0PVtbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XV0senk9W1sicGF0aCIse2Q6Ik04IDd2NyJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik0xNiA3djkifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik05IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIxIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMyA5djEifV1dLGt5PVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTUgM2EyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV0sWyJwYXRoIix7ZDoiTTkgMjFoMiJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNMjEgOXYyIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV1dLFN5PVtbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik05IDNoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XV0scTh0PVtbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0zIDE0djEifV0sWyJwYXRoIix7ZDoiTTMgNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XV0sQ3k9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTYiLHkyOiIxNiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiI4In1dXSxfeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dXSxUeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxNGgxMCJ9XV0sTHk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3YzIgMCAyLjgtMSAyLjgtMi44VjEwYzAtMiAxLTMuMyAzLjItMyJ9XSxbInBhdGgiLHtkOiJNOSAxMS4yaDUuNyJ9XV0sJHk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggN3Y3In1dLFsicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTE2IDd2OSJ9XV0sQXk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTEgN3YxMCJ9XSxbInBhdGgiLHtkOiJtMTUgNyAyIDEwIn1dXSxEeT1bWyJwYXRoIix7ZDoiTTggMTZWOC41YS41LjUgMCAwIDEgLjktLjNsMi43IDMuNTk5YS41LjUgMCAwIDAgLjggMGwyLjctMy42YS41LjUgMCAwIDEgLjkuM1YxNiJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxFeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA4aDEwIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE2aDEwIn1dXSxQeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXSxJeT1bWyJwYXRoIix7ZDoiTTEyLjAzNCAxMi42ODFhLjQ5OC40OTggMCAwIDEgLjY0Ny0uNjQ3bDkgMy41YS41LjUgMCAwIDEtLjAzMy45NDNsLTMuNDQ0IDEuMDY4YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY3IDMuNDQzYS41LjUgMCAwIDEtLjk0My4wMzN6In1dLFsicGF0aCIse2Q6Ik0yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XV0sTnk9W1sicGF0aCIse2Q6Ik0zLjYgMy42QTIgMiAwIDAgMSA1IDNoMTRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtLjU5IDEuNDEifV0sWyJwYXRoIix7ZDoiTTMgOC43VjE5YTIgMiAwIDAgMCAyIDJoMTAuMyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xMyAxM2EzIDMgMCAxIDAgMC02SDl2MiJ9XSxbInBhdGgiLHtkOiJNOSAxN3YtMi4zIn1dXSxGeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxN1Y3aDRhMyAzIDAgMCAxIDAgNkg5In1dXSxWOHQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJsaW5lIix7eDE6IjEwIix4MjoiMTAiLHkxOiIxNSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE0Iix4MjoiMTQiLHkxOiIxNSIseTI6IjkifV1dLHJvPVtbInBhdGgiLHtkOiJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03In1dLFsicGF0aCIse2Q6Ik0xOC4zNzUgMi42MjVhMSAxIDAgMCAxIDMgM2wtOS4wMTMgOS4wMTRhMiAyIDAgMCAxLS44NTMuNTA1bC0yLjg3My44NGEuNS41IDAgMCAxLS42Mi0uNjJsLjg0LTIuODczYTIgMiAwIDAgMSAuNTA2LS44NTJ6In1dXSxPeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3aDEwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxN2EyIDIgMCAwIDEtMi0yVjcifV1dLFJ5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXSxCeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJIOS41YTIuNSAyLjUgMCAwIDEgMC01SDE3In1dLFsicGF0aCIse2Q6Ik0xMiA3djEwIn1dLFsicGF0aCIse2Q6Ik0xNiA3djEwIn1dXSxIeT1bWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSA5LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdBMSAxIDAgMCAxIDkgMTQuOTk2eiJ9XV0scXk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dXSxWeT1bWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNNy45OTggOS4wMDNhNSA1IDAgMSAwIDgtLjAwNSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxqOHQ9W1sicGF0aCIse2Q6Ik0yMSAxMWE4IDggMCAwIDAtOC04In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0In1dXSxVOHQ9W1sicGF0aCIse2Q6Ik03IDEyaDJsMiA1IDItMTBoNCJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxqeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiI4LjUiLGN5OiI4LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjkuNTYwNjYiLHgyOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxNyIseTE6IjE3Iix4MjoiMTQuODIiLHkyOiIxNC44MiJ9XSxbImNpcmNsZSIse2N4OiI4LjUiLGN5OiIxNS41IixyOiIxLjUifV0sWyJsaW5lIix7eDE6IjkuNTYwNjYiLHkxOiIxNC40MzkzNCIseDI6IjE3Iix5MjoiNyJ9XV0sVXk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDguOVY3SDhsNCA1LTQgNWg4di0xLjkifV1dLFd5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI5Iix4MjoiMTUiLHkxOiIxNSIseTI6IjkifV1dLEd5PVtbInBhdGgiLHtkOiJNOCAxOUg1Yy0xIDAtMi0xLTItMlY3YzAtMSAxLTIgMi0yaDMifV0sWyJwYXRoIix7ZDoiTTE2IDVoM2MxIDAgMiAxIDIgMnYxMGMwIDEtMSAyLTIgMmgtMyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjQiLHkyOiIyMCJ9XV0sWXk9W1sicGF0aCIse2Q6Ik01IDhWNWMwLTEgMS0yIDItMmgxMGMxIDAgMiAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxNnYzYzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0ydi0zIn1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxMiIseTI6IjEyIn1dXSxXOHQ9W1sicGF0aCIse2Q6Ik00IDEwYy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoNGMxLjEgMCAyIC45IDIgMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTZjLTEuMSAwLTItLjktMi0ydi00YzAtMS4xLjktMiAyLTJoNGMxLjEgMCAyIC45IDIgMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIxNCIseToiMTQiLHJ4OiIyIn1dXSxHOHQ9W1sicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV0sWyJyZWN0Iix7eDoiOCIseToiOCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dLFk4dD1bWyJwYXRoIix7ZDoiTTExLjAzNSA3LjY5YTEgMSAwIDAgMSAxLjkwOS4wMjRsLjczNyAxLjQ1MmExIDEgMCAwIDAgLjczNy41MzVsMS42MzQuMjU2YTEgMSAwIDAgMSAuNTg4IDEuODA2bC0xLjE3MiAxLjE2OGExIDEgMCAwIDAtLjI4Mi44NjZsLjI1OSAxLjYxM2ExIDEgMCAwIDEtMS41NDEgMS4xMzRsLTEuNDY1LS43NWExIDEgMCAwIDAtLjkxMiAwbC0xLjQ2NS43NWExIDEgMCAwIDEtMS41MzktMS4xMzNsLjI1OC0xLjYxM2ExIDEgMCAwIDAtLjI4Mi0uODY2bC0xLjE1Ni0xLjE1M2ExIDEgMCAwIDEgLjU3Mi0xLjgyMmwxLjYzMy0uMjU2YTEgMSAwIDAgMCAuNzM3LS41MzV6In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLFo4dD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInJlY3QiLHt4OiI5Iix5OiI5Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV0sWnk9W1sicGF0aCIse2Q6Im03IDExIDItMi0yLTIifV0sWyJwYXRoIix7ZDoiTTExIDEzaDQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV1dLFh5PVtbInBhdGgiLHtkOiJNMTggMjFhNiA2IDAgMCAwLTEyIDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXSxLeT1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik03IDIxdi0yYTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjIifV1dLFF5PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoibTkgOSA2IDYifV1dLFg4dD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV0sSzh0PVtbInBhdGgiLHtkOiJNMTYgMTJ2MmEyIDIgMCAwIDEtMiAySDlhMSAxIDAgMCAwLTEgMXYzYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlYxMGEyIDIgMCAwIDAtMi0yaDAifV0sWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMS0xIDFoLTVhMiAyIDAgMCAwLTIgMnYyIn1dXSxROHQ9W1sicGF0aCIse2Q6Ik0xMCAyMmEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik0xNCAyYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTE2IDIyaC0yIn1dLFsicGF0aCIse2Q6Ik0yIDEwVjgifV0sWyJwYXRoIix7ZDoiTTIgNGEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik0yMCA4YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDE0djIifV0sWyJwYXRoIix7ZDoiTTIyIDIwYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOCAxMGEyIDIgMCAwIDEgMi0yaDVhMSAxIDAgMCAxIDEgMXY1YTIgMiAwIDAgMS0yIDJIOWExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCAyaDIifV1dLEo4dD1bWyJwYXRoIix7ZDoiTTEwIDIyYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTE2IDIyaC0yIn1dLFsicGF0aCIse2Q6Ik0xNiA0YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoM2ExIDEgMCAwIDAgMS0xdi01YTIgMiAwIDAgMSAyLTJoNWExIDEgMCAwIDAgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMjAgOGEyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMGEyIDIgMCAwIDEtMiAyIn1dXSxlZHQ9W1sicGF0aCIse2Q6Ik00IDE2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2M2ExIDEgMCAwIDAgMSAxaDNhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDEwYTIgMiAwIDAgMS0yLTJ2LTNhMSAxIDAgMCAwLTEtMXoifV1dLHRkdD1bWyJwYXRoIix7ZDoiTTEzLjc3IDMuMDQzYTM0IDM0IDAgMCAwLTMuNTQgMCJ9XSxbInBhdGgiLHtkOiJNMTMuNzcxIDIwLjk1NmEzMyAzMyAwIDAgMS0zLjU0MS4wMDEifV0sWyJwYXRoIix7ZDoiTTIwLjE4IDE3Ljc0Yy0uNTEgMS4xNS0xLjI5IDEuOTMtMi40MzkgMi40NCJ9XSxbInBhdGgiLHtkOiJNMjAuMTggNi4yNTljLS41MS0xLjE0OC0xLjI5MS0xLjkyOS0yLjQ0LTIuNDM4In1dLFsicGF0aCIse2Q6Ik0yMC45NTcgMTAuMjNhMzMgMzMgMCAwIDEgMCAzLjU0In1dLFsicGF0aCIse2Q6Ik0zLjA0MyAxMC4yM2EzNCAzNCAwIDAgMCAuMDAxIDMuNTQxIn1dLFsicGF0aCIse2Q6Ik02LjI2IDIwLjE3OWMtMS4xNS0uNTA4LTEuOTMtMS4yOS0yLjQ0LTIuNDM4In1dLFsicGF0aCIse2Q6Ik02LjI2IDMuODJjLTEuMTQ5LjUxLTEuOTMgMS4yOTEtMi40NCAyLjQ0In1dXSxhZHQ9W1sicGF0aCIse2Q6Ik0xMiAzYzcuMiAwIDkgMS44IDkgOXMtMS44IDktOSA5LTktMS44LTktOSAxLjgtOSA5LTkifV1dLGlkdD1bWyJwYXRoIix7ZDoiTTE1LjIzNiAyMmEzIDMgMCAwIDAtMi4yLTUifV0sWyJwYXRoIix7ZDoiTTE2IDIwYTMgMyAwIDAgMSAzLTNoMWEyIDIgMCAwIDAgMi0ydi0yYTQgNCAwIDAgMC00LTRWNCJ9XSxbInBhdGgiLHtkOiJNMTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA2YTQgNCAwIDAgMC00IDQgNyA3IDAgMCAwLTcgN2MwLTUgNC01IDQtMTAuNWE0LjUgNC41IDAgMSAwLTkgMCAyLjUgMi41IDAgMCAwIDUgMEM3IDEwIDMgMTEgMyAxN2MwIDIuOCAyLjIgNSA1IDVoMTAifV1dLHJkdD1bWyJwYXRoIix7ZDoiTTE0IDEzVjguNUMxNCA3IDE1IDcgMTUgNWEzIDMgMCAwIDAtNiAwYzAgMiAxIDIgMSAzLjVWMTMifV0sWyJwYXRoIix7ZDoiTTIwIDE1LjVhMi41IDIuNSAwIDAgMC0yLjUtMi41aC0xMUEyLjUgMi41IDAgMCAwIDQgMTUuNVYxN2ExIDEgMCAwIDAgMSAxaDE0YTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik01IDIyaDE0In1dXSxzZHQ9W1sicGF0aCIse2Q6Ik0xMiAxOC4zMzhhMi4xIDIuMSAwIDAgMC0uOTg3LjI0NEw2LjM5NiAyMS4wMWEuNTMuNTMgMCAwIDEtLjc3LS41NmwuODgxLTUuMTM5YTIuMTIgMi4xMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIgMi4xMiAwIDAgMCAxLjU5Ny0xLjE2bDIuMzA5LTQuNjc5QS41My41MyAwIDAgMSAxMiAyIn1dXSxuZHQ9W1sicGF0aCIse2Q6Im0xMC4zNDQgNC42ODggMS4xODEtMi4zOTNhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMiAyLjEyIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy4yMzcgMy4xNTIifV0sWyJwYXRoIix7ZDoibTE3Ljk0NSAxNy45NDUuNDMgMi41MDVhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIgMi4xMiAwIDAgMC0xLjk3MyAwTDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhOCA4IDAgMCAwIC40LS4wOTkifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sb2R0PVtbInBhdGgiLHtkOiJNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6In1dXSxsZHQ9W1sicGF0aCIse2Q6Ik0xMy45NzEgNC4yODVBMiAyIDAgMCAxIDE3IDZ2MTJhMiAyIDAgMCAxLTMuMDI5IDEuNzE1bC05Ljk5Ny01Ljk5OGEyIDIgMCAwIDEtLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTIxIDIwVjQifV1dLGNkdD1bWyJwYXRoIix7ZDoiTTEwLjAyOSA0LjI4NUEyIDIgMCAwIDAgNyA2djEyYTIgMiAwIDAgMCAzLjAyOSAxLjcxNWw5Ljk5Ny01Ljk5OGEyIDIgMCAwIDAgLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgNHYxNiJ9XV0sZGR0PVtbInBhdGgiLHtkOiJNMTEgMnYyIn1dLFsicGF0aCIse2Q6Ik01IDJ2MiJ9XSxbInBhdGgiLHtkOiJNNSAzSDRhMiAyIDAgMCAwLTIgMnY0YTYgNiAwIDAgMCAxMiAwVjVhMiAyIDAgMCAwLTItMmgtMSJ9XSxbInBhdGgiLHtkOiJNOCAxNWE2IDYgMCAwIDAgMTIgMHYtMyJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjEwIixyOiIyIn1dXSxwZHQ9W1sicGF0aCIse2Q6Ik0yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDEzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnMuOCAxIDIgMWMxLjMgMCAyLTEgMi0xIn1dXSxoZHQ9W1sicGF0aCIse2Q6Ik0yMSA5YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNSAzdjVhMSAxIDAgMCAwIDEgMWg1In1dXSx1ZHQ9W1sicGF0aCIse2Q6Ik0xMS4yNjQgMi4yMDVBNCA0IDAgMCAwIDYuNDIgNC4yMTFsLTQgOGE0IDQgMCAwIDAgMS4zNTkgNS4xMTdsNiA0YTQgNCAwIDAgMCA0LjQzOCAwbDYtNGE0IDQgMCAwIDAgMS41NzYtNC41OTJsLTItNmE0IDQgMCAwIDAtMi41My0yLjUzeiJ9XSxbInBhdGgiLHtkOiJNMTEuOTkgMjIgMTQgMTJsNy44MjIgMy4xODQifV0sWyJwYXRoIix7ZDoiTTE0IDEyIDguNDcgMi4zMDIifV1dLGZkdD1bWyJwYXRoIix7ZDoiTTE1IDIxdi01YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXY1In1dLFsicGF0aCIse2Q6Ik0xNy43NzQgMTAuMzFhMS4xMiAxLjEyIDAgMCAwLTEuNTQ5IDAgMi41IDIuNSAwIDAgMS0zLjQ1MSAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OCAwIDIuNSAyLjUgMCAwIDEtMy40NTIgMCAxLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNzctMy4yNDhsMi44ODktNC4xODRBMiAyIDAgMCAxIDcgMmgxMGEyIDIgMCAwIDEgMS42NTMuODczbDIuODk1IDQuMTkyYTIuNSAyLjUgMCAwIDEtMy43NzQgMy4yNDQifV0sWyJwYXRoIix7ZDoiTTQgMTAuOTVWMTlhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04LjA1In1dXSxtZHQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiNiIseDoiMiIseToiMTQiLHJ4OiIyIn1dXSxnZHQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIyMCIseDoiMTQiLHk6IjIiLHJ4OiIyIn1dXSxiZHQ9W1sicGF0aCIse2Q6Ik0xNiA0SDlhMyAzIDAgMCAwLTIuODMgNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTJhNCA0IDAgMCAxIDAgOEg2In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIxMiIseTI6IjEyIn1dXSx2ZHQ9W1sicGF0aCIse2Q6Im00IDUgOCA4In1dLFsicGF0aCIse2Q6Im0xMiA1LTggOCJ9XSxbInBhdGgiLHtkOiJNMjAgMTloLTRjMC0xLjUuNDQtMiAxLjUtMi41UzIwIDE1LjMzIDIwIDE0YzAtLjQ3LS4xNy0uOTMtLjQ4LTEuMjlhMi4xMSAyLjExIDAgMCAwLTIuNjItLjQ0Yy0uNDIuMjQtLjc0LjYyLS45IDEuMDcifV1dLHlkdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTIgNGguMDEifV0sWyJwYXRoIix7ZDoiTTIwIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik00IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjU3IDYuMzQzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjU3IDE3LjY1N2guMDEifV0sWyJwYXRoIix7ZDoiTTYuMzQzIDE3LjY1N2guMDEifV0sWyJwYXRoIix7ZDoiTTYuMzQzIDYuMzQzaC4wMSJ9XV0seGR0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAzdjEifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjEifV0sWyJwYXRoIix7ZDoiTTMgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMSJ9XSxbInBhdGgiLHtkOiJtMTguMzY0IDUuNjM2LS43MDcuNzA3In1dLFsicGF0aCIse2Q6Im02LjM0MyAxNy42NTctLjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTUuNjM2IDUuNjM2LjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTE3LjY1NyAxNy42NTcuNzA3LjcwNyJ9XV0sd2R0PVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNC44MzcgMTYuMzg1YTYgNiAwIDEgMS03LjIyMy03LjIyMmMuNjI0LS4xNDcuOTcuNjYuNzE1IDEuMjQ4YTQgNCAwIDAgMCA1LjI2IDUuMjU5Yy41ODktLjI1NSAxLjM5Ni4wOSAxLjI0OC43MTUifV0sWyJwYXRoIix7ZDoiTTE2IDEyYTQgNCAwIDAgMC00LTQifV0sWyJwYXRoIix7ZDoibTE5IDUtMS4yNTYgMS4yNTYifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV1dLE1kdD1bWyJwYXRoIix7ZDoiTTEwIDIxdi0xIn1dLFsicGF0aCIse2Q6Ik0xMCA0VjMifV0sWyJwYXRoIix7ZDoiTTEwIDlhMyAzIDAgMCAwIDAgNiJ9XSxbInBhdGgiLHtkOiJtMTQgMjAgMS4yNS0yLjVMMTggMTgifV0sWyJwYXRoIix7ZDoibTE0IDQgMS4yNSAyLjVMMTggNiJ9XSxbInBhdGgiLHtkOiJtMTcgMjEtMy02IDEuNS0zSDIyIn1dLFsicGF0aCIse2Q6Im0xNyAzLTMgNiAxLjUgMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxIn1dLFsicGF0aCIse2Q6Im0yMCAxMC0xLjUgMiAxLjUgMiJ9XSxbInBhdGgiLHtkOiJtMy42NCAxOC4zNi43LS43In1dLFsicGF0aCIse2Q6Im00LjM0IDYuMzQtLjctLjcifV1dLHpkdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Im0xNy42NiAxNy42NiAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJtNi4zNCAxNy42Ni0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTE5LjA3IDQuOTMtMS40MSAxLjQxIn1dXSxrZHQ9W1sicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJwYXRoIix7ZDoibTQuOTMgMTAuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yIDE4aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE4aDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDEwLjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XSxbInBhdGgiLHtkOiJtOCA2IDQtNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDE4YTQgNCAwIDAgMC04IDAifV1dLFNkdD1bWyJwYXRoIix7ZDoiTTEyIDEwVjIifV0sWyJwYXRoIix7ZDoibTQuOTMgMTAuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yIDE4aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE4aDIifV0sWyJwYXRoIix7ZDoibTE5LjA3IDEwLjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XSxbInBhdGgiLHtkOiJtMTYgNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0xNiAxOGE0IDQgMCAwIDAtOCAwIn1dXSxDZHQ9W1sicGF0aCIse2Q6Im00IDE5IDgtOCJ9XSxbInBhdGgiLHtkOiJtMTIgMTktOC04In1dLFsicGF0aCIse2Q6Ik0yMCAxMmgtNGMwLTEuNS40NDItMiAxLjUtMi41UzIwIDguMzM0IDIwIDcuMDAyYzAtLjQ3Mi0uMTctLjkzLS40ODQtMS4yOWEyLjEwNSAyLjEwNSAwIDAgMC0yLjYxNy0uNDM2Yy0uNDIuMjM5LS43MzguNjE0LS44OTkgMS4wNiJ9XV0sX2R0PVtbInBhdGgiLHtkOiJNMTEgMTdhNCA0IDAgMCAxLTggMFY1YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTYuNyAxM0gxOWEyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMkg3In1dLFsicGF0aCIse2Q6Ik0gNyAxN2guMDEifV0sWyJwYXRoIix7ZDoibTExIDggMi4zLTIuM2EyLjQgMi40IDAgMCAxIDMuNDA0LjAwNEwxOC42IDcuNmEyLjQgMi40IDAgMCAxIC4wMjYgMy40MzRMOS45IDE5LjgifV1dLFRkdD1bWyJwYXRoIix7ZDoiTTEwIDIxVjNoOCJ9XSxbInBhdGgiLHtkOiJNNiAxNmg5In1dLFsicGF0aCIse2Q6Ik0xMCA5LjVoNyJ9XV0sTGR0PVtbInBhdGgiLHtkOiJNMTEgMTlINGEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAxIDItMmg1In1dLFsicGF0aCIse2Q6Ik0xMyA1aDdhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC01In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoibTE4IDIyLTMtMyAzLTMifV0sWyJwYXRoIix7ZDoibTYgMiAzIDMtMyAzIn1dXSwkZHQ9W1sicGF0aCIse2Q6Im0xMSAxOS02LTYifV0sWyJwYXRoIix7ZDoibTUgMjEtMi0yIn1dLFsicGF0aCIse2Q6Im04IDE2LTQgNCJ9XSxbInBhdGgiLHtkOiJNOS41IDE3LjUgMjEgNlYzaC0zTDYuNSAxNC41In1dXSxBZHQ9W1sicG9seWxpbmUiLHtwb2ludHM6IjE0LjUgMTcuNSAzIDYgMyAzIDYgMyAxNy41IDE0LjUifV0sWyJsaW5lIix7eDE6IjEzIix4MjoiMTkiLHkxOiIxOSIseTI6IjEzIn1dLFsibGluZSIse3gxOiIxNiIseDI6IjIwIix5MToiMTYiLHkyOiIyMCJ9XSxbImxpbmUiLHt4MToiMTkiLHgyOiIyMSIseTE6IjIxIix5MjoiMTkifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTQuNSA2LjUgMTggMyAyMSAzIDIxIDYgMTcuNSA5LjUifV0sWyJsaW5lIix7eDE6IjUiLHgyOiI5Iix5MToiMTQiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiNyIseDI6IjQiLHkxOiIxNyIseTI6IjIwIn1dLFsibGluZSIse3gxOiIzIix4MjoiNSIseTE6IjE5Iix5MjoiMjEifV1dLERkdD1bWyJwYXRoIix7ZDoibTE4IDIgNCA0In1dLFsicGF0aCIse2Q6Im0xNyA3IDMtMyJ9XSxbInBhdGgiLHtkOiJNMTkgOSA4LjcgMTkuM2MtMSAxLTIuNSAxLTMuNCAwbC0uNi0uNmMtMS0xLTEtMi41IDAtMy40TDE1IDUifV0sWyJwYXRoIix7ZDoibTkgMTEgNCA0In1dLFsicGF0aCIse2Q6Im01IDE5LTMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgNCA2IDYifV1dLEVkdD1bWyJwYXRoIix7ZDoiTTkgM0g1YTIgMiAwIDAgMC0yIDJ2NG02LTZoMTBhMiAyIDAgMCAxIDIgMnY0TTkgM3YxOG0wIDBoMTBhMiAyIDAgMCAwIDItMlY5TTkgMjFINWEyIDIgMCAwIDEtMi0yVjltMCAwaDE4In1dXSxQZHQ9W1sicGF0aCIse2Q6Ik0xMiAyMXYtNiJ9XSxbInBhdGgiLHtkOiJNMTIgOVYzIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV0sSWR0PVtbInBhdGgiLHtkOiJNMTIgMTVWOSJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dLE5kdD1bWyJwYXRoIix7ZDoiTTE0IDE0djIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgOHYyIn1dLFsicGF0aCIse2Q6Ik0yIDE1aDgifV0sWyJwYXRoIix7ZDoiTTIgM2g2YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkgyIn1dLFsicGF0aCIse2Q6Ik0yIDloOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTVoLTQifV0sWyJwYXRoIix7ZDoiTTIyIDNoLTJhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDIifV0sWyJwYXRoIix7ZDoiTTIyIDloLTQifV0sWyJwYXRoIix7ZDoiTTUgM3YxOCJ9XV0sRmR0PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSA1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWguMDEifV1dLE9kdD1bWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNUgzIn1dXSxSZHQ9W1sicGF0aCIse2Q6Ik0xNCAxMGgyIn1dLFsicGF0aCIse2Q6Ik0xNSAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNMTUgMnY0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEwaDIifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoiTTMgMjJ2LTZhMiAyIDEzNSAwIDEgMi0yaDE0YTIgMiA0NSAwIDEgMiAydjYifV0sWyJwYXRoIix7ZDoiTTMgMnYyYTIgMiA0NSAwIDAgMiAyaDE0YTIgMiAxMzUgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDIifV0sWyJwYXRoIix7ZDoiTTkgMjJ2LTgifV0sWyJwYXRoIix7ZDoiTTkgMnY0In1dXSxCZHQ9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxNWgxOCJ9XV0sSGR0PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIixyeToiMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE4Iix5MjoiMTgifV1dLHFkdD1bWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjE0Iix4OiIzIix5OiI4IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNSA0YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxNmEyIDIgMCAwIDEtMiAyaC0yLjQifV0sWyJwYXRoIix7ZDoiTTggMThoLjAxIn1dXSxWZHQ9W1siY2lyY2xlIix7Y3g6IjciLGN5OiI3IixyOiI1In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE3aDEwIn1dLFsicGF0aCIse2Q6Im0zLjQ2IDEwLjU0IDcuMDgtNy4wOCJ9XV0samR0PVtbInBhdGgiLHtkOiJNMTIuNTg2IDIuNTg2QTIgMiAwIDAgMCAxMS4xNzIgMkg0YTIgMiAwIDAgMC0yIDJ2Ny4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsOC43MDQgOC43MDRhMi40MjYgMi40MjYgMCAwIDAgMy40MiAwbDYuNTgtNi41OGEyLjQyNiAyLjQyNiAwIDAgMCAwLTMuNDJ6In1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV0sVWR0PVtbInBhdGgiLHtkOiJNMTMuMTcyIDJhMiAyIDAgMCAxIDEuNDE0LjU4Nmw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMSAwIDMuNDA4bC00LjU5MiA0LjU5MmEyLjQgMi40IDAgMCAxLTMuNDA4IDBsLTYuNzEtNi43MUEyIDIgMCAwIDEgNiA5LjE3MlYzYTEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik0yIDd2Ni4xNzJhMiAyIDAgMCAwIC41ODYgMS40MTRsNi43MSA2LjcxYTIuNCAyLjQgMCAwIDAgMy4xOTEuMTkzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjUiLGN5OiI2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV1dLFdkdD1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XV0sR2R0PVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV1dLFlkdD1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dXSxaZHQ9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTkgNHYxNiJ9XV0sWGR0PVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE0IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE5IDR2MTYifV0sWyJwYXRoIix7ZDoiTTIyIDYgMiAxOCJ9XV0sS2R0PVtbImNpcmNsZSIse2N4OiIxNyIsY3k6IjQiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTE1LjU5IDUuNDEgNS40MSAxNS41OSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTciLHI6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDIycy00LTktMS41LTExLjVTMjIgMTIgMjIgMTIifV1dLFFkdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXSxKZHQ9W1sicGF0aCIse2Q6Im0xMC4wNjUgMTIuNDkzLTYuMTggMS4zMThhLjkzNC45MzQgMCAwIDEtMS4xMDgtLjcwMmwtLjUzNy0yLjE1YTEuMDcgMS4wNyAwIDAgMSAuNjkxLTEuMjY1bDEzLjUwNC00LjQ0In1dLFsicGF0aCIse2Q6Im0xMy41NiAxMS43NDcgNC4zMzItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTYgMjEtMy4xMDUtNi4yMSJ9XSxbInBhdGgiLHtkOiJNMTYuNDg1IDUuOTRhMiAyIDAgMCAxIDEuNDU1LTIuNDI1bDEuMDktLjI3MmExIDEgMCAwIDEgMS4yMTIuNzI3bDEuNTE1IDYuMDZhMSAxIDAgMCAxLS43MjcgMS4yMTNsLTEuMDkuMjcyYTIgMiAwIDAgMS0yLjQyNS0xLjQ1NXoifV0sWyJwYXRoIix7ZDoibTYuMTU4IDguNjMzIDEuMTE0IDQuNDU2In1dLFsicGF0aCIse2Q6Im04IDIxIDMuMTA1LTYuMjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMiJ9XV0sZTd0PVtbImNpcmNsZSIse2N4OiI0IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxMCAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAxNFYyIn1dLFsicGF0aCIse2Q6Ik0xNyAxNEg3bC01IDhoMjBaIn1dLFsicGF0aCIse2Q6Ik04IDE0djgifV0sWyJwYXRoIix7ZDoibTkgMTQgNSA4In1dXSx0N3Q9W1sicGF0aCIse2Q6Ik0zLjUgMjEgMTQgMyJ9XSxbInBhdGgiLHtkOiJNMjAuNSAyMSAxMCAzIn1dLFsicGF0aCIse2Q6Ik0xNS41IDIxIDEyIDE1bC0zLjUgNiJ9XSxbInBhdGgiLHtkOiJNMiAyMWgyMCJ9XV0sYTd0PVtbInBhdGgiLHtkOiJNMTIgMTloOCJ9XSxbInBhdGgiLHtkOiJtNCAxNyA2LTYtNi02In1dXSxKeT1bWyJwYXRoIix7ZDoiTTIxIDcgNi44MiAyMS4xOGEyLjgzIDIuODMgMCAwIDEtMy45OS0uMDFhMi44MyAyLjgzIDAgMCAxIDAtNEwxNyAzIn1dLFsicGF0aCIse2Q6Im0xNiAyIDYgNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTZINCJ9XV0saTd0PVtbInBhdGgiLHtkOiJNMTQuNSAydjE3LjVjMCAxLjQtMS4xIDIuNS0yLjUgMi41Yy0xLjQgMC0yLjUtMS4xLTIuNS0yLjVWMiJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XSxbInBhdGgiLHtkOiJNMTQuNSAxNmgtNSJ9XV0scjd0PVtbInBhdGgiLHtkOiJNOSAydjE3LjVBMi41IDIuNSAwIDAgMSA2LjUgMjJBMi41IDIuNSAwIDAgMSA0IDE5LjVWMiJ9XSxbInBhdGgiLHtkOiJNMjAgMnYxNy41YTIuNSAyLjUgMCAwIDEtMi41IDIuNWEyLjUgMi41IDAgMCAxLTIuNS0yLjVWMiJ9XSxbInBhdGgiLHtkOiJNMyAyaDcifV0sWyJwYXRoIix7ZDoiTTE0IDJoNyJ9XSxbInBhdGgiLHtkOiJNOSAxNkg0In1dLFsicGF0aCIse2Q6Ik0yMCAxNmgtNSJ9XV0sZXg9W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTE3IDEySDcifV0sWyJwYXRoIix7ZDoiTTE5IDE5SDUifV1dLHR4PVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkg5In1dLFsicGF0aCIse2Q6Ik0yMSAxOUg3In1dXSxheD1bWyJwYXRoIix7ZDoiTTMgNWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxOCJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XV0sczd0PVtbInBhdGgiLHtkOiJNMTIgMjBoLTFhMiAyIDAgMCAxLTItMiAyIDIgMCAwIDEtMiAySDYifV0sWyJwYXRoIix7ZDoiTTEzIDhoN2EyIDIgMCAwIDEgMiAydjRhMiAyIDAgMCAxLTIgMmgtNyJ9XSxbInBhdGgiLHtkOiJNNSAxNkg0YTIgMiAwIDAgMS0yLTJ2LTRhMiAyIDAgMCAxIDItMmgxIn1dLFsicGF0aCIse2Q6Ik02IDRoMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMSAyLTJoMSJ9XSxbInBhdGgiLHtkOiJNOSA2djEyIn1dXSx6bD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTUgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTlIMyJ9XV0sbjd0PVtbInBhdGgiLHtkOiJNMTcgMjJoLTFhNCA0IDAgMCAxLTQtNFY2YTQgNCAwIDAgMSA0LTRoMSJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxYTQgNCAwIDAgMCA0LTR2LTEifV0sWyJwYXRoIix7ZDoiTTcgMmgxYTQgNCAwIDAgMSA0IDR2MSJ9XV0saXg9W1sicGF0aCIse2Q6Ik0xNSA1aDYifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTloMTgifV0sWyJwYXRoIix7ZDoibTMgMTIgMy41NTMtNy43MjRhLjUuNSAwIDAgMSAuODk0IDBMMTEgMTIifV0sWyJwYXRoIix7ZDoiTTMuOTIgMTBoNi4xNiJ9XV0sbzd0PVtbInBhdGgiLHtkOiJNMTcgNUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkg4In1dLFsicGF0aCIse2Q6Ik0yMSAxOUg4In1dLFsicGF0aCIse2Q6Ik0zIDEydjcifV1dLGw3dD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTAgMTlIMyJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE1IixyOiIzIn1dLFsicGF0aCIse2Q6Im0yMSAxOS0xLjktMS45In1dXSxyeD1bWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTE0IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSAxNHYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMyA5djEifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoNiJ9XSxbInBhdGgiLHtkOiJNNyA4aDgifV0sWyJwYXRoIix7ZDoiTTkgMjFoMSJ9XSxbInBhdGgiLHtkOiJNOSAzaDEifV1dLHN4PVtbInBhdGgiLHtkOiJtMTYgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxNC41YTEgMSAwIDAgMSAwIDdIMTMifV0sWyJwYXRoIix7ZDoiTTMgMTloNiJ9XSxbInBhdGgiLHtkOiJNMyA1aDE4In1dXSxjN3Q9W1sicGF0aCIse2Q6Ik0yIDEwczMtMyAzLTgifV0sWyJwYXRoIix7ZDoiTTIyIDEwcy0zLTMtMy04In1dLFsicGF0aCIse2Q6Ik0xMCAyYzAgNC40LTMuNiA4LTggOCJ9XSxbInBhdGgiLHtkOiJNMTQgMmMwIDQuNCAzLjYgOCA4IDgifV0sWyJwYXRoIix7ZDoiTTIgMTBzMiAyIDIgNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTBzLTIgMi0yIDUifV0sWyJwYXRoIix7ZDoiTTggMTVoOCJ9XSxbInBhdGgiLHtkOiJNMiAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMnYtMWEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxIn1dXSxkN3Q9W1sicGF0aCIse2Q6Im0xMCAyMC0xLjI1LTIuNUw2IDE4In1dLFsicGF0aCIse2Q6Ik0xMCA0IDguNzUgNi41IDYgNiJ9XSxbInBhdGgiLHtkOiJNMTAuNTg1IDE1SDEwIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDYuNUwxMCA5In1dLFsicGF0aCIse2Q6Ik0yMCAxNC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMHoifV0sWyJwYXRoIix7ZDoibTQgMTAgMS41IDJMNCAxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMSAzLTYtMS41LTMifV0sWyJwYXRoIix7ZDoibTcgMyAzIDZoMiJ9XV0scDd0PVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMiA4YTQgNCAwIDAgMC0xLjY0NSA3LjY0NyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxNC41NGE0IDQgMCAxIDEtNCAwVjRhMiAyIDAgMCAxIDQgMHoifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTYuMzQgMTcuNjYtMS40MSAxLjQxIn1dXSxoN3Q9W1sicGF0aCIse2Q6Ik0xNCA0djEwLjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAwWiJ9XV0sdTd0PVtbInBhdGgiLHtkOiJNOSAxOC4xMiAxMCAxNEg0LjE3YTIgMiAwIDAgMS0xLjkyLTIuNTZsMi4zMy04QTIgMiAwIDAgMSA2LjUgMkgyMGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMi43NmEyIDIgMCAwIDAtMS43OSAxLjExTDEyIDIyYTMuMTMgMy4xMyAwIDAgMS0zLTMuODhaIn1dLFsicGF0aCIse2Q6Ik0xNyAxNFYyIn1dXSxmN3Q9W1sicGF0aCIse2Q6Ik0xNSA1Ljg4IDE0IDEwaDUuODNhMiAyIDAgMCAxIDEuOTIgMi41NmwtMi4zMyA4QTIgMiAwIDAgMSAxNy41IDIySDRhMiAyIDAgMCAxLTItMnYtOGEyIDIgMCAwIDEgMi0yaDIuNzZhMiAyIDAgMCAwIDEuNzktMS4xMUwxMiAyYTMuMTMgMy4xMyAwIDAgMSAzIDMuODhaIn1dLFsicGF0aCIse2Q6Ik03IDEwdjEyIn1dXSxtN3Q9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV1dLGc3dD1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoiTTkgMTJoNiJ9XV0sYjd0PVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDEgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMSAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTE1IDE1aC4wMSJ9XV0sdjd0PVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik0xMiA5djYifV1dLHk3dD1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoibTkuNSAxNC41IDUtNSJ9XV0seDd0PVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJtOS41IDE0LjUgNS01In1dLFsicGF0aCIse2Q6Im05LjUgOS41IDUgNSJ9XV0sdzd0PVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTMgNXYyIn1dLFsicGF0aCIse2Q6Ik0xMyAxN3YyIn1dLFsicGF0aCIse2Q6Ik0xMyAxMXYyIn1dXSxNN3Q9W1sicGF0aCIse2Q6Ik0xMC41IDE3aDEuMjI3YTIgMiAwIDAgMCAxLjM0NS0uNTJMMTggMTIifV0sWyJwYXRoIix7ZDoibTEyIDEzLjUgMy43OTQuNTA2In1dLFsicGF0aCIse2Q6Im0zLjE3MyA4LjE4IDExLTVhMiAyIDAgMCAxIDIuNjQ3Ljk5M0wxOC41NiA4In1dLFsicGF0aCIse2Q6Ik02IDEwVjgifV0sWyJwYXRoIix7ZDoiTTYgMTR2MSJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicmVjdCIse3g6IjIiLHk6IjgiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxMyIscng6IjIifV1dLHo3dD1bWyJwYXRoIix7ZDoiTTEwIDJoNCJ9XSxbInBhdGgiLHtkOiJNNC42IDExYTggOCAwIDAgMCAxLjcgOC43IDggOCAwIDAgMCA4LjcgMS43In1dLFsicGF0aCIse2Q6Ik03LjQgNy40YTggOCAwIDAgMSAxMC4zIDEgOCA4IDAgMCAxIC45IDEwLjIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LTIifV1dLGs3dD1bWyJwYXRoIix7ZDoibTMuMTczIDguMTggMTEtNWEyIDIgMCAwIDEgMi42NDcuOTkzTDE4LjU2IDgifV0sWyJwYXRoIix7ZDoiTTYgMTBWOCJ9XSxbInBhdGgiLHtkOiJNNiAxNHYxIn1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJyZWN0Iix7eDoiMiIseToiOCIsd2lkdGg6IjIwIixoZWlnaHQ6IjEzIixyeDoiMiJ9XV0sUzd0PVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNCAxM2E4IDggMCAwIDEgOC03IDggOCAwIDEgMS01LjMgMTRMNCAxNy42In1dLFsicGF0aCIse2Q6Ik05IDE3SDR2NSJ9XV0sQzd0PVtbImxpbmUiLHt4MToiMTAiLHgyOiIxNCIseTE6IjIiLHkyOiIyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjE1Iix5MToiMTQiLHkyOiIxMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE0IixyOiI4In1dXSxfN3Q9W1siY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiI3In1dXSxUN3Q9W1siY2lyY2xlIix7Y3g6IjE1IixjeToiMTIiLHI6IjMifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiNyJ9XV0sTDd0PVtbInBhdGgiLHtkOiJNNyAxMmgxM2ExIDEgMCAwIDEgMSAxIDUgNSAwIDAgMS01IDVoLS41OThhLjUuNSAwIDAgMC0uNDI0Ljc2NWwxLjU0NCAyLjQ3YS41LjUgMCAwIDEtLjQyNC43NjVINS40MDJhLjUuNSAwIDAgMS0uNDI0LS43NjVMNyAxOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGE1IDUgMCAwIDEtNS01VjRhMiAyIDAgMCAxIDItMmg4YTIgMiAwIDAgMSAyIDJ2OCJ9XV0sJDd0PVtbInBhdGgiLHtkOiJNMTAgMTVoNCJ9XSxbInBhdGgiLHtkOiJtMTQuODE3IDEwLjk5NS0uOTcxLTEuNDUgMS4wMzQtMS4yMzJhMiAyIDAgMCAwLTIuMDI1LTMuMjM4bC0xLjgyLjM2NEw5LjkxIDMuODg1YTIgMiAwIDAgMC0zLjYyNS43NDhMNi4xNDEgNi41NWwtMS43MjUuNDI2YTIgMiAwIDAgMC0uMTkgMy43NTZsLjY1Ny4yNyJ9XSxbInBhdGgiLHtkOiJtMTguODIyIDEwLjk5NSAyLjI2LTUuMzhhMSAxIDAgMCAwLS41NTctMS4zMThMMTYuOTU0IDIuOWExIDEgMCAwIDAtMS4yODEuNTMzbC0uOTI0IDIuMTIyIn1dLFsicGF0aCIse2Q6Ik00IDEyLjAwNkExIDEgMCAwIDEgNC45OTQgMTFIMTlhMSAxIDAgMCAxIDEgMXY3YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yeiJ9XV0sQTd0PVtbInBhdGgiLHtkOiJNMTYgMTJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgNmEyIDIgMCAwIDEgMS40MTQuNTg2bDQgNEEyIDIgMCAwIDEgMjIgMTJ2N2EyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LTRBMiAyIDAgMCAxIDggNnoifV0sWyJwYXRoIix7ZDoiTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMnY0In1dXSxEN3Q9W1sicGF0aCIse2Q6Ik0yMSA0SDMifV0sWyJwYXRoIix7ZDoiTTE4IDhINiJ9XSxbInBhdGgiLHtkOiJNMTkgMTJIOSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLTYifV0sWyJwYXRoIix7ZDoiTTExIDIwSDkifV1dLEU3dD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiMTEiLHJ4OiIzIixyeToiMiJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMi41IixyeDoiMTAiLHJ5OiI4LjUifV1dLFA3dD1bWyJwYXRoIix7ZDoiTTEyIDIwdi02In1dLFsicGF0aCIse2Q6Ik0xOS42NTYgMTRIMjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNOS42NTYgNEgyMGEyIDIgMCAwIDEgMiAydjEwLjM0NCJ9XV0sSTd0PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtNiJ9XV0sTjd0PVtbInBhdGgiLHtkOiJNMTguMiAxMi4yNyAyMCA2SDRsMS44IDYuMjdhMSAxIDAgMCAwIC45NS43M2gxMC41YTEgMSAwIDAgMCAuOTYtLjczWiJ9XSxbInBhdGgiLHtkOiJNOCAxM3Y5In1dLFsicGF0aCIse2Q6Ik0xNiAyMnYtOSJ9XSxbInBhdGgiLHtkOiJtOSA2IDEgNyJ9XSxbInBhdGgiLHtkOiJtMTUgNi0xIDcifV0sWyJwYXRoIix7ZDoiTTEyIDZWMiJ9XSxbInBhdGgiLHtkOiJNMTMgMmgtMiJ9XV0sRjd0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjgiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMCA4VjVjMC0uNi0uNC0xLTEtMUg2YTEgMSAwIDAgMC0xIDF2MyJ9XSxbInBhdGgiLHtkOiJNMTkgOFY1YzAtLjYtLjQtMS0xLTFoLTNhMSAxIDAgMCAwLTEgMXYzIn1dXSxPN3Q9W1sicGF0aCIse2Q6Im0xMCAxMSAxMSAuOWExIDEgMCAwIDEgLjggMS4xbC0uNjY1IDQuMTU4YTEgMSAwIDAgMS0uOTg4Ljg0MkgyMCJ9XSxbInBhdGgiLHtkOiJNMTYgMThoLTUifV0sWyJwYXRoIix7ZDoiTTE4IDVhMSAxIDAgMCAwLTEgMXY1LjU3MyJ9XSxbInBhdGgiLHtkOiJNMyA0aDguMTI5YTEgMSAwIDAgMSAuOTkuODYzTDEzIDExLjI0NiJ9XSxbInBhdGgiLHtkOiJNNCAxMVY0In1dLFsicGF0aCIse2Q6Ik03IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMC4xVjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTUiLHI6IjUifV1dLFI3dD1bWyJwYXRoIix7ZDoiTTE2LjA1IDEwLjk2NmE1IDIuNSAwIDAgMS04LjEgMCJ9XSxbInBhdGgiLHtkOiJtMTYuOTIzIDE0LjA0OSA0LjQ4IDIuMDRhMSAxIDAgMCAxIC4wMDEgMS44MzFsLTguNTc0IDMuOWEyIDIgMCAwIDEtMS42NiAwbC04LjU3NC0zLjkxYTEgMSAwIDAgMSAwLTEuODNsNC40ODQtMi4wNCJ9XSxbInBhdGgiLHtkOiJNMTYuOTQ5IDE0LjE0YTUgMi41IDAgMSAxLTkuOSAwTDEwLjA2MyAzLjVhMiAyIDAgMCAxIDMuODc0IDB6In1dLFsicGF0aCIse2Q6Ik05LjE5NCA2LjU3YTUgMi41IDAgMCAwIDUuNjEgMCJ9XV0sQjd0PVtbInBhdGgiLHtkOiJNMiAyMlYxMmExMCAxMCAwIDEgMSAyMCAwdjEwIn1dLFsicGF0aCIse2Q6Ik0xNSA2Ljh2MS40YTMgMi44IDAgMSAxLTYgMFY2LjgifV0sWyJwYXRoIix7ZDoiTTEwIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCAxOWE0IDQgMCAwIDEtNC00di0zYTYgNiAwIDEgMSAxMiAwdjNhNCA0IDAgMCAxLTQgNFoifV0sWyJwYXRoIix7ZDoibTkgMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAyIDMifV1dLEg3dD1bWyJwYXRoIix7ZDoiTTggMy4xVjdhNCA0IDAgMCAwIDggMFYzLjEifV0sWyJwYXRoIix7ZDoibTkgMTUtMS0xIn1dLFsicGF0aCIse2Q6Im0xNSAxNSAxLTEifV0sWyJwYXRoIix7ZDoiTTkgMTljLTIuOCAwLTUtMi4yLTUtNXYtNGE4IDggMCAwIDEgMTYgMHY0YzAgMi44LTIuMiA1LTUgNVoifV0sWyJwYXRoIix7ZDoibTggMTktMiAzIn1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDMifV1dLHE3dD1bWyJwYXRoIix7ZDoiTTIgMTcgMTcgMiJ9XSxbInBhdGgiLHtkOiJtMiAxNCA4IDgifV0sWyJwYXRoIix7ZDoibTUgMTEgOCA4In1dLFsicGF0aCIse2Q6Im04IDggOCA4In1dLFsicGF0aCIse2Q6Im0xMSA1IDggOCJ9XSxbInBhdGgiLHtkOiJtMTQgMiA4IDgifV0sWyJwYXRoIix7ZDoiTTcgMjIgMjIgNyJ9XV0sbng9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTFoMTYifV0sWyJwYXRoIix7ZDoiTTEyIDN2OCJ9XSxbInBhdGgiLHtkOiJtOCAxOS0yIDMifV0sWyJwYXRoIix7ZDoibTE4IDIyLTItMyJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1aC4wMSJ9XV0sVjd0PVtbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTQgMjBoLTQifV0sWyJwYXRoIix7ZDoiTTE4IDJoNHY0In1dLFsicGF0aCIse2Q6Im0yIDIgNy4xNyA3LjE3In1dLFsicGF0aCIse2Q6Ik0yIDUuMzU1VjJoMy4zNTcifV0sWyJwYXRoIix7ZDoibTIyIDItNy4xNyA3LjE3In1dLFsicGF0aCIse2Q6Ik04IDUgNSA4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV1dLGo3dD1bWyJwYXRoIix7ZDoiTTEwIDExdjYifV0sWyJwYXRoIix7ZDoiTTE0IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNMyA2aDE4In1dLFsicGF0aCIse2Q6Ik04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIn1dXSxVN3Q9W1sicGF0aCIse2Q6Ik0xOSA2djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjYifV0sWyJwYXRoIix7ZDoiTTMgNmgxOCJ9XSxbInBhdGgiLHtkOiJNOCA2VjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MiJ9XV0sVzd0PVtbInBhdGgiLHtkOiJNOCAxOWE0IDQgMCAwIDEtMi4yNC03LjMyQTMuNSAzLjUgMCAwIDEgOSA2LjAzVjZhMyAzIDAgMSAxIDYgMHYuMDRhMy41IDMuNSAwIDAgMSAzLjI0IDUuNjVBNCA0IDAgMCAxIDE2IDE5WiJ9XSxbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XV0sb3g9W1sicGF0aCIse2Q6Ik0xMyA4YzAtMi43Ni0yLjQ2LTUtNS41LTVTMiA1LjI0IDIgOGgybDEtMSAxIDFoNCJ9XSxbInBhdGgiLHtkOiJNMTMgNy4xNEE1LjgyIDUuODIgMCAwIDEgMTYuNSA2YzMuMDQgMCA1LjUgMi4yNCA1LjUgNWgtM2wtMS0xLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNNS44OSA5LjcxYy0yLjE1IDIuMTUtMi4zIDUuNDctLjM1IDcuNDNsNC4yNC00LjI1LjctLjcuNzEtLjcxIDIuMTItMi4xMmMtMS45NS0xLjk2LTUuMjctMS44LTcuNDIuMzUifV0sWyJwYXRoIix7ZDoiTTExIDE1LjVjLjUgMi41LS4xNyA0LjUtMSA2LjVoNGMyLTUuNS0uNS0xMi0xLTE0In1dXSxHN3Q9W1sicGF0aCIse2Q6Im0xNyAxNCAzIDMuM2ExIDEgMCAwIDEtLjcgMS43SDQuN2ExIDEgMCAwIDEtLjctMS43TDcgMTRoLS4zYTEgMSAwIDAgMS0uNy0xLjdMOSA5aC0uMkExIDEgMCAwIDEgOCA3LjNMMTIgM2w0IDQuM2ExIDEgMCAwIDEtLjggMS43SDE1bDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdIMTdaIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtMyJ9XV0sWTd0PVtbInBhdGgiLHtkOiJNMTAgMTB2LjJBMyAzIDAgMCAxIDguOSAxNkg1YTMgMyAwIDAgMS0xLTUuOFYxMGEzIDMgMCAwIDEgNiAwWiJ9XSxbInBhdGgiLHtkOiJNNyAxNnY2In1dLFsicGF0aCIse2Q6Ik0xMyAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOWg4LjNhMSAxIDAgMCAwIC43LTEuN0wxOCAxNGguM2ExIDEgMCAwIDAgLjctMS43TDE2IDloLjJhMSAxIDAgMCAwIC44LTEuN0wxMyAzbC0xLjQgMS41In1dXSxaN3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicmVjdCIse3dpZHRoOiIzIixoZWlnaHQ6IjkiLHg6IjciLHk6IjcifV0sWyJyZWN0Iix7d2lkdGg6IjMiLGhlaWdodDoiNSIseDoiMTQiLHk6IjcifV1dLFg3dD1bWyJwYXRoIix7ZDoiTTE2IDE3aDZ2LTYifV0sWyJwYXRoIix7ZDoibTIyIDE3LTguNS04LjUtNSA1TDIgNyJ9XV0sSzd0PVtbInBhdGgiLHtkOiJNMTQuODI4IDE0LjgyOCAyMSAyMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2NWgtNSJ9XSxbInBhdGgiLHtkOiJtMjEgMy05IDktNC00LTYgNiJ9XSxbInBhdGgiLHtkOiJNMjEgOFYzaC01In1dXSxRN3Q9W1sicGF0aCIse2Q6Ik0xNiA3aDZ2NiJ9XSxbInBhdGgiLHtkOiJtMjIgNy04LjUgOC41LTUtNUwyIDE3In1dXSxseD1bWyJwYXRoIix7ZDoibTIxLjczIDE4LTgtMTRhMiAyIDAgMCAwLTMuNDggMGwtOCAxNEEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS43My0zIn1dLFsicGF0aCIse2Q6Ik0xMiA5djQifV0sWyJwYXRoIix7ZDoiTTEyIDE3aC4wMSJ9XV0sSjd0PVtbInBhdGgiLHtkOiJNMTAuMTcgNC4xOTNhMiAyIDAgMCAxIDMuNjY2LjAxMyJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMiJ9XSxbInBhdGgiLHtkOiJtMTUuODc0IDcuNzQzIDEgMS43MzIifV0sWyJwYXRoIix7ZDoibTE4Ljg0OSAxMi45NTIgMSAxLjczMiJ9XSxbInBhdGgiLHtkOiJNMjEuODI0IDE4LjE4YTIgMiAwIDAgMS0xLjgzNSAyLjgyNCJ9XSxbInBhdGgiLHtkOiJNNC4wMjQgMjFhMiAyIDAgMCAxLTEuODM5LTIuODM5In1dLFsicGF0aCIse2Q6Im01LjEzNiAxMi45NTItMSAxLjczMiJ9XSxbInBhdGgiLHtkOiJNOCAyMWgyIn1dLFsicGF0aCIse2Q6Im04LjEwMiA3Ljc0My0xIDEuNzMyIn1dXSxlcHQ9W1sicGF0aCIse2Q6Ik0yMiAxOGEyIDIgMCAwIDEtMiAySDNjLTEuMSAwLTEuMy0uNi0uNC0xLjNMMjAuNCA0LjNjLjktLjcgMS42LS40IDEuNi43WiJ9XV0sdHB0PVtbInBhdGgiLHtkOiJNMTMuNzMgNGEyIDIgMCAwIDAtMy40NiAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIn1dXSxhcHQ9W1sicGF0aCIse2Q6Ik0xNCAxOVY3YTIgMiAwIDAgMC0yLTJIOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTlIOSJ9XSxbInBhdGgiLHtkOiJNMTkgMTloMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyTDE4LjMgOS4zOGExIDEgMCAwIDAtLjc4LS4zOEgxNCJ9XSxbInBhdGgiLHtkOiJNMiAxM3Y1YTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNNCAzIDIuMTUgNS4xNWEuNDk1LjQ5NSAwIDAgMCAuMzUuODZoMi4xNWEuNDcuNDcgMCAwIDEgLjM1Ljg2TDMgOS4wMiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOSIscjoiMiJ9XV0saXB0PVtbInBhdGgiLHtkOiJNMTAgMTQuNjZ2MS42MjZhMiAyIDAgMCAxLS45NzYgMS42OTZBNSA1IDAgMCAwIDcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xNCAxNC42NnYxLjYyNmEyIDIgMCAwIDAgLjk3NiAxLjY5NkE1IDUgMCAwIDEgMTcgMjEuOTc4In1dLFsicGF0aCIse2Q6Ik0xOCA5aDEuNWExIDEgMCAwIDAgMC01SDE4In1dLFsicGF0aCIse2Q6Ik00IDIyaDE2In1dLFsicGF0aCIse2Q6Ik02IDlhNiA2IDAgMCAwIDEyIDBWM2ExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXoifV0sWyJwYXRoIix7ZDoiTTYgOUg0LjVhMSAxIDAgMCAxIDAtNUg2In1dXSxycHQ9W1sicGF0aCIse2Q6Ik0xNCAxOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjExYTEgMSAwIDAgMCAxIDFoMiJ9XSxbInBhdGgiLHtkOiJNMTUgMThIOSJ9XSxbInBhdGgiLHtkOiJNMTkgMThoMmExIDEgMCAwIDAgMS0xdi0zLjY1YTEgMSAwIDAgMC0uMjItLjYyNGwtMy40OC00LjM1QTEgMSAwIDAgMCAxNy41MiA4SDE0In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXSxzcHQ9W1sicGF0aCIse2Q6Ik0xNSA0IDUgOSJ9XSxbInBhdGgiLHtkOiJtMTUgOC41LTEwIDUifV0sWyJwYXRoIix7ZDoiTTE4IDEyYTkgOSAwIDAgMS05IDlWMyJ9XV0sbnB0PVtbInBhdGgiLHtkOiJNMTAgMTIuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4djRhOCA4IDAgMCAxLTEuMDcgNCJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjEyIixyOiI0In1dLFsicmVjdCIse3g6IjIiLHk6IjQiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNiIscng6IjIifV1dLG9wdD1bWyJwYXRoIix7ZDoibTEyIDEwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xdi0zYTggOCAwIDEgMC0xNiAwdjNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNsMi00aDRaIn1dLFsicGF0aCIse2Q6Ik00LjgyIDcuOSA4IDEwIn1dLFsicGF0aCIse2Q6Ik0xNS4xOCA3LjkgMTIgMTAifV0sWyJwYXRoIix7ZDoiTTE2LjkzIDEwSDIwYTIgMiAwIDAgMSAwIDRIMiJ9XV0sbHB0PVtbInBhdGgiLHtkOiJNMTUuMDMzIDkuNDRhLjY0Ny42NDcgMCAwIDEgMCAxLjEybC00LjA2NSAyLjM1MmEuNjQ1LjY0NSAwIDAgMS0uOTY4LS41NlY3LjY0OGEuNjQ1LjY0NSAwIDAgMSAuOTY3LS41NnoifV0sWyJwYXRoIix7ZDoiTTcgMjFoMTAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XV0sY3g9W1sicGF0aCIse2Q6Ik03IDIxaDEwIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV1dLGNwdD1bWyJwYXRoIix7ZDoibTE3IDItNSA1LTUtNSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTUiLHg6IjIiLHk6IjciLHJ4OiIyIn1dXSxkcHQ9W1sicGF0aCIse2Q6Ik0yMSAySDN2MTZoNXY0bDQtNGg1bDQtNFYyem0tMTAgOVY3bTUgNFY3In1dXSxwcHQ9W1sicGF0aCIse2Q6Ik0yMiA0cy0uNyAyLjEtMiAzLjRjMS42IDEwLTkuNCAxNy4zLTE4IDExLjYgMi4yLjEgNC40LS42IDYtMkMzIDE1LjUuNSA5LjYgMyA1YzIuMiAyLjYgNS42IDQuMSA5IDQtLjktNC4yIDQtNi42IDctMy44IDEuMSAwIDMtMS4yIDMtMS4yeiJ9XV0saHB0PVtbInBhdGgiLHtkOiJNMTQgMTYuNWEuNS41IDAgMCAwIC41LjVoLjVhMiAyIDAgMCAxIDAgNEg5YTIgMiAwIDAgMSAwLTRoLjVhLjUuNSAwIDAgMCAuNS0uNXYtOWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVY4YTIgMiAwIDAgMS00IDBWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtNCAwdi0uNWEuNS41IDAgMCAwLS41LS41aC0zYS41LjUgMCAwIDAtLjUuNVoifV1dLHVwdD1bWyJwYXRoIix7ZDoiTTEyIDR2MTYifV0sWyJwYXRoIix7ZDoiTTQgN1Y1YTEgMSAwIDAgMSAxLTFoMTRhMSAxIDAgMCAxIDEgMXYyIn1dLFsicGF0aCIse2Q6Ik05IDIwaDYifV1dLGZwdD1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xOC42NTYgMTNoMi4zMzZhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTEyLjA3LTcuNTEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNS45NjEgNS45NTdhMTAuMjggMTAuMjggMCAwIDAtMy45MjIgNS43NjlBMSAxIDAgMCAwIDMgMTNoMTAifV1dLG1wdD1bWyJwYXRoIix7ZDoiTTEyIDEzdjdhMiAyIDAgMCAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMC45OTIgMTNhMSAxIDAgMCAwIC45Ny0xLjI3NCAxMC4yODQgMTAuMjg0IDAgMCAwLTE5LjkyMyAwQTEgMSAwIDAgMCAzIDEzeiJ9XV0sZ3B0PVtbInBhdGgiLHtkOiJNNiA0djZhNiA2IDAgMCAwIDEyIDBWNCJ9XSxbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiMjAiLHkyOiIyMCJ9XV0sYnB0PVtbInBhdGgiLHtkOiJNOSAxNCA0IDlsNS01In1dLFsicGF0aCIse2Q6Ik00IDloMTAuNWE1LjUgNS41IDAgMCAxIDUuNSA1LjVhNS41IDUuNSAwIDAgMS01LjUgNS41SDExIn1dXSx2cHQ9W1sicGF0aCIse2Q6Ik0yMSAxN2E5IDkgMCAwIDAtMTUtNi43TDMgMTMifV0sWyJwYXRoIix7ZDoiTTMgN3Y2aDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNyIscjoiMSJ9XV0seXB0PVtbInBhdGgiLHtkOiJNMyA3djZoNiJ9XSxbInBhdGgiLHtkOiJNMjEgMTdhOSA5IDAgMCAwLTktOSA5IDkgMCAwIDAtNiAyLjNMMyAxMyJ9XV0seHB0PVtbInBhdGgiLHtkOiJNMTYgMTJoNiJ9XSxbInBhdGgiLHtkOiJNOCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJtMTkgMTUgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJtNSA5LTMgMyAzIDMifV1dLHdwdD1bWyJwYXRoIix7ZDoiTTEyIDIydi02In1dLFsicGF0aCIse2Q6Ik0xMiA4VjIifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zIDMtMy0zIn1dLFsicGF0aCIse2Q6Im0xNSA1LTMtMy0zIDMifV1dLE1wdD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNiIseDoiNSIseToiNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNiIseDoiMTEiLHk6IjE0IixyeDoiMSJ9XV0sZHg9W1sicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTE4IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiA3YTEgMSAwIDAgMC0xLTFoLTJhMiAyIDAgMCAxLTEuMTQzLS4zNTlMMTMuMTQzIDIuMzZhMiAyIDAgMCAwLTIuMjg2LS4wMDFMNi4xNDMgNS42NEEyIDIgMCAwIDEgNSA2SDNhMSAxIDAgMCAwLTEgMXYxMmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxNmguMDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMiJ9XV0senB0PVtbInBhdGgiLHtkOiJtMTguODQgMTIuMjUgMS43Mi0xLjcxaC0uMDJhNS4wMDQgNS4wMDQgMCAwIDAtLjEyLTcuMDcgNS4wMDYgNS4wMDYgMCAwIDAtNi45NSAwbC0xLjcyIDEuNzEifV0sWyJwYXRoIix7ZDoibTUuMTcgMTEuNzUtMS43MSAxLjcxYTUuMDA0IDUuMDA0IDAgMCAwIC4xMiA3LjA3IDUuMDA2IDUuMDA2IDAgMCAwIDYuOTUgMGwxLjcxLTEuNzEifV0sWyJsaW5lIix7eDE6IjgiLHgyOiI4Iix5MToiMiIseTI6IjUifV0sWyJsaW5lIix7eDE6IjIiLHgyOiI1Iix5MToiOCIseTI6IjgifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMTYiLHkxOiIxOSIseTI6IjIyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTYiLHkyOiIxNiJ9XV0sa3B0PVtbInBhdGgiLHtkOiJNMTUgN2gyYTUgNSAwIDAgMSAwIDEwaC0ybS02IDBIN0E1IDUgMCAwIDEgNyA3aDIifV1dLFNwdD1bWyJwYXRoIix7ZDoibTE5IDUgMy0zIn1dLFsicGF0aCIse2Q6Im0yIDIyIDMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zIDIwLjNhMi40IDIuNCAwIDAgMCAzLjQgMEwxMiAxOGwtNi02LTIuMyAyLjNhMi40IDIuNCAwIDAgMCAwIDMuNFoifV0sWyJwYXRoIix7ZDoiTTcuNSAxMy41IDEwIDExIn1dLFsicGF0aCIse2Q6Ik0xMC41IDE2LjUgMTMgMTQifV0sWyJwYXRoIix7ZDoibTEyIDYgNiA2IDIuMy0yLjNhMi40IDIuNCAwIDAgMCAwLTMuNGwtMi42LTIuNmEyLjQgMi40IDAgMCAwLTMuNCAwWiJ9XV0sQ3B0PVtbInBhdGgiLHtkOiJNMTIgM3YxMiJ9XSxbInBhdGgiLHtkOiJtMTcgOC01LTUtNSA1In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00In1dXSxfcHQ9W1siY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMjAiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTQuNyAxOS4zIDE5IDUifV0sWyJwYXRoIix7ZDoibTIxIDMtMyAxIDIgMloifV0sWyJwYXRoIix7ZDoiTTkuMjYgNy42OCA1IDEybDIgNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgNSAyIDMuNS0zLjUifV0sWyJwYXRoIix7ZDoibTE4IDEyIDEtMSAxIDEtMSAxWiJ9XV0sVHB0PVtbInBhdGgiLHtkOiJtMTYgMTEgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XV0sTHB0PVtbInBhdGgiLHtkOiJNMTAgMTVINmE0IDQgMCAwIDAtNCA0djIifV0sWyJwYXRoIix7ZDoibTE0LjMwNSAxNi41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDEzLjg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxMi4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTcuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTIuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAxOC42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTMuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuMTQ4LjkyNC4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XV0sJHB0PVtbInBhdGgiLHtkOiJNMjAgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMjAgMTNoMiJ9XSxbInBhdGgiLHtkOiJNMyAyMXYtMmE0IDQgMCAwIDEgNC00aDZhNCA0IDAgMCAxIDIuMDcyLjU3OCJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxOSIscjoiMiJ9XV0sQXB0PVtbInBhdGgiLHtkOiJNMTkgMTZ2LTJhMiAyIDAgMCAwLTQgMHYyIn1dLFsicGF0aCIse2Q6Ik05LjUgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dLFsicmVjdCIse3g6IjEzIix5OiIxNiIsd2lkdGg6IjgiLGhlaWdodDoiNSIscng6Ii44OTkifV1dLERwdD1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTYiLHkxOiIxMSIseTI6IjExIn1dXSxFcHQ9W1sicGF0aCIse2Q6Ik0xMS41IDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXSxQcHQ9W1sicGF0aCIse2Q6Ik0xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dLFsibGluZSIse3gxOiIxOSIseDI6IjE5Iix5MToiOCIseTI6IjE0In1dLFsibGluZSIse3gxOiIyMiIseDI6IjE2Iix5MToiMTEiLHkyOiIxMSJ9XV0scHg9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dLGh4PVtbInBhdGgiLHtkOiJtMTQuMzA1IDE5LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDE1LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAyMC43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDIxLjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLElwdD1bWyJwYXRoIix7ZDoiTTE5IDExdjYifV0sWyJwYXRoIix7ZDoiTTE5IDEzaDIifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEyLjg2OC02LjM0OSJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxOSIscjoiMiJ9XV0sdXg9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIyIDE5aC02In1dXSxOcHQ9W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMC44MjEtNy40ODcifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV1dLGZ4PVtbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTMuMjkyLTYifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0yMiAxOWgtNiJ9XV0sRnB0PVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjQzNC03LjYyIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIyIDIyLTEuOS0xLjkifV1dLG14PVtbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTEuODczLTcifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Im0xNyAxNyA1IDUifV0sWyJwYXRoIix7ZDoibTIyIDE3LTUgNSJ9XV0sZ3g9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhOCA4IDAgMCAwLTE2IDAifV1dLE9wdD1bWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMC4zIDE1SDdhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxIDIxLTEuOS0xLjkifV1dLFJwdD1bWyJwYXRoIix7ZDoiTTE2LjA1MSAxMi42MTZhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJwYXRoIix7ZDoiTTggMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiI0In1dXSxCcHQ9W1sicGF0aCIse2Q6Ik0xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dLFsibGluZSIse3gxOiIxNyIseDI6IjIyIix5MToiOCIseTI6IjEzIn1dLFsibGluZSIse3gxOiIyMiIseDI6IjE3Iix5MToiOCIseTI6IjEzIn1dXSxIcHQ9W1sicGF0aCIse2Q6Ik0xOSAyMXYtMmE0IDQgMCAwIDAtNC00SDlhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNyIscjoiNCJ9XV0sYng9W1sicGF0aCIse2Q6Ik0xOCAyMWE4IDggMCAwIDAtMTYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTIyIDIwYzAtMy4zNy0yLTYuNS00LThhNSA1IDAgMCAwLS40NS04LjMifV1dLHFwdD1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJwYXRoIix7ZDoiTTE2IDMuMTI4YTQgNCAwIDAgMSAwIDcuNzQ0In1dLFsicGF0aCIse2Q6Ik0yMiAyMXYtMmE0IDQgMCAwIDAtMy0zLjg3In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXSx2eD1bWyJwYXRoIix7ZDoibTE2IDItMi4zIDIuM2EzIDMgMCAwIDAgMCA0LjJsMS44IDEuOGEzIDMgMCAwIDAgNC4yIDBMMjIgOCJ9XSxbInBhdGgiLHtkOiJNMTUgMTUgMy4zIDMuM2E0LjIgNC4yIDAgMCAwIDAgNmw3LjMgNy4zYy43LjcgMiAuNyAyLjggMEwxNSAxNVptMCAwIDcgNyJ9XSxbInBhdGgiLHtkOiJtMi4xIDIxLjggNi40LTYuMyJ9XSxbInBhdGgiLHtkOiJtMTkgNS03IDcifV1dLHl4PVtbInBhdGgiLHtkOiJNMyAydjdjMCAxLjEuOSAyIDIgMmg0YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNyAydjIwIn1dLFsicGF0aCIse2Q6Ik0yMSAxNVYyYTUgNSAwIDAgMC01IDV2NmMwIDEuMS45IDIgMiAyaDNabTAgMHY3In1dXSxWcHQ9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Ik0yIDVoMjAifV0sWyJwYXRoIix7ZDoiTTMgM3YyIn1dLFsicGF0aCIse2Q6Ik03IDN2MiJ9XSxbInBhdGgiLHtkOiJNMTcgM3YyIn1dLFsicGF0aCIse2Q6Ik0yMSAzdjIifV0sWyJwYXRoIix7ZDoibTE5IDUtNyA3LTctNyJ9XV0sanB0PVtbInBhdGgiLHtkOiJNMTMgNnY1YTEgMSAwIDAgMCAxIDFoNi4xMDJhMSAxIDAgMCAxIC43MTIuMjk4bC44OTguOTFhMSAxIDAgMCAxIC4yODguNzAyVjE3YTEgMSAwIDAgMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTUgMThIM2ExIDEgMCAwIDEtMS0xVjhhMiAyIDAgMCAxIDItMmgxMmMxLjEgMCAyLjEuOCAyLjQgMS44bDEuMTc2IDQuMiJ9XSxbInBhdGgiLHtkOiJNOSAxOGg1In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE4IixyOiIyIn1dXSxVcHQ9W1sicGF0aCIse2Q6Ik04IDIxcy00LTMtNC05IDQtOSA0LTkifV0sWyJwYXRoIix7ZDoiTTE2IDNzNCAzIDQgOS00IDktNCA5In1dLFsibGluZSIse3gxOiIxNSIseDI6IjkiLHkxOiI5Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjkiLHkyOiIxNSJ9XV0sV3B0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtNy45IDcuOSAyLjcgMi43In1dLFsiY2lyY2xlIix7Y3g6IjE2LjUiLGN5OiI3LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTEzLjQgMTAuNiAyLjctMi43In1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjE2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTcuOSAxNi4xIDIuNy0yLjcifV0sWyJjaXJjbGUiLHtjeDoiMTYuNSIsY3k6IjE2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoibTEzLjQgMTMuNCAyLjcgMi43In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLEdwdD1bWyJwYXRoIix7ZDoiTTE5LjUgN2EyNCAyNCAwIDAgMSAwIDEwIn1dLFsicGF0aCIse2Q6Ik00LjUgN2EyNCAyNCAwIDAgMCAwIDEwIn1dLFsicGF0aCIse2Q6Ik03IDE5LjVhMjQgMjQgMCAwIDAgMTAgMCJ9XSxbInBhdGgiLHtkOiJNNyA0LjVhMjQgMjQgMCAwIDEgMTAgMCJ9XSxbInJlY3QiLHt4OiIxNyIseToiMTciLHdpZHRoOiI1IixoZWlnaHQ6IjUiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjE3Iix5OiIyIix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIxNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV1dLFlwdD1bWyJwYXRoIix7ZDoiTTE2IDhxNiAwIDYtNi02IDAtNiA2In1dLFsicGF0aCIse2Q6Ik0xNy40MSAzLjU5YTEwIDEwIDAgMSAwIDMgMyJ9XSxbInBhdGgiLHtkOiJNMiAyYTI2LjYgMjYuNiAwIDAgMSAxMCAyMGMuOS02LjgyIDEuNS05LjUgNC0xNCJ9XV0sWnB0PVtbInBhdGgiLHtkOiJNMTggMTFjLTEuNSAwLTIuNS41LTMgMiJ9XSxbInBhdGgiLHtkOiJNNCA2YTIgMiAwIDAgMC0yIDJ2NGE1IDUgMCAwIDAgNSA1IDggOCAwIDAgMSA1IDIgOCA4IDAgMCAxIDUtMiA1IDUgMCAwIDAgNS01VjhhMiAyIDAgMCAwLTItMmgtM2E4IDggMCAwIDAtNSAyIDggOCAwIDAgMC01LTJ6In1dLFsicGF0aCIse2Q6Ik02IDExYzEuNSAwIDIuNS41IDMgMiJ9XV0sWHB0PVtbInBhdGgiLHtkOiJNMTAgMjBoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMTcgMmg0djQifV0sWyJwYXRoIix7ZDoibTIxIDItNS40NiA1LjQ2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjUifV1dLEtwdD1bWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTkgMTloNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjkiLHI6IjYifV1dLFFwdD1bWyJwYXRoIix7ZDoibTIgOCAyIDItMiAyIDIgMi0yIDIifV0sWyJwYXRoIix7ZDoibTIyIDgtMiAyIDIgMi0yIDIgMiAyIn1dLFsicGF0aCIse2Q6Ik04IDh2MTBjMCAuNTUuNDUgMSAxIDFoNmMuNTUgMCAxLS40NSAxLTF2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDEwLjM0VjZjMC0uNTUtLjQ1LTEtMS0xaC00LjM0In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dLEpwdD1bWyJwYXRoIix7ZDoibTIgOCAyIDItMiAyIDIgMi0yIDIifV0sWyJwYXRoIix7ZDoibTIyIDgtMiAyIDIgMi0yIDIgMiAyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI1IixyeDoiMSJ9XV0sZWh0PVtbInBhdGgiLHtkOiJNMTAuNjYgNkgxNGEyIDIgMCAwIDEgMiAydjIuNWw1LjI0OC0zLjA2MkEuNS41IDAgMCAxIDIyIDcuODd2OC4xOTYifV0sWyJwYXRoIix7ZDoiTTE2IDE2YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLHRodD1bWyJwYXRoIix7ZDoibTE2IDEzIDUuMjIzIDMuNDgyYS41LjUgMCAwIDAgLjc3Ny0uNDE2VjcuODdhLjUuNSAwIDAgMC0uNzUyLS40MzJMMTYgMTAuNSJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTQiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSxhaHQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgOGgyMCJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTQiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE0IixyOiIyIn1dXSxpaHQ9W1sicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik0yMSA3VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0xOC45NDQgMTIuMzNhMSAxIDAgMCAwIDAtLjY2IDcuNSA3LjUgMCAwIDAtMTMuODg4IDAgMSAxIDAgMCAwIDAgLjY2IDcuNSA3LjUgMCAwIDAgMTMuODg4IDAifV1dLHJodD1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjEyIixyOiI0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTIiLHI6IjQifV0sWyJsaW5lIix7eDE6IjYiLHgyOiIxOCIseTE6IjE2Iix5MjoiMTYifV1dLHNodD1bWyJwYXRoIix7ZDoiTTExLjEgNy4xYTE2LjU1IDE2LjU1IDAgMCAxIDEwLjkgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTJhMTIuNiAxMi42IDAgMCAxLTguNyA1In1dLFsicGF0aCIse2Q6Ik0xNi44IDEzLjZhMTYuNTUgMTYuNTUgMCAwIDEtOSA3LjUifV0sWyJwYXRoIix7ZDoiTTIwLjcgMTdhMTIuOCAxMi44IDAgMCAwLTguNy01IDEzLjMgMTMuMyAwIDAgMSAwLTEwIn1dLFsicGF0aCIse2Q6Ik02LjMgMy44YTE2LjU1IDE2LjU1IDAgMCAwIDEuOSAxMS41In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxuaHQ9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbInBhdGgiLHtkOiJNMTYgOWE1IDUgMCAwIDEgMCA2In1dXSxvaHQ9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbInBhdGgiLHtkOiJNMTYgOWE1IDUgMCAwIDEgMCA2In1dLFsicGF0aCIse2Q6Ik0xOS4zNjQgMTguMzY0YTkgOSAwIDAgMCAwLTEyLjcyOCJ9XV0sbGh0PVtbInBhdGgiLHtkOiJNMTYgOWE1IDUgMCAwIDEgLjk1IDIuMjkzIn1dLFsicGF0aCIse2Q6Ik0xOS4zNjQgNS42MzZhOSA5IDAgMCAxIDEuODg5IDkuOTYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJtNyA3LS41ODcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4VjExIn1dLFsicGF0aCIse2Q6Ik05LjgyOCA0LjE3MkEuNjg2LjY4NiAwIDAgMSAxMSA0LjY1N3YuNjg2In1dXSxjaHQ9W1sicGF0aCIse2Q6Ik0xMSA0LjcwMmEuNzA1LjcwNSAwIDAgMC0xLjIwMy0uNDk4TDYuNDEzIDcuNTg3QTEuNCAxLjQgMCAwIDEgNS40MTYgOEgzYTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDAgMSAxaDIuNDE2YTEuNCAxLjQgMCAwIDEgLjk5Ny40MTNsMy4zODMgMy4zODRBLjcwNS43MDUgMCAwIDAgMTEgMTkuMjk4eiJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjkiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMiIseTE6IjkiLHkyOiIxNSJ9XV0sZGh0PVtbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik01IDdjMC0xLjEuOS0yIDItMmgxMGEyIDIgMCAwIDEgMiAydjEySDVWN1oifV0sWyJwYXRoIix7ZDoiTTIyIDE5SDIifV1dLHBodD1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dXSxoaHQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTMgMTFoM2MuOCAwIDEuNi4zIDIuMS45bDEuMS45YzEuNiAxLjYgNC4xIDEuNiA1LjcgMGwxLjEtLjljLjUtLjUgMS4zLS45IDIuMS0uOUgyMSJ9XV0seHg9W1sicGF0aCIse2Q6Ik0xNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTcgN2gxMmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNCJ9XV0sdWh0PVtbInBhdGgiLHtkOiJNMTkgN1Y0YTEgMSAwIDAgMC0xLTFINWEyIDIgMCAwIDAgMCA0aDE1YTEgMSAwIDAgMSAxIDF2NGgtM2EyIDIgMCAwIDAgMCA0aDNhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhMiAyIDAgMCAwIDIgMmgxNWExIDEgMCAwIDAgMS0xdi00In1dXSxmaHQ9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJwYXRoIix7ZDoibTkgMTcgNi4xLTYuMWEyIDIgMCAwIDEgMi44MS4wMUwyMiAxNSJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiOSIscjoiMiJ9XSxbInJlY3QiLHt4OiIyIix5OiIzIix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSx3eD1bWyJwYXRoIix7ZDoibTIxLjY0IDMuNjQtMS4yOC0xLjI4YTEuMjEgMS4yMSAwIDAgMC0xLjcyIDBMMi4zNiAxOC42NGExLjIxIDEuMjEgMCAwIDAgMCAxLjcybDEuMjggMS4yOGExLjIgMS4yIDAgMCAwIDEuNzIgMEwyMS42NCA1LjM2YTEuMiAxLjIgMCAwIDAgMC0xLjcyIn1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJNNSA2djQifV0sWyJwYXRoIix7ZDoiTTE5IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNyA4SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE2aC00In1dLFsicGF0aCIse2Q6Ik0xMSAzSDkifV1dLG1odD1bWyJwYXRoIix7ZDoiTTE1IDRWMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTZ2LTIifV0sWyJwYXRoIix7ZDoiTTggOWgyIn1dLFsicGF0aCIse2Q6Ik0yMCA5aDIifV0sWyJwYXRoIix7ZDoiTTE3LjggMTEuOCAxOSAxMyJ9XSxbInBhdGgiLHtkOiJNMTUgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE3LjggNi4yIDE5IDUifV0sWyJwYXRoIix7ZDoibTMgMjEgOS05In1dLFsicGF0aCIse2Q6Ik0xMi4yIDYuMiAxMSA1In1dXSxnaHQ9W1sicGF0aCIse2Q6Ik0xOCAyMVYxMGExIDEgMCAwIDAtMS0xSDdhMSAxIDAgMCAwLTEgMXYxMSJ9XSxbInBhdGgiLHtkOiJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMS4xMzItMS44MDNsNy45NS0zLjk3NGEyIDIgMCAwIDEgMS44MzcgMGw3Ljk0OCAzLjk3NEEyIDIgMCAwIDEgMjIgOHoifV0sWyJwYXRoIix7ZDoiTTYgMTNoMTIifV0sWyJwYXRoIix7ZDoiTTYgMTdoMTIifV1dLGJodD1bWyJwYXRoIix7ZDoiTTMgNmgzIn1dLFsicGF0aCIse2Q6Ik0xNyA2aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMjAiLHg6IjMiLHk6IjIiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4YTIuNSAyLjUgMCAwIDAgMC01IDIuNSAyLjUgMCAwIDEgMC01In1dXSx2aHQ9W1sicGF0aCIse2Q6Ik0xMiAxMHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoibTE2LjEzIDcuNjYtLjgxLTQuMDVhMiAyIDAgMCAwLTItMS42MWgtMi42OGEyIDIgMCAwIDAtMiAxLjYxbC0uNzggNC4wNSJ9XSxbInBhdGgiLHtkOiJtNy44OCAxNi4zNi44IDRhMiAyIDAgMCAwIDIgMS42MWgyLjcyYTIgMiAwIDAgMCAyLTEuNjFsLjgxLTQuMDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNiJ9XV0seWh0PVtbInBhdGgiLHtkOiJNMTIgMTBMMTIgMiJ9XSxbInBhdGgiLHtkOiJNMTYgNkwxMiAxMEw4IDYifV0sWyJwYXRoIix7ZDoiTTIgMTVDMi42IDE1LjUgMy4yIDE2IDQuNSAxNkM3IDE2IDcgMTQgOS41IDE0QzEyLjEgMTQgMTEuOSAxNiAxNC41IDE2QzE3IDE2IDE3IDE0IDE5LjUgMTRDMjAuOCAxNCAyMS40IDE0LjUgMjIgMTUifV0sWyJwYXRoIix7ZDoiTTIgMjFDMi42IDIxLjUgMy4yIDIyIDQuNSAyMkM3IDIyIDcgMjAgOS41IDIwQzEyLjEgMjAgMTEuOSAyMiAxNC41IDIyQzE3IDIyIDE3IDIwIDE5LjUgMjBDMjAuOCAyMCAyMS40IDIwLjUgMjIgMjEifV1dLHhodD1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMiAxNWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDIxYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dXSx3aHQ9W1sicGF0aCIse2Q6Ik0xOSA1YTIgMiAwIDAgMC0yIDJ2MTEifV0sWyJwYXRoIix7ZDoiTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNNyAxM2gxMCJ9XSxbInBhdGgiLHtkOiJNNyA5aDEwIn1dLFsicGF0aCIse2Q6Ik05IDVhMiAyIDAgMCAwLTIgMnYxMSJ9XV0sTWh0PVtbInBhdGgiLHtkOiJNMiA2Yy42LjUgMS4yIDEgMi41IDFDNyA3IDcgNSA5LjUgNWMyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik0yIDEyYy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMThjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XV0semh0PVtbInBhdGgiLHtkOiJtMTAuNTg2IDUuNDE0LTUuMTcyIDUuMTcyIn1dLFsicGF0aCIse2Q6Im0xOC41ODYgMTMuNDE0LTUuMTcyIDUuMTcyIn1dLFsicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTIiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjEyIixyOiIyIn1dXSxraHQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNyAyMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTQifV1dLFNodD1bWyJwYXRoIix7ZDoiTTE3IDE3aC01Yy0xLjA5LS4wMi0xLjk0LjkyLTIuNSAxLjlBMyAzIDAgMSAxIDIuNTcgMTUifV0sWyJwYXRoIix7ZDoiTTkgMy40YTQgNCAwIDAgMSA2LjUyLjY2In1dLFsicGF0aCIse2Q6Im02IDE3IDMuMS01LjhhMi41IDIuNSAwIDAgMCAuMDU3LTIuMDUifV0sWyJwYXRoIix7ZDoiTTIwLjMgMjAuM2E0IDQgMCAwIDEtMi4zLjcifV0sWyJwYXRoIix7ZDoiTTE4LjYgMTNhNCA0IDAgMCAxIDMuMzU3IDMuNDE0In1dLFsicGF0aCIse2Q6Im0xMiA2IC42IDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sQ2h0PVtbInBhdGgiLHtkOiJNMTggMTYuOThoLTUuOTljLTEuMSAwLTEuOTUuOTQtMi40OCAxLjlBNCA0IDAgMCAxIDIgMTdjLjAxLS43LjItMS40LjU3LTIifV0sWyJwYXRoIix7ZDoibTYgMTcgMy4xMy01Ljc4Yy41My0uOTcuMS0yLjE4LS41LTMuMWE0IDQgMCAxIDEgNi44OS00LjA2In1dLFsicGF0aCIse2Q6Im0xMiA2IDMuMTMgNS43M0MxNS42NiAxMi43IDE2LjkgMTMgMTggMTNhNCA0IDAgMCAxIDAgOCJ9XV0sX2h0PVtbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA2IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDh6In1dLFsicGF0aCIse2Q6Ik03Ljk5OSAxNWEyLjUgMi41IDAgMCAxIDQgMCAyLjUgMi41IDAgMCAwIDQgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjMifV1dLFRodD1bWyJwYXRoIix7ZDoibTIgMjIgMTAtMTAifV0sWyJwYXRoIix7ZDoibTE2IDgtMS4xNyAxLjE3In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoibTggOC0uNTMuNTNhMy41IDMuNSAwIDAgMCAwIDQuOTRMOSAxNWwxLjUzLTEuNTNjLjU1LS41NS44OC0xLjI1Ljk4LTEuOTcifV0sWyJwYXRoIix7ZDoiTTEwLjkxIDUuMjZjLjE1LS4yNi4zNC0uNTEuNTYtLjczTDEzIDNsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgLjI4IDQuNjIifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoibTE2IDE2LS41My41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw5IDE1bDEuNTMtMS41M2EzLjQ5IDMuNDkgMCAwIDEgMS45Ny0uOTgifV0sWyJwYXRoIix7ZDoiTTE4Ljc0IDEzLjA5Yy4yNi0uMTUuNTEtLjM0LjczLS41NkwyMSAxMWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDAtNC42Mi0uMjgifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sTGh0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYuNSA4YTIgMiAwIDAgMC0xLjkwNSAxLjQ2TDIuMSAxOC41QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjkyNS0yLjU0TDE5LjQgOS41QTIgMiAwIDAgMCAxNy40OCA4WiJ9XV0sJGh0PVtbInBhdGgiLHtkOiJNMiAyMiAxNiA4In1dLFsicGF0aCIse2Q6Ik0zLjQ3IDEyLjUzIDUgMTFsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDUgMTlsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTcuNDcgOC41MyA5IDdsMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEgMCA0Ljk0TDkgMTVsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTExLjQ3IDQuNTMgMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMMTMgMTFsLTEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDAtNC45NFoifV0sWyJwYXRoIix7ZDoiTTIwIDJoMnYyYTQgNCAwIDAgMS00IDRoLTJWNmE0IDQgMCAwIDEgNC00WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgMTcuNDcgMTMgMTlsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw1IDE5bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoiTTE1LjQ3IDEzLjQ3IDE3IDE1bC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMOSAxNWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dLFsicGF0aCIse2Q6Ik0xOS40NyA5LjQ3IDIxIDExbC0xLjUzIDEuNTNhMy41IDMuNSAwIDAgMS00Ljk0IDBMMTMgMTFsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XV0sQWh0PVtbImNpcmNsZSIse2N4OiI3IixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEwIDl2NiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNCA3djgifV0sWyJwYXRoIix7ZDoiTTIyIDE3djFjMCAuNS0uNSAxLTEgMUgzYy0uNSAwLTEtLjUtMS0xdi0xIn1dXSxEaHQ9W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiA3LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNNSAxMS44NThhMTAgMTAgMCAwIDEgMTEuNS0xLjc4NSJ9XSxbInBhdGgiLHtkOiJNOC41IDE1LjQyOWE1IDUgMCAwIDEgMi40MTMtMS4zMSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dXSxFaHQ9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV0sUGh0PVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV1dLElodD1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIn1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSA1LjE3LTIuNjkifV0sWyJwYXRoIix7ZDoiTTE5IDEyLjg1OWExMCAxMCAwIDAgMC0yLjAwNy0xLjUyMyJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDQuMTc3LTIuNjQzIn1dLFsicGF0aCIse2Q6Ik0yMiA4LjgyYTE1IDE1IDAgMCAwLTExLjI4OC0zLjc2NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxOaHQ9W1sicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxMC41LTIuMjIyIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSAzLTEuNDA2In1dXSxGaHQ9W1sicGF0aCIse2Q6Ik0xMS45NjUgMTAuMTA1djRMMTMuNSAxMi41YTUgNSAwIDAgMSA4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMTEuOTY1IDE0LjEwNWg0In1dLFsicGF0aCIse2Q6Ik0xNy45NjUgMTguMTA1aDRMMjAuNDMgMTkuNzFhNSA1IDAgMCAxLTgtMS41In1dLFsicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJNMjEuOTY1IDIyLjEwNXYtNCJ9XSxbInBhdGgiLHtkOiJNNSAxMi44NmExMCAxMCAwIDAgMSAzLTIuMDMyIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5aC4wMSJ9XV0sT2h0PVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dXSxSaHQ9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik01IDEyLjg1OWExMCAxMCAwIDAgMSAxNCAwIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV1dLEJodD1bWyJwYXRoIix7ZDoiTTEwIDJ2OCJ9XSxbInBhdGgiLHtkOiJNMTIuOCAyMS42QTIgMiAwIDEgMCAxNCAxOEgyIn1dLFsicGF0aCIse2Q6Ik0xNy41IDEwYTIuNSAyLjUgMCAxIDEgMiA0SDIifV0sWyJwYXRoIix7ZDoibTYgNiA0IDQgNC00In1dXSxIaHQ9W1sicGF0aCIse2Q6Ik0xMi44IDE5LjZBMiAyIDAgMSAwIDE0IDE2SDIifV0sWyJwYXRoIix7ZDoiTTE3LjUgOGEyLjUgMi41IDAgMSAxIDIgNEgyIn1dLFsicGF0aCIse2Q6Ik05LjggNC40QTIgMiAwIDEgMSAxMSA4SDIifV1dLHFodD1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTV2NyJ9XSxbInBhdGgiLHtkOiJNMTIgMTVhNSA1IDAgMCAwIDUtNWMwLTItLjUtNC0yLThIOWMtMS41IDQtMiA2LTIgOGE1IDUgMCAwIDAgNSA1WiJ9XV0sVmh0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMXY0YTIgMiAwIDAgMCAyIDJoNCJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI4Iix4OiIxMyIseToiMTMiLHJ4OiIyIn1dXSxqaHQ9W1sicGF0aCIse2Q6Ik04IDIyaDgifV0sWyJwYXRoIix7ZDoiTTcgMTBoM203IDBoLTEuMzQzIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY3In1dLFsicGF0aCIse2Q6Ik03LjMwNyA3LjMwN0ExMi4zMyAxMi4zMyAwIDAgMCA3IDEwYTUgNSAwIDAgMCA3LjM5MSA0LjM5MU04LjYzOCAyLjk4MUM4Ljc1IDIuNjY4IDguODcyIDIuMzQgOSAyaDZjMS41IDQgMiA2IDIgOCAwIC40MDctLjA1LjgwOS0uMTQ1IDEuMTk4In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dLFVodD1bWyJwYXRoIix7ZDoibTE5IDEyLTEuNSAzIn1dLFsicGF0aCIse2Q6Ik0xOS42MyAxOC44MSAyMiAyMCJ9XSxbInBhdGgiLHtkOiJNNi40NyA4LjIzYTEuNjggMS42OCAwIDAgMSAyLjQ0IDEuOTNsLS42NCAyLjA4YTYuNzYgNi43NiAwIDAgMCAxMC4xNiA3LjY3bC40Mi0uMjdhMSAxIDAgMSAwLTIuNzMtNC4yMWwtLjQyLjI3YTEuNzYgMS43NiAwIDAgMS0yLjYzLTEuOTlsLjY0LTIuMDhBNi42NiA2LjY2IDAgMCAwIDMuOTQgMy45bC0uNy40YTEgMSAwIDEgMCAyLjU1IDQuMzR6In1dXSxXaHQ9W1sicGF0aCIse2Q6Ik0xOCA2IDYgMTgifV0sWyJwYXRoIix7ZDoibTYgNiAxMiAxMiJ9XV0sR2h0PVtbInBhdGgiLHtkOiJNMi41IDE3YTI0LjEyIDI0LjEyIDAgMCAxIDAtMTAgMiAyIDAgMCAxIDEuNC0xLjQgNDkuNTYgNDkuNTYgMCAwIDEgMTYuMiAwQTIgMiAwIDAgMSAyMS41IDdhMjQuMTIgMjQuMTIgMCAwIDEgMCAxMCAyIDIgMCAwIDEtMS40IDEuNCA0OS41NSA0OS41NSAwIDAgMS0xNi4yIDBBMiAyIDAgMCAxIDIuNSAxNyJ9XSxbInBhdGgiLHtkOiJtMTAgMTUgNS0zLTUtM3oifV1dLFlodD1bWyJwYXRoIix7ZDoiTTE0LjcgNi4zYTEgMSAwIDAgMCAwIDEuNGwxLjYgMS42YTEgMSAwIDAgMCAxLjQgMGwzLjEwNi0zLjEwNWMuMzItLjMyMi44NjMtLjIyLjk4My4yMThhNiA2IDAgMCAxLTguMjU5IDcuMDU3bC03LjkxIDcuOTFhMSAxIDAgMCAxLTIuOTk5LTNsNy45MS03LjkxYTYgNiAwIDAgMSA3LjA1Ny04LjI1OWMuNDM4LjEyLjU0LjY2Mi4yMTkuOTg0eiJ9XV0sWmh0PVtbInBhdGgiLHtkOiJNMTAuNTEzIDQuODU2IDEzLjEyIDIuMTdhLjUuNSAwIDAgMSAuODYuNDZsLTEuMzc3IDQuMzE3In1dLFsicGF0aCIse2Q6Ik0xNS42NTYgMTBIMjBhMSAxIDAgMCAxIC43OCAxLjYzbC0xLjcyIDEuNzczIn1dLFsicGF0aCIse2Q6Ik0xNi4yNzMgMTYuMjczIDEwLjg4IDIxLjgzYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0SDRhMSAxIDAgMCAxLS43OC0xLjYzbDQuNTA3LTQuNjQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLFhodD1bWyJwYXRoIix7ZDoiTTQgMTRhMSAxIDAgMCAxLS43OC0xLjYzbDkuOS0xMC4yYS41LjUgMCAwIDEgLjg2LjQ2bC0xLjkyIDYuMDJBMSAxIDAgMCAwIDEzIDEwaDdhMSAxIDAgMCAxIC43OCAxLjYzbC05LjkgMTAuMmEuNS41IDAgMCAxLS44Ni0uNDZsMS45Mi02LjAyQTEgMSAwIDAgMCAxMSAxNHoifV1dLEtodD1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxNi42NSIseTE6IjIxIix5MjoiMTYuNjUifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNCIseTE6IjExIix5MjoiMTEifV1dLFFodD1bWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiIxNi42NSIseTE6IjIxIix5MjoiMTYuNjUifV0sWyJsaW5lIix7eDE6IjExIix4MjoiMTEiLHkxOiI4Iix5MjoiMTQifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNCIseTE6IjExIix5MjoiMTEifV1dLCRqdD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxBQXJyb3dEb3duOmdaZSxBQXJyb3dVcDpiWmUsQUxhcmdlU21hbGw6dlplLEFjY2Vzc2liaWxpdHk6eVplLEFjdGl2aXR5OndaZSxBY3Rpdml0eVNxdWFyZTpheSxBaXJWZW50OnhaZSxBaXJwbGF5Ok1aZSxBbGFybUNoZWNrOm1nLEFsYXJtQ2xvY2s6a1plLEFsYXJtQ2xvY2tDaGVjazptZyxBbGFybUNsb2NrTWludXM6Z2csQWxhcm1DbG9ja09mZjp6WmUsQWxhcm1DbG9ja1BsdXM6YmcsQWxhcm1NaW51czpnZyxBbGFybVBsdXM6YmcsQWxhcm1TbW9rZTpTWmUsQWxidW06Q1plLEFsZXJ0Q2lyY2xlOldnLEFsZXJ0T2N0YWdvbjokdixBbGVydFRyaWFuZ2xlOmx4LEFsaWduQ2VudGVyOmV4LEFsaWduQ2VudGVySG9yaXpvbnRhbDpfWmUsQWxpZ25DZW50ZXJWZXJ0aWNhbDpUWmUsQWxpZ25FbmRIb3Jpem9udGFsOkxaZSxBbGlnbkVuZFZlcnRpY2FsOiRaZSxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlQ2VudGVyOkFaZSxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlRW5kOkRaZSxBbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQ6RVplLEFsaWduSG9yaXpvbnRhbEp1c3RpZnlDZW50ZXI6UFplLEFsaWduSG9yaXpvbnRhbEp1c3RpZnlFbmQ6SVplLEFsaWduSG9yaXpvbnRhbEp1c3RpZnlTdGFydDpOWmUsQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQ6RlplLEFsaWduSG9yaXpvbnRhbFNwYWNlQmV0d2VlbjpPWmUsQWxpZ25KdXN0aWZ5OmF4LEFsaWduTGVmdDp6bCxBbGlnblJpZ2h0OnR4LEFsaWduU3RhcnRIb3Jpem9udGFsOlJaZSxBbGlnblN0YXJ0VmVydGljYWw6QlplLEFsaWduVmVydGljYWxEaXN0cmlidXRlQ2VudGVyOkhaZSxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZDpxWmUsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVTdGFydDpWWmUsQWxpZ25WZXJ0aWNhbEp1c3RpZnlDZW50ZXI6alplLEFsaWduVmVydGljYWxKdXN0aWZ5RW5kOlVaZSxBbGlnblZlcnRpY2FsSnVzdGlmeVN0YXJ0OldaZSxBbGlnblZlcnRpY2FsU3BhY2VBcm91bmQ6R1plLEFsaWduVmVydGljYWxTcGFjZUJldHdlZW46WVplLEFtYnVsYW5jZTpaWmUsQW1wZXJzYW5kOlhaZSxBbXBlcnNhbmRzOktaZSxBbXBob3JhOlFaZSxBbmNob3I6SlplLEFuZ3J5OmVYZSxBbm5veWVkOnRYZSxBbnRlbm5hOmFYZSxBbnZpbDppWGUsQXBlcnR1cmU6clhlLEFwcFdpbmRvdzpuWGUsQXBwV2luZG93TWFjOnNYZSxBcHBsZTpvWGUsQXJjaGl2ZTpkWGUsQXJjaGl2ZVJlc3RvcmU6bFhlLEFyY2hpdmVYOmNYZSxBcmVhQ2hhcnQ6RGcsQXJtY2hhaXI6cFhlLEFycm93QmlnRG93bjp1WGUsQXJyb3dCaWdEb3duRGFzaDpoWGUsQXJyb3dCaWdMZWZ0Om1YZSxBcnJvd0JpZ0xlZnREYXNoOmZYZSxBcnJvd0JpZ1JpZ2h0OmJYZSxBcnJvd0JpZ1JpZ2h0RGFzaDpnWGUsQXJyb3dCaWdVcDp5WGUsQXJyb3dCaWdVcERhc2g6dlhlLEFycm93RG93bjpMWGUsQXJyb3dEb3duMDE6eFhlLEFycm93RG93bjEwOndYZSxBcnJvd0Rvd25BWjp2ZyxBcnJvd0Rvd25Bejp2ZyxBcnJvd0Rvd25DaXJjbGU6R2csQXJyb3dEb3duRnJvbUxpbmU6TVhlLEFycm93RG93bkxlZnQ6elhlLEFycm93RG93bkxlZnRGcm9tQ2lyY2xlOlpnLEFycm93RG93bkxlZnRGcm9tU3F1YXJlOm55LEFycm93RG93bkxlZnRTcXVhcmU6dHksQXJyb3dEb3duTmFycm93V2lkZTprWGUsQXJyb3dEb3duUmlnaHQ6U1hlLEFycm93RG93blJpZ2h0RnJvbUNpcmNsZTpYZyxBcnJvd0Rvd25SaWdodEZyb21TcXVhcmU6bHksQXJyb3dEb3duUmlnaHRTcXVhcmU6aXksQXJyb3dEb3duU3F1YXJlOnJ5LEFycm93RG93blRvRG90OkNYZSxBcnJvd0Rvd25Ub0xpbmU6X1hlLEFycm93RG93blVwOlRYZSxBcnJvd0Rvd25XaWRlTmFycm93OnlnLEFycm93RG93blpBOnhnLEFycm93RG93blphOnhnLEFycm93TGVmdDpFWGUsQXJyb3dMZWZ0Q2lyY2xlOllnLEFycm93TGVmdEZyb21MaW5lOiRYZSxBcnJvd0xlZnRSaWdodDpBWGUsQXJyb3dMZWZ0U3F1YXJlOnN5LEFycm93TGVmdFRvTGluZTpEWGUsQXJyb3dSaWdodDpGWGUsQXJyb3dSaWdodENpcmNsZTpKZyxBcnJvd1JpZ2h0RnJvbUxpbmU6UFhlLEFycm93UmlnaHRMZWZ0OklYZSxBcnJvd1JpZ2h0U3F1YXJlOmR5LEFycm93UmlnaHRUb0xpbmU6TlhlLEFycm93VXA6R1hlLEFycm93VXAwMTpPWGUsQXJyb3dVcDEwOlJYZSxBcnJvd1VwQVo6d2csQXJyb3dVcEF6OndnLEFycm93VXBDaXJjbGU6ZWIsQXJyb3dVcERvd246QlhlLEFycm93VXBGcm9tRG90OkhYZSxBcnJvd1VwRnJvbUxpbmU6cVhlLEFycm93VXBMZWZ0OlZYZSxBcnJvd1VwTGVmdEZyb21DaXJjbGU6S2csQXJyb3dVcExlZnRGcm9tU3F1YXJlOm95LEFycm93VXBMZWZ0U3F1YXJlOnB5LEFycm93VXBOYXJyb3dXaWRlOk1nLEFycm93VXBSaWdodDpqWGUsQXJyb3dVcFJpZ2h0RnJvbUNpcmNsZTpRZyxBcnJvd1VwUmlnaHRGcm9tU3F1YXJlOmN5LEFycm93VXBSaWdodFNxdWFyZTpoeSxBcnJvd1VwU3F1YXJlOnV5LEFycm93VXBUb0xpbmU6VVhlLEFycm93VXBXaWRlTmFycm93OldYZSxBcnJvd1VwWkE6emcsQXJyb3dVcFphOnpnLEFycm93c1VwRnJvbUxpbmU6WVhlLEFzdGVyaXNrOlpYZSxBc3Rlcmlza1NxdWFyZTpmeSxBdFNpZ246WFhlLEF0b206S1hlLEF1ZGlvTGluZXM6UVhlLEF1ZGlvV2F2ZWZvcm06SlhlLEF3YXJkOmVLZSxBeGU6dEtlLEF4aXMzRDprZyxBeGlzM2Q6a2csQmFieTppS2UsQmFja3BhY2s6YUtlLEJhZGdlOnlLZSxCYWRnZUFsZXJ0OnJLZSxCYWRnZUNlbnQ6c0tlLEJhZGdlQ2hlY2s6U2csQmFkZ2VEb2xsYXJTaWduOm9LZSxCYWRnZUV1cm86bEtlLEJhZGdlSGVscDpDZyxCYWRnZUluZGlhblJ1cGVlOm5LZSxCYWRnZUluZm86Y0tlLEJhZGdlSmFwYW5lc2VZZW46ZEtlLEJhZGdlTWludXM6cEtlLEJhZGdlUGVyY2VudDpoS2UsQmFkZ2VQbHVzOnVLZSxCYWRnZVBvdW5kU3Rlcmxpbmc6ZktlLEJhZGdlUXVlc3Rpb25NYXJrOkNnLEJhZGdlUnVzc2lhblJ1YmxlOm1LZSxCYWRnZVN3aXNzRnJhbmM6Z0tlLEJhZGdlVHVya2lzaExpcmE6YktlLEJhZGdlWDp2S2UsQmFnZ2FnZUNsYWltOnhLZSxCYWxsb29uOndLZSxCYW46TUtlLEJhbmFuYTp6S2UsQmFuZGFnZTprS2UsQmFua25vdGU6VEtlLEJhbmtub3RlQXJyb3dEb3duOlNLZSxCYW5rbm90ZUFycm93VXA6Q0tlLEJhbmtub3RlWDpfS2UsQmFyQ2hhcnQ6QmcsQmFyQ2hhcnQyOkhnLEJhckNoYXJ0MzpPZyxCYXJDaGFydDQ6RmcsQmFyQ2hhcnRCaWc6SWcsQmFyQ2hhcnRIb3Jpem9udGFsOk5nLEJhckNoYXJ0SG9yaXpvbnRhbEJpZzpFZyxCYXJjb2RlOkxLZSxCYXJyZWw6JEtlLEJhc2VsaW5lOkFLZSxCYXRoOkRLZSxCYXR0ZXJ5OlJLZSxCYXR0ZXJ5Q2hhcmdpbmc6RUtlLEJhdHRlcnlGdWxsOlBLZSxCYXR0ZXJ5TG93OklLZSxCYXR0ZXJ5TWVkaXVtOk5LZSxCYXR0ZXJ5UGx1czpGS2UsQmF0dGVyeVdhcm5pbmc6T0tlLEJlYWtlcjpCS2UsQmVhbjpxS2UsQmVhbk9mZjpIS2UsQmVkOlVLZSxCZWREb3VibGU6VktlLEJlZFNpbmdsZTpqS2UsQmVlZjpXS2UsQmVlcjpZS2UsQmVlck9mZjpHS2UsQmVsbDp0UWUsQmVsbERvdDpaS2UsQmVsbEVsZWN0cmljOlhLZSxCZWxsTWludXM6S0tlLEJlbGxPZmY6UUtlLEJlbGxQbHVzOkpLZSxCZWxsUmluZzplUWUsQmV0d2Vlbkhvcml6b25hbEVuZDpfZyxCZXR3ZWVuSG9yaXpvbmFsU3RhcnQ6VGcsQmV0d2Vlbkhvcml6b250YWxFbmQ6X2csQmV0d2Vlbkhvcml6b250YWxTdGFydDpUZyxCZXR3ZWVuVmVydGljYWxFbmQ6YVFlLEJldHdlZW5WZXJ0aWNhbFN0YXJ0OmlRZSxCaWNlcHNGbGV4ZWQ6clFlLEJpa2U6c1FlLEJpbmFyeTpuUWUsQmlub2N1bGFyczpvUWUsQmlvaGF6YXJkOmxRZSxCaXJkOmNRZSxCaXJkaG91c2U6ZFFlLEJpdGNvaW46cFFlLEJsZW5kOmhRZSxCbGluZHM6dVFlLEJsb2NrczptUWUsQmx1ZXRvb3RoOnlRZSxCbHVldG9vdGhDb25uZWN0ZWQ6ZlFlLEJsdWV0b290aE9mZjpnUWUsQmx1ZXRvb3RoU2VhcmNoaW5nOmJRZSxCb2xkOnZRZSxCb2x0OndRZSxCb21iOnhRZSxCb25lOk1RZSxCb29rOkdRZSxCb29rQTp6UWUsQm9va0FsZXJ0OmtRZSxCb29rQXVkaW86Q1FlLEJvb2tDaGVjazpTUWUsQm9va0NvcHk6X1FlLEJvb2tEYXNoZWQ6TGcsQm9va0Rvd246VFFlLEJvb2tIZWFkcGhvbmVzOkxRZSxCb29rSGVhcnQ6JFFlLEJvb2tJbWFnZTpBUWUsQm9va0tleTpEUWUsQm9va0xvY2s6RVFlLEJvb2tNYXJrZWQ6UFFlLEJvb2tNaW51czpJUWUsQm9va09wZW46T1FlLEJvb2tPcGVuQ2hlY2s6TlFlLEJvb2tPcGVuVGV4dDpGUWUsQm9va1BsdXM6UlFlLEJvb2tTZWFyY2g6QlFlLEJvb2tUZW1wbGF0ZTpMZyxCb29rVGV4dDpIUWUsQm9va1R5cGU6cVFlLEJvb2tVcDpqUWUsQm9va1VwMjpWUWUsQm9va1VzZXI6VVFlLEJvb2tYOldRZSxCb29rbWFyazpRUWUsQm9va21hcmtDaGVjazpZUWUsQm9va21hcmtNaW51czpaUWUsQm9va21hcmtQbHVzOlhRZSxCb29rbWFya1g6S1FlLEJvb21Cb3g6SlFlLEJvdDp0SmUsQm90TWVzc2FnZVNxdWFyZTplSmUsQm90T2ZmOmFKZSxCb3R0bGVXaW5lOmlKZSxCb3dBcnJvdzpySmUsQm94OnNKZSxCb3hTZWxlY3Q6U3ksQm94ZXM6bkplLEJyYWNlczokZyxCcmFja2V0czpvSmUsQnJhaW46ZEplLEJyYWluQ2lyY3VpdDpsSmUsQnJhaW5Db2c6Y0plLEJyaWNrV2FsbDpmSmUsQnJpY2tXYWxsRmlyZTpwSmUsQnJpY2tXYWxsU2hpZWxkOmhKZSxCcmllZmNhc2U6YkplLEJyaWVmY2FzZUJ1c2luZXNzOnVKZSxCcmllZmNhc2VDb252ZXlvckJlbHQ6bUplLEJyaWVmY2FzZU1lZGljYWw6Z0plLEJyaW5nVG9Gcm9udDp2SmUsQnJ1c2g6eEplLEJydXNoQ2xlYW5pbmc6eUplLEJ1YmJsZXM6d0plLEJ1ZzprSmUsQnVnT2ZmOk1KZSxCdWdQbGF5OnpKZSxCdWlsZGluZzpDSmUsQnVpbGRpbmcyOlNKZSxCdXM6VEplLEJ1c0Zyb250Ol9KZSxDYWJsZTokSmUsQ2FibGVDYXI6TEplLENha2U6REplLENha2VTbGljZTpBSmUsQ2FsY3VsYXRvcjpFSmUsQ2FsZW5kYXI6ZWV0LENhbGVuZGFyMTpQSmUsQ2FsZW5kYXJBcnJvd0Rvd246SUplLENhbGVuZGFyQXJyb3dVcDpOSmUsQ2FsZW5kYXJDaGVjazpPSmUsQ2FsZW5kYXJDaGVjazI6RkplLENhbGVuZGFyQ2xvY2s6UkplLENhbGVuZGFyQ29nOkJKZSxDYWxlbmRhckRheXM6SEplLENhbGVuZGFyRm9sZDpxSmUsQ2FsZW5kYXJIZWFydDpWSmUsQ2FsZW5kYXJNaW51czpVSmUsQ2FsZW5kYXJNaW51czI6akplLENhbGVuZGFyT2ZmOldKZSxDYWxlbmRhclBsdXM6WUplLENhbGVuZGFyUGx1czI6R0plLENhbGVuZGFyUmFuZ2U6WkplLENhbGVuZGFyU2VhcmNoOlhKZSxDYWxlbmRhclN5bmM6S0plLENhbGVuZGFyWDpKSmUsQ2FsZW5kYXJYMjpRSmUsQ2FsZW5kYXJzOnRldCxDYW1lcmE6aWV0LENhbWVyYU9mZjphZXQsQ2FuZGxlc3RpY2tDaGFydDpQZyxDYW5keTpuZXQsQ2FuZHlDYW5lOnJldCxDYW5keU9mZjpzZXQsQ2FubmFiaXM6Y2V0LENhbm5hYmlzT2ZmOm9ldCxDYXB0aW9uczpBZyxDYXB0aW9uc09mZjpkZXQsQ2FyOnVldCxDYXJGcm9udDpwZXQsQ2FyVGF4aUZyb250OmhldCxDYXJhdmFuOmZldCxDYXJkU2ltOm1ldCxDYXJyb3Q6Z2V0LENhc2VMb3dlcjpiZXQsQ2FzZVNlbnNpdGl2ZTp2ZXQsQ2FzZVVwcGVyOnlldCxDYXNzZXR0ZVRhcGU6eGV0LENhc3Q6d2V0LENhc3RsZTpNZXQsQ2F0OnpldCxDY3R2OmtldCxDaGFydEFyZWE6RGcsQ2hhcnRCYXI6TmcsQ2hhcnRCYXJCaWc6RWcsQ2hhcnRCYXJEZWNyZWFzaW5nOkNldCxDaGFydEJhckluY3JlYXNpbmc6X2V0LENoYXJ0QmFyU3RhY2tlZDpUZXQsQ2hhcnRDYW5kbGVzdGljazpQZyxDaGFydENvbHVtbjpPZyxDaGFydENvbHVtbkJpZzpJZyxDaGFydENvbHVtbkRlY3JlYXNpbmc6TGV0LENoYXJ0Q29sdW1uSW5jcmVhc2luZzpGZyxDaGFydENvbHVtblN0YWNrZWQ6JGV0LENoYXJ0R2FudHQ6QWV0LENoYXJ0TGluZTpSZyxDaGFydE5ldHdvcms6RGV0LENoYXJ0Tm9BeGVzQ29sdW1uOkhnLENoYXJ0Tm9BeGVzQ29sdW1uRGVjcmVhc2luZzpFZXQsQ2hhcnROb0F4ZXNDb2x1bW5JbmNyZWFzaW5nOkJnLENoYXJ0Tm9BeGVzQ29tYmluZWQ6UGV0LENoYXJ0Tm9BeGVzR2FudHQ6cWcsQ2hhcnRQaWU6VmcsQ2hhcnRTY2F0dGVyOmpnLENoYXJ0U3BsaW5lOklldCxDaGVjazpCZXQsQ2hlY2tDaGVjazpGZXQsQ2hlY2tDaXJjbGU6dGIsQ2hlY2tDaXJjbGUyOmFiLENoZWNrTGluZTpOZXQsQ2hlY2tTcXVhcmU6Z3ksQ2hlY2tTcXVhcmUyOmJ5LENoZWZIYXQ6T2V0LENoZXJyeTpSZXQsQ2hlc3NCaXNob3A6SGV0LENoZXNzS2luZzpxZXQsQ2hlc3NLbmlnaHQ6VWV0LENoZXNzUGF3bjpWZXQsQ2hlc3NRdWVlbjpqZXQsQ2hlc3NSb29rOldldCxDaGV2cm9uRG93bjpHZXQsQ2hldnJvbkRvd25DaXJjbGU6aWIsQ2hldnJvbkRvd25TcXVhcmU6dnksQ2hldnJvbkZpcnN0OllldCxDaGV2cm9uTGFzdDpaZXQsQ2hldnJvbkxlZnQ6WGV0LENoZXZyb25MZWZ0Q2lyY2xlOnJiLENoZXZyb25MZWZ0U3F1YXJlOnl5LENoZXZyb25SaWdodDpLZXQsQ2hldnJvblJpZ2h0Q2lyY2xlOnNiLENoZXZyb25SaWdodFNxdWFyZTp4eSxDaGV2cm9uVXA6UWV0LENoZXZyb25VcENpcmNsZTpuYixDaGV2cm9uVXBTcXVhcmU6d3ksQ2hldnJvbnNEb3duOmV0dCxDaGV2cm9uc0Rvd25VcDpKZXQsQ2hldnJvbnNMZWZ0Oml0dCxDaGV2cm9uc0xlZnRSaWdodDphdHQsQ2hldnJvbnNMZWZ0UmlnaHRFbGxpcHNpczp0dHQsQ2hldnJvbnNSaWdodDpzdHQsQ2hldnJvbnNSaWdodExlZnQ6cnR0LENoZXZyb25zVXA6bnR0LENoZXZyb25zVXBEb3duOm90dCxDaHJvbWU6VWcsQ2hyb21pdW06VWcsQ2h1cmNoOmN0dCxDaWdhcmV0dGU6ZHR0LENpZ2FyZXR0ZU9mZjpsdHQsQ2lyY2xlOlN0dCxDaXJjbGVBbGVydDpXZyxDaXJjbGVBcnJvd0Rvd246R2csQ2lyY2xlQXJyb3dMZWZ0OllnLENpcmNsZUFycm93T3V0RG93bkxlZnQ6WmcsQ2lyY2xlQXJyb3dPdXREb3duUmlnaHQ6WGcsQ2lyY2xlQXJyb3dPdXRVcExlZnQ6S2csQ2lyY2xlQXJyb3dPdXRVcFJpZ2h0OlFnLENpcmNsZUFycm93UmlnaHQ6SmcsQ2lyY2xlQXJyb3dVcDplYixDaXJjbGVDaGVjazphYixDaXJjbGVDaGVja0JpZzp0YixDaXJjbGVDaGV2cm9uRG93bjppYixDaXJjbGVDaGV2cm9uTGVmdDpyYixDaXJjbGVDaGV2cm9uUmlnaHQ6c2IsQ2lyY2xlQ2hldnJvblVwOm5iLENpcmNsZURhc2hlZDpwdHQsQ2lyY2xlRGl2aWRlOm9iLENpcmNsZURvbGxhclNpZ246aHR0LENpcmNsZURvdDpmdHQsQ2lyY2xlRG90RGFzaGVkOnV0dCxDaXJjbGVFbGxpcHNpczptdHQsQ2lyY2xlRXF1YWw6Z3R0LENpcmNsZUZhZGluZ0Fycm93VXA6YnR0LENpcmNsZUZhZGluZ1BsdXM6dnR0LENpcmNsZUdhdWdlOmxiLENpcmNsZUhlbHA6Z2wsQ2lyY2xlTWludXM6Y2IsQ2lyY2xlT2ZmOnl0dCxDaXJjbGVQYXJraW5nOnBiLENpcmNsZVBhcmtpbmdPZmY6ZGIsQ2lyY2xlUGF1c2U6aGIsQ2lyY2xlUGVyY2VudDp1YixDaXJjbGVQaWxlOnh0dCxDaXJjbGVQbGF5OmZiLENpcmNsZVBsdXM6bWIsQ2lyY2xlUG91bmRTdGVybGluZzp3dHQsQ2lyY2xlUG93ZXI6Z2IsQ2lyY2xlUXVlc3Rpb25NYXJrOmdsLENpcmNsZVNsYXNoOk10dCxDaXJjbGVTbGFzaDI6YmIsQ2lyY2xlU2xhc2hlZDpiYixDaXJjbGVTbWFsbDp6dHQsQ2lyY2xlU3RhcjprdHQsQ2lyY2xlU3RvcDp2YixDaXJjbGVVc2VyOnhiLENpcmNsZVVzZXJSb3VuZDp5YixDaXJjbGVYOndiLENpcmN1aXRCb2FyZDpDdHQsQ2l0cnVzOl90dCxDbGFwcGVyYm9hcmQ6VHR0LENsaXBib2FyZDpSdHQsQ2xpcGJvYXJkQ2hlY2s6THR0LENsaXBib2FyZENsb2NrOiR0dCxDbGlwYm9hcmRDb3B5OkF0dCxDbGlwYm9hcmRFZGl0OnpiLENsaXBib2FyZExpc3Q6RHR0LENsaXBib2FyZE1pbnVzOkV0dCxDbGlwYm9hcmRQYXN0ZTpQdHQsQ2xpcGJvYXJkUGVuOnpiLENsaXBib2FyZFBlbkxpbmU6TWIsQ2xpcGJvYXJkUGx1czpJdHQsQ2xpcGJvYXJkU2lnbmF0dXJlOk1iLENsaXBib2FyZFR5cGU6TnR0LENsaXBib2FyZFg6RnR0LENsb2NrOmkxdCxDbG9jazE6T3R0LENsb2NrMTA6QnR0LENsb2NrMTE6SHR0LENsb2NrMTI6cXR0LENsb2NrMjpWdHQsQ2xvY2szOmp0dCxDbG9jazQ6VXR0LENsb2NrNTpXdHQsQ2xvY2s2Okd0dCxDbG9jazc6WXR0LENsb2NrODpadHQsQ2xvY2s5Olh0dCxDbG9ja0FsZXJ0OlF0dCxDbG9ja0Fycm93RG93bjpLdHQsQ2xvY2tBcnJvd1VwOkp0dCxDbG9ja0NoZWNrOmUxdCxDbG9ja0ZhZGluZzp0MXQsQ2xvY2tQbHVzOmExdCxDbG9zZWRDYXB0aW9uOnIxdCxDbG91ZDpNMXQsQ2xvdWRBbGVydDpzMXQsQ2xvdWRCYWNrdXA6bjF0LENsb3VkQ2hlY2s6bzF0LENsb3VkQ29nOmwxdCxDbG91ZERvd25sb2FkOmtiLENsb3VkRHJpenpsZTpjMXQsQ2xvdWRGb2c6ZDF0LENsb3VkSGFpbDpwMXQsQ2xvdWRMaWdodG5pbmc6dTF0LENsb3VkTW9vbjpmMXQsQ2xvdWRNb29uUmFpbjpoMXQsQ2xvdWRPZmY6bTF0LENsb3VkUmFpbjpiMXQsQ2xvdWRSYWluV2luZDpnMXQsQ2xvdWRTbm93OnYxdCxDbG91ZFN1bjp4MXQsQ2xvdWRTdW5SYWluOnkxdCxDbG91ZFN5bmM6dzF0LENsb3VkVXBsb2FkOlNiLENsb3VkeTp6MXQsQ2xvdmVyOmsxdCxDbHViOlMxdCxDb2RlOkMxdCxDb2RlMjpDYixDb2RlU3F1YXJlOk15LENvZGVYbWw6Q2IsQ29kZXBlbjpfMXQsQ29kZXNhbmRib3g6VDF0LENvZmZlZTpMMXQsQ29nOiQxdCxDb2luczpBMXQsQ29sdW1uczpfYixDb2x1bW5zMjpfYixDb2x1bW5zMzpUYixDb2x1bW5zM0NvZzpibCxDb2x1bW5zNDpEMXQsQ29sdW1uc1NldHRpbmdzOmJsLENvbWJpbmU6RTF0LENvbW1hbmQ6UDF0LENvbXBhc3M6STF0LENvbXBvbmVudDpOMXQsQ29tcHV0ZXI6RjF0LENvbmNpZXJnZUJlbGw6TzF0LENvbmU6UjF0LENvbnN0cnVjdGlvbjpCMXQsQ29udGFjdDpIMXQsQ29udGFjdDI6TGIsQ29udGFjdFJvdW5kOkxiLENvbnRhaW5lcjpxMXQsQ29udHJhc3Q6ajF0LENvb2tpZTpWMXQsQ29va2luZ1BvdDpVMXQsQ29weTpLMXQsQ29weUNoZWNrOlcxdCxDb3B5TWludXM6RzF0LENvcHlQbHVzOlkxdCxDb3B5U2xhc2g6WjF0LENvcHlYOlgxdCxDb3B5bGVmdDpRMXQsQ29weXJpZ2h0OkoxdCxDb3JuZXJEb3duTGVmdDplMnQsQ29ybmVyRG93blJpZ2h0OnQydCxDb3JuZXJMZWZ0RG93bjphMnQsQ29ybmVyTGVmdFVwOmkydCxDb3JuZXJSaWdodERvd246cjJ0LENvcm5lclJpZ2h0VXA6czJ0LENvcm5lclVwTGVmdDpuMnQsQ29ybmVyVXBSaWdodDpvMnQsQ3B1OmwydCxDcmVhdGl2ZUNvbW1vbnM6YzJ0LENyZWRpdENhcmQ6ZDJ0LENyb2lzc2FudDpwMnQsQ3JvcDpoMnQsQ3Jvc3M6dTJ0LENyb3NzaGFpcjpmMnQsQ3Jvd246bTJ0LEN1Ym9pZDpnMnQsQ3VwU29kYTpiMnQsQ3VybHlCcmFjZXM6JGcsQ3VycmVuY3k6eTJ0LEN5bGluZGVyOnYydCxEYW06dzJ0LERhdGFiYXNlOmsydCxEYXRhYmFzZUJhY2t1cDp4MnQsRGF0YWJhc2VTZWFyY2g6TTJ0LERhdGFiYXNlWmFwOnoydCxEZWNpbWFsc0Fycm93TGVmdDpTMnQsRGVjaW1hbHNBcnJvd1JpZ2h0OkMydCxEZWxldGU6XzJ0LERlc3NlcnQ6VDJ0LERpYW1ldGVyOkwydCxEaWFtb25kOkQydCxEaWFtb25kTWludXM6JDJ0LERpYW1vbmRQZXJjZW50OiRiLERpYW1vbmRQbHVzOkEydCxEaWNlMTpFMnQsRGljZTI6UDJ0LERpY2UzOkkydCxEaWNlNDpOMnQsRGljZTU6RjJ0LERpY2U2Ok8ydCxEaWNlczpSMnQsRGlmZjpCMnQsRGlzYzpqMnQsRGlzYzI6SDJ0LERpc2MzOnEydCxEaXNjQWxidW06VjJ0LERpdmlkZTpVMnQsRGl2aWRlQ2lyY2xlOm9iLERpdmlkZVNxdWFyZTpDeSxEbmE6RzJ0LERuYU9mZjpXMnQsRG9jazpYMnQsRG9nOlkydCxEb2xsYXJTaWduOloydCxEb251dDpLMnQsRG9vckNsb3NlZDpKMnQsRG9vckNsb3NlZExvY2tlZDpRMnQsRG9vck9wZW46ZWF0LERvdDp0YXQsRG90U3F1YXJlOl95LERvd25sb2FkOmFhdCxEb3dubG9hZENsb3VkOmtiLERyYWZ0aW5nQ29tcGFzczppYXQsRHJhbWE6c2F0LERyaWJiYmxlOnJhdCxEcmlsbDpuYXQsRHJvbmU6b2F0LERyb3BsZXQ6Y2F0LERyb3BsZXRPZmY6bGF0LERyb3BsZXRzOmRhdCxEcnVtOnBhdCxEcnVtc3RpY2s6aGF0LER1bWJiZWxsOnVhdCxFYXI6Z2F0LEVhck9mZjpmYXQsRWFydGg6QWIsRWFydGhMb2NrOm1hdCxFY2xpcHNlOmJhdCxFZGl0OnJvLEVkaXQyOlZ2LEVkaXQzOnF2LEVnZzp4YXQsRWdnRnJpZWQ6dmF0LEVnZ09mZjp5YXQsRWxsaXBzaXM6RWIsRWxsaXBzaXNWZXJ0aWNhbDpEYixFcXVhbDp6YXQsRXF1YWxBcHByb3hpbWF0ZWx5OndhdCxFcXVhbE5vdDpNYXQsRXF1YWxTcXVhcmU6VHksRXJhc2VyOlNhdCxFdGhlcm5ldFBvcnQ6a2F0LEV1cm86Q2F0LEV2Q2hhcmdlcjpfYXQsRXhwYW5kOlRhdCxFeHRlcm5hbExpbms6TGF0LEV5ZTpBYXQsRXllQ2xvc2VkOiRhdCxFeWVPZmY6RGF0LEZhY2Vib29rOkVhdCxGYWN0b3J5OlBhdCxGYW46SWF0LEZhc3RGb3J3YXJkOk5hdCxGZWF0aGVyOkZhdCxGZW5jZTpPYXQsRmVycmlzV2hlZWw6UmF0LEZpZ21hOkJhdCxGaWxlOm1pdCxGaWxlQXJjaGl2ZTpIYXQsRmlsZUF1ZGlvOnZsLEZpbGVBdWRpbzI6dmwsRmlsZUF4aXMzRDpQYixGaWxlQXhpczNkOlBiLEZpbGVCYWRnZTpJYixGaWxlQmFkZ2UyOkliLEZpbGVCYXJDaGFydDpPYixGaWxlQmFyQ2hhcnQyOlJiLEZpbGVCb3g6cWF0LEZpbGVCcmFjZXM6RmIsRmlsZUJyYWNlc0Nvcm5lcjpOYixGaWxlQ2hhcnRDb2x1bW46UmIsRmlsZUNoYXJ0Q29sdW1uSW5jcmVhc2luZzpPYixGaWxlQ2hhcnRMaW5lOkJiLEZpbGVDaGFydFBpZTpIYixGaWxlQ2hlY2s6amF0LEZpbGVDaGVjazI6cWIsRmlsZUNoZWNrQ29ybmVyOnFiLEZpbGVDbG9jazpWYXQsRmlsZUNvZGU6VWF0LEZpbGVDb2RlMjpWYixGaWxlQ29kZUNvcm5lcjpWYixGaWxlQ29nOmpiLEZpbGVDb2cyOmpiLEZpbGVEaWZmOldhdCxGaWxlRGlnaXQ6R2F0LEZpbGVEb3duOllhdCxGaWxlRWRpdDpYYixGaWxlRXhjbGFtYXRpb25Qb2ludDpVYixGaWxlSGVhZHBob25lOnZsLEZpbGVIZWFydDpaYXQsRmlsZUltYWdlOlhhdCxGaWxlSW5wdXQ6S2F0LEZpbGVKc29uOkZiLEZpbGVKc29uMjpOYixGaWxlS2V5OldiLEZpbGVLZXkyOldiLEZpbGVMaW5lQ2hhcnQ6QmIsRmlsZUxvY2s6R2IsRmlsZUxvY2syOkdiLEZpbGVNaW51czpRYXQsRmlsZU1pbnVzMjpZYixGaWxlTWludXNDb3JuZXI6WWIsRmlsZU11c2ljOkphdCxGaWxlT3V0cHV0OmVpdCxGaWxlUGVuOlhiLEZpbGVQZW5MaW5lOlpiLEZpbGVQaWVDaGFydDpIYixGaWxlUGxheTpLYixGaWxlUGx1czp0aXQsRmlsZVBsdXMyOlFiLEZpbGVQbHVzQ29ybmVyOlFiLEZpbGVRdWVzdGlvbjpKYixGaWxlUXVlc3Rpb25NYXJrOkpiLEZpbGVTY2FuOmFpdCxGaWxlU2VhcmNoOmlpdCxGaWxlU2VhcmNoMjpldixGaWxlU2VhcmNoQ29ybmVyOmV2LEZpbGVTaWduYWw6dHYsRmlsZVNpZ25hdHVyZTpaYixGaWxlU2xpZGVyczpyaXQsRmlsZVNwcmVhZHNoZWV0OnNpdCxGaWxlU3RhY2s6bml0LEZpbGVTeW1saW5rOm9pdCxGaWxlVGVybWluYWw6bGl0LEZpbGVUZXh0OmNpdCxGaWxlVHlwZTpkaXQsRmlsZVR5cGUyOmF2LEZpbGVUeXBlQ29ybmVyOmF2LEZpbGVVcDpwaXQsRmlsZVVzZXI6aGl0LEZpbGVWaWRlbzpLYixGaWxlVmlkZW8yOml2LEZpbGVWaWRlb0NhbWVyYTppdixGaWxlVm9sdW1lOnVpdCxGaWxlVm9sdW1lMjp0dixGaWxlV2FybmluZzpVYixGaWxlWDpmaXQsRmlsZVgyOnJ2LEZpbGVYQ29ybmVyOnJ2LEZpbGVzOmdpdCxGaWxtOmJpdCxGaWx0ZXI6Y3YsRmlsdGVyWDpsdixGaW5nZXJwcmludDpzdixGaW5nZXJwcmludFBhdHRlcm46c3YsRmlyZUV4dGluZ3Vpc2hlcjp2aXQsRmlzaDp3aXQsRmlzaE9mZjp5aXQsRmlzaFN5bWJvbDp4aXQsRmlzaGluZ0hvb2s6TWl0LEZsYWc6Q2l0LEZsYWdPZmY6eml0LEZsYWdUcmlhbmdsZUxlZnQ6a2l0LEZsYWdUcmlhbmdsZVJpZ2h0OlNpdCxGbGFtZTpUaXQsRmxhbWVLaW5kbGluZzpfaXQsRmxhc2hsaWdodDokaXQsRmxhc2hsaWdodE9mZjpMaXQsRmxhc2tDb25pY2FsOkRpdCxGbGFza0NvbmljYWxPZmY6QWl0LEZsYXNrUm91bmQ6RWl0LEZsaXBIb3Jpem9udGFsOklpdCxGbGlwSG9yaXpvbnRhbDI6UGl0LEZsaXBWZXJ0aWNhbDpGaXQsRmxpcFZlcnRpY2FsMjpOaXQsRmxvd2VyOlJpdCxGbG93ZXIyOk9pdCxGb2N1czpCaXQsRm9sZEhvcml6b250YWw6SGl0LEZvbGRWZXJ0aWNhbDpxaXQsRm9sZGVyOmdydCxGb2xkZXJBcmNoaXZlOmppdCxGb2xkZXJDaGVjazpWaXQsRm9sZGVyQ2xvY2s6VWl0LEZvbGRlckNsb3NlZDpXaXQsRm9sZGVyQ29kZTpHaXQsRm9sZGVyQ29nOm52LEZvbGRlckNvZzI6bnYsRm9sZGVyRG90OllpdCxGb2xkZXJEb3duOlppdCxGb2xkZXJFZGl0Om92LEZvbGRlckdpdDpLaXQsRm9sZGVyR2l0MjpYaXQsRm9sZGVySGVhcnQ6UWl0LEZvbGRlcklucHV0OkppdCxGb2xkZXJLYW5iYW46ZXJ0LEZvbGRlcktleTp0cnQsRm9sZGVyTG9jazphcnQsRm9sZGVyTWludXM6aXJ0LEZvbGRlck9wZW46c3J0LEZvbGRlck9wZW5Eb3Q6cnJ0LEZvbGRlck91dHB1dDpucnQsRm9sZGVyUGVuOm92LEZvbGRlclBsdXM6b3J0LEZvbGRlclJvb3Q6bHJ0LEZvbGRlclNlYXJjaDpkcnQsRm9sZGVyU2VhcmNoMjpjcnQsRm9sZGVyU3ltbGluazpwcnQsRm9sZGVyU3luYzpocnQsRm9sZGVyVHJlZTp1cnQsRm9sZGVyVXA6ZnJ0LEZvbGRlclg6bXJ0LEZvbGRlcnM6YnJ0LEZvb3RwcmludHM6eXJ0LEZvcmtLbmlmZTp5eCxGb3JrS25pZmVDcm9zc2VkOnZ4LEZvcmtsaWZ0OnZydCxGb3JtOnhydCxGb3JtSW5wdXQ6VXYsRm9yd2FyZDp3cnQsRnJhbWU6TXJ0LEZyYW1lcjp6cnQsRnJvd246a3J0LEZ1ZWw6U3J0LEZ1bGxzY3JlZW46Q3J0LEZ1bmN0aW9uU3F1YXJlOkx5LEZ1bm5lbDpjdixGdW5uZWxQbHVzOl9ydCxGdW5uZWxYOmx2LEdhbGxlcnlIb3Jpem9udGFsOkxydCxHYWxsZXJ5SG9yaXpvbnRhbEVuZDpUcnQsR2FsbGVyeVRodW1ibmFpbHM6JHJ0LEdhbGxlcnlWZXJ0aWNhbDpEcnQsR2FsbGVyeVZlcnRpY2FsRW5kOkFydCxHYW1lcGFkOklydCxHYW1lcGFkMjpFcnQsR2FtZXBhZERpcmVjdGlvbmFsOlBydCxHYW50dENoYXJ0OnFnLEdhbnR0Q2hhcnRTcXVhcmU6TWwsR2F1Z2U6TnJ0LEdhdWdlQ2lyY2xlOmxiLEdhdmVsOkZydCxHZW06T3J0LEdlb3JnaWFuTGFyaTpScnQsR2hvc3Q6QnJ0LEdpZnQ6VnJ0LEdpdEJyYW5jaDpqcnQsR2l0QnJhbmNoTWludXM6SHJ0LEdpdEJyYW5jaFBsdXM6cXJ0LEdpdENvbW1pdDpkdixHaXRDb21taXRIb3Jpem9udGFsOmR2LEdpdENvbW1pdFZlcnRpY2FsOlVydCxHaXRDb21wYXJlOkdydCxHaXRDb21wYXJlQXJyb3dzOldydCxHaXRGb3JrOllydCxHaXRHcmFwaDpacnQsR2l0TWVyZ2U6WHJ0LEdpdFB1bGxSZXF1ZXN0OmFzdCxHaXRQdWxsUmVxdWVzdEFycm93OktydCxHaXRQdWxsUmVxdWVzdENsb3NlZDpRcnQsR2l0UHVsbFJlcXVlc3RDcmVhdGU6ZXN0LEdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3c6SnJ0LEdpdFB1bGxSZXF1ZXN0RHJhZnQ6dHN0LEdpdGh1Yjppc3QsR2l0bGFiOnJzdCxHbGFzc1dhdGVyOnNzdCxHbGFzc2VzOm5zdCxHbG9iZTpsc3QsR2xvYmUyOkFiLEdsb2JlTG9jazpvc3QsR2xvYmVYOmNzdCxHb2FsOmRzdCxHcHU6cHN0LEdyYWI6bXYsR3JhZHVhdGlvbkNhcDpoc3QsR3JhcGU6dXN0LEdyaWQ6eWwsR3JpZDJYMjpmdixHcmlkMlgyQ2hlY2s6cHYsR3JpZDJYMlBsdXM6aHYsR3JpZDJYMlg6dXYsR3JpZDJ4MjpmdixHcmlkMngyQ2hlY2s6cHYsR3JpZDJ4MlBsdXM6aHYsR3JpZDJ4Mlg6dXYsR3JpZDNYMzp5bCxHcmlkM3gyOmZzdCxHcmlkM3gzOnlsLEdyaXA6YnN0LEdyaXBIb3Jpem9udGFsOm1zdCxHcmlwVmVydGljYWw6Z3N0LEdyb3VwOnZzdCxHdWl0YXI6eXN0LEhhbTp4c3QsSGFtYnVyZ2VyOndzdCxIYW1tZXI6TXN0LEhhbmQ6VHN0LEhhbmRDb2luczp6c3QsSGFuZEZpc3Q6a3N0LEhhbmRHcmFiOm12LEhhbmRIZWFydDpTc3QsSGFuZEhlbHBpbmc6Z3YsSGFuZE1ldGFsOkNzdCxIYW5kUGxhdHRlcjpfc3QsSGFuZGJhZzpMc3QsSGFuZHNoYWtlOiRzdCxIYXJkRHJpdmU6RXN0LEhhcmREcml2ZURvd25sb2FkOkFzdCxIYXJkRHJpdmVVcGxvYWQ6RHN0LEhhcmRIYXQ6UHN0LEhhc2g6SXN0LEhhdEdsYXNzZXM6TnN0LEhhemU6RnN0LEhkOk9zdCxIZG1pUG9ydDpSc3QsSGVhZGluZzpXc3QsSGVhZGluZzE6QnN0LEhlYWRpbmcyOkhzdCxIZWFkaW5nMzpxc3QsSGVhZGluZzQ6VnN0LEhlYWRpbmc1OmpzdCxIZWFkaW5nNjpVc3QsSGVhZHBob25lT2ZmOkdzdCxIZWFkcGhvbmVzOllzdCxIZWFkc2V0OlhzdCxIZWFydDphbnQsSGVhcnRDcmFjazpac3QsSGVhcnRIYW5kc2hha2U6S3N0LEhlYXJ0TWludXM6UXN0LEhlYXJ0T2ZmOkpzdCxIZWFydFBsdXM6dG50LEhlYXJ0UHVsc2U6ZW50LEhlYXRlcjppbnQsSGVsaWNvcHRlcjpybnQsSGVscENpcmNsZTpnbCxIZWxwaW5nSGFuZDpndixIZXhhZ29uOnNudCxIaWdobGlnaHRlcjpubnQsSGlzdG9yeTpvbnQsSG9tZTpidixIb3A6bG50LEhvcE9mZjpjbnQsSG9zcGl0YWw6ZG50LEhvdGVsOnBudCxIb3VyZ2xhc3M6aG50LEhvdXNlOmJ2LEhvdXNlSGVhcnQ6dW50LEhvdXNlUGx1ZzpmbnQsSG91c2VQbHVzOm1udCxIb3VzZVdpZmk6Z250LEljZUNyZWFtOnl2LEljZUNyZWFtMjp2dixJY2VDcmVhbUJvd2w6dnYsSWNlQ3JlYW1Db25lOnl2LElkQ2FyZDp2bnQsSWRDYXJkTGFueWFyZDpibnQsSW1hZ2U6U250LEltYWdlRG93bjp5bnQsSW1hZ2VNaW51czp4bnQsSW1hZ2VPZmY6d250LEltYWdlUGxheTpNbnQsSW1hZ2VQbHVzOnpudCxJbWFnZVVwOmtudCxJbWFnZVVwc2NhbGU6Q250LEltYWdlczpfbnQsSW1wb3J0OlRudCxJbmJveDpMbnQsSW5kZW50OndsLEluZGVudERlY3JlYXNlOnhsLEluZGVudEluY3JlYXNlOndsLEluZGlhblJ1cGVlOiRudCxJbmZpbml0eTpBbnQsSW5mbzpEbnQsSW5zcGVjdDpJeSxJbnNwZWN0aW9uUGFuZWw6RW50LEluc3RhZ3JhbTpQbnQsSXRhbGljOk5udCxJdGVyYXRpb25DY3c6SW50LEl0ZXJhdGlvbkN3OkZudCxKYXBhbmVzZVllbjpPbnQsSm95c3RpY2s6Um50LEthbmJhbjpCbnQsS2FuYmFuU3F1YXJlOiR5LEthbmJhblNxdWFyZURhc2hlZDp6eSxLYXlhazpIbnQsS2V5OmpudCxLZXlSb3VuZDpxbnQsS2V5U3F1YXJlOlZudCxLZXlib2FyZDpHbnQsS2V5Ym9hcmRNdXNpYzpVbnQsS2V5Ym9hcmRPZmY6V250LExhbXA6Sm50LExhbXBDZWlsaW5nOlludCxMYW1wRGVzazpabnQsTGFtcEZsb29yOlhudCxMYW1wV2FsbERvd246S250LExhbXBXYWxsVXA6UW50LExhbmRQbG90OnRvdCxMYW5kbWFyazplb3QsTGFuZ3VhZ2VzOmFvdCxMYXB0b3A6cm90LExhcHRvcDI6eHYsTGFwdG9wTWluaW1hbDp4dixMYXB0b3BNaW5pbWFsQ2hlY2s6aW90LExhc3NvOm5vdCxMYXNzb1NlbGVjdDpzb3QsTGF1Z2g6b290LExheWVyczp3dixMYXllcnMyOmxvdCxMYXllcnMzOnd2LExheWVyc1BsdXM6Y290LExheW91dDpIdixMYXlvdXREYXNoYm9hcmQ6ZG90LExheW91dEdyaWQ6cG90LExheW91dExpc3Q6aG90LExheW91dFBhbmVsTGVmdDp1b3QsTGF5b3V0UGFuZWxUb3A6Zm90LExheW91dFRlbXBsYXRlOm1vdCxMZWFmOmdvdCxMZWFmeUdyZWVuOmJvdCxMZWN0ZXJuOnZvdCxMZXR0ZXJUZXh0Oml4LExpYnJhcnk6eG90LExpYnJhcnlCaWc6eW90LExpYnJhcnlTcXVhcmU6QXksTGlmZUJ1b3k6d290LExpZ2F0dXJlOk1vdCxMaWdodGJ1bGI6a290LExpZ2h0YnVsYk9mZjp6b3QsTGluZUNoYXJ0OlJnLExpbmVTcXVpZ2dsZTpTb3QsTGluazpUb3QsTGluazI6X290LExpbmsyT2ZmOkNvdCxMaW5rZWRpbjpMb3QsTGlzdDpZb3QsTGlzdENoZWNrOiRvdCxMaXN0Q2hlY2tzOkFvdCxMaXN0Q2hldnJvbnNEb3duVXA6RG90LExpc3RDaGV2cm9uc1VwRG93bjpFb3QsTGlzdENvbGxhcHNlOlBvdCxMaXN0RW5kOklvdCxMaXN0RmlsdGVyOkZvdCxMaXN0RmlsdGVyUGx1czpOb3QsTGlzdEluZGVudERlY3JlYXNlOnhsLExpc3RJbmRlbnRJbmNyZWFzZTp3bCxMaXN0TWludXM6T290LExpc3RNdXNpYzpSb3QsTGlzdE9yZGVyZWQ6Qm90LExpc3RQbHVzOkhvdCxMaXN0UmVzdGFydDpxb3QsTGlzdFN0YXJ0OlZvdCxMaXN0VG9kbzpqb3QsTGlzdFRyZWU6VW90LExpc3RWaWRlbzpXb3QsTGlzdFg6R290LExvYWRlcjpab3QsTG9hZGVyMjpNdixMb2FkZXJDaXJjbGU6TXYsTG9hZGVyUGlud2hlZWw6WG90LExvY2F0ZTpKb3QsTG9jYXRlRml4ZWQ6S290LExvY2F0ZU9mZjpRb3QsTG9jYXRpb25FZGl0OkN2LExvY2s6dDB0LExvY2tLZXlob2xlOmUwdCxMb2NrS2V5aG9sZU9wZW46enYsTG9ja09wZW46a3YsTG9nSW46YTB0LExvZ091dDpyMHQsTG9nczppMHQsTG9sbGlwb3A6czB0LEx1Z2dhZ2U6bjB0LE1TcXVhcmU6RHksTWFnbmV0Om8wdCxNYWlsOmYwdCxNYWlsQ2hlY2s6bDB0LE1haWxNaW51czpjMHQsTWFpbE9wZW46ZDB0LE1haWxQbHVzOnAwdCxNYWlsUXVlc3Rpb246U3YsTWFpbFF1ZXN0aW9uTWFyazpTdixNYWlsU2VhcmNoOmgwdCxNYWlsV2FybmluZzp1MHQsTWFpbFg6bTB0LE1haWxib3g6ZzB0LE1haWxzOmIwdCxNYXA6RDB0LE1hcE1pbnVzOnYwdCxNYXBQaW46TDB0LE1hcFBpbkNoZWNrOngwdCxNYXBQaW5DaGVja0luc2lkZTp5MHQsTWFwUGluSG91c2U6dzB0LE1hcFBpbk1pbnVzOnowdCxNYXBQaW5NaW51c0luc2lkZTpNMHQsTWFwUGluT2ZmOmswdCxNYXBQaW5QZW46Q3YsTWFwUGluUGx1czpDMHQsTWFwUGluUGx1c0luc2lkZTpTMHQsTWFwUGluWDpUMHQsTWFwUGluWEluc2lkZTpfMHQsTWFwUGlubmVkOiQwdCxNYXBQbHVzOkEwdCxNYXJzOlAwdCxNYXJzU3Ryb2tlOkUwdCxNYXJ0aW5pOkkwdCxNYXhpbWl6ZTpGMHQsTWF4aW1pemUyOk4wdCxNZWRhbDpPMHQsTWVnYXBob25lOkIwdCxNZWdhcGhvbmVPZmY6UjB0LE1laDpIMHQsTWVtb3J5U3RpY2s6VjB0LE1lbnU6cTB0LE1lbnVTcXVhcmU6RXksTWVyZ2U6ajB0LE1lc3NhZ2VDaXJjbGU6ZTR0LE1lc3NhZ2VDaXJjbGVDb2RlOlUwdCxNZXNzYWdlQ2lyY2xlRGFzaGVkOlcwdCxNZXNzYWdlQ2lyY2xlSGVhcnQ6RzB0LE1lc3NhZ2VDaXJjbGVNb3JlOlkwdCxNZXNzYWdlQ2lyY2xlT2ZmOlowdCxNZXNzYWdlQ2lyY2xlUGx1czpYMHQsTWVzc2FnZUNpcmNsZVF1ZXN0aW9uOl92LE1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcms6X3YsTWVzc2FnZUNpcmNsZVJlcGx5OlEwdCxNZXNzYWdlQ2lyY2xlV2FybmluZzpLMHQsTWVzc2FnZUNpcmNsZVg6SjB0LE1lc3NhZ2VTcXVhcmU6ZzR0LE1lc3NhZ2VTcXVhcmVDb2RlOnQ0dCxNZXNzYWdlU3F1YXJlRGFzaGVkOmE0dCxNZXNzYWdlU3F1YXJlRGlmZjppNHQsTWVzc2FnZVNxdWFyZURvdDpyNHQsTWVzc2FnZVNxdWFyZUhlYXJ0OnM0dCxNZXNzYWdlU3F1YXJlTG9jazpuNHQsTWVzc2FnZVNxdWFyZU1vcmU6bzR0LE1lc3NhZ2VTcXVhcmVPZmY6bDR0LE1lc3NhZ2VTcXVhcmVQbHVzOmM0dCxNZXNzYWdlU3F1YXJlUXVvdGU6ZDR0LE1lc3NhZ2VTcXVhcmVSZXBseTpwNHQsTWVzc2FnZVNxdWFyZVNoYXJlOmg0dCxNZXNzYWdlU3F1YXJlVGV4dDp1NHQsTWVzc2FnZVNxdWFyZVdhcm5pbmc6ZjR0LE1lc3NhZ2VTcXVhcmVYOm00dCxNZXNzYWdlc1NxdWFyZTpiNHQsTWljOnk0dCxNaWMyOlR2LE1pY09mZjp2NHQsTWljVm9jYWw6VHYsTWljcm9jaGlwOng0dCxNaWNyb3Njb3BlOnc0dCxNaWNyb3dhdmU6TTR0LE1pbGVzdG9uZTp6NHQsTWlsazpDNHQsTWlsa09mZjprNHQsTWluaW1pemU6XzR0LE1pbmltaXplMjpTNHQsTWludXM6VDR0LE1pbnVzQ2lyY2xlOmNiLE1pbnVzU3F1YXJlOlB5LE1vbml0b3I6cTR0LE1vbml0b3JDaGVjazpMNHQsTW9uaXRvckNsb3VkOiQ0dCxNb25pdG9yQ29nOkE0dCxNb25pdG9yRG90OkQ0dCxNb25pdG9yRG93bjpFNHQsTW9uaXRvck9mZjpQNHQsTW9uaXRvclBhdXNlOkk0dCxNb25pdG9yUGxheTpONHQsTW9uaXRvclNtYXJ0cGhvbmU6RjR0LE1vbml0b3JTcGVha2VyOk80dCxNb25pdG9yU3RvcDpSNHQsTW9uaXRvclVwOkI0dCxNb25pdG9yWDpINHQsTW9vbjpqNHQsTW9vblN0YXI6VjR0LE1vcmVIb3Jpem9udGFsOkViLE1vcmVWZXJ0aWNhbDpEYixNb3RvcmJpa2U6VTR0LE1vdW50YWluOkc0dCxNb3VudGFpblNub3c6VzR0LE1vdXNlOmUzdCxNb3VzZU9mZjpZNHQsTW91c2VQb2ludGVyOko0dCxNb3VzZVBvaW50ZXIyOlg0dCxNb3VzZVBvaW50ZXIyT2ZmOlo0dCxNb3VzZVBvaW50ZXJCYW46SzR0LE1vdXNlUG9pbnRlckNsaWNrOlE0dCxNb3VzZVBvaW50ZXJTcXVhcmVEYXNoZWQ6a3ksTW92ZTp1M3QsTW92ZTNEOkx2LE1vdmUzZDpMdixNb3ZlRGlhZ29uYWw6YTN0LE1vdmVEaWFnb25hbDI6dDN0LE1vdmVEb3duOnMzdCxNb3ZlRG93bkxlZnQ6aTN0LE1vdmVEb3duUmlnaHQ6cjN0LE1vdmVIb3Jpem9udGFsOm4zdCxNb3ZlTGVmdDpvM3QsTW92ZVJpZ2h0OmwzdCxNb3ZlVXA6cDN0LE1vdmVVcExlZnQ6YzN0LE1vdmVVcFJpZ2h0OmQzdCxNb3ZlVmVydGljYWw6aDN0LE11c2ljOmIzdCxNdXNpYzI6ZjN0LE11c2ljMzptM3QsTXVzaWM0OmczdCxOYXZpZ2F0aW9uOngzdCxOYXZpZ2F0aW9uMjp5M3QsTmF2aWdhdGlvbjJPZmY6djN0LE5hdmlnYXRpb25PZmY6dzN0LE5ldHdvcms6TTN0LE5ld3NwYXBlcjp6M3QsTmZjOmszdCxOb25CaW5hcnk6UzN0LE5vdGVib29rOkwzdCxOb3RlYm9va1BlbjpDM3QsTm90ZWJvb2tUYWJzOl8zdCxOb3RlYm9va1RleHQ6VDN0LE5vdGVwYWRUZXh0OkEzdCxOb3RlcGFkVGV4dERhc2hlZDokM3QsTnV0OkQzdCxOdXRPZmY6RTN0LE9jdGFnb246STN0LE9jdGFnb25BbGVydDokdixPY3RhZ29uTWludXM6UDN0LE9jdGFnb25QYXVzZTpBdixPY3RhZ29uWDpEdixPbWVnYTpOM3QsT3B0aW9uOk8zdCxPcmJpdDpGM3QsT3JpZ2FtaTpSM3QsT3V0ZGVudDp4bCxQYWNrYWdlOkczdCxQYWNrYWdlMjpCM3QsUGFja2FnZUNoZWNrOkgzdCxQYWNrYWdlTWludXM6cTN0LFBhY2thZ2VPcGVuOlYzdCxQYWNrYWdlUGx1czpqM3QsUGFja2FnZVNlYXJjaDpVM3QsUGFja2FnZVg6VzN0LFBhaW50QnVja2V0OlozdCxQYWludFJvbGxlcjpZM3QsUGFpbnRicnVzaDpYM3QsUGFpbnRicnVzaDI6RXYsUGFpbnRicnVzaFZlcnRpY2FsOkV2LFBhbGV0dGU6SzN0LFBhbG10cmVlOm94LFBhbmRhOlEzdCxQYW5lbEJvdHRvbTp0bHQsUGFuZWxCb3R0b21DbG9zZTpKM3QsUGFuZWxCb3R0b21EYXNoZWQ6UHYsUGFuZWxCb3R0b21JbmFjdGl2ZTpQdixQYW5lbEJvdHRvbU9wZW46ZWx0LFBhbmVsTGVmdDpPdixQYW5lbExlZnRDbG9zZTpJdixQYW5lbExlZnREYXNoZWQ6TnYsUGFuZWxMZWZ0SW5hY3RpdmU6TnYsUGFuZWxMZWZ0T3BlbjpGdixQYW5lbExlZnRSaWdodERhc2hlZDphbHQsUGFuZWxSaWdodDpzbHQsUGFuZWxSaWdodENsb3NlOmlsdCxQYW5lbFJpZ2h0RGFzaGVkOlJ2LFBhbmVsUmlnaHRJbmFjdGl2ZTpSdixQYW5lbFJpZ2h0T3BlbjpybHQsUGFuZWxUb3A6Y2x0LFBhbmVsVG9wQm90dG9tRGFzaGVkOm5sdCxQYW5lbFRvcENsb3NlOm9sdCxQYW5lbFRvcERhc2hlZDpCdixQYW5lbFRvcEluYWN0aXZlOkJ2LFBhbmVsVG9wT3BlbjpsbHQsUGFuZWxzTGVmdEJvdHRvbTpkbHQsUGFuZWxzTGVmdFJpZ2h0OlRiLFBhbmVsc1JpZ2h0Qm90dG9tOnBsdCxQYW5lbHNUb3BCb3R0b206WXYsUGFuZWxzVG9wTGVmdDpIdixQYXBlcmNsaXA6aGx0LFBhcmVudGhlc2VzOnVsdCxQYXJraW5nQ2lyY2xlOnBiLFBhcmtpbmdDaXJjbGVPZmY6ZGIsUGFya2luZ01ldGVyOmZsdCxQYXJraW5nU3F1YXJlOkZ5LFBhcmtpbmdTcXVhcmVPZmY6TnksUGFydHlQb3BwZXI6bWx0LFBhdXNlOmdsdCxQYXVzZUNpcmNsZTpoYixQYXVzZU9jdGFnb246QXYsUGF3UHJpbnQ6Ymx0LFBjQ2FzZTp2bHQsUGVuOlZ2LFBlbkJveDpybyxQZW5MaW5lOnF2LFBlbk9mZjp5bHQsUGVuU3F1YXJlOnJvLFBlblRvb2w6eGx0LFBlbmNpbDpTbHQsUGVuY2lsTGluZTp3bHQsUGVuY2lsT2ZmOk1sdCxQZW5jaWxSdWxlcjp6bHQsUGVudGFnb246a2x0LFBlcmNlbnQ6Q2x0LFBlcmNlbnRDaXJjbGU6dWIsUGVyY2VudERpYW1vbmQ6JGIsUGVyY2VudFNxdWFyZTpSeSxQZXJzb25TdGFuZGluZzpfbHQsUGhpbGlwcGluZVBlc286VGx0LFBob25lOklsdCxQaG9uZUNhbGw6TGx0LFBob25lRm9yd2FyZGVkOiRsdCxQaG9uZUluY29taW5nOkFsdCxQaG9uZU1pc3NlZDpEbHQsUGhvbmVPZmY6RWx0LFBob25lT3V0Z29pbmc6UGx0LFBpOk5sdCxQaVNxdWFyZTpPeSxQaWFubzpGbHQsUGlja2F4ZTpPbHQsUGljdHVyZUluUGljdHVyZTpIbHQsUGljdHVyZUluUGljdHVyZTI6Umx0LFBpZUNoYXJ0OlZnLFBpZ2d5QmFuazpCbHQsUGlsY3JvdzpqbHQsUGlsY3Jvd0xlZnQ6cWx0LFBpbGNyb3dSaWdodDpWbHQsUGlsY3Jvd1NxdWFyZTpCeSxQaWxsOldsdCxQaWxsQm90dGxlOlVsdCxQaW46WWx0LFBpbk9mZjpHbHQsUGlwZXR0ZTpabHQsUGl6emE6WGx0LFBsYW5lOkpsdCxQbGFuZUxhbmRpbmc6S2x0LFBsYW5lVGFrZW9mZjpRbHQsUGxheTplY3QsUGxheUNpcmNsZTpmYixQbGF5U3F1YXJlOkh5LFBsdWc6YWN0LFBsdWcyOnRjdCxQbHVnWmFwOmp2LFBsdWdaYXAyOmp2LFBsdXM6aWN0LFBsdXNDaXJjbGU6bWIsUGx1c1NxdWFyZTpxeSxQb2NrZXQ6bmN0LFBvY2tldEtuaWZlOnJjdCxQb2RjYXN0OnNjdCxQb2ludGVyOmxjdCxQb2ludGVyT2ZmOm9jdCxQb3Bjb3JuOmNjdCxQb3BzaWNsZTpkY3QsUG91bmRTdGVybGluZzpwY3QsUG93ZXI6dWN0LFBvd2VyQ2lyY2xlOmdiLFBvd2VyT2ZmOmhjdCxQb3dlclNxdWFyZTpWeSxQcmVzZW50YXRpb246bWN0LFByaW50ZXI6YmN0LFByaW50ZXJDaGVjazpmY3QsUHJpbnRlclg6Z2N0LFByb2plY3Rvcjp2Y3QsUHJvcG9ydGlvbnM6eWN0LFB1enpsZTp4Y3QsUHlyYW1pZDp3Y3QsUXJDb2RlOk1jdCxRdW90ZTp6Y3QsUmFiYml0OmtjdCxSYWRhcjpTY3QsUmFkaWF0aW9uOkNjdCxSYWRpY2FsOl9jdCxSYWRpbzokY3QsUmFkaW9SZWNlaXZlcjpUY3QsUmFkaW9Ub3dlcjpMY3QsUmFkaXVzOkFjdCxSYWlsU3ltYm9sOkRjdCxSYWluYm93OkVjdCxSYXQ6UGN0LFJhdGlvOkljdCxSZWNlaXB0OlVjdCxSZWNlaXB0Q2VudDpOY3QsUmVjZWlwdEV1cm86RmN0LFJlY2VpcHRJbmRpYW5SdXBlZTpPY3QsUmVjZWlwdEphcGFuZXNlWWVuOlJjdCxSZWNlaXB0UG91bmRTdGVybGluZzpCY3QsUmVjZWlwdFJ1c3NpYW5SdWJsZTpIY3QsUmVjZWlwdFN3aXNzRnJhbmM6cWN0LFJlY2VpcHRUZXh0OlZjdCxSZWNlaXB0VHVya2lzaExpcmE6amN0LFJlY3RhbmdsZUNpcmNsZTpXY3QsUmVjdGFuZ2xlRWxsaXBzaXM6VXYsUmVjdGFuZ2xlR29nZ2xlczpZY3QsUmVjdGFuZ2xlSG9yaXpvbnRhbDpHY3QsUmVjdGFuZ2xlVmVydGljYWw6WmN0LFJlY3ljbGU6WGN0LFJlZG86SmN0LFJlZG8yOlFjdCxSZWRvRG90OktjdCxSZWZyZXNoQ2N3OnQ2dCxSZWZyZXNoQ2N3RG90OmU2dCxSZWZyZXNoQ3c6aTZ0LFJlZnJlc2hDd09mZjphNnQsUmVmcmlnZXJhdG9yOnI2dCxSZWdleDpzNnQsUmVtb3ZlRm9ybWF0dGluZzpuNnQsUmVwZWF0OmM2dCxSZXBlYXQxOmw2dCxSZXBlYXQyOm82dCxSZXBsYWNlOnA2dCxSZXBsYWNlQWxsOmQ2dCxSZXBseTp1NnQsUmVwbHlBbGw6aDZ0LFJld2luZDpmNnQsUmliYm9uOm02dCxSb2NrZXQ6ZzZ0LFJvY2tpbmdDaGFpcjpiNnQsUm9sbGVyQ29hc3Rlcjp2NnQsUm9zZTp5NnQsUm90YXRlM0Q6V3YsUm90YXRlM2Q6V3YsUm90YXRlQ2N3Ok02dCxSb3RhdGVDY3dLZXk6eDZ0LFJvdGF0ZUNjd1NxdWFyZTp3NnQsUm90YXRlQ3c6azZ0LFJvdGF0ZUN3U3F1YXJlOno2dCxSb3V0ZTpDNnQsUm91dGVPZmY6UzZ0LFJvdXRlcjpfNnQsUm93czpHdixSb3dzMjpHdixSb3dzMzpZdixSb3dzNDpUNnQsUnNzOkw2dCxSdWxlcjpENnQsUnVsZXJEaW1lbnNpb25MaW5lOiQ2dCxSdXNzaWFuUnVibGU6QTZ0LFNhaWxib2F0OlA2dCxTYWxhZDpFNnQsU2FuZHdpY2g6STZ0LFNhdGVsbGl0ZTpGNnQsU2F0ZWxsaXRlRGlzaDpONnQsU2F1ZGlSaXlhbDpPNnQsU2F2ZTpINnQsU2F2ZUFsbDpSNnQsU2F2ZU9mZjpCNnQsU2NhbGU6cTZ0LFNjYWxlM0Q6WnYsU2NhbGUzZDpadixTY2FsaW5nOlY2dCxTY2FuOlE2dCxTY2FuQmFyY29kZTpVNnQsU2NhbkV5ZTpqNnQsU2NhbkZhY2U6VzZ0LFNjYW5IZWFydDpHNnQsU2NhbkxpbmU6WTZ0LFNjYW5RckNvZGU6WjZ0LFNjYW5TZWFyY2g6WDZ0LFNjYW5UZXh0Oks2dCxTY2F0dGVyQ2hhcnQ6amcsU2Nob29sOko2dCxTY2hvb2wyOmR4LFNjaXNzb3JzOnQ1dCxTY2lzc29yc0xpbmVEYXNoZWQ6ZTV0LFNjaXNzb3JzU3F1YXJlOmp5LFNjaXNzb3JzU3F1YXJlRGFzaGVkQm90dG9tOm15LFNjb290ZXI6YTV0LFNjcmVlblNoYXJlOnI1dCxTY3JlZW5TaGFyZU9mZjppNXQsU2Nyb2xsOnM1dCxTY3JvbGxUZXh0Om41dCxTZWFyY2g6aDV0LFNlYXJjaEFsZXJ0Om81dCxTZWFyY2hDaGVjazpsNXQsU2VhcmNoQ29kZTpjNXQsU2VhcmNoU2xhc2g6ZDV0LFNlYXJjaFg6cDV0LFNlY3Rpb246dTV0LFNlbmQ6bTV0LFNlbmRIb3Jpem9uYWw6WHYsU2VuZEhvcml6b250YWw6WHYsU2VuZFRvQmFjazpmNXQsU2VwYXJhdG9ySG9yaXpvbnRhbDpiNXQsU2VwYXJhdG9yVmVydGljYWw6ZzV0LFNlcnZlcjp3NXQsU2VydmVyQ29nOnY1dCxTZXJ2ZXJDcmFzaDp5NXQsU2VydmVyT2ZmOng1dCxTZXR0aW5nczp6NXQsU2V0dGluZ3MyOk01dCxTaGFwZXM6azV0LFNoYXJlOkM1dCxTaGFyZTI6UzV0LFNoZWV0Ol81dCxTaGVsbDpUNXQsU2hpZWxkOk81dCxTaGllbGRBbGVydDpMNXQsU2hpZWxkQmFuOiQ1dCxTaGllbGRDaGVjazpBNXQsU2hpZWxkQ2xvc2U6UXYsU2hpZWxkRWxsaXBzaXM6RDV0LFNoaWVsZEhhbGY6RTV0LFNoaWVsZE1pbnVzOlA1dCxTaGllbGRPZmY6STV0LFNoaWVsZFBsdXM6TjV0LFNoaWVsZFF1ZXN0aW9uOkt2LFNoaWVsZFF1ZXN0aW9uTWFyazpLdixTaGllbGRVc2VyOkY1dCxTaGllbGRYOlF2LFNoaXA6QjV0LFNoaXBXaGVlbDpSNXQsU2hpcnQ6SDV0LFNob3BwaW5nQmFnOnE1dCxTaG9wcGluZ0Jhc2tldDpWNXQsU2hvcHBpbmdDYXJ0Omo1dCxTaG92ZWw6VTV0LFNob3dlckhlYWQ6VzV0LFNocmVkZGVyOkc1dCxTaHJpbXA6WTV0LFNocmluazpaNXQsU2hydWI6SzV0LFNodWZmbGU6WDV0LFNpZGViYXI6T3YsU2lkZWJhckNsb3NlOkl2LFNpZGViYXJPcGVuOkZ2LFNpZ21hOlE1dCxTaWdtYVNxdWFyZTpVeSxTaWduYWw6aTh0LFNpZ25hbEhpZ2g6SjV0LFNpZ25hbExvdzplOHQsU2lnbmFsTWVkaXVtOnQ4dCxTaWduYWxaZXJvOmE4dCxTaWduYXR1cmU6cjh0LFNpZ25wb3N0Om44dCxTaWducG9zdEJpZzpzOHQsU2lyZW46bzh0LFNraXBCYWNrOmw4dCxTa2lwRm9yd2FyZDpjOHQsU2t1bGw6ZDh0LFNsYWNrOnA4dCxTbGFzaDpoOHQsU2xhc2hTcXVhcmU6V3ksU2xpY2U6dTh0LFNsaWRlcnM6SnYsU2xpZGVyc0hvcml6b250YWw6Zjh0LFNsaWRlcnNWZXJ0aWNhbDpKdixTbWFydHBob25lOmI4dCxTbWFydHBob25lQ2hhcmdpbmc6bTh0LFNtYXJ0cGhvbmVOZmM6Zzh0LFNtaWxlOnk4dCxTbWlsZVBsdXM6djh0LFNuYWlsOng4dCxTbm93Zmxha2U6TTh0LFNvYXBEaXNwZW5zZXJEcm9wbGV0Onc4dCxTb2ZhOno4dCxTb2xhclBhbmVsOms4dCxTb3J0QXNjOk1nLFNvcnREZXNjOnlnLFNvdXA6Uzh0LFNwYWNlOkM4dCxTcGFkZTpfOHQsU3BhcmtsZTpUOHQsU3BhcmtsZXM6ZXksU3BlYWtlcjpMOHQsU3BlZWNoOiQ4dCxTcGVsbENoZWNrOkQ4dCxTcGVsbENoZWNrMjpBOHQsU3BsaW5lOlA4dCxTcGxpbmVQb2ludGVyOkU4dCxTcGxpdDpJOHQsU3BsaXRTcXVhcmVIb3Jpem9udGFsOkd5LFNwbGl0U3F1YXJlVmVydGljYWw6WXksU3Bvb2w6Tjh0LFNwb3RsaWdodDpGOHQsU3ByYXlDYW46Tzh0LFNwcm91dDpSOHQsU3F1YXJlOlg4dCxTcXVhcmVBY3Rpdml0eTpheSxTcXVhcmVBcnJvd0Rvd246cnksU3F1YXJlQXJyb3dEb3duTGVmdDp0eSxTcXVhcmVBcnJvd0Rvd25SaWdodDppeSxTcXVhcmVBcnJvd0xlZnQ6c3ksU3F1YXJlQXJyb3dPdXREb3duTGVmdDpueSxTcXVhcmVBcnJvd091dERvd25SaWdodDpseSxTcXVhcmVBcnJvd091dFVwTGVmdDpveSxTcXVhcmVBcnJvd091dFVwUmlnaHQ6Y3ksU3F1YXJlQXJyb3dSaWdodDpkeSxTcXVhcmVBcnJvd1VwOnV5LFNxdWFyZUFycm93VXBMZWZ0OnB5LFNxdWFyZUFycm93VXBSaWdodDpoeSxTcXVhcmVBc3RlcmlzazpmeSxTcXVhcmVCb3R0b21EYXNoZWRTY2lzc29yczpteSxTcXVhcmVDaGFydEdhbnR0Ok1sLFNxdWFyZUNoZWNrOmJ5LFNxdWFyZUNoZWNrQmlnOmd5LFNxdWFyZUNoZXZyb25Eb3duOnZ5LFNxdWFyZUNoZXZyb25MZWZ0Onl5LFNxdWFyZUNoZXZyb25SaWdodDp4eSxTcXVhcmVDaGV2cm9uVXA6d3ksU3F1YXJlQ29kZTpNeSxTcXVhcmVEYXNoZWQ6U3ksU3F1YXJlRGFzaGVkQm90dG9tOkg4dCxTcXVhcmVEYXNoZWRCb3R0b21Db2RlOkI4dCxTcXVhcmVEYXNoZWRLYW5iYW46enksU3F1YXJlRGFzaGVkTW91c2VQb2ludGVyOmt5LFNxdWFyZURhc2hlZFRvcFNvbGlkOnE4dCxTcXVhcmVEaXZpZGU6Q3ksU3F1YXJlRG90Ol95LFNxdWFyZUVxdWFsOlR5LFNxdWFyZUZ1bmN0aW9uOkx5LFNxdWFyZUdhbnR0Q2hhcnQ6TWwsU3F1YXJlS2FuYmFuOiR5LFNxdWFyZUxpYnJhcnk6QXksU3F1YXJlTTpEeSxTcXVhcmVNZW51OkV5LFNxdWFyZU1pbnVzOlB5LFNxdWFyZU1vdXNlUG9pbnRlcjpJeSxTcXVhcmVQYXJraW5nOkZ5LFNxdWFyZVBhcmtpbmdPZmY6TnksU3F1YXJlUGF1c2U6Vjh0LFNxdWFyZVBlbjpybyxTcXVhcmVQZXJjZW50OlJ5LFNxdWFyZVBpOk95LFNxdWFyZVBpbGNyb3c6QnksU3F1YXJlUGxheTpIeSxTcXVhcmVQbHVzOnF5LFNxdWFyZVBvd2VyOlZ5LFNxdWFyZVJhZGljYWw6VTh0LFNxdWFyZVJvdW5kQ29ybmVyOmo4dCxTcXVhcmVTY2lzc29yczpqeSxTcXVhcmVTaWdtYTpVeSxTcXVhcmVTbGFzaDpXeSxTcXVhcmVTcGxpdEhvcml6b250YWw6R3ksU3F1YXJlU3BsaXRWZXJ0aWNhbDpZeSxTcXVhcmVTcXVhcmU6Rzh0LFNxdWFyZVN0YWNrOlc4dCxTcXVhcmVTdGFyOlk4dCxTcXVhcmVTdG9wOlo4dCxTcXVhcmVUZXJtaW5hbDpaeSxTcXVhcmVVc2VyOkt5LFNxdWFyZVVzZXJSb3VuZDpYeSxTcXVhcmVYOlF5LFNxdWFyZXNFeGNsdWRlOks4dCxTcXVhcmVzSW50ZXJzZWN0OlE4dCxTcXVhcmVzU3VidHJhY3Q6Sjh0LFNxdWFyZXNVbml0ZTplZHQsU3F1aXJjbGU6YWR0LFNxdWlyY2xlRGFzaGVkOnRkdCxTcXVpcnJlbDppZHQsU3RhbXA6cmR0LFN0YXI6b2R0LFN0YXJIYWxmOnNkdCxTdGFyT2ZmOm5kdCxTdGFyczpleSxTdGVwQmFjazpsZHQsU3RlcEZvcndhcmQ6Y2R0LFN0ZXRob3Njb3BlOmRkdCxTdGlja2VyOnBkdCxTdGlja3lOb3RlOmhkdCxTdG9uZTp1ZHQsU3RvcENpcmNsZTp2YixTdG9yZTpmZHQsU3RyZXRjaEhvcml6b250YWw6bWR0LFN0cmV0Y2hWZXJ0aWNhbDpnZHQsU3RyaWtldGhyb3VnaDpiZHQsU3Vic2NyaXB0OnZkdCxTdWJ0aXRsZXM6QWcsU3VuOnpkdCxTdW5EaW06eWR0LFN1bk1lZGl1bTp4ZHQsU3VuTW9vbjp3ZHQsU3VuU25vdzpNZHQsU3VucmlzZTprZHQsU3Vuc2V0OlNkdCxTdXBlcnNjcmlwdDpDZHQsU3dhdGNoQm9vazpfZHQsU3dpc3NGcmFuYzpUZHQsU3dpdGNoQ2FtZXJhOkxkdCxTd29yZDokZHQsU3dvcmRzOkFkdCxTeXJpbmdlOkRkdCxUYWJsZTpCZHQsVGFibGUyOkVkdCxUYWJsZUNlbGxzTWVyZ2U6UGR0LFRhYmxlQ2VsbHNTcGxpdDpJZHQsVGFibGVDb2x1bW5zU3BsaXQ6TmR0LFRhYmxlQ29uZmlnOmJsLFRhYmxlT2ZDb250ZW50czpGZHQsVGFibGVQcm9wZXJ0aWVzOk9kdCxUYWJsZVJvd3NTcGxpdDpSZHQsVGFibGV0OkhkdCxUYWJsZXRTbWFydHBob25lOnFkdCxUYWJsZXRzOlZkdCxUYWc6amR0LFRhZ3M6VWR0LFRhbGx5MTpXZHQsVGFsbHkyOkdkdCxUYWxseTM6WWR0LFRhbGx5NDpaZHQsVGFsbHk1OlhkdCxUYW5nZW50OktkdCxUYXJnZXQ6UWR0LFRlbGVzY29wZTpKZHQsVGVudDp0N3QsVGVudFRyZWU6ZTd0LFRlcm1pbmFsOmE3dCxUZXJtaW5hbFNxdWFyZTpaeSxUZXN0VHViZTppN3QsVGVzdFR1YmUyOkp5LFRlc3RUdWJlRGlhZ29uYWw6SnksVGVzdFR1YmVzOnI3dCxUZXh0OnpsLFRleHRBbGlnbkNlbnRlcjpleCxUZXh0QWxpZ25FbmQ6dHgsVGV4dEFsaWduSnVzdGlmeTpheCxUZXh0QWxpZ25TdGFydDp6bCxUZXh0Q3Vyc29yOm43dCxUZXh0Q3Vyc29ySW5wdXQ6czd0LFRleHRJbml0aWFsOml4LFRleHRRdW90ZTpvN3QsVGV4dFNlYXJjaDpsN3QsVGV4dFNlbGVjdDpyeCxUZXh0U2VsZWN0aW9uOnJ4LFRleHRXcmFwOnN4LFRoZWF0ZXI6Yzd0LFRoZXJtb21ldGVyOmg3dCxUaGVybW9tZXRlclNub3dmbGFrZTpkN3QsVGhlcm1vbWV0ZXJTdW46cDd0LFRodW1ic0Rvd246dTd0LFRodW1ic1VwOmY3dCxUaWNrZXQ6dzd0LFRpY2tldENoZWNrOm03dCxUaWNrZXRNaW51czpnN3QsVGlja2V0UGVyY2VudDpiN3QsVGlja2V0UGx1czp2N3QsVGlja2V0U2xhc2g6eTd0LFRpY2tldFg6eDd0LFRpY2tldHM6azd0LFRpY2tldHNQbGFuZTpNN3QsVGltZXI6Qzd0LFRpbWVyT2ZmOno3dCxUaW1lclJlc2V0OlM3dCxUb2dnbGVMZWZ0Ol83dCxUb2dnbGVSaWdodDpUN3QsVG9pbGV0Okw3dCxUb29sQ2FzZTokN3QsVG9vbGJveDpBN3QsVG9ybmFkbzpEN3QsVG9ydXM6RTd0LFRvdWNocGFkOkk3dCxUb3VjaHBhZE9mZjpQN3QsVG93ZXJDb250cm9sOk43dCxUb3lCcmljazpGN3QsVHJhY3RvcjpPN3QsVHJhZmZpY0NvbmU6Ujd0LFRyYWluOm54LFRyYWluRnJvbnQ6SDd0LFRyYWluRnJvbnRUdW5uZWw6Qjd0LFRyYWluVHJhY2s6cTd0LFRyYW1Gcm9udDpueCxUcmFuc2dlbmRlcjpWN3QsVHJhc2g6VTd0LFRyYXNoMjpqN3QsVHJlZURlY2lkdW91czpXN3QsVHJlZVBhbG06b3gsVHJlZVBpbmU6Rzd0LFRyZWVzOlk3dCxUcmVsbG86Wjd0LFRyZW5kaW5nRG93bjpYN3QsVHJlbmRpbmdVcDpRN3QsVHJlbmRpbmdVcERvd246Szd0LFRyaWFuZ2xlOnRwdCxUcmlhbmdsZUFsZXJ0Omx4LFRyaWFuZ2xlRGFzaGVkOko3dCxUcmlhbmdsZVJpZ2h0OmVwdCxUcm9waHk6aXB0LFRydWNrOnJwdCxUcnVja0VsZWN0cmljOmFwdCxUdXJraXNoTGlyYTpzcHQsVHVybnRhYmxlOm5wdCxUdXJ0bGU6b3B0LFR2OmNwdCxUdjI6Y3gsVHZNaW5pbWFsOmN4LFR2TWluaW1hbFBsYXk6bHB0LFR3aXRjaDpkcHQsVHdpdHRlcjpwcHQsVHlwZTp1cHQsVHlwZU91dGxpbmU6aHB0LFVtYnJlbGxhOm1wdCxVbWJyZWxsYU9mZjpmcHQsVW5kZXJsaW5lOmdwdCxVbmRvOnlwdCxVbmRvMjpicHQsVW5kb0RvdDp2cHQsVW5mb2xkSG9yaXpvbnRhbDp4cHQsVW5mb2xkVmVydGljYWw6d3B0LFVuZ3JvdXA6TXB0LFVuaXZlcnNpdHk6ZHgsVW5saW5rOnpwdCxVbmxpbmsyOmtwdCxVbmxvY2s6a3YsVW5sb2NrS2V5aG9sZTp6dixVbnBsdWc6U3B0LFVwbG9hZDpDcHQsVXBsb2FkQ2xvdWQ6U2IsVXNiOl9wdCxVc2VyOkhwdCxVc2VyMjpneCxVc2VyQ2hlY2s6VHB0LFVzZXJDaGVjazI6cHgsVXNlckNpcmNsZTp4YixVc2VyQ2lyY2xlMjp5YixVc2VyQ29nOkxwdCxVc2VyQ29nMjpoeCxVc2VyS2V5OiRwdCxVc2VyTG9jazpBcHQsVXNlck1pbnVzOkRwdCxVc2VyTWludXMyOnV4LFVzZXJQZW46RXB0LFVzZXJQbHVzOlBwdCxVc2VyUGx1czI6ZngsVXNlclJvdW5kOmd4LFVzZXJSb3VuZENoZWNrOnB4LFVzZXJSb3VuZENvZzpoeCxVc2VyUm91bmRLZXk6SXB0LFVzZXJSb3VuZE1pbnVzOnV4LFVzZXJSb3VuZFBlbjpOcHQsVXNlclJvdW5kUGx1czpmeCxVc2VyUm91bmRTZWFyY2g6RnB0LFVzZXJSb3VuZFg6bXgsVXNlclNlYXJjaDpPcHQsVXNlclNxdWFyZTpLeSxVc2VyU3F1YXJlMjpYeSxVc2VyU3RhcjpScHQsVXNlclg6QnB0LFVzZXJYMjpteCxVc2VyczpxcHQsVXNlcnMyOmJ4LFVzZXJzUm91bmQ6YngsVXRlbnNpbHM6eXgsVXRlbnNpbHNDcm9zc2VkOnZ4LFV0aWxpdHlQb2xlOlZwdCxWYW46anB0LFZhcmlhYmxlOlVwdCxWYXVsdDpXcHQsVmVjdG9yU3F1YXJlOkdwdCxWZWdhbjpZcHQsVmVuZXRpYW5NYXNrOlpwdCxWZW51czpLcHQsVmVudXNBbmRNYXJzOlhwdCxWZXJpZmllZDpTZyxWaWJyYXRlOkpwdCxWaWJyYXRlT2ZmOlFwdCxWaWRlbzp0aHQsVmlkZW9PZmY6ZWh0LFZpZGVvdGFwZTphaHQsVmlldzppaHQsVm9pY2VtYWlsOnJodCxWb2xsZXliYWxsOnNodCxWb2x1bWU6cGh0LFZvbHVtZTE6bmh0LFZvbHVtZTI6b2h0LFZvbHVtZU9mZjpsaHQsVm9sdW1lWDpjaHQsVm90ZTpkaHQsV2FsbGV0OnVodCxXYWxsZXQyOnh4LFdhbGxldENhcmRzOmhodCxXYWxsZXRNaW5pbWFsOnh4LFdhbGxwYXBlcjpmaHQsV2FuZDptaHQsV2FuZDI6d3gsV2FuZFNwYXJrbGVzOnd4LFdhcmVob3VzZTpnaHQsV2FzaGluZ01hY2hpbmU6Ymh0LFdhdGNoOnZodCxXYXZlczpNaHQsV2F2ZXNBcnJvd0Rvd246eWh0LFdhdmVzQXJyb3dVcDp4aHQsV2F2ZXNMYWRkZXI6d2h0LFdheXBvaW50czp6aHQsV2ViY2FtOmtodCxXZWJob29rOkNodCxXZWJob29rT2ZmOlNodCxXZWlnaHQ6TGh0LFdlaWdodFRpbGRlOl9odCxXaGVhdDokaHQsV2hlYXRPZmY6VGh0LFdob2xlV29yZDpBaHQsV2lmaTpSaHQsV2lmaUNvZzpEaHQsV2lmaUhpZ2g6RWh0LFdpZmlMb3c6UGh0LFdpZmlPZmY6SWh0LFdpZmlQZW46Tmh0LFdpZmlTeW5jOkZodCxXaWZpWmVybzpPaHQsV2luZDpIaHQsV2luZEFycm93RG93bjpCaHQsV2luZTpxaHQsV2luZU9mZjpqaHQsV29ya2Zsb3c6Vmh0LFdvcm06VWh0LFdyYXBUZXh0OnN4LFdyZW5jaDpZaHQsWDpXaHQsWENpcmNsZTp3YixYT2N0YWdvbjpEdixYU3F1YXJlOlF5LFlvdXR1YmU6R2h0LFphcDpYaHQsWmFwT2ZmOlpodCxab29tSW46UWh0LFpvb21PdXQ6S2h0fSksSmh0PSh7aWNvbnM6dD17fSxuYW1lQXR0cjplPSJkYXRhLWx1Y2lkZSIsYXR0cnM6YT17fSxyb290Omk9ZG9jdW1lbnQsaW5UZW1wbGF0ZXM6cn09e30pPT57aWYoIU9iamVjdC52YWx1ZXModCkubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgUGxlYXNlIHByb3ZpZGUgYW4gaWNvbnMgb2JqZWN0LgpJZiB5b3Ugd2FudCB0byB1c2UgYWxsIHRoZSBpY29ucyB5b3UgY2FuIGltcG9ydCBpdCBsaWtlOgogXGBpbXBvcnQgeyBjcmVhdGVJY29ucywgaWNvbnMgfSBmcm9tICdsdWNpZGUnOwpsdWNpZGUuY3JlYXRlSWNvbnMoe2ljb25zfSk7XGBgKTtpZih0eXBlb2YgaT4idSIpdGhyb3cgbmV3IEVycm9yKCJgY3JlYXRlSWNvbnMoKWAgb25seSB3b3JrcyBpbiBhIGJyb3dzZXIgZW52aXJvbm1lbnQuIik7aWYoQXJyYXkuZnJvbShpLnF1ZXJ5U2VsZWN0b3JBbGwoYFske2V9XWApKS5mb3JFYWNoKG49Pm1aZShuLHtuYW1lQXR0cjplLGljb25zOnQsYXR0cnM6YX0pKSxyJiZBcnJheS5mcm9tKGkucXVlcnlTZWxlY3RvckFsbCgidGVtcGxhdGUiKSkuZm9yRWFjaChvPT5KaHQoe2ljb25zOnQsbmFtZUF0dHI6ZSxhdHRyczphLHJvb3Q6by5jb250ZW50LGluVGVtcGxhdGVzOnJ9KSksZT09PSJkYXRhLWx1Y2lkZSIpe2xldCBuPWkucXVlcnlTZWxlY3RvckFsbCgiW2ljb24tbmFtZV0iKTtuLmxlbmd0aD4wJiYoY29uc29sZS53YXJuKCJbTHVjaWRlXSBTb21lIGljb25zIHdlcmUgZm91bmQgd2l0aCB0aGUgbm93IGRlcHJlY2F0ZWQgaWNvbi1uYW1lIGF0dHJpYnV0ZS4gVGhlc2Ugd2lsbCBzdGlsbCBiZSByZXBsYWNlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGJ1dCB3aWxsIG5vIGxvbmdlciBiZSBzdXBwb3J0ZWQgaW4gdjEuMCBhbmQgeW91IHNob3VsZCBzd2l0Y2ggdG8gZGF0YS1sdWNpZGUiKSxBcnJheS5mcm9tKG4pLmZvckVhY2gobz0+bVplKG8se25hbWVBdHRyOiJpY29uLW5hbWUiLGljb25zOnQsYXR0cnM6YX0pKSl9fTt1LkFBcnJvd0Rvd249Z1plLHUuQUFycm93VXA9YlplLHUuQUxhcmdlU21hbGw9dlplLHUuQWNjZXNzaWJpbGl0eT15WmUsdS5BY3Rpdml0eT13WmUsdS5BY3Rpdml0eVNxdWFyZT1heSx1LkFpclZlbnQ9eFplLHUuQWlycGxheT1NWmUsdS5BbGFybUNoZWNrPW1nLHUuQWxhcm1DbG9jaz1rWmUsdS5BbGFybUNsb2NrQ2hlY2s9bWcsdS5BbGFybUNsb2NrTWludXM9Z2csdS5BbGFybUNsb2NrT2ZmPXpaZSx1LkFsYXJtQ2xvY2tQbHVzPWJnLHUuQWxhcm1NaW51cz1nZyx1LkFsYXJtUGx1cz1iZyx1LkFsYXJtU21va2U9U1plLHUuQWxidW09Q1plLHUuQWxlcnRDaXJjbGU9V2csdS5BbGVydE9jdGFnb249JHYsdS5BbGVydFRyaWFuZ2xlPWx4LHUuQWxpZ25DZW50ZXI9ZXgsdS5BbGlnbkNlbnRlckhvcml6b250YWw9X1plLHUuQWxpZ25DZW50ZXJWZXJ0aWNhbD1UWmUsdS5BbGlnbkVuZEhvcml6b250YWw9TFplLHUuQWxpZ25FbmRWZXJ0aWNhbD0kWmUsdS5BbGlnbkhvcml6b250YWxEaXN0cmlidXRlQ2VudGVyPUFaZSx1LkFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ9RFplLHUuQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZVN0YXJ0PUVaZSx1LkFsaWduSG9yaXpvbnRhbEp1c3RpZnlDZW50ZXI9UFplLHUuQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZD1JWmUsdS5BbGlnbkhvcml6b250YWxKdXN0aWZ5U3RhcnQ9TlplLHUuQWxpZ25Ib3Jpem9udGFsU3BhY2VBcm91bmQ9RlplLHUuQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuPU9aZSx1LkFsaWduSnVzdGlmeT1heCx1LkFsaWduTGVmdD16bCx1LkFsaWduUmlnaHQ9dHgsdS5BbGlnblN0YXJ0SG9yaXpvbnRhbD1SWmUsdS5BbGlnblN0YXJ0VmVydGljYWw9QlplLHUuQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI9SFplLHUuQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVFbmQ9cVplLHUuQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVTdGFydD1WWmUsdS5BbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcj1qWmUsdS5BbGlnblZlcnRpY2FsSnVzdGlmeUVuZD1VWmUsdS5BbGlnblZlcnRpY2FsSnVzdGlmeVN0YXJ0PVdaZSx1LkFsaWduVmVydGljYWxTcGFjZUFyb3VuZD1HWmUsdS5BbGlnblZlcnRpY2FsU3BhY2VCZXR3ZWVuPVlaZSx1LkFtYnVsYW5jZT1aWmUsdS5BbXBlcnNhbmQ9WFplLHUuQW1wZXJzYW5kcz1LWmUsdS5BbXBob3JhPVFaZSx1LkFuY2hvcj1KWmUsdS5BbmdyeT1lWGUsdS5Bbm5veWVkPXRYZSx1LkFudGVubmE9YVhlLHUuQW52aWw9aVhlLHUuQXBlcnR1cmU9clhlLHUuQXBwV2luZG93PW5YZSx1LkFwcFdpbmRvd01hYz1zWGUsdS5BcHBsZT1vWGUsdS5BcmNoaXZlPWRYZSx1LkFyY2hpdmVSZXN0b3JlPWxYZSx1LkFyY2hpdmVYPWNYZSx1LkFyZWFDaGFydD1EZyx1LkFybWNoYWlyPXBYZSx1LkFycm93QmlnRG93bj11WGUsdS5BcnJvd0JpZ0Rvd25EYXNoPWhYZSx1LkFycm93QmlnTGVmdD1tWGUsdS5BcnJvd0JpZ0xlZnREYXNoPWZYZSx1LkFycm93QmlnUmlnaHQ9YlhlLHUuQXJyb3dCaWdSaWdodERhc2g9Z1hlLHUuQXJyb3dCaWdVcD15WGUsdS5BcnJvd0JpZ1VwRGFzaD12WGUsdS5BcnJvd0Rvd249TFhlLHUuQXJyb3dEb3duMDE9eFhlLHUuQXJyb3dEb3duMTA9d1hlLHUuQXJyb3dEb3duQVo9dmcsdS5BcnJvd0Rvd25Bej12Zyx1LkFycm93RG93bkNpcmNsZT1HZyx1LkFycm93RG93bkZyb21MaW5lPU1YZSx1LkFycm93RG93bkxlZnQ9elhlLHUuQXJyb3dEb3duTGVmdEZyb21DaXJjbGU9WmcsdS5BcnJvd0Rvd25MZWZ0RnJvbVNxdWFyZT1ueSx1LkFycm93RG93bkxlZnRTcXVhcmU9dHksdS5BcnJvd0Rvd25OYXJyb3dXaWRlPWtYZSx1LkFycm93RG93blJpZ2h0PVNYZSx1LkFycm93RG93blJpZ2h0RnJvbUNpcmNsZT1YZyx1LkFycm93RG93blJpZ2h0RnJvbVNxdWFyZT1seSx1LkFycm93RG93blJpZ2h0U3F1YXJlPWl5LHUuQXJyb3dEb3duU3F1YXJlPXJ5LHUuQXJyb3dEb3duVG9Eb3Q9Q1hlLHUuQXJyb3dEb3duVG9MaW5lPV9YZSx1LkFycm93RG93blVwPVRYZSx1LkFycm93RG93bldpZGVOYXJyb3c9eWcsdS5BcnJvd0Rvd25aQT14Zyx1LkFycm93RG93blphPXhnLHUuQXJyb3dMZWZ0PUVYZSx1LkFycm93TGVmdENpcmNsZT1ZZyx1LkFycm93TGVmdEZyb21MaW5lPSRYZSx1LkFycm93TGVmdFJpZ2h0PUFYZSx1LkFycm93TGVmdFNxdWFyZT1zeSx1LkFycm93TGVmdFRvTGluZT1EWGUsdS5BcnJvd1JpZ2h0PUZYZSx1LkFycm93UmlnaHRDaXJjbGU9SmcsdS5BcnJvd1JpZ2h0RnJvbUxpbmU9UFhlLHUuQXJyb3dSaWdodExlZnQ9SVhlLHUuQXJyb3dSaWdodFNxdWFyZT1keSx1LkFycm93UmlnaHRUb0xpbmU9TlhlLHUuQXJyb3dVcD1HWGUsdS5BcnJvd1VwMDE9T1hlLHUuQXJyb3dVcDEwPVJYZSx1LkFycm93VXBBWj13Zyx1LkFycm93VXBBej13Zyx1LkFycm93VXBDaXJjbGU9ZWIsdS5BcnJvd1VwRG93bj1CWGUsdS5BcnJvd1VwRnJvbURvdD1IWGUsdS5BcnJvd1VwRnJvbUxpbmU9cVhlLHUuQXJyb3dVcExlZnQ9VlhlLHUuQXJyb3dVcExlZnRGcm9tQ2lyY2xlPUtnLHUuQXJyb3dVcExlZnRGcm9tU3F1YXJlPW95LHUuQXJyb3dVcExlZnRTcXVhcmU9cHksdS5BcnJvd1VwTmFycm93V2lkZT1NZyx1LkFycm93VXBSaWdodD1qWGUsdS5BcnJvd1VwUmlnaHRGcm9tQ2lyY2xlPVFnLHUuQXJyb3dVcFJpZ2h0RnJvbVNxdWFyZT1jeSx1LkFycm93VXBSaWdodFNxdWFyZT1oeSx1LkFycm93VXBTcXVhcmU9dXksdS5BcnJvd1VwVG9MaW5lPVVYZSx1LkFycm93VXBXaWRlTmFycm93PVdYZSx1LkFycm93VXBaQT16Zyx1LkFycm93VXBaYT16Zyx1LkFycm93c1VwRnJvbUxpbmU9WVhlLHUuQXN0ZXJpc2s9WlhlLHUuQXN0ZXJpc2tTcXVhcmU9ZnksdS5BdFNpZ249WFhlLHUuQXRvbT1LWGUsdS5BdWRpb0xpbmVzPVFYZSx1LkF1ZGlvV2F2ZWZvcm09SlhlLHUuQXdhcmQ9ZUtlLHUuQXhlPXRLZSx1LkF4aXMzRD1rZyx1LkF4aXMzZD1rZyx1LkJhYnk9aUtlLHUuQmFja3BhY2s9YUtlLHUuQmFkZ2U9eUtlLHUuQmFkZ2VBbGVydD1yS2UsdS5CYWRnZUNlbnQ9c0tlLHUuQmFkZ2VDaGVjaz1TZyx1LkJhZGdlRG9sbGFyU2lnbj1vS2UsdS5CYWRnZUV1cm89bEtlLHUuQmFkZ2VIZWxwPUNnLHUuQmFkZ2VJbmRpYW5SdXBlZT1uS2UsdS5CYWRnZUluZm89Y0tlLHUuQmFkZ2VKYXBhbmVzZVllbj1kS2UsdS5CYWRnZU1pbnVzPXBLZSx1LkJhZGdlUGVyY2VudD1oS2UsdS5CYWRnZVBsdXM9dUtlLHUuQmFkZ2VQb3VuZFN0ZXJsaW5nPWZLZSx1LkJhZGdlUXVlc3Rpb25NYXJrPUNnLHUuQmFkZ2VSdXNzaWFuUnVibGU9bUtlLHUuQmFkZ2VTd2lzc0ZyYW5jPWdLZSx1LkJhZGdlVHVya2lzaExpcmE9YktlLHUuQmFkZ2VYPXZLZSx1LkJhZ2dhZ2VDbGFpbT14S2UsdS5CYWxsb29uPXdLZSx1LkJhbj1NS2UsdS5CYW5hbmE9ektlLHUuQmFuZGFnZT1rS2UsdS5CYW5rbm90ZT1US2UsdS5CYW5rbm90ZUFycm93RG93bj1TS2UsdS5CYW5rbm90ZUFycm93VXA9Q0tlLHUuQmFua25vdGVYPV9LZSx1LkJhckNoYXJ0PUJnLHUuQmFyQ2hhcnQyPUhnLHUuQmFyQ2hhcnQzPU9nLHUuQmFyQ2hhcnQ0PUZnLHUuQmFyQ2hhcnRCaWc9SWcsdS5CYXJDaGFydEhvcml6b250YWw9TmcsdS5CYXJDaGFydEhvcml6b250YWxCaWc9RWcsdS5CYXJjb2RlPUxLZSx1LkJhcnJlbD0kS2UsdS5CYXNlbGluZT1BS2UsdS5CYXRoPURLZSx1LkJhdHRlcnk9UktlLHUuQmF0dGVyeUNoYXJnaW5nPUVLZSx1LkJhdHRlcnlGdWxsPVBLZSx1LkJhdHRlcnlMb3c9SUtlLHUuQmF0dGVyeU1lZGl1bT1OS2UsdS5CYXR0ZXJ5UGx1cz1GS2UsdS5CYXR0ZXJ5V2FybmluZz1PS2UsdS5CZWFrZXI9QktlLHUuQmVhbj1xS2UsdS5CZWFuT2ZmPUhLZSx1LkJlZD1VS2UsdS5CZWREb3VibGU9VktlLHUuQmVkU2luZ2xlPWpLZSx1LkJlZWY9V0tlLHUuQmVlcj1ZS2UsdS5CZWVyT2ZmPUdLZSx1LkJlbGw9dFFlLHUuQmVsbERvdD1aS2UsdS5CZWxsRWxlY3RyaWM9WEtlLHUuQmVsbE1pbnVzPUtLZSx1LkJlbGxPZmY9UUtlLHUuQmVsbFBsdXM9SktlLHUuQmVsbFJpbmc9ZVFlLHUuQmV0d2Vlbkhvcml6b25hbEVuZD1fZyx1LkJldHdlZW5Ib3Jpem9uYWxTdGFydD1UZyx1LkJldHdlZW5Ib3Jpem9udGFsRW5kPV9nLHUuQmV0d2Vlbkhvcml6b250YWxTdGFydD1UZyx1LkJldHdlZW5WZXJ0aWNhbEVuZD1hUWUsdS5CZXR3ZWVuVmVydGljYWxTdGFydD1pUWUsdS5CaWNlcHNGbGV4ZWQ9clFlLHUuQmlrZT1zUWUsdS5CaW5hcnk9blFlLHUuQmlub2N1bGFycz1vUWUsdS5CaW9oYXphcmQ9bFFlLHUuQmlyZD1jUWUsdS5CaXJkaG91c2U9ZFFlLHUuQml0Y29pbj1wUWUsdS5CbGVuZD1oUWUsdS5CbGluZHM9dVFlLHUuQmxvY2tzPW1RZSx1LkJsdWV0b290aD15UWUsdS5CbHVldG9vdGhDb25uZWN0ZWQ9ZlFlLHUuQmx1ZXRvb3RoT2ZmPWdRZSx1LkJsdWV0b290aFNlYXJjaGluZz1iUWUsdS5Cb2xkPXZRZSx1LkJvbHQ9d1FlLHUuQm9tYj14UWUsdS5Cb25lPU1RZSx1LkJvb2s9R1FlLHUuQm9va0E9elFlLHUuQm9va0FsZXJ0PWtRZSx1LkJvb2tBdWRpbz1DUWUsdS5Cb29rQ2hlY2s9U1FlLHUuQm9va0NvcHk9X1FlLHUuQm9va0Rhc2hlZD1MZyx1LkJvb2tEb3duPVRRZSx1LkJvb2tIZWFkcGhvbmVzPUxRZSx1LkJvb2tIZWFydD0kUWUsdS5Cb29rSW1hZ2U9QVFlLHUuQm9va0tleT1EUWUsdS5Cb29rTG9jaz1FUWUsdS5Cb29rTWFya2VkPVBRZSx1LkJvb2tNaW51cz1JUWUsdS5Cb29rT3Blbj1PUWUsdS5Cb29rT3BlbkNoZWNrPU5RZSx1LkJvb2tPcGVuVGV4dD1GUWUsdS5Cb29rUGx1cz1SUWUsdS5Cb29rU2VhcmNoPUJRZSx1LkJvb2tUZW1wbGF0ZT1MZyx1LkJvb2tUZXh0PUhRZSx1LkJvb2tUeXBlPXFRZSx1LkJvb2tVcD1qUWUsdS5Cb29rVXAyPVZRZSx1LkJvb2tVc2VyPVVRZSx1LkJvb2tYPVdRZSx1LkJvb2ttYXJrPVFRZSx1LkJvb2ttYXJrQ2hlY2s9WVFlLHUuQm9va21hcmtNaW51cz1aUWUsdS5Cb29rbWFya1BsdXM9WFFlLHUuQm9va21hcmtYPUtRZSx1LkJvb21Cb3g9SlFlLHUuQm90PXRKZSx1LkJvdE1lc3NhZ2VTcXVhcmU9ZUplLHUuQm90T2ZmPWFKZSx1LkJvdHRsZVdpbmU9aUplLHUuQm93QXJyb3c9ckplLHUuQm94PXNKZSx1LkJveFNlbGVjdD1TeSx1LkJveGVzPW5KZSx1LkJyYWNlcz0kZyx1LkJyYWNrZXRzPW9KZSx1LkJyYWluPWRKZSx1LkJyYWluQ2lyY3VpdD1sSmUsdS5CcmFpbkNvZz1jSmUsdS5Ccmlja1dhbGw9ZkplLHUuQnJpY2tXYWxsRmlyZT1wSmUsdS5Ccmlja1dhbGxTaGllbGQ9aEplLHUuQnJpZWZjYXNlPWJKZSx1LkJyaWVmY2FzZUJ1c2luZXNzPXVKZSx1LkJyaWVmY2FzZUNvbnZleW9yQmVsdD1tSmUsdS5CcmllZmNhc2VNZWRpY2FsPWdKZSx1LkJyaW5nVG9Gcm9udD12SmUsdS5CcnVzaD14SmUsdS5CcnVzaENsZWFuaW5nPXlKZSx1LkJ1YmJsZXM9d0plLHUuQnVnPWtKZSx1LkJ1Z09mZj1NSmUsdS5CdWdQbGF5PXpKZSx1LkJ1aWxkaW5nPUNKZSx1LkJ1aWxkaW5nMj1TSmUsdS5CdXM9VEplLHUuQnVzRnJvbnQ9X0plLHUuQ2FibGU9JEplLHUuQ2FibGVDYXI9TEplLHUuQ2FrZT1ESmUsdS5DYWtlU2xpY2U9QUplLHUuQ2FsY3VsYXRvcj1FSmUsdS5DYWxlbmRhcj1lZXQsdS5DYWxlbmRhcjE9UEplLHUuQ2FsZW5kYXJBcnJvd0Rvd249SUplLHUuQ2FsZW5kYXJBcnJvd1VwPU5KZSx1LkNhbGVuZGFyQ2hlY2s9T0plLHUuQ2FsZW5kYXJDaGVjazI9RkplLHUuQ2FsZW5kYXJDbG9jaz1SSmUsdS5DYWxlbmRhckNvZz1CSmUsdS5DYWxlbmRhckRheXM9SEplLHUuQ2FsZW5kYXJGb2xkPXFKZSx1LkNhbGVuZGFySGVhcnQ9VkplLHUuQ2FsZW5kYXJNaW51cz1VSmUsdS5DYWxlbmRhck1pbnVzMj1qSmUsdS5DYWxlbmRhck9mZj1XSmUsdS5DYWxlbmRhclBsdXM9WUplLHUuQ2FsZW5kYXJQbHVzMj1HSmUsdS5DYWxlbmRhclJhbmdlPVpKZSx1LkNhbGVuZGFyU2VhcmNoPVhKZSx1LkNhbGVuZGFyU3luYz1LSmUsdS5DYWxlbmRhclg9SkplLHUuQ2FsZW5kYXJYMj1RSmUsdS5DYWxlbmRhcnM9dGV0LHUuQ2FtZXJhPWlldCx1LkNhbWVyYU9mZj1hZXQsdS5DYW5kbGVzdGlja0NoYXJ0PVBnLHUuQ2FuZHk9bmV0LHUuQ2FuZHlDYW5lPXJldCx1LkNhbmR5T2ZmPXNldCx1LkNhbm5hYmlzPWNldCx1LkNhbm5hYmlzT2ZmPW9ldCx1LkNhcHRpb25zPUFnLHUuQ2FwdGlvbnNPZmY9ZGV0LHUuQ2FyPXVldCx1LkNhckZyb250PXBldCx1LkNhclRheGlGcm9udD1oZXQsdS5DYXJhdmFuPWZldCx1LkNhcmRTaW09bWV0LHUuQ2Fycm90PWdldCx1LkNhc2VMb3dlcj1iZXQsdS5DYXNlU2Vuc2l0aXZlPXZldCx1LkNhc2VVcHBlcj15ZXQsdS5DYXNzZXR0ZVRhcGU9eGV0LHUuQ2FzdD13ZXQsdS5DYXN0bGU9TWV0LHUuQ2F0PXpldCx1LkNjdHY9a2V0LHUuQ2hhcnRBcmVhPURnLHUuQ2hhcnRCYXI9TmcsdS5DaGFydEJhckJpZz1FZyx1LkNoYXJ0QmFyRGVjcmVhc2luZz1DZXQsdS5DaGFydEJhckluY3JlYXNpbmc9X2V0LHUuQ2hhcnRCYXJTdGFja2VkPVRldCx1LkNoYXJ0Q2FuZGxlc3RpY2s9UGcsdS5DaGFydENvbHVtbj1PZyx1LkNoYXJ0Q29sdW1uQmlnPUlnLHUuQ2hhcnRDb2x1bW5EZWNyZWFzaW5nPUxldCx1LkNoYXJ0Q29sdW1uSW5jcmVhc2luZz1GZyx1LkNoYXJ0Q29sdW1uU3RhY2tlZD0kZXQsdS5DaGFydEdhbnR0PUFldCx1LkNoYXJ0TGluZT1SZyx1LkNoYXJ0TmV0d29yaz1EZXQsdS5DaGFydE5vQXhlc0NvbHVtbj1IZyx1LkNoYXJ0Tm9BeGVzQ29sdW1uRGVjcmVhc2luZz1FZXQsdS5DaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc9QmcsdS5DaGFydE5vQXhlc0NvbWJpbmVkPVBldCx1LkNoYXJ0Tm9BeGVzR2FudHQ9cWcsdS5DaGFydFBpZT1WZyx1LkNoYXJ0U2NhdHRlcj1qZyx1LkNoYXJ0U3BsaW5lPUlldCx1LkNoZWNrPUJldCx1LkNoZWNrQ2hlY2s9RmV0LHUuQ2hlY2tDaXJjbGU9dGIsdS5DaGVja0NpcmNsZTI9YWIsdS5DaGVja0xpbmU9TmV0LHUuQ2hlY2tTcXVhcmU9Z3ksdS5DaGVja1NxdWFyZTI9YnksdS5DaGVmSGF0PU9ldCx1LkNoZXJyeT1SZXQsdS5DaGVzc0Jpc2hvcD1IZXQsdS5DaGVzc0tpbmc9cWV0LHUuQ2hlc3NLbmlnaHQ9VWV0LHUuQ2hlc3NQYXduPVZldCx1LkNoZXNzUXVlZW49amV0LHUuQ2hlc3NSb29rPVdldCx1LkNoZXZyb25Eb3duPUdldCx1LkNoZXZyb25Eb3duQ2lyY2xlPWliLHUuQ2hldnJvbkRvd25TcXVhcmU9dnksdS5DaGV2cm9uRmlyc3Q9WWV0LHUuQ2hldnJvbkxhc3Q9WmV0LHUuQ2hldnJvbkxlZnQ9WGV0LHUuQ2hldnJvbkxlZnRDaXJjbGU9cmIsdS5DaGV2cm9uTGVmdFNxdWFyZT15eSx1LkNoZXZyb25SaWdodD1LZXQsdS5DaGV2cm9uUmlnaHRDaXJjbGU9c2IsdS5DaGV2cm9uUmlnaHRTcXVhcmU9eHksdS5DaGV2cm9uVXA9UWV0LHUuQ2hldnJvblVwQ2lyY2xlPW5iLHUuQ2hldnJvblVwU3F1YXJlPXd5LHUuQ2hldnJvbnNEb3duPWV0dCx1LkNoZXZyb25zRG93blVwPUpldCx1LkNoZXZyb25zTGVmdD1pdHQsdS5DaGV2cm9uc0xlZnRSaWdodD1hdHQsdS5DaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzPXR0dCx1LkNoZXZyb25zUmlnaHQ9c3R0LHUuQ2hldnJvbnNSaWdodExlZnQ9cnR0LHUuQ2hldnJvbnNVcD1udHQsdS5DaGV2cm9uc1VwRG93bj1vdHQsdS5DaHJvbWU9VWcsdS5DaHJvbWl1bT1VZyx1LkNodXJjaD1jdHQsdS5DaWdhcmV0dGU9ZHR0LHUuQ2lnYXJldHRlT2ZmPWx0dCx1LkNpcmNsZT1TdHQsdS5DaXJjbGVBbGVydD1XZyx1LkNpcmNsZUFycm93RG93bj1HZyx1LkNpcmNsZUFycm93TGVmdD1ZZyx1LkNpcmNsZUFycm93T3V0RG93bkxlZnQ9WmcsdS5DaXJjbGVBcnJvd091dERvd25SaWdodD1YZyx1LkNpcmNsZUFycm93T3V0VXBMZWZ0PUtnLHUuQ2lyY2xlQXJyb3dPdXRVcFJpZ2h0PVFnLHUuQ2lyY2xlQXJyb3dSaWdodD1KZyx1LkNpcmNsZUFycm93VXA9ZWIsdS5DaXJjbGVDaGVjaz1hYix1LkNpcmNsZUNoZWNrQmlnPXRiLHUuQ2lyY2xlQ2hldnJvbkRvd249aWIsdS5DaXJjbGVDaGV2cm9uTGVmdD1yYix1LkNpcmNsZUNoZXZyb25SaWdodD1zYix1LkNpcmNsZUNoZXZyb25VcD1uYix1LkNpcmNsZURhc2hlZD1wdHQsdS5DaXJjbGVEaXZpZGU9b2IsdS5DaXJjbGVEb2xsYXJTaWduPWh0dCx1LkNpcmNsZURvdD1mdHQsdS5DaXJjbGVEb3REYXNoZWQ9dXR0LHUuQ2lyY2xlRWxsaXBzaXM9bXR0LHUuQ2lyY2xlRXF1YWw9Z3R0LHUuQ2lyY2xlRmFkaW5nQXJyb3dVcD1idHQsdS5DaXJjbGVGYWRpbmdQbHVzPXZ0dCx1LkNpcmNsZUdhdWdlPWxiLHUuQ2lyY2xlSGVscD1nbCx1LkNpcmNsZU1pbnVzPWNiLHUuQ2lyY2xlT2ZmPXl0dCx1LkNpcmNsZVBhcmtpbmc9cGIsdS5DaXJjbGVQYXJraW5nT2ZmPWRiLHUuQ2lyY2xlUGF1c2U9aGIsdS5DaXJjbGVQZXJjZW50PXViLHUuQ2lyY2xlUGlsZT14dHQsdS5DaXJjbGVQbGF5PWZiLHUuQ2lyY2xlUGx1cz1tYix1LkNpcmNsZVBvdW5kU3Rlcmxpbmc9d3R0LHUuQ2lyY2xlUG93ZXI9Z2IsdS5DaXJjbGVRdWVzdGlvbk1hcms9Z2wsdS5DaXJjbGVTbGFzaD1NdHQsdS5DaXJjbGVTbGFzaDI9YmIsdS5DaXJjbGVTbGFzaGVkPWJiLHUuQ2lyY2xlU21hbGw9enR0LHUuQ2lyY2xlU3Rhcj1rdHQsdS5DaXJjbGVTdG9wPXZiLHUuQ2lyY2xlVXNlcj14Yix1LkNpcmNsZVVzZXJSb3VuZD15Yix1LkNpcmNsZVg9d2IsdS5DaXJjdWl0Qm9hcmQ9Q3R0LHUuQ2l0cnVzPV90dCx1LkNsYXBwZXJib2FyZD1UdHQsdS5DbGlwYm9hcmQ9UnR0LHUuQ2xpcGJvYXJkQ2hlY2s9THR0LHUuQ2xpcGJvYXJkQ2xvY2s9JHR0LHUuQ2xpcGJvYXJkQ29weT1BdHQsdS5DbGlwYm9hcmRFZGl0PXpiLHUuQ2xpcGJvYXJkTGlzdD1EdHQsdS5DbGlwYm9hcmRNaW51cz1FdHQsdS5DbGlwYm9hcmRQYXN0ZT1QdHQsdS5DbGlwYm9hcmRQZW49emIsdS5DbGlwYm9hcmRQZW5MaW5lPU1iLHUuQ2xpcGJvYXJkUGx1cz1JdHQsdS5DbGlwYm9hcmRTaWduYXR1cmU9TWIsdS5DbGlwYm9hcmRUeXBlPU50dCx1LkNsaXBib2FyZFg9RnR0LHUuQ2xvY2s9aTF0LHUuQ2xvY2sxPU90dCx1LkNsb2NrMTA9QnR0LHUuQ2xvY2sxMT1IdHQsdS5DbG9jazEyPXF0dCx1LkNsb2NrMj1WdHQsdS5DbG9jazM9anR0LHUuQ2xvY2s0PVV0dCx1LkNsb2NrNT1XdHQsdS5DbG9jazY9R3R0LHUuQ2xvY2s3PVl0dCx1LkNsb2NrOD1adHQsdS5DbG9jazk9WHR0LHUuQ2xvY2tBbGVydD1RdHQsdS5DbG9ja0Fycm93RG93bj1LdHQsdS5DbG9ja0Fycm93VXA9SnR0LHUuQ2xvY2tDaGVjaz1lMXQsdS5DbG9ja0ZhZGluZz10MXQsdS5DbG9ja1BsdXM9YTF0LHUuQ2xvc2VkQ2FwdGlvbj1yMXQsdS5DbG91ZD1NMXQsdS5DbG91ZEFsZXJ0PXMxdCx1LkNsb3VkQmFja3VwPW4xdCx1LkNsb3VkQ2hlY2s9bzF0LHUuQ2xvdWRDb2c9bDF0LHUuQ2xvdWREb3dubG9hZD1rYix1LkNsb3VkRHJpenpsZT1jMXQsdS5DbG91ZEZvZz1kMXQsdS5DbG91ZEhhaWw9cDF0LHUuQ2xvdWRMaWdodG5pbmc9dTF0LHUuQ2xvdWRNb29uPWYxdCx1LkNsb3VkTW9vblJhaW49aDF0LHUuQ2xvdWRPZmY9bTF0LHUuQ2xvdWRSYWluPWIxdCx1LkNsb3VkUmFpbldpbmQ9ZzF0LHUuQ2xvdWRTbm93PXYxdCx1LkNsb3VkU3VuPXgxdCx1LkNsb3VkU3VuUmFpbj15MXQsdS5DbG91ZFN5bmM9dzF0LHUuQ2xvdWRVcGxvYWQ9U2IsdS5DbG91ZHk9ejF0LHUuQ2xvdmVyPWsxdCx1LkNsdWI9UzF0LHUuQ29kZT1DMXQsdS5Db2RlMj1DYix1LkNvZGVTcXVhcmU9TXksdS5Db2RlWG1sPUNiLHUuQ29kZXBlbj1fMXQsdS5Db2Rlc2FuZGJveD1UMXQsdS5Db2ZmZWU9TDF0LHUuQ29nPSQxdCx1LkNvaW5zPUExdCx1LkNvbHVtbnM9X2IsdS5Db2x1bW5zMj1fYix1LkNvbHVtbnMzPVRiLHUuQ29sdW1uczNDb2c9YmwsdS5Db2x1bW5zND1EMXQsdS5Db2x1bW5zU2V0dGluZ3M9YmwsdS5Db21iaW5lPUUxdCx1LkNvbW1hbmQ9UDF0LHUuQ29tcGFzcz1JMXQsdS5Db21wb25lbnQ9TjF0LHUuQ29tcHV0ZXI9RjF0LHUuQ29uY2llcmdlQmVsbD1PMXQsdS5Db25lPVIxdCx1LkNvbnN0cnVjdGlvbj1CMXQsdS5Db250YWN0PUgxdCx1LkNvbnRhY3QyPUxiLHUuQ29udGFjdFJvdW5kPUxiLHUuQ29udGFpbmVyPXExdCx1LkNvbnRyYXN0PWoxdCx1LkNvb2tpZT1WMXQsdS5Db29raW5nUG90PVUxdCx1LkNvcHk9SzF0LHUuQ29weUNoZWNrPVcxdCx1LkNvcHlNaW51cz1HMXQsdS5Db3B5UGx1cz1ZMXQsdS5Db3B5U2xhc2g9WjF0LHUuQ29weVg9WDF0LHUuQ29weWxlZnQ9UTF0LHUuQ29weXJpZ2h0PUoxdCx1LkNvcm5lckRvd25MZWZ0PWUydCx1LkNvcm5lckRvd25SaWdodD10MnQsdS5Db3JuZXJMZWZ0RG93bj1hMnQsdS5Db3JuZXJMZWZ0VXA9aTJ0LHUuQ29ybmVyUmlnaHREb3duPXIydCx1LkNvcm5lclJpZ2h0VXA9czJ0LHUuQ29ybmVyVXBMZWZ0PW4ydCx1LkNvcm5lclVwUmlnaHQ9bzJ0LHUuQ3B1PWwydCx1LkNyZWF0aXZlQ29tbW9ucz1jMnQsdS5DcmVkaXRDYXJkPWQydCx1LkNyb2lzc2FudD1wMnQsdS5Dcm9wPWgydCx1LkNyb3NzPXUydCx1LkNyb3NzaGFpcj1mMnQsdS5Dcm93bj1tMnQsdS5DdWJvaWQ9ZzJ0LHUuQ3VwU29kYT1iMnQsdS5DdXJseUJyYWNlcz0kZyx1LkN1cnJlbmN5PXkydCx1LkN5bGluZGVyPXYydCx1LkRhbT13MnQsdS5EYXRhYmFzZT1rMnQsdS5EYXRhYmFzZUJhY2t1cD14MnQsdS5EYXRhYmFzZVNlYXJjaD1NMnQsdS5EYXRhYmFzZVphcD16MnQsdS5EZWNpbWFsc0Fycm93TGVmdD1TMnQsdS5EZWNpbWFsc0Fycm93UmlnaHQ9QzJ0LHUuRGVsZXRlPV8ydCx1LkRlc3NlcnQ9VDJ0LHUuRGlhbWV0ZXI9TDJ0LHUuRGlhbW9uZD1EMnQsdS5EaWFtb25kTWludXM9JDJ0LHUuRGlhbW9uZFBlcmNlbnQ9JGIsdS5EaWFtb25kUGx1cz1BMnQsdS5EaWNlMT1FMnQsdS5EaWNlMj1QMnQsdS5EaWNlMz1JMnQsdS5EaWNlND1OMnQsdS5EaWNlNT1GMnQsdS5EaWNlNj1PMnQsdS5EaWNlcz1SMnQsdS5EaWZmPUIydCx1LkRpc2M9ajJ0LHUuRGlzYzI9SDJ0LHUuRGlzYzM9cTJ0LHUuRGlzY0FsYnVtPVYydCx1LkRpdmlkZT1VMnQsdS5EaXZpZGVDaXJjbGU9b2IsdS5EaXZpZGVTcXVhcmU9Q3ksdS5EbmE9RzJ0LHUuRG5hT2ZmPVcydCx1LkRvY2s9WDJ0LHUuRG9nPVkydCx1LkRvbGxhclNpZ249WjJ0LHUuRG9udXQ9SzJ0LHUuRG9vckNsb3NlZD1KMnQsdS5Eb29yQ2xvc2VkTG9ja2VkPVEydCx1LkRvb3JPcGVuPWVhdCx1LkRvdD10YXQsdS5Eb3RTcXVhcmU9X3ksdS5Eb3dubG9hZD1hYXQsdS5Eb3dubG9hZENsb3VkPWtiLHUuRHJhZnRpbmdDb21wYXNzPWlhdCx1LkRyYW1hPXNhdCx1LkRyaWJiYmxlPXJhdCx1LkRyaWxsPW5hdCx1LkRyb25lPW9hdCx1LkRyb3BsZXQ9Y2F0LHUuRHJvcGxldE9mZj1sYXQsdS5Ecm9wbGV0cz1kYXQsdS5EcnVtPXBhdCx1LkRydW1zdGljaz1oYXQsdS5EdW1iYmVsbD11YXQsdS5FYXI9Z2F0LHUuRWFyT2ZmPWZhdCx1LkVhcnRoPUFiLHUuRWFydGhMb2NrPW1hdCx1LkVjbGlwc2U9YmF0LHUuRWRpdD1ybyx1LkVkaXQyPVZ2LHUuRWRpdDM9cXYsdS5FZ2c9eGF0LHUuRWdnRnJpZWQ9dmF0LHUuRWdnT2ZmPXlhdCx1LkVsbGlwc2lzPUViLHUuRWxsaXBzaXNWZXJ0aWNhbD1EYix1LkVxdWFsPXphdCx1LkVxdWFsQXBwcm94aW1hdGVseT13YXQsdS5FcXVhbE5vdD1NYXQsdS5FcXVhbFNxdWFyZT1UeSx1LkVyYXNlcj1TYXQsdS5FdGhlcm5ldFBvcnQ9a2F0LHUuRXVybz1DYXQsdS5FdkNoYXJnZXI9X2F0LHUuRXhwYW5kPVRhdCx1LkV4dGVybmFsTGluaz1MYXQsdS5FeWU9QWF0LHUuRXllQ2xvc2VkPSRhdCx1LkV5ZU9mZj1EYXQsdS5GYWNlYm9vaz1FYXQsdS5GYWN0b3J5PVBhdCx1LkZhbj1JYXQsdS5GYXN0Rm9yd2FyZD1OYXQsdS5GZWF0aGVyPUZhdCx1LkZlbmNlPU9hdCx1LkZlcnJpc1doZWVsPVJhdCx1LkZpZ21hPUJhdCx1LkZpbGU9bWl0LHUuRmlsZUFyY2hpdmU9SGF0LHUuRmlsZUF1ZGlvPXZsLHUuRmlsZUF1ZGlvMj12bCx1LkZpbGVBeGlzM0Q9UGIsdS5GaWxlQXhpczNkPVBiLHUuRmlsZUJhZGdlPUliLHUuRmlsZUJhZGdlMj1JYix1LkZpbGVCYXJDaGFydD1PYix1LkZpbGVCYXJDaGFydDI9UmIsdS5GaWxlQm94PXFhdCx1LkZpbGVCcmFjZXM9RmIsdS5GaWxlQnJhY2VzQ29ybmVyPU5iLHUuRmlsZUNoYXJ0Q29sdW1uPVJiLHUuRmlsZUNoYXJ0Q29sdW1uSW5jcmVhc2luZz1PYix1LkZpbGVDaGFydExpbmU9QmIsdS5GaWxlQ2hhcnRQaWU9SGIsdS5GaWxlQ2hlY2s9amF0LHUuRmlsZUNoZWNrMj1xYix1LkZpbGVDaGVja0Nvcm5lcj1xYix1LkZpbGVDbG9jaz1WYXQsdS5GaWxlQ29kZT1VYXQsdS5GaWxlQ29kZTI9VmIsdS5GaWxlQ29kZUNvcm5lcj1WYix1LkZpbGVDb2c9amIsdS5GaWxlQ29nMj1qYix1LkZpbGVEaWZmPVdhdCx1LkZpbGVEaWdpdD1HYXQsdS5GaWxlRG93bj1ZYXQsdS5GaWxlRWRpdD1YYix1LkZpbGVFeGNsYW1hdGlvblBvaW50PVViLHUuRmlsZUhlYWRwaG9uZT12bCx1LkZpbGVIZWFydD1aYXQsdS5GaWxlSW1hZ2U9WGF0LHUuRmlsZUlucHV0PUthdCx1LkZpbGVKc29uPUZiLHUuRmlsZUpzb24yPU5iLHUuRmlsZUtleT1XYix1LkZpbGVLZXkyPVdiLHUuRmlsZUxpbmVDaGFydD1CYix1LkZpbGVMb2NrPUdiLHUuRmlsZUxvY2syPUdiLHUuRmlsZU1pbnVzPVFhdCx1LkZpbGVNaW51czI9WWIsdS5GaWxlTWludXNDb3JuZXI9WWIsdS5GaWxlTXVzaWM9SmF0LHUuRmlsZU91dHB1dD1laXQsdS5GaWxlUGVuPVhiLHUuRmlsZVBlbkxpbmU9WmIsdS5GaWxlUGllQ2hhcnQ9SGIsdS5GaWxlUGxheT1LYix1LkZpbGVQbHVzPXRpdCx1LkZpbGVQbHVzMj1RYix1LkZpbGVQbHVzQ29ybmVyPVFiLHUuRmlsZVF1ZXN0aW9uPUpiLHUuRmlsZVF1ZXN0aW9uTWFyaz1KYix1LkZpbGVTY2FuPWFpdCx1LkZpbGVTZWFyY2g9aWl0LHUuRmlsZVNlYXJjaDI9ZXYsdS5GaWxlU2VhcmNoQ29ybmVyPWV2LHUuRmlsZVNpZ25hbD10dix1LkZpbGVTaWduYXR1cmU9WmIsdS5GaWxlU2xpZGVycz1yaXQsdS5GaWxlU3ByZWFkc2hlZXQ9c2l0LHUuRmlsZVN0YWNrPW5pdCx1LkZpbGVTeW1saW5rPW9pdCx1LkZpbGVUZXJtaW5hbD1saXQsdS5GaWxlVGV4dD1jaXQsdS5GaWxlVHlwZT1kaXQsdS5GaWxlVHlwZTI9YXYsdS5GaWxlVHlwZUNvcm5lcj1hdix1LkZpbGVVcD1waXQsdS5GaWxlVXNlcj1oaXQsdS5GaWxlVmlkZW89S2IsdS5GaWxlVmlkZW8yPWl2LHUuRmlsZVZpZGVvQ2FtZXJhPWl2LHUuRmlsZVZvbHVtZT11aXQsdS5GaWxlVm9sdW1lMj10dix1LkZpbGVXYXJuaW5nPVViLHUuRmlsZVg9Zml0LHUuRmlsZVgyPXJ2LHUuRmlsZVhDb3JuZXI9cnYsdS5GaWxlcz1naXQsdS5GaWxtPWJpdCx1LkZpbHRlcj1jdix1LkZpbHRlclg9bHYsdS5GaW5nZXJwcmludD1zdix1LkZpbmdlcnByaW50UGF0dGVybj1zdix1LkZpcmVFeHRpbmd1aXNoZXI9dml0LHUuRmlzaD13aXQsdS5GaXNoT2ZmPXlpdCx1LkZpc2hTeW1ib2w9eGl0LHUuRmlzaGluZ0hvb2s9TWl0LHUuRmxhZz1DaXQsdS5GbGFnT2ZmPXppdCx1LkZsYWdUcmlhbmdsZUxlZnQ9a2l0LHUuRmxhZ1RyaWFuZ2xlUmlnaHQ9U2l0LHUuRmxhbWU9VGl0LHUuRmxhbWVLaW5kbGluZz1faXQsdS5GbGFzaGxpZ2h0PSRpdCx1LkZsYXNobGlnaHRPZmY9TGl0LHUuRmxhc2tDb25pY2FsPURpdCx1LkZsYXNrQ29uaWNhbE9mZj1BaXQsdS5GbGFza1JvdW5kPUVpdCx1LkZsaXBIb3Jpem9udGFsPUlpdCx1LkZsaXBIb3Jpem9udGFsMj1QaXQsdS5GbGlwVmVydGljYWw9Rml0LHUuRmxpcFZlcnRpY2FsMj1OaXQsdS5GbG93ZXI9Uml0LHUuRmxvd2VyMj1PaXQsdS5Gb2N1cz1CaXQsdS5Gb2xkSG9yaXpvbnRhbD1IaXQsdS5Gb2xkVmVydGljYWw9cWl0LHUuRm9sZGVyPWdydCx1LkZvbGRlckFyY2hpdmU9aml0LHUuRm9sZGVyQ2hlY2s9Vml0LHUuRm9sZGVyQ2xvY2s9VWl0LHUuRm9sZGVyQ2xvc2VkPVdpdCx1LkZvbGRlckNvZGU9R2l0LHUuRm9sZGVyQ29nPW52LHUuRm9sZGVyQ29nMj1udix1LkZvbGRlckRvdD1ZaXQsdS5Gb2xkZXJEb3duPVppdCx1LkZvbGRlckVkaXQ9b3YsdS5Gb2xkZXJHaXQ9S2l0LHUuRm9sZGVyR2l0Mj1YaXQsdS5Gb2xkZXJIZWFydD1RaXQsdS5Gb2xkZXJJbnB1dD1KaXQsdS5Gb2xkZXJLYW5iYW49ZXJ0LHUuRm9sZGVyS2V5PXRydCx1LkZvbGRlckxvY2s9YXJ0LHUuRm9sZGVyTWludXM9aXJ0LHUuRm9sZGVyT3Blbj1zcnQsdS5Gb2xkZXJPcGVuRG90PXJydCx1LkZvbGRlck91dHB1dD1ucnQsdS5Gb2xkZXJQZW49b3YsdS5Gb2xkZXJQbHVzPW9ydCx1LkZvbGRlclJvb3Q9bHJ0LHUuRm9sZGVyU2VhcmNoPWRydCx1LkZvbGRlclNlYXJjaDI9Y3J0LHUuRm9sZGVyU3ltbGluaz1wcnQsdS5Gb2xkZXJTeW5jPWhydCx1LkZvbGRlclRyZWU9dXJ0LHUuRm9sZGVyVXA9ZnJ0LHUuRm9sZGVyWD1tcnQsdS5Gb2xkZXJzPWJydCx1LkZvb3RwcmludHM9eXJ0LHUuRm9ya0tuaWZlPXl4LHUuRm9ya0tuaWZlQ3Jvc3NlZD12eCx1LkZvcmtsaWZ0PXZydCx1LkZvcm09eHJ0LHUuRm9ybUlucHV0PVV2LHUuRm9yd2FyZD13cnQsdS5GcmFtZT1NcnQsdS5GcmFtZXI9enJ0LHUuRnJvd249a3J0LHUuRnVlbD1TcnQsdS5GdWxsc2NyZWVuPUNydCx1LkZ1bmN0aW9uU3F1YXJlPUx5LHUuRnVubmVsPWN2LHUuRnVubmVsUGx1cz1fcnQsdS5GdW5uZWxYPWx2LHUuR2FsbGVyeUhvcml6b250YWw9THJ0LHUuR2FsbGVyeUhvcml6b250YWxFbmQ9VHJ0LHUuR2FsbGVyeVRodW1ibmFpbHM9JHJ0LHUuR2FsbGVyeVZlcnRpY2FsPURydCx1LkdhbGxlcnlWZXJ0aWNhbEVuZD1BcnQsdS5HYW1lcGFkPUlydCx1LkdhbWVwYWQyPUVydCx1LkdhbWVwYWREaXJlY3Rpb25hbD1QcnQsdS5HYW50dENoYXJ0PXFnLHUuR2FudHRDaGFydFNxdWFyZT1NbCx1LkdhdWdlPU5ydCx1LkdhdWdlQ2lyY2xlPWxiLHUuR2F2ZWw9RnJ0LHUuR2VtPU9ydCx1Lkdlb3JnaWFuTGFyaT1ScnQsdS5HaG9zdD1CcnQsdS5HaWZ0PVZydCx1LkdpdEJyYW5jaD1qcnQsdS5HaXRCcmFuY2hNaW51cz1IcnQsdS5HaXRCcmFuY2hQbHVzPXFydCx1LkdpdENvbW1pdD1kdix1LkdpdENvbW1pdEhvcml6b250YWw9ZHYsdS5HaXRDb21taXRWZXJ0aWNhbD1VcnQsdS5HaXRDb21wYXJlPUdydCx1LkdpdENvbXBhcmVBcnJvd3M9V3J0LHUuR2l0Rm9yaz1ZcnQsdS5HaXRHcmFwaD1acnQsdS5HaXRNZXJnZT1YcnQsdS5HaXRQdWxsUmVxdWVzdD1hc3QsdS5HaXRQdWxsUmVxdWVzdEFycm93PUtydCx1LkdpdFB1bGxSZXF1ZXN0Q2xvc2VkPVFydCx1LkdpdFB1bGxSZXF1ZXN0Q3JlYXRlPWVzdCx1LkdpdFB1bGxSZXF1ZXN0Q3JlYXRlQXJyb3c9SnJ0LHUuR2l0UHVsbFJlcXVlc3REcmFmdD10c3QsdS5HaXRodWI9aXN0LHUuR2l0bGFiPXJzdCx1LkdsYXNzV2F0ZXI9c3N0LHUuR2xhc3Nlcz1uc3QsdS5HbG9iZT1sc3QsdS5HbG9iZTI9QWIsdS5HbG9iZUxvY2s9b3N0LHUuR2xvYmVYPWNzdCx1LkdvYWw9ZHN0LHUuR3B1PXBzdCx1LkdyYWI9bXYsdS5HcmFkdWF0aW9uQ2FwPWhzdCx1LkdyYXBlPXVzdCx1LkdyaWQ9eWwsdS5HcmlkMlgyPWZ2LHUuR3JpZDJYMkNoZWNrPXB2LHUuR3JpZDJYMlBsdXM9aHYsdS5HcmlkMlgyWD11dix1LkdyaWQyeDI9ZnYsdS5HcmlkMngyQ2hlY2s9cHYsdS5HcmlkMngyUGx1cz1odix1LkdyaWQyeDJYPXV2LHUuR3JpZDNYMz15bCx1LkdyaWQzeDI9ZnN0LHUuR3JpZDN4Mz15bCx1LkdyaXA9YnN0LHUuR3JpcEhvcml6b250YWw9bXN0LHUuR3JpcFZlcnRpY2FsPWdzdCx1Lkdyb3VwPXZzdCx1Lkd1aXRhcj15c3QsdS5IYW09eHN0LHUuSGFtYnVyZ2VyPXdzdCx1LkhhbW1lcj1Nc3QsdS5IYW5kPVRzdCx1LkhhbmRDb2lucz16c3QsdS5IYW5kRmlzdD1rc3QsdS5IYW5kR3JhYj1tdix1LkhhbmRIZWFydD1Tc3QsdS5IYW5kSGVscGluZz1ndix1LkhhbmRNZXRhbD1Dc3QsdS5IYW5kUGxhdHRlcj1fc3QsdS5IYW5kYmFnPUxzdCx1LkhhbmRzaGFrZT0kc3QsdS5IYXJkRHJpdmU9RXN0LHUuSGFyZERyaXZlRG93bmxvYWQ9QXN0LHUuSGFyZERyaXZlVXBsb2FkPURzdCx1LkhhcmRIYXQ9UHN0LHUuSGFzaD1Jc3QsdS5IYXRHbGFzc2VzPU5zdCx1LkhhemU9RnN0LHUuSGQ9T3N0LHUuSGRtaVBvcnQ9UnN0LHUuSGVhZGluZz1Xc3QsdS5IZWFkaW5nMT1Cc3QsdS5IZWFkaW5nMj1Ic3QsdS5IZWFkaW5nMz1xc3QsdS5IZWFkaW5nND1Wc3QsdS5IZWFkaW5nNT1qc3QsdS5IZWFkaW5nNj1Vc3QsdS5IZWFkcGhvbmVPZmY9R3N0LHUuSGVhZHBob25lcz1Zc3QsdS5IZWFkc2V0PVhzdCx1LkhlYXJ0PWFudCx1LkhlYXJ0Q3JhY2s9WnN0LHUuSGVhcnRIYW5kc2hha2U9S3N0LHUuSGVhcnRNaW51cz1Rc3QsdS5IZWFydE9mZj1Kc3QsdS5IZWFydFBsdXM9dG50LHUuSGVhcnRQdWxzZT1lbnQsdS5IZWF0ZXI9aW50LHUuSGVsaWNvcHRlcj1ybnQsdS5IZWxwQ2lyY2xlPWdsLHUuSGVscGluZ0hhbmQ9Z3YsdS5IZXhhZ29uPXNudCx1LkhpZ2hsaWdodGVyPW5udCx1Lkhpc3Rvcnk9b250LHUuSG9tZT1idix1LkhvcD1sbnQsdS5Ib3BPZmY9Y250LHUuSG9zcGl0YWw9ZG50LHUuSG90ZWw9cG50LHUuSG91cmdsYXNzPWhudCx1LkhvdXNlPWJ2LHUuSG91c2VIZWFydD11bnQsdS5Ib3VzZVBsdWc9Zm50LHUuSG91c2VQbHVzPW1udCx1LkhvdXNlV2lmaT1nbnQsdS5JY2VDcmVhbT15dix1LkljZUNyZWFtMj12dix1LkljZUNyZWFtQm93bD12dix1LkljZUNyZWFtQ29uZT15dix1LklkQ2FyZD12bnQsdS5JZENhcmRMYW55YXJkPWJudCx1LkltYWdlPVNudCx1LkltYWdlRG93bj15bnQsdS5JbWFnZU1pbnVzPXhudCx1LkltYWdlT2ZmPXdudCx1LkltYWdlUGxheT1NbnQsdS5JbWFnZVBsdXM9em50LHUuSW1hZ2VVcD1rbnQsdS5JbWFnZVVwc2NhbGU9Q250LHUuSW1hZ2VzPV9udCx1LkltcG9ydD1UbnQsdS5JbmJveD1MbnQsdS5JbmRlbnQ9d2wsdS5JbmRlbnREZWNyZWFzZT14bCx1LkluZGVudEluY3JlYXNlPXdsLHUuSW5kaWFuUnVwZWU9JG50LHUuSW5maW5pdHk9QW50LHUuSW5mbz1EbnQsdS5JbnNwZWN0PUl5LHUuSW5zcGVjdGlvblBhbmVsPUVudCx1Lkluc3RhZ3JhbT1QbnQsdS5JdGFsaWM9Tm50LHUuSXRlcmF0aW9uQ2N3PUludCx1Lkl0ZXJhdGlvbkN3PUZudCx1LkphcGFuZXNlWWVuPU9udCx1LkpveXN0aWNrPVJudCx1LkthbmJhbj1CbnQsdS5LYW5iYW5TcXVhcmU9JHksdS5LYW5iYW5TcXVhcmVEYXNoZWQ9enksdS5LYXlhaz1IbnQsdS5LZXk9am50LHUuS2V5Um91bmQ9cW50LHUuS2V5U3F1YXJlPVZudCx1LktleWJvYXJkPUdudCx1LktleWJvYXJkTXVzaWM9VW50LHUuS2V5Ym9hcmRPZmY9V250LHUuTGFtcD1KbnQsdS5MYW1wQ2VpbGluZz1ZbnQsdS5MYW1wRGVzaz1abnQsdS5MYW1wRmxvb3I9WG50LHUuTGFtcFdhbGxEb3duPUtudCx1LkxhbXBXYWxsVXA9UW50LHUuTGFuZFBsb3Q9dG90LHUuTGFuZG1hcms9ZW90LHUuTGFuZ3VhZ2VzPWFvdCx1LkxhcHRvcD1yb3QsdS5MYXB0b3AyPXh2LHUuTGFwdG9wTWluaW1hbD14dix1LkxhcHRvcE1pbmltYWxDaGVjaz1pb3QsdS5MYXNzbz1ub3QsdS5MYXNzb1NlbGVjdD1zb3QsdS5MYXVnaD1vb3QsdS5MYXllcnM9d3YsdS5MYXllcnMyPWxvdCx1LkxheWVyczM9d3YsdS5MYXllcnNQbHVzPWNvdCx1LkxheW91dD1Idix1LkxheW91dERhc2hib2FyZD1kb3QsdS5MYXlvdXRHcmlkPXBvdCx1LkxheW91dExpc3Q9aG90LHUuTGF5b3V0UGFuZWxMZWZ0PXVvdCx1LkxheW91dFBhbmVsVG9wPWZvdCx1LkxheW91dFRlbXBsYXRlPW1vdCx1LkxlYWY9Z290LHUuTGVhZnlHcmVlbj1ib3QsdS5MZWN0ZXJuPXZvdCx1LkxldHRlclRleHQ9aXgsdS5MaWJyYXJ5PXhvdCx1LkxpYnJhcnlCaWc9eW90LHUuTGlicmFyeVNxdWFyZT1BeSx1LkxpZmVCdW95PXdvdCx1LkxpZ2F0dXJlPU1vdCx1LkxpZ2h0YnVsYj1rb3QsdS5MaWdodGJ1bGJPZmY9em90LHUuTGluZUNoYXJ0PVJnLHUuTGluZVNxdWlnZ2xlPVNvdCx1Lkxpbms9VG90LHUuTGluazI9X290LHUuTGluazJPZmY9Q290LHUuTGlua2VkaW49TG90LHUuTGlzdD1Zb3QsdS5MaXN0Q2hlY2s9JG90LHUuTGlzdENoZWNrcz1Bb3QsdS5MaXN0Q2hldnJvbnNEb3duVXA9RG90LHUuTGlzdENoZXZyb25zVXBEb3duPUVvdCx1Lkxpc3RDb2xsYXBzZT1Qb3QsdS5MaXN0RW5kPUlvdCx1Lkxpc3RGaWx0ZXI9Rm90LHUuTGlzdEZpbHRlclBsdXM9Tm90LHUuTGlzdEluZGVudERlY3JlYXNlPXhsLHUuTGlzdEluZGVudEluY3JlYXNlPXdsLHUuTGlzdE1pbnVzPU9vdCx1Lkxpc3RNdXNpYz1Sb3QsdS5MaXN0T3JkZXJlZD1Cb3QsdS5MaXN0UGx1cz1Ib3QsdS5MaXN0UmVzdGFydD1xb3QsdS5MaXN0U3RhcnQ9Vm90LHUuTGlzdFRvZG89am90LHUuTGlzdFRyZWU9VW90LHUuTGlzdFZpZGVvPVdvdCx1Lkxpc3RYPUdvdCx1LkxvYWRlcj1ab3QsdS5Mb2FkZXIyPU12LHUuTG9hZGVyQ2lyY2xlPU12LHUuTG9hZGVyUGlud2hlZWw9WG90LHUuTG9jYXRlPUpvdCx1LkxvY2F0ZUZpeGVkPUtvdCx1LkxvY2F0ZU9mZj1Rb3QsdS5Mb2NhdGlvbkVkaXQ9Q3YsdS5Mb2NrPXQwdCx1LkxvY2tLZXlob2xlPWUwdCx1LkxvY2tLZXlob2xlT3Blbj16dix1LkxvY2tPcGVuPWt2LHUuTG9nSW49YTB0LHUuTG9nT3V0PXIwdCx1LkxvZ3M9aTB0LHUuTG9sbGlwb3A9czB0LHUuTHVnZ2FnZT1uMHQsdS5NU3F1YXJlPUR5LHUuTWFnbmV0PW8wdCx1Lk1haWw9ZjB0LHUuTWFpbENoZWNrPWwwdCx1Lk1haWxNaW51cz1jMHQsdS5NYWlsT3Blbj1kMHQsdS5NYWlsUGx1cz1wMHQsdS5NYWlsUXVlc3Rpb249U3YsdS5NYWlsUXVlc3Rpb25NYXJrPVN2LHUuTWFpbFNlYXJjaD1oMHQsdS5NYWlsV2FybmluZz11MHQsdS5NYWlsWD1tMHQsdS5NYWlsYm94PWcwdCx1Lk1haWxzPWIwdCx1Lk1hcD1EMHQsdS5NYXBNaW51cz12MHQsdS5NYXBQaW49TDB0LHUuTWFwUGluQ2hlY2s9eDB0LHUuTWFwUGluQ2hlY2tJbnNpZGU9eTB0LHUuTWFwUGluSG91c2U9dzB0LHUuTWFwUGluTWludXM9ejB0LHUuTWFwUGluTWludXNJbnNpZGU9TTB0LHUuTWFwUGluT2ZmPWswdCx1Lk1hcFBpblBlbj1Ddix1Lk1hcFBpblBsdXM9QzB0LHUuTWFwUGluUGx1c0luc2lkZT1TMHQsdS5NYXBQaW5YPVQwdCx1Lk1hcFBpblhJbnNpZGU9XzB0LHUuTWFwUGlubmVkPSQwdCx1Lk1hcFBsdXM9QTB0LHUuTWFycz1QMHQsdS5NYXJzU3Ryb2tlPUUwdCx1Lk1hcnRpbmk9STB0LHUuTWF4aW1pemU9RjB0LHUuTWF4aW1pemUyPU4wdCx1Lk1lZGFsPU8wdCx1Lk1lZ2FwaG9uZT1CMHQsdS5NZWdhcGhvbmVPZmY9UjB0LHUuTWVoPUgwdCx1Lk1lbW9yeVN0aWNrPVYwdCx1Lk1lbnU9cTB0LHUuTWVudVNxdWFyZT1FeSx1Lk1lcmdlPWowdCx1Lk1lc3NhZ2VDaXJjbGU9ZTR0LHUuTWVzc2FnZUNpcmNsZUNvZGU9VTB0LHUuTWVzc2FnZUNpcmNsZURhc2hlZD1XMHQsdS5NZXNzYWdlQ2lyY2xlSGVhcnQ9RzB0LHUuTWVzc2FnZUNpcmNsZU1vcmU9WTB0LHUuTWVzc2FnZUNpcmNsZU9mZj1aMHQsdS5NZXNzYWdlQ2lyY2xlUGx1cz1YMHQsdS5NZXNzYWdlQ2lyY2xlUXVlc3Rpb249X3YsdS5NZXNzYWdlQ2lyY2xlUXVlc3Rpb25NYXJrPV92LHUuTWVzc2FnZUNpcmNsZVJlcGx5PVEwdCx1Lk1lc3NhZ2VDaXJjbGVXYXJuaW5nPUswdCx1Lk1lc3NhZ2VDaXJjbGVYPUowdCx1Lk1lc3NhZ2VTcXVhcmU9ZzR0LHUuTWVzc2FnZVNxdWFyZUNvZGU9dDR0LHUuTWVzc2FnZVNxdWFyZURhc2hlZD1hNHQsdS5NZXNzYWdlU3F1YXJlRGlmZj1pNHQsdS5NZXNzYWdlU3F1YXJlRG90PXI0dCx1Lk1lc3NhZ2VTcXVhcmVIZWFydD1zNHQsdS5NZXNzYWdlU3F1YXJlTG9jaz1uNHQsdS5NZXNzYWdlU3F1YXJlTW9yZT1vNHQsdS5NZXNzYWdlU3F1YXJlT2ZmPWw0dCx1Lk1lc3NhZ2VTcXVhcmVQbHVzPWM0dCx1Lk1lc3NhZ2VTcXVhcmVRdW90ZT1kNHQsdS5NZXNzYWdlU3F1YXJlUmVwbHk9cDR0LHUuTWVzc2FnZVNxdWFyZVNoYXJlPWg0dCx1Lk1lc3NhZ2VTcXVhcmVUZXh0PXU0dCx1Lk1lc3NhZ2VTcXVhcmVXYXJuaW5nPWY0dCx1Lk1lc3NhZ2VTcXVhcmVYPW00dCx1Lk1lc3NhZ2VzU3F1YXJlPWI0dCx1Lk1pYz15NHQsdS5NaWMyPVR2LHUuTWljT2ZmPXY0dCx1Lk1pY1ZvY2FsPVR2LHUuTWljcm9jaGlwPXg0dCx1Lk1pY3Jvc2NvcGU9dzR0LHUuTWljcm93YXZlPU00dCx1Lk1pbGVzdG9uZT16NHQsdS5NaWxrPUM0dCx1Lk1pbGtPZmY9azR0LHUuTWluaW1pemU9XzR0LHUuTWluaW1pemUyPVM0dCx1Lk1pbnVzPVQ0dCx1Lk1pbnVzQ2lyY2xlPWNiLHUuTWludXNTcXVhcmU9UHksdS5Nb25pdG9yPXE0dCx1Lk1vbml0b3JDaGVjaz1MNHQsdS5Nb25pdG9yQ2xvdWQ9JDR0LHUuTW9uaXRvckNvZz1BNHQsdS5Nb25pdG9yRG90PUQ0dCx1Lk1vbml0b3JEb3duPUU0dCx1Lk1vbml0b3JPZmY9UDR0LHUuTW9uaXRvclBhdXNlPUk0dCx1Lk1vbml0b3JQbGF5PU40dCx1Lk1vbml0b3JTbWFydHBob25lPUY0dCx1Lk1vbml0b3JTcGVha2VyPU80dCx1Lk1vbml0b3JTdG9wPVI0dCx1Lk1vbml0b3JVcD1CNHQsdS5Nb25pdG9yWD1INHQsdS5Nb29uPWo0dCx1Lk1vb25TdGFyPVY0dCx1Lk1vcmVIb3Jpem9udGFsPUViLHUuTW9yZVZlcnRpY2FsPURiLHUuTW90b3JiaWtlPVU0dCx1Lk1vdW50YWluPUc0dCx1Lk1vdW50YWluU25vdz1XNHQsdS5Nb3VzZT1lM3QsdS5Nb3VzZU9mZj1ZNHQsdS5Nb3VzZVBvaW50ZXI9SjR0LHUuTW91c2VQb2ludGVyMj1YNHQsdS5Nb3VzZVBvaW50ZXIyT2ZmPVo0dCx1Lk1vdXNlUG9pbnRlckJhbj1LNHQsdS5Nb3VzZVBvaW50ZXJDbGljaz1RNHQsdS5Nb3VzZVBvaW50ZXJTcXVhcmVEYXNoZWQ9a3ksdS5Nb3ZlPXUzdCx1Lk1vdmUzRD1Mdix1Lk1vdmUzZD1Mdix1Lk1vdmVEaWFnb25hbD1hM3QsdS5Nb3ZlRGlhZ29uYWwyPXQzdCx1Lk1vdmVEb3duPXMzdCx1Lk1vdmVEb3duTGVmdD1pM3QsdS5Nb3ZlRG93blJpZ2h0PXIzdCx1Lk1vdmVIb3Jpem9udGFsPW4zdCx1Lk1vdmVMZWZ0PW8zdCx1Lk1vdmVSaWdodD1sM3QsdS5Nb3ZlVXA9cDN0LHUuTW92ZVVwTGVmdD1jM3QsdS5Nb3ZlVXBSaWdodD1kM3QsdS5Nb3ZlVmVydGljYWw9aDN0LHUuTXVzaWM9YjN0LHUuTXVzaWMyPWYzdCx1Lk11c2ljMz1tM3QsdS5NdXNpYzQ9ZzN0LHUuTmF2aWdhdGlvbj14M3QsdS5OYXZpZ2F0aW9uMj15M3QsdS5OYXZpZ2F0aW9uMk9mZj12M3QsdS5OYXZpZ2F0aW9uT2ZmPXczdCx1Lk5ldHdvcms9TTN0LHUuTmV3c3BhcGVyPXozdCx1Lk5mYz1rM3QsdS5Ob25CaW5hcnk9UzN0LHUuTm90ZWJvb2s9TDN0LHUuTm90ZWJvb2tQZW49QzN0LHUuTm90ZWJvb2tUYWJzPV8zdCx1Lk5vdGVib29rVGV4dD1UM3QsdS5Ob3RlcGFkVGV4dD1BM3QsdS5Ob3RlcGFkVGV4dERhc2hlZD0kM3QsdS5OdXQ9RDN0LHUuTnV0T2ZmPUUzdCx1Lk9jdGFnb249STN0LHUuT2N0YWdvbkFsZXJ0PSR2LHUuT2N0YWdvbk1pbnVzPVAzdCx1Lk9jdGFnb25QYXVzZT1Bdix1Lk9jdGFnb25YPUR2LHUuT21lZ2E9TjN0LHUuT3B0aW9uPU8zdCx1Lk9yYml0PUYzdCx1Lk9yaWdhbWk9UjN0LHUuT3V0ZGVudD14bCx1LlBhY2thZ2U9RzN0LHUuUGFja2FnZTI9QjN0LHUuUGFja2FnZUNoZWNrPUgzdCx1LlBhY2thZ2VNaW51cz1xM3QsdS5QYWNrYWdlT3Blbj1WM3QsdS5QYWNrYWdlUGx1cz1qM3QsdS5QYWNrYWdlU2VhcmNoPVUzdCx1LlBhY2thZ2VYPVczdCx1LlBhaW50QnVja2V0PVozdCx1LlBhaW50Um9sbGVyPVkzdCx1LlBhaW50YnJ1c2g9WDN0LHUuUGFpbnRicnVzaDI9RXYsdS5QYWludGJydXNoVmVydGljYWw9RXYsdS5QYWxldHRlPUszdCx1LlBhbG10cmVlPW94LHUuUGFuZGE9UTN0LHUuUGFuZWxCb3R0b209dGx0LHUuUGFuZWxCb3R0b21DbG9zZT1KM3QsdS5QYW5lbEJvdHRvbURhc2hlZD1Qdix1LlBhbmVsQm90dG9tSW5hY3RpdmU9UHYsdS5QYW5lbEJvdHRvbU9wZW49ZWx0LHUuUGFuZWxMZWZ0PU92LHUuUGFuZWxMZWZ0Q2xvc2U9SXYsdS5QYW5lbExlZnREYXNoZWQ9TnYsdS5QYW5lbExlZnRJbmFjdGl2ZT1Odix1LlBhbmVsTGVmdE9wZW49RnYsdS5QYW5lbExlZnRSaWdodERhc2hlZD1hbHQsdS5QYW5lbFJpZ2h0PXNsdCx1LlBhbmVsUmlnaHRDbG9zZT1pbHQsdS5QYW5lbFJpZ2h0RGFzaGVkPVJ2LHUuUGFuZWxSaWdodEluYWN0aXZlPVJ2LHUuUGFuZWxSaWdodE9wZW49cmx0LHUuUGFuZWxUb3A9Y2x0LHUuUGFuZWxUb3BCb3R0b21EYXNoZWQ9bmx0LHUuUGFuZWxUb3BDbG9zZT1vbHQsdS5QYW5lbFRvcERhc2hlZD1Cdix1LlBhbmVsVG9wSW5hY3RpdmU9QnYsdS5QYW5lbFRvcE9wZW49bGx0LHUuUGFuZWxzTGVmdEJvdHRvbT1kbHQsdS5QYW5lbHNMZWZ0UmlnaHQ9VGIsdS5QYW5lbHNSaWdodEJvdHRvbT1wbHQsdS5QYW5lbHNUb3BCb3R0b209WXYsdS5QYW5lbHNUb3BMZWZ0PUh2LHUuUGFwZXJjbGlwPWhsdCx1LlBhcmVudGhlc2VzPXVsdCx1LlBhcmtpbmdDaXJjbGU9cGIsdS5QYXJraW5nQ2lyY2xlT2ZmPWRiLHUuUGFya2luZ01ldGVyPWZsdCx1LlBhcmtpbmdTcXVhcmU9RnksdS5QYXJraW5nU3F1YXJlT2ZmPU55LHUuUGFydHlQb3BwZXI9bWx0LHUuUGF1c2U9Z2x0LHUuUGF1c2VDaXJjbGU9aGIsdS5QYXVzZU9jdGFnb249QXYsdS5QYXdQcmludD1ibHQsdS5QY0Nhc2U9dmx0LHUuUGVuPVZ2LHUuUGVuQm94PXJvLHUuUGVuTGluZT1xdix1LlBlbk9mZj15bHQsdS5QZW5TcXVhcmU9cm8sdS5QZW5Ub29sPXhsdCx1LlBlbmNpbD1TbHQsdS5QZW5jaWxMaW5lPXdsdCx1LlBlbmNpbE9mZj1NbHQsdS5QZW5jaWxSdWxlcj16bHQsdS5QZW50YWdvbj1rbHQsdS5QZXJjZW50PUNsdCx1LlBlcmNlbnRDaXJjbGU9dWIsdS5QZXJjZW50RGlhbW9uZD0kYix1LlBlcmNlbnRTcXVhcmU9UnksdS5QZXJzb25TdGFuZGluZz1fbHQsdS5QaGlsaXBwaW5lUGVzbz1UbHQsdS5QaG9uZT1JbHQsdS5QaG9uZUNhbGw9TGx0LHUuUGhvbmVGb3J3YXJkZWQ9JGx0LHUuUGhvbmVJbmNvbWluZz1BbHQsdS5QaG9uZU1pc3NlZD1EbHQsdS5QaG9uZU9mZj1FbHQsdS5QaG9uZU91dGdvaW5nPVBsdCx1LlBpPU5sdCx1LlBpU3F1YXJlPU95LHUuUGlhbm89Rmx0LHUuUGlja2F4ZT1PbHQsdS5QaWN0dXJlSW5QaWN0dXJlPUhsdCx1LlBpY3R1cmVJblBpY3R1cmUyPVJsdCx1LlBpZUNoYXJ0PVZnLHUuUGlnZ3lCYW5rPUJsdCx1LlBpbGNyb3c9amx0LHUuUGlsY3Jvd0xlZnQ9cWx0LHUuUGlsY3Jvd1JpZ2h0PVZsdCx1LlBpbGNyb3dTcXVhcmU9QnksdS5QaWxsPVdsdCx1LlBpbGxCb3R0bGU9VWx0LHUuUGluPVlsdCx1LlBpbk9mZj1HbHQsdS5QaXBldHRlPVpsdCx1LlBpenphPVhsdCx1LlBsYW5lPUpsdCx1LlBsYW5lTGFuZGluZz1LbHQsdS5QbGFuZVRha2VvZmY9UWx0LHUuUGxheT1lY3QsdS5QbGF5Q2lyY2xlPWZiLHUuUGxheVNxdWFyZT1IeSx1LlBsdWc9YWN0LHUuUGx1ZzI9dGN0LHUuUGx1Z1phcD1qdix1LlBsdWdaYXAyPWp2LHUuUGx1cz1pY3QsdS5QbHVzQ2lyY2xlPW1iLHUuUGx1c1NxdWFyZT1xeSx1LlBvY2tldD1uY3QsdS5Qb2NrZXRLbmlmZT1yY3QsdS5Qb2RjYXN0PXNjdCx1LlBvaW50ZXI9bGN0LHUuUG9pbnRlck9mZj1vY3QsdS5Qb3Bjb3JuPWNjdCx1LlBvcHNpY2xlPWRjdCx1LlBvdW5kU3Rlcmxpbmc9cGN0LHUuUG93ZXI9dWN0LHUuUG93ZXJDaXJjbGU9Z2IsdS5Qb3dlck9mZj1oY3QsdS5Qb3dlclNxdWFyZT1WeSx1LlByZXNlbnRhdGlvbj1tY3QsdS5QcmludGVyPWJjdCx1LlByaW50ZXJDaGVjaz1mY3QsdS5QcmludGVyWD1nY3QsdS5Qcm9qZWN0b3I9dmN0LHUuUHJvcG9ydGlvbnM9eWN0LHUuUHV6emxlPXhjdCx1LlB5cmFtaWQ9d2N0LHUuUXJDb2RlPU1jdCx1LlF1b3RlPXpjdCx1LlJhYmJpdD1rY3QsdS5SYWRhcj1TY3QsdS5SYWRpYXRpb249Q2N0LHUuUmFkaWNhbD1fY3QsdS5SYWRpbz0kY3QsdS5SYWRpb1JlY2VpdmVyPVRjdCx1LlJhZGlvVG93ZXI9TGN0LHUuUmFkaXVzPUFjdCx1LlJhaWxTeW1ib2w9RGN0LHUuUmFpbmJvdz1FY3QsdS5SYXQ9UGN0LHUuUmF0aW89SWN0LHUuUmVjZWlwdD1VY3QsdS5SZWNlaXB0Q2VudD1OY3QsdS5SZWNlaXB0RXVybz1GY3QsdS5SZWNlaXB0SW5kaWFuUnVwZWU9T2N0LHUuUmVjZWlwdEphcGFuZXNlWWVuPVJjdCx1LlJlY2VpcHRQb3VuZFN0ZXJsaW5nPUJjdCx1LlJlY2VpcHRSdXNzaWFuUnVibGU9SGN0LHUuUmVjZWlwdFN3aXNzRnJhbmM9cWN0LHUuUmVjZWlwdFRleHQ9VmN0LHUuUmVjZWlwdFR1cmtpc2hMaXJhPWpjdCx1LlJlY3RhbmdsZUNpcmNsZT1XY3QsdS5SZWN0YW5nbGVFbGxpcHNpcz1Vdix1LlJlY3RhbmdsZUdvZ2dsZXM9WWN0LHUuUmVjdGFuZ2xlSG9yaXpvbnRhbD1HY3QsdS5SZWN0YW5nbGVWZXJ0aWNhbD1aY3QsdS5SZWN5Y2xlPVhjdCx1LlJlZG89SmN0LHUuUmVkbzI9UWN0LHUuUmVkb0RvdD1LY3QsdS5SZWZyZXNoQ2N3PXQ2dCx1LlJlZnJlc2hDY3dEb3Q9ZTZ0LHUuUmVmcmVzaEN3PWk2dCx1LlJlZnJlc2hDd09mZj1hNnQsdS5SZWZyaWdlcmF0b3I9cjZ0LHUuUmVnZXg9czZ0LHUuUmVtb3ZlRm9ybWF0dGluZz1uNnQsdS5SZXBlYXQ9YzZ0LHUuUmVwZWF0MT1sNnQsdS5SZXBlYXQyPW82dCx1LlJlcGxhY2U9cDZ0LHUuUmVwbGFjZUFsbD1kNnQsdS5SZXBseT11NnQsdS5SZXBseUFsbD1oNnQsdS5SZXdpbmQ9ZjZ0LHUuUmliYm9uPW02dCx1LlJvY2tldD1nNnQsdS5Sb2NraW5nQ2hhaXI9YjZ0LHUuUm9sbGVyQ29hc3Rlcj12NnQsdS5Sb3NlPXk2dCx1LlJvdGF0ZTNEPVd2LHUuUm90YXRlM2Q9V3YsdS5Sb3RhdGVDY3c9TTZ0LHUuUm90YXRlQ2N3S2V5PXg2dCx1LlJvdGF0ZUNjd1NxdWFyZT13NnQsdS5Sb3RhdGVDdz1rNnQsdS5Sb3RhdGVDd1NxdWFyZT16NnQsdS5Sb3V0ZT1DNnQsdS5Sb3V0ZU9mZj1TNnQsdS5Sb3V0ZXI9XzZ0LHUuUm93cz1Hdix1LlJvd3MyPUd2LHUuUm93czM9WXYsdS5Sb3dzND1UNnQsdS5Sc3M9TDZ0LHUuUnVsZXI9RDZ0LHUuUnVsZXJEaW1lbnNpb25MaW5lPSQ2dCx1LlJ1c3NpYW5SdWJsZT1BNnQsdS5TYWlsYm9hdD1QNnQsdS5TYWxhZD1FNnQsdS5TYW5kd2ljaD1JNnQsdS5TYXRlbGxpdGU9RjZ0LHUuU2F0ZWxsaXRlRGlzaD1ONnQsdS5TYXVkaVJpeWFsPU82dCx1LlNhdmU9SDZ0LHUuU2F2ZUFsbD1SNnQsdS5TYXZlT2ZmPUI2dCx1LlNjYWxlPXE2dCx1LlNjYWxlM0Q9WnYsdS5TY2FsZTNkPVp2LHUuU2NhbGluZz1WNnQsdS5TY2FuPVE2dCx1LlNjYW5CYXJjb2RlPVU2dCx1LlNjYW5FeWU9ajZ0LHUuU2NhbkZhY2U9VzZ0LHUuU2NhbkhlYXJ0PUc2dCx1LlNjYW5MaW5lPVk2dCx1LlNjYW5RckNvZGU9WjZ0LHUuU2NhblNlYXJjaD1YNnQsdS5TY2FuVGV4dD1LNnQsdS5TY2F0dGVyQ2hhcnQ9amcsdS5TY2hvb2w9SjZ0LHUuU2Nob29sMj1keCx1LlNjaXNzb3JzPXQ1dCx1LlNjaXNzb3JzTGluZURhc2hlZD1lNXQsdS5TY2lzc29yc1NxdWFyZT1qeSx1LlNjaXNzb3JzU3F1YXJlRGFzaGVkQm90dG9tPW15LHUuU2Nvb3Rlcj1hNXQsdS5TY3JlZW5TaGFyZT1yNXQsdS5TY3JlZW5TaGFyZU9mZj1pNXQsdS5TY3JvbGw9czV0LHUuU2Nyb2xsVGV4dD1uNXQsdS5TZWFyY2g9aDV0LHUuU2VhcmNoQWxlcnQ9bzV0LHUuU2VhcmNoQ2hlY2s9bDV0LHUuU2VhcmNoQ29kZT1jNXQsdS5TZWFyY2hTbGFzaD1kNXQsdS5TZWFyY2hYPXA1dCx1LlNlY3Rpb249dTV0LHUuU2VuZD1tNXQsdS5TZW5kSG9yaXpvbmFsPVh2LHUuU2VuZEhvcml6b250YWw9WHYsdS5TZW5kVG9CYWNrPWY1dCx1LlNlcGFyYXRvckhvcml6b250YWw9YjV0LHUuU2VwYXJhdG9yVmVydGljYWw9ZzV0LHUuU2VydmVyPXc1dCx1LlNlcnZlckNvZz12NXQsdS5TZXJ2ZXJDcmFzaD15NXQsdS5TZXJ2ZXJPZmY9eDV0LHUuU2V0dGluZ3M9ejV0LHUuU2V0dGluZ3MyPU01dCx1LlNoYXBlcz1rNXQsdS5TaGFyZT1DNXQsdS5TaGFyZTI9UzV0LHUuU2hlZXQ9XzV0LHUuU2hlbGw9VDV0LHUuU2hpZWxkPU81dCx1LlNoaWVsZEFsZXJ0PUw1dCx1LlNoaWVsZEJhbj0kNXQsdS5TaGllbGRDaGVjaz1BNXQsdS5TaGllbGRDbG9zZT1Rdix1LlNoaWVsZEVsbGlwc2lzPUQ1dCx1LlNoaWVsZEhhbGY9RTV0LHUuU2hpZWxkTWludXM9UDV0LHUuU2hpZWxkT2ZmPUk1dCx1LlNoaWVsZFBsdXM9TjV0LHUuU2hpZWxkUXVlc3Rpb249S3YsdS5TaGllbGRRdWVzdGlvbk1hcms9S3YsdS5TaGllbGRVc2VyPUY1dCx1LlNoaWVsZFg9UXYsdS5TaGlwPUI1dCx1LlNoaXBXaGVlbD1SNXQsdS5TaGlydD1INXQsdS5TaG9wcGluZ0JhZz1xNXQsdS5TaG9wcGluZ0Jhc2tldD1WNXQsdS5TaG9wcGluZ0NhcnQ9ajV0LHUuU2hvdmVsPVU1dCx1LlNob3dlckhlYWQ9VzV0LHUuU2hyZWRkZXI9RzV0LHUuU2hyaW1wPVk1dCx1LlNocmluaz1aNXQsdS5TaHJ1Yj1LNXQsdS5TaHVmZmxlPVg1dCx1LlNpZGViYXI9T3YsdS5TaWRlYmFyQ2xvc2U9SXYsdS5TaWRlYmFyT3Blbj1Gdix1LlNpZ21hPVE1dCx1LlNpZ21hU3F1YXJlPVV5LHUuU2lnbmFsPWk4dCx1LlNpZ25hbEhpZ2g9SjV0LHUuU2lnbmFsTG93PWU4dCx1LlNpZ25hbE1lZGl1bT10OHQsdS5TaWduYWxaZXJvPWE4dCx1LlNpZ25hdHVyZT1yOHQsdS5TaWducG9zdD1uOHQsdS5TaWducG9zdEJpZz1zOHQsdS5TaXJlbj1vOHQsdS5Ta2lwQmFjaz1sOHQsdS5Ta2lwRm9yd2FyZD1jOHQsdS5Ta3VsbD1kOHQsdS5TbGFjaz1wOHQsdS5TbGFzaD1oOHQsdS5TbGFzaFNxdWFyZT1XeSx1LlNsaWNlPXU4dCx1LlNsaWRlcnM9SnYsdS5TbGlkZXJzSG9yaXpvbnRhbD1mOHQsdS5TbGlkZXJzVmVydGljYWw9SnYsdS5TbWFydHBob25lPWI4dCx1LlNtYXJ0cGhvbmVDaGFyZ2luZz1tOHQsdS5TbWFydHBob25lTmZjPWc4dCx1LlNtaWxlPXk4dCx1LlNtaWxlUGx1cz12OHQsdS5TbmFpbD14OHQsdS5Tbm93Zmxha2U9TTh0LHUuU29hcERpc3BlbnNlckRyb3BsZXQ9dzh0LHUuU29mYT16OHQsdS5Tb2xhclBhbmVsPWs4dCx1LlNvcnRBc2M9TWcsdS5Tb3J0RGVzYz15Zyx1LlNvdXA9Uzh0LHUuU3BhY2U9Qzh0LHUuU3BhZGU9Xzh0LHUuU3BhcmtsZT1UOHQsdS5TcGFya2xlcz1leSx1LlNwZWFrZXI9TDh0LHUuU3BlZWNoPSQ4dCx1LlNwZWxsQ2hlY2s9RDh0LHUuU3BlbGxDaGVjazI9QTh0LHUuU3BsaW5lPVA4dCx1LlNwbGluZVBvaW50ZXI9RTh0LHUuU3BsaXQ9STh0LHUuU3BsaXRTcXVhcmVIb3Jpem9udGFsPUd5LHUuU3BsaXRTcXVhcmVWZXJ0aWNhbD1ZeSx1LlNwb29sPU44dCx1LlNwb3RsaWdodD1GOHQsdS5TcHJheUNhbj1POHQsdS5TcHJvdXQ9Ujh0LHUuU3F1YXJlPVg4dCx1LlNxdWFyZUFjdGl2aXR5PWF5LHUuU3F1YXJlQXJyb3dEb3duPXJ5LHUuU3F1YXJlQXJyb3dEb3duTGVmdD10eSx1LlNxdWFyZUFycm93RG93blJpZ2h0PWl5LHUuU3F1YXJlQXJyb3dMZWZ0PXN5LHUuU3F1YXJlQXJyb3dPdXREb3duTGVmdD1ueSx1LlNxdWFyZUFycm93T3V0RG93blJpZ2h0PWx5LHUuU3F1YXJlQXJyb3dPdXRVcExlZnQ9b3ksdS5TcXVhcmVBcnJvd091dFVwUmlnaHQ9Y3ksdS5TcXVhcmVBcnJvd1JpZ2h0PWR5LHUuU3F1YXJlQXJyb3dVcD11eSx1LlNxdWFyZUFycm93VXBMZWZ0PXB5LHUuU3F1YXJlQXJyb3dVcFJpZ2h0PWh5LHUuU3F1YXJlQXN0ZXJpc2s9ZnksdS5TcXVhcmVCb3R0b21EYXNoZWRTY2lzc29ycz1teSx1LlNxdWFyZUNoYXJ0R2FudHQ9TWwsdS5TcXVhcmVDaGVjaz1ieSx1LlNxdWFyZUNoZWNrQmlnPWd5LHUuU3F1YXJlQ2hldnJvbkRvd249dnksdS5TcXVhcmVDaGV2cm9uTGVmdD15eSx1LlNxdWFyZUNoZXZyb25SaWdodD14eSx1LlNxdWFyZUNoZXZyb25VcD13eSx1LlNxdWFyZUNvZGU9TXksdS5TcXVhcmVEYXNoZWQ9U3ksdS5TcXVhcmVEYXNoZWRCb3R0b209SDh0LHUuU3F1YXJlRGFzaGVkQm90dG9tQ29kZT1COHQsdS5TcXVhcmVEYXNoZWRLYW5iYW49enksdS5TcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI9a3ksdS5TcXVhcmVEYXNoZWRUb3BTb2xpZD1xOHQsdS5TcXVhcmVEaXZpZGU9Q3ksdS5TcXVhcmVEb3Q9X3ksdS5TcXVhcmVFcXVhbD1UeSx1LlNxdWFyZUZ1bmN0aW9uPUx5LHUuU3F1YXJlR2FudHRDaGFydD1NbCx1LlNxdWFyZUthbmJhbj0keSx1LlNxdWFyZUxpYnJhcnk9QXksdS5TcXVhcmVNPUR5LHUuU3F1YXJlTWVudT1FeSx1LlNxdWFyZU1pbnVzPVB5LHUuU3F1YXJlTW91c2VQb2ludGVyPUl5LHUuU3F1YXJlUGFya2luZz1GeSx1LlNxdWFyZVBhcmtpbmdPZmY9TnksdS5TcXVhcmVQYXVzZT1WOHQsdS5TcXVhcmVQZW49cm8sdS5TcXVhcmVQZXJjZW50PVJ5LHUuU3F1YXJlUGk9T3ksdS5TcXVhcmVQaWxjcm93PUJ5LHUuU3F1YXJlUGxheT1IeSx1LlNxdWFyZVBsdXM9cXksdS5TcXVhcmVQb3dlcj1WeSx1LlNxdWFyZVJhZGljYWw9VTh0LHUuU3F1YXJlUm91bmRDb3JuZXI9ajh0LHUuU3F1YXJlU2Npc3NvcnM9anksdS5TcXVhcmVTaWdtYT1VeSx1LlNxdWFyZVNsYXNoPVd5LHUuU3F1YXJlU3BsaXRIb3Jpem9udGFsPUd5LHUuU3F1YXJlU3BsaXRWZXJ0aWNhbD1ZeSx1LlNxdWFyZVNxdWFyZT1HOHQsdS5TcXVhcmVTdGFjaz1XOHQsdS5TcXVhcmVTdGFyPVk4dCx1LlNxdWFyZVN0b3A9Wjh0LHUuU3F1YXJlVGVybWluYWw9WnksdS5TcXVhcmVVc2VyPUt5LHUuU3F1YXJlVXNlclJvdW5kPVh5LHUuU3F1YXJlWD1ReSx1LlNxdWFyZXNFeGNsdWRlPUs4dCx1LlNxdWFyZXNJbnRlcnNlY3Q9UTh0LHUuU3F1YXJlc1N1YnRyYWN0PUo4dCx1LlNxdWFyZXNVbml0ZT1lZHQsdS5TcXVpcmNsZT1hZHQsdS5TcXVpcmNsZURhc2hlZD10ZHQsdS5TcXVpcnJlbD1pZHQsdS5TdGFtcD1yZHQsdS5TdGFyPW9kdCx1LlN0YXJIYWxmPXNkdCx1LlN0YXJPZmY9bmR0LHUuU3RhcnM9ZXksdS5TdGVwQmFjaz1sZHQsdS5TdGVwRm9yd2FyZD1jZHQsdS5TdGV0aG9zY29wZT1kZHQsdS5TdGlja2VyPXBkdCx1LlN0aWNreU5vdGU9aGR0LHUuU3RvbmU9dWR0LHUuU3RvcENpcmNsZT12Yix1LlN0b3JlPWZkdCx1LlN0cmV0Y2hIb3Jpem9udGFsPW1kdCx1LlN0cmV0Y2hWZXJ0aWNhbD1nZHQsdS5TdHJpa2V0aHJvdWdoPWJkdCx1LlN1YnNjcmlwdD12ZHQsdS5TdWJ0aXRsZXM9QWcsdS5TdW49emR0LHUuU3VuRGltPXlkdCx1LlN1bk1lZGl1bT14ZHQsdS5TdW5Nb29uPXdkdCx1LlN1blNub3c9TWR0LHUuU3VucmlzZT1rZHQsdS5TdW5zZXQ9U2R0LHUuU3VwZXJzY3JpcHQ9Q2R0LHUuU3dhdGNoQm9vaz1fZHQsdS5Td2lzc0ZyYW5jPVRkdCx1LlN3aXRjaENhbWVyYT1MZHQsdS5Td29yZD0kZHQsdS5Td29yZHM9QWR0LHUuU3lyaW5nZT1EZHQsdS5UYWJsZT1CZHQsdS5UYWJsZTI9RWR0LHUuVGFibGVDZWxsc01lcmdlPVBkdCx1LlRhYmxlQ2VsbHNTcGxpdD1JZHQsdS5UYWJsZUNvbHVtbnNTcGxpdD1OZHQsdS5UYWJsZUNvbmZpZz1ibCx1LlRhYmxlT2ZDb250ZW50cz1GZHQsdS5UYWJsZVByb3BlcnRpZXM9T2R0LHUuVGFibGVSb3dzU3BsaXQ9UmR0LHUuVGFibGV0PUhkdCx1LlRhYmxldFNtYXJ0cGhvbmU9cWR0LHUuVGFibGV0cz1WZHQsdS5UYWc9amR0LHUuVGFncz1VZHQsdS5UYWxseTE9V2R0LHUuVGFsbHkyPUdkdCx1LlRhbGx5Mz1ZZHQsdS5UYWxseTQ9WmR0LHUuVGFsbHk1PVhkdCx1LlRhbmdlbnQ9S2R0LHUuVGFyZ2V0PVFkdCx1LlRlbGVzY29wZT1KZHQsdS5UZW50PXQ3dCx1LlRlbnRUcmVlPWU3dCx1LlRlcm1pbmFsPWE3dCx1LlRlcm1pbmFsU3F1YXJlPVp5LHUuVGVzdFR1YmU9aTd0LHUuVGVzdFR1YmUyPUp5LHUuVGVzdFR1YmVEaWFnb25hbD1KeSx1LlRlc3RUdWJlcz1yN3QsdS5UZXh0PXpsLHUuVGV4dEFsaWduQ2VudGVyPWV4LHUuVGV4dEFsaWduRW5kPXR4LHUuVGV4dEFsaWduSnVzdGlmeT1heCx1LlRleHRBbGlnblN0YXJ0PXpsLHUuVGV4dEN1cnNvcj1uN3QsdS5UZXh0Q3Vyc29ySW5wdXQ9czd0LHUuVGV4dEluaXRpYWw9aXgsdS5UZXh0UXVvdGU9bzd0LHUuVGV4dFNlYXJjaD1sN3QsdS5UZXh0U2VsZWN0PXJ4LHUuVGV4dFNlbGVjdGlvbj1yeCx1LlRleHRXcmFwPXN4LHUuVGhlYXRlcj1jN3QsdS5UaGVybW9tZXRlcj1oN3QsdS5UaGVybW9tZXRlclNub3dmbGFrZT1kN3QsdS5UaGVybW9tZXRlclN1bj1wN3QsdS5UaHVtYnNEb3duPXU3dCx1LlRodW1ic1VwPWY3dCx1LlRpY2tldD13N3QsdS5UaWNrZXRDaGVjaz1tN3QsdS5UaWNrZXRNaW51cz1nN3QsdS5UaWNrZXRQZXJjZW50PWI3dCx1LlRpY2tldFBsdXM9djd0LHUuVGlja2V0U2xhc2g9eTd0LHUuVGlja2V0WD14N3QsdS5UaWNrZXRzPWs3dCx1LlRpY2tldHNQbGFuZT1NN3QsdS5UaW1lcj1DN3QsdS5UaW1lck9mZj16N3QsdS5UaW1lclJlc2V0PVM3dCx1LlRvZ2dsZUxlZnQ9Xzd0LHUuVG9nZ2xlUmlnaHQ9VDd0LHUuVG9pbGV0PUw3dCx1LlRvb2xDYXNlPSQ3dCx1LlRvb2xib3g9QTd0LHUuVG9ybmFkbz1EN3QsdS5Ub3J1cz1FN3QsdS5Ub3VjaHBhZD1JN3QsdS5Ub3VjaHBhZE9mZj1QN3QsdS5Ub3dlckNvbnRyb2w9Tjd0LHUuVG95QnJpY2s9Rjd0LHUuVHJhY3Rvcj1PN3QsdS5UcmFmZmljQ29uZT1SN3QsdS5UcmFpbj1ueCx1LlRyYWluRnJvbnQ9SDd0LHUuVHJhaW5Gcm9udFR1bm5lbD1CN3QsdS5UcmFpblRyYWNrPXE3dCx1LlRyYW1Gcm9udD1ueCx1LlRyYW5zZ2VuZGVyPVY3dCx1LlRyYXNoPVU3dCx1LlRyYXNoMj1qN3QsdS5UcmVlRGVjaWR1b3VzPVc3dCx1LlRyZWVQYWxtPW94LHUuVHJlZVBpbmU9Rzd0LHUuVHJlZXM9WTd0LHUuVHJlbGxvPVo3dCx1LlRyZW5kaW5nRG93bj1YN3QsdS5UcmVuZGluZ1VwPVE3dCx1LlRyZW5kaW5nVXBEb3duPUs3dCx1LlRyaWFuZ2xlPXRwdCx1LlRyaWFuZ2xlQWxlcnQ9bHgsdS5UcmlhbmdsZURhc2hlZD1KN3QsdS5UcmlhbmdsZVJpZ2h0PWVwdCx1LlRyb3BoeT1pcHQsdS5UcnVjaz1ycHQsdS5UcnVja0VsZWN0cmljPWFwdCx1LlR1cmtpc2hMaXJhPXNwdCx1LlR1cm50YWJsZT1ucHQsdS5UdXJ0bGU9b3B0LHUuVHY9Y3B0LHUuVHYyPWN4LHUuVHZNaW5pbWFsPWN4LHUuVHZNaW5pbWFsUGxheT1scHQsdS5Ud2l0Y2g9ZHB0LHUuVHdpdHRlcj1wcHQsdS5UeXBlPXVwdCx1LlR5cGVPdXRsaW5lPWhwdCx1LlVtYnJlbGxhPW1wdCx1LlVtYnJlbGxhT2ZmPWZwdCx1LlVuZGVybGluZT1ncHQsdS5VbmRvPXlwdCx1LlVuZG8yPWJwdCx1LlVuZG9Eb3Q9dnB0LHUuVW5mb2xkSG9yaXpvbnRhbD14cHQsdS5VbmZvbGRWZXJ0aWNhbD13cHQsdS5Vbmdyb3VwPU1wdCx1LlVuaXZlcnNpdHk9ZHgsdS5Vbmxpbms9enB0LHUuVW5saW5rMj1rcHQsdS5VbmxvY2s9a3YsdS5VbmxvY2tLZXlob2xlPXp2LHUuVW5wbHVnPVNwdCx1LlVwbG9hZD1DcHQsdS5VcGxvYWRDbG91ZD1TYix1LlVzYj1fcHQsdS5Vc2VyPUhwdCx1LlVzZXIyPWd4LHUuVXNlckNoZWNrPVRwdCx1LlVzZXJDaGVjazI9cHgsdS5Vc2VyQ2lyY2xlPXhiLHUuVXNlckNpcmNsZTI9eWIsdS5Vc2VyQ29nPUxwdCx1LlVzZXJDb2cyPWh4LHUuVXNlcktleT0kcHQsdS5Vc2VyTG9jaz1BcHQsdS5Vc2VyTWludXM9RHB0LHUuVXNlck1pbnVzMj11eCx1LlVzZXJQZW49RXB0LHUuVXNlclBsdXM9UHB0LHUuVXNlclBsdXMyPWZ4LHUuVXNlclJvdW5kPWd4LHUuVXNlclJvdW5kQ2hlY2s9cHgsdS5Vc2VyUm91bmRDb2c9aHgsdS5Vc2VyUm91bmRLZXk9SXB0LHUuVXNlclJvdW5kTWludXM9dXgsdS5Vc2VyUm91bmRQZW49TnB0LHUuVXNlclJvdW5kUGx1cz1meCx1LlVzZXJSb3VuZFNlYXJjaD1GcHQsdS5Vc2VyUm91bmRYPW14LHUuVXNlclNlYXJjaD1PcHQsdS5Vc2VyU3F1YXJlPUt5LHUuVXNlclNxdWFyZTI9WHksdS5Vc2VyU3Rhcj1ScHQsdS5Vc2VyWD1CcHQsdS5Vc2VyWDI9bXgsdS5Vc2Vycz1xcHQsdS5Vc2VyczI9YngsdS5Vc2Vyc1JvdW5kPWJ4LHUuVXRlbnNpbHM9eXgsdS5VdGVuc2lsc0Nyb3NzZWQ9dngsdS5VdGlsaXR5UG9sZT1WcHQsdS5WYW49anB0LHUuVmFyaWFibGU9VXB0LHUuVmF1bHQ9V3B0LHUuVmVjdG9yU3F1YXJlPUdwdCx1LlZlZ2FuPVlwdCx1LlZlbmV0aWFuTWFzaz1acHQsdS5WZW51cz1LcHQsdS5WZW51c0FuZE1hcnM9WHB0LHUuVmVyaWZpZWQ9U2csdS5WaWJyYXRlPUpwdCx1LlZpYnJhdGVPZmY9UXB0LHUuVmlkZW89dGh0LHUuVmlkZW9PZmY9ZWh0LHUuVmlkZW90YXBlPWFodCx1LlZpZXc9aWh0LHUuVm9pY2VtYWlsPXJodCx1LlZvbGxleWJhbGw9c2h0LHUuVm9sdW1lPXBodCx1LlZvbHVtZTE9bmh0LHUuVm9sdW1lMj1vaHQsdS5Wb2x1bWVPZmY9bGh0LHUuVm9sdW1lWD1jaHQsdS5Wb3RlPWRodCx1LldhbGxldD11aHQsdS5XYWxsZXQyPXh4LHUuV2FsbGV0Q2FyZHM9aGh0LHUuV2FsbGV0TWluaW1hbD14eCx1LldhbGxwYXBlcj1maHQsdS5XYW5kPW1odCx1LldhbmQyPXd4LHUuV2FuZFNwYXJrbGVzPXd4LHUuV2FyZWhvdXNlPWdodCx1Lldhc2hpbmdNYWNoaW5lPWJodCx1LldhdGNoPXZodCx1LldhdmVzPU1odCx1LldhdmVzQXJyb3dEb3duPXlodCx1LldhdmVzQXJyb3dVcD14aHQsdS5XYXZlc0xhZGRlcj13aHQsdS5XYXlwb2ludHM9emh0LHUuV2ViY2FtPWtodCx1LldlYmhvb2s9Q2h0LHUuV2ViaG9va09mZj1TaHQsdS5XZWlnaHQ9TGh0LHUuV2VpZ2h0VGlsZGU9X2h0LHUuV2hlYXQ9JGh0LHUuV2hlYXRPZmY9VGh0LHUuV2hvbGVXb3JkPUFodCx1LldpZmk9Umh0LHUuV2lmaUNvZz1EaHQsdS5XaWZpSGlnaD1FaHQsdS5XaWZpTG93PVBodCx1LldpZmlPZmY9SWh0LHUuV2lmaVBlbj1OaHQsdS5XaWZpU3luYz1GaHQsdS5XaWZpWmVybz1PaHQsdS5XaW5kPUhodCx1LldpbmRBcnJvd0Rvd249Qmh0LHUuV2luZT1xaHQsdS5XaW5lT2ZmPWpodCx1LldvcmtmbG93PVZodCx1Lldvcm09VWh0LHUuV3JhcFRleHQ9c3gsdS5XcmVuY2g9WWh0LHUuWD1XaHQsdS5YQ2lyY2xlPXdiLHUuWE9jdGFnb249RHYsdS5YU3F1YXJlPVF5LHUuWW91dHViZT1HaHQsdS5aYXA9WGh0LHUuWmFwT2ZmPVpodCx1Llpvb21Jbj1RaHQsdS5ab29tT3V0PUtodCx1LmNyZWF0ZUVsZW1lbnQ9dVplLHUuY3JlYXRlSWNvbnM9Smh0LHUuaWNvbnM9JGp0fSk7dmFyIGtsLGU5dCx0OXQ9YigoKT0+e3VlKCk7RHQoKTtrbD1qMShNeCgpLDEpLGU5dD0oKT0+e2xldCB0PU9iamVjdC5rZXlzKHp4LmZhKTtjb25zb2xlLmxvZygiRmlyc3QgZmV3IEx1Y2lkZSBrZXlzOiIsT2JqZWN0LmtleXMoa2wpLnNsaWNlKDAsNSkpO2xldCBlPU9iamVjdC5rZXlzKGtsKS5maWx0ZXIocz0+e2xldCBuPXNbMF09PT1zWzBdLnRvVXBwZXJDYXNlKCkmJnNbMF0hPT1zWzBdLnRvTG93ZXJDYXNlKCksbz10eXBlb2Yga2xbc109PSJmdW5jdGlvbiIsZD0hWyJjcmVhdGVFbGVtZW50IiwiY3JlYXRlSWNvbnMiLCJkZWZhdWx0Il0uaW5jbHVkZXMocyk7cmV0dXJuIG8mJm4mJmR9KS5tYXAocz0+cy5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKStzLnNsaWNlKDEpKTtpZihjb25zb2xlLmxvZyhgRm91bmQgJHtlLmxlbmd0aH0gTHVjaWRlIGljb25zYCksZS5sZW5ndGg9PT0wJiYoY29uc29sZS5sb2coIlRyeWluZyBhbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBmaW5kIEx1Y2lkZSBpY29ucyIpLGtsLmljb25zKSl7bGV0IHM9a2wuaWNvbnN8fHt9O2UucHVzaCguLi5PYmplY3Qua2V5cyhzKSksY29uc29sZS5sb2coYEZvdW5kICR7ZS5sZW5ndGh9IGljb25zIHZpYSBhbHRlcm5hdGl2ZSBtZXRob2RgKX1sZXQgYT0oKT0+e2xldCBzPXQubWFwKGM9PmBmYToke2N9YCksbj1lLm1hcChjPT5gbHVjaWRlOiR7Y31gKSxvPVsuLi5zLC4uLm5dLGQ9by5qb2luKGAKYCk7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZCkudGhlbigoKT0+e2xldCBwPXdpbmRvdy5ldmVudC5jdXJyZW50VGFyZ2V0LGw9cC50ZXh0Q29udGVudDtwLnRleHRDb250ZW50PWBcdTI3MTMgQ29waWVkICR7by5sZW5ndGh9IGljb24gbmFtZXMhYCxzZXRUaW1lb3V0KCgpPT57cC50ZXh0Q29udGVudD1sfSwyZTMpfSl9LGk9cz0+e2xldCBuPXMudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgpLG89cy50YXJnZXQuY2xvc2VzdCgiLmRlbW9Db250YWluZXIiKTtvLnF1ZXJ5U2VsZWN0b3JBbGwoIi5pY29uQ29udGFpbmVyIikuZm9yRWFjaChjPT57bGV0IHA9Yy5nZXRBdHRyaWJ1dGUoImRhdGEtbmFtZSIpO249PT0iInx8cCYmcC5pbmNsdWRlcyhuKT9jLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOmMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9KSxvLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZWN0aW9uLWNvbnRhaW5lciIpLmZvckVhY2goYz0+e2xldCBwPWMucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXI6bm90KC5oaWRkZW4pIikubGVuZ3RoLGw9Yy5xdWVyeVNlbGVjdG9yKCIuaWNvbi1jb3VudCIpO2lmKGwpe2xldCBmPWMuY2xhc3NMaXN0LmNvbnRhaW5zKCJmYS1zZWN0aW9uIik/dC5sZW5ndGg6ZS5sZW5ndGg7bC50ZXh0Q29udGVudD1wPT09Zj9gJHtmfSBpY29uc2A6YCR7cH0gb2YgJHtmfSBpY29uc2B9fSl9LHI9KHMsbik9PntsZXQgbz1gJHtufToke3N9YDtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChvKS50aGVuKCgpPT57bGV0IHA9d2luZG93LmV2ZW50LmN1cnJlbnRUYXJnZXQucXVlcnlTZWxlY3RvcigiLmNvcHktdG9vbHRpcCIpO3AmJihwLnRleHRDb250ZW50PSJDb3BpZWQhIixzZXRUaW1lb3V0KCgpPT57cC50ZXh0Q29udGVudD0iQ2xpY2sgdG8gY29weSJ9LDJlMykpfSl9O3JldHVybiB3YAogIDxzdHlsZT4KICAgIC5kZW1vQ29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYmFja2dyb3VuZDogIzExMTExMTsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgZm9udC1zaXplOiAzMHB4OwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgIkhlbHZldGljYSBOZXVlIiwgc2Fucy1zZXJpZjsKICAgIH0KICAgIAogICAgLnNlYXJjaC1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMHB4OwogICAgfQogICAgCiAgICAjaWNvblNlYXJjaCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYmFja2dyb3VuZDogIzIyMjsKICAgICAgY29sb3I6ICNmZmY7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoOmZvY3VzIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgYm9yZGVyLWNvbG9yOiAjZTQwMDJiOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uIHsKICAgICAgcGFkZGluZzogMTJweCAyMHB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIH0KICAgIAogICAgLmNvcHktYWxsLWJ1dHRvbjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICNjNDAwMWI7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKICAgIH0KICAgIAogICAgLmNvcHktYWxsLWJ1dHRvbjphY3RpdmUgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICB9CiAgICAKICAgIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgcGFkZGluZzogMjBweCAxNnB4IDBweCAxNnB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzOwogICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KICAgIAogICAgLmljb25Db250YWluZXI6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOwogICAgfQoKICAgIC5pY29uTmFtZSB7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBjb2xvcjogI2NjYzsKICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDsKICAgICAgbWFyZ2luLXJpZ2h0OiAtMTZweDsKICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIG1heC13aWR0aDogMTIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4OwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIG1hcmdpbjogMjBweCAwOwogICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIH0KICAgIAogICAgLmFwaS1ub3RlIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogI2U0MDAyYjsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgcGFkZGluZzogMTBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U0MDAyYjsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyOCwgMCwgNDMsIDAuMSk7CiAgICB9CiAgICAKICAgIC5pY29uLWNvdW50IHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogIzg4ODsKICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgYmFja2dyb3VuZDogIzIyMjsKICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICB9CiAgICAKICAgIC5pY29ucy1ncmlkIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICB9CiAgICAKICAgIC5jb3B5LXRvb2x0aXAgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgcGFkZGluZzogNXB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0b3A6IC0zMHB4OwogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciAuY29weS10b29sdGlwIHsKICAgICAgb3BhY2l0eTogMTsKICAgIH0KCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciBkZWVzLWljb24gewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7CiAgICB9CiAgICAKICAgIC5oaWRkZW4gewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlYXJjaC1jb250YWluZXIiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Imljb25TZWFyY2giIHBsYWNlaG9sZGVyPSJTZWFyY2ggaWNvbnMuLi4iIEBpbnB1dD0ke2l9PgogICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWFsbC1idXR0b24iIEBjbGljaz0ke2F9PvCfk4sgQ29weSBBbGwgSWNvbiBOYW1lczwvYnV0dG9uPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImFwaS1ub3RlIj4KICAgICAgTmV3IEFQSTogVXNlIDxjb2RlPmljb249ImZhOmljb25OYW1lIjwvY29kZT4gb3IgPGNvZGU+aWNvbj0ibHVjaWRlOmljb25OYW1lIjwvY29kZT4gaW5zdGVhZCBvZiA8Y29kZT5pY29uRkE8L2NvZGU+LiAKICAgICAgQ2xpY2sgYW55IGljb24gdG8gY29weSBpdHMgbmV3IGZvcm1hdCB0byBjbGlwYm9hcmQuCiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1jb250YWluZXIgZmEtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgIEZvbnRBd2Vzb21lIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7dC5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHt0Lm1hcChzPT57bGV0IG49YGZhOiR7c31gO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25Db250YWluZXIgZmEtaWNvbiIgZGF0YS1uYW1lPSR7cy50b0xvd2VyQ2FzZSgpfSBAY2xpY2s9JHsoKT0+cihzLCJmYSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtufSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmZhOiR7c308L2Rpdj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3B5LXRvb2x0aXAiPkNsaWNrIHRvIGNvcHk8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBsdWNpZGUtc2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPgogICAgICAgIEx1Y2lkZSBJY29ucwogICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWNvdW50Ij4ke2UubGVuZ3RofSBpY29uczwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Imljb25zLWdyaWQiPgogICAgICAgICR7ZS5tYXAocz0+e2xldCBuPWBsdWNpZGU6JHtzfWA7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBsdWNpZGUtaWNvbiIgZGF0YS1uYW1lPSR7cy50b0xvd2VyQ2FzZSgpfSBAY2xpY2s9JHsoKT0+cihzLCJsdWNpZGUiKX0+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7bn0gaWNvblNpemU9IjI0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25OYW1lIj5sdWNpZGU6JHtzfTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgogIGB9fSk7ZnVuY3Rpb24gRGp0KCl7Q2wuc2l6ZT5hOXQmJkFycmF5LmZyb20oQ2wua2V5cygpKS5zbGljZSgwLGE5dC81KS5mb3JFYWNoKGU9PkNsLmRlbGV0ZShlKSl9dmFyIGt4LHlxLFNsLFZpLEFqdCx6eCxDbCxhOXQsaTl0LER0PWIoKCk9Pnt1ZSgpO1R0KCk7cWUoKTtYOGUoKTt0dmUoKTt4d2UoKTtkWmUoKTt0OXQoKTtreD1qMShNeCgpLDEpLHlxPWoxKE14KCksMSksU2w9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxWaT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sQWp0PXthcnJvd1JpZ2h0OmxnLGFycm93VXBSaWdodEZyb21TcXVhcmU6cDgsYmVsbDpYbSxidWc6cGcsYnVpbGRpbmc6c2csY2FyZXRMZWZ0OkptLGNhcmV0UmlnaHQ6Wm0sY2hlY2s6b2csY2lyY2xlSW5mbzp1OCxjaXJjbGVDaGVjazpJNSxjaXJjbGVDaGVja1NvbGlkOm84LGNpcmNsZVhtYXJrOmNsLGNpcmNsZVhtYXJrU29saWQ6ZmwsY2xvY2tSb3RhdGVMZWZ0Omw4LGNvcHk6S2YsY29weVNvbGlkOmhnLGRlc2t0b3A6aDgsZXllOlFtLGV5ZVNsYXNoOnVnLGZpbGVJbnZvaWNlOmNnLGZpbGVJbnZvaWNlRG9sbGVyOmRnLGdlYXI6czgsZ3JpcDptbCxtYWduaWZ5aW5nR2xhc3M6YTgsbWVzc2FnZTpFNSxtZXNzYWdlU29saWQ6ZTgsbW9uZXlDaGVja0RvbGxhcjpkOCxtdWdIb3Q6ZmcsbWludXM6SjUsbmV0d29ya1dpcmVkOmlnLHBhcGVyY2xpcDpuZyxwYXN0ZTpENSxwYXN0ZVNvbGlkOlE1LHBlblRvU3F1YXJlOmk4LHBsdXM6YzgscmVjZWlwdDplZyxyc3M6dDgsc2hhcmU6cjgsc3VuOlhmLHN1blNvbGlkOmFnLHRlcm1pbmFsOnJnLHRyYXNoOmY4LHRyYXNoU29saWQ6ZjgsdHJhc2hDYW46UDUsdHJhc2hDYW5Tb2xpZDpuOCx1c2Vyczp0Zyx3YWxsZXQ6S20seG1hcms6aW8sZmFjZWJvb2s6RmYsZ29vZ2xlOklmLGluc3RhZ3JhbTpCZixsaW5rZWRpbjpOZixtZWRpdW06TDUsc2xhY2s6T2YsdGlrdG9rOlJmLHR3aXR0ZXI6SGZ9LHp4PXtmYTpBanR9LENsPW5ldyBNYXAsYTl0PTUwMDtpOXQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWljb24iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOms9PmssdG9BdHRyaWJ1dGU6az0+a319KV0sZD1bSSh7dHlwZTpTdHJpbmcsY29udmVydGVyOntmcm9tQXR0cmlidXRlOms9PmssdG9BdHRyaWJ1dGU6az0+a319KV0sbD1bSSh7dHlwZTpOdW1iZXJ9KV0seT1bSSh7dHlwZTpTdHJpbmd9KV0seD1bSSh7dHlwZTpOdW1iZXJ9KV0sU2wodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uRkEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpY29uRkEiaW4gayxnZXQ6az0+ay5pY29uRkEsc2V0OihrLE4pPT57ay5pY29uRkE9Tn19LG1ldGFkYXRhOl99LG4sbyksU2wodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaWNvbiJpbiBrLGdldDprPT5rLmljb24sc2V0OihrLE4pPT57ay5pY29uPU59fSxtZXRhZGF0YTpffSxjLHApLFNsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvblNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpY29uU2l6ZSJpbiBrLGdldDprPT5rLmljb25TaXplLHNldDooayxOKT0+e2suaWNvblNpemU9Tn19LG1ldGFkYXRhOl99LGYsZyksU2wodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImNvbG9yImluIGssZ2V0Oms9PmsuY29sb3Isc2V0OihrLE4pPT57ay5jb2xvcj1OfX0sbWV0YWRhdGE6X30sdixtKSxTbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0cm9rZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic3Ryb2tlV2lkdGgiaW4gayxnZXQ6az0+ay5zdHJva2VXaWR0aCxzZXQ6KGssTik9PntrLnN0cm9rZVdpZHRoPU59fSxtZXRhZGF0YTpffSxNLFMpLFNsKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksRj1pPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89ZTl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPVZpKHRoaXMsbix2b2lkIDApO2dldCBpY29uRkEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaWNvbkZBKF8pe3RoaXMuI2U9X30jdD0oVmkodGhpcyxvKSxWaSh0aGlzLGMsdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgaWNvbihfKXt0aGlzLiN0PV99I2E9KFZpKHRoaXMscCksVmkodGhpcyxmLHZvaWQgMCkpO2dldCBpY29uU2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBpY29uU2l6ZShfKXt0aGlzLiNhPV99I2k9KFZpKHRoaXMsZyksVmkodGhpcyx2LCJjdXJyZW50Q29sb3IiKSk7Z2V0IGNvbG9yKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbG9yKF8pe3RoaXMuI2k9X30jcj0oVmkodGhpcyxtKSxWaSh0aGlzLE0sMikpO2dldCBzdHJva2VXaWR0aCgpe3JldHVybiB0aGlzLiNyfXNldCBzdHJva2VXaWR0aChfKXt0aGlzLiNyPV99bGFzdEljb249KFZpKHRoaXMsUyksbnVsbCk7bGFzdEljb25TaXplPW51bGw7bGFzdENvbG9yPW51bGw7bGFzdFN0cm9rZVdpZHRoPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLGIxLnNldHVwKCl9Z2V0RWZmZWN0aXZlSWNvbigpe3JldHVybiB0aGlzLmljb24/dGhpcy5pY29uOnRoaXMuaWNvbkZBP3RoaXMuaWNvbkZBLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT90aGlzLmljb25GQTpgZmE6JHt0aGlzLmljb25GQX1gOm51bGx9cGFyc2VJY29uU3RyaW5nKF8pe2xldCBrPV8udG9Mb3dlckNhc2UoKTtyZXR1cm4gay5zdGFydHNXaXRoKCJmYToiKT97dHlwZToiZmEiLG5hbWU6Xy5zdWJzdHJpbmcoMyl9Omsuc3RhcnRzV2l0aCgibHVjaWRlOiIpP3t0eXBlOiJsdWNpZGUiLG5hbWU6Xy5zdWJzdHJpbmcoNyl9Ont0eXBlOiJsdWNpZGUiLG5hbWU6X319cmVuZGVyTHVjaWRlSWNvbihfKXtsZXQgaz1gbHVjaWRlOiR7X306JHt0aGlzLmljb25TaXplfToke3RoaXMuY29sb3J9OiR7dGhpcy5zdHJva2VXaWR0aH1gO2lmKENsLmhhcyhrKSlyZXR1cm4gQ2wuZ2V0KGspfHwiIjt0cnl7bGV0IE49Xy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStfLnNsaWNlKDEpO2lmKCFreFtOXSlyZXR1cm4gY29uc29sZS53YXJuKGBMdWNpZGUgaWNvbiAnJHtOfScgbm90IGZvdW5kIGluIGx1Y2lkZUljb25zIG9iamVjdGApLCIiO2xldCBMPSgwLHlxLmNyZWF0ZUVsZW1lbnQpKGt4W05dLHtjb2xvcjp0aGlzLmNvbG9yLHNpemU6dGhpcy5pY29uU2l6ZSxzdHJva2VXaWR0aDp0aGlzLnN0cm9rZVdpZHRofSk7aWYoIUwpcmV0dXJuIGNvbnNvbGUud2FybihgY3JlYXRlRWxlbWVudCByZXR1cm5lZCBlbXB0eSByZXN1bHQgZm9yICR7Tn1gKSwiIjtsZXQgQT1MLm91dGVySFRNTDtyZXR1cm4gQ2wuc2V0KGssQSksRGp0KCksQX1jYXRjaChOKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIEx1Y2lkZSBpY29uICR7X306YCxOKSxgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIke3RoaXMuaWNvblNpemV9IiBoZWlnaHQ9IiR7dGhpcy5pY29uU2l6ZX0iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIke3RoaXMuY29sb3J9IiBzdHJva2Utd2lkdGg9IiR7dGhpcy5zdHJva2VXaWR0aH0iIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiAgICAgICAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGZvbnQtc2l6ZT0iNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgZmlsbD0iJHt0aGlzLmNvbG9yfSI+JHtffTwvdGV4dD4KICAgICAgPC9zdmc+YH19c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC8qIEltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlICovCiAgICAgICNpY29uQ29udGFpbmVyIHN2ZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIEhlbHBzIHdpdGggYW5pbWF0aW9ucyAqLwogICAgICAgIGNvbnRhaW46IHN0cmljdDsgLyogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovCiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke2IxLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgICNpY29uQ29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuaWNvblNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5pY29uU2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgaWQ9Imljb25Db250YWluZXIiPjwvZGl2PgogICAgYH11cGRhdGVkKCl7dGhpcy5pY29uU2l6ZXx8KHRoaXMuaWNvblNpemU9cGFyc2VJbnQoZ2xvYmFsVGhpcy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmZvbnRTaXplLnJlcGxhY2UoL1xEL2csIiIpKSk7bGV0IF89dGhpcy5nZXRFZmZlY3RpdmVJY29uKCk7aWYodGhpcy5sYXN0SWNvbj09PV8mJnRoaXMubGFzdEljb25TaXplPT09dGhpcy5pY29uU2l6ZSYmdGhpcy5sYXN0Q29sb3I9PT10aGlzLmNvbG9yJiZ0aGlzLmxhc3RTdHJva2VXaWR0aD09PXRoaXMuc3Ryb2tlV2lkdGgpcmV0dXJuO3RoaXMubGFzdEljb249Xyx0aGlzLmxhc3RJY29uU2l6ZT10aGlzLmljb25TaXplLHRoaXMubGFzdENvbG9yPXRoaXMuY29sb3IsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9dGhpcy5zdHJva2VXaWR0aDtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIiNpY29uQ29udGFpbmVyIik7aWYoISgha3x8IV8pKXRyeXtsZXR7dHlwZTpOLG5hbWU6TH09dGhpcy5wYXJzZUljb25TdHJpbmcoXyk7aWYoTj09PSJsdWNpZGUiKXtrLmlubmVySFRNTD0iIjt0cnl7bGV0IEE9TC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStMLnNsaWNlKDEpO2lmKGt4W0FdKXtsZXQgcT0oMCx5cS5jcmVhdGVFbGVtZW50KShreFtBXSx7Y29sb3I6dGhpcy5jb2xvcixzaXplOnRoaXMuaWNvblNpemUsc3Ryb2tlV2lkdGg6dGhpcy5zdHJva2VXaWR0aH0pO2lmKHEpe2suYXBwZW5kQ2hpbGQocSk7cmV0dXJufX10aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBjcmVhdGUgZWxlbWVudCBmb3IgJHtBfWApfWNhdGNoKEEpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHJlbmRlcmluZyBMdWNpZGUgaWNvbjoiLEEpO2xldCBxPXRoaXMucmVuZGVyTHVjaWRlSWNvbihMKTtxJiYoay5pbm5lckhUTUw9cSl9fWVsc2V7bGV0IEE9enguZmFbTF07aWYoQSl7bGV0IHE9bkUoQSkuaHRtbFswXTtrLmlubmVySFRNTD1xfWVsc2UgY29uc29sZS53YXJuKGBGb250QXdlc29tZSBpY29uIG5vdCBmb3VuZDogJHtMfWApfX1jYXRjaChOKXtjb25zb2xlLmVycm9yKGBFcnJvciB1cGRhdGluZyBpY29uICR7X306YCxOKX19YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubGFzdEljb249bnVsbCx0aGlzLmxhc3RJY29uU2l6ZT1udWxsLHRoaXMubGFzdENvbG9yPW51bGwsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9bnVsbH1zdGF0aWN7VmkoaSxhKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIHI5dCx4cSxVdCxzMj1iKCgpPT57cjIoKTttNWUoKTt1ZSgpO1R0KCk7X3MoKTt1aSgpO0R0KCk7cWUoKTtyOXQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSx4cT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sVXQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWNvbnRleHRtZW51IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6QXJyYXl9KV0scjl0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwPT4ibWVudUl0ZW1zImluIHAsZ2V0OnA9PnAubWVudUl0ZW1zLHNldDoocCxsKT0+e3AubWVudUl0ZW1zPWx9fSxtZXRhZGF0YTpjfSxuLG8pLHI5dChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPWY1ZTtzdGF0aWMgZGVtb0dyb3Vwcz1bIk92ZXJsYXkiXTtzdGF0aWMgY29udGV4dE1lbnVEZWFjdGl2YXRlZD0hMTtzdGF0aWMgYWNjdW11bGF0ZWRNZW51SXRlbXM9W107c3RhdGljIGluaXRpYWxpemVHbG9iYWxMaXN0ZW5lcigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IixjPT57aWYodGhpcy5jb250ZXh0TWVudURlYWN0aXZhdGVkKXJldHVybjtjLnByZXZlbnREZWZhdWx0KCksZC5hY2N1bXVsYXRlZE1lbnVJdGVtcz1bXTtsZXQgcD1jLmNvbXBvc2VkUGF0aCgpO2ZvcihsZXQgbCBvZiBwKWlmKGwuZ2V0Q29udGV4dE1lbnVJdGVtcyl7bGV0IGY9bC5nZXRDb250ZXh0TWVudUl0ZW1zKCk7ZiYmZi5sZW5ndGg+MCYmKGQuYWNjdW11bGF0ZWRNZW51SXRlbXMubGVuZ3RoPjAmJmQuYWNjdW11bGF0ZWRNZW51SXRlbXMucHVzaCh7ZGl2aWRlcjohMH0pLGQuYWNjdW11bGF0ZWRNZW51SXRlbXMucHVzaCguLi5mKSl9ZC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhjLGQuYWNjdW11bGF0ZWRNZW51SXRlbXMpfSl9c3RhdGljIGFzeW5jIG9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKGMscCl7aWYodGhpcy5jb250ZXh0TWVudURlYWN0aXZhdGVkKXJldHVybjtjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgbD1uZXcgZDtsLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsbC5zdHlsZS56SW5kZXg9U3RyaW5nKGkyLm92ZXJsYXkuY29udGV4dE1lbnUpLGwuc3R5bGUub3BhY2l0eT0iMCIsbC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoLTEwcHgpIixsLm1lbnVJdGVtcz1wLGwud2luZG93TGF5ZXI9YXdhaXQgZmkuY3JlYXRlQW5kU2hvdygpLGwud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jIHg9Pnt4LnRhcmdldC5jbG9zZXN0KCJkZWVzLWNvbnRleHRtZW51Iil8fGF3YWl0IGwuZGVzdHJveSgpfSksZG9jdW1lbnQuYm9keS5hcHBlbmQobCksYXdhaXQgTXQuc21hcnRkZWxheS5kZWxheUZvcigwKTtsZXQgZj1sLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGc9d2luZG93LmlubmVyV2lkdGgseT13aW5kb3cuaW5uZXJIZWlnaHQsdj1jLmNsaWVudFksbT1jLmNsaWVudFg7bStmLndpZHRoPmcmJihtPWctZi53aWR0aC0xMCksditmLmhlaWdodD55JiYodj15LWYuaGVpZ2h0LTEwKSxtPDEwJiYobT0xMCksdjwxMCYmKHY9MTApLGwuc3R5bGUudG9wPWAke3Z9cHhgLGwuc3R5bGUubGVmdD1gJHttfXB4YCxsLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj0idG9wIGxlZnQiLGF3YWl0IE10LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksbC5zdHlsZS5vcGFjaXR5PSIxIixsLnN0eWxlLnRyYW5zZm9ybT0ic2NhbGUoMSkgdHJhbnNsYXRlWSgwKSJ9I2U9eHEodGhpcyxuLFtdKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG1lbnVJdGVtcyhjKXt0aGlzLiNlPWN9d2luZG93TGF5ZXI9eHEodGhpcyxvKTtzdWJtZW51PW51bGw7c3VibWVudVRpbWVvdXQ9bnVsbDtwYXJlbnRNZW51PW51bGw7aXNEZXN0cm95aW5nPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYkluZGV4PTB9c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIG1heC13aWR0aDogMjgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CgogICAgICAubWVudWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5oYXMtc3VibWVudTo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICfigLonOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTphY3RpdmU6bm90KC5oYXMtc3VibWVudSkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1lbnVpdGVtLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS1zaG9ydGN1dCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKGM9PntpZigiZGl2aWRlciJpbiBjJiZjLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudS1kaXZpZGVyIj48L2Rpdj5gO2xldCBwPWMsbD1wLnN1Ym1lbnUmJnAuc3VibWVudS5sZW5ndGg+MDtyZXR1cm4gd2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibWVudWl0ZW0gJHtwLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9ICR7bD8iaGFzLXN1Ym1lbnUiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiFwLmRpc2FibGVkJiYhbCYmdGhpcy5oYW5kbGVDbGljayhwKX0KICAgICAgICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmhhbmRsZU1lbnVJdGVtSG92ZXIocCxsKX0KICAgICAgICAgICAgICBAbW91c2VsZWF2ZT0keygpPT50aGlzLmhhbmRsZU1lbnVJdGVtTGVhdmUoKX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7cC5pY29uTmFtZT93YAogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtwLmljb25OYW1lfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+JHtwLm5hbWV9PC9zcGFuPgogICAgICAgICAgICAgICR7cC5zaG9ydGN1dCYmIWw/d2AKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51aXRlbS1zaG9ydGN1dCI+JHtwLnNob3J0Y3V0fTwvc3Bhbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9KX0KICAgICAgICAke3RoaXMubWVudUl0ZW1zLmxlbmd0aD09PTA/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudWl0ZW0iIEBjbGljaz0keygpPT57ZC5jb250ZXh0TWVudURlYWN0aXZhdGVkPSEwLHRoaXMuZGVzdHJveSgpfX0+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ibHVjaWRlOngiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51aXRlbS10ZXh0Ij5BbGxvdyBuYXRpdmUgY29udGV4dDwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgYDp3YGB9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmZvY3VzKCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmhhbmRsZUtleWRvd24pfWhhbmRsZUtleWRvd249Yz0+e2xldCBwPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51aXRlbTpub3QoLmRpc2FibGVkKSIpKSxsPXAuZmluZEluZGV4KGY9PmYubWF0Y2hlcygiOmhvdmVyIikpO3N3aXRjaChjLmtleSl7Y2FzZSJBcnJvd0Rvd24iOmMucHJldmVudERlZmF1bHQoKTtsZXQgZj1sKzE8cC5sZW5ndGg/bCsxOjA7cFtmXS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWVudGVyIikpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6Yy5wcmV2ZW50RGVmYXVsdCgpO2xldCBnPWwtMT49MD9sLTE6cC5sZW5ndGgtMTtwW2ddLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoIm1vdXNlZW50ZXIiKSk7YnJlYWs7Y2FzZSJFbnRlciI6Yy5wcmV2ZW50RGVmYXVsdCgpLGw+PTAmJnBbbF0uY2xpY2soKTticmVhaztjYXNlIkVzY2FwZSI6Yy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVzdHJveSgpO2JyZWFrfX07YXN5bmMgaGFuZGxlQ2xpY2soYyl7Yy5hY3Rpb24oKSxhd2FpdCB0aGlzLmRlc3Ryb3lBbGwoKX1hc3luYyBoYW5kbGVNZW51SXRlbUhvdmVyKGMscCl7dGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpLHRoaXMuc3VibWVudSYmYXdhaXQgdGhpcy5oaWRlU3VibWVudSgpLHAmJmMuc3VibWVudSYmKHRoaXMuc3VibWVudVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc2hvd1N1Ym1lbnUoYyl9LDIwMCkpfWhhbmRsZU1lbnVJdGVtTGVhdmUoKXt0aGlzLnN1Ym1lbnVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zdWJtZW51JiYhdGhpcy5zdWJtZW51Lm1hdGNoZXMoIjpob3ZlciIpJiZ0aGlzLmhpZGVTdWJtZW51KCl9LDMwMCl9YXN5bmMgc2hvd1N1Ym1lbnUoYyl7aWYoIWMuc3VibWVudXx8Yy5zdWJtZW51Lmxlbmd0aD09PTApcmV0dXJuO2xldCBsPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51aXRlbSIpKS5maW5kKE09Pk0ucXVlcnlTZWxlY3RvcigiLm1lbnVpdGVtLXRleHQiKT8udGV4dENvbnRlbnQ9PT1jLm5hbWUpO2lmKCFsKXJldHVybjt0aGlzLnN1Ym1lbnU9bmV3IGQsdGhpcy5zdWJtZW51Lm1lbnVJdGVtcz1jLnN1Ym1lbnUsdGhpcy5zdWJtZW51LnBhcmVudE1lbnU9dGhpcyx0aGlzLnN1Ym1lbnUuc3R5bGUucG9zaXRpb249ImZpeGVkIix0aGlzLnN1Ym1lbnUuc3R5bGUuekluZGV4PVN0cmluZyhwYXJzZUludCh0aGlzLnN0eWxlLnpJbmRleCkrMSksdGhpcy5zdWJtZW51LnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuc3VibWVudS5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDAuOTUpIixkb2N1bWVudC5ib2R5LmFwcGVuZCh0aGlzLnN1Ym1lbnUpLGF3YWl0IE10LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGY9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxnPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkseT10aGlzLnN1Ym1lbnUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj13aW5kb3cuaW5uZXJXaWR0aCxtPWcucmlnaHQtNCx4PWYudG9wO20reS53aWR0aD52LTEwJiYobT1nLmxlZnQteS53aWR0aCs0KSx4K3kuaGVpZ2h0PndpbmRvdy5pbm5lckhlaWdodC0xMCYmKHg9d2luZG93LmlubmVySGVpZ2h0LXkuaGVpZ2h0LTEwKSx0aGlzLnN1Ym1lbnUuc3R5bGUubGVmdD1gJHttfXB4YCx0aGlzLnN1Ym1lbnUuc3R5bGUudG9wPWAke3h9cHhgLGF3YWl0IE10LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCksdGhpcy5zdWJtZW51LnN0eWxlLm9wYWNpdHk9IjEiLHRoaXMuc3VibWVudS5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIix0aGlzLnN1Ym1lbnUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsKCk9Pnt0aGlzLnN1Ym1lbnVUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9bnVsbCl9KSx0aGlzLnN1Ym1lbnUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9Pnt0aGlzLmhhbmRsZU1lbnVJdGVtTGVhdmUoKX0pfWFzeW5jIGhpZGVTdWJtZW51KCl7dGhpcy5zdWJtZW51JiYoYXdhaXQgdGhpcy5zdWJtZW51LmRlc3Ryb3koKSx0aGlzLnN1Ym1lbnU9bnVsbCl9YXN5bmMgZGVzdHJveSgpe3RoaXMuaXNEZXN0cm95aW5nfHwodGhpcy5pc0Rlc3Ryb3lpbmc9ITAsdGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpLHRoaXMuc3VibWVudSYmKGF3YWl0IHRoaXMuc3VibWVudS5kZXN0cm95KCksdGhpcy5zdWJtZW51PW51bGwpLHRoaXMud2luZG93TGF5ZXImJiF0aGlzLnBhcmVudE1lbnUmJnRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLHRoaXMuc3R5bGUub3BhY2l0eT0iMCIsdGhpcy5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDAuOTUpIHRyYW5zbGF0ZVkoLTEwcHgpIixhd2FpdCBNdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksdGhpcy5wYXJlbnRFbGVtZW50JiZ0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcykpfWFzeW5jIGRlc3Ryb3lBbGwoKXtsZXQgYz10aGlzO2Zvcig7Yy5wYXJlbnRNZW51OyljPWMucGFyZW50TWVudTthd2FpdCBjLmRlc3Ryb3koKX1zdGF0aWN7eHEoaSxhKX19O3JldHVybiBkPWl9KSgpO1V0LmluaXRpYWxpemVHbG9iYWxMaXN0ZW5lcigpfSk7dmFyIHM5dCx3cSxFanQsbjl0PWIoKCk9Pnt1ZSgpO3M5dD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LHdxPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxFanQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWRlbW93cmFwcGVyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe2F0dHJpYnV0ZTohMX0pXSxzOXQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJydW5BZnRlclJlbmRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cD0+InJ1bkFmdGVyUmVuZGVyImluIHAsZ2V0OnA9PnAucnVuQWZ0ZXJSZW5kZXIsc2V0OihwLGwpPT57cC5ydW5BZnRlclJlbmRlcj1sfX0sbWV0YWRhdGE6Y30sbixvKSxzOXQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxkPWk9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX0jZT13cSh0aGlzLG4sdm9pZCAwKTtnZXQgcnVuQWZ0ZXJSZW5kZXIoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcnVuQWZ0ZXJSZW5kZXIoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W1FgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShjPT5zZXRUaW1lb3V0KGMsNTApKSx0aGlzLmNoaWxkcmVuLmxlbmd0aD4wJiZ0aGlzLnJ1bkFmdGVyUmVuZGVyKXRyeXthd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNhdGNoKGMpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGluIHJ1bkFmdGVyUmVuZGVyOiIsYyl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx3cSh0aGlzLG8pfXN0YXRpY3t3cShpLGEpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgeTE9YigoKT0+e245dCgpfSk7dmFyIG85dCxsOXQ9YigoKT0+e3VlKCk7eTEoKTtvOXQ9KCk9PntsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLWFwcHVpLWFjdGl2aXR5bG9nIik7cmV0dXJuIHNldFRpbWVvdXQoKCk9Pnt0LmFkZE1hbnkoW3t0eXBlOiJsb2dpbiIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6ImxvZ2dlZCBpbiBmcm9tIENocm9tZSBvbiBtYWNPUyJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOidjcmVhdGVkIGEgbmV3IHByb2plY3QgIkZyb250ZW5kIEFwcCInfSx7dHlwZToidXBkYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJ1cGRhdGVkIEFQSSBkb2N1bWVudGF0aW9uIn0se3R5cGU6InZpZXciLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJ2aWV3ZWQgZGFzaGJvYXJkIGFuYWx5dGljcyJ9LHt0eXBlOiJkZWxldGUiLHVzZXI6IkFkbWluIixtZXNzYWdlOiJyZW1vdmVkIGRlcHJlY2F0ZWQgZW5kcG9pbnQifSx7dHlwZToiY3VzdG9tIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6InNjaGVkdWxlZCBiYWNrdXAgY29tcGxldGVkIixpY29uTmFtZToibHVjaWRlOmRhdGFiYXNlIn0se3R5cGU6ImxvZ291dCIsdXNlcjoiQWxpY2UgQnJvd24iLG1lc3NhZ2U6ImxvZ2dlZCBvdXQifSx7dHlwZToiY3JlYXRlIix1c2VyOiJKYW5lIFNtaXRoIixtZXNzYWdlOiJjcmVhdGVkIGludm9pY2UgIzEyMzQifV0pLHQuZW50cmllcyQuc3Vic2NyaWJlKGU9Pntjb25zb2xlLmxvZygiQWN0aXZpdHkgbG9nIHVwZGF0ZWQ6IixlLmxlbmd0aCwiZW50cmllcyIpfSl9LDEwMCksd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8c3R5bGU+CiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgICAke3R9CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9fSk7dmFyIFN4LHEwLGM5dCxNcT1iKCgpPT57dWUoKTtUdCgpO3MyKCk7RHQoKTtsOXQoKTtxZSgpO1N4PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0scTA9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGM5dD0oKCk9PntsZXQgdD1baGUoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSigpXSxkPVtKKCldLGw9W0ooKV0sU3godGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4iZW50cmllcyJpbiBtLGdldDptPT5tLmVudHJpZXMsc2V0OihtLHgpPT57bS5lbnRyaWVzPXh9fSxtZXRhZGF0YTp2fSxuLG8pLFN4KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJzZWFyY2hRdWVyeSJpbiBtLGdldDptPT5tLnNlYXJjaFF1ZXJ5LHNldDoobSx4KT0+e20uc2VhcmNoUXVlcnk9eH19LG1ldGFkYXRhOnZ9LGMscCksU3godGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJDcml0ZXJpYSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImZpbHRlckNyaXRlcmlhImluIG0sZ2V0Om09Pm0uZmlsdGVyQ3JpdGVyaWEsc2V0OihtLHgpPT57bS5maWx0ZXJDcml0ZXJpYT14fX0sbWV0YWRhdGE6dn0sZixnKSxTeChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLGEpLHk9aT1lLnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vPW85dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPXEwKHRoaXMsbixbXSk7Z2V0IGVudHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50cmllcyh2KXt0aGlzLiNlPXZ9I3Q9KHEwKHRoaXMsbykscTAodGhpcyxjLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KHYpe3RoaXMuI3Q9dn0jYT0ocTAodGhpcyxwKSxxMCh0aGlzLGYse30pKTtnZXQgZmlsdGVyQ3JpdGVyaWEoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsdGVyQ3JpdGVyaWEodil7dGhpcy4jYT12fWVudHJpZXMkPShxMCh0aGlzLGcpLG5ldyBNdC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGFsaWduZWQgd2l0aCBzZWNvbmRhcnkgbWVudSAqLwogICAgICAgIC0tYWN0aXZpdHlsb2ctYmc6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnOiAke2guYmRUaGVtZSgiIzUyNTI1MiIsIiNhM2EzYTMiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZy1tdXRlZDogJHtoLmJkVGhlbWUoIiM3MzczNzMiLCIjNzM3MzczIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlOiAke2guYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1ib3JkZXI6ICR7aC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWhvdmVyOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1hY2NlbnQ6ICR7aC5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKCiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDI4MHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIgd2l0aCBzdHJlYW1pbmcgaW5kaWNhdG9yICovCiAgICAgIC50b3BiYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1hY3Rpdml0eWxvZy1ib3JkZXIpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnRvcGJhciAuaGVhZGluZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5saXZlLWluZGljYXRvciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAubGl2ZS1pbmRpY2F0b3IgLmRvdCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzIyYzU1ZSIsIiMyMmM1NWUiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC41OyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IH0KICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH0KICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgY29udGFpbmVyICovCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDhweDsKICAgICAgICBib3R0b206IDQ4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5Q29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzMzMzMzMyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjYTNhM2EzIiwiIzUyNTI1MiIpfTsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHggMTZweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICB9CgogICAgICAvKiBEYXRlIHNlcGFyYXRvciAtIHdhcm0gdGF1cGUgc3R5bGluZyAqLwogICAgICAuZGF0ZS1zZXBhcmF0b3IgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWFjY2VudCk7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGVudHJ5IC0gbW9kZXJuIHN0YWNrZWQgbGF5b3V0ICovCiAgICAgIC5hY3Rpdml0eWVudHJ5IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgbWFyZ2luOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICAgIH0KICAgICAgICB0byB7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmFjdGl2aXR5ZW50cnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWhvdmVyKTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmxvZ2luIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgzNCwgMTk3LCA5NCwgMC4wOCkiLCJyZ2JhKDM0LCAxOTcsIDk0LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxNmEzNGEiLCIjNGFkZTgwIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5sb2dvdXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnZpZXcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uY3JlYXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgxNjgsIDg1LCAyNDcsIDAuMDgpIiwicmdiYSgxNjgsIDg1LCAyNDcsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzkzMzNlYSIsIiNjMDg0ZmMiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLnVwZGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjUxLCAxNDYsIDYwLCAwLjA4KSIsInJnYmEoMjUxLCAxNDYsIDYwLCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5kZWxldGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmN1c3RvbSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMTAwLCAxMTYsIDEzOSwgMC4wOCkiLCJyZ2JhKDEwMCwgMTE2LCAxMzksIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzQ3NTU2OSIsIiM5NGEzYjgiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXVzZXIgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAuYWN0aXZpdHktc2VwYXJhdG9yIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgfQoKICAgICAgLnRpbWVzdGFtcCB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LW1lc3NhZ2UgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLyogU2VhcmNoIGJveCAtIHJlZmluZWQgc3R5bGluZyAqLwogICAgICAuc2VhcmNoYm94IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KSIpfTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHggMCAzNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAyKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtd3JhcHBlcjpoYXMoaW5wdXQ6Zm9jdXMpIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IHY9dGhpcy5nZXRGaWx0ZXJlZEVudHJpZXMoKSxtPXRoaXMuZ3JvdXBFbnRyaWVzQnlEYXRlKHYpO3JldHVybiB3YAogICAgICAke2IxLnN0eWxlc30KICAgICAgPHN0eWxlPjwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InRvcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIj5BY3Rpdml0eSBMb2c8L2Rpdj4KICAgICAgICAgICR7di5sZW5ndGg+MD93YDxkaXYgY2xhc3M9ImxpdmUtaW5kaWNhdG9yIj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+TGl2ZTwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHlDb250YWluZXIiPgogICAgICAgICAgJHt2Lmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+Tm8gYWN0aXZpdHkgZW50cmllczwvZGl2PmA6bS5tYXAoeD0+d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGF0ZS1zZXBhcmF0b3IiPiR7eC5sYWJlbH08L2Rpdj4KICAgICAgICAgICAgICAgICAgJHt4LmVudHJpZXMubWFwKE09PnRoaXMucmVuZGVyQWN0aXZpdHlFbnRyeShNKSl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJzZWFyY2gtaWNvbiIgLmljb249JHsibHVjaWRlOnNlYXJjaCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggYWN0aXZpdGllcywgdXNlcnMuLi4iCiAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5zZWFyY2hRdWVyeX0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVNlYXJjaElucHV0fQogICAgICAgICAgICAvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpdml0eUVudHJ5KHYpe2xldCBtPXYudGltZXN0YW1wfHxuZXcgRGF0ZSx4PXRoaXMuZm9ybWF0VGltZShtKSxNPXYuaWNvbk5hbWV8fHRoaXMuZ2V0SWNvbkZvclR5cGUodi50eXBlKTtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpdml0eWVudHJ5IgogICAgICAgIEBjb250ZXh0bWVudT0ke1M9PnRoaXMuaGFuZGxlQ29udGV4dE1lbnUoUyx2KX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWljb24gJHt2LnR5cGV9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtNfT48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5LWhlYWRlciI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS11c2VyIj4ke3YudXNlcn08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1zZXBhcmF0b3IiPsK3PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZXN0YW1wIj4ke3h9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1tZXNzYWdlIj4ke3YubWVzc2FnZX08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFkZCh2KXtsZXQgbT17Li4udixpZDp2LmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6di50aW1lc3RhbXB8fG5ldyBEYXRlfTt0aGlzLmVudHJpZXM9W20sLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1hZGRNYW55KHYpe2xldCBtPXYubWFwKHg9Pih7Li4ueCxpZDp4LmlkfHx0aGlzLmdlbmVyYXRlSWQoKSx0aW1lc3RhbXA6eC50aW1lc3RhbXB8fG5ldyBEYXRlfSkpO3RoaXMuZW50cmllcz1bLi4ubS5yZXZlcnNlKCksLi4udGhpcy5lbnRyaWVzXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1jbGVhcigpe3RoaXMuZW50cmllcz1bXSx0aGlzLmVudHJpZXMkLm5leHQodGhpcy5lbnRyaWVzKX1nZXRFbnRyaWVzKCl7cmV0dXJuWy4uLnRoaXMuZW50cmllc119ZmlsdGVyKHYpe3JldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKG09PiEodi51c2VyJiZtLnVzZXIhPT12LnVzZXJ8fHYudHlwZSYmbS50eXBlIT09di50eXBlKSl9c2VhcmNoKHYpe2xldCBtPXYudG9Mb3dlckNhc2UoKTtyZXR1cm4gdGhpcy5lbnRyaWVzLmZpbHRlcih4PT54Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtKXx8eC51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobSkpfWdlbmVyYXRlSWQoKXtyZXR1cm5gYWN0aXZpdHktJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9Z2V0RmlsdGVyZWRFbnRyaWVzKCl7bGV0IHY9dGhpcy5lbnRyaWVzO2lmKHRoaXMuc2VhcmNoUXVlcnkpe2xldCBtPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTt2PXYuZmlsdGVyKHg9PngubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG0pfHx4LnVzZXIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtKSl9cmV0dXJuKHRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSYmKHY9di5maWx0ZXIobT0+ISh0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXImJm0udXNlciE9PXRoaXMuZmlsdGVyQ3JpdGVyaWEudXNlcnx8dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlJiZtLnR5cGUhPT10aGlzLmZpbHRlckNyaXRlcmlhLnR5cGUpKSksdn1ncm91cEVudHJpZXNCeURhdGUodil7bGV0IG09bmV3IE1hcCx4PW5ldyBEYXRlLE09bmV3IERhdGUoeCk7TS5zZXREYXRlKE0uZ2V0RGF0ZSgpLTEpO2ZvcihsZXQgUyBvZiB2KXtsZXQgRj1TLnRpbWVzdGFtcHx8bmV3IERhdGUsXzt0aGlzLmlzU2FtZURheShGLHgpP189IlRvZGF5Ijp0aGlzLmlzU2FtZURheShGLE0pP189Illlc3RlcmRheSI6Xz1GLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4tVVMiLHttb250aDoic2hvcnQiLGRheToibnVtZXJpYyIseWVhcjpGLmdldEZ1bGxZZWFyKCkhPT14LmdldEZ1bGxZZWFyKCk/Im51bWVyaWMiOnZvaWQgMH0pLG0uaGFzKF8pfHxtLnNldChfLFtdKSxtLmdldChfKS5wdXNoKFMpfXJldHVybiBBcnJheS5mcm9tKG0uZW50cmllcygpKS5tYXAoKFtTLEZdKT0+KHtsYWJlbDpTLGVudHJpZXM6Rn0pKX1pc1NhbWVEYXkodixtKXtyZXR1cm4gdi5nZXRGdWxsWWVhcigpPT09bS5nZXRGdWxsWWVhcigpJiZ2LmdldE1vbnRoKCk9PT1tLmdldE1vbnRoKCkmJnYuZ2V0RGF0ZSgpPT09bS5nZXREYXRlKCl9Zm9ybWF0VGltZSh2KXtyZXR1cm4gdi50b0xvY2FsZVRpbWVTdHJpbmcoImVuLVVTIix7aG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0Iixob3VyMTI6ITF9KX1nZXRJY29uRm9yVHlwZSh2KXtsZXQgbT17bG9naW46Imx1Y2lkZTpsb2dJbiIsbG9nb3V0OiJsdWNpZGU6bG9nT3V0Iix2aWV3OiJsdWNpZGU6ZXllIixjcmVhdGU6Imx1Y2lkZTpwbHVzIix1cGRhdGU6Imx1Y2lkZTplZGl0IixkZWxldGU6Imx1Y2lkZTp0cmFzaDIiLGN1c3RvbToibHVjaWRlOmFjdGl2aXR5In07cmV0dXJuIG1bdl18fG0uY3VzdG9tfWhhbmRsZVNlYXJjaElucHV0KHYpe2xldCBtPXYudGFyZ2V0O3RoaXMuc2VhcmNoUXVlcnk9bS52YWx1ZX1oYW5kbGVDb250ZXh0TWVudSh2LG0pe3YucHJldmVudERlZmF1bHQoKSxVdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyh2LFt7bmFtZToiQ29weSBhY3Rpdml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGAke20udXNlcn0gJHttLm1lc3NhZ2V9YCl9fSx7bmFtZToiRmlsdGVyIGJ5IHVzZXIiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOmFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt1c2VyOm0udXNlcn19fSx7bmFtZToiRmlsdGVyIGJ5IHR5cGUiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixhY3Rpb246YXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e3R5cGU6bS50eXBlfX19LHtuYW1lOiJDbGVhciBmaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOngiLGFjdGlvbjphc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17fSx0aGlzLnNlYXJjaFF1ZXJ5PSIifX1dKX1zdGF0aWN7cTAoaSxhKX19O3JldHVybiB5PWl9KSgpfSk7dmFyIGQ5dD1iKCgpPT57TXEoKX0pO3ZhciBwOXQ9YigoKT0+e30pO3ZhciBoOXQ9YigoKT0+e3IyKCl9KTt2YXIgdTl0PWIoKCk9Pnt9KTt2YXIgZjl0PWIoKCk9Pnt9KTt2YXIgbTl0PWIoKCk9Pnt9KTt2YXIgc289YigoKT0+e3A5dCgpO2g5dCgpO3U5dCgpO2Y5dCgpO205dCgpfSk7dmFyIGc5dCxiOXQ9YigoKT0+e3VlKCk7eTEoKTt6cSgpO2c5dD0oKT0+e2xldCB0PVt7bmFtZToiRmlsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgRmlsZSIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZS1wbHVzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXItb3BlbiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIil9LHtuYW1lOiJPcGVuIFJlY2VudCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJwcm9qZWN0LWFscGhhLnRzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDEiKX0se25hbWU6ImNvbmZpZy5qc29uIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDIiKX0se25hbWU6InJlYWRtZS5tZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAzIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKX0se25hbWU6IlNhdmUgQXMuLi4iLHNob3J0Y3V0OiJDbWQrU2hpZnQrUyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIGFzIiksZGlzYWJsZWQ6ITB9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhpdCIsc2hvcnRjdXQ6IkNtZCtRIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkV4aXQiKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ3V0Iil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGaW5kIixzaG9ydGN1dDoiQ21kK0YiLGljb25OYW1lOiJzZWFyY2giLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpfSx7bmFtZToiUmVwbGFjZSIsc2hvcnRjdXQ6IkNtZCtIIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgRnVsbHNjcmVlbiIsc2hvcnRjdXQ6IkYxMSIsaWNvbk5hbWU6ImV4cGFuZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsc2NyZWVuIil9LHtuYW1lOiJab29tIEluIixzaG9ydGN1dDoiQ21kKysiLGljb25OYW1lOiJ6b29tLWluIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKX0se25hbWU6Ilpvb20gT3V0IixzaG9ydGN1dDoiQ21kKy0iLGljb25OYW1lOiJ6b29tLW91dCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpfSx7bmFtZToiUmVzZXQgWm9vbSIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIil9LHtuYW1lOiJUb2dnbGUgVGVybWluYWwiLHNob3J0Y3V0OiJDbWQrSiIsaWNvbk5hbWU6InRlcm1pbmFsIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSB0ZXJtaW5hbCIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGljb25OYW1lOiJmaWxlLXRleHQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVsZWFzZSBub3RlcyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlcG9ydCBJc3N1ZSIsaWNvbk5hbWU6ImJ1ZyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBvcnQgaXNzdWUiKX0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpfV19XTtyZXR1cm4gd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIiNhcHBiYXIiKSxpPWUucXVlcnlTZWxlY3RvckFsbCgiLnN0YXR1cy10b2dnbGUgZGVlcy1idXR0b24iKTtpWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EudXNlcj17Li4uYS51c2VyLHN0YXR1czoib25saW5lIn19KSxpWzFdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EudXNlcj17Li4uYS51c2VyLHN0YXR1czoiYnVzeSJ9fSksaVsyXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnthLnVzZXI9ey4uLmEudXNlcixzdGF0dXM6ImF3YXkifX0pLGlbM10uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS51c2VyPXsuLi5hLnVzZXIsc3RhdHVzOiJvZmZsaW5lIn19KSxlLnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3ctY29udHJvbHMtdG9nZ2xlIGRlZXMtYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS5zaG93V2luZG93Q29udHJvbHM9IWEuc2hvd1dpbmRvd0NvbnRyb2xzfSk7bGV0IHM9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuYnJlYWRjcnVtYi10b2dnbGUgZGVlcy1idXR0b24iKTtzWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2EuYnJlYWRjcnVtYnM9IkhvbWUgPiBEb2N1bWVudHMgPiBQcm9qZWN0cyA+IE15QXBwID4gc3JjID4gaW5kZXgudHMifSksc1sxXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnthLmJyZWFkY3J1bWJzPSJEYXNoYm9hcmQifSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgaGVpZ2h0OiA2MDBweDsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGNvbG9yOiAjY2NjOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9sLWdyb3VwIGxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtYXBwdWktYXBwYmFyCiAgICAgICAgaWQ9ImFwcGJhciIKICAgICAgICAubWVudUl0ZW1zPSR7dH0KICAgICAgICAuYnJlYWRjcnVtYnM9JHsiUHJvamVjdCA+IHNyYyA+IGNvbXBvbmVudHMgPiBBcHBCYXIudHMifQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7IiA+ICJ9CiAgICAgICAgLnNob3dXaW5kb3dDb250cm9scz0keyEwfQogICAgICAgIC5zaG93U2VhcmNoPSR7ITB9CiAgICAgICAgLnRoZW1lPSR7ImRhcmsifQogICAgICAgIC51c2VyPSR7e25hbWU6IkpvaG4gRG9lIixzdGF0dXM6Im9ubGluZSJ9fQogICAgICAgIEBtZW51LXNlbGVjdD0ke2U9PmNvbnNvbGUubG9nKCJNZW51IHNlbGVjdGVkOiIsZS5kZXRhaWwuaXRlbSl9CiAgICAgICAgQGJyZWFkY3J1bWItbmF2aWdhdGU9JHtlPT5jb25zb2xlLmxvZygiQnJlYWRjcnVtYiBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICAgIEBzZWFyY2gtY2xpY2s9JHsoKT0+Y29uc29sZS5sb2coIlNlYXJjaCBjbGlja2VkIil9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PmNvbnNvbGUubG9nKCJVc2VyIG1lbnUgY2xpY2tlZCIpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgIDxoMj5BcHAgQmFyIERlbW88L2gyPgogICAgICAgIDxwPlRoaXMgZGVtbyBzaG93cyB2YXJpb3VzIGZlYXR1cmVzIG9mIHRoZSBhcHAgYmFyIGNvbXBvbmVudDo8L3A+CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPkR5bmFtaWMgbWVudSBpdGVtcyB3aXRoIGljb25zLCBzaG9ydGN1dHMsIGFuZCBzdWJtZW51czwvbGk+CiAgICAgICAgICA8bGk+QnJlYWRjcnVtYiBuYXZpZ2F0aW9uPC9saT4KICAgICAgICAgIDxsaT5Vc2VyIGFjY291bnQgc2VjdGlvbiB3aXRoIHN0YXR1cyBpbmRpY2F0b3I8L2xpPgogICAgICAgICAgPGxpPlNlYXJjaCBpY29uPC9saT4KICAgICAgICAgIDxsaT5XaW5kb3cgY29udHJvbHMgKHBsYXRmb3JtLXNwZWNpZmljKTwvbGk+CiAgICAgICAgICA8bGk+RGFyay9saWdodCB0aGVtZSBzdXBwb3J0PC9saT4KICAgICAgICAgIDxsaT5LZXlib2FyZCBuYXZpZ2F0aW9uIChUYWIsIEVudGVyLCBFc2NhcGUpPC9saT4KICAgICAgICAgIDxsaT5DdXN0b20gZXZlbnRzIGZvciBhbGwgaW50ZXJhY3Rpb25zPC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5UaGVtZTwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9InRoZW1lLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXJrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkxpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VXNlciBTdGF0dXM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJzdGF0dXMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9ubGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5CdXN5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkF3YXk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+T2ZmbGluZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPldpbmRvdyBDb250cm9sczwvbGFiZWw+CiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgY2xhc3M9IndpbmRvdy1jb250cm9scy10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+VG9nZ2xlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+QnJlYWRjcnVtYnM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJicmVhZGNydW1iLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Mb25nIFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2hvcnQgUGF0aDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9fSk7dmFyIHY5dCx5OXQ9YigoKT0+e3VlKCk7djl0PVtoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIHRoZW1pbmcgKi8KICAgICAgICAtLWFwcGJhci1oZWlnaHQ6IDQwcHg7CiAgICAgICAgLS1hcHBiYXItZm9udC1zaXplOiAxMnB4OwogICAgICAgIAogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IHZhcigtLWFwcGJhci1oZWlnaHQpOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tYXBwYmFyLWZvbnQtc2l6ZSk7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBkcmFnOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBuby1kcmFnOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAvKiBPcHRpb25hbDogU3R5bGUgZm9yIG1lbnUgaXRlbXMgd2l0aCBpY29ucyAobm90IHR5cGljYWxseSB1c2VkIGZvciB0b3AtbGV2ZWwgaXRlbXMpICovCiAgICAgIC5tZW51SXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYyMCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDIwIiwiI2ZmZmZmZjMwIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW06Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjMDAwMDAwODAiLCIjZmZmZmZmODAiKX07CiAgICAgIH0KCgogICAgICAvKiBEcm9wZG93biBzdHlsZXMgKi8KICAgICAgLmRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycywgdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5vcGVuIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWl0ZW0gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbTpob3ZlciwKICAgICAgLmRyb3Bkb3duLWl0ZW0uZm9jdXNlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxMCIsIiNmZmZmZmYyMCIpfTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbVtkaXNhYmxlZF0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbSAuc2hvcnRjdXQgewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIH0KCiAgICAgIC8qIEJyZWFkY3J1bWJzICovCiAgICAgIC5icmVhZGNydW1icyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4yczsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItaXRlbTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJyZWFkY3J1bWItc2VwYXJhdG9yIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogQWNjb3VudCBzZWN0aW9uICovCiAgICAgIC5hY2NvdW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuc2VhcmNoLWljb246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwogICAgICB9CgogICAgICAudXNlci1pbmZvOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMjAiLCIjZmZmZmZmMzAiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQoKICAgICAgLnVzZXItYXZhdGFyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9ubGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzRjYWY1MDsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9mZmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ0MzM2OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYXdheSB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmOTgwMDsKICAgICAgfQoKICAgICAgLyogQWN0aXZpdHkgbG9nIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmFjdGl2aXR5LXRvZ2dsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMnB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogbm8tZHJhZzsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDA2MCIsIiNmZmZmZmY2MCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjE1Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktYmFkZ2UgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tbGVmdDogNHB4OwogICAgICAgIG1pbi13aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM1MjUyNTIiLCIjNTI1MjUyIil9OwogICAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIH0KICAgIGBdfSk7dmFyIHg5dCx3OXQ9YigoKT0+e3VlKCk7eDl0PXQ9PndgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudXMiPgogICAgICAgICAgJHt0LnNob3dXaW5kb3dDb250cm9scz93YDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gOiIifQogICAgICAgICAgJHt0LnJlbmRlck1lbnVJdGVtcygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJyZWFkY3J1bWJzIj4KICAgICAgICAgICR7dC5yZW5kZXJCcmVhZGNydW1icygpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjY291bnQiPgogICAgICAgICAgJHt0LnJlbmRlckFjY291bnRTZWN0aW9uKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIGB9KTt2YXIga3EsbTgsTTl0LFNxPWIoKCk9Pnt1ZSgpO3FlKCk7a3E9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxtOD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sTTl0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy13aW5kb3djb250cm9scyIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHtyZWZsZWN0OiEwfSldLGQ9W0koe3JlZmxlY3Q6ITB9KV0sa3EodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4idHlwZSJpbiBnLGdldDpnPT5nLnR5cGUsc2V0OihnLHkpPT57Zy50eXBlPXl9fSxtZXRhZGF0YTpmfSxuLG8pLGtxKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJwb3NpdGlvbiJpbiBnLGdldDpnPT5nLnBvc2l0aW9uLHNldDooZyx5KT0+e2cucG9zaXRpb249eX19LG1ldGFkYXRhOmZ9LGMscCksa3EobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Zn0sbnVsbCxhKSxsPWk9ZS52YWx1ZSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX1zdGF0aWMgZGVtbz0oKT0+d2A8ZGVlcy13aW5kb3djb250cm9scz48L2RlZXMtd2luZG93Y29udHJvbHM+YDtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT1tOCh0aGlzLG4sIm1hYyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoZil7dGhpcy4jZT1mfSN0PShtOCh0aGlzLG8pLG04KHRoaXMsYywibGVmdCIpKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24oZil7dGhpcy4jdD1mfXN0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYgewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjIyMjIyOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LmNsb3NlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY1ZjU3OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdi50b0RvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmJkMmU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2Lm1pbk1heCB7CiAgICAgICAgYmFja2dyb3VuZDogIzI3YzkzZjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy50eXBlPT09Im1hYyImJnRoaXMucG9zaXRpb249PT0ibGVmdCJ8fCh0aGlzLnR5cGU9PT0ibGludXgifHx0aGlzLnR5cGU9PT0id2luZG93cyIpJiZ0aGlzLnBvc2l0aW9uPT09InJpZ2h0Ij93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3dDb250cm9scyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvRG9jayI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWluTWF4Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG04KHRoaXMscCl9c3RhdGlje204KGksYSl9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBnOCxBcyx6OXQsQ3E9YigoKT0+e3IyKCk7dWkoKTt1ZSgpO3FlKCk7Zzg9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxBcz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sejl0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpPYmplY3R9KV0sZD1bSSh7dHlwZTpBcnJheX0pXSxsPVtJKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx5PVtJKHt0eXBlOlN0cmluZ30pXSxnOCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ1c2VyImluIFMsZ2V0OlM9PlMudXNlcixzZXQ6KFMsRik9PntTLnVzZXI9Rn19LG1ldGFkYXRhOk19LG4sbyksZzgodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJtZW51SXRlbXMiaW4gUyxnZXQ6Uz0+Uy5tZW51SXRlbXMsc2V0OihTLEYpPT57Uy5tZW51SXRlbXM9Rn19LG1ldGFkYXRhOk19LGMscCksZzgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJpc09wZW4iaW4gUyxnZXQ6Uz0+Uy5pc09wZW4sc2V0OihTLEYpPT57Uy5pc09wZW49Rn19LG1ldGFkYXRhOk19LGYsZyksZzgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InBvc2l0aW9uImluIFMsZ2V0OlM9PlMucG9zaXRpb24sc2V0OihTLEYpPT57Uy5wb3NpdGlvbj1GfX0sbWV0YWRhdGE6TX0sdixtKSxnOChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpNfSxudWxsLGEpLHg9aT1lLnZhbHVlLE0mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TX0pfXN0YXRpYyBkZW1vPSgpPT53YAogICAgPGRlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duCiAgICAgIC51c2VyPSR7e25hbWU6IkpvaG4gRG9lIixlbWFpbDoiam9obi5kb2VAZXhhbXBsZS5jb20iLGF2YXRhcjoiaHR0cHM6Ly9yYW5kb211c2VyLm1lL2FwaS9wb3J0cmFpdHMvbWVuLzEuanBnIixzdGF0dXM6Im9ubGluZSJ9fQogICAgICAubWVudUl0ZW1zPSR7W3tuYW1lOiJQcm9maWxlIFNldHRpbmdzIixpY29uTmFtZToidXNlciIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIil9LHtuYW1lOiJBY2NvdW50IixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQWNjb3VudCIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkhlbHAgJiBTdXBwb3J0IixpY29uTmFtZToiaGVscENpcmNsZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJIZWxwIil9LHtuYW1lOiJLZXlib2FyZCBTaG9ydGN1dHMiLGljb25OYW1lOiJrZXlib2FyZCIsc2hvcnRjdXQ6IkNtZCtLIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibG9nT3V0IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNpZ24gb3V0Iil9XX0KICAgICAgLmlzT3Blbj0keyEwfQogICAgPjwvZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPUFzKHRoaXMsbix2b2lkIDApO2dldCB1c2VyKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHVzZXIoTSl7dGhpcy4jZT1NfSN0PShBcyh0aGlzLG8pLEFzKHRoaXMsYyxbXSkpO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbWVudUl0ZW1zKE0pe3RoaXMuI3Q9TX0jYT0oQXModGhpcyxwKSxBcyh0aGlzLGYsITEpKTtnZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzT3BlbihNKXt0aGlzLiNhPU19I2k9KEFzKHRoaXMsZyksQXModGhpcyx2LCJ0b3AtcmlnaHQiKSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHBvc2l0aW9uKE0pe3RoaXMuI2k9TX1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbWluLXdpZHRoOiAyMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgICAgICAgei1pbmRleDogJHtpMi5vdmVybGF5LmRyb3Bkb3dufTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2lzb3Blbl0pIC5kcm9wZG93biB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5iYWNrZHJvcCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogUG9zaXRpb24gdmFyaWFudHMgKi8KICAgICAgLmRyb3Bkb3duLnRvcC1yaWdodCB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLnRvcC1sZWZ0IHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5ib3R0b20tcmlnaHQgewogICAgICAgIGJvdHRvbTogMTAwJTsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi5ib3R0b20tbGVmdCB7CiAgICAgICAgYm90dG9tOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAvKiBVc2VyIHNlY3Rpb24gKi8KICAgICAgLnVzZXItc2VjdGlvbiB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICB9CgogICAgICAudXNlci1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9ubGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzRjYWY1MDsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLm9mZmxpbmUgewogICAgICAgIGJhY2tncm91bmQ6ICM3NTc1NzU7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5idXN5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjQ0MzM2OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMuYXdheSB7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmOTgwMDsKICAgICAgfQoKICAgICAgLnVzZXItZGV0YWlscyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC51c2VyLW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudXNlci1lbWFpbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgfQoKICAgICAgLyogTWVudSBzZWN0aW9uICovCiAgICAgIC5tZW51LXNlY3Rpb24gewogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICB9CgogICAgICAubWVudS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CgogICAgICAubWVudS1pdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpIil9OwogICAgICB9CgogICAgICAubWVudS1pdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtaXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudS1zaG9ydGN1dCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQoKICAgICAgLyogQmFja2Ryb3AgZm9yIG1vYmlsZSAqLwogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAuYmFja2Ryb3AgewogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAwOwogICAgICAgICAgbGVmdDogMDsKICAgICAgICAgIHJpZ2h0OiAwOwogICAgICAgICAgYm90dG9tOiAwOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgei1pbmRleDogJHtpMi5iYWNrZHJvcC5kcm9wZG93bn07CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtpc29wZW5dKSAuYmFja2Ryb3AgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQoKICAgICAgICAuZHJvcGRvd24gewogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICByaWdodDogYXV0bzsKICAgICAgICAgIGJvdHRvbTogYXV0bzsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDAuOTUpOwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzJweCk7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtpc29wZW5dKSAuZHJvcGRvd24gewogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7CiAgICAgICAgfQogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYmFja2Ryb3AiIEBjbGljaz0keygpPT50aGlzLmNsb3NlKCl9PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJkcm9wZG93biAke3RoaXMucG9zaXRpb259Ij4KICAgICAgICAke3RoaXMudXNlcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1pbmZvIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWF2YXRhciI+CiAgICAgICAgICAgICAgICAke3RoaXMudXNlci5hdmF0YXI/d2A8aW1nIHNyYz0iJHt0aGlzLnVzZXIuYXZhdGFyfSIgYWx0PSIke3RoaXMudXNlci5uYW1lfSI+YDp0aGlzLmdldEluaXRpYWxzKHRoaXMudXNlci5uYW1lKX0KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXN0YXR1cyAke3RoaXMudXNlci5zdGF0dXN9Ij48L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1kZXRhaWxzIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItbmFtZSI+JHt0aGlzLnVzZXIubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLmVtYWlsP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItZW1haWwiPiR7dGhpcy51c2VyLmVtYWlsfTwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnUtc2VjdGlvbiI+CiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChNPT50aGlzLnJlbmRlck1lbnVJdGVtKE0pKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck1lbnVJdGVtKE0pe2lmKCJkaXZpZGVyImluIE0mJk0uZGl2aWRlcilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51LWRpdmlkZXIiPjwvZGl2PmA7bGV0IFM9TTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudS1pdGVtIiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2soUyl9PgogICAgICAgICR7Uy5pY29uTmFtZT93YAogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtgbHVjaWRlOiR7Uy5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0ibWVudS1pdGVtLXRleHQiPiR7Uy5uYW1lfTwvc3Bhbj4KICAgICAgICAke1Muc2hvcnRjdXQ/d2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LXNob3J0Y3V0Ij4ke1Muc2hvcnRjdXR9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1nZXRJbml0aWFscyhNKXtyZXR1cm4gTS5zcGxpdCgiICIpLm1hcChTPT5TWzBdKS5qb2luKCIiKS50b1VwcGVyQ2FzZSgpLnNsaWNlKDAsMil9YXN5bmMgaGFuZGxlTWVudUNsaWNrKE0pe2F3YWl0IE0uYWN0aW9uKCksdGhpcy5jbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOk19LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9b3Blbigpe3RoaXMuaXNPcGVuPSEwfWNsb3NlKCl7dGhpcy5pc09wZW49ITF9dG9nZ2xlKCl7dGhpcy5pc09wZW49IXRoaXMuaXNPcGVufWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhbmRsZU91dHNpZGVDbGljaz10aGlzLmhhbmRsZU91dHNpZGVDbGljay5iaW5kKHRoaXMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZU91dHNpZGVDbGljayl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZU91dHNpZGVDbGljayl9aGFuZGxlT3V0c2lkZUNsaWNrKE0pe2lmKHRoaXMuaXNPcGVuJiYhdGhpcy5jb250YWlucyhNLnRhcmdldCkpe2xldCBTPXRoaXMucGFyZW50RWxlbWVudDtpZihTJiZTLmNvbnRhaW5zKE0udGFyZ2V0KSlyZXR1cm47dGhpcy5jbG9zZSgpfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksQXModGhpcyxtKX1zdGF0aWN7QXMoaSxhKX19O3JldHVybiB4PWl9KSgpfSk7dmFyIFoyLFd0LGs5dCx6cT1iKCgpPT57dWUoKTtUdCgpO3NvKCk7cjIoKTtiOXQoKTt5OXQoKTt3OXQoKTtEdCgpO1NxKCk7Q3EoKTtaMj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LFd0PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxrOXQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWFwcHVpLWFwcGJhciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXSxrZSxXPVtdLEQ9W10sTyxaPVtdLFk9W10sb2UsZ2U9W10sYmU9W107dmFyICRlPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOkFycmF5fSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6U3RyaW5nfSldLHk9W0koe3R5cGU6Qm9vbGVhbn0pXSx4PVtJKHt0eXBlOk9iamVjdH0pXSxGPVtJKHt0eXBlOkFycmF5fSldLE49W0koe3R5cGU6Qm9vbGVhbn0pXSxxPVtJKHt0eXBlOkJvb2xlYW59KV0sRT1bSSh7dHlwZTpOdW1iZXJ9KV0sVj1bSSh7dHlwZTpCb29sZWFufSldLHJlPVtKKCldLHdlPVtKKCldLGtlPVtKKCldLE89W0ooKV0sb2U9W0ooKV0sWjIodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJtZW51SXRlbXMiaW4gUCxnZXQ6UD0+UC5tZW51SXRlbXMsc2V0OihQLEspPT57UC5tZW51SXRlbXM9S319LG1ldGFkYXRhOkJ9LG4sbyksWjIodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJicmVhZGNydW1icyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImJyZWFkY3J1bWJzImluIFAsZ2V0OlA9PlAuYnJlYWRjcnVtYnMsc2V0OihQLEspPT57UC5icmVhZGNydW1icz1LfX0sbWV0YWRhdGE6Qn0sYyxwKSxaMih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJyZWFkY3J1bWJTZXBhcmF0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJicmVhZGNydW1iU2VwYXJhdG9yImluIFAsZ2V0OlA9PlAuYnJlYWRjcnVtYlNlcGFyYXRvcixzZXQ6KFAsSyk9PntQLmJyZWFkY3J1bWJTZXBhcmF0b3I9S319LG1ldGFkYXRhOkJ9LGYsZyksWjIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V2luZG93Q29udHJvbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJzaG93V2luZG93Q29udHJvbHMiaW4gUCxnZXQ6UD0+UC5zaG93V2luZG93Q29udHJvbHMsc2V0OihQLEspPT57UC5zaG93V2luZG93Q29udHJvbHM9S319LG1ldGFkYXRhOkJ9LHYsbSksWjIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1c2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4idXNlciJpbiBQLGdldDpQPT5QLnVzZXIsc2V0OihQLEspPT57UC51c2VyPUt9fSxtZXRhZGF0YTpCfSxNLFMpLFoyKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZmlsZU1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InByb2ZpbGVNZW51SXRlbXMiaW4gUCxnZXQ6UD0+UC5wcm9maWxlTWVudUl0ZW1zLHNldDooUCxLKT0+e1AucHJvZmlsZU1lbnVJdGVtcz1LfX0sbWV0YWRhdGE6Qn0sXyxrKSxaMih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJzaG93U2VhcmNoImluIFAsZ2V0OlA9PlAuc2hvd1NlYXJjaCxzZXQ6KFAsSyk9PntQLnNob3dTZWFyY2g9S319LG1ldGFkYXRhOkJ9LEwsQSksWjIodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93QWN0aXZpdHlMb2dUb2dnbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJzaG93QWN0aXZpdHlMb2dUb2dnbGUiaW4gUCxnZXQ6UD0+UC5zaG93QWN0aXZpdHlMb2dUb2dnbGUsc2V0OihQLEspPT57UC5zaG93QWN0aXZpdHlMb2dUb2dnbGU9S319LG1ldGFkYXRhOkJ9LEMseiksWjIodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ0NvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBQLGdldDpQPT5QLmFjdGl2aXR5TG9nQ291bnQsc2V0OihQLEspPT57UC5hY3Rpdml0eUxvZ0NvdW50PUt9fSxtZXRhZGF0YTpCfSxULCQpLFoyKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dBY3RpdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJhY3Rpdml0eUxvZ0FjdGl2ZSJpbiBQLGdldDpQPT5QLmFjdGl2aXR5TG9nQWN0aXZlLHNldDooUCxLKT0+e1AuYWN0aXZpdHlMb2dBY3RpdmU9S319LG1ldGFkYXRhOkJ9LFIsVSksWjIodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlTWVudSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImFjdGl2ZU1lbnUiaW4gUCxnZXQ6UD0+UC5hY3RpdmVNZW51LHNldDooUCxLKT0+e1AuYWN0aXZlTWVudT1LfX0sbWV0YWRhdGE6Qn0saixtZSksWjIodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkRyb3Bkb3ducyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+Im9wZW5Ecm9wZG93bnMiaW4gUCxnZXQ6UD0+UC5vcGVuRHJvcGRvd25zLHNldDooUCxLKT0+e1Aub3BlbkRyb3Bkb3ducz1LfX0sbWV0YWRhdGE6Qn0sSCxjZSksWjIodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZm9jdXNlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJmb2N1c2VkSXRlbSJpbiBQLGdldDpQPT5QLmZvY3VzZWRJdGVtLHNldDooUCxLKT0+e1AuZm9jdXNlZEl0ZW09S319LG1ldGFkYXRhOkJ9LFcsRCksWjIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb2N1c2VkRHJvcGRvd25JdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iZm9jdXNlZERyb3Bkb3duSXRlbSJpbiBQLGdldDpQPT5QLmZvY3VzZWREcm9wZG93bkl0ZW0sc2V0OihQLEspPT57UC5mb2N1c2VkRHJvcGRvd25JdGVtPUt9fSxtZXRhZGF0YTpCfSxaLFkpLFoyKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvZmlsZURyb3Bkb3duT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImlzUHJvZmlsZURyb3Bkb3duT3BlbiJpbiBQLGdldDpQPT5QLmlzUHJvZmlsZURyb3Bkb3duT3BlbixzZXQ6KFAsSyk9PntQLmlzUHJvZmlsZURyb3Bkb3duT3Blbj1LfX0sbWV0YWRhdGE6Qn0sZ2UsYmUpLFoyKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwsYSksJGU9aT1lLnZhbHVlLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfXN0YXRpYyBkZW1vPWc5dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPVd0KHRoaXMsbixbXSk7Z2V0IG1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBtZW51SXRlbXMoQil7dGhpcy4jZT1CfSN0PShXdCh0aGlzLG8pLFd0KHRoaXMsYywiIikpO2dldCBicmVhZGNydW1icygpe3JldHVybiB0aGlzLiN0fXNldCBicmVhZGNydW1icyhCKXt0aGlzLiN0PUJ9I2E9KFd0KHRoaXMscCksV3QodGhpcyxmLCIgPiAiKSk7Z2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYnJlYWRjcnVtYlNlcGFyYXRvcihCKXt0aGlzLiNhPUJ9I2k9KFd0KHRoaXMsZyksV3QodGhpcyx2LCEwKSk7Z2V0IHNob3dXaW5kb3dDb250cm9scygpe3JldHVybiB0aGlzLiNpfXNldCBzaG93V2luZG93Q29udHJvbHMoQil7dGhpcy4jaT1CfSNyPShXdCh0aGlzLG0pLFd0KHRoaXMsTSx2b2lkIDApKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNyfXNldCB1c2VyKEIpe3RoaXMuI3I9Qn0jcz0oV3QodGhpcyxTKSxXdCh0aGlzLF8sW10pKTtnZXQgcHJvZmlsZU1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNzfXNldCBwcm9maWxlTWVudUl0ZW1zKEIpe3RoaXMuI3M9Qn0jbj0oV3QodGhpcyxrKSxXdCh0aGlzLEwsITEpKTtnZXQgc2hvd1NlYXJjaCgpe3JldHVybiB0aGlzLiNufXNldCBzaG93U2VhcmNoKEIpe3RoaXMuI249Qn0jbz0oV3QodGhpcyxBKSxXdCh0aGlzLEMsITEpKTtnZXQgc2hvd0FjdGl2aXR5TG9nVG9nZ2xlKCl7cmV0dXJuIHRoaXMuI299c2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZShCKXt0aGlzLiNvPUJ9I2w9KFd0KHRoaXMseiksV3QodGhpcyxULDApKTtnZXQgYWN0aXZpdHlMb2dDb3VudCgpe3JldHVybiB0aGlzLiNsfXNldCBhY3Rpdml0eUxvZ0NvdW50KEIpe3RoaXMuI2w9Qn0jYz0oV3QodGhpcywkKSxXdCh0aGlzLFIsITEpKTtnZXQgYWN0aXZpdHlMb2dBY3RpdmUoKXtyZXR1cm4gdGhpcy4jY31zZXQgYWN0aXZpdHlMb2dBY3RpdmUoQil7dGhpcy4jYz1CfSNkPShXdCh0aGlzLFUpLFd0KHRoaXMsaixudWxsKSk7Z2V0IGFjdGl2ZU1lbnUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlTWVudShCKXt0aGlzLiNkPUJ9I3A9KFd0KHRoaXMsbWUpLFd0KHRoaXMsSCxuZXcgU2V0KSk7Z2V0IG9wZW5Ecm9wZG93bnMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgb3BlbkRyb3Bkb3ducyhCKXt0aGlzLiNwPUJ9I2g9KFd0KHRoaXMsY2UpLFd0KHRoaXMsVyxudWxsKSk7Z2V0IGZvY3VzZWRJdGVtKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGZvY3VzZWRJdGVtKEIpe3RoaXMuI2g9Qn0jdT0oV3QodGhpcyxEKSxXdCh0aGlzLFosLTEpKTtnZXQgZm9jdXNlZERyb3Bkb3duSXRlbSgpe3JldHVybiB0aGlzLiN1fXNldCBmb2N1c2VkRHJvcGRvd25JdGVtKEIpe3RoaXMuI3U9Qn0jZj0oV3QodGhpcyxZKSxXdCh0aGlzLGdlLCExKSk7Z2V0IGlzUHJvZmlsZURyb3Bkb3duT3Blbigpe3JldHVybiB0aGlzLiNmfXNldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4oQil7dGhpcy4jZj1CfXN0YXRpYyBzdHlsZXM9djl0O3JlbmRlcigpe3JldHVybiB4OXQodGhpcyl9cmVuZGVyTWVudUl0ZW1zKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKChCLFApPT50aGlzLnJlbmRlck1lbnVJdGVtKEIsYG1lbnUtJHtQfWApKX0KICAgIGB9cmVuZGVyTWVudUl0ZW0oQixQKXtpZigiZGl2aWRlciJpbiBCJiZCLmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZHJvcGRvd24tZGl2aWRlciI+PC9kaXY+YDtsZXQgSz1CLGZlPXRoaXMuYWN0aXZlTWVudT09PVAsZGU9Sy5zdWJtZW51JiZLLnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gJHtmZT8iYWN0aXZlIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7Sy5kaXNhYmxlZH0KICAgICAgICB0YWJpbmRleD0iJHtLLmRpc2FibGVkPy0xOjB9IgogICAgICAgIGRhdGEtaXRlbS1pZD0iJHtQfSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2soSyxQKX0KICAgICAgICBAa2V5ZG93bj0ke19lPT50aGlzLmhhbmRsZU1lbnVLZXlkb3duKF9lLEssUCl9CiAgICAgICAgcm9sZT0ibWVudWl0ZW0iCiAgICAgICAgYXJpYS1oYXNwb3B1cD0iJHtkZX0iCiAgICAgICAgYXJpYS1leHBhbmRlZD0iJHtmZX0iCiAgICAgID4KICAgICAgICAke0suaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtLLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICR7Sy5uYW1lfQogICAgICAgICR7ZGU/dGhpcy5yZW5kZXJEcm9wZG93bihLLnN1Ym1lbnUsUCxmZSk6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bihCLFAsSyl7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImRyb3Bkb3duICR7Sz8ib3BlbiI6IiJ9IiAKICAgICAgICBAY2xpY2s9JHtmZT0+ZmUuc3RvcFByb3BhZ2F0aW9uKCl9CiAgICAgICAgQGtleWRvd249JHtmZT0+dGhpcy5oYW5kbGVEcm9wZG93bktleWRvd24oZmUsQixQKX0KICAgICAgICB0YWJpbmRleD0iJHtLPzA6LTF9IgogICAgICAgIHJvbGU9Im1lbnUiCiAgICAgID4KICAgICAgICAke0IubWFwKChmZSxkZSk9PnRoaXMucmVuZGVyRHJvcGRvd25JdGVtKGZlLGAke1B9LSR7ZGV9YCkpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRHJvcGRvd25JdGVtKEIsUCl7aWYoImRpdmlkZXIiaW4gQiYmQi5kaXZpZGVyKXJldHVybiB3YDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IEs9QixmZT1wYXJzZUludChQLnNwbGl0KCItIikucG9wKCl8fCIwIiksZGU9dGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPT09ZmU7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iZHJvcGRvd24taXRlbSAke2RlPyJmb2N1c2VkIjoiIn0iCiAgICAgICAgP2Rpc2FibGVkPSR7Sy5kaXNhYmxlZH0KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhLKX0KICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09ZmV9CiAgICAgICAgcm9sZT0ibWVudWl0ZW0iCiAgICAgICAgdGFiaW5kZXg9IiR7Sy5kaXNhYmxlZD8tMTowfSIKICAgICAgPgogICAgICAgICR7Sy5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7YGx1Y2lkZToke0suaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4+JHtLLm5hbWV9PC9zcGFuPgogICAgICAgICR7Sy5zaG9ydGN1dD93YDxzcGFuIGNsYXNzPSJzaG9ydGN1dCI+JHtLLnNob3J0Y3V0fTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQnJlYWRjcnVtYnMoKXtpZighdGhpcy5icmVhZGNydW1icylyZXR1cm4gd2BgO2xldCBCPXRoaXMuYnJlYWRjcnVtYnMuc3BsaXQodGhpcy5icmVhZGNydW1iU2VwYXJhdG9yKTtyZXR1cm4gd2AKICAgICAgJHtCLm1hcCgoUCxLKT0+d2AKICAgICAgICAke0s+MD93YDxzcGFuIGNsYXNzPSJicmVhZGNydW1iLXNlcGFyYXRvciI+JHt0aGlzLmJyZWFkY3J1bWJTZXBhcmF0b3J9PC9zcGFuPmA6IiJ9CiAgICAgICAgPHNwYW4gCiAgICAgICAgICBjbGFzcz0iYnJlYWRjcnVtYi1pdGVtIiAKICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZUJyZWFkY3J1bWJDbGljayhQLEspfQogICAgICAgID4KICAgICAgICAgICR7UH0KICAgICAgICA8L3NwYW4+CiAgICAgIGApfQogICAgYH1yZW5kZXJBY2NvdW50U2VjdGlvbigpe3JldHVybiB3YAogICAgICAke3RoaXMuc2hvd1NlYXJjaD93YAogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaWNvbiIKICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifQogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWFyY2hDbGlja30KICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIGA6IiJ9CiAgICAgICR7dGhpcy51c2VyP3dgCiAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iIEBjbGljaz0ke3RoaXMuaGFuZGxlVXNlckNsaWNrfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj93YDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOndgJHt0aGlzLnVzZXIubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX1gfQogICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxzcGFuPiR7dGhpcy51c2VyLm5hbWV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgICAgICAgLnVzZXI9JHt0aGlzLnVzZXJ9CiAgICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLnByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgICAgIC5pc09wZW49JHt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbn0KICAgICAgICAgICAgLnBvc2l0aW9uPSR7InRvcC1yaWdodCJ9CiAgICAgICAgICAgIEBtZW51LXNlbGVjdD0ke0I9PnRoaXMuaGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoQil9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT93YAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJhY3Rpdml0eS10b2dnbGUgJHt0aGlzLmFjdGl2aXR5TG9nQWN0aXZlPyJhY3RpdmUiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQWN0aXZpdHlUb2dnbGV9CiAgICAgICAgICB0aXRsZT0iQWN0aXZpdHkgTG9nIgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmFjdGl2aXR5In0+PC9kZWVzLWljb24+CiAgICAgICAgICAke3RoaXMuYWN0aXZpdHlMb2dDb3VudD4wP3dgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1iYWRnZSI+JHt0aGlzLmFjdGl2aXR5TG9nQ291bnQ+OTk/Ijk5KyI6dGhpcy5hY3Rpdml0eUxvZ0NvdW50fTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWhhbmRsZU1lbnVDbGljayhCLFApe0IuZGlzYWJsZWR8fChCLnN1Ym1lbnUmJkIuc3VibWVudS5sZW5ndGg+MD90aGlzLmFjdGl2ZU1lbnU9PT1QP3RoaXMuYWN0aXZlTWVudT1udWxsOnRoaXMuYWN0aXZlTWVudT1QOih0aGlzLmFjdGl2ZU1lbnU9bnVsbCxCLmFjdGlvbiYmQi5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTpCfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKSl9aGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soQil7Qi5kaXNhYmxlZHx8KHRoaXMuYWN0aXZlTWVudT1udWxsLEIuYWN0aW9uJiZCLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOkJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZU1lbnVLZXlkb3duKEIsUCxLKXtzd2l0Y2goQi5rZXkpe2Nhc2UiRW50ZXIiOmNhc2UiICI6Qi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlTWVudUNsaWNrKFAsSyk7YnJlYWs7Y2FzZSJBcnJvd0Rvd24iOmlmKFAuc3VibWVudSYmdGhpcy5hY3RpdmVNZW51PT09Syl7Qi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0wO2xldCBmZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFAuc3VibWVudSwtMSwxKTtmZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPWZlLHNldFRpbWVvdXQoKCk9PntsZXQgZGU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5kcm9wZG93bi5vcGVuIik7ZGUmJmRlLmZvY3VzKCl9LDApKX1icmVhaztjYXNlIkVzY2FwZSI6dGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2JyZWFrO2Nhc2UiVGFiIjp0aGlzLmFjdGl2ZU1lbnU9PT1LJiYodGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xKTticmVhaztjYXNlIkFycm93UmlnaHQiOkIucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE1lbnVJdGVtKEssMSk7YnJlYWs7Y2FzZSJBcnJvd0xlZnQiOkIucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTmV4dE1lbnVJdGVtKEssLTEpO2JyZWFrfX1oYW5kbGVCcmVhZGNydW1iQ2xpY2soQixQKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJicmVhZGNydW1iLW5hdmlnYXRlIix7ZGV0YWlsOnticmVhZGNydW1iOkIsaW5kZXg6UH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aXZpdHlUb2dnbGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpdml0eS10b2dnbGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVVzZXJDbGljaygpe3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuPSF0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoQil7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49ITEsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpCLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUdsb2JhbENsaWNrKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlRG9jdW1lbnRDbGljayl9aGFuZGxlR2xvYmFsQ2xpY2s9KFd0KHRoaXMsYmUpLEI9PntCLnN0b3BQcm9wYWdhdGlvbigpfSk7aGFuZGxlRG9jdW1lbnRDbGljaz0oKT0+e3RoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMX07aGFuZGxlRHJvcGRvd25LZXlkb3duKEIsUCxLKXtsZXQgZmU9UC5maWx0ZXIoZGU9PiEoImRpdmlkZXIiaW4gZGUmJmRlLmRpdmlkZXIpKTtzd2l0Y2goQi5rZXkpe2Nhc2UiQXJyb3dEb3duIjpCLnByZXZlbnREZWZhdWx0KCk7bGV0IGRlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oUCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0sMSk7ZGUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1kZSk7YnJlYWs7Y2FzZSJBcnJvd1VwIjpCLnByZXZlbnREZWZhdWx0KCk7bGV0IF9lPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oUCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0sLTEpO19lIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09X2UpO2JyZWFrO2Nhc2UiRW50ZXIiOmlmKEIucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW0hPT0tMSl7bGV0IEZlPWZlW3RoaXMuZm9jdXNlZERyb3Bkb3duSXRlbV07RmUmJiJhY3Rpb24iaW4gRmUmJiFGZS5kaXNhYmxlZCYmdGhpcy5oYW5kbGVEcm9wZG93bkl0ZW1DbGljayhGZSl9YnJlYWs7Y2FzZSJIb21lIjpCLnByZXZlbnREZWZhdWx0KCk7bGV0IHBlPXRoaXMuZmluZE5leHRWYWxpZEl0ZW0oUCwtMSwxKTtwZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPXBlKTticmVhaztjYXNlIkVuZCI6Qi5wcmV2ZW50RGVmYXVsdCgpO2xldCB0ZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKFAsUC5sZW5ndGgsLTEpO3RlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09dGUpO2JyZWFrO2Nhc2UiRXNjYXBlIjpCLnByZXZlbnREZWZhdWx0KCksdGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2xldCB6ZT10aGlzLnJlbmRlclJvb3QucXVlcnlTZWxlY3RvcigiLm1lbnVJdGVtLmFjdGl2ZSIpO3plJiZ6ZS5mb2N1cygpO2JyZWFrfX1maW5kTmV4dFZhbGlkSXRlbShCLFAsSyl7bGV0IGZlPVArSztmb3IoO2ZlPj0wJiZmZTxCLmxlbmd0aDspe2xldCBkZT1CW2ZlXTtpZighKCJkaXZpZGVyImluIGRlJiZkZS5kaXZpZGVyKSYmISgiZGlzYWJsZWQiaW4gZGUmJmRlLmRpc2FibGVkKSlyZXR1cm4gZmU7ZmUrPUt9cmV0dXJuLTF9Zm9jdXNOZXh0TWVudUl0ZW0oQixQKXtsZXQgSz1BcnJheS5mcm9tKHRoaXMucmVuZGVyUm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudUl0ZW0iKSksZmU9Sy5maW5kSW5kZXgocGU9PnBlLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLWlkIik9PT1CKTtpZihmZT09PS0xKXJldHVybjtsZXQgZGU9ZmUrUDtkZTwwP2RlPUsubGVuZ3RoLTE6ZGU+PUsubGVuZ3RoJiYoZGU9MCk7bGV0IF9lPTA7Zm9yKDtfZTxLLmxlbmd0aDspe2xldCBwZT1LW2RlXTtpZighcGUuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpKXtwZS5mb2N1cygpLHRoaXMuYWN0aXZlTWVudSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWt9ZGU9KGRlK1ArSy5sZW5ndGgpJUsubGVuZ3RoLF9lKyt9fXN0YXRpY3tXdChpLGEpfX07cmV0dXJuICRlPWl9KSgpfSk7dmFyIF9xPWIoKCk9Pnt6cSgpfSk7dmFyIFM5dCxDOXQsXzl0PWIoKCk9Pnt1ZSgpO3kxKCk7Qzl0PSgpPT53KFM5dHx8KFM5dD14NChbYAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgICB9CgogICAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWxhYmVsIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjNzM3MzczOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWJvdHRvbWJhci13cmFwcGVyIHsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwIDAlIDIwJSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWxhYmVsIj5Cb3R0b20gYmFyIHdpdGggc3RhdHVzIHdpZGdldHMgYW5kIGFjdGlvbnM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tYm90dG9tYmFyLXdyYXBwZXIiPgogICAgICAgICAgICA8ZGVlcy1hcHB1aS1ib3R0b21iYXIKICAgICAgICAgICAgICBpZD0iZGVtby1ib3R0b21iYXIiCiAgICAgICAgICAgID48L2RlZXMtYXBwdWktYm90dG9tYmFyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWxhYmVsIj5Db250cm9sczwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFN1Y2Nlc3NXaWRnZXQoKSI+QWRkIFN1Y2Nlc3MgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkV2FybmluZ1dpZGdldCgpIj5BZGQgV2FybmluZyBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRFcnJvcldpZGdldCgpIj5BZGQgRXJyb3IgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkTG9hZGluZ1dpZGdldCgpIj5BZGQgTG9hZGluZyBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRSaWdodFdpZGdldCgpIj5BZGQgUmlnaHQgV2lkZ2V0PC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkQWN0aW9uKCkiPkFkZCBBY3Rpb248L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbGVhckFsbCgpIj5DbGVhciBBbGw8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgogICAgICAgIGNvbnN0IGJvdHRvbWJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZW1vLWJvdHRvbWJhcicpOwoKICAgICAgICAvLyBXYWl0IGZvciBjb21wb25lbnQgdG8gaW5pdGlhbGl6ZQogICAgICAgIGF3YWl0IGJvdHRvbWJhci51cGRhdGVDb21wbGV0ZTsKCiAgICAgICAgLy8gQWRkIGluaXRpYWwgd2lkZ2V0cwogICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgaWQ6ICdzdGF0dXMnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YWN0aXZpdHknLAogICAgICAgICAgbGFiZWw6ICdTeXN0ZW0gT25saW5lJywKICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLAogICAgICAgICAgdG9vbHRpcDogJ0FsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsJywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdTdGF0dXMgY2xpY2tlZCcpLAogICAgICAgICAgY29udGV4dE1lbnVJdGVtczogWwogICAgICAgICAgICB7IG5hbWU6ICdWaWV3IERldGFpbHMnLCBpY29uTmFtZTogJ2x1Y2lkZTppbmZvJywgYWN0aW9uOiAoKSA9PiBhbGVydCgnU3lzdGVtIGRldGFpbHMnKSB9LAogICAgICAgICAgICB7IGRpdmlkZXI6IHRydWUgfSwKICAgICAgICAgICAgeyBuYW1lOiAnUmVmcmVzaCBTdGF0dXMnLCBpY29uTmFtZTogJ2x1Y2lkZTpyZWZyZXNoQ3cnLCBhY3Rpb246ICgpID0+IGFsZXJ0KCdSZWZyZXNoaW5nLi4uJykgfSwKICAgICAgICAgIF0sCiAgICAgICAgfSk7CgogICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgaWQ6ICdub3RpZmljYXRpb25zJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmJlbGwnLAogICAgICAgICAgbGFiZWw6ICczIG5vdGlmaWNhdGlvbnMnLAogICAgICAgICAgc3RhdHVzOiAnd2FybmluZycsCiAgICAgICAgICB0b29sdGlwOiAnWW91IGhhdmUgdW5yZWFkIG5vdGlmaWNhdGlvbnMnLAogICAgICAgICAgb25DbGljazogKCkgPT4gY29uc29sZS5sb2coJ05vdGlmaWNhdGlvbnMgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgIGlkOiAndmVyc2lvbicsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpnaXRCcmFuY2gnLAogICAgICAgICAgbGFiZWw6ICd2MS4yLjMnLAogICAgICAgICAgdG9vbHRpcDogJ0N1cnJlbnQgdmVyc2lvbicsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbnNvbGUubG9nKCdWZXJzaW9uIGNsaWNrZWQnKSwKICAgICAgICB9KTsKCiAgICAgICAgLy8gQWRkIGluaXRpYWwgYWN0aW9ucwogICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oewogICAgICAgICAgaWQ6ICdzZXR0aW5ncycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpzZXR0aW5ncycsCiAgICAgICAgICB0b29sdGlwOiAnU2V0dGluZ3MnLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBhbGVydCgnU2V0dGluZ3MgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICBib3R0b21iYXIuYWRkQWN0aW9uKHsKICAgICAgICAgIGlkOiAnaGVscCcsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpoZWxwQ2lyY2xlJywKICAgICAgICAgIHRvb2x0aXA6ICdIZWxwJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gYWxlcnQoJ0hlbHAgY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICAvLyBEZW1vIGNvbnRyb2wgZnVuY3Rpb25zCiAgICAgICAgbGV0IHdpZGdldENvdW50ZXIgPSAwOwogICAgICAgIGxldCBhY3Rpb25Db3VudGVyID0gMDsKCiAgICAgICAgd2luZG93LmFkZFN1Y2Nlc3NXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICdzdWNjZXNzLScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpjaGVja0NpcmNsZScsCiAgICAgICAgICAgIGxhYmVsOiAnU3VjY2VzcyAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsCiAgICAgICAgICAgIHRvb2x0aXA6ICdTdWNjZXNzIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ3N1Y2Nlc3MtJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZFdhcm5pbmdXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICd3YXJuaW5nLScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTphbGVydFRyaWFuZ2xlJywKICAgICAgICAgICAgbGFiZWw6ICdXYXJuaW5nICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICd3YXJuaW5nJywKICAgICAgICAgICAgdG9vbHRpcDogJ1dhcm5pbmcgd2lkZ2V0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgnd2FybmluZy0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkRXJyb3JXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICdlcnJvci0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6eENpcmNsZScsCiAgICAgICAgICAgIGxhYmVsOiAnRXJyb3IgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJywKICAgICAgICAgICAgdG9vbHRpcDogJ0Vycm9yIHdpZGdldCcsCiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGJvdHRvbWJhci5yZW1vdmVXaWRnZXQoJ2Vycm9yLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRMb2FkaW5nV2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgY29uc3QgaWQgPSAnbG9hZGluZy0nICsgd2lkZ2V0Q291bnRlcjsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogaWQsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmxvYWRlcjInLAogICAgICAgICAgICBsYWJlbDogJ0xvYWRpbmcuLi4nLAogICAgICAgICAgICBzdGF0dXM6ICdhY3RpdmUnLAogICAgICAgICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAgICAgICB0b29sdGlwOiAnTG9hZGluZyBpbiBwcm9ncmVzcycsCiAgICAgICAgICB9KTsKCiAgICAgICAgICAvLyBTaW11bGF0ZSBjb21wbGV0aW9uIGFmdGVyIDMgc2Vjb25kcwogICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGJvdHRvbWJhci51cGRhdGVXaWRnZXQoaWQsIHsKICAgICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpjaGVjaycsCiAgICAgICAgICAgICAgbGFiZWw6ICdEb25lIScsCiAgICAgICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsCiAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwgMzAwMCk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZFJpZ2h0V2lkZ2V0ID0gKCkgPT4gewogICAgICAgICAgd2lkZ2V0Q291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiAncmlnaHQtJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmluZm8nLAogICAgICAgICAgICBsYWJlbDogJ1JpZ2h0ICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgncmlnaHQtJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZEFjdGlvbiA9ICgpID0+IHsKICAgICAgICAgIGFjdGlvbkNvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oewogICAgICAgICAgICBpZDogJ2FjdGlvbi0nICsgYWN0aW9uQ291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6emFwJywKICAgICAgICAgICAgdG9vbHRpcDogJ0FjdGlvbiAnICsgYWN0aW9uQ291bnRlciwKICAgICAgICAgICAgb25DbGljazogKCkgPT4gewogICAgICAgICAgICAgIGFsZXJ0KCdBY3Rpb24gJyArIGFjdGlvbkNvdW50ZXIgKyAnIGNsaWNrZWQnKTsKICAgICAgICAgICAgICBib3R0b21iYXIucmVtb3ZlQWN0aW9uKCdhY3Rpb24tJyArIGFjdGlvbkNvdW50ZXIpOwogICAgICAgICAgICB9LAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmNsZWFyQWxsID0gKCkgPT4gewogICAgICAgICAgYm90dG9tYmFyLmNsZWFyV2lkZ2V0cygpOwogICAgICAgICAgYm90dG9tYmFyLmNsZWFyQWN0aW9ucygpOwogICAgICAgICAgd2lkZ2V0Q291bnRlciA9IDA7CiAgICAgICAgICBhY3Rpb25Db3VudGVyID0gMDsKICAgICAgICB9OwogICAgICA8XC9zY3JpcHQ+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYF0pKSl9KTt2YXIgVHEsYjgsVDl0LExxPWIoKCk9Pnt1ZSgpO3FlKCk7RHQoKTtzMigpO185dCgpO1RxPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sYjg9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFQ5dD0oKCk9PntsZXQgdD1baGUoImRlZXMtYXBwdWktYm90dG9tYmFyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0ooKV0sZD1bSigpXSxUcSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJ3aWRnZXRzImluIGcsZ2V0Omc9Pmcud2lkZ2V0cyxzZXQ6KGcseSk9PntnLndpZGdldHM9eX19LG1ldGFkYXRhOmZ9LG4sbyksVHEodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iYWN0aW9ucyJpbiBnLGdldDpnPT5nLmFjdGlvbnMsc2V0OihnLHkpPT57Zy5hY3Rpb25zPXl9fSxtZXRhZGF0YTpmfSxjLHApLFRxKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmZ9LG51bGwsYSksbD1pPWUudmFsdWUsZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmfSl9c3RhdGljIGRlbW89Qzl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9YjgodGhpcyxuLFtdKTtnZXQgd2lkZ2V0cygpe3JldHVybiB0aGlzLiNlfXNldCB3aWRnZXRzKGYpe3RoaXMuI2U9Zn0jdD0oYjgodGhpcyxvKSxiOCh0aGlzLGMsW10pKTtnZXQgYWN0aW9ucygpe3JldHVybiB0aGlzLiN0fXNldCBhY3Rpb25zKGYpe3RoaXMuI3Q9Zn1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLmJvdHRvbS1iYXIgewogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk0JSkiLCJoc2woMCAwJSA2JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndpZGdldDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndpZGdldC1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICAvKiBTdGF0dXMgY29sb3JzIG1hdGNoaW5nIGRlZXMtd29ya3NwYWNlLWJvdHRvbWJhciAqLwogICAgICAud2lkZ2V0LmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LnN1Y2Nlc3MgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgMzUlKSIsImhzbCgxNDIgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuZXJyb3IgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgfQoKICAgICAgLnNwaW5uaW5nIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGlzYWJsZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBmPXRoaXMud2lkZ2V0cy5maWx0ZXIobT0+bS5wb3NpdGlvbiE9PSJyaWdodCIpLnNvcnQoKG0seCk9PihtLm9yZGVyfHwwKS0oeC5vcmRlcnx8MCkpLGc9dGhpcy53aWRnZXRzLmZpbHRlcihtPT5tLnBvc2l0aW9uPT09InJpZ2h0Iikuc29ydCgobSx4KT0+KG0ub3JkZXJ8fDApLSh4Lm9yZGVyfHwwKSkseT10aGlzLmFjdGlvbnMuZmlsdGVyKG09Pm0ucG9zaXRpb249PT0ibGVmdCIpLHY9dGhpcy5hY3Rpb25zLmZpbHRlcihtPT5tLnBvc2l0aW9uIT09ImxlZnQiKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYm90dG9tLWJhciI+CiAgICAgICAgPCEtLSBMZWZ0IGFjdGlvbnMgLS0+CiAgICAgICAgJHt5Lm1hcChtPT50aGlzLnJlbmRlckFjdGlvbihtKSl9CgogICAgICAgIDwhLS0gTGVmdCB3aWRnZXRzIC0tPgogICAgICAgICR7Zi5tYXAoKG0seCk9PndgCiAgICAgICAgICAke3g+MHx8eS5sZW5ndGg+MD93YDxkaXYgY2xhc3M9IndpZGdldC1zZXBhcmF0b3IiPjwvZGl2PmA6IiJ9CiAgICAgICAgICAke3RoaXMucmVuZGVyV2lkZ2V0KG0pfQogICAgICAgIGApfQoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgoKICAgICAgICA8IS0tIFJpZ2h0IHdpZGdldHMgLS0+CiAgICAgICAgJHtnLm1hcCgobSx4KT0+d2AKICAgICAgICAgICR7dGhpcy5yZW5kZXJXaWRnZXQobSl9CiAgICAgICAgICAke3g8Zy5sZW5ndGgtMXx8di5sZW5ndGg+MD93YDxkaXYgY2xhc3M9IndpZGdldC1zZXBhcmF0b3IiPjwvZGl2PmA6IiJ9CiAgICAgICAgYCl9CgogICAgICAgIDwhLS0gUmlnaHQgYWN0aW9ucyAtLT4KICAgICAgICAke3YubWFwKG09PnRoaXMucmVuZGVyQWN0aW9uKG0pKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlcldpZGdldChmKXtsZXQgZz1mLnN0YXR1cyYmZi5zdGF0dXMhPT0iaWRsZSI/Zi5zdGF0dXM6IiIseT1mLmljb25OYW1lP2YuaWNvbk5hbWUuc3RhcnRzV2l0aCgibHVjaWRlOiIpP2YuaWNvbk5hbWU6YGx1Y2lkZToke2YuaWNvbk5hbWV9YDoiIjtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ3aWRnZXQgJHtnfSIKICAgICAgICB0aXRsZT0iJHtmLnRvb2x0aXB8fCIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+Zi5vbkNsaWNrPy4oKX0KICAgICAgICBAY29udGV4dG1lbnU9JHt2PT50aGlzLmhhbmRsZVdpZGdldENvbnRleHRNZW51KHYsZil9CiAgICAgID4KICAgICAgICAke3k/d2AKICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHt5fQogICAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgICAgIGNsYXNzPSIke2YubG9hZGluZz8ic3Bpbm5pbmciOiIifSIKICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICBgOiIifQogICAgICAgICR7Zi5sYWJlbD93YDxzcGFuPiR7Zi5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGlvbihmKXtsZXQgZz1mLmljb25OYW1lLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9mLmljb25OYW1lOmBsdWNpZGU6JHtmLmljb25OYW1lfWA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYWN0aW9uLWJ1dHRvbiAke2YuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgdGl0bGU9IiR7Zi50b29sdGlwfHwiIn0iCiAgICAgICAgQGNsaWNrPSR7KCk9PiFmLmRpc2FibGVkJiZmLm9uQ2xpY2s/LigpfQogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgLmljb249JHtnfQogICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZVdpZGdldENvbnRleHRNZW51KGYsZyl7aWYoIWcuY29udGV4dE1lbnVJdGVtc3x8Zy5jb250ZXh0TWVudUl0ZW1zLmxlbmd0aD09PTApcmV0dXJuO2YucHJldmVudERlZmF1bHQoKTtsZXQgeT1bXTtmb3IobGV0IHYgb2YgZy5jb250ZXh0TWVudUl0ZW1zKXYuZGl2aWRlcj95LnB1c2goe2RpdmlkZXI6ITB9KTp5LnB1c2goe25hbWU6di5uYW1lLGljb25OYW1lOnYuaWNvbk5hbWUsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB2LmFjdGlvbigpfSxkaXNhYmxlZDp2LmRpc2FibGVkfSk7YXdhaXQgVXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZix5KX1hZGRXaWRnZXQoZil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIoZz0+Zy5pZCE9PWYuaWQpLHRoaXMud2lkZ2V0cz1bLi4udGhpcy53aWRnZXRzLGZdfXVwZGF0ZVdpZGdldChmLGcpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHk9PnkuaWQ9PT1mP3suLi55LC4uLmd9OnkpfXJlbW92ZVdpZGdldChmKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihnPT5nLmlkIT09Zil9Z2V0V2lkZ2V0KGYpe3JldHVybiB0aGlzLndpZGdldHMuZmluZChnPT5nLmlkPT09Zil9Y2xlYXJXaWRnZXRzKCl7dGhpcy53aWRnZXRzPVtdfWFkZEFjdGlvbihmKXt0aGlzLmFjdGlvbnM9dGhpcy5hY3Rpb25zLmZpbHRlcihnPT5nLmlkIT09Zi5pZCksdGhpcy5hY3Rpb25zPVsuLi50aGlzLmFjdGlvbnMsZl19cmVtb3ZlQWN0aW9uKGYpe3RoaXMuYWN0aW9ucz10aGlzLmFjdGlvbnMuZmlsdGVyKGc9PmcuaWQhPT1mKX1jbGVhckFjdGlvbnMoKXt0aGlzLmFjdGlvbnM9W119Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGI4KHRoaXMscCl9c3RhdGlje2I4KGksYSl9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBMOXQ9YigoKT0+e0xxKCl9KTt2YXIgJDl0LEE5dD1iKCgpPT57dWUoKTskOXQ9KCk9PndgCiAgPHN0eWxlPgogICAgJHtRYAogICAgICAuZGVtby1iYWNrZ3JvdW5kIHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgNSUpIil9OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBtYXJnaW46IDMycHggMCAxNnB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQogICAgICAKICAgICAgLnNlY3Rpb24tdGl0bGU6Zmlyc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC0zY29sIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTY4cHgpIHsKICAgICAgICAuZ3JpZC0zY29sIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWJhY2tncm91bmQiPgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkRlZmF1bHQgUGFuZWxzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQYW5lbCBDb21wb25lbnQifSAuc3VidGl0bGU9JHsiVGhlIGRlZmF1bHQgcGFuZWwgdmFyaWFudCB3aXRoIHNoYWRjbi1pbnNwaXJlZCBzdHlsaW5nIn0+CiAgICAgICAgPHA+VGhlIHBhbmVsIGNvbXBvbmVudCBhdXRvbWF0aWNhbGx5IGZvbGxvd3MgdGhlIHRoZW1lIGFuZCBwcm92aWRlcyBjb25zaXN0ZW50IHN0eWxpbmcgZm9yIGdyb3VwZWQgY29udGVudC48L3A+CiAgICAgICAgPHA+SXQncyBwZXJmZWN0IGZvciBjcmVhdGluZyBzZWN0aW9ucyBpbiB5b3VyIGFwcGxpY2F0aW9uIHdpdGggcHJvcGVyIHNwYWNpbmcgYW5kIGJvcmRlcnMuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZlYXR1cmUgT3ZlcnZpZXcifSAuc3VidGl0bGU9JHsiS2V5IGNhcGFiaWxpdGllcyJ9PgogICAgICAgICAgPHA+R3JpZCBsYXlvdXRzIHdvcmsgZ3JlYXQgd2l0aCBwYW5lbHMgZm9yIGNyZWF0aW5nIGRhc2hib2FyZHMgYW5kIGZlYXR1cmUgc2VjdGlvbnMuPC9wPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkxlYXJuIE1vcmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUXVpY2sgQWN0aW9ucyJ9IC5zdWJ0aXRsZT0keyJDb21tb24gdGFza3MifT4KICAgICAgICAgIDxwPkVhY2ggcGFuZWwgbWFpbnRhaW5zIGNvbnNpc3RlbnQgc3BhY2luZyBhbmQgc3R5bGluZyBhY3Jvc3MgeW91ciBhcHBsaWNhdGlvbi48L3A+CiAgICAgICAgICA8ZGVlcy1idXR0b24+R2V0IFN0YXJ0ZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlBhbmVsIFZhcmlhbnRzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEZWZhdWx0IFZhcmlhbnQifSAudmFyaWFudD0keyJkZWZhdWx0In0+CiAgICAgICAgPHA+VGhlIGRlZmF1bHQgdmFyaWFudCBoYXMgYSB3aGl0ZSBiYWNrZ3JvdW5kLCBzdWJ0bGUgYm9yZGVyLCBhbmQgbWluaW1hbCBzaGFkb3cuIEl0J3MgdGhlIHN0YW5kYXJkIGNob2ljZSBmb3IgbW9zdCBjb250ZW50LjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0iZGVmYXVsdCI8L2NvZGU+IG9yIG9taXQgdGhlIHZhcmlhbnQgcHJvcGVydHkuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiT3V0bGluZSBWYXJpYW50In0gLnN1YnRpdGxlPSR7IlRyYW5zcGFyZW50IGJhY2tncm91bmQgd2l0aCBib3JkZXIifSAudmFyaWFudD0keyJvdXRsaW5lIn0+CiAgICAgICAgPHA+VGhlIG91dGxpbmUgdmFyaWFudCByZW1vdmVzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBzaGFkb3csIGtlZXBpbmcgb25seSB0aGUgYm9yZGVyLjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0ib3V0bGluZSI8L2NvZGU+IGZvciBhIGxpZ2h0ZXIgdmlzdWFsIHdlaWdodC48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJHaG9zdCBWYXJpYW50In0gLnN1YnRpdGxlPSR7Ik1pbmltYWwgc3R5bGluZyBmb3Igc3VidGxlIHNlY3Rpb25zIn0gLnZhcmlhbnQ9JHsiZ2hvc3QifT4KICAgICAgICA8cD5UaGUgZ2hvc3QgdmFyaWFudCBoYXMgbm8gYm9yZGVyIG9yIGJhY2tncm91bmQgYnkgZGVmYXVsdCwgb25seSBzaG93aW5nIGEgc3VidGxlIGJhY2tncm91bmQgb24gaG92ZXIuPC9wPgogICAgICAgIDxwPlVzZSA8Y29kZT52YXJpYW50PSJnaG9zdCI8L2NvZGU+IGZvciB0aGUgbW9zdCBtaW5pbWFsIGFwcGVhcmFuY2UuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlBhbmVsIFNpemVzPC9oMj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtM2NvbCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNtYWxsIFBhbmVsIn0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPkNvbXBhY3QgcGFkZGluZyBmb3IgZGVuc2UgbGF5b3V0cy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ic20iPC9jb2RlPjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik1lZGl1bSBQYW5lbCJ9IC5zaXplPSR7Im1kIn0+CiAgICAgICAgICA8cD5EZWZhdWx0IHNpemUgd2l0aCBiYWxhbmNlZCBzcGFjaW5nLjwvcD4KICAgICAgICAgIDxwPlVzZSA8Y29kZT5zaXplPSJtZCI8L2NvZGU+IG9yIG9taXQuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTGFyZ2UgUGFuZWwifSAuc2l6ZT0keyJsZyJ9PgogICAgICAgICAgPHA+R2VuZXJvdXMgcGFkZGluZyBmb3IgcHJvbWluZW50IHNlY3Rpb25zLjwvcD4KICAgICAgICAgIDxwPlVzZSA8Y29kZT5zaXplPSJsZyI8L2NvZGU+PC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNvbXBsZXggRXhhbXBsZXM8L2gyPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJQYW5lbHMgd29yayBncmVhdCBmb3Igb3JnYW5pemluZyBmb3JtIHNlY3Rpb25zIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlByb2plY3QgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkRlc2NyaXB0aW9uIn0gLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24gCiAgICAgICAgICAgIC5sYWJlbD0keyJDYXRlZ29yeSJ9IAogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJXZWIgRGV2ZWxvcG1lbnQiLGtleToid2ViIn0se29wdGlvbjoiTW9iaWxlIEFwcCIsa2V5OiJtb2JpbGUifSx7b3B0aW9uOiJEZXNrdG9wIFNvZnR3YXJlIixrZXk6ImRlc2t0b3AifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q3JlYXRlIFByb2plY3Q8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJOZXN0ZWQgUGFuZWxzIn0gLnN1YnRpdGxlPSR7IlBhbmVscyBjYW4gYmUgbmVzdGVkIGZvciBoaWVyYXJjaGljYWwgb3JnYW5pemF0aW9uIn0+CiAgICAgICAgPHA+WW91IGNhbiBuZXN0IHBhbmVscyB0byBjcmVhdGUgbW9yZSBjb21wbGV4IGxheW91dHM6PC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJOZXN0ZWQgUGFuZWwgMSJ9IC52YXJpYW50PSR7Im91dGxpbmUifSAuc2l6ZT0keyJzbSJ9PgogICAgICAgICAgPHA+VGhpcyBpcyBhIG5lc3RlZCBwYW5lbCB3aXRoIG91dGxpbmUgdmFyaWFudCBhbmQgc21hbGwgc2l6ZS48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJOZXN0ZWQgUGFuZWwgMiJ9IC52YXJpYW50PSR7Imdob3N0In0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPlRoaXMgaXMgYW5vdGhlciBuZXN0ZWQgcGFuZWwgd2l0aCBnaG9zdCB2YXJpYW50LjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VW50aXRsZWQgUGFuZWxzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsPgogICAgICAgIDxwPlBhbmVscyB3b3JrIGdyZWF0IGV2ZW4gd2l0aG91dCBhIHRpdGxlIGZvciBzaW1wbGUgY29udGVudCBncm91cGluZy48L3A+CiAgICAgICAgPHA+VGhleSBwcm92aWRlIHZpc3VhbCBzZXBhcmF0aW9uIGFuZCBjb25zaXN0ZW50IHBhZGRpbmcgdGhyb3VnaG91dCB5b3VyIGludGVyZmFjZS48L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICA8ZGVlcy1wYW5lbCAudmFyaWFudD0keyJvdXRsaW5lIn0+CiAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbi10b3A6IDA7Ij5DdXN0b20gQ29udGVudDwvaDQ+CiAgICAgICAgICA8cD5Zb3UgY2FuIGFkZCB5b3VyIG93biBoZWFkaW5ncyBhbmQgc3RydWN0dXJlIHdpdGhpbiB1bnRpdGxlZCBwYW5lbHMuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudmFyaWFudD0keyJnaG9zdCJ9PgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+TWluaW1hbCBTdHlsZTwvaDQ+CiAgICAgICAgICA8cD5HaG9zdCBwYW5lbHMgd2l0aG91dCB0aXRsZXMgY3JlYXRlIHZlcnkgc3VidGxlIGNvbnRlbnQgc2VjdGlvbnMuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBQanQsSWp0LCRxLE5qdCxKdCxWMCxGanQsT2p0LEQ5dCxSanQsQmp0LEZYMSxPWDEsY2E9YigoKT0+e3VlKCk7UGp0PSJHZWlzdCBTYW5zIixJanQ9IkludGVsIE9uZSBNb25vIiwkcT1gJyR7UGp0fScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWZgLE5qdD1gJyR7SWp0fScsICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCAnRmlyYSBNb25vJywgJ0Ryb2lkIFNhbnMgTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZWAsSnQ9cXQoJHEpLFYwPXF0KE5qdCksRmp0PSJDYWwgU2FucyIsT2p0PWAnJHtGanR9JywgJHskcX1gLEQ5dD1xdChPanQpLFJqdD0iUm9ib3RvIFNsYWIiLEJqdD1gJyR7Ump0fScsIEdlb3JnaWEsIHNlcmlmYCxGWDE9cXQoQmp0KSxPWDE9cXQoYAogIGZvbnQtZmFtaWx5OiAkeyRxfTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2N2MTEnLCAndG51bScsICdjdjA1JyAxOwpgKX0pO3ZhciBfbCxqaSxFOXQsbTI9YigoKT0+e3VlKCk7QTl0KCk7Y2EoKTtxZSgpO19sPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0samk9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LEU5dD0oKCk9PntsZXQgdD1baGUoImRlZXMtcGFuZWwiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0seT1bSSh7dHlwZTpTdHJpbmd9KV0seD1bSSh7YXR0cmlidXRlOiExfSldLF9sKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0aXRsZSJpbiBrLGdldDprPT5rLnRpdGxlLHNldDooayxOKT0+e2sudGl0bGU9Tn19LG1ldGFkYXRhOl99LG4sbyksX2wodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InN1YnRpdGxlImluIGssZ2V0Oms9Pmsuc3VidGl0bGUsc2V0OihrLE4pPT57ay5zdWJ0aXRsZT1OfX0sbWV0YWRhdGE6X30sYyxwKSxfbCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhcmlhbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ2YXJpYW50ImluIGssZ2V0Oms9PmsudmFyaWFudCxzZXQ6KGssTik9PntrLnZhcmlhbnQ9Tn19LG1ldGFkYXRhOl99LGYsZyksX2wodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2l6ZSJpbiBrLGdldDprPT5rLnNpemUsc2V0OihrLE4pPT57ay5zaXplPU59fSxtZXRhZGF0YTpffSx2LG0pLF9sKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJydW5BZnRlclJlbmRlciJpbiBrLGdldDprPT5rLnJ1bkFmdGVyUmVuZGVyLHNldDooayxOKT0+e2sucnVuQWZ0ZXJSZW5kZXI9Tn19LG1ldGFkYXRhOl99LE0sUyksX2wobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxhKSxGPWk9ZS52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz0kOXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1qaSh0aGlzLG4sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZShfKXt0aGlzLiNlPV99I3Q9KGppKHRoaXMsbyksamkodGhpcyxjLCIiKSk7Z2V0IHN1YnRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHN1YnRpdGxlKF8pe3RoaXMuI3Q9X30jYT0oamkodGhpcyxwKSxqaSh0aGlzLGYsImRlZmF1bHQiKSk7Z2V0IHZhcmlhbnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmFyaWFudChfKXt0aGlzLiNhPV99I2k9KGppKHRoaXMsZyksamkodGhpcyx2LCJtZCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNpfXNldCBzaXplKF8pe3RoaXMuI2k9X30jcj0oamkodGhpcyxtKSxqaSh0aGlzLE0sdm9pZCAwKSk7Z2V0IHJ1bkFmdGVyUmVuZGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHJ1bkFmdGVyUmVuZGVyKF8pe3RoaXMuI3I9X31zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGRlZmF1bHQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9ImRlZmF1bHQiXSkgewogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIGhzbCgwIDAlIDAlIC8gMC4wNSk7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IG91dGxpbmUgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Im91dGxpbmUiXSkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFZhcmlhbnQ6IGdob3N0ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJnaG9zdCJdKSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtzaXplPSJsZyJdKSB7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLmhlYWRlcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBUaXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5zdWJ0aXRsZSB7CiAgICAgICAgbWFyZ2luOiA0cHggMCAwIDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTdWJ0aXRsZSBzaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLnN1YnRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICB9CgogICAgICAuY29udGVudCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA4NC45JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KCiAgICAgIC8qIENvbnRlbnQgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAuY29udGVudCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgLmNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgfQoKICAgICAgLyogUmVtb3ZlIG1hcmdpbnMgZnJvbSBmaXJzdCBhbmQgbGFzdCBjaGlsZHJlbiAqLwogICAgICAuY29udGVudCA6OnNsb3R0ZWQoKjpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50IDo6c2xvdHRlZCgqOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIGRlZmF1bHQgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZGVmYXVsdCJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIG91dGxpbmUgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0ib3V0bGluZSJdOmhvdmVyKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgNy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEludGVyYWN0aXZlIHN0YXRlcyBmb3IgZ2hvc3QgdmFyaWFudCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZ2hvc3QiXTpob3ZlcikgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlcyAqLwogICAgICA6aG9zdCg6Zm9jdXMtd2l0aGluKSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAvKiBOZXN0ZWQgcGFuZWxzIHNwYWNpbmcgKi8KICAgICAgOjpzbG90dGVkKGRlZXMtcGFuZWwpIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoZGVlcy1wYW5lbDpmaXJzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICR7dGhpcy50aXRsZT93YDxoMyBjbGFzcz0idGl0bGUiPiR7dGhpcy50aXRsZX08L2gzPmA6IiJ9CiAgICAgICAgJHt0aGlzLnN1YnRpdGxlP3dgPHAgY2xhc3M9InN1YnRpdGxlIj4ke3RoaXMuc3VidGl0bGV9PC9wPmA6IiJ9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJ1bkFmdGVyUmVuZGVyJiZhd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxqaSh0aGlzLFMpfXN0YXRpY3tqaShpLGEpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgUDl0LEFxLEk5dCxOOXQ9YigoKT0+e3VlKCk7eTEoKTttMigpO0FxPXQ9PkFycmF5LmZyb20oe2xlbmd0aDp0fSwoZSxhKT0+KHtpZDphLHVzYWdlOk1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDApLGxhYmVsOmAke2F9YH0pKSxJOXQ9KCk9PncoUDl0fHwoUDl0PXg0KFtgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgIGAsYAogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJhY3Rpb24tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogYCwiOyBib3JkZXItcmFkaXVzOiA2cHg7IGZvbnQtc2l6ZTogMTRweDsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgY29sb3I6ICIsYDsiPgogICAgICAgICAgPGVtPkNsaWNrIG9uIHRpbGUgYWN0aW9ucyBvciBncmlkIGFjdGlvbnMgdG8gc2VlIHRoZSByZXN1bHQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbmZpZyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+Q29uZmlndXJhdGlvbiBPcHRpb25zPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgRWFjaCB0aWxlIHR5cGUgc3VwcG9ydHMgZGlmZmVyZW50IHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPk51bWJlcjo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5HYXVnZTo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIGdhdWdlT3B0aW9ucyAobWluLCBtYXgsIHRocmVzaG9sZHMpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlBlcmNlbnRhZ2U6PC9zdHJvbmc+IHZhbHVlICgwLTEwMCksIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UcmVuZDo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIHRyZW5kRGF0YSBhcnJheSwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+VGV4dDo8L3N0cm9uZz4gdmFsdWUgKHN0cmluZyksIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAwIDAgMTZweCAwOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7Ij5Db21wYWN0IExheW91dCAoMTgwcHggdGlsZXMpPC9oND4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAyNHB4IDAgMTZweCAwOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7Ij5TcGFjaW91cyBMYXlvdXQgKDMyMHB4IHRpbGVzKTwvaDQ+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgaWQ9ImNwdS1jb3Jlcy1ncmlkIgogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1ncmlkIgogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrIj5gLGA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29uZmlnIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5QYXJ0aXRpb24gVGlsZSBQcm9wZXJ0aWVzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEudXNlZDo8L3N0cm9uZz4gVXNlZCBzcGFjZSBpbiBieXRlcyAoYXV0by1mb3JtYXR0ZWQpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEudG90YWw6PC9zdHJvbmc+IFRvdGFsIGNhcGFjaXR5IGluIGJ5dGVzPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEuZmlsZXN5c3RlbTo8L3N0cm9uZz4gRmlsZXN5c3RlbSB0eXBlIChleHQ0LCB4ZnMsIG50ZnMpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEubW91bnRQb2ludDo8L3N0cm9uZz4gTW91bnQgcG9pbnQgcGF0aCAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIENvbG9yIHRocmVzaG9sZHM6IE5vcm1hbCAoJmx0Ozc1JSksIFdhcm5pbmcgKDc1LTkwJSksIENyaXRpY2FsICgmZ3Q7OTAlKQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPkRpc2sgVGlsZSBQcm9wZXJ0aWVzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmNhcGFjaXR5Ojwvc3Ryb25nPiBUb3RhbCBjYXBhY2l0eSBpbiBieXRlczwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5tb2RlbDo8L3N0cm9uZz4gRGlzayBtb2RlbCBuYW1lIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEudHlwZTo8L3N0cm9uZz4gRGlzayB0eXBlOiAnc3NkJywgJ2hkZCcsIG9yICdudm1lJzwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5pb3BzOjwvc3Ryb25nPiBSZWFkL3dyaXRlIElPUFMgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5oZWFsdGg6PC9zdHJvbmc+IEhlYWx0aCBwZXJjZW50YWdlIDAtMTAwIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgSGVhbHRoIHRocmVzaG9sZHM6IEdvb2QgKDcwLTEwMCUpLCBXYXJuaW5nICgzMC03MCUpLCBDcml0aWNhbCAoJmx0OzMwJSkKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CgogICAgPHNjcmlwdD4KICAgICAgLy8gQ2xlYW51cCBsaXZlIHVwZGF0ZXMgb24gcGFnZSB1bmxvYWQKICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsICgpID0+IHsKICAgICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLmxpdmVVcGRhdGVJbnRlcnZhbCkgewogICAgICAgICAgY2xlYXJJbnRlcnZhbCgod2luZG93IGFzIGFueSkubGl2ZVVwZGF0ZUludGVydmFsKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgPFwvc2NyaXB0PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgXSkpLFFgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aWxlLWNvbmZpZyB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29uZmlnLXNlY3Rpb24gewogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvZGUtYmxvY2sgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgICAgfQogICAgICBgLCIxLiBDb21wcmVoZW5zaXZlIERhc2hib2FyZCIsIkZ1bGwtZmVhdHVyZWQgc3RhdHMgZ3JpZCB3aXRoIHZhcmlvdXMgdGlsZSB0eXBlcywgYWN0aW9ucywgYW5kIEx1Y2lkZSBpY29ucyIsW3tpZDoicmV2ZW51ZSIsdGl0bGU6IlRvdGFsIFJldmVudWUiLHZhbHVlOjEyNTQyMCx1bml0OiIkIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpkb2xsYXItc2lnbiIsZGVzY3JpcHRpb246IisxMi41JSBmcm9tIGxhc3QgbW9udGgiLGFjdGlvbnM6W3tuYW1lOiJWaWV3IERldGFpbHMiLGljb25OYW1lOiJsdWNpZGU6dHJlbmRpbmctdXAiLGFjdGlvbjphc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTt0JiYodC50ZXh0Q29udGVudD0iVmlld2luZyByZXZlbnVlIGRldGFpbHM6ICQxMjUsNDIwICgrMTIuNSUpIil9fSx7bmFtZToiRXhwb3J0IERhdGEiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLGFjdGlvbjphc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTt0JiYodC50ZXh0Q29udGVudD0iRXhwb3J0aW5nIHJldmVudWUgZGF0YSB0byBDU1YuLi4iKX19XX0se2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6Mzg0Nyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsZGVzY3JpcHRpb246IjMyNCBuZXcgdGhpcyB3ZWVrIixhY3Rpb25zOlt7bmFtZToiVmlldyBVc2VyIExpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmFzeW5jKCk9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PSJPcGVuaW5nIHVzZXIgbGlzdC4uLiIpfX1dfSx7aWQ6ImNwdSIsdGl0bGU6IkNQVSBVc2FnZSIsdmFsdWU6NzMsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpjcHUiLGdhdWdlT3B0aW9uczp7bWluOjAsbWF4OjEwMCx0aHJlc2hvbGRzOlt7dmFsdWU6MCxjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9LHt2YWx1ZTo2MCxjb2xvcjoiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIn0se3ZhbHVlOjgwLGNvbG9yOiJoc2woMCA4NC4yJSA2MC4yJSkifV19fSx7aWQ6InN0b3JhZ2UiLHRpdGxlOiJTdG9yYWdlIFVzZWQiLHZhbHVlOjY1LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkZXNjcmlwdGlvbjoiNjUwIEdCIG9mIDEgVEIifSx7aWQ6ImxhdGVuY3kiLHRpdGxlOiJSZXNwb25zZSBUaW1lIix2YWx1ZToxNDIsdW5pdDoibXMiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLHRyZW5kRGF0YTpbMTUwLDE0NSwxNDgsMTQyLDEzOCwxNDAsMTM1LDE0NSwxNDJdLGRlc2NyaXB0aW9uOiJQOTUifSx7aWQ6InVwdGltZSIsdGl0bGU6IlN5c3RlbSBVcHRpbWUiLHZhbHVlOiI5OS45NSUiLHR5cGU6InRleHQiLGljb246Imx1Y2lkZTpjaGVjay1jaXJjbGUiLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIixkZXNjcmlwdGlvbjoiTGFzdCAzMCBkYXlzIn1dLFt7bmFtZToiUmVmcmVzaCIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoLWN3IixhY3Rpb246YXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc3RhdHNncmlkIik7dCYmKHQuc3R5bGUub3BhY2l0eT0iMC41IixzZXRUaW1lb3V0KCgpPT57dC5zdHlsZS5vcGFjaXR5PSIxIn0sMzAwKSl9fSx7bmFtZToiRXhwb3J0IixpY29uTmFtZToibHVjaWRlOnNoYXJlIixhY3Rpb246YXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7dCYmKHQudGV4dENvbnRlbnQ9IkV4cG9ydGluZyBkYXNoYm9hcmQgcmVwb3J0Li4uIil9fSx7bmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTt0JiYodC50ZXh0Q29udGVudD0iT3BlbmluZyBkYXNoYm9hcmQgc2V0dGluZ3MuLi4iKX19XSwyNTAsMTYsaC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpLGguYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKSwiMi4gVGlsZSBUeXBlcyIsIkRpZmZlcmVudCB2aXN1YWxpemF0aW9uIHR5cGVzIGF2YWlsYWJsZSBpbiB0aGUgc3RhdHMgZ3JpZCIsW3tpZDoibnVtYmVyLWV4YW1wbGUiLHRpdGxlOiJOdW1iZXIgVGlsZSIsdmFsdWU6NDIxOTUsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6aGFzaCIsZGVzY3JpcHRpb246IlNpbXBsZSBudW1lcmljIGRpc3BsYXkifSx7aWQ6ImdhdWdlLWV4YW1wbGUiLHRpdGxlOiJHYXVnZSBUaWxlIix2YWx1ZTo2OCx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmdhdWdlIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NTAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJwZXJjZW50YWdlLWV4YW1wbGUiLHRpdGxlOiJQZXJjZW50YWdlIFRpbGUiLHZhbHVlOjc4LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpwZXJjZW50IixkZXNjcmlwdGlvbjoiUHJvZ3Jlc3MgYmFyIHZpc3VhbGl6YXRpb24ifSx7aWQ6InRyZW5kLWV4YW1wbGUiLHRpdGxlOiJUcmVuZCBUaWxlIix2YWx1ZTo4OTIsdW5pdDoib3BzL3MiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6dHJlbmRpbmctdXAiLHRyZW5kRGF0YTpbNzIwLDc1MCw3ODAsNzk1LDgxMCw4MzUsODUwLDg2NSw4ODAsODkyXSxkZXNjcmlwdGlvbjoiYXZnIn0se2lkOiJ0ZXh0LWV4YW1wbGUiLHRpdGxlOiJUZXh0IFRpbGUiLHZhbHVlOiJPcGVyYXRpb25hbCIsdHlwZToidGV4dCIsaWNvbjoibHVjaWRlOmluZm8iLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIixkZXNjcmlwdGlvbjoiU3RhdHVzIGRpc3BsYXkifV0sMjgwLDE2LCIzLiBHcmlkIENvbmZpZ3VyYXRpb25zIiwiRGlmZmVyZW50IGxheW91dCBvcHRpb25zIGFuZCByZXNwb25zaXZlIGJlaGF2aW9yIixbe2lkOiIxIix0aXRsZToiT3JkZXJzIix2YWx1ZToxNTYsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6c2hvcHBpbmctY2FydCJ9LHtpZDoiMiIsdGl0bGU6IlJldmVudWUiLHZhbHVlOjg0MjAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6ZG9sbGFyLXNpZ24ifSx7aWQ6IjMiLHRpdGxlOiJVc2VycyIsdmFsdWU6NDIzLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnVzZXJzIn0se2lkOiI0Iix0aXRsZToiR3Jvd3RoIix2YWx1ZToxMi41LHVuaXQ6IiUiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnRyZW5kaW5nLXVwIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSJ9XSwxODAsMTIsW3tpZDoic3BhY2lvdXMxIix0aXRsZToiTW9udGhseSBSZXZlbnVlIix2YWx1ZToxODQ1MDAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Y3JlZGl0LWNhcmQiLGRlc2NyaXB0aW9uOiJUb3RhbCByZXZlbnVlIHRoaXMgbW9udGgifSx7aWQ6InNwYWNpb3VzMiIsdGl0bGU6IkN1c3RvbWVyIFNhdGlzZmFjdGlvbiIsdmFsdWU6OTQsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOnNtaWxlIixkZXNjcmlwdGlvbjoiQmFzZWQgb24gMSwyMzQgcmV2aWV3cyJ9LHtpZDoic3BhY2lvdXMzIix0aXRsZToiU2VydmVyIFJlc3BvbnNlIix2YWx1ZTo5OCx1bml0OiJtcyIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLHRyZW5kRGF0YTpbMTA1LDEwMiwxMDAsOTksOTgsOTgsOTcsOThdLGRlc2NyaXB0aW9uOiJhdmcgcmVzcG9uc2UgdGltZSJ9XSwzMjAsMjAsIjQuIENQVSBDb3JlcyBWaXN1YWxpemF0aW9uIiwiVmVydGljYWwgYmFyIHZpc3VhbGl6YXRpb24gZm9yIG11bHRpLWNvcmUgQ1BVIHVzYWdlIHdpdGggY29sdW1uIHNwYW5uaW5nIixbe2lkOiJjcHUtY29yZXMtOCIsdGl0bGU6IkNQVSBDb3JlcyAoOC1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOmNwdSIsY29sdW1uU3BhbjoyLGNvcmVzRGF0YTpBcSg4KSxkZXNjcmlwdGlvbjoiSW50ZWwgaTcgLSA4IGNvcmVzIn0se2lkOiJtZW1vcnkiLHRpdGxlOiJNZW1vcnkgVXNhZ2UiLHZhbHVlOjY4LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpkYXRhYmFzZSIsZGVzY3JpcHRpb246IjEzLjYgR0Igb2YgMjAgR0IifSx7aWQ6ImNwdS1jb3Jlcy0xNiIsdGl0bGU6IkNQVSBDb3JlcyAoMTYtY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpjcHUiLGNvbHVtblNwYW46Mixjb3Jlc0RhdGE6QXEoMTYpLGRlc2NyaXB0aW9uOiJBTUQgUnl6ZW4gOSAtIDE2IGNvcmVzIn0se2lkOiJuZXR3b3JrIix0aXRsZToiTmV0d29yayBJL08iLHZhbHVlOjI0NSx1bml0OiJNQi9zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOm5ldHdvcmsiLHRyZW5kRGF0YTpbMjAwLDIyMCwyMzUsMjQwLDIzOCwyNDVdLGRlc2NyaXB0aW9uOiJ0aHJvdWdocHV0In0se2lkOiJjcHUtY29yZXMtMzIiLHRpdGxlOiJTZXJ2ZXIgQ1BVICgzMi1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOnNlcnZlciIsY29sdW1uU3BhbjozLGNvcmVzRGF0YTpBcSgzMiksZGVzY3JpcHRpb246IkFNRCBFUFlDIC0gMzIgY29yZXMifSx7aWQ6ImRpc2siLHRpdGxlOiJEaXNrIFVzYWdlIix2YWx1ZTo0Mix0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGVzY3JpcHRpb246IjQyMCBHQiBvZiAxIFRCIn1dLFt7bmFtZToiUmFuZG9taXplIixpY29uTmFtZToibHVjaWRlOnNodWZmbGUiLGFjdGlvbjphc3luYygpPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NwdS1jb3Jlcy1ncmlkIik7aWYoIXQpcmV0dXJuO2xldCBlPXQudGlsZXMubWFwKGE9PmEudHlwZT09PSJjcHVDb3JlcyImJmEuY29yZXNEYXRhP3suLi5hLGNvcmVzRGF0YTphLmNvcmVzRGF0YS5tYXAoaT0+KHsuLi5pLHVzYWdlOk1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDApfSkpfTphKTt0LnRpbGVzPWV9fV0sMjUwLDE2LCI1LiBJbnRlcmFjdGl2ZSBGZWF0dXJlcyIsIlRpbGVzIHdpdGggYWN0aW9ucyBhbmQgcmVhbC10aW1lIHVwZGF0ZXMiLFt7aWQ6ImxpdmUtY3B1Iix0aXRsZToiTGl2ZSBDUFUiLHZhbHVlOjQ1LHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Y3B1IixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NjAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJsaXZlLXJlcXVlc3RzIix0aXRsZToiUmVxdWVzdHMvc2VjIix2YWx1ZTo4OTIsdHlwZToidHJlbmQiLGljb246Imx1Y2lkZTphY3Rpdml0eSIsdHJlbmREYXRhOls4NTAsODYwLDg3MCw4ODAsODg1LDg5MCw4OTJdfSx7aWQ6ImxpdmUtbWVtb3J5Iix0aXRsZToiTWVtb3J5IFVzYWdlIix2YWx1ZTo2Mix0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6ZGF0YWJhc2UifSx7aWQ6ImNvdW50ZXIiLHRpdGxlOiJFdmVudCBDb3VudGVyIix2YWx1ZTowLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnphcCIsYWN0aW9uczpbe25hbWU6IkluY3JlbWVudCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIixhY3Rpb246YXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYoIXQpcmV0dXJuO2xldCBlPXQudGlsZXMuZmluZChhPT5hLmlkPT09ImNvdW50ZXIiKTtlLnZhbHVlPXR5cGVvZiBlLnZhbHVlPT0ibnVtYmVyIj9lLnZhbHVlKzE6MSx0LnRpbGVzPVsuLi50LnRpbGVzXX19LHtuYW1lOiJSZXNldCIsaWNvbk5hbWU6Imx1Y2lkZTpyb3RhdGUtY2N3IixhY3Rpb246YXN5bmMoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYoIXQpcmV0dXJuO2xldCBlPXQudGlsZXMuZmluZChhPT5hLmlkPT09ImNvdW50ZXIiKTtlLnZhbHVlPTAsdC50aWxlcz1bLi4udC50aWxlc119fV19XSxbe25hbWU6IlN0YXJ0IExpdmUgVXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpwbGF5IixhY3Rpb246YXN5bmMgZnVuY3Rpb24oKXt3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPyhjbGVhckludGVydmFsKHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWwpLHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw9bnVsbCx0aGlzLm5hbWU9IlN0YXJ0IExpdmUgVXBkYXRlcyIsdGhpcy5pY29uTmFtZT0ibHVjaWRlOnBsYXkiKTood2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpbnRlcmFjdGl2ZS1ncmlkIik7aWYodCl7bGV0IGU9Wy4uLnQudGlsZXNdLGE9ZS5maW5kKG49Pm4uaWQ9PT0ibGl2ZS1jcHUiKTthLnZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oMTAwLGEudmFsdWUrKE1hdGgucmFuZG9tKCkqMjAtMTApKSk7bGV0IGk9ZS5maW5kKG49Pm4uaWQ9PT0ibGl2ZS1yZXF1ZXN0cyIpLHI9aS52YWx1ZStNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqNTAtMjUpO2kudmFsdWU9TWF0aC5tYXgoODAwLHIpLGkudHJlbmREYXRhPVsuLi5pLnRyZW5kRGF0YS5zbGljZSgxKSxpLnZhbHVlXTtsZXQgcz1lLmZpbmQobj0+bi5pZD09PSJsaXZlLW1lbW9yeSIpO3MudmFsdWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAscy52YWx1ZSsoTWF0aC5yYW5kb20oKSoxMC01KSkpLHQudGlsZXM9ZX19LDFlMyksdGhpcy5uYW1lPSJTdG9wIExpdmUgVXBkYXRlcyIsdGhpcy5pY29uTmFtZT0ibHVjaWRlOnBhdXNlIil9fV0sMjUwLDE2LCI2LiBDb2RlIEV4YW1wbGUiLCJIb3cgdG8gaW1wbGVtZW50IGEgc3RhdHMgZ3JpZCB3aXRoIFR5cGVTY3JpcHQiLGBjb25zdCB0aWxlczogSVN0YXRzVGlsZVtdID0gWwogIHsKICAgIGlkOiAncmV2ZW51ZScsCiAgICB0aXRsZTogJ1RvdGFsIFJldmVudWUnLAogICAgdmFsdWU6IDEyNTQyMCwKICAgIHVuaXQ6ICckJywKICAgIHR5cGU6ICdudW1iZXInLAogICAgaWNvbjogJ2x1Y2lkZTpkb2xsYXItc2lnbicsCiAgICBkZXNjcmlwdGlvbjogJysxMi41JSBmcm9tIGxhc3QgbW9udGgnLAogICAgYWN0aW9uczogWwogICAgICB7CiAgICAgICAgbmFtZTogJ1ZpZXcgRGV0YWlscycsCiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6dHJlbmRpbmctdXAnLAogICAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gewogICAgICAgICAgY29uc29sZS5sb2coJ1ZpZXcgcmV2ZW51ZSBkZXRhaWxzJyk7CiAgICAgICAgfQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogJ2NwdScsCiAgICB0aXRsZTogJ0NQVSBVc2FnZScsCiAgICB2YWx1ZTogNzMsCiAgICB1bml0OiAnJScsCiAgICB0eXBlOiAnZ2F1Z2UnLAogICAgaWNvbjogJ2x1Y2lkZTpjcHUnLAogICAgZ2F1Z2VPcHRpb25zOiB7CiAgICAgIG1pbjogMCwKICAgICAgbWF4OiAxMDAsCiAgICAgIHRocmVzaG9sZHM6IFsKICAgICAgICB7IHZhbHVlOiAwLCBjb2xvcjogJ2hzbCgxNDIuMSA3Ni4yJSAzNi4zJSknIH0sCiAgICAgICAgeyB2YWx1ZTogNjAsIGNvbG9yOiAnaHNsKDQ1LjQgOTMuNCUgNDcuNSUpJyB9LAogICAgICAgIHsgdmFsdWU6IDgwLCBjb2xvcjogJ2hzbCgwIDg0LjIlIDYwLjIlKScgfQogICAgICBdCiAgICB9CiAgfQpdOwoKLy8gUmVuZGVyIHRoZSBzdGF0cyBncmlkCmh0bWxcYAogIDxkZWVzLXN0YXRzZ3JpZAogICAgLnRpbGVzPVwke3RpbGVzfQogICAgLm1pblRpbGVXaWR0aD1cJHsyNTB9CiAgICAuZ2FwPVwkezE2fQogICAgLmdyaWRBY3Rpb25zPVwke1sKICAgICAgewogICAgICAgIG5hbWU6ICdSZWZyZXNoJywKICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTpyZWZyZXNoLWN3JywKICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IGNvbnNvbGUubG9nKCdSZWZyZXNoJykKICAgICAgfQogICAgXX0KICA+PC9kZWVzLXN0YXRzZ3JpZD4KXGA7YCwiNy4gRGlzayAmIFN0b3JhZ2UgVGlsZXMiLCJQYXJ0aXRpb24gYW5kIHBoeXNpY2FsIGRpc2sgdmlzdWFsaXphdGlvbiB0aWxlcyIsW3tpZDoicm9vdC1wYXJ0aXRpb24iLHRpdGxlOiJSb290IFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpmb2xkZXItcm9vdCIscGFydGl0aW9uRGF0YTp7dXNlZDo2OTgzNDE0MjUxNTIsdG90YWw6MTA3Mzc0MTgyNGUzLGZpbGVzeXN0ZW06ImV4dDQiLG1vdW50UG9pbnQ6Ii8ifX0se2lkOiJob21lLXBhcnRpdGlvbiIsdGl0bGU6IkhvbWUgUGFydGl0aW9uIix2YWx1ZTowLHR5cGU6InBhcnRpdGlvbiIsaWNvbjoibHVjaWRlOmhvbWUiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6MjE0NzQ4MzY0ODAwLHRvdGFsOjUzNjg3MDkxMmUzLGZpbGVzeXN0ZW06ImV4dDQiLG1vdW50UG9pbnQ6Ii9ob21lIn19LHtpZDoiZGF0YS1wYXJ0aXRpb24iLHRpdGxlOiJEYXRhIFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpkYXRhYmFzZSIscGFydGl0aW9uRGF0YTp7dXNlZDoxOTMyNzM1MjgzMjAwLHRvdGFsOjIxNDc0ODM2NDhlMyxmaWxlc3lzdGVtOiJ4ZnMiLG1vdW50UG9pbnQ6Ii9kYXRhIn19LHtpZDoibnZtZS1zc2QiLHRpdGxlOiJQcmltYXJ5IE5WTWUiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGNvbHVtblNwYW46MixkaXNrRGF0YTp7Y2FwYWNpdHk6MmUxMixtb2RlbDoiU2Ftc3VuZyA5OTAgUHJvIix0eXBlOiJudm1lIixpb3BzOntyZWFkOjc0NTAsd3JpdGU6NjkwMH0saGVhbHRoOjk4fX0se2lkOiJzYXRhLXNzZCIsdGl0bGU6IlNlY29uZGFyeSBTU0QiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRpc2tEYXRhOntjYXBhY2l0eToxZTEyLG1vZGVsOiJDcnVjaWFsIE1YNTAwIix0eXBlOiJzc2QiLGlvcHM6e3JlYWQ6NTYwLHdyaXRlOjUxMH0saGVhbHRoOjg1fX0se2lkOiJoZGQtc3RvcmFnZSIsdGl0bGU6IkJhY2t1cCBIREQiLHZhbHVlOjAsdHlwZToiZGlzayIsaWNvbjoibHVjaWRlOmFyY2hpdmUiLGRpc2tEYXRhOntjYXBhY2l0eTo4ZTEyLG1vZGVsOiJTZWFnYXRlIElyb25Xb2xmIix0eXBlOiJoZGQiLGlvcHM6e3JlYWQ6MjEwLHdyaXRlOjE5NX0saGVhbHRoOjQyfX1dLDI4MCwxNil9KTt2YXIgajAsTGEsWGUsQzE9YigoKT0+e3VlKCk7VHQoKTtqMD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LExhPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxYZT0oKCk9PntsZXQgdD14ZSxlLGE9W10saT1bXSxyLHM9W10sbj1bXSxvLGQ9W10sYz1bXSxwLGw9W10sZj1bXSxnLHk9W10sdj1bXSxtLHg9W10sTT1bXSxTLEY9W10sXz1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e3N0YXRpY3tsZXQgTj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZSh0W1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtJKHt0eXBlOlN0cmluZ30pXSxyPVtJKHt0eXBlOlN0cmluZ30pXSxvPVtJKHt0eXBlOlN0cmluZ30pXSxwPVtJKHt0eXBlOlN0cmluZ30pXSxnPVtJKHt0eXBlOkJvb2xlYW59KV0sbT1bSSh7dHlwZTpCb29sZWFufSldLFM9W0koe3R5cGU6U3RyaW5nfSldLGowKHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0TW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TD0+ImxheW91dE1vZGUiaW4gTCxnZXQ6TD0+TC5sYXlvdXRNb2RlLHNldDooTCxBKT0+e0wubGF5b3V0TW9kZT1BfX0sbWV0YWRhdGE6Tn0sYSxpKSxqMCh0aGlzLG51bGwscix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkw9PiJsYWJlbFBvc2l0aW9uImluIEwsZ2V0Okw9PkwubGFiZWxQb3NpdGlvbixzZXQ6KEwsQSk9PntMLmxhYmVsUG9zaXRpb249QX19LG1ldGFkYXRhOk59LHMsbiksajAodGhpcyxudWxsLG8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkw9PiJrZXkiaW4gTCxnZXQ6TD0+TC5rZXksc2V0OihMLEEpPT57TC5rZXk9QX19LG1ldGFkYXRhOk59LGQsYyksajAodGhpcyxudWxsLHAse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TD0+ImxhYmVsImluIEwsZ2V0Okw9PkwubGFiZWwsc2V0OihMLEEpPT57TC5sYWJlbD1BfX0sbWV0YWRhdGE6Tn0sbCxmKSxqMCh0aGlzLG51bGwsZyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlcXVpcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpMPT4icmVxdWlyZWQiaW4gTCxnZXQ6TD0+TC5yZXF1aXJlZCxzZXQ6KEwsQSk9PntMLnJlcXVpcmVkPUF9fSxtZXRhZGF0YTpOfSx5LHYpLGowKHRoaXMsbnVsbCxtLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkw9PiJkaXNhYmxlZCJpbiBMLGdldDpMPT5MLmRpc2FibGVkLHNldDooTCxBKT0+e0wuZGlzYWJsZWQ9QX19LG1ldGFkYXRhOk59LHgsTSksajAodGhpcyxudWxsLFMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkZXNjcmlwdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TD0+ImRlc2NyaXB0aW9uImluIEwsZ2V0Okw9PkwuZGVzY3JpcHRpb24sc2V0OihMLEEpPT57TC5kZXNjcmlwdGlvbj1BfX0sbWV0YWRhdGE6Tn0sRixfKSxOJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk59KX0jZT1MYSh0aGlzLGEsImF1dG8iKTtnZXQgbGF5b3V0TW9kZSgpe3JldHVybiB0aGlzLiNlfXNldCBsYXlvdXRNb2RlKE4pe3RoaXMuI2U9Tn0jdD0oTGEodGhpcyxpKSxMYSh0aGlzLHMsInRvcCIpKTtnZXQgbGFiZWxQb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBsYWJlbFBvc2l0aW9uKE4pe3RoaXMuI3Q9Tn0jYT0oTGEodGhpcyxuKSxMYSh0aGlzLGQsdm9pZCAwKSk7Z2V0IGtleSgpe3JldHVybiB0aGlzLiNhfXNldCBrZXkoTil7dGhpcy4jYT1OfSNpPShMYSh0aGlzLGMpLExhKHRoaXMsbCx2b2lkIDApKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbGFiZWwoTil7dGhpcy4jaT1OfSNyPShMYSh0aGlzLGYpLExhKHRoaXMseSwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNyfXNldCByZXF1aXJlZChOKXt0aGlzLiNyPU59I3M9KExhKHRoaXMsdiksTGEodGhpcyx4LCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGRpc2FibGVkKE4pe3RoaXMuI3M9Tn0jbj0oTGEodGhpcyxNKSxMYSh0aGlzLEYsdm9pZCAwKSk7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuI259c2V0IGRlc2NyaXB0aW9uKE4pe3RoaXMuI249Tn1zdGF0aWMgZ2V0IGJhc2VTdHlsZXMoKXtyZXR1cm5bUWAKICAgICAgICAvKiBDU1MgVmFyaWFibGVzIGZvciBjb25zaXN0ZW50IHNwYWNpbmcgKi8KICAgICAgICA6aG9zdCB7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtc3BhY2luZy11bml0OiA4cHg7CiAgICAgICAgICAtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwOiB2YXIoLS1kZWVzLWlucHV0LXNwYWNpbmctdW5pdCk7IC8qIDhweCAqLwogICAgICAgIH0KCiAgICAgICAgLyogRGVmYXVsdCBibG9jayBkaXNwbGF5IHdpdGggbm8gbWFyZ2lucyAtIHNwYWNpbmcgaXMgY29udGFpbmVyLWRyaXZlbiAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIH0KCiAgICAgICAgLyogSG9yaXpvbnRhbCBsYXlvdXQgbW9kZSAtIGFjdGl2YXRlZCBieSBhdHRyaWJ1dGUgKi8KICAgICAgICA6aG9zdChbbGF5b3V0LW1vZGU9Imhvcml6b250YWwiXSkgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLyogTGFiZWwgcG9zaXRpb24gdmFyaWF0aW9ucyAqLwogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmcjsKICAgICAgICAgIGdhcDogdmFyKC0tZGVlcy1pbnB1dC1sYWJlbC1nYXApOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87CiAgICAgICAgICBnYXA6IHZhcigtLWRlZXMtaW5wdXQtbGFiZWwtZ2FwKTsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICA6aG9zdChbbGFiZWwtcG9zaXRpb249InRvcCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibm9uZSJdKSBkZWVzLWxhYmVsIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQogICAgICBgXX1jaGFuZ2VTdWJqZWN0PShMYSh0aGlzLF8pLG5ldyBNdC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuZGV0ZWN0TGF5b3V0TW9kZSgpfWRldGVjdExheW91dE1vZGUoKXtpZih0aGlzLmxheW91dE1vZGUhPT0iYXV0byIpe3RoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsdGhpcy5sYXlvdXRNb2RlKTtyZXR1cm59bGV0IE49dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtOJiZOLmhhc0F0dHJpYnV0ZSgiaG9yaXpvbnRhbC1sYXlvdXQiKT90aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLCJob3Jpem9udGFsIik6dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIiwidmVydGljYWwiKX11cGRhdGVkKE4pe3N1cGVyLnVwZGF0ZWQoTiksTi5oYXMoImxheW91dE1vZGUiKSYmdGhpcy5kZXRlY3RMYXlvdXRNb2RlKCksTi5oYXMoImxhYmVsUG9zaXRpb24iKSYmdGhpcy5zZXRBdHRyaWJ1dGUoImxhYmVsLXBvc2l0aW9uIix0aGlzLmxhYmVsUG9zaXRpb24pfWFzeW5jIGZyZWV6ZSgpe3RoaXMuZGlzYWJsZWQ9ITB9YXN5bmMgdW5mcmVlemUoKXt0aGlzLmRpc2FibGVkPSExfX19KSgpfSk7dmFyIEY5dCxPOXQ9YigoKT0+e3VlKCk7eTEoKTttMigpO25vKCk7Rjl0PSgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtY2hlY2tib3giKSxhPXQucXVlcnlTZWxlY3RvcigiI3NlbGVjdC1hbGwtYnRuIiksaT10LnF1ZXJ5U2VsZWN0b3IoIiNjbGVhci1hbGwtYnRuIik7YSYmaSYmKGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5mb3JFYWNoKHI9Pnshci5kaXNhYmxlZCYmci5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKHIudmFsdWU9ITApfSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZm9yRWFjaChyPT57IXIuZGlzYWJsZWQmJnIua2V5Py5zdGFydHNXaXRoKCJmZWF0dXJlIikmJihyLnZhbHVlPSExKX0pfSkpfX0+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoZWNrYm94LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1jaGVja2JveGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIENoZWNrYm94ZXMifSAuc3VidGl0bGU9JHsiU2ltcGxlIGNoZWNrYm94IGV4YW1wbGVzIHdpdGggdmFyaW91cyBsYWJlbHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAua2V5PSR7InRlcm1zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXIifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5rZXk9JHsibmV3c2xldHRlciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBub3RpZmljYXRpb25zIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBlbWFpbCB1cGRhdGVzIGFib3V0IHlvdXIgYWNjb3VudCJ9CiAgICAgICAgICAgIC5rZXk9JHsibm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2hlY2tib3ggU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBjaGVja2JveCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3gtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEZWZhdWx0IHN0YXRlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJDaGVja2VkIHN0YXRlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCB1bmNoZWNrZWQifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBjaGVja2VkIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgY2hlY2tib3gifSAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IkNoZWNrYm94ZXMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1jaGVja2JveGVzIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEEifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7Im9wdGlvbkEifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQiJ9IAogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBDIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJvcHRpb25DIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEQifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7Im9wdGlvbkQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZlYXR1cmUgU2VsZWN0aW9uIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ29tbW9uIHVzZSBjYXNlIGZvciBmZWF0dXJlIHRvZ2dsZXMgd2l0aCBiYXRjaCBvcGVyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0ic2VsZWN0LWFsbC1idG4iIHR5cGU9InNlY29uZGFyeSI+U2VsZWN0IEFsbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9ImNsZWFyLWFsbC1idG4iIHR5cGU9InNlY29uZGFyeSI+Q2xlYXIgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWxpc3QiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3gtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiRGFyayBNb2RlIFN1cHBvcnQifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUxIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBOb3RpZmljYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiVHdvLUZhY3RvciBBdXRoZW50aWNhdGlvbiJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFQSSBBY2Nlc3MifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmU0In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZHZhbmNlZCBBbmFseXRpY3MifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmU1In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJpdmFjeSBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNoZWNrYm94ZXMgaW4gYSB0eXBpY2FsIGZvcm0gY29udGV4dCJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tc2VjdGlvbiI+CiAgICAgICAgICA8aDQgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlByaXZhY3kgUHJlZmVyZW5jZXM8L2g0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJTaGFyZSBhbmFseXRpY3MgZGF0YSJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIZWxwIHVzIGltcHJvdmUgYnkgc2hhcmluZyBhbm9ueW1vdXMgdXNhZ2UgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiUGVyc29uYWxpemVkIHJlY29tbWVuZGF0aW9ucyJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgc3VnZ2VzdGlvbnMgYmFzZWQgb24geW91ciBhY3Rpdml0eSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiTWFya2V0aW5nIGNvbW11bmljYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlY2VpdmUgcHJvbW90aW9uYWwgZW1haWxzIGFuZCBzcGVjaWFsIG9mZmVycyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiVGhpcmQtcGFydHkgaW50ZWdyYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFsbG93IGFwcHJvdmVkIHBhcnRuZXJzIHRvIGFjY2VzcyB5b3VyIGRhdGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNoZWNrYm94ZXMgdG8gc2VlIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkZlYXR1cmUgdG9nZ2xlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hlY2tib3gtb3V0cHV0Iik7aWYoZSYmdC5kZXRhaWwpe2xldCBhPXQuZGV0YWlsLmdldFZhbHVlKCk7ZS50ZXh0Q29udGVudD1gRmVhdHVyZSBpcyAke2E/ImVuYWJsZWQiOiJkaXNhYmxlZCJ9YH19fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEZWJ1ZyBtb2RlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZGVidWctb3V0cHV0Iik7aWYoZSYmdC5kZXRhaWwpe2xldCBhPXQuZGV0YWlsLmdldFZhbHVlKCk7ZS50ZXh0Q29udGVudD1gRGVidWcgbW9kZTogJHthPyJPTiI6Ik9GRiJ9YH19fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImNoZWNrYm94LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5GZWF0dXJlIGlzIGRpc2FibGVkPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkZWJ1Zy1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRlYnVnIG1vZGU6IE9GRjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgRHEsdjgsQ3gsX3g9YigoKT0+e3VlKCk7QzEoKTtPOXQoKTtjYSgpO3FlKCk7RHE9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSx2OD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sQ3g9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWlucHV0LWNoZWNrYm94IildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W10sZCxjPVtdLHA9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6Qm9vbGVhbn0pXSxkPVtJKHt0eXBlOkJvb2xlYW59KV0sRHEodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InZhbHVlImluIGcsZ2V0Omc9PmcudmFsdWUsc2V0OihnLHkpPT57Zy52YWx1ZT15fX0sbWV0YWRhdGE6Zn0sbixvKSxEcSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluZGV0ZXJtaW5hdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJpbmRldGVybWluYXRlImluIGcsZ2V0Omc9PmcuaW5kZXRlcm1pbmF0ZSxzZXQ6KGcseSk9PntnLmluZGV0ZXJtaW5hdGU9eX19LG1ldGFkYXRhOmZ9LGMscCksRHEobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Zn0sbnVsbCxhKSxsPWk9ZS52YWx1ZSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX1zdGF0aWMgZGVtbz1GOXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPXY4KHRoaXMsbiwhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGYpe3RoaXMuI2U9Zn0jdD0odjgodGhpcyxvKSx2OCh0aGlzLGMsITEpKTtnZXQgaW5kZXRlcm1pbmF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBpbmRldGVybWluYXRlKGYpe3RoaXMuI3Q9Zn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdjgodGhpcyxwKSx0aGlzLmxhYmVsUG9zaXRpb249InJpZ2h0In1zdGF0aWMgc3R5bGVzPVtDZSwuLi5YZS5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgKiB7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3ggewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94OmZvY3VzLXZpc2libGUgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBDaGVja21hcmsgdXNpbmcgTHVjaWRlIGljb24gc3R5bGUgKi8KICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5zZWxlY3RlZCAuY2hlY2ttYXJrIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayBzdmcgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBzdHJva2U6IHdoaXRlOwogICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICAgIH0KCiAgICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBMYWJlbCAqLwogICAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDJweDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZDpob3ZlciAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC8qIERlc2NyaXB0aW9uICovCiAgICAgICAgLmRlc2NyaXB0aW9uLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgQGNsaWNrPSIke3RoaXMudG9nZ2xlU2VsZWN0ZWR9Ij4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJjaGVja2JveCAke3RoaXMudmFsdWU/InNlbGVjdGVkIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiAKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlS2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT93YAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hlY2ttYXJrIj4KICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCA2TDkgMTdMNCAxMiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgOnRoaXMuaW5kZXRlcm1pbmF0ZT93YAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGVja21hcmsiPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDEySDE5IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJjaGVja2JveC1sYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbj93YDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uLXRleHQiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyB0b2dnbGVTZWxlY3RlZCgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlPSF0aGlzLnZhbHVlLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShmKXt0aGlzLnZhbHVlPWZ9Zm9jdXMoKXtsZXQgZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoZWNrYm94Iik7ZiYmZi5mb2N1cygpfWhhbmRsZUtleWRvd24oZil7KGYua2V5PT09IiAifHxmLmtleT09PSJFbnRlciIpJiYoZi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlU2VsZWN0ZWQoKSl9c3RhdGlje3Y4KGksYSl9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBXMD17fTtHZShXMCx7YnJpZ2h0OigpPT5VMCxkYXJrOigpPT5taX0pO3ZhciBtaSxVMCxnaT1iKCgpPT57bWk9e2JsdWU6IiMwMDUwYjkiLGJsdWVBY3RpdmU6IiMwMDY5ZjIiLGJsdWVNdXRlZDoiIzAxMjQ1MiIsdGV4dDoiI2ZmZmZmZiJ9LFUwPXtibHVlOiIjMDA1MGI5IixibHVlQWN0aXZlOiIjMDA2OWYyIixibHVlTXV0ZWQ6IiMwMDY5ZjIiLHRleHQ6IiMzMzMzMzMifX0pO3ZhciBSOXQsQjl0PWIoKCk9Pnt1ZSgpO0cwKCk7Ujl0PSgpPT53YAogIDxzdHlsZT4KICAgICR7UWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXNlY3Rpb24gaDMgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHAgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTUwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5IZWFkZXIgQnV0dG9uczwvaDM+CiAgICAgIDxwPk1vZGFscyBjYW4gaGF2ZSBvcHRpb25hbCBoZWFkZXIgYnV0dG9ucyBmb3IgaGVscCBhbmQgY2xvc2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntuMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIEhlbHAgQnV0dG9uIixzaG93SGVscEJ1dHRvbjohMCxvbkhlbHA6YXN5bmMoKT0+e2xldCB0PWF3YWl0IG4xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkhlbHAiLHdpZHRoOiJzbWFsbCIsc2hvd0Nsb3NlQnV0dG9uOiEwLHNob3dIZWxwQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICAgICAgPHA+VGhpcyBpcyB0aGUgaGVscCBjb250ZW50IGZvciB0aGUgbW9kYWwuPC9wPgogICAgICAgICAgICAgICAgICA8cD5Zb3UgY2FuIHByb3ZpZGUgY29udGV4dC1zcGVjaWZpYyBoZWxwIGhlcmUuPC9wPgogICAgICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX0sY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgaGVscCBidXR0b24gaW4gdGhlIGhlYWRlci4gQ2xpY2sgaXQgdG8gc2VlIGhlbHAgY29udGVudC48L3A+CiAgICAgICAgICAgICAgPHA+VGhlIGNsb3NlIGJ1dHRvbiBpcyBhbHNvIHZpc2libGUgYnkgZGVmYXVsdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJPSyIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PldpdGggSGVscCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e24xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik5vIENsb3NlIEJ1dHRvbiIsc2hvd0Nsb3NlQnV0dG9uOiExLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBubyBjbG9zZSBidXR0b24gaW4gdGhlIGhlYWRlci48L3A+CiAgICAgICAgICAgICAgPHA+WW91IG11c3QgdXNlIHRoZSBhY3Rpb24gYnV0dG9ucyBvciBjbGljayBvdXRzaWRlIHRvIGNsb3NlIGl0LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+Tm8gQ2xvc2UgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntuMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJCb3RoIEJ1dHRvbnMiLHNob3dIZWxwQnV0dG9uOiEwLHNob3dDbG9zZUJ1dHRvbjohMCxvbkhlbHA6KCk9PmFsZXJ0KCJIZWxwIGNsaWNrZWQhIiksY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGJvdGggaGVscCBhbmQgY2xvc2UgYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEb25lIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+Qm90aCBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntuMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJDbGVhbiBIZWFkZXIiLHNob3dDbG9zZUJ1dHRvbjohMSxzaG93SGVscEJ1dHRvbjohMSxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgYSBjbGVhbiBoZWFkZXIgd2l0aCBubyBidXR0b25zLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+Q2xlYW4gSGVhZGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPk1vZGFsIFdpZHRoIFZhcmlhdGlvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgZGlmZmVyZW50IHdpZHRoczogc21hbGwsIG1lZGl1bSwgbGFyZ2UsIGZ1bGxzY3JlZW4sIG9yIGN1c3RvbSBwaXhlbCB2YWx1ZXMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57bjEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU21hbGwgTW9kYWwiLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSBzbWFsbCBtb2RhbCB3aXRoIGEgd2lkdGggb2YgMzgwcHguIFBlcmZlY3QgZm9yIHNpbXBsZSBjb25maXJtYXRpb25zIG9yIGJyaWVmIG1lc3NhZ2VzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfSx7bmFtZToiT0siLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5TbWFsbCBNb2RhbDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57bjEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTWVkaXVtIE1vZGFsIChEZWZhdWx0KSIsd2lkdGg6Im1lZGl1bSIsY29udGVudDp3YAogICAgICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJVc2VybmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRW1haWwifSAuaW5wdXRUeXBlPSR7ImVtYWlsIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQYXNzd29yZCJ9IC5pbnB1dFR5cGU9JHsicGFzc3dvcmQifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfSx7bmFtZToiU2lnbiBVcCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19Pk1lZGl1bSBNb2RhbDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57bjEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTGFyZ2UgTW9kYWwiLHdpZHRoOiJsYXJnZSIsY29udGVudDp3YAogICAgICAgICAgICAgIDxoND5XaWRlIENvbnRlbnQgQXJlYTwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBsYXJnZSBtb2RhbCBpcyA4MDBweCB3aWRlIGFuZCBwZXJmZWN0IGZvciBkaXNwbGF5aW5nIG1vcmUgY29tcGxleCBjb250ZW50IGxpa2UgZm9ybXMgd2l0aCBtdWx0aXBsZSBjb2x1bW5zLCB0YWJsZXMsIG9yIGRldGFpbGVkIGluZm9ybWF0aW9uLjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7IGdhcDogMTZweDsgbWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiRmlyc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiTGFzdCBOYW1lIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJDb21wYW55In0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQb3NpdGlvbiJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9LHtuYW1lOiJTYXZlIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+TGFyZ2UgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e24xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkZ1bGxzY3JlZW4gRWRpdG9yIix3aWR0aDoiZnVsbHNjcmVlbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmFzeW5jKCk9PnthbGVydCgiSW4gYSByZWFsIGFwcCwgdGhpcyB3b3VsZCBzaG93IGVkaXRvciBkb2N1bWVudGF0aW9uIil9LGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8aDQ+RnVsbHNjcmVlbiBFeHBlcmllbmNlIHdpdGggSGVhZGVyIENvbnRyb2xzPC9oND4KICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIHRha2VzIHVwIGFsbW9zdCB0aGUgZW50aXJlIHZpZXdwb3J0IHdpdGggYSAyMHB4IG1hcmdpbiBvbiBhbGwgc2lkZXMuIFRoZSBoZWFkZXIgYnV0dG9ucyBhcmUgcGFydGljdWxhcmx5IHVzZWZ1bCBpbiBmdWxsc2NyZWVuIG1vZGUuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjb250ZW50IGFyZWEgY2FuIGJlIGFzIHRhbGwgYXMgbmVlZGVkIGFuZCB3aWxsIHNjcm9sbCBpZiBuZWNlc3NhcnkuPC9wPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzJhMmEyYSIpfTsgYm9yZGVyLXJhZGl1czogOHB4OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX0iPkxhcmdlIGNvbnRlbnQgYXJlYTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IlNhdmUiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PkZ1bGxzY3JlZW4gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+Q3VzdG9tIFdpZHRoICYgQ29uc3RyYWludHM8L2gzPgogICAgICA8cD5Zb3UgY2FuIGFsc28gc2V0IGN1c3RvbSBwaXhlbCB3aWR0aHMgYW5kIG1pbi9tYXggY29uc3RyYWludHMuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57bjEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ3VzdG9tIFdpZHRoICg3MDBweCkiLHdpZHRoOjcwMCxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgYSBjdXN0b20gd2lkdGggb2YgZXhhY3RseSA3MDAgcGl4ZWxzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+Q3VzdG9tIDcwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntuMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIE1heCBXaWR0aCIsd2lkdGg6ImxhcmdlIixtYXhXaWR0aDo2MDAsY29udGVudDp3YAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaXMgc2V0IHRvICdsYXJnZScgYnV0IGNvbnN0cmFpbmVkIGJ5IGEgbWF4V2lkdGggb2YgNjAwcHguPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiR290IGl0IixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9XX0pfX0+TWF4IFdpZHRoIDYwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntuMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJXaXRoIE1pbiBXaWR0aCIsd2lkdGg6MzAwLG1pbldpZHRoOjQwMCxjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB3aWR0aCBpcyBzZXQgdG8gMzAwcHggYnV0IGhhcyBhIG1pbldpZHRoIG9mIDQwMHB4LCBzbyBpdCB3aWxsIGJlIDQwMHB4IHdpZGUuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5NaW4gV2lkdGggNDAwcHg8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QnV0dG9uIFZhcmlhdGlvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgZGlmZmVyZW50IGJ1dHRvbiBjb25maWd1cmF0aW9ucyB3aXRoIHByb3BlciBzcGFjaW5nLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e24xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik11bHRpcGxlIEFjdGlvbnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGRlbW9uc3RyYXRlcyBtdWx0aXBsZSBidXR0b25zIHdpdGggcHJvcGVyIHNwYWNpbmcgYmV0d2VlbiB0aGVtLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkRlbGV0ZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfSx7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgdD0+dC5kZXN0cm95KCl9LHtuYW1lOiJTYXZlIENoYW5nZXMiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5UaHJlZSBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntuMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJTaW5nbGUgQWN0aW9uIixjb250ZW50OndgCiAgICAgICAgICAgICAgPHA+U29tZXRpbWVzIHlvdSBqdXN0IG5lZWQgb25lIGJ1dHRvbi48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJBY2tub3dsZWRnZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PlNpbmdsZSBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e24xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik5vIEFjdGlvbnMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBubyBib3R0b20gYnV0dG9ucy4gVXNlIHRoZSBYIGJ1dHRvbiBvciBjbGljayBvdXRzaWRlIHRvIGNsb3NlLjwvcD4KICAgICAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsiPlRoaXMgaXMgdXNlZnVsIGZvciBpbmZvcm1hdGlvbmFsIG1vZGFscyB0aGF0IGRvbid0IHJlcXVpcmUgdXNlciBhY3Rpb24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOltdfSl9fT5ObyBCdXR0b25zPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntuMS5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJMb25nIEJ1dHRvbiBMYWJlbHMiLGNvbnRlbnQ6d2AKICAgICAgICAgICAgICA8cD5UZXN0aW5nIGJ1dHRvbiBsYXlvdXQgd2l0aCBsb25nZXIgbGFiZWxzLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkRpc2NhcmQgQWxsIENoYW5nZXMiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX0se25hbWU6IlNhdmUgYW5kIENvbnRpbnVlIEVkaXRpbmciLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9fT5Mb25nIExhYmVsczwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5SZXNwb25zaXZlIEJlaGF2aW9yPC9oMz4KICAgICAgPHA+QWxsIG1vZGFscyBhdXRvbWF0aWNhbGx5IGJlY29tZSBmdWxsLXdpZHRoIG9uIG1vYmlsZSBkZXZpY2VzICg8IDc2OHB4IHZpZXdwb3J0IHdpZHRoKSBmb3IgYmV0dGVyIHVzYWJpbGl0eS48L3A+CiAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e24xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlJlc3BvbnNpdmUgTW9kYWwiLHdpZHRoOiJsYXJnZSIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOigpPT5jb25zb2xlLmxvZygiSGVscCByZXF1ZXN0ZWQgZm9yIHJlc3BvbnNpdmUgbW9kYWwiKSxjb250ZW50OndgCiAgICAgICAgICAgIDxwPlJlc2l6ZSB5b3VyIGJyb3dzZXIgd2luZG93IHRvIHNlZSBob3cgdGhpcyBtb2RhbCBhZGFwdHMuIE9uIG1vYmlsZSB2aWV3cG9ydHMsIGl0IHdpbGwgYXV0b21hdGljYWxseSB0YWtlIHRoZSBmdWxsIHdpZHRoIG1pbnVzIG1hcmdpbnMuPC9wPgogICAgICAgICAgICA8cD5UaGUgaGVhZGVyIGJ1dHRvbnMgcmVtYWluIGFjY2Vzc2libGUgYXQgYWxsIHZpZXdwb3J0IHNpemVzLjwvcD4KICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIHQ9PnQuZGVzdHJveSgpfV19KX19PlRlc3QgUmVzcG9uc2l2ZTwvZGVlcy1idXR0b24+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBqYSx4MSxuMSxHMD1iKCgpPT57Z2koKTtyMigpO3VpKCk7Y2EoKTtCOXQoKTt1ZSgpO1R0KCk7X3MoKTtEdCgpO3FlKCk7amE9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSx4MT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sbjE9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLW1vZGFsIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W10scSxDPVtdLHo9W10sRSxUPVtdLCQ9W10sVixSPVtdLFU9W10scmUsaj1bXSxtZT1bXSx3ZSxIPVtdLGNlPVtdO3ZhciBrZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSih7fSldLGw9W0ooe30pXSx5PVtJKHt0eXBlOlN0cmluZ30pXSx4PVtJKHt0eXBlOk51bWJlcn0pXSxGPVtJKHt0eXBlOk51bWJlcn0pXSxOPVtJKHt0eXBlOkJvb2xlYW59KV0scT1bSSh7dHlwZTpCb29sZWFufSldLEU9W0koe2F0dHJpYnV0ZTohMX0pXSxWPVtJKHt0eXBlOkJvb2xlYW59KV0scmU9W0koe3R5cGU6TnVtYmVyfSldLHdlPVtKKCldLGphKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImhlYWRpbmciaW4gRCxnZXQ6RD0+RC5oZWFkaW5nLHNldDooRCxPKT0+e0QuaGVhZGluZz1PfX0sbWV0YWRhdGE6V30sbixvKSxqYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJjb250ZW50ImluIEQsZ2V0OkQ9PkQuY29udGVudCxzZXQ6KEQsTyk9PntELmNvbnRlbnQ9T319LG1ldGFkYXRhOld9LGMscCksamEodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51T3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+Im1lbnVPcHRpb25zImluIEQsZ2V0OkQ9PkQubWVudU9wdGlvbnMsc2V0OihELE8pPT57RC5tZW51T3B0aW9ucz1PfX0sbWV0YWRhdGE6V30sZixnKSxqYSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4id2lkdGgiaW4gRCxnZXQ6RD0+RC53aWR0aCxzZXQ6KEQsTyk9PntELndpZHRoPU99fSxtZXRhZGF0YTpXfSx2LG0pLGphKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4V2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJtYXhXaWR0aCJpbiBELGdldDpEPT5ELm1heFdpZHRoLHNldDooRCxPKT0+e0QubWF4V2lkdGg9T319LG1ldGFkYXRhOld9LE0sUyksamEodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5XaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+Im1pbldpZHRoImluIEQsZ2V0OkQ9PkQubWluV2lkdGgsc2V0OihELE8pPT57RC5taW5XaWR0aD1PfX0sbWV0YWRhdGE6V30sXyxrKSxqYSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDbG9zZUJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+InNob3dDbG9zZUJ1dHRvbiJpbiBELGdldDpEPT5ELnNob3dDbG9zZUJ1dHRvbixzZXQ6KEQsTyk9PntELnNob3dDbG9zZUJ1dHRvbj1PfX0sbWV0YWRhdGE6V30sTCxBKSxqYSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIZWxwQnV0dG9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ic2hvd0hlbHBCdXR0b24iaW4gRCxnZXQ6RD0+RC5zaG93SGVscEJ1dHRvbixzZXQ6KEQsTyk9PntELnNob3dIZWxwQnV0dG9uPU99fSxtZXRhZGF0YTpXfSxDLHopLGphKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib25IZWxwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ib25IZWxwImluIEQsZ2V0OkQ9PkQub25IZWxwLHNldDooRCxPKT0+e0Qub25IZWxwPU99fSxtZXRhZGF0YTpXfSxULCQpLGphKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9iaWxlRnVsbHNjcmVlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+Im1vYmlsZUZ1bGxzY3JlZW4iaW4gRCxnZXQ6RD0+RC5tb2JpbGVGdWxsc2NyZWVuLHNldDooRCxPKT0+e0QubW9iaWxlRnVsbHNjcmVlbj1PfX0sbWV0YWRhdGE6V30sUixVKSxqYSh0aGlzLG51bGwscmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50UGFkZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImNvbnRlbnRQYWRkaW5nImluIEQsZ2V0OkQ9PkQuY29udGVudFBhZGRpbmcsc2V0OihELE8pPT57RC5jb250ZW50UGFkZGluZz1PfX0sbWV0YWRhdGE6V30saixtZSksamEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kYWxaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJtb2RhbFpJbmRleCJpbiBELGdldDpEPT5ELm1vZGFsWkluZGV4LHNldDooRCxPKT0+e0QubW9kYWxaSW5kZXg9T319LG1ldGFkYXRhOld9LEgsY2UpLGphKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOld9LG51bGwsYSksa2U9aT1lLnZhbHVlLFcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6V30pfXN0YXRpYyBkZW1vPVI5dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIk92ZXJsYXkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyhXKXtsZXQgRD1kb2N1bWVudC5ib2R5LE89bmV3IGtlO3JldHVybiBPLmhlYWRpbmc9Vy5oZWFkaW5nLE8uY29udGVudD1XLmNvbnRlbnQsTy5tZW51T3B0aW9ucz1XLm1lbnVPcHRpb25zLFcud2lkdGgmJihPLndpZHRoPVcud2lkdGgpLFcubWF4V2lkdGgmJihPLm1heFdpZHRoPVcubWF4V2lkdGgpLFcubWluV2lkdGgmJihPLm1pbldpZHRoPVcubWluV2lkdGgpLFcuc2hvd0Nsb3NlQnV0dG9uIT09dm9pZCAwJiYoTy5zaG93Q2xvc2VCdXR0b249Vy5zaG93Q2xvc2VCdXR0b24pLFcuc2hvd0hlbHBCdXR0b24hPT12b2lkIDAmJihPLnNob3dIZWxwQnV0dG9uPVcuc2hvd0hlbHBCdXR0b24pLFcub25IZWxwJiYoTy5vbkhlbHA9Vy5vbkhlbHApLFcubW9iaWxlRnVsbHNjcmVlbiE9PXZvaWQgMCYmKE8ubW9iaWxlRnVsbHNjcmVlbj1XLm1vYmlsZUZ1bGxzY3JlZW4pLFcuY29udGVudFBhZGRpbmchPT12b2lkIDAmJihPLmNvbnRlbnRQYWRkaW5nPVcuY29udGVudFBhZGRpbmcpLE8ud2luZG93TGF5ZXI9YXdhaXQgZmkuY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLE8ud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9Pnthd2FpdCBPLmRlc3Ryb3koKX0pLEQuYXBwZW5kKE8ud2luZG93TGF5ZXIpLEQuYXBwZW5kKE8pLE8ubW9kYWxaSW5kZXg9ZDEuZ2V0TmV4dFpJbmRleCgpLGQxLnJlZ2lzdGVyKE8sTy5tb2RhbFpJbmRleCksT30jZT14MSh0aGlzLG4sIiIpO2dldCBoZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcoVyl7dGhpcy4jZT1XfSN0PSh4MSh0aGlzLG8pLHgxKHRoaXMsYyx2b2lkIDApKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBjb250ZW50KFcpe3RoaXMuI3Q9V30jYT0oeDEodGhpcyxwKSx4MSh0aGlzLGYsW10pKTtnZXQgbWVudU9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudU9wdGlvbnMoVyl7dGhpcy4jYT1XfSNpPSh4MSh0aGlzLGcpLHgxKHRoaXMsdiwibWVkaXVtIikpO2dldCB3aWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCB3aWR0aChXKXt0aGlzLiNpPVd9I3I9KHgxKHRoaXMsbSkseDEodGhpcyxNLHZvaWQgMCkpO2dldCBtYXhXaWR0aCgpe3JldHVybiB0aGlzLiNyfXNldCBtYXhXaWR0aChXKXt0aGlzLiNyPVd9I3M9KHgxKHRoaXMsUykseDEodGhpcyxfLHZvaWQgMCkpO2dldCBtaW5XaWR0aCgpe3JldHVybiB0aGlzLiNzfXNldCBtaW5XaWR0aChXKXt0aGlzLiNzPVd9I249KHgxKHRoaXMsaykseDEodGhpcyxMLCEwKSk7Z2V0IHNob3dDbG9zZUJ1dHRvbigpe3JldHVybiB0aGlzLiNufXNldCBzaG93Q2xvc2VCdXR0b24oVyl7dGhpcy4jbj1XfSNvPSh4MSh0aGlzLEEpLHgxKHRoaXMsQywhMSkpO2dldCBzaG93SGVscEJ1dHRvbigpe3JldHVybiB0aGlzLiNvfXNldCBzaG93SGVscEJ1dHRvbihXKXt0aGlzLiNvPVd9I2w9KHgxKHRoaXMseikseDEodGhpcyxULHZvaWQgMCkpO2dldCBvbkhlbHAoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb25IZWxwKFcpe3RoaXMuI2w9V30jYz0oeDEodGhpcywkKSx4MSh0aGlzLFIsITEpKTtnZXQgbW9iaWxlRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNjfXNldCBtb2JpbGVGdWxsc2NyZWVuKFcpe3RoaXMuI2M9V30jZD0oeDEodGhpcyxVKSx4MSh0aGlzLGosMTYpKTtnZXQgY29udGVudFBhZGRpbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgY29udGVudFBhZGRpbmcoVyl7dGhpcy4jZD1XfSNwPSh4MSh0aGlzLG1lKSx4MSh0aGlzLEgsMWUzKSk7Z2V0IG1vZGFsWkluZGV4KCl7cmV0dXJuIHRoaXMuI3B9c2V0IG1vZGFsWkluZGV4KFcpe3RoaXMuI3A9V31jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CiAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgbGVmdDogMHB4OwogICAgICAgIHdpZHRoOiAxMDB2dzsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQogICAgICAubW9kYWwgewogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMC45NSk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgICAgIG1hcmdpbjogMjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgLyogV2lkdGggdmFyaWF0aW9ucyAqLwogICAgICAubW9kYWwud2lkdGgtc21hbGwgewogICAgICAgIHdpZHRoOiAzODBweDsKICAgICAgfQoKICAgICAgLm1vZGFsLndpZHRoLW1lZGl1bSB7CiAgICAgICAgd2lkdGg6IDU2MHB4OwogICAgICB9CgogICAgICAubW9kYWwud2lkdGgtbGFyZ2UgewogICAgICAgIHdpZHRoOiA4MDBweDsKICAgICAgfQoKICAgICAgLm1vZGFsLndpZHRoLWZ1bGxzY3JlZW4gewogICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gNDBweCk7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQwcHgpOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAubW9kYWwgewogICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KSAhaW1wb3J0YW50OwogICAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIEFsbG93IGZ1bGwgaGVpZ2h0IG9uIG1vYmlsZSB3aGVuIGNvbnRlbnQgbmVlZHMgaXQgKi8KICAgICAgICAubW9kYWxDb250YWluZXIgewogICAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm1vZGFsIHsKICAgICAgICAgIG1hcmdpbjogMTBweDsKICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMHB4KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRnVsbCBzY3JlZW4gbW9kZSBvbiBtb2JpbGUgKi8KICAgICAgICAubW9kYWwubW9iaWxlLWZ1bGxzY3JlZW4gewogICAgICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OwogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tb2RhbC5zaG93IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpIHNjYWxlKDEpOwogICAgICB9CgogICAgICAubW9kYWwuc2hvdy5wcmVkZXN0cm95IHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIHsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGVyLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAubW9kYWwgLmhlYWRpbmcgLmhlYWRpbmctdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7CiAgICAgICAgcGFkZGluZzogMCA0MHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzUyNTI1YiIpfTsKICAgICAgfQogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzUyNTI1YiIpfTsKICAgICAgfQogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgIH0KICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzFkNGVkOCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzFkNGVkOCIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IFc9dHlwZW9mIHRoaXMud2lkdGg9PSJzdHJpbmciP2B3aWR0aC0ke3RoaXMud2lkdGh9YDoiIixEPXR5cGVvZiB0aGlzLndpZHRoPT0ibnVtYmVyIj9gJHt0aGlzLndpZHRofXB4YDoiIixPPXRoaXMubWF4V2lkdGg/YCR7dGhpcy5tYXhXaWR0aH1weGA6IiIsWj10aGlzLm1pbldpZHRoP2Ake3RoaXMubWluV2lkdGh9cHhgOiIiLFk9dGhpcy5tb2JpbGVGdWxsc2NyZWVuPyJtb2JpbGUtZnVsbHNjcmVlbiI6IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAke0Q/YC5tb2RhbCB7IHdpZHRoOiAke0R9OyB9YDoiIn0KICAgICAgICAke08/YC5tb2RhbCB7IG1heC13aWR0aDogJHtPfTsgfWA6IiJ9CiAgICAgICAgJHtaP2AubW9kYWwgeyBtaW4td2lkdGg6ICR7Wn07IH1gOiIifQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtb2RhbENvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdXRzaWRlQ2xpY2t9IHN0eWxlPSJ6LWluZGV4OiAke3RoaXMubW9kYWxaSW5kZXh9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbCAke1d9ICR7WX0iPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctdGV4dCI+JHt0aGlzLmhlYWRpbmd9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b25zIj4KICAgICAgICAgICAgICAke3RoaXMuc2hvd0hlbHBCdXR0b24/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b24iIEBjbGljaz0ke3RoaXMuaGFuZGxlSGVscH0gdGl0bGU9IkhlbHAiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpoZWxwQ2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICR7dGhpcy5zaG93Q2xvc2VCdXR0b24/d2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmRlc3Ryb3koKX0gdGl0bGU9IkNsb3NlIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiIHN0eWxlPSJwYWRkaW5nOiAke3RoaXMuY29udGVudFBhZGRpbmd9cHg7Ij4ke3RoaXMuY29udGVudH08L2Rpdj4KICAgICAgICAgICR7dGhpcy5tZW51T3B0aW9ucy5sZW5ndGg+MD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b21CdXR0b25zIj4KICAgICAgICAgICAgICAke3RoaXMubWVudU9wdGlvbnMubWFwKChvZSxnZSk9PndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJ1dHRvbiAke2dlPT09dGhpcy5tZW51T3B0aW9ucy5sZW5ndGgtMT8icHJpbWFyeSI6IiJ9ICR7b2UubmFtZT09PSJPSyI/Im9rIjoiIn0iIEBjbGljaz0keygpPT57b2UuYWN0aW9uKHRoaXMpfX0+JHtvZS5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXdpbmRvd0xheWVyPXgxKHRoaXMsY2UpO2FzeW5jIGZpcnN0VXBkYXRlZChXKXtzdXBlci5maXJzdFVwZGF0ZWQoVyksYXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzApLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubW9kYWwiKS5jbGFzc0xpc3QuYWRkKCJzaG93Iil9YXN5bmMgaGFuZGxlT3V0c2lkZUNsaWNrKFcpe1cuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IEQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbENvbnRhaW5lciIpO1cudGFyZ2V0PT09RCYmYXdhaXQgdGhpcy5kZXN0cm95KCl9YXN5bmMgZGVzdHJveSgpe2xldCBXPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubW9kYWwiKS5jbGFzc0xpc3QuYWRkKCJwcmVkZXN0cm95IiksYXdhaXQgVy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDIwMCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzKSxhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSxkMS51bnJlZ2lzdGVyKHRoaXMpfWFzeW5jIGhhbmRsZUhlbHAoKXt0aGlzLm9uSGVscCYmYXdhaXQgdGhpcy5vbkhlbHAoKX1zdGF0aWN7eDEoaSxhKX19O3JldHVybiBrZT1pfSkoKX0pO3ZhciBIOXQscTl0PWIoKCk9Pnt1ZSgpO0g5dD0oKT0+d2AKICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0keyJhIGxhYmVsIn0+PC9kZWVzLWxhYmVsPgogIGB9KTt2YXIgVHgsWTAsVjl0LFRsPWIoKCk9PntyMigpO2dpKCk7dWUoKTtxOXQoKTtxZSgpO1R4PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sWTA9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFY5dD0oKCk9PntsZXQgdD1baGUoImRlZXMtbGFiZWwiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxkPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGw9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLFR4KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJsYWJlbCJpbiBtLGdldDptPT5tLmxhYmVsLHNldDoobSx4KT0+e20ubGFiZWw9eH19LG1ldGFkYXRhOnZ9LG4sbyksVHgodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkZXNjcmlwdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImRlc2NyaXB0aW9uImluIG0sZ2V0Om09Pm0uZGVzY3JpcHRpb24sc2V0OihtLHgpPT57bS5kZXNjcmlwdGlvbj14fX0sbWV0YWRhdGE6dn0sYyxwKSxUeCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlcXVpcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4icmVxdWlyZWQiaW4gbSxnZXQ6bT0+bS5yZXF1aXJlZCxzZXQ6KG0seCk9PnttLnJlcXVpcmVkPXh9fSxtZXRhZGF0YTp2fSxmLGcpLFR4KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwsYSkseT1pPWUudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGRlbW89SDl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiSW5wdXQiXTsjZT1ZMCh0aGlzLG4sIiIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbCh2KXt0aGlzLiNlPXZ9I3Q9KFkwKHRoaXMsbyksWTAodGhpcyxjLHZvaWQgMCkpO2dldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBkZXNjcmlwdGlvbih2KXt0aGlzLiN0PXZ9I2E9KFkwKHRoaXMscCksWTAodGhpcyxmLCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJlcXVpcmVkKHYpe3RoaXMuI2E9dn1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnJlcXVpcmVkIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICB9CgogICAgICBkZWVzLWljb24gewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBjdXJzb3I6IGhlbHA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMubGFiZWw/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPgogICAgICAgICAgICAgICR7dGhpcy5sYWJlbH0KICAgICAgICAgICAgICAke3RoaXMucmVxdWlyZWQ/d2A8c3BhbiBjbGFzcz0icmVxdWlyZWQiPio8L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/d2AKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTppbmZvIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtc3BlZWNoYnViYmxlIC50ZXh0PSR7dGhpcy5kZXNjcmlwdGlvbn0+PC9kZWVzLXNwZWVjaGJ1YmJsZT4KICAgICAgICAgICAgICAgICAgYDp3YGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp3YGB9CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxZMCh0aGlzLGcpfXN0YXRpY3tZMChpLGEpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgTHgsRXE9YigoKT0+e0x4PSIwLjU1LjEifSk7dmFyIExsLFVpLGo5dCxaMD1iKCgpPT57dWUoKTtUdCgpO0VxKCk7cWUoKTtMbD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LFVpPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxqOXQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0seT1bSSh7dHlwZTpPYmplY3R9KV0seD1bSSh7dHlwZTpCb29sZWFufSldLExsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImNvbnRlbnQiaW4gayxnZXQ6az0+ay5jb250ZW50LHNldDooayxOKT0+e2suY29udGVudD1OfX0sbWV0YWRhdGE6X30sbixvKSxMbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ibGFuZ3VhZ2UiaW4gayxnZXQ6az0+ay5sYW5ndWFnZSxzZXQ6KGssTik9PntrLmxhbmd1YWdlPU59fSxtZXRhZGF0YTpffSxjLHApLExsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJmaWxlUGF0aCJpbiBrLGdldDprPT5rLmZpbGVQYXRoLHNldDooayxOKT0+e2suZmlsZVBhdGg9Tn19LG1ldGFkYXRhOl99LGYsZyksTGwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50U3ViamVjdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImNvbnRlbnRTdWJqZWN0ImluIGssZ2V0Oms9PmsuY29udGVudFN1YmplY3Qsc2V0OihrLE4pPT57ay5jb250ZW50U3ViamVjdD1OfX0sbWV0YWRhdGE6X30sdixtKSxMbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4id29yZFdyYXAiaW4gayxnZXQ6az0+ay53b3JkV3JhcCxzZXQ6KGssTik9PntrLndvcmRXcmFwPU59fSxtZXRhZGF0YTpffSxNLFMpLExsKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksRj1pPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89KCk9PndgPGRlZXMtd29ya3NwYWNlLW1vbmFjbz48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz5gO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIG1vbmFjb0RlZmVycmVkO2VkaXRvckRlZmVycmVkPU10LnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPVVpKHRoaXMsbixgZnVuY3Rpb24gaGVsbG8oKSB7CglhbGVydCgnSGVsbG8gd29ybGQhJyk7Cn1gKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiNlfXNldCBjb250ZW50KF8pe3RoaXMuI2U9X30jdD0oVWkodGhpcyxvKSxVaSh0aGlzLGMsInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhbmd1YWdlKF8pe3RoaXMuI3Q9X30jYT0oVWkodGhpcyxwKSxVaSh0aGlzLGYsIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsZVBhdGgoXyl7dGhpcy4jYT1ffSNpPShVaSh0aGlzLGcpLFVpKHRoaXMsdixuZXcgTXQuc21hcnRyeC5yeGpzLlN1YmplY3QpKTtnZXQgY29udGVudFN1YmplY3QoKXtyZXR1cm4gdGhpcy4jaX1zZXQgY29udGVudFN1YmplY3QoXyl7dGhpcy4jaT1ffSNyPShVaSh0aGlzLG0pLFVpKHRoaXMsTSwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNyfXNldCB3b3JkV3JhcChfKXt0aGlzLiNyPV99bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249KFVpKHRoaXMsUyksbnVsbCk7aXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksRzIuc2V0dXBEb21Ub29scygpfXN0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgICNjb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKF8pe3N1cGVyLmZpcnN0VXBkYXRlZChfKTtsZXQgaz10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLE49YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAke0x4fWA7aWYoIUYubW9uYWNvRGVmZXJyZWQpe0YubW9uYWNvRGVmZXJyZWQ9TXQuc21hcnRwcm9taXNlLmRlZmVyKCk7bGV0IEM9YCR7Tn0vbWluL3ZzL2xvYWRlci5qc2Asej1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTt6LnNyYz1DLHoub25sb2FkPSgpPT57Ri5tb25hY29EZWZlcnJlZC5yZXNvbHZlKCl9LGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoeil9YXdhaXQgRi5tb25hY29EZWZlcnJlZC5wcm9taXNlLHdpbmRvdy5yZXF1aXJlLmNvbmZpZyh7cGF0aHM6e3ZzOmAke059L21pbi92c2B9fSksd2luZG93LnJlcXVpcmUoWyJ2cy9lZGl0b3IvZWRpdG9yLm1haW4iXSxhc3luYygpPT57bGV0IEM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsRT1DLnRoZW1lTWFuYWdlci5nb0JyaWdodEJvb2xlYW4/InZzIjoidnMtZGFyayIsVD13aW5kb3cubW9uYWNvLCQ9bnVsbDtpZih0aGlzLmZpbGVQYXRoKXtsZXQgUj1ULlVyaS5wYXJzZShgZmlsZTovLyR7dGhpcy5maWxlUGF0aH1gKTskPVQuZWRpdG9yLmdldE1vZGVsKFIpLCQ/JC5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpOiQ9VC5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5jb250ZW50LHRoaXMubGFuZ3VhZ2UsUil9bGV0IFY9VC5lZGl0b3IuY3JlYXRlKGsse21vZGVsOiR8fHZvaWQgMCx2YWx1ZTokP3ZvaWQgMDp0aGlzLmNvbnRlbnQsbGFuZ3VhZ2U6JD92b2lkIDA6dGhpcy5sYW5ndWFnZSx0aGVtZTpFLHVzZVNoYWRvd0RPTTohMCxmb250U2l6ZToxNixhdXRvbWF0aWNMYXlvdXQ6ITAsd29yZFdyYXA6dGhpcy53b3JkV3JhcCxob3Zlcjp7ZW5hYmxlZDohMCxkZWxheTozMDAsc3RpY2t5OiEwLGFib3ZlOiExfX0pO3RoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249Qy50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShSPT57bGV0IFU9Uj8idnMiOiJ2cy1kYXJrIjtWLnVwZGF0ZU9wdGlvbnMoe3RoZW1lOlV9KX0pLHRoaXMuZWRpdG9yRGVmZXJyZWQucmVzb2x2ZShWKX0pO2xldCBMPWF3YWl0KGF3YWl0IGZldGNoKGAke059L21pbi92cy9lZGl0b3IvZWRpdG9yLm1haW4uY3NzYCkpLnRleHQoKSxBPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7QS50ZXh0Q29udGVudD1MLHRoaXMuc2hhZG93Um9vdC5hcHBlbmQoQSk7bGV0IHE9YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO3Eub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoYXN5bmMgQz0+e2lmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbClyZXR1cm47bGV0IHo9cS5nZXRWYWx1ZSgpO3RoaXMuY29udGVudFN1YmplY3QubmV4dCh6KSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LWNoYW5nZSIse2RldGFpbDp6LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9KSx0aGlzLmNvbnRlbnRTdWJqZWN0Lm5leHQocS5nZXRWYWx1ZSgpKX1hc3luYyB1cGRhdGVkKF8pe3N1cGVyLnVwZGF0ZWQoXyk7bGV0IGs9d2luZG93Lm1vbmFjbztpZihrKXtpZihfLmhhcygiZmlsZVBhdGgiKSYmdGhpcy5maWxlUGF0aCl7bGV0IE49YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLEw9ay5VcmkucGFyc2UoYGZpbGU6Ly8ke3RoaXMuZmlsZVBhdGh9YCksQT1rLmVkaXRvci5nZXRNb2RlbChMKTtBP0EuZ2V0VmFsdWUoKSE9PXRoaXMuY29udGVudCYmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMCxBLnNldFZhbHVlKHRoaXMuY29udGVudCksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExKTpBPWsuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMuY29udGVudCx0aGlzLmxhbmd1YWdlLEwpLE4uZ2V0TW9kZWwoKT8udXJpLnRvU3RyaW5nKCkhPT1MLnRvU3RyaW5nKCkmJk4uc2V0TW9kZWwoQSk7cmV0dXJufWlmKF8uaGFzKCJjb250ZW50Iikpe2xldCBOPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtOLmdldFZhbHVlKCkhPT10aGlzLmNvbnRlbnQmJih0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITAsTi5zZXRWYWx1ZSh0aGlzLmNvbnRlbnQpLHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMSl9aWYoXy5oYXMoImxhbmd1YWdlIikpe2xldCBMPShhd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7TCYmay5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShMLHRoaXMubGFuZ3VhZ2UpfX19YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1udWxsKX1hc3luYyBzZXRDb250ZW50RXh0ZXJuYWwoXyxrPSEwKXtsZXQgTj1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7aWYoTi5nZXRWYWx1ZSgpPT09XylyZXR1cm47bGV0IEE9az9OLmdldFBvc2l0aW9uKCk6bnVsbCxxPWs/Ti5nZXRTZWxlY3Rpb25zKCk6bnVsbCxDPWs/Ti5nZXRTY3JvbGxUb3AoKTowLHo9az9OLmdldFNjcm9sbExlZnQoKTowO2lmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMCxOLnNldFZhbHVlKF8pLHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMSxrKXtpZihBKXtsZXQgRT1OLmdldE1vZGVsKCksVD1FPy5nZXRMaW5lQ291bnQoKXx8MSwkPU1hdGgubWluKEEubGluZU51bWJlcixUKSxWPUU/LmdldExpbmVNYXhDb2x1bW4oJCl8fDEsUj1NYXRoLm1pbihBLmNvbHVtbixWKTtOLnNldFBvc2l0aW9uKHtsaW5lTnVtYmVyOiQsY29sdW1uOlJ9KX1pZihxJiZxLmxlbmd0aD4wKXRyeXtOLnNldFNlbGVjdGlvbnMocSl9Y2F0Y2h7fU4uc2V0U2Nyb2xsUG9zaXRpb24oe3Njcm9sbFRvcDpDLHNjcm9sbExlZnQ6en0pfX1zdGF0aWN7VWkoaSxhKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIG9vLGRhLHk4LCR4LFBxPWIoKCk9PntDMSgpO3VlKCk7cWUoKTtHMCgpO0R0KCk7VGwoKTtaMCgpO1owKCk7b289ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxkYT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0seTg9W3trZXk6InR5cGVzY3JpcHQiLGxhYmVsOiJUeXBlU2NyaXB0In0se2tleToiamF2YXNjcmlwdCIsbGFiZWw6IkphdmFTY3JpcHQifSx7a2V5OiJqc29uIixsYWJlbDoiSlNPTiJ9LHtrZXk6Imh0bWwiLGxhYmVsOiJIVE1MIn0se2tleToiY3NzIixsYWJlbDoiQ1NTIn0se2tleToic2NzcyIsbGFiZWw6IlNDU1MifSx7a2V5OiJtYXJrZG93biIsbGFiZWw6Ik1hcmtkb3duIn0se2tleToieWFtbCIsbGFiZWw6IllBTUwifSx7a2V5OiJ4bWwiLGxhYmVsOiJYTUwifSx7a2V5OiJzcWwiLGxhYmVsOiJTUUwifSx7a2V5OiJweXRob24iLGxhYmVsOiJQeXRob24ifSx7a2V5OiJqYXZhIixsYWJlbDoiSmF2YSJ9LHtrZXk6ImNzaGFycCIsbGFiZWw6IkMjIn0se2tleToiY3BwIixsYWJlbDoiQysrIn0se2tleToiZ28iLGxhYmVsOiJHbyJ9LHtrZXk6InJ1c3QiLGxhYmVsOiJSdXN0In0se2tleToic2hlbGwiLGxhYmVsOiJTaGVsbCJ9LHtrZXk6InBsYWludGV4dCIsbGFiZWw6IlBsYWluIFRleHQifV0sJHg9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWlucHV0LWNvZGUiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXTt2YXIgcT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0seT1bSSh7dHlwZTpTdHJpbmd9KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0ooKV0sTj1bSigpXSxvbyh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idmFsdWUiaW4geixnZXQ6ej0+ei52YWx1ZSxzZXQ6KHosRSk9Pnt6LnZhbHVlPUV9fSxtZXRhZGF0YTpDfSxuLG8pLG9vKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJsYW5ndWFnZSJpbiB6LGdldDp6PT56Lmxhbmd1YWdlLHNldDooeixFKT0+e3oubGFuZ3VhZ2U9RX19LG1ldGFkYXRhOkN9LGMscCksb28odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJoZWlnaHQiaW4geixnZXQ6ej0+ei5oZWlnaHQsc2V0Oih6LEUpPT57ei5oZWlnaHQ9RX19LG1ldGFkYXRhOkN9LGYsZyksb28odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkV3JhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+IndvcmRXcmFwImluIHosZ2V0Ono9Pnoud29yZFdyYXAsc2V0Oih6LEUpPT57ei53b3JkV3JhcD1FfX0sbWV0YWRhdGE6Q30sdixtKSxvbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5lTnVtYmVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InNob3dMaW5lTnVtYmVycyJpbiB6LGdldDp6PT56LnNob3dMaW5lTnVtYmVycyxzZXQ6KHosRSk9Pnt6LnNob3dMaW5lTnVtYmVycz1FfX0sbWV0YWRhdGE6Q30sTSxTKSxvbyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJpc0xhbmd1YWdlRHJvcGRvd25PcGVuImluIHosZ2V0Ono9PnouaXNMYW5ndWFnZURyb3Bkb3duT3BlbixzZXQ6KHosRSk9Pnt6LmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49RX19LG1ldGFkYXRhOkN9LF8sayksb28odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb3B5U3VjY2VzcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImNvcHlTdWNjZXNzImluIHosZ2V0Ono9PnouY29weVN1Y2Nlc3Msc2V0Oih6LEUpPT57ei5jb3B5U3VjY2Vzcz1FfX0sbWV0YWRhdGE6Q30sTCxBKSxvbyhudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpDfSxudWxsLGEpLHE9aT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPSgpPT53YAogICAgPGRlZXMtaW5wdXQtY29kZQogICAgICBsYWJlbD0iVHlwZVNjcmlwdCBDb2RlIgogICAgICBrZXk9ImNvZGUiCiAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICBoZWlnaHQ9IjMwMHB4IgogICAgICAudmFsdWU9JHtgY29uc3QgZ3JlZXRpbmc6IHN0cmluZyA9ICJIZWxsbyBXb3JsZCI7CmNvbnNvbGUubG9nKGdyZWV0aW5nKTtgfQogICAgPjwvZGVlcy1pbnB1dC1jb2RlPgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCIsIldvcmtzcGFjZSJdOyNlPWRhKHRoaXMsbiwiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEMpe3RoaXMuI2U9Q30jdD0oZGEodGhpcyxvKSxkYSh0aGlzLGMsInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhbmd1YWdlKEMpe3RoaXMuI3Q9Q30jYT0oZGEodGhpcyxwKSxkYSh0aGlzLGYsIjIwMHB4IikpO2dldCBoZWlnaHQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaGVpZ2h0KEMpe3RoaXMuI2E9Q30jaT0oZGEodGhpcyxnKSxkYSh0aGlzLHYsIm9mZiIpKTtnZXQgd29yZFdyYXAoKXtyZXR1cm4gdGhpcy4jaX1zZXQgd29yZFdyYXAoQyl7dGhpcy4jaT1DfSNyPShkYSh0aGlzLG0pLGRhKHRoaXMsTSwhMCkpO2dldCBzaG93TGluZU51bWJlcnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0xpbmVOdW1iZXJzKEMpe3RoaXMuI3I9Q30jcz0oZGEodGhpcyxTKSxkYSh0aGlzLF8sITEpKTtnZXQgaXNMYW5ndWFnZURyb3Bkb3duT3Blbigpe3JldHVybiB0aGlzLiNzfXNldCBpc0xhbmd1YWdlRHJvcGRvd25PcGVuKEMpe3RoaXMuI3M9Q30jbj0oZGEodGhpcyxrKSxkYSh0aGlzLEwsITEpKTtnZXQgY29weVN1Y2Nlc3MoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29weVN1Y2Nlc3MoQyl7dGhpcy4jbj1DfWVkaXRvckVsZW1lbnQ9KGRhKHRoaXMsQSksbnVsbCk7c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJ0b3AiXSkgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmNvZGUtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uc3VjY2VzcyB7CiAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgIH0KCiAgICAgIC5lZGl0b3Itd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuY29kZS1jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IEM9eTguZmluZCh6PT56LmtleT09PXRoaXMubGFuZ3VhZ2UpfHx5OFswXTtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLmhlaWdodH07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxhbmd1YWdlRHJvcGRvd259CiAgICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVMYW5ndWFnZUJsdXJ9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7Qy5sYWJlbH0KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAke3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgJHt5OC5tYXAoej0+d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke3oua2V5PT09dGhpcy5sYW5ndWFnZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke0U9PnRoaXMuc2VsZWN0TGFuZ3VhZ2UoRSx6LmtleSl9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7ei5sYWJlbH0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLndvcmRXcmFwPT09Im9uIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iV29yZCBXcmFwIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVXb3JkV3JhcH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5zaG93TGluZU51bWJlcnM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IkxpbmUgTnVtYmVycyIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTGluZU51bWJlcnN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmNvcHlTdWNjZXNzPyJzdWNjZXNzIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iQ29weSBDb2RlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jb3B5Q29kZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5jb3B5U3VjY2Vzcz8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIHRpdGxlPSJFeHBhbmQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9wZW5GdWxsc2NyZWVufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOk1heGltaXplMiJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5sYW5ndWFnZX0KICAgICAgICAgICAgICAud29yZFdyYXA9JHt0aGlzLndvcmRXcmFwfQogICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX0KICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSx0aGlzLmVkaXRvckVsZW1lbnQmJnRoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50U3ViamVjdC5zdWJzY3JpYmUoQz0+e3RoaXMudmFsdWUhPT1DJiYodGhpcy52YWx1ZT1DLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX0pfXRvZ2dsZUxhbmd1YWdlRHJvcGRvd24oKXt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49IXRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbn1oYW5kbGVMYW5ndWFnZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSExfSwxNTApfWFzeW5jIHNlbGVjdExhbmd1YWdlKEMseil7aWYoQy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubGFuZ3VhZ2U9eix0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ITEsdGhpcy5lZGl0b3JFbGVtZW50KXt0aGlzLmVkaXRvckVsZW1lbnQubGFuZ3VhZ2U9ejtsZXQgVD0oYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7VCYmd2luZG93Lm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShULHopfX10b2dnbGVXb3JkV3JhcCgpe3RoaXMud29yZFdyYXA9dGhpcy53b3JkV3JhcD09PSJvbiI/Im9mZiI6Im9uIix0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbigid29yZFdyYXAiLHRoaXMud29yZFdyYXApfXRvZ2dsZUxpbmVOdW1iZXJzKCl7dGhpcy5zaG93TGluZU51bWJlcnM9IXRoaXMuc2hvd0xpbmVOdW1iZXJzLHRoaXMudXBkYXRlRWRpdG9yT3B0aW9uKCJsaW5lTnVtYmVycyIsdGhpcy5zaG93TGluZU51bWJlcnM/Im9uIjoib2ZmIil9YXN5bmMgdXBkYXRlRWRpdG9yT3B0aW9uKEMseil7dGhpcy5lZGl0b3JFbGVtZW50JiYoYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe1tDXTp6fSl9YXN5bmMgY29weUNvZGUoKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy52YWx1ZSksdGhpcy5jb3B5U3VjY2Vzcz0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5jb3B5U3VjY2Vzcz0hMX0sMmUzKX1jYXRjaChDKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsQyl9fWhhbmRsZUNvbnRlbnRDaGFuZ2UoQyl7bGV0IHo9Qy5kZXRhaWw7dGhpcy52YWx1ZSE9PXomJih0aGlzLnZhbHVlPXosdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWFzeW5jIG9wZW5GdWxsc2NyZWVuKCl7bGV0IEM9dGhpcy52YWx1ZSx6PW51bGwsRT10aGlzLmxhbmd1YWdlLFQ9dGhpcy53b3JkV3JhcCwkPXRoaXMuc2hvd0xpbmVOdW1iZXJzLFY9ITEsUj0hMSxVPSgpPT57bGV0IHdlPXk4LmZpbmQoSD0+SC5rZXk9PT1FKTtyZXR1cm4gd2U/d2UubGFiZWw6IlR5cGVTY3JpcHQifSxyZT13ZT0+e2xldCBIPXdlLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoIUgpcmV0dXJuO2xldCBjZT1ILnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24gc3BhbiIpO2NlJiYoY2UudGV4dENvbnRlbnQ9VSgpKTtsZXQga2U9SC5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKTtrZSYma2UuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixUPT09Im9uIik7bGV0IFc9SC5xdWVyeVNlbGVjdG9yKCIubGluZXMtYnRuIik7VyYmVy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCQpO2xldCBEPUgucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIiksTz1EPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKTtEJiZPJiYoRC5jbGFzc0xpc3QudG9nZ2xlKCJzdWNjZXNzIixSKSxPLmljb249Uj8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkiKTtsZXQgWj1ILnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1kcm9wZG93biIpO1omJihaLnN0eWxlLmRpc3BsYXk9Vj8iYmxvY2siOiJub25lIil9LGo9YXdhaXQgbjEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzp0aGlzLmxhYmVsfHwiQ29kZSBFZGl0b3IiLHdpZHRoOiJmdWxsc2NyZWVuIixjb250ZW50UGFkZGluZzowLGNvbnRlbnQ6d2AKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAubW9kYWwtdG9vbGJhciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1sZWZ0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1yaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAxMDAlOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZWRpdG9yLXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDE3NXB4KTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYW5ndWFnZS1idXR0b24iPgogICAgICAgICAgICAgICAgPHNwYW4+JHtVKCl9PC9zcGFuPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICR7eTgubWFwKHdlPT53YAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke3dlLmtleT09PUU/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke3dlLmtleX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAke3dlLmxhYmVsfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1yaWdodCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIHdyYXAtYnRuICR7VD09PSJvbiI/ImFjdGl2ZSI6IiJ9IiB0aXRsZT0iV29yZCBXcmFwIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBsaW5lcy1idG4gJHskPyJhY3RpdmUiOiIifSIgdGl0bGU9IkxpbmUgTnVtYmVycyI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBjb3B5LWJ0biIgdGl0bGU9IkNvcHkgQ29kZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q29weSJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZWRpdG9yLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAuY29udGVudD0ke0N9CiAgICAgICAgICAgIC5sYW5ndWFnZT0ke0V9CiAgICAgICAgICAgIC53b3JkV3JhcD0ke1R9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyB3ZT0+e2F3YWl0IHdlLmRlc3Ryb3koKX19LHtuYW1lOiJTYXZlICYgQ2xvc2UiLGFjdGlvbjphc3luYyB3ZT0+e2lmKHo9d2Uuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIikseil7bGV0IGNlPShhd2FpdCB6LmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dGhpcy5zZXRWYWx1ZShjZSl9YXdhaXQgd2UuZGVzdHJveSgpfX1dfSk7YXdhaXQgbmV3IFByb21pc2Uod2U9PnNldFRpbWVvdXQod2UsMTAwKSksej1qLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2xldCBtZT1qLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYobWUpe2xldCB3ZT1tZS5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtYnV0dG9uIik7d2U/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e1Y9IVYscmUoail9KTtsZXQgSD1tZS5xdWVyeVNlbGVjdG9yQWxsKCIubGFuZ3VhZ2Utb3B0aW9uIik7SC5mb3JFYWNoKEQ9PntELmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IE89RC5kYXRhc2V0Lmxhbmc7aWYoTyYmeil7RT1PLFY9ITE7bGV0IFk9KGF3YWl0IHouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTtZJiZ3aW5kb3cubW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKFksTyksSC5mb3JFYWNoKG9lPT5vZS5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSxELmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIikscmUoail9fSl9KSxtZS5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntUPVQ9PT0ib24iPyJvZmYiOiJvbiIseiYmKGF3YWl0IHouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkudXBkYXRlT3B0aW9ucyh7d29yZFdyYXA6VH0pLHJlKGopfSksbWUucXVlcnlTZWxlY3RvcigiLmxpbmVzLWJ0biIpPy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+eyQ9ISQseiYmKGF3YWl0IHouZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkudXBkYXRlT3B0aW9ucyh7bGluZU51bWJlcnM6JD8ib24iOiJvZmYifSkscmUoail9KSxtZS5xdWVyeVNlbGVjdG9yKCIuY29weS1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntpZih6KXtsZXQgTz0oYXdhaXQgei5lZGl0b3JEZWZlcnJlZC5wcm9taXNlKS5nZXRWYWx1ZSgpO3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChPKSxSPSEwLHJlKGopLHNldFRpbWVvdXQoKCk9PntSPSExLHJlKGopfSwyZTMpfWNhdGNoKFope2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5IGNvZGU6IixaKX19fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEQ9PntWJiYhd2U/LmNvbnRhaW5zKEQudGFyZ2V0KSYmKFY9ITEscmUoaikpfSx7b25jZTohMH0pfX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKEMpe3RoaXMudmFsdWU9Qyx0aGlzLmVkaXRvckVsZW1lbnQmJih0aGlzLmVkaXRvckVsZW1lbnQuY29udGVudD1DLHRoaXMuZWRpdG9yRWxlbWVudC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlLnRoZW4oej0+e3ouZ2V0VmFsdWUoKSE9PUMmJnouc2V0VmFsdWUoQyl9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9c3RhdGlje2RhKGksYSl9fTtyZXR1cm4gcT1pfSkoKX0pO3ZhciBVOXQsVzl0PWIoKCk9Pnt1ZSgpO3kxKCk7bTIoKTtJcSgpO1U5dD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAgICAgIAogICAgICAuZGF0ZS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGE9Pntjb25zb2xlLmxvZygiQmFzaWMgZGF0ZSBzZWxlY3RlZDoiLGEudGFyZ2V0LnZhbHVlKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBEYXRlIFBpY2tlciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgZGF0ZSBzZWxlY3Rpb24gd2l0aG91dCB0aW1lIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IlNlbGVjdCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNob29zZSBhIGRhdGUgZnJvbSB0aGUgY2FsZW5kYXIiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJFdmVudCBEYXRlICYgVGltZSJdJyksYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iQXBwb2ludG1lbnQiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IHI9aS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjI0aCBmb3JtYXQgZGF0ZXRpbWU6IixyKX0pLGEmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IHI9aS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjEyaCBmb3JtYXQgZGF0ZXRpbWU6IixyKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIGFuZCBUaW1lIFNlbGVjdGlvbiJ9IC5zdWJ0aXRsZT0keyJEYXRlIHBpY2tlcnMgd2l0aCB0aW1lIHNlbGVjdGlvbiBpbiBkaWZmZXJlbnQgZm9ybWF0cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBEYXRlICYgVGltZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYm90aCBkYXRlIGFuZCB0aW1lICgyNC1ob3VyIGZvcm1hdCkiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMjRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQXBwb2ludG1lbnQiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF0ZSBhbmQgdGltZSB3aXRoIEFNL1BNIHNlbGVjdG9yICgxNS1taW51dGUgaW5jcmVtZW50cykiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMTJoIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezE1fQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IHI9aS50YXJnZXQ7Y29uc29sZS5sb2coYCR7ci5sYWJlbH0gdmFsdWU6YCxyLnZhbHVlKTtsZXQgcz1yLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik7cyYmY29uc29sZS5sb2coYCR7ci5sYWJlbH0gZm9ybWF0dGVkOmAscy52YWx1ZSl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUaW1lem9uZSBTdXBwb3J0In0gLnN1YnRpdGxlPSR7IkRhdGUgYW5kIHRpbWUgc2VsZWN0aW9uIHdpdGggdGltZXpvbmUgYXdhcmVuZXNzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ik1lZXRpbmcgVGltZSAod2l0aCBUaW1lem9uZSkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGEgZGF0ZS90aW1lIGFuZCB0aW1lem9uZSBmb3IgdGhlIG1lZXRpbmciCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgLmVuYWJsZVRpbWV6b25lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIyNGgiCiAgICAgICAgICB0aW1lem9uZT0iQW1lcmljYS9OZXdfWW9yayIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ikdsb2JhbCBFdmVudCBTY2hlZHVsZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTY2hlZHVsZSBhbiBldmVudCBhY3Jvc3MgZGlmZmVyZW50IHRpbWV6b25lcyIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICAuZW5hYmxlVGltZXpvbmU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjEyaCIKICAgICAgICAgIHRpbWV6b25lPSJFdXJvcGUvTG9uZG9uIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezMwfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhPT57bGV0IGk9YS50YXJnZXQudmFsdWU7aWYoaSl7bGV0IHI9bmV3IERhdGUoaSkscz1uZXcgRGF0ZSxuPU1hdGguZmxvb3IoKHIuZ2V0VGltZSgpLXMuZ2V0VGltZSgpKS8oMWUzKjYwKjYwKjI0KSk7Y29uc29sZS5sb2coYFNlbGVjdGVkIGRhdGUgaXMgJHtufSBkYXlzIGZyb20gdG9kYXlgKX19KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBSYW5nZSBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaW1pdCBzZWxlY3RhYmxlIGRhdGVzIHdpdGggbWluIGFuZCBtYXggdmFsdWVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkZ1dHVyZSBEYXRlIE9ubHkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2FuIG9ubHkgc2VsZWN0IGRhdGVzIGZyb20gdG9kYXkgdG8gOTAgZGF5cyBpbiB0aGUgZnV0dXJlIgogICAgICAgICAgLm1pbkRhdGU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICAubWF4RGF0ZT0ke25ldyBEYXRlKERhdGUubm93KCkrMjE2MCo2MCo2MCoxZTMpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXsiREQvTU0vWVlZWSI6IkV1cm9wZWFuIiwiTU0vREQvWVlZWSI6IlVTIiwiWVlZWS1NTS1ERCI6IklTTyJ9O3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHI9PntsZXQgcz1yLnRhcmdldCxuPXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtuJiZjb25zb2xlLmxvZyhgJHtzLmxhYmVsfSBmb3JtYXQ6YCxuLnZhbHVlKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgRm9ybWF0cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgZGF0ZSBkaXNwbGF5IGZvcm1hdHMgZm9yIHZhcmlvdXMgcmVnaW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRXVyb3BlYW4gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJERC9NTS9ZWVlZIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iTU0vREQvWVlZWSIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJJU08gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJZWVlZLU1NLUREIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXJbcmVxdWlyZWRdIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2UuZ2V0VmFsdWUoKXx8Y29uc29sZS5sb2coIlJlcXVpcmVkIGRhdGUgZmllbGQgaXMgZW1wdHkiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJSZXF1aXJlZCBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkJpcnRoIERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIKICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgcGxhY2Vob2xkZXI9IlNlbGVjdCB5b3VyIGJpcnRoIGRhdGUiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgY2Fubm90IGJlIGVkaXRlZCIKICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iVVMgQ2FsZW5kYXIiXScpLGE9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkVVIENhbGVuZGFyIl0nKTtlJiZjb25zb2xlLmxvZygiVVMgQ2FsZW5kYXIgc3RhcnRzIG9uIFN1bmRheSAoMCkiKSxhJiZjb25zb2xlLmxvZygiRVUgQ2FsZW5kYXIgc3RhcnRzIG9uIE1vbmRheSAoMSkiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2FsZW5kYXIgQ3VzdG9taXphdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgd2VlayBzdGFydCBkYXlzIGZvciB2YXJpb3VzIHJlZ2lvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIENhbGVuZGFyIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV2VlayBzdGFydHMgb24gU3VuZGF5IgogICAgICAgICAgICAud2Vla1N0YXJ0c09uPSR7MH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRVUgQ2FsZW5kYXIiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrIHN0YXJ0cyBvbiBNb25kYXkiCiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPSgpPT57bGV0IGk9W10scj1uZXcgRGF0ZSxzPXIuZ2V0RnVsbFllYXIoKSxuPXIuZ2V0TW9udGgoKSxvPW5ldyBEYXRlKHMsbiwxKTtmb3IoO28uZ2V0TW9udGgoKT09PW47KShvLmdldERheSgpPT09MHx8by5nZXREYXkoKT09PTYpJiZpLnB1c2gobmV3IERhdGUobykudG9JU09TdHJpbmcoKSksby5zZXREYXRlKG8uZ2V0RGF0ZSgpKzEpO3JldHVybiBpfSxhPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7YSYmKGEuZGlzYWJsZWREYXRlcz1lKCksY29uc29sZS5sb2coIkRpc2FibGVkIHdlZWtlbmQgZGF0ZXMgZm9yIGN1cnJlbnQgbW9udGgiKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRpc2FibGVkIERhdGVzIn0gLnN1YnRpdGxlPSR7IkNhbGVuZGFyIHdpdGggc3BlY2lmaWMgZGF0ZXMgZGlzYWJsZWQgKHdlZWtlbmRzIGluIGN1cnJlbnQgbW9udGgpIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkF2YWlsYWJpbGl0eSBDYWxlbmRhciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrZW5kcyBhcmUgZGlzYWJsZWQgZm9yIHRoZSBjdXJyZW50IG1vbnRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT1uZXcgRGF0ZSxhPWUuZ2V0TW9udGgoKSxpPWUuZ2V0RnVsbFllYXIoKSxyPVt7ZGF0ZTpgJHtpfS0keyhhKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2UuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlRlYW0gTWVldGluZyIsdHlwZToiaW5mbyIsY291bnQ6Mn0se2RhdGU6YCR7aX0tJHsoYSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiUHJvamVjdCBEZWFkbGluZSIsdHlwZToid2FybmluZyJ9LHtkYXRlOmAke2l9LSR7KGErMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KGUuZ2V0RGF0ZSgpKzIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlJlbGVhc2UgRGF5Iix0eXBlOiJzdWNjZXNzIn0se2RhdGU6YCR7aX0tJHsoYSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsoZS5nZXREYXRlKCkrNSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiVXJnZW50IEZpeCBSZXF1aXJlZCIsdHlwZToiZXJyb3IifSx7ZGF0ZTpgJHtpfS0keyhhKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyhlLmdldERhdGUoKSs3KS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJNdWx0aXBsZSBFdmVudHMgVG9kYXkiLHR5cGU6ImluZm8iLGNvdW50OjV9LHtkYXRlOmAke2l9LSR7KGErMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LTE1YCx0aXRsZToiRnV0dXJlIFBsYW5uaW5nIFNlc3Npb24iLHR5cGU6ImluZm8ifV0scz10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO3MmJihzLmV2ZW50cz1yLGNvbnNvbGUubG9nKCJDYWxlbmRhciBldmVudHMgbG9hZGVkOiIscikpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDYWxlbmRhciB3aXRoIEV2ZW50cyJ9IC5zdWJ0aXRsZT0keyJWaXN1YWwgZmVlZGJhY2sgZm9yIHNjaGVkdWxlZCBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgQ2FsZW5kYXIiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF5cyB3aXRoIGNvbG9yZWQgZG90cyBoYXZlIGV2ZW50cy4gSG92ZXIgdG8gc2VlIGRldGFpbHMuIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxzdHJvbmc+RXZlbnQgTGVnZW5kOjwvc3Ryb25nPjxicj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzA5NjlkYTsiPuKXjyBJbmZvPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjZDI5OTIyOyI+4pePIFdhcm5pbmc8L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICMyZWEwNDM7Ij7il48gU3VjY2Vzczwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogI2NmMjIyZTsiPuKXjyBFcnJvcjwvc3Bhbj48YnI+CiAgICAgICAgICA8ZW0+RGF5cyB3aXRoIG1vcmUgdGhhbiAzIGV2ZW50cyBzaG93IGEgY291bnQgYmFkZ2U8L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNldmVudC1vdXRwdXQiKTtlJiZhJiYoZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGk9PntsZXQgcj1pLnRhcmdldCxzPXIudmFsdWU7aWYocyl7bGV0IG49bmV3IERhdGUocyksZD1yLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik/LnZhbHVlfHwiTi9BIjthLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgPHN0cm9uZz5FdmVudCB0cmlnZ2VyZWQhPC9zdHJvbmc+PGJyPgogICAgICAgICAgICAgIElTTyBWYWx1ZTogJHtzfTxicj4KICAgICAgICAgICAgICBGb3JtYXR0ZWQ6ICR7ZH08YnI+CiAgICAgICAgICAgICAgRGF0ZSBvYmplY3Q6ICR7bi50b0xvY2FsZVN0cmluZygpfQogICAgICAgICAgICBgfWVsc2UgYS5pbm5lckhUTUw9IjxlbT5EYXRlIGNsZWFyZWQ8L2VtPiJ9KSxlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coIkRhdGVwaWNrZXIgbG9zdCBmb2N1cyIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBkZW1vbnN0cmF0aW9uIG9mIGNoYW5nZSBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgRGVtbyIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYSBkYXRlIHRvIHNlZSB0aGUgZXZlbnQgZGV0YWlscyIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iZXZlbnQtb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPlNlbGVjdCBhIGRhdGUgdG8gc2VlIGV2ZW50IGRldGFpbHMuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgRzl0LFk5dD1iKCgpPT57dWUoKTtDMSgpO0c5dD1bLi4uWGUuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmlucHV0LWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpob3Zlcjpub3QoOmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6Zm9jdXMsCiAgICAgIC5kYXRlLWlucHV0Lm9wZW4gewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9LAogICAgICAgICAgICAgICAgICAgIDAgMCAwIDRweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlIC8gMC4xKSIsImhzbCgyMTAgMjAlIDk4JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBJY29uIGNvbnRhaW5lciB1c2luZyBmbGV4Ym94IGZvciBiZXR0ZXIgcG9zaXRpb25pbmcgKi8KICAgICAgLmljb24tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuaWNvbi1jb250YWluZXIgPiAqIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBDYWxlbmRhciBQb3B1cCBTdHlsZXMgKi8KICAgICAgLmNhbGVuZGFyLXBvcHVwIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMTBweCAxNXB4IC0zcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDRweCA2cHggLTRweCBoc2woMCAwJSAwJSAvIDAuMSkiLCIwIDEwcHggMTVweCAtM3B4IGhzbCgwIDAlIDAlIC8gMC4yKSwgMCA0cHggNnB4IC00cHggaHNsKDAgMCUgMCUgLyAwLjIpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgei1pbmRleDogNTA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtaW4td2lkdGg6IDI4MHB4OwogICAgICB9CgogICAgICAuY2FsZW5kYXItcG9wdXAudG9wIHsKICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDRweCk7CiAgICAgICAgdG9wOiBhdXRvOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpOwogICAgICB9CgogICAgICAuY2FsZW5kYXItcG9wdXAuYm90dG9tIHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1wb3B1cC5zaG93IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBDYWxlbmRhciBIZWFkZXIgKi8KICAgICAgLmNhbGVuZGFyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAubW9udGgteWVhci1kaXNwbGF5IHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLyogV2Vla2RheSBoZWFkZXJzICovCiAgICAgIC53ZWVrZGF5cyB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIGdhcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIC53ZWVrZGF5IHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgcGFkZGluZzogMCAwIDhweCAwOwogICAgICB9CgogICAgICAvKiBEYXlzIGdyaWQgKi8KICAgICAgLmRheXMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuZGF5IHsKICAgICAgICBhc3BlY3QtcmF0aW86IDE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuZGF5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAuZGF5Lm90aGVyLW1vbnRoIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5kYXkudG9kYXkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRheS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmRheS5kaXNhYmxlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KCiAgICAgIC8qIEV2ZW50IGluZGljYXRvcnMgKi8KICAgICAgLmRheS5oYXMtZXZlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmV2ZW50LWluZGljYXRvciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdCB7CiAgICAgICAgd2lkdGg6IDRweDsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdC5pbmZvIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMSA3MCUgNTIlKSIsImhzbCgyMTEgNzAlIDYyJSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3Qud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NSA5MCUgNDUlKSIsImhzbCg0NSA5MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWRvdC5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0MiA2OSUgNDUlKSIsImhzbCgxNDIgNjklIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MiUgNTElKSIsImhzbCgwIDcyJSA2MSUpIil9OwogICAgICB9CgogICAgICAuZXZlbnQtY291bnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDJweDsKICAgICAgICByaWdodDogMnB4OwogICAgICAgIG1pbi13aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyJSA1MSUpIiwiaHNsKDAgNzIlIDYxJSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGV2ZW50IGRldGFpbHMgKi8KICAgICAgLmV2ZW50LXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDhweCk7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpOwogICAgICB9CgogICAgICAuZXZlbnQtdG9vbHRpcDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsKICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXkuaGFzLWV2ZW50OmhvdmVyIC5ldmVudC10b29sdGlwIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBUaW1lIHNlbGVjdG9yICovCiAgICAgIC50aW1lLXNlbGVjdG9yIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLXNlbGVjdG9yLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAudGltZS1pbnB1dCB7CiAgICAgICAgd2lkdGg6IDY1cHg7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50aW1lLWlucHV0OmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICB9CgogICAgICAudGltZS1pbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudGltZS1zZXBhcmF0b3IgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuYW0tcG0tc2VsZWN0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLmFtLXBtLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuYW0tcG0tYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLWJ1dHRvbjpob3Zlcjpub3QoLnNlbGVjdGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLyogQWN0aW9uIGJ1dHRvbnMgKi8KICAgICAgLmNhbGVuZGFyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2RheS1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNjIuOCUgMzAuNiUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIsImhzbCgwIDYyLjglIDMwLjYlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLyogVGltZXpvbmUgc2VsZWN0b3IgKi8KICAgICAgLnRpbWV6b25lLXNlbGVjdG9yIHsKICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3Rvci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAudGltZXpvbmUtc2VsZWN0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdDpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CiAgICBgXX0pO3ZhciBaOXQsWDl0PWIoKCk9Pnt1ZSgpO1o5dD10PT57bGV0IGU9WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLGE9dC53ZWVrU3RhcnRzT249PT0xP1siTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIiwiU3UiXTpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0saT10LmdldERheXNJbk1vbnRoKCkscj10LnNlbGVjdGVkSG91cjwxMixzPXQuZ2V0VGltZXpvbmVzKCk7cmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0LmxhYmVsfSAuZGVzY3JpcHRpb249JHt0LmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0LnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1jb250YWluZXIiPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIGNsYXNzPSJkYXRlLWlucHV0ICR7dC5pc09wZW5lZD8ib3BlbiI6IiJ9IgogICAgICAgICAgICAgIC52YWx1ZT0ke3QuZm9ybWF0RGF0ZSh0LnZhbHVlKX0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0LnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgID9kaXNhYmxlZD0ke3QuZGlzYWJsZWR9CiAgICAgICAgICAgICAgQGNsaWNrPSR7dC50b2dnbGVDYWxlbmRhcn0KICAgICAgICAgICAgICBAa2V5ZG93bj0ke3QuaGFuZGxlS2V5ZG93bn0KICAgICAgICAgICAgICBAaW5wdXQ9JHt0LmhhbmRsZU1hbnVhbElucHV0fQogICAgICAgICAgICAgIEBibHVyPSR7dC5oYW5kbGVJbnB1dEJsdXJ9CiAgICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctcmlnaHQ6ICR7dC52YWx1ZT8iNjRweCI6IjQwcHgifSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1jb250YWluZXIiPgogICAgICAgICAgICAgICR7dC52YWx1ZSYmIXQuZGlzYWJsZWQ/d2AKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7dC5jbGVhclZhbHVlfSB0aXRsZT0iQ2xlYXIiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp4IiBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjYWxlbmRhci1pY29uIiBpY29uPSJsdWNpZGU6Y2FsZW5kYXIiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICAgIDwhLS0gQ2FsZW5kYXIgUG9wdXAgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLXBvcHVwICR7dC5pc09wZW5lZD8ic2hvdyI6IiJ9ICR7dC5vcGVuc1RvVG9wPyJ0b3AiOiJib3R0b20ifSI+CiAgICAgICAgICAgICAgPCEtLSBNb250aC9ZZWFyIE5hdmlnYXRpb24gLS0+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FsZW5kYXItaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3QucHJldmlvdXNNb250aH0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25MZWZ0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtb250aC15ZWFyLWRpc3BsYXkiPgogICAgICAgICAgICAgICAgICAke2VbdC52aWV3RGF0ZS5nZXRNb250aCgpXX0gJHt0LnZpZXdEYXRlLmdldEZ1bGxZZWFyKCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi1idXR0b24iIEBjbGljaz0ke3QubmV4dE1vbnRofT4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hldnJvblJpZ2h0IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDwhLS0gV2Vla2RheSBIZWFkZXJzIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndlZWtkYXlzIj4KICAgICAgICAgICAgICAgICR7YS5tYXAobj0+d2A8ZGl2IGNsYXNzPSJ3ZWVrZGF5Ij4ke259PC9kaXY+YCl9CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDwhLS0gRGF5cyBHcmlkIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRheXMtZ3JpZCI+CiAgICAgICAgICAgICAgICAke2kubWFwKG49PntsZXQgbz10LmlzVG9kYXkobiksZD10LmlzU2VsZWN0ZWQobiksYz1uLmdldE1vbnRoKCkhPT10LnZpZXdEYXRlLmdldE1vbnRoKCkscD10LmlzRGlzYWJsZWQobiksbD10LmdldEV2ZW50c0ZvckRhdGUobiksZj1sLmxlbmd0aD4wLGc9bC5yZWR1Y2UoKHksdik9PnkrKHYuY291bnR8fDEpLDApO3JldHVybiB3YAogICAgICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZGF5ICR7Yz8ib3RoZXItbW9udGgiOiIifSAke28/InRvZGF5IjoiIn0gJHtkPyJzZWxlY3RlZCI6IiJ9ICR7cD8iZGlzYWJsZWQiOiIifSAke2Y/Imhhcy1ldmVudCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PiFwJiZ0LnNlbGVjdERhdGUobil9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgJHtuLmdldERhdGUoKX0KICAgICAgICAgICAgICAgICAgICAgICR7Zj93YAogICAgICAgICAgICAgICAgICAgICAgICAke2c+Mz93YAogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWNvdW50Ij4ke2d9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC1pbmRpY2F0b3IiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsLnNsaWNlKDAsMykubWFwKHk9PndgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LWRvdCAke3kudHlwZXx8ImluZm8ifSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICAgICAgICAgICAgJHtsWzBdLnRpdGxlP3dgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtdG9vbHRpcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2xbMF0udGl0bGV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2c+MT93YCAoKyR7Zy0xfSBtb3JlKWA6IiJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgfSl9CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDwhLS0gVGltZSBTZWxlY3RvciAtLT4KICAgICAgICAgICAgICAke3QuZW5hYmxlVGltZT93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3ItdGl0bGUiPlRpbWU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1pbnB1dHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Im51bWJlciIgCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGltZS1pbnB1dCIgCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0LnRpbWVGb3JtYXQ9PT0iMTJoIj8odC5zZWxlY3RlZEhvdXI9PT0wPzEyOnQuc2VsZWN0ZWRIb3VyPjEyP3Quc2VsZWN0ZWRIb3VyLTEyOnQuc2VsZWN0ZWRIb3VyKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKTp0LnNlbGVjdGVkSG91ci50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke249PnQuaGFuZGxlSG91cklucHV0KG4pfQogICAgICAgICAgICAgICAgICAgICAgbWluPSIke3QudGltZUZvcm1hdD09PSIxMmgiPzE6MH0iCiAgICAgICAgICAgICAgICAgICAgICBtYXg9IiR7dC50aW1lRm9ybWF0PT09IjEyaCI/MTI6MjN9IgogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWUtc2VwYXJhdG9yIj46PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Im51bWJlciIgCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGltZS1pbnB1dCIgCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0LnNlbGVjdGVkTWludXRlLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfQogICAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7bj0+dC5oYW5kbGVNaW51dGVJbnB1dChuKX0KICAgICAgICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgICAgICAgIG1heD0iNTkiCiAgICAgICAgICAgICAgICAgICAgICBzdGVwPSIke3QubWludXRlSW5jcmVtZW50fHwxfSIKICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICAgICR7dC50aW1lRm9ybWF0PT09IjEyaCI/d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFtLXBtLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iYW0tcG0tYnV0dG9uICR7cj8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dC5zZXRBTVBNKCJhbSIpfQogICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgQU0KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImFtLXBtLWJ1dHRvbiAke3I/IiI6InNlbGVjdGVkIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnQuc2V0QU1QTSgicG0iKX0KICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgIFBNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICA8IS0tIFRpbWV6b25lIFNlbGVjdG9yIC0tPgogICAgICAgICAgICAgICR7dC5lbmFibGVUaW1lem9uZT93YAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZXpvbmUtc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lem9uZS1zZWxlY3Rvci10aXRsZSI+VGltZXpvbmU8L2Rpdj4KICAgICAgICAgICAgICAgICAgPHNlbGVjdCAKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGltZXpvbmUtc2VsZWN0IiAKICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0LnRpbWV6b25lfQogICAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHtuPT50LmhhbmRsZVRpbWV6b25lQ2hhbmdlKG4pfQogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHtzLm1hcChuPT53YAogICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iJHtuLnZhbHVlfSIgP3NlbGVjdGVkPSR7bi52YWx1ZT09PXQudGltZXpvbmV9PgogICAgICAgICAgICAgICAgICAgICAgICAke24ubGFiZWx9CiAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQoKICAgICAgICAgICAgICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiB0b2RheS1idXR0b24iIEBjbGljaz0ke3Quc2VsZWN0VG9kYXl9PgogICAgICAgICAgICAgICAgICBUb2RheQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNsZWFyLWJ1dHRvbiIgQGNsaWNrPSR7dC5jbGVhcn0+CiAgICAgICAgICAgICAgICAgIENsZWFyCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYH19KTt2YXIgWDEsenQsQXgsSXE9YigoKT0+e3VlKCk7QzEoKTtXOXQoKTtZOXQoKTtYOXQoKTtEdCgpO1RsKCk7WDE9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSx6dD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sQXg9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWlucHV0LWRhdGVwaWNrZXIiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXSxyZSxqPVtdLG1lPVtdLHdlLEg9W10sY2U9W10sa2UsVz1bXSxEPVtdLE8sWj1bXSxZPVtdLG9lLGdlPVtdLGJlPVtdLCRlLEI9W10sUD1bXSxLLGZlPVtdLGRlPVtdLF9lLHBlPVtdLHRlPVtdLHplLEZlPVtdLFdlPVtdO3ZhciB5ZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGVlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6Qm9vbGVhbn0pXSxsPVtJKHt0eXBlOlN0cmluZ30pXSx5PVtJKHt0eXBlOk51bWJlcn0pXSx4PVtJKHt0eXBlOlN0cmluZ30pXSxGPVtJKHt0eXBlOlN0cmluZ30pXSxOPVtJKHt0eXBlOlN0cmluZ30pXSxxPVtJKHt0eXBlOkFycmF5fSldLEU9W0koe3R5cGU6TnVtYmVyfSldLFY9W0koe3R5cGU6U3RyaW5nfSldLHJlPVtJKHt0eXBlOkJvb2xlYW59KV0sd2U9W0koe3R5cGU6U3RyaW5nfSldLGtlPVtJKHt0eXBlOkFycmF5fSldLE89W0ooKV0sb2U9W0ooKV0sJGU9W0ooKV0sSz1bSigpXSxfZT1bSigpXSx6ZT1bSigpXSxYMSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+InZhbHVlImluIGFlLGdldDphZT0+YWUudmFsdWUsc2V0OihhZSx2ZSk9PnthZS52YWx1ZT12ZX19LG1ldGFkYXRhOmVlfSxuLG8pLFgxKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YWU9PiJlbmFibGVUaW1lImluIGFlLGdldDphZT0+YWUuZW5hYmxlVGltZSxzZXQ6KGFlLHZlKT0+e2FlLmVuYWJsZVRpbWU9dmV9fSxtZXRhZGF0YTplZX0sYyxwKSxYMSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4idGltZUZvcm1hdCJpbiBhZSxnZXQ6YWU9PmFlLnRpbWVGb3JtYXQsc2V0OihhZSx2ZSk9PnthZS50aW1lRm9ybWF0PXZlfX0sbWV0YWRhdGE6ZWV9LGYsZyksWDEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW51dGVJbmNyZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4ibWludXRlSW5jcmVtZW50ImluIGFlLGdldDphZT0+YWUubWludXRlSW5jcmVtZW50LHNldDooYWUsdmUpPT57YWUubWludXRlSW5jcmVtZW50PXZlfX0sbWV0YWRhdGE6ZWV9LHYsbSksWDEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRlRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+ImRhdGVGb3JtYXQiaW4gYWUsZ2V0OmFlPT5hZS5kYXRlRm9ybWF0LHNldDooYWUsdmUpPT57YWUuZGF0ZUZvcm1hdD12ZX19LG1ldGFkYXRhOmVlfSxNLFMpLFgxKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluRGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YWU9PiJtaW5EYXRlImluIGFlLGdldDphZT0+YWUubWluRGF0ZSxzZXQ6KGFlLHZlKT0+e2FlLm1pbkRhdGU9dmV9fSxtZXRhZGF0YTplZX0sXyxrKSxYMSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4ibWF4RGF0ZSJpbiBhZSxnZXQ6YWU9PmFlLm1heERhdGUsc2V0OihhZSx2ZSk9PnthZS5tYXhEYXRlPXZlfX0sbWV0YWRhdGE6ZWV9LEwsQSksWDEodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZERhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+ImRpc2FibGVkRGF0ZXMiaW4gYWUsZ2V0OmFlPT5hZS5kaXNhYmxlZERhdGVzLHNldDooYWUsdmUpPT57YWUuZGlzYWJsZWREYXRlcz12ZX19LG1ldGFkYXRhOmVlfSxDLHopLFgxKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2Vla1N0YXJ0c09uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+IndlZWtTdGFydHNPbiJpbiBhZSxnZXQ6YWU9PmFlLndlZWtTdGFydHNPbixzZXQ6KGFlLHZlKT0+e2FlLndlZWtTdGFydHNPbj12ZX19LG1ldGFkYXRhOmVlfSxULCQpLFgxKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4icGxhY2Vob2xkZXIiaW4gYWUsZ2V0OmFlPT5hZS5wbGFjZWhvbGRlcixzZXQ6KGFlLHZlKT0+e2FlLnBsYWNlaG9sZGVyPXZlfX0sbWV0YWRhdGE6ZWV9LFIsVSksWDEodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlVGltZXpvbmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4iZW5hYmxlVGltZXpvbmUiaW4gYWUsZ2V0OmFlPT5hZS5lbmFibGVUaW1lem9uZSxzZXQ6KGFlLHZlKT0+e2FlLmVuYWJsZVRpbWV6b25lPXZlfX0sbWV0YWRhdGE6ZWV9LGosbWUpLFgxKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbWV6b25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+InRpbWV6b25lImluIGFlLGdldDphZT0+YWUudGltZXpvbmUsc2V0OihhZSx2ZSk9PnthZS50aW1lem9uZT12ZX19LG1ldGFkYXRhOmVlfSxILGNlKSxYMSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJldmVudHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4iZXZlbnRzImluIGFlLGdldDphZT0+YWUuZXZlbnRzLHNldDooYWUsdmUpPT57YWUuZXZlbnRzPXZlfX0sbWV0YWRhdGE6ZWV9LFcsRCksWDEodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW5lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YWU9PiJpc09wZW5lZCJpbiBhZSxnZXQ6YWU9PmFlLmlzT3BlbmVkLHNldDooYWUsdmUpPT57YWUuaXNPcGVuZWQ9dmV9fSxtZXRhZGF0YTplZX0sWixZKSxYMSh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+Im9wZW5zVG9Ub3AiaW4gYWUsZ2V0OmFlPT5hZS5vcGVuc1RvVG9wLHNldDooYWUsdmUpPT57YWUub3BlbnNUb1RvcD12ZX19LG1ldGFkYXRhOmVlfSxnZSxiZSksWDEodGhpcyxudWxsLCRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWREYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczphZT0+InNlbGVjdGVkRGF0ZSJpbiBhZSxnZXQ6YWU9PmFlLnNlbGVjdGVkRGF0ZSxzZXQ6KGFlLHZlKT0+e2FlLnNlbGVjdGVkRGF0ZT12ZX19LG1ldGFkYXRhOmVlfSxCLFApLFgxKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlld0RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4idmlld0RhdGUiaW4gYWUsZ2V0OmFlPT5hZS52aWV3RGF0ZSxzZXQ6KGFlLHZlKT0+e2FlLnZpZXdEYXRlPXZlfX0sbWV0YWRhdGE6ZWV9LGZlLGRlKSxYMSh0aGlzLG51bGwsX2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEhvdXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmFlPT4ic2VsZWN0ZWRIb3VyImluIGFlLGdldDphZT0+YWUuc2VsZWN0ZWRIb3VyLHNldDooYWUsdmUpPT57YWUuc2VsZWN0ZWRIb3VyPXZlfX0sbWV0YWRhdGE6ZWV9LHBlLHRlKSxYMSh0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE1pbnV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YWU9PiJzZWxlY3RlZE1pbnV0ZSJpbiBhZSxnZXQ6YWU9PmFlLnNlbGVjdGVkTWludXRlLHNldDooYWUsdmUpPT57YWUuc2VsZWN0ZWRNaW51dGU9dmV9fSxtZXRhZGF0YTplZX0sRmUsV2UpLFgxKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmVlfSxudWxsLGEpLHllPWk9ZS52YWx1ZSxlZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTplZX0pfXN0YXRpYyBkZW1vPVU5dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9enQodGhpcyxuLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoZWUpe3RoaXMuI2U9ZWV9I3Q9KHp0KHRoaXMsbyksenQodGhpcyxjLCExKSk7Z2V0IGVuYWJsZVRpbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZW5hYmxlVGltZShlZSl7dGhpcy4jdD1lZX0jYT0oenQodGhpcyxwKSx6dCh0aGlzLGYsIjI0aCIpKTtnZXQgdGltZUZvcm1hdCgpe3JldHVybiB0aGlzLiNhfXNldCB0aW1lRm9ybWF0KGVlKXt0aGlzLiNhPWVlfSNpPSh6dCh0aGlzLGcpLHp0KHRoaXMsdiwxKSk7Z2V0IG1pbnV0ZUluY3JlbWVudCgpe3JldHVybiB0aGlzLiNpfXNldCBtaW51dGVJbmNyZW1lbnQoZWUpe3RoaXMuI2k9ZWV9I3I9KHp0KHRoaXMsbSksenQodGhpcyxNLCJZWVlZLU1NLUREIikpO2dldCBkYXRlRm9ybWF0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGRhdGVGb3JtYXQoZWUpe3RoaXMuI3I9ZWV9I3M9KHp0KHRoaXMsUyksenQodGhpcyxfLCIiKSk7Z2V0IG1pbkRhdGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWluRGF0ZShlZSl7dGhpcy4jcz1lZX0jbj0oenQodGhpcyxrKSx6dCh0aGlzLEwsIiIpKTtnZXQgbWF4RGF0ZSgpe3JldHVybiB0aGlzLiNufXNldCBtYXhEYXRlKGVlKXt0aGlzLiNuPWVlfSNvPSh6dCh0aGlzLEEpLHp0KHRoaXMsQyxbXSkpO2dldCBkaXNhYmxlZERhdGVzKCl7cmV0dXJuIHRoaXMuI299c2V0IGRpc2FibGVkRGF0ZXMoZWUpe3RoaXMuI289ZWV9I2w9KHp0KHRoaXMseiksenQodGhpcyxULDEpKTtnZXQgd2Vla1N0YXJ0c09uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHdlZWtTdGFydHNPbihlZSl7dGhpcy4jbD1lZX0jYz0oenQodGhpcywkKSx6dCh0aGlzLFIsIllZWVktTU0tREQiKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHBsYWNlaG9sZGVyKGVlKXt0aGlzLiNjPWVlfSNkPSh6dCh0aGlzLFUpLHp0KHRoaXMsaiwhMSkpO2dldCBlbmFibGVUaW1lem9uZSgpe3JldHVybiB0aGlzLiNkfXNldCBlbmFibGVUaW1lem9uZShlZSl7dGhpcy4jZD1lZX0jcD0oenQodGhpcyxtZSksenQodGhpcyxILEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkpO2dldCB0aW1lem9uZSgpe3JldHVybiB0aGlzLiNwfXNldCB0aW1lem9uZShlZSl7dGhpcy4jcD1lZX0jaD0oenQodGhpcyxjZSksenQodGhpcyxXLFtdKSk7Z2V0IGV2ZW50cygpe3JldHVybiB0aGlzLiNofXNldCBldmVudHMoZWUpe3RoaXMuI2g9ZWV9I3U9KHp0KHRoaXMsRCksenQodGhpcyxaLCExKSk7Z2V0IGlzT3BlbmVkKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGlzT3BlbmVkKGVlKXt0aGlzLiN1PWVlfSNmPSh6dCh0aGlzLFkpLHp0KHRoaXMsZ2UsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNmfXNldCBvcGVuc1RvVG9wKGVlKXt0aGlzLiNmPWVlfSNtPSh6dCh0aGlzLGJlKSx6dCh0aGlzLEIsbnVsbCkpO2dldCBzZWxlY3RlZERhdGUoKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2VsZWN0ZWREYXRlKGVlKXt0aGlzLiNtPWVlfSNnPSh6dCh0aGlzLFApLHp0KHRoaXMsZmUsbmV3IERhdGUpKTtnZXQgdmlld0RhdGUoKXtyZXR1cm4gdGhpcy4jZ31zZXQgdmlld0RhdGUoZWUpe3RoaXMuI2c9ZWV9I2I9KHp0KHRoaXMsZGUpLHp0KHRoaXMscGUsMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jYn1zZXQgc2VsZWN0ZWRIb3VyKGVlKXt0aGlzLiNiPWVlfSN2PSh6dCh0aGlzLHRlKSx6dCh0aGlzLEZlLDApKTtnZXQgc2VsZWN0ZWRNaW51dGUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgc2VsZWN0ZWRNaW51dGUoZWUpe3RoaXMuI3Y9ZWV9c3RhdGljIHN0eWxlcz1HOXQ7Z2V0VGltZXpvbmVzKCl7cmV0dXJuW3t2YWx1ZToiVVRDIixsYWJlbDoiVVRDIChDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZSkifSx7dmFsdWU6IkFtZXJpY2EvTmV3X1lvcmsiLGxhYmVsOiJFYXN0ZXJuIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9DaGljYWdvIixsYWJlbDoiQ2VudHJhbCBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvRGVudmVyIixsYWJlbDoiTW91bnRhaW4gVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0xvc19BbmdlbGVzIixsYWJlbDoiUGFjaWZpYyBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvUGhvZW5peCIsbGFiZWw6IkFyaXpvbmEifSx7dmFsdWU6IkFtZXJpY2EvQW5jaG9yYWdlIixsYWJlbDoiQWxhc2thIn0se3ZhbHVlOiJQYWNpZmljL0hvbm9sdWx1IixsYWJlbDoiSGF3YWlpIn0se3ZhbHVlOiJFdXJvcGUvTG9uZG9uIixsYWJlbDoiTG9uZG9uIn0se3ZhbHVlOiJFdXJvcGUvUGFyaXMiLGxhYmVsOiJQYXJpcyJ9LHt2YWx1ZToiRXVyb3BlL0JlcmxpbiIsbGFiZWw6IkJlcmxpbiJ9LHt2YWx1ZToiRXVyb3BlL01vc2NvdyIsbGFiZWw6Ik1vc2NvdyJ9LHt2YWx1ZToiQXNpYS9EdWJhaSIsbGFiZWw6IkR1YmFpIn0se3ZhbHVlOiJBc2lhL0tvbGthdGEiLGxhYmVsOiJJbmRpYSBTdGFuZGFyZCBUaW1lIn0se3ZhbHVlOiJBc2lhL1NoYW5naGFpIixsYWJlbDoiQ2hpbmEgU3RhbmRhcmQgVGltZSJ9LHt2YWx1ZToiQXNpYS9Ub2t5byIsbGFiZWw6IlRva3lvIn0se3ZhbHVlOiJBdXN0cmFsaWEvU3lkbmV5IixsYWJlbDoiU3lkbmV5In0se3ZhbHVlOiJQYWNpZmljL0F1Y2tsYW5kIixsYWJlbDoiQXVja2xhbmQifV19cmVuZGVyKCl7cmV0dXJuIFo5dCh0aGlzKX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5oYW5kbGVDbGlja091dHNpZGU9dGhpcy5oYW5kbGVDbGlja091dHNpZGUuYmluZCh0aGlzKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXtpZih0aGlzLnZhbHVlfHwodGhpcy52YWx1ZT0iIiksdGhpcy52YWx1ZSl0cnl7bGV0IGVlPW5ldyBEYXRlKHRoaXMudmFsdWUpO2lzTmFOKGVlLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1lZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKGVlKSx0aGlzLnNlbGVjdGVkSG91cj1lZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9ZWUuZ2V0TWludXRlcygpKX1jYXRjaHt9ZWxzZXtsZXQgZWU9bmV3IERhdGU7dGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShlZSksdGhpcy5zZWxlY3RlZEhvdXI9ZWUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPTB9fWZvcm1hdERhdGUoZWUpe2lmKCFlZSlyZXR1cm4iIjt0cnl7bGV0IGFlPW5ldyBEYXRlKGVlKTtpZihpc05hTihhZS5nZXRUaW1lKCkpKXJldHVybiIiO2xldCB2ZT10aGlzLmRhdGVGb3JtYXQsUGU9YWUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLFZlPShhZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLHh0PWFlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtpZih2ZT12ZS5yZXBsYWNlKCJZWVlZIix4dCksdmU9dmUucmVwbGFjZSgiWVkiLHh0LnNsaWNlKC0yKSksdmU9dmUucmVwbGFjZSgiTU0iLFZlKSx2ZT12ZS5yZXBsYWNlKCJERCIsUGUpLHRoaXMuZW5hYmxlVGltZSl7bGV0IG90PWFlLmdldEhvdXJzKCksTHQ9b3Q9PT0wPzEyOm90PjEyP290LTEyOm90LFp0PWFlLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxpZT1vdD49MTI/IlBNIjoiQU0iO3RoaXMudGltZUZvcm1hdD09PSIxMmgiP3ZlKz1gICR7THR9OiR7WnR9ICR7aWV9YDp2ZSs9YCAke290LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke1p0fWB9aWYodGhpcy5lbmFibGVUaW1lem9uZSl7bGV0IFp0PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIse3RpbWVab25lTmFtZToic2hvcnQiLHRpbWVab25lOnRoaXMudGltZXpvbmV9KS5mb3JtYXRUb1BhcnRzKGFlKS5maW5kKGllPT5pZS50eXBlPT09InRpbWVab25lTmFtZSIpO1p0JiYodmUrPWAgJHtadC52YWx1ZX1gKX1yZXR1cm4gdmV9Y2F0Y2h7cmV0dXJuIiJ9fWhhbmRsZUNsaWNrT3V0c2lkZT0oenQodGhpcyxXZSksZWU9PntlZS5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0aGlzKXx8KHRoaXMuaXNPcGVuZWQ9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKSl9KTthc3luYyB0b2dnbGVDYWxlbmRhcigpe2lmKCF0aGlzLmRpc2FibGVkKWlmKHRoaXMuaXNPcGVuZWQ9IXRoaXMuaXNPcGVuZWQsdGhpcy5pc09wZW5lZCl7bGV0IGFlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdmU9d2luZG93LmlubmVySGVpZ2h0LWFlLmJvdHRvbSxQZT1hZS50b3A7dGhpcy5vcGVuc1RvVG9wPXZlPDQwMCYmUGU+dmUsc2V0VGltZW91dCgoKT0+e2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9LDApfWVsc2UgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKX1nZXREYXlzSW5Nb250aCgpe2xldCBlZT10aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCksYWU9dGhpcy52aWV3RGF0ZS5nZXRNb250aCgpLHZlPW5ldyBEYXRlKGVlLGFlLDEpLFBlPW5ldyBEYXRlKGVlLGFlKzEsMCksVmU9W10seHQ9dGhpcy53ZWVrU3RhcnRzT249PT0xP3ZlLmdldERheSgpPT09MD82OnZlLmdldERheSgpLTE6dmUuZ2V0RGF5KCk7Zm9yKGxldCBMdD14dDtMdD4wO0x0LS0pVmUucHVzaChuZXcgRGF0ZShlZSxhZSwxLUx0KSk7Zm9yKGxldCBMdD0xO0x0PD1QZS5nZXREYXRlKCk7THQrKylWZS5wdXNoKG5ldyBEYXRlKGVlLGFlLEx0KSk7bGV0IG90PTQyLVZlLmxlbmd0aDtmb3IobGV0IEx0PTE7THQ8PW90O0x0KyspVmUucHVzaChuZXcgRGF0ZShlZSxhZSsxLEx0KSk7cmV0dXJuIFZlfWlzVG9kYXkoZWUpe2xldCBhZT1uZXcgRGF0ZTtyZXR1cm4gZWUuZ2V0RGF0ZSgpPT09YWUuZ2V0RGF0ZSgpJiZlZS5nZXRNb250aCgpPT09YWUuZ2V0TW9udGgoKSYmZWUuZ2V0RnVsbFllYXIoKT09PWFlLmdldEZ1bGxZZWFyKCl9aXNTZWxlY3RlZChlZSl7cmV0dXJuIHRoaXMuc2VsZWN0ZWREYXRlP2VlLmdldERhdGUoKT09PXRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSYmZWUuZ2V0TW9udGgoKT09PXRoaXMuc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkmJmVlLmdldEZ1bGxZZWFyKCk9PT10aGlzLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpOiExfWlzRGlzYWJsZWQoZWUpe2lmKHRoaXMubWluRGF0ZSl7bGV0IGFlPW5ldyBEYXRlKHRoaXMubWluRGF0ZSk7aWYoZWU8YWUpcmV0dXJuITB9aWYodGhpcy5tYXhEYXRlKXtsZXQgYWU9bmV3IERhdGUodGhpcy5tYXhEYXRlKTtpZihlZT5hZSlyZXR1cm4hMH1yZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzJiZ0aGlzLmRpc2FibGVkRGF0ZXMubGVuZ3RoPjA/dGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoYWU9Pnt0cnl7bGV0IHZlPW5ldyBEYXRlKGFlKTtyZXR1cm4gZWUuZ2V0RGF0ZSgpPT09dmUuZ2V0RGF0ZSgpJiZlZS5nZXRNb250aCgpPT09dmUuZ2V0TW9udGgoKSYmZWUuZ2V0RnVsbFllYXIoKT09PXZlLmdldEZ1bGxZZWFyKCl9Y2F0Y2h7cmV0dXJuITF9fSk6ITF9Z2V0RXZlbnRzRm9yRGF0ZShlZSl7aWYoIXRoaXMuZXZlbnRzfHx0aGlzLmV2ZW50cy5sZW5ndGg9PT0wKXJldHVybltdO2xldCBhZT1gJHtlZS5nZXRGdWxsWWVhcigpfS0keyhlZS5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2VlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gO3JldHVybiB0aGlzLmV2ZW50cy5maWx0ZXIodmU9PnZlLmRhdGU9PT1hZSl9c2VsZWN0RGF0ZShlZSl7dGhpcy5zZWxlY3RlZERhdGU9bmV3IERhdGUoZWUuZ2V0RnVsbFllYXIoKSxlZS5nZXRNb250aCgpLGVlLmdldERhdGUoKSx0aGlzLnNlbGVjdGVkSG91cix0aGlzLnNlbGVjdGVkTWludXRlKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUodGhpcy5zZWxlY3RlZERhdGUpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuZW5hYmxlVGltZXx8KHRoaXMuaXNPcGVuZWQ9ITEpfXNlbGVjdFRvZGF5KCl7bGV0IGVlPW5ldyBEYXRlO3RoaXMuc2VsZWN0ZWREYXRlPWVlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoZWUpLHRoaXMuc2VsZWN0ZWRIb3VyPWVlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1lZS5nZXRNaW51dGVzKCksdGhpcy52YWx1ZT10aGlzLmZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKHRoaXMuc2VsZWN0ZWREYXRlKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmVuYWJsZVRpbWV8fCh0aGlzLmlzT3BlbmVkPSExKX1jbGVhcigpe3RoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmlzT3BlbmVkPSExfXByZXZpb3VzTW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCktMSwxKX1uZXh0TW9udGgoKXt0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKHRoaXMudmlld0RhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnZpZXdEYXRlLmdldE1vbnRoKCkrMSwxKX1oYW5kbGVIb3VySW5wdXQoZWUpe2xldCBhZT1lZS50YXJnZXQsdmU9cGFyc2VJbnQoYWUudmFsdWUpfHwwO3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyh2ZT1NYXRoLm1heCgxLE1hdGgubWluKDEyLHZlKSksdGhpcy5zZWxlY3RlZEhvdXI+PTEyJiZ2ZSE9PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPXZlKzEyOnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiZ2ZT09PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPTA6dGhpcy5zZWxlY3RlZEhvdXI9dmUpOnRoaXMuc2VsZWN0ZWRIb3VyPU1hdGgubWF4KDAsTWF0aC5taW4oMjMsdmUpKSx0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKX1oYW5kbGVNaW51dGVJbnB1dChlZSl7bGV0IGFlPWVlLnRhcmdldCx2ZT1wYXJzZUludChhZS52YWx1ZSl8fDA7dmU9TWF0aC5tYXgoMCxNYXRoLm1pbig1OSx2ZSkpLHRoaXMubWludXRlSW5jcmVtZW50JiZ0aGlzLm1pbnV0ZUluY3JlbWVudD4xJiYodmU9TWF0aC5yb3VuZCh2ZS90aGlzLm1pbnV0ZUluY3JlbWVudCkqdGhpcy5taW51dGVJbmNyZW1lbnQpLHRoaXMuc2VsZWN0ZWRNaW51dGU9dmUsdGhpcy51cGRhdGVTZWxlY3RlZERhdGVUaW1lKCl9c2V0QU1QTShlZSl7ZWU9PT0iYW0iJiZ0aGlzLnNlbGVjdGVkSG91cj49MTI/dGhpcy5zZWxlY3RlZEhvdXItPTEyOmVlPT09InBtIiYmdGhpcy5zZWxlY3RlZEhvdXI8MTImJih0aGlzLnNlbGVjdGVkSG91cis9MTIpLHRoaXMudXBkYXRlU2VsZWN0ZWREYXRlVGltZSgpfXVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKXt0aGlzLnNlbGVjdGVkRGF0ZSYmKHRoaXMuc2VsZWN0ZWREYXRlPW5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksdGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCksdGhpcy5zZWxlY3RlZEhvdXIsdGhpcy5zZWxlY3RlZE1pbnV0ZSksdGhpcy52YWx1ZT10aGlzLmZvcm1hdFZhbHVlV2l0aFRpbWV6b25lKHRoaXMuc2VsZWN0ZWREYXRlKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9aGFuZGxlVGltZXpvbmVDaGFuZ2UoZWUpe2xldCBhZT1lZS50YXJnZXQ7dGhpcy50aW1lem9uZT1hZS52YWx1ZSx0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKX1mb3JtYXRWYWx1ZVdpdGhUaW1lem9uZShlZSl7aWYoIXRoaXMuZW5hYmxlVGltZXpvbmUpcmV0dXJuIGVlLnRvSVNPU3RyaW5nKCk7bGV0IHZlPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbi1VUyIse3llYXI6Im51bWVyaWMiLG1vbnRoOiIyLWRpZ2l0IixkYXk6IjItZGlnaXQiLGhvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCIsc2Vjb25kOiIyLWRpZ2l0Iixob3VyMTI6ITEsdGltZVpvbmU6dGhpcy50aW1lem9uZSx0aW1lWm9uZU5hbWU6InNob3J0In0pLmZvcm1hdFRvUGFydHMoZWUpLFBlPXt9O3ZlLmZvckVhY2gob3Q9PntQZVtvdC50eXBlXT1vdC52YWx1ZX0pO2xldCBWZT1gJHtQZS55ZWFyfS0ke1BlLm1vbnRofS0ke1BlLmRheX1UJHtQZS5ob3VyfToke1BlLm1pbnV0ZX06JHtQZS5zZWNvbmR9YCx4dD10aGlzLmdldFRpbWV6b25lT2Zmc2V0KGVlLHRoaXMudGltZXpvbmUpO3JldHVybmAke1ZlfSR7eHR9YH1nZXRUaW1lem9uZU9mZnNldChlZSxhZSl7bGV0IHZlPW5ldyBEYXRlKGVlLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse3RpbWVab25lOmFlfSkpLFBlPW5ldyBEYXRlKGVlLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse3RpbWVab25lOiJVVEMifSkpLFZlPSh2ZS5nZXRUaW1lKCktUGUuZ2V0VGltZSgpKS8oMWUzKjYwKSx4dD1NYXRoLmZsb29yKE1hdGguYWJzKFZlKS82MCksb3Q9TWF0aC5hYnMoVmUpJTYwO3JldHVybmAke1ZlPj0wPyIrIjoiLSJ9JHt4dC50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHtvdC50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfWhhbmRsZUtleWRvd24oZWUpe2VlLmtleT09PSJFbnRlciJ8fGVlLmtleT09PSIgIj8oZWUucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZUNhbGVuZGFyKCkpOmVlLmtleT09PSJFc2NhcGUiJiZ0aGlzLmlzT3BlbmVkJiYoZWUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkPSExKX1jbGVhclZhbHVlKGVlKXtlZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGwsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9aGFuZGxlTWFudWFsSW5wdXQoZWUpe2xldCB2ZT1lZS50YXJnZXQudmFsdWUudHJpbSgpO2lmKCF2ZSl7dGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsO3JldHVybn1sZXQgUGU9dGhpcy5wYXJzZU1hbnVhbERhdGUodmUpO1BlJiYhaXNOYU4oUGUuZ2V0VGltZSgpKSYmKHRoaXMudmFsdWU9UGUudG9JU09TdHJpbmcoKSx0aGlzLnNlbGVjdGVkRGF0ZT1QZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKFBlKSx0aGlzLnNlbGVjdGVkSG91cj1QZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9UGUuZ2V0TWludXRlcygpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1oYW5kbGVJbnB1dEJsdXIoZWUpe2xldCBhZT1lZS50YXJnZXQsdmU9YWUudmFsdWUudHJpbSgpO2lmKCF2ZSl7dGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpO3JldHVybn1sZXQgUGU9dGhpcy5wYXJzZU1hbnVhbERhdGUodmUpO1BlJiYhaXNOYU4oUGUuZ2V0VGltZSgpKT8odGhpcy52YWx1ZT1QZS50b0lTT1N0cmluZygpLHRoaXMuc2VsZWN0ZWREYXRlPVBlLHRoaXMudmlld0RhdGU9bmV3IERhdGUoUGUpLHRoaXMuc2VsZWN0ZWRIb3VyPVBlLmdldEhvdXJzKCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1QZS5nZXRNaW51dGVzKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksYWUudmFsdWU9dGhpcy5mb3JtYXREYXRlKHRoaXMudmFsdWUpKTphZS52YWx1ZT10aGlzLmZvcm1hdERhdGUodGhpcy52YWx1ZSl9cGFyc2VNYW51YWxEYXRlKGVlKXtpZighZWUpcmV0dXJuIG51bGw7bGV0IGFlPWVlLnNwbGl0KCIgIiksdmU9YWVbMF0sUGU9YWVbMV18fCIiLFZlPW51bGwseHQ9dmUubWF0Y2goL14oXGR7NH0pLShcZHsxLDJ9KS0oXGR7MSwyfSkkLyk7aWYoeHQpe2xldFtvdCxMdCxadCxpZV09eHQ7VmU9bmV3IERhdGUocGFyc2VJbnQoTHQpLHBhcnNlSW50KFp0KS0xLHBhcnNlSW50KGllKSl9aWYoIVZlKXtsZXQgb3Q9dmUubWF0Y2goL14oXGR7MSwyfSlcLihcZHsxLDJ9KVwuKFxkezR9KSQvKTtpZihvdCl7bGV0W0x0LFp0LGllLHNlXT1vdDtWZT1uZXcgRGF0ZShwYXJzZUludChzZSkscGFyc2VJbnQoaWUpLTEscGFyc2VJbnQoWnQpKX19aWYoIVZlKXtsZXQgb3Q9dmUubWF0Y2goL14oXGR7MSwyfSlcLyhcZHsxLDJ9KVwvKFxkezR9KSQvKTtpZihvdCl7bGV0W0x0LFp0LGllLHNlXT1vdDtWZT1uZXcgRGF0ZShwYXJzZUludChzZSkscGFyc2VJbnQoWnQpLTEscGFyc2VJbnQoaWUpKX19aWYoIVZlfHxpc05hTihWZS5nZXRUaW1lKCkpKXJldHVybiBudWxsO2lmKFBlKXtsZXQgb3Q9UGUubWF0Y2goL14oXGR7MSwyfSk6KFxkezJ9KSQvKTtpZihvdCl7bGV0W0x0LFp0LGllXT1vdDtWZS5zZXRIb3VycyhwYXJzZUludChadCkpLFZlLnNldE1pbnV0ZXMocGFyc2VJbnQoaWUpKX19ZWxzZSBpZighdGhpcy5lbmFibGVUaW1lKXtsZXQgb3Q9bmV3IERhdGU7VmUuc2V0SG91cnMob3QuZ2V0SG91cnMoKSksVmUuc2V0TWludXRlcyhvdC5nZXRNaW51dGVzKCkpLFZlLnNldFNlY29uZHMoMCksVmUuc2V0TWlsbGlzZWNvbmRzKDApfXJldHVybiBWZX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGVlKXtpZih0aGlzLnZhbHVlPWVlLGVlKXRyeXtsZXQgYWU9bmV3IERhdGUoZWUpO2lzTmFOKGFlLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1hZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKGFlKSx0aGlzLnNlbGVjdGVkSG91cj1hZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9YWUuZ2V0TWludXRlcygpKX1jYXRjaHt9fXN0YXRpY3t6dChpLGEpfX07cmV0dXJuIHllPWl9KSgpfSk7dmFyIE5xPWIoKCk9PntJcSgpfSk7dmFyIEs5dCxROXQ9YigoKT0+e3VlKCk7eTEoKTttMigpO0s5dD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAub3V0cHV0LXRleHQgewogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0IikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IixyPT57Y29uc29sZS5sb2coYElucHV0ICIke2kubGFiZWx9IiBjaGFuZ2VkIHRvOmAsaS5nZXRWYWx1ZSgpKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZyhgSW5wdXQgIiR7aS5sYWJlbH0iIGxvc3QgZm9jdXNgKX0pfSksdC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PSJwYXNzd29yZCJdJykmJmNvbnNvbGUubG9nKCJQYXNzd29yZCBpbnB1dCBpbmNsdWRlcyB2aXNpYmlsaXR5IHRvZ2dsZSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUZXh0IElucHV0cyJ9IC5zdWJ0aXRsZT0keyJTdGFuZGFyZCB0ZXh0IGlucHV0cyB3aXRoIGxhYmVscyBhbmQgZGVzY3JpcHRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiVXNlcm5hbWUifQogICAgICAgICAgICAudmFsdWU9JHsiam9obmRvZSJ9CiAgICAgICAgICAgIC5rZXk9JHsidXNlcm5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIEFkZHJlc3MifQogICAgICAgICAgICAudmFsdWU9JHsiam9obkBleGFtcGxlLmNvbSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJXZSB3aWxsIG5ldmVyIHNoYXJlIHlvdXIgZW1haWwgd2l0aCBhbnlvbmUifQogICAgICAgICAgICAua2V5PSR7ImVtYWlsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQYXNzd29yZCJ9CiAgICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHsic2VjcmV0MTIzIn0KICAgICAgICAgICAgLmtleT0keyJwYXNzd29yZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0IikuZm9yRWFjaChyPT57bGV0IHM9d2luZG93LmdldENvbXB1dGVkU3R5bGUocik7Y29uc29sZS5sb2coYEhvcml6b250YWwgaW5wdXQgIiR7ci5sYWJlbH0iIGRpc3BsYXk6YCxzLmRpc3BsYXkpfSk7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PSJmaXJzdE5hbWUiXScpLGk9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LXRleHRba2V5PSJsYXN0TmFtZSJdJyk7aWYoYSYmaSl7bGV0IHI9KCk9PntsZXQgcz1hLmdldFZhbHVlKCksbj1pLmdldFZhbHVlKCk7Y29uc29sZS5sb2coYEZ1bGwgbmFtZTogJHtzfSAke259YCl9O2EuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsciksaS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IixyKX19fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkgZm9yIGNvbXBhY3QgZm9ybXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJGaXJzdCBOYW1lIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyJKb2huIn0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7ImZpcnN0TmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJMYXN0IE5hbWUifSAKICAgICAgICAgICAgLnZhbHVlPSR7IkRvZSJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJsYXN0TmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJBZ2UifSAKICAgICAgICAgICAgLnZhbHVlPSR7IjI4In0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7ImFnZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0IikuZm9yRWFjaChpPT57bGV0IHI9aS5sYWJlbFBvc2l0aW9uO2NvbnNvbGUubG9nKGBJbnB1dCAiJHtpLmxhYmVsfSIgaGFzIGxhYmVsIHBvc2l0aW9uOiAke3J9YCl9KTtsZXQgYT10LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RlZXMtaW5wdXQtdGV4dFtsYWJlbFBvc2l0aW9uPSJsZWZ0Il0nKTthLmxlbmd0aD4wJiZjb25zb2xlLmxvZyhgJHthLmxlbmd0aH0gaW5wdXRzIGhhdmUgbGVmdC1hbGlnbmVkIGxhYmVscyBmb3IgaW5saW5lIGxheW91dGApfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJMYWJlbCBQb3NpdGlvbnMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IGxhYmVsIHBvc2l0aW9uaW5nIG9wdGlvbnMgZm9yIHZhcmlvdXMgbGF5b3V0cyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkxhYmVsIG9uIFRvcCAoRGVmYXVsdCkifQogICAgICAgICAgICAudmFsdWU9JHsiU3RhbmRhcmQgbGF5b3V0In0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsidG9wIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJMYWJlbCBvbiBMZWZ0In0KICAgICAgICAgICAgLnZhbHVlPSR7IklubGluZSBsYWJlbCJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7ImxlZnQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJDaXR5In0gCiAgICAgICAgICAgIC52YWx1ZT0keyJOZXcgWW9yayJ9IAogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiWklQIENvZGUifQogICAgICAgICAgICAudmFsdWU9JHsiMTAwMDEifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHRbcmVxdWlyZWRdIiksYT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dFtkaXNhYmxlZF0iKSxpPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W3ZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCJdJyk7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2UuZ2V0VmFsdWUoKXx8Y29uc29sZS5sb2coIlJlcXVpcmVkIGZpZWxkIGlzIGVtcHR5ISIpfSksYSYmY29uc29sZS5sb2coIkRpc2FibGVkIGlucHV0IGNhbm5vdCBiZSBlZGl0ZWQiKSxpJiYoY29uc29sZS5sb2coIkVycm9yIGlucHV0IHNob3dzIHZhbGlkYXRpb24gbWVzc2FnZToiLGkudmFsaWRhdGlvblRleHQpLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsKCk9PntsZXQgcj1pLmdldFZhbHVlKCk7ci5pbmNsdWRlcygiQCIpJiZyLmluY2x1ZGVzKCIuIikmJihpLnZhbGlkYXRpb25TdGF0ZT0idmFsaWQiLGkudmFsaWRhdGlvblRleHQ9IiIsY29uc29sZS5sb2coIkVtYWlsIHZhbGlkYXRpb24gcGFzc2VkISIpKX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVmFsaWRhdGlvbiAmIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmFsaWRhdGlvbiBzdGF0ZXMgYW5kIGlucHV0IGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgRmllbGQifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJyZXF1aXJlZEZpZWxkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBGaWVsZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJDYW5ub3QgZWRpdCB0aGlzIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRmllbGQgd2l0aCBFcnJvciJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJpbnZhbGlkQCJ9CiAgICAgICAgICAgIC52YWxpZGF0aW9uVGV4dD0keyJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIn0KICAgICAgICAgICAgLnZhbGlkYXRpb25TdGF0ZT0keyJpbnZhbGlkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHRbaXNQYXNzd29yZEJvb2xdIikuZm9yRWFjaChhPT57bGV0IGk9KCk9PntsZXQgcj1hLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7ciYmY29uc29sZS5sb2coYFBhc3N3b3JkIGZpZWxkICIke2EubGFiZWx9IiB0eXBlOmAsci50eXBlKX07aWYoYS5zaGFkb3dSb290KXtsZXQgcj1uZXcgTXV0YXRpb25PYnNlcnZlcihpKSxzPWEuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpO3MmJnIub2JzZXJ2ZShzLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInR5cGUiXX0pfX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJBZHZhbmNlZCBGZWF0dXJlcyJ9IC5zdWJ0aXRsZT0keyJQYXNzd29yZCB2aXNpYmlsaXR5IHRvZ2dsZSBhbmQgb3RoZXIgYWR2YW5jZWQgZmVhdHVyZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJQYXNzd29yZCB3aXRoIFRvZ2dsZSJ9CiAgICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHsibXlTZWN1cmVQYXNzd29yZDEyMyJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDbGljayB0aGUgZXllIGljb24gdG8gc2hvdy9oaWRlIHBhc3N3b3JkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJBUEkgS2V5In0KICAgICAgICAgICAgLmlzUGFzc3dvcmRCb29sPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0keyJzay0xMjM0NTY3ODkwYWJjZGVmIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IktlZXAgdGhpcyBrZXkgc2VjdXJlIGFuZCBuZXZlciBzaGFyZSBpdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0IiksYT10LnF1ZXJ5U2VsZWN0b3IoIiN0ZXh0LWlucHV0LW91dHB1dCIpO2lmKGUmJmEpe2UuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIscj0+e2xldCBzPXIuZGV0YWlsLmdldFZhbHVlKCk7YS50ZXh0Q29udGVudD1gQ3VycmVudCB2YWx1ZTogIiR7c30iYH0pLGUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57Y29uc29sZS5sb2coIklucHV0IGZvY3VzZWQiKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiSW5wdXQgYmx1cnJlZCIpfSk7bGV0IGk9MDtlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCgpPT57aSsrLGNvbnNvbGUubG9nKGBLZXlwcmVzcyBjb3VudDogJHtpfWApfSl9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRyeSB0eXBpbmcgaW4gdGhlIGlucHV0cyB0byBzZWUgcmVhbC10aW1lIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IkR5bmFtaWMgSW5wdXQifSAKICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJUeXBlIHNvbWV0aGluZyBoZXJlLi4uIn0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iaW50ZXJhY3RpdmUtc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGlkPSJ0ZXh0LWlucHV0LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5DdXJyZW50IHZhbHVlOiAiIjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgWDAsVWEsRHgsbG89YigoKT0+e2dpKCk7QzEoKTtROXQoKTtjYSgpO3VlKCk7cWUoKTtYMD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LFVhPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxEeD0oKCk9PntsZXQgdD1baGUoImRlZXMtaW5wdXQtdGV4dCIpXSxlLGE9W10saSxyPVhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGQ9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLGw9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHk9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHg9W0koe3JlZmxlY3Q6ITB9KV0sRj1bSSh7fSldLFgwKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJ2YWx1ZSJpbiBBLGdldDpBPT5BLnZhbHVlLHNldDooQSxxKT0+e0EudmFsdWU9cX19LG1ldGFkYXRhOkx9LG4sbyksWDAodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Bhc3N3b3JkQm9vbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImlzUGFzc3dvcmRCb29sImluIEEsZ2V0OkE9PkEuaXNQYXNzd29yZEJvb2wsc2V0OihBLHEpPT57QS5pc1Bhc3N3b3JkQm9vbD1xfX0sbWV0YWRhdGE6TH0sYyxwKSxYMCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dQYXNzd29yZEJvb2wiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJzaG93UGFzc3dvcmRCb29sImluIEEsZ2V0OkE9PkEuc2hvd1Bhc3N3b3JkQm9vbCxzZXQ6KEEscSk9PntBLnNob3dQYXNzd29yZEJvb2w9cX19LG1ldGFkYXRhOkx9LGYsZyksWDAodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJ2YWxpZGF0aW9uU3RhdGUiaW4gQSxnZXQ6QT0+QS52YWxpZGF0aW9uU3RhdGUsc2V0OihBLHEpPT57QS52YWxpZGF0aW9uU3RhdGU9cX19LG1ldGFkYXRhOkx9LHYsbSksWDAodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InZhbGlkYXRpb25UZXh0ImluIEEsZ2V0OkE9PkEudmFsaWRhdGlvblRleHQsc2V0OihBLHEpPT57QS52YWxpZGF0aW9uVGV4dD1xfX0sbWV0YWRhdGE6TH0sTSxTKSxYMCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25GdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InZhbGlkYXRpb25GdW5jdGlvbiJpbiBBLGdldDpBPT5BLnZhbGlkYXRpb25GdW5jdGlvbixzZXQ6KEEscSk9PntBLnZhbGlkYXRpb25GdW5jdGlvbj1xfX0sbWV0YWRhdGE6TH0sXyxrKSxYMChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpMfSxudWxsLGEpLE49aT1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPUs5dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9VWEodGhpcyxuLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoTCl7dGhpcy4jZT1MfSN0PShVYSh0aGlzLG8pLFVhKHRoaXMsYywhMSkpO2dldCBpc1Bhc3N3b3JkQm9vbCgpe3JldHVybiB0aGlzLiN0fXNldCBpc1Bhc3N3b3JkQm9vbChMKXt0aGlzLiN0PUx9I2E9KFVhKHRoaXMscCksVWEodGhpcyxmLCExKSk7Z2V0IHNob3dQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1Bhc3N3b3JkQm9vbChMKXt0aGlzLiNhPUx9I2k9KFVhKHRoaXMsZyksVWEodGhpcyx2LHZvaWQgMCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsaWRhdGlvblN0YXRlKEwpe3RoaXMuI2k9TH0jcj0oVWEodGhpcyxtKSxVYSh0aGlzLE0sIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdmFsaWRhdGlvblRleHQoTCl7dGhpcy4jcj1MfSNzPShVYSh0aGlzLFMpLFVhKHRoaXMsXyx2b2lkIDApKTtnZXQgdmFsaWRhdGlvbkZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbGlkYXRpb25GdW5jdGlvbihMKXt0aGlzLiNzPUx9c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiBhdXRvOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICBpbnB1dCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KDpmb2N1cykgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBQYXNzd29yZCB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5zaG93UGFzc3dvcmQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMXB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDM4cHg7CiAgICAgICAgaGVpZ2h0OiAzOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDVweCA1cHggMDsKICAgICAgfQoKICAgICAgLnNob3dQYXNzd29yZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIud2FybiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlIC8gMC4xKSIsImhzbCgyNSA5NSUgNjMlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb25Db250YWluZXIudmFsaWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAvKiBFcnJvciBzdGF0ZSBmb3IgaW5wdXQgKi8KICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9ImludmFsaWQiXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbGlkYXRpb24tc3RhdGU9ImludmFsaWQiXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDcyLjIlIDUwLjYlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlIC8gMC4wNSkiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAvKiBXYXJuaW5nIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0id2FybiJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0id2FybiJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjA1KSIsImhzbCgyNSA5NSUgNjMlIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0idmFsaWQiXSkgaW5wdXQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0idmFsaWQiXSkgaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4wNSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjA1KSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICBpbnB1dCB7CiAgICAgICAgICBmb250LWZhbWlseTogJHt0aGlzLmlzUGFzc3dvcmRCb29sP1YwOiJpbmhlcml0In07CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyIwLjVweCI6Im5vcm1hbCJ9OwogICAgICAgICAgcGFkZGluZy1yaWdodDogJHt0aGlzLmlzUGFzc3dvcmRCb29sPyI0OHB4IjoiMTJweCJ9OwogICAgICAgIH0KICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/UWAKICAgICAgICAgICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgYDpRYAogICAgICAgICAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyIHsKICAgICAgICAgICAgICAgIGhlaWdodDogMDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0iJHt0aGlzLmlzUGFzc3dvcmRCb29sJiYhdGhpcy5zaG93UGFzc3dvcmRCb29sPyJwYXNzd29yZCI6InRleHQifSIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy52YWx1ZX0KICAgICAgICAgICAgQGlucHV0PSIke3RoaXMudXBkYXRlVmFsdWV9IgogICAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICBwbGFjZWhvbGRlcj0iJHt0aGlzLmxhYmVsPyIiOiJFbnRlciB0ZXh0Li4uIn0iCiAgICAgICAgICAvPgogICAgICAgICAgJHt0aGlzLmlzUGFzc3dvcmRCb29sP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG93UGFzc3dvcmQiIEBjbGljaz0ke3RoaXMudG9nZ2xlUGFzc3dvcmRWaWV3fT4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuc2hvd1Bhc3N3b3JkQm9vbD8ibHVjaWRlOkV5ZSI6Imx1Y2lkZTpFeWVPZmYifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uQ29udGFpbmVyICR7dGhpcy52YWxpZGF0aW9uU3RhdGV8fCJlcnJvciJ9Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0fQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDp3YDxkaXYgY2xhc3M9InZhbGlkYXRpb25Db250YWluZXIiPjwvZGl2PmB9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoKXt9YXN5bmMgdXBkYXRlVmFsdWUoTCl7bGV0IEE9TC50YXJnZXQ7dGhpcy52YWx1ZT1BLnZhbHVlLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoTCl7dGhpcy52YWx1ZT1MfWFzeW5jIHRvZ2dsZVBhc3N3b3JkVmlldygpe3RoaXMuc2hvd1Bhc3N3b3JkQm9vbD0hdGhpcy5zaG93UGFzc3dvcmRCb29sfWFzeW5jIGZvY3VzKCl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKX1hc3luYyBibHVyKCl7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuYmx1cigpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxVYSh0aGlzLGspfXN0YXRpY3tVYShpLGEpfX07cmV0dXJuIE49aX0pKCl9KTt2YXIgSjl0LGV1dD1iKCgpPT57dWUoKTt5MSgpO20yKCk7Sjl0PSgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke1FgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9kdWN0LWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnkgewogICAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtdG90YWwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0ZWQtcHJvZHVjdHMgewogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFByb2R1Y3QgQ2FyZHMifSAuc3VidGl0bGU9JHsiU2ltcGxlIHByb2R1Y3QgZGlzcGxheSB3aXRoIHZhcmlvdXMgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IldpcmVsZXNzIEJsdWV0b290aCBIZWFkcGhvbmVzIixjYXRlZ29yeToiQXVkaW8iLGRlc2NyaXB0aW9uOiJQcmVtaXVtIHNvdW5kIHF1YWxpdHkgd2l0aCBhY3RpdmUgbm9pc2UgY2FuY2VsbGF0aW9uIixwcmljZToxNDkuOTksb3JpZ2luYWxQcmljZToxOTkuOTksaWNvbk5hbWU6Imx1Y2lkZTpoZWFkcGhvbmVzIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJTbWFydCBXYXRjaCBTZXJpZXMgNyIsY2F0ZWdvcnk6IldlYXJhYmxlcyIsZGVzY3JpcHRpb246IlRyYWNrIHlvdXIgZml0bmVzcyBhbmQgc3RheSBjb25uZWN0ZWQgb24gdGhlIGdvIixwcmljZTozOTksaWNvbk5hbWU6Imx1Y2lkZTp3YXRjaCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiVVNCLUMgSHViIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLHByaWNlOjQ5Ljk5LGljb25OYW1lOiJsdWNpZGU6dXNiIixpblN0b2NrOiExfX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBTaG9wcGluZyBDYXJ0In0gLnN1YnRpdGxlPSR7IlByb2R1Y3QgY2FyZHMgd2l0aCBkeW5hbWljIGNhcnQgY2FsY3VsYXRpb24ifSAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9W3tpZDoibGFwdG9wIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZTonTWFjQm9vayBQcm8gMTQiJyxjYXRlZ29yeToiQ29tcHV0ZXJzIixkZXNjcmlwdGlvbjoiTTMgUHJvIGNoaXAgd2l0aCAxOEdCIFJBTSIscHJpY2U6MTk5OSxvcmlnaW5hbFByaWNlOjIxOTksaWNvbk5hbWU6Imx1Y2lkZTpsYXB0b3AifX0se2lkOiJpcGFkIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZToiaVBhZCBBaXIiLGNhdGVnb3J5OiJUYWJsZXRzIixkZXNjcmlwdGlvbjonMTAuOSIgTGlxdWlkIFJldGluYSBkaXNwbGF5JyxwcmljZTo1OTksaWNvbk5hbWU6Imx1Y2lkZTp0YWJsZXQifX0se2lkOiJrZXlib2FyZCIsZWxlbWVudDpudWxsLGRhdGE6e25hbWU6Ik1hZ2ljIEtleWJvYXJkIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJXaXJlbGVzcyBrZXlib2FyZCB3aXRoIFRvdWNoIElEIixwcmljZToxNDksaWNvbk5hbWU6Imx1Y2lkZTprZXlib2FyZCJ9fV0sYT0oKT0+e2xldCBpPTAscj1bXTtlLmZvckVhY2gobj0+e2xldCBvPXQucXVlcnlTZWxlY3RvcihgIyR7bi5pZH1gKTtpZihvJiZvLnF1YW50aXR5PjApe2xldCBkPW4uZGF0YS5wcmljZSpvLnF1YW50aXR5O2krPWQsci5wdXNoKGAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICAgIDxzcGFuPiR7bi5kYXRhLm5hbWV9ICgke28ucXVhbnRpdHl9KTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4+JCR7ZC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfX0pO2xldCBzPXQucXVlcnlTZWxlY3RvcigiI2ludGVyYWN0aXZlLWNhcnQtc3VtbWFyeSIpO3MmJihzLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgJHtyLmpvaW4oIiIpfQogICAgICAgICAgICAgICR7ci5sZW5ndGg9PT0wPyc8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjOTk5OyI+WW91ciBjYXJ0IGlzIGVtcHR5PC9kaXY+JzoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXRvdGFsIj4KICAgICAgICAgICAgICAgIDxzcGFuPlRvdGFsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7aS50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9O3NldFRpbWVvdXQoYSwxMDApLHQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpLmZvckVhY2goaT0+e2kuYWRkRXZlbnRMaXN0ZW5lcigicXVhbnRpdHlDaGFuZ2UiLGEpfSl9fT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImxhcHRvcCIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6J01hY0Jvb2sgUHJvIDE0IicsY2F0ZWdvcnk6IkNvbXB1dGVycyIsZGVzY3JpcHRpb246Ik0zIFBybyBjaGlwIHdpdGggMThHQiBSQU0iLHByaWNlOjE5OTksb3JpZ2luYWxQcmljZToyMTk5LGljb25OYW1lOiJsdWNpZGU6bGFwdG9wIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJpcGFkIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiaVBhZCBBaXIiLGNhdGVnb3J5OiJUYWJsZXRzIixkZXNjcmlwdGlvbjonMTAuOSIgTGlxdWlkIFJldGluYSBkaXNwbGF5JyxwcmljZTo1OTksaWNvbk5hbWU6Imx1Y2lkZTp0YWJsZXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImtleWJvYXJkIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTWFnaWMgS2V5Ym9hcmQiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IldpcmVsZXNzIGtleWJvYXJkIHdpdGggVG91Y2ggSUQiLHByaWNlOjE0OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezJ9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXN1bW1hcnkiPgogICAgICAgICAgPGgzIGNsYXNzPSJjYXJ0LXN1bW1hcnktdGl0bGUiPlNob3BwaW5nIENhcnQ8L2gzPgogICAgICAgICAgPGRpdiBpZD0iaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5Ij4KICAgICAgICAgICAgPCEtLSBEeW5hbWljYWxseSB1cGRhdGVkIC0tPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZWxlY3RhYmxlIFByb2R1Y3QgQ2FyZHMifSAuc3VidGl0bGU9JHsiQ2xpY2sgY2FyZHMgb3IgY2hlY2tib3hlcyB0byBzZWxlY3QgcHJvZHVjdHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNvbnkgQWxwaGEgNyBJViIsY2F0ZWdvcnk6IkNhbWVyYXMiLGRlc2NyaXB0aW9uOiJGdWxsLWZyYW1lIG1pcnJvcmxlc3MgY2FtZXJhIixwcmljZToyNDk4LGljb25OYW1lOiJsdWNpZGU6Y2FtZXJhIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLGk9W107YS5mb3JFYWNoKHI9PntyLnNlbGVjdGVkJiZpLnB1c2goci5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9aS5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7aS5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiREpJIE1pbmkgMyBQcm8iLGNhdGVnb3J5OiJEcm9uZXMiLGRlc2NyaXB0aW9uOiJMaWdodHdlaWdodCBkcm9uZSB3aXRoIDRLIGNhbWVyYSIscHJpY2U6NzU5LGljb25OYW1lOiJsdWNpZGU6cGxhbmUifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHt0PT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZihlKXtsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksaT1bXTthLmZvckVhY2gocj0+e3Iuc2VsZWN0ZWQmJmkucHVzaChyLnByb2R1Y3REYXRhLm5hbWUpfSksZS50ZXh0Q29udGVudD1pLmxlbmd0aD4wP2BTZWxlY3RlZDogJHtpLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJHb1BybyBIRVJPMTIiLGNhdGVnb3J5OiJBY3Rpb24gQ2FtZXJhcyIsZGVzY3JpcHRpb246IjUuM0sgdmlkZW8gd2l0aCBIeXBlclNtb290aCA2LjAiLHByaWNlOjM5OSxvcmlnaW5hbFByaWNlOjQ0OSxpY29uTmFtZToibHVjaWRlOnZpZGVvIn19CiAgICAgICAgICAgIC5zZWxlY3RhYmxlPSR7ITB9CiAgICAgICAgICAgIC5zaG93UXVhbnRpdHlTZWxlY3Rvcj0keyExfQogICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7aWYoZSl7bGV0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZFtzZWxlY3RhYmxlXSIpLGk9W107YS5mb3JFYWNoKHI9PntyLnNlbGVjdGVkJiZpLnB1c2goci5wcm9kdWN0RGF0YS5uYW1lKX0pLGUudGV4dENvbnRlbnQ9aS5sZW5ndGg+MD9gU2VsZWN0ZWQ6ICR7aS5qb2luKCIsICIpfWA6Ik5vIHByb2R1Y3RzIHNlbGVjdGVkIn19fQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3RlZC1wcm9kdWN0cyIgaWQ9InNlbGVjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICBObyBwcm9kdWN0cyBzZWxlY3RlZAogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJvZHVjdCBWYXJpYXRpb25zIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJMaW1pdGVkIEVkaXRpb24gU25lYWtlcnMiLGNhdGVnb3J5OiJGb290d2VhciIsZGVzY3JpcHRpb246IkV4Y2x1c2l2ZSBjb2xvcndheSAtIE9ubHkgNTAwIHBhaXJzIixwcmljZToyOTksaWNvbk5hbWU6Imx1Y2lkZTpmb290cHJpbnRzIixpblN0b2NrOiExLHN0b2NrVGV4dDoiU29sZCBPdXQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MH0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6Ik1pbmltYWxpc3QgV2FsbGV0IixwcmljZTozOS45OSxpY29uTmFtZToibHVjaWRlOndhbGxldCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsxfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiUHJlbWl1bSBDb2ZmZWUgQmVhbnMiLGNhdGVnb3J5OiJGb29kICYgQmV2ZXJhZ2UiLGRlc2NyaXB0aW9uOiJTaW5nbGUgb3JpZ2luLCBtZWRpdW0gcm9hc3QiLHByaWNlOjE4LjUsaWNvbk5hbWU6Imx1Y2lkZTpjb2ZmZWUiLGN1cnJlbmN5OiJcdTIwQUMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciAkbCxXaSx0dXQsRnE9YigoKT0+e3VlKCk7ZXV0KCk7cWUoKTskbD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LFdpPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSx0dXQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W107dmFyIEY9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6T2JqZWN0fSldLGQ9W0koe3R5cGU6TnVtYmVyfSldLGw9W0koe3R5cGU6Qm9vbGVhbn0pXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpCb29sZWFufSldLCRsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZHVjdERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJwcm9kdWN0RGF0YSJpbiBrLGdldDprPT5rLnByb2R1Y3REYXRhLHNldDooayxOKT0+e2sucHJvZHVjdERhdGE9Tn19LG1ldGFkYXRhOl99LG4sbyksJGwodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJxdWFudGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InF1YW50aXR5ImluIGssZ2V0Oms9PmsucXVhbnRpdHksc2V0OihrLE4pPT57ay5xdWFudGl0eT1OfX0sbWV0YWRhdGE6X30sYyxwKSwkbCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dRdWFudGl0eVNlbGVjdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2hvd1F1YW50aXR5U2VsZWN0b3IiaW4gayxnZXQ6az0+ay5zaG93UXVhbnRpdHlTZWxlY3RvcixzZXQ6KGssTik9PntrLnNob3dRdWFudGl0eVNlbGVjdG9yPU59fSxtZXRhZGF0YTpffSxmLGcpLCRsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNlbGVjdGFibGUiaW4gayxnZXQ6az0+ay5zZWxlY3RhYmxlLHNldDooayxOKT0+e2suc2VsZWN0YWJsZT1OfX0sbWV0YWRhdGE6X30sdixtKSwkbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2VsZWN0ZWQiaW4gayxnZXQ6az0+ay5zZWxlY3RlZCxzZXQ6KGssTik9PntrLnNlbGVjdGVkPU59fSxtZXRhZGF0YTpffSxNLFMpLCRsKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksRj1pPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89Sjl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiU2ltcGxlIl07I2U9V2kodGhpcyxuLHtuYW1lOiJQcm9kdWN0IE5hbWUiLHByaWNlOjB9KTtnZXQgcHJvZHVjdERhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJvZHVjdERhdGEoXyl7dGhpcy4jZT1ffSN0PShXaSh0aGlzLG8pLFdpKHRoaXMsYywwKSk7Z2V0IHF1YW50aXR5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHF1YW50aXR5KF8pe3RoaXMuI3Q9X30jYT0oV2kodGhpcyxwKSxXaSh0aGlzLGYsITApKTtnZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoXyl7dGhpcy4jYT1ffSNpPShXaSh0aGlzLGcpLFdpKHRoaXMsdiwhMSkpO2dldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGFibGUoXyl7dGhpcy4jaT1ffSNyPShXaSh0aGlzLG0pLFdpKHRoaXMsTSwhMSkpO2dldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZChfKXt0aGlzLiNyPV99c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucHJvZHVjdC1jYXJkOmhvdmVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNhcmQuc2VsZWN0YWJsZSB7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAucHJvZHVjdC1jYXJkLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAucHJvZHVjdC1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxODBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAucHJvZHVjdC1pbWFnZSBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMnB4OwogICAgICAgIHJpZ2h0OiAxMnB4OwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSA2LjglKSIpfTsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94LmNoZWNrZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3guY2hlY2tlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY29udGVudCB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAucHJvZHVjdC1jYXRlZ29yeSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LW5hbWUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAucHJvZHVjdC1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgZmxleDogMTsKICAgICAgfQogICAgICAKICAgICAgLnByb2R1Y3QtZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtcHJpY2UgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnByaWNlLWN1cnJlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByaWNlLW9yaWdpbmFsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5pbi1zdG9jayB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cy5vdXQtb2Ytc3RvY2sgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXR7bmFtZTpfLGNhdGVnb3J5OmssZGVzY3JpcHRpb246TixwcmljZTpMLG9yaWdpbmFsUHJpY2U6QSxjdXJyZW5jeTpxPSIkIixpblN0b2NrOkM9ITAsc3RvY2tUZXh0Ono9Qz8iSW4gU3RvY2siOiJPdXQgb2YgU3RvY2siLGltYWdlVXJsOkUsaWNvbk5hbWU6VD0ibHVjaWRlOnBhY2thZ2UifT10aGlzLnByb2R1Y3REYXRhLCQ9Vj0+YCR7cX0ke1YudG9GaXhlZCgyKX1gO3JldHVybiB3YAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJwcm9kdWN0LWNhcmQgJHt0aGlzLnNlbGVjdGFibGU/InNlbGVjdGFibGUiOiIifSAke3RoaXMuc2VsZWN0ZWQ/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDYXJkQ2xpY2t9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWltYWdlIj4KICAgICAgICAgICR7RT93YAogICAgICAgICAgICA8aW1nIHNyYz0iJHtFfSIgYWx0PSIke199Ij4KICAgICAgICAgIGA6d2AKICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke1R9PjwvZGVlcy1pY29uPgogICAgICAgICAgYH0KICAgICAgICAgICR7dGhpcy5zZWxlY3RhYmxlP3dgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9InNlbGVjdGlvbi1jaGVja2JveCAke3RoaXMuc2VsZWN0ZWQ/ImNoZWNrZWQiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHtWPT57Vi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWNvbnRlbnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1oZWFkZXIiPgogICAgICAgICAgICAke2s/d2A8ZGl2IGNsYXNzPSJwcm9kdWN0LWNhdGVnb3J5Ij4ke2t9PC9kaXY+YDoiIn0KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1uYW1lIj4ke199PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7Tj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWRlc2NyaXB0aW9uIj4ke059PC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0ic3RvY2stc3RhdHVzICR7Qz8iaW4tc3RvY2siOiJvdXQtb2Ytc3RvY2sifSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtDPyJsdWNpZGU6Y2hlY2stY2lyY2xlIjoibHVjaWRlOngtY2lyY2xlIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICR7en0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1mb290ZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LXByaWNlIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpY2UtY3VycmVudCI+JHskKEwpfTwvc3Bhbj4KICAgICAgICAgICAgICAke0EmJkE+TD93YAogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLW9yaWdpbmFsIj4keyQoQSl9PC9zcGFuPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAke3RoaXMuc2hvd1F1YW50aXR5U2VsZWN0b3I/d2AKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnF1YW50aXR5fQogICAgICAgICAgICAgICAgQGNoYW5nZVN1YmplY3Q9JHtWPT57dGhpcy5xdWFudGl0eT1WLmRldGFpbC5nZXRWYWx1ZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInF1YW50aXR5Q2hhbmdlIix7ZGV0YWlsOntxdWFudGl0eTp0aGlzLnF1YW50aXR5LHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ2FyZENsaWNrKCl7dGhpcy5zZWxlY3RhYmxlJiYodGhpcy5zZWxlY3RlZD0hdGhpcy5zZWxlY3RlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkOnRoaXMuc2VsZWN0ZWQscHJvZHVjdERhdGE6dGhpcy5wcm9kdWN0RGF0YX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9aGFuZGxlU2VsZWN0aW9uVG9nZ2xlKCl7dGhpcy5zZWxlY3RlZD0hdGhpcy5zZWxlY3RlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkOnRoaXMuc2VsZWN0ZWQscHJvZHVjdERhdGE6dGhpcy5wcm9kdWN0RGF0YX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksV2kodGhpcyxTKX1zdGF0aWN7V2koaSxhKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIGF1dCxpdXQ9YigoKT0+e3VlKCk7RnEoKTthdXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNob3BwaW5nLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnkgewogICAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtdG90YWwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgUXVhbnRpdHkgU2VsZWN0b3IifSAuc3VidGl0bGU9JHsiU2ltcGxlIHF1YW50aXR5IGlucHV0IHdpdGggaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHRoZSBkZXNpcmVkIHF1YW50aXR5In0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJJdGVtcyBpbiBDYXJ0In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkanVzdCB0aGUgcXVhbnRpdHkgb2YgaXRlbXMifQogICAgICAgICAgICAudmFsdWU9JHszfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJNb2Rlcm4gZS1jb21tZXJjZSBwcm9kdWN0IGNhcmRzIHdpdGggaW50ZXJhY3RpdmUgcXVhbnRpdHkgc2VsZWN0b3JzIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPSgpPT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIjaGVhZHBob25lcy1xdHkiKSxpPXQucXVlcnlTZWxlY3RvcigiI21vdXNlLXF0eSIpLHI9dC5xdWVyeVNlbGVjdG9yKCIja2V5Ym9hcmQtcXR5Iikscz1hPy5xdWFudGl0eXx8MCxuPWk/LnF1YW50aXR5fHwwLG89cj8ucXVhbnRpdHl8fDAsZD0zNDkuOTkqcyxjPTk5Ljk5Km4scD03OS45OSpvLGw9ZCtjK3AsZj10LnF1ZXJ5U2VsZWN0b3IoIiNjYXJ0LXN1bW1hcnktY29udGVudCIpO2YmJihmLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgJHtzPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Tb255IFdILTEwMDBYTTUgKCR7c30pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7ZC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7bj4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+TG9naXRlY2ggTVggTWFzdGVyIDNTICgke259KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2MudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke28+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPktleWNocm9uIEsyICgke299KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke3AudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke2w9PT0wPyc8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjOTk5OyI+WW91ciBjYXJ0IGlzIGVtcHR5PC9kaXY+JzoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXRvdGFsIj4KICAgICAgICAgICAgICAgIDxzcGFuPlRvdGFsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7bC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9O3NldFRpbWVvdXQoZSwxMDApLHQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigicXVhbnRpdHlDaGFuZ2UiLGUpfSl9fT4KICAgICAgICA8ZGl2IGNsYXNzPSJzaG9wcGluZy1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJoZWFkcGhvbmVzLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNvbnkgV0gtMTAwMFhNNSBXaXJlbGVzcyBIZWFkcGhvbmVzIixjYXRlZ29yeToiQXVkaW8iLGRlc2NyaXB0aW9uOiJJbmR1c3RyeS1sZWFkaW5nIG5vaXNlIGNhbmNlbGluZyB3aXRoIEF1dG8gTkMgT3B0aW1pemVyIixwcmljZTozNDkuOTksb3JpZ2luYWxQcmljZTozOTkuOTksaWNvbk5hbWU6Imx1Y2lkZTpoZWFkcGhvbmVzIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ibW91c2UtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTG9naXRlY2ggTVggTWFzdGVyIDNTIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJQZXJmb3JtYW5jZSB3aXJlbGVzcyBtb3VzZSB3aXRoIHVsdHJhLWZhc3Qgc2Nyb2xsaW5nIixwcmljZTo5OS45OSxpY29uTmFtZToibHVjaWRlOm1vdXNlLXBvaW50ZXIifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJrZXlib2FyZC1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJLZXljaHJvbiBLMiBXaXJlbGVzcyBNZWNoYW5pY2FsIEtleWJvYXJkIixjYXRlZ29yeToiS2V5Ym9hcmRzIixkZXNjcmlwdGlvbjoiQ29tcGFjdCA3NSUgbGF5b3V0IHdpdGggaG90LXN3YXBwYWJsZSBzd2l0Y2hlcyIscHJpY2U6NzkuOTksb3JpZ2luYWxQcmljZTo5NC45OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXN1bW1hcnkiPgogICAgICAgICAgPGgzIGNsYXNzPSJjYXJ0LXN1bW1hcnktdGl0bGUiPk9yZGVyIFN1bW1hcnk8L2gzPgogICAgICAgICAgPGRpdiBpZD0iY2FydC1zdW1tYXJ5LWNvbnRlbnQiPgogICAgICAgICAgICA8IS0tIENvbnRlbnQgd2lsbCBiZSBkeW5hbWljYWxseSB1cGRhdGVkIC0tPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJSZXF1aXJlZCAmIERpc2FibGVkIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGZvciB2YWxpZGF0aW9uIGFuZCByZXN0cmljdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJOdW1iZXIgb2YgTGljZW5zZXMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IGhvdyBtYW55IGxpY2Vuc2VzIHlvdSBuZWVkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiRml4ZWQgUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBxdWFudGl0eSBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHs1fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiT3JkZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBvcmRlciBmb3JtIHdpdGggcXVhbnRpdHkgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkN1c3RvbWVyIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyBQbGFuIiwiUHJvIFBsYW4iLCJFbnRlcnByaXNlIFBsYW4iXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTnVtYmVyIG9mIGxpY2Vuc2VzIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWNpYWwgSW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBydXQsT3EsRXgsUnE9YigoKT0+e3VlKCk7VHQoKTtDMSgpO2l1dCgpO3FlKCk7cnV0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sT3E9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LEV4PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yIildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6TnVtYmVyfSldLHJ1dCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwPT4idmFsdWUiaW4gcCxnZXQ6cD0+cC52YWx1ZSxzZXQ6KHAsbCk9PntwLnZhbHVlPWx9fSxtZXRhZGF0YTpjfSxuLG8pLHJ1dChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPWF1dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9T3EodGhpcyxuLDEpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIHdpZHRoOiBhdXRvOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyIHsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgbWluLXdpZHRoOiAxMjBweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXI6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yIHsKICAgICAgICAgIGZsZXg6IDAgMCA0MHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3I6YWN0aXZlIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MSUpIiwiaHNsKDAgMCUgMTElKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3Rvci5taW51cyB7CiAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yLnBsdXMgewogICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5IHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMDZlbTsKICAgICAgICB9CgogICAgICAgIC8qIEtleWJvYXJkIG5hdmlnYXRpb24gZm9jdXMgc3R5bGVzICovCiAgICAgICAgLnNlbGVjdG9yOmZvY3VzIHsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLyogTWluIHZhbHVlIHN0YXRlICovCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj0idHJ1ZSJdIC5zZWxlY3Rvci5taW51cyB7CiAgICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcltkYXRhLW1pbj0idHJ1ZSJdIC5zZWxlY3Rvci5taW51czpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmA6IiJ9CiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJxdWFudGl0eS1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgZGF0YS1taW49IiR7dGhpcy52YWx1ZTw9MH0iCiAgICAgICAgPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNlbGVjdG9yIG1pbnVzIiAKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5kZWNyZWFzZSgpfX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtjPT57KGMua2V5PT09IkVudGVyInx8Yy5rZXk9PT0iICIpJiYoYy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZGVjcmVhc2UoKSl9fSIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBhcmlhLWxhYmVsPSJEZWNyZWFzZSBxdWFudGl0eSIKICAgICAgICAgID7iiJI8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InF1YW50aXR5IiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1hdG9taWM9InRydWUiPiR7dGhpcy52YWx1ZX08L2Rpdj4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJzZWxlY3RvciBwbHVzIiAKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dGhpcy5pbmNyZWFzZSgpfX0iCiAgICAgICAgICAgIHRhYmluZGV4PSIke3RoaXMuZGlzYWJsZWQ/Ii0xIjoiMCJ9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtjPT57KGMua2V5PT09IkVudGVyInx8Yy5rZXk9PT0iICIpJiYoYy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVhc2UoKSl9fSIKICAgICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgICBhcmlhLWxhYmVsPSJJbmNyZWFzZSBxdWFudGl0eSIKICAgICAgICAgID4rPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1pbmNyZWFzZSgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlKyssdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWRlY3JlYXNlKCl7IXRoaXMuZGlzYWJsZWQmJnRoaXMudmFsdWU+MCYmKHRoaXMudmFsdWUtLSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShjKXt0aGlzLnZhbHVlPWN9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLE9xKHRoaXMsbyl9c3RhdGlje09xKGksYSl9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciBzdXQsbnV0PWIoKCk9Pnt1ZSgpO3kxKCk7bTIoKTtzdXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5yZXN1bHQtZGlzcGxheSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIFJhZGlvIEdyb3VwcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgc3RyaW5nIG9wdGlvbnMgZm9yIGNvbW1vbiB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaXB0aW9uIFBsYW4ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siQmFzaWMgLSAkOS9tb250aCIsIlBybyAtICQyOS9tb250aCIsIkVudGVycHJpc2UgLSAkOTkvbW9udGgiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlBybyAtICQyOS9tb250aCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgeW91ciBzdWJzY3JpcHRpb24gdGllciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlByaW9yaXR5IExldmVsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkhpZ2giLCJNZWRpdW0iLCJMb3ciXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik1lZGl1bSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gSG9yaXpvbnRhbCBMYXlvdXQifSAuc3VidGl0bGU9JHsiUmFkaW8gZ3JvdXBzIHdpdGggaG9yaXpvbnRhbCBhcnJhbmdlbWVudCJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkRvIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcz8ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siWWVzIiwiTm8iLCJNYXliZSJdfQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiWWVzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJFeHBlcmllbmNlIExldmVsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkJlZ2lubmVyIiwiSW50ZXJtZWRpYXRlIiwiRXhwZXJ0Il19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJJbnRlcm1lZGlhdGUifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHlvdXIgZXhwZXJpZW5jZSBsZXZlbCB3aXRoIHdlYiBkZXZlbG9wbWVudCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBBZHZhbmNlZCBPcHRpb25zIn0gLnN1YnRpdGxlPSR7IlVzaW5nIG9iamVjdCBmb3JtYXQgd2l0aCBrZXlzIGFuZCBwYXlsb2FkcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgIGlkPSJhZHZhbmNlZC1yYWRpbyIKICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUmVnaW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMgKFVTIEVhc3QpIixrZXk6InVzLWVhc3QiLHBheWxvYWQ6e3JlZ2lvbjoidXMtZWFzdC0xIixsYXRlbmN5OjIwfX0se29wdGlvbjoiRXVyb3BlIChGcmFua2Z1cnQpIixrZXk6ImV1LWNlbnRyYWwiLHBheWxvYWQ6e3JlZ2lvbjoiZXUtY2VudHJhbC0xIixsYXRlbmN5OjUwfX0se29wdGlvbjoiQXNpYSBQYWNpZmljIChTaW5nYXBvcmUpIixrZXk6ImFwLXNvdXRoZWFzdCIscGF5bG9hZDp7cmVnaW9uOiJhcC1zb3V0aGVhc3QtMSIsbGF0ZW5jeToxMjB9fV19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiZXUtY2VudHJhbCJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIHRoZSBjbG9zZXN0IHJlZ2lvbiBmb3Igb3B0aW1hbCBwZXJmb3JtYW5jZSJ9CiAgICAgICAgICBAY2hhbmdlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZWdpb24tcmVzdWx0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IlNlbGVjdGVkOiAiK0pTT04uc3RyaW5naWZ5KHQuZGV0YWlsLnZhbHVlLG51bGwsMikpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPGRpdiBpZD0icmVnaW9uLXJlc3VsdCIgY2xhc3M9InJlc3VsdC1kaXNwbGF5Ij5TZWxlY3RlZDogeyAicmVnaW9uIjogImV1LWNlbnRyYWwtMSIsICJsYXRlbmN5IjogNTAgfTwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3VydmV5IEV4YW1wbGUifSAuc3VidGl0bGU9JHsiTXVsdGlwbGUgcmFkaW8gZ3JvdXBzIGZvciBzdXJ2ZXlzIGFuZCBmb3JtcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJIb3cgc2F0aXNmaWVkIGFyZSB5b3U/In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIlZlcnkgU2F0aXNmaWVkIiwiU2F0aXNmaWVkIiwiTmV1dHJhbCIsIkRpc3NhdGlzZmllZCIsIlZlcnkgRGlzc2F0aXNmaWVkIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJTYXRpc2ZpZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJXb3VsZCB5b3UgcmVjb21tZW5kIHVzPyJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJEZWZpbml0ZWx5IiwiUHJvYmFibHkiLCJOb3QgU3VyZSIsIlByb2JhYmx5IE5vdCIsIkRlZmluaXRlbHkgTm90Il19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJQcm9iYWJseSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBTdGF0ZXMgJiBWYWxpZGF0aW9uIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIHZhbGlkYXRpb24gZXhhbXBsZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgU2VsZWN0aW9uIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk9wdGlvbiBBIiwiT3B0aW9uIEIiLCJPcHRpb24gQyJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBTdGF0ZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJEaXNhYmxlZCBPcHRpb24gMSIsIkRpc2FibGVkIE9wdGlvbiAyIiwiRGlzYWJsZWQgT3B0aW9uIDMiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRpc2FibGVkIE9wdGlvbiAyIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNvbW1vbiBwYXR0ZXJucyBpbiBhcHBsaWNhdGlvbiBzZXR0aW5ncyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlRoZW1lIFByZWZlcmVuY2UifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJMaWdodCBUaGVtZSIsa2V5OiJsaWdodCIscGF5bG9hZDoibGlnaHQifSx7b3B0aW9uOiJEYXJrIFRoZW1lIixrZXk6ImRhcmsiLHBheWxvYWQ6ImRhcmsifSx7b3B0aW9uOiJTeXN0ZW0gRGVmYXVsdCIsa2V5OiJzeXN0ZW0iLHBheWxvYWQ6ImF1dG8ifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJkYXJrIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSBob3cgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBhcHBlYXIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGlmaWNhdGlvbiBGcmVxdWVuY3kifQogICAgICAgICAgICAub3B0aW9ucz0ke1siQWxsIE5vdGlmaWNhdGlvbnMiLCJJbXBvcnRhbnQgT25seSIsIk5vbmUiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkltcG9ydGFudCBPbmx5In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNvbnRyb2wgaG93IG9mdGVuIHlvdSByZWNlaXZlIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7Ikxhbmd1YWdlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVuZ2xpc2giLCJHZXJtYW4iLCJGcmVuY2giLCJTcGFuaXNoIiwiSmFwYW5lc2UiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuZ2xpc2gifQogICAgICAgICAgICAuZGlyZWN0aW9uPSR7Imhvcml6b250YWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJXb3JrcyBzZWFtbGVzc2x5IHdpdGggZGVlcy1mb3JtIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgTmFtZSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7InByb2R1Y3ROYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBDYXRlZ29yeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJFbGVjdHJvbmljcyIsIkNsb3RoaW5nIiwiQm9va3MiLCJIb21lICYgR2FyZGVuIiwiU3BvcnRzIl19CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAua2V5PSR7ImNhdGVnb3J5In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiQ29uZGl0aW9uIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk5ldyIsIkxpa2UgTmV3IiwiR29vZCIsIkZhaXIiLCJQb29yIl19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsiY29uZGl0aW9uIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7Ik5ldyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IlNoaXBwaW5nIFNwZWVkIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiU3RhbmRhcmQgKDUtNyBkYXlzKSIsa2V5OiJzdGFuZGFyZCIscGF5bG9hZDp7ZGF5czo3LHByaWNlOjB9fSx7b3B0aW9uOiJFeHByZXNzICgyLTMgZGF5cykiLGtleToiZXhwcmVzcyIscGF5bG9hZDp7ZGF5czozLHByaWNlOjEwfX0se29wdGlvbjoiT3Zlcm5pZ2h0IixrZXk6Im92ZXJuaWdodCIscGF5bG9hZDp7ZGF5czoxLHByaWNlOjI1fX1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsic3RhbmRhcmQifQogICAgICAgICAgICAua2V5PSR7InNoaXBwaW5nIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiU3VibWl0IFByb2R1Y3QifT48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciB4OCxEcyxQeCxJeD1iKCgpPT57dWUoKTtDMSgpO251dCgpO3FlKCk7eDg9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxEcz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sUHg9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWlucHV0LXJhZGlvZ3JvdXAiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpBcnJheX0pXSxkPVtJKCldLGw9W0koe3R5cGU6U3RyaW5nfSldLHk9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0seDgodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ib3B0aW9ucyJpbiBTLGdldDpTPT5TLm9wdGlvbnMsc2V0OihTLEYpPT57Uy5vcHRpb25zPUZ9fSxtZXRhZGF0YTpNfSxuLG8pLHg4KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJzZWxlY3RlZE9wdGlvbiJpbiBTLGdldDpTPT5TLnNlbGVjdGVkT3B0aW9uLHNldDooUyxGKT0+e1Muc2VsZWN0ZWRPcHRpb249Rn19LG1ldGFkYXRhOk19LGMscCkseDgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJkaXJlY3Rpb24iaW4gUyxnZXQ6Uz0+Uy5kaXJlY3Rpb24sc2V0OihTLEYpPT57Uy5kaXJlY3Rpb249Rn19LG1ldGFkYXRhOk19LGYsZykseDgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ2YWxpZGF0aW9uU3RhdGUiaW4gUyxnZXQ6Uz0+Uy52YWxpZGF0aW9uU3RhdGUsc2V0OihTLEYpPT57Uy52YWxpZGF0aW9uU3RhdGU9Rn19LG1ldGFkYXRhOk19LHYsbSkseDgobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCxhKSx4PWk9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1zdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPURzKHRoaXMsbixbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhNKXt0aGlzLiNlPU19I3Q9KERzKHRoaXMsbyksRHModGhpcyxjLCIiKSk7Z2V0IHNlbGVjdGVkT3B0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkT3B0aW9uKE0pe3RoaXMuI3Q9TX0jYT0oRHModGhpcyxwKSxEcyh0aGlzLGYsInZlcnRpY2FsIikpO2dldCBkaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGlyZWN0aW9uKE0pe3RoaXMuI2E9TX0jaT0oRHModGhpcyxnKSxEcyh0aGlzLHYsbnVsbCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdmFsaWRhdGlvblN0YXRlKE0pe3RoaXMuI2k9TX1nZXQgdmFsdWUoKXtsZXQgTT10aGlzLmdldE9wdGlvbkJ5S2V5KHRoaXMuc2VsZWN0ZWRPcHRpb24pO3JldHVybiB0eXBlb2YgTT09Im9iamVjdCImJk0ucGF5bG9hZCE9PXZvaWQgMD9NLnBheWxvYWQ6dGhpcy5zZWxlY3RlZE9wdGlvbn1zZXQgdmFsdWUoTSl7aWYodHlwZW9mIE09PSJzdHJpbmciKXRoaXMuc2VsZWN0ZWRPcHRpb249TTtlbHNle2xldCBTPXRoaXMub3B0aW9ucy5maW5kKEY9PnR5cGVvZiBGPT0ib2JqZWN0IiYmRi5wYXlsb2FkPT09TSk7UyYmdHlwZW9mIFM9PSJvYmplY3QiJiYodGhpcy5zZWxlY3RlZE9wdGlvbj1TLmtleSl9fXN0YXRpYyBzdHlsZXM9W0NlLC4uLlhlLmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuaG9yaXpvbnRhbCAucmFkaW8tb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMjBweCA2cHggMDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1jaXJjbGUgewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLWNpcmNsZTpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSAzLjklKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHtoLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYWJlbC10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24tdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDAzZW07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXSkgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9InZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJ3YXJuIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE92ZXJyaWRlIGJhc2UgZ3JpZCBsYXlvdXQgZm9yIHJhZGlvZ3JvdXAgdG8gcHJldmVudCBsYXJnZSBnYXBzICovCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRpdiBjbGFzcz0ibGFiZWwtdGV4dCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgICAke3RoaXMub3B0aW9ucy5tYXAoTT0+e2xldCBTPXRoaXMuZ2V0T3B0aW9uS2V5KE0pLEY9dGhpcy5nZXRPcHRpb25MYWJlbChNKSxfPXRoaXMuc2VsZWN0ZWRPcHRpb249PT1TO3JldHVybiB3YAogICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICBjbGFzcz0icmFkaW8tb3B0aW9uICR7Xz8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RPcHRpb24oUyl9IgogICAgICAgICAgICAgICAgQGtleWRvd249IiR7az0+dGhpcy5oYW5kbGVLZXlkb3duKGssUyl9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyYWRpby1jaXJjbGUiIAogICAgICAgICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgICAgICAgcm9sZT0icmFkaW8iCiAgICAgICAgICAgICAgICAgIGFyaWEtY2hlY2tlZD0iJHtffSIKICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iJHtGfSIKICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGlvLWxhYmVsIj4ke0Z9PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbi10ZXh0Ij4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldE9wdGlvbktleShNKXtyZXR1cm4gdHlwZW9mIE09PSJzdHJpbmciP006TS5rZXl9Z2V0T3B0aW9uTGFiZWwoTSl7cmV0dXJuIHR5cGVvZiBNPT0ic3RyaW5nIj9NOk0ub3B0aW9ufWdldE9wdGlvbkJ5S2V5KE0pe3JldHVybiB0aGlzLm9wdGlvbnMuZmluZChTPT50aGlzLmdldE9wdGlvbktleShTKT09PU0pfXNlbGVjdE9wdGlvbihNKXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtsZXQgUz10aGlzLnNlbGVjdGVkT3B0aW9uO3RoaXMuc2VsZWN0ZWRPcHRpb249TSxTIT09TSYmKHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShNKXt0aGlzLnZhbHVlPU19YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmIXRoaXMuc2VsZWN0ZWRPcHRpb24/KHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMSk6KHRoaXMudmFsaWRhdGlvblN0YXRlPSJ2YWxpZCIsITApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKCF0aGlzLnNlbGVjdGVkT3B0aW9uJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPjAmJiF0aGlzLnJlcXVpcmVkKXtsZXQgTT10aGlzLm9wdGlvbnNbMF07dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmdldE9wdGlvbktleShNKX19aGFuZGxlS2V5ZG93bihNLFMpe3RoaXMuZGlzYWJsZWR8fChNLmtleT09PSIgInx8TS5rZXk9PT0iRW50ZXIiPyhNLnByZXZlbnREZWZhdWx0KCksdGhpcy5zZWxlY3RPcHRpb24oUykpOk0ua2V5PT09IkFycm93RG93biJ8fE0ua2V5PT09IkFycm93UmlnaHQiPyhNLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRPcHRpb24oKSk6KE0ua2V5PT09IkFycm93VXAifHxNLmtleT09PSJBcnJvd0xlZnQiKSYmKE0ucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzUHJldmlvdXNPcHRpb24oKSkpfWZvY3VzTmV4dE9wdGlvbigpe2xldCBNPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksRj0oTS5maW5kSW5kZXgoXz0+Xz09PXRoaXMuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KSsxKSVNLmxlbmd0aDtNW0ZdLmZvY3VzKCl9Zm9jdXNQcmV2aW91c09wdGlvbigpe2xldCBNPUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksUz1NLmZpbmRJbmRleChfPT5fPT09dGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpLEY9Uzw9MD9NLmxlbmd0aC0xOlMtMTtNW0ZdLmZvY3VzKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLERzKHRoaXMsbSl9c3RhdGlje0RzKGksYSl9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBvdXQsbHV0PWIoKCk9Pnt1ZSgpO291dD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDI0cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAjODg4OwogICAgfQogICAgLmRlbW8tcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QmFzaWMgVXNhZ2U8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdGV4dD0iV2l0aCBUZXh0IFByb3BlcnR5Ij48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPldpdGggSWNvbnMgKGluaGVyaXRlZCBmcm9tIERlZXNCdXR0b24pPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzZW5kIj5TdWJtaXQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNhdmUiIGljb25Qb3NpdGlvbj0ibGVmdCI+U2F2ZSBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTphcnJvdy1yaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBUeXBlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJoaWdobGlnaHRlZCIgaWNvbj0ibHVjaWRlOnNlbmQiPkhpZ2hsaWdodGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHR5cGU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJkaXNjcmVldCIgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2NyZWV0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJzbWFsbCIgaWNvbj0ibHVjaWRlOnNlbmQiPlNtYWxsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHNpemU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJsYXJnZSIgaWNvbj0ibHVjaWRlOnNlbmQiPkxhcmdlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TdGF0ZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJwZW5kaW5nIiBpY29uPSJsdWNpZGU6c2VuZCI+UGVuZGluZzwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9InN1Y2Nlc3MiIGljb249Imx1Y2lkZTpjaGVjayI+U3VjY2VzczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9ImVycm9yIiBpY29uPSJsdWNpZGU6eCI+RXJyb3I8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgZGlzYWJsZWQgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2FibGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbiBhIEZvcm0gQ29udGV4dDwvaDM+CiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTmFtZSIga2V5PSJuYW1lIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNlbmQiIHR5cGU9ImhpZ2hsaWdodGVkIj5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kZWVzLWZvcm0+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBjbyxwYSxOeCxLMD1iKCgpPT57bHV0KCk7dWUoKTtxZSgpO2NvPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0scGE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LE54PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1mb3JtLXN1Ym1pdCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdO3ZhciBxPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtJKHt0eXBlOlN0cmluZ30pXSx5PVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHg9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sRj1bSSh7dHlwZTpTdHJpbmd9KV0sTj1bSSh7dHlwZTpTdHJpbmd9KV0sY28odGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImRpc2FibGVkImluIHosZ2V0Ono9PnouZGlzYWJsZWQsc2V0Oih6LEUpPT57ei5kaXNhYmxlZD1FfX0sbWV0YWRhdGE6Q30sbixvKSxjbyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJ0ZXh0ImluIHosZ2V0Ono9PnoudGV4dCxzZXQ6KHosRSk9Pnt6LnRleHQ9RX19LG1ldGFkYXRhOkN9LGMscCksY28odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzdGF0dXMiaW4geixnZXQ6ej0+ei5zdGF0dXMsc2V0Oih6LEUpPT57ei5zdGF0dXM9RX19LG1ldGFkYXRhOkN9LGYsZyksY28odGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idHlwZSJpbiB6LGdldDp6PT56LnR5cGUsc2V0Oih6LEUpPT57ei50eXBlPUV9fSxtZXRhZGF0YTpDfSx2LG0pLGNvKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InNpemUiaW4geixnZXQ6ej0+ei5zaXplLHNldDooeixFKT0+e3ouc2l6ZT1FfX0sbWV0YWRhdGE6Q30sTSxTKSxjbyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJpY29uImluIHosZ2V0Ono9PnouaWNvbixzZXQ6KHosRSk9Pnt6Lmljb249RX19LG1ldGFkYXRhOkN9LF8sayksY28odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJpY29uUG9zaXRpb24iaW4geixnZXQ6ej0+ei5pY29uUG9zaXRpb24sc2V0Oih6LEUpPT57ei5pY29uUG9zaXRpb249RX19LG1ldGFkYXRhOkN9LEwsQSksY28obnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxhKSxxPWk9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1vdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJGb3JtIiwiQnV0dG9uIl07I2U9cGEodGhpcyxuLCExKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGlzYWJsZWQoQyl7dGhpcy4jZT1DfSN0PShwYSh0aGlzLG8pLHBhKHRoaXMsYyx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KEMpe3RoaXMuI3Q9Q30jYT0ocGEodGhpcyxwKSxwYSh0aGlzLGYsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN0YXR1cyhDKXt0aGlzLiNhPUN9I2k9KHBhKHRoaXMsZykscGEodGhpcyx2LCJkZWZhdWx0IikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHR5cGUoQyl7dGhpcy4jaT1DfSNyPShwYSh0aGlzLG0pLHBhKHRoaXMsTSwiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNyfXNldCBzaXplKEMpe3RoaXMuI3I9Q30jcz0ocGEodGhpcyxTKSxwYSh0aGlzLF8sdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jc31zZXQgaWNvbihDKXt0aGlzLiNzPUN9I249KHBhKHRoaXMsaykscGEodGhpcyxMLCJsZWZ0IikpO2dldCBpY29uUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgaWNvblBvc2l0aW9uKEMpe3RoaXMuI249Q31jb25zdHJ1Y3Rvcigpe3N1cGVyKCkscGEodGhpcyxBKX1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQogICAgICBkZWVzLWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy1idXR0b24KICAgICAgICAuc3RhdHVzPSR7dGhpcy5zdGF0dXN9CiAgICAgICAgLnR5cGU9JHt0aGlzLnR5cGV9CiAgICAgICAgLnNpemU9JHt0aGlzLnNpemV9CiAgICAgICAgLmljb249JHt0aGlzLmljb259CiAgICAgICAgLmljb25Qb3NpdGlvbj0ke3RoaXMuaWNvblBvc2l0aW9ufQogICAgICAgIC50ZXh0PSR7dGhpcy50ZXh0fQogICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgQGNsaWNrZWQ9JHt0aGlzLnN1Ym1pdH0KICAgICAgPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgIGB9YXN5bmMgc3VibWl0KCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0IEM9dGhpcy5jbG9zZXN0KCJkZWVzLWZvcm0iKTtDJiZDLmdhdGhlckFuZERpc3BhdGNoJiZDLmdhdGhlckFuZERpc3BhdGNoKCl9YXN5bmMgZm9jdXMoKXtsZXQgQz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmRpc2FibGVkfHwoYXdhaXQgQy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWl0KCkpfXN0YXRpY3twYShpLGEpfX07cmV0dXJuIHE9aX0pKCl9KTt2YXIgY3V0LGR1dD1iKCgpPT57dWUoKTt5MSgpO20yKCk7QWwoKTtLMCgpO2N1dD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAuc3BhY2VyIHsKICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2xhYmVsPSJTZWxlY3QgQ291bnRyeSJdJyksYT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25bbGFiZWw9IlNlbGVjdCBSb2xlIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixpPT57Y29uc29sZS5sb2coIkNvdW50cnkgc2VsZWN0ZWQ6IixpLmRldGFpbCl9KSxhJiZhLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixpPT57Y29uc29sZS5sb2coIlJvbGUgc2VsZWN0ZWQ6IixpLmRldGFpbCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgRHJvcGRvd25zIn0gLnN1YnRpdGxlPSR7IlN0YW5kYXJkIGRyb3Bkb3duIHdpdGggc2VhcmNoIGZ1bmN0aW9uYWxpdHkgYW5kIHZhcmlvdXMgb3B0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgQ291bnRyeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMiLGtleToidXMifSx7b3B0aW9uOiJDYW5hZGEiLGtleToiY2EifSx7b3B0aW9uOiJHZXJtYW55IixrZXk6ImRlIn0se29wdGlvbjoiRnJhbmNlIixrZXk6ImZyIn0se29wdGlvbjoiVW5pdGVkIEtpbmdkb20iLGtleToidWsifSx7b3B0aW9uOiJBdXN0cmFsaWEiLGtleToiYXUifSx7b3B0aW9uOiJKYXBhbiIsa2V5OiJqcCJ9LHtvcHRpb246IkJyYXppbCIsa2V5OiJiciJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiVW5pdGVkIFN0YXRlcyIsa2V5OiJ1cyJ9fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiU2VsZWN0IFJvbGUifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJBZG1pbmlzdHJhdG9yIixrZXk6ImFkbWluIn0se29wdGlvbjoiRWRpdG9yIixrZXk6ImVkaXRvciJ9LHtvcHRpb246IlZpZXdlciIsa2V5OiJ2aWV3ZXIifSx7b3B0aW9uOiJHdWVzdCIsa2V5OiJndWVzdCJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kcm9wZG93biIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLGE9Pntjb25zb2xlLmxvZyhgUHJpb3JpdHkgY2hhbmdlZCB0bzogJHthLmRldGFpbC5vcHRpb259YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gV2l0aG91dCBTZWFyY2gifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBkaXNhYmxlZCBmb3Igc2ltcGxlciBzZWxlY3Rpb24ifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlByaW9yaXR5IExldmVsIn0KICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkhpZ2giLGtleToiaGlnaCJ9LHtvcHRpb246Ik1lZGl1bSIsa2V5OiJtZWRpdW0ifSx7b3B0aW9uOiJMb3ciLGtleToibG93In1dfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiTWVkaXVtIixrZXk6Im1lZGl1bSJ9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kcm9wZG93biIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLGk9PntsZXQgcj1hLmdldEF0dHJpYnV0ZSgibGFiZWwiKTtjb25zb2xlLmxvZyhgJHtyfTogJHtpLmRldGFpbC5vcHRpb259YCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBkcm9wZG93bnMgaW4gYSBob3Jpem9udGFsIGxheW91dCBmb3IgY29tcGFjdCBmb3JtcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IkRlcGFydG1lbnQifQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRW5naW5lZXJpbmciLGtleToiZW5nIn0se29wdGlvbjoiRGVzaWduIixrZXk6ImRlc2lnbiJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJUZWFtIFNpemUifQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiIxLTUiLGtleToic21hbGwifSx7b3B0aW9uOiI2LTIwIixrZXk6Im1lZGl1bSJ9LHtvcHRpb246IjIxLTUwIixrZXk6ImxhcmdlIn0se29wdGlvbjoiNTArIixrZXk6InhsYXJnZSJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJMb2NhdGlvbiJ9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJSZW1vdGUiLGtleToicmVtb3RlIn0se29wdGlvbjoiT24tc2l0ZSIsa2V5OiJvbnNpdGUifSx7b3B0aW9uOiJIeWJyaWQiLGtleToiaHlicmlkIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duW3JlcXVpcmVkXSIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pntjb25zb2xlLmxvZygiUmVxdWlyZWQgZHJvcGRvd24gbG9zdCBmb2N1cyIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBGaWVsZCJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJPcHRpb24gQSIsa2V5OiJhIn0se29wdGlvbjoiT3B0aW9uIEIiLGtleToiYiJ9LHtvcHRpb246Ik9wdGlvbiBDIixrZXk6ImMifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBEcm9wZG93biJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJDYW5ub3QgU2VsZWN0IixrZXk6ImRpc2FibGVkIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkaXYgY2xhc3M9InNwYWNlciI+CiAgICAgIChTcGFjZXIgdG8gdGVzdCBkcm9wZG93biBwb3NpdGlvbmluZykKICAgIDwvZGl2PgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsYT0+e2NvbnNvbGUubG9nKCJCb3R0b20gZHJvcGRvd24gc2VsZWN0ZWQ6IixhLmRldGFpbCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gQm90dG9tIFBvc2l0aW9uaW5nIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHRoYXQgb3BlbnMgdXB3YXJkIHdoZW4gbmVhciBib3R0b20gb2Ygdmlld3BvcnQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7Ik9wZW5zIFVwd2FyZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJGaXJzdCBPcHRpb24iLGtleToiZmlyc3QifSx7b3B0aW9uOiJTZWNvbmQgT3B0aW9uIixrZXk6InNlY29uZCJ9LHtvcHRpb246IlRoaXJkIE9wdGlvbiIsa2V5OiJ0aGlyZCJ9LHtvcHRpb246IkZvdXJ0aCBPcHRpb24iLGtleToiZm91cnRoIn0se29wdGlvbjoiRmlmdGggT3B0aW9uIixrZXk6ImZpZnRoIn1dfQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNzZWxlY3Rpb24tb3V0cHV0Iik7ZSYmYSYmKGEuaW5uZXJIVE1MPSI8ZW0+U2VsZWN0IGEgcHJvZHVjdCB0byBzZWUgZGV0YWlscy4uLjwvZW0+IixlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsaT0+e2kuZGV0YWlsLnZhbHVlJiYoYS5pbm5lckhUTUw9YAogICAgICAgICAgICAgIDxzdHJvbmc+U2VsZWN0ZWQ6PC9zdHJvbmc+ICR7aS5kZXRhaWwudmFsdWUub3B0aW9ufTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPktleTo8L3N0cm9uZz4gJHtpLmRldGFpbC52YWx1ZS5rZXl9PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+UHJpY2U6PC9zdHJvbmc+ICQke2kuZGV0YWlsLnZhbHVlLnBheWxvYWQ/LnByaWNlfHwiTi9BIn08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5GZWF0dXJlczo8L3N0cm9uZz4gJHtpLmRldGFpbC52YWx1ZS5wYXlsb2FkPy5mZWF0dXJlcz8uam9pbigiLCAiKXx8Ik4vQSJ9CiAgICAgICAgICAgIGApfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBFdmVudCBIYW5kbGluZyAmIFBheWxvYWQifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd2l0aCBwYXlsb2FkIGRhdGEgYW5kIGNoYW5nZSBldmVudCBoYW5kbGluZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiU2VsZWN0IFByb2R1Y3QifQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQmFzaWMgUGxhbiIsa2V5OiJiYXNpYyIscGF5bG9hZDp7cHJpY2U6OS45OSxmZWF0dXJlczpbIkZlYXR1cmUgQSJdfX0se29wdGlvbjoiUHJvIFBsYW4iLGtleToicHJvIixwYXlsb2FkOntwcmljZToxOS45OSxmZWF0dXJlczpbIkZlYXR1cmUgQSIsIkZlYXR1cmUgQiJdfX0se29wdGlvbjoiRW50ZXJwcmlzZSBQbGFuIixrZXk6ImVudGVycHJpc2UiLHBheWxvYWQ6e3ByaWNlOjQ5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIiwiRmVhdHVyZSBCIiwiRmVhdHVyZSBDIl19fV19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJzZWxlY3Rpb24tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTsgYm9yZGVyLXJhZGl1czogNHB4OyBmb250LXNpemU6IDE0cHg7Ij48L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLGE9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2tleT0icHJvamVjdFR5cGUiXScpLGk9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRyb3Bkb3duW2tleT0iZnJhbWV3b3JrIl0nKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixyPT57Y29uc29sZS5sb2coIkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YToiLHIuZGV0YWlsLmRhdGEpfSksYSYmaSYmYS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIscj0+e2xldCBzPXIuZGV0YWlsLmtleTtjb25zb2xlLmxvZyhgUHJvamVjdCB0eXBlIGNoYW5nZWQgdG86ICR7c31gKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IkRyb3Bkb3duIHdvcmtpbmcgd2l0aGluIGEgZm9ybSB3aXRoIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QgVHlwZSJ9CiAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdFR5cGUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIEFwcGxpY2F0aW9uIixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHBsaWNhdGlvbiIsa2V5OiJtb2JpbGUifSx7b3B0aW9uOiJEZXNrdG9wIEFwcGxpY2F0aW9uIixrZXk6ImRlc2t0b3AifSx7b3B0aW9uOiJBUEkgU2VydmljZSIsa2V5OiJhcGkifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGV2ZWxvcG1lbnQgRnJhbWV3b3JrIn0KICAgICAgICAgICAgLmtleT0keyJmcmFtZXdvcmsifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiUmVhY3QiLGtleToicmVhY3QiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJWdWUuanMiLGtleToidnVlIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiQW5ndWxhciIsa2V5OiJhbmd1bGFyIixwYXlsb2FkOnt0eXBlOiJ3ZWIifX0se29wdGlvbjoiUmVhY3QgTmF0aXZlIixrZXk6InJlYWN0LW5hdGl2ZSIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkZsdXR0ZXIiLGtleToiZmx1dHRlciIscGF5bG9hZDp7dHlwZToibW9iaWxlIn19LHtvcHRpb246IkVsZWN0cm9uIixrZXk6ImVsZWN0cm9uIixwYXlsb2FkOnt0eXBlOiJkZXNrdG9wIn19XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IkNyZWF0ZSBQcm9qZWN0In0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgRXMsQzIsRngsT3g9YigoKT0+e3VlKCk7VHQoKTtkdXQoKTtDMSgpO2NhKCk7cWUoKTtFcz1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEMyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxGeD0oKCk9PntsZXQgdD1baGUoImRlZXMtaW5wdXQtZHJvcGRvd24iKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXTt2YXIgRT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSgpXSxkPVtJKCldLGw9W0koe3R5cGU6Qm9vbGVhbn0pXSx5PVtKKCldLHg9W0ooKV0sRj1bSigpXSxOPVtKKCldLHE9W0ooKV0sRXModGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4ib3B0aW9ucyJpbiAkLGdldDokPT4kLm9wdGlvbnMsc2V0OigkLFYpPT57JC5vcHRpb25zPVZ9fSxtZXRhZGF0YTpUfSxuLG8pLEVzKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJzZWxlY3RlZE9wdGlvbiJpbiAkLGdldDokPT4kLnNlbGVjdGVkT3B0aW9uLHNldDooJCxWKT0+eyQuc2VsZWN0ZWRPcHRpb249Vn19LG1ldGFkYXRhOlR9LGMscCksRXModGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJlbmFibGVTZWFyY2giaW4gJCxnZXQ6JD0+JC5lbmFibGVTZWFyY2gsc2V0OigkLFYpPT57JC5lbmFibGVTZWFyY2g9Vn19LG1ldGFkYXRhOlR9LGYsZyksRXModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4ib3BlbnNUb1RvcCJpbiAkLGdldDokPT4kLm9wZW5zVG9Ub3Asc2V0OigkLFYpPT57JC5vcGVuc1RvVG9wPVZ9fSxtZXRhZGF0YTpUfSx2LG0pLEVzKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyZWRPcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iZmlsdGVyZWRPcHRpb25zImluICQsZ2V0OiQ9PiQuZmlsdGVyZWRPcHRpb25zLHNldDooJCxWKT0+eyQuZmlsdGVyZWRPcHRpb25zPVZ9fSxtZXRhZGF0YTpUfSxNLFMpLEVzKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+ImhpZ2hsaWdodGVkSW5kZXgiaW4gJCxnZXQ6JD0+JC5oaWdobGlnaHRlZEluZGV4LHNldDooJCxWKT0+eyQuaGlnaGxpZ2h0ZWRJbmRleD1WfX0sbWV0YWRhdGE6VH0sXyxrKSxFcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iaXNPcGVuZWQiaW4gJCxnZXQ6JD0+JC5pc09wZW5lZCxzZXQ6KCQsVik9PnskLmlzT3BlbmVkPVZ9fSxtZXRhZGF0YTpUfSxMLEEpLEVzKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJzZWFyY2hWYWx1ZSJpbiAkLGdldDokPT4kLnNlYXJjaFZhbHVlLHNldDooJCxWKT0+eyQuc2VhcmNoVmFsdWU9Vn19LG1ldGFkYXRhOlR9LEMseiksRXMobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6VH0sbnVsbCxhKSxFPWk9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz1jdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUMyKHRoaXMsbixbXSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyhUKXt0aGlzLiNlPVR9I3Q9KEMyKHRoaXMsbyksQzIodGhpcyxjLG51bGwpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24oVCl7dGhpcy4jdD1UfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZShUKXt0aGlzLnNlbGVjdGVkT3B0aW9uPVR9I2E9KEMyKHRoaXMscCksQzIodGhpcyxmLCEwKSk7Z2V0IGVuYWJsZVNlYXJjaCgpe3JldHVybiB0aGlzLiNhfXNldCBlbmFibGVTZWFyY2goVCl7dGhpcy4jYT1UfSNpPShDMih0aGlzLGcpLEMyKHRoaXMsdiwhMSkpO2dldCBvcGVuc1RvVG9wKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG9wZW5zVG9Ub3AoVCl7dGhpcy4jaT1UfSNyPShDMih0aGlzLG0pLEMyKHRoaXMsTSxbXSkpO2dldCBmaWx0ZXJlZE9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsdGVyZWRPcHRpb25zKFQpe3RoaXMuI3I9VH0jcz0oQzIodGhpcyxTKSxDMih0aGlzLF8sMCkpO2dldCBoaWdobGlnaHRlZEluZGV4KCl7cmV0dXJuIHRoaXMuI3N9c2V0IGhpZ2hsaWdodGVkSW5kZXgoVCl7dGhpcy4jcz1UfSNuPShDMih0aGlzLGspLEMyKHRoaXMsTCwhMSkpO2dldCBpc09wZW5lZCgpe3JldHVybiB0aGlzLiNufXNldCBpc09wZW5lZChUKXt0aGlzLiNuPVR9I289KEMyKHRoaXMsQSksQzIodGhpcyxDLCIiKSk7Z2V0IHNlYXJjaFZhbHVlKCl7cmV0dXJuIHRoaXMuI299c2V0IHNlYXJjaFZhbHVlKFQpe3RoaXMuI289VH1zdGF0aWMgc3R5bGVzPVtDZSwuLi5YZS5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3ggewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7CiAgICAgICAgcGFkZGluZzogMCA0MHB4IDAgMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveDpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3g6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3guZGlzYWJsZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBEcm9wZG93biBhcnJvdyAqLwogICAgICAuc2VsZWN0ZWRCb3g6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDEycHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VsZWN0ZWRCb3gub3Blbjo6YWZ0ZXIgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMTgwZGVnKTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveCB7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSBzY2FsZSgwLjk4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICB6LWluZGV4OiA1MDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICB9CiAgICAgIAogICAgICAuc2VsZWN0aW9uQm94LnRvcCB7CiAgICAgICAgYm90dG9tOiBjYWxjKDEwMCUgKyA0cHgpOwogICAgICAgIHRvcDogYXV0bzsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk4KTsKICAgICAgfQogICAgICAKICAgICAgLnNlbGVjdGlvbkJveC5ib3R0b20gewogICAgICAgIHRvcDogMTAwJTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbkJveC5zaG93IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBPcHRpb25zIGNvbnRhaW5lciAqLwogICAgICAub3B0aW9ucy1jb250YWluZXIgewogICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAvKiBPcHRpb25zICovCiAgICAgIC5vcHRpb24gewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDJweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5oaWdobGlnaHRlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE5vIG9wdGlvbnMgbWVzc2FnZSAqLwogICAgICAubm8tb3B0aW9ucyB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAvKiBTZWFyY2ggKi8KICAgICAgLnNlYXJjaCB7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQogICAgICAKICAgICAgLnNlYXJjaC5ib3R0b20gewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWFyY2ggaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0ic2VsZWN0ZWRCb3ggJHt0aGlzLmlzT3BlbmVkPyJvcGVuIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PiF0aGlzLmRpc2FibGVkJiZ0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpfSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlU2VsZWN0ZWRCb3hLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGVkT3B0aW9uPy5vcHRpb258fCJTZWxlY3QgYW4gb3B0aW9uIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0aW9uQm94ICR7dGhpcy5pc09wZW5lZD8ic2hvdyI6IiJ9ICR7dGhpcy5vcGVuc1RvVG9wPyJ0b3AiOiJib3R0b20ifSI+CiAgICAgICAgICAgICR7dGhpcy5lbmFibGVTZWFyY2g/d2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgCiAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IiAKICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggb3B0aW9ucy4uLiIgCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9IiR7dGhpcy5zZWFyY2hWYWx1ZX0iCiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9IiR7dGhpcy5oYW5kbGVTZWFyY2h9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSIke1Q9PlQuc3RvcFByb3BhZ2F0aW9uKCl9IgogICAgICAgICAgICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVTZWFyY2hLZXlkb3dufSIKICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6bnVsbH0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9ucy1jb250YWluZXIiPgogICAgICAgICAgICAgICR7dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoPT09MD93YDxkaXYgY2xhc3M9Im5vLW9wdGlvbnMiPk5vIG9wdGlvbnMgZm91bmQ8L2Rpdj5gOnRoaXMuZmlsdGVyZWRPcHRpb25zLm1hcCgoVCwkKT0+e2xldCBWPXRoaXMuaGlnaGxpZ2h0ZWRJbmRleD09PSQ7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJvcHRpb24gJHtWPyJoaWdobGlnaHRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudXBkYXRlU2VsZWN0aW9uKFQpfSIKICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9IiR7KCk9PnRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0kfSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHtULm9wdGlvbn0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGB9KX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZT10aGlzLmhhbmRsZUNsaWNrT3V0c2lkZS5iaW5kKHRoaXMpfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VsZWN0ZWRPcHRpb249dGhpcy5zZWxlY3RlZE9wdGlvbnx8bnVsbCx0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnN9dXBkYXRlZChUKXtzdXBlci51cGRhdGVkKFQpLFQuaGFzKCJvcHRpb25zIikmJih0aGlzLmZpbHRlcmVkT3B0aW9ucz10aGlzLm9wdGlvbnMpfWFzeW5jIHVwZGF0ZVNlbGVjdGlvbihUKXt0aGlzLnNlbGVjdGVkT3B0aW9uPVQsdGhpcy5pc09wZW5lZD0hMSx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3RlZE9wdGlvbiIse2RldGFpbDpULGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9aGFuZGxlQ2xpY2tPdXRzaWRlPShDMih0aGlzLHopLFQ9PntULmNvbXBvc2VkUGF0aCgpLmluY2x1ZGVzKHRoaXMpfHwodGhpcy5pc09wZW5lZD0hMSx0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpKX0pO2FzeW5jIHRvZ2dsZVNlbGVjdGlvbkJveCgpe2lmKHRoaXMuaXNPcGVuZWQ9IXRoaXMuaXNPcGVuZWQsdGhpcy5pc09wZW5lZCl7bGV0ICQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZEJveCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFY9d2luZG93LmlubmVySGVpZ2h0LSQuYm90dG9tLFI9JC50b3A7dGhpcy5vcGVuc1RvVG9wPVY8MzAwJiZSPlYsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgVT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlYXJjaCBpbnB1dCIpO1UmJlUuZm9jdXMoKSxzZXRUaW1lb3V0KCgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKX0sMCl9ZWxzZSB0aGlzLnNlYXJjaFZhbHVlPSIiLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpfWhhbmRsZVNlYXJjaChUKXtsZXQgJD1ULnRhcmdldC52YWx1ZTt0aGlzLnNlYXJjaFZhbHVlPSQ7bGV0IFY9JC50b0xvd2VyQ2FzZSgpO3RoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucy5maWx0ZXIoUj0+Ui5vcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhWKSksdGhpcy5oaWdobGlnaHRlZEluZGV4PTB9aGFuZGxlS2V5RG93bihUKXtsZXQgJD1ULmtleSxWPXRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aC0xOyQ9PT0iQXJyb3dEb3duIj8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD10aGlzLmhpZ2hsaWdodGVkSW5kZXgrMT5WPzA6dGhpcy5oaWdobGlnaHRlZEluZGV4KzEpOiQ9PT0iQXJyb3dVcCI/KFQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9dGhpcy5oaWdobGlnaHRlZEluZGV4LTE8MD9WOnRoaXMuaGlnaGxpZ2h0ZWRJbmRleC0xKTokPT09IkVudGVyIj8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0mJnRoaXMudXBkYXRlU2VsZWN0aW9uKHRoaXMuZmlsdGVyZWRPcHRpb25zW3RoaXMuaGlnaGxpZ2h0ZWRJbmRleF0pKTokPT09IkVzY2FwZSImJihULnByZXZlbnREZWZhdWx0KCksdGhpcy5pc09wZW5lZD0hMSl9aGFuZGxlU2VhcmNoS2V5ZG93bihUKXsoVC5rZXk9PT0iQXJyb3dEb3duInx8VC5rZXk9PT0iQXJyb3dVcCJ8fFQua2V5PT09IkVudGVyIikmJnRoaXMuaGFuZGxlS2V5RG93bihUKX1oYW5kbGVTZWxlY3RlZEJveEtleWRvd24oVCl7dGhpcy5kaXNhYmxlZHx8KFQua2V5PT09IkVudGVyInx8VC5rZXk9PT0iICI/KFQucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZVNlbGVjdGlvbkJveCgpKTpULmtleT09PSJBcnJvd0Rvd24ifHxULmtleT09PSJBcnJvd1VwIj8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNPcGVuZWR8fHRoaXMudG9nZ2xlU2VsZWN0aW9uQm94KCkpOlQua2V5PT09IkVzY2FwZSImJihULnByZXZlbnREZWZhdWx0KCksdGhpcy5pc09wZW5lZCYmKHRoaXMuaXNPcGVuZWQ9ITEpKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXRWYWx1ZShUKXt0aGlzLnNlbGVjdGVkT3B0aW9uPVR9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9c3RhdGlje0MyKGksYSl9fTtyZXR1cm4gRT1pfSkoKX0pO3ZhciBwdXQsaHV0PWIoKCk9Pnt1ZSgpO0JxKCk7bTIoKTtwdXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1zaGVsbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMzJweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDExNjBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7CiAgICAgICAgICAuZGVtby1ncmlkLS10d28gewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAuZGVtby1zdGFjayB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMThweDsKICAgICAgICB9CgogICAgICAgIC5kZW1vLW5vdGUgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDkwJSkiLCJoc2woMjE1IDIwJSAyNiUpIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTMgMTAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyNSUgMzIlKSIsImhzbCgyMTUgMjAlIDgyJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41NTsKICAgICAgICB9CgogICAgICAgIC5kZW1vLW5vdGUgc3Ryb25nIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNDUlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zaGVsbCI+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7Ik1vZGVybiBmaWxlIHVwbG9hZGVyIn0KICAgICAgICAuc3VidGl0bGU9JHsiU2hhZGNuLWluc3BpcmVkIGxheW91dCB3aXRoIGRyYWcgJiBkcm9wLCBwcmV2aWV3cyBhbmQgdmFsaWRhdGlvbiJ9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWdyaWQgZGVtby1ncmlkLS10d28iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zdGFjayI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAubGFiZWw9JHsiQXR0YWNobWVudHMifQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJVcGxvYWQgc3VwcG9ydGluZyBkb2N1bWVudHMgZm9yIHlvdXIgcmVxdWVzdCJ9CiAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qLC5wZGYsLnppcCJ9CiAgICAgICAgICAgICAgLm1heFNpemU9JHsxMCoxMDI0KjEwMjR9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtZmlsZXVwbG9hZD4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAubGFiZWw9JHsiQnJhbmQgYXNzZXRzIn0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXBsb2FkIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXJ5IChKUEcvUE5HKSJ9CiAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS9qcGVnLGltYWdlL3BuZyJ9CiAgICAgICAgICAgICAgLm11bHRpcGxlPSR7ITF9CiAgICAgICAgICAgICAgLm1heFNpemU9JHs1KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAuYnV0dG9uVGV4dD0keyJTZWxlY3QgY292ZXIgaW1hZ2UifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXN0YWNrIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgIC5sYWJlbD0keyJBdWRpbyB1cGxvYWRzIn0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2hhcmUgcG9kY2FzdCBkcmFmdHMgKE1QMy9XQVYsIG1heCAyNU1CIGVhY2gpIn0KICAgICAgICAgICAgICAuYWNjZXB0PSR7ImF1ZGlvLyoifQogICAgICAgICAgICAgIC5tYXhTaXplPSR7MjUqMTAyNCoxMDI0fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIGV4YW1wbGUifQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJVcGxvYWRlciBpcyBkaXNhYmxlZCB3aGlsZSBtb2RlcmF0aW9uIGlzIHBlbmRpbmcifQogICAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiRm9ybSBpbnRlZ3JhdGlvbiJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkNvbWJpbmUgZmlsZSB1cGxvYWRzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIERFRVMgZm9ybSBlY29zeXN0ZW0ifQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0IG5hbWUifQogICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkhvdyBzaG91bGQgd2UgcmVmZXIgdG8gdGhpcyBwcm9qZWN0IGludGVybmFsbHk/In0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmtleT0keyJwcm9qZWN0TmFtZSJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ29udGFjdCBlbWFpbCJ9CiAgICAgICAgICAgICAgICAuaW5wdXRUeXBlPSR7ImVtYWlsIn0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmtleT0keyJjb250YWN0RW1haWwifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IlN0YXRlbWVudCBvZiB3b3JrIn0KICAgICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJVcGxvYWQgYSBzaWduZWQgc3RhdGVtZW50IG9mIHdvcmsgKFBERiwgbWF4IDE1TUIpIn0KICAgICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJhcHBsaWNhdGlvbi9wZGYifQogICAgICAgICAgICAgICAgLm1heFNpemU9JHsxNSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgICAubXVsdGlwbGU9JHshMX0KICAgICAgICAgICAgICAgIC5rZXk9JHsic293In0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJDcmVhdGl2ZSByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJPcHRpb25hbC4gVXBsb2FkIHVwIHRvIGZpdmUgdmlzdWFsIHJlZmVyZW5jZXMifQogICAgICAgICAgICAgICAgLmFjY2VwdD0keyJpbWFnZS8qIn0KICAgICAgICAgICAgICAgIC5tYXhGaWxlcz0kezV9CiAgICAgICAgICAgICAgICAubWF4U2l6ZT0kezgqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLmtleT0keyJyZWZlcmVuY2VzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJOb3RlcyJ9CiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIG9wdGlvbmFsIGNvbnRleHQgZm9yIHJldmlld2VycyJ9CiAgICAgICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgICAgICAgIC5rZXk9JHsibm90ZXMifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiU3VibWl0IGJyaWVmaW5nIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGVlcy1mb3JtPgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tbm90ZSI+CiAgICAgICAgICAgIDxzdHJvbmc+R29vZCB0byBrbm93Ojwvc3Ryb25nPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkRyYWcgJiBkcm9wIGhpZ2hsaWdodHMgdGhlIGRyb3B6b25lIGFuZCBzdXBwb3J0cyBrZXlib2FyZCBhY3RpdmF0aW9uLjwvbGk+CiAgICAgICAgICAgICAgPGxpPkFjY2VwdGVkIGZpbGUgdHlwZXMgYXJlIHN1bW1hcmlzZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSA8Y29kZT5hY2NlcHQ8L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgogICAgICAgICAgICAgIDxsaT5JbWFnZSB1cGxvYWRzIHNob3cgbGl2ZSBwcmV2aWV3cyBnZW5lcmF0ZWQgdmlhIDxjb2RlPlVSTC5jcmVhdGVPYmplY3RVUkw8L2NvZGU+LjwvbGk+CiAgICAgICAgICAgICAgPGxpPkZpbGUgc2l6ZSBhbmQgZmlsZS1jb3VudCBsaW1pdHMgc3VyZmFjZSBpbmxpbmUgdmFsaWRhdGlvbiBtZXNzYWdlcy48L2xpPgogICAgICAgICAgICAgIDxsaT5UaGUgY29tcG9uZW50IHN0YXlzIGNvbXBhdGlibGUgd2l0aCA8Y29kZT5kZWVzLWZvcm08L2NvZGU+IHZhbHVlIGFjY2Vzc29ycy48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciB1dXQsZnV0PWIoKCk9Pnt1ZSgpO0MxKCk7dXV0PVtoLmRlZmF1bHRTdHlsZXMsLi4uWGUuYmFzZVN0eWxlcyxRYAogICAgOmhvc3QgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQoKCiAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAuZHJvcHpvbmUgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIGJvcmRlcjogMS41cHggZGFzaGVkICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA4MCUpIiwiaHNsKDIxNyAyMCUgMjUlKSIpfTsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfTsKICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4ycyBlYXNlOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgLmRyb3B6b25lOmZvY3VzLXZpc2libGUgewogICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMCUgMTIlKSIpfSwKICAgICAgICAwIDAgMCA0cHggJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSAvIDAuNSkiLCJoc2woMjEzIDkzJSA2OCUgLyAwLjQpIil9OwogICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAuZHJvcHpvbmUtLWFjdGl2ZSB7CiAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBib3gtc2hhZG93OiAwIDEycHggMzJweCAke2guYmRUaGVtZSgicmdiYSgxNSwgMjMsIDQyLCAwLjEyKSIsInJnYmEoMCwgMCwgMCwgMC4zNSkiKX07CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUgLyAwLjA2KSIsImhzbCgyMTMgOTMlIDY4JSAvIDAuMTIpIil9OwogICAgfQoKICAgIC5kcm9wem9uZS0taGFzLWZpbGVzIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk5JSkiLCJoc2woMjE1IDIwJSAxMSUpIil9OwogICAgfQoKICAgIC5kcm9wem9uZS0tZGlzYWJsZWQgewogICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgfQoKICAgIC5kcm9wem9uZV9fYm9keSB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMTZweDsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2ljb24gewogICAgICB3aWR0aDogNDhweDsKICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICBib3JkZXItcmFkaXVzOiAxNnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSAvIDAuMTIpIiwiaHNsKDIxMyA5MyUgNjglIC8gMC4xMikiKX07CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLmRyb3B6b25lX19pY29uIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMjJweDsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2xvYWRlciB7CiAgICAgIHdpZHRoOiAyMHB4OwogICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgxNSwgMjMsIDQyLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBsb2FkZXItc3BpbiAwLjZzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2NvbnRlbnQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDRweDsKICAgICAgbWluLXdpZHRoOiAwOwogICAgfQoKICAgIC5kcm9wem9uZV9faGVhZGxpbmUgewogICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMiA0NyUgMTElKSIsImhzbCgyMTAgMjAlIDk2JSkiKX07CiAgICB9CgogICAgLmRyb3B6b25lX19zdWJsaW5lIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ2JSkiLCJoc2woMjE1IDE2JSA3MCUpIil9OwogICAgfQoKICAgIC5kcm9wem9uZV9fYnJvd3NlIHsKICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBiYWNrZ3JvdW5kOiBub25lOwogICAgICBwYWRkaW5nOiAwOwogICAgICBtYXJnaW4tbGVmdDogNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2Jyb3dzZTpob3ZlciB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgfQoKICAgIC5kcm9wem9uZV9fYnJvd3NlOmRpc2FibGVkIHsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgb3BhY2l0eTogMC42OwogICAgfQoKICAgIC5kcm9wem9uZV9fbWV0YSB7CiAgICAgIG1hcmdpbi10b3A6IDE0cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA1MCUpIiwiaHNsKDIxNSAxNiUgNzIlKSIpfTsKICAgIH0KCiAgICAuZHJvcHpvbmVfX21ldGEgc3BhbiB7CiAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDk1JSkiLCJoc2woMjEzIDkzJSAxOCUpIil9OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgOTAlKSIsImhzbCgyMTMgOTMlIDI0JSkiKX07CiAgICB9CgogICAgLmZpbGUtbGlzdCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgcGFkZGluZy10b3A6IDIwcHg7CiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgOTAlKSIsImhzbCgyMTMgOTMlIDI0JSkiKX07CiAgICB9CgogICAgLmZpbGUtbGlzdF9faGVhZGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDY4JSkiKX07CiAgICB9CgogICAgLmZpbGUtbGlzdF9fY2xlYXIgewogICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBwYWRkaW5nOiAwOwogICAgfQoKICAgIC5maWxlLWxpc3RfX2NsZWFyOmhvdmVyIHsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICB9CgogICAgLmZpbGUtbGlzdF9faXRlbXMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDEycHg7CiAgICB9CgogICAgLmZpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlIC8gMC41KSIsImhzbCgyMTUgMjAlIDE2JSAvIDAuNSkiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjEzIDI3JSA5MiUpIiwiaHNsKDIxNyAyNSUgMjYlKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICB9CgogICAgLmZpbGUtcm93OmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUgLyAwLjgpIiwiaHNsKDIxNSAyMCUgMTYlIC8gMC44KSIpfTsKICAgIH0KCiAgICAuZmlsZS10aHVtYiB7CiAgICAgIHdpZHRoOiAzNnB4OwogICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDMyJSAxOCUpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLmZpbGUtdGh1bWIgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3MCUpIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDE4cHg7CiAgICAgIGhlaWdodDogMThweDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKCiAgICAudGh1bWItaW1hZ2UgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgIH0KCiAgICAuZmlsZS1tZXRhIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiA0cHg7CiAgICAgIG1pbi13aWR0aDogMDsKICAgIH0KCiAgICAuZmlsZS1uYW1lIHsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIgNDclIDExJSkiLCJoc2woMjEwIDIwJSA5NiUpIil9OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIH0KCiAgICAuZmlsZS1kZXRhaWxzIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ2JSkiLCJoc2woMjE1IDE2JSA3MCUpIil9OwogICAgfQoKICAgIC5maWxlLXNpemUgewogICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgfQoKICAgIC5maWxlLXR5cGUgewogICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDMyJSAyOCUpIil9OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ2JSkiLCJoc2woMjE1IDE2JSA3MCUpIil9OwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgIH0KCiAgICAuZmlsZS1hY3Rpb25zIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uIHsKICAgICAgd2lkdGg6IDI4cHg7CiAgICAgIGhlaWdodDogMjhweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDUyJSkiLCJoc2woMjE1IDE2JSA2OCUpIil9OwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyJSA1MCUgLyAwLjA4KSIsImhzbCgwIDYyJSAzMiUgLyAwLjE1KSIpfTsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MiUgNDYlKSIsImhzbCgwIDcwJSA3MCUpIil9OwogICAgfQoKICAgIC5yZW1vdmUtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7CiAgICB9CgogICAgLnJlbW92ZS1idXR0b24gZGVlcy1pY29uIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxNHB4OwogICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQoKICAgIC52YWxpZGF0aW9uLW1lc3NhZ2UgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIlIDQwJSkiLCJoc2woMCA3MCUgNjglKSIpfTsKICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIGxvYWRlci1zcGluIHsKICAgICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgIH0KICAgIH0KICBgXX0pO3ZhciBIcixuMixSeCxCcT1iKCgpPT57QzEoKTtodXQoKTtmdXQoKTtEdCgpO1RsKCk7dWUoKTtIcj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LG4yPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxSeD0oKCk9PntsZXQgdD1baGUoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpXSxlLGE9W10saSxyPVhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdO3ZhciBWPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgUj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHthdHRyaWJ1dGU6ITF9KV0sZD1bSigpXSxsPVtKKCldLHk9W0koe3R5cGU6U3RyaW5nfSldLHg9W0koe3R5cGU6U3RyaW5nfSldLEY9W0koe3R5cGU6Qm9vbGVhbn0pXSxOPVtJKHt0eXBlOk51bWJlcn0pXSxxPVtJKHt0eXBlOk51bWJlcn0pXSxFPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLEhyKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJ2YWx1ZSJpbiBVLGdldDpVPT5VLnZhbHVlLHNldDooVSxyZSk9PntVLnZhbHVlPXJlfX0sbWV0YWRhdGE6Un0sbixvKSxIcih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4ic3RhdGUiaW4gVSxnZXQ6VT0+VS5zdGF0ZSxzZXQ6KFUscmUpPT57VS5zdGF0ZT1yZX19LG1ldGFkYXRhOlJ9LGMscCksSHIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJpc0xvYWRpbmciaW4gVSxnZXQ6VT0+VS5pc0xvYWRpbmcsc2V0OihVLHJlKT0+e1UuaXNMb2FkaW5nPXJlfX0sbWV0YWRhdGE6Un0sZixnKSxIcih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJ1dHRvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJidXR0b25UZXh0ImluIFUsZ2V0OlU9PlUuYnV0dG9uVGV4dCxzZXQ6KFUscmUpPT57VS5idXR0b25UZXh0PXJlfX0sbWV0YWRhdGE6Un0sdixtKSxIcih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjY2VwdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VT0+ImFjY2VwdCJpbiBVLGdldDpVPT5VLmFjY2VwdCxzZXQ6KFUscmUpPT57VS5hY2NlcHQ9cmV9fSxtZXRhZGF0YTpSfSxNLFMpLEhyKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibXVsdGlwbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJtdWx0aXBsZSJpbiBVLGdldDpVPT5VLm11bHRpcGxlLHNldDooVSxyZSk9PntVLm11bHRpcGxlPXJlfX0sbWV0YWRhdGE6Un0sXyxrKSxIcih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJtYXhTaXplImluIFUsZ2V0OlU9PlUubWF4U2l6ZSxzZXQ6KFUscmUpPT57VS5tYXhTaXplPXJlfX0sbWV0YWRhdGE6Un0sTCxBKSxIcih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4ibWF4RmlsZXMiaW4gVSxnZXQ6VT0+VS5tYXhGaWxlcyxzZXQ6KFUscmUpPT57VS5tYXhGaWxlcz1yZX19LG1ldGFkYXRhOlJ9LEMseiksSHIodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uU3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJ2YWxpZGF0aW9uU3RhdGUiaW4gVSxnZXQ6VT0+VS52YWxpZGF0aW9uU3RhdGUsc2V0OihVLHJlKT0+e1UudmFsaWRhdGlvblN0YXRlPXJlfX0sbWV0YWRhdGE6Un0sVCwkKSxIcihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpSfSxudWxsLGEpLFY9aT1lLnZhbHVlLFImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Un0pfXN0YXRpYyBkZW1vPXB1dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9bjIodGhpcyxuLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoUil7dGhpcy4jZT1SfSN0PShuMih0aGlzLG8pLG4yKHRoaXMsYywiaWRsZSIpKTtnZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc3RhdGUoUil7dGhpcy4jdD1SfSNhPShuMih0aGlzLHApLG4yKHRoaXMsZiwhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaXNMb2FkaW5nKFIpe3RoaXMuI2E9Un0jaT0objIodGhpcyxnKSxuMih0aGlzLHYsIlNlbGVjdCBmaWxlcyIpKTtnZXQgYnV0dG9uVGV4dCgpe3JldHVybiB0aGlzLiNpfXNldCBidXR0b25UZXh0KFIpe3RoaXMuI2k9Un0jcj0objIodGhpcyxtKSxuMih0aGlzLE0sIiIpKTtnZXQgYWNjZXB0KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFjY2VwdChSKXt0aGlzLiNyPVJ9I3M9KG4yKHRoaXMsUyksbjIodGhpcyxfLCEwKSk7Z2V0IG11bHRpcGxlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG11bHRpcGxlKFIpe3RoaXMuI3M9Un0jbj0objIodGhpcyxrKSxuMih0aGlzLEwsMCkpO2dldCBtYXhTaXplKCl7cmV0dXJuIHRoaXMuI259c2V0IG1heFNpemUoUil7dGhpcy4jbj1SfSNvPShuMih0aGlzLEEpLG4yKHRoaXMsQywwKSk7Z2V0IG1heEZpbGVzKCl7cmV0dXJuIHRoaXMuI299c2V0IG1heEZpbGVzKFIpe3RoaXMuI289Un0jbD0objIodGhpcyx6KSxuMih0aGlzLFQsbnVsbCkpO2dldCB2YWxpZGF0aW9uU3RhdGUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgdmFsaWRhdGlvblN0YXRlKFIpe3RoaXMuI2w9Un0jYz0objIodGhpcywkKSwiIik7Z2V0IHZhbGlkYXRpb25NZXNzYWdlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IHZhbGlkYXRpb25NZXNzYWdlKFIpe3RoaXMuI2M9Un1wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwO2Ryb3BBcmVhPW51bGw7c3RhdGljIHN0eWxlcz11dXQ7cmVuZGVyKCl7bGV0IFI9dGhpcy5nZXRBY2NlcHRlZFN1bW1hcnkoKSxVPVt0aGlzLm11bHRpcGxlPyJNdWx0aXBsZSBmaWxlcyBzdXBwb3J0ZWQiOiJTaW5nbGUgZmlsZSBvbmx5Iix0aGlzLm1heFNpemU+MD9gTWF4ICR7dGhpcy5mb3JtYXRGaWxlU2l6ZSh0aGlzLm1heFNpemUpfWA6Ik5vIHNpemUgbGltaXQiXTtyZXR1cm4gUiYmVS5wdXNoKGBBY2NlcHRzICR7Un1gKSx3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbAogICAgICAgICAgLmxhYmVsPSR7dGhpcy5sYWJlbH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgID48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImRyb3B6b25lICR7dGhpcy5zdGF0ZT09PSJkcmFnT3ZlciI/ImRyb3B6b25lLS1hY3RpdmUiOiIifSAke3RoaXMuZGlzYWJsZWQ/ImRyb3B6b25lLS1kaXNhYmxlZCI6IiJ9ICR7dGhpcy52YWx1ZS5sZW5ndGg+MD8iZHJvcHpvbmUtLWhhcy1maWxlcyI6IiJ9IgogICAgICAgICAgcm9sZT0iYnV0dG9uIgogICAgICAgICAgdGFiaW5kZXg9JHt0aGlzLmRpc2FibGVkPy0xOjB9CiAgICAgICAgICBhcmlhLWRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIGFyaWEtbGFiZWw9JHtgU2VsZWN0IGZpbGVzJHtSP2AgKCR7Un0pYDoiIn1gfQogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVEcm9wem9uZUNsaWNrfQogICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZURyb3B6b25lS2V5ZG93bn0KICAgICAgICA+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgY2xhc3M9ImZpbGUtaW5wdXQiCiAgICAgICAgICAgIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IG9wYWNpdHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyB3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsgdG9wOiAwOyBsZWZ0OiAwOyBvdmVyZmxvdzogaGlkZGVuOyIKICAgICAgICAgICAgdHlwZT0iZmlsZSIKICAgICAgICAgICAgP211bHRpcGxlPSR7dGhpcy5tdWx0aXBsZX0KICAgICAgICAgICAgYWNjZXB0PSR7dGhpcy5hY2NlcHR8fCIifQogICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICBAY2hhbmdlPSR7dGhpcy5oYW5kbGVGaWxlSW5wdXRDaGFuZ2V9CiAgICAgICAgICAgIHRhYmluZGV4PSItMSIKICAgICAgICAgIC8+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkcm9wem9uZV9fYm9keSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3B6b25lX19pY29uIj4KICAgICAgICAgICAgICAke3RoaXMuaXNMb2FkaW5nP3dgPHNwYW4gY2xhc3M9ImRyb3B6b25lX19sb2FkZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+YDp3YDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZvbGRlck9wZW4iPjwvZGVlcy1pY29uPmB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkcm9wem9uZV9fY29udGVudCI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRyb3B6b25lX19oZWFkbGluZSI+JHt0aGlzLmJ1dHRvblRleHR8fCJTZWxlY3QgZmlsZXMifTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZHJvcHpvbmVfX3N1YmxpbmUiPgogICAgICAgICAgICAgICAgRHJhZyBhbmQgZHJvcCBmaWxlcyBoZXJlIG9yCiAgICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgICAgICAgY2xhc3M9ImRyb3B6b25lX19icm93c2UiCiAgICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQnJvd3NlQ2xpY2t9CiAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIGJyb3dzZQogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcHpvbmVfX21ldGEiPgogICAgICAgICAgICAke1UubWFwKHJlPT53YDxzcGFuPiR7cmV9PC9zcGFuPmApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke3RoaXMucmVuZGVyRmlsZUxpc3QoKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMudmFsaWRhdGlvbk1lc3NhZ2U/d2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiIGFyaWEtbGl2ZT0icG9saXRlIj4ke3RoaXMudmFsaWRhdGlvbk1lc3NhZ2V9PC9kaXY+YDp3YGB9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWxlTGlzdCgpe3JldHVybiB0aGlzLnZhbHVlLmxlbmd0aD09PTA/d2BgOndgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0X19oZWFkZXIiPgogICAgICAgICAgPHNwYW4+JHt0aGlzLnZhbHVlLmxlbmd0aH0gZmlsZSR7dGhpcy52YWx1ZS5sZW5ndGg9PT0xPyIiOiJzIn0gc2VsZWN0ZWQ8L3NwYW4+CiAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoPjA/d2A8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZpbGUtbGlzdF9fY2xlYXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xlYXJBbGx9PkNsZWFyICR7dGhpcy52YWx1ZS5sZW5ndGg+MT8iYWxsIjoiIn08L2J1dHRvbj5gOndgYH0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3RfX2l0ZW1zIj4KICAgICAgICAgICR7dGhpcy52YWx1ZS5tYXAoUj0+dGhpcy5yZW5kZXJGaWxlUm93KFIpKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbGVSb3coUil7bGV0IFU9dGhpcy5nZXRGaWxlVHlwZShSKSxyZT10aGlzLmNhblNob3dQcmV2aWV3KFIpP3RoaXMuZ2V0UHJldmlld1VybChSKTpudWxsO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJmaWxlLXJvdyAke1V9LWZpbGUiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtdGh1bWIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgICR7cmU/d2A8aW1nIGNsYXNzPSJ0aHVtYi1pbWFnZSIgc3JjPSR7cmV9IGFsdD0ke2BQcmV2aWV3IG9mICR7Ui5uYW1lfWB9PmA6d2A8ZGVlcy1pY29uIGljb249JHt0aGlzLmdldEZpbGVJY29uKFIpfT48L2RlZXMtaWNvbj5gfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbWV0YSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW5hbWUiIHRpdGxlPSR7Ui5uYW1lfT4ke1IubmFtZX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtZGV0YWlscyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmaWxlLXNpemUiPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZShSLnNpemUpfTwvc3Bhbj4KICAgICAgICAgICAgJHtVIT09ImZpbGUiP3dgPHNwYW4gY2xhc3M9ImZpbGUtdHlwZSI+JHtVfTwvc3Bhbj5gOndgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIHR5cGU9ImJ1dHRvbiIKICAgICAgICAgICAgY2xhc3M9InJlbW92ZS1idXR0b24iCiAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUZpbGUoUil9CiAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtgUmVtb3ZlICR7Ui5uYW1lfWB9CiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVGaWxlSW5wdXRDaGFuZ2U9YXN5bmMgUj0+e3RoaXMuaXNMb2FkaW5nPSExO2xldCBVPVIudGFyZ2V0LHJlPUFycmF5LmZyb20oVS5maWxlcz8/W10pO3JlLmxlbmd0aD4wJiZhd2FpdCB0aGlzLmFkZEZpbGVzKHJlKSxVLnZhbHVlPSIifTtoYW5kbGVEcm9wem9uZUNsaWNrPVI9Pnt0aGlzLmRpc2FibGVkfHxSLnRhcmdldC5jbG9zZXN0KCIuZHJvcHpvbmVfX2Jyb3dzZSwgLmZpbGUtbGlzdCIpfHx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKX07aGFuZGxlQnJvd3NlQ2xpY2s9Uj0+e3RoaXMuZGlzYWJsZWR8fChSLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3BlbkZpbGVTZWxlY3RvcigpKX07aGFuZGxlRHJvcHpvbmVLZXlkb3duPVI9Pnt0aGlzLmRpc2FibGVkfHwoUi5rZXk9PT0iRW50ZXIifHxSLmtleT09PSIgIikmJihSLnByZXZlbnREZWZhdWx0KCksdGhpcy5vcGVuRmlsZVNlbGVjdG9yKCkpfTtoYW5kbGVDbGVhckFsbD1SPT57Ui5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xlYXJBbGwoKX07aGFuZGxlRHJhZ0V2ZW50PWFzeW5jIFI9PntpZihSLnByZXZlbnREZWZhdWx0KCksUi5zdG9wUHJvcGFnYXRpb24oKSwhdGhpcy5kaXNhYmxlZCl7aWYoUi50eXBlPT09ImRyYWdlbnRlciJ8fFIudHlwZT09PSJkcmFnb3ZlciIpe1IuZGF0YVRyYW5zZmVyJiYoUi5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0iY29weSIpLHRoaXMuc3RhdGU9ImRyYWdPdmVyIjtyZXR1cm59aWYoUi50eXBlPT09ImRyYWdsZWF2ZSIpe2lmKCF0aGlzLmRyb3BBcmVhKXt0aGlzLnN0YXRlPSJpZGxlIjtyZXR1cm59bGV0IFU9dGhpcy5kcm9wQXJlYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7Y2xpZW50WDpyZT0wLGNsaWVudFk6aj0wfT1SOyhyZTw9VS5sZWZ0fHxyZT49VS5yaWdodHx8ajw9VS50b3B8fGo+PVUuYm90dG9tKSYmKHRoaXMuc3RhdGU9ImlkbGUiKTtyZXR1cm59aWYoUi50eXBlPT09ImRyb3AiKXt0aGlzLnN0YXRlPSJpZGxlIjtsZXQgVT1BcnJheS5mcm9tKFIuZGF0YVRyYW5zZmVyPy5maWxlcz8/W10pO1UubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMoVSl9fX07YXR0YWNoRHJvcExpc3RlbmVycygpe3RoaXMuZHJvcEFyZWEmJlsiZHJhZ2VudGVyIiwiZHJhZ292ZXIiLCJkcmFnbGVhdmUiLCJkcm9wIl0uZm9yRWFjaChSPT57dGhpcy5kcm9wQXJlYS5hZGRFdmVudExpc3RlbmVyKFIsdGhpcy5oYW5kbGVEcmFnRXZlbnQpfSl9ZGV0YWNoRHJvcExpc3RlbmVycygpe3RoaXMuZHJvcEFyZWEmJlsiZHJhZ2VudGVyIiwiZHJhZ292ZXIiLCJkcmFnbGVhdmUiLCJkcm9wIl0uZm9yRWFjaChSPT57dGhpcy5kcm9wQXJlYS5yZW1vdmVFdmVudExpc3RlbmVyKFIsdGhpcy5oYW5kbGVEcmFnRXZlbnQpfSl9cmViaW5kSW50ZXJhY3RpdmVFbGVtZW50cygpe2xldCBSPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRyb3B6b25lIik7UiE9PXRoaXMuZHJvcEFyZWEmJih0aGlzLmRldGFjaERyb3BMaXN0ZW5lcnMoKSx0aGlzLmRyb3BBcmVhPVIsdGhpcy5hdHRhY2hEcm9wTGlzdGVuZXJzKCkpfWZvcm1hdEZpbGVTaXplKFIpe2xldCBVPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXTtpZihSPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHJlPU1hdGgubWluKE1hdGguZmxvb3IoTWF0aC5sb2coUikvTWF0aC5sb2coMTAyNCkpLFUubGVuZ3RoLTEpLGo9Ui9NYXRoLnBvdygxMDI0LHJlKTtyZXR1cm5gJHtNYXRoLnJvdW5kKGoqMTAwKS8xMDB9ICR7VVtyZV19YH1nZXRGaWxlVHlwZShSKXtsZXQgVT1SLnR5cGUudG9Mb3dlckNhc2UoKTtyZXR1cm4gVS5zdGFydHNXaXRoKCJpbWFnZS8iKT8iaW1hZ2UiOlU9PT0iYXBwbGljYXRpb24vcGRmIj8icGRmIjpVLmluY2x1ZGVzKCJ3b3JkIil8fFUuaW5jbHVkZXMoImRvY3VtZW50Iik/ImRvYyI6VS5pbmNsdWRlcygic2hlZXQiKXx8VS5pbmNsdWRlcygiZXhjZWwiKT8ic3ByZWFkc2hlZXQiOlUuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpfHxVLmluY2x1ZGVzKCJwb3dlcnBvaW50Iik/InByZXNlbnRhdGlvbiI6VS5zdGFydHNXaXRoKCJ2aWRlby8iKT8idmlkZW8iOlUuc3RhcnRzV2l0aCgiYXVkaW8vIik/ImF1ZGlvIjpVLmluY2x1ZGVzKCJ6aXAiKXx8VS5pbmNsdWRlcygiY29tcHJlc3NlZCIpPyJhcmNoaXZlIjoiZmlsZSJ9Z2V0RmlsZUljb24oUil7bGV0IFU9dGhpcy5nZXRGaWxlVHlwZShSKTtyZXR1cm57aW1hZ2U6Imx1Y2lkZTpGaWxlSW1hZ2UiLHBkZjoibHVjaWRlOkZpbGVUZXh0Iixkb2M6Imx1Y2lkZTpGaWxlVGV4dCIsc3ByZWFkc2hlZXQ6Imx1Y2lkZTpGaWxlU3ByZWFkc2hlZXQiLHByZXNlbnRhdGlvbjoibHVjaWRlOkZpbGVCYXJDaGFydCIsdmlkZW86Imx1Y2lkZTpGaWxlVmlkZW8iLGF1ZGlvOiJsdWNpZGU6RmlsZUF1ZGlvIixhcmNoaXZlOiJsdWNpZGU6RmlsZUFyY2hpdmUiLGZpbGU6Imx1Y2lkZTpGaWxlIn1bVV0/PyJsdWNpZGU6RmlsZSJ9Y2FuU2hvd1ByZXZpZXcoUil7cmV0dXJuIFIudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSYmUi5zaXplPDUqMTAyNCoxMDI0fXZhbGlkYXRlRmlsZShSKXtpZih0aGlzLm1heFNpemU+MCYmUi5zaXplPnRoaXMubWF4U2l6ZSlyZXR1cm4gdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gRmlsZSAiJHtSLm5hbWV9IiBleGNlZWRzIHRoZSBtYXhpbXVtIHNpemUgb2YgJHt0aGlzLmZvcm1hdEZpbGVTaXplKHRoaXMubWF4U2l6ZSl9YCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsITE7aWYodGhpcy5hY2NlcHQpe2xldCBVPXRoaXMuYWNjZXB0LnNwbGl0KCIsIikubWFwKHJlPT5yZS50cmltKCkpLmZpbHRlcihyZT0+cmUubGVuZ3RoPjApO2lmKFUubGVuZ3RoPjApe2xldCByZT0hMTtmb3IobGV0IGogb2YgVSlpZihqLnN0YXJ0c1dpdGgoIi4iKSl7aWYoUi5uYW1lLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoai50b0xvd2VyQ2FzZSgpKSl7cmU9ITA7YnJlYWt9fWVsc2UgaWYoai5lbmRzV2l0aCgiLyoiKSl7bGV0IG1lPWouc2xpY2UoMCwtMik7aWYoUi50eXBlLnN0YXJ0c1dpdGgobWUpKXtyZT0hMDticmVha319ZWxzZSBpZihSLnR5cGU9PT1qKXtyZT0hMDticmVha31pZighcmUpcmV0dXJuIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YEZpbGUgdHlwZSBub3QgYWNjZXB0ZWQuIEFsbG93ZWQ6ICR7VS5qb2luKCIsICIpfWAsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiLCExfX1yZXR1cm4hMH1nZXRQcmV2aWV3VXJsKFIpe2xldCBVPXRoaXMucHJldmlld1VybE1hcC5nZXQoUik7cmV0dXJuIFV8fChVPVVSTC5jcmVhdGVPYmplY3RVUkwoUiksdGhpcy5wcmV2aWV3VXJsTWFwLnNldChSLFUpKSxVfXJlbGVhc2VQcmV2aWV3KFIpe2xldCBVPXRoaXMucHJldmlld1VybE1hcC5nZXQoUik7VSYmKFVSTC5yZXZva2VPYmplY3RVUkwoVSksdGhpcy5wcmV2aWV3VXJsTWFwLmRlbGV0ZShSKSl9Z2V0QWNjZXB0ZWRTdW1tYXJ5KCl7aWYoIXRoaXMuYWNjZXB0KXJldHVybiBudWxsO2xldCBSPUFycmF5LmZyb20obmV3IFNldCh0aGlzLmFjY2VwdC5zcGxpdCgiLCIpLm1hcChVPT5VLnRyaW0oKSkuZmlsdGVyKFU9PlUubGVuZ3RoPjApLm1hcChVPT50aGlzLmZvcm1hdEFjY2VwdFRva2VuKFUpKSkpLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gUi5sZW5ndGg9PT0wP251bGw6Ui5sZW5ndGg9PT0xP1JbMF06Ui5sZW5ndGg9PT0yP2Ake1JbMF19LCAke1JbMV19YDpgJHtSLnNsaWNlKDAsMikuam9pbigiLCAiKX1cdTIwMjZgfWZvcm1hdEFjY2VwdFRva2VuKFIpe2lmKFI9PT0iKi8qIilyZXR1cm4iQWxsIGZpbGVzIjtpZihSLmVuZHNXaXRoKCIvKiIpKXtsZXQgaj1SLnNwbGl0KCIvIilbMF07cmV0dXJuIGo/YCR7ai5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2ouc2xpY2UoMSl9IGZpbGVzYDoiQWxsIGZpbGVzIn1yZXR1cm4gUi5zdGFydHNXaXRoKCIuIik/Ui5zbGljZSgxKS50b1VwcGVyQ2FzZSgpOlIuaW5jbHVkZXMoInBkZiIpPyJQREYiOlIuaW5jbHVkZXMoInppcCIpPyJaSVAiOlIuaW5jbHVkZXMoImpzb24iKT8iSlNPTiI6Ui5pbmNsdWRlcygibXN3b3JkIik/IkRPQyI6Ui5pbmNsdWRlcygid29yZHByb2Nlc3NpbmdtbCIpPyJET0NYIjpSLmluY2x1ZGVzKCJleGNlbCIpPyJYTFMiOlIuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpPyJQUFQiOihSLnNwbGl0KCIvIikucG9wKCk/P1IpLnRvVXBwZXJDYXNlKCl9YXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl7dGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9Zmlyc3RVcGRhdGVkKFIpe3N1cGVyLmZpcnN0VXBkYXRlZChSKSx0aGlzLmF0dGFjaExpZmVjeWNsZUxpc3RlbmVycygpfXVwZGF0ZWQoUil7c3VwZXIudXBkYXRlZChSKSxSLmhhcygidmFsdWUiKSYmdGhpcy52YWxpZGF0ZSgpLHRoaXMucmViaW5kSW50ZXJhY3RpdmVFbGVtZW50cygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5kZXRhY2hEcm9wTGlzdGVuZXJzKCksdGhpcy52YWx1ZS5mb3JFYWNoKFI9PnRoaXMucmVsZWFzZVByZXZpZXcoUikpLHRoaXMucHJldmlld1VybE1hcD1uZXcgV2Vha01hcCxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIG9wZW5GaWxlU2VsZWN0b3IoKXtpZih0aGlzLmRpc2FibGVkfHx0aGlzLmlzTG9hZGluZylyZXR1cm47dGhpcy5pc0xvYWRpbmc9ITA7bGV0IFI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZmlsZS1pbnB1dCIpO2lmKCFSKXt0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59bGV0IFU9KCk9PntzZXRUaW1lb3V0KCgpPT57KCFSLmZpbGVzfHxSLmZpbGVzLmxlbmd0aD09PTApJiYodGhpcy5pc0xvYWRpbmc9ITEpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsVSl9LDMwMCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsVSksUi5jbGljaygpfXJlbW92ZUZpbGUoUil7bGV0IFU9dGhpcy52YWx1ZS5pbmRleE9mKFIpO1U+LTEmJih0aGlzLnJlbGVhc2VQcmV2aWV3KFIpLHRoaXMudmFsdWUuc3BsaWNlKFUsMSksdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLHRoaXMudmFsaWRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Y2xlYXJBbGwoKXtsZXQgUj1bLi4udGhpcy52YWx1ZV07dGhpcy52YWx1ZT1bXSxSLmZvckVhY2goVT0+dGhpcy5yZWxlYXNlUHJldmlldyhVKSksdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLHRoaXMudmFsaWRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmJ1dHRvblRleHQ9IlNlbGVjdCBmaWxlcyJ9YXN5bmMgdXBkYXRlVmFsdWUoUil7bGV0IFU9Ui50YXJnZXQ7dGhpcy52YWx1ZT1BcnJheS5mcm9tKFUuZmlsZXM/P1tdKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1zZXRWYWx1ZShSKXt0aGlzLnZhbHVlLmZvckVhY2goVT0+dGhpcy5yZWxlYXNlUHJldmlldyhVKSksdGhpcy52YWx1ZT1SLFIubGVuZ3RoPjA/dGhpcy5idXR0b25UZXh0PXRoaXMubXVsdGlwbGU/IkFkZCBtb3JlIGZpbGVzIjoiUmVwbGFjZSBmaWxlIjp0aGlzLmJ1dHRvblRleHQ9IlNlbGVjdCBmaWxlcyIsdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLHRoaXMudmFsaWRhdGUoKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfWFzeW5jIGFkZEZpbGVzKFIpe2xldCBVPVtdO2ZvcihsZXQgcmUgb2YgUil0aGlzLnZhbGlkYXRlRmlsZShyZSkmJlUucHVzaChyZSk7aWYoVS5sZW5ndGg9PT0wKXt0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59aWYodGhpcy5tYXhGaWxlcz4wJiZ0aGlzLnZhbHVlLmxlbmd0aCtVLmxlbmd0aD50aGlzLm1heEZpbGVzKXtsZXQgaj10aGlzLm1heEZpbGVzLXRoaXMudmFsdWUubGVuZ3RoO2lmKGo8PTApe3RoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YE1heGltdW0gJHt0aGlzLm1heEZpbGVzfSBmaWxlcyBhbGxvd2VkYCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsdGhpcy5pc0xvYWRpbmc9ITE7cmV0dXJufVUuc3BsaWNlKGopLHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9YE9ubHkgJHtqfSBtb3JlIGZpbGUocykgY2FuIGJlIGFkZGVkYCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0id2FybiJ9IXRoaXMubXVsdGlwbGUmJlUubGVuZ3RoPjA/KHRoaXMudmFsdWUuZm9yRWFjaChyZT0+dGhpcy5yZWxlYXNlUHJldmlldyhyZSkpLHRoaXMudmFsdWU9W1VbMF1dKTp0aGlzLnZhbHVlLnB1c2goLi4uVSksdGhpcy52YWxpZGF0aW9uTWVzc2FnZT0iIix0aGlzLnZhbGlkYXRpb25TdGF0ZT1udWxsLHRoaXMucmVxdWVzdFVwZGF0ZSgidmFsdWUiKSxhd2FpdCB0aGlzLnZhbGlkYXRlKCksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5pc0xvYWRpbmc9ITEsdGhpcy52YWx1ZS5sZW5ndGg+MD90aGlzLmJ1dHRvblRleHQ9dGhpcy5tdWx0aXBsZT8iQWRkIG1vcmUgZmlsZXMiOiJSZXBsYWNlIGZpbGUiOnRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIn1hc3luYyB2YWxpZGF0ZSgpe2lmKHRoaXMudmFsaWRhdGlvbk1lc3NhZ2U9IiIsdGhpcy5yZXF1aXJlZCYmdGhpcy52YWx1ZS5sZW5ndGg9PT0wKXJldHVybiB0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsdGhpcy52YWxpZGF0aW9uTWVzc2FnZT0iUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgZmlsZSIsITE7Zm9yKGxldCBSIG9mIHRoaXMudmFsdWUpaWYoIXRoaXMudmFsaWRhdGVGaWxlKFIpKXJldHVybiExO3JldHVybiB0aGlzLnZhbGlkYXRpb25TdGF0ZT10aGlzLnZhbHVlLmxlbmd0aD4wPyJ2YWxpZCI6bnVsbCwhMH1zdGF0aWN7bjIoaSxhKX19O3JldHVybiBWPWl9KSgpfSk7dmFyIEhxPWIoKCk9PntCcSgpfSk7ZnVuY3Rpb24ganEodCxlKXtpZihlPT09dm9pZCAwJiYoZT17YWxsb3dRUklCQU46ITB9KSx0PT1udWxsKXJldHVybiExO3ZhciBhPW5ldyBSZWdFeHAoIl5bMC05XXsyfSQiLCIiKSxpPXQuc2xpY2UoMCwyKSxyPWJpW2ldO3JldHVybiByPT09dm9pZCAwfHxyLmJiYW5fcmVnZXhwPT09dm9pZCAwfHxyLmJiYW5fcmVnZXhwPT09bnVsbHx8ci5jaGFycz09PXZvaWQgMD8hMTpyLmNoYXJzPT09dC5sZW5ndGgmJmEudGVzdCh0LnNsaWNlKDIsNCkpJiZIanQodC5zbGljZSg0KSxpKSYmZ3V0KHQpJiYoZS5hbGxvd1FSSUJBTnx8IW11dCh0KSl9ZnVuY3Rpb24gUUoxKHQsZSl7ZT09PXZvaWQgMCYmKGU9e2FsbG93UVJJQkFOOiEwfSk7dmFyIGE9e2Vycm9yQ29kZXM6W10sdmFsaWQ6ITB9O2lmKHQhPW51bGwmJnQhPT0iIil7dmFyIGk9YmlbdC5zbGljZSgwLDIpXTtpZighaXx8IShpLmJiYW5fcmVnZXhwfHxpLmNoYXJzKSlyZXR1cm4gYS52YWxpZD0hMSxhLmVycm9yQ29kZXMucHVzaChHaS5Ob0lCQU5Db3VudHJ5KSxhO2kmJmkuY2hhcnMmJmkuY2hhcnMhPT10Lmxlbmd0aCYmKGEudmFsaWQ9ITEsYS5lcnJvckNvZGVzLnB1c2goR2kuV3JvbmdCQkFOTGVuZ3RoKSksaSYmaS5iYmFuX3JlZ2V4cCYmIXFxKHQuc2xpY2UoNCksaS5iYmFuX3JlZ2V4cCkmJihhLnZhbGlkPSExLGEuZXJyb3JDb2Rlcy5wdXNoKEdpLldyb25nQkJBTkZvcm1hdCkpLGkmJmkuYmJhbl92YWxpZGF0aW9uX2Z1bmMmJiFpLmJiYW5fdmFsaWRhdGlvbl9mdW5jKHQuc2xpY2UoNCkpJiYoYS52YWxpZD0hMSxhLmVycm9yQ29kZXMucHVzaChHaS5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW0pKTt2YXIgcj1uZXcgUmVnRXhwKCJeWzAtOV17Mn0kIiwiIik7ci50ZXN0KHQuc2xpY2UoMiw0KSl8fChhLnZhbGlkPSExLGEuZXJyb3JDb2Rlcy5wdXNoKEdpLkNoZWNrc3VtTm90TnVtYmVyKSksKGEuZXJyb3JDb2Rlcy5pbmRleE9mKEdpLldyb25nQkJBTkZvcm1hdCkhPT0tMXx8IWd1dCh0KSkmJihhLnZhbGlkPSExLGEuZXJyb3JDb2Rlcy5wdXNoKEdpLldyb25nSUJBTkNoZWNrc3VtKSksIWUuYWxsb3dRUklCQU4mJm11dCh0KSYmKGEudmFsaWQ9ITEsYS5lcnJvckNvZGVzLnB1c2goR2kuUVJJQkFOTm90QWxsb3dlZCkpfWVsc2UgYS52YWxpZD0hMSxhLmVycm9yQ29kZXMucHVzaChHaS5Ob0lCQU5Qcm92aWRlZCk7cmV0dXJuIGF9ZnVuY3Rpb24gSGp0KHQsZSl7aWYodD09bnVsbHx8ZT09PXZvaWQgMHx8ZT09PW51bGwpcmV0dXJuITE7dmFyIGE9YmlbZV07cmV0dXJuIGE9PW51bGx8fGEuYmJhbl9yZWdleHA9PT12b2lkIDB8fGEuYmJhbl9yZWdleHA9PT1udWxsfHxhLmNoYXJzPT09dm9pZCAwfHxhLmNoYXJzPT09bnVsbD8hMTphLmNoYXJzLTQ9PT10Lmxlbmd0aCYmcXEodCxhLmJiYW5fcmVnZXhwKT9hLmJiYW5fdmFsaWRhdGlvbl9mdW5jP2EuYmJhbl92YWxpZGF0aW9uX2Z1bmModC5yZXBsYWNlKC9bXHMuXSsvZywiIikpOiEwOiExfWZ1bmN0aW9uIEpKMSh0KXtpZih0IT1udWxsKXt2YXIgZT1iaVt0XTtpZihlIT09dm9pZCAwKXJldHVybiBlLlNFUEE/ZS5TRVBBOiExfXJldHVybiExfWZ1bmN0aW9uIG11dCh0KXtpZih0PT1udWxsKXJldHVybiExO3ZhciBlPXQuc2xpY2UoMCwyKSxhPVsiTEkiLCJDSCJdO2lmKCFhLmluY2x1ZGVzKGUpKXJldHVybiExO3ZhciBpPW5ldyBSZWdFeHAoIl4zWzAtMV17MX1bMC05XXszfSQiLCIiKTtyZXR1cm4gaS50ZXN0KHQuc2xpY2UoNCw5KSl9ZnVuY3Rpb24gZWUyKHQpe3ZhciBlPVZxKHQuYmJhbil8fCIiO2lmKHQuY291bnRyeUNvZGU9PT1udWxsfHx0LmNvdW50cnlDb2RlPT09dm9pZCAwKXJldHVybiBudWxsO3ZhciBhPWJpW3QuY291bnRyeUNvZGVdO2lmKGUhPT0iIiYmYSE9PXZvaWQgMCYmYS5jaGFycyYmYS5jaGFycyE9PW51bGwmJmEuY2hhcnM9PT1lLmxlbmd0aCs0JiZhLmJiYW5fcmVnZXhwJiZhLmJiYW5fcmVnZXhwIT09bnVsbCYmcXEoZSxhLmJiYW5fcmVnZXhwKSl7dmFyIGk9cWp0KHQuY291bnRyeUNvZGUrIjAwIitlKTtyZXR1cm4gdC5jb3VudHJ5Q29kZSsoIjAiKyg5OC1pKSkuc2xpY2UoLTIpK2V9cmV0dXJuIG51bGx9ZnVuY3Rpb24gdGUyKHQpe3ZhciBlPXt9LGE9VnEodCk7aWYoZS5pYmFuPWF8fHQsYSYmanEoYSkpe2UuYmJhbj1hLnNsaWNlKDQpLGUuY291bnRyeUNvZGU9YS5zbGljZSgwLDIpLGUudmFsaWQ9ITA7dmFyIGk9YmlbZS5jb3VudHJ5Q29kZV07aWYoaS5hY2NvdW50X2luZGVudGlmaWVyKXt2YXIgcj1pLmFjY291bnRfaW5kZW50aWZpZXIuc3BsaXQoIi0iKSxzPXBhcnNlSW50KHJbMF0pLG49cGFyc2VJbnQoclsxXSk7ZS5hY2NvdW50TnVtYmVyPWUuaWJhbi5zbGljZShzLG4rMSl9aWYoaS5iYW5rX2lkZW50aWZpZXIpe3ZhciByPWkuYmFua19pZGVudGlmaWVyLnNwbGl0KCItIikscz1wYXJzZUludChyWzBdKSxuPXBhcnNlSW50KHJbMV0pO2UuYmFua0lkZW50aWZpZXI9ZS5iYmFuLnNsaWNlKHMsbisxKX1pZihpLmJyYW5jaF9pbmRlbnRpZmllcil7dmFyIHI9aS5icmFuY2hfaW5kZW50aWZpZXIuc3BsaXQoIi0iKSxzPXBhcnNlSW50KHJbMF0pLG49cGFyc2VJbnQoclsxXSk7ZS5icmFuY2hJZGVudGlmaWVyPWUuYmJhbi5zbGljZShzLG4rMSl9fWVsc2UgZS52YWxpZD0hMTtyZXR1cm4gZX1mdW5jdGlvbiBxcSh0LGUpe3ZhciBhPW5ldyBSZWdFeHAoZSwiIik7cmV0dXJuIGEudGVzdCh0KX1mdW5jdGlvbiBWcSh0KXtyZXR1cm4gdHlwZW9mIHQhPSJzdHJpbmciP251bGw6dC5yZXBsYWNlKC9bLVwgXS9nLCIiKS50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIFVxKHQsZSl7aWYodHlwZW9mIHQhPSJzdHJpbmciKXJldHVybiBudWxsO2U9PW51bGwmJihlPSIgIik7dmFyIGE9VnEodCk7cmV0dXJuIGE9PT1udWxsP251bGw6YS5yZXBsYWNlKC8oLns0fSkoPyEkKS9nLCIkMSIrZSl9ZnVuY3Rpb24gZ3V0KHQpe3ZhciBlPXQuc2xpY2UoMCwyKSxhPXBhcnNlSW50KHQuc2xpY2UoMiw0KSwxMCksaT10LnNsaWNlKDQpLHI9YnV0KCIiLmNvbmNhdChpKS5jb25jYXQoZSwiMDAiKSkscz1CeChyKTtyZXR1cm4gOTgtcz09PWF9ZnVuY3Rpb24gYnV0KHQpe3JldHVybiB0LnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oZSl7dmFyIGE9ZS5jaGFyQ29kZUF0KDApO3JldHVybiBhPj02NT8oYS01NSkudG9TdHJpbmcoKTplfSkuam9pbigiIil9ZnVuY3Rpb24gcWp0KHQpe3JldHVybiBCeChidXQodC5zbGljZSg0KSt0LnNsaWNlKDAsNCkpKX1mdW5jdGlvbiBhZTIoKXt2YXIgdD17fTtmb3IodmFyIGUgaW4gYmkpe3ZhciBhPWJpW2VdO3RbZV09e2NoYXJzOmEuY2hhcnN8fG51bGwsYmJhbl9yZWdleHA6YS5iYmFuX3JlZ2V4cHx8bnVsbCxJQkFOUmVnaXN0cnk6YS5JQkFOUmVnaXN0cnl8fCExLFNFUEE6YS5TRVBBfHwhMX19cmV0dXJuIHR9ZnVuY3Rpb24gVmp0KHQpe2lmKCF0KXJldHVybiExO3ZhciBlPW5ldyBSZWdFeHAoIl5bYS16QS1aXXs2fVthLXpBLVowLTldezJ9KFthLXpBLVowLTldezN9KT8kIiwiIiksYT1iaVt0LnRvVXBwZXJDYXNlKCkuc2xpY2UoNCw2KV07cmV0dXJuIGUudGVzdCh0KSYmYSE9PXZvaWQgMH1mdW5jdGlvbiBpZTIodCl7dmFyIGU9e2Vycm9yQ29kZXM6W10sdmFsaWQ6ITB9O2lmKHQhPW51bGwmJnQhPT0iIil7dmFyIGE9YmlbdC50b1VwcGVyQ2FzZSgpLnNsaWNlKDQsNildO2lmKGE9PT12b2lkIDApZS52YWxpZD0hMSxlLmVycm9yQ29kZXMucHVzaCh3OC5Ob0JJQ0NvdW50cnkpO2Vsc2V7dmFyIGk9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKTtpLnRlc3QodCl8fChlLnZhbGlkPSExLGUuZXJyb3JDb2Rlcy5wdXNoKHc4Lldyb25nQklDRm9ybWF0KSl9fWVsc2UgZS52YWxpZD0hMSxlLmVycm9yQ29kZXMucHVzaCh3OC5Ob0JJQ1Byb3ZpZGVkKTtyZXR1cm4gZX1mdW5jdGlvbiByZTIodCl7dmFyIGU9e30sYT10LnRvVXBwZXJDYXNlKCk7cmV0dXJuIFZqdChhKT8oZS5iYW5rQ29kZT1hLnNsaWNlKDAsNCksZS5jb3VudHJ5Q29kZT1hLnNsaWNlKDQsNiksZS5sb2NhdGlvbkNvZGU9YS5zbGljZSg2LDgpLGUudGVzdEJJQz1lLmxvY2F0aW9uQ29kZVsxXT09PSIwIixlLmJyYW5jaENvZGU9YS5sZW5ndGg+OD9hLnNsaWNlKDgpOm51bGwsZS52YWxpZD0hMCk6ZS52YWxpZD0hMSxlfXZhciBHaSx3OCxqanQsVWp0LEJ4LERsLFdqdCxHanQsdnV0LFlqdCx5dXQsWmp0LHh1dCxYanQsc2UyLGJpLHd1dD1iKCgpPT57InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXt0W3QuTm9JQkFOUHJvdmlkZWQ9MF09Ik5vSUJBTlByb3ZpZGVkIix0W3QuTm9JQkFOQ291bnRyeT0xXT0iTm9JQkFOQ291bnRyeSIsdFt0Lldyb25nQkJBTkxlbmd0aD0yXT0iV3JvbmdCQkFOTGVuZ3RoIix0W3QuV3JvbmdCQkFORm9ybWF0PTNdPSJXcm9uZ0JCQU5Gb3JtYXQiLHRbdC5DaGVja3N1bU5vdE51bWJlcj00XT0iQ2hlY2tzdW1Ob3ROdW1iZXIiLHRbdC5Xcm9uZ0lCQU5DaGVja3N1bT01XT0iV3JvbmdJQkFOQ2hlY2tzdW0iLHRbdC5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW09Nl09Ildyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bSIsdFt0LlFSSUJBTk5vdEFsbG93ZWQ9N109IlFSSUJBTk5vdEFsbG93ZWQifSkoR2l8fChHaT17fSkpOyhmdW5jdGlvbih0KXt0W3QuTm9CSUNQcm92aWRlZD0wXT0iTm9CSUNQcm92aWRlZCIsdFt0Lk5vQklDQ291bnRyeT0xXT0iTm9CSUNDb3VudHJ5Iix0W3QuV3JvbmdCSUNGb3JtYXQ9Ml09Ildyb25nQklDRm9ybWF0In0pKHc4fHwodzg9e30pKTtqanQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVs1LDQsMywyLDcsNiw1LDQsMywyXSxhPXQucmVwbGFjZSgvW1xzLl0rL2csIiIpLGk9cGFyc2VJbnQoYS5jaGFyQXQoMTApLDEwKSxyPWEuc3Vic3RyaW5nKDAsMTApLHM9MCxuPTA7bjwxMDtuKyspcys9cGFyc2VJbnQoci5jaGFyQXQobiksMTApKmVbbl07dmFyIG89cyUxMTtyZXR1cm4gaT09PShvPT09MD8wOjExLW8pfSxVanQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKC9bXHMuXSsvZywiIiksYT1wYXJzZUludChlLnN1YnN0cmluZygwLGUubGVuZ3RoLTIpLDEwKSxpPXBhcnNlSW50KGUuc3Vic3RyaW5nKGUubGVuZ3RoLTIsZS5sZW5ndGgpLDEwKSxyPWElOTc9PT0wPzk3OmElOTc7cmV0dXJuIHI9PT1pfSxCeD1mdW5jdGlvbih0KXtmb3IoO3QubGVuZ3RoPjI7KXt2YXIgZT10LnNsaWNlKDAsNiksYT1wYXJzZUludChlLDEwKTtpZihpc05hTihhKSlyZXR1cm4gTmFOO3Q9YSU5Nyt0LnNsaWNlKGUubGVuZ3RoKX1yZXR1cm4gcGFyc2VJbnQodCwxMCklOTd9LERsPWZ1bmN0aW9uKHQpe3ZhciBlPXQucmVwbGFjZSgvW1xzLl0rL2csIiIpLGE9QngoZSk7cmV0dXJuIGE9PT0xfSxXanQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVszLDksNywxLDMsOSw3XSxhPXBhcnNlSW50KHQuY2hhckF0KDcpLDEwKSxpPXQuc3Vic3RyaW5nKDAsNykscj0wLHM9MDtzPDc7cysrKXIrPXBhcnNlSW50KGkuY2hhckF0KHMpLDEwKSplW3NdO3ZhciBuPXIlMTA7cmV0dXJuIGE9PT0obj09PTA/MDoxMC1uKX0sR2p0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bNCw4LDUsMTAsOSw3LDMsNl0sYT1bMSwyLDQsOCw1LDEwLDksNywzLDZdLGk9cGFyc2VJbnQodC5jaGFyQXQoOCksMTApLHI9cGFyc2VJbnQodC5jaGFyQXQoOSksMTApLHM9dC5zdWJzdHJpbmcoMCw4KSxuPXQuc3Vic3RyaW5nKDEwLDIwKSxvPTAsZD0wO2Q8ODtkKyspbys9cGFyc2VJbnQocy5jaGFyQXQoZCksMTApKmVbZF07dmFyIGM9byUxMTtpZihpIT09KGM9PT0wPzA6Yz09PTE/MToxMS1jKSlyZXR1cm4hMTtvPTA7Zm9yKHZhciBkPTA7ZDwxMDtkKyspbys9cGFyc2VJbnQobi5jaGFyQXQoZCksMTApKmFbZF07cmV0dXJuIGM9byUxMSxyPT09KGM9PT0wPzA6Yz09PTE/MToxMS1jKX0sdnV0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBhPTEwLGk9MDtpPHQubGVuZ3RoO2krKylhKz1wYXJzZUludCh0LmNoYXJBdChpKSwxMCksYSUxMCE9PTAmJihhPWElMTApLGE9YSoyLGE9YSUxMTtyZXR1cm4gZT09PSgxMS1hPT09MTA/MDoxMS1hKX0sWWp0PWZ1bmN0aW9uKHQpe3ZhciBlPXBhcnNlSW50KHQuY2hhckF0KDYpLDEwKSxhPXBhcnNlSW50KHQuY2hhckF0KDE2KSwxMCksaT10LnN1YnN0cmluZygwLDYpLHI9dC5zdWJzdHJpbmcoNywxNik7cmV0dXJuIHZ1dChpLGUpJiZ2dXQocixhKX0seXV0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bMTAsNSw4LDQsMiwxXSxhPVs2LDMsNyw5LDEwLDUsOCw0LDIsMV0saT1wYXJzZUludCh0LmNoYXJBdCg5KSwxMCkscj1wYXJzZUludCh0LmNoYXJBdCgxOSksMTApLHM9dC5zdWJzdHJpbmcoNCw5KSxuPXQuc3Vic3RyaW5nKDEwLDE5KSxvPTAsZD0wO2Q8cy5sZW5ndGg7ZCsrKW8rPXBhcnNlSW50KHMuY2hhckF0KGQpLDEwKSplW2RdO3ZhciBjPW8lMTE7aWYoaSE9PShjPT09MD8wOmM9PT0xPzE6MTEtYykpcmV0dXJuITE7bz0wO2Zvcih2YXIgZD0wO2Q8bi5sZW5ndGg7ZCsrKW8rPXBhcnNlSW50KG4uY2hhckF0KGQpLDEwKSphW2RdO3JldHVybiBjPW8lMTEscj09PShjPT09MD8wOmM9PT0xPzE6MTEtYyl9LFpqdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9WzcsMSwzLDcsMSwzLDcsMSwzLDcsMSwzLDddLGE9cGFyc2VJbnQodC5jaGFyQXQoMTUpLDEwKSxpPXQuc3Vic3RyaW5nKDIsMTUpLHI9MCxzPTA7czxpLmxlbmd0aDtzKyspcis9cGFyc2VJbnQoaS5jaGFyQXQocyksMTApKmVbc107dmFyIG49ciUxMDtyZXR1cm4gYT09PShuPT09MD8wOjEwLW4pfSx4dXQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQucmVwbGFjZSgvW1xzLl0rL2csIiIpLGE9QXJyYXkuZnJvbShlKSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciByPWFbaV0uY2hhckNvZGVBdCgwKTtpZihyPj02NSlzd2l0Y2gocil7Y2FzZSA2NTpjYXNlIDc0OmFbaV09IjEiO2JyZWFrO2Nhc2UgNjY6Y2FzZSA3NTpjYXNlIDgzOmFbaV09IjIiO2JyZWFrO2Nhc2UgNjc6Y2FzZSA3NjpjYXNlIDg0OmFbaV09IjMiO2JyZWFrO2Nhc2UgNjg6Y2FzZSA3NzpjYXNlIDg1OmFbaV09IjQiO2JyZWFrO2Nhc2UgNjk6Y2FzZSA3ODpjYXNlIDg2OmFbaV09IjUiO2JyZWFrO2Nhc2UgNzA6Y2FzZSA3OTpjYXNlIDg3OmFbaV09IjYiO2JyZWFrO2Nhc2UgNzE6Y2FzZSA4MDpjYXNlIDg4OmFbaV09IjciO2JyZWFrO2Nhc2UgNzI6Y2FzZSA4MTpjYXNlIDg5OmFbaV09IjgiO2JyZWFrO2Nhc2UgNzM6Y2FzZSA4MjpjYXNlIDkwOmFbaV09IjkiO2JyZWFrfX12YXIgcz1CeChhLmpvaW4oIiIpKTtyZXR1cm4gcz09PTB9LFhqdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9WzksNywzLDEsOSw3LDMsMSw5LDcsMywxLDksNywzXSxhPXBhcnNlSW50KHQuY2hhckF0KDcpLDEwKSxpPXQuc3Vic3RyaW5nKDAsNykscj0wLHM9MDtzPGkubGVuZ3RoO3MrKylyKz1wYXJzZUludChpLmNoYXJBdChzKSwxMCkqZVtzXTt2YXIgbj1yJTEwO2lmKGEhPT0obj09PTA/MDoxMC1uKSlyZXR1cm4hMTtpZihyPTAsdC5lbmRzV2l0aCgiMDAwMDAwMDAiKSl7Zm9yKHZhciBvPXQuc3Vic3RyaW5nKDgsMTUpLGQ9cGFyc2VJbnQodC5jaGFyQXQoMTUpLDEwKSxzPTA7czxvLmxlbmd0aDtzKyspcis9cGFyc2VJbnQoby5jaGFyQXQocyksMTApKmVbc107dmFyIGM9ciUxMDtyZXR1cm4gZD09PShjPT09MD8wOjEwLWMpfWVsc2V7Zm9yKHZhciBvPXQuc3Vic3RyaW5nKDgsMjMpLGQ9cGFyc2VJbnQodC5jaGFyQXQoMjMpLDEwKSxzPTA7czxvLmxlbmd0aDtzKyspcis9cGFyc2VJbnQoby5jaGFyQXQocyksMTApKmVbc107dmFyIHA9ciUxMDtyZXR1cm4gZD09PShwPT09MD8wOjEwLXApfX0sc2UyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR5cGVvZiBiaVt0XT4idSI/ITE6KGJpW3RdLmJiYW5fdmFsaWRhdGlvbl9mdW5jPWUsITApfSxiaT17QUQ6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjQifSxBRTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXszfVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yMyJ9LEFGOnt9LEFHOnt9LEFJOnt9LEFMOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezh9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy03IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxBTTp7fSxBTzp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIn0sQVE6e30sQVI6e30sQVM6e30sQVQ6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxBVTp7fSxBVzp7fSxBWDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITB9LEFaOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTI4In0sQkE6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6RGwsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy01IixiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LEJCOnt9LEJEOnt9LEJFOntjaGFyczoxNixiYmFuX3JlZ2V4cDoiXlswLTldezEyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOlVqdCxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0xNiJ9LEJGOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LEJHOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17Nn1bQS1aMC05XXs4fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LEJIOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIyIn0sQkk6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNyJ9LEJKOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LEJMOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCJ9LEJNOnt9LEJOOnt9LEJPOnt9LEJROnt9LEJSOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXlswLTldezIzfVtBLVpdezF9W0EtWjAtOV17MX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI4LTEyIixiYW5rX2lkZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTctMjkifSxCUzp7fSxCVDp7fSxCVjp7fSxCVzp7fSxCWTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sQlo6e30sQ0E6e30sQ0M6e30sQ0Q6e30sQ0Y6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENHOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDSDp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sQ0k6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17MX1bMC05XXsyM30kIn0sQ0s6e30sQ0w6e30sQ006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENOOnt9LENPOnt9LENSOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMiJ9LENVOnt9LENWOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQifSxDVzp7fSxDWDp7fSxDWTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy03IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxDWjp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzp5dXQsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxERTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTMtMjIifSxESjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI3In0sREs6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTgifSxETTp7fSxETzp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LERaOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQifSxFQzp7fSxFRTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpaanQsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjAifSxFRzp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXsyNX0iLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE3LTI5In0sRUg6e30sRVI6e30sRVM6e2NoYXJzOjI0LGJiYW5fdmFsaWRhdGlvbl9mdW5jOkdqdCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjQifSxFVDp7fSxGSTp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0wIn0sRko6e30sRks6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsxMn0kIixiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0xOCJ9LEZNOnt9LEZPOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xOCJ9LEZSOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6eHV0LElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00IixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjQifSxHQTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sR0I6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtOSIsYmFua19pZGVudGlmaWVyOiIwLTMifSxHRDp7fSxHRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0yMiJ9LEdGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxHRzp7fSxHSDp7fSxHSTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIzIn0sR0w6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE4In0sR006e30sR046e30sR1A6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LEdROntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxHUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXs3fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy02IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yNyJ9LEdTOnt9LEdUOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LEdVOnt9LEdXOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MTl9JCJ9LEdZOnt9LEhLOnt9LEhNOnt9LEhOOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCJ9LEhSOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXlswLTldezE3fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOllqdCxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNiJ9LEhUOnt9LEhVOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOlhqdCxJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNiIsYmFua19pZGVudGlmaWVyOiIwLTIifSxJRDp7fSxJRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC05IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LElMOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIifSxJTTp7fSxJTjp7fSxJTzp7fSxJUTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNiIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjExLTIzIn0sSVI6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17MjJ9JCJ9LElTOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi0zIixiYW5rX2lkZW50aWZpZXI6IjAtMSJ9LElUOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXltBLVpdezF9WzAtOV17MTB9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTEwIixiYW5rX2lkZW50aWZpZXI6IjEtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNyJ9LEpFOnt9LEpNOnt9LEpPOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17NH1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiNC03In0sSlA6e30sS0U6e30sS0c6e30sS0g6e30sS0k6e30sS006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LEtOOnt9LEtQOnt9LEtSOnt9LEtXOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIyMC0zMCJ9LEtZOnt9LEtaOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTIwIn0sTEE6e30sTEI6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17NH1bQS1aMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI4In0sTEM6e2NoYXJzOjMyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMzIifSxMSTp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sTEs6e30sTFI6e30sTFM6e30sTFQ6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxMVTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEzfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sTFY6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxM30kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yMSJ9LExZOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEwLTI1In0sTUE6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17MjR9JCJ9LE1DOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6eHV0LElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LE1EOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTI0In0sTUU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6RGwsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTIyIn0sTUY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE1HOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxNSDp7fSxNSzp7Y2hhcnM6MTksYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEwfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6RGwsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sTUw6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsyMn0kIn0sTU06e30sTU46e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIwIn0sTU86e30sTVA6e30sTVE6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE1SOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjcifSxNUzp7fSxNVDp7Y2hhcnM6MzEsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezV9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTgiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNS0zMSJ9LE1VOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTl9W0EtWl17M30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTciLGJhbmtfaWRlbnRpZmllcjoiMC01IixhY2NvdW50X2luZGVudGlmaWVyOiIwLTMwIn0sTVY6e30sTVc6e30sTVg6e30sTVk6e30sTVo6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCJ9LE5BOnt9LE5DOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxORTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxORjp7fSxORzp7fSxOSTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LE5MOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTB9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMTgifSxOTzp7Y2hhcnM6MTUsYmJhbl9yZWdleHA6Il5bMC05XXsxMX0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpqanQsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTUifSxOUDp7fSxOUjp7fSxOVTp7fSxOWjp7fSxPTTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiExLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sUEE6e30sUEU6e30sUEY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFBHOnt9LFBIOnt9LFBLOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sUEw6e2NoYXJzOjI4LGJiYW5fdmFsaWRhdGlvbl9mdW5jOldqdCxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMC03IixhY2NvdW50X2luZGVudGlmaWVyOiIyLTI4In0sUE06e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFBOOnt9LFBSOnt9LFBTOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNy0yOSJ9LFBUOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOkRsLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sUFc6e30sUFk6e30sUUE6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjkifSxSRTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sUk86e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yNCJ9LFJTOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOkRsLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFJVOntjaGFyczozMyxiYmFuX3JlZ2V4cDoiXlswLTldezE0fVtBLVowLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjktMTMiLGJhbmtfaWRlbnRpZmllcjoiMC04IixhY2NvdW50X2luZGVudGlmaWVyOiIxMy0zMyJ9LFJXOnt9LFNBOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezJ9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yNCJ9LFNCOnt9LFNDOntjaGFyczozMSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9W0EtWl17M30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTciLGJhbmtfaWRlbnRpZmllcjoiMC01IixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yOCJ9LFNEOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0xOCJ9LFNFOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sU0c6e30sU0g6e30sU0k6e2NoYXJzOjE5LGJiYW5fcmVnZXhwOiJeWzAtOV17MTV9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6RGwsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTQiLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI5LTE2In0sU0o6e30sU0s6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6eXV0LElCQU5SZWdpc3RyeTohMCxTRVBBOiEwfSxTTDp7fSxTTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bQS1aXXsxfVswLTldezEwfVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi0xMCJ9LFNOOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MjJ9JCJ9LFNPOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTEtMjMifSxTUjp7fSxTUzp7fSxTVDp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTcifSxTVjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sU1g6e30sU1k6e30sU1o6e30sVEM6e30sVEQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LFRGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxURzp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxUSDp7fSxUSjp7fSxUSzp7fSxUTDp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMyJ9LFRNOnt9LFROOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNCJ9LFRPOnt9LFRSOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezV9W0EtWjAtOV17MTd9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxUVDp7fSxUVjp7fSxUVzp7fSxUWjp7fSxVQTp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXs2fVtBLVowLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiIxNS0yOSJ9LFVHOnt9LFVNOnt9LFVTOnt9LFVZOnt9LFVaOnt9LFZBOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yMiJ9LFZDOnt9LFZFOnt9LFZHOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjQifSxWSTp7fSxWTjp7fSxWVTp7fSxXRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sV1M6e30sWEs6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTIwIn0sWUU6e30sWVQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFpBOnt9LFpNOnt9LFpXOnt9fX0pO3ZhciBNdXQsenV0PWIoKCk9Pnt1ZSgpO011dD0oKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtRYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAucGF5bWVudC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBJQkFOIElucHV0In0gLnN1YnRpdGxlPSR7IkludGVybmF0aW9uYWwgQmFuayBBY2NvdW50IE51bWJlciB3aXRoIGF1dG9tYXRpYyBmb3JtYXR0aW5nIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiQmFuayBBY2NvdW50IElCQU4ifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRW50ZXIgeW91ciBJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IlZlcmlmaWVkIElCQU4ifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBJQkFOIGhhcyBiZWVuIHZlcmlmaWVkIn0KICAgICAgICAgICAgLnZhbHVlPSR7IkRFODkzNzA0MDA0NDA1MzIwMTMwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUGF5bWVudCBJbmZvcm1hdGlvbiJ9IC5zdWJ0aXRsZT0keyJJQkFOIGlucHV0IHdpdGggaG9yaXpvbnRhbCBsYXlvdXQgZm9yIHBheW1lbnQgZm9ybXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXltZW50LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJBY2NvdW50IEhvbGRlciJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnZhbHVlPSR7IkpvaG4gRG9lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAKICAgICAgICAgICAgLmxhYmVsPSR7IklCQU4ifSAKICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJHQjgyV0VTVDEyMzQ1Njk4NzY1NDMyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlZhbGlkYXRpb24gJiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiUmVxdWlyZWQgZmllbGRzIGFuZCBkaXNhYmxlZCBzdGF0ZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJQYXltZW50IEFjY291bnQifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVxdWlyZWQgZm9yIHByb2Nlc3NpbmcgcGF5bWVudHMifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJMb2NrZWQgSUJBTiJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIElCQU4gY2Fubm90IGJlIGNoYW5nZWQifQogICAgICAgICAgICAudmFsdWU9JHsiRlIxNDIwMDQxMDEwMDUwNTAwMDEzTTAyNjA2In0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYW5rIFRyYW5zZmVyIEZvcm0ifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZm9ybSBleGFtcGxlIHdpdGggSUJBTiB2YWxpZGF0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IlJlY2lwaWVudCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbiAubGFiZWw9JHsiUmVjaXBpZW50IElCQU4ifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJUcmFuc2ZlciBSZWZlcmVuY2UifSAuZGVzY3JpcHRpb249JHsiT3B0aW9uYWwgcmVmZXJlbmNlIGZvciB0aGUgdHJhbnNmZXIifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkFtb3VudCJ9IC5pbnB1dFR5cGU9JHsibnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgSHgsUTAscXgsV3E9YigoKT0+e3VlKCk7VHQoKTtDMSgpO3d1dCgpO3p1dCgpO3FlKCk7SHg9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxRMD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0scXg9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWlucHV0LWliYW4iKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSigpXSxkPVtKKCldLGw9W0koe3R5cGU6U3RyaW5nfSldLEh4KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW50ZXJlZFN0cmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImVudGVyZWRTdHJpbmciaW4gbSxnZXQ6bT0+bS5lbnRlcmVkU3RyaW5nLHNldDoobSx4KT0+e20uZW50ZXJlZFN0cmluZz14fX0sbWV0YWRhdGE6dn0sbixvKSxIeCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudGVyZWRJYmFuSXNWYWxpZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImVudGVyZWRJYmFuSXNWYWxpZCJpbiBtLGdldDptPT5tLmVudGVyZWRJYmFuSXNWYWxpZCxzZXQ6KG0seCk9PnttLmVudGVyZWRJYmFuSXNWYWxpZD14fX0sbWV0YWRhdGE6dn0sYyxwKSxIeCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4idmFsdWUiaW4gbSxnZXQ6bT0+bS52YWx1ZSxzZXQ6KG0seCk9PnttLnZhbHVlPXh9fSxtZXRhZGF0YTp2fSxmLGcpLEh4KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwsYSkseT1pPWUudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGRlbW89TXV0O3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1RMCh0aGlzLG4sIiIpO2dldCBlbnRlcmVkU3RyaW5nKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGVudGVyZWRTdHJpbmcodil7dGhpcy4jZT12fSN0PShRMCh0aGlzLG8pLFEwKHRoaXMsYywhMSkpO2dldCBlbnRlcmVkSWJhbklzVmFsaWQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZW50ZXJlZEliYW5Jc1ZhbGlkKHYpe3RoaXMuI3Q9dn0jYT0oUTAodGhpcyxwKSxRMCh0aGlzLGYsIiIpKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdmFsdWUodil7dGhpcy4jYT12fXN0YXRpYyBzdHlsZXM9W0NlLC4uLlhlLmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC8qIElCQU4gaW5wdXQgc3BlY2lmaWMgc3R5bGVzIGNhbiBnbyBoZXJlICovCiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbHx8IklCQU4ifSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZhbHVlPSR7dGhpcy52YWx1ZX0KICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkRFODkgMzcwNCAwMDQ0IDA1MzIgMDEzMCAwMCJ9CiAgICAgICAgICBAaW5wdXQ9JHt2PT57dGhpcy52YWxpZGF0ZUliYW4odil9fQogICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgPC9kaXY+CiAgICBgfWZpcnN0VXBkYXRlZCh2KXtzdXBlci5maXJzdFVwZGF0ZWQodik7bGV0IG09dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpO20mJm0uY2hhbmdlU3ViamVjdCYmbS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKT0+e3RoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSl9YXN5bmMgdmFsaWRhdGVJYmFuKHYpe2xldCBtPXYudGFyZ2V0LHg9bT8udmFsdWU7eD14fHwiIix0aGlzLmVudGVyZWRTdHJpbmchPT14JiYodGhpcy5lbnRlcmVkU3RyaW5nPVVxKHgpfHwiIixtJiYobS52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpKSx0aGlzLmVudGVyZWRJYmFuSXNWYWxpZD1qcSh0aGlzLmVudGVyZWRTdHJpbmcucmVwbGFjZSgvIC9nLCIiKSk7bGV0IE09dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpO00udmFsaWRhdGlvblRleHQ9YElCQU4gaXMgdmFsaWQ6ICR7dGhpcy5lbnRlcmVkSWJhbklzVmFsaWR9YH1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKHYpe3RoaXMudmFsdWU9dix0aGlzLmVudGVyZWRTdHJpbmc9VXEodil8fCIifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxRMCh0aGlzLGcpfXN0YXRpY3tRMChpLGEpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIga3V0LFN1dD1iKCgpPT57dWUoKTtrdXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZXR0aW5ncy1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLnNldHRpbmdzLWdyaWQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk11bHRpLU9wdGlvbiBUb2dnbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TZWxlY3QgZnJvbSBtdWx0aXBsZSBvcHRpb25zIHdpdGggYSBzbW9vdGggc2xpZGluZyBpbmRpY2F0b3IgYW5pbWF0aW9uLjwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiRGlzcGxheSBNb2RlIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgaG93IGNvbnRlbnQgaXMgZGlzcGxheWVkIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJMaXN0IFZpZXciLCJHcmlkIFZpZXciLCJDb21wYWN0Il19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiR3JpZCBWaWV3In0KICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIAogICAgICAgIDxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJULVNoaXJ0IFNpemUifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlNlbGVjdCB5b3VyIHByZWZlcnJlZCBzaXplIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJYUyIsIlMiLCJNIiwiTCIsIlhMIiwiWFhMIl19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Cb29sZWFuIFRvZ2dsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBvbi9vZmYgc3dpdGNoZXMgd2l0aCBjdXN0b21pemFibGUgbGFiZWxzIGZvciBjbGVhcmVyIGNvbnRleHQuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb25zIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJFbmFibGUgb3IgZGlzYWJsZSBwdXNoIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidHJ1ZSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAKICAgICAgICA8YnI+PGJyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiVGhlbWUgTW9kZSJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU3dpdGNoIGJldHdlZW4gbGlnaHQgYW5kIGRhcmsgdGhlbWUifQogICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IkRhcmsifQogICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiTGlnaHQifQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRhcmsifQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2V0dGluZ3MgR3JpZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcnJhbmdlZCBpbiBhIHJlc3BvbnNpdmUgZ3JpZCBsYXlvdXQuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiQXV0by1TYXZlIn0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiRW5hYmxlZCJ9CiAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IkRpc2FibGVkIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuYWJsZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7Ikxhbmd1YWdlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVuZ2xpc2giLCJHZXJtYW4iLCJGcmVuY2giLCJTcGFuaXNoIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFsaXR5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkxvdyIsIk1lZGl1bSIsIkhpZ2giLCJVbHRyYSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSGlnaCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiUHJpdmFjeSJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IlByaXZhdGUifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJpdmF0ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0YXRlcyAmIEZvcm0gSW50ZWdyYXRpb248L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5FeGFtcGxlcyBvZiBkaXNhYmxlZCBzdGF0ZXMgYW5kIGludGVncmF0aW9uIHdpdGhpbiBmb3Jtcy48L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgVHlwZSJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBzZXR0aW5nIGlzIGxvY2tlZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siRnJlZSIsIlBybyIsIkVudGVycHJpc2UiXX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbnRlcnByaXNlIn0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgCiAgICAgICAgPGJyPjxicj4KICAgICAgICAKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUHJvamVjdCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlZpc2liaWxpdHkifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByaXZhdGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJMaWNlbnNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk1JVCIsIkFwYWNoZSAyLjAiLCJHUEwgdjMiLCJQcm9wcmlldGFyeSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTUlUIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIEowLFdhLFZ4LEdxPWIoKCk9Pnt1ZSgpO0MxKCk7Z2koKTtTdXQoKTtxZSgpO0owPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sV2E9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFZ4PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZSIpXSxlLGE9W10saSxyPVhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLGQ9W0koKV0sbD1bSSgpXSx5PVtJKHt0eXBlOkFycmF5fSldLHg9W0koKV0sRj1bSSh7dHlwZTpCb29sZWFufSldLEowKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InR5cGUiaW4gQSxnZXQ6QT0+QS50eXBlLHNldDooQSxxKT0+e0EudHlwZT1xfX0sbWV0YWRhdGE6TH0sbixvKSxKMCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvb2xlYW5UcnVlTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImJvb2xlYW5UcnVlTmFtZSJpbiBBLGdldDpBPT5BLmJvb2xlYW5UcnVlTmFtZSxzZXQ6KEEscSk9PntBLmJvb2xlYW5UcnVlTmFtZT1xfX0sbWV0YWRhdGE6TH0sYyxwKSxKMCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvb2xlYW5GYWxzZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJib29sZWFuRmFsc2VOYW1lImluIEEsZ2V0OkE9PkEuYm9vbGVhbkZhbHNlTmFtZSxzZXQ6KEEscSk9PntBLmJvb2xlYW5GYWxzZU5hbWU9cX19LG1ldGFkYXRhOkx9LGYsZyksSjAodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcHRpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ib3B0aW9ucyJpbiBBLGdldDpBPT5BLm9wdGlvbnMsc2V0OihBLHEpPT57QS5vcHRpb25zPXF9fSxtZXRhZGF0YTpMfSx2LG0pLEowKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRPcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJzZWxlY3RlZE9wdGlvbiJpbiBBLGdldDpBPT5BLnNlbGVjdGVkT3B0aW9uLHNldDooQSxxKT0+e0Euc2VsZWN0ZWRPcHRpb249cX19LG1ldGFkYXRhOkx9LE0sUyksSjAodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJib29sVmFsdWUiaW4gQSxnZXQ6QT0+QS5ib29sVmFsdWUsc2V0OihBLHEpPT57QS5ib29sVmFsdWU9cX19LG1ldGFkYXRhOkx9LF8sayksSjAobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6TH0sbnVsbCxhKSxOPWk9ZS52YWx1ZSxMJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KX1zdGF0aWMgZGVtbz1rdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVdhKHRoaXMsbiwibXVsdGkiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKEwpe3RoaXMuI2U9TH0jdD0oV2EodGhpcyxvKSxXYSh0aGlzLGMsInRydWUiKSk7Z2V0IGJvb2xlYW5UcnVlTmFtZSgpe3JldHVybiB0aGlzLiN0fXNldCBib29sZWFuVHJ1ZU5hbWUoTCl7dGhpcy4jdD1MfSNhPShXYSh0aGlzLHApLFdhKHRoaXMsZiwiZmFsc2UiKSk7Z2V0IGJvb2xlYW5GYWxzZU5hbWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYm9vbGVhbkZhbHNlTmFtZShMKXt0aGlzLiNhPUx9I2k9KFdhKHRoaXMsZyksV2EodGhpcyx2LFtdKSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgb3B0aW9ucyhMKXt0aGlzLiNpPUx9I3I9KFdhKHRoaXMsbSksV2EodGhpcyxNLCIiKSk7Z2V0IHNlbGVjdGVkT3B0aW9uKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGVkT3B0aW9uKEwpe3RoaXMuI3I9TH0jcz0oV2EodGhpcyxTKSxXYSh0aGlzLF8sITEpKTtnZXQgYm9vbFZhbHVlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGJvb2xWYWx1ZShMKXt0aGlzLiNzPUx9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMudHlwZT09PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPT09dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbn1zZXQgdmFsdWUoTCl7dGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0eXBlb2YgTD09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249TD90aGlzLmJvb2xlYW5UcnVlTmFtZTp0aGlzLmJvb2xlYW5GYWxzZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbj1MLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuaGFzVXBkYXRlZCYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5zZXRJbmRpY2F0b3IoKX0pfXN0YXRpYyBzdHlsZXM9W0NlLC4uLlhlLmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VsZWN0aW9ucyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgICAgIH0KCiAgICAgIC5vcHRpb24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nOiA4cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLm9wdGlvbjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTgxODFiIiwiI2U0ZTRlNyIpfTsKICAgICAgfQoKICAgICAgLm9wdGlvbi5zZWxlY3RlZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgfQoKICAgICAgLmluZGljYXRvciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpOwogICAgICAgIHRvcDogNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmluZGljYXRvci5uby10cmFuc2l0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuc2VsZWN0aW9ucyB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5vcHRpb24gewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5pbmRpY2F0b3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMTUpIiwicmdiYSgxMTMsIDExMywgMTIyLCAwLjE1KSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGlvbnMiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5kaWNhdG9yIj48L2Rpdj4KICAgICAgICAgICR7dGhpcy5vcHRpb25zLm1hcChMPT53YDxkaXYgY2xhc3M9Im9wdGlvbiAke0w9PT10aGlzLnNlbGVjdGVkT3B0aW9uPyJzZWxlY3RlZCI6IiJ9IiBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVTZWxlY3Rpb24oTCl9PgogICAgICAgICAgICAgICAgJHtMfQogICAgICAgICAgICAgIDwvZGl2PiBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMudHlwZT09PSJib29sZWFuIiYmdGhpcy5vcHRpb25zLmxlbmd0aD09PTAmJih0aGlzLm9wdGlvbnM9W3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSIsdGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiXSx0aGlzLnNlbGVjdGVkT3B0aW9ufHwodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSIpKSwhdGhpcy5zZWxlY3RlZE9wdGlvbiYmdGhpcy5vcHRpb25zLmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLm9wdGlvbnNbMF0pfWFzeW5jIGZpcnN0VXBkYXRlZChMKXtzdXBlci5maXJzdFVwZGF0ZWQoTCksdGhpcy50eXBlPT09ImJvb2xlYW4iJiYodGhpcy5vcHRpb25zPVt0aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiLHRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIl0pLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsZG9jdW1lbnQuZm9udHMmJmF3YWl0IGRvY3VtZW50LmZvbnRzLnJlYWR5LGF3YWl0IG5ldyBQcm9taXNlKEE9PnJlcXVlc3RBbmltYXRpb25GcmFtZShBKSksdGhpcy5zZXRJbmRpY2F0b3IoKX1hc3luYyBoYW5kbGVTZWxlY3Rpb24oTCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWRPcHRpb249TCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuc2V0SW5kaWNhdG9yKCkpfWluZGljYXRvckluaXRpYWxpemVkPShXYSh0aGlzLGspLCExKTthc3luYyBzZXRJbmRpY2F0b3IoKXtsZXQgTD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmluZGljYXRvciIpLEE9dGhpcy5vcHRpb25zLmluZGV4T2YodGhpcy5zZWxlY3RlZE9wdGlvbik7aWYoQT09PS0xfHwhTCl7TCYmKEwuc3R5bGUub3BhY2l0eT0iMCIpO3JldHVybn1sZXQgcT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgLm9wdGlvbjpudGgtY2hpbGQoJHtBKzJ9KWApO0wmJnEmJih0aGlzLmluZGljYXRvckluaXRpYWxpemVkfHwoTC5jbGFzc0xpc3QuYWRkKCJuby10cmFuc2l0aW9uIiksdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZD0hMCxzZXRUaW1lb3V0KCgpPT57TC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9LDUwKSksTC5zdHlsZS53aWR0aD1gJHtxLmNsaWVudFdpZHRofXB4YCxMLnN0eWxlLmxlZnQ9YCR7cS5vZmZzZXRMZWZ0fXB4YCxMLnN0eWxlLm9wYWNpdHk9IjEiKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0VmFsdWUoTCl7dGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0eXBlb2YgTD09ImJvb2xlYW4iP3RoaXMuc2VsZWN0ZWRPcHRpb249TD90aGlzLmJvb2xlYW5UcnVlTmFtZXx8InRydWUiOnRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIjp0aGlzLnNlbGVjdGVkT3B0aW9uPUwsdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5oYXNVcGRhdGVkJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNldEluZGljYXRvcigpfSl9c3RhdGlje1dhKGksYSl9fTtyZXR1cm4gTj1pfSkoKX0pO3ZhciBDdXQsX3V0PWIoKCk9Pnt1ZSgpO0N1dD0oKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtRYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQaG9uZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJBdXRvbWF0aWMgZm9ybWF0dGluZyBmb3IgcGhvbmUgbnVtYmVycyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJQaG9uZSBOdW1iZXIifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRW50ZXIgeW91ciBwaG9uZSBudW1iZXIgd2l0aCBjb3VudHJ5IGNvZGUifQogICAgICAgICAgICAudmFsdWU9JHsiNTU1MTIzNDU2NyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IFBob25lIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlcXVpcmVkIGZvciBhY2NvdW50IHZlcmlmaWNhdGlvbiJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDU1NSkgMDAwLTAwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lIAogICAgICAgICAgICAubGFiZWw9JHsiTW9iaWxlIn0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAudmFsdWU9JHsiNDE1NTU1MTIzNCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAKICAgICAgICAgICAgLmxhYmVsPSR7Ik9mZmljZSJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IisxICg4MDApIDU1NS0wMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcm5hdGlvbmFsIE51bWJlcnMifSAuc3VidGl0bGU9JHsiU3VwcG9ydHMgZm9ybWF0dGluZyBmb3IgbnVtYmVycyB3aXRoIGNvdW50cnkgY29kZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiSW50ZXJuYXRpb25hbCBDb250YWN0In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkF1dG9tYXRpY2FsbHkgZm9ybWF0cyBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNDQxMjM0NTY3ODkwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkVtZXJnZW5jeSBDb250YWN0In0KICAgICAgICAgICAgLnZhbHVlPSR7IjkxMSJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiUGhvbmUgaW5wdXQgYXMgcGFydCBvZiBhIGNvbnRhY3QgZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgangsZTQsVXgsWXE9YigoKT0+e3VlKCk7VHQoKTtDMSgpO191dCgpO3FlKCk7ang9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxlND1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sVXg9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWlucHV0LXBob25lIildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB2PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0ooKV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0sangodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb3JtYXR0ZWRQaG9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImZvcm1hdHRlZFBob25lImluIG0sZ2V0Om09Pm0uZm9ybWF0dGVkUGhvbmUsc2V0OihtLHgpPT57bS5mb3JtYXR0ZWRQaG9uZT14fX0sbWV0YWRhdGE6dn0sbixvKSxqeCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4idmFsdWUiaW4gbSxnZXQ6bT0+bS52YWx1ZSxzZXQ6KG0seCk9PnttLnZhbHVlPXh9fSxtZXRhZGF0YTp2fSxjLHApLGp4KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJwbGFjZWhvbGRlciJpbiBtLGdldDptPT5tLnBsYWNlaG9sZGVyLHNldDoobSx4KT0+e20ucGxhY2Vob2xkZXI9eH19LG1ldGFkYXRhOnZ9LGYsZyksangobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6dn0sbnVsbCxhKSx5PWk9ZS52YWx1ZSx2JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZ9KX1zdGF0aWMgZGVtbz1DdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPWU0KHRoaXMsbiwiIik7Z2V0IGZvcm1hdHRlZFBob25lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGZvcm1hdHRlZFBob25lKHYpe3RoaXMuI2U9dn0jdD0oZTQodGhpcyxvKSxlNCh0aGlzLGMsIiIpKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdmFsdWUodil7dGhpcy4jdD12fSNhPShlNCh0aGlzLHApLGU0KHRoaXMsZiwiKzEgKDU1NSkgMTIzLTQ1NjciKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHBsYWNlaG9sZGVyKHYpe3RoaXMuI2E9dn1zdGF0aWMgc3R5bGVzPVtDZSwuLi5YZS5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAvKiBQaG9uZSBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZhbHVlPSR7dGhpcy5mb3JtYXR0ZWRQaG9uZX0KICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgIEBpbnB1dD0ke3Y9PnRoaXMuaGFuZGxlUGhvbmVJbnB1dCh2KX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQodil7c3VwZXIuZmlyc3RVcGRhdGVkKHYpLHRoaXMudmFsdWUmJih0aGlzLmZvcm1hdHRlZFBob25lPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIodGhpcy52YWx1ZSkpO2xldCBtPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTttJiZtLmNoYW5nZVN1YmplY3QmJm0uY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pfWhhbmRsZVBob25lSW5wdXQodil7bGV0IG09di50YXJnZXQseD10aGlzLmNsZWFuUGhvbmVOdW1iZXIobS52YWx1ZSksTT10aGlzLmZvcm1hdFBob25lTnVtYmVyKHgpO2lmKG0udmFsdWUhPT1NKXtsZXQgUz1tLnNlbGVjdGlvblN0YXJ0fHwwO20udmFsdWU9TTtsZXQgRj10aGlzLmNhbGN1bGF0ZUN1cnNvclBvc2l0aW9uKHgsTSxTKTttLnNldFNlbGVjdGlvblJhbmdlKEYsRil9dGhpcy5mb3JtYXR0ZWRQaG9uZT1NLHRoaXMudmFsdWU9eCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1jbGVhblBob25lTnVtYmVyKHYpe3JldHVybiB2LnJlcGxhY2UoL1xEL2csIiIpfWZvcm1hdFBob25lTnVtYmVyKHYpe2xldCBtPXRoaXMuY2xlYW5QaG9uZU51bWJlcih2KTtyZXR1cm4gbS5sZW5ndGg9PT0wPyIiOm0ubGVuZ3RoPD0zP206bS5sZW5ndGg8PTY/YCgke20uc2xpY2UoMCwzKX0pICR7bS5zbGljZSgzKX1gOm0ubGVuZ3RoPD0xMD9gKCR7bS5zbGljZSgwLDMpfSkgJHttLnNsaWNlKDMsNil9LSR7bS5zbGljZSg2KX1gOmArJHttLnNsaWNlKDAsbS5sZW5ndGgtMTApfSAoJHttLnNsaWNlKC0xMCwtNyl9KSAke20uc2xpY2UoLTcsLTQpfS0ke20uc2xpY2UoLTQpfWB9Y2FsY3VsYXRlQ3Vyc29yUG9zaXRpb24odixtLHgpe2xldCBNPTA7Zm9yKGxldCBTPTA7Uzx4JiZTPG0ubGVuZ3RoO1MrKykvXGQvLnRlc3QobVtTXSl8fE0rKztyZXR1cm4gTWF0aC5taW4oeCtNLG0ubGVuZ3RoKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKHYpe3RoaXMudmFsdWU9dix0aGlzLmZvcm1hdHRlZFBob25lPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIodil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGU0KHRoaXMsZyl9c3RhdGlje2U0KGksYSl9fTtyZXR1cm4geT1pfSkoKX0pO3ZhciBUdXQsTHV0PWIoKCk9Pnt1ZSgpO3kxKCk7bTIoKTtUdXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb24iKSxhPXQucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb2ZmIiksaT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi5mZWF0dXJlLXRvZ2dsZXMgZGVlcy1pbnB1dC10b2dnbGUiKTtlJiZhJiYoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntpLmZvckVhY2gocj0+eyFyLmRpc2FibGVkJiYhci5yZXF1aXJlZCYmKHIudmFsdWU9ITApfSl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2kuZm9yRWFjaChyPT57IXIuZGlzYWJsZWQmJiFyLnJlcXVpcmVkJiYoci52YWx1ZT0hMSl9KX0pKX19PgogICAgPHN0eWxlPgogICAgICAke1FgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQoKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CgogICAgICAgIC50b2dnbGUtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbC10b2dnbGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQoKICAgICAgICAuaW50ZXJhY3RpdmUtc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CgogICAgICAgIC5vdXRwdXQtdGV4dCB7CiAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTAgNDAlIDgwJSkiKX07CiAgICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgICB9CgogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgfQoKICAgICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuZmVhdHVyZS10b2dnbGVzIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmRyYWctaGludCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIFRvZ2dsZSJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgb24vb2ZmIHRvZ2dsZSBzd2l0Y2ggd2l0aCBkcmFnIHN1cHBvcnQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJFbmFibGUgZmVhdHVyZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAua2V5PSR7ImJhc2ljIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiQWN0aXZlIHRvZ2dsZSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAua2V5PSR7ImFjdGl2ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IldpdGggZGVzY3JpcHRpb24ifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgdG9nZ2xlIGhhcyBhZGRpdGlvbmFsIGhlbHBlciB0ZXh0IGV4cGxhaW5pbmcgaXRzIHB1cnBvc2UifQogICAgICAgICAgICAua2V5PSR7IndpdGhEZXNjIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxwIGNsYXNzPSJkcmFnLWhpbnQiPlRpcDogWW91IGNhbiBkcmFnIHRoZSB0b2dnbGUga25vYiB0byBzd2l0Y2ggc3RhdGVzPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiVG9nZ2xlIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdG9nZ2xlIHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEZWZhdWx0IChvZmYpIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZWQgKG9uKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCAob2ZmKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgKG9uKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgKGFsd2F5cyBvbikifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIHRvZ2dsZSBjYW5ub3QgYmUgdHVybmVkIG9mZiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlRvZ2dsZXMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGludGVyZmFjZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLXRvZ2dsZXMiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJXaUZpIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJCbHVldG9vdGgifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkdQUyJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiTkZDIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRvZ2dsZXMgaW4gYSB0eXBpY2FsIHNldHRpbmdzIGNvbnRleHQifT4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICAgIDxoNCBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Tm90aWZpY2F0aW9uIFNldHRpbmdzPC9oND4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiUHVzaCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMgb24geW91ciBkZXZpY2UifQogICAgICAgICAgICAgIC5rZXk9JHsicHVzaCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkVtYWlsIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgaW1wb3J0YW50IHVwZGF0ZXMgdmlhIGVtYWlsIn0KICAgICAgICAgICAgICAua2V5PSR7ImVtYWlsIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiU291bmQifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJQbGF5IGEgc291bmQgZm9yIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgICAgIC5rZXk9JHsic291bmQifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJWaWJyYXRpb24ifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJWaWJyYXRlIGZvciBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAua2V5PSR7InZpYnJhdGlvbiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIFRvZ2dsZXMifSAuc3VidGl0bGU9JHsiQmF0Y2ggb3BlcmF0aW9ucyBvbiBtdWx0aXBsZSB0b2dnbGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vbiIgdHlwZT0ic2Vjb25kYXJ5Ij5FbmFibGUgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0idG9nZ2xlLWFsbC1vZmYiIHR5cGU9InNlY29uZGFyeSI+RGlzYWJsZSBBbGw8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLXRvZ2dsZXMiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkRhcmsgTW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJkYXJrTW9kZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF1dG8tc2F2ZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJhdXRvU2F2ZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWxsIGNoZWNrIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7InNwZWxsQ2hlY2sifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wZXIgbW9kZSJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJkZXZNb2RlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiQmV0YSBmZWF0dXJlcyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJiZXRhIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiVG9nZ2xlIHRvIHNlZSB2YWx1ZSBjaGFuZ2VzIGluIHJlYWwtdGltZSJ9PgogICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFpcnBsYW5lIG1vZGUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaXJwbGFuZS1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD1gQWlycGxhbmUgbW9kZTogJHt0LmRldGFpbD8iT04iOiJPRkYifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRG8gbm90IGRpc3R1cmIifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgQG5ld1ZhbHVlPSR7dD0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkbmQtb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9YERvIG5vdCBkaXN0dXJiOiAke3QuZGV0YWlsPyJFTkFCTEVEIjoiRElTQUJMRUQifWApfX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImFpcnBsYW5lLW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5BaXJwbGFuZSBtb2RlOiBPRkY8L2Rpdj4KICAgICAgICAgIDxkaXYgaWQ9ImRuZC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRvIG5vdCBkaXN0dXJiOiBESVNBQkxFRDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgJHV0LFpxLFd4LFhxPWIoKCk9Pnt1ZSgpO1R0KCk7QzEoKTtMdXQoKTtjYSgpO3FlKCk7JHV0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sWnE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFd4PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1pbnB1dC10b2dnbGUiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sJHV0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnA9PiJ2YWx1ZSJpbiBwLGdldDpwPT5wLnZhbHVlLHNldDoocCxsKT0+e3AudmFsdWU9bH19LG1ldGFkYXRhOmN9LG4sbyksJHV0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZD1pPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89VHV0O3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1acSh0aGlzLG4sITEpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShjKXt0aGlzLiNlPWN9Y3VycmVudFg9KFpxKHRoaXMsbyksMCk7aXNEcmFnZ2luZz0hMTtoYXNEcmFnZ2VkPSExO3N0YXJ0WD0wO3RyYWNrV2lkdGg9MzY7dHJhY2tIZWlnaHQ9MjA7a25vYlNpemU9MTQ7cGFkZGluZz0yO21heFRyYXZlbD0xNjtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5sYWJlbFBvc2l0aW9uPSJyaWdodCJ9c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG1hcmdpbi10b3A6IDFweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXI6aG92ZXIgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsdWVdKSAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC50b2dnbGUtdHJhY2s6Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLWtub2IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDJweDsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lOwogICAgICB9CgogICAgICAudG9nZ2xlLWtub2IuZHJhZ2dpbmcgewogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbHVlXSkgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogUmVxdWlyZWQgc3RhdGUgKGxvY2tlZCBvbikgKi8KICAgICAgOmhvc3QoW3JlcXVpcmVkXVt2YWx1ZV0pIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNjEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDQ5LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNjEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDQ5LjglKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbcmVxdWlyZWRdW3ZhbHVlXSkgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIExhYmVsICovCiAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC50b2dnbGUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuZGlzYWJsZWQ6aG92ZXIgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLyogRGVzY3JpcHRpb24gKi8KICAgICAgLmRlc2NyaXB0aW9uLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iIEBjbGljaz0iJHt0aGlzLmhhbmRsZUNsaWNrfSI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUtdHJhY2sgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVLZXlkb3dufSIKICAgICAgICAgID4KICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUta25vYiIKICAgICAgICAgICAgICBzdHlsZT0ibGVmdDogJHt0aGlzLnBhZGRpbmcrdGhpcy5jdXJyZW50WH1weDsiCiAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSIke3RoaXMub25Qb2ludGVyRG93bn0iCiAgICAgICAgICAgICAgQHBvaW50ZXJtb3ZlPSIke3RoaXMub25Qb2ludGVyTW92ZX0iCiAgICAgICAgICAgICAgQHBvaW50ZXJ1cD0iJHt0aGlzLm9uUG9pbnRlclVwfSIKICAgICAgICAgICAgICBAcG9pbnRlcmNhbmNlbD0iJHt0aGlzLm9uUG9pbnRlclVwfSIKICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICAke3RoaXMubGFiZWw/d2A8ZGl2IGNsYXNzPSJ0b2dnbGUtbGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj5gOiIifQogICAgICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/d2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbi10ZXh0Ij4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKGMpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChjKSx0aGlzLnJlcXVpcmVkJiYhdGhpcy52YWx1ZSYmKHRoaXMudmFsdWU9ITApLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFzeW5jIGhhbmRsZUNsaWNrKGMpe2lmKHRoaXMuaXNEcmFnZ2luZ3x8dGhpcy5oYXNEcmFnZ2VkKXtjLnN0b3BQcm9wYWdhdGlvbigpLGMucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoIXRoaXMuZGlzYWJsZWQpe2lmKHRoaXMucmVxdWlyZWQpe3RoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwsdGhpcy5yZXF1ZXN0VXBkYXRlKCksYXdhaXQgbmV3IFByb21pc2UocD0+c2V0VGltZW91dChwLDEwKSksdGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbC0zLHRoaXMucmVxdWVzdFVwZGF0ZSgpLGF3YWl0IE10LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwKSx0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLHRoaXMucmVxdWVzdFVwZGF0ZSgpO3JldHVybn1jLnN0b3BQcm9wYWdhdGlvbigpLGMucHJldmVudERlZmF1bHQoKSx0aGlzLnZhbHVlPSF0aGlzLnZhbHVlLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxNdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLnRoZW4oKCk9Pnt0aGlzLmhhc0RyYWdnZWQ9ITF9KX19b25Qb2ludGVyRG93bihjKXt0aGlzLnJlcXVpcmVkfHx0aGlzLmRpc2FibGVkfHwodGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuc3RhcnRYPWMuY2xpZW50WC10aGlzLmN1cnJlbnRYLGMudGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKGMucG9pbnRlcklkKSl9b25Qb2ludGVyTW92ZShjKXtpZighdGhpcy5pc0RyYWdnaW5nKXJldHVybjtsZXQgcD1jLmNsaWVudFgtdGhpcy5zdGFydFg7dGhpcy5oYXNEcmFnZ2VkPSEwO2xldCBsPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRvZ2dsZS1rbm9iIik7bCYmbC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY3VycmVudFg9TWF0aC5tYXgoMCxNYXRoLm1pbihwLHRoaXMubWF4VHJhdmVsKSksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9b25Qb2ludGVyVXAoYyl7aWYoIXRoaXMuaXNEcmFnZ2luZ3x8KGMudGFyZ2V0LnJlbGVhc2VQb2ludGVyQ2FwdHVyZShjLnBvaW50ZXJJZCksdGhpcy5pc0RyYWdnaW5nPSExLCF0aGlzLmhhc0RyYWdnZWQpKXJldHVybjtsZXQgcD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUta25vYiIpO3AmJnAuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKTtsZXQgbD10aGlzLm1heFRyYXZlbC8yO3RoaXMudmFsdWU9dGhpcy5jdXJyZW50WD5sLHRoaXMuY3VycmVudFg9dGhpcy52YWx1ZT90aGlzLm1heFRyYXZlbDowLHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxNdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLnRoZW4oKCk9Pnt0aGlzLmhhc0RyYWdnZWQ9ITF9KX11cGRhdGVkKGMpe3N1cGVyLnVwZGF0ZWQoYyksYy5oYXMoInZhbHVlIikmJiF0aGlzLmlzRHJhZ2dpbmcmJiF0aGlzLmhhc0RyYWdnZWQmJih0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9aGFuZGxlS2V5ZG93bihjKXsoYy5rZXk9PT0iICJ8fGMua2V5PT09IkVudGVyIikmJihjLnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVDbGljayhjKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShjKXt0aGlzLnZhbHVlPWN9Zm9jdXMoKXtsZXQgYz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUtdHJhY2siKTtjJiZjLmZvY3VzKCl9c3RhdGlje1pxKGksYSl9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciBBdXQsRHV0PWIoKCk9Pnt1ZSgpO0F1dD0oKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtRYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbmZvLWJveCB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlM2YyZmQ7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogIzE5NzZkMjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmluZm8tYm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlM2E1ZjsKICAgICAgICAgICAgY29sb3I6ICM5MGNhZjk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVHlwZSBMaXN0In0gLnN1YnRpdGxlPSR7IkFkZCBhbmQgcmVtb3ZlIGl0ZW1zIGZyb20gYSBsaXN0In0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIHRhZ3MgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlciJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siamF2YXNjcmlwdCIsInR5cGVzY3JpcHQiLCJ3ZWItY29tcG9uZW50cyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJhbGljZUBleGFtcGxlLmNvbSIsImJvYkBleGFtcGxlLmNvbSJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNraWxscyAmIEtleXdvcmRzIn0gLnN1YnRpdGxlPSR7Ik1hbmFnZSBsaXN0cyBvZiBza2lsbHMgYW5kIGtleXdvcmRzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IllvdXIgU2tpbGxzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ikxpc3QgeW91ciBwcm9mZXNzaW9uYWwgc2tpbGxzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJIVE1MIiwiQ1NTIiwiSmF2YVNjcmlwdCIsIk5vZGUuanMiLCJSZWFjdCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJDYXRlZ29yaWVzIn0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siVGVjaG5vbG9neSIsIkRlc2lnbiIsIkJ1c2luZXNzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiS2V5d29yZHMifQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJpbm5vdmF0aW9uIiwic3RhcnR1cCIsImdyb3d0aCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBpbnB1dCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBEZXBlbmRlbmNpZXMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTGlzdCBhbGwgcmVxdWlyZWQgbnBtIHBhY2thZ2VzIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0ke1siQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IiwiQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiU3lzdGVtIFRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhlc2UgdGFncyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0ke1sic3lzdGVtIiwicHJvdGVjdGVkIiwicmVhZG9ubHkiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJBcnRpY2xlIFB1Ymxpc2hpbmcgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmb3JtIHdpdGggdGFnIG1hbmFnZW1lbnQifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQXJ0aWNsZSBUaXRsZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTdW1tYXJ5In0gCiAgICAgICAgICAgIC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGFydGljbGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIHJlbGV2YW50IHRhZ3MgZm9yIGJldHRlciBkaXNjb3ZlcmFiaWxpdHkifQogICAgICAgICAgICAudmFsdWU9JHtbInR1dG9yaWFsIiwid2ViLWRldmVsb3BtZW50Il19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IkNvLUF1dGhvcnMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiBjby1hdXRob3JzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1ib3giPgogICAgICAgICAgPHN0cm9uZz5UaXA6PC9zdHJvbmc+IFR5cGUgYSB2YWx1ZSBhbmQgcHJlc3MgRW50ZXIgdG8gYWRkIGl0IHRvIHRoZSBsaXN0LiBDbGljayBvbiBhbnkgaXRlbSB0byByZW1vdmUgaXQuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBLcSxNOCxHeCxRcT1iKCgpPT57dWUoKTtUdCgpO0MxKCk7RHV0KCk7cWUoKTtLcT1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LE04PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxHeD0oKCk9PntsZXQgdD1baGUoImRlZXMtaW5wdXQtdHlwZWxpc3QiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10scD1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpBcnJheX0pXSxkPVtKKCldLEtxKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJ2YWx1ZSJpbiBnLGdldDpnPT5nLnZhbHVlLHNldDooZyx5KT0+e2cudmFsdWU9eX19LG1ldGFkYXRhOmZ9LG4sbyksS3EodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iaW5wdXRWYWx1ZSJpbiBnLGdldDpnPT5nLmlucHV0VmFsdWUsc2V0OihnLHkpPT57Zy5pbnB1dFZhbHVlPXl9fSxtZXRhZGF0YTpmfSxjLHApLEtxKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmZ9LG51bGwsYSksbD1pPWUudmFsdWUsZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmfSl9c3RhdGljIGRlbW89QXV0O3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1NOCh0aGlzLG4sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShmKXt0aGlzLiNlPWZ9I3Q9KE04KHRoaXMsbyksTTgodGhpcyxjLCIiKSk7Z2V0IGlucHV0VmFsdWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaW5wdXRWYWx1ZShmKXt0aGlzLiN0PWZ9c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KICAgICAgLm1haW5ib3ggewogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMyMjIyMjIiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBib3JkZXItdG9wOiAke2guYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJvcmRlci1ib3R0b206ICR7aC5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjMjIyIil9OwogICAgICAgIGJvcmRlci1yaWdodDogJHtoLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICNmZmZmZmYxMCIpfTsKICAgICAgICBib3JkZXItbGVmdDogJHtoLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICNmZmZmZmYxMCIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMHB4IDFweCA0cHggcmdiYSgwLDAsMCwwLjMpIiwibm9uZSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYWluYm94OmhvdmVyIHsKICAgICAgICBmaWx0ZXI6ICR7aC5iZFRoZW1lKCJicmlnaHRuZXNzKDAuOTgpIiwiYnJpZ2h0bmVzcygxLjA1KSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1haW5ib3g6Zm9jdXMtd2l0aGluIHsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgJHtoLmJkVGhlbWUoIiMwMDY5ZjIiLCIjMDA4NGZmIil9OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OwogICAgICB9CgogICAgICAudGFncyB7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5ub3RhZ3MgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjVmNWY1IiwiIzE4MTgxOCIpfTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4OwogICAgICAgIGhlaWdodDogMHB4OwogICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjJzOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgIH0KCiAgICAgIGlucHV0OmZvY3VzIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMWExYTFhIil9OwogICAgICB9CiAgICAgIAogICAgICBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgIH0KCiAgICAgIC50YWcgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U4ZjVlOSIsIiMyZDNhMmQiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMmU3ZDMyIiwiIzgxYzc4NCIpfTsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNjOGU2YzkiLCIjMWI1ZTIwIil9OwogICAgICB9CiAgICAgIAogICAgICAudGFnOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2M4ZTZjOSIsIiMzZDRmM2QiKX07CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICB9CgogICAgICAudGFnIC5yZW1vdmUgewogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC50YWcgLnJlbW92ZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNjNjI4MjgiLCIjZWY1MzUwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICA6aG9zdChbZGlzYWJsZWRdKSAubWFpbmJveCB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWdzIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudGFnIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgaW5wdXQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0idGFncyIgQGNsaWNrPSR7KCk9Pnt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpfX0+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZS5sZW5ndGg9PT0wP3dgPGRpdiBjbGFzcz0ibm90YWdzIj5ObyB0YWdzIHlldDwvZGl2PmA6dGhpcy52YWx1ZS5tYXAoZj0+d2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFnIj4KICAgICAgICAgICAgICAgICAgICAgICR7Zn0KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJyZW1vdmUiIEBjbGljaz0ke2c9PntnLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMucmVtb3ZlVGFnKGYpfX0+w5c8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJUeXBlLCBwcmVzcyBFbnRlciB0byBhZGQgaXQuLi4iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuaW5wdXRWYWx1ZX0KICAgICAgICAgICAgQGlucHV0PSR7Zj0+e3RoaXMuaW5wdXRWYWx1ZT1mLnRhcmdldC52YWx1ZX19CiAgICAgICAgICAgIEBrZXlkb3duPSR7Zj0+e2Yua2V5PT09IkVudGVyIiYmdGhpcy5pbnB1dFZhbHVlLnRyaW0oKSYmKGYucHJldmVudERlZmF1bHQoKSx0aGlzLmFkZFRhZyh0aGlzLmlucHV0VmFsdWUudHJpbSgpKSl9fQogICAgICAgICAgICAuZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgLz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFkZFRhZyhmKXt0aGlzLnZhbHVlLmluY2x1ZGVzKGYpfHwodGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxmXSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfXJlbW92ZVRhZyhmKXt0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKGc9PmchPT1mKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGYpe3RoaXMudmFsdWU9Zn1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTTgodGhpcyxwKX1zdGF0aWN7TTgoaSxhKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIEV1dCxQdXQ9YigoKT0+e0pxKCk7cjIoKTt1ZSgpO0V1dD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vV3JhcHBlciB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA1JSkiKX07CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7CiAgICAgIH0KICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KICAgICAgLmRlbW8tZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIC50aGVtZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDE2cHg7CiAgICAgICAgcmlnaHQ6IDE2cHg7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkZWVzLWJ1dHRvbiBjbGFzcz0idGhlbWUtdG9nZ2xlIiBAY2xpY2s9JHsoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiYnJpZ2h0IiksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJkYXJrIil9fT5Ub2dnbGUgVGhlbWU8L2RlZXMtYnV0dG9uPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5CYXNpYyBUYWJsZSB3aXRoIEFjdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5BIHN0YW5kYXJkIHRhYmxlIHdpdGggcm93IGFjdGlvbnMsIGVkaXRhYmxlIGZpZWxkcywgYW5kIGNvbnRleHQgbWVudSBzdXBwb3J0LiBEb3VibGUtY2xpY2sgb24gZGVzY3JpcHRpb25zIHRvIGVkaXQuIEdyaWQgbGluZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJDdXJyZW50IEFjY291bnQgU3RhdGVtZW50IgogICAgICAgICAgaGVhZGluZzI9IkJ1bnEgLSBQYXltZW50IEFjY291bnQgMiAtIEFwcmlsIDIwMjEiCiAgICAgICAgICAuZWRpdGFibGVGaWVsZHM9IiR7WyJkZXNjcmlwdGlvbiJdfSIKICAgICAgICAgIC5kYXRhPSR7W3tkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixkZXNjcmlwdGlvbjoiUHJpbnRpbmcgUGFwZXIgKE9mZmljZSBTdXBwbGllcykgLSBTVEFQTEVTIEJSRU1FTiJ9LHtkYXRlOiIyMDIxLTA0LTAyIixhbW91bnQ6IjE2NS42NSBcdTIwQUMiLGRlc2NyaXB0aW9uOiJMb2dpdGVjaCBNb3VzZSAoSGFyZHdhcmUpIC0gbG9naS5jb20gT25saW5lU2hvcCJ9LHtkYXRlOiIyMDIxLTA0LTAzIixhbW91bnQ6IjI5OTksMDAgXHUyMEFDIixkZXNjcmlwdGlvbjoiTWFjYm9vayBQcm8gMTZpbmNoIChIYXJkd2FyZSkgLSBBcHBsZS5kZSBPbmxpbmVTaG9wIn0se2RhdGU6IjIwMjEtMDQtMDEiLGFtb3VudDoiMjQ2NC42NSBcdTIwQUMiLGRlc2NyaXB0aW9uOiJPZmZpY2UtU3VwcGxpZXMgLSBTVEFQTEVTIEJSRU1FTiJ9LHtkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixkZXNjcmlwdGlvbjoiT2ZmaWNlLVN1cHBsaWVzIC0gU1RBUExFUyBCUkVNRU4ifV19CiAgICAgICAgICBkYXRhTmFtZT0idHJhbnNhY3Rpb25zIgogICAgICAgICAgLmRhdGFBY3Rpb25zPSIke1t7bmFtZToidXBsb2FkIixpY29uTmFtZToiYmVsbCIsdXNlVGFibGVCZWhhdmlvdXI6InVwbG9hZCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyB0PT57YWxlcnQodC5pdGVtLmFtb3VudCl9fSx7bmFtZToidmlzaWJpbGl0eSIsaWNvbk5hbWU6ImNvcHkiLHR5cGU6WyJpblJvdyJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOmFzeW5jIHQ9Pnt9fSx7bmFtZToiY3JlYXRlIG5ldyIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsdHlwZTpbImhlYWRlciJdLHVzZVRhYmxlQmVoYXZpb3VyOiJwcmV2aWV3IixhY3Rpb25GdW5jOmFzeW5jIHQ9Pnt9fSx7bmFtZToidG8gZ2FsbGVyeSIsaWNvbk5hbWU6Im1lc3NhZ2UiLHR5cGU6WyJmb290ZXIiXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzphc3luYyB0PT57fX0se25hbWU6ImNvcHkiLGljb25OYW1lOiJjb3B5U29saWQiLHR5cGU6WyJjb250ZXh0bWVudSIsImluUm93Il0sYWN0aW9uOmFzeW5jKCk9Pm51bGx9LHtuYW1lOiJlZGl0IChmcm9tIGRlbW8pIixpY29uTmFtZToicGVuVG9TcXVhcmUiLHR5cGU6WyJjb250ZXh0bWVudSJdLGFjdGlvbjphc3luYygpPT5udWxsfSx7bmFtZToicGFzdGUiLGljb25OYW1lOiJwYXN0ZVNvbGlkIix0eXBlOlsiY29udGV4dG1lbnUiXSxhY3Rpb246YXN5bmMoKT0+bnVsbH0se25hbWU6InByZXZpZXciLHR5cGU6WyJkb3VibGVDbGljayIsImNvbnRleHRtZW51Il0saWNvbk5hbWU6ImV5ZSIsYWN0aW9uRnVuYzphc3luYyB0PT4oYWxlcnQodC5pdGVtLmFtb3VudCksbnVsbCl9XX0iCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBWZXJ0aWNhbCBMaW5lczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVuaGFuY2VkIGNvbHVtbiBzZXBhcmF0aW9uIGZvciBiZXR0ZXIgZGF0YSB0cmFja2luZy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJQcm9kdWN0IEludmVudG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJDdXJyZW50IHN0b2NrIGxldmVscyBhY3Jvc3Mgd2FyZWhvdXNlcyIKICAgICAgICAgIC5zaG93VmVydGljYWxMaW5lcz0keyEwfQogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6J01hY0Jvb2sgUHJvIDE2Iicsd2FyZWhvdXNlX2E6IjQ1Iix3YXJlaG91c2VfYjoiMzIiLHdhcmVob3VzZV9jOiIyOCIsdG90YWw6IjEwNSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifSx7cHJvZHVjdDoiaVBob25lIDE1IFBybyIsd2FyZWhvdXNlX2E6IjEyMCIsd2FyZWhvdXNlX2I6Ijg5Iix3YXJlaG91c2VfYzoiMTU2Iix0b3RhbDoiMzY1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9LHtwcm9kdWN0OiJBaXJQb2RzIFBybyIsd2FyZWhvdXNlX2E6IjAiLHdhcmVob3VzZV9iOiIxMiIsd2FyZWhvdXNlX2M6IjUiLHRvdGFsOiIxNyIsc3RhdHVzOiJcdTI2QTAgTG93IFN0b2NrIn0se3Byb2R1Y3Q6ImlQYWQgQWlyIix3YXJlaG91c2VfYToiMjMiLHdhcmVob3VzZV9iOiI0NSIsd2FyZWhvdXNlX2M6IjY3Iix0b3RhbDoiMTM1IixzdGF0dXM6Ilx1MjcxMyBJbiBTdG9jayJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwcm9kdWN0cyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEZ1bGwgR3JpZDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkNvbXBsZXRlIGdyaWQgbGluZXMgZm9yIG1heGltdW0gcmVhZGFiaWxpdHkgYW5kIHN0cnVjdHVyZS48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTZXJ2ZXIgTW9uaXRvcmluZyBEYXNoYm9hcmQiCiAgICAgICAgICBoZWFkaW5nMj0iUmVhbC10aW1lIG1ldHJpY3MgYWNyb3NzIHJlZ2lvbnMiCiAgICAgICAgICAuc2hvd0dyaWQ9JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tzZXJ2ZXI6IkFQSS0xIixyZWdpb246IlVTLUVhc3QiLGNwdToiNDUlIixtZW1vcnk6IjYyJSIsZGlzazoiNzglIixsYXRlbmN5OiIxMm1zIix1cHRpbWU6Ijk5LjklIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiQVBJLTIiLHJlZ2lvbjoiRVUtV2VzdCIsY3B1OiIzOCUiLG1lbW9yeToiNTUlIixkaXNrOiI0NSUiLGxhdGVuY3k6IjI1bXMiLHVwdGltZToiOTkuOCUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJEQi1NYXN0ZXIiLHJlZ2lvbjoiVVMtRWFzdCIsY3B1OiI3MiUiLG1lbW9yeToiODElIixkaXNrOiI5MiUiLGxhdGVuY3k6IjhtcyIsdXB0aW1lOiIxMDAlIixzdGF0dXM6Ilx1ezFGN0UxfSBXYXJuaW5nIn0se3NlcnZlcjoiREItUmVwbGljYSIscmVnaW9uOiJFVS1XZXN0IixjcHU6IjIzJSIsbWVtb3J5OiIzNCUiLGRpc2s6IjQ1JSIsbGF0ZW5jeToiMTVtcyIsdXB0aW1lOiI5OS43JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkNhY2hlLTEiLHJlZ2lvbjoiQVAtU291dGgiLGNwdToiODklIixtZW1vcnk6IjkyJSIsZGlzazoiMTIlIixsYXRlbmN5OiIxMjBtcyIsdXB0aW1lOiI5OC41JSIsc3RhdHVzOiJcdXsxRjUzNH0gQ3JpdGljYWwifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2VydmVycyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6IlNTSCBDb25uZWN0IixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmFzeW5jIHQ9Pntjb25zb2xlLmxvZygiQ29ubmVjdGluZyB0bzoiLHQuaXRlbS5zZXJ2ZXIpfX0se25hbWU6IlZpZXcgTG9ncyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlLXRleHQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzphc3luYyB0PT57Y29uc29sZS5sb2coIlZpZXdpbmcgbG9ncyBmb3I6Iix0Lml0ZW0uc2VydmVyKX19LHtuYW1lOiJSZXN0YXJ0IFNlcnZlciIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoLWN3Iix0eXBlOlsiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmFzeW5jIHQ9Pntjb25zb2xlLmxvZygiUmVzdGFydGluZzoiLHQuaXRlbS5zZXJ2ZXIpfX1dfSIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5UYWJsZSB3aXRoIEhvcml6b250YWwgTGluZXMgT25seTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkVtcGhhc2lzIG9uIHJvdyBzZXBhcmF0aW9uIHdpdGhvdXQgY29sdW1uIGRpdmlkZXJzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFBlcmZvcm1hbmNlIgogICAgICAgICAgaGVhZGluZzI9IlRvcCBwZXJmb3JtZXJzIHRoaXMgcXVhcnRlciIKICAgICAgICAgIC5zaG93SG9yaXpvbnRhbExpbmVzPSR7ITB9CiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHshMX0KICAgICAgICAgIC5kYXRhPSR7W3tzYWxlc3BlcnNvbjoiRW1pbHkgSm9obnNvbiIscmVnaW9uOiJOb3J0aCBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjQyIixyZXZlbnVlOiIkMS4yTSIscXVvdGFfYWNoaWV2ZW1lbnQ6IjEyOCUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJNaWNoYWVsIENoZW4iLHJlZ2lvbjoiQXNpYSBQYWNpZmljIixkZWFsc19jbG9zZWQ6IjM4IixyZXZlbnVlOiIkOTgwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6IjExNSUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJTYXJhaCBXaWxsaWFtcyIscmVnaW9uOiJFdXJvcGUiLGRlYWxzX2Nsb3NlZDoiMzUiLHJldmVudWU6IiQ4NzVLIixxdW90YV9hY2hpZXZlbWVudDoiMTA4JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifSx7c2FsZXNwZXJzb246IkRhdmlkIEdhcmNpYSIscmVnaW9uOiJMYXRpbiBBbWVyaWNhIixkZWFsc19jbG9zZWQ6IjMxIixyZXZlbnVlOiIkNzUwSyIscXVvdGFfYWNoaWV2ZW1lbnQ6Ijk1JSIscmF0aW5nOiJcdTJCNTBcdTJCNTBcdTJCNTBcdTJCNTAifV19CiAgICAgICAgICBkYXRhTmFtZT0ic2FsZXMgcmVwcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TaW1wbGUgVGFibGUgKE5vIEdyaWQpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+Q2xlYW4sIG1pbmltYWwgZGVzaWduIHdpdGhvdXQgZ3JpZCBsaW5lcy4gU2V0IHNob3dHcmlkIHRvIGZhbHNlIHRvIGRpc2FibGUgdGhlIGRlZmF1bHQgZ3JpZC48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJUZWFtIE1lbWJlcnMiCiAgICAgICAgICBoZWFkaW5nMj0iRW5naW5lZXJpbmcgRGVwYXJ0bWVudCIKICAgICAgICAgIC5zaG93R3JpZD0keyExfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkxlYWQgRW5naW5lZXIiLGVtYWlsOiJhbGljZUBjb21wYW55LmNvbSIsbG9jYXRpb246IlNhbiBGcmFuY2lzY28iLGpvaW5lZDoiMjAyMC0wMy0xNSJ9LHtuYW1lOiJCb2IgU21pdGgiLHJvbGU6IlNlbmlvciBEZXZlbG9wZXIiLGVtYWlsOiJib2JAY29tcGFueS5jb20iLGxvY2F0aW9uOiJOZXcgWW9yayIsam9pbmVkOiIyMDE5LTA3LTIyIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLHJvbGU6IkRldk9wcyBFbmdpbmVlciIsZW1haWw6ImNoYXJsaWVAY29tcGFueS5jb20iLGxvY2F0aW9uOiJMb25kb24iLGpvaW5lZDoiMjAyMS0wMS0xMCJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRnJvbnRlbmQgRGV2ZWxvcGVyIixlbWFpbDoiZGlhbmFAY29tcGFueS5jb20iLGxvY2F0aW9uOiJCYXJjZWxvbmEiLGpvaW5lZDoiMjAyMi0wNS0xOCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJ0ZWFtIG1lbWJlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBDdXN0b20gRGlzcGxheSBGdW5jdGlvbjwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlRyYW5zZm9ybSBkYXRhIGZvciBkaXNwbGF5IHVzaW5nIGN1c3RvbSBmb3JtYXR0aW5nLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlNhbGVzIFJlcG9ydCIKICAgICAgICAgIGhlYWRpbmcyPSJRNCAyMDIzIFBlcmZvcm1hbmNlIgogICAgICAgICAgLmRhdGE9JHtbe3Byb2R1Y3Q6IkVudGVycHJpc2UgTGljZW5zZSIsdW5pdHM6NDUscmV2ZW51ZToyMjVlMyxncm93dGg6LjIzLGZvcmVjYXN0OjI4ZTR9LHtwcm9kdWN0OiJQcm9mZXNzaW9uYWwgTGljZW5zZSIsdW5pdHM6MTI4LHJldmVudWU6MTI4ZTMsZ3Jvd3RoOi4xNSxmb3JlY2FzdDoxNDdlM30se3Byb2R1Y3Q6IlN0YXJ0ZXIgTGljZW5zZSIsdW5pdHM6MzQyLHJldmVudWU6Njg0MDAsZ3Jvd3RoOi40Mixmb3JlY2FzdDo5N2UzfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7dD0+KHtQcm9kdWN0OnQucHJvZHVjdCwiVW5pdHMgU29sZCI6dC51bml0cy50b0xvY2FsZVN0cmluZygpLFJldmVudWU6IiQiK3QucmV2ZW51ZS50b0xvY2FsZVN0cmluZygpLEdyb3d0aDoodC5ncm93dGgqMTAwKS50b0ZpeGVkKDEpKyIlIiwiUTEgMjAyNCBGb3JlY2FzdCI6IiQiK3QuZm9yZWNhc3QudG9Mb2NhbGVTdHJpbmcoKX0pfQogICAgICAgICAgZGF0YU5hbWU9InByb2R1Y3RzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkVtcHR5IFRhYmxlIFN0YXRlPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+SG93IHRoZSB0YWJsZSBsb29rcyB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9Ik5vIERhdGEgQXZhaWxhYmxlIgogICAgICAgICAgaGVhZGluZzI9IlRoaXMgdGFibGUgaXMgY3VycmVudGx5IGVtcHR5IgogICAgICAgICAgLmRhdGE9JHtbXX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY2hlbWEtRmlyc3QgQ29sdW1ucyAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkRlZmluZXMgY29sdW1ucyBleHBsaWNpdGx5IGFuZCByZW5kZXJzIHZpYSBzY2hlbWEuIE5vIGRpc3BsYXlGdW5jdGlvbiBuZWVkZWQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFNjaGVtYS1GaXJzdCkiCiAgICAgICAgICBoZWFkaW5nMj0iQ29sdW1ucyBkZWZpbmUgcmVuZGVyaW5nIGFuZCBvcmRlciIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixyZW5kZXJlcjp0PT53YDxkZWVzLWJhZGdlPiR7dH08L2RlZXMtYmFkZ2U+YH0se2tleToiam9pbmVkQXQiLGhlYWRlcjoiSm9pbmVkIixyZW5kZXJlcjp0PT5uZXcgRGF0ZSh0KS50b0xvY2FsZURhdGVTdHJpbmcoKX1dfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIixlbWFpbDoiYWxpY2VAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIyLTA4LTAxIn0se25hbWU6IkJvYiIsZW1haWw6ImJvYkBleGFtcGxlLmNvbSIsam9pbmVkQXQ6IjIwMjEtMTItMTEifSx7bmFtZToiQ2Fyb2wiLGVtYWlsOiJjYXJvbEBleGFtcGxlLmNvbSIsam9pbmVkQXQ6IjIwMjMtMDMtMjIifV19CiAgICAgICAgICBkYXRhTmFtZT0idXNlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UGFydGlhbCBTY2hlbWEgKyBBdWdtZW50IChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+UHJvdmlkZXMgb25seSB0aGUgaW1wb3J0YW50IGNvbHVtbnM7IHRoZSByZXN0IGFyZSBtZXJnZWQgaW4gZnJvbSBkaXNwbGF5RnVuY3Rpb24uPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVXNlcnMgKFBhcnRpYWwgKyBBdWdtZW50KSIKICAgICAgICAgIGhlYWRpbmcyPSJNaXNzaW5nIGNvbHVtbnMgYXJlIGRlcml2ZWQiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfV19CiAgICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7dD0+KHtuYW1lOnQubmFtZSxlbWFpbDp0LmVtYWlsLHJvbGU6dC5yb2xlfSl9CiAgICAgICAgICAuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJFcmluIixlbWFpbDoiZXJpbkBleGFtcGxlLmNvbSIscm9sZToiQWRtaW4ifSx7bmFtZToiRmlubiIsZW1haWw6ImZpbm5AZXhhbXBsZS5jb20iLHJvbGU6IlVzZXIifSx7bmFtZToiR2luYSIsZW1haWw6ImdpbmFAZXhhbXBsZS5jb20iLHJvbGU6IlVzZXIifV19CiAgICAgICAgICBkYXRhTmFtZT0idXNlcnMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iIAogICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHt0PT57Y29uc29sZS5sb2coIlNlbGVjdGlvbiBjaGFuZ2VkIix0LmRldGFpbCl9fQogICAgICAgICAgIEBzZWFyY2gtY2hhbmdlZD0ke3Q9PntsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFibGVGaWx0ZXJTZWxlY3REZW1vIik7ZSYmZS5zZXRGaWx0ZXJUZXh0KHQuZGV0YWlsLnZhbHVlKX19CiAgICAgICAgICAgQHNlYXJjaC1zdWJtaXQ9JHt0PT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO2UmJmUuc2V0RmlsdGVyVGV4dCh0LmRldGFpbC52YWx1ZSl9fQogICAgICA+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5GaWx0ZXJpbmcgKyBNdWx0aS1TZWxlY3Rpb24gKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5Vc2UgdGhlIHNlYXJjaCBiYXIgdG8gZmlsdGVyIHJvd3M7IHRvZ2dsZSBzZWxlY3Rpb24gdmlhIGNoZWNrYm94ZXMuIENsaWNrIGhlYWRlcnMgdG8gc29ydC48L3A+CiAgICAgICAgPGRlZXMtc2VhcmNoYmFyPjwvZGVlcy1zZWFyY2hiYXI+CiAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMnB4Ij48L2Rpdj4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaWQ9InRhYmxlRmlsdGVyU2VsZWN0RGVtbyIKICAgICAgICAgIGhlYWRpbmcxPSJJbnZlbnRvcnkgKEZpbHRlciArIFNlbGVjdCkiCiAgICAgICAgICBoZWFkaW5nMj0iVHJ5IHR5cGluZyB0byBmaWx0ZXIgYW5kIHNlbGVjdGluZyBtdWx0aXBsZSByb3dzIgogICAgICAgICAgLnNlbGVjdGlvbk1vZGU9JHsibXVsdGkifQogICAgICAgICAgLnJvd0tleT0keyJza3UifQogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToic2t1IixoZWFkZXI6IlNLVSIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InN0b2NrIixoZWFkZXI6IlN0b2NrIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe3NrdToiQS0xMDAiLG5hbWU6IlVTQi1DIENhYmxlIixzdG9jazoxMjB9LHtza3U6IkEtMTAxIixuYW1lOiJXaXJlbGVzcyBNb3VzZSIsc3RvY2s6NTV9LHtza3U6IkEtMTAyIixuYW1lOiJMYXB0b3AgU3RhbmQiLHN0b2NrOjE4fSx7c2t1OiJCLTIwMCIsbmFtZToiS2V5Ym9hcmQgKElTTykiLHN0b2NrOjg5fSx7c2t1OiJCLTIwMSIsbmFtZToiSERNSSBBZGFwdGVyIixzdG9jazowfSx7c2t1OiJDLTMwMCIsbmFtZToiV2ViY2FtIDEwODBwIixzdG9jazo0Mn1dfQogICAgICAgICAgZGF0YU5hbWU9Iml0ZW1zIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkNvbHVtbiBGaWx0ZXJzICsgU3RpY2t5IEhlYWRlciAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlBlci1jb2x1bW4gcXVpY2sgZmlsdGVycyBhbmQgc3RpY2t5IGhlYWRlciB3aXRoIGludGVybmFsIHNjcm9sbC4gVHJ5IGZpbHRlcmluZyB0aGUgTmFtZSBjb2x1bW4uIFVzZXMgLS10YWJsZS1tYXgtaGVpZ2h0IHZhci48L3A+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgZGVlcy10YWJsZVtzdGlja3ktaGVhZGVyXSB7IC0tdGFibGUtbWF4LWhlaWdodDogMjIwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iRW1wbG95ZWVzIgogICAgICAgICAgaGVhZGluZzI9IlF1aWNrIGZpbHRlciBwZXIgY29sdW1uICsgc3RpY2t5IGhlYWRlciIKICAgICAgICAgIC5zaG93Q29sdW1uRmlsdGVycz0keyEwfQogICAgICAgICAgLnN0aWNreUhlYWRlcj0keyEwfQogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwiLHNvcnRhYmxlOiEwfSx7a2V5OiJkZXBhcnRtZW50IixoZWFkZXI6IkRlcGFydG1lbnQiLHNvcnRhYmxlOiEwfV19CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiQWxpY2UgSm9obnNvbiIsZW1haWw6ImFsaWNlQGNvcnAuY29tIixkZXBhcnRtZW50OiJFbmdpbmVlcmluZyJ9LHtuYW1lOiJCb2IgU21pdGgiLGVtYWlsOiJib2JAY29ycC5jb20iLGRlcGFydG1lbnQ6IlNhbGVzIn0se25hbWU6IkNoYXJsaWUgRGF2aXMiLGVtYWlsOiJjaGFybGllQGNvcnAuY29tIixkZXBhcnRtZW50OiJIUiJ9LHtuYW1lOiJEaWFuYSBNYXJ0aW5leiIsZW1haWw6ImRpYW5hQGNvcnAuY29tIixkZXBhcnRtZW50OiJFbmdpbmVlcmluZyJ9LHtuYW1lOiJFdGhhbiBCcm93biIsZW1haWw6ImV0aGFuQGNvcnAuY29tIixkZXBhcnRtZW50OiJGaW5hbmNlIn0se25hbWU6IkZpb25hIENsYXJrIixlbWFpbDoiZmlvbmFAY29ycC5jb20iLGRlcGFydG1lbnQ6IlNhbGVzIn0se25hbWU6IkdyYWNlIExlZSIsZW1haWw6ImdyYWNlQGNvcnAuY29tIixkZXBhcnRtZW50OiJFbmdpbmVlcmluZyJ9LHtuYW1lOiJIZW5yeSBXaWxzb24iLGVtYWlsOiJoZW5yeUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiTWFya2V0aW5nIn0se25hbWU6IklyZW5lIFdhbGtlciIsZW1haWw6ImlyZW5lQGNvcnAuY29tIixkZXBhcnRtZW50OiJGaW5hbmNlIn0se25hbWU6IkphY2sgVHVybmVyIixlbWFpbDoiamFja0Bjb3JwLmNvbSIsZGVwYXJ0bWVudDoiU3VwcG9ydCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJlbXBsb3llZXMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iCiAgICAgICAgQHNlYXJjaFJlcXVlc3Q9JHthc3luYyB0PT57bGV0e3F1ZXJ5OmV9PXQuZGV0YWlsfHx7cXVlcnk6IiJ9LGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlcnZlclNlYXJjaERlbW8iKSxpPVt7aWQ6MSxuYW1lOiJBbGljZSIsY2l0eToiQmVybGluIix0aXRsZToiRW5naW5lZXIifSx7aWQ6MixuYW1lOiJCb2IiLGNpdHk6IlBhcmlzIix0aXRsZToiRGVzaWduZXIifSx7aWQ6MyxuYW1lOiJDaGFybGllIixjaXR5OiJMb25kb24iLHRpdGxlOiJNYW5hZ2VyIn0se2lkOjQsbmFtZToiRGlhbmEiLGNpdHk6Ik1hZHJpZCIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjUsbmFtZToiRXRoYW4iLGNpdHk6IlJvbWUiLHRpdGxlOiJTdXBwb3J0In1dO2F3YWl0IG5ldyBQcm9taXNlKG49PnNldFRpbWVvdXQobiwzMDApKTtsZXQgcj1TdHJpbmcoZXx8IiIpLnRvTG93ZXJDYXNlKCkscz1yP2kuZmlsdGVyKG49Pk9iamVjdC52YWx1ZXMobikuc29tZShvPT5TdHJpbmcobykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhyKSkpOmk7YS5kYXRhPXN9fQogICAgICA+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TZXJ2ZXIgU2VhcmNoIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+U2VsZWN0IFNlcnZlciBtb2RlLCB0eXBlIGEgcXVlcnksIGFuZCB3YXRjaCB0aGUgdGFibGUgZmV0Y2ggc2ltdWxhdGVkIHJlc3VsdHMuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBpZD0ic2VydmVyU2VhcmNoRGVtbyIKICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgKFNlcnZlciBTZWFyY2gpIgogICAgICAgICAgaGVhZGluZzI9IkNsaWNrIFNlYXJjaCwgY2hvb3NlIFNlcnZlciBtb2RlLCBhbmQgdHlwZSIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSJ9LHtrZXk6ImNpdHkiLGhlYWRlcjoiQ2l0eSJ9LHtrZXk6InRpdGxlIixoZWFkZXI6IlRpdGxlIn1dfQogICAgICAgICAgLmRhdGE9JHtbe2lkOjEsbmFtZToiQWxpY2UiLGNpdHk6IkJlcmxpbiIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjIsbmFtZToiQm9iIixjaXR5OiJQYXJpcyIsdGl0bGU6IkRlc2lnbmVyIn0se2lkOjMsbmFtZToiQ2hhcmxpZSIsY2l0eToiTG9uZG9uIix0aXRsZToiTWFuYWdlciJ9LHtpZDo0LG5hbWU6IkRpYW5hIixjaXR5OiJNYWRyaWQiLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDo1LG5hbWU6IkV0aGFuIixjaXR5OiJSb21lIix0aXRsZToiU3VwcG9ydCJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJwZW9wbGUiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+V2lkZSBQcm9wZXJ0aWVzICsgTWFueSBBY3Rpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QSB0YWJsZSB3aXRoIG1hbnkgY29sdW1ucyBhbmQgcmljaCBhY3Rpb25zIHRvIHN0cmVzcyB0ZXN0IGxheW91dCBhbmQgc3RpY2t5IEFjdGlvbnMuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSIKICAgICAgICAgIGhlYWRpbmcyPSJNYW55IHByb3BlcnRpZXMgYW5kIGFjdGlvbnMiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJpZCIsaGVhZGVyOiJJRCIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InJvbGUiLGhlYWRlcjoiUm9sZSIsc29ydGFibGU6ITB9LHtrZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIn0se2tleToicGhvbmUiLGhlYWRlcjoiUGhvbmUifSx7a2V5OiJsb2NhdGlvbiIsaGVhZGVyOiJMb2NhdGlvbiIsc29ydGFibGU6ITB9LHtrZXk6InN0YXR1cyIsaGVhZGVyOiJTdGF0dXMiLHNvcnRhYmxlOiEwfSx7a2V5OiJjcmVhdGVkQXQiLGhlYWRlcjoiQ3JlYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6InVwZGF0ZWRBdCIsaGVhZGVyOiJVcGRhdGVkIixzb3J0YWJsZTohMH0se2tleToibGFzdExvZ2luIixoZWFkZXI6Ikxhc3QgTG9naW4iLHNvcnRhYmxlOiEwfSx7a2V5OiJwcm9qZWN0cyIsaGVhZGVyOiJQcm9qZWN0cyJ9LHtrZXk6InRhZ3MiLGhlYWRlcjoiVGFncyJ9LHtrZXk6Im5vdGVzIixoZWFkZXI6Ik5vdGVzIn1dfQogICAgICAgICAgLmRhdGE9JHtbe2lkOjEsbmFtZToiQWxpY2UgSm9obnNvbiIscm9sZToiRW5naW5lZXIiLGRlcGFydG1lbnQ6IlImRCIsZW1haWw6ImFsaWNlQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTExIixsb2NhdGlvbjoiQmVybGluIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIzLTAxLTEyIix1cGRhdGVkQXQ6IjIwMjQtMDUtMDMiLGxhc3RMb2dpbjoiMjAyNC0xMC0wMSIscHJvamVjdHM6NSx0YWdzOiJ0eXBlc2NyaXB0LCB1aSIsbm90ZXM6Ik1lbnRvciJ9LHtpZDoyLG5hbWU6IkJvYiBTbWl0aCIscm9sZToiRGVzaWduZXIiLGRlcGFydG1lbnQ6IkRlc2lnbiIsZW1haWw6ImJvYkBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMiIsbG9jYXRpb246IlBhcmlzIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIyLTExLTA1Iix1cGRhdGVkQXQ6IjIwMjQtMDQtMTAiLGxhc3RMb2dpbjoiMjAyNC0wOS0yOCIscHJvamVjdHM6OCx0YWdzOiJmaWdtYSwgYnJhbmQiLG5vdGVzOiJQYXJ0LXRpbWUifSx7aWQ6MyxuYW1lOiJDaGFybGllIERhdmlzIixyb2xlOiJNYW5hZ2VyIixkZXBhcnRtZW50OiJPcHMiLGVtYWlsOiJjaGFybGllQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTEzIixsb2NhdGlvbjoiTG9uZG9uIixzdGF0dXM6Ik9uIExlYXZlIixjcmVhdGVkQXQ6IjIwMjEtMDQtMjEiLHVwZGF0ZWRBdDoiMjAyNC0wMi0xNSIsbGFzdExvZ2luOiIyMDI0LTA4LTEyIixwcm9qZWN0czozLHRhZ3M6InNyZSwgbGVhZGVyc2hpcCIsbm90ZXM6IiJ9LHtpZDo0LG5hbWU6IkRpYW5hIE1hcnRpbmV6Iixyb2xlOiJFbmdpbmVlciIsZGVwYXJ0bWVudDoiUGxhdGZvcm0iLGVtYWlsOiJkaWFuYUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNCIsbG9jYXRpb246Ik1hZHJpZCIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMC0wNi0zMCIsdXBkYXRlZEF0OiIyMDI0LTA2LTI1IixsYXN0TG9naW46IjIwMjQtMTAtMDIiLHByb2plY3RzOjYsdGFnczoibm9kZSwgYXBpIixub3RlczoiT24tY2FsbCJ9LHtpZDo1LG5hbWU6IkV0aGFuIEJyb3duIixyb2xlOiJTdXBwb3J0IixkZXBhcnRtZW50OiJDUyIsZW1haWw6ImV0aGFuQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE1Iixsb2NhdGlvbjoiUm9tZSIsc3RhdHVzOiJJbmFjdGl2ZSIsY3JlYXRlZEF0OiIyMDE5LTA5LTE4Iix1cGRhdGVkQXQ6IjIwMjQtMDMtMDkiLGxhc3RMb2dpbjoiMjAyNC0wNi0xOSIscHJvamVjdHM6Mix0YWdzOiJ6ZW5kZXNrIixub3RlczoiUmVoaXJlIn0se2lkOjYsbmFtZToiRmlvbmEgQ2xhcmsiLHJvbGU6IlFBIixkZXBhcnRtZW50OiJRQSIsZW1haWw6ImZpb25hQGNvcnAuY29tIixwaG9uZToiKzEgMjAyIDU1NSAwMTE2Iixsb2NhdGlvbjoiVmllbm5hIixzdGF0dXM6IkFjdGl2ZSIsY3JlYXRlZEF0OiIyMDIyLTAzLTE0Iix1cGRhdGVkQXQ6IjIwMjQtMDMtMDEiLGxhc3RMb2dpbjoiMjAyNC0wOS0wNyIscHJvamVjdHM6Nyx0YWdzOiJwbGF5d3JpZ2h0Iixub3RlczoiIn1dfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmFzeW5jKHtpdGVtOnR9KT0+e2NvbnNvbGUubG9nKCJ2aWV3Iix0KX19LHtuYW1lOiJFZGl0IixpY29uTmFtZToibHVjaWRlOmVkaXQiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygiZWRpdCIsdCl9fSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoIix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06dH0pPT57Y29uc29sZS5sb2coImRlbGV0ZSIsdCl9fSx7bmFtZToiTWVzc2FnZSIsaWNvbk5hbWU6Imx1Y2lkZTptZXNzYWdlLXNxdWFyZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygibWVzc2FnZSIsdCl9fSx7bmFtZToiSGlzdG9yeSIsaWNvbk5hbWU6Imx1Y2lkZTpjbG9jayIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pntjb25zb2xlLmxvZygiaGlzdG9yeSIsdCl9fSx7bmFtZToiQWRkIE5ldyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVzIix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzphc3luYyh7dGFibGU6dH0pPT57Y29uc29sZS5sb2coImFkZCIpfX0se25hbWU6IkV4cG9ydCBDU1YiLGljb25OYW1lOiJsdWNpZGU6ZG93bmxvYWQiLHR5cGU6WyJoZWFkZXIiXSxhY3Rpb25GdW5jOmFzeW5jKHt0YWJsZTp0fSk9Pntjb25zb2xlLmxvZygiZXhwb3J0Iil9fSx7bmFtZToiQnVsayBEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gtMiIsdHlwZTpbImZvb3RlciJdLGFjdGlvbkZ1bmM6YXN5bmMoe3RhYmxlOnR9KT0+e2NvbnNvbGUubG9nKCJidWxrIGRlbGV0ZSIpfX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlNjcm9sbGFibGUgU21hbGwgSGVpZ2h0PC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+U2FtZSBhcyBhYm92ZSwgYnV0IHdpdGggbWFueSBpdGVtcyBhbmQgYSBzbWFsbCBmaXhlZCBoZWlnaHQgdG8gZm9yY2UgdmVydGljYWwgc2Nyb2xsaW5nIGluc2lkZSB0aGUgdGFibGUuIEFjdGlvbnMgcmVtYWluIHZpc2libGUgb24gdGhlIHJpZ2h0OyBob3Jpem9udGFsIHNjcm9sbCBhcHBlYXJzIGlmIG5lZWRlZC48L3A+CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgI3Njcm9sbFNtYWxsSGVpZ2h0IHsgLS10YWJsZS1tYXgtaGVpZ2h0OiAyNDBweDsgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJzY3JvbGxTbWFsbEhlaWdodCIKICAgICAgICAgIC5zdGlja3lIZWFkZXI9JHshMH0KICAgICAgICAgIGhlYWRpbmcxPSJQZW9wbGUgRGlyZWN0b3J5IChTY3JvbGxhYmxlKSIKICAgICAgICAgIGhlYWRpbmcyPSJGb3JjZWQgc2Nyb2xsaW5nIHdpdGggbWFueSBpdGVtcyIKICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6ImlkIixoZWFkZXI6IklEIixzb3J0YWJsZTohMH0se2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH0se2tleToicm9sZSIsaGVhZGVyOiJSb2xlIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH0se2tleToiZW1haWwiLGhlYWRlcjoiRW1haWwifSx7a2V5OiJwaG9uZSIsaGVhZGVyOiJQaG9uZSJ9LHtrZXk6ImxvY2F0aW9uIixoZWFkZXI6IkxvY2F0aW9uIixzb3J0YWJsZTohMH0se2tleToic3RhdHVzIixoZWFkZXI6IlN0YXR1cyIsc29ydGFibGU6ITB9LHtrZXk6ImNyZWF0ZWRBdCIsaGVhZGVyOiJDcmVhdGVkIixzb3J0YWJsZTohMH0se2tleToidXBkYXRlZEF0IixoZWFkZXI6IlVwZGF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJsYXN0TG9naW4iLGhlYWRlcjoiTGFzdCBMb2dpbiIsc29ydGFibGU6ITB9LHtrZXk6InByb2plY3RzIixoZWFkZXI6IlByb2plY3RzIn0se2tleToidGFncyIsaGVhZGVyOiJUYWdzIn0se2tleToibm90ZXMiLGhlYWRlcjoiTm90ZXMifV19CiAgICAgICAgICAuZGF0YT0ke0FycmF5LmZyb20oe2xlbmd0aDoxMDB9LCh0LGUpPT4oe2lkOmUrMSxuYW1lOmBVc2VyICR7ZSsxfWAscm9sZTpbIkVuZ2luZWVyIiwiRGVzaWduZXIiLCJNYW5hZ2VyIiwiUUEiLCJTdXBwb3J0Il1bZSU1XSxkZXBhcnRtZW50OlsiUiZEIiwiRGVzaWduIiwiT3BzIiwiUUEiLCJDUyJdW2UlNV0sZW1haWw6YHVzZXIke2UrMX1AY29ycC5jb21gLHBob25lOmArMSAyMDIgNTU1ICR7U3RyaW5nKDFlMytlKS5zbGljZSgtNCl9YCxsb2NhdGlvbjpbIkJlcmxpbiIsIlBhcmlzIiwiTG9uZG9uIiwiTWFkcmlkIiwiUm9tZSJdW2UlNV0sc3RhdHVzOlsiQWN0aXZlIiwiSW5hY3RpdmUiLCJPbiBMZWF2ZSJdW2UlM10sY3JlYXRlZEF0OmAyMDIzLSR7U3RyaW5nKGUlMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZyhlJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLHVwZGF0ZWRBdDpgMjAyNC0ke1N0cmluZygoZSszKSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzcpJTI4KzEpLnBhZFN0YXJ0KDIsIjAiKX1gLGxhc3RMb2dpbjpgMjAyNC0ke1N0cmluZygoZSs2KSUxMisxKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKChlKzEwKSUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCxwcm9qZWN0czplJTEyLHRhZ3M6ZSUyPyJ0eXBlc2NyaXB0IjoiZGVzaWduIixub3RlczplJTM/IiI6Ik5vdGUifSkpfQogICAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IixpY29uTmFtZToibHVjaWRlOmV5ZSIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTp0fSk9Pnt9fSx7bmFtZToiRWRpdCIsaWNvbk5hbWU6Imx1Y2lkZTplZGl0Iix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmFzeW5jKHtpdGVtOnR9KT0+e319LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2giLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06dH0pPT57fX1dfQogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgSXV0LE51dD1iKCgpPT57dWUoKTtjYSgpO3FlKCk7SXV0PVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDE2cHggMjRweDsKICAgICAgICBtaW4taGVpZ2h0OiA2NHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAuaGVhZGluZ0NvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nMSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRpbmcyIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAuaGVhZGluZ1NlcGFyYXRpb24gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb25zIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5oZWFkZXJBY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5oZWFkZXJBY3Rpb246aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLnNlYXJjaEdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC1nYXA6IDE2cHg7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgbWF4LWNvbnRlbnQ7CiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5OCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7CiAgICAgICAgLnNlYXJjaEdyaWQgewogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgfQogICAgICB9CgogICAgICAvKiBsZXQgc2VhcmNoIG1vZGUgc2l6ZSB0byBjb250ZW50IChubyBmb3JjZWQgd2lkdGgpICovCgogICAgICAuc2VhcmNoR3JpZC5oaWRkZW4gewogICAgICAgIGhlaWdodDogMHB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwYWRkaW5nOiAwcHggMjRweDsKICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7CiAgICAgIH0KCiAgICAgIC50YWJsZVNjcm9sbCB7CiAgICAgICAgLyogZW5hYmxlIGhvcml6b250YWwgc2Nyb2xsIG9ubHkgd2hlbiBjb250ZW50IGV4Y2VlZHMgd2lkdGggKi8KICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIC8qIHByZXZlbnQgdmVydGljYWwgc2Nyb2xsIGluc2lkZSB0aGUgdGFibGUgY29udGFpbmVyICovCiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICAgIC8qIGF2b2lkIHJlc2VydmluZyBleHRyYSBzcGFjZSBmb3IgY2xhc3NpYyBzY3JvbGxiYXJzIHdoZXJlIHBvc3NpYmxlICovCiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlIGJvdGgtZWRnZXM7CiAgICAgIH0KICAgICAgLyogSGlkZSBob3Jpem9udGFsIHNjcm9sbGJhciBlbnRpcmVseSB3aGVuIG5vdCB1c2luZyBzdGlja3kgaGVhZGVyICovCiAgICAgIDpob3N0KDpub3QoW3N0aWNreS1oZWFkZXJdKSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFL0VkZ2UgKi8KICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7ICAgLyogRmlyZWZveCAoaGlkZXMgYm90aCBheGVzKSAqLwogICAgICB9CiAgICAgIDpob3N0KDpub3QoW3N0aWNreS1oZWFkZXJdKSkgLnRhYmxlU2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsgLyogQ2hyb21lL1NhZmFyaSAqLwogICAgICB9CiAgICAgIC8qIEluIHN0aWNreS1oZWFkZXIgbW9kZSwgaGlkZSBvbmx5IHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBpbiBXZWJLaXQvQmxpbmsgKi8KICAgICAgOmhvc3QoW3N0aWNreS1oZWFkZXJdKSAudGFibGVTY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyOmhvcml6b250YWwgewogICAgICAgIGhlaWdodDogMHB4OwogICAgICB9CiAgICAgIDpob3N0KFtzdGlja3ktaGVhZGVyXSkgLnRhYmxlU2Nyb2xsIHsKICAgICAgICBtYXgtaGVpZ2h0OiB2YXIoLS10YWJsZS1tYXgtaGVpZ2h0LCAzNjBweCk7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgIHRhYmxlIHsKICAgICAgICAvKiBhbGxvdyB0YWJsZSB0byBncm93IHdpZGVyIHRoYW4gY29udGFpbmVyIHNvIGFjdGlvbnMgY29sdW1uIGNhbiBzdGljayAqLwogICAgICAgIHdpZHRoOiBtYXgtY29udGVudDsKICAgICAgICBtaW4td2lkdGg6IDEwMCU7CiAgICAgICAgY2FwdGlvbi1zaWRlOiBib3R0b207CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7CiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5ub0RhdGFTZXQgewogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRoZWFkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICAgIDpob3N0KFtzdGlja3ktaGVhZGVyXSkgdGhlYWQgdGggewogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICAvKiBEZWZhdWx0IGhvcml6b250YWwgbGluZXMgKGJvdHRvbSBib3JkZXIgb25seSkgKi8KICAgICAgdGJvZHkgdHIgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0Ym9keSB0cjpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAvKiBGdWxsIGhvcml6b250YWwgbGluZXMgd2hlbiBlbmFibGVkICovCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0ciB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWhvcml6b250YWwtbGluZXNdKSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0Ym9keSB0cjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElIC8gMC41KSIsImhzbCgwIDAlIDE0LjklIC8gMC41KSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29sdW1uIGhvdmVyIGVmZmVjdCBmb3IgYmV0dGVyIHRyYWNlYWJpbGl0eSAqLwogICAgICB0ZCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICB0ZDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElIC8gMC4zKSIsImhzbCgwIDAlIDE0LjklIC8gMC4zKSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgdGQ6aG92ZXI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAvKiBHcmlkIG1vZGUgLSBzaG93cyBib3RoIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGxpbmVzICovCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0aCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRoOmZpcnN0LWNoaWxkLAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGQ6Zmlyc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CgogICAgICAvKiBTdGlja3kgQWN0aW9ucyBjb2x1bW4gKHJpZ2h0IHBpbm5lZCkgKi8KICAgICAgdGhlYWQgdGguYWN0aW9uc0NvbCwKICAgICAgdGJvZHkgdGQuYWN0aW9uc0NvbCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgfQogICAgICB0aGVhZCB0aC5hY3Rpb25zQ29sIHsgei1pbmRleDogMzsgfQogICAgICB0Ym9keSB0ZC5hY3Rpb25zQ29sIHsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIGJveC1zaGFkb3c6IC0xcHggMCAwIDAgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIHRib2R5IHRyLmhhc0F0dGFjaG1lbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgdGggewogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDI0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoIHsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0ZCB7CiAgICAgICAgcGFkZGluZzogMTJweCAyNHB4OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQgewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRoOmZpcnN0LWNoaWxkLAogICAgICB0ZDpmaXJzdC1jaGlsZCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICB0aDpsYXN0LWNoaWxkLAogICAgICB0ZDpsYXN0LWNoaWxkIHsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy12ZXJ0aWNhbC1saW5lc10pIHRoOmxhc3QtY2hpbGQsCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuaW5uZXJDZWxsQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjRweDsKICAgICAgfQogICAgICB0ZCBpbnB1dCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNHB4OwogICAgICAgIGJvdHRvbTogNHB4OwogICAgICAgIGxlZnQ6IDIwcHg7CiAgICAgICAgcmlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpOwogICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gOHB4KTsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpOwogICAgICB9CiAgICAgIAogICAgICB0ZCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjIpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLyogZmlsdGVyIHJvdyAqLwogICAgICB0aGVhZCB0ci5maWx0ZXJzUm93IHRoIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCAxMnB4IDEycHg7CiAgICAgIH0KICAgICAgdGhlYWQgdHIuZmlsdGVyc1JvdyB0aCBpbnB1dFt0eXBlPSd0ZXh0J10gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZzogNnB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CiAgICAgIC5hY3Rpb25zQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTEuOCUpIil9OwogICAgICB9CiAgICAgIAogICAgICAuYWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAuZm9vdGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGhlaWdodDogNTJweDsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJsZVN0YXRpc3RpY3MgewogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyAuZm9vdGVyQWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyAuZm9vdGVyQWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgLmZvb3RlckFjdGlvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQogIGBdfSk7ZnVuY3Rpb24gZVYodCxlKXtpZighZXx8ZS5sZW5ndGg9PT0wKXJldHVybltdO2xldCBhPXQoZVswXSk7cmV0dXJuIE9iamVjdC5rZXlzKGEpLm1hcChyPT4oe2tleTpyLGhlYWRlcjpyLHZhbHVlOnM9PnQocylbcl19KSl9ZnVuY3Rpb24gRnV0KHQsZSxhLGkpe2xldCByPSh0fHxbXSkuc2xpY2UoKTtpZighZSlyZXR1cm4gcjtsZXQgcz1lVihhLGkpLG49bmV3IFNldChyLm1hcChvPT5TdHJpbmcoby5rZXkpKSk7Zm9yKGxldCBvIG9mIHMpbi5oYXMoU3RyaW5nKG8ua2V5KSl8fHIucHVzaChvKTtyZXR1cm4gcn1mdW5jdGlvbiBFbCh0LGUsYSl7cmV0dXJuIGUudmFsdWU/ZS52YWx1ZSh0KTp0W2Uua2V5XX1mdW5jdGlvbiBPdXQodCxlLGEsaSxyLHMsbj0idGFibGUiLG8pe2xldCBkPXQuc2xpY2UoKSxjPShyfHwiIikudHJpbSgpLnRvTG93ZXJDYXNlKCkscD1zfHx7fSxsPU9iamVjdC5rZXlzKHApLmZpbHRlcih5PT4ocFt5XT8/IiIpLnRyaW0oKS5sZW5ndGg+MCk7aWYoKGN8fGwubGVuZ3RoPjApJiYoZD1kLmZpbHRlcih5PT57Zm9yKGxldCB2IG9mIGwpaWYobj09PSJkYXRhIil7bGV0IG09eVt2XSx4PVN0cmluZyhtPz8iIikudG9Mb3dlckNhc2UoKSxNPVN0cmluZyhwW3ZdKS50b0xvd2VyQ2FzZSgpO2lmKCF4LmluY2x1ZGVzKE0pKXJldHVybiExfWVsc2V7bGV0IG09ZS5maW5kKEY9PlN0cmluZyhGLmtleSk9PT12KTtpZighbXx8bS5oaWRkZW58fG0uZmlsdGVyYWJsZT09PSExKWNvbnRpbnVlO2xldCB4PUVsKHksbSksTT1TdHJpbmcoeD8/IiIpLnRvTG93ZXJDYXNlKCksUz1TdHJpbmcocFt2XSkudG9Mb3dlckNhc2UoKTtpZighTS5pbmNsdWRlcyhTKSlyZXR1cm4hMX1pZihjKXtpZihvKXJldHVybiEhbyh5KTtsZXQgdj0hMTtpZihuPT09ImRhdGEiKXtmb3IobGV0IG0gb2YgT2JqZWN0LnZhbHVlcyh5KSlpZihTdHJpbmcobT8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYykpe3Y9ITA7YnJlYWt9fWVsc2UgZm9yKGxldCBtIG9mIGUpe2lmKG0uaGlkZGVuKWNvbnRpbnVlO2xldCB4PUVsKHksbSk7aWYoU3RyaW5nKHg/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGMpKXt2PSEwO2JyZWFrfX1pZighdilyZXR1cm4hMX1yZXR1cm4hMH0pKSwhYXx8IWkpcmV0dXJuIGQ7bGV0IGY9ZS5maW5kKHk9PlN0cmluZyh5LmtleSk9PT1hKTtpZighZilyZXR1cm4gZDtsZXQgZz1pPT09ImFzYyI/MTotMTtyZXR1cm4gZC5zb3J0KCh5LHYpPT57bGV0IG09RWwoeSxmKSx4PUVsKHYsZik7aWYobT09bnVsbCYmeD09bnVsbClyZXR1cm4gMDtpZihtPT1udWxsKXJldHVybi0xKmc7aWYoeD09bnVsbClyZXR1cm4gMSpnO2lmKHR5cGVvZiBtPT0ibnVtYmVyIiYmdHlwZW9mIHg9PSJudW1iZXIiKXJldHVybihtLXgpKmc7bGV0IE09U3RyaW5nKG0pLnRvTG93ZXJDYXNlKCksUz1TdHJpbmcoeCkudG9Mb3dlckNhc2UoKTtyZXR1cm4gTTxTPy0xKmc6TT5TPzEqZzowfSksZH12YXIgUnV0PWIoKCk9Pnt9KTtmdW5jdGlvbiBZeCh0KXtyZXR1cm4gdC5zdGFydHNXaXRoKCciJykmJnQuZW5kc1dpdGgoJyInKXx8dC5zdGFydHNXaXRoKCInIikmJnQuZW5kc1dpdGgoIiciKT90LnNsaWNlKDEsLTEpOnR9ZnVuY3Rpb24gUWp0KHQpe3JldHVybiB0LnNwbGl0KC9ccytPUlxzKy9pKS5tYXAoZT0+ZS50cmltKCkpLmZpbHRlcihCb29sZWFuKX1mdW5jdGlvbiBKanQodCl7cmV0dXJuIHQuc3BsaXQoL1xzK0FORFxzKy9pKS5tYXAoZT0+ZS50cmltKCkpLmZpbHRlcihCb29sZWFuKX1mdW5jdGlvbiBlVXQodCl7aWYoIXQpcmV0dXJuIG51bGw7bGV0IGU9ITEsYT10Lm1hdGNoKC9eXHMqKE5PVFxzK3wtKVxzKiguKikkL2kpO2EmJihlPSEwLHQ9YVsyXSk7bGV0IGk9dC5tYXRjaCgvXihbXjpcc10rKVxzKjpccypcWyguKj8pXHMrVE9ccysoLio/KVxdJC9pKTtpZihpKXJldHVybntmaWVsZDppWzFdLG5lZ2F0ZTplLHJhbmdlOntsb3dlcjpZeChpWzJdKS50b0xvd2VyQ2FzZSgpLHVwcGVyOll4KGlbM10pLnRvTG93ZXJDYXNlKCksaW5jbHVzaXZlOiEwfX07bGV0IHI9dC5tYXRjaCgvXihbXjpcc10rKVxzKjpccyooIlteIl0qInwnW14nXSonfFteIidcc10rKSQvKTtyZXR1cm4gcj97ZmllbGQ6clsxXSx2YWx1ZTpZeChyWzJdKS50b0xvd2VyQ2FzZSgpLG5lZ2F0ZTplfTp0Lmxlbmd0aD4wP3t2YWx1ZTpZeCh0KS50b0xvd2VyQ2FzZSgpLG5lZ2F0ZTplfTpudWxsfWZ1bmN0aW9uIHRVdCh0KXtpZighdClyZXR1cm4gbnVsbDtsZXQgZT1RanQodCkubWFwKGE9Pih7dGVybXM6Smp0KGEpLm1hcChlVXQpLmZpbHRlcihyPT4hIXImJiEhci52YWx1ZSl9KSkuZmlsdGVyKGE9PmEudGVybXMubGVuZ3RoPjApO3JldHVybiBlLmxlbmd0aD09PTA/bnVsbDp7Y2xhdXNlczplfX1mdW5jdGlvbiBCdXQodCxlLGEpe2xldCBpPXRVdCh0KTtpZighaSlyZXR1cm4gbnVsbDtsZXQgcj1uZXcgTWFwKGEubWFwKGQ9PltTdHJpbmcoZC5rZXkpLGRdKSkscz0oZCxjKT0+ZDxjPy0xOmQ+Yz8xOjAsbj1kPT57bGV0IGM9U3RyaW5nKGQ/PyIiKS50b0xvd2VyQ2FzZSgpLHA9TnVtYmVyKGMpLGw9RGF0ZS5wYXJzZShjKTtyZXR1cm4hTnVtYmVyLmlzTmFOKHApJiZjLnRyaW0oKSE9PSIiP3t0OiJuIix2OnB9Ok51bWJlci5pc05hTihsKT97dDoicyIsdjpjfTp7dDoiZCIsdjpsfX0sbz0oZCxjLHApPT57bGV0IGw9bihkKSxmPW4oYyksZz1uKHApO2lmKGwudD09PSJzIiYmZi50PT09InMiJiZnLnQ9PT0icyIpe2xldCB2PWwudjtyZXR1cm4gcyh2LGYudik+PTAmJnModixnLnYpPD0wfWlmKGwudD09PSJuIiYmZi50PT09Im4iJiZnLnQ9PT0ibiIpe2xldCB2PWwudjtyZXR1cm4gdj49Zi52JiZ2PD1nLnZ9aWYobC50PT09ImQiJiZmLnQ9PT0iZCImJmcudD09PSJkIil7bGV0IHY9bC52O3JldHVybiB2Pj1mLnYmJnY8PWcudn1sZXQgeT1TdHJpbmcoZD8/IiIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHMoeSxjKT49MCYmcyh5LHApPD0wfTtyZXR1cm4gZD0+e2ZvcihsZXQgYyBvZiBpLmNsYXVzZXMpe2xldCBwPSEwO2ZvcihsZXQgbCBvZiBjLnRlcm1zKXtsZXQgZj0hMTtpZihsLnJhbmdlJiZsLmZpZWxkKWlmKGU9PT0iZGF0YSIpZj1vKGRbbC5maWVsZF0sbC5yYW5nZS5sb3dlcixsLnJhbmdlLnVwcGVyKTtlbHNle2xldCBnPXIuZ2V0KGwuZmllbGQpO2lmKCFnfHxnLmhpZGRlbilmPSExO2Vsc2V7bGV0IHk9Zy52YWx1ZT9nLnZhbHVlKGQpOmRbZy5rZXldO2Y9byh5LGwucmFuZ2UubG93ZXIsbC5yYW5nZS51cHBlcil9fWVsc2UgaWYobC5maWVsZCYmbC52YWx1ZSE9bnVsbClpZihlPT09ImRhdGEiKWY9U3RyaW5nKGRbbC5maWVsZF0/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGwudmFsdWUpO2Vsc2V7bGV0IGc9ci5nZXQobC5maWVsZCk7aWYoIWd8fGcuaGlkZGVuPT09ITApZj0hMTtlbHNle2xldCB5PWcudmFsdWU/Zy52YWx1ZShkKTpkW2cua2V5XTtmPVN0cmluZyh5Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhsLnZhbHVlKX19ZWxzZSBsLnZhbHVlIT1udWxsJiYoZT09PSJkYXRhIj9mPU9iamVjdC52YWx1ZXMoZCkuc29tZShnPT5TdHJpbmcoZz8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobC52YWx1ZSkpOmY9YS5zb21lKGc9PntpZihnLmhpZGRlbilyZXR1cm4hMTtsZXQgeT1nLnZhbHVlP2cudmFsdWUoZCk6ZFtnLmtleV07cmV0dXJuIFN0cmluZyh5Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhsLnZhbHVlKX0pKTtpZihsLm5lZ2F0ZSYmKGY9IWYpLCFmKXtwPSExO2JyZWFrfX1pZihwKXJldHVybiEwfXJldHVybiExfX12YXIgSHV0PWIoKCk9Pnt9KTt2YXIgZTEsS2UsWngsSnE9YigoKT0+e3IyKCk7UHV0KCk7dWUoKTtzMigpO1R0KCk7RHQoKTtOdXQoKTtSdXQoKTtIdXQoKTtxZSgpO2UxPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sS2U9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFp4PSgoKT0+e2xldCB0PVtoZSgiZGVlcy10YWJsZSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXSxrZSxXPVtdLEQ9W10sTyxaPVtdLFk9W10sb2UsZ2U9W10sYmU9W10sJGUsQj1bXSxQPVtdLEssZmU9W10sZGU9W10sX2UscGU9W10sdGU9W10semUsRmU9W10sV2U9W10seWUsZWU9W10sYWU9W10sdmUsUGU9W10sVmU9W10seHQsb3Q9W10sTHQ9W10sWnQsaWU9W10sc2U9W10sVGUsbHQ9W10sY3Q9W10sZjEsZWk9W10sWHI9W10sS3IsSWU9W10sWmU9W10sTDEseTI9W10sRTI9W10sdGEsUDI9W10sZW49W10sdG4sYW49W10sWmw9W107dmFyIFhsPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTWU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpBcnJheX0pXSx5PVtJKHt0eXBlOlN0cmluZ30pXSx4PVtJKHt0eXBlOlN0cmluZ30pXSxGPVtJKHt0eXBlOkJvb2xlYW59KV0sTj1bSSh7dHlwZTpCb29sZWFufSldLHE9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sRT1bSSh7dHlwZTpCb29sZWFufSldLFY9W0koe3R5cGU6QXJyYXl9KV0scmU9W0koe2F0dHJpYnV0ZTohMX0pXSx3ZT1bSSh7YXR0cmlidXRlOiExfSldLGtlPVtJKHt0eXBlOkJvb2xlYW59KV0sTz1bSSh7YXR0cmlidXRlOiExfSldLG9lPVtJKHthdHRyaWJ1dGU6ITF9KV0sJGU9W0koe3R5cGU6T2JqZWN0fSldLEs9W0koe3R5cGU6QXJyYXl9KV0sX2U9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy12ZXJ0aWNhbC1saW5lcyJ9KV0semU9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1ob3Jpem9udGFsLWxpbmVzIn0pXSx5ZT1bSSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWdyaWQifSldLHZlPVtJKHthdHRyaWJ1dGU6ITF9KV0seHQ9W0koe2F0dHJpYnV0ZTohMX0pXSxadD1bSSh7dHlwZTpTdHJpbmd9KV0sVGU9W0koe2F0dHJpYnV0ZTohMX0pXSxmMT1bSSh7dHlwZTpCb29sZWFuLGF0dHJpYnV0ZToic2hvdy1jb2x1bW4tZmlsdGVycyJ9KV0sS3I9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic3RpY2t5LWhlYWRlciJ9KV0sTDE9W0koe3R5cGU6U3RyaW5nfSldLHRhPVtJKHt0eXBlOlN0cmluZ30pXSx0bj1bSSh7YXR0cmlidXRlOiExfSldLGUxKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZzEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4iaGVhZGluZzEiaW4gbGUsZ2V0OmxlPT5sZS5oZWFkaW5nMSxzZXQ6KGxlLERlKT0+e2xlLmhlYWRpbmcxPURlfX0sbWV0YWRhdGE6TWV9LG4sbyksZTEodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nMiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJoZWFkaW5nMiJpbiBsZSxnZXQ6bGU9PmxlLmhlYWRpbmcyLHNldDoobGUsRGUpPT57bGUuaGVhZGluZzI9RGV9fSxtZXRhZGF0YTpNZX0sYyxwKSxlMSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4iZGF0YSJpbiBsZSxnZXQ6bGU9PmxlLmRhdGEsc2V0OihsZSxEZSk9PntsZS5kYXRhPURlfX0sbWV0YWRhdGE6TWV9LGYsZyksZTEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJrZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4ia2V5ImluIGxlLGdldDpsZT0+bGUua2V5LHNldDoobGUsRGUpPT57bGUua2V5PURlfX0sbWV0YWRhdGE6TWV9LHYsbSksZTEodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJsYWJlbCJpbiBsZSxnZXQ6bGU9PmxlLmxhYmVsLHNldDoobGUsRGUpPT57bGUubGFiZWw9RGV9fSxtZXRhZGF0YTpNZX0sTSxTKSxlMSh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+ImRpc2FibGVkImluIGxlLGdldDpsZT0+bGUuZGlzYWJsZWQsc2V0OihsZSxEZSk9PntsZS5kaXNhYmxlZD1EZX19LG1ldGFkYXRhOk1lfSxfLGspLGUxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVxdWlyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4icmVxdWlyZWQiaW4gbGUsZ2V0OmxlPT5sZS5yZXF1aXJlZCxzZXQ6KGxlLERlKT0+e2xlLnJlcXVpcmVkPURlfX0sbWV0YWRhdGE6TWV9LEwsQSksZTEodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhTmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJkYXRhTmFtZSJpbiBsZSxnZXQ6bGU9PmxlLmRhdGFOYW1lLHNldDoobGUsRGUpPT57bGUuZGF0YU5hbWU9RGV9fSxtZXRhZGF0YTpNZX0sQyx6KSxlMSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4ic2VhcmNoYWJsZSJpbiBsZSxnZXQ6bGU9PmxlLnNlYXJjaGFibGUsc2V0OihsZSxEZSk9PntsZS5zZWFyY2hhYmxlPURlfX0sbWV0YWRhdGE6TWV9LFQsJCksZTEodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhQWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJkYXRhQWN0aW9ucyJpbiBsZSxnZXQ6bGU9PmxlLmRhdGFBY3Rpb25zLHNldDoobGUsRGUpPT57bGUuZGF0YUFjdGlvbnM9RGV9fSxtZXRhZGF0YTpNZX0sUixVKSxlMSh0aGlzLG51bGwscmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2x1bW5zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+ImNvbHVtbnMiaW4gbGUsZ2V0OmxlPT5sZS5jb2x1bW5zLHNldDoobGUsRGUpPT57bGUuY29sdW1ucz1EZX19LG1ldGFkYXRhOk1lfSxqLG1lKSxlMSh0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3dLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4icm93S2V5ImluIGxlLGdldDpsZT0+bGUucm93S2V5LHNldDoobGUsRGUpPT57bGUucm93S2V5PURlfX0sbWV0YWRhdGE6TWV9LEgsY2UpLGUxKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+ImF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uImluIGxlLGdldDpsZT0+bGUuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb24sc2V0OihsZSxEZSk9PntsZS5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbj1EZX19LG1ldGFkYXRhOk1lfSxXLEQpLGUxKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzcGxheUZ1bmN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+ImRpc3BsYXlGdW5jdGlvbiJpbiBsZSxnZXQ6bGU9PmxlLmRpc3BsYXlGdW5jdGlvbixzZXQ6KGxlLERlKT0+e2xlLmRpc3BsYXlGdW5jdGlvbj1EZX19LG1ldGFkYXRhOk1lfSxaLFkpLGUxKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4icmV2ZXJzZURpc3BsYXlGdW5jdGlvbiJpbiBsZSxnZXQ6bGU9PmxlLnJldmVyc2VEaXNwbGF5RnVuY3Rpb24sc2V0OihsZSxEZSk9PntsZS5yZXZlcnNlRGlzcGxheUZ1bmN0aW9uPURlfX0sbWV0YWRhdGE6TWV9LGdlLGJlKSxlMSh0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGFSb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4ic2VsZWN0ZWREYXRhUm93ImluIGxlLGdldDpsZT0+bGUuc2VsZWN0ZWREYXRhUm93LHNldDoobGUsRGUpPT57bGUuc2VsZWN0ZWREYXRhUm93PURlfX0sbWV0YWRhdGE6TWV9LEIsUCksZTEodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0YWJsZUZpZWxkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJlZGl0YWJsZUZpZWxkcyJpbiBsZSxnZXQ6bGU9PmxlLmVkaXRhYmxlRmllbGRzLHNldDoobGUsRGUpPT57bGUuZWRpdGFibGVGaWVsZHM9RGV9fSxtZXRhZGF0YTpNZX0sZmUsZGUpLGUxKHRoaXMsbnVsbCxfZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dWZXJ0aWNhbExpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+InNob3dWZXJ0aWNhbExpbmVzImluIGxlLGdldDpsZT0+bGUuc2hvd1ZlcnRpY2FsTGluZXMsc2V0OihsZSxEZSk9PntsZS5zaG93VmVydGljYWxMaW5lcz1EZX19LG1ldGFkYXRhOk1lfSxwZSx0ZSksZTEodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0hvcml6b250YWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJzaG93SG9yaXpvbnRhbExpbmVzImluIGxlLGdldDpsZT0+bGUuc2hvd0hvcml6b250YWxMaW5lcyxzZXQ6KGxlLERlKT0+e2xlLnNob3dIb3Jpem9udGFsTGluZXM9RGV9fSxtZXRhZGF0YTpNZX0sRmUsV2UpLGUxKHRoaXMsbnVsbCx5ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dHcmlkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+InNob3dHcmlkImluIGxlLGdldDpsZT0+bGUuc2hvd0dyaWQsc2V0OihsZSxEZSk9PntsZS5zaG93R3JpZD1EZX19LG1ldGFkYXRhOk1lfSxlZSxhZSksZTEodGhpcyxudWxsLHZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic29ydEtleSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJzb3J0S2V5ImluIGxlLGdldDpsZT0+bGUuc29ydEtleSxzZXQ6KGxlLERlKT0+e2xlLnNvcnRLZXk9RGV9fSxtZXRhZGF0YTpNZX0sUGUsVmUpLGUxKHRoaXMsbnVsbCx4dCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnREaXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4ic29ydERpciJpbiBsZSxnZXQ6bGU9PmxlLnNvcnREaXIsc2V0OihsZSxEZSk9PntsZS5zb3J0RGlyPURlfX0sbWV0YWRhdGE6TWV9LG90LEx0KSxlMSh0aGlzLG51bGwsWnQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+ImZpbHRlclRleHQiaW4gbGUsZ2V0OmxlPT5sZS5maWx0ZXJUZXh0LHNldDoobGUsRGUpPT57bGUuZmlsdGVyVGV4dD1EZX19LG1ldGFkYXRhOk1lfSxpZSxzZSksZTEodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1uRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJjb2x1bW5GaWx0ZXJzImluIGxlLGdldDpsZT0+bGUuY29sdW1uRmlsdGVycyxzZXQ6KGxlLERlKT0+e2xlLmNvbHVtbkZpbHRlcnM9RGV9fSxtZXRhZGF0YTpNZX0sbHQsY3QpLGUxKHRoaXMsbnVsbCxmMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDb2x1bW5GaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+InNob3dDb2x1bW5GaWx0ZXJzImluIGxlLGdldDpsZT0+bGUuc2hvd0NvbHVtbkZpbHRlcnMsc2V0OihsZSxEZSk9PntsZS5zaG93Q29sdW1uRmlsdGVycz1EZX19LG1ldGFkYXRhOk1lfSxlaSxYciksZTEodGhpcyxudWxsLEtyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RpY2t5SGVhZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpsZT0+InN0aWNreUhlYWRlciJpbiBsZSxnZXQ6bGU9PmxlLnN0aWNreUhlYWRlcixzZXQ6KGxlLERlKT0+e2xlLnN0aWNreUhlYWRlcj1EZX19LG1ldGFkYXRhOk1lfSxJZSxaZSksZTEodGhpcyxudWxsLEwxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJzZWFyY2hNb2RlImluIGxlLGdldDpsZT0+bGUuc2VhcmNoTW9kZSxzZXQ6KGxlLERlKT0+e2xlLnNlYXJjaE1vZGU9RGV9fSxtZXRhZGF0YTpNZX0seTIsRTIpLGUxKHRoaXMsbnVsbCx0YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmxlPT4ic2VsZWN0aW9uTW9kZSJpbiBsZSxnZXQ6bGU9PmxlLnNlbGVjdGlvbk1vZGUsc2V0OihsZSxEZSk9PntsZS5zZWxlY3Rpb25Nb2RlPURlfX0sbWV0YWRhdGE6TWV9LFAyLGVuKSxlMSh0aGlzLG51bGwsdG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZElkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bGU9PiJzZWxlY3RlZElkcyJpbiBsZSxnZXQ6bGU9PmxlLnNlbGVjdGVkSWRzLHNldDoobGUsRGUpPT57bGUuc2VsZWN0ZWRJZHM9RGV9fSxtZXRhZGF0YTpNZX0sYW4sWmwpLGUxKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOk1lfSxudWxsLGEpLFhsPWk9ZS52YWx1ZSxNZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNZX0pfXN0YXRpYyBkZW1vPUV1dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPUtlKHRoaXMsbiwiaGVhZGluZyAxIik7Z2V0IGhlYWRpbmcxKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGhlYWRpbmcxKE1lKXt0aGlzLiNlPU1lfSN0PShLZSh0aGlzLG8pLEtlKHRoaXMsYywiaGVhZGluZyAyIikpO2dldCBoZWFkaW5nMigpe3JldHVybiB0aGlzLiN0fXNldCBoZWFkaW5nMihNZSl7dGhpcy4jdD1NZX0jYT0oS2UodGhpcyxwKSxLZSh0aGlzLGYsW10pKTtnZXQgZGF0YSgpe3JldHVybiB0aGlzLiNhfXNldCBkYXRhKE1lKXt0aGlzLiNhPU1lfSNpPShLZSh0aGlzLGcpLEtlKHRoaXMsdix2b2lkIDApKTtnZXQga2V5KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGtleShNZSl7dGhpcy4jaT1NZX0jcj0oS2UodGhpcyxtKSxLZSh0aGlzLE0sdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxhYmVsKE1lKXt0aGlzLiNyPU1lfSNzPShLZSh0aGlzLFMpLEtlKHRoaXMsXywhMSkpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNzfXNldCBkaXNhYmxlZChNZSl7dGhpcy4jcz1NZX0jbj0oS2UodGhpcyxrKSxLZSh0aGlzLEwsITEpKTtnZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcmVxdWlyZWQoTWUpe3RoaXMuI249TWV9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuZGF0YX1zZXQgdmFsdWUoTWUpe31jaGFuZ2VTdWJqZWN0PShLZSh0aGlzLEEpLG5ldyBNdC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7I289S2UodGhpcyxDLHZvaWQgMCk7Z2V0IGRhdGFOYW1lKCl7cmV0dXJuIHRoaXMuI299c2V0IGRhdGFOYW1lKE1lKXt0aGlzLiNvPU1lfSNsPShLZSh0aGlzLHopLEtlKHRoaXMsVCwhMCkpO2dldCBzZWFyY2hhYmxlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNlYXJjaGFibGUoTWUpe3RoaXMuI2w9TWV9I2M9KEtlKHRoaXMsJCksS2UodGhpcyxSLFtdKSk7Z2V0IGRhdGFBY3Rpb25zKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGRhdGFBY3Rpb25zKE1lKXt0aGlzLiNjPU1lfSNkPShLZSh0aGlzLFUpLEtlKHRoaXMsaixbXSkpO2dldCBjb2x1bW5zKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGNvbHVtbnMoTWUpe3RoaXMuI2Q9TWV9I3A9KEtlKHRoaXMsbWUpLEtlKHRoaXMsSCx2b2lkIDApKTtnZXQgcm93S2V5KCl7cmV0dXJuIHRoaXMuI3B9c2V0IHJvd0tleShNZSl7dGhpcy4jcD1NZX0jaD0oS2UodGhpcyxjZSksS2UodGhpcyxXLCExKSk7Z2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uKE1lKXt0aGlzLiNoPU1lfSN1PShLZSh0aGlzLEQpLEtlKHRoaXMsWixNZT0+TWUpKTtnZXQgZGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGRpc3BsYXlGdW5jdGlvbihNZSl7dGhpcy4jdT1NZX0jZj0oS2UodGhpcyxZKSxLZSh0aGlzLGdlLE1lPT5NZSkpO2dldCByZXZlcnNlRGlzcGxheUZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHJldmVyc2VEaXNwbGF5RnVuY3Rpb24oTWUpe3RoaXMuI2Y9TWV9I209KEtlKHRoaXMsYmUpLEtlKHRoaXMsQix2b2lkIDApKTtnZXQgc2VsZWN0ZWREYXRhUm93KCl7cmV0dXJuIHRoaXMuI219c2V0IHNlbGVjdGVkRGF0YVJvdyhNZSl7dGhpcy4jbT1NZX0jZz0oS2UodGhpcyxQKSxLZSh0aGlzLGZlLFtdKSk7Z2V0IGVkaXRhYmxlRmllbGRzKCl7cmV0dXJuIHRoaXMuI2d9c2V0IGVkaXRhYmxlRmllbGRzKE1lKXt0aGlzLiNnPU1lfSNiPShLZSh0aGlzLGRlKSxLZSh0aGlzLHBlLCExKSk7Z2V0IHNob3dWZXJ0aWNhbExpbmVzKCl7cmV0dXJuIHRoaXMuI2J9c2V0IHNob3dWZXJ0aWNhbExpbmVzKE1lKXt0aGlzLiNiPU1lfSN2PShLZSh0aGlzLHRlKSxLZSh0aGlzLEZlLCExKSk7Z2V0IHNob3dIb3Jpem9udGFsTGluZXMoKXtyZXR1cm4gdGhpcy4jdn1zZXQgc2hvd0hvcml6b250YWxMaW5lcyhNZSl7dGhpcy4jdj1NZX0jeT0oS2UodGhpcyxXZSksS2UodGhpcyxlZSwhMCkpO2dldCBzaG93R3JpZCgpe3JldHVybiB0aGlzLiN5fXNldCBzaG93R3JpZChNZSl7dGhpcy4jeT1NZX1maWxlcz0oS2UodGhpcyxhZSksW10pO2ZpbGVXZWFrTWFwPW5ldyBXZWFrTWFwO2RhdGFDaGFuZ2VTdWJqZWN0PW5ldyBNdC5zbWFydHJ4LnJ4anMuU3ViamVjdDsjeD1LZSh0aGlzLFBlLHZvaWQgMCk7Z2V0IHNvcnRLZXkoKXtyZXR1cm4gdGhpcy4jeH1zZXQgc29ydEtleShNZSl7dGhpcy4jeD1NZX0jdz0oS2UodGhpcyxWZSksS2UodGhpcyxvdCxudWxsKSk7Z2V0IHNvcnREaXIoKXtyZXR1cm4gdGhpcy4jd31zZXQgc29ydERpcihNZSl7dGhpcy4jdz1NZX0jTT0oS2UodGhpcyxMdCksS2UodGhpcyxpZSwiIikpO2dldCBmaWx0ZXJUZXh0KCl7cmV0dXJuIHRoaXMuI019c2V0IGZpbHRlclRleHQoTWUpe3RoaXMuI009TWV9I3o9KEtlKHRoaXMsc2UpLEtlKHRoaXMsbHQse30pKTtnZXQgY29sdW1uRmlsdGVycygpe3JldHVybiB0aGlzLiN6fXNldCBjb2x1bW5GaWx0ZXJzKE1lKXt0aGlzLiN6PU1lfSNrPShLZSh0aGlzLGN0KSxLZSh0aGlzLGVpLCExKSk7Z2V0IHNob3dDb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IHNob3dDb2x1bW5GaWx0ZXJzKE1lKXt0aGlzLiNrPU1lfSNTPShLZSh0aGlzLFhyKSxLZSh0aGlzLEllLCExKSk7Z2V0IHN0aWNreUhlYWRlcigpe3JldHVybiB0aGlzLiNTfXNldCBzdGlja3lIZWFkZXIoTWUpe3RoaXMuI1M9TWV9I0M9KEtlKHRoaXMsWmUpLEtlKHRoaXMseTIsInRhYmxlIikpO2dldCBzZWFyY2hNb2RlKCl7cmV0dXJuIHRoaXMuI0N9c2V0IHNlYXJjaE1vZGUoTWUpe3RoaXMuI0M9TWV9X19zZWFyY2hUZXh0U3ViPUtlKHRoaXMsRTIpO19fc2VhcmNoTW9kZVN1YjsjXz1LZSh0aGlzLFAyLCJub25lIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jX31zZXQgc2VsZWN0aW9uTW9kZShNZSl7dGhpcy4jXz1NZX0jVD0oS2UodGhpcyxlbiksS2UodGhpcyxhbixuZXcgU2V0KSk7Z2V0IHNlbGVjdGVkSWRzKCl7cmV0dXJuIHRoaXMuI1R9c2V0IHNlbGVjdGVkSWRzKE1lKXt0aGlzLiNUPU1lfV9yb3dJZE1hcD0oS2UodGhpcyxabCksbmV3IFdlYWtNYXApO19yb3dJZENvdW50ZXI9MDtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1JdXQ7cmVuZGVyKCl7bGV0IGxlPUFycmF5LmlzQXJyYXkodGhpcy5jb2x1bW5zKSYmdGhpcy5jb2x1bW5zLmxlbmd0aD4wP0Z1dCh0aGlzLmNvbHVtbnMsdGhpcy5hdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbix0aGlzLmRpc3BsYXlGdW5jdGlvbix0aGlzLmRhdGEpOmVWKHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSksRGU9QnV0KHRoaXMuZmlsdGVyVGV4dCx0aGlzLnNlYXJjaE1vZGU9PT0iZGF0YSI/ImRhdGEiOiJ0YWJsZSIsbGUpLE4xPU91dCh0aGlzLmRhdGEsbGUsdGhpcy5zb3J0S2V5LHRoaXMuc29ydERpcix0aGlzLmZpbHRlclRleHQsdGhpcy5jb2x1bW5GaWx0ZXJzLHRoaXMuc2VhcmNoTW9kZT09PSJkYXRhIj8iZGF0YSI6InRhYmxlIixEZXx8dm9pZCAwKTtyZXR1cm4gdGhpcy5fbGFzdFZpZXdEYXRhPU4xLHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgIDwhLS0gdGhlIGhlYWRpbmcgcGFydCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ0NvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmcgaGVhZGluZzEiPiR7dGhpcy5sYWJlbHx8dGhpcy5oZWFkaW5nMX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyBoZWFkaW5nMiI+JHt0aGlzLmhlYWRpbmcyfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHtWYS5yZXNvbHZlRXhlYyhhc3luYygpPT57bGV0IHN0PVtdO2ZvcihsZXQgbDEgb2YgdGhpcy5kYXRhQWN0aW9ucylsMS50eXBlPy5pbmNsdWRlcygiaGVhZGVyIikmJnN0LnB1c2god2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRlckFjdGlvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e2wxLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7bDEuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke2wxLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAke2wxLm5hbWV9YDpsMS5uYW1lfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtyZXR1cm4gc3R9KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmdTZXBhcmF0aW9uIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hHcmlkIGhpZGRlbiI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJsdWNlbmUgc3ludGF4IHNlYXJjaCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2AKICAgICAgICAgICAgICBZb3UgY2FuIHVzZSB0aGUgbHVjZW5lIHN5bnRheCB0byBzZWFyY2ggZm9yIGRhdGEsIGUuZy46CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgbmFtZTogImpvaG4iIEFORCBhZ2U6IDE4CiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsic2VhcmNoIG1vZGUifQogICAgICAgICAgICAub3B0aW9ucz0ke1sidGFibGUiLCJkYXRhIiwic2VydmVyIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJ0YWJsZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2AKICAgICAgICAgICAgICBUaGVyZSBhcmUgdGhyZWUgYmFzaWMgbW9kZXM6CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgKiB0YWJsZTogb25seSBzZWFyY2hlcyBkYXRhIGFscmVhZHkgaW4gdGhlIHRhYmxlCiAgICAgICAgICAgICAgKiBkYXRhOiBzZWFyY2hlcyBvcmlnaW5hbCBkYXRhLCBpZ25vcmluZyB0YWJsZSB0cmFuc2Zvcm1zCiAgICAgICAgICAgICAgKiBzZXJ2ZXI6IHNlYXJjaGVzIGRhdGEgb24gdGhlIHNlcnZlcgogICAgICAgICAgICAgIAogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSB0aGUgYWN0dWFsIHRhYmxlIC0tPgogICAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aD4wP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTY3JvbGwiPgogICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICR7dGhpcy5zZWxlY3Rpb25Nb2RlIT09Im5vbmUiP3dgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiP3dgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmFyZUFsbFZpc2libGVTZWxlY3RlZCgpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke3RoaXMuaXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtzdD0+e3N0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0U2VsZWN0VmlzaWJsZShzdC5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICBgOndgYH0KICAgICAgICAgICAgICAgICAgICAke2xlLmZpbHRlcihzdD0+IXN0LmhpZGRlbikubWFwKHN0PT57bGV0IGwxPSEhc3Quc29ydGFibGUsYWE9dGhpcy5nZXRBcmlhU29ydChzdCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJjb2x1bW5oZWFkZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNvcnQ9JHthYX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSIke2wxPyJjdXJzb3I6IHBvaW50ZXI7IjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+bDE/dGhpcy50b2dnbGVTb3J0KHN0KTpudWxsfQogICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7c3QuaGVhZGVyPz9zdC5rZXl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcihzdCl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZih0aGlzLmRhdGFBY3Rpb25zJiZ0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aD4wKXJldHVybiB3YCA8dGggY2xhc3M9ImFjdGlvbnNDb2wiPkFjdGlvbnM8L3RoPiBgfSkoKX0KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnNob3dDb2x1bW5GaWx0ZXJzP3dgPHRyIGNsYXNzPSJmaWx0ZXJzUm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSI/d2A8dGggc3R5bGU9IndpZHRoOjQycHg7Ij48L3RoPmA6d2BgfQogICAgICAgICAgICAgICAgICAgICAgICAke2xlLmZpbHRlcihzdD0+IXN0LmhpZGRlbikubWFwKHN0PT57bGV0IGwxPVN0cmluZyhzdC5rZXkpO3JldHVybiBzdC5maWx0ZXJhYmxlPT09ITE/d2A8dGg+PC90aD5gOndgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgLnZhbHVlPSR7dGhpcy5jb2x1bW5GaWx0ZXJzW2wxXXx8IiJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7YWE9PnRoaXMuc2V0Q29sdW1uRmlsdGVyKGwxLGFhLnRhcmdldC52YWx1ZSl9IC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPmB9KX0KICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZih0aGlzLmRhdGFBY3Rpb25zJiZ0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aD4wKXJldHVybiB3YCA8dGg+PC90aD4gYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmA6d2BgfQogICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgJHtOMS5tYXAoKHN0LGwxKT0+e2xldCBhYT10dD0+dHQudGFnTmFtZT09PSJUUiI/dHQ6YWEodHQucGFyZW50RWxlbWVudCk7cmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICA8dHIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PntpZih0aGlzLnNlbGVjdGVkRGF0YVJvdz1zdCx0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIil7bGV0IHR0PXRoaXMuZ2V0Um93SWQoc3QpO3RoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZCh0dCksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9fX0KICAgICAgICAgICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke2FzeW5jIHR0PT57dHQucHJldmVudERlZmF1bHQoKSx0dC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgVjE9YWEodHQudGFyZ2V0KTtzZXRUaW1lb3V0KCgpPT57VjEuY2xhc3NMaXN0LmFkZCgiaGFzQXR0YWNobWVudCIpfSwwKX19CiAgICAgICAgICAgICAgICAgICAgICAgIEBkcmFnbGVhdmU9JHthc3luYyB0dD0+e3R0LnByZXZlbnREZWZhdWx0KCksdHQuc3RvcFByb3BhZ2F0aW9uKCksYWEodHQudGFyZ2V0KS5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9fQogICAgICAgICAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHthc3luYyB0dD0+e3R0LnByZXZlbnREZWZhdWx0KCl9fQogICAgICAgICAgICAgICAgICAgICAgICBAZHJvcD0ke2FzeW5jIHR0PT57dHQucHJldmVudERlZmF1bHQoKTtsZXQgVjE9W107Zm9yKGxldCBDaSBvZiBBcnJheS5mcm9tKHR0LmRhdGFUcmFuc2Zlci5maWxlcykpdGhpcy5maWxlcy5wdXNoKENpKSxWMS5wdXNoKENpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKTtsZXQgaWE9dGhpcy5maWxlV2Vha01hcC5nZXQoc3QpO2lhP2lhLnB1c2goLi4uVjEpOnRoaXMuZmlsZVdlYWtNYXAuc2V0KHN0LFYxKX19CiAgICAgICAgICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke2FzeW5jIHR0PT57VXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModHQsdGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiY29udGV4dG1lbnUiKS5tYXAoVjE9Pih7bmFtZTpWMS5uYW1lLGljb25OYW1lOlYxLmljb25OYW1lLGFjdGlvbjphc3luYygpPT4oYXdhaXQgVjEuYWN0aW9uRnVuYyh7aXRlbTpzdCx0YWJsZTp0aGlzfSksbnVsbCl9KSkpfX0KICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7c3Q9PT10aGlzLnNlbGVjdGVkRGF0YVJvdz8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSI/d2A8dGQgc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pc1Jvd1NlbGVjdGVkKHN0KX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHt0dD0+e3R0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0Um93U2VsZWN0ZWQoc3QsdHQuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YDp3YGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7bGUuZmlsdGVyKHR0PT4hdHQuaGlkZGVuKS5tYXAoKHR0LFYxKT0+e2xldCBpYT1FbChzdCx0dCx0aGlzLmRpc3BsYXlGdW5jdGlvbiksQ2k9dHQucmVuZGVyZXI/dHQucmVuZGVyZXIoaWEsc3Qse3Jvd0luZGV4OmwxLGNvbEluZGV4OlYxLGNvbHVtbjp0dH0pOmlhLEtsPVN0cmluZyh0dC5rZXkpO3JldHVybiB3YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGJsY2xpY2s9JHtsZD0+e2xldCBRbD10aGlzLmRhdGFBY3Rpb25zLmZpbmQoY2Q9PmNkLnR5cGU/LmluY2x1ZGVzKCJkb3VibGVDbGljayIpKTt0aGlzLmVkaXRhYmxlRmllbGRzLmluY2x1ZGVzKEtsKT90aGlzLmhhbmRsZUNlbGxFZGl0aW5nKGxkLHN0LEtsKTpRbCYmUWwuYWN0aW9uRnVuYyh7aXRlbTpzdCx0YWJsZTp0aGlzfSl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXJDZWxsQ29udGFpbmVyIj4ke0NpfTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgICAgICAgICAgICAgICAkeygoKT0+e2lmKHRoaXMuZGF0YUFjdGlvbnMmJnRoaXMuZGF0YUFjdGlvbnMubGVuZ3RoPjApcmV0dXJuIHdgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYWN0aW9uc0NvbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uc0NvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImluUm93IikubWFwKHR0PT53YAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dHQuYWN0aW9uRnVuYyh7aXRlbTpzdCx0YWJsZTp0aGlzfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0dC5pY29uTmFtZT93YCA8ZGVlcy1pY29uIC5pY29uPSR7dHQuaWNvbk5hbWV9PjwvZGVlcy1pY29uPiBgOnR0Lm5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmB9KX0KICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDp3YCA8ZGl2IGNsYXNzPSJub0RhdGFTZXQiPk5vIGRhdGEgc2V0ITwvZGl2PiBgfQogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZVN0YXRpc3RpY3MiPgogICAgICAgICAgICAke3RoaXMuZGF0YS5sZW5ndGh9ICR7dGhpcy5kYXRhTmFtZXx8ImRhdGEgcm93cyJ9ICh0b3RhbCkgfAogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWREYXRhUm93P2AjICR7dGhpcy5kYXRhLmluZGV4T2YodGhpcy5zZWxlY3RlZERhdGFSb3cpKzF9YDoiTm8ifQogICAgICAgICAgICBzZWxlY3RlZAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHtWYS5yZXNvbHZlRXhlYyhhc3luYygpPT57bGV0IHN0PVtdO2ZvcihsZXQgbDEgb2YgdGhpcy5kYXRhQWN0aW9ucylsMS50eXBlPy5pbmNsdWRlcygiZm9vdGVyIikmJnN0LnB1c2god2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZvb3RlckFjdGlvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e2wxLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7bDEuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke2wxLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAke2wxLm5hbWV9YDpsMS5uYW1lfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtyZXR1cm4gc3R9KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWFzeW5jIHVwZGF0ZWQoTWUpe3N1cGVyLnVwZGF0ZWQoTWUpLHRoaXMuZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCksdGhpcy5zZWFyY2hhYmxlJiYodGhpcy5kYXRhQWN0aW9ucy5maW5kKERlPT5EZS50eXBlPy5pbmNsdWRlcygiaGVhZGVyIikmJkRlLm5hbWU9PT0iU2VhcmNoIil8fCh0aGlzLmRhdGFBY3Rpb25zLnVuc2hpZnQoe25hbWU6IlNlYXJjaCIsaWNvbk5hbWU6Im1hZ25pZnlpbmdHbGFzcyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6YXN5bmMoKT0+e2NvbnNvbGUubG9nKCJvcGVuIHNlYXJjaCIpLHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoR3JpZCIpLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIpfX0pLGNvbnNvbGUubG9nKHRoaXMuZGF0YUFjdGlvbnMpLHRoaXMucmVxdWVzdFVwZGF0ZSgpKSx0aGlzLndpcmVTZWFyY2hJbnB1dHMoKSl9X19kZWJvdW5jZVRpbWVyO2RlYm91bmNlUnVuKE1lLGxlPTIwMCl7dGhpcy5fX2RlYm91bmNlVGltZXImJmNsZWFyVGltZW91dCh0aGlzLl9fZGVib3VuY2VUaW1lciksdGhpcy5fX2RlYm91bmNlVGltZXI9c2V0VGltZW91dChNZSxsZSl9d2lyZVNlYXJjaElucHV0cygpe2xldCBNZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtdGV4dCIpLGxlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQgZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZSIpO01lJiYhdGhpcy5fX3NlYXJjaFRleHRTdWImJih0aGlzLl9fc2VhcmNoVGV4dFN1Yj1NZS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZShEZT0+e2xldCBOMT1EZT8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTpOMSxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dChOMSl9KX0pKSxsZSYmIXRoaXMuX19zZWFyY2hNb2RlU3ViJiYodGhpcy5fX3NlYXJjaE1vZGVTdWI9bGUuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoRGU9PntsZXQgTjE9RGU/LnNlbGVjdGVkT3B0aW9ufHxEZT8udmFsdWV8fCJ0YWJsZSI7aWYoTjE9PT0idGFibGUifHxOMT09PSJkYXRhInx8TjE9PT0ic2VydmVyIil7dGhpcy5zZWFyY2hNb2RlPU4xO2xldCBzdD1NZT8udmFsdWU/PyIiO3RoaXMuZGVib3VuY2VSdW4oKCk9Pnt0aGlzLnNlYXJjaE1vZGU9PT0ic2VydmVyIj90aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2hSZXF1ZXN0Iix7ZGV0YWlsOntxdWVyeTpzdCxtb2RlOiJzZXJ2ZXIifSxidWJibGVzOiEwfSkpOnRoaXMuc2V0RmlsdGVyVGV4dChzdCl9KX19KSl9YXN5bmMgZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCl7YXdhaXQoYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UpLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGxlPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJ0YWJsZSIpO2lmKCFsZSlyZXR1cm47bGV0IERlPWxlLnJvd3NbMF0uY2VsbHMsTjE9YXN5bmMoc3QsbDE9ITEpPT57bGV0IGFhPUJlLmRlZmVyKCksdHQ9RGVbc3RdLFYxPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHR0KS53aWR0aDtpZih0dC50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpKXtsZXQgaWE9dGhpcy5kYXRhQWN0aW9ucy5maWx0ZXIoQ2k9PkNpLnR5cGU/LmluY2x1ZGVzKCJpblJvdyIpKS5sZW5ndGgqMzY7dHQuc3R5bGUud2lkdGg9YCR7TWF0aC5tYXgoaWEsNjgpfXB4YH1lbHNlIHR0LnN0eWxlLndpZHRoPVYxO2wxJiYocmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57YWEucmVzb2x2ZSgpfSksYXdhaXQgYWEucHJvbWlzZSl9O0RlW0RlLmxlbmd0aC0xXS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpJiZhd2FpdCBOMShEZS5sZW5ndGgtMSwhMCk7Zm9yKGxldCBzdD0wO3N0PERlLmxlbmd0aDtzdCsrKURlW3N0XS50ZXh0Q29udGVudC5pbmNsdWRlcygiQWN0aW9ucyIpfHxhd2FpdCBOMShzdCk7bGUuc3R5bGUudGFibGVMYXlvdXQ9ImZpeGVkIn10b2dnbGVTb3J0KE1lKXtsZXQgbGU9U3RyaW5nKE1lLmtleSk7dGhpcy5zb3J0S2V5IT09bGU/KHRoaXMuc29ydEtleT1sZSx0aGlzLnNvcnREaXI9ImFzYyIpOnRoaXMuc29ydERpcj09PSJhc2MiP3RoaXMuc29ydERpcj0iZGVzYyI6dGhpcy5zb3J0RGlyPT09ImRlc2MiPyh0aGlzLnNvcnREaXI9bnVsbCx0aGlzLnNvcnRLZXk9dm9pZCAwKTp0aGlzLnNvcnREaXI9ImFzYyIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic29ydENoYW5nZSIse2RldGFpbDp7a2V5OnRoaXMuc29ydEtleSxkaXI6dGhpcy5zb3J0RGlyfSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWdldEFyaWFTb3J0KE1lKXtyZXR1cm4gU3RyaW5nKE1lLmtleSkhPT10aGlzLnNvcnRLZXl8fCF0aGlzLnNvcnREaXI/Im5vbmUiOnRoaXMuc29ydERpcj09PSJhc2MiPyJhc2NlbmRpbmciOiJkZXNjZW5kaW5nIn1yZW5kZXJTb3J0SW5kaWNhdG9yKE1lKXtyZXR1cm4gU3RyaW5nKE1lLmtleSkhPT10aGlzLnNvcnRLZXl8fCF0aGlzLnNvcnREaXI/d2BgOndgPHNwYW4gc3R5bGU9Im1hcmdpbi1sZWZ0OjZweDsgb3BhY2l0eTowLjc7Ij4ke3RoaXMuc29ydERpcj09PSJhc2MiPyJcdTI1QjIiOiJcdTI1QkMifTwvc3Bhbj5gfXNldEZpbHRlclRleHQoTWUpe2xldCBsZT10aGlzLmZpbHRlclRleHQ7dGhpcy5maWx0ZXJUZXh0PU1lPz8iIixsZSE9PXRoaXMuZmlsdGVyVGV4dCYmKHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlckNoYW5nZSIse2RldGFpbDp7dGV4dDp0aGlzLmZpbHRlclRleHQsY29sdW1uczp7Li4udGhpcy5jb2x1bW5GaWx0ZXJzfX0sYnViYmxlczohMH0pKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSl9c2V0Q29sdW1uRmlsdGVyKE1lLGxlKXt0aGlzLmNvbHVtbkZpbHRlcnM9ey4uLnRoaXMuY29sdW1uRmlsdGVycyxbTWVdOmxlfSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWx0ZXJDaGFuZ2UiLHtkZXRhaWw6e3RleHQ6dGhpcy5maWx0ZXJUZXh0LGNvbHVtbnM6ey4uLnRoaXMuY29sdW1uRmlsdGVyc319LGJ1YmJsZXM6ITB9KSksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9Z2V0Um93SWQoTWUpe2lmKHRoaXMucm93S2V5KXJldHVybiB0eXBlb2YgdGhpcy5yb3dLZXk9PSJmdW5jdGlvbiI/dGhpcy5yb3dLZXkoTWUpOlN0cmluZyhNZVt0aGlzLnJvd0tleV0pO2xldCBsZT1NZTtyZXR1cm4gdGhpcy5fcm93SWRNYXAuaGFzKGxlKXx8dGhpcy5fcm93SWRNYXAuc2V0KGxlLFN0cmluZygrK3RoaXMuX3Jvd0lkQ291bnRlcikpLHRoaXMuX3Jvd0lkTWFwLmdldChsZSl9aXNSb3dTZWxlY3RlZChNZSl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0Um93SWQoTWUpKX10b2dnbGVSb3dTZWxlY3RlZChNZSl7bGV0IGxlPXRoaXMuZ2V0Um93SWQoTWUpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCksdGhpcy5zZWxlY3RlZElkcy5hZGQobGUpKTp0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiJiYodGhpcy5zZWxlY3RlZElkcy5oYXMobGUpP3RoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKGxlKTp0aGlzLnNlbGVjdGVkSWRzLmFkZChsZSkpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXNldFJvd1NlbGVjdGVkKE1lLGxlKXtsZXQgRGU9dGhpcy5nZXRSb3dJZChNZSk7dGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/KHRoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSxsZSYmdGhpcy5zZWxlY3RlZElkcy5hZGQoRGUpKTp0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiJiYobGU/dGhpcy5zZWxlY3RlZElkcy5hZGQoRGUpOnRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKERlKSksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9YXJlQWxsVmlzaWJsZVNlbGVjdGVkKCl7bGV0IE1lPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoTWUubGVuZ3RoPT09MClyZXR1cm4hMTtmb3IobGV0IGxlIG9mIE1lKWlmKCF0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKGxlKSkpcmV0dXJuITE7cmV0dXJuITB9aXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpe2xldCBNZT10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKE1lLmxlbmd0aD09PTApcmV0dXJuITE7bGV0IGxlPTA7Zm9yKGxldCBEZSBvZiBNZSl0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKERlKSkmJmxlKys7cmV0dXJuIGxlPjAmJmxlPE1lLmxlbmd0aH1zZXRTZWxlY3RWaXNpYmxlKE1lKXtsZXQgbGU9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihNZSlmb3IobGV0IERlIG9mIGxlKXRoaXMuc2VsZWN0ZWRJZHMuYWRkKHRoaXMuZ2V0Um93SWQoRGUpKTtlbHNlIGZvcihsZXQgRGUgb2YgbGUpdGhpcy5zZWxlY3RlZElkcy5kZWxldGUodGhpcy5nZXRSb3dJZChEZSkpO3RoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWVtaXRTZWxlY3Rpb25DaGFuZ2UoKXtsZXQgTWU9QXJyYXkuZnJvbSh0aGlzLnNlbGVjdGVkSWRzKSxsZT10aGlzLmRhdGEuZmlsdGVyKERlPT50aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKERlKSkpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbGVjdGlvbkNoYW5nZSIse2RldGFpbDp7c2VsZWN0ZWRJZHM6TWUsc2VsZWN0ZWRSb3dzOmxlfSxidWJibGVzOiEwfSkpfWdldEFjdGlvbnNGb3JUeXBlKE1lKXtsZXQgbGU9W107Zm9yKGxldCBEZSBvZiB0aGlzLmRhdGFBY3Rpb25zKURlLnR5cGU/LmluY2x1ZGVzKE1lKSYmbGUucHVzaChEZSk7cmV0dXJuIGxlfWFzeW5jIGhhbmRsZUNlbGxFZGl0aW5nKE1lLGxlLERlKXthd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTtsZXQgTjE9TWUudGFyZ2V0LHN0PU4xLnN0eWxlLmNvbG9yO04xLnN0eWxlLmNvbG9yPSJ0cmFuc3BhcmVudCI7bGV0IGFhPXRoaXMuZGlzcGxheUZ1bmN0aW9uKGxlKVtEZV0/P2xlW0RlXT8/IiIsdHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt0dC50eXBlPSJ0ZXh0Iix0dC52YWx1ZT1hYTtsZXQgVjE9YXN5bmMoaWE9ITAsQ2k9ITEpPT57aWEmJnR0LmJsdXIoKSxDaSYmKGxlW0RlXT10dC52YWx1ZSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSksdHQucmVtb3ZlKCksTjEuc3R5bGUuY29sb3I9c3QsdGhpcy5yZXF1ZXN0VXBkYXRlKCl9O3R0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57VjEoITEsITEpfSksdHQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaWE9PntpYS5rZXk9PT0iRW50ZXIiJiZWMSghMCwhMCl9KSxOMS5hcHBlbmRDaGlsZCh0dCksdHQuZm9jdXMoKX1zdGF0aWN7S2UoaSxhKX19O3JldHVybiBYbD1pfSkoKX0pO3ZhciB0Vj1iKCgpPT57SnEoKX0pO3ZhciBxdXQsVnV0PWIoKCk9Pnt1ZSgpO3kxKCk7cXV0PSgpPT53YAogIDxzdHlsZT4KICAgICR7UWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmZvcm0tb3V0cHV0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5zdGF0dXMtbWVzc2FnZSB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5zdGF0dXMtbWVzc2FnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzAuNiUgMzUuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDY1LjMlKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLnN0YXR1cy1tZXNzYWdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNDAuNiUpIiwiaHNsKDAgNzIuMiUgNjAuNiUpIil9OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIiksYT10LnF1ZXJ5U2VsZWN0b3IoIi5mb3JtLW91dHB1dCIpO2UmJmEmJihlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixhc3luYyByPT57bGV0IHM9ci5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiRm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOiIscyksZS5zZXRTdGF0dXMoInBlbmRpbmciLCJQcm9jZXNzaW5nIHlvdXIgcmVnaXN0cmF0aW9uLi4uIiksYS5pbm5lckhUTUw9YDxzdHJvbmc+U3VibWl0dGVkIERhdGE6PC9zdHJvbmc+CiR7SlNPTi5zdHJpbmdpZnkocyxudWxsLDIpfWAsYXdhaXQgcnQucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDJlMyksZS5zZXRTdGF0dXMoInN1Y2Nlc3MiLCJSZWdpc3RyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEiKSxhd2FpdCBydC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMmUzKSxlLnJlc2V0KCksYS5pbm5lckhUTUw9IjxlbT5Gb3JtIGhhcyBiZWVuIHJlc2V0PC9lbT4ifSksZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQsIGRlZXMtaW5wdXQtZHJvcGRvd24sIGRlZXMtaW5wdXQtY2hlY2tib3giKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLCgpPT57Y29uc29sZS5sb2coIkZpZWxkIGNoYW5nZWQ6IixyLmdldEF0dHJpYnV0ZSgia2V5IikpfSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkNvbXBsZXRlIEZvcm0gRXhhbXBsZSIgLmRlc2NyaXB0aW9uPSJBIGNvbXByZWhlbnNpdmUgZm9ybSB3aXRoIHZhcmlvdXMgaW5wdXQgdHlwZXMsIHZhbGlkYXRpb24sIGFuZCBmb3JtIHN1Ym1pc3Npb24gaGFuZGxpbmciPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0iZmlyc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9IkZpcnN0IE5hbWUiCiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJZb3VyIGdpdmVuIG5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0ibGFzdE5hbWUiIAogICAgICAgICAgICBsYWJlbD0iTGFzdCBOYW1lIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0gCiAgICAgICAgICAgIGtleT0iZW1haWwiIAogICAgICAgICAgICBsYWJlbD0iRW1haWwgQWRkcmVzcyIKICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IldlIHdpbGwgdXNlIHRoaXMgdG8gY29udGFjdCB5b3UifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJjb3VudHJ5IgogICAgICAgICAgICAubGFiZWw9JHsiQ291bnRyeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlVuaXRlZCBTdGF0ZXMiLGtleToidXMifSx7b3B0aW9uOiJDYW5hZGEiLGtleToiY2EifSx7b3B0aW9uOiJHZXJtYW55IixrZXk6ImRlIn0se29wdGlvbjoiRnJhbmNlIixrZXk6ImZyIn0se29wdGlvbjoiVW5pdGVkIEtpbmdkb20iLGtleToidWsifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICBrZXk9InBhc3N3b3JkIgogICAgICAgICAgICBsYWJlbD0iUGFzc3dvcmQiCiAgICAgICAgICAgIGlzUGFzc3dvcmRCb29sCiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJNaW5pbXVtIDggY2hhcmFjdGVycyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICBrZXk9InRlcm1zIgogICAgICAgICAgICBsYWJlbD0iSSBhZ3JlZSB0byB0aGUgVGVybXMgYW5kIENvbmRpdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICBrZXk9Im5ld3NsZXR0ZXIiCiAgICAgICAgICAgIGxhYmVsPSJTZW5kIG1lIHByb21vdGlvbmFsIGVtYWlscyIKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5DcmVhdGUgQWNjb3VudDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLW91dHB1dCI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgY29sbGVjdGVkIGRhdGEuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpO2UmJihjb25zb2xlLmxvZygiSG9yaXpvbnRhbCBmb3JtIGxheW91dCBhY3RpdmUiKSxlLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixpPT57bGV0IHI9aS5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiRmlsdGVyIGFwcGxpZWQ6IixyKTtsZXQgcz1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTAwKSsxO2NvbnNvbGUubG9nKGBGb3VuZCAke3N9IHJlc3VsdHMgd2l0aCBmaWx0ZXJzOmAscil9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltrZXldIikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0Iixhc3luYygpPT57bGV0IHI9YXdhaXQgZS5jb2xsZWN0Rm9ybURhdGEoKTtjb25zb2xlLmxvZygiTGl2ZSBmaWx0ZXIgdXBkYXRlOiIscil9KX0pKX19PgogICAgICA8ZGVlcy1wYW5lbCAuaGVhZGluZz0iSG9yaXpvbnRhbCBGb3JtIExheW91dCIgLmRlc2NyaXB0aW9uPSJDb21wYWN0IGZvcm0gd2l0aCBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IC0gcGVyZmVjdCBmb3IgZmlsdGVycyBhbmQgcXVpY2sgZm9ybXMiPgogICAgICAgIDxkZWVzLWZvcm0gaG9yaXpvbnRhbC1sYXlvdXQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICBrZXk9InNlYXJjaCIgCiAgICAgICAgICAgIGxhYmVsPSJTZWFyY2giCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJFbnRlciBrZXl3b3Jkcy4uLiIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAga2V5PSJjYXRlZ29yeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNhdGVnb3J5In0KICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJBbGwiLGtleToiYWxsIn0se29wdGlvbjoiUHJvZHVjdHMiLGtleToicHJvZHVjdHMifSx7b3B0aW9uOiJTZXJ2aWNlcyIsa2V5OiJzZXJ2aWNlcyJ9LHtvcHRpb246IlN1cHBvcnQiLGtleToic3VwcG9ydCJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0ic29ydCIKICAgICAgICAgICAgLmxhYmVsPSR7IlNvcnQgQnkifQogICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246Ik5ld2VzdCIsa2V5OiJuZXdlc3QifSx7b3B0aW9uOiJQb3B1bGFyIixrZXk6InBvcHVsYXIifSx7b3B0aW9uOiJQcmljZTogTG93IHRvIEhpZ2giLGtleToicHJpY2VfYXNjIn0se29wdGlvbjoiUHJpY2U6IEhpZ2ggdG8gTG93IixrZXk6InByaWNlX2Rlc2MifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICBrZXk9ImluU3RvY2siCiAgICAgICAgICAgIGxhYmVsPSJJbiBTdG9jayBPbmx5IgogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIiksYT10LnF1ZXJ5U2VsZWN0b3IoIiNzdGF0dXMtZGlzcGxheSIpO2lmKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLGFzeW5jIHI9PntsZXQgcz1yLmRldGFpbC5kYXRhO2NvbnNvbGUubG9nKCJBZHZhbmNlZCBmb3JtIGRhdGE6IixzKSxlLnNldFN0YXR1cygicGVuZGluZyIsIlZhbGlkYXRpbmcgeW91ciBpbmZvcm1hdGlvbi4uLiIpLGF3YWl0IHJ0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigxNTAwKSxzLmliYW4mJnMuaWJhbi5sZW5ndGg+MTU/KGUuc2V0U3RhdHVzKCJzdWNjZXNzIiwiQXBwbGljYXRpb24gc3VibWl0dGVkIHN1Y2Nlc3NmdWxseSEiKSxhJiYoYS5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIHN1Y2Nlc3MiLGEudGV4dENvbnRlbnQ9Ilx1MjcxMyBZb3VyIGFwcGxpY2F0aW9uIGhhcyBiZWVuIHN1Ym1pdHRlZC4gV2Ugd2lsbCBjb250YWN0IHlvdSBzb29uLiIpKTooZS5zZXRTdGF0dXMoImVycm9yIiwiUGxlYXNlIGNoZWNrIHlvdXIgSUJBTiIpLGEmJihhLmNsYXNzTmFtZT0ic3RhdHVzLW1lc3NhZ2UgZXJyb3IiLGEudGV4dENvbnRlbnQ9Ilx1MjcxNyBJbnZhbGlkIElCQU4gZm9ybWF0LiBQbGVhc2UgY2hlY2sgYW5kIHRyeSBhZ2Fpbi4iKSksY29uc29sZS5sb2coIkZvcm0gZGF0YSBsb2dnZWQ6IixzKX0pO2xldCBpPWUucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1maWxldXBsb2FkIik7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHI9PntsZXQgcz1yLmRldGFpbD8uZmlsZXN8fFtdO2NvbnNvbGUubG9nKGAke3MubGVuZ3RofSBmaWxlKHMpIHNlbGVjdGVkIGZvciB1cGxvYWRgKX0pfX19PgogICAgICA8ZGVlcy1wYW5lbCAuaGVhZGluZz0iQWR2YW5jZWQgRm9ybSBGZWF0dXJlcyIgLmRlc2NyaXB0aW9uPSJGb3JtIHdpdGggc3BlY2lhbGl6ZWQgaW5wdXQgdHlwZXMgYW5kIGNvbXBsZXggdmFsaWRhdGlvbiI+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4gCiAgICAgICAgICAgIGtleT0iaWJhbiIKICAgICAgICAgICAgbGFiZWw9IklCQU4iCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICBrZXk9InBob25lIgogICAgICAgICAgICBsYWJlbD0iUGhvbmUgTnVtYmVyIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIGtleT0icHJlZmVyZW5jZXMiCiAgICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb24gUHJlZmVyZW5jZXMifQogICAgICAgICAgICAub3B0aW9ucz0ke1siRW1haWwiLCJTTVMiLCJQdXNoIiwiSW4tQXBwIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbWFpbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXNlbGVjdAogICAgICAgICAgICBrZXk9ImludGVyZXN0cyIKICAgICAgICAgICAgLmxhYmVsPSR7IkFyZWFzIG9mIEludGVyZXN0In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVGVjaG5vbG9neSIsa2V5OiJ0ZWNoIn0se29wdGlvbjoiRGVzaWduIixrZXk6ImRlc2lnbiJ9LHtvcHRpb246IkJ1c2luZXNzIixrZXk6ImJ1c2luZXNzIn0se29wdGlvbjoiTWFya2V0aW5nIixrZXk6Im1hcmtldGluZyJ9LHtvcHRpb246IlNhbGVzIixrZXk6InNhbGVzIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXNlbGVjdD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICBrZXk9ImRvY3VtZW50cyIKICAgICAgICAgICAgLmxhYmVsPSR7IlVwbG9hZCBEb2N1bWVudHMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUERGLCBET0MsIG9yIERPQ1ggZmlsZXMgdXAgdG8gMTBNQiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlN1Ym1pdCBBcHBsaWNhdGlvbjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJzdGF0dXMtZGlzcGxheSI+PC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYH0pO3ZhciBqdXQsYVYsVXV0LFd1dCxBbD1iKCgpPT57dWUoKTtUdCgpO194KCk7UHEoKTtOcSgpO2xvKCk7UnEoKTtJeCgpO094KCk7SHEoKTtXcSgpO0dxKCk7WXEoKTtYcSgpO1FxKCk7SzAoKTt0VigpO1Z1dCgpO2p1dD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LGFWPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxVdXQ9W0N4LCR4LEF4LEZ4LFJ4LHF4LFZ4LFV4LEV4LFB4LER4LFd4LEd4LFp4XSxXdXQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWZvcm0iKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJob3Jpem9udGFsLWxheW91dCJ9KV0sanV0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaG9yaXpvbnRhbExheW91dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cD0+Imhvcml6b250YWxMYXlvdXQiaW4gcCxnZXQ6cD0+cC5ob3Jpem9udGFsTGF5b3V0LHNldDoocCxsKT0+e3AuaG9yaXpvbnRhbExheW91dD1sfX0sbWV0YWRhdGE6Y30sbixvKSxqdXQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxkPWk9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1xdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJGb3JtIl07bmFtZT0ibXlmb3JtIjtjaGFuZ2VTdWJqZWN0PW5ldyBNdC5zbWFydHJ4LnJ4anMuU3ViamVjdDtyZWFkeURlZmVycmVkPU10LnNtYXJ0cHJvbWlzZS5kZWZlcigpOyNlPWFWKHRoaXMsbiwhMSk7Z2V0IGhvcml6b250YWxMYXlvdXQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaG9yaXpvbnRhbExheW91dChjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtob3Jpem9udGFsLWxheW91dF0pIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7dGhpcy51cGRhdGVSZXF1aXJlZFN0YXR1cygpLHRoaXMudXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCk7Zm9yKGxldCBwIG9mIGMpcC5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZShhc3luYygpPT57bGV0IGw9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKTt0aGlzLmNoYW5nZVN1YmplY3QubmV4dChsKSxjb25zb2xlLmxvZyhsKSx0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl9KTthd2FpdCB0aGlzLmFkZEJlaGF2aW91cnMoKSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfWdldEZvcm1FbGVtZW50cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbHRlcihjPT5VdXQuaW5jbHVkZXMoYy5jb25zdHJ1Y3RvcikpfWdldFN1Ym1pdEJ1dHRvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbmQoYz0+YyBpbnN0YW5jZW9mIE54KX1hc3luYyB1cGRhdGVSZXF1aXJlZFN0YXR1cygpe2NvbnNvbGUubG9nKCJjaGVja2luZyB0aGUgcmVxdWlyZWQgc3RhdHVzLiIpO2xldCBjPSEwO2ZvcihsZXQgcCBvZiB0aGlzLmdldEZvcm1FbGVtZW50cygpKXAucmVxdWlyZWQmJiFwLnZhbHVlJiYoYz0hMSk7dGhpcy5nZXRTdWJtaXRCdXR0b24oKSYmKHRoaXMuZ2V0U3VibWl0QnV0dG9uKCkuZGlzYWJsZWQ9IWMpfWFzeW5jIGNvbGxlY3RGb3JtRGF0YSgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCkscD17fTtmb3IobGV0IGwgb2YgYyl7aWYoIWwua2V5KXtjb25zb2xlLmxvZyhgZm9ybSBlbGVtZW50IHdpdGggbGFiZWwgIiR7bC5sYWJlbH0iIGhhcyBubyBrZXkuIHNraXBwaW5nLmApO2NvbnRpbnVlfXBbbC5rZXldPWwudmFsdWV9cmV0dXJuIHB9YXN5bmMgZ2F0aGVyQW5kRGlzcGF0Y2goKXtsZXQgYz1hd2FpdCB0aGlzLmNvbGxlY3RGb3JtRGF0YSgpLHA9bmV3IEN1c3RvbUV2ZW50KCJmb3JtRGF0YSIse2RldGFpbDp7ZGF0YTpjfSxidWJibGVzOiEwfSk7dGhpcy5kaXNwYXRjaEV2ZW50KHApLGNvbnNvbGUubG9nKCJkaXNwYXRjaGVkIGRhdGE6IiksY29uc29sZS5sb2coYyl9c2V0U3RhdHVzKGMscCl7bGV0IGw9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSxmPXRoaXMuZ2V0U3VibWl0QnV0dG9uKCk7c3dpdGNoKGMpe2Nhc2Uibm9ybWFsIjpmLmRpc2FibGVkPSExLGYuc3RhdHVzPSJub3JtYWwiO2ZvcihsZXQgZyBvZiBsKWcuZGlzYWJsZWQ9ITE7YnJlYWs7Y2FzZSJwZW5kaW5nIjpmLmRpc2FibGVkPSEwLGYuc3RhdHVzPSJwZW5kaW5nIjtmb3IobGV0IGcgb2YgbClnLmRpc2FibGVkPSEwO2JyZWFrO2Nhc2Uic3VjY2VzcyI6Zi5kaXNhYmxlZD0hMCxmLnN0YXR1cz0ic3VjY2VzcyI7Zm9yKGxldCBnIG9mIGwpZy5kaXNhYmxlZD0hMDticmVhaztjYXNlImVycm9yIjpmLmRpc2FibGVkPSEwLGYuc3RhdHVzPSJlcnJvciI7Zm9yKGxldCBnIG9mIGwpZy5kaXNhYmxlZD0hMDticmVha31mLnRleHQ9cH1yZXNldCgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCkscD10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO2ZvcihsZXQgbCBvZiBjKWwudmFsdWU9bnVsbDt0aGlzLnNldFN0YXR1cygibm9ybWFsIiwiU3VibWl0Iil9YXN5bmMgYWRkQmVoYXZpb3Vycygpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYz0+e2xldCBwPWMudGFyZ2V0O2lmKFV1dC5pbmNsdWRlcyhwLmNvbnN0cnVjdG9yKSYmYy5rZXk9PT0iRW50ZXIiKXtsZXQgbD10aGlzLmdldEZvcm1FbGVtZW50cygpLGY9bC5pbmRleE9mKHApO2Y8bC5sZW5ndGgtMT9sW2YrMV0uZm9jdXMoKToocC5ibHVyKCksdGhpcy5nZXRTdWJtaXRCdXR0b24oKT8uZm9jdXMoKSl9fSl9dXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCl7bGV0IGM9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTtmb3IobGV0IHAgb2YgYykibGF5b3V0TW9kZSJpbiBwJiYocC5sYXlvdXRNb2RlPSJhdXRvIil9dXBkYXRlZChjKXtzdXBlci51cGRhdGVkKGMpLGMuaGFzKCJob3Jpem9udGFsTGF5b3V0IikmJnRoaXMudXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGFWKHRoaXMsbyl9c3RhdGlje2FWKGksYSl9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciBHdXQsWXV0PWIoKCk9Pnt1ZSgpO3kxKCk7bTIoKTtBbCgpO0swKCk7bG8oKTtEdCgpO0d1dD0oKT0+d2AKICA8c3R5bGU+CiAgICAke1FgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAudmVydGljYWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmljb24tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXNuaXBwZXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgaT1hLmdldEF0dHJpYnV0ZSgidHlwZSIpfHwiZGVmYXVsdCI7Y29uc29sZS5sb2coYEJ1dHRvbiB2YXJpYW50IGNsaWNrZWQ6ICR7aX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJ1dHRvbiBWYXJpYW50cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmlzdWFsIHN0eWxlcyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiPkRlZmF1bHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiPk91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij5HaG9zdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ibGluayI+TGluayBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBpPWEuZ2V0QXR0cmlidXRlKCJzaXplIil8fCJkZWZhdWx0Ijtjb25zb2xlLmxvZyhgQnV0dG9uIHNpemU6ICR7aX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIEJ1dHRvbiBTaXplcyJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBzaXplcyBmb3IgZGlmZmVyZW50IGNvbnRleHRzIGFuZCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9InNtIj5TbWFsbCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImRlZmF1bHQiPkRlZmF1bHQgU2l6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciPkxhcmdlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSIgLnRleHQ9JHsiXHV7MUY2ODB9In0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ic20iIHR5cGU9InNlY29uZGFyeSI+U21hbGwgU2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJkZWZhdWx0IiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVmYXVsdCBEZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciIHR5cGU9Im91dGxpbmUiPkxhcmdlIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBpPWEucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIik7aWYoaSl7bGV0IHI9aS5nZXRBdHRyaWJ1dGUoImljb25GQSIpfHwidW5rbm93biI7Y29uc29sZS5sb2coYEljb24gYnV0dG9uIGNsaWNrZWQ6ICR7cn1gKX19KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBCdXR0b25zIHdpdGggSWNvbnMifSAuc3VidGl0bGU9JHsiQ29tYmluaW5nIGljb25zIHdpdGggdGV4dCBmb3IgZW5oYW5jZWQgdmlzdWFsIGNvbW11bmljYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6cGx1cyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIEFkZCBJdGVtCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBEb3dubG9hZAogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmdlYXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBTZXR0aW5ncwogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Y2FyZXRMZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQmFjawogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIE5leHQKICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpjYXJldFJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpwbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ic2Vjb25kYXJ5Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpnZWFyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNlYXJjaCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TW9yZVZlcnRpY2FsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgaT1hLmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwibm9uZSIscj1hLmdldEF0dHJpYnV0ZSgiaWNvblBvc2l0aW9uIil8fCJsZWZ0Ijtjb25zb2xlLmxvZyhgSWNvbiBwcm9wZXJ0eSBidXR0b246IGljb249JHtpfSwgcG9zaXRpb249JHtyfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gSWNvbnMgdmlhIFByb3BlcnR5In0gLnN1YnRpdGxlPSR7IlNpbXBsaWZpZWQgaWNvbiBzeW50YXggdXNpbmcgdGhlIGljb24gcHJvcGVydHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyI+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBpY29uPSJmYTp0cmFzaCI+RGVsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPkRvd25sb2FkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iIGljb249ImZhOmdlYXIiPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRMZWZ0Ij5CYWNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRSaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0IiBpY29uPSJmYTpwbHVzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9InNlY29uZGFyeSIgaWNvbj0ibHVjaWRlOlNldHRpbmdzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiIGljb249Imx1Y2lkZTpTZWFyY2giPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiIGljb249Imx1Y2lkZTpNb3JlVmVydGljYWwiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiIGljb249ImZhOnRyYXNoIj48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyImZ3Q7QWRkIEl0ZW0mbHQ7L2RlZXMtYnV0dG9uJmd0Ozxicj4KICAgICAgICAgICAgJmx0O2RlZXMtYnV0dG9uIGljb249ImZhOmNhcmV0UmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiJmd0O05leHQmbHQ7L2RlZXMtYnV0dG9uJmd0OwogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InBlbmRpbmciXScpLGE9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InN1Y2Nlc3MiXScpLGk9dC5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9ImVycm9yIl0nKTtlJiZzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlBlbmRpbmcgYnV0dG9uIGlzIHNob3dpbmcgbG9hZGluZyBzdGF0ZSIpfSwxZTMpLGEmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiU3VjY2VzcyBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSksaSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJFcnJvciBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIEJ1dHRvbiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyB0byBpbmRpY2F0ZSBidXR0b24gc3RhdHVzIGFuZCBsb2FkaW5nIGNvbmRpdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0ibm9ybWFsIj5Ob3JtYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0icGVuZGluZyI+UHJvY2Vzc2luZy4uLjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJzdWNjZXNzIj5TdWNjZXNzITwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJlcnJvciI+RXJyb3IhPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBkaXNhYmxlZD5EaXNhYmxlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc3RhdHVzPSJwZW5kaW5nIiBzaXplPSJzbSI+U21hbGwgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSIgc3RhdHVzPSJwZW5kaW5nIj5EZWZhdWx0IExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzdGF0dXM9InBlbmRpbmciIHNpemU9ImxnIj5MYXJnZSBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCIjY2xpY2stb3V0cHV0IiksYT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYnV0dG9uOmZpcnN0LW9mLXR5cGUiKSxpPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0ic2Vjb25kYXJ5Il0nKSxyPXQucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0iZGVzdHJ1Y3RpdmUiXScpO2EmJmUmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntlLnRleHRDb250ZW50PWBDbGlja2VkOiBEZWZhdWx0IGJ1dHRvbiBhdCAke25ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9YH0pLGkmJmUmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIscz0+e2UudGV4dENvbnRlbnQ9YENsaWNrZWQ6IFNlY29uZGFyeSBidXR0b24gd2l0aCBkYXRhOiAke3MuZGV0YWlsLmRhdGF9YH0pLHImJmUmJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsYXN5bmMoKT0+e2UudGV4dENvbnRlbnQ9IlByb2Nlc3NpbmcuLi4iLGF3YWl0IHJ0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLGUudGV4dENvbnRlbnQ9IkFjdGlvbiBjb21wbGV0ZWQhIn0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBleGFtcGxlcyB3aXRoIGNsaWNrIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DbGljayBNZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiAuZXZlbnREZXRhaWxEYXRhPSR7ImN1c3RvbS1kYXRhLTEyMyJ9PgogICAgICAgICAgICBDbGljayB3aXRoIERhdGEKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPkFzeW5jIEFjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iY2xpY2stb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPkNsaWNrIGEgYnV0dG9uIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSxhPXQucXVlcnlTZWxlY3RvcigiI2Zvcm0tb3V0cHV0Iik7ZSYmYSYmZS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIscz0+e2EuaW5uZXJIVE1MPSI8c3Ryb25nPkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YTo8L3N0cm9uZz48YnI+IitKU09OLnN0cmluZ2lmeShzLmRldGFpbC5kYXRhLG51bGwsMil9KTtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9InNlY29uZGFyeSJdJykscj10LnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9Imdob3N0Il0nKTtpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIlNhdmUgRHJhZnQgY2xpY2tlZCIpfSksciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJDYW5jZWwgY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiQnV0dG9ucyB3b3JraW5nIHdpdGhpbiBmb3JtcyB3aXRoIGF1dG9tYXRpYyBzcGFjaW5nIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTWVzc2FnZSIga2V5PSJtZXNzYWdlIiBpc011bHRpbGluZT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2F2ZSBEcmFmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPkNhbmNlbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJmb3JtLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZS13cmFwOyI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgZGF0YS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKGE9PntsZXQgaT1hLmdldEF0dHJpYnV0ZSgidHlwZSIpO2kmJmNvbnNvbGUubG9nKGBMZWdhY3kgdHlwZSAiJHtpfSIgaXMgc3VwcG9ydGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSJ9IC5zdWJ0aXRsZT0keyJPbGQgYnV0dG9uIHR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5IG1hcHBlZCB0byBuZXcgdmFyaWFudHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im5vcm1hbCI+Tm9ybWFsIOKGkiBEZWZhdWx0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+SGlnaGxpZ2h0ZWQg4oaSIERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkaXNjcmVldCI+RGlzY3JlZXQg4oaSIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImJpZyI+QmlnIOKGkiBMYXJnZSBTaXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsiPgogICAgICAgICAgVGhlc2UgbGVnYWN5IHR5cGUgdmFsdWVzIGFyZSBtYWludGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGJ1dCB3ZSByZWNvbW1lbmQgdXNpbmcgdGhlIG5ldyB2YXJpYW50IHN5c3RlbS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvckFsbCgiLnZlcnRpY2FsLWdyb3VwIilbMF0sYT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi52ZXJ0aWNhbC1ncm91cCIpWzFdO2UmJmUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKChyLHMpPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBuPVsiU2F2ZSBDaGFuZ2VzIiwiRGlzY2FyZCIsIkhlbHAiXVtzXTtjb25zb2xlLmxvZyhgQWN0aW9uIGdyb3VwOiAke259IGNsaWNrZWRgKX0pfSksYSYmYS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goKHIscyk9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IG49WyJEZWxldGUgQWNjb3VudCIsIkFyY2hpdmUgRGF0YSIsIk5vdCBBdmFpbGFibGUiXVtzXTtzIT09MiYmY29uc29sZS5sb2coYERhbmdlciB6b25lOiAke259IGNsaWNrZWRgKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEFkdmFuY2VkIEV4YW1wbGVzIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXggYnV0dG9uIGNvbmZpZ3VyYXRpb25zIGFuZCByZWFsLXdvcmxkIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5BY3Rpb24gR3JvdXA8L2g0PgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNhdmUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIFNhdmUgQ2hhbmdlcwogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VW5kbzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERpc2NhcmQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVscENpcmNsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgSGVscAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5EYW5nZXIgWm9uZTwvaDQ+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERlbGV0ZSBBY2NvdW50CiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJjaGl2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgQXJjaGl2ZSBEYXRhCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgc2l6ZT0ic20iIGRpc2FibGVkPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkJhbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgTm90IEF2YWlsYWJsZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+Q29kZSBFeGFtcGxlOjwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIGljb249Imx1Y2lkZTpTYXZlIiBAY2xpY2tlZD0iXCR7aGFuZGxlQ2xpY2t9IiZndDs8YnI+CiAgICAgICAgICAgICZuYnNwOyZuYnNwO1NhdmUgQ2hhbmdlczxicj4KICAgICAgICAgICAgJmx0Oy9kZWVzLWJ1dHRvbiZndDsKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgWWksSDEsWnV0LG5vPWIoKCk9Pnt1ZSgpO1R0KCk7WXV0KCk7cWUoKTtZaT1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEgxPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxadXQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWJ1dHRvbiIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdO3ZhciByZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGo9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7cmVmbGVjdDohMCxoYXNDaGFuZ2VkKCl7cmV0dXJuITB9fSldLGQ9W0koKV0sbD1bSSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seT1bSSh7dHlwZTpCb29sZWFufSldLHg9W0koe3R5cGU6U3RyaW5nfSldLEY9W0koe3R5cGU6U3RyaW5nfSldLE49W0koe3R5cGU6U3RyaW5nfSldLHE9W0koe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLEU9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sVj1bSSh7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxZaSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm1lPT4idGV4dCJpbiBtZSxnZXQ6bWU9Pm1lLnRleHQsc2V0OihtZSx3ZSk9PnttZS50ZXh0PXdlfX0sbWV0YWRhdGE6an0sbixvKSxZaSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50RGV0YWlsRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bWU9PiJldmVudERldGFpbERhdGEiaW4gbWUsZ2V0Om1lPT5tZS5ldmVudERldGFpbERhdGEsc2V0OihtZSx3ZSk9PnttZS5ldmVudERldGFpbERhdGE9d2V9fSxtZXRhZGF0YTpqfSxjLHApLFlpKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm1lPT4iZGlzYWJsZWQiaW4gbWUsZ2V0Om1lPT5tZS5kaXNhYmxlZCxzZXQ6KG1lLHdlKT0+e21lLmRpc2FibGVkPXdlfX0sbWV0YWRhdGE6an0sZixnKSxZaSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSGlkZGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptZT0+ImlzSGlkZGVuImluIG1lLGdldDptZT0+bWUuaXNIaWRkZW4sc2V0OihtZSx3ZSk9PnttZS5pc0hpZGRlbj13ZX19LG1ldGFkYXRhOmp9LHYsbSksWWkodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptZT0+InR5cGUiaW4gbWUsZ2V0Om1lPT5tZS50eXBlLHNldDoobWUsd2UpPT57bWUudHlwZT13ZX19LG1ldGFkYXRhOmp9LE0sUyksWWkodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptZT0+InNpemUiaW4gbWUsZ2V0Om1lPT5tZS5zaXplLHNldDoobWUsd2UpPT57bWUuc2l6ZT13ZX19LG1ldGFkYXRhOmp9LF8sayksWWkodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm1lPT4ic3RhdHVzImluIG1lLGdldDptZT0+bWUuc3RhdHVzLHNldDoobWUsd2UpPT57bWUuc3RhdHVzPXdlfX0sbWV0YWRhdGE6an0sTCxBKSxZaSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imluc2lkZUZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm1lPT4iaW5zaWRlRm9ybSJpbiBtZSxnZXQ6bWU9Pm1lLmluc2lkZUZvcm0sc2V0OihtZSx3ZSk9PnttZS5pbnNpZGVGb3JtPXdlfX0sbWV0YWRhdGE6an0sQyx6KSxZaSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm1lPT4iaWNvbiJpbiBtZSxnZXQ6bWU9Pm1lLmljb24sc2V0OihtZSx3ZSk9PnttZS5pY29uPXdlfX0sbWV0YWRhdGE6an0sVCwkKSxZaSh0aGlzLG51bGwsVix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25Qb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bWU9PiJpY29uUG9zaXRpb24iaW4gbWUsZ2V0Om1lPT5tZS5pY29uUG9zaXRpb24sc2V0OihtZSx3ZSk9PnttZS5pY29uUG9zaXRpb249d2V9fSxtZXRhZGF0YTpqfSxSLFUpLFlpKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmp9LG51bGwsYSkscmU9aT1lLnZhbHVlLGomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6an0pfXN0YXRpYyBkZW1vPUd1dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPUgxKHRoaXMsbix2b2lkIDApO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRleHQoail7dGhpcy4jZT1qfSN0PShIMSh0aGlzLG8pLEgxKHRoaXMsYyx2b2lkIDApKTtnZXQgZXZlbnREZXRhaWxEYXRhKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGV2ZW50RGV0YWlsRGF0YShqKXt0aGlzLiN0PWp9I2E9KEgxKHRoaXMscCksSDEodGhpcyxmLCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGRpc2FibGVkKGope3RoaXMuI2E9an0jaT0oSDEodGhpcyxnKSxIMSh0aGlzLHYsITEpKTtnZXQgaXNIaWRkZW4oKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIaWRkZW4oail7dGhpcy4jaT1qfSNyPShIMSh0aGlzLG0pLEgxKHRoaXMsTSwiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNyfXNldCB0eXBlKGope3RoaXMuI3I9an0jcz0oSDEodGhpcyxTKSxIMSh0aGlzLF8sImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jc31zZXQgc2l6ZShqKXt0aGlzLiNzPWp9I249KEgxKHRoaXMsayksSDEodGhpcyxMLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNufXNldCBzdGF0dXMoail7dGhpcy4jbj1qfSNvPShIMSh0aGlzLEEpLEgxKHRoaXMsQywhMSkpO2dldCBpbnNpZGVGb3JtKCl7cmV0dXJuIHRoaXMuI299c2V0IGluc2lkZUZvcm0oail7dGhpcy4jbz1qfSNsPShIMSh0aGlzLHopLEgxKHRoaXMsVCx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiNsfXNldCBpY29uKGope3RoaXMuI2w9an0jYz0oSDEodGhpcywkKSxIMSh0aGlzLFIsImxlZnQiKSk7Z2V0IGljb25Qb3NpdGlvbigpe3JldHVybiB0aGlzLiNjfXNldCBpY29uUG9zaXRpb24oail7dGhpcy4jYz1qfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxIMSh0aGlzLFUpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSwhdGhpcy5pbnNpZGVGb3JtJiZ0aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpJiYodGhpcy5pbnNpZGVGb3JtPSEwKX1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICB9CiAgICAgIDpob3N0KFtoaWRkZW5dKSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogRm9ybSBzcGFjaW5nIHN0eWxlcyAqLwogICAgICA6aG9zdChbaW5zaWRlLWZvcm1dKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXTpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dKSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbi1yaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLWZvcm1baG9yaXpvbnRhbC1sYXlvdXRdIDpob3N0KFtpbnNpZGUtZm9ybV06bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1yaWdodDogMDsKICAgICAgfQoKICAgICAgLmJ1dHRvbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogU2l6ZSB2YXJpYW50cyAqLwogICAgICAuYnV0dG9uLnNpemUtZGVmYXVsdCB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1zbSB7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1sZyB7CiAgICAgICAgaGVpZ2h0OiA0NHB4OwogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2l6ZS1pY29uIHsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgd2lkdGg6IDM2cHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLyogRGVmYXVsdCB2YXJpYW50ICovCiAgICAgIC5idXR0b24uZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpOwogICAgICB9CgogICAgICAuYnV0dG9uLmRlZmF1bHQ6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDEwLjIlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZWZhdWx0OmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDklKSIpfTsKICAgICAgfQoKICAgICAgLyogRGVzdHJ1Y3RpdmUgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA2MC4yJSk7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDk4JSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmU6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDU2LjIlKTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZTphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDUyLjIlKTsKICAgICAgfQoKICAgICAgLyogT3V0bGluZSB2YXJpYW50ICovCiAgICAgIC5idXR0b24ub3V0bGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLm91dGxpbmU6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMjYuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLm91dGxpbmU6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAvKiBTZWNvbmRhcnkgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgODUlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICB9CgogICAgICAvKiBHaG9zdCB2YXJpYW50ICovCiAgICAgIC5idXR0b24uZ2hvc3QgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZ2hvc3Q6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5naG9zdDphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxMy44JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIExpbmsgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmxpbmsgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5idXR0b24ubGluazpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBzdGF0ZXMgKi8KICAgICAgLmJ1dHRvbi5wZW5kaW5nLAogICAgICAuYnV0dG9uLnN1Y2Nlc3MsCiAgICAgIC5idXR0b24uZXJyb3IgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmctbGVmdDogMzZweDsgLyogU3BhY2UgZm9yIHNwaW5uZXIgKi8KICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtLnBlbmRpbmcsCiAgICAgIC5idXR0b24uc2l6ZS1zbS5zdWNjZXNzLAogICAgICAuYnV0dG9uLnNpemUtc20uZXJyb3IgewogICAgICAgIHBhZGRpbmctbGVmdDogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLWxnLnBlbmRpbmcsCiAgICAgIC5idXR0b24uc2l6ZS1sZy5zdWNjZXNzLAogICAgICAuYnV0dG9uLnNpemUtbGcuZXJyb3IgewogICAgICAgIHBhZGRpbmctbGVmdDogNDRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5wZW5kaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSAvIDAuMikiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5idXR0b24uc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNjIuOCUgNzAuNiUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCA2Mi44JSA3MC42JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIC5idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBIaWRkZW4gc3RhdGUgKi8KICAgICAgLmJ1dHRvbi5oaWRkZW4gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEZvY3VzIHN0YXRlICovCiAgICAgIC5idXR0b246Zm9jdXMtdmlzaWJsZSB7CiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogICAgICB9CgogICAgICAvKiBMb2FkaW5nIHNwaW5uZXIgKi8KICAgICAgZGVlcy1zcGlubmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMTBweDsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbSBkZWVzLXNwaW5uZXIgewogICAgICAgIGxlZnQ6IDhweDsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZyBkZWVzLXNwaW5uZXIgewogICAgICAgIGxlZnQ6IDE0cHg7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBJY29uIHNpemluZyB3aXRoaW4gYnV0dG9ucyAqLwogICAgICAuYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZyBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQoKICAgICAgLyogVGV4dCBhbGlnbm1lbnQgKi8KICAgICAgLnRleHRib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgIGBdO2V4dHJhY3RMaWdodERvbSgpe2xldCBqPXRoaXMucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIiksbWU9QXJyYXkuZnJvbSh0aGlzLmNoaWxkTm9kZXMpLmZpbHRlcih3ZT0+d2Uubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSkubWFwKHdlPT53ZS50ZXh0Q29udGVudD8udHJpbSgpKS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpO2lmKG1lJiYhdGhpcy50ZXh0JiYodGhpcy50ZXh0PW1lKSxqKXtsZXQgd2U9ai5pY29ufHxqLmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwoai5pY29uRkE/YGZhOiR7ai5pY29uRkF9YDpudWxsKTtpZih3ZSl7bGV0IEg9QXJyYXkuZnJvbSh0aGlzLmNoaWxkTm9kZXMpLGNlPUguaW5kZXhPZihqKSxrZT1ILmZpbHRlcihXPT5XLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJlcudGV4dENvbnRlbnQ/LnRyaW0oKSk7aWYoa2UubGVuZ3RoPjApe2xldCBXPUguaW5kZXhPZihrZVswXSk7dGhpcy5pY29uUG9zaXRpb249Y2U8Vz8ibGVmdCI6InJpZ2h0In10aGlzLmljb249d2V9ai5yZW1vdmUoKX10aGlzLmlubmVySFRNTD0iIn1yZW5kZXIoKXtsZXQgbWU9e25vcm1hbDoiZGVmYXVsdCIsaGlnaGxpZ2h0ZWQ6ImRlc3RydWN0aXZlIixkaXNjcmVldDoib3V0bGluZSIsYmlnOiJkZWZhdWx0In1bdGhpcy50eXBlXXx8dGhpcy50eXBlLHdlPXRoaXMudHlwZT09PSJiaWciPyJsZyI6dGhpcy5zaXplLEg9dGhpcy5pY29uUG9zaXRpb249PT0ibGVmdCImJnRoaXMuaWNvbj93YDxkZWVzLWljb24gLmljb249JHt0aGlzLmljb259PjwvZGVlcy1pY29uPmA6IiIsY2U9dGhpcy5pY29uUG9zaXRpb249PT0icmlnaHQiJiZ0aGlzLmljb24/d2A8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5pY29ufT48L2RlZXMtaWNvbj5gOiIiLGtlPXdlPT09Imljb24iJiZ0aGlzLmljb247cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYnV0dG9uICR7dGhpcy5pc0hpZGRlbj8iaGlkZGVuIjoiIn0gJHttZX0gc2l6ZS0ke3dlfSAke3RoaXMuc3RhdHVzfSAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIke3RoaXMuZGlzcGF0Y2hDbGlja30iCiAgICAgID4KICAgICAgICAke3RoaXMuc3RhdHVzPT09Im5vcm1hbCI/d2BgOndgCiAgICAgICAgICA8ZGVlcy1zcGlubmVyCiAgICAgICAgICAgIC5ibnc9JHshMH0KICAgICAgICAgICAgc3RhdHVzPSIke3RoaXMuc3RhdHVzfSIKICAgICAgICAgICAgc2l6ZT0iJHt3ZT09PSJzbSI/MTQ6d2U9PT0ibGciPzE4OjE2fSIKICAgICAgICAgID48L2RlZXMtc3Bpbm5lcj4KICAgICAgICBgfQogICAgICAgICR7SH0KICAgICAgICAke2tlPyIiOndgPGRpdiBjbGFzcz0idGV4dGJveCI+JHt0aGlzLnRleHR8fCJCdXR0b24ifTwvZGl2PmB9CiAgICAgICAgJHtjZX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGRpc3BhdGNoQ2xpY2soKXt0aGlzLmRpc2FibGVkfHx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGlja2VkIix7ZGV0YWlsOntkYXRhOnRoaXMuZXZlbnREZXRhaWxEYXRhfSxidWJibGVzOiEwfSkpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuZXh0cmFjdExpZ2h0RG9tKCl9c3RhdGlje0gxKGksYSl9fTtyZXR1cm4gcmU9aX0pKCl9KTt2YXIgcG8saGEsWHV0LFh4PWIoKCk9PntOOXQoKTtyMigpO2NhKCk7dWUoKTtEdCgpO3MyKCk7bm8oKTtxZSgpO3BvPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0saGE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFh1dD0oKCk9PntsZXQgdD1baGUoImRlZXMtc3RhdHNncmlkIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W107dmFyIHE9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6QXJyYXl9KV0sZD1bSSh7dHlwZTpOdW1iZXJ9KV0sbD1bSSh7dHlwZTpOdW1iZXJ9KV0seT1bSSh7dHlwZTpBcnJheX0pXSx4PVtKKCldLEY9W0ooKV0sTj1bSigpXSxwbyh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idGlsZXMiaW4geixnZXQ6ej0+ei50aWxlcyxzZXQ6KHosRSk9Pnt6LnRpbGVzPUV9fSxtZXRhZGF0YTpDfSxuLG8pLHBvKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluVGlsZVdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ibWluVGlsZVdpZHRoImluIHosZ2V0Ono9PnoubWluVGlsZVdpZHRoLHNldDooeixFKT0+e3oubWluVGlsZVdpZHRoPUV9fSxtZXRhZGF0YTpDfSxjLHApLHBvKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ2FwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iZ2FwImluIHosZ2V0Ono9PnouZ2FwLHNldDooeixFKT0+e3ouZ2FwPUV9fSxtZXRhZGF0YTpDfSxmLGcpLHBvKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JpZEFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJncmlkQWN0aW9ucyJpbiB6LGdldDp6PT56LmdyaWRBY3Rpb25zLHNldDooeixFKT0+e3ouZ3JpZEFjdGlvbnM9RX19LG1ldGFkYXRhOkN9LHYsbSkscG8odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZXh0TWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJjb250ZXh0TWVudVZpc2libGUiaW4geixnZXQ6ej0+ei5jb250ZXh0TWVudVZpc2libGUsc2V0Oih6LEUpPT57ei5jb250ZXh0TWVudVZpc2libGU9RX19LG1ldGFkYXRhOkN9LE0sUykscG8odGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZXh0TWVudVBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iY29udGV4dE1lbnVQb3NpdGlvbiJpbiB6LGdldDp6PT56LmNvbnRleHRNZW51UG9zaXRpb24sc2V0Oih6LEUpPT57ei5jb250ZXh0TWVudVBvc2l0aW9uPUV9fSxtZXRhZGF0YTpDfSxfLGspLHBvKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iY29udGV4dE1lbnVBY3Rpb25zImluIHosZ2V0Ono9PnouY29udGV4dE1lbnVBY3Rpb25zLHNldDooeixFKT0+e3ouY29udGV4dE1lbnVBY3Rpb25zPUV9fSxtZXRhZGF0YTpDfSxMLEEpLHBvKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsYSkscT1pPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89STl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiRGF0YSBWaWV3Il07I2U9aGEodGhpcyxuLFtdKTtnZXQgdGlsZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGlsZXMoQyl7dGhpcy4jZT1DfSN0PShoYSh0aGlzLG8pLGhhKHRoaXMsYywyNTApKTtnZXQgbWluVGlsZVdpZHRoKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblRpbGVXaWR0aChDKXt0aGlzLiN0PUN9I2E9KGhhKHRoaXMscCksaGEodGhpcyxmLDE2KSk7Z2V0IGdhcCgpe3JldHVybiB0aGlzLiNhfXNldCBnYXAoQyl7dGhpcy4jYT1DfSNpPShoYSh0aGlzLGcpLGhhKHRoaXMsdixbXSkpO2dldCBncmlkQWN0aW9ucygpe3JldHVybiB0aGlzLiNpfXNldCBncmlkQWN0aW9ucyhDKXt0aGlzLiNpPUN9I3I9KGhhKHRoaXMsbSksaGEodGhpcyxNLCExKSk7Z2V0IGNvbnRleHRNZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiNyfXNldCBjb250ZXh0TWVudVZpc2libGUoQyl7dGhpcy4jcj1DfSNzPShoYSh0aGlzLFMpLGhhKHRoaXMsXyx7eDowLHk6MH0pKTtnZXQgY29udGV4dE1lbnVQb3NpdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBjb250ZXh0TWVudVBvc2l0aW9uKEMpe3RoaXMuI3M9Q30jbj0oaGEodGhpcyxrKSxoYSh0aGlzLEwsW10pKTtnZXQgY29udGV4dE1lbnVBY3Rpb25zKCl7cmV0dXJuIHRoaXMuI259c2V0IGNvbnRleHRNZW51QWN0aW9ucyhDKXt0aGlzLiNuPUN9c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgIH0KCiAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIGNvbnNpc3RlbnQgc3BhY2luZyBhbmQgc2l6aW5nICovCiAgICAgIDpob3N0IHsKICAgICAgICAtLWdyaWQtZ2FwOiAxMnB4OwogICAgICAgIC0tdGlsZS1wYWRkaW5nOiAxNnB4OwogICAgICAgIC0taGVhZGVyLXNwYWNpbmc6IDEycHg7CiAgICAgICAgLS1jb250ZW50LW1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgLS12YWx1ZS1mb250LXNpemU6IDI2cHg7CiAgICAgICAgLS11bml0LWZvbnQtc2l6ZTogMTRweDsKICAgICAgICAtLWxhYmVsLWZvbnQtc2l6ZTogMTJweDsKICAgICAgICAtLXRpdGxlLWZvbnQtc2l6ZTogMTNweDsKICAgICAgICAtLWRlc2NyaXB0aW9uLXNwYWNpbmc6IDhweDsKICAgICAgICAtLWJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAtLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzOwogICAgICB9CgogICAgICAvKiBHcmlkIExheW91dCAqLwogICAgICAuZ3JpZC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1ncmlkLWdhcCkgKiAxLjUpOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncmlkLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAuZ3JpZC1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZ3JpZC1hY3Rpb25zIGRlZXMtYnV0dG9uIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7CiAgICAgIH0KCiAgICAgIC5zdGF0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoJHtxdCgyNTApfXB4LCAxZnIpKTsKICAgICAgICBnYXA6ICR7cXQoMTYpfXB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAvKiBUaWxlIEJhc2UgU3R5bGVzICovCiAgICAgIC5zdGF0cy10aWxlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpOwogICAgICAgIHBhZGRpbmc6IHZhcigtLXRpbGUtcGFkZGluZyk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pIGVhc2U7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBkMGQwZCIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDBkMGQwIiwiIzJhMmEyYSIpfTsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGUuY2xpY2thYmxlIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5zdGF0cy10aWxlLmNsaWNrYWJsZTpob3ZlciB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAzKSIsInJnYmEoMCwwLDAsMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgSGVhZGVyICovCiAgICAgIC50aWxlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0taGVhZGVyLXNwYWNpbmcpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGlsZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS10aXRsZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgIH0KCiAgICAgIC50aWxlLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgQ29udGVudCAqLwogICAgICAudGlsZS1jb250ZW50IHsKICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1jb250ZW50LW1pbi1oZWlnaHQpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAudGlsZS12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnRpbGUtdW5pdCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS11bml0LWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnRpbGUtZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1kZXNjcmlwdGlvbi1zcGFjaW5nKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLyogR2F1Z2UgU3R5bGVzICovCiAgICAgIC5nYXVnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMjBweDsKICAgICAgICBoZWlnaHQ6IDcwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbi10b3A6IC04cHg7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1zdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmdhdWdlLWJhY2tncm91bmQgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiAke2guYmRUaGVtZSgiI2U4ZThlOCIsIiMxYTFhMWEiKX07CiAgICAgICAgc3Ryb2tlLXdpZHRoOiA2OwogICAgICB9CgogICAgICAuZ2F1Z2UtZmlsbCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmdhdWdlLXRleHQgewogICAgICAgIGZpbGw6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC1hbmNob3I6IG1pZGRsZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5nYXVnZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmaWxsOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICB9CgogICAgICAvKiBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAucGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U4ZThlOCIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMzMzMzMzIiwiI2UwZTBlMCIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAvKiBNdWx0aSBQZXJjZW50YWdlIFN0eWxlcyAqLwogICAgICAubXVsdGktcGVyY2VudGFnZS13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbXMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U4ZThlOCIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzMzMzMzMyIsIiNlMGUwZTAiKX07CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgfQoKICAgICAgLyogQ1BVIENvcmVzIFN0eWxlcyAqLwogICAgICAuY3B1LWNvcmVzLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWJhcnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICAgIGdhcDogM3B4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1iYXJzLmNlbnRlcmVkIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiA2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci13cmFwcGVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZThlOGU4IiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM2NjY2NjYiLCIjODg4ODg4Iil9OwogICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwubG93IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5tZWRpdW0gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5oaWdoIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgODQuMiUgNjAuMiUpIil9OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIFBhcnRpdGlvbiBTdHlsZXMgKi8KICAgICAgLnBhcnRpdGlvbi13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLXBlcmNlbnRhZ2UgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2U4ZThlOCIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyLWZpbGwgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzMzMzMzMyIsIiNlMGUwZTAiKX07CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXItZmlsbC53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLmNyaXRpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgODQuMiUgNjAuMiUpIil9OwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXRzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLW1ldGEgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tZmlsZXN5c3RlbSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLW1vdW50cG9pbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgfQoKICAgICAgLyogRGlzayBTdHlsZXMgKi8KICAgICAgLmRpc2std3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWNhcGFjaXR5IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAuZGlzay1tb2RlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLmRpc2stdHlwZS1iYWRnZSB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLW1ldHJpY3MgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAuZGlzay1pb3BzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuZGlzay1pb3BzLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuZGlzay1pb3BzLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICB9CgogICAgICAuZGlzay1pb3BzLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWJhciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlOGU4ZTgiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsLmdvb2QgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwuY3JpdGljYWwgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA4NC4yJSA2MC4yJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRyZW5kIFN0eWxlcyAqLwogICAgICAudHJlbmQtY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnRyZW5kLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC50cmVuZC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnRyZW5kLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC50cmVuZC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC50cmVuZC1ncmFwaCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAudHJlbmQtc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC50cmVuZC1saW5lIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogJHtoLmJkVGhlbWUoIiM5OTk5OTkiLCIjNjY2NjY2Iil9OwogICAgICAgIHN0cm9rZS13aWR0aDogMS41OwogICAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQ7CiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgICB9CgogICAgICAudHJlbmQtYXJlYSB7CiAgICAgICAgZmlsbDogJHtoLmJkVGhlbWUoInJnYmEoMTUwLCAxNTAsIDE1MCwgMC4wOCkiLCJyZ2JhKDEwMCwgMTAwLCAxMDAsIDAuMDgpIil9OwogICAgICB9CgogICAgICAvKiBUZXh0IFZhbHVlIFN0eWxlcyAqLwogICAgICAudGV4dC12YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLyogQ29udGV4dCBNZW51ICovCiAgICAgIGRlZXMtY29udGV4dG1lbnUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CiAgICBgXTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksaGEodGhpcyxBKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHt0aGlzLmdyaWRBY3Rpb25zLmxlbmd0aD4wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC10aXRsZSI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWFjdGlvbnMiPgogICAgICAgICAgICAke3RoaXMuZ3JpZEFjdGlvbnMubWFwKEM9PndgCiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uIAogICAgICAgICAgICAgICAgQGNsaWNrZWQ9JHsoKT0+dGhpcy5oYW5kbGVHcmlkQWN0aW9uKEMpfQogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIHNpemU9InNtIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7Qy5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249JHtDLmljb25OYW1lfSBzaXplPSJzbWFsbCI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICAgICR7Qy5uYW1lfQogICAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzdGF0cy1ncmlkIiBzdHlsZT0iZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgke3RoaXMubWluVGlsZVdpZHRofXB4LCAxZnIpKTsgZ2FwOiAke3RoaXMuZ2FwfXB4OyI+CiAgICAgICAgJHt0aGlzLnRpbGVzLm1hcChDPT50aGlzLnJlbmRlclRpbGUoQykpfQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jb250ZXh0TWVudVZpc2libGU/d2AKICAgICAgICA8ZGVlcy1jb250ZXh0bWVudQogICAgICAgICAgLng9JHt0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueH0KICAgICAgICAgIC55PSR7dGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnl9CiAgICAgICAgICAubWVudUl0ZW1zPSR7dGhpcy5jb250ZXh0TWVudUFjdGlvbnN9CiAgICAgICAgICBAY2xpY2tlZD0keygpPT50aGlzLmNvbnRleHRNZW51VmlzaWJsZT0hMX0KICAgICAgICA+PC9kZWVzLWNvbnRleHRtZW51PgogICAgICBgOiIifQogICAgYH1yZW5kZXJUaWxlKEMpe2xldCB6PUMuYWN0aW9ucyYmQy5hY3Rpb25zLmxlbmd0aD4wLEU9eiYmQy5hY3Rpb25zLmxlbmd0aD09PTEsVD1DLmNvbHVtblNwYW4mJkMuY29sdW1uU3Bhbj4xP0MuY29sdW1uU3Bhbjp2b2lkIDA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ic3RhdHMtdGlsZSAke0U/ImNsaWNrYWJsZSI6IiJ9IgogICAgICAgIHN0eWxlPSIke1Q/YGdyaWQtY29sdW1uOiBzcGFuICR7VH1gOiIifSIKICAgICAgICBAY2xpY2s9JHtFPygpPT50aGlzLmhhbmRsZVRpbGVBY3Rpb24oQy5hY3Rpb25zWzBdLEMpOnZvaWQgMH0KICAgICAgICBAY29udGV4dG1lbnU9JHt6PyQ9PnRoaXMuc2hvd0NvbnRleHRNZW51KCQsQyk6dm9pZCAwfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1oZWFkZXIiPgogICAgICAgICAgPGgzIGNsYXNzPSJ0aWxlLXRpdGxlIj4ke0MudGl0bGV9PC9oMz4KICAgICAgICAgICR7Qy5pY29uP3dgCiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InRpbGUtaWNvbiIgLmljb249JHtDLmljb259IHNpemU9InNtYWxsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1jb250ZW50Ij4KICAgICAgICAgICR7dGhpcy5yZW5kZXJUaWxlQ29udGVudChDKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICAke0MuZGVzY3JpcHRpb24mJkMudHlwZSE9PSJ0cmVuZCI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZGVzY3JpcHRpb24iPiR7Qy5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVGlsZUNvbnRlbnQoQyl7c3dpdGNoKEMudHlwZSl7Y2FzZSJudW1iZXIiOnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSIgc3R5bGU9IiR7Qy5jb2xvcj9gY29sb3I6ICR7Qy5jb2xvcn1gOiIifSI+CiAgICAgICAgICAgIDxzcGFuPiR7Qy52YWx1ZX08L3NwYW4+CiAgICAgICAgICAgICR7Qy51bml0P3dgPHNwYW4gY2xhc3M9InRpbGUtdW5pdCI+JHtDLnVuaXR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgO2Nhc2UiZ2F1Z2UiOnJldHVybiB0aGlzLnJlbmRlckdhdWdlKEMpO2Nhc2UicGVyY2VudGFnZSI6cmV0dXJuIHRoaXMucmVuZGVyUGVyY2VudGFnZShDKTtjYXNlInRyZW5kIjpyZXR1cm4gdGhpcy5yZW5kZXJUcmVuZChDKTtjYXNlIm11bHRpUGVyY2VudGFnZSI6cmV0dXJuIHRoaXMucmVuZGVyTXVsdGlQZXJjZW50YWdlKEMpO2Nhc2UiY3B1Q29yZXMiOnJldHVybiB0aGlzLnJlbmRlckNwdUNvcmVzKEMpO2Nhc2UicGFydGl0aW9uIjpyZXR1cm4gdGhpcy5yZW5kZXJQYXJ0aXRpb24oQyk7Y2FzZSJkaXNrIjpyZXR1cm4gdGhpcy5yZW5kZXJEaXNrKEMpO2Nhc2UidGV4dCI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXZhbHVlIiBzdHlsZT0iJHtDLmNvbG9yP2Bjb2xvcjogJHtDLmNvbG9yfWA6IiJ9Ij4KICAgICAgICAgICAgJHtDLnZhbHVlfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDtkZWZhdWx0OnJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Qy52YWx1ZX08L2Rpdj5gfX1yZW5kZXJHYXVnZShDKXtsZXQgej10eXBlb2YgQy52YWx1ZT09Im51bWJlciI/Qy52YWx1ZTpwYXJzZUZsb2F0KEMudmFsdWUpLEU9Qy5nYXVnZU9wdGlvbnN8fHttaW46MCxtYXg6MTAwfSxUPSh6LUUubWluKS8oRS5tYXgtRS5taW4pKjEwMCwkPTEyMCxWPTcwLFU9Ni8yKzIscmU9NDAsaj0kLzIsbWU9Vi1VLHdlPWotcmUsSD1tZSxjZT1qK3JlLFc9YE0gJHt3ZX0gJHtIfSBBICR7cmV9ICR7cmV9IDAgMCAxICR7Y2V9ICR7bWV9YCxEPU1hdGguUEkqcmUsTz1ELUQqVC8xMDAsWj1DLmNvbG9yfHxoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjguOCUpIiwiaHNsKDIxMCA0MCUgNzglKSIpO2lmKEUudGhyZXNob2xkcyl7bGV0IFk9Wy4uLkUudGhyZXNob2xkc10uc29ydCgob2UsZ2UpPT5nZS52YWx1ZS1vZS52YWx1ZSk7Zm9yKGxldCBvZSBvZiBZKWlmKHo+PW9lLnZhbHVlKXtaPW9lLmNvbG9yO2JyZWFrfX1yZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2UtY29udGFpbmVyIj4KICAgICAgICAgIDxzdmcgY2xhc3M9ImdhdWdlLXN2ZyIgdmlld0JveD0iMCAwICR7JH0gJHtWfSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CiAgICAgICAgICAgIDwhLS0gQmFja2dyb3VuZCBhcmMgLS0+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgY2xhc3M9ImdhdWdlLWJhY2tncm91bmQiCiAgICAgICAgICAgICAgZD0iJHtXfSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPCEtLSBGaWxsZWQgYXJjIC0tPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgIGNsYXNzPSJnYXVnZS1maWxsIgogICAgICAgICAgICAgIGQ9IiR7V30iCiAgICAgICAgICAgICAgc3Ryb2tlPSIke1p9IgogICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9IiR7RH0iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ9IiR7T30iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gVmFsdWUgdGV4dCAtLT4KICAgICAgICAgICAgPHRleHQgY2xhc3M9ImdhdWdlLXRleHQiIHg9IiR7an0iIHk9IiR7bWUtOH0iIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiPgogICAgICAgICAgICAgIDx0c3Bhbj4ke3p9PC90c3Bhbj4ke0MudW5pdD93YDx0c3BhbiBjbGFzcz0iZ2F1Z2UtdW5pdCIgZHg9IjIiIGR5PSIwIj4ke0MudW5pdH08L3RzcGFuPmA6IiJ9CiAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGVyY2VudGFnZShDKXtsZXQgej10eXBlb2YgQy52YWx1ZT09Im51bWJlciI/Qy52YWx1ZTpwYXJzZUZsb2F0KEMudmFsdWUpLEU9TWF0aC5taW4oMTAwLE1hdGgubWF4KDAseikpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2UtdmFsdWUiPiR7RX0lPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS1iYXIiPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InBlcmNlbnRhZ2UtZmlsbCIgCiAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtFfSU7ICR7Qy5jb2xvcj9gYmFja2dyb3VuZDogJHtDLmNvbG9yfWA6IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVHJlbmQoQyl7aWYoIUMudHJlbmREYXRhfHxDLnRyZW5kRGF0YS5sZW5ndGg8MilyZXR1cm4gd2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke0MudmFsdWV9PC9kaXY+YDtsZXQgej1DLnRyZW5kRGF0YSxFPU1hdGgubWF4KC4uLnopLFQ9TWF0aC5taW4oLi4ueiksJD1FLVR8fDEsVj0zMDAsUj0zMixVPTIscmU9ei5tYXAoKG1lLHdlKT0+e2xldCBIPXdlLyh6Lmxlbmd0aC0xKSpWLGNlPVUrKFItMipVKS0obWUtVCkvJCooUi0yKlUpO3JldHVybmAke0h9LCR7Y2V9YH0pLmpvaW4oIiAiKSxqPWAwLCR7Un0gJHtyZX0gJHtWfSwke1J9YDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idHJlbmQtY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRyZW5kLXZhbHVlIj4ke0MudmFsdWV9PC9zcGFuPgogICAgICAgICAgJHtDLnVuaXQ/d2A8c3BhbiBjbGFzcz0idHJlbmQtdW5pdCI+JHtDLnVuaXR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAke0MuZGVzY3JpcHRpb24/d2A8c3BhbiBjbGFzcz0idHJlbmQtbGFiZWwiPiR7Qy5kZXNjcmlwdGlvbn08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1ncmFwaCI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJ0cmVuZC1zdmciIHZpZXdCb3g9IjAgMCAke1Z9ICR7Un0iIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgogICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0idHJlbmQtYXJlYSIgcG9pbnRzPSIke2p9IiAvPgogICAgICAgICAgICA8cG9seWxpbmUgY2xhc3M9InRyZW5kLWxpbmUiIHBvaW50cz0iJHtyZX0iIC8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck11bHRpUGVyY2VudGFnZShDKXtpZighQy5wZXJjZW50YWdlc3x8Qy5wZXJjZW50YWdlcy5sZW5ndGg9PT0wKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Qy52YWx1ZX08L2Rpdj5gO2xldCB6PUMucGVyY2VudGFnZXMuc2xpY2UoMCwzKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWl0ZW1zIj4KICAgICAgICAgICR7ei5tYXAoRT0+e2xldCBUPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLEUudmFsdWUpKTtyZXR1cm4gd2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWl0ZW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1sYWJlbCI+JHtFLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtdmFsdWUiPiR7VH0lPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWJhciI+CiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1maWxsIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtUfSU7ICR7RS5jb2xvcj9gYmFja2dyb3VuZDogJHtFLmNvbG9yfWA6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ3B1Q29yZXMoQyl7aWYoIUMuY29yZXNEYXRhfHxDLmNvcmVzRGF0YS5sZW5ndGg9PT0wKXJldHVybiB3YDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Qy52YWx1ZX08L2Rpdj5gO2xldCB6PUMuY29yZXNEYXRhLEU9TWF0aC5yb3VuZCh6LnJlZHVjZSgocmUsaik9PnJlK2oudXNhZ2UsMCkvei5sZW5ndGgpLFQ9cmU9PnJlPDUwPyJsb3ciOnJlPDgwPyJtZWRpdW0iOiJoaWdoIiwkPXoubGVuZ3RoKjI0Kyh6Lmxlbmd0aC0xKSozLFY9Qy5jb2x1bW5TcGFufHwxLFI9dGhpcy5taW5UaWxlV2lkdGgqVisoVi0xKSp0aGlzLmdhcC0zMixVPSQ8UiouNjY2O3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLXZhbHVlIj4ke0V9PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy11bml0Ij4lPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy1sYWJlbCI+JHt6Lmxlbmd0aH0gY29yZXM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLWJhcnMgJHtVPyJjZW50ZXJlZCI6IiJ9Ij4KICAgICAgICAgICR7ei5tYXAocmU9PntsZXQgaj1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxyZS51c2FnZSkpLG1lPVQoaik7cmV0dXJuIHdgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmUtYmFyLWNvbnRhaW5lciIgdGl0bGU9IkNvcmUgJHtyZS5sYWJlbHx8cmUuaWR9OiAke2p9JSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZS1iYXItd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY3B1LWNvcmUtYmFyLWZpbGwgJHttZX0iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHtqfSUiCiAgICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHt6Lmxlbmd0aDw9MTY/d2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3JlLWxhYmVsIj4ke3JlLmxhYmVsfHxyZS5pZH08L3NwYW4+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1mb3JtYXRCeXRlcyhDKXtpZihDPT09MClyZXR1cm4iMCBCIjtsZXQgej0xMDI0LEU9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiLCJQQiJdLFQ9TWF0aC5mbG9vcihNYXRoLmxvZyhDKS9NYXRoLmxvZyh6KSk7cmV0dXJuIHBhcnNlRmxvYXQoKEMvTWF0aC5wb3coeixUKSkudG9GaXhlZCgxKSkrIiAiK0VbVF19cmVuZGVyUGFydGl0aW9uKEMpe2lmKCFDLnBhcnRpdGlvbkRhdGEpcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtDLnZhbHVlfTwvZGl2PmA7bGV0e3VzZWQ6eix0b3RhbDpFLGZpbGVzeXN0ZW06VCxtb3VudFBvaW50OiR9PUMucGFydGl0aW9uRGF0YSxWPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLHovRSoxMDApKSxSPUUteixVPSgpPT5WPj05MD8iY3JpdGljYWwiOlY+PTc1PyJ3YXJuaW5nIjoiIjtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1wZXJjZW50YWdlIj4ke01hdGgucm91bmQoVil9JTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tYmFyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InBhcnRpdGlvbi1iYXItZmlsbCAke1UoKX0iCiAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtWfSUiCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXN0YXRzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LWxhYmVsIj5Vc2VkPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtdmFsdWUiPiR7dGhpcy5mb3JtYXRCeXRlcyh6KX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LWxhYmVsIj5GcmVlPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtdmFsdWUiPiR7dGhpcy5mb3JtYXRCeXRlcyhSKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tbWV0YSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLWZpbGVzeXN0ZW0iPiR7VH08L3NwYW4+CiAgICAgICAgICAkeyQ/d2A8c3BhbiBjbGFzcz0icGFydGl0aW9uLW1vdW50cG9pbnQiPiR7JH08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRpc2soQyl7aWYoIUMuZGlza0RhdGEpcmV0dXJuIHdgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtDLnZhbHVlfTwvZGl2PmA7bGV0e2NhcGFjaXR5OnosbW9kZWw6RSx0eXBlOlQsaW9wczokLGhlYWx0aDpWfT1DLmRpc2tEYXRhLFI9VT0+VT49NzA/Imdvb2QiOlU+PTMwPyJ3YXJuaW5nIjoiY3JpdGljYWwiO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaXNrLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRpc2stY2FwYWNpdHkiPiR7dGhpcy5mb3JtYXRCeXRlcyh6KX08L2Rpdj4KICAgICAgICAke0V8fFQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2stbW9kZWwiPgogICAgICAgICAgICAke0U/d2A8c3Bhbj4ke0V9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICR7VD93YDxzcGFuIGNsYXNzPSJkaXNrLXR5cGUtYmFkZ2UiPiR7VH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1tZXRyaWNzIj4KICAgICAgICAgICR7JD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staW9wcy1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtbGFiZWwiPlJlYWQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLXZhbHVlIj4keyQucmVhZC50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLWxhYmVsIj5Xcml0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtdmFsdWUiPiR7JC53cml0ZS50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHtWIT09dm9pZCAwP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staGVhbHRoLWxhYmVsIj5IZWFsdGg8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1oZWFsdGgtdmFsdWUiPiR7Vn0lPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNrLWhlYWx0aC1maWxsICR7UihWKX0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtWfSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZUdyaWRBY3Rpb24oQyl7Qy5hY3Rpb24mJmF3YWl0IEMuYWN0aW9uKCl9YXN5bmMgaGFuZGxlVGlsZUFjdGlvbihDLHope0MuYWN0aW9uJiZhd2FpdCBDLmFjdGlvbigpfXNob3dDb250ZXh0TWVudShDLHope2lmKCF6LmFjdGlvbnN8fHouYWN0aW9ucy5sZW5ndGg9PT0wKXJldHVybjtDLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uPXt4OkMuY2xpZW50WCx5OkMuY2xpZW50WX0sdGhpcy5jb250ZXh0TWVudUFjdGlvbnM9ei5hY3Rpb25zLHRoaXMuY29udGV4dE1lbnVWaXNpYmxlPSEwO2xldCBFPSgpPT57dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLEUpfTtzZXRUaW1lb3V0KCgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEUpfSwxMDApfXN0YXRpY3toYShpLGEpfX07cmV0dXJuIHE9aX0pKCl9KTt2YXIgdDQscXIseTEyLHgxMix3MTIsTTEyLEt1dCxRdXQ9YigoKT0+e3VlKCk7eTEoKTtYeCgpO3Q0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0scXI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LHkxMj0oKCk9PntsZXQgdD1baGUoImRlbW8tZGFzaGJvYXJkLXZpZXciKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSigpXSx0NCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2YXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cD0+ImFjdGl2YXRlZCJpbiBwLGdldDpwPT5wLmFjdGl2YXRlZCxzZXQ6KHAsbCk9PntwLmFjdGl2YXRlZD1sfX0sbWV0YWRhdGE6Y30sbixvKSx0NChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pLHFyKGksYSl9I2U9cXIodGhpcyxuLCExKTtnZXQgYWN0aXZhdGVkKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGFjdGl2YXRlZChjKXt0aGlzLiNlPWN9Y3R4PXFyKHRoaXMsbyk7c3RhdHNUaWxlcz1be2lkOiJ1c2VycyIsdGl0bGU6IkFjdGl2ZSBVc2VycyIsdmFsdWU6MTIzNCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsZGVzY3JpcHRpb246Ik9ubGluZSBub3ciLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJhcGktY2FsbHMiLHRpdGxlOiJBUEkgQ2FsbHMiLHZhbHVlOjQ1MjAwLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLGRlc2NyaXB0aW9uOiIrMTIlIGZyb20gbGFzdCBob3VyIixjb2xvcjoiIzNiODJmNiIsdHJlbmREYXRhOlszMmUzLDM1ZTMsMzhlMyw0MWUzLDM5ZTMsNDJlMyw0NTIwMF19LHtpZDoiaGVhbHRoIix0aXRsZToiU3lzdGVtIEhlYWx0aCIsdmFsdWU6OTkuOSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmhlYXJ0LXB1bHNlIixkZXNjcmlwdGlvbjoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjk1LGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UiLHZhbHVlOjEyNyx1bml0OiJtcyIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dGltZXIiLGRlc2NyaXB0aW9uOiItMTVtcyBmcm9tIHllc3RlcmRheSIsY29sb3I6IiM4YjVjZjYifSx7aWQ6InJlc291cmNlcyIsdGl0bGU6IlJlc291cmNlIFVzYWdlIix2YWx1ZToiIix0eXBlOiJtdWx0aVBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpzZXJ2ZXIiLHBlcmNlbnRhZ2VzOlt7bGFiZWw6IkNQVSIsdmFsdWU6NjcsY29sb3I6IiMzYjgyZjYifSx7bGFiZWw6Ik1lbW9yeSIsdmFsdWU6ODQsY29sb3I6IiM4YjVjZjYifSx7bGFiZWw6IkRpc2siLHZhbHVlOjQ1LGNvbG9yOiIjMTBiOTgxIn1dfSx7aWQ6InJlcXVlc3RzIix0aXRsZToiUmVxdWVzdHMvc2VjIix2YWx1ZToxODUwLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6emFwIixkZXNjcmlwdGlvbjoiQ3VycmVudCB0aHJvdWdocHV0Iixjb2xvcjoiIzA2YjZkNCIsdHJlbmREYXRhOlsxMjAwLDE0MDAsMTM1MCwxNjAwLDE3NTAsMTY4MCwxODUwXX1dO29uQWN0aXZhdGUoYyl7dGhpcy5jdHg9Yyx0aGlzLmFjdGl2YXRlZD0hMCxjb25zb2xlLmxvZygiRGFzaGJvYXJkIGFjdGl2YXRlZCB3aXRoIGNvbnRleHQ6IixjKSxjLmFwcHVpLnNldFNlY29uZGFyeU1lbnUoe2hlYWRpbmc6IkRhc2hib2FyZCIsZ3JvdXBzOlt7bmFtZToiUXVpY2sgQWNjZXNzIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibGF5b3V0RGFzaGJvYXJkIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJPdmVydmlldyIpfSx7a2V5OiJSZWNlbnQiLGljb25OYW1lOiJjbG9jayIsYmFkZ2U6NSxhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJSZWNlbnQiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IlJlZnJlc2ggRGF0YSIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjooKT0+YWxlcnQoIlJlZnJlc2hpbmcgZGFzaGJvYXJkIGRhdGEuLi4iKX1dfSx7bmFtZToiRmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWx0ZXIiLGl0ZW1zOlt7dHlwZToiaGVhZGVyIixsYWJlbDoiVGltZSBSYW5nZSJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiTGl2ZSBVcGRhdGVzIixpY29uTmFtZToibHVjaWRlOnJhZGlvIixhY3RpdmU6ITAsb25Ub2dnbGU6cD0+Y29uc29sZS5sb2coIkxpdmUgdXBkYXRlczoiLHApfSx7dHlwZToiZmlsdGVyIixrZXk6IlNob3cgQXJjaGl2ZWQiLGljb25OYW1lOiJsdWNpZGU6YXJjaGl2ZSIsYWN0aXZlOiExLG9uVG9nZ2xlOnA9PmNvbnNvbGUubG9nKCJTaG93IGFyY2hpdmVkOiIscCl9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6Im11bHRpRmlsdGVyIixrZXk6IkRhdGEgU291cmNlcyIsaWNvbk5hbWU6Imx1Y2lkZTpkYXRhYmFzZSIsb3B0aW9uczpbe2tleToiYXBpIixsYWJlbDoiQVBJIFNlcnZlciIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOnNlcnZlciJ9LHtrZXk6IndlYiIsbGFiZWw6IldlYiBUcmFmZmljIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6Z2xvYmUifSx7a2V5OiJtb2JpbGUiLGxhYmVsOiJNb2JpbGUgQXBwIixjaGVja2VkOiExLGljb25OYW1lOiJsdWNpZGU6c21hcnRwaG9uZSJ9XSxvbkNoYW5nZTpwPT5jb25zb2xlLmxvZygiRGF0YSBzb3VyY2VzOiIscCl9XX0se25hbWU6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydDMiLGl0ZW1zOlt7a2V5OiJNZXRyaWNzIixpY29uTmFtZToiYWN0aXZpdHkiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk1ldHJpY3MiKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6ImZpbGVUZXh0IixiYWRnZToibmV3IixiYWRnZVZhcmlhbnQ6InN1Y2Nlc3MiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlJlcG9ydHMiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToibGluayIsa2V5OiJBbmFseXRpY3MgRG9jcyIsaWNvbk5hbWU6Imx1Y2lkZTpleHRlcm5hbExpbmsiLGhyZWY6Imh0dHBzOi8vZG9jcy5leGFtcGxlLmNvbS9hbmFseXRpY3MifV19XX0pLGMuYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXcgdGFiIil9LHtrZXk6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpiYXJDaGFydCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIHRhYiIpfSx7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIHRhYiIpfV0pfW9uRGVhY3RpdmF0ZSgpe3RoaXMuYWN0aXZhdGVkPSExLGNvbnNvbGUubG9nKCJEYXNoYm9hcmQgZGVhY3RpdmF0ZWQiKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGNvbG9yOiAjYTNhM2EzOwogICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjsKICAgICAgICB9CiAgICAgICAgaDEgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAyNHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KICAgICAgICBwIHsgY29sb3I6ICM3MzczNzM7IG1hcmdpbi1ib3R0b206IDMycHg7IH0KICAgICAgICBkZWVzLXN0YXRzZ3JpZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmN0eC1hY3Rpb25zIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAyKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQogICAgICAgIC5jdHgtYWN0aW9ucyBoMiB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbi1ib3R0b206IDE2cHg7IH0KICAgICAgICAuYnV0dG9uLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0biB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpOwogICAgICAgICAgY29sb3I6ICM2MGE1ZmE7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuNSk7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLmRhbmdlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpOwogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLmRhbmdlcjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5zdWNjZXNzIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzQsIDE5NywgOTQsIDAuMSk7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDE5NywgOTQsIDAuMyk7CiAgICAgICAgICBjb2xvcjogIzRhZGU4MDsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uc3VjY2Vzczpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjUpOwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGgxPkRhc2hib2FyZDwvaDE+CiAgICAgIDxwPldlbGNvbWUgYmFjayEgSGVyZSdzIGFuIG92ZXJ2aWV3IG9mIHlvdXIgc3lzdGVtLjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke2M9PmNvbnNvbGUubG9nKCJUaWxlIGFjdGlvbjoiLGMuZGV0YWlsKX0KICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICA8ZGl2IGNsYXNzPSJjdHgtYWN0aW9ucyI+CiAgICAgICAgPGgyPkNvbnRleHQgQWN0aW9ucyAoY3R4LmFwcHVpKTwvaDI+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudVZpc2libGUoITEpfT5IaWRlIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51VmlzaWJsZSghMCl9PlNob3cgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCExKX0+SGlkZSBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldFNlY29uZGFyeU1lbnVWaXNpYmxlKCEwKX0+U2hvdyBTZWNvbmRhcnkgTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic1Zpc2libGUoITEpfT5IaWRlIENvbnRlbnQgVGFiczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzVmlzaWJsZSghMCl9PlNob3cgQ29udGVudCBUYWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51Q29sbGFwc2VkKCEwKX0+Q29sbGFwc2UgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVDb2xsYXBzZWQoITEpfT5FeHBhbmQgTWFpbiBNZW51PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldEJyZWFkY3J1bWJzKFsiRGFzaGJvYXJkIiwiT3ZlcnZpZXciLCJTdGF0cyJdKX0+U2V0IEJyZWFkY3J1bWJzPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLm5hdmlnYXRlVG9WaWV3KCJwcm9qZWN0cyIpfT5HbyB0byBQcm9qZWN0czwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5uYXZpZ2F0ZVRvVmlldygic2V0dGluZ3MiLHtzZWN0aW9uOiJzZWN1cml0eSJ9KX0+R28gdG8gU2V0dGluZ3MvU2VjdXJpdHk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuYWN0aXZpdHlMb2cuYWRkKHt0eXBlOiJjdXN0b20iLHVzZXI6IkRlbW8gVXNlciIsbWVzc2FnZToiQnV0dG9uIGNsaWNrZWQgZnJvbSBjdHghIixpY29uTmFtZToibHVjaWRlOm1vdXNlLXBvaW50ZXItY2xpY2sifSl9PkFkZCBBY3Rpdml0eSBFbnRyeTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUJhZGdlKCJ0YXNrcyIsOTkpfT5TZXQgVGFza3MgQmFkZ2UgdG8gOTk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLmNsZWFyTWFpbk1lbnVCYWRnZSgidGFza3MiKX0+Q2xlYXIgVGFza3MgQmFkZ2U8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZSghMCwxKX0+QXV0by1oaWRlIFRhYnMgKOKJpDEpPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic0F1dG9IaWRlKCExKX0+RGlzYWJsZSBBdXRvLWhpZGU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuYWRkQ2xvc2VhYmxlVGFiKCl9PkFkZCBDbG9zZWFibGUgVGFiPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH10YWJDb3VudGVyPTA7YWRkQ2xvc2VhYmxlVGFiKCl7aWYoIXRoaXMuY3R4KXJldHVybjt0aGlzLnRhYkNvdW50ZXIrKztsZXQgYz1gVGFiICR7dGhpcy50YWJDb3VudGVyfWA7dGhpcy5jdHguYXBwdWkuYWRkQ29udGVudFRhYih7a2V5OmMsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKGBTZWxlY3RlZCAke2N9YCksY2xvc2VhYmxlOiEwLG9uQ2xvc2U6KCk9Pnt0aGlzLmN0eD8uYXBwdWkucmVtb3ZlQ29udGVudFRhYihjKX19KX19O3JldHVybiBkPWl9KSgpLHgxMj0oKCk9PntsZXQgdD1baGUoImRlbW8tc2V0dGluZ3MtdmlldyIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtKKCldLGQ9W0ooKV0sdDQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4ic2VjdGlvbiJpbiBnLGdldDpnPT5nLnNlY3Rpb24sc2V0OihnLHkpPT57Zy5zZWN0aW9uPXl9fSxtZXRhZGF0YTpmfSxuLG8pLHQ0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzQ2hhbmdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+Imhhc0NoYW5nZXMiaW4gZyxnZXQ6Zz0+Zy5oYXNDaGFuZ2VzLHNldDooZyx5KT0+e2cuaGFzQ2hhbmdlcz15fX0sbWV0YWRhdGE6Zn0sYyxwKSx0NChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpmfSxudWxsLGEpLGw9aT1lLnZhbHVlLGYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Zn0pLHFyKGksYSl9I2U9cXIodGhpcyxuLCJnZW5lcmFsIik7Z2V0IHNlY3Rpb24oKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VjdGlvbihmKXt0aGlzLiNlPWZ9I3Q9KHFyKHRoaXMsbykscXIodGhpcyxjLCExKSk7Z2V0IGhhc0NoYW5nZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaGFzQ2hhbmdlcyhmKXt0aGlzLiN0PWZ9YXBwdWk9cXIodGhpcyxwKTtvbkFjdGl2YXRlKGYpe3RoaXMuYXBwdWk9Zi5hcHB1aSxjb25zb2xlLmxvZygiU2V0dGluZ3MgYWN0aXZhdGVkIHdpdGggcGFyYW1zOiIsZi5wYXJhbXMpLGYucGFyYW1zPy5zZWN0aW9uJiYodGhpcy5zZWN0aW9uPWYucGFyYW1zLnNlY3Rpb24pLGYuYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiU2V0dGluZ3MiLGdyb3Vwczpbe25hbWU6IkFjY291bnQiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsaXRlbXM6W3trZXk6ImdlbmVyYWwiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOigpPT50aGlzLnNob3dTZWN0aW9uKCJnZW5lcmFsIil9LHtrZXk6InByb2ZpbGUiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246KCk9PnRoaXMuc2hvd1NlY3Rpb24oInByb2ZpbGUiKX0se2tleToic2VjdXJpdHkiLGljb25OYW1lOiJzaGllbGQiLGFjdGlvbjooKT0+dGhpcy5zaG93U2VjdGlvbigic2VjdXJpdHkiKX1dfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJsdWNpZGU6c2xpZGVycyIsaXRlbXM6W3trZXk6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJiZWxsIixiYWRnZTozLGFjdGlvbjooKT0+dGhpcy5zaG93U2VjdGlvbigibm90aWZpY2F0aW9ucyIpfSx7a2V5OiJhcHBlYXJhbmNlIixpY29uTmFtZToicGFsZXR0ZSIsYWN0aW9uOigpPT50aGlzLnNob3dTZWN0aW9uKCJhcHBlYXJhbmNlIil9XX1dfSksZi5hcHB1aS5zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKHRoaXMuc2VjdGlvbiksZi5hcHB1aS5zZXRDb250ZW50VGFicyhbXSl9b25EZWFjdGl2YXRlKCl7Y29uc29sZS5sb2coIlNldHRpbmdzIGRlYWN0aXZhdGVkIiksdGhpcy5oYXNDaGFuZ2VzPSExfWNhbkRlYWN0aXZhdGUoKXtyZXR1cm4gdGhpcy5oYXNDaGFuZ2VzPyJZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIExlYXZlIGFueXdheT8iOiEwfXNob3dTZWN0aW9uKGYpe3RoaXMuc2VjdGlvbj1mLHRoaXMuYXBwdWk/LnNldFNlY29uZGFyeU1lbnVTZWxlY3Rpb24oZil9c2ltdWxhdGVDaGFuZ2UoKXt0aGlzLmhhc0NoYW5nZXM9ITB9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9CiAgICAgICAgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9CiAgICAgICAgLnNlY3Rpb24tbmFtZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgLmFjdGlvbnMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICB9CiAgICAgICAgYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzYjgyZjY7CiAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMyNTYzZWI7CiAgICAgICAgfQogICAgICAgIC53YXJuaW5nIHsKICAgICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5TZXR0aW5nczwvaDE+CiAgICAgIDxwPk1hbmFnZSB5b3VyIGFjY291bnQgYW5kIGFwcGxpY2F0aW9uIHByZWZlcmVuY2VzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1uYW1lIj4KICAgICAgICBDdXJyZW50IHNlY3Rpb246IDxzdHJvbmc+JHt0aGlzLnNlY3Rpb259PC9zdHJvbmc+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNpbXVsYXRlQ2hhbmdlKCl9Pk1ha2UgQ2hhbmdlczwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/d2A8cCBjbGFzcz0id2FybmluZyI+WW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBOYXZpZ2F0aW9uIHdpbGwgcHJvbXB0IGZvciBjb25maXJtYXRpb24uPC9wPmA6IiJ9CiAgICBgfX07cmV0dXJuIGw9aX0pKCksdzEyPSgoKT0+e2xldCB0PVtoZSgiZGVtby1wcm9qZWN0cy12aWV3IildLGUsYT1bXSxpLHI9eGU7dmFyIHM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3Q0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm59LG51bGwsYSkscz1pPWUudmFsdWUsbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSkscXIoaSxhKX1vbkFjdGl2YXRlKG4pe24uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiUHJvamVjdHMiLGdyb3Vwczpbe25hbWU6Ik15IFByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsaXRlbXM6W3trZXk6IkFjdGl2ZSIsaWNvbk5hbWU6ImZvbGRlciIsYmFkZ2U6MyxhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBY3RpdmUiKX0se2tleToiQXJjaGl2ZWQiLGljb25OYW1lOiJhcmNoaXZlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBcmNoaXZlZCIpfSx7a2V5OiJTaGFyZWQiLGljb25OYW1lOiJ1c2VycyIsYmFkZ2U6MixiYWRnZVZhcmlhbnQ6Indhcm5pbmciLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlNoYXJlZCIpfV19LHtuYW1lOiJRdWljayBBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiTmV3IFByb2plY3QiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOigpPT5hbGVydCgiQ3JlYXRlIG5ldyBwcm9qZWN0Iil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246KCk9PmFsZXJ0KCJJbXBvcnQgcHJvamVjdCIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJsaW5rIixrZXk6IlRlbXBsYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXRUZW1wbGF0ZSIsaHJlZjoiaHR0cHM6Ly90ZW1wbGF0ZXMuZXhhbXBsZS5jb20ifV19XX0pLG4uYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkdyaWQiLGljb25OYW1lOiJsdWNpZGU6Z3JpZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiR3JpZCB2aWV3Iil9LHtrZXk6Ikxpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiTGlzdCB2aWV3Iil9LHtrZXk6IkJvYXJkIixpY29uTmFtZToibHVjaWRlOmthbmJhbiIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQm9hcmQgdmlldyIpfV0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAucHJvamVjdHMgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0IHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMyk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzOwogICAgICAgIH0KICAgICAgICAucHJvamVjdDpob3ZlciB7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTsKICAgICAgICB9CiAgICAgICAgLnByb2plY3QgaDMgeyBjb2xvcjogI2ZhZmFmYTsgbWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTZweDsgfQogICAgICAgIC5wcm9qZWN0IHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luOiAwOyBmb250LXNpemU6IDEzcHg7IH0KICAgICAgICAuYmFkZ2UgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgYmFja2dyb3VuZDogIzE0NTMyZDsKICAgICAgICAgIGNvbG9yOiAjNGFkZTgwOwogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+UHJvamVjdHM8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0cyI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+RnJvbnRlbmQgQXBwIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5SZWFjdC1iYXNlZCBkYXNoYm9hcmQgYXBwbGljYXRpb248L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+QVBJIFNlcnZlciA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+Tm9kZS5qcyBSRVNUIEFQSSBiYWNrZW5kPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPk1vYmlsZSBBcHAgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlJlYWN0IE5hdGl2ZSBpT1MvQW5kcm9pZCBhcHA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+RG9jdW1lbnRhdGlvbjwvaDM+CiAgICAgICAgICA8cD5UZWNobmljYWwgZG9jdW1lbnRhdGlvbiBzaXRlPC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fTtyZXR1cm4gcz1pfSkoKSxNMTI9KCgpPT57bGV0IHQ9W2hlKCJkZW1vLXRhc2tzLXZpZXciKV0sZSxhPVtdLGkscj14ZTt2YXIgcz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG49dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7dDQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6bn0sbnVsbCxhKSxzPWk9ZS52YWx1ZSxuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KSxxcihpLGEpfW9uQWN0aXZhdGUobil7bi5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUYXNrcyIsZ3JvdXBzOlt7bmFtZToiVmlld3MiLGljb25OYW1lOiJsdWNpZGU6ZXllIixpdGVtczpbe2tleToiQWxsIFRhc2tzIixpY29uTmFtZToibGlzdCIsYmFkZ2U6MTIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQWxsIil9LHtrZXk6IlRvZGF5IixpY29uTmFtZToiY2FsZW5kYXIiLGJhZGdlOjMsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVG9kYXkiKX0se2tleToiVXBjb21pbmciLGljb25OYW1lOiJjbG9jayIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVXBjb21pbmciKX0se2tleToiQ29tcGxldGVkIixpY29uTmFtZToiY2hlY2tDaXJjbGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkNvbXBsZXRlZCIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJQcmlvcml0eSJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJQcmlvcml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpmbGFnIixvcHRpb25zOlt7a2V5OiJoaWdoIixsYWJlbDoiSGlnaCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmFsZXJ0Q2lyY2xlIn0se2tleToibWVkaXVtIixsYWJlbDoiTWVkaXVtIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6bWludXNDaXJjbGUifSx7a2V5OiJsb3ciLGxhYmVsOiJMb3ciLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjaXJjbGUifV0sb25DaGFuZ2U6bz0+Y29uc29sZS5sb2coIlByaW9yaXR5IGZpbHRlcjoiLG8pfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJPcHRpb25zIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IFN1YnRhc2tzIixpY29uTmFtZToibHVjaWRlOmxpc3RUcmVlIixhY3RpdmU6ITAsb25Ub2dnbGU6bz0+Y29uc29sZS5sb2coIlNob3cgc3VidGFza3M6IixvKX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IENvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aXZlOiExLG9uVG9nZ2xlOm89PmNvbnNvbGUubG9nKCJTaG93IGNvbXBsZXRlZDoiLG8pfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFRhc2siLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOigpPT5hbGVydCgiQWRkIG5ldyB0YXNrIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IFRhc2tzIixpY29uTmFtZToibHVjaWRlOnVwbG9hZCIsYWN0aW9uOigpPT5hbGVydCgiSW1wb3J0IHRhc2tzIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJDbGVhciBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIix2YXJpYW50OiJkYW5nZXIiLGNvbmZpcm1NZXNzYWdlOiJEZWxldGUgYWxsIGNvbXBsZXRlZCB0YXNrcz8iLGFjdGlvbjooKT0+YWxlcnQoIkNsZWFyZWQgY29tcGxldGVkIHRhc2tzIil9XX1dfSksbi5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJMaXN0Iil9LHtrZXk6IkNhbGVuZGFyIixpY29uTmFtZToibHVjaWRlOmNhbGVuZGFyIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJDYWxlbmRhciIpfV0pfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAudGFzay1saXN0IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC50YXNrIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGhlaWdodDogMThweDsKICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM1MjUyNTI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICAgIC50YXNrLXRleHQgeyBjb2xvcjogI2ZhZmFmYTsgZmxleDogMTsgfQogICAgICAgIC5kdWUtZGF0ZSB7IGNvbG9yOiAjNzM3MzczOyBmb250LXNpemU6IDEycHg7IH0KICAgICAgICAucHJpb3JpdHkgewogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB9CiAgICAgICAgLnByaW9yaXR5LmhpZ2ggeyBiYWNrZ3JvdW5kOiAjNDUwYTBhOyBjb2xvcjogI2Y4NzE3MTsgfQogICAgICAgIC5wcmlvcml0eS5tZWRpdW0geyBiYWNrZ3JvdW5kOiAjNDUxYTAzOyBjb2xvcjogI2ZiYmYyNDsgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+VGFza3M8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJ0YXNrLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+UmV2aWV3IHB1bGwgcmVxdWVzdCAjNDI8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPlRvZGF5PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByaW9yaXR5IGhpZ2giPkhpZ2g8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5VcGRhdGUgZG9jdW1lbnRhdGlvbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+VG9tb3Jyb3c8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpb3JpdHkgbWVkaXVtIj5NZWRpdW08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5Xcml0ZSB1bml0IHRlc3RzPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5EZWMgMjA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBzPWl9KSgpLEt1dD0oKT0+e2xldCB0PXticmFuZGluZzp7bG9nb0ljb246Imx1Y2lkZTpib3giLGxvZ29UZXh0OiJBY21lIEFwcCJ9LGFwcEJhcjp7bWVudUl0ZW1zOlt7bmFtZToiRmlsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZVBsdXMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiTmV3Iil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXJPcGVuIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4iKX0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJteS1hcHAiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBteS1hcHAiKX0se25hbWU6ImNvbXBvbmVudC1saWIiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBjb21wb25lbnQtbGliIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIEFsbCIsc2hvcnRjdXQ6IkNtZCtTIixpY29uTmFtZToic2F2ZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIil9XX0se25hbWU6IkVkaXQiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiVW5kbyIsc2hvcnRjdXQ6IkNtZCtaIixpY29uTmFtZToidW5kbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJVbmRvIil9LHtuYW1lOiJSZWRvIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1oiLGljb25OYW1lOiJyZWRvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlZG8iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLHNob3J0Y3V0OiJDbWQrWCIsaWNvbk5hbWU6InNjaXNzb3JzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpfSx7bmFtZToiQ29weSIsc2hvcnRjdXQ6IkNtZCtDIixpY29uTmFtZToiY29weSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5Iil9LHtuYW1lOiJQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiVG9nZ2xlIFNpZGViYXIiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgc2lkZWJhciIpfSx7bmFtZToiVG9nZ2xlIEFjdGl2aXR5IExvZyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtBIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBhY3Rpdml0eSIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3MiKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixzaG9ydGN1dDoiQ21kKy8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2hvcnRjdXRzIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQWJvdXQiLGljb25OYW1lOiJpbmZvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkFib3V0Iil9XX1dLGJyZWFkY3J1bWJzOiJEYXNoYm9hcmQiLHNob3dXaW5kb3dDb250cm9sczohMCxzaG93U2VhcmNoOiEwLHVzZXI6e25hbWU6IkphbmUgU21pdGgiLGVtYWlsOiJqYW5lLnNtaXRoQGV4YW1wbGUuY29tIixzdGF0dXM6Im9ubGluZSJ9LHByb2ZpbGVNZW51SXRlbXM6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToidXNlciIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIil9LHtuYW1lOiJBY2NvdW50IFNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwICYgU3VwcG9ydCIsaWNvbk5hbWU6ImhlbHBDaXJjbGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibG9nT3V0IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNpZ24gb3V0Iil9XX0sdmlld3M6W3tpZDoiZGFzaGJvYXJkIixuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsY29udGVudDoiZGVtby1kYXNoYm9hcmQtdmlldyIscm91dGU6ImRhc2hib2FyZCJ9LHtpZDoicHJvamVjdHMiLG5hbWU6IlByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsY29udGVudDoiZGVtby1wcm9qZWN0cy12aWV3Iixyb3V0ZToicHJvamVjdHMiLGJhZGdlOjN9LHtpZDoidGFza3MiLG5hbWU6IlRhc2tzIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixjb250ZW50OiJkZW1vLXRhc2tzLXZpZXciLHJvdXRlOiJ0YXNrcyIsYmFkZ2U6MTJ9LHtpZDoic2V0dGluZ3MiLG5hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixjb250ZW50OiJkZW1vLXNldHRpbmdzLXZpZXciLHJvdXRlOiJzZXR0aW5ncy86c2VjdGlvbj8ifV0sbWFpbk1lbnU6e3NlY3Rpb25zOlt7bmFtZToiTWFpbiIsdmlld3M6WyJkYXNoYm9hcmQiXX0se25hbWU6IldvcmtzcGFjZSIsdmlld3M6WyJwcm9qZWN0cyIsInRhc2tzIl19XSxib3R0b21JdGVtczpbInNldHRpbmdzIl19LGRlZmF1bHRWaWV3OiJkYXNoYm9hcmQiLGJvdHRvbUJhcjp7dmlzaWJsZTohMCx3aWRnZXRzOlt7aWQ6InN0YXR1cyIsaWNvbk5hbWU6Imx1Y2lkZTphY3Rpdml0eSIsbGFiZWw6IlN5c3RlbSBPbmxpbmUiLHN0YXR1czoic3VjY2VzcyIsdG9vbHRpcDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLG9uQ2xpY2s6KCk9PmNvbnNvbGUubG9nKCJTdGF0dXMgY2xpY2tlZCIpfSx7aWQ6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6YmVsbCIsbGFiZWw6IjMgbm90aWZpY2F0aW9ucyIsc3RhdHVzOiJ3YXJuaW5nIix0b29sdGlwOiJZb3UgaGF2ZSB1bnJlYWQgbm90aWZpY2F0aW9ucyIsb25DbGljazooKT0+Y29uc29sZS5sb2coIk5vdGlmaWNhdGlvbnMgY2xpY2tlZCIpfSx7aWQ6InZlcnNpb24iLGljb25OYW1lOiJsdWNpZGU6Z2l0QnJhbmNoIixsYWJlbDoidjEuMi4zIixwb3NpdGlvbjoicmlnaHQiLHRvb2x0aXA6IkN1cnJlbnQgdmVyc2lvbiJ9XSxhY3Rpb25zOlt7aWQ6InRlcm1pbmFsIixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0b29sdGlwOiJPcGVuIFRlcm1pbmFsIixwb3NpdGlvbjoicmlnaHQiLG9uQ2xpY2s6KCk9PmNvbnNvbGUubG9nKCJUZXJtaW5hbCBjbGlja2VkIil9XX0sb25WaWV3Q2hhbmdlOihpLHIpPT57Y29uc29sZS5sb2coYFZpZXcgY2hhbmdlZCB0bzogJHtpfSAoJHtyLm5hbWV9KWApfSxvblNlYXJjaDppPT57Y29uc29sZS5sb2coIlNlYXJjaCBxdWVyeToiLGkpfX0sZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmNsYXNzTmFtZT0iZGVtby1jb250YWluZXIiLGUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IjtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLWFwcHVpIik7cmV0dXJuIGUuYXBwZW5kQ2hpbGQoYSksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgYS51cGRhdGVDb21wbGV0ZSxhLmNvbmZpZ3VyZSh0KSxzZXRUaW1lb3V0KCgpPT57YS5hY3Rpdml0eUxvZy5hZGRNYW55KFt7dHlwZToibG9naW4iLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6ImxvZ2dlZCBpbiBmcm9tIENocm9tZSBvbiBtYWNPUyJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6J2NyZWF0ZWQgcHJvamVjdCAiRnJvbnRlbmQgQXBwIid9LHt0eXBlOiJ1cGRhdGUiLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJ1cGRhdGVkIEFQSSBkb2N1bWVudGF0aW9uIn0se3R5cGU6InZpZXciLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6InZpZXdlZCBkYXNoYm9hcmQgYW5hbHl0aWNzIn0se3R5cGU6ImRlbGV0ZSIsdXNlcjoiQWRtaW4iLG1lc3NhZ2U6InJlbW92ZWQgZGVwcmVjYXRlZCBlbmRwb2ludCJ9LHt0eXBlOiJjdXN0b20iLHVzZXI6IlN5c3RlbSIsbWVzc2FnZToic2NoZWR1bGVkIGJhY2t1cCBjb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UifV0pfSw1MDApLGEudmlld0NoYW5nZWQkLnN1YnNjcmliZShpPT57Y29uc29sZS5sb2coIlZpZXcgY2hhbmdlZCBldmVudDoiLGkpLGEuc2V0QnJlYWRjcnVtYnMoaS52aWV3Lm5hbWUpfSksYS52aWV3TGlmZWN5Y2xlJC5zdWJzY3JpYmUoaT0+e2NvbnNvbGUubG9nKCJMaWZlY3ljbGUgZXZlbnQ6IixpLnR5cGUsaS52aWV3SWQpfSksc2V0VGltZW91dCgoKT0+e2Euc2V0TWFpbk1lbnVCYWRnZSgidGFza3MiLDE1KSxhLmFjdGl2aXR5TG9nLmFkZCh7dHlwZToidXBkYXRlIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6Im5ldyB0YXNrcyBhZGRlZCJ9KX0sNWUzKX0sMCksd2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICAke2V9CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH19KTt2YXIgejgsaVY9YigoKT0+e3VlKCk7ejg9Y2xhc3N7dmlld3M9bmV3IE1hcDtpbnN0YW5jZXM9bmV3IE1hcDtjdXJyZW50Vmlld0lkPW51bGw7YXBwdWk9bnVsbDtzZXRBcHB1aVJlZihlKXt0aGlzLmFwcHVpPWV9cmVnaXN0ZXIoZSl7dGhpcy52aWV3cy5oYXMoZS5pZCkmJmNvbnNvbGUud2FybihgVmlldyB3aXRoIGlkICIke2UuaWR9IiBhbHJlYWR5IHJlZ2lzdGVyZWQuIE92ZXJ3cml0aW5nLmApLHRoaXMudmlld3Muc2V0KGUuaWQsZSl9cmVnaXN0ZXJBbGwoZSl7ZS5mb3JFYWNoKGE9PnRoaXMucmVnaXN0ZXIoYSkpfWdldChlKXtyZXR1cm4gdGhpcy52aWV3cy5nZXQoZSl9Z2V0Vmlld0lkcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudmlld3Mua2V5cygpKX1nZXRBbGwoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnZpZXdzLnZhbHVlcygpKX1nZXRSb3V0ZShlKXtsZXQgYT10aGlzLnZpZXdzLmdldChlKTtyZXR1cm4gYT8ucm91dGV8fGE/LmlkfHwiIn1maW5kQnlSb3V0ZShlKXtmb3IobGV0IGEgb2YgdGhpcy52aWV3cy52YWx1ZXMoKSl7bGV0IGk9YS5yb3V0ZXx8YS5pZCxyPXRoaXMubWF0Y2hSb3V0ZShpLGUpO2lmKHIhPT1udWxsKXJldHVybnt2aWV3OmEscGFyYW1zOnJ9fX1tYXRjaFJvdXRlKGUsYSl7bGV0IGk9ZS5zcGxpdCgiLyIpLHI9YS5zcGxpdCgiLyIpO2lmKGkubGVuZ3RoPjAmJmlbaS5sZW5ndGgtMV0uZW5kc1dpdGgoIj8iKSl7aWYoci5sZW5ndGg8aS5sZW5ndGgtMXx8ci5sZW5ndGg+aS5sZW5ndGgpcmV0dXJuIG51bGx9ZWxzZSBpZihpLmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybiBudWxsO2xldCBuPXt9O2ZvcihsZXQgbz0wO288aS5sZW5ndGg7bysrKXtsZXQgZD1pW29dLGM9ZC5lbmRzV2l0aCgiPyIpO2lmKGMmJihkPWQuc2xpY2UoMCwtMSkpLGQuc3RhcnRzV2l0aCgiOiIpKXtsZXQgcD1kLnNsaWNlKDEpO2lmKHJbb10hPT12b2lkIDApbltwXT1yW29dO2Vsc2UgaWYoIWMpcmV0dXJuIG51bGx9ZWxzZSBpZihyW29dIT09ZClyZXR1cm4gbnVsbH1yZXR1cm4gbn1hc3luYyBjYW5MZWF2ZUN1cnJlbnRWaWV3KCl7aWYoIXRoaXMuY3VycmVudFZpZXdJZClyZXR1cm4hMDtsZXQgZT10aGlzLmluc3RhbmNlcy5nZXQodGhpcy5jdXJyZW50Vmlld0lkKTtpZighZSlyZXR1cm4hMDtsZXQgYT1lO3JldHVybiB0eXBlb2YgYS5jYW5EZWFjdGl2YXRlPT0iZnVuY3Rpb24iP2F3YWl0IGEuY2FuRGVhY3RpdmF0ZSgpOiEwfWFzeW5jIGFjdGl2YXRlVmlldyhlLGEsaSl7bGV0IHI9dGhpcy52aWV3cy5nZXQoZSk7aWYoIXIpcmV0dXJuIGNvbnNvbGUuZXJyb3IoYFZpZXcgIiR7ZX0iIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApLG51bGw7bGV0IHM9ci5jYWNoZSE9PSExO3RoaXMuY3VycmVudFZpZXdJZCYmdGhpcy5jdXJyZW50Vmlld0lkIT09ZSYmYXdhaXQgdGhpcy5kZWFjdGl2YXRlVmlldyh0aGlzLmN1cnJlbnRWaWV3SWQpO2xldCBuPXM/dGhpcy5pbnN0YW5jZXMuZ2V0KGUpOnZvaWQgMDtpZihuKW4uc3R5bGUuZGlzcGxheT0iIjtlbHNle2lmKG49YXdhaXQgdGhpcy5jcmVhdGVWaWV3RWxlbWVudChyKSwhbilyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBlbGVtZW50IGZvciB2aWV3ICIke2V9ImApLG51bGw7YS5hcHBlbmRDaGlsZChuKSxzJiZ0aGlzLmluc3RhbmNlcy5zZXQoZSxuKX1yZXR1cm4gdGhpcy5jdXJyZW50Vmlld0lkPWUsYXdhaXQgdGhpcy5jYWxsT25BY3RpdmF0ZShuLGUsaSksbn1hc3luYyBkZWFjdGl2YXRlVmlldyhlKXtsZXQgYT10aGlzLmluc3RhbmNlcy5nZXQoZSk7aWYoIWEpcmV0dXJuO2xldCBpPWE7dHlwZW9mIGkub25EZWFjdGl2YXRlPT0iZnVuY3Rpb24iJiZhd2FpdCBpLm9uRGVhY3RpdmF0ZSgpLGEuc3R5bGUuZGlzcGxheT0ibm9uZSJ9YXN5bmMgY3JlYXRlVmlld0VsZW1lbnQoZSl7bGV0IGE9ZS5jb250ZW50O2lmKHR5cGVvZiBhPT0iZnVuY3Rpb24iJiYhKGEucHJvdG90eXBlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpJiZhLmNvbnN0cnVjdG9yLm5hbWU9PT0iQXN5bmNGdW5jdGlvbiIpdHJ5e2E9YXdhaXQgYSgpfWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBhc3luYyBjb250ZW50IGZvciB2aWV3ICIke2UuaWR9IjpgLHIpLG51bGx9bGV0IGk7aWYodHlwZW9mIGE9PSJzdHJpbmciKWk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChhKTtlbHNlIGlmKHR5cGVvZiBhPT0iZnVuY3Rpb24iKWlmKGEucHJvdG90eXBlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpaT1uZXcgYTtlbHNle2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3IuY2xhc3NOYW1lPSJ2aWV3LWNvbnRlbnQtd3JhcHBlciIsci5zdHlsZS5jc3NUZXh0PSJkaXNwbGF5OiBjb250ZW50czsiO2xldCBzPWEoKTtybihzLHIpLGk9cn1lbHNlIHJldHVybiBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGNvbnRlbnQgdHlwZSBmb3IgdmlldyAiJHtlLmlkfSJgKSxudWxsO3JldHVybiBpLmRhdGFzZXQudmlld0lkPWUuaWQsaX1hc3luYyBjYWxsT25BY3RpdmF0ZShlLGEsaSl7bGV0IHI9ZTtpZih0eXBlb2Ygci5vbkFjdGl2YXRlPT0iZnVuY3Rpb24iKXtsZXQgcz17YXBwdWk6dGhpcy5hcHB1aSx2aWV3SWQ6YSxwYXJhbXM6aX07YXdhaXQgci5vbkFjdGl2YXRlKHMpfX1yZW5kZXJWaWV3KGUsYSl7bGV0IGk9dGhpcy52aWV3cy5nZXQoZSk7aWYoIWkpcmV0dXJuIGNvbnNvbGUuZXJyb3IoYFZpZXcgIiR7ZX0iIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApLG51bGw7YS5pbm5lckhUTUw9IiI7bGV0IHIscz1pLmNvbnRlbnQ7aWYodHlwZW9mIHM9PSJzdHJpbmciKXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChzKTtlbHNlIGlmKHR5cGVvZiBzPT0iZnVuY3Rpb24iKWlmKHMucHJvdG90eXBlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpcj1uZXcgcztlbHNle2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ2aWV3LWNvbnRlbnQtd3JhcHBlciIsbi5zdHlsZS5jc3NUZXh0PSJkaXNwbGF5OiBjb250ZW50czsiO2xldCBvPXMoKTtybihvLG4pLHI9bn1lbHNlIHJldHVybiBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGNvbnRlbnQgdHlwZSBmb3IgdmlldyAiJHtlfSJgKSxudWxsO3JldHVybiBhLmFwcGVuZENoaWxkKHIpLHRoaXMuaW5zdGFuY2VzLnNldChlLHIpLHRoaXMuY3VycmVudFZpZXdJZD1lLHJ9Z2V0Q3VycmVudFZpZXdJZCgpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3SWR9Z2V0SW5zdGFuY2UoZSl7cmV0dXJuIHRoaXMuaW5zdGFuY2VzLmdldChlKX1jbGVhckluc3RhbmNlKGUpe2xldCBhPXRoaXMuaW5zdGFuY2VzLmdldChlKTthJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKSx0aGlzLmluc3RhbmNlcy5kZWxldGUoZSksdGhpcy5jdXJyZW50Vmlld0lkPT09ZSYmKHRoaXMuY3VycmVudFZpZXdJZD1udWxsKX1jbGVhckluc3RhbmNlcygpe2ZvcihsZXRbZSxhXW9mIHRoaXMuaW5zdGFuY2VzKWEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpO3RoaXMuaW5zdGFuY2VzLmNsZWFyKCksdGhpcy5jdXJyZW50Vmlld0lkPW51bGx9dW5yZWdpc3RlcihlKXtyZXR1cm4gdGhpcy5jbGVhckluc3RhbmNlKGUpLHRoaXMudmlld3MuZGVsZXRlKGUpfWNsZWFyKCl7dGhpcy52aWV3cy5jbGVhcigpLHRoaXMuY2xlYXJJbnN0YW5jZXMoKX1oYXMoZSl7cmV0dXJuIHRoaXMudmlld3MuaGFzKGUpfWdldCBzaXplKCl7cmV0dXJuIHRoaXMudmlld3Muc2l6ZX19fSk7dmFyIEp1dCxlZnQ9YigoKT0+e3VlKCk7SnV0PSgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgYmFja2dyb3VuZDogIzFhMWExYTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgfQogICAgLmRlbW8tbWFpbm1lbnUtY29udGFpbmVyIC5zcGFjZXIgewogICAgICBmbGV4OiAxOwogICAgICBiYWNrZ3JvdW5kOiAjMGYwZjBmOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1tYWlubWVudS1jb250YWluZXIiPgogICAgPGRlZXMtYXBwdWktbWFpbm1lbnUKICAgICAgLmxvZ29JY29uPSR7Imx1Y2lkZTpib3gifQogICAgICAubG9nb1RleHQ9JHsiQWNtZSBBcHAifQogICAgICAubWVudUdyb3Vwcz0ke1t7dGFiczpbe2tleToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkRhc2hib2FyZCIpfSx7a2V5OiJJbmJveCIsaWNvbk5hbWU6Imx1Y2lkZTppbmJveCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiSW5ib3giKX1dfSx7bmFtZToiV29ya3NwYWNlIix0YWJzOlt7a2V5OiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXIiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlByb2plY3RzIil9LHtrZXk6IlRhc2tzIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJUYXNrcyIpfSx7a2V5OiJEb2N1bWVudHMiLGljb25OYW1lOiJsdWNpZGU6ZmlsZVRleHQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkRvY3VtZW50cyIpfV19LHtuYW1lOiJBbmFseXRpY3MiLHRhYnM6W3trZXk6IlJlcG9ydHMiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIil9LHtrZXk6Ikluc2lnaHRzIixpY29uTmFtZToibHVjaWRlOmxpZ2h0YnVsYiIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiSW5zaWdodHMiKX1dfV19CiAgICAgIC5ib3R0b21UYWJzPSR7W3trZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpfSx7a2V5OiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkhlbHAiKX1dfQogICAgPjwvZGVlcy1hcHB1aS1tYWlubWVudT4KICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgaG8sdWEsdGZ0LHJWPWIoKCk9PntyMigpO3NvKCk7dWkoKTt1ZSgpO3MyKCk7ZWZ0KCk7cWUoKTtobz1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LHVhPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSx0ZnQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWFwcHVpLW1haW5tZW51IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W107dmFyIHE9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6QXJyYXl9KV0seT1bSSh7dHlwZTpBcnJheX0pXSx4PVtJKHt0eXBlOkFycmF5fSldLEY9W0koKV0sTj1bSSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0saG8odGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dvSWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImxvZ29JY29uImluIHosZ2V0Ono9PnoubG9nb0ljb24sc2V0Oih6LEUpPT57ei5sb2dvSWNvbj1FfX0sbWV0YWRhdGE6Q30sbixvKSxobyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ibG9nb1RleHQiaW4geixnZXQ6ej0+ei5sb2dvVGV4dCxzZXQ6KHosRSk9Pnt6LmxvZ29UZXh0PUV9fSxtZXRhZGF0YTpDfSxjLHApLGhvKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+Im1lbnVHcm91cHMiaW4geixnZXQ6ej0+ei5tZW51R3JvdXBzLHNldDooeixFKT0+e3oubWVudUdyb3Vwcz1FfX0sbWV0YWRhdGE6Q30sZixnKSxobyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJib3R0b21UYWJzImluIHosZ2V0Ono9PnouYm90dG9tVGFicyxzZXQ6KHosRSk9Pnt6LmJvdHRvbVRhYnM9RX19LG1ldGFkYXRhOkN9LHYsbSksaG8odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idGFicyJpbiB6LGdldDp6PT56LnRhYnMsc2V0Oih6LEUpPT57ei50YWJzPUV9fSxtZXRhZGF0YTpDfSxNLFMpLGhvKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzZWxlY3RlZFRhYiJpbiB6LGdldDp6PT56LnNlbGVjdGVkVGFiLHNldDooeixFKT0+e3ouc2VsZWN0ZWRUYWI9RX19LG1ldGFkYXRhOkN9LF8sayksaG8odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJjb2xsYXBzZWQiaW4geixnZXQ6ej0+ei5jb2xsYXBzZWQsc2V0Oih6LEUpPT57ei5jb2xsYXBzZWQ9RX19LG1ldGFkYXRhOkN9LEwsQSksaG8obnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxhKSxxPWk9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz1KdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT11YSh0aGlzLG4sIiIpO2dldCBsb2dvSWNvbigpe3JldHVybiB0aGlzLiNlfXNldCBsb2dvSWNvbihDKXt0aGlzLiNlPUN9I3Q9KHVhKHRoaXMsbyksdWEodGhpcyxjLCIiKSk7Z2V0IGxvZ29UZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxvZ29UZXh0KEMpe3RoaXMuI3Q9Q30jYT0odWEodGhpcyxwKSx1YSh0aGlzLGYsW10pKTtnZXQgbWVudUdyb3Vwcygpe3JldHVybiB0aGlzLiNhfXNldCBtZW51R3JvdXBzKEMpe3RoaXMuI2E9Q30jaT0odWEodGhpcyxnKSx1YSh0aGlzLHYsW10pKTtnZXQgYm90dG9tVGFicygpe3JldHVybiB0aGlzLiNpfXNldCBib3R0b21UYWJzKEMpe3RoaXMuI2k9Q30jcj0odWEodGhpcyxtKSx1YSh0aGlzLE0sW10pKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNyfXNldCB0YWJzKEMpe3RoaXMuI3I9Q30jcz0odWEodGhpcyxTKSx1YSh0aGlzLF8sdm9pZCAwKSk7Z2V0IHNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlbGVjdGVkVGFiKEMpe3RoaXMuI3M9Q30jbj0odWEodGhpcyxrKSx1YSh0aGlzLEwsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI259c2V0IGNvbGxhcHNlZChDKXt0aGlzLiNuPUN9c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICAtLW1lbnUtd2lkdGgtZXhwYW5kZWQ6IDIwMHB4OwogICAgICAgIC0tbWVudS13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS10b29sdGlwLWJnOiAke2guYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgLS10b29sdGlwLWZnOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1haW5Db250YWluZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiNjY2MiKX07CiAgICAgICAgei1pbmRleDogJHtpMi5maXhlZC5hcHBCYXJ9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtZXhwYW5kZWQpOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1haW5Db250YWluZXIgewogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWNvbGxhcHNlZCk7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGNvbGxhcHNlIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMTJweDsKICAgICAgICB0b3A6IDI0cHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlNWU1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzM3MzczIiwiI2ExYTFhYSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogTG9nbyBTZWN0aW9uICovCiAgICAgIC5sb2dvU2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTVlNSIsIiMxYTFhMWEiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmxvZ29TZWN0aW9uIC5sb2dvSWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5sb2dvU2VjdGlvbiAubG9nb1RleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubG9nb1NlY3Rpb24gewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmxvZ29TZWN0aW9uIC5sb2dvVGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTWlkZGxlIFNlY3Rpb24gKHNjcm9sbGFibGUpICovCiAgICAgIC5tZW51U2VjdGlvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4yNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIil9OwogICAgICB9CgogICAgICAvKiBNZW51IEdyb3VwICovCiAgICAgIC5tZW51R3JvdXAgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLm1lbnVHcm91cDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4IDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MzczNzMiLCIjNzM3MzczIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmdyb3VwVGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBJdGVtICovCiAgICAgIC50YWIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzUyNTI1MiIsIiNhM2EzYTMiKX07CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNjI2MjYiLCIjZTVlNWU1Iil9OwogICAgICB9CgogICAgICAudGFiOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAudGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG9wYWNpdHk6IDAuODU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIENvbGxhcHNlZCB0YWIgc3R5bGVzICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC50YWIgLnRhYkxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC50YWItdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwMCU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS10b29sdGlwLWZnKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAudGFiLXRvb2x0aXA6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZyk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiOmhvdmVyIC50YWItdG9vbHRpcCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxczsKICAgICAgfQoKICAgICAgLyogQmFkZ2Ugc3R5bGVzICovCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmJhZGdlLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzZjNmNDYiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkY2ZjZTciLCIjMTQ1MzJkIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzE2NjUzNCIsIiM0YWRlODAiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZjNjNyIsIiM0NTFhMDMiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTI0MDBlIiwiI2ZiYmYyNCIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsIiM0NTBhMGEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTkxYjFiIiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogQm90dG9tIFNlY3Rpb24gKi8KICAgICAgLmJvdHRvbVNlY3Rpb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgQz10aGlzLmdldEFsbFRhYnMoKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbkNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7ej0+e1V0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHosW3tuYW1lOiJhcHAgc2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT57fSxpY29uTmFtZToiZ2VhciJ9XSl9fT4KICAgICAgICAke3RoaXMubG9nb0ljb258fHRoaXMubG9nb1RleHQ/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ29TZWN0aW9uIj4KICAgICAgICAgICAgJHt0aGlzLmxvZ29JY29uP3dgPGRlZXMtaWNvbiBjbGFzcz0ibG9nb0ljb24iIC5pY29uPSIke3RoaXMubG9nb0ljb259Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke3RoaXMubG9nb1RleHQ/d2A8c3BhbiBjbGFzcz0ibG9nb1RleHQiPiR7dGhpcy5sb2dvVGV4dH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51R3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyTWVudUdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5VGFicygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuYm90dG9tVGFicy5sZW5ndGg+MD93YAogICAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5ib3R0b21UYWJzLm1hcCh6PT50aGlzLnJlbmRlclRhYih6KSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJNZW51R3JvdXBzKCl7cmV0dXJuIHdgCiAgICAgICR7dGhpcy5tZW51R3JvdXBzLm1hcChDPT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICAke0MubmFtZT93YDxkaXYgY2xhc3M9Imdyb3VwSGVhZGVyIj4ke0MubmFtZX08L2Rpdj5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICAgJHtDLml0ZW1zLm1hcCh6PT50aGlzLnJlbmRlclRhYih6KSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckxlZ2FjeVRhYnMoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncm91cFRhYnMiPgogICAgICAgICAgJHt0aGlzLnRhYnMubWFwKEM9PnRoaXMucmVuZGVyVGFiKEMpKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihDKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0YWIgJHtDPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLnVwZGF0ZVRhYihDKX19IgogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtDLmljb25OYW1lfHwiIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWJMYWJlbCI+JHtDLmtleX08L3NwYW4+CiAgICAgICAgJHtDLmJhZGdlIT09dm9pZCAwP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHtDLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHtDLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItdG9vbHRpcCI+JHtDLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRBbGxUYWJzKCl7cmV0dXJuIHRoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD9bLi4udGhpcy5tZW51R3JvdXBzLmZsYXRNYXAoej0+ei5pdGVtcyksLi4udGhpcy5ib3R0b21UYWJzXTpbLi4udGhpcy50YWJzLC4uLnRoaXMuYm90dG9tVGFic119dXBkYXRlVGFiKEMpe3RoaXMuc2VsZWN0ZWRUYWI9Qyx0aGlzLnNlbGVjdGVkVGFiLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpDfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWZpcnN0VXBkYXRlZCgpe2xldCBDPXRoaXMuZ2V0QWxsVGFicygpO0MubGVuZ3RoPjAmJnRoaXMudXBkYXRlVGFiKENbMF0pfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx1YSh0aGlzLEEpfXN0YXRpY3t1YShpLGEpfX07cmV0dXJuIHE9aX0pKCl9KTt2YXIgYWZ0LGlmdD1iKCgpPT57dWUoKTthZnQ9KCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgewogICAgICBmbGV4OiAxOwogICAgICBiYWNrZ3JvdW5kOiAjMGYwZjBmOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgaDMgewogICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgY29kZSB7CiAgICAgIGJhY2tncm91bmQ6ICMyNzI3MmE7CiAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB1bCB7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIj4KICAgIDxkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUKICAgICAgLmhlYWRpbmc9JHsiUHJvamVjdHMifQogICAgICAuZ3JvdXBzPSR7W3tuYW1lOiJOYXZpZ2F0aW9uIixpY29uTmFtZToibHVjaWRlOmNvbXBhc3MiLGl0ZW1zOlt7a2V5OiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0RGFzaGJvYXJkIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEYXNoYm9hcmQgY2xpY2tlZCIpLGJhZGdlOjMsYmFkZ2VWYXJpYW50OiJ3YXJuaW5nIn0se2tleToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJQcm9qZWN0cyBjbGlja2VkIiksYmFkZ2U6Im5ldyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIn0se2tleToiQW5hbHl0aWNzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MiIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIGNsaWNrZWQiKX1dfSx7bmFtZToiQWN0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkNyZWF0ZSBOZXciLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOigpPT5hbGVydCgiQ3JlYXRlIE5ldyBjbGlja2VkISIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkltcG9ydCBEYXRhIixpY29uTmFtZToibHVjaWRlOnVwbG9hZCIsYWN0aW9uOigpPT5hbGVydCgiSW1wb3J0IERhdGEgY2xpY2tlZCEiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IkRlbGV0ZSBBbGwiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIix2YXJpYW50OiJkYW5nZXIiLGNvbmZpcm1NZXNzYWdlOiJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGFsbCBpdGVtcz8iLGFjdGlvbjooKT0+YWxlcnQoIkRlbGV0ZWQhIil9XX0se25hbWU6IkZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IlN0YXR1cyJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBY3RpdmUiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tDaXJjbGUiLGFjdGl2ZTohMCxvblRvZ2dsZTp0PT5jb25zb2xlLmxvZygiU2hvdyBBY3RpdmU6Iix0KX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFyY2hpdmVkIixpY29uTmFtZToibHVjaWRlOmFyY2hpdmUiLGFjdGl2ZTohMSxvblRvZ2dsZTp0PT5jb25zb2xlLmxvZygiU2hvdyBBcmNoaXZlZDoiLHQpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJDYXRlZ29yaWVzIixpY29uTmFtZToibHVjaWRlOnRhZyIsY29sbGFwc2VkOiExLG9wdGlvbnM6W3trZXk6ImZyb250ZW5kIixsYWJlbDoiRnJvbnRlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptb25pdG9yIn0se2tleToiYmFja2VuZCIsbGFiZWw6IkJhY2tlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJkZXZvcHMiLGxhYmVsOiJEZXZPcHMiLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjbG91ZCJ9LHtrZXk6ImRlc2lnbiIsbGFiZWw6IkRlc2lnbiIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnBhbGV0dGUifV0sb25DaGFuZ2U6dD0+Y29uc29sZS5sb2coIlNlbGVjdGVkIGNhdGVnb3JpZXM6Iix0KX1dfSx7bmFtZToiUmVzb3VyY2VzIixpY29uTmFtZToibHVjaWRlOmJvb2tPcGVuIixjb2xsYXBzZWQ6ITAsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJEb2N1bWVudGF0aW9uIn0se3R5cGU6ImxpbmsiLGtleToiQVBJIFJlZmVyZW5jZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsaHJlZjoiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vZG9jcyJ9LHt0eXBlOiJsaW5rIixrZXk6IlVzZXIgR3VpZGUiLGljb25OYW1lOiJsdWNpZGU6Ym9vayIsaHJlZjoiaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tL2d1aWRlIn0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiU3VwcG9ydCJ9LHt0eXBlOiJsaW5rIixrZXk6IkhlbHAgQ2VudGVyIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGhyZWY6Ii9oZWxwIixleHRlcm5hbDohMX0se3R5cGU6ImxpbmsiLGtleToiR2l0SHViIElzc3VlcyIsaWNvbk5hbWU6Imx1Y2lkZTpnaXRodWIiLGhyZWY6Imh0dHBzOi8vZ2l0aHViLmNvbS9leGFtcGxlL2lzc3VlcyJ9XX1dfQogICAgICBAaXRlbS1zZWxlY3Q9JHt0PT5jb25zb2xlLmxvZygiVGFiIHNlbGVjdGVkOiIsdC5kZXRhaWwpfQogICAgICBAYWN0aW9uLWNsaWNrPSR7dD0+Y29uc29sZS5sb2coIkFjdGlvbiBjbGlja2VkOiIsdC5kZXRhaWwpfQogICAgICBAZmlsdGVyLXRvZ2dsZT0ke3Q9PmNvbnNvbGUubG9nKCJGaWx0ZXIgdG9nZ2xlZDoiLHQuZGV0YWlsKX0KICAgICAgQG11bHRpZmlsdGVyLWNoYW5nZT0ke3Q9PmNvbnNvbGUubG9nKCJNdWx0aS1maWx0ZXIgY2hhbmdlZDoiLHQuZGV0YWlsKX0KICAgICAgQGxpbmstY2xpY2s9JHt0PT5jb25zb2xlLmxvZygiTGluayBjbGlja2VkOiIsdC5kZXRhaWwpfQogICAgPjwvZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51PgogICAgPGRpdiBjbGFzcz0ic3BhY2VyIj4KICAgICAgPGgzPlNlY29uZGFyeSBNZW51IERlbW88L2gzPgogICAgICA8cD5UaGlzIGRlbW8gc2hvd2Nhc2VzIGFsbCA4IGl0ZW0gdHlwZXM6PC9wPgogICAgICA8dWw+CiAgICAgICAgPGxpPjxjb2RlPnRhYjwvY29kZT4gLSBTZWxlY3RhYmxlIGl0ZW1zIChOYXZpZ2F0aW9uIGdyb3VwKTwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmFjdGlvbjwvY29kZT4gLSBCbHVlIGFjdGlvbnMgKEFjdGlvbnMgZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+YWN0aW9uPC9jb2RlPiB3aXRoIDxjb2RlPnZhcmlhbnQ6ICdkYW5nZXInPC9jb2RlPiAtIFJlZCBkYW5nZXIgYWN0aW9uPC9saT4KICAgICAgICA8bGk+PGNvZGU+ZmlsdGVyPC9jb2RlPiAtIENoZWNrYm94IHRvZ2dsZXMgKEZpbHRlcnMgZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+bXVsdGlGaWx0ZXI8L2NvZGU+IC0gQ29sbGFwc2libGUgbXVsdGktc2VsZWN0IChDYXRlZ29yaWVzKTwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmRpdmlkZXI8L2NvZGU+IC0gVmlzdWFsIHNlcGFyYXRvcnM8L2xpPgogICAgICAgIDxsaT48Y29kZT5oZWFkZXI8L2NvZGU+IC0gU2VjdGlvbiBsYWJlbHM8L2xpPgogICAgICAgIDxsaT48Y29kZT5saW5rPC9jb2RlPiAtIEV4dGVybmFsL2ludGVybmFsIGxpbmtzIChSZXNvdXJjZXMgZ3JvdXApPC9saT4KICAgICAgPC91bD4KICAgICAgPHA+VHJ5IHRoZSBjb2xsYXBzZSB0b2dnbGUgb24gdGhlIGxlZnQgZWRnZSE8L3A+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBQcyxfMixyZnQsc1Y9YigoKT0+e3IyKCk7c28oKTtzMigpO0R0KCk7dWUoKTtpZnQoKTtxZSgpO1BzPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sXzI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LHJmdD0oKCk9PntsZXQgdD1baGUoImRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdO3ZhciBFPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOkFycmF5fSldLGw9W0koe3R5cGU6QXJyYXl9KV0seT1bSSh7dHlwZTpPYmplY3R9KV0seD1bSigpXSxGPVtKKCldLE49W0ooKV0scT1bSSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sUHModGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoZWFkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iaGVhZGluZyJpbiAkLGdldDokPT4kLmhlYWRpbmcsc2V0OigkLFYpPT57JC5oZWFkaW5nPVZ9fSxtZXRhZGF0YTpUfSxuLG8pLFBzKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iZ3JvdXBzImluICQsZ2V0OiQ9PiQuZ3JvdXBzLHNldDooJCxWKT0+eyQuZ3JvdXBzPVZ9fSxtZXRhZGF0YTpUfSxjLHApLFBzKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InNlbGVjdGlvbk9wdGlvbnMiaW4gJCxnZXQ6JD0+JC5zZWxlY3Rpb25PcHRpb25zLHNldDooJCxWKT0+eyQuc2VsZWN0aW9uT3B0aW9ucz1WfX0sbWV0YWRhdGE6VH0sZixnKSxQcyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InNlbGVjdGVkSXRlbSJpbiAkLGdldDokPT4kLnNlbGVjdGVkSXRlbSxzZXQ6KCQsVik9PnskLnNlbGVjdGVkSXRlbT1WfX0sbWV0YWRhdGE6VH0sdixtKSxQcyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZEdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+ImNvbGxhcHNlZEdyb3VwcyJpbiAkLGdldDokPT4kLmNvbGxhcHNlZEdyb3VwcyxzZXQ6KCQsVik9PnskLmNvbGxhcHNlZEdyb3Vwcz1WfX0sbWV0YWRhdGE6VH0sTSxTKSxQcyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZE11bHRpRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+ImNvbGxhcHNlZE11bHRpRmlsdGVycyJpbiAkLGdldDokPT4kLmNvbGxhcHNlZE11bHRpRmlsdGVycyxzZXQ6KCQsVik9PnskLmNvbGxhcHNlZE11bHRpRmlsdGVycz1WfX0sbWV0YWRhdGE6VH0sXyxrKSxQcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlckNvdW50ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJyZW5kZXJDb3VudGVyImluICQsZ2V0OiQ9PiQucmVuZGVyQ291bnRlcixzZXQ6KCQsVik9PnskLnJlbmRlckNvdW50ZXI9Vn19LG1ldGFkYXRhOlR9LEwsQSksUHModGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJjb2xsYXBzZWQiaW4gJCxnZXQ6JD0+JC5jb2xsYXBzZWQsc2V0OigkLFYpPT57JC5jb2xsYXBzZWQ9Vn19LG1ldGFkYXRhOlR9LEMseiksUHMobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6VH0sbnVsbCxhKSxFPWk9ZS52YWx1ZSxUJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlR9KX1zdGF0aWMgZGVtbz1hZnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1fMih0aGlzLG4sIk1lbnUiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKFQpe3RoaXMuI2U9VH0jdD0oXzIodGhpcyxvKSxfMih0aGlzLGMsW10pKTtnZXQgZ3JvdXBzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGdyb3VwcyhUKXt0aGlzLiN0PVR9I2E9KF8yKHRoaXMscCksXzIodGhpcyxmLFtdKSk7Z2V0IHNlbGVjdGlvbk9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0aW9uT3B0aW9ucyhUKXt0aGlzLiNhPVR9I2k9KF8yKHRoaXMsZyksXzIodGhpcyx2LG51bGwpKTtnZXQgc2VsZWN0ZWRJdGVtKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkSXRlbShUKXt0aGlzLiNpPVR9I3I9KF8yKHRoaXMsbSksXzIodGhpcyxNLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkR3JvdXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGNvbGxhcHNlZEdyb3VwcyhUKXt0aGlzLiNyPVR9I3M9KF8yKHRoaXMsUyksXzIodGhpcyxfLG5ldyBTZXQpKTtnZXQgY29sbGFwc2VkTXVsdGlGaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycyhUKXt0aGlzLiNzPVR9I249KF8yKHRoaXMsayksXzIodGhpcyxMLDApKTtnZXQgcmVuZGVyQ291bnRlcigpe3JldHVybiB0aGlzLiNufXNldCByZW5kZXJDb3VudGVyKFQpe3RoaXMuI249VH0jbz0oXzIodGhpcyxBKSxfMih0aGlzLEMsITEpKTtnZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbGxhcHNlZChUKXt0aGlzLiNvPVR9c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICAtLXNpZGViYXItd2lkdGgtZXhwYW5kZWQ6IDI0MHB4OwogICAgICAgIC0tc2lkZWJhci13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS1zaWRlYmFyLWJnOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgLS1zaWRlYmFyLWZnOiAke2guYmRUaGVtZSgiIzUyNTI1MiIsIiNhM2EzYTMiKX07CiAgICAgICAgLS1zaWRlYmFyLWZnLW11dGVkOiAke2guYmRUaGVtZSgiIzczNzM3MyIsIiM3MzczNzMiKX07CiAgICAgICAgLS1zaWRlYmFyLWZnLWFjdGl2ZTogJHtoLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIC0tc2lkZWJhci1ib3JkZXI6ICR7aC5iZFRoZW1lKCIjZTVlNWU1IiwiIzFhMWExYSIpfTsKICAgICAgICAtLXNpZGViYXItaG92ZXI6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICAtLXNpZGViYXItYWN0aXZlOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgLS1zaWRlYmFyLWFjY2VudDogJHtoLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIC0tdG9vbHRpcC1iZzogJHtoLmJkVGhlbWUoIiMxODE4MWIiLCIjZmFmYWZhIil9OwogICAgICAgIC0tdG9vbHRpcC1mZzogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMTgxODFiIil9OwoKICAgICAgICAvKiBCYWRnZSBjb2xvcnMgKi8KICAgICAgICAtLWJhZGdlLWRlZmF1bHQtYmc6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICAtLWJhZGdlLWRlZmF1bHQtZmc6ICR7aC5iZFRoZW1lKCIjM2YzZjQ2IiwiI2ExYTFhYSIpfTsKICAgICAgICAtLWJhZGdlLXN1Y2Nlc3MtYmc6ICR7aC5iZFRoZW1lKCIjZGNmY2U3IiwiIzE0NTMyZCIpfTsKICAgICAgICAtLWJhZGdlLXN1Y2Nlc3MtZmc6ICR7aC5iZFRoZW1lKCIjMTY2NTM0IiwiIzRhZGU4MCIpfTsKICAgICAgICAtLWJhZGdlLXdhcm5pbmctYmc6ICR7aC5iZFRoZW1lKCIjZmVmM2M3IiwiIzQ1MWEwMyIpfTsKICAgICAgICAtLWJhZGdlLXdhcm5pbmctZmc6ICR7aC5iZFRoZW1lKCIjOTI0MDBlIiwiI2ZiYmYyNCIpfTsKICAgICAgICAtLWJhZGdlLWVycm9yLWJnOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsIiM0NTBhMGEiKX07CiAgICAgICAgLS1iYWRnZS1lcnJvci1mZzogJHtoLmJkVGhlbWUoIiM5OTFiMWIiLCIjZjg3MTcxIil9OwoKICAgICAgICAvKiBBY3Rpb24gY29sb3JzICovCiAgICAgICAgLS1hY3Rpb24tcHJpbWFyeTogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjM2I4MmY2Iil9OwogICAgICAgIC0tYWN0aW9uLXByaW1hcnktaG92ZXI6ICR7aC5iZFRoZW1lKCIjMWQ0ZWQ4IiwiIzYwYTVmYSIpfTsKICAgICAgICAtLWFjdGlvbi1kYW5nZXI6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICAtLWFjdGlvbi1kYW5nZXItaG92ZXI6ICR7aC5iZFRoZW1lKCIjYjkxYzFjIiwiI2Y4NzE3MSIpfTsKCiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aC1leHBhbmRlZCk7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1iZyk7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgewogICAgICAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZCk7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAvKiBGbG9hdGluZyBjb2xsYXBzZSB0b2dnbGUgYnV0dG9uICovCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogLTEycHg7CiAgICAgICAgdG9wOiAyNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTVlNSIsIiMzZjNmNDYiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzczNzM3MyIsIiNhMWExYWEiKX07CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICA6aG9zdCg6aG92ZXIpIC5jb2xsYXBzZS10b2dnbGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jb2xsYXBzZS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC8qIEhlYWRlciBTZWN0aW9uICovCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgLmhlYWRpbmcgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuaGVhZGVyIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgLmhlYWRpbmcgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYWJsZSBNZW51IFNlY3Rpb24gKi8KICAgICAgLm1lbnVTZWN0aW9uIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjI1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE1lbnUgR3JvdXAgKi8KICAgICAgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2UsIG1heC1oZWlnaHQgMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXI6aG92ZXIgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDE0MCwgMTIwLCAxMDAsIDAuMDYpIiwicmdiYSgxODAsIDE2MCwgMTQwLCAwLjA4KSIpfTsKICAgICAgICBwYWRkaW5nOiA3cHggMTFweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyOm5vdCguY29sbGFwc2VkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNikiLCJyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5ncm91cFRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuZ3JvdXBUaXRsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3ODcxNmMiLCIjYjVhOTlhIil9OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmNoZXZyb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzc4NzE2YyIsIiNiNWE5OWEiKX07CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlci5jb2xsYXBzZWQgLmNoZXZyb24gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7CiAgICAgIH0KCiAgICAgIC8qIEhpZGUgZ3JvdXAgaGVhZGVycyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKi8KICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ncm91cEhlYWRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAvKiBHcm91cCBJdGVtcyBDb250YWluZXIgKi8KICAgICAgLmdyb3VwSXRlbXMgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWFyZ2luIDAuMjVzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogMTAwMHB4OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgfQoKICAgICAgLmdyb3VwSXRlbXMuY29sbGFwc2VkIHsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogQWx3YXlzIHNob3cgaXRlbXMgd2hlbiBob3Jpem9udGFsbHkgY29sbGFwc2VkIChyZWdhcmRsZXNzIG9mIGdyb3VwIGNvbGxhcHNlIHN0YXRlKSAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSXRlbXMgewogICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogTWVudSBJdGVtIEJhc2UgKi8KICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBtYXJnaW46IDJweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNDUwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmcpOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjdGl2ZSk7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQ6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAzcHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLnNlbGVjdGVkIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIC5pdGVtTGFiZWwgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICAvKiBBY3Rpb24gSXRlbSBTdHlsZXMgKi8KICAgICAgLm1lbnVJdGVtLmFjdGlvbi1wcmltYXJ5IHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLXByaW1hcnkpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnk6aG92ZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tcHJpbWFyeS1ob3Zlcik7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLWRhbmdlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1kYW5nZXIpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLWRhbmdlcjpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1kYW5nZXItaG92ZXIpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDIyMCwgMzgsIDM4LCAwLjA4KSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0uYWN0aW9uLWRhbmdlciBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIEZpbHRlciBJdGVtIFN0eWxlcyAqLwogICAgICAubWVudUl0ZW0uZmlsdGVyIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDRkNGQ0IiwiIzUyNTI1MiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyIC5maWx0ZXItY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyIC5maWx0ZXItY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZmlsdGVyLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLyogTXVsdGktRmlsdGVyIENvbnRhaW5lciAqLwogICAgICAubXVsdGlGaWx0ZXIgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDIpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKSIpfTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLXRpdGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci1jb3VudCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLW11dGVkKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1kZWZhdWx0LWJnKTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAuY2hldnJvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbnMgewogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDUwMHB4OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb25zLmNvbGxhcHNlZCB7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmcpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAke2guYmRUaGVtZSgiI2Q0ZDRkNCIsIiM1MjUyNTIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiAub3B0aW9uLWNoZWNrYm94LmNoZWNrZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50KTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiAub3B0aW9uLWNoZWNrYm94IGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gZGVlcy1pY29uLm9wdGlvbi1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAvKiBEaXZpZGVyICovCiAgICAgIC5tZW51RGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIG1hcmdpbjogOHB4IDEycHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudURpdmlkZXIgewogICAgICAgIG1hcmdpbjogOHB4IDRweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyL0xhYmVsICovCiAgICAgIC5tZW51SGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggNHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVIZWFkZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIExpbmsgSXRlbSAqLwogICAgICAubWVudUl0ZW0ubGluayAuZXh0ZXJuYWwtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLyogQ29sbGFwc2VkIG1lbnUgaXRlbSBzdHlsZXMgKi8KICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSB7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuaXRlbUxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbS5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBsZWZ0OiAtNHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5maWx0ZXItY2hlY2tib3gsCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmV4dGVybmFsLWljb24gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubXVsdGlGaWx0ZXIgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFRvb2x0aXAgZm9yIGNvbGxhcHNlZCBzdGF0ZSAqLwogICAgICAuaXRlbS10b29sdGlwIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMTAwJTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdG9vbHRpcC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLXRvb2x0aXAtZmcpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgIH0KCiAgICAgIC5pdGVtLXRvb2x0aXA6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZyk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW06aG92ZXIgLml0ZW0tdG9vbHRpcCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxczsKICAgICAgfQoKICAgICAgLyogQmFkZ2UgU3R5bGVzICovCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmJhZGdlLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1kZWZhdWx0LWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS1zdWNjZXNzLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLXdhcm5pbmctYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS1iYWRnZS13YXJuaW5nLWZnKTsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWRnZS1lcnJvci1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWVycm9yLWZnKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTGVnYWN5IG9wdGlvbnMgY29udGFpbmVyICovCiAgICAgIC5sZWdhY3lPcHRpb25zIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgfQoKICAgICAgLyogRGl2aWRlciAobGVnYWN5KSAqLwogICAgICAuZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ib3JkZXIpOwogICAgICAgIG1hcmdpbjogOHB4IDEycHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImhlYWRpbmciPiR7dGhpcy5oZWFkaW5nfTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZW51U2VjdGlvbiI+CiAgICAgICAgICAke3RoaXMuZ3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyR3JvdXBzKCk6dGhpcy5yZW5kZXJMZWdhY3lPcHRpb25zKCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YnV0dG9uIGNsYXNzPSJjb2xsYXBzZS10b2dnbGUiIEBjbGljaz0iJHsoKT0+dGhpcy50b2dnbGVDb2xsYXBzZSgpfSI+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLmNvbGxhcHNlZD8ibHVjaWRlOmNoZXZyb25SaWdodCI6Imx1Y2lkZTpjaGV2cm9uTGVmdCJ9Ij48L2RlZXMtaWNvbj4KICAgICAgPC9idXR0b24+CiAgICBgfXJlbmRlckdyb3Vwcygpe3JldHVybiB3YAogICAgICAke3RoaXMuZ3JvdXBzLm1hcChUPT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJncm91cEhlYWRlciAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcyhULm5hbWUpPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUdyb3VwKFQubmFtZSl9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZ3JvdXBUaXRsZSI+CiAgICAgICAgICAgICAgJHtULmljb25OYW1lP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oVC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICR7VC5uYW1lfQogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNoZXZyb24iIC5pY29uPSIkeyJsdWNpZGU6Y2hldnJvbkRvd24ifSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Imdyb3VwSXRlbXMgJHt0aGlzLmNvbGxhcHNlZEdyb3Vwcy5oYXMoVC5uYW1lKT8iY29sbGFwc2VkIjoiIn0iPgogICAgICAgICAgICAke1QuaXRlbXMubWFwKCQ9PnRoaXMucmVuZGVySXRlbSgkLFQpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgKX0KICAgIGB9cmVuZGVySXRlbShULCQpe2lmKCJoaWRkZW4iaW4gVCYmVC5oaWRkZW4pcmV0dXJuIHdgYDtzd2l0Y2goInR5cGUiaW4gVD9ULnR5cGU6InRhYiIpe2Nhc2UiYWN0aW9uIjpyZXR1cm4gdGhpcy5yZW5kZXJBY3Rpb25JdGVtKFQpO2Nhc2UiZmlsdGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJGaWx0ZXJJdGVtKFQpO2Nhc2UibXVsdGlGaWx0ZXIiOnJldHVybiB0aGlzLnJlbmRlck11bHRpRmlsdGVySXRlbShUKTtjYXNlImRpdmlkZXIiOnJldHVybiB0aGlzLnJlbmRlckRpdmlkZXIoKTtjYXNlImhlYWRlciI6cmV0dXJuIHRoaXMucmVuZGVySGVhZGVyKFQpO2Nhc2UibGluayI6cmV0dXJuIHRoaXMucmVuZGVyTGlua0l0ZW0oVCk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5yZW5kZXJUYWJJdGVtKFQsJCl9fXJlbmRlclRhYkl0ZW0oVCwkKXtsZXQgVj10aGlzLnNlbGVjdGVkSXRlbT8ua2V5PT09VC5rZXksUj1ULmRpc2FibGVkPT09ITA7cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0ibWVudUl0ZW0gJHtWPyJzZWxlY3RlZCI6IiJ9ICR7Uj8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFSJiZ0aGlzLnNlbGVjdFRhYkl0ZW0oVCwkKX0iCiAgICAgICAgQGNvbnRleHRtZW51PSIke1U9PnRoaXMuaGFuZGxlQ29udGV4dE1lbnUoVSxUKX0iCiAgICAgID4KICAgICAgICAke1QuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihULmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHtULmtleX08L3NwYW4+CiAgICAgICAgJHtULmJhZGdlIT09dm9pZCAwP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHtULmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHtULmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7VC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uSXRlbShUKXtsZXQgJD1ULnZhcmlhbnR8fCJwcmltYXJ5IixWPVQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSBhY3Rpb24tJHskfSAke1Y/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hViYmdGhpcy5oYW5kbGVBY3Rpb25DbGljayhUKX0iCiAgICAgID4KICAgICAgICAke1QuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihULmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHtULmtleX08L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtULmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWx0ZXJJdGVtKFQpe2xldCAkPVQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSBmaWx0ZXIgJHtULmFjdGl2ZT8iYWN0aXZlIjoiIn0gJHskPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+ISQmJnRoaXMuaGFuZGxlRmlsdGVyVG9nZ2xlKFQpfSIKICAgICAgPgogICAgICAgICR7VC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXItY2hlY2tib3ggJHtULmFjdGl2ZT8iY2hlY2tlZCI6IiJ9Ij4KICAgICAgICAgICR7VC5hY3RpdmU/d2A8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6Y2hlY2sifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck11bHRpRmlsdGVySXRlbShUKXtsZXQgJD10aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycy5oYXMoVC5rZXkpLFY9VC5vcHRpb25zLmZpbHRlcihSPT5SLmNoZWNrZWQpLmxlbmd0aDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibXVsdGlGaWx0ZXIiPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJtdWx0aUZpbHRlci1oZWFkZXIgJHskPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy50b2dnbGVNdWx0aUZpbHRlcihULmtleSl9IgogICAgICAgID4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJtdWx0aUZpbHRlci10aXRsZSI+CiAgICAgICAgICAgICR7VC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgJHtULmtleX0KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICR7Vj4wP3dgPHNwYW4gY2xhc3M9Im11bHRpRmlsdGVyLWNvdW50Ij4ke1Z9PC9zcGFuPmA6IiJ9CiAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJjaGV2cm9uIiAuaWNvbj0iJHsibHVjaWRlOmNoZXZyb25Eb3duIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im11bHRpRmlsdGVyLW9wdGlvbnMgJHskPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAke1Qub3B0aW9ucy5tYXAoUj0+d2AKICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJtdWx0aUZpbHRlci1vcHRpb24iCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLmhhbmRsZU11bHRpRmlsdGVyT3B0aW9uVG9nZ2xlKFQsUi5rZXkpfSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im9wdGlvbi1jaGVja2JveCAke1IuY2hlY2tlZD8iY2hlY2tlZCI6IiJ9Ij4KICAgICAgICAgICAgICAgICR7Ui5jaGVja2VkP3dgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOmNoZWNrIn0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgJHtSLmljb25OYW1lP3dgPGRlZXMtaWNvbiBjbGFzcz0ib3B0aW9uLWljb24iIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihSLmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgPHNwYW4+JHtSLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRpdmlkZXIoKXtyZXR1cm4gd2A8ZGl2IGNsYXNzPSJtZW51RGl2aWRlciI+PC9kaXY+YH1yZW5kZXJIZWFkZXIoVCl7cmV0dXJuIHdgPGRpdiBjbGFzcz0ibWVudUhlYWRlciI+JHtULmxhYmVsfTwvZGl2PmB9cmVuZGVyTGlua0l0ZW0oVCl7bGV0ICQ9VC5leHRlcm5hbD8/VC5ocmVmLnN0YXJ0c1dpdGgoImh0dHAiKSxWPVQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSBsaW5rICR7Vj8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFWJiZ0aGlzLmhhbmRsZUxpbmtDbGljayhUKX0iCiAgICAgID4KICAgICAgICAke1QuaWNvbk5hbWU/d2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihULmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW1MYWJlbCI+JHtULmtleX08L3NwYW4+CiAgICAgICAgJHskP3dgPGRlZXMtaWNvbiBjbGFzcz0iZXh0ZXJuYWwtaWNvbiIgLmljb249IiR7Imx1Y2lkZTpleHRlcm5hbExpbmsifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckxlZ2FjeU9wdGlvbnMoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ibGVnYWN5T3B0aW9ucyI+CiAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk9wdGlvbnMubWFwKFQ9PntpZigiZGl2aWRlciJpbiBUJiZULmRpdmlkZXIpcmV0dXJuIHdgPGRpdiBjbGFzcz0iZGl2aWRlciI+PC9kaXY+YDtsZXQgJD1ULFY9e2tleTokLmtleSxpY29uTmFtZTokLmljb25OYW1lLGFjdGlvbjokLmFjdGlvbixiYWRnZTokLmJhZGdlLGJhZGdlVmFyaWFudDokLmJhZGdlVmFyaWFudH07cmV0dXJuIHRoaXMucmVuZGVyVGFiSXRlbShWKX0pfQogICAgICA8L2Rpdj4KICAgIGB9bm9ybWFsaXplSWNvbihUKXtyZXR1cm4gVC5zdGFydHNXaXRoKCJsdWNpZGU6Iik/VDpgbHVjaWRlOiR7VH1gfXRvZ2dsZUdyb3VwKFQpe2xldCAkPW5ldyBTZXQodGhpcy5jb2xsYXBzZWRHcm91cHMpOyQuaGFzKFQpPyQuZGVsZXRlKFQpOiQuYWRkKFQpLHRoaXMuY29sbGFwc2VkR3JvdXBzPSR9dG9nZ2xlTXVsdGlGaWx0ZXIoVCl7bGV0ICQ9bmV3IFNldCh0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycyk7JC5oYXMoVCk/JC5kZWxldGUoVCk6JC5hZGQoVCksdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9JH10b2dnbGVDb2xsYXBzZSgpe3RoaXMuY29sbGFwc2VkPSF0aGlzLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6e2NvbGxhcHNlZDp0aGlzLmNvbGxhcHNlZH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zZWxlY3RUYWJJdGVtKFQsJCl7dGhpcy5zZWxlY3RlZEl0ZW09VCxULmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIml0ZW0tc2VsZWN0Iix7ZGV0YWlsOntpdGVtOlQsZ3JvdXA6JH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hc3luYyBoYW5kbGVBY3Rpb25DbGljayhUKXtULmNvbmZpcm1NZXNzYWdlJiYhd2luZG93LmNvbmZpcm0oVC5jb25maXJtTWVzc2FnZSl8fChhd2FpdCBULmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFjdGlvbi1jbGljayIse2RldGFpbDp7aXRlbTpUfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX1oYW5kbGVGaWx0ZXJUb2dnbGUoVCl7bGV0ICQ9IVQuYWN0aXZlO1QuYWN0aXZlPSQsVC5vblRvZ2dsZSgkKSx0aGlzLnJlbmRlckNvdW50ZXIrKyx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWx0ZXItdG9nZ2xlIix7ZGV0YWlsOntpdGVtOlQsYWN0aXZlOiR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoVCwkKXtsZXQgVj1ULm9wdGlvbnMuZmluZChVPT5VLmtleT09PSQpO1YmJihWLmNoZWNrZWQ9IVYuY2hlY2tlZCk7bGV0IFI9VC5vcHRpb25zLmZpbHRlcihVPT5VLmNoZWNrZWQpLm1hcChVPT5VLmtleSk7VC5vbkNoYW5nZShSKSx0aGlzLnJlbmRlckNvdW50ZXIrKyx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtdWx0aWZpbHRlci1jaGFuZ2UiLHtkZXRhaWw6e2l0ZW06VCxzZWxlY3RlZEtleXM6Un0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVMaW5rQ2xpY2soVCl7VC5leHRlcm5hbD8/VC5ocmVmLnN0YXJ0c1dpdGgoImh0dHAiKT93aW5kb3cub3BlbihULmhyZWYsIl9ibGFuayIsIm5vb3BlbmVyLG5vcmVmZXJyZXIiKTp3aW5kb3cubG9jYXRpb24uaHJlZj1ULmhyZWYsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGluay1jbGljayIse2RldGFpbDp7aXRlbTpUfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRleHRNZW51KFQsJCl7VXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoVCxbe25hbWU6IlZpZXcgZGV0YWlscyIsYWN0aW9uOmFzeW5jKCk9Pnt9LGljb25OYW1lOiJsdWNpZGU6ZXllIn0se25hbWU6IkVkaXQiLGFjdGlvbjphc3luYygpPT57fSxpY29uTmFtZToibHVjaWRlOnBlbmNpbCJ9XSl9YXN5bmMgZmlyc3RVcGRhdGVkKFQpe2lmKGF3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChUKSx0aGlzLmdyb3Vwcy5sZW5ndGg+MCl7bGV0ICQ9bmV3IFNldCxWPW5ldyBTZXQ7aWYodGhpcy5ncm91cHMuZm9yRWFjaChSPT57Ui5jb2xsYXBzZWQmJiQuYWRkKFIubmFtZSksUi5pdGVtcy5mb3JFYWNoKFU9PntpZigidHlwZSJpbiBVJiZVLnR5cGU9PT0ibXVsdGlGaWx0ZXIiKXtsZXQgcmU9VTtyZS5jb2xsYXBzZWQmJlYuYWRkKHJlLmtleSl9fSl9KSx0aGlzLmNvbGxhcHNlZEdyb3Vwcz0kLHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzPVYsIXRoaXMuc2VsZWN0ZWRJdGVtKWZvcihsZXQgUiBvZiB0aGlzLmdyb3Vwcylmb3IobGV0IFUgb2YgUi5pdGVtcyl7bGV0IHJlPSJ0eXBlImluIFU/VS50eXBlOiJ0YWIiO2lmKHJlPT09InRhYiJ8fHJlPT09dm9pZCAwKXtsZXQgaj1VO2lmKCFqLmRpc2FibGVkKXt0aGlzLnNlbGVjdFRhYkl0ZW0oaixSKTtyZXR1cm59fX19ZWxzZSBpZih0aGlzLnNlbGVjdGlvbk9wdGlvbnMubGVuZ3RoPjApe2xldCAkPXRoaXMuc2VsZWN0aW9uT3B0aW9ucy5maW5kKFY9PiEoImRpdmlkZXIiaW4gVikpO2lmKCQmJiF0aGlzLnNlbGVjdGVkSXRlbSl7bGV0IFY9e2tleTokLmtleSxpY29uTmFtZTokLmljb25OYW1lLGFjdGlvbjokLmFjdGlvbn07dGhpcy5zZWxlY3RUYWJJdGVtKFYpfX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLF8yKHRoaXMseil9c3RhdGlje18yKGksYSl9fTtyZXR1cm4gRT1pfSkoKX0pO3ZhciBhNCx2aSx0MjIsYTIyLHNmdCxuZnQ9YigoKT0+e3VlKCk7c28oKTthND1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LHZpPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSx0MjI9KCgpPT57bGV0IHQ9W2hlKCJkZW1vLWNsb3NlYWJsZS10YWJzIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0ooKV0sZD1bSigpXSxhNCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJ0YWJzImluIGcsZ2V0Omc9PmcudGFicyxzZXQ6KGcseSk9PntnLnRhYnM9eX19LG1ldGFkYXRhOmZ9LG4sbyksYTQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4idGFiQ291bnRlciJpbiBnLGdldDpnPT5nLnRhYkNvdW50ZXIsc2V0OihnLHkpPT57Zy50YWJDb3VudGVyPXl9fSxtZXRhZGF0YTpmfSxjLHApLGE0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmZ9LG51bGwsYSksbD1pPWUudmFsdWUsZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmfSl9I2U9dmkodGhpcyxuLFt7a2V5OiJNYWluIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk1haW4gY2xpY2tlZCIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnMoZil7dGhpcy4jZT1mfSN0PSh2aSh0aGlzLG8pLHZpKHRoaXMsYywwKSk7Z2V0IHRhYkNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGFiQ291bnRlcihmKXt0aGlzLiN0PWZ9c3RhdGljIHN0eWxlcz1bUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CiAgICAgIGJ1dHRvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICBidXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgICB9CiAgICAgIC5pbmZvIHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjAyKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4wMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CiAgICBgXTthZGRUYWIoKXt0aGlzLnRhYkNvdW50ZXIrKztsZXQgZj1gRG9jdW1lbnQgJHt0aGlzLnRhYkNvdW50ZXJ9YDt0aGlzLnRhYnM9Wy4uLnRoaXMudGFicyx7a2V5OmYsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKGAke2Z9IGNsaWNrZWRgKSxjbG9zZWFibGU6ITAsb25DbG9zZTooKT0+dGhpcy5yZW1vdmVUYWIoZil9XX1yZW1vdmVUYWIoZil7dGhpcy50YWJzPXRoaXMudGFicy5maWx0ZXIoZz0+Zy5rZXkhPT1mKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgIC50YWJzPSR7dGhpcy50YWJzfQogICAgICAgIEB0YWItY2xvc2U9JHtmPT50aGlzLnJlbW92ZVRhYihmLmRldGFpbC50YWIua2V5KX0KICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRUYWIoKX0+KyBBZGQgTmV3IFRhYjwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgQ2xpY2sgdGhlIFggYnV0dG9uIG9uIHRhYnMgdG8gY2xvc2UgdGhlbS4gVGhlICJNYWluIiB0YWIgaXMgbm90IGNsb3NlYWJsZS4KICAgICAgICA8YnI+Q3VycmVudCB0YWJzOiAke3RoaXMudGFicy5sZW5ndGh9CiAgICAgIDwvZGl2PgogICAgYH1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdmkodGhpcyxwKX1zdGF0aWN7dmkoaSxhKX19O3JldHVybiBsPWl9KSgpLGEyMj0oKCk9PntsZXQgdD1baGUoImRlbW8tYXV0b2hpZGUtdGFicyIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtKKCldLGQ9W0ooKV0sbD1bSigpXSxhNCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJ0YWJzImluIG0sZ2V0Om09Pm0udGFicyxzZXQ6KG0seCk9PnttLnRhYnM9eH19LG1ldGFkYXRhOnZ9LG4sbyksYTQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+ImF1dG9IaWRlImluIG0sZ2V0Om09Pm0uYXV0b0hpZGUsc2V0OihtLHgpPT57bS5hdXRvSGlkZT14fX0sbWV0YWRhdGE6dn0sYyxwKSxhNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InRocmVzaG9sZCJpbiBtLGdldDptPT5tLnRocmVzaG9sZCxzZXQ6KG0seCk9PnttLnRocmVzaG9sZD14fX0sbWV0YWRhdGE6dn0sZixnKSxhNChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLGEpLHk9aT1lLnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfSNlPXZpKHRoaXMsbixbe2tleToiVGFiIDEiLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVGFiIDEiKX0se2tleToiVGFiIDIiLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVGFiIDIiKX1dKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKHYpe3RoaXMuI2U9dn0jdD0odmkodGhpcyxvKSx2aSh0aGlzLGMsITApKTtnZXQgYXV0b0hpZGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYXV0b0hpZGUodil7dGhpcy4jdD12fSNhPSh2aSh0aGlzLHApLHZpKHRoaXMsZiwxKSk7Z2V0IHRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNhfXNldCB0aHJlc2hvbGQodil7dGhpcy4jYT12fXN0YXRpYyBzdHlsZXM9W1FgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIC50YWJzLWNvbnRhaW5lciBkZWVzLWFwcHVpLXRhYnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3RhYkNvdW50ZXI9KHZpKHRoaXMsZyksMik7YWRkVGFiKCl7dGhpcy50YWJDb3VudGVyKyssdGhpcy50YWJzPVsuLi50aGlzLnRhYnMse2tleTpgVGFiICR7dGhpcy50YWJDb3VudGVyfWAsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKGBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YCl9XX1yZW1vdmVMYXN0VGFiKCl7dGhpcy50YWJzLmxlbmd0aD4wJiYodGhpcy50YWJzPXRoaXMudGFicy5zbGljZSgwLC0xKSl9Y2xlYXJUYWJzKCl7dGhpcy50YWJzPVtdfXJlbmRlcigpe2xldCB2PXRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMudGhyZXNob2xkO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgJHt2P3dgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyIj5UYWJzIGhpZGRlbiAoJHt0aGlzLnRhYnMubGVuZ3RofSB0YWJzIOKJpCB0aHJlc2hvbGQgJHt0aGlzLnRocmVzaG9sZH0pPC9zcGFuPmA6d2A8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy5hdXRvSGlkZX0KICAgICAgICAgICAgICAuYXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLnRocmVzaG9sZH0KICAgICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPmB9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRUYWIoKX0+KyBBZGQgVGFiPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVMYXN0VGFiKCl9Pi0gUmVtb3ZlIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY2xlYXJUYWJzKCl9PkNsZWFyIEFsbDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0wfX0+VGhyZXNob2xkOiAwPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTF9fT5UaHJlc2hvbGQ6IDE8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9Mn19PlRocmVzaG9sZDogMjwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgQXV0by1oaWRlOiAke3RoaXMuYXV0b0hpZGU/Ik9OIjoiT0ZGIn0gfCBUaHJlc2hvbGQ6ICR7dGhpcy50aHJlc2hvbGR9IHwgVGFiczogJHt0aGlzLnRhYnMubGVuZ3RofQogICAgICAgIDxicj5UYWJzIHdpbGwgaGlkZSB3aGVuIGNvdW50IOKJpCB0aHJlc2hvbGQuCiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7dmkoaSxhKX19O3JldHVybiB5PWl9KSgpLHNmdD0oKT0+e2xldCB0PVt7a2V5OiJIb21lIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkhvbWUgY2xpY2tlZCIpfSx7a2V5OiJBbmFseXRpY3MgRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxpbmVDaGFydCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIGNsaWNrZWQiKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVwb3J0cyBjbGlja2VkIil9LHtrZXk6IlVzZXIgU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIGNsaWNrZWQiKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJIZWxwIGNsaWNrZWQiKX1dLGU9W3trZXk6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUHJvZmlsZSBjbGlja2VkIil9LHtrZXk6IlNlY3VyaXR5IixpY29uTmFtZToibHVjaWRlOnNoaWVsZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiU2VjdXJpdHkgY2xpY2tlZCIpfSx7a2V5OiJOb3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk5vdGlmaWNhdGlvbnMgY2xpY2tlZCIpfSx7a2V5OiJJbnRlZ3JhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6bGluayIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiSW50ZWdyYXRpb25zIGNsaWNrZWQiKX0se2tleToiQWR2YW5jZWQiLGljb25OYW1lOiJsdWNpZGU6Y29kZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQWR2YW5jZWQgY2xpY2tlZCIpfV0sYT1be2tleToiQWxsIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBbGwgY2xpY2tlZCIpfSx7a2V5OiJBY3RpdmUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFjdGl2ZSBjbGlja2VkIil9LHtrZXk6IkNvbXBsZXRlZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQ29tcGxldGVkIGNsaWNrZWQiKX0se2tleToiQXJjaGl2ZWQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFyY2hpdmVkIGNsaWNrZWQiKX1dLGk9cj0+d2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07Ij4KICAgICAgJHtyfQogICAgPC9kaXY+CiAgYDtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudHdvLWNvbHVtbiB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwMHB4IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ib3Jpem9udGFsIFRhYnMgd2l0aCBBbmltYXRlZCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJzPSR7dH0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtpKCJTZWxlY3QgYSB0YWIgdG8gc2VlIHRoZSBzbW9vdGggc2xpZGluZyBhbmltYXRpb24gb2YgdGhlIGluZGljYXRvci4gVGhlIGluZGljYXRvciBhdXRvbWF0aWNhbGx5IGFkanVzdHMgaXRzIHdpZHRoIHRvIG1hdGNoIHRoZSB0YWIgY29udGVudCB3aXRoIG1pbmltYWwgcGFkZGluZy4iKX0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DbG9zZWFibGUgVGFicyAoQnJvd3Nlci1zdHlsZSk8L2Rpdj4KICAgICAgICA8ZGVtby1jbG9zZWFibGUtdGFicz48L2RlbW8tY2xvc2VhYmxlLXRhYnM+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXV0by1oaWRlIFRhYnM8L2Rpdj4KICAgICAgICA8ZGVtby1hdXRvaGlkZS10YWJzPjwvZGVtby1hdXRvaGlkZS10YWJzPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlZlcnRpY2FsIFRhYnMgTGF5b3V0PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idHdvLWNvbHVtbiI+CiAgICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJTdHlsZT0keyJ2ZXJ0aWNhbCJ9IC50YWJzPSR7ZX0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgICAke2koIlZlcnRpY2FsIHRhYnMgd29yayBncmVhdCBmb3Igc2V0dGluZ3MgcGFnZXMgYW5kIG5hdmlnYXRpb24gbWVudXMuIFRoZSBhbmltYXRlZCBpbmRpY2F0b3Igc21vb3RobHkgdHJhbnNpdGlvbnMgYmV0d2VlbiBzZWxlY3Rpb25zLiIpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPldpdGhvdXQgSW5kaWNhdG9yPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicyAuc2hvd1RhYkluZGljYXRvcj0keyExfSAudGFicz0ke2F9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7aSgiVGFicyBjYW4gYWxzbyBiZSB1c2VkIHdpdGhvdXQgdGhlIGFuaW1hdGVkIGluZGljYXRvciBieSBzZXR0aW5nIHNob3dUYWJJbmRpY2F0b3IgdG8gZmFsc2UuIil9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH19KTt2YXIgSXMsVDIsb2Z0LG5WPWIoKCk9PntzbygpO3VlKCk7VHQoKTtuZnQoKTtxZSgpO0lzPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sVDI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LG9mdD0oKCk9PntsZXQgdD1baGUoImRlZXMtYXBwdWktdGFicyIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdO3ZhciBFPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOkFycmF5fSldLGQ9W0koe3R5cGU6T2JqZWN0fSldLGw9W0koe3R5cGU6Qm9vbGVhbn0pXSx5PVtJKHt0eXBlOlN0cmluZ30pXSx4PVtJKHt0eXBlOkJvb2xlYW59KV0sRj1bSSh7dHlwZTpOdW1iZXJ9KV0sTj1bSigpXSxxPVtKKCldLElzKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InRhYnMiaW4gJCxnZXQ6JD0+JC50YWJzLHNldDooJCxWKT0+eyQudGFicz1WfX0sbWV0YWRhdGE6VH0sbixvKSxJcyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4ic2VsZWN0ZWRUYWIiaW4gJCxnZXQ6JD0+JC5zZWxlY3RlZFRhYixzZXQ6KCQsVik9PnskLnNlbGVjdGVkVGFiPVZ9fSxtZXRhZGF0YTpUfSxjLHApLElzKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYkluZGljYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InNob3dUYWJJbmRpY2F0b3IiaW4gJCxnZXQ6JD0+JC5zaG93VGFiSW5kaWNhdG9yLHNldDooJCxWKT0+eyQuc2hvd1RhYkluZGljYXRvcj1WfX0sbWV0YWRhdGE6VH0sZixnKSxJcyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYlN0eWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4idGFiU3R5bGUiaW4gJCxnZXQ6JD0+JC50YWJTdHlsZSxzZXQ6KCQsVik9PnskLnRhYlN0eWxlPVZ9fSxtZXRhZGF0YTpUfSx2LG0pLElzKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJhdXRvSGlkZSJpbiAkLGdldDokPT4kLmF1dG9IaWRlLHNldDooJCxWKT0+eyQuYXV0b0hpZGU9Vn19LG1ldGFkYXRhOlR9LE0sUyksSXModGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+ImF1dG9IaWRlVGhyZXNob2xkImluICQsZ2V0OiQ9PiQuYXV0b0hpZGVUaHJlc2hvbGQsc2V0OigkLFYpPT57JC5hdXRvSGlkZVRocmVzaG9sZD1WfX0sbWV0YWRhdGE6VH0sXyxrKSxJcyh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhblNjcm9sbExlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJjYW5TY3JvbGxMZWZ0ImluICQsZ2V0OiQ9PiQuY2FuU2Nyb2xsTGVmdCxzZXQ6KCQsVik9PnskLmNhblNjcm9sbExlZnQ9Vn19LG1ldGFkYXRhOlR9LEwsQSksSXModGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjYW5TY3JvbGxSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+ImNhblNjcm9sbFJpZ2h0ImluICQsZ2V0OiQ9PiQuY2FuU2Nyb2xsUmlnaHQsc2V0OigkLFYpPT57JC5jYW5TY3JvbGxSaWdodD1WfX0sbWV0YWRhdGE6VH0sQyx6KSxJcyhudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpUfSxudWxsLGEpLEU9aT1lLnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPXNmdDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPVQyKHRoaXMsbixbXSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhUKXt0aGlzLiNlPVR9I3Q9KFQyKHRoaXMsbyksVDIodGhpcyxjLG51bGwpKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRUYWIoVCl7dGhpcy4jdD1UfSNhPShUMih0aGlzLHApLFQyKHRoaXMsZiwhMCkpO2dldCBzaG93VGFiSW5kaWNhdG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUYWJJbmRpY2F0b3IoVCl7dGhpcy4jYT1UfSNpPShUMih0aGlzLGcpLFQyKHRoaXMsdiwiaG9yaXpvbnRhbCIpKTtnZXQgdGFiU3R5bGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGFiU3R5bGUoVCl7dGhpcy4jaT1UfSNyPShUMih0aGlzLG0pLFQyKHRoaXMsTSwhMSkpO2dldCBhdXRvSGlkZSgpe3JldHVybiB0aGlzLiNyfXNldCBhdXRvSGlkZShUKXt0aGlzLiNyPVR9I3M9KFQyKHRoaXMsUyksVDIodGhpcyxfLDApKTtnZXQgYXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jc31zZXQgYXV0b0hpZGVUaHJlc2hvbGQoVCl7dGhpcy4jcz1UfSNuPShUMih0aGlzLGspLFQyKHRoaXMsTCwhMSkpO2dldCBjYW5TY3JvbGxMZWZ0KCl7cmV0dXJuIHRoaXMuI259c2V0IGNhblNjcm9sbExlZnQoVCl7dGhpcy4jbj1UfSNvPShUMih0aGlzLEEpLFQyKHRoaXMsQywhMSkpO2dldCBjYW5TY3JvbGxSaWdodCgpe3JldHVybiB0aGlzLiNvfXNldCBjYW5TY3JvbGxSaWdodChUKXt0aGlzLiNvPVR9cmVzaXplT2JzZXJ2ZXI9KFQyKHRoaXMseiksbnVsbCk7c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIuaG9yaXpvbnRhbC13cmFwcGVyIHsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbCBmYWRlIGluZGljYXRvcnMgKi8KICAgICAgLnNjcm9sbC1mYWRlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMXB4OwogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS1sZWZ0IHsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwKICAgICAgICAgICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE2MTYxNiIpfSAwJSwKICAgICAgICAgICR7aC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDApIiwicmdiYSgyMiwyMiwyMiwwKSIpfSAxMDAlKTsKICAgICAgfQoKICAgICAgLnNjcm9sbC1mYWRlLXJpZ2h0IHsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwKICAgICAgICAgICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE2MTYxNiIpfSAwJSwKICAgICAgICAgICR7aC5iZFRoZW1lKCJyZ2JhKDI1NSwyNTUsMjU1LDApIiwicmdiYSgyMiwyMiwyMiwwKSIpfSAxMDAlKTsKICAgICAgfQoKICAgICAgLnNjcm9sbC1mYWRlLnZpc2libGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOwogICAgICAgIHNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLyogU2hvdyBzY3JvbGxiYXIgb24gaG92ZXIgKi8KICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMikiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMikiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9OwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyOmhvdmVyIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjM1KSIsInJnYmEoMjU1LDI1NSwyNTUsMC4zNSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLnZlcnRpY2FsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgIH0KCiAgICAgIC5ob3Jpem9udGFsIC50YWIgewogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IC0ycHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIgLnRhYi1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYiB7CiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDMpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXIgKyAudGFiOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDI0NCwgMjQ0LCAyNDUsIDAuNSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuNSkiKX07CiAgICAgIH0KCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWIuc2VsZWN0ZWRUYWI6OmFmdGVyLAogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiICsgLnRhYjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbCAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAudGFiSW5kaWNhdG9yIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CiAgICAgIAogICAgICAudGFiSW5kaWNhdG9yLm5vLXRyYW5zaXRpb24gewogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIC50YWJzLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDsKICAgICAgICB6LWluZGV4OiAzOwogICAgICB9CgogICAgICAudmVydGljYWwtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudmVydGljYWwtd3JhcHBlciAudGFiSW5kaWNhdG9yIHsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wOCk7CiAgICAgIH0KCiAgICAgIC8qIENsb3NlIGJ1dHRvbiAqLwogICAgICAudGFiLWNsb3NlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAudGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLDAsMCwwLjEpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjEpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VmNDQ0NCIsIiNmODcxNzEiKX07CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiOmhvdmVyIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYiAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gdGhpcy5hdXRvSGlkZSYmdGhpcy50YWJzLmxlbmd0aDw9dGhpcy5hdXRvSGlkZVRocmVzaG9sZD93YGA6d2AKICAgICAgJHt0aGlzLnJlbmRlclRhYnNXcmFwcGVyKCl9CiAgICBgfXJlbmRlclRhYnNXcmFwcGVyKCl7bGV0IFQ9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIiwkPVQ/InRhYnMtd3JhcHBlciBob3Jpem9udGFsLXdyYXBwZXIiOiJ2ZXJ0aWNhbC13cmFwcGVyIixWPWB0YWJzQ29udGFpbmVyICR7dGhpcy50YWJTdHlsZX1gO3JldHVybiBUP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iJHskfSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtZmFkZSBzY3JvbGwtZmFkZS1sZWZ0ICR7dGhpcy5jYW5TY3JvbGxMZWZ0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iJHtWfSIgQHNjcm9sbD0ke3RoaXMuaGFuZGxlU2Nyb2xsfT4KICAgICAgICAgICAgJHt0aGlzLnRhYnMubWFwKFI9PnRoaXMucmVuZGVyVGFiKFIsVCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGwtZmFkZSBzY3JvbGwtZmFkZS1yaWdodCAke3RoaXMuY2FuU2Nyb2xsUmlnaHQ/InZpc2libGUiOiIifSI+PC9kaXY+CiAgICAgICAgICAke3RoaXMuc2hvd1RhYkluZGljYXRvcj93YDxkaXYgY2xhc3M9InRhYkluZGljYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYDp3YAogICAgICA8ZGl2IGNsYXNzPSIkeyR9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSIke1Z9Ij4KICAgICAgICAgICR7dGhpcy50YWJzLm1hcChSPT50aGlzLnJlbmRlclRhYihSLFQpKX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc2hvd1RhYkluZGljYXRvcj93YDxkaXYgY2xhc3M9InRhYkluZGljYXRvciI+PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihULCQpe2xldCBSPWB0YWIgJHtUPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifWAsVT1ULmNsb3NlYWJsZT93YAogICAgICA8c3BhbiBjbGFzcz0idGFiLWNsb3NlIiBAY2xpY2s9IiR7aj0+dGhpcy5jbG9zZVRhYihqLFQpfSI+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6eCJ9IHN0eWxlPSJmb250LXNpemU6IDEycHg7Ij48L2RlZXMtaWNvbj4KICAgICAgPC9zcGFuPgogICAgYDoiIixyZT0kP3dgCiAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY29udGVudCI+CiAgICAgICAgJHt0aGlzLnJlbmRlclRhYkljb24oVCl9CiAgICAgICAgJHtULmtleX0KICAgICAgPC9zcGFuPgogICAgICAke1V9CiAgICBgOndgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJJY29uKFQpfQogICAgICAke1Qua2V5fQogICAgICAke1V9CiAgICBgO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IiR7Un0iCiAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnNlbGVjdFRhYihUKX0iCiAgICAgID4KICAgICAgICAke3JlfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVGFiSWNvbihUKXtyZXR1cm4gVC5pY29uTmFtZT93YDxkZWVzLWljb24gLmljb249JHtULmljb25OYW1lfT48L2RlZXMtaWNvbj5gOiIifXNlbGVjdFRhYihUKXt0aGlzLnNlbGVjdGVkVGFiPVQsVC5hY3Rpb24oKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnNjcm9sbFRhYkludG9WaWV3KFQpfSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDp7dGFiOlR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xvc2VUYWIoVCwkKXtULnN0b3BQcm9wYWdhdGlvbigpLCQub25DbG9zZSYmJC5vbkNsb3NlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNsb3NlIix7ZGV0YWlsOnt0YWI6JH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1maXJzdFVwZGF0ZWQoKXt0aGlzLnRhYnMmJnRoaXMudGFicy5sZW5ndGg+MCYmdGhpcy5zZWxlY3RUYWIodGhpcy50YWJzWzBdKSx0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCl9c2V0dXBSZXNpemVPYnNlcnZlcigpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO3RoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSk7bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7VCYmdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKFQpfWhhbmRsZVNjcm9sbD0oKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX07dXBkYXRlU2Nyb2xsU3RhdGUoKXtsZXQgVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWJzQ29udGFpbmVyLmhvcml6b250YWwiKTtpZighVClyZXR1cm47bGV0ICQ9VC5zY3JvbGxMZWZ0LFY9VC5zY3JvbGxXaWR0aCxSPVQuY2xpZW50V2lkdGgsVT0yO3RoaXMuY2FuU2Nyb2xsTGVmdD0kPlUsdGhpcy5jYW5TY3JvbGxSaWdodD0kPFYtUi1VfXNjcm9sbFRhYkludG9WaWV3KFQpe2lmKHRoaXMudGFiU3R5bGUhPT0iaG9yaXpvbnRhbCIpcmV0dXJuO2xldCAkPXRoaXMudGFicy5pbmRleE9mKFQpO2lmKCQ9PT0tMSlyZXR1cm47bGV0IFY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIiksUj1WPy5xdWVyeVNlbGVjdG9yKGAudGFiOm50aC1jaGlsZCgkeyQrMX0pYCk7aWYoUiYmVil7bGV0IFU9Vi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyZT1SLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JlLmxlZnQ+PVUubGVmdCYmcmUucmlnaHQ8PVUucmlnaHR8fFIuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiJzbW9vdGgiLGJsb2NrOiJuZWFyZXN0IixpbmxpbmU6Im5lYXJlc3QifSl9fWFzeW5jIHVwZGF0ZWQoVCl7c3VwZXIudXBkYXRlZChUKSxULmhhcygidGFicyIpJiZ0aGlzLnRhYnMmJnRoaXMudGFicy5sZW5ndGg+MCYmIXRoaXMuc2VsZWN0ZWRUYWImJnRoaXMuc2VsZWN0VGFiKHRoaXMudGFic1swXSksKFQuaGFzKCJzZWxlY3RlZFRhYiIpfHxULmhhcygidGFicyIpKSYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsIXRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWQmJmRvY3VtZW50LmZvbnRzJiZhd2FpdCBkb2N1bWVudC5mb250cy5yZWFkeSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnVwZGF0ZVRhYkluZGljYXRvcigpLHRoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pKX1pbmRpY2F0b3JJbml0aWFsaXplZD0hMTt1cGRhdGVUYWJJbmRpY2F0b3IoKXtpZighdGhpcy5zaG91bGRTaG93SW5kaWNhdG9yKCkpcmV0dXJuO2xldCBUPXRoaXMuZ2V0U2VsZWN0ZWRUYWJFbGVtZW50KCk7aWYoIVQpcmV0dXJuO2xldCAkPXRoaXMuZ2V0SW5kaWNhdG9yRWxlbWVudCgpOyQmJih0aGlzLmhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKCQpLHRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCI/dGhpcy51cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKCQsVCk6dGhpcy51cGRhdGVWZXJ0aWNhbEluZGljYXRvcigkLFQpLCQuc3R5bGUub3BhY2l0eT0iMSIpfXNob3VsZFNob3dJbmRpY2F0b3IoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZFRhYiYmdGhpcy5zaG93VGFiSW5kaWNhdG9yJiZ0aGlzLnRhYnMuaW5jbHVkZXModGhpcy5zZWxlY3RlZFRhYil9Z2V0U2VsZWN0ZWRUYWJFbGVtZW50KCl7bGV0IFQ9dGhpcy50YWJzLmluZGV4T2YodGhpcy5zZWxlY3RlZFRhYiksVj10aGlzLnRhYlN0eWxlPT09Imhvcml6b250YWwiP2AudGFicy13cmFwcGVyIC50YWJzQ29udGFpbmVyIC50YWI6bnRoLWNoaWxkKCR7VCsxfSlgOmAudmVydGljYWwtd3JhcHBlciAudGFic0NvbnRhaW5lciAudGFiOm50aC1jaGlsZCgke1QrMX0pYDtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoVil9Z2V0SW5kaWNhdG9yRWxlbWVudCgpe3JldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnRhYkluZGljYXRvciIpfWhhbmRsZUluaXRpYWxUcmFuc2l0aW9uKFQpe3RoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWR8fChULmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSx0aGlzLmluZGljYXRvckluaXRpYWxpemVkPSEwLHNldFRpbWVvdXQoKCk9PntULmNsYXNzTGlzdC5yZW1vdmUoIm5vLXRyYW5zaXRpb24iKX0sNTApKX11cGRhdGVIb3Jpem9udGFsSW5kaWNhdG9yKFQsJCl7bGV0IFY9JC5xdWVyeVNlbGVjdG9yKCIudGFiLWNvbnRlbnQiKTtpZighVilyZXR1cm47bGV0IFI9VC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFU9Vi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyZT1VLmxlZnQtUi5sZWZ0LGo9VS53aWR0aCs4LG1lPXJlLTQ7VC5zdHlsZS53aWR0aD1gJHtqfXB4YCxULnN0eWxlLmxlZnQ9YCR7bWV9cHhgfXVwZGF0ZVZlcnRpY2FsSW5kaWNhdG9yKFQsJCl7bGV0IFY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi52ZXJ0aWNhbC13cmFwcGVyIC50YWJzQ29udGFpbmVyIik7ViYmKFQuc3R5bGUudG9wPWAkeyQub2Zmc2V0VG9wK1Yub2Zmc2V0VG9wfXB4YCxULnN0eWxlLmhlaWdodD1gJHskLmNsaWVudEhlaWdodH1weGApfXN0YXRpY3tUMihpLGEpfX07cmV0dXJuIEU9aX0pKCl9KTt2YXIgUGwsWmksbGZ0LG9WPWIoKCk9PntzbygpO3VlKCk7VHQoKTtuVigpO3FlKCk7UGw9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxaaT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sbGZ0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1hcHB1aS1tYWluY29udGVudCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdO3ZhciBGPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOkFycmF5fSldLGQ9W0koe3R5cGU6T2JqZWN0fSldLGw9W0koe3R5cGU6Qm9vbGVhbn0pXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpOdW1iZXJ9KV0sUGwodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idGFicyJpbiBrLGdldDprPT5rLnRhYnMsc2V0OihrLE4pPT57ay50YWJzPU59fSxtZXRhZGF0YTpffSxuLG8pLFBsKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzZWxlY3RlZFRhYiJpbiBrLGdldDprPT5rLnNlbGVjdGVkVGFiLHNldDooayxOKT0+e2suc2VsZWN0ZWRUYWI9Tn19LG1ldGFkYXRhOl99LGMscCksUGwodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNob3dUYWJzImluIGssZ2V0Oms9Pmsuc2hvd1RhYnMsc2V0OihrLE4pPT57ay5zaG93VGFicz1OfX0sbWV0YWRhdGE6X30sZixnKSxQbCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnNBdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InRhYnNBdXRvSGlkZSJpbiBrLGdldDprPT5rLnRhYnNBdXRvSGlkZSxzZXQ6KGssTik9PntrLnRhYnNBdXRvSGlkZT1OfX0sbWV0YWRhdGE6X30sdixtKSxQbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnNBdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InRhYnNBdXRvSGlkZVRocmVzaG9sZCJpbiBrLGdldDprPT5rLnRhYnNBdXRvSGlkZVRocmVzaG9sZCxzZXQ6KGssTik9PntrLnRhYnNBdXRvSGlkZVRocmVzaG9sZD1OfX0sbWV0YWRhdGE6X30sTSxTKSxQbChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLGEpLEY9aT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPSgpPT53YAogICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnQKICAgICAgLnRhYnM9JHtbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXciKX0se2tleToiRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEZXRhaWxzIil9LHtrZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpfV19CiAgICA+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6IDQwcHg7IGNvbG9yOiAjY2NjOyI+CiAgICAgICAgPGgxPk1haW4gQ29udGVudCBBcmVhPC9oMT4KICAgICAgICA8cD5UaGlzIGlzIHdoZXJlIHlvdXIgYXBwbGljYXRpb24gY29udGVudCBnb2VzLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPVppKHRoaXMsbixbe2tleToiXHUyNkEwXHVGRTBGIFBsZWFzZSBzZXQgdGFicyIsYWN0aW9uOigpPT5jb25zb2xlLndhcm4oIk5vIHRhYnMgY29uZmlndXJlZCBmb3IgbWFpbmNvbnRlbnQiKX1dKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKF8pe3RoaXMuI2U9X30jdD0oWmkodGhpcyxvKSxaaSh0aGlzLGMsbnVsbCkpO2dldCBzZWxlY3RlZFRhYigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFRhYihfKXt0aGlzLiN0PV99I2E9KFppKHRoaXMscCksWmkodGhpcyxmLCEwKSk7Z2V0IHNob3dUYWJzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUYWJzKF8pe3RoaXMuI2E9X30jaT0oWmkodGhpcyxnKSxaaSh0aGlzLHYsITEpKTtnZXQgdGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRhYnNBdXRvSGlkZShfKXt0aGlzLiNpPV99I3I9KFppKHRoaXMsbSksWmkodGhpcyxNLDApKTtnZXQgdGFic0F1dG9IaWRlVGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRhYnNBdXRvSGlkZVRocmVzaG9sZChfKXt0aGlzLiNyPV99c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTYxNjE2Iil9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KCiAgICAgIC50b3BiYXIgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAudG9wYmFyID4gKiB7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmNvbnRlbnQtYXJlYSB7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICA6aG9zdChbbm90YWJzXSkgLnRvcGJhciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BiYXIiPgogICAgICAgICAgPGRlZXMtYXBwdWktdGFicwogICAgICAgICAgICAudGFicz0ke3RoaXMudGFic30KICAgICAgICAgICAgLnNlbGVjdGVkVGFiPSR7dGhpcy5zZWxlY3RlZFRhYn0KICAgICAgICAgICAgLnNob3dUYWJJbmRpY2F0b3I9JHshMH0KICAgICAgICAgICAgLnRhYlN0eWxlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuYXV0b0hpZGU9JHt0aGlzLnRhYnNBdXRvSGlkZX0KICAgICAgICAgICAgLmF1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy50YWJzQXV0b0hpZGVUaHJlc2hvbGR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7Xz0+dGhpcy5oYW5kbGVUYWJTZWxlY3QoXyl9CiAgICAgICAgICAgIEB0YWItY2xvc2U9JHtfPT50aGlzLmhhbmRsZVRhYkNsb3NlKF8pfQogICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgICAgICA8c2xvdCBuYW1lPSJjb250ZW50Ij48L3Nsb3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVUYWJTZWxlY3QoXyl7dGhpcy5zZWxlY3RlZFRhYj1fLmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLXNlbGVjdCIse2RldGFpbDpfLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVRhYkNsb3NlKF8pe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDpfLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXVwZGF0ZWQoXyl7c3VwZXIudXBkYXRlZChfKSxfLmhhcygic2hvd1RhYnMiKSYmKHRoaXMuc2hvd1RhYnM/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoIm5vdGFicyIpOnRoaXMuc2V0QXR0cmlidXRlKCJub3RhYnMiLCIiKSl9YXN5bmMgZmlyc3RVcGRhdGVkKF8pe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChfKSx0aGlzLnNob3dUYWJzfHx0aGlzLnNldEF0dHJpYnV0ZSgibm90YWJzIiwiIik7bGV0IGs9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktdGFicyIpO2smJmF3YWl0IGsudXBkYXRlQ29tcGxldGV9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFppKHRoaXMsUyl9c3RhdGlje1ppKGksYSl9fTtyZXR1cm4gRj1pfSkoKX0pO3ZhciBFdCxIZSxjZnQsZGZ0PWIoKCk9Pnt1ZSgpO1R0KCk7c28oKTtRdXQoKTtxZSgpO2lWKCk7X3EoKTtMcSgpO3JWKCk7c1YoKTtvVigpO01xKCk7RXQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxIZT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sY2Z0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1hcHB1aSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXSxrZSxXPVtdLEQ9W10sTyxaPVtdLFk9W10sb2UsZ2U9W10sYmU9W10sJGUsQj1bXSxQPVtdLEssZmU9W10sZGU9W10sX2UscGU9W10sdGU9W10semUsRmU9W10sV2U9W10seWUsZWU9W10sYWU9W10sdmUsUGU9W10sVmU9W10seHQsb3Q9W10sTHQ9W10sWnQsaWU9W10sc2U9W10sVGUsbHQ9W10sY3Q9W10sZjEsZWk9W10sWHI9W10sS3IsSWU9W10sWmU9W10sTDEseTI9W10sRTI9W10sdGEsUDI9W10sZW49W10sdG4sYW49W10sWmw9W10sWGwsTWU9W10sbGU9W10sRGUsTjE9W10sc3Q9W10sbDEsYWE9W10sdHQ9W10sVjEsaWE9W10sQ2k9W10sS2wsbGQ9W10sUWw9W10sY2QsZFU9W10scFU9W107dmFyIGhVPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgRz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOkFycmF5fSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6U3RyaW5nfSldLHk9W0koe3R5cGU6Qm9vbGVhbn0pXSx4PVtJKHt0eXBlOk9iamVjdH0pXSxGPVtJKHt0eXBlOkFycmF5fSldLE49W0koe3R5cGU6Qm9vbGVhbn0pXSxxPVtJKHt0eXBlOlN0cmluZ30pXSxFPVtJKHt0eXBlOlN0cmluZ30pXSxWPVtJKHt0eXBlOkFycmF5fSldLHJlPVtJKHt0eXBlOkFycmF5fSldLHdlPVtJKHt0eXBlOkFycmF5fSldLGtlPVtJKHt0eXBlOk9iamVjdH0pXSxPPVtJKHt0eXBlOlN0cmluZ30pXSxvZT1bSSh7dHlwZTpBcnJheX0pXSwkZT1bSSh7dHlwZTpPYmplY3R9KV0sSz1bSSh7dHlwZTpCb29sZWFufSldLF9lPVtJKHt0eXBlOkJvb2xlYW59KV0semU9W0koe3R5cGU6Qm9vbGVhbn0pXSx5ZT1bSSh7dHlwZTpCb29sZWFufSldLHZlPVtJKHt0eXBlOkJvb2xlYW59KV0seHQ9W0koe3R5cGU6Qm9vbGVhbn0pXSxadD1bSSh7dHlwZTpOdW1iZXJ9KV0sVGU9W0ooKV0sZjE9W0ooKV0sS3I9W0koe3R5cGU6QXJyYXl9KV0sTDE9W0koe3R5cGU6T2JqZWN0fSldLHRhPVtKKCldLHRuPVtKKCldLFhsPVtKKCldLERlPVtKKCldLGwxPVtKKCldLFYxPVtKKCldLEtsPVtKKCldLGNkPVtKKCldLEV0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iYXBwYmFyTWVudUl0ZW1zImluIFgsZ2V0Olg9PlguYXBwYmFyTWVudUl0ZW1zLHNldDooWCxTZSk9PntYLmFwcGJhck1lbnVJdGVtcz1TZX19LG1ldGFkYXRhOkd9LG4sbyksRXQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJCcmVhZGNydW1icyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImFwcGJhckJyZWFkY3J1bWJzImluIFgsZ2V0Olg9PlguYXBwYmFyQnJlYWRjcnVtYnMsc2V0OihYLFNlKT0+e1guYXBwYmFyQnJlYWRjcnVtYnM9U2V9fSxtZXRhZGF0YTpHfSxjLHApLEV0KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IiaW4gWCxnZXQ6WD0+WC5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yLHNldDooWCxTZSk9PntYLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3I9U2V9fSxtZXRhZGF0YTpHfSxmLGcpLEV0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzImluIFgsZ2V0Olg9PlguYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzLHNldDooWCxTZSk9PntYLmFwcGJhclNob3dXaW5kb3dDb250cm9scz1TZX19LG1ldGFkYXRhOkd9LHYsbSksRXQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJVc2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iYXBwYmFyVXNlciJpbiBYLGdldDpYPT5YLmFwcGJhclVzZXIsc2V0OihYLFNlKT0+e1guYXBwYmFyVXNlcj1TZX19LG1ldGFkYXRhOkd9LE0sUyksRXQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJQcm9maWxlTWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iYXBwYmFyUHJvZmlsZU1lbnVJdGVtcyJpbiBYLGdldDpYPT5YLmFwcGJhclByb2ZpbGVNZW51SXRlbXMsc2V0OihYLFNlKT0+e1guYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1TZX19LG1ldGFkYXRhOkd9LF8sayksRXQodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJTaG93U2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iYXBwYmFyU2hvd1NlYXJjaCJpbiBYLGdldDpYPT5YLmFwcGJhclNob3dTZWFyY2gsc2V0OihYLFNlKT0+e1guYXBwYmFyU2hvd1NlYXJjaD1TZX19LG1ldGFkYXRhOkd9LEwsQSksRXQodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUxvZ29JY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ibWFpbm1lbnVMb2dvSWNvbiJpbiBYLGdldDpYPT5YLm1haW5tZW51TG9nb0ljb24sc2V0OihYLFNlKT0+e1gubWFpbm1lbnVMb2dvSWNvbj1TZX19LG1ldGFkYXRhOkd9LEMseiksRXQodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUxvZ29UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ibWFpbm1lbnVMb2dvVGV4dCJpbiBYLGdldDpYPT5YLm1haW5tZW51TG9nb1RleHQsc2V0OihYLFNlKT0+e1gubWFpbm1lbnVMb2dvVGV4dD1TZX19LG1ldGFkYXRhOkd9LFQsJCksRXQodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+Im1haW5tZW51R3JvdXBzImluIFgsZ2V0Olg9PlgubWFpbm1lbnVHcm91cHMsc2V0OihYLFNlKT0+e1gubWFpbm1lbnVHcm91cHM9U2V9fSxtZXRhZGF0YTpHfSxSLFUpLEV0KHRoaXMsbnVsbCxyZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Qm90dG9tVGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+Im1haW5tZW51Qm90dG9tVGFicyJpbiBYLGdldDpYPT5YLm1haW5tZW51Qm90dG9tVGFicyxzZXQ6KFgsU2UpPT57WC5tYWlubWVudUJvdHRvbVRhYnM9U2V9fSxtZXRhZGF0YTpHfSxqLG1lKSxFdCh0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudVRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJtYWlubWVudVRhYnMiaW4gWCxnZXQ6WD0+WC5tYWlubWVudVRhYnMsc2V0OihYLFNlKT0+e1gubWFpbm1lbnVUYWJzPVNlfX0sbWV0YWRhdGE6R30sSCxjZSksRXQodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVTZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+Im1haW5tZW51U2VsZWN0ZWRUYWIiaW4gWCxnZXQ6WD0+WC5tYWlubWVudVNlbGVjdGVkVGFiLHNldDooWCxTZSk9PntYLm1haW5tZW51U2VsZWN0ZWRUYWI9U2V9fSxtZXRhZGF0YTpHfSxXLEQpLEV0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJzZWNvbmRhcnltZW51SGVhZGluZyJpbiBYLGdldDpYPT5YLnNlY29uZGFyeW1lbnVIZWFkaW5nLHNldDooWCxTZSk9PntYLnNlY29uZGFyeW1lbnVIZWFkaW5nPVNlfX0sbWV0YWRhdGE6R30sWixZKSxFdCh0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51R3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ic2Vjb25kYXJ5bWVudUdyb3VwcyJpbiBYLGdldDpYPT5YLnNlY29uZGFyeW1lbnVHcm91cHMsc2V0OihYLFNlKT0+e1guc2Vjb25kYXJ5bWVudUdyb3Vwcz1TZX19LG1ldGFkYXRhOkd9LGdlLGJlKSxFdCh0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ic2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSJpbiBYLGdldDpYPT5YLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0sc2V0OihYLFNlKT0+e1guc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT1TZX19LG1ldGFkYXRhOkd9LEIsUCksRXQodGhpcyxudWxsLEsse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+Im1haW5tZW51Q29sbGFwc2VkImluIFgsZ2V0Olg9PlgubWFpbm1lbnVDb2xsYXBzZWQsc2V0OihYLFNlKT0+e1gubWFpbm1lbnVDb2xsYXBzZWQ9U2V9fSxtZXRhZGF0YTpHfSxmZSxkZSksRXQodGhpcyxudWxsLF9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+InNlY29uZGFyeW1lbnVDb2xsYXBzZWQiaW4gWCxnZXQ6WD0+WC5zZWNvbmRhcnltZW51Q29sbGFwc2VkLHNldDooWCxTZSk9PntYLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQ9U2V9fSxtZXRhZGF0YTpHfSxwZSx0ZSksRXQodGhpcyxudWxsLHplLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ibWFpbm1lbnVWaXNpYmxlImluIFgsZ2V0Olg9PlgubWFpbm1lbnVWaXNpYmxlLHNldDooWCxTZSk9PntYLm1haW5tZW51VmlzaWJsZT1TZX19LG1ldGFkYXRhOkd9LEZlLFdlKSxFdCh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51VmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+InNlY29uZGFyeW1lbnVWaXNpYmxlImluIFgsZ2V0Olg9Plguc2Vjb25kYXJ5bWVudVZpc2libGUsc2V0OihYLFNlKT0+e1guc2Vjb25kYXJ5bWVudVZpc2libGU9U2V9fSxtZXRhZGF0YTpHfSxlZSxhZSksRXQodGhpcyxudWxsLHZlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRUYWJzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+Im1haW5jb250ZW50VGFic1Zpc2libGUiaW4gWCxnZXQ6WD0+WC5tYWluY29udGVudFRhYnNWaXNpYmxlLHNldDooWCxTZSk9PntYLm1haW5jb250ZW50VGFic1Zpc2libGU9U2V9fSxtZXRhZGF0YTpHfSxQZSxWZSksRXQodGhpcyxudWxsLHh0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFRhYnNBdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImNvbnRlbnRUYWJzQXV0b0hpZGUiaW4gWCxnZXQ6WD0+WC5jb250ZW50VGFic0F1dG9IaWRlLHNldDooWCxTZSk9PntYLmNvbnRlbnRUYWJzQXV0b0hpZGU9U2V9fSxtZXRhZGF0YTpHfSxvdCxMdCksRXQodGhpcyxudWxsLFp0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gWCxnZXQ6WD0+WC5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkLHNldDooWCxTZSk9PntYLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9U2V9fSxtZXRhZGF0YTpHfSxpZSxzZSksRXQodGhpcyxudWxsLFRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZpdHlMb2dWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iYWN0aXZpdHlMb2dWaXNpYmxlImluIFgsZ2V0Olg9PlguYWN0aXZpdHlMb2dWaXNpYmxlLHNldDooWCxTZSk9PntYLmFjdGl2aXR5TG9nVmlzaWJsZT1TZX19LG1ldGFkYXRhOkd9LGx0LGN0KSxFdCh0aGlzLG51bGwsZjEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ0NvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBYLGdldDpYPT5YLmFjdGl2aXR5TG9nQ291bnQsc2V0OihYLFNlKT0+e1guYWN0aXZpdHlMb2dDb3VudD1TZX19LG1ldGFkYXRhOkd9LGVpLFhyKSxFdCh0aGlzLG51bGwsS3Ise2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWluY29udGVudFRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJtYWluY29udGVudFRhYnMiaW4gWCxnZXQ6WD0+WC5tYWluY29udGVudFRhYnMsc2V0OihYLFNlKT0+e1gubWFpbmNvbnRlbnRUYWJzPVNlfX0sbWV0YWRhdGE6R30sSWUsWmUpLEV0KHRoaXMsbnVsbCxMMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50U2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJtYWluY29udGVudFNlbGVjdGVkVGFiImluIFgsZ2V0Olg9PlgubWFpbmNvbnRlbnRTZWxlY3RlZFRhYixzZXQ6KFgsU2UpPT57WC5tYWluY29udGVudFNlbGVjdGVkVGFiPVNlfX0sbWV0YWRhdGE6R30seTIsRTIpLEV0KHRoaXMsbnVsbCx0YSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WD0+ImFwcGJhciJpbiBYLGdldDpYPT5YLmFwcGJhcixzZXQ6KFgsU2UpPT57WC5hcHBiYXI9U2V9fSxtZXRhZGF0YTpHfSxQMixlbiksRXQodGhpcyxudWxsLHRuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJtYWlubWVudSJpbiBYLGdldDpYPT5YLm1haW5tZW51LHNldDooWCxTZSk9PntYLm1haW5tZW51PVNlfX0sbWV0YWRhdGE6R30sYW4sWmwpLEV0KHRoaXMsbnVsbCxYbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlY29uZGFyeW1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJzZWNvbmRhcnltZW51ImluIFgsZ2V0Olg9Plguc2Vjb25kYXJ5bWVudSxzZXQ6KFgsU2UpPT57WC5zZWNvbmRhcnltZW51PVNlfX0sbWV0YWRhdGE6R30sTWUsbGUpLEV0KHRoaXMsbnVsbCxEZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4ibWFpbmNvbnRlbnQiaW4gWCxnZXQ6WD0+WC5tYWluY29udGVudCxzZXQ6KFgsU2UpPT57WC5tYWluY29udGVudD1TZX19LG1ldGFkYXRhOkd9LE4xLHN0KSxFdCh0aGlzLG51bGwsbDEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eWxvZ0VsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJhY3Rpdml0eWxvZ0VsZW1lbnQiaW4gWCxnZXQ6WD0+WC5hY3Rpdml0eWxvZ0VsZW1lbnQsc2V0OihYLFNlKT0+e1guYWN0aXZpdHlsb2dFbGVtZW50PVNlfX0sbWV0YWRhdGE6R30sYWEsdHQpLEV0KHRoaXMsbnVsbCxWMSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbWJhckVsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJib3R0b21iYXJFbGVtZW50ImluIFgsZ2V0Olg9PlguYm90dG9tYmFyRWxlbWVudCxzZXQ6KFgsU2UpPT57WC5ib3R0b21iYXJFbGVtZW50PVNlfX0sbWV0YWRhdGE6R30saWEsQ2kpLEV0KHRoaXMsbnVsbCxLbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJvdHRvbWJhclZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlg9PiJib3R0b21iYXJWaXNpYmxlImluIFgsZ2V0Olg9PlguYm90dG9tYmFyVmlzaWJsZSxzZXQ6KFgsU2UpPT57WC5ib3R0b21iYXJWaXNpYmxlPVNlfX0sbWV0YWRhdGE6R30sbGQsUWwpLEV0KHRoaXMsbnVsbCxjZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpYPT4iY3VycmVudFZpZXciaW4gWCxnZXQ6WD0+WC5jdXJyZW50VmlldyxzZXQ6KFgsU2UpPT57WC5jdXJyZW50Vmlldz1TZX19LG1ldGFkYXRhOkd9LGRVLHBVKSxFdChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpHfSxudWxsLGEpLGhVPWk9ZS52YWx1ZSxHJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkd9KX1zdGF0aWMgZGVtbz1LdXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTt2aWV3TGlmZWN5Y2xlJD1uZXcgTXQuc21hcnRyeC5yeGpzLlN1YmplY3Q7dmlld0NoYW5nZWQkPW5ldyBNdC5zbWFydHJ4LnJ4anMuU3ViamVjdDsjZT1IZSh0aGlzLG4sW10pO2dldCBhcHBiYXJNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgYXBwYmFyTWVudUl0ZW1zKEcpe3RoaXMuI2U9R30jdD0oSGUodGhpcyxvKSxIZSh0aGlzLGMsIiIpKTtnZXQgYXBwYmFyQnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYXBwYmFyQnJlYWRjcnVtYnMoRyl7dGhpcy4jdD1HfSNhPShIZSh0aGlzLHApLEhlKHRoaXMsZiwiID4gIikpO2dldCBhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IoRyl7dGhpcy4jYT1HfSNpPShIZSh0aGlzLGcpLEhlKHRoaXMsdiwhMCkpO2dldCBhcHBiYXJTaG93V2luZG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzKEcpe3RoaXMuI2k9R30jcj0oSGUodGhpcyxtKSxIZSh0aGlzLE0sdm9pZCAwKSk7Z2V0IGFwcGJhclVzZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYXBwYmFyVXNlcihHKXt0aGlzLiNyPUd9I3M9KEhlKHRoaXMsUyksSGUodGhpcyxfLFtdKSk7Z2V0IGFwcGJhclByb2ZpbGVNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgYXBwYmFyUHJvZmlsZU1lbnVJdGVtcyhHKXt0aGlzLiNzPUd9I249KEhlKHRoaXMsayksSGUodGhpcyxMLCExKSk7Z2V0IGFwcGJhclNob3dTZWFyY2goKXtyZXR1cm4gdGhpcy4jbn1zZXQgYXBwYmFyU2hvd1NlYXJjaChHKXt0aGlzLiNuPUd9I289KEhlKHRoaXMsQSksSGUodGhpcyxDLCIiKSk7Z2V0IG1haW5tZW51TG9nb0ljb24oKXtyZXR1cm4gdGhpcy4jb31zZXQgbWFpbm1lbnVMb2dvSWNvbihHKXt0aGlzLiNvPUd9I2w9KEhlKHRoaXMseiksSGUodGhpcyxULCIiKSk7Z2V0IG1haW5tZW51TG9nb1RleHQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbWFpbm1lbnVMb2dvVGV4dChHKXt0aGlzLiNsPUd9I2M9KEhlKHRoaXMsJCksSGUodGhpcyxSLFtdKSk7Z2V0IG1haW5tZW51R3JvdXBzKCl7cmV0dXJuIHRoaXMuI2N9c2V0IG1haW5tZW51R3JvdXBzKEcpe3RoaXMuI2M9R30jZD0oSGUodGhpcyxVKSxIZSh0aGlzLGosW10pKTtnZXQgbWFpbm1lbnVCb3R0b21UYWJzKCl7cmV0dXJuIHRoaXMuI2R9c2V0IG1haW5tZW51Qm90dG9tVGFicyhHKXt0aGlzLiNkPUd9I3A9KEhlKHRoaXMsbWUpLEhlKHRoaXMsSCxbXSkpO2dldCBtYWlubWVudVRhYnMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbWFpbm1lbnVUYWJzKEcpe3RoaXMuI3A9R30jaD0oSGUodGhpcyxjZSksSGUodGhpcyxXLHZvaWQgMCkpO2dldCBtYWlubWVudVNlbGVjdGVkVGFiKCl7cmV0dXJuIHRoaXMuI2h9c2V0IG1haW5tZW51U2VsZWN0ZWRUYWIoRyl7dGhpcy4jaD1HfSN1PShIZSh0aGlzLEQpLEhlKHRoaXMsWiwiIikpO2dldCBzZWNvbmRhcnltZW51SGVhZGluZygpe3JldHVybiB0aGlzLiN1fXNldCBzZWNvbmRhcnltZW51SGVhZGluZyhHKXt0aGlzLiN1PUd9I2Y9KEhlKHRoaXMsWSksSGUodGhpcyxnZSxbXSkpO2dldCBzZWNvbmRhcnltZW51R3JvdXBzKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHNlY29uZGFyeW1lbnVHcm91cHMoRyl7dGhpcy4jZj1HfSNtPShIZSh0aGlzLGJlKSxIZSh0aGlzLEIsdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW0oKXtyZXR1cm4gdGhpcy4jbX1zZXQgc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbShHKXt0aGlzLiNtPUd9I2c9KEhlKHRoaXMsUCksSGUodGhpcyxmZSwhMSkpO2dldCBtYWlubWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNnfXNldCBtYWlubWVudUNvbGxhcHNlZChHKXt0aGlzLiNnPUd9I2I9KEhlKHRoaXMsZGUpLEhlKHRoaXMscGUsITEpKTtnZXQgc2Vjb25kYXJ5bWVudUNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNifXNldCBzZWNvbmRhcnltZW51Q29sbGFwc2VkKEcpe3RoaXMuI2I9R30jdj0oSGUodGhpcyx0ZSksSGUodGhpcyxGZSwhMCkpO2dldCBtYWlubWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgbWFpbm1lbnVWaXNpYmxlKEcpe3RoaXMuI3Y9R30jeT0oSGUodGhpcyxXZSksSGUodGhpcyxlZSwhMCkpO2dldCBzZWNvbmRhcnltZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiN5fXNldCBzZWNvbmRhcnltZW51VmlzaWJsZShHKXt0aGlzLiN5PUd9I3g9KEhlKHRoaXMsYWUpLEhlKHRoaXMsUGUsITApKTtnZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZSgpe3JldHVybiB0aGlzLiN4fXNldCBtYWluY29udGVudFRhYnNWaXNpYmxlKEcpe3RoaXMuI3g9R30jdz0oSGUodGhpcyxWZSksSGUodGhpcyxvdCwhMSkpO2dldCBjb250ZW50VGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbnRlbnRUYWJzQXV0b0hpZGUoRyl7dGhpcy4jdz1HfSNNPShIZSh0aGlzLEx0KSxIZSh0aGlzLGllLDApKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNNfXNldCBjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkKEcpe3RoaXMuI009R30jej0oSGUodGhpcyxzZSksSGUodGhpcyxsdCwhMSkpO2dldCBhY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jen1zZXQgYWN0aXZpdHlMb2dWaXNpYmxlKEcpe3RoaXMuI3o9R30jaz0oSGUodGhpcyxjdCksSGUodGhpcyxlaSwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4ja31zZXQgYWN0aXZpdHlMb2dDb3VudChHKXt0aGlzLiNrPUd9I1M9KEhlKHRoaXMsWHIpLEhlKHRoaXMsSWUsW10pKTtnZXQgbWFpbmNvbnRlbnRUYWJzKCl7cmV0dXJuIHRoaXMuI1N9c2V0IG1haW5jb250ZW50VGFicyhHKXt0aGlzLiNTPUd9I0M9KEhlKHRoaXMsWmUpLEhlKHRoaXMseTIsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jQ31zZXQgbWFpbmNvbnRlbnRTZWxlY3RlZFRhYihHKXt0aGlzLiNDPUd9I189KEhlKHRoaXMsRTIpLEhlKHRoaXMsUDIsdm9pZCAwKSk7Z2V0IGFwcGJhcigpe3JldHVybiB0aGlzLiNffXNldCBhcHBiYXIoRyl7dGhpcy4jXz1HfSNUPShIZSh0aGlzLGVuKSxIZSh0aGlzLGFuLHZvaWQgMCkpO2dldCBtYWlubWVudSgpe3JldHVybiB0aGlzLiNUfXNldCBtYWlubWVudShHKXt0aGlzLiNUPUd9I0w9KEhlKHRoaXMsWmwpLEhlKHRoaXMsTWUsdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnUoKXtyZXR1cm4gdGhpcy4jTH1zZXQgc2Vjb25kYXJ5bWVudShHKXt0aGlzLiNMPUd9IyQ9KEhlKHRoaXMsbGUpLEhlKHRoaXMsTjEsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50KCl7cmV0dXJuIHRoaXMuIyR9c2V0IG1haW5jb250ZW50KEcpe3RoaXMuIyQ9R30jQT0oSGUodGhpcyxzdCksSGUodGhpcyxhYSx2b2lkIDApKTtnZXQgYWN0aXZpdHlsb2dFbGVtZW50KCl7cmV0dXJuIHRoaXMuI0F9c2V0IGFjdGl2aXR5bG9nRWxlbWVudChHKXt0aGlzLiNBPUd9I0Q9KEhlKHRoaXMsdHQpLEhlKHRoaXMsaWEsdm9pZCAwKSk7Z2V0IGJvdHRvbWJhckVsZW1lbnQoKXtyZXR1cm4gdGhpcy4jRH1zZXQgYm90dG9tYmFyRWxlbWVudChHKXt0aGlzLiNEPUd9I0U9KEhlKHRoaXMsQ2kpLEhlKHRoaXMsbGQsITApKTtnZXQgYm90dG9tYmFyVmlzaWJsZSgpe3JldHVybiB0aGlzLiNFfXNldCBib3R0b21iYXJWaXNpYmxlKEcpe3RoaXMuI0U9R30jUD0oSGUodGhpcyxRbCksSGUodGhpcyxkVSx2b2lkIDApKTtnZXQgY3VycmVudFZpZXcoKXtyZXR1cm4gdGhpcy4jUH1zZXQgY3VycmVudFZpZXcoRyl7dGhpcy4jUD1HfXZpZXdSZWdpc3RyeT0oSGUodGhpcyxwVSksbmV3IHo4KTtyb3V0ZXJDbGVhbnVwPW51bGw7c2VhcmNoQ2FsbGJhY2s9bnVsbDtzdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9OwogICAgICB9CiAgICAgIC5tYWluZ3JpZCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHggLSAyNHB4KTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIC8qIGdyaWQtdGVtcGxhdGUtY29sdW1ucyBzZXQgZHluYW1pY2FsbHkgaW4gdGVtcGxhdGUgKi8KICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgMC4zcyBlYXNlLCBoZWlnaHQgMC4zcyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIDpob3N0KFtib3R0b21iYXItaGlkZGVuXSkgLm1haW5ncmlkIHsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHgpOwogICAgICB9CgogICAgICBkZWVzLWFwcHVpLWJvdHRvbWJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IDQ7CiAgICAgIH0KCiAgICAgIC8qIFotaW5kZXggbGF5ZXJpbmcgZm9yIHByb3BlciBzdGFja2luZyAqLwogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLW1haW5tZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWluY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy5oaWRkZW4gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nLnZpc2libGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICB9CgogICAgICAvKiBWaWV3IGNvbnRhaW5lciBmb3IgZHluYW1pY2FsbHkgbG9hZGVkIHZpZXdzICovCiAgICAgIC52aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KCiAgICAgIC52aWV3LWNvbnRhaW5lcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmFwcGJhck1lbnVJdGVtc30KICAgICAgICAuYnJlYWRjcnVtYnM9JHt0aGlzLmFwcGJhckJyZWFkY3J1bWJzfQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yfQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9sc30KICAgICAgICAudXNlcj0ke3RoaXMuYXBwYmFyVXNlcn0KICAgICAgICAucHJvZmlsZU1lbnVJdGVtcz0ke3RoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAuc2hvd1NlYXJjaD0ke3RoaXMuYXBwYmFyU2hvd1NlYXJjaH0KICAgICAgICAuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlPSR7ITB9CiAgICAgICAgLmFjdGl2aXR5TG9nQ291bnQ9JHt0aGlzLmFjdGl2aXR5TG9nQ291bnR9CiAgICAgICAgLmFjdGl2aXR5TG9nQWN0aXZlPSR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9CiAgICAgICAgQG1lbnUtc2VsZWN0PSR7Rz0+dGhpcy5oYW5kbGVBcHBiYXJNZW51U2VsZWN0KEcpfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7Rz0+dGhpcy5oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoRyl9CiAgICAgICAgQHNlYXJjaC1jbGljaz0keygpPT50aGlzLmhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl9CiAgICAgICAgQHNlYXJjaC1xdWVyeT0ke0c9PnRoaXMuaGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoRyl9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PnRoaXMuaGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl9CiAgICAgICAgQHByb2ZpbGUtbWVudS1zZWxlY3Q9JHtHPT50aGlzLmhhbmRsZUFwcGJhclByb2ZpbGVNZW51U2VsZWN0KEcpfQogICAgICAgIEBhY3Rpdml0eS10b2dnbGU9JHsoKT0+dGhpcy50b2dnbGVBY3Rpdml0eUxvZygpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmdyaWQiIHN0eWxlPSJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byAxZnIgJHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT8iMjgwcHgiOiIwcHgifTsiPgogICAgICAgICR7dGhpcy5tYWlubWVudVZpc2libGU/d2AKICAgICAgICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgICAgICAgIC5sb2dvSWNvbj0ke3RoaXMubWFpbm1lbnVMb2dvSWNvbn0KICAgICAgICAgICAgLmxvZ29UZXh0PSR7dGhpcy5tYWlubWVudUxvZ29UZXh0fQogICAgICAgICAgICAubWVudUdyb3Vwcz0ke3RoaXMubWFpbm1lbnVHcm91cHN9CiAgICAgICAgICAgIC5ib3R0b21UYWJzPSR7dGhpcy5tYWlubWVudUJvdHRvbVRhYnN9CiAgICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWlubWVudVRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYn0KICAgICAgICAgICAgLmNvbGxhcHNlZD0ke3RoaXMubWFpbm1lbnVDb2xsYXBzZWR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7Rz0+dGhpcy5oYW5kbGVNYWlubWVudVRhYlNlbGVjdChHKX0KICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0ke0c9PnRoaXMuaGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShHKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICAke3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU/d2AKICAgICAgICAgIDxkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUKICAgICAgICAgICAgLmhlYWRpbmc9JHt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nfQogICAgICAgICAgICAuZ3JvdXBzPSR7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzfQogICAgICAgICAgICAuc2VsZWN0ZWRJdGVtPSR7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtfQogICAgICAgICAgICAuY29sbGFwc2VkPSR7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkfQogICAgICAgICAgICBAaXRlbS1zZWxlY3Q9JHtHPT50aGlzLmhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KEcpfQogICAgICAgICAgICBAY29sbGFwc2UtY2hhbmdlPSR7Rz0+dGhpcy5oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoRyl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICA8ZGVlcy1hcHB1aS1tYWluY29udGVudAogICAgICAgICAgLnRhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic30KICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn0KICAgICAgICAgIC5zaG93VGFicz0ke3RoaXMubWFpbmNvbnRlbnRUYWJzVmlzaWJsZX0KICAgICAgICAgIC50YWJzQXV0b0hpZGU9JHt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGV9CiAgICAgICAgICAudGFic0F1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgQHRhYi1zZWxlY3Q9JHtHPT50aGlzLmhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoRyl9CiAgICAgICAgICBAdGFiLWNsb3NlPSR7Rz0+dGhpcy5oYW5kbGVDb250ZW50VGFiQ2xvc2UoRyl9CiAgICAgICAgPgogICAgICAgICAgPGRpdiBjbGFzcz0idmlldy1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgPHNsb3QgbmFtZT0ibWFpbmNvbnRlbnQiPjwvc2xvdD4KICAgICAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgICAgICAgPGRlZXMtYXBwdWktYWN0aXZpdHlsb2cKICAgICAgICAgIGNsYXNzPSIke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPyJ2aXNpYmxlIjoiaGlkZGVuIn0iCiAgICAgICAgPjwvZGVlcy1hcHB1aS1hY3Rpdml0eWxvZz4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5ib3R0b21iYXJWaXNpYmxlP3dgCiAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyPjwvZGVlcy1hcHB1aS1ib3R0b21iYXI+CiAgICAgIGA6IiJ9CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuYXBwYmFyPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWFwcGJhciIpLHRoaXMubWFpbm1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbm1lbnUiKSx0aGlzLnNlY29uZGFyeW1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSIpLHRoaXMubWFpbmNvbnRlbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpLHRoaXMuYm90dG9tYmFyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1ib3R0b21iYXIiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCYmdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZW50cmllcyQuc3Vic2NyaWJlKEc9Pnt0aGlzLmFjdGl2aXR5TG9nQ291bnQ9Ry5sZW5ndGh9KSx0aGlzLnZpZXdSZWdpc3RyeS5zZXRBcHB1aVJlZih0aGlzKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yb3V0ZXJDbGVhbnVwJiYodGhpcy5yb3V0ZXJDbGVhbnVwKCksdGhpcy5yb3V0ZXJDbGVhbnVwPW51bGwpLHRoaXMudmlld0xpZmVjeWNsZSQuY29tcGxldGUoKSx0aGlzLnZpZXdDaGFuZ2VkJC5jb21wbGV0ZSgpfXNldEFwcEJhck1lbnVzKEcpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPVsuLi5HXX11cGRhdGVBcHBCYXJNZW51KEcsWCl7dGhpcy5hcHBiYXJNZW51SXRlbXM9dGhpcy5hcHBiYXJNZW51SXRlbXMubWFwKFNlPT4ibmFtZSJpbiBTZSYmU2UubmFtZT09PUc/ey4uLlNlLC4uLlh9OlNlKX1zZXRCcmVhZGNydW1icyhHKXtBcnJheS5pc0FycmF5KEcpP3RoaXMuYXBwYmFyQnJlYWRjcnVtYnM9Ry5qb2luKHRoaXMuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcik6dGhpcy5hcHBiYXJCcmVhZGNydW1icz1HfXNldFVzZXIoRyl7dGhpcy5hcHBiYXJVc2VyPUd9c2V0UHJvZmlsZU1lbnVJdGVtcyhHKXt0aGlzLmFwcGJhclByb2ZpbGVNZW51SXRlbXM9Wy4uLkddfXNldFNlYXJjaFZpc2libGUoRyl7dGhpcy5hcHBiYXJTaG93U2VhcmNoPUd9c2V0V2luZG93Q29udHJvbHNWaXNpYmxlKEcpe3RoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPUd9b25TZWFyY2goRyl7dGhpcy5zZWFyY2hDYWxsYmFjaz1HfXNldE1haW5NZW51KEcpe0cubG9nb0ljb24hPT12b2lkIDAmJih0aGlzLm1haW5tZW51TG9nb0ljb249Ry5sb2dvSWNvbiksRy5sb2dvVGV4dCE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVMb2dvVGV4dD1HLmxvZ29UZXh0KSxHLmdyb3VwcyE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVHcm91cHM9Wy4uLkcuZ3JvdXBzXSksRy5ib3R0b21UYWJzIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9Wy4uLkcuYm90dG9tVGFic10pfXVwZGF0ZU1haW5NZW51R3JvdXAoRyxYKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKFNlPT5TZS5uYW1lPT09Rz97Li4uU2UsLi4uWH06U2UpfWFkZE1haW5NZW51SXRlbShHLFgpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoU2U9PlNlLm5hbWU9PT1HP3suLi5TZSxpdGVtczpbLi4uU2UuaXRlbXN8fFtdLFhdfTpTZSl9cmVtb3ZlTWFpbk1lbnVJdGVtKEcsWCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChTZT0+U2UubmFtZT09PUc/ey4uLlNlLGl0ZW1zOihTZS5pdGVtc3x8W10pLmZpbHRlcihPdD0+T3Qua2V5IT09WCl9OlNlKX1zZXRNYWluTWVudVNlbGVjdGlvbihHKXtmb3IobGV0IFNlIG9mIHRoaXMubWFpbm1lbnVHcm91cHMpe2xldCBPdD1TZS5pdGVtcz8uZmluZCh3YT0+d2Eua2V5PT09Ryk7aWYoT3Qpe3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYj1PdDtyZXR1cm59fWxldCBYPXRoaXMubWFpbm1lbnVCb3R0b21UYWJzLmZpbmQoU2U9PlNlLmtleT09PUcpO1gmJih0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9WCl9c2V0TWFpbk1lbnVDb2xsYXBzZWQoRyl7dGhpcy5tYWlubWVudUNvbGxhcHNlZD1HfXNldE1haW5NZW51VmlzaWJsZShHKXt0aGlzLm1haW5tZW51VmlzaWJsZT1HfXNldFNlY29uZGFyeU1lbnVDb2xsYXBzZWQoRyl7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkPUd9c2V0U2Vjb25kYXJ5TWVudVZpc2libGUoRyl7dGhpcy5zZWNvbmRhcnltZW51VmlzaWJsZT1HfXNldENvbnRlbnRUYWJzVmlzaWJsZShHKXt0aGlzLm1haW5jb250ZW50VGFic1Zpc2libGU9R31zZXRDb250ZW50VGFic0F1dG9IaWRlKEcsWD0wKXt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGU9Ryx0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9WH1zZXRNYWluTWVudUJhZGdlKEcsWCl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChTZT0+KHsuLi5TZSxpdGVtczooU2UuaXRlbXN8fFtdKS5tYXAoT3Q9Pk90LmtleT09PUc/ey4uLk90LGJhZGdlOlh9Ok90KX0pKSx0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAoU2U9PlNlLmtleT09PUc/ey4uLlNlLGJhZGdlOlh9OlNlKX1jbGVhck1haW5NZW51QmFkZ2UoRyl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChYPT4oey4uLlgsaXRlbXM6KFguaXRlbXN8fFtdKS5tYXAoU2U9PntpZihTZS5rZXk9PT1HKXtsZXR7YmFkZ2U6T3QsLi4ud2F9PVNlO3JldHVybiB3YX1yZXR1cm4gU2V9KX0pKSx0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAoWD0+e2lmKFgua2V5PT09Ryl7bGV0e2JhZGdlOlNlLC4uLk90fT1YO3JldHVybiBPdH1yZXR1cm4gWH0pfXNldFNlY29uZGFyeU1lbnUoRyl7Ry5oZWFkaW5nIT09dm9pZCAwJiYodGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1HLmhlYWRpbmcpLHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1bLi4uRy5ncm91cHNdfXVwZGF0ZVNlY29uZGFyeU1lbnVHcm91cChHLFgpe3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz10aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKFNlPT5TZS5uYW1lPT09Rz97Li4uU2UsLi4uWH06U2UpfWFkZFNlY29uZGFyeU1lbnVJdGVtKEcsWCl7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzPXRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcy5tYXAoU2U9PlNlLm5hbWU9PT1HP3suLi5TZSxpdGVtczpbLi4uU2UuaXRlbXMsWF19OlNlKX1zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKEcpe2ZvcihsZXQgWCBvZiB0aGlzLnNlY29uZGFyeW1lbnVHcm91cHMpe2xldCBTZT1YLml0ZW1zLmZpbmQoT3Q9PiJrZXkiaW4gT3QmJk90LmtleT09PUcpO2lmKFNlJiYoISgidHlwZSJpbiBTZSl8fFNlLnR5cGU9PT0idGFiInx8U2UudHlwZT09PXZvaWQgMCkpe3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT1TZTtyZXR1cm59fX1jbGVhclNlY29uZGFyeU1lbnUoKXt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nPSIiLHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1bXSx0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09dm9pZCAwfXNldENvbnRlbnRUYWJzKEcpe3RoaXMubWFpbmNvbnRlbnRUYWJzPVsuLi5HXSxHLmxlbmd0aD4wJiYhdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPUdbMF0pfWFkZENvbnRlbnRUYWIoRyl7dGhpcy5tYWluY29udGVudFRhYnM9Wy4uLnRoaXMubWFpbmNvbnRlbnRUYWJzLEddfXJlbW92ZUNvbnRlbnRUYWIoRyl7dGhpcy5tYWluY29udGVudFRhYnM9dGhpcy5tYWluY29udGVudFRhYnMuZmlsdGVyKFg9Plgua2V5IT09RyksdGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPy5rZXk9PT1HJiYodGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPXRoaXMubWFpbmNvbnRlbnRUYWJzWzBdKX1zZWxlY3RDb250ZW50VGFiKEcpe2xldCBYPXRoaXMubWFpbmNvbnRlbnRUYWJzLmZpbmQoU2U9PlNlLmtleT09PUcpO1gmJih0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9WCl9Z2V0U2VsZWN0ZWRDb250ZW50VGFiKCl7cmV0dXJuIHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn1nZXQgYWN0aXZpdHlMb2coKXtyZXR1cm4gdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/e2FkZDpHPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGQoRyksYWRkTWFueTpHPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5hZGRNYW55KEcpLGNsZWFyOigpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5jbGVhcigpLGdldEVudHJpZXM6KCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmdldEVudHJpZXMoKSxmaWx0ZXI6Rz0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZmlsdGVyKEcpLHNlYXJjaDpHPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5zZWFyY2goRyl9OnthZGQ6Rz0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmFkZChHKSl9LGFkZE1hbnk6Rz0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmFkZE1hbnkoRykpfSxjbGVhcjooKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmNsZWFyKCkpfSxnZXRFbnRyaWVzOigpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uZ2V0RW50cmllcygpfHxbXSxmaWx0ZXI6Rz0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmZpbHRlcihHKXx8W10sc2VhcmNoOkc9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5zZWFyY2goRyl8fFtdfX1zZXRBY3Rpdml0eUxvZ1Zpc2libGUoRyl7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGU9R310b2dnbGVBY3Rpdml0eUxvZygpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPSF0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZX1nZXRBY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0IGJvdHRvbUJhcigpe3JldHVybiB0aGlzLmJvdHRvbWJhckVsZW1lbnQ/e2FkZFdpZGdldDpHPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuYWRkV2lkZ2V0KEcpLHVwZGF0ZVdpZGdldDooRyxYKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LnVwZGF0ZVdpZGdldChHLFgpLHJlbW92ZVdpZGdldDpHPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlV2lkZ2V0KEcpLGdldFdpZGdldDpHPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuZ2V0V2lkZ2V0KEcpLGNsZWFyV2lkZ2V0czooKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyV2lkZ2V0cygpLGFkZEFjdGlvbjpHPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuYWRkQWN0aW9uKEcpLHJlbW92ZUFjdGlvbjpHPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlQWN0aW9uKEcpLGNsZWFyQWN0aW9uczooKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyQWN0aW9ucygpfTp7YWRkV2lkZ2V0Okc9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkV2lkZ2V0KEcpKX0sdXBkYXRlV2lkZ2V0OihHLFgpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnVwZGF0ZVdpZGdldChHLFgpKX0scmVtb3ZlV2lkZ2V0Okc9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8ucmVtb3ZlV2lkZ2V0KEcpKX0sZ2V0V2lkZ2V0Okc9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uZ2V0V2lkZ2V0KEcpLGNsZWFyV2lkZ2V0czooKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5jbGVhcldpZGdldHMoKSl9LGFkZEFjdGlvbjpHPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmFkZEFjdGlvbihHKSl9LHJlbW92ZUFjdGlvbjpHPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LnJlbW92ZUFjdGlvbihHKSl9LGNsZWFyQWN0aW9uczooKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5jbGVhckFjdGlvbnMoKSl9fX1zZXRCb3R0b21CYXJWaXNpYmxlKEcpe3RoaXMuYm90dG9tYmFyVmlzaWJsZT1HLEc/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoImJvdHRvbWJhci1oaWRkZW4iKTp0aGlzLnNldEF0dHJpYnV0ZSgiYm90dG9tYmFyLWhpZGRlbiIsIiIpfWdldEJvdHRvbUJhclZpc2libGUoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJWaXNpYmxlfWFzeW5jIG5hdmlnYXRlVG9WaWV3KEcsWCl7bGV0IFNlPXRoaXMudmlld1JlZ2lzdHJ5LmdldChHKTtpZighU2UpcmV0dXJuIGNvbnNvbGUud2FybihgQ2Fubm90IG5hdmlnYXRlIHRvIHVua25vd24gdmlldzogJHtHfWApLCExO2xldCBPdD1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5jYW5MZWF2ZUN1cnJlbnRWaWV3KCk7aWYoT3QhPT0hMClpZih0eXBlb2YgT3Q9PSJzdHJpbmciKXtpZighd2luZG93LmNvbmZpcm0oT3QpKXJldHVybiExfWVsc2UgcmV0dXJuITE7dGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJsb2FkaW5nIix2aWV3SWQ6R30pO3RyeXthd2FpdCB0aGlzLmxvYWRWaWV3KFNlLFgpO2xldCBKbD1gIyR7U2Uucm91dGV8fEd9YDtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhhc2ghPT1KbCYmd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt2aWV3SWQ6R30sIiIsSmwpLCEwfWNhdGNoKHdhKXtyZXR1cm4gdGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJsb2FkRXJyb3IiLHZpZXdJZDpHLGVycm9yOndhfSksITF9fWdldEN1cnJlbnRWaWV3KCl7cmV0dXJuIHRoaXMuY3VycmVudFZpZXd9Z2V0Vmlld1JlZ2lzdHJ5KCl7cmV0dXJuIHRoaXMudmlld1JlZ2lzdHJ5fWNvbmZpZ3VyZShHKXtHLnZpZXdzJiYodGhpcy52aWV3UmVnaXN0cnkuY2xlYXIoKSx0aGlzLnZpZXdSZWdpc3RyeS5yZWdpc3RlckFsbChHLnZpZXdzKSksRy5icmFuZGluZyYmKHRoaXMubWFpbm1lbnVMb2dvSWNvbj1HLmJyYW5kaW5nLmxvZ29JY29ufHwiIix0aGlzLm1haW5tZW51TG9nb1RleHQ9Ry5icmFuZGluZy5sb2dvVGV4dHx8IiIpLEcuYXBwQmFyJiYodGhpcy5hcHBiYXJNZW51SXRlbXM9Ry5hcHBCYXIubWVudUl0ZW1zfHxbXSx0aGlzLmFwcGJhckJyZWFkY3J1bWJzPUcuYXBwQmFyLmJyZWFkY3J1bWJzfHwiIix0aGlzLmFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3I9Ry5hcHBCYXIuYnJlYWRjcnVtYlNlcGFyYXRvcnx8IiA+ICIsdGhpcy5hcHBiYXJTaG93V2luZG93Q29udHJvbHM9Ry5hcHBCYXIuc2hvd1dpbmRvd0NvbnRyb2xzPz8hMCx0aGlzLmFwcGJhclNob3dTZWFyY2g9Ry5hcHBCYXIuc2hvd1NlYXJjaD8/ITEsdGhpcy5hcHBiYXJVc2VyPUcuYXBwQmFyLnVzZXIsdGhpcy5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPUcuYXBwQmFyLnByb2ZpbGVNZW51SXRlbXN8fFtdKSxHLm1haW5NZW51JiYoRy5tYWluTWVudS5zZWN0aW9ucz90aGlzLm1haW5tZW51R3JvdXBzPXRoaXMuYnVpbGRNYWluTWVudUZyb21TZWN0aW9ucyhHKTpHLm1haW5NZW51Lmdyb3VwcyYmKHRoaXMubWFpbm1lbnVHcm91cHM9Ry5tYWluTWVudS5ncm91cHMpLEcubWFpbk1lbnUubG9nb0ljb24mJih0aGlzLm1haW5tZW51TG9nb0ljb249Ry5tYWluTWVudS5sb2dvSWNvbiksRy5tYWluTWVudS5sb2dvVGV4dCYmKHRoaXMubWFpbm1lbnVMb2dvVGV4dD1HLm1haW5NZW51LmxvZ29UZXh0KSxHLm1haW5NZW51LmJvdHRvbVRhYnM/dGhpcy5tYWlubWVudUJvdHRvbVRhYnM9Ry5tYWluTWVudS5ib3R0b21UYWJzOkcubWFpbk1lbnUuYm90dG9tSXRlbXMmJih0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLmJ1aWxkQm90dG9tVGFic0Zyb21JdGVtcyhHLm1haW5NZW51LmJvdHRvbUl0ZW1zKSkpLEcuYm90dG9tQmFyJiYodGhpcy5zZXRCb3R0b21CYXJWaXNpYmxlKEcuYm90dG9tQmFyLnZpc2libGU/PyEwKSxHLmJvdHRvbUJhci53aWRnZXRzJiZHLmJvdHRvbUJhci53aWRnZXRzLmZvckVhY2goWD0+e3RoaXMuYm90dG9tQmFyLmFkZFdpZGdldChYKX0pLEcuYm90dG9tQmFyLmFjdGlvbnMmJkcuYm90dG9tQmFyLmFjdGlvbnMuZm9yRWFjaChYPT57dGhpcy5ib3R0b21CYXIuYWRkQWN0aW9uKFgpfSkpLHRoaXMuc2V0dXBSb3V0ZXJJbnRlZ3JhdGlvbihHKSxHLm9uVmlld0NoYW5nZSYmdGhpcy52aWV3Q2hhbmdlZCQuc3Vic2NyaWJlKFg9PntHLm9uVmlld0NoYW5nZShYLnZpZXdJZCxYLnZpZXcpfSksRy5vblNlYXJjaCYmKHRoaXMuc2VhcmNoQ2FsbGJhY2s9Ry5vblNlYXJjaCksRy5kZWZhdWx0VmlldyYmdGhpcy5uYXZpZ2F0ZVRvVmlldyhHLmRlZmF1bHRWaWV3KX1zZXR1cFJvdXRlckludGVncmF0aW9uKEcpe2xldCBYPSgpPT57bGV0IE90PXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKCFPdClyZXR1cm47bGV0IHdhPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKE90KTt3YSYmdGhpcy5uYXZpZ2F0ZVRvVmlldyh3YS52aWV3LmlkLHdhLnBhcmFtcyl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixYKSx0aGlzLnJvdXRlckNsZWFudXA9KCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsWCl9O2xldCBTZT13aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKTtpZihTZSl7bGV0IE90PXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKFNlKTtPdCYmc2V0VGltZW91dCgoKT0+dGhpcy5uYXZpZ2F0ZVRvVmlldyhPdC52aWV3LmlkLE90LnBhcmFtcyksMCl9fWJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoRyl7cmV0dXJuIEcubWFpbk1lbnU/LnNlY3Rpb25zP0cubWFpbk1lbnUuc2VjdGlvbnMubWFwKFg9Pih7bmFtZTpYLm5hbWUsaXRlbXM6WC52aWV3cy5tYXAoU2U9PntsZXQgT3Q9dGhpcy52aWV3UmVnaXN0cnkuZ2V0KFNlKTtyZXR1cm4gT3Q/e2tleTpPdC5pZCxpY29uTmFtZTpPdC5pY29uTmFtZSxhY3Rpb246KCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcoU2UpLGJhZGdlOk90LmJhZGdlfTooY29uc29sZS53YXJuKGBWaWV3ICIke1NlfSIgbm90IGZvdW5kIGluIHJlZ2lzdHJ5YCksbnVsbCl9KS5maWx0ZXIoQm9vbGVhbil9KSk6W119YnVpbGRCb3R0b21UYWJzRnJvbUl0ZW1zKEcpe3JldHVybiBHLm1hcChYPT57bGV0IFNlPXRoaXMudmlld1JlZ2lzdHJ5LmdldChYKTtyZXR1cm4gU2U/e2tleTpTZS5pZCxpY29uTmFtZTpTZS5pY29uTmFtZSxhY3Rpb246KCk9PnRoaXMubmF2aWdhdGVUb1ZpZXcoWCl9Oihjb25zb2xlLndhcm4oYFZpZXcgIiR7WH0iIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApLG51bGwpfSkuZmlsdGVyKEJvb2xlYW4pfWFzeW5jIGxvYWRWaWV3KEcsWCl7bGV0IFNlPXRoaXMuY3VycmVudFZpZXc7dGhpcy5jdXJyZW50Vmlldz1HO2xldCBPdD10aGlzLm1haW5jb250ZW50Py5xdWVyeVNlbGVjdG9yKCIudmlldy1jb250YWluZXIiKXx8dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlldy1jb250YWluZXIiKTtpZihPdCl7bGV0IEpsPWF3YWl0IHRoaXMudmlld1JlZ2lzdHJ5LmFjdGl2YXRlVmlldyhHLmlkLE90LFgpO0psJiZ0aGlzLnZpZXdMaWZlY3ljbGUkLm5leHQoe3R5cGU6ImFjdGl2YXRlZCIsdmlld0lkOkcuaWQsZWxlbWVudDpKbCxwYXJhbXM6WH0pfUcuc2Vjb25kYXJ5TWVudSYmKHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1HLnNlY29uZGFyeU1lbnUsdGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1HLm5hbWUpLEcuY29udGVudFRhYnMmJih0aGlzLm1haW5jb250ZW50VGFicz1HLmNvbnRlbnRUYWJzKSx0aGlzLnNldE1haW5NZW51U2VsZWN0aW9uKEcuaWQpO2xldCB3YT17dmlld0lkOkcuaWQsdmlldzpHLHByZXZpb3VzVmlldzpTZSxwYXJhbXM6WH07dGhpcy52aWV3Q2hhbmdlZCQubmV4dCh3YSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidmlldy1jaGFuZ2UiLHtkZXRhaWw6d2EsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJNZW51U2VsZWN0KEcpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1tZW51LXNlbGVjdCIse2RldGFpbDpHLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhckJyZWFkY3J1bWJOYXZpZ2F0ZShHKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItYnJlYWRjcnVtYi1uYXZpZ2F0ZSIse2RldGFpbDpHLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoRyl7dGhpcy5zZWFyY2hDYWxsYmFjayYmdGhpcy5zZWFyY2hDYWxsYmFjayhHLmRldGFpbC5xdWVyeSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLXF1ZXJ5Iix7ZGV0YWlsOkcuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXVzZXItbWVudS1vcGVuIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJQcm9maWxlTWVudVNlbGVjdChHKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItcHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpHLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZU1haW5tZW51VGFiU2VsZWN0KEcpe3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYj1HLmRldGFpbC50YWIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWFpbm1lbnUtdGFiLXNlbGVjdCIse2RldGFpbDpHLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KEcpe3RoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT1HLmRldGFpbC5pdGVtLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlY29uZGFyeW1lbnUtaXRlbS1zZWxlY3QiLHtkZXRhaWw6Ry5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNYWlubWVudUNvbGxhcHNlQ2hhbmdlKEcpe3RoaXMubWFpbm1lbnVDb2xsYXBzZWQ9Ry5kZXRhaWwuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1haW5tZW51LWNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDpHLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVNlY29uZGFyeW1lbnVDb2xsYXBzZUNoYW5nZShHKXt0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQ9Ry5kZXRhaWwuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlY29uZGFyeW1lbnUtY29sbGFwc2UtY2hhbmdlIix7ZGV0YWlsOkcuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGVudFRhYlNlbGVjdChHKXt0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9Ry5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtdGFiLXNlbGVjdCIse2RldGFpbDpHLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRlbnRUYWJDbG9zZShHKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LXRhYi1jbG9zZSIse2RldGFpbDpHLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXN0YXRpY3tIZShpLGEpfX07cmV0dXJuIGhVPWl9KSgpfSk7dmFyIHBmdD1iKCgpPT57ZGZ0KCk7aVYoKX0pO3ZhciBoZnQ9YigoKT0+e29WKCl9KTt2YXIgdWZ0PWIoKCk9PntyVigpfSk7dmFyIGZmdD1iKCgpPT57c1YoKX0pO3ZhciBtZnQ9YigoKT0+e0NxKCl9KTt2YXIgZ2Z0PWIoKCk9PntuVigpfSk7dmFyIEt4LGk0LGJmdCx2ZnQ9YigoKT0+e3IyKCk7dWkoKTtjYSgpO3VlKCk7X3MoKTtEdCgpO3FlKCk7S3g9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxpND1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sYmZ0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1tb2JpbGVuYXZpZ2F0aW9uIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB2PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6QXJyYXl9KV0sbD1bSigpXSxLeCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJoZWFkaW5nImluIG0sZ2V0Om09Pm0uaGVhZGluZyxzZXQ6KG0seCk9PnttLmhlYWRpbmc9eH19LG1ldGFkYXRhOnZ9LG4sbyksS3godGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJtZW51SXRlbXMiaW4gbSxnZXQ6bT0+bS5tZW51SXRlbXMsc2V0OihtLHgpPT57bS5tZW51SXRlbXM9eH19LG1ldGFkYXRhOnZ9LGMscCksS3godGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2JpbGVOYXZaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJtb2JpbGVOYXZaSW5kZXgiaW4gbSxnZXQ6bT0+bS5tb2JpbGVOYXZaSW5kZXgsc2V0OihtLHgpPT57bS5tb2JpbGVOYXZaSW5kZXg9eH19LG1ldGFkYXRhOnZ9LGYsZyksS3gobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6dn0sbnVsbCxhKSx5PWk9ZS52YWx1ZSx2JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZ9KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdO3N0YXRpYyBkZW1vPSgpPT53YAogICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57eS5jcmVhdGVBbmRTaG93KFt7bmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dC1kYXNoYm9hcmQiLGFjdGlvbjphc3luYyB2PT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIGRhc2hib2FyZCIpLG51bGwpfSx7bmFtZToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246YXN5bmMgdj0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBwcm9maWxlIiksbnVsbCl9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmFzeW5jIHY9Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gc2V0dGluZ3MiKSxudWxsKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHAtY2lyY2xlIixhY3Rpb246YXN5bmMgdj0+KGNvbnNvbGUubG9nKCJTaG93IGhlbHAiKSxudWxsKX0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibHVjaWRlOmxvZy1vdXQiLGFjdGlvbjphc3luYyB2PT4oY29uc29sZS5sb2coIlNpZ24gb3V0IiksbnVsbCl9XSl9fT5PcGVuIE1vYmlsZSBOYXZpZ2F0aW9uPC9kZWVzLWJ1dHRvbj4KICBgO3N0YXRpYyBzaW5nbGV0b25SZWY7c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3codil7cmV0dXJuIHRoaXMuc2luZ2xldG9uUmVmfHwodGhpcy5zaW5nbGV0b25SZWY9bmV3IHksZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5zaW5nbGV0b25SZWYpLGF3YWl0IHRoaXMuc2luZ2xldG9uUmVmLmluaXQoKSksdGhpcy5zaW5nbGV0b25SZWYubWVudUl0ZW1zPXYsYXdhaXQgdGhpcy5zaW5nbGV0b25SZWYucmVhZHlEZWZlcnJlZC5wcm9taXNlLHRoaXMuc2luZ2xldG9uUmVmLnNob3coKSx0aGlzLnNpbmdsZXRvblJlZn0jZT1pNCh0aGlzLG4sIk1lbnUiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKHYpe3RoaXMuI2U9dn0jdD0oaTQodGhpcyxvKSxpNCh0aGlzLGMsW10pKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1lbnVJdGVtcyh2KXt0aGlzLiN0PXZ9I2E9KGk0KHRoaXMscCksaTQodGhpcyxmLDFlMykpO2dldCBtb2JpbGVOYXZaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbW9iaWxlTmF2WkluZGV4KHYpe3RoaXMuI2E9dn1yZWFkeURlZmVycmVkPShpNCh0aGlzLGcpLHJ0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCkpO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1hc3luYyBpbml0KCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfXN0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICB9CgogICAgICAubWFpbiB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogMzIwcHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgei1pbmRleDogdmFyKC0tei1pbmRleCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICByaWdodDogMHB4OwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiLTIwcHggMCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpLCAtMTBweCAwIDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpIiwiLTIwcHggMCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAtMTBweCAwIDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAubWFpbi5zaG93IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubWVudUl0ZW0tZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIG1hcmdpbjogOHB4IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIE1vYmlsZSByZXNwb25zaXZlbmVzcyAqLwogICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpIHsKICAgICAgICAubWFpbiB7CiAgICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3OwogICAgICAgICAgd2lkdGg6IDg1dnc7CiAgICAgICAgfQogICAgICB9CgogICAgICAvKiBBbmltYXRpb24gZm9yIG1lbnUgaXRlbXMgKi8KICAgICAgQGtleWZyYW1lcyBzbGlkZUluUmlnaHQgewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tYWluLnNob3cgLm1lbnVJdGVtIHsKICAgICAgICBhbmltYXRpb246IHNsaWRlSW5SaWdodCAwLjNzIGVhc2Utb3V0IGZvcndhcmRzOwogICAgICAgIGFuaW1hdGlvbi1kZWxheTogY2FsYyh2YXIoLS1pdGVtLWluZGV4LCAwKSAqIDAuMDVzKTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAubWVudS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNTI1MjViIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIC5tYWluIHsKICAgICAgICAgIC0tei1pbmRleDogJHt0aGlzLm1vYmlsZU5hdlpJbmRleH07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtYWluIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGgyIGNsYXNzPSJoZWFkaW5nIj4ke3RoaXMuaGVhZGluZ308L2gyPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnUtY29udGFpbmVyIj4KICAgICAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKCh2LG0pPT4iZGl2aWRlciJpbiB2JiZ2LmRpdmlkZXI/d2A8ZGl2IGNsYXNzPSJtZW51SXRlbS1kaXZpZGVyIj48L2Rpdj5gOndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9Im1lbnVJdGVtIgogICAgICAgICAgICAgICAgc3R5bGU9Ii0taXRlbS1pbmRleDogJHttfSIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+e3RoaXMuaGlkZSgpLHYuYWN0aW9uKHRoaXMpfX0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHt2Lmljb25OYW1lP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt2Lmljb25OYW1lfSBzaXplPSIyMCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnVJdGVtLXRleHQiPiR7di5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH13aW5kb3dMYXllcjthc3luYyBzaG93KCl7bGV0IHY9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsbT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW4iKTt0aGlzLndpbmRvd0xheWVyPyhkb2N1bWVudC5ib2R5LmFwcGVuZCh0aGlzLndpbmRvd0xheWVyKSxhd2FpdCB0aGlzLndpbmRvd0xheWVyLnNob3coKSk6KHRoaXMud2luZG93TGF5ZXI9YXdhaXQgZmkuY3JlYXRlQW5kU2hvdyh7Ymx1cjohMH0pLHRoaXMud2luZG93TGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5oaWRlKCl9KSksdGhpcy5tb2JpbGVOYXZaSW5kZXg9ZDEuZ2V0TmV4dFpJbmRleCgpLGQxLnJlZ2lzdGVyKHRoaXMsdGhpcy5tb2JpbGVOYXZaSW5kZXgpLGF3YWl0IHYuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigxMCksbS5jbGFzc0xpc3QuYWRkKCJzaG93Iil9YXN5bmMgaGlkZSgpe2xldCB2PWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbiIpLmNsYXNzTGlzdC5yZW1vdmUoInNob3ciKSxkMS51bnJlZ2lzdGVyKHRoaXMpLHRoaXMud2luZG93TGF5ZXImJmF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkMS51bnJlZ2lzdGVyKHRoaXMpLHRoaXMud2luZG93TGF5ZXImJmF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpfXN0YXRpY3tpNChpLGEpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgeWZ0PWIoKCk9Pnt2ZnQoKX0pO3ZhciB4ZnQ9YigoKT0+e2Q5dCgpO19xKCk7TDl0KCk7cGZ0KCk7aGZ0KCk7dWZ0KCk7ZmZ0KCk7bWZ0KCk7Z2Z0KCk7eWZ0KCl9KTt2YXIgd2Z0PWIoKCk9PntubygpfSk7dmFyIE1mdCxsVix6ZnQsa2Z0PWIoKCk9Pnt1ZSgpO01mdD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LGxWPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSx6ZnQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWJ1dHRvbi1leGl0IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6TnVtYmVyfSldLE1mdCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnA9PiJzaXplImluIHAsZ2V0OnA9PnAuc2l6ZSxzZXQ6KHAsbCk9PntwLnNpemU9bH19LG1ldGFkYXRhOmN9LG4sbyksTWZ0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZD1pPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89KCk9PndgCiAgICA8ZGVlcy1idXR0b24tZXhpdD48L2RlZXMtYnV0dG9uLWV4aXQ+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPWxWKHRoaXMsbiwyNCk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2l6ZShjKXt0aGlzLiNlPWN9c3R5bGVzPShsVih0aGlzLG8pLFtoLmRlZmF1bHRTdHlsZXMsUWAKCiAgICBgXSk7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5zaXplfXB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlyc3RMaW5lIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWNvbmRMaW5lIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tsVihpLGEpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgU2Z0PWIoKCk9PntrZnQoKX0pO3ZhciBDZnQsX2Z0PWIoKCk9Pnt1ZSgpO0NmdD0oKT0+d2AKICAgIDxzdHlsZT4KICAgICAgJHtRYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGhvdXQgbGFiZWxzIGZvciBzaW1wbGUgZ3JvdXBpbmc8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAxPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxhYmVsZWQgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aCBkZXNjcmlwdGl2ZSBsYWJlbHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJWaWV3IE1vZGU6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+R3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TGlzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+Q2FyZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPk11bHRpcGxlIGJ1dHRvbiBncm91cHMgdXNlZCB0b2dldGhlcjwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDE2cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+U3lzdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcms8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJUaW1lIFJhbmdlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj4xSDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+MjRIPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjdEPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjMwRDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RXhwb3J0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlZlcnRpY2FsIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGggdmVydGljYWwgbGF5b3V0PC9wPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMjRweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj0idmVydGljYWwiIGxhYmVsPSJOYXZpZ2F0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXNoYm9hcmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPkFuYWx5dGljczwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXBvcnRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBkaXJlY3Rpb249InZlcnRpY2FsIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkVkaXQgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EZWxldGUgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NaXhlZCBCdXR0b24gVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5EaWZmZXJlbnQgYnV0dG9uIHR5cGVzIHdpdGhpbiBncm91cHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJTdGF0dXM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzdWNjZXNzIj5BY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlBlbmRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRhbmdlciI+SW5hY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0pO3ZhciBjVixrOCxUZnQsTGZ0PWIoKCk9Pnt1ZSgpO1R0KCk7X2Z0KCk7cWUoKTtjVj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LGs4PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxUZnQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWJ1dHRvbi1ncm91cCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLGQ9W0koKV0sY1YodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+ImxhYmVsImluIGcsZ2V0Omc9PmcubGFiZWwsc2V0OihnLHkpPT57Zy5sYWJlbD15fX0sbWV0YWRhdGE6Zn0sbixvKSxjVih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpcmVjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+ImRpcmVjdGlvbiJpbiBnLGdldDpnPT5nLmRpcmVjdGlvbixzZXQ6KGcseSk9PntnLmRpcmVjdGlvbj15fX0sbWV0YWRhdGE6Zn0sYyxwKSxjVihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpmfSxudWxsLGEpLGw9aT1lLnZhbHVlLGYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Zn0pfXN0YXRpYyBkZW1vPUNmdDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPWs4KHRoaXMsbiwiIik7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxhYmVsKGYpe3RoaXMuI2U9Zn0jdD0oazgodGhpcyxvKSxrOCh0aGlzLGMsImhvcml6b250YWwiKSk7Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBkaXJlY3Rpb24oZil7dGhpcy4jdD1mfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxrOCh0aGlzLHApLGIxLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1ncm91cC52ZXJ0aWNhbCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLmxhYmVsIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgLmxhYmVsIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoKikgewogICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwICR7dGhpcy5kaXJlY3Rpb259Ij4KICAgICAgICAke3RoaXMubGFiZWw/d2A8c3BhbiBjbGFzcz0ibGFiZWwiPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7azgoaSxhKX19O3JldHVybiBsPWl9KSgpfSk7dmFyICRmdD1iKCgpPT57TGZ0KCl9KTt2YXIgQWZ0PWIoKCk9Pnt3ZnQoKTtTZnQoKTskZnQoKX0pO3ZhciBEZnQsRWZ0PWIoKCk9Pnt1ZSgpO3kxKCk7ZFYoKTtEZnQ9KCk9PntsZXQgdD17c3lzdGVtOntsYWJlbDoiU3lzdGVtIFVzYWdlICglKSIsc2VyaWVzOlt7bmFtZToiQ1BVIixkYXRhOlt7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTNlNSkudG9JU09TdHJpbmcoKSx5OjI1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTI0ZTQpLnRvSVNPU3RyaW5nKCkseTozMH0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xOGU0KS50b0lTT1N0cmluZygpLHk6Mjh9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMTJlNCkudG9JU09TdHJpbmcoKSx5OjM1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTZlNCkudG9JU09TdHJpbmcoKSx5OjMyfSx7eDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseTozOH1dfSx7bmFtZToiTWVtb3J5IixkYXRhOlt7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTNlNSkudG9JU09TdHJpbmcoKSx5OjQ1fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTI0ZTQpLnRvSVNPU3RyaW5nKCkseTo0OH0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0xOGU0KS50b0lTT1N0cmluZygpLHk6NDZ9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMTJlNCkudG9JU09TdHJpbmcoKSx5OjUyfSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTZlNCkudG9JU09TdHJpbmcoKSx5OjUwfSx7eDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkseTo1NX1dfV19fSxlPXtzeXN0ZW06YT0+YCR7YX0lYH07cmV0dXJuIHdgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBhPT57bGV0IGk9YS5xdWVyeVNlbGVjdG9yKCIjbWFpbi1jaGFydCIpLHI9YS5xdWVyeVNlbGVjdG9yKCIjY29ubmVjdGlvbnMtY2hhcnQiKSxzLG4sbz0ic3lzdGVtIixkPXtzeXN0ZW06ej0+YCR7en0lYCxuZXR3b3JrOno9PmAke3p9IE1icHNgLHNhbGVzOno9PmAkJHt6LnRvTG9jYWxlU3RyaW5nKCl9YH0sYz0xMjAqMWUzLHA9MWUzLGw9NWUzLGY9e2NwdTozMCxtZW1vcnk6NTAsZG93bmxvYWQ6MTUwLHVwbG9hZDozMCxjb25uZWN0aW9uczoxNTB9LGc9KHosRSxUPWwpPT57bGV0ICQ9W10sVj1EYXRlLm5vdygpLFI9TWF0aC5mbG9vcihjL1QpO2ZvcihsZXQgVT1SO1U+PTA7VS0tKXtsZXQgcmU9bmV3IERhdGUoVi1VKlQpLnRvSVNPU3RyaW5nKCksaj16KyhNYXRoLnJhbmRvbSgpLS41KSpFOyQucHVzaCh7eDpyZSx5Ok1hdGgucm91bmQoail9KX1yZXR1cm4gJH0seT17c3lzdGVtOntsYWJlbDoiU3lzdGVtIFVzYWdlICglKSIsc2VyaWVzOlt7bmFtZToiQ1BVIixkYXRhOmcoZi5jcHUsMTApfSx7bmFtZToiTWVtb3J5IixkYXRhOmcoZi5tZW1vcnksOCl9XX0sbmV0d29yazp7bGFiZWw6Ik5ldHdvcmsgVHJhZmZpYyAoTWJwcykiLHNlcmllczpbe25hbWU6IkRvd25sb2FkIixkYXRhOmcoZi5kb3dubG9hZCwzMCl9LHtuYW1lOiJVcGxvYWQiLGRhdGE6ZyhmLnVwbG9hZCwxMCl9XX0sc2FsZXM6e2xhYmVsOiJTYWxlcyBBbmFseXRpY3MiLHNlcmllczpbe25hbWU6IlJldmVudWUiLGRhdGE6W3t4OiIyMDI1LTAxLTAxIix5OjQ1ZTN9LHt4OiIyMDI1LTAxLTAyIix5OjUyZTN9LHt4OiIyMDI1LTAxLTAzIix5OjQ4ZTN9LHt4OiIyMDI1LTAxLTA0Iix5OjYxZTN9LHt4OiIyMDI1LTAxLTA1Iix5OjU4ZTN9LHt4OiIyMDI1LTAxLTA2Iix5OjY1ZTN9XX0se25hbWU6IlByb2ZpdCIsZGF0YTpbe3g6IjIwMjUtMDEtMDEiLHk6MTJlM30se3g6IjIwMjUtMDEtMDIiLHk6MTRlM30se3g6IjIwMjUtMDEtMDMiLHk6MTFlM30se3g6IjIwMjUtMDEtMDQiLHk6MThlM30se3g6IjIwMjUtMDEtMDUiLHk6MTZlM30se3g6IjIwMjUtMDEtMDYiLHk6MmU0fV19XX19LHY9KHosRSxULCQ9NSk9PntsZXQgVj0oTWF0aC5yYW5kb20oKS0uNSkqJCoyLFI9eitWLHJlPSgoRStUKS8yLVIpKi4xO3JldHVybiBSKz1yZSxSPU1hdGgubWF4KEUsTWF0aC5taW4oVCxSKSksTWF0aC5yb3VuZChSKX0sbT1EYXRlLm5vdygpLHg9RGF0ZS5ub3coKSxNPSgpPT57aWYoIWkpcmV0dXJuO2xldCB6PURhdGUubm93KCk7aWYoei1tPj1sKXttPXo7bGV0IFQ9bmV3IERhdGUoeikudG9JU09TdHJpbmcoKTtpZihvPT09InN5c3RlbSIpe2YuY3B1PXYoZi5jcHUsMjAsNTAsMyksZi5tZW1vcnk9dihmLm1lbW9yeSw0MCw3MCwyKTtsZXQgJD1pLmNoYXJ0U2VyaWVzLm1hcCgoVixSKT0+KHtuYW1lOlYubmFtZSxkYXRhOlsuLi5WLmRhdGEsUj09PTA/e3g6VCx5OmYuY3B1fTp7eDpULHk6Zi5tZW1vcnl9XX0pKTtpLnVwZGF0ZVNlcmllcygkLCExKX1lbHNlIGlmKG89PT0ibmV0d29yayIpe2YuZG93bmxvYWQ9dihmLmRvd25sb2FkLDEwMCwyMDAsMTApLGYudXBsb2FkPXYoZi51cGxvYWQsMjAsNTAsNSk7bGV0ICQ9aS5jaGFydFNlcmllcy5tYXAoKFYsUik9Pih7bmFtZTpWLm5hbWUsZGF0YTpbLi4uVi5kYXRhLFI9PT0wP3t4OlQseTpmLmRvd25sb2FkfTp7eDpULHk6Zi51cGxvYWR9XX0pKTtpLnVwZGF0ZVNlcmllcygkLCExKX19fSxTPSgpPT57aWYoIXIpcmV0dXJuO2xldCB6PURhdGUubm93KCksRT1uZXcgRGF0ZSh6KS50b0lTT1N0cmluZygpLFQ9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIxKS0xMDtmLmNvbm5lY3Rpb25zPU1hdGgubWF4KDUwLE1hdGgubWluKDMwMCxmLmNvbm5lY3Rpb25zK1QpKTtsZXQgJD1yLmNoYXJ0U2VyaWVzLFY9W3tuYW1lOiRbMF0/Lm5hbWV8fCJDb25uZWN0aW9ucyIsZGF0YTpbLi4uJFswXT8uZGF0YXx8W10se3g6RSx5OmYuY29ubmVjdGlvbnN9XX1dO3IudXBkYXRlU2VyaWVzKFYsITEpfSxGPXo9PntvPXo7bGV0IEU9eVt6XTtpLmxhYmVsPUUubGFiZWwsaS5zZXJpZXM9RS5zZXJpZXMsaS55QXhpc0Zvcm1hdHRlcj1kW3pdLHo9PT0ic3lzdGVtIj8oaS55QXhpc1NjYWxpbmc9InBlcmNlbnRhZ2UiLGkueUF4aXNNYXg9MTAwKTppLnlBeGlzU2NhbGluZz0iZHluYW1pYyIsbT1EYXRlLm5vdygpLWx9LF89KCk9PnshcyYmKG89PT0ic3lzdGVtInx8bz09PSJuZXR3b3JrIikmJihpLnJlYWx0aW1lTW9kZT0hMCxzPXdpbmRvdy5zZXRJbnRlcnZhbCgoKT0+TSgpLGwpKSxufHwoci5yZWFsdGltZU1vZGU9ITAsbj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9PlMoKSxwKSl9LGs9KCk9PntzJiYod2luZG93LmNsZWFySW50ZXJ2YWwocykscz1udWxsLGkucmVhbHRpbWVNb2RlPSExKSxuJiYod2luZG93LmNsZWFySW50ZXJ2YWwobiksbj1udWxsLHIucmVhbHRpbWVNb2RlPSExKX0sTj0oKT0+e289PT0ic3lzdGVtIj8oZi5jcHU9TWF0aC5yYW5kb20oKT4uNT84NToyNSxmLm1lbW9yeT1NYXRoLnJhbmRvbSgpPi41PzgwOjQ1KTpvPT09Im5ldHdvcmsiJiYoZi5kb3dubG9hZD1NYXRoLnJhbmRvbSgpPi41PzI1MDoxMDAsZi51cGxvYWQ9TWF0aC5yYW5kb20oKT4uNT84MDoyMCksZi5jb25uZWN0aW9ucz1NYXRoLnJhbmRvbSgpPi41PzI4MDo4MCxtPTAseD0wfSxMPWEucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKTtMLmZvckVhY2goej0+e2xldCBFPXoudGV4dENvbnRlbnQ/LnRyaW0oKTtFPT09IlN5c3RlbSBVc2FnZSI/ei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkYoInN5c3RlbSIpKTpFPT09Ik5ldHdvcmsgVHJhZmZpYyI/ei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkYoIm5ldHdvcmsiKSk6RT09PSJTYWxlcyBEYXRhIj96LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+Rigic2FsZXMiKSk6RT09PSJTdGFydCBMaXZlIj96LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+XygpKTpFPT09IlN0b3AgTGl2ZSI/ei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PmsoKSk6RT09PSJTcGlrZSBWYWx1ZXMiJiZ6LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+TigpKX0pO2xldCBBPSgpPT57YS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goRT0+e2xldCBUPUUudGV4dENvbnRlbnQ/LnRyaW0oKTtUPT09IlN5c3RlbSBVc2FnZSI/RS50eXBlPW89PT0ic3lzdGVtIj8iaGlnaGxpZ2h0ZWQiOiJub3JtYWwiOlQ9PT0iTmV0d29yayBUcmFmZmljIj9FLnR5cGU9bz09PSJuZXR3b3JrIj8iaGlnaGxpZ2h0ZWQiOiJub3JtYWwiOlQ9PT0iU2FsZXMgRGF0YSImJihFLnR5cGU9bz09PSJzYWxlcyI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIil9KX07aS5yb2xsaW5nV2luZG93PWMsaS5yZWFsdGltZU1vZGU9ITEsaS55QXhpc1NjYWxpbmc9InBlcmNlbnRhZ2UiLGkueUF4aXNNYXg9MTAwLGkuYXV0b1Njcm9sbEludGVydmFsPTFlMyxzZXRUaW1lb3V0KCgpPT57aS51cGRhdGVUaW1lV2luZG93KCl9LDEwMCk7bGV0IHE9RixDPXo9PntxKHopLEEoKX07aWYoTC5mb3JFYWNoKHo9PntsZXQgRT16LnRleHRDb250ZW50Py50cmltKCk7RT09PSJTeXN0ZW0gVXNhZ2UiPyh6LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+Rigic3lzdGVtIikpLHouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5DKCJzeXN0ZW0iKSkpOkU9PT0iTmV0d29yayBUcmFmZmljIj8oei5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkYoIm5ldHdvcmsiKSksei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkMoIm5ldHdvcmsiKSkpOkU9PT0iU2FsZXMgRGF0YSImJih6LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+Rigic2FsZXMiKSksei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkMoInNhbGVzIikpKX0pLHIpe2xldCB6PWcoZi5jb25uZWN0aW9ucywzMCxwKTtyLnNlcmllcz1be25hbWU6IkNvbm5lY3Rpb25zIixkYXRhOnp9XSxyLnJvbGxpbmdXaW5kb3c9YyxyLnJlYWx0aW1lTW9kZT0hMSxyLnlBeGlzU2NhbGluZz0iZml4ZWQiLHIueUF4aXNNYXg9MzUwLHIuYXV0b1Njcm9sbEludGVydmFsPTFlMyxzZXRUaW1lb3V0KCgpPT57ci51cGRhdGVUaW1lV2luZG93KCl9LDEwMCl9fX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke1FgCiAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb250cm9scyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY2hhcnQtY29udGFpbmVyIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmluZm8gewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPlN5c3RlbSBVc2FnZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TmV0d29yayBUcmFmZmljPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TYWxlcyBEYXRhPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iUmVhbC10aW1lOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RhcnQgTGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBMaXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlNwaWtlIFZhbHVlczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiPgogICAgICAgIDxkZWVzLWNoYXJ0LWFyZWEKICAgICAgICAgIGlkPSJtYWluLWNoYXJ0IgogICAgICAgICAgLmxhYmVsPSR7dC5zeXN0ZW0ubGFiZWx9CiAgICAgICAgICAuc2VyaWVzPSR7dC5zeXN0ZW0uc2VyaWVzfQogICAgICAgICAgLnlBeGlzRm9ybWF0dGVyPSR7ZS5zeXN0ZW19CiAgICAgICAgPjwvZGVlcy1jaGFydC1hcmVhPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0LWNvbnRhaW5lciIgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICA8ZGVlcy1jaGFydC1hcmVhCiAgICAgICAgICBpZD0iY29ubmVjdGlvbnMtY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHsiQWN0aXZlIENvbm5lY3Rpb25zIn0KICAgICAgICAgIC5zZXJpZXM9JHtbe25hbWU6IkNvbm5lY3Rpb25zIixkYXRhOltdfV19CiAgICAgICAgICAueUF4aXNGb3JtYXR0ZXI9JHthPT5gJHthfWB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1hcmVhPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgIFJlYWwtdGltZSBtb25pdG9yaW5nIHdpdGggMi1taW51dGUgcm9sbGluZyB3aW5kb3cg4oCiIAogICAgICAgIFVwZGF0ZXMgZXZlcnkgc2Vjb25kIHdpdGggc21vb3RoIHZhbHVlIHRyYW5zaXRpb25zIOKAoiAKICAgICAgICBDbGljayAnU3Bpa2UgVmFsdWVzJyB0byBzaW11bGF0ZSBsb2FkIHNwaWtlcwogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIGB9fSk7dmFyIFBmdCxJZnQ9YigoKT0+e3VlKCk7UGZ0PVtoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5tYWluYm94IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuY2hhcnRUaXRsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQogICAgICAuY2hhcnRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBwYWRkaW5nOiA0NHB4IDE2cHggMTZweCAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogRW5zdXJlIGNvbnRhaW5lciBkb2Vzbid0IG92ZXJyaWRlIGNoYXJ0IGJhY2tncm91bmQgKi8KICAgICAgfQogICAgICAKICAgICAgLyogQXBleENoYXJ0cyB0aGVtZSBvdmVycmlkZXMgKi8KICAgICAgLmFwZXhjaGFydHMtY2FudmFzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAuYXBleGNoYXJ0cy1pbm5lciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLmFwZXhjaGFydHMtZ3JhcGhpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICB9CiAgICBgXX0pO3ZhciBOZnQsRmZ0PWIoKCk9Pnt1ZSgpO05mdD10PT53YAogICAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRUaXRsZSI+JHt0LmxhYmVsfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgfSk7dmFyIFhpLFgyLHBWPWIoKCk9PntYaT17eHRlcm06IjUuMy4wIix4dGVybUFkZG9uRml0OiIwLjguMCIseHRlcm1BZGRvblNlYXJjaDoiMC4xMy4wIixoaWdobGlnaHRKczoiMTEuMTEuMSIsYXBleGNoYXJ0czoiNS4zLjYiLHRpcHRhcDoiMi4yMy4wIixmb250YXdlc29tZToiNy4xLjAifSxYMj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbSJ9KTt2YXIgTDIsT2Z0PWIoKCk9PntwVigpO0wyPWNsYXNzIHR7c3RhdGljIGluc3RhbmNlO3h0ZXJtTGliPW51bGw7eHRlcm1GaXRBZGRvbkxpYj1udWxsO3h0ZXJtU2VhcmNoQWRkb25MaWI9bnVsbDtoaWdobGlnaHRKc0xpYj1udWxsO2FwZXhDaGFydHNMaWI9bnVsbDt0aXB0YXBMaWI9bnVsbDt4dGVybUxvYWRpbmdQcm9taXNlPW51bGw7eHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlPW51bGw7eHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlPW51bGw7aGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZT1udWxsO2FwZXhDaGFydHNMb2FkaW5nUHJvbWlzZT1udWxsO3RpcHRhcExvYWRpbmdQcm9taXNlPW51bGw7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIHQuaW5zdGFuY2V8fCh0Lmluc3RhbmNlPW5ldyB0KSx0Lmluc3RhbmNlfWFzeW5jIGxvYWRYdGVybSgpe3JldHVybiB0aGlzLnh0ZXJtTGliP3RoaXMueHRlcm1MaWI6dGhpcy54dGVybUxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZToodGhpcy54dGVybUxvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IGE9YXdhaXQgaW1wb3J0KGAke1gyfS94dGVybUAke1hpLnh0ZXJtfS8rZXNtYCk7cmV0dXJuIGF3YWl0IHRoaXMuaW5qZWN0WHRlcm1TdHlsZXMoKSx0aGlzLnh0ZXJtTGliPXtUZXJtaW5hbDphLlRlcm1pbmFsfSx0aGlzLnh0ZXJtTGlifSkoKSx0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRYdGVybUZpdEFkZG9uKCl7cmV0dXJuIHRoaXMueHRlcm1GaXRBZGRvbkxpYj90aGlzLnh0ZXJtRml0QWRkb25MaWI6dGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2U6KHRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IGE9YXdhaXQgaW1wb3J0KGAke1gyfS94dGVybS1hZGRvbi1maXRAJHtYaS54dGVybUFkZG9uRml0fS8rZXNtYCk7cmV0dXJuIHRoaXMueHRlcm1GaXRBZGRvbkxpYj17Rml0QWRkb246YS5GaXRBZGRvbn0sdGhpcy54dGVybUZpdEFkZG9uTGlifSkoKSx0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFh0ZXJtU2VhcmNoQWRkb24oKXtyZXR1cm4gdGhpcy54dGVybVNlYXJjaEFkZG9uTGliP3RoaXMueHRlcm1TZWFyY2hBZGRvbkxpYjp0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZToodGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgYT1hd2FpdCBpbXBvcnQoYCR7WDJ9L3h0ZXJtLWFkZG9uLXNlYXJjaEAke1hpLnh0ZXJtQWRkb25TZWFyY2h9Lytlc21gKTtyZXR1cm4gdGhpcy54dGVybVNlYXJjaEFkZG9uTGliPXtTZWFyY2hBZGRvbjphLlNlYXJjaEFkZG9ufSx0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWJ9KSgpLHRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlKX1hc3luYyBpbmplY3RYdGVybVN0eWxlcygpe2xldCBlPSJ4dGVybS1jZG4tc3R5bGVzIjtpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlKSlyZXR1cm47bGV0IGE9YCR7WDJ9L3h0ZXJtQCR7WGkueHRlcm19L2Nzcy94dGVybS5jc3NgLHI9YXdhaXQoYXdhaXQgZmV0Y2goYSkpLnRleHQoKSxzPWAKLyogRml4IHh0ZXJtLmpzIFdpZHRoQ2FjaGUgbWVhc3VyZW1lbnQgY29udGFpbmVyIGNhdXNpbmcgaG9yaXpvbnRhbCBzY3JvbGxiYXIgKi8KLyogeHRlcm0gY3JlYXRlcyB0aGlzIG9uIGRvY3VtZW50LmJvZHkgLSBtb3ZlIGl0IG9mZi1zY3JlZW4gaG9yaXpvbnRhbGx5IHRvbyAqLwpib2R5ID4gZGl2W3N0eWxlKj0idG9wOiAtNTAwMDBweCJdW3N0eWxlKj0id2lkdGg6IDUwMDAwcHgiXSB7CiAgbGVmdDogLTUwMDAwcHggIWltcG9ydGFudDsKfQpgLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtuLmlkPWUsbi50ZXh0Q29udGVudD1yK3MsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX1hc3luYyBsb2FkSGlnaGxpZ2h0SnMoKXtyZXR1cm4gdGhpcy5oaWdobGlnaHRKc0xpYj90aGlzLmhpZ2hsaWdodEpzTGliOnRoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZT90aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2U6KHRoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCBhPWF3YWl0IGltcG9ydChgJHtYMn0vaGlnaGxpZ2h0LmpzQCR7WGkuaGlnaGxpZ2h0SnN9Lytlc21gKTtyZXR1cm4gdGhpcy5oaWdobGlnaHRKc0xpYj1hLmRlZmF1bHQsdGhpcy5oaWdobGlnaHRKc0xpYn0pKCksdGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkQXBleENoYXJ0cygpe3JldHVybiB0aGlzLmFwZXhDaGFydHNMaWI/dGhpcy5hcGV4Q2hhcnRzTGliOnRoaXMuYXBleENoYXJ0c0xvYWRpbmdQcm9taXNlP3RoaXMuYXBleENoYXJ0c0xvYWRpbmdQcm9taXNlOih0aGlzLmFwZXhDaGFydHNMb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCBhPWF3YWl0IGltcG9ydChgJHtYMn0vYXBleGNoYXJ0c0Ake1hpLmFwZXhjaGFydHN9Lytlc21gKTtyZXR1cm4gdGhpcy5hcGV4Q2hhcnRzTGliPWEuZGVmYXVsdCx0aGlzLmFwZXhDaGFydHNMaWJ9KSgpLHRoaXMuYXBleENoYXJ0c0xvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkVGlwdGFwKCl7cmV0dXJuIHRoaXMudGlwdGFwTGliP3RoaXMudGlwdGFwTGliOnRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2U/dGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZToodGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCBlPVhpLnRpcHRhcCxbYSxpLHIscyxuLG9dPWF3YWl0IFByb21pc2UuYWxsKFtpbXBvcnQoYCR7WDJ9L0B0aXB0YXAvY29yZUAke2V9Lytlc21gKSxpbXBvcnQoYCR7WDJ9L0B0aXB0YXAvc3RhcnRlci1raXRAJHtlfS8rZXNtYCksaW1wb3J0KGAke1gyfS9AdGlwdGFwL2V4dGVuc2lvbi11bmRlcmxpbmVAJHtlfS8rZXNtYCksaW1wb3J0KGAke1gyfS9AdGlwdGFwL2V4dGVuc2lvbi10ZXh0LWFsaWduQCR7ZX0vK2VzbWApLGltcG9ydChgJHtYMn0vQHRpcHRhcC9leHRlbnNpb24tbGlua0Ake2V9Lytlc21gKSxpbXBvcnQoYCR7WDJ9L0B0aXB0YXAvZXh0ZW5zaW9uLXR5cG9ncmFwaHlAJHtlfS8rZXNtYCldKTtyZXR1cm4gdGhpcy50aXB0YXBMaWI9e0VkaXRvcjphLkVkaXRvcixTdGFydGVyS2l0OmkuZGVmYXVsdHx8aS5TdGFydGVyS2l0LFVuZGVybGluZTpyLmRlZmF1bHR8fHIuVW5kZXJsaW5lLFRleHRBbGlnbjpzLmRlZmF1bHR8fHMuVGV4dEFsaWduLExpbms6bi5kZWZhdWx0fHxuLkxpbmssVHlwb2dyYXBoeTpvLmRlZmF1bHR8fG8uVHlwb2dyYXBoeX0sdGhpcy50aXB0YXBMaWJ9KSgpLHRoaXMudGlwdGFwTG9hZGluZ1Byb21pc2UpfWFzeW5jIHByZWxvYWRBbGwoKXthd2FpdCBQcm9taXNlLmFsbChbdGhpcy5sb2FkWHRlcm0oKSx0aGlzLmxvYWRYdGVybUZpdEFkZG9uKCksdGhpcy5sb2FkWHRlcm1TZWFyY2hBZGRvbigpLHRoaXMubG9hZEhpZ2hsaWdodEpzKCksdGhpcy5sb2FkQXBleENoYXJ0cygpLHRoaXMubG9hZFRpcHRhcCgpXSl9aXNMb2FkZWQoZSl7c3dpdGNoKGUpe2Nhc2UieHRlcm0iOnJldHVybiB0aGlzLnh0ZXJtTGliIT09bnVsbDtjYXNlInh0ZXJtRml0QWRkb24iOnJldHVybiB0aGlzLnh0ZXJtRml0QWRkb25MaWIhPT1udWxsO2Nhc2UieHRlcm1TZWFyY2hBZGRvbiI6cmV0dXJuIHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYiE9PW51bGw7Y2FzZSJoaWdobGlnaHRKcyI6cmV0dXJuIHRoaXMuaGlnaGxpZ2h0SnNMaWIhPT1udWxsO2Nhc2UiYXBleENoYXJ0cyI6cmV0dXJuIHRoaXMuYXBleENoYXJ0c0xpYiE9PW51bGw7Y2FzZSJ0aXB0YXAiOnJldHVybiB0aGlzLnRpcHRhcExpYiE9PW51bGw7ZGVmYXVsdDpyZXR1cm4hMX19fX0pO3ZhciB1bz1iKCgpPT57T2Z0KCk7cFYoKX0pO3ZhciBWcixvMixSZnQsZFY9YigoKT0+e3VlKCk7VHQoKTtFZnQoKTtJZnQoKTtGZnQoKTt1bygpO1ZyPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sbzI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFJmdD0oKCk9PntsZXQgdD1baGUoImRlZXMtY2hhcnQtYXJlYSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdO3ZhciBWPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgUj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtKKCldLGQ9W0koKV0sbD1bSSh7dHlwZTpBcnJheX0pXSx5PVtJKHthdHRyaWJ1dGU6ITF9KV0seD1bSSh7dHlwZTpOdW1iZXJ9KV0sRj1bSSh7dHlwZTpCb29sZWFufSldLE49W0koe3R5cGU6U3RyaW5nfSldLHE9W0koe3R5cGU6TnVtYmVyfSldLEU9W0koe3R5cGU6TnVtYmVyfSldLFZyKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2hhcnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJjaGFydCJpbiBVLGdldDpVPT5VLmNoYXJ0LHNldDooVSxyZSk9PntVLmNoYXJ0PXJlfX0sbWV0YWRhdGE6Un0sbixvKSxWcih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4ibGFiZWwiaW4gVSxnZXQ6VT0+VS5sYWJlbCxzZXQ6KFUscmUpPT57VS5sYWJlbD1yZX19LG1ldGFkYXRhOlJ9LGMscCksVnIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJzZXJpZXMiaW4gVSxnZXQ6VT0+VS5zZXJpZXMsc2V0OihVLHJlKT0+e1Uuc2VyaWVzPXJlfX0sbWV0YWRhdGE6Un0sZixnKSxWcih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InlBeGlzRm9ybWF0dGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4ieUF4aXNGb3JtYXR0ZXIiaW4gVSxnZXQ6VT0+VS55QXhpc0Zvcm1hdHRlcixzZXQ6KFUscmUpPT57VS55QXhpc0Zvcm1hdHRlcj1yZX19LG1ldGFkYXRhOlJ9LHYsbSksVnIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb2xsaW5nV2luZG93IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpVPT4icm9sbGluZ1dpbmRvdyJpbiBVLGdldDpVPT5VLnJvbGxpbmdXaW5kb3csc2V0OihVLHJlKT0+e1Uucm9sbGluZ1dpbmRvdz1yZX19LG1ldGFkYXRhOlJ9LE0sUyksVnIodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWFsdGltZU1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJyZWFsdGltZU1vZGUiaW4gVSxnZXQ6VT0+VS5yZWFsdGltZU1vZGUsc2V0OihVLHJlKT0+e1UucmVhbHRpbWVNb2RlPXJlfX0sbWV0YWRhdGE6Un0sXyxrKSxWcih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InlBeGlzU2NhbGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VT0+InlBeGlzU2NhbGluZyJpbiBVLGdldDpVPT5VLnlBeGlzU2NhbGluZyxzZXQ6KFUscmUpPT57VS55QXhpc1NjYWxpbmc9cmV9fSxtZXRhZGF0YTpSfSxMLEEpLFZyKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNNYXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlU9PiJ5QXhpc01heCJpbiBVLGdldDpVPT5VLnlBeGlzTWF4LHNldDooVSxyZSk9PntVLnlBeGlzTWF4PXJlfX0sbWV0YWRhdGE6Un0sQyx6KSxWcih0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TY3JvbGxJbnRlcnZhbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6VT0+ImF1dG9TY3JvbGxJbnRlcnZhbCJpbiBVLGdldDpVPT5VLmF1dG9TY3JvbGxJbnRlcnZhbCxzZXQ6KFUscmUpPT57VS5hdXRvU2Nyb2xsSW50ZXJ2YWw9cmV9fSxtZXRhZGF0YTpSfSxULCQpLFZyKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOlJ9LG51bGwsYSksVj1pPWUudmFsdWUsUiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpSfSl9c3RhdGljIGRlbW89RGZ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiQ2hhcnQiXTsjZT1vMih0aGlzLG4sdm9pZCAwKTtnZXQgY2hhcnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY2hhcnQoUil7dGhpcy4jZT1SfSN0PShvMih0aGlzLG8pLG8yKHRoaXMsYywiVW50aXRsZWQgQ2hhcnQiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGxhYmVsKFIpe3RoaXMuI3Q9Un0jYT0obzIodGhpcyxwKSxvMih0aGlzLGYsW10pKTtnZXQgc2VyaWVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNlcmllcyhSKXt0aGlzLiNhPVJ9Z2V0IGNoYXJ0U2VyaWVzKCl7cmV0dXJuIHRoaXMuaW50ZXJuYWxDaGFydERhdGEubGVuZ3RoPjA/dGhpcy5pbnRlcm5hbENoYXJ0RGF0YTp0aGlzLnNlcmllc30jaT0obzIodGhpcyxnKSxvMih0aGlzLHYsUj0+YCR7Un0gTWJwc2ApKTtnZXQgeUF4aXNGb3JtYXR0ZXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgeUF4aXNGb3JtYXR0ZXIoUil7dGhpcy4jaT1SfSNyPShvMih0aGlzLG0pLG8yKHRoaXMsTSwwKSk7Z2V0IHJvbGxpbmdXaW5kb3coKXtyZXR1cm4gdGhpcy4jcn1zZXQgcm9sbGluZ1dpbmRvdyhSKXt0aGlzLiNyPVJ9I3M9KG8yKHRoaXMsUyksbzIodGhpcyxfLCExKSk7Z2V0IHJlYWx0aW1lTW9kZSgpe3JldHVybiB0aGlzLiNzfXNldCByZWFsdGltZU1vZGUoUil7dGhpcy4jcz1SfSNuPShvMih0aGlzLGspLG8yKHRoaXMsTCwiZHluYW1pYyIpKTtnZXQgeUF4aXNTY2FsaW5nKCl7cmV0dXJuIHRoaXMuI259c2V0IHlBeGlzU2NhbGluZyhSKXt0aGlzLiNuPVJ9I289KG8yKHRoaXMsQSksbzIodGhpcyxDLDEwMCkpO2dldCB5QXhpc01heCgpe3JldHVybiB0aGlzLiNvfXNldCB5QXhpc01heChSKXt0aGlzLiNvPVJ9I2w9KG8yKHRoaXMseiksbzIodGhpcyxULDFlMykpO2dldCBhdXRvU2Nyb2xsSW50ZXJ2YWwoKXtyZXR1cm4gdGhpcy4jbH1zZXQgYXV0b1Njcm9sbEludGVydmFsKFIpe3RoaXMuI2w9Un1yZXNpemVPYnNlcnZlcj1vMih0aGlzLCQpO3Jlc2l6ZVRpbWVvdXQ7aW50ZXJuYWxDaGFydERhdGE9W107YXV0b1Njcm9sbFRpbWVyPW51bGw7REVCVUdfUkVTSVpFPSExO0NIQVJUX0NPTE9SUz17ZGFyazpbImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMTczLjQgODAuNCUgNDAlKSIsImhzbCgyODAuMyA4Ny40JSA2Ni43JSkiLCJoc2woMjQuNiA5NSUgNTMuMSUpIl0sbGlnaHQ6WyJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgyODAuMyA0Ny43JSA1MC4yJSkiLCJoc2woMjAuNSA5MC4yJSA0OC4yJSkiXX07Y29uc3RydWN0b3IoKXtzdXBlcigpLGIxLnNldHVwKCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoUj0+e3RoaXMucmVzaXplVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZW91dCksdGhpcy5yZXNpemVUaW1lb3V0PXdpbmRvdy5zZXRUaW1lb3V0KCgpPT57aWYodGhpcy5jaGFydCl7aWYodGhpcy5ERUJVR19SRVNJWkUmJlIubGVuZ3RoPjApe2xldCBVPVJbMF07Y29uc29sZS5sb2coIkRlZXNDaGFydEFyZWEgLSBSZXNpemUgZGV0ZWN0ZWQ6Iix7d2lkdGg6VS5jb250ZW50UmVjdC53aWR0aCxoZWlnaHQ6VS5jb250ZW50UmVjdC5oZWlnaHR9KX10aGlzLnJlc2l6ZUNoYXJ0KCl9fSwxMDApfSksdGhpcy5yZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihhc3luYygpPT57aWYodGhpcy5yZXNpemVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KSx0aGlzLnJlc2l6ZU9ic2VydmVyJiZ0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnN0b3BBdXRvU2Nyb2xsKCksdGhpcy5jaGFydCl0cnl7dGhpcy5jaGFydC5kZXN0cm95KCksdGhpcy5jaGFydD1udWxsfWNhdGNoKFIpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGRlc3Ryb3lpbmcgY2hhcnQ6IixSKX19KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jaGFydCYmKGF3YWl0IG5ldyBQcm9taXNlKFI9PnJlcXVlc3RBbmltYXRpb25GcmFtZShSKSksYXdhaXQgdGhpcy5yZXNpemVDaGFydCgpKX1zdGF0aWMgc3R5bGVzPVBmdDtyZW5kZXIoKXtyZXR1cm4gTmZ0KHRoaXMpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlO2xldCBSPWF3YWl0IEwyLmdldEluc3RhbmNlKCkubG9hZEFwZXhDaGFydHMoKTthd2FpdCBuZXcgUHJvbWlzZShvZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9lKSk7bGV0IFU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluYm94IikscmU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKCFVfHwhcmUpe2NvbnNvbGUuZXJyb3IoIkNoYXJ0IGNvbnRhaW5lcnMgbm90IGZvdW5kIik7cmV0dXJufWxldCBqPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJlKSxtZT1wYXJzZUludChqLnBhZGRpbmdUb3AsMTApLHdlPXBhcnNlSW50KGoucGFkZGluZ0JvdHRvbSwxMCksSD1wYXJzZUludChqLnBhZGRpbmdMZWZ0LDEwKSxjZT1wYXJzZUludChqLnBhZGRpbmdSaWdodCwxMCksa2U9VS5jbGllbnRXaWR0aC1ILWNlLFc9VS5vZmZzZXRIZWlnaHQtbWUtd2UsRD10aGlzLnNlcmllcy5sZW5ndGg+MD90aGlzLnNlcmllczpbe25hbWU6ImNwdSIsZGF0YTpbe3g6IjIwMjUtMDEtMTVUMDM6MDA6MDAiLHk6MjV9LHt4OiIyMDI1LTAxLTE1VDA3OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxMTowMDowMCIseToyMH0se3g6IjIwMjUtMDEtMTVUMTU6MDA6MDAiLHk6MzV9LHt4OiIyMDI1LTAxLTE1VDE5OjAwOjAwIix5OjI1fV19LHtuYW1lOiJtZW1vcnkiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseToxMn0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MTB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseTo0MH1dfV07dGhpcy5pbnRlcm5hbENoYXJ0RGF0YT1EO2xldCBPPSF0aGlzLmdvQnJpZ2h0LFo9Tz8iZGFyayI6ImxpZ2h0Ijt2YXIgWT17c2VyaWVzOkQsY2hhcnQ6e3dpZHRoOmtlfHwxMDAsaGVpZ2h0Old8fDEwMCx0eXBlOiJhcmVhIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsdG9vbGJhcjp7c2hvdzohMX0sYW5pbWF0aW9uczp7ZW5hYmxlZDohdGhpcy5yZWFsdGltZU1vZGUsc3BlZWQ6NDAwLGFuaW1hdGVHcmFkdWFsbHk6e2VuYWJsZWQ6ITEsZGVsYXk6MH0sZHluYW1pY0FuaW1hdGlvbjp7ZW5hYmxlZDohdGhpcy5yZWFsdGltZU1vZGUsc3BlZWQ6MzUwfX0sem9vbTp7ZW5hYmxlZDohMX0sc2VsZWN0aW9uOntlbmFibGVkOiExfX0sZGF0YUxhYmVsczp7ZW5hYmxlZDohMX0sc3Ryb2tlOnt3aWR0aDoyLGN1cnZlOiJzbW9vdGgifSx4YXhpczp7dHlwZToiZGF0ZXRpbWUiLGxhYmVsczp7Zm9ybWF0OiJISDptbTpzcyIsZGF0ZXRpbWVVVEM6ITEsc3R5bGU6e2NvbG9yczpbTz8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdLGZvbnRTaXplOiIxMnB4Iixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRXZWlnaHQ6IjQwMCJ9fSxheGlzQm9yZGVyOntzaG93OiExfSxheGlzVGlja3M6e3Nob3c6ITF9fSx5YXhpczp7bWluOjAsbWF4OnRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiP3ZvaWQgMDp0aGlzLnlBeGlzTWF4LGxhYmVsczp7Zm9ybWF0dGVyOnRoaXMueUF4aXNGb3JtYXR0ZXIsc3R5bGU6e2NvbG9yczpbTz8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdLGZvbnRTaXplOiIxMnB4Iixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRXZWlnaHQ6IjQwMCJ9fSxheGlzQm9yZGVyOntzaG93OiExfSxheGlzVGlja3M6e3Nob3c6ITF9fSx0b29sdGlwOntzaGFyZWQ6ITAsaW50ZXJzZWN0OiExLGZvbGxvd0N1cnNvcjohMCx4Ontmb3JtYXQ6ImRkL01NL3l5IEhIOm1tIn0sY3VzdG9tOih7c2VyaWVzOm9lLGRhdGFQb2ludEluZGV4OmdlLHc6YmV9KT0+e2xldCBCPWJlLmNvbmZpZy50aGVtZS5tb2RlPT09ImRhcmsiLFA9Qj8iaHNsKDAgMCUgOSUpIjoiaHNsKDAgMCUgMTAwJSkiLEs9Qj8iaHNsKDAgMCUgOTUlKSI6ImhzbCgwIDAlIDklKSIsZmU9Qj8iaHNsKDAgMCUgMTQuOSUpIjoiaHNsKDAgMCUgODkuOCUpIixkZT1iZS5jb25maWcueWF4aXNbMF0/LmxhYmVscz8uZm9ybWF0dGVyfHwocGU9PnBlLnRvU3RyaW5nKCkpLF9lPWA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiAke1B9OyBjb2xvcjogJHtLfTsgYm9yZGVyLXJhZGl1czogNnB4OyBib3gtc2hhZG93OiAwIDJweCA4cHggMCBoc2woMCAwJSAwJSAvICR7Qj8iMC4yIjoiMC4xIn0pOyBib3JkZXI6IDFweCBzb2xpZCAke2ZlfTtmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHg7Ij5gO3JldHVybiBvZS5mb3JFYWNoKChwZSx0ZSk9PntsZXQgemU9YmUuZ2xvYmFscy5zZXJpZXNOYW1lc1t0ZV0sRmU9cGVbZ2VdLFdlPWJlLmdsb2JhbHMuY29sb3JzW3RlXSx5ZT1kZShGZSk7X2UrPWA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgbWFyZ2luOiAke3RlPjA/IjZweCI6IjAifSAwOyI+CiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgYmFja2dyb3VuZDogJHtXZX07IGJvcmRlci1yYWRpdXM6IDJweDsiPjwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IDUwMDsiPiR7emV9Ojwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0ibWFyZ2luLWxlZnQ6IGF1dG87IGZvbnQtd2VpZ2h0OiA2MDA7Ij4ke3llfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+YH0pLF9lKz0iPC9kaXY+IixfZX19LGdyaWQ6e3hheGlzOntsaW5lczp7c2hvdzohMX19LHlheGlzOntsaW5lczp7c2hvdzohMH19LGJvcmRlckNvbG9yOk8/ImhzbCgwIDAlIDE0LjklKSI6ImhzbCgwIDAlIDk0JSkiLHN0cm9rZURhc2hBcnJheTowLHBhZGRpbmc6e3RvcDoxMCxyaWdodDoyMCxib3R0b206MTAsbGVmdDoyMH19LGZpbGw6e3R5cGU6ImdyYWRpZW50IixncmFkaWVudDp7c2hhZGU6Tz8iZGFyayI6ImxpZ2h0Iix0eXBlOiJ2ZXJ0aWNhbCIsc2hhZGVJbnRlbnNpdHk6LjEsb3BhY2l0eUZyb206Tz8uMjouMyxvcGFjaXR5VG86MCxzdG9wczpbMCwxMDBdfX0sY29sb3JzOk8/dGhpcy5DSEFSVF9DT0xPUlMuZGFyazp0aGlzLkNIQVJUX0NPTE9SUy5saWdodCx0aGVtZTp7bW9kZTpafX07dHJ5e3RoaXMuY2hhcnQ9bmV3IFIodGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpLFkpLGF3YWl0IHRoaXMuY2hhcnQucmVuZGVyKCksYXdhaXQgbmV3IFByb21pc2UoZ2U9PnNldFRpbWVvdXQoZ2UsMTAwKSksYXdhaXQgdGhpcy5yZXNpemVDaGFydCgpO2xldCBvZT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5ib3giKTtvZSYmdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShvZSksdGhpcy5ERUJVR19SRVNJWkUmJmNvbnNvbGUubG9nKCJEZWVzQ2hhcnRBcmVhIC0gUmVzaXplT2JzZXJ2ZXIgYXR0YWNoZWQgdG8gbWFpbmJveCIpKX1jYXRjaChvZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgY2hhcnQ6IixvZSl9fWFzeW5jIHVwZGF0ZWQoUil7c3VwZXIudXBkYXRlZChSKSxSLmhhcygiZ29CcmlnaHQiKSYmdGhpcy5jaGFydCYmYXdhaXQgdGhpcy51cGRhdGVDaGFydFRoZW1lKCksUi5oYXMoInNlcmllcyIpJiZ0aGlzLmNoYXJ0JiZ0aGlzLnNlcmllcy5sZW5ndGg+MCYmYXdhaXQgdGhpcy51cGRhdGVTZXJpZXModGhpcy5zZXJpZXMpLFIuaGFzKCJ5QXhpc0Zvcm1hdHRlciIpJiZ0aGlzLmNoYXJ0JiZhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe3lheGlzOntsYWJlbHM6e2Zvcm1hdHRlcjp0aGlzLnlBeGlzRm9ybWF0dGVyfX19KSxSLmhhcygicmVhbHRpbWVNb2RlIikmJnRoaXMuY2hhcnQmJihhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe2NoYXJ0OnthbmltYXRpb25zOntlbmFibGVkOiF0aGlzLnJlYWx0aW1lTW9kZSxzcGVlZDo0MDAsYW5pbWF0ZUdyYWR1YWxseTp7ZW5hYmxlZDohMSxkZWxheTowfSxkeW5hbWljQW5pbWF0aW9uOntlbmFibGVkOiF0aGlzLnJlYWx0aW1lTW9kZSxzcGVlZDozNTB9fX19KSx0aGlzLnJlYWx0aW1lTW9kZSYmdGhpcy5yb2xsaW5nV2luZG93PjAmJnRoaXMuYXV0b1Njcm9sbEludGVydmFsPjA/dGhpcy5zdGFydEF1dG9TY3JvbGwoKTp0aGlzLnN0b3BBdXRvU2Nyb2xsKCkpLFIuaGFzKCJhdXRvU2Nyb2xsSW50ZXJ2YWwiKSYmdGhpcy5jaGFydCYmKHRoaXMuc3RvcEF1dG9TY3JvbGwoKSx0aGlzLnJlYWx0aW1lTW9kZSYmdGhpcy5yb2xsaW5nV2luZG93PjAmJnRoaXMuYXV0b1Njcm9sbEludGVydmFsPjAmJnRoaXMuc3RhcnRBdXRvU2Nyb2xsKCkpLChSLmhhcygieUF4aXNTY2FsaW5nIil8fFIuaGFzKCJ5QXhpc01heCIpKSYmdGhpcy5jaGFydCYmYXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHt5YXhpczp7bWluOjAsbWF4OnRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiP3ZvaWQgMDp0aGlzLnlBeGlzTWF4fX0pfWFzeW5jIHVwZGF0ZVNlcmllcyhSLFU9ITApe2lmKHRoaXMuY2hhcnQpdHJ5e2lmKHRoaXMuaW50ZXJuYWxDaGFydERhdGE9Uix0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5yZWFsdGltZU1vZGUpe2xldCBqPURhdGUubm93KCktdGhpcy5yb2xsaW5nV2luZG93LG1lPVIubWFwKHdlPT4oe25hbWU6d2UubmFtZSxkYXRhOndlLmRhdGEuZmlsdGVyKEg9PnR5cGVvZiBIPT0ib2JqZWN0IiYmSCE9PW51bGwmJiJ4ImluIEg/bmV3IERhdGUoSC54KS5nZXRUaW1lKCk+ajohMSl9KSk7aWYobWUuc29tZSh3ZT0+d2UuZGF0YS5sZW5ndGg+MCkpe2lmKHRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiKXtsZXQgd2U9bWUuZmxhdE1hcChIPT5ILmRhdGEubWFwKGNlPT5jZS55KSk7aWYod2UubGVuZ3RoPjApe2xldCBIPU1hdGgubWF4KC4uLndlKSxjZT1NYXRoLmNlaWwoSCoxLjEpO2F3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7eWF4aXM6e21pbjowLG1heDpjZX19LCExLCExKX19YXdhaXQgdGhpcy5jaGFydC51cGRhdGVTZXJpZXMobWUsITEpfX1lbHNlIGF3YWl0IHRoaXMuY2hhcnQudXBkYXRlU2VyaWVzKFIsVSl9Y2F0Y2gocmUpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGRhdGUgY2hhcnQgc2VyaWVzOiIscmUpfX1hc3luYyB1cGRhdGVUaW1lV2luZG93KCl7aWYoIXRoaXMuY2hhcnR8fHRoaXMucm9sbGluZ1dpbmRvdzw9MClyZXR1cm47bGV0IFI9RGF0ZS5ub3coKSxVPVItdGhpcy5yb2xsaW5nV2luZG93O2F3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7eGF4aXM6e21pbjpVLG1heDpSLGxhYmVsczp7Zm9ybWF0OiJISDptbTpzcyIsZGF0ZXRpbWVVVEM6ITEsc3R5bGU6e2NvbG9yczpbdGhpcy5nb0JyaWdodD8iaHNsKDAgMCUgMjAlKSI6ImhzbCgwIDAlIDYzLjklKSJdLGZvbnRTaXplOiIxMnB4Iixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRXZWlnaHQ6IjQwMCJ9fSx0aWNrQW1vdW50OjZ9fSwhMSwhMSl9YXN5bmMgYXBwZW5kRGF0YShSKXt0aGlzLmNoYXJ0JiZ0aGlzLmNoYXJ0LmFwcGVuZERhdGEoUil9YXN5bmMgdXBkYXRlT3B0aW9ucyhSLFUscmUpe2lmKHRoaXMuY2hhcnQpcmV0dXJuIHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyhSLFUscmUpfWFzeW5jIHJlc2l6ZUNoYXJ0KCl7aWYodGhpcy5jaGFydCl7dGhpcy5ERUJVR19SRVNJWkUmJmNvbnNvbGUubG9nKCJEZWVzQ2hhcnRBcmVhIC0gcmVzaXplQ2hhcnQgY2FsbGVkIik7dHJ5e2xldCBSPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbmJveCIpLFU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKCFSfHwhVSlyZXR1cm47Ui5vZmZzZXRIZWlnaHQ7bGV0IHJlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKFUpLGo9cGFyc2VJbnQocmUucGFkZGluZ1RvcCwxMCksbWU9cGFyc2VJbnQocmUucGFkZGluZ0JvdHRvbSwxMCksd2U9cGFyc2VJbnQocmUucGFkZGluZ0xlZnQsMTApLEg9cGFyc2VJbnQocmUucGFkZGluZ1JpZ2h0LDEwKSxjZT1SLmNsaWVudFdpZHRoLXdlLUgsa2U9Ui5vZmZzZXRIZWlnaHQtai1tZTtjZT4wJiZrZT4wJiYodGhpcy5ERUJVR19SRVNJWkUmJmNvbnNvbGUubG9nKCJEZWVzQ2hhcnRBcmVhIC0gVXBkYXRpbmcgY2hhcnQgZGltZW5zaW9uczoiLHt3aWR0aDpjZSxoZWlnaHQ6a2V9KSxhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe2NoYXJ0Ont3aWR0aDpjZSxoZWlnaHQ6a2V9fSwhMCwhMSkpfWNhdGNoKFIpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZXNpemUgY2hhcnQ6IixSKX19fWFzeW5jIGZvcmNlUmVzaXplKCl7YXdhaXQgdGhpcy5yZXNpemVDaGFydCgpfXN0YXJ0QXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyfHwodGhpcy5hdXRvU2Nyb2xsVGltZXI9d2luZG93LnNldEludGVydmFsKCgpPT57dGhpcy51cGRhdGVUaW1lV2luZG93KCl9LHRoaXMuYXV0b1Njcm9sbEludGVydmFsKSl9c3RvcEF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGxUaW1lciYmKHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuYXV0b1Njcm9sbFRpbWVyKSx0aGlzLmF1dG9TY3JvbGxUaW1lcj1udWxsKX1hc3luYyB1cGRhdGVDaGFydFRoZW1lKCl7aWYoIXRoaXMuY2hhcnQpcmV0dXJuO2xldCBSPSF0aGlzLmdvQnJpZ2h0LFU9Uj8iZGFyayI6ImxpZ2h0Ijthd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe3RoZW1lOnttb2RlOlV9LGNvbG9yczpSP3RoaXMuQ0hBUlRfQ09MT1JTLmRhcms6dGhpcy5DSEFSVF9DT0xPUlMubGlnaHQseGF4aXM6e2xhYmVsczp7c3R5bGU6e2NvbG9yczpbUj8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdfX19LHlheGlzOntsYWJlbHM6e3N0eWxlOntjb2xvcnM6W1I/ImhzbCgwIDAlIDYzLjklKSI6ImhzbCgwIDAlIDIwJSkiXX19fSxncmlkOntib3JkZXJDb2xvcjpSPyJoc2woMCAwJSAxNC45JSkiOiJoc2woMCAwJSA5NCUpIn0sZmlsbDp7Z3JhZGllbnQ6e3NoYWRlOlI/ImRhcmsiOiJsaWdodCIsb3BhY2l0eUZyb206Uj8uMjouM319fSl9c3RhdGlje28yKGksYSl9fTtyZXR1cm4gVj1pfSkoKX0pO3ZhciBCZnQ9YigoKT0+e2RWKCl9KTt2YXIgSGZ0LHFmdD1iKCgpPT57dWUoKTt5MSgpO0hmdD0oKT0+d2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoIiNzdHJ1Y3R1cmVkLWxvZyIpLGE9dC5xdWVyeVNlbGVjdG9yKCIjcmF3LWxvZyIpLGkscixzPVsiU2VydmVyIiwiRGF0YWJhc2UiLCJBUEkiLCJBdXRoIiwiQ2FjaGUiLCJRdWV1ZSIsIldlYlNvY2tldCIsIlNjaGVkdWxlciJdLG49e2RlYnVnOlsiTG9hZGluZyBtb2R1bGU6IHt7bW9kdWxlfX0iLCJDYWNoZSBoaXQgZm9yIGtleToge3trZXl9fSIsIlNRTCBxdWVyeSBleGVjdXRlZCBpbiB7e3RpbWV9fW1zIiwiUmVxdWVzdCBoZWFkZXJzOiB7e2hlYWRlcnN9fSIsIkVudmlyb25tZW50IHZhcmlhYmxlIGxvYWRlZDoge3t2YXJ9fSJdLGluZm86WyJSZXF1ZXN0IHJlY2VpdmVkOiB7e21ldGhvZH19IHt7cGF0aH19IiwiVXNlciB7e3VzZXJJZH19IGF1dGhlbnRpY2F0ZWQgc3VjY2Vzc2Z1bGx5IiwiUHJvY2Vzc2luZyBqb2Ige3tqb2JJZH19IGZyb20gcXVldWUiLCdTY2hlZHVsZWQgdGFzayAie3t0YXNrfX0iIHN0YXJ0ZWQnLCJXZWJTb2NrZXQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCBmcm9tIHt7aXB9fSJdLHdhcm46WyJTbG93IHF1ZXJ5IGRldGVjdGVkOiB7e3F1ZXJ5fX0gKHt7dGltZX19bXMpIiwiTWVtb3J5IHVzYWdlIGF0IHt7cGVyY2VudH19JSIsIlJhdGUgbGltaXQgYXBwcm9hY2hpbmcgZm9yIElQIHt7aXB9fSIsIkRlcHJlY2F0ZWQgQVBJIGVuZHBvaW50IGNhbGxlZDoge3tlbmRwb2ludH19IiwiQ2VydGlmaWNhdGUgZXhwaXJlcyBpbiB7e2RheXN9fSBkYXlzIl0sZXJyb3I6WyJEYXRhYmFzZSBjb25uZWN0aW9uIGxvc3Q6IHt7ZXJyb3J9fSIsIkZhaWxlZCB0byBwcm9jZXNzIHJlcXVlc3Q6IHt7ZXJyb3J9fSIsIkF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgdXNlciB7e3VzZXJ9fSIsIkZpbGUgbm90IGZvdW5kOiB7e3BhdGh9fSIsIlNlcnZpY2UgdW5hdmFpbGFibGU6IHt7c2VydmljZX19Il0sc3VjY2VzczpbIlNlcnZlciBzdGFydGVkIHN1Y2Nlc3NmdWxseSBvbiBwb3J0IHt7cG9ydH19IiwiRGF0YWJhc2UgbWlncmF0aW9uIGNvbXBsZXRlZCIsIkJhY2t1cCBjb21wbGV0ZWQ6IHt7c2l6ZX19IE1CIiwiU1NMIGNlcnRpZmljYXRlIHJlbmV3ZWQiLCJIZWFsdGggY2hlY2sgcGFzc2VkOiBhbGwgc3lzdGVtcyBvcGVyYXRpb25hbCJdfSxvPVsiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ1LjEyM1pceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtuZ2lueF0gR0VUIC9hcGkvaGVhbHRoIDIwMCAtIDJtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS40NTZaXHgxQlswbSBceDFCWzMzbVdBUk5ceDFCWzBtICBbcmVkaXNdIENvbm5lY3Rpb24gcG9vbCBydW5uaW5nIGxvdzogMy8xMCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS43ODlaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbbW9uZ29kYl0gUXVlcnkgdGltZW91dCBhZnRlciAzMDAwMG1zIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjAxMlpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFthcHBdIFByb2Nlc3NpbmcgYmF0Y2ggam9iICN7e2pvYklkfX0iLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuMzQ1Wlx4MUJbMG0gXHgxQlszMm1PS1x4MUJbMG0gICAgW2hlYWx0aF0gQWxsIHNlcnZpY2VzIGhlYWx0aHkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuNjc4Wlx4MUJbMG0gXHgxQlszNm1JTkZPXHgxQlswbSAgW2thZmthXSBNZXNzYWdlIGNvbnN1bWVkIGZyb20gdG9waWM6IGV2ZW50cyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4wMDFaXHgxQlswbSBceDFCWzM1bURFQlVHXHgxQlswbSBbZ3JwY10gUmVxdWVzdCByZWNlaXZlZDogR2V0VXNlcihpZD17e3VzZXJJZH19KSIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4yMzRaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbYXV0aF0gVG9rZW4gdmFsaWRhdGlvbiBmYWlsZWQ6IGV4cGlyZWQiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuNTY3Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JhdGUtbGltaXRdIElQIHt7aXB9fSBhcHByb2FjaGluZyByYXRlIGxpbWl0IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3Ljg5MFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFt3ZWJzb2NrZXRdIENsaWVudCBjb25uZWN0ZWQ6IHNlc3Npb249e3tzZXNzaW9ufX0iLGBceDFCWzMxbUVycm9yOiBDb25uZWN0aW9uIHJlZnVzZWRceDFCWzBtCiAgICBhdCBUY3BDb25uZWN0aW9uLmNvbm5lY3QgKC9hcHAvbm9kZV9tb2R1bGVzL3BnL2xpYi9jb25uZWN0aW9uLmpzOjEyOjE1KQogICAgYXQgUG9vbC5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvcG9vbC5qczo0NToyMykKICAgIGF0IGFzeW5jIERhdGFiYXNlU2VydmljZS5xdWVyeSAoL2FwcC9zcmMvZGIvc2VydmljZS50czo4OToxMilgXSxkPSgpPT57bGV0IHY9WyJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJzdWNjZXNzIl0sbT1bLjIsLjUsLjE1LC4xLC4wNV0seD1NYXRoLnJhbmRvbSgpLE09MCxTPSJpbmZvIjtmb3IobGV0IEw9MDtMPG0ubGVuZ3RoO0wrKylpZihNKz1tW0xdLHg8TSl7Uz12W0xdO2JyZWFrfWxldCBGPXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnMubGVuZ3RoKV0sXz1uW1NdLE49X1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqXy5sZW5ndGgpXS5yZXBsYWNlKCJ7e21vZHVsZX19IixbImV4cHJlc3MiLCJtb25nb29zZSIsInJlZGlzIiwic29ja2V0LmlvIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3trZXl9fSIsInVzZXI6IitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKSkucmVwbGFjZSgie3t0aW1lfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSs1MCkpLnJlcGxhY2UoInt7aGVhZGVyc319IiwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uLCBBdXRob3JpemF0aW9uOiBCZWFyZXIgLi4uIikucmVwbGFjZSgie3t2YXJ9fSIsWyJOT0RFX0VOViIsIkRBVEFCQVNFX1VSTCIsIkFQSV9LRVkiLCJQT1JUIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3ttZXRob2R9fSIsWyJHRVQiLCJQT1NUIiwiUFVUIiwiREVMRVRFIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3twYXRofX0iLFsiL2FwaS91c2VycyIsIi9hcGkvYXV0aC9sb2dpbiIsIi9hcGkvcHJvZHVjdHMiLCIvaGVhbHRoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tqb2JJZH19Iiwiam9iXyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKS5yZXBsYWNlKCJ7e3Rhc2t9fSIsWyJjbGVhbnVwIiwiYmFja3VwIiwicmVwb3J0LWdlbmVyYXRpb24iLCJjYWNoZS1yZWZyZXNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3txdWVyeX19IiwiU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSAuLi4iKS5yZXBsYWNlKCJ7e3BlcmNlbnR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMCkrNzApKS5yZXBsYWNlKCJ7e2VuZHBvaW50fX0iLCIvYXBpL3YxL2xlZ2FjeSIpLnJlcGxhY2UoInt7ZGF5c319IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSsxKSkucmVwbGFjZSgie3tlcnJvcn19IixbIkVDT05OUkVGVVNFRCIsIkVUSU1FRE9VVCIsIkVOT1RGT1VORCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKV0pLnJlcGxhY2UoInt7dXNlcn19IiwidXNlcl8iK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3NlcnZpY2V9fSIsWyJSZWRpcyIsIk1vbmdvREIiLCJFbGFzdGljU2VhcmNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3twb3J0fX0iLFN0cmluZygzZTMrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwKSkpLnJlcGxhY2UoInt7c2l6ZX19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjUwMCkrMTAwKSk7ZS5hZGRMb2coUyxOLEYpfSxjPSgpPT57bGV0IHY9b1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqby5sZW5ndGgpXSxtPW5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSx4PXYucmVwbGFjZSgvMjAyNC0wMS0xNVQxMDoyMzpcZHsyfVwuXGR7M31aL2csbSkucmVwbGFjZSgie3tqb2JJZH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlNCkpKS5yZXBsYWNlKCJ7e3VzZXJJZH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlNCkpKS5yZXBsYWNlKCJ7e2lwfX0iLGAxOTIuMTY4LjEuJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjU1KX1gKS5yZXBsYWNlKCJ7e3Nlc3Npb259fSIsTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKTthLndyaXRlbG5SYXcoeCl9LHA9KCk9PntpZighaSl7bGV0IHY9KCk9PntkKCk7bGV0IG09TWF0aC5yYW5kb20oKSoyZTMrNTAwO2k9d2luZG93LnNldFRpbWVvdXQoKCk9PntpJiZ2KCl9LG0pfTt2KCl9fSxsPSgpPT57aSYmKHdpbmRvdy5jbGVhclRpbWVvdXQoaSksaT1udWxsKX0sZj0oKT0+e2lmKCFyKXtsZXQgdj0oKT0+e2MoKTtsZXQgbT1NYXRoLnJhbmRvbSgpKjFlMysyMDA7cj13aW5kb3cuc2V0VGltZW91dCgoKT0+e3ImJnYoKX0sbSl9O3YoKX19LGc9KCk9PntyJiYod2luZG93LmNsZWFyVGltZW91dChyKSxyPW51bGwpfTt0LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh2PT57c3dpdGNoKHYudGV4dENvbnRlbnQ/LnRyaW0oKSl7Y2FzZSJBZGQgU3RydWN0dXJlZCBMb2ciOnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5kKCkpO2JyZWFrO2Nhc2UiU3RhcnQgU3RydWN0dXJlZCI6di5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnAoKSk7YnJlYWs7Y2FzZSJTdG9wIFN0cnVjdHVyZWQiOnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5sKCkpO2JyZWFrO2Nhc2UiQWRkIERvY2tlciBMb2ciOnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5jKCkpO2JyZWFrO2Nhc2UiU3RhcnQgRG9ja2VyIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+ZigpKTticmVhaztjYXNlIlN0b3AgRG9ja2VyIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+ZygpKTticmVha319KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtRYAogICAgICAgICAgLmRlbW9Cb3ggewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgNSUpIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KICAgICAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgICB9CiAgICAgICAgICAuY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgIDwhLS0gU3RydWN0dXJlZCBMb2dzIFNlY3Rpb24gLS0+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0cnVjdHVyZWQgTG9ncyAoSUxvZ0VudHJ5KTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgU3RydWN0dXJlZCBsb2cgZW50cmllcyB3aXRoIGxldmVsLCBtZXNzYWdlLCBhbmQgc291cmNlLiBTdXBwb3J0cyBzZWFyY2ggYW5kIGtleXdvcmQgaGlnaGxpZ2h0aW5nLgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5BZGQgU3RydWN0dXJlZCBMb2c8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IFN0cnVjdHVyZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgU3RydWN0dXJlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRlZXMtY2hhcnQtbG9nCiAgICAgICAgICBpZD0ic3RydWN0dXJlZC1sb2ciCiAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdGlvbiBTZXJ2ZXIgTG9ncyJ9CiAgICAgICAgICAuaGlnaGxpZ2h0S2V5d29yZHM9JHtbImVycm9yIiwiZmFpbGVkIiwidGltZW91dCJdfQogICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITB9CiAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgIDwvZGl2PgoKICAgICAgPCEtLSBSYXcgTG9ncyBTZWN0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5SYXcgTG9ncyAoRG9ja2VyL0NvbnRhaW5lciBTdHlsZSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFJhdyBsb2cgb3V0cHV0IHdpdGggQU5TSSBlc2NhcGUgc2VxdWVuY2VzIGZvciByZWFsIERvY2tlci9jb250YWluZXIgbG9ncy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIERvY2tlciBMb2c8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0YXJ0IERvY2tlcjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3RvcCBEb2NrZXI8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgaWQ9InJhdy1sb2ciCiAgICAgICAgICAubGFiZWw9JHsiRG9ja2VyIENvbnRhaW5lciBMb2dzIn0KICAgICAgICAgIC5tb2RlPSR7InJhdyJ9CiAgICAgICAgICAuc2hvd01ldHJpY3M9JHshMX0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWxvZz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSk7dmFyIHlpLF8xLFZmdCxqZnQ9YigoKT0+e3VlKCk7VHQoKTtxZnQoKTtxZSgpO3VvKCk7eWk9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxfMT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sVmZ0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1jaGFydC1sb2ciKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXSxyZSxqPVtdLG1lPVtdO3ZhciB3ZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSgpXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtJKHt0eXBlOkFycmF5fSldLHk9W0koe3R5cGU6Qm9vbGVhbn0pXSx4PVtJKHt0eXBlOk51bWJlcn0pXSxGPVtJKHt0eXBlOkFycmF5fSldLE49W0koe3R5cGU6Qm9vbGVhbn0pXSxxPVtKKCldLEU9W0ooKV0sVj1bSigpXSxyZT1bSigpXSx5aSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpjZT0+ImxhYmVsImluIGNlLGdldDpjZT0+Y2UubGFiZWwsc2V0OihjZSxrZSk9PntjZS5sYWJlbD1rZX19LG1ldGFkYXRhOkh9LG4sbykseWkodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpjZT0+Im1vZGUiaW4gY2UsZ2V0OmNlPT5jZS5tb2RlLHNldDooY2Usa2UpPT57Y2UubW9kZT1rZX19LG1ldGFkYXRhOkh9LGMscCkseWkodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2dFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpjZT0+ImxvZ0VudHJpZXMiaW4gY2UsZ2V0OmNlPT5jZS5sb2dFbnRyaWVzLHNldDooY2Usa2UpPT57Y2UubG9nRW50cmllcz1rZX19LG1ldGFkYXRhOkh9LGYsZykseWkodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvU2Nyb2xsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpjZT0+ImF1dG9TY3JvbGwiaW4gY2UsZ2V0OmNlPT5jZS5hdXRvU2Nyb2xsLHNldDooY2Usa2UpPT57Y2UuYXV0b1Njcm9sbD1rZX19LG1ldGFkYXRhOkh9LHYsbSkseWkodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhFbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpjZT0+Im1heEVudHJpZXMiaW4gY2UsZ2V0OmNlPT5jZS5tYXhFbnRyaWVzLHNldDooY2Usa2UpPT57Y2UubWF4RW50cmllcz1rZX19LG1ldGFkYXRhOkh9LE0sUykseWkodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoaWdobGlnaHRLZXl3b3JkcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Y2U9PiJoaWdobGlnaHRLZXl3b3JkcyJpbiBjZSxnZXQ6Y2U9PmNlLmhpZ2hsaWdodEtleXdvcmRzLHNldDooY2Usa2UpPT57Y2UuaGlnaGxpZ2h0S2V5d29yZHM9a2V9fSxtZXRhZGF0YTpIfSxfLGspLHlpKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd01ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmNlPT4ic2hvd01ldHJpY3MiaW4gY2UsZ2V0OmNlPT5jZS5zaG93TWV0cmljcyxzZXQ6KGNlLGtlKT0+e2NlLnNob3dNZXRyaWNzPWtlfX0sbWV0YWRhdGE6SH0sTCxBKSx5aSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFF1ZXJ5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpjZT0+InNlYXJjaFF1ZXJ5ImluIGNlLGdldDpjZT0+Y2Uuc2VhcmNoUXVlcnksc2V0OihjZSxrZSk9PntjZS5zZWFyY2hRdWVyeT1rZX19LG1ldGFkYXRhOkh9LEMseikseWkodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJNb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpjZT0+ImZpbHRlck1vZGUiaW4gY2UsZ2V0OmNlPT5jZS5maWx0ZXJNb2RlLHNldDooY2Usa2UpPT57Y2UuZmlsdGVyTW9kZT1rZX19LG1ldGFkYXRhOkh9LFQsJCkseWkodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpjZT0+Im1ldHJpY3MiaW4gY2UsZ2V0OmNlPT5jZS5tZXRyaWNzLHNldDooY2Usa2UpPT57Y2UubWV0cmljcz1rZX19LG1ldGFkYXRhOkh9LFIsVSkseWkodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxSZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Y2U9PiJ0ZXJtaW5hbFJlYWR5ImluIGNlLGdldDpjZT0+Y2UudGVybWluYWxSZWFkeSxzZXQ6KGNlLGtlKT0+e2NlLnRlcm1pbmFsUmVhZHk9a2V9fSxtZXRhZGF0YTpIfSxqLG1lKSx5aShudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpIfSxudWxsLGEpLHdlPWk9ZS52YWx1ZSxIJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkh9KX1zdGF0aWMgZGVtbz1IZnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCIsIldvcmtzcGFjZSJdOyNlPV8xKHRoaXMsbiwiU2VydmVyIExvZ3MiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwoSCl7dGhpcy4jZT1IfSN0PShfMSh0aGlzLG8pLF8xKHRoaXMsYywic3RydWN0dXJlZCIpKTtnZXQgbW9kZSgpe3JldHVybiB0aGlzLiN0fXNldCBtb2RlKEgpe3RoaXMuI3Q9SH0jYT0oXzEodGhpcyxwKSxfMSh0aGlzLGYsW10pKTtnZXQgbG9nRW50cmllcygpe3JldHVybiB0aGlzLiNhfXNldCBsb2dFbnRyaWVzKEgpe3RoaXMuI2E9SH0jaT0oXzEodGhpcyxnKSxfMSh0aGlzLHYsITApKTtnZXQgYXV0b1Njcm9sbCgpe3JldHVybiB0aGlzLiNpfXNldCBhdXRvU2Nyb2xsKEgpe3RoaXMuI2k9SH0jcj0oXzEodGhpcyxtKSxfMSh0aGlzLE0sMWU0KSk7Z2V0IG1heEVudHJpZXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWF4RW50cmllcyhIKXt0aGlzLiNyPUh9I3M9KF8xKHRoaXMsUyksXzEodGhpcyxfLFtdKSk7Z2V0IGhpZ2hsaWdodEtleXdvcmRzKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGhpZ2hsaWdodEtleXdvcmRzKEgpe3RoaXMuI3M9SH0jbj0oXzEodGhpcyxrKSxfMSh0aGlzLEwsITApKTtnZXQgc2hvd01ldHJpY3MoKXtyZXR1cm4gdGhpcy4jbn1zZXQgc2hvd01ldHJpY3MoSCl7dGhpcy4jbj1IfSNvPShfMSh0aGlzLEEpLF8xKHRoaXMsQywiIikpO2dldCBzZWFyY2hRdWVyeSgpe3JldHVybiB0aGlzLiNvfXNldCBzZWFyY2hRdWVyeShIKXt0aGlzLiNvPUh9I2w9KF8xKHRoaXMseiksXzEodGhpcyxULCExKSk7Z2V0IGZpbHRlck1vZGUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgZmlsdGVyTW9kZShIKXt0aGlzLiNsPUh9I2M9KF8xKHRoaXMsJCksXzEodGhpcyxSLHtkZWJ1ZzowLGluZm86MCx3YXJuOjAsZXJyb3I6MCxzdWNjZXNzOjAsdG90YWw6MCxyYXRlOjB9KSk7Z2V0IG1ldHJpY3MoKXtyZXR1cm4gdGhpcy4jY31zZXQgbWV0cmljcyhIKXt0aGlzLiNjPUh9I2Q9KF8xKHRoaXMsVSksXzEodGhpcyxqLCExKSk7Z2V0IHRlcm1pbmFsUmVhZHkoKXtyZXR1cm4gdGhpcy4jZH1zZXQgdGVybWluYWxSZWFkeShIKXt0aGlzLiNkPUh9bG9nQnVmZmVyPShfMSh0aGlzLG1lKSxbXSk7dHJhaWxpbmdIaWRkZW5Db3VudD0wO3Rlcm1pbmFsPW51bGw7Zml0QWRkb249bnVsbDtzZWFyY2hBZGRvbj1udWxsO3Jlc2l6ZU9ic2VydmVyPW51bGw7dGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsO2RvbXRvb2xzSW5zdGFuY2U9bnVsbDtyYXRlQnVmZmVyPVtdO3JhdGVJbnRlcnZhbD1udWxsO3N0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTUwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDQ3JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA0NyUpIil9OwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5JSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyNSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciAueHRlcm0gewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLm1ldHJpY3MtYmFyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1ldHJpYyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubWV0cmljOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAubWV0cmljLmVycm9yOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDYwLjIlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy53YXJuOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyNSA5NSUgNTMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5pbmZvOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyMjIuMiA0Ny40JSA1MS4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuc3VjY2Vzczo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICB9CgogICAgICAubWV0cmljLmRlYnVnOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDAlIDYzLjklKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlOjpiZWZvcmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxiMS5zZXR1cCgpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPiR7dGhpcy5sYWJlbH08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggbG9ncy4uLiIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgICAgIEBpbnB1dD0ke0g9PnRoaXMuaGFuZGxlU2VhcmNoSW5wdXQoSCl9CiAgICAgICAgICAgICAgQGtleWRvd249JHtIPT50aGlzLmhhbmRsZVNlYXJjaEtleWRvd24oSCl9CiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1uYXYiPgogICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuc2VhcmNoUHJldmlvdXMoKX0gdGl0bGU9IlByZXZpb3VzIG1hdGNoIj7ihpE8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaE5leHQoKX0gdGl0bGU9Ik5leHQgbWF0Y2giPuKGkzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJmaWx0ZXItdG9nZ2xlICR7dGhpcy5maWx0ZXJNb2RlPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVGaWx0ZXJNb2RlKCl9CiAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5maWx0ZXJNb2RlPyJTd2l0Y2ggdG8gaGlnaGxpZ2h0IG1vZGUiOiJTd2l0Y2ggdG8gZmlsdGVyIG1vZGUifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dGhpcy5maWx0ZXJNb2RlPyJGaWx0ZXIiOiJIaWdobGlnaHQifQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImNvbnRyb2wtYnV0dG9uICR7dGhpcy5hdXRvU2Nyb2xsPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVBdXRvU2Nyb2xsKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBBdXRvIFNjcm9sbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29udHJvbC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNsZWFyTG9ncygpfT4KICAgICAgICAgICAgICBDbGVhcgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnRlcm1pbmFsUmVhZHk/IiI6d2A8ZGl2IGNsYXNzPSJsb2FkaW5nLXN0YXRlIj5Mb2FkaW5nIHRlcm1pbmFsLi4uPC9kaXY+YH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnNob3dNZXRyaWNzP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljcy1iYXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBlcnJvciI+ZXJyb3JzOiAke3RoaXMubWV0cmljcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHdhcm4iPndhcm5zOiAke3RoaXMubWV0cmljcy53YXJufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgaW5mbyI+aW5mbzogJHt0aGlzLm1ldHJpY3MuaW5mb308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHN1Y2Nlc3MiPnN1Y2Nlc3M6ICR7dGhpcy5tZXRyaWNzLnN1Y2Nlc3N9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBkZWJ1ZyI+ZGVidWc6ICR7dGhpcy5tZXRyaWNzLmRlYnVnfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgcmF0ZSI+JHt0aGlzLm1ldHJpY3MucmF0ZS50b0ZpeGVkKDEpfSBsb2dzL3NlYzwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuZG9tdG9vbHNJbnN0YW5jZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmluaXRpYWxpemVUZXJtaW5hbCgpLHRoaXMubG9nRW50cmllcy5sZW5ndGg+MCYmdGhpcy5sb2dCdWZmZXIubGVuZ3RoPT09MCl7dGhpcy5sb2dCdWZmZXI9Wy4uLnRoaXMubG9nRW50cmllc107Zm9yKGxldCBIIG9mIHRoaXMubG9nRW50cmllcyl0aGlzLnVwZGF0ZU1ldHJpY3MoSC5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KEgpfWVsc2UgaWYodGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wJiZ0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+MCl7bGV0IEg9bmV3IFNldCh0aGlzLmxvZ0J1ZmZlci5tYXAoY2U9PmAke2NlLnRpbWVzdGFtcH18JHtjZS5tZXNzYWdlfWApKTtmb3IobGV0IGNlIG9mIHRoaXMubG9nRW50cmllcylILmhhcyhgJHtjZS50aW1lc3RhbXB9fCR7Y2UubWVzc2FnZX1gKXx8KHRoaXMubG9nQnVmZmVyLnB1c2goY2UpLHRoaXMudXBkYXRlTWV0cmljcyhjZS5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KGNlKSl9fWFzeW5jIGluaXRpYWxpemVUZXJtaW5hbCgpe2xldCBIPUwyLmdldEluc3RhbmNlKCksW2NlLGtlLFddPWF3YWl0IFByb21pc2UuYWxsKFtILmxvYWRYdGVybSgpLEgubG9hZFh0ZXJtRml0QWRkb24oKSxILmxvYWRYdGVybVNlYXJjaEFkZG9uKCldKTthd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzSW50b1NoYWRvdygpLHRoaXMudGVybWluYWw9bmV3IGNlLlRlcm1pbmFsKHtjdXJzb3JCbGluazohMSxkaXNhYmxlU3RkaW46ITAsZm9udFNpemU6MTIsZm9udEZhbWlseToiJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0xpYmVyYXRpb24gTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZSIsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKCksc2Nyb2xsYmFjazp0aGlzLm1heEVudHJpZXMsY29udmVydEVvbDohMH0pLHRoaXMuZml0QWRkb249bmV3IGtlLkZpdEFkZG9uLHRoaXMuc2VhcmNoQWRkb249bmV3IFcuU2VhcmNoQWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5zZWFyY2hBZGRvbik7bGV0IEQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbC1jb250YWluZXIiKTt0aGlzLnRlcm1pbmFsLm9wZW4oRCksYXdhaXQgbmV3IFByb21pc2UoTz0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKE8pKSx0aGlzLmZpdEFkZG9uLmZpdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5maXRBZGRvbj8uZml0KCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoRCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXRoaXMuZG9tdG9vbHNJbnN0YW5jZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSgoKT0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKCkpfSksdGhpcy5yYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PnRoaXMuY2FsY3VsYXRlUmF0ZSgpLDFlMyksdGhpcy50ZXJtaW5hbFJlYWR5PSEwO2ZvcihsZXQgTyBvZiB0aGlzLmxvZ0J1ZmZlcil0aGlzLndyaXRlTG9nRW50cnkoTyl9dXBkYXRlZChIKXtpZihzdXBlci51cGRhdGVkKEgpLEguaGFzKCJsb2dFbnRyaWVzIikmJnRoaXMudGVybWluYWxSZWFkeSYmdGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wKXtsZXQgY2U9SC5nZXQoImxvZ0VudHJpZXMiKXx8W10sa2U9dGhpcy5sb2dFbnRyaWVzO2lmKGNlLmxlbmd0aD09PWtlLmxlbmd0aCYmY2UubGVuZ3RoPjAmJmNlW2NlLmxlbmd0aC0xXS50aW1lc3RhbXA9PT1rZVtrZS5sZW5ndGgtMV0udGltZXN0YW1wJiZjZVtjZS5sZW5ndGgtMV0ubWVzc2FnZT09PWtlW2tlLmxlbmd0aC0xXS5tZXNzYWdlKXJldHVybjtpZihrZS5sZW5ndGg+Y2UubGVuZ3RoJiZjZS5sZW5ndGg+MCYmY2VbY2UubGVuZ3RoLTFdLnRpbWVzdGFtcD09PWtlW2NlLmxlbmd0aC0xXS50aW1lc3RhbXAmJmNlW2NlLmxlbmd0aC0xXS5tZXNzYWdlPT09a2VbY2UubGVuZ3RoLTFdLm1lc3NhZ2Upe2xldCBXPWtlLnNsaWNlKGNlLmxlbmd0aCk7Zm9yKGxldCBEIG9mIFcpdGhpcy5sb2dCdWZmZXIucHVzaChEKSx0aGlzLnVwZGF0ZU1ldHJpY3MoRC5sZXZlbCksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwoIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnl8fHRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKEQpKSYmdGhpcy53cml0ZUxvZ0VudHJ5KEQpO3JldHVybn10aGlzLmxvZ0J1ZmZlcj1bLi4ua2VdLHRoaXMucmVSZW5kZXJGaWx0ZXJlZExvZ3MoKX19Z2V0VGVybWluYWxUaGVtZSgpe3JldHVybiB0aGlzLmRvbXRvb2xzSW5zdGFuY2U/LnRoZW1lTWFuYWdlcj8uaXNEYXJrTW9kZT8/ITA/e2JhY2tncm91bmQ6IiMwYTBhMGEiLGZvcmVncm91bmQ6IiNlMGUwZTAiLGN1cnNvcjoiI2UwZTBlMCIsc2VsZWN0aW9uQmFja2dyb3VuZDoiIzQwNDA0MCIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2ZmNTU1NSIsZ3JlZW46IiM1MGZhN2IiLHllbGxvdzoiI2YxZmE4YyIsYmx1ZToiIzYyNzJhNCIsbWFnZW50YToiI2ZmNzljNiIsY3lhbjoiIzhiZTlmZCIsd2hpdGU6IiNmOGY4ZjIiLGJyaWdodEJsYWNrOiIjNjI3MmE0IixicmlnaHRSZWQ6IiNmZjZlNmUiLGJyaWdodEdyZWVuOiIjNjlmZjk0IixicmlnaHRZZWxsb3c6IiNmZmZmYTUiLGJyaWdodEJsdWU6IiNkNmFjZmYiLGJyaWdodE1hZ2VudGE6IiNmZjkyZGYiLGJyaWdodEN5YW46IiNhNGZmZmYiLGJyaWdodFdoaXRlOiIjZmZmZmZmIn06e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsc2VsZWN0aW9uQmFja2dyb3VuZDoiI2FkZDZmZiIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2NkMzEzMSIsZ3JlZW46IiMwMGJjMDAiLHllbGxvdzoiIzk0OTgwMCIsYmx1ZToiIzA0NTFhNSIsbWFnZW50YToiI2JjMDViYyIsY3lhbjoiIzA1OThiYyIsd2hpdGU6IiM1NTU1NTUiLGJyaWdodEJsYWNrOiIjNjY2NjY2IixicmlnaHRSZWQ6IiNjZDMxMzEiLGJyaWdodEdyZWVuOiIjMTRjZTE0IixicmlnaHRZZWxsb3c6IiNiNWJhMDAiLGJyaWdodEJsdWU6IiMwNDUxYTUiLGJyaWdodE1hZ2VudGE6IiNiYzA1YmMiLGJyaWdodEN5YW46IiMwNTk4YmMiLGJyaWdodFdoaXRlOiIjYTVhNWE1In19YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXNJbnRvU2hhZG93KCl7bGV0IEg9Inh0ZXJtLXNoYWRvdy1zdHlsZXMiO2lmKHRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZChIKSlyZXR1cm47bGV0IGNlPWAke1gyfS94dGVybUAke1hpLnh0ZXJtfS9jc3MveHRlcm0uY3NzYCxXPWF3YWl0KGF3YWl0IGZldGNoKGNlKSkudGV4dCgpLEQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtELmlkPUgsRC50ZXh0Q29udGVudD1XLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChEKX1hZGRMb2coSCxjZSxrZSl7bGV0IFc9e3RpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksbGV2ZWw6SCxtZXNzYWdlOmNlLHNvdXJjZTprZX07dGhpcy5sb2dCdWZmZXIucHVzaChXKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5P3RoaXMud3JpdGVMb2dFbnRyeShXKTp0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihXKT8odGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PTAsdGhpcy53cml0ZUxvZ0VudHJ5KFcpKTp0aGlzLnVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKSx0aGlzLnVwZGF0ZU1ldHJpY3MoVy5sZXZlbCl9dXBkYXRlTG9nKEgpe2lmKEgpZm9yKGxldCBjZSBvZiBIKXRoaXMubG9nQnVmZmVyLnB1c2goY2UpLHRoaXMubG9nQnVmZmVyLmxlbmd0aD50aGlzLm1heEVudHJpZXMmJnRoaXMubG9nQnVmZmVyLnNoaWZ0KCksIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnk/dGhpcy53cml0ZUxvZ0VudHJ5KGNlKTp0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihjZSk/KHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMud3JpdGVMb2dFbnRyeShjZSkpOnRoaXMudXBkYXRlVHJhaWxpbmdQbGFjZWhvbGRlcigpLHRoaXMudXBkYXRlTWV0cmljcyhjZS5sZXZlbCl9dXBkYXRlVHJhaWxpbmdQbGFjZWhvbGRlcigpe3RoaXMudGVybWluYWwmJih0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ+MCYmdGhpcy50ZXJtaW5hbC53cml0ZSgiXHgxQlsxQVx4MUJbMktcciIpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudCsrLHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcih0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX1lbnRyeU1hdGNoZXNGaWx0ZXIoSCl7aWYoIXRoaXMuc2VhcmNoUXVlcnkpcmV0dXJuITA7bGV0IGNlPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTtyZXR1cm4gSC5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY2UpfHxILmxldmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY2UpfHwoSC5zb3VyY2U/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY2UpPz8hMSl9d3JpdGVMb2dFbnRyeShIKXtpZighdGhpcy50ZXJtaW5hbClyZXR1cm47bGV0IGNlPXRoaXMuZm9ybWF0TG9nRW50cnkoSCk7dGhpcy50ZXJtaW5hbC53cml0ZWxuKGNlKSx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX1mb3JtYXRMb2dFbnRyeShIKXtsZXQgY2U9dGhpcy5mb3JtYXRUaW1lc3RhbXAoSC50aW1lc3RhbXApLGtlPXtkZWJ1ZzoiXHgxQls5MG0iLGluZm86Ilx4MUJbMzZtIix3YXJuOiJceDFCWzMzbSIsZXJyb3I6Ilx4MUJbMzFtIixzdWNjZXNzOiJceDFCWzMybSJ9LFc9Ilx4MUJbMG0iLEQ9Ilx4MUJbMm0iLE89YCR7a2VbSC5sZXZlbF19WyR7SC5sZXZlbC50b1VwcGVyQ2FzZSgpLnBhZEVuZCg3KX1dJHtXfWAsWj1ILnNvdXJjZT9gJHtEfVske0guc291cmNlfV0ke1d9IGA6IiIsWT10aGlzLmFwcGx5SGlnaGxpZ2h0cyhILm1lc3NhZ2UpO3JldHVybmAke0R9JHtjZX0ke1d9ICR7T30gJHtafSR7WX1gfWZvcm1hdFRpbWVzdGFtcChIKXtyZXR1cm4gbmV3IERhdGUoSCkudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXIxMjohMSxob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9YXBwbHlIaWdobGlnaHRzKEgpe2xldCBjZT1bLi4udGhpcy5oaWdobGlnaHRLZXl3b3Jkc107aWYodGhpcy5maWx0ZXJNb2RlJiZ0aGlzLnNlYXJjaFF1ZXJ5JiZjZS5wdXNoKHRoaXMuc2VhcmNoUXVlcnkpLGNlLmxlbmd0aD09PTApcmV0dXJuIEg7bGV0IGtlPUg7Zm9yKGxldCBXIG9mIGNlKXtsZXQgRD1XLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIiksTz1uZXcgUmVnRXhwKGAoJHtEfSlgLCJnaSIpO2tlPWtlLnJlcGxhY2UoTywiXHgxQls0M21ceDFCWzMwbSQxXHgxQlswbSIpfXJldHVybiBrZX13cml0ZVJhdyhIKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC53cml0ZShIKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfXdyaXRlbG5SYXcoSCl7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGVsbihIKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfWhhbmRsZVNlYXJjaElucHV0KEgpe2xldCBrZT1ILnRhcmdldC52YWx1ZSxXPXRoaXMuc2VhcmNoUXVlcnkhPT1rZTt0aGlzLnNlYXJjaFF1ZXJ5PWtlLHRoaXMuZmlsdGVyTW9kZSYmVz90aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCk6dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQodGhpcy5zZWFyY2hRdWVyeSl9aGFuZGxlU2VhcmNoS2V5ZG93bihIKXtILmtleT09PSJFbnRlciI/SC5zaGlmdEtleT90aGlzLnNlYXJjaFByZXZpb3VzKCk6dGhpcy5zZWFyY2hOZXh0KCk6SC5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2VhcmNoUXVlcnk9IiIsSC50YXJnZXQudmFsdWU9IiIpfXNlYXJjaChIKXt0aGlzLnNlYXJjaFF1ZXJ5PUgsdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQoSCl9c2VhcmNoTmV4dCgpe3RoaXMuc2VhcmNoUXVlcnkmJnRoaXMuc2VhcmNoQWRkb24/LmZpbmROZXh0KHRoaXMuc2VhcmNoUXVlcnkpfXNlYXJjaFByZXZpb3VzKCl7dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZFByZXZpb3VzKHRoaXMuc2VhcmNoUXVlcnkpfXRvZ2dsZUF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGw9IXRoaXMuYXV0b1Njcm9sbCx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX10b2dnbGVGaWx0ZXJNb2RlKCl7dGhpcy5maWx0ZXJNb2RlPSF0aGlzLmZpbHRlck1vZGUsdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfXJlUmVuZGVyRmlsdGVyZWRMb2dzKCl7aWYodGhpcy50ZXJtaW5hbCl7aWYodGhpcy50ZXJtaW5hbC5jbGVhcigpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5KWZvcihsZXQgSCBvZiB0aGlzLmxvZ0J1ZmZlcil7bGV0IGNlPXRoaXMuZm9ybWF0TG9nRW50cnkoSCk7dGhpcy50ZXJtaW5hbC53cml0ZWxuKGNlKX1lbHNle2xldCBIPTA7Zm9yKGxldCBjZSBvZiB0aGlzLmxvZ0J1ZmZlcilpZih0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihjZSkpe0g+MCYmKHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcihIKSxIPTApO2xldCBrZT10aGlzLmZvcm1hdExvZ0VudHJ5KGNlKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oa2UpfWVsc2UgSCsrO0g+MCYmKHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcihIKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9SCl9dGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9fXdyaXRlSGlkZGVuUGxhY2Vob2xkZXIoSCl7bGV0IGNlPSJceDFCWzJtIixrZT0iXHgxQlswbSIsVz1IPT09MT8iWzEgbG9nIGxpbmUgaGlkZGVuIGJ5IGZpbHRlciAuLi5dIjpgWyR7SH0gbG9nIGxpbmVzIGhpZGRlbiBieSBmaWx0ZXIgLi4uXWA7dGhpcy50ZXJtaW5hbD8ud3JpdGVsbihgJHtjZX0ke1d9JHtrZX1gKX1jbGVhckxvZ3MoKXt0aGlzLnRlcm1pbmFsPy5jbGVhcigpLHRoaXMubG9nQnVmZmVyPVtdLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMucmVzZXRNZXRyaWNzKCl9c2Nyb2xsVG9Cb3R0b20oKXt0aGlzLnRlcm1pbmFsPy5zY3JvbGxUb0JvdHRvbSgpfXVwZGF0ZU1ldHJpY3MoSCl7dGhpcy5tZXRyaWNzPXsuLi50aGlzLm1ldHJpY3MsW0hdOnRoaXMubWV0cmljc1tIXSsxLHRvdGFsOnRoaXMubWV0cmljcy50b3RhbCsxfSx0aGlzLnJlY29yZExvZ0V2ZW50KCl9cmVjb3JkTG9nRXZlbnQoKXt0aGlzLnJhdGVCdWZmZXIucHVzaChEYXRlLm5vdygpKX1jYWxjdWxhdGVSYXRlKCl7bGV0IEg9RGF0ZS5ub3coKTt0aGlzLnJhdGVCdWZmZXI9dGhpcy5yYXRlQnVmZmVyLmZpbHRlcihrZT0+SC1rZTwxZTQpO2xldCBjZT10aGlzLnJhdGVCdWZmZXIubGVuZ3RoLzEwO2NlIT09dGhpcy5tZXRyaWNzLnJhdGUmJih0aGlzLm1ldHJpY3M9ey4uLnRoaXMubWV0cmljcyxyYXRlOmNlfSl9cmVzZXRNZXRyaWNzKCl7dGhpcy5tZXRyaWNzPXtkZWJ1ZzowLGluZm86MCx3YXJuOjAsZXJyb3I6MCxzdWNjZXNzOjAsdG90YWw6MCxyYXRlOjB9LHRoaXMucmF0ZUJ1ZmZlcj1bXX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uJiZ0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnJhdGVJbnRlcnZhbCYmY2xlYXJJbnRlcnZhbCh0aGlzLnJhdGVJbnRlcnZhbCksdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5kaXNwb3NlKCl9c3RhdGlje18xKGksYSl9fTtyZXR1cm4gd2U9aX0pKCl9KTt2YXIgVWZ0PWIoKCk9PntqZnQoKX0pO3ZhciBXZnQ9YigoKT0+e0JmdCgpO1VmdCgpfSk7dmFyIEdmdCxZZnQ9YigoKT0+e3VlKCk7R2Z0PSgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vV3JhcHBlciB7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQogICAgCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UeXBlU2NyaXB0IENvZGUgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGNvbXByZWhlbnNpdmUgVHlwZVNjcmlwdCBjb2RlIGV4YW1wbGUgd2l0aCB2YXJpb3VzIHN5bnRheCBoaWdobGlnaHRpbmcuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9InR5cGVzY3JpcHQiPgppbnRlcmZhY2UgVXNlciB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7CiAgZW1haWw6IHN0cmluZzsKICBpc0FjdGl2ZTogYm9vbGVhbjsKfQoKY2xhc3MgVXNlclNlcnZpY2UgewogIHByaXZhdGUgdXNlcnM6IFVzZXJbXSA9IFtdOwogIAogIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpVXJsOiBzdHJpbmcpIHsKICAgIGNvbnNvbGUubG9nKCdVc2VyU2VydmljZSBpbml0aWFsaXplZCcpOwogIH0KICAKICBhc3luYyBnZXRVc2VycygpOiBQcm9taXNlPFVzZXJbXT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLmFwaVVybCk7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7CiAgICAgIHJldHVybiBkYXRhLnVzZXJzOwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHVzZXJzOicsIGVycm9yKTsKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0KICAKICBhZGRVc2VyKHVzZXI6IFVzZXIpOiB2b2lkIHsKICAgIHRoaXMudXNlcnMucHVzaCh1c2VyKTsKICB9Cn0KCi8vIFVzYWdlIGV4YW1wbGUKY29uc3Qgc2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMnKTsKY29uc3QgdXNlcnMgPSBhd2FpdCBzZXJ2aWNlLmdldFVzZXJzKCk7CmNvbnNvbGUubG9nKCdGb3VuZCB1c2VyczonLCB1c2Vycy5sZW5ndGgpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SmF2YVNjcmlwdCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk1vZGVybiBKYXZhU2NyaXB0IHdpdGggRVM2KyBmZWF0dXJlcy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0iamF2YXNjcmlwdCI+Ci8vIEFycmF5IG1hbmlwdWxhdGlvbiBleGFtcGxlcwpjb25zdCBudW1iZXJzID0gWzEsIDIsIDMsIDQsIDVdOwpjb25zdCBkb3VibGVkID0gbnVtYmVycy5tYXAobiA9PiBuICogMik7CmNvbnN0IGZpbHRlcmVkID0gbnVtYmVycy5maWx0ZXIobiA9PiBuID4gMyk7CgovLyBPYmplY3QgZGVzdHJ1Y3R1cmluZwpjb25zdCB1c2VyID0geyBuYW1lOiAnSm9obicsIGFnZTogMzAsIGNpdHk6ICdOZXcgWW9yaycgfTsKY29uc3QgeyBuYW1lLCBhZ2UgfSA9IHVzZXI7CgovLyBQcm9taXNlIGhhbmRsaW5nCmNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICh1cmwpID0+IHsKICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7CiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTsKfTsKCi8vIE1vZGVybiBzeW50YXgKY29uc3QgZ3JlZXQgPSAobmFtZSA9ICdXb3JsZCcpID0+IFxgSGVsbG8sIFwke25hbWV9IVxgOwpjb25zb2xlLmxvZyhncmVldCgnU2hhZENOJykpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHl0aG9uIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+UHl0aG9uIGNvZGUgd2l0aCBjbGFzc2VzIGFuZCB0eXBlIGhpbnRzLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJweXRob24iPgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKaW1wb3J0IGFzeW5jaW8KCmNsYXNzIERhdGFQcm9jZXNzb3I6CiAgICAiIiJBIHNpbXBsZSBkYXRhIHByb2Nlc3NvciBjbGFzcyIiIgogICAgCiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZTogc3RyKToKICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgc2VsZi5kYXRhOiBMaXN0W2RpY3RdID0gW10KICAgIAogICAgYXN5bmMgZGVmIHByb2Nlc3NfZGF0YShzZWxmLCBpdGVtczogTGlzdFtkaWN0XSkgLT4gTGlzdFtkaWN0XToKICAgICAgICAiIiJQcm9jZXNzIGRhdGEgaXRlbXMgYXN5bmNocm9ub3VzbHkiIiIKICAgICAgICByZXN1bHRzID0gW10KICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKICAgICAgICAgICAgIyBTaW11bGF0ZSBhc3luYyBwcm9jZXNzaW5nCiAgICAgICAgICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMC4xKQogICAgICAgICAgICByZXN1bHRzLmFwcGVuZCh7CiAgICAgICAgICAgICAgICAnaWQnOiBpdGVtLmdldCgnaWQnKSwKICAgICAgICAgICAgICAgICdwcm9jZXNzZWQnOiBUcnVlLAogICAgICAgICAgICAgICAgJ3Byb2Nlc3Nvcic6IHNlbGYubmFtZQogICAgICAgICAgICB9KQogICAgICAgIHJldHVybiByZXN1bHRzCiAgICAKICAgIGRlZiBnZXRfc3VtbWFyeShzZWxmKSAtPiBkaWN0OgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUsCiAgICAgICAgICAgICdpdGVtc19wcm9jZXNzZWQnOiBsZW4oc2VsZi5kYXRhKQogICAgICAgIH0KCiMgVXNhZ2UKcHJvY2Vzc29yID0gRGF0YVByb2Nlc3NvcigiTWFpbiIpCmRhdGEgPSBhd2FpdCBwcm9jZXNzb3IucHJvY2Vzc19kYXRhKFt7J2lkJzogMX0sIHsnaWQnOiAyfV0pCiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DU1MgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgYW5kIGFuaW1hdGlvbnMuIE5vdGUgdGhlIHNob3J0ZXIgbGFuZ3VhZ2UgbGFiZWwuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImNzcyI+Ci8qIE1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyAqLwo6cm9vdCB7CiAgLS1wcmltYXJ5LWNvbG9yOiAjM2I4MmY2OwogIC0tc2Vjb25kYXJ5LWNvbG9yOiAjMTBiOTgxOwogIC0tYmFja2dyb3VuZDogI2ZmZmZmZjsKICAtLXRleHQtY29sb3I6ICMwOTA5MGI7CiAgLS1ib3JkZXItcmFkaXVzOiA2cHg7Cn0KCi5jYXJkIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTsKICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpOwogIHBhZGRpbmc6IDI0cHg7CiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwp9CgouY2FyZDpob3ZlciB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7Cn0KCkBrZXlmcmFtZXMgZmFkZUluIHsKICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9CiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KfQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlNPTiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkpTT04gY29uZmlndXJhdGlvbiB3aXRoIHByb3BlciBmb3JtYXR0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJqc29uIj4KewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMS4xMC43IiwKICAiZGVzY3JpcHRpb24iOiAiQSBjb21wcmVoZW5zaXZlIGNhdGFsb2cgb2Ygd2ViIGNvbXBvbmVudHMiLAogICJtYWluIjogImRpc3RfdHNfd2ViL2luZGV4LmpzIiwKICAidHlwZSI6ICJtb2R1bGUiLAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQgdHNmb2xkZXJzIC0tYWxsb3dpbXBsaWNpdGFueSAmJiB0c2J1bmRsZSBlbGVtZW50IC0tcHJvZHVjdGlvbiIsCiAgICAid2F0Y2giOiAidHN3YXRjaCBlbGVtZW50IiwKICAgICJ0ZXN0IjogInRzdGVzdCB0ZXN0LyAtLXdlYiAtLXZlcmJvc2UiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjQ1IiwKICAgICJoaWdobGlnaHQuanMiOiAiXjExLjkuMCIKICB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBoVixTOCxaZnQsdVY9YigoKT0+e1lmdCgpO3VlKCk7Y2EoKTt1MygpO1R0KCk7czIoKTt1bygpO2hWPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sUzg9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFpmdD0oKCk9PntsZXQgdD1baGUoImRlZXMtZGF0YXZpZXctY29kZWJveCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLGQ9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0saFYodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcm9nTGFuZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InByb2dMYW5nImluIGcsZ2V0Omc9PmcucHJvZ0xhbmcsc2V0OihnLHkpPT57Zy5wcm9nTGFuZz15fX0sbWV0YWRhdGE6Zn0sbixvKSxoVih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvZGVUb0Rpc3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJjb2RlVG9EaXNwbGF5ImluIGcsZ2V0Omc9PmcuY29kZVRvRGlzcGxheSxzZXQ6KGcseSk9PntnLmNvZGVUb0Rpc3BsYXk9eX19LG1ldGFkYXRhOmZ9LGMscCksaFYobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Zn0sbnVsbCxhKSxsPWk9ZS52YWx1ZSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX1zdGF0aWMgZGVtbz1HZnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciLCJXb3Jrc3BhY2UiXTsjZT1TOCh0aGlzLG4sInR5cGVzY3JpcHQiKTtnZXQgcHJvZ0xhbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJvZ0xhbmcoZil7dGhpcy4jZT1mfSN0PShTOCh0aGlzLG8pLFM4KHRoaXMsYywiIikpO2dldCBjb2RlVG9EaXNwbGF5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvZGVUb0Rpc3BsYXkoZil7dGhpcy4jdD1mfWNvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgJHtiMS5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJHtKdH07CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICAubWFpbmJveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmFwcGJhciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTgxODFiIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmFwcGJhciAuZmlsZU5hbWUgewogICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmJvdHRvbUJhciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTgxODFiIil9OwogICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5zcGFjZXNMYWJlbCB7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sYW5ndWFnZUxhYmVsIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgICAgcGFkZGluZzogMHB4IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1rZXl3b3JkIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuY29kZWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTBweCBhdXRvOwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB9CgogICAgICAgIC5saW5lTnVtYmVycyB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNTI1MjViIil9OwogICAgICAgICAgcGFkZGluZzogMjRweCAxNnB4IDBweCAwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICB9CgogICAgICAgIC5saW5lQ291bnRlcjpsYXN0LWNoaWxkIHsKICAgICAgICAgIG9wYWNpdHk6IDUwJTsKICAgICAgICB9CgogICAgICAgIHByZSB7CiAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDI0cHg7CiAgICAgICAgfQoKICAgICAgICBjb2RlIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICB9CgogICAgICAgIGNvZGUsCiAgICAgICAgY29kZSAqLAogICAgICAgIC5saW5lTnVtYmVycyB7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07CiAgICAgICAgICBmb250LXdlaWdodDogMjAwOwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7VjB9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtc3RyaW5nIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1idWlsdF9pbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM4YjVjZjYiLCIjYTc4YmZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtZnVuY3Rpb24gewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXBhcmFtcyB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwODkxYjIiLCIjMDZiNmQ0Iil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtY29tbWVudCB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtbnVtYmVyIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1saXRlcmFsIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1hdHRyIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy12YXJpYWJsZSB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtYWluYm94IgogICAgICAgIEBjb250ZXh0bWVudT0iJHtmPT57VXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZixbe25hbWU6IkFib3V0IixpY29uTmFtZToiY2lyY2xlSW5mbyIsYWN0aW9uOmFzeW5jKCk9Pm51bGx9XSl9fSIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImFwcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlTmFtZSI+aW5kZXgudHM8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lTnVtYmVycyI+CiAgICAgICAgICAgICR7KCgpPT57bGV0IGY9MDtyZXR1cm4gdGhpcy5jb2RlVG9EaXNwbGF5LnNwbGl0KGAKYCkubWFwKGc9PihmKyssd2A8ZGl2IGNsYXNzPSJsaW5lQ291bnRlciI+JHtmfTwvZGl2PmApKX0pKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwcmU+PGNvZGU+PC9jb2RlPjwvcHJlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXNMYWJlbCI+U3BhY2VzOiAyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZUxhYmVsIj4ke3RoaXMucHJvZ0xhbmd9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb2RlVG9EaXNwbGF5U3RvcmU9KFM4KHRoaXMscCksIiIpO2hpZ2hsaWdodEpzPW51bGw7YXN5bmMgdXBkYXRlZChmKXtzdXBlci51cGRhdGVkKGYpLGNvbnNvbGUubG9nKCJoaWdobGlnaHRpbmcgbm93IiksY29uc29sZS5sb2codGhpcy5jaGlsZE5vZGVzKTtsZXQgZz1bXTt0aGlzLmNoaWxkTm9kZXMuZm9yRWFjaChtPT57bS5ub2RlTmFtZT09PSIjdGV4dCImJmcucHVzaChtKX0pLHRoaXMuY29kZVRvRGlzcGxheSYmdGhpcy5jb2RlVG9EaXNwbGF5IT09dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1Kby5ub3JtYWxpemUodGhpcy5jb2RlVG9EaXNwbGF5KS50cmltU3RhcnQoKSksZ1swXSYmZ1swXS53aG9sZVRleHQmJiF0aGlzLmNvZGVUb0Rpc3BsYXkmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1Kby5ub3JtYWxpemUoZ1swXS53aG9sZVRleHQpLnRyaW1TdGFydCgpLHRoaXMuY29kZVRvRGlzcGxheT10aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZSksYXdhaXQgTXQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCBMMi5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgeT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiY29kZSIpLHY9dGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUse2xhbmd1YWdlOnRoaXMucHJvZ0xhbmcsaWdub3JlSWxsZWdhbHM6ITB9KTt5LmlubmVySFRNTD12LnZhbHVlfXN0YXRpY3tTOChpLGEpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgWGZ0PWIoKCk9Pnt1VigpfSk7dmFyIEtmdCxRZnQ9YigoKT0+e3VlKCk7UmkoKTtLZnQ9KCk9PndgIDxzdHlsZT4KICAgIC5kZW1vIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICB9CiAgICAKICAgIC5kZW1vLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBnYXA6IDI0cHg7CiAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxNnB4OwogICAgfQogICAgCiAgICAuZGVtby10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgIH0KICAgIAogICAgLmRlbW8tbm90ZSB7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtbyI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLW5vdGUiPgogICAgICBSaWdodC1jbGljayBvbiBhbnkgZGV0YWlsIHJvdyB0byBjb3B5IHRoZSB2YWx1ZSwga2V5LCBvciBrZXk6dmFsdWUgY29tYmluYXRpb24KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5TZXJ2aWNlIEhlYWx0aCBTdGF0dXM8L2Rpdj4KICAgICAgICA8ZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QKICAgICAgICAgIC5zdGF0dXNPYmplY3Q9JHt7aWQ6IjEiLG5hbWU6IkFQSSBHYXRld2F5IFNlcnZpY2UiLGNvbWJpbmVkU3RhdHVzOiJvayIsY29tYmluZWRTdGF0dXNUZXh0OiJBbGwgc3lzdGVtcyBvcGVyYXRpb25hbCIsZGV0YWlsczpbe25hbWU6IlJlc3BvbnNlIFRpbWUiLHZhbHVlOiI0NW1zIChhdmcpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJXaXRoaW4gbm9ybWFsIHJhbmdlIn0se25hbWU6IlVwdGltZSIsdmFsdWU6Ijk5Ljk5JSAoMzAgZGF5cykiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IkV4Y2VsbGVudCB1cHRpbWUifSx7bmFtZToiQWN0aXZlIENvbm5lY3Rpb25zIix2YWx1ZToiMSwyMzQgLyAxMCwwMDAiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik5vcm1hbCBsb2FkIn0se25hbWU6IlNTTCBDZXJ0aWZpY2F0ZSIsdmFsdWU6IlZhbGlkIHVudGlsIDIwMjQtMTItMzEiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IkNlcnRpZmljYXRlIHZhbGlkIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPkRhdGFiYXNlIENsdXN0ZXIgU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIyIixuYW1lOiJQb3N0Z3JlU1FMIENsdXN0ZXIiLGNvbWJpbmVkU3RhdHVzOiJwYXJ0bHlfb2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiTWlub3IgaXNzdWVzIGRldGVjdGVkIixkZXRhaWxzOlt7bmFtZToiUHJpbWFyeSBOb2RlIix2YWx1ZToiZGItcHJpbWFyeS0wMSAoaGVhbHRoeSkiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik9wZXJhdGluZyBub3JtYWxseSJ9LHtuYW1lOiJSZXBsaWNhIExhZyIsdmFsdWU6IjIuNSBzZWNvbmRzIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiU2xpZ2h0bHkgZWxldmF0ZWQifSx7bmFtZToiRGlzayBVc2FnZSIsdmFsdWU6Ijc4JSAoMzEyR0IgLyA0MDBHQikiLHN0YXR1czoicGFydGx5X29rIixzdGF0dXNUZXh0OiJBcHByb2FjaGluZyB0aHJlc2hvbGQifSx7bmFtZToiQ29ubmVjdGlvbiBQb29sIix2YWx1ZToiODkgLyAxMDAgY29ubmVjdGlvbnMiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6IldpdGhpbiBsaW1pdHMifV19fQogICAgICAgID4KICAgICAgICA8L2RlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+QnVpbGQgUGlwZWxpbmUgU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIzIixuYW1lOiJDSS9DRCBQaXBlbGluZSIsY29tYmluZWRTdGF0dXM6Im5vdF9vayIsY29tYmluZWRTdGF0dXNUZXh0OiJCdWlsZCBmYWlsdXJlIixkZXRhaWxzOlt7bmFtZToiTGFzdCBCdWlsZCIsdmFsdWU6IkJ1aWxkICMxMjM0IC0gRmFpbGVkIixzdGF0dXM6Im5vdF9vayIsc3RhdHVzVGV4dDoiVGVzdCBmYWlsdXJlcyJ9LHtuYW1lOiJGYWlsZWQgVGVzdHMiLHZhbHVlOiIzIHRlc3RzIGZhaWxlZDogYXV0aC5zcGVjLnRzLCB1c2VyLnNwZWMudHMsIGFwaS5zcGVjLnRzIixzdGF0dXM6Im5vdF9vayIsc3RhdHVzVGV4dDoiVW5pdCB0ZXN0IGZhaWx1cmVzIn0se25hbWU6IkNvZGUgQ292ZXJhZ2UiLHZhbHVlOiI4Mi41JSAodGFyZ2V0OiA4NSUpIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiQmVsb3cgdGFyZ2V0In0se25hbWU6IkJ1aWxkIER1cmF0aW9uIix2YWx1ZToiMTJtIDM0cyIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiTm9ybWFsIGR1cmF0aW9uIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj5gfSk7dmFyIEpmdCxmVixlbXQsdG10PWIoKCk9PntnaSgpO3IyKCk7UWZ0KCk7dWUoKTtSaSgpO3MyKCk7cWUoKTtKZnQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxmVj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sZW10PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpPYmplY3R9KV0sSmZ0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzT2JqZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwPT4ic3RhdHVzT2JqZWN0ImluIHAsZ2V0OnA9PnAuc3RhdHVzT2JqZWN0LHNldDoocCxsKT0+e3Auc3RhdHVzT2JqZWN0PWx9fSxtZXRhZGF0YTpjfSxuLG8pLEpmdChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPUtmdDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPWZWKHRoaXMsbix2b2lkIDApO2dldCBzdGF0dXNPYmplY3QoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3RhdHVzT2JqZWN0KGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDFweCAycHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgICAgbWluLWhlaWdodDogNDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0OHB4IGF1dG8gMTAwcHg7CiAgICAgICAgaGVpZ2h0OiA1NnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgaDEgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdCB7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklIC8gMC4yKSIsImhzbCgwIDAlIDQ1LjElIC8gMC4yKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuY29weU1haW4gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuY29weU1haW46aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmNvcHlNYWluOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5vayB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4yKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3Qubm90X29rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUgLyAwLjIpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzZG90LnBhcnRseV9vayB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlKSIsImhzbCgyNSA5NSUgNjMlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHtoLmJkVGhlbWUoImhzbCgyNSA5NSUgNTMlIC8gMC4yKSIsImhzbCgyNSA5NSUgNjMlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLmRldGFpbCB7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0OHB4IGF1dG87CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OwogICAgICAgIGN1cnNvcjogY29udGV4dC1tZW51OwogICAgICB9CgogICAgICAuZGV0YWlsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgfQoKICAgICAgLmRldGFpbDphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsIC5kZXRhaWxzVGV4dCB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC5sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX0KICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IC52YWx1ZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnR2Vpc3QgTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke3RoaXMuc3RhdHVzT2JqZWN0Py5jb21iaW5lZFN0YXR1c30iPjwvZGl2PgogICAgICAgICAgPGgxPiR7dGhpcy5zdGF0dXNPYmplY3Q/Lm5hbWV8fCJObyBzdGF0dXMgb2JqZWN0IGFzc2lnbmVkIn08L2gxPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29weU1haW4iIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29weUFzSnNvbn0+Q29weSBKU09OPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnN0YXR1c09iamVjdD8uZGV0YWlscz8ubWFwKGM9PndgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9ImRldGFpbCIKICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHtwPT57cC5wcmV2ZW50RGVmYXVsdCgpLFV0Lm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKHAsW3tuYW1lOiJDb3B5IFZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHkiLGFjdGlvbjphc3luYygpPT57YXdhaXQgdGhpcy5jb3B5VG9DbGlwYm9hcmQoYy52YWx1ZSwiVmFsdWUiKX19LHtuYW1lOiJDb3B5IEtleSIsaWNvbk5hbWU6Imx1Y2lkZTprZXkiLGFjdGlvbjphc3luYygpPT57YXdhaXQgdGhpcy5jb3B5VG9DbGlwYm9hcmQoYy5uYW1lLCJLZXkiKX19LHtuYW1lOiJDb3B5IEtleTpWYWx1ZSIsaWNvbk5hbWU6Imx1Y2lkZTpjb3B5LXBsdXMiLGFjdGlvbjphc3luYygpPT57YXdhaXQgdGhpcy5jb3B5VG9DbGlwYm9hcmQoYCR7Yy5uYW1lfTogJHtjLnZhbHVlfWAsIktleTpWYWx1ZSIpfX1dKX19CiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0dXNkb3QgJHtjLnN0YXR1c30iPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbHNUZXh0Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxhYmVsIj4ke2MubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZhbHVlIj4ke2MudmFsdWV9PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt9YXN5bmMgY29weVRvQ2xpcGJvYXJkKGMscD0iVGV4dCIpe3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjKSxjb25zb2xlLmxvZyhgJHtwfSBjb3BpZWQgdG8gY2xpcGJvYXJkYCl9Y2F0Y2gobCl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNvcHkgJHtwfTpgLGwpfX1hc3luYyBoYW5kbGVDb3B5QXNKc29uKCl7aWYodGhpcy5zdGF0dXNPYmplY3QpdHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdHVzT2JqZWN0LG51bGwsMikpO2xldCBjPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29weU1haW4iKSxwPWMudGV4dENvbnRlbnQ7Yy50ZXh0Q29udGVudD0iQ29waWVkISI7bGV0IGw9IXRoaXMuZ29CcmlnaHQ7Yy5zdHlsZS5iYWNrZ3JvdW5kPWw/ImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIixjLnN0eWxlLmJvcmRlckNvbG9yPWw/ImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIixjLnN0eWxlLmNvbG9yPWw/ImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIixzZXRUaW1lb3V0KCgpPT57Yy50ZXh0Q29udGVudD1wLGMuc3R5bGUuYmFja2dyb3VuZD0iIixjLnN0eWxlLmJvcmRlckNvbG9yPSIiLGMuc3R5bGUuY29sb3I9IiJ9LDE1MDApfWNhdGNoKGMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5OiIsYyl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmVih0aGlzLG8pfXN0YXRpY3tmVihpLGEpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgYW10PWIoKCk9Pnt0bXQoKX0pO3ZhciBpbXQ9YigoKT0+e1h4KCl9KTt2YXIgcm10PWIoKCk9PntYZnQoKTthbXQoKTt0VigpO2ltdCgpfSk7dmFyIEM4LE5zLHNtdCxReD1iKCgpPT57dWUoKTtxZSgpO0R0KCk7Qzg9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxOcz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sc210PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1hY3Rpb25iYXIiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSigpXSxkPVtKKCldLGw9W0ooKV0seT1bSigpXSxDOCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJjdXJyZW50QmFyImluIFMsZ2V0OlM9PlMuY3VycmVudEJhcixzZXQ6KFMsRik9PntTLmN1cnJlbnRCYXI9Rn19LG1ldGFkYXRhOk19LG4sbyksQzgodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lUmVtYWluaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4idGltZVJlbWFpbmluZyJpbiBTLGdldDpTPT5TLnRpbWVSZW1haW5pbmcsc2V0OihTLEYpPT57Uy50aW1lUmVtYWluaW5nPUZ9fSxtZXRhZGF0YTpNfSxjLHApLEM4KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ3Jlc3NQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4icHJvZ3Jlc3NQZXJjZW50ImluIFMsZ2V0OlM9PlMucHJvZ3Jlc3NQZXJjZW50LHNldDooUyxGKT0+e1MucHJvZ3Jlc3NQZXJjZW50PUZ9fSxtZXRhZGF0YTpNfSxmLGcpLEM4KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iaXNWaXNpYmxlImluIFMsZ2V0OlM9PlMuaXNWaXNpYmxlLHNldDooUyxGKT0+e1MuaXNWaXNpYmxlPUZ9fSxtZXRhZGF0YTpNfSx2LG0pLEM4KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOk19LG51bGwsYSkseD1pPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayIsIk92ZXJsYXkiXTtzdGF0aWMgZGVtbz0oKT0+e2xldCBNPWs9PmsuY3VycmVudFRhcmdldC5jbG9zZXN0KCIuZGVtby1jb250YWluZXIiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKTtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMzAwcHg7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgLmRlbW8tY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGVudCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7YXN5bmMgaz0+e2xldCBOPU0oayk7aWYoIU4pcmV0dXJuO2xldCBMPWF3YWl0IE4uc2hvdyh7bWVzc2FnZToiRmlsZSBjaGFuZ2VkIGV4dGVybmFsbHkuIFJlbG9hZD8iLHR5cGU6Indhcm5pbmciLGljb246Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6InJlbG9hZCIsbGFiZWw6IlJlbG9hZCIscHJpbWFyeTohMH0se2lkOiJpZ25vcmUiLGxhYmVsOiJJZ25vcmUifV0sdGltZW91dDp7ZHVyYXRpb246NWUzLGRlZmF1bHRBY3Rpb25JZDoicmVsb2FkIn0sZGlzbWlzc2libGU6ITB9KTtjb25zb2xlLmxvZygiQWN0aW9uIGJhciByZXN1bHQ6IixMKX19Pldhcm5pbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2FzeW5jIGs9PntsZXQgTj1NKGspO2lmKCFOKXJldHVybjtsZXQgTD1hd2FpdCBOLnNob3coe21lc3NhZ2U6IlByb2Nlc3MgZmFpbGVkIHdpdGggZXhpdCBjb2RlIDEiLHR5cGU6ImVycm9yIixpY29uOiJsdWNpZGU6eENpcmNsZSIsYWN0aW9uczpbe2lkOiJyZXRyeSIsbGFiZWw6IlJldHJ5IixwcmltYXJ5OiEwfSx7aWQ6ImRpc21pc3MiLGxhYmVsOiJEaXNtaXNzIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjFlNCxkZWZhdWx0QWN0aW9uSWQ6ImRpc21pc3MifX0pO2NvbnNvbGUubG9nKCJFcnJvciBiYXIgcmVzdWx0OiIsTCl9fT5FcnJvcjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7YXN5bmMgaz0+e2xldCBOPU0oayk7aWYoIU4pcmV0dXJuO2xldCBMPWF3YWl0IE4uc2hvdyh7bWVzc2FnZToiU2F2ZSBjaGFuZ2VzIGJlZm9yZSBjbG9zaW5nPyIsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb25zOlt7aWQ6InNhdmUiLGxhYmVsOiJTYXZlIixwcmltYXJ5OiEwfSx7aWQ6ImRpc2NhcmQiLGxhYmVsOiJEaXNjYXJkIn0se2lkOiJjYW5jZWwiLGxhYmVsOiJDYW5jZWwifV19KTtjb25zb2xlLmxvZygiUXVlc3Rpb24gYmFyIHJlc3VsdDoiLEwpfX0+UXVlc3Rpb248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICA8L2Rpdj4KICAgIGB9O3F1ZXVlPVtdOyNlPU5zKHRoaXMsbixudWxsKTtnZXQgY3VycmVudEJhcigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50QmFyKE0pe3RoaXMuI2U9TX0jdD0oTnModGhpcyxvKSxOcyh0aGlzLGMsMCkpO2dldCB0aW1lUmVtYWluaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRpbWVSZW1haW5pbmcoTSl7dGhpcy4jdD1NfSNhPShOcyh0aGlzLHApLE5zKHRoaXMsZiwxMDApKTtnZXQgcHJvZ3Jlc3NQZXJjZW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHByb2dyZXNzUGVyY2VudChNKXt0aGlzLiNhPU19I2k9KE5zKHRoaXMsZyksTnModGhpcyx2LCExKSk7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBpc1Zpc2libGUoTSl7dGhpcy4jaT1NfXRpbWVvdXRJbnRlcnZhbD0oTnModGhpcyxtKSxudWxsKTtjdXJyZW50UmVzb2x2ZT1udWxsO3N0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25iYXItaXRlbSB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMC4ycyBlYXNlLW91dDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoLnZpc2libGUpIC5hY3Rpb25iYXItaXRlbSB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25iYXItY29udGVudCB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0OwogICAgICB9CgogICAgICA6aG9zdCgudmlzaWJsZSkgLmFjdGlvbmJhci1jb250ZW50IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyIHsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDE4JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA1MCUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4xcyBsaW5lYXI7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbC53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA1MCUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwucXVlc3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjcwIDcwJSA1MCUpIiwiaHNsKDI3MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgbWluLWhlaWdodDogMzJweDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2Utc2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLmluZm8gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS1pY29uLnF1ZXN0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNzAgNzAlIDUwJSkiLCJoc2woMjcwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAubWVzc2FnZS10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODUlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC5hY3Rpb25zLXNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgNzAlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMzAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uc2Vjb25kYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDE4JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA1NSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS53YXJuaW5nOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0MCUpIiwiaHNsKDM4IDkyJSA0NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5lcnJvcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA0NSUpIiwiaHNsKDAgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkucXVlc3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjcwIDcwJSA1MCUpIiwiaHNsKDI3MCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5xdWVzdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyNzAgNzAlIDQ1JSkiLCJoc2woMjcwIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuY291bnRkb3duIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgIH0KCiAgICAgIC5kaXNtaXNzLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNtaXNzLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAyMiUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBNPXRoaXMuY3VycmVudEJhcixTPU0/LnR5cGV8fCJpbmZvIixGPU0/LnRpbWVvdXQmJnRoaXMudGltZVJlbWFpbmluZz4wO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25iYXItaXRlbSI+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uYmFyLWNvbnRlbnQiPgogICAgICAgICAgJHtNP3dgCiAgICAgICAgICAgICR7Rj93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcm9ncmVzcy1iYXItZmlsbCAke1N9IgogICAgICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7dGhpcy5wcm9ncmVzc1BlcmNlbnR9JSIKICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZS1zZWN0aW9uIj4KICAgICAgICAgICAgICAgICR7TS5pY29uP3dgCiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibWVzc2FnZS1pY29uICR7U30iCiAgICAgICAgICAgICAgICAgICAgLmljb249JHtNLmljb259CiAgICAgICAgICAgICAgICAgICAgaWNvblNpemU9IjE2IgogICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lc3NhZ2UtdGV4dCI+JHtNLm1lc3NhZ2V9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbnMtc2VjdGlvbiI+CiAgICAgICAgICAgICAgICAke00uYWN0aW9ucy5tYXAoXz0+dGhpcy5yZW5kZXJBY3Rpb25CdXR0b24oXyxNLEYpKX0KICAgICAgICAgICAgICAgICR7TS5kaXNtaXNzaWJsZT93YAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImRpc21pc3MtYnV0dG9uIgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURpc21pc3MoKX0KICAgICAgICAgICAgICAgICAgICB0aXRsZT0iRGlzbWlzcyIKICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckFjdGlvbkJ1dHRvbihNLFMsRil7bGV0IF89TS5wcmltYXJ5LGs9Uy50eXBlfHwiaW5mbyIsTj1TLnRpbWVvdXQ/LmRlZmF1bHRBY3Rpb25JZD09PU0uaWQsTD1GJiZOLEE9TWF0aC5jZWlsKHRoaXMudGltZVJlbWFpbmluZy8xZTMpO3JldHVybiB3YAogICAgICA8YnV0dG9uCiAgICAgICAgY2xhc3M9ImFjdGlvbi1idXR0b24gJHtfP2BwcmltYXJ5ICR7a31gOiJzZWNvbmRhcnkifSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVBY3Rpb24oTS5pZCwhMSl9CiAgICAgID4KICAgICAgICAke00uaWNvbj93YAogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke00uaWNvbn0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuPiR7TS5sYWJlbH08L3NwYW4+CiAgICAgICAgJHtMP3dgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iY291bnRkb3duIj4oJHtBfXMpPC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgIDwvYnV0dG9uPgogICAgYH1hc3luYyBzaG93KE0pe3JldHVybiBuZXcgUHJvbWlzZShTPT57dGhpcy5xdWV1ZS5wdXNoKHtvcHRpb25zOk0scmVzb2x2ZTpTfSksdGhpcy5jdXJyZW50QmFyfHx0aGlzLnByb2Nlc3NRdWV1ZSgpfSl9ZGlzbWlzcygpe3RoaXMuaGFuZGxlRGlzbWlzcygpfWNsZWFyUXVldWUoKXtmb3IobGV0IE0gb2YgdGhpcy5xdWV1ZSlNLnJlc29sdmUoe2FjdGlvbklkOiJkaXNtaXNzZWQiLHRpbWVkT3V0OiExfSk7dGhpcy5xdWV1ZT1bXX1hc3luYyBoaWRlQ3VycmVudEJhcigpe3RoaXMuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpLHRoaXMuaXNWaXNpYmxlPSExLGF3YWl0IG5ldyBQcm9taXNlKE09PnNldFRpbWVvdXQoTSwyMjApKSx0aGlzLmN1cnJlbnRCYXI9bnVsbCx0aGlzLmN1cnJlbnRSZXNvbHZlPW51bGx9YXN5bmMgcHJvY2Vzc1F1ZXVlKCl7aWYodGhpcy5xdWV1ZS5sZW5ndGg9PT0wKXt0aGlzLmhpZGVDdXJyZW50QmFyKCk7cmV0dXJufWxldCBNPXRoaXMucXVldWUuc2hpZnQoKTt0aGlzLmN1cnJlbnRCYXI9TS5vcHRpb25zLHRoaXMuY3VycmVudFJlc29sdmU9TS5yZXNvbHZlLHRoaXMuaXNWaXNpYmxlPSEwLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KSxNLm9wdGlvbnMudGltZW91dCYmdGhpcy5zdGFydFRpbWVvdXQoTS5vcHRpb25zLnRpbWVvdXQuZHVyYXRpb24sTS5vcHRpb25zLnRpbWVvdXQuZGVmYXVsdEFjdGlvbklkKX1zdGFydFRpbWVvdXQoTSxTKXt0aGlzLnRpbWVSZW1haW5pbmc9TSx0aGlzLnByb2dyZXNzUGVyY2VudD0xMDA7bGV0IEY9RGF0ZS5ub3coKSxfPTUwO3RoaXMudGltZW91dEludGVydmFsPXNldEludGVydmFsKCgpPT57bGV0IGs9RGF0ZS5ub3coKS1GO3RoaXMudGltZVJlbWFpbmluZz1NYXRoLm1heCgwLE0tayksdGhpcy5wcm9ncmVzc1BlcmNlbnQ9dGhpcy50aW1lUmVtYWluaW5nL00qMTAwLHRoaXMudGltZVJlbWFpbmluZzw9MCYmKHRoaXMuY2xlYXJUaW1lb3V0SW50ZXJ2YWwoKSx0aGlzLmhhbmRsZUFjdGlvbihTLCEwKSl9LF8pfWNsZWFyVGltZW91dEludGVydmFsKCl7dGhpcy50aW1lb3V0SW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMudGltZW91dEludGVydmFsKSx0aGlzLnRpbWVvdXRJbnRlcnZhbD1udWxsKX1oYW5kbGVBY3Rpb24oTSxTKXt0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCksdGhpcy5jdXJyZW50UmVzb2x2ZSYmdGhpcy5jdXJyZW50UmVzb2x2ZSh7YWN0aW9uSWQ6TSx0aW1lZE91dDpTfSksdGhpcy5wcm9jZXNzUXVldWUoKX1oYW5kbGVEaXNtaXNzKCl7dGhpcy5oYW5kbGVBY3Rpb24oImRpc21pc3NlZCIsITEpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCl9c3RhdGlje05zKGksYSl9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBubXQ9YigoKT0+e30pO3ZhciBvbXQ9YigoKT0+e1F4KCk7bm10KCl9KTt2YXIgbG10LGNtdD1iKCgpPT57dWUoKTtsbXQ9KCk9PndgCiAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Ij4KICAgIDxkZWVzLWJhZGdlIC50ZXh0PSR7IkRlZmF1bHQifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJwcmltYXJ5In0gLnRleHQ9JHsiUHJpbWFyeSJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InN1Y2Nlc3MifSAudGV4dD0keyJTdWNjZXNzIn0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsid2FybmluZyJ9IC50ZXh0PSR7Ildhcm5pbmcifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJlcnJvciJ9IC50ZXh0PSR7IkVycm9yIn0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsicHJpbWFyeSJ9IC5yb3VuZGVkPSR7ITB9IC50ZXh0PSR7IlJvdW5kZWQifT48L2RlZXMtYmFkZ2U+CiAgPC9kaXY+CmB9KTt2YXIgSngscjQsZG10LHBtdD1iKCgpPT57dWUoKTtUdCgpO2NtdCgpO3FlKCk7Sng9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxyND1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sZG10PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1iYWRnZSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtJKHt0eXBlOkJvb2xlYW59KV0sSngodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4idHlwZSJpbiBtLGdldDptPT5tLnR5cGUsc2V0OihtLHgpPT57bS50eXBlPXh9fSxtZXRhZGF0YTp2fSxuLG8pLEp4KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InRleHQiaW4gbSxnZXQ6bT0+bS50ZXh0LHNldDoobSx4KT0+e20udGV4dD14fX0sbWV0YWRhdGE6dn0sYyxwKSxKeCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvdW5kZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJyb3VuZGVkImluIG0sZ2V0Om09Pm0ucm91bmRlZCxzZXQ6KG0seCk9PnttLnJvdW5kZWQ9eH19LG1ldGFkYXRhOnZ9LGYsZyksSngobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6dn0sbnVsbCxhKSx5PWk9ZS52YWx1ZSx2JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZ9KX1zdGF0aWMgZGVtbz1sbXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdOyNlPXI0KHRoaXMsbiwiZGVmYXVsdCIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUodil7dGhpcy4jZT12fSN0PShyNCh0aGlzLG8pLHI0KHRoaXMsYywiIikpO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRleHQodil7dGhpcy4jdD12fSNhPShyNCh0aGlzLHApLHI0KHRoaXMsZiwhMSkpO2dldCByb3VuZGVkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJvdW5kZWQodil7dGhpcy4jYT12fWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxyNCh0aGlzLGcpLGIxLnNldHVwKCl9c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5yb3VuZGVkIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICB9CgogICAgICAuYmFkZ2UuZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMzMzIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiNjY2MiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMDA1MGI5OwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogIzJlN2QzMjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICNlZDZjMDI7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogI2U0MDAyYjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJhZGdlICR7dGhpcy50eXBlfSAke3RoaXMucm91bmRlZD8icm91bmRlZCI6IiJ9Ij4KICAgICAgICAke3RoaXMudGV4dH0KICAgICAgPC9kaXY+CiAgICBgfXN0YXRpY3tyNChpLGEpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgaG10PWIoKCk9PntwbXQoKX0pO3ZhciB1bXQsZm10PWIoKCk9Pnt1ZSgpO3VtdD0oKT0+d2AKICA8ZGVlcy1oaW50PjwvZGVlcy1oaW50PgpgfSk7dmFyIG1tdCxtVixnbXQsYm10PWIoKCk9Pnt1ZSgpO1R0KCk7Zm10KCk7cWUoKTttbXQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxtVj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sZ210PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1oaW50IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLG1tdCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnA9PiJ0eXBlImluIHAsZ2V0OnA9PnAudHlwZSxzZXQ6KHAsbCk9PntwLnR5cGU9bH19LG1ldGFkYXRhOmN9LG4sbyksbW10KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZD1pPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89dW10O3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1tVih0aGlzLG4sImluZm8iKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKGMpe3RoaXMuI2U9Y31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksbVYodGhpcyxvKSxiMS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgIDxkaXYgY2xhc3M9Im1haW5ib3giPjwvZGl2PiBgfXN0YXRpY3ttVihpLGEpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgdm10PWIoKCk9PntibXQoKX0pO3ZhciB5bXQseG10PWIoKCk9Pnt1ZSgpO2dWKCk7eW10PSgpPT53YAogICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgLnBlcmNlbnRhZ2U9JHs1MH0KICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgYH0pO3ZhciB3bXQsYlYsTW10LGdWPWIoKCk9PntyMigpO2dpKCk7eG10KCk7dWUoKTtUdCgpO3FlKCk7d210PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sYlY9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LE1tdD0oKCk9PntsZXQgdD1baGUoImRlZXMtcHJvZ3Jlc3NiYXIiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpOdW1iZXJ9KV0sd210KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGVyY2VudGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cD0+InBlcmNlbnRhZ2UiaW4gcCxnZXQ6cD0+cC5wZXJjZW50YWdlLHNldDoocCxsKT0+e3AucGVyY2VudGFnZT1sfX0sbWV0YWRhdGE6Y30sbixvKSx3bXQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxkPWk9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz15bXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdOyNlPWJWKHRoaXMsbiwwKTtnZXQgcGVyY2VudGFnZSgpe3JldHVybiB0aGlzLiNlfXNldCBwZXJjZW50YWdlKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZShVMC50ZXh0LG1pLnRleHQpfTsKICAgICAgfQogICAgICAucHJvZ3Jlc3NCYXJDb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWVlZWViIiwiIzQ0NCIpfTsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMC41cHggc29saWQgJHtoLmJkVGhlbWUoIm5vbmUiLCIjNTU1Iil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NCYXJGaWxsIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZShtaS5ibHVlQWN0aXZlLFUwLmJsdWVBY3RpdmUpfTsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAtMC41cHg7CiAgICAgICAgdHJhbnNpdGlvbjogMC4ycyB3aWR0aDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgd2lkdGg6IDBweDsKICAgICAgICBib3JkZXItdG9wOiAwLjUgc29saWQgJHtoLmJkVGhlbWUoIm5vbmUiLCIjMzk4ZmZmIil9OwogICAgICB9CgogICAgICAucHJvZ3Jlc3NUZXh0IHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NCYXJDb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzQmFyRmlsbCI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc1RleHQiPgogICAgICAgICAgICAke3RoaXMucGVyY2VudGFnZX0lCiAgICAgICAgICA8ZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKGMpe3N1cGVyLmZpcnN0VXBkYXRlZChjKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLnVwZGF0ZVBlcmNlbnRhZ2UoKX0pfWFzeW5jIHVwZGF0ZVBlcmNlbnRhZ2UoKXtsZXQgYz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnByb2dyZXNzQmFyRmlsbCIpO2Muc3R5bGUud2lkdGg9YCR7dGhpcy5wZXJjZW50YWdlfSVgfXVwZGF0ZWQoKXt0aGlzLnVwZGF0ZVBlcmNlbnRhZ2UoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksYlYodGhpcyxvKX1zdGF0aWN7YlYoaSxhKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIHptdD1iKCgpPT57Z1YoKX0pO3ZhciBldyxzNCxrbXQsU210PWIoKCk9Pnt1ZSgpO1R0KCk7cWUoKTtldz1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LHM0PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxrbXQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXNwaW5uZXIiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpOdW1iZXJ9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSgpXSxldyh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNpemUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJzaXplImluIG0sZ2V0Om09Pm0uc2l6ZSxzZXQ6KG0seCk9PnttLnNpemU9eH19LG1ldGFkYXRhOnZ9LG4sbyksZXcodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibnciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJibnciaW4gbSxnZXQ6bT0+bS5ibncsc2V0OihtLHgpPT57bS5ibnc9eH19LG1ldGFkYXRhOnZ9LGMscCksZXcodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm09PiJzdGF0dXMiaW4gbSxnZXQ6bT0+bS5zdGF0dXMsc2V0OihtLHgpPT57bS5zdGF0dXM9eH19LG1ldGFkYXRhOnZ9LGYsZyksZXcobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6dn0sbnVsbCxhKSx5PWk9ZS52YWx1ZSx2JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZ9KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07c3RhdGljIGRlbW89KCk9PndgCiAgICA8ZGVlcy1zcGlubmVyPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICAgIDxkZWVzLXNwaW5uZXIgc2l6ZT0kezY0fSBzdGF0dXM9InN1Y2Nlc3MiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciAuc2l6ZT0kezY0fSBzdGF0dXM9ImVycm9yIj48L2RlZXMtc3Bpbm5lcj4KICBgOyNlPXM0KHRoaXMsbiwyMCk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2l6ZSh2KXt0aGlzLiNlPXZ9I3Q9KHM0KHRoaXMsbyksczQodGhpcyxjLCExKSk7Z2V0IGJudygpe3JldHVybiB0aGlzLiN0fXNldCBibncodil7dGhpcy4jdD12fSNhPShzNCh0aGlzLHApLHM0KHRoaXMsZiwibm9ybWFsIikpO2dldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc3RhdHVzKHYpe3RoaXMuI2E9dn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksczQodGhpcyxnKX1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAjbG9hZGluZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogIzhiYzM0YTAwOwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBub25lOwogICAgICB9CgogICAgICAjbG9hZGluZy5lcnJvciB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgICNsb2FkaW5nIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiIzhiYzM0YSIsdGhpcy5ibnc/IiNmZmYiOiIjOGJjMzRhIil9OwogICAgICAgICAgCiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSh0aGlzLmJudz8iIzMzMyI6IiNlNjRhMTkiLHRoaXMuYm53PyIjZmZmIjoiI2U2NGExOSIpfTsKICAgICAgICB9CiAgICAgICAgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSIke3RoaXMuc3RhdHVzfSIgaWQ9ImxvYWRpbmciPgogICAgICAgICR7KCgpPT57aWYodGhpcy5zdGF0dXM9PT0ic3VjY2VzcyIpcmV0dXJuIHdgPGRlZXMtaWNvbiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGVYKDElKSB0cmFuc2xhdGVZKDMlKTsiIC5pY29uPSR7ImZhOmNpcmNsZS1jaGVjayJ9PjwvZGVlcy1pY29uPmA7aWYodGhpcy5zdGF0dXM9PT0iZXJyb3IiKXJldHVybiB3YDxkZWVzLWljb24gLmljb249JHsiZmE6Y2lyY2xlLXhtYXJrIn0+PC9kZWVzLWljb24+YH0pKCl9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7czQoaSxhKX19O3JldHVybiB5PWl9KSgpfSk7dmFyIENtdD1iKCgpPT57U210KCl9KTt2YXIgX210LFRtdD1iKCgpPT57dWUoKTt2VigpO25vKCk7X210PSgpPT53YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICB9CgogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogICAgICB9CgogICAgICAuZGVtby10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICB9CgogICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY2NiIsIiNhYWEiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICB9CgogICAgICAudGhlbWUtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAxNnB4OwogICAgICAgIHJpZ2h0OiAxNnB4OwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWJ1dHRvbiBjbGFzcz0idGhlbWUtdG9nZ2xlIiBAY2xpY2tlZD0keygpPT57ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCJicmlnaHQiKX19PlRvZ2dsZSBUaGVtZTwvZGVlcy1idXR0b24+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VG9hc3QgVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIERpZmZlcmVudCB0b2FzdCB0eXBlcyBmb3IgdmFyaW91cyBub3RpZmljYXRpb24gc2NlbmFyaW9zLiBDbGljayBhbnkgYnV0dG9uIHRvIHNob3cgYSB0b2FzdC4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC5pbmZvKCJUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgbWVzc2FnZSIpfX0+SW5mbyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCIgQGNsaWNrZWQ9JHsoKT0+e0J0LnN1Y2Nlc3MoIk9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ISIpfX0+U3VjY2VzcyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQud2FybmluZygiUGxlYXNlIHJldmlldyBiZWZvcmUgcHJvY2VlZGluZyIpfX0+V2FybmluZyBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQuZXJyb3IoIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmciKX19PkVycm9yIFRvYXN0PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VG9hc3QgUG9zaXRpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUb2FzdHMgY2FuIGFwcGVhciBpbiBkaWZmZXJlbnQgcG9zaXRpb25zIG9uIHRoZSBzY3JlZW4uCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQuc2hvdyh7bWVzc2FnZToiVG9wIFJpZ2h0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLXJpZ2h0In0pfX0+VG9wIFJpZ2h0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC5zaG93KHttZXNzYWdlOiJUb3AgTGVmdCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1sZWZ0In0pfX0+VG9wIExlZnQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LnNob3coe21lc3NhZ2U6IkJvdHRvbSBSaWdodCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246ImJvdHRvbS1yaWdodCJ9KX19PkJvdHRvbSBSaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQuc2hvdyh7bWVzc2FnZToiQm90dG9tIExlZnQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tbGVmdCJ9KX19PkJvdHRvbSBMZWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC5zaG93KHttZXNzYWdlOiJUb3AgQ2VudGVyIFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoidG9wLWNlbnRlciJ9KX19PlRvcCBDZW50ZXI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LnNob3coe21lc3NhZ2U6IkJvdHRvbSBDZW50ZXIgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tY2VudGVyIn0pfX0+Qm90dG9tIENlbnRlcjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkR1cmF0aW9uIE9wdGlvbnM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENvbnRyb2wgaG93IGxvbmcgdG9hc3RzIHN0YXkgdmlzaWJsZS4gRHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LnNob3coe21lc3NhZ2U6IlF1aWNrIHRvYXN0ICgxIHNlY29uZCkiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjFlM30pfX0+MSBTZWNvbmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LnNob3coe21lc3NhZ2U6IlN0YW5kYXJkIHRvYXN0ICgzIHNlY29uZHMpIix0eXBlOiJpbmZvIixkdXJhdGlvbjozZTN9KX19PjMgU2Vjb25kcyAoRGVmYXVsdCk8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LnNob3coe21lc3NhZ2U6IkxvbmcgdG9hc3QgKDUgc2Vjb25kcykiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjVlM30pfX0+NSBTZWNvbmRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9PntCdC5zaG93KHttZXNzYWdlOiJNYW51YWwgZGlzbWlzcyBvbmx5IChjbGljayB0byBjbG9zZSkiLHR5cGU6Indhcm5pbmciLGR1cmF0aW9uOjB9KX19Pk5vIEF1dG8tRGlzbWlzczwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIFRvYXN0czwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgTXVsdGlwbGUgdG9hc3RzIHN0YWNrIGF1dG9tYXRpY2FsbHkuIFRoZXkgbWFpbnRhaW4gdGhlaXIgb3JkZXIgYW5kIGFuaW1hdGUgc21vb3RobHkuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQuaW5mbygiRmlyc3Qgbm90aWZpY2F0aW9uIiksc2V0VGltZW91dCgoKT0+QnQuc3VjY2VzcygiU2Vjb25kIG5vdGlmaWNhdGlvbiIpLDIwMCksc2V0VGltZW91dCgoKT0+QnQud2FybmluZygiVGhpcmQgbm90aWZpY2F0aW9uIiksNDAwKSxzZXRUaW1lb3V0KCgpPT5CdC5lcnJvcigiRm91cnRoIG5vdGlmaWNhdGlvbiIpLDYwMCl9fT5TaG93IE11bHRpcGxlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntmb3IobGV0IHQ9MTt0PD01O3QrKylzZXRUaW1lb3V0KCgpPT57QnQuc2hvdyh7bWVzc2FnZTpgTm90aWZpY2F0aW9uICMke3R9YCx0eXBlOnQlMj09PTA/InN1Y2Nlc3MiOiJpbmZvIixkdXJhdGlvbjoyZTMrdCo1MDB9KX0sdCoxMDApfX0+UmFwaWQgRmlyZTwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlJlYWwtV29ybGQgRXhhbXBsZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENvbW1vbiB1c2UgY2FzZXMgZm9yIHRvYXN0IG5vdGlmaWNhdGlvbnMgaW4gYXBwbGljYXRpb25zLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHthc3luYygpPT57bGV0IHQ9YXdhaXQgQnQuc2hvdyh7bWVzc2FnZToiU2F2aW5nIGNoYW5nZXMuLi4iLHR5cGU6ImluZm8iLGR1cmF0aW9uOjB9KTtzZXRUaW1lb3V0KCgpPT57dC5kaXNtaXNzKCksQnQuc3VjY2VzcygiQ2hhbmdlcyBzYXZlZCBzdWNjZXNzZnVsbHkhIil9LDJlMyl9fT5TYXZlIE9wZXJhdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQuZXJyb3IoIkZhaWxlZCB0byBjb25uZWN0IHRvIHNlcnZlci4gUGxlYXNlIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbi4iKX19Pk5ldHdvcmsgRXJyb3I8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0Lndhcm5pbmcoIllvdXIgc2Vzc2lvbiB3aWxsIGV4cGlyZSBpbiA1IG1pbnV0ZXMiKX19PlNlc3Npb24gV2FybmluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57QnQuc3VjY2VzcygiRmlsZSB1cGxvYWRlZCBzdWNjZXNzZnVsbHkhIil9fT5VcGxvYWQgQ29tcGxldGU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Qcm9ncmFtbWF0aWMgQ29udHJvbDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgQWR2YW5jZWQgY29udHJvbCBvdmVyIHRvYXN0IGJlaGF2aW9yLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHthc3luYygpPT57bGV0IHQ9YXdhaXQgQnQuc2hvdyh7bWVzc2FnZToiVGhpcyB0b2FzdCBjYW4gYmUgZGlzbWlzc2VkIHByb2dyYW1tYXRpY2FsbHkiLHR5cGU6ImluZm8iLGR1cmF0aW9uOjB9KTtzZXRUaW1lb3V0KCgpPT57dC5kaXNtaXNzKCksQnQuc3VjY2VzcygiVG9hc3QgZGlzbWlzc2VkIGFmdGVyIDIgc2Vjb25kcyIpfSwyZTMpfX0+UHJvZ3JhbW1hdGljIERpc21pc3M8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e0J0LmluZm8oIkluZm8gbWVzc2FnZSIsMmUzKSxzZXRUaW1lb3V0KCgpPT5CdC5zdWNjZXNzKCJTdWNjZXNzIG1lc3NhZ2UiLDJlMyksNTAwKSxzZXRUaW1lb3V0KCgpPT5CdC53YXJuaW5nKCJXYXJuaW5nIG1lc3NhZ2UiLDJlMyksMWUzKSxzZXRUaW1lb3V0KCgpPT5CdC5lcnJvcigiRXJyb3IgbWVzc2FnZSIsMmUzKSwxNTAwKX19PkNvbnZlbmllbmNlIE1ldGhvZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9KTt2YXIgXzgsRnMsQnQsdlY9YigoKT0+e3VlKCk7VHQoKTt1aSgpO1RtdCgpO2NhKCk7cWUoKTtfOD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEZzPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxCdD0oKCk9PntsZXQgdD1baGUoImRlZXMtdG9hc3QiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IE09dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpOdW1iZXJ9KV0seT1bSSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sXzgodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXNzYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ibWVzc2FnZSJpbiBTLGdldDpTPT5TLm1lc3NhZ2Usc2V0OihTLEYpPT57Uy5tZXNzYWdlPUZ9fSxtZXRhZGF0YTpNfSxuLG8pLF84KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InR5cGUiaW4gUyxnZXQ6Uz0+Uy50eXBlLHNldDooUyxGKT0+e1MudHlwZT1GfX0sbWV0YWRhdGE6TX0sYyxwKSxfOCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iZHVyYXRpb24iaW4gUyxnZXQ6Uz0+Uy5kdXJhdGlvbixzZXQ6KFMsRik9PntTLmR1cmF0aW9uPUZ9fSxtZXRhZGF0YTpNfSxmLGcpLF84KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iaXNWaXNpYmxlImluIFMsZ2V0OlM9PlMuaXNWaXNpYmxlLHNldDooUyxGKT0+e1MuaXNWaXNpYmxlPUZ9fSxtZXRhZGF0YTpNfSx2LG0pLF84KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOk19LG51bGwsYSkseD1pPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89X210O3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siLCJPdmVybGF5Il07c3RhdGljIHRvYXN0Q29udGFpbmVycz1uZXcgTWFwO3N0YXRpYyBnZXRPckNyZWF0ZUNvbnRhaW5lcihNKXtpZighdGhpcy50b2FzdENvbnRhaW5lcnMuaGFzKE0pKXtsZXQgUz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzd2l0Y2goUy5jbGFzc05hbWU9YHRvYXN0LWNvbnRhaW5lciB0b2FzdC1jb250YWluZXItJHtNfWAsUy5zdHlsZS5jc3NUZXh0PWAKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgei1pbmRleDogJHtpMi5vdmVybGF5LnRvYXN0fTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgYCxNKXtjYXNlInRvcC1yaWdodCI6Uy5zdHlsZS50b3A9IjAiLFMuc3R5bGUucmlnaHQ9IjAiO2JyZWFrO2Nhc2UidG9wLWxlZnQiOlMuc3R5bGUudG9wPSIwIixTLnN0eWxlLmxlZnQ9IjAiO2JyZWFrO2Nhc2UiYm90dG9tLXJpZ2h0IjpTLnN0eWxlLmJvdHRvbT0iMCIsUy5zdHlsZS5yaWdodD0iMCI7YnJlYWs7Y2FzZSJib3R0b20tbGVmdCI6Uy5zdHlsZS5ib3R0b209IjAiLFMuc3R5bGUubGVmdD0iMCI7YnJlYWs7Y2FzZSJ0b3AtY2VudGVyIjpTLnN0eWxlLnRvcD0iMCIsUy5zdHlsZS5sZWZ0PSI1MCUiLFMuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKC01MCUpIjticmVhaztjYXNlImJvdHRvbS1jZW50ZXIiOlMuc3R5bGUuYm90dG9tPSIwIixTLnN0eWxlLmxlZnQ9IjUwJSIsUy5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoLTUwJSkiO2JyZWFrfWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoUyksdGhpcy50b2FzdENvbnRhaW5lcnMuc2V0KE0sUyl9cmV0dXJuIHRoaXMudG9hc3RDb250YWluZXJzLmdldChNKX1zdGF0aWMgYXN5bmMgc2hvdyhNKXtsZXQgUz10eXBlb2YgTT09InN0cmluZyI/e21lc3NhZ2U6TX06TSxGPW5ldyB4O3JldHVybiBGLm1lc3NhZ2U9Uy5tZXNzYWdlLEYudHlwZT1TLnR5cGV8fCJpbmZvIixGLmR1cmF0aW9uPVMuZHVyYXRpb258fDNlMyx0aGlzLmdldE9yQ3JlYXRlQ29udGFpbmVyKFMucG9zaXRpb258fCJ0b3AtcmlnaHQiKS5hcHBlbmRDaGlsZChGKSxhd2FpdCBGLnVwZGF0ZUNvbXBsZXRlLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e0YuaXNWaXNpYmxlPSEwfSksRi5kdXJhdGlvbj4wJiZzZXRUaW1lb3V0KCgpPT57Ri5kaXNtaXNzKCl9LEYuZHVyYXRpb24pLEZ9c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coTSl7cmV0dXJuIHRoaXMuc2hvdyhNKX1zdGF0aWMgaW5mbyhNLFMpe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6TSx0eXBlOiJpbmZvIixkdXJhdGlvbjpTfSl9c3RhdGljIHN1Y2Nlc3MoTSxTKXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOk0sdHlwZToic3VjY2VzcyIsZHVyYXRpb246U30pfXN0YXRpYyB3YXJuaW5nKE0sUyl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTpNLHR5cGU6Indhcm5pbmciLGR1cmF0aW9uOlN9KX1zdGF0aWMgZXJyb3IoTSxTKXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOk0sdHlwZToiZXJyb3IiLGR1cmF0aW9uOlN9KX0jZT1Gcyh0aGlzLG4sIiIpO2dldCBtZXNzYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG1lc3NhZ2UoTSl7dGhpcy4jZT1NfSN0PShGcyh0aGlzLG8pLEZzKHRoaXMsYywiaW5mbyIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiN0fXNldCB0eXBlKE0pe3RoaXMuI3Q9TX0jYT0oRnModGhpcyxwKSxGcyh0aGlzLGYsM2UzKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGR1cmF0aW9uKE0pe3RoaXMuI2E9TX0jaT0oRnModGhpcyxnKSxGcyh0aGlzLHYsITEpKTtnZXQgaXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzVmlzaWJsZShNKXt0aGlzLiNpPU19Y29uc3RydWN0b3IoKXtzdXBlcigpLEZzKHRoaXMsbSksYjEuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2lzdmlzaWJsZV0pIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgfQoKICAgICAgLnRvYXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmYiLCIjMjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMSkiLCJyZ2JhKDAsMCwwLDAuMykiKX07CiAgICAgICAgbWluLXdpZHRoOiAzMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnRvYXN0OmhvdmVyIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpOwogICAgICB9CgogICAgICAuaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5jbG9zZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jbG9zZSBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC8qIFR5cGUtc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIDpob3N0KFt0eXBlPSJpbmZvIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogIzAwODRmZjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9InN1Y2Nlc3MiXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0id2FybmluZyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICNmNTllMGI7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJlcnJvciJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC8qIFByb2dyZXNzIGJhciAqLwogICAgICAucHJvZ3Jlc3MgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgb3BhY2l0eTogMC4yOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7CiAgICAgICAgYW5pbWF0aW9uOiBwcm9ncmVzcyBsaW5lYXIgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHJvZ3Jlc3MgewogICAgICAgIGZyb20gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IE09e2luZm86d2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0xLTExYTEgMSAwIDEwLTIgMHYySDdhMSAxIDAgMTAwIDJoMnYyYTEgMSAwIDEwMiAwdi0yaDJhMSAxIDAgMTAwLTJoLTJWN3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLHN1Y2Nlc3M6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0zLjcwNy05LjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEw5IDEwLjU4NiA3LjcwNyA5LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMDAxLjQxNCAwbDQtNHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLHdhcm5pbmc6d2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjI1NyAzLjA5OWMuNzY1LTEuMzYgMi43MjItMS4zNiAzLjQ4NiAwbDUuNTggOS45MmMuNzUgMS4zMzQtLjIxMyAyLjk4LTEuNzQyIDIuOThINC40MmMtMS41MyAwLTIuNDkzLTEuNjQ2LTEuNzQzLTIuOThsNS41OC05Ljkyek0xMSAxM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0xLThhMSAxIDAgMDAtMSAxdjNhMSAxIDAgMDAyIDBWNmExIDEgMCAwMC0xLTF6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgICAgPC9zdmc+YCxlcnJvcjp3YDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTguNzA3IDcuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0TDguNTg2IDEwbC0xLjI5MyAxLjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEwIDExLjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDExLjQxNCAxMGwxLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMCA4LjU4NiA4LjcwNyA3LjI5M3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gfTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idG9hc3QiIEBjbGljaz0ke3RoaXMuZGlzbWlzc30+CiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbiI+CiAgICAgICAgICAke01bdGhpcy50eXBlXX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlIj4ke3RoaXMubWVzc2FnZX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjbG9zZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgPHBhdGggZD0iTTQuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggNy4yOTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDIuNjQ3IDIuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtMi42NDYgMi42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCA0LjY0NiA1LjM1NGEuNS41IDAgMCAxIDAtLjcwOHoiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5kdXJhdGlvbj4wP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciIgc3R5bGU9ImFuaW1hdGlvbi1kdXJhdGlvbjogJHt0aGlzLmR1cmF0aW9ufW1zIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkaXNtaXNzKCl7dGhpcy5pc1Zpc2libGU9ITEsYXdhaXQgbmV3IFByb21pc2UoUz0+c2V0VGltZW91dChTLDMwMCkpLHRoaXMucmVtb3ZlKCk7bGV0IE09dGhpcy5wYXJlbnRFbGVtZW50O2lmKE0mJk0uY2hpbGRyZW4ubGVuZ3RoPT09MCl7TS5yZW1vdmUoKTtmb3IobGV0W1MsRl1vZiB4LnRvYXN0Q29udGFpbmVycy5lbnRyaWVzKCkpaWYoRj09PU0pe3gudG9hc3RDb250YWluZXJzLmRlbGV0ZShTKTticmVha319fWZpcnN0VXBkYXRlZCgpe3RoaXMuc2V0QXR0cmlidXRlKCJ0eXBlIix0aGlzLnR5cGUpfXN0YXRpY3tGcyhpLGEpfX07cmV0dXJuIHg9aX0pKCl9KTt2YXIgTG10PWIoKCk9Pnt2VigpfSk7dmFyICRtdD1iKCgpPT57b210KCk7aG10KCk7dm10KCk7em10KCk7Q210KCk7TG10KCl9KTt2YXIgQW10PWIoKCk9PntBbCgpfSk7dmFyIERtdD1iKCgpPT57SzAoKX0pO3ZhciBFbXQ9YigoKT0+e0FtdCgpO0RtdCgpfSk7dmFyIFBtdD1iKCgpPT57QzEoKX0pO3ZhciBJbXQ9YigoKT0+e194KCl9KTt2YXIgTm10PWIoKCk9PntQcSgpfSk7dmFyIEZtdD1iKCgpPT57T3goKX0pO3ZhciBPbXQ9YigoKT0+e1dxKCl9KTt2YXIgUm10LEJtdD1iKCgpPT57dWUoKTt5MSgpO20yKCk7QWwoKTtsbygpO0swKCk7Um10PSgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke1FgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWwgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICMzNzQxNTE7CiAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMyYzJjMmM7CiAgICAgICAgICAgIGNvbG9yOiAjZTRlNGU3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZmVhdHVyZS1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2VmZjZmZjsKICAgICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzNiODJmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAjMWU0MGFmOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAuZmVhdHVyZS1ub3RlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlM2E1ZjsKICAgICAgICAgICAgY29sb3I6ICM5M2M1ZmQ7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgTGlzdCBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgbGlzdCBtYW5hZ2VtZW50IHdpdGggYWRkLCBlZGl0LCBhbmQgZGVsZXRlIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlNob3BwaW5nIExpc3QifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpdGVtIHRvIHlvdXIgbGlzdC4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbIk1pbGsiLCJCcmVhZCIsIkVnZ3MiLCJDaGVlc2UiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEb3VibGUtY2xpY2sgdG8gZWRpdCBpdGVtcywgb3IgdXNlIHRoZSBlZGl0IGJ1dHRvbiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5KhIERvdWJsZS1jbGljayBhbnkgaXRlbSB0byBxdWlja2x5IGVkaXQgaXQgaW5saW5lCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBTb3J0YWJsZSBMaXN0In0gLnN1YnRpdGxlPSR7IkRyYWcgYW5kIGRyb3AgdG8gcmVvcmRlciBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJUYXNrIFByaW9yaXR5In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgYSB0YXNrLi4uIn0KICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgLnZhbHVlPSR7WyJSZXZpZXcgcHVsbCByZXF1ZXN0cyIsIkZpeCBjcml0aWNhbCBidWciLCJVcGRhdGUgZG9jdW1lbnRhdGlvbiIsIkRlcGxveSB0byBwcm9kdWN0aW9uIiwiVGVhbSBzdGFuZHVwIG1lZXRpbmciXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEcmFnIGl0ZW1zIHVzaW5nIHRoZSBoYW5kbGUgdG8gcmVvcmRlciB0aGVtIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ub3RlIj4KICAgICAgICAgIPCflIQgRHJhZyB0aGUgZ3JpcCBoYW5kbGUgdG8gcmVvcmRlciB0YXNrcyBieSBwcmlvcml0eQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gVmFsaWRhdGlvbiAmIENvbnN0cmFpbnRzIn0gLnN1YnRpdGxlPSR7Ikxpc3RzIHdpdGggbWluaW11bS9tYXhpbXVtIGl0ZW1zIGFuZCBkdXBsaWNhdGUgcHJldmVudGlvbiJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRlYW0gTWVtYmVycyAoTWluIDIsIE1heCA1KSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgdGVhbSBtZW1iZXIuLi4ifQogICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAubWF4SXRlbXM9JHs1fQogICAgICAgICAgICAudmFsdWU9JHtbIkFsaWNlIiwiQm9iIl19CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIDItNSB0ZWFtIG1lbWJlcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJVbmlxdWUgVGFncyAoTm8gRHVwbGljYXRlcykifQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHVuaXF1ZSB0YWcuLi4ifQogICAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAgIC52YWx1ZT0ke1siZnJvbnRlbmQiLCJiYWNrZW5kIiwiZGF0YWJhc2UiXX0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkR1cGxpY2F0ZSBpdGVtcyBhcmUgbm90IGFsbG93ZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gRGVsZXRlIENvbmZpcm1hdGlvbiJ9IC5zdWJ0aXRsZT0keyJSZXF1aXJlIGNvbmZpcm1hdGlvbiBiZWZvcmUgZGVsZXRpbmcgaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiSW1wb3J0YW50IERvY3VtZW50cyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGRvY3VtZW50IG5hbWUuLi4ifQogICAgICAgICAgLmNvbmZpcm1EZWxldGU9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke1siQ29udHJhY3RfMjAyNC5wZGYiLCJGaW5hbmNpYWxfUmVwb3J0X1EzLnhsc3giLCJQcm9qZWN0X1Byb3Bvc2FsLmRvY3giLCJNZWV0aW5nX05vdGVzLnR4dCJdfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkRlbGV0aW9uIHJlcXVpcmVzIGNvbmZpcm1hdGlvbiBmb3Igc2FmZXR5In0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBEaXNhYmxlZCBTdGF0ZSJ9IC5zdWJ0aXRsZT0keyJSZWFkLW9ubHkgbGlzdCBkaXNwbGF5In0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IlN5c3RlbSBEZWZhdWx0cyJ9CiAgICAgICAgICAudmFsdWU9JHtbIkRlZmF1bHQgU2V0dGluZyAxIiwiRGVmYXVsdCBTZXR0aW5nIDIiLCJEZWZhdWx0IFNldHRpbmcgMyJdfQogICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhlc2UgaXRlbXMgY2Fubm90IGJlIG1vZGlmaWVkIn0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7Ikxpc3QgaW5wdXQgd29ya2luZyB3aXRoaW4gYSBmb3JtIGNvbnRleHQifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUmVjaXBlIE5hbWUifQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiTXkgQW1hemluZyBSZWNpcGUifQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmtleT0keyJuYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7IkluZ3JlZGllbnRzIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGluZ3JlZGllbnQuLi4ifQogICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgIC5taW5JdGVtcz0kezN9CiAgICAgICAgICAgICAgLmtleT0keyJpbmdyZWRpZW50cyJ9CiAgICAgICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAgICAgLnZhbHVlPSR7WyIyIGN1cHMgZmxvdXIiLCIxIGN1cCBzdWdhciIsIjMgZWdncyJdfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJBZGQgYXQgbGVhc3QgMyBpbmdyZWRpZW50cyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICAubGFiZWw9JHsiSW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGluc3RydWN0aW9uIHN0ZXAuLi4ifQogICAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAgIC5taW5JdGVtcz0kezJ9CiAgICAgICAgICAgICAgLmtleT0keyJpbnN0cnVjdGlvbnMifQogICAgICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgICAgIC52YWx1ZT0ke1siUHJlaGVhdCBvdmVuIHRvIDM1MFx4QjBGIiwiTWl4IGRyeSBpbmdyZWRpZW50cyJdfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJBZGQgY29va2luZyBpbnN0cnVjdGlvbnMgaW4gb3JkZXIifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiTm90ZXMifQogICAgICAgICAgICAuaW5wdXRUeXBlPSR7InRleHRhcmVhIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFueSBzcGVjaWFsIG5vdGVzIG9yIHRpcHMuLi4ifQogICAgICAgICAgICAua2V5PSR7Im5vdGVzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiU2F2ZSBSZWNpcGUifT48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBJbnRlcmFjdGl2ZSBEZW1vIn0gLnN1YnRpdGxlPSR7IkJ1aWxkIHlvdXIgb3duIGZlYXR1cmUgbGlzdCBhbmQgc2VlIHRoZSBkYXRhIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLWxpc3QiCiAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBGZWF0dXJlcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGEgZmVhdHVyZS4uLiJ9CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITF9CiAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAubWF4SXRlbXM9JHsxMH0KICAgICAgICAgIEBjaGFuZ2U9JHt0PT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2xpc3QtanNvbiIpO2lmKGUpe2xldCBhPXtpdGVtczp0LmRldGFpbC52YWx1ZSxjb3VudDp0LmRldGFpbC52YWx1ZS5sZW5ndGgsdGltZXN0YW1wOm5ldyBEYXRlKCkudG9JU09TdHJpbmcoKX07ZS50ZXh0Q29udGVudD1KU09OLnN0cmluZ2lmeShhLG51bGwsMil9fX0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJsaXN0LWpzb24iPgogICAgICAgICAgewogICAgICAgICAgICAiaXRlbXMiOiBbXSwKICAgICAgICAgICAgImNvdW50IjogMCwKICAgICAgICAgICAgInRpbWVzdGFtcCI6ICIke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0iCiAgICAgICAgICB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ub3RlIj4KICAgICAgICAgIOKcqCBBZGQsIGVkaXQsIHJlbW92ZSwgYW5kIHJlb3JkZXIgaXRlbXMgdG8gc2VlIHRoZSBKU09OIG91dHB1dCB1cGRhdGUgaW4gcmVhbC10aW1lCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBBZHZhbmNlZCBDb25maWd1cmF0aW9uIn0gLnN1YnRpdGxlPSR7IkNvbWJpbmUgYWxsIGZlYXR1cmVzIGZvciBjb21wbGV4IHVzZSBjYXNlcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0IE1pbGVzdG9uZXMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBtaWxlc3RvbmUuLi4ifQogICAgICAgICAgLnZhbHVlPSR7WyJQcm9qZWN0IEtpY2tvZmYgLSBXZWVrIDEiLCJSZXF1aXJlbWVudHMgR2F0aGVyaW5nIC0gV2VlayAyLTMiLCJEZXNpZ24gUGhhc2UgLSBXZWVrIDQtNiIsIkRldmVsb3BtZW50IFNwcmludCAxIC0gV2VlayA3LTkiLCJUZXN0aW5nICYgUUEgLSBXZWVrIDEwLTExIiwiRGVwbG95bWVudCAtIFdlZWsgMTIiXX0KICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgLmNvbmZpcm1EZWxldGU9JHshMH0KICAgICAgICAgIC5hbGxvd0R1cGxpY2F0ZXM9JHshMX0KICAgICAgICAgIC5taW5JdGVtcz0kezN9CiAgICAgICAgICAubWF4SXRlbXM9JHsxMn0KICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ik1hbmFnZSBwcm9qZWN0IG1pbGVzdG9uZXMgKDMtMTIgaXRlbXMsIHNvcnRhYmxlLCBubyBkdXBsaWNhdGVzKSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOS4gRW1wdHkgU3RhdGUifSAuc3VidGl0bGU9JHsiSG93IHRoZSBjb21wb25lbnQgbG9va3Mgd2l0aCBubyBpdGVtcyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJZb3VyIElkZWFzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJTaGFyZSB5b3VyIGlkZWFzLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1tdfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlN0YXJ0IGFkZGluZyBpdGVtcyB0byBidWlsZCB5b3VyIGxpc3QifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIGcyLEl0LEhtdCxxbXQ9YigoKT0+e3VlKCk7QzEoKTtEdCgpO25vKCk7Qm10KCk7cWUoKTtnMj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEl0PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxIbXQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWlucHV0LWxpc3QiKV0sZSxhPVtdLGkscj1YZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXSxyZSxqPVtdLG1lPVtdLHdlLEg9W10sY2U9W10sa2UsVz1bXSxEPVtdLE8sWj1bXSxZPVtdLG9lLGdlPVtdLGJlPVtdLCRlLEI9W10sUD1bXSxLLGZlPVtdLGRlPVtdO3ZhciBfZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHBlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6QXJyYXl9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpOdW1iZXJ9KV0seT1bSSh7dHlwZTpOdW1iZXJ9KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0koe3R5cGU6Qm9vbGVhbn0pXSxOPVtJKHt0eXBlOkJvb2xlYW59KV0scT1bSSh7dHlwZTpTdHJpbmd9KV0sRT1bSigpXSxWPVtKKCldLHJlPVtKKCldLHdlPVtKKCldLGtlPVtKKCldLE89W0ooKV0sb2U9W0ooKV0sJGU9W0ooKV0sSz1bSigpXSxnMih0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+InZhbHVlImluIHRlLGdldDp0ZT0+dGUudmFsdWUsc2V0Oih0ZSx6ZSk9Pnt0ZS52YWx1ZT16ZX19LG1ldGFkYXRhOnBlfSxuLG8pLGcyKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnRlPT4icGxhY2Vob2xkZXIiaW4gdGUsZ2V0OnRlPT50ZS5wbGFjZWhvbGRlcixzZXQ6KHRlLHplKT0+e3RlLnBsYWNlaG9sZGVyPXplfX0sbWV0YWRhdGE6cGV9LGMscCksZzIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJtYXhJdGVtcyJpbiB0ZSxnZXQ6dGU9PnRlLm1heEl0ZW1zLHNldDoodGUsemUpPT57dGUubWF4SXRlbXM9emV9fSxtZXRhZGF0YTpwZX0sZixnKSxnMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+Im1pbkl0ZW1zImluIHRlLGdldDp0ZT0+dGUubWluSXRlbXMsc2V0Oih0ZSx6ZSk9Pnt0ZS5taW5JdGVtcz16ZX19LG1ldGFkYXRhOnBlfSx2LG0pLGcyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dEdXBsaWNhdGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+ImFsbG93RHVwbGljYXRlcyJpbiB0ZSxnZXQ6dGU9PnRlLmFsbG93RHVwbGljYXRlcyxzZXQ6KHRlLHplKT0+e3RlLmFsbG93RHVwbGljYXRlcz16ZX19LG1ldGFkYXRhOnBlfSxNLFMpLGcyKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic29ydGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnRlPT4ic29ydGFibGUiaW4gdGUsZ2V0OnRlPT50ZS5zb3J0YWJsZSxzZXQ6KHRlLHplKT0+e3RlLnNvcnRhYmxlPXplfX0sbWV0YWRhdGE6cGV9LF8sayksZzIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb25maXJtRGVsZXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+ImNvbmZpcm1EZWxldGUiaW4gdGUsZ2V0OnRlPT50ZS5jb25maXJtRGVsZXRlLHNldDoodGUsemUpPT57dGUuY29uZmlybURlbGV0ZT16ZX19LG1ldGFkYXRhOnBlfSxMLEEpLGcyKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnRlPT4idmFsaWRhdGlvblRleHQiaW4gdGUsZ2V0OnRlPT50ZS52YWxpZGF0aW9uVGV4dCxzZXQ6KHRlLHplKT0+e3RlLnZhbGlkYXRpb25UZXh0PXplfX0sbWV0YWRhdGE6cGV9LEMseiksZzIodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+ImlucHV0VmFsdWUiaW4gdGUsZ2V0OnRlPT50ZS5pbnB1dFZhbHVlLHNldDoodGUsemUpPT57dGUuaW5wdXRWYWx1ZT16ZX19LG1ldGFkYXRhOnBlfSxULCQpLGcyKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGluZ0luZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+ImVkaXRpbmdJbmRleCJpbiB0ZSxnZXQ6dGU9PnRlLmVkaXRpbmdJbmRleCxzZXQ6KHRlLHplKT0+e3RlLmVkaXRpbmdJbmRleD16ZX19LG1ldGFkYXRhOnBlfSxSLFUpLGcyKHRoaXMsbnVsbCxyZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJlZGl0aW5nVmFsdWUiaW4gdGUsZ2V0OnRlPT50ZS5lZGl0aW5nVmFsdWUsc2V0Oih0ZSx6ZSk9Pnt0ZS5lZGl0aW5nVmFsdWU9emV9fSxtZXRhZGF0YTpwZX0saixtZSksZzIodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+ImRyYWdnZWRJbmRleCJpbiB0ZSxnZXQ6dGU9PnRlLmRyYWdnZWRJbmRleCxzZXQ6KHRlLHplKT0+e3RlLmRyYWdnZWRJbmRleD16ZX19LG1ldGFkYXRhOnBlfSxILGNlKSxnMih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp0ZT0+ImRyYWdPdmVySW5kZXgiaW4gdGUsZ2V0OnRlPT50ZS5kcmFnT3ZlckluZGV4LHNldDoodGUsemUpPT57dGUuZHJhZ092ZXJJbmRleD16ZX19LG1ldGFkYXRhOnBlfSxXLEQpLGcyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ1N0YXJ0WSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJkcmFnU3RhcnRZImluIHRlLGdldDp0ZT0+dGUuZHJhZ1N0YXJ0WSxzZXQ6KHRlLHplKT0+e3RlLmRyYWdTdGFydFk9emV9fSxtZXRhZGF0YTpwZX0sWixZKSxnMih0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnQ3VycmVudFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnRlPT4iZHJhZ0N1cnJlbnRZImluIHRlLGdldDp0ZT0+dGUuZHJhZ0N1cnJlbnRZLHNldDoodGUsemUpPT57dGUuZHJhZ0N1cnJlbnRZPXplfX0sbWV0YWRhdGE6cGV9LGdlLGJlKSxnMih0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dGU9PiJ0YXJnZXRJbmRleCJpbiB0ZSxnZXQ6dGU9PnRlLnRhcmdldEluZGV4LHNldDoodGUsemUpPT57dGUudGFyZ2V0SW5kZXg9emV9fSxtZXRhZGF0YTpwZX0sQixQKSxnMih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Iml0ZW1IZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnRlPT4iaXRlbUhlaWdodCJpbiB0ZSxnZXQ6dGU9PnRlLml0ZW1IZWlnaHQsc2V0Oih0ZSx6ZSk9Pnt0ZS5pdGVtSGVpZ2h0PXplfX0sbWV0YWRhdGE6cGV9LGZlLGRlKSxnMihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpwZX0sbnVsbCxhKSxfZT1pPWUudmFsdWUscGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6cGV9KX1zdGF0aWMgZGVtbz1SbXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPUl0KHRoaXMsbixbXSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKHBlKXt0aGlzLiNlPXBlfSN0PShJdCh0aGlzLG8pLEl0KHRoaXMsYywiQWRkIG5ldyBpdGVtLi4uIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihwZSl7dGhpcy4jdD1wZX0jYT0oSXQodGhpcyxwKSxJdCh0aGlzLGYsMCkpO2dldCBtYXhJdGVtcygpe3JldHVybiB0aGlzLiNhfXNldCBtYXhJdGVtcyhwZSl7dGhpcy4jYT1wZX0jaT0oSXQodGhpcyxnKSxJdCh0aGlzLHYsMCkpO2dldCBtaW5JdGVtcygpe3JldHVybiB0aGlzLiNpfXNldCBtaW5JdGVtcyhwZSl7dGhpcy4jaT1wZX0jcj0oSXQodGhpcyxtKSxJdCh0aGlzLE0sITEpKTtnZXQgYWxsb3dEdXBsaWNhdGVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFsbG93RHVwbGljYXRlcyhwZSl7dGhpcy4jcj1wZX0jcz0oSXQodGhpcyxTKSxJdCh0aGlzLF8sITEpKTtnZXQgc29ydGFibGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgc29ydGFibGUocGUpe3RoaXMuI3M9cGV9I249KEl0KHRoaXMsayksSXQodGhpcyxMLCExKSk7Z2V0IGNvbmZpcm1EZWxldGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29uZmlybURlbGV0ZShwZSl7dGhpcy4jbj1wZX0jbz0oSXQodGhpcyxBKSxJdCh0aGlzLEMsIiIpKTtnZXQgdmFsaWRhdGlvblRleHQoKXtyZXR1cm4gdGhpcy4jb31zZXQgdmFsaWRhdGlvblRleHQocGUpe3RoaXMuI289cGV9I2w9KEl0KHRoaXMseiksSXQodGhpcyxULCIiKSk7Z2V0IGlucHV0VmFsdWUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgaW5wdXRWYWx1ZShwZSl7dGhpcy4jbD1wZX0jYz0oSXQodGhpcywkKSxJdCh0aGlzLFIsLTEpKTtnZXQgZWRpdGluZ0luZGV4KCl7cmV0dXJuIHRoaXMuI2N9c2V0IGVkaXRpbmdJbmRleChwZSl7dGhpcy4jYz1wZX0jZD0oSXQodGhpcyxVKSxJdCh0aGlzLGosIiIpKTtnZXQgZWRpdGluZ1ZhbHVlKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGVkaXRpbmdWYWx1ZShwZSl7dGhpcy4jZD1wZX0jcD0oSXQodGhpcyxtZSksSXQodGhpcyxILC0xKSk7Z2V0IGRyYWdnZWRJbmRleCgpe3JldHVybiB0aGlzLiNwfXNldCBkcmFnZ2VkSW5kZXgocGUpe3RoaXMuI3A9cGV9I2g9KEl0KHRoaXMsY2UpLEl0KHRoaXMsVywtMSkpO2dldCBkcmFnT3ZlckluZGV4KCl7cmV0dXJuIHRoaXMuI2h9c2V0IGRyYWdPdmVySW5kZXgocGUpe3RoaXMuI2g9cGV9I3U9KEl0KHRoaXMsRCksSXQodGhpcyxaLDApKTtnZXQgZHJhZ1N0YXJ0WSgpe3JldHVybiB0aGlzLiN1fXNldCBkcmFnU3RhcnRZKHBlKXt0aGlzLiN1PXBlfSNmPShJdCh0aGlzLFkpLEl0KHRoaXMsZ2UsMCkpO2dldCBkcmFnQ3VycmVudFkoKXtyZXR1cm4gdGhpcy4jZn1zZXQgZHJhZ0N1cnJlbnRZKHBlKXt0aGlzLiNmPXBlfSNtPShJdCh0aGlzLGJlKSxJdCh0aGlzLEIsLTEpKTtnZXQgdGFyZ2V0SW5kZXgoKXtyZXR1cm4gdGhpcy4jbX1zZXQgdGFyZ2V0SW5kZXgocGUpe3RoaXMuI209cGV9I2c9KEl0KHRoaXMsUCksSXQodGhpcyxmZSwwKSk7Z2V0IGl0ZW1IZWlnaHQoKXtyZXR1cm4gdGhpcy4jZ31zZXQgaXRlbUhlaWdodChwZSl7dGhpcy4jZz1wZX1ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyPShJdCh0aGlzLGRlKSxudWxsKTtib3VuZEhhbmRsZUdsb2JhbERyYWdFbmQ9bnVsbDtvcmlnaW5hbEl0ZW1SZWN0cz1bXTtzdGF0aWMgc3R5bGVzPVtDZSwuLi5YZS5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxpc3QtY29udGFpbmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGlzdC1jb250YWluZXI6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLmxpc3QtY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmxpc3QtY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXMgewogICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBib3gtc2hhZG93IDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIFByZXZlbnQgYW5pbWF0aW9uIGZyb20gYWZmZWN0aW5nIHNjcm9sbCBib3VuZHMgKi8KICAgICAgfQoKICAgICAgLmxpc3QtaXRlbTpsYXN0LW9mLXR5cGUgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KCiAgICAgIC5saXN0LWl0ZW1zOm5vdCguaXMtZHJhZ2dpbmcpIC5saXN0LWl0ZW06aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5Ny41JSkiLCJoc2woMCAwJSA2LjklKSIpfTsKICAgICAgfQoKICAgICAgLyogRHJhZ2dpbmcgaXRlbSAtIGZvbGxvd3MgY3Vyc29yICovCiAgICAgIC5saXN0LWl0ZW0uZHJhZ2dpbmcgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDEyJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjE1KSIsInJnYmEoMCwgMCwgMCwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIHVwIHRvIG1ha2Ugc3BhY2UgKi8KICAgICAgLmxpc3QtaXRlbS5tb3ZlLXVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYygtMSAqIHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSkpOwogICAgICB9CgogICAgICAvKiBJdGVtcyB0aGF0IG5lZWQgdG8gbW92ZSBkb3duIHRvIG1ha2Ugc3BhY2UgKi8KICAgICAgLmxpc3QtaXRlbS5tb3ZlLWRvd24gewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1pdGVtLWhlaWdodCwgNDhweCkpOwogICAgICB9CgoKICAgICAgLmRyYWctaGFuZGxlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBtb3ZlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kcmFnLWhhbmRsZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLml0ZW0tY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAuaXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLml0ZW0tZWRpdC1pbnB1dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLml0ZW0tYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zYXZlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlIC8gMC4xKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSA1MC42JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLmNhbmNlbDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDUwLjYlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNjIuOCUgNTAuNiUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgfQoKICAgICAgLmFkZC1pdGVtLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk3LjUlKSIsImhzbCgwIDAlIDYuOSUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAuYWRkLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC5hZGQtYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBwYWRkaW5nOiAzMnB4IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uLW1lc3NhZ2UgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLmRlc2NyaXB0aW9uIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nICovCiAgICAgIC5saXN0LWl0ZW1zOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMzQuOSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlIHRyYW5zaXRpb25zIGR1cmluZyBkcm9wIHRvIHByZXZlbnQgZmxhc2ggKi8KICAgICAgLmxpc3QtaXRlbXMuZHJvcHBpbmcgLmxpc3QtaXRlbSB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmA6IiJ9CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibGlzdC1jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9Imxpc3QtaXRlbXMiPgogICAgICAgICAgICAke3RoaXMudmFsdWUubGVuZ3RoPjA/dGhpcy52YWx1ZS5tYXAoKHBlLHRlKT0+d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0ibGlzdC1pdGVtICR7dGhpcy5kcmFnZ2VkSW5kZXg9PT10ZT8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iJHt0aGlzLnNvcnRhYmxlJiYhdGhpcy5kaXNhYmxlZH0iCiAgICAgICAgICAgICAgICBAZHJhZ3N0YXJ0PSR7emU9PnRoaXMuaGFuZGxlRHJhZ1N0YXJ0KHplLHRlKX0KICAgICAgICAgICAgICAgIEBkcmFnZW5kPSR7dGhpcy5oYW5kbGVEcmFnRW5kfQogICAgICAgICAgICAgICAgQGRyYWdvdmVyPSR7emU9PnRoaXMuaGFuZGxlRHJhZ092ZXIoemUsdGUpfQogICAgICAgICAgICAgICAgQGRyb3A9JHt6ZT0+dGhpcy5oYW5kbGVEcm9wKHplLHRlKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAke3RoaXMuc29ydGFibGUmJiF0aGlzLmRpc2FibGVkP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyYWctaGFuZGxlIj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpncmlwVmVydGljYWwifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAke3RoaXMuZWRpdGluZ0luZGV4PT09dGU/d2AKICAgICAgICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iaXRlbS1lZGl0LWlucHV0IgogICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5lZGl0aW5nVmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHt6ZT0+dGhpcy5lZGl0aW5nVmFsdWU9emUudGFyZ2V0LnZhbHVlfQogICAgICAgICAgICAgICAgICAgICAgQGtleWRvd249JHt6ZT0+dGhpcy5oYW5kbGVFZGl0S2V5RG93bih6ZSx0ZSl9CiAgICAgICAgICAgICAgICAgICAgICBAYmx1cj0keygpPT50aGlzLnNhdmVFZGl0KHRlKX0KICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS10ZXh0IiBAZGJsY2xpY2s9JHsoKT0+IXRoaXMuZGlzYWJsZWQmJnRoaXMuc3RhcnRFZGl0KHRlKX0+CiAgICAgICAgICAgICAgICAgICAgICAke3BlfQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tYWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT10ZT93YAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gc2F2ZSIgQGNsaWNrPSR7KCk9PnRoaXMuc2F2ZUVkaXQodGUpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmNoZWNrIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBjYW5jZWwiIEBjbGljaz0keygpPT50aGlzLmNhbmNlbEVkaXQoKX0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgICAke3RoaXMuZGlzYWJsZWQ/IiI6d2AKICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24iIEBjbGljaz0keygpPT50aGlzLnN0YXJ0RWRpdCh0ZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwZW5jaWwifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBkZWxldGUiIEBjbGljaz0keygpPT50aGlzLnJlbW92ZUl0ZW0odGUpfT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dHJhc2gyIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApOndgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgTm8gaXRlbXMgYWRkZWQgeWV0CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgJHshdGhpcy5kaXNhYmxlZCYmKCF0aGlzLm1heEl0ZW1zfHx0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1heEl0ZW1zKT93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhZGQtaXRlbS1jb250YWluZXIiPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJhZGQtaW5wdXQiCiAgICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0aGlzLnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVJbnB1dH0KICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVBZGRLZXlEb3dufQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFkZEl0ZW19CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5pbnB1dFZhbHVlLnRyaW0oKX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpwbHVzIn0+PC9kZWVzLWljb24+IEFkZAogICAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiPiR7dGhpcy52YWxpZGF0aW9uVGV4dH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbj93YAogICAgICAgICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlSW5wdXQocGUpe3RoaXMuaW5wdXRWYWx1ZT1wZS50YXJnZXQudmFsdWV9aGFuZGxlQWRkS2V5RG93bihwZSl7cGUua2V5PT09IkVudGVyIiYmdGhpcy5pbnB1dFZhbHVlLnRyaW0oKSYmKHBlLnByZXZlbnREZWZhdWx0KCksdGhpcy5hZGRJdGVtKCkpfWhhbmRsZUVkaXRLZXlEb3duKHBlLHRlKXtwZS5rZXk9PT0iRW50ZXIiPyhwZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUVkaXQodGUpKTpwZS5rZXk9PT0iRXNjYXBlIiYmKHBlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jYW5jZWxFZGl0KCkpfWFkZEl0ZW0oKXtsZXQgcGU9dGhpcy5pbnB1dFZhbHVlLnRyaW0oKTtpZighcGUpcmV0dXJuO2lmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmdGhpcy52YWx1ZS5pbmNsdWRlcyhwZSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1pZih0aGlzLm1heEl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aD49dGhpcy5tYXhJdGVtcyl7dGhpcy52YWxpZGF0aW9uVGV4dD1gTWF4aW11bSAke3RoaXMubWF4SXRlbXN9IGl0ZW1zIGFsbG93ZWRgLHNldFRpbWVvdXQoKCk9PnRoaXMudmFsaWRhdGlvblRleHQ9IiIsM2UzKTtyZXR1cm59dGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxwZV0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMudmFsaWRhdGlvblRleHQ9IiI7bGV0IHRlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmFkZC1pbnB1dCIpO3RlJiYodGUudmFsdWU9IiIsdGUuZm9jdXMoKSksdGhpcy5lbWl0Q2hhbmdlKCl9c3RhcnRFZGl0KHBlKXt0aGlzLmVkaXRpbmdJbmRleD1wZSx0aGlzLmVkaXRpbmdWYWx1ZT10aGlzLnZhbHVlW3BlXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgdGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuaXRlbS1lZGl0LWlucHV0Iik7dGUmJih0ZS5mb2N1cygpLHRlLnNlbGVjdCgpKX0pfXNhdmVFZGl0KHBlKXtsZXQgdGU9dGhpcy5lZGl0aW5nVmFsdWUudHJpbSgpO2lmKCF0ZSl7dGhpcy5jYW5jZWxFZGl0KCk7cmV0dXJufWlmKCF0aGlzLmFsbG93RHVwbGljYXRlcyYmdGUhPT10aGlzLnZhbHVlW3BlXSYmdGhpcy52YWx1ZS5pbmNsdWRlcyh0ZSkpe3RoaXMudmFsaWRhdGlvblRleHQ9IlRoaXMgaXRlbSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgbGlzdCIsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn1sZXQgemU9Wy4uLnRoaXMudmFsdWVdO3plW3BlXT10ZSx0aGlzLnZhbHVlPXplLHRoaXMuZWRpdGluZ0luZGV4PS0xLHRoaXMuZWRpdGluZ1ZhbHVlPSIiLHRoaXMudmFsaWRhdGlvblRleHQ9IiIsdGhpcy5lbWl0Q2hhbmdlKCl9Y2FuY2VsRWRpdCgpe3RoaXMuZWRpdGluZ0luZGV4PS0xLHRoaXMuZWRpdGluZ1ZhbHVlPSIifWFzeW5jIHJlbW92ZUl0ZW0ocGUpe3RoaXMuY29uZmlybURlbGV0ZSYmIWF3YWl0IHRoaXMuc2hvd0NvbmZpcm1EaWFsb2coYERlbGV0ZSAiJHt0aGlzLnZhbHVlW3BlXX0iP2ApfHwodGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcigodGUsemUpPT56ZSE9PXBlKSx0aGlzLmVtaXRDaGFuZ2UoKSl9YXN5bmMgc2hvd0NvbmZpcm1EaWFsb2cocGUpe3JldHVybiBjb25maXJtKHBlKX1oYW5kbGVEcmFnU3RhcnQocGUsdGUpe2lmKCF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkKXJldHVybjt0aGlzLmRyYWdnZWRJbmRleD10ZSx0aGlzLnRhcmdldEluZGV4PXRlLHBlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJtb3ZlIixwZS5kYXRhVHJhbnNmZXIuc2V0RGF0YSgidGV4dC9wbGFpbiIsdGUudG9TdHJpbmcoKSk7bGV0IHplPW5ldyBJbWFnZTt6ZS5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFVRUJBQUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iLHBlLmRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UoemUsMCwwKSx0aGlzLmRyYWdTdGFydFk9cGUuY2xpZW50WSx0aGlzLmRyYWdDdXJyZW50WT1wZS5jbGllbnRZO2xldCBGZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIiksV2U9QXJyYXkuZnJvbShGZT8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpfHxbXSk7V2VbdGVdJiYodGhpcy5pdGVtSGVpZ2h0PVdlW3RlXS5vZmZzZXRIZWlnaHQpLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9V2UubWFwKHllPT55ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksRmU/LmNsYXNzTGlzdC5hZGQoImlzLWRyYWdnaW5nIiksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyPXRoaXMuaGFuZGxlR2xvYmFsRHJhZ092ZXIuYmluZCh0aGlzKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZD10aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQuYmluZCh0aGlzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCl9aGFuZGxlR2xvYmFsRHJhZ092ZXIocGUpe2lmKHBlLnByZXZlbnREZWZhdWx0KCksdGhpcy5kcmFnZ2VkSW5kZXg9PT0tMSlyZXR1cm47dGhpcy5kcmFnQ3VycmVudFk9cGUuY2xpZW50WTtsZXQgdGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpO2lmKCF0ZSlyZXR1cm47bGV0IHplPUFycmF5LmZyb20odGUucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpKSxGZT16ZVt0aGlzLmRyYWdnZWRJbmRleF07aWYoIUZlKXJldHVybjtsZXQgV2U9dGhpcy5kcmFnQ3VycmVudFktdGhpcy5kcmFnU3RhcnRZO0ZlLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke1dlfXB4KWA7bGV0IHllPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdGhpcy5kcmFnZ2VkSW5kZXhdO2lmKCF5ZSlyZXR1cm47bGV0IGVlPXllLnRvcCt5ZS5oZWlnaHQvMitXZSxhZT10aGlzLmRyYWdnZWRJbmRleDtmb3IobGV0IHZlPTA7dmU8emUubGVuZ3RoO3ZlKyspe2lmKHZlPT09dGhpcy5kcmFnZ2VkSW5kZXgpY29udGludWU7bGV0IFBlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbdmVdO2lmKCFQZSljb250aW51ZTtsZXQgVmU9UGUudG9wK1BlLmhlaWdodC8yO2lmKHplW3ZlXS5jbGFzc0xpc3QuY29udGFpbnMoIm1vdmUtdXAiKT9WZS09dGhpcy5pdGVtSGVpZ2h0OnplW3ZlXS5jbGFzc0xpc3QuY29udGFpbnMoIm1vdmUtZG93biIpJiYoVmUrPXRoaXMuaXRlbUhlaWdodCksZWU8VmUmJnZlPHRoaXMuZHJhZ2dlZEluZGV4KXthZT12ZTticmVha31lbHNlIGVlPlZlJiZ2ZT50aGlzLmRyYWdnZWRJbmRleCYmKGFlPXZlKX1hZSE9PXRoaXMudGFyZ2V0SW5kZXgmJih0aGlzLnRhcmdldEluZGV4PWFlLHRoaXMudXBkYXRlSXRlbVBvc2l0aW9ucyh6ZSkpfXVwZGF0ZUl0ZW1Qb3NpdGlvbnMocGUpe2xldCB0ZT10aGlzLmRyYWdnZWRJbmRleCx6ZT10aGlzLnRhcmdldEluZGV4LEZlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKTtGZSYmRmUuc3R5bGUuc2V0UHJvcGVydHkoIi0taXRlbS1oZWlnaHQiLGAke3RoaXMuaXRlbUhlaWdodH1weGApLHBlLmZvckVhY2goKFdlLHllKT0+e3llIT09dGUmJihXZS5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiksV2Uuc3R5bGUuc2V0UHJvcGVydHkoIi0taXRlbS1oZWlnaHQiLGAke3RoaXMuaXRlbUhlaWdodH1weGApLHRlPHplP3llPnRlJiZ5ZTw9emUmJldlLmNsYXNzTGlzdC5hZGQoIm1vdmUtdXAiKTp0ZT56ZSYmeWU+PXplJiZ5ZTx0ZSYmV2UuY2xhc3NMaXN0LmFkZCgibW92ZS1kb3duIikpfSl9aGFuZGxlR2xvYmFsRHJhZ0VuZCgpe3RoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXIpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj1udWxsKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZD1udWxsKTtsZXQgcGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpLHRlPXBlPy5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIiksemU9dGU/Llt0aGlzLmRyYWdnZWRJbmRleF07aWYodGhpcy5kcmFnZ2VkSW5kZXg9PT0tMXx8dGhpcy50YXJnZXRJbmRleD09PS0xfHx0aGlzLmRyYWdnZWRJbmRleD09PXRoaXMudGFyZ2V0SW5kZXgpe2lmKHplJiZ0aGlzLmRyYWdnZWRJbmRleCE9PS0xKXt6ZS5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gMC4xNXMgZWFzZSIsemUuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIjtsZXQgdmU9ITEsUGU9KCk9Pnt2ZXx8KHZlPSEwLHplLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLFBlKSx0aGlzLmNsZWFudXBEcmFnU3RhdGUocGUsdGUpKX07emUuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsUGUse29uY2U6ITB9KSxzZXRUaW1lb3V0KFBlLDIwMCl9ZWxzZSB0aGlzLmNsZWFudXBEcmFnU3RhdGUocGUsdGUpO3JldHVybn1sZXQgRmU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF0sV2U9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLnRhcmdldEluZGV4XTtpZighRmV8fCFXZXx8IXplKXt0aGlzLmNsZWFudXBEcmFnU3RhdGUocGUsdGUpO3JldHVybn1sZXQgeWU7dGhpcy50YXJnZXRJbmRleD50aGlzLmRyYWdnZWRJbmRleD95ZT1XZS5ib3R0b20tRmUuYm90dG9tOnllPVdlLnRvcC1GZS50b3AsemUuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLHplLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke3llfXB4KWA7bGV0IGVlPSExLGFlPSgpPT57aWYoZWUpcmV0dXJuO2VlPSEwLHplLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLGFlKSxwZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxwZT8ub2Zmc2V0SGVpZ2h0LHRlPy5mb3JFYWNoKFZlPT57VmUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksVmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLFZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KTtsZXQgdmU9Wy4uLnRoaXMudmFsdWVdLFtQZV09dmUuc3BsaWNlKHRoaXMuZHJhZ2dlZEluZGV4LDEpO3ZlLnNwbGljZSh0aGlzLnRhcmdldEluZGV4LDAsUGUpLHRoaXMudmFsdWU9dmUsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy5kcmFnZ2VkSW5kZXg9LTEsdGhpcy5kcmFnT3ZlckluZGV4PS0xLHRoaXMudGFyZ2V0SW5kZXg9LTEsdGhpcy5kcmFnU3RhcnRZPTAsdGhpcy5kcmFnQ3VycmVudFk9MCx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPVtdLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBWZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKTtWZT8uZm9yRWFjaCh4dD0+e3h0LnN0eWxlLnRyYW5zaXRpb249Im5vbmUifSksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpPy5vZmZzZXRIZWlnaHQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57VmU/LmZvckVhY2goeHQ9Pnt4dC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNpdGlvbiIpfSkscGU/LmNsYXNzTGlzdC5yZW1vdmUoImRyb3BwaW5nIiwiaXMtZHJhZ2dpbmciKX0pfSl9O3plLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLGFlLHtvbmNlOiEwfSksc2V0VGltZW91dChhZSwyMDApfWNsZWFudXBEcmFnU3RhdGUocGUsdGUpe3BlPy5jbGFzc0xpc3QuYWRkKCJkcm9wcGluZyIpLHBlPy5vZmZzZXRIZWlnaHQsdGU/LmZvckVhY2goemU9Pnt6ZS5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiwiZHJhZ2dpbmciKSx6ZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIiksemUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLHRoaXMuZHJhZ2dlZEluZGV4PS0xLHRoaXMuZHJhZ092ZXJJbmRleD0tMSx0aGlzLnRhcmdldEluZGV4PS0xLHRoaXMuZHJhZ1N0YXJ0WT0wLHRoaXMuZHJhZ0N1cnJlbnRZPTAsdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1bXSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PntsZXQgemU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIik7emU/LmZvckVhY2goRmU9PntGZS5zdHlsZS50cmFuc2l0aW9uPSJub25lIn0pLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKT8ub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3plPy5mb3JFYWNoKEZlPT57RmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24iKX0pLHBlPy5jbGFzc0xpc3QucmVtb3ZlKCJkcm9wcGluZyIsImlzLWRyYWdnaW5nIil9KX0pfWhhbmRsZURyYWdFbmQoKXt0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQoKX1oYW5kbGVEcmFnT3ZlcihwZSx0ZSl7IXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWR8fChwZS5wcmV2ZW50RGVmYXVsdCgpLHBlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIil9aGFuZGxlRHJhZ0xlYXZlKCl7fWhhbmRsZURyb3AocGUsdGUpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHxwZS5wcmV2ZW50RGVmYXVsdCgpfWVtaXRDaGFuZ2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjaGFuZ2UiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShwZSl7dGhpcy52YWx1ZT1wZXx8W119YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmKCF0aGlzLnZhbHVlfHx0aGlzLnZhbHVlLmxlbmd0aD09PTApPyh0aGlzLnZhbGlkYXRpb25UZXh0PSJBdCBsZWFzdCBvbmUgaXRlbSBpcyByZXF1aXJlZCIsITEpOnRoaXMubWluSXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWluSXRlbXM/KHRoaXMudmFsaWRhdGlvblRleHQ9YEF0IGxlYXN0ICR7dGhpcy5taW5JdGVtc30gaXRlbXMgcmVxdWlyZWRgLCExKToodGhpcy52YWxpZGF0aW9uVGV4dD0iIiwhMCl9c3RhdGlje0l0KGksYSl9fTtyZXR1cm4gX2U9aX0pKCl9KTt2YXIgVm10PWIoKCk9PntxbXQoKX0pO3ZhciBqbXQ9YigoKT0+e0dxKCl9KTt2YXIgVW10PWIoKCk9PntZcSgpfSk7dmFyIFdtdD1iKCgpPT57UnEoKX0pO3ZhciBHbXQ9YigoKT0+e0l4KCl9KTt2YXIgWW10LFptdD1iKCgpPT57dWUoKTt5MSgpO3lWKCk7bTIoKTtZbXQ9KCk9PndgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7UWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmM2Y0ZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzM3NDE1MTsKICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzJjMmMyYzsKICAgICAgICAgICAgY29sb3I6ICNlNGU0ZTc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgUmljaCBUZXh0IEVkaXRvciJ9IC5zdWJ0aXRsZT0keyJBIGZ1bGwtZmVhdHVyZWQgcmljaCB0ZXh0IGVkaXRvciB3aXRoIGZvcm1hdHRpbmcgdG9vbGJhciJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IkFydGljbGUgQ29udGVudCJ9IAogICAgICAgICAgLnZhbHVlPSR7JzxoMT5XZWxjb21lIHRvIHRoZSBSaWNoIFRleHQgRWRpdG9yITwvaDE+PHA+VGhpcyBpcyBhIGZlYXR1cmUtcmljaCBlZGl0b3IgYnVpbHQgd2l0aCBUaXBUYXAuIFlvdSBjYW46PC9wPjx1bD48bGk+PHN0cm9uZz5Gb3JtYXQgdGV4dDwvc3Ryb25nPiB3aXRoIDxlbT52YXJpb3VzPC9lbT4gPHU+c3R5bGVzPC91PjwvbGk+PGxpPkNyZWF0ZSBkaWZmZXJlbnQgaGVhZGluZyBsZXZlbHM8L2xpPjxsaT5BZGQgPGEgaHJlZj0iaHR0cHM6Ly9leGFtcGxlLmNvbSI+bGlua3M8L2E+IHRvIGV4dGVybmFsIHJlc291cmNlczwvbGk+PGxpPldyaXRlIDxjb2RlPmlubGluZSBjb2RlPC9jb2RlPiBvciBjb2RlIGJsb2NrczwvbGk+PC91bD48YmxvY2txdW90ZT48cD5Vc2UgdGhlIHRvb2xiYXIgYWJvdmUgdG8gZXhwbG9yZSBhbGwgdGhlIGZvcm1hdHRpbmcgb3B0aW9ucyBhdmFpbGFibGUhPC9wPjwvYmxvY2txdW90ZT48cD5TdGFydCB0eXBpbmcgdG8gc2VlIHRoZSBtYWdpYyBoYXBwZW4uLi48L3A+J30KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJVc2UgdGhlIHRvb2xiYXIgdG8gZm9ybWF0IHlvdXIgY29udGVudCB3aXRoIGhlYWRpbmdzLCBsaXN0cywgbGlua3MsIGFuZCBtb3JlIn0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFdpdGggUGxhY2Vob2xkZXIifSAuc3VidGl0bGU9JHsiRW1wdHkgZWRpdG9yIHdpdGggcGxhY2Vob2xkZXIgdGV4dCJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IkJsb2cgUG9zdCJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlN0YXJ0IHdyaXRpbmcgeW91ciBibG9nIHBvc3QgaGVyZS4uLiJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBEaWZmZXJlbnQgSGVpZ2h0cyJ9IC5zdWJ0aXRsZT0keyJFZGl0b3JzIHdpdGggZGlmZmVyZW50IG1pbmltdW0gaGVpZ2h0cyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgICAgLmxhYmVsPSR7IlNob3J0IE5vdGUifSAKICAgICAgICAgICAgLm1pbkhlaWdodD0kezE1MH0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlF1aWNrIG5vdGUuLi4ifQogICAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJFeHRlbmRlZCBDb250ZW50In0gCiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHszMDB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJXcml0ZSB5b3VyIGV4dGVuZGVkIGNvbnRlbnQgaGVyZS4uLiJ9CiAgICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gQ29kZSBFeGFtcGxlcyJ9IC5zdWJ0aXRsZT0keyJFZGl0b3IgcHJlLWZpbGxlZCB3aXRoIGNvZGUgZXhhbXBsZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJUZWNobmljYWwgRG9jdW1lbnRhdGlvbiJ9IAogICAgICAgICAgLnZhbHVlPSR7JzxoMj5JbnN0YWxsYXRpb24gR3VpZGU8L2gyPjxwPlRvIGluc3RhbGwgdGhlIHBhY2thZ2UsIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6PC9wPjxwcmU+PGNvZGU+bnBtIGluc3RhbGwgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nPC9jb2RlPjwvcHJlPjxwPlRoZW4gaW1wb3J0IHRoZSBjb21wb25lbnQgaW4geW91ciBUeXBlU2NyaXB0IGZpbGU6PC9wPjxwcmU+PGNvZGU+aW1wb3J0IHsgRGVlc0lucHV0UmljaHRleHQgfSBmcm9tICJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciOzwvY29kZT48L3ByZT48cD5Zb3UgY2FuIG5vdyB1c2UgdGhlIDxjb2RlPiZsdDtkZWVzLWlucHV0LXJpY2h0ZXh0Jmd0OzwvY29kZT4gZWxlbWVudCBpbiB5b3VyIHRlbXBsYXRlcy48L3A+J30KICAgICAgICAgIC5taW5IZWlnaHQ9JHsyNTB9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBEaXNhYmxlZCBTdGF0ZSJ9IC5zdWJ0aXRsZT0keyJSZWFkLW9ubHkgcmljaCB0ZXh0IGNvbnRlbnQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJQdWJsaXNoZWQgQXJ0aWNsZSAoUmVhZCBPbmx5KSJ9IAogICAgICAgICAgLnZhbHVlPSR7JzxoMj5UaGUgRnV0dXJlIG9mIFdlYiBDb21wb25lbnRzPC9oMj48cD5XZWIgQ29tcG9uZW50cyBoYXZlIHJldm9sdXRpb25pemVkIGhvdyB3ZSBidWlsZCBtb2Rlcm4gd2ViIGFwcGxpY2F0aW9ucy4uLjwvcD48YmxvY2txdW90ZT48cD4iVGhlIGZ1dHVyZSBvZiB3ZWIgZGV2ZWxvcG1lbnQgbGllcyBpbiByZXVzYWJsZSwgZW5jYXBzdWxhdGVkIGNvbXBvbmVudHMuIjwvcD48L2Jsb2NrcXVvdGU+J30KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJUeXBlIGluIHRoZSBlZGl0b3IgYmVsb3cgYW5kIHNlZSB0aGUgSFRNTCBvdXRwdXQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1lZGl0b3IiCiAgICAgICAgICAubGFiZWw9JHsiVHJ5IGl0IHlvdXJzZWxmIn0gCiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSBzb21ldGhpbmcgaGVyZS4uLiJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgICAgQGNoYW5nZT0ke3Q9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0LXByZXZpZXciKTtlJiYoZS50ZXh0Q29udGVudD10LmRldGFpbC52YWx1ZSl9fQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJvdXRwdXQtcHJldmlldyI+CiAgICAgICAgICA8ZW0+SFRNTCBvdXRwdXQgd2lsbCBhcHBlYXIgaGVyZS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBYbXQsS210PWIoKCk9Pnt1ZSgpO0MxKCk7WG10PVsuLi5YZS5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlciwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBtaW4taGVpZ2h0OiAke2guYmRUaGVtZSgiMjAwcHgiLCIyMDBweCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRhaW5lcjpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRhaW5lci5mb2N1c2VkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLXRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1taW4taGVpZ2h0LCAyMDBweCk7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHAgewogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luOiAxZW0gMCAwLjVlbSAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHVsLAogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIG9sIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtOwogICAgICAgIG1hcmdpbjogMC41ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBsaSB7CiAgICAgICAgbWFyZ2luOiAwLjI1ZW0gMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBibG9ja3F1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgbWFyZ2luOiAxZW0gMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDFlbTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgcGFkZGluZzogMC4yZW0gMC40ZW07CiAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdGaXJhIENvZGUnLCAnU0YgTW9ubycsIE1vbmFjbywgJ0Nhc2NhZGlhIENvZGUnLCAnUm9ib3RvIE1vbm8nLCBDb25zb2xhcywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHByZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMWVtOwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYTpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNDEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDY5LjglKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1mb290ZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC53b3JkLWNvdW50IHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LnNob3cgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAubGluay1pbnB1dCBpbnB1dCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0IGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyBidXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyBidXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kZXNjcmlwdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuZWRpdG9yLWNvbnRhaW5lciB7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50b29sYmFyLWJ1dHRvbiwKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmVkaXRvci1jb250ZW50IHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF19KTt2YXIgUW10LEptdD1iKCgpPT57dWUoKTtRbXQ9dD0+d2AKICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAgICR7dC5sYWJlbD93YDxsYWJlbCBjbGFzcz0ibGFiZWwiPiR7dC5sYWJlbH08L2xhYmVsPmA6IiJ9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItY29udGFpbmVyICR7dC5lZGl0b3I/LmlzRm9jdXNlZD8iZm9jdXNlZCI6IiJ9IiBzdHlsZT0iLS1taW4taGVpZ2h0OiAke3QubWluSGVpZ2h0fXB4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXRvb2xiYXIiPgogICAgICAgICAgICAgICR7dC5yZW5kZXJUb29sYmFyKCl9CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluay1pbnB1dCAke3Quc2hvd0xpbmtJbnB1dD8ic2hvdyI6IiJ9Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ1cmwiIHBsYWNlaG9sZGVyPSJFbnRlciBVUkwuLi4iIEBrZXlkb3duPSR7dC5oYW5kbGVMaW5rSW5wdXRLZXlkb3dufSAvPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGluay1pbnB1dC1idXR0b25zIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icHJpbWFyeSIgQGNsaWNrPSR7dC5zYXZlTGlua30+U2F2ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0ke3QucmVtb3ZlTGlua30+UmVtb3ZlPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7dC5oaWRlTGlua0lucHV0fT5DYW5jZWw8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWNvbnRlbnQiPjwvZGl2PgogICAgICAgICAgICAke3Quc2hvd1dvcmRDb3VudD93YAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItZm9vdGVyIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0id29yZC1jb3VudCI+JHt0LndvcmRDb3VudH0gd29yZCR7dC53b3JkQ291bnQhPT0xPyJzIjoiIn08L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0LmRlc2NyaXB0aW9uP3dgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPiR7dC5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICBgfSk7dmFyIG40LEdhLGVndCx5Vj1iKCgpPT57QzEoKTtabXQoKTtLbXQoKTtKbXQoKTtEdCgpO3VlKCk7dW8oKTtuND1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEdhPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxlZ3Q9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWlucHV0LXJpY2h0ZXh0IildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W107dmFyIE49Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBMPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpCb29sZWFufSldLHk9W0koe3R5cGU6TnVtYmVyfSldLHg9W0ooKV0sRj1bSigpXSxuNCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4idmFsdWUiaW4gQSxnZXQ6QT0+QS52YWx1ZSxzZXQ6KEEscSk9PntBLnZhbHVlPXF9fSxtZXRhZGF0YTpMfSxuLG8pLG40KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJwbGFjZWhvbGRlciJpbiBBLGdldDpBPT5BLnBsYWNlaG9sZGVyLHNldDooQSxxKT0+e0EucGxhY2Vob2xkZXI9cX19LG1ldGFkYXRhOkx9LGMscCksbjQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93V29yZENvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ic2hvd1dvcmRDb3VudCJpbiBBLGdldDpBPT5BLnNob3dXb3JkQ291bnQsc2V0OihBLHEpPT57QS5zaG93V29yZENvdW50PXF9fSxtZXRhZGF0YTpMfSxmLGcpLG40KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ibWluSGVpZ2h0ImluIEEsZ2V0OkE9PkEubWluSGVpZ2h0LHNldDooQSxxKT0+e0EubWluSGVpZ2h0PXF9fSxtZXRhZGF0YTpMfSx2LG0pLG40KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0xpbmtJbnB1dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InNob3dMaW5rSW5wdXQiaW4gQSxnZXQ6QT0+QS5zaG93TGlua0lucHV0LHNldDooQSxxKT0+e0Euc2hvd0xpbmtJbnB1dD1xfX0sbWV0YWRhdGE6TH0sTSxTKSxuNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+IndvcmRDb3VudCJpbiBBLGdldDpBPT5BLndvcmRDb3VudCxzZXQ6KEEscSk9PntBLndvcmRDb3VudD1xfX0sbWV0YWRhdGE6TH0sXyxrKSxuNChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpMfSxudWxsLGEpLE49aT1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPVltdDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9R2EodGhpcyxuLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoTCl7dGhpcy4jZT1MfSN0PShHYSh0aGlzLG8pLEdhKHRoaXMsYywiIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiN0fXNldCBwbGFjZWhvbGRlcihMKXt0aGlzLiN0PUx9I2E9KEdhKHRoaXMscCksR2EodGhpcyxmLCEwKSk7Z2V0IHNob3dXb3JkQ291bnQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd1dvcmRDb3VudChMKXt0aGlzLiNhPUx9I2k9KEdhKHRoaXMsZyksR2EodGhpcyx2LDIwMCkpO2dldCBtaW5IZWlnaHQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWluSGVpZ2h0KEwpe3RoaXMuI2k9TH0jcj0oR2EodGhpcyxtKSxHYSh0aGlzLE0sITEpKTtnZXQgc2hvd0xpbmtJbnB1dCgpe3JldHVybiB0aGlzLiNyfXNldCBzaG93TGlua0lucHV0KEwpe3RoaXMuI3I9TH0jcz0oR2EodGhpcyxTKSxHYSh0aGlzLF8sMCkpO2dldCB3b3JkQ291bnQoKXtyZXR1cm4gdGhpcy4jc31zZXQgd29yZENvdW50KEwpe3RoaXMuI3M9TH1lZGl0b3JFbGVtZW50PUdhKHRoaXMsayk7bGlua0lucHV0RWxlbWVudDt0aXB0YXBCdW5kbGU9bnVsbDtlZGl0b3I7c3RhdGljIHN0eWxlcz1YbXQ7cmVuZGVyKCl7cmV0dXJuIFFtdCh0aGlzKX1yZW5kZXJUb29sYmFyKCl7bGV0IEw9dGhpcy5nZXRUb29sYmFyQnV0dG9ucygpO3JldHVybiB3YAogICAgICAke0wubWFwKEE9PkEuaXNEaXZpZGVyP3dgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj5gOndgCiAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiAke0EuaXNBY3RpdmU/LigpPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSR7QS5hY3Rpb259CiAgICAgICAgICAgIHRpdGxlPSR7QS50aXRsZX0KICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZHx8IXRoaXMuZWRpdG9yfQogICAgICAgICAgPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7QS5pY29ufT48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIGApfQogICAgYH1nZXRUb29sYmFyQnV0dG9ucygpe3JldHVybiB0aGlzLmVkaXRvcj9be25hbWU6ImJvbGQiLGljb246Imx1Y2lkZTpib2xkIix0aXRsZToiQm9sZCAoQ3RybCtCKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQm9sZCgpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYm9sZCIpfSx7bmFtZToiaXRhbGljIixpY29uOiJsdWNpZGU6aXRhbGljIix0aXRsZToiSXRhbGljIChDdHJsK0kpIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVJdGFsaWMoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIml0YWxpYyIpfSx7bmFtZToidW5kZXJsaW5lIixpY29uOiJsdWNpZGU6dW5kZXJsaW5lIix0aXRsZToiVW5kZXJsaW5lIChDdHJsK1UpIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVVbmRlcmxpbmUoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoInVuZGVybGluZSIpfSx7bmFtZToic3RyaWtlIixpY29uOiJsdWNpZGU6c3RyaWtldGhyb3VnaCIsdGl0bGU6IlN0cmlrZXRocm91Z2giLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZVN0cmlrZSgpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgic3RyaWtlIil9LHtuYW1lOiJkaXZpZGVyMSIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToiaDEiLGljb246Imx1Y2lkZTpoZWFkaW5nMSIsdGl0bGU6IkhlYWRpbmcgMSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6MX0pLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjF9KX0se25hbWU6ImgyIixpY29uOiJsdWNpZGU6aGVhZGluZzIiLHRpdGxlOiJIZWFkaW5nIDIiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUhlYWRpbmcoe2xldmVsOjJ9KS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImhlYWRpbmciLHtsZXZlbDoyfSl9LHtuYW1lOiJoMyIsaWNvbjoibHVjaWRlOmhlYWRpbmczIix0aXRsZToiSGVhZGluZyAzIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDozfSkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6M30pfSx7bmFtZToiZGl2aWRlcjIiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImJ1bGxldExpc3QiLGljb246Imx1Y2lkZTpsaXN0Iix0aXRsZToiQnVsbGV0IExpc3QiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJ1bGxldExpc3QoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImJ1bGxldExpc3QiKX0se25hbWU6Im9yZGVyZWRMaXN0IixpY29uOiJsdWNpZGU6bGlzdE9yZGVyZWQiLHRpdGxlOiJOdW1iZXJlZCBMaXN0IixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVPcmRlcmVkTGlzdCgpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgib3JkZXJlZExpc3QiKX0se25hbWU6ImJsb2NrcXVvdGUiLGljb246Imx1Y2lkZTpxdW90ZSIsdGl0bGU6IlF1b3RlIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCbG9ja3F1b3RlKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJibG9ja3F1b3RlIil9LHtuYW1lOiJjb2RlIixpY29uOiJsdWNpZGU6Y29kZSIsdGl0bGU6IkNvZGUiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGUoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImNvZGUiKX0se25hbWU6ImNvZGVCbG9jayIsaWNvbjoibHVjaWRlOmZpbGVDb2RlIix0aXRsZToiQ29kZSBCbG9jayIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQ29kZUJsb2NrKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJjb2RlQmxvY2siKX0se25hbWU6ImRpdmlkZXIzIix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJsaW5rIixpY29uOiJsdWNpZGU6bGluayIsdGl0bGU6IkFkZCBMaW5rIixhY3Rpb246KCk9PnRoaXMudG9nZ2xlTGluaygpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgibGluayIpfSx7bmFtZToiYWxpZ25MZWZ0IixpY29uOiJsdWNpZGU6YWxpZ25MZWZ0Iix0aXRsZToiQWxpZ24gTGVmdCIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJsZWZ0IikucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246ImxlZnQifSl9LHtuYW1lOiJhbGlnbkNlbnRlciIsaWNvbjoibHVjaWRlOmFsaWduQ2VudGVyIix0aXRsZToiQWxpZ24gQ2VudGVyIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oImNlbnRlciIpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJjZW50ZXIifSl9LHtuYW1lOiJhbGlnblJpZ2h0IixpY29uOiJsdWNpZGU6YWxpZ25SaWdodCIsdGl0bGU6IkFsaWduIFJpZ2h0IixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRUZXh0QWxpZ24oInJpZ2h0IikucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKHt0ZXh0QWxpZ246InJpZ2h0In0pfSx7bmFtZToiZGl2aWRlcjQiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6InVuZG8iLGljb246Imx1Y2lkZTp1bmRvIix0aXRsZToiVW5kbyAoQ3RybCtaKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudW5kbygpLnJ1bigpfSx7bmFtZToicmVkbyIsaWNvbjoibHVjaWRlOnJlZG8iLHRpdGxlOiJSZWRvIChDdHJsK1kpIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5yZWRvKCkucnVuKCl9XTpbXX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMudGlwdGFwQnVuZGxlPWF3YWl0IEwyLmdldEluc3RhbmNlKCkubG9hZFRpcHRhcCgpLHRoaXMuZWRpdG9yRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmVkaXRvci1jb250ZW50IiksdGhpcy5saW5rSW5wdXRFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubGluay1pbnB1dCBpbnB1dCIpLHRoaXMuaW5pdGlhbGl6ZUVkaXRvcigpfWluaXRpYWxpemVFZGl0b3IoKXtpZih0aGlzLmRpc2FibGVkfHwhdGhpcy50aXB0YXBCdW5kbGUpcmV0dXJuO2xldHtFZGl0b3I6TCxTdGFydGVyS2l0OkEsVW5kZXJsaW5lOnEsVGV4dEFsaWduOkMsTGluazp6LFR5cG9ncmFwaHk6RX09dGhpcy50aXB0YXBCdW5kbGU7dGhpcy5lZGl0b3I9bmV3IEwoe2VsZW1lbnQ6dGhpcy5lZGl0b3JFbGVtZW50LGV4dGVuc2lvbnM6W0EuY29uZmlndXJlKHtoZWFkaW5nOntsZXZlbHM6WzEsMiwzXX19KSxxLmNvbmZpZ3VyZSh7fSksQy5jb25maWd1cmUoe3R5cGVzOlsiaGVhZGluZyIsInBhcmFncmFwaCJdfSksei5jb25maWd1cmUoe29wZW5PbkNsaWNrOiExLEhUTUxBdHRyaWJ1dGVzOntjbGFzczoiZWRpdG9yLWxpbmsifX0pLEUuY29uZmlndXJlKHt9KV0sY29udGVudDp0aGlzLnZhbHVlfHwodGhpcy5wbGFjZWhvbGRlcj9gPHA+JHt0aGlzLnBsYWNlaG9sZGVyfTwvcD5gOiIiKSxvblVwZGF0ZTooe2VkaXRvcjpUfSk9Pnt0aGlzLnZhbHVlPVQuZ2V0SFRNTCgpLHRoaXMudXBkYXRlV29yZENvdW50KCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaW5wdXQiLHtkZXRhaWw6e3ZhbHVlOnRoaXMudmFsdWV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSxvblNlbGVjdGlvblVwZGF0ZTooKT0+e3RoaXMucmVxdWVzdFVwZGF0ZSgpfSxvbkZvY3VzOigpPT57dGhpcy5yZXF1ZXN0VXBkYXRlKCl9LG9uQmx1cjooKT0+e3RoaXMucmVxdWVzdFVwZGF0ZSgpfX0pLHRoaXMudXBkYXRlV29yZENvdW50KCl9dXBkYXRlV29yZENvdW50KCl7aWYoIXRoaXMuZWRpdG9yKXJldHVybjtsZXQgTD10aGlzLmVkaXRvci5nZXRUZXh0KCk7dGhpcy53b3JkQ291bnQ9TC50cmltKCk/TC50cmltKCkuc3BsaXQoL1xzKy8pLmxlbmd0aDowfXRvZ2dsZUxpbmsoKXtpZih0aGlzLmVkaXRvcilpZih0aGlzLmVkaXRvci5pc0FjdGl2ZSgibGluayIpKXtsZXQgTD10aGlzLmVkaXRvci5nZXRBdHRyaWJ1dGVzKCJsaW5rIikuaHJlZjt0aGlzLnNob3dMaW5rSW5wdXQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5saW5rSW5wdXRFbGVtZW50JiYodGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlPUx8fCIiLHRoaXMubGlua0lucHV0RWxlbWVudC5mb2N1cygpLHRoaXMubGlua0lucHV0RWxlbWVudC5zZWxlY3QoKSl9KX1lbHNlIHRoaXMuc2hvd0xpbmtJbnB1dD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmxpbmtJbnB1dEVsZW1lbnQmJih0aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU9IiIsdGhpcy5saW5rSW5wdXRFbGVtZW50LmZvY3VzKCkpfSl9c2F2ZUxpbmsoKXtpZighdGhpcy5lZGl0b3J8fCF0aGlzLmxpbmtJbnB1dEVsZW1lbnQpcmV0dXJuO2xldCBMPXRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZTtMJiZ0aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0TGluayh7aHJlZjpMfSkucnVuKCksdGhpcy5oaWRlTGlua0lucHV0KCl9cmVtb3ZlTGluaygpe3RoaXMuZWRpdG9yJiYodGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnVuc2V0TGluaygpLnJ1bigpLHRoaXMuaGlkZUxpbmtJbnB1dCgpKX1oaWRlTGlua0lucHV0KCl7dGhpcy5zaG93TGlua0lucHV0PSExLHRoaXMuZWRpdG9yPy5jb21tYW5kcy5mb2N1cygpfWhhbmRsZUxpbmtJbnB1dEtleWRvd24oTCl7TC5rZXk9PT0iRW50ZXIiPyhMLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlTGluaygpKTpMLmtleT09PSJFc2NhcGUiJiYoTC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlkZUxpbmtJbnB1dCgpKX1zZXRWYWx1ZShMKXt0aGlzLnZhbHVlPUwsdGhpcy5lZGl0b3ImJkwhPT10aGlzLmVkaXRvci5nZXRIVE1MKCkmJnRoaXMuZWRpdG9yLmNvbW1hbmRzLnNldENvbnRlbnQoTCl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1jbGVhcigpe3RoaXMuc2V0VmFsdWUoIiIpfWZvY3VzKCl7dGhpcy5lZGl0b3I/LmNvbW1hbmRzLmZvY3VzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuZWRpdG9yJiZ0aGlzLmVkaXRvci5kZXN0cm95KCl9c3RhdGlje0dhKGksYSl9fTtyZXR1cm4gTj1pfSkoKX0pO3ZhciB0Z3Q9YigoKT0+e3lWKCl9KTt2YXIgYWd0PWIoKCk9Pnt9KTt2YXIgaWd0PWIoKCk9PnthZ3QoKX0pO3ZhciByZ3Qsc2d0LG5ndD1iKCgpPT57dWUoKTt5MSgpO20yKCk7c2d0PSgpPT53KHJndHx8KHJndD14NChbYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICBgLGAKICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgLm1heFRhZ3M9YCxgCiAgICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5yZXF1aXJlZD1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAudmFsdWU9YCxgCiAgICAgICAgICAuZGlzYWJsZWQ9YCxgCiAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5yZXF1aXJlZD1gLGAKICAgICAgICAgICAgLmtleT1gLGAKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgICAucmVxdWlyZWQ9YCxgCiAgICAgICAgICAgICAgLmtleT1gLGAKICAgICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAgIC5rZXk9YCxgCiAgICAgICAgICAgICAgLm1heFRhZ3M9YCxgCiAgICAgICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgIC5pbnB1dFR5cGU9YCxgCiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgLmtleT1gLGAKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9YCxgPjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS10YWdzIgogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnN1Z2dlc3Rpb25zPWAsYAogICAgICAgICAgQGNoYW5nZT1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0idGFnLXByZXZpZXciIGlkPSJ0YWdzLXByZXZpZXciPgogICAgICAgICAgPGVtIHN0eWxlPSJjb2xvcjogIzk5OTsiPk5vIHRhZ3MgYWRkZWQgeWV0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtcHJldmlldyIgaWQ9InRhZ3MtanNvbiI+CiAgICAgICAgICA8ZW0+SlNPTiBvdXRwdXQgd2lsbCBhcHBlYXIgaGVyZS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgIC8vIFVwZGF0ZSBKU09OIHByZXZpZXcKICAgICAgICAgIGNvbnN0IHRhZ3NJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNpbnRlcmFjdGl2ZS10YWdzJyk7CiAgICAgICAgICB0YWdzSW5wdXQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IGpzb25QcmV2aWV3ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RhZ3MtanNvbicpOwogICAgICAgICAgICBpZiAoanNvblByZXZpZXcpIHsKICAgICAgICAgICAgICBqc29uUHJldmlldy50ZXh0Q29udGVudCA9IEpTT04uc3RyaW5naWZ5KGUuZGV0YWlsLnZhbHVlLCBudWxsLCAyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgPFwvc2NyaXB0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmBdKSksUWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmM2Y0ZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzM3NDE1MTsKICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzJjMmMyYzsKICAgICAgICAgICAgY29sb3I6ICNlNGU0ZTc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50YWctcHJldmlldyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2Y5ZmFmYjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAudGFnLXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWYyOTM3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGFnLXByZXZpZXctaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlMGU3ZmY7CiAgICAgICAgICBjb2xvcjogIzQzMzhjYTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC50YWctcHJldmlldy1pdGVtIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzMxMmU4MTsKICAgICAgICAgICAgY29sb3I6ICNjN2QyZmU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgLCIxLiBCYXNpYyBUYWdzIElucHV0IiwiU2ltcGxlIHRhZyBpbnB1dCB3aXRoIGNvbW1vbiBwcm9ncmFtbWluZyBsYW5ndWFnZXMiLCJQcm9ncmFtbWluZyBMYW5ndWFnZXMiLCJBZGQgYSBsYW5ndWFnZS4uLiIsWyJKYXZhU2NyaXB0IiwiVHlwZVNjcmlwdCIsIlB5dGhvbiIsIkdvIl0sIlByZXNzIEVudGVyIG9yIGNvbW1hIHRvIGFkZCB0YWdzIiwiMi4gVGFncyB3aXRoIFN1Z2dlc3Rpb25zIiwiQXV0by1jb21wbGV0ZSBzdWdnZXN0aW9ucyBmb3IgZmFzdGVyIGlucHV0IiwiVGVjaCBTdGFjayIsIlR5cGUgdG8gc2VlIHN1Z2dlc3Rpb25zLi4uIixbIlJlYWN0IiwiVnVlIiwiQW5ndWxhciIsIlN2ZWx0ZSIsIkxpdCIsIk5leHQuanMiLCJOdXh0IiwiU3ZlbHRlS2l0IiwiTm9kZS5qcyIsIkRlbm8iLCJCdW4iLCJFeHByZXNzIiwiRmFzdGlmeSIsIk5lc3QuanMiLCJLb2EiLCJNb25nb0RCIiwiUG9zdGdyZVNRTCIsIlJlZGlzIiwiTXlTUUwiLCJTUUxpdGUiLCJDYXNzYW5kcmEiLCJEb2NrZXIiLCJLdWJlcm5ldGVzIiwiQVdTIiwiQXp1cmUiLCJHQ1AiLCJWZXJjZWwiLCJOZXRsaWZ5Il0sWyJSZWFjdCIsIk5vZGUuanMiLCJQb3N0Z3JlU1FMIiwiRG9ja2VyIl0sIlN0YXJ0IHR5cGluZyB0byBzZWUgc3VnZ2VzdGlvbnMgZnJvbSBwb3B1bGFyIHRlY2hub2xvZ2llcyIsIjMuIExpbWl0ZWQgVGFncyIsIlJlc3RyaWN0IHRoZSBudW1iZXIgb2YgdGFncyB1c2VycyBjYW4gYWRkIiwiVG9wIDMgU2tpbGxzIiwiQWRkIHVwIHRvIDMgc2tpbGxzLi4uIiwzLFsiRGVzaWduIiwiRGV2ZWxvcG1lbnQiXSwiTWF4aW11bSAzIHRhZ3MgYWxsb3dlZCIsIkNhdGVnb3JpZXMgKE1heCA1KSIsIlNlbGVjdCBjYXRlZ29yaWVzLi4uIiw1LFsiQmxvZyIsIlR1dG9yaWFsIiwiTmV3cyIsIlJldmlldyIsIkd1aWRlIiwiQ2FzZSBTdHVkeSIsIkludGVydmlldyJdLFsiVHV0b3JpYWwiLCJHdWlkZSJdLCJDaG9vc2UgdXAgdG8gNSBjYXRlZ29yaWVzIiwiNC4gUmVxdWlyZWQgJiBWYWxpZGF0aW9uIiwiVGFncyBpbnB1dCB3aXRoIHZhbGlkYXRpb24gcmVxdWlyZW1lbnRzIiwiUHJvamVjdCBUYWdzIiwiQWRkIGF0IGxlYXN0IG9uZSB0YWcuLi4iLCEwLCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIC0gYWRkIGF0IGxlYXN0IG9uZSB0YWciLCI1LiBEaXNhYmxlZCBTdGF0ZSIsIlJlYWQtb25seSB0YWdzIGRpc3BsYXkiLCJTeXN0ZW0gVGFncyIsWyJTeXN0ZW0iLCJQcm90ZWN0ZWQiLCJSZWFkLU9ubHkiLCJBcmNoaXZlIl0sITAsIlRoZXNlIHRhZ3MgY2Fubm90IGJlIG1vZGlmaWVkIiwiNi4gRm9ybSBJbnRlZ3JhdGlvbiIsIlRhZ3MgaW5wdXQgd29ya2luZyB3aXRoaW4gYSBmb3JtIGNvbnRleHQiLCJQcm9qZWN0IE5hbWUiLCJNeSBBd2Vzb21lIFByb2plY3QiLCEwLCJuYW1lIiwiVGVjaG5vbG9naWVzIFVzZWQiLCJBZGQgdGVjaG5vbG9naWVzLi4uIiwhMCwidGVjaG5vbG9naWVzIixbIlR5cGVTY3JpcHQiLCJKYXZhU2NyaXB0IiwiUHl0aG9uIiwiR28iLCJSdXN0IiwiUmVhY3QiLCJWdWUiLCJBbmd1bGFyIiwiU3ZlbHRlIiwiTm9kZS5qcyIsIkRlbm8iLCJFeHByZXNzIiwiRmFzdEFQSSJdLCJQcm9qZWN0IFRhZ3MiLCJBZGQgZGVzY3JpcHRpdmUgdGFncy4uLiIsInRhZ3MiLDEwLFsiZnJvbnRlbmQiLCJiYWNrZW5kIiwiZnVsbHN0YWNrIiwibW9iaWxlIiwiZGVza3RvcCIsIndlYiIsImFwaSIsImRhdGFiYXNlIiwiZGV2b3BzIiwidWkvdXgiLCJvcGVuc291cmNlIiwic2FhcyIsImVudGVycHJpc2UiLCJzdGFydHVwIl0sIkRlc2NyaXB0aW9uIiwidGV4dGFyZWEiLCJEZXNjcmliZSB5b3VyIHByb2plY3QuLi4iLCJkZXNjcmlwdGlvbiIsIkNyZWF0ZSBQcm9qZWN0IiwiNy4gSW50ZXJhY3RpdmUgRGVtbyIsIkFkZCB0YWdzIGFuZCBzZWUgdGhlbSBjb2xsZWN0ZWQgaW4gcmVhbC10aW1lIiwiWW91ciBJbnRlcmVzdHMiLCJUeXBlIHlvdXIgaW50ZXJlc3RzLi4uIixbIk11c2ljIiwiTW92aWVzIiwiQm9va3MiLCJUcmF2ZWwiLCJQaG90b2dyYXBoeSIsIkNvb2tpbmciLCJHYW1pbmciLCJTcG9ydHMiLCJBcnQiLCJUZWNobm9sb2d5IiwiRmFzaGlvbiIsIkZpdG5lc3MiLCJOYXR1cmUiLCJTY2llbmNlIiwiSGlzdG9yeSJdLHQ9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdGFncy1wcmV2aWV3IiksYT10LmRldGFpbC52YWx1ZTtlJiYoYS5sZW5ndGg9PT0wP2UuaW5uZXJIVE1MPSc8ZW0gc3R5bGU9ImNvbG9yOiAjOTk5OyI+Tm8gdGFncyBhZGRlZCB5ZXQuLi48L2VtPic6ZS5pbm5lckhUTUw9YS5tYXAoaT0+YDxzcGFuIGNsYXNzPSJ0YWctcHJldmlldy1pdGVtIj4ke2l9PC9zcGFuPmApLmpvaW4oIiIpKX0pfSk7dmFyIE9zLCQyLG9ndCxsZ3Q9YigoKT0+e3VlKCk7QzEoKTtEdCgpO25ndCgpO3FlKCk7T3M9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSwkMj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sb2d0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1pbnB1dC10YWdzIildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W10scSxDPVtdLHo9W107dmFyIEU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBUPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6QXJyYXl9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpOdW1iZXJ9KV0seT1bSSh7dHlwZTpBcnJheX0pXSx4PVtKKCldLEY9W0ooKV0sTj1bSigpXSxxPVtJKHt0eXBlOlN0cmluZ30pXSxPcyh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4idmFsdWUiaW4gJCxnZXQ6JD0+JC52YWx1ZSxzZXQ6KCQsVik9PnskLnZhbHVlPVZ9fSxtZXRhZGF0YTpUfSxuLG8pLE9zKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJwbGFjZWhvbGRlciJpbiAkLGdldDokPT4kLnBsYWNlaG9sZGVyLHNldDooJCxWKT0+eyQucGxhY2Vob2xkZXI9Vn19LG1ldGFkYXRhOlR9LGMscCksT3ModGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhUYWdzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4ibWF4VGFncyJpbiAkLGdldDokPT4kLm1heFRhZ3Msc2V0OigkLFYpPT57JC5tYXhUYWdzPVZ9fSxtZXRhZGF0YTpUfSxmLGcpLE9zKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VnZ2VzdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJzdWdnZXN0aW9ucyJpbiAkLGdldDokPT4kLnN1Z2dlc3Rpb25zLHNldDooJCxWKT0+eyQuc3VnZ2VzdGlvbnM9Vn19LG1ldGFkYXRhOlR9LHYsbSksT3ModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4iaW5wdXRWYWx1ZSJpbiAkLGdldDokPT4kLmlucHV0VmFsdWUsc2V0OigkLFYpPT57JC5pbnB1dFZhbHVlPVZ9fSxtZXRhZGF0YTpUfSxNLFMpLE9zKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1N1Z2dlc3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczokPT4ic2hvd1N1Z2dlc3Rpb25zImluICQsZ2V0OiQ9PiQuc2hvd1N1Z2dlc3Rpb25zLHNldDooJCxWKT0+eyQuc2hvd1N1Z2dlc3Rpb25zPVZ9fSxtZXRhZGF0YTpUfSxfLGspLE9zKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOiQ9PiJoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCJpbiAkLGdldDokPT4kLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4LHNldDooJCxWKT0+eyQuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9Vn19LG1ldGFkYXRhOlR9LEwsQSksT3ModGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6JD0+InZhbGlkYXRpb25UZXh0ImluICQsZ2V0OiQ9PiQudmFsaWRhdGlvblRleHQsc2V0OigkLFYpPT57JC52YWxpZGF0aW9uVGV4dD1WfX0sbWV0YWRhdGE6VH0sQyx6KSxPcyhudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpUfSxudWxsLGEpLEU9aT1lLnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPXNndDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9JDIodGhpcyxuLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoVCl7dGhpcy4jZT1UfSN0PSgkMih0aGlzLG8pLCQyKHRoaXMsYywiQWRkIHRhZ3MuLi4iKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBsYWNlaG9sZGVyKFQpe3RoaXMuI3Q9VH0jYT0oJDIodGhpcyxwKSwkMih0aGlzLGYsMCkpO2dldCBtYXhUYWdzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IG1heFRhZ3MoVCl7dGhpcy4jYT1UfSNpPSgkMih0aGlzLGcpLCQyKHRoaXMsdixbXSkpO2dldCBzdWdnZXN0aW9ucygpe3JldHVybiB0aGlzLiNpfXNldCBzdWdnZXN0aW9ucyhUKXt0aGlzLiNpPVR9I3I9KCQyKHRoaXMsbSksJDIodGhpcyxNLCIiKSk7Z2V0IGlucHV0VmFsdWUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaW5wdXRWYWx1ZShUKXt0aGlzLiNyPVR9I3M9KCQyKHRoaXMsUyksJDIodGhpcyxfLCExKSk7Z2V0IHNob3dTdWdnZXN0aW9ucygpe3JldHVybiB0aGlzLiNzfXNldCBzaG93U3VnZ2VzdGlvbnMoVCl7dGhpcy4jcz1UfSNuPSgkMih0aGlzLGspLCQyKHRoaXMsTCwtMSkpO2dldCBoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCgpe3JldHVybiB0aGlzLiNufXNldCBoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleChUKXt0aGlzLiNuPVR9I289KCQyKHRoaXMsQSksJDIodGhpcyxDLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI299c2V0IHZhbGlkYXRpb25UZXh0KFQpe3RoaXMuI289VH1zdGF0aWMgc3R5bGVzPVtDZSwuLi5YZS5iYXNlU3R5bGVzLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAudGFncy1jb250YWluZXI6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7aC5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElIC8gMC4yKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElIC8gMC4zKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUgLyAwLjMpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsaW5lLWhlaWdodDogMThweDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBhbmltYXRpb246IHRhZ0FwcGVhciAwLjE1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHRhZ0FwcGVhciB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQogICAgICB9CgogICAgICAudGFnLXJlbW92ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNHB4OwogICAgICAgIGhlaWdodDogMTRweDsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDQ2LjclKSIsImhzbCgyMTcuOSAxMC42JSA1NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjA4KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmUgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAxMjBweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDYzLjklKSIsImhzbCgwIDAlIDQ1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRhZy1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgLyogU3VnZ2VzdGlvbnMgZHJvcGRvd24gKi8KICAgICAgLnN1Z2dlc3Rpb25zLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb24uaGlnaGxpZ2h0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIC52YWxpZGF0aW9uLW1lc3NhZ2UgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogRGVzY3JpcHRpb24gc3R5bGVzICovCiAgICAgIC5kZXNjcmlwdGlvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBUPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKCQ9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKCQpJiYkLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP3dgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPmA6IiJ9CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic3VnZ2VzdGlvbnMtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InRhZ3MtY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDb250YWluZXJDbGlja30KICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLm1hcCgkPT53YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhZyI+CiAgICAgICAgICAgICAgICA8c3Bhbj4keyR9PC9zcGFuPgogICAgICAgICAgICAgICAgJHt0aGlzLmRpc2FibGVkPyIiOndgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhZy1yZW1vdmUiIEBjbGljaz0ke1Y9PnRoaXMucmVtb3ZlVGFnKFYsJCl9PgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7IXRoaXMuZGlzYWJsZWQmJighdGhpcy5tYXhUYWdzfHx0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1heFRhZ3MpP3dgCiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9InRhZy1pbnB1dCIKICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlucHV0VmFsdWV9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUtleURvd259CiAgICAgICAgICAgICAgICBAZm9jdXM9JHt0aGlzLmhhbmRsZUZvY3VzfQogICAgICAgICAgICAgICAgQGJsdXI9JHt0aGlzLmhhbmRsZUJsdXJ9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAke3RoaXMuc2hvd1N1Z2dlc3Rpb25zJiZULmxlbmd0aD4wP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAke1QubWFwKCgkLFYpPT53YAogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0ic3VnZ2VzdGlvbiAke1Y9PT10aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PyJoaWdobGlnaHRlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7Uj0+e1IucHJldmVudERlZmF1bHQoKSx0aGlzLmFkZFRhZygkKX19CiAgICAgICAgICAgICAgICAgIEBtb3VzZWVudGVyPSR7KCk9PnRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9Vn0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgJHskfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnZhbGlkYXRpb25UZXh0P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uLW1lc3NhZ2UiPiR7dGhpcy52YWxpZGF0aW9uVGV4dH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICAgIAogICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbj93YAogICAgICAgICAgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24iPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ29udGFpbmVyQ2xpY2soVCl7aWYodGhpcy5kaXNhYmxlZClyZXR1cm47bGV0ICQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFnLWlucHV0Iik7JCYmVC50YXJnZXQhPT0kJiYkLmZvY3VzKCl9aGFuZGxlSW5wdXQoVCl7bGV0ICQ9VC50YXJnZXQ7aWYodGhpcy5pbnB1dFZhbHVlPSQudmFsdWUsdGhpcy5pbnB1dFZhbHVlLmluY2x1ZGVzKCIsIil8fHRoaXMuaW5wdXRWYWx1ZS5pbmNsdWRlcygiOyIpKXtsZXQgVj10aGlzLmlucHV0VmFsdWUucmVwbGFjZSgvWyw7XS9nLCIiKS50cmltKCk7ViYmdGhpcy5hZGRUYWcoVil9fWhhbmRsZUtleURvd24oVCl7bGV0ICQ9VC50YXJnZXQ7aWYoVC5rZXk9PT0iRW50ZXIiKWlmKFQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4Pj0wJiZ0aGlzLnNob3dTdWdnZXN0aW9ucyl7bGV0IFY9dGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIoUj0+IXRoaXMudmFsdWUuaW5jbHVkZXMoUikmJlIudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUudG9Mb3dlckNhc2UoKSkpO1ZbdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF0mJnRoaXMuYWRkVGFnKFZbdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleF0pfWVsc2UgdGhpcy5pbnB1dFZhbHVlLnRyaW0oKSYmdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlLnRyaW0oKSk7ZWxzZSBpZihULmtleT09PSJCYWNrc3BhY2UiJiYhdGhpcy5pbnB1dFZhbHVlJiZ0aGlzLnZhbHVlLmxlbmd0aD4wKXRoaXMucmVtb3ZlVGFnKFQsdGhpcy52YWx1ZVt0aGlzLnZhbHVlLmxlbmd0aC0xXSk7ZWxzZSBpZihULmtleT09PSJBcnJvd0Rvd24iJiZ0aGlzLnNob3dTdWdnZXN0aW9ucyl7VC5wcmV2ZW50RGVmYXVsdCgpO2xldCBWPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKFI9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKFIpJiZSLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKS5sZW5ndGg7dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD1NYXRoLm1pbih0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4KzEsVi0xKX1lbHNlIFQua2V5PT09IkFycm93VXAiJiZ0aGlzLnNob3dTdWdnZXN0aW9ucz8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9TWF0aC5tYXgodGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleC0xLDApKTpULmtleT09PSJFc2NhcGUiJiYodGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMSl9aGFuZGxlRm9jdXMoKXt0aGlzLnN1Z2dlc3Rpb25zLmxlbmd0aD4wJiYodGhpcy5zaG93U3VnZ2VzdGlvbnM9ITApfWhhbmRsZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMX0sMjAwKX1hZGRUYWcoVCl7aWYoIVR8fHRoaXMudmFsdWUuaW5jbHVkZXMoVCl8fHRoaXMubWF4VGFncyYmdGhpcy52YWx1ZS5sZW5ndGg+PXRoaXMubWF4VGFncylyZXR1cm47dGhpcy52YWx1ZT1bLi4udGhpcy52YWx1ZSxUXSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy5zaG93U3VnZ2VzdGlvbnM9ITEsdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD0tMTtsZXQgJD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50YWctaW5wdXQiKTskJiYoJC52YWx1ZT0iIiksdGhpcy5lbWl0Q2hhbmdlKCl9cmVtb3ZlVGFnKFQsJCl7VC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKFY9PlYhPT0kKSx0aGlzLmVtaXRDaGFuZ2UoKX1lbWl0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoVCl7dGhpcy52YWx1ZT1UfHxbXX1hc3luYyB2YWxpZGF0ZSgpe3JldHVybiB0aGlzLnJlcXVpcmVkJiYoIXRoaXMudmFsdWV8fHRoaXMudmFsdWUubGVuZ3RoPT09MCk/KHRoaXMudmFsaWRhdGlvblRleHQ9IkF0IGxlYXN0IG9uZSB0YWcgaXMgcmVxdWlyZWQiLCExKToodGhpcy52YWxpZGF0aW9uVGV4dD0iIiwhMCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLCQyKHRoaXMseil9c3RhdGljeyQyKGksYSl9fTtyZXR1cm4gRT1pfSkoKX0pO3ZhciBjZ3Q9YigoKT0+e2xndCgpfSk7dmFyIGRndD1iKCgpPT57bG8oKX0pO3ZhciBwZ3Q9YigoKT0+e1hxKCl9KTt2YXIgaGd0PWIoKCk9PntRcSgpfSk7dmFyIGFVdCxpVXQsclV0LHNVdCxuVXQsb1V0LGxVdCx1Z3QsZmd0PWIoKCk9Pnt1ZSgpO3kxKCk7bTIoKTthVXQ9KCk9PntsZXQgdD1EYXRlLm5vdygpO3JldHVyblt7aWQ6YHRpdGxlLSR7dH1gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiU3lzdGVtIFBlcmZvcm1hbmNlIFJlcG9ydCJ9LHtpZDpgZGF0ZS0ke3QrMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpgR2VuZXJhdGVkIG9uOiAke25ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKX1gfSx7aWQ6YHN1bW1hcnktaGVhZGluZy0ke3QrMn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiRXhlY3V0aXZlIFN1bW1hcnkifSx7aWQ6YHN1bW1hcnktJHt0KzN9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlRoaXMgcmVwb3J0IHByb3ZpZGVzIGFuIGFuYWx5c2lzIG9mIHN5c3RlbSBwZXJmb3JtYW5jZSBtZXRyaWNzIG92ZXIgdGhlIGxhc3QgMzAgZGF5cy4ifSx7aWQ6YG1ldHJpY3MtaGVhZGluZy0ke3QrNH1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiS2V5IE1ldHJpY3MifSx7aWQ6YG1ldHJpY3MtbGlzdC0ke3QrNX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YEF2ZXJhZ2UgcmVzcG9uc2UgdGltZTogMTI0bXMKVXB0aW1lOiA5OS45NyUKQ1BVIHV0aWxpemF0aW9uOiA0NSUKTWVtb3J5IHVzYWdlOiAyLjNHQiAvIDhHQmAsbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0se2lkOmBhbmFseXNpcy1oZWFkaW5nLSR7dCs2fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJQZXJmb3JtYW5jZSBBbmFseXNpcyJ9LHtpZDpgYW5hbHlzaXMtcXVvdGUtJHt0Kzd9YCx0eXBlOiJxdW90ZSIsY29udGVudDoiU3lzdGVtIHBlcmZvcm1hbmNlIHJlbWFpbnMgd2l0aGluIGFjY2VwdGFibGUgcGFyYW1ldGVycyB3aXRoIHJvb20gZm9yIG9wdGltaXphdGlvbiBpbiBtZW1vcnkgbWFuYWdlbWVudC4ifSx7aWQ6YGNvZGUtaGVhZGluZy0ke3QrOH1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiU2FtcGxlIFF1ZXJ5IFBlcmZvcm1hbmNlIn0se2lkOmBjb2RlLWJsb2NrLSR7dCs5fWAsdHlwZToiY29kZSIsY29udGVudDpgU0VMRUNUIEFWRyhyZXNwb25zZV90aW1lKSBhcyBhdmdfdGltZSwKICAgICAgIENPVU5UKCopIGFzIHRvdGFsX3JlcXVlc3RzLAogICAgICAgREFURShjcmVhdGVkX2F0KSBhcyBkYXRlCkZST00gcGVyZm9ybWFuY2VfbG9ncwpXSEVSRSBjcmVhdGVkX2F0ID49IE5PVygpIC0gSU5URVJWQUwgMzAgREFZCkdST1VQIEJZIERBVEUoY3JlYXRlZF9hdCkKT1JERVIgQlkgZGF0ZSBERVNDO2AsbWV0YWRhdGE6e2xhbmd1YWdlOiJzcWwifX0se2lkOmBkaXZpZGVyLSR7dCsxMH1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiJ9LHtpZDpgZm9vdGVyLSR7dCsxMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiUmVwb3J0IGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IFN5c3RlbSBNb25pdG9yIHYyLjUuMCJ9XX0saVV0PSgpPT57bGV0IHQ9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmByZWNpcGUtdGl0bGUtJHt0fWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJDbGFzc2ljIE1hcmdoZXJpdGEgUGl6emEifSx7aWQ6YHJlY2lwZS1pbnRyby0ke3QrMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiQSB0cmFkaXRpb25hbCBJdGFsaWFuIHBpenphIHdpdGggZnJlc2ggYmFzaWwsIG1venphcmVsbGEsIGFuZCB0b21hdG8gc2F1Y2UuIn0se2lkOmBpbmdyZWRpZW50cy1oZWFkaW5nLSR7dCsyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjM1NX0gSW5ncmVkaWVudHMifSx7aWQ6YGRvdWdoLWhlYWRpbmctJHt0KzN9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgRG91Z2g6In0se2lkOmBkb3VnaC1saXN0LSR7dCs0fWAsdHlwZToibGlzdCIsY29udGVudDpgNTAwZyB0aXBvICIwMCIgZmxvdXIKMzI1bWwgd2FybSB3YXRlcgoxMGcgc2FsdAo3ZyBhY3RpdmUgZHJ5IHllYXN0CjIgdGJzcCBvbGl2ZSBvaWxgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgdG9wcGluZ3MtaGVhZGluZy0ke3QrNX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiRm9yIHRoZSBUb3BwaW5nczoifSx7aWQ6YHRvcHBpbmdzLWxpc3QtJHt0KzZ9YCx0eXBlOiJsaXN0Iixjb250ZW50OmA0MDBnIGNhbm5lZCBTYW4gTWFyemFubyB0b21hdG9lcwoyNTBnIGZyZXNoIG1venphcmVsbGEKRnJlc2ggYmFzaWwgbGVhdmVzCkV4dHJhIHZpcmdpbiBvbGl2ZSBvaWwKU2FsdCBhbmQgcGVwcGVyIHRvIHRhc3RlYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGluc3RydWN0aW9ucy1oZWFkaW5nLSR7dCs3fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjQ2OH1cdTIwMERcdXsxRjM3M30gSW5zdHJ1Y3Rpb25zIn0se2lkOmBzdGVwcy1saXN0LSR7dCs4fWAsdHlwZToibGlzdCIsY29udGVudDpgRGlzc29sdmUgeWVhc3QgaW4gd2FybSB3YXRlciBhbmQgbGV0IHN0YW5kIGZvciA1IG1pbnV0ZXMKTWl4IGZsb3VyIGFuZCBzYWx0LCBjcmVhdGUgYSB3ZWxsIGluIGNlbnRlcgpBZGQgeWVhc3QgbWl4dHVyZSBhbmQgb2xpdmUgb2lsCktuZWFkIGZvciAxMCBtaW51dGVzIHVudGlsIHNtb290aApMZXQgcmlzZSBmb3IgMS0yIGhvdXJzIHVudGlsIGRvdWJsZWQKUHVuY2ggZG93biBhbmQgZGl2aWRlIGludG8gcG9ydGlvbnMKUm9sbCBvdXQgZWFjaCBwb3J0aW9uIHRvIDEyLWluY2ggY2lyY2xlcwpUb3Agd2l0aCBjcnVzaGVkIHRvbWF0b2VzLCBtb3p6YXJlbGxhLCBhbmQgYmFzaWwKQmFrZSBhdCA0NzVceEIwRiAoMjQ1XHhCMEMpIGZvciAxMC0xMiBtaW51dGVzYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOmB0aXAtJHt0Kzl9YCx0eXBlOiJxdW90ZSIsY29udGVudDoiUHJvIHRpcDogRm9yIGFuIGF1dGhlbnRpYyB0YXN0ZSwgdXNlIGEgcGl6emEgc3RvbmUgYW5kIHByZWhlYXQgaXQgaW4gdGhlIG92ZW4gZm9yIGF0IGxlYXN0IDMwIG1pbnV0ZXMgYmVmb3JlIGJha2luZy4ifSx7aWQ6YGRpdmlkZXItJHt0KzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBzZXJ2aW5ncy0ke3QrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlNlcnZpbmdzOiA0IHBpenphcyB8IFByZXAgdGltZTogMiBob3VycyB8IENvb2sgdGltZTogMTIgbWludXRlcyJ9XX0sclV0PXQ9PntsZXQgZT17fTtyZXR1cm4gZS5iYXNpYz10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYmFzaWMiKSxlLmFydGljbGU9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWFydGljbGUiKSxlLmRyYWdEcm9wPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1kcmFnZHJvcCIpLGUudHV0b3JpYWw9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXR1dG9yaWFsIiksZS5tZWV0aW5nPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1tZWV0aW5nIiksZS5yZWNpcGU9dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXJlY2lwZSIpLGUudGVjaG5pY2FsPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci10ZWNobmljYWwiKSxlLmZvcm1JbnRlZ3JhdGlvbj10LnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIpLGUucHJvZ3JhbW1hdGljPXQucXVlcnlTZWxlY3RvcigiI2VkaXRvci1wcm9ncmFtbWF0aWMiKSxlLmV4cG9ydERlbW89dC5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWV4cG9ydCIpLGV9LHNVdD0odCxlKT0+e2xldCBhPXQucXVlcnlTZWxlY3RvcigiI2J0bi1nZW5lcmF0ZS1yZXBvcnQiKSxpPXQucXVlcnlTZWxlY3RvcigiI2J0bi1nZW5lcmF0ZS1yZWNpcGUiKSxyPXQucXVlcnlTZWxlY3RvcigiI2J0bi1jbGVhci1lZGl0b3IiKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuaW1wb3J0QmxvY2tzKGFVdCgpKX0pLGkmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ZS5pbXBvcnRCbG9ja3MoaVV0KCkpfSksciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmltcG9ydEJsb2NrcyhbXSl9KX0sblV0PSh0LGUpPT57bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLWV4cG9ydC1ibG9ja3MiKSxpPXQucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtaHRtbCIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLWV4cG9ydC1tYXJrZG93biIpLHM9dC5xdWVyeVNlbGVjdG9yKCIjYnRuLXNhdmUtc3RhdGUiKSxuPXQucXVlcnlTZWxlY3RvcigiI2J0bi1yZXN0b3JlLXN0YXRlIiksbz1udWxsO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IGQ9ZS5leHBvcnRCbG9ja3MoKTtjb25zb2xlLmxvZygiRXhwb3J0ZWQgYmxvY2tzOiIsZCksYWxlcnQoYEV4cG9ydGVkICR7ZC5sZW5ndGh9IGJsb2NrcyB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuYCl9KSxpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBkPWUuZXhwb3J0QXNIdG1sKCk7Y29uc29sZS5sb2coIkhUTUwgRXhwb3J0OiIsZCksYWxlcnQoIkhUTUwgZXhwb3J0ZWQgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLiIpfSksciYmci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgZD1lLmV4cG9ydEFzTWFya2Rvd24oKTtjb25zb2xlLmxvZygiTWFya2Rvd24gRXhwb3J0OiIsZCksYWxlcnQoIk1hcmtkb3duIGV4cG9ydGVkIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy4iKX0pLHMmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bz1lLmV4cG9ydFN0YXRlKCksY29uc29sZS5sb2coIlNhdmVkIHN0YXRlOiIsbyksYWxlcnQoIkVkaXRvciBzdGF0ZSBzYXZlZCEiKX0pLG4mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bz8oZS5pbXBvcnRTdGF0ZShvKSxhbGVydCgiRWRpdG9yIHN0YXRlIHJlc3RvcmVkISIpKTphbGVydCgiTm8gc2F2ZWQgc3RhdGUgZm91bmQuIFNhdmUgc3RhdGUgZmlyc3QhIil9KX0sb1V0PSh0LGUsYSk9PntsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tc2hvdy1odG1sLW91dHB1dCIpLHI9dC5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0LXByZXZpZXctaHRtbCIpO2kmJnImJmUmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci50ZXh0Q29udGVudD1lLmdldFZhbHVlKCksci5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KTtsZXQgcz10LnF1ZXJ5U2VsZWN0b3IoIiNidG4tc2hvdy1tYXJrZG93bi1vdXRwdXQiKSxuPXQucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3LW1hcmtkb3duIik7cyYmbiYmYSYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntuLnRleHRDb250ZW50PWEuZ2V0VmFsdWUoKSxuLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pfSxsVXQ9dD0+e3QuYXJ0aWNsZSYmc2V0VGltZW91dCgoKT0+e2xldCBlPVt7aWQ6ImludHJvLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiSW50cm9kdWN0aW9uIHRvIE1vZGVybiBXZWIgRGV2ZWxvcG1lbnQifSx7aWQ6ImludHJvLXBhcmEtIitEYXRlLm5vdygpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiTW9kZXJuIHdlYiBkZXZlbG9wbWVudCBoYXMgZXZvbHZlZCBzaWduaWZpY2FudGx5IG92ZXIgdGhlIHBhc3QgZGVjYWRlLiBJbiB0aGlzIGFydGljbGUsIHdlJ2xsIGV4cGxvcmUgdGhlIGtleSB0ZWNobm9sb2dpZXMgYW5kIGJlc3QgcHJhY3RpY2VzIHRoYXQgZGVmaW5lIHdlYiBkZXZlbG9wbWVudCBpbiAyMDI0LiJ9LHtpZDoidGVjaC1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IktleSBUZWNobm9sb2dpZXMifSx7aWQ6InRlY2gtbGlzdC0iK0RhdGUubm93KCksdHlwZToibGlzdCIsY29udGVudDpgVHlwZVNjcmlwdCAtIFR5cGUtc2FmZSBKYXZhU2NyaXB0IGRldmVsb3BtZW50CldlYiBDb21wb25lbnRzIC0gTmF0aXZlIGNvbXBvbmVudCBtb2RlbApFUyBNb2R1bGVzIC0gTW9kZXJuIG1vZHVsZSBzeXN0ZW0KV2ViQXNzZW1ibHkgLSBIaWdoLXBlcmZvcm1hbmNlIGNvbXB1dGluZ2AsbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19LHtpZDoicXVvdGUtIitEYXRlLm5vdygpLHR5cGU6InF1b3RlIixjb250ZW50OiJUaGUgYmVzdCB3YXkgdG8gcHJlZGljdCB0aGUgZnV0dXJlIGlzIHRvIGludmVudCBpdC4gLSBBbGFuIEtheSJ9LHtpZDoiZXhhbXBsZS1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkNvZGUgRXhhbXBsZSJ9LHtpZDoiY29kZS1leGFtcGxlLSIrRGF0ZS5ub3coKSx0eXBlOiJjb2RlIixjb250ZW50OmBjbGFzcyBNb2Rlcm5XZWJBcHAgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSk7CiAgfQogIAogIGNvbm5lY3RlZENhbGxiYWNrKCkgewogICAgdGhpcy5yZW5kZXIoKTsKICB9Cn1gLG1ldGFkYXRhOntsYW5ndWFnZToiamF2YXNjcmlwdCJ9fV07dC5hcnRpY2xlLmltcG9ydEJsb2NrcyhlKX0sNTAwKSx0LmRyYWdEcm9wJiZzZXRUaW1lb3V0KCgpPT57bGV0IGU9W3tpZDoiZHJhZy10aXRsZS0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJEcmFnICYgRHJvcCBEZW1vIn0se2lkOiJkcmFnLWludHJvLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlRoaXMgZWRpdG9yIGRlbW9uc3RyYXRlcyBkcmFnIGFuZCBkcm9wIGZ1bmN0aW9uYWxpdHkuIFRyeSBkcmFnZ2luZyB0aGVzZSBibG9ja3MgYXJvdW5kISJ9LHtpZDoiZHJhZy1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkhvdyBJdCBXb3JrcyJ9LHtpZDoiZHJhZy1saXN0LSIrRGF0ZS5ub3coKSx0eXBlOiJsaXN0Iixjb250ZW50OmBIb3ZlciBvdmVyIGFueSBibG9jayB0byBzZWUgdGhlIGRyYWcgaGFuZGxlCkNsaWNrIGFuZCBob2xkIHRoZSBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmcKRHJhZyB0byByZW9yZGVyIGJsb2NrcwpSZWxlYXNlIHRvIGRyb3AgaW4gdGhlIG5ldyBwb3NpdGlvbmAsbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19LHtpZDoiZHJhZy1xdW90ZS0iK0RhdGUubm93KCksdHlwZToicXVvdGUiLGNvbnRlbnQ6IlRoZSBkcmFnIGFuZCBkcm9wIGZlYXR1cmUgbWFrZXMgaXQgZWFzeSB0byByZW9yZ2FuaXplIHlvdXIgY29udGVudCB3aXRob3V0IGN1dHRpbmcgYW5kIHBhc3RpbmcuIn0se2lkOiJkcmFnLWRpdmlkZXItIitEYXRlLm5vdygpLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiJ9LHtpZDoiZHJhZy1mb290ZXItIitEYXRlLm5vdygpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiTm90ZTogRGl2aWRlciBibG9ja3MgY2Fubm90IGJlIGRyYWdnZWQsIGJ1dCBvdGhlciBibG9ja3MgY2FuIGJlIG1vdmVkIGFyb3VuZCB0aGVtLiJ9XTt0LmRyYWdEcm9wLmltcG9ydEJsb2NrcyhlKX0sNjAwKX0sdWd0PSgpPT53YAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCBuZXcgUHJvbWlzZShhPT5zZXRUaW1lb3V0KGEsNTAwKSk7bGV0IGU9clV0KHQpO2UucHJvZ3JhbW1hdGljJiZzVXQodCxlLnByb2dyYW1tYXRpYyksZS5leHBvcnREZW1vJiZuVXQodCxlLmV4cG9ydERlbW8pLG9VdCh0LGUubWVldGluZyxlLnJlY2lwZSksbFV0KGUpLGNvbnNvbGUubG9nKCJXWVNJV1lHIERlbW8gaW5pdGlhbGl6ZWQgd2l0aCBlZGl0b3JzOiIsT2JqZWN0LmtleXMoZSkpfX0+CiAgPHN0eWxlPgogICAgJHtRYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQogICAgICAKICAgICAgLnBhbmVsLWRlc2NyaXB0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAucGFuZWwtZGVzY3JpcHRpb24gewogICAgICAgICAgY29sb3I6ICM5OTk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZmVhdHVyZS1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuZmVhdHVyZS1pY29uIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmZlYXR1cmUtaXRlbSB7CiAgICAgICAgICBjb2xvcjogI2FhYTsKICAgICAgICB9CiAgICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtYm94IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDEwMiwgMjA0LCAwLjIpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLWJveCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc3LCAxNDgsIDI1NSwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMyk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICBtYXJnaW46IDAgMCAxMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXRzLXRpdGxlIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnNob3J0Y3V0LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICM1NTU7CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dC1rZXkgewogICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICMzMzM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5zaG9ydGN1dC1pdGVtIHsKICAgICAgICAgIGNvbG9yOiAjYmJiOwogICAgICAgIH0KICAgICAgICAuc2hvcnRjdXQta2V5IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMyMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgfQoKICAgICAgLm91dHB1dC1jYXJkIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3V0cHV0LWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC4wNCk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgIzBmMTcyYSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgOmhvc3QoW3RoZW1lPSdkYXJrJ10pIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjA2KTsKICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xNSk7CiAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCwgI2Y0ZjRmNSk7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtcHJldmlldy52aXNpYmxlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgLm91dHB1dC1ncmlkIHsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtYm94IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogI2YwZjhmZjsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAudGlwcy1ib3ggewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1ib3ggc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC50aXBzLWJveCBzdHJvbmcgewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAudGlwcy1saXN0IHsKICAgICAgICBtYXJnaW46IDhweCAwIDAgMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWxpc3QgbGkgewogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y4ZjhmODsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlODsKICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLmRlbW8tYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzMzM7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM1NTU7CiAgICAgICAgICBjb2xvcjogI2RkZDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmRlbW8tYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICM0NDQ7CiAgICAgICAgICBib3JkZXItY29sb3I6ICM2NjY7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3MgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTAyLCAyMDQsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmh0bWwgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzYsIDE3NSwgODAsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLm1hcmtkb3duIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNTYsIDM5LCAxNzYsIDAuMSk7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHN0cm9uZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5ibG9ja3Mgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzAwNjZjYzsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuaHRtbCBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjNENBRjUwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjRkY5ODAwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5zdGF0ZSBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjOUMyN0IwOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCBwIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIFx1ezFGNjgwfSBNb2Rlcm4gV1lTSVdZRyBFZGl0b3IifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQSBwb3dlcmZ1bCBibG9jay1iYXNlZCBlZGl0b3Igd2l0aCBzbGFzaCBjb21tYW5kcywga2V5Ym9hcmQgc2hvcnRjdXRzLCBhbmQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdHMuIAogICAgICAgICAgUGVyZmVjdCBmb3IgY29udGVudCBjcmVhdGlvbiwgYmxvZyBwb3N0cywgZG9jdW1lbnRhdGlvbiwgYW5kIG1vcmUuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPlNsYXNoIGNvbW1hbmRzICgvKTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5LZXlib2FyZCBzaG9ydGN1dHM8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+QmxvY2stYmFzZWQgZWRpdGluZzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5EcmFnICYgZHJvcCByZW9yZGVyaW5nPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkhUTUwgJiBNYXJrZG93biBvdXRwdXQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RGFyayBtb2RlIHN1cHBvcnQ8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+TW9iaWxlIHJlc3BvbnNpdmU8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1iYXNpYyIKICAgICAgICAgIGxhYmVsPSJSaWNoIFRleHQgRWRpdG9yIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdGFydCB0eXBpbmcgb3IgdXNlICcvJyB0byBpbnNlcnQgZGlmZmVyZW50IGJsb2NrIHR5cGVzIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KCiAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXRzLWJveCI+CiAgICAgICAgICA8aDQgY2xhc3M9InNob3J0Y3V0cy10aXRsZSI+4oyo77iPIEtleWJvYXJkIFNob3J0Y3V0czwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dHMtZ3JpZCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi88L3NwYW4+IFNsYXNoIGNvbW1hbmRzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jPC9zcGFuPiBIZWFkaW5nIDEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjPC9zcGFuPiBIZWFkaW5nIDIKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPiMjIzwvc3Bhbj4gSGVhZGluZyAzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4+PC9zcGFuPiBRdW90ZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+XGBcYFxgPC9zcGFuPiBDb2RlIGJsb2NrCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4qPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4tPC9zcGFuPiBCdWxsZXQgbGlzdAogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+MS48L3NwYW4+IE51bWJlcmVkIGxpc3QKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPi0tLTwvc3Bhbj4gRGl2aWRlcgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gXHV7MUY0RER9IEJsb2cgUG9zdCBFeGFtcGxlIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFBlcmZlY3QgZm9yIGNyZWF0aW5nIHJpY2ggY29udGVudCB3aXRoIG11bHRpcGxlIGJsb2NrIHR5cGVzLiAKICAgICAgICAgIFRoZSBlZGl0b3IgcHJlc2VydmVzIGZvcm1hdHRpbmcgYW5kIHByb3ZpZGVzIGEgY2xlYW4gZWRpdGluZyBleHBlcmllbmNlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1hcnRpY2xlIgogICAgICAgICAgbGFiZWw9IkJsb2cgUG9zdCBDb250ZW50IiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgdXNpbmcgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Imh0bWwiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMy4gXHV7MUY1MDB9IERyYWcgJiBEcm9wIFJlb3JkZXJpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgRWFzaWx5IHJlYXJyYW5nZSB5b3VyIGNvbnRlbnQgYmxvY2tzIGJ5IGRyYWdnaW5nIHRoZW0uIAogICAgICAgICAgSG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gcmV2ZWFsIHRoZSBkcmFnIGhhbmRsZSBvbiB0aGUgbGVmdCBzaWRlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci1kcmFnZHJvcCIKICAgICAgICAgIGxhYmVsPSJEcmFnICYgRHJvcCBEZW1vIiAKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUcnkgZHJhZ2dpbmcgYmxvY2tzIHRvIHJlb3JkZXIgdGhlbSAtIGhvdmVyIHRvIHNlZSBkcmFnIGhhbmRsZXMiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InRpcHMtYm94Ij4KICAgICAgICAgIDxzdHJvbmc+8J+SoSBUaXBzOjwvc3Ryb25nPgogICAgICAgICAgPHVsIGNsYXNzPSJ0aXBzLWxpc3QiPgogICAgICAgICAgICA8bGk+SG92ZXIgb3ZlciBhbnkgYmxvY2sgdG8gc2VlIHRoZSBkcmFnIGhhbmRsZSAo4ouu4ouuKSBvbiB0aGUgbGVmdDwvbGk+CiAgICAgICAgICAgIDxsaT5DbGljayBhbmQgaG9sZCB0aGUgZHJhZyBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmc8L2xpPgogICAgICAgICAgICA8bGk+Qmx1ZSBpbmRpY2F0b3JzIHNob3cgd2hlcmUgdGhlIGJsb2NrIHdpbGwgYmUgZHJvcHBlZDwvbGk+CiAgICAgICAgICAgIDxsaT5EaXZpZGVyIGJsb2NrcyBjYW5ub3QgYmUgZHJhZ2dlZDwvbGk+CiAgICAgICAgICAgIDxsaT5UaGUgZWRpdG9yIG1haW50YWlucyBmb2N1cyBvbiB0aGUgbW92ZWQgYmxvY2sgYWZ0ZXIgZHJvcHBpbmc8L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIFx1ezFGNERBfSBUdXRvcmlhbCAmIERvY3VtZW50YXRpb24ifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXByZWhlbnNpdmUgdHV0b3JpYWxzIGFuZCBkb2N1bWVudGF0aW9uIHdpdGggY29kZSBleGFtcGxlcywgbGlzdHMsIGFuZCBzdHJ1Y3R1cmVkIGNvbnRlbnQuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXR1dG9yaWFsIgogICAgICAgICAgbGFiZWw9IkdpdCBUdXRvcmlhbCIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RlcC1ieS1zdGVwIGd1aWRlIHdpdGggY29tbWFuZHMgYW5kIGV4cGxhbmF0aW9ucyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICB2YWx1ZT0iIyBHaXQgVHV0b3JpYWwgZm9yIEJlZ2lubmVycwoKR2l0IGlzIGEgZGlzdHJpYnV0ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSB0aGF0IGhlbHBzIHlvdSB0cmFjayBjaGFuZ2VzIGluIHlvdXIgY29kZSBvdmVyIHRpbWUuIFRoaXMgdHV0b3JpYWwgd2lsbCBndWlkZSB5b3UgdGhyb3VnaCB0aGUgYmFzaWNzLgoKIyMgUHJlcmVxdWlzaXRlcwoKQmVmb3JlIHN0YXJ0aW5nLCBlbnN1cmUgeW91IGhhdmU6CgotIEdpdCBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0KLSBBIHRleHQgZWRpdG9yIG9yIElERQotIEJhc2ljIGNvbW1hbmQgbGluZSBrbm93bGVkZ2UKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIDEuIENvbmZpZ3VyZSBHaXQKCkZpcnN0LCBzZXQgdXAgeW91ciBpZGVudGl0eToKClxgXGBcYGJhc2gKZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgJnF1b3Q7WW91ciBOYW1lJnF1b3Q7CmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAmcXVvdDt5b3VyLmVtYWlsQGV4YW1wbGUuY29tJnF1b3Q7ClxgXGBcYAoKIyMjIDIuIEluaXRpYWxpemUgYSBSZXBvc2l0b3J5CgpDcmVhdGUgYSBuZXcgR2l0IHJlcG9zaXRvcnk6CgpcYFxgXGBiYXNoCm1rZGlyIG15LXByb2plY3QKY2QgbXktcHJvamVjdApnaXQgaW5pdApcYFxgXGAKCiMjIyAzLiBCYXNpYyBHaXQgV29ya2Zsb3cKCiMjIyMgQWRkaW5nIEZpbGVzCgpDcmVhdGUgYSBmaWxlIGFuZCBhZGQgaXQgdG8gc3RhZ2luZzoKClxgXGBcYGJhc2gKZWNobyAmcXVvdDsjIE15IFByb2plY3QmcXVvdDsgPiBSRUFETUUubWQKZ2l0IGFkZCBSRUFETUUubWQKXGBcYFxgCgojIyMjIENvbW1pdHRpbmcgQ2hhbmdlcwoKXGBcYFxgYmFzaApnaXQgY29tbWl0IC1tICZxdW90O0luaXRpYWwgY29tbWl0JnF1b3Q7ClxgXGBcYAoKPiAqKkJlc3QgUHJhY3RpY2U6KiogV3JpdGUgY2xlYXIsIGRlc2NyaXB0aXZlIGNvbW1pdCBtZXNzYWdlcyB0aGF0IGV4cGxhaW4gd2hhdCBjaGFuZ2VzIHdlcmUgbWFkZSBhbmQgd2h5LgoKIyMjIDQuIFdvcmtpbmcgd2l0aCBCcmFuY2hlcwoKQnJhbmNoZXMgYWxsb3cgeW91IHRvIHdvcmsgb24gZmVhdHVyZXMgaW5kZXBlbmRlbnRseToKClxgXGBcYGJhc2gKIyBDcmVhdGUgYW5kIHN3aXRjaCB0byBhIG5ldyBicmFuY2gKZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUtYnJhbmNoCgojIE1ha2UgY2hhbmdlcyBhbmQgY29tbWl0CmdpdCBhZGQgLgpnaXQgY29tbWl0IC1tICZxdW90O0FkZCBuZXcgZmVhdHVyZSZxdW90OwoKIyBTd2l0Y2ggYmFjayB0byBtYWluCmdpdCBjaGVja291dCBtYWluCgojIE1lcmdlIHRoZSBmZWF0dXJlCmdpdCBtZXJnZSBmZWF0dXJlLWJyYW5jaApcYFxgXGAKCi0tLQoKIyMgQ29tbW9uIENvbW1hbmRzIFJlZmVyZW5jZQoKfCBDb21tYW5kIHwgRGVzY3JpcHRpb24gfAp8LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18CnwgXGBnaXQgc3RhdHVzXGAgfCBDaGVjayByZXBvc2l0b3J5IHN0YXR1cyB8CnwgXGBnaXQgbG9nXGAgfCBWaWV3IGNvbW1pdCBoaXN0b3J5IHwKfCBcYGdpdCBkaWZmXGAgfCBTaG93IGNoYW5nZXMgfAp8IFxgZ2l0IHB1bGxcYCB8IEZldGNoIGFuZCBtZXJnZSBjaGFuZ2VzIHwKfCBcYGdpdCBwdXNoXGAgfCBVcGxvYWQgY2hhbmdlcyB0byByZW1vdGUgfAoKIyMgTmV4dCBTdGVwcwoKMS4gTGVhcm4gYWJvdXQgcmVtb3RlIHJlcG9zaXRvcmllcwoyLiBFeHBsb3JlIGFkdmFuY2VkIEdpdCBmZWF0dXJlcwozLiBQcmFjdGljZSB3aXRoIHJlYWwgcHJvamVjdHMKNC4gQ29udHJpYnV0ZSB0byBvcGVuIHNvdXJjZQoKKipIYXBweSBjb2RpbmchKiog8J+agCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBcdXsxRjUwNH0gT3V0cHV0IEZvcm1hdHMifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ2hvb3NlIGJldHdlZW4gSFRNTCBhbmQgTWFya2Rvd24gb3V0cHV0IGZvcm1hdHMgZGVwZW5kaW5nIG9uIHlvdXIgbmVlZHMuIAogICAgICAgICAgUGVyZmVjdCBmb3Igc3RhdGljIHNpdGUgZ2VuZXJhdG9ycywgZG9jdW1lbnRhdGlvbiBzeXN0ZW1zLCBvciBhbnkgY29udGVudCBtYW5hZ2VtZW50IHdvcmtmbG93LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtY2FyZCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgICAgaWQ9ImVkaXRvci1tZWV0aW5nIgogICAgICAgICAgICAgIGxhYmVsPSJNZWV0aW5nIE5vdGVzIiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RydWN0dXJlZCBtZWV0aW5nIGRvY3VtZW50YXRpb24iCiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgICAgICAgIHZhbHVlPSI8aDI+UTQgUGxhbm5pbmcgTWVldGluZzwvaDI+PHA+PHN0cm9uZz5EYXRlOjwvc3Ryb25nPiBEZWNlbWJlciAxNSwgMjAyNDxicj48c3Ryb25nPkF0dGVuZGVlczo8L3N0cm9uZz4gUHJvZHVjdCBUZWFtLCBFbmdpbmVlcmluZywgRGVzaWduPC9wPjxoMz5BZ2VuZGEgSXRlbXM8L2gzPjxvbD48bGk+UmV2aWV3IFEzIGFjaGlldmVtZW50czwvbGk+PGxpPlNldCBRNCBvYmplY3RpdmVzPC9saT48bGk+UmVzb3VyY2UgYWxsb2NhdGlvbjwvbGk+PGxpPlRpbWVsaW5lIGRpc2N1c3Npb248L2xpPjwvb2w+PGgzPktleSBEZWNpc2lvbnM8L2gzPjx1bD48bGk+TGF1bmNoIG5ldyBkYXNoYm9hcmQgZmVhdHVyZSBieSBlbmQgb2YgSmFudWFyeTwvbGk+PGxpPkluY3JlYXNlIGVuZ2luZWVyaW5nIHRlYW0gYnkgMiBkZXZlbG9wZXJzPC9saT48bGk+SW1wbGVtZW50IHdlZWtseSBkZXNpZ24gcmV2aWV3czwvbGk+PC91bD48YmxvY2txdW90ZT4mcXVvdDtGb2N1cyBvbiB1c2VyIGV4cGVyaWVuY2UgaW1wcm92ZW1lbnRzIGJhc2VkIG9uIFEzIGZlZWRiYWNrJnF1b3Q7IC0gUHJvZHVjdCBNYW5hZ2VyPC9ibG9ja3F1b3RlPjxoMz5BY3Rpb24gSXRlbXM8L2gzPjx1bD48bGk+U2FyYWg6IENyZWF0ZSBkZXRhaWxlZCBwcm9qZWN0IHRpbWVsaW5lPC9saT48bGk+TWlrZTogRHJhZnQgdGVjaG5pY2FsIHJlcXVpcmVtZW50czwvbGk+PGxpPkxpc2E6IFNjaGVkdWxlIHVzZXIgcmVzZWFyY2ggc2Vzc2lvbnM8L2xpPjwvdWw+PGhyPjxwPk5leHQgbWVldGluZzogSmFudWFyeSA1LCAyMDI1PC9wPiIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNob3ctaHRtbC1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBIVE1MIE91dHB1dDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHByZSBpZD0ib3V0cHV0LXByZXZpZXctaHRtbCIgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICAgIGlkPSJlZGl0b3ItcmVjaXBlIgogICAgICAgICAgICAgIGxhYmVsPSJSZWNpcGUgQmxvZyBQb3N0IiAKICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iRm9vZCBibG9nIHdpdGggbWl4ZWQgY29udGVudCIKICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgICAgIHZhbHVlPSIjIFVsdGltYXRlIENob2NvbGF0ZSBDaGlwIENvb2tpZXMKClRoZXJlJ3Mgbm90aGluZyBxdWl0ZSBsaWtlIHRoZSBzbWVsbCBvZiBmcmVzaGx5IGJha2VkIGNob2NvbGF0ZSBjaGlwIGNvb2tpZXMuIFRoaXMgcmVjaXBlIGhhcyBiZWVuIHBlcmZlY3RlZCBvdmVyIHllYXJzIG9mIHRlc3RpbmchCgojIyBJbmdyZWRpZW50cwoKLSAywrwgY3VwcyBhbGwtcHVycG9zZSBmbG91cgotIDEgdHNwIGJha2luZyBzb2RhCi0gMSB0c3Agc2FsdAotIDEgY3VwIGJ1dHRlciwgc29mdGVuZWQKLSDCviBjdXAgZ3JhbnVsYXRlZCBzdWdhcgotIMK+IGN1cCBwYWNrZWQgYnJvd24gc3VnYXIKLSAyIGxhcmdlIGVnZ3MKLSAyIHRzcCB2YW5pbGxhIGV4dHJhY3QKLSAyIGN1cHMgY2hvY29sYXRlIGNoaXBzCgojIyBJbnN0cnVjdGlvbnMKCiMjIyBTdGVwIDE6IFByZXBhcmF0aW9uCgpQcmVoZWF0IHlvdXIgb3ZlbiB0byAqKjM3NcKwRiAoMTkwwrBDKSoqLiBUaGlzIHRlbXBlcmF0dXJlIGlzIGNydWNpYWwgZm9yIGFjaGlldmluZyB0aGUgcGVyZmVjdCB0ZXh0dXJlLgoKIyMjIFN0ZXAgMjogTWl4IERyeSBJbmdyZWRpZW50cwoKSW4gYSBtZWRpdW0gYm93bCwgd2hpc2sgdG9nZXRoZXI6CgoxLiBGbG91cgoyLiBCYWtpbmcgc29kYQozLiBTYWx0CgojIyMgU3RlcCAzOiBDcmVhbSBCdXR0ZXIgYW5kIFN1Z2FycwoKXGBcYFxgCkNyZWFtIGJ1dHRlciBhbmQgc3VnYXJzIGZvciAzLTQgbWludXRlcwp1bnRpbCBsaWdodCBhbmQgZmx1ZmZ5ClxgXGBcYAoKPiAqKlBybyB0aXA6KiogUm9vbSB0ZW1wZXJhdHVyZSBpbmdyZWRpZW50cyBtaXggYmV0dGVyIGFuZCBjcmVhdGUgYSBtb3JlIHVuaWZvcm0gZG91Z2guCgojIyMgU3RlcCA0OiBBZGQgV2V0IEluZ3JlZGllbnRzCgpCZWF0IGluIGVnZ3Mgb25lIGF0IGEgdGltZSwgdGhlbiBhZGQgdmFuaWxsYSBleHRyYWN0LgoKIyMjIFN0ZXAgNTogQ29tYmluZSBhbmQgQmFrZQoKR3JhZHVhbGx5IGJsZW5kIGluIGZsb3VyIG1peHR1cmUsIHRoZW4gc3RpciBpbiBjaG9jb2xhdGUgY2hpcHMuIERyb3Agcm91bmRlZCB0YWJsZXNwb29ucyBvbnRvIHVuZ3JlYXNlZCBjb29raWUgc2hlZXRzLgoKLS0tCgoqKkJha2luZyB0aW1lOioqIDktMTEgbWludXRlcyBvciB1bnRpbCBnb2xkZW4gYnJvd24KCioqWWllbGQ6KiogQWJvdXQgNSBkb3plbiBjb29raWVzIgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1hY3Rpb25zIj4KICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2hvdy1tYXJrZG93bi1vdXRwdXQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+U2hvdyBNYXJrZG93biBPdXRwdXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgaWQ9Im91dHB1dC1wcmV2aWV3LW1hcmtkb3duIiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGFyaWEtbGl2ZT0icG9saXRlIj48L3ByZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gXHV7MUYzQTh9IEFkdmFuY2VkIEVkaXRpbmcifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgQ3JlYXRlIGNvbXBsZXggZG9jdW1lbnRzIHdpdGggbWl4ZWQgY29udGVudCB0eXBlcy4gVGhlIGVkaXRvciBoYW5kbGVzIGFsbCBmb3JtYXR0aW5nIHNlYW1sZXNzbHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICBpZD0iZWRpdG9yLXRlY2huaWNhbCIKICAgICAgICAgIGxhYmVsPSJUZWNobmljYWwgRG9jdW1lbnRhdGlvbiIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ3JlYXRlIHRlY2huaWNhbCBkb2NzIHdpdGggY29kZSBleGFtcGxlcyBhbmQgc3RydWN0dXJlZCBjb250ZW50IgogICAgICAgICAgdmFsdWU9IjxoMT5BUEkgRG9jdW1lbnRhdGlvbjwvaDE+PHA+V2VsY29tZSB0byBvdXIgQVBJIGRvY3VtZW50YXRpb24uIEJlbG93IHlvdSdsbCBmaW5kIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ugb3VyIGVuZHBvaW50cy48L3A+PGgyPkF1dGhlbnRpY2F0aW9uPC9oMj48cD5BbGwgQVBJIHJlcXVlc3RzIHJlcXVpcmUgYXV0aGVudGljYXRpb24gdXNpbmcgYW4gQVBJIGtleTo8L3A+PHByZT48Y29kZT5BdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZPC9jb2RlPjwvcHJlPjxoMj5FbmRwb2ludHM8L2gyPjxoMz5HRVQgL3VzZXJzPC9oMz48cD5SZXRyaWV2ZSBhIGxpc3Qgb2YgdXNlcnMgZnJvbSB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPmN1cmwgLVggR0VUIGh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3VzZXJzIFxcCiAgLUggJnF1b3Q7QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSZxdW90OzwvY29kZT48L3ByZT48YmxvY2txdW90ZT5Ob3RlOiBSYXRlIGxpbWl0aW5nIGFwcGxpZXMgdG8gYWxsIGVuZHBvaW50cy4gWW91IGNhbiBtYWtlIHVwIHRvIDEwMCByZXF1ZXN0cyBwZXIgbWludXRlLjwvYmxvY2txdW90ZT48aDM+UE9TVCAvdXNlcnM8L2gzPjxwPkNyZWF0ZSBhIG5ldyB1c2VyIGluIHRoZSBzeXN0ZW0uPC9wPjxwcmU+PGNvZGU+ewogICZxdW90O25hbWUmcXVvdDs6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICZxdW90O2VtYWlsJnF1b3Q7OiAmcXVvdDtqb2huQGV4YW1wbGUuY29tJnF1b3Q7LAogICZxdW90O3JvbGUmcXVvdDs6ICZxdW90O3VzZXImcXVvdDsKfTwvY29kZT48L3ByZT48aHI+PHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byBvdXIgY29tcGxldGUgZG9jdW1lbnRhdGlvbi48L3A+IgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIFx1MjY5OVx1RkUwRiBGb3JtIEludGVncmF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFNlYW1sZXNzbHkgaW50ZWdyYXRlcyB3aXRoIGRlZXMtZm9ybSBmb3IgY29tcGxldGUgZm9ybSBzb2x1dGlvbnMuIAogICAgICAgICAgQWxsIHN0YW5kYXJkIGZvcm0gZmVhdHVyZXMgbGlrZSB2YWxpZGF0aW9uLCByZXF1aXJlZCBmaWVsZHMsIGFuZCBkYXRhIGJpbmRpbmcgd29yayBvdXQgb2YgdGhlIGJveC4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIGxhYmVsPSJBcnRpY2xlIFRpdGxlIiAKICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgIHZhbHVlPSJIb3cgdG8gQnVpbGQgTW9kZXJuIFdlYiBBcHBsaWNhdGlvbnMiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcgCiAgICAgICAgICAgIGlkPSJlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIKICAgICAgICAgICAgbGFiZWw9IkFydGljbGUgQ29udGVudCIgCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXcml0ZSB5b3VyIGFydGljbGUgY29udGVudCBoZXJlIgogICAgICAgICAgICByZXF1aXJlZD0idHJ1ZSIKICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICBsYWJlbD0iVGFncyIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkFkZCByZWxldmFudCB0YWdzIGZvciB5b3VyIGFydGljbGUiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI4LiBcdXsxRjlFOX0gUHJvZ3JhbW1hdGljIEJsb2NrIENyZWF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb250ZW50IHByb2dyYW1tYXRpY2FsbHkgdXNpbmcgdGhlIGJsb2NrIEFQSSBmb3IgZHluYW1pYyBkb2N1bWVudCBnZW5lcmF0aW9uLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnCiAgICAgICAgICBpZD0iZWRpdG9yLXByb2dyYW1tYXRpYyIKICAgICAgICAgIGxhYmVsPSJQcm9ncmFtbWF0aWNhbGx5IEdlbmVyYXRlZCBDb250ZW50IgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgY29udGVudCB3YXMgY3JlYXRlZCB1c2luZyB0aGUgaW1wb3J0QmxvY2tzIEFQSSIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZXBvcnQiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlcG9ydAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1nZW5lcmF0ZS1yZWNpcGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEdlbmVyYXRlIFJlY2lwZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1jbGVhci1lZGl0b3IiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIENsZWFyIEVkaXRvcgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI5LiBcdXsxRjRFNH0gRXhwb3J0L0ltcG9ydCBGZWF0dXJlcyJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBUaGUgV1lTSVdZRyBlZGl0b3IgcHJvdmlkZXMgbXVsdGlwbGUgZXhwb3J0IGZvcm1hdHMgYW5kIGxvc3NsZXNzIHNhdmUvcmVzdG9yZSBjYXBhYmlsaXRpZXMgZm9yIG1heGltdW0gZmxleGliaWxpdHkuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBibG9ja3MiPgogICAgICAgICAgICA8c3Ryb25nPkxvc3NsZXNzIEJsb2Nrczwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYW5kIGltcG9ydCByYXcgYmxvY2sgc3RydWN0dXJlIGZvciBwZXJmZWN0IHJvdW5kLXRyaXAgZWRpdGluZzwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZXhwb3J0LWluZm8tY2FyZCBodG1sIj4KICAgICAgICAgICAgPHN0cm9uZz5IVE1MIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5HZXQgY2xlYW4sIHNlbWFudGljIEhUTUwgcmVnYXJkbGVzcyBvZiBvdXRwdXQgZm9ybWF0IHNldHRpbmc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgbWFya2Rvd24iPgogICAgICAgICAgICA8c3Ryb25nPk1hcmtkb3duIEV4cG9ydDwvc3Ryb25nPgogICAgICAgICAgICA8cD5FeHBvcnQgYXMgTWFya2Rvd24gZm9yIGRvY3MsIFJFQURNRXMsIGFuZCBzdGF0aWMgc2l0ZXM8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgc3RhdGUiPgogICAgICAgICAgICA8c3Ryb25nPlN0YXRlIE1hbmFnZW1lbnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+U2F2ZSBhbmQgcmVzdG9yZSBjb21wbGV0ZSBlZGl0b3Igc3RhdGUgaW5jbHVkaW5nIHNldHRpbmdzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZwogICAgICAgICAgaWQ9ImVkaXRvci1leHBvcnQiCiAgICAgICAgICBsYWJlbD0iRXhwb3J0IERlbW8gRWRpdG9yIgogICAgICAgICAgZGVzY3JpcHRpb249IlRyeSB0aGUgZXhwb3J0IGJ1dHRvbnMgYmVsb3cgdG8gc2VlIGRpZmZlcmVudCBvdXRwdXQgZm9ybWF0cyIKICAgICAgICAgIHZhbHVlPSI8aDE+U29mdHdhcmUgUmVsZWFzZSBOb3RlczwvaDE+PHA+PHN0cm9uZz5WZXJzaW9uIDIuNS4wPC9zdHJvbmc+IC0gUmVsZWFzZWQgRGVjZW1iZXIgMTUsIDIwMjQ8L3A+PGgyPvCfjokgTmV3IEZlYXR1cmVzPC9oMj48dWw+PGxpPkFkZGVkIGRhcmsgbW9kZSBzdXBwb3J0IGFjcm9zcyBhbGwgY29tcG9uZW50czwvbGk+PGxpPkltcGxlbWVudGVkIHJlYWwtdGltZSBjb2xsYWJvcmF0aW9uIGZlYXR1cmVzPC9saT48bGk+TmV3IGRhc2hib2FyZCBhbmFseXRpY3Mgd2lkZ2V0czwvbGk+PGxpPkV4cG9ydCBmdW5jdGlvbmFsaXR5IGZvciBhbGwgcmVwb3J0IHR5cGVzPC9saT48L3VsPjxoMj7wn5CbIEJ1ZyBGaXhlczwvaDI+PHVsPjxsaT5GaXhlZCBtZW1vcnkgbGVhayBpbiBkYXRhIHByb2Nlc3NpbmcgbW9kdWxlPC9saT48bGk+UmVzb2x2ZWQgYXV0aGVudGljYXRpb24gdGltZW91dCBpc3N1ZXM8L2xpPjxsaT5Db3JyZWN0ZWQgdGltZXpvbmUgaGFuZGxpbmcgaW4gc2NoZWR1bGVkIHRhc2tzPC9saT48L3VsPjxoMj7imqEgUGVyZm9ybWFuY2UgSW1wcm92ZW1lbnRzPC9oMj48YmxvY2txdW90ZT5QYWdlIGxvYWQgdGltZXMgcmVkdWNlZCBieSA0MCUgdGhyb3VnaCBsYXp5IGxvYWRpbmcgYW5kIGNvZGUgc3BsaXR0aW5nPC9ibG9ja3F1b3RlPjxoMj7wn5SnIFRlY2huaWNhbCBEZXRhaWxzPC9oMj48cHJlPjxjb2RlPi8vIE5ldyBBUEkgZW5kcG9pbnQgZm9yIGJhdGNoIG9wZXJhdGlvbnMKUE9TVCAvYXBpL3YyL2JhdGNoCnsKICAmcXVvdDtvcGVyYXRpb25zJnF1b3Q7OiBbCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7R0VUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvdXNlcnMvMTIzJnF1b3Q7IH0sCiAgICB7ICZxdW90O21ldGhvZCZxdW90OzogJnF1b3Q7UFVUJnF1b3Q7LCAmcXVvdDtwYXRoJnF1b3Q7OiAmcXVvdDsvc2V0dGluZ3MmcXVvdDssICZxdW90O2JvZHkmcXVvdDs6IHsuLi59IH0KICBdCn08L2NvZGU+PC9wcmU+PGgyPvCfkqEgTWlncmF0aW9uIEd1aWRlPC9oMj48b2w+PGxpPlVwZGF0ZSB5b3VyIGRlcGVuZGVuY2llcyB0byB0aGUgbGF0ZXN0IHZlcnNpb25zPC9saT48bGk+UnVuIGRhdGFiYXNlIG1pZ3JhdGlvbnM6IDxjb2RlPm5wbSBydW4gbWlncmF0ZTwvY29kZT48L2xpPjxsaT5DbGVhciBjYWNoZTogPGNvZGU+bnBtIHJ1biBjYWNoZTpjbGVhcjwvY29kZT48L2xpPjxsaT5SZXN0YXJ0IGFsbCBzZXJ2aWNlczwvbGk+PC9vbD48aHI+PHA+Rm9yIHF1ZXN0aW9ucyBvciBpc3N1ZXMsIHBsZWFzZSBjb250YWN0IHRoZSBkZXZlbG9wbWVudCB0ZWFtIG9yIGZpbGUgYSB0aWNrZXQgaW4gb3VyIGlzc3VlIHRyYWNrZXIuPC9wPiIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtYmxvY2tzIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgQmxvY2tzCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWV4cG9ydC1odG1sIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgYXMgSFRNTAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtbWFya2Rvd24iIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIEV4cG9ydCBhcyBNYXJrZG93bgogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zYXZlLXN0YXRlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBTYXZlIFN0YXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXJlc3RvcmUtc3RhdGUiIGNsYXNzPSJkZW1vLWJ1dHRvbiI+CiAgICAgICAgICAgIFJlc3RvcmUgU3RhdGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgJGE9YigoKT0+e30pO3ZhciBxMSxvND1iKCgpPT57JGEoKTtxMT1jbGFzc3tzdGF0aWMgSEVBRElOR19QQVRURVJOUz1be3BhdHRlcm46L14jW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMSJ9LHtwYXR0ZXJuOi9eIyNbXHNcdTAwQTBdJC8sdHlwZToiaGVhZGluZy0yIn0se3BhdHRlcm46L14jIyNbXHNcdTAwQTBdJC8sdHlwZToiaGVhZGluZy0zIn1dO3N0YXRpYyBMSVNUX1BBVFRFUk5TPVt7cGF0dGVybjovXlsqLV1bXHNcdTAwQTBdJC8sdHlwZToiYnVsbGV0In0se3BhdHRlcm46L14oXGQrKVwuW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifSx7cGF0dGVybjovXihcZCspXClbXHNcdTAwQTBdJC8sdHlwZToib3JkZXJlZCJ9XTtzdGF0aWMgUVVPVEVfUEFUVEVSTj0vXj5bXHNcdTAwQTBdJC87c3RhdGljIENPREVfUEFUVEVSTj0vXmBgYCQvO3N0YXRpYyBESVZJREVSX1BBVFRFUk5TPVsiLS0tIiwiKioqIiwiX19fIl07c3RhdGljIGNoZWNrSGVhZGluZ1Nob3J0Y3V0KGUpe2ZvcihsZXR7cGF0dGVybjphLHR5cGU6aX1vZiB0aGlzLkhFQURJTkdfUEFUVEVSTlMpaWYoYS50ZXN0KGUpKXJldHVybnt0eXBlOml9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja0xpc3RTaG9ydGN1dChlKXtmb3IobGV0e3BhdHRlcm46YSx0eXBlOml9b2YgdGhpcy5MSVNUX1BBVFRFUk5TKWlmKGEudGVzdChlKSlyZXR1cm57dHlwZToibGlzdCIsbGlzdFR5cGU6aX07cmV0dXJuIG51bGx9c3RhdGljIGNoZWNrUXVvdGVTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5RVU9URV9QQVRURVJOLnRlc3QoZSl9c3RhdGljIGNoZWNrQ29kZVNob3J0Y3V0KGUpe3JldHVybiB0aGlzLkNPREVfUEFUVEVSTi50ZXN0KGUpfXN0YXRpYyBjaGVja0RpdmlkZXJTaG9ydGN1dChlKXtyZXR1cm4gdGhpcy5ESVZJREVSX1BBVFRFUk5TLmluY2x1ZGVzKGUpfXN0YXRpYyBnZXRTbGFzaE1lbnVJdGVtcygpe3JldHVyblt7dHlwZToicGFyYWdyYXBoIixsYWJlbDoiUGFyYWdyYXBoIixpY29uOiJsdWNpZGU6cGlsY3JvdyJ9LHt0eXBlOiJoZWFkaW5nLTEiLGxhYmVsOiJIZWFkaW5nIDEiLGljb246Imx1Y2lkZTpoZWFkaW5nMSJ9LHt0eXBlOiJoZWFkaW5nLTIiLGxhYmVsOiJIZWFkaW5nIDIiLGljb246Imx1Y2lkZTpoZWFkaW5nMiJ9LHt0eXBlOiJoZWFkaW5nLTMiLGxhYmVsOiJIZWFkaW5nIDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyJ9LHt0eXBlOiJxdW90ZSIsbGFiZWw6IlF1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUifSx7dHlwZToiY29kZSIsbGFiZWw6IkNvZGUgQmxvY2siLGljb246Imx1Y2lkZTpmaWxlQ29kZSJ9LHt0eXBlOiJsaXN0IixsYWJlbDoiQnVsbGV0IExpc3QiLGljb246Imx1Y2lkZTpsaXN0In0se3R5cGU6ImltYWdlIixsYWJlbDoiSW1hZ2UiLGljb246Imx1Y2lkZTppbWFnZSJ9LHt0eXBlOiJkaXZpZGVyIixsYWJlbDoiRGl2aWRlciIsaWNvbjoibHVjaWRlOm1pbnVzIn0se3R5cGU6InlvdXR1YmUiLGxhYmVsOiJZb3VUdWJlIixpY29uOiJsdWNpZGU6eW91dHViZSJ9LHt0eXBlOiJtYXJrZG93biIsbGFiZWw6Ik1hcmtkb3duIixpY29uOiJsdWNpZGU6ZmlsZVRleHQifSx7dHlwZToiaHRtbCIsbGFiZWw6IkhUTUwiLGljb246Imx1Y2lkZTpjb2RlIn0se3R5cGU6ImF0dGFjaG1lbnQiLGxhYmVsOiJGaWxlIEF0dGFjaG1lbnQiLGljb246Imx1Y2lkZTpwYXBlcmNsaXAifV19c3RhdGljIGdlbmVyYXRlQmxvY2tJZCgpe3JldHVybmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YH19fSk7dmFyIElsLEtpLHR3LHhWPWIoKCk9Pnt1ZSgpO3VpKCk7RHQoKTskYSgpO280KCk7cWUoKTtJbD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEtpPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSx0dz0oKCk9PntsZXQgdD1baGUoImRlZXMtc2xhc2gtbWVudSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdO3ZhciBGPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtKKCldLGQ9W0ooKV0sbD1bSigpXSx5PVtKKCldLHg9W0ooKV0sSWwodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idmlzaWJsZSJpbiBrLGdldDprPT5rLnZpc2libGUsc2V0OihrLE4pPT57ay52aXNpYmxlPU59fSxtZXRhZGF0YTpffSxuLG8pLElsKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJwb3NpdGlvbiJpbiBrLGdldDprPT5rLnBvc2l0aW9uLHNldDooayxOKT0+e2sucG9zaXRpb249Tn19LG1ldGFkYXRhOl99LGMscCksSWwodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJmaWx0ZXIiaW4gayxnZXQ6az0+ay5maWx0ZXIsc2V0OihrLE4pPT57ay5maWx0ZXI9Tn19LG1ldGFkYXRhOl99LGYsZyksSWwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2VsZWN0ZWRJbmRleCJpbiBrLGdldDprPT5rLnNlbGVjdGVkSW5kZXgsc2V0OihrLE4pPT57ay5zZWxlY3RlZEluZGV4PU59fSxtZXRhZGF0YTpffSx2LG0pLElsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+Im1lbnVaSW5kZXgiaW4gayxnZXQ6az0+ay5tZW51WkluZGV4LHNldDooayxOKT0+e2subWVudVpJbmRleD1OfX0sbWV0YWRhdGE6X30sTSxTKSxJbChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLGEpLEY9aT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBpbnN0YW5jZTtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gRi5pbnN0YW5jZXx8KEYuaW5zdGFuY2U9bmV3IEYsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChGLmluc3RhbmNlKSksRi5pbnN0YW5jZX0jZT1LaSh0aGlzLG4sITEpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZpc2libGUoXyl7dGhpcy4jZT1ffSN0PShLaSh0aGlzLG8pLEtpKHRoaXMsYyx7eDowLHk6MH0pKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24oXyl7dGhpcy4jdD1ffSNhPShLaSh0aGlzLHApLEtpKHRoaXMsZiwiIikpO2dldCBmaWx0ZXIoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZmlsdGVyKF8pe3RoaXMuI2E9X30jaT0oS2kodGhpcyxnKSxLaSh0aGlzLHYsMCkpO2dldCBzZWxlY3RlZEluZGV4KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkSW5kZXgoXyl7dGhpcy4jaT1ffSNyPShLaSh0aGlzLG0pLEtpKHRoaXMsTSwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNyfXNldCBtZW51WkluZGV4KF8pe3RoaXMuI3I9X31jYWxsYmFjaz0oS2kodGhpcyxTKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51IHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHRyYW5zbGF0ZVkoLTJweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIsCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuc2xhc2gtbWVudS1pdGVtIC5pY29uIHsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIgLmljb24sCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0uc2VsZWN0ZWQgLmljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2lmKCF0aGlzLnZpc2libGUpcmV0dXJuIHdgYDt0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKTtsZXQgXz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9InNsYXNoLW1lbnUiIAogICAgICAgIHN0eWxlPSJsZWZ0OiAke3RoaXMucG9zaXRpb24ueH1weDsgdG9wOiAke3RoaXMucG9zaXRpb24ueX1weDsiCiAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgIGRhdGEtbWVudS10eXBlPSJzbGFzaCIKICAgICAgPgogICAgICAgICR7Xy5tYXAoKGssTik9PndgCiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2xhc2gtbWVudS1pdGVtICR7Tj09PXRoaXMuc2VsZWN0ZWRJbmRleD8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgZGF0YS1pdGVtLXR5cGU9IiR7ay50eXBlfSIKICAgICAgICAgICAgZGF0YS1pdGVtLWluZGV4PSIke059IgogICAgICAgICAgPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJpY29uIiAuaWNvbj0iJHtrLmljb259IiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3Bhbj4ke2subGFiZWx9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1nZXRGaWx0ZXJlZE1lbnVJdGVtcygpe3JldHVybiBxMS5nZXRTbGFzaE1lbnVJdGVtcygpLmZpbHRlcihrPT50aGlzLmZpbHRlcj09PSIifHxrLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5maWx0ZXIudG9Mb3dlckNhc2UoKSkpfXNlbGVjdEl0ZW0oXyl7dGhpcy5jYWxsYmFjayYmdGhpcy5jYWxsYmFjayhfKSx0aGlzLmhpZGUoKX1zaG93KF8sayl7dGhpcy5wb3NpdGlvbj1fLHRoaXMuY2FsbGJhY2s9ayx0aGlzLmZpbHRlcj0iIix0aGlzLnNlbGVjdGVkSW5kZXg9MCx0aGlzLm1lbnVaSW5kZXg9ZDEuZ2V0TmV4dFpJbmRleCgpLGQxLnJlZ2lzdGVyKHRoaXMsdGhpcy5tZW51WkluZGV4KSx0aGlzLnN0eWxlLnpJbmRleD10aGlzLm1lbnVaSW5kZXgudG9TdHJpbmcoKSx0aGlzLnZpc2libGU9ITB9aGlkZSgpe3RoaXMudmlzaWJsZT0hMSx0aGlzLmNhbGxiYWNrPW51bGwsdGhpcy5maWx0ZXI9IiIsdGhpcy5zZWxlY3RlZEluZGV4PTAsZDEudW5yZWdpc3Rlcih0aGlzKX11cGRhdGVGaWx0ZXIoXyl7dGhpcy5maWx0ZXI9Xyx0aGlzLnNlbGVjdGVkSW5kZXg9MH1uYXZpZ2F0ZShfKXtsZXQgaz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7Xz09PSJkb3duIj90aGlzLnNlbGVjdGVkSW5kZXg9KHRoaXMuc2VsZWN0ZWRJbmRleCsxKSVrLmxlbmd0aDp0aGlzLnNlbGVjdGVkSW5kZXg9dGhpcy5zZWxlY3RlZEluZGV4PT09MD9rLmxlbmd0aC0xOnRoaXMuc2VsZWN0ZWRJbmRleC0xfXNlbGVjdEN1cnJlbnQoKXtsZXQgXz10aGlzLmdldEZpbHRlcmVkTWVudUl0ZW1zKCk7X1t0aGlzLnNlbGVjdGVkSW5kZXhdJiZ0aGlzLnNlbGVjdEl0ZW0oX1t0aGlzLnNlbGVjdGVkSW5kZXhdLnR5cGUpfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixfPT57bGV0IGs9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO2smJmsuY29udGFpbnMoXy50YXJnZXQpJiYoXy5wcmV2ZW50RGVmYXVsdCgpLF8uc3RvcFByb3BhZ2F0aW9uKCkpfSksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsXz0+e2xldCBOPV8udGFyZ2V0LmNsb3Nlc3QoIi5zbGFzaC1tZW51LWl0ZW0iKTtpZihOKXtfLnByZXZlbnREZWZhdWx0KCksXy5zdG9wUHJvcGFnYXRpb24oKTtsZXQgTD1OLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLXR5cGUiKTtMJiZ0aGlzLnNlbGVjdEl0ZW0oTCl9fSksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixfPT57bGV0IE49Xy50YXJnZXQuY2xvc2VzdCgiLnNsYXNoLW1lbnUtaXRlbSIpO2lmKE4pe2xldCBMPXBhcnNlSW50KE4uZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0taW5kZXgiKXx8IjAiLDEwKTt0aGlzLnNlbGVjdGVkSW5kZXg9TH19LCEwKSx0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixfPT57bGV0IGs9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2xhc2gtbWVudSIpO2smJmsuY29udGFpbnMoXy50YXJnZXQpJiYoXy5wcmV2ZW50RGVmYXVsdCgpLF8uc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje0tpKGksYSl9fTtyZXR1cm4gRj1pfSkoKX0pO3ZhciBSZSxqcj1iKCgpPT57UmU9Y2xhc3N7c3RhdGljIGdldFNlbGVjdGlvbkluZm8oLi4uZSl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGNvbnNvbGUubG9nKCJXeXNpd3lnU2VsZWN0aW9uLmdldFNlbGVjdGlvbkluZm8gLSBzZWxlY3Rpb246IixhLCJyYW5nZUNvdW50OiIsYT8ucmFuZ2VDb3VudCksIWEpcmV0dXJuIG51bGw7aWYoImdldENvbXBvc2VkUmFuZ2VzImluIGEmJnR5cGVvZiBhLmdldENvbXBvc2VkUmFuZ2VzPT0iZnVuY3Rpb24iKXtjb25zb2xlLmxvZygiVXNpbmcgZ2V0Q29tcG9zZWRSYW5nZXMgd2l0aCIsZS5sZW5ndGgsInNoYWRvdyByb290cyIpO3RyeXtsZXQgaT1hLmdldENvbXBvc2VkUmFuZ2VzKHtzaGFkb3dSb290czplfSk7aWYoY29uc29sZS5sb2coImdldENvbXBvc2VkUmFuZ2VzIHJldHVybmVkIixpLmxlbmd0aCwicmFuZ2VzIiksaS5sZW5ndGg+MCl7bGV0IHI9aVswXTtyZXR1cm57c3RhcnRDb250YWluZXI6ci5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpyLnN0YXJ0T2Zmc2V0LGVuZENvbnRhaW5lcjpyLmVuZENvbnRhaW5lcixlbmRPZmZzZXQ6ci5lbmRPZmZzZXQsY29sbGFwc2VkOnIuY29sbGFwc2VkfX19Y2F0Y2goaSl7Y29uc29sZS53YXJuKCJnZXRDb21wb3NlZFJhbmdlcyBmYWlsZWQsIGZhbGxpbmcgYmFjayB0byBnZXRSYW5nZUF0OiIsaSl9fWVsc2UgY29uc29sZS5sb2coImdldENvbXBvc2VkUmFuZ2VzIG5vdCBhdmFpbGFibGUsIHVzaW5nIGZhbGxiYWNrIik7aWYoYS5yYW5nZUNvdW50PjApe2xldCBpPWEuZ2V0UmFuZ2VBdCgwKTtyZXR1cm57c3RhcnRDb250YWluZXI6aS5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDppLnN0YXJ0T2Zmc2V0LGVuZENvbnRhaW5lcjppLmVuZENvbnRhaW5lcixlbmRPZmZzZXQ6aS5lbmRPZmZzZXQsY29sbGFwc2VkOmkuY29sbGFwc2VkfX1yZXR1cm4gbnVsbH1zdGF0aWMgaXNTZWxlY3Rpb25JbkVsZW1lbnQoZSxhKXtsZXQgaT1hP3RoaXMuZ2V0U2VsZWN0aW9uSW5mbyhhKTp0aGlzLmdldFNlbGVjdGlvbkluZm8oKTtyZXR1cm4gaT9lLmNvbnRhaW5zKGkuc3RhcnRDb250YWluZXIpfHxlLmNvbnRhaW5zKGkuZW5kQ29udGFpbmVyKTohMX1zdGF0aWMgZ2V0U2VsZWN0ZWRUZXh0KCl7bGV0IGU9d2luZG93LmdldFNlbGVjdGlvbigpO3JldHVybiBlP2UudG9TdHJpbmcoKToiIn1zdGF0aWMgY3JlYXRlUmFuZ2VGcm9tSW5mbyhlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiBhLnNldFN0YXJ0KGUuc3RhcnRDb250YWluZXIsZS5zdGFydE9mZnNldCksYS5zZXRFbmQoZS5lbmRDb250YWluZXIsZS5lbmRPZmZzZXQpLGF9c3RhdGljIHNldFNlbGVjdGlvbkZyb21SYW5nZShlKXtsZXQgYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7YSYmKGEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZShlKSl9c3RhdGljIGdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGUsLi4uYSl7bGV0IGk9YS5sZW5ndGg+MD90aGlzLmdldFNlbGVjdGlvbkluZm8oLi4uYSk6dGhpcy5nZXRTZWxlY3Rpb25JbmZvKCk7aWYoIWl8fCFpLmNvbGxhcHNlZClyZXR1cm4gbnVsbDt0cnl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZihyLnNlbGVjdE5vZGVDb250ZW50cyhlKSx0aGlzLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGUsaS5zdGFydENvbnRhaW5lcikpcmV0dXJuIHIuc2V0RW5kKGkuc3RhcnRDb250YWluZXIsaS5zdGFydE9mZnNldCksci50b1N0cmluZygpLmxlbmd0aDt7bGV0IG49ZS50ZXh0Q29udGVudHx8IiIsbz1pLnN0YXJ0Q29udGFpbmVyLnRleHRDb250ZW50fHwiIjtyZXR1cm4gaS5zdGFydE9mZnNldD09PTA/MDppLnN0YXJ0T2Zmc2V0PT09by5sZW5ndGg/bi5sZW5ndGg6KGNvbnNvbGUud2FybigiU2VsZWN0aW9uIGNvbnRhaW5lciBub3Qgd2l0aGluIGVsZW1lbnQsIHVzaW5nIHRleHQgbWF0Y2hpbmcgZmFsbGJhY2siKSxpLnN0YXJ0T2Zmc2V0KX19Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUud2FybigiRmFpbGVkIHRvIGdldCBjdXJzb3IgcG9zaXRpb246IixyKSxudWxsfX1zdGF0aWMgZ2V0Q3Vyc29yUG9zaXRpb25Gcm9tUG9pbnQoZSxhLGksLi4ucil7aWYoImNhcmV0UG9zaXRpb25Gcm9tUG9pbnQiaW4gZG9jdW1lbnQmJmRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQpe2xldCBzPW51bGw7dHJ5e3M9ZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludChlLGEsLi4ucil9Y2F0Y2h7cz1kb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KGUsYSl9aWYocyYmaS5jb250YWlucyhzLm9mZnNldE5vZGUpKXJldHVybiB0aGlzLmdldE9mZnNldEluRWxlbWVudChzLm9mZnNldE5vZGUscy5vZmZzZXQsaSl9aWYoImNhcmV0UmFuZ2VGcm9tUG9pbnQiaW4gZG9jdW1lbnQpe2xldCBzPWRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQoZSxhKTtpZihzJiZpLmNvbnRhaW5zKHMuc3RhcnRDb250YWluZXIpKXJldHVybiB0aGlzLmdldE9mZnNldEluRWxlbWVudChzLnN0YXJ0Q29udGFpbmVyLHMuc3RhcnRPZmZzZXQsaSl9cmV0dXJuIG51bGx9c3RhdGljIGdldE9mZnNldEluRWxlbWVudChlLGEsaSl7bGV0IHI9MCxzPSExLG49ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihpLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLG87Zm9yKDtvPW4ubmV4dE5vZGUoKTspaWYobz09PWUpe3IrPWEscz0hMDticmVha31lbHNlIHIrPW8udGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gcz9yOjB9c3RhdGljIHNldEN1cnNvclBvc2l0aW9uKGUsYSl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihlLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwpLHI9MCxzPW51bGwsbj0wO2Zvcig7aS5uZXh0Tm9kZSgpOyl7bGV0IG89aS5jdXJyZW50Tm9kZSxkPW8udGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihyK2Q+PWEpe3M9byxuPWEtcjticmVha31yKz1kfWlmKHMpe2xldCBvPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7by5zZXRTdGFydChzLG4pLG8uY29sbGFwc2UoITApLHRoaXMuc2V0U2VsZWN0aW9uRnJvbVJhbmdlKG8pfX1zdGF0aWMgY29udGFpbnNBY3Jvc3NTaGFkb3dET00oZSxhKXtpZighZXx8IWEpcmV0dXJuITE7bGV0IGk9YTtmb3IoO2k7KXtpZihpPT09ZSlyZXR1cm4hMDtpZihpLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFJiZpLmhvc3Qpe2xldCByPWk7aWYoci5jb250YWlucyhlKSlyZXR1cm4hMTtpPXIuaG9zdH1lbHNlIGk9aS5wYXJlbnROb2RlfXJldHVybiExfX19KTt2YXIgUnMsd1Y9YigoKT0+e3VlKCk7anIoKTtScz1jbGFzc3tzdGF0aWMgZm9ybWF0QnV0dG9ucz1be2NvbW1hbmQ6ImJvbGQiLGljb246IkIiLGxhYmVsOiJCb2xkIixzaG9ydGN1dDoiXHUyMzE4QiJ9LHtjb21tYW5kOiJpdGFsaWMiLGljb246IkkiLGxhYmVsOiJJdGFsaWMiLHNob3J0Y3V0OiJcdTIzMThJIn0se2NvbW1hbmQ6InVuZGVybGluZSIsaWNvbjoiVSIsbGFiZWw6IlVuZGVybGluZSIsc2hvcnRjdXQ6Ilx1MjMxOFUifSx7Y29tbWFuZDoic3RyaWtlVGhyb3VnaCIsaWNvbjoiU1x1MDMzNiIsbGFiZWw6IlN0cmlrZXRocm91Z2gifSx7Y29tbWFuZDoiY29kZSIsaWNvbjoieyB9IixsYWJlbDoiSW5saW5lIENvZGUifSx7Y29tbWFuZDoibGluayIsaWNvbjoiXHV7MUY1MTd9IixsYWJlbDoiTGluayIsc2hvcnRjdXQ6Ilx1MjMxOEsifV07c3RhdGljIHJlbmRlckZvcm1hdHRpbmdNZW51KGUsYSl7cmV0dXJuIHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImZvcm1hdHRpbmctbWVudSIgCiAgICAgICAgc3R5bGU9InRvcDogJHtlLnl9cHg7IGxlZnQ6ICR7ZS54fXB4OyIKICAgICAgICBAbW91c2Vkb3duPSIke2k9PntpLnByZXZlbnREZWZhdWx0KCksaS5zdG9wUHJvcGFnYXRpb24oKX19IgogICAgICAgIEBjbGljaz0iJHtpPT5pLnN0b3BQcm9wYWdhdGlvbigpfSIKICAgICAgPgogICAgICAgICR7dGhpcy5mb3JtYXRCdXR0b25zLm1hcChpPT53YAogICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgY2xhc3M9ImZvcm1hdC1idXR0b24gJHtpLmNvbW1hbmR9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PmEoaS5jb21tYW5kKX0iCiAgICAgICAgICAgIHRpdGxlPSIke2kubGFiZWx9JHtpLnNob3J0Y3V0P2AgKCR7aS5zaG9ydGN1dH0pYDoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke2kuY29tbWFuZD09PSJjb2RlIj8iY29kZS1pY29uIjoiIn0iPiR7aS5pY29ufTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljIGFwcGx5Rm9ybWF0KGUsYSxpLHIpe2xldCBzO2lmKGkpcz1pO2Vsc2V7bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFufHxuLnJhbmdlQ291bnQ9PT0wKXJldHVybiExO3M9bi5nZXRSYW5nZUF0KDApfXN3aXRjaChlKXtjYXNlImJvbGQiOnRoaXMud3JhcFNlbGVjdGlvbihzLCJzdHJvbmciKTticmVhaztjYXNlIml0YWxpYyI6dGhpcy53cmFwU2VsZWN0aW9uKHMsImVtIik7YnJlYWs7Y2FzZSJ1bmRlcmxpbmUiOnRoaXMud3JhcFNlbGVjdGlvbihzLCJ1Iik7YnJlYWs7Y2FzZSJzdHJpa2VUaHJvdWdoIjp0aGlzLndyYXBTZWxlY3Rpb24ocywicyIpO2JyZWFrO2Nhc2UiY29kZSI6dGhpcy53cmFwU2VsZWN0aW9uKHMsImNvZGUiKTticmVhaztjYXNlImxpbmsiOmlmKCFhKXJldHVybiExO3RoaXMud3JhcFNlbGVjdGlvbldpdGhMaW5rKHMsYSk7YnJlYWt9aWYociYmci5sZW5ndGg+MClSZS5zZXRTZWxlY3Rpb25Gcm9tUmFuZ2Uocyk7ZWxzZXtsZXQgbj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7biYmKG4ucmVtb3ZlQWxsUmFuZ2VzKCksbi5hZGRSYW5nZShzKSl9cmV0dXJuITB9c3RhdGljIHdyYXBTZWxlY3Rpb24oZSxhKXtsZXQgaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWkpcmV0dXJuO2lmKHRoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcoZSxhKSl0aGlzLnJlbW92ZVRhZ0Zyb21TZWxlY3Rpb24oZSxhKTtlbHNle2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYSk7dHJ5e2xldCBuPWUuZXh0cmFjdENvbnRlbnRzKCk7cy5hcHBlbmRDaGlsZChuKSxlLmluc2VydE5vZGUocyksZS5zZWxlY3ROb2RlQ29udGVudHMocyksaS5yZW1vdmVBbGxSYW5nZXMoKSxpLmFkZFJhbmdlKGUpfWNhdGNoKG4pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB3cmFwIHNlbGVjdGlvbjoiLG4pfX19c3RhdGljIHNlbGVjdGlvbkNvbnRhaW5zVGFnKGUsYSl7bGV0IGk9ZS5zdGFydENvbnRhaW5lcjtmb3IoO2kmJmkhPT1lLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihpLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmkudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09YSlyZXR1cm4hMDtpPWkucGFyZW50Tm9kZX1mb3IoaT1lLmVuZENvbnRhaW5lcjtpJiZpIT09ZS5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoaS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZpLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PWEpcmV0dXJuITA7aT1pLnBhcmVudE5vZGV9bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikscz1lLmNsb25lQ29udGVudHMoKTtyZXR1cm4gci5hcHBlbmRDaGlsZChzKSxyLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpLmxlbmd0aD4wfXN0YXRpYyByZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsYSl7bGV0IGk9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFpKXJldHVybjtsZXQgcj1lLmNsb25lUmFuZ2UoKSxzPWUuc3RhcnRDb250YWluZXIsbj1udWxsO2Zvcig7cyYmcyE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKHMubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmcy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1hKXtuPXM7YnJlYWt9cz1zLnBhcmVudE5vZGV9bGV0IG89ZS5lbmRDb250YWluZXIsZD1udWxsO2Zvcig7byYmbyE9PWUuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKG8ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmby50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1hKXtkPW87YnJlYWt9bz1vLnBhcmVudE5vZGV9biYmci5zZXRTdGFydEJlZm9yZShuKSxkJiZyLnNldEVuZEFmdGVyKGQpO2xldCBjPXIuZXh0cmFjdENvbnRlbnRzKCkscD10aGlzLnJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQoYyxhKTtyLmluc2VydE5vZGUocCk7bGV0IGw9W10sZj1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHAsTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCksZztmb3IoO2c9Zi5uZXh0Tm9kZSgpOylsLnB1c2goZyk7aWYobC5sZW5ndGg+MCl7bGV0IHk9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTt5LnNldFN0YXJ0KGxbMF0sMCkseS5zZXRFbmQobFtsLmxlbmd0aC0xXSxsW2wubGVuZ3RoLTFdLnRleHRDb250ZW50Py5sZW5ndGh8fDApLGkucmVtb3ZlQWxsUmFuZ2VzKCksaS5hZGRSYW5nZSh5KX19c3RhdGljIHJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQoZSxhKXtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmFwcGVuZENoaWxkKGUpO2xldCByPWkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk7QXJyYXkuZnJvbShyKS5mb3JFYWNoKG89PntsZXQgZD1vLnBhcmVudE5vZGU7aWYoZCl7Zm9yKDtvLmZpcnN0Q2hpbGQ7KWQuaW5zZXJ0QmVmb3JlKG8uZmlyc3RDaGlsZCxvKTtkLnJlbW92ZUNoaWxkKG8pfX0pO2xldCBuPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IoO2kuZmlyc3RDaGlsZDspbi5hcHBlbmRDaGlsZChpLmZpcnN0Q2hpbGQpO3JldHVybiBufXN0YXRpYyB3cmFwU2VsZWN0aW9uV2l0aExpbmsoZSxhKXtsZXQgaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWkpcmV0dXJuO3RoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcoZSwiYSIpJiYodGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKGUsImEiKSxpLnJhbmdlQ291bnQ+MCYmKGU9aS5nZXRSYW5nZUF0KDApKSk7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3IuaHJlZj1hLHIudGFyZ2V0PSJfYmxhbmsiLHIucmVsPSJub29wZW5lciBub3JlZmVycmVyIjt0cnl7bGV0IHM9ZS5leHRyYWN0Q29udGVudHMoKTtyLmFwcGVuZENoaWxkKHMpLGUuaW5zZXJ0Tm9kZShyKSxlLnNlbGVjdE5vZGVDb250ZW50cyhyKSxpLnJlbW92ZUFsbFJhbmdlcygpLGkuYWRkUmFuZ2UoZSl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBsaW5rOiIscyl9fXN0YXRpYyBnZXRTZWxlY3Rpb25Db29yZGluYXRlcyguLi5lKXtsZXQgYT1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmUpO2lmKGNvbnNvbGUubG9nKCJnZXRTZWxlY3Rpb25Db29yZGluYXRlcyAtIHNlbGVjdGlvbkluZm86IixhKSwhYSlyZXR1cm4gY29uc29sZS5sb2coIk5vIHNlbGVjdGlvbiBpbmZvIGF2YWlsYWJsZSIpLG51bGw7bGV0IHI9UmUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhhKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihjb25zb2xlLmxvZygiUmFuZ2UgcmVjdDoiLHIpLHIud2lkdGg9PT0wJiZyLmhlaWdodD09PTApe2lmKGNvbnNvbGUubG9nKCJSZWN0IHdpZHRoIGFuZCBoZWlnaHQgYXJlIDAsIHRyeWluZyBkaWZmZXJlbnQgYXBwcm9hY2giKSwiY2FyZXRQb3NpdGlvbkZyb21Qb2ludCJpbiBkb2N1bWVudCl7bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKG4mJm4ucmFuZ2VDb3VudD4wKXtsZXQgbz1uLmdldFJhbmdlQXQoMCksZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7ZC50ZXh0Q29udGVudD0iXHUyMDBCIixvLmluc2VydE5vZGUoZCk7bGV0IGM9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihkLnJlbW92ZSgpLGMud2lkdGg+MHx8Yy5oZWlnaHQ+MCl7bGV0IHA9e3g6Yy5sZWZ0LHk6TWF0aC5tYXgoNDUsYy50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlVzZWQgc3BhbiB0cmljayBmb3IgY29vcmRzOiIscCkscH19fXJldHVybiBudWxsfWxldCBzPXt4OnIubGVmdCtyLndpZHRoLzIseTpNYXRoLm1heCg0NSxyLnRvcC00NSl9O3JldHVybiBjb25zb2xlLmxvZygiUmV0dXJuaW5nIGNvb3JkczoiLHMpLHN9fX0pO3ZhciBhdyxsNCxpdyxNVj1iKCgpPT57dWUoKTt1aSgpO3dWKCk7cWUoKTthdz1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LGw0PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxpdz0oKCk9PntsZXQgdD1baGUoImRlZXMtZm9ybWF0dGluZy1tZW51IildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB2PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0ooKV0sZD1bSigpXSxsPVtKKCldLGF3KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+InZpc2libGUiaW4gbSxnZXQ6bT0+bS52aXNpYmxlLHNldDoobSx4KT0+e20udmlzaWJsZT14fX0sbWV0YWRhdGE6dn0sbixvKSxhdyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczptPT4icG9zaXRpb24iaW4gbSxnZXQ6bT0+bS5wb3NpdGlvbixzZXQ6KG0seCk9PnttLnBvc2l0aW9uPXh9fSxtZXRhZGF0YTp2fSxjLHApLGF3KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudVpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bT0+Im1lbnVaSW5kZXgiaW4gbSxnZXQ6bT0+bS5tZW51WkluZGV4LHNldDoobSx4KT0+e20ubWVudVpJbmRleD14fX0sbWV0YWRhdGE6dn0sZixnKSxhdyhudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLGEpLHk9aT1lLnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBpbnN0YW5jZTtzdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4geS5pbnN0YW5jZXx8KHkuaW5zdGFuY2U9bmV3IHksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh5Lmluc3RhbmNlKSkseS5pbnN0YW5jZX0jZT1sNCh0aGlzLG4sITEpO2dldCB2aXNpYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZpc2libGUodil7dGhpcy4jZT12fSN0PShsNCh0aGlzLG8pLGw0KHRoaXMsYyx7eDowLHk6MH0pKTtnZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zaXRpb24odil7dGhpcy4jdD12fSNhPShsNCh0aGlzLHApLGw0KHRoaXMsZiwxZTMpKTtnZXQgbWVudVpJbmRleCgpe3JldHVybiB0aGlzLiNhfXNldCBtZW51WkluZGV4KHYpe3RoaXMuI2E9dn1jYWxsYmFjaz0obDQodGhpcyxnKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5mb3JtYXR0aW5nLW1lbnUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNjI2MjYiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjNDA0MDQwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKDVweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzMzMzMzMyIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDY2Y2MiLCIjNGQ5NGZmIil9OwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLmJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLml0YWxpYyB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi51bmRlcmxpbmUgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbiAuY29kZS1pY29uIHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLnZpc2libGU/KHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLHdgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImZvcm1hdHRpbmctbWVudSIgCiAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wb3NpdGlvbi54fXB4OyB0b3A6ICR7dGhpcy5wb3NpdGlvbi55fXB4OyIKICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgZGF0YS1tZW51LXR5cGU9ImZvcm1hdHRpbmciCiAgICAgID4KICAgICAgICAke1JzLmZvcm1hdEJ1dHRvbnMubWFwKHY9PndgCiAgICAgICAgICA8YnV0dG9uIAogICAgICAgICAgICBjbGFzcz0iZm9ybWF0LWJ1dHRvbiAke3YuY29tbWFuZH0iCiAgICAgICAgICAgIGRhdGEtY29tbWFuZD0iJHt2LmNvbW1hbmR9IgogICAgICAgICAgICB0aXRsZT0iJHt2LmxhYmVsfSR7di5zaG9ydGN1dD9gICgke3Yuc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHt2LmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke3YuaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgKTp3YGB9YXBwbHlGb3JtYXQodil7dGhpcy5jYWxsYmFjayYmdGhpcy5jYWxsYmFjayh2KSx2PT09ImxpbmsiJiZ0aGlzLmhpZGUoKX1zaG93KHYsbSl7Y29uc29sZS5sb2coIkZvcm1hdHRpbmdNZW51LnNob3cgY2FsbGVkOiIse3Bvc2l0aW9uOnYsdmlzaWJsZTp0aGlzLnZpc2libGV9KSx0aGlzLnBvc2l0aW9uPXYsdGhpcy5jYWxsYmFjaz1tLHRoaXMubWVudVpJbmRleD1kMS5nZXROZXh0WkluZGV4KCksZDEucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLHRoaXMudmlzaWJsZT0hMH1oaWRlKCl7dGhpcy52aXNpYmxlPSExLHRoaXMuY2FsbGJhY2s9bnVsbCxkMS51bnJlZ2lzdGVyKHRoaXMpfXVwZGF0ZVBvc2l0aW9uKHYpe3RoaXMucG9zaXRpb249dn1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdj0+e2xldCBtPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO20mJm0uY29udGFpbnModi50YXJnZXQpJiYodi5wcmV2ZW50RGVmYXVsdCgpLHYuc3RvcFByb3BhZ2F0aW9uKCkpfSksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdj0+e2xldCB4PXYudGFyZ2V0LmNsb3Nlc3QoIi5mb3JtYXQtYnV0dG9uIik7aWYoeCl7di5wcmV2ZW50RGVmYXVsdCgpLHYuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IE09eC5nZXRBdHRyaWJ1dGUoImRhdGEtY29tbWFuZCIpO00mJnRoaXMuYXBwbHlGb3JtYXQoTSl9fSksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdj0+e2xldCBtPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO20mJm0uY29udGFpbnModi50YXJnZXQpJiYodi5wcmV2ZW50RGVmYXVsdCgpLHYuc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje2w0KGksYSl9fTtyZXR1cm4geT1pfSkoKX0pO3ZhciBObD1iKCgpPT57dWUoKTskYSgpO3hWKCk7TVYoKX0pO3ZhciBUOCxydz1iKCgpPT57VDg9WyJKYXZhU2NyaXB0IiwiVHlwZVNjcmlwdCIsIlB5dGhvbiIsIkphdmEiLCJDKysiLCJDIyIsIkdvIiwiUnVzdCIsIkhUTUwiLCJDU1MiLCJTUUwiLCJTaGVsbCIsIkpTT04iLCJZQU1MIiwiTWFya2Rvd24iLCJQbGFpbiBUZXh0Il19KTt2YXIgelYsbWd0PWIoKCk9Pnt1ZSgpO3pWPVFgCiAgOmhvc3QgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXIgewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgbWluLWhlaWdodDogMjAwcHg7CiAgICBwYWRkaW5nOiAyNHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXI6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiMzZjNmNDYiKX07CiAgfQoKICAud3lzaXd5Zy1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7CiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9LCAwIDAgMCA0cHggJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuNSkiKX07CiAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC8qIFZpc3VhbCBoaW50IGZvciB0ZXh0IHNlbGVjdGlvbiAqLwogIC5lZGl0b3ItY29udGVudDpob3ZlciB7CiAgICBjdXJzb3I6IHRleHQ7CiAgfQoKICAuZWRpdG9yLWNvbnRlbnQgewogICAgb3V0bGluZTogbm9uZTsKICAgIG1pbi1oZWlnaHQ6IDE2MHB4OwogICAgbWFyZ2luOiAwIC04cHg7CiAgICBwYWRkaW5nOiAwIDhweDsKICB9CgogIC5ibG9jayB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiA0cHggMDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgbWluLWhlaWdodDogMS42ZW07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLyogRmlyc3QgYW5kIGxhc3QgYmxvY2tzIGRvbid0IG5lZWQgZXh0cmEgc3BhY2luZyAqLwogIC5ibG9jay13cmFwcGVyOmZpcnN0LWNoaWxkIC5ibG9jayB7CiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgfQoKICAuYmxvY2std3JhcHBlcjpsYXN0LWNoaWxkIC5ibG9jayB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwogIH0KCiAgLmJsb2NrLnNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiKX07CiAgICBvdXRsaW5lOiAycHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgfQoKICAuYmxvY2tbY29udGVudGVkaXRhYmxlXSB7CiAgICBvdXRsaW5lOiBub25lOwogIH0KCiAgLmJsb2NrLnBhcmFncmFwaCB7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICB9CgogIC5ibG9jay5wYXJhZ3JhcGg6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uIjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMSB7CiAgICBmb250LXNpemU6IDMycHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0xOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMSI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDMycHg7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTIgewogICAgZm9udC1zaXplOiAyNHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMjplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDIiOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAyNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0zIHsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTM6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAzIjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLmJsb2NrLnF1b3RlIHsKICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIG1hcmdpbi1sZWZ0OiAwOwogICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICB9CgogIC5ibG9jay5xdW90ZTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJRdW90ZSI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBsaW5lLWhlaWdodDogMS42OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5jb2RlLWJsb2NrLWNvbnRhaW5lciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBtYXJnaW46IDIwcHggMDsKICB9CgogIC5jb2RlLWxhbmd1YWdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIHJpZ2h0OiAwOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogMCA0cHggMCA0cHg7CiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOwogICAgei1pbmRleDogMTsKICB9CgogIC5ibG9jay5jb2RlIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIHBhZGRpbmc6IDE2cHg7CiAgICBwYWRkaW5nLXRvcDogMzJweDsgLyogTWFrZSByb29tIGZvciBsYW5ndWFnZSBpbmRpY2F0b3IgKi8KICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBvdmVyZmxvdy14OiBhdXRvOwogIH0KCiAgLmJsb2NrLmNvZGU6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiLy8gQ29kZSBibG9jayI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLmxpc3QgewogICAgcGFkZGluZy1sZWZ0OiAwOwogIH0KCiAgLmJsb2NrLmxpc3QgdWwsCiAgLmJsb2NrLmxpc3Qgb2wgewogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMCAwIDAgMjRweDsKICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7CiAgfQoKICAuYmxvY2subGlzdCB1bCB7CiAgICBsaXN0LXN0eWxlOiBkaXNjOwogIH0KCiAgLmJsb2NrLmxpc3Qgb2wgewogICAgbGlzdC1zdHlsZTogZGVjaW1hbDsKICB9CgogIC5ibG9jay5saXN0IGxpIHsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgfQoKICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQoKICAuYmxvY2suZGl2aWRlciB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAyMHB4IDA7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICB9CgogIC5ibG9jay5kaXZpZGVyIGhyIHsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBtYXJnaW46IDA7CiAgfQoKICAuc2xhc2gtbWVudSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIHotaW5kZXg6IDEwMDA7CiAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgbWF4LWhlaWdodDogMzAwcHg7CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW0gewogICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIsCiAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbSAuaWNvbiB7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5zbGFzaC1tZW51LWl0ZW06aG92ZXIgLmljb24sCiAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCAuaWNvbiB7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLnRvb2xiYXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAtNDBweDsKICAgIGxlZnQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICBnYXA6IDRweDsKICAgIHotaW5kZXg6IDEwMDA7CiAgfQoKICAudG9vbGJhci52aXNpYmxlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgfQoKICAudG9vbGJhci1idXR0b24gewogICAgd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDMycHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC8qIERyYWcgYW5kIERyb3AgU3R5bGVzICovCiAgLmJsb2NrLXdyYXBwZXIgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgfQoKICAvKiBFbnN1cmUgcHJvcGVyIHNwYWNpbmcgY29udGV4dCBmb3IgYmxvY2tzICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2sgewogICAgbWFyZ2luLXRvcDogMTZweDsKICB9CgogIC8qIE92ZXJyaWRlIGZvciBoZWFkaW5ncyBmb2xsb3dpbmcgb3RoZXIgYmxvY2tzICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0xLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMiwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTMgewogICAgbWFyZ2luLXRvcDogMjRweDsKICB9CgogIC8qIENvZGUgYW5kIHF1b3RlIGJsb2NrcyBuZWVkIGNvbnNpc3RlbnQgc3BhY2luZyAqLwogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmNvZGUsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2sucXVvdGUgewogICAgbWFyZ2luLXRvcDogMjBweDsKICB9CgogIC5kcmFnLWhhbmRsZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0OiAtMjhweDsKICAgIHRvcDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgd2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBjdXJzb3I6IGdyYWI7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICB9CgogIC5kcmFnLWhhbmRsZTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICLii67ii64iOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgbGV0dGVyLXNwYWNpbmc6IC0ycHg7CiAgfQoKICAuYmxvY2std3JhcHBlcjpob3ZlciAuZHJhZy1oYW5kbGUgewogICAgb3BhY2l0eTogMTsKICB9CgogIC5kcmFnLWhhbmRsZTpob3ZlciB7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogIH0KCiAgLmRyYWctaGFuZGxlOmFjdGl2ZSB7CiAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogIH0KCiAgLmJsb2NrLXdyYXBwZXIuZHJhZ2dpbmcgewogICAgb3BhY2l0eTogMC44OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB6LWluZGV4OiAyMDAxOwogICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KCgogIC8qIEJsb2NrcyB0aGF0IHNob3VsZCBtb3ZlIG91dCBvZiB0aGUgd2F5ICovCiAgLmJsb2NrLXdyYXBwZXIubW92ZS1kb3duIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1kcmFnLW9mZnNldCwgMHB4KSk7CiAgfQoKICAuYmxvY2std3JhcHBlci5tb3ZlLXVwIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0tZHJhZy1vZmZzZXQsIDBweCkpKTsKICB9CgogIC8qIERyb3AgaW5kaWNhdG9yICovCiAgLmRyb3AtaW5kaWNhdG9yIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IDA7CiAgICByaWdodDogMDsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4wNSkiKX07CiAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgdHJhbnNpdGlvbjogdG9wIDAuMnMgZWFzZSwgaGVpZ2h0IDAuMnMgZWFzZTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgei1pbmRleDogMTk5OTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICAvKiBSZW1vdmUgb2xkIGRyYWctb3ZlciBzdHlsZXMgKi8KICAuYmxvY2std3JhcHBlci5kcmFnLW92ZXItYmVmb3JlLAogIC5ibG9jay13cmFwcGVyLmRyYWctb3Zlci1hZnRlciB7CiAgICAvKiBObyBsb25nZXIgbmVlZGVkLCB1c2luZyBkcm9wIGluZGljYXRvciBpbnN0ZWFkICovCiAgfQoKICAuZWRpdG9yLWNvbnRlbnQuZHJhZ2dpbmcgKiB7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsKICB9CgogIC8qIEJsb2NrIFNldHRpbmdzIEJ1dHRvbiAtIFJlbW92ZWQgaW4gZmF2b3Igb2YgY29udGV4dCBtZW51ICovCgogIC8qIFRleHQgU2VsZWN0aW9uIFN0eWxlcyAqLwogIC5ibG9jayA6OnNlbGVjdGlvbiB7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgIGNvbG9yOiBpbmhlcml0OwogIH0KCiAgLyogRm9ybWF0dGluZyBNZW51ICovCiAgLmZvcm1hdHRpbmctbWVudSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgIHBhZGRpbmc6IDRweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBnYXA6IDJweDsKICAgIHotaW5kZXg6IDEwMDE7CiAgICBhbmltYXRpb246IGZhZGVJblNjYWxlIDAuMTVzIGVhc2Utb3V0OwogIH0KCiAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICBmcm9tIHsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKDJweCk7CiAgICB9CiAgICB0byB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgIH0KICB9CgogIC5mb3JtYXQtYnV0dG9uIHsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgYm9yZGVyOiBub25lOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CgogIC5mb3JtYXQtYnV0dG9uOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAuZm9ybWF0LWJ1dHRvbjphY3RpdmUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICB9CgogIC5mb3JtYXQtYnV0dG9uLmJvbGQgewogICAgZm9udC13ZWlnaHQ6IDcwMDsKICB9CgogIC5mb3JtYXQtYnV0dG9uLml0YWxpYyB7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbi51bmRlcmxpbmUgewogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgfQoKICAuZm9ybWF0LWJ1dHRvbiAuY29kZS1pY29uIHsKICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxMnB4OwogIH0KCiAgLyogQXBwbGllZCBmb3JtYXQgc3R5bGVzIGluIGNvbnRlbnQgKi8KICAuYmxvY2sgc3Ryb25nLAogIC5ibG9jayBiIHsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrIGVtLAogIC5ibG9jayBpIHsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5ibG9jayB1IHsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KCiAgLmJsb2NrIHN0cmlrZSwKICAuYmxvY2sgcyB7CiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgIG9wYWNpdHk6IDAuNzsKICB9CgogIC5ibG9jayBjb2RlIHsKICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrIGEgewogICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogIH0KCiAgLmJsb2NrIGE6aG92ZXIgewogICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KYH0pO3ZhciB4aSxrVj1iKCgpPT57JGEoKTt4aT1jbGFzc3tzdGF0aWMgZXNjYXBlSHRtbChlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1lLGEuaW5uZXJIVE1MfXN0YXRpYyBmb3JtYXRGaWxlU2l6ZShlKXtpZihlPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IGE9MTAyNCxpPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxyPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2coYSkpO3JldHVybiBwYXJzZUZsb2F0KChlL01hdGgucG93KGEscikpLnRvRml4ZWQoMikpKyIgIitpW3JdfXN0YXRpYyBnZXRIdG1sT3V0cHV0KGUpe3JldHVybiBlLm1hcChhPT57bGV0IGk9YS5jb250ZW50LmluY2x1ZGVzKCI8IikmJmEuY29udGVudC5pbmNsdWRlcygiPiIpP2EuY29udGVudDp0aGlzLmVzY2FwZUh0bWwoYS5jb250ZW50KTtzd2l0Y2goYS50eXBlKXtjYXNlInBhcmFncmFwaCI6cmV0dXJuIGEuY29udGVudD9gPHA+JHtpfTwvcD5gOiIiO2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gPGgxPiR7aX08L2gxPmA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmA8aDI+JHtpfTwvaDI+YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYDxoMz4ke2l9PC9oMz5gO2Nhc2UicXVvdGUiOnJldHVybmA8YmxvY2txdW90ZT4ke2l9PC9ibG9ja3F1b3RlPmA7Y2FzZSJjb2RlIjpyZXR1cm5gPHByZT48Y29kZT4ke3RoaXMuZXNjYXBlSHRtbChhLmNvbnRlbnQpfTwvY29kZT48L3ByZT5gO2Nhc2UibGlzdCI6bGV0IHI9YS5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKGQ9PmQudHJpbSgpKTtpZihyLmxlbmd0aD4wKXtsZXQgZD1hLm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke2R9PiR7ci5tYXAoYz0+YDxsaT4ke2N9PC9saT5gKS5qb2luKCIiKX08LyR7ZH0+YH1yZXR1cm4iIjtjYXNlImRpdmlkZXIiOnJldHVybiI8aHI+IjtjYXNlImltYWdlIjpsZXQgcz1hLm1ldGFkYXRhPy51cmw7aWYocyl7bGV0IGQ9dGhpcy5lc2NhcGVIdG1sKGEuY29udGVudHx8IkltYWdlIik7cmV0dXJuYDxpbWcgc3JjPSIke3N9IiBhbHQ9IiR7ZH0iIC8+YH1yZXR1cm4iIjtjYXNlInlvdXR1YmUiOmxldCBuPWEubWV0YWRhdGE/LnZpZGVvSWQ7cmV0dXJuIG4/YDxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtufSIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+YDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm5gPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+JHt0aGlzLmVzY2FwZUh0bWwoYS5jb250ZW50KX08L2Rpdj5gO2Nhc2UiaHRtbCI6cmV0dXJuIGEuY29udGVudDtjYXNlImF0dGFjaG1lbnQiOmxldCBvPWEubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gby5sZW5ndGg+MD9gPGRpdiBjbGFzcz0iYXR0YWNobWVudHMiPiR7by5tYXAoZD0+YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaXRlbSIgZGF0YS1maWxlLWlkPSIke2QuaWR9Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7ZC5kYXRhfSIgZG93bmxvYWQ9IiR7ZC5uYW1lfSI+JHt0aGlzLmVzY2FwZUh0bWwoZC5uYW1lKX08L2E+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj4oJHt0aGlzLmZvcm1hdEZpbGVTaXplKGQuc2l6ZSl9KTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gKS5qb2luKCIiKX08L2Rpdj5gOiIiO2RlZmF1bHQ6cmV0dXJuYDxwPiR7aX08L3A+YH19KS5maWx0ZXIoYT0+YSE9PSIiKS5qb2luKGAKYCl9c3RhdGljIGdldE1hcmtkb3duT3V0cHV0KGUpe3JldHVybiBlLm1hcChhPT57c3dpdGNoKGEudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiBhLmNvbnRlbnQ7Y2FzZSJoZWFkaW5nLTEiOnJldHVybmAjICR7YS5jb250ZW50fWA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmAjIyAke2EuY29udGVudH1gO2Nhc2UiaGVhZGluZy0zIjpyZXR1cm5gIyMjICR7YS5jb250ZW50fWA7Y2FzZSJxdW90ZSI6cmV0dXJuYD4gJHthLmNvbnRlbnR9YDtjYXNlImNvZGUiOnJldHVybmBcYFxgXGAKJHthLmNvbnRlbnR9ClxgXGBcYGA7Y2FzZSJsaXN0IjpsZXQgaT1hLmNvbnRlbnQuc3BsaXQoYApgKS5maWx0ZXIoYz0+Yy50cmltKCkpO3JldHVybiBhLm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj9pLm1hcCgoYyxwKT0+YCR7cCsxfS4gJHtjfWApLmpvaW4oYApgKTppLm1hcChjPT5gLSAke2N9YCkuam9pbihgCmApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIi0tLSI7Y2FzZSJpbWFnZSI6bGV0IHI9YS5tZXRhZGF0YT8udXJsLHM9YS5jb250ZW50fHwiSW1hZ2UiO3JldHVybiByP2AhWyR7c31dKCR7cn0pYDoiIjtjYXNlInlvdXR1YmUiOmxldCBuPWEubWV0YWRhdGE/LnZpZGVvSWQsbz1hLm1ldGFkYXRhPy51cmx8fChuP2BodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9JHtufWA6IiIpO3JldHVybiBvP2BbWW91VHViZSBWaWRlb10oJHtvfSlgOiIiO2Nhc2UibWFya2Rvd24iOnJldHVybiBhLmNvbnRlbnQ7Y2FzZSJodG1sIjpyZXR1cm5gPCEtLSBIVE1MIEJsb2NrCiR7YS5jb250ZW50fQotLT5gO2Nhc2UiYXR0YWNobWVudCI6bGV0IGQ9YS5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybiBkLmxlbmd0aD4wP2QubWFwKGM9PmAtIFske2MubmFtZX1dKCR7Yy5kYXRhfSlgKS5qb2luKGAKYCk6IiI7ZGVmYXVsdDpyZXR1cm4gYS5jb250ZW50fX0pLmZpbHRlcihhPT5hIT09IiIpLmpvaW4oYAoKYCl9c3RhdGljIHBhcnNlSHRtbFRvQmxvY2tzKGUpe2xldCBpPW5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoZSwidGV4dC9odG1sIikscj1bXSxzPW49PntpZihuLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJm4udGV4dENvbnRlbnQ/LnRyaW0oKSlyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6bi50ZXh0Q29udGVudC50cmltKCl9KTtlbHNlIGlmKG4ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7bGV0IG89bixkPW8udGFnTmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChkKXtjYXNlInAiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpvLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgxIjpyLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6by5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMiI6ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50Om8uaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDMiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDpvLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImJsb2NrcXVvdGUiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InF1b3RlIixjb250ZW50Om8uaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UicHJlIjpjYXNlImNvZGUiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6by50ZXh0Q29udGVudHx8IiJ9KTticmVhaztjYXNlInVsIjpjYXNlIm9sIjpsZXQgcD1BcnJheS5mcm9tKG8ucXVlcnlTZWxlY3RvckFsbCgibGkiKSkubWFwKGY9PmYuaW5uZXJIVE1MfHwiIikuam9pbihgCmApO3IucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6cCxtZXRhZGF0YTp7bGlzdFR5cGU6ZD09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifX0pO2JyZWFrO2Nhc2UiaHIiOnIucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiAifSk7YnJlYWs7Y2FzZSJpbWciOmxldCBsPW87ci5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6bC5hbHR8fCIiLG1ldGFkYXRhOnt1cmw6bC5zcmN9fSk7YnJlYWs7ZGVmYXVsdDpvLmNoaWxkTm9kZXMuZm9yRWFjaChmPT5zKGYpKX19fTtyZXR1cm4gaS5ib2R5LmNoaWxkTm9kZXMuZm9yRWFjaChuPT5zKG4pKSxyfXN0YXRpYyBwYXJzZU1hcmtkb3duVG9CbG9ja3MoZSl7bGV0IGE9ZS5zcGxpdChgCmApLGk9W10scj1bXTtmb3IobGV0IHM9MDtzPGEubGVuZ3RoO3MrKyl7bGV0IG49YVtzXTtpZihuLnN0YXJ0c1dpdGgoIiMgIikpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50Om4uc3Vic3RyaW5nKDIpfSk7ZWxzZSBpZihuLnN0YXJ0c1dpdGgoIiMjICIpKWkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDpuLnN1YnN0cmluZygzKX0pO2Vsc2UgaWYobi5zdGFydHNXaXRoKCIjIyMgIikpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50Om4uc3Vic3RyaW5nKDQpfSk7ZWxzZSBpZihuLnN0YXJ0c1dpdGgoIj4gIikpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6bi5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKG4uc3RhcnRzV2l0aCgiYGBgIikpe2xldCBvPVtdO2ZvcihzKys7czxhLmxlbmd0aCYmIWFbc10uc3RhcnRzV2l0aCgiYGBgIik7KW8ucHVzaChhW3NdKSxzKys7aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpvLmpvaW4oYApgKX0pfWVsc2UgaWYobi5tYXRjaCgvXihcKnwtKSAvKSlyLnB1c2gobi5zdWJzdHJpbmcoMikpLChzPT09YS5sZW5ndGgtMXx8IWFbcysxXS5tYXRjaCgvXihcKnwtKSAvKSkmJihpLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJsaXN0Iixjb250ZW50OnIuam9pbihgCmApLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19KSxyPVtdKTtlbHNlIGlmKG4ubWF0Y2goL15cZCtcLiAvKSlyLnB1c2gobi5yZXBsYWNlKC9eXGQrXC4gLywiIikpLChzPT09YS5sZW5ndGgtMXx8IWFbcysxXS5tYXRjaCgvXlxkK1wuIC8pKSYmKGkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6ci5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19KSxyPVtdKTtlbHNlIGlmKG49PT0iLS0tInx8bj09PSIqKioifHxuPT09Il9fXyIpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTtlbHNlIGlmKG4ubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pKXtsZXQgbz1uLm1hdGNoKC9eIVxbKFteXF1dKilcXVwoKFteXCldKylcKSQvKTtvJiZpLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDpvWzFdfHwiIixtZXRhZGF0YTp7dXJsOm9bMl19fSl9ZWxzZSBuLnRyaW0oKSYmaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50Om59KX1yZXR1cm4gaX19fSk7dmFyIEEyLEJzPWIoKCk9Pnt1ZSgpOyRhKCk7a1YoKTtBMj1jbGFzc3tzdGF0aWMgcmVuZGVyTGlzdENvbnRlbnQoZSxhKXtsZXQgaT1lLnNwbGl0KGAKYCkuZmlsdGVyKHM9PnMudHJpbSgpKTtpZihpLmxlbmd0aD09PTApcmV0dXJuIiI7bGV0IHI9YT8ubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO3JldHVybmA8JHtyfT4ke2kubWFwKHM9PmA8bGk+JHtzfTwvbGk+YCkuam9pbigiIil9PC8ke3J9PmB9c3RhdGljIHJlbmRlckJsb2NrKGUsYSxpKXtpZihlLnR5cGU9PT0iZGl2aWRlciIpcmV0dXJuIHdgCiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImJsb2NrIGRpdmlkZXIiCiAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgID4KICAgICAgICAgIDxocj4KICAgICAgICA8L2Rpdj4KICAgICAgYDtpZihlLnR5cGU9PT0ibGlzdCIpcmV0dXJuIHdgCiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9ImJsb2NrIGxpc3QgJHthPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgIEBpbnB1dD0iJHtpLm9uSW5wdXR9IgogICAgICAgICAgQGtleWRvd249IiR7aS5vbktleURvd259IgogICAgICAgICAgQGZvY3VzPSIke2kub25Gb2N1c30iCiAgICAgICAgICBAYmx1cj0iJHtpLm9uQmx1cn0iCiAgICAgICAgICBAY29tcG9zaXRpb25zdGFydD0iJHtpLm9uQ29tcG9zaXRpb25TdGFydH0iCiAgICAgICAgICBAY29tcG9zaXRpb25lbmQ9IiR7aS5vbkNvbXBvc2l0aW9uRW5kfSIKICAgICAgICAgIEBtb3VzZXVwPSIke3M9Pntjb25zb2xlLmxvZygiQmxvY2sgbW91c2V1cCBldmVudCBmaXJlZCIpLGkub25Nb3VzZVVwJiZpLm9uTW91c2VVcChzKX19IgogICAgICAgICAgLmlubmVySFRNTD0iJHt0aGlzLnJlbmRlckxpc3RDb250ZW50KGUuY29udGVudCxlLm1ldGFkYXRhKX0iCiAgICAgICAgPjwvZGl2PgogICAgICBgO2lmKGUudHlwZT09PSJjb2RlIil7bGV0IHM9ZS5tZXRhZGF0YT8ubGFuZ3VhZ2V8fCJwbGFpbiB0ZXh0IjtyZXR1cm4gd2AKICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWxhbmd1YWdlIj4ke3N9PC9kaXY+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJibG9jayAke2UudHlwZX0gJHthPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgICAgIEBpbnB1dD0iJHtpLm9uSW5wdXR9IgogICAgICAgICAgICBAa2V5ZG93bj0iJHtpLm9uS2V5RG93bn0iCiAgICAgICAgICAgIEBmb2N1cz0iJHtpLm9uRm9jdXN9IgogICAgICAgICAgICBAYmx1cj0iJHtpLm9uQmx1cn0iCiAgICAgICAgICAgIEBjb21wb3NpdGlvbnN0YXJ0PSIke2kub25Db21wb3NpdGlvblN0YXJ0fSIKICAgICAgICAgICAgQGNvbXBvc2l0aW9uZW5kPSIke2kub25Db21wb3NpdGlvbkVuZH0iCiAgICAgICAgICAgIEBtb3VzZXVwPSIke249Pntjb25zb2xlLmxvZygiQmxvY2sgbW91c2V1cCBldmVudCBmaXJlZCIpLGkub25Nb3VzZVVwJiZpLm9uTW91c2VVcChuKX19IgogICAgICAgICAgICAudGV4dENvbnRlbnQ9IiR7ZS5jb250ZW50fHwiIn0iCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgJHtlLnR5cGV9ICR7YT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgQGlucHV0PSIke2kub25JbnB1dH0iCiAgICAgICAgQGtleWRvd249IiR7aS5vbktleURvd259IgogICAgICAgIEBmb2N1cz0iJHtpLm9uRm9jdXN9IgogICAgICAgIEBibHVyPSIke2kub25CbHVyfSIKICAgICAgICBAY29tcG9zaXRpb25zdGFydD0iJHtpLm9uQ29tcG9zaXRpb25TdGFydH0iCiAgICAgICAgQGNvbXBvc2l0aW9uZW5kPSIke2kub25Db21wb3NpdGlvbkVuZH0iCiAgICAgICAgQG1vdXNldXA9IiR7cz0+e2NvbnNvbGUubG9nKCJCbG9jayBtb3VzZXVwIGV2ZW50IGZpcmVkIiksaS5vbk1vdXNlVXAmJmkub25Nb3VzZVVwKHMpfX0iCiAgICAgICAgLmlubmVySFRNTD0iJHtlLmNvbnRlbnR8fCIifSIKICAgICAgPjwvZGl2PgogICAgYH1zdGF0aWMgc2V0Q3Vyc29yVG9FbmQoZSl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhKXJldHVybjtsZXQgaT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2lmKGUuY2hpbGROb2Rlcy5sZW5ndGg9PT0wKXtsZXQgcj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXHUyMDBCIik7ZS5hcHBlbmRDaGlsZChyKSxpLnNldFN0YXJ0KHIsMSksaS5jb2xsYXBzZSghMCl9ZWxzZXtsZXQgcj10aGlzLmdldExhc3ROb2RlKGUpO3Iubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT9pLnNldFN0YXJ0KHIsci50ZXh0Q29udGVudD8ubGVuZ3RofHwwKTppLnNldFN0YXJ0QWZ0ZXIociksaS5jb2xsYXBzZSghMCl9YS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKGkpLGUudGV4dENvbnRlbnQ9PT0iXHUyMDBCIiYmKGUudGV4dENvbnRlbnQ9IiIpfXN0YXRpYyBzZXRDdXJzb3JUb1N0YXJ0KGUpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighYSlyZXR1cm47bGV0IGk9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZihlLmNoaWxkTm9kZXMubGVuZ3RoPT09MClpLnNldFN0YXJ0KGUsMCksaS5jb2xsYXBzZSghMCk7ZWxzZXtsZXQgcj10aGlzLmdldEZpcnN0Tm9kZShlKTtyLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/aS5zZXRTdGFydChyLDApOmkuc2V0U3RhcnRCZWZvcmUociksaS5jb2xsYXBzZSghMCl9YS5yZW1vdmVBbGxSYW5nZXMoKSxhLmFkZFJhbmdlKGkpfXN0YXRpYyBnZXRMYXN0Tm9kZShlKXtpZihlLmNoaWxkTm9kZXMubGVuZ3RoPT09MClyZXR1cm4gZTtsZXQgYT1lLmNoaWxkTm9kZXNbZS5jaGlsZE5vZGVzLmxlbmd0aC0xXTtyZXR1cm4gYS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFfHxhLmNoaWxkTm9kZXMubGVuZ3RoPT09MD9hOnRoaXMuZ2V0TGFzdE5vZGUoYSl9c3RhdGljIGdldEZpcnN0Tm9kZShlKXtpZihlLmNoaWxkTm9kZXMubGVuZ3RoPT09MClyZXR1cm4gZTtsZXQgYT1lLmNoaWxkTm9kZXNbMF07cmV0dXJuIGEubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERXx8YS5jaGlsZE5vZGVzLmxlbmd0aD09PTA/YTp0aGlzLmdldEZpcnN0Tm9kZShhKX1zdGF0aWMgZm9jdXNMaXN0SXRlbShlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoImxpIik7aWYoYSl7YS5mb2N1cygpO2xldCBpPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkscj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aS5zZWxlY3ROb2RlQ29udGVudHMoYSksaS5jb2xsYXBzZSghMCksci5yZW1vdmVBbGxSYW5nZXMoKSxyLmFkZFJhbmdlKGkpfX19fSk7dmFyIEw4LFNWPWIoKCk9PnskYSgpO05sKCk7bzQoKTtCcygpO0w4PWNsYXNze2NvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWNyZWF0ZUJsb2NrKGU9InBhcmFncmFwaCIsYT0iIixpKXtyZXR1cm57aWQ6cTEuZ2VuZXJhdGVCbG9ja0lkKCksdHlwZTplLGNvbnRlbnQ6YSwuLi5pJiZ7bWV0YWRhdGE6aX19fWFzeW5jIGluc2VydEJsb2NrQWZ0ZXIoZSxhLGk9ITApe2xldCByPXRoaXMuY29tcG9uZW50LmJsb2NrcyxzPXIuZmluZEluZGV4KG49Pm4uaWQ9PT1lLmlkKTtpZih0aGlzLmNvbXBvbmVudC5ibG9ja3M9Wy4uLnIuc2xpY2UoMCxzKzEpLGEsLi4uci5zbGljZShzKzEpXSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgbj10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKTtpZihuKXtsZXQgbz10aGlzLmNvbXBvbmVudC5jcmVhdGVCbG9ja0VsZW1lbnQoYSk7bi5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIixvKX19dGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSxpJiZhLnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShuPT5zZXRUaW1lb3V0KG4sMCkpLGF3YWl0IHRoaXMuZm9jdXNCbG9jayhhLmlkLCJzdGFydCIpKX1yZW1vdmVCbG9jayhlKXtpZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSx0aGlzLmNvbXBvbmVudC5ibG9ja3M9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbHRlcihhPT5hLmlkIT09ZSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZil7bGV0IGE9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtlfSJdYCk7YSYmYS5yZW1vdmUoKX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWZpbmRCbG9jayhlKXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQoYT0+YS5pZD09PWUpfWdldEJsb2NrSW5kZXgoZSl7cmV0dXJuIHRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kSW5kZXgoYT0+YS5pZD09PWUpfWFzeW5jIGZvY3VzQmxvY2soZSxhPSJzdGFydCIpe2xldCBpPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ZX0iXWApO2lmKGkpe2xldCByPWkucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7ciYmKGF3YWl0IG5ldyBQcm9taXNlKHM9PnJlcXVlc3RBbmltYXRpb25GcmFtZShzKSksci5mb2N1c1dpdGhDdXJzb3IoYSkpfX11cGRhdGVCbG9ja0NvbnRlbnQoZSxhKXtsZXQgaT10aGlzLmZpbmRCbG9jayhlKTtpJiYoaS5jb250ZW50PWEsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9dHJhbnNmb3JtQmxvY2soZSxhLGkpe2xldCByPXRoaXMuZmluZEJsb2NrKGUpO3ImJih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxyLnR5cGU9YSxyLmNvbnRlbnQ9IiIsaSYmKHIubWV0YWRhdGE9aSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCkpfW1vdmVCbG9jayhlLGEpe2xldCBpPVsuLi50aGlzLmNvbXBvbmVudC5ibG9ja3NdLHI9dGhpcy5nZXRCbG9ja0luZGV4KGUpO2lmKHI9PT0tMXx8YTwwfHxhPj1pLmxlbmd0aClyZXR1cm47bGV0W3NdPWkuc3BsaWNlKHIsMSk7aS5zcGxpY2UoYSwwLHMpLHRoaXMuY29tcG9uZW50LmJsb2Nrcz1pLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9Z2V0UHJldmlvdXNCbG9jayhlKXtsZXQgYT10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIGE+MD90aGlzLmNvbXBvbmVudC5ibG9ja3NbYS0xXTpudWxsfWdldE5leHRCbG9jayhlKXtsZXQgYT10aGlzLmdldEJsb2NrSW5kZXgoZSk7cmV0dXJuIGE8dGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aC0xP3RoaXMuY29tcG9uZW50LmJsb2Nrc1thKzFdOm51bGx9fX0pO3ZhciB3MSxZYT1iKCgpPT57dzE9Y2xhc3N7c2V0dXAoZSxhLGkpe31nZXRTdHlsZXMoKXtyZXR1cm4iIn19fSk7dmFyIHQxLGdndD1iKCgpPT57dDE9Y2xhc3N7c3RhdGljIGhhbmRsZXJzPW5ldyBNYXA7c3RhdGljIHJlZ2lzdGVyKGUsYSl7dGhpcy5oYW5kbGVycy5zZXQoZSxhKX1zdGF0aWMgZ2V0SGFuZGxlcihlKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5nZXQoZSl9c3RhdGljIGdldEFsbFR5cGVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5oYW5kbGVycy5rZXlzKCkpfX19KTt2YXIgYmd0PWIoKCk9Pnt9KTt2YXIgJDgsdmd0PWIoKCk9PntZYSgpO3VlKCk7QnMoKTtqcigpOyQ4PWNsYXNzIGV4dGVuZHMgdzF7dHlwZT0icGFyYWdyYXBoIjtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7c2VsZWN0aW9uSGFuZGxlcj1udWxsO3JlbmRlcihlLGEpe2xldCBpPWE/IiBzZWxlY3RlZCI6IiIscj10aGlzLmdldFBsYWNlaG9sZGVyKCk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIHBhcmFncmFwaCR7aX0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIGRhdGEtcGxhY2Vob2xkZXI9IiR7cn0iCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIKICAgICAgPjwvZGl2PgogICAgYH1zZXR1cChlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIlBhcmFncmFwaEJsb2NrSGFuZGxlci5zZXR1cDogTm8gcGFyYWdyYXBoIGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59YS5jb250ZW50JiYhci5pbm5lckhUTUwmJihyLmlubmVySFRNTD1hLmNvbnRlbnQpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHM9PntpLm9uSW5wdXQocyk7bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKSxpLm9uS2V5RG93bihzKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57aS5vbkZvY3VzKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57aS5vbkJsdXIoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PntpLm9uQ29tcG9zaXRpb25TdGFydCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PntpLm9uQ29tcG9zaXRpb25FbmQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIscz0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pLGkub25Nb3VzZVVwPy4ocyl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzPT57c2V0VGltZW91dCgoKT0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSwwKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0pLHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscixhKX1zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxhLGkpe2xldCByPSgpPT57bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFufHxuLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbz1uLnRvU3RyaW5nKCk7aWYoby5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGQ9YS5nZXRSb290Tm9kZSgpLmhvc3QscD1kPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPWQ/LnNoYWRvd1Jvb3QsZj1bXTtwJiZmLnB1c2gocCksbCYmZi5wdXNoKGwpO2xldCBnPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZik7aWYoIWcpcmV0dXJuO2xldCB5PVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZy5zdGFydENvbnRhaW5lciksdj1SZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGcuZW5kQ29udGFpbmVyKTtpZih5fHx2KXtpZihvIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bztsZXQgbT1SZS5jcmVhdGVSYW5nZUZyb21JbmZvKGcpLHg9bS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpvLnRyaW0oKSxibG9ja0lkOmkuaWQscmFuZ2U6bSxyZWN0OngsaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6aS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IHM9ZS5jbG9zZXN0KCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihzKXtsZXQgbj1zLmRpc2Nvbm5lY3RlZENhbGxiYWNrO3MuZGlzY29ubmVjdGVkQ2FsbGJhY2s9YXN5bmMgZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvbkhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuc2VsZWN0aW9uSGFuZGxlciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPW51bGwpLG4mJmF3YWl0IG4uY2FsbChzKX0uYmluZCh0aGlzKX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLGEpe2xldCBpPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDphLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoaSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBQYXJhZ3JhcGggc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5wYXJhZ3JhcGggewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iVHlwZSAnLycgZm9yIGNvbW1hbmRzLi4uIn1nZXRMYXN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgYT1lLmNoaWxkTm9kZXMubGVuZ3RoLTE7YT49MDthLS0pe2xldCBpPXRoaXMuZ2V0TGFzdFRleHROb2RlKGUuY2hpbGROb2Rlc1thXSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFpKXJldHVybiBudWxsO2xldCBuPWE/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qsbz1hPy5zaGFkb3dSb290LGQ9W107biYmZC5wdXNoKG4pLG8mJmQucHVzaChvKTtsZXQgYz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjfHwhUmUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgcD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiBwLnNlbGVjdE5vZGVDb250ZW50cyhpKSxwLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLHAudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO3JldHVybiBpJiZpLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIXIpcmV0dXJuO2xldCBzPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yO3IuaW5uZXJIVE1MPWEscyYmci5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpJiZBMi5zZXRDdXJzb3JUb1N0YXJ0KGkpfXNldEN1cnNvclRvRW5kKGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aSYmQTIuc2V0Q3Vyc29yVG9FbmQoaSl9Zm9jdXMoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpJiYoaS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxpLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGkuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09aSYmZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09aSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2kuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IoZSxhPSJlbmQiLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2lmKCFyKXJldHVybjtpZihyLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fHIuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksYT09PSJlbmQiJiZyLnRleHRDb250ZW50JiZyLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobil7bGV0IG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxkPXRoaXMuZ2V0TGFzdFRleHROb2RlKHIpfHxyO2Qubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8oby5zZXRTdGFydChkLGQudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCksby5zZXRFbmQoZCxkLnRleHRDb250ZW50Py5sZW5ndGh8fDApKTooby5zZWxlY3ROb2RlQ29udGVudHMoZCksby5jb2xsYXBzZSghMSkpLG4ucmVtb3ZlQWxsUmFuZ2VzKCksbi5hZGRSYW5nZShvKX19ci5mb2N1cygpO2xldCBzPSgpPT57YT09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUsaSk6YT09PSJlbmQiJiYoIXIudGV4dENvbnRlbnR8fHIudGV4dENvbnRlbnQubGVuZ3RoPT09MCk/dGhpcy5zZXRDdXJzb3JUb0VuZChlLGkpOnR5cGVvZiBhPT0ibnVtYmVyIiYmUmUuc2V0Q3Vyc29yUG9zaXRpb24ocixhKX07ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/cygpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9zKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJnMoKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IG49YT8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxvPWE/LnNoYWRvd1Jvb3QsZD1bXTtuJiZkLnB1c2gobiksbyYmZC5wdXNoKG8pO2xldCBjPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoIWMpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1pLnRleHRDb250ZW50fHwiIixTPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCxTKSxhZnRlcjpNLnN1YnN0cmluZyhTKX19cmV0dXJuIG51bGx9aWYoIVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGksYy5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1pLnRleHRDb250ZW50fHwiIixTPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCxTKSxhZnRlcjpNLnN1YnN0cmluZyhTKX19cmV0dXJuIG51bGx9bGV0IHA9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLGEpO2lmKHA9PT1udWxsfHxwPT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmkuaW5uZXJIVE1MfTtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGY9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtsLnNldFN0YXJ0KGksMCksbC5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxmLnNldFN0YXJ0KGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksZi5zZXRFbmQoaSxpLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgZz1sLmNsb25lQ29udGVudHMoKSx5PWYuY2xvbmVDb250ZW50cygpLHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7di5hcHBlbmRDaGlsZChnKTtsZXQgbT12LmlubmVySFRNTDt2LmlubmVySFRNTD0iIix2LmFwcGVuZENoaWxkKHkpO2xldCB4PXYuaW5uZXJIVE1MO3JldHVybntiZWZvcmU6bSxhZnRlcjp4fX19fSk7dmFyIGM0LHlndD1iKCgpPT57WWEoKTt1ZSgpO0JzKCk7anIoKTtjND1jbGFzcyBleHRlbmRzIHcxe3R5cGU7bGV2ZWw7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtjb25zdHJ1Y3RvcihlKXtzdXBlcigpLHRoaXMudHlwZT1lLHRoaXMubGV2ZWw9cGFyc2VJbnQoZS5zcGxpdCgiLSIpWzFdKX1yZW5kZXIoZSxhKXtsZXQgaT1hPyIgc2VsZWN0ZWQiOiIiLHI9dGhpcy5nZXRQbGFjZWhvbGRlcigpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBoZWFkaW5nLSR7dGhpcy5sZXZlbH0ke2l9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPSIke3J9IgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID48L2Rpdj4KICAgIGB9c2V0dXAoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFyKXtjb25zb2xlLmVycm9yKCJIZWFkaW5nQmxvY2tIYW5kbGVyLnNldHVwOiBObyBoZWFkaW5nIGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59YS5jb250ZW50JiYhci5pbm5lckhUTUwmJihyLmlubmVySFRNTD1hLmNvbnRlbnQpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHM9PntpLm9uSW5wdXQocyk7bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKSxpLm9uS2V5RG93bihzKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57aS5vbkZvY3VzKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57aS5vbkJsdXIoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PntpLm9uQ29tcG9zaXRpb25TdGFydCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PntpLm9uQ29tcG9zaXRpb25FbmQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIscz0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pLGkub25Nb3VzZVVwPy4ocyl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzPT57c2V0VGltZW91dCgoKT0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSwwKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0pLHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscixhKX1zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxhLGkpe2xldCByPSgpPT57bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFufHxuLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbz1uLnRvU3RyaW5nKCk7aWYoby5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGQ9YS5nZXRSb290Tm9kZSgpLmhvc3QscD1kPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPWQ/LnNoYWRvd1Jvb3QsZj1bXTtwJiZmLnB1c2gocCksbCYmZi5wdXNoKGwpO2xldCBnPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZik7aWYoIWcpcmV0dXJuO2xldCB5PVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZy5zdGFydENvbnRhaW5lciksdj1SZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGcuZW5kQ29udGFpbmVyKTtpZih5fHx2KXtpZihvIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bztsZXQgbT1SZS5jcmVhdGVSYW5nZUZyb21JbmZvKGcpLHg9bS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpvLnRyaW0oKSxibG9ja0lkOmkuaWQscmFuZ2U6bSxyZWN0OngsaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6aS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IHM9YS5nZXRSb290Tm9kZSgpLmhvc3Q7aWYocyl7bGV0IG49cy5kaXNjb25uZWN0ZWRDYWxsYmFjaztzLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxuJiZhd2FpdCBuLmNhbGwocyl9LmJpbmQodGhpcyl9fWRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSxhKXtsZXQgaT1uZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6YSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7ZS5kaXNwYXRjaEV2ZW50KGkpfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLmJsb2NrLmhlYWRpbmctMSB7CiAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgICBtYXJnaW46IDI0cHggMCA4cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2suaGVhZGluZy0yIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICAgIG1hcmdpbjogMjBweCAwIDZweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5oZWFkaW5nLTMgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgbWFyZ2luOiAxNnB4IDAgNHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3N3aXRjaCh0aGlzLmxldmVsKXtjYXNlIDE6cmV0dXJuIkhlYWRpbmcgMSI7Y2FzZSAyOnJldHVybiJIZWFkaW5nIDIiO2Nhc2UgMzpyZXR1cm4iSGVhZGluZyAzIjtkZWZhdWx0OnJldHVybiJIZWFkaW5nIn19Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IGE9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO2E+PTA7YS0tKXtsZXQgaT10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbYV0pO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9Z2V0Q3Vyc29yUG9zaXRpb24oZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbj1hPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LG89YT8uc2hhZG93Um9vdCxkPVtdO24mJmQucHVzaChuKSxvJiZkLnB1c2gobyk7bGV0IGM9UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5kKTtpZighY3x8IVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGksYy5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IHA9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gcC5zZWxlY3ROb2RlQ29udGVudHMoaSkscC5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxwLnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtyZXR1cm4gaSYmaS5pbm5lckhUTUx8fCIifXNldENvbnRlbnQoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFyKXJldHVybjtsZXQgcz1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cjtyLmlubmVySFRNTD1hLHMmJnIuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aSYmQTIuc2V0Q3Vyc29yVG9TdGFydChpKX1zZXRDdXJzb3JUb0VuZChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2kmJkEyLnNldEN1cnNvclRvRW5kKGkpfWZvY3VzKGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aSYmKGkuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8aS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxpLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWkmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWkmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntpLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIixpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpZighcilyZXR1cm47aWYoci5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxyLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGE9PT0iZW5kIiYmci50ZXh0Q29udGVudCYmci50ZXh0Q29udGVudC5sZW5ndGg+MCl7bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKG4pe2xldCBvPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksZD10aGlzLmdldExhc3RUZXh0Tm9kZShyKXx8cjtkLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/KG8uc2V0U3RhcnQoZCxkLnRleHRDb250ZW50Py5sZW5ndGh8fDApLG8uc2V0RW5kKGQsZC50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSk6KG8uc2VsZWN0Tm9kZUNvbnRlbnRzKGQpLG8uY29sbGFwc2UoITEpKSxuLnJlbW92ZUFsbFJhbmdlcygpLG4uYWRkUmFuZ2Uobyl9fXIuZm9jdXMoKTtsZXQgcz0oKT0+e2E9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGkpOmE9PT0iZW5kIiYmKCFyLnRleHRDb250ZW50fHxyLnRleHRDb250ZW50Lmxlbmd0aD09PTApP3RoaXMuc2V0Q3Vyc29yVG9FbmQoZSxpKTp0eXBlb2YgYT09Im51bWJlciImJlJlLnNldEN1cnNvclBvc2l0aW9uKHIsYSl9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yP3MoKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI/cygpOnNldFRpbWVvdXQoKCk9PnsoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXIpJiZzKCl9LDEwKX0pfWdldFNwbGl0Q29udGVudChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFpKXJldHVybiBudWxsO2xldCBuPWE/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qsbz1hPy5zaGFkb3dSb290LGQ9W107biYmZC5wdXNoKG4pLG8mJmQucHVzaChvKTtsZXQgYz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjKXtpZih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IE09aS50ZXh0Q29udGVudHx8IiIsUz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLE0ubGVuZ3RoKTtyZXR1cm57YmVmb3JlOk0uc3Vic3RyaW5nKDAsUyksYWZ0ZXI6TS5zdWJzdHJpbmcoUyl9fXJldHVybiBudWxsfWlmKCFSZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShpLGMuc3RhcnRDb250YWluZXIpKXtpZih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IE09aS50ZXh0Q29udGVudHx8IiIsUz1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLE0ubGVuZ3RoKTtyZXR1cm57YmVmb3JlOk0uc3Vic3RyaW5nKDAsUyksYWZ0ZXI6TS5zdWJzdHJpbmcoUyl9fXJldHVybiBudWxsfWxldCBwPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSxhKTtpZihwPT09bnVsbHx8cD09PTApcmV0dXJue2JlZm9yZToiIixhZnRlcjppLmlubmVySFRNTH07bGV0IGw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bC5zZXRTdGFydChpLDApLGwuc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksZi5zZXRTdGFydChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGYuc2V0RW5kKGksaS5jaGlsZE5vZGVzLmxlbmd0aCk7bGV0IGc9bC5jbG9uZUNvbnRlbnRzKCkseT1mLmNsb25lQ29udGVudHMoKSx2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3YuYXBwZW5kQ2hpbGQoZyk7bGV0IG09di5pbm5lckhUTUw7di5pbm5lckhUTUw9IiIsdi5hcHBlbmRDaGlsZCh5KTtsZXQgeD12LmlubmVySFRNTDtyZXR1cm57YmVmb3JlOm0sYWZ0ZXI6eH19fX0pO3ZhciBBOCx4Z3Q9YigoKT0+e1lhKCk7dWUoKTtCcygpO2pyKCk7QTg9Y2xhc3MgZXh0ZW5kcyB3MXt0eXBlPSJxdW90ZSI7bGFzdEtub3duQ3Vyc29yUG9zaXRpb249MDtsYXN0U2VsZWN0ZWRUZXh0PSIiO3NlbGVjdGlvbkhhbmRsZXI9bnVsbDtyZW5kZXIoZSxhKXtsZXQgaT1hPyIgc2VsZWN0ZWQiOiIiLHI9dGhpcy5nZXRQbGFjZWhvbGRlcigpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBxdW90ZSR7aX0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIGRhdGEtcGxhY2Vob2xkZXI9IiR7cn0iCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIKICAgICAgPjwvZGl2PgogICAgYH1zZXR1cChlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighcil7Y29uc29sZS5lcnJvcigiUXVvdGVCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIHF1b3RlIGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59YS5jb250ZW50JiYhci5pbm5lckhUTUwmJihyLmlubmVySFRNTD1hLmNvbnRlbnQpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHM9PntpLm9uSW5wdXQocyk7bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKSxpLm9uS2V5RG93bihzKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57aS5vbkZvY3VzKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57aS5vbkJsdXIoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9PntpLm9uQ29tcG9zaXRpb25TdGFydCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9PntpLm9uQ29tcG9zaXRpb25FbmQoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIscz0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pLGkub25Nb3VzZVVwPy4ocyl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzPT57c2V0VGltZW91dCgoKT0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSwwKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO24hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKX0pLHRoaXMuc2V0dXBTZWxlY3Rpb25IYW5kbGVyKGUscixhKX1zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxhLGkpe2xldCByPSgpPT57bGV0IG49d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFufHxuLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgbz1uLnRvU3RyaW5nKCk7aWYoby5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKTtyZXR1cm59bGV0IGQ9YS5nZXRSb290Tm9kZSgpLmhvc3QscD1kPy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxsPWQ/LnNoYWRvd1Jvb3QsZj1bXTtwJiZmLnB1c2gocCksbCYmZi5wdXNoKGwpO2xldCBnPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZik7aWYoIWcpcmV0dXJuO2xldCB5PVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZy5zdGFydENvbnRhaW5lciksdj1SZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShhLGcuZW5kQ29udGFpbmVyKTtpZih5fHx2KXtpZihvIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9bztsZXQgbT1SZS5jcmVhdGVSYW5nZUZyb21JbmZvKGcpLHg9bS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDpvLnRyaW0oKSxibG9ja0lkOmkuaWQscmFuZ2U6bSxyZWN0OngsaGFzU2VsZWN0aW9uOiEwfSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0OiIiLGJsb2NrSWQ6aS5pZCxoYXNTZWxlY3Rpb246ITF9KSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPXI7bGV0IHM9YS5nZXRSb290Tm9kZSgpLmhvc3Q7aWYocyl7bGV0IG49cy5kaXNjb25uZWN0ZWRDYWxsYmFjaztzLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWFzeW5jIGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25IYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1udWxsKSxuJiZhd2FpdCBuLmNhbGwocyl9LmJpbmQodGhpcyl9fWRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSxhKXtsZXQgaT1uZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6YSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSk7ZS5kaXNwYXRjaEV2ZW50KGkpfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogUXVvdGUgc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5xdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAke2guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzU1NSIsIiNiMGIwYjAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iQWRkIGEgcXVvdGUuLi4ifWdldEN1cnNvclBvc2l0aW9uKGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbj1hPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LG89YT8uc2hhZG93Um9vdCxkPVtdO24mJmQucHVzaChuKSxvJiZkLnB1c2gobyk7bGV0IGM9UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5kKTtpZighY3x8IVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGksYy5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IHA9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gcC5zZWxlY3ROb2RlQ29udGVudHMoaSkscC5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxwLnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO3JldHVybiBpJiZpLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudChlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighcilyZXR1cm47bGV0IHM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXJ8fGUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PXI7ci5pbm5lckhUTUw9YSxzJiZyLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aSYmQTIuc2V0Q3Vyc29yVG9TdGFydChpKX1zZXRDdXJzb3JUb0VuZChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aSYmQTIuc2V0Q3Vyc29yVG9FbmQoaSl9Zm9jdXMoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2kmJihpLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGkuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksaS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1pJiZlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1pJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57aS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcihlLGE9ImVuZCIsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighcilyZXR1cm47ci5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxyLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLHIuZm9jdXMoKTtsZXQgcz0oKT0+e2E9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlLGkpOmE9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUsaSk6dHlwZW9mIGE9PSJudW1iZXIiJiZSZS5zZXRDdXJzb3JQb3NpdGlvbihyLGEpfTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9zKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJnMoKX0pfWdldFNwbGl0Q29udGVudChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IG49YT8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxvPWE/LnNoYWRvd1Jvb3QsZD1bXTtuJiZkLnB1c2gobiksbyYmZC5wdXNoKG8pO2xldCBjPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoIWMpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1pLnRleHRDb250ZW50fHwiIixTPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCxTKSxhZnRlcjpNLnN1YnN0cmluZyhTKX19cmV0dXJuIG51bGx9aWYoIVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGksYy5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgTT1pLnRleHRDb250ZW50fHwiIixTPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sTS5sZW5ndGgpO3JldHVybntiZWZvcmU6TS5zdWJzdHJpbmcoMCxTKSxhZnRlcjpNLnN1YnN0cmluZyhTKX19cmV0dXJuIG51bGx9bGV0IHA9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlLGEpO2lmKHA9PT1udWxsfHxwPT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmkuaW5uZXJIVE1MfTtsZXQgbD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGY9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtsLnNldFN0YXJ0KGksMCksbC5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxmLnNldFN0YXJ0KGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksZi5zZXRFbmQoaSxpLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgZz1sLmNsb25lQ29udGVudHMoKSx5PWYuY2xvbmVDb250ZW50cygpLHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7di5hcHBlbmRDaGlsZChnKTtsZXQgbT12LmlubmVySFRNTDt2LmlubmVySFRNTD0iIix2LmFwcGVuZENoaWxkKHkpO2xldCB4PXYuaW5uZXJIVE1MO3JldHVybntiZWZvcmU6bSxhZnRlcjp4fX19fSk7dmFyIEQ4LHdndD1iKCgpPT57WWEoKTt1ZSgpO2pyKCk7Y2EoKTtydygpO3VvKCk7RDg9Y2xhc3MgZXh0ZW5kcyB3MXt0eXBlPSJjb2RlIjtoaWdobGlnaHRUaW1lcj1udWxsO2hpZ2hsaWdodEpzPW51bGw7cmVuZGVyKGUsYSl7bGV0IGk9ZS5tZXRhZGF0YT8ubGFuZ3VhZ2V8fCJ0eXBlc2NyaXB0IixyPWUuY29udGVudHx8IiIscz1yLnNwbGl0KGAKYCkubGVuZ3RoLG49IiI7Zm9yKGxldCBkPTE7ZDw9cztkKyspbis9YDxkaXYgY2xhc3M9ImxpbmUtbnVtYmVyIj4ke2R9PC9kaXY+YDtsZXQgbz1UOC5tYXAoZD0+e2xldCBjPWQudG9Mb3dlckNhc2UoKTtyZXR1cm5gPG9wdGlvbiB2YWx1ZT0iJHtjfSIgJHtjPT09aT8ic2VsZWN0ZWQiOiIifT4ke2R9PC9vcHRpb24+YH0pLmpvaW4oIiIpO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jay1jb250YWluZXIke2E/IiBzZWxlY3RlZCI6IiJ9IiBkYXRhLWxhbmd1YWdlPSIke2l9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWhlYWRlciI+CiAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJsYW5ndWFnZS1zZWxlY3RvciIgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSI+CiAgICAgICAgICAgICR7b30KICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29weS1idXR0b24iIHRpdGxlPSJDb3B5IGNvZGUiPgogICAgICAgICAgICA8c3ZnIGNsYXNzPSJjb3B5LWljb24iIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wIDYuNzVDMCA1Ljc4NC43ODQgNSAxLjc1IDVoMS41YS43NS43NSAwIDAxMCAxLjVoLTEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2Ny41YzAgLjEzOC4xMTIuMjUuMjUuMjVoNy41YS4yNS4yNSAwIDAwLjI1LS4yNXYtMS41YS43NS43NSAwIDAxMS41IDB2MS41QTEuNzUgMS43NSAwIDAxOS4yNSAxNmgtNy41QTEuNzUgMS43NSAwIDAxMCAxNC4yNXYtNy41eiI+PC9wYXRoPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDEuNzVDNSAuNzg0IDUuNzg0IDAgNi43NSAwaDcuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2Ny41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTFoLTcuNUExLjc1IDEuNzUgMCAwMTUgOS4yNXYtNy41em0xLjc1LS4yNWEuMjUuMjUgMCAwMC0uMjUuMjV2Ny41YzAgLjEzOC4xMTIuMjUuMjUuMjVoNy41YS4yNS4yNSAwIDAwLjI1LS4yNXYtNy41YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTcuNXoiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3B5LXRleHQiPkNvcHk8L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJvZHkiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGluZS1udW1iZXJzIj4ke259PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWNvbnRlbnQiPgogICAgICAgICAgICA8cHJlIGNsYXNzPSJjb2RlLXByZSI+PGNvZGUgY2xhc3M9ImNvZGUtZWRpdG9yIiAKICAgICAgICAgICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7ZS50eXBlfSIKICAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSI+JHt0aGlzLmVzY2FwZUh0bWwocil9PC9jb2RlPjwvcHJlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKSxzPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtYmxvY2stY29udGFpbmVyIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LWJ1dHRvbiIpLG89ZS5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2Utc2VsZWN0b3IiKTtpZighcnx8IXMpcmV0dXJuO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixjPT57bGV0IHA9Yy50YXJnZXQudmFsdWU7YS5tZXRhZGF0YT17Li4uYS5tZXRhZGF0YSxsYW5ndWFnZTpwfSxzLnNldEF0dHJpYnV0ZSgiZGF0YS1sYW5ndWFnZSIscCksYS5jb250ZW50JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ciYmdGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLGEpLGkub25JbnB1dCYmaS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKX0pLG4mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntsZXQgYz1yLnRleHRDb250ZW50fHwiIjt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYyk7bGV0IHA9bi5xdWVyeVNlbGVjdG9yKCIuY29weS10ZXh0IiksbD1wLnRleHRDb250ZW50O3AudGV4dENvbnRlbnQ9IkNvcGllZCEiLG4uY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dCgoKT0+e3AudGV4dENvbnRlbnQ9bCxuLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfWNhdGNoKHApe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjb3B5OiIscCk7bGV0IGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtsLnZhbHVlPWMsbC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGwuc3R5bGUub3BhY2l0eT0iMCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsKSxsLnNlbGVjdCgpO3RyeXtkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpO2xldCBmPW4ucXVlcnlTZWxlY3RvcigiLmNvcHktdGV4dCIpLGc9Zi50ZXh0Q29udGVudDtmLnRleHRDb250ZW50PSJDb3BpZWQhIixuLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoKCk9PntmLnRleHRDb250ZW50PWcsbi5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKX0sMmUzKX1jYXRjaChmKXtjb25zb2xlLmVycm9yKCJGYWxsYmFjayBjb3B5IGZhaWxlZDoiLGYpfWRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobCl9fSk7bGV0IGQ9ITE7ci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntkPSEwLHMuY2xhc3NMaXN0LmFkZCgiZWRpdGluZyIpO2xldCBjPXIudGV4dENvbnRlbnR8fCIiO3IudGV4dENvbnRlbnQ9YyxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntsZXQgcD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGw9d2luZG93LmdldFNlbGVjdGlvbigpO3IuZmlyc3RDaGlsZCYmKHAuc2V0U3RhcnQoci5maXJzdENoaWxkLDApLHAuY29sbGFwc2UoITApLGw/LnJlbW92ZUFsbFJhbmdlcygpLGw/LmFkZFJhbmdlKHApKX0pLGkub25Gb2N1cygpfSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2Q9ITEscy5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0aW5nIiksdGhpcy5hcHBseUhpZ2hsaWdodGluZyhlLGEpLGkub25CbHVyKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixjPT57aS5vbklucHV0KGMpLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSksY2xlYXJUaW1lb3V0KHRoaXMuaGlnaGxpZ2h0VGltZXIpfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixjPT57aWYoYy5rZXk9PT0iVGFiIil7Yy5wcmV2ZW50RGVmYXVsdCgpO2xldCBwPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihwJiZwLnJhbmdlQ291bnQ+MCl7bGV0IGw9cC5nZXRSYW5nZUF0KDApLGY9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAgIik7bC5pbnNlcnROb2RlKGYpLGwuc2V0U3RhcnRBZnRlcihmKSxsLnNldEVuZEFmdGVyKGYpLHAucmVtb3ZlQWxsUmFuZ2VzKCkscC5hZGRSYW5nZShsKSxpLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpLHRoaXMudXBkYXRlTGluZU51bWJlcnMoZSl9cmV0dXJufWlmKFsiQXJyb3dMZWZ0IiwiQXJyb3dSaWdodCIsIkFycm93VXAiLCJBcnJvd0Rvd24iXS5pbmNsdWRlcyhjLmtleSkpe2xldCBwPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSksbD1yLnRleHRDb250ZW50Py5sZW5ndGh8fDA7aWYoYy5rZXk9PT0iQXJyb3dMZWZ0IiYmcD09PTB8fGMua2V5PT09IkFycm93UmlnaHQiJiZwPT09bCl7aS5vbktleURvd24oYyk7cmV0dXJufWlmKGMua2V5PT09IkFycm93VXAifHxjLmtleT09PSJBcnJvd0Rvd24iKXtsZXQgZj0oci50ZXh0Q29udGVudHx8IiIpLnNwbGl0KGAKYCksZz10aGlzLmdldEN1cnJlbnRMaW5lSW5kZXgocik7aWYoYy5rZXk9PT0iQXJyb3dVcCImJmc9PT0wfHxjLmtleT09PSJBcnJvd0Rvd24iJiZnPT09Zi5sZW5ndGgtMSl7aS5vbktleURvd24oYyk7cmV0dXJufX19aS5vbktleURvd24oYyl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIixjPT57Yy5wcmV2ZW50RGVmYXVsdCgpO2xldCBwPWMuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgidGV4dC9wbGFpbiIpO2lmKHApe2xldCBsPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihsJiZsLnJhbmdlQ291bnQ+MCl7bGV0IGY9bC5nZXRSYW5nZUF0KDApO2YuZGVsZXRlQ29udGVudHMoKTtsZXQgZz1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShwKTtmLmluc2VydE5vZGUoZyksZi5zZXRTdGFydEFmdGVyKGcpLGYuc2V0RW5kQWZ0ZXIoZyksbC5yZW1vdmVBbGxSYW5nZXMoKSxsLmFkZFJhbmdlKGYpLGkub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSksdGhpcy51cGRhdGVMaW5lTnVtYmVycyhlKX19fSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+aS5vbkNvbXBvc2l0aW9uU3RhcnQoKSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9Pmkub25Db21wb3NpdGlvbkVuZCgpKSxhLmNvbnRlbnQmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1yJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUsYSl9KX11cGRhdGVMaW5lTnVtYmVycyhlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpLGk9ZS5xdWVyeVNlbGVjdG9yKCIubGluZS1udW1iZXJzIik7aWYoIWF8fCFpKXJldHVybjtsZXQgbj0oYS50ZXh0Q29udGVudHx8IiIpLnNwbGl0KGAKYCkubGVuZ3RofHwxLG89IiI7Zm9yKGxldCBkPTE7ZDw9bjtkKyspbys9YDxkaXYgY2xhc3M9ImxpbmUtbnVtYmVyIj4ke2R9PC9kaXY+YDtpLmlubmVySFRNTD1vfWdldEN1cnJlbnRMaW5lSW5kZXgoZSl7bGV0IGE9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFhfHxhLnJhbmdlQ291bnQ9PT0wKXJldHVybiAwO2xldCBpPWEuZ2V0UmFuZ2VBdCgwKSxyPWkuY2xvbmVSYW5nZSgpO3JldHVybiByLnNlbGVjdE5vZGVDb250ZW50cyhlKSxyLnNldEVuZChpLnN0YXJ0Q29udGFpbmVyLGkuc3RhcnRPZmZzZXQpLHIudG9TdHJpbmcoKS5zcGxpdChgCmApLmxlbmd0aC0xfWFzeW5jIGFwcGx5SGlnaGxpZ2h0aW5nKGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZighaSlyZXR1cm47dGhpcy5oaWdobGlnaHRKc3x8KHRoaXMuaGlnaGxpZ2h0SnM9YXdhaXQgTDIuZ2V0SW5zdGFuY2UoKS5sb2FkSGlnaGxpZ2h0SnMoKSk7bGV0IHI9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKSxzPWkudGV4dENvbnRlbnR8fCIiLG49YS5tZXRhZGF0YT8ubGFuZ3VhZ2V8fCJ0eXBlc2NyaXB0Ijt0cnl7bGV0IG89dGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQocyx7bGFuZ3VhZ2U6bixpZ25vcmVJbGxlZ2FsczohMH0pO28udmFsdWUmJihpLmlubmVySFRNTD1vLnZhbHVlLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1pJiZyIT09bnVsbCYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57UmUuc2V0Q3Vyc29yUG9zaXRpb24oaSxyKX0pKX1jYXRjaChvKXtjb25zb2xlLndhcm4oIlN5bnRheCBoaWdobGlnaHRpbmcgZmFpbGVkOiIsbyl9fWVzY2FwZUh0bWwoZSl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGEudGV4dENvbnRlbnQ9ZSxhLmlubmVySFRNTH1nZXRDb250ZW50KGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpPy50ZXh0Q29udGVudHx8IiJ9c2V0Q29udGVudChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoaSYmKGkudGV4dENvbnRlbnQ9YSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKGUpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1pKSl7bGV0IHI9e2lkOmkuZGF0YXNldC5ibG9ja0lkfHwiIix0eXBlOiJjb2RlIixjb250ZW50OmEsbWV0YWRhdGE6e2xhbmd1YWdlOmUucXVlcnlTZWxlY3RvcigiLmNvZGUtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1sYW5ndWFnZSIpfHwidHlwZXNjcmlwdCJ9fTt0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKGUscil9fWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aWYoIWEpcmV0dXJuIG51bGw7bGV0IGk9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFpfHxpLnJhbmdlQ291bnQ9PT0wKXJldHVybiBudWxsO2xldCByPWkuZ2V0UmFuZ2VBdCgwKTtpZighYS5jb250YWlucyhyLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgcz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiBzLnNlbGVjdE5vZGVDb250ZW50cyhhKSxzLnNldEVuZChyLnN0YXJ0Q29udGFpbmVyLHIuc3RhcnRPZmZzZXQpLHMudG9TdHJpbmcoKS5sZW5ndGh9c2V0Q3Vyc29yVG9TdGFydChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2EmJlJlLnNldEN1cnNvclBvc2l0aW9uKGEsMCl9c2V0Q3Vyc29yVG9FbmQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZihhKXtsZXQgaT1hLnRleHRDb250ZW50Py5sZW5ndGh8fDA7UmUuc2V0Q3Vyc29yUG9zaXRpb24oYSxpKX19Zm9jdXMoZSl7ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSxhPSJlbmQiKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2kmJihpLmZvY3VzKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57YT09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOmE9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiBhPT0ibnVtYmVyIiYmUmUuc2V0Q3Vyc29yUG9zaXRpb24oaSxhKX0pKX1nZXRTcGxpdENvbnRlbnQoZSl7bGV0IGE9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtpZihhPT09bnVsbClyZXR1cm4gbnVsbDtsZXQgaT10aGlzLmdldENvbnRlbnQoZSk7cmV0dXJue2JlZm9yZTppLnN1YnN0cmluZygwLGEpLGFmdGVyOmkuc3Vic3RyaW5nKGEpfX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIENvZGUgQmxvY2sgQ29udGFpbmVyIC0gTWluaW1hbGlzdCBzaGFkY24gc3R5bGUgKi8KICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuZWRpdGluZyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgLSBTaW1wbGlmaWVkICovCiAgICAgIC5jb2RlLWhlYWRlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmxhbmd1YWdlLXNlbGVjdG9yOmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29weSBCdXR0b24gLSBNaW5pbWFsICovCiAgICAgIC5jb3B5LWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0p0fTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktYnV0dG9uLmNvcGllZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDU5NjY5IiwiIzEwYjk4MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246aG92ZXIgLmNvcHktaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgICAKICAgICAgLmNvcHktdGV4dCB7CiAgICAgICAgbWluLXdpZHRoOiA0MHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLyogQ29kZSBCb2R5ICovCiAgICAgIC5jb2RlLWJvZHkgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogTGluZSBOdW1iZXJzIC0gU3VidGxlICovCiAgICAgIC5saW5lLW51bWJlcnMgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHBhZGRpbmc6IDEycHggMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICB9CiAgICAgIAogICAgICAubGluZS1udW1iZXIgewogICAgICAgIHBhZGRpbmc6IDAgMTJweCAwIDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAke1YwfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2RlIENvbnRlbnQgKi8KICAgICAgLmNvZGUtY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtcHJlIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtZmFtaWx5OiAke1YwfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFBsYWNlaG9sZGVyICovCiAgICAgIC5jb2RlLWVkaXRvcjplbXB0eTo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAiLy8gVHlwZSBvciBwYXN0ZSBjb2RlIGhlcmUuLi4iOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFdoZW4gZWRpdGluZyAoZm9jdXNlZCksIHNob3cgZ3JleSB0ZXh0IHdpdGhvdXQgaGlnaGxpZ2h0aW5nICovCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIC5jb2RlLWVkaXRvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfSAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1ibG9jay1jb250YWluZXIuZWRpdGluZyAuY29kZS1lZGl0b3IgKiB7CiAgICAgICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLyogU3ludGF4IEhpZ2hsaWdodGluZyAtIE11dGVkIGNvbG9ycyAqLwogICAgICAuY29kZS1lZGl0b3IgLmhsanMta2V5d29yZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc3RyaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwNTk2NjkiLCIjMTBiOTgxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbnVtYmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtZnVuY3Rpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1jb21tZW50IHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjNmI3MjgwIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXZhcmlhYmxlLAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYXR0ciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWNsYXNzLAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdGl0bGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXBhcmFtcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWJ1aWx0X2luIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbGl0ZXJhbCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLW1ldGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1wdW5jdHVhdGlvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2QxZDVkYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXRhZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWF0dHJpYnV0ZSB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLXRhZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXNlbGVjdG9yLWNsYXNzIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItaWQgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNlbGVjdGlvbiAqLwogICAgICAuY29kZS1lZGl0b3I6OnNlbGVjdGlvbiwKICAgICAgLmNvZGUtZWRpdG9yICo6OnNlbGVjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoOTksIDEwMiwgMjQxLCAwLjIpIiwicmdiYSg5OSwgMTAyLCAyNDEsIDAuMykiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNjcm9sbGJhciBzdHlsaW5nIC0gTWluaW1hbCAqLwogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgIGB9fX0pO3ZhciBFOCxNZ3Q9YigoKT0+e1lhKCk7dWUoKTtCcygpO2pyKCk7RTg9Y2xhc3MgZXh0ZW5kcyB3MXt0eXBlPSJsaXN0IjtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7c2VsZWN0aW9uSGFuZGxlcj1udWxsO3JlbmRlcihlLGEpe2xldCBpPWE/IiBzZWxlY3RlZCI6IiIscz0oZS5tZXRhZGF0YT8ubGlzdFR5cGV8fCJ1bm9yZGVyZWQiKT09PSJvcmRlcmVkIj8ib2wiOiJ1bCIsbj10aGlzLnJlbmRlckxpc3RDb250ZW50KGUuY29udGVudCxlLm1ldGFkYXRhKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgbGlzdCR7aX0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iCiAgICAgID4ke259PC9kaXY+CiAgICBgfXJlbmRlckxpc3RDb250ZW50KGUsYSl7aWYoIWUpcmV0dXJuIjx1bD48bGk+PC9saT48L3VsPiI7bGV0IHI9KGE/Lmxpc3RUeXBlfHwidW5vcmRlcmVkIik9PT0ib3JkZXJlZCI/Im9sIjoidWwiLHM9ZS5zcGxpdChgCmApLmZpbHRlcihvPT5vLnRyaW0oKSk7aWYocy5sZW5ndGg9PT0wKXJldHVybmA8JHtyfT48bGk+PC9saT48LyR7cn0+YDtsZXQgbj1zLm1hcChvPT5gPGxpPiR7b308L2xpPmApLmpvaW4oIiIpO3JldHVybmA8JHtyfT4ke259PC8ke3J9PmB9c2V0dXAoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighcil7Y29uc29sZS5lcnJvcigiTGlzdEJsb2NrSGFuZGxlci5zZXR1cDogTm8gbGlzdCBibG9jayBlbGVtZW50IGZvdW5kIik7cmV0dXJufWEuY29udGVudCYmIXIuaW5uZXJIVE1MJiYoci5pbm5lckhUTUw9dGhpcy5yZW5kZXJMaXN0Q29udGVudChhLmNvbnRlbnQsYS5tZXRhZGF0YSkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHM9PntpLm9uSW5wdXQocyk7bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHM9PntsZXQgbj10aGlzLmdldEN1cnNvclBvc2l0aW9uKGUpO2lmKG4hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1uKSxzLmtleT09PSJFbnRlciImJiFzLnNoaWZ0S2V5KXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyYmby5yYW5nZUNvdW50PjApe2xldCBjPW8uZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5wYXJlbnRFbGVtZW50Py5jbG9zZXN0KCJsaSIpO2lmKGMmJmMudGV4dENvbnRlbnQ9PT0iIil7cy5wcmV2ZW50RGVmYXVsdCgpLGkub25LZXlEb3duKHMpO3JldHVybn19fWkub25LZXlEb3duKHMpfSksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntpLm9uRm9jdXMoKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntpLm9uQmx1cigpfSksci5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2kub25Db21wb3NpdGlvblN0YXJ0KCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2kub25Db21wb3NpdGlvbkVuZCgpfSksci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixzPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249biksaS5vbk1vdXNlVXA/LihzKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHM9PntzZXRUaW1lb3V0KCgpPT57bGV0IG49dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihlKTtuIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249bil9LDApfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIscz0+e2xldCBuPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oZSk7biE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW4pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIoZSxyLGEpfXNldHVwU2VsZWN0aW9uSGFuZGxlcihlLGEsaSl7bGV0IHI9KCk9PntsZXQgbj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW58fG4ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBvPW4udG9TdHJpbmcoKTtpZihvLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQoZSx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgZD1hLmdldFJvb3ROb2RlKCkuaG9zdCxwPWQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGw9ZD8uc2hhZG93Um9vdCxmPVtdO3AmJmYucHVzaChwKSxsJiZmLnB1c2gobCk7bGV0IGc9UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5mKTtpZighZylyZXR1cm47bGV0IHk9UmUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oYSxnLnN0YXJ0Q29udGFpbmVyKSx2PVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGEsZy5lbmRDb250YWluZXIpO2lmKHl8fHYpe2lmKG8hPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1vO2xldCBtPVJlLmNyZWF0ZVJhbmdlRnJvbUluZm8oZykseD1tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLHt0ZXh0Om8udHJpbSgpLGJsb2NrSWQ6aS5pZCxyYW5nZTptLHJlY3Q6eCxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KGUse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixyKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9cjtsZXQgcz1hLmdldFJvb3ROb2RlKCkuaG9zdDtpZihzKXtsZXQgbj1zLmRpc2Nvbm5lY3RlZENhbGxiYWNrO3MuZGlzY29ubmVjdGVkQ2FsbGJhY2s9YXN5bmMgZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvbkhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuc2VsZWN0aW9uSGFuZGxlciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPW51bGwpLG4mJmF3YWl0IG4uY2FsbChzKX0uYmluZCh0aGlzKX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudChlLGEpe2xldCBpPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDphLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTtlLmRpc3BhdGNoRXZlbnQoaSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBMaXN0IHNwZWNpZmljIHN0eWxlcyAqLwogICAgICAuYmxvY2subGlzdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLmJsb2NrLmxpc3QgdWwsCiAgICAgIC5ibG9jay5saXN0IG9sIHsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCBsaTpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7cmV0dXJuIiJ9Z2V0Q3Vyc29yUG9zaXRpb24oZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IG49YT8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxvPWE/LnNoYWRvd1Jvb3QsZD1bXTtuJiZkLnB1c2gobiksbyYmZC5wdXNoKG8pO2xldCBjPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoIWN8fCFSZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShpLGMuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBwPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIHAuc2VsZWN0Tm9kZUNvbnRlbnRzKGkpLHAuc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCkscC50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFpKXJldHVybiIiO2xldCByPWkucXVlcnlTZWxlY3RvckFsbCgibGkiKTtyZXR1cm4gQXJyYXkuZnJvbShyKS5tYXAobj0+bi50ZXh0Q29udGVudHx8IiIpLmpvaW4oYApgKX1zZXRDb250ZW50KGUsYSxpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpcmV0dXJuO2xldCBzPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1yfHxlLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1yLG89ci5xdWVyeVNlbGVjdG9yKCJ1bCwgb2wiKT8udGFnTmFtZT09PSJPTCI7ci5pbm5lckhUTUw9dGhpcy5yZW5kZXJMaXN0Q29udGVudChhLHtsaXN0VHlwZTpvPyJvcmRlcmVkIjoidW5vcmRlcmVkIn0pLHMmJnIuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFpKXJldHVybjtsZXQgcj1pLnF1ZXJ5U2VsZWN0b3IoImxpIik7aWYocil7bGV0IHM9dGhpcy5nZXRGaXJzdFRleHROb2RlKHIpO2lmKHMpe2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7bi5zZXRTdGFydChzLDApLG4uc2V0RW5kKHMsMCksbz8ucmVtb3ZlQWxsUmFuZ2VzKCksbz8uYWRkUmFuZ2Uobil9fX1zZXRDdXJzb3JUb0VuZChlLGEpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighaSlyZXR1cm47bGV0IHI9aS5xdWVyeVNlbGVjdG9yKCJsaTpsYXN0LWNoaWxkIik7aWYocil7bGV0IHM9dGhpcy5nZXRMYXN0VGV4dE5vZGUocik7aWYocyl7bGV0IG49ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKSxkPXMudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtuLnNldFN0YXJ0KHMsZCksbi5zZXRFbmQocyxkKSxvPy5yZW1vdmVBbGxSYW5nZXMoKSxvPy5hZGRSYW5nZShuKX19fWdldEZpcnN0VGV4dE5vZGUoZSl7aWYoZS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiBlO2ZvcihsZXQgYT0wO2E8ZS5jaGlsZE5vZGVzLmxlbmd0aDthKyspe2xldCBpPXRoaXMuZ2V0Rmlyc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbYV0pO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9Z2V0TGFzdFRleHROb2RlKGUpe2lmKGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gZTtmb3IobGV0IGE9ZS5jaGlsZE5vZGVzLmxlbmd0aC0xO2E+PTA7YS0tKXtsZXQgaT10aGlzLmdldExhc3RUZXh0Tm9kZShlLmNoaWxkTm9kZXNbYV0pO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9Zm9jdXMoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aSYmKGkuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8aS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxpLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWkmJmUuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWkmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntpLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIixpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIXIpcmV0dXJuO3IuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ci5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyLmZvY3VzKCk7bGV0IHM9KCk9PnthPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoZSxpKTphPT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlLGkpOnR5cGVvZiBhPT0ibnVtYmVyIiYmdGhpcy5zZXRDdXJzb3JUb0VuZChlLGkpfTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cj9zKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09cnx8ZS5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09cikmJnMoKX0pfWdldFNwbGl0Q29udGVudChlLGEpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0IiksbnVsbH19fSk7dmFyIFA4LHpndD1iKCgpPT57WWEoKTt1ZSgpO1A4PWNsYXNzIGV4dGVuZHMgdzF7dHlwZT0iaW1hZ2UiO3JlbmRlcihlLGEpe2xldCBpPWUubWV0YWRhdGE/LnVybCxyPWUuY29udGVudHx8IkltYWdlIixzPWUubWV0YWRhdGE/LmxvYWRpbmc7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS1ibG9jay1jb250YWluZXIke2E/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke2UuaWR9IgogICAgICAgICAgIGRhdGEtaGFzLWltYWdlPSIkeyEhaX0iCiAgICAgICAgICAgdGFiaW5kZXg9IjAiPgogICAgICAgICR7cz90aGlzLnJlbmRlckxvYWRpbmcoKTppP3RoaXMucmVuZGVySW1hZ2UoaSxyKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKCl9CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIAogICAgICAgICAgICAgICBjbGFzcz0iaW1hZ2UtZmlsZS1pbnB1dCIgCiAgICAgICAgICAgICAgIGFjY2VwdD0iaW1hZ2UvKiIgCiAgICAgICAgICAgICAgIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgLz4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBsYWNlaG9sZGVyKCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIiIHN0eWxlPSJjdXJzb3I6IHBvaW50ZXI7Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtaWNvbiIgc3R5bGU9InBvaW50ZXItZXZlbnRzOiBub25lOyI+CiAgICAgICAgICA8c3ZnIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPgogICAgICAgICAgICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiByeT0iMiIvPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSI4LjUiIGN5PSI4LjUiIHI9IjEuNSIvPgogICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPSIyMSAxNSAxNiAxMCA1IDIxIi8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtdGV4dCIgc3R5bGU9InBvaW50ZXItZXZlbnRzOiBub25lOyI+Q2xpY2sgdG8gdXBsb2FkIGFuIGltYWdlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLWhpbnQiIHN0eWxlPSJwb2ludGVyLWV2ZW50czogbm9uZTsiPm9yIGRyYWcgYW5kIGRyb3A8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckltYWdlKGUsYSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJpbWFnZS1jb250YWluZXIiPgogICAgICAgIDxpbWcgc3JjPSIke2V9IiBhbHQ9IiR7dGhpcy5lc2NhcGVIdG1sKGEpfSIgLz4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckxvYWRpbmcoKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWxvYWRpbmciPgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy10ZXh0Ij5VcGxvYWRpbmcgaW1hZ2UuLi48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsYSxpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1ibG9jay1jb250YWluZXIiKSxzPWUucXVlcnlTZWxlY3RvcigiLmltYWdlLWZpbGUtaW5wdXQiKTtpZighcil7Y29uc29sZS5lcnJvcigiSW1hZ2VCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIGNvbnRhaW5lciIpO3JldHVybn1pZighcyl7Y29uc29sZS5lcnJvcigiSW1hZ2VCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIGZpbGUgaW5wdXQiKTtyZXR1cm59bGV0IG49ci5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIik7biYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbz0+e28ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogUGxhY2Vob2xkZXIgY2xpY2tlZCwgb3BlbmluZyBmaWxlIHNlbGVjdG9yIikscy5jbGljaygpfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntpLm9uRm9jdXMoKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhc3luYyBvPT57bGV0IGM9by50YXJnZXQuZmlsZXM/LlswXTtjJiYoY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBGaWxlIHNlbGVjdGVkOiIsYy5uYW1lKSxhd2FpdCB0aGlzLmhhbmRsZUZpbGVVcGxvYWQoYyxhLGkpKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLG89PntvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSxhLm1ldGFkYXRhPy51cmx8fHIuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsbz0+e28ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGFzeW5jIG89PntvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO2xldCBkPW8uZGF0YVRyYW5zZmVyPy5maWxlc1swXTtkJiZkLnR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIikmJiFhLm1ldGFkYXRhPy51cmwmJmF3YWl0IHRoaXMuaGFuZGxlRmlsZVVwbG9hZChkLGEsaSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLHIuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+e2lmKChvLmtleT09PSJEZWxldGUifHxvLmtleT09PSJCYWNrc3BhY2UiKSYmYS5tZXRhZGF0YT8udXJsKXthLm1ldGFkYXRhLnVybD12b2lkIDAsYS5tZXRhZGF0YS5sb2FkaW5nPSExLGEuY29udGVudD0iIixpLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpO3JldHVybn1pLm9uS2V5RG93bihvKX0pfWFzeW5jIGhhbmRsZUZpbGVVcGxvYWQoZSxhLGkpe2lmKGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogU3RhcnRpbmcgZmlsZSB1cGxvYWQiLHtmaWxlTmFtZTplLm5hbWUsZmlsZVNpemU6ZS5zaXplLGJsb2NrSWQ6YS5pZH0pLCFlLnR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIikpe2NvbnNvbGUuZXJyb3IoIkludmFsaWQgZmlsZSB0eXBlOiIsZS50eXBlKTtyZXR1cm59bGV0IHI9MTAqMTAyNCoxMDI0O2lmKGUuc2l6ZT5yKXtjb25zb2xlLmVycm9yKCJGaWxlIHRvbyBsYXJnZS4gTWF4aW11bSBzaXplIGlzIDEwTUIiKTtyZXR1cm59YS5tZXRhZGF0YXx8KGEubWV0YWRhdGE9e30pLGEubWV0YWRhdGEubG9hZGluZz0hMCxhLm1ldGFkYXRhLmZpbGVOYW1lPWUubmFtZSxhLm1ldGFkYXRhLmZpbGVTaXplPWUuc2l6ZSxhLm1ldGFkYXRhLm1pbWVUeXBlPWUudHlwZSxjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFNldCBsb2FkaW5nIHN0YXRlLCByZXF1ZXN0aW5nIHVwZGF0ZSIpLGkub25SZXF1ZXN0VXBkYXRlPy4oKTt0cnl7bGV0IHM9YXdhaXQgdGhpcy5maWxlVG9EYXRhVXJsKGUpO2EubWV0YWRhdGEudXJsPXMsYS5tZXRhZGF0YS5sb2FkaW5nPSExO2xldCBuPWUubmFtZS5yZXBsYWNlKC9cLlteLy5dKyQvLCIiKTthLmNvbnRlbnQ9bixjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IFVwbG9hZCBjb21wbGV0ZSwgcmVxdWVzdGluZyB1cGRhdGUiLHtoYXNVcmw6ISFhLm1ldGFkYXRhLnVybCx1cmxMZW5ndGg6cy5sZW5ndGgsYWx0VGV4dDphLmNvbnRlbnR9KSxpLm9uUmVxdWVzdFVwZGF0ZT8uKCl9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwbG9hZCBpbWFnZToiLHMpLGEubWV0YWRhdGEubG9hZGluZz0hMSxpLm9uUmVxdWVzdFVwZGF0ZT8uKCl9fWZpbGVUb0RhdGFVcmwoZSl7cmV0dXJuIG5ldyBQcm9taXNlKChhLGkpPT57bGV0IHI9bmV3IEZpbGVSZWFkZXI7ci5vbmxvYWQ9cz0+e2xldCBuPXMudGFyZ2V0Py5yZXN1bHQ7dHlwZW9mIG49PSJzdHJpbmciP2Eobik6aShuZXcgRXJyb3IoIkZhaWxlZCB0byByZWFkIGZpbGUiKSl9LHIub25lcnJvcj1pLHIucmVhZEFzRGF0YVVSTChlKX0pfWVzY2FwZUh0bWwoZSl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGEudGV4dENvbnRlbnQ9ZSxhLmlubmVySFRNTH1nZXRDb250ZW50KGUpe3JldHVybiB0aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQoZSk/LmNvbnRlbnR8fCIifXNldENvbnRlbnQoZSxhKXtsZXQgaT10aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQoZSk7aSYmKGkuY29udGVudD1hKX1nZXRCbG9ja0Zyb21FbGVtZW50KGUpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4gaT97aWQ6aSx0eXBlOiJpbWFnZSIsY29udGVudDoiIixtZXRhZGF0YTp7fX06bnVsbH1nZXRDdXJzb3JQb3NpdGlvbihlKXtyZXR1cm4gbnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe3RoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7dGhpcy5mb2N1cyhlKX1mb2N1cyhlKXtlLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1ibG9jay1jb250YWluZXIiKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSxhPSJlbmQiKXt0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtyZXR1cm4gbnVsbH1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIEltYWdlIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIuc2VsZWN0ZWQgewogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke2guYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFVwbG9hZCBQbGFjZWhvbGRlciAqLwogICAgICAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyOmhvdmVyIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lci5kcmFnLW92ZXIgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZmY2ZmYiLCIjMWUxYjRiIil9OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLWljb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnVwbG9hZC10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQogICAgICAKICAgICAgLnVwbG9hZC1oaW50IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSW1hZ2UgQ29udGFpbmVyICovCiAgICAgIC5pbWFnZS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1jb250YWluZXIgaW1nIHsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQogICAgICAKICAgICAgLyogTG9hZGluZyBTdGF0ZSAqLwogICAgICAuaW1hZ2UtbG9hZGluZyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiIzYzNjZmMSIsIiM4MThjZjgiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CiAgICAgIAogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CiAgICAgIAogICAgICAubG9hZGluZy10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRmlsZSBpbnB1dCBoaWRkZW4gKi8KICAgICAgLmltYWdlLWZpbGUtaW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgYH19fSk7dmFyIEk4LGtndD1iKCgpPT57WWEoKTt1ZSgpO0k4PWNsYXNzIGV4dGVuZHMgdzF7dHlwZT0ieW91dHViZSI7cmVuZGVyKGUsYSl7bGV0IGk9ZS5tZXRhZGF0YT8udmlkZW9JZCxyPWUubWV0YWRhdGE/LnVybHx8IiI7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLWJsb2NrLWNvbnRhaW5lciR7YT8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1oYXMtdmlkZW89IiR7ISFpfSI+CiAgICAgICAgJHtpP3RoaXMucmVuZGVyVmlkZW8oaSk6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcihyKX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBsYWNlaG9sZGVyKGUpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1wbGFjZWhvbGRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXItaWNvbiI+CiAgICAgICAgICA8c3ZnIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTkuNjE1IDMuMTg0Yy0zLjYwNC0uMjQ2LTExLjYzMS0uMjQ1LTE1LjIzIDAtMy44OTcuMjY2LTQuMzU2IDIuNjItNC4zODUgOC44MTYuMDI5IDYuMTg1LjQ4NCA4LjU0OSA0LjM4NSA4LjgxNiAzLjYuMjQ1IDExLjYyNi4yNDYgMTUuMjMgMCAzLjg5Ny0uMjY2IDQuMzU2LTIuNjIgNC4zODUtOC44MTYtLjAyOS02LjE4NS0uNDg0LTguNTQ5LTQuMzg1LTguODE2em0tMTAuNjE1IDEyLjgxNnYtOGw4IDMuOTkzLTggNC4wMDd6Ii8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci10ZXh0Ij5FbnRlciBZb3VUdWJlIFVSTDwvZGl2PgogICAgICAgIDxpbnB1dCB0eXBlPSJ1cmwiIAogICAgICAgICAgICAgICBjbGFzcz0ieW91dHViZS11cmwtaW5wdXQiIAogICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iaHR0cHM6Ly95b3V0dWJlLmNvbS93YXRjaD92PS4uLiIgCiAgICAgICAgICAgICAgIHZhbHVlPSIke3RoaXMuZXNjYXBlSHRtbChlKX0iIC8+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0ieW91dHViZS1lbWJlZC1idG4iPkVtYmVkIFZpZGVvPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJWaWRlbyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtY29udGFpbmVyIj4KICAgICAgICA8aWZyYW1lIAogICAgICAgICAgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke2V9IgogICAgICAgICAgZnJhbWVib3JkZXI9IjAiCiAgICAgICAgICBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIKICAgICAgICAgIGFsbG93ZnVsbHNjcmVlbgogICAgICAgID48L2lmcmFtZT4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsYSxpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpO2lmKCFyKXJldHVybjtpZihhLm1ldGFkYXRhPy52aWRlb0lkKXtyLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmkub25Gb2N1cygpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5pLm9uQmx1cigpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89Pnsoby5rZXk9PT0iRGVsZXRlInx8by5rZXk9PT0iQmFja3NwYWNlIikmJm8ucHJldmVudERlZmF1bHQoKSxpLm9uS2V5RG93bihvKX0pO3JldHVybn1sZXQgcz1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLXVybC1pbnB1dCIpLG49ZS5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1lbWJlZC1idG4iKTshc3x8IW58fChzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dGhpcy5lbWJlZFZpZGVvKHMudmFsdWUsYSxpKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbz0+e28ua2V5PT09IkVudGVyIj8oby5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZW1iZWRWaWRlbyhzLnZhbHVlLGEsaSkpOm8ua2V5PT09IkVzY2FwZSImJihvLnByZXZlbnREZWZhdWx0KCkscy5ibHVyKCkpfSkscy5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsbz0+e3NldFRpbWVvdXQoKCk9PntsZXQgZD1zLnZhbHVlO3RoaXMuZXh0cmFjdFlvdVR1YmVWaWRlb0lkKGQpJiZ0aGlzLmVtYmVkVmlkZW8oZCxhLGkpfSwwKX0pLHMuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57YS5tZXRhZGF0YXx8KGEubWV0YWRhdGE9e30pLGEubWV0YWRhdGEudXJsPXMudmFsdWV9KSl9ZW1iZWRWaWRlbyhlLGEsaSl7bGV0IHI9dGhpcy5leHRyYWN0WW91VHViZVZpZGVvSWQoZSk7aWYoIXIpe2NvbnNvbGUuZXJyb3IoIkludmFsaWQgWW91VHViZSBVUkwiKTtyZXR1cm59YS5tZXRhZGF0YXx8KGEubWV0YWRhdGE9e30pLGEubWV0YWRhdGEudmlkZW9JZD1yLGEubWV0YWRhdGEudXJsPWUsYS5jb250ZW50PWBZb3VUdWJlIFZpZGVvOiAke3J9YCxpLm9uUmVxdWVzdFVwZGF0ZT8uKCl9ZXh0cmFjdFlvdVR1YmVWaWRlb0lkKGUpe2xldCBhPVsvKD86eW91dHViZVwuY29tXC8oPzpbXlwvXStcLy4rXC98KD86dnxlKD86bWJlZCk/KVwvfC4qWz8mXXY9KXx5b3V0dVwuYmVcLykoW14iJj9cLyBdezExfSkvLC95b3V0dWJlXC5jb21cL2VtYmVkXC8oW14iJj9cLyBdezExfSkvLC95b3V0dWJlXC5jb21cL3dhdGNoXD92PShbXiImP1wvIF17MTF9KS8sL3lvdXR1XC5iZVwvKFteIiY/XC8gXXsxMX0pL107Zm9yKGxldCBpIG9mIGEpe2xldCByPWUubWF0Y2goaSk7aWYocilyZXR1cm4gclsxXX1yZXR1cm4gbnVsbH1lc2NhcGVIdG1sKGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBhLnRleHRDb250ZW50PWUsYS5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsYSl7bGV0IGk9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2kmJihpLmNvbnRlbnQ9YSl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4gaT97aWQ6aSx0eXBlOiJ5b3V0dWJlIixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKGUpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXt0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIiksaT1lLnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLXVybC1pbnB1dCIpO2k/aS5mb2N1cygpOmEmJmEuZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IoZSxhPSJlbmQiKXt0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtyZXR1cm4gbnVsbH1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIFlvdVR1YmUgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC55b3V0dWJlLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogWW91VHViZSBQbGFjZWhvbGRlciAqLwogICAgICAueW91dHViZS1wbGFjZWhvbGRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMzJweCAyNHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNlZjQ0NDQiKX07CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDQwMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxZjI5MzciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLXVybC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0biB7CiAgICAgICAgcGFkZGluZzogNnB4IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxMTE4MjciKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0bjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1lbWJlZC1idG46YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAvKiBZb3VUdWJlIENvbnRhaW5lciAqLwogICAgICAueW91dHViZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyAvKiAxNjo5IGFzcGVjdCByYXRpbyAqLwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiIzAwMDAwMCIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtY29udGFpbmVyIGlmcmFtZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXI6IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CiAgICBgfX19KTt2YXIgTjgsU2d0PWIoKCk9PntZYSgpO3VlKCk7Tjg9Y2xhc3MgZXh0ZW5kcyB3MXt0eXBlPSJhdHRhY2htZW50IjtyZW5kZXIoZSxhKXtsZXQgaT1lLm1ldGFkYXRhPy5maWxlc3x8W107cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciR7YT8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgdGFiaW5kZXg9IjAiPgogICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaWNvbiI+XHV7MUY0Q0V9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LXRpdGxlIj5GaWxlIEF0dGFjaG1lbnRzPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1saXN0Ij4KICAgICAgICAgICR7aS5sZW5ndGg+MD90aGlzLnJlbmRlckZpbGVzKGkpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIoKX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgCiAgICAgICAgICAgICAgIGNsYXNzPSJhdHRhY2htZW50LWZpbGUtaW5wdXQiIAogICAgICAgICAgICAgICBtdWx0aXBsZSAKICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiAvPgogICAgICAgICR7aS5sZW5ndGg+MD8nPGJ1dHRvbiBjbGFzcz0iYWRkLW1vcmUtZmlsZXMiPkFkZCBNb3JlIEZpbGVzPC9idXR0b24+JzoiIn0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBsYWNlaG9sZGVyKCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LXBsYWNlaG9sZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci10ZXh0Ij5DbGljayB0byBhZGQgZmlsZXM8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci1oaW50Ij5vciBkcmFnIGFuZCBkcm9wPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJGaWxlcyhlKXtyZXR1cm4gZS5tYXAoYT0+YAogICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWl0ZW0iIGRhdGEtZmlsZS1pZD0iJHthLmlkfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1pY29uIj4ke3RoaXMuZ2V0RmlsZUljb24oYS50eXBlKX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWluZm8iPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1uYW1lIj4ke3RoaXMuZXNjYXBlSHRtbChhLm5hbWUpfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1zaXplIj4ke3RoaXMuZm9ybWF0RmlsZVNpemUoYS5zaXplKX08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtZmlsZSIgZGF0YS1maWxlLWlkPSIke2EuaWR9Ij5ceEQ3PC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgYCkuam9pbigiIil9c2V0dXAoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIikscz1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWZpbGUtaW5wdXQiKTtpZighcnx8IXMpe2NvbnNvbGUuZXJyb3IoIkF0dGFjaG1lbnRCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufWEubWV0YWRhdGF8fChhLm1ldGFkYXRhPXt9KSxhLm1ldGFkYXRhLmZpbGVzfHwoYS5tZXRhZGF0YS5maWxlcz1bXSk7bGV0IG49ci5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1wbGFjZWhvbGRlciIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGQ9PntkLnByZXZlbnREZWZhdWx0KCksZC5zdG9wUHJvcGFnYXRpb24oKSxzLmNsaWNrKCl9KTtsZXQgbz1yLnF1ZXJ5U2VsZWN0b3IoIi5hZGQtbW9yZS1maWxlcyIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGQ9PntkLnByZXZlbnREZWZhdWx0KCksZC5zdG9wUHJvcGFnYXRpb24oKSxzLmNsaWNrKCl9KSxzLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsYXN5bmMgZD0+e2xldCBjPWQudGFyZ2V0LHA9Yy5maWxlcztwJiZwLmxlbmd0aD4wJiYoYXdhaXQgdGhpcy5oYW5kbGVGaWxlQXR0YWNobWVudHMocCxhLGkpLGMudmFsdWU9IiIpfSksci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZD0+e2xldCBjPWQudGFyZ2V0O2lmKGMuY2xhc3NMaXN0LmNvbnRhaW5zKCJyZW1vdmUtZmlsZSIpKXtkLnByZXZlbnREZWZhdWx0KCksZC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgcD1jLmdldEF0dHJpYnV0ZSgiZGF0YS1maWxlLWlkIik7cCYmdGhpcy5yZW1vdmVGaWxlKHAsYSxpKX19KSxyLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixkPT57ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixkPT57ZC5wcmV2ZW50RGVmYXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCksci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsYXN5bmMgZD0+e2QucHJldmVudERlZmF1bHQoKSxkLnN0b3BQcm9wYWdhdGlvbigpLHIuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7bGV0IGM9ZC5kYXRhVHJhbnNmZXI/LmZpbGVzO2MmJmMubGVuZ3RoPjAmJmF3YWl0IHRoaXMuaGFuZGxlRmlsZUF0dGFjaG1lbnRzKGMsYSxpKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSksci5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixkPT57aWYoKGQua2V5PT09IkRlbGV0ZSJ8fGQua2V5PT09IkJhY2tzcGFjZSIpJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ciYmYS5tZXRhZGF0YT8uZmlsZXM/Lmxlbmd0aD4wKXtkLnByZXZlbnREZWZhdWx0KCksYS5tZXRhZGF0YS5maWxlcz1bXSxpLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWkub25LZXlEb3duKGQpfSl9YXN5bmMgaGFuZGxlRmlsZUF0dGFjaG1lbnRzKGUsYSxpKXthLm1ldGFkYXRhfHwoYS5tZXRhZGF0YT17fSksYS5tZXRhZGF0YS5maWxlc3x8KGEubWV0YWRhdGEuZmlsZXM9W10pO2ZvcihsZXQgciBvZiBBcnJheS5mcm9tKGUpKXRyeXtsZXQgcz1hd2FpdCB0aGlzLmZpbGVUb0RhdGFVcmwociksbj17aWQ6dGhpcy5nZW5lcmF0ZUlkKCksbmFtZTpyLm5hbWUsc2l6ZTpyLnNpemUsdHlwZTpyLnR5cGUsZGF0YTpzfTthLm1ldGFkYXRhLmZpbGVzLnB1c2gobil9Y2F0Y2gocyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGF0dGFjaCBmaWxlOiIsci5uYW1lLHMpfWEuY29udGVudD1gJHthLm1ldGFkYXRhLmZpbGVzLmxlbmd0aH0gZmlsZSR7YS5tZXRhZGF0YS5maWxlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXR0YWNoZWRgLGkub25SZXF1ZXN0VXBkYXRlPy4oKX1yZW1vdmVGaWxlKGUsYSxpKXthLm1ldGFkYXRhPy5maWxlcyYmKGEubWV0YWRhdGEuZmlsZXM9YS5tZXRhZGF0YS5maWxlcy5maWx0ZXIocj0+ci5pZCE9PWUpLGEuY29udGVudD1hLm1ldGFkYXRhLmZpbGVzLmxlbmd0aD4wP2Ake2EubWV0YWRhdGEuZmlsZXMubGVuZ3RofSBmaWxlJHthLm1ldGFkYXRhLmZpbGVzLmxlbmd0aCE9PTE/InMiOiIifSBhdHRhY2hlZGA6IiIsaS5vblJlcXVlc3RVcGRhdGU/LigpKX1maWxlVG9EYXRhVXJsKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoYSxpKT0+e2xldCByPW5ldyBGaWxlUmVhZGVyO3Iub25sb2FkPXM9PntsZXQgbj1zLnRhcmdldD8ucmVzdWx0O3R5cGVvZiBuPT0ic3RyaW5nIj9hKG4pOmkobmV3IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBmaWxlIikpfSxyLm9uZXJyb3I9aSxyLnJlYWRBc0RhdGFVUkwoZSl9KX1nZXRGaWxlSWNvbihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKCJpbWFnZS8iKT8iXHV7MUY1QkN9XHVGRTBGIjplLnN0YXJ0c1dpdGgoInZpZGVvLyIpPyJcdXsxRjNBNX0iOmUuc3RhcnRzV2l0aCgiYXVkaW8vIik/Ilx1ezFGM0I1fSI6ZS5pbmNsdWRlcygicGRmIik/Ilx1ezFGNEM0fSI6ZS5pbmNsdWRlcygiemlwIil8fGUuaW5jbHVkZXMoInJhciIpfHxlLmluY2x1ZGVzKCJ0YXIiKT8iXHV7MUY1QzR9XHVGRTBGIjplLmluY2x1ZGVzKCJzaGVldCIpPyJcdXsxRjRDQX0iOmUuaW5jbHVkZXMoImRvY3VtZW50Iil8fGUuaW5jbHVkZXMoIm1zd29yZCIpPyJcdXsxRjRERH0iOmUuaW5jbHVkZXMoInByZXNlbnRhdGlvbiIpPyJcdXsxRjRDQn0iOmUuaW5jbHVkZXMoInRleHQiKT8iXHV7MUY0QzN9IjoiXHV7MUY0QzF9In1mb3JtYXRGaWxlU2l6ZShlKXtpZihlPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IGE9MTAyNCxpPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxyPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2coYSkpO3JldHVybiBwYXJzZUZsb2F0KChlL01hdGgucG93KGEscikpLnRvRml4ZWQoMikpKyIgIitpW3JdfWdlbmVyYXRlSWQoKXtyZXR1cm5gZmlsZS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsOSl9YH1lc2NhcGVIdG1sKGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBhLnRleHRDb250ZW50PWUsYS5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtyZXR1cm4gdGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpPy5jb250ZW50fHwiIn1zZXRDb250ZW50KGUsYSl7bGV0IGk9dGhpcy5nZXRCbG9ja0Zyb21FbGVtZW50KGUpO2kmJihpLmNvbnRlbnQ9YSl9Z2V0QmxvY2tGcm9tRWxlbWVudChlKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4gaT97aWQ6aSx0eXBlOiJhdHRhY2htZW50Iixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKGUpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQoZSl7dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXt0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2UucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIil7dGhpcy5mb2N1cyhlKX1nZXRTcGxpdENvbnRlbnQoZSl7cmV0dXJuIG51bGx9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBBdHRhY2htZW50IEJsb2NrIENvbnRhaW5lciAqLwogICAgICAuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lci5kcmFnLW92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5hdHRhY2htZW50LWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgTGlzdCAqLwogICAgICAuYXR0YWNobWVudC1saXN0IHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgbWluLWhlaWdodDogODBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFBsYWNlaG9sZGVyICovCiAgICAgIC5hdHRhY2htZW50LXBsYWNlaG9sZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgfQogICAgICAKICAgICAgLnBsYWNlaG9sZGVyLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIEl0ZW1zICovCiAgICAgIC5hdHRhY2htZW50LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5hdHRhY2htZW50LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1pbmZvIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLXNpemUgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQogICAgICAKICAgICAgLnJlbW92ZS1maWxlIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB3aWR0aDogMjRweDsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLnJlbW92ZS1maWxlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZlZTJlMiIsIiM5OTFiMWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZjYTVhNSIsIiNkYzI2MjYiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZGMyNjI2IiwiI2ZjYTVhNSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQWRkIE1vcmUgRmlsZXMgQnV0dG9uICovCiAgICAgIC5hZGQtbW9yZS1maWxlcyB7CiAgICAgICAgbWFyZ2luOiA4cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgfQogICAgICAKICAgICAgLmFkZC1tb3JlLWZpbGVzOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhpZGRlbiBmaWxlIGlucHV0ICovCiAgICAgIC5hdHRhY2htZW50LWZpbGUtaW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgYH19fSk7dmFyIEY4LENndD1iKCgpPT57WWEoKTt1ZSgpO0Y4PWNsYXNzIGV4dGVuZHMgdzF7dHlwZT0iZGl2aWRlciI7cmVuZGVyKGUsYSl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJibG9jayBkaXZpZGVyJHthPyIgc2VsZWN0ZWQiOiIifSIgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIgZGF0YS1ibG9jay10eXBlPSIke2UudHlwZX0iIHRhYmluZGV4PSIwIj4KICAgICAgICA8aHI+CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cChlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuYmxvY2suZGl2aWRlciIpO3ImJihyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzPT57cy5zdG9wUHJvcGFnYXRpb24oKSxyLmZvY3VzKCksaS5vbkZvY3VzPy4oKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57aS5vbkZvY3VzPy4oKX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntpLm9uQmx1cj8uKCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHM9Pnsocy5rZXk9PT0iQmFja3NwYWNlInx8cy5rZXk9PT0iRGVsZXRlIikmJnMucHJldmVudERlZmF1bHQoKSxpLm9uS2V5RG93bj8uKHMpfSkpfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLmJsb2NrLmRpdmlkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIG1hcmdpbjogMTZweCAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlcjpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLmJsb2NrLmRpdmlkZXIuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMikiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4yKSIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmRpdmlkZXIgaHIgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYH19fSk7dmFyIE84LF9ndD1iKCgpPT57WWEoKTt1ZSgpO084PWNsYXNzIGV4dGVuZHMgdzF7dHlwZT0ibWFya2Rvd24iO3JlbmRlcihlLGEpe2xldCBpPWUubWV0YWRhdGE/LmlzRWRpdE1vZGU/PyEwLHI9ZS5jb250ZW50fHwiIjtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciR7YT8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7ZS5pZH0iCiAgICAgICAgICAgZGF0YS1lZGl0LW1vZGU9IiR7aX0iPgogICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1pY29uIj5NXHUyMTkzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi10aXRsZSI+TWFya2Rvd248L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Im1hcmtkb3duLXRvZ2dsZS1tb2RlIiB0aXRsZT0iJHtpPyJQcmV2aWV3IjoiRWRpdCJ9Ij4KICAgICAgICAgICAgJHtpPyJcdXsxRjQ0MX1cdUZFMEYiOiJcdTI3MEZcdUZFMEYifQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+CiAgICAgICAgICAke2k/dGhpcy5yZW5kZXJFZGl0b3Iocik6dGhpcy5yZW5kZXJQcmV2aWV3KHIpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRWRpdG9yKGUpe3JldHVybmAKICAgICAgPHRleHRhcmVhIGNsYXNzPSJtYXJrZG93bi1lZGl0b3IiIAogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIG1hcmtkb3duIGNvbnRlbnQuLi4iCiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPSJmYWxzZSI+JHt0aGlzLmVzY2FwZUh0bWwoZSl9PC90ZXh0YXJlYT4KICAgIGB9cmVuZGVyUHJldmlldyhlKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLXByZXZpZXciPgogICAgICAgICR7dGhpcy5wYXJzZU1hcmtkb3duKGUpfHwnPGRpdiBjbGFzcz0icHJldmlldy1lbXB0eSI+Tm8gY29udGVudCB0byBwcmV2aWV3PC9kaXY+J30KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKGUsYSxpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKSxzPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXRvZ2dsZS1tb2RlIik7aWYoIXJ8fCFzKXtjb25zb2xlLmVycm9yKCJNYXJrZG93bkJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMiKTtyZXR1cm59YS5tZXRhZGF0YXx8KGEubWV0YWRhdGE9e30pLGEubWV0YWRhdGEuaXNFZGl0TW9kZT09PXZvaWQgMCYmKGEubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCkscy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e2lmKG4ucHJldmVudERlZmF1bHQoKSxuLnN0b3BQcm9wYWdhdGlvbigpLGEubWV0YWRhdGEuaXNFZGl0TW9kZSl7bGV0IG89ci5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7byYmKGEuY29udGVudD1vLnZhbHVlKX1hLm1ldGFkYXRhLmlzRWRpdE1vZGU9IWEubWV0YWRhdGEuaXNFZGl0TW9kZSxpLm9uUmVxdWVzdFVwZGF0ZT8uKCl9KSxhLm1ldGFkYXRhLmlzRWRpdE1vZGU/dGhpcy5zZXR1cEVkaXRvcihlLGEsaSk6dGhpcy5zZXR1cFByZXZpZXcoZSxhLGkpfXNldHVwRWRpdG9yKGUsYSxpKXtsZXQgcj1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyJiYoci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmkub25Gb2N1cygpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5pLm9uQmx1cigpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+e2EuY29udGVudD1yLnZhbHVlfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57aWYocy5rZXk9PT0iVGFiIil7cy5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPXIuc2VsZWN0aW9uU3RhcnQsbz1yLnNlbGVjdGlvbkVuZCxkPXIudmFsdWU7aWYocy5zaGlmdEtleSl7bGV0IGw9ZC5zdWJzdHJpbmcoMCxuKS5sYXN0SW5kZXhPZihgCmApKzEsZj1kLnN1YnN0cmluZyhsLG4pO2Yuc3RhcnRzV2l0aCgiICAiKSYmKHIudmFsdWU9ZC5zdWJzdHJpbmcoMCxsKStmLnN1YnN0cmluZygyKStkLnN1YnN0cmluZyhuKSxyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPW4tMil9ZWxzZSByLnZhbHVlPWQuc3Vic3RyaW5nKDAsbikrIiAgIitkLnN1YnN0cmluZyhvKSxyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPW4rMjthLmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aWYoKHMuY3RybEtleXx8cy5tZXRhS2V5KSYmcy5rZXk9PT0iYiIpe3MucHJldmVudERlZmF1bHQoKSx0aGlzLndyYXBTZWxlY3Rpb24ociwiKioiLCIqKiIpLGEuY29udGVudD1yLnZhbHVlO3JldHVybn1pZigocy5jdHJsS2V5fHxzLm1ldGFLZXkpJiZzLmtleT09PSJpIil7cy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMud3JhcFNlbGVjdGlvbihyLCJfIiwiXyIpLGEuY29udGVudD1yLnZhbHVlO3JldHVybn1pZigocy5jdHJsS2V5fHxzLm1ldGFLZXkpJiZzLmtleT09PSJrIil7cy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5zZXJ0TGluayhyKSxhLmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aS5vbktleURvd24ocyl9KSx0aGlzLmF1dG9SZXNpemUociksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9PnRoaXMuYXV0b1Jlc2l6ZShyKSkpfXNldHVwUHJldmlldyhlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIikscz1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1wcmV2aWV3Iik7IXJ8fCFzfHwocy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHMuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSkscy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSkscy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixuPT57aWYobi5rZXk9PT0iRW50ZXIiJiYhbi5zaGlmdEtleSl7bi5wcmV2ZW50RGVmYXVsdCgpLGEubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCxpLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWkub25LZXlEb3duKG4pfSkpfXdyYXBTZWxlY3Rpb24oZSxhLGkpe2xldCByPWUuc2VsZWN0aW9uU3RhcnQscz1lLnNlbGVjdGlvbkVuZCxuPWUudmFsdWUuc3Vic3RyaW5nKHIscyksbz1hKyhufHwidGV4dCIpK2k7ZS52YWx1ZT1lLnZhbHVlLnN1YnN0cmluZygwLHIpK28rZS52YWx1ZS5zdWJzdHJpbmcocyksbj8oZS5zZWxlY3Rpb25TdGFydD1yLGUuc2VsZWN0aW9uRW5kPXIrby5sZW5ndGgpOihlLnNlbGVjdGlvblN0YXJ0PXIrYS5sZW5ndGgsZS5zZWxlY3Rpb25FbmQ9cithLmxlbmd0aCs0KSxlLmZvY3VzKCl9aW5zZXJ0TGluayhlKXtsZXQgYT1lLnNlbGVjdGlvblN0YXJ0LGk9ZS5zZWxlY3Rpb25FbmQscz1lLnZhbHVlLnN1YnN0cmluZyhhLGkpfHwibGluayB0ZXh0IixuPWBbJHtzfV0odXJsKWA7ZS52YWx1ZT1lLnZhbHVlLnN1YnN0cmluZygwLGEpK24rZS52YWx1ZS5zdWJzdHJpbmcoaSksZS5zZWxlY3Rpb25TdGFydD1hK3MubGVuZ3RoKzMsZS5zZWxlY3Rpb25FbmQ9YStzLmxlbmd0aCs2LGUuZm9jdXMoKX1hdXRvUmVzaXplKGUpe2Uuc3R5bGUuaGVpZ2h0PSJhdXRvIixlLnN0eWxlLmhlaWdodD1lLnNjcm9sbEhlaWdodCsicHgifXBhcnNlTWFya2Rvd24oZSl7bGV0IGE9dGhpcy5lc2NhcGVIdG1sKGUpO3JldHVybiBhPWEucmVwbGFjZSgvXiMjIyAoLispJC9nbSwiPGgzPiQxPC9oMz4iKSxhPWEucmVwbGFjZSgvXiMjICguKykkL2dtLCI8aDI+JDE8L2gyPiIpLGE9YS5yZXBsYWNlKC9eIyAoLispJC9nbSwiPGgxPiQxPC9oMT4iKSxhPWEucmVwbGFjZSgvXCpcKiguKz8pXCpcKi9nLCI8c3Ryb25nPiQxPC9zdHJvbmc+IiksYT1hLnJlcGxhY2UoL19fKC4rPylfXy9nLCI8c3Ryb25nPiQxPC9zdHJvbmc+IiksYT1hLnJlcGxhY2UoL1wqKC4rPylcKi9nLCI8ZW0+JDE8L2VtPiIpLGE9YS5yZXBsYWNlKC9fKC4rPylfL2csIjxlbT4kMTwvZW0+IiksYT1hLnJlcGxhY2UoL2BgYChbXHNcU10qPylgYGAvZywiPHByZT48Y29kZT4kMTwvY29kZT48L3ByZT4iKSxhPWEucmVwbGFjZSgvYCguKz8pYC9nLCI8Y29kZT4kMTwvY29kZT4iKSxhPWEucmVwbGFjZSgvXFsoW15cXV0rKVxdXCgoW14pXSspXCkvZywnPGEgaHJlZj0iJDIiPiQxPC9hPicpLGE9YS5yZXBsYWNlKC9eXCogKC4rKSQvZ20sIjxsaT4kMTwvbGk+IiksYT1hLnJlcGxhY2UoL14tICguKykkL2dtLCI8bGk+JDE8L2xpPiIpLGE9YS5yZXBsYWNlKC9eXGQrXC4gKC4rKSQvZ20sIjxsaT4kMTwvbGk+IiksYT1hLnJlcGxhY2UoLyg8bGk+Lio8XC9saT5cbj8pKy9nLGk9PiI8dWw+IitpKyI8L3VsPiIpLGE9YS5yZXBsYWNlKC9cblxuL2csIjwvcD48cD4iKSxhPSI8cD4iK2ErIjwvcD4iLGE9YS5yZXBsYWNlKC88cD48XC9wPi9nLCIiKSxhPWEucmVwbGFjZSgvPHA+KDxoWzEtM10+KS9nLCIkMSIpLGE9YS5yZXBsYWNlKC8oPFwvaFsxLTNdPik8XC9wPi9nLCIkMSIpLGE9YS5yZXBsYWNlKC88cD4oPHVsPikvZywiJDEiKSxhPWEucmVwbGFjZSgvKDxcL3VsPik8XC9wPi9nLCIkMSIpLGE9YS5yZXBsYWNlKC88cD4oPHByZT4pL2csIiQxIiksYT1hLnJlcGxhY2UoLyg8XC9wcmU+KTxcL3A+L2csIiQxIiksYX1lc2NhcGVIdG1sKGUpe2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBhLnRleHRDb250ZW50PWUsYS5pbm5lckhUTUx9Z2V0Q29udGVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZihhKXJldHVybiBhLnZhbHVlO2xldCByPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKTtyZXR1cm4iIn1zZXRDb250ZW50KGUsYSl7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aSYmKGkudmFsdWU9YSx0aGlzLmF1dG9SZXNpemUoaSkpfWdldEN1cnNvclBvc2l0aW9uKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO3JldHVybiBhP2Euc2VsZWN0aW9uU3RhcnQ6bnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2E/KGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9MCxhLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9c2V0Q3Vyc29yVG9FbmQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYoYSl7bGV0IGk9YS52YWx1ZS5sZW5ndGg7YS5zZWxlY3Rpb25TdGFydD1hLnNlbGVjdGlvbkVuZD1pLGEuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXMoZSl9Zm9jdXMoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7YT9hLmZvY3VzKCk6ZS5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tcHJldmlldyIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcihlLGE9ImVuZCIpe2xldCBpPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2k/YT09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KGUpOmE9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKGUpOnR5cGVvZiBhPT0ibnVtYmVyIiYmKGkuc2VsZWN0aW9uU3RhcnQ9aS5zZWxlY3Rpb25FbmQ9YSxpLmZvY3VzKCkpOnRoaXMuZm9jdXMoZSl9Z2V0U3BsaXRDb250ZW50KGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKCFhKXJldHVybiBudWxsO2xldCBpPWEuc2VsZWN0aW9uU3RhcnQ7cmV0dXJue2JlZm9yZTphLnZhbHVlLnN1YnN0cmluZygwLGkpLGFmdGVyOmEudmFsdWUuc3Vic3RyaW5nKGkpfX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIE1hcmtkb3duIEJsb2NrIENvbnRhaW5lciAqLwogICAgICAubWFya2Rvd24tYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAubWFya2Rvd24taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10aXRsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdG9nZ2xlLW1vZGUgewogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tdG9nZ2xlLW1vZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29udGVudCAqLwogICAgICAubWFya2Rvd24tY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBFZGl0b3IgKi8KICAgICAgLm1hcmtkb3duLWVkaXRvciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tZWRpdG9yOjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogUHJldmlldyAqLwogICAgICAubWFya2Rvd24tcHJldmlldyB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBtaW4taGVpZ2h0OiA5NnB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnByZXZpZXctZW1wdHkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAvKiBNYXJrZG93biBwcmV2aWV3IHN0eWxlcyAqLwogICAgICAubWFya2Rvd24tcHJldmlldyBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxNnB4IDAgOHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTRweCAwIDZweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgzIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDEycHggMCA0cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyB1bCwKICAgICAgLm1hcmtkb3duLXByZXZpZXcgb2wgewogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBsaSB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHByZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBlbSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGJsb2NrcXVvdGUgewogICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmctbGVmdDogMTJweDsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgIH0KICAgIGB9fX0pO3ZhciBSOCxUZ3Q9YigoKT0+e1lhKCk7dWUoKTtSOD1jbGFzcyBleHRlbmRzIHcxe3R5cGU9Imh0bWwiO3JlbmRlcihlLGEpe2xldCBpPWUubWV0YWRhdGE/LmlzRWRpdE1vZGU/PyEwLHI9ZS5jb250ZW50fHwiIjtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9Imh0bWwtYmxvY2stY29udGFpbmVyJHthPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHtlLmlkfSIKICAgICAgICAgICBkYXRhLWVkaXQtbW9kZT0iJHtpfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC1pY29uIj4mbHQ7LyZndDs8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtdGl0bGUiPkhUTUw8L2Rpdj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Imh0bWwtdG9nZ2xlLW1vZGUiIHRpdGxlPSIke2k/IlByZXZpZXciOiJFZGl0In0iPgogICAgICAgICAgICAke2k/Ilx1ezFGNDQxfVx1RkUwRiI6Ilx1MjcwRlx1RkUwRiJ9CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWNvbnRlbnQiPgogICAgICAgICAgJHtpP3RoaXMucmVuZGVyRWRpdG9yKHIpOnRoaXMucmVuZGVyUHJldmlldyhyKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckVkaXRvcihlKXtyZXR1cm5gCiAgICAgIDx0ZXh0YXJlYSBjbGFzcz0iaHRtbC1lZGl0b3IiIAogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IkVudGVyIEhUTUwgY29udGVudC4uLiIKICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9ImZhbHNlIj4ke3RoaXMuZXNjYXBlSHRtbChlKX08L3RleHRhcmVhPgogICAgYH1yZW5kZXJQcmV2aWV3KGUpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaHRtbC1wcmV2aWV3Ij4KICAgICAgICAke2V8fCc8ZGl2IGNsYXNzPSJwcmV2aWV3LWVtcHR5Ij5ObyBjb250ZW50IHRvIHByZXZpZXc8L2Rpdj4nfQogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAoZSxhLGkpe2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtYmxvY2stY29udGFpbmVyIikscz1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXRvZ2dsZS1tb2RlIik7aWYoIXJ8fCFzKXtjb25zb2xlLmVycm9yKCJIdG1sQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn1hLm1ldGFkYXRhfHwoYS5tZXRhZGF0YT17fSksYS5tZXRhZGF0YS5pc0VkaXRNb2RlPT09dm9pZCAwJiYoYS5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwKSxzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuPT57aWYobi5wcmV2ZW50RGVmYXVsdCgpLG4uc3RvcFByb3BhZ2F0aW9uKCksYS5tZXRhZGF0YS5pc0VkaXRNb2RlKXtsZXQgbz1yLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO28mJihhLmNvbnRlbnQ9by52YWx1ZSl9YS5tZXRhZGF0YS5pc0VkaXRNb2RlPSFhLm1ldGFkYXRhLmlzRWRpdE1vZGUsaS5vblJlcXVlc3RVcGRhdGU/LigpfSksYS5tZXRhZGF0YS5pc0VkaXRNb2RlP3RoaXMuc2V0dXBFZGl0b3IoZSxhLGkpOnRoaXMuc2V0dXBQcmV2aWV3KGUsYSxpKX1zZXR1cEVkaXRvcihlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyJiYoci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmkub25Gb2N1cygpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5pLm9uQmx1cigpKSxyLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+e2EuY29udGVudD1yLnZhbHVlLHRoaXMudmFsaWRhdGVIdG1sKHIudmFsdWUpfSksci5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57aWYocy5rZXk9PT0iVGFiIil7cy5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPXIuc2VsZWN0aW9uU3RhcnQsbz1yLnNlbGVjdGlvbkVuZCxkPXIudmFsdWU7aWYocy5zaGlmdEtleSl7bGV0IGw9ZC5zdWJzdHJpbmcoMCxuKS5sYXN0SW5kZXhPZihgCmApKzEsZj1kLnN1YnN0cmluZyhsLG4pO2Yuc3RhcnRzV2l0aCgiICAiKSYmKHIudmFsdWU9ZC5zdWJzdHJpbmcoMCxsKStmLnN1YnN0cmluZygyKStkLnN1YnN0cmluZyhuKSxyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPW4tMil9ZWxzZSByLnZhbHVlPWQuc3Vic3RyaW5nKDAsbikrIiAgIitkLnN1YnN0cmluZyhvKSxyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPW4rMjthLmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aWYoKHMuY3RybEtleXx8cy5tZXRhS2V5KSYmcy5rZXk9PT0iLyIpe3MucHJldmVudERlZmF1bHQoKSx0aGlzLmF1dG9DbG9zZVRhZyhyKSxhLmNvbnRlbnQ9ci52YWx1ZTtyZXR1cm59aS5vbktleURvd24ocyl9KSx0aGlzLmF1dG9SZXNpemUociksci5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9PnRoaXMuYXV0b1Jlc2l6ZShyKSkpfXNldHVwUHJldmlldyhlLGEsaSl7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKSxzPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtcHJldmlldyIpOyFyfHwhc3x8KHMuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxzLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLHMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2lmKG4ua2V5PT09IkVudGVyIiYmIW4uc2hpZnRLZXkpe24ucHJldmVudERlZmF1bHQoKSxhLm1ldGFkYXRhLmlzRWRpdE1vZGU9ITAsaS5vblJlcXVlc3RVcGRhdGU/LigpO3JldHVybn1pLm9uS2V5RG93bihuKX0pLHRoaXMuc2FuZGJveENvbnRlbnQocykpfWF1dG9DbG9zZVRhZyhlKXtsZXQgYT1lLnNlbGVjdGlvblN0YXJ0LGk9ZS52YWx1ZSxyPWE7Zm9yKDtyPjAmJmlbci0xXSE9PSI8Ijspci0tO2lmKHI+MCl7bGV0IG49aS5zdWJzdHJpbmcocixhKS5tYXRjaCgvXihcdyspLyk7aWYobil7bGV0IGQ9YDwvJHtuWzFdfT5gO2UudmFsdWU9aS5zdWJzdHJpbmcoMCxhKSsiPiIrZCtpLnN1YnN0cmluZyhhKSxlLnNlbGVjdGlvblN0YXJ0PWUuc2VsZWN0aW9uRW5kPWErMX19fWF1dG9SZXNpemUoZSl7ZS5zdHlsZS5oZWlnaHQ9ImF1dG8iLGUuc3R5bGUuaGVpZ2h0PWUuc2Nyb2xsSGVpZ2h0KyJweCJ9dmFsaWRhdGVIdG1sKGUpe2xldCBhPVtdLGk9LzxcLz8oW2EtekEtWl1bYS16QS1aMC05XSopXGJbXj5dKj4vZyxyO2Zvcig7KHI9aS5leGVjKGUpKSE9PW51bGw7KXtsZXQgcz1yWzBdLnN0YXJ0c1dpdGgoIjwvIiksbj1yWzFdLnRvTG93ZXJDYXNlKCk7aWYocyl7aWYoYS5sZW5ndGg9PT0wfHxhW2EubGVuZ3RoLTFdIT09bilyZXR1cm4gY29uc29sZS53YXJuKGBNaXNtYXRjaGVkIGNsb3NpbmcgdGFnOiAke259YCksITE7YS5wb3AoKX1lbHNlIHJbMF0uZW5kc1dpdGgoIi8+Iil8fGEucHVzaChuKX1yZXR1cm4gYS5sZW5ndGg+MD8oY29uc29sZS53YXJuKGBVbmNsb3NlZCB0YWdzOiAke2Euam9pbigiLCAiKX1gKSwhMSk6ITB9c2FuZGJveENvbnRlbnQoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCJzY3JpcHQiKS5mb3JFYWNoKHM9PnMucmVtb3ZlKCkpLGUucXVlcnlTZWxlY3RvckFsbCgiKiIpLmZvckVhY2gocz0+e0FycmF5LmZyb20ocy5hdHRyaWJ1dGVzKS5mb3JFYWNoKG49PntuLm5hbWUuc3RhcnRzV2l0aCgib24iKSYmcy5yZW1vdmVBdHRyaWJ1dGUobi5uYW1lKX0pfSksZS5xdWVyeVNlbGVjdG9yQWxsKCJmb3JtIikuZm9yRWFjaChzPT57cy5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLG49PntuLnByZXZlbnREZWZhdWx0KCksbi5zdG9wUHJvcGFnYXRpb24oKX0pfSl9ZXNjYXBlSHRtbChlKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gYS50ZXh0Q29udGVudD1lLGEuaW5uZXJIVE1MfWdldENvbnRlbnQoZSl7bGV0IGE9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpZihhKXJldHVybiBhLnZhbHVlO2xldCByPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiIifXNldENvbnRlbnQoZSxhKXtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2kmJihpLnZhbHVlPWEsdGhpcy5hdXRvUmVzaXplKGkpKX1nZXRDdXJzb3JQb3NpdGlvbihlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO3JldHVybiBhP2Euc2VsZWN0aW9uU3RhcnQ6bnVsbH1zZXRDdXJzb3JUb1N0YXJ0KGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7YT8oYS5zZWxlY3Rpb25TdGFydD1hLnNlbGVjdGlvbkVuZD0wLGEuZm9jdXMoKSk6dGhpcy5mb2N1cyhlKX1zZXRDdXJzb3JUb0VuZChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2lmKGEpe2xldCBpPWEudmFsdWUubGVuZ3RoO2Euc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9aSxhLmZvY3VzKCl9ZWxzZSB0aGlzLmZvY3VzKGUpfWZvY3VzKGUpe2xldCBhPWUucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7YT9hLmZvY3VzKCk6ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1wcmV2aWV3Iik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKGUsYT0iZW5kIil7bGV0IGk9ZS5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtpP2E9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydChlKTphPT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZChlKTp0eXBlb2YgYT09Im51bWJlciImJihpLnNlbGVjdGlvblN0YXJ0PWkuc2VsZWN0aW9uRW5kPWEsaS5mb2N1cygpKTp0aGlzLmZvY3VzKGUpfWdldFNwbGl0Q29udGVudChlKXtsZXQgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2lmKCFhKXJldHVybiBudWxsO2xldCBpPWEuc2VsZWN0aW9uU3RhcnQ7cmV0dXJue2JlZm9yZTphLnZhbHVlLnN1YnN0cmluZygwLGkpLGFmdGVyOmEudmFsdWUuc3Vic3RyaW5nKGkpfX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIEhUTUwgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5odG1sLWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAqLwogICAgICAuaHRtbC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC10aXRsZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC10b2dnbGUtbW9kZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRvZ2dsZS1tb2RlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDVkYiIsIiM0YjU1NjMiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvbnRlbnQgKi8KICAgICAgLmh0bWwtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBFZGl0b3IgKi8KICAgICAgLmh0bWwtZWRpdG9yIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLWVkaXRvcjo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFByZXZpZXcgKi8KICAgICAgLmh0bWwtcHJldmlldyB7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBtaW4taGVpZ2h0OiA5NnB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyOTM3IiwiI2YzZjRmNiIpfTsKICAgICAgfQogICAgICAKICAgICAgLnByZXZpZXctZW1wdHkgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAvKiBTYW5kYm94ZWQgSFRNTCBwcmV2aWV3IHN0eWxlcyAqLwogICAgICAuaHRtbC1wcmV2aWV3ICogewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyBpbWcgewogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyBhIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0YWJsZSB7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRoLAogICAgICAuaHRtbC1wcmV2aWV3IHRkIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGggewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHByZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMnB4IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgYH19fSk7dmFyIENWPWIoKCk9PntZYSgpO2dndCgpO2JndCgpO3ZndCgpO3lndCgpO3hndCgpO3dndCgpO01ndCgpO3pndCgpO2tndCgpO1NndCgpO0NndCgpO19ndCgpO1RndCgpfSk7ZnVuY3Rpb24gTGd0KCl7dDEucmVnaXN0ZXIoImRpdmlkZXIiLG5ldyBGOCksdDEucmVnaXN0ZXIoInBhcmFncmFwaCIsbmV3ICQ4KSx0MS5yZWdpc3RlcigiaGVhZGluZy0xIixuZXcgYzQoImhlYWRpbmctMSIpKSx0MS5yZWdpc3RlcigiaGVhZGluZy0yIixuZXcgYzQoImhlYWRpbmctMiIpKSx0MS5yZWdpc3RlcigiaGVhZGluZy0zIixuZXcgYzQoImhlYWRpbmctMyIpKSx0MS5yZWdpc3RlcigicXVvdGUiLG5ldyBBOCksdDEucmVnaXN0ZXIoImNvZGUiLG5ldyBEOCksdDEucmVnaXN0ZXIoImxpc3QiLG5ldyBFOCksdDEucmVnaXN0ZXIoImltYWdlIixuZXcgUDgpLHQxLnJlZ2lzdGVyKCJ5b3V0dWJlIixuZXcgSTgpLHQxLnJlZ2lzdGVyKCJhdHRhY2htZW50IixuZXcgTjgpLHQxLnJlZ2lzdGVyKCJtYXJrZG93biIsbmV3IE84KSx0MS5yZWdpc3RlcigiaHRtbCIsbmV3IFI4KX12YXIgX1Y9YigoKT0+e0NWKCk7TGd0KCl9KTt2YXIgQjgsVFY9YigoKT0+e3VlKCk7RzAoKTskYSgpO280KCk7cncoKTtCOD1jbGFzc3tzdGF0aWMgYXN5bmMgc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2xldCBhPW51bGw7bjEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2VsZWN0IFByb2dyYW1taW5nIExhbmd1YWdlIixjb250ZW50OndgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5sYW5ndWFnZS1jb250YWluZXIgewogICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtZ3JpZCB7CiAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7CiAgICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAgICAgJHt0aGlzLmdldExhbmd1YWdlcygpLm1hcChpPT53YAogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke2E9PT1pLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnthPWkudG9Mb3dlckNhc2UoKTtsZXQgcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7ciYmdHlwZW9mIHIuZGVzdHJveT09ImZ1bmN0aW9uIiYmci5kZXN0cm95KCksZShhKX19Ij4KICAgICAgICAgICAgICAgICAgJHtpfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIGk9PntpLmRlc3Ryb3koKSxlKG51bGwpfX1dfSl9KX1zdGF0aWMgYXN5bmMgc2hvd0Jsb2NrU2V0dGluZ3NNb2RhbChlLGEpe2xldCBpPXdgCiAgICAgIDxzdHlsZT4KICAgICAgICAuc2V0dGluZ3MtY29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgLnNldHRpbmdzLWxhYmVsIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE2MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b24gewogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtaWNvbiB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmdldEJsb2NrVHlwZVNlbGVjdG9yKGUsYSl9CiAgICAgICAgJHtlLnR5cGU9PT0iY29kZSI/dGhpcy5nZXRDb2RlQmxvY2tTZXR0aW5ncyhlLGEpOiIifQogICAgICA8L2Rpdj4KICAgIGA7bjEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQmxvY2sgU2V0dGluZ3MiLGNvbnRlbnQ6aSxtZW51T3B0aW9uczpbe25hbWU6IkRvbmUiLGFjdGlvbjphc3luYyByPT57ci5kZXN0cm95KCl9fV19KX1zdGF0aWMgZ2V0Q29kZUJsb2NrU2V0dGluZ3MoZSxhKXtsZXQgaT1lLm1ldGFkYXRhPy5sYW5ndWFnZXx8ImphdmFzY3JpcHQiO3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogNnB4OwogICAgICAgIH0KICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDhweCA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+UHJvZ3JhbW1pbmcgTGFuZ3VhZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ncmlkIj4KICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAocj0+d2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uICR7aT09PXIudG9Mb3dlckNhc2UoKT8ic2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57ZS5tZXRhZGF0YXx8KGUubWV0YWRhdGE9e30pLGUubWV0YWRhdGEubGFuZ3VhZ2U9ci50b0xvd2VyQ2FzZSgpLGEoZSk7bGV0IHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO3MmJnR5cGVvZiBzLmRlc3Ryb3k9PSJmdW5jdGlvbiImJnMuZGVzdHJveSgpfX0iCiAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke3J9IgogICAgICAgICAgICA+JHtyfTwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWMgZ2V0TGFuZ3VhZ2VzKCl7cmV0dXJuWy4uLlQ4XX1zdGF0aWMgZ2V0QmxvY2tUeXBlU2VsZWN0b3IoZSxhKXtsZXQgaT1xMS5nZXRTbGFzaE1lbnVJdGVtcygpLmZpbHRlcihyPT5yLnR5cGUhPT0iZGl2aWRlciIpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+QmxvY2sgVHlwZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrLXR5cGUtZ3JpZCI+CiAgICAgICAgICAke2kubWFwKHI9PndgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9ImJsb2NrLXR5cGUtYnV0dG9uICR7ZS50eXBlPT09ci50eXBlPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0iJHthc3luYyBzPT57bGV0IG49cy5jdXJyZW50VGFyZ2V0LG89ZS50eXBlO2lmKGUudHlwZT1yLnR5cGUsbz09PSJjb2RlIiYmZS50eXBlIT09ImNvZGUiKWRlbGV0ZSBlLm1ldGFkYXRhPy5sYW5ndWFnZTtlbHNlIGlmKG89PT0ibGlzdCImJmUudHlwZSE9PSJsaXN0IilkZWxldGUgZS5tZXRhZGF0YT8ubGlzdFR5cGU7ZWxzZSBpZihlLnR5cGU9PT0ibGlzdCImJiFlLm1ldGFkYXRhPy5saXN0VHlwZSllLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In07ZWxzZSBpZihlLnR5cGU9PT0iY29kZSImJiFlLm1ldGFkYXRhPy5sYW5ndWFnZSl7bGV0IGM9YXdhaXQgdGhpcy5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO2lmKGMpZS5tZXRhZGF0YT17bGFuZ3VhZ2U6Y307ZWxzZXtlLnR5cGU9bztyZXR1cm59fWEoZSk7bGV0IGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO2QmJnR5cGVvZiBkLmRlc3Ryb3k9PSJmdW5jdGlvbiImJmQuZGVzdHJveSgpfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmxvY2stdHlwZS1pY29uIj4ke3IuaWNvbn08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4+JHtyLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX19KTt2YXIgSDgsJGd0PWIoKCk9PnskYSgpO05sKCk7bzQoKTtCcygpO1NWKCk7VFYoKTtIOD1jbGFzc3tjb21wb25lbnQ7c2F2ZVRpbWVvdXQ9bnVsbDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWhhbmRsZUJsb2NrSW5wdXQoZSxhKXtpZih0aGlzLmNvbXBvbmVudC5pc0NvbXBvc2luZylyZXR1cm47bGV0IGk9ZS50YXJnZXQscj1pLnRleHRDb250ZW50fHwiIixzPXRoaXMuZGV0ZWN0QmxvY2tUeXBlSW50ZW50KHIpO2lmKHMmJnMudHlwZSE9PWEudHlwZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlQmxvY2tUcmFuc2Zvcm1hdGlvbihhLHMsaSk7cmV0dXJufXRoaXMuaGFuZGxlU2xhc2hDb21tYW5kKHIsaSksdGhpcy5zY2hlZHVsZUF1dG9TYXZlKCl9dXBkYXRlQmxvY2tDb250ZW50KGUsYSl7bGV0IHI9YS5jbG9zZXN0KCIuYmxvY2std3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihyKXtsZXQgcz1yLmdldENvbnRlbnQoKTtpZihlLmNvbnRlbnQhPT1zJiYoZS5jb250ZW50PXMpLGUudHlwZT09PSJsaXN0Iil7bGV0IG49YS5xdWVyeVNlbGVjdG9yKCJvbCwgdWwiKTtuJiYoZS5tZXRhZGF0YT17bGlzdFR5cGU6bi50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0ib2wiPyJvcmRlcmVkIjoiYnVsbGV0In0pfX1lbHNlIGlmKGUudHlwZT09PSJsaXN0Iil7bGV0IHM9YS5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpO2UuY29udGVudD1BcnJheS5mcm9tKHMpLm1hcChvPT5vLmlubmVySFRNTHx8IiIpLmpvaW4oYApgKTtsZXQgbj1hLnF1ZXJ5U2VsZWN0b3IoIm9sLCB1bCIpO24mJihlLm1ldGFkYXRhPXtsaXN0VHlwZTpuLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifSl9ZWxzZSBlLnR5cGU9PT0iY29kZSI/ZS5jb250ZW50PWEudGV4dENvbnRlbnR8fCIiOmUuY29udGVudD1hLmlubmVySFRNTHx8IiJ9ZGV0ZWN0QmxvY2tUeXBlSW50ZW50KGUpe2xldCBhPXExLmNoZWNrSGVhZGluZ1Nob3J0Y3V0KGUpO2lmKGEpcmV0dXJuIGE7bGV0IGk9cTEuY2hlY2tMaXN0U2hvcnRjdXQoZSk7cmV0dXJuIGl8fChxMS5jaGVja1F1b3RlU2hvcnRjdXQoZSk/e3R5cGU6InF1b3RlIn06cTEuY2hlY2tDb2RlU2hvcnRjdXQoZSk/e3R5cGU6ImNvZGUifTpxMS5jaGVja0RpdmlkZXJTaG9ydGN1dChlKT97dHlwZToiZGl2aWRlciJ9Om51bGwpfWFzeW5jIGhhbmRsZUJsb2NrVHJhbnNmb3JtYXRpb24oZSxhLGkpe2xldCByPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihhLnR5cGU9PT0ibGlzdCIpe2UudHlwZT0ibGlzdCIsZS5jb250ZW50PSIiLGUubWV0YWRhdGE9e2xpc3RUeXBlOmEubGlzdFR5cGV9O2xldCBzPWEubGlzdFR5cGU9PT0ib3JkZXJlZCI/Im9sIjoidWwiO2kuaW5uZXJIVE1MPWA8JHtzfT48bGk+PC9saT48LyR7c30+YCx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudChlLmlkKSxzZXRUaW1lb3V0KCgpPT57QTIuZm9jdXNMaXN0SXRlbShpKX0sMCl9ZWxzZSBpZihhLnR5cGU9PT0iZGl2aWRlciIpe2UudHlwZT0iZGl2aWRlciIsZS5jb250ZW50PSIgIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCk7bGV0IHM9ci5jcmVhdGVCbG9jaygpO3IuaW5zZXJ0QmxvY2tBZnRlcihlLHMpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZWxzZSBpZihhLnR5cGU9PT0iY29kZSIpe2xldCBzPWF3YWl0IEI4LnNob3dMYW5ndWFnZVNlbGVjdGlvbk1vZGFsKCk7cyYmKGUudHlwZT0iY29kZSIsZS5jb250ZW50PSIiLGUubWV0YWRhdGE9e2xhbmd1YWdlOnN9LGkudGV4dENvbnRlbnQ9IiIsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQoZS5pZCksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgci5mb2N1c0Jsb2NrKGUuaWQsInN0YXJ0Iil9LDUwKSl9ZWxzZSBlLnR5cGU9YS50eXBlLGUuY29udGVudD0iIixpLnRleHRDb250ZW50PSIiLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KGUuaWQpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHIuZm9jdXNCbG9jayhlLmlkLCJzdGFydCIpfSw1MCl9aGFuZGxlU2xhc2hDb21tYW5kKGUsYSl7bGV0IGk9dGhpcy5jb21wb25lbnQuc2xhc2hNZW51LHI9aSYmaS52aXNpYmxlO2lmKGU9PT0iLyJ8fGUuc3RhcnRzV2l0aCgiLyIpJiZyKXtpZighciYmZT09PSIvIil7bGV0IHM9dGhpcy5nZXRDYXJldENvb3JkaW5hdGVzKGEpO2kuc2hvdyh7eDpzLmxlZnQseTpzLmJvdHRvbSs0fSxuPT57dGhpcy5jb21wb25lbnQuaW5zZXJ0QmxvY2sobil9KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09YSYmYS5mb2N1cygpfSl9aSYmaS51cGRhdGVGaWx0ZXIoZS5zbGljZSgxKSl9ZWxzZSBlLnN0YXJ0c1dpdGgoIi8iKXx8dGhpcy5jb21wb25lbnQuY2xvc2VTbGFzaE1lbnUoKX1nZXRDYXJldENvb3JkaW5hdGVzKGUpe2xldCBhPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihhJiZhLnJhbmdlQ291bnQ+MCl7bGV0IHI9YS5nZXRSYW5nZUF0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKHIud2lkdGg+MHx8ci5oZWlnaHQ+MClyZXR1cm4gcn1yZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1zY2hlZHVsZUF1dG9TYXZlKCl7dGhpcy5zYXZlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2F2ZVRpbWVvdXQpLCEodGhpcy5jb21wb25lbnQuc2xhc2hNZW51JiZ0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUudmlzaWJsZSkmJih0aGlzLnNhdmVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnN5bmNBbGxCbG9ja0NvbnRlbnQoKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfSwyZTMpKX1zeW5jQWxsQmxvY2tDb250ZW50KCl7dGhpcy5jb21wb25lbnQuYmxvY2tzLmZvckVhY2goZT0+e2xldCBpPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2UuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoaSYmaS5nZXRDb250ZW50KXtsZXQgcj1pLmdldENvbnRlbnQoKTtlLmNvbnRlbnQhPT1yJiYoZS5jb250ZW50PXIpfX0pfWRlc3Ryb3koKXt0aGlzLnNhdmVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zYXZlVGltZW91dCl9fX0pO3ZhciBxOCxBZ3Q9YigoKT0+eyRhKCk7TmwoKTtqcigpO3E4PWNsYXNze2NvbXBvbmVudDtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbXBvbmVudD1lfWFzeW5jIGhhbmRsZUJsb2NrS2V5RG93bihlLGEpe2lmKHRoaXMuY29tcG9uZW50LnNsYXNoTWVudS52aXNpYmxlJiZ0aGlzLmlzU2xhc2hNZW51S2V5KGUua2V5KSl7dGhpcy5jb21wb25lbnQuaGFuZGxlU2xhc2hNZW51S2V5Ym9hcmQoZSk7cmV0dXJufWlmKCF0aGlzLmhhbmRsZUZvcm1hdHRpbmdTaG9ydGN1dHMoZSkpc3dpdGNoKGUua2V5KXtjYXNlIlRhYiI6dGhpcy5oYW5kbGVUYWIoZSxhKTticmVhaztjYXNlIkVudGVyIjphd2FpdCB0aGlzLmhhbmRsZUVudGVyKGUsYSk7YnJlYWs7Y2FzZSJCYWNrc3BhY2UiOmF3YWl0IHRoaXMuaGFuZGxlQmFja3NwYWNlKGUsYSk7YnJlYWs7Y2FzZSJEZWxldGUiOmF3YWl0IHRoaXMuaGFuZGxlRGVsZXRlKGUsYSk7YnJlYWs7Y2FzZSJBcnJvd1VwIjphd2FpdCB0aGlzLmhhbmRsZUFycm93VXAoZSxhKTticmVhaztjYXNlIkFycm93RG93biI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd0Rvd24oZSxhKTticmVhaztjYXNlIkFycm93TGVmdCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd0xlZnQoZSxhKTticmVhaztjYXNlIkFycm93UmlnaHQiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dSaWdodChlLGEpO2JyZWFrfX1pc1NsYXNoTWVudUtleShlKXtyZXR1cm5bIkFycm93RG93biIsIkFycm93VXAiLCJFbnRlciIsIkVzY2FwZSJdLmluY2x1ZGVzKGUpfWhhbmRsZUZvcm1hdHRpbmdTaG9ydGN1dHMoZSl7aWYoIShlLm1ldGFLZXl8fGUuY3RybEtleSkpcmV0dXJuITE7c3dpdGNoKGUua2V5LnRvTG93ZXJDYXNlKCkpe2Nhc2UiYiI6cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgiYm9sZCIpKSwhMDtjYXNlImkiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoIml0YWxpYyIpKSwhMDtjYXNlInUiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoInVuZGVybGluZSIpKSwhMDtjYXNlImsiOnJldHVybiBlLnByZXZlbnREZWZhdWx0KCksUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+dGhpcy5jb21wb25lbnQuYXBwbHlGb3JtYXQoImxpbmsiKSksITB9cmV0dXJuITF9aGFuZGxlVGFiKGUsYSl7YS50eXBlIT09ImNvZGUiJiZhLnR5cGU9PT0ibGlzdCImJmUucHJldmVudERlZmF1bHQoKX1hc3luYyBoYW5kbGVFbnRlcihlLGEpe2xldCBpPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYS50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBzPWkuY3JlYXRlQmxvY2soKTthd2FpdCBpLmluc2VydEJsb2NrQWZ0ZXIoYSxzKTtyZXR1cm59aWYoYS50eXBlPT09ImNvZGUiKXtpZihlLnNoaWZ0S2V5KXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHM9aS5jcmVhdGVCbG9jaygpO2F3YWl0IGkuaW5zZXJ0QmxvY2tBZnRlcihhLHMpfXJldHVybn1pZighZS5zaGlmdEtleSlpZihhLnR5cGU9PT0ibGlzdCIpYXdhaXQgdGhpcy5oYW5kbGVFbnRlckluTGlzdChlLGEpO2Vsc2V7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYobiYmbi5nZXRTcGxpdENvbnRlbnQpe2xldCBvPW4uZ2V0U3BsaXRDb250ZW50KCk7aWYobyl7bi5zZXRDb250ZW50KG8uYmVmb3JlKSxhLmNvbnRlbnQ9by5iZWZvcmU7bGV0IGQ9aS5jcmVhdGVCbG9jaygicGFyYWdyYXBoIixvLmFmdGVyKTthd2FpdCBpLmluc2VydEJsb2NrQWZ0ZXIoYSxkKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpfWVsc2V7bGV0IGQ9aS5jcmVhdGVCbG9jaygpO2F3YWl0IGkuaW5zZXJ0QmxvY2tBZnRlcihhLGQpfX1lbHNle2xldCBvPWkuY3JlYXRlQmxvY2soKTthd2FpdCBpLmluc2VydEJsb2NrQWZ0ZXIoYSxvKX19fWFzeW5jIGhhbmRsZUVudGVySW5MaXN0KGUsYSl7bGV0IGk9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGkmJmkucmFuZ2VDb3VudD4wKXtsZXQgcz1pLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIucGFyZW50RWxlbWVudD8uY2xvc2VzdCgibGkiKTtpZihzJiZzLnRleHRDb250ZW50PT09IiIpe2UucHJldmVudERlZmF1bHQoKTtsZXQgbj10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsbz1uLmNyZWF0ZUJsb2NrKCk7YXdhaXQgbi5pbnNlcnRCbG9ja0FmdGVyKGEsbyl9fX1hc3luYyBoYW5kbGVCYWNrc3BhY2UoZSxhKXtsZXQgaT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGEudHlwZSkpe2lmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPT09MSl7dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSksaS5yZW1vdmVCbG9jayhhLmlkKTtsZXQgeT1pLmNyZWF0ZUJsb2NrKCJwYXJhZ3JhcGgiLCIiKTt0aGlzLmNvbXBvbmVudC5ibG9ja3M9W3ldLHRoaXMuY29tcG9uZW50LnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSxhd2FpdCBpLmZvY3VzQmxvY2soeS5pZCwic3RhcnQiKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpO3JldHVybn10aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKTtsZXQgZj1pLmdldFByZXZpb3VzQmxvY2soYS5pZCksZz1pLmdldE5leHRCbG9jayhhLmlkKTtpLnJlbW92ZUJsb2NrKGEuaWQpLGYmJmYudHlwZSE9PSJkaXZpZGVyIiYmZi50eXBlIT09ImltYWdlIj9hd2FpdCBpLmZvY3VzQmxvY2soZi5pZCwiZW5kIik6ZyYmZy50eXBlIT09ImRpdmlkZXIiJiZnLnR5cGUhPT0iaW1hZ2UiP2F3YWl0IGkuZm9jdXNCbG9jayhnLmlkLCJzdGFydCIpOmY/YXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQpOmcmJmF3YWl0IGkuZm9jdXNCbG9jayhnLmlkKTtyZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7YS5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89YS50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBkPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksYz1bXTtkPy5zaGFkb3dSb290JiZjLnB1c2goZC5zaGFkb3dSb290KSxjLnB1c2gobi5zaGFkb3dSb290KTtsZXQgcD1SZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLmMpLGw9bi5nZXRDb250ZW50P24uZ2V0Q29udGVudCgpOm8udGV4dENvbnRlbnQ7aWYocD09PTApe2UucHJldmVudERlZmF1bHQoKTtsZXQgZj1pLmdldFByZXZpb3VzQmxvY2soYS5pZCk7aWYoZil7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGYudHlwZSkpe2F3YWl0IGkuZm9jdXNCbG9jayhmLmlkKTtyZXR1cm59aWYodGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSksZi50eXBlPT09ImNvZGUiJiZhLnR5cGUhPT0iY29kZSIpe2EuY29udGVudD09PSIiJiYoaS5yZW1vdmVCbG9jayhhLmlkKSxhd2FpdCBpLmZvY3VzQmxvY2soZi5pZCwiZW5kIikpO3JldHVybn1pZihhLnR5cGU9PT0iY29kZSImJmYudHlwZSE9PSJjb2RlIil7bGV0IEY9bi5nZXRDb250ZW50P24uZ2V0Q29udGVudCgpOmEuY29udGVudDsoRj09PSIifHxGLnRyaW0oKT09PSIiKSYmKGkucmVtb3ZlQmxvY2soYS5pZCksYXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQsImVuZCIpKTtyZXR1cm59bGV0IHY9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Zi5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKSxtPXY/LmdldENvbnRlbnQoKXx8Zi5jb250ZW50fHwiIix4PW4uZ2V0Q29udGVudCgpfHxhLmNvbnRlbnR8fCIiLE09IiI7Zi50eXBlPT09ImNvZGUiJiZhLnR5cGU9PT0iY29kZSJ8fGYudHlwZT09PSJsaXN0IiYmYS50eXBlPT09Imxpc3QiP009bSsobSYmeD9gCmA6IiIpK3g6TT1tKyhtJiZ4PyIgIjoiIikreDtsZXQgUz1tLmxlbmd0aDtpLnVwZGF0ZUJsb2NrQ29udGVudChmLmlkLE0pLHYmJnYuc2V0Q29udGVudChNKSxpLnJlbW92ZUJsb2NrKGEuaWQpLGF3YWl0IGkuZm9jdXNCbG9jayhmLmlkLFMpfX1lbHNlIGlmKHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg+MSl7bGV0IGY9bi5nZXRDb250ZW50P24uZ2V0Q29udGVudCgpOmEuY29udGVudDtpZihmPT09IiJ8fGYudHJpbSgpPT09IiIpe2UucHJldmVudERlZmF1bHQoKTtsZXQgZz1pLmdldFByZXZpb3VzQmxvY2soYS5pZCk7ZyYmKGkucmVtb3ZlQmxvY2soYS5pZCksZy50eXBlIT09ImRpdmlkZXIiJiZhd2FpdCBpLmZvY3VzQmxvY2soZy5pZCwiZW5kIikpfX19YXN5bmMgaGFuZGxlRGVsZXRlKGUsYSl7bGV0IGk9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhhLnR5cGUpKXtpZihlLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD09PTEpe3RoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGkucmVtb3ZlQmxvY2soYS5pZCk7bGV0IHY9aS5jcmVhdGVCbG9jaygicGFyYWdyYXBoIiwiIik7dGhpcy5jb21wb25lbnQuYmxvY2tzPVt2XSx0aGlzLmNvbXBvbmVudC5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksYXdhaXQgaS5mb2N1c0Jsb2NrKHYuaWQsInN0YXJ0IiksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKTtyZXR1cm59dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSk7bGV0IGY9aS5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpLGc9aS5nZXROZXh0QmxvY2soYS5pZCk7aS5yZW1vdmVCbG9jayhhLmlkKTtsZXQgeT1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07ZyYmIXkuaW5jbHVkZXMoZy50eXBlKT9hd2FpdCBpLmZvY3VzQmxvY2soZy5pZCwic3RhcnQiKTpmJiYheS5pbmNsdWRlcyhmLnR5cGUpP2F3YWl0IGkuZm9jdXNCbG9jayhmLmlkLCJlbmQiKTpnP2F3YWl0IGkuZm9jdXNCbG9jayhnLmlkKTpmJiZhd2FpdCBpLmZvY3VzQmxvY2soZi5pZCk7cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBvPWEudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFvKXJldHVybjtsZXQgZD1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGM9W107ZD8uc2hhZG93Um9vdCYmYy5wdXNoKGQuc2hhZG93Um9vdCksYy5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IHA9UmUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobywuLi5jKSxsPW8udGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihwPT09bCl7bGV0IGY9aS5nZXROZXh0QmxvY2soYS5pZCk7aWYoZiYmWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGYudHlwZSkpe2UucHJldmVudERlZmF1bHQoKSxhd2FpdCBpLmZvY3VzQmxvY2soZi5pZCk7cmV0dXJufX19YXN5bmMgaGFuZGxlQXJyb3dVcChlLGEpe2xldCBpPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTtpZihpLmluY2x1ZGVzKGEudHlwZSkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgcD10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsbD1wLmdldFByZXZpb3VzQmxvY2soYS5pZCk7bCYmYXdhaXQgcC5mb2N1c0Jsb2NrKGwuaWQsaS5pbmNsdWRlcyhsLnR5cGUpP3ZvaWQgMDoiZW5kIik7cmV0dXJufWxldCBzPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIXN8fCFzLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBuPWEudHlwZT09PSJjb2RlIj9zLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6cy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFuKXJldHVybjtsZXQgbz1zLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGQ9W107bz8uc2hhZG93Um9vdCYmZC5wdXNoKG8uc2hhZG93Um9vdCksZC5wdXNoKHMuc2hhZG93Um9vdCk7bGV0IGM9UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5kKTtpZighKCFjfHwhYy5jb2xsYXBzZWQpJiZ0aGlzLmlzT25GaXJzdExpbmUoYyxuLC4uLmQpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHA9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGw9cC5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpO2lmKGwpe2xldCBmPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBwLmZvY3VzQmxvY2sobC5pZCxmLmluY2x1ZGVzKGwudHlwZSk/dm9pZCAwOiJlbmQiKX19fWFzeW5jIGhhbmRsZUFycm93RG93bihlLGEpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhhLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IHA9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGw9cC5nZXROZXh0QmxvY2soYS5pZCk7aWYobCl7bGV0IGY9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IHAuZm9jdXNCbG9jayhsLmlkLGYuaW5jbHVkZXMobC50eXBlKT92b2lkIDA6InN0YXJ0Iil9cmV0dXJufWxldCBzPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke2EuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIXN8fCFzLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBuPWEudHlwZT09PSJjb2RlIj9zLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6cy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFuKXJldHVybjtsZXQgbz1zLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGQ9W107bz8uc2hhZG93Um9vdCYmZC5wdXNoKG8uc2hhZG93Um9vdCksZC5wdXNoKHMuc2hhZG93Um9vdCk7bGV0IGM9UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi5kKTtpZighKCFjfHwhYy5jb2xsYXBzZWQpJiZ0aGlzLmlzT25MYXN0TGluZShjLG4sLi4uZCkpe2UucHJldmVudERlZmF1bHQoKTtsZXQgcD10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsbD1wLmdldE5leHRCbG9jayhhLmlkKTtpZihsKXtsZXQgZj1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgcC5mb2N1c0Jsb2NrKGwuaWQsZi5pbmNsdWRlcyhsLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX19fWdldExhc3RUZXh0Tm9kZShlKXtpZihlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIGU7Zm9yKGxldCBhPWUuY2hpbGROb2Rlcy5sZW5ndGgtMTthPj0wO2EtLSl7bGV0IGk9dGhpcy5nZXRMYXN0VGV4dE5vZGUoZS5jaGlsZE5vZGVzW2FdKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfWFzeW5jIGhhbmRsZUFycm93TGVmdChlLGEpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhhLnR5cGUpKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGw9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGY9bC5nZXRQcmV2aW91c0Jsb2NrKGEuaWQpO2lmKGYpe2xldCBnPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBsLmZvY3VzQmxvY2soZi5pZCxnLmluY2x1ZGVzKGYudHlwZSk/dm9pZCAwOiJlbmQiKX1yZXR1cm59bGV0IHM9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7YS5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighc3x8IXMuc2hhZG93Um9vdClyZXR1cm47bGV0IG49YS50eXBlPT09ImNvZGUiP3Muc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW4pcmV0dXJuO2xldCBvPXMuY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksZD1bXTtvPy5zaGFkb3dSb290JiZkLnB1c2goby5zaGFkb3dSb290KSxkLnB1c2gocy5zaGFkb3dSb290KTtsZXQgYz1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmQpO2lmKCFjfHwhYy5jb2xsYXBzZWQpcmV0dXJuO2lmKFJlLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KG4sLi4uZCk9PT0wKXtsZXQgbD10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsZj1sLmdldFByZXZpb3VzQmxvY2soYS5pZCk7aWYoZil7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB5PVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhmLnR5cGUpP3ZvaWQgMDoiZW5kIjthd2FpdCBsLmZvY3VzQmxvY2soZi5pZCx5KX19fWFzeW5jIGhhbmRsZUFycm93UmlnaHQoZSxhKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoYS50eXBlKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBmPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxnPWYuZ2V0TmV4dEJsb2NrKGEuaWQpO2lmKGcpe2xldCB5PVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBmLmZvY3VzQmxvY2soZy5pZCx5LmluY2x1ZGVzKGcudHlwZSk/dm9pZCAwOiJzdGFydCIpfXJldHVybn1sZXQgcz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHthLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFzfHwhcy5zaGFkb3dSb290KXJldHVybjtsZXQgbj1hLnR5cGU9PT0iY29kZSI/cy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOnMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbilyZXR1cm47bGV0IG89cy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxkPVtdO28/LnNoYWRvd1Jvb3QmJmQucHVzaChvLnNoYWRvd1Jvb3QpLGQucHVzaChzLnNoYWRvd1Jvb3QpO2xldCBjPVJlLmdldFNlbGVjdGlvbkluZm8oLi4uZCk7aWYoIWN8fCFjLmNvbGxhcHNlZClyZXR1cm47bGV0IHA9UmUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobiwuLi5kKSxsPW4udGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihwPT09bCl7bGV0IGY9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGc9Zi5nZXROZXh0QmxvY2soYS5pZCk7aWYoZyl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCB5PVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCBmLmZvY3VzQmxvY2soZy5pZCx5LmluY2x1ZGVzKGcudHlwZSk/dm9pZCAwOiJzdGFydCIpfX19aXNPbkZpcnN0TGluZShlLGEsLi4uaSl7dHJ5e2xldCByPVJlLmNyZWF0ZVJhbmdlRnJvbUluZm8oZSkscz1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ci5jb21tb25BbmNlc3RvckNvbnRhaW5lcjtuLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJihuPW4ucGFyZW50RWxlbWVudCk7bGV0IG89bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkPXMudG9wLW8udG9wPDU7cmV0dXJuIG4udGV4dENvbnRlbnQmJiFuLnRleHRDb250ZW50LmluY2x1ZGVzKGAKYCk/UmUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobiwuLi5pKT09PTA6ZH1jYXRjaChyKXtyZXR1cm4gY29uc29sZS53YXJuKCJFcnJvciBjaGVja2luZyBmaXJzdCBsaW5lOiIsciksZS5zdGFydE9mZnNldD09PTB9fWlzT25MYXN0TGluZShlLGEsLi4uaSl7dHJ5e2xldCByPVJlLmNyZWF0ZVJhbmdlRnJvbUluZm8oZSkscz1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ci5jb21tb25BbmNlc3RvckNvbnRhaW5lcjtuLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJihuPW4ucGFyZW50RWxlbWVudCk7bGV0IGQ9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20tcy5ib3R0b208NTtpZihuLnRleHRDb250ZW50JiYhbi50ZXh0Q29udGVudC5pbmNsdWRlcyhgCmApKXtsZXQgYz1hLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuIFJlLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KGEsLi4uaSk9PT1jfXJldHVybiBkfWNhdGNoKHIpe2NvbnNvbGUud2FybigiRXJyb3IgY2hlY2tpbmcgbGFzdCBsaW5lOiIscik7bGV0IHM9YS50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3JldHVybiBSZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChhLC4uLmkpPT09c319fX0pO3ZhciBWOCxEZ3Q9YigoKT0+eyRhKCk7TmwoKTtWOD1jbGFzc3tjb21wb25lbnQ7ZHJhZ2dlZEJsb2NrSWQ9bnVsbDtkcmFnT3ZlckJsb2NrSWQ9bnVsbDtkcmFnT3ZlclBvc2l0aW9uPW51bGw7ZHJvcEluZGljYXRvcj1udWxsO2luaXRpYWxNb3VzZVk9MDtpbml0aWFsQmxvY2tZPTA7ZHJhZ2dlZEJsb2NrRWxlbWVudD1udWxsO2RyYWdnZWRCbG9ja0hlaWdodD0wO2RyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQ9MDtkcmFnZ2VkQmxvY2tNYXJnaW5Ub3A9MDtsYXN0VXBkYXRlVGltZT0wO3VwZGF0ZVRocm90dGxlPTgwO2NvbnN0cnVjdG9yKGUpe3RoaXMuY29tcG9uZW50PWV9Z2V0IGRyYWdTdGF0ZSgpe3JldHVybntkcmFnZ2VkQmxvY2tJZDp0aGlzLmRyYWdnZWRCbG9ja0lkLGRyYWdPdmVyQmxvY2tJZDp0aGlzLmRyYWdPdmVyQmxvY2tJZCxkcmFnT3ZlclBvc2l0aW9uOnRoaXMuZHJhZ092ZXJQb3NpdGlvbn19aGFuZGxlRHJhZ1N0YXJ0KGUsYSl7aWYoIWUuZGF0YVRyYW5zZmVyKXJldHVybjt0aGlzLmRyYWdnZWRCbG9ja0lkPWEuaWQsZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZD0ibW92ZSIsZS5kYXRhVHJhbnNmZXIuc2V0RGF0YSgidGV4dC9wbGFpbiIsYS5pZCk7bGV0IGk9bmV3IEltYWdlO2lmKGkuc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBVUVCQUFBQUN3QUFBQUFBUUFCQUFBQ0FrUUJBRHM9IixlLmRhdGFUcmFuc2Zlci5zZXREcmFnSW1hZ2UoaSwwLDApLHRoaXMuaW5pdGlhbE1vdXNlWT1lLmNsaWVudFksdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50PXRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7YS5pZH0iXWApLHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCl7bGV0IHI9dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuaW5pdGlhbEJsb2NrWT1yLnRvcDtsZXQgcz10aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYocyl7bGV0IG49cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHMpO3RoaXMuZHJhZ2dlZEJsb2NrTWFyZ2luVG9wPXBhcnNlSW50KG8ubWFyZ2luVG9wKXx8MCx0aGlzLmRyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQ9bi5oZWlnaHR9dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQ9ci5oZWlnaHQsY29uc29sZS5sb2coIkRyYWcgbWVhc3VyZW1lbnRzOiIse3dyYXBwZXJIZWlnaHQ6ci5oZWlnaHQsbWFyZ2luVG9wOnRoaXMuZHJhZ2dlZEJsb2NrTWFyZ2luVG9wLGRyb3BJbmRpY2F0b3JIZWlnaHQ6dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQsY29udGVudEhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQsYmxvY2tJZDphLmlkfSksdGhpcy5jcmVhdGVEcm9wSW5kaWNhdG9yKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuaGFuZGxlR2xvYmFsRHJhZ092ZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuaGFuZGxlR2xvYmFsRHJhZ0VuZCl9dGhpcy5jb21wb25lbnQuZHJhZ2dlZEJsb2NrSWQ9dGhpcy5kcmFnZ2VkQmxvY2tJZCxzZXRUaW1lb3V0KCgpPT57dGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50JiZ0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIil9LDEwKX1oYW5kbGVEcmFnRW5kKCl7dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpLmZvckVhY2goYT0+e2EuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciLCJtb3ZlLXVwIiwibW92ZS1kb3duIiksYS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIpLGEuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpfSksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHRoaXMuZHJhZ2dlZEJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsLHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudD1udWxsLHRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0PTAsdGhpcy5kcmFnZ2VkQmxvY2tDb250ZW50SGVpZ2h0PTAsdGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3A9MCx0aGlzLmluaXRpYWxCbG9ja1k9MCx0aGlzLmNvbXBvbmVudC5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249bnVsbH1oYW5kbGVEcmFnT3ZlcihlLGEpe2lmKGUucHJldmVudERlZmF1bHQoKSwhZS5kYXRhVHJhbnNmZXJ8fCF0aGlzLmRyYWdnZWRCbG9ja0lkfHx0aGlzLmRyYWdnZWRCbG9ja0lkPT09YS5pZClyZXR1cm47ZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0ibW92ZSI7bGV0IGk9ZS5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9aS50b3AraS5oZWlnaHQvMjt0aGlzLmRyYWdPdmVyQmxvY2tJZD1hLmlkLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1lLmNsaWVudFk8cj8iYmVmb3JlIjoiYWZ0ZXIiLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyQmxvY2tJZD10aGlzLmRyYWdPdmVyQmxvY2tJZCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlclBvc2l0aW9uPXRoaXMuZHJhZ092ZXJQb3NpdGlvbn1oYW5kbGVEcmFnTGVhdmUoZSl7dGhpcy5kcmFnT3ZlckJsb2NrSWQ9PT1lLmlkJiYodGhpcy5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmRyYWdPdmVyUG9zaXRpb249bnVsbCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlckJsb2NrSWQ9bnVsbCx0aGlzLmNvbXBvbmVudC5kcmFnT3ZlclBvc2l0aW9uPW51bGwpfWhhbmRsZURyb3AoZSxhKXtlLnByZXZlbnREZWZhdWx0KCksISghdGhpcy5kcmFnZ2VkQmxvY2tJZHx8dGhpcy5kcmFnZ2VkQmxvY2tJZD09PWEuaWQpJiZ0aGlzLmNvbXBvbmVudC5oYW5kbGVEcm9wKGUsYSl9aXNEcmFnZ2luZyhlKXtyZXR1cm4gdGhpcy5kcmFnZ2VkQmxvY2tJZD09PWV9aXNEcmFnT3ZlcihlKXtyZXR1cm4gdGhpcy5kcmFnT3ZlckJsb2NrSWQ9PT1lfWdldERyYWdPdmVyQ2xhc3NlcyhlKXtyZXR1cm4gdGhpcy5pc0RyYWdPdmVyKGUpP3RoaXMuZHJhZ092ZXJQb3NpdGlvbj09PSJiZWZvcmUiPyJkcmFnLW92ZXItYmVmb3JlIjoiZHJhZy1vdmVyLWFmdGVyIjoiIn1jcmVhdGVEcm9wSW5kaWNhdG9yKCl7dGhpcy5kcm9wSW5kaWNhdG9yPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMuZHJvcEluZGljYXRvci5jbGFzc05hbWU9ImRyb3AtaW5kaWNhdG9yIix0aGlzLmRyb3BJbmRpY2F0b3Iuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5hcHBlbmRDaGlsZCh0aGlzLmRyb3BJbmRpY2F0b3IpfWhhbmRsZUdsb2JhbERyYWdPdmVyPWU9PntpZihlLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudClyZXR1cm47bGV0IGE9ZS5jbGllbnRZLXRoaXMuaW5pdGlhbE1vdXNlWTt0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuc3R5bGUudHJhbnNmb3JtPWB0cmFuc2xhdGVZKCR7YX1weClgO2xldCBpPURhdGUubm93KCk7aS10aGlzLmxhc3RVcGRhdGVUaW1lPHRoaXMudXBkYXRlVGhyb3R0bGV8fCh0aGlzLmxhc3RVcGRhdGVUaW1lPWksdGhpcy51cGRhdGVCbG9ja1Bvc2l0aW9ucyhlLmNsaWVudFkpKX07dXBkYXRlQmxvY2tQb3NpdGlvbnMoZSl7bGV0IGE9QXJyYXkuZnJvbSh0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikpLGk9YS5maW5kSW5kZXgocz0+cy5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKT09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpO2lmKGk9PT0tMSlyZXR1cm47YS5mb3JFYWNoKHM9PntzLmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpIT09dGhpcy5kcmFnZ2VkQmxvY2tJZCYmKHMuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIpLHMuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiKSl9KTtsZXQgcj1hLmxlbmd0aDtmb3IobGV0IHM9MDtzPGEubGVuZ3RoO3MrKyl7aWYocz09PWkpY29udGludWU7bGV0IG89YVtzXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkPW8udG9wO2lmKGU8ZCtvLmhlaWdodCouNSl7cj1zO2JyZWFrfX1mb3IobGV0IHM9MDtzPGEubGVuZ3RoO3MrKyl7aWYocz09PWkpY29udGludWU7bGV0IG49YVtzXTtpPHI/cz5pJiZzPHImJihuLmNsYXNzTGlzdC5hZGQoIm1vdmUtdXAiKSxuLnN0eWxlLnNldFByb3BlcnR5KCItLWRyYWctb2Zmc2V0IixgJHt0aGlzLmRyYWdnZWRCbG9ja0hlaWdodH1weGApKTppPnImJnM+PXImJnM8aSYmKG4uY2xhc3NMaXN0LmFkZCgibW92ZS1kb3duIiksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIsYCR7dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHR9cHhgKSl9dGhpcy51cGRhdGVEcm9wSW5kaWNhdG9yKGEscixpKX11cGRhdGVEcm9wSW5kaWNhdG9yKGUsYSxpKXtpZighdGhpcy5kcm9wSW5kaWNhdG9yfHwhdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXJldHVybjt0aGlzLmRyb3BJbmRpY2F0b3Iuc3R5bGUuZGlzcGxheT0iYmxvY2siO2xldCByPXRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz0wLG49W107Zm9yKGxldCBjPTA7YzxlLmxlbmd0aDtjKyspe2lmKGM9PT1pKWNvbnRpbnVlO2xldCBwPWVbY10sbD1wLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGY9bC50b3Atci50b3AsZz1sLmJvdHRvbS1yLnRvcCx5PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHApLnRyYW5zZm9ybTtpZih5JiZ5IT09Im5vbmUiKXtsZXQgbT1uZXcgRE9NTWF0cml4KHkpLm00MjtmKz1tLGcrPW19bi5wdXNoKHtpbmRleDpjLHRvcDpmLGJvdHRvbTpnfSl9bi5zb3J0KChjLHApPT5jLnRvcC1wLnRvcCk7bGV0IG89YTthPmkmJm8tLTtsZXQgZD0xNjtpZih0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpe2xldCBjPXRoaXMuY29tcG9uZW50LmJsb2Nrcy5maW5kKHA9PnAuaWQ9PT10aGlzLmRyYWdnZWRCbG9ja0lkKTtpZihjKXtsZXQgcD1jLnR5cGU7cD09PSJoZWFkaW5nLTEifHxwPT09ImhlYWRpbmctMiJ8fHA9PT0iaGVhZGluZy0zIj9kPTI0OihwPT09ImNvZGUifHxwPT09InF1b3RlIikmJihkPTIwKX19aWYobz09PTApcz0wO2Vsc2UgaWYobz49bi5sZW5ndGgpe2xldCBjPW5bbi5sZW5ndGgtMV07YyYmKHM9Yy5ib3R0b20scys9ZCl9ZWxzZXtsZXQgYz1uW28tMV07YyYmKHM9Yy5ib3R0b20scys9ZCl9dGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLmhlaWdodD1gJHt0aGlzLmRyYWdnZWRCbG9ja0hlaWdodH1weGAsdGhpcy5kcm9wSW5kaWNhdG9yLnN0eWxlLnRvcD1gJHtNYXRoLm1heCgwLHMpfXB4YCxjb25zb2xlLmxvZygiRHJvcCBpbmRpY2F0b3IgdXBkYXRlOiIse3RhcmdldEluZGV4OmEsYWRqdXN0ZWRUYXJnZXRJbmRleDpvLGRyYWdnZWRJbmRleDppLHRvcFBvc2l0aW9uOnMsaGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0LGJsb2NrTWFyZ2luOmQsdmlzdWFsQmxvY2tzOm4ubWFwKGM9Pih7aW5kZXg6Yy5pbmRleCx0b3A6Yy50b3AsYm90dG9tOmMuYm90dG9tfSkpfSl9aGFuZGxlR2xvYmFsRHJhZ0VuZD0oKT0+e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQpLHRoaXMuZHJvcEluZGljYXRvciYmKHRoaXMuZHJvcEluZGljYXRvci5yZW1vdmUoKSx0aGlzLmRyb3BJbmRpY2F0b3I9bnVsbCksdGhpcy5kcmFnZ2VkQmxvY2tJZD9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLnBlcmZvcm1Ecm9wKCksdGhpcy5oYW5kbGVEcmFnRW5kKCl9KTp0aGlzLmhhbmRsZURyYWdFbmQoKX07cGVyZm9ybURyb3AoKXtpZighdGhpcy5kcmFnZ2VkQmxvY2tJZClyZXR1cm47bGV0IGU9QXJyYXkuZnJvbSh0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikpO2lmKCFlLmZpbmQocD0+cC5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKT09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpKXJldHVybjtsZXQgaT1lLm1hcChwPT57bGV0IGw9cC5nZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2staWQiKSxmPXAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZz1mLnRvcCtmLmhlaWdodC8yO3JldHVybntpZDpsLGNlbnRlclk6ZyxlbGVtZW50OnB9fSk7aS5zb3J0KChwLGwpPT5wLmNlbnRlclktbC5jZW50ZXJZKTtsZXQgcj1pLm1hcChwPT5wLmlkKS5maWx0ZXIocD0+cCE9PW51bGwpLHM9Wy4uLnRoaXMuY29tcG9uZW50LmJsb2Nrc10sbj1zLmZpbmQocD0+cC5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpO2lmKCFuKXJldHVybjtsZXQgbz1zLm1hcChwPT5wLmlkKTtpZighIXIuZXZlcnkoKHAsbCk9PnA9PT1vW2xdKSlyZXR1cm47bGV0IGM9ci5tYXAocD0+cy5maW5kKGw9PmwuaWQ9PT1wKSkuZmlsdGVyKEJvb2xlYW4pO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1jLHRoaXMuY29tcG9uZW50LnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHNldFRpbWVvdXQoKCk9PntuLnR5cGUhPT0iZGl2aWRlciImJnRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKG4uaWQpfSwxMDApfX19KTt2YXIgajgsRWd0PWIoKCk9PnskYSgpO2o4PWNsYXNze2hpc3Rvcnk9W107Y3VycmVudEluZGV4PS0xO21heEhpc3RvcnlTaXplPTUwO2xhc3RTYXZlVGltZT0wO3NhdmVEZWJvdW5jZU1zPTUwMDtjb25zdHJ1Y3Rvcigpe3RoaXMuaGlzdG9yeT1bXSx0aGlzLmN1cnJlbnRJbmRleD0tMX1zYXZlU3RhdGUoZSxhLGkpe2xldCByPURhdGUubm93KCk7aWYoci10aGlzLmxhc3RTYXZlVGltZTx0aGlzLnNhdmVEZWJvdW5jZU1zJiZ0aGlzLmN1cnJlbnRJbmRleD49MCl7dGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XT17YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZSksc2VsZWN0ZWRCbG9ja0lkOmEsY3Vyc29yUG9zaXRpb246aT97Li4uaX06dm9pZCAwLHRpbWVzdGFtcDpyfTtyZXR1cm59dGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aC0xJiYodGhpcy5oaXN0b3J5PXRoaXMuaGlzdG9yeS5zbGljZSgwLHRoaXMuY3VycmVudEluZGV4KzEpKTtsZXQgcz17YmxvY2tzOnRoaXMuY2xvbmVCbG9ja3MoZSksc2VsZWN0ZWRCbG9ja0lkOmEsY3Vyc29yUG9zaXRpb246aT97Li4uaX06dm9pZCAwLHRpbWVzdGFtcDpyfTt0aGlzLmhpc3RvcnkucHVzaChzKSx0aGlzLmN1cnJlbnRJbmRleCsrLHRoaXMuaGlzdG9yeS5sZW5ndGg+dGhpcy5tYXhIaXN0b3J5U2l6ZSYmKHRoaXMuaGlzdG9yeS5zaGlmdCgpLHRoaXMuY3VycmVudEluZGV4LS0pLHRoaXMubGFzdFNhdmVUaW1lPXJ9c2F2ZUNoZWNrcG9pbnQoZSxhLGkpe3RoaXMubGFzdFNhdmVUaW1lPTAsdGhpcy5zYXZlU3RhdGUoZSxhLGkpfXVuZG8oKXtyZXR1cm4gdGhpcy5jYW5VbmRvKCk/KHRoaXMuY3VycmVudEluZGV4LS0sdGhpcy5jbG9uZVN0YXRlKHRoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF0pKTpudWxsfXJlZG8oKXtyZXR1cm4gdGhpcy5jYW5SZWRvKCk/KHRoaXMuY3VycmVudEluZGV4KyssdGhpcy5jbG9uZVN0YXRlKHRoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF0pKTpudWxsfWNhblVuZG8oKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg+MH1jYW5SZWRvKCl7cmV0dXJuIHRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGgtMX1nZXRDdXJyZW50U3RhdGUoKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg+PTAmJnRoaXMuY3VycmVudEluZGV4PHRoaXMuaGlzdG9yeS5sZW5ndGg/dGhpcy5jbG9uZVN0YXRlKHRoaXMuaGlzdG9yeVt0aGlzLmN1cnJlbnRJbmRleF0pOm51bGx9Y2xlYXIoKXt0aGlzLmhpc3Rvcnk9W10sdGhpcy5jdXJyZW50SW5kZXg9LTEsdGhpcy5sYXN0U2F2ZVRpbWU9MH1jbG9uZUJsb2NrcyhlKXtyZXR1cm4gZS5tYXAoYT0+KHsuLi5hLG1ldGFkYXRhOmEubWV0YWRhdGE/ey4uLmEubWV0YWRhdGF9OnZvaWQgMH0pKX1jbG9uZVN0YXRlKGUpe3JldHVybntibG9ja3M6dGhpcy5jbG9uZUJsb2NrcyhlLmJsb2Nrcyksc2VsZWN0ZWRCbG9ja0lkOmUuc2VsZWN0ZWRCbG9ja0lkLGN1cnNvclBvc2l0aW9uOmUuY3Vyc29yUG9zaXRpb24/ey4uLmUuY3Vyc29yUG9zaXRpb259OnZvaWQgMCx0aW1lc3RhbXA6ZS50aW1lc3RhbXB9fWdldEhpc3RvcnlJbmZvKCl7cmV0dXJue3NpemU6dGhpcy5oaXN0b3J5Lmxlbmd0aCxjdXJyZW50SW5kZXg6dGhpcy5jdXJyZW50SW5kZXgsY2FuVW5kbzp0aGlzLmNhblVuZG8oKSxjYW5SZWRvOnRoaXMuY2FuUmVkbygpfX19fSk7dmFyIFU4LEhzLFBndCxJZ3Q9YigoKT0+e3VlKCk7JGEoKTtCcygpO2pyKCk7Q1YoKTtfVigpO280KCk7czIoKTtxZSgpO1U4PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sSHM9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFBndD0oKCk9PntsZXQgdD1baGUoImRlZXMtd3lzaXd5Zy1ibG9jayIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOk9iamVjdH0pXSxkPVtJKHt0eXBlOkJvb2xlYW59KV0sbD1bSSh7dHlwZTpPYmplY3R9KV0seT1bSSh7dHlwZTpPYmplY3R9KV0sVTgodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9jayIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImJsb2NrImluIFMsZ2V0OlM9PlMuYmxvY2ssc2V0OihTLEYpPT57Uy5ibG9jaz1GfX0sbWV0YWRhdGE6TX0sbixvKSxVOCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzU2VsZWN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJpc1NlbGVjdGVkImluIFMsZ2V0OlM9PlMuaXNTZWxlY3RlZCxzZXQ6KFMsRik9PntTLmlzU2VsZWN0ZWQ9Rn19LG1ldGFkYXRhOk19LGMscCksVTgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJoYW5kbGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImhhbmRsZXJzImluIFMsZ2V0OlM9PlMuaGFuZGxlcnMsc2V0OihTLEYpPT57Uy5oYW5kbGVycz1GfX0sbWV0YWRhdGE6TX0sZixnKSxVOCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Ind5c2l3eWdDb21wb25lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ3eXNpd3lnQ29tcG9uZW50ImluIFMsZ2V0OlM9PlMud3lzaXd5Z0NvbXBvbmVudCxzZXQ6KFMsRik9PntTLnd5c2l3eWdDb21wb25lbnQ9Rn19LG1ldGFkYXRhOk19LHYsbSksVTgobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCxhKSx4PWk9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fc2VsZWN0aW9uSGFuZGxlciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIix0aGlzLl9zZWxlY3Rpb25IYW5kbGVyKX0jZT1Icyh0aGlzLG4sdm9pZCAwKTtnZXQgYmxvY2soKXtyZXR1cm4gdGhpcy4jZX1zZXQgYmxvY2soTSl7dGhpcy4jZT1NfSN0PShIcyh0aGlzLG8pLEhzKHRoaXMsYywhMSkpO2dldCBpc1NlbGVjdGVkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlzU2VsZWN0ZWQoTSl7dGhpcy4jdD1NfSNhPShIcyh0aGlzLHApLEhzKHRoaXMsZix2b2lkIDApKTtnZXQgaGFuZGxlcnMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaGFuZGxlcnMoTSl7dGhpcy4jYT1NfSNpPShIcyh0aGlzLGcpLEhzKHRoaXMsdix2b2lkIDApKTtnZXQgd3lzaXd5Z0NvbXBvbmVudCgpe3JldHVybiB0aGlzLiNpfXNldCB3eXNpd3lnQ29tcG9uZW50KE0pe3RoaXMuI2k9TX1ibG9ja0VsZW1lbnQ9KEhzKHRoaXMsbSksbnVsbCk7Y29udGVudEluaXRpYWxpemVkPSExO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtoYW5kbGVyU3R5bGVzSW5qZWN0ZWQ9ITE7c3RhdGljIE5PTl9FRElUQUJMRV9UWVBFUz1bImltYWdlIiwiZGl2aWRlciIsInlvdXR1YmUiXTtpbmplY3RIYW5kbGVyU3R5bGVzKCl7aWYodGhpcy5oYW5kbGVyU3R5bGVzSW5qZWN0ZWQpcmV0dXJuO3RoaXMuaGFuZGxlclN0eWxlc0luamVjdGVkPSEwO2xldCBNPSIiLFM9dDEuZ2V0QWxsVHlwZXMoKTtmb3IobGV0IEYgb2YgUyl7bGV0IF89dDEuZ2V0SGFuZGxlcihGKTtfJiYoTSs9Xy5nZXRTdHlsZXMoKSl9aWYoTSl7bGV0IEY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtGLnRleHRDb250ZW50PU0sdGhpcy5zaGFkb3dSb290Py5hcHBlbmRDaGlsZChGKX19c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmJsb2NrIHsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBtaW4taGVpZ2h0OiAxLjZlbTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2UwZTBlMCIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrOmVtcHR5Om5vdCg6Zm9jdXMpOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrLXNwZWNpZmljIHN0eWxlcyBtb3ZlZCB0byBoYW5kbGVycyAqLwoKCiAgICAgIC8qIEZvcm1hdHRpbmcgc3R5bGVzICovCiAgICAgIC5ibG9jayA6aXMoYiwgc3Ryb25nKSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYmxvY2sgOmlzKGksIGVtKSB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuYmxvY2sgdSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC5ibG9jayBzIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKICAgICAgfQoKICAgICAgLmJsb2NrIGNvZGUgewogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZDE0IiwiI2ZmNmI2YiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrIGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC5ibG9jayBhOmhvdmVyIHsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke2guYmRUaGVtZSgiIzAwNjZjYyIsIiM0ZDk0ZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIENvZGUgYmxvY2sgY29udGFpbmVyIGFuZCBsYW5ndWFnZSBzdHlsZXMgbW92ZWQgdG8gaGFuZGxlciAqLwoKICAgICAgLyogU2VsZWN0aW9uIHN0eWxlcyAqLwogICAgICAuYmxvY2sgOjpzZWxlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjMpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMykiKX07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCgogICAgICAvKiBTdHJpa2UgdGhyb3VnaCAqLwogICAgICAuYmxvY2sgOmlzKHMsIHN0cmlrZSkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKCiAgICAgIC8qIEJsb2NrIG1hcmdpbiBhZGp1c3RtZW50cyBiYXNlZCBvbiB0eXBlICovCiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6Zmlyc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICA6aG9zdC1jb250ZXh0KC5ibG9jay13cmFwcGVyOmxhc3QtY2hpbGQpIC5ibG9jayB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogU2VsZWN0ZWQgc3RhdGUgKi8KICAgICAgLmJsb2NrLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4wNSkiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjIpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMikiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLThweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7CiAgICAgIH0KCgoKCiAgICBgXTtzaG91bGRVcGRhdGUoTSl7aWYoTS5oYXMoImlzU2VsZWN0ZWQiKSYmdGhpcy5ibG9jayl7bGV0IFM9bnVsbCxfPWAuYmxvY2suJHt0aGlzLmJsb2NrLnR5cGV9YDtyZXR1cm4gUz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXyksUyYmKHRoaXMuaXNTZWxlY3RlZD9TLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik6Uy5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpKSwhMX1pZihNLmhhcygiYmxvY2siKSYmdGhpcy5ibG9jayl7bGV0IFM9TS5nZXQoImJsb2NrIik7aWYoUyYmUy5pZCYmUy50eXBlJiZTLmlkPT09dGhpcy5ibG9jay5pZCYmUy50eXBlPT09dGhpcy5ibG9jay50eXBlKXJldHVybiExfXJldHVybiF0aGlzLmJsb2NrRWxlbWVudHx8dGhpcy5ibG9jaz8udHlwZSE9PXRoaXMuYmxvY2tFbGVtZW50LmRhdGFzZXQuYmxvY2tUeXBlfWZpcnN0VXBkYXRlZCgpe3RoaXMuY29udGVudEluaXRpYWxpemVkPSEwLHRoaXMuaW5qZWN0SGFuZGxlclN0eWxlcygpO2xldCBNPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7aWYoTSYmdGhpcy5ibG9jayYmKE0uaW5uZXJIVE1MPXRoaXMucmVuZGVyQmxvY2tDb250ZW50KCkpLHRoaXMuYmxvY2spe2xldCBGPXQxLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihGKXtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO18mJkYuc2V0dXAoXyx0aGlzLmJsb2NrLHRoaXMuaGFuZGxlcnMpO3JldHVybn19bGV0IFM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihTKXtTLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIsdGhpcy5ibG9jay5pZCksUy5zZXRBdHRyaWJ1dGUoImRhdGEtYmxvY2stdHlwZSIsdGhpcy5ibG9jay50eXBlKSxTLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixfPT57dGhpcy5oYW5kbGVycz8ub25JbnB1dD8uKF8pO2xldCBrPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oUyk7ayE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPWspfSksUy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixfPT57bGV0IGs9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihTKTtrIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249ayksdGhpcy5oYW5kbGVycz8ub25LZXlEb3duPy4oXyl9KSxTLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uRm9jdXM/LigpfSksUy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3RoaXMuaGFuZGxlcnM/Lm9uQmx1cj8uKCl9KSxTLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvblN0YXJ0Py4oKX0pLFMuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Db21wb3NpdGlvbkVuZD8uKCl9KSxTLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLF89PntsZXQgaz10aGlzLmdldEN1cnNvclBvc2l0aW9uKFMpO2shPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1rKSx0aGlzLmhhbmRsZXJzPy5vbk1vdXNlVXA/LihfKX0pLFMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57c2V0VGltZW91dCgoKT0+e2xldCBfPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oUyk7XyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPV8pfSwwKX0pO2xldCBGPSgpPT57bGV0IF89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFffHxfLnJhbmdlQ291bnQ9PT0wKXJldHVybjtsZXQgaz1fLnRvU3RyaW5nKCk7aWYoay5sZW5ndGg9PT0wKXt0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDoiIixibG9ja0lkOnRoaXMuYmxvY2suaWQsaGFzU2VsZWN0aW9uOiExfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKTtyZXR1cm59bGV0IE49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighTilyZXR1cm47bGV0IEE9dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxxPVtdO0EmJnEucHVzaChBKSx0aGlzLnNoYWRvd1Jvb3QmJnEucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBDPVJlLmdldFNlbGVjdGlvbkluZm8oLi4ucSk7aWYoIUMpcmV0dXJuO2xldCB6PVJlLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKE4sQy5zdGFydENvbnRhaW5lciksRT1SZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShOLEMuZW5kQ29udGFpbmVyKTtpZih6fHxFKXtpZihrIT09dGhpcy5sYXN0U2VsZWN0ZWRUZXh0KXt0aGlzLmxhc3RTZWxlY3RlZFRleHQ9aztsZXQgVD1SZS5jcmVhdGVSYW5nZUZyb21JbmZvKEMpLCQ9VC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OmsudHJpbSgpLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxyYW5nZTpULHJlY3Q6JCxoYXNTZWxlY3Rpb246ITB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9fWVsc2UgdGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6IiIsYmxvY2tJZDp0aGlzLmJsb2NrLmlkLGhhc1NlbGVjdGlvbjohMX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsRiksdGhpcy5fc2VsZWN0aW9uSGFuZGxlcj1GLFMuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCgpPT57bGV0IF89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihTKTtfIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249Xyl9KSx0aGlzLmJsb2NrLmNvbnRlbnQmJihTLmlubmVySFRNTD10aGlzLmJsb2NrLmNvbnRlbnQpfXRoaXMuYmxvY2tFbGVtZW50PVN9cmVuZGVyKCl7cmV0dXJuIHRoaXMuYmxvY2s/enNgPGRpdiBjbGFzcz0id3lzaXd5Zy1ibG9jay1jb250YWluZXIiPjwvZGl2PmA6enNgYH1yZW5kZXJCbG9ja0NvbnRlbnQoKXtpZighdGhpcy5ibG9jaylyZXR1cm4iIjtsZXQgTT10MS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoTSlyZXR1cm4gTS5yZW5kZXIodGhpcy5ibG9jayx0aGlzLmlzU2VsZWN0ZWQpO2xldCBTPXRoaXMuaXNTZWxlY3RlZD8iIHNlbGVjdGVkIjoiIjtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgJHt0aGlzLmJsb2NrLnR5cGV9JHtTfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgID48L2Rpdj4KICAgIGB9Zm9jdXMoKXtsZXQgTT10MS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoTSYmTS5mb2N1cyl7bGV0IEY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxfPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uZm9jdXMoRixfKX1pZih0aGlzLmJsb2NrJiZ4Lk5PTl9FRElUQUJMRV9UWVBFUy5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpKXtsZXQgRj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay4ke3RoaXMuYmxvY2sudHlwZX1gKTtGJiZGLmZvY3VzKCk7cmV0dXJufWxldCBTPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7UyYmKFMuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8Uy5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxTLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PVMmJnRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PVMmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntTLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKE09ImVuZCIpe2xldCBTPXQxLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihTJiZTLmZvY3VzV2l0aEN1cnNvcil7bGV0IGs9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxOPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIFMuZm9jdXNXaXRoQ3Vyc29yKGssTSxOKX1pZih0aGlzLmJsb2NrJiZ4Lk5PTl9FRElUQUJMRV9UWVBFUy5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpKXt0aGlzLmZvY3VzKCk7cmV0dXJufWxldCBGPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIUYpcmV0dXJuO0YuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8Ri5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxGLmZvY3VzKCk7bGV0IF89KCk9PntNPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQoKTpNPT09ImVuZCI/dGhpcy5zZXRDdXJzb3JUb0VuZCgpOnR5cGVvZiBNPT0ibnVtYmVyIiYmUmUuc2V0Q3Vyc29yUG9zaXRpb24oRixNKX07ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PUZ8fHRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PUY/XygpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnsoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PUZ8fHRoaXMuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PUYpJiZfKCl9KX1nZXRDdXJzb3JQb3NpdGlvbihNKXtsZXQgUz10MS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoUyYmUy5nZXRDdXJzb3JQb3NpdGlvbil7bGV0IHE9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gUy5nZXRDdXJzb3JQb3NpdGlvbihNLHEpfWxldCBfPXRoaXMuY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qsaz1bXTtfJiZrLnB1c2goXyksdGhpcy5zaGFkb3dSb290JiZrLnB1c2godGhpcy5zaGFkb3dSb290KTtsZXQgTj1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmspO2lmKGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogU2VsZWN0aW9uIGluZm8gZnJvbSBzaGFkb3cgRE9NczoiLHtzZWxlY3Rpb25JbmZvOk4sc2hhZG93Um9vdHNDb3VudDprLmxlbmd0aH0pLCFOKXJldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IE5vIHNlbGVjdGlvbiBmb3VuZCIpLG51bGw7aWYoY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBSYW5nZSBpbmZvOiIse3N0YXJ0Q29udGFpbmVyOk4uc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6Ti5zdGFydE9mZnNldCxjb2xsYXBzZWQ6Ti5jb2xsYXBzZWQsc3RhcnRDb250YWluZXJUZXh0Ok4uc3RhcnRDb250YWluZXIudGV4dENvbnRlbnR9KSwhTS5jb250YWlucyhOLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBSYW5nZSBub3QgaW4gZWxlbWVudCIpLG51bGw7bGV0IEw9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtMLnNlbGVjdE5vZGVDb250ZW50cyhNKSxMLnNldEVuZChOLnN0YXJ0Q29udGFpbmVyLE4uc3RhcnRPZmZzZXQpO2xldCBBPUwudG9TdHJpbmcoKS5sZW5ndGg7cmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogQ2FsY3VsYXRlZCBwb3NpdGlvbjoiLHtwb3NpdGlvbjpBLHByZUNhcmV0VGV4dDpMLnRvU3RyaW5nKCksZWxlbWVudFRleHQ6TS50ZXh0Q29udGVudCxlbGVtZW50VGV4dExlbmd0aDpNLnRleHRDb250ZW50Py5sZW5ndGh9KSxBfWdldENvbnRlbnQoKXtsZXQgTT10MS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoTSYmTS5nZXRDb250ZW50KXtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLGs9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gTS5nZXRDb250ZW50KF8sayl9bGV0IFM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighUylyZXR1cm4iIjtsZXQgRj1TLmlubmVySFRNTHx8IiI7cmV0dXJuIGNvbnNvbGUubG9nKCJHZXR0aW5nIGNvbnRlbnQgZnJvbSBibG9jazoiLEYpLEZ9c2V0Q29udGVudChNKXtsZXQgUz10MS5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoUyYmUy5zZXRDb250ZW50KXtsZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLE49e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gUy5zZXRDb250ZW50KGssTSxOKX1sZXQgRj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFGKXJldHVybjtsZXQgXz1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Rnx8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09RjtGLmlubmVySFRNTD1NLF8mJkYuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KCl7bGV0IE09dDEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE0mJk0uc2V0Q3Vyc29yVG9TdGFydCl7bGV0IEY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKSxfPXtzaGFkb3dSb290OnRoaXMuc2hhZG93Um9vdCxjb21wb25lbnQ6dGhpc307cmV0dXJuIE0uc2V0Q3Vyc29yVG9TdGFydChGLF8pfWxldCBTPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7UyYmQTIuc2V0Q3Vyc29yVG9TdGFydChTKX1zZXRDdXJzb3JUb0VuZCgpe2xldCBNPXQxLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihNJiZNLnNldEN1cnNvclRvRW5kKXtsZXQgRj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLF89e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gTS5zZXRDdXJzb3JUb0VuZChGLF8pfWxldCBTPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7UyYmQTIuc2V0Q3Vyc29yVG9FbmQoUyl9Z2V0Q29udGV4dE1lbnVJdGVtcygpe2lmKCF0aGlzLmJsb2NrfHx0aGlzLmJsb2NrLnR5cGU9PT0iZGl2aWRlciIpcmV0dXJuW107bGV0IE09cTEuZ2V0U2xhc2hNZW51SXRlbXMoKSxTPXRoaXMuYmxvY2sudHlwZSxGPXRoaXMud3lzaXd5Z0NvbXBvbmVudCxfPXRoaXMuYmxvY2suaWQsTj1be25hbWU6IkNoYW5nZSBUeXBlIixpY29uTmFtZToidHlwZSIsc3VibWVudTpNLmZpbHRlcihMPT5MLnR5cGUhPT1TJiZMLnR5cGUhPT0iZGl2aWRlciIpLm1hcChMPT4oe25hbWU6TC5sYWJlbCxpY29uTmFtZTpMLmljb24ucmVwbGFjZSgibHVjaWRlOiIsIiIpLGFjdGlvbjphc3luYygpPT57aWYoRiYmRi5ibG9ja09wZXJhdGlvbnMpe2xldCBBPUYuYmxvY2tzLmZpbmQocT0+cS5pZD09PV8pO0EmJihBLnR5cGU9TC50eXBlLEEuY29udGVudD1BLmNvbnRlbnR8fCIiLEwudHlwZT09PSJjb2RlIj9BLm1ldGFkYXRhPXtsYW5ndWFnZToidHlwZXNjcmlwdCJ9OkwudHlwZT09PSJsaXN0Ij9BLm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In06TC50eXBlPT09ImltYWdlIj8oQS5jb250ZW50PSIiLEEubWV0YWRhdGE9e3VybDoiIixsb2FkaW5nOiExfSk6TC50eXBlPT09InlvdXR1YmUiPyhBLmNvbnRlbnQ9IiIsQS5tZXRhZGF0YT17dmlkZW9JZDoiIix1cmw6IiJ9KTpMLnR5cGU9PT0ibWFya2Rvd24iP0EubWV0YWRhdGE9e3Nob3dQcmV2aWV3OiExfTpMLnR5cGU9PT0iaHRtbCI/QS5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OkwudHlwZT09PSJhdHRhY2htZW50IiYmKEEuY29udGVudD0iIixBLm1ldGFkYXRhPXtmaWxlczpbXX0pLEYudXBkYXRlQmxvY2tFbGVtZW50KF8pLEYudXBkYXRlVmFsdWUoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntGLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKF8pfSkpfX19KSl9XTtyZXR1cm5bImltYWdlIiwiZGl2aWRlciIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXModGhpcy5ibG9jay50eXBlKXx8Ti5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZToiQ3V0IixpY29uTmFtZToic2Npc3NvcnMiLHNob3J0Y3V0OiJDbWQrWCIsYWN0aW9uOmFzeW5jKCk9Pntkb2N1bWVudC5leGVjQ29tbWFuZCgiY3V0Iil9fSx7bmFtZToiQ29weSIsaWNvbk5hbWU6ImNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsYWN0aW9uOmFzeW5jKCk9Pntkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpfX0se25hbWU6IlBhc3RlIixpY29uTmFtZToiY2xpcGJvYXJkIixzaG9ydGN1dDoiQ21kK1YiLGFjdGlvbjphc3luYygpPT57ZG9jdW1lbnQuZXhlY0NvbW1hbmQoInBhc3RlIil9fSksTi5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZToiRGVsZXRlIEJsb2NrIixpY29uTmFtZToidHJhc2gyIixhY3Rpb246YXN5bmMoKT0+e0YmJkYuYmxvY2tPcGVyYXRpb25zJiZGLmJsb2NrT3BlcmF0aW9ucy5kZWxldGVCbG9jayhfKX19KSxOfWdldFNwbGl0Q29udGVudCgpe2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFN0YXJ0aW5nLi4uIik7bGV0IE09dDEuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IENoZWNraW5nIGZvciBoYW5kbGVyIix7YmxvY2tUeXBlOnRoaXMuYmxvY2sudHlwZSxoYXNIYW5kbGVyOiEhTSxoYXNTcGxpdE1ldGhvZDohIShNJiZNLmdldFNwbGl0Q29udGVudCl9KSxNJiZNLmdldFNwbGl0Q29udGVudCl7bGV0IFY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKTtjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBGb3VuZCBjb250YWluZXIiLHtjb250YWluZXI6ISFWLGNvbnRhaW5lckhUTUw6Vj8uaW5uZXJIVE1MPy5zdWJzdHJpbmcoMCwxMDApfSk7bGV0IFI9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gTS5nZXRTcGxpdENvbnRlbnQoVixSKX1sZXQgUz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFTKXJldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBObyBlZGl0YWJsZSBlbGVtZW50IGZvdW5kIiksbnVsbDtjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBFbGVtZW50IGluZm86Iix7YmxvY2tUeXBlOnRoaXMuYmxvY2sudHlwZSxpbm5lckhUTUw6Uy5pbm5lckhUTUwsdGV4dENvbnRlbnQ6Uy50ZXh0Q29udGVudCx0ZXh0TGVuZ3RoOlMudGV4dENvbnRlbnQ/Lmxlbmd0aH0pO2xldCBfPXRoaXMuY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qsaz1bXTtfJiZrLnB1c2goXyksdGhpcy5zaGFkb3dSb290JiZrLnB1c2godGhpcy5zaGFkb3dSb290KTtsZXQgTj1SZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmspO2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFNlbGVjdGlvbiBpbmZvIGZyb20gc2hhZG93IERPTXM6Iix7c2VsZWN0aW9uSW5mbzpOLHNoYWRvd1Jvb3RzQ291bnQ6ay5sZW5ndGh9KSwhTil7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogTm8gc2VsZWN0aW9uLCB1c2luZyBsYXN0IGtub3duIHBvc2l0aW9uOiIsdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiksdGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCBWPVMudGV4dENvbnRlbnR8fCIiLFI9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbixWLmxlbmd0aCk7cmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFNwbGl0dGluZyB3aXRoIGxhc3Qga25vd24gcG9zaXRpb246Iix7cG9zOlIsZnVsbFRleHRMZW5ndGg6Vi5sZW5ndGgsYmVmb3JlOlYuc3Vic3RyaW5nKDAsUiksYWZ0ZXI6Vi5zdWJzdHJpbmcoUil9KSx7YmVmb3JlOlYuc3Vic3RyaW5nKDAsUiksYWZ0ZXI6Vi5zdWJzdHJpbmcoUil9fXJldHVybiBudWxsfWlmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFNlbGVjdGlvbiByYW5nZToiLHtzdGFydENvbnRhaW5lcjpOLnN0YXJ0Q29udGFpbmVyLHN0YXJ0T2Zmc2V0Ok4uc3RhcnRPZmZzZXQsc3RhcnRDb250YWluZXJJbkVsZW1lbnQ6Uy5jb250YWlucyhOLnN0YXJ0Q29udGFpbmVyKX0pLCFSZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShTLE4uc3RhcnRDb250YWluZXIpKXtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBTZWxlY3Rpb24gbm90IGluIHRoaXMgYmxvY2ssIHVzaW5nIGxhc3Qga25vd24gcG9zaXRpb246Iix0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uKSx0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IFY9Uy50ZXh0Q29udGVudHx8IiIsUj1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLFYubGVuZ3RoKTtyZXR1cm57YmVmb3JlOlYuc3Vic3RyaW5nKDAsUiksYWZ0ZXI6Vi5zdWJzdHJpbmcoUil9fXJldHVybiBudWxsfWxldCBMPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oUyk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ3Vyc29yIHBvc2l0aW9uIGZvciBIVE1MIHNwbGl0OiIsTCksTD09PW51bGx8fEw9PT0wKXJldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDdXJzb3IgYXQgc3RhcnQgb3IgbnVsbCwgbW92aW5nIGFsbCBjb250ZW50Iikse2JlZm9yZToiIixhZnRlcjpTLmlubmVySFRNTH07bGV0IEE9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxxPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7QS5zZXRTdGFydChTLDApLEEuc2V0RW5kKE4uc3RhcnRDb250YWluZXIsTi5zdGFydE9mZnNldCkscS5zZXRTdGFydChOLnN0YXJ0Q29udGFpbmVyLE4uc3RhcnRPZmZzZXQpLHEuc2V0RW5kKFMsUy5jaGlsZE5vZGVzLmxlbmd0aCk7bGV0IEM9QS5jbG9uZUNvbnRlbnRzKCksej1xLmNsb25lQ29udGVudHMoKSxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0UuYXBwZW5kQ2hpbGQoQyk7bGV0IFQ9RS5pbm5lckhUTUw7RS5pbm5lckhUTUw9IiIsRS5hcHBlbmRDaGlsZCh6KTtsZXQgJD1FLmlubmVySFRNTDtyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogRmluYWwgc3BsaXQgcmVzdWx0OiIse2N1cnNvclBvczpMLGJlZm9yZUh0bWw6VCxiZWZvcmVMZW5ndGg6VC5sZW5ndGgsYmVmb3JlSHRtbFByZXZpZXc6VC5zdWJzdHJpbmcoMCwxMDApKyhULmxlbmd0aD4xMDA/Ii4uLiI6IiIpLGFmdGVySHRtbDokLGFmdGVyTGVuZ3RoOiQubGVuZ3RoLGFmdGVySHRtbFByZXZpZXc6JC5zdWJzdHJpbmcoMCwxMDApKygkLmxlbmd0aD4xMDA/Ii4uLiI6IiIpfSkse2JlZm9yZTpULGFmdGVyOiR9fXN0YXRpY3tIcyhpLGEpfX07cmV0dXJuIHg9aX0pKCl9KTt2YXIgTFY9YigoKT0+eyRWKCk7JGEoKTtObCgpO3J3KCk7bWd0KCk7a1YoKTtvNCgpO3dWKCk7anIoKTtCcygpO1NWKCk7X1YoKTskZ3QoKTtBZ3QoKTtEZ3QoKTtUVigpO0VndCgpO3hWKCk7TVYoKTtJZ3QoKX0pO3ZhciBmbyxmYSxBViwkVj1iKCgpPT57QzEoKTtmZ3QoKTtHMCgpO3VlKCk7TFYoKTtxZSgpO2ZvPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sZmE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LEFWPSgoKT0+e2xldCB0PVtoZSgiZGVlcy1pbnB1dC13eXNpd3lnIildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W107dmFyIHE9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0ooKV0seT1bSigpXSx4PVtKKCldLEY9W0ooKV0sTj1bSigpXSxmbyh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idmFsdWUiaW4geixnZXQ6ej0+ei52YWx1ZSxzZXQ6KHosRSk9Pnt6LnZhbHVlPUV9fSxtZXRhZGF0YTpDfSxuLG8pLGZvKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0Rm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ib3V0cHV0Rm9ybWF0ImluIHosZ2V0Ono9Pnoub3V0cHV0Rm9ybWF0LHNldDooeixFKT0+e3oub3V0cHV0Rm9ybWF0PUV9fSxtZXRhZGF0YTpDfSxjLHApLGZvKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmxvY2tzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iYmxvY2tzImluIHosZ2V0Ono9PnouYmxvY2tzLHNldDooeixFKT0+e3ouYmxvY2tzPUV9fSxtZXRhZGF0YTpDfSxmLGcpLGZvKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ2dlZEJsb2NrSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJkcmFnZ2VkQmxvY2tJZCJpbiB6LGdldDp6PT56LmRyYWdnZWRCbG9ja0lkLHNldDooeixFKT0+e3ouZHJhZ2dlZEJsb2NrSWQ9RX19LG1ldGFkYXRhOkN9LHYsbSksZm8odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlckJsb2NrSWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJkcmFnT3ZlckJsb2NrSWQiaW4geixnZXQ6ej0+ei5kcmFnT3ZlckJsb2NrSWQsc2V0Oih6LEUpPT57ei5kcmFnT3ZlckJsb2NrSWQ9RX19LG1ldGFkYXRhOkN9LE0sUyksZm8odGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnT3ZlclBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iZHJhZ092ZXJQb3NpdGlvbiJpbiB6LGdldDp6PT56LmRyYWdPdmVyUG9zaXRpb24sc2V0Oih6LEUpPT57ei5kcmFnT3ZlclBvc2l0aW9uPUV9fSxtZXRhZGF0YTpDfSxfLGspLGZvKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ic2VsZWN0ZWRUZXh0ImluIHosZ2V0Ono9Pnouc2VsZWN0ZWRUZXh0LHNldDooeixFKT0+e3ouc2VsZWN0ZWRUZXh0PUV9fSxtZXRhZGF0YTpDfSxMLEEpLGZvKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsYSkscT1pPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9c3RhdGljIGRlbW89dWd0O3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiLCJXb3Jrc3BhY2UiXTsjZT1mYSh0aGlzLG4sIiIpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShDKXt0aGlzLiNlPUN9I3Q9KGZhKHRoaXMsbyksZmEodGhpcyxjLCJodG1sIikpO2dldCBvdXRwdXRGb3JtYXQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgb3V0cHV0Rm9ybWF0KEMpe3RoaXMuI3Q9Q30jYT0oZmEodGhpcyxwKSxmYSh0aGlzLGYsW3tpZDpxMS5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IiJ9XSkpO2dldCBibG9ja3MoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYmxvY2tzKEMpe3RoaXMuI2E9Q31zZWxlY3RlZEJsb2NrSWQ9KGZhKHRoaXMsZyksbnVsbCk7c2xhc2hNZW51PXR3LmdldEluc3RhbmNlKCk7I2k9ZmEodGhpcyx2LG51bGwpO2dldCBkcmFnZ2VkQmxvY2tJZCgpe3JldHVybiB0aGlzLiNpfXNldCBkcmFnZ2VkQmxvY2tJZChDKXt0aGlzLiNpPUN9I3I9KGZhKHRoaXMsbSksZmEodGhpcyxNLG51bGwpKTtnZXQgZHJhZ092ZXJCbG9ja0lkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGRyYWdPdmVyQmxvY2tJZChDKXt0aGlzLiNyPUN9I3M9KGZhKHRoaXMsUyksZmEodGhpcyxfLG51bGwpKTtnZXQgZHJhZ092ZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBkcmFnT3ZlclBvc2l0aW9uKEMpe3RoaXMuI3M9Q31mb3JtYXR0aW5nTWVudT0oZmEodGhpcyxrKSxpdy5nZXRJbnN0YW5jZSgpKTsjbj1mYSh0aGlzLEwsIiIpO2dldCBzZWxlY3RlZFRleHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgc2VsZWN0ZWRUZXh0KEMpe3RoaXMuI249Q31lZGl0b3JDb250ZW50UmVmPWZhKHRoaXMsQSk7aXNDb21wb3Npbmc9ITE7YmxvY2tPcGVyYXRpb25zO2lucHV0SGFuZGxlcjtrZXlib2FyZEhhbmRsZXI7ZHJhZ0Ryb3BIYW5kbGVyO2hpc3Rvcnk7c3RhdGljIHN0eWxlcz1bQ2UsLi4uWGUuYmFzZVN0eWxlcyxoLmRlZmF1bHRTdHlsZXMselZdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmJsb2NrT3BlcmF0aW9ucz1uZXcgTDgodGhpcyksdGhpcy5pbnB1dEhhbmRsZXI9bmV3IEg4KHRoaXMpLHRoaXMua2V5Ym9hcmRIYW5kbGVyPW5ldyBxOCh0aGlzKSx0aGlzLmRyYWdEcm9wSGFuZGxlcj1uZXcgVjgodGhpcyksdGhpcy5oaXN0b3J5PW5ldyBqOH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaW5wdXRIYW5kbGVyPy5kZXN0cm95KCksdGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWUmJnRoaXMudmFsdWUudHJpbSgpLmxlbmd0aD4wKXtsZXQgQz10aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj94aS5wYXJzZUh0bWxUb0Jsb2Nrcyh0aGlzLnZhbHVlKTp4aS5wYXJzZU1hcmtkb3duVG9CbG9ja3ModGhpcy52YWx1ZSk7Qy5sZW5ndGg+MCYmKHRoaXMuYmxvY2tzPUMpfXRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLmVkaXRvckNvbnRlbnRSZWY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0b3ItY29udGVudCIpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5lZGl0b3JDb250ZW50UmVmLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixDPT50aGlzLmhhbmRsZUVkaXRvckNsaWNrKEMpKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrLXRleHQtc2VsZWN0ZWQiLEM9PntpZighdGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmQy5kZXRhaWwuaGFzU2VsZWN0aW9uJiZDLmRldGFpbC50ZXh0Lmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZFRleHQ9Qy5kZXRhaWwudGV4dCxDLmRldGFpbC5yZWN0KSl7bGV0IHo9e3g6Qy5kZXRhaWwucmVjdC5sZWZ0K0MuZGV0YWlsLnJlY3Qud2lkdGgvMix5Ok1hdGgubWF4KDQ1LEMuZGV0YWlsLnJlY3QudG9wLTQ1KX07dGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KHosYXN5bmMgRT0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdChFKSl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixDPT57bGV0IHo9dGhpcy5mb3JtYXR0aW5nTWVudS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZm9ybWF0dGluZy1tZW51Iik7aWYoeiYmei5jb250YWlucyhDLnRhcmdldCkpcmV0dXJuO2xldCBFPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtFJiZFLnRvU3RyaW5nKCkudHJpbSgpLmxlbmd0aD4wfHx0aGlzLmZvcm1hdHRpbmdNZW51LnZpc2libGUmJnRoaXMuaGlkZUZvcm1hdHRpbmdNZW51KCl9KSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEM9PntsZXQgej1DLnRhcmdldDshdGhpcy5jb250YWlucyh6KSYmIXRoaXMuc2hhZG93Um9vdD8uY29udGFpbnMoeil8fCgoQy5tZXRhS2V5fHxDLmN0cmxLZXkpJiYhQy5zaGlmdEtleSYmQy5rZXk9PT0ieiI/KEMucHJldmVudERlZmF1bHQoKSx0aGlzLnVuZG8oKSk6KEMubWV0YUtleXx8Qy5jdHJsS2V5KSYmQy5zaGlmdEtleSYmQy5rZXk9PT0ieiImJihDLnByZXZlbnREZWZhdWx0KCksdGhpcy5yZWRvKCkpKX0pLHRoaXMuaGlzdG9yeS5zYXZlU3RhdGUodGhpcy5ibG9ja3MsdGhpcy5zZWxlY3RlZEJsb2NrSWQpLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpfXJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKXt0aGlzLmVkaXRvckNvbnRlbnRSZWYmJih0aGlzLmVkaXRvckNvbnRlbnRSZWYuaW5uZXJIVE1MPSIiLHRoaXMuYmxvY2tzLmZvckVhY2goQz0+e2xldCB6PXRoaXMuY3JlYXRlQmxvY2tFbGVtZW50KEMpO3RoaXMuZWRpdG9yQ29udGVudFJlZi5hcHBlbmRDaGlsZCh6KX0pKX1jcmVhdGVCbG9ja0VsZW1lbnQoQyl7bGV0IHo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoei5jbGFzc05hbWU9ImJsb2NrLXdyYXBwZXIiLHouc2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIixDLmlkKSxDLnR5cGUhPT0iZGl2aWRlciIpe2xldCBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1QuY2xhc3NOYW1lPSJkcmFnLWhhbmRsZSIsVC5kcmFnZ2FibGU9ITAsVC5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCQ9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdTdGFydCgkLEMpKSx6LmFwcGVuZENoaWxkKFQpfWxldCBFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtd3lzaXd5Zy1ibG9jayIpO3JldHVybiBFLmJsb2NrPUMsRS5pc1NlbGVjdGVkPXRoaXMuc2VsZWN0ZWRCbG9ja0lkPT09Qy5pZCxFLnd5c2l3eWdDb21wb25lbnQ9dGhpcyxFLmhhbmRsZXJzPXtvbklucHV0OlQ9PnRoaXMuaW5wdXRIYW5kbGVyLmhhbmRsZUJsb2NrSW5wdXQoVCxDKSxvbktleURvd246VD0+dGhpcy5rZXlib2FyZEhhbmRsZXIuaGFuZGxlQmxvY2tLZXlEb3duKFQsQyksb25Gb2N1czooKT0+dGhpcy5oYW5kbGVCbG9ja0ZvY3VzKEMpLG9uQmx1cjooKT0+dGhpcy5oYW5kbGVCbG9ja0JsdXIoQyksb25Db21wb3NpdGlvblN0YXJ0OigpPT50aGlzLmlzQ29tcG9zaW5nPSEwLG9uQ29tcG9zaXRpb25FbmQ6KCk9PnRoaXMuaXNDb21wb3Npbmc9ITEsb25Nb3VzZVVwOlQ9PnRoaXMuaGFuZGxlVGV4dFNlbGVjdGlvbihUKSxvblJlcXVlc3RVcGRhdGU6KCk9PnRoaXMudXBkYXRlQmxvY2tFbGVtZW50KEMuaWQpfSx6LmFwcGVuZENoaWxkKEUpLHouYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLFQ9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdPdmVyKFQsQykpLHouYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsVD0+dGhpcy5kcmFnRHJvcEhhbmRsZXIuaGFuZGxlRHJvcChULEMpKSx6LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsKCk9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdMZWF2ZShDKSksen11cGRhdGVCbG9ja0VsZW1lbnQoQyl7bGV0IHo9dGhpcy5ibG9ja3MuZmluZCgkPT4kLmlkPT09Qyk7aWYoIXopcmV0dXJuO2xldCBFPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtDfSJdYCk7aWYoIUUpcmV0dXJuO2xldCBUPXRoaXMuY3JlYXRlQmxvY2tFbGVtZW50KHopO0UucmVwbGFjZVdpdGgoVCl9cmVuZGVyKCl7cmV0dXJuIHpzYAogICAgICA8ZGVlcy1sYWJlbAogICAgICAgIC5sYWJlbD0iJHt0aGlzLmxhYmVsfSIKICAgICAgICAuZGVzY3JpcHRpb249IiR7dGhpcy5kZXNjcmlwdGlvbn0iCiAgICAgICAgLnJlcXVpcmVkPSIke3RoaXMucmVxdWlyZWR9IgogICAgICA+PC9kZWVzLWxhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJ3eXNpd3lnLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJlZGl0b3ItY29udGVudCAke3RoaXMuZHJhZ2dlZEJsb2NrSWQ/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBpZD0iZWRpdG9yLWNvbnRlbnQiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU2xhc2hNZW51S2V5Ym9hcmQoQyl7c3dpdGNoKEMua2V5KXtjYXNlIkFycm93RG93biI6Qy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJkb3duIik7YnJlYWs7Y2FzZSJBcnJvd1VwIjpDLnByZXZlbnREZWZhdWx0KCksdGhpcy5zbGFzaE1lbnUubmF2aWdhdGUoInVwIik7YnJlYWs7Y2FzZSJFbnRlciI6Qy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51LnNlbGVjdEN1cnJlbnQoKTticmVhaztjYXNlIkVzY2FwZSI6Qy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2VTbGFzaE1lbnUoITApO2JyZWFrfX1jbG9zZVNsYXNoTWVudShDPSExKXtpZihDJiZ0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0IHo9dGhpcy5ibG9ja3MuZmluZChFPT5FLmlkPT09dGhpcy5zZWxlY3RlZEJsb2NrSWQpO2lmKHope2xldCBUPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt6LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFQpe2xldCAkPVQuZ2V0Q29udGVudCgpO2lmKCQuc3RhcnRzV2l0aCgiLyIpKXtsZXQgVj0kLnJlcGxhY2UoL15cL1teXHNdKlxzKi8sIiIpLnRyaW0oKTtULnNldENvbnRlbnQoViksei5jb250ZW50PVYscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57VC5mb2N1c1dpdGhDdXJzb3IoMCl9KX19fX10aGlzLnNsYXNoTWVudS5oaWRlKCl9aGFuZGxlQmxvY2tGb2N1cyhDKXt0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCk7bGV0IHo9dGhpcy5zZWxlY3RlZEJsb2NrSWQ7aWYodGhpcy5zZWxlY3RlZEJsb2NrSWQ9Qy5pZCx6IT09Qy5pZCl7aWYoeil7bGV0IFY9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt6fSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO1YmJihWLmlzU2VsZWN0ZWQ9ITEpfWxldCBUPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Qy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtUJiYoVC5pc1NlbGVjdGVkPSEwKX19Ymx1clRpbWVvdXQ9bnVsbDtoYW5kbGVCbG9ja0JsdXIoQyl7aWYodGhpcy5ibHVyVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuc2xhc2hNZW51LnZpc2libGUpcmV0dXJuO2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Qy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihFJiZFLmdldENvbnRlbnQpe2xldCBUPUUuZ2V0Q29udGVudCgpO0MuY29udGVudCE9PVQmJihDLmNvbnRlbnQ9VCl9dGhpcy5ibHVyVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoImJsb2NrIil8fHRoaXMudXBkYXRlVmFsdWUoKX0sMTAwKX1oYW5kbGVFZGl0b3JDbGljayhDKXtsZXQgej1DLnRhcmdldDtpZih0aGlzLnNsYXNoTWVudS52aXNpYmxlJiZ0aGlzLmNsb3NlU2xhc2hNZW51KCEwKSx6LmNsYXNzTGlzdC5jb250YWlucygiZWRpdG9yLWNvbnRlbnQiKSl7bGV0IEU9dGhpcy5ibG9ja3NbdGhpcy5ibG9ja3MubGVuZ3RoLTFdO3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soRS5pZCxFLnR5cGU9PT0iZGl2aWRlciJ8fEUudHlwZT09PSJpbWFnZSI/dm9pZCAwOiJlbmQiKX19Y3JlYXRlTmV3QmxvY2soQz0icGFyYWdyYXBoIix6PSIiLEUpe3JldHVybntpZDpxMS5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOkMsY29udGVudDp6LC4uLkUmJnttZXRhZGF0YTpFfX19YXN5bmMgaW5zZXJ0QmxvY2tBZnRlcihDLHosRT0hMCl7bGV0IFQ9dGhpcy5ibG9ja3MuZmluZEluZGV4KFY9PlYuaWQ9PT1DLmlkKTt0aGlzLmJsb2Nrcz1bLi4udGhpcy5ibG9ja3Muc2xpY2UoMCxUKzEpLHosLi4udGhpcy5ibG9ja3Muc2xpY2UoVCsxKV07bGV0ICQ9dGhpcy5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke0MuaWR9Il1gKTtpZigkKXtsZXQgVj10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudCh6KTskLmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJlbmQiLFYpfXRoaXMudXBkYXRlVmFsdWUoKSxFJiZ6LnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShWPT5zZXRUaW1lb3V0KFYsMCkpLGF3YWl0IHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soei5pZCwic3RhcnQiKSl9YXN5bmMgaW5zZXJ0QmxvY2soQyl7bGV0IHo9dGhpcy5ibG9ja3MuZmluZCgkPT4kLmlkPT09dGhpcy5zZWxlY3RlZEJsb2NrSWQpO2lmKCF6KXt0aGlzLmNsb3NlU2xhc2hNZW51KCk7cmV0dXJufWxldCBUPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt6LmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFQpe2xldCAkPVQuZ2V0Q29udGVudCgpO2lmKCQuc3RhcnRzV2l0aCgiLyIpKXtsZXQgVj0kLnJlcGxhY2UoL15cL1teXHNdKlxzKi8sIiIpLnRyaW0oKTtULnNldENvbnRlbnQoViksei5jb250ZW50PVZ9fWlmKHRoaXMuY2xvc2VTbGFzaE1lbnUoITEpLEM9PT0iY29kZSImJih6Lm1ldGFkYXRhPXtsYW5ndWFnZToidHlwZXNjcmlwdCJ9KSx6LnR5cGU9Qyx6LmNvbnRlbnQ9ei5jb250ZW50fHwiIixDPT09ImRpdmlkZXIiKXt6LmNvbnRlbnQ9IiAiO2xldCAkPXRoaXMuY3JlYXRlTmV3QmxvY2soKTt0aGlzLmluc2VydEJsb2NrQWZ0ZXIoeiwkKX1lbHNlIEM9PT0ibGlzdCI/KHoubWV0YWRhdGE9e2xpc3RUeXBlOiJidWxsZXQifSx6LmNvbnRlbnQ9IiIpOkM9PT0iaW1hZ2UiPyh6LmNvbnRlbnQ9IiIsei5tZXRhZGF0YT17dXJsOiIiLGxvYWRpbmc6ITF9KTpDPT09InlvdXR1YmUiPyh6LmNvbnRlbnQ9IiIsei5tZXRhZGF0YT17dmlkZW9JZDoiIix1cmw6IiJ9KTpDPT09Im1hcmtkb3duIj96Lm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06Qz09PSJodG1sIj96Lm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06Qz09PSJhdHRhY2htZW50Ij8oei5jb250ZW50PSIiLHoubWV0YWRhdGE9e2ZpbGVzOltdfSk6ei5jb250ZW50PXouY29udGVudHx8IiI7dGhpcy51cGRhdGVCbG9ja0VsZW1lbnQoei5pZCksdGhpcy51cGRhdGVWYWx1ZSgpLGF3YWl0IG5ldyBQcm9taXNlKCQ9PnNldFRpbWVvdXQoJCwwKSksQz09PSJsaXN0Ij8odGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayh6LmlkLCJzdGFydCIpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2xldCBWPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ei5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtWJiZWLmZvY3VzTGlzdEl0ZW0oKX0pKTpDIT09ImRpdmlkZXIiJiZDIT09ImltYWdlIiYmQyE9PSJ5b3V0dWJlIiYmQyE9PSJtYXJrZG93biImJkMhPT0iaHRtbCImJkMhPT0iYXR0YWNobWVudCI/dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayh6LmlkLCJzdGFydCIpOihDPT09ImltYWdlInx8Qz09PSJ5b3V0dWJlInx8Qz09PSJtYXJrZG93biJ8fEM9PT0iaHRtbCJ8fEM9PT0iYXR0YWNobWVudCIpJiZ0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKHouaWQpfXVwZGF0ZVZhbHVlKCl7dGhpcy5vdXRwdXRGb3JtYXQ9PT0iaHRtbCI/dGhpcy52YWx1ZT14aS5nZXRIdG1sT3V0cHV0KHRoaXMuYmxvY2tzKTp0aGlzLnZhbHVlPXhpLmdldE1hcmtkb3duT3V0cHV0KHRoaXMuYmxvY2tzKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnZhbHVlKSx0aGlzLnNhdmVUb0hpc3RvcnkoITApfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoQyl7dGhpcy52YWx1ZT1DLHRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMuYmxvY2tzPXhpLnBhcnNlSHRtbFRvQmxvY2tzKEMpOnRoaXMuYmxvY2tzPXhpLnBhcnNlTWFya2Rvd25Ub0Jsb2NrcyhDKSx0aGlzLmJsb2Nrcy5sZW5ndGg9PT0wJiYodGhpcy5ibG9ja3M9W3tpZDpxMS5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IiJ9XSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1leHBvcnRCbG9ja3MoKXtyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmJsb2NrcykpfWltcG9ydEJsb2NrcyhDKXt0aGlzLmJsb2Nrcz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEMpKSx0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1leHBvcnRBc0h0bWwoKXtyZXR1cm4geGkuZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyl9ZXhwb3J0QXNNYXJrZG93bigpe3JldHVybiB4aS5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2Nrcyl9ZXhwb3J0U3RhdGUoKXtyZXR1cm57YmxvY2tzOnRoaXMuZXhwb3J0QmxvY2tzKCksb3V0cHV0Rm9ybWF0OnRoaXMub3V0cHV0Rm9ybWF0fX1pbXBvcnRTdGF0ZShDKXtDLm91dHB1dEZvcm1hdCYmKHRoaXMub3V0cHV0Rm9ybWF0PUMub3V0cHV0Rm9ybWF0KSx0aGlzLmltcG9ydEJsb2NrcyhDLmJsb2Nrcyl9aGFuZGxlRHJhZ0VuZCgpe2lmKHRoaXMuZHJhZ2dlZEJsb2NrSWQpe2xldCB6PXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLmRyYWdnZWRCbG9ja0lkfSJdYCk7eiYmei5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpfXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpLmZvckVhY2goej0+e3ouY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyLWJlZm9yZSIsImRyYWctb3Zlci1hZnRlciIpfSksdGhpcy5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGx9aGFuZGxlRHJvcChDLHope2lmKEMucHJldmVudERlZmF1bHQoKSwhdGhpcy5kcmFnZ2VkQmxvY2tJZHx8dGhpcy5kcmFnZ2VkQmxvY2tJZD09PXouaWQpcmV0dXJuO2xldCBFPXRoaXMuYmxvY2tzLmZpbmRJbmRleChSPT5SLmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCksVD10aGlzLmJsb2Nrcy5maW5kSW5kZXgoUj0+Ui5pZD09PXouaWQpO2lmKEU9PT0tMXx8VD09PS0xKXJldHVybjtsZXRbJF09dGhpcy5ibG9ja3Muc3BsaWNlKEUsMSksVj1UO3RoaXMuZHJhZ092ZXJQb3NpdGlvbj09PSJhZnRlciI/Vj1FPFQ/VDpUKzE6Vj1FPFQ/VC0xOlQsdGhpcy5ibG9ja3Muc3BsaWNlKFYsMCwkKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSx0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5oYW5kbGVEcmFnRW5kKCksc2V0VGltZW91dCgoKT0+e2xldCBSPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHskLmlkfSJdIC5ibG9ja2ApO1ImJiQudHlwZSE9PSJkaXZpZGVyIiYmUi5mb2N1cygpfSwxMDApfWhhbmRsZVRleHRTZWxlY3Rpb24oQyl7dGhpcy5zbGFzaE1lbnUudmlzaWJsZX11cGRhdGVGb3JtYXR0aW5nTWVudVBvc2l0aW9uKCl7bGV0IEM9W107dGhpcy5zaGFkb3dSb290JiZDLnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2goVD0+e2xldCAkPVQucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7JD8uc2hhZG93Um9vdCYmQy5wdXNoKCQuc2hhZG93Um9vdCl9KTtsZXQgRT1Scy5nZXRTZWxlY3Rpb25Db29yZGluYXRlcyguLi5DKTtFJiZ0aGlzLmZvcm1hdHRpbmdNZW51LnNob3coe3g6RS54LHk6RS55fSxhc3luYyBUPT5hd2FpdCB0aGlzLmFwcGx5Rm9ybWF0KFQpKX1oaWRlRm9ybWF0dGluZ01lbnUoKXt0aGlzLmZvcm1hdHRpbmdNZW51LmhpZGUoKSx0aGlzLnNlbGVjdGVkVGV4dD0iIn1hc3luYyBhcHBseUZvcm1hdChDKXtsZXQgej1bXTt0aGlzLnNoYWRvd1Jvb3QmJnoucHVzaCh0aGlzLnNoYWRvd1Jvb3QpLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKT8uZm9yRWFjaChyZT0+e2xldCBqPXJlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2o/LnNoYWRvd1Jvb3QmJnoucHVzaChqLnNoYWRvd1Jvb3QpfSk7bGV0IFQ9UmUuZ2V0U2VsZWN0aW9uSW5mbyguLi56KTtpZighVClyZXR1cm47bGV0ICQsVixSPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpO2ZvcihsZXQgcmU9MDtyZTxSLmxlbmd0aDtyZSsrKXtsZXQgaj1SW3JlXSxtZT1qLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKG1lPy5zaGFkb3dSb290KXtsZXQgd2U9bWUuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZih3ZSYmKHdlLmNvbnRhaW5zKFQuc3RhcnRDb250YWluZXIpfHx3ZS5jb250YWlucyhULmVuZENvbnRhaW5lcikpKXtsZXQgSD1qLmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpOyQ9dGhpcy5ibG9ja3MuZmluZChjZT0+Y2UuaWQ9PT1IKSxWPW1lO2JyZWFrfX19aWYoISR8fCFWKXJldHVybjtsZXQgVT1SZS5jcmVhdGVSYW5nZUZyb21JbmZvKFQpO2lmKEM9PT0ibGluayIpe2xldCByZT1hd2FpdCB0aGlzLnNob3dMaW5rRGlhbG9nKCk7aWYoIXJlKXtWLmZvY3VzKCk7cmV0dXJufVJzLmFwcGx5Rm9ybWF0KEMscmUsVSx6KX1lbHNlIFJzLmFwcGx5Rm9ybWF0KEMsdm9pZCAwLFUseik7YXdhaXQgbmV3IFByb21pc2UocmU9PnNldFRpbWVvdXQocmUsMTApKSwkLmNvbnRlbnQ9Vi5nZXRDb250ZW50KCksdGhpcy51cGRhdGVWYWx1ZSgpLFYuZm9jdXMoKSxDPT09ImxpbmsiP3RoaXMuaGlkZUZvcm1hdHRpbmdNZW51KCk6dGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgc2hvd0xpbmtEaWFsb2coKXtyZXR1cm4gbmV3IFByb21pc2UoQz0+e2xldCB6PW51bGw7bjEuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQWRkIExpbmsiLGNvbnRlbnQ6enNgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5saW5rLWlucHV0IHsKICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWxpbmUtYnJpZ2h0KTsKICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1pbnB1dCk7CiAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCk7CiAgICAgICAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxpbmstaW5wdXQ6Zm9jdXMgewogICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXByaW1hcnkpOwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGlucHV0IAogICAgICAgICAgICBjbGFzcz0ibGluay1pbnB1dCIgCiAgICAgICAgICAgIHR5cGU9InVybCIgCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJodHRwczovL2V4YW1wbGUuY29tIiAKICAgICAgICAgICAgQGtleWRvd249IiR7RT0+e2lmKEUua2V5PT09IkVudGVyIil7bGV0IFQ9RS50YXJnZXQ7ej1ULnZhbHVlO2xldCAkPVQuY2xvc2VzdCgiZGVlcy1tb2RhbCIpO2lmKCQpe2xldCBWPSQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJvdHRvbUJ1dHRvbjpsYXN0LWNoaWxkIik7ViYmVi5jbGljaygpfX19fSIKICAgICAgICAgICAgQGlucHV0PSIke0U9Pnt6PUUudGFyZ2V0LnZhbHVlfX0iCiAgICAgICAgICAvPgogICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBFPT57RS5kZXN0cm95KCksQyhudWxsKX19LHtuYW1lOiJBZGQgTGluayIsYWN0aW9uOmFzeW5jIEU9PntFLmRlc3Ryb3koKSxDKHopfX1dfSksc2V0VGltZW91dCgoKT0+e2xldCBFPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtbW9kYWwgLmxpbmstaW5wdXQiKTtFJiZFLmZvY3VzKCl9LDEwMCl9KX11bmRvKCl7bGV0IEM9dGhpcy5oaXN0b3J5LnVuZG8oKTtDJiZ0aGlzLnJlc3RvcmVTdGF0ZShDKX1yZWRvKCl7bGV0IEM9dGhpcy5oaXN0b3J5LnJlZG8oKTtDJiZ0aGlzLnJlc3RvcmVTdGF0ZShDKX1yZXN0b3JlU3RhdGUoQyl7dGhpcy5ibG9ja3M9Qy5ibG9ja3MsdGhpcy5zZWxlY3RlZEJsb2NrSWQ9Qy5zZWxlY3RlZEJsb2NrSWQsdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksQy5jdXJzb3JQb3NpdGlvbj9zZXRUaW1lb3V0KCgpPT57bGV0IEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtDLmN1cnNvclBvc2l0aW9uLmJsb2NrSWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7RSYmRS5mb2N1c1dpdGhDdXJzb3IoQy5jdXJzb3JQb3NpdGlvbi5vZmZzZXQpfSw1MCk6Qy5zZWxlY3RlZEJsb2NrSWQmJnNldFRpbWVvdXQoKCk9Pnt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKEMuc2VsZWN0ZWRCbG9ja0lkKX0sNTApLHRoaXMudXBkYXRlVmFsdWUoKX1zYXZlVG9IaXN0b3J5KEM9ITApe2xldCB6O2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkKXtsZXQgVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3RoaXMuc2VsZWN0ZWRCbG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFQmJnR5cGVvZiBULmdldEN1cnNvclBvc2l0aW9uPT0iZnVuY3Rpb24iKXtsZXQgJD1ULnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCQpe2xldCBWPVQuZ2V0Q3Vyc29yUG9zaXRpb24oJCk7ViE9PW51bGwmJih6PXtibG9ja0lkOnRoaXMuc2VsZWN0ZWRCbG9ja0lkLG9mZnNldDpWfSl9fX1DP3RoaXMuaGlzdG9yeS5zYXZlU3RhdGUodGhpcy5ibG9ja3MsdGhpcy5zZWxlY3RlZEJsb2NrSWQseik6dGhpcy5oaXN0b3J5LnNhdmVDaGVja3BvaW50KHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLHopfXN0YXRpY3tmYShpLGEpfX07cmV0dXJuIHE9aX0pKCl9KTt2YXIgTmd0PWIoKCk9PnskVigpO0xWKCl9KTt2YXIgc3csRmd0PWIoKCk9Pntzdz1jbGFzc3tvcHRpb25zO2NhbnZhcztjdHg7aW1nO292ZXJsYXlDYW52YXM7b3ZlcmxheUN0eDtjcm9wWD0wO2Nyb3BZPTA7Y3JvcFNpemU9MjAwO21pbkNyb3BTaXplPTUwO2lzRHJhZ2dpbmc9ITE7aXNSZXNpemluZz0hMTtkcmFnU3RhcnRYPTA7ZHJhZ1N0YXJ0WT0wO3Jlc2l6ZUhhbmRsZT0iIjtpbWFnZVNjYWxlPTE7aW1hZ2VPZmZzZXRYPTA7aW1hZ2VPZmZzZXRZPTA7Y29uc3RydWN0b3IoZSl7dGhpcy5vcHRpb25zPXttaW5TaXplOjUwLG91dHB1dFNpemU6ODAwLG91dHB1dFF1YWxpdHk6Ljk1LC4uLmV9LHRoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHRoaXMuY3R4PXRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIiksdGhpcy5vdmVybGF5Q2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHRoaXMub3ZlcmxheUN0eD10aGlzLm92ZXJsYXlDYW52YXMuZ2V0Q29udGV4dCgiMmQiKSx0aGlzLmltZz1uZXcgSW1hZ2V9YXN5bmMgaW5pdGlhbGl6ZSgpe2F3YWl0IHRoaXMubG9hZEltYWdlKCksdGhpcy5zZXR1cENhbnZhc2VzKCksdGhpcy5zZXR1cEV2ZW50TGlzdGVuZXJzKCksdGhpcy5yZW5kZXIoKX1hc3luYyBsb2FkSW1hZ2UoKXtyZXR1cm4gbmV3IFByb21pc2UoKGUsYSk9Pnt0aGlzLmltZy5vbmxvYWQ9KCk9PmUoKSx0aGlzLmltZy5vbmVycm9yPWEsdGhpcy5pbWcuc3JjPXRoaXMub3B0aW9ucy5pbWFnZX0pfXNldHVwQ2FudmFzZXMoKXtsZXQgZT10aGlzLm9wdGlvbnMuY29udGFpbmVyLGE9TWF0aC5taW4oZS5jbGllbnRXaWR0aCxlLmNsaWVudEhlaWdodCk7dGhpcy5jYW52YXMud2lkdGg9YSx0aGlzLmNhbnZhcy5oZWlnaHQ9YSx0aGlzLmNhbnZhcy5zdHlsZS53aWR0aD0iMTAwJSIsdGhpcy5jYW52YXMuc3R5bGUuaGVpZ2h0PSIxMDAlIix0aGlzLmNhbnZhcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuY2FudmFzLnN0eWxlLnRvcD0iMCIsdGhpcy5jYW52YXMuc3R5bGUubGVmdD0iMCIsdGhpcy5vdmVybGF5Q2FudmFzLndpZHRoPWEsdGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodD1hLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS53aWR0aD0iMTAwJSIsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmhlaWdodD0iMTAwJSIsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLnRvcD0iMCIsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmxlZnQ9IjAiLHRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9Im1vdmUiLGUuYXBwZW5kQ2hpbGQodGhpcy5jYW52YXMpLGUuYXBwZW5kQ2hpbGQodGhpcy5vdmVybGF5Q2FudmFzKTtsZXQgaT1NYXRoLm1pbihhL3RoaXMuaW1nLndpZHRoLGEvdGhpcy5pbWcuaGVpZ2h0KTt0aGlzLmltYWdlU2NhbGU9aSx0aGlzLmltYWdlT2Zmc2V0WD0oYS10aGlzLmltZy53aWR0aCppKS8yLHRoaXMuaW1hZ2VPZmZzZXRZPShhLXRoaXMuaW1nLmhlaWdodCppKS8yO2xldCByPXRoaXMuaW1nLndpZHRoKmkscz10aGlzLmltZy5oZWlnaHQqaSxuPU1hdGgubWluKHIscyxhKi44KTt0aGlzLmNyb3BTaXplPW4qLjgsdGhpcy5jcm9wWD0oYS10aGlzLmNyb3BTaXplKS8yLHRoaXMuY3JvcFk9KGEtdGhpcy5jcm9wU2l6ZSkvMn1zZXR1cEV2ZW50TGlzdGVuZXJzKCl7dGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5oYW5kbGVNb3VzZURvd24uYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5oYW5kbGVNb3VzZVVwLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLmhhbmRsZVRvdWNoU3RhcnQuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5oYW5kbGVUb3VjaE1vdmUuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLmhhbmRsZVRvdWNoRW5kLmJpbmQodGhpcykpfWhhbmRsZU1vdXNlRG93bihlKXtsZXQgYT10aGlzLm92ZXJsYXlDYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT0oZS5jbGllbnRYLWEubGVmdCkqKHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aC9hLndpZHRoKSxyPShlLmNsaWVudFktYS50b3ApKih0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0L2EuaGVpZ2h0KSxzPXRoaXMuZ2V0UmVzaXplSGFuZGxlKGkscik7cz8odGhpcy5pc1Jlc2l6aW5nPSEwLHRoaXMucmVzaXplSGFuZGxlPXMpOnRoaXMuaXNJbnNpZGVDcm9wQXJlYShpLHIpJiYodGhpcy5pc0RyYWdnaW5nPSEwKSx0aGlzLmRyYWdTdGFydFg9aSx0aGlzLmRyYWdTdGFydFk9cn1oYW5kbGVNb3VzZU1vdmUoZSl7bGV0IGE9dGhpcy5vdmVybGF5Q2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9KGUuY2xpZW50WC1hLmxlZnQpKih0aGlzLm92ZXJsYXlDYW52YXMud2lkdGgvYS53aWR0aCkscj0oZS5jbGllbnRZLWEudG9wKSoodGhpcy5vdmVybGF5Q2FudmFzLmhlaWdodC9hLmhlaWdodCkscz10aGlzLmdldFJlc2l6ZUhhbmRsZShpLHIpO2lmKHM/dGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj10aGlzLmdldFJlc2l6ZUN1cnNvcihzKTp0aGlzLmlzSW5zaWRlQ3JvcEFyZWEoaSxyKT90aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPSJtb3ZlIjp0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPSJkZWZhdWx0Iix0aGlzLmlzRHJhZ2dpbmcpe2xldCBuPWktdGhpcy5kcmFnU3RhcnRYLG89ci10aGlzLmRyYWdTdGFydFksZD10aGlzLmltYWdlT2Zmc2V0WCxjPXRoaXMuaW1hZ2VPZmZzZXRYK3RoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZS10aGlzLmNyb3BTaXplLHA9dGhpcy5pbWFnZU9mZnNldFksbD10aGlzLmltYWdlT2Zmc2V0WSt0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlLXRoaXMuY3JvcFNpemU7dGhpcy5jcm9wWD1NYXRoLm1heChkLE1hdGgubWluKGMsdGhpcy5jcm9wWCtuKSksdGhpcy5jcm9wWT1NYXRoLm1heChwLE1hdGgubWluKGwsdGhpcy5jcm9wWStvKSksdGhpcy5kcmFnU3RhcnRYPWksdGhpcy5kcmFnU3RhcnRZPXIsdGhpcy5yZW5kZXIoKX10aGlzLmlzUmVzaXppbmcmJih0aGlzLmhhbmRsZVJlc2l6ZShpLHIpLHRoaXMuZHJhZ1N0YXJ0WD1pLHRoaXMuZHJhZ1N0YXJ0WT1yLHRoaXMucmVuZGVyKCkpfWhhbmRsZU1vdXNlVXAoKXt0aGlzLmlzRHJhZ2dpbmc9ITEsdGhpcy5pc1Jlc2l6aW5nPSExLHRoaXMucmVzaXplSGFuZGxlPSIifWhhbmRsZVRvdWNoU3RhcnQoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCBhPWUudG91Y2hlc1swXSxpPW5ldyBNb3VzZUV2ZW50KCJtb3VzZWRvd24iLHtjbGllbnRYOmEuY2xpZW50WCxjbGllbnRZOmEuY2xpZW50WX0pO3RoaXMuaGFuZGxlTW91c2VEb3duKGkpfWhhbmRsZVRvdWNoTW92ZShlKXtlLnByZXZlbnREZWZhdWx0KCk7bGV0IGE9ZS50b3VjaGVzWzBdLGk9bmV3IE1vdXNlRXZlbnQoIm1vdXNlbW92ZSIse2NsaWVudFg6YS5jbGllbnRYLGNsaWVudFk6YS5jbGllbnRZfSk7dGhpcy5oYW5kbGVNb3VzZU1vdmUoaSl9aGFuZGxlVG91Y2hFbmQoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlTW91c2VVcCgpfWdldFJlc2l6ZUhhbmRsZShlLGEpe2xldCByPXtudzp7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWX0sbmU6e3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWX0sc3c6e3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX0sc2U6e3g6dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfX07Zm9yKGxldFtzLG5db2YgT2JqZWN0LmVudHJpZXMocikpaWYoTWF0aC5hYnMoZS1uLngpPDIwJiZNYXRoLmFicyhhLW4ueSk8MjApcmV0dXJuIHM7cmV0dXJuIiJ9Z2V0UmVzaXplQ3Vyc29yKGUpe3JldHVybntudzoibnctcmVzaXplIixuZToibmUtcmVzaXplIixzdzoic3ctcmVzaXplIixzZToic2UtcmVzaXplIn1bZV18fCJkZWZhdWx0In1pc0luc2lkZUNyb3BBcmVhKGUsYSl7cmV0dXJuIGU+PXRoaXMuY3JvcFgmJmU8PXRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSYmYT49dGhpcy5jcm9wWSYmYTw9dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfWhhbmRsZVJlc2l6ZShlLGEpe2xldCBpPWUtdGhpcy5kcmFnU3RhcnRYLHI9YS10aGlzLmRyYWdTdGFydFkscz10aGlzLmltYWdlT2Zmc2V0WCxuPXRoaXMuaW1hZ2VPZmZzZXRZLG89dGhpcy5pbWFnZU9mZnNldFgrdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLGQ9dGhpcy5pbWFnZU9mZnNldFkrdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZTtzd2l0Y2godGhpcy5yZXNpemVIYW5kbGUpe2Nhc2Uic2UiOnRoaXMuY3JvcFNpemU9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSxNYXRoLm1pbih0aGlzLmNyb3BTaXplK01hdGgubWF4KGksciksTWF0aC5taW4oby10aGlzLmNyb3BYLGQtdGhpcy5jcm9wWSkpKTticmVhaztjYXNlIm53IjpsZXQgYz1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLHRoaXMuY3JvcFNpemUtTWF0aC5tYXgoaSxyKSkscD10aGlzLmNyb3BTaXplLWMsbD10aGlzLmNyb3BYK3AsZj10aGlzLmNyb3BZK3A7bD49cyYmZj49biYmKHRoaXMuY3JvcFg9bCx0aGlzLmNyb3BZPWYsdGhpcy5jcm9wU2l6ZT1jKTticmVhaztjYXNlIm5lIjpsZXQgZz1NYXRoLm1heChpLC1yKSx5PU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsdGhpcy5jcm9wU2l6ZStnKSx2PXktdGhpcy5jcm9wU2l6ZSxtPXRoaXMuY3JvcFktdjttPj1uJiZ0aGlzLmNyb3BYK3k8PW8mJih0aGlzLmNyb3BZPW0sdGhpcy5jcm9wU2l6ZT15KTticmVhaztjYXNlInN3IjpsZXQgeD1NYXRoLm1heCgtaSxyKSxNPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsdGhpcy5jcm9wU2l6ZSt4KSxTPU0tdGhpcy5jcm9wU2l6ZSxGPXRoaXMuY3JvcFgtUztGPj1zJiZ0aGlzLmNyb3BZK008PWQmJih0aGlzLmNyb3BYPUYsdGhpcy5jcm9wU2l6ZT1NKTticmVha319cmVuZGVyKCl7dGhpcy5jdHguY2xlYXJSZWN0KDAsMCx0aGlzLmNhbnZhcy53aWR0aCx0aGlzLmNhbnZhcy5oZWlnaHQpLHRoaXMub3ZlcmxheUN0eC5jbGVhclJlY3QoMCwwLHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aCx0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0KSx0aGlzLmN0eC5maWxsU3R5bGU9IiMwMDAwMDAiLHRoaXMuY3R4LmZpbGxSZWN0KDAsMCx0aGlzLmNhbnZhcy53aWR0aCx0aGlzLmNhbnZhcy5oZWlnaHQpLHRoaXMuY3R4LmRyYXdJbWFnZSh0aGlzLmltZyx0aGlzLmltYWdlT2Zmc2V0WCx0aGlzLmltYWdlT2Zmc2V0WSx0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUsdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZSksdGhpcy5vdmVybGF5Q3R4LmZpbGxTdHlsZT0icmdiYSgwLCAwLCAwLCAwLjUpIix0aGlzLm92ZXJsYXlDdHguZmlsbFJlY3QodGhpcy5pbWFnZU9mZnNldFgsdGhpcy5pbWFnZU9mZnNldFksdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLHRoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUpLHRoaXMub3ZlcmxheUN0eC5zYXZlKCksdGhpcy5vcHRpb25zLnNoYXBlPT09InJvdW5kIj8odGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5hcmModGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplLzIsdGhpcy5jcm9wU2l6ZS8yLDAsTWF0aC5QSSoyKSx0aGlzLm92ZXJsYXlDdHguY2xpcCgpKToodGhpcy5vdmVybGF5Q3R4LmJlZ2luUGF0aCgpLHRoaXMub3ZlcmxheUN0eC5yZWN0KHRoaXMuY3JvcFgsdGhpcy5jcm9wWSx0aGlzLmNyb3BTaXplLHRoaXMuY3JvcFNpemUpLHRoaXMub3ZlcmxheUN0eC5jbGlwKCkpLHRoaXMub3ZlcmxheUN0eC5jbGVhclJlY3QoMCwwLHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aCx0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0KSx0aGlzLm92ZXJsYXlDdHgucmVzdG9yZSgpLHRoaXMub3ZlcmxheUN0eC5zdHJva2VTdHlsZT0id2hpdGUiLHRoaXMub3ZlcmxheUN0eC5saW5lV2lkdGg9Mix0aGlzLm9wdGlvbnMuc2hhcGU9PT0icm91bmQiPyh0aGlzLm92ZXJsYXlDdHguYmVnaW5QYXRoKCksdGhpcy5vdmVybGF5Q3R4LmFyYyh0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUvMix0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemUvMix0aGlzLmNyb3BTaXplLzIsMCxNYXRoLlBJKjIpLHRoaXMub3ZlcmxheUN0eC5zdHJva2UoKSk6dGhpcy5vdmVybGF5Q3R4LnN0cm9rZVJlY3QodGhpcy5jcm9wWCx0aGlzLmNyb3BZLHRoaXMuY3JvcFNpemUsdGhpcy5jcm9wU2l6ZSksdGhpcy5kcmF3UmVzaXplSGFuZGxlcygpfWRyYXdSZXNpemVIYW5kbGVzKCl7bGV0IGE9W3t4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZfSx7eDp0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUseTp0aGlzLmNyb3BZfSx7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfSx7eDp0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9XTt0aGlzLm92ZXJsYXlDdHguZmlsbFN0eWxlPSJ3aGl0ZSIsYS5mb3JFYWNoKGk9Pnt0aGlzLm92ZXJsYXlDdHguYmVnaW5QYXRoKCksdGhpcy5vdmVybGF5Q3R4LmFyYyhpLngsaS55LDgsMCxNYXRoLlBJKjIpLHRoaXMub3ZlcmxheUN0eC5maWxsKCl9KX1hc3luYyBnZXRDcm9wcGVkSW1hZ2UoKXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxhPWUuZ2V0Q29udGV4dCgiMmQiKSxpPTEvdGhpcy5pbWFnZVNjYWxlLHI9dGhpcy5jcm9wU2l6ZSppLHM9dGhpcy5vcHRpb25zLm91dHB1dFNpemU7cz5yJiZjb25zb2xlLmluZm8oYFByb2ZpbGUgcGljdHVyZTogVXBzY2FsaW5nIGZyb20gJHtNYXRoLnJvdW5kKHIpfXB4IHRvICR7c31weGApLGUud2lkdGg9cyxlLmhlaWdodD1zO2xldCBuPSh0aGlzLmNyb3BYLXRoaXMuaW1hZ2VPZmZzZXRYKSppLG89KHRoaXMuY3JvcFktdGhpcy5pbWFnZU9mZnNldFkpKmksZD10aGlzLmNyb3BTaXplKmk7dGhpcy5vcHRpb25zLnNoYXBlPT09InJvdW5kIiYmKGEuYmVnaW5QYXRoKCksYS5hcmMocy8yLHMvMixzLzIsMCxNYXRoLlBJKjIpLGEuY2xpcCgpKSxhLmltYWdlU21vb3RoaW5nRW5hYmxlZD0hMCxhLmltYWdlU21vb3RoaW5nUXVhbGl0eT0iaGlnaCIsYS5kcmF3SW1hZ2UodGhpcy5pbWcsbixvLGQsZCwwLDAscyxzKTtsZXQgcD10aGlzLm9wdGlvbnMuaW1hZ2UuaW5jbHVkZXMoImltYWdlL3BuZyIpPyJpbWFnZS9wbmciOiJpbWFnZS9qcGVnIjtyZXR1cm4gZS50b0RhdGFVUkwocCx0aGlzLm9wdGlvbnMub3V0cHV0UXVhbGl0eSl9ZGVzdHJveSgpe3RoaXMuY2FudmFzLnJlbW92ZSgpLHRoaXMub3ZlcmxheUNhbnZhcy5yZW1vdmUoKX19fSk7dmFyIG1vLG1hLERWLE9ndD1iKCgpPT57dWUoKTtnaSgpO2NhKCk7dWkoKTtEdCgpO25vKCk7X3MoKTtfcygpO0ZndCgpO3FlKCk7bW89ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxtYT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sRFY9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXByb2ZpbGVwaWN0dXJlLW1vZGFsIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W107dmFyIHE9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6TnVtYmVyfSldLHk9W0koe3R5cGU6TnVtYmVyfSldLHg9W0ooKV0sRj1bSigpXSxOPVtKKCldLG1vKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iaW5pdGlhbEltYWdlImluIHosZ2V0Ono9PnouaW5pdGlhbEltYWdlLHNldDooeixFKT0+e3ouaW5pdGlhbEltYWdlPUV9fSxtZXRhZGF0YTpDfSxuLG8pLG1vKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hhcGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzaGFwZSJpbiB6LGdldDp6PT56LnNoYXBlLHNldDooeixFKT0+e3ouc2hhcGU9RX19LG1ldGFkYXRhOkN9LGMscCksbW8odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4ib3V0cHV0U2l6ZSJpbiB6LGdldDp6PT56Lm91dHB1dFNpemUsc2V0Oih6LEUpPT57ei5vdXRwdXRTaXplPUV9fSxtZXRhZGF0YTpDfSxmLGcpLG1vKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0UXVhbGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+Im91dHB1dFF1YWxpdHkiaW4geixnZXQ6ej0+ei5vdXRwdXRRdWFsaXR5LHNldDooeixFKT0+e3oub3V0cHV0UXVhbGl0eT1FfX0sbWV0YWRhdGE6Q30sdixtKSxtbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iY3VycmVudFN0ZXAiaW4geixnZXQ6ej0+ei5jdXJyZW50U3RlcCxzZXQ6KHosRSk9Pnt6LmN1cnJlbnRTdGVwPUV9fSxtZXRhZGF0YTpDfSxNLFMpLG1vKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3JvcHBlZEltYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iY3JvcHBlZEltYWdlImluIHosZ2V0Ono9PnouY3JvcHBlZEltYWdlLHNldDooeixFKT0+e3ouY3JvcHBlZEltYWdlPUV9fSxtZXRhZGF0YTpDfSxfLGspLG1vKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcm9jZXNzaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iaXNQcm9jZXNzaW5nImluIHosZ2V0Ono9PnouaXNQcm9jZXNzaW5nLHNldDooeixFKT0+e3ouaXNQcm9jZXNzaW5nPUV9fSxtZXRhZGF0YTpDfSxMLEEpLG1vKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkN9LG51bGwsYSkscT1pPWUudmFsdWUsQyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpDfSl9I2U9bWEodGhpcyxuLCIiKTtnZXQgaW5pdGlhbEltYWdlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGluaXRpYWxJbWFnZShDKXt0aGlzLiNlPUN9I3Q9KG1hKHRoaXMsbyksbWEodGhpcyxjLCJyb3VuZCIpKTtnZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2hhcGUoQyl7dGhpcy4jdD1DfSNhPShtYSh0aGlzLHApLG1hKHRoaXMsZiw4MDApKTtnZXQgb3V0cHV0U2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBvdXRwdXRTaXplKEMpe3RoaXMuI2E9Q30jaT0obWEodGhpcyxnKSxtYSh0aGlzLHYsLjk1KSk7Z2V0IG91dHB1dFF1YWxpdHkoKXtyZXR1cm4gdGhpcy4jaX1zZXQgb3V0cHV0UXVhbGl0eShDKXt0aGlzLiNpPUN9I3I9KG1hKHRoaXMsbSksbWEodGhpcyxNLCJjcm9wIikpO2dldCBjdXJyZW50U3RlcCgpe3JldHVybiB0aGlzLiNyfXNldCBjdXJyZW50U3RlcChDKXt0aGlzLiNyPUN9I3M9KG1hKHRoaXMsUyksbWEodGhpcyxfLCIiKSk7Z2V0IGNyb3BwZWRJbWFnZSgpe3JldHVybiB0aGlzLiNzfXNldCBjcm9wcGVkSW1hZ2UoQyl7dGhpcy4jcz1DfSNuPShtYSh0aGlzLGspLG1hKHRoaXMsTCwhMSkpO2dldCBpc1Byb2Nlc3NpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNQcm9jZXNzaW5nKEMpe3RoaXMuI249Q31jcm9wcGVyPShtYSh0aGlzLEEpLG51bGwpO3dpbmRvd0xheWVyO3pJbmRleD0wO3N0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SnR9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgei1pbmRleDogdmFyKC0tei1pbmRleCk7CiAgICAgIH0KCiAgICAgIC5tb2RhbC1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBhMGEwYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSIsIjAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSIpfTsKICAgICAgICB3aWR0aDogNDgwcHg7CiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlKDAuOTgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYW5pbWF0aW9uOiBtb2RhbFNob3cgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBmb3J3YXJkczsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBtb2RhbFNob3cgewogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSBzY2FsZSgxKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5tb2RhbC1oZWFkZXIgewogICAgICAgIGhlaWdodDogNTJweDsKICAgICAgICBwYWRkaW5nOiAwIDIwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubW9kYWwtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMTBweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsLWJvZHkgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLmNyb3BwZXItY29udGFpbmVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDM2MHB4OwogICAgICAgIGFzcGVjdC1yYXRpbzogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiaW5zZXQgMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNikiLCJpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICB9CgogICAgICAucHJldmlldy1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMjBweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctaW1hZ2UgewogICAgICAgIHdpZHRoOiAxODBweDsKICAgICAgICBoZWlnaHQ6IDE4MHB4OwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSkiLCIwIDEwcHggMTVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4zKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZS5yb3VuZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZS5zcXVhcmUgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zdWNjZXNzLW1lc3NhZ2UgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjMTBiOTgxIiwiIzEwYjk4MSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYW5pbWF0aW9uOiBzdWNjZXNzUHVsc2UgMC40cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBzdWNjZXNzUHVsc2UgewogICAgICAgIDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyBvcGFjaXR5OiAwOyB9CiAgICAgICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsgfQogICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAxOyB9CiAgICAgIH0KCiAgICAgIC5tb2RhbC1mb290ZXIgewogICAgICAgIHBhZGRpbmc6IDIwcHggMjRweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5pbnN0cnVjdGlvbnMgewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIG1heC13aWR0aDogMzIwcHg7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAubW9kYWwtY29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7CiAgICAgICAgICBtYXJnaW46IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5tb2RhbC1ib2R5IHsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgfQogICAgICB9CiAgICBgXTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy53aW5kb3dMYXllcj1hd2FpdCBmaS5jcmVhdGVBbmRTaG93KHtibHVyOiEwfSksdGhpcy53aW5kb3dMYXllci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuY2xvc2UoKSksdGhpcy56SW5kZXg9ZDEuZ2V0TmV4dFpJbmRleCgpLHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoIi0tei1pbmRleCIsdGhpcy56SW5kZXgudG9TdHJpbmcoKSksZDEucmVnaXN0ZXIodGhpcyx0aGlzLnpJbmRleCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY3JvcHBlciYmdGhpcy5jcm9wcGVyLmRlc3Ryb3koKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSxkMS51bnJlZ2lzdGVyKHRoaXMpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1jb250YWluZXIiIEBjbGljaz0ke0M9PkMuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgICA8aDMgY2xhc3M9Im1vZGFsLXRpdGxlIj4KICAgICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiPyJBZGp1c3QgSW1hZ2UiOiJTdWNjZXNzIn0KICAgICAgICAgIDwvaDM+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjbG9zZS1idXR0b24iIEBjbGljaz0ke3RoaXMuY2xvc2V9IHRpdGxlPSJDbG9zZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOngiIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4KICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbnMiPgogICAgICAgICAgICAgIFBvc2l0aW9uIGFuZCByZXNpemUgdGhlIHNxdWFyZSB0byBzZWxlY3QgeW91ciBwcm9maWxlIGFyZWEKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNyb3BwZXItY29udGFpbmVyIiBpZD0iY3JvcHBlckNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAgICAgICAke3RoaXMuaXNQcm9jZXNzaW5nP3dgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5zdHJ1Y3Rpb25zIj5TYXZpbmcuLi48L2Rpdj4KICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICA8aW1nIAogICAgICAgICAgICAgICAgICBjbGFzcz0icHJldmlldy1pbWFnZSAke3RoaXMuc2hhcGV9IiAKICAgICAgICAgICAgICAgICAgc3JjPSIke3RoaXMuY3JvcHBlZEltYWdlfSIgCiAgICAgICAgICAgICAgICAgIGFsdD0iQ3JvcHBlZCBwcmV2aWV3IgogICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1Y2Nlc3MtbWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZWNrIiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8c3Bhbj5Mb29raW5nIGdvb2QhPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+CiAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/d2AKICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzaXplPSJzbSIgQGNsaWNrPSR7dGhpcy5jbG9zZX0+CiAgICAgICAgICAgICAgQ2FuY2VsCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZWZhdWx0IiBzaXplPSJzbSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDcm9wfT4KICAgICAgICAgICAgICBTYXZlCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIiYmYXdhaXQgdGhpcy5pbml0aWFsaXplQ3JvcHBlcigpfWFzeW5jIGluaXRpYWxpemVDcm9wcGVyKCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgQz10aGlzLnNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoImNyb3BwZXJDb250YWluZXIiKTtDJiYodGhpcy5jcm9wcGVyPW5ldyBzdyh7Y29udGFpbmVyOkMsaW1hZ2U6dGhpcy5pbml0aWFsSW1hZ2Usc2hhcGU6dGhpcy5zaGFwZSxhc3BlY3RSYXRpbzoxLG91dHB1dFNpemU6dGhpcy5vdXRwdXRTaXplLG91dHB1dFF1YWxpdHk6dGhpcy5vdXRwdXRRdWFsaXR5fSksYXdhaXQgdGhpcy5jcm9wcGVyLmluaXRpYWxpemUoKSl9YXN5bmMgaGFuZGxlQ3JvcCgpe2lmKHRoaXMuY3JvcHBlcil0cnl7dGhpcy5pc1Byb2Nlc3Npbmc9ITAsdGhpcy5jdXJyZW50U3RlcD0icHJldmlldyIsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgQz1hd2FpdCB0aGlzLmNyb3BwZXIuZ2V0Q3JvcHBlZEltYWdlKCk7dGhpcy5jcm9wcGVkSW1hZ2U9Qyxhd2FpdCBuZXcgUHJvbWlzZSh6PT5zZXRUaW1lb3V0KHosODAwKSksdGhpcy5pc1Byb2Nlc3Npbmc9ITEsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2F2ZSIse2RldGFpbDp7Y3JvcHBlZEltYWdlOnRoaXMuY3JvcHBlZEltYWdlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmNsb3NlKCl9LDE1MDApfWNhdGNoKEMpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGNyb3BwaW5nIGltYWdlOiIsQyksdGhpcy5pc1Byb2Nlc3Npbmc9ITF9fWNsb3NlKCl7dGhpcy5yZW1vdmUoKX1zdGF0aWN7bWEoaSxhKX19O3JldHVybiBxPWl9KSgpfSk7dmFyIFJndCxCZ3Q9YigoKT0+e3VlKCk7eTEoKTttMigpO0VWKCk7Umd0PSgpPT53YAogIDxzdHlsZT4KICAgICR7UWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDQ4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZmVhdHVyZS1saXN0IHsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsKICAgICAgfQogICAgICAKICAgICAgLmZlYXR1cmUtbGlzdCBsaSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2xldCBlPXQucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZVtzaGFwZT0icm91bmQiXScpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhPT57bGV0IGk9YS50YXJnZXQ7Y29uc29sZS5sb2coIlJvdW5kIHByb2ZpbGUgcGljdHVyZSBjaGFuZ2VkOiIsaS52YWx1ZT8uc3Vic3RyaW5nKDAsNTApKyIuLi4iKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcm9maWxlIFBpY3R1cmUgSW5wdXQifSAuc3VidGl0bGU9JHsiQmFzaWMgdXNhZ2Ugd2l0aCByb3VuZCBhbmQgc3F1YXJlIHNoYXBlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJQcm9maWxlIFBpY3R1cmUgKFJvdW5kKSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRvIHVwbG9hZCBvciBkcmFnICYgZHJvcCBhbiBpbWFnZSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUHJvZmlsZSBQaWN0dXJlIChTcXVhcmUpIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3VwcG9ydHMgSlBFRywgUE5HLCBhbmQgV2ViUCBmb3JtYXRzIgogICAgICAgICAgICBzaGFwZT0ic3F1YXJlIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZSIpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IHI9aS50YXJnZXQ7Y29uc29sZS5sb2coYFByb2ZpbGUgKHNpemUgJHtyLnNpemV9KSBjaGFuZ2VkYCl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTaXplIFZhcmlhdGlvbnMifSAuc3VidGl0bGU9JHsiUHJvZmlsZSBwaWN0dXJlcyBpbiBkaWZmZXJlbnQgc2l6ZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iU21hbGwgKDgwcHgpIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjgwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9Ik1lZGl1bSAoMTIwcHgpIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjEyMCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJMYXJnZSAoMTYwcHgpIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIHNpemU9IjE2MCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyB0PT57bGV0IGU9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S0lDQThaR1ZtY3o0S0lDQWdJRHhzYVc1bFlYSkhjbUZrYVdWdWRDQnBaRDBpWjNKaFpHbGxiblFpSUhneFBTSXdKU0lnZVRFOUlqQWxJaUI0TWowaU1UQXdKU0lnZVRJOUlqRXdNQ1VpUGdvZ0lDQWdJQ0E4YzNSdmNDQnZabVp6WlhROUlqQWxJaUJ6ZEc5d0xXTnZiRzl5UFNJak5qWTNaV1ZoSWlBdlBnb2dJQ0FnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakV3TUNVaUlITjBiM0F0WTI5c2IzSTlJaU0zTmpSaVlUSWlJQzgrQ2lBZ0lDQThMMnhwYm1WaGNrZHlZV1JwWlc1MFBnb2dJRHd2WkdWbWN6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpZFhKc0tDTm5jbUZrYVdWdWRDa2lJQzgrQ2lBZ1BIUmxlSFFnZUQwaU5UQWxJaUI1UFNJMU1DVWlJR1J2YldsdVlXNTBMV0poYzJWc2FXNWxQU0p0YVdSa2JHVWlJSFJsZUhRdFlXNWphRzl5UFNKdGFXUmtiR1VpSUdadmJuUXRabUZ0YVd4NVBTSkJjbWxoYkNJZ1ptOXVkQzF6YVhwbFBTSTRNQ0lnWm1sc2JEMGlkMmhwZEdVaVBrcEVQQzkwWlhoMFBnbzhMM04yWno0PSIsYT10LnF1ZXJ5U2VsZWN0b3IoIiNwcmVmaWxsZWQtcHJvZmlsZSIpO2EmJihhLnZhbHVlPWUsYS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGk9PntsZXQgcj1pLnRhcmdldCxzPXQucXVlcnlTZWxlY3RvcigiI3ByZWZpbGxlZC1vdXRwdXQiKTtzJiYocy50ZXh0Q29udGVudD1yLnZhbHVlP2BJbWFnZSBkYXRhOiAke3IudmFsdWUuc3Vic3RyaW5nKDAsODApfS4uLmA6Ik5vIGltYWdlIHNlbGVjdGVkIil9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlByZS1maWxsZWQgYW5kIFZhbHVlIEJpbmRpbmcifSAuc3VidGl0bGU9JHsiUHJvZmlsZSBwaWN0dXJlIHdpdGggaW5pdGlhbCB2YWx1ZSBhbmQgY2hhbmdlIHRyYWNraW5nIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgIGlkPSJwcmVmaWxsZWQtcHJvZmlsZSIKICAgICAgICAgIGxhYmVsPSJFZGl0IEV4aXN0aW5nIFByb2ZpbGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2xpY2sgdGhlIGVkaXQgYnV0dG9uIHRvIGNoYW5nZSBvciBkZWxldGUgdG8gcmVtb3ZlIgogICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgc2l6ZT0iMTUwIgogICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0icHJlZmlsbGVkLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0Ij4KICAgICAgICAgIEltYWdlIGRhdGEgd2lsbCBhcHBlYXIgaGVyZSB3aGVuIGNoYW5nZWQKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoIiNkaXNhYmxlZC1wcm9maWxlIik7ZSYmKGUudmFsdWU9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBd0lpQm9aV2xuYUhROUlqSXdNQ0lnWm1sc2JEMGlJMk5qWTJOall5SWdMejRLSUNBOGRHVjRkQ0I0UFNJMU1DVWlJSGs5SWpVd0pTSWdaRzl0YVc1aGJuUXRZbUZ6Wld4cGJtVTlJbTFwWkdSc1pTSWdkR1Y0ZEMxaGJtTm9iM0k5SW0xcFpHUnNaU0lnWm05dWRDMW1ZVzFwYkhrOUlrRnlhV0ZzSWlCbWIyNTBMWE5wZW1VOUlqWXdJaUJtYVd4c1BTSjNhR2wwWlNJK1RrRThMM1JsZUhRK0Nqd3ZjM1puUGc9PSIpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGFuZCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJSZXF1aXJlZCBGaWVsZCIKICAgICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBpZD0iZGlzYWJsZWQtcHJvZmlsZSIKICAgICAgICAgICAgbGFiZWw9IkRpc2FibGVkIFN0YXRlIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2Fubm90IGJlIGVkaXRlZCIKICAgICAgICAgICAgc2hhcGU9InNxdWFyZSIKICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iVXBsb2FkIE9ubHkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJEZWxldGUgbm90IGFsbG93ZWQiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgLmFsbG93RGVsZXRlPSR7ITF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlcyJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmZWF0dXJlIHNldCBvZiB0aGUgcHJvZmlsZSBwaWN0dXJlIGlucHV0In0+CiAgICAgICAgPHVsIGNsYXNzPSJmZWF0dXJlLWxpc3QiPgogICAgICAgICAgPGxpPjxzdHJvbmc+SW1hZ2UgVXBsb2FkOjwvc3Ryb25nPiBDbGljayB0byB1cGxvYWQgb3IgZHJhZyAmIGRyb3AgaW1hZ2VzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkltYWdlIENyb3BwaW5nOjwvc3Ryb25nPiBJbnRlcmFjdGl2ZSBjcm9wIHRvb2wgd2l0aCByZXNpemUgaGFuZGxlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5TaGFwZSBTdXBwb3J0Ojwvc3Ryb25nPiBSb3VuZCBvciBzcXVhcmUgcHJvZmlsZSBwaWN0dXJlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5TaXplIEN1c3RvbWl6YXRpb246PC9zdHJvbmc+IEFkanVzdGFibGUgZGltZW5zaW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5QcmV2aWV3ICYgRWRpdDo8L3N0cm9uZz4gSG92ZXIgb3ZlcmxheSB3aXRoIGVkaXQgYW5kIGRlbGV0ZSBvcHRpb25zPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkZpbGUgVmFsaWRhdGlvbjo8L3N0cm9uZz4gRm9ybWF0IGFuZCBzaXplIHJlc3RyaWN0aW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5SZXNwb25zaXZlIERlc2lnbjo8L3N0cm9uZz4gV29ya3Mgb24gZGVza3RvcCBhbmQgbW9iaWxlIGRldmljZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+Rm9ybSBJbnRlZ3JhdGlvbjo8L3N0cm9uZz4gU3RhbmRhcmQgZm9ybSB2YWx1ZSBiaW5kaW5nIGFuZCB2YWxpZGF0aW9uPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkFjY2Vzc2liaWxpdHk6PC9zdHJvbmc+IEtleWJvYXJkIG5hdmlnYXRpb24gYW5kIHNjcmVlbiByZWFkZXIgc3VwcG9ydDwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5aLUluZGV4IE1hbmFnZW1lbnQ6PC9zdHJvbmc+IFByb3BlciBtb2RhbCBzdGFja2luZyB3aXRoIHJlZ2lzdHJ5PC9saT4KICAgICAgICA8L3VsPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDI0cHg7Ij4KICAgICAgICAgIDxzdHJvbmc+U3VwcG9ydGVkIEZvcm1hdHM6PC9zdHJvbmc+IEpQRUcsIFBORywgV2ViUDxicj4KICAgICAgICAgIDxzdHJvbmc+TWF4IEZpbGUgU2l6ZTo8L3N0cm9uZz4gNU1CIChjb25maWd1cmFibGUpPGJyPgogICAgICAgICAgPHN0cm9uZz5PdXRwdXQgRm9ybWF0Ojwvc3Ryb25nPiBCYXNlNjQgZW5jb2RlZCBKUEVHCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYH0pO3ZhciBBYSxwMSxIZ3QsRVY9YigoKT0+e3VlKCk7QzEoKTtEdCgpO1RsKCk7T2d0KCk7Qmd0KCk7cWUoKTtBYT1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LHAxPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxIZ3Q9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlIildLGUsYT1bXSxpLHI9WGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W10scSxDPVtdLHo9W10sRSxUPVtdLCQ9W10sVixSPVtdLFU9W10scmUsaj1bXSxtZT1bXSx3ZSxIPVtdLGNlPVtdLGtlLFc9W10sRD1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFo9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpOdW1iZXJ9KV0seT1bSSh7dHlwZTpTdHJpbmd9KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0koe3R5cGU6Qm9vbGVhbn0pXSxOPVtJKHt0eXBlOk51bWJlcn0pXSxxPVtJKHt0eXBlOkFycmF5fSldLEU9W0koe3R5cGU6TnVtYmVyfSldLFY9W0koe3R5cGU6TnVtYmVyfSldLHJlPVtKKCldLHdlPVtKKCldLGtlPVtKKCldLEFhKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJ2YWx1ZSJpbiBZLGdldDpZPT5ZLnZhbHVlLHNldDooWSxvZSk9PntZLnZhbHVlPW9lfX0sbWV0YWRhdGE6Wn0sbixvKSxBYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ic2hhcGUiaW4gWSxnZXQ6WT0+WS5zaGFwZSxzZXQ6KFksb2UpPT57WS5zaGFwZT1vZX19LG1ldGFkYXRhOlp9LGMscCksQWEodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ic2l6ZSJpbiBZLGdldDpZPT5ZLnNpemUsc2V0OihZLG9lKT0+e1kuc2l6ZT1vZX19LG1ldGFkYXRhOlp9LGYsZyksQWEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+InBsYWNlaG9sZGVyImluIFksZ2V0Olk9PlkucGxhY2Vob2xkZXIsc2V0OihZLG9lKT0+e1kucGxhY2Vob2xkZXI9b2V9fSxtZXRhZGF0YTpafSx2LG0pLEFhKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dVcGxvYWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJhbGxvd1VwbG9hZCJpbiBZLGdldDpZPT5ZLmFsbG93VXBsb2FkLHNldDooWSxvZSk9PntZLmFsbG93VXBsb2FkPW9lfX0sbWV0YWRhdGE6Wn0sTSxTKSxBYSh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RGVsZXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4iYWxsb3dEZWxldGUiaW4gWSxnZXQ6WT0+WS5hbGxvd0RlbGV0ZSxzZXQ6KFksb2UpPT57WS5hbGxvd0RlbGV0ZT1vZX19LG1ldGFkYXRhOlp9LF8sayksQWEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhGaWxlU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6WT0+Im1heEZpbGVTaXplImluIFksZ2V0Olk9PlkubWF4RmlsZVNpemUsc2V0OihZLG9lKT0+e1kubWF4RmlsZVNpemU9b2V9fSxtZXRhZGF0YTpafSxMLEEpLEFhKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNjZXB0ZWRGb3JtYXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4iYWNjZXB0ZWRGb3JtYXRzImluIFksZ2V0Olk9PlkuYWNjZXB0ZWRGb3JtYXRzLHNldDooWSxvZSk9PntZLmFjY2VwdGVkRm9ybWF0cz1vZX19LG1ldGFkYXRhOlp9LEMseiksQWEodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ib3V0cHV0U2l6ZSJpbiBZLGdldDpZPT5ZLm91dHB1dFNpemUsc2V0OihZLG9lKT0+e1kub3V0cHV0U2l6ZT1vZX19LG1ldGFkYXRhOlp9LFQsJCksQWEodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRRdWFsaXR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4ib3V0cHV0UXVhbGl0eSJpbiBZLGdldDpZPT5ZLm91dHB1dFF1YWxpdHksc2V0OihZLG9lKT0+e1kub3V0cHV0UXVhbGl0eT1vZX19LG1ldGFkYXRhOlp9LFIsVSksQWEodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4iaXNIb3ZlcmVkImluIFksZ2V0Olk9PlkuaXNIb3ZlcmVkLHNldDooWSxvZSk9PntZLmlzSG92ZXJlZD1vZX19LG1ldGFkYXRhOlp9LGosbWUpLEFhKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlk9PiJpc0RyYWdnaW5nImluIFksZ2V0Olk9PlkuaXNEcmFnZ2luZyxzZXQ6KFksb2UpPT57WS5pc0RyYWdnaW5nPW9lfX0sbWV0YWRhdGE6Wn0sSCxjZSksQWEodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpZPT4iaXNMb2FkaW5nImluIFksZ2V0Olk9PlkuaXNMb2FkaW5nLHNldDooWSxvZSk9PntZLmlzTG9hZGluZz1vZX19LG1ldGFkYXRhOlp9LFcsRCksQWEobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Wn0sbnVsbCxhKSxPPWk9ZS52YWx1ZSxaJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlp9KX1zdGF0aWMgZGVtbz1SZ3Q7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPXAxKHRoaXMsbiwiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFope3RoaXMuI2U9Wn0jdD0ocDEodGhpcyxvKSxwMSh0aGlzLGMsInJvdW5kIikpO2dldCBzaGFwZSgpe3JldHVybiB0aGlzLiN0fXNldCBzaGFwZShaKXt0aGlzLiN0PVp9I2E9KHAxKHRoaXMscCkscDEodGhpcyxmLDEyMCkpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNpemUoWil7dGhpcy4jYT1afSNpPShwMSh0aGlzLGcpLHAxKHRoaXMsdiwiIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNpfXNldCBwbGFjZWhvbGRlcihaKXt0aGlzLiNpPVp9I3I9KHAxKHRoaXMsbSkscDEodGhpcyxNLCEwKSk7Z2V0IGFsbG93VXBsb2FkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGFsbG93VXBsb2FkKFope3RoaXMuI3I9Wn0jcz0ocDEodGhpcyxTKSxwMSh0aGlzLF8sITApKTtnZXQgYWxsb3dEZWxldGUoKXtyZXR1cm4gdGhpcy4jc31zZXQgYWxsb3dEZWxldGUoWil7dGhpcy4jcz1afSNuPShwMSh0aGlzLGspLHAxKHRoaXMsTCw1KjEwMjQqMTAyNCkpO2dldCBtYXhGaWxlU2l6ZSgpe3JldHVybiB0aGlzLiNufXNldCBtYXhGaWxlU2l6ZShaKXt0aGlzLiNuPVp9I289KHAxKHRoaXMsQSkscDEodGhpcyxDLFsiaW1hZ2UvanBlZyIsImltYWdlL3BuZyIsImltYWdlL3dlYnAiXSkpO2dldCBhY2NlcHRlZEZvcm1hdHMoKXtyZXR1cm4gdGhpcy4jb31zZXQgYWNjZXB0ZWRGb3JtYXRzKFope3RoaXMuI289Wn0jbD0ocDEodGhpcyx6KSxwMSh0aGlzLFQsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb3V0cHV0U2l6ZShaKXt0aGlzLiNsPVp9I2M9KHAxKHRoaXMsJCkscDEodGhpcyxSLC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI2N9c2V0IG91dHB1dFF1YWxpdHkoWil7dGhpcy4jYz1afSNkPShwMSh0aGlzLFUpLHAxKHRoaXMsaiwhMSkpO2dldCBpc0hvdmVyZWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNIb3ZlcmVkKFope3RoaXMuI2Q9Wn0jcD0ocDEodGhpcyxtZSkscDEodGhpcyxILCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jcH1zZXQgaXNEcmFnZ2luZyhaKXt0aGlzLiNwPVp9I2g9KHAxKHRoaXMsY2UpLHAxKHRoaXMsVywhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jaH1zZXQgaXNMb2FkaW5nKFope3RoaXMuI2g9Wn1tb2RhbEluc3RhbmNlPShwMSh0aGlzLEQpLG51bGwpO3N0YXRpYyBzdHlsZXM9W0NlLC4uLlhlLmJhc2VTdHlsZXMsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLWNvbnRhaW5lcjpob3ZlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUsIDEyMHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y1ZjVmNSIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnJvdW5kIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuc3F1YXJlIHsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmRyYWdnaW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KSIsInJnYmEoOTYsIDE2NSwgMjUwLCAwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZTpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2Q0ZDRkOCIsIiMzZjNmNDYiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAucHJvZmlsZS1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgLm92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWNvbnRlbnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24gewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSkiLCJyZ2JhKDM5LCAzOSwgNDIsIDAuOTUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC45KSIsInJnYmEoMjIwLCAzOCwgMzgsIDAuOSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2RjMjYyNiIpfTsKICAgICAgfQoKICAgICAgLmRyb3Atem9uZS10ZXh0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmhpZGRlbi1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBhbmltYXRpb24gKi8KICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkuc2hvdyB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHVsc2UgewogICAgICAgIDAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgICA1MCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsKICAgICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICB9CiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUuY2xpY2tpbmcgewogICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMC4zcyBlYXNlLW91dDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD4KICAgICAgICAKICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InByb2ZpbGUtY29udGFpbmVyIgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGlja30KICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuaGFuZGxlRHJhZ092ZXJ9CiAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5oYW5kbGVEcmFnTGVhdmV9CiAgICAgICAgICBAZHJvcD0ke3RoaXMuaGFuZGxlRHJvcH0KICAgICAgICAgIHN0eWxlPSItLXNpemU6ICR7dGhpcy5zaXplfXB4IgogICAgICAgID4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2ZpbGUtcGljdHVyZSAke3RoaXMuc2hhcGV9ICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9ICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlPyJjbGlja2luZyI6IiJ9Ij4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlP3dgCiAgICAgICAgICAgICAgPGltZyBjbGFzcz0icHJvZmlsZS1pbWFnZSIgc3JjPSIke3RoaXMudmFsdWV9IiBhbHQ9IlByb2ZpbGUgcGljdHVyZSIgLz4KICAgICAgICAgICAgYDp3YAogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9InBsYWNlaG9sZGVyLWljb24iIGljb249Imx1Y2lkZTp1c2VyIiBpY29uU2l6ZT0iJHt0aGlzLnNpemUqLjV9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgYH0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0RyYWdnaW5nP3dgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgc3R5bGU9Im9wYWNpdHk6IDEiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcC16b25lLXRleHQiPgogICAgICAgICAgICAgICAgICBEcm9wIGltYWdlIGhlcmUKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLnZhbHVlJiYhdGhpcy5kaXNhYmxlZD93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93VXBsb2FkP3dgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3ZlcmxheS1idXR0b24iIEBjbGljaz0ke1o9PntaLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMub3Blbk1vZGFsKCl9fSB0aXRsZT0iQ2hhbmdlIHBpY3R1cmUiPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6cGVuY2lsIiBpY29uU2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke3RoaXMuYWxsb3dEZWxldGU/d2AKICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJvdmVybGF5LWJ1dHRvbiBkZWxldGUiIEBjbGljaz0ke1o9PntaLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZGVsZXRlUGljdHVyZSgpfX0gdGl0bGU9IkRlbGV0ZSBwaWN0dXJlIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOnRyYXNoMiIgaWNvblNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgICAKICAgICAgICAgICAgJHt0aGlzLmlzTG9hZGluZyYmIXRoaXMudmFsdWU/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkgc2hvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGlucHV0CiAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgY2xhc3M9ImhpZGRlbi1pbnB1dCIKICAgICAgICAgIGFjY2VwdD0iJHt0aGlzLmFjY2VwdGVkRm9ybWF0cy5qb2luKCIsIil9IgogICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlRmlsZVNlbGVjdH0KICAgICAgICAvPgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlQ2xpY2soKXtpZighKHRoaXMuZGlzYWJsZWR8fCF0aGlzLmFsbG93VXBsb2FkKSYmIXRoaXMudmFsdWUpe3RoaXMuaXNMb2FkaW5nPSEwO2xldCBaPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0IiksWT0oKT0+e3NldFRpbWVvdXQoKCk9PnsoIVouZmlsZXN8fFouZmlsZXMubGVuZ3RoPT09MCkmJih0aGlzLmlzTG9hZGluZz0hMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixZKX0sMzAwKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixZKSxaLmNsaWNrKCl9fWhhbmRsZUZpbGVTZWxlY3QoWil7bGV0IFk9Wi50YXJnZXQsb2U9WS5maWxlcz8uWzBdO3RoaXMuaXNMb2FkaW5nPSExLG9lJiZ0aGlzLnByb2Nlc3NGaWxlKG9lKSxZLnZhbHVlPSIifWhhbmRsZURyYWdPdmVyKFope1oucHJldmVudERlZmF1bHQoKSwhdGhpcy5kaXNhYmxlZCYmdGhpcy5hbGxvd1VwbG9hZCYmKHRoaXMuaXNEcmFnZ2luZz0hMCl9aGFuZGxlRHJhZ0xlYXZlKCl7dGhpcy5pc0RyYWdnaW5nPSExfWhhbmRsZURyb3AoWil7aWYoWi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZz0hMSx0aGlzLmRpc2FibGVkfHwhdGhpcy5hbGxvd1VwbG9hZClyZXR1cm47bGV0IFk9Wi5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdO1kmJnRoaXMucHJvY2Vzc0ZpbGUoWSl9YXN5bmMgcHJvY2Vzc0ZpbGUoWil7aWYoIXRoaXMuYWNjZXB0ZWRGb3JtYXRzLmluY2x1ZGVzKFoudHlwZSkpe2NvbnNvbGUuZXJyb3IoIkludmFsaWQgZmlsZSB0eXBlOiIsWi50eXBlKTtyZXR1cm59aWYoWi5zaXplPnRoaXMubWF4RmlsZVNpemUpe2NvbnNvbGUuZXJyb3IoIkZpbGUgdG9vIGxhcmdlOiIsWi5zaXplKTtyZXR1cm59bGV0IFk9bmV3IEZpbGVSZWFkZXI7WS5vbmxvYWQ9YXN5bmMgb2U9PntsZXQgZ2U9b2UudGFyZ2V0Py5yZXN1bHQ7YXdhaXQgdGhpcy5vcGVuTW9kYWwoZ2UpfSxZLnJlYWRBc0RhdGFVUkwoWil9YXN5bmMgb3Blbk1vZGFsKFope2xldCBZPVp8fHRoaXMudmFsdWU7aWYoIVkpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaGlkZGVuLWlucHV0IikuY2xpY2soKTtyZXR1cm59dGhpcy5tb2RhbEluc3RhbmNlPW5ldyBEVix0aGlzLm1vZGFsSW5zdGFuY2Uuc2hhcGU9dGhpcy5zaGFwZSx0aGlzLm1vZGFsSW5zdGFuY2UuaW5pdGlhbEltYWdlPVksdGhpcy5tb2RhbEluc3RhbmNlLm91dHB1dFNpemU9dGhpcy5vdXRwdXRTaXplLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRRdWFsaXR5PXRoaXMub3V0cHV0UXVhbGl0eSx0aGlzLm1vZGFsSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigic2F2ZSIsb2U9Pnt0aGlzLnZhbHVlPW9lLmRldGFpbC5jcm9wcGVkSW1hZ2UsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMubW9kYWxJbnN0YW5jZSl9ZGVsZXRlUGljdHVyZSgpe3RoaXMudmFsdWU9IiIsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShaKXt0aGlzLnZhbHVlPVp9c3RhdGlje3AxKGksYSl9fTtyZXR1cm4gTz1pfSkoKX0pO3ZhciBxZ3Q9YigoKT0+e1BtdCgpO0ltdCgpO05tdCgpO05xKCk7Rm10KCk7SHEoKTtPbXQoKTtWbXQoKTtqbXQoKTtVbXQoKTtXbXQoKTtHbXQoKTt0Z3QoKTtpZ3QoKTtjZ3QoKTtkZ3QoKTtwZ3QoKTtoZ3QoKTtOZ3QoKTtFVigpfSk7dmFyIFZndCxqZ3Q9YigoKT0+e3VlKCk7Vmd0PSgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vQ29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgfQogICAgCiAgICAuc2VjdGlvbiB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQogICAgCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9Db250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5vbi1TZWxlY3RhYmxlIENoaXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkJhc2ljIGNoaXBzIHdpdGhvdXQgc2VsZWN0aW9uIGNhcGFiaWxpdHkuIFVzZSBmb3IgZGlzcGxheS1vbmx5IHRhZ3MuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibm9uZSIKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6InN0YXR1cyIsdmFsdWU6IkFjdGl2ZSJ9LHtrZXk6InRpZXIiLHZhbHVlOiJQcmVtaXVtIn0se2tleToicmVnaW9uIix2YWx1ZToiRVUtV2VzdCJ9LHtrZXk6InR5cGUiLHZhbHVlOiJFbnRlcnByaXNlIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TaW5nbGUgU2VsZWN0aW9uIENoaXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNsaWNrIHRvIHNlbGVjdCBvbmUgY2hpcCBhdCBhIHRpbWUuIFVzZWZ1bCBmb3IgZmlsdGVycyBhbmQgb3B0aW9ucy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJzaW5nbGUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJhbGwiLHZhbHVlOiJBbGwgUHJvamVjdHMifSx7a2V5OiJhY3RpdmUiLHZhbHVlOiJBY3RpdmUifSx7a2V5OiJhcmNoaXZlZCIsdmFsdWU6IkFyY2hpdmVkIn0se2tleToiZHJhZnRzIix2YWx1ZToiRHJhZnRzIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NdWx0aXBsZSBTZWxlY3Rpb24gQ2hpcHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2VsZWN0IG11bHRpcGxlIGNoaXBzIHNpbXVsdGFuZW91c2x5LiBHcmVhdCBmb3IgdGFnIHNlbGVjdGlvbi48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJtdWx0aXBsZSIKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6ImpzIix2YWx1ZToiSmF2YVNjcmlwdCJ9LHtrZXk6InRzIix2YWx1ZToiVHlwZVNjcmlwdCJ9LHtrZXk6InJlYWN0Iix2YWx1ZToiUmVhY3QifSx7a2V5OiJ2dWUiLHZhbHVlOiJWdWUifSx7a2V5OiJhbmd1bGFyIix2YWx1ZToiQW5ndWxhciJ9LHtrZXk6Im5vZGUiLHZhbHVlOiJOb2RlLmpzIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5SZW1vdmFibGUgQ2hpcHMgd2l0aCBLZXlzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNoaXBzIHdpdGggcmVtb3ZlIGJ1dHRvbnMgYW5kIGtleS12YWx1ZSBwYWlycy4gUGVyZmVjdCBmb3IgZHluYW1pYyBsaXN0cy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJzaW5nbGUiCiAgICAgICAgY2hpcHNBcmVSZW1vdmFibGUKICAgICAgICAuc2VsZWN0YWJsZUNoaXBzPSR7W3trZXk6ImVudiIsdmFsdWU6IlByb2R1Y3Rpb24ifSx7a2V5OiJ2ZXJzaW9uIix2YWx1ZToiMi40LjEifSx7a2V5OiJicmFuY2giLHZhbHVlOiJtYWluIn0se2tleToiYXV0aG9yIix2YWx1ZToiSm9obiBEb2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk1peGVkIENvbnRlbnQgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Db21iaW5pbmcgZGlmZmVyZW50IGNoaXAgdHlwZXMgZm9yIGNvbXBsZXggVUlzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im11bHRpcGxlIgogICAgICAgIGNoaXBzQXJlUmVtb3ZhYmxlCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJwcmlvcml0eSIsdmFsdWU6IkhpZ2gifSx7a2V5OiJzdGF0dXMiLHZhbHVlOiJJbiBQcm9ncmVzcyJ9LHtrZXk6ImJ1ZyIsdmFsdWU6IkJ1ZyJ9LHtrZXk6ImZlYXR1cmUiLHZhbHVlOiJGZWF0dXJlIn0se2tleToic3ByaW50Iix2YWx1ZToiU3ByaW50IDIzIn0se2tleToiYXNzaWduZWUiLHZhbHVlOiJBbGljZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIEZsLFFpLFVndCxXZ3Q9YigoKT0+e3VlKCk7VHQoKTtqZ3QoKTtxZSgpO0ZsPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sUWk9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFVndD0oKCk9PntsZXQgdD1baGUoImRlZXMtY2hpcHMiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSgpXSxkPVtJKHt0eXBlOkJvb2xlYW59KV0sbD1bSSh7dHlwZTpBcnJheX0pXSx5PVtJKCldLHg9W0koe3R5cGU6QXJyYXl9KV0sRmwodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3Rpb25Nb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2VsZWN0aW9uTW9kZSJpbiBrLGdldDprPT5rLnNlbGVjdGlvbk1vZGUsc2V0OihrLE4pPT57ay5zZWxlY3Rpb25Nb2RlPU59fSxtZXRhZGF0YTpffSxuLG8pLEZsKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2hpcHNBcmVSZW1vdmFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJjaGlwc0FyZVJlbW92YWJsZSJpbiBrLGdldDprPT5rLmNoaXBzQXJlUmVtb3ZhYmxlLHNldDooayxOKT0+e2suY2hpcHNBcmVSZW1vdmFibGU9Tn19LG1ldGFkYXRhOl99LGMscCksRmwodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RhYmxlQ2hpcHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzZWxlY3RhYmxlQ2hpcHMiaW4gayxnZXQ6az0+ay5zZWxlY3RhYmxlQ2hpcHMsc2V0OihrLE4pPT57ay5zZWxlY3RhYmxlQ2hpcHM9Tn19LG1ldGFkYXRhOl99LGYsZyksRmwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZENoaXAiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzZWxlY3RlZENoaXAiaW4gayxnZXQ6az0+ay5zZWxlY3RlZENoaXAsc2V0OihrLE4pPT57ay5zZWxlY3RlZENoaXA9Tn19LG1ldGFkYXRhOl99LHYsbSksRmwodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZENoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic2VsZWN0ZWRDaGlwcyJpbiBrLGdldDprPT5rLnNlbGVjdGVkQ2hpcHMsc2V0OihrLE4pPT57ay5zZWxlY3RlZENoaXBzPU59fSxtZXRhZGF0YTpffSxNLFMpLEZsKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksRj1pPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89Vmd0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9UWkodGhpcyxuLCJzaW5nbGUiKTtnZXQgc2VsZWN0aW9uTW9kZSgpe3JldHVybiB0aGlzLiNlfXNldCBzZWxlY3Rpb25Nb2RlKF8pe3RoaXMuI2U9X30jdD0oUWkodGhpcyxvKSxRaSh0aGlzLGMsITEpKTtnZXQgY2hpcHNBcmVSZW1vdmFibGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY2hpcHNBcmVSZW1vdmFibGUoXyl7dGhpcy4jdD1ffSNhPShRaSh0aGlzLHApLFFpKHRoaXMsZixbXSkpO2dldCBzZWxlY3RhYmxlQ2hpcHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0YWJsZUNoaXBzKF8pe3RoaXMuI2E9X30jaT0oUWkodGhpcyxnKSxRaSh0aGlzLHYsbnVsbCkpO2dldCBzZWxlY3RlZENoaXAoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRDaGlwKF8pe3RoaXMuI2k9X30jcj0oUWkodGhpcyxtKSxRaSh0aGlzLE0sW10pKTtnZXQgc2VsZWN0ZWRDaGlwcygpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZENoaXBzKF8pe3RoaXMuI3I9X31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksUWkodGhpcyxTKX1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmNoaXAgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogICAgICB9CgogICAgICAuY2hpcDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNTI1MjViIil9OwogICAgICB9CgogICAgICAuY2hpcDphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiIzI1NjNlYiIsIiMyNTYzZWIiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwS2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tbGVmdDogLThweDsKICAgICAgICBwYWRkaW5nOiAwcHggOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCAuY2hpcEtleSB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBtYXJnaW4tbGVmdDogOHB4OwogICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOwogICAgICB9CgogICAgICBkZWVzLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjZWY0NDQ0IiwiI2VmNDQ0NCIpfTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgZGVlcy1pY29uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMuc2VsZWN0YWJsZUNoaXBzLm1hcChfPT53YAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2VsZWN0Q2hpcChfKX0KICAgICAgICAgICAgICBjbGFzcz0iY2hpcCAke3RoaXMuaXNTZWxlY3RlZChfKT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7Xy5rZXk/d2A8ZGl2IGNsYXNzPSJjaGlwS2V5Ij4ke18ua2V5fTwvZGl2PmA6d2BgfSAke18udmFsdWV9CiAgICAgICAgICAgICAgJHt0aGlzLmNoaXBzQXJlUmVtb3ZhYmxlP3dgCiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7az0+e2suc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVDaGlwKF8pfX0KICAgICAgICAgICAgICAgICAgICAgIC5pY29uPSR7ImZhOnhtYXJrIn0KICAgICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIGA6d2BgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWlzU2VsZWN0ZWQoXyl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiP3RoaXMuc2VsZWN0ZWRDaGlwP3RoaXMuaXNTYW1lQ2hpcCh0aGlzLnNlbGVjdGVkQ2hpcCxfKTohMTp0aGlzLnNlbGVjdGVkQ2hpcHMuc29tZShrPT50aGlzLmlzU2FtZUNoaXAoayxfKSl9aXNTYW1lQ2hpcChfLGspe3JldHVybihfLmtleSYmay5rZXl8fF8udmFsdWU9PT1rLnZhbHVlKSYmXy5rZXk9PT1rLmtleX1hc3luYyBzZWxlY3RDaGlwKF8pe3RoaXMuc2VsZWN0aW9uTW9kZSE9PSJub25lIiYmKHRoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiP3RoaXMuaXNTZWxlY3RlZChfKT8odGhpcy5zZWxlY3RlZENoaXA9bnVsbCx0aGlzLnNlbGVjdGVkQ2hpcHM9W10pOih0aGlzLnNlbGVjdGVkQ2hpcD1fLHRoaXMuc2VsZWN0ZWRDaGlwcz1bX10pOnRoaXMuc2VsZWN0aW9uTW9kZT09PSJtdWx0aXBsZSImJih0aGlzLmlzU2VsZWN0ZWQoXyk/dGhpcy5zZWxlY3RlZENoaXBzPXRoaXMuc2VsZWN0ZWRDaGlwcy5maWx0ZXIoaz0+IXRoaXMuaXNTYW1lQ2hpcChrLF8pKTp0aGlzLnNlbGVjdGVkQ2hpcHM9Wy4uLnRoaXMuc2VsZWN0ZWRDaGlwcyxfXSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksY29uc29sZS5sb2codGhpcy5zZWxlY3RlZENoaXBzKSl9cmVtb3ZlQ2hpcChfKXt0aGlzLnNlbGVjdGFibGVDaGlwcz10aGlzLnNlbGVjdGFibGVDaGlwcy5maWx0ZXIoaz0+IXRoaXMuaXNTYW1lQ2hpcChrLF8pKSx0aGlzLnNlbGVjdGVkQ2hpcHM9dGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcihrPT4hdGhpcy5pc1NhbWVDaGlwKGssXykpLHRoaXMuc2VsZWN0ZWRDaGlwJiZ0aGlzLmlzU2FtZUNoaXAodGhpcy5zZWxlY3RlZENoaXAsXykmJih0aGlzLnNlbGVjdGVkQ2hpcD1udWxsKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7UWkoaSxhKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIEdndD1iKCgpPT57V2d0KCl9KTt2YXIgWWd0LFpndD1iKCgpPT57dWUoKTt5MSgpO1lndD0oKT0+d2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgZT10LnF1ZXJ5U2VsZWN0b3IoIiNkYXNoYm9hcmRHcmlkIiksYT1be2lkOiJtZXRyaWNzMSIseDowLHk6MCx3OjMsaDoyLHRpdGxlOiJSZXZlbnVlIixpY29uOiJsdWNpZGU6ZG9sbGFyU2lnbiIsY29udGVudDp3YAogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyI+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAzMnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+JDEyNCw1NjM8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzIyYzU1ZTsgZm9udC1zaXplOiAxNHB4OyBtYXJnaW4tdG9wOiA4cHg7Ij7ihpEgMTIuNSUgZnJvbSBsYXN0IG1vbnRoPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0se2lkOiJtZXRyaWNzMiIseDozLHk6MCx3OjMsaDoyLHRpdGxlOiJVc2VycyIsaWNvbjoibHVjaWRlOnVzZXJzIixjb250ZW50OndgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDMycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij44LDIzNDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjM2I4MmY2OyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPuKGkSA1LjIlIGZyb20gbGFzdCB3ZWVrPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0se2lkOiJjaGFydDEiLHg6Nix5OjAsdzo2LGg6NCx0aXRsZToiQW5hbHl0aWNzIixpY29uOiJsdWNpZGU6bGluZUNoYXJ0Iixjb250ZW50OndgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IGhlaWdodDogMTAwJTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjNzE3MTdhOyI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpsaW5lQ2hhcnQifSBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAxNnB4OyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2PkNoYXJ0IHZpc3VhbGl6YXRpb24gYXJlYTwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9XTtlLndpZGdldHM9YS5tYXAoeD0+KHsuLi54fSkpLGUuY2VsbEhlaWdodD04MCxlLm1hcmdpbj17dG9wOjEwLHJpZ2h0OjEwLGJvdHRvbToxMCxsZWZ0OjEwfSxlLmVuYWJsZUFuaW1hdGlvbj0hMCxlLnNob3dHcmlkTGluZXM9ITE7bGV0IGk9ZS5nZXRMYXlvdXQoKS5tYXAoeD0+KHsuLi54fSkpLHI9ZS53aWRnZXRzLm1hcCgoeCxNKT0+KHtpZDp4LmlkLHg6MCx5Ok09PT0wPzA6ZS53aWRnZXRzLnNsaWNlKDAsTSkucmVkdWNlKChTLEYpPT5TK0YuaCwwKSx3OmUuY29sdW1ucyxoOnguaH0pKTtlLmxheW91dHM9e2Jhc2U6aSxtb2JpbGU6cn07bGV0IHM9dC5xdWVyeVNlbGVjdG9yKCIjZGFzaGJvYXJkTGF5b3V0U3RhdHVzIiksbj0oKT0+e2xldCB4PWUuZ2V0TGF5b3V0KCk7cy50ZXh0Q29udGVudD1gQWN0aXZlIGJyZWFrcG9pbnQ6ICR7ZS5hY3RpdmVCcmVha3BvaW50fSBcdTIwMjIgVGlsZXM6ICR7eC5sZW5ndGh9YH0sbz13aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNzY4cHgpIiksZD0oKT0+e2xldCB4PW8ubWF0Y2hlcz8ibW9iaWxlIjoiYmFzZSI7ZS5hcHBseUJyZWFrcG9pbnRMYXlvdXQoeCksbigpfTt0eXBlb2Ygby5hZGRFdmVudExpc3RlbmVyPT0iZnVuY3Rpb24iP28uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixkKTpvLmFkZExpc3RlbmVyPy4oZCksZCgpO2xldCBjPTQ7dC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goeD0+e3N3aXRjaCh4LnRleHRDb250ZW50Py50cmltKCkpe2Nhc2UiVG9nZ2xlIEFuaW1hdGlvbiI6eC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmVuYWJsZUFuaW1hdGlvbj0hZS5lbmFibGVBbmltYXRpb259KTticmVhaztjYXNlIlRvZ2dsZSBHcmlkIExpbmVzIjp4LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2Uuc2hvd0dyaWRMaW5lcz0hZS5zaG93R3JpZExpbmVzfSk7YnJlYWs7Y2FzZSJBZGQgV2lkZ2V0Ijp4LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBTPXtpZDpgd2lkZ2V0JHtjKyt9YCx4OjAseTowLHc6MyxoOjIsYXV0b1Bvc2l0aW9uOiEwLHRpdGxlOmBXaWRnZXQgJHtjLTF9YCxpY29uOiJsdWNpZGU6cGFja2FnZSIsY29udGVudDp3YAogICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJjb2xvcjogIzcxNzE3YTsiPk5ldyB3aWRnZXQgY29udGVudDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsgZm9udC1zaXplOiAyNHB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OyI+JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKX08L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgfTtlLmFkZFdpZGdldChTLCEwKX0pO2JyZWFrO2Nhc2UiQ29tcGFjdCBHcmlkIjp4LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuY29tcGFjdCgpfSk7YnJlYWs7Y2FzZSJUb2dnbGUgRWRpdCBNb2RlIjp4LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2UuZWRpdGFibGU9IWUuZWRpdGFibGUseC50ZXh0Q29udGVudD1lLmVkaXRhYmxlPyJMb2NrIEdyaWQiOiJVbmxvY2sgR3JpZCJ9KTticmVhaztjYXNlIlJlc2V0IExheW91dCI6eC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntlLmFwcGx5QnJlYWtwb2ludExheW91dChlLmFjdGl2ZUJyZWFrcG9pbnQpfSk7YnJlYWs7ZGVmYXVsdDpicmVha319KTtsZXQgbD1udWxsLGY9MCxnPSh4LE0pPT57bGV0IFM9ZS5nZXRMYXlvdXQoKTtjb25zb2xlLmdyb3VwKGBcdXsxRjUwNH0gJHt4fSBbRXZlbnQgIyR7KytmfV1gKSxjb25zb2xlLmxvZygiVGltZXN0YW1wOiIsbmV3IERhdGUoKS50b0lTT1N0cmluZygpKSxjb25zb2xlLmxvZygiR3JpZCBDb25maWd1cmF0aW9uOiIse2NvbHVtbnM6ZS5jb2x1bW5zLGNlbGxIZWlnaHQ6ZS5jZWxsSGVpZ2h0LG1hcmdpbjplLm1hcmdpbixlZGl0YWJsZTplLmVkaXRhYmxlLGFjdGl2ZUJyZWFrcG9pbnQ6ZS5hY3RpdmVCcmVha3BvaW50fSksY29uc29sZS5sb2coIkN1cnJlbnQgTGF5b3V0OiIsUyksY29uc29sZS5sb2coIldpZGdldCBDb3VudDoiLFMubGVuZ3RoKSxjb25zb2xlLmxvZygiR3JpZCBCb3VuZHM6Iix7dG90YWxXaWRnZXRzOmUud2lkZ2V0cy5sZW5ndGgsbWF4WTpNYXRoLm1heCguLi5TLm1hcChGPT5GLnkrRi5oKSksb2NjdXBpZWQ6Uy5tYXAoRj0+YCR7Ri5pZH06ICgke0YueH0sJHtGLnl9KSAke0Yud314JHtGLmh9YCkuam9pbigiLCAiKX0pLE0mJmNvbnNvbGUubG9nKCJFdmVudCBEZXRhaWxzOiIsTSksY29uc29sZS5ncm91cEVuZCgpfSx5PW5ldyBNdXRhdGlvbk9ic2VydmVyKCgpPT57bGV0IHg9ZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucGxhY2Vob2xkZXIiKTtpZih4KXtsZXQgTT17bGVmdDp4LnN0eWxlLmxlZnQsdG9wOnguc3R5bGUudG9wLHdpZHRoOnguc3R5bGUud2lkdGgsaGVpZ2h0Onguc3R5bGUuaGVpZ2h0fTtpZihKU09OLnN0cmluZ2lmeShNKSE9PUpTT04uc3RyaW5naWZ5KGwpKXtjb25zb2xlLmdyb3VwKCJcdXsxRjRDRH0gUGxhY2Vob2xkZXIgUG9zaXRpb24gQ2hhbmdlZCIpLGNvbnNvbGUubG9nKCJQcmV2aW91czoiLGwpLGNvbnNvbGUubG9nKCJDdXJyZW50OiIsTSk7bGV0IFM9ZS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZ3JpZC1jb250YWluZXIiKTtTJiZjb25zb2xlLmxvZygiR3JpZCBDb250YWluZXIgRGltZW5zaW9uczoiLHt3aWR0aDpTLmNsaWVudFdpZHRoLGhlaWdodDpTLmNsaWVudEhlaWdodH0pLGNvbnNvbGUuZ3JvdXBFbmQoKSxsPU19fX0pO2Uuc2hhZG93Um9vdCYmeS5vYnNlcnZlKGUuc2hhZG93Um9vdCx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITAsYXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJzdHlsZSJdfSksZygiSW5pdGlhbCBHcmlkIFN0YXRlIiksZS5hZGRFdmVudExpc3RlbmVyKCJ3aWRnZXQtbW92ZSIseD0+e2coIldpZGdldCBNb3ZlIix7d2lkZ2V0OnguZGV0YWlsLndpZGdldCxkaXNwbGFjZWQ6eC5kZXRhaWwuZGlzcGxhY2VkLHN3YXBwZWRXaXRoOnguZGV0YWlsLnN3YXBwZWRXaXRofSl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1yZXNpemUiLHg9PntnKCJXaWRnZXQgUmVzaXplIix7d2lkZ2V0OnguZGV0YWlsLndpZGdldCxkaXNwbGFjZWQ6eC5kZXRhaWwuZGlzcGxhY2VkLHN3YXBwZWRXaXRoOnguZGV0YWlsLnN3YXBwZWRXaXRofSl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1yZW1vdmUiLHg9PntnKCJXaWRnZXQgUmVtb3ZlIix7cmVtb3ZlZFdpZGdldDp4LmRldGFpbC53aWRnZXR9KSxuKCl9KSxlLmFkZEV2ZW50TGlzdGVuZXIoImxheW91dC1jaGFuZ2UiLCgpPT57ZygiTGF5b3V0IENoYW5nZSIpLG4oKX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHg9PntsZXQgTT14LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0LWhlYWRlciIpLFM9eC50YXJnZXQuY2xvc2VzdCgiLnJlc2l6ZS1oYW5kbGUiKTtpZihNfHxTKXtjb25zb2xlLmdyb3VwKGBcdXsxRjNBRn0gSW50ZXJhY3Rpb24gU3RhcnRlZDogJHtNPyJEcmFnIjoiUmVzaXplIn1gKSxjb25zb2xlLmxvZygiVGFyZ2V0IFdpZGdldDoiLHgudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLXdpZGdldC1pZCIpKSxjb25zb2xlLmxvZygiUG9pbnRlciBQb3NpdGlvbjoiLHt4OnguY2xpZW50WCx5OnguY2xpZW50WX0pLGNvbnNvbGUuZ3JvdXBFbmQoKTtsZXQgRj1rPT57bGV0IE49eC50YXJnZXQuY2xvc2VzdCgiLndpZGdldCIpO04mJmNvbnNvbGUubG9nKCJcdTIxOTRcdUZFMEYgUG9pbnRlciBNb3ZlOiIse3dpZGdldElkOk4uZ2V0QXR0cmlidXRlKCJkYXRhLXdpZGdldC1pZCIpLHBvc2l0aW9uOnt4OmsuY2xpZW50WCx5OmsuY2xpZW50WX0sZGVsdGE6e3g6ay5jbGllbnRYLXguY2xpZW50WCx5OmsuY2xpZW50WS14LmNsaWVudFl9fSl9LF89KCk9Pntjb25zb2xlLmdyb3VwKCJcdXsxRjNDMX0gSW50ZXJhY3Rpb24gRW5kZWQiKSxnKCJGaW5hbCBTdGF0ZSBBZnRlciBJbnRlcmFjdGlvbiIpLGNvbnNvbGUuZ3JvdXBFbmQoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsRiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixfKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLEYpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsXyl9fSk7bGV0IHY9ZS5hZGRXaWRnZXQuYmluZChlKTtlLmFkZFdpZGdldD0oeCxNKT0+e2NvbnNvbGUuZ3JvdXAoIlx1Mjc5NSBBZGRpbmcgV2lkZ2V0IiksY29uc29sZS5sb2coIk5ldyBXaWRnZXQ6Iix4KSxjb25zb2xlLmxvZygiQXV0byBQb3NpdGlvbjoiLE0pO2xldCBTPXYoeCxNKTtyZXR1cm4gZygiQWZ0ZXIgV2lkZ2V0IEFkZGVkIiksY29uc29sZS5ncm91cEVuZCgpLFN9O2xldCBtPWUuY29tcGFjdC5iaW5kKGUpO2UuY29tcGFjdD14PT57Y29uc29sZS5ncm91cCgiXHV7MUY1REN9XHVGRTBGIENvbXBhY3RpbmcgR3JpZCIpLGNvbnNvbGUubG9nKCJEaXJlY3Rpb246Iix4fHwidmVydGljYWwiKSxnKCJCZWZvcmUgQ29tcGFjdCIpO2xldCBNPW0oeCk7cmV0dXJuIGcoIkFmdGVyIENvbXBhY3QiKSxjb25zb2xlLmdyb3VwRW5kKCksTX0sbigpfX0+CiAgICAgIDxzdHlsZT4KICAgICAgICAke1FgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLmRlbW8tY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtby1jb250cm9scyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgfQoKICAgICAgICAgIC5ncmlkLWNvbnRhaW5lci13cmFwcGVyIHsKICAgICAgICAgICAgZmxleDogMTsKICAgICAgICAgICAgbWluLWhlaWdodDogNjAwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIH0KCiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgIH0KCiAgICAgICAgICAjZGFzaGJvYXJkTGF5b3V0U3RhdHVzIHsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQW5pbWF0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgQW5pbWF0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEaXNwbGF5OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgR3JpZCBMaW5lczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgoKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFdpZGdldDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Db21wYWN0IEdyaWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVzZXQgTGF5b3V0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJNb2RlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgRWRpdCBNb2RlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtZGFzaGJvYXJkZ3JpZCBpZD0iZGFzaGJvYXJkR3JpZCI+PC9kZWVzLWRhc2hib2FyZGdyaWQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgPGRpdj5EcmFnIHRvIHJlcG9zaXRpb24sIHJlc2l6ZSBmcm9tIGhhbmRsZXMsIG9yIHJpZ2h0LWNsaWNrIGEgaGVhZGVyIHRvIGRlbGV0ZSBhIHRpbGUuPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkYXNoYm9hcmRMYXlvdXRTdGF0dXMiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSk7dmFyIFhndCxLZ3Q9YigoKT0+e3VlKCk7WGd0PVtoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpbGwtY2hhbmdlOiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZW5hYmxlYW5pbWF0aW9uXSkgLmdyaWQtd2lkZ2V0IHsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQuZHJhZ2dpbmcgewogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLXdpZGdldC5wbGFjZWhvbGRlciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgei1pbmRleDogMTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtd2lkZ2V0LnBsYWNlaG9sZGVyIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQucmVzaXppbmcgewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLndpZGdldC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSkiLCIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLndpZGdldC1jb250ZW50IHsKICAgICAgICBib3gtc2hhZG93OiAke2guYmRUaGVtZSgiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpIiwiMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCkiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXdpZGdldC5kcmFnZ2luZyAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJveC1zaGFkb3c6ICR7aC5iZFRoZW1lKCIwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuMjUpIiwiMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjYpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgICAgY3Vyc29yOiBncmFiOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlcjphY3RpdmUgewogICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyLmxvY2tlZCB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CiAgICAgIAogICAgICAud2lkZ2V0LWhlYWRlci5sb2NrZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1oZWFkZXIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC1ib2R5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtYm9keS5oYXMtaGVhZGVyIHsKICAgICAgICB0b3A6IDQ1cHg7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1lIHsKICAgICAgICBjdXJzb3I6IGV3LXJlc2l6ZTsKICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICByaWdodDogLTZweDsKICAgICAgICB0b3A6IDEwJTsKICAgICAgICBoZWlnaHQ6IDgwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtcyB7CiAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7CiAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgYm90dG9tOiAtNnB4OwogICAgICAgIGxlZnQ6IDEwJTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIGN1cnNvcjogc2UtcmVzaXplOwogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICByaWdodDogLTJweDsKICAgICAgICBib3R0b206IC0ycHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDRweDsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICB3aWR0aDogNnB4OwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQ6aG92ZXIgLnJlc2l6ZS1oYW5kbGUtc2UgewogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLnJlc2l6ZS1oYW5kbGUtc2U6aG92ZXI6OmFmdGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtcGxhY2Vob2xkZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgb3BhY2l0eTogMC4xOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDQ4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHotaW5kZXg6IC0xOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lLXZlcnRpY2FsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLWxpbmUtaG9yaXpvbnRhbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQogIGBdfSk7dmFyIGtsMixQVixlYnQsdGJ0LFFndCxXOCxKZ3QsY1V0LGRVdCxJVixnbyxhYnQsaWJ0LHJidD1iKCgpPT57a2wyPTEwLFBWPXQ9PntpZih0eXBlb2YgdD09Im51bWJlciIpcmV0dXJue2hvcml6b250YWw6dCx2ZXJ0aWNhbDp0LHRvcDp0LHJpZ2h0OnQsYm90dG9tOnQsbGVmdDp0fTtsZXQgZT17dG9wOnQudG9wPz8xMCxyaWdodDp0LnJpZ2h0Pz8xMCxib3R0b206dC5ib3R0b20/PzEwLGxlZnQ6dC5sZWZ0Pz8xMH07cmV0dXJuey4uLmUsaG9yaXpvbnRhbDooZS5sZWZ0K2UucmlnaHQpLzIsdmVydGljYWw6KGUudG9wK2UuYm90dG9tKS8yfX0sZWJ0PSh0LGUsYSxpLHIpPT57bGV0IHM9YS5ob3Jpem9udGFsKihlKzEpLG49TWF0aC5tYXgodC1zLDApLG89ZT4wP24vZTowLGQ9cj09PSJhdXRvIj9vOmk7cmV0dXJue2NvbnRhaW5lcldpZHRoOnQsY2VsbFdpZHRoUHg6byxtYXJnaW5Ib3Jpem9udGFsUHg6YS5ob3Jpem9udGFsLGNlbGxIZWlnaHRQeDpkLG1hcmdpblZlcnRpY2FsUHg6YS52ZXJ0aWNhbH19LHRidD0odCxlLGEpPT57aWYodC5sZW5ndGg9PT0wKXJldHVybiAwO2xldCBpPU1hdGgubWF4KC4uLnQubWFwKHI9PnIueStyLmgpLDApO3JldHVybiBpKmErKGkrMSkqZS52ZXJ0aWNhbH0sUWd0PSh0LGUsYSxpLHIpPT5lPHQueCt0LncmJmUraT50LngmJmE8dC55K3QuaCYmYStyPnQueSxXOD0odCxlLGEsaSxyPWUudyxzPWUuaCk9PnQuZmlsdGVyKG49Pm4uaWQ9PT1lLmlkPyExOlFndChuLGEsaSxyLHMpKSxKZ3Q9KHQsZSxhLGkpPT5XOCh0LGUsYSxpKS5sZW5ndGg+MCxjVXQ9dD0+KHsuLi50fSksZFV0PXQ9PnQubWFwKGNVdCksSVY9KHQsZSxhLGkpPT57Zm9yKGxldCBzPTA7czwyMDA7cysrKWZvcihsZXQgbj0wO248PWktZTtuKyspaWYoIXQuc29tZShkPT5RZ3QoZCxuLHMsZSxhKSkpcmV0dXJue3g6bix5OnN9O3JldHVybnt4OjAseTp0LnJlZHVjZSgocyxuKT0+TWF0aC5tYXgocyxuLnkrbi5oKSwwKX19LGdvPSh0LGUsYSxpLHIpPT57bGV0IHM9ZFV0KHQpLG49cy5maW5kKGY9PmYuaWQ9PT1lKSxvPXQuZmluZChmPT5mLmlkPT09ZSk7aWYoIW58fCFvKXJldHVybiBudWxsO2xldCBkPXt4OmEueCx5OmEueSx3OmEudz8/bi53LGg6YS5oPz9uLmh9O24ueD1kLngsbi55PWQueSxuLnc9ZC53LG4uaD1kLmg7bGV0IGM9VzgocyxuLGQueCxkLnksZC53LGQuaCk7aWYoYy5sZW5ndGg9PT0wKXJldHVybnt3aWRnZXRzOnMsbW92ZWRXaWRnZXRzOltuLmlkXX07aWYoYy5sZW5ndGg9PT0xKXtsZXQgZj1jWzBdO2lmKCFmLmxvY2tlZCYmIWYubm9Nb3ZlJiZmLnc9PT1uLncmJmYuaD09PW4uaCl7bGV0IGc9cy5maW5kKHk9PnkuaWQ9PT1mLmlkKTtpZihnKXtsZXQgeT1vLHY9e3g6Zy54LHk6Zy55fTtpZihnLng9eS54LGcueT15LnksVzgocyxuLG4ueCxuLnksbi53LG4uaCkubGVuZ3RoPT09MCYmVzgocyxnLGcueCxnLnksZy53LGcuaCkubGVuZ3RoPT09MClyZXR1cm57d2lkZ2V0czpzLG1vdmVkV2lkZ2V0czpbbi5pZCxnLmlkXSxzd2FwcGVkV2l0aDpnLmlkfTtnLng9di54LGcueT12Lnl9fX1sZXQgcD1uZXcgU2V0KFtuLmlkXSk7Zm9yKGxldCBmIG9mIGMpe2lmKGYubG9ja2VkfHxmLm5vTW92ZSlyZXR1cm4gbnVsbDtsZXQgZz1zLmZpbmQobT0+bS5pZD09PWYuaWQpO2lmKCFnKWNvbnRpbnVlO2xldCB5PXMuZmlsdGVyKG09Pm0uaWQhPT1mLmlkKSx2PUlWKHksZy53LGcuaCxpKTtnLng9di54LGcueT12LnkscC5hZGQoZy5pZCl9cmV0dXJuIFc4KHMsbixuLngsbi55LG4udyxuLmgpLmxlbmd0aD4wP251bGw6e3dpZGdldHM6cyxtb3ZlZFdpZGdldHM6QXJyYXkuZnJvbShwKX19LGFidD0odCxlPSJ2ZXJ0aWNhbCIpPT57bGV0IGE9Wy4uLnRdLnNvcnQoKGkscik9PmU9PT0idmVydGljYWwiP2kueSE9PXIueT9pLnktci55OmkueC1yLng6aS54IT09ci54P2kueC1yLng6aS55LXIueSk7Zm9yKGxldCBpIG9mIGEpaWYoIShpLmxvY2tlZHx8aS5ub01vdmUpKWlmKGU9PT0idmVydGljYWwiKWZvcig7aS55PjAmJiFKZ3QodCxpLGkueCxpLnktMSk7KWkueS09MTtlbHNlIGZvcig7aS54PjAmJiFKZ3QodCxpLGkueC0xLGkueSk7KWkueC09MX0saWJ0PSh0LGUpPT50Lm1hcChhPT57bGV0IGk9ZS5maW5kKHI9PnIuaWQ9PT1hLmlkKTtyZXR1cm4gaT97Li4uYSwuLi5pfTphfSl9KTt2YXIgc2J0LG5idCxvYnQ9YigoKT0+e3NidD0oe3BvaW50ZXI6dCxjb250YWluZXJSZWN0OmUsbWV0cmljczphLGNvbHVtbnM6aSx3aWRnZXQ6cixydGw6cyxkcmFnT2Zmc2V0WDpuPTAsZHJhZ09mZnNldFk6bz0wfSk9PntsZXQgZD10LmNsaWVudFgtZS5sZWZ0LW4sYz10LmNsaWVudFktZS50b3AtbyxwPWEubWFyZ2luSG9yaXpvbnRhbFB4LGw9YS5tYXJnaW5WZXJ0aWNhbFB4LGY9YS5jZWxsV2lkdGhQeCxnPWEuY2VsbEhlaWdodFB4LHk9KF8sayxOKT0+TWF0aC5tYXgoayxNYXRoLm1pbihOLF8pKSx2PXkoZC1wLDAsZS53aWR0aC1wKSxtPXkoYy1sLDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx4PWYrcCxNPWcrbCxTPU1hdGgucm91bmQodi94KTtzJiYoUz1pLXIudy1TKSxTPXkoUywwLGktci53KTtsZXQgRj15KE1hdGgucm91bmQobS9NKSwwLE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtyZXR1cm57eDpTLHk6Rn19LG5idD0oe3BvaW50ZXI6dCxjb250YWluZXJSZWN0OmUsbWV0cmljczphLHN0YXJ0V2lkdGg6aSxzdGFydEhlaWdodDpyLHN0YXJ0UG9pbnRlcjpzLGhhbmRsZXI6bix3aWRnZXQ6byxjb2x1bW5zOmR9KT0+e2xldCBjPXQuY2xpZW50WC1zLmNsaWVudFgscD10LmNsaWVudFktcy5jbGllbnRZLGw9aSxmPXIsZz1hLmNlbGxXaWR0aFB4K2EubWFyZ2luSG9yaXpvbnRhbFB4LHk9YS5jZWxsSGVpZ2h0UHgrYS5tYXJnaW5WZXJ0aWNhbFB4O2lmKG4uaW5jbHVkZXMoImUiKSl7bGV0IHg9TWF0aC5yb3VuZChjL2cpO2w9aSt4fWlmKG4uaW5jbHVkZXMoInMiKSl7bGV0IHg9TWF0aC5yb3VuZChwL3kpO2Y9cit4fWxldCB2PU1hdGgubWF4KG8ubWluV3x8MSxNYXRoLm1pbihsLG8ubWF4V3x8ZC1vLngpKSxtPU1hdGgubWF4KG8ubWluSHx8MSxNYXRoLm1pbihmLG8ubWF4SHx8TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKTtyZXR1cm57d2lkdGg6dixoZWlnaHQ6bX19fSk7dmFyIGxidCxjYnQ9YigoKT0+e3MyKCk7cjIoKTtsYnQ9KHt3aWRnZXQ6dCxob3N0OmUsZXZlbnQ6YX0pPT57bGV0IGk9W3tuYW1lOiJEZWxldGUgdGlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjphc3luYygpPT4oZS5yZW1vdmVXaWRnZXQodC5pZCksbnVsbCl9XTtVdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhhLGkpfX0pO3ZhciBLMixHdCxkYnQscGJ0PWIoKCk9Pnt1ZSgpO0R0KCk7czIoKTtaZ3QoKTtLZ3QoKTtyYnQoKTtvYnQoKTtjYnQoKTtLMj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEd0PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxkYnQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWRhc2hib2FyZGdyaWQiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXSxyZSxqPVtdLG1lPVtdLHdlLEg9W10sY2U9W10sa2UsVz1bXSxEPVtdLE8sWj1bXSxZPVtdLG9lLGdlPVtdLGJlPVtdO3ZhciAkZT1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpBcnJheX0pXSxkPVtJKHt0eXBlOk51bWJlcn0pXSxsPVtJKHt0eXBlOk9iamVjdH0pXSx5PVtJKHt0eXBlOk51bWJlcn0pXSx4PVtJKHt0eXBlOkJvb2xlYW59KV0sRj1bSSh7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0sTj1bSSh7dHlwZTpTdHJpbmd9KV0scT1bSSh7dHlwZTpCb29sZWFufSldLEU9W0koe3R5cGU6Qm9vbGVhbn0pXSxWPVtJKHthdHRyaWJ1dGU6ITF9KV0scmU9W0koe3R5cGU6U3RyaW5nfSldLHdlPVtKKCldLGtlPVtKKCldLE89W0ooKV0sb2U9W0ooKV0sSzIodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3aWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4id2lkZ2V0cyJpbiBQLGdldDpQPT5QLndpZGdldHMsc2V0OihQLEspPT57UC53aWRnZXRzPUt9fSxtZXRhZGF0YTpCfSxuLG8pLEsyKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VsbEhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImNlbGxIZWlnaHQiaW4gUCxnZXQ6UD0+UC5jZWxsSGVpZ2h0LHNldDooUCxLKT0+e1AuY2VsbEhlaWdodD1LfX0sbWV0YWRhdGE6Qn0sYyxwKSxLMih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hcmdpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+Im1hcmdpbiJpbiBQLGdldDpQPT5QLm1hcmdpbixzZXQ6KFAsSyk9PntQLm1hcmdpbj1LfX0sbWV0YWRhdGE6Qn0sZixnKSxLMih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJjb2x1bW5zImluIFAsZ2V0OlA9PlAuY29sdW1ucyxzZXQ6KFAsSyk9PntQLmNvbHVtbnM9S319LG1ldGFkYXRhOkJ9LHYsbSksSzIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImVkaXRhYmxlImluIFAsZ2V0OlA9PlAuZWRpdGFibGUsc2V0OihQLEspPT57UC5lZGl0YWJsZT1LfX0sbWV0YWRhdGE6Qn0sTSxTKSxLMih0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUFuaW1hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImVuYWJsZUFuaW1hdGlvbiJpbiBQLGdldDpQPT5QLmVuYWJsZUFuaW1hdGlvbixzZXQ6KFAsSyk9PntQLmVuYWJsZUFuaW1hdGlvbj1LfX0sbWV0YWRhdGE6Qn0sXyxrKSxLMih0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlbGxIZWlnaHRVbml0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iY2VsbEhlaWdodFVuaXQiaW4gUCxnZXQ6UD0+UC5jZWxsSGVpZ2h0VW5pdCxzZXQ6KFAsSyk9PntQLmNlbGxIZWlnaHRVbml0PUt9fSxtZXRhZGF0YTpCfSxMLEEpLEsyKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnRsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4icnRsImluIFAsZ2V0OlA9PlAucnRsLHNldDooUCxLKT0+e1AucnRsPUt9fSxtZXRhZGF0YTpCfSxDLHopLEsyKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0dyaWRMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InNob3dHcmlkTGluZXMiaW4gUCxnZXQ6UD0+UC5zaG93R3JpZExpbmVzLHNldDooUCxLKT0+e1Auc2hvd0dyaWRMaW5lcz1LfX0sbWV0YWRhdGE6Qn0sVCwkKSxLMih0aGlzLG51bGwsVix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxheW91dHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJsYXlvdXRzImluIFAsZ2V0OlA9PlAubGF5b3V0cyxzZXQ6KFAsSyk9PntQLmxheW91dHM9S319LG1ldGFkYXRhOkJ9LFIsVSksSzIodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlQnJlYWtwb2ludCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImFjdGl2ZUJyZWFrcG9pbnQiaW4gUCxnZXQ6UD0+UC5hY3RpdmVCcmVha3BvaW50LHNldDooUCxLKT0+e1AuYWN0aXZlQnJlYWtwb2ludD1LfX0sbWV0YWRhdGE6Qn0saixtZSksSzIodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InBsYWNlaG9sZGVyUG9zaXRpb24iaW4gUCxnZXQ6UD0+UC5wbGFjZWhvbGRlclBvc2l0aW9uLHNldDooUCxLKT0+e1AucGxhY2Vob2xkZXJQb3NpdGlvbj1LfX0sbWV0YWRhdGE6Qn0sSCxjZSksSzIodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWV0cmljcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+Im1ldHJpY3MiaW4gUCxnZXQ6UD0+UC5tZXRyaWNzLHNldDooUCxLKT0+e1AubWV0cmljcz1LfX0sbWV0YWRhdGE6Qn0sVyxEKSxLMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkTWFyZ2lucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InJlc29sdmVkTWFyZ2lucyJpbiBQLGdldDpQPT5QLnJlc29sdmVkTWFyZ2lucyxzZXQ6KFAsSyk9PntQLnJlc29sdmVkTWFyZ2lucz1LfX0sbWV0YWRhdGE6Qn0sWixZKSxLMih0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwcmV2aWV3V2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InByZXZpZXdXaWRnZXRzImluIFAsZ2V0OlA9PlAucHJldmlld1dpZGdldHMsc2V0OihQLEspPT57UC5wcmV2aWV3V2lkZ2V0cz1LfX0sbWV0YWRhdGE6Qn0sZ2UsYmUpLEsyKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwsYSksJGU9aT1lLnZhbHVlLEImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pfXN0YXRpYyBkZW1vPVlndDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdO3N0YXRpYyBzdHlsZXM9WGd0OyNlPUd0KHRoaXMsbixbXSk7Z2V0IHdpZGdldHMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgd2lkZ2V0cyhCKXt0aGlzLiNlPUJ9I3Q9KEd0KHRoaXMsbyksR3QodGhpcyxjLDgwKSk7Z2V0IGNlbGxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY2VsbEhlaWdodChCKXt0aGlzLiN0PUJ9I2E9KEd0KHRoaXMscCksR3QodGhpcyxmLDEwKSk7Z2V0IG1hcmdpbigpe3JldHVybiB0aGlzLiNhfXNldCBtYXJnaW4oQil7dGhpcy4jYT1CfSNpPShHdCh0aGlzLGcpLEd0KHRoaXMsdiwxMikpO2dldCBjb2x1bW5zKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbHVtbnMoQil7dGhpcy4jaT1CfSNyPShHdCh0aGlzLG0pLEd0KHRoaXMsTSwhMCkpO2dldCBlZGl0YWJsZSgpe3JldHVybiB0aGlzLiNyfXNldCBlZGl0YWJsZShCKXt0aGlzLiNyPUJ9I3M9KEd0KHRoaXMsUyksR3QodGhpcyxfLCEwKSk7Z2V0IGVuYWJsZUFuaW1hdGlvbigpe3JldHVybiB0aGlzLiNzfXNldCBlbmFibGVBbmltYXRpb24oQil7dGhpcy4jcz1CfSNuPShHdCh0aGlzLGspLEd0KHRoaXMsTCwicHgiKSk7Z2V0IGNlbGxIZWlnaHRVbml0KCl7cmV0dXJuIHRoaXMuI259c2V0IGNlbGxIZWlnaHRVbml0KEIpe3RoaXMuI249Qn0jbz0oR3QodGhpcyxBKSxHdCh0aGlzLEMsITEpKTtnZXQgcnRsKCl7cmV0dXJuIHRoaXMuI299c2V0IHJ0bChCKXt0aGlzLiNvPUJ9I2w9KEd0KHRoaXMseiksR3QodGhpcyxULCExKSk7Z2V0IHNob3dHcmlkTGluZXMoKXtyZXR1cm4gdGhpcy4jbH1zZXQgc2hvd0dyaWRMaW5lcyhCKXt0aGlzLiNsPUJ9I2M9KEd0KHRoaXMsJCksR3QodGhpcyxSLHZvaWQgMCkpO2dldCBsYXlvdXRzKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGxheW91dHMoQil7dGhpcy4jYz1CfSNkPShHdCh0aGlzLFUpLEd0KHRoaXMsaiwiYmFzZSIpKTtnZXQgYWN0aXZlQnJlYWtwb2ludCgpe3JldHVybiB0aGlzLiNkfXNldCBhY3RpdmVCcmVha3BvaW50KEIpe3RoaXMuI2Q9Qn0jcD0oR3QodGhpcyxtZSksR3QodGhpcyxILG51bGwpKTtnZXQgcGxhY2Vob2xkZXJQb3NpdGlvbigpe3JldHVybiB0aGlzLiNwfXNldCBwbGFjZWhvbGRlclBvc2l0aW9uKEIpe3RoaXMuI3A9Qn0jaD0oR3QodGhpcyxjZSksR3QodGhpcyxXLG51bGwpKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNofXNldCBtZXRyaWNzKEIpe3RoaXMuI2g9Qn0jdT0oR3QodGhpcyxEKSxHdCh0aGlzLFosbnVsbCkpO2dldCByZXNvbHZlZE1hcmdpbnMoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcmVzb2x2ZWRNYXJnaW5zKEIpe3RoaXMuI3U9Qn0jZj0oR3QodGhpcyxZKSxHdCh0aGlzLGdlLG51bGwpKTtnZXQgcHJldmlld1dpZGdldHMoKXtyZXR1cm4gdGhpcy4jZn1zZXQgcHJldmlld1dpZGdldHMoQil7dGhpcy4jZj1CfWNvbnRhaW5lckJvdW5kcz0oR3QodGhpcyxiZSksbnVsbCk7ZHJhZ1N0YXRlPW51bGw7cmVzaXplU3RhdGU9bnVsbDtyZXNpemVPYnNlcnZlcjtpbnRlcmFjdGlvbkFjdGl2ZT0hMTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jb21wdXRlTWV0cmljcygpLHRoaXMub2JzZXJ2ZVJlc2l6ZSgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmRpc2Nvbm5lY3RSZXNpemVPYnNlcnZlcigpLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX11cGRhdGVkKEIpeyhCLmhhcygibWFyZ2luIil8fEIuaGFzKCJjb2x1bW5zIil8fEIuaGFzKCJjZWxsSGVpZ2h0Iil8fEIuaGFzKCJjZWxsSGVpZ2h0VW5pdCIpKSYmdGhpcy5jb21wdXRlTWV0cmljcygpLEIuaGFzKCJ3aWRnZXRzIikmJiF0aGlzLmludGVyYWN0aW9uQWN0aXZlJiZ0aGlzLm5vdGlmeUxheW91dENoYW5nZSgpfXJlbmRlcigpe2xldCBCPXRoaXMud2lkZ2V0cztpZihCLmxlbmd0aD09PTApcmV0dXJuIHdgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bGF5b3V0R3JpZCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgPGRpdj5ObyB3aWRnZXRzIGNvbmZpZ3VyZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+QWRkIHdpZGdldHMgdG8gcG9wdWxhdGUgdGhlIGRhc2hib2FyZDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgO2xldCBQPXRoaXMuZW5zdXJlTWV0cmljcygpLEs9dGhpcy5yZXNvbHZlZE1hcmdpbnM/P1BWKHRoaXMubWFyZ2luKSxmZT1QLmNlbGxIZWlnaHRQeCxkZT10aGlzLnByZXZpZXdXaWRnZXRzPz90aGlzLndpZGdldHMsX2U9dGJ0KGRlLEssZmUpLHBlPXRoaXMucHJldmlld1dpZGdldHM/bmV3IE1hcCh0aGlzLnByZXZpZXdXaWRnZXRzLm1hcCh0ZT0+W3RlLmlkLHRlXSkpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyIiBzdHlsZT0iaGVpZ2h0OiAke19lfXB4OyI+CiAgICAgICAgJHt0aGlzLnNob3dHcmlkTGluZXM/dGhpcy5yZW5kZXJHcmlkTGluZXMoUCxfZSk6bnVsbH0KICAgICAgICAke0IubWFwKHRlPT50aGlzLnJlbmRlcldpZGdldCh0ZSxQLEsscGUpKX0KICAgICAgICAke3RoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj90aGlzLnJlbmRlclBsYWNlaG9sZGVyKFAsSyk6bnVsbH0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckdyaWRMaW5lcyhCLFApe2xldCBLPVtdLGZlPVtdLGRlPUIuY2VsbFdpZHRoUHgrQi5tYXJnaW5Ib3Jpem9udGFsUHgsX2U9Qi5jZWxsSGVpZ2h0UHgrQi5tYXJnaW5WZXJ0aWNhbFB4O2ZvcihsZXQgdGU9MDt0ZTw9dGhpcy5jb2x1bW5zO3RlKyspe2xldCB6ZT10ZSpkZStCLm1hcmdpbkhvcml6b250YWxQeCxGZT10aGlzLnB4VG9QZXJjZW50KHplLEIuY29udGFpbmVyV2lkdGgpO0sucHVzaCh3YDxkaXYgY2xhc3M9ImdyaWQtbGluZS12ZXJ0aWNhbCIgc3R5bGU9ImxlZnQ6ICR7RmV9JTsiPjwvZGl2PmApfWxldCBwZT1NYXRoLmNlaWwoUC9fZSk7Zm9yKGxldCB0ZT0wO3RlPD1wZTt0ZSsrKXtsZXQgemU9dGUqX2U7ZmUucHVzaCh3YDxkaXYgY2xhc3M9ImdyaWQtbGluZS1ob3Jpem9udGFsIiBzdHlsZT0idG9wOiAke3plfXB4OyI+PC9kaXY+YCl9cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGluZXMiPgogICAgICAgICR7S30KICAgICAgICAke2ZlfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KEIsUCxLLGZlKXtsZXQgZGU9dGhpcy5kcmFnU3RhdGU/LndpZGdldElkPT09Qi5pZCxfZT10aGlzLnJlc2l6ZVN0YXRlPy53aWRnZXRJZD09PUIuaWQscGU9Qi5sb2NrZWR8fCF0aGlzLmVkaXRhYmxlLHRlPWZlPy5nZXQoQi5pZCk/P251bGwsemU9ZGU/Qjp0ZT8/QixGZT10aGlzLmNvbXB1dGVXaWRnZXRSZWN0KHplLFAsSyksV2U9dGhpcy5ydGw/InJpZ2h0IjoibGVmdCIseWU9dGhpcy5weFRvUGVyY2VudChGZS5sZWZ0LFAuY29udGFpbmVyV2lkdGgpLGVlPXRoaXMucHhUb1BlcmNlbnQoRmUud2lkdGgsUC5jb250YWluZXJXaWR0aCksYWU9IiI7aWYoZGUmJnRoaXMuZHJhZ1N0YXRlPy5jdXJyZW50UG9pbnRlcil7bGV0IHZlPXRoaXMuZHJhZ1N0YXRlLmN1cnJlbnRQb2ludGVyLFBlPXRoaXMuY29udGFpbmVyQm91bmRzPz90aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFZlPXZlLmNsaWVudFgtUGUubGVmdC10aGlzLmRyYWdTdGF0ZS5vZmZzZXRYLUZlLmxlZnQseHQ9dmUuY2xpZW50WS1QZS50b3AtdGhpcy5kcmFnU3RhdGUub2Zmc2V0WS1GZS50b3A7YWU9YHRyYW5zZm9ybTogdHJhbnNsYXRlKCR7VmV9cHgsICR7eHR9cHgpO2B9cmV0dXJuIHdgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iZ3JpZC13aWRnZXQgJHtkZT8iZHJhZ2dpbmciOiIifSAke19lPyJyZXNpemluZyI6IiJ9IgogICAgICAgIHN0eWxlPSIKICAgICAgICAgICR7V2V9OiAke3llfSU7CiAgICAgICAgICB0b3A6ICR7RmUudG9wfXB4OwogICAgICAgICAgd2lkdGg6ICR7ZWV9JTsKICAgICAgICAgIGhlaWdodDogJHtGZS5oZWlnaHR9cHg7CiAgICAgICAgICAke2FlfQogICAgICAgICIKICAgICAgICBkYXRhLXdpZGdldC1pZD0ke0IuaWR9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtY29udGVudCI+CiAgICAgICAgICAke0IudGl0bGU/d2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9IndpZGdldC1oZWFkZXIgJHtwZT8ibG9ja2VkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0keyFwZSYmIUIubm9Nb3ZlP3ZlPT50aGlzLnN0YXJ0RHJhZyh2ZSxCKTpudWxsfQogICAgICAgICAgICAgICAgICBAY29udGV4dG1lbnU9JHt2ZT0+dGhpcy5oYW5kbGVXaWRnZXRDb250ZXh0TWVudSh2ZSxCKX0KICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9JHshcGUmJiFCLm5vTW92ZT8wOi0xfQogICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke3ZlPT50aGlzLmhhbmRsZUhlYWRlcktleWRvd24odmUsQil9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7Qi5pY29uP3dgPGRlZXMtaWNvbiAuaWNvbj0ke0IuaWNvbn0+PC9kZWVzLWljb24+YDpudWxsfQogICAgICAgICAgICAgICAgICAke0IudGl0bGV9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOm51bGx9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXQtYm9keSAke0IudGl0bGU/Imhhcy1oZWFkZXIiOiIifSI+CiAgICAgICAgICAgICR7Qi5jb250ZW50fQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAkeyFwZSYmIUIubm9SZXNpemU/d2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1lIgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHt2ZT0+dGhpcy5zdGFydFJlc2l6ZSh2ZSxCLCJlIil9CiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtcyIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7dmU9PnRoaXMuc3RhcnRSZXNpemUodmUsQiwicyIpfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLXNlIgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHt2ZT0+dGhpcy5zdGFydFJlc2l6ZSh2ZSxCLCJzZSIpfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgIGA6bnVsbH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclBsYWNlaG9sZGVyKEIsUCl7aWYoIXRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbilyZXR1cm4gd2BgO2xldCBLPXRoaXMuY29tcHV0ZVdpZGdldFJlY3QodGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uLEIsUCksZmU9dGhpcy5ydGw/InJpZ2h0IjoibGVmdCIsZGU9dGhpcy5weFRvUGVyY2VudChLLmxlZnQsQi5jb250YWluZXJXaWR0aCksX2U9dGhpcy5weFRvUGVyY2VudChLLndpZHRoLEIuY29udGFpbmVyV2lkdGgpO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImdyaWQtd2lkZ2V0IHBsYWNlaG9sZGVyIgogICAgICAgIHN0eWxlPSIKICAgICAgICAgICR7ZmV9OiAke2RlfSU7CiAgICAgICAgICB0b3A6ICR7Sy50b3B9cHg7CiAgICAgICAgICB3aWR0aDogJHtfZX0lOwogICAgICAgICAgaGVpZ2h0OiAke0suaGVpZ2h0fXB4OwogICAgICAgICIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXJ0RHJhZyhCLFApe2lmKCF0aGlzLmVkaXRhYmxlfHxQLm5vTW92ZXx8UC5sb2NrZWQpcmV0dXJuO0IucHJldmVudERlZmF1bHQoKSxCLnN0b3BQcm9wYWdhdGlvbigpO2xldCBLPUIuY3VycmVudFRhcmdldC5jbG9zZXN0KCIuZ3JpZC13aWRnZXQiKTtpZighSylyZXR1cm47bGV0IGZlPUsuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLmRyYWdTdGF0ZT17d2lkZ2V0SWQ6UC5pZCxwb2ludGVySWQ6Qi5wb2ludGVySWQsb2Zmc2V0WDpCLmNsaWVudFgtZmUubGVmdCxvZmZzZXRZOkIuY2xpZW50WS1mZS50b3Asc3RhcnQ6e2lkOlAuaWQseDpQLngseTpQLnksdzpQLncsaDpQLmh9LHByZXZpb3VzUG9zaXRpb246e2lkOlAuaWQseDpQLngseTpQLnksdzpQLncsaDpQLmh9LGN1cnJlbnRQb2ludGVyOntjbGllbnRYOkIuY2xpZW50WCxjbGllbnRZOkIuY2xpZW50WX0sbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLEIuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShCLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlRHJhZ01vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVEcmFnRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOlAuaWQseDpQLngseTpQLnksdzpQLncsaDpQLmh9fWhhbmRsZURyYWdNb3ZlPUI9PntpZighdGhpcy5kcmFnU3RhdGUpcmV0dXJuO2xldCBQPXRoaXMuZW5zdXJlTWV0cmljcygpLEs9dGhpcy53aWRnZXRzLGZlPUsuZmluZCh0ZT0+dGUuaWQ9PT10aGlzLmRyYWdTdGF0ZS53aWRnZXRJZCk7aWYoIWZlKXJldHVybjtCLnByZXZlbnREZWZhdWx0KCk7bGV0IGRlPXRoaXMuZHJhZ1N0YXRlLnByZXZpb3VzUG9zaXRpb24sX2U9c2J0KHtwb2ludGVyOntjbGllbnRYOkIuY2xpZW50WCxjbGllbnRZOkIuY2xpZW50WX0sY29udGFpbmVyUmVjdDp0aGlzLmNvbnRhaW5lckJvdW5kcz8/dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtZXRyaWNzOlAsY29sdW1uczp0aGlzLmNvbHVtbnMsd2lkZ2V0OmZlLHJ0bDp0aGlzLnJ0bCxkcmFnT2Zmc2V0WDp0aGlzLmRyYWdTdGF0ZS5vZmZzZXRYLGRyYWdPZmZzZXRZOnRoaXMuZHJhZ1N0YXRlLm9mZnNldFl9KSxwZT1nbyhLLGZlLmlkLHt4Ol9lLngseTpfZS55fSx0aGlzLmNvbHVtbnMsZGUpO2lmKHBlKXtsZXQgdGU9cGUud2lkZ2V0cy5maW5kKEZlPT5GZS5pZD09PWZlLmlkKTt0aGlzLmRyYWdTdGF0ZT17Li4udGhpcy5kcmFnU3RhdGUsY3VycmVudFBvaW50ZXI6e2NsaWVudFg6Qi5jbGllbnRYLGNsaWVudFk6Qi5jbGllbnRZfSxsYXN0UGxhY2VtZW50OnBlLHByZXZpb3VzUG9zaXRpb246dGU/e2lkOnRlLmlkLHg6dGUueCx5OnRlLnksdzp0ZS53LGg6dGUuaH06e2lkOmZlLmlkLHg6X2UueCx5Ol9lLnksdzpmZS53LGg6ZmUuaH19LHRoaXMucHJldmlld1dpZGdldHM9cGUud2lkZ2V0cztsZXQgemU9cGUud2lkZ2V0cy5maW5kKEZlPT5GZS5pZD09PWZlLmlkKTt6ZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOnplLmlkLHg6emUueCx5OnplLnksdzp6ZS53LGg6emUuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpmZS5pZCx4Ol9lLngseTpfZS55LHc6ZmUudyxoOmZlLmh9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfTtoYW5kbGVEcmFnRW5kPUI9PntsZXQgUD10aGlzLmRyYWdTdGF0ZTtpZighUHx8Qi5wb2ludGVySWQhPT1QLnBvaW50ZXJJZClyZXR1cm47bGV0IEs9dGhpcy53aWRnZXRzO3RoaXMucHJldmlld1dpZGdldHM9bnVsbDtsZXQgZmU9dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPz9QLnN0YXJ0LGRlPWdvKEssUC53aWRnZXRJZCx7eDpmZS54LHk6ZmUueX0sdGhpcy5jb2x1bW5zLFAucHJldmlvdXNQb3NpdGlvbik7aWYoZGUpe2xldCBfZT1kZS53aWRnZXRzLmZpbmQocGU9PnBlLmlkPT09UC53aWRnZXRJZCk7X2UmJihkZS53aWRnZXRzLnNvbWUodGU9PnRlLmlkPT09UC53aWRnZXRJZD8hMTpfZS54PHRlLngrdGUudyYmX2UueCtfZS53PnRlLngmJl9lLnk8dGUueSt0ZS5oJiZfZS55K19lLmg+dGUueSk/dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAodGU9PnRlLmlkPT09UC53aWRnZXRJZD97Li4udGUseDpQLnN0YXJ0LngseTpQLnN0YXJ0Lnl9OnRlKTp0aGlzLmNvbW1pdFBsYWNlbWVudChkZSxQLndpZGdldElkLCJ3aWRnZXQtbW92ZSIpKX1lbHNlIHRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKF9lPT5fZS5pZD09PVAud2lkZ2V0SWQ/ey4uLl9lLHg6UC5zdGFydC54LHk6UC5zdGFydC55fTpfZSk7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnU3RhdGU9bnVsbCx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSExLHRoaXMucmVsZWFzZVBvaW50ZXJFdmVudHMoKX07c3RhcnRSZXNpemUoQixQLEspeyF0aGlzLmVkaXRhYmxlfHxQLm5vUmVzaXplfHxQLmxvY2tlZHx8KEIucHJldmVudERlZmF1bHQoKSxCLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZW5zdXJlTWV0cmljcygpLHRoaXMucmVzaXplU3RhdGU9e3dpZGdldElkOlAuaWQscG9pbnRlcklkOkIucG9pbnRlcklkLGhhbmRsZXI6SyxzdGFydFBvaW50ZXI6e2NsaWVudFg6Qi5jbGllbnRYLGNsaWVudFk6Qi5jbGllbnRZfSxzdGFydDp7aWQ6UC5pZCx4OlAueCx5OlAueSx3OlAudyxoOlAuaH0sc3RhcnRXaWR0aDpQLncsc3RhcnRIZWlnaHQ6UC5oLGxhc3RQbGFjZW1lbnQ6bnVsbH0sdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZT0hMCxCLmN1cnJlbnRUYXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoQi5wb2ludGVySWQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZVJlc2l6ZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVSZXNpemVFbmQpLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6UC5pZCx4OlAueCx5OlAueSx3OlAudyxoOlAuaH0pfWhhbmRsZVJlc2l6ZU1vdmU9Qj0+e2lmKCF0aGlzLnJlc2l6ZVN0YXRlKXJldHVybjtsZXQgUD10aGlzLmVuc3VyZU1ldHJpY3MoKSxLPXRoaXMud2lkZ2V0cyxmZT1LLmZpbmQocGU9PnBlLmlkPT09dGhpcy5yZXNpemVTdGF0ZS53aWRnZXRJZCk7aWYoIWZlKXJldHVybjtCLnByZXZlbnREZWZhdWx0KCk7bGV0IGRlPW5idCh7cG9pbnRlcjp7Y2xpZW50WDpCLmNsaWVudFgsY2xpZW50WTpCLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpQLHN0YXJ0V2lkdGg6dGhpcy5yZXNpemVTdGF0ZS5zdGFydFdpZHRoLHN0YXJ0SGVpZ2h0OnRoaXMucmVzaXplU3RhdGUuc3RhcnRIZWlnaHQsc3RhcnRQb2ludGVyOnRoaXMucmVzaXplU3RhdGUuc3RhcnRQb2ludGVyLGhhbmRsZXI6dGhpcy5yZXNpemVTdGF0ZS5oYW5kbGVyLHdpZGdldDpmZSxjb2x1bW5zOnRoaXMuY29sdW1uc30pLF9lPWdvKEssZmUuaWQse3g6ZmUueCx5OmZlLnksdzpkZS53aWR0aCxoOmRlLmhlaWdodH0sdGhpcy5jb2x1bW5zLHRoaXMucmVzaXplU3RhdGUuc3RhcnQpO2lmKF9lKXt0aGlzLnJlc2l6ZVN0YXRlPXsuLi50aGlzLnJlc2l6ZVN0YXRlLGxhc3RQbGFjZW1lbnQ6X2V9LHRoaXMucHJldmlld1dpZGdldHM9X2Uud2lkZ2V0cztsZXQgcGU9X2Uud2lkZ2V0cy5maW5kKHRlPT50ZS5pZD09PWZlLmlkKTtwZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOnBlLmlkLHg6cGUueCx5OnBlLnksdzpwZS53LGg6cGUuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpmZS5pZCx4OmZlLngseTpmZS55LHc6ZGUud2lkdGgsaDpkZS5oZWlnaHR9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfTtoYW5kbGVSZXNpemVFbmQ9Qj0+e2xldCBQPXRoaXMucmVzaXplU3RhdGU7aWYoIVB8fEIucG9pbnRlcklkIT09UC5wb2ludGVySWQpcmV0dXJuO2xldCBLPXRoaXMud2lkZ2V0czt0aGlzLnByZXZpZXdXaWRnZXRzPW51bGw7bGV0IGZlPVAubGFzdFBsYWNlbWVudD8/Z28oSyxQLndpZGdldElkLHt4OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueD8/UC5zdGFydC54LHk6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy55Pz9QLnN0YXJ0Lnksdzp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lnc/P1Auc3RhcnQudyxoOnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8uaD8/UC5zdGFydC5ofSx0aGlzLmNvbHVtbnMsUC5zdGFydCk7ZmU/dGhpcy5jb21taXRQbGFjZW1lbnQoZmUsUC53aWRnZXRJZCwid2lkZ2V0LXJlc2l6ZSIpOnRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKGRlPT5kZS5pZD09PVAud2lkZ2V0SWQ/ey4uLmRlLHc6UC5zdGFydC53LGg6UC5zdGFydC5ofTpkZSksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5yZXNpemVTdGF0ZT1udWxsLHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITEsdGhpcy5yZWxlYXNlUG9pbnRlckV2ZW50cygpfTtoYW5kbGVIZWFkZXJLZXlkb3duKEIsUCl7aWYoIXRoaXMuZWRpdGFibGV8fFAubm9Nb3ZlfHxQLmxvY2tlZClyZXR1cm47bGV0IEs9Qi5rZXksZmU9Qi5zaGlmdEtleSxkZT1udWxsO2lmKGZlJiZbIkFycm93TGVmdCIsIkFycm93UmlnaHQiLCJBcnJvd1VwIiwiQXJyb3dEb3duIl0uaW5jbHVkZXMoSykpe0IucHJldmVudERlZmF1bHQoKTtsZXQgRmU9Sz09PSJBcnJvd1JpZ2h0Inx8Sz09PSJBcnJvd0Rvd24iPzE6LTE7aWYoSz09PSJBcnJvd0xlZnQifHxLPT09IkFycm93UmlnaHQiKXtsZXQgV2U9UC5tYXhXPz90aGlzLmNvbHVtbnMtUC54LHllPU1hdGgubWF4KFAubWluVz8/MSxNYXRoLm1pbihXZSxQLncrRmUpKTtkZT1nbyh0aGlzLndpZGdldHMsUC5pZCx7eDpQLngseTpQLnksdzp5ZSxoOlAuaH0sdGhpcy5jb2x1bW5zKX1lbHNle2xldCBXZT1QLm1heEg/P051bWJlci5QT1NJVElWRV9JTkZJTklUWSx5ZT1NYXRoLm1heChQLm1pbkg/PzEsTWF0aC5taW4oV2UsUC5oK0ZlKSk7ZGU9Z28odGhpcy53aWRnZXRzLFAuaWQse3g6UC54LHk6UC55LHc6UC53LGg6eWV9LHRoaXMuY29sdW1ucyl9ZGUmJnRoaXMuY29tbWl0UGxhY2VtZW50KGRlLFAuaWQsIndpZGdldC1yZXNpemUiKTtyZXR1cm59bGV0IHBlPXtBcnJvd0xlZnQ6e2R4Oi0xLGR5OjB9LEFycm93UmlnaHQ6e2R4OjEsZHk6MH0sQXJyb3dVcDp7ZHg6MCxkeTotMX0sQXJyb3dEb3duOntkeDowLGR5OjF9fVtLXTtpZighcGUpcmV0dXJuO0IucHJldmVudERlZmF1bHQoKTtsZXQgdGU9TWF0aC5tYXgoMCxNYXRoLm1pbih0aGlzLmNvbHVtbnMtUC53LFAueCtwZS5keCkpLHplPU1hdGgubWF4KDAsUC55K3BlLmR5KTtkZT1nbyh0aGlzLndpZGdldHMsUC5pZCx7eDp0ZSx5OnplfSx0aGlzLmNvbHVtbnMpLGRlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudChkZSxQLmlkLCJ3aWRnZXQtbW92ZSIpfWhhbmRsZVdpZGdldENvbnRleHRNZW51KEIsUCl7Qi5wcmV2ZW50RGVmYXVsdCgpLEIuc3RvcFByb3BhZ2F0aW9uKCksbGJ0KHt3aWRnZXQ6UCxob3N0OnRoaXMsZXZlbnQ6Qn0pfWNvbW1pdFBsYWNlbWVudChCLFAsSyl7dGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMud2lkZ2V0cz1CLndpZGdldHM7bGV0IGZlPXRoaXMud2lkZ2V0cy5maW5kKGRlPT5kZS5pZD09PVApO2ZlJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KEsse2RldGFpbDp7d2lkZ2V0OmZlLGRpc3BsYWNlZDpCLm1vdmVkV2lkZ2V0cy5maWx0ZXIoZGU9PmRlIT09UCksc3dhcHBlZFdpdGg6Qi5zd2FwcGVkV2l0aH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1yZW1vdmVXaWRnZXQoQil7bGV0IFA9dGhpcy53aWRnZXRzLmZpbmQoSz0+Sy5pZD09PUIpO1AmJih0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihLPT5LLmlkIT09QiksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgid2lkZ2V0LXJlbW92ZSIse2RldGFpbDp7d2lkZ2V0OlB9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfXVwZGF0ZVdpZGdldChCLFApe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKEs9PksuaWQ9PT1CP3suLi5LLC4uLlB9OkspfWdldExheW91dCgpe3JldHVybiB0aGlzLndpZGdldHMubWFwKCh7aWQ6Qix4OlAseTpLLHc6ZmUsaDpkZX0pPT4oe2lkOkIseDpQLHk6Syx3OmZlLGg6ZGV9KSl9c2V0TGF5b3V0KEIpe3RoaXMud2lkZ2V0cz1pYnQodGhpcy53aWRnZXRzLEIpfWxvY2tHcmlkKCl7dGhpcy5lZGl0YWJsZT0hMX11bmxvY2tHcmlkKCl7dGhpcy5lZGl0YWJsZT0hMH1hZGRXaWRnZXQoQixQPSExKXtsZXQgSz17Li4uQn07aWYoUHx8Sy5hdXRvUG9zaXRpb24pe2xldCBmZT1JVih0aGlzLndpZGdldHMsSy53LEsuaCx0aGlzLmNvbHVtbnMpO0sueD1mZS54LEsueT1mZS55fXRoaXMud2lkZ2V0cz1bLi4udGhpcy53aWRnZXRzLEtdfWNvbXBhY3QoQj0idmVydGljYWwiKXtsZXQgUD10aGlzLndpZGdldHMubWFwKEs9Pih7Li4uS30pKTthYnQoUCxCKSx0aGlzLndpZGdldHM9UH1hcHBseUJyZWFrcG9pbnRMYXlvdXQoQil7dGhpcy5hY3RpdmVCcmVha3BvaW50PUI7bGV0IFA9dGhpcy5sYXlvdXRzPy5bQl07UCYmdGhpcy5zZXRMYXlvdXQoUCl9bm90aWZ5TGF5b3V0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibGF5b3V0LWNoYW5nZSIse2RldGFpbDp7bGF5b3V0OnRoaXMuZ2V0TGF5b3V0KCl9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9ZW5zdXJlTWV0cmljcygpe3JldHVybiB0aGlzLm1ldHJpY3N8fHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm1ldHJpY3N9Y29tcHV0ZU1ldHJpY3MoKXtpZighdGhpcy5pc0Nvbm5lY3RlZClyZXR1cm47bGV0IEI9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmNvbnRhaW5lckJvdW5kcz1CO2xldCBQPVBWKHRoaXMubWFyZ2luKTt0aGlzLnJlc29sdmVkTWFyZ2lucz1QLHRoaXMubWV0cmljcz1lYnQoQi53aWR0aCx0aGlzLmNvbHVtbnMsUCx0aGlzLmNlbGxIZWlnaHQsdGhpcy5jZWxsSGVpZ2h0VW5pdCl9b2JzZXJ2ZVJlc2l6ZSgpe3RoaXMucmVzaXplT2JzZXJ2ZXJ8fCh0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuY29tcHV0ZU1ldHJpY3MoKX0pLHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKSl9ZGlzY29ubmVjdFJlc2l6ZU9ic2VydmVyKCl7dGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwfXJlbGVhc2VQb2ludGVyRXZlbnRzKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlRHJhZ01vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVEcmFnRW5kKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVSZXNpemVNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlUmVzaXplRW5kKX1weFRvUGVyY2VudChCLFApe3JldHVybiBQP051bWJlcigoQi9QKjEwMCkudG9GaXhlZCg0KSk6MH1jb21wdXRlV2lkZ2V0UmVjdChCLFAsSyl7bGV0IGZlPVAuY2VsbFdpZHRoUHgsZGU9UC5jZWxsSGVpZ2h0UHgsX2U9Qi54KihmZStLLmhvcml6b250YWwpK0suaG9yaXpvbnRhbCxwZT1CLnkqKGRlK0sudmVydGljYWwpK0sudmVydGljYWwsdGU9Qi53KmZlK01hdGgubWF4KDAsQi53LTEpKksuaG9yaXpvbnRhbCx6ZT1CLmgqZGUrTWF0aC5tYXgoMCxCLmgtMSkqSy52ZXJ0aWNhbDtyZXR1cm57bGVmdDpfZSx0b3A6cGUsd2lkdGg6dGUsaGVpZ2h0OnplfX1zdGF0aWN7R3QoaSxhKX19O3JldHVybiAkZT1pfSkoKX0pO3ZhciBoYnQ9YigoKT0+e3BidCgpfSk7ZnVuY3Rpb24gdWJ0KCl7cmV0dXJuIHdgCiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIxIj5UaGlzIGlzIGEgSDEgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMiI+VGhpcyBpcyBhIEgyIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjMiPlRoaXMgaXMgYSBIMyBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI0Ij5UaGlzIGlzIGEgSDQgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNSI+VGhpcyBpcyBhIEg1IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjYiPlRoaXMgaXMgYSBINiBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJociI+VGhpcyBpcyBhbiBociBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+VGhpcyBpcyBhbiBociBzbWFsbCBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgYH12YXIgZmJ0PWIoKCk9Pnt1ZSgpfSk7dmFyIG1idCxOVixnYnQsYmJ0PWIoKCk9Pnt1ZSgpO2ZidCgpO2NhKCk7cWUoKTttYnQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxOVj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sZ2J0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1oZWFkaW5nIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sbWJ0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGV2ZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnA9PiJsZXZlbCJpbiBwLGdldDpwPT5wLmxldmVsLHNldDoocCxsKT0+e3AubGV2ZWw9bH19LG1ldGFkYXRhOmN9LG4sbyksbWJ0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZD1pPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89dWJ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0Il07I2U9TlYodGhpcyxuLCIxIik7Z2V0IGxldmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxldmVsKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogSGVhZGluZyBzdHlsZXMgKi8KICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgICAgICAgbWFyZ2luOiAxNnB4IDAgOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICBoMSB7IGZvbnQtc2l6ZTogMzJweDsgZm9udC1mYW1pbHk6ICR7RDl0fTsgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07fQogICAgICBoMiB7IGZvbnQtc2l6ZTogMjhweDsgfQogICAgICBoMyB7IGZvbnQtc2l6ZTogMjRweDsgfQogICAgICBoNCB7IGZvbnQtc2l6ZTogMjBweDsgfQogICAgICBoNSB7IGZvbnQtc2l6ZTogMTZweDsgfQogICAgICBoNiB7IGZvbnQtc2l6ZTogMTRweDsgfQogICAgICAvKiBIb3Jpem9udGFsIHJ1bGUgc3R5bGUgaGVhZGluZyAqLwogICAgICAuaGVhZGluZy1ociB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIC8qIEZhZGUgbGluZXMgdG93YXJkIGFuZCBhd2F5IGZyb20gdGV4dCBmb3IgaHIgc3R5bGUgKi8KICAgICAgLmhlYWRpbmctaHI6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICAvKiBmYWRlIGluIHRvd2FyZCBjZW50ZXIgKi8KICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgI2NjYykiLCJsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCAjMzMzKSIpfTsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgZmxleDogMTsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICAvKiBmYWRlIG91dCBhd2F5IGZyb20gY2VudGVyICovCiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2NjYywgdHJhbnNwYXJlbnQpIiwibGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMzMzLCB0cmFuc3BhcmVudCkiKX07CiAgICAgICAgbWFyZ2luOiAwIDhweDsKICAgICAgfQogICAgICAvKiBTbWFsbCBociB2YXJpYW50IHdpdGggcmVkdWNlZCBtYXJnaW5zICovCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGwgewogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmJlZm9yZSwKICAgICAgLmhlYWRpbmctaHIuaGVhZGluZy1oci1zbWFsbDo6YWZ0ZXIgewogICAgICAgIG1hcmdpbjogMCA4cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3N3aXRjaCh0aGlzLmxldmVsKXtjYXNlIjEiOnJldHVybiB3YDxoMT48c2xvdD48L3Nsb3Q+PC9oMT5gO2Nhc2UiMiI6cmV0dXJuIHdgPGgyPjxzbG90Pjwvc2xvdD48L2gyPmA7Y2FzZSIzIjpyZXR1cm4gd2A8aDM+PHNsb3Q+PC9zbG90PjwvaDM+YDtjYXNlIjQiOnJldHVybiB3YDxoND48c2xvdD48L3Nsb3Q+PC9oND5gO2Nhc2UiNSI6cmV0dXJuIHdgPGg1PjxzbG90Pjwvc2xvdD48L2g1PmA7Y2FzZSI2IjpyZXR1cm4gd2A8aDY+PHNsb3Q+PC9zbG90PjwvaDY+YDtjYXNlImhyIjpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtjYXNlImhyLXNtYWxsIjpyZXR1cm4gd2A8ZGl2IGNsYXNzPSJoZWFkaW5nLWhyIGhlYWRpbmctaHItc21hbGwiPjxzbG90Pjwvc2xvdD48L2Rpdj5gO2RlZmF1bHQ6cmV0dXJuIHdgPGgxPjxzbG90Pjwvc2xvdD48L2gxPmB9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxOVih0aGlzLG8pfXN0YXRpY3tOVihpLGEpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgdmJ0PWIoKCk9PntiYnQoKX0pO3ZhciB5YnQ9YigoKT0+e1RsKCl9KTt2YXIgeGJ0LHdidD1iKCgpPT57dWUoKTt4YnQ9KCk9PndgCiAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNnB4OyI+CiAgICA8IS0tIFNtYWxsIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjUgcGFnZXMsIHN0YXJ0aW5nIGF0IDE6PC9zcGFuPgogICAgICA8ZGVlcy1wYWdpbmF0aW9uCiAgICAgICAgLnRvdGFsPSR7NX0KICAgICAgICAucGFnZT0kezF9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7dD0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIsdC5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgoKICAgIDwhLS0gTGFyZ2VyIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjE1IHBhZ2VzLCBzdGFydGluZyBhdCA4Ojwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezE1fQogICAgICAgIC5wYWdlPSR7OH0KICAgICAgICBAcGFnZS1jaGFuZ2U9JHt0PT5jb25zb2xlLmxvZygiUGFnZSBjaGFuZ2VkIHRvIix0LmRldGFpbC5wYWdlKX0KICAgICAgPjwvZGVlcy1wYWdpbmF0aW9uPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgRlYsRzgsTWJ0LHpidD1iKCgpPT57dWUoKTt3YnQoKTtxZSgpO0ZWPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sRzg9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LE1idD0oKCk9PntsZXQgdD1baGUoImRlZXMtcGFnaW5hdGlvbiIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOk51bWJlcixyZWZsZWN0OiEwfSldLGQ9W0koe3R5cGU6TnVtYmVyLHJlZmxlY3Q6ITB9KV0sRlYodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4icGFnZSJpbiBnLGdldDpnPT5nLnBhZ2Usc2V0OihnLHkpPT57Zy5wYWdlPXl9fSxtZXRhZGF0YTpmfSxuLG8pLEZWKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidG90YWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJ0b3RhbCJpbiBnLGdldDpnPT5nLnRvdGFsLHNldDooZyx5KT0+e2cudG90YWw9eX19LG1ldGFkYXRhOmZ9LGMscCksRlYobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Zn0sbnVsbCxhKSxsPWk9ZS52YWx1ZSxmJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX1zdGF0aWMgZGVtbz14YnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1HOCh0aGlzLG4sMSk7Z2V0IHBhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGFnZShmKXt0aGlzLiNlPWZ9I3Q9KEc4KHRoaXMsbyksRzgodGhpcyxjLDEpKTtnZXQgdG90YWwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdG90YWwoZil7dGhpcy4jdD1mfXN0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG1hcmdpbjogMCAycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZSIsIiM0NDQiKX07CiAgICAgIH0KICAgICAgYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYWFhIiwiIzY2NiIpfTsKICAgICAgfQogICAgICBidXR0b24uY3VycmVudCB7CiAgICAgICAgYmFja2dyb3VuZDogIzAwNTBiOTsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KICAgICAgc3Bhbi5lbGxpcHNpcyB7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICBgXTtnZXQgcGFnZXMoKXtsZXQgZj1bXSxnPXRoaXMudG90YWwseT10aGlzLnBhZ2U7aWYoZzw9Nylmb3IobGV0IHY9MTt2PD1nO3YrKylmLnB1c2godik7ZWxzZXtmLnB1c2goMSkseT40JiZmLnB1c2goIi4uLiIpO2xldCB2PU1hdGgubWF4KDIseS0yKSxtPU1hdGgubWluKGctMSx5KzIpO2ZvcihsZXQgeD12O3g8PW07eCsrKWYucHVzaCh4KTt5PGctMyYmZi5wdXNoKCIuLi4iKSxmLnB1c2goZyl9cmV0dXJuIGZ9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZS0xKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U8PTF9CiAgICAgICAgYXJpYS1sYWJlbD0iUHJldmlvdXMgcGFnZSIKICAgICAgPgogICAgICAgIOKAuQogICAgICA8L2J1dHRvbj4KICAgICAgJHt0aGlzLnBhZ2VzLm1hcChmPT5mPT09Ii4uLiI/d2A8c3BhbiBjbGFzcz0iZWxsaXBzaXMiPuKApjwvc3Bhbj5gOndgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9IiR7Zj09PXRoaXMucGFnZT8iY3VycmVudCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZShmKX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke2Y9PT10aGlzLnBhZ2V9CiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJQYWdlICR7Zn0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtmfQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgPGJ1dHRvbgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UodGhpcy5wYWdlKzEpfQogICAgICAgID9kaXNhYmxlZD0ke3RoaXMucGFnZT49dGhpcy50b3RhbH0KICAgICAgICBhcmlhLWxhYmVsPSJOZXh0IHBhZ2UiCiAgICAgID4KICAgICAgICDigLoKICAgICAgPC9idXR0b24+CiAgICBgfWNoYW5nZVBhZ2UoZil7ZjwxfHxmPnRoaXMudG90YWx8fGY9PT10aGlzLnBhZ2V8fCh0aGlzLnBhZ2U9Zix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwYWdlLWNoYW5nZSIse2RldGFpbDp7cGFnZTp0aGlzLnBhZ2V9LGJ1YmJsZXM6ITB9KSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxHOCh0aGlzLHApfXN0YXRpY3tHOChpLGEpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIga2J0PWIoKCk9Pnt6YnQoKX0pO3ZhciBTYnQ9YigoKT0+e20yKCl9KTt2YXIgQ2J0LF9idD1iKCgpPT57dWUoKTtDYnQ9KCk9PndgCiAgPGRlZXMtc3RlcHBlcgogICAgLnN0ZXBzPSR7W3t0aXRsZToiQWNjb3VudCBTZXR1cCIsY29udGVudDp3YAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImVtYWlsIiBsYWJlbD0iV29yayBFbWFpbCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJwYXNzd29yZCIgbGFiZWw9IkNyZWF0ZSBQYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmModCxlKT0+e2UucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT50LmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IlByb2ZpbGUgRGV0YWlscyIsY29udGVudDp3YAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImZpcnN0TmFtZSIgbGFiZWw9IkZpcnN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0ibGFzdE5hbWUiIGxhYmVsPSJMYXN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmModCxlKT0+e2UucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT50LmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IkNvbnRhY3QgSW5mb3JtYXRpb24iLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lIGtleT0icGhvbmUiIGxhYmVsPSJNb2JpbGUgTnVtYmVyIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJjb21wYW55IiBsYWJlbD0iQ29tcGFueSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyh0LGUpPT57ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PnQuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiVGVhbSBTaXplIixjb250ZW50OndgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0idGVhbVNpemUiCiAgICAgICAgICAgICAgbGFiZWw9IkhvdyBiaWcgaXMgeW91ciB0ZWFtPyIKICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6IjEtNSIsdmFsdWU6IjEtNSJ9LHtsYWJlbDoiNi0yMCIsdmFsdWU6IjYtMjAifSx7bGFiZWw6IjIxLTUwIix2YWx1ZToiMjEtNTAifSx7bGFiZWw6IjUxKyIsdmFsdWU6IjUxKyJ9XX0KICAgICAgICAgICAgICByZXF1aXJlZAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmModCxlKT0+e2UucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT50LmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IkdvYWxzIixjb250ZW50OndgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIGtleT0iZ29hbCIKICAgICAgICAgICAgICBsYWJlbD0iTWFpbiBvYmplY3RpdmUiCiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe2xhYmVsOiJPbmJvYXJkaW5nIix2YWx1ZToib25ib2FyZGluZyJ9LHtsYWJlbDoiQW5hbHl0aWNzIix2YWx1ZToiYW5hbHl0aWNzIn0se2xhYmVsOiJBdXRvbWF0aW9uIix2YWx1ZToiYXV0b21hdGlvbiJ9XX0KICAgICAgICAgICAgICByZXF1aXJlZAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmModCxlKT0+e2UucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT50LmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IkJyYW5kIFByZWZlcmVuY2VzIixjb250ZW50OndgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYnJhbmRDb2xvciIgbGFiZWw9IlByaW1hcnkgYnJhbmQgY29sb3IiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0idG9uZSIgbGFiZWw9IlByZWZlcnJlZCB0b25lIChlLmcuIGZyaWVuZGx5LCBmb3JtYWwpIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICBgLHZhbGlkYXRpb25GdW5jOmFzeW5jKHQsZSk9PntlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+dC5nb05leHQoKSx7b25jZTohMH0pfX0se3RpdGxlOiJJbnRlZ3JhdGlvbnMiLGNvbnRlbnQ6d2AKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICBrZXk9ImludGVncmF0aW9ucyIKICAgICAgICAgICAgICBsYWJlbD0iSW50ZWdyYXRpb25zIGluIHVzZSIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iQWRkIGludGVncmF0aW9uIgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyh0LGUpPT57ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PnQuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiUmV2aWV3ICYgTGF1bmNoIixjb250ZW50OndgCiAgICAgICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICAgICAgPHA+QWxtb3N0IHRoZXJlISBSZXZpZXcgeW91ciBzZWxlY3Rpb25zIGFuZCBsYXVuY2ggd2hlbmV2ZXIgeW91J3JlIHJlYWR5LjwvcD4KICAgICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICBgfV19CiAgPjwvZGVlcy1zdGVwcGVyPgpgfSk7dmFyIE9WLFk4LFRidCxMYnQ9YigoKT0+e3IyKCk7Z2koKTt1ZSgpO1R0KCk7X2J0KCk7cWUoKTtPVj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LFk4PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxUYnQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXN0ZXBwZXIiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpBcnJheX0pXSxkPVtJKHt0eXBlOk9iamVjdH0pXSxPVih0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0ZXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4ic3RlcHMiaW4gZyxnZXQ6Zz0+Zy5zdGVwcyxzZXQ6KGcseSk9PntnLnN0ZXBzPXl9fSxtZXRhZGF0YTpmfSxuLG8pLE9WKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRTdGVwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4ic2VsZWN0ZWRTdGVwImluIGcsZ2V0Omc9Pmcuc2VsZWN0ZWRTdGVwLHNldDooZyx5KT0+e2cuc2VsZWN0ZWRTdGVwPXl9fSxtZXRhZGF0YTpmfSxjLHApLE9WKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmZ9LG51bGwsYSksbD1pPWUudmFsdWUsZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmfSl9c3RhdGljIGRlbW89Q2J0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTGF5b3V0IiwiRm9ybSJdOyNlPVk4KHRoaXMsbixbXSk7Z2V0IHN0ZXBzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0ZXBzKGYpe3RoaXMuI2U9Zn0jdD0oWTgodGhpcyxvKSxZOCh0aGlzLGMsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkU3RlcCgpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFN0ZXAoZil7dGhpcy4jdD1mfWNvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLnN0ZXBwZXJDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnN0ZXAgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgYm94LXNoYWRvdyAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgZmlsdGVyIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpLCBib3JkZXIgMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSk7CiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBmMGYxMSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2UyZThmMCIsIiMyNzI3MjkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMGYxNzJhIiwiI2Y1ZjVmNSIpfTsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMC41NSkgc2F0dXJhdGUoMC44NSk7CiAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zdGVwLnNlbGVjdGVkIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIGZpbHRlcjogb3BhY2l0eSgxKSBzYXR1cmF0ZSgxKTsKICAgICAgICB1c2VyLXNlbGVjdDogYXV0bzsKICAgICAgfQoKICAgICAgLnN0ZXAuaGlkZGVuU3RlcCB7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDApOwogICAgICB9CgogICAgICAuc3RlcC5lbnRyYW5jZSB7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMzVzIGVhc2UsIGJveC1zaGFkb3cgMC4zNXMgZWFzZSwgZmlsdGVyIDAuMzVzIGVhc2UsIGJvcmRlciAwLjM1cyBlYXNlOwogICAgICB9CgogICAgICAuc3RlcC5lbnRyYW5jZS5oaWRkZW5TdGVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZoOwogICAgICB9CgogICAgICAuc3RlcCAuc3RlcENvdW50ZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY0NzQ4YiIsIiNhMWExYWEiKX07CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC41KSIsInJnYmEoNjMsIDYzLCA3MCwgMC40NSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC43KSIsInJnYmEoNjMsIDYzLCA3MCwgMC42KSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjayB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICBsZWZ0OiAxMnB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC45KSIsInJnYmEoNjMsIDYzLCA3MCwgMC44NSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSIsInJnYmEoMzksIDM5LCA0MiwgMC44NSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNDc1NTY5IiwiI2Q0ZDRkOCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjazpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMGYxNzJhIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKG1pLmJsdWUsbWkuYmx1ZSl9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJyZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOTUpIiwicmdiYSg2MywgNjMsIDcwLCAwLjcpIil9OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjazphY3RpdmUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzBmMTcyYSIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZShtaS5ibHVlQWN0aXZlLG1pLmJsdWVBY3RpdmUpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyMjYsIDIzMiwgMjQwLCAwLjg1KSIsInJnYmEoNjMsIDYzLCA3MCwgMC42KSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjayBzcGFuIHsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjazpob3ZlciBzcGFuIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwIC50aXRsZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmctdG9wOiA2NHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC5zdGVwIC5jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0ic3RlcHBlckNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnN0ZXBzLm1hcChmPT53YDxkaXYKICAgICAgICAgICAgICBjbGFzcz0ic3RlcCAke2Y9PT10aGlzLnNlbGVjdGVkU3RlcD8ic2VsZWN0ZWQiOm51bGx9ICR7dGhpcy5nZXRJbmRleE9mU3RlcChmKT50aGlzLmdldEluZGV4T2ZTdGVwKHRoaXMuc2VsZWN0ZWRTdGVwKT8iaGlkZGVuU3RlcCI6IiJ9ICR7dGhpcy5nZXRJbmRleE9mU3RlcChmKT09PTA/ImVudHJhbmNlIjoiIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuZ2V0SW5kZXhPZlN0ZXAoZik+MD93YDxkaXYgY2xhc3M9ImdvQmFjayIgQGNsaWNrPSR7dGhpcy5nb0JhY2t9PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSW50ZXIiPjwtPC9zcGFuPiBnbyB0byBwcmV2aW91cyBzdGVwPC9kaXY+YDoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGVwQ291bnRlciI+CiAgICAgICAgICAgICAgICBTdGVwICR7dGhpcy5zdGVwcy5maW5kSW5kZXgoZz0+Zz09PWYpKzF9IG9mCiAgICAgICAgICAgICAgICAke3RoaXMuc3RlcHMubGVuZ3RofQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke2YudGl0bGV9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+JHtmLmNvbnRlbnR9PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PiBgKX0KICAgICAgPC9kaXY+CiAgICBgfWdldEluZGV4T2ZTdGVwPShZOCh0aGlzLHApLGY9PnRoaXMuc3RlcHMuZmluZEluZGV4KGc9PmY9PT1nKSk7YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc2VsZWN0ZWRTdGVwPXRoaXMuc3RlcHNbMF0sdGhpcy5zZXRTY3JvbGxTdGF0dXMoKSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzUwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXAuZW50cmFuY2UiKT8uY2xhc3NMaXN0LnJlbW92ZSgiZW50cmFuY2UiKX1hc3luYyB1cGRhdGVkKCl7dGhpcy5zZXRTY3JvbGxTdGF0dXMoKX1zY3JvbGxlcjthc3luYyBzZXRTY3JvbGxTdGF0dXMoKXtsZXQgZj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXBwZXJDb250YWluZXIiKSxnPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcCIpLHk9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZCIpO2lmKCF5KXJldHVybjtmLnN0eWxlLnBhZGRpbmdUb3B8fChmLnN0eWxlLnBhZGRpbmdUb3A9YCR7Zi5vZmZzZXRIZWlnaHQvMi15Lm9mZnNldEhlaWdodC8yfXB4YCksY29uc29sZS5sb2coIlNldHRpbmcgc2Nyb2xsIHN0YXR1cyIpLGNvbnNvbGUubG9nKHkpO2xldCB2PXkub2Zmc2V0VG9wLWYub2Zmc2V0SGVpZ2h0LzIreS5vZmZzZXRIZWlnaHQvMjtjb25zb2xlLmxvZyh2KTtsZXQgbT1hd2FpdCBHMi5zZXR1cERvbVRvb2xzKCk7dGhpcy5zY3JvbGxlcnx8KHRoaXMuc2Nyb2xsZXI9bmV3IE10LlN3ZWV0U2Nyb2xsKHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGVhc2luZzoiZWFzZUluT3V0RXhwbyIsZHVyYXRpb246NzAwfSxmKSksIXRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkJiZ0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuYyYmKHRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyLHRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSEwLGF3YWl0IHRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jKHRoaXMseSx0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuc2lnbmFsKSksdGhpcy5zY3JvbGxlci50byh2KX1hc3luYyBnb0JhY2soKXtsZXQgZj10aGlzLnN0ZXBzLmZpbmRJbmRleCh2PT52PT09dGhpcy5zZWxlY3RlZFN0ZXApO2lmKGY8PTApcmV0dXJuO3RoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7bGV0IGc9dGhpcy5zdGVwc1tmXTtnLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExO2xldCB5PXRoaXMuc3RlcHNbZi0xXTt5LnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExLHRoaXMuc2VsZWN0ZWRTdGVwPXksYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksdGhpcy5zZWxlY3RlZFN0ZXAub25SZXR1cm5Ub1N0ZXBGdW5jPy4odGhpcyx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkIikpfWdvTmV4dCgpe2xldCBmPXRoaXMuc3RlcHMuZmluZEluZGV4KHY9PnY9PT10aGlzLnNlbGVjdGVkU3RlcCk7aWYoZjwwfHxmPj10aGlzLnN0ZXBzLmxlbmd0aC0xKXJldHVybjt0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO2xldCBnPXRoaXMuc3RlcHNbZl07Zy52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMTtsZXQgeT10aGlzLnN0ZXBzW2YrMV07eS52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMSx0aGlzLnNlbGVjdGVkU3RlcD15fXN0YXRpY3tZOChpLGEpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgJGJ0PWIoKCk9PntMYnQoKX0pO3ZhciBBYnQ9YigoKT0+e0dndCgpO2hidCgpO3ZidCgpO3lidCgpO2tidCgpO1NidCgpOyRidCgpfSk7dmFyIERidCxFYnQ9YigoKT0+e3VlKCk7RGJ0PSgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgZGVlcy1pbWFnZS12aWV3ZXIgewogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAuY29tcGFjdCB7CiAgICAgIGhlaWdodDogMjUwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkpQRUcgSW1hZ2Ugd2l0aCBUb29sYmFyPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkEgbGFuZHNjYXBlIHBob3RvIHdpdGggem9vbSwgcGFuLCBmaXQsIGFuZCBkb3dubG9hZCBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGFsdD0iTW91bnRhaW4gbGFuZHNjYXBlIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QTkcgd2l0aCBUcmFuc3BhcmVuY3k8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VHJhbnNwYXJlbnQgUE5HIGRpc3BsYXllZCBvbiBhIGNoZWNrZXJib2FyZCBiYWNrZ3JvdW5kLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvNC80Ny9QTkdfdHJhbnNwYXJlbmN5X2RlbW9uc3RyYXRpb25fMS5wbmciCiAgICAgICAgYWx0PSJQTkcgdHJhbnNwYXJlbmN5IGRlbW8iCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNWRyBJbWFnZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TY2FsYWJsZSB2ZWN0b3IgZ3JhcGhpYy48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zLzAvMDIvU1ZHX2xvZ28uc3ZnIgogICAgICAgIGFsdD0iU1ZHIGxvZ28iCiAgICAgICAgZml0PSJjb250YWluIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5ObyBUb29sYmFyIFZhcmlhbnQ8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+SW1hZ2Ugdmlld2VyIHdpdGggdGhlIHRvb2xiYXIgaGlkZGVuLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBjbGFzcz0iY29tcGFjdCIKICAgICAgICBzcmM9Imh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNDY5NDc0OTY4MDI4LTU2NjIzZjAyZTQyZT93PTgwMCIKICAgICAgICBhbHQ9Ik5hdHVyZSBzY2VuZSIKICAgICAgICAuc2hvd1Rvb2xiYXI9JHshMX0KICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBaYSxNMSxQYnQsUlY9YigoKT0+e3VlKCk7RHQoKTtFYnQoKTtaYT1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LE0xPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxQYnQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLWltYWdlLXZpZXdlciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXTt2YXIga2U9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBXPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koKV0sZD1bSSgpXSxsPVtJKCldLHk9W0koe3R5cGU6Qm9vbGVhbn0pXSx4PVtKKCldLEY9W0ooKV0sTj1bSigpXSxxPVtKKCldLEU9W0ooKV0sVj1bSigpXSxyZT1bSigpXSx3ZT1bSigpXSxaYSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+InNyYyJpbiBELGdldDpEPT5ELnNyYyxzZXQ6KEQsTyk9PntELnNyYz1PfX0sbWV0YWRhdGE6V30sbixvKSxaYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImFsdCJpbiBELGdldDpEPT5ELmFsdCxzZXQ6KEQsTyk9PntELmFsdD1PfX0sbWV0YWRhdGE6V30sYyxwKSxaYSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImZpdCJpbiBELGdldDpEPT5ELmZpdCxzZXQ6KEQsTyk9PntELmZpdD1PfX0sbWV0YWRhdGE6V30sZixnKSxaYSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ic2hvd1Rvb2xiYXIiaW4gRCxnZXQ6RD0+RC5zaG93VG9vbGJhcixzZXQ6KEQsTyk9PntELnNob3dUb29sYmFyPU99fSxtZXRhZGF0YTpXfSx2LG0pLFphKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiem9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+Inpvb20iaW4gRCxnZXQ6RD0+RC56b29tLHNldDooRCxPKT0+e0Quem9vbT1PfX0sbWV0YWRhdGE6V30sTSxTKSxaYSh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhblgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJwYW5YImluIEQsZ2V0OkQ9PkQucGFuWCxzZXQ6KEQsTyk9PntELnBhblg9T319LG1ldGFkYXRhOld9LF8sayksWmEodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYW5ZIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4icGFuWSJpbiBELGdldDpEPT5ELnBhblksc2V0OihELE8pPT57RC5wYW5ZPU99fSxtZXRhZGF0YTpXfSxMLEEpLFphKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImlzRHJhZ2dpbmciaW4gRCxnZXQ6RD0+RC5pc0RyYWdnaW5nLHNldDooRCxPKT0+e0QuaXNEcmFnZ2luZz1PfX0sbWV0YWRhdGE6V30sQyx6KSxaYSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJsb2FkaW5nImluIEQsZ2V0OkQ9PkQubG9hZGluZyxzZXQ6KEQsTyk9PntELmxvYWRpbmc9T319LG1ldGFkYXRhOld9LFQsJCksWmEodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImVycm9yImluIEQsZ2V0OkQ9PkQuZXJyb3Isc2V0OihELE8pPT57RC5lcnJvcj1PfX0sbWV0YWRhdGE6V30sUixVKSxaYSh0aGlzLG51bGwscmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZU5hdHVyYWxXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImltYWdlTmF0dXJhbFdpZHRoImluIEQsZ2V0OkQ9PkQuaW1hZ2VOYXR1cmFsV2lkdGgsc2V0OihELE8pPT57RC5pbWFnZU5hdHVyYWxXaWR0aD1PfX0sbWV0YWRhdGE6V30saixtZSksWmEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VOYXR1cmFsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4iaW1hZ2VOYXR1cmFsSGVpZ2h0ImluIEQsZ2V0OkQ9PkQuaW1hZ2VOYXR1cmFsSGVpZ2h0LHNldDooRCxPKT0+e0QuaW1hZ2VOYXR1cmFsSGVpZ2h0PU99fSxtZXRhZGF0YTpXfSxILGNlKSxaYShudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpXfSxudWxsLGEpLGtlPWk9ZS52YWx1ZSxXJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOld9KX1zdGF0aWMgZGVtbz1EYnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPU0xKHRoaXMsbiwiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoVyl7dGhpcy4jZT1XfSN0PShNMSh0aGlzLG8pLE0xKHRoaXMsYywiIikpO2dldCBhbHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWx0KFcpe3RoaXMuI3Q9V30jYT0oTTEodGhpcyxwKSxNMSh0aGlzLGYsImNvbnRhaW4iKSk7Z2V0IGZpdCgpe3JldHVybiB0aGlzLiNhfXNldCBmaXQoVyl7dGhpcy4jYT1XfSNpPShNMSh0aGlzLGcpLE0xKHRoaXMsdiwhMCkpO2dldCBzaG93VG9vbGJhcigpe3JldHVybiB0aGlzLiNpfXNldCBzaG93VG9vbGJhcihXKXt0aGlzLiNpPVd9I3I9KE0xKHRoaXMsbSksTTEodGhpcyxNLDEpKTtnZXQgem9vbSgpe3JldHVybiB0aGlzLiNyfXNldCB6b29tKFcpe3RoaXMuI3I9V30jcz0oTTEodGhpcyxTKSxNMSh0aGlzLF8sMCkpO2dldCBwYW5YKCl7cmV0dXJuIHRoaXMuI3N9c2V0IHBhblgoVyl7dGhpcy4jcz1XfSNuPShNMSh0aGlzLGspLE0xKHRoaXMsTCwwKSk7Z2V0IHBhblkoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcGFuWShXKXt0aGlzLiNuPVd9I289KE0xKHRoaXMsQSksTTEodGhpcyxDLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNEcmFnZ2luZyhXKXt0aGlzLiNvPVd9I2w9KE0xKHRoaXMseiksTTEodGhpcyxULCEwKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbG9hZGluZyhXKXt0aGlzLiNsPVd9I2M9KE0xKHRoaXMsJCksTTEodGhpcyxSLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGVycm9yKFcpe3RoaXMuI2M9V30jZD0oTTEodGhpcyxVKSxNMSh0aGlzLGosMCkpO2dldCBpbWFnZU5hdHVyYWxXaWR0aCgpe3JldHVybiB0aGlzLiNkfXNldCBpbWFnZU5hdHVyYWxXaWR0aChXKXt0aGlzLiNkPVd9I3A9KE0xKHRoaXMsbWUpLE0xKHRoaXMsSCwwKSk7Z2V0IGltYWdlTmF0dXJhbEhlaWdodCgpe3JldHVybiB0aGlzLiNwfXNldCBpbWFnZU5hdHVyYWxIZWlnaHQoVyl7dGhpcy4jcD1XfWRyYWdTdGFydFg9KE0xKHRoaXMsY2UpLDApO2RyYWdTdGFydFk9MDtkcmFnU3RhcnRQYW5YPTA7ZHJhZ1N0YXJ0UGFuWT0wO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIH0KCiAgICAgICAgLnpvb20tbGV2ZWwgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2UtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGN1cnNvcjogJHt0aGlzLnpvb20+MT90aGlzLmlzRHJhZ2dpbmc/ImdyYWJiaW5nIjoiZ3JhYiI6ImRlZmF1bHQifTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2VyYm9hcmQgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOgogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgtNDVkZWcsICR7aC5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke2guYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKTsKICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDhweCwgOHB4IC04cHgsIC04cHggMHB4OwogICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHt0aGlzLnBhblh9cHgsICR7dGhpcy5wYW5ZfXB4KSBzY2FsZSgke3RoaXMuem9vbX0pOwogICAgICAgICAgdHJhbnNpdGlvbjogJHt0aGlzLmlzRHJhZ2dpbmc/Im5vbmUiOiJ0cmFuc2Zvcm0gMC4ycyBlYXNlIn07CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgaW1nIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiAke3RoaXMuZml0fTsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciBpbWcuYWN0dWFsIHsKICAgICAgICAgIG1heC13aWR0aDogbm9uZTsKICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgICBvYmplY3QtZml0OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwLjgpIiwicmdiYSgwLDAsMCwwLjYpIil9OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLWluZm8gewogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21PdXR9IHRpdGxlPSJab29tIG91dCI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tT3V0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5yZXNldFpvb219PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Inpvb20tbGV2ZWwiPiR7TWF0aC5yb3VuZCh0aGlzLnpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21Jbn0gdGl0bGU9Ilpvb20gaW4iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmZpdFRvU2NyZWVufSB0aXRsZT0iRml0IHRvIHNjcmVlbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuYWN0dWFsU2l6ZX0gdGl0bGU9IkFjdHVhbCBzaXplICgxMDAlKSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpTY2FuIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmRvd25sb2FkfSB0aXRsZT0iRG93bmxvYWQiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmltYWdlTmF0dXJhbFdpZHRoPjA/d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbWFnZS1pbmZvIj4ke3RoaXMuaW1hZ2VOYXR1cmFsV2lkdGh9IHggJHt0aGlzLmltYWdlTmF0dXJhbEhlaWdodH08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iaW1hZ2UtYXJlYSIKICAgICAgICAgIEB3aGVlbD0ke3RoaXMuaGFuZGxlV2hlZWx9CiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5oYW5kbGVNb3VzZU1vdmV9CiAgICAgICAgICBAbW91c2V1cD0ke3RoaXMuaGFuZGxlTW91c2VVcH0KICAgICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZVVwfQogICAgICAgICAgQGRibGNsaWNrPSR7dGhpcy5oYW5kbGVEb3VibGVDbGlja30KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2VyYm9hcmQiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgICAgICR7dGhpcy5zcmM/d2AKICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmZpdD09PSJhY3R1YWwiPyJhY3R1YWwiOiIifSIKICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICAgICAgQGxvYWQ9JHt0aGlzLmhhbmRsZUltYWdlTG9hZH0KICAgICAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iZmFsc2UiCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLmxvYWRpbmcmJnRoaXMuc3JjP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpJbWFnZU9mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXpvb21Jbigpe3RoaXMuem9vbT1NYXRoLm1pbigxMCx0aGlzLnpvb20qMS4yNSl9em9vbU91dCgpe3RoaXMuem9vbT1NYXRoLm1heCguMSx0aGlzLnpvb20vMS4yNSksdGhpcy56b29tPD0xJiYodGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfXJlc2V0Wm9vbSgpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wfWZpdFRvU2NyZWVuKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5maXQ9ImNvbnRhaW4ifWFjdHVhbFNpemUoKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmZpdD0iYWN0dWFsIn1kb3dubG9hZCgpe2lmKCF0aGlzLnNyYylyZXR1cm47bGV0IFc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO1cuaHJlZj10aGlzLnNyYyxXLmRvd25sb2FkPXRoaXMuc3JjLnNwbGl0KCIvIikucG9wKCl8fCJpbWFnZSIsVy5jbGljaygpfWhhbmRsZUltYWdlTG9hZChXKXtsZXQgRD1XLnRhcmdldDt0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0iIix0aGlzLmltYWdlTmF0dXJhbFdpZHRoPUQubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PUQubmF0dXJhbEhlaWdodH1oYW5kbGVJbWFnZUVycm9yKCl7dGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGltYWdlIn1oYW5kbGVXaGVlbChXKXtXLnByZXZlbnREZWZhdWx0KCk7bGV0IEQ9Vy5kZWx0YVk+MD8uOToxLjEsTz1NYXRoLm1pbigxMCxNYXRoLm1heCguMSx0aGlzLnpvb20qRCkpO3RoaXMuem9vbT1PLHRoaXMuem9vbTw9MSYmKHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX1oYW5kbGVNb3VzZURvd24oVyl7dGhpcy56b29tPD0xfHwodGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuZHJhZ1N0YXJ0WD1XLmNsaWVudFgsdGhpcy5kcmFnU3RhcnRZPVcuY2xpZW50WSx0aGlzLmRyYWdTdGFydFBhblg9dGhpcy5wYW5YLHRoaXMuZHJhZ1N0YXJ0UGFuWT10aGlzLnBhblkpfWhhbmRsZU1vdXNlTW92ZShXKXt0aGlzLmlzRHJhZ2dpbmcmJih0aGlzLnBhblg9dGhpcy5kcmFnU3RhcnRQYW5YKyhXLmNsaWVudFgtdGhpcy5kcmFnU3RhcnRYKSx0aGlzLnBhblk9dGhpcy5kcmFnU3RhcnRQYW5ZKyhXLmNsaWVudFktdGhpcy5kcmFnU3RhcnRZKSl9aGFuZGxlTW91c2VVcCgpe3RoaXMuaXNEcmFnZ2luZz0hMX1oYW5kbGVEb3VibGVDbGljaygpe3RoaXMuem9vbT09PTE/dGhpcy56b29tPTI6KHRoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX11cGRhdGVkKFcpe3N1cGVyLnVwZGF0ZWQoVyksVy5oYXMoInNyYyIpJiYodGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9IiIsdGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5pbWFnZU5hdHVyYWxXaWR0aD0wLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PTApfXN0YXRpY3tNMShpLGEpfX07cmV0dXJuIGtlPWl9KSgpfSk7dmFyIElidD1iKCgpPT57UlYoKX0pO3ZhciBOYnQsRmJ0PWIoKCk9Pnt1ZSgpO05idD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIGRlZXMtYXVkaW8tdmlld2VyIHsKICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1ZGlvIHdpdGggV2F2ZWZvcm08L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXVkaW8gcGxheWVyIHdpdGggd2F2ZWZvcm0gdmlzdWFsaXphdGlvbiBhbmQgZnVsbCB0cmFuc3BvcnQgY29udHJvbHMuPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDEiCiAgICAgICAgYXJ0aXN0PSJULiBTY2h1ZXJnZXIiCiAgICAgID48L2RlZXMtYXVkaW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1ZGlvIHdpdGhvdXQgV2F2ZWZvcm08L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+U2ltcGxlIGF1ZGlvIHBsYXllciB3aXRoIGEgc2Vla2JhciBpbnN0ZWFkIG9mIGEgd2F2ZWZvcm0uPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0yLm1wMyIKICAgICAgICB0aXRsZT0iU291bmRIZWxpeCBTb25nIDIiCiAgICAgICAgLnNob3dXYXZlZm9ybT0keyExfQogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NaW5pbWFsIEF1ZGlvIFBsYXllcjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5ObyB0aXRsZSBvciBhcnRpc3QgbWV0YWRhdGEg4oCUIGp1c3QgdGhlIHBsYXllci48L2Rpdj4KICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTMubXAzIgogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIFEyLFl0LE9idCxCVj1iKCgpPT57dWUoKTtEdCgpO0ZidCgpO1EyPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sWXQ9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LE9idD0oKCk9PntsZXQgdD1baGUoImRlZXMtYXVkaW8tdmlld2VyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W10scSxDPVtdLHo9W10sRSxUPVtdLCQ9W10sVixSPVtdLFU9W10scmUsaj1bXSxtZT1bXSx3ZSxIPVtdLGNlPVtdLGtlLFc9W10sRD1bXSxPLFo9W10sWT1bXSxvZSxnZT1bXSxiZT1bXTt2YXIgJGU9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBCPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koKV0sZD1bSSgpXSxsPVtJKCldLHk9W0koe3R5cGU6Qm9vbGVhbn0pXSx4PVtJKHt0eXBlOkJvb2xlYW59KV0sRj1bSSh7dHlwZTpCb29sZWFufSldLE49W0ooKV0scT1bSigpXSxFPVtKKCldLFY9W0ooKV0scmU9W0ooKV0sd2U9W0ooKV0sa2U9W0ooKV0sTz1bSigpXSxvZT1bSigpXSxRMih0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InNyYyJpbiBQLGdldDpQPT5QLnNyYyxzZXQ6KFAsSyk9PntQLnNyYz1LfX0sbWV0YWRhdGE6Qn0sbixvKSxRMih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRpdGxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4idGl0bGUiaW4gUCxnZXQ6UD0+UC50aXRsZSxzZXQ6KFAsSyk9PntQLnRpdGxlPUt9fSxtZXRhZGF0YTpCfSxjLHApLFEyKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXJ0aXN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iYXJ0aXN0ImluIFAsZ2V0OlA9PlAuYXJ0aXN0LHNldDooUCxLKT0+e1AuYXJ0aXN0PUt9fSxtZXRhZGF0YTpCfSxmLGcpLFEyKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dhdmVmb3JtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4ic2hvd1dhdmVmb3JtImluIFAsZ2V0OlA9PlAuc2hvd1dhdmVmb3JtLHNldDooUCxLKT0+e1Auc2hvd1dhdmVmb3JtPUt9fSxtZXRhZGF0YTpCfSx2LG0pLFEyKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b3BsYXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJhdXRvcGxheSJpbiBQLGdldDpQPT5QLmF1dG9wbGF5LHNldDooUCxLKT0+e1AuYXV0b3BsYXk9S319LG1ldGFkYXRhOkJ9LE0sUyksUTIodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb29wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4ibG9vcCJpbiBQLGdldDpQPT5QLmxvb3Asc2V0OihQLEspPT57UC5sb29wPUt9fSxtZXRhZGF0YTpCfSxfLGspLFEyKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQbGF5aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iaXNQbGF5aW5nImluIFAsZ2V0OlA9PlAuaXNQbGF5aW5nLHNldDooUCxLKT0+e1AuaXNQbGF5aW5nPUt9fSxtZXRhZGF0YTpCfSxMLEEpLFEyKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlA9PiJjdXJyZW50VGltZSJpbiBQLGdldDpQPT5QLmN1cnJlbnRUaW1lLHNldDooUCxLKT0+e1AuY3VycmVudFRpbWU9S319LG1ldGFkYXRhOkJ9LEMseiksUTIodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImR1cmF0aW9uImluIFAsZ2V0OlA9PlAuZHVyYXRpb24sc2V0OihQLEspPT57UC5kdXJhdGlvbj1LfX0sbWV0YWRhdGE6Qn0sVCwkKSxRMih0aGlzLG51bGwsVix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZvbHVtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+InZvbHVtZSJpbiBQLGdldDpQPT5QLnZvbHVtZSxzZXQ6KFAsSyk9PntQLnZvbHVtZT1LfX0sbWV0YWRhdGE6Qn0sUixVKSxRMih0aGlzLG51bGwscmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc011dGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4iaXNNdXRlZCJpbiBQLGdldDpQPT5QLmlzTXV0ZWQsc2V0OihQLEspPT57UC5pc011dGVkPUt9fSxtZXRhZGF0YTpCfSxqLG1lKSxRMih0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4ibG9hZGluZyJpbiBQLGdldDpQPT5QLmxvYWRpbmcsc2V0OihQLEspPT57UC5sb2FkaW5nPUt9fSxtZXRhZGF0YTpCfSxILGNlKSxRMih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+ImVycm9yImluIFAsZ2V0OlA9PlAuZXJyb3Isc2V0OihQLEspPT57UC5lcnJvcj1LfX0sbWV0YWRhdGE6Qn0sVyxEKSxRMih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6UD0+IndhdmVmb3JtRGF0YSJpbiBQLGdldDpQPT5QLndhdmVmb3JtRGF0YSxzZXQ6KFAsSyk9PntQLndhdmVmb3JtRGF0YT1LfX0sbWV0YWRhdGE6Qn0sWixZKSxRMih0aGlzLG51bGwsb2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybVJlYWR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpQPT4id2F2ZWZvcm1SZWFkeSJpbiBQLGdldDpQPT5QLndhdmVmb3JtUmVhZHksc2V0OihQLEspPT57UC53YXZlZm9ybVJlYWR5PUt9fSxtZXRhZGF0YTpCfSxnZSxiZSksUTIobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Qn0sbnVsbCxhKSwkZT1pPWUudmFsdWUsQiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpCfSl9c3RhdGljIGRlbW89TmJ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTsjZT1ZdCh0aGlzLG4sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKEIpe3RoaXMuI2U9Qn0jdD0oWXQodGhpcyxvKSxZdCh0aGlzLGMsIiIpKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGl0bGUoQil7dGhpcy4jdD1CfSNhPShZdCh0aGlzLHApLFl0KHRoaXMsZiwiIikpO2dldCBhcnRpc3QoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYXJ0aXN0KEIpe3RoaXMuI2E9Qn0jaT0oWXQodGhpcyxnKSxZdCh0aGlzLHYsITApKTtnZXQgc2hvd1dhdmVmb3JtKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNob3dXYXZlZm9ybShCKXt0aGlzLiNpPUJ9I3I9KFl0KHRoaXMsbSksWXQodGhpcyxNLCExKSk7Z2V0IGF1dG9wbGF5KCl7cmV0dXJuIHRoaXMuI3J9c2V0IGF1dG9wbGF5KEIpe3RoaXMuI3I9Qn0jcz0oWXQodGhpcyxTKSxZdCh0aGlzLF8sITEpKTtnZXQgbG9vcCgpe3JldHVybiB0aGlzLiNzfXNldCBsb29wKEIpe3RoaXMuI3M9Qn0jbj0oWXQodGhpcyxrKSxZdCh0aGlzLEwsITEpKTtnZXQgaXNQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI259c2V0IGlzUGxheWluZyhCKXt0aGlzLiNuPUJ9I289KFl0KHRoaXMsQSksWXQodGhpcyxDLDApKTtnZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy4jb31zZXQgY3VycmVudFRpbWUoQil7dGhpcy4jbz1CfSNsPShZdCh0aGlzLHopLFl0KHRoaXMsVCwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGR1cmF0aW9uKEIpe3RoaXMuI2w9Qn0jYz0oWXQodGhpcywkKSxZdCh0aGlzLFIsMSkpO2dldCB2b2x1bWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdm9sdW1lKEIpe3RoaXMuI2M9Qn0jZD0oWXQodGhpcyxVKSxZdCh0aGlzLGosITEpKTtnZXQgaXNNdXRlZCgpe3JldHVybiB0aGlzLiNkfXNldCBpc011dGVkKEIpe3RoaXMuI2Q9Qn0jcD0oWXQodGhpcyxtZSksWXQodGhpcyxILCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbG9hZGluZyhCKXt0aGlzLiNwPUJ9I2g9KFl0KHRoaXMsY2UpLFl0KHRoaXMsVywiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNofXNldCBlcnJvcihCKXt0aGlzLiNoPUJ9I3U9KFl0KHRoaXMsRCksWXQodGhpcyxaLFtdKSk7Z2V0IHdhdmVmb3JtRGF0YSgpe3JldHVybiB0aGlzLiN1fXNldCB3YXZlZm9ybURhdGEoQil7dGhpcy4jdT1CfSNmPShZdCh0aGlzLFkpLFl0KHRoaXMsZ2UsITEpKTtnZXQgd2F2ZWZvcm1SZWFkeSgpe3JldHVybiB0aGlzLiNmfXNldCB3YXZlZm9ybVJlYWR5KEIpe3RoaXMuI2Y9Qn1hdWRpb0VsZW1lbnQ9KFl0KHRoaXMsYmUpLG51bGwpO2NhbnZhc0VsZW1lbnQ9bnVsbDthbmltRnJhbWVJZD0wO3ZvbHVtZUJlZm9yZU11dGU9MTtyZW5kZXIoKXtsZXQgQj10aGlzLnRpdGxlJiZ0aGlzLmFydGlzdD9gJHt0aGlzLnRpdGxlfSBcdTIwMTQgJHt0aGlzLmFydGlzdH1gOnRoaXMudGl0bGV8fHRoaXMuYXJ0aXN0fHwiIjtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLnZpZXdlci1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgyMTUgMjAlIDEwJSkiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cC0tZW5kIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbiB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRpbWUtZGlzcGxheSB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBtaW4td2lkdGg6IDkwcHg7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyIHsKICAgICAgICAgIHdpZHRoOiA3MHB4OwogICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotd2Via2l0LXNsaWRlci10aHVtYiB7CiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICB3aWR0aDogMTJweDsKICAgICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRlbnQtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAud2F2ZWZvcm0tY29udGFpbmVyIHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1jb250YWluZXIgewogICAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1maWxsIHsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMXMgbGluZWFyOwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IC5lcnJvci1pY29uIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdiBjbGFzcz0idmlld2VyLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlUGxheX0+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzUGxheWluZz8iUGF1c2UiOiJQbGF5In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWUtZGlzcGxheSI+CiAgICAgICAgICAgICAgJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5jdXJyZW50VGltZSl9IC8gJHt0aGlzLmZvcm1hdFRpbWUodGhpcy5kdXJhdGlvbil9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICR7Qj93YAogICAgICAgICAgICA8c3BhbiBjbGFzcz0idG9vbGJhci10aXRsZSI+JHtCfTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cC0tZW5kIj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiAke3RoaXMubG9vcD8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVMb29wfQogICAgICAgICAgICAgIHRpdGxlPSJMb29wIgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UmVwZWF0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9idXR0b24+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2b2x1bWUtZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZU11dGV9IHRpdGxlPSIke3RoaXMuaXNNdXRlZD8iVW5tdXRlIjoiTXV0ZSJ9Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc011dGVkfHx0aGlzLnZvbHVtZT09PTA/IlZvbHVtZVgiOnRoaXMudm9sdW1lPC41PyJWb2x1bWUxIjoiVm9sdW1lMiJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICAgIGNsYXNzPSJ2b2x1bWUtc2xpZGVyIgogICAgICAgICAgICAgICAgdHlwZT0icmFuZ2UiCiAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICBtYXg9IjEiCiAgICAgICAgICAgICAgICBzdGVwPSIwLjAxIgogICAgICAgICAgICAgICAgLnZhbHVlPSR7U3RyaW5nKHRoaXMuaXNNdXRlZD8wOnRoaXMudm9sdW1lKX0KICAgICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlVm9sdW1lQ2hhbmdlfQogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICAke3RoaXMuZXJyb3I/d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iZXJyb3ItaWNvbiIgaWNvbj0ibHVjaWRlOk11c2ljT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMubG9hZGluZz93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDp0aGlzLnNob3dXYXZlZm9ybT93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3YXZlZm9ybS1jb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlV2F2ZWZvcm1DbGlja30+CiAgICAgICAgICAgICAgPGNhbnZhcz48L2NhbnZhcz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlZWtiYXJDbGlja30+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1maWxsIiBzdHlsZT0id2lkdGg6ICR7dGhpcy5kdXJhdGlvbj90aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb24qMTAwOjB9JSI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnNyYyYmdGhpcy5pbml0QXVkaW8oKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhbnVwKCl9YXN5bmMgdXBkYXRlZChCKXtzdXBlci51cGRhdGVkKEIpLEIuaGFzKCJzcmMiKSYmdGhpcy5zcmMmJih0aGlzLmNsZWFudXAoKSx0aGlzLmluaXRBdWRpbygpKSwoQi5oYXMoIndhdmVmb3JtRGF0YSIpfHxCLmhhcygiY3VycmVudFRpbWUiKSkmJnRoaXMuZHJhd1dhdmVmb3JtKCl9cGxheSgpe3RoaXMuYXVkaW9FbGVtZW50Py5wbGF5KCl9cGF1c2UoKXt0aGlzLmF1ZGlvRWxlbWVudD8ucGF1c2UoKX10b2dnbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc/dGhpcy5wYXVzZSgpOnRoaXMucGxheSgpfXNlZWsoQil7dGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZT1CKX1zZXRWb2x1bWUoQil7dGhpcy52b2x1bWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxLEIpKSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLnZvbHVtZSksdGhpcy52b2x1bWU+MCYmKHRoaXMuaXNNdXRlZD0hMSl9dG9nZ2xlTXV0ZSgpe3RoaXMuaXNNdXRlZD8odGhpcy5pc011dGVkPSExLHRoaXMudm9sdW1lPXRoaXMudm9sdW1lQmVmb3JlTXV0ZXx8LjUsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy52b2x1bWUpKToodGhpcy52b2x1bWVCZWZvcmVNdXRlPXRoaXMudm9sdW1lLHRoaXMuaXNNdXRlZD0hMCx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT0wKSl9dG9nZ2xlTG9vcCgpe3RoaXMubG9vcD0hdGhpcy5sb29wLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQubG9vcD10aGlzLmxvb3ApfWluaXRBdWRpbygpe3RoaXMuYXVkaW9FbGVtZW50PW5ldyBBdWRpbyx0aGlzLmF1ZGlvRWxlbWVudC5jcm9zc09yaWdpbj0iYW5vbnltb3VzIix0aGlzLmF1ZGlvRWxlbWVudC5zcmM9dGhpcy5zcmMsdGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMuaXNNdXRlZD8wOnRoaXMudm9sdW1lLHRoaXMuYXVkaW9FbGVtZW50Lmxvb3A9dGhpcy5sb29wLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZG1ldGFkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249dGhpcy5hdWRpb0VsZW1lbnQuZHVyYXRpb24sdGhpcy5sb2FkaW5nPSExfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMCx0aGlzLnN0YXJ0VGltZVVwZGF0ZSgpfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicGF1c2UiLCgpPT57dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5zdG9wVGltZVVwZGF0ZSgpfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZW5kZWQiLCgpPT57dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5zdG9wVGltZVVwZGF0ZSgpfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCgpPT57dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgYXVkaW8iLHRoaXMubG9hZGluZz0hMX0pLHRoaXMuYXVkaW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRpbWV1cGRhdGUiLCgpPT57dGhpcy5jdXJyZW50VGltZT10aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZX0pLHRoaXMuYXV0b3BsYXkmJnRoaXMuYXVkaW9FbGVtZW50LnBsYXkoKS5jYXRjaCgoKT0+e30pLHRoaXMuc2hvd1dhdmVmb3JtJiZ0aGlzLmxvYWRXYXZlZm9ybSgpfWFzeW5jIGxvYWRXYXZlZm9ybSgpe3RyeXt0aGlzLmxvYWRpbmc9ITA7bGV0IFA9YXdhaXQoYXdhaXQgZmV0Y2godGhpcy5zcmMpKS5hcnJheUJ1ZmZlcigpLEs9bmV3IEF1ZGlvQ29udGV4dCxkZT0oYXdhaXQgSy5kZWNvZGVBdWRpb0RhdGEoUCkpLmdldENoYW5uZWxEYXRhKDApLF9lPTIwMCxwZT1NYXRoLmZsb29yKGRlLmxlbmd0aC9fZSksdGU9W107Zm9yKGxldCBGZT0wO0ZlPF9lO0ZlKyspe2xldCBXZT0wO2ZvcihsZXQgeWU9MDt5ZTxwZTt5ZSsrKVdlKz1NYXRoLmFicyhkZVtGZSpwZSt5ZV0pO3RlLnB1c2goV2UvcGUpfWxldCB6ZT1NYXRoLm1heCguLi50ZSk7dGhpcy53YXZlZm9ybURhdGE9dGUubWFwKEZlPT56ZT4wP0ZlL3plOjApLHRoaXMud2F2ZWZvcm1SZWFkeT0hMCx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgSy5jbG9zZSgpfWNhdGNoe3RoaXMud2F2ZWZvcm1SZWFkeT0hMSx0aGlzLmxvYWRpbmc9ITF9fWRyYXdXYXZlZm9ybSgpe2lmKCF0aGlzLnNob3dXYXZlZm9ybXx8IXRoaXMud2F2ZWZvcm1SZWFkeSlyZXR1cm47bGV0IEI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJjYW52YXMiKTtpZighQilyZXR1cm47dGhpcy5jYW52YXNFbGVtZW50PUI7bGV0IFA9Qi5wYXJlbnRFbGVtZW50LEs9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsZmU9UC5jbGllbnRXaWR0aCxkZT1QLmNsaWVudEhlaWdodDtCLndpZHRoPWZlKkssQi5oZWlnaHQ9ZGUqSztsZXQgX2U9Qi5nZXRDb250ZXh0KCIyZCIpO2lmKCFfZSlyZXR1cm47X2Uuc2NhbGUoSyxLKSxfZS5jbGVhclJlY3QoMCwwLGZlLGRlKTtsZXQgcGU9dGhpcy53YXZlZm9ybURhdGEubGVuZ3RoO2lmKHBlPT09MClyZXR1cm47bGV0IHRlPWZlL3BlLHplPXRoaXMuZHVyYXRpb24+MD90aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb246MCxGZT1NYXRoLmZsb29yKHplKnBlKSxXZT1kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygidGhlbWUtZGFyayIpfHx3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXMseWU9V2U/ImhzbCgyMTMgOTMlIDY4JSkiOiJoc2woMjE3IDkxJSA2MCUpIixlZT1XZT8iaHNsKDIxNyAyNSUgMjIlKSI6ImhzbCgyMTQgMzElIDg2JSkiO2ZvcihsZXQgYWU9MDthZTxwZTthZSsrKXtsZXQgdmU9dGhpcy53YXZlZm9ybURhdGFbYWVdLFBlPU1hdGgubWF4KDIsdmUqKGRlLTQpKSxWZT1hZSp0ZSx4dD0oZGUtUGUpLzI7X2UuZmlsbFN0eWxlPWFlPEZlP3llOmVlLF9lLmZpbGxSZWN0KFZlKy41LHh0LHRlLTEsUGUpfX1oYW5kbGVXYXZlZm9ybUNsaWNrKEIpe2xldCBQPUIuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxLPShCLmNsaWVudFgtUC5sZWZ0KS9QLndpZHRoO3RoaXMuc2VlayhLKnRoaXMuZHVyYXRpb24pfWhhbmRsZVNlZWtiYXJDbGljayhCKXtsZXQgUD1CLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksSz0oQi5jbGllbnRYLVAubGVmdCkvUC53aWR0aDt0aGlzLnNlZWsoSyp0aGlzLmR1cmF0aW9uKX1oYW5kbGVWb2x1bWVDaGFuZ2UoQil7bGV0IFA9cGFyc2VGbG9hdChCLnRhcmdldC52YWx1ZSk7dGhpcy5zZXRWb2x1bWUoUCl9c3RhcnRUaW1lVXBkYXRlKCl7dGhpcy5zdG9wVGltZVVwZGF0ZSgpO2xldCBCPSgpPT57dGhpcy5hdWRpb0VsZW1lbnQmJnRoaXMuaXNQbGF5aW5nJiYodGhpcy5jdXJyZW50VGltZT10aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZSx0aGlzLmFuaW1GcmFtZUlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShCKSl9O3RoaXMuYW5pbUZyYW1lSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEIpfXN0b3BUaW1lVXBkYXRlKCl7dGhpcy5hbmltRnJhbWVJZCYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbUZyYW1lSWQpLHRoaXMuYW5pbUZyYW1lSWQ9MCl9Zm9ybWF0VGltZShCKXtpZighaXNGaW5pdGUoQil8fEI8MClyZXR1cm4iMDowMCI7bGV0IFA9TWF0aC5mbG9vcihCLzYwKSxLPU1hdGguZmxvb3IoQiU2MCk7cmV0dXJuYCR7UH06JHtLLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9Y2xlYW51cCgpe3RoaXMuc3RvcFRpbWVVcGRhdGUoKSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnBhdXNlKCksdGhpcy5hdWRpb0VsZW1lbnQuc3JjPSIiLHRoaXMuYXVkaW9FbGVtZW50PW51bGwpLHRoaXMuaXNQbGF5aW5nPSExLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmR1cmF0aW9uPTAsdGhpcy53YXZlZm9ybURhdGE9W10sdGhpcy53YXZlZm9ybVJlYWR5PSExfXN0YXRpY3tZdChpLGEpfX07cmV0dXJuICRlPWl9KSgpfSk7dmFyIFJidD1iKCgpPT57QlYoKX0pO3ZhciBCYnQsSGJ0PWIoKCk9Pnt1ZSgpO0JidD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WaWRlbyB3aXRoIEN1c3RvbSBDb250cm9sczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIHZpZGVvIHBsYXllciB3aXRoIG92ZXJsYXkgY29udHJvbHMsIHNlZWtpbmcsIGFuZCB2b2x1bWUgYWRqdXN0bWVudC48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9CaWdCdWNrQnVubnkubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvaW1hZ2VzL0JpZ0J1Y2tCdW5ueS5qcGciCiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1dG9wbGF5IE11dGVkPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIHRoYXQgYXV0b3BsYXlzIG11dGVkLCBjb21tb25seSB1c2VkIGZvciBwcmV2aWV3cy48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9FbGVwaGFudHNEcmVhbS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9pbWFnZXMvRWxlcGhhbnRzRHJlYW0uanBnIgogICAgICAgIC5hdXRvcGxheT0keyEwfQogICAgICAgIC5tdXRlZD0keyEwfQogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OYXRpdmUgQ29udHJvbHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gdXNpbmcgYnJvd3Nlci1uYXRpdmUgY29udHJvbHMgaW5zdGVhZCBvZiBjdXN0b20gb3ZlcmxheS48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9Gb3JCaWdnZXJCbGF6ZXMubXA0IgogICAgICAgIC5zaG93Q29udHJvbHM9JHshMX0KICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBnYSxvMSxxYnQsSFY9YigoKT0+e3VlKCk7RHQoKTtIYnQoKTtnYT1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LG8xPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxxYnQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXZpZGVvLXZpZXdlciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXSxrZSxXPVtdLEQ9W10sTyxaPVtdLFk9W107dmFyIG9lPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZ2U9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSgpXSxkPVtJKCldLGw9W0koe3R5cGU6Qm9vbGVhbn0pXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0koe3R5cGU6Qm9vbGVhbn0pXSxOPVtKKCldLHE9W0ooKV0sRT1bSigpXSxWPVtKKCldLHJlPVtKKCldLHdlPVtKKCldLGtlPVtKKCldLE89W0ooKV0sZ2EodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4ic3JjImluIGJlLGdldDpiZT0+YmUuc3JjLHNldDooYmUsJGUpPT57YmUuc3JjPSRlfX0sbWV0YWRhdGE6Z2V9LG4sbyksZ2EodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwb3N0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4icG9zdGVyImluIGJlLGdldDpiZT0+YmUucG9zdGVyLHNldDooYmUsJGUpPT57YmUucG9zdGVyPSRlfX0sbWV0YWRhdGE6Z2V9LGMscCksZ2EodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q29udHJvbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4ic2hvd0NvbnRyb2xzImluIGJlLGdldDpiZT0+YmUuc2hvd0NvbnRyb2xzLHNldDooYmUsJGUpPT57YmUuc2hvd0NvbnRyb2xzPSRlfX0sbWV0YWRhdGE6Z2V9LGYsZyksZ2EodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvcGxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YmU9PiJhdXRvcGxheSJpbiBiZSxnZXQ6YmU9PmJlLmF1dG9wbGF5LHNldDooYmUsJGUpPT57YmUuYXV0b3BsYXk9JGV9fSxtZXRhZGF0YTpnZX0sdixtKSxnYSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxvb3AiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4ibG9vcCJpbiBiZSxnZXQ6YmU9PmJlLmxvb3Asc2V0OihiZSwkZSk9PntiZS5sb29wPSRlfX0sbWV0YWRhdGE6Z2V9LE0sUyksZ2EodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtdXRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YmU9PiJtdXRlZCJpbiBiZSxnZXQ6YmU9PmJlLm11dGVkLHNldDooYmUsJGUpPT57YmUubXV0ZWQ9JGV9fSxtZXRhZGF0YTpnZX0sXyxrKSxnYSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUGxheWluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YmU9PiJpc1BsYXlpbmciaW4gYmUsZ2V0OmJlPT5iZS5pc1BsYXlpbmcsc2V0OihiZSwkZSk9PntiZS5pc1BsYXlpbmc9JGV9fSxtZXRhZGF0YTpnZX0sTCxBKSxnYSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiZT0+ImN1cnJlbnRUaW1lImluIGJlLGdldDpiZT0+YmUuY3VycmVudFRpbWUsc2V0OihiZSwkZSk9PntiZS5jdXJyZW50VGltZT0kZX19LG1ldGFkYXRhOmdlfSxDLHopLGdhKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4iZHVyYXRpb24iaW4gYmUsZ2V0OmJlPT5iZS5kdXJhdGlvbixzZXQ6KGJlLCRlKT0+e2JlLmR1cmF0aW9uPSRlfX0sbWV0YWRhdGE6Z2V9LFQsJCksZ2EodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2b2x1bWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4idm9sdW1lImluIGJlLGdldDpiZT0+YmUudm9sdW1lLHNldDooYmUsJGUpPT57YmUudm9sdW1lPSRlfX0sbWV0YWRhdGE6Z2V9LFIsVSksZ2EodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YmU9PiJsb2FkaW5nImluIGJlLGdldDpiZT0+YmUubG9hZGluZyxzZXQ6KGJlLCRlKT0+e2JlLmxvYWRpbmc9JGV9fSxtZXRhZGF0YTpnZX0saixtZSksZ2EodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmJlPT4iZXJyb3IiaW4gYmUsZ2V0OmJlPT5iZS5lcnJvcixzZXQ6KGJlLCRlKT0+e2JlLmVycm9yPSRlfX0sbWV0YWRhdGE6Z2V9LEgsY2UpLGdhKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRnVsbHNjcmVlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YmU9PiJpc0Z1bGxzY3JlZW4iaW4gYmUsZ2V0OmJlPT5iZS5pc0Z1bGxzY3JlZW4sc2V0OihiZSwkZSk9PntiZS5pc0Z1bGxzY3JlZW49JGV9fSxtZXRhZGF0YTpnZX0sVyxEKSxnYSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRyb2xzVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6YmU9PiJjb250cm9sc1Zpc2libGUiaW4gYmUsZ2V0OmJlPT5iZS5jb250cm9sc1Zpc2libGUsc2V0OihiZSwkZSk9PntiZS5jb250cm9sc1Zpc2libGU9JGV9fSxtZXRhZGF0YTpnZX0sWixZKSxnYShudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpnZX0sbnVsbCxhKSxvZT1pPWUudmFsdWUsZ2UmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z2V9KX1zdGF0aWMgZGVtbz1CYnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPW8xKHRoaXMsbiwiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoZ2Upe3RoaXMuI2U9Z2V9I3Q9KG8xKHRoaXMsbyksbzEodGhpcyxjLCIiKSk7Z2V0IHBvc3Rlcigpe3JldHVybiB0aGlzLiN0fXNldCBwb3N0ZXIoZ2Upe3RoaXMuI3Q9Z2V9I2E9KG8xKHRoaXMscCksbzEodGhpcyxmLCEwKSk7Z2V0IHNob3dDb250cm9scygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93Q29udHJvbHMoZ2Upe3RoaXMuI2E9Z2V9I2k9KG8xKHRoaXMsZyksbzEodGhpcyx2LCExKSk7Z2V0IGF1dG9wbGF5KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGF1dG9wbGF5KGdlKXt0aGlzLiNpPWdlfSNyPShvMSh0aGlzLG0pLG8xKHRoaXMsTSwhMSkpO2dldCBsb29wKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxvb3AoZ2Upe3RoaXMuI3I9Z2V9I3M9KG8xKHRoaXMsUyksbzEodGhpcyxfLCExKSk7Z2V0IG11dGVkKCl7cmV0dXJuIHRoaXMuI3N9c2V0IG11dGVkKGdlKXt0aGlzLiNzPWdlfSNuPShvMSh0aGlzLGspLG8xKHRoaXMsTCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaXNQbGF5aW5nKGdlKXt0aGlzLiNuPWdlfSNvPShvMSh0aGlzLEEpLG8xKHRoaXMsQywwKSk7Z2V0IGN1cnJlbnRUaW1lKCl7cmV0dXJuIHRoaXMuI299c2V0IGN1cnJlbnRUaW1lKGdlKXt0aGlzLiNvPWdlfSNsPShvMSh0aGlzLHopLG8xKHRoaXMsVCwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGR1cmF0aW9uKGdlKXt0aGlzLiNsPWdlfSNjPShvMSh0aGlzLCQpLG8xKHRoaXMsUiwxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoZ2Upe3RoaXMuI2M9Z2V9I2Q9KG8xKHRoaXMsVSksbzEodGhpcyxqLCEwKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgbG9hZGluZyhnZSl7dGhpcy4jZD1nZX0jcD0obzEodGhpcyxtZSksbzEodGhpcyxILCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGVycm9yKGdlKXt0aGlzLiNwPWdlfSNoPShvMSh0aGlzLGNlKSxvMSh0aGlzLFcsITEpKTtnZXQgaXNGdWxsc2NyZWVuKCl7cmV0dXJuIHRoaXMuI2h9c2V0IGlzRnVsbHNjcmVlbihnZSl7dGhpcy4jaD1nZX0jdT0obzEodGhpcyxEKSxvMSh0aGlzLFosITApKTtnZXQgY29udHJvbHNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGNvbnRyb2xzVmlzaWJsZShnZSl7dGhpcy4jdT1nZX1oaWRlQ29udHJvbHNUaW1lcj0obzEodGhpcyxZKSxudWxsKTt2aWRlb0VsZW1lbnQ9bnVsbDtyZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLnZpZGVvLWNvbnRhaW5lciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5OwogICAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQoKICAgICAgICB2aWRlbyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIC5vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIHRvcDogNTAlOwogICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgICB3aWR0aDogNjRweDsKICAgICAgICAgIGhlaWdodDogNjRweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgICAgb3BhY2l0eTogJHt0aGlzLmlzUGxheWluZz8wOjF9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6ICR7dGhpcy5pc1BsYXlpbmc/Im5vbmUiOiJhdXRvIn07CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXkgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheTpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxLjEpOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRyb2xzLWJhciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC43KSk7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDEycHggMTJweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBvcGFjaXR5OiAke3RoaXMuY29udHJvbHNWaXNpYmxlfHwhdGhpcy5pc1BsYXlpbmc/MTowfTsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcm93IHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1yb3c6aG92ZXIgewogICAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgfQoKICAgICAgICAuc2Vla2Jhci1wcm9ncmVzcyB7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy1yb3cgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CgogICAgICAgIC5jdHJsLWJ1dHRvbiB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5jdHJsLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpOwogICAgICAgIH0KCiAgICAgICAgLnRpbWUtZGlzcGxheSB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAuc3BhY2VyIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlciB7CiAgICAgICAgICB3aWR0aDogNjBweDsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAudm9sdW1lLXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIgewogICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWIgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IGRlZXMtaWNvbiB7CiAgICAgICAgICBjb2xvcjogI2Y4NzE3MTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InZpZGVvLWNvbnRhaW5lciIKICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5oYW5kbGVNb3VzZU1vdmV9CiAgICAgICAgQG1vdXNlbGVhdmU9JHt0aGlzLmhhbmRsZU1vdXNlTGVhdmV9CiAgICAgID4KICAgICAgICA8dmlkZW8KICAgICAgICAgIC5zcmM9JHt0aGlzLnNyY30KICAgICAgICAgIC5wb3N0ZXI9JHt0aGlzLnBvc3Rlcn0KICAgICAgICAgIC5tdXRlZD0ke3RoaXMubXV0ZWR9CiAgICAgICAgICAubG9vcD0ke3RoaXMubG9vcH0KICAgICAgICAgID9hdXRvcGxheT0ke3RoaXMuYXV0b3BsYXl9CiAgICAgICAgICA/Y29udHJvbHM9JHshdGhpcy5zaG93Q29udHJvbHN9CiAgICAgICAgICBwbGF5c2lubGluZQogICAgICAgICAgQGxvYWRlZG1ldGFkYXRhPSR7dGhpcy5oYW5kbGVMb2FkZWRNZXRhZGF0YX0KICAgICAgICAgIEBwbGF5PSR7dGhpcy5oYW5kbGVQbGF5fQogICAgICAgICAgQHBhdXNlPSR7dGhpcy5oYW5kbGVQYXVzZX0KICAgICAgICAgIEBlbmRlZD0ke3RoaXMuaGFuZGxlRW5kZWR9CiAgICAgICAgICBAdGltZXVwZGF0ZT0ke3RoaXMuaGFuZGxlVGltZVVwZGF0ZX0KICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlRXJyb3J9CiAgICAgICAgICBAd2FpdGluZz0keygpPT57dGhpcy5sb2FkaW5nPSEwfX0KICAgICAgICAgIEBjYW5wbGF5PSR7KCk9Pnt0aGlzLmxvYWRpbmc9ITF9fQogICAgICAgID48L3ZpZGVvPgoKICAgICAgICAke3RoaXMuc2hvd0NvbnRyb2xzP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5IiBAY2xpY2s9JHt0aGlzLmhhbmRsZU92ZXJsYXlDbGlja30+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNlbnRlci1wbGF5Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scy1iYXIiIEBjbGljaz0ke2dlPT5nZS5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1yb3ciIEBjbGljaz0ke3RoaXMuaGFuZGxlU2Vla30+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLXByb2dyZXNzIiBzdHlsZT0id2lkdGg6ICR7dGhpcy5kdXJhdGlvbj90aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb24qMTAwOjB9JSI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzLXJvdyI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHJsLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVQbGF5fT4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzUGxheWluZz8iUGF1c2UiOiJQbGF5In0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWUtZGlzcGxheSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuY3VycmVudFRpbWUpfSAvICR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfQogICAgICAgICAgICAgICAgPC9zcGFuPgoKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzcGFjZXIiPjwvc3Bhbj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2b2x1bWUtZ3JvdXAiPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHJsLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVNdXRlfT4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMubXV0ZWR8fHRoaXMudm9sdW1lPT09MD8iVm9sdW1lWCI6dGhpcy52b2x1bWU8LjU/IlZvbHVtZTEiOiJWb2x1bWUyIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9InZvbHVtZS1zbGlkZXIiCiAgICAgICAgICAgICAgICAgICAgdHlwZT0icmFuZ2UiCiAgICAgICAgICAgICAgICAgICAgbWluPSIwIgogICAgICAgICAgICAgICAgICAgIG1heD0iMSIKICAgICAgICAgICAgICAgICAgICBzdGVwPSIwLjAxIgogICAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLm11dGVkPzA6dGhpcy52b2x1bWUpfQogICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke3RoaXMuaGFuZGxlVm9sdW1lQ2hhbmdlfQogICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlRnVsbHNjcmVlbn0gdGl0bGU9IkZ1bGxzY3JlZW4iPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNGdWxsc2NyZWVuPyJNaW5pbWl6ZSI6Ik1heGltaXplIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLmxvYWRpbmcmJiF0aGlzLmVycm9yP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLW92ZXJsYXkiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLmVycm9yP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1vdmVybGF5Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VmlkZW9PZmYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnZpZGVvRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIil8fG51bGwsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZnVsbHNjcmVlbmNoYW5nZSIsdGhpcy5oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZnVsbHNjcmVlbmNoYW5nZSIsdGhpcy5oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlKSx0aGlzLmhpZGVDb250cm9sc1RpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5oaWRlQ29udHJvbHNUaW1lcil9cGxheSgpe3RoaXMudmlkZW9FbGVtZW50Py5wbGF5KCl9cGF1c2UoKXt0aGlzLnZpZGVvRWxlbWVudD8ucGF1c2UoKX10b2dnbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc/dGhpcy5wYXVzZSgpOnRoaXMucGxheSgpfXNlZWsoZ2Upe3RoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQuY3VycmVudFRpbWU9Z2UpfXNldFZvbHVtZShnZSl7dGhpcy52b2x1bWU9TWF0aC5tYXgoMCxNYXRoLm1pbigxLGdlKSksdGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLnZpZGVvRWxlbWVudC52b2x1bWU9dGhpcy52b2x1bWUpfXRvZ2dsZUZ1bGxzY3JlZW4oKXtsZXQgZ2U9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlkZW8tY29udGFpbmVyIik7Z2UmJih0aGlzLmlzRnVsbHNjcmVlbj9kb2N1bWVudC5leGl0RnVsbHNjcmVlbj8uKCk6Z2UucmVxdWVzdEZ1bGxzY3JlZW4/LigpKX1oYW5kbGVMb2FkZWRNZXRhZGF0YSgpe3RoaXMudmlkZW9FbGVtZW50JiYodGhpcy5kdXJhdGlvbj10aGlzLnZpZGVvRWxlbWVudC5kdXJhdGlvbix0aGlzLmxvYWRpbmc9ITEpfWhhbmRsZVBsYXkoKXt0aGlzLmlzUGxheWluZz0hMCx0aGlzLnNjaGVkdWxlSGlkZUNvbnRyb2xzKCl9aGFuZGxlUGF1c2UoKXt0aGlzLmlzUGxheWluZz0hMSx0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMH1oYW5kbGVFbmRlZCgpe3RoaXMuaXNQbGF5aW5nPSExLHRoaXMuY29udHJvbHNWaXNpYmxlPSEwfWhhbmRsZVRpbWVVcGRhdGUoKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMuY3VycmVudFRpbWU9dGhpcy52aWRlb0VsZW1lbnQuY3VycmVudFRpbWUpfWhhbmRsZUVycm9yKCl7dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgdmlkZW8iLHRoaXMubG9hZGluZz0hMX1oYW5kbGVPdmVybGF5Q2xpY2soKXt0aGlzLnRvZ2dsZVBsYXkoKX1oYW5kbGVTZWVrKGdlKXtsZXQgYmU9Z2UuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwkZT0oZ2UuY2xpZW50WC1iZS5sZWZ0KS9iZS53aWR0aDt0aGlzLnNlZWsoJGUqdGhpcy5kdXJhdGlvbil9aGFuZGxlVm9sdW1lQ2hhbmdlKGdlKXtsZXQgYmU9cGFyc2VGbG9hdChnZS50YXJnZXQudmFsdWUpO3RoaXMuc2V0Vm9sdW1lKGJlKSx0aGlzLm11dGVkPWJlPT09MH10b2dnbGVNdXRlKCl7dGhpcy5tdXRlZD0hdGhpcy5tdXRlZCx0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMudmlkZW9FbGVtZW50Lm11dGVkPXRoaXMubXV0ZWQpfWhhbmRsZU1vdXNlTW92ZSgpe3RoaXMuY29udHJvbHNWaXNpYmxlPSEwLHRoaXMuc2NoZWR1bGVIaWRlQ29udHJvbHMoKX1oYW5kbGVNb3VzZUxlYXZlKCl7dGhpcy5pc1BsYXlpbmcmJih0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMSl9c2NoZWR1bGVIaWRlQ29udHJvbHMoKXt0aGlzLmhpZGVDb250cm9sc1RpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5oaWRlQ29udHJvbHNUaW1lciksdGhpcy5pc1BsYXlpbmcmJih0aGlzLmhpZGVDb250cm9sc1RpbWVyPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMX0sM2UzKSl9aGFuZGxlRnVsbHNjcmVlbkNoYW5nZT0oKT0+e3RoaXMuaXNGdWxsc2NyZWVuPSEhZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnR9O2Zvcm1hdFRpbWUoZ2Upe2lmKCFpc0Zpbml0ZShnZSl8fGdlPDApcmV0dXJuIjA6MDAiO2xldCBiZT1NYXRoLmZsb29yKGdlLzYwKSwkZT1NYXRoLmZsb29yKGdlJTYwKTtyZXR1cm5gJHtiZX06JHskZS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gfXN0YXRpY3tvMShpLGEpfX07cmV0dXJuIG9lPWl9KSgpfSk7dmFyIFZidD1iKCgpPT57SFYoKX0pO3ZhciBVcixudz1iKCgpPT57dWUoKTtVcj1jbGFzc3tzdGF0aWMgcGRmanNMaWI7c3RhdGljIGluaXRpYWxpemVkPSExO3N0YXRpYyBhc3luYyBpbml0aWFsaXplKCl7dGhpcy5pbml0aWFsaXplZHx8KHRoaXMucGRmanNMaWI9YXdhaXQgaW1wb3J0KCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS8rZXNtIiksdGhpcy5wZGZqc0xpYi5HbG9iYWxXb3JrZXJPcHRpb25zLndvcmtlclNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvYnVpbGQvcGRmLndvcmtlci5tanMiLHRoaXMuaW5pdGlhbGl6ZWQ9ITApfXN0YXRpYyBhc3luYyBsb2FkRG9jdW1lbnQoZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpLGF3YWl0IHRoaXMucGRmanNMaWIuZ2V0RG9jdW1lbnQoZSkucHJvbWlzZX1zdGF0aWMgcmVsZWFzZURvY3VtZW50KGUpe319fSk7dmFyIGpidCxVYnQ9YigoKT0+e3VlKCk7amJ0PVtoLmRlZmF1bHRTdHlsZXMsUWAKICAgIDpob3N0IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgIGNvbnRhaW46IGxheW91dCBzdHlsZTsKICAgIH0KCiAgICAucGRmLXZpZXdlciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC50b29sYmFyIHsKICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgIGdhcDogMTZweDsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLnRvb2xiYXItZ3JvdXAgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDRweDsKICAgIH0KCiAgICAudG9vbGJhci1ncm91cC0tZW5kIHsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgIG9wYWNpdHk6IDAuNDsKICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgfQoKICAgIC5wYWdlLWluZm8gewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAucGFnZS1pbnB1dCB7CiAgICAgIHdpZHRoOiA0OHB4OwogICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMjIgNDclIDExJSkiLCJoc2woMjEwIDIwJSA5NiUpIil9OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICAgIG91dGxpbmU6IG5vbmU7CiAgICB9CgogICAgLnBhZ2UtaW5wdXQ6Zm9jdXMgewogICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAucGFnZS1zZXBhcmF0b3IgewogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDYwJSkiLCJoc2woMjE1IDE2JSA1MCUpIil9OwogICAgfQoKICAgIC56b29tLWxldmVsIHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBtaW4td2lkdGg6IDQ4cHg7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIH0KCiAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgIGZsZXg6IDE7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgbWluLWhlaWdodDogMDsKICAgIH0KCiAgICAuc2lkZWJhciB7CiAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnNpZGViYXItaGVhZGVyIHsKICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MSUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5zaWRlYmFyLWNsb3NlIHsKICAgICAgd2lkdGg6IDI0cHg7CiAgICAgIGhlaWdodDogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICB9CgogICAgLnNpZGViYXItY2xvc2U6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICB9CgogICAgLnNpZGViYXItY2xvc2UgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgfQoKICAgIC5zaWRlYmFyLWNvbnRlbnQgewogICAgICBmbGV4OiAxOwogICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICBtaW4taGVpZ2h0OiAwOwogICAgfQoKICAgIC50aHVtYm5haWwgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDIxNSAyMCUgMTglKSIpfTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICAvKiBEZWZhdWx0IEE0IGFzcGVjdCByYXRpbyAoMjk3bW0gLyAyMTBtbSDiiYggMS40MTQpICovCiAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTc2cHggKiAxLjQxNCk7CiAgICB9CgogICAgLnRodW1ibmFpbDpsYXN0LWNoaWxkIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIH0KCiAgICAudGh1bWJuYWlsOmhvdmVyIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDM1JSkiKX07CiAgICB9CgogICAgLnRodW1ibmFpbC5hY3RpdmUgewogICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAudGh1bWJuYWlsLWNhbnZhcyB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgICB9CgogICAgLnRodW1ibmFpbC1udW1iZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogNHB4OwogICAgICByaWdodDogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjcpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICBjb2xvcjogd2hpdGU7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgfQoKICAgIC52aWV3ZXItbWFpbiB7CiAgICAgIGZsZXg6IDE7CiAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAubG9hZGluZy1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBnYXA6IDE2cHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAzMnB4OwogICAgICBoZWlnaHQ6IDMycHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQoKICAgIC5sb2FkaW5nLXRleHQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnBhZ2VzLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogMjBweDsKICAgIH0KCiAgICAucGFnZS13cmFwcGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIC5jYW52YXMtY29udGFpbmVyIHsKICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAucGFnZS1jYW52YXMgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OwogICAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzOwogICAgfQoKICAgIC8qIFRleHQgbGF5ZXIgZm9yIHNlbGVjdGlvbiAqLwogICAgLnRleHQtbGF5ZXIgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAwOwogICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIHRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7CiAgICAgIGZvcmNlZC1jb2xvci1hZGp1c3Q6IG5vbmU7CiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDsKICAgICAgei1pbmRleDogMTsKICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgc3BhbiwKICAgIC50ZXh0LWxheWVyIGJyIHsKICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CiAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7CiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0OwogICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0OwogICAgfQoKICAgIC50ZXh0LWxheWVyIDo6c2VsZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDAsIDIwMCwgMC4zKTsKICAgIH0KCiAgICAudGV4dC1sYXllciBicjo6c2VsZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgLmVuZE9mQ29udGVudCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGluc2V0OiAxMDAlIDAgMDsKICAgICAgei1pbmRleDogMDsKICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgIH0KCiAgICAudGV4dC1sYXllci5zZWxlY3RpbmcgLmVuZE9mQ29udGVudCB7CiAgICAgIHRvcDogMDsKICAgIH0KCiAgICAucGRmLXZpZXdlci53aXRoLXNpZGViYXIgLnZpZXdlci1tYWluIHsKICAgICAgbWFyZ2luLWxlZnQ6IDA7CiAgICB9CiAgYF19KTt2YXIgV2J0LEdidD1iKCgpPT57dWUoKTtXYnQ9KCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KCiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDsKICAgIH0KCiAgICBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KCiAgICBkZWVzLXBkZi12aWV3ZXIgewogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnZpZXdlci10YWxsIHsKICAgICAgaGVpZ2h0OiA4MDBweDsKICAgIH0KCiAgICAudmlld2VyLWNvbXBhY3QgewogICAgICBoZWlnaHQ6IDUwMHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5GdWxsIEZlYXR1cmVkIFBERiBWaWV3ZXIgd2l0aCBUb29sYmFyPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItdGFsbCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0idHJ1ZSIKICAgICAgICBzaG93U2lkZWJhcj0iZmFsc2UiCiAgICAgICAgaW5pdGlhbFpvb209InBhZ2UtZml0IgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UERGIFZpZXdlciB3aXRoIFNpZGViYXIgTmF2aWdhdGlvbjwvaDM+CiAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICBjbGFzcz0idmlld2VyLXRhbGwiCiAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgc2hvd1Rvb2xiYXI9InRydWUiCiAgICAgICAgc2hvd1NpZGViYXI9InRydWUiCiAgICAgICAgaW5pdGlhbFpvb209InBhZ2Utd2lkdGgiCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Db21wYWN0IFZpZXdlciB3aXRob3V0IENvbnRyb2xzPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItY29tcGFjdCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0iZmFsc2UiCiAgICAgICAgc2hvd1NpZGViYXI9ImZhbHNlIgogICAgICAgIGluaXRpYWxab29tPSJhdXRvIgogICAgICA+PC9kZWVzLXBkZi12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBYYSx6MSxZYnQscVY9YigoKT0+e3VlKCk7bncoKTtVYnQoKTtHYnQoKTtEdCgpO1hhPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sejE9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFlidD0oKCk9PntsZXQgdD1baGUoImRlZXMtcGRmLXZpZXdlciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdLE4sTD1bXSxBPVtdLHEsQz1bXSx6PVtdLEUsVD1bXSwkPVtdLFYsUj1bXSxVPVtdLHJlLGo9W10sbWU9W10sd2UsSD1bXSxjZT1bXTt2YXIga2U9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBXPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6TnVtYmVyfSldLGw9W0koe3R5cGU6U3RyaW5nfSldLHk9W0koe3R5cGU6Qm9vbGVhbn0pXSx4PVtJKHt0eXBlOkJvb2xlYW59KV0sRj1bSSh7dHlwZTpOdW1iZXJ9KV0sTj1bSSh7dHlwZTpOdW1iZXJ9KV0scT1bSSh7dHlwZTpOdW1iZXJ9KV0sRT1bSSh7dHlwZTpCb29sZWFufSldLFY9W0koe3R5cGU6U3RyaW5nfSldLHJlPVtJKHt0eXBlOkFycmF5fSldLHdlPVtJKHt0eXBlOkFycmF5fSldLFhhKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4icGRmVXJsImluIEQsZ2V0OkQ9PkQucGRmVXJsLHNldDooRCxPKT0+e0QucGRmVXJsPU99fSxtZXRhZGF0YTpXfSxuLG8pLFhhKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJpbml0aWFsUGFnZSJpbiBELGdldDpEPT5ELmluaXRpYWxQYWdlLHNldDooRCxPKT0+e0QuaW5pdGlhbFBhZ2U9T319LG1ldGFkYXRhOld9LGMscCksWGEodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsWm9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImluaXRpYWxab29tImluIEQsZ2V0OkQ9PkQuaW5pdGlhbFpvb20sc2V0OihELE8pPT57RC5pbml0aWFsWm9vbT1PfX0sbWV0YWRhdGE6V30sZixnKSxYYSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ic2hvd1Rvb2xiYXIiaW4gRCxnZXQ6RD0+RC5zaG93VG9vbGJhcixzZXQ6KEQsTyk9PntELnNob3dUb29sYmFyPU99fSxtZXRhZGF0YTpXfSx2LG0pLFhhKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NpZGViYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJzaG93U2lkZWJhciJpbiBELGdldDpEPT5ELnNob3dTaWRlYmFyLHNldDooRCxPKT0+e0Quc2hvd1NpZGViYXI9T319LG1ldGFkYXRhOld9LE0sUyksWGEodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImN1cnJlbnRQYWdlImluIEQsZ2V0OkQ9PkQuY3VycmVudFBhZ2Usc2V0OihELE8pPT57RC5jdXJyZW50UGFnZT1PfX0sbWV0YWRhdGE6V30sXyxrKSxYYSh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsUGFnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJ0b3RhbFBhZ2VzImluIEQsZ2V0OkQ9PkQudG90YWxQYWdlcyxzZXQ6KEQsTyk9PntELnRvdGFsUGFnZXM9T319LG1ldGFkYXRhOld9LEwsQSksWGEodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50Wm9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+ImN1cnJlbnRab29tImluIEQsZ2V0OkQ9PkQuY3VycmVudFpvb20sc2V0OihELE8pPT57RC5jdXJyZW50Wm9vbT1PfX0sbWV0YWRhdGE6V30sQyx6KSxYYSh0aGlzLG51bGwsRSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJsb2FkaW5nImluIEQsZ2V0OkQ9PkQubG9hZGluZyxzZXQ6KEQsTyk9PntELmxvYWRpbmc9T319LG1ldGFkYXRhOld9LFQsJCksWGEodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb2N1bWVudElkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4iZG9jdW1lbnRJZCJpbiBELGdldDpEPT5ELmRvY3VtZW50SWQsc2V0OihELE8pPT57RC5kb2N1bWVudElkPU99fSxtZXRhZGF0YTpXfSxSLFUpLFhhKHRoaXMsbnVsbCxyZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJ0aHVtYm5haWxEYXRhImluIEQsZ2V0OkQ9PkQudGh1bWJuYWlsRGF0YSxzZXQ6KEQsTyk9PntELnRodW1ibmFpbERhdGE9T319LG1ldGFkYXRhOld9LGosbWUpLFhhKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhZ2VEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4icGFnZURhdGEiaW4gRCxnZXQ6RD0+RC5wYWdlRGF0YSxzZXQ6KEQsTyk9PntELnBhZ2VEYXRhPU99fSxtZXRhZGF0YTpXfSxILGNlKSxYYShudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpXfSxudWxsLGEpLGtlPWk9ZS52YWx1ZSxXJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOld9KX1zdGF0aWMgZGVtbz1XYnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIlBERiJdO3N0YXRpYyBzdHlsZXM9amJ0OyNlPXoxKHRoaXMsbiwiIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoVyl7dGhpcy4jZT1XfSN0PSh6MSh0aGlzLG8pLHoxKHRoaXMsYywxKSk7Z2V0IGluaXRpYWxQYWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxQYWdlKFcpe3RoaXMuI3Q9V30jYT0oejEodGhpcyxwKSx6MSh0aGlzLGYsImF1dG8iKSk7Z2V0IGluaXRpYWxab29tKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGluaXRpYWxab29tKFcpe3RoaXMuI2E9V30jaT0oejEodGhpcyxnKSx6MSh0aGlzLHYsITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1Rvb2xiYXIoVyl7dGhpcy4jaT1XfSNyPSh6MSh0aGlzLG0pLHoxKHRoaXMsTSwhMSkpO2dldCBzaG93U2lkZWJhcigpe3JldHVybiB0aGlzLiNyfXNldCBzaG93U2lkZWJhcihXKXt0aGlzLiNyPVd9I3M9KHoxKHRoaXMsUyksejEodGhpcyxfLDEpKTtnZXQgY3VycmVudFBhZ2UoKXtyZXR1cm4gdGhpcy4jc31zZXQgY3VycmVudFBhZ2UoVyl7dGhpcy4jcz1XfSNuPSh6MSh0aGlzLGspLHoxKHRoaXMsTCwxKSk7Z2V0IHRvdGFsUGFnZXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdG90YWxQYWdlcyhXKXt0aGlzLiNuPVd9I289KHoxKHRoaXMsQSksejEodGhpcyxDLDEpKTtnZXQgY3VycmVudFpvb20oKXtyZXR1cm4gdGhpcy4jb31zZXQgY3VycmVudFpvb20oVyl7dGhpcy4jbz1XfSNsPSh6MSh0aGlzLHopLHoxKHRoaXMsVCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGxvYWRpbmcoVyl7dGhpcy4jbD1XfSNjPSh6MSh0aGlzLCQpLHoxKHRoaXMsUiwiIikpO2dldCBkb2N1bWVudElkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGRvY3VtZW50SWQoVyl7dGhpcy4jYz1XfSNkPSh6MSh0aGlzLFUpLHoxKHRoaXMsaixbXSkpO2dldCB0aHVtYm5haWxEYXRhKCl7cmV0dXJuIHRoaXMuI2R9c2V0IHRodW1ibmFpbERhdGEoVyl7dGhpcy4jZD1XfSNwPSh6MSh0aGlzLG1lKSx6MSh0aGlzLEgsW10pKTtnZXQgcGFnZURhdGEoKXtyZXR1cm4gdGhpcy4jcH1zZXQgcGFnZURhdGEoVyl7dGhpcy4jcD1XfXBkZkRvY3VtZW50PXoxKHRoaXMsY2UpO3JlbmRlclN0YXRlPSJpZGxlIjtyZW5kZXJBYm9ydENvbnRyb2xsZXI9bnVsbDtwYWdlUmVuZGVyaW5nPSExO3BhZ2VOdW1QZW5kaW5nPW51bGw7Y3VycmVudFJlbmRlclRhc2s9bnVsbDtjdXJyZW50UmVuZGVyUHJvbWlzZT1udWxsO3RodW1ibmFpbFJlbmRlclRhc2tzPVtdO3BhZ2VSZW5kZXJUYXNrcz1uZXcgTWFwO3RleHRMYXllclJlbmRlclRhc2tzPW5ldyBNYXA7Y2FudmFzO2N0eDt2aWV3ZXJNYWluPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJzZWN0aW9uT2JzZXJ2ZXI7c2Nyb2xsVGhyb3R0bGVUaW1lb3V0O3ZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6MCxoZWlnaHQ6MH07dmlld3BvcnRNb2RlPSJhdXRvIjtNQU5VQUxfTUlOX1pPT009LjU7TUFOVUFMX01BWF9aT09NPTM7QUJTT0xVVEVfTUlOX1pPT009LjE7QUJTT0xVVEVfTUFYX1pPT009NDtQQUdFX0dBUD0yMDtSRU5ERVJfQlVGRkVSPTM7Y29uc3RydWN0b3IoKXtzdXBlcigpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJwZGYtdmlld2VyICR7dGhpcy5zaG93U2lkZWJhcj8id2l0aC1zaWRlYmFyIjoiIn0iPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucHJldmlvdXNQYWdlfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZTw9MX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpDaGV2cm9uTGVmdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiCiAgICAgICAgICAgICAgICAgIG1pbj0iMSIKICAgICAgICAgICAgICAgICAgbWF4PSIke3RoaXMudG90YWxQYWdlc30iCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmN1cnJlbnRQYWdlKX0KICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlUGFnZUlucHV0fQogICAgICAgICAgICAgICAgICBjbGFzcz0icGFnZS1pbnB1dCIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS10b3RhbCI+JHt0aGlzLnRvdGFsUGFnZXN9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMubmV4dFBhZ2V9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmN1cnJlbnRQYWdlPj10aGlzLnRvdGFsUGFnZXN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Q2hldnJvblJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21PdXR9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tT3V0fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21PdXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucmVzZXRab29tfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ6b29tLWxldmVsIj4ke01hdGgucm91bmQodGhpcy5jdXJyZW50Wm9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy56b29tSW59CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tSW59CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmZpdFRvUGFnZX0KICAgICAgICAgICAgICAgIHRpdGxlPSJGaXQgdG8gcGFnZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5maXRUb1dpZHRofQogICAgICAgICAgICAgICAgdGl0bGU9IkZpdCB0byB3aWR0aCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBcnJvd0xlZnRSaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCB0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dTaWRlYmFyPSF0aGlzLnNob3dTaWRlYmFyfQogICAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5zaG93U2lkZWJhcj8iSGlkZSB0aHVtYm5haWxzIjoiU2hvdyB0aHVtYm5haWxzIn0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIke3RoaXMuc2hvd1NpZGViYXI/Imx1Y2lkZTpTaWRlYmFyQ2xvc2UiOiJsdWNpZGU6U2lkZWJhciJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmRvd25sb2FkUGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IkRvd25sb2FkIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkRvd25sb2FkIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByaW50UGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IlByaW50IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlByaW50ZXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnNob3dTaWRlYmFyP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuPlBhZ2VzPC9zcGFuPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ic2lkZWJhci1jbG9zZSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd1NpZGViYXI9ITF9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7VmEua2V5ZWQodGhpcy5kb2N1bWVudElkLHdgCiAgICAgICAgICAgICAgICAgICR7VmEucmVwZWF0KHRoaXMudGh1bWJuYWlsRGF0YSxXPT5XLnBhZ2UsVz0+d2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRodW1ibmFpbCAke3RoaXMuY3VycmVudFBhZ2U9PT1XLnBhZ2U/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXBhZ2U9IiR7Vy5wYWdlfSIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaHVtYm5haWxDbGlja30KICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0idGh1bWJuYWlsLWNhbnZhcyIgZGF0YS1wYWdlPSIke1cucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGh1bWJuYWlsLW51bWJlciI+JHtXLnBhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1tYWluIiBAc2Nyb2xsPSR7dGhpcy5oYW5kbGVTY3JvbGx9PgogICAgICAgICAgICAke3RoaXMubG9hZGluZz93YAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPkxvYWRpbmcgUERGLi4uPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgJHtWYS5yZXBlYXQodGhpcy5wYWdlRGF0YSxXPT5XLnBhZ2UsVz0+d2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLXdyYXBwZXIiIGRhdGEtcGFnZT0iJHtXLnBhZ2V9Ij4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbnZhcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJwYWdlLWNhbnZhcyIgZGF0YS1wYWdlPSIke1cucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWxheWVyIiBkYXRhLXBhZ2U9IiR7Vy5wYWdlfSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZW5zdXJlVmlld2VyUmVmcygpLHRoaXMucGRmVXJsJiYodGhpcy5kb2N1bWVudElkPWAke3RoaXMucGRmVXJsfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLGF3YWl0IHRoaXMubG9hZFBkZigpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPXZvaWQgMCx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9dm9pZCAwKSx0aGlzLnJlbmRlclN0YXRlPSJkaXNwb3NlZCIsYXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLmNhbnZhcz12b2lkIDAsdGhpcy5jdHg9dm9pZCAwfWFzeW5jIHVwZGF0ZWQoVyl7aWYoc3VwZXIudXBkYXRlZChXKSxXLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgRD1XLmdldCgicGRmVXJsIik7RCYmVXIucmVsZWFzZURvY3VtZW50KEQpLHRoaXMuZG9jdW1lbnRJZD1gJHt0aGlzLnBkZlVybH0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxhd2FpdCB0aGlzLmxvYWRQZGYoKX1XLmhhcygic2hvd1NpZGViYXIiKSYmdGhpcy5zaG93U2lkZWJhciYmdGhpcy5wZGZEb2N1bWVudCYmKGF3YWl0IG5ldyBQcm9taXNlKEQ9PnJlcXVlc3RBbmltYXRpb25GcmFtZShEKSksdGhpcy50aHVtYm5haWxEYXRhLmZvckVhY2goRD0+RC5yZW5kZXJlZD0hMSksYXdhaXQgdGhpcy5yZW5kZXJUaHVtYm5haWxzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyh0aGlzLmN1cnJlbnRQYWdlKSl9YXN5bmMgbG9hZFBkZigpe3RoaXMubG9hZGluZz0hMCx0aGlzLnJlbmRlclN0YXRlPSJsb2FkaW5nIjt0cnl7YXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyO2xldCBXPXRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyLnNpZ25hbDtpZih0aGlzLnBkZkRvY3VtZW50PWF3YWl0IFVyLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksVy5hYm9ydGVkfHwodGhpcy50b3RhbFBhZ2VzPXRoaXMucGRmRG9jdW1lbnQubnVtUGFnZXMsdGhpcy5jdXJyZW50UGFnZT10aGlzLmluaXRpYWxQYWdlLHRoaXMucmVzb2x2ZUluaXRpYWxWaWV3cG9ydE1vZGUoKSx0aGlzLnRodW1ibmFpbERhdGE9QXJyYXkuZnJvbSh7bGVuZ3RoOnRoaXMudG90YWxQYWdlc30sKEQsTyk9Pih7cGFnZTpPKzEscmVuZGVyZWQ6ITF9KSksdGhpcy5wYWdlRGF0YT1BcnJheS5mcm9tKHtsZW5ndGg6dGhpcy50b3RhbFBhZ2VzfSwoRCxPKT0+KHtwYWdlOk8rMSxyZW5kZXJlZDohMSxyZW5kZXJpbmc6ITEsdGV4dExheWVyUmVuZGVyZWQ6ITF9KSksdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5lbnN1cmVWaWV3ZXJSZWZzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksYXdhaXQgbmV3IFByb21pc2UoRD0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEQpKSxXLmFib3J0ZWQpfHwodGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyaW5nLW1haW4iLGF3YWl0IHRoaXMucmVuZGVyVmlzaWJsZVBhZ2VzKCksVy5hYm9ydGVkKXx8KHRoaXMuaW5pdGlhbFBhZ2U+MSYmYXdhaXQgdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5pbml0aWFsUGFnZSwhMSksdGhpcy5zaG93U2lkZWJhciYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2UoRD0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEQpKSxXLmFib3J0ZWR8fChhd2FpdCB0aGlzLnJlbmRlclRodW1ibmFpbHMoKSxXLmFib3J0ZWQpKSkpcmV0dXJuO3RoaXMucmVuZGVyU3RhdGU9InJlbmRlcmVkIn1jYXRjaChXKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIFBERjoiLFcpLHRoaXMubG9hZGluZz0hMSx0aGlzLnJlbmRlclN0YXRlPSJlcnJvciJ9fXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXt0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyJiZ0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihEPT57Zm9yKGxldCBPIG9mIEQpe2xldCBaPU8udGFyZ2V0LFk9cGFyc2VJbnQoWi5kYXRhc2V0LnBhZ2V8fCIxIik7Ty5pc0ludGVyc2VjdGluZyYmdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoWSl9fSx7cm9vdDp0aGlzLnZpZXdlck1haW4scm9vdE1hcmdpbjpgJHt0aGlzLlJFTkRFUl9CVUZGRVIqMTAwfXB4IDBweGAsdGhyZXNob2xkOi4wMX0pO2xldCBXPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnBhZ2Utd3JhcHBlciIpO1cmJlcuZm9yRWFjaChEPT57dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj8ub2JzZXJ2ZShEKX0pfWFzeW5jIHJlbmRlclZpc2libGVQYWdlcygpe2lmKCF0aGlzLnZpZXdlck1haW4pcmV0dXJuO2xldCBXPXRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQ7Zm9yKGxldCBEIG9mIHRoaXMucGFnZURhdGEpe2xldCBPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7RC5wYWdlfSJdYCk7aWYoIU8pY29udGludWU7bGV0IFo9Ty5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxZPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvZT1aLnRvcC1ZLnRvcCxnZT1vZStaLmhlaWdodCxiZT10aGlzLlJFTkRFUl9CVUZGRVIqVztnZT49LWJlJiZvZTw9VytiZSYmYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoRC5wYWdlKX19YXN5bmMgcmVuZGVyUGFnZUlmTmVlZGVkKFcpe2xldCBEPXRoaXMucGFnZURhdGEuZmluZChPPT5PLnBhZ2U9PT1XKTtpZighKCFEfHxELnJlbmRlcmVkfHxELnJlbmRlcmluZykpe0QucmVuZGVyaW5nPSEwO3RyeXtsZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLWNhbnZhc1tkYXRhLXBhZ2U9IiR7V30iXWApO2lmKCFPKXtELnJlbmRlcmluZz0hMTtyZXR1cm59bGV0IFo9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFcpLFk9dGhpcy5jb21wdXRlVmlld3BvcnQoWiksb2U9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7Ty53aWR0aD1NYXRoLmZsb29yKFkud2lkdGgqb2UpLE8uaGVpZ2h0PU1hdGguZmxvb3IoWS5oZWlnaHQqb2UpLE8uc3R5bGUud2lkdGg9YCR7WS53aWR0aH1weGAsTy5zdHlsZS5oZWlnaHQ9YCR7WS5oZWlnaHR9cHhgO2xldCBnZT1PLmdldENvbnRleHQoIjJkIik7aWYoIWdlKXtaLmNsZWFudXA/LigpLEQucmVuZGVyaW5nPSExO3JldHVybn1nZS5zY2FsZShvZSxvZSk7bGV0IGJlPXtjYW52YXNDb250ZXh0OmdlLHZpZXdwb3J0Oll9LCRlPVoucmVuZGVyKGJlKTt0aGlzLnBhZ2VSZW5kZXJUYXNrcy5zZXQoVywkZSksYXdhaXQgJGUucHJvbWlzZSxaLmNsZWFudXA/LigpLEQucmVuZGVyZWQ9ITAsRC5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKFcpLGF3YWl0IHRoaXMucmVuZGVyVGV4dExheWVyKFcpLHRoaXMucmVxdWVzdFVwZGF0ZSgicGFnZURhdGEiKX1jYXRjaChPKXtPPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoYEVycm9yIHJlbmRlcmluZyBwYWdlICR7V306YCxPKSxELnJlbmRlcmluZz0hMSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5kZWxldGUoVyl9fX1hc3luYyByZW5kZXJUZXh0TGF5ZXIoVyl7bGV0IEQ9dGhpcy5wYWdlRGF0YS5maW5kKE89Pk8ucGFnZT09PVcpO2lmKCEoIUR8fEQudGV4dExheWVyUmVuZGVyZWQpKXRyeXtsZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC50ZXh0LWxheWVyW2RhdGEtcGFnZT0iJHtXfSJdYCk7aWYoIU8pcmV0dXJuO08uaW5uZXJIVE1MPSIiO2xldCBaPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShXKSxZPWF3YWl0IFouZ2V0VGV4dENvbnRlbnQoKSxvZT10aGlzLmNvbXB1dGVWaWV3cG9ydChaKSxnZT1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKTtPLnN0eWxlLndpZHRoPWAke29lLndpZHRofXB4YCxPLnN0eWxlLmhlaWdodD1gJHtvZS5oZWlnaHR9cHhgLE8uc3R5bGUuc2V0UHJvcGVydHkoIi0tc2NhbGUtZmFjdG9yIixTdHJpbmcob2Uuc2NhbGUpKTtsZXQgYmU9Z2UucmVuZGVyVGV4dExheWVyKHt0ZXh0Q29udGVudFNvdXJjZTpZLGNvbnRhaW5lcjpPLHZpZXdwb3J0Om9lfSk7dGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5zZXQoVyxiZSksYXdhaXQgYmUucHJvbWlzZTtsZXQgJGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7JGUuY2xhc3NOYW1lPSJlbmRPZkNvbnRlbnQiLE8uYXBwZW5kQ2hpbGQoJGUpO2xldCBCPSExLFA9bnVsbCxLPTAsZmU9KHBlLHRlKT0+e2xldCB6ZT1BcnJheS5mcm9tKE8ucXVlcnlTZWxlY3RvckFsbCgic3BhbiIpKTtmb3IobGV0IEZlIG9mIHplKXtsZXQgV2U9RmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYocGU+PVdlLmxlZnQmJnBlPD1XZS5yaWdodCYmdGU+PVdlLnRvcCYmdGU8PVdlLmJvdHRvbSl7bGV0IHllPUZlLmZpcnN0Q2hpbGQ7aWYoeWUmJnllLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2xldCBlZT15ZS50ZXh0Q29udGVudHx8IiIsYWU9V2Uud2lkdGgvZWUubGVuZ3RoLHZlPXBlLVdlLmxlZnQsUGU9TWF0aC5taW4oTWF0aC5yb3VuZCh2ZS9hZSksZWUubGVuZ3RoKTtyZXR1cm57bm9kZTp5ZSxvZmZzZXQ6UGV9fX19cmV0dXJuIG51bGx9LGRlPSgpPT57QiYmKEI9ITEsUD1udWxsLE8uY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0aW5nIikpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLGRlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLF9lKX0sX2U9cGU9PntpZighQnx8IVApcmV0dXJuO3BlLnByZXZlbnREZWZhdWx0KCk7bGV0IHRlPWZlKHBlLmNsaWVudFgscGUuY2xpZW50WSk7aWYodGUpe2xldCB6ZT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoemUpdHJ5e3plLnNldEJhc2VBbmRFeHRlbnQoUCxLLHRlLm5vZGUsdGUub2Zmc2V0KX1jYXRjaHt9fX07Ty5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHBlPT57aWYocGUuYnV0dG9uIT09MClyZXR1cm47bGV0IHRlPWZlKHBlLmNsaWVudFgscGUuY2xpZW50WSk7dGUmJihwZS5wcmV2ZW50RGVmYXVsdCgpLEI9ITAsUD10ZS5ub2RlLEs9dGUub2Zmc2V0LE8uY2xhc3NMaXN0LmFkZCgic2VsZWN0aW5nIiksd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLF9lKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixkZSkpfSksRC50ZXh0TGF5ZXJSZW5kZXJlZD0hMCxaLmNsZWFudXA/LigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZGVsZXRlKFcpfWNhdGNoKE8pe08/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcihgRXJyb3IgcmVuZGVyaW5nIHRleHQgbGF5ZXIgZm9yIHBhZ2UgJHtXfTpgLE8pLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZGVsZXRlKFcpfX1oYW5kbGVTY3JvbGw9KCk9Pnt0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGhyb3R0bGVUaW1lb3V0KSx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dD13aW5kb3cuc2V0VGltZW91dCgoKT0+e3RoaXMudXBkYXRlQ3VycmVudFBhZ2UoKSx0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSw1MCl9O3VwZGF0ZUN1cnJlbnRQYWdlKCl7aWYoIXRoaXMudmlld2VyTWFpbilyZXR1cm47bGV0IFc9dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcCxEPXRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQsTz1XK0QvMjtmb3IobGV0IFo9MDtaPHRoaXMucGFnZURhdGEubGVuZ3RoO1orKyl7bGV0IFk9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHtaKzF9Il1gKTtpZighWSljb250aW51ZTtsZXQgb2U9WS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxnZT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYmU9b2UudG9wLWdlLnRvcCtXLCRlPWJlK29lLmhlaWdodDtpZihPPj1iZSYmTzw9JGUpe3RoaXMuY3VycmVudFBhZ2UhPT1aKzEmJih0aGlzLmN1cnJlbnRQYWdlPVorMSx0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNjcm9sbFRodW1ibmFpbEludG9WaWV3KForMSkpO2JyZWFrfX19c2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoVyl7bGV0IEQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAudGh1bWJuYWlsW2RhdGEtcGFnZT0iJHtXfSJdYCksTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zaWRlYmFyLWNvbnRlbnQiKTtpZihEJiZPKXtsZXQgWj1ELmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFk9Ty5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvZT1aLnRvcDxZLnRvcCxnZT1aLmJvdHRvbT5ZLmJvdHRvbTtpZihvZXx8Z2Upe2xldCBiZT1ELm9mZnNldFRvcCwkZT1ELm9mZnNldEhlaWdodCxCPU8uY2xpZW50SGVpZ2h0LFA9YmUtQi8yKyRlLzI7Ty5zY3JvbGxUbyh7dG9wOk1hdGgubWF4KDAsUCksYmVoYXZpb3I6InNtb290aCJ9KX19fWFzeW5jIHNjcm9sbFRvUGFnZShXLEQ9ITApe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAucGFnZS13cmFwcGVyW2RhdGEtcGFnZT0iJHtXfSJdYCk7aWYoTyYmdGhpcy52aWV3ZXJNYWluKXtsZXQgWj1PLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFk9dGhpcy52aWV3ZXJNYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGdlPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3ArKFoudG9wLVkudG9wKS10aGlzLnZpZXdlck1haW4uY2xpZW50VG9wO0Q/dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvKHt0b3A6Z2UsYmVoYXZpb3I6InNtb290aCJ9KTp0aGlzLnZpZXdlck1haW4uc2Nyb2xsVG9wPWdlLHRoaXMuY3VycmVudFBhZ2U9Vyx0aGlzLnNob3dTaWRlYmFyJiZ0aGlzLnNjcm9sbFRodW1ibmFpbEludG9WaWV3KFcpLGF3YWl0IHRoaXMucmVuZGVyUGFnZUlmTmVlZGVkKFcpfX1hc3luYyByZW5kZXJUaHVtYm5haWxzKCl7aWYoIXRoaXMucGRmRG9jdW1lbnR8fHRoaXMudGh1bWJuYWlsRGF0YS5sZW5ndGg+MCYmdGhpcy50aHVtYm5haWxEYXRhLmV2ZXJ5KEQ9PkQucmVuZGVyZWQpfHx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj8uc2lnbmFsLmFib3J0ZWQpcmV0dXJuO2xldCBXPXRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPy5zaWduYWw7dGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyaW5nLXRodW1icyI7Zm9yKGxldCBEIG9mIHRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3MpdHJ5e0QuY2FuY2VsKCl9Y2F0Y2h7fXRoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W107dHJ5e2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IEQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCIudGh1bWJuYWlsIiksTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi50aHVtYm5haWwtY2FudmFzIiksWj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zaWRlYmFyLWNvbnRlbnQiKSxZPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKFopLGdlPTIwMC0ocGFyc2VGbG9hdChZLnBhZGRpbmdMZWZ0KStwYXJzZUZsb2F0KFkucGFkZGluZ1JpZ2h0KSktNDtmb3IobGV0IGJlIG9mIEFycmF5LmZyb20oTykpe2xldCAkZT1iZS5nZXRDb250ZXh0KCIyZCIpOyRlJiYkZS5jbGVhclJlY3QoMCwwLGJlLndpZHRoLGJlLmhlaWdodCl9Zm9yKGxldCBiZT0wO2JlPE8ubGVuZ3RoO2JlKyspe2lmKFc/LmFib3J0ZWQpcmV0dXJuO2xldCAkZT1PW2JlXSxCPURbYmVdLFA9cGFyc2VJbnQoJGUuZGF0YXNldC5wYWdlfHwiMSIpLEs9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFApLGZlPUsuZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSxkZT1nZS9mZS53aWR0aCxfZT1LLmdldFZpZXdwb3J0KHtzY2FsZTpkZX0pLHBlPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxOyRlLndpZHRoPU1hdGguZmxvb3IoX2Uud2lkdGgqcGUpLCRlLmhlaWdodD1NYXRoLmZsb29yKF9lLmhlaWdodCpwZSksJGUuc3R5bGUud2lkdGg9YCR7X2Uud2lkdGh9cHhgLCRlLnN0eWxlLmhlaWdodD1gJHtfZS5oZWlnaHR9cHhgLEIuc3R5bGUuaGVpZ2h0PWAke19lLmhlaWdodH1weGAsQi5zdHlsZS5taW5IZWlnaHQ9YCR7X2UuaGVpZ2h0fXB4YDtsZXQgdGU9JGUuZ2V0Q29udGV4dCgiMmQiKTtpZighdGUpe0suY2xlYW51cD8uKCk7Y29udGludWV9dGUuc2NhbGUocGUscGUpO2xldCB6ZT17Y2FudmFzQ29udGV4dDp0ZSx2aWV3cG9ydDpfZX0sRmU9Sy5yZW5kZXIoemUpO3RoaXMudGh1bWJuYWlsUmVuZGVyVGFza3MucHVzaChGZSksYXdhaXQgRmUucHJvbWlzZSxLLmNsZWFudXA/LigpO2xldCBXZT10aGlzLnRodW1ibmFpbERhdGEuZmluZCh5ZT0+eWUucGFnZT09PVApO1dlJiYoV2UucmVuZGVyZWQ9ITApfXRoaXMucmVxdWVzdFVwZGF0ZSgidGh1bWJuYWlsRGF0YSIpfWNhdGNoKEQpe0Q/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcigiRXJyb3IgcmVuZGVyaW5nIHRodW1ibmFpbHM6IixEKX1maW5hbGx5e3RoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W119fXByZXZpb3VzUGFnZSgpe3RoaXMuY3VycmVudFBhZ2U+MSYmdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5jdXJyZW50UGFnZS0xKX1uZXh0UGFnZSgpe3RoaXMuY3VycmVudFBhZ2U8dGhpcy50b3RhbFBhZ2VzJiZ0aGlzLnNjcm9sbFRvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKzEpfWhhbmRsZVRodW1ibmFpbENsaWNrKFcpe2xldCBEPVcuY3VycmVudFRhcmdldCxPPXBhcnNlSW50KEQuZGF0YXNldC5wYWdlfHwiMSIpO3RoaXMuc2Nyb2xsVG9QYWdlKE8pfWhhbmRsZVBhZ2VJbnB1dChXKXtsZXQgRD1XLnRhcmdldCxPPXBhcnNlSW50KEQudmFsdWUpO3RoaXMuc2Nyb2xsVG9QYWdlKE8pfXpvb21Jbigpe2xldCBXPU1hdGgubWluKHRoaXMuTUFOVUFMX01BWF9aT09NLHRoaXMuY3VycmVudFpvb20qMS4yKTt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIixXIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209Vyx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKSl9em9vbU91dCgpe2xldCBXPU1hdGgubWF4KHRoaXMuTUFOVUFMX01JTl9aT09NLHRoaXMuY3VycmVudFpvb20vMS4yKTt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIixXIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209Vyx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKSl9cmVzZXRab29tKCl7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsdGhpcy5jdXJyZW50Wm9vbT0xLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfWZpdFRvUGFnZSgpe3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLWZpdCIsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9Zml0VG9XaWR0aCgpe3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLXdpZHRoIix0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1yZVJlbmRlckFsbFBhZ2VzKCl7dGhpcy5wYWdlRGF0YS5mb3JFYWNoKFc9PntXLnJlbmRlcmVkPSExLFcucmVuZGVyaW5nPSExLFcudGV4dExheWVyUmVuZGVyZWQ9ITF9KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5mb3JFYWNoKFc9Pnt0cnl7Vy5jYW5jZWwoKX1jYXRjaHt9fSksdGhpcy5wYWdlUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmZvckVhY2goVz0+e3RyeXtXLmNhbmNlbD8uKCl9Y2F0Y2h7fX0pLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSl9YXN5bmMgZG93bmxvYWRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgVz1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKSxEPW5ldyBCbG9iKFtXLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSxPPVVSTC5jcmVhdGVPYmplY3RVUkwoRCksWj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Wi5ocmVmPU8sWi5kb3dubG9hZD10aGlzLnBkZlVybCYmdGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKXx8ImRvY3VtZW50LnBkZiIsWi5jbGljaygpLHNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwoTyksMWUzKX1jYXRjaChXKXtjb25zb2xlLmVycm9yKCJFcnJvciBkb3dubG9hZGluZyBQREY6IixXKX19YXN5bmMgcHJpbnRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgVz1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKSxEPW5ldyBCbG9iKFtXLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSxPPVVSTC5jcmVhdGVPYmplY3RVUkwoRCksWj1gCiAgICAgICAgPCFET0NUWVBFIGh0bWw+CiAgICAgICAgPGh0bWw+CiAgICAgICAgPGhlYWQ+CiAgICAgICAgICA8dGl0bGU+UHJpbnQgUERGPC90aXRsZT4KICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQogICAgICAgICAgICBodG1sLCBib2R5IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQogICAgICAgICAgICBpZnJhbWUgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBib3JkZXI6IG5vbmU7IH0KICAgICAgICAgICAgQG1lZGlhIHByaW50IHsKICAgICAgICAgICAgICBodG1sLCBib2R5LCBpZnJhbWUgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CiAgICAgICAgICAgIH0KICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgPC9oZWFkPgogICAgICAgIDxib2R5PgogICAgICAgICAgPGlmcmFtZSBzcmM9IiR7T30iIHR5cGU9ImFwcGxpY2F0aW9uL3BkZiI+PC9pZnJhbWU+CiAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5mb2N1cygpOwogICAgICAgICAgICAgICAgd2luZG93LnByaW50KCk7CiAgICAgICAgICAgICAgfSwgNTAwKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93Lm9uYWZ0ZXJwcmludCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHdpbmRvdy5jbG9zZSgpOwogICAgICAgICAgICB9OwogICAgICAgICAgICAvLyBTYWZldHkgY2xvc2UgYWZ0ZXIgMiBtaW51dGVzCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHdpbmRvdy5jbG9zZSgpOyB9LCAxMjAwMDApOwogICAgICAgICAgPFwvc2NyaXB0PgogICAgICAgIDwvYm9keT4KICAgICAgICA8L2h0bWw+CiAgICAgIGAsWT1uZXcgQmxvYihbWl0se3R5cGU6InRleHQvaHRtbCJ9KSxvZT1VUkwuY3JlYXRlT2JqZWN0VVJMKFkpLGdlPXdpbmRvdy5vcGVuKG9lLCJfYmxhbmsiLCJ3aWR0aD04MDAsaGVpZ2h0PTYwMCIpO2lmKGdlKXtsZXQgYmU9c2V0SW50ZXJ2YWwoKCk9PntnZS5jbG9zZWQmJihjbGVhckludGVydmFsKGJlKSxVUkwucmV2b2tlT2JqZWN0VVJMKE8pLFVSTC5yZXZva2VPYmplY3RVUkwob2UpKX0sNTAwKTtzZXRUaW1lb3V0KCgpPT57Y2xlYXJJbnRlcnZhbChiZSksVVJMLnJldm9rZU9iamVjdFVSTChPKSxVUkwucmV2b2tlT2JqZWN0VVJMKG9lKX0sMTJlNCl9ZWxzZSB3aW5kb3cub3BlbihPLCJfYmxhbmsiKSxzZXRUaW1lb3V0KCgpPT5VUkwucmV2b2tlT2JqZWN0VVJMKE8pLDZlNCksVVJMLnJldm9rZU9iamVjdFVSTChvZSl9Y2F0Y2goVyl7Y29uc29sZS5lcnJvcigiRXJyb3IgcHJpbnRpbmcgUERGOiIsVyl9fWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgVz1bXSxPPXdpbmRvdy5nZXRTZWxlY3Rpb24oKT8udG9TdHJpbmcoKXx8IiI7cmV0dXJuIE8mJihXLnB1c2goe25hbWU6IkNvcHkiLGljb25OYW1lOiJsdWNpZGU6Q29weSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChPKX19KSxXLnB1c2goe2RpdmlkZXI6ITB9KSksVy5wdXNoKHtuYW1lOiJEb3dubG9hZCBQREYiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjphc3luYygpPT57YXdhaXQgdGhpcy5kb3dubG9hZFBkZigpfX0se25hbWU6IlByaW50IFBERiIsaWNvbk5hbWU6Imx1Y2lkZTpQcmludGVyIixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHRoaXMucHJpbnRQZGYoKX19KSxXfWdldCBjYW5ab29tSW4oKXtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tInx8dGhpcy5jdXJyZW50Wm9vbTx0aGlzLk1BTlVBTF9NQVhfWk9PTX1nZXQgY2FuWm9vbU91dCgpe3JldHVybiB0aGlzLnZpZXdwb3J0TW9kZSE9PSJjdXN0b20ifHx0aGlzLmN1cnJlbnRab29tPnRoaXMuTUFOVUFMX01JTl9aT09NfWVuc3VyZVZpZXdlclJlZnMoKXt0aGlzLnZpZXdlck1haW58fCh0aGlzLnZpZXdlck1haW49dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudmlld2VyLW1haW4iKSksdGhpcy52aWV3ZXJNYWluJiYhdGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCksdGhpcy5wZGZEb2N1bWVudCYmdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy52aWV3ZXJNYWluKSx0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKSx0aGlzLnZpZXdlck1haW4uYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLFc9PntsZXQgRD1XLmN1cnJlbnRUYXJnZXQsTz1ELnNjcm9sbFRvcCxaPUQuc2Nyb2xsSGVpZ2h0LFk9RC5jbGllbnRIZWlnaHQsb2U9Vy5kZWx0YVksZ2U9Tz09PTAsYmU9TWF0aC5hYnMoTytZLVopPDE7b2U8MCYmIWdlfHxvZT4wJiYhYmU/Vy5zdG9wUHJvcGFnYXRpb24oKToob2U8MCYmZ2V8fG9lPjAmJmJlKSYmKFcucHJldmVudERlZmF1bHQoKSxXLnN0b3BQcm9wYWdhdGlvbigpKX0se3Bhc3NpdmU6ITF9KSl9bWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpe2lmKCF0aGlzLnZpZXdlck1haW4pe3RoaXMudmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDowLGhlaWdodDowfTtyZXR1cm59bGV0IFc9Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnZpZXdlck1haW4pLEQ9cGFyc2VGbG9hdChXLnBhZGRpbmdMZWZ0fHwiMCIpK3BhcnNlRmxvYXQoVy5wYWRkaW5nUmlnaHR8fCIwIiksTz1wYXJzZUZsb2F0KFcucGFkZGluZ1RvcHx8IjAiKStwYXJzZUZsb2F0KFcucGFkZGluZ0JvdHRvbXx8IjAiKSxaPU1hdGgubWF4KHRoaXMudmlld2VyTWFpbi5jbGllbnRXaWR0aC1ELDApLFk9TWF0aC5tYXgodGhpcy52aWV3ZXJNYWluLmNsaWVudEhlaWdodC1PLDApO3RoaXMudmlld3BvcnREaW1lbnNpb25zPXt3aWR0aDpaLGhlaWdodDpZfX1yZXNvbHZlSW5pdGlhbFZpZXdwb3J0TW9kZSgpe3R5cGVvZiB0aGlzLmluaXRpYWxab29tPT0ibnVtYmVyIj8odGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsdGhpcy5jdXJyZW50Wm9vbT10aGlzLm5vcm1hbGl6ZVpvb20odGhpcy5pbml0aWFsWm9vbSwhMCkpOnRoaXMuaW5pdGlhbFpvb209PT0icGFnZS13aWR0aCI/dGhpcy52aWV3cG9ydE1vZGU9InBhZ2Utd2lkdGgiOnRoaXMuaW5pdGlhbFpvb209PT0icGFnZS1maXQifHx0aGlzLmluaXRpYWxab29tPT09ImF1dG8iP3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLWZpdCI6dGhpcy52aWV3cG9ydE1vZGU9ImF1dG8iLHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSImJih0aGlzLmN1cnJlbnRab29tPTEpfWNvbXB1dGVWaWV3cG9ydChXKXt0aGlzLm1lYXN1cmVWaWV3cG9ydERpbWVuc2lvbnMoKTtsZXQgRD1XLmdldFZpZXdwb3J0KHtzY2FsZToxfSksTztzd2l0Y2godGhpcy52aWV3cG9ydE1vZGUpe2Nhc2UicGFnZS13aWR0aCI6e089KHRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRofHxELndpZHRoKS9ELndpZHRoO2JyZWFrfWNhc2UicGFnZS1maXQiOmNhc2UiYXV0byI6e2xldCBZPXRoaXMudmlld3BvcnREaW1lbnNpb25zLndpZHRofHxELndpZHRoLG9lPXRoaXMudmlld3BvcnREaW1lbnNpb25zLmhlaWdodHx8RC5oZWlnaHQsZ2U9WS9ELndpZHRoLGJlPW9lL0QuaGVpZ2h0O089TWF0aC5taW4oZ2UsYmUpO2JyZWFrfWRlZmF1bHQ6e089dGhpcy5ub3JtYWxpemVab29tKHRoaXMuY3VycmVudFpvb218fDEsITEpO2JyZWFrfX0oIU51bWJlci5pc0Zpbml0ZShPKXx8Tzw9MCkmJihPPTEpO2xldCBaPXRoaXMudmlld3BvcnRNb2RlPT09ImN1c3RvbSI/dGhpcy5ub3JtYWxpemVab29tKE8sITApOnRoaXMubm9ybWFsaXplWm9vbShPLCExKTtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209WiksVy5nZXRWaWV3cG9ydCh7c2NhbGU6Wn0pfW5vcm1hbGl6ZVpvb20oVyxEKXtsZXQgTz1EP3RoaXMuTUFOVUFMX01JTl9aT09NOnRoaXMuQUJTT0xVVEVfTUlOX1pPT00sWj1EP3RoaXMuTUFOVUFMX01BWF9aT09NOnRoaXMuQUJTT0xVVEVfTUFYX1pPT007cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KFcsTyksWil9YXN5bmMgY2xlYW51cERvY3VtZW50KCl7aWYodGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXImJih0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5hYm9ydCgpLHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPW51bGwpLHRoaXMuY3VycmVudFJlbmRlclByb21pc2Upe3RyeXthd2FpdCB0aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlfWNhdGNoe310aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlPW51bGx9dGhpcy5jdXJyZW50UmVuZGVyVGFzaz1udWxsLHRoaXMucGFnZVJlbmRlclRhc2tzLmZvckVhY2goVz0+e3RyeXtXLmNhbmNlbCgpfWNhdGNoe319KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5jbGVhcigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZm9yRWFjaChXPT57dHJ5e1cuY2FuY2VsPy4oKX1jYXRjaHt9fSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5jbGVhcigpO2ZvcihsZXQgVyBvZiB0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzfHxbXSl0cnl7Vy5jYW5jZWwoKX1jYXRjaHt9aWYodGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXSx0aGlzLnJlbmRlclN0YXRlPSJpZGxlIix0aGlzLnBhZ2VSZW5kZXJpbmc9ITEsdGhpcy5wYWdlTnVtUGVuZGluZz1udWxsLHRoaXMudGh1bWJuYWlsRGF0YT1bXSx0aGlzLnBhZ2VEYXRhPVtdLHRoaXMuZG9jdW1lbnRJZD0iIix0aGlzLmNhbnZhcyYmdGhpcy5jdHgmJnRoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLnBkZkRvY3VtZW50KXRyeXt0aGlzLnBkZkRvY3VtZW50LmRlc3Ryb3koKX1jYXRjaChXKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIFBERiBkb2N1bWVudDoiLFcpfXRoaXMucGRmRG9jdW1lbnQ9bnVsbCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7ejEoaSxhKX19O3JldHVybiBrZT1pfSkoKX0pO3ZhciBaYnQsWGJ0PWIoKCk9Pnt1ZSgpO1pidD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogNDBweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgIH0KCiAgICAucHJldmlldy1wZGYgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5JbWFnZSBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1dG8tZGV0ZWN0cyBpbWFnZSBmcm9tIFVSTCBleHRlbnNpb24gYW5kIHJlbmRlcnMgd2l0aCB0aGUgaW1hZ2Ugdmlld2VyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UiCiAgICAgICAgdXJsPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGZpbGVuYW1lPSJsYW5kc2NhcGUuanBnIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UERGIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXV0by1kZXRlY3RzIFBERiBhbmQgZGlzcGxheXMgd2l0aCB0aGUgUERGIHZpZXdlciBpbmNsdWRpbmcgdG9vbGJhci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNsYXNzPSJwcmV2aWV3LXBkZiIKICAgICAgICB1cmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBmaWxlbmFtZT0icmVzZWFyY2gtcGFwZXIucGRmIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29kZSBQcmV2aWV3IChUZXh0IENvbnRlbnQpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlR5cGVTY3JpcHQgY29kZSBkaXNwbGF5ZWQgd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nIHZpYSB0aGUgY29kZWJveC48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGZpbGVuYW1lPSJleGFtcGxlLnRzIgogICAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7CiAgc3RhdGljIHN0eWxlcyA9IGNzc1xgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIFxgOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgPGgxPkhlbGxvIFdvcmxkPC9oMT5cYDsKICB9Cn1gfQogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdWRpbyBmaWxlIGRldGVjdGVkIGJ5IGV4dGVuc2lvbiwgc2hvd24gd2l0aCB3YXZlZm9ybSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICB1cmw9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgZmlsZW5hbWU9InNvbmcubXAzIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmlkZW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyBmaWxlIGRldGVjdGVkIGZyb20gVVJMLCByZW5kZXJlZCB3aXRoIGN1c3RvbSB2aWRlbyBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIHVybD0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvQmlnQnVja0J1bm55Lm1wNCIKICAgICAgICBmaWxlbmFtZT0iYmlnLWJ1Y2stYnVubnkubXA0IgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+RXhwbGljaXQgVHlwZSBPdmVycmlkZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Gb3JjZSBjb250ZW50IHR5cGUgdG8gJ3RleHQnIGV2ZW4gdGhvdWdoIHRoZSBVUkwgaGFzIG5vIGV4dGVuc2lvbi48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNvbnRlbnRUeXBlPSJ0ZXh0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BUaGlzIGlzIHBsYWluIHRleHQgY29udGVudC4KSXQgcHJlc2VydmVzIHdoaXRlc3BhY2UgYW5kIGxpbmUgYnJlYWtzLgoKVXNlZnVsIGZvciBsb2cgZmlsZXMsIFJFQURNRXMsIGV0Yy5gfQogICAgICAgIGZpbGVuYW1lPSJub3Rlcy50eHQiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Vbmtub3duIFR5cGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+V2hlbiBjb250ZW50IHR5cGUgY2Fubm90IGJlIGRldGVjdGVkLCBzaG93cyBhIHBsYWNlaG9sZGVyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgZmlsZW5hbWU9ImRhdGEuYmluIgogICAgICAgIGNvbnRlbnRUeXBlPSJ1bmtub3duIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBEMixIdCxLYnQscFV0LGhVdCx1VXQsUWJ0LEpidD1iKCgpPT57dWUoKTtSVigpO0JWKCk7SFYoKTt1VigpO3FWKCk7RHQoKTtYYnQoKTtEMj1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEh0PWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxLYnQ9e2pwZzoiaW1hZ2UiLGpwZWc6ImltYWdlIixwbmc6ImltYWdlIixnaWY6ImltYWdlIix3ZWJwOiJpbWFnZSIsc3ZnOiJpbWFnZSIsYm1wOiJpbWFnZSIsYXZpZjoiaW1hZ2UiLGljbzoiaW1hZ2UiLHBkZjoicGRmIixtcDM6ImF1ZGlvIix3YXY6ImF1ZGlvIixvZ2c6ImF1ZGlvIixmbGFjOiJhdWRpbyIsYWFjOiJhdWRpbyIsbTRhOiJhdWRpbyIsb3B1czoiYXVkaW8iLHdlYmE6ImF1ZGlvIixtcDQ6InZpZGVvIix3ZWJtOiJ2aWRlbyIsbW92OiJ2aWRlbyIsYXZpOiJ2aWRlbyIsbWt2OiJ2aWRlbyIsb2d2OiJ2aWRlbyIsdHM6ImNvZGUiLGpzOiJjb2RlIixqc3g6ImNvZGUiLHRzeDoiY29kZSIsanNvbjoiY29kZSIsaHRtbDoiY29kZSIsY3NzOiJjb2RlIixzY3NzOiJjb2RlIixsZXNzOiJjb2RlIixweToiY29kZSIsamF2YToiY29kZSIsZ286ImNvZGUiLHJzOiJjb2RlIix5YW1sOiJjb2RlIix5bWw6ImNvZGUiLHhtbDoiY29kZSIsc3FsOiJjb2RlIixzaDoiY29kZSIsYmFzaDoiY29kZSIsenNoOiJjb2RlIixtZDoiY29kZSIsYzoiY29kZSIsY3BwOiJjb2RlIixoOiJjb2RlIixocHA6ImNvZGUiLHJiOiJjb2RlIixwaHA6ImNvZGUiLHN3aWZ0OiJjb2RlIixrdDoiY29kZSIsdHh0OiJ0ZXh0Iixsb2c6InRleHQiLGNzdjoidGV4dCIsZW52OiJ0ZXh0In0scFV0PXsiaW1hZ2UvIjoiaW1hZ2UiLCJhdWRpby8iOiJhdWRpbyIsInZpZGVvLyI6InZpZGVvIiwiYXBwbGljYXRpb24vcGRmIjoicGRmIn0saFV0PXt0czoidHlwZXNjcmlwdCIsdHN4OiJ0eXBlc2NyaXB0IixqczoiamF2YXNjcmlwdCIsanN4OiJqYXZhc2NyaXB0Iixqc29uOiJqc29uIixodG1sOiJ4bWwiLHhtbDoieG1sIixjc3M6ImNzcyIsc2Nzczoic2NzcyIsbGVzczoibGVzcyIscHk6InB5dGhvbiIsamF2YToiamF2YSIsZ286ImdvIixyczoicnVzdCIseWFtbDoieWFtbCIseW1sOiJ5YW1sIixzcWw6InNxbCIsc2g6ImJhc2giLGJhc2g6ImJhc2giLHpzaDoiYmFzaCIsYzoiYyIsY3BwOiJjcHAiLGg6ImMiLGhwcDoiY3BwIixyYjoicnVieSIscGhwOiJwaHAiLHN3aWZ0OiJzd2lmdCIsa3Q6ImtvdGxpbiIsbWQ6Im1hcmtkb3duIn0sdVV0PXtpbWFnZToibHVjaWRlOkltYWdlIixwZGY6Imx1Y2lkZTpGaWxlVGV4dCIsYXVkaW86Imx1Y2lkZTpNdXNpYyIsdmlkZW86Imx1Y2lkZTpWaWRlbyIsY29kZToibHVjaWRlOkNvZGUiLHRleHQ6Imx1Y2lkZTpGaWxlVGV4dCIsdW5rbm93bjoibHVjaWRlOkZpbGUifSxRYnQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXByZXZpZXciKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXSxOLEw9W10sQT1bXSxxLEM9W10sej1bXSxFLFQ9W10sJD1bXSxWLFI9W10sVT1bXSxyZSxqPVtdLG1lPVtdLHdlLEg9W10sY2U9W10sa2UsVz1bXSxEPVtdLE8sWj1bXSxZPVtdLG9lLGdlPVtdLGJlPVtdLCRlLEI9W10sUD1bXTt2YXIgSz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGZlPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koKV0sZD1bSSh7YXR0cmlidXRlOiExfSldLGw9W0koKV0seT1bSSgpXSx4PVtJKCldLEY9W0koKV0sTj1bSSgpXSxxPVtJKCldLEU9W0koe3R5cGU6Qm9vbGVhbn0pXSxWPVtJKHt0eXBlOkJvb2xlYW59KV0scmU9W0ooKV0sd2U9W0ooKV0sa2U9W0ooKV0sTz1bSigpXSxvZT1bSigpXSwkZT1bSigpXSxEMih0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ZGU9PiJ1cmwiaW4gZGUsZ2V0OmRlPT5kZS51cmwsc2V0OihkZSxfZSk9PntkZS51cmw9X2V9fSxtZXRhZGF0YTpmZX0sbixvKSxEMih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4iZmlsZSJpbiBkZSxnZXQ6ZGU9PmRlLmZpbGUsc2V0OihkZSxfZSk9PntkZS5maWxlPV9lfX0sbWV0YWRhdGE6ZmV9LGMscCksRDIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYXNlNjQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4iYmFzZTY0ImluIGRlLGdldDpkZT0+ZGUuYmFzZTY0LHNldDooZGUsX2UpPT57ZGUuYmFzZTY0PV9lfX0sbWV0YWRhdGE6ZmV9LGYsZyksRDIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0Q29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ZGU9PiJ0ZXh0Q29udGVudCJpbiBkZSxnZXQ6ZGU9PmRlLnRleHRDb250ZW50LHNldDooZGUsX2UpPT57ZGUudGV4dENvbnRlbnQ9X2V9fSxtZXRhZGF0YTpmZX0sdixtKSxEMih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+ImNvbnRlbnRUeXBlImluIGRlLGdldDpkZT0+ZGUuY29udGVudFR5cGUsc2V0OihkZSxfZSk9PntkZS5jb250ZW50VHlwZT1fZX19LG1ldGFkYXRhOmZlfSxNLFMpLEQyKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4ibGFuZ3VhZ2UiaW4gZGUsZ2V0OmRlPT5kZS5sYW5ndWFnZSxzZXQ6KGRlLF9lKT0+e2RlLmxhbmd1YWdlPV9lfX0sbWV0YWRhdGE6ZmV9LF8sayksRDIodGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW1lVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ZGU9PiJtaW1lVHlwZSJpbiBkZSxnZXQ6ZGU9PmRlLm1pbWVUeXBlLHNldDooZGUsX2UpPT57ZGUubWltZVR5cGU9X2V9fSxtZXRhZGF0YTpmZX0sTCxBKSxEMih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+ImZpbGVuYW1lImluIGRlLGdldDpkZT0+ZGUuZmlsZW5hbWUsc2V0OihkZSxfZSk9PntkZS5maWxlbmFtZT1fZX19LG1ldGFkYXRhOmZlfSxDLHopLEQyKHRoaXMsbnVsbCxFLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Rvb2xiYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4ic2hvd1Rvb2xiYXIiaW4gZGUsZ2V0OmRlPT5kZS5zaG93VG9vbGJhcixzZXQ6KGRlLF9lKT0+e2RlLnNob3dUb29sYmFyPV9lfX0sbWV0YWRhdGE6ZmV9LFQsJCksRDIodGhpcyxudWxsLFYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RmlsZW5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4ic2hvd0ZpbGVuYW1lImluIGRlLGdldDpkZT0+ZGUuc2hvd0ZpbGVuYW1lLHNldDooZGUsX2UpPT57ZGUuc2hvd0ZpbGVuYW1lPV9lfX0sbWV0YWRhdGE6ZmV9LFIsVSksRDIodGhpcyxudWxsLHJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRUeXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+InJlc29sdmVkVHlwZSJpbiBkZSxnZXQ6ZGU9PmRlLnJlc29sdmVkVHlwZSxzZXQ6KGRlLF9lKT0+e2RlLnJlc29sdmVkVHlwZT1fZX19LG1ldGFkYXRhOmZlfSxqLG1lKSxEMih0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZFNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ZGU9PiJyZXNvbHZlZFNyYyJpbiBkZSxnZXQ6ZGU9PmRlLnJlc29sdmVkU3JjLHNldDooZGUsX2UpPT57ZGUucmVzb2x2ZWRTcmM9X2V9fSxtZXRhZGF0YTpmZX0sSCxjZSksRDIodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRUZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+InJlc29sdmVkVGV4dCJpbiBkZSxnZXQ6ZGU9PmRlLnJlc29sdmVkVGV4dCxzZXQ6KGRlLF9lKT0+e2RlLnJlc29sdmVkVGV4dD1fZX19LG1ldGFkYXRhOmZlfSxXLEQpLEQyKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRMYW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpkZT0+InJlc29sdmVkTGFuZyJpbiBkZSxnZXQ6ZGU9PmRlLnJlc29sdmVkTGFuZyxzZXQ6KGRlLF9lKT0+e2RlLnJlc29sdmVkTGFuZz1fZX19LG1ldGFkYXRhOmZlfSxaLFkpLEQyKHRoaXMsbnVsbCxvZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmRlPT4ibG9hZGluZyJpbiBkZSxnZXQ6ZGU9PmRlLmxvYWRpbmcsc2V0OihkZSxfZSk9PntkZS5sb2FkaW5nPV9lfX0sbWV0YWRhdGE6ZmV9LGdlLGJlKSxEMih0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ZGU9PiJlcnJvciJpbiBkZSxnZXQ6ZGU9PmRlLmVycm9yLHNldDooZGUsX2UpPT57ZGUuZXJyb3I9X2V9fSxtZXRhZGF0YTpmZX0sQixQKSxEMihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpmZX0sbnVsbCxhKSxLPWk9ZS52YWx1ZSxmZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmZX0pfXN0YXRpYyBkZW1vPVpidDtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIiwiRGF0YSBWaWV3Il07I2U9SHQodGhpcyxuLCIiKTtnZXQgdXJsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHVybChmZSl7dGhpcy4jZT1mZX0jdD0oSHQodGhpcyxvKSxIdCh0aGlzLGMsdm9pZCAwKSk7Z2V0IGZpbGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgZmlsZShmZSl7dGhpcy4jdD1mZX0jYT0oSHQodGhpcyxwKSxIdCh0aGlzLGYsIiIpKTtnZXQgYmFzZTY0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IGJhc2U2NChmZSl7dGhpcy4jYT1mZX0jaT0oSHQodGhpcyxnKSxIdCh0aGlzLHYsIiIpKTtnZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGV4dENvbnRlbnQoZmUpe3RoaXMuI2k9ZmV9I3I9KEh0KHRoaXMsbSksSHQodGhpcyxNLHZvaWQgMCkpO2dldCBjb250ZW50VHlwZSgpe3JldHVybiB0aGlzLiNyfXNldCBjb250ZW50VHlwZShmZSl7dGhpcy4jcj1mZX0jcz0oSHQodGhpcyxTKSxIdCh0aGlzLF8sIiIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jc31zZXQgbGFuZ3VhZ2UoZmUpe3RoaXMuI3M9ZmV9I249KEh0KHRoaXMsayksSHQodGhpcyxMLCIiKSk7Z2V0IG1pbWVUeXBlKCl7cmV0dXJuIHRoaXMuI259c2V0IG1pbWVUeXBlKGZlKXt0aGlzLiNuPWZlfSNvPShIdCh0aGlzLEEpLEh0KHRoaXMsQywiIikpO2dldCBmaWxlbmFtZSgpe3JldHVybiB0aGlzLiNvfXNldCBmaWxlbmFtZShmZSl7dGhpcy4jbz1mZX0jbD0oSHQodGhpcyx6KSxIdCh0aGlzLFQsITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jbH1zZXQgc2hvd1Rvb2xiYXIoZmUpe3RoaXMuI2w9ZmV9I2M9KEh0KHRoaXMsJCksSHQodGhpcyxSLCEwKSk7Z2V0IHNob3dGaWxlbmFtZSgpe3JldHVybiB0aGlzLiNjfXNldCBzaG93RmlsZW5hbWUoZmUpe3RoaXMuI2M9ZmV9I2Q9KEh0KHRoaXMsVSksSHQodGhpcyxqLCJ1bmtub3duIikpO2dldCByZXNvbHZlZFR5cGUoKXtyZXR1cm4gdGhpcy4jZH1zZXQgcmVzb2x2ZWRUeXBlKGZlKXt0aGlzLiNkPWZlfSNwPShIdCh0aGlzLG1lKSxIdCh0aGlzLEgsIiIpKTtnZXQgcmVzb2x2ZWRTcmMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgcmVzb2x2ZWRTcmMoZmUpe3RoaXMuI3A9ZmV9I2g9KEh0KHRoaXMsY2UpLEh0KHRoaXMsVywiIikpO2dldCByZXNvbHZlZFRleHQoKXtyZXR1cm4gdGhpcy4jaH1zZXQgcmVzb2x2ZWRUZXh0KGZlKXt0aGlzLiNoPWZlfSN1PShIdCh0aGlzLEQpLEh0KHRoaXMsWiwidGV4dCIpKTtnZXQgcmVzb2x2ZWRMYW5nKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHJlc29sdmVkTGFuZyhmZSl7dGhpcy4jdT1mZX0jZj0oSHQodGhpcyxZKSxIdCh0aGlzLGdlLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jZn1zZXQgbG9hZGluZyhmZSl7dGhpcy4jZj1mZX0jbT0oSHQodGhpcyxiZSksSHQodGhpcyxCLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI219c2V0IGVycm9yKGZlKXt0aGlzLiNtPWZlfW9iamVjdFVybD0oSHQodGhpcyxQKSwiIik7cmVuZGVyKCl7bGV0IGZlPXRoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8dGhpcy5nZXRGaWxlbmFtZUZyb21VcmwoKXx8IiI7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWJhciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmOWZhZmIiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1pY29uIHsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItZmlsZW5hbWUgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgICAgZmxleDogMTsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItYmFkZ2UgewogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiKX07CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmNvbnRlbnQtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNvbnRlbnQtYXJlYSA+ICogewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLWltYWdlLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtcGRmLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB9CgogICAgICAgIGRlZXMtdmlkZW8tdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1hdWRpby12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLWRhdGF2aWV3LWNvZGVib3ggewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAudGV4dC12aWV3ZXIgewogICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgbW9ub3NwYWNlOwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2ExYTFhYSIsIiM3MTcxN2EiKX07CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXIgZGVlcy1pY29uIHsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHtoLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIH0KCiAgICAgICAgQGtleWZyYW1lcyBzcGluIHsKICAgICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICAgIH0KCiAgICAgICAgLmVycm9yLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLWNvbnRhaW5lciBkZWVzLWljb24gewogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctY29udGFpbmVyIj4KICAgICAgICAke3RoaXMuc2hvd0ZpbGVuYW1lJiZmZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJhciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImhlYWRlci1pY29uIiBpY29uPSIke3VVdFt0aGlzLnJlc29sdmVkVHlwZV19Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImhlYWRlci1maWxlbmFtZSI+JHtmZX08L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkZXItYmFkZ2UiPiR7dGhpcy5yZXNvbHZlZFR5cGV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1hcmVhIj4KICAgICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1jb250YWluZXIiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkFsZXJ0VHJpYW5nbGUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5sb2FkaW5nP3dgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5yZW5kZXJDb250ZW50KCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJDb250ZW50KCl7c3dpdGNoKHRoaXMucmVzb2x2ZWRUeXBlKXtjYXNlImltYWdlIjpyZXR1cm4gd2AKICAgICAgICAgIDxkZWVzLWltYWdlLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7dGhpcy5zaG93VG9vbGJhcn0KICAgICAgICAgICAgYWx0PSIke3RoaXMuZmlsZW5hbWV8fCIifSIKICAgICAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgICAgIGA7Y2FzZSJwZGYiOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgICAgICAucGRmVXJsPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgICAgLnNob3dUb29sYmFyPSR7dGhpcy5zaG93VG9vbGJhcn0KICAgICAgICAgICAgaW5pdGlhbFpvb209InBhZ2UtZml0IgogICAgICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgICAgIGA7Y2FzZSJhdWRpbyI6cmV0dXJuIHdgCiAgICAgICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC50aXRsZT0ke3RoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8IiJ9CiAgICAgICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgICAgICBgO2Nhc2UidmlkZW8iOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICAgICAgYDtjYXNlImNvZGUiOnJldHVybiB3YAogICAgICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveAogICAgICAgICAgICAucHJvZ0xhbmc9JHt0aGlzLnJlc29sdmVkTGFuZ30KICAgICAgICAgICAgLmNvZGVUb0Rpc3BsYXk9JHt0aGlzLnJlc29sdmVkVGV4dH0KICAgICAgICAgID48L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgICAgICBgO2Nhc2UidGV4dCI6cmV0dXJuIHdgPHByZSBjbGFzcz0idGV4dC12aWV3ZXIiPiR7dGhpcy5yZXNvbHZlZFRleHR9PC9wcmU+YDtkZWZhdWx0OnJldHVybiB3YAogICAgICAgICAgPGRpdiBjbGFzcz0icGxhY2Vob2xkZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpGaWxlUXVlc3Rpb24iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGxhY2Vob2xkZXItdGV4dCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYH19YXN5bmMgdXBkYXRlZChmZSl7c3VwZXIudXBkYXRlZChmZSksWyJ1cmwiLCJmaWxlIiwiYmFzZTY0IiwidGV4dENvbnRlbnQiLCJjb250ZW50VHlwZSIsImxhbmd1YWdlIiwibWltZVR5cGUiLCJmaWxlbmFtZSJdLnNvbWUocGU9PmZlLmhhcyhwZSkpJiZhd2FpdCB0aGlzLnJlc29sdmVDb250ZW50KCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmV2b2tlT2JqZWN0VXJsKCl9YXN5bmMgcmVzb2x2ZUNvbnRlbnQoKXt0aGlzLmVycm9yPSIiLHRoaXMucmV2b2tlT2JqZWN0VXJsKCksdGhpcy5yZXNvbHZlZFR5cGU9dGhpcy5kZXRlY3RUeXBlKCk7dHJ5e2lmKHRoaXMudXJsKXtpZih0aGlzLnJlc29sdmVkU3JjPXRoaXMudXJsLHRoaXMucmVzb2x2ZWRUeXBlPT09ImNvZGUifHx0aGlzLnJlc29sdmVkVHlwZT09PSJ0ZXh0IilpZih0aGlzLnRleHRDb250ZW50KXRoaXMucmVzb2x2ZWRUZXh0PXRoaXMudGV4dENvbnRlbnQ7ZWxzZXt0aGlzLmxvYWRpbmc9ITA7bGV0IGZlPWF3YWl0IGZldGNoKHRoaXMudXJsKTt0aGlzLnJlc29sdmVkVGV4dD1hd2FpdCBmZS50ZXh0KCksdGhpcy5sb2FkaW5nPSExfX1lbHNlIGlmKHRoaXMuZmlsZSl0aGlzLm9iamVjdFVybD1VUkwuY3JlYXRlT2JqZWN0VVJMKHRoaXMuZmlsZSksdGhpcy5yZXNvbHZlZFNyYz10aGlzLm9iamVjdFVybCwodGhpcy5yZXNvbHZlZFR5cGU9PT0iY29kZSJ8fHRoaXMucmVzb2x2ZWRUeXBlPT09InRleHQiKSYmKHRoaXMubG9hZGluZz0hMCx0aGlzLnJlc29sdmVkVGV4dD1hd2FpdCB0aGlzLmZpbGUudGV4dCgpLHRoaXMubG9hZGluZz0hMSk7ZWxzZSBpZih0aGlzLmJhc2U2NCl7bGV0IGZlPXRoaXMubWltZVR5cGV8fCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iO3RoaXMucmVzb2x2ZWRTcmM9YGRhdGE6JHtmZX07YmFzZTY0LCR7dGhpcy5iYXNlNjR9YH1lbHNlIHRoaXMudGV4dENvbnRlbnQmJih0aGlzLnJlc29sdmVkVGV4dD10aGlzLnRleHRDb250ZW50KX1jYXRjaHt0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBjb250ZW50Iix0aGlzLmxvYWRpbmc9ITF9dGhpcy5yZXNvbHZlZExhbmc9dGhpcy5yZXNvbHZlTGFuZ3VhZ2UoKX1kZXRlY3RUeXBlKCl7aWYodGhpcy5jb250ZW50VHlwZSlyZXR1cm4gdGhpcy5jb250ZW50VHlwZTtsZXQgZmU9dGhpcy5taW1lVHlwZXx8dGhpcy5maWxlPy50eXBlfHwiIjtpZihmZSl7aWYoZmU9PT0iYXBwbGljYXRpb24vcGRmIilyZXR1cm4icGRmIjtmb3IobGV0W19lLHBlXW9mIE9iamVjdC5lbnRyaWVzKHBVdCkpaWYoZmUuc3RhcnRzV2l0aChfZSkpcmV0dXJuIHBlO2lmKGZlLnN0YXJ0c1dpdGgoInRleHQvIikpcmV0dXJuInRleHQifWxldCBkZT10aGlzLmdldEV4dGVuc2lvbigpO3JldHVybiBkZSYmS2J0W2RlXT9LYnRbZGVdOnRoaXMudGV4dENvbnRlbnQ/dGhpcy5sYW5ndWFnZT8iY29kZSI6InRleHQiOiJ1bmtub3duIn1nZXRFeHRlbnNpb24oKXtsZXQgZmU9dGhpcy5maWxlbmFtZXx8dGhpcy5maWxlPy5uYW1lfHwiIjtpZihmZSl7bGV0IGRlPWZlLnNwbGl0KCIuIik7aWYoZGUubGVuZ3RoPjEpcmV0dXJuIGRlLnBvcCgpLnRvTG93ZXJDYXNlKCl9aWYodGhpcy51cmwpdHJ5e2xldCBfZT1uZXcgVVJMKHRoaXMudXJsLCJodHRwczovL3BsYWNlaG9sZGVyLmNvbSIpLnBhdGhuYW1lLnNwbGl0KCIuIik7aWYoX2UubGVuZ3RoPjEpcmV0dXJuIF9lLnBvcCgpLnRvTG93ZXJDYXNlKCl9Y2F0Y2h7fXJldHVybiIifWdldEZpbGVuYW1lRnJvbVVybCgpe2lmKCF0aGlzLnVybClyZXR1cm4iIjt0cnl7cmV0dXJuIG5ldyBVUkwodGhpcy51cmwsImh0dHBzOi8vcGxhY2Vob2xkZXIuY29tIikucGF0aG5hbWUuc3BsaXQoIi8iKS5wb3AoKXx8IiJ9Y2F0Y2h7cmV0dXJuIiJ9fXJlc29sdmVMYW5ndWFnZSgpe2lmKHRoaXMubGFuZ3VhZ2UpcmV0dXJuIHRoaXMubGFuZ3VhZ2U7bGV0IGZlPXRoaXMuZ2V0RXh0ZW5zaW9uKCk7cmV0dXJuIGhVdFtmZV18fCJ0ZXh0In1yZXZva2VPYmplY3RVcmwoKXt0aGlzLm9iamVjdFVybCYmKFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5vYmplY3RVcmwpLHRoaXMub2JqZWN0VXJsPSIiKX1zdGF0aWN7SHQoaSxhKX19O3JldHVybiBLPWl9KSgpfSk7dmFyIGV2dD1iKCgpPT57SmJ0KCl9KTt2YXIgdHZ0LFZWLGF2dCxpdnQ9YigoKT0+e3VlKCk7YzIoKTtzMigpO0R0KCk7dHZ0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sVlY9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGF2dD0oKCk9PntsZXQgdD1baGUoImRlZXMtcGRmIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koKV0sdHZ0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwPT4icGRmVXJsImluIHAsZ2V0OnA9PnAucGRmVXJsLHNldDoocCxsKT0+e3AucGRmVXJsPWx9fSxtZXRhZGF0YTpjfSxuLG8pLHR2dChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLGEpLGQ9aT1lLnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPSgpPT53YCA8ZGVlcy1wZGY+PC9kZWVzLXBkZj4gYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIiwiUERGIl07I2U9VlYodGhpcyxuLCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiKTtnZXQgcGRmVXJsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBkZlVybChjKXt0aGlzLiNlPWN9Y29uc3RydWN0b3IoKXtzdXBlcigpLFZWKHRoaXMsbyl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICB9CiAgICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAjcGRmY2FudmFzIHsKICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNXB4ICNjY2M7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxjYW52YXMKICAgICAgICBpZD0icGRmY2FudmFzIgogICAgICAgIC5oZWlnaHQ9JHswfQogICAgICAgIC53aWR0aD0kezB9CgogICAgICA+PC9jYW52YXM+CiAgICBgfXN0YXRpYyBwZGZKc1JlYWR5O3N0YXRpYyBwZGZqc0xpYjthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2lmKHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksIWQucGRmSnNSZWFkeSl7bGV0IGM9cnQucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtkLnBkZkpzUmVhZHk9Yy5wcm9taXNlLGQucGRmanNMaWI9YXdhaXQgaW1wb3J0KCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS8rZXNtIiksZC5wZGZqc0xpYi5HbG9iYWxXb3JrZXJPcHRpb25zLndvcmtlclNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvYnVpbGQvcGRmLndvcmtlci5tanMiLGMucmVzb2x2ZSgpfWF3YWl0IGQucGRmSnNSZWFkeSx0aGlzLmRpc3BsYXlDb250ZW50KCl9YXN5bmMgZGlzcGxheUNvbnRlbnQoKXthd2FpdCBkLnBkZkpzUmVhZHksZC5wZGZqc0xpYi5nZXREb2N1bWVudCh0aGlzLnBkZlVybCkucHJvbWlzZS50aGVuKHA9Pntjb25zb2xlLmxvZygiUERGIGxvYWRlZCIpLHAuZ2V0UGFnZSgxKS50aGVuKGY9Pntjb25zb2xlLmxvZygiUGFnZSBsb2FkZWQiKTtsZXQgeT1mLmdldFZpZXdwb3J0KHtzY2FsZToxMH0pLHY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIiNwZGZjYW52YXMiKSxtPXYuZ2V0Q29udGV4dCgiMmQiKTt2LmhlaWdodD15LmhlaWdodCx2LndpZHRoPXkud2lkdGg7bGV0IHg9e2NhbnZhc0NvbnRleHQ6bSx2aWV3cG9ydDp5fTtmLnJlbmRlcih4KS5wcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiUGFnZSByZW5kZXJlZCIpfSl9KX0scD0+e2NvbnNvbGUuZXJyb3IocCl9KX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7cmV0dXJuW3tuYW1lOiJPcGVuIFBERiBpbiBOZXcgVGFiIixpY29uTmFtZToibHVjaWRlOkV4dGVybmFsTGluayIsYWN0aW9uOmFzeW5jKCk9Pnt3aW5kb3cub3Blbih0aGlzLnBkZlVybCwiX2JsYW5rIil9fSx7ZGl2aWRlcjohMH0se25hbWU6IkNvcHkgUERGIFVSTCIsaWNvbk5hbWU6Imx1Y2lkZTpDb3B5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGRmVXJsKX19LHtuYW1lOiJEb3dubG9hZCBQREYiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjphc3luYygpPT57bGV0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2MuaHJlZj10aGlzLnBkZlVybCxjLmRvd25sb2FkPXRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLGMuY2xpY2soKX19XX1zdGF0aWN7VlYoaSxhKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIHJ2dD1iKCgpPT57aXZ0KCl9KTt2YXIgSjIscXM9YigoKT0+e3VlKCk7SjI9W2guZGVmYXVsdFN0eWxlcyxRYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgaGVpZ2h0OiAyNjBweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk4JSkiLCJoc2woMjE1IDIwJSAxNCUpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJveC1zaGFkb3cgMC4ycyBlYXNlOwogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xMikiLCJyZ2JhKDAsIDAsIDAsIDAuMjQpIil9OwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGUgewogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZTpob3ZlciB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgYm94LXNoYWRvdzogMCA4cHggMjRweCAke2guYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEyKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC50aWxlLW92ZXJsYXkgewogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIC50aWxlLWNvbnRlbnQgewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC43KSIsInJnYmEoMCwgMCwgMCwgMC44KSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgei1pbmRleDogMjA7CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IHNwYW4gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgIH0KCiAgICAudGlsZS1pbmZvIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBib3R0b206IDhweDsKICAgICAgbGVmdDogOHB4OwogICAgICByaWdodDogOHB4OwogICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUgLyAwLjkyKSIsImhzbCgyMTUgMjAlIDEyJSAvIDAuOTIpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogNnB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTsKICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICAgICAgei1pbmRleDogMTA7CiAgICB9CgogICAgLnRpbGUtaW5mbyBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICB9CgogICAgLnRpbGUtaW5mby10ZXh0IHsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgfQoKICAgIC50aWxlLWJhZGdlIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDhweDsKICAgICAgbGVmdDogOHB4OwogICAgICByaWdodDogOHB4OwogICAgICBwYWRkaW5nOiA1cHggOHB4OwogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjcpIiwiaHNsKDAgMCUgMTAwJSAvIDAuOSkiKX07CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgid2hpdGUiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7CiAgICAgIHotaW5kZXg6IDE1OwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlOwogICAgfQoKICAgIC50aWxlLWJhZGdlLWNvcm5lciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiA4cHg7CiAgICAgIHJpZ2h0OiA4cHg7CiAgICAgIHBhZGRpbmc6IDNweCA4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuNikiLCJoc2woMCAwJSAxMDAlIC8gMC44NSkiKX07CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgid2hpdGUiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICAgIHotaW5kZXg6IDEwOwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICAudGlsZS1iYWRnZS10b3ByaWdodCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiA4cHg7CiAgICAgIHJpZ2h0OiA4cHg7CiAgICAgIHBhZGRpbmc6IDNweCA4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuNikiLCJoc2woMCAwJSAxMDAlIC8gMC44NSkiKX07CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgid2hpdGUiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICAgIHotaW5kZXg6IDE1OwogICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIH0KCiAgICAvKiBTaGlmdCBib3R0b20gYmFkZ2VzIHVwIHdoZW4gbGFiZWwgaXMgcHJlc2VudCAqLwogICAgLnRpbGUtY29udGFpbmVyOmhhcygudGlsZS1sYWJlbCkgLnRpbGUtYmFkZ2UtY29ybmVyIHsKICAgICAgYm90dG9tOiAzM3B4OwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lcjpoYXMoLnRpbGUtbGFiZWwpIC50aWxlLWluZm8gewogICAgICBib3R0b206IDMzcHg7CiAgICB9CgogICAgLnRpbGUtbG9hZGluZywKICAgIC50aWxlLWVycm9yIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBib3R0b206IDA7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnRpbGUtbG9hZGluZyB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5OSUpIiwiaHNsKDIxNSAyMCUgMTQlKSIpfTsKICAgIH0KCiAgICAudGlsZS1lcnJvciB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MiUgOTglKSIsImhzbCgwIDYyJSAyMCUpIil9OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcyJSA0MCUpIiwiaHNsKDAgNzAlIDY4JSkiKX07CiAgICB9CgogICAgLnRpbGUtZXJyb3IgZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgfQoKICAgIC50aWxlLXNwaW5uZXIgewogICAgICB3aWR0aDogMjRweDsKICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgLnRpbGUtbG9hZGluZy10ZXh0LAogICAgLnRpbGUtZXJyb3ItdGV4dCB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAudGlsZS1sYWJlbCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAxMDAlIC8gMC45NSkiLCJoc2woMjE1IDIwJSAxMiUgLyAwLjk1KSIpfTsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDM1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgei1pbmRleDogMTA7CiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTsKICAgIH0KCiAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQoKICAgIEBrZXlmcmFtZXMgZmFkZUluIHsKICAgICAgZnJvbSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7CiAgICAgIH0KICAgICAgdG8gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICB9CiAgICB9CgogICAgLyogU2l6ZSB2YXJpYW50cyAqLwogICAgOmhvc3QoW3NpemU9InNtYWxsIl0pIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxNTBweDsKICAgICAgaGVpZ2h0OiAxOTVweDsKICAgIH0KCiAgICA6aG9zdChbc2l6ZT0ibGFyZ2UiXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDI1MHB4OwogICAgICBoZWlnaHQ6IDMyNXB4OwogICAgfQoKICAgIC8qIEdyaWQgb3B0aW1pemF0aW9ucyAqLwogICAgOmhvc3QoW2dyaWQtbW9kZV0pIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHdpbGwtY2hhbmdlOiBhdXRvOwogICAgfQogIGBdfSk7dmFyIFo4LFdyLGJhLGJvPWIoKCk9Pnt1ZSgpO3FzKCk7RHQoKTtaOD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LFdyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxiYT0oKCk9PntsZXQgdD14ZSxlLGE9W10saT1bXSxyLHM9W10sbj1bXSxvLGQ9W10sYz1bXSxwLGw9W10sZj1bXSxnLHk9W10sdj1bXTtyZXR1cm4gY2xhc3MgZXh0ZW5kcyB0e3N0YXRpY3tsZXQgeD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZSh0W1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtlPVtJKHt0eXBlOkJvb2xlYW59KV0scj1bSSh7dHlwZTpCb29sZWFufSldLG89W0koe3R5cGU6Qm9vbGVhbn0pXSxwPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGc9W0koe3R5cGU6U3RyaW5nfSldLFo4KHRoaXMsbnVsbCxlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2xpY2thYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iY2xpY2thYmxlImluIE0sZ2V0Ok09Pk0uY2xpY2thYmxlLHNldDooTSxTKT0+e00uY2xpY2thYmxlPVN9fSxtZXRhZGF0YTp4fSxhLGkpLFo4KHRoaXMsbnVsbCxyLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImxvYWRpbmciaW4gTSxnZXQ6TT0+TS5sb2FkaW5nLHNldDooTSxTKT0+e00ubG9hZGluZz1TfX0sbWV0YWRhdGE6eH0scyxuKSxaOCh0aGlzLG51bGwsbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iZXJyb3IiaW4gTSxnZXQ6TT0+TS5lcnJvcixzZXQ6KE0sUyk9PntNLmVycm9yPVN9fSxtZXRhZGF0YTp4fSxkLGMpLFo4KHRoaXMsbnVsbCxwLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNpemUiaW4gTSxnZXQ6TT0+TS5zaXplLHNldDooTSxTKT0+e00uc2l6ZT1TfX0sbWV0YWRhdGE6eH0sbCxmKSxaOCh0aGlzLG51bGwsZyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ibGFiZWwiaW4gTSxnZXQ6TT0+TS5sYWJlbCxzZXQ6KE0sUyk9PntNLmxhYmVsPVN9fSxtZXRhZGF0YTp4fSx5LHYpLHgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eH0pfXN0YXRpYyBzdHlsZXM9SjI7I2U9V3IodGhpcyxhLCEwKTtnZXQgY2xpY2thYmxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGNsaWNrYWJsZSh4KXt0aGlzLiNlPXh9I3Q9KFdyKHRoaXMsaSksV3IodGhpcyxzLCExKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9hZGluZyh4KXt0aGlzLiN0PXh9I2E9KFdyKHRoaXMsbiksV3IodGhpcyxkLCExKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVycm9yKHgpe3RoaXMuI2E9eH0jaT0oV3IodGhpcyxjKSxXcih0aGlzLGwsImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2l6ZSh4KXt0aGlzLiNpPXh9I3I9KFdyKHRoaXMsZiksV3IodGhpcyx5LCIiKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxhYmVsKHgpe3RoaXMuI3I9eH1vYnNlcnZlcj1Xcih0aGlzLHYpO192aXNpYmxlPSExO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy5fdmlzaWJsZX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0aWxlLWNvbnRhaW5lciAke3RoaXMuY2xpY2thYmxlPyJjbGlja2FibGUiOiIifSAke3RoaXMubG9hZGluZz8ibG9hZGluZyI6IiJ9ICR7dGhpcy5lcnJvcj8iZXJyb3IiOiIifSIKICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVRpbGVDbGlja30KICAgICAgICBAbW91c2VlbnRlcj0ke3RoaXMub25UaWxlTW91c2VFbnRlcn0KICAgICAgICBAbW91c2VsZWF2ZT0ke3RoaXMub25UaWxlTW91c2VMZWF2ZX0KICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5vblRpbGVNb3VzZU1vdmV9CiAgICAgID4KICAgICAgICAke3RoaXMubG9hZGluZz93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1sb2FkaW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1sb2FkaW5nLXRleHQiPkxvYWRpbmcuLi48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5lcnJvcj93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1lcnJvciI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkFsZXJ0VHJpYW5nbGUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWVycm9yLXRleHQiPkZhaWxlZCB0byBsb2FkPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAkeyF0aGlzLmxvYWRpbmcmJiF0aGlzLmVycm9yP3RoaXMucmVuZGVyVGlsZUNvbnRlbnQoKToiIn0KCiAgICAgICAgJHt0aGlzLmxhYmVsP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWxhYmVsIj4ke3RoaXMubGFiZWx9PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5vYnNlcnZlciYmKHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMub2JzZXJ2ZXI9dm9pZCAwKX1zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCl7dGhpcy5vYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoeD0+e2ZvcihsZXQgTSBvZiB4KXtsZXQgUz10aGlzLl92aXNpYmxlO3RoaXMuX3Zpc2libGU9TS5pc0ludGVyc2VjdGluZyx0aGlzLl92aXNpYmxlJiYhUyYmdGhpcy5vbkJlY2FtZVZpc2libGUoKX19LHtyb290Om51bGwscm9vdE1hcmdpbjoiMjAwcHgiLHRocmVzaG9sZDouMDF9KSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcyl9b25CZWNhbWVWaXNpYmxlKCl7fW9uVGlsZU1vdXNlRW50ZXIoKXt9b25UaWxlTW91c2VMZWF2ZSgpe31vblRpbGVNb3VzZU1vdmUoeCl7fWhhbmRsZVRpbGVDbGljaygpe3RoaXMuY2xpY2thYmxlJiZ0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0aWxlLWNsaWNrIix7ZGV0YWlsOnRoaXMuZ2V0VGlsZUNsaWNrRGV0YWlsKCksYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57fX19fSkoKX0pO3ZhciBPbCxqVj1iKCgpPT57T2w9Y2xhc3N7c3RhdGljIHBvb2w9W107c3RhdGljIG1heFBvb2xTaXplPTIwO3N0YXRpYyBNSU5fQ0FOVkFTX1NJWkU9MjU2O3N0YXRpYyBNQVhfQ0FOVkFTX1NJWkU9NDA5NjtzdGF0aWMgYWNxdWlyZShlLGEpe2xldCBpPXRoaXMucG9vbC5maW5kKG89PiFvLmluVXNlJiZvLmNhbnZhcy53aWR0aD49ZSYmby5jYW52YXMuaGVpZ2h0Pj1hJiZvLmNhbnZhcy53aWR0aDw9ZSoxLjUmJm8uY2FudmFzLmhlaWdodDw9YSoxLjUpO2lmKGkpcmV0dXJuIGkuaW5Vc2U9ITAsaS5sYXN0VXNlZD1EYXRlLm5vdygpLGkuY2FudmFzLndpZHRoPWUsaS5jYW52YXMuaGVpZ2h0PWEsaS5jdHguY2xlYXJSZWN0KDAsMCxlLGEpLGk7aWYodGhpcy5wb29sLmxlbmd0aDx0aGlzLm1heFBvb2xTaXplKXtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxkPW8uZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMCxkZXN5bmNocm9uaXplZDohMH0pO28ud2lkdGg9TWF0aC5taW4oTWF0aC5tYXgoZSx0aGlzLk1JTl9DQU5WQVNfU0laRSksdGhpcy5NQVhfQ0FOVkFTX1NJWkUpLG8uaGVpZ2h0PU1hdGgubWluKE1hdGgubWF4KGEsdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLHRoaXMuTUFYX0NBTlZBU19TSVpFKTtsZXQgYz17Y2FudmFzOm8sY3R4OmQsaW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX07cmV0dXJuIHRoaXMucG9vbC5wdXNoKGMpLGN9bGV0IHI9dGhpcy5wb29sLmZpbHRlcihvPT4hby5pblVzZSkuc29ydCgobyxkKT0+by5sYXN0VXNlZC1kLmxhc3RVc2VkKVswXTtpZihyKXJldHVybiByLmNhbnZhcy53aWR0aD1lLHIuY2FudmFzLmhlaWdodD1hLHIuY3R4LmNsZWFyUmVjdCgwLDAsZSxhKSxyLmluVXNlPSEwLHIubGFzdFVzZWQ9RGF0ZS5ub3coKSxyO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLG49cy5nZXRDb250ZXh0KCIyZCIpO3JldHVybiBzLndpZHRoPWUscy5oZWlnaHQ9YSx7Y2FudmFzOnMsY3R4Om4saW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX19c3RhdGljIHJlbGVhc2UoZSl7dGhpcy5wb29sLmluY2x1ZGVzKGUpJiYoZS5pblVzZT0hMSxlLmN0eC5jbGVhclJlY3QoMCwwLGUuY2FudmFzLndpZHRoLGUuY2FudmFzLmhlaWdodCkpfXN0YXRpYyByZWxlYXNlQWxsKCl7Zm9yKGxldCBlIG9mIHRoaXMucG9vbCllLmluVXNlPSExLGUuY3R4LmNsZWFyUmVjdCgwLDAsZS5jYW52YXMud2lkdGgsZS5jYW52YXMuaGVpZ2h0KX1zdGF0aWMgZGVzdHJveSgpe2ZvcihsZXQgZSBvZiB0aGlzLnBvb2wpZS5jYW52YXMud2lkdGg9MCxlLmNhbnZhcy5oZWlnaHQ9MDt0aGlzLnBvb2w9W119c3RhdGljIGdldFN0YXRzKCl7cmV0dXJue3Bvb2xTaXplOnRoaXMucG9vbC5sZW5ndGgsbWF4UG9vbFNpemU6dGhpcy5tYXhQb29sU2l6ZSxpblVzZTp0aGlzLnBvb2wuZmlsdGVyKGU9PmUuaW5Vc2UpLmxlbmd0aCxhdmFpbGFibGU6dGhpcy5wb29sLmZpbHRlcihlPT4hZS5pblVzZSkubGVuZ3RofX1zdGF0aWMgYWRqdXN0UG9vbFNpemUoZSl7aWYoZTx0aGlzLnBvb2wubGVuZ3RoKXtsZXQgYT10aGlzLnBvb2wubGVuZ3RoLWUsaT10aGlzLnBvb2wuZmlsdGVyKHI9PiFyLmluVXNlKS5zbGljZSgwLGEpO2ZvcihsZXQgciBvZiBpKXtsZXQgcz10aGlzLnBvb2wuaW5kZXhPZihyKTtzPi0xJiZ0aGlzLnBvb2wuc3BsaWNlKHMsMSl9fXRoaXMubWF4UG9vbFNpemU9ZX19fSk7ZnVuY3Rpb24gZlV0KHQsZSl7bGV0IGE7cmV0dXJuIGZ1bmN0aW9uKC4uLnIpe2xldCBzPSgpPT57Y2xlYXJUaW1lb3V0KGEpLHQoLi4ucil9O2NsZWFyVGltZW91dChhKSxhPXdpbmRvdy5zZXRUaW1lb3V0KHMsZSl9fWZ1bmN0aW9uIG1VdCh0LGUpe2xldCBhO3JldHVybiBmdW5jdGlvbiguLi5yKXthfHwodC5hcHBseSh0aGlzLHIpLGE9ITAsc2V0VGltZW91dCgoKT0+YT0hMSxlKSl9fWZ1bmN0aW9uIGdVdCh0KXtpZih0PT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IGU9MTAyNCxhPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxpPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5sb2coZSkpO3JldHVybiBNYXRoLnJvdW5kKHQvTWF0aC5wb3coZSxpKSoxMDApLzEwMCsiICIrYVtpXX1mdW5jdGlvbiBiVXQodCxlPTApe2xldCBhPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIGEudG9wPj0tZSYmYS5sZWZ0Pj0tZSYmYS5ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpK2UmJmEucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKStlfXZhciBSbCxVVj1iKCgpPT57Umw9Y2xhc3N7c3RhdGljIG1hcmtzPW5ldyBNYXA7c3RhdGljIG1lYXN1cmVzPVtdO3N0YXRpYyBtYXJrKGUpe3RoaXMubWFya3Muc2V0KGUscGVyZm9ybWFuY2Uubm93KCkpfXN0YXRpYyBtZWFzdXJlKGUsYSl7bGV0IGk9dGhpcy5tYXJrcy5nZXQoYSk7aWYoaSl7bGV0IHI9cGVyZm9ybWFuY2Uubm93KCktaTtyZXR1cm4gdGhpcy5tZWFzdXJlcy5wdXNoKHtuYW1lOmUsZHVyYXRpb246cn0pLHRoaXMubWFya3MuZGVsZXRlKGEpLHJ9cmV0dXJuIDB9c3RhdGljIGdldFJlcG9ydCgpe2xldCBlPXttZWFzdXJlczpbLi4udGhpcy5tZWFzdXJlc10sYXZlcmFnZXM6e319LGE9bmV3IE1hcDtmb3IobGV0IGkgb2YgdGhpcy5tZWFzdXJlcylhLmhhcyhpLm5hbWUpfHxhLnNldChpLm5hbWUsW10pLGEuZ2V0KGkubmFtZSkucHVzaChpLmR1cmF0aW9uKTtmb3IobGV0W2kscl1vZiBhKWUuYXZlcmFnZXNbaV09ci5yZWR1Y2UoKHMsbik9PnMrbiwwKS9yLmxlbmd0aDtyZXR1cm4gZX1zdGF0aWMgY2xlYXIoKXt0aGlzLm1hcmtzLmNsZWFyKCksdGhpcy5tZWFzdXJlcz1bXX19fSk7dmFyIHN2dCxudnQ9YigoKT0+e3VlKCk7c3Z0PVFgCiAgLnByZXZpZXctc3RhY2sgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQoKICAucHJldmlldy1zdGFjay5ub24tYTQgewogICAgcGFkZGluZzogMTJweDsKICB9CgogIC5wcmV2aWV3LWNhbnZhcyB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgbWF4LWhlaWdodDogMTAwJTsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBhdXRvOwogICAgb2JqZWN0LWZpdDogY29udGFpbjsKICAgIGltYWdlLXJlbmRlcmluZzogYXV0bzsKICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogICAgYm94LXNoYWRvdzogMCAxcHggM3B4ICR7aC5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDAsIDAsIDAsIDAuMykiKX07CiAgfQoKICAubm9uLWE0IC5wcmV2aWV3LWNhbnZhcyB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDI0JSkiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgfQoKICAvKiBHcmlkIG9wdGltaXphdGlvbnMgKi8KICA6aG9zdChbZ3JpZC1tb2RlXSkgLnByZXZpZXctY2FudmFzIHsKICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgfQpgfSk7dmFyIG92dCxsdnQ9YigoKT0+e3VlKCk7b3Z0PSgpPT57bGV0IHQ9WyJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiLCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiXTtyZXR1cm4gd2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICAgIH0KCiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KCiAgICAgIGgzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICAucHJldmlldy1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICB9CgogICAgICAucHJldmlldy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWluLXdpZHRoOiAxMDBweDsKICAgICAgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpbmdsZSBQREYgVGlsZTwvaDM+CiAgICAgICAgPGRlZXMtdGlsZS1wZGYKICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgID48L2RlZXMtdGlsZS1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+RGlmZmVyZW50IFNpemVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5TbWFsbDo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRpbGUtcGRmCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgPjwvZGVlcy10aWxlLXBkZj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1yb3ciPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1sYWJlbCI+RGVmYXVsdDo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRpbGUtcGRmCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtcGRmPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5MYXJnZTo8L2Rpdj4KICAgICAgICAgIDxkZWVzLXRpbGUtcGRmCiAgICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIKICAgICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgPjwvZGVlcy10aWxlLXBkZj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5XaXRoIExhYmVsPC9oMz4KICAgICAgICA8ZGVlcy10aWxlLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICBsYWJlbD0iUmVzZWFyY2ggUGFwZXIucGRmIgogICAgICAgID48L2RlZXMtdGlsZS1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+Tm9uLUNsaWNrYWJsZTwvaDM+CiAgICAgICAgPGRlZXMtdGlsZS1wZGYKICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgY2xpY2thYmxlPSJmYWxzZSIKICAgICAgICA+PC9kZWVzLXRpbGUtcGRmPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPkdyaWQgLSAyMCBQREZzIHdpdGggTGF6eSBMb2FkaW5nPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWdyaWQiPgogICAgICAgICAgJHsoYT0+e2xldCBpPVtdO2ZvcihsZXQgcj0wO3I8YTtyKyspe2xldCBzPXRbciV0Lmxlbmd0aF07aS5wdXNoKHdgCiAgICAgICAgPGRlZXMtdGlsZS1wZGYKICAgICAgICAgIHBkZlVybD0iJHtzfSIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgIGdyaWQtbW9kZQogICAgICAgICAgQHRpbGUtY2xpY2s9JHtuPT57Y29uc29sZS5sb2coIlBERiBUaWxlIGNsaWNrZWQ6IixuLmRldGFpbCksYWxlcnQoYFBERiBjbGlja2VkOiAke24uZGV0YWlsLnBhZ2VDb3VudH0gcGFnZXNgKX19CiAgICAgICAgPjwvZGVlcy10aWxlLXBkZj4KICAgICAgYCl9cmV0dXJuIGl9KSgyMCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH19KTt2YXIgZDQsS2Esb3csV1Y9YigoKT0+e3VlKCk7Ym8oKTtxcygpO253KCk7alYoKTtVVigpO252dCgpO2x2dCgpO2Q0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sS2E9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LG93PSgoKT0+e2xldCB0PVtoZSgiZGVlcy10aWxlLXBkZiIpXSxlLGE9W10saSxyPWJhLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOk51bWJlcn0pXSxsPVtJKHt0eXBlOk51bWJlcn0pXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpCb29sZWFufSldLEY9W0koe3R5cGU6Qm9vbGVhbn0pXSxkNCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InBkZlVybCJpbiBBLGdldDpBPT5BLnBkZlVybCxzZXQ6KEEscSk9PntBLnBkZlVybD1xfX0sbWV0YWRhdGE6TH0sbixvKSxkNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRQcmV2aWV3UGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImN1cnJlbnRQcmV2aWV3UGFnZSJpbiBBLGdldDpBPT5BLmN1cnJlbnRQcmV2aWV3UGFnZSxzZXQ6KEEscSk9PntBLmN1cnJlbnRQcmV2aWV3UGFnZT1xfX0sbWV0YWRhdGE6TH0sYyxwKSxkNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhZ2VDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InBhZ2VDb3VudCJpbiBBLGdldDpBPT5BLnBhZ2VDb3VudCxzZXQ6KEEscSk9PntBLnBhZ2VDb3VudD1xfX0sbWV0YWRhdGE6TH0sZixnKSxkNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlbmRlcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4icmVuZGVyZWQiaW4gQSxnZXQ6QT0+QS5yZW5kZXJlZCxzZXQ6KEEscSk9PntBLnJlbmRlcmVkPXF9fSxtZXRhZGF0YTpMfSx2LG0pLGQ0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImlzSG92ZXJpbmciaW4gQSxnZXQ6QT0+QS5pc0hvdmVyaW5nLHNldDooQSxxKT0+e0EuaXNIb3ZlcmluZz1xfX0sbWV0YWRhdGE6TH0sTSxTKSxkNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzQTRGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJpc0E0Rm9ybWF0ImluIEEsZ2V0OkE9PkEuaXNBNEZvcm1hdCxzZXQ6KEEscSk9PntBLmlzQTRGb3JtYXQ9cX19LG1ldGFkYXRhOkx9LF8sayksZDQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6TH0sbnVsbCxhKSxOPWk9ZS52YWx1ZSxMJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KX1zdGF0aWMgZGVtbz1vdnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIlBERiJdO3N0YXRpYyBzdHlsZXM9Wy4uLkoyLHN2dF07I2U9S2EodGhpcyxuLCIiKTtnZXQgcGRmVXJsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHBkZlVybChMKXt0aGlzLiNlPUx9I3Q9KEthKHRoaXMsbyksS2EodGhpcyxjLDEpKTtnZXQgY3VycmVudFByZXZpZXdQYWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGN1cnJlbnRQcmV2aWV3UGFnZShMKXt0aGlzLiN0PUx9I2E9KEthKHRoaXMscCksS2EodGhpcyxmLDApKTtnZXQgcGFnZUNvdW50KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHBhZ2VDb3VudChMKXt0aGlzLiNhPUx9I2k9KEthKHRoaXMsZyksS2EodGhpcyx2LCExKSk7Z2V0IHJlbmRlcmVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHJlbmRlcmVkKEwpe3RoaXMuI2k9TH0jcj0oS2EodGhpcyxtKSxLYSh0aGlzLE0sITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNyfXNldCBpc0hvdmVyaW5nKEwpe3RoaXMuI3I9TH0jcz0oS2EodGhpcyxTKSxLYSh0aGlzLF8sITApKTtnZXQgaXNBNEZvcm1hdCgpe3JldHVybiB0aGlzLiNzfXNldCBpc0E0Rm9ybWF0KEwpe3RoaXMuI3M9TH1yZW5kZXJQYWdlc1Rhc2s9KEthKHRoaXMsayksbnVsbCk7cmVuZGVyUGFnZXNRdWV1ZWQ9ITE7cGRmRG9jdW1lbnQ7Y2FudmFzZXM9W107cmVzaXplT2JzZXJ2ZXI7c3RhY2tFbGVtZW50PW51bGw7bG9hZGVkUGRmVXJsPW51bGw7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1zdGFjayAke3RoaXMuaXNBNEZvcm1hdD8iIjoibm9uLWE0In0iPgogICAgICAgIDxjYW52YXMKICAgICAgICAgIGNsYXNzPSJwcmV2aWV3LWNhbnZhcyIKICAgICAgICAgIGRhdGEtcGFnZT0iJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX0iCiAgICAgICAgPjwvY2FudmFzPgogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5wYWdlQ291bnQ+MSYmdGhpcy5pc0hvdmVyaW5nP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZSI+CiAgICAgICAgICBQYWdlICR7dGhpcy5jdXJyZW50UHJldmlld1BhZ2V9IG9mICR7dGhpcy5wYWdlQ291bnR9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICAke3RoaXMucGFnZUNvdW50PjAmJiF0aGlzLmlzSG92ZXJpbmc/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlLWNvcm5lciI+CiAgICAgICAgICAke3RoaXMucGFnZUNvdW50fSBwYWdlJHt0aGlzLnBhZ2VDb3VudD4xPyJzIjoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgICR7dGhpcy5jbGlja2FibGU/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RXllIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlZpZXcgUERGPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57cGRmVXJsOnRoaXMucGRmVXJsLHBhZ2VDb3VudDp0aGlzLnBhZ2VDb3VudH19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMucmVuZGVyZWQmJnRoaXMucGRmVXJsJiZ0aGlzLmxvYWRBbmRSZW5kZXJQcmV2aWV3KCl9b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMH1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuY3VycmVudFByZXZpZXdQYWdlIT09MSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfW9uVGlsZU1vdXNlTW92ZShMKXtpZighdGhpcy5pc0hvdmVyaW5nfHx0aGlzLnBhZ2VDb3VudDw9MSlyZXR1cm47bGV0IEE9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxxPUwuY2xpZW50WC1BLmxlZnQsQz1BLndpZHRoLHo9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHEvQykpLEU9TWF0aC5jZWlsKHoqdGhpcy5wYWdlQ291bnQpfHwxO0UhPT10aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSYmKHRoaXMuY3VycmVudFByZXZpZXdQYWdlPUUsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY2FjaGVFbGVtZW50cygpLHRoaXMuc2V0dXBSZXNpemVPYnNlcnZlcigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDB9YXN5bmMgbG9hZEFuZFJlbmRlclByZXZpZXcoKXtpZighKHRoaXMucmVuZGVyZWR8fHRoaXMubG9hZGluZykpe3RoaXMubG9hZGluZz0hMCx0aGlzLmVycm9yPSExLFJsLm1hcmsoYHByZXZpZXctbG9hZC0ke3RoaXMucGRmVXJsfWApO3RyeXt0aGlzLnBkZkRvY3VtZW50PWF3YWl0IFVyLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksdGhpcy5wYWdlQ291bnQ9dGhpcy5wZGZEb2N1bWVudC5udW1QYWdlcyx0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZT0xLHRoaXMubG9hZGVkUGRmVXJsPXRoaXMucGRmVXJsLHRoaXMubG9hZGluZz0hMSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuY2FjaGVFbGVtZW50cygpLGF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpLHRoaXMucmVuZGVyZWQ9ITA7bGV0IEw9UmwubWVhc3VyZShgcHJldmlldy1yZW5kZXItJHt0aGlzLnBkZlVybH1gLGBwcmV2aWV3LWxvYWQtJHt0aGlzLnBkZlVybH1gKTtjb25zb2xlLmxvZyhgUERGIHRpbGUgcmVuZGVyZWQgaW4gJHtMfW1zYCl9Y2F0Y2goTCl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGxvYWQgUERGIHRpbGU6IixMKSx0aGlzLmVycm9yPSEwLHRoaXMubG9hZGluZz0hMX19fXNjaGVkdWxlUmVuZGVyUGFnZXMoKXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudD90aGlzLnJlbmRlclBhZ2VzVGFzaz8odGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMCx0aGlzLnJlbmRlclBhZ2VzVGFzayk6KHRoaXMucmVuZGVyUGFnZXNUYXNrPShhc3luYygpPT57dHJ5e2F3YWl0IHRoaXMucGVyZm9ybVJlbmRlclBhZ2VzKCl9Y2F0Y2goTCl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmRlciBQREYgdGlsZSBwYWdlczoiLEwpfX0pKCkuZmluYWxseSgoKT0+e3RoaXMucmVuZGVyUGFnZXNUYXNrPW51bGwsdGhpcy5yZW5kZXJQYWdlc1F1ZXVlZCYmKHRoaXMucmVuZGVyUGFnZXNRdWV1ZWQ9ITEsdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCkpfSksdGhpcy5yZW5kZXJQYWdlc1Rhc2spOlByb21pc2UucmVzb2x2ZSgpfWFzeW5jIHBlcmZvcm1SZW5kZXJQYWdlcygpe2lmKCF0aGlzLnBkZkRvY3VtZW50KXJldHVybjthd2FpdCBuZXcgUHJvbWlzZShDPT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoQykpO2xldCBMPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctY2FudmFzIik7aWYoIUwpcmV0dXJuO3RoaXMuY2xlYXJDYW52YXNlcygpLHRoaXMuY2FjaGVFbGVtZW50cygpO2xldHthdmFpbGFibGVXaWR0aDpBLGF2YWlsYWJsZUhlaWdodDpxfT10aGlzLmdldEF2YWlsYWJsZVNpemUoKTt0cnl7bGV0IEM9dGhpcy5jdXJyZW50UHJldmlld1BhZ2Usej1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoQyksRT16LmdldFZpZXdwb3J0KHtzY2FsZToxfSksVD1FLmhlaWdodC9FLndpZHRoLCQ9MS40MTQsVj0uNzA3LFI9MS4yOTQsVT0uNzczLHJlPS4wNSxqPU1hdGguYWJzKFQtJCk8JCpyZSxtZT1NYXRoLmFicyhULVYpPFYqcmUsd2U9TWF0aC5hYnMoVC1SKTxSKnJlLEg9TWF0aC5hYnMoVC1VKTxVKnJlO3RoaXMuaXNBNEZvcm1hdD1qfHxtZXx8d2V8fEg7bGV0IGNlPXRoaXMuaXNBNEZvcm1hdD9BOkEtMjQsa2U9dGhpcy5pc0E0Rm9ybWF0P3E6cS0yNCxXPWNlPjA/Y2UvRS53aWR0aDowLEQ9a2U+MD9rZS9FLmhlaWdodDowLE89TWF0aC5taW4oV3x8LjUsRHx8V3x8LjUpLFo9TWF0aC5taW4oTyoyLDMpO2lmKCFOdW1iZXIuaXNGaW5pdGUoWil8fFo8PTApe3ouY2xlYW51cD8uKCk7cmV0dXJufWxldCBZPXouZ2V0Vmlld3BvcnQoe3NjYWxlOlp9KSxvZT1PbC5hY3F1aXJlKFkud2lkdGgsWS5oZWlnaHQpO3RoaXMuY2FudmFzZXMucHVzaChvZSk7bGV0IGdlPXtjYW52YXNDb250ZXh0Om9lLmN0eCx2aWV3cG9ydDpZfTthd2FpdCB6LnJlbmRlcihnZSkucHJvbWlzZSxMLndpZHRoPVkud2lkdGgsTC5oZWlnaHQ9WS5oZWlnaHQ7bGV0IGJlPWNlLCRlPVkuaGVpZ2h0L1kud2lkdGgqY2U7aWYoJGU+a2Upe2xldCBQPWtlLEs9WS53aWR0aC9ZLmhlaWdodCprZTtMLnN0eWxlLndpZHRoPWAke0t9cHhgLEwuc3R5bGUuaGVpZ2h0PWAke1B9cHhgfWVsc2UgTC5zdHlsZS53aWR0aD1gJHtiZX1weGAsTC5zdHlsZS5oZWlnaHQ9YCR7JGV9cHhgO2xldCBCPUwuZ2V0Q29udGV4dCgiMmQiKTtCJiYoQi5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsQi5pbWFnZVNtb290aGluZ1F1YWxpdHk9ImhpZ2giLEIuZHJhd0ltYWdlKG9lLmNhbnZhcywwLDApKSx6LmNsZWFudXAoKX1jYXRjaChDKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gcmVuZGVyIHBhZ2UgJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX06YCxDKX19Y2xlYXJDYW52YXNlcygpe2ZvcihsZXQgTCBvZiB0aGlzLmNhbnZhc2VzKU9sLnJlbGVhc2UoTCk7dGhpcy5jYW52YXNlcz1bXX1jbGVhbnVwKCl7dGhpcy5jbGVhckNhbnZhc2VzKCksdGhpcy5wZGZEb2N1bWVudCYmKFVyLnJlbGVhc2VEb2N1bWVudCh0aGlzLmxvYWRlZFBkZlVybD8/dGhpcy5wZGZVcmwpLHRoaXMucGRmRG9jdW1lbnQ9bnVsbCksdGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMSx0aGlzLnBhZ2VDb3VudD0wLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuaXNBNEZvcm1hdD0hMCx0aGlzLnN0YWNrRWxlbWVudD1udWxsLHRoaXMubG9hZGVkUGRmVXJsPW51bGwsdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0hMX1hc3luYyB1cGRhdGVkKEwpe2lmKHN1cGVyLnVwZGF0ZWQoTCksTC5oYXMoInBkZlVybCIpJiZ0aGlzLnBkZlVybCl7bGV0IEE9TC5nZXQoInBkZlVybCIpO0EmJlVyLnJlbGVhc2VEb2N1bWVudChBKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlbmRlcmVkPSExLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTE7bGV0IHE9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtxLnRvcDx3aW5kb3cuaW5uZXJIZWlnaHQmJnEuYm90dG9tPjAmJnRoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKX1MLmhhcygiY3VycmVudFByZXZpZXdQYWdlIikmJnRoaXMucmVuZGVyZWQmJmF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpfWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgTD1bXTtyZXR1cm4gdGhpcy5jbGlja2FibGUmJihMLnB1c2goe25hbWU6IlZpZXcgUERGIixpY29uTmFtZToibHVjaWRlOkV5ZSIsYWN0aW9uOmFzeW5jKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0aWxlLWNsaWNrIix7ZGV0YWlsOnRoaXMuZ2V0VGlsZUNsaWNrRGV0YWlsKCksYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19KSxMLnB1c2goe2RpdmlkZXI6ITB9KSksTC5wdXNoKHtuYW1lOiJPcGVuIFBERiBpbiBOZXcgVGFiIixpY29uTmFtZToibHVjaWRlOkV4dGVybmFsTGluayIsYWN0aW9uOmFzeW5jKCk9Pnt3aW5kb3cub3Blbih0aGlzLnBkZlVybCwiX2JsYW5rIil9fSx7ZGl2aWRlcjohMH0se25hbWU6IkNvcHkgUERGIFVSTCIsaWNvbk5hbWU6Imx1Y2lkZTpDb3B5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGRmVXJsKX19LHtuYW1lOiJEb3dubG9hZCBQREYiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjphc3luYygpPT57bGV0IEE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO0EuaHJlZj10aGlzLnBkZlVybCxBLmRvd25sb2FkPXRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLEEuY2xpY2soKX19KSx0aGlzLnBhZ2VDb3VudD4wJiZMLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOmAke3RoaXMucGFnZUNvdW50fSBwYWdlJHt0aGlzLnBhZ2VDb3VudD4xPyJzIjoiIn1gLGljb25OYW1lOiJsdWNpZGU6RmlsZVRleHQiLGRpc2FibGVkOiEwLGFjdGlvbjphc3luYygpPT57fX0pLEx9Y2FjaGVFbGVtZW50cygpe3RoaXMuc3RhY2tFbGVtZW50fHwodGhpcy5zdGFja0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1zdGFjayIpKX1zZXR1cFJlc2l6ZU9ic2VydmVyKCl7dGhpcy5yZXNpemVPYnNlcnZlcnx8KHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5yZW5kZXJlZCYmdGhpcy5wZGZEb2N1bWVudCYmIXRoaXMubG9hZGluZyYmdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWdldEF2YWlsYWJsZVNpemUoKXtpZih0aGlzLnN0YWNrRWxlbWVudHx8KHRoaXMuc3RhY2tFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctc3RhY2siKSksIXRoaXMuc3RhY2tFbGVtZW50KXJldHVybnthdmFpbGFibGVXaWR0aDoyMDAsYXZhaWxhYmxlSGVpZ2h0OjI2MH07bGV0IEw9dGhpcy5zdGFja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksQT1NYXRoLm1heChMLndpZHRoLDApfHwyMDAscT1NYXRoLm1heChMLmhlaWdodCwwKXx8MjYwO3JldHVybnthdmFpbGFibGVXaWR0aDpBLGF2YWlsYWJsZUhlaWdodDpxfX1zdGF0aWN7S2EoaSxhKX19O3JldHVybiBOPWl9KSgpfSk7dmFyIHZVdCx5VXQsY3Z0LGR2dD1iKCgpPT57dWUoKTtXVigpO3ZVdD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LHlVdD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sY3Z0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1wZGYtcHJldmlldyIpXSxlLGE9W10saSxyPW93O3ZhciBzPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDt2VXQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6bn0sbnVsbCxhKSxzPWk9ZS52YWx1ZSxuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KX1zdGF0aWMgZGVtb0dyb3Vwcz1bXTtjb25uZWN0ZWRDYWxsYmFjaygpe3JldHVybiBjb25zb2xlLndhcm4oIltkZWVzLXBkZi1wcmV2aWV3XSBpcyBkZXByZWNhdGVkLiBVc2UgPGRlZXMtdGlsZS1wZGY+IGluc3RlYWQuIFRoaXMgY29tcG9uZW50IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiIpLHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCl9c3RhdGlje3lVdChpLGEpfX07cmV0dXJuIHM9aX0pKCl9KTt2YXIgcHZ0PWIoKCk9PntkdnQoKX0pO3ZhciBodnQ9YigoKT0+e2pWKCk7bncoKTtVVigpfSk7dmFyIHV2dD1iKCgpPT57cVYoKX0pO3ZhciBmdnQ9YigoKT0+e2JvKCk7cXMoKX0pO3ZhciBtdnQ9YigoKT0+e1dWKCl9KTt2YXIgZ3Z0LGJ2dD1iKCgpPT57dWUoKTtndnQ9KCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkltYWdlIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRpbGUtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzgwMC82MDAiCiAgICAgICAgICBhbHQ9IkxhbmRzY2FwZSBwaG90byIKICAgICAgICAgIGxhYmVsPSJsYW5kc2NhcGUuanBnIgogICAgICAgICAgQHRpbGUtY2xpY2s9JHt0PT5jb25zb2xlLmxvZygiSW1hZ2UgY2xpY2tlZDoiLHQuZGV0YWlsKX0KICAgICAgICA+PC9kZWVzLXRpbGUtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRpbGUtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzQwMC80MDAiCiAgICAgICAgICBhbHQ9IlNxdWFyZSBwaG90byIKICAgICAgICAgIGxhYmVsPSJzcXVhcmUucG5nIgogICAgICAgID48L2RlZXMtdGlsZS1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGlsZS1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvMzAwLzkwMCIKICAgICAgICAgIGFsdD0iUG9ydHJhaXQgcGhvdG8iCiAgICAgICAgICBsYWJlbD0icG9ydHJhaXQud2VicCIKICAgICAgICA+PC9kZWVzLXRpbGUtaW1hZ2U+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGlsZS1pbWFnZQogICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwIgogICAgICAgICAgYWx0PSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5qcGciCiAgICAgICAgPjwvZGVlcy10aWxlLWltYWdlPgoKICAgICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy82MDAvNDAwIgogICAgICAgICAgYWx0PSJEZWZhdWx0IgogICAgICAgICAgbGFiZWw9ImRlZmF1bHQuanBnIgogICAgICAgID48L2RlZXMtdGlsZS1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGlsZS1pbWFnZQogICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8xMjAwLzgwMCIKICAgICAgICAgIGFsdD0iTGFyZ2UiCiAgICAgICAgICBsYWJlbD0ibGFyZ2UuanBnIgogICAgICAgID48L2RlZXMtdGlsZS1pbWFnZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+RXJyb3IgU3RhdGUgKGJyb2tlbiBVUkwpPC9oMz4KICAgICAgPGRlZXMtdGlsZS1pbWFnZQogICAgICAgIHNyYz0iaHR0cHM6Ly9pbnZhbGlkLXVybC10aGF0LWRvZXMtbm90LWV4aXN0LmV4YW1wbGUvaW1hZ2UucG5nIgogICAgICAgIGFsdD0iQnJva2VuIgogICAgICAgIGxhYmVsPSJicm9rZW4ucG5nIgogICAgICA+PC9kZWVzLXRpbGUtaW1hZ2U+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBCbCxKaSx2dnQseXZ0PWIoKCk9Pnt1ZSgpO2JvKCk7cXMoKTtidnQoKTtCbD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEppPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSx2dnQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXRpbGUtaW1hZ2UiKV0sZSxhPVtdLGkscj1iYSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSigpXSx5PVtKKCldLHg9W0ooKV0sQmwodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzcmMiaW4gayxnZXQ6az0+ay5zcmMsc2V0OihrLE4pPT57ay5zcmM9Tn19LG1ldGFkYXRhOl99LG4sbyksQmwodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJhbHQiaW4gayxnZXQ6az0+ay5hbHQsc2V0OihrLE4pPT57ay5hbHQ9Tn19LG1ldGFkYXRhOl99LGMscCksQmwodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZUxvYWRlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImltYWdlTG9hZGVkImluIGssZ2V0Oms9PmsuaW1hZ2VMb2FkZWQsc2V0OihrLE4pPT57ay5pbWFnZUxvYWRlZD1OfX0sbWV0YWRhdGE6X30sZixnKSxCbCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpbWFnZVdpZHRoImluIGssZ2V0Oms9PmsuaW1hZ2VXaWR0aCxzZXQ6KGssTik9PntrLmltYWdlV2lkdGg9Tn19LG1ldGFkYXRhOl99LHYsbSksQmwodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZUhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImltYWdlSGVpZ2h0ImluIGssZ2V0Oms9PmsuaW1hZ2VIZWlnaHQsc2V0OihrLE4pPT57ay5pbWFnZUhlaWdodD1OfX0sbWV0YWRhdGE6X30sTSxTKSxCbChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLGEpLEY9aT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPWd2dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uSjIsUWAKICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoInJlcGVhdGluZy1jb25pYy1ncmFkaWVudCgjZThlOGU4IDAlIDI1JSwgd2hpdGUgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiLCJyZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoaHNsKDIxNSAyMCUgMTglKSAwJSAyNSUsIGhzbCgyMTUgMjAlIDE0JSkgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiKX07CiAgICAgIH0KCiAgICAgIC5pbWFnZS13cmFwcGVyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGVkIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnRpbGUtYmFkZ2UtdG9wcmlnaHQuZGltZW5zaW9uLWJhZGdlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC50aWxlLWJhZGdlLXRvcHJpZ2h0LmRpbWVuc2lvbi1iYWRnZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07I2U9SmkodGhpcyxuLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyhfKXt0aGlzLiNlPV99I3Q9KEppKHRoaXMsbyksSmkodGhpcyxjLCIiKSk7Z2V0IGFsdCgpe3JldHVybiB0aGlzLiN0fXNldCBhbHQoXyl7dGhpcy4jdD1ffSNhPShKaSh0aGlzLHApLEppKHRoaXMsZiwhMSkpO2dldCBpbWFnZUxvYWRlZCgpe3JldHVybiB0aGlzLiNhfXNldCBpbWFnZUxvYWRlZChfKXt0aGlzLiNhPV99I2k9KEppKHRoaXMsZyksSmkodGhpcyx2LDApKTtnZXQgaW1hZ2VXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCBpbWFnZVdpZHRoKF8pe3RoaXMuI2k9X30jcj0oSmkodGhpcyxtKSxKaSh0aGlzLE0sMCkpO2dldCBpbWFnZUhlaWdodCgpe3JldHVybiB0aGlzLiNyfXNldCBpbWFnZUhlaWdodChfKXt0aGlzLiNyPV99aGFzU3RhcnRlZExvYWRpbmc9KEppKHRoaXMsUyksITEpO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5oYXNTdGFydGVkTG9hZGluZz93YAogICAgICAgICAgPGltZwogICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmltYWdlTG9hZGVkPyJsb2FkZWQiOiJsb2FkaW5nIn0iCiAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgIGFsdD0iJHt0aGlzLmFsdH0iCiAgICAgICAgICAgIEBsb2FkPSR7dGhpcy5oYW5kbGVJbWFnZUxvYWR9CiAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgIC8+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuaW1hZ2VXaWR0aD4wJiZ0aGlzLmltYWdlSGVpZ2h0PjA/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlLXRvcHJpZ2h0IGRpbWVuc2lvbi1iYWRnZSI+CiAgICAgICAgICAke3RoaXMuaW1hZ2VXaWR0aH0gw5cgJHt0aGlzLmltYWdlSGVpZ2h0fQogICAgICAgIDwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLmltYWdlTG9hZGVkP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvIj4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkltYWdlIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aWxlLWluZm8tdGV4dCI+JHt0aGlzLmltYWdlV2lkdGh9IMOXICR7dGhpcy5pbWFnZUhlaWdodH08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkV5ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5WaWV3IEltYWdlPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57c3JjOnRoaXMuc3JjLGFsdDp0aGlzLmFsdCx3aWR0aDp0aGlzLmltYWdlV2lkdGgsaGVpZ2h0OnRoaXMuaW1hZ2VIZWlnaHR9fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nJiZ0aGlzLnNyYyYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5sb2FkaW5nPSEwLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1oYW5kbGVJbWFnZUxvYWQoXyl7bGV0IGs9Xy50YXJnZXQ7dGhpcy5pbWFnZVdpZHRoPWsubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VIZWlnaHQ9ay5uYXR1cmFsSGVpZ2h0LHRoaXMuaW1hZ2VMb2FkZWQ9ITAsdGhpcy5sb2FkaW5nPSExfWhhbmRsZUltYWdlRXJyb3IoKXt0aGlzLmVycm9yPSEwLHRoaXMubG9hZGluZz0hMX1hc3luYyB1cGRhdGVkKF8pe3N1cGVyLnVwZGF0ZWQoXyksXy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMuaW1hZ2VMb2FkZWQ9ITEsdGhpcy5sb2FkaW5nPSEwKX1zdGF0aWN7SmkoaSxhKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIHh2dD1iKCgpPT57eXZ0KCl9KTt2YXIgd3Z0LE12dD1iKCgpPT57dWUoKTt3dnQ9KCk9PndgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkF1ZGlvIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRpbGUtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMSIKICAgICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMS5tcDMiCiAgICAgICAgICBAdGlsZS1jbGljaz0ke3Q9PmNvbnNvbGUubG9nKCJBdWRpbyBjbGlja2VkOiIsdC5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGlsZS1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGlsZS1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTIubXAzIgogICAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAyIgogICAgICAgICAgYXJ0aXN0PSJULiBTY2h1ZXJnZXIiCiAgICAgICAgICBsYWJlbD0ic291bmRoZWxpeC0yLm1wMyIKICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CgogICAgICAgIDxkZWVzLXRpbGUtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0zLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMyIKICAgICAgICAgIGxhYmVsPSJzb3VuZGhlbGl4LTMubXAzIgogICAgICAgID48L2RlZXMtdGlsZS1hdWRpbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aWxlLWF1ZGlvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5tcDMiCiAgICAgICAgPjwvZGVlcy10aWxlLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aWxlLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iRGVmYXVsdCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0Lm1wMyIKICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CgogICAgICAgIDxkZWVzLXRpbGUtYXVkaW8KICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IkxhcmdlIgogICAgICAgICAgbGFiZWw9ImxhcmdlLm1wMyIKICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgdm8sdmEsenZ0LGt2dD1iKCgpPT57dWUoKTtibygpO3FzKCk7TXZ0KCk7dm89ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSx2YT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0senZ0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy10aWxlLWF1ZGlvIildLGUsYT1bXSxpLHI9YmEscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W107dmFyIHE9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6U3RyaW5nfSldLHk9W0ooKV0seD1bSigpXSxGPVtKKCldLE49W0ooKV0sdm8odGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzcmMiaW4geixnZXQ6ej0+ei5zcmMsc2V0Oih6LEUpPT57ei5zcmM9RX19LG1ldGFkYXRhOkN9LG4sbyksdm8odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InRpdGxlImluIHosZ2V0Ono9PnoudGl0bGUsc2V0Oih6LEUpPT57ei50aXRsZT1FfX0sbWV0YWRhdGE6Q30sYyxwKSx2byh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFydGlzdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImFydGlzdCJpbiB6LGdldDp6PT56LmFydGlzdCxzZXQ6KHosRSk9Pnt6LmFydGlzdD1FfX0sbWV0YWRhdGE6Q30sZixnKSx2byh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4iZHVyYXRpb24iaW4geixnZXQ6ej0+ei5kdXJhdGlvbixzZXQ6KHosRSk9Pnt6LmR1cmF0aW9uPUV9fSxtZXRhZGF0YTpDfSx2LG0pLHZvKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1EYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4id2F2ZWZvcm1EYXRhImluIHosZ2V0Ono9Pnoud2F2ZWZvcm1EYXRhLHNldDooeixFKT0+e3oud2F2ZWZvcm1EYXRhPUV9fSxtZXRhZGF0YTpDfSxNLFMpLHZvKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1SZWFkeSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+IndhdmVmb3JtUmVhZHkiaW4geixnZXQ6ej0+ei53YXZlZm9ybVJlYWR5LHNldDooeixFKT0+e3oud2F2ZWZvcm1SZWFkeT1FfX0sbWV0YWRhdGE6Q30sXyxrKSx2byh0aGlzLG51bGwsTix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJldmlld1BsYXlpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJpc1ByZXZpZXdQbGF5aW5nImluIHosZ2V0Ono9PnouaXNQcmV2aWV3UGxheWluZyxzZXQ6KHosRSk9Pnt6LmlzUHJldmlld1BsYXlpbmc9RX19LG1ldGFkYXRhOkN9LEwsQSksdm8obnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Q30sbnVsbCxhKSxxPWk9ZS52YWx1ZSxDJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkN9KX1zdGF0aWMgZGVtbz13dnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLkoyLFFgCiAgICAgIC5hdWRpby1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDI1MCA0MCUgOTYlKSwgaHNsKDI4MCAzMCUgOTQlKSkiLCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjUwIDMwJSAxNiUpLCBoc2woMjgwIDI1JSAxNCUpKSIpfTsKICAgICAgfQoKICAgICAgLm11c2ljLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogNDhweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNTAgNjAlIDY1JSkiLCJoc2woMjUwIDYwJSA3MCUpIil9OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLmF1ZGlvLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyNTAgMjAlIDM1JSkiLCJoc2woMjUwIDIwJSA4MCUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmF1ZGlvLWFydGlzdCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjUwIDE1JSA1MCUpIiwiaHNsKDI1MCAxNSUgNjUlKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IC0xMnB4OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC53YXZlZm9ybS1jb250YWluZXIgewogICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMnB4KTsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCgogICAgICAucGxheS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDE4OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC5wbGF5LW92ZXJsYXkgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5wbGF5LWNpcmNsZSB7CiAgICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgICB9CgogICAgICAucGxheS1jaXJjbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CiAgICBgXTsjZT12YSh0aGlzLG4sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKEMpe3RoaXMuI2U9Q30jdD0odmEodGhpcyxvKSx2YSh0aGlzLGMsIiIpKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGl0bGUoQyl7dGhpcy4jdD1DfSNhPSh2YSh0aGlzLHApLHZhKHRoaXMsZiwiIikpO2dldCBhcnRpc3QoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYXJ0aXN0KEMpe3RoaXMuI2E9Q30jaT0odmEodGhpcyxnKSx2YSh0aGlzLHYsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNpfXNldCBkdXJhdGlvbihDKXt0aGlzLiNpPUN9I3I9KHZhKHRoaXMsbSksdmEodGhpcyxNLFtdKSk7Z2V0IHdhdmVmb3JtRGF0YSgpe3JldHVybiB0aGlzLiNyfXNldCB3YXZlZm9ybURhdGEoQyl7dGhpcy4jcj1DfSNzPSh2YSh0aGlzLFMpLHZhKHRoaXMsXywhMSkpO2dldCB3YXZlZm9ybVJlYWR5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHdhdmVmb3JtUmVhZHkoQyl7dGhpcy4jcz1DfSNuPSh2YSh0aGlzLGspLHZhKHRoaXMsTCwhMSkpO2dldCBpc1ByZXZpZXdQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI259c2V0IGlzUHJldmlld1BsYXlpbmcoQyl7dGhpcy4jbj1DfWF1ZGlvRWxlbWVudD0odmEodGhpcyxBKSxudWxsKTtwcmV2aWV3VGltZW91dD1udWxsO2hhc0xvYWRlZFdhdmVmb3JtPSExO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImF1ZGlvLWNvbnRlbnQiPgogICAgICAgIDxkZWVzLWljb24gY2xhc3M9Im11c2ljLWljb24iIGljb249Imx1Y2lkZTpNdXNpYyI+PC9kZWVzLWljb24+CgogICAgICAgICR7dGhpcy50aXRsZT93YDxkaXYgY2xhc3M9ImF1ZGlvLXRpdGxlIj4ke3RoaXMudGl0bGV9PC9kaXY+YDoiIn0KICAgICAgICAke3RoaXMuYXJ0aXN0P3dgPGRpdiBjbGFzcz0iYXVkaW8tYXJ0aXN0Ij4ke3RoaXMuYXJ0aXN0fTwvZGl2PmA6IiJ9CgogICAgICAgICR7dGhpcy53YXZlZm9ybVJlYWR5P3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ3YXZlZm9ybS1jb250YWluZXIiPgogICAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuZHVyYXRpb24+MD93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtYmFkZ2UtY29ybmVyIj4ke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX08L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgIDxkaXYgY2xhc3M9InBsYXktb3ZlcmxheSI+CiAgICAgICAgPGRpdiBjbGFzcz0icGxheS1jaXJjbGUiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT93YAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpIZWFkcGhvbmVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlBsYXkgQXVkaW88L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntzcmM6dGhpcy5zcmMsdGl0bGU6dGhpcy50aXRsZSxhcnRpc3Q6dGhpcy5hcnRpc3QsZHVyYXRpb246dGhpcy5kdXJhdGlvbn19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMuaGFzTG9hZGVkV2F2ZWZvcm0mJnRoaXMuc3JjJiYodGhpcy5oYXNMb2FkZWRXYXZlZm9ybT0hMCx0aGlzLmxvYWRBdWRpb01ldGEoKSl9YXN5bmMgbG9hZEF1ZGlvTWV0YSgpe3RoaXMubG9hZGluZz0hMDt0cnl7bGV0IEM9bmV3IEF1ZGlvO0MuY3Jvc3NPcmlnaW49ImFub255bW91cyIsQy5wcmVsb2FkPSJtZXRhZGF0YSIsYXdhaXQgbmV3IFByb21pc2UoKHosRSk9PntDLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZG1ldGFkYXRhIiwoKT0+e3RoaXMuZHVyYXRpb249Qy5kdXJhdGlvbix6KCl9LHtvbmNlOiEwfSksQy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9PkUobmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCBhdWRpbyIpKSx7b25jZTohMH0pLEMuc3JjPXRoaXMuc3JjfSksYXdhaXQgdGhpcy5sb2FkV2F2ZWZvcm0oKSx0aGlzLmxvYWRpbmc9ITF9Y2F0Y2h7dGhpcy5sb2FkaW5nPSExfX1hc3luYyBsb2FkV2F2ZWZvcm0oKXt0cnl7bGV0IHo9YXdhaXQoYXdhaXQgZmV0Y2godGhpcy5zcmMpKS5hcnJheUJ1ZmZlcigpLEU9bmV3IEF1ZGlvQ29udGV4dCwkPShhd2FpdCBFLmRlY29kZUF1ZGlvRGF0YSh6KSkuZ2V0Q2hhbm5lbERhdGEoMCksVj04MCxSPU1hdGguZmxvb3IoJC5sZW5ndGgvViksVT1bXTtmb3IobGV0IGo9MDtqPFY7aisrKXtsZXQgbWU9MDtmb3IobGV0IHdlPTA7d2U8Ujt3ZSsrKW1lKz1NYXRoLmFicygkW2oqUit3ZV0pO1UucHVzaChtZS9SKX1sZXQgcmU9TWF0aC5tYXgoLi4uVSk7dGhpcy53YXZlZm9ybURhdGE9VS5tYXAoaj0+cmU+MD9qL3JlOjApLHRoaXMud2F2ZWZvcm1SZWFkeT0hMCxhd2FpdCBFLmNsb3NlKCksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmRyYXdXYXZlZm9ybSgpfWNhdGNoe3RoaXMud2F2ZWZvcm1SZWFkeT0hMX19ZHJhd1dhdmVmb3JtKCl7aWYoIXRoaXMud2F2ZWZvcm1SZWFkeSlyZXR1cm47bGV0IEM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud2F2ZWZvcm0tY29udGFpbmVyIGNhbnZhcyIpO2lmKCFDKXJldHVybjtsZXQgej1DLnBhcmVudEVsZW1lbnQsRT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSxUPXouY2xpZW50V2lkdGgsJD16LmNsaWVudEhlaWdodDtDLndpZHRoPVQqRSxDLmhlaWdodD0kKkU7bGV0IFY9Qy5nZXRDb250ZXh0KCIyZCIpO2lmKCFWKXJldHVybjtWLnNjYWxlKEUsRSksVi5jbGVhclJlY3QoMCwwLFQsJCk7bGV0IFI9dGhpcy53YXZlZm9ybURhdGEubGVuZ3RoO2lmKFI9PT0wKXJldHVybjtsZXQgVT1UL1Isaj1kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygidGhlbWUtZGFyayIpfHx3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/ImhzbCgyNTAgNTAlIDYwJSkiOiJoc2woMjUwIDUwJSA3MCUpIjtWLmZpbGxTdHlsZT1qO2ZvcihsZXQgbWU9MDttZTxSO21lKyspe2xldCB3ZT10aGlzLndhdmVmb3JtRGF0YVttZV0sSD1NYXRoLm1heCgyLHdlKigkLTQpKSxjZT1tZSpVLGtlPSgkLUgpLzI7Vi5maWxsUmVjdChjZSsuNSxrZSxVLTEsSCl9fWFzeW5jIHVwZGF0ZWQoQyl7c3VwZXIudXBkYXRlZChDKSxDLmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzTG9hZGVkV2F2ZWZvcm09ITAsdGhpcy53YXZlZm9ybVJlYWR5PSExLHRoaXMuZHVyYXRpb249MCx0aGlzLmxvYWRBdWRpb01ldGEoKSksQy5oYXMoIndhdmVmb3JtUmVhZHkiKSYmdGhpcy53YXZlZm9ybVJlYWR5JiYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmRyYXdXYXZlZm9ybSgpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5wcmV2aWV3VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMucHJldmlld1RpbWVvdXQpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQucGF1c2UoKSx0aGlzLmF1ZGlvRWxlbWVudC5zcmM9IiIsdGhpcy5hdWRpb0VsZW1lbnQ9bnVsbCl9Zm9ybWF0VGltZShDKXtpZighaXNGaW5pdGUoQyl8fEM8MClyZXR1cm4iMDowMCI7bGV0IHo9TWF0aC5mbG9vcihDLzYwKSxFPU1hdGguZmxvb3IoQyU2MCk7cmV0dXJuYCR7en06JHtFLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje3ZhKGksYSl9fTtyZXR1cm4gcT1pfSkoKX0pO3ZhciBTdnQ9YigoKT0+e2t2dCgpfSk7dmFyIEN2dCxfdnQ9YigoKT0+e3VlKCk7Q3Z0PSgpPT53YAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgIH0KICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQogICAgLnRpbGUtcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5WaWRlbyBUaWxlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aWxlLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJidW5ueS5tcDQiCiAgICAgICAgICBAdGlsZS1jbGljaz0ke3Q9PmNvbnNvbGUubG9nKCJWaWRlbyBjbGlja2VkOiIsdC5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGlsZS12aWRlbz4KCiAgICAgICAgPGRlZXMtdGlsZS12aWRlbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92aWUubXA0IgogICAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzMwMCIKICAgICAgICAgIGxhYmVsPSJtb3ZpZS5tcDQiCiAgICAgICAgPjwvZGVlcy10aWxlLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aWxlLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJhbm90aGVyLXZpZGVvLm1wNCIKICAgICAgICA+PC9kZWVzLXRpbGUtdmlkZW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGlsZS12aWRlbwogICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5tcDQiCiAgICAgICAgPjwvZGVlcy10aWxlLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aWxlLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0Lm1wNCIKICAgICAgICA+PC9kZWVzLXRpbGUtdmlkZW8+CgogICAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92X2JiYi5tcDQiCiAgICAgICAgICBsYWJlbD0ibGFyZ2UubXA0IgogICAgICAgID48L2RlZXMtdGlsZS12aWRlbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+V2l0aCBQb3N0ZXIgSW1hZ2U8L2gzPgogICAgICA8ZGVlcy10aWxlLXZpZGVvCiAgICAgICAgc3JjPSJodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2h0bWwvbW92aWUubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzYwMC80MDAiCiAgICAgICAgbGFiZWw9InBvc3Rlci12aWRlby5tcDQiCiAgICAgID48L2RlZXMtdGlsZS12aWRlbz4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIEhsLGVyLFR2dCxMdnQ9YigoKT0+e3VlKCk7Ym8oKTtxcygpO192dCgpO0hsPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sZXI9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFR2dD0oKCk9PntsZXQgdD1baGUoImRlZXMtdGlsZS12aWRlbyIpXSxlLGE9W10saSxyPWJhLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdO3ZhciBGPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtKKCldLHk9W0ooKV0seD1bSigpXSxIbCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNyYyJpbiBrLGdldDprPT5rLnNyYyxzZXQ6KGssTik9PntrLnNyYz1OfX0sbWV0YWRhdGE6X30sbixvKSxIbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InBvc3RlciJpbiBrLGdldDprPT5rLnBvc3RlcixzZXQ6KGssTik9PntrLnBvc3Rlcj1OfX0sbWV0YWRhdGE6X30sYyxwKSxIbCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImR1cmF0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iZHVyYXRpb24iaW4gayxnZXQ6az0+ay5kdXJhdGlvbixzZXQ6KGssTik9PntrLmR1cmF0aW9uPU59fSxtZXRhZGF0YTpffSxmLGcpLEhsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGh1bWJuYWlsQ2FwdHVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0aHVtYm5haWxDYXB0dXJlZCJpbiBrLGdldDprPT5rLnRodW1ibmFpbENhcHR1cmVkLHNldDooayxOKT0+e2sudGh1bWJuYWlsQ2FwdHVyZWQ9Tn19LG1ldGFkYXRhOl99LHYsbSksSGwodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaXNIb3ZlcmluZyJpbiBrLGdldDprPT5rLmlzSG92ZXJpbmcsc2V0OihrLE4pPT57ay5pc0hvdmVyaW5nPU59fSxtZXRhZGF0YTpffSxNLFMpLEhsKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksRj1pPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89Q3Z0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5KMixRYAogICAgICAudmlkZW8td3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICMwMDA7CiAgICAgIH0KCiAgICAgIC52aWRlby13cmFwcGVyIHZpZGVvIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC52aWRlby13cmFwcGVyIGNhbnZhcyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAucG9zdGVyLWltYWdlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCgogICAgICAucGxheS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiAxNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnBsYXktb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZpZGVvLWhvdmVyLXByZXZpZXcgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAudmlkZW8taG92ZXItcHJldmlldy5hY3RpdmUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgIGBdOyNlPWVyKHRoaXMsbiwiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoXyl7dGhpcy4jZT1ffSN0PShlcih0aGlzLG8pLGVyKHRoaXMsYywiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKF8pe3RoaXMuI3Q9X30jYT0oZXIodGhpcyxwKSxlcih0aGlzLGYsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBkdXJhdGlvbihfKXt0aGlzLiNhPV99I2k9KGVyKHRoaXMsZyksZXIodGhpcyx2LCExKSk7Z2V0IHRodW1ibmFpbENhcHR1cmVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRodW1ibmFpbENhcHR1cmVkKF8pe3RoaXMuI2k9X30jcj0oZXIodGhpcyxtKSxlcih0aGlzLE0sITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNyfXNldCBpc0hvdmVyaW5nKF8pe3RoaXMuI3I9X310aHVtYm5haWxDYW52YXM9KGVyKHRoaXMsUyksbnVsbCk7aG92ZXJWaWRlbz1udWxsO2hhc1N0YXJ0ZWRMb2FkaW5nPSExO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5wb3N0ZXI/d2AKICAgICAgICAgIDxpbWcgY2xhc3M9InBvc3Rlci1pbWFnZSIgc3JjPSIke3RoaXMucG9zdGVyfSIgYWx0PSIiIC8+CiAgICAgICAgYDp0aGlzLnRodW1ibmFpbENhcHR1cmVkP3dgCiAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgIGA6d2AKICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6ICMwMDA7Ij48L2Rpdj4KICAgICAgICBgfQoKICAgICAgICAke3RoaXMuaXNIb3ZlcmluZyYmdGhpcy5zcmM/d2AKICAgICAgICAgIDx2aWRlbwogICAgICAgICAgICBjbGFzcz0idmlkZW8taG92ZXItcHJldmlldyAke3RoaXMuaXNIb3ZlcmluZz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnNyY30KICAgICAgICAgICAgbXV0ZWQKICAgICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgICAgQGxvYWRlZGRhdGE9JHt0aGlzLmhhbmRsZUhvdmVyVmlkZW9Mb2FkZWR9CiAgICAgICAgICA+PC92aWRlbz4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5kdXJhdGlvbj4wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZS1jb3JuZXIiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLmlzSG92ZXJpbmc/IiI6d2AKICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+UGxheSBWaWRlbzwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyxwb3N0ZXI6dGhpcy5wb3N0ZXIsZHVyYXRpb246dGhpcy5kdXJhdGlvbn19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMuaGFzU3RhcnRlZExvYWRpbmcmJnRoaXMuc3JjJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmNhcHR1cmVGaXJzdEZyYW1lKCkpfWFzeW5jIGNhcHR1cmVGaXJzdEZyYW1lKCl7aWYodGhpcy5wb3N0ZXIpe3RoaXMubG9hZER1cmF0aW9uKCk7cmV0dXJufXRoaXMubG9hZGluZz0hMDt0cnl7bGV0IF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTtfLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLF8ubXV0ZWQ9ITAsXy5wcmVsb2FkPSJtZXRhZGF0YSIsYXdhaXQgbmV3IFByb21pc2UoKGssTik9PntfLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1fLmR1cmF0aW9uLF8uY3VycmVudFRpbWU9LjEsXy5hZGRFdmVudExpc3RlbmVyKCJzZWVrZWQiLCgpPT57bGV0IEw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7TC53aWR0aD1fLnZpZGVvV2lkdGgsTC5oZWlnaHQ9Xy52aWRlb0hlaWdodDtsZXQgQT1MLmdldENvbnRleHQoIjJkIik7QSYmKEEuZHJhd0ltYWdlKF8sMCwwKSx0aGlzLnRodW1ibmFpbENhbnZhcz1MLHRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ9ITApLF8uc3JjPSIiLF8ubG9hZCgpLGsoKX0se29uY2U6ITB9KX0se29uY2U6ITB9KSxfLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+TihuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIHZpZGVvIikpLHtvbmNlOiEwfSksXy5zcmM9dGhpcy5zcmN9KSx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNvcHlUaHVtYm5haWxUb0NhbnZhcygpfWNhdGNoe3RoaXMubG9hZGluZz0hMSx0aGlzLmxvYWREdXJhdGlvbigpfX1sb2FkRHVyYXRpb24oKXtsZXQgXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpO18ucHJlbG9hZD0ibWV0YWRhdGEiLF8uYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1fLmR1cmF0aW9uLF8uc3JjPSIiLF8ubG9hZCgpfSksXy5zcmM9dGhpcy5zcmN9Y29weVRodW1ibmFpbFRvQ2FudmFzKCl7aWYoIXRoaXMudGh1bWJuYWlsQ2FudmFzKXJldHVybjtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWRlby13cmFwcGVyIGNhbnZhcyIpO2lmKCFfKXJldHVybjtfLndpZHRoPXRoaXMudGh1bWJuYWlsQ2FudmFzLndpZHRoLF8uaGVpZ2h0PXRoaXMudGh1bWJuYWlsQ2FudmFzLmhlaWdodDtsZXQgaz1fLmdldENvbnRleHQoIjJkIik7ayYmay5kcmF3SW1hZ2UodGhpcy50aHVtYm5haWxDYW52YXMsMCwwKX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5ob3ZlclZpZGVvPW51bGx9aGFuZGxlSG92ZXJWaWRlb0xvYWRlZChfKXt0aGlzLmhvdmVyVmlkZW89Xy50YXJnZXQsdGhpcy5ob3ZlclZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+e30pfWFzeW5jIHVwZGF0ZWQoXyl7c3VwZXIudXBkYXRlZChfKSxfLmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy50aHVtYm5haWxDYXB0dXJlZD0hMSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5jYXB0dXJlRmlyc3RGcmFtZSgpKSxfLmhhcygidGh1bWJuYWlsQ2FwdHVyZWQiKSYmdGhpcy50aHVtYm5haWxDYXB0dXJlZCYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jb3B5VGh1bWJuYWlsVG9DYW52YXMoKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaG92ZXJWaWRlbyYmKHRoaXMuaG92ZXJWaWRlby5wYXVzZSgpLHRoaXMuaG92ZXJWaWRlby5zcmM9IiIsdGhpcy5ob3ZlclZpZGVvPW51bGwpLHRoaXMudGh1bWJuYWlsQ2FudmFzPW51bGx9Zm9ybWF0VGltZShfKXtpZighaXNGaW5pdGUoXyl8fF88MClyZXR1cm4iMDowMCI7bGV0IGs9TWF0aC5mbG9vcihfLzYwKSxOPU1hdGguZmxvb3IoXyU2MCk7cmV0dXJuYCR7a306JHtOLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje2VyKGksYSl9fTtyZXR1cm4gRj1pfSkoKX0pO3ZhciAkdnQ9YigoKT0+e0x2dCgpfSk7dmFyIEF2dCxEdnQ9YigoKT0+e3VlKCk7QXZ0PSgpPT57bGV0IHQ9YGltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHsKICBwcml2YXRlIGl0ZW1zOiBzdHJpbmdbXSA9IFtdOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgXCR7dGhpcy5pdGVtcy5tYXAoaXRlbSA9PiBodG1sXGAKICAgICAgICAgIDxzcGFuPlwke2l0ZW19PC9zcGFuPgogICAgICAgIFxgKX0KICAgICAgPC9kaXY+CiAgICBcYDsKICB9Cn1gLGU9YE1lZXRpbmcgTm90ZXMgLSBRNCBQbGFubmluZwpEYXRlOiBKYW51YXJ5IDE1LCAyMDI2CkF0dGVuZGVlczogQWxpY2UsIEJvYiwgQ2hhcmxpZQoKS2V5IERlY2lzaW9uczoKMS4gTGF1bmNoIG5ldyBmZWF0dXJlIGJ5IE1hcmNoCjIuIEhpcmUgMiBtb3JlIGVuZ2luZWVycwozLiBNaWdyYXRlIHRvIG5ldyBDSS9DRCBwaXBlbGluZQo0LiBVcGRhdGUgZGVzaWduIHN5c3RlbSB0byB2MwoKQWN0aW9uIEl0ZW1zOgotIEFsaWNlOiBEcmFmdCBQUkQgYnkgbmV4dCB3ZWVrCi0gQm9iOiBTZXQgdXAgaW50ZXJ2aWV3IHBpcGVsaW5lCi0gQ2hhcmxpZTogRXZhbHVhdGUgSmVua2lucyB2cyBHaXRIdWIgQWN0aW9uc2A7cmV0dXJuIHdgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob3RlIFRpbGVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aWxlLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImNvbXBvbmVudC50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHt0fQogICAgICAgICAgICBsYW5ndWFnZT0idHlwZXNjcmlwdCIKICAgICAgICAgICAgbGFiZWw9ImNvbXBvbmVudC50cyIKICAgICAgICAgICAgQHRpbGUtY2xpY2s9JHtpPT5jb25zb2xlLmxvZygiTm90ZSBjbGlja2VkOiIsaS5kZXRhaWwpfQogICAgICAgICAgPjwvZGVlcy10aWxlLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJNZWV0aW5nIE5vdGVzIgogICAgICAgICAgICAuY29udGVudD0ke2V9CiAgICAgICAgICAgIGxhYmVsPSJtZWV0aW5nLW5vdGVzLnR4dCIKICAgICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRpbGUtbm90ZQogICAgICAgICAgICB0aXRsZT0icGFja2FnZS5qc29uIgogICAgICAgICAgICAuY29udGVudD0ke2B7CiAgIm5hbWUiOiAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIiwKICAidmVyc2lvbiI6ICIzLjM4LjAiLAogICJkZXNjcmlwdGlvbiI6ICJEZXNpZ24gY29tcG9uZW50IGNhdGFsb2ciLAogICJkZXBlbmRlbmNpZXMiOiB7CiAgICAiQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IjogIl4yLjAuMCIsCiAgICAibGl0IjogIl4zLjEuMCIKICB9LAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQiLAogICAgInRlc3QiOiAidHN0ZXN0IgogIH0KfWB9CiAgICAgICAgICAgIGxhbmd1YWdlPSJqc29uIgogICAgICAgICAgICBsYWJlbD0icGFja2FnZS5qc29uIgogICAgICAgICAgPjwvZGVlcy10aWxlLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICB0aXRsZT0ic21hbGwudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7dH0KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0ic21hbGwudHMiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aWxlLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImRlZmF1bHQudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7dH0KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0iZGVmYXVsdC50cyIKICAgICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRpbGUtbm90ZQogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgdGl0bGU9ImxhcmdlLnRzIgogICAgICAgICAgICAuY29udGVudD0ke3R9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9ImxhcmdlLnRzIgogICAgICAgICAgPjwvZGVlcy10aWxlLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+V2l0aG91dCBUaXRsZTwvaDM+CiAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAuY29udGVudD0ke2V9CiAgICAgICAgICBsYWJlbD0idW50aXRsZWQudHh0IgogICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9fSk7dmFyIFg4LFZzLEV2dCxQdnQ9YigoKT0+e3VlKCk7Ym8oKTtxcygpO0R2dCgpO1g4PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sVnM9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LEV2dD0oKCk9PntsZXQgdD1baGUoImRlZXMtdGlsZS1ub3RlIildLGUsYT1bXSxpLHI9YmEscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBNPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLGw9W0koe3R5cGU6U3RyaW5nfSldLHk9W0ooKV0sWDgodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InRpdGxlImluIFMsZ2V0OlM9PlMudGl0bGUsc2V0OihTLEYpPT57Uy50aXRsZT1GfX0sbWV0YWRhdGE6TX0sbixvKSxYOCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJjb250ZW50ImluIFMsZ2V0OlM9PlMuY29udGVudCxzZXQ6KFMsRik9PntTLmNvbnRlbnQ9Rn19LG1ldGFkYXRhOk19LGMscCksWDgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYW5ndWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+Imxhbmd1YWdlImluIFMsZ2V0OlM9PlMubGFuZ3VhZ2Usc2V0OihTLEYpPT57Uy5sYW5ndWFnZT1GfX0sbWV0YWRhdGE6TX0sZixnKSxYOCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSG92ZXJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJpc0hvdmVyaW5nImluIFMsZ2V0OlM9PlMuaXNIb3ZlcmluZyxzZXQ6KFMsRik9PntTLmlzSG92ZXJpbmc9Rn19LG1ldGFkYXRhOk19LHYsbSksWDgobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6TX0sbnVsbCxhKSx4PWk9ZS52YWx1ZSxNJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOk19KX1zdGF0aWMgZGVtbz1BdnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLkoyLFFgCiAgICAgIC5ub3RlLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiaHNsKDYwIDUlIDk2JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm5vdGUtaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHggOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubm90ZS10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSAyMCUpIiwiaHNsKDIxNSAyMCUgMjAlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgICAgfQoKICAgICAgLm5vdGUtYm9keSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAwIDE0cHggMTRweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm5vdGUtdGV4dCB7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDEwJSA0MCUpIiwiaHNsKDIxNSAxMCUgMzUlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CgogICAgICAubm90ZS1mYWRlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgaGVpZ2h0OiA2MHB4OwogICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgKICAgICAgICAgIHRyYW5zcGFyZW50LAogICAgICAgICAgJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woNjAgNSUgOTYlKSIpfQogICAgICAgICk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWJhZGdlLXRvcHJpZ2h0Lm5vdGUtbGFuZ3VhZ2UgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSA5MiUpIiwiaHNsKDIxNSAyMCUgODglKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTYlIDUwJSkiLCJoc2woMjE1IDE2JSA0MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLm5vdGUtbGluZXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgd2lkdGg6IDM0cHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA4NSUpIiwiaHNsKDAgNTAlIDgwJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmctdG9wOiAxMnB4OwogICAgICB9CgogICAgICAubGluZS1udW1iZXIgewogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogOXB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4OyAvKiBtYXRjaGVzIDEwcHggKiAxLjUgbGluZS1oZWlnaHQgKi8KICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTAlIDc1JSkiLCJoc2woMjE1IDEwJSA3MCUpIil9OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDsKICAgICAgfQoKICAgIGBdOyNlPVZzKHRoaXMsbiwiIik7Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpdGxlKE0pe3RoaXMuI2U9TX0jdD0oVnModGhpcyxvKSxWcyh0aGlzLGMsIiIpKTtnZXQgY29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBjb250ZW50KE0pe3RoaXMuI3Q9TX0jYT0oVnModGhpcyxwKSxWcyh0aGlzLGYsIiIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbGFuZ3VhZ2UoTSl7dGhpcy4jYT1NfSNpPShWcyh0aGlzLGcpLFZzKHRoaXMsdiwhMSkpO2dldCBpc0hvdmVyaW5nKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGlzSG92ZXJpbmcoTSl7dGhpcy4jaT1NfW5vdGVCb2R5RWxlbWVudD0oVnModGhpcyxtKSxudWxsKTtyZW5kZXJUaWxlQ29udGVudCgpe2xldCBNPXRoaXMuY29udGVudC5zcGxpdChgCmApO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJub3RlLWNvbnRlbnQiPgogICAgICAgICR7dGhpcy5sYW5ndWFnZT93YAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZS10b3ByaWdodCBub3RlLWxhbmd1YWdlIj4ke3RoaXMubGFuZ3VhZ2V9PC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLnRpdGxlP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJub3RlLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtdGl0bGUiPiR7dGhpcy50aXRsZX08L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtYm9keSI+CiAgICAgICAgICA8cHJlIGNsYXNzPSJub3RlLXRleHQiPiR7TS5qb2luKGAKYCl9PC9wcmU+CiAgICAgICAgICAke3RoaXMuaXNIb3ZlcmluZz8iIjp3YDxkaXYgY2xhc3M9Im5vdGUtZmFkZSI+PC9kaXY+YH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLmlzSG92ZXJpbmcmJk0ubGVuZ3RoPjEyP3dgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlLWNvcm5lciI+CiAgICAgICAgICAgIExpbmUgJHt0aGlzLmdldFZpc2libGVMaW5lUmFuZ2UoTS5sZW5ndGgpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZpbGVUZXh0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPk9wZW4gTm90ZTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3RpdGxlOnRoaXMudGl0bGUsY29udGVudDp0aGlzLmNvbnRlbnQsbGFuZ3VhZ2U6dGhpcy5sYW5ndWFnZX19b25UaWxlTW91c2VFbnRlcigpe3RoaXMuaXNIb3ZlcmluZz0hMCx0aGlzLm5vdGVCb2R5RWxlbWVudHx8KHRoaXMubm90ZUJvZHlFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm5vdGUtYm9keSIpKX1vblRpbGVNb3VzZUxlYXZlKCl7dGhpcy5pc0hvdmVyaW5nPSExLHRoaXMubm90ZUJvZHlFbGVtZW50JiYodGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wPTApfW9uVGlsZU1vdXNlTW92ZShNKXtpZighdGhpcy5pc0hvdmVyaW5nfHwhdGhpcy5ub3RlQm9keUVsZW1lbnR8fHRoaXMuY29udGVudC5zcGxpdChgCmApLmxlbmd0aDw9MTIpcmV0dXJuO2xldCBGPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXz1NLmNsaWVudFgtRi5sZWZ0LGs9TWF0aC5tYXgoMCxNYXRoLm1pbigxLF8vRi53aWR0aCkpLE49dGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMubm90ZUJvZHlFbGVtZW50LmNsaWVudEhlaWdodDt0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3A9aypOfWdldFZpc2libGVMaW5lUmFuZ2UoTSl7aWYoIXRoaXMubm90ZUJvZHlFbGVtZW50KXJldHVybmAxXHUyMDEzMTIgb2YgJHtNfWA7bGV0IFM9MTUsRj1NYXRoLmZsb29yKHRoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcC9TKSsxLF89TWF0aC5mbG9vcih0aGlzLm5vdGVCb2R5RWxlbWVudC5jbGllbnRIZWlnaHQvUyksaz1NYXRoLm1pbihGK18tMSxNKTtyZXR1cm5gJHtGfVx1MjAxMyR7a30gb2YgJHtNfWB9c3RhdGlje1ZzKGksYSl9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBJdnQ9YigoKT0+e1B2dCgpfSk7dmFyIE52dCxGdnQ9YigoKT0+e3VlKCk7TnZ0PSgpPT57bGV0IHQ9W3t0eXBlOiJpbWFnZSIsbmFtZToic3Vuc2V0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MSJ9LHt0eXBlOiJpbWFnZSIsbmFtZToibW91bnRhaW4uanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0yIn0se3R5cGU6ImltYWdlIixuYW1lOiJvY2Vhbi5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTMifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImZvcmVzdC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTQifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImNpdHkuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT01In0se3R5cGU6ImltYWdlIixuYW1lOiJkZXNlcnQuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT02In1dO3JldHVybiB3YAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgICAgfQogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgICB9CiAgICAgIGgzIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CiAgICAgIC50aWxlLXJvdyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+Rm9sZGVyIFRpbGVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aWxlLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJQaG90b3MiCiAgICAgICAgICAgIC5pdGVtcz0ke3R9CiAgICAgICAgICAgIGxhYmVsPSI2IHBob3RvcyIKICAgICAgICAgICAgQHRpbGUtY2xpY2s9JHtzPT5jb25zb2xlLmxvZygiRm9sZGVyIGNsaWNrZWQ6IixzLmRldGFpbCl9CiAgICAgICAgICA+PC9kZWVzLXRpbGUtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9Im15LXByb2plY3QiCiAgICAgICAgICAgIC5pdGVtcz0ke1t7dHlwZToibm90ZSIsbmFtZToiUkVBRE1FLm1kIn0se3R5cGU6Im5vdGUiLG5hbWU6InBhY2thZ2UuanNvbiJ9LHt0eXBlOiJmb2xkZXIiLG5hbWU6InNyYyJ9LHt0eXBlOiJmb2xkZXIiLG5hbWU6InRlc3QifSx7dHlwZToibm90ZSIsbmFtZToidHNjb25maWcuanNvbiJ9LHt0eXBlOiJwZGYiLG5hbWU6ImRvY3MucGRmIn0se3R5cGU6ImltYWdlIixuYW1lOiJsb2dvLnBuZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMTAwLzEwMD9yYW5kb209MTAifV19CiAgICAgICAgICAgIGxhYmVsPSJQcm9qZWN0IGZpbGVzIgogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aWxlLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJNZWRpYSBBc3NldHMiCiAgICAgICAgICAgIC5pdGVtcz0ke1t7dHlwZToidmlkZW8iLG5hbWU6ImludHJvLm1wNCJ9LHt0eXBlOiJhdWRpbyIsbmFtZToiYmFja2dyb3VuZC5tcDMifSx7dHlwZToiaW1hZ2UiLG5hbWU6InRodW1ibmFpbC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTIwIn0se3R5cGU6InBkZiIsbmFtZToic3Rvcnlib2FyZC5wZGYifV19CiAgICAgICAgICAgIGxhYmVsPSJNaXhlZCBtZWRpYSIKICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+RWRnZSBDYXNlczwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iRW1wdHkgRm9sZGVyIgogICAgICAgICAgICAuaXRlbXM9JHtbXX0KICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iU2luZ2xlIEl0ZW0iCiAgICAgICAgICAgIC5pdGVtcz0ke1t7dHlwZToicGRmIixuYW1lOiJyZXBvcnQucGRmIn1dfQogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5TaXplIFZhcmlhbnRzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aWxlLWZvbGRlcgogICAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgICAgbmFtZT0iU21hbGwiCiAgICAgICAgICAgIC5pdGVtcz0ke3R9CiAgICAgICAgICA+PC9kZWVzLXRpbGUtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IkRlZmF1bHQiCiAgICAgICAgICAgIC5pdGVtcz0ke3R9CiAgICAgICAgICA+PC9kZWVzLXRpbGUtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgICBuYW1lPSJMYXJnZSIKICAgICAgICAgICAgLml0ZW1zPSR7dH0KICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH19KTt2YXIgR1YsSzgsT3Z0LFJ2dCxCdnQ9YigoKT0+e3VlKCk7Ym8oKTtxcygpO0Z2dCgpO0dWPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sSzg9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LE92dD17cGRmOiJsdWNpZGU6RmlsZVRleHQiLGltYWdlOiJsdWNpZGU6SW1hZ2UiLGF1ZGlvOiJsdWNpZGU6TXVzaWMiLHZpZGVvOiJsdWNpZGU6VmlkZW8iLG5vdGU6Imx1Y2lkZTpGaWxlQ29kZSIsZm9sZGVyOiJsdWNpZGU6Rm9sZGVyIix1bmtub3duOiJsdWNpZGU6RmlsZSJ9LFJ2dD0oKCk9PntsZXQgdD1baGUoImRlZXMtdGlsZS1mb2xkZXIiKV0sZSxhPVtdLGkscj1iYSxzLG49W10sbz1bXSxkLGM9W10scD1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7YXR0cmlidXRlOiExfSldLEdWKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+Im5hbWUiaW4gZyxnZXQ6Zz0+Zy5uYW1lLHNldDooZyx5KT0+e2cubmFtZT15fX0sbWV0YWRhdGE6Zn0sbixvKSxHVih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Iml0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnPT4iaXRlbXMiaW4gZyxnZXQ6Zz0+Zy5pdGVtcyxzZXQ6KGcseSk9PntnLml0ZW1zPXl9fSxtZXRhZGF0YTpmfSxjLHApLEdWKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmZ9LG51bGwsYSksbD1pPWUudmFsdWUsZiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmfSl9c3RhdGljIGRlbW89TnZ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5KMixRYAogICAgICAuZm9sZGVyLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDAgMzAlIDk3JSkiLCJoc2woMjE1IDIwJSAxNCUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5mb2xkZXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZvbGRlci1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woNDAgODAlIDUwJSkiLCJoc2woNDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5mb2xkZXItbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSAyMCUpIiwiaHNsKDIxNSAxNiUgODAlKSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnByZXZpZXctZ3JpZCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAxZnI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMCAxNHB4IDE0cHg7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDIwJSA5NCUpIiwiaHNsKDIxNSAyMCUgMTglKSIpfTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5ncmlkLWNlbGwgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDE2JSA2MCUpIiwiaHNsKDIxNSAxNiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbC1lbXB0eSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTUgMTUlIDk2JSkiLCJoc2woMjE1IDIwJSAxNiUpIil9OwogICAgICB9CgogICAgYF07I2U9SzgodGhpcyxuLCIiKTtnZXQgbmFtZSgpe3JldHVybiB0aGlzLiNlfXNldCBuYW1lKGYpe3RoaXMuI2U9Zn0jdD0oSzgodGhpcyxvKSxLOCh0aGlzLGMsW10pKTtnZXQgaXRlbXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXRlbXMoZil7dGhpcy4jdD1mfXJlbmRlclRpbGVDb250ZW50KCl7bGV0IGY9dGhpcy5pdGVtcy5zbGljZSgwLDQpLGc9NC1mLmxlbmd0aDtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLWNvbnRlbnQiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvbGRlci1oZWFkZXIiPgogICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iZm9sZGVyLWljb24iIGljb249Imx1Y2lkZTpGb2xkZXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLW5hbWUiPiR7dGhpcy5uYW1lfHwiVW50aXRsZWQgRm9sZGVyIn08L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1ncmlkIj4KICAgICAgICAgICR7Zi5tYXAoeT0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jZWxsIj4KICAgICAgICAgICAgICAke3kudGh1bWJuYWlsU3JjP3dgCiAgICAgICAgICAgICAgICA8aW1nIHNyYz0iJHt5LnRodW1ibmFpbFNyY30iIGFsdD0iJHt5Lm5hbWV9IiAvPgogICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iJHtPdnRbeS50eXBlXXx8T3Z0LnVua25vd259Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICBgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgICAgJHtBcnJheS5mcm9tKHtsZW5ndGg6Z30pLm1hcCgoKT0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1jZWxsIGdyaWQtY2VsbC1lbXB0eSI+PC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlLWNvcm5lciI+CiAgICAgICAgJHt0aGlzLml0ZW1zLmxlbmd0aH0gaXRlbSR7dGhpcy5pdGVtcy5sZW5ndGghPT0xPyJzIjoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP3dgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkZvbGRlck9wZW4iPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+T3BlbiBGb2xkZXI8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntuYW1lOnRoaXMubmFtZSxpdGVtQ291bnQ6dGhpcy5pdGVtcy5sZW5ndGgsaXRlbXM6dGhpcy5pdGVtc319Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEs4KHRoaXMscCl9c3RhdGlje0s4KGksYSl9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBIdnQ9YigoKT0+e0J2dCgpfSk7dmFyIHF2dD1iKCgpPT57SWJ0KCk7UmJ0KCk7VmJ0KCk7ZXZ0KCk7cnZ0KCk7cHZ0KCk7aHZ0KCk7dXZ0KCk7ZnZ0KCk7bXZ0KCk7eHZ0KCk7U3Z0KCk7JHZ0KCk7SXZ0KCk7SHZ0KCl9KTt2YXIgVnZ0PWIoKCk9PntzMigpfSk7dmFyIGp2dD1iKCgpPT57RzAoKX0pO3ZhciBVdnQsV3Z0PWIoKCk9Pnt1ZSgpO1V2dD0oKT0+d2AKICAgIDxzdHlsZT4KICAgICAgLnJlZjEgewogICAgICAgIG1hcmdpbjogMjBweDsKICAgICAgICB3aWR0aDogMTBweDsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0icmVmMSI+PC9kaXY+CiAgICA8ZGVlcy1zcGVlY2hidWJibGUgLnRleHQ9JHtgCiAgICAgICoqVGhpcyBpcyBhIGxvbmdlciBtYXJrZG93biB0ZXh0IHRoYXQgIGNhbiBiZSB1c2VkIHRoZSB3cml0ZSoqICAKICAgICAgYSBsb25nZXIgZGVzY3JpcHRpb24gYWJvdXQgd2hhdHMgZ29pbmcgb24gdGhlIGFwcCAgCiAgCiAgICAgICoqVGhpcyBpcyBhIHN1YmhlYWRlcioqCiAgICAgIGFuZCBhbm90aGVyIHRleHQKICAgIAogICAgYH0+PC9kZWVzLXNwZWVjaGJ1YmJsZT4KICBgfSk7dmFyIHFsLHRyLEd2dCxZdnQ9YigoKT0+e2dpKCk7cjIoKTtXdnQoKTt1ZSgpO19zKCk7cWUoKTtxbD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LHRyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxHdnQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXNwZWVjaGJ1YmJsZSIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdO3ZhciBGPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOk9iamVjdH0pXSxkPVtJKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLGw9W0koe3R5cGU6Qm9vbGVhbn0pXSx5PVtJKHt0eXBlOkJvb2xlYW59KV0seD1bSSh7dHlwZTpTdHJpbmd9KV0scWwodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZWZmZWRFbGVtZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4icmVmZmVkRWxlbWVudCJpbiBrLGdldDprPT5rLnJlZmZlZEVsZW1lbnQsc2V0OihrLE4pPT57ay5yZWZmZWRFbGVtZW50PU59fSxtZXRhZGF0YTpffSxuLG8pLHFsKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InRleHQiaW4gayxnZXQ6az0+ay50ZXh0LHNldDooayxOKT0+e2sudGV4dD1OfX0sbWV0YWRhdGE6X30sYyxwKSxxbCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ3YXZlImluIGssZ2V0Oms9Pmsud2F2ZSxzZXQ6KGssTik9PntrLndhdmU9Tn19LG1ldGFkYXRhOl99LGYsZykscWwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYW5pZmVzdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ibWFuaWZlc3RlZCJpbiBrLGdldDprPT5rLm1hbmlmZXN0ZWQsc2V0OihrLE4pPT57ay5tYW5pZmVzdGVkPU59fSxtZXRhZGF0YTpffSx2LG0pLHFsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ic3RhdHVzImluIGssZ2V0Oms9Pmsuc3RhdHVzLHNldDooayxOKT0+e2suc3RhdHVzPU59fSxtZXRhZGF0YTpffSxNLFMpLHFsKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksRj1pPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89VXZ0O3N0YXRpYyBkZW1vR3JvdXBzPVsiT3ZlcmxheSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KF8sayl7bGV0IE49YXdhaXQgZmkuY3JlYXRlQW5kU2hvdyh7Ymx1cjohMX0pLEw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVlcy1zcGVlY2hidWJibGUiKTtyZXR1cm4gTC53aW5kb3dMYXllcj1OLEwucmVmZmVkRWxlbWVudD1fLEwudGV4dD1rLEwubWFuaWZlc3RlZD0hMCxOLmFwcGVuZENoaWxkKEwpLE4uc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsTi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3dPdmVybGF5Iikuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsTH0jZT10cih0aGlzLG4sdm9pZCAwKTtnZXQgcmVmZmVkRWxlbWVudCgpe3JldHVybiB0aGlzLiNlfXNldCByZWZmZWRFbGVtZW50KF8pe3RoaXMuI2U9X30jdD0odHIodGhpcyxvKSx0cih0aGlzLGMsdm9pZCAwKSk7Z2V0IHRleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdGV4dChfKXt0aGlzLiN0PV99I2E9KHRyKHRoaXMscCksdHIodGhpcyxmLCExKSk7Z2V0IHdhdmUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgd2F2ZShfKXt0aGlzLiNhPV99I2k9KHRyKHRoaXMsZyksdHIodGhpcyx2LCExKSk7Z2V0IG1hbmlmZXN0ZWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWFuaWZlc3RlZChfKXt0aGlzLiNpPV99I3I9KHRyKHRoaXMsbSksdHIodGhpcyxNLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNyfXNldCBzdGF0dXMoXyl7dGhpcy4jcj1ffXdpbmRvd0xheWVyPXRyKHRoaXMsUyk7Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDsKICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmFycm93IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgd2lkdGg6IDE1cHg7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHRvcDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5zcGVlY2hidWJibGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1pbi13aWR0aDogMjQwcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLndhdmUgewogICAgICAgIGFuaW1hdGlvbi1uYW1lOiB3YXZlLWFuaW1hdGlvbjsgLyogUmVmZXJzIHRvIHRoZSBuYW1lIG9mIHlvdXIgQGtleWZyYW1lcyBlbGVtZW50IGJlbG93ICovCiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyLjVzOyAvKiBDaGFuZ2UgdG8gc3BlZWQgdXAgb3Igc2xvdyBkb3duICovCiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IC8qIE5ldmVyIHN0b3Agd2F2aW5nIDopICovCiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNzAlIDcwJTsgLyogUGl2b3QgYXJvdW5kIHRoZSBib3R0b20tbGVmdCBwYWxtICovCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHdhdmUtYW5pbWF0aW9uIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgICAgMTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE0ZGVnKTsKICAgICAgICB9IC8qIFRoZSBmb2xsb3dpbmcgZml2ZSB2YWx1ZXMgY2FuIGJlIHBsYXllZCB3aXRoIHRvIG1ha2UgdGhlIHdhdmluZyBtb3JlIG9yIGxlc3MgZXh0cmVtZSAqLwogICAgICAgIDIwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOGRlZyk7CiAgICAgICAgfQogICAgICAgIDMwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7CiAgICAgICAgfQogICAgICAgIDQwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNGRlZyk7CiAgICAgICAgfQogICAgICAgIDUwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMGRlZyk7CiAgICAgICAgfQogICAgICAgIDYwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9IC8qIFJlc2V0IGZvciB0aGUgbGFzdCBoYWxmIHRvIHBhdXNlICovCiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICAke3RoaXMubWFuaWZlc3RlZD93YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsaWNrfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BlZWNoYnViYmxlIj4KICAgICAgICAgICAgICAgICR7dGhpcy53YXZlP3dgPHNwYW4gY2xhc3M9IndhdmUiPvCfkYs8L3NwYW4+YDp3YGB9CiAgICAgICAgICAgICAgICAke1ZhLnJlc29sdmUodGhpcy5nZXRIdG1sKCkpfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6d2BgfQogICAgYH1hc3luYyBoYW5kbGVDbGljaygpe2NvbnNvbGUubG9nKCJzcGVlY2hidWJibGUgZ290IGNsaWNrZWQuIil9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5yZWZmZWRFbGVtZW50fHwodGhpcy5yZWZmZWRFbGVtZW50PXRoaXMucHJldmlvdXNFbGVtZW50U2libGluZyksdGhpcy5tYW5pZmVzdGVkKWF3YWl0IHRoaXMudXBkYXRlUG9zaXRpb24oKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIxIjtlbHNle2xldCBfO3RoaXMucmVmZmVkRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixhc3luYygpPT57Xz1hd2FpdCBGLmNyZWF0ZUFuZFNob3codGhpcy5yZWZmZWRFbGVtZW50LHRoaXMudGV4dCl9KSx0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9PntfLmRlc3Ryb3koKX0pfX1hc3luYyB1cGRhdGVQb3NpdGlvbigpe2xldCBfPXRoaXMucmVmZmVkRWxlbWVudCxrPV8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUudG9wPWAke2sudG9wLTEzfXB4YCx0aGlzLnN0eWxlLmxlZnQ9YCR7ay5sZWZ0K18uY2xpZW50V2lkdGgrNH1weGAsay5yaWdodD4yNTAmJih0aGlzLnN0eWxlLndpZHRoPSIyNTBweCIpfWFzeW5jIGdldEh0bWwoKXtpZighdGhpcy50ZXh0KXJldHVybiIiO2xldCBfPXJ0LnBsdWdpbnMuc21hcnRzdHJpbmcubm9ybWFsaXplLnN0YW5kYXJkKHRoaXMudGV4dCksaz1hd2FpdCBydC5wbHVnaW5zLnNtYXJ0bWFya2Rvd24uU21hcnRNYXJrZG93bi5lYXN5TWFya2Rvd25Ub0h0bWwoXyk7cmV0dXJuIGc1KGspfWFzeW5jIHNob3coKXt9YXN5bmMgZGVzdHJveSgpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpfXN0YXRpY3t0cihpLGEpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgWnZ0PWIoKCk9PntZdnQoKX0pO3ZhciBYdnQ9YigoKT0+e19zKCl9KTt2YXIgS3Z0PWIoKCk9PntWdnQoKTtqdnQoKTtadnQoKTtYdnQoKX0pO3ZhciBRdnQ9YigoKT0+e30pO3ZhciBKdnQ9YigoKT0+e1F2dCgpfSk7dmFyIGV5dCxsdyxjdyxZVix0eXQsZHcscHcsaHcsdXc9YigoKT0+e2V5dD0iaHR0cHM6Ly9zdGFja2JsaXR6LmNvbSIsbHc9ImNvZGUiLGN3PSJlcnJvciIsWVY9ImVycm9yX2Rlc2NyaXB0aW9uIix0eXQ9Il9fd2NfYXBpX2JjX18iLGR3PSJfX3djX2FwaV90b2tlbnNfXyIscHc9Il9fd2NfYXBpX3ZlcmlmaWVyX18iLGh3PSJfX3djX2FwaV9wb3B1cF9fIn0pO3ZhciBwNCxaVj1iKCgpPT57cDQ9Y2xhc3N7X2J1cz1uZXcgRXZlbnRUYXJnZXQ7bGlzdGVuKGUpe2Z1bmN0aW9uIGEoaSl7ZShpLmRhdGEpfXJldHVybiB0aGlzLl9idXMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYSksKCk9PnRoaXMuX2J1cy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixhKX1maXJlRXZlbnQoZSl7dGhpcy5fYnVzLmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgibWVzc2FnZSIse2RhdGE6ZX0pKX19fSk7ZnVuY3Rpb24gZncoKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShkdyl9ZnVuY3Rpb24gbnl0KHQpe3JldHVybiBpeXQubGlzdGVuKHQpfWZ1bmN0aW9uIHhVdCgpe2xldCB0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKGR3KTtpZighdClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIEpTT04ucGFyc2UodCl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHdVdCh0KXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShkdyxKU09OLnN0cmluZ2lmeSh0KSl9ZnVuY3Rpb24gcnl0KHtjcmVhdGVkX2F0OnQsZXhwaXJlc19pbjplfSl7cmV0dXJuKHQrZSkqMWUzfWZ1bmN0aW9uIHN5dCh0KXtpZih0eXBlb2YgdCE9Im9iamVjdCJ8fCF0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBUb2tlbiBSZXNwb25zZSIpO2lmKHR5cGVvZiB0LmFjY2Vzc190b2tlbiE9InN0cmluZyJ8fHR5cGVvZiB0LnJlZnJlc2hfdG9rZW4hPSJzdHJpbmcifHx0eXBlb2YgdC5jcmVhdGVkX2F0IT0ibnVtYmVyInx8dHlwZW9mIHQuZXhwaXJlc19pbiE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFRva2VuIFJlc3BvbnNlIil9ZnVuY3Rpb24gTVV0KHQpe3JldHVybiBuZXcgUHJvbWlzZShlPT5zZXRUaW1lb3V0KGUsdCkpfWZ1bmN0aW9uIHpVdCh0KXtpeXQuZmlyZUV2ZW50KHQpfXZhciBheXQsaXl0LFZsLFhWPWIoKCk9Pnt1dygpO1pWKCk7YXl0PW5ldyBFcnJvcjtheXQuc3RhY2s9IiI7aXl0PW5ldyBwNCxWbD1jbGFzcyB0e29yaWdpbjtyZWZyZXNoO2FjY2VzcztleHBpcmVzO19yZXZva2VkPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3RydWN0b3IoZSxhLGkscil7dGhpcy5vcmlnaW49ZSx0aGlzLnJlZnJlc2g9YSx0aGlzLmFjY2Vzcz1pLHRoaXMuZXhwaXJlcz1yfWFzeW5jIGFjdGl2YXRlKGUpe2lmKHRoaXMuX3Jldm9rZWQuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEVycm9yKCJUb2tlbiByZXZva2VkIik7cmV0dXJuIHRoaXMuZXhwaXJlczxEYXRlLm5vdygpJiYhYXdhaXQgdGhpcy5fZmV0Y2hOZXdBY2Nlc3NUb2tlbigpPyExOih0aGlzLl9zeW5jKCksdGhpcy5fc3RhcnRSZWZyZXNoVG9rZW5zTG9vcChlKSwhMCl9YXN5bmMgcmV2b2tlKGUsYSl7dGhpcy5fcmV2b2tlZC5hYm9ydCgpO3RyeXtpZighKGF3YWl0IGZldGNoKGAke3RoaXMub3JpZ2lufS9vYXV0aC9yZXZva2VgLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe3Rva2VuOnRoaXMucmVmcmVzaCx0b2tlbl90eXBlX2hpbnQ6InJlZnJlc2hfdG9rZW4iLGNsaWVudF9pZDplfSksbW9kZToiY29ycyJ9KSkub2spdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gbG9nb3V0Iil9Y2F0Y2goaSl7aWYoIWEpdGhyb3cgaX1mdygpfXN0YXRpYyBmcm9tU3RvcmFnZSgpe2xldCBlPXhVdCgpO3JldHVybiBlP25ldyB0KGUub3JpZ2luLGUucmVmcmVzaCxlLmFjY2VzcyxlLmV4cGlyZXMpOm51bGx9c3RhdGljIGFzeW5jIGZyb21BdXRoQ29kZSh7ZWRpdG9yT3JpZ2luOmUsY2xpZW50SWQ6YSxjb2RlVmVyaWZpZXI6aSxhdXRoQ29kZTpyLHJlZGlyZWN0VXJpOnN9KXtsZXQgbj1hd2FpdCBmZXRjaChgJHtlfS9vYXV0aC90b2tlbmAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyh7Y2xpZW50X2lkOmEsY29kZTpyLGNvZGVfdmVyaWZpZXI6aSxncmFudF90eXBlOiJhdXRob3JpemF0aW9uX2NvZGUiLHJlZGlyZWN0X3VyaTpzfSksbW9kZToiY29ycyJ9KTtpZighbi5vayl0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCB0b2tlbjogJHtuLnN0YXR1c31gKTtsZXQgbz1hd2FpdCBuLmpzb24oKTtzeXQobyk7bGV0e2FjY2Vzc190b2tlbjpkLHJlZnJlc2hfdG9rZW46Y309byxwPXJ5dChvKTtyZXR1cm4gbmV3IHQoZSxjLGQscCl9YXN5bmMgX2ZldGNoTmV3QWNjZXNzVG9rZW4oKXt0cnl7bGV0IGU9YXdhaXQgZmV0Y2goYCR7dGhpcy5vcmlnaW59L29hdXRoL3Rva2VuYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHtncmFudF90eXBlOiJyZWZyZXNoX3Rva2VuIixyZWZyZXNoX3Rva2VuOnRoaXMucmVmcmVzaH0pLG1vZGU6ImNvcnMiLHNpZ25hbDp0aGlzLl9yZXZva2VkLnNpZ25hbH0pO2lmKCFlLm9rKXRocm93IGF5dDtsZXQgYT1hd2FpdCBlLmpzb24oKTtzeXQoYSk7bGV0e2FjY2Vzc190b2tlbjppLHJlZnJlc2hfdG9rZW46cn09YSxzPXJ5dChhKTtyZXR1cm4gdGhpcy5hY2Nlc3M9aSx0aGlzLmV4cGlyZXM9cyx0aGlzLnJlZnJlc2g9ciwhMH1jYXRjaHtyZXR1cm4gZncoKSwhMX19X3N5bmMoKXt3VXQodGhpcykselV0KHRoaXMuYWNjZXNzKX1hc3luYyBfc3RhcnRSZWZyZXNoVG9rZW5zTG9vcChlKXtmb3IoOzspe2xldCBhPXRoaXMuZXhwaXJlcy1EYXRlLm5vdygpLTFlMztpZihhd2FpdCBNVXQoTWF0aC5tYXgoYSwxZTMpKSx0aGlzLl9yZXZva2VkLnNpZ25hbC5hYm9ydGVkKXJldHVybjtpZighdGhpcy5fZmV0Y2hOZXdBY2Nlc3NUb2tlbigpKXtlKCk7cmV0dXJufXRoaXMuX3N5bmMoKX19fX0pO3ZhciBLVixtdyxqcyxRVj1iKCgpPT57dXcoKTtLVj17fSxtdz1udWxsLGpzPXtnZXQgZWRpdG9yT3JpZ2luKCl7cmV0dXJuIG13PT1udWxsJiYobXc9bmV3IFVSTChnbG9iYWxUaGlzLldFQkNPTlRBSU5FUl9BUElfSUZSQU1FX1VSTD8/ZXl0KS5vcmlnaW4pLG13fSxzZXQgZWRpdG9yT3JpZ2luKHQpe213PW5ldyBVUkwodCkub3JpZ2lufSxzZXRRdWVyeVBhcmFtKHQsZSl7S1ZbdF09ZX0sZ2V0IHVybCgpe2xldCB0PW5ldyBVUkwodGhpcy5lZGl0b3JPcmlnaW4pO3QucGF0aG5hbWU9Ii9oZWFkbGVzcyI7Zm9yKGxldCBlIGluIEtWKXQuc2VhcmNoUGFyYW1zLnNldChlLEtWW2VdKTtyZXR1cm4gdC5zZWFyY2hQYXJhbXMuc2V0KCJ2ZXJzaW9uIiwiMS42LjEiKSx0fX19KTthc3luYyBmdW5jdGlvbiBveXQodCl7bGV0IGU9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpLGE9bmV3IFVpbnQ4QXJyYXkoYXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGUpKTtyZXR1cm4gYnRvYShhLnJlZHVjZSgoaSxyKT0+aStTdHJpbmcuZnJvbUNvZGVQb2ludChyKSwiIikpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIil9ZnVuY3Rpb24gbHl0KCl7bGV0IHQ9bmV3IFVpbnQ4QXJyYXkoOTYpO2NyeXB0by5nZXRSYW5kb21WYWx1ZXModCk7bGV0IGU9IiI7Zm9yKGxldCBhPTA7YTwzMjsrK2EpZSs9a1V0KHRbMyphKzBdLHRbMyphKzFdLHRbMyphKzJdKTtyZXR1cm4gZX1mdW5jdGlvbiBrVXQodCxlLGEpe2xldCBpPXQ+PjIscj0odCYzKTw8NHxlPj40LHM9ZSYxNXwoYSYxOTIpPj4yLG49YSY2MztyZXR1cm5baSxyLHMsbl0ubWFwKFNVdCkuam9pbigiIil9ZnVuY3Rpb24gU1V0KHQpe2xldCBlO3JldHVybiB0PDI2P2U9dCs2NTp0PDUyP2U9dC0yNis5Nzp0PDYyP2U9dC01Mis0ODplPXQ9PT02Mj8zMDo0NSxTdHJpbmcuZnJvbUNoYXJDb2RlKGUpfXZhciBjeXQ9YigoKT0+e30pO2Z1bmN0aW9uIGR5dCgpe2xldCB0LGU7ZnVuY3Rpb24gYSgpe2U9bmV3IFByb21pc2UoaT0+dD1pKX1yZXR1cm4gYSgpLHtnZXQgcHJvbWlzZSgpe3JldHVybiBlfSxyZXNvbHZlKGkpe3JldHVybiB0KGkpfSxyZXNldDphfX12YXIgcHl0PWIoKCk9Pnt9KTtmdW5jdGlvbiBROCh0KXtidC5icm9hZGNhc3RDaGFubmVsJiYoYnQuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSh0KSxsb2NhbFN0b3JhZ2UuZ2V0SXRlbShodyk9PT0idHJ1ZSImJnQudHlwZSE9PSJhdXRoLWxvZ291dCImJihsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShodyksc2V0VGltZW91dCgoKT0+e3dpbmRvdy5jbG9zZSgpfSkpKX1mdW5jdGlvbiBKVigpe2g0LmZpcmVFdmVudCgpLFE4KHt0eXBlOiJhdXRoLWxvZ291dCJ9KX1mdW5jdGlvbiB1eXQoKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWZ9YXN5bmMgZnVuY3Rpb24gZnl0KCl7bGV0IHQ9bHl0KCk7bG9jYWxTdG9yYWdlLnNldEl0ZW0ocHcsdCk7bGV0IGU9YXdhaXQgb3l0KHQpLGE9bmV3IFVSTCgiL29hdXRoL2F1dGhvcml6ZSIsYnQuZWRpdG9yT3JpZ2luKSx7c2VhcmNoUGFyYW1zOml9PWE7cmV0dXJuIGkuYXBwZW5kKCJyZXNwb25zZV90eXBlIiwiY29kZSIpLGkuYXBwZW5kKCJjbGllbnRfaWQiLGJ0LmNsaWVudElkKSxpLmFwcGVuZCgicmVkaXJlY3RfdXJpIix1eXQoKSksaS5hcHBlbmQoInNjb3BlIixidC5vYXV0aFNjb3BlKSxpLmFwcGVuZCgiY29kZV9jaGFsbGVuZ2UiLGUpLGkuYXBwZW5kKCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiLCJTMjU2IiksYS50b1N0cmluZygpfWZ1bmN0aW9uIGVqKHQpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiT29wcyEgVG9rZW5zIGlzIG5vdCBkZWZpbmVkIHdoZW4gaXQgYWx3YXlzIHNob3VsZCBiZS4iKX12YXIgYnQsaHl0LGg0LG15dCx0aj1iKCgpPT57WFYoKTt1dygpO1FWKCk7Y3l0KCk7cHl0KCk7WlYoKTtidD17aW5pdGlhbGl6ZWQ6ITEsYm9vdENhbGxlZDohMSxhdXRoQ29tcGxldGU6ZHl0KCksY2xpZW50SWQ6IiIsb2F1dGhTY29wZToiIixicm9hZGNhc3RDaGFubmVsOm51bGwsZ2V0IGVkaXRvck9yaWdpbigpe3JldHVybiBqcy5lZGl0b3JPcmlnaW59LHRva2VuczpudWxsfSxoeXQ9bmV3IHA0LGg0PW5ldyBwNDtteXQ9e2luaXQoe2VkaXRvck9yaWdpbjp0LGNsaWVudElkOmUsc2NvcGU6YX0pe2lmKGJ0LmluaXRpYWxpemVkKXRocm93IG5ldyBFcnJvcigiSW5pdCBzaG91bGQgb25seSBiZSBjYWxsZWQgb25jZSIpO2lmKCEwJiZidC5ib290Q2FsbGVkKXRocm93IG5ldyBFcnJvcigiYGF1dGguaW5pdGAgc2hvdWxkIGFsd2F5cyBiZSBjYWxsZWQgYmVmb3JlIGBXZWJDb250YWluZXIuYm9vdGAiKTtidC5pbml0aWFsaXplZD0hMCxidC50b2tlbnM9VmwuZnJvbVN0b3JhZ2UoKSxidC5jbGllbnRJZD1lLGJ0Lm9hdXRoU2NvcGU9YSxidC5icm9hZGNhc3RDaGFubmVsPW5ldyBCcm9hZGNhc3RDaGFubmVsKHR5dCksanMuc2V0UXVlcnlQYXJhbSgiY2xpZW50X2lkIixlKSx0JiYoanMuZWRpdG9yT3JpZ2luPW5ldyBVUkwodCkub3JpZ2luKSxoNC5saXN0ZW4oKCk9PmJ0LmF1dGhDb21wbGV0ZS5yZXNldCgpKSxidC5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHIpO2FzeW5jIGZ1bmN0aW9uIHIoZCl7bGV0IGM9ZC5kYXRhO2lmKGMudHlwZT09PSJhdXRoLWNvbXBsZXRlIil7YnQudG9rZW5zPVZsLmZyb21TdG9yYWdlKCksYXdhaXQgYnQudG9rZW5zLmFjdGl2YXRlKEpWKSxidC5hdXRoQ29tcGxldGUucmVzb2x2ZSgpO3JldHVybn1pZihjLnR5cGU9PT0iYXV0aC1mYWlsZWQiKXtoeXQuZmlyZUV2ZW50KGMpO3JldHVybn1pZihjLnR5cGU9PT0iYXV0aC1sb2dvdXQiKXtoNC5maXJlRXZlbnQoKTtyZXR1cm59fWlmKGJ0LnRva2Vucyl7bGV0IGQ9YnQudG9rZW5zO2lmKGQub3JpZ2luPT09YnQuZWRpdG9yT3JpZ2luKXJldHVybihhc3luYygpPT57aWYoIWF3YWl0IGQuYWN0aXZhdGUoSlYpKXtpZihidC50b2tlbnMhPT1kKXJldHVybjtoNC5maXJlRXZlbnQoKTtyZXR1cm59YnQuYXV0aENvbXBsZXRlLnJlc29sdmUoKX0pKCkse3N0YXR1czoiYXV0aG9yaXplZCJ9O2Z3KCksYnQudG9rZW5zPW51bGx9bGV0IHM9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikse3NlYXJjaFBhcmFtczpufT1zLG89KCk9PndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSxkb2N1bWVudC50aXRsZSxzKTtpZihuLmhhcyhjdykpe2xldCBkPW4uZ2V0KGN3KSxjPW4uZ2V0KFlWKTtyZXR1cm4gbi5kZWxldGUoY3cpLG4uZGVsZXRlKFlWKSxvKCksUTgoe3R5cGU6ImF1dGgtZmFpbGVkIixlcnJvcjpkLGRlc2NyaXB0aW9uOmN9KSx7c3RhdHVzOiJhdXRoLWZhaWxlZCIsZXJyb3I6ZCxkZXNjcmlwdGlvbjpjfX1pZihuLmhhcyhsdykpe2xldCBkPW4uZ2V0KGx3KSxjPWJ0LmVkaXRvck9yaWdpbjtuLmRlbGV0ZShsdyksbygpO2xldCBwPWxvY2FsU3RvcmFnZS5nZXRJdGVtKHB3KTtyZXR1cm4gcD8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0ocHcpLFZsLmZyb21BdXRoQ29kZSh7ZWRpdG9yT3JpZ2luOmMsY2xpZW50SWQ6YnQuY2xpZW50SWQsYXV0aENvZGU6ZCxjb2RlVmVyaWZpZXI6cCxyZWRpcmVjdFVyaTp1eXQoKX0pLnRoZW4oYXN5bmMgbD0+e2lmKGJ0LnRva2Vucz1sLGVqKGJ0LnRva2VucyksIWF3YWl0IGJ0LnRva2Vucy5hY3RpdmF0ZShKVikpdGhyb3cgbmV3IEVycm9yO2J0LmF1dGhDb21wbGV0ZS5yZXNvbHZlKCksUTgoe3R5cGU6ImF1dGgtY29tcGxldGUifSl9KS5jYXRjaChsPT57Y29uc29sZS5lcnJvcihsKSxoNC5maXJlRXZlbnQoKSxROCh7dHlwZToiYXV0aC1sb2dvdXQifSl9KSx7c3RhdHVzOiJhdXRob3JpemVkIn0pOntzdGF0dXM6Im5lZWQtYXV0aCJ9fXJldHVybntzdGF0dXM6Im5lZWQtYXV0aCJ9fSxhc3luYyBzdGFydEF1dGhGbG93KHtwb3B1cDp0fT17fSl7aWYoIWJ0LmluaXRpYWxpemVkKXRocm93IG5ldyBFcnJvcigiYXV0aC5pbml0IG11c3QgYmUgY2FsbGVkIGZpcnN0Iik7aWYodCl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oaHcsInRydWUiKTtsZXQgZT01MDAsYT02MjAsaT13aW5kb3cuc2NyZWVuTGVmdCsod2luZG93Lm91dGVyV2lkdGgtYSkvMixyPXdpbmRvdy5zY3JlZW5Ub3ArKHdpbmRvdy5vdXRlckhlaWdodC1lKS8yO3dpbmRvdy5vcGVuKGF3YWl0IGZ5dCgpLCJfYmxhbmsiLGBwb3B1cCx3aWR0aD0ke2F9LGhlaWdodD0ke2V9LGxlZnQ9JHtpfSx0b3A9JHtyfWApfWVsc2Ugd2luZG93LmxvY2F0aW9uLmhyZWY9YXdhaXQgZnl0KCl9LGFzeW5jIGxvZ291dCh7aWdub3JlUmV2b2tlRXJyb3I6dH09e30pe2F3YWl0IGJ0LnRva2Vucz8ucmV2b2tlKGJ0LmNsaWVudElkLHQ/PyExKSxoNC5maXJlRXZlbnQoKSxROCh7dHlwZToiYXV0aC1sb2dvdXQifSl9LGxvZ2dlZEluKCl7cmV0dXJuIGJ0LmF1dGhDb21wbGV0ZS5wcm9taXNlfSxvbih0LGUpe3N3aXRjaCh0KXtjYXNlImF1dGgtZmFpbGVkIjpyZXR1cm4gaHl0Lmxpc3RlbihlKTtjYXNlImxvZ2dlZC1vdXQiOnJldHVybiBoNC5saXN0ZW4oZSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV2ZW50IHR5cGUgJyR7dH0nLmApfX19fSk7dmFyIFVzLGd3PWIoKCk9PnsoZnVuY3Rpb24odCl7dC5VbmNhdWdodEV4Y2VwdGlvbj0iUFJFVklFV19VTkNBVUdIVF9FWENFUFRJT04iLHQuVW5oYW5kbGVkUmVqZWN0aW9uPSJQUkVWSUVXX1VOSEFORExFRF9SRUpFQ1RJT04iLHQuQ29uc29sZUVycm9yPSJQUkVWSUVXX0NPTlNPTEVfRVJST1IifSkoVXN8fChVcz17fSkpfSk7ZnVuY3Rpb24gc2oodCxlPXNlbGYpe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gYShpKXtpZighaXx8IWkuZGF0YSlyZXR1cm47bGV0e2lkOnIsdHlwZTpzLHBhdGg6bn09T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0saS5kYXRhKSxvPShpLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKHU0KSxkO3RyeXtsZXQgYz1uLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxmKT0+bFtmXSx0KSxwPW4ucmVkdWNlKChsLGYpPT5sW2ZdLHQpO3N3aXRjaChzKXtjYXNlIDA6ZD1wO2JyZWFrO2Nhc2UgMTpjW24uc2xpY2UoLTEpWzBdXT11NChpLmRhdGEudmFsdWUpLGQ9ITA7YnJlYWs7Y2FzZSAyOmQ9cC5hcHBseShjLG8pO2JyZWFrO2Nhc2UgMzp7bGV0IGw9bmV3IHAoLi4ubyk7ZD1reXQobCl9YnJlYWs7Y2FzZSA0OntsZXR7cG9ydDE6bCxwb3J0MjpmfT1uZXcgTWVzc2FnZUNoYW5uZWw7c2oodCxmKSxkPXp5dChsLFtsXSl9YnJlYWs7Y2FzZSA1OmQ9dm9pZCAwO2JyZWFrfX1jYXRjaChjKXtkPXt2YWx1ZTpjLFtpal06MH19UHJvbWlzZS5yZXNvbHZlKGQpLmNhdGNoKGM9Pih7dmFsdWU6YyxbaWpdOjB9KSkudGhlbihjPT57bGV0W3AsbF09b2ooYyk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scCkse2lkOnJ9KSxsKSxzPT09NSYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYSkseXl0KGUpKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uICRVdCh0KXtyZXR1cm4gdC5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiB5eXQodCl7JFV0KHQpJiZ0LmNsb3NlKCl9ZnVuY3Rpb24geHl0KHQsZSl7cmV0dXJuIG5qKHQsW10sZSl9ZnVuY3Rpb24gYncodCl7aWYodCl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIG5qKHQsZT1bXSxhPWZ1bmN0aW9uKCl7fSl7bGV0IGk9ITEscj1uZXcgUHJveHkoYSx7Z2V0KHMsbil7aWYoYncoaSksbj09PWJ5dClyZXR1cm4oKT0+amwodCx7dHlwZTo1LHBhdGg6ZS5tYXAobz0+by50b1N0cmluZygpKX0pLnRoZW4oKCk9Pnt5eXQodCksaT0hMH0pO2lmKG49PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IG89amwodCx7dHlwZTowLHBhdGg6ZS5tYXAoZD0+ZC50b1N0cmluZygpKX0pLnRoZW4odTQpO3JldHVybiBvLnRoZW4uYmluZChvKX1yZXR1cm4gbmoodCxbLi4uZSxuXSl9LHNldChzLG4sbyl7YncoaSk7bGV0W2QsY109b2oobyk7cmV0dXJuIGpsKHQse3R5cGU6MSxwYXRoOlsuLi5lLG5dLm1hcChwPT5wLnRvU3RyaW5nKCkpLHZhbHVlOmR9LGMpLnRoZW4odTQpfSxhcHBseShzLG4sbyl7YncoaSk7bGV0IGQ9ZVtlLmxlbmd0aC0xXTtpZihkPT09Z3l0KXJldHVybiBqbCh0LHt0eXBlOjR9KS50aGVuKHU0KTtpZihkPT09ImJpbmQiKXJldHVybiBuaih0LGUuc2xpY2UoMCwtMSkpO2xldFtjLHBdPXd5dChvKTtyZXR1cm4gamwodCx7dHlwZToyLHBhdGg6ZS5tYXAobD0+bC50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Y30scCkudGhlbih1NCl9LGNvbnN0cnVjdChzLG4pe2J3KGkpO2xldFtvLGRdPXd5dChuKTtyZXR1cm4gamwodCx7dHlwZTozLHBhdGg6ZS5tYXAoYz0+Yy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6b30sZCkudGhlbih1NCl9fSk7cmV0dXJuIHJ9ZnVuY3Rpb24gQVV0KHQpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLHQpfWZ1bmN0aW9uIHd5dCh0KXtsZXQgZT10Lm1hcChvaik7cmV0dXJuW2UubWFwKGE9PmFbMF0pLEFVdChlLm1hcChhPT5hWzFdKSldfWZ1bmN0aW9uIHp5dCh0LGUpe3JldHVybiBNeXQuc2V0KHQsZSksdH1mdW5jdGlvbiBreXQodCl7cmV0dXJuIE9iamVjdC5hc3NpZ24odCx7W2FqXTohMH0pfWZ1bmN0aW9uIERVdCh0LGU9c2VsZixhPSIqIil7cmV0dXJue3Bvc3RNZXNzYWdlOihpLHIpPT50LnBvc3RNZXNzYWdlKGksYSxyKSxhZGRFdmVudExpc3RlbmVyOmUuYWRkRXZlbnRMaXN0ZW5lci5iaW5kKGUpLHJlbW92ZUV2ZW50TGlzdGVuZXI6ZS5yZW1vdmVFdmVudExpc3RlbmVyLmJpbmQoZSl9fWZ1bmN0aW9uIG9qKHQpe2ZvcihsZXRbZSxhXW9mIHJqKWlmKGEuY2FuSGFuZGxlKHQpKXtsZXRbaSxyXT1hLnNlcmlhbGl6ZSh0KTtyZXR1cm5be3R5cGU6MyxuYW1lOmUsdmFsdWU6aX0scl19cmV0dXJuW3t0eXBlOjAsdmFsdWU6dH0sTXl0LmdldCh0KXx8W11dfWZ1bmN0aW9uIHU0KHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UgMzpyZXR1cm4gcmouZ2V0KHQubmFtZSkuZGVzZXJpYWxpemUodC52YWx1ZSk7Y2FzZSAwOnJldHVybiB0LnZhbHVlfX1mdW5jdGlvbiBqbCh0LGUsYSl7cmV0dXJuIG5ldyBQcm9taXNlKGk9PntsZXQgcj1FVXQoKTt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIHMobil7IW4uZGF0YXx8IW4uZGF0YS5pZHx8bi5kYXRhLmlkIT09cnx8KHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscyksaShuLmRhdGEpKX0pLHQuc3RhcnQmJnQuc3RhcnQoKSx0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LGUpLGEpfSl9ZnVuY3Rpb24gRVV0KCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX12YXIgQ1V0LF9VdCx3aSxhaixneXQsYnl0LGlqLHZ5dCxUVXQsTFV0LHJqLE15dCxTeXQ9YigoKT0+e0NVdD1PYmplY3QuZGVmaW5lUHJvcGVydHksX1V0PSh0LGUpPT57Zm9yKHZhciBhIGluIGUpQ1V0KHQsYSx7Z2V0OmVbYV0sZW51bWVyYWJsZTohMH0pfSx3aT17fTtfVXQod2kse2NyZWF0ZUVuZHBvaW50OigpPT5neXQsZXhwb3NlOigpPT5zaixwcm94eTooKT0+a3l0LHByb3h5TWFya2VyOigpPT5haixyZWxlYXNlUHJveHk6KCk9PmJ5dCx0cmFuc2ZlcjooKT0+enl0LHRyYW5zZmVySGFuZGxlcnM6KCk9PnJqLHdpbmRvd0VuZHBvaW50OigpPT5EVXQsd3JhcDooKT0+eHl0fSk7YWo9U3ltYm9sKCJDb21saW5rLnByb3h5IiksZ3l0PVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLGJ5dD1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksaWo9U3ltYm9sKCJDb21saW5rLnRocm93biIpLHZ5dD10PT50eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsfHx0eXBlb2YgdD09ImZ1bmN0aW9uIixUVXQ9e2NhbkhhbmRsZTp0PT52eXQodCkmJnRbYWpdLHNlcmlhbGl6ZSh0KXtsZXR7cG9ydDE6ZSxwb3J0MjphfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIHNqKHQsZSksW2EsW2FdXX0sZGVzZXJpYWxpemUodCl7cmV0dXJuIHQuc3RhcnQoKSx4eXQodCl9fSxMVXQ9e2NhbkhhbmRsZTp0PT52eXQodCkmJmlqIGluIHQsc2VyaWFsaXplKHt2YWx1ZTp0fSl7bGV0IGU7cmV0dXJuIHQgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOnQubWVzc2FnZSxuYW1lOnQubmFtZSxzdGFjazp0LnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTp0fSxbZSxbXV19LGRlc2VyaWFsaXplKHQpe3Rocm93IHQuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcih0LnZhbHVlLm1lc3NhZ2UpLHQudmFsdWUpOnQudmFsdWV9fSxyaj1uZXcgTWFwKFtbInByb3h5IixUVXRdLFsidGhyb3ciLExVdF1dKTtNeXQ9bmV3IFdlYWtNYXB9KTt2YXIgQ3l0PWIoKCk9Pnt9KTtmdW5jdGlvbiBsaih0KXtyZXR1cm4hKHQ9PW51bGx8fHR5cGVvZiB0IT0ib2JqZWN0Inx8ISgidHlwZSJpbiB0KXx8IVBVdC5pbmNsdWRlcyh0LnR5cGUpKX12YXIgUFV0LF95dD1iKCgpPT57Z3coKTtQVXQ9W1VzLkNvbnNvbGVFcnJvcixVcy5VbmNhdWdodEV4Y2VwdGlvbixVcy5VbmhhbmRsZWRSZWplY3Rpb25dfSk7dmFyIGNqPWIoKCk9PntDeXQoKTtndygpO195dCgpfSk7ZnVuY3Rpb24gZjQodCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gdD9PYmplY3QuYXNzaWduKGUsdCk6ZX12YXIgVHl0PWIoKCk9Pnt9KTtmdW5jdGlvbiBkaih0KXtsZXQgZT17ZDp7fX07Zm9yKGxldCBhIG9mIE9iamVjdC5rZXlzKHQpKXtsZXQgaT10W2FdO2lmKCJmaWxlImluIGkpe2lmKCJzeW1saW5rImluIGkuZmlsZSl7ZS5kW2FdPXtmOntsOmkuZmlsZS5zeW1saW5rfX07Y29udGludWV9bGV0IHM9aS5maWxlLmNvbnRlbnRzLG49dHlwZW9mIHM9PSJzdHJpbmciP3M6SVV0LmRlY29kZShzKSxvPXR5cGVvZiBzPT0ic3RyaW5nIj97fTp7YjohMH07ZS5kW2FdPXtmOntjOm4sLi4ub319O2NvbnRpbnVlfWxldCByPWRqKGkuZGlyZWN0b3J5KTtlLmRbYV09cn1yZXR1cm4gZX1mdW5jdGlvbiBwaih0KXtsZXQgZT1mNCgpO2lmKCJmImluIHQpdGhyb3cgbmV3IEVycm9yKCJJdCBpcyBub3QgcG9zc2libGUgdG8gZXhwb3J0IGEgc2luZ2xlIGZpbGUgaW4gdGhlIEpTT04gZm9ybWF0LiIpO2lmKCJkImluIHQpZm9yKGxldCBhIG9mIE9iamVjdC5rZXlzKHQuZCkpe2xldCBpPXQuZFthXTsiZCJpbiBpP2VbYV09ZjQoe2RpcmVjdG9yeTpwaihpKX0pOiJmImluIGkmJigiYyJpbiBpLmY/ZVthXT1mNCh7ZmlsZTpmNCh7Y29udGVudHM6aS5mLmI/TlV0KGkuZi5jKTppLmYuY30pfSk6ImwiaW4gaS5mJiYoZVthXT1mNCh7ZmlsZTpmNCh7c3ltbGluazppLmYubH0pfSkpKX1yZXR1cm4gZX1mdW5jdGlvbiBOVXQodCl7bGV0IGU9bmV3IFVpbnQ4QXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgYT0wO2E8dC5sZW5ndGg7YSsrKWVbYV09dFthXS5jaGFyQ29kZUF0KDApO3JldHVybiBlfXZhciBJVXQsTHl0PWIoKCk9PntUeXQoKTtJVXQ9bmV3IFRleHREZWNvZGVyKCJsYXRpbjEiKX0pO2Z1bmN0aW9uIEtkMih0KXtpZihidC5ib290Q2FsbGVkKXRocm93IG5ldyBFcnJvcigiYGNvbmZpZ3VyZUFQSUtleWAgc2hvdWxkIGFsd2F5cyBiZSBjYWxsZWQgYmVmb3JlIGBXZWJDb250YWluZXIuYm9vdGAiKTtqcy5zZXRRdWVyeVBhcmFtKCJjbGllbnRfaWQiLHQpfWFzeW5jIGZ1bmN0aW9uIEJVdCh0KXtsZXR7c2VydmVyUHJvbWlzZTplfT1IVXQodCksaT1hd2FpdChhd2FpdCBlKS5idWlsZCh7aG9zdDp3aW5kb3cubG9jYXRpb24uaG9zdCx2ZXJzaW9uOiIxLjYuMSIsd29ya2Rpck5hbWU6dC53b3JrZGlyTmFtZSxmb3J3YXJkUHJldmlld0Vycm9yczp0LmZvcndhcmRQcmV2aWV3RXJyb3JzfSksW3IscyxuXT1hd2FpdCBQcm9taXNlLmFsbChbaS5mcygpLGkucHJldmlld1NjcmlwdCgpLGkucnVudGltZUluZm8oKV0pO3JldHVybiBuZXcgSjgoaSxyLHMsbil9ZnVuY3Rpb24gYmoodCl7aWYodCE9bnVsbClyZXR1cm4gZT0+e2UgaW5zdGFuY2VvZiBVaW50OEFycmF5P3QoJHl0LmRlY29kZShlKSk6ZT09bnVsbCYmdChudWxsKX19ZnVuY3Rpb24geHcodCl7aWYodCE9bnVsbClyZXR1cm4gd2kucHJveHkodCl9ZnVuY3Rpb24gSFV0KHQpe2lmKHl3IT1udWxsKXJldHVybiB0LmNvZXAhPT1oai5jb2VwJiYoY29uc29sZS53YXJuKGBBdHRlbXB0aW5nIHRvIGJvb3QgV2ViQ29udGFpbmVyIHdpdGggJ2NvZXA6ICR7dC5jb2VwfSdgKSxjb25zb2xlLndhcm4oYEZpcnN0IGJvb3QgaGFkICdjb2VwOiAke2hqLmNvZXB9JywgbmV3IHNldHRpbmdzIHdpbGwgbm90IHRha2UgZWZmZWN0IWApKSx7c2VydmVyUHJvbWlzZTp5d307dC5jb2VwJiZqcy5zZXRRdWVyeVBhcmFtKCJjb2VwIix0LmNvZXApLHQuZXhwZXJpbWVudGFsTm9kZSYmanMuc2V0UXVlcnlQYXJhbSgiZXhwZXJpbWVudGFsX25vZGUiLCIxIik7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7ZS5zdHlsZS5kaXNwbGF5PSJub25lIixlLnNldEF0dHJpYnV0ZSgiYWxsb3ciLCJjcm9zcy1vcmlnaW4taXNvbGF0ZWQiKTtsZXQgYT1qcy51cmw7ZS5zcmM9YS50b1N0cmluZygpO2xldHtvcmlnaW46aX09YTtyZXR1cm4gaGo9ey4uLnR9LHl3PW5ldyBQcm9taXNlKHI9PntsZXQgcz1uPT57aWYobi5vcmlnaW4hPT1pKXJldHVybjtsZXR7ZGF0YTpvfT1uO2lmKG8udHlwZT09PSJpbml0Iil7cih3aS53cmFwKG4ucG9ydHNbMF0pKTtyZXR1cm59aWYoby50eXBlPT09Indhcm5pbmciKXtjb25zb2xlW28ubGV2ZWxdLmNhbGwoY29uc29sZSxvLm1lc3NhZ2UpO3JldHVybn19O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixzKX0pLGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGUsbnVsbCkse3NlcnZlclByb21pc2U6eXd9fWZ1bmN0aW9uIHFVdCh0KXtyZXR1cm4gdHlwZW9mIHRbMF09PSJzdHJpbmcifWZ1bmN0aW9uIFZVdCh0KXtyZXR1cm4gdFswXWluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBqVXQoKXtsZXQgdD1udWxsO3JldHVybntzdHJlYW06bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydChpKXt0PWl9fSkscHVzaDppPT57aSE9bnVsbD90Py5lbnF1ZXVlKGkpOih0Py5jbG9zZSgpLHQ9bnVsbCl9fX1mdW5jdGlvbiBVVXQodCl7bGV0IGU9ITEsYT0oKT0+e307cmV0dXJue3N1YnNjcmliZShyKXtyZXR1cm4gci50aGVuKHM9PnthPXMsZSYmYSgpfSksKCk9PntlPSEwLGEoKX19LGxpc3RlbmVyOigoLi4ucik9PntlfHx0KC4uLnIpfSl9fXZhciBYZDIsdncseXcsaGosJHl0LEZVdCxKOCxPVXQsUlV0LHVqLGZqLG1qLGdqLEF5dD1iKCgpPT57dGooKTtndygpO1N5dCgpO3RqKCk7WFYoKTtRVigpO2NqKCk7THl0KCk7Y2ooKTtYZDI9bXl0LHZ3PW51bGwseXc9bnVsbCxoaj17fSwkeXQ9bmV3IFRleHREZWNvZGVyLEZVdD1uZXcgVGV4dEVuY29kZXIsSjg9Y2xhc3MgdHtfaW5zdGFuY2U7X3J1bnRpbWVJbmZvO2ZzO3N0YXRpYyBfaW5zdGFuY2U9bnVsbDtzdGF0aWMgX3RlYXJkb3duUHJvbWlzZT1udWxsO190b3JuRG93bj0hMTtfdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXI9KCk9Pnt9O2NvbnN0cnVjdG9yKGUsYSxpLHIpe3RoaXMuX2luc3RhbmNlPWUsdGhpcy5fcnVudGltZUluZm89cix0aGlzLmZzPW5ldyBnaihhKSxidC5pbml0aWFsaXplZCYmKHRoaXMuX3Vuc3Vic2NyaWJlRnJvbVRva2VuQ2hhbmdlZExpc3RlbmVyPW55dChzPT57dGhpcy5faW5zdGFuY2Uuc2V0Q3JlZGVudGlhbHMoe2FjY2Vzc1Rva2VuOnMsZWRpdG9yT3JpZ2luOmJ0LmVkaXRvck9yaWdpbn0pfSksKGFzeW5jKCk9Pnthd2FpdCBidC5hdXRoQ29tcGxldGUucHJvbWlzZSwhdGhpcy5fdG9ybkRvd24mJihlaihidC50b2tlbnMpLGF3YWl0IHRoaXMuX2luc3RhbmNlLnNldENyZWRlbnRpYWxzKHthY2Nlc3NUb2tlbjpidC50b2tlbnMuYWNjZXNzLGVkaXRvck9yaWdpbjpidC5lZGl0b3JPcmlnaW59KSl9KSgpLmNhdGNoKHM9Pntjb25zb2xlLmVycm9yKHMpfSkpfWFzeW5jIHNwYXduKGUsYSxpKXtsZXQgcj1bXTtBcnJheS5pc0FycmF5KGEpP3I9YTppPWE7bGV0IHMsbj1uZXcgUmVhZGFibGVTdHJlYW07aWYoaT8ub3V0cHV0IT09ITEpe2xldCB2PWpVdCgpO3M9di5wdXNoLG49di5zdHJlYW19bGV0IG8sZCxjLHAsbD14dyhiaihzKSksZj14dyhiaihvKSksZz14dyhiaihjKSkseT1hd2FpdCB0aGlzLl9pbnN0YW5jZS5ydW4oe2NvbW1hbmQ6ZSxhcmdzOnIsY3dkOmk/LmN3ZCxlbnY6aT8uZW52LHRlcm1pbmFsOmk/LnRlcm1pbmFsfSxmLGcsbCk7cmV0dXJuIG5ldyBtaih5LG4sZCxwKX1hc3luYyBleHBvcnQoZSxhKXtsZXQgaT17Zm9ybWF0OmE/LmZvcm1hdD8/Impzb24iLGluY2x1ZGVzOmE/LmluY2x1ZGVzLGV4Y2x1ZGVzOmE/LmV4Y2x1ZGVzLGV4dGVybmFsOiEwfSxyPWF3YWl0IHRoaXMuX2luc3RhbmNlLnNlcmlhbGl6ZShlLGkpO2lmKGkuZm9ybWF0PT09Impzb24iKXtsZXQgcz1KU09OLnBhcnNlKCR5dC5kZWNvZGUocikpO3JldHVybiBwaihzKX1yZXR1cm4gcn1vbihlLGEpe2lmKGU9PT0icHJldmlldy1tZXNzYWdlIil7bGV0IHM9YTthPShuPT57bGoobikmJnMobil9KX1sZXR7bGlzdGVuZXI6aSxzdWJzY3JpYmU6cn09VVV0KGEpO3JldHVybiByKHRoaXMuX2luc3RhbmNlLm9uKGUsd2kucHJveHkoaSkpKX1tb3VudChlLGEpe2xldCBpPWUgaW5zdGFuY2VvZiBVaW50OEFycmF5P2U6ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP25ldyBVaW50OEFycmF5KGUpOkZVdC5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoZGooZSkpKTtyZXR1cm4gdGhpcy5faW5zdGFuY2UubG9hZEZpbGVzKHdpLnRyYW5zZmVyKGksW2kuYnVmZmVyXSkse21vdW50UG9pbnRzOmE/Lm1vdW50UG9pbnR9KX1zZXRQcmV2aWV3U2NyaXB0KGUsYSl7cmV0dXJuIHRoaXMuX2luc3RhbmNlLnNldFByZXZpZXdTY3JpcHQoZSxhKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLl9ydW50aW1lSW5mby5wYXRofWdldCB3b3JrZGlyKCl7cmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLmN3ZH10ZWFyZG93bigpe2lmKHRoaXMuX3Rvcm5Eb3duKXRocm93IG5ldyBFcnJvcigiV2ViQ29udGFpbmVyIGFscmVhZHkgdG9ybiBkb3duIik7dGhpcy5fdG9ybkRvd249ITAsdGhpcy5fdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXIoKTtsZXQgZT1hc3luYygpPT57dHJ5e2F3YWl0IHRoaXMuZnMuX3RlYXJkb3duKCksYXdhaXQgdGhpcy5faW5zdGFuY2UudGVhcmRvd24oKX1maW5hbGx5e3RoaXMuX2luc3RhbmNlW3dpLnJlbGVhc2VQcm94eV0oKSx0Ll9pbnN0YW5jZT09PXRoaXMmJih0Ll9pbnN0YW5jZT1udWxsKX19O3QuX3RlYXJkb3duUHJvbWlzZT1lKCl9c3RhdGljIGFzeW5jIGJvb3QoZT17fSl7YXdhaXQgdGhpcy5fdGVhcmRvd25Qcm9taXNlLHQuX3RlYXJkb3duUHJvbWlzZT1udWxsO2xldHt3b3JrZGlyTmFtZTphfT1lO2lmKHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkJiZlLmNvZXA9PT0ibm9uZSImJmNvbnNvbGUud2FybihgQSBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGhlYWRlciBpcyByZXF1aXJlZCBpbiBjcm9zcyBvcmlnaW4gaXNvbGF0ZWQgZW52aXJvbm1lbnRzLgpTZXQgdGhlICdjb2VwJyBvcHRpb24gdG8gJ3JlcXVpcmUtY29ycCcuYCksYT8uaW5jbHVkZXMoIi8iKXx8YT09PSIuLiJ8fGE9PT0iLiIpdGhyb3cgbmV3IEVycm9yKCJ3b3JrZGlyTmFtZSBzaG91bGQgYmUgYSB2YWxpZCBmb2xkZXIgbmFtZSIpO2ZvcihidC5ib290Q2FsbGVkPSEwO3Z3Oylhd2FpdCB2dztpZih0Ll9pbnN0YW5jZSl0aHJvdyBuZXcgRXJyb3IoIk9ubHkgYSBzaW5nbGUgV2ViQ29udGFpbmVyIGluc3RhbmNlIGNhbiBiZSBib290ZWQiKTtsZXQgaT1CVXQoZSk7dnc9aS5jYXRjaCgoKT0+e30pO3RyeXtsZXQgcj1hd2FpdCBpO3JldHVybiB0Ll9pbnN0YW5jZT1yLHJ9ZmluYWxseXt2dz1udWxsfX19O09VdD0xLFJVdD0yLHVqPWNsYXNze25hbWU7X3R5cGU7Y29uc3RydWN0b3IoZSxhKXt0aGlzLm5hbWU9ZSx0aGlzLl90eXBlPWF9aXNGaWxlKCl7cmV0dXJuIHRoaXMuX3R5cGU9PT1PVXR9aXNEaXJlY3RvcnkoKXtyZXR1cm4gdGhpcy5fdHlwZT09PVJVdH19LGZqPWNsYXNze19hcGlDbGllbnQ7X3BhdGg7X29wdGlvbnM7X2xpc3RlbmVyO193cmFwcGVkTGlzdGVuZXI7X3dhdGNoZXI7X2Nsb3NlZD0hMTtjb25zdHJ1Y3RvcihlLGEsaSxyKXt0aGlzLl9hcGlDbGllbnQ9ZSx0aGlzLl9wYXRoPWEsdGhpcy5fb3B0aW9ucz1pLHRoaXMuX2xpc3RlbmVyPXIsdGhpcy5fYXBpQ2xpZW50Ll93YXRjaGVycy5hZGQodGhpcyksdGhpcy5fd3JhcHBlZExpc3RlbmVyPShzLG4pPT57dGhpcy5fbGlzdGVuZXImJiF0aGlzLl9jbG9zZWQmJnRoaXMuX2xpc3RlbmVyKHMsbil9LHRoaXMuX2FwaUNsaWVudC5fZnMud2F0Y2godGhpcy5fcGF0aCx0aGlzLl9vcHRpb25zLHh3KHRoaXMuX3dyYXBwZWRMaXN0ZW5lcikpLnRoZW4ocz0+e2lmKHRoaXMuX3dhdGNoZXI9cyx0aGlzLl9jbG9zZWQpcmV0dXJuIHRoaXMuX3RlYXJkb3duKCl9KS5jYXRjaChjb25zb2xlLmVycm9yKX1hc3luYyBjbG9zZSgpe3RoaXMuX2Nsb3NlZHx8KHRoaXMuX2Nsb3NlZD0hMCx0aGlzLl9hcGlDbGllbnQuX3dhdGNoZXJzLmRlbGV0ZSh0aGlzKSxhd2FpdCB0aGlzLl90ZWFyZG93bigpKX1hc3luYyBfdGVhcmRvd24oKXthd2FpdCB0aGlzLl93YXRjaGVyPy5jbG9zZSgpLmZpbmFsbHkoKCk9Pnt0aGlzLl93YXRjaGVyPy5bd2kucmVsZWFzZVByb3h5XSgpfSl9fSxtaj1jbGFzc3tvdXRwdXQ7aW5wdXQ7ZXhpdDtfcHJvY2VzcztzdGRvdXQ7c3RkZXJyO2NvbnN0cnVjdG9yKGUsYSxpLHIpe3RoaXMub3V0cHV0PWEsdGhpcy5fcHJvY2Vzcz1lLHRoaXMuaW5wdXQ9bmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTpzPT57dGhpcy5fZ2V0UHJvY2VzcygpPy53cml0ZShzKS5jYXRjaCgoKT0+e30pfX0pLHRoaXMuZXhpdD10aGlzLl9vbkV4aXQoKSx0aGlzLnN0ZG91dD1pLHRoaXMuc3RkZXJyPXJ9a2lsbCgpe3RoaXMuX3Byb2Nlc3M/LmtpbGwoKX1yZXNpemUoZSl7dGhpcy5fZ2V0UHJvY2VzcygpPy5yZXNpemUoZSl9YXN5bmMgX29uRXhpdCgpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcHJvY2Vzcy5vbkV4aXR9ZmluYWxseXt0aGlzLl9wcm9jZXNzPy5bd2kucmVsZWFzZVByb3h5XSgpLHRoaXMuX3Byb2Nlc3M9bnVsbH19X2dldFByb2Nlc3MoKXtyZXR1cm4gdGhpcy5fcHJvY2Vzcz09bnVsbCYmY29uc29sZS53YXJuKCJUaGlzIHByb2Nlc3MgYWxyZWFkeSBleGl0ZWQiKSx0aGlzLl9wcm9jZXNzfX0sZ2o9Y2xhc3N7X2ZzO193YXRjaGVycz1uZXcgU2V0KFtdKTtjb25zdHJ1Y3RvcihlKXt0aGlzLl9mcz1lfXJtKC4uLmUpe3JldHVybiB0aGlzLl9mcy5ybSguLi5lKX1hc3luYyByZWFkRmlsZShlLGEpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5yZWFkRmlsZShlLGEpfWFzeW5jIHJlbmFtZShlLGEpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5yZW5hbWUoZSxhKX1hc3luYyB3cml0ZUZpbGUoZSxhLGkpe2lmKGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgcj1hLmJ1ZmZlci5zbGljZShhLmJ5dGVPZmZzZXQsYS5ieXRlT2Zmc2V0K2EuYnl0ZUxlbmd0aCk7YT13aS50cmFuc2ZlcihuZXcgVWludDhBcnJheShyKSxbcl0pfWF3YWl0IHRoaXMuX2ZzLndyaXRlRmlsZShlLGEsaSl9YXN5bmMgcmVhZGRpcihlLGEpe2xldCBpPWF3YWl0IHRoaXMuX2ZzLnJlYWRkaXIoZSxhKTtyZXR1cm4gcVV0KGkpfHxWVXQoaSk/aTppLm1hcChzPT5uZXcgdWoocy5uYW1lLHNbIlN5bWJvbCh0eXBlKSJdKSl9YXN5bmMgbWtkaXIoZSxhKXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMubWtkaXIoZSxhKX13YXRjaChlLGEsaSl7cmV0dXJuIHR5cGVvZiBhPT0iZnVuY3Rpb24iJiYoaT1hLGE9bnVsbCksbmV3IGZqKHRoaXMsZSxhLGkpfWFzeW5jIF90ZWFyZG93bigpe3RoaXMuX2ZzW3dpLnJlbGVhc2VQcm94eV0oKSxhd2FpdCBQcm9taXNlLmFsbChbLi4udGhpcy5fd2F0Y2hlcnNdLm1hcChlPT5lLmNsb3NlKCkpKX19fSk7dmFyIG00LER5dD1iKCgpPT57QXl0KCk7bTQ9Y2xhc3MgdHtzdGF0aWMgc2hhcmVkQ29udGFpbmVyPW51bGw7c3RhdGljIGJvb3RQcm9taXNlPW51bGw7X3JlYWR5PSExO3R5cGU9IndlYmNvbnRhaW5lciI7Z2V0IHJlYWR5KCl7cmV0dXJuIHRoaXMuX3JlYWR5fWdldCBjb250YWluZXIoKXtyZXR1cm4gdC5zaGFyZWRDb250YWluZXJ9YXN5bmMgaW5pdCgpe2lmKCEodGhpcy5fcmVhZHkmJnQuc2hhcmVkQ29udGFpbmVyKSl7aWYodC5ib290UHJvbWlzZSl7YXdhaXQgdC5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMDtyZXR1cm59aWYodC5zaGFyZWRDb250YWluZXIpe3RoaXMuX3JlYWR5PSEwO3JldHVybn1pZih0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI+InUiKXRocm93IG5ldyBFcnJvcihgV2ViQ29udGFpbmVyIHJlcXVpcmVzIFNoYXJlZEFycmF5QnVmZmVyIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUuIEVuc3VyZSB5b3VyIHNlcnZlciBzZW5kcyB0aGVzZSBoZWFkZXJzOgogIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5OiBzYW1lLW9yaWdpbgogIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3k6IHJlcXVpcmUtY29ycGApO3QuYm9vdFByb21pc2U9SjguYm9vdCgpO3RyeXt0LnNoYXJlZENvbnRhaW5lcj1hd2FpdCB0LmJvb3RQcm9taXNlLHRoaXMuX3JlYWR5PSEwfWNhdGNoKGUpe3Rocm93IHQuYm9vdFByb21pc2U9bnVsbCxlfX19YXN5bmMgZGVzdHJveSgpe3Quc2hhcmVkQ29udGFpbmVyJiYodC5zaGFyZWRDb250YWluZXIudGVhcmRvd24oKSx0LnNoYXJlZENvbnRhaW5lcj1udWxsLHQuYm9vdFByb21pc2U9bnVsbCx0aGlzLl9yZWFkeT0hMSl9YXN5bmMgcmVhZEZpbGUoZSl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkRmlsZShlLCJ1dGYtOCIpfWFzeW5jIHdyaXRlRmlsZShlLGEpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy53cml0ZUZpbGUoZSxhLCJ1dGYtOCIpfWFzeW5jIHJlYWREaXIoZSl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSwoYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZGRpcihlLHt3aXRoRmlsZVR5cGVzOiEwfSkpLm1hcChpPT4oe3R5cGU6aS5pc0RpcmVjdG9yeSgpPyJkaXJlY3RvcnkiOiJmaWxlIixuYW1lOmkubmFtZSxwYXRoOmU9PT0iLyI/YC8ke2kubmFtZX1gOmAke2V9LyR7aS5uYW1lfWB9KSl9YXN5bmMgbWtkaXIoZSl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLm1rZGlyKGUse3JlY3Vyc2l2ZTohMH0pfWFzeW5jIHJtKGUsYSl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJtKGUse3JlY3Vyc2l2ZTphPy5yZWN1cnNpdmU/PyExfSl9YXN5bmMgZXhpc3RzKGUpe3RoaXMuZW5zdXJlUmVhZHkoKTt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRGaWxlKGUpLCEwfWNhdGNoe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZGRpcihlKSwhMH1jYXRjaHtyZXR1cm4hMX19fXdhdGNoKGUsYSxpKXt0aGlzLmVuc3VyZVJlYWR5KCk7bGV0IHI9dGhpcy5jb250YWluZXIuZnMud2F0Y2goZSx7cmVjdXJzaXZlOmk/LnJlY3Vyc2l2ZT8/ITF9LGEpO3JldHVybntzdG9wOigpPT5yLmNsb3NlKCl9fWFzeW5jIHNwYXduKGUsYT1bXSl7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCBpPWF3YWl0IHRoaXMuY29udGFpbmVyLnNwYXduKGUsYSk7cmV0dXJue291dHB1dDppLm91dHB1dCxpbnB1dDppLmlucHV0LGV4aXQ6aS5leGl0LGtpbGw6KCk9Pmkua2lsbCgpfX1hc3luYyBtb3VudChlKXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIubW91bnQoZSl9Z2V0Q29udGFpbmVyKCl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSx0aGlzLmNvbnRhaW5lcn1lbnN1cmVSZWFkeSgpe2lmKCF0aGlzLl9yZWFkeXx8IXRoaXMuY29udGFpbmVyKXRocm93IG5ldyBFcnJvcigiV2ViQ29udGFpbmVyRW52aXJvbm1lbnQgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBmaXJzdC4iKX19fSk7dmFyIEV5dD1iKCgpPT57RHl0KCl9KTt2YXIgd3c9YigoKT0+e0p2dCgpO0V5dCgpfSk7dmFyIFB5dD1iKCgpPT57RnEoKX0pO3ZhciBlZCx2aj1iKCgpPT57ZWQ9Y2xhc3N7dGFicz1uZXcgTWFwO3RhYkNvdW50ZXI9MDt4dGVybUJ1bmRsZT1udWxsO3h0ZXJtRml0QWRkb25CdW5kbGU9bnVsbDtzZXRYdGVybU1vZHVsZXMoZSxhKXt0aGlzLnh0ZXJtQnVuZGxlPWUsdGhpcy54dGVybUZpdEFkZG9uQnVuZGxlPWF9Z2VuZXJhdGVUYWJJZCgpe3JldHVybiB0aGlzLnRhYkNvdW50ZXIrKyxgdGVybWluYWwtJHt0aGlzLnRhYkNvdW50ZXJ9LSR7RGF0ZS5ub3coKX1gfWdldERlZmF1bHRMYWJlbChlLGEpe3N3aXRjaChlKXtjYXNlInNoZWxsIjpyZXR1cm4iYmFzaCI7Y2FzZSJzY3JpcHQiOnJldHVybiBhPy5zY3JpcHROYW1lfHwic2NyaXB0IjtjYXNlInBhY2thZ2UtdXBkYXRlIjpyZXR1cm4gYT8ucGFja2FnZU5hbWU/YHVwZGF0ZSAke2EucGFja2FnZU5hbWV9YDoidXBkYXRlIjtjYXNlImN1c3RvbSI6cmV0dXJuIGE/LmNvbW1hbmR8fCJwcm9jZXNzIjtkZWZhdWx0OnJldHVybiJ0ZXJtaW5hbCJ9fWdldERlZmF1bHRJY29uKGUpe3N3aXRjaChlKXtjYXNlInNoZWxsIjpyZXR1cm4ibHVjaWRlOnRlcm1pbmFsIjtjYXNlInNjcmlwdCI6cmV0dXJuImx1Y2lkZTpwbGF5IjtjYXNlInBhY2thZ2UtdXBkYXRlIjpyZXR1cm4ibHVjaWRlOnBhY2thZ2VDaGVjayI7Y2FzZSJjdXN0b20iOnJldHVybiJsdWNpZGU6Y29kZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnRlcm1pbmFsIn19Z2V0VGVybWluYWxUaGVtZShlKXtyZXR1cm4gZT97YmFja2dyb3VuZDoiI2ZmZmZmZiIsZm9yZWdyb3VuZDoiIzMzMzMzMyIsY3Vyc29yOiIjMzMzMzMzIixjdXJzb3JBY2NlbnQ6IiNmZmZmZmYiLHNlbGVjdGlvbjoicmdiYSgwLCAwLCAwLCAwLjIpIixibGFjazoiIzAwMDAwMCIscmVkOiIjY2QzMTMxIixncmVlbjoiIzAwYmMwMCIseWVsbG93OiIjOTQ5ODAwIixibHVlOiIjMDQ1MWE1IixtYWdlbnRhOiIjYmMwNWJjIixjeWFuOiIjMDU5OGJjIix3aGl0ZToiIzU1NTU1NSIsYnJpZ2h0QmxhY2s6IiM2NjY2NjYiLGJyaWdodFJlZDoiI2NkMzEzMSIsYnJpZ2h0R3JlZW46IiMxNGNlMTQiLGJyaWdodFllbGxvdzoiI2I1YmEwMCIsYnJpZ2h0Qmx1ZToiIzA0NTFhNSIsYnJpZ2h0TWFnZW50YToiI2JjMDViYyIsYnJpZ2h0Q3lhbjoiIzA1OThiYyIsYnJpZ2h0V2hpdGU6IiNhNWE1YTUifTp7YmFja2dyb3VuZDoiIzAwMDAwMCIsZm9yZWdyb3VuZDoiI2ZmZmZmZiIsY3Vyc29yOiIjZmZmZmZmIixjdXJzb3JBY2NlbnQ6IiMwMDAwMDAiLHNlbGVjdGlvbjoicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIn19Y3JlYXRlVGFiKGUsYSl7aWYoIXRoaXMueHRlcm1CdW5kbGV8fCF0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGUpdGhyb3cgbmV3IEVycm9yKCJUZXJtaW5hbFRhYk1hbmFnZXI6IHh0ZXJtIG1vZHVsZXMgbm90IGluaXRpYWxpemVkLiBDYWxsIHNldFh0ZXJtTW9kdWxlcygpIGZpcnN0LiIpO2xldCBpPXRoaXMuZ2VuZXJhdGVUYWJJZCgpLHI9ZS50eXBlLHM9bmV3IHRoaXMueHRlcm1CdW5kbGUuVGVybWluYWwoe2NvbnZlcnRFb2w6ITAsY3Vyc29yQmxpbms6ITAsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKGEpLGZvbnRGYW1pbHk6J01lbmxvLCBNb25hY28sICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZScsZm9udFNpemU6MTMsbGluZUhlaWdodDoxLjJ9KSxuPW5ldyB0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGUuRml0QWRkb247cy5sb2FkQWRkb24obik7bGV0IG89e2lkOmksbGFiZWw6ZS5sYWJlbHx8dGhpcy5nZXREZWZhdWx0TGFiZWwocixlLm1ldGFkYXRhKSxpY29uTmFtZTplLmljb25OYW1lfHx0aGlzLmdldERlZmF1bHRJY29uKHIpLHR5cGU6cixjbG9zZWFibGU6ZS5jbG9zZWFibGU/P3IhPT0ic2hlbGwiLHRlcm1pbmFsOnMsZml0QWRkb246bixwcm9jZXNzOm51bGwsaW5wdXRXcml0ZXI6bnVsbCxleGl0ZWQ6ITEsZXhpdENvZGU6bnVsbCxjcmVhdGVkQXQ6RGF0ZS5ub3coKSxtZXRhZGF0YTplLm1ldGFkYXRhfTtyZXR1cm4gdGhpcy50YWJzLnNldChpLG8pLG99Z2V0VGFiKGUpe3JldHVybiB0aGlzLnRhYnMuZ2V0KGUpfWdldEFsbFRhYnMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRhYnMudmFsdWVzKCkpLnNvcnQoKGUsYSk9PmUuY3JlYXRlZEF0LWEuY3JlYXRlZEF0KX1nZXRUYWJDb3VudCgpe3JldHVybiB0aGlzLnRhYnMuc2l6ZX1oYXNUYWIoZSl7cmV0dXJuIHRoaXMudGFicy5oYXMoZSl9Y2xvc2VUYWIoZSl7bGV0IGE9dGhpcy50YWJzLmdldChlKTtpZighYSlyZXR1cm4hMTtpZihhLnByb2Nlc3MmJiFhLmV4aXRlZCl0cnl7YS5wcm9jZXNzLmtpbGwoKX1jYXRjaChpKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBraWxsIHByb2Nlc3M6IixpKX10cnl7YS50ZXJtaW5hbC5kaXNwb3NlKCl9Y2F0Y2goaSl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZGlzcG9zZSB0ZXJtaW5hbDoiLGkpfXJldHVybiB0aGlzLnRhYnMuZGVsZXRlKGUpLCEwfXJlbmFtZVRhYihlLGEpe2xldCBpPXRoaXMudGFicy5nZXQoZSk7cmV0dXJuIGk/KGkubGFiZWw9YSwhMCk6ITF9bWFya1RhYkV4aXRlZChlLGEpe2xldCBpPXRoaXMudGFicy5nZXQoZSk7aSYmKGkuZXhpdGVkPSEwLGkuZXhpdENvZGU9YSl9c2V0VGFiUHJvY2VzcyhlLGEsaSl7bGV0IHI9dGhpcy50YWJzLmdldChlKTtyJiYoci5wcm9jZXNzPWEsci5pbnB1dFdyaXRlcj1pKX11cGRhdGVBbGxUaGVtZXMoZSl7bGV0IGE9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKGUpO2ZvcihsZXQgaSBvZiB0aGlzLnRhYnMudmFsdWVzKCkpaS50ZXJtaW5hbC5vcHRpb25zLnRoZW1lPWF9ZGlzcG9zZUFsbCgpe2ZvcihsZXRbZV1vZiB0aGlzLnRhYnMpdGhpcy5jbG9zZVRhYihlKTt0aGlzLnRhYnMuY2xlYXIoKX19fSk7dmFyIEl5dD17fTtHZShJeXQse0RlZXNXb3Jrc3BhY2VUZXJtaW5hbDooKT0+eWp9KTt2YXIgeW8seWEseWosdGQ9YigoKT0+e3VlKCk7VHQoKTtxZSgpO3d3KCk7RHQoKTtReCgpO3ZqKCk7dW8oKTt5bz1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LHlhPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSx5aj0oKCk9PntsZXQgdD1baGUoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W107dmFyIHE9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBDPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6T2JqZWN0fSldLGQ9W0koKV0sbD1bSSgpXSx5PVtJKHt0eXBlOk51bWJlcn0pXSx4PVtJKHt0eXBlOkJvb2xlYW59KV0sRj1bSigpXSxOPVtKKCldLHlvKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXhlY3V0aW9uRW52aXJvbm1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJleGVjdXRpb25FbnZpcm9ubWVudCJpbiB6LGdldDp6PT56LmV4ZWN1dGlvbkVudmlyb25tZW50LHNldDooeixFKT0+e3ouZXhlY3V0aW9uRW52aXJvbm1lbnQ9RX19LG1ldGFkYXRhOkN9LG4sbykseW8odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZXR1cENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJzZXR1cENvbW1hbmQiaW4geixnZXQ6ej0+ei5zZXR1cENvbW1hbmQsc2V0Oih6LEUpPT57ei5zZXR1cENvbW1hbmQ9RX19LG1ldGFkYXRhOkN9LGMscCkseW8odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnZpcm9ubWVudFZhcmlhYmxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImVudmlyb25tZW50VmFyaWFibGVzImluIHosZ2V0Ono9PnouZW52aXJvbm1lbnRWYXJpYWJsZXMsc2V0Oih6LEUpPT57ei5lbnZpcm9ubWVudFZhcmlhYmxlcz1FfX0sbWV0YWRhdGE6Q30sZixnKSx5byh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYkJhcldpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp6PT4idGFiQmFyV2lkdGgiaW4geixnZXQ6ej0+ei50YWJCYXJXaWR0aCxzZXQ6KHosRSk9Pnt6LnRhYkJhcldpZHRoPUV9fSxtZXRhZGF0YTpDfSx2LG0pLHlvKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYkJhciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+InNob3dUYWJCYXIiaW4geixnZXQ6ej0+ei5zaG93VGFiQmFyLHNldDooeixFKT0+e3ouc2hvd1RhYkJhcj1FfX0sbWV0YWRhdGE6Q30sTSxTKSx5byh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOno9PiJ0YWJzImluIHosZ2V0Ono9PnoudGFicyxzZXQ6KHosRSk9Pnt6LnRhYnM9RX19LG1ldGFkYXRhOkN9LF8saykseW8odGhpcyxudWxsLE4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmVUYWJJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6ej0+ImFjdGl2ZVRhYklkImluIHosZ2V0Ono9PnouYWN0aXZlVGFiSWQsc2V0Oih6LEUpPT57ei5hY3RpdmVUYWJJZD1FfX0sbWV0YWRhdGE6Q30sTCxBKSx5byhudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpDfSxudWxsLGEpLHE9aT1lLnZhbHVlLEMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pfXN0YXRpYyBkZW1vPSgpPT57bGV0IEM9bmV3IG00O3JldHVybiB3YDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHtDfT48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsPmB9O3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07cmVzaXplT2JzZXJ2ZXI7dGFiTWFuYWdlcjsjZT15YSh0aGlzLG4sbnVsbCk7Z2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IGV4ZWN1dGlvbkVudmlyb25tZW50KEMpe3RoaXMuI2U9Q30jdD0oeWEodGhpcyxvKSx5YSh0aGlzLGMsIiIpKTtnZXQgc2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNldHVwQ29tbWFuZChDKXt0aGlzLiN0PUN9I2E9KHlhKHRoaXMscCkseWEodGhpcyxmLHt9KSk7Z2V0IGVudmlyb25tZW50VmFyaWFibGVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGVudmlyb25tZW50VmFyaWFibGVzKEMpe3RoaXMuI2E9Q30jaT0oeWEodGhpcyxnKSx5YSh0aGlzLHYsMTYwKSk7Z2V0IHRhYkJhcldpZHRoKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRhYkJhcldpZHRoKEMpe3RoaXMuI2k9Q30jcj0oeWEodGhpcyxtKSx5YSh0aGlzLE0sITApKTtnZXQgc2hvd1RhYkJhcigpe3JldHVybiB0aGlzLiNyfXNldCBzaG93VGFiQmFyKEMpe3RoaXMuI3I9Q30jcz0oeWEodGhpcyxTKSx5YSh0aGlzLF8sW10pKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNzfXNldCB0YWJzKEMpe3RoaXMuI3M9Q30jbj0oeWEodGhpcyxrKSx5YSh0aGlzLEwsbnVsbCkpO2dldCBhY3RpdmVUYWJJZCgpe3JldHVybiB0aGlzLiNufXNldCBhY3RpdmVUYWJJZChDKXt0aGlzLiNuPUN9dGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj0oeWEodGhpcyxBKSxudWxsKTtpc0JyaWdodD0hMTt0ZXJtaW5hbEFjdGlvbmJhcj1udWxsO2Vudmlyb25tZW50RGVmZXJyZWQ9bmV3IE10LnNtYXJ0cHJvbWlzZS5EZWZlcnJlZDtlbnZpcm9ubWVudFByb21pc2U9dGhpcy5lbnZpcm9ubWVudERlZmVycmVkLnByb21pc2U7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMudGFiTWFuYWdlcj1uZXcgZWQsdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmhhbmRsZVJlc2l6ZSgpfSl9c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgI2FjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCBkZWVzLWFjdGlvbmJhciB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBiYXIgb24gdGhlIHJpZ2h0IHNpZGUgKi8KICAgICAgLnRhYi1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFiLWJhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWJhci10aXRsZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudGFiLWJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAudGFiLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDIycHg7CiAgICAgICAgaGVpZ2h0OiAyMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDI1JSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCAzMCUgMTUlKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWIuZXhpdGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbi5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWxhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhpdC1iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTAlKSIsImhzbCgxNDIgMzAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgOTMlKSIsImhzbCgwIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IEM9dGhpcy5hY3RpdmVUYWJJZD90aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpOm51bGw7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBNYWluIHRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCI+CiAgICAgICAgICAke0M/d2AKICAgICAgICAgICAgPGRpdiBpZD0iYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOndgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIzMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+Tm8gdGVybWluYWwgb3Blbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gVmVydGljYWwgdGFiIGJhciBvbiB0aGUgcmlnaHQgLS0+CiAgICAgICAgJHt0aGlzLnNob3dUYWJCYXI/d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXIiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnRhYkJhcldpZHRofXB4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItYmFyLXRpdGxlIj5UZXJtaW5hbHM8L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQWRkVGFifSB0aXRsZT0iTmV3IFRlcm1pbmFsIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItbGlzdCI+CiAgICAgICAgICAgICAgJHt0aGlzLnRhYnMubWFwKHo9PndgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC10YWIgJHt6LmlkPT09dGhpcy5hY3RpdmVUYWJJZD8iYWN0aXZlIjoiIn0gJHt6LmV4aXRlZD8iZXhpdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnN3aXRjaFRvVGFiKHouaWQpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgLmljb249JHt6Lmljb25OYW1lfQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiLWljb24gJHt6LnByb2Nlc3MmJiF6LmV4aXRlZD8icnVubmluZyI6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbGFiZWwiPiR7ei5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICR7ei5leGl0ZWQ/d2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhpdC1iYWRnZSAke3ouZXhpdENvZGU9PT0wPyJzdWNjZXNzIjoiZXJyb3IifSI+CiAgICAgICAgICAgICAgICAgICAgICAke3ouZXhpdENvZGV9CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke3ouY2xvc2VhYmxlP3dgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7RT0+dGhpcy5oYW5kbGVUYWJDbG9zZShFLHouaWQpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtsZXQgQz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmlzQnJpZ2h0PUMudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249Qy50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSgkPT57dGhpcy5pc0JyaWdodD0kLHRoaXMudGFiTWFuYWdlci51cGRhdGVBbGxUaGVtZXMoJCl9KTtsZXQgej1MMi5nZXRJbnN0YW5jZSgpLFtFLFRdPWF3YWl0IFByb21pc2UuYWxsKFt6LmxvYWRYdGVybSgpLHoubG9hZFh0ZXJtRml0QWRkb24oKV0pO3RoaXMudGFiTWFuYWdlci5zZXRYdGVybU1vZHVsZXMoRSxUKSxhd2FpdCB0aGlzLmNyZWF0ZVNoZWxsVGFiKCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7bGV0IEM9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO0MmJnRoaXMucmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKEMpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRhYk1hbmFnZXIuZGlzcG9zZUFsbCgpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgaGFuZGxlQWRkVGFiKCl7YXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWhhbmRsZVRhYkNsb3NlKEMseil7Qy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsb3NlVGFiKHopfXN3aXRjaFRvVGFiKEMpe2lmKEM9PT10aGlzLmFjdGl2ZVRhYklkKXJldHVybjtsZXQgej10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKEMpO2lmKCF6KXJldHVybjtsZXQgRT10aGlzLmFjdGl2ZVRhYklkO3RoaXMuYWN0aXZlVGFiSWQmJnRoaXMuZGV0YWNoQWN0aXZlVGVybWluYWwoKSx0aGlzLmFjdGl2ZVRhYklkPUMsdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKHopLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zd2l0Y2hlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDpDLHByZXZpb3VzVGFiSWQ6RX19KSl9KX1kZXRhY2hBY3RpdmVUZXJtaW5hbCgpe2xldCBDPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtDJiYoQy5pbm5lckhUTUw9IiIpfWF0dGFjaFRlcm1pbmFsVG9Db250YWluZXIoQyl7bGV0IHo9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO3omJih0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoeiksei5pbm5lckhUTUw9IiIsQy50ZXJtaW5hbC5vcGVuKHopLEMuZml0QWRkb24uZml0KCksQy50ZXJtaW5hbC5mb2N1cygpKX1oYW5kbGVSZXNpemUoKXtpZih0aGlzLmFjdGl2ZVRhYklkKXtsZXQgQz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpO0MmJkMuZml0QWRkb24uZml0KCl9fWFzeW5jIHNwYXduUHJvY2Vzc0ZvclRhYihDLHosRT1bXSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe0MudGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksQy50ZXJtaW5hbC53cml0ZShgXHUyNzRDIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUuXHIKYCksQy50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpO3JldHVybn10cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8KEMudGVybWluYWwud3JpdGUoYEluaXRpYWxpemluZyBlbnZpcm9ubWVudC4uLlxyCmApLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpKTtsZXQgVD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKHosRSk7VC5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6Vj0+e0MudGVybWluYWwud3JpdGUoVil9fSkpO2xldCAkPVQuaW5wdXQuZ2V0V3JpdGVyKCk7Qy50ZXJtaW5hbC5vbkRhdGEoVj0+eyQud3JpdGUoVil9KSx0aGlzLnRhYk1hbmFnZXIuc2V0VGFiUHJvY2VzcyhDLmlkLFQsJCksdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksVC5leGl0LnRoZW4oVj0+e3RoaXMuaGFuZGxlUHJvY2Vzc0V4aXQoQy5pZCxWKX0pfWNhdGNoKFQpe0MudGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksQy50ZXJtaW5hbC53cml0ZShgXHUyNzRDIEZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiAke1R9XHIKYCksQy50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpLGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiIsVCl9fWhhbmRsZVByb2Nlc3NFeGl0KEMseil7bGV0IEU9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihDKTtpZighRSlyZXR1cm47dGhpcy50YWJNYW5hZ2VyLm1hcmtUYWJFeGl0ZWQoQyx6KTtsZXQgVD16PT09MD9gXHIKXHgxQlszMm1bUHJvY2VzcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XVx4MUJbMG1ccgpgOmBccgpceDFCWzMxbVtQcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJHt6fV1ceDFCWzBtXHIKYDtFLnRlcm1pbmFsLndyaXRlKFQpLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInByb2Nlc3MtY29tcGxldGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6QyxleGl0Q29kZTp6fX0pKSxFLmNsb3NlYWJsZSYmdGhpcy5zaG93RXhpdGVkVGFiQWN0aW9uYmFyKEMsRS5sYWJlbCx6KX1hc3luYyBzaG93RXhpdGVkVGFiQWN0aW9uYmFyKEMseixFKXtsZXQgVD1FPT09MDsoYXdhaXQgdGhpcy5zaG93QWN0aW9uYmFyKHttZXNzYWdlOlQ/YCIke3p9IiBjb21wbGV0ZWQuIENsb3NlIHRhYj9gOmAiJHt6fSIgZXhpdGVkIChjb2RlICR7RX0pLiBDbG9zZSB0YWI/YCx0eXBlOlQ/ImluZm8iOiJ3YXJuaW5nIixpY29uOlQ/Imx1Y2lkZTpjaGVja0NpcmNsZSI6Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6ImNsb3NlIixsYWJlbDoiQ2xvc2UgVGFiIixwcmltYXJ5OiEwfSx7aWQ6ImtlZXAiLGxhYmVsOiJLZWVwIE9wZW4ifV0sdGltZW91dDp7ZHVyYXRpb246MWU0LGRlZmF1bHRBY3Rpb25JZDoiY2xvc2UifSxkaXNtaXNzaWJsZTohMH0pKS5hY3Rpb25JZD09PSJjbG9zZSImJnRoaXMuY2xvc2VUYWIoQyl9YXN5bmMgY3JlYXRlU2hlbGxUYWIoQyl7bGV0IHo9dGhpcy50YWJNYW5hZ2VyLmNyZWF0ZVRhYih7dHlwZToic2hlbGwiLGxhYmVsOkN8fGBiYXNoICR7dGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCkrMX1gLGNsb3NlYWJsZTp0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKT4wfSx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy5zd2l0Y2hUb1RhYih6LmlkKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IHRoaXMuc3Bhd25Qcm9jZXNzRm9yVGFiKHosImpzaCIpLHRoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpPT09MSYmdGhpcy5zZXR1cENvbW1hbmQmJihhd2FpdCB0aGlzLndhaXRGb3JQcm9tcHQoei50ZXJtaW5hbCwifi8iKSx6LmlucHV0V3JpdGVyJiZ6LmlucHV0V3JpdGVyLndyaXRlKHRoaXMuc2V0dXBDb21tYW5kKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNyZWF0ZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6ei5pZH19KSksei5pZH1hc3luYyBjcmVhdGVQcm9jZXNzVGFiKEMpe2xldCB6PXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoQyx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksQy5zd2l0Y2hUb1RhYiE9PSExJiZ0aGlzLnN3aXRjaFRvVGFiKHouaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsQy5jb21tYW5kJiZhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYih6LEMuY29tbWFuZCxDLmFyZ3MpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOnouaWR9fSkpLHouaWR9Z2V0QWN0aXZlVGFiKCl7cmV0dXJuIHRoaXMuYWN0aXZlVGFiSWQmJnRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCl8fG51bGx9Z2V0VGFicygpe3JldHVybiB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpfXNlbGVjdFRhYihDKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmhhc1RhYihDKT8odGhpcy5zd2l0Y2hUb1RhYihDKSwhMCk6ITF9Y2xvc2VUYWIoQyl7bGV0IHo9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihDKTtpZighenx8IXouY2xvc2VhYmxlKXJldHVybiExO2lmKEM9PT10aGlzLmFjdGl2ZVRhYklkKXtsZXQgRT10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLFQ9RS5maW5kSW5kZXgoVj0+Vi5pZD09PUMpLCQ9RVtUKzFdfHxFW1QtMV07JD90aGlzLnN3aXRjaFRvVGFiKCQuaWQpOih0aGlzLmFjdGl2ZVRhYklkPW51bGwsdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpKX1yZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmNsb3NlVGFiKEMpLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6Q319KSksITB9d3JpdGVUb1RhYihDLHope2xldCBFPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoQyk7cmV0dXJuIEU/KEUudGVybWluYWwud3JpdGUoeiksITApOiExfXNlbmRJbnB1dFRvVGFiKEMseil7bGV0IEU9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihDKTtyZXR1cm4hRXx8IUUuaW5wdXRXcml0ZXI/ITE6KEUuaW5wdXRXcml0ZXIud3JpdGUoeiksITApfWFzeW5jIHNob3dBY3Rpb25iYXIoQyl7cmV0dXJuIHRoaXMudGVybWluYWxBY3Rpb25iYXJ8fCh0aGlzLnRlcm1pbmFsQWN0aW9uYmFyPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSksdGhpcy50ZXJtaW5hbEFjdGlvbmJhcj8uc2hvdyhDKX1hc3luYyB3YWl0Rm9yUHJvbXB0KEMseil7cmV0dXJuIG5ldyBQcm9taXNlKEU9PntsZXQgVD0oKT0+e2xldCAkPUMuYnVmZmVyLmFjdGl2ZTtmb3IobGV0IFY9MDtWPCQubGVuZ3RoO1YrKyl7bGV0IFI9JC5nZXRMaW5lKFYpO2lmKFImJlIudHJhbnNsYXRlVG9TdHJpbmcoKS5pbmNsdWRlcyh6KSl7c2V0VGltZW91dCgoKT0+e0UoKX0sMTAwKTtyZXR1cm59fXNldFRpbWVvdXQoVCwxMDApfTtUKCl9KX1hc3luYyBzZXRFbnZpcm9ubWVudFZhcmlhYmxlcyhDKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0aHJvdyBuZXcgRXJyb3IoIk5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUiKTtsZXQgej0iIjtmb3IobGV0IEUgaW4gQyl6Kz1gZXhwb3J0ICR7RX09IiR7Q1tFXX0iCmA7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoIi9zb3VyY2UuZW52Iix6KX1nZXRFeGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fXN0YXRpY3t5YShpLGEpfX07cmV0dXJuIHE9aX0pKCl9KTt2YXIgeGosd2osR1V0LFlVdCxaVXQsTnl0LEZ5dD1iKCgpPT57dWUoKTtBbCgpO2xvKCk7X3goKTtPeCgpO0l4KCk7SzAoKTtYeCgpO3hqPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sd2o9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LEdVdD0oKCk9PntsZXQgdD1baGUoImRlbW8tdmlldy1kYXNoYm9hcmQiKV0sZSxhPVtdLGkscj14ZTt2YXIgcz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG49dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7eGoobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6bn0sbnVsbCxhKSxzPWk9ZS52YWx1ZSxuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KX1zdGF0aWMgc3R5bGVzPVtoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIGRlZXMtc3RhdHNncmlkIHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB9CiAgICBgXTtzdGF0c1RpbGVzPVt7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZToxMjM0LHR5cGU6Im51bWJlciIsaWNvbjoiZmFVc2VycyIsZGVzY3JpcHRpb246IisxNSUgZnJvbSBsYXN0IHdlZWsiLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJwYWdldmlld3MiLHRpdGxlOiJQYWdlIFZpZXdzIix2YWx1ZTo1NjcwMCx0eXBlOiJudW1iZXIiLGljb246ImZhRXllIixkZXNjcmlwdGlvbjoiNTYuN2sgdG90YWwgdmlld3MiLGNvbG9yOiIjM2I4MmY2In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZTo4OSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoiZmFTZXJ2ZXIiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjkwLGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UgVGltZSIsdmFsdWU6My4yLHVuaXQ6InMiLHR5cGU6Im51bWJlciIsaWNvbjoiZmFDbG9jayIsZGVzY3JpcHRpb246Ii0wLjVzIGltcHJvdmVtZW50Iixjb2xvcjoiI2Y1OWUwYiJ9LHtpZDoicmV2ZW51ZSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6NDg1MjAsdW5pdDoiJCIsdHlwZToidHJlbmQiLGljb246ImZhRG9sbGFyU2lnbiIsZGVzY3JpcHRpb246Iis4LjIlIGdyb3d0aCIsY29sb3I6IiMyMmM1NWUiLHRyZW5kRGF0YTpbMzVlMywzOGUzLDM3NTAwLDQxZTMsMzk4MDAsNDJlMyw0NDEwMCw0MzIwMCw0NTYwMCw0NzEwMCw0NjgwMCw0ODUyMF19LHtpZDoidHJhZmZpYyIsdGl0bGU6IlRyYWZmaWMgVHJlbmQiLHZhbHVlOjE2ODAsdHlwZToidHJlbmQiLGljb246ImZhQ2hhcnRMaW5lIixkZXNjcmlwdGlvbjoiTGFzdCA3IGRheXMiLGNvbG9yOiIjM2I4MmY2Iix0cmVuZERhdGE6WzEyMDAsMTM1MCwxMTAwLDE0NTAsMTYwMCwxNTUwLDE2ODBdfV07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIHRvIHlvdXIgYXBwbGljYXRpb24gZGFzaGJvYXJkLiBIZXJlJ3MgYW4gb3ZlcnZpZXcgb2YgeW91ciBtZXRyaWNzOjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke249Pntjb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixuLmRldGFpbCl9fQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgIGB9c3RhdGlje3dqKGksYSl9fTtyZXR1cm4gcz1pfSkoKSxZVXQ9KCgpPT57bGV0IHQ9W2hlKCJkZW1vLXZpZXctYW5hbHl0aWNzIildLGUsYT1bXSxpLHI9eGU7dmFyIHM9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3hqKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm59LG51bGwsYSkscz1pPWUudmFsdWUsbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSl9c3RhdGljIHN0eWxlcz1baC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxoMT5BbmFseXRpY3M8L2gxPgogICAgICA8cD5UaGlzIGlzIHRoZSBhbmFseXRpY3Mgdmlldy4gWW91IGNhbiBhZGQgY2hhcnRzIGFuZCBtZXRyaWNzIGhlcmUuPC9wPgogICAgYH1zdGF0aWN7d2ooaSxhKX19O3JldHVybiBzPWl9KSgpLFpVdD0oKCk9PntsZXQgdD1baGUoImRlbW8tdmlldy1zZXR0aW5ncyIpXSxlLGE9W10saSxyPXhlO3ZhciBzPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgbj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDt4aihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpufSxudWxsLGEpLHM9aT1lLnZhbHVlLG4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfXN0YXRpYyBzdHlsZXM9W2guZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgfQogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgICAgLnNldHRpbmdzLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi10b3A6IDMwcHg7CiAgICAgIH0KICAgICAgLnNldHRpbmdzLXNlY3Rpb24gaDIgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQogICAgICAuaG9yaXpvbnRhbC1mb3JtLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjVmNWY1IiwiIzFhMWExYSIpfTsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW46IDE1cHggMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxoMT5TZXR0aW5nczwvaDE+CiAgICAgIDxwPkNvbmZpZ3VyZSB5b3VyIGFwcGxpY2F0aW9uIHNldHRpbmdzIGJlbG93OjwvcD4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5HZW5lcmFsIFNldHRpbmdzPC9oMj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImFwcE5hbWUiIGxhYmVsPSJBcHBsaWNhdGlvbiBOYW1lIiB2YWx1ZT0iTXkgQXBwIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJhcGlFbmRwb2ludCIgbGFiZWw9IkFQSSBFbmRwb2ludCIgdmFsdWU9Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0iZW52aXJvbm1lbnQiCiAgICAgICAgICAgIGxhYmVsPSJFbnZpcm9ubWVudCIKICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRGV2ZWxvcG1lbnQiLGtleToiZGV2In0se29wdGlvbjoiU3RhZ2luZyIsa2V5OiJzdGFnaW5nIn0se29wdGlvbjoiUHJvZHVjdGlvbiIsa2V5OiJwcm9kIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJQcm9kdWN0aW9uIixrZXk6InByb2QifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9ImVuYWJsZU5vdGlmaWNhdGlvbnMiIGxhYmVsPSJFbmFibGUgTm90aWZpY2F0aW9ucyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iZW5hYmxlQW5hbHl0aWNzIiBsYWJlbD0iRW5hYmxlIEFuYWx5dGljcyIgdmFsdWU9ImZhbHNlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TYXZlIEdlbmVyYWwgU2V0dGluZ3M8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPkRpc3BsYXkgUHJlZmVyZW5jZXM8L2gyPgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZm9ybS1zZWN0aW9uIj4KICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwOyBtYXJnaW4tYm90dG9tOiAxNnB4OyI+UXVpY2sgZGlzcGxheSBzZXR0aW5ncyB1c2luZyBob3Jpem9udGFsIGxheW91dDo8L3A+CiAgICAgICAgICA8ZGVlcy1mb3JtIGhvcml6b250YWwtbGF5b3V0PgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0idGhlbWUiCiAgICAgICAgICAgICAgbGFiZWw9IlRoZW1lIgogICAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJMaWdodCIsa2V5OiJsaWdodCJ9LHtvcHRpb246IkRhcmsiLGtleToiZGFyayJ9LHtvcHRpb246IkF1dG8iLGtleToiYXV0byJ9XX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJEYXJrIixrZXk6ImRhcmsifX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICBrZXk9Imxhbmd1YWdlIgogICAgICAgICAgICAgIGxhYmVsPSJMYW5ndWFnZSIKICAgICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRW5nbGlzaCIsa2V5OiJlbiJ9LHtvcHRpb246Ikdlcm1hbiIsa2V5OiJkZSJ9LHtvcHRpb246IlNwYW5pc2giLGtleToiZXMifSx7b3B0aW9uOiJGcmVuY2giLGtleToiZnIifV19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiRW5nbGlzaCIsa2V5OiJlbiJ9fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9ImNvbXBhY3RNb2RlIiBsYWJlbD0iQ29tcGFjdCBNb2RlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+Tm90aWZpY2F0aW9uIFNldHRpbmdzPC9oMj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgRnJlcXVlbmN5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIlJlYWwtdGltZSIsIkRhaWx5IERpZ2VzdCIsIldlZWtseSBTdW1tYXJ5IiwiTmV2ZXIiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlJlYWwtdGltZSJ9CiAgICAgICAgICAgIC5rZXk9JHsiZW1haWxGcmVxdWVuY3kifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJwdXNoTm90aWZpY2F0aW9ucyIgbGFiZWw9IkVuYWJsZSBQdXNoIE5vdGlmaWNhdGlvbnMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9InNvdW5kQWxlcnRzIiBsYWJlbD0iUGxheSBTb3VuZCBmb3IgQWxlcnRzIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+VXBkYXRlIE5vdGlmaWNhdGlvbnM8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7d2ooaSxhKX19O3JldHVybiBzPWl9KSgpLE55dD0oKT0+d2AKICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgfQogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDA7CiAgICAgIGxlZnQ6IDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1zaW1wbGUtYXBwZGFzaAogICAgICBuYW1lPSJNeSBBcHBsaWNhdGlvbiIKICAgICAgdGVybWluYWxTZXR1cENvbW1hbmQ9ImVjaG8gJ1dlbGNvbWUgdG8gdGhlIHRlcm1pbmFsISciCiAgICAgIC52aWV3VGFicz0ke1t7bmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGVsZW1lbnQ6R1V0fSx7bmFtZToiQW5hbHl0aWNzIixpY29uTmFtZToibHVjaWRlOmxpbmVDaGFydCIsZWxlbWVudDpZVXR9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsZWxlbWVudDpaVXR9XX0KICAgICAgQGxvZ291dD0keygpPT57Y29uc29sZS5sb2coIkxvZ291dCBldmVudCB0cmlnZ2VyZWQiKSxhbGVydCgiTG9nb3V0IGNsaWNrZWQhIil9fQogICAgICBAdmlldy1zZWxlY3Q9JHt0PT57Y29uc29sZS5sb2coIlZpZXcgc2VsZWN0ZWQ6Iix0LmRldGFpbC52aWV3Lm5hbWUpfX0KICAgID48L2RlZXMtc2ltcGxlLWFwcGRhc2g+CiAgPC9kaXY+CmB9KTt2YXIgYWQsV3MsT3l0LFJ5dD1iKCgpPT57Rnl0KCk7dWUoKTtEdCgpO3FlKCk7YWQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxXcz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sT3l0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy1zaW1wbGUtYXBwZGFzaCIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLGQ9W0koe3R5cGU6QXJyYXl9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0seT1bSigpXSxhZCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJuYW1lImluIFMsZ2V0OlM9PlMubmFtZSxzZXQ6KFMsRik9PntTLm5hbWU9Rn19LG1ldGFkYXRhOk19LG4sbyksYWQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InZpZXdUYWJzImluIFMsZ2V0OlM9PlMudmlld1RhYnMsc2V0OihTLEYpPT57Uy52aWV3VGFicz1GfX0sbWV0YWRhdGE6TX0sYyxwKSxhZCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsU2V0dXBDb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4idGVybWluYWxTZXR1cENvbW1hbmQiaW4gUyxnZXQ6Uz0+Uy50ZXJtaW5hbFNldHVwQ29tbWFuZCxzZXQ6KFMsRik9PntTLnRlcm1pbmFsU2V0dXBDb21tYW5kPUZ9fSxtZXRhZGF0YTpNfSxmLGcpLGFkKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRWaWV3IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ic2VsZWN0ZWRWaWV3ImluIFMsZ2V0OlM9PlMuc2VsZWN0ZWRWaWV3LHNldDooUyxGKT0+e1Muc2VsZWN0ZWRWaWV3PUZ9fSxtZXRhZGF0YTpNfSx2LG0pLGFkKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOk19LG51bGwsYSkseD1pPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89Tnl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiU2ltcGxlIl07I2U9V3ModGhpcyxuLCJBcHBsaWNhdGlvbiBEYXNoYm9hcmQiKTtnZXQgbmFtZSgpe3JldHVybiB0aGlzLiNlfXNldCBuYW1lKE0pe3RoaXMuI2U9TX0jdD0oV3ModGhpcyxvKSxXcyh0aGlzLGMsW10pKTtnZXQgdmlld1RhYnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgdmlld1RhYnMoTSl7dGhpcy4jdD1NfSNhPShXcyh0aGlzLHApLFdzKHRoaXMsZiwnZWNobyAiVGVybWluYWwgcmVhZHkiJykpO2dldCB0ZXJtaW5hbFNldHVwQ29tbWFuZCgpe3JldHVybiB0aGlzLiNhfXNldCB0ZXJtaW5hbFNldHVwQ29tbWFuZChNKXt0aGlzLiNhPU19I2k9KFdzKHRoaXMsZyksV3ModGhpcyx2LHZvaWQgMCkpO2dldCBzZWxlY3RlZFZpZXcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2VsZWN0ZWRWaWV3KE0pe3RoaXMuI2k9TX1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICByaWdodDogMHB4OwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5hcHBiYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNHB4KTsKICAgICAgICB3aWR0aDogMjQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk5JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyIG1pbi1jb250ZW50OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMjBweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmhlYWRlci1pY29uLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDIxNSAyMCUgOTUlKSAwJSwgaHNsKDIxNSAyMCUgOTAlKSAxMDAlKSIsImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyMTUgMjAlIDE4JSkgMCUsIGhzbCgyMTUgMjAlIDE0JSkgMTAwJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHtoLmJkVGhlbWUoIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSwgaW5zZXQgMCAxcHggMCByZ2IoMjU1IDI1NSAyNTUgLyAwLjUpIiwiMCAxcHggMnB4IHJnYigwIDAgMCAvIDAuMiksIGluc2V0IDAgMXB4IDAgcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyMCUgNDAlKSIsImhzbCgyMTUgMjAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBOYW1lIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyIHsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzUlKSIsImhzbCgwIDAlIDMwJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAudmlld1RhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2NSUpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA0KSIsImhzbCgwIDAlIDEwMCUgLyAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAudmlld1RhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDcpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxNSAyNSUgOTUlKSIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDI1JSAzMCUpIiwiaHNsKDIxNSAyNSUgODUlKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMjE1IDcwJSA1MCUpIiwiaHNsKDIxNSA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41NTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTUgNzAlIDQ1JSkiLCJoc2woMjE1IDcwJSA2NSUpIil9OwogICAgICB9CgogICAgICAudmlld1RhYiBzcGFuIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmFwcEFjdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDg0JSA2MCUgLyAwLjA4KSIsImhzbCgwIDg0JSA2MCUgLyAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDg0JSA0NSUpIiwiaHNsKDAgODQlIDY1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgODQlIDQ1JSkiLCJoc2woMCA4NCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFwcGNvbnRlbnQgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNHB4KTsKICAgICAgICBib3R0b206IDI0cHg7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI0MHB4KTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAuY29udHJvbGJhciB7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMjAgMTMlIDE4JSkiLCJoc2woMjIwIDEzJSAxMiUpIil9OwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwogICAgICB9CgogICAgICAuY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDcwJSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBoc2woMCAwJSAxMDAlIC8gMC4wOCk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbnRyb2w6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDAlIDEwMCUgLyAwLjA2KTsKICAgICAgICBjb2xvcjogaHNsKDAgMCUgOTUlKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogaHNsKDE0MiA3MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wuc3RhdHVzLXRlcm1pbmFsIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA5MCUgNTUlKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImFwcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pY29uLXdyYXBwZXIiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpsYXlvdXRHcmlkIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXBwTmFtZSI+JHt0aGlzLm5hbWV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdUYWJzLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPk5hdmlnYXRpb248L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idmlld1RhYnMiPgogICAgICAgICAgICAgICR7dGhpcy52aWV3VGFicy5tYXAoTT0+d2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2aWV3VGFiICR7dGhpcy5zZWxlY3RlZFZpZXc9PT1NPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmxvYWRWaWV3KE0pfQogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHtNLmljb25OYW1lP3dgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke00uaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT9NLmljb25OYW1lOmBsdWNpZGU6JHtNLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgOndgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6ZmlsZSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7TS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcEFjdGlvbnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24iIEBjbGljaz0keygpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9nb3V0Iix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpsb2dPdXQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+U2lnbiBvdXQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwY29udGVudCI+CiAgICAgICAgICA8IS0tIENvbnRlbnQgZ29lcyBoZXJlIC0tPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbCBzdGF0dXMtY29ubmVjdGVkIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOndpZmkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuPkNvbm5lY3RlZDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbCBzdGF0dXMtdGVybWluYWwiIEBjbGljaz0ke3RoaXMubGF1bmNoVGVybWluYWx9PgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6dGVybWluYWwifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuPlRlcm1pbmFsPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoTSl7bGV0IFM9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7aWYoc3VwZXIuZmlyc3RVcGRhdGVkKE0pLHRoaXMudmlld1RhYnMmJnRoaXMudmlld1RhYnMubGVuZ3RoPjApe2xldCBGPXRoaXMuc2VsZWN0ZWRWaWV3fHx0aGlzLnZpZXdUYWJzWzBdO2F3YWl0IHRoaXMubG9hZFZpZXcoRil9fWN1cnJlbnRUZXJtaW5hbD1Xcyh0aGlzLG0pO2FzeW5jIGxhdW5jaFRlcm1pbmFsKCl7bGV0IE09YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7aWYodGhpcy5jdXJyZW50VGVybWluYWwpe2F3YWl0IHRoaXMuY2xvc2VUZXJtaW5hbCgpO3JldHVybn1sZXQgUz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKSx7RGVlc1dvcmtzcGFjZVRlcm1pbmFsOkZ9PWF3YWl0IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pih0ZCgpLEl5dCkpLF89bmV3IEY7cmV0dXJuIF8uc2V0dXBDb21tYW5kPXRoaXMudGVybWluYWxTZXR1cENvbW1hbmQsdGhpcy5jdXJyZW50VGVybWluYWw9XyxTLmFwcGVuZENoaWxkKF8pLF8uc3R5bGUucG9zaXRpb249ImFic29sdXRlIixfLnN0eWxlLnpJbmRleD0iMTAiLF8uc3R5bGUudG9wPSIwcHgiLF8uc3R5bGUubGVmdD0iMjQwcHgiLF8uc3R5bGUucmlnaHQ9IjBweCIsXy5zdHlsZS5ib3R0b209IjI0cHgiLF8uc3R5bGUub3BhY2l0eT0iMCIsXy5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk5KSIsXy5zdHlsZS50cmFuc2l0aW9uPSJhbGwgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSIsXy5zdHlsZS5ib3hTaGFkb3c9IjAgMjVweCA1MHB4IC0xMnB4IHJnYigwIDAgMCAvIDAuNSksIDAgMCAwIDFweCByZ2IoMjU1IDI1NSAyNTUgLyAwLjA1KSIsXy5zdHlsZS5tYXhXaWR0aD1gY2FsYygke1MuY2xpZW50V2lkdGh9cHggLTI0MHB4KWAsXy5zdHlsZS5tYXhIZWlnaHQ9YGNhbGMoJHtTLmNsaWVudEhlaWdodH1weCAtIDI0cHgpYCxfLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+dGhpcy5jbG9zZVRlcm1pbmFsKCkpLGF3YWl0IE0uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSxfLnN0eWxlLm9wYWNpdHk9IjEiLF8uc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIHNjYWxlKDEpIixffWFzeW5jIGNsb3NlVGVybWluYWwoKXtsZXQgTT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmN1cnJlbnRUZXJtaW5hbCYmKHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixhd2FpdCBNLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjUwKSx0aGlzLmN1cnJlbnRUZXJtaW5hbC5yZW1vdmUoKSx0aGlzLmN1cnJlbnRUZXJtaW5hbD1udWxsKX1jdXJyZW50Vmlldzthc3luYyBsb2FkVmlldyhNKXtsZXQgUz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmFwcGNvbnRlbnQiKSxGPW5ldyBNLmVsZW1lbnQ7dGhpcy5jdXJyZW50VmlldyYmdGhpcy5jdXJyZW50Vmlldy5yZW1vdmUoKSxTLmFwcGVuZENoaWxkKEYpLHRoaXMuY3VycmVudFZpZXc9Rix0aGlzLnNlbGVjdGVkVmlldz1NLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctc2VsZWN0Iix7ZGV0YWlsOnt2aWV3Ok19LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9c3RhdGlje1dzKGksYSl9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBCeXQ9YigoKT0+e1J5dCgpfSk7dmFyIEh5dCxxeXQ9YigoKT0+e3VlKCk7SHl0PSgpPT53YAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXNpbXBsZS1sb2dpbiAKICAgICAgbmFtZT0iTXkgQXBwbGljYXRpb24iCiAgICAgIEBsb2dpbj0ke3Q9Pntjb25zb2xlLmxvZygiTG9naW4gZXZlbnQgcmVjZWl2ZWQ6Iix0LmRldGFpbCk7bGV0IGU9dC5kZXRhaWw/LmRhdGF8fHQuZGV0YWlsO2U/LnVzZXJuYW1lJiZlPy5wYXNzd29yZD9hbGVydChgTG9naW4gYXR0ZW1wdGVkIHdpdGg6ClVzZXJuYW1lOiAke2UudXNlcm5hbWV9ClBhc3N3b3JkOiAke2UucGFzc3dvcmR9YCk6Y29uc29sZS5lcnJvcigiSW52YWxpZCBsb2dpbiBkYXRhIHN0cnVjdHVyZToiLHQuZGV0YWlsKX19CiAgICA+CiAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgIDxoMT5XZWxjb21lITwvaDE+CiAgICAgICAgPHA+VGhpcyBpcyB0aGUgc2xvdHRlZCBjb250ZW50IHRoYXQgYXBwZWFycyBhZnRlciBsb2dpbi48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLXNpbXBsZS1sb2dpbj4KICA8L2Rpdj4KYH0pO3ZhciBWeXQsTWosanl0LFV5dD1iKCgpPT57cXl0KCk7dWUoKTtxZSgpO1Z5dD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LE1qPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxqeXQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXNpbXBsZS1sb2dpbiIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKCldLFZ5dCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnA9PiJuYW1lImluIHAsZ2V0OnA9PnAubmFtZSxzZXQ6KHAsbCk9PntwLm5hbWU9bH19LG1ldGFkYXRhOmN9LG4sbyksVnl0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsYSksZD1pPWUudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89SHl0O3N0YXRpYyBkZW1vR3JvdXBzPVsiU2ltcGxlIl07I2U9TWoodGhpcyxuLCJBcHBsaWNhdGlvbiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5sb2dpbkNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zbG90Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5sb2dpbiB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CgogICAgICAubG9naW4taGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuc3ViaGVhZGVyIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5sb2dpbi1jYXJkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgZGVlcy1mb3JtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICB9CgogICAgICAubG9naW4tY2FyZCBkZWVzLWlucHV0LXRleHQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubG9naW4tY2FyZCBkZWVzLWZvcm0tc3VibWl0IHsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJsb2dpbkNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9naW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibG9naW4taGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj5TaWduIGluPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YmhlYWRlciI+RW50ZXIgeW91ciBjcmVkZW50aWFscyB0byBhY2Nlc3MgJHt0aGlzLm5hbWV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJ1c2VybmFtZSIgbGFiZWw9IlVzZXJuYW1lIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0icGFzc3dvcmQiIGxhYmVsPSJQYXNzd29yZCIgaXNQYXNzd29yZEJvb2wgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U2lnbiBpbjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNsb3RDb250YWluZXIiPgogICAgICAgIDxzbG90Pjwvc2xvdD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChjKXtzdXBlci5maXJzdFVwZGF0ZWQoYyk7bGV0IHA9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpO3AmJnAuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLGw9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsb2dpbiIse2RldGFpbDpsLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfSl9YXN5bmMgc3dpdGNoVG9TbG90dGVkQ29udGVudCgpe2xldCBjPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHA9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5sb2dpbiIpLGw9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5sb2dpbkNvbnRhaW5lciIpLGY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zbG90Q29udGFpbmVyIik7cC5zdHlsZS5vcGFjaXR5PSIwIixwLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgyMHB4KSIsbC5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixmLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgyMHB4KSIsYXdhaXQgYy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksZi5zdHlsZS5vcGFjaXR5PSIxIixmLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgwcHgpIixhd2FpdCBjLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzAwKSxmLnN0eWxlLnBvaW50ZXJFdmVudHM9ImFsbCJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLE1qKHRoaXMsbyl9c3RhdGlje01qKGksYSl9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciBXeXQ9YigoKT0+e1V5dCgpfSk7dmFyIEd5dD1iKCgpPT57UHl0KCk7Qnl0KCk7V3l0KCl9KTt2YXIgWXl0PWIoKCk9PntEdCgpfSk7dmFyIFp5dCxYeXQ9YigoKT0+e3VlKCk7Wnl0PSgpPT53YAogICAgPHN0eWxlPgogICAgICAuZGVtb1dyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAKICAgICAgICBiYWNrZ3JvdW5kOiAjODg4ODg4OwogICAgICB9CiAgICAgIC5sb2dzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdpZHRoOiA2MDBweDsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAgICAgIC5sb2dzIGRpdiB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgICAgPGRlZXMtc2VhcmNoYmFyCiAgICAgICAgQHNlYXJjaC1jaGFuZ2VkPSR7YT0+e2xldCByPWEudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjY2hhbmdlZCIpO3ImJihyLnRleHRDb250ZW50PWBzZWFyY2gtY2hhbmdlZDogJHthLmRldGFpbC52YWx1ZX1gKX19CiAgICAgICAgQHNlYXJjaC1zdWJtaXQ9JHthPT57bGV0IHI9YS50YXJnZXQuY2xvc2VzdCgiLmRlbW9XcmFwcGVyIik/LnF1ZXJ5U2VsZWN0b3IoIiNzdWJtaXR0ZWQiKTtyJiYoci50ZXh0Q29udGVudD1gc2VhcmNoLXN1Ym1pdDogJHthLmRldGFpbC52YWx1ZX1gKX19CiAgICAgID48L2RlZXMtc2VhcmNoYmFyPgogICAgICA8ZGl2IGNsYXNzPSJsb2dzIj4KICAgICAgICA8ZGl2IGlkPSJjaGFuZ2VkIj5zZWFyY2gtY2hhbmdlZDo8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJzdWJtaXR0ZWQiPnNlYXJjaC1zdWJtaXQ6PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0pO3ZhciBLeXQsemosUXl0LEp5dD1iKCgpPT57dWUoKTtnaSgpO1h5dCgpO3FlKCk7S3l0PWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0semo9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LFF5dD0oKCk9PntsZXQgdD1baGUoImRlZXMtc2VhcmNoYmFyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koKV0sS3l0KHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cD0+ImZpbHRlcnMiaW4gcCxnZXQ6cD0+cC5maWx0ZXJzLHNldDoocCxsKT0+e3AuZmlsdGVycz1sfX0sbWV0YWRhdGE6Y30sbixvKSxLeXQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxhKSxkPWk9ZS52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1aeXQ7c3RhdGljIGRlbW9Hcm91cHM9WyJVdGlsaXR5Il07c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBEZWVzIFNhbnM7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAuc2VhcmNoYm94Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYxNSIpfTsKICAgICAgICAtLWJveEhlaWdodDogNjBweDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uIHsKICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ib3hIZWlnaHQpIC0gKHZhcigtLWJ1dHRvblBhZGRpbmcpICogMikpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSA7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIGJhY2tncm91bmQgMC4xczsKICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZShVMC5ibHVlLG1pLmJsdWUpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKFUwLmJsdWVBY3RpdmUsbWkuYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXJzIHsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07I2U9emoodGhpcyxuLFtdKTtnZXQgZmlsdGVycygpe3JldHVybiB0aGlzLiNlfXNldCBmaWx0ZXJzKGMpe3RoaXMuI2U9Y31zZWFyY2hJbnB1dD16aih0aGlzLG8pO3NlYXJjaEJ1dHRvbjtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InNlYXJjaGJveENvbnRhaW5lciI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJZb3VyIFNraWxscyAoZS5nLiBUeXBlU2NyaXB0LCBSdXN0LCBQcm9qZWN0bWFuYWdlbWVudCkiIC8+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoQnV0dG9uIj5TZWFyY2ggLT48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5maWx0ZXJzLmxlbmd0aD4wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0iZmlsdGVycyI+CiAgICAgICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iaHItc21hbGwiPkZpbHRlcnM8L2RlZXMtaGVhZGluZz4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93biAubGFiZWw9JHsibG9jYXRpb24ifT48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgIDwvZGl2PiAgCiAgICAgIGA6d2BgfQogICAgYH1maXJzdFVwZGF0ZWQoKXt0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1jaGFuZ2VkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3ZhbHVlOnRoaXMuc2VhcmNoSW5wdXQudmFsdWV9fSkpfSksdGhpcy5zZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixjPT57Yy5rZXk9PT0iRW50ZXIiJiZ0aGlzLl9kaXNwYXRjaFN1Ym1pdCgpfSksdGhpcy5zZWFyY2hCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT50aGlzLl9kaXNwYXRjaFN1Ym1pdCgpKX1fZGlzcGF0Y2hTdWJtaXQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWFyY2gtc3VibWl0Iix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3ZhbHVlOnRoaXMuc2VhcmNoSW5wdXQudmFsdWV9fSkpfXN0YXRpY3t6aihpLGEpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgZXh0PWIoKCk9PntKeXQoKX0pO3ZhciB0eHQsYXh0PWIoKCk9Pnt1ZSgpO3R4dD0oKT0+d2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgfQoKICAgIC50b2tlbi1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICBnYXA6IDE2cHg7CiAgICB9CgogICAgLnRva2VuLWl0ZW0gewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgcGFkZGluZzogMTZweDsKICAgIH0KCiAgICAudG9rZW4tbmFtZSB7CiAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgfQoKICAgIC50b2tlbi12YWx1ZSB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc3BhY2luZy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICBnYXA6IDhweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5zcGFjaW5nLWJveCB7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgfQoKICAgIC5yYWRpdXMtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTZweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5yYWRpdXMtYm94IHsKICAgICAgd2lkdGg6IDYwcHg7CiAgICAgIGhlaWdodDogNjBweDsKICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnNoYWRvdy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNoYWRvdy1ib3ggewogICAgICB3aWR0aDogMTAwcHg7CiAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgfQoKICAgIC5oZWlnaHQtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTZweDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLmhlaWdodC1ib3ggewogICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIHdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy10aGVtZT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U3BhY2luZyBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXNwYWNpbmcteHMgdGhyb3VnaCAtLWRlZXMtc3BhY2luZy0zeGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXhzKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnhzICg0cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1zbSk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5zbSAoOHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy1tZCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWQgKDEycHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1sZyk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5sZyAoMTZweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXhsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnhsICgyNHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4yeGwgKDMycHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy0zeGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy0zeGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjN4bCAoNDhweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkJvcmRlciBSYWRpdXMgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1yYWRpdXMteHMgdGhyb3VnaCAtLWRlZXMtcmFkaXVzLWZ1bGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMteHMpOyI+eHM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1zbSk7Ij5zbTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjZweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtbGcpOyI+bGc8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+OHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14bCk7Ij54bDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4xMnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsiPmZ1bGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+OTk5cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNoYWRvdyBFbGV2YXRpb24gU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1zaGFkb3cteHMgdGhyb3VnaCAtLWRlZXMtc2hhZG93LWxnCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LXhzKTsiPnhzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPm1pbmltYWw8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnN1YnRsZTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWVkaXVtPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5wcm9taW5lbnQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNvbnRyb2wgSGVpZ2h0IFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtY29udHJvbC1oZWlnaHQtc20gdGhyb3VnaCAtLWRlZXMtY29udHJvbC1oZWlnaHQteGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjMycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4zNnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtbGcpOyI+bGc8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NDBweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXhsKTsiPnhsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjQ4cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlRyYW5zaXRpb24gRHVyYXRpb25zPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtdHJhbnNpdGlvbi1mYXN0IHRocm91Z2ggLS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tZmFzdDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4xczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4xNXM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLXNsb3c8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tdmFsdWUiPjAuMnM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLXNsb3dlcjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4zczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLXRoZW1lPgogIDwvZGl2PgpgfSk7dmFyIFVsLGFyLGl4dCxyeHQ9YigoKT0+e3VlKCk7cWUoKTtheHQoKTtVbD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LGFyPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxpeHQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXRoZW1lIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W107dmFyIEY9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6T2JqZWN0fSldLGQ9W0koe3R5cGU6T2JqZWN0fSldLGw9W0koe3R5cGU6T2JqZWN0fSldLHk9W0koe3R5cGU6T2JqZWN0fSldLHg9W0koe3R5cGU6T2JqZWN0fSldLFVsKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tU3BhY2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImN1c3RvbVNwYWNpbmciaW4gayxnZXQ6az0+ay5jdXN0b21TcGFjaW5nLHNldDooayxOKT0+e2suY3VzdG9tU3BhY2luZz1OfX0sbWV0YWRhdGE6X30sbixvKSxVbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVJhZGl1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImN1c3RvbVJhZGl1cyJpbiBrLGdldDprPT5rLmN1c3RvbVJhZGl1cyxzZXQ6KGssTik9PntrLmN1c3RvbVJhZGl1cz1OfX0sbWV0YWRhdGE6X30sYyxwKSxVbCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNoYWRvd3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJjdXN0b21TaGFkb3dzImluIGssZ2V0Oms9PmsuY3VzdG9tU2hhZG93cyxzZXQ6KGssTik9PntrLmN1c3RvbVNoYWRvd3M9Tn19LG1ldGFkYXRhOl99LGYsZyksVWwodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21UcmFuc2l0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImN1c3RvbVRyYW5zaXRpb25zImluIGssZ2V0Oms9PmsuY3VzdG9tVHJhbnNpdGlvbnMsc2V0OihrLE4pPT57ay5jdXN0b21UcmFuc2l0aW9ucz1OfX0sbWV0YWRhdGE6X30sdixtKSxVbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbUNvbnRyb2xIZWlnaHRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iY3VzdG9tQ29udHJvbEhlaWdodHMiaW4gayxnZXQ6az0+ay5jdXN0b21Db250cm9sSGVpZ2h0cyxzZXQ6KGssTik9PntrLmN1c3RvbUNvbnRyb2xIZWlnaHRzPU59fSxtZXRhZGF0YTpffSxNLFMpLFVsKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsYSksRj1pPWUudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89dHh0O3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPWFyKHRoaXMsbixudWxsKTtnZXQgY3VzdG9tU3BhY2luZygpe3JldHVybiB0aGlzLiNlfXNldCBjdXN0b21TcGFjaW5nKF8pe3RoaXMuI2U9X30jdD0oYXIodGhpcyxvKSxhcih0aGlzLGMsbnVsbCkpO2dldCBjdXN0b21SYWRpdXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY3VzdG9tUmFkaXVzKF8pe3RoaXMuI3Q9X30jYT0oYXIodGhpcyxwKSxhcih0aGlzLGYsbnVsbCkpO2dldCBjdXN0b21TaGFkb3dzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGN1c3RvbVNoYWRvd3MoXyl7dGhpcy4jYT1ffSNpPShhcih0aGlzLGcpLGFyKHRoaXMsdixudWxsKSk7Z2V0IGN1c3RvbVRyYW5zaXRpb25zKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGN1c3RvbVRyYW5zaXRpb25zKF8pe3RoaXMuI2k9X30jcj0oYXIodGhpcyxtKSxhcih0aGlzLE0sbnVsbCkpO2dldCBjdXN0b21Db250cm9sSGVpZ2h0cygpe3JldHVybiB0aGlzLiNyfXNldCBjdXN0b21Db250cm9sSGVpZ2h0cyhfKXt0aGlzLiNyPV99c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxzdHlsZT4KICAgICAgICAke3RoaXMuZ2VuZXJhdGVDdXN0b21TdHlsZXMoKX0KICAgICAgPC9zdHlsZT4KICAgICAgPHNsb3Q+PC9zbG90PgogICAgYH1nZW5lcmF0ZUN1c3RvbVN0eWxlcygpe2xldCBfPVsiOmhvc3QgeyJdO2lmKHRoaXMuY3VzdG9tU3BhY2luZylmb3IobGV0W2ssTl1vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVNwYWNpbmcpKU4mJl8ucHVzaChgICAtLWRlZXMtc3BhY2luZy0ke2t9OiAke059O2ApO2lmKHRoaXMuY3VzdG9tUmFkaXVzKWZvcihsZXRbayxOXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tUmFkaXVzKSlOJiZfLnB1c2goYCAgLS1kZWVzLXJhZGl1cy0ke2t9OiAke059O2ApO2lmKHRoaXMuY3VzdG9tU2hhZG93cylmb3IobGV0W2ssTl1vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVNoYWRvd3MpKU4mJl8ucHVzaChgICAtLWRlZXMtc2hhZG93LSR7a306ICR7Tn07YCk7aWYodGhpcy5jdXN0b21UcmFuc2l0aW9ucyl7Zm9yKGxldFtrLE5db2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21UcmFuc2l0aW9ucykpaWYoTil7bGV0IEw9az09PSJkZWZhdWx0Ij8iZGVmYXVsdCI6aztfLnB1c2goYCAgLS1kZWVzLXRyYW5zaXRpb24tJHtMfTogJHtOfTtgKX19aWYodGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cylmb3IobGV0W2ssTl1vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzKSlOJiZfLnB1c2goYCAgLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LSR7a306ICR7Tn07YCk7cmV0dXJuIF8ucHVzaCgifSIpLF8uam9pbihgCmApfXNldFNwYWNpbmcoXyxrKXt0aGlzLmN1c3RvbVNwYWNpbmc9ey4uLnRoaXMuY3VzdG9tU3BhY2luZyxbX106a319c2V0UmFkaXVzKF8sayl7dGhpcy5jdXN0b21SYWRpdXM9ey4uLnRoaXMuY3VzdG9tUmFkaXVzLFtfXTprfX1zZXRTaGFkb3coXyxrKXt0aGlzLmN1c3RvbVNoYWRvd3M9ey4uLnRoaXMuY3VzdG9tU2hhZG93cyxbX106a319c2V0VHJhbnNpdGlvbihfLGspe3RoaXMuY3VzdG9tVHJhbnNpdGlvbnM9ey4uLnRoaXMuY3VzdG9tVHJhbnNpdGlvbnMsW19dOmt9fXNldENvbnRyb2xIZWlnaHQoXyxrKXt0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPXsuLi50aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzLFtfXTprfX1nZXRUaGVtZSgpe3JldHVybntjb2xvcnM6UW4uY29sb3JzLHNwYWNpbmc6ey4uLlFuLnNwYWNpbmcsLi4udGhpcy5jdXN0b21TcGFjaW5nfSxyYWRpdXM6ey4uLlFuLnJhZGl1cywuLi50aGlzLmN1c3RvbVJhZGl1c30sc2hhZG93czp7Li4uUW4uc2hhZG93cywuLi50aGlzLmN1c3RvbVNoYWRvd3N9LHRyYW5zaXRpb25zOnsuLi5Rbi50cmFuc2l0aW9ucywuLi50aGlzLmN1c3RvbVRyYW5zaXRpb25zfSxjb250cm9sSGVpZ2h0czp7Li4uUW4uY29udHJvbEhlaWdodHMsLi4udGhpcy5jdXN0b21Db250cm9sSGVpZ2h0c319fXJlc2V0VG9EZWZhdWx0cygpe3RoaXMuY3VzdG9tU3BhY2luZz1udWxsLHRoaXMuY3VzdG9tUmFkaXVzPW51bGwsdGhpcy5jdXN0b21TaGFkb3dzPW51bGwsdGhpcy5jdXN0b21UcmFuc2l0aW9ucz1udWxsLHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHM9bnVsbH1hcHBseVRoZW1lKF8pe18uc3BhY2luZyYmKHRoaXMuY3VzdG9tU3BhY2luZz1fLnNwYWNpbmcpLF8ucmFkaXVzJiYodGhpcy5jdXN0b21SYWRpdXM9Xy5yYWRpdXMpLF8uc2hhZG93cyYmKHRoaXMuY3VzdG9tU2hhZG93cz1fLnNoYWRvd3MpLF8udHJhbnNpdGlvbnMmJih0aGlzLmN1c3RvbVRyYW5zaXRpb25zPV8udHJhbnNpdGlvbnMpLF8uY29udHJvbEhlaWdodHMmJih0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPV8uY29udHJvbEhlaWdodHMpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxhcih0aGlzLFMpfXN0YXRpY3thcihpLGEpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgc3h0PWIoKCk9PntyeHQoKX0pO3ZhciBueHQsb3h0PWIoKCk9Pnt1ZSgpO2tqKCk7bnh0PWFzeW5jKCk9PntsZXQgdD1hd2FpdCBNdy5jcmVhdGVBbmRTaG93KCk7c2V0VGltZW91dChhc3luYygpPT57YXdhaXQgdC5kZXN0cm95KCl9LDFlNCl9fSk7dmFyIFNqLGlkLE13LGtqPWIoKCk9Pnt1ZSgpO294dCgpO19zKCk7dWUoKTtxZSgpO1NqPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0saWQ9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LE13PSgoKT0+e2xldCB0PVtoZSgiZGVlcy11cGRhdGVyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBmPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6U3RyaW5nfSldLGQ9W0koe3R5cGU6U3RyaW5nfSldLFNqKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJjdXJyZW50VmVyc2lvbiJpbiBnLGdldDpnPT5nLmN1cnJlbnRWZXJzaW9uLHNldDooZyx5KT0+e2cuY3VycmVudFZlcnNpb249eX19LG1ldGFkYXRhOmZ9LG4sbyksU2oodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cGRhdGVkVmVyc2lvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+InVwZGF0ZWRWZXJzaW9uImluIGcsZ2V0Omc9PmcudXBkYXRlZFZlcnNpb24sc2V0OihnLHkpPT57Zy51cGRhdGVkVmVyc2lvbj15fX0sbWV0YWRhdGE6Zn0sYyxwKSxTaihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpmfSxudWxsLGEpLGw9aT1lLnZhbHVlLGYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Zn0pfXN0YXRpYyBkZW1vPW54dDtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTtzdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdygpe2xldCBmPW5ldyBsO3JldHVybiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGYpLGZ9I2U9aWQodGhpcyxuLHZvaWQgMCk7Z2V0IGN1cnJlbnRWZXJzaW9uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGN1cnJlbnRWZXJzaW9uKGYpe3RoaXMuI2U9Zn0jdD0oaWQodGhpcyxvKSxpZCh0aGlzLGMsdm9pZCAwKSk7Z2V0IHVwZGF0ZWRWZXJzaW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHVwZGF0ZWRWZXJzaW9uKGYpe3RoaXMuI3Q9Zn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksaWQodGhpcyxwKSxydC5lbGVtZW50QmFzaWMuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLm1vZGFsQ29udGFpbmVyIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2VlZWVlYiIsIiMyMjIiKX07CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZWVlZWViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmhlYWRpbmdDb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDQwcHg7CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgfQoKICAgICAgLmJ1dHRvbkNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwJSA1MCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGVlcy13aW5kb3dsYXllcgogICAgICAgIEBjbGlja2VkPSIke3RoaXMud2luZG93TGF5ZXJDbGlja2VkfSIKICAgICAgICAub3B0aW9ucz0ke3tibHVyOiEwfX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsQ29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmdDb250YWluZXIiPgogICAgICAgICAgICA8ZGVlcy1zcGlubmVyIC5zaXplPSR7NjB9PjwvZGVlcy1zcGlubmVyPgogICAgICAgICAgICA8aDE+VXBkYXRpbmcgdGhlIGFwcGxpY2F0aW9uLi4uPC9oMT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MiPgogICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhciAucHJvZ3Jlc3M9JHsuNX0+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b25Db250YWluZXIiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TW9yZSBpbmZvPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkNoYW5nZWxvZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4gPC9kZWVzLXdpbmRvd2xheWVyCiAgICAgID4+CiAgICBgfWFzeW5jIGRlc3Ryb3koKXt0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyl9d2luZG93TGF5ZXJDbGlja2VkKCl7fXN0YXRpY3tpZChpLGEpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgbHh0PWIoKCk9PntraigpfSk7dmFyIGN4dD1iKCgpPT57U3EoKX0pO3ZhciBkeHQ9YigoKT0+e1l5dCgpO2V4dCgpO3N4dCgpO2x4dCgpO2N4dCgpfSk7dmFyIGc0LFFhLHB4dCx6dz1iKCgpPT57dWUoKTtUdCgpO3FlKCk7RHQoKTtzMigpO3MyKCk7RzAoKTtsbygpO2xvKCk7ZzQ9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxRYT1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0scHh0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUiKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXSxsLGY9W10sZz1bXSx5LHY9W10sbT1bXSx4LE09W10sUz1bXSxGLF89W10saz1bXTt2YXIgTj1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEw9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpPYmplY3R9KV0sZD1bSSh7dHlwZTpTdHJpbmd9KV0sbD1bSSh7dHlwZTpTdHJpbmd9KV0seT1bSigpXSx4PVtKKCldLEY9W0ooKV0sZzQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIEEsZ2V0OkE9PkEuZXhlY3V0aW9uRW52aXJvbm1lbnQsc2V0OihBLHEpPT57QS5leGVjdXRpb25FbnZpcm9ubWVudD1xfX0sbWV0YWRhdGE6TH0sbixvKSxnNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvb3RQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4icm9vdFBhdGgiaW4gQSxnZXQ6QT0+QS5yb290UGF0aCxzZXQ6KEEscSk9PntBLnJvb3RQYXRoPXF9fSxtZXRhZGF0YTpMfSxjLHApLGc0KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ic2VsZWN0ZWRQYXRoImluIEEsZ2V0OkE9PkEuc2VsZWN0ZWRQYXRoLHNldDooQSxxKT0+e0Euc2VsZWN0ZWRQYXRoPXF9fSxtZXRhZGF0YTpMfSxmLGcpLGc0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHJlZURhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJ0cmVlRGF0YSJpbiBBLGdldDpBPT5BLnRyZWVEYXRhLHNldDooQSxxKT0+e0EudHJlZURhdGE9cX19LG1ldGFkYXRhOkx9LHYsbSksZzQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJpc0xvYWRpbmciaW4gQSxnZXQ6QT0+QS5pc0xvYWRpbmcsc2V0OihBLHEpPT57QS5pc0xvYWRpbmc9cX19LG1ldGFkYXRhOkx9LE0sUyksZzQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvck1lc3NhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJlcnJvck1lc3NhZ2UiaW4gQSxnZXQ6QT0+QS5lcnJvck1lc3NhZ2Usc2V0OihBLHEpPT57QS5lcnJvck1lc3NhZ2U9cX19LG1ldGFkYXRhOkx9LF8sayksZzQobnVsbCxlPXt2YWx1ZTppfSx0LHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6TH0sbnVsbCxhKSxOPWk9ZS52YWx1ZSxMJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KX1zdGF0aWMgZGVtbz0oKT0+d2AKICAgIDxkaXYgc3R5bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiA0MDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyI+CiAgICAgIDxkZWVzLXdvcmtzcGFjZS1maWxldHJlZT48L2RlZXMtd29ya3NwYWNlLWZpbGV0cmVlPgogICAgPC9kaXY+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdOyNlPVFhKHRoaXMsbixudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoTCl7dGhpcy4jZT1MfSN0PShRYSh0aGlzLG8pLFFhKHRoaXMsYywiLyIpKTtnZXQgcm9vdFBhdGgoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcm9vdFBhdGgoTCl7dGhpcy4jdD1MfSNhPShRYSh0aGlzLHApLFFhKHRoaXMsZiwiIikpO2dldCBzZWxlY3RlZFBhdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0ZWRQYXRoKEwpe3RoaXMuI2E9TH0jaT0oUWEodGhpcyxnKSxRYSh0aGlzLHYsW10pKTtnZXQgdHJlZURhdGEoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdHJlZURhdGEoTCl7dGhpcy4jaT1MfSNyPShRYSh0aGlzLG0pLFFhKHRoaXMsTSwhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaXNMb2FkaW5nKEwpe3RoaXMuI3I9TH0jcz0oUWEodGhpcyxTKSxRYSh0aGlzLF8sIiIpKTtnZXQgZXJyb3JNZXNzYWdlKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGVycm9yTWVzc2FnZShMKXt0aGlzLiNzPUx9ZXhwYW5kZWRQYXRocz0oUWEodGhpcyxrKSxuZXcgU2V0KTtsb2FkVHJlZVN0YXJ0ZWQ9ITE7Y2xpcGJvYXJkUGF0aD1udWxsO2NsaXBib2FyZE9wZXJhdGlvbj1udWxsO2ZpbGVXYXRjaGVyPW51bGw7cmVmcmVzaERlYm91bmNlVGltZW91dD1udWxsO2xhc3RFeGVjdXRpb25FbnZpcm9ubWVudD1udWxsO3N0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAudHJlZS1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICB9CgogICAgICAudHJlZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbjogMXB4IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDkzJSkiLCJoc2woMCAwJSAxNCUpIil9OwogICAgICB9CgogICAgICAudHJlZS1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDk1JSkiLCJoc2woMjEwIDUwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQwJSkiLCJoc2woMjEwIDEwMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5MiUpIiwiaHNsKDIxMCA1MCUgMjUlKSIpfTsKICAgICAgfQoKICAgICAgLmluZGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uLmV4cGFuZGVkIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5oaWRkZW4gewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5mb2xkZXIgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQ1IDgwJSA0NSUpIiwiaHNsKDQ1IDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmZpbGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24udHlwZXNjcmlwdCB7CiAgICAgICAgY29sb3I6IGhzbCgyMTEgNjAlIDQ4JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uamF2YXNjcmlwdCB7CiAgICAgICAgY29sb3I6IGhzbCg1MyA5MyUgNTQlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5qc29uIHsKICAgICAgICBjb2xvcjogaHNsKDQ1IDgwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmh0bWwgewogICAgICAgIGNvbG9yOiBoc2woMTQgNzclIDUyJSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uY3NzIHsKICAgICAgICBjb2xvcjogaHNsKDIyOCA3NyUgNTklKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5tYXJrZG93biB7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDg1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZXJyb3IgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiBoc2woMCA3MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4xKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQ/dGhpcy5pc0xvYWRpbmc/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nIj4KICAgICAgICAgIExvYWRpbmcgZmlsZXMuLi4KICAgICAgICA8L2Rpdj4KICAgICAgYDp0aGlzLmVycm9yTWVzc2FnZT93YAogICAgICAgIDxkaXYgY2xhc3M9ImVycm9yIj4KICAgICAgICAgICR7dGhpcy5lcnJvck1lc3NhZ2V9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0iZmlsZXRyZWUtdG9vbGJhciI+CiAgICAgICAgPHNwYW4gY2xhc3M9InRvb2xiYXItdGl0bGUiPkV4cGxvcmVyPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItYWN0aW9ucyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3RmlsZSgiLyIpfSB0aXRsZT0iTmV3IEZpbGUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmaWxlUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKX0gdGl0bGU9Ik5ldyBGb2xkZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmb2xkZXJQbHVzIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnRyZWVEYXRhLmxlbmd0aD09PTA/d2A8ZGl2IGNsYXNzPSJlbXB0eSI+Tm8gZmlsZXMgZm91bmQuPC9kaXY+YDp3YAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVlLWNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7dGhpcy5oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnV9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJUcmVlKHRoaXMudHJlZURhdGEpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICBgOndgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHkiPgogICAgICAgICAgTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IHByb3ZpZGVkLgogICAgICAgIDwvZGl2PgogICAgICBgfXJlbmRlclRyZWUoTCl7cmV0dXJuIEwubWFwKEE9PnRoaXMucmVuZGVyTm9kZShBKSl9cmVuZGVyTm9kZShMKXtsZXQgQT1MLnR5cGU9PT0iZGlyZWN0b3J5IixxPXRoaXMuZXhwYW5kZWRQYXRocy5oYXMoTC5wYXRoKSxDPUwucGF0aD09PXRoaXMuc2VsZWN0ZWRQYXRoLHo9dGhpcy5nZXRGaWxlSWNvbkNsYXNzKEwpO3JldHVybiB3YAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InRyZWUtaXRlbSAke0M/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgc3R5bGU9InBhZGRpbmctbGVmdDogJHs4K0wubGV2ZWwqMTZ9cHgiCiAgICAgICAgQGNsaWNrPSR7RT0+dGhpcy5oYW5kbGVJdGVtQ2xpY2soRSxMKX0KICAgICAgICBAY29udGV4dG1lbnU9JHtFPT50aGlzLmhhbmRsZUNvbnRleHRNZW51KEUsTCl9CiAgICAgID4KICAgICAgICA8c3BhbiBjbGFzcz0iZXhwYW5kLWljb24gJHtxPyJleHBhbmRlZCI6IiJ9ICR7QT8iIjoiaGlkZGVuIn0iPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hldnJvblJpZ2h0In0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtaWNvbiAke3p9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLmdldEZpbGVJY29uKEwpfSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1uYW1lIj4ke0wubmFtZX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICAke0EmJnEmJkwuY2hpbGRyZW4/dGhpcy5yZW5kZXJUcmVlKEwuY2hpbGRyZW4pOiIifQogICAgYH1nZXRGaWxlSWNvbihMKXtpZihMLnR5cGU9PT0iZGlyZWN0b3J5IilyZXR1cm4gdGhpcy5leHBhbmRlZFBhdGhzLmhhcyhMLnBhdGgpPyJsdWNpZGU6Zm9sZGVyT3BlbiI6Imx1Y2lkZTpmb2xkZXIiO3N3aXRjaChMLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzb24iOnJldHVybiJsdWNpZGU6ZmlsZUpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJjc3MiOmNhc2Uic2NzcyI6Y2FzZSJsZXNzIjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlIm1kIjpyZXR1cm4ibHVjaWRlOmZpbGVUZXh0IjtjYXNlInBuZyI6Y2FzZSJqcGciOmNhc2UianBlZyI6Y2FzZSJnaWYiOmNhc2Uic3ZnIjpyZXR1cm4ibHVjaWRlOmltYWdlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6ZmlsZSJ9fWdldEZpbGVJY29uQ2xhc3MoTCl7aWYoTC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuImZvbGRlciI7c3dpdGNoKEwubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpKXtjYXNlInRzIjpjYXNlInRzeCI6cmV0dXJuInR5cGVzY3JpcHQiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4iamF2YXNjcmlwdCI7Y2FzZSJqc29uIjpyZXR1cm4ianNvbiI7Y2FzZSJodG1sIjpyZXR1cm4iaHRtbCI7Y2FzZSJjc3MiOmNhc2Uic2NzcyI6Y2FzZSJsZXNzIjpyZXR1cm4iY3NzIjtjYXNlIm1kIjpyZXR1cm4ibWFya2Rvd24iO2RlZmF1bHQ6cmV0dXJuImZpbGUifX1hc3luYyBoYW5kbGVJdGVtQ2xpY2soTCxBKXtMLnN0b3BQcm9wYWdhdGlvbigpLEEudHlwZT09PSJkaXJlY3RvcnkiP2F3YWl0IHRoaXMudG9nZ2xlRGlyZWN0b3J5KEEpOih0aGlzLnNlbGVjdGVkUGF0aD1BLnBhdGgsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsZS1zZWxlY3QiLHtkZXRhaWw6e3BhdGg6QS5wYXRoLG5hbWU6QS5uYW1lfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX1hc3luYyB0b2dnbGVEaXJlY3RvcnkoTCl7dGhpcy5leHBhbmRlZFBhdGhzLmhhcyhMLnBhdGgpP3RoaXMuZXhwYW5kZWRQYXRocy5kZWxldGUoTC5wYXRoKToodGhpcy5leHBhbmRlZFBhdGhzLmFkZChMLnBhdGgpLCghTC5jaGlsZHJlbnx8TC5jaGlsZHJlbi5sZW5ndGg9PT0wKSYmYXdhaXQgdGhpcy5sb2FkRGlyZWN0b3J5Q29udGVudHMoTCkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFzeW5jIGxvYWREaXJlY3RvcnlDb250ZW50cyhMKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgQT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoTC5wYXRoKTtMLmNoaWxkcmVuPXRoaXMuc29ydEVudHJpZXMoQSkubWFwKHE9Pih7Li4ucSxsZXZlbDpMLmxldmVsKzEsZXhwYW5kZWQ6ITEsY2hpbGRyZW46cS50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKEEpe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIGRpcmVjdG9yeSAke0wucGF0aH06YCxBKX19YXN5bmMgaGFuZGxlQ29udGV4dE1lbnUoTCxBKXtMLnByZXZlbnREZWZhdWx0KCksTC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgcT1bXTtBLnR5cGU9PT0iZGlyZWN0b3J5IiYmcS5wdXNoKHtuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246YXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKEEucGF0aCl9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKEEucGF0aCl9LHtkaXZpZGVyOiEwfSkscS5wdXNoKHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJwZW5jaWwiLGFjdGlvbjphc3luYygpPT50aGlzLnJlbmFtZUl0ZW0oQSl9LHtuYW1lOiJEdXBsaWNhdGUiLGljb25OYW1lOiJmaWxlcyIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuZHVwbGljYXRlSXRlbShBKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixhY3Rpb246YXN5bmMoKT0+dGhpcy5jb3B5SXRlbShBKX0pLEEudHlwZT09PSJkaXJlY3RvcnkiJiZ0aGlzLmNsaXBib2FyZFBhdGgmJnEucHVzaCh7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT50aGlzLnBhc3RlSXRlbShBLnBhdGgpfSkscS5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToidHJhc2gyIixhY3Rpb246YXN5bmMoKT0+dGhpcy5kZWxldGVJdGVtKEEpfSksYXdhaXQgVXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoTCxxKX1hc3luYyBoYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoTCl7aWYoTC50YXJnZXQuY2xvc2VzdCgiLnRyZWUtaXRlbSIpKXJldHVybjtMLnByZXZlbnREZWZhdWx0KCksTC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgcT1be25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToiZmlsZVBsdXMiLGFjdGlvbjphc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKX0se25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJmb2xkZXJQbHVzIixhY3Rpb246YXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKX1dO3RoaXMuY2xpcGJvYXJkUGF0aCYmcS5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT50aGlzLnBhc3RlSXRlbSgiLyIpfSksYXdhaXQgVXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoTCxxKX1hc3luYyBzaG93SW5wdXRNb2RhbChMKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgQT0+e2xldCBxPWF3YWl0IG4xLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6TC5oZWFkaW5nLHdpZHRoOiJzbWFsbCIsY29udGVudDp3YAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHtMLmxhYmVsfQogICAgICAgICAgICAudmFsdWU9JHtMLnZhbHVlfHwiIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgej0+e2F3YWl0IHouZGVzdHJveSgpLEEobnVsbCl9fSx7bmFtZTpMLmJ1dHRvbk5hbWV8fCJDcmVhdGUiLGFjdGlvbjphc3luYyB6PT57bGV0ICQ9ei5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwgLmNvbnRlbnQiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik/LnZhbHVlPy50cmltKCl8fCIiO2F3YWl0IHouZGVzdHJveSgpLEEoJHx8bnVsbCl9fV19KTthd2FpdCBxLnVwZGF0ZUNvbXBsZXRlO2xldCBDPXEuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1vZGFsIC5jb250ZW50Iik7aWYoQyl7bGV0IHo9Qy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTt6JiYoYXdhaXQgei51cGRhdGVDb21wbGV0ZSx6LmZvY3VzKCkpfX0pfWFzeW5jIGNyZWF0ZU5ld0ZpbGUoTCl7bGV0IEE9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiTmV3IEZpbGUiLGxhYmVsOiJGaWxlIG5hbWUifSk7aWYoIUF8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgcT1MPT09Ii8iP2AvJHtBfWA6YCR7TH0vJHtBfWA7dHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKHEsIiIpLGF3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtY3JlYXRlZCIse2RldGFpbDp7cGF0aDpxfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKEMpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZmlsZToiLEMpfX1hc3luYyBjcmVhdGVOZXdGb2xkZXIoTCl7bGV0IEE9YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiTmV3IEZvbGRlciIsbGFiZWw6IkZvbGRlciBuYW1lIn0pO2lmKCFBfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IHE9TD09PSIvIj9gLyR7QX1gOmAke0x9LyR7QX1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKHEpLGF3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZvbGRlci1jcmVhdGVkIix7ZGV0YWlsOntwYXRoOnF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goQyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBmb2xkZXI6IixDKX19YXN5bmMgZGVsZXRlSXRlbShMKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhY29uZmlybShgRGVsZXRlICR7TC5uYW1lfT9gKSkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucm0oTC5wYXRoLHtyZWN1cnNpdmU6TC50eXBlPT09ImRpcmVjdG9yeSJ9KSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLWRlbGV0ZWQiLHtkZXRhaWw6e3BhdGg6TC5wYXRoLHR5cGU6TC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKHEpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgaXRlbToiLHEpfX1hc3luYyByZW5hbWVJdGVtKEwpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgQT1hd2FpdCB0aGlzLnNob3dJbnB1dE1vZGFsKHtoZWFkaW5nOiJSZW5hbWUiLGxhYmVsOiJOZXcgbmFtZSIsdmFsdWU6TC5uYW1lLGJ1dHRvbk5hbWU6IlJlbmFtZSJ9KTtpZighQXx8QT09PUwubmFtZSlyZXR1cm47bGV0IHE9TC5wYXRoLnN1YnN0cmluZygwLEwucGF0aC5sYXN0SW5kZXhPZigiLyIpKXx8Ii8iLEM9cT09PSIvIj9gLyR7QX1gOmAke3F9LyR7QX1gO3RyeXtpZihMLnR5cGU9PT0iZmlsZSIpe2xldCB6PWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoTC5wYXRoKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShDLHopLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucm0oTC5wYXRoKX1lbHNlIGF3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKEwucGF0aCxDKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKEwucGF0aCx7cmVjdXJzaXZlOiEwfSk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1yZW5hbWVkIix7ZGV0YWlsOntvbGRQYXRoOkwucGF0aCxuZXdQYXRoOkMsdHlwZTpMLnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goeil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmFtZSBpdGVtOiIseil9fWFzeW5jIGR1cGxpY2F0ZUl0ZW0oTCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBBPUwucGF0aC5zdWJzdHJpbmcoMCxMLnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixxO2lmKEwudHlwZT09PSJmaWxlIil7bGV0IHo9TC5uYW1lLmxhc3RJbmRleE9mKCIuIik7aWYoej4wKXtsZXQgRT1MLm5hbWUuc3Vic3RyaW5nKDAseiksVD1MLm5hbWUuc3Vic3RyaW5nKHopO3E9YCR7RX1fY29weSR7VH1gfWVsc2UgcT1gJHtMLm5hbWV9X2NvcHlgfWVsc2UgcT1gJHtMLm5hbWV9X2NvcHlgO2xldCBDPUE9PT0iLyI/YC8ke3F9YDpgJHtBfS8ke3F9YDt0cnl7aWYoTC50eXBlPT09ImZpbGUiKXtsZXQgej1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKEwucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoQyx6KX1lbHNlIGF3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKEwucGF0aCxDKTthd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLWR1cGxpY2F0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6TC5wYXRoLG5ld1BhdGg6Qyx0eXBlOkwudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaCh6KXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZHVwbGljYXRlIGl0ZW06Iix6KX19YXN5bmMgY29weUl0ZW0oTCl7dGhpcy5jbGlwYm9hcmRQYXRoPUwucGF0aCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj0iY29weSJ9YXN5bmMgcGFzdGVJdGVtKEwpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhdGhpcy5jbGlwYm9hcmRQYXRoKXJldHVybjtsZXQgQT10aGlzLmNsaXBib2FyZFBhdGguc3BsaXQoIi8iKS5wb3AoKXx8InBhc3RlZCIscT1MPT09Ii8iP2AvJHtBfWA6YCR7TH0vJHtBfWA7dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyh0aGlzLmNsaXBib2FyZFBhdGgpKXtjb25zb2xlLmVycm9yKCJTb3VyY2UgZmlsZSBubyBsb25nZXIgZXhpc3RzIiksdGhpcy5jbGlwYm9hcmRQYXRoPW51bGwsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249bnVsbDtyZXR1cm59dHJ5e2xldCBDPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUodGhpcy5jbGlwYm9hcmRQYXRoKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShxLEMpfWNhdGNoe2F3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKHRoaXMuY2xpcGJvYXJkUGF0aCxxKX1hd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLXBhc3RlZCIse2RldGFpbDp7c291cmNlUGF0aDp0aGlzLmNsaXBib2FyZFBhdGgsdGFyZ2V0UGF0aDpxfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGx9Y2F0Y2goQyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHBhc3RlIGl0ZW06IixDKX19YXN5bmMgY29weURpcmVjdG9yeUNvbnRlbnRzKEwsQSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQubWtkaXIoQSk7bGV0IHE9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKEwpO2ZvcihsZXQgQyBvZiBxKXtsZXQgej1MPT09Ii8iP2AvJHtDLm5hbWV9YDpgJHtMfS8ke0MubmFtZX1gLEU9QT09PSIvIj9gLyR7Qy5uYW1lfWA6YCR7QX0vJHtDLm5hbWV9YDtpZihDLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyh6LEUpO2Vsc2V7bGV0IFQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSh6KTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShFLFQpfX19YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5sb2FkVHJlZSgpfWFzeW5jIHVwZGF0ZWQoTCl7TC5oYXMoImV4ZWN1dGlvbkVudmlyb25tZW50IikmJih0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudCE9PXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJih0aGlzLnN0b3BGaWxlV2F0Y2hlcigpLHRoaXMubGFzdEV4ZWN1dGlvbkVudmlyb25tZW50PXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJihhd2FpdCB0aGlzLmxvYWRUcmVlKCksdGhpcy5zdGFydEZpbGVXYXRjaGVyKCkpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0KSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9bnVsbCl9c3RhcnRGaWxlV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMuZmlsZVdhdGNoZXIpKXRyeXt0aGlzLmZpbGVXYXRjaGVyPXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud2F0Y2goIi8iLChMLEEpPT57dGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0KSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMucmVmcmVzaCgpfSwzMDApfSx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2goTCl7Y29uc29sZS53YXJuKCJGaWxlIHdhdGNoaW5nIG5vdCBzdXBwb3J0ZWQ6IixMKX19c3RvcEZpbGVXYXRjaGVyKCl7dGhpcy5maWxlV2F0Y2hlciYmKHRoaXMuZmlsZVdhdGNoZXIuc3RvcCgpLHRoaXMuZmlsZVdhdGNoZXI9bnVsbCl9YXN5bmMgbG9hZFRyZWUoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5sb2FkVHJlZVN0YXJ0ZWQpe3RoaXMubG9hZFRyZWVTdGFydGVkPSEwLHRoaXMuaXNMb2FkaW5nPSEwLHRoaXMuZXJyb3JNZXNzYWdlPSIiO3RyeXt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5fHxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKTtsZXQgTD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIodGhpcy5yb290UGF0aCk7dGhpcy50cmVlRGF0YT10aGlzLnNvcnRFbnRyaWVzKEwpLm1hcChBPT4oey4uLkEsbGV2ZWw6MCxleHBhbmRlZDohMSxjaGlsZHJlbjpBLnR5cGU9PT0iZGlyZWN0b3J5Ij9bXTp2b2lkIDB9KSl9Y2F0Y2goTCl7dGhpcy5lcnJvck1lc3NhZ2U9YEZhaWxlZCB0byBsb2FkIGZpbGVzOiAke0x9YCxjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCBmaWxlIHRyZWU6IixMKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMX1maW5hbGx5e3RoaXMuaXNMb2FkaW5nPSExfX19c29ydEVudHJpZXMoTCl7cmV0dXJuIEwuc29ydCgoQSxxKT0+QS50eXBlIT09cS50eXBlP0EudHlwZT09PSJkaXJlY3RvcnkiPy0xOjE6QS5uYW1lLmxvY2FsZUNvbXBhcmUocS5uYW1lKSl9YXN5bmMgcmVmcmVzaCgpe3RoaXMuZXhwYW5kZWRQYXRocy5jbGVhcigpLHRoaXMubG9hZFRyZWVTdGFydGVkPSExLGF3YWl0IHRoaXMubG9hZFRyZWUoKX1zZWxlY3RGaWxlKEwpe3RoaXMuc2VsZWN0ZWRQYXRoPUx9c3RhdGlje1FhKGksYSl9fTtyZXR1cm4gTj1pfSkoKX0pO3ZhciBDaixyZCxoeHQsX2o9YigoKT0+e3VlKCk7cWUoKTt1bygpO0NqPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0scmQ9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LGh4dD0oKCk9PntsZXQgdD1baGUoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXciKV0sZSxhPVtdLGkscj14ZSxzLG49W10sbz1bXSxkLGM9W10scD1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cz1bSSh7dHlwZTpTdHJpbmd9KV0sZD1bSSh7dHlwZTpBcnJheX0pXSxDaih0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmc9PiJjb21tYW5kImluIGcsZ2V0Omc9PmcuY29tbWFuZCxzZXQ6KGcseSk9PntnLmNvbW1hbmQ9eX19LG1ldGFkYXRhOmZ9LG4sbyksQ2oodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zz0+ImxpbmVzImluIGcsZ2V0Omc9PmcubGluZXMsc2V0OihnLHkpPT57Zy5saW5lcz15fX0sbWV0YWRhdGE6Zn0sYyxwKSxDaihudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpmfSxudWxsLGEpLGw9aT1lLnZhbHVlLGYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Zn0pfXN0YXRpYyBkZW1vPSgpPT53YAogICAgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcKICAgICAgLmNvbW1hbmQ9JHsicG5wbSBpbnN0YWxsIn0KICAgICAgLmxpbmVzPSR7WyJQYWNrYWdlczogKzQyIiwiUHJvZ3Jlc3M6IHJlc29sdmVkIDE0MiwgcmV1c2VkIDE0MCwgZG93bmxvYWRlZCAyLCBhZGRlZCA0MiwgZG9uZSIsIiIsImRlcGVuZGVuY2llczoiLCIrIEBwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSA0LjIuMyIsIisgdHlwZXNjcmlwdCA1LjMuMyIsIiIsIkRvbmUgaW4gMi4zcyJdfQogICAgPjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldz4KICBgO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9cmQodGhpcyxuLCIiKTtnZXQgY29tbWFuZCgpe3JldHVybiB0aGlzLiNlfXNldCBjb21tYW5kKGYpe3RoaXMuI2U9Zn0jdD0ocmQodGhpcyxvKSxyZCh0aGlzLGMsW10pKTtnZXQgbGluZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGluZXMoZil7dGhpcy4jdD1mfXRlcm1pbmFsPShyZCh0aGlzLHApLG51bGwpO2ZpdEFkZG9uPW51bGw7bGFzdExpbmVDb3VudD0wO3Jlc2l6ZU9ic2VydmVyPW51bGw7dGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsO3N0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXByZXZpZXcgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXItY29tbWFuZCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgIH0KCiAgICAgICN4dGVybS1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLyogQ3VzdG9tIHNjcm9sbGJhciBmb3IgeHRlcm0gdmlld3BvcnQgKi8KICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNzAlKSIsImhzbCgwIDAlIDM1JSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1wcmV2aWV3Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm1pbmFsLWhlYWRlci1pY29uIj4kPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRlcm1pbmFsLWhlYWRlci1jb21tYW5kIj4ke3RoaXMuY29tbWFuZHx8IldhaXRpbmcuLi4ifTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBpZD0ieHRlcm0tY29udGFpbmVyIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWdldFRlcm1pbmFsVGhlbWUoZil7cmV0dXJuIGY/e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsY3Vyc29yQWNjZW50OiIjZmZmZmZmIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiJyZ2JhKDAsIDAsIDAsIDAuMikifTp7YmFja2dyb3VuZDoiIzAwMDAwMCIsZm9yZWdyb3VuZDoiI2NjY2NjYyIsY3Vyc29yOiIjY2NjY2NjIixjdXJzb3JBY2NlbnQ6IiMwMDAwMDAiLHNlbGVjdGlvbkJhY2tncm91bmQ6InJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSJ9fWFzeW5jIGZpcnN0VXBkYXRlZChmKXtzdXBlci5maXJzdFVwZGF0ZWQoZik7bGV0IGc9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgieHRlcm0tY29udGFpbmVyIik7aWYoIWcpcmV0dXJuO2xldCB5PWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHY9eS50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuLG09TDIuZ2V0SW5zdGFuY2UoKSxbeCxNXT1hd2FpdCBQcm9taXNlLmFsbChbbS5sb2FkWHRlcm0oKSxtLmxvYWRYdGVybUZpdEFkZG9uKCldKTt0aGlzLnRlcm1pbmFsPW5ldyB4LlRlcm1pbmFsKHtjb252ZXJ0RW9sOiEwLGN1cnNvckJsaW5rOiExLGRpc2FibGVTdGRpbjohMCxmb250U2l6ZToxMixmb250RmFtaWx5OiInU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlIix0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUodiksc2Nyb2xsYmFjazoxZTN9KSx0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249eS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShTPT57dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwub3B0aW9ucy50aGVtZT10aGlzLmdldFRlcm1pbmFsVGhlbWUoUykpfSksdGhpcy5maXRBZGRvbj1uZXcgTS5GaXRBZGRvbix0aGlzLnRlcm1pbmFsLmxvYWRBZGRvbih0aGlzLmZpdEFkZG9uKSx0aGlzLnRlcm1pbmFsLm9wZW4oZyksdGhpcy5maXRBZGRvbi5maXQoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuZml0QWRkb24mJnRoaXMuZml0QWRkb24uZml0KCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZyksdGhpcy53cml0ZU5ld0xpbmVzKCl9YXN5bmMgdXBkYXRlZChmKXtzdXBlci51cGRhdGVkKGYpLGYuaGFzKCJsaW5lcyIpJiZ0aGlzLndyaXRlTmV3TGluZXMoKX13cml0ZU5ld0xpbmVzKCl7aWYoIXRoaXMudGVybWluYWwpcmV0dXJuO2xldCBmPXRoaXMubGluZXMuc2xpY2UodGhpcy5sYXN0TGluZUNvdW50KTtmb3IobGV0IGcgb2YgZil0aGlzLnRlcm1pbmFsLndyaXRlbG4oZyk7dGhpcy5sYXN0TGluZUNvdW50PXRoaXMubGluZXMubGVuZ3RofWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5yZXNpemVPYnNlcnZlciYmKHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bnVsbCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uJiYodGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLmRpc3Bvc2UoKSx0aGlzLnRlcm1pbmFsPW51bGwpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YWRkTGluZShmKXt0aGlzLmxpbmVzPVsuLi50aGlzLmxpbmVzLGZdfWNsZWFyKCl7dGhpcy5saW5lcz1bXSx0aGlzLmxhc3RMaW5lQ291bnQ9MCx0aGlzLnRlcm1pbmFsJiZ0aGlzLnRlcm1pbmFsLmNsZWFyKCl9c3RhdGlje3JkKGksYSl9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBXbCxpcix1eHQsVGo9YigoKT0+e3VlKCk7cWUoKTtEdCgpO3MyKCk7V2w9ZnVuY3Rpb24odCxlLGEsaSxyLHMpe2Z1bmN0aW9uIG4oeCl7aWYoeCE9PXZvaWQgMCYmdHlwZW9mIHghPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geH1mb3IodmFyIG89aS5raW5kLGQ9bz09PSJnZXR0ZXIiPyJnZXQiOm89PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IWUmJnQ/aS5zdGF0aWM/dDp0LnByb3RvdHlwZTpudWxsLHA9ZXx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGwsZj0hMSxnPWEubGVuZ3RoLTE7Zz49MDtnLS0pe3ZhciB5PXt9O2Zvcih2YXIgdiBpbiBpKXlbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXkuYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3kuYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeCl7aWYoZil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtzLnB1c2gobih4fHxudWxsKSl9O3ZhciBtPSgwLGFbZ10pKG89PT0iYWNjZXNzb3IiP3tnZXQ6cC5nZXQsc2V0OnAuc2V0fTpwW2RdLHkpO2lmKG89PT0iYWNjZXNzb3IiKXtpZihtPT09dm9pZCAwKWNvbnRpbnVlO2lmKG09PT1udWxsfHx0eXBlb2YgbSE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGw9bihtLmdldCkpJiYocC5nZXQ9bCksKGw9bihtLnNldCkpJiYocC5zZXQ9bCksKGw9bihtLmluaXQpKSYmci51bnNoaWZ0KGwpfWVsc2UobD1uKG0pKSYmKG89PT0iZmllbGQiP3IudW5zaGlmdChsKTpwW2RdPWwpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSxwKSxmPSEwfSxpcj1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sdXh0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W107dmFyIEY9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKHJbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3M9W0koe3R5cGU6T2JqZWN0fSldLGQ9W0ooKV0sbD1bSigpXSx5PVtKKCldLHg9W0ooKV0sV2wodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIGssZ2V0Oms9PmsuZXhlY3V0aW9uRW52aXJvbm1lbnQsc2V0OihrLE4pPT57ay5leGVjdXRpb25FbnZpcm9ubWVudD1OfX0sbWV0YWRhdGE6X30sbixvKSxXbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNjcmlwdHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzY3JpcHRzImluIGssZ2V0Oms9Pmsuc2NyaXB0cyxzZXQ6KGssTik9PntrLnNjcmlwdHM9Tn19LG1ldGFkYXRhOl99LGMscCksV2wodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWNrYWdlU3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4icGFja2FnZVN0YXR1cyJpbiBrLGdldDprPT5rLnBhY2thZ2VTdGF0dXMsc2V0OihrLE4pPT57ay5wYWNrYWdlU3RhdHVzPU59fSxtZXRhZGF0YTpffSxmLGcpLFdsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0ZGF0ZWRQYWNrYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+Im91dGRhdGVkUGFja2FnZXMiaW4gayxnZXQ6az0+ay5vdXRkYXRlZFBhY2thZ2VzLHNldDooayxOKT0+e2sub3V0ZGF0ZWRQYWNrYWdlcz1OfX0sbWV0YWRhdGE6X30sdixtKSxXbCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzQ2hlY2tpbmdQYWNrYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImlzQ2hlY2tpbmdQYWNrYWdlcyJpbiBrLGdldDprPT5rLmlzQ2hlY2tpbmdQYWNrYWdlcyxzZXQ6KGssTik9PntrLmlzQ2hlY2tpbmdQYWNrYWdlcz1OfX0sbWV0YWRhdGE6X30sTSxTKSxXbChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLGEpLEY9aT1lLnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfSNlPWlyKHRoaXMsbixudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoXyl7dGhpcy4jZT1ffSN0PShpcih0aGlzLG8pLGlyKHRoaXMsYyx7fSkpO2dldCBzY3JpcHRzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNjcmlwdHMoXyl7dGhpcy4jdD1ffSNhPShpcih0aGlzLHApLGlyKHRoaXMsZiwiaWRsZSIpKTtnZXQgcGFja2FnZVN0YXR1cygpe3JldHVybiB0aGlzLiNhfXNldCBwYWNrYWdlU3RhdHVzKF8pe3RoaXMuI2E9X30jaT0oaXIodGhpcyxnKSxpcih0aGlzLHYsW10pKTtnZXQgb3V0ZGF0ZWRQYWNrYWdlcygpe3JldHVybiB0aGlzLiNpfXNldCBvdXRkYXRlZFBhY2thZ2VzKF8pe3RoaXMuI2k9X30jcj0oaXIodGhpcyxtKSxpcih0aGlzLE0sITEpKTtnZXQgaXNDaGVja2luZ1BhY2thZ2VzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGlzQ2hlY2tpbmdQYWNrYWdlcyhfKXt0aGlzLiNyPV99cGVuZGluZ1BhY2thZ2VVcGRhdGU9KGlyKHRoaXMsUyksITEpO2hhbmRsZVByb2Nlc3NDb21wbGV0ZT1fPT57dGhpcy5wZW5kaW5nUGFja2FnZVVwZGF0ZSYmKHRoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITEsc2V0VGltZW91dCgoKT0+dGhpcy5jaGVja1BhY2thZ2VzKCksNTAwKSl9O3N0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYm90dG9tLWJhciB7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDYlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2lkZ2V0OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAud2lkZ2V0LXNlcGFyYXRvciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC53aWRnZXQucnVubmluZyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LnVwLXRvLWRhdGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDE0MiA3MCUgMzUlKSIsImhzbCgxNDIgNzAlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQudXBkYXRlcy1hdmFpbGFibGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDM4IDkyJSA0NSUpIiwiaHNsKDM4IDkyJSA1NSUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LmVycm9yIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5zcGlubmluZyB7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgLnNwYWNlciB7CiAgICAgICAgZmxleDogMTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1iYXIiPgogICAgICAgIDwhLS0gU2NyaXB0IFJ1bm5lciBXaWRnZXQgLS0+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9IndpZGdldCIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlU2NyaXB0Q2xpY2t9CiAgICAgICAgICB0aXRsZT0iUnVuIHNjcmlwdCIKICAgICAgICA+CiAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpwbGF5In0KICAgICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+U2NyaXB0czwvc3Bhbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+CgogICAgICAgIDwhLS0gUGFja2FnZSBDaGVja2VyIFdpZGdldCAtLT4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0id2lkZ2V0ICR7dGhpcy5nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKX0iCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVBhY2thZ2VDbGlja30KICAgICAgICAgIHRpdGxlPSIke3RoaXMuZ2V0UGFja2FnZVRvb2x0aXAoKX0iCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0ke3RoaXMuZ2V0UGFja2FnZUljb24oKX0KICAgICAgICAgICAgaWNvblNpemU9IjEyIgogICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8ic3Bpbm5pbmciOiIifSIKICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPiR7dGhpcy5nZXRQYWNrYWdlU3RhdHVzVGV4dCgpfTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KCiAgICAgICAgPCEtLSBGdXR1cmUgd2lkZ2V0cyBjYW4gYmUgYWRkZWQgaGVyZSAtLT4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicHJvY2Vzcy1jb21wbGV0ZSIsdGhpcy5oYW5kbGVQcm9jZXNzQ29tcGxldGUpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicHJvY2Vzcy1jb21wbGV0ZSIsdGhpcy5oYW5kbGVQcm9jZXNzQ29tcGxldGUpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMubG9hZFNjcmlwdHMoKSxhd2FpdCB0aGlzLmNoZWNrUGFja2FnZXMoKX1hc3luYyB1cGRhdGVkKF8pe18uaGFzKCJleGVjdXRpb25FbnZpcm9ubWVudCIpJiZ0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYoYXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpLGF3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpKX1hc3luYyBsb2FkU2NyaXB0cygpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL3BhY2thZ2UuanNvbiIpKXt0aGlzLnNjcmlwdHM9e307cmV0dXJufWxldCBrPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoIi9wYWNrYWdlLmpzb24iKSxOPUpTT04ucGFyc2Uoayk7dGhpcy5zY3JpcHRzPU4uc2NyaXB0c3x8e319Y2F0Y2goXyl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gbG9hZCBzY3JpcHRzIGZyb20gcGFja2FnZS5qc29uOiIsXyksdGhpcy5zY3JpcHRzPXt9fX1hc3luYyBoYW5kbGVTY3JpcHRDbGljayhfKXtfLnN0b3BQcm9wYWdhdGlvbigpO2xldCBrPU9iamVjdC5rZXlzKHRoaXMuc2NyaXB0cyk7aWYoay5sZW5ndGg9PT0wKXJldHVybjtsZXQgTj1rLm1hcChMPT4oe25hbWU6TCxpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHRoaXMucnVuU2NyaXB0KEwpfX0pKTthd2FpdCBVdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhfLE4pfWFzeW5jIHJ1blNjcmlwdChfKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IGs9e3R5cGU6InNjcmlwdCIsbGFiZWw6Xyxjb21tYW5kOiJwbnBtIixhcmdzOlsicnVuIixfXSxtZXRhZGF0YTp7c2NyaXB0TmFtZTpffX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDprfSkpfWFzeW5jIGNoZWNrUGFja2FnZXMoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7dGhpcy5wYWNrYWdlU3RhdHVzPSJpZGxlIjtyZXR1cm59dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL3BhY2thZ2UuanNvbiIpKXt0aGlzLnBhY2thZ2VTdGF0dXM9ImlkbGUiO3JldHVybn10aGlzLnBhY2thZ2VTdGF0dXM9ImNoZWNraW5nIix0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz0hMDtsZXQgaz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKCJwbnBtIixbIm91dGRhdGVkIiwiLS1qc29uIl0pLE49IiIsTD1rLm91dHB1dC5nZXRSZWFkZXIoKTsoYXN5bmMoKT0+e3RyeXtmb3IoOzspe2xldHtkb25lOkMsdmFsdWU6en09YXdhaXQgTC5yZWFkKCk7aWYoQylicmVhaztOKz16fX1jYXRjaHt9fSkoKTtsZXQgcT1hd2FpdCBQcm9taXNlLnJhY2UoW2suZXhpdCxuZXcgUHJvbWlzZShDPT5zZXRUaW1lb3V0KCgpPT5DKC0xKSwxZTQpKV0pO3RyeXthd2FpdCBMLmNhbmNlbCgpfWNhdGNoe31pZihxPT09LTEpe2NvbnNvbGUud2FybigiUGFja2FnZSBjaGVjayB0aW1lZCBvdXQiKSx0aGlzLnBhY2thZ2VTdGF0dXM9ImVycm9yIjtyZXR1cm59aWYocT09PTApdGhpcy5wYWNrYWdlU3RhdHVzPSJ1cC10by1kYXRlIix0aGlzLm91dGRhdGVkUGFja2FnZXM9W107ZWxzZSB0cnl7bGV0IEM9SlNPTi5wYXJzZShOKTt0aGlzLm91dGRhdGVkUGFja2FnZXM9dGhpcy5wYXJzZU91dGRhdGVkUGFja2FnZXMoQyksdGhpcy5wYWNrYWdlU3RhdHVzPXRoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGg+MD8idXBkYXRlcy1hdmFpbGFibGUiOiJ1cC10by1kYXRlIn1jYXRjaHt0aGlzLnBhY2thZ2VTdGF0dXM9InVwZGF0ZXMtYXZhaWxhYmxlIix0aGlzLm91dGRhdGVkUGFja2FnZXM9W119fWNhdGNoKF8pe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXM6IixfKSx0aGlzLnBhY2thZ2VTdGF0dXM9ImVycm9yIn1maW5hbGx5e3RoaXMuaXNDaGVja2luZ1BhY2thZ2VzPSExfX1wYXJzZU91dGRhdGVkUGFja2FnZXMoXyl7bGV0IGs9W107aWYodHlwZW9mIF89PSJvYmplY3QiJiZfIT09bnVsbClmb3IobGV0W04sTF1vZiBPYmplY3QuZW50cmllcyhfKSl7bGV0IEE9TDtrLnB1c2goe25hbWU6TixjdXJyZW50OkEuY3VycmVudHx8InVua25vd24iLHdhbnRlZDpBLndhbnRlZHx8QS5jdXJyZW50fHwidW5rbm93biIsbGF0ZXN0OkEubGF0ZXN0fHxBLndhbnRlZHx8InVua25vd24iLHR5cGU6QS5kZXBlbmRlbmN5VHlwZT09PSJkZXZEZXBlbmRlbmNpZXMiPyJkZXZEZXBlbmRlbmNpZXMiOiJkZXBlbmRlbmNpZXMifSl9cmV0dXJuIGt9YXN5bmMgaGFuZGxlUGFja2FnZUNsaWNrKF8pe18uc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGs9W107aWYoay5wdXNoKHtuYW1lOnRoaXMuaXNDaGVja2luZ1BhY2thZ2VzPyJDaGVja2luZy4uLiI6IkNoZWNrIGZvciB1cGRhdGVzIixpY29uTmFtZToibHVjaWRlOnJlZnJlc2hDdyIsYWN0aW9uOmFzeW5jKCk9PntpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm47bGV0IE49e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoiY2hlY2sgcGFja2FnZXMiLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJvdXRkYXRlZCJdfTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOk59KSksc2V0VGltZW91dCgoKT0+dGhpcy5jaGVja1BhY2thZ2VzKCksM2UzKX19KSx0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjApe2sucHVzaCh7ZGl2aWRlcjohMH0pO2xldCBOPXRoaXMub3V0ZGF0ZWRQYWNrYWdlcy5zbGljZSgwLDEwKTtmb3IobGV0IEwgb2YgTilrLnB1c2goe25hbWU6YCR7TC5uYW1lfTogJHtMLmN1cnJlbnR9IFx1MjE5MiAke0wubGF0ZXN0fWAsaWNvbk5hbWU6Imx1Y2lkZTpwYWNrYWdlIixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHRoaXMudXBkYXRlUGFja2FnZShMLm5hbWUpfX0pO3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGg+MTAmJmsucHVzaCh7bmFtZTpgLi4uIGFuZCAke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGgtMTB9IG1vcmVgLGljb25OYW1lOiJsdWNpZGU6bW9yZUhvcml6b250YWwiLGFjdGlvbjphc3luYygpPT57fX0pLGsucHVzaCh7ZGl2aWRlcjohMH0pLGsucHVzaCh7bmFtZToiVXBkYXRlIGFsbCBwYWNrYWdlcyIsaWNvbk5hbWU6Imx1Y2lkZTphcnJvd1VwQ2lyY2xlIixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHRoaXMudXBkYXRlQWxsUGFja2FnZXMoKX19KX1hd2FpdCBVdC5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhfLGspfWFzeW5jIHVwZGF0ZVBhY2thZ2UoXyl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITA7bGV0IGs9e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDpgdXBkYXRlICR7X31gLGNvbW1hbmQ6InBucG0iLGFyZ3M6WyJ1cGRhdGUiLCItLWxhdGVzdCIsX10sbWV0YWRhdGE6e3BhY2thZ2VOYW1lOl99fTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJydW4tcHJvY2VzcyIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOmt9KSl9YXN5bmMgdXBkYXRlQWxsUGFja2FnZXMoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47dGhpcy5wZW5kaW5nUGFja2FnZVVwZGF0ZT0hMDtsZXQgXz17dHlwZToicGFja2FnZS11cGRhdGUiLGxhYmVsOiJ1cGRhdGUgYWxsIixjb21tYW5kOiJwbnBtIixhcmdzOlsidXBkYXRlIiwiLS1sYXRlc3QiXX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpffSkpfWdldFBhY2thZ2VTdGF0dXNDbGFzcygpe3JldHVybiB0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8iIjp0aGlzLnBhY2thZ2VTdGF0dXN9Z2V0UGFja2FnZUljb24oKXtpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm4ibHVjaWRlOmxvYWRlcjIiO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuImx1Y2lkZTpjaGVja0NpcmNsZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuImx1Y2lkZTphbGVydENpcmNsZSI7Y2FzZSJlcnJvciI6cmV0dXJuImx1Y2lkZTp4Q2lyY2xlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6cGFja2FnZSJ9fWdldFBhY2thZ2VTdGF0dXNUZXh0KCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuIkNoZWNraW5nLi4uIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJVcCB0byBkYXRlIjtjYXNlInVwZGF0ZXMtYXZhaWxhYmxlIjpyZXR1cm5gJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RofSB1cGRhdGUke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGghPT0xPyJzIjoiIn1gO2Nhc2UiZXJyb3IiOnJldHVybiJDaGVjayBmYWlsZWQiO2RlZmF1bHQ6cmV0dXJuIlBhY2thZ2VzIn19Z2V0UGFja2FnZVRvb2x0aXAoKXtpZih0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcylyZXR1cm4iQ2hlY2tpbmcgZm9yIHBhY2thZ2UgdXBkYXRlcy4uLiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4iQWxsIHBhY2thZ2VzIGFyZSB1cCB0byBkYXRlIjtjYXNlInVwZGF0ZXMtYXZhaWxhYmxlIjpyZXR1cm5gJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RofSBwYWNrYWdlIHVwZGF0ZSR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aCE9PTE/InMiOiIifSBhdmFpbGFibGVgO2Nhc2UiZXJyb3IiOnJldHVybiJGYWlsZWQgdG8gY2hlY2sgZm9yIHVwZGF0ZXMuIENsaWNrIHRvIHJldHJ5LiI7ZGVmYXVsdDpyZXR1cm4iQ2xpY2sgdG8gY2hlY2sgZm9yIHBhY2thZ2UgdXBkYXRlcyJ9fWFzeW5jIHJlZnJlc2hQYWNrYWdlU3RhdHVzKCl7YXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCl9YXN5bmMgcmVmcmVzaFNjcmlwdHMoKXthd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCl9c3RhdGlje2lyKGksYSl9fTtyZXR1cm4gRj1pfSkoKX0pO3ZhciBzZCxMaj1iKCgpPT57c2Q9Y2xhc3N7bG9hZGVkTGlicz1uZXcgU2V0O25vdEZvdW5kUGFja2FnZXM9bmV3IFNldDttb25hY29JbnN0YW5jZT1udWxsO2V4ZWN1dGlvbkVudmlyb25tZW50PW51bGw7ZmlsZUNhY2hlPW5ldyBNYXA7YWRkZWRFeHRyYUxpYnM9bmV3IE1hcDtnZXQgdHNBcGkoKXtyZXR1cm4gdGhpcy5tb25hY29JbnN0YW5jZT90aGlzLm1vbmFjb0luc3RhbmNlLmxhbmd1YWdlcy50eXBlc2NyaXB0Om51bGx9YXN5bmMgaW5pdChlLGEpe3RoaXMubW9uYWNvSW5zdGFuY2U9ZSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50PWEsdGhpcy5jb25maWd1cmVDb21waWxlck9wdGlvbnMoKSxhd2FpdCB0aGlzLmxvYWRBbGxQcm9qZWN0RmlsZXMoKX1hc3luYyBsb2FkQWxsUHJvamVjdEZpbGVzKCl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5sb2FkRmlsZXNGcm9tRGlyZWN0b3J5KCIvIil9YXN5bmMgbG9hZEZpbGVzRnJvbURpcmVjdG9yeShlKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgYT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoZSk7Zm9yKGxldCBpIG9mIGEpe2xldCByPWU9PT0iLyI/YC8ke2kubmFtZX1gOmAke2V9LyR7aS5uYW1lfWA7aWYoaS5uYW1lIT09Im5vZGVfbW9kdWxlcyIpe2lmKGkudHlwZT09PSJkaXJlY3RvcnkiKWF3YWl0IHRoaXMubG9hZEZpbGVzRnJvbURpcmVjdG9yeShyKTtlbHNlIGlmKGkudHlwZT09PSJmaWxlIil7bGV0IHM9aS5uYW1lLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCk7aWYocz09PSJ0cyJ8fHM9PT0idHN4Inx8cz09PSJqcyJ8fHM9PT0ianN4Iil0cnl7bGV0IG49YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShyKTt0aGlzLmFkZEZpbGVNb2RlbChyLG4pfWNhdGNoe319fX19Y2F0Y2h7fX1jb25maWd1cmVDb21waWxlck9wdGlvbnMoKXtsZXQgZT10aGlzLnRzQXBpO2UmJihlLnR5cGVzY3JpcHREZWZhdWx0cy5zZXRDb21waWxlck9wdGlvbnMoe3RhcmdldDplLlNjcmlwdFRhcmdldC5FUzIwMjAsbW9kdWxlOmUuTW9kdWxlS2luZC5FU05leHQsbW9kdWxlUmVzb2x1dGlvbjplLk1vZHVsZVJlc29sdXRpb25LaW5kLkJ1bmRsZXI/P2UuTW9kdWxlUmVzb2x1dGlvbktpbmQuTm9kZUpzLGFsbG93U3ludGhldGljRGVmYXVsdEltcG9ydHM6ITAsZXNNb2R1bGVJbnRlcm9wOiEwLHN0cmljdDohMCxub0VtaXQ6ITAsYWxsb3dKczohMCxjaGVja0pzOiExLGFsbG93Tm9uVHNFeHRlbnNpb25zOiEwLGxpYjpbImVzMjAyMCIsImRvbSIsImRvbS5pdGVyYWJsZSJdLGJhc2VVcmw6Ii8iLGFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zOiEwLHJlc29sdmVKc29uTW9kdWxlOiEwfSksZS50eXBlc2NyaXB0RGVmYXVsdHMuc2V0RGlhZ25vc3RpY3NPcHRpb25zKHtub1NlbWFudGljVmFsaWRhdGlvbjohMSxub1N5bnRheFZhbGlkYXRpb246ITF9KSxlLnR5cGVzY3JpcHREZWZhdWx0cy5zZXRFYWdlck1vZGVsU3luYyghMCkpfXBhcnNlSW1wb3J0cyhlKXtsZXQgYT1bXSxpPS9pbXBvcnRccysoPzpbXHcqe31ccyxdK2Zyb21ccyspP1snIl0oW14nIl0rKVsnIl0vZyxyO2Zvcig7KHI9aS5leGVjKGUpKSE9PW51bGw7KXtsZXQgbj1yWzFdO2lmKCFuLnN0YXJ0c1dpdGgoIi4iKSYmIW4uc3RhcnRzV2l0aCgiLyIpKXtsZXQgbz1uLnN0YXJ0c1dpdGgoIkAiKT9uLnNwbGl0KCIvIikuc2xpY2UoMCwyKS5qb2luKCIvIik6bi5zcGxpdCgiLyIpWzBdO2EucHVzaChvKX19bGV0IHM9L3JlcXVpcmVccypcKFxzKlsnIl0oW14nIl0rKVsnIl1ccypcKS9nO2Zvcig7KHI9cy5leGVjKGUpKSE9PW51bGw7KXtsZXQgbj1yWzFdO2lmKCFuLnN0YXJ0c1dpdGgoIi4iKSYmIW4uc3RhcnRzV2l0aCgiLyIpKXtsZXQgbz1uLnN0YXJ0c1dpdGgoIkAiKT9uLnNwbGl0KCIvIikuc2xpY2UoMCwyKS5qb2luKCIvIik6bi5zcGxpdCgiLyIpWzBdO2EucHVzaChvKX19cmV0dXJuWy4uLm5ldyBTZXQoYSldfWFzeW5jIGxvYWRUeXBlc0ZvclBhY2thZ2UoZSl7aWYoISghdGhpcy5tb25hY29JbnN0YW5jZXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpJiYhdGhpcy5sb2FkZWRMaWJzLmhhcyhlKSYmIXRoaXMubm90Rm91bmRQYWNrYWdlcy5oYXMoZSkpdHJ5e2xldCBhPWF3YWl0IHRoaXMudHJ5TG9hZFBhY2thZ2VUeXBlcyhlKTthfHwoYT1hd2FpdCB0aGlzLnRyeUxvYWRBdFR5cGVzUGFja2FnZShlKSksYT90aGlzLmxvYWRlZExpYnMuYWRkKGUpOnRoaXMubm90Rm91bmRQYWNrYWdlcy5hZGQoZSl9Y2F0Y2goYSl7Y29uc29sZS53YXJuKGBGYWlsZWQgdG8gbG9hZCB0eXBlcyBmb3IgJHtlfTpgLGEpfX1hc3luYyB0cnlMb2FkUGFja2FnZVR5cGVzKGUpe2xldCBhPXRoaXMudHNBcGk7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCFhKXJldHVybiExO2xldCBpPWAvbm9kZV9tb2R1bGVzLyR7ZX1gO3RyeXtsZXQgcj1gJHtpfS9wYWNrYWdlLmpzb25gO2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKHIpKXtsZXQgbz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKHIpLGQ9SlNPTi5wYXJzZShvKTtpZihhLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihvLGBmaWxlOi8vJHtyfWApLGQudHlwZXN8fGQudHlwaW5ncylyZXR1cm4gYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShpKSwhMH1sZXQgbj1bYCR7aX0vaW5kZXguZC50c2AsYCR7aX0vZGlzdC9pbmRleC5kLnRzYCxgJHtpfS9saWIvaW5kZXguZC50c2BdO2ZvcihsZXQgbyBvZiBuKWlmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKG8pKXJldHVybiBhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGkpLCEwO3JldHVybiExfWNhdGNoKHIpe3JldHVybiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gbG9hZCBwYWNrYWdlIHR5cGVzIGZvciAke2V9OmAsciksITF9fWFzeW5jIGxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGUpe2xldCBhPXRoaXMudHNBcGk7IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCFhfHxhd2FpdCB0aGlzLmxvYWREdHNGaWxlc0Zyb21EaXJlY3RvcnkoZSl9YXN5bmMgbG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeShlKXtsZXQgYT10aGlzLnRzQXBpO2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fCFhKSl0cnl7bGV0IGk9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKGUpO2ZvcihsZXQgciBvZiBpKXtsZXQgcz1lPT09Ii8iP2AvJHtyLm5hbWV9YDpgJHtlfS8ke3IubmFtZX1gO2lmKHIubmFtZSE9PSJub2RlX21vZHVsZXMiKXtpZihyLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmxvYWREdHNGaWxlc0Zyb21EaXJlY3Rvcnkocyk7ZWxzZSBpZihyLnR5cGU9PT0iZmlsZSImJnIubmFtZS5lbmRzV2l0aCgiLmQudHMiKSl0cnl7bGV0IG49YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShzKTthLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihuLGBmaWxlOi8vJHtzfWApfWNhdGNoe319fX1jYXRjaHt9fWFzeW5jIHRyeUxvYWRBdFR5cGVzUGFja2FnZShlKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm4hMTtsZXQgaT1gL25vZGVfbW9kdWxlcy8ke2Uuc3RhcnRzV2l0aCgiQCIpP2BAdHlwZXMvJHtlLnNsaWNlKDEpLnJlcGxhY2UoIi8iLCJfXyIpfWA6YEB0eXBlcy8ke2V9YH1gO3RyeXtsZXQgcj1gJHtpfS9pbmRleC5kLnRzYDtyZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMocik/KGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoaSksITApOiExfWNhdGNoe3JldHVybiExfX1hc3luYyBwcm9jZXNzQ29udGVudENoYW5nZShlKXtsZXQgYT10aGlzLnBhcnNlSW1wb3J0cyhlKTtmb3IobGV0IGkgb2YgYSl0aGlzLmxvYWRlZExpYnMuaGFzKGkpfHxhd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2UoaSl9YXN5bmMgc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXt0aGlzLm5vdEZvdW5kUGFja2FnZXMuY2xlYXIoKTt0cnl7aWYoIWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvbm9kZV9tb2R1bGVzIikpcmV0dXJuO2xldCBlPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcigiL25vZGVfbW9kdWxlcyIpO2ZvcihsZXQgYSBvZiBlKWlmKGEudHlwZT09PSJkaXJlY3RvcnkiKWlmKGEubmFtZS5zdGFydHNXaXRoKCJAIikpdHJ5e2xldCBpPWAvbm9kZV9tb2R1bGVzLyR7YS5uYW1lfWAscj1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoaSk7Zm9yKGxldCBzIG9mIHIpaWYocy50eXBlPT09ImRpcmVjdG9yeSIpe2xldCBuPWAke2EubmFtZX0vJHtzLm5hbWV9YDthd2FpdCB0aGlzLmxvYWRUeXBlc0ZvclBhY2thZ2Uobil9fWNhdGNoe31lbHNlIGEubmFtZS5zdGFydHNXaXRoKCIuIil8fGF3YWl0IHRoaXMubG9hZFR5cGVzRm9yUGFja2FnZShhLm5hbWUpfWNhdGNoKGUpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIHNjYW4gbm9kZV9tb2R1bGVzOiIsZSl9fX1hZGRGaWxlTW9kZWwoZSxhKXtpZighdGhpcy5tb25hY29JbnN0YW5jZSlyZXR1cm47dGhpcy5maWxlQ2FjaGUuc2V0KGUsYSk7bGV0IGk9dGhpcy5tb25hY29JbnN0YW5jZS5VcmkucGFyc2UoYGZpbGU6Ly8ke2V9YCkscj10aGlzLm1vbmFjb0luc3RhbmNlLmVkaXRvci5nZXRNb2RlbChpKTtpZihyKXIuZ2V0VmFsdWUoKSE9PWEmJnIuc2V0VmFsdWUoYSk7ZWxzZXtsZXQgcz10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgoZSk7dGhpcy5tb25hY29JbnN0YW5jZS5lZGl0b3IuY3JlYXRlTW9kZWwoYSxzLGkpfXRoaXMuYWRkRmlsZUFzRXh0cmFMaWIoZSxhKX1hZGRGaWxlQXNFeHRyYUxpYihlLGEpe2xldCBpPXRoaXMudHNBcGk7aWYoIWkpcmV0dXJuO2xldCByPXRoaXMuYWRkZWRFeHRyYUxpYnMuZ2V0KGUpO3ImJnIuZGlzcG9zZSgpO2xldCBzPWBmaWxlOi8vJHtlfWAsbj1pLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihhLHMpO2lmKHRoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KGUsbiksZS5lbmRzV2l0aCgiLnRzIikmJiFlLmVuZHNXaXRoKCIuZC50cyIpKXtsZXQgbz1lLnJlcGxhY2UoL1wudHMkLywiLmpzIiksZD1gZmlsZTovLyR7b31gLGM9aS50eXBlc2NyaXB0RGVmYXVsdHMuYWRkRXh0cmFMaWIoYSxkKTt0aGlzLmFkZGVkRXh0cmFMaWJzLnNldChvLGMpLHRoaXMuZmlsZUNhY2hlLnNldChvLGEpfWVsc2UgaWYoZS5lbmRzV2l0aCgiLnRzeCIpKXtsZXQgbz1lLnJlcGxhY2UoL1wudHN4JC8sIi5qc3giKSxkPWBmaWxlOi8vJHtvfWAsYz1pLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihhLGQpO3RoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KG8sYyksdGhpcy5maWxlQ2FjaGUuc2V0KG8sYSl9fWdldEZpbGVDb250ZW50KGUpe3JldHVybiB0aGlzLmZpbGVDYWNoZS5nZXQoZSl9Z2V0TGFuZ3VhZ2VGcm9tUGF0aChlKXtzd2l0Y2goZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpKXtjYXNlInRzIjpjYXNlInRzeCI6cmV0dXJuInR5cGVzY3JpcHQiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4iamF2YXNjcmlwdCI7Y2FzZSJqc29uIjpyZXR1cm4ianNvbiI7ZGVmYXVsdDpyZXR1cm4icGxhaW50ZXh0In19fX0pO3ZhciBiNCxKYSxmeHQsJGo9YigoKT0+e3VlKCk7VHQoKTtFcSgpO3FlKCk7bm8oKTtiND1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEphPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxmeHQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvciIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdLHgsTT1bXSxTPVtdLEYsXz1bXSxrPVtdO3ZhciBOPWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOlN0cmluZ30pXSxkPVtJKHt0eXBlOlN0cmluZ30pXSxsPVtJKHt0eXBlOlN0cmluZ30pXSx5PVtJKHt0eXBlOlN0cmluZ30pXSx4PVtJKHt0eXBlOlN0cmluZ30pXSxGPVtJKHt0eXBlOlN0cmluZ30pXSxiNCh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9yaWdpbmFsQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+Im9yaWdpbmFsQ29udGVudCJpbiBBLGdldDpBPT5BLm9yaWdpbmFsQ29udGVudCxzZXQ6KEEscSk9PntBLm9yaWdpbmFsQ29udGVudD1xfX0sbWV0YWRhdGE6TH0sbixvKSxiNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGlmaWVkQ29udGVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+Im1vZGlmaWVkQ29udGVudCJpbiBBLGdldDpBPT5BLm1vZGlmaWVkQ29udGVudCxzZXQ6KEEscSk9PntBLm1vZGlmaWVkQ29udGVudD1xfX0sbWV0YWRhdGE6TH0sYyxwKSxiNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9yaWdpbmFsTGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJvcmlnaW5hbExhYmVsImluIEEsZ2V0OkE9PkEub3JpZ2luYWxMYWJlbCxzZXQ6KEEscSk9PntBLm9yaWdpbmFsTGFiZWw9cX19LG1ldGFkYXRhOkx9LGYsZyksYjQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ibW9kaWZpZWRMYWJlbCJpbiBBLGdldDpBPT5BLm1vZGlmaWVkTGFiZWwsc2V0OihBLHEpPT57QS5tb2RpZmllZExhYmVsPXF9fSxtZXRhZGF0YTpMfSx2LG0pLGI0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJsYW5ndWFnZSJpbiBBLGdldDpBPT5BLmxhbmd1YWdlLHNldDooQSxxKT0+e0EubGFuZ3VhZ2U9cX19LG1ldGFkYXRhOkx9LE0sUyksYjQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlUGF0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImZpbGVQYXRoImluIEEsZ2V0OkE9PkEuZmlsZVBhdGgsc2V0OihBLHEpPT57QS5maWxlUGF0aD1xfX0sbWV0YWRhdGE6TH0sXyxrKSxiNChudWxsLGU9e3ZhbHVlOml9LHQse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpMfSxudWxsLGEpLE49aT1lLnZhbHVlLEwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6TH0pfXN0YXRpYyBkZW1vPSgpPT53YAogICAgPGRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yCiAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHtgZnVuY3Rpb24gaGVsbG8oKSB7CiAgY29uc29sZS5sb2coIkhlbGxvIik7Cn1gfQogICAgICAubW9kaWZpZWRDb250ZW50PSR7YGZ1bmN0aW9uIGhlbGxvKCkgewogIGNvbnNvbGUubG9nKCJIZWxsbyBXb3JsZCEiKTsKICByZXR1cm4gdHJ1ZTsKfWB9CiAgICAgIC5sYW5ndWFnZT0keyJ0eXBlc2NyaXB0In0KICAgICAgLmZpbGVQYXRoPSR7Ii9kZW1vL2V4YW1wbGUudHMifQogICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO2RpZmZFZGl0b3JEZWZlcnJlZD1NdC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT1KYSh0aGlzLG4sIiIpO2dldCBvcmlnaW5hbENvbnRlbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3JpZ2luYWxDb250ZW50KEwpe3RoaXMuI2U9TH0jdD0oSmEodGhpcyxvKSxKYSh0aGlzLGMsIiIpKTtnZXQgbW9kaWZpZWRDb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1vZGlmaWVkQ29udGVudChMKXt0aGlzLiN0PUx9I2E9KEphKHRoaXMscCksSmEodGhpcyxmLCJEaXNrIFZlcnNpb24iKSk7Z2V0IG9yaWdpbmFsTGFiZWwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgb3JpZ2luYWxMYWJlbChMKXt0aGlzLiNhPUx9I2k9KEphKHRoaXMsZyksSmEodGhpcyx2LCJMb2NhbCBWZXJzaW9uIikpO2dldCBtb2RpZmllZExhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1vZGlmaWVkTGFiZWwoTCl7dGhpcy4jaT1MfSNyPShKYSh0aGlzLG0pLEphKHRoaXMsTSwidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbGFuZ3VhZ2UoTCl7dGhpcy4jcj1MfSNzPShKYSh0aGlzLFMpLEphKHRoaXMsXywiIikpO2dldCBmaWxlUGF0aCgpe3JldHVybiB0aGlzLiNzfXNldCBmaWxlUGF0aChMKXt0aGlzLiNzPUx9ZGlmZkVkaXRvcj0oSmEodGhpcyxrKSxudWxsKTttb25hY29UaGVtZVN1YnNjcmlwdGlvbj1udWxsO29yaWdpbmFsTW9kZWw9bnVsbDttb2RpZmllZE1vZGVsPW51bGw7Y29uc3RydWN0b3IoKXtzdXBlcigpLEcyLnNldHVwRG9tVG9vbHMoKX1zdGF0aWMgc3R5bGVzPVtDZSxoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC5kaWZmLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5kaWZmLXRvb2xiYXIgewogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmRpZmYtaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLmRpZmYtZmlsZW5hbWUgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLmRpZmYtbGFiZWxzIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmRpZmYtYWN0aW9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZGlmZi1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCBMPXRoaXMuZmlsZVBhdGguc3BsaXQoIi8iKS5wb3AoKXx8ImZpbGUiO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJkaWZmLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtdG9vbGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWluZm8iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlmZi1maWxlbmFtZSI+JHtMfTwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpZmYtbGFiZWxzIj4ke3RoaXMub3JpZ2luYWxMYWJlbH0g4oaUICR7dGhpcy5tb2RpZmllZExhYmVsfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1hY3Rpb25zIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWJ1dHRvbnMiPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZ29Ub1ByZXZpb3VzRGlmZn0KICAgICAgICAgICAgICA+UHJldmlvdXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuZ29Ub05leHREaWZmfQogICAgICAgICAgICAgID5OZXh0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbi1idXR0b25zIj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9ImhpZ2hsaWdodGVkIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5hY2NlcHRMb2NhbH0KICAgICAgICAgICAgICA+VXNlIExvY2FsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFjY2VwdERpc2t9CiAgICAgICAgICAgICAgPlVzZSBEaXNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgICA8ZGVlcy1idXR0b24KICAgICAgICAgICAgICAgIHR5cGU9Im91dGxpbmUiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmNsb3NlfQogICAgICAgICAgICAgID5DbG9zZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi1jb250YWluZXIiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKG5ldyBNYXApLGF3YWl0IHRoaXMuaW5pdERpZmZFZGl0b3IoKX1hc3luYyBpbml0RGlmZkVkaXRvcigpe2xldCBMPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRpZmYtY29udGFpbmVyIik7aWYoIUwpcmV0dXJuO2xldCBBPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21vbmFjby1lZGl0b3JAJHtMeH1gLHE9d2luZG93Lm1vbmFjbztxfHwoYXdhaXQgbmV3IFByb21pc2UoVT0+e2xldCByZT1zZXRJbnRlcnZhbCgoKT0+e3dpbmRvdy5tb25hY28mJihjbGVhckludGVydmFsKHJlKSxVKCkpfSwxMDApfSkscT13aW5kb3cubW9uYWNvKTtsZXQgQz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxFPUMudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj8idnMiOiJ2cy1kYXJrIixUPURhdGUubm93KCksJD1xLlVyaS5wYXJzZShgZGlmZjovL29yaWdpbmFsLyR7VH0ke3RoaXMuZmlsZVBhdGh9YCksVj1xLlVyaS5wYXJzZShgZGlmZjovL21vZGlmaWVkLyR7VH0ke3RoaXMuZmlsZVBhdGh9YCk7dGhpcy5vcmlnaW5hbE1vZGVsPXEuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMub3JpZ2luYWxDb250ZW50LHRoaXMubGFuZ3VhZ2UsJCksdGhpcy5tb2RpZmllZE1vZGVsPXEuZWRpdG9yLmNyZWF0ZU1vZGVsKHRoaXMubW9kaWZpZWRDb250ZW50LHRoaXMubGFuZ3VhZ2UsViksdGhpcy5kaWZmRWRpdG9yPXEuZWRpdG9yLmNyZWF0ZURpZmZFZGl0b3IoTCx7YXV0b21hdGljTGF5b3V0OiEwLHJlYWRPbmx5OiExLG9yaWdpbmFsRWRpdGFibGU6ITEscmVuZGVyU2lkZUJ5U2lkZTohMCxpZ25vcmVUcmltV2hpdGVzcGFjZTohMSxmb250U2l6ZToxNCxtaW5pbWFwOntlbmFibGVkOiExfX0pLHEuZWRpdG9yLnNldFRoZW1lKEUpLHRoaXMuZGlmZkVkaXRvci5zZXRNb2RlbCh7b3JpZ2luYWw6dGhpcy5vcmlnaW5hbE1vZGVsLG1vZGlmaWVkOnRoaXMubW9kaWZpZWRNb2RlbH0pLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb249Qy50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShVPT57bGV0IHJlPVU/InZzIjoidnMtZGFyayI7cS5lZGl0b3Iuc2V0VGhlbWUocmUpfSk7bGV0IFI9Im1vbmFjby1kaWZmLWVkaXRvci1jc3MiO2lmKCF0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKFIpKXtsZXQgcmU9YXdhaXQoYXdhaXQgZmV0Y2goYCR7QX0vbWluL3ZzL2VkaXRvci9lZGl0b3IubWFpbi5jc3NgKSkudGV4dCgpLGo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtqLmlkPVIsai50ZXh0Q29udGVudD1yZSx0aGlzLnNoYWRvd1Jvb3Q/LmFwcGVuZChqKX1zZXRUaW1lb3V0KCgpPT57dHJ5e3RoaXMuZGlmZkVkaXRvcj8ucmV2ZWFsRmlyc3REaWZmKCl9Y2F0Y2h7fX0sMTAwKSx0aGlzLmRpZmZFZGl0b3JEZWZlcnJlZC5yZXNvbHZlKHRoaXMuZGlmZkVkaXRvcil9Z29Ub05leHREaWZmKCl7dHJ5e3RoaXMuZGlmZkVkaXRvcj8uZ29Ub0RpZmYoIm5leHQiKX1jYXRjaHt9fWdvVG9QcmV2aW91c0RpZmYoKXt0cnl7dGhpcy5kaWZmRWRpdG9yPy5nb1RvRGlmZigicHJldmlvdXMiKX1jYXRjaHt9fWFjY2VwdExvY2FsKCl7bGV0IEw9dGhpcy5kaWZmRWRpdG9yPy5nZXRNb2RpZmllZEVkaXRvcigpLmdldFZhbHVlKCl8fHRoaXMubW9kaWZpZWRDb250ZW50O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtcmVzb2x2ZWQiLHtkZXRhaWw6e2FjdGlvbjoidXNlLWxvY2FsIixjb250ZW50Okx9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YWNjZXB0RGlzaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtcmVzb2x2ZWQiLHtkZXRhaWw6e2FjdGlvbjoidXNlLWRpc2siLGNvbnRlbnQ6dGhpcy5vcmlnaW5hbENvbnRlbnR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2xvc2UoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkaWZmLWNsb3NlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24mJih0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLm9yaWdpbmFsTW9kZWwmJih0aGlzLm9yaWdpbmFsTW9kZWwuZGlzcG9zZSgpLHRoaXMub3JpZ2luYWxNb2RlbD1udWxsKSx0aGlzLm1vZGlmaWVkTW9kZWwmJih0aGlzLm1vZGlmaWVkTW9kZWwuZGlzcG9zZSgpLHRoaXMubW9kaWZpZWRNb2RlbD1udWxsKSx0aGlzLmRpZmZFZGl0b3ImJih0aGlzLmRpZmZFZGl0b3IuZGlzcG9zZSgpLHRoaXMuZGlmZkVkaXRvcj1udWxsKX1zdGF0aWN7SmEoaSxhKX19O3JldHVybiBOPWl9KSgpfSk7dmFyIFQxLHV0LG14dCxneHQ9YigoKT0+e3VlKCk7VHQoKTtxZSgpO3d3KCk7WjAoKTt6dygpO3p3KCk7dGQoKTt0ZCgpO19qKCk7VGooKTtEdCgpO1owKCk7TGooKTtzMigpO3kxKCk7UXgoKTskaigpO1QxPWZ1bmN0aW9uKHQsZSxhLGkscixzKXtmdW5jdGlvbiBuKHgpe2lmKHghPT12b2lkIDAmJnR5cGVvZiB4IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHh9Zm9yKHZhciBvPWkua2luZCxkPW89PT0iZ2V0dGVyIj8iZ2V0IjpvPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSFlJiZ0P2kuc3RhdGljP3Q6dC5wcm90b3R5cGU6bnVsbCxwPWV8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxsLGY9ITEsZz1hLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgeT17fTtmb3IodmFyIHYgaW4gaSl5W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl5LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt5LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHgpe2lmKGYpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7cy5wdXNoKG4oeHx8bnVsbCkpfTt2YXIgbT0oMCxhW2ddKShvPT09ImFjY2Vzc29yIj97Z2V0OnAuZ2V0LHNldDpwLnNldH06cFtkXSx5KTtpZihvPT09ImFjY2Vzc29yIil7aWYobT09PXZvaWQgMCljb250aW51ZTtpZihtPT09bnVsbHx8dHlwZW9mIG0hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhsPW4obS5nZXQpKSYmKHAuZ2V0PWwpLChsPW4obS5zZXQpKSYmKHAuc2V0PWwpLChsPW4obS5pbml0KSkmJnIudW5zaGlmdChsKX1lbHNlKGw9bihtKSkmJihvPT09ImZpZWxkIj9yLnVuc2hpZnQobCk6cFtkXT1sKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUscCksZj0hMH0sdXQ9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIscj0wO3I8ZS5sZW5ndGg7cisrKWE9aT9lW3JdLmNhbGwodCxhKTplW3JdLmNhbGwodCk7cmV0dXJuIGk/YTp2b2lkIDB9LG14dD0oKCk9PntsZXQgdD1baGUoImRlZXMtd29ya3NwYWNlIildLGUsYT1bXSxpLHI9eGUscyxuPVtdLG89W10sZCxjPVtdLHA9W10sbCxmPVtdLGc9W10seSx2PVtdLG09W10seCxNPVtdLFM9W10sRixfPVtdLGs9W10sTixMPVtdLEE9W10scSxDPVtdLHo9W10sRSxUPVtdLCQ9W10sVixSPVtdLFU9W10scmUsaj1bXSxtZT1bXSx3ZSxIPVtdLGNlPVtdLGtlLFc9W10sRD1bXSxPLFo9W10sWT1bXSxvZSxnZT1bXSxiZT1bXSwkZSxCPVtdLFA9W10sSyxmZT1bXSxkZT1bXSxfZSxwZT1bXSx0ZT1bXSx6ZSxGZT1bXSxXZT1bXSx5ZSxlZT1bXSxhZT1bXSx2ZSxQZT1bXSxWZT1bXSx4dCxvdD1bXSxMdD1bXTt2YXIgWnQ9Y2xhc3MgZXh0ZW5kcyBye3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBpZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOk9iamVjdH0pXSxkPVtJKHthdHRyaWJ1dGU6ITF9KV0sbD1bSSh7dHlwZTpCb29sZWFufSldLHk9W0koe3R5cGU6Qm9vbGVhbn0pXSx4PVtJKHt0eXBlOk51bWJlcn0pXSxGPVtJKHt0eXBlOk51bWJlcn0pXSxOPVtKKCldLHE9W0ooKV0sRT1bSigpXSxWPVtKKCldLHJlPVtKKCldLHdlPVtKKCldLGtlPVtKKCldLE89W0ooKV0sb2U9W0ooKV0sJGU9W0ooKV0sSz1bSigpXSxfZT1bSigpXSx6ZT1bSigpXSx5ZT1bSigpXSx2ZT1bSigpXSx4dD1bSigpXSxUMSh0aGlzLG51bGwscyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIHNlLGdldDpzZT0+c2UuZXhlY3V0aW9uRW52aXJvbm1lbnQsc2V0OihzZSxUZSk9PntzZS5leGVjdXRpb25FbnZpcm9ubWVudD1UZX19LG1ldGFkYXRhOmllfSxuLG8pLFQxKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbGl6YXRpb25Qcm9taXNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImluaXRpYWxpemF0aW9uUHJvbWlzZSJpbiBzZSxnZXQ6c2U9PnNlLmluaXRpYWxpemF0aW9uUHJvbWlzZSxzZXQ6KHNlLFRlKT0+e3NlLmluaXRpYWxpemF0aW9uUHJvbWlzZT1UZX19LG1ldGFkYXRhOmllfSxjLHApLFQxKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0ZpbGVUcmVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+InNob3dGaWxlVHJlZSJpbiBzZSxnZXQ6c2U9PnNlLnNob3dGaWxlVHJlZSxzZXQ6KHNlLFRlKT0+e3NlLnNob3dGaWxlVHJlZT1UZX19LG1ldGFkYXRhOmllfSxmLGcpLFQxKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Rlcm1pbmFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+InNob3dUZXJtaW5hbCJpbiBzZSxnZXQ6c2U9PnNlLnNob3dUZXJtaW5hbCxzZXQ6KHNlLFRlKT0+e3NlLnNob3dUZXJtaW5hbD1UZX19LG1ldGFkYXRhOmllfSx2LG0pLFQxKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVRyZWVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJmaWxlVHJlZVdpZHRoImluIHNlLGdldDpzZT0+c2UuZmlsZVRyZWVXaWR0aCxzZXQ6KHNlLFRlKT0+e3NlLmZpbGVUcmVlV2lkdGg9VGV9fSxtZXRhZGF0YTppZX0sTSxTKSxUMSh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+InRlcm1pbmFsSGVpZ2h0ImluIHNlLGdldDpzZT0+c2UudGVybWluYWxIZWlnaHQsc2V0OihzZSxUZSk9PntzZS50ZXJtaW5hbEhlaWdodD1UZX19LG1ldGFkYXRhOmllfSxfLGspLFQxKHRoaXMsbnVsbCxOLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkZpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+Im9wZW5GaWxlcyJpbiBzZSxnZXQ6c2U9PnNlLm9wZW5GaWxlcyxzZXQ6KHNlLFRlKT0+e3NlLm9wZW5GaWxlcz1UZX19LG1ldGFkYXRhOmllfSxMLEEpLFQxKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlRmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iYWN0aXZlRmlsZVBhdGgiaW4gc2UsZ2V0OnNlPT5zZS5hY3RpdmVGaWxlUGF0aCxzZXQ6KHNlLFRlKT0+e3NlLmFjdGl2ZUZpbGVQYXRoPVRlfX0sbWV0YWRhdGE6aWV9LEMseiksVDEodGhpcyxudWxsLEUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Rlcm1pbmFsQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImlzVGVybWluYWxDb2xsYXBzZWQiaW4gc2UsZ2V0OnNlPT5zZS5pc1Rlcm1pbmFsQ29sbGFwc2VkLHNldDooc2UsVGUpPT57c2UuaXNUZXJtaW5hbENvbGxhcHNlZD1UZX19LG1ldGFkYXRhOmllfSxULCQpLFQxKHRoaXMsbnVsbCxWLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGaWxlVHJlZUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpc0ZpbGVUcmVlQ29sbGFwc2VkImluIHNlLGdldDpzZT0+c2UuaXNGaWxlVHJlZUNvbGxhcHNlZCxzZXQ6KHNlLFRlKT0+e3NlLmlzRmlsZVRyZWVDb2xsYXBzZWQ9VGV9fSxtZXRhZGF0YTppZX0sUixVKSxUMSh0aGlzLG51bGwscmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0luaXRpYWxpemluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpc0luaXRpYWxpemluZyJpbiBzZSxnZXQ6c2U9PnNlLmlzSW5pdGlhbGl6aW5nLHNldDooc2UsVGUpPT57c2UuaXNJbml0aWFsaXppbmc9VGV9fSxtZXRhZGF0YTppZX0saixtZSksVDEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlQm90dG9tUGFuZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iYWN0aXZlQm90dG9tUGFuZWwiaW4gc2UsZ2V0OnNlPT5zZS5hY3RpdmVCb3R0b21QYW5lbCxzZXQ6KHNlLFRlKT0+e3NlLmFjdGl2ZUJvdHRvbVBhbmVsPVRlfX0sbWV0YWRhdGE6aWV9LEgsY2UpLFQxKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpYWdub3N0aWNNYXJrZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImRpYWdub3N0aWNNYXJrZXJzImluIHNlLGdldDpzZT0+c2UuZGlhZ25vc3RpY01hcmtlcnMsc2V0OihzZSxUZSk9PntzZS5kaWFnbm9zdGljTWFya2Vycz1UZX19LG1ldGFkYXRhOmllfSxXLEQpLFQxKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1NhdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iYXV0b1NhdmUiaW4gc2UsZ2V0OnNlPT5zZS5hdXRvU2F2ZSxzZXQ6KHNlLFRlKT0+e3NlLmF1dG9TYXZlPVRlfX0sbWV0YWRhdGE6aWV9LFosWSksVDEodGhpcyxudWxsLG9lLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iaW5pdENvbW1hbmQiaW4gc2UsZ2V0OnNlPT5zZS5pbml0Q29tbWFuZCxzZXQ6KHNlLFRlKT0+e3NlLmluaXRDb21tYW5kPVRlfX0sbWV0YWRhdGE6aWV9LGdlLGJlKSxUMSh0aGlzLG51bGwsJGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0T3V0cHV0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImluaXRPdXRwdXQiaW4gc2UsZ2V0OnNlPT5zZS5pbml0T3V0cHV0LHNldDooc2UsVGUpPT57c2UuaW5pdE91dHB1dD1UZX19LG1ldGFkYXRhOmllfSxCLFApLFQxKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudEZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iY3VycmVudEZpbGVUcmVlV2lkdGgiaW4gc2UsZ2V0OnNlPT5zZS5jdXJyZW50RmlsZVRyZWVXaWR0aCxzZXQ6KHNlLFRlKT0+e3NlLmN1cnJlbnRGaWxlVHJlZVdpZHRoPVRlfX0sbWV0YWRhdGE6aWV9LGZlLGRlKSxUMSh0aGlzLG51bGwsX2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iY3VycmVudFRlcm1pbmFsSGVpZ2h0ImluIHNlLGdldDpzZT0+c2UuY3VycmVudFRlcm1pbmFsSGVpZ2h0LHNldDooc2UsVGUpPT57c2UuY3VycmVudFRlcm1pbmFsSGVpZ2h0PVRlfX0sbWV0YWRhdGE6aWV9LHBlLHRlKSxUMSh0aGlzLG51bGwsemUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nRmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iaXNEcmFnZ2luZ0ZpbGVUcmVlImluIHNlLGdldDpzZT0+c2UuaXNEcmFnZ2luZ0ZpbGVUcmVlLHNldDooc2UsVGUpPT57c2UuaXNEcmFnZ2luZ0ZpbGVUcmVlPVRlfX0sbWV0YWRhdGE6aWV9LEZlLFdlKSxUMSh0aGlzLG51bGwseWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nVGVybWluYWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iaXNEcmFnZ2luZ1Rlcm1pbmFsImluIHNlLGdldDpzZT0+c2UuaXNEcmFnZ2luZ1Rlcm1pbmFsLHNldDooc2UsVGUpPT57c2UuaXNEcmFnZ2luZ1Rlcm1pbmFsPVRlfX0sbWV0YWRhdGE6aWV9LGVlLGFlKSxUMSh0aGlzLG51bGwsdmUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RGlmZlZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4ic2hvd0RpZmZWaWV3ImluIHNlLGdldDpzZT0+c2Uuc2hvd0RpZmZWaWV3LHNldDooc2UsVGUpPT57c2Uuc2hvd0RpZmZWaWV3PVRlfX0sbWV0YWRhdGE6aWV9LFBlLFZlKSxUMSh0aGlzLG51bGwseHQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaWZmVmlld0NvbmZpZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJkaWZmVmlld0NvbmZpZyJpbiBzZSxnZXQ6c2U9PnNlLmRpZmZWaWV3Q29uZmlnLHNldDooc2UsVGUpPT57c2UuZGlmZlZpZXdDb25maWc9VGV9fSxtZXRhZGF0YTppZX0sb3QsTHQpLFQxKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmllfSxudWxsLGEpLFp0PWk9ZS52YWx1ZSxpZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTppZX0pfXN0YXRpYyBkZW1vPSgpPT57bGV0IGllPW5ldyBtNCxzZT0oYXN5bmMoKT0+e2F3YWl0IGllLmluaXQoKTtsZXQgY3Q9eyJwYWNrYWdlLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7bmFtZToiZGVtby1wcm9qZWN0Iix2ZXJzaW9uOiIxLjAuMCIsdHlwZToibW9kdWxlIixzY3JpcHRzOntidWlsZDoidHNjIixkZXY6InRzYyAtLXdhdGNoIn0sZGVwZW5kZW5jaWVzOnsiQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlIjoiXjQuMi4zIn0sZGV2RGVwZW5kZW5jaWVzOnsiQHR5cGVzL25vZGUiOiJeMjIuMC4wIix0eXBlc2NyaXB0OiJeNS4wLjAifX0sbnVsbCwyKX19LCJucG1leHRyYS5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe2RlZXNFZGl0b3JXb3Jrc3BhY2U6e29uSW5pdDoicG5wbSBpbnN0YWxsIn19LG51bGwsMil9fSwidHNjb25maWcuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtjb21waWxlck9wdGlvbnM6e3RhcmdldDoiRVMyMDIyIixtb2R1bGU6Ik5vZGVOZXh0Iixtb2R1bGVSZXNvbHV0aW9uOiJOb2RlTmV4dCIsc3RyaWN0OiEwLG91dERpcjoiLi9kaXN0Iixyb290RGlyOiIuL3NyYyIsZGVjbGFyYXRpb246ITB9LGluY2x1ZGU6WyJzcmMvKiovKiJdfSxudWxsLDIpfX0sc3JjOntkaXJlY3Rvcnk6eyJpbmRleC50cyI6e2ZpbGU6e2NvbnRlbnRzOmAvLyBNYWluIGVudHJ5IHBvaW50CmltcG9ydCB7IGdyZWV0LCBmb3JtYXROYW1lIH0gZnJvbSAnLi91dGlscy5qcyc7Cgpjb25zdCBuYW1lID0gZm9ybWF0TmFtZSgnV29ybGQnKTsKY29uc29sZS5sb2coZ3JlZXQobmFtZSkpOwoKLy8gRXhhbXBsZSBhc3luYyBmdW5jdGlvbgphc3luYyBmdW5jdGlvbiBtYWluKCkgewogIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UucmVzb2x2ZSgnSGVsbG8gZnJvbSBhc3luYyEnKTsKICBjb25zb2xlLmxvZyhyZXN1bHQpOwp9CgptYWluKCk7CmB9fSwidXRpbHMudHMiOntmaWxlOntjb250ZW50czpgLy8gVXRpbGl0eSBmdW5jdGlvbnMKCmV4cG9ydCBpbnRlcmZhY2UgSVVzZXIgewogIGZpcnN0TmFtZTogc3RyaW5nOwogIGxhc3ROYW1lOiBzdHJpbmc7Cn0KCmV4cG9ydCBmdW5jdGlvbiBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogIHJldHVybiBcYEhlbGxvLCBcJHtuYW1lfSFcYDsKfQoKZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICByZXR1cm4gbmFtZS50cmltKCkudG9VcHBlckNhc2UoKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVzZXIoZmlyc3ROYW1lOiBzdHJpbmcsIGxhc3ROYW1lOiBzdHJpbmcpOiBJVXNlciB7CiAgcmV0dXJuIHsgZmlyc3ROYW1lLCBsYXN0TmFtZSB9Owp9CmB9fSwiaW1wb3J0dGVzdC50cyI6e2ZpbGU6e2NvbnRlbnRzOmAvLyBUZXN0IG5wbSBwYWNrYWdlIGltcG9ydHMKaW1wb3J0ICogYXMgc21hcnRwcm9taXNlIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSc7CgovLyBUaGlzIHNob3VsZCBoYXZlIEludGVsbGlTZW5zZSBzaG93aW5nIGRlZmVyKCkgbWV0aG9kCmNvbnN0IGRlZmVycmVkID0gc21hcnRwcm9taXNlLmRlZmVyPHN0cmluZz4oKTsKCi8vIFRlc3QgdXNpbmcgdGhlIGRlZmVycmVkIHByb21pc2UKYXN5bmMgZnVuY3Rpb24gdGVzdFNtYXJ0UHJvbWlzZSgpIHsKICBzZXRUaW1lb3V0KCgpID0+IHsKICAgIGRlZmVycmVkLnJlc29sdmUoJ0hlbGxvIGZyb20gc21hcnRwcm9taXNlIScpOwogIH0sIDEwMCk7CgogIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRlZmVycmVkLnByb21pc2U7CiAgY29uc29sZS5sb2cocmVzdWx0KTsKfQoKdGVzdFNtYXJ0UHJvbWlzZSgpOwpgfX19fX07YXdhaXQgaWUubW91bnQoY3QpfSkoKSxUZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtUZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsiO2xldCBsdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXdvcmtzcGFjZSIpO3JldHVybiBsdC5leGVjdXRpb25FbnZpcm9ubWVudD1pZSxsdC5pbml0aWFsaXphdGlvblByb21pc2U9c2UsVGUuYXBwZW5kQ2hpbGQobHQpLHdgCiAgICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICAgICR7VGV9CiAgICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIGB9O3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9dXQodGhpcyxuLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChpZSl7dGhpcy4jZT1pZX0jdD0odXQodGhpcyxvKSx1dCh0aGlzLGMsbnVsbCkpO2dldCBpbml0aWFsaXphdGlvblByb21pc2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKGllKXt0aGlzLiN0PWllfSNhPSh1dCh0aGlzLHApLHV0KHRoaXMsZiwhMCkpO2dldCBzaG93RmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0ZpbGVUcmVlKGllKXt0aGlzLiNhPWllfSNpPSh1dCh0aGlzLGcpLHV0KHRoaXMsdiwhMCkpO2dldCBzaG93VGVybWluYWwoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1Rlcm1pbmFsKGllKXt0aGlzLiNpPWllfSNyPSh1dCh0aGlzLG0pLHV0KHRoaXMsTSwyNTApKTtnZXQgZmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNyfXNldCBmaWxlVHJlZVdpZHRoKGllKXt0aGlzLiNyPWllfSNzPSh1dCh0aGlzLFMpLHV0KHRoaXMsXywyMDApKTtnZXQgdGVybWluYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jc31zZXQgdGVybWluYWxIZWlnaHQoaWUpe3RoaXMuI3M9aWV9I249KHV0KHRoaXMsayksdXQodGhpcyxMLFtdKSk7Z2V0IG9wZW5GaWxlcygpe3JldHVybiB0aGlzLiNufXNldCBvcGVuRmlsZXMoaWUpe3RoaXMuI249aWV9I289KHV0KHRoaXMsQSksdXQodGhpcyxDLCIiKSk7Z2V0IGFjdGl2ZUZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGl2ZUZpbGVQYXRoKGllKXt0aGlzLiNvPWllfSNsPSh1dCh0aGlzLHopLHV0KHRoaXMsVCwhMSkpO2dldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzVGVybWluYWxDb2xsYXBzZWQoaWUpe3RoaXMuI2w9aWV9I2M9KHV0KHRoaXMsJCksdXQodGhpcyxSLCExKSk7Z2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jY31zZXQgaXNGaWxlVHJlZUNvbGxhcHNlZChpZSl7dGhpcy4jYz1pZX0jZD0odXQodGhpcyxVKSx1dCh0aGlzLGosITApKTtnZXQgaXNJbml0aWFsaXppbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNJbml0aWFsaXppbmcoaWUpe3RoaXMuI2Q9aWV9I3A9KHV0KHRoaXMsbWUpLHV0KHRoaXMsSCwidGVybWluYWwiKSk7Z2V0IGFjdGl2ZUJvdHRvbVBhbmVsKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGFjdGl2ZUJvdHRvbVBhbmVsKGllKXt0aGlzLiNwPWllfSNoPSh1dCh0aGlzLGNlKSx1dCh0aGlzLFcsW10pKTtnZXQgZGlhZ25vc3RpY01hcmtlcnMoKXtyZXR1cm4gdGhpcy4jaH1zZXQgZGlhZ25vc3RpY01hcmtlcnMoaWUpe3RoaXMuI2g9aWV9ZWRpdG9yRWxlbWVudD0odXQodGhpcyxEKSxudWxsKTtpbml0aWFsaXphdGlvblN0YXJ0ZWQ9ITE7aW50ZWxsaVNlbnNlTWFuYWdlcj1udWxsO2ludGVsbGlTZW5zZUluaXRpYWxpemVkPSExO25vZGVNb2R1bGVzV2F0Y2hlcj1udWxsO25vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGw7aW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PW51bGw7b3BlbkZpbGVXYXRjaGVycz1uZXcgTWFwO2ZpbGVDaGFuZ2VEZWJvdW5jZT1uZXcgTWFwO2FjdGlvbmJhckVsZW1lbnQ9bnVsbDsjdT11dCh0aGlzLFosITEpO2dldCBhdXRvU2F2ZSgpe3JldHVybiB0aGlzLiN1fXNldCBhdXRvU2F2ZShpZSl7dGhpcy4jdT1pZX1hdXRvU2F2ZUludGVydmFsPSh1dCh0aGlzLFkpLG51bGwpOyNmPXV0KHRoaXMsZ2UsIiIpO2dldCBpbml0Q29tbWFuZCgpe3JldHVybiB0aGlzLiNmfXNldCBpbml0Q29tbWFuZChpZSl7dGhpcy4jZj1pZX0jbT0odXQodGhpcyxiZSksdXQodGhpcyxCLFtdKSk7Z2V0IGluaXRPdXRwdXQoKXtyZXR1cm4gdGhpcy4jbX1zZXQgaW5pdE91dHB1dChpZSl7dGhpcy4jbT1pZX0jZz0odXQodGhpcyxQKSx1dCh0aGlzLGZlLDI1MCkpO2dldCBjdXJyZW50RmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNnfXNldCBjdXJyZW50RmlsZVRyZWVXaWR0aChpZSl7dGhpcy4jZz1pZX0jYj0odXQodGhpcyxkZSksdXQodGhpcyxwZSwyMDApKTtnZXQgY3VycmVudFRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2J9c2V0IGN1cnJlbnRUZXJtaW5hbEhlaWdodChpZSl7dGhpcy4jYj1pZX0jdj0odXQodGhpcyx0ZSksdXQodGhpcyxGZSwhMSkpO2dldCBpc0RyYWdnaW5nRmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgaXNEcmFnZ2luZ0ZpbGVUcmVlKGllKXt0aGlzLiN2PWllfSN5PSh1dCh0aGlzLFdlKSx1dCh0aGlzLGVlLCExKSk7Z2V0IGlzRHJhZ2dpbmdUZXJtaW5hbCgpe3JldHVybiB0aGlzLiN5fXNldCBpc0RyYWdnaW5nVGVybWluYWwoaWUpe3RoaXMuI3k9aWV9I3g9KHV0KHRoaXMsYWUpLHV0KHRoaXMsUGUsITEpKTtnZXQgc2hvd0RpZmZWaWV3KCl7cmV0dXJuIHRoaXMuI3h9c2V0IHNob3dEaWZmVmlldyhpZSl7dGhpcy4jeD1pZX0jdz0odXQodGhpcyxWZSksdXQodGhpcyxvdCxudWxsKSk7Z2V0IGRpZmZWaWV3Q29uZmlnKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGRpZmZWaWV3Q29uZmlnKGllKXt0aGlzLiN3PWllfWtleWRvd25IYW5kbGVyPSh1dCh0aGlzLEx0KSxpZT0+eyhpZS5tZXRhS2V5fHxpZS5jdHJsS2V5KSYmaWUua2V5PT09InMiJiYhaWUuc2hpZnRLZXkmJihpZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUFjdGl2ZUZpbGUoKSksKGllLm1ldGFLZXl8fGllLmN0cmxLZXkpJiZpZS5zaGlmdEtleSYmaWUua2V5LnRvTG93ZXJDYXNlKCk9PT0icyImJihpZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUFsbEZpbGVzKCkpfSk7aGFuZGxlRmlsZVRyZWVNb3VzZURvd249aWU9PntpZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlVXApfTtoYW5kbGVGaWxlVHJlZU1vdXNlTW92ZT1pZT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZSlyZXR1cm47bGV0IHNlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksVGU9aWUuY2xpZW50WC1zZS5sZWZ0LGx0PTE1MCxjdD1zZS53aWR0aCouNSxmMT1NYXRoLm1heChsdCxNYXRoLm1pbihjdCxUZSkpO3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9ZjF9O2hhbmRsZUZpbGVUcmVlTW91c2VVcD0oKT0+e3RoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlVXApLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfTtoYW5kbGVUZXJtaW5hbE1vdXNlRG93bj1pZT0+e2llLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nVGVybWluYWw9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCl9O2hhbmRsZVRlcm1pbmFsTW91c2VNb3ZlPWllPT57aWYoIXRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsKXJldHVybjtsZXQgc2U9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxUZT1pZS5jbGllbnRZLXNlLnRvcCxsdD1zZS5oZWlnaHQtVGUsY3Q9MTAwLGYxPXNlLmhlaWdodCouNyxlaT1NYXRoLm1heChjdCxNYXRoLm1pbihmMSxsdCkpO3RoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PWVpfTtoYW5kbGVUZXJtaW5hbE1vdXNlVXA9KCk9Pnt0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlVGVybWluYWxNb3VzZVVwKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX07c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1vdXRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItYXJlYSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5maWxldHJlZS1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5maWxldHJlZS1wYW5lbC5jb2xsYXBzZWQgewogICAgICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItcGFuZWwgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtcGFuZWwgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1wYW5lbC5jb2xsYXBzZWQgewogICAgICAgIGhlaWdodDogMzJweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyIHsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXItdGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1hY3Rpb24gewogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAucGFuZWwtYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDE4JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYnMtYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDglKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC50YWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgbWluLXdpZHRoOiAxMjBweDsKICAgICAgICBtYXgtd2lkdGg6IDIwMHB4OwogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDk0JSkiLCJoc2woMCAwJSAxMCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTIlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWIuYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA1MCUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbmFtZSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2UgewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgLnRhYi1jbG9zZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyNSUpIil9OwogICAgICB9CgogICAgICAudGFiLW1vZGlmaWVkIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWJzLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItbWVudS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cywgYmFja2dyb3VuZCAwLjE1czsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItbWVudS1idXR0b246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDMycHg7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtcy1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAzMnB4OwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDU1JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAucGFuZWwtdGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3NSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi5hY3RpdmUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtoLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA1MCUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWItYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgbWluLXdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgICBwYWRkaW5nOiAwIDVweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA5cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDQ1JSkiKX07CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICB9CgogICAgICAucGFuZWwtdGFiLWJhZGdlLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCJoc2woNDAgNzAlIDUwJSkiLCJoc2woNDAgNzAlIDQ1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWItYmFkZ2Uubm9uZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLnByb2JsZW1zLWxpc3QgewogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICB9CgogICAgICAucHJvYmxlbS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlOwogICAgICB9CgogICAgICAucHJvYmxlbS1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbi5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uLndhcm5pbmcgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDQwIDcwJSA1MCUpIiwiaHNsKDQwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbS1kZXRhaWxzIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnByb2JsZW0tbWVzc2FnZSB7CiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgICAgfQoKICAgICAgLnByb2JsZW0tbG9jYXRpb24gewogICAgICAgIG1hcmdpbi10b3A6IDJweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW1zLWVtcHR5IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1NSUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDUwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuaW5pdGlhbGl6aW5nIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CgogICAgICAuaW5pdGlhbGl6aW5nIGRlZXMtaWNvbiB7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgfQoKICAgICAgLmluaXRpYWxpemluZyBkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3IHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIHdpZHRoOiA4MCU7CiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICBoZWlnaHQ6IDIwMHB4OwogICAgICB9CgogICAgICBkZWVzLXdvcmtzcGFjZS1maWxldHJlZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICBkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogUmVzaXplIGhhbmRsZXMgKi8KICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWwgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOmhvdmVyLAogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbC5kcmFnZ2luZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNThhNmZmIil9OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAgICAgd2lkdGg6IDJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmU3NjgxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDFweDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbC5kcmFnZ2luZzo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsIHsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBjdXJzb3I6IHJvdy1yZXNpemU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbDpob3ZlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbC5kcmFnZ2luZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNThhNmZmIil9OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2ZTc2ODEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZS1oYW5kbGUtaG9yaXpvbnRhbC5kcmFnZ2luZzo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAvKiBQcmV2ZW50IHRleHQgc2VsZWN0aW9uIHdoaWxlIGRyYWdnaW5nICovCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgLmZpbGV0cmVlLXBhbmVsLAogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyAuZWRpdG9yLXBhbmVsLAogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyAudGVybWluYWwtcGFuZWwgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgYF07cmVuZGVyKCl7bGV0IGllPVsid29ya3NwYWNlLWNvbnRhaW5lciIsdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWV8fHRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPyJkcmFnZ2luZyI6IiJdLmZpbHRlcihCb29sZWFuKS5qb2luKCIgIik7cmV0dXJuIHRoaXMuaXNJbml0aWFsaXppbmc/d2AKICAgICAgICA8ZGl2IGNsYXNzPSJpbml0aWFsaXppbmciPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bG9hZGVyMiJ9IGljb25TaXplPSIzMiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5Jbml0aWFsaXppbmcgd29ya3NwYWNlLi4uPC9zcGFuPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcKICAgICAgICAgICAgLmNvbW1hbmQ9JHt0aGlzLmluaXRDb21tYW5kfHwiIn0KICAgICAgICAgICAgLmxpbmVzPSR7dGhpcy5pbml0T3V0cHV0fQogICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldz4KICAgICAgICA8L2Rpdj4KICAgICAgYDp3YAogICAgICA8ZGl2IGNsYXNzPSJ3b3Jrc3BhY2Utb3V0ZXIiPgogICAgICAgIDxkaXYgY2xhc3M9IiR7aWV9Ij4KICAgICAgICAgIDwhLS0gRmlsZXRyZWUgcGFuZWwgKGZ1bGwgaGVpZ2h0KSAtLT4KICAgICAgICAgICR7dGhpcy5zaG93RmlsZVRyZWU/d2AKICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgIGNsYXNzPSJmaWxldHJlZS1wYW5lbCAke3RoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZD8iY29sbGFwc2VkIjoiIn0iCiAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke3RoaXMuaXNGaWxlVHJlZUNvbGxhcHNlZD8wOnRoaXMuY3VycmVudEZpbGVUcmVlV2lkdGh9cHgiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWUKICAgICAgICAgICAgICAgIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9CiAgICAgICAgICAgICAgICAuc2VsZWN0ZWRQYXRoPSR7dGhpcy5hY3RpdmVGaWxlUGF0aH0KICAgICAgICAgICAgICAgIEBmaWxlLXNlbGVjdD0ke3RoaXMuaGFuZGxlRmlsZVNlbGVjdH0KICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1maWxldHJlZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkPyIiOndgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUtdmVydGljYWwgJHt0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VEb3dufQogICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgPCEtLSBFZGl0b3IgKyBUZXJtaW5hbCBhcmVhIC0tPgogICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWFyZWEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItcGFuZWwiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYnMtYmFyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYnMtY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLm9wZW5GaWxlcy5tYXAoc2U9PndgCiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRhYiAke3NlLnBhdGg9PT10aGlzLmFjdGl2ZUZpbGVQYXRoPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmFjdGl2YXRlRmlsZShzZS5wYXRoKX0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAke3NlLm1vZGlmaWVkP3dgPHNwYW4gY2xhc3M9InRhYi1tb2RpZmllZCI+PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLW5hbWUiPiR7c2UubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGFiLWNsb3NlIiBAY2xpY2s9JHtUZT0+dGhpcy5jbG9zZUZpbGUoVGUsc2UucGF0aCl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1tZW51LWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5zaG93RWRpdG9yTWVudX0gdGl0bGU9IkVkaXRvciBvcHRpb25zIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6bW9yZVZlcnRpY2FsIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7dGhpcy5zaG93RGlmZlZpZXcmJnRoaXMuZGlmZlZpZXdDb25maWc/d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yCiAgICAgICAgICAgICAgICAgICAgLmZpbGVQYXRoPSR7dGhpcy5kaWZmVmlld0NvbmZpZy5maWxlUGF0aH0KICAgICAgICAgICAgICAgICAgICAub3JpZ2luYWxDb250ZW50PSR7dGhpcy5kaWZmVmlld0NvbmZpZy5vcmlnaW5hbENvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgLm1vZGlmaWVkQ29udGVudD0ke3RoaXMuZGlmZlZpZXdDb25maWcubW9kaWZpZWRDb250ZW50fQogICAgICAgICAgICAgICAgICAgIC5sYW5ndWFnZT0ke3RoaXMuZGlmZlZpZXdDb25maWcubGFuZ3VhZ2V9CiAgICAgICAgICAgICAgICAgICAgQGRpZmYtcmVzb2x2ZWQ9JHt0aGlzLmhhbmRsZURpZmZSZXNvbHZlZH0KICAgICAgICAgICAgICAgICAgICBAZGlmZi1jbG9zZWQ9JHsoKT0+e3RoaXMuc2hvd0RpZmZWaWV3PSExLHRoaXMuZGlmZlZpZXdDb25maWc9bnVsbH19CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yPgogICAgICAgICAgICAgICAgYDp0aGlzLm9wZW5GaWxlcy5sZW5ndGg9PT0wP3dgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmaWxlQ29kZSJ9IGljb25TaXplPSI0OCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+U2VsZWN0IGEgZmlsZSB0byBlZGl0PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6d2AKICAgICAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAgICAgICAgIC5maWxlUGF0aD0ke3RoaXMuYWN0aXZlRmlsZVBhdGh9CiAgICAgICAgICAgICAgICAgICAgLmNvbnRlbnQ9JHt0aGlzLmdldEFjdGl2ZUZpbGVDb250ZW50KCl9CiAgICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKHRoaXMuYWN0aXZlRmlsZVBhdGgpfQogICAgICAgICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGVlcy1hY3Rpb25iYXI+PC9kZWVzLWFjdGlvbmJhcj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIEhvcml6b250YWwgcmVzaXplIGhhbmRsZSBmb3IgdGVybWluYWwgLS0+CiAgICAgICAgICAgICR7dGhpcy5zaG93VGVybWluYWwmJiF0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/d2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZS1ob3Jpem9udGFsICR7dGhpcy5pc0RyYWdnaW5nVGVybWluYWw/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlRG93bn0KICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CgogICAgICAgICAgICA8IS0tIFRlcm1pbmFsIHBhbmVsIC0tPgogICAgICAgICAgICAke3RoaXMuc2hvd1Rlcm1pbmFsP3dgCiAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgY2xhc3M9InRlcm1pbmFsLXBhbmVsICR7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgICAgICAgIHN0eWxlPSJoZWlnaHQ6ICR7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPzMyOnRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0fXB4IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLXRhYnMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJwYW5lbC10YWIgJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InRlcm1pbmFsIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5hY3RpdmVCb3R0b21QYW5lbD0idGVybWluYWwifQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnRlcm1pbmFsIn0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIFRlcm1pbmFsCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InBhbmVsLXRhYiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0icHJvYmxlbXMiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPSJwcm9ibGVtcyJ9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2lyY2xlQWxlcnQifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgUHJvYmxlbXMKICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5sZW5ndGg+MD93YAogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFuZWwtdGFiLWJhZGdlICR7dGhpcy5nZXRFcnJvckNvdW50KCk9PT0wPyJ3YXJuaW5nIjoiIn0iPiR7dGhpcy5kaWFnbm9zdGljTWFya2Vycy5sZW5ndGh9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWRlci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1hY3Rpb24iIEBjbGljaz0ke3RoaXMudG9nZ2xlVGVybWluYWx9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgICAgICAgICAgICAuaWNvbj0ke3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD8ibHVjaWRlOmNoZXZyb25VcCI6Imx1Y2lkZTpjaGV2cm9uRG93biJ9CiAgICAgICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRlbnQiIHN0eWxlPSJkaXNwbGF5OiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0idGVybWluYWwiPyJibG9jayI6Im5vbmUifSI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS10ZXJtaW5hbAogICAgICAgICAgICAgICAgICAgIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke3RoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR9CiAgICAgICAgICAgICAgICAgICAgLnNldHVwQ29tbWFuZD0keyIifQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbXMtY29udGVudCIgc3R5bGU9ImRpc3BsYXk6ICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJwcm9ibGVtcyI/ImJsb2NrIjoibm9uZSJ9Ij4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclByb2JsZW1zUGFuZWwoKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gQm90dG9tIEJhciAoZnVsbCB3aWR0aCkgLS0+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLWJvdHRvbWJhcgogICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH0KICAgICAgICAgIEBydW4tcHJvY2Vzcz0ke3RoaXMuaGFuZGxlUnVuUHJvY2Vzc30KICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1ib3R0b21iYXI+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5rZXlkb3duSGFuZGxlcil9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMua2V5ZG93bkhhbmRsZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVGaWxlVHJlZU1vdXNlVXApLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApLHRoaXMuYXV0b1NhdmVJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2F2ZUludGVydmFsKSx0aGlzLmF1dG9TYXZlSW50ZXJ2YWw9bnVsbCksdGhpcy5zdG9wTm9kZU1vZHVsZXNXYXRjaGVyKCksdGhpcy5zdG9wQWxsRmlsZVdhdGNoZXJzKCl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aD10aGlzLmZpbGVUcmVlV2lkdGgsdGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9dGhpcy50ZXJtaW5hbEhlaWdodCx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmluaXRpYWxpemVXb3Jrc3BhY2UoKX1hc3luYyB1cGRhdGVkKGllKXtpZS5oYXMoImV4ZWN1dGlvbkVudmlyb25tZW50IikmJnRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJmF3YWl0IHRoaXMuaW5pdGlhbGl6ZVdvcmtzcGFjZSgpLHRoaXMuYWN0aW9uYmFyRWxlbWVudHx8KHRoaXMuYWN0aW9uYmFyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0b3ItcGFuZWwgZGVlcy1hY3Rpb25iYXIiKSl9YXN5bmMgaW5pdGlhbGl6ZVdvcmtzcGFjZSgpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJiF0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZCl7dGhpcy5pbml0aWFsaXphdGlvblN0YXJ0ZWQ9ITAsdGhpcy5pc0luaXRpYWxpemluZz0hMDt0cnl7dGhpcy5pbml0aWFsaXphdGlvblByb21pc2U/YXdhaXQgdGhpcy5pbml0aWFsaXphdGlvblByb21pc2U6dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5pbml0KCksYXdhaXQgdGhpcy5leGVjdXRlT25Jbml0Q29tbWFuZCgpfWNhdGNoKGllKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSB3b3Jrc3BhY2U6IixpZSksdGhpcy5pbml0aWFsaXphdGlvblN0YXJ0ZWQ9ITF9ZmluYWxseXt0aGlzLmlzSW5pdGlhbGl6aW5nPSExfX19YXN5bmMgZXhlY3V0ZU9uSW5pdENvbW1hbmQoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cygiL25wbWV4dHJhLmpzb24iKSl7bGV0IGllPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoIi9ucG1leHRyYS5qc29uIiksVGU9SlNPTi5wYXJzZShpZSk/LmRlZXNFZGl0b3JXb3Jrc3BhY2U/Lm9uSW5pdDtpZihUZSYmdHlwZW9mIFRlPT0ic3RyaW5nIil7Y29uc29sZS5sb2coIkV4ZWN1dGluZyBvbkluaXQgY29tbWFuZDoiLFRlKSx0aGlzLmluaXRDb21tYW5kPVRlLHRoaXMuaW5pdE91dHB1dD1bXTtsZXRbbHQsLi4uY3RdPVRlLnNwbGl0KCIgIiksZjE9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bihsdCxjdCk7ZjEub3V0cHV0LnBpcGVUbyhuZXcgV3JpdGFibGVTdHJlYW0oe3dyaXRlOlhyPT57bGV0IEtyPVhyLnNwbGl0KGAKYCk7Zm9yKGxldCBJZSBvZiBLcilJZSYmKHRoaXMuaW5pdE91dHB1dD1bLi4udGhpcy5pbml0T3V0cHV0LEllXSl9fSkpO2xldCBlaT1hd2FpdCBmMS5leGl0O2NvbnNvbGUubG9nKCJvbkluaXQgY29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6IixlaSksdGhpcy5pbml0T3V0cHV0PVsuLi50aGlzLmluaXRPdXRwdXQsIiIsYENvbW1hbmQgY29tcGxldGVkIHdpdGggZXhpdCBjb2RlOiAke2VpfWBdfX19Y2F0Y2goaWUpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGV4ZWN1dGUgb25Jbml0IGNvbW1hbmQ6IixpZSl9fWFzeW5jIGluaXRpYWxpemVJbnRlbGxpU2Vuc2UoKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZClyZXR1cm47bGV0IGllPXdpbmRvdy5tb25hY287aWYoaWV8fChhd2FpdCBuZXcgUHJvbWlzZShzZT0+c2V0VGltZW91dChzZSwxMDApKSxpZT13aW5kb3cubW9uYWNvKSwhaWUpe2NvbnNvbGUud2FybigiTW9uYWNvIG5vdCB5ZXQgbG9hZGVkLCBJbnRlbGxpU2Vuc2Ugd2lsbCBiZSBpbml0aWFsaXplZCBsYXRlciIpO3JldHVybn10aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkPSEwLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlcj1uZXcgc2QsYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLmluaXQoaWUsdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCksdGhpcy5zZXR1cE1hcmtlckxpc3RlbmVyKCksdGhpcy5zdGFydE5vZGVNb2R1bGVzV2F0Y2hlcigpLGF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5zY2FuQW5kTG9hZE5ld1BhY2thZ2VUeXBlcygpfXN0YXJ0Tm9kZU1vZHVsZXNXYXRjaGVyKCl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5ub2RlTW9kdWxlc1dhdGNoZXIpKXRyeXt0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlcj10aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndhdGNoKCIvbm9kZV9tb2R1bGVzIiwoaWUsc2UpPT57dGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQpLHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQ9c2V0VGltZW91dChhc3luYygpPT57dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiZhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuc2NhbkFuZExvYWROZXdQYWNrYWdlVHlwZXMoKX0sMmUzKX0se3JlY3Vyc2l2ZTohMH0pfWNhdGNoKGllKXtjb25zb2xlLndhcm4oIkNvdWxkIG5vdCB3YXRjaCBub2RlX21vZHVsZXM6IixpZSl9fXN0b3BOb2RlTW9kdWxlc1dhdGNoZXIoKXt0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlciYmKHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyLnN0b3AoKSx0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlcj1udWxsKSx0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQpLHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQ9bnVsbCl9c3RhcnRXYXRjaGluZ0ZpbGUoaWUpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMub3BlbkZpbGVXYXRjaGVycy5oYXMoaWUpKSl0cnl7bGV0IHNlPXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud2F0Y2goaWUsKFRlLGx0KT0+e2xldCBjdD10aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5nZXQoaWUpO2N0JiZjbGVhclRpbWVvdXQoY3QpO2xldCBmMT1zZXRUaW1lb3V0KCgpPT57dGhpcy5oYW5kbGVFeHRlcm5hbEZpbGVDaGFuZ2UoaWUpLHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLmRlbGV0ZShpZSl9LDMwMCk7dGhpcy5maWxlQ2hhbmdlRGVib3VuY2Uuc2V0KGllLGYxKX0pO3RoaXMub3BlbkZpbGVXYXRjaGVycy5zZXQoaWUsc2UpfWNhdGNoKHNlKXtjb25zb2xlLndhcm4oYENvdWxkIG5vdCB3YXRjaCBmaWxlICR7aWV9OmAsc2UpfX1zdG9wV2F0Y2hpbmdGaWxlKGllKXtsZXQgc2U9dGhpcy5vcGVuRmlsZVdhdGNoZXJzLmdldChpZSk7c2UmJihzZS5zdG9wKCksdGhpcy5vcGVuRmlsZVdhdGNoZXJzLmRlbGV0ZShpZSkpO2xldCBUZT10aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5nZXQoaWUpO1RlJiYoY2xlYXJUaW1lb3V0KFRlKSx0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5kZWxldGUoaWUpKX1zdG9wQWxsRmlsZVdhdGNoZXJzKCl7Zm9yKGxldCBpZSBvZiB0aGlzLm9wZW5GaWxlV2F0Y2hlcnMudmFsdWVzKCkpaWUuc3RvcCgpO3RoaXMub3BlbkZpbGVXYXRjaGVycy5jbGVhcigpO2ZvcihsZXQgaWUgb2YgdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UudmFsdWVzKCkpY2xlYXJUaW1lb3V0KGllKTt0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5jbGVhcigpfWFzeW5jIGhhbmRsZUV4dGVybmFsRmlsZUNoYW5nZShpZSl7bGV0IHNlPXRoaXMub3BlbkZpbGVzLmZpbmQoVGU9PlRlLnBhdGg9PT1pZSk7aWYoISghc2V8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSl0cnl7bGV0IFRlPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoaWUpO2lmKFRlPT09c2UuY29udGVudClyZXR1cm47aWYoc2UubW9kaWZpZWQpe2xldCBsdD1hd2FpdCB0aGlzLmFjdGlvbmJhckVsZW1lbnQ/LnNob3coe21lc3NhZ2U6YCIke3NlLm5hbWV9IiBjaGFuZ2VkIG9uIGRpc2suIFdoYXQgZG8geW91IHdhbnQgdG8gZG8/YCx0eXBlOiJxdWVzdGlvbiIsaWNvbjoibHVjaWRlOmdpdE1lcmdlIixhY3Rpb25zOlt7aWQ6ImxvYWQtZGlzayIsbGFiZWw6IkxvYWQgZnJvbSBEaXNrIixwcmltYXJ5OiEwfSx7aWQ6InNhdmUtbG9jYWwiLGxhYmVsOiJTYXZlIExvY2FsIHRvIERpc2sifSx7aWQ6ImNvbXBhcmUiLGxhYmVsOiJDb21wYXJlIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjE1ZTMsZGVmYXVsdEFjdGlvbklkOiJsb2FkLWRpc2sifSxkaXNtaXNzaWJsZTohMH0pO2x0Py5hY3Rpb25JZD09PSJsb2FkLWRpc2siP2F3YWl0IHRoaXMudXBkYXRlRmlsZUNvbnRlbnQoaWUsVGUsITEpOmx0Py5hY3Rpb25JZD09PSJzYXZlLWxvY2FsIj8oYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoaWUsc2UuY29udGVudCksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKGN0PT5jdC5wYXRoPT09aWU/ey4uLmN0LG1vZGlmaWVkOiExfTpjdCkpOmx0Py5hY3Rpb25JZD09PSJjb21wYXJlIiYmdGhpcy5vcGVuRGlmZlZpZXcoaWUsc2UuY29udGVudCxUZSl9ZWxzZSBhd2FpdCB0aGlzLnVwZGF0ZUZpbGVDb250ZW50KGllLFRlLCEwKX1jYXRjaChUZSl7Y29uc29sZS53YXJuKGBGYWlsZWQgdG8gaGFuZGxlIGV4dGVybmFsIGNoYW5nZSBmb3IgJHtpZX06YCxUZSl9fWFzeW5jIHVwZGF0ZUZpbGVDb250ZW50KGllLHNlLFRlKXtpZih0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAobHQ9Pmx0LnBhdGg9PT1pZT97Li4ubHQsY29udGVudDpzZSxtb2RpZmllZDohMX06bHQpLGllPT09dGhpcy5hY3RpdmVGaWxlUGF0aCl7bGV0IGx0PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7bHQmJmF3YWl0IGx0LnNldENvbnRlbnRFeHRlcm5hbChzZSxUZSl9fW9wZW5EaWZmVmlldyhpZSxzZSxUZSl7dGhpcy5kaWZmVmlld0NvbmZpZz17ZmlsZVBhdGg6aWUsb3JpZ2luYWxDb250ZW50OlRlLG1vZGlmaWVkQ29udGVudDpzZSxsYW5ndWFnZTp0aGlzLmdldExhbmd1YWdlRnJvbVBhdGgoaWUpfSx0aGlzLnNob3dEaWZmVmlldz0hMH1hc3luYyBoYW5kbGVEaWZmUmVzb2x2ZWQoaWUpe2xldHthY3Rpb246c2UsY29udGVudDpUZX09aWUuZGV0YWlsLGx0PXRoaXMuZGlmZlZpZXdDb25maWc/LmZpbGVQYXRoO2lmKCFsdHx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe3RoaXMuc2hvd0RpZmZWaWV3PSExLHRoaXMuZGlmZlZpZXdDb25maWc9bnVsbDtyZXR1cm59aWYoc2U9PT0idXNlLWxvY2FsIil7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUobHQsVGUpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChjdD0+Y3QucGF0aD09PWx0P3suLi5jdCxjb250ZW50OlRlLG1vZGlmaWVkOiExfTpjdCksbHQ9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKXtsZXQgY3Q9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKTtjdCYmYXdhaXQgY3Quc2V0Q29udGVudEV4dGVybmFsKFRlLCExKX19ZWxzZSBzZT09PSJ1c2UtZGlzayImJmF3YWl0IHRoaXMudXBkYXRlRmlsZUNvbnRlbnQobHQsVGUsITEpO3RoaXMuc2hvd0RpZmZWaWV3PSExLHRoaXMuZGlmZlZpZXdDb25maWc9bnVsbH1hc3luYyBoYW5kbGVGaWxlU2VsZWN0KGllKXtsZXR7cGF0aDpzZSxuYW1lOlRlfT1pZS5kZXRhaWw7YXdhaXQgdGhpcy5vcGVuRmlsZShzZSxUZSl9YXN5bmMgb3BlbkZpbGUoaWUsc2Upe2lmKHRoaXMub3BlbkZpbGVzLmZpbmQobHQ9Pmx0LnBhdGg9PT1pZSkpe3RoaXMuYWN0aXZlRmlsZVBhdGg9aWU7cmV0dXJufWlmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2xldCBsdD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGllKTtpZih0aGlzLm9wZW5GaWxlcz1bLi4udGhpcy5vcGVuRmlsZXMse3BhdGg6aWUsbmFtZTpzZSxjb250ZW50Omx0LG1vZGlmaWVkOiExfV0sdGhpcy5hY3RpdmVGaWxlUGF0aD1pZSx0aGlzLnN0YXJ0V2F0Y2hpbmdGaWxlKGllKSwhdGhpcy5pbnRlbGxpU2Vuc2VJbml0aWFsaXplZCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShmMT0+c2V0VGltZW91dChmMSw1MDApKSxhd2FpdCB0aGlzLmluaXRpYWxpemVJbnRlbGxpU2Vuc2UoKTtsZXQgY3Q9dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKGllKTt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJihjdD09PSJ0eXBlc2NyaXB0Inx8Y3Q9PT0iamF2YXNjcmlwdCIpJiZhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIucHJvY2Vzc0NvbnRlbnRDaGFuZ2UobHQpfX1jYXRjaChsdCl7Y29uc29sZS5lcnJvcihgRmFpbGVkIHRvIG9wZW4gZmlsZSAke2llfTpgLGx0KX19YWN0aXZhdGVGaWxlKGllKXt0aGlzLmFjdGl2ZUZpbGVQYXRoPWllfWNsb3NlRmlsZShpZSxzZSl7aWUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IFRlPXRoaXMub3BlbkZpbGVzLmZpbmRJbmRleChjdD0+Y3QucGF0aD09PXNlKTtpZihUZT09PS0xKXJldHVybjtsZXQgbHQ9dGhpcy5vcGVuRmlsZXNbVGVdO2lmKCEobHQubW9kaWZpZWQmJiFjb25maXJtKGAke2x0Lm5hbWV9IGhhcyB1bnNhdmVkIGNoYW5nZXMuIENsb3NlIGFueXdheT9gKSkmJih0aGlzLnN0b3BXYXRjaGluZ0ZpbGUoc2UpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLmZpbHRlcihjdD0+Y3QucGF0aCE9PXNlKSx0aGlzLmFjdGl2ZUZpbGVQYXRoPT09c2UpKWlmKHRoaXMub3BlbkZpbGVzLmxlbmd0aD4wKXtsZXQgY3Q9TWF0aC5taW4oVGUsdGhpcy5vcGVuRmlsZXMubGVuZ3RoLTEpO3RoaXMuYWN0aXZlRmlsZVBhdGg9dGhpcy5vcGVuRmlsZXNbY3RdLnBhdGh9ZWxzZSB0aGlzLmFjdGl2ZUZpbGVQYXRoPSIifWdldEFjdGl2ZUZpbGVDb250ZW50KCl7cmV0dXJuIHRoaXMub3BlbkZpbGVzLmZpbmQoc2U9PnNlLnBhdGg9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKT8uY29udGVudHx8IiJ9aGFuZGxlQ29udGVudENoYW5nZShpZSl7bGV0IHNlPWllLmRldGFpbCxUZT10aGlzLm9wZW5GaWxlcy5maW5kSW5kZXgoY3Q9PmN0LnBhdGg9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKTtpZihUZT09PS0xKXJldHVybjtsZXQgbHQ9dGhpcy5vcGVuRmlsZXNbVGVdO2lmKGx0LmNvbnRlbnQhPT1zZSl7dGhpcy5vcGVuRmlsZXM9Wy4uLnRoaXMub3BlbkZpbGVzLnNsaWNlKDAsVGUpLHsuLi5sdCxjb250ZW50OnNlLG1vZGlmaWVkOiEwfSwuLi50aGlzLm9wZW5GaWxlcy5zbGljZShUZSsxKV07bGV0IGN0PXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aCh0aGlzLmFjdGl2ZUZpbGVQYXRoKTt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJihjdD09PSJ0eXBlc2NyaXB0Inx8Y3Q9PT0iamF2YXNjcmlwdCIpJiYodGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLmludGVsbGlTZW5zZURlYm91bmNlVGltZW91dCksdGhpcy5pbnRlbGxpU2Vuc2VEZWJvdW5jZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlcj8ucHJvY2Vzc0NvbnRlbnRDaGFuZ2Uoc2UpfSw1MDApKX19Z2V0TGFuZ3VhZ2VGcm9tUGF0aChpZSl7bGV0IHNlPWllLnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCk7cmV0dXJue3RzOiJ0eXBlc2NyaXB0Iix0c3g6InR5cGVzY3JpcHQiLGpzOiJqYXZhc2NyaXB0Iixqc3g6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6Imh0bWwiLGNzczoiY3NzIixzY3NzOiJzY3NzIixsZXNzOiJsZXNzIixtZDoibWFya2Rvd24iLHlhbWw6InlhbWwiLHltbDoieWFtbCIseG1sOiJ4bWwiLHNxbDoic3FsIixweToicHl0aG9uIixzaDoic2hlbGwiLGJhc2g6InNoZWxsIn1bc2V8fCIiXXx8InBsYWludGV4dCJ9dG9nZ2xlVGVybWluYWwoKXt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ9IXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZH1hc3luYyBzYXZlQWN0aXZlRmlsZSgpe2xldCBpZT10aGlzLm9wZW5GaWxlcy5maW5kKHNlPT5zZS5wYXRoPT09dGhpcy5hY3RpdmVGaWxlUGF0aCk7aWYoISghaWV8fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSl0cnl7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoaWUucGF0aCxpZS5jb250ZW50KSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoc2U9PnNlLnBhdGg9PT1pZS5wYXRoP3suLi5zZSxtb2RpZmllZDohMX06c2UpLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLmFkZEZpbGVNb2RlbChpZS5wYXRoLGllLmNvbnRlbnQpfWNhdGNoKHNlKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gc2F2ZSBmaWxlOiIsc2UpfX1hc3luYyBzYXZlQWxsRmlsZXMoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXtmb3IobGV0IGllIG9mIHRoaXMub3BlbkZpbGVzLmZpbHRlcihzZT0+c2UubW9kaWZpZWQpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShpZS5wYXRoLGllLmNvbnRlbnQpLHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLmFkZEZpbGVNb2RlbChpZS5wYXRoLGllLmNvbnRlbnQpfWNhdGNoKHNlKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gc2F2ZSAke2llLnBhdGh9OmAsc2UpfXRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChpZT0+KHsuLi5pZSxtb2RpZmllZDohMX0pKX19YXN5bmMgc2hvd0VkaXRvck1lbnUoaWUpe2llLnN0b3BQcm9wYWdhdGlvbigpO2xldCBzZT1be25hbWU6dGhpcy5hdXRvU2F2ZT8iXHUyNzEzIEF1dG8gU2F2ZSI6IkF1dG8gU2F2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246YXN5bmMoKT0+dGhpcy50b2dnbGVBdXRvU2F2ZSgpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNhdmUiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuc2F2ZUFjdGl2ZUZpbGUoKX0se25hbWU6IlNhdmUgQWxsIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjphc3luYygpPT50aGlzLnNhdmVBbGxGaWxlcygpfV07YXdhaXQgVXQub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoaWUsc2UpfXRvZ2dsZUF1dG9TYXZlKCl7dGhpcy5hdXRvU2F2ZT0hdGhpcy5hdXRvU2F2ZSx0aGlzLmF1dG9TYXZlP3RoaXMuYXV0b1NhdmVJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e3RoaXMub3BlbkZpbGVzLnNvbWUoc2U9PnNlLm1vZGlmaWVkKSYmdGhpcy5zYXZlQWxsRmlsZXMoKX0sMmUzKTp0aGlzLmF1dG9TYXZlSW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuYXV0b1NhdmVJbnRlcnZhbCksdGhpcy5hdXRvU2F2ZUludGVydmFsPW51bGwpfWdldEVycm9yQ291bnQoKXtyZXR1cm4gdGhpcy5kaWFnbm9zdGljTWFya2Vycy5maWx0ZXIoaWU9PmllLnNldmVyaXR5PT09OCkubGVuZ3RofXJlbmRlclByb2JsZW1zUGFuZWwoKXtyZXR1cm4gdGhpcy5kaWFnbm9zdGljTWFya2Vycy5sZW5ndGg9PT0wP3dgCiAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbXMtZW1wdHkiPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2tDaXJjbGUifSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+Tm8gcHJvYmxlbXMgZGV0ZWN0ZWQ8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6d2AKICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbXMtbGlzdCI+CiAgICAgICAgJHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLm1hcChpZT0+d2AKICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0taXRlbSIgQGNsaWNrPSR7KCk9PnRoaXMubmF2aWdhdGVUb1Byb2JsZW0oaWUpfT4KICAgICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAgIGNsYXNzPSJwcm9ibGVtLWljb24gJHtpZS5zZXZlcml0eT09PTg/ImVycm9yIjoid2FybmluZyJ9IgogICAgICAgICAgICAgIC5pY29uPSR7aWUuc2V2ZXJpdHk9PT04PyJsdWNpZGU6Y2lyY2xlWCI6Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0In0KICAgICAgICAgICAgICBpY29uU2l6ZT0iMTQiCiAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1kZXRhaWxzIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLW1lc3NhZ2UiPiR7aWUubWVzc2FnZX08L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWxvY2F0aW9uIj4KICAgICAgICAgICAgICAgICR7aWUucmVzb3VyY2UucGF0aC5zcGxpdCgiLyIpLnBvcCgpfSAoJHtpZS5zdGFydExpbmVOdW1iZXJ9LCAke2llLnN0YXJ0Q29sdW1ufSkKICAgICAgICAgICAgICAgICR7aWUuc291cmNlP2BbJHtpZS5zb3VyY2V9XWA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBuYXZpZ2F0ZVRvUHJvYmxlbShpZSl7bGV0IHNlPWllLnJlc291cmNlLnBhdGgsVGU9c2Uuc3BsaXQoIi8iKS5wb3AoKXx8IiI7dGhpcy5vcGVuRmlsZXMuZmluZChmMT0+ZjEucGF0aD09PXNlKT90aGlzLmFjdGl2ZUZpbGVQYXRoPXNlOmF3YWl0IHRoaXMub3BlbkZpbGUoc2UsVGUpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7bGV0IGN0PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIik7aWYoY3Qpe2xldCBmMT1hd2FpdCBjdC5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO2YxLnJldmVhbExpbmVJbkNlbnRlcihpZS5zdGFydExpbmVOdW1iZXIpLGYxLnNldFBvc2l0aW9uKHtsaW5lTnVtYmVyOmllLnN0YXJ0TGluZU51bWJlcixjb2x1bW46aWUuc3RhcnRDb2x1bW59KSxmMS5mb2N1cygpfX1zZXR1cE1hcmtlckxpc3RlbmVyKCl7bGV0IGllPXdpbmRvdy5tb25hY287aWUmJihpZS5lZGl0b3Iub25EaWRDaGFuZ2VNYXJrZXJzKHNlPT57dGhpcy51cGRhdGVEaWFnbm9zdGljTWFya2VycygpfSksdGhpcy51cGRhdGVEaWFnbm9zdGljTWFya2VycygpKX11cGRhdGVEaWFnbm9zdGljTWFya2Vycygpe2xldCBpZT13aW5kb3cubW9uYWNvO2lmKCFpZSlyZXR1cm47bGV0IHNlPWllLmVkaXRvci5nZXRNb2RlbE1hcmtlcnMoe30pO3RoaXMuZGlhZ25vc3RpY01hcmtlcnM9c2UubWFwKFRlPT4oe21lc3NhZ2U6VGUubWVzc2FnZSxzZXZlcml0eTpUZS5zZXZlcml0eSxzdGFydExpbmVOdW1iZXI6VGUuc3RhcnRMaW5lTnVtYmVyLHN0YXJ0Q29sdW1uOlRlLnN0YXJ0Q29sdW1uLGVuZExpbmVOdW1iZXI6VGUuZW5kTGluZU51bWJlcixlbmRDb2x1bW46VGUuZW5kQ29sdW1uLHNvdXJjZTpUZS5zb3VyY2UscmVzb3VyY2U6e3BhdGg6VGUucmVzb3VyY2UucGF0aH19KSl9YXN5bmMgaGFuZGxlUnVuUHJvY2VzcyhpZSl7bGV0IHNlPWllLmRldGFpbCxUZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIik7aWYoIVRlKXtjb25zb2xlLndhcm4oIlRlcm1pbmFsIGNvbXBvbmVudCBub3QgZm91bmQiKTtyZXR1cm59dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkJiYodGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPSExKSx0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPSJ0ZXJtaW5hbCIsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBUZS5jcmVhdGVQcm9jZXNzVGFiKHt0eXBlOnNlLnR5cGUsbGFiZWw6c2UubGFiZWwsY29tbWFuZDpzZS5jb21tYW5kLGFyZ3M6c2UuYXJncyxtZXRhZGF0YTpzZS5tZXRhZGF0YSxzd2l0Y2hUb1RhYjohMH0pfXNldEZpbGVUcmVlV2lkdGgoaWUpe2xldCBUZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKi41O3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9TWF0aC5tYXgoMTUwLE1hdGgubWluKFRlLGllKSksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9c2V0VGVybWluYWxIZWlnaHQoaWUpe2xldCBUZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCouNzt0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1NYXRoLm1heCgxMDAsTWF0aC5taW4oVGUsaWUpKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX1yZXNldExheW91dCgpe3RoaXMuY3VycmVudEZpbGVUcmVlV2lkdGg9dGhpcy5maWxlVHJlZVdpZHRoLHRoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PXRoaXMudGVybWluYWxIZWlnaHQsd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9c3RhdGlje3V0KGksYSl9fTtyZXR1cm4gWnQ9aX0pKCl9KTt2YXIgYnh0PWIoKCk9PntneHQoKTtMaigpfSk7dmFyIHZ4dD1iKCgpPT57WjAoKX0pO3ZhciB5eHQ9YigoKT0+e3p3KCl9KTt2YXIgeHh0PWIoKCk9Pnt9KTt2YXIgd3h0PWIoKCk9Pnt0ZCgpO3h4dCgpO3ZqKCl9KTt2YXIgTXh0PWIoKCk9PntfaigpfSk7dmFyIG5kLEdzLHI5Mix6eHQsa3h0PWIoKCk9Pnt1ZSgpO3FlKCk7WjAoKTtuZD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEdzPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLHI9MDtyPGUubGVuZ3RoO3IrKylhPWk/ZVtyXS5jYWxsKHQsYSk6ZVtyXS5jYWxsKHQpO3JldHVybiBpP2E6dm9pZCAwfSxyOTI9cnQucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKSx6eHQ9KCgpPT57bGV0IHQ9W2hlKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93biIpXSxlLGE9W10saSxyPXhlLHMsbj1bXSxvPVtdLGQsYz1bXSxwPVtdLGwsZj1bXSxnPVtdLHksdj1bXSxtPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgcntzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgTT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShyW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtzPVtJKHt0eXBlOk51bWJlcn0pXSxkPVtJKHt0eXBlOk51bWJlcn0pXSxsPVtKKCldLHk9W0ooKV0sbmQodGhpcyxudWxsLHMse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzcGxpdFJhdGlvIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ic3BsaXRSYXRpbyJpbiBTLGdldDpTPT5TLnNwbGl0UmF0aW8sc2V0OihTLEYpPT57Uy5zcGxpdFJhdGlvPUZ9fSxtZXRhZGF0YTpNfSxuLG8pLG5kKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluUGFuZWxTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ibWluUGFuZWxTaXplImluIFMsZ2V0OlM9PlMubWluUGFuZWxTaXplLHNldDooUyxGKT0+e1MubWluUGFuZWxTaXplPUZ9fSxtZXRhZGF0YTpNfSxjLHApLG5kKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFNwbGl0UmF0aW8iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJjdXJyZW50U3BsaXRSYXRpbyJpbiBTLGdldDpTPT5TLmN1cnJlbnRTcGxpdFJhdGlvLHNldDooUyxGKT0+e1MuY3VycmVudFNwbGl0UmF0aW89Rn19LG1ldGFkYXRhOk19LGYsZyksbmQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iaXNEcmFnZ2luZyJpbiBTLGdldDpTPT5TLmlzRHJhZ2dpbmcsc2V0OihTLEYpPT57Uy5pc0RyYWdnaW5nPUZ9fSxtZXRhZGF0YTpNfSx2LG0pLG5kKG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOk19LG51bGwsYSkseD1pPWUudmFsdWUsTSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpNfSl9c3RhdGljIGRlbW89KCk9PndgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3duPjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd24+YDtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBzdHlsZXM9W0NlLGguZGVmYXVsdFN0eWxlcyxRYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLnNwbGl0Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgfQoKICAgICAgLmVkaXRvckNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtaW4td2lkdGg6IDEwMHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGUgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZTVlN2ViIiwiIzMwMzYzZCIpfTsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZTpob3ZlciwKICAgICAgLnJlc2l6ZUhhbmRsZS5kcmFnZ2luZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHtoLmJkVGhlbWUoIiMzYjgyZjYiLCIjNThhNmZmIil9OwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB3aWR0aDogMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiIzljYTNhZiIsIiM2ZTc2ODEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZTpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemVIYW5kbGUuZHJhZ2dpbmc6OmFmdGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke2guYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm91dGxldENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBtaW4td2lkdGg6IDEwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7aC5iZFRoZW1lKCIjZmZmZmZmIiwiIzBkMTExNyIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNDI5MmYiLCIjZTZlZGYzIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdOb3RvIFNhbnMnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAvKiBQcmV2ZW50IHRleHQgc2VsZWN0aW9uIHdoaWxlIGRyYWdnaW5nICovCiAgICAgIC5zcGxpdENvbnRhaW5lci5kcmFnZ2luZyB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zcGxpdENvbnRhaW5lci5kcmFnZ2luZyAuZWRpdG9yQ29udGFpbmVyLAogICAgICAuc3BsaXRDb250YWluZXIuZHJhZ2dpbmcgLm91dGxldENvbnRhaW5lciB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGBdOyNlPUdzKHRoaXMsbiw1MCk7Z2V0IHNwbGl0UmF0aW8oKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3BsaXRSYXRpbyhNKXt0aGlzLiNlPU19I3Q9KEdzKHRoaXMsbyksR3ModGhpcyxjLDEwKSk7Z2V0IG1pblBhbmVsU2l6ZSgpe3JldHVybiB0aGlzLiN0fXNldCBtaW5QYW5lbFNpemUoTSl7dGhpcy4jdD1NfSNhPShHcyh0aGlzLHApLEdzKHRoaXMsZiw1MCkpO2dldCBjdXJyZW50U3BsaXRSYXRpbygpe3JldHVybiB0aGlzLiNhfXNldCBjdXJyZW50U3BsaXRSYXRpbyhNKXt0aGlzLiNhPU19I2k9KEdzKHRoaXMsZyksR3ModGhpcyx2LCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNEcmFnZ2luZyhNKXt0aGlzLiNpPU19cmVzaXplSGFuZGxlRWxlbWVudD1Hcyh0aGlzLG0pO2NvbnRhaW5lckVsZW1lbnQ7cmVuZGVyKCl7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InNwbGl0Q29udGFpbmVyICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3JDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvfSUiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAubGFuZ3VhZ2U9JHsibWFya2Rvd24ifQogICAgICAgICAgICAuY29udGVudD0ke2AjIGEgdGVzdCBjb250ZW50CgpUaGlzIGlzIHRlc3QgY29udGVudCB0aGF0IGlzIG9mIGxvbmdlciBmb3JtIGFuIGhvcGVmdWxseSBzdGFydHMgdG8gd3JhcCB3aGVuIEkgbmVlZCBpdC4gQW5kIHllcywgaXQgZG9lcyBwZXJmZWN0bHkuIG5pY2UuCgpUZXN0IHwgSGVsbG8KLS0tIHwgLS0tClllYWggfCBTbyBnb29kCgpUaGlzIGlzIHJlYWwgYXNzZXQgSSB0aGluay4gV2h5IHdvdWxkIHdlIHdhbnQgdG8gbGVhdmUgdGhhdCBvbiB0aGUgdGFibGU/IENhbiB5b3UgdGVsbCBteSB0aGF0PwoKV2h5IGFyZSB3ZSBoZXJlPwoKRG8geW91IGtub3c/Cgo+IG5vdGU6ClRoZXJlIGlzIHNvbWV0aGluZyBnb2luZyBvbi4KClxgXGBcYHR5cGVzY3JpcHQKY29uc3QgaGVsbG8gPSAneWVzJwpcYFxgXGAKYH0KICAgICAgICAgICAgd29yZFdyYXA9ImJvdW5kZWQiCiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9InJlc2l6ZUhhbmRsZSAke3RoaXMuaXNEcmFnZ2luZz8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZU1vdXNlRG93bn0KICAgICAgICA+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ib3V0bGV0Q29udGFpbmVyIiBzdHlsZT0id2lkdGg6ICR7MTAwLXRoaXMuY3VycmVudFNwbGl0UmF0aW99JSI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChNKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoTSksdGhpcy5jdXJyZW50U3BsaXRSYXRpbz10aGlzLnNwbGl0UmF0aW8sdGhpcy5jb250YWluZXJFbGVtZW50PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3BsaXRDb250YWluZXIiKSx0aGlzLnJlc2l6ZUhhbmRsZUVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5yZXNpemVIYW5kbGUiKTtsZXQgUz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksRj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKSxrPWF3YWl0IG5ldyBydC5wbHVnaW5zLnNtYXJ0bWFya2Rvd24uU21hcnRNYXJrZG93bigpLmdldE1kUGFyc2VkUmVzdWx0RnJvbU1hcmtkb3duKCJsb2FkaW5nLi4uIik7Uy5jb250ZW50U3ViamVjdC5zdWJzY3JpYmUoYXN5bmMgTj0+e2F3YWl0IGsudXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKE4pO2xldCBMPWsuaHRtbDtGLnVwZGF0ZUh0bWxUZXh0KEwpfSl9aGFuZGxlTW91c2VEb3duPU09PntNLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc0RyYWdnaW5nPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCl9O2hhbmRsZU1vdXNlTW92ZT1NPT57aWYoIXRoaXMuaXNEcmFnZ2luZ3x8IXRoaXMuY29udGFpbmVyRWxlbWVudClyZXR1cm47bGV0IFM9dGhpcy5jb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEY9Uy53aWR0aCxrPShNLmNsaWVudFgtUy5sZWZ0KS9GKjEwMDtrPU1hdGgubWF4KHRoaXMubWluUGFuZWxTaXplLE1hdGgubWluKDEwMC10aGlzLm1pblBhbmVsU2l6ZSxrKSksdGhpcy5jdXJyZW50U3BsaXRSYXRpbz1rfTtoYW5kbGVNb3VzZVVwPSgpPT57dGhpcy5pc0RyYWdnaW5nPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCksdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpJiZ3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX07YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlTW91c2VVcCl9c2V0U3BsaXRSYXRpbyhNKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPU1hdGgubWF4KHRoaXMubWluUGFuZWxTaXplLE1hdGgubWluKDEwMC10aGlzLm1pblBhbmVsU2l6ZSxNKSl9cmVzZXRTcGxpdFJhdGlvKCl7dGhpcy5jdXJyZW50U3BsaXRSYXRpbz10aGlzLnNwbGl0UmF0aW99c3RhdGlje0dzKGksYSl9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBTeHQ9YigoKT0+e2t4dCgpfSk7dmFyIEN4dCxfeHQ9YigoKT0+e3VlKCk7eTEoKTttMigpO0N4dD0oKT0+d2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtRYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDwhLS0gRGVtbyAxOiBIZWFkaW5ncyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiSGVhZGluZ3MifQogICAgICAgIC5zdWJ0aXRsZT0keyJBbGwgaGVhZGluZyBsZXZlbHMgZnJvbSBIMSB0byBINiJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IHQucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDE+SGVhZGluZyBMZXZlbCAxPC9oMT4KICAgICAgICAgICAgPGgyPkhlYWRpbmcgTGV2ZWwgMjwvaDI+CiAgICAgICAgICAgIDxoMz5IZWFkaW5nIExldmVsIDM8L2gzPgogICAgICAgICAgICA8aDQ+SGVhZGluZyBMZXZlbCA0PC9oND4KICAgICAgICAgICAgPGg1PkhlYWRpbmcgTGV2ZWwgNTwvaDU+CiAgICAgICAgICAgIDxoNj5IZWFkaW5nIExldmVsIDY8L2g2PgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyAyOiBUZXh0IEZvcm1hdHRpbmcgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IlRleHQgRm9ybWF0dGluZyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkJvbGQsIGl0YWxpYywgbGlua3MsIGNvZGUsIGFuZCBrZXlib2FyZCBpbnB1dCJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IHQucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8cD5UaGlzIGlzIGEgcGFyYWdyYXBoIHdpdGggPHN0cm9uZz5ib2xkIHRleHQ8L3N0cm9uZz4gYW5kIDxlbT5pdGFsaWMgdGV4dDwvZW0+LjwvcD4KICAgICAgICAgICAgPHA+WW91IGNhbiBhbHNvIHVzZSA8c3Ryb25nPjxlbT5ib2xkIGl0YWxpYzwvZW0+PC9zdHJvbmc+IGZvciBlbXBoYXNpcy48L3A+CiAgICAgICAgICAgIDxwPkhlcmUncyBhIDxhIGhyZWY9IiMiPmxpbmsgZXhhbXBsZTwvYT4gYW5kIHNvbWUgPGNvZGU+aW5saW5lIGNvZGU8L2NvZGU+LjwvcD4KICAgICAgICAgICAgPHA+UHJlc3MgPGtiZD5DdHJsPC9rYmQ+ICsgPGtiZD5DPC9rYmQ+IHRvIGNvcHkgdGV4dC48L3A+CiAgICAgICAgICAgIDxocj4KICAgICAgICAgICAgPHA+QWJvdmUgaXMgYSBob3Jpem9udGFsIHJ1bGUgc2VwYXJhdG9yLjwvcD4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gMzogTGlzdHMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7Ikxpc3RzIn0KICAgICAgICAuc3VidGl0bGU9JHsiT3JkZXJlZCwgdW5vcmRlcmVkLCBhbmQgdGFzayBsaXN0cyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IHQucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDM+VW5vcmRlcmVkIExpc3Q8L2gzPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkZpcnN0IGl0ZW08L2xpPgogICAgICAgICAgICAgIDxsaT5TZWNvbmQgaXRlbQogICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICA8bGk+TmVzdGVkIGl0ZW0gMTwvbGk+CiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAyPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGhpcmQgaXRlbTwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8aDM+T3JkZXJlZCBMaXN0PC9oMz4KICAgICAgICAgICAgPG9sPgogICAgICAgICAgICAgIDxsaT5TdGVwIG9uZTwvbGk+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgdHdvPC9saT4KICAgICAgICAgICAgICA8bGk+U3RlcCB0aHJlZTwvbGk+CiAgICAgICAgICAgIDwvb2w+CgogICAgICAgICAgICA8aDM+VGFzayBMaXN0PC9oMz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0idGFzay1saXN0LWl0ZW0iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2hlY2tlZCBkaXNhYmxlZD4gQ29tcGxldGVkIHRhc2s8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0idGFzay1saXN0LWl0ZW0iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGlzYWJsZWQ+IFBlbmRpbmcgdGFzazwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD4gQW5vdGhlciB0YXNrPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNDogQ29kZSBCbG9ja3MgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkNvZGUgQmxvY2tzIn0KICAgICAgICAuc3VidGl0bGU9JHsiU3ludGF4IGhpZ2hsaWdodGVkIGNvZGUgZXhhbXBsZXMifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPHA+SW5saW5lIGNvZGU6IDxjb2RlPmNvbnN0IGdyZWV0aW5nID0gIkhlbGxvLCBXb3JsZCEiOzwvY29kZT48L3A+CgogICAgICAgICAgICA8aDM+VHlwZVNjcmlwdCBFeGFtcGxlPC9oMz4KICAgICAgICAgICAgPHByZT48Y29kZT48c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5pbXBvcnQ8L3NwYW4+IHsgaHRtbCwgY3NzIH0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+ZnJvbTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4nQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50Jzwvc3Bhbj47Cgo8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5pbnRlcmZhY2U8L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXRpdGxlIj5JVXNlcjwvc3Bhbj4gewogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPm5hbWU8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+c3RyaW5nPC9zcGFuPjsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5lbWFpbDwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+OwogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmFnZTwvc3Bhbj4/OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+bnVtYmVyPC9zcGFuPjsKfQoKPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXRpdGxlIj5nZXRVc2VyPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmFzeW5jPC9zcGFuPiAoPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+aWQ8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+c3RyaW5nPC9zcGFuPik6IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5Qcm9taXNlPC9zcGFuPiZsdDtJVXNlciZndDsgPSZndDsgewogIDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmNvbnN0PC9zcGFuPiByZXNwb25zZSA9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmF3YWl0PC9zcGFuPiBmZXRjaChcYC9hcGkvdXNlcnMvXCR7aWR9XGApOwogIDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPnJldHVybjwvc3Bhbj4gcmVzcG9uc2UuanNvbigpOwp9OzwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxoMz5KU09OIEV4YW1wbGU8L2gzPgogICAgICAgICAgICA8cHJlPjxjb2RlPnsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4ibmFtZSI8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPiJkZWVzLWNhdGFsb2ciPC9zcGFuPiwKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4idmVyc2lvbiI8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPiIzLjAuMCI8L3NwYW4+LAogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJkZXBlbmRlbmNpZXMiPC9zcGFuPjogewogICAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+IkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPiJeMi4wLjAiPC9zcGFuPgogIH0KfTwvY29kZT48L3ByZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNTogVGFibGVzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJUYWJsZXMifQogICAgICAgIC5zdWJ0aXRsZT0keyJTdHlsZWQgdGFibGVzIHdpdGggYWx0ZXJuYXRpbmcgcm93cyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IHQucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGg+RmVhdHVyZTwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5TdGF0dXM8L3RoPgogICAgICAgICAgICAgICAgICA8dGg+UHJpb3JpdHk8L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkRhcmsgbW9kZSBzdXBwb3J0PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkNvbXBsZXRlZDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5IaWdoPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5SZXNwb25zaXZlIGRlc2lnbjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5JbiBQcm9ncmVzczwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5NZWRpdW08L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkFjY2Vzc2liaWxpdHk8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+UGxhbm5lZDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5IaWdoPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5Eb2N1bWVudGF0aW9uPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkxvdzwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDY6IEJsb2NrcXVvdGVzICYgQWxlcnRzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJCbG9ja3F1b3RlcyAmIEFsZXJ0cyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlF1b3RlcyBhbmQgR2l0SHViLXN0eWxlIGFsZXJ0cyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgdD0+e2F3YWl0IHQucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8YmxvY2txdW90ZT4KICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc3RhbmRhcmQgYmxvY2txdW90ZS4gSXQncyBncmVhdCBmb3IgaGlnaGxpZ2h0aW5nIGltcG9ydGFudCBpbmZvcm1hdGlvbiBvciBxdW90ZXMgZnJvbSBvdGhlciBzb3VyY2VzLjwvcD4KICAgICAgICAgICAgPC9ibG9ja3F1b3RlPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtbm90ZSI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgbm90ZSB0byBkcmF3IGF0dGVudGlvbiB0byBpbXBvcnRhbnQgZGV0YWlscy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtdGlwIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPlRpcDo8L3N0cm9uZz4gSGVyZSdzIGEgaGVscGZ1bCB0aXAgdG8gaW1wcm92ZSB5b3VyIHdvcmtmbG93LjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1pbXBvcnRhbnQiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBUaGlzIGluZm9ybWF0aW9uIGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHRvcGljLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC13YXJuaW5nIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcm5pbmc6PC9zdHJvbmc+IEJlIGNhcmVmdWwgd2hlbiBwZXJmb3JtaW5nIHRoaXMgYWN0aW9uLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1jYXV0aW9uIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPkNhdXRpb246PC9zdHJvbmc+IFRoaXMgYWN0aW9uIG1heSBoYXZlIHVuaW50ZW5kZWQgY29uc2VxdWVuY2VzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDc6IEZ1bGwgRG9jdW1lbnQgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkZ1bGwgRG9jdW1lbnQifQogICAgICAgIC5zdWJ0aXRsZT0keyJBIGNvbXBsZXRlIG1hcmtkb3duIGRvY3VtZW50IGV4YW1wbGUifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9Pnthd2FpdCB0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGgxPkdldHRpbmcgU3RhcnRlZCBHdWlkZTwvaDE+CiAgICAgICAgICAgIDxwPldlbGNvbWUgdG8gdGhlIDxzdHJvbmc+ZGVlcy1jYXRhbG9nPC9zdHJvbmc+IGNvbXBvbmVudCBsaWJyYXJ5LiBUaGlzIGd1aWRlIHdpbGwgaGVscCB5b3UgZ2V0IHVwIGFuZCBydW5uaW5nIHF1aWNrbHkuPC9wPgoKICAgICAgICAgICAgPGgyPkluc3RhbGxhdGlvbjwvaDI+CiAgICAgICAgICAgIDxwPkluc3RhbGwgdGhlIHBhY2thZ2UgdXNpbmcgeW91ciBwcmVmZXJyZWQgcGFja2FnZSBtYW5hZ2VyOjwvcD4KICAgICAgICAgICAgPHByZT48Y29kZT48c3BhbiBjbGFzcz0iaGxqcy1jb21tZW50Ij4jIFVzaW5nIHBucG0gKHJlY29tbWVuZGVkKTwvc3Bhbj4KcG5wbSBhZGQgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nCgo8c3BhbiBjbGFzcz0iaGxqcy1jb21tZW50Ij4jIFVzaW5nIG5wbTwvc3Bhbj4KbnBtIGluc3RhbGwgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nPC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGgyPkJhc2ljIFVzYWdlPC9oMj4KICAgICAgICAgICAgPHA+SW1wb3J0IGFuZCB1c2UgY29tcG9uZW50cyBpbiB5b3VyIFR5cGVTY3JpcHQgZmlsZXM6PC9wPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmltcG9ydDwvc3Bhbj4geyBEZWVzQnV0dG9uIH0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+ZnJvbTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4nQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nJzwvc3Bhbj47Cgo8c3BhbiBjbGFzcz0iaGxqcy1jb21tZW50Ij4vLyBVc2UgaW4geW91ciB0ZW1wbGF0ZXM8L3NwYW4+Cmh0bWxcYCZsdDtkZWVzLWJ1dHRvbiZndDtDbGljayBtZSZsdDsvZGVlcy1idXR0b24mZ3Q7XGA8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC10aXAiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+VGlwOjwvc3Ryb25nPiBDaGVjayB0aGUgZGVtbyBzaG93Y2FzZSBmb3IgbGl2ZSBleGFtcGxlcyBvZiBhbGwgY29tcG9uZW50cy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGgyPkF2YWlsYWJsZSBDb21wb25lbnRzPC9oMj4KICAgICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRoPkNvbXBvbmVudDwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy1idXR0b248L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlByaW1hcnkgYnV0dG9uIGNvbXBvbmVudDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy1pbnB1dC10ZXh0PC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5UZXh0IGlucHV0IGZpZWxkPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLXRhYmxlPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5EYXRhIHRhYmxlIHdpdGggc29ydGluZzwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy1tb2RhbDwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TW9kYWwgZGlhbG9nPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KCiAgICAgICAgICAgIDxoMj5OZXh0IFN0ZXBzPC9oMj4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5FeHBsb3JlIHRoZSA8YSBocmVmPSIjIj5jb21wb25lbnQgZG9jdW1lbnRhdGlvbjwvYT48L2xpPgogICAgICAgICAgICAgIDxsaT5DaGVjayBvdXQgdGhlIDxhIGhyZWY9IiMiPnRoZW1pbmcgZ3VpZGU8L2E+PC9saT4KICAgICAgICAgICAgICA8bGk+Sm9pbiBvdXIgPGEgaHJlZj0iIyI+Y29tbXVuaXR5IERpc2NvcmQ8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxibG9ja3F1b3RlPgogICAgICAgICAgICAgIDxwPiJUaGUgYmVzdCBjb21wb25lbnQgbGlicmFyeSBpcyBvbmUgdGhhdCBnZXRzIG91dCBvZiB5b3VyIHdheS4iIFx1MjAxNCBEZXNpZ24gU3lzdGVtcyBUZWFtPC9wPgogICAgICAgICAgICA8L2Jsb2NrcXVvdGU+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIFhVdCxLVXQsVHh0LEx4dD1iKCgpPT57dWUoKTtxZSgpO194dCgpO1hVdD1mdW5jdGlvbih0LGUsYSxpLHIscyl7ZnVuY3Rpb24gbih4KXtpZih4IT09dm9pZCAwJiZ0eXBlb2YgeCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB4fWZvcih2YXIgbz1pLmtpbmQsZD1vPT09ImdldHRlciI/ImdldCI6bz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hZSYmdD9pLnN0YXRpYz90OnQucHJvdG90eXBlOm51bGwscD1lfHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksbCxmPSExLGc9YS5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIHk9e307Zm9yKHZhciB2IGluIGkpeVt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeS5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eS5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih4KXtpZihmKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO3MucHVzaChuKHh8fG51bGwpKX07dmFyIG09KDAsYVtnXSkobz09PSJhY2Nlc3NvciI/e2dldDpwLmdldCxzZXQ6cC5zZXR9OnBbZF0seSk7aWYobz09PSJhY2Nlc3NvciIpe2lmKG09PT12b2lkIDApY29udGludWU7aWYobT09PW51bGx8fHR5cGVvZiBtIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsobD1uKG0uZ2V0KSkmJihwLmdldD1sKSwobD1uKG0uc2V0KSkmJihwLnNldD1sKSwobD1uKG0uaW5pdCkpJiZyLnVuc2hpZnQobCl9ZWxzZShsPW4obSkpJiYobz09PSJmaWVsZCI/ci51bnNoaWZ0KGwpOnBbZF09bCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHApLGY9ITB9LEtVdD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixyPTA7cjxlLmxlbmd0aDtyKyspYT1pP2Vbcl0uY2FsbCh0LGEpOmVbcl0uY2FsbCh0KTtyZXR1cm4gaT9hOnZvaWQgMH0sVHh0PSgoKT0+e2xldCB0PVtoZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKV0sZSxhPVtdLGkscj14ZTt2YXIgcz1jbGFzcyBleHRlbmRzIHJ7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG49dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUocltTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7WFV0KG51bGwsZT17dmFsdWU6aX0sdCx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm59LG51bGwsYSkscz1pPWUudmFsdWUsbiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSl9c3RhdGljIGRlbW89Q3h0O3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIHN0eWxlcz1bQ2UsaC5kZWZhdWx0U3R5bGVzLFFgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnTm90byBTYW5zJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMyNDI5MmYiLCIjZTZlZGYzIil9OwogICAgICB9CgogICAgICAub3V0bGV0IHsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC8qIEhlYWRpbmdzICovCiAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNmMGY2ZmMiKX07CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBmb250LXNpemU6IDJlbTsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4zZW07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgfQoKICAgICAgaDIgewogICAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGgzIHsKICAgICAgICBmb250LXNpemU6IDEuMjVlbTsKICAgICAgfQoKICAgICAgaDQgewogICAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICB9CgogICAgICBoNSB7CiAgICAgICAgZm9udC1zaXplOiAwLjg3NWVtOwogICAgICB9CgogICAgICBoNiB7CiAgICAgICAgZm9udC1zaXplOiAwLjg1ZW07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjU2ZDc2IiwiIzhiOTQ5ZSIpfTsKICAgICAgfQoKICAgICAgLyogUGFyYWdyYXBocyBhbmQgdGV4dCAqLwogICAgICBwIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIExpbmtzICovCiAgICAgIGEgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzA5NjlkYSIsIiM1OGE2ZmYiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CgogICAgICBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLyogU3Ryb25nIGFuZCBlbXBoYXNpcyAqLwogICAgICBzdHJvbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyMzI4IiwiI2YwZjZmYyIpfTsKICAgICAgfQoKICAgICAgZW0gewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLyogTGlzdHMgKi8KICAgICAgdWwsIG9sIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyZW07CiAgICAgIH0KCiAgICAgIGxpIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIGxpICsgbGkgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgdWwgdWwsIHVsIG9sLCBvbCB1bCwgb2wgb2wgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogQmxvY2txdW90ZXMgKi8KICAgICAgYmxvY2txdW90ZSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMTZweCAwOwogICAgICAgIHBhZGRpbmc6IDAgMWVtOwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGJsb2NrcXVvdGUgPiA6Zmlyc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIH0KCiAgICAgIGJsb2NrcXVvdGUgPiA6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogSW5saW5lIGNvZGUgKi8KICAgICAgY29kZSB7CiAgICAgICAgcGFkZGluZzogMC4yZW0gMC40ZW07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtc2l6ZTogODUlOwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgxNzUsIDE4NCwgMTkzLCAwLjIpIiwicmdiYSgxMTAsIDExOCwgMTI5LCAwLjQpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzOwogICAgICB9CgogICAgICAvKiBDb2RlIGJsb2NrcyAqLwogICAgICBwcmUgewogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGZvbnQtc2l6ZTogODUlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1OwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgICB9CgogICAgICBwcmUgY29kZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7CiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgd29yZC13cmFwOiBub3JtYWw7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMTAwJTsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOwogICAgICB9CgogICAgICAvKiBUYWJsZXMgKi8KICAgICAgdGFibGUgewogICAgICAgIHdpZHRoOiBtYXgtY29udGVudDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGJvcmRlci1zcGFjaW5nOiAwOwogICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIHRhYmxlIHRoIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHBhZGRpbmc6IDZweCAxM3B4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdGQgewogICAgICAgIHBhZGRpbmc6IDZweCAxM3B4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7aC5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICB9CgogICAgICB0YWJsZSB0ciB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGQxMTE3Iil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMyMTI2MmQiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRyOm50aC1jaGlsZCgybikgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZjZmOGZhIiwiIzE2MWIyMiIpfTsKICAgICAgfQoKICAgICAgLyogSG9yaXpvbnRhbCBydWxlcyAqLwogICAgICBociB7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDI0cHggMDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgfQoKICAgICAgLyogSW1hZ2VzICovCiAgICAgIGltZyB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAvKiBUYXNrIGxpc3RzICovCiAgICAgIC50YXNrLWxpc3QtaXRlbSB7CiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgICB9CgogICAgICAudGFzay1saXN0LWl0ZW0gaW5wdXQgewogICAgICAgIG1hcmdpbjogMCAwLjJlbSAwLjI1ZW0gLTEuNGVtOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC8qIERlZmluaXRpb24gbGlzdHMgKi8KICAgICAgZGwgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIGRsIGR0IHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxZW07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIGRsIGRkIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgfQoKICAgICAgLyogS2V5Ym9hcmQgaW5wdXQgKi8KICAgICAga2JkIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgcGFkZGluZzogM3B4IDVweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsICdTRiBNb25vJywgTWVubG8sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxMHB4OwogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAke2guYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIC8qIEZvb3Rub3RlcyAqLwogICAgICAuZm9vdG5vdGVzIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNjU2ZDc2IiwiIzhiOTQ5ZSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtoLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDMycHg7CiAgICAgIH0KCiAgICAgIC8qIEFsZXJ0cy9BZG1vbml0aW9ucyAqLwogICAgICAubWFya2Rvd24tYWxlcnQgewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KCiAgICAgIC5tYXJrZG93bi1hbGVydC1ub3RlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjMDk2OWRhIiwiIzU4YTZmZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSg5LCAxMDUsIDIxOCwgMC4xKSIsInJnYmEoNTYsIDEzOSwgMjUzLCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtd2FybmluZyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2guYmRUaGVtZSgiI2JmODcwMCIsIiNkMjk5MjIiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtoLmJkVGhlbWUoInJnYmEoMTkxLCAxMzUsIDAsIDAuMSkiLCJyZ2JhKDE4NywgMTI4LCA5LCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtaW1wb3J0YW50IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjODI1MGRmIiwiI2EzNzFmNyIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgxMzAsIDgwLCAyMjMsIDAuMSkiLCJyZ2JhKDE2MywgMTEzLCAyNDcsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5tYXJrZG93bi1hbGVydC1jYXV0aW9uIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7aC5iZFRoZW1lKCIjY2YyMjJlIiwiI2Y4NTE0OSIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2guYmRUaGVtZSgicmdiYSgyMDcsIDM0LCA0NiwgMC4xKSIsInJnYmEoMjQ4LCA4MSwgNzMsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5tYXJrZG93bi1hbGVydC10aXAgewogICAgICAgIGJvcmRlci1jb2xvcjogJHtoLmJkVGhlbWUoIiMxYTdmMzciLCIjM2ZiOTUwIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCJyZ2JhKDI2LCAxMjcsIDU1LCAwLjEpIiwicmdiYSg0NiwgMTYwLCA2NywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLyogU3ludGF4IGhpZ2hsaWdodGluZyBmb3IgY29kZSBibG9ja3MgKi8KICAgICAgLmhsanMtY29tbWVudCwKICAgICAgLmhsanMtcXVvdGUgewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiIzZhNzM3ZCIsIiM4Yjk0OWUiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWtleXdvcmQsCiAgICAgIC5obGpzLXNlbGVjdG9yLXRhZywKICAgICAgLmhsanMtYWRkaXRpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2Q3M2E0OSIsIiNmZjdiNzIiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLW51bWJlciwKICAgICAgLmhsanMtc3RyaW5nLAogICAgICAuaGxqcy1tZXRhIC5obGpzLW1ldGEtc3RyaW5nLAogICAgICAuaGxqcy1saXRlcmFsLAogICAgICAuaGxqcy1kb2N0YWcsCiAgICAgIC5obGpzLXJlZ2V4cCB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjMDMyZjYyIiwiI2E1ZDZmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtdGl0bGUsCiAgICAgIC5obGpzLXNlY3Rpb24sCiAgICAgIC5obGpzLW5hbWUsCiAgICAgIC5obGpzLXNlbGVjdG9yLWlkLAogICAgICAuaGxqcy1zZWxlY3Rvci1jbGFzcyB7CiAgICAgICAgY29sb3I6ICR7aC5iZFRoZW1lKCIjNmY0MmMxIiwiI2QyYThmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtYXR0cmlidXRlLAogICAgICAuaGxqcy1hdHRyLAogICAgICAuaGxqcy12YXJpYWJsZSwKICAgICAgLmhsanMtdGVtcGxhdGUtdmFyaWFibGUsCiAgICAgIC5obGpzLWNsYXNzIC5obGpzLXRpdGxlLAogICAgICAuaGxqcy10eXBlIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiMwMDVjYzUiLCIjNzljMGZmIil9OwogICAgICB9CgogICAgICAuaGxqcy1zeW1ib2wsCiAgICAgIC5obGpzLWJ1bGxldCwKICAgICAgLmhsanMtc3Vic3QsCiAgICAgIC5obGpzLW1ldGEsCiAgICAgIC5obGpzLW1ldGEgLmhsanMta2V5d29yZCwKICAgICAgLmhsanMtc2VsZWN0b3ItYXR0ciwKICAgICAgLmhsanMtc2VsZWN0b3ItcHNldWRvLAogICAgICAuaGxqcy1saW5rIHsKICAgICAgICBjb2xvcjogJHtoLmJkVGhlbWUoIiNlMzYyMDkiLCIjZmZhNjU3Iil9OwogICAgICB9CgogICAgICAuaGxqcy1idWlsdF9pbiwKICAgICAgLmhsanMtZGVsZXRpb24gewogICAgICAgIGNvbG9yOiAke2guYmRUaGVtZSgiI2IzMWQyOCIsIiNmZmExOTgiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWZvcm11bGEgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7aC5iZFRoZW1lKCIjZjZmOGZhIiwiIzE2MWIyMiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtZW1waGFzaXMgewogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmhsanMtc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgfQogICAgYF07b3V0bGV0O3JlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJvdXRsZXQiPgogICAgICAgIDxoMT5NYXJrZG93biBQcmV2aWV3PC9oMT4KICAgICAgICA8cD5Db250ZW50IHdpbGwgYXBwZWFyIGhlcmUgd2hlbiBtYXJrZG93biBpcyBwYXJzZWQuPC9wPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKG4pe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZChuKSx0aGlzLm91dGxldD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm91dGxldCIpfWFzeW5jIHVwZGF0ZUh0bWxUZXh0KG4pe2F3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5vdXRsZXR8fCh0aGlzLm91dGxldD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm91dGxldCIpKSx0aGlzLm91dGxldC5pbm5lckhUTUw9bn1zdGF0aWN7S1V0KGksYSl9fTtyZXR1cm4gcz1pfSkoKX0pO3ZhciAkeHQ9YigoKT0+e0x4dCgpfSk7dmFyIEF4dD1iKCgpPT57VGooKX0pO3ZhciBEeHQ9YigoKT0+eyRqKCl9KTt2YXIgRXh0PWIoKCk9PntieHQoKTt2eHQoKTt5eHQoKTt3eHQoKTtNeHQoKTtTeHQoKTskeHQoKTtBeHQoKTtEeHQoKX0pO3ZhciBQeHQ9YigoKT0+e30pO3ZhciBJeHQ9YigoKT0+e1B4dCgpfSk7dmFyIE54dD1iKCgpPT57dWUoKX0pO3ZhciBGeHQ9YigoKT0+e054dCgpfSk7dmFyIE94dD1iKCgpPT57dWkoKTtxZSgpO3hmdCgpO0FmdCgpO1dmdCgpO3JtdCgpOyRtdCgpO0VtdCgpO3FndCgpO0FidCgpO3F2dCgpO0t2dCgpO3d3KCk7R3l0KCk7ZHh0KCk7RXh0KCk7SXh0KCk7Rnh0KCl9KTt2YXIgUnh0LEJ4dD1iKCgpPT57Unh0PXtuYW1lOiJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLHZlcnNpb246IjMuNDMuMiIsZGVzY3JpcHRpb246IkEgY29tcHJlaGVuc2l2ZSBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgZHluYW1pYyB3ZWIgY29tcG9uZW50cyBmb3IgYnVpbGRpbmcgc29waGlzdGljYXRlZCBhbmQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgSmF2YVNjcmlwdCBhbmQgVHlwZVNjcmlwdC4ifX0pO3ZhciBycj17fTtHZShycix7Q2FudmFzUG9vbDooKT0+T2wsRGVlc0FjdGlvbmJhcjooKT0+c210LERlZXNBcHB1aTooKT0+Y2Z0LERlZXNBcHB1aUFjdGl2aXR5bG9nOigpPT5jOXQsRGVlc0FwcHVpQmFyOigpPT5rOXQsRGVlc0FwcHVpQm90dG9tYmFyOigpPT5UOXQsRGVlc0FwcHVpTWFpbmNvbnRlbnQ6KCk9PmxmdCxEZWVzQXBwdWlNYWlubWVudTooKT0+dGZ0LERlZXNBcHB1aVByb2ZpbGVEcm9wZG93bjooKT0+ejl0LERlZXNBcHB1aVNlY29uZGFyeW1lbnU6KCk9PnJmdCxEZWVzQXBwdWlUYWJzOigpPT5vZnQsRGVlc0F1ZGlvVmlld2VyOigpPT5PYnQsRGVlc0JhZGdlOigpPT5kbXQsRGVlc0J1dHRvbjooKT0+WnV0LERlZXNCdXR0b25FeGl0OigpPT56ZnQsRGVlc0J1dHRvbkdyb3VwOigpPT5UZnQsRGVlc0NoYXJ0QXJlYTooKT0+UmZ0LERlZXNDaGFydExvZzooKT0+VmZ0LERlZXNDaGlwczooKT0+VWd0LERlZXNDb250ZXh0bWVudTooKT0+VXQsRGVlc0Rhc2hib2FyZGdyaWQ6KCk9PmRidCxEZWVzRGF0YXZpZXdDb2RlYm94OigpPT5aZnQsRGVlc0RhdGF2aWV3U3RhdHVzb2JqZWN0OigpPT5lbXQsRGVlc0Zvcm06KCk9Pld1dCxEZWVzRm9ybVN1Ym1pdDooKT0+TngsRGVlc0Zvcm1hdHRpbmdNZW51OigpPT5pdyxEZWVzSGVhZGluZzooKT0+Z2J0LERlZXNIaW50OigpPT5nbXQsRGVlc0ljb246KCk9Pmk5dCxEZWVzSW1hZ2VWaWV3ZXI6KCk9PlBidCxEZWVzSW5wdXRCYXNlOigpPT5YZSxEZWVzSW5wdXRDaGVja2JveDooKT0+Q3gsRGVlc0lucHV0Q29kZTooKT0+JHgsRGVlc0lucHV0RGF0ZXBpY2tlcjooKT0+QXgsRGVlc0lucHV0RHJvcGRvd246KCk9PkZ4LERlZXNJbnB1dEZpbGV1cGxvYWQ6KCk9PlJ4LERlZXNJbnB1dEliYW46KCk9PnF4LERlZXNJbnB1dExpc3Q6KCk9PkhtdCxEZWVzSW5wdXRNdWx0aXRvZ2dsZTooKT0+VngsRGVlc0lucHV0UGhvbmU6KCk9PlV4LERlZXNJbnB1dFByb2ZpbGVQaWN0dXJlOigpPT5IZ3QsRGVlc0lucHV0UXVhbnRpdHlTZWxlY3RvcjooKT0+RXgsRGVlc0lucHV0UmFkaW9ncm91cDooKT0+UHgsRGVlc0lucHV0UmljaHRleHQ6KCk9PmVndCxEZWVzSW5wdXRUYWdzOigpPT5vZ3QsRGVlc0lucHV0VGV4dDooKT0+RHgsRGVlc0lucHV0VG9nZ2xlOigpPT5XeCxEZWVzSW5wdXRUeXBlbGlzdDooKT0+R3gsRGVlc0lucHV0V3lzaXd5ZzooKT0+QVYsRGVlc0xhYmVsOigpPT5WOXQsRGVlc01vYmlsZW5hdmlnYXRpb246KCk9PmJmdCxEZWVzTW9kYWw6KCk9Pm4xLERlZXNQYWdpbmF0aW9uOigpPT5NYnQsRGVlc1BhbmVsOigpPT5FOXQsRGVlc1BkZjooKT0+YXZ0LERlZXNQZGZQcmV2aWV3OigpPT5jdnQsRGVlc1BkZlZpZXdlcjooKT0+WWJ0LERlZXNQcmV2aWV3OigpPT5RYnQsRGVlc1Byb2dyZXNzYmFyOigpPT5NbXQsRGVlc1NlYXJjaGJhcjooKT0+UXl0LERlZXNTaG9wcGluZ1Byb2R1Y3RjYXJkOigpPT50dXQsRGVlc1NpbXBsZUFwcERhc2g6KCk9Pk95dCxEZWVzU2ltcGxlTG9naW46KCk9Pmp5dCxEZWVzU2xhc2hNZW51OigpPT50dyxEZWVzU3BlZWNoYnViYmxlOigpPT5HdnQsRGVlc1NwaW5uZXI6KCk9PmttdCxEZWVzU3RhdHNHcmlkOigpPT5YdXQsRGVlc1N0ZXBwZXI6KCk9PlRidCxEZWVzVGFibGU6KCk9Plp4LERlZXNUaGVtZTooKT0+aXh0LERlZXNUaWxlQXVkaW86KCk9Pnp2dCxEZWVzVGlsZUJhc2U6KCk9PmJhLERlZXNUaWxlRm9sZGVyOigpPT5SdnQsRGVlc1RpbGVJbWFnZTooKT0+dnZ0LERlZXNUaWxlTm90ZTooKT0+RXZ0LERlZXNUaWxlUGRmOigpPT5vdyxEZWVzVGlsZVZpZGVvOigpPT5UdnQsRGVlc1RvYXN0OigpPT5CdCxEZWVzVXBkYXRlcjooKT0+TXcsRGVlc1ZpZGVvVmlld2VyOigpPT5xYnQsRGVlc1dpbmRvd0NvbnRyb2xzOigpPT5NOXQsRGVlc1dpbmRvd0xheWVyOigpPT5maSxEZWVzV29ya3NwYWNlOigpPT5teHQsRGVlc1dvcmtzcGFjZUJvdHRvbWJhcjooKT0+dXh0LERlZXNXb3Jrc3BhY2VEaWZmRWRpdG9yOigpPT5meHQsRGVlc1dvcmtzcGFjZUZpbGV0cmVlOigpPT5weHQsRGVlc1dvcmtzcGFjZU1hcmtkb3duOigpPT56eHQsRGVlc1dvcmtzcGFjZU1hcmtkb3dub3V0bGV0OigpPT5UeHQsRGVlc1dvcmtzcGFjZU1vbmFjbzooKT0+ajl0LERlZXNXb3Jrc3BhY2VUZXJtaW5hbDooKT0+eWosRGVlc1dvcmtzcGFjZVRlcm1pbmFsUHJldmlldzooKT0+aHh0LERlZXNXeXNpd3lnQmxvY2s6KCk9PlBndCxQUk9HUkFNTUlOR19MQU5HVUFHRVM6KCk9PlQ4LFBkZk1hbmFnZXI6KCk9PlVyLFBlcmZvcm1hbmNlTW9uaXRvcjooKT0+UmwsVGVybWluYWxUYWJNYW5hZ2VyOigpPT5lZCxUeXBlU2NyaXB0SW50ZWxsaVNlbnNlTWFuYWdlcjooKT0+c2QsVmlld1JlZ2lzdHJ5OigpPT56OCxXZWJDb250YWluZXJFbnZpcm9ubWVudDooKT0+bTQsV3lzaXd5Z0Jsb2NrT3BlcmF0aW9uczooKT0+TDgsV3lzaXd5Z0Jsb2NrczooKT0+QTIsV3lzaXd5Z0NvbnZlcnRlcnM6KCk9PnhpLFd5c2l3eWdEcmFnRHJvcEhhbmRsZXI6KCk9PlY4LFd5c2l3eWdGb3JtYXR0aW5nOigpPT5ScyxXeXNpd3lnSGlzdG9yeTooKT0+ajgsV3lzaXd5Z0lucHV0SGFuZGxlcjooKT0+SDgsV3lzaXd5Z0tleWJvYXJkSGFuZGxlcjooKT0+cTgsV3lzaXd5Z01vZGFsTWFuYWdlcjooKT0+QjgsV3lzaXd5Z1NlbGVjdGlvbjooKT0+UmUsV3lzaXd5Z1Nob3J0Y3V0czooKT0+cTEsWkluZGV4UmVnaXN0cnk6KCk9PmdmLGNvbG9yczooKT0+VzAsY29tbWl0aW5mbzooKT0+Unh0LGNvbXBvbmVudFpJbmRleDooKT0+akJ0LGRlYm91bmNlOigpPT5mVXQsZm9ybWF0RmlsZVNpemU6KCk9PmdVdCxnZXRaSW5kZXg6KCk9PlZCdCxpY29uczooKT0+engsaXNJblZpZXdwb3J0OigpPT5iVXQscmVnaXN0ZXJBbGxCbG9ja0hhbmRsZXJzOigpPT5MZ3QsdGhlbWVEZWZhdWx0U3R5bGVzOigpPT5DZSx0aGVtZURlZmF1bHRzOigpPT5Rbix0aHJvdHRsZTooKT0+bVV0LHRpbGVCYXNlU3R5bGVzOigpPT5KMix3eXNpd3lnU3R5bGVzOigpPT56Vix6SW5kZXhMYXllcnM6KCk9PmkyLHpJbmRleFJlZ2lzdHJ5OigpPT5kMX0pO3ZhciBIeHQ9YigoKT0+e094dCgpO2dpKCk7Qnh0KCl9KTt2YXIgaDEsc3I9YigoKT0+e3VlKCk7SHh0KCk7aDE9cnR9KTt2YXIgWXM9YigoKT0+e0NjKCl9KTt2YXIgcXh0PWIoKCk9Pnt9KTt2YXIgVnh0PWIoKCk9Pnt9KTt2YXIganh0PWIoKCk9Pnt9KTt2YXIgVXh0PWIoKCk9Pnt9KTt2YXIgV3h0PWIoKCk9Pnt9KTt2YXIgR3h0PWIoKCk9Pnt9KTt2YXIgWXh0PXt9O3ZhciBacz1iKCgpPT57cXh0KCk7Vnh0KCk7anh0KCk7VXh0KCk7V3h0KCk7R3h0KCl9KTt2YXIgWnh0PWIoKCk9PntZcygpO1pzKCl9KTt2YXIgWHh0PWIoKCk9PntZcygpO1pzKCl9KTt2YXIgS3h0PWIoKCk9PntZcygpO1pzKCl9KTt2YXIgUXh0PWIoKCk9PntZcygpO1pzKCl9KTt2YXIgSnh0PWIoKCk9PntZcygpO1pzKCl9KTt2YXIgZXd0PWIoKCk9PntZcygpO1pzKCl9KTt2YXIgdHd0PWIoKCk9PntZcygpO1pzKCl9KTt2YXIgYXd0PXt9O3ZhciBpd3Q9YigoKT0+e1p4dCgpO1h4dCgpO0t4dCgpO1F4dCgpO0p4dCgpO2V3dCgpO3R3dCgpfSk7dmFyIEFqPWIoKCk9PntZcygpO1pzKCk7aXd0KCl9KTt2YXIga3csbnIsRnQsa3QsR3IsZWEscnd0LG9kLERhLHN3dCxud3Qsb3d0LHhvLFN3LGx3dCxjd3QsZHd0LHB3dCxod3QsdXd0LGZ3dCxtd3QsZ3d0LHY0LE51MixYcz1iKGFzeW5jKCk9PntzcigpO0FqKCk7a3c9bmV3IGgxLnBsdWdpbnMuc21hcnRzdGF0ZS5TbWFydHN0YXRlLG5yPWF3YWl0IGt3LmdldFN0YXRlUGFydCgibG9naW4iLHtpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9LCJwZXJzaXN0ZW50IiksRnQ9YXdhaXQga3cuZ2V0U3RhdGVQYXJ0KCJjb25uZWN0aW9ucyIse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSwic29mdCIpLGt0PWF3YWl0IGt3LmdldFN0YXRlUGFydCgiZGF0YSIse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0sInNvZnQiKSxHcj1hd2FpdCBrdy5nZXRTdGF0ZVBhcnQoInVpIix7YWN0aXZlVmlldzoib3ZlcnZpZXciLGF1dG9SZWZyZXNoOiEwLHJlZnJlc2hJbnRlcnZhbDozZTR9KSxlYT0oKT0+KHtpZGVudGl0eTpuci5nZXRTdGF0ZSgpLmlkZW50aXR5fSkscnd0PW5yLmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57dHJ5e2xldCBpPWF3YWl0IG5ldyBoMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJhZG1pbkxvZ2luIikuZmlyZSh7dXNlcm5hbWU6ZS51c2VybmFtZSxwYXNzd29yZDplLnBhc3N3b3JkfSk7cmV0dXJue2lkZW50aXR5OmkuaWRlbnRpdHl8fG51bGwsaXNMb2dnZWRJbjohIWkuaWRlbnRpdHl9fWNhdGNoKGEpe3JldHVybiBjb25zb2xlLmVycm9yKCJMb2dpbiBmYWlsZWQ6IixhKSx7aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfX19KSxvZD1uci5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPWVhKCk7dHJ5e2UuaWRlbnRpdHkmJmF3YWl0IG5ldyBoMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJhZG1pbkxvZ291dCIpLmZpcmUoe2lkZW50aXR5OmUuaWRlbnRpdHl9KX1jYXRjaChhKXtjb25zb2xlLmVycm9yKCJMb2dvdXQgZXJyb3I6IixhKX1yZXR1cm57aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfX0pLERhPUZ0LmNyZWF0ZUFjdGlvbihhc3luYyB0PT57bGV0IGU9ZWEoKTt0cnl7bGV0IGk9YXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldENvbm5lY3Rpb25zIikuZmlyZSh7aWRlbnRpdHk6ZS5pZGVudGl0eX0pO3JldHVybnsuLi50LmdldFN0YXRlKCksY29ubmVjdGlvbnM6aS5jb25uZWN0aW9uc319Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBmZXRjaCBjb25uZWN0aW9uczoiLGEpLHQuZ2V0U3RhdGUoKX19KSxzd3Q9RnQuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXthd2FpdCBuZXcgaDEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY3JlYXRlQ29ubmVjdGlvbiIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHksLi4uZX0pO2xldCBzPWF3YWl0IG5ldyBoMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRDb25uZWN0aW9ucyIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGNvbm5lY3Rpb25zOnMuY29ubmVjdGlvbnN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGNvbm5lY3Rpb246IixpKSx0LmdldFN0YXRlKCl9fSksbnd0PUZ0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IGE9ZWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInRlc3RDb25uZWN0aW9uIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSxjb25uZWN0aW9uSWQ6ZS5jb25uZWN0aW9uSWR9KSxuPWF3YWl0IG5ldyBoMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRDb25uZWN0aW9ucyIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHl9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLGNvbm5lY3Rpb25zOm4uY29ubmVjdGlvbnN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdGVzdCBjb25uZWN0aW9uOiIsaSksdC5nZXRTdGF0ZSgpfX0pLG93dD1GdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCBhPWVhKCk7dHJ5e2F3YWl0IG5ldyBoMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJkZWxldGVDb25uZWN0aW9uIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSxjb25uZWN0aW9uSWQ6ZS5jb25uZWN0aW9uSWR9KTtsZXQgcj10LmdldFN0YXRlKCk7cmV0dXJuey4uLnIsY29ubmVjdGlvbnM6ci5jb25uZWN0aW9ucy5maWx0ZXIocz0+cy5pZCE9PWUuY29ubmVjdGlvbklkKSxhY3RpdmVDb25uZWN0aW9uSWQ6ci5hY3RpdmVDb25uZWN0aW9uSWQ9PT1lLmNvbm5lY3Rpb25JZD9udWxsOnIuYWN0aXZlQ29ubmVjdGlvbklkfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGRlbGV0ZSBjb25uZWN0aW9uOiIsaSksdC5nZXRTdGF0ZSgpfX0pLHhvPWt0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IGE9ZWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFByb2plY3RzIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSxjb25uZWN0aW9uSWQ6ZS5jb25uZWN0aW9uSWQsc2VhcmNoOmUuc2VhcmNofSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxwcm9qZWN0czpyLnByb2plY3RzfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHByb2plY3RzOiIsaSksdC5nZXRTdGF0ZSgpfX0pLFN3PWt0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IGE9ZWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldEdyb3VwcyIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHksY29ubmVjdGlvbklkOmUuY29ubmVjdGlvbklkLHNlYXJjaDplLnNlYXJjaH0pO3JldHVybnsuLi50LmdldFN0YXRlKCksZ3JvdXBzOnIuZ3JvdXBzfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGdyb3VwczoiLGkpLHQuZ2V0U3RhdGUoKX19KSxsd3Q9a3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgaDEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VjcmV0cyIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHksY29ubmVjdGlvbklkOmUuY29ubmVjdGlvbklkLHNjb3BlOmUuc2NvcGUsc2NvcGVJZDplLnNjb3BlSWR9KTtyZXR1cm57Li4udC5nZXRTdGF0ZSgpLHNlY3JldHM6ci5zZWNyZXRzfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHNlY3JldHM6IixpKSx0LmdldFN0YXRlKCl9fSksY3d0PWt0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IGE9ZWEoKTt0cnl7YXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImNyZWF0ZVNlY3JldCIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHksLi4uZX0pO2xldCBzPWF3YWl0IG5ldyBoMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZWNyZXRzIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSxjb25uZWN0aW9uSWQ6ZS5jb25uZWN0aW9uSWQsc2NvcGU6ZS5zY29wZSxzY29wZUlkOmUuc2NvcGVJZH0pO3JldHVybnsuLi50LmdldFN0YXRlKCksc2VjcmV0czpzLnNlY3JldHN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIHNlY3JldDoiLGkpLHQuZ2V0U3RhdGUoKX19KSxkd3Q9a3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXthd2FpdCBuZXcgaDEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwidXBkYXRlU2VjcmV0IikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSwuLi5lfSk7bGV0IHM9YXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlY3JldHMiKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LGNvbm5lY3Rpb25JZDplLmNvbm5lY3Rpb25JZCxzY29wZTplLnNjb3BlLHNjb3BlSWQ6ZS5zY29wZUlkfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxzZWNyZXRzOnMuc2VjcmV0c319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB1cGRhdGUgc2VjcmV0OiIsaSksdC5nZXRTdGF0ZSgpfX0pLHB3dD1rdC5jcmVhdGVBY3Rpb24oYXN5bmModCxlKT0+e2xldCBhPWVhKCk7dHJ5e2F3YWl0IG5ldyBoMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJkZWxldGVTZWNyZXQiKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LC4uLmV9KTtsZXQgcj10LmdldFN0YXRlKCk7cmV0dXJuey4uLnIsc2VjcmV0czpyLnNlY3JldHMuZmlsdGVyKHM9PnMua2V5IT09ZS5rZXkpfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGRlbGV0ZSBzZWNyZXQ6IixpKSx0LmdldFN0YXRlKCl9fSksaHd0PWt0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IGE9ZWEoKTt0cnl7bGV0IHI9YXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFBpcGVsaW5lcyIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHksY29ubmVjdGlvbklkOmUuY29ubmVjdGlvbklkLHByb2plY3RJZDplLnByb2plY3RJZH0pO3JldHVybnsuLi50LmdldFN0YXRlKCkscGlwZWxpbmVzOnIucGlwZWxpbmVzfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHBpcGVsaW5lczoiLGkpLHQuZ2V0U3RhdGUoKX19KSx1d3Q9a3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgaDEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGlwZWxpbmVKb2JzIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSxjb25uZWN0aW9uSWQ6ZS5jb25uZWN0aW9uSWQscHJvamVjdElkOmUucHJvamVjdElkLHBpcGVsaW5lSWQ6ZS5waXBlbGluZUlkfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxwaXBlbGluZUpvYnM6ci5qb2JzfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHBpcGVsaW5lIGpvYnM6IixpKSx0LmdldFN0YXRlKCl9fSksZnd0PWt0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IGE9ZWEoKTt0cnl7YXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInJldHJ5UGlwZWxpbmUiKS5maXJlKHtpZGVudGl0eTphLmlkZW50aXR5LC4uLmV9KTtsZXQgcz1hd2FpdCBuZXcgaDEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGlwZWxpbmVzIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSxjb25uZWN0aW9uSWQ6ZS5jb25uZWN0aW9uSWQscHJvamVjdElkOmUucHJvamVjdElkfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxwaXBlbGluZXM6cy5waXBlbGluZXN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmV0cnkgcGlwZWxpbmU6IixpKSx0LmdldFN0YXRlKCl9fSksbXd0PWt0LmNyZWF0ZUFjdGlvbihhc3luYyh0LGUpPT57bGV0IGE9ZWEoKTt0cnl7YXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImNhbmNlbFBpcGVsaW5lIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSwuLi5lfSk7bGV0IHM9YXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFBpcGVsaW5lcyIpLmZpcmUoe2lkZW50aXR5OmEuaWRlbnRpdHksY29ubmVjdGlvbklkOmUuY29ubmVjdGlvbklkLHByb2plY3RJZDplLnByb2plY3RJZH0pO3JldHVybnsuLi50LmdldFN0YXRlKCkscGlwZWxpbmVzOnMucGlwZWxpbmVzfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNhbmNlbCBwaXBlbGluZToiLGkpLHQuZ2V0U3RhdGUoKX19KSxnd3Q9a3QuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9PntsZXQgYT1lYSgpO3RyeXtsZXQgcj1hd2FpdCBuZXcgaDEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0Sm9iTG9nIikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eSwuLi5lfSk7cmV0dXJuey4uLnQuZ2V0U3RhdGUoKSxjdXJyZW50Sm9iTG9nOnIubG9nfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGpvYiBsb2c6IixpKSx0LmdldFN0YXRlKCl9fSksdjQ9R3IuY3JlYXRlQWN0aW9uKGFzeW5jKHQsZSk9Pih7Li4udC5nZXRTdGF0ZSgpLGFjdGl2ZVZpZXc6ZS52aWV3fSkpLE51Mj1Hci5jcmVhdGVBY3Rpb24oYXN5bmMgdD0+e2xldCBlPXQuZ2V0U3RhdGUoKTtyZXR1cm57Li4uZSxhdXRvUmVmcmVzaDohZS5hdXRvUmVmcmVzaH19KX0pO3ZhciBFYSxid3Q9YigoKT0+e3VlKCk7RWE9UWAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogYXV0bzsKICAgIG1heC13aWR0aDogMTI4MHB4OwogICAgcGFkZGluZzogMTZweCAxNnB4OwogICAgY29sb3I6ICNmZmY7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KICAudmlldy10aXRsZSB7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICB9CiAgLnZpZXctZGVzY3JpcHRpb24gewogICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6ICM5OTk7CiAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogIH0KICAudG9vbGJhciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAxNnB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgfQpgfSk7dmFyIE1vPWIoKCk9Pntid3QoKX0pO3ZhciBNd3Q9e307R2UoTXd0LHtHaXRvcHNWaWV3T3ZlcnZpZXc6KCk9PlFzfSk7dmFyIHZ3dCx5d3QseHd0LHd3dCxLcyxEaixFaixRcyxQaj1iKGFzeW5jKCk9PntzcigpO2F3YWl0IFhzKCk7TW8oKTt1ZSgpO3d3dD1baGUoImdpdG9wcy12aWV3LW92ZXJ2aWV3IildO1FzPWNsYXNzIGV4dGVuZHMoeHd0PXhlLHl3dD1bSigpXSx2d3Q9W0ooKV0seHd0KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7UnQodGhpcyxEaixqZShLcyw4LHRoaXMse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSkpLGplKEtzLDExLHRoaXMpO1J0KHRoaXMsRWosamUoS3MsMTIsdGhpcyx7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSkpLGplKEtzLDE1LHRoaXMpO2xldCBhPUZ0LnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMuY29ubmVjdGlvbnNTdGF0ZT1yfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChhKTtsZXQgaT1rdC5zZWxlY3Qocj0+cikuc3Vic2NyaWJlKHI9Pnt0aGlzLmRhdGFTdGF0ZT1yfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChpKX1yZW5kZXIoKXtsZXQgYT10aGlzLmNvbm5lY3Rpb25zU3RhdGUuY29ubmVjdGlvbnMubGVuZ3RoLGk9dGhpcy5kYXRhU3RhdGUucHJvamVjdHMubGVuZ3RoLHI9dGhpcy5kYXRhU3RhdGUuZ3JvdXBzLmxlbmd0aCxzPXRoaXMuZGF0YVN0YXRlLnBpcGVsaW5lcy5sZW5ndGgsbj10aGlzLmRhdGFTdGF0ZS5waXBlbGluZXMuZmlsdGVyKGQ9PmQuc3RhdHVzPT09ImZhaWxlZCIpLmxlbmd0aCxvPVt7aWQ6ImNvbm5lY3Rpb25zIix0aXRsZToiQ29ubmVjdGlvbnMiLHZhbHVlOmEsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6cGx1ZyIsY29sb3I6IiMwMGFjZmYifSx7aWQ6InByb2plY3RzIix0aXRsZToiUHJvamVjdHMiLHZhbHVlOmksdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6Zm9sZGVyR2l0MiIsY29sb3I6IiMwMGFjZmYifSx7aWQ6Imdyb3VwcyIsdGl0bGU6Ikdyb3VwcyIsdmFsdWU6cix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyIsY29sb3I6IiMwMGFjZmYifSx7aWQ6InBpcGVsaW5lcyIsdGl0bGU6IlBpcGVsaW5lcyIsdmFsdWU6cyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTpwbGF5Iixjb2xvcjoiIzAwYWNmZiJ9LHtpZDoiZmFpbGVkIix0aXRsZToiRmFpbGVkIFBpcGVsaW5lcyIsdmFsdWU6bix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp0cmlhbmdsZUFsZXJ0Iixjb2xvcjpuPjA/IiNmZjQ0NDQiOiIjMDBmZjg4In1dO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRpdGxlIj5PdmVydmlldzwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWRlc2NyaXB0aW9uIj5HaXRPcHMgZGFzaGJvYXJkIC0gbWFuYWdlIHlvdXIgR2l0ZWEgYW5kIEdpdExhYiBpbnN0YW5jZXM8L2Rpdj4KICAgICAgPGRlZXMtc3RhdHNncmlkIC50aWxlcz0ke299PjwvZGVlcy1zdGF0c2dyaWQ+CiAgICBgfX07S3M9STIoeHd0KSxEaj1uZXcgV2Vha01hcCxFaj1uZXcgV2Vha01hcCx2dChLcyw0LCJjb25uZWN0aW9uc1N0YXRlIix5d3QsUXMsRGopLHZ0KEtzLDQsImRhdGFTdGF0ZSIsdnd0LFFzLEVqKSxRcz12dChLcywwLCJHaXRvcHNWaWV3T3ZlcnZpZXciLHd3dCxRcyksbDIoUXMsInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyxFYV0pLGplKEtzLDEsUXMpfSk7dmFyIEN3dD17fTtHZShDd3Qse0dpdG9wc1ZpZXdDb25uZWN0aW9uczooKT0+em99KTt2YXIgend0LGt3dCxTd3QsWWwsSWosem8sTmo9Yihhc3luYygpPT57c3IoKTthd2FpdCBYcygpO01vKCk7dWUoKTtTd3Q9W2hlKCJnaXRvcHMtdmlldy1jb25uZWN0aW9ucyIpXTt6bz1jbGFzcyBleHRlbmRzKGt3dD14ZSx6d3Q9W0ooKV0sa3d0KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7UnQodGhpcyxJaixqZShZbCw4LHRoaXMse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSkpLGplKFlsLDExLHRoaXMpO2xldCBhPUZ0LnNlbGVjdChpPT5pKS5zdWJzY3JpYmUoaT0+e3RoaXMuY29ubmVjdGlvbnNTdGF0ZT1pfSk7dGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaChhKX1yZW5kZXIoKXtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idmlldy10aXRsZSI+Q29ubmVjdGlvbnM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlldy1kZXNjcmlwdGlvbiI+TWFuYWdlIHlvdXIgR2l0ZWEgYW5kIEdpdExhYiBwcm92aWRlciBjb25uZWN0aW9uczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuYWRkQ29ubmVjdGlvbigpfT5BZGQgQ29ubmVjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLnJlZnJlc2goKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJQcm92aWRlciBDb25uZWN0aW9ucyJ9CiAgICAgICAgLmhlYWRpbmcyPSR7IkNvbmZpZ3VyZSBjb25uZWN0aW9ucyB0byBHaXRlYSBhbmQgR2l0TGFiIGluc3RhbmNlcyJ9CiAgICAgICAgLmRhdGE9JHt0aGlzLmNvbm5lY3Rpb25zU3RhdGUuY29ubmVjdGlvbnN9CiAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2E9Pih7TmFtZTphLm5hbWUsVHlwZTphLnByb3ZpZGVyVHlwZSxVUkw6YS5iYXNlVXJsLFN0YXR1czphLnN0YXR1cyxDcmVhdGVkOm5ldyBEYXRlKGEuY3JlYXRlZEF0KS50b0xvY2FsZURhdGVTdHJpbmcoKX0pfQogICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVGVzdCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVnIixhY3Rpb246YXN5bmMgYT0+e2F3YWl0IEZ0LmRpc3BhdGNoQWN0aW9uKG53dCx7Y29ubmVjdGlvbklkOmEuaWR9KX19LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246YXN5bmMgYT0+e2xldCBpPWF3YWl0IHJyLkRlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJEZWxldGUgQ29ubmVjdGlvbiIsY29udGVudDp3YDxwIHN0eWxlPSJjb2xvcjogI2ZmZjsiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgY29ubmVjdGlvbiAiJHthLm5hbWV9Ij88L3A+YCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIHI9PntyLmRlc3Ryb3koKX19LHtuYW1lOiJEZWxldGUiLGFjdGlvbjphc3luYyByPT57YXdhaXQgRnQuZGlzcGF0Y2hBY3Rpb24ob3d0LHtjb25uZWN0aW9uSWQ6YS5pZH0pLHIuZGVzdHJveSgpfX1dfSl9fV19CiAgICAgID48L2RlZXMtdGFibGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IHRoaXMucmVmcmVzaCgpfWFzeW5jIHJlZnJlc2goKXthd2FpdCBGdC5kaXNwYXRjaEFjdGlvbihEYSxudWxsKX1hc3luYyBhZGRDb25uZWN0aW9uKCl7YXdhaXQgcnIuRGVlc01vZGFsLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkFkZCBDb25uZWN0aW9uIixjb250ZW50OndgCiAgICAgICAgPHN0eWxlPgogICAgICAgICAgLmZvcm0tcm93IHsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiTmFtZSJ9IC5rZXk9JHsibmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm92aWRlciBUeXBlIn0KICAgICAgICAgICAgLmtleT0keyJwcm92aWRlclR5cGUifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJnaXRlYSIsa2V5OiJnaXRlYSJ9LHtvcHRpb246ImdpdGxhYiIsa2V5OiJnaXRsYWIifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246ImdpdGVhIixrZXk6ImdpdGVhIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkJhc2UgVVJMIn0gLmtleT0keyJiYXNlVXJsIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQVBJIFRva2VuIn0gLmtleT0keyJ0b2tlbiJ9IHR5cGU9InBhc3N3b3JkIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIGE9PnthLmRlc3Ryb3koKX19LHtuYW1lOiJBZGQiLGFjdGlvbjphc3luYyBhPT57bGV0IGk9YS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCwgZGVlcy1pbnB1dC1kcm9wZG93biIpLHI9e307Zm9yKGxldCBzIG9mIGkpcy5rZXk9PT0icHJvdmlkZXJUeXBlIj9yW3Mua2V5XT1zLnNlbGVjdGVkT3B0aW9uPy5rZXl8fCJnaXRlYSI6cltzLmtleV09cy52YWx1ZXx8IiI7YXdhaXQgRnQuZGlzcGF0Y2hBY3Rpb24oc3d0LHtuYW1lOnIubmFtZSxwcm92aWRlclR5cGU6ci5wcm92aWRlclR5cGUsYmFzZVVybDpyLmJhc2VVcmwsdG9rZW46ci50b2tlbn0pLGEuZGVzdHJveSgpfX1dfSl9fTtZbD1JMihrd3QpLElqPW5ldyBXZWFrTWFwLHZ0KFlsLDQsImNvbm5lY3Rpb25zU3RhdGUiLHp3dCx6byxJaiksem89dnQoWWwsMCwiR2l0b3BzVmlld0Nvbm5lY3Rpb25zIixTd3Qsem8pLGwyKHpvLCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMsRWFdKSxqZShZbCwxLHpvKX0pO3ZhciBEd3Q9e307R2UoRHd0LHtHaXRvcHNWaWV3UHJvamVjdHM6KCk9PllyfSk7dmFyIF93dCxUd3QsTHd0LCR3dCxBd3QsTWksRmosT2osUmosWXIsQmo9Yihhc3luYygpPT57c3IoKTthd2FpdCBYcygpO01vKCk7dWUoKTtBd3Q9W2hlKCJnaXRvcHMtdmlldy1wcm9qZWN0cyIpXTtZcj1jbGFzcyBleHRlbmRzKCR3dD14ZSxMd3Q9W0ooKV0sVHd0PVtKKCldLF93dD1bSigpXSwkd3Qpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLEZqLGplKE1pLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksamUoTWksMTEsdGhpcyk7UnQodGhpcyxPaixqZShNaSwxMix0aGlzLHtwcm9qZWN0czpbXSxncm91cHM6W10sc2VjcmV0czpbXSxwaXBlbGluZXM6W10scGlwZWxpbmVKb2JzOltdLGN1cnJlbnRKb2JMb2c6IiJ9KSksamUoTWksMTUsdGhpcyk7UnQodGhpcyxSaixqZShNaSwxNix0aGlzLCIiKSksamUoTWksMTksdGhpcyk7bGV0IGE9RnQuc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBpPWt0LnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMuZGF0YVN0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpfXJlbmRlcigpe2xldCBhPXRoaXMuY29ubmVjdGlvbnNTdGF0ZS5jb25uZWN0aW9ucy5tYXAoaT0+KHtvcHRpb246YCR7aS5uYW1lfSAoJHtpLnByb3ZpZGVyVHlwZX0pYCxrZXk6aS5pZH0pKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idmlldy10aXRsZSI+UHJvamVjdHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlldy1kZXNjcmlwdGlvbiI+QnJvd3NlIHByb2plY3RzIGZyb20geW91ciBjb25uZWN0ZWQgcHJvdmlkZXJzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiQ29ubmVjdGlvbiJ9CiAgICAgICAgICAub3B0aW9ucz0ke2F9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHthLmZpbmQoaT0+aS5rZXk9PT10aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkKXx8YVswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke2k9Pnt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPWkuZGV0YWlsLmtleSx0aGlzLmxvYWRQcm9qZWN0cygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5sb2FkUHJvamVjdHMoKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJQcm9qZWN0cyJ9CiAgICAgICAgLmhlYWRpbmcyPSR7IlJlcG9zaXRvcmllcyBmcm9tIHRoZSBzZWxlY3RlZCBjb25uZWN0aW9uIn0KICAgICAgICAuZGF0YT0ke3RoaXMuZGF0YVN0YXRlLnByb2plY3RzfQogICAgICAgIC5kaXNwbGF5RnVuY3Rpb249JHtpPT4oe05hbWU6aS5uYW1lLFBhdGg6aS5mdWxsUGF0aCxWaXNpYmlsaXR5OmkudmlzaWJpbGl0eSxCcmFuY2g6aS5kZWZhdWx0QnJhbmNoLCJMYXN0IEFjdGl2aXR5IjppLmxhc3RBY3Rpdml0eT9uZXcgRGF0ZShpLmxhc3RBY3Rpdml0eSkudG9Mb2NhbGVEYXRlU3RyaW5nKCk6Ii0ifSl9CiAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IFNlY3JldHMiLGljb25OYW1lOiJsdWNpZGU6a2V5IixhY3Rpb246YXN5bmMgaT0+e0dyLmRpc3BhdGNoQWN0aW9uKHY0LHt2aWV3OiJzZWNyZXRzIn0pfX0se25hbWU6IlZpZXcgUGlwZWxpbmVzIixpY29uTmFtZToibHVjaWRlOnBsYXkiLGFjdGlvbjphc3luYyBpPT57R3IuZGlzcGF0Y2hBY3Rpb24odjQse3ZpZXc6InBpcGVsaW5lcyJ9KX19XX0KICAgICAgPjwvZGVlcy10YWJsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgRnQuZGlzcGF0Y2hBY3Rpb24oRGEsbnVsbCk7bGV0IGE9RnQuZ2V0U3RhdGUoKS5jb25uZWN0aW9uczthLmxlbmd0aD4wJiYhdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmKHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9YVswXS5pZCxhd2FpdCB0aGlzLmxvYWRQcm9qZWN0cygpKX1hc3luYyBsb2FkUHJvamVjdHMoKXt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiZhd2FpdCBrdC5kaXNwYXRjaEFjdGlvbih4byx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR9KX19O01pPUkyKCR3dCksRmo9bmV3IFdlYWtNYXAsT2o9bmV3IFdlYWtNYXAsUmo9bmV3IFdlYWtNYXAsdnQoTWksNCwiY29ubmVjdGlvbnNTdGF0ZSIsTHd0LFlyLEZqKSx2dChNaSw0LCJkYXRhU3RhdGUiLFR3dCxZcixPaiksdnQoTWksNCwic2VsZWN0ZWRDb25uZWN0aW9uSWQiLF93dCxZcixSaiksWXI9dnQoTWksMCwiR2l0b3BzVmlld1Byb2plY3RzIixBd3QsWXIpLGwyKFlyLCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMsRWFdKSxqZShNaSwxLFlyKX0pO3ZhciBPd3Q9e307R2UoT3d0LHtHaXRvcHNWaWV3R3JvdXBzOigpPT5acn0pO3ZhciBFd3QsUHd0LEl3dCxOd3QsRnd0LHppLEhqLHFqLFZqLFpyLGpqPWIoYXN5bmMoKT0+e3NyKCk7YXdhaXQgWHMoKTtNbygpO3VlKCk7Rnd0PVtoZSgiZ2l0b3BzLXZpZXctZ3JvdXBzIildO1pyPWNsYXNzIGV4dGVuZHMoTnd0PXhlLEl3dD1bSigpXSxQd3Q9W0ooKV0sRXd0PVtKKCldLE53dCl7Y29uc3RydWN0b3IoKXtzdXBlcigpO1J0KHRoaXMsSGosamUoemksOCx0aGlzLHtjb25uZWN0aW9uczpbXSxhY3RpdmVDb25uZWN0aW9uSWQ6bnVsbH0pKSxqZSh6aSwxMSx0aGlzKTtSdCh0aGlzLHFqLGplKHppLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxqZSh6aSwxNSx0aGlzKTtSdCh0aGlzLFZqLGplKHppLDE2LHRoaXMsIiIpKSxqZSh6aSwxOSx0aGlzKTtsZXQgYT1GdC5zZWxlY3Qocj0+cikuc3Vic2NyaWJlKHI9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9cn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSk7bGV0IGk9a3Quc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5kYXRhU3RhdGU9cn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IGE9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLm1hcChpPT4oe29wdGlvbjpgJHtpLm5hbWV9ICgke2kucHJvdmlkZXJUeXBlfSlgLGtleTppLmlkfSkpO3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRpdGxlIj5Hcm91cHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlldy1kZXNjcmlwdGlvbiI+QnJvd3NlIG9yZ2FuaXphdGlvbnMgYW5kIGdyb3VwcyBmcm9tIHlvdXIgY29ubmVjdGVkIHByb3ZpZGVyczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IkNvbm5lY3Rpb24ifQogICAgICAgICAgLm9wdGlvbnM9JHthfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7YS5maW5kKGk9Pmkua2V5PT09dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCl8fGFbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtpPT57dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1pLmRldGFpbC5rZXksdGhpcy5sb2FkR3JvdXBzKCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmxvYWRHcm91cHMoKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJHcm91cHMgLyBPcmdhbml6YXRpb25zIn0KICAgICAgICAuaGVhZGluZzI9JHsiR3JvdXBzIGZyb20gdGhlIHNlbGVjdGVkIGNvbm5lY3Rpb24ifQogICAgICAgIC5kYXRhPSR7dGhpcy5kYXRhU3RhdGUuZ3JvdXBzfQogICAgICAgIC5kaXNwbGF5RnVuY3Rpb249JHtpPT4oe05hbWU6aS5uYW1lLFBhdGg6aS5mdWxsUGF0aCxWaXNpYmlsaXR5OmkudmlzaWJpbGl0eSxQcm9qZWN0czpTdHJpbmcoaS5wcm9qZWN0Q291bnQpfSl9CiAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IFNlY3JldHMiLGljb25OYW1lOiJsdWNpZGU6a2V5IixhY3Rpb246YXN5bmMgaT0+e0dyLmRpc3BhdGNoQWN0aW9uKHY0LHt2aWV3OiJzZWNyZXRzIn0pfX1dfQogICAgICA+PC9kZWVzLXRhYmxlPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCBGdC5kaXNwYXRjaEFjdGlvbihEYSxudWxsKTtsZXQgYT1GdC5nZXRTdGF0ZSgpLmNvbm5lY3Rpb25zO2EubGVuZ3RoPjAmJiF0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiYodGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1hWzBdLmlkLGF3YWl0IHRoaXMubG9hZEdyb3VwcygpKX1hc3luYyBsb2FkR3JvdXBzKCl7dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmYXdhaXQga3QuZGlzcGF0Y2hBY3Rpb24oU3cse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkfSl9fTt6aT1JMihOd3QpLEhqPW5ldyBXZWFrTWFwLHFqPW5ldyBXZWFrTWFwLFZqPW5ldyBXZWFrTWFwLHZ0KHppLDQsImNvbm5lY3Rpb25zU3RhdGUiLEl3dCxacixIaiksdnQoemksNCwiZGF0YVN0YXRlIixQd3QsWnIscWopLHZ0KHppLDQsInNlbGVjdGVkQ29ubmVjdGlvbklkIixFd3QsWnIsVmopLFpyPXZ0KHppLDAsIkdpdG9wc1ZpZXdHcm91cHMiLEZ3dCxaciksbDIoWnIsInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyxFYV0pLGplKHppLDEsWnIpfSk7dmFyIFd3dD17fTtHZShXd3Qse0dpdG9wc1ZpZXdTZWNyZXRzOigpPT5raX0pO3ZhciBSd3QsQnd0LEh3dCxxd3QsVnd0LGp3dCxVd3QsYjIsVWosV2osR2osWWosWmosa2ksWGo9Yihhc3luYygpPT57c3IoKTthd2FpdCBYcygpO01vKCk7dWUoKTtVd3Q9W2hlKCJnaXRvcHMtdmlldy1zZWNyZXRzIildO2tpPWNsYXNzIGV4dGVuZHMoand0PXhlLFZ3dD1bSigpXSxxd3Q9W0ooKV0sSHd0PVtKKCldLEJ3dD1bSigpXSxSd3Q9W0ooKV0sand0KXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCk7UnQodGhpcyxVaixqZShiMiw4LHRoaXMse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSkpLGplKGIyLDExLHRoaXMpO1J0KHRoaXMsV2osamUoYjIsMTIsdGhpcyx7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSkpLGplKGIyLDE1LHRoaXMpO1J0KHRoaXMsR2osamUoYjIsMTYsdGhpcywiIikpLGplKGIyLDE5LHRoaXMpO1J0KHRoaXMsWWosamUoYjIsMjAsdGhpcywicHJvamVjdCIpKSxqZShiMiwyMyx0aGlzKTtSdCh0aGlzLFpqLGplKGIyLDI0LHRoaXMsIiIpKSxqZShiMiwyNyx0aGlzKTtsZXQgYT1GdC5zZWxlY3Qocj0+cikuc3Vic2NyaWJlKHI9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9cn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSk7bGV0IGk9a3Quc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5kYXRhU3RhdGU9cn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IGE9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLm1hcChzPT4oe29wdGlvbjpgJHtzLm5hbWV9ICgke3MucHJvdmlkZXJUeXBlfSlgLGtleTpzLmlkfSkpLGk9W3tvcHRpb246IlByb2plY3QiLGtleToicHJvamVjdCJ9LHtvcHRpb246Ikdyb3VwIixrZXk6Imdyb3VwIn1dLHI9dGhpcy5zZWxlY3RlZFNjb3BlPT09InByb2plY3QiP3RoaXMuZGF0YVN0YXRlLnByb2plY3RzLm1hcChzPT4oe29wdGlvbjpzLmZ1bGxQYXRofHxzLm5hbWUsa2V5OnMuaWR9KSk6dGhpcy5kYXRhU3RhdGUuZ3JvdXBzLm1hcChzPT4oe29wdGlvbjpzLmZ1bGxQYXRofHxzLm5hbWUsa2V5OnMuaWR9KSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InZpZXctdGl0bGUiPlNlY3JldHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlldy1kZXNjcmlwdGlvbiI+TWFuYWdlIENJL0NEIHNlY3JldHMgYW5kIHZhcmlhYmxlczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IkNvbm5lY3Rpb24ifQogICAgICAgICAgLm9wdGlvbnM9JHthfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7YS5maW5kKHM9PnMua2V5PT09dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCl8fGFbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtzPT57dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1zLmRldGFpbC5rZXksdGhpcy5sb2FkRW50aXRpZXMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlNjb3BlIn0KICAgICAgICAgIC5vcHRpb25zPSR7aX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke2kuZmluZChzPT5zLmtleT09PXRoaXMuc2VsZWN0ZWRTY29wZSl9CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtzPT57dGhpcy5zZWxlY3RlZFNjb3BlPXMuZGV0YWlsLmtleSx0aGlzLmxvYWRFbnRpdGllcygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHt0aGlzLnNlbGVjdGVkU2NvcGU9PT0icHJvamVjdCI/IlByb2plY3QiOiJHcm91cCJ9CiAgICAgICAgICAub3B0aW9ucz0ke3J9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHtyLmZpbmQocz0+cy5rZXk9PT10aGlzLnNlbGVjdGVkU2NvcGVJZCl8fHJbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtzPT57dGhpcy5zZWxlY3RlZFNjb3BlSWQ9cy5kZXRhaWwua2V5LHRoaXMubG9hZFNlY3JldHMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuYWRkU2VjcmV0KCl9PkFkZCBTZWNyZXQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5sb2FkU2VjcmV0cygpfT5SZWZyZXNoPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgLmhlYWRpbmcxPSR7IlNlY3JldHMifQogICAgICAgIC5oZWFkaW5nMj0keyJDSS9DRCB2YXJpYWJsZXMgZm9yIHRoZSBzZWxlY3RlZCBlbnRpdHkifQogICAgICAgIC5kYXRhPSR7dGhpcy5kYXRhU3RhdGUuc2VjcmV0c30KICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7cz0+KHtLZXk6cy5rZXksVmFsdWU6cy5tYXNrZWQ/IioqKioqKiI6cy52YWx1ZSxQcm90ZWN0ZWQ6cy5wcm90ZWN0ZWQ/IlllcyI6Ik5vIixFbnZpcm9ubWVudDpzLmVudmlyb25tZW50fHwiKiJ9KX0KICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IkVkaXQiLGljb25OYW1lOiJsdWNpZGU6ZWRpdCIsYWN0aW9uOmFzeW5jIHM9Pnthd2FpdCB0aGlzLmVkaXRTZWNyZXQocyl9fSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoMiIsYWN0aW9uOmFzeW5jIHM9Pnthd2FpdCBrdC5kaXNwYXRjaEFjdGlvbihwd3Qse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHNjb3BlOnRoaXMuc2VsZWN0ZWRTY29wZSxzY29wZUlkOnRoaXMuc2VsZWN0ZWRTY29wZUlkLGtleTpzLmtleX0pfX1dfQogICAgICA+PC9kZWVzLXRhYmxlPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCBGdC5kaXNwYXRjaEFjdGlvbihEYSxudWxsKTtsZXQgYT1GdC5nZXRTdGF0ZSgpLmNvbm5lY3Rpb25zO2EubGVuZ3RoPjAmJiF0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiYodGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1hWzBdLmlkLGF3YWl0IHRoaXMubG9hZEVudGl0aWVzKCkpfWFzeW5jIGxvYWRFbnRpdGllcygpe3RoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJih0aGlzLnNlbGVjdGVkU2NvcGU9PT0icHJvamVjdCI/YXdhaXQga3QuZGlzcGF0Y2hBY3Rpb24oeG8se2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkfSk6YXdhaXQga3QuZGlzcGF0Y2hBY3Rpb24oU3cse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkfSkpfWFzeW5jIGxvYWRTZWNyZXRzKCl7IXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR8fCF0aGlzLnNlbGVjdGVkU2NvcGVJZHx8YXdhaXQga3QuZGlzcGF0Y2hBY3Rpb24obHd0LHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxzY29wZTp0aGlzLnNlbGVjdGVkU2NvcGUsc2NvcGVJZDp0aGlzLnNlbGVjdGVkU2NvcGVJZH0pfWFzeW5jIGFkZFNlY3JldCgpe2F3YWl0IHJyLkRlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJBZGQgU2VjcmV0Iixjb250ZW50OndgCiAgICAgICAgPHN0eWxlPi5mb3JtLXJvdyB7IG1hcmdpbi1ib3R0b206IDE2cHg7IH08L3N0eWxlPgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tcm93Ij4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IktleSJ9IC5rZXk9JHsia2V5In0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVmFsdWUifSAua2V5PSR7InZhbHVlIn0gdHlwZT0icGFzc3dvcmQiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgYT0+e2EuZGVzdHJveSgpfX0se25hbWU6IkNyZWF0ZSIsYWN0aW9uOmFzeW5jIGE9PntsZXQgaT1hLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0Iikscj17fTtmb3IobGV0IHMgb2YgaSlyW3Mua2V5XT1zLnZhbHVlfHwiIjthd2FpdCBrdC5kaXNwYXRjaEFjdGlvbihjd3Qse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHNjb3BlOnRoaXMuc2VsZWN0ZWRTY29wZSxzY29wZUlkOnRoaXMuc2VsZWN0ZWRTY29wZUlkLGtleTpyLmtleSx2YWx1ZTpyLnZhbHVlfSksYS5kZXN0cm95KCl9fV19KX1hc3luYyBlZGl0U2VjcmV0KGEpe2F3YWl0IHJyLkRlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOmBFZGl0IFNlY3JldDogJHthLmtleX1gLGNvbnRlbnQ6d2AKICAgICAgICA8c3R5bGU+LmZvcm0tcm93IHsgbWFyZ2luLWJvdHRvbTogMTZweDsgfTwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVmFsdWUifSAua2V5PSR7InZhbHVlIn0gdHlwZT0icGFzc3dvcmQiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgaT0+e2kuZGVzdHJveSgpfX0se25hbWU6IlVwZGF0ZSIsYWN0aW9uOmFzeW5jIGk9PntsZXQgcj1pLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7YXdhaXQga3QuZGlzcGF0Y2hBY3Rpb24oZHd0LHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxzY29wZTp0aGlzLnNlbGVjdGVkU2NvcGUsc2NvcGVJZDp0aGlzLnNlbGVjdGVkU2NvcGVJZCxrZXk6YS5rZXksdmFsdWU6cj8udmFsdWV8fCIifSksaS5kZXN0cm95KCl9fV19KX19O2IyPUkyKGp3dCksVWo9bmV3IFdlYWtNYXAsV2o9bmV3IFdlYWtNYXAsR2o9bmV3IFdlYWtNYXAsWWo9bmV3IFdlYWtNYXAsWmo9bmV3IFdlYWtNYXAsdnQoYjIsNCwiY29ubmVjdGlvbnNTdGF0ZSIsVnd0LGtpLFVqKSx2dChiMiw0LCJkYXRhU3RhdGUiLHF3dCxraSxXaiksdnQoYjIsNCwic2VsZWN0ZWRDb25uZWN0aW9uSWQiLEh3dCxraSxHaiksdnQoYjIsNCwic2VsZWN0ZWRTY29wZSIsQnd0LGtpLFlqKSx2dChiMiw0LCJzZWxlY3RlZFNjb3BlSWQiLFJ3dCxraSxaaiksa2k9dnQoYjIsMCwiR2l0b3BzVmlld1NlY3JldHMiLFV3dCxraSksbDIoa2ksInN0eWxlcyIsW2guZGVmYXVsdFN0eWxlcyxFYV0pLGplKGIyLDEsa2kpfSk7dmFyIEp3dD17fTtHZShKd3Qse0dpdG9wc1ZpZXdQaXBlbGluZXM6KCk9Pm9yfSk7dmFyIEd3dCxZd3QsWnd0LFh3dCxLd3QsUXd0LHhhLEtqLFFqLEpqLGVVLG9yLHRVPWIoYXN5bmMoKT0+e3NyKCk7YXdhaXQgWHMoKTtNbygpO3VlKCk7UXd0PVtoZSgiZ2l0b3BzLXZpZXctcGlwZWxpbmVzIildO29yPWNsYXNzIGV4dGVuZHMoS3d0PXhlLFh3dD1bSigpXSxad3Q9W0ooKV0sWXd0PVtKKCldLEd3dD1bSigpXSxLd3Qpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLEtqLGplKHhhLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksamUoeGEsMTEsdGhpcyk7UnQodGhpcyxRaixqZSh4YSwxMix0aGlzLHtwcm9qZWN0czpbXSxncm91cHM6W10sc2VjcmV0czpbXSxwaXBlbGluZXM6W10scGlwZWxpbmVKb2JzOltdLGN1cnJlbnRKb2JMb2c6IiJ9KSksamUoeGEsMTUsdGhpcyk7UnQodGhpcyxKaixqZSh4YSwxNix0aGlzLCIiKSksamUoeGEsMTksdGhpcyk7UnQodGhpcyxlVSxqZSh4YSwyMCx0aGlzLCIiKSksamUoeGEsMjMsdGhpcyk7bGV0IGE9RnQuc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBpPWt0LnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMuZGF0YVN0YXRlPXJ9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpfXJlbmRlcigpe2xldCBhPXRoaXMuY29ubmVjdGlvbnNTdGF0ZS5jb25uZWN0aW9ucy5tYXAocj0+KHtvcHRpb246YCR7ci5uYW1lfSAoJHtyLnByb3ZpZGVyVHlwZX0pYCxrZXk6ci5pZH0pKSxpPXRoaXMuZGF0YVN0YXRlLnByb2plY3RzLm1hcChyPT4oe29wdGlvbjpyLmZ1bGxQYXRofHxyLm5hbWUsa2V5OnIuaWR9KSk7cmV0dXJuIHdgCiAgICAgIDxkaXYgY2xhc3M9InZpZXctdGl0bGUiPlBpcGVsaW5lczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWRlc2NyaXB0aW9uIj5WaWV3IGFuZCBtYW5hZ2UgQ0kvQ0QgcGlwZWxpbmVzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiQ29ubmVjdGlvbiJ9CiAgICAgICAgICAub3B0aW9ucz0ke2F9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHthLmZpbmQocj0+ci5rZXk9PT10aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkKXx8YVswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke3I9Pnt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPXIuZGV0YWlsLmtleSx0aGlzLmxvYWRQcm9qZWN0cygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCJ9CiAgICAgICAgICAub3B0aW9ucz0ke2l9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHtpLmZpbmQocj0+ci5rZXk9PT10aGlzLnNlbGVjdGVkUHJvamVjdElkKXx8aVswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke3I9Pnt0aGlzLnNlbGVjdGVkUHJvamVjdElkPXIuZGV0YWlsLmtleSx0aGlzLmxvYWRQaXBlbGluZXMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMubG9hZFBpcGVsaW5lcygpfT5SZWZyZXNoPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgLmhlYWRpbmcxPSR7IkNJL0NEIFBpcGVsaW5lcyJ9CiAgICAgICAgLmhlYWRpbmcyPSR7IlBpcGVsaW5lIHJ1bnMgZm9yIHRoZSBzZWxlY3RlZCBwcm9qZWN0In0KICAgICAgICAuZGF0YT0ke3RoaXMuZGF0YVN0YXRlLnBpcGVsaW5lc30KICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7cj0+KHtJRDpyLmlkLFN0YXR1czpyLnN0YXR1cyxSZWY6ci5yZWYsRHVyYXRpb246ci5kdXJhdGlvbj9gJHtNYXRoLnJvdW5kKHIuZHVyYXRpb24pfXNgOiItIixTb3VyY2U6ci5zb3VyY2UsQ3JlYXRlZDpyLmNyZWF0ZWRBdD9uZXcgRGF0ZShyLmNyZWF0ZWRBdCkudG9Mb2NhbGVTdHJpbmcoKToiLSJ9KX0KICAgICAgICAuZGF0YUFjdGlvbnM9JHtbe25hbWU6IlZpZXcgSm9icyIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246YXN5bmMgcj0+e2F3YWl0IHRoaXMudmlld0pvYnMocil9fSx7bmFtZToiUmV0cnkiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaC1jdyIsYWN0aW9uOmFzeW5jIHI9Pnthd2FpdCBrdC5kaXNwYXRjaEFjdGlvbihmd3Qse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHByb2plY3RJZDp0aGlzLnNlbGVjdGVkUHJvamVjdElkLHBpcGVsaW5lSWQ6ci5pZH0pfX0se25hbWU6IkNhbmNlbCIsaWNvbk5hbWU6Imx1Y2lkZTp4LWNpcmNsZSIsYWN0aW9uOmFzeW5jIHI9Pnthd2FpdCBrdC5kaXNwYXRjaEFjdGlvbihtd3Qse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHByb2plY3RJZDp0aGlzLnNlbGVjdGVkUHJvamVjdElkLHBpcGVsaW5lSWQ6ci5pZH0pfX1dfQogICAgICA+PC9kZWVzLXRhYmxlPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCBGdC5kaXNwYXRjaEFjdGlvbihEYSxudWxsKTtsZXQgYT1GdC5nZXRTdGF0ZSgpLmNvbm5lY3Rpb25zO2EubGVuZ3RoPjAmJiF0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiYodGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1hWzBdLmlkLGF3YWl0IHRoaXMubG9hZFByb2plY3RzKCkpfWFzeW5jIGxvYWRQcm9qZWN0cygpe3RoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJmF3YWl0IGt0LmRpc3BhdGNoQWN0aW9uKHhvLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZH0pfWFzeW5jIGxvYWRQaXBlbGluZXMoKXshdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZHx8IXRoaXMuc2VsZWN0ZWRQcm9qZWN0SWR8fGF3YWl0IGt0LmRpc3BhdGNoQWN0aW9uKGh3dCx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQscHJvamVjdElkOnRoaXMuc2VsZWN0ZWRQcm9qZWN0SWR9KX1hc3luYyB2aWV3Sm9icyhhKXthd2FpdCBrdC5kaXNwYXRjaEFjdGlvbih1d3Qse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHByb2plY3RJZDp0aGlzLnNlbGVjdGVkUHJvamVjdElkLHBpcGVsaW5lSWQ6YS5pZH0pO2xldCBpPWt0LmdldFN0YXRlKCkucGlwZWxpbmVKb2JzO2F3YWl0IHJyLkRlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOmBQaXBlbGluZSAjJHthLmlkfSAtIEpvYnNgLGNvbnRlbnQ6d2AKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAuam9icy1saXN0IHsgY29sb3I6ICNmZmY7IH0KICAgICAgICAgIC5qb2ItaXRlbSB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgcGFkZGluZzogOHB4IDA7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzMzOyB9CiAgICAgICAgICAuam9iLW5hbWUgeyBmb250LXdlaWdodDogNjAwOyB9CiAgICAgICAgICAuam9iLXN0YXR1cyB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtc2l6ZTogMTJweDsgfQogICAgICAgIDwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0iam9icy1saXN0Ij4KICAgICAgICAgICR7aS5tYXAocj0+d2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iam9iLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJqb2ItbmFtZSI+JHtyLm5hbWV9ICgke3Iuc3RhZ2V9KTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iam9iLXN0YXR1cyI+JHtyLnN0YXR1c30gLSAke3IuZHVyYXRpb24/YCR7TWF0aC5yb3VuZChyLmR1cmF0aW9uKX1zYDoiLSJ9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgICAgJHtpLmxlbmd0aD09PTA/d2A8cD5ObyBqb2JzIGZvdW5kLjwvcD5gOiIifQogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2xvc2UiLGFjdGlvbjphc3luYyByPT57ci5kZXN0cm95KCl9fV19KX19O3hhPUkyKEt3dCksS2o9bmV3IFdlYWtNYXAsUWo9bmV3IFdlYWtNYXAsSmo9bmV3IFdlYWtNYXAsZVU9bmV3IFdlYWtNYXAsdnQoeGEsNCwiY29ubmVjdGlvbnNTdGF0ZSIsWHd0LG9yLEtqKSx2dCh4YSw0LCJkYXRhU3RhdGUiLFp3dCxvcixRaiksdnQoeGEsNCwic2VsZWN0ZWRDb25uZWN0aW9uSWQiLFl3dCxvcixKaiksdnQoeGEsNCwic2VsZWN0ZWRQcm9qZWN0SWQiLEd3dCxvcixlVSksb3I9dnQoeGEsMCwiR2l0b3BzVmlld1BpcGVsaW5lcyIsUXd0LG9yKSxsMihvciwic3R5bGVzIixbaC5kZWZhdWx0U3R5bGVzLEVhLFFgCiAgICAgIC5zdGF0dXMtYmFkZ2UgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICB9CiAgICAgIC5zdGF0dXMtc3VjY2VzcyB7IGJhY2tncm91bmQ6ICMxYTNhMWE7IGNvbG9yOiAjMDBmZjg4OyB9CiAgICAgIC5zdGF0dXMtZmFpbGVkIHsgYmFja2dyb3VuZDogIzNhMWExYTsgY29sb3I6ICNmZjQ0NDQ7IH0KICAgICAgLnN0YXR1cy1ydW5uaW5nIHsgYmFja2dyb3VuZDogIzFhMmEzYTsgY29sb3I6ICMwMGFjZmY7IH0KICAgICAgLnN0YXR1cy1wZW5kaW5nIHsgYmFja2dyb3VuZDogIzNhM2ExYTsgY29sb3I6ICNmZmFhMDA7IH0KICAgICAgLnN0YXR1cy1jYW5jZWxlZCB7IGJhY2tncm91bmQ6ICMyYTJhMmE7IGNvbG9yOiAjOTk5OyB9CiAgICBgXSksamUoeGEsMSxvcil9KTt2YXIgb010PXt9O0dlKG9NdCx7R2l0b3BzVmlld0J1aWxkbG9nOigpPT5TaX0pO3ZhciBlTXQsdE10LGFNdCxpTXQsck10LHNNdCxuTXQsdjIsYVUsaVUsclUsc1UsblUsU2ksb1U9Yihhc3luYygpPT57c3IoKTthd2FpdCBYcygpO01vKCk7dWUoKTtuTXQ9W2hlKCJnaXRvcHMtdmlldy1idWlsZGxvZyIpXTtTaT1jbGFzcyBleHRlbmRzKHNNdD14ZSxyTXQ9W0ooKV0saU10PVtKKCldLGFNdD1bSigpXSx0TXQ9W0ooKV0sZU10PVtKKCldLHNNdCl7Y29uc3RydWN0b3IoKXtzdXBlcigpO1J0KHRoaXMsYVUsamUodjIsOCx0aGlzLHtjb25uZWN0aW9uczpbXSxhY3RpdmVDb25uZWN0aW9uSWQ6bnVsbH0pKSxqZSh2MiwxMSx0aGlzKTtSdCh0aGlzLGlVLGplKHYyLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxqZSh2MiwxNSx0aGlzKTtSdCh0aGlzLHJVLGplKHYyLDE2LHRoaXMsIiIpKSxqZSh2MiwxOSx0aGlzKTtSdCh0aGlzLHNVLGplKHYyLDIwLHRoaXMsIiIpKSxqZSh2MiwyMyx0aGlzKTtSdCh0aGlzLG5VLGplKHYyLDI0LHRoaXMsIiIpKSxqZSh2MiwyNyx0aGlzKTtsZXQgYT1GdC5zZWxlY3Qocj0+cikuc3Vic2NyaWJlKHI9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9cn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goYSk7bGV0IGk9a3Quc2VsZWN0KHI9PnIpLnN1YnNjcmliZShyPT57dGhpcy5kYXRhU3RhdGU9cn0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IGE9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLm1hcChzPT4oe29wdGlvbjpgJHtzLm5hbWV9ICgke3MucHJvdmlkZXJUeXBlfSlgLGtleTpzLmlkfSkpLGk9dGhpcy5kYXRhU3RhdGUucHJvamVjdHMubWFwKHM9Pih7b3B0aW9uOnMuZnVsbFBhdGh8fHMubmFtZSxrZXk6cy5pZH0pKSxyPXRoaXMuZGF0YVN0YXRlLnBpcGVsaW5lSm9icy5tYXAocz0+KHtvcHRpb246YCR7cy5uYW1lfSAoJHtzLnN0YXR1c30pYCxrZXk6cy5pZH0pKTtyZXR1cm4gd2AKICAgICAgPGRpdiBjbGFzcz0idmlldy10aXRsZSI+QnVpbGQgTG9nPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZXctZGVzY3JpcHRpb24iPlZpZXcgcmF3IGJ1aWxkIGxvZ3MgZm9yIENJL0NEIGpvYnM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJDb25uZWN0aW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7YX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke2EuZmluZChzPT5zLmtleT09PXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQpfHxhWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7cz0+e3RoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9cy5kZXRhaWwua2V5LHRoaXMubG9hZFByb2plY3RzKCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJQcm9qZWN0In0KICAgICAgICAgIC5vcHRpb25zPSR7aX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke2kuZmluZChzPT5zLmtleT09PXRoaXMuc2VsZWN0ZWRQcm9qZWN0SWQpfHxpWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7cz0+e3RoaXMuc2VsZWN0ZWRQcm9qZWN0SWQ9cy5kZXRhaWwua2V5fX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiSm9iIn0KICAgICAgICAgIC5vcHRpb25zPSR7cn0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3IuZmluZChzPT5zLmtleT09PXRoaXMuc2VsZWN0ZWRKb2JJZCl8fHJbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtzPT57dGhpcy5zZWxlY3RlZEpvYklkPXMuZGV0YWlsLmtleX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuZmV0Y2hMb2coKX0+RmV0Y2ggTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuZmV0Y2hMb2coKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICAke3RoaXMuc2VsZWN0ZWRKb2JJZD93YAogICAgICAgIDxkaXYgY2xhc3M9ImpvYi1tZXRhIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJqb2ItbWV0YS1pdGVtIj5Kb2I6IDxzdHJvbmc+JHt0aGlzLnNlbGVjdGVkSm9iSWR9PC9zdHJvbmc+PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImpvYi1tZXRhLWl0ZW0iPlByb2plY3Q6IDxzdHJvbmc+JHt0aGlzLnNlbGVjdGVkUHJvamVjdElkfTwvc3Ryb25nPjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgPGRpdiBjbGFzcz0ibG9nLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmRhdGFTdGF0ZS5jdXJyZW50Sm9iTG9nP3RoaXMuZGF0YVN0YXRlLmN1cnJlbnRKb2JMb2c6d2A8ZGl2IGNsYXNzPSJsb2ctZW1wdHkiPlNlbGVjdCBhIGNvbm5lY3Rpb24sIHByb2plY3QsIGFuZCBqb2IsIHRoZW4gY2xpY2sgIkZldGNoIExvZyIgdG8gdmlldyBidWlsZCBvdXRwdXQuPC9kaXY+YH0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IEZ0LmRpc3BhdGNoQWN0aW9uKERhLG51bGwpO2xldCBhPUZ0LmdldFN0YXRlKCkuY29ubmVjdGlvbnM7YS5sZW5ndGg+MCYmIXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJih0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPWFbMF0uaWQsYXdhaXQgdGhpcy5sb2FkUHJvamVjdHMoKSl9YXN5bmMgbG9hZFByb2plY3RzKCl7dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmYXdhaXQga3QuZGlzcGF0Y2hBY3Rpb24oeG8se2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkfSl9YXN5bmMgZmV0Y2hMb2coKXshdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZHx8IXRoaXMuc2VsZWN0ZWRQcm9qZWN0SWR8fCF0aGlzLnNlbGVjdGVkSm9iSWR8fGF3YWl0IGt0LmRpc3BhdGNoQWN0aW9uKGd3dCx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQscHJvamVjdElkOnRoaXMuc2VsZWN0ZWRQcm9qZWN0SWQsam9iSWQ6dGhpcy5zZWxlY3RlZEpvYklkfSl9fTt2Mj1JMihzTXQpLGFVPW5ldyBXZWFrTWFwLGlVPW5ldyBXZWFrTWFwLHJVPW5ldyBXZWFrTWFwLHNVPW5ldyBXZWFrTWFwLG5VPW5ldyBXZWFrTWFwLHZ0KHYyLDQsImNvbm5lY3Rpb25zU3RhdGUiLHJNdCxTaSxhVSksdnQodjIsNCwiZGF0YVN0YXRlIixpTXQsU2ksaVUpLHZ0KHYyLDQsInNlbGVjdGVkQ29ubmVjdGlvbklkIixhTXQsU2ksclUpLHZ0KHYyLDQsInNlbGVjdGVkUHJvamVjdElkIix0TXQsU2ksc1UpLHZ0KHYyLDQsInNlbGVjdGVkSm9iSWQiLGVNdCxTaSxuVSksU2k9dnQodjIsMCwiR2l0b3BzVmlld0J1aWxkbG9nIixuTXQsU2kpLGwyKFNpLCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMsRWEsUWAKICAgICAgLmxvZy1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICMwZDBkMGQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LWZhbWlseTogJ0ZpcmEgQ29kZScsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogI2NjYzsKICAgICAgICBtYXgtaGVpZ2h0OiA2MDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KICAgICAgLmxvZy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgLmpvYi1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogIzFhMWEyZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5qb2ItbWV0YS1pdGVtIHsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgfQogICAgICAuam9iLW1ldGEtaXRlbSBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICB9CiAgICBgXSksamUodjIsMSxTaSl9KTtzcigpO2F3YWl0IFhzKCk7QWooKTt1ZSgpO3ZhciBsTXQsY010LGRNdCxwTXQsSnMsbFUsY1U7cE10PVtoZSgiZ2l0b3BzLWRhc2hib2FyZCIpXTt2YXIga289Y2xhc3MgZXh0ZW5kcyhkTXQ9eGUsY010PVtKKCldLGxNdD1bSigpXSxkTXQpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtSdCh0aGlzLGxVLGplKEpzLDgsdGhpcyx7aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfSkpLGplKEpzLDExLHRoaXMpO1J0KHRoaXMsY1UsamUoSnMsMTIsdGhpcyx7YWN0aXZlVmlldzoib3ZlcnZpZXciLGF1dG9SZWZyZXNoOiEwLHJlZnJlc2hJbnRlcnZhbDozZTR9KSksamUoSnMsMTUsdGhpcyk7bDIodGhpcywidmlld1RhYnMiLFt7bmFtZToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0RGFzaGJvYXJkIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgUGooKS50aGVuKCgpPT5Nd3QpKS5HaXRvcHNWaWV3T3ZlcnZpZXcpKCl9LHtuYW1lOiJDb25uZWN0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVnIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgTmooKS50aGVuKCgpPT5Dd3QpKS5HaXRvcHNWaWV3Q29ubmVjdGlvbnMpKCl9LHtuYW1lOiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJHaXQyIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgQmooKS50aGVuKCgpPT5Ed3QpKS5HaXRvcHNWaWV3UHJvamVjdHMpKCl9LHtuYW1lOiJHcm91cHMiLGljb25OYW1lOiJsdWNpZGU6dXNlcnMiLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBqaigpLnRoZW4oKCk9Pk93dCkpLkdpdG9wc1ZpZXdHcm91cHMpKCl9LHtuYW1lOiJTZWNyZXRzIixpY29uTmFtZToibHVjaWRlOmtleSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IFhqKCkudGhlbigoKT0+V3d0KSkuR2l0b3BzVmlld1NlY3JldHMpKCl9LHtuYW1lOiJQaXBlbGluZXMiLGljb25OYW1lOiJsdWNpZGU6cGxheSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IHRVKCkudGhlbigoKT0+Snd0KSkuR2l0b3BzVmlld1BpcGVsaW5lcykoKX0se25hbWU6IkJ1aWxkIExvZyIsaWNvbk5hbWU6Imx1Y2lkZTpzY3JvbGxUZXh0IixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgb1UoKS50aGVuKCgpPT5vTXQpKS5HaXRvcHNWaWV3QnVpbGRsb2cpKCl9XSk7bDIodGhpcywicmVzb2x2ZWRWaWV3VGFicyIsW10pO2RvY3VtZW50LnRpdGxlPSJHaXRPcHMiO2xldCBhPW5yLnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMubG9naW5TdGF0ZT1yLHIuaXNMb2dnZWRJbiYmRnQuZGlzcGF0Y2hBY3Rpb24oRGEsbnVsbCl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGEpO2xldCBpPUdyLnNlbGVjdChyPT5yKS5zdWJzY3JpYmUocj0+e3RoaXMudWlTdGF0ZT1yLHRoaXMuc3luY0FwcGRhc2hWaWV3KHIuYWN0aXZlVmlldyl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpfXJlbmRlcigpe3JldHVybiB3YAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1zaW1wbGUtbG9naW4gbmFtZT0iR2l0T3BzIj4KICAgICAgICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgICAgICAgIG5hbWU9IkdpdE9wcyIKICAgICAgICAgICAgLnZpZXdUYWJzPSR7dGhpcy5yZXNvbHZlZFZpZXdUYWJzfQogICAgICAgICAgPgogICAgICAgICAgPC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogICAgICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJlc29sdmVkVmlld1RhYnM9YXdhaXQgUHJvbWlzZS5hbGwodGhpcy52aWV3VGFicy5tYXAoYXN5bmMgcz0+KHtuYW1lOnMubmFtZSxpY29uTmFtZTpzLmljb25OYW1lLGVsZW1lbnQ6YXdhaXQgcy5lbGVtZW50fSkpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBhPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigibG9naW4iLHM9Pnt0aGlzLmxvZ2luKHMuZGV0YWlsLmRhdGEudXNlcm5hbWUscy5kZXRhaWwuZGF0YS5wYXNzd29yZCl9KTtsZXQgaT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKGkmJihpLmFkZEV2ZW50TGlzdGVuZXIoInZpZXctc2VsZWN0IixzPT57bGV0IG49cy5kZXRhaWwudmlldy5uYW1lLnRvTG93ZXJDYXNlKCk7R3IuZGlzcGF0Y2hBY3Rpb24odjQse3ZpZXc6bn0pfSksaS5hZGRFdmVudExpc3RlbmVyKCJsb2dvdXQiLGFzeW5jKCk9Pnthd2FpdCBuci5kaXNwYXRjaEFjdGlvbihvZCxudWxsKX0pKSxpJiZ0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPjApe2xldCBzPXRoaXMucmVzb2x2ZWRWaWV3VGFicy5maW5kKG49Pm4ubmFtZS50b0xvd2VyQ2FzZSgpPT09dGhpcy51aVN0YXRlLmFjdGl2ZVZpZXcpfHx0aGlzLnJlc29sdmVkVmlld1RhYnNbMF07YXdhaXQgaS5sb2FkVmlldyhzKX1sZXQgcj1uci5nZXRTdGF0ZSgpO2lmKHIuaWRlbnRpdHk/Lmp3dClpZihyLmlkZW50aXR5LmV4cGlyZXNBdD5EYXRlLm5vdygpKXRyeXsoYXdhaXQgbmV3IGgxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInZlcmlmeUlkZW50aXR5IikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pKS52YWxpZD8odGhpcy5sb2dpblN0YXRlPXIsYSYmYXdhaXQgYS5zd2l0Y2hUb1Nsb3R0ZWRDb250ZW50KCkpOmF3YWl0IG5yLmRpc3BhdGNoQWN0aW9uKG9kLG51bGwpfWNhdGNoKHMpe2NvbnNvbGUud2FybigiU3RvcmVkIHNlc3Npb24gaW52YWxpZCwgcmV0dXJuaW5nIHRvIGxvZ2luOiIscyksYXdhaXQgbnIuZGlzcGF0Y2hBY3Rpb24ob2QsbnVsbCl9ZWxzZSBhd2FpdCBuci5kaXNwYXRjaEFjdGlvbihvZCxudWxsKX1hc3luYyBsb2dpbihhLGkpe2xldCByPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc2ltcGxlLWxvZ2luIiksbj1zPy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtuJiZuLnNldFN0YXR1cygicGVuZGluZyIsIkxvZ2dpbmcgaW4uLi4iKSwoYXdhaXQgbnIuZGlzcGF0Y2hBY3Rpb24ocnd0LHt1c2VybmFtZTphLHBhc3N3b3JkOml9KSkuaWRlbnRpdHk/KG4mJm4uc2V0U3RhdHVzKCJzdWNjZXNzIiwiTG9nZ2VkIGluISIpLHMmJmF3YWl0IHMuc3dpdGNoVG9TbG90dGVkQ29udGVudCgpKTpuJiYobi5zZXRTdGF0dXMoImVycm9yIiwiTG9naW4gZmFpbGVkISIpLGF3YWl0IHIuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLG4ucmVzZXQoKSl9c3luY0FwcGRhc2hWaWV3KGEpe2xldCBpPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKCFpfHx0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPT09MClyZXR1cm47bGV0IHI9dGhpcy5yZXNvbHZlZFZpZXdUYWJzLmZpbmQocz0+cy5uYW1lLnRvTG93ZXJDYXNlKCk9PT1hKTtyJiZpLmxvYWRWaWV3KHIpfX07SnM9STIoZE10KSxsVT1uZXcgV2Vha01hcCxjVT1uZXcgV2Vha01hcCx2dChKcyw0LCJsb2dpblN0YXRlIixjTXQsa28sbFUpLHZ0KEpzLDQsInVpU3RhdGUiLGxNdCxrbyxjVSksa289dnQoSnMsMCwiR2l0b3BzRGFzaGJvYXJkIixwTXQsa28pLGwyKGtvLCJzdHlsZXMiLFtoLmRlZmF1bHRTdHlsZXMsUWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgfQogICAgYF0pLGplKEpzLDEsa28pO2F3YWl0IFBqKCk7YXdhaXQgTmooKTthd2FpdCBCaigpO2F3YWl0IGpqKCk7YXdhaXQgWGooKTthd2FpdCB0VSgpO2F3YWl0IG9VKCk7c3IoKTt1ZSgpO3g1LnJlbmRlcih3YAogIDxnaXRvcHMtZGFzaGJvYXJkPjwvZ2l0b3BzLWRhc2hib2FyZD4KYCxkb2N1bWVudC5ib2R5KTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCkBsaXQvcmVhY3RpdmUtZWxlbWVudC9jc3MtdGFnLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCkBsaXQvcmVhY3RpdmUtZWxlbWVudC9yZWFjdGl2ZS1lbGVtZW50LmpzOgpsaXQtaHRtbC9saXQtaHRtbC5qczoKbGl0LWVsZW1lbnQvbGl0LWVsZW1lbnQuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3Byb3BlcnR5LmpzOgpsaXQtaHRtbC9kaXJlY3RpdmUuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvdW5zYWZlLWh0bWwuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2N1c3RvbS1lbGVtZW50LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9zdGF0ZS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvZXZlbnQtb3B0aW9ucy5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvYmFzZS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnkuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFsbC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXN5bmMuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzc2lnbmVkLW5vZGVzLmpzOgpsaXQtaHRtbC9hc3luYy1kaXJlY3RpdmUuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvdW50aWwuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtcmVwbGFjZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9hc3luYy1hcHBlbmQuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvcmVwZWF0LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCmxpdC1odG1sL2lzLXNlcnZlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIyIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpzd2VldC1zY3JvbGwvc3dlZXQtc2Nyb2xsLmpzOgogICgqISBAcHJlc2VydmUgc3dlZXQtc2Nyb2xsIHY0LjAuMCAtIHRzdXlvc2hpd2FkYSB8IE1JVCBMaWNlbnNlICopCiAgKCohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCiAgICAgIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCiAgICAgIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgCiAgICAgIFRISVMgQ09ERSBJUyBQUk9WSURFRCBPTiBBTiAqQVMgSVMqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICAgICAgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgSU1QTElFRAogICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLAogICAgICBNRVJDSEFOVEFCTElUWSBPUiBOT04tSU5GUklOR0VNRU5ULgogIAogICAgICBTZWUgdGhlIEFwYWNoZSBWZXJzaW9uIDIuMCBMaWNlbnNlIGZvciBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMKICAgICAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqKQoKbGl0LWh0bWwvc3RhdGljLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmUtaGVscGVycy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIwIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1lbGVtZW50cy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9wcml2YXRlLWFzeW5jLWhlbHBlcnMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMva2V5ZWQuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAyMSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogICAqKQoKQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtYnJhbmRzLXN2Zy1pY29ucy9pbmRleC5tanM6CkBmb3J0YXdlc29tZS9mcmVlLXJlZ3VsYXItc3ZnLWljb25zL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zL2luZGV4Lm1qczoKICAoKiEKICAgKiBGb250IEF3ZXNvbWUgRnJlZSA3LjIuMCBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbQogICAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpCiAgICogQ29weXJpZ2h0IDIwMjYgRm9udGljb25zLCBJbmMuCiAgICopCgpsdWNpZGUvZGlzdC9janMvbHVjaWRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlIGx1Y2lkZSB2MC41NjQuMCAtIElTQwogICAqCiAgICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuCiAgICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuCiAgICopCgppYmFudG9vbHMvanNuZXh0L2liYW50b29scy5qczoKICAoKiEKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBTYcWhYSBKb3ZhbmnEhwogICAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDIuMCBvciB0aGUgTUlUIGxpY2Vuc2UsCiAgICogYXQgeW91ciBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCiAgICogZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KICAgKiBTUERYLUZpbGVDb3B5cmlnaHRUZXh0OiBTYcWhYSBKb3ZhbmnEhwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQgb3IgTVBMLzIuMAogICAqKQogICgqKgogICAqIFZhbGlkYXRpb24sIGV4dHJhY3Rpb24gYW5kIGNyZWF0aW9uIG9mIElCQU4sIEJCQU4sIEJJQy9TV0lGVCBudW1iZXJzIHBsdXMgc29tZSBvdGhlciBoZWxwZnVsIHN0dWZmCiAgICogQHBhY2thZ2UgRG9jdW1lbnRhdGlvbgogICAqIEBhdXRob3IgU2HFoWEgSm92YW5pxIcKICAgKiBAbW9kdWxlIGliYW50b29scwogICAqIEB2ZXJzaW9uIDQuNS4xCiAgICogQGxpY2Vuc2UgTUlUIG9yIE1QTC0yLjAKICAgKiBAcHJlZmVycmVkCiAgICopCiovCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1bmRsZS0xNzcxOTUyNjMxNDQyLmpzLm1hcAo=" + "contentBase64": "dmFyIFk1ZT1PYmplY3QuY3JlYXRlLFY1ZT1PYmplY3QuZnJlZXplLEo0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgWjVlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIFV1cj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgV3VyPU9iamVjdC5nZXRQcm90b3R5cGVPZixHdXI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgWDVlPShlLHQpPT4odD1TeW1ib2xbZV0pP3Q6U3ltYm9sLmZvcigiU3ltYm9sLiIrZSksbzU9ZT0+e3Rocm93IFR5cGVFcnJvcihlKX07dmFyIFE1ZT0oZSx0LHIpPT50IGluIGU/SjQoZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpyfSk6ZVt0XT1yO3ZhciBVNWU9KGUsdCk9Pko0KGUsIm5hbWUiLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMH0pLFJjPShlPT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eShlLHtnZXQ6KHQscik9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0KVtyXX0pOmUpKGZ1bmN0aW9uKGUpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytlKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBwPShlLHQpPT4oKT0+KGUmJih0PWUoZT0wKSksdCk7dmFyIGplPShlLHQpPT4oKT0+KHR8fGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLHQuZXhwb3J0cyksRmU9KGUsdCk9Pntmb3IodmFyIHIgaW4gdClKNChlLHIse2dldDp0W3JdLGVudW1lcmFibGU6ITB9KX0sWXVyPShlLHQscixpKT0+e2lmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Inx8dHlwZW9mIHQ9PSJmdW5jdGlvbiIpZm9yKGxldCBhIG9mIFV1cih0KSkhR3VyLmNhbGwoZSxhKSYmYSE9PXImJko0KGUsYSx7Z2V0OigpPT50W2FdLGVudW1lcmFibGU6IShpPVo1ZSh0LGEpKXx8aS5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9O3ZhciBlcj0oZSx0LHIpPT4ocj1lIT1udWxsP1k1ZShXdXIoZSkpOnt9LFl1cih0fHwhZXx8IWUuX19lc01vZHVsZT9KNChyLCJkZWZhdWx0Iix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6cixlKSk7dmFyIG9hPWU9PlssLCxZNWUoZT8uW1g1ZSgibWV0YWRhdGEiKV0/P251bGwpXSxKNWU9WyJjbGFzcyIsIm1ldGhvZCIsImdldHRlciIsInNldHRlciIsImFjY2Vzc29yIiwiZmllbGQiLCJ2YWx1ZSIsImdldCIsInNldCJdLENoPWU9PmUhPT12b2lkIDAmJnR5cGVvZiBlIT0iZnVuY3Rpb24iP281KCJGdW5jdGlvbiBleHBlY3RlZCIpOmUsWnVyPShlLHQscixpLGEpPT4oe2tpbmQ6SjVlW2VdLG5hbWU6dCxtZXRhZGF0YTppLGFkZEluaXRpYWxpemVyOm49PnIuXz9vNSgiQWxyZWFkeSBpbml0aWFsaXplZCIpOmEucHVzaChDaChufHxudWxsKSl9KSxYdXI9KGUsdCk9PlE1ZSh0LFg1ZSgibWV0YWRhdGEiKSxlWzNdKSxldD0oZSx0LHIsaSk9Pntmb3IodmFyIGE9MCxuPWVbdD4+MV0sbz1uJiZuLmxlbmd0aDthPG87YSsrKXQmMT9uW2FdLmNhbGwocik6aT1uW2FdLmNhbGwocixpKTtyZXR1cm4gaX0sRnQ9KGUsdCxyLGksYSxuKT0+e3ZhciBvLHMsbCxjLHUsZD10JjcsaD0hISh0JjgpLGY9ISEodCYxNikseD1kPjM/ZS5sZW5ndGgrMTpkP2g/MToyOjAsdj1KNWVbZCs1XSxiPWQ+MyYmKGVbeC0xXT1bXSkseT1lW3hdfHwoZVt4XT1bXSksdz1kJiYoIWYmJiFoJiYoYT1hLnByb3RvdHlwZSksZDw1JiYoZD4zfHwhZikmJlo1ZShkPDQ/YTp7Z2V0W3JdKCl7cmV0dXJuIFc1ZSh0aGlzLG4pfSxzZXRbcl0oTyl7cmV0dXJuIEc1ZSh0aGlzLG4sTyl9fSxyKSk7ZD9mJiZkPDQmJlU1ZShuLChkPjI/InNldCAiOmQ+MT8iZ2V0ICI6IiIpK3IpOlU1ZShhLHIpO2Zvcih2YXIgaz1pLmxlbmd0aC0xO2s+PTA7ay0tKWM9WnVyKGQscixsPXt9LGVbM10seSksZCYmKGMuc3RhdGljPWgsYy5wcml2YXRlPWYsdT1jLmFjY2Vzcz17aGFzOmY/Tz0+UXVyKGEsTyk6Tz0+ciBpbiBPfSxkXjMmJih1LmdldD1mP089PihkXjE/VzVlOkp1cikoTyxhLGReND9uOncuZ2V0KTpPPT5PW3JdKSxkPjImJih1LnNldD1mPyhPLHopPT5HNWUoTyxhLHosZF40P246dy5zZXQpOihPLHopPT5PW3JdPXopKSxzPSgwLGlba10pKGQ/ZDw0P2Y/bjp3W3ZdOmQ+ND92b2lkIDA6e2dldDp3LmdldCxzZXQ6dy5zZXR9OmEsYyksbC5fPTEsZF40fHxzPT09dm9pZCAwP0NoKHMpJiYoZD40P2IudW5zaGlmdChzKTpkP2Y/bj1zOndbdl09czphPXMpOnR5cGVvZiBzIT0ib2JqZWN0Inx8cz09PW51bGw/bzUoIk9iamVjdCBleHBlY3RlZCIpOihDaChvPXMuZ2V0KSYmKHcuZ2V0PW8pLENoKG89cy5zZXQpJiYody5zZXQ9byksQ2gobz1zLmluaXQpJiZiLnVuc2hpZnQobykpO3JldHVybiBkfHxYdXIoZSxhKSx3JiZKNChhLHIsdyksZj9kXjQ/bjp3OmF9LHppPShlLHQscik9PlE1ZShlLHR5cGVvZiB0IT0ic3ltYm9sIj90KyIiOnQsciksekY9KGUsdCxyKT0+dC5oYXMoZSl8fG81KCJDYW5ub3QgIityKSxRdXI9KGUsdCk9Pk9iamVjdCh0KSE9PXQ/bzUoJ0Nhbm5vdCB1c2UgdGhlICJpbiIgb3BlcmF0b3Igb24gdGhpcyB2YWx1ZScpOmUuaGFzKHQpLFc1ZT0oZSx0LHIpPT4oekYoZSx0LCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZCIpLHI/ci5jYWxsKGUpOnQuZ2V0KGUpKSxncj0oZSx0LHIpPT50LmhhcyhlKT9vNSgiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZSIpOnQgaW5zdGFuY2VvZiBXZWFrU2V0P3QuYWRkKGUpOnQuc2V0KGUsciksRzVlPShlLHQscixpKT0+KHpGKGUsdCwid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZCIpLGk/aS5jYWxsKGUscik6dC5zZXQoZSxyKSxyKSxKdXI9KGUsdCxyKT0+KHpGKGUsdCwiYWNjZXNzIHByaXZhdGUgbWV0aG9kIikscik7dmFyIHM1PShlLHQpPT5WNWUoSjQoZSwicmF3Iix7dmFsdWU6VjVlKHR8fGUuc2xpY2UoKSl9KSk7dmFyIHR2LFRoLENGLEs1ZSxsNSx3MSxaMSxydixfaCxURj1wKCgpPT57dHY9Z2xvYmFsVGhpcyxUaD10di5TaGFkb3dSb290JiYodHYuU2hhZHlDU1M9PT12b2lkIDB8fHR2LlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZSxDRj1TeW1ib2woKSxLNWU9bmV3IFdlYWtNYXAsbDU9Y2xhc3N7Y29uc3RydWN0b3IodCxyLGkpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLGkhPT1DRil0aHJvdyBFcnJvcigiQ1NTUmVzdWx0IGlzIG5vdCBjb25zdHJ1Y3RhYmxlLiBVc2UgYHVuc2FmZUNTU2Agb3IgYGNzc2AgaW5zdGVhZC4iKTt0aGlzLmNzc1RleHQ9dCx0aGlzLnQ9cn1nZXQgc3R5bGVTaGVldCgpe2xldCB0PXRoaXMubyxyPXRoaXMudDtpZihUaCYmdD09PXZvaWQgMCl7bGV0IGk9ciE9PXZvaWQgMCYmci5sZW5ndGg9PT0xO2kmJih0PUs1ZS5nZXQocikpLHQ9PT12b2lkIDAmJigodGhpcy5vPXQ9bmV3IENTU1N0eWxlU2hlZXQpLnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCksaSYmSzVlLnNldChyLHQpKX1yZXR1cm4gdH10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fSx3MT1lPT5uZXcgbDUodHlwZW9mIGU9PSJzdHJpbmciP2U6ZSsiIix2b2lkIDAsQ0YpLFoxPShlLC4uLnQpPT57bGV0IHI9ZS5sZW5ndGg9PT0xP2VbMF06dC5yZWR1Y2UoKGksYSxuKT0+aSsobz0+e2lmKG8uXyRjc3NSZXN1bHQkPT09ITApcmV0dXJuIG8uY3NzVGV4dDtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIG87dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK28rIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkoYSkrZVtuKzFdLGVbMF0pO3JldHVybiBuZXcgbDUocixlLENGKX0scnY9KGUsdCk9PntpZihUaCllLmFkb3B0ZWRTdHlsZVNoZWV0cz10Lm1hcChyPT5yIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9yOnIuc3R5bGVTaGVldCk7ZWxzZSBmb3IobGV0IHIgb2YgdCl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxhPXR2LmxpdE5vbmNlO2EhPT12b2lkIDAmJmkuc2V0QXR0cmlidXRlKCJub25jZSIsYSksaS50ZXh0Q29udGVudD1yLmNzc1RleHQsZS5hcHBlbmRDaGlsZChpKX19LF9oPVRoP2U9PmU6ZT0+ZSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KHQ9PntsZXQgcj0iIjtmb3IobGV0IGkgb2YgdC5jc3NSdWxlcylyKz1pLmNzc1RleHQ7cmV0dXJuIHcxKHIpfSkoZSk6ZX0pO3ZhciBLdXIsZThyLHQ4cixyOHIsaThyLGE4cixpdixldWUsbjhyLG84cixMaCxjNSxBaCx0dWUsVjIsRGg9cCgoKT0+e1RGKCk7VEYoKTsoe2lzOkt1cixkZWZpbmVQcm9wZXJ0eTplOHIsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnQ4cixnZXRPd25Qcm9wZXJ0eU5hbWVzOnI4cixnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6aThyLGdldFByb3RvdHlwZU9mOmE4cn09T2JqZWN0KSxpdj1nbG9iYWxUaGlzLGV1ZT1pdi50cnVzdGVkVHlwZXMsbjhyPWV1ZT9ldWUuZW1wdHlTY3JpcHQ6IiIsbzhyPWl2LnJlYWN0aXZlRWxlbWVudFBvbHlmaWxsU3VwcG9ydCxMaD0oZSx0KT0+ZSxjNT17dG9BdHRyaWJ1dGUoZSx0KXtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOmU9ZT9uOHI6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmU9ZT09bnVsbD9lOkpTT04uc3RyaW5naWZ5KGUpfXJldHVybiBlfSxmcm9tQXR0cmlidXRlKGUsdCl7bGV0IHI9ZTtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOnI9ZSE9PW51bGw7YnJlYWs7Y2FzZSBOdW1iZXI6cj1lPT09bnVsbD9udWxsOk51bWJlcihlKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXtyPUpTT04ucGFyc2UoZSl9Y2F0Y2h7cj1udWxsfX1yZXR1cm4gcn19LEFoPShlLHQpPT4hS3VyKGUsdCksdHVlPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOmM1LHJlZmxlY3Q6ITEsdXNlRGVmYXVsdDohMSxoYXNDaGFuZ2VkOkFofTtTeW1ib2wubWV0YWRhdGE/Pz1TeW1ib2woIm1ldGFkYXRhIiksaXYubGl0UHJvcGVydHlNZXRhZGF0YT8/PW5ldyBXZWFrTWFwO1YyPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGljIGFkZEluaXRpYWxpemVyKHQpe3RoaXMuXyRFaSgpLCh0aGlzLmw/Pz1bXSkucHVzaCh0KX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiB0aGlzLmZpbmFsaXplKCksdGhpcy5fJEVoJiZbLi4udGhpcy5fJEVoLmtleXMoKV19c3RhdGljIGNyZWF0ZVByb3BlcnR5KHQscj10dWUpe2lmKHIuc3RhdGUmJihyLmF0dHJpYnV0ZT0hMSksdGhpcy5fJEVpKCksdGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkodCkmJigocj1PYmplY3QuY3JlYXRlKHIpKS53cmFwcGVkPSEwKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldCh0LHIpLCFyLm5vQWNjZXNzb3Ipe2xldCBpPVN5bWJvbCgpLGE9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IodCxpLHIpO2EhPT12b2lkIDAmJmU4cih0aGlzLnByb3RvdHlwZSx0LGEpfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQscixpKXtsZXR7Z2V0OmEsc2V0Om59PXQ4cih0aGlzLnByb3RvdHlwZSx0KT8/e2dldCgpe3JldHVybiB0aGlzW3JdfSxzZXQobyl7dGhpc1tyXT1vfX07cmV0dXJue2dldDphLHNldChvKXtsZXQgcz1hPy5jYWxsKHRoaXMpO24/LmNhbGwodGhpcyxvKSx0aGlzLnJlcXVlc3RVcGRhdGUodCxzLGkpfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19c3RhdGljIGdldFByb3BlcnR5T3B0aW9ucyh0KXtyZXR1cm4gdGhpcy5lbGVtZW50UHJvcGVydGllcy5nZXQodCk/P3R1ZX1zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoTGgoImVsZW1lbnRQcm9wZXJ0aWVzIikpKXJldHVybjtsZXQgdD1hOHIodGhpcyk7dC5maW5hbGl6ZSgpLHQubCE9PXZvaWQgMCYmKHRoaXMubD1bLi4udC5sXSksdGhpcy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwKHQuZWxlbWVudFByb3BlcnRpZXMpfXN0YXRpYyBmaW5hbGl6ZSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoTGgoImZpbmFsaXplZCIpKSlyZXR1cm47aWYodGhpcy5maW5hbGl6ZWQ9ITAsdGhpcy5fJEVpKCksdGhpcy5oYXNPd25Qcm9wZXJ0eShMaCgicHJvcGVydGllcyIpKSl7bGV0IHI9dGhpcy5wcm9wZXJ0aWVzLGk9Wy4uLnI4cihyKSwuLi5pOHIocildO2ZvcihsZXQgYSBvZiBpKXRoaXMuY3JlYXRlUHJvcGVydHkoYSxyW2FdKX1sZXQgdD10aGlzW1N5bWJvbC5tZXRhZGF0YV07aWYodCE9PW51bGwpe2xldCByPWxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KHQpO2lmKHIhPT12b2lkIDApZm9yKGxldFtpLGFdb2Ygcil0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChpLGEpfXRoaXMuXyRFaD1uZXcgTWFwO2ZvcihsZXRbcixpXW9mIHRoaXMuZWxlbWVudFByb3BlcnRpZXMpe2xldCBhPXRoaXMuXyRFdShyLGkpO2EhPT12b2lkIDAmJnRoaXMuXyRFaC5zZXQoYSxyKX10aGlzLmVsZW1lbnRTdHlsZXM9dGhpcy5maW5hbGl6ZVN0eWxlcyh0aGlzLnN0eWxlcyl9c3RhdGljIGZpbmFsaXplU3R5bGVzKHQpe2xldCByPVtdO2lmKEFycmF5LmlzQXJyYXkodCkpe2xldCBpPW5ldyBTZXQodC5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IobGV0IGEgb2YgaSlyLnVuc2hpZnQoX2goYSkpfWVsc2UgdCE9PXZvaWQgMCYmci5wdXNoKF9oKHQpKTtyZXR1cm4gcn1zdGF0aWMgXyRFdSh0LHIpe2xldCBpPXIuYXR0cmlidXRlO3JldHVybiBpPT09ITE/dm9pZCAwOnR5cGVvZiBpPT0ic3RyaW5nIj9pOnR5cGVvZiB0PT0ic3RyaW5nIj90LnRvTG93ZXJDYXNlKCk6dm9pZCAwfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl8kRXA9dm9pZCAwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExLHRoaXMuaGFzVXBkYXRlZD0hMSx0aGlzLl8kRW09bnVsbCx0aGlzLl8kRXYoKX1fJEV2KCl7dGhpcy5fJEVTPW5ldyBQcm9taXNlKHQ9PnRoaXMuZW5hYmxlVXBkYXRpbmc9dCksdGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5fJEVfKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jb25zdHJ1Y3Rvci5sPy5mb3JFYWNoKHQ9PnQodGhpcykpfWFkZENvbnRyb2xsZXIodCl7KHRoaXMuXyRFTz8/PW5ldyBTZXQpLmFkZCh0KSx0aGlzLnJlbmRlclJvb3QhPT12b2lkIDAmJnRoaXMuaXNDb25uZWN0ZWQmJnQuaG9zdENvbm5lY3RlZD8uKCl9cmVtb3ZlQ29udHJvbGxlcih0KXt0aGlzLl8kRU8/LmRlbGV0ZSh0KX1fJEVfKCl7bGV0IHQ9bmV3IE1hcCxyPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7Zm9yKGxldCBpIG9mIHIua2V5cygpKXRoaXMuaGFzT3duUHJvcGVydHkoaSkmJih0LnNldChpLHRoaXNbaV0pLGRlbGV0ZSB0aGlzW2ldKTt0LnNpemU+MCYmKHRoaXMuXyRFcD10KX1jcmVhdGVSZW5kZXJSb290KCl7bGV0IHQ9dGhpcy5zaGFkb3dSb290Pz90aGlzLmF0dGFjaFNoYWRvdyh0aGlzLmNvbnN0cnVjdG9yLnNoYWRvd1Jvb3RPcHRpb25zKTtyZXR1cm4gcnYodCx0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRTdHlsZXMpLHR9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLmVuYWJsZVVwZGF0aW5nKCEwKSx0aGlzLl8kRU8/LmZvckVhY2godD0+dC5ob3N0Q29ubmVjdGVkPy4oKSl9ZW5hYmxlVXBkYXRpbmcodCl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fJEVPPy5mb3JFYWNoKHQ9PnQuaG9zdERpc2Nvbm5lY3RlZD8uKCkpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LHIsaSl7dGhpcy5fJEFLKHQsaSl9XyRFVCh0LHIpe2xldCBpPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXMuZ2V0KHQpLGE9dGhpcy5jb25zdHJ1Y3Rvci5fJEV1KHQsaSk7aWYoYSE9PXZvaWQgMCYmaS5yZWZsZWN0PT09ITApe2xldCBuPShpLmNvbnZlcnRlcj8udG9BdHRyaWJ1dGUhPT12b2lkIDA/aS5jb252ZXJ0ZXI6YzUpLnRvQXR0cmlidXRlKHIsaS50eXBlKTt0aGlzLl8kRW09dCxuPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKGEpOnRoaXMuc2V0QXR0cmlidXRlKGEsbiksdGhpcy5fJEVtPW51bGx9fV8kQUsodCxyKXtsZXQgaT10aGlzLmNvbnN0cnVjdG9yLGE9aS5fJEVoLmdldCh0KTtpZihhIT09dm9pZCAwJiZ0aGlzLl8kRW0hPT1hKXtsZXQgbj1pLmdldFByb3BlcnR5T3B0aW9ucyhhKSxvPXR5cGVvZiBuLmNvbnZlcnRlcj09ImZ1bmN0aW9uIj97ZnJvbUF0dHJpYnV0ZTpuLmNvbnZlcnRlcn06bi5jb252ZXJ0ZXI/LmZyb21BdHRyaWJ1dGUhPT12b2lkIDA/bi5jb252ZXJ0ZXI6YzU7dGhpcy5fJEVtPWE7bGV0IHM9by5mcm9tQXR0cmlidXRlKHIsbi50eXBlKTt0aGlzW2FdPXM/P3RoaXMuXyRFaj8uZ2V0KGEpPz9zLHRoaXMuXyRFbT1udWxsfX1yZXF1ZXN0VXBkYXRlKHQscixpLGE9ITEsbil7aWYodCE9PXZvaWQgMCl7bGV0IG89dGhpcy5jb25zdHJ1Y3RvcjtpZihhPT09ITEmJihuPXRoaXNbdF0pLGk/Pz1vLmdldFByb3BlcnR5T3B0aW9ucyh0KSwhKChpLmhhc0NoYW5nZWQ/P0FoKShuLHIpfHxpLnVzZURlZmF1bHQmJmkucmVmbGVjdCYmbj09PXRoaXMuXyRFaj8uZ2V0KHQpJiYhdGhpcy5oYXNBdHRyaWJ1dGUoby5fJEV1KHQsaSkpKSlyZXR1cm47dGhpcy5DKHQscixpKX10aGlzLmlzVXBkYXRlUGVuZGluZz09PSExJiYodGhpcy5fJEVTPXRoaXMuXyRFUCgpKX1DKHQscix7dXNlRGVmYXVsdDppLHJlZmxlY3Q6YSx3cmFwcGVkOm59LG8pe2kmJiEodGhpcy5fJEVqPz89bmV3IE1hcCkuaGFzKHQpJiYodGhpcy5fJEVqLnNldCh0LG8/P3I/P3RoaXNbdF0pLG4hPT0hMHx8byE9PXZvaWQgMCl8fCh0aGlzLl8kQUwuaGFzKHQpfHwodGhpcy5oYXNVcGRhdGVkfHxpfHwocj12b2lkIDApLHRoaXMuXyRBTC5zZXQodCxyKSksYT09PSEwJiZ0aGlzLl8kRW0hPT10JiYodGhpcy5fJEVxPz89bmV3IFNldCkuYWRkKHQpKX1hc3luYyBfJEVQKCl7dGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e2F3YWl0IHRoaXMuXyRFU31jYXRjaChyKXtQcm9taXNlLnJlamVjdChyKX1sZXQgdD10aGlzLnNjaGVkdWxlVXBkYXRlKCk7cmV0dXJuIHQhPW51bGwmJmF3YWl0IHQsIXRoaXMuaXNVcGRhdGVQZW5kaW5nfXNjaGVkdWxlVXBkYXRlKCl7cmV0dXJuIHRoaXMucGVyZm9ybVVwZGF0ZSgpfXBlcmZvcm1VcGRhdGUoKXtpZighdGhpcy5pc1VwZGF0ZVBlbmRpbmcpcmV0dXJuO2lmKCF0aGlzLmhhc1VwZGF0ZWQpe2lmKHRoaXMucmVuZGVyUm9vdD8/PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHRoaXMuXyRFcCl7Zm9yKGxldFthLG5db2YgdGhpcy5fJEVwKXRoaXNbYV09bjt0aGlzLl8kRXA9dm9pZCAwfWxldCBpPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7aWYoaS5zaXplPjApZm9yKGxldFthLG5db2YgaSl7bGV0e3dyYXBwZWQ6b309bixzPXRoaXNbYV07byE9PSEwfHx0aGlzLl8kQUwuaGFzKGEpfHxzPT09dm9pZCAwfHx0aGlzLkMoYSx2b2lkIDAsbixzKX19bGV0IHQ9ITEscj10aGlzLl8kQUw7dHJ5e3Q9dGhpcy5zaG91bGRVcGRhdGUociksdD8odGhpcy53aWxsVXBkYXRlKHIpLHRoaXMuXyRFTz8uZm9yRWFjaChpPT5pLmhvc3RVcGRhdGU/LigpKSx0aGlzLnVwZGF0ZShyKSk6dGhpcy5fJEVNKCl9Y2F0Y2goaSl7dGhyb3cgdD0hMSx0aGlzLl8kRU0oKSxpfXQmJnRoaXMuXyRBRShyKX13aWxsVXBkYXRlKHQpe31fJEFFKHQpe3RoaXMuXyRFTz8uZm9yRWFjaChyPT5yLmhvc3RVcGRhdGVkPy4oKSksdGhpcy5oYXNVcGRhdGVkfHwodGhpcy5oYXNVcGRhdGVkPSEwLHRoaXMuZmlyc3RVcGRhdGVkKHQpKSx0aGlzLnVwZGF0ZWQodCl9XyRFTSgpe3RoaXMuXyRBTD1uZXcgTWFwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExfWdldCB1cGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLmdldFVwZGF0ZUNvbXBsZXRlKCl9Z2V0VXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5fJEVTfXNob3VsZFVwZGF0ZSh0KXtyZXR1cm4hMH11cGRhdGUodCl7dGhpcy5fJEVxJiY9dGhpcy5fJEVxLmZvckVhY2gocj0+dGhpcy5fJEVUKHIsdGhpc1tyXSkpLHRoaXMuXyRFTSgpfXVwZGF0ZWQodCl7fWZpcnN0VXBkYXRlZCh0KXt9fTtWMi5lbGVtZW50U3R5bGVzPVtdLFYyLnNoYWRvd1Jvb3RPcHRpb25zPXttb2RlOiJvcGVuIn0sVjJbTGgoImVsZW1lbnRQcm9wZXJ0aWVzIildPW5ldyBNYXAsVjJbTGgoImZpbmFsaXplZCIpXT1uZXcgTWFwLG84cj8uKHtSZWFjdGl2ZUVsZW1lbnQ6VjJ9KSwoaXYucmVhY3RpdmVFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiMi4xLjIiKX0pO2Z1bmN0aW9uIHV1ZShlLHQpe2lmKCFERihlKXx8IWUuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gaXVlIT09dm9pZCAwP2l1ZS5jcmVhdGVIVE1MKHQpOnR9ZnVuY3Rpb24gcjMoZSx0LHI9ZSxpKXtpZih0PT09bzEpcmV0dXJuIHQ7bGV0IGE9aSE9PXZvaWQgMD9yLl8kQ28/LltpXTpyLl8kQ2wsbj0kaCh0KT92b2lkIDA6dC5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIGE/LmNvbnN0cnVjdG9yIT09biYmKGE/Ll8kQU8/LighMSksbj09PXZvaWQgMD9hPXZvaWQgMDooYT1uZXcgbihlKSxhLl8kQVQoZSxyLGkpKSxpIT09dm9pZCAwPyhyLl8kQ28/Pz1bXSlbaV09YTpyLl8kQ2w9YSksYSE9PXZvaWQgMCYmKHQ9cjMoZSxhLl8kQVMoZSx0LnZhbHVlcyksYSxpKSksdH12YXIgX0YscnVlLGF2LGl1ZSxMRix1bCxBRixzOHIsSzQsRWgsJGgsREYsYXVlLEVGLEloLG51ZSxvdWUsZTMsc3VlLGx1ZSxjdWUsJEYsdXIsSUYsUEYsbzEsYjEsZHVlLHQzLHB1ZSxQaCxudixkNSxpMyxvdixzdixsdixjdixORixsOHIsTmgsUW89cCgoKT0+e19GPWdsb2JhbFRoaXMscnVlPWU9PmUsYXY9X0YudHJ1c3RlZFR5cGVzLGl1ZT1hdj9hdi5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3JlYXRlSFRNTDplPT5lfSk6dm9pZCAwLExGPSIkbGl0JCIsdWw9YGxpdCQke01hdGgucmFuZG9tKCkudG9GaXhlZCg5KS5zbGljZSgyKX0kYCxBRj0iPyIrdWwsczhyPWA8JHtBRn0+YCxLND1kb2N1bWVudCxFaD0oKT0+SzQuY3JlYXRlQ29tbWVudCgiIiksJGg9ZT0+ZT09PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0IiYmdHlwZW9mIGUhPSJmdW5jdGlvbiIsREY9QXJyYXkuaXNBcnJheSxhdWU9ZT0+REYoZSl8fHR5cGVvZiBlPy5bU3ltYm9sLml0ZXJhdG9yXT09ImZ1bmN0aW9uIixFRj1gWyAJClxmXHJdYCxJaD0vPCg/OighLS18XC9bXmEtekEtWl0pfChcLz9bYS16QS1aXVtePlxzXSopfChcLz8kKSkvZyxudWU9Ly0tPi9nLG91ZT0vPi9nLGUzPVJlZ0V4cChgPnwke0VGfSg/OihbXlxccyInPj0vXSspKCR7RUZ9Kj0ke0VGfSooPzpbXiAJClxmXHIiJ1xgPD49XXwoInwnKXwpKXwkKWAsImciKSxzdWU9LycvZyxsdWU9LyIvZyxjdWU9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLCRGPWU9Pih0LC4uLnIpPT4oe18kbGl0VHlwZSQ6ZSxzdHJpbmdzOnQsdmFsdWVzOnJ9KSx1cj0kRigxKSxJRj0kRigyKSxQRj0kRigzKSxvMT1TeW1ib2wuZm9yKCJsaXQtbm9DaGFuZ2UiKSxiMT1TeW1ib2wuZm9yKCJsaXQtbm90aGluZyIpLGR1ZT1uZXcgV2Vha01hcCx0Mz1LNC5jcmVhdGVUcmVlV2Fsa2VyKEs0LDEyOSk7cHVlPShlLHQpPT57bGV0IHI9ZS5sZW5ndGgtMSxpPVtdLGEsbj10PT09Mj8iPHN2Zz4iOnQ9PT0zPyI8bWF0aD4iOiIiLG89SWg7Zm9yKGxldCBzPTA7czxyO3MrKyl7bGV0IGw9ZVtzXSxjLHUsZD0tMSxoPTA7Zm9yKDtoPGwubGVuZ3RoJiYoby5sYXN0SW5kZXg9aCx1PW8uZXhlYyhsKSx1IT09bnVsbCk7KWg9by5sYXN0SW5kZXgsbz09PUloP3VbMV09PT0iIS0tIj9vPW51ZTp1WzFdIT09dm9pZCAwP289b3VlOnVbMl0hPT12b2lkIDA/KGN1ZS50ZXN0KHVbMl0pJiYoYT1SZWdFeHAoIjwvIit1WzJdLCJnIikpLG89ZTMpOnVbM10hPT12b2lkIDAmJihvPWUzKTpvPT09ZTM/dVswXT09PSI+Ij8obz1hPz9JaCxkPS0xKTp1WzFdPT09dm9pZCAwP2Q9LTI6KGQ9by5sYXN0SW5kZXgtdVsyXS5sZW5ndGgsYz11WzFdLG89dVszXT09PXZvaWQgMD9lMzp1WzNdPT09JyInP2x1ZTpzdWUpOm89PT1sdWV8fG89PT1zdWU/bz1lMzpvPT09bnVlfHxvPT09b3VlP289SWg6KG89ZTMsYT12b2lkIDApO2xldCBmPW89PT1lMyYmZVtzKzFdLnN0YXJ0c1dpdGgoIi8+Iik/IiAiOiIiO24rPW89PT1JaD9sK3M4cjpkPj0wPyhpLnB1c2goYyksbC5zbGljZSgwLGQpK0xGK2wuc2xpY2UoZCkrdWwrZik6bCt1bCsoZD09PS0yP3M6Zil9cmV0dXJuW3V1ZShlLG4rKGVbcl18fCI8Pz4iKSsodD09PTI/Ijwvc3ZnPiI6dD09PTM/IjwvbWF0aD4iOiIiKSksaV19LFBoPWNsYXNzIGV7Y29uc3RydWN0b3Ioe3N0cmluZ3M6dCxfJGxpdFR5cGUkOnJ9LGkpe2xldCBhO3RoaXMucGFydHM9W107bGV0IG49MCxvPTAscz10Lmxlbmd0aC0xLGw9dGhpcy5wYXJ0cyxbYyx1XT1wdWUodCxyKTtpZih0aGlzLmVsPWUuY3JlYXRlRWxlbWVudChjLGkpLHQzLmN1cnJlbnROb2RlPXRoaXMuZWwuY29udGVudCxyPT09Mnx8cj09PTMpe2xldCBkPXRoaXMuZWwuY29udGVudC5maXJzdENoaWxkO2QucmVwbGFjZVdpdGgoLi4uZC5jaGlsZE5vZGVzKX1mb3IoOyhhPXQzLm5leHROb2RlKCkpIT09bnVsbCYmbC5sZW5ndGg8czspe2lmKGEubm9kZVR5cGU9PT0xKXtpZihhLmhhc0F0dHJpYnV0ZXMoKSlmb3IobGV0IGQgb2YgYS5nZXRBdHRyaWJ1dGVOYW1lcygpKWlmKGQuZW5kc1dpdGgoTEYpKXtsZXQgaD11W28rK10sZj1hLmdldEF0dHJpYnV0ZShkKS5zcGxpdCh1bCkseD0vKFsuP0BdKT8oLiopLy5leGVjKGgpO2wucHVzaCh7dHlwZToxLGluZGV4Om4sbmFtZTp4WzJdLHN0cmluZ3M6ZixjdG9yOnhbMV09PT0iLiI/b3Y6eFsxXT09PSI/Ij9zdjp4WzFdPT09IkAiP2x2OmkzfSksYS5yZW1vdmVBdHRyaWJ1dGUoZCl9ZWxzZSBkLnN0YXJ0c1dpdGgodWwpJiYobC5wdXNoKHt0eXBlOjYsaW5kZXg6bn0pLGEucmVtb3ZlQXR0cmlidXRlKGQpKTtpZihjdWUudGVzdChhLnRhZ05hbWUpKXtsZXQgZD1hLnRleHRDb250ZW50LnNwbGl0KHVsKSxoPWQubGVuZ3RoLTE7aWYoaD4wKXthLnRleHRDb250ZW50PWF2P2F2LmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgZj0wO2Y8aDtmKyspYS5hcHBlbmQoZFtmXSxFaCgpKSx0My5uZXh0Tm9kZSgpLGwucHVzaCh7dHlwZToyLGluZGV4Oisrbn0pO2EuYXBwZW5kKGRbaF0sRWgoKSl9fX1lbHNlIGlmKGEubm9kZVR5cGU9PT04KWlmKGEuZGF0YT09PUFGKWwucHVzaCh7dHlwZToyLGluZGV4Om59KTtlbHNle2xldCBkPS0xO2Zvcig7KGQ9YS5kYXRhLmluZGV4T2YodWwsZCsxKSkhPT0tMTspbC5wdXNoKHt0eXBlOjcsaW5kZXg6bn0pLGQrPXVsLmxlbmd0aC0xfW4rK319c3RhdGljIGNyZWF0ZUVsZW1lbnQodCxyKXtsZXQgaT1LNC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO3JldHVybiBpLmlubmVySFRNTD10LGl9fTtudj1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuXyRBVj1bXSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBRD10LHRoaXMuXyRBTT1yfWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXUodCl7bGV0e2VsOntjb250ZW50OnJ9LHBhcnRzOml9PXRoaXMuXyRBRCxhPSh0Py5jcmVhdGlvblNjb3BlPz9LNCkuaW1wb3J0Tm9kZShyLCEwKTt0My5jdXJyZW50Tm9kZT1hO2xldCBuPXQzLm5leHROb2RlKCksbz0wLHM9MCxsPWlbMF07Zm9yKDtsIT09dm9pZCAwOyl7aWYobz09PWwuaW5kZXgpe2xldCBjO2wudHlwZT09PTI/Yz1uZXcgZDUobixuLm5leHRTaWJsaW5nLHRoaXMsdCk6bC50eXBlPT09MT9jPW5ldyBsLmN0b3IobixsLm5hbWUsbC5zdHJpbmdzLHRoaXMsdCk6bC50eXBlPT09NiYmKGM9bmV3IGN2KG4sdGhpcyx0KSksdGhpcy5fJEFWLnB1c2goYyksbD1pWysrc119byE9PWw/LmluZGV4JiYobj10My5uZXh0Tm9kZSgpLG8rKyl9cmV0dXJuIHQzLmN1cnJlbnROb2RlPUs0LGF9cCh0KXtsZXQgcj0wO2ZvcihsZXQgaSBvZiB0aGlzLl8kQVYpaSE9PXZvaWQgMCYmKGkuc3RyaW5ncyE9PXZvaWQgMD8oaS5fJEFJKHQsaSxyKSxyKz1pLnN0cmluZ3MubGVuZ3RoLTIpOmkuXyRBSSh0W3JdKSkscisrfX0sZDU9Y2xhc3MgZXtnZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0/Ll8kQVU/P3RoaXMuXyRDdn1jb25zdHJ1Y3Rvcih0LHIsaSxhKXt0aGlzLnR5cGU9Mix0aGlzLl8kQUg9YjEsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUE9dCx0aGlzLl8kQUI9cix0aGlzLl8kQU09aSx0aGlzLm9wdGlvbnM9YSx0aGlzLl8kQ3Y9YT8uaXNDb25uZWN0ZWQ/PyEwfWdldCBwYXJlbnROb2RlKCl7bGV0IHQ9dGhpcy5fJEFBLnBhcmVudE5vZGUscj10aGlzLl8kQU07cmV0dXJuIHIhPT12b2lkIDAmJnQ/Lm5vZGVUeXBlPT09MTEmJih0PXIucGFyZW50Tm9kZSksdH1nZXQgc3RhcnROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQX1nZXQgZW5kTm9kZSgpe3JldHVybiB0aGlzLl8kQUJ9XyRBSSh0LHI9dGhpcyl7dD1yMyh0aGlzLHQsciksJGgodCk/dD09PWIxfHx0PT1udWxsfHx0PT09IiI/KHRoaXMuXyRBSCE9PWIxJiZ0aGlzLl8kQVIoKSx0aGlzLl8kQUg9YjEpOnQhPT10aGlzLl8kQUgmJnQhPT1vMSYmdGhpcy5fKHQpOnQuXyRsaXRUeXBlJCE9PXZvaWQgMD90aGlzLiQodCk6dC5ub2RlVHlwZSE9PXZvaWQgMD90aGlzLlQodCk6YXVlKHQpP3RoaXMuayh0KTp0aGlzLl8odCl9Tyh0KXtyZXR1cm4gdGhpcy5fJEFBLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fJEFCKX1UKHQpe3RoaXMuXyRBSCE9PXQmJih0aGlzLl8kQVIoKSx0aGlzLl8kQUg9dGhpcy5PKHQpKX1fKHQpe3RoaXMuXyRBSCE9PWIxJiYkaCh0aGlzLl8kQUgpP3RoaXMuXyRBQS5uZXh0U2libGluZy5kYXRhPXQ6dGhpcy5UKEs0LmNyZWF0ZVRleHROb2RlKHQpKSx0aGlzLl8kQUg9dH0kKHQpe2xldHt2YWx1ZXM6cixfJGxpdFR5cGUkOml9PXQsYT10eXBlb2YgaT09Im51bWJlciI/dGhpcy5fJEFDKHQpOihpLmVsPT09dm9pZCAwJiYoaS5lbD1QaC5jcmVhdGVFbGVtZW50KHV1ZShpLmgsaS5oWzBdKSx0aGlzLm9wdGlvbnMpKSxpKTtpZih0aGlzLl8kQUg/Ll8kQUQ9PT1hKXRoaXMuXyRBSC5wKHIpO2Vsc2V7bGV0IG49bmV3IG52KGEsdGhpcyksbz1uLnUodGhpcy5vcHRpb25zKTtuLnAociksdGhpcy5UKG8pLHRoaXMuXyRBSD1ufX1fJEFDKHQpe2xldCByPWR1ZS5nZXQodC5zdHJpbmdzKTtyZXR1cm4gcj09PXZvaWQgMCYmZHVlLnNldCh0LnN0cmluZ3Mscj1uZXcgUGgodCkpLHJ9ayh0KXtERih0aGlzLl8kQUgpfHwodGhpcy5fJEFIPVtdLHRoaXMuXyRBUigpKTtsZXQgcj10aGlzLl8kQUgsaSxhPTA7Zm9yKGxldCBuIG9mIHQpYT09PXIubGVuZ3RoP3IucHVzaChpPW5ldyBlKHRoaXMuTyhFaCgpKSx0aGlzLk8oRWgoKSksdGhpcyx0aGlzLm9wdGlvbnMpKTppPXJbYV0saS5fJEFJKG4pLGErKzthPHIubGVuZ3RoJiYodGhpcy5fJEFSKGkmJmkuXyRBQi5uZXh0U2libGluZyxhKSxyLmxlbmd0aD1hKX1fJEFSKHQ9dGhpcy5fJEFBLm5leHRTaWJsaW5nLHIpe2Zvcih0aGlzLl8kQVA/LighMSwhMCxyKTt0IT09dGhpcy5fJEFCOyl7bGV0IGk9cnVlKHQpLm5leHRTaWJsaW5nO3J1ZSh0KS5yZW1vdmUoKSx0PWl9fXNldENvbm5lY3RlZCh0KXt0aGlzLl8kQU09PT12b2lkIDAmJih0aGlzLl8kQ3Y9dCx0aGlzLl8kQVA/Lih0KSl9fSxpMz1jbGFzc3tnZXQgdGFnTmFtZSgpe3JldHVybiB0aGlzLmVsZW1lbnQudGFnTmFtZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1jb25zdHJ1Y3Rvcih0LHIsaSxhLG4pe3RoaXMudHlwZT0xLHRoaXMuXyRBSD1iMSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD10LHRoaXMubmFtZT1yLHRoaXMuXyRBTT1hLHRoaXMub3B0aW9ucz1uLGkubGVuZ3RoPjJ8fGlbMF0hPT0iInx8aVsxXSE9PSIiPyh0aGlzLl8kQUg9QXJyYXkoaS5sZW5ndGgtMSkuZmlsbChuZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9aSk6dGhpcy5fJEFIPWIxfV8kQUkodCxyPXRoaXMsaSxhKXtsZXQgbj10aGlzLnN0cmluZ3Msbz0hMTtpZihuPT09dm9pZCAwKXQ9cjModGhpcyx0LHIsMCksbz0hJGgodCl8fHQhPT10aGlzLl8kQUgmJnQhPT1vMSxvJiYodGhpcy5fJEFIPXQpO2Vsc2V7bGV0IHM9dCxsLGM7Zm9yKHQ9blswXSxsPTA7bDxuLmxlbmd0aC0xO2wrKyljPXIzKHRoaXMsc1tpK2xdLHIsbCksYz09PW8xJiYoYz10aGlzLl8kQUhbbF0pLG98fD0hJGgoYyl8fGMhPT10aGlzLl8kQUhbbF0sYz09PWIxP3Q9YjE6dCE9PWIxJiYodCs9KGM/PyIiKStuW2wrMV0pLHRoaXMuXyRBSFtsXT1jfW8mJiFhJiZ0aGlzLmoodCl9aih0KXt0PT09YjE/dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLHQ/PyIiKX19LG92PWNsYXNzIGV4dGVuZHMgaTN7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT0zfWoodCl7dGhpcy5lbGVtZW50W3RoaXMubmFtZV09dD09PWIxP3ZvaWQgMDp0fX0sc3Y9Y2xhc3MgZXh0ZW5kcyBpM3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTR9aih0KXt0aGlzLmVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKHRoaXMubmFtZSwhIXQmJnQhPT1iMSl9fSxsdj1jbGFzcyBleHRlbmRzIGkze2NvbnN0cnVjdG9yKHQscixpLGEsbil7c3VwZXIodCxyLGksYSxuKSx0aGlzLnR5cGU9NX1fJEFJKHQscj10aGlzKXtpZigodD1yMyh0aGlzLHQsciwwKT8/YjEpPT09bzEpcmV0dXJuO2xldCBpPXRoaXMuXyRBSCxhPXQ9PT1iMSYmaSE9PWIxfHx0LmNhcHR1cmUhPT1pLmNhcHR1cmV8fHQub25jZSE9PWkub25jZXx8dC5wYXNzaXZlIT09aS5wYXNzaXZlLG49dCE9PWIxJiYoaT09PWIxfHxhKTthJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxpKSxuJiZ0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyx0KSx0aGlzLl8kQUg9dH1oYW5kbGVFdmVudCh0KXt0eXBlb2YgdGhpcy5fJEFIPT0iZnVuY3Rpb24iP3RoaXMuXyRBSC5jYWxsKHRoaXMub3B0aW9ucz8uaG9zdD8/dGhpcy5lbGVtZW50LHQpOnRoaXMuXyRBSC5oYW5kbGVFdmVudCh0KX19LGN2PWNsYXNze2NvbnN0cnVjdG9yKHQscixpKXt0aGlzLmVsZW1lbnQ9dCx0aGlzLnR5cGU9Nix0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBTT1yLHRoaXMub3B0aW9ucz1pfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkodCl7cjModGhpcyx0KX19LE5GPXtNOkxGLFA6dWwsQTpBRixDOjEsTDpwdWUsUjpudixEOmF1ZSxWOnIzLEk6ZDUsSDppMyxOOnN2LFU6bHYsQjpvdixGOmN2fSxsOHI9X0YubGl0SHRtbFBvbHlmaWxsU3VwcG9ydDtsOHI/LihQaCxkNSksKF9GLmxpdEh0bWxWZXJzaW9ucz8/PVtdKS5wdXNoKCIzLjMuMiIpO05oPShlLHQscik9PntsZXQgaT1yPy5yZW5kZXJCZWZvcmU/P3QsYT1pLl8kbGl0UGFydCQ7aWYoYT09PXZvaWQgMCl7bGV0IG49cj8ucmVuZGVyQmVmb3JlPz9udWxsO2kuXyRsaXRQYXJ0JD1hPW5ldyBkNSh0Lmluc2VydEJlZm9yZShFaCgpLG4pLG4sdm9pZCAwLHI/P3t9KX1yZXR1cm4gYS5fJEFJKGUpLGF9fSk7dmFyIEZGLHBsLGM4cixkOHIsaHVlPXAoKCk9PntEaCgpO0RoKCk7UW8oKTtRbygpO0ZGPWdsb2JhbFRoaXMscGw9Y2xhc3MgZXh0ZW5kcyBWMntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW5kZXJPcHRpb25zPXtob3N0OnRoaXN9LHRoaXMuXyREbz12b2lkIDB9Y3JlYXRlUmVuZGVyUm9vdCgpe2xldCB0PXN1cGVyLmNyZWF0ZVJlbmRlclJvb3QoKTtyZXR1cm4gdGhpcy5yZW5kZXJPcHRpb25zLnJlbmRlckJlZm9yZT8/PXQuZmlyc3RDaGlsZCx0fXVwZGF0ZSh0KXtsZXQgcj10aGlzLnJlbmRlcigpO3RoaXMuaGFzVXBkYXRlZHx8KHRoaXMucmVuZGVyT3B0aW9ucy5pc0Nvbm5lY3RlZD10aGlzLmlzQ29ubmVjdGVkKSxzdXBlci51cGRhdGUodCksdGhpcy5fJERvPU5oKHIsdGhpcy5yZW5kZXJSb290LHRoaXMucmVuZGVyT3B0aW9ucyl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCEwKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fJERvPy5zZXRDb25uZWN0ZWQoITEpfXJlbmRlcigpe3JldHVybiBvMX19O3BsLl8kbGl0RWxlbWVudCQ9ITAscGwuZmluYWxpemVkPSEwLEZGLmxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydD8uKHtMaXRFbGVtZW50OnBsfSk7YzhyPUZGLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7YzhyPy4oe0xpdEVsZW1lbnQ6cGx9KTtkOHI9e18kQUs6KGUsdCxyKT0+e2UuXyRBSyh0LHIpfSxfJEFMOmU9PmUuXyRBTH07KEZGLmxpdEVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKCI0LjIuMiIpfSk7dmFyIHU4cixmdWU9cCgoKT0+e3U4cj0hMX0pO3ZhciBVMj1wKCgpPT57RGgoKTtRbygpO2h1ZSgpO2Z1ZSgpfSk7dmFyIHV2PWplKGR2PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShkdiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZHYudW5pPXZvaWQgMDt2YXIgcDhyPShlPSJ1bmkiKT0+YCR7ZX1fJHsieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csdD0+e2xldCByPU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4odD09PSJ4Ij9yOnImM3w4KS50b1N0cmluZygxNil9KX1gO2R2LnVuaT1wOHJ9KTt2YXIgcHYsQmMsaHY9cCgoKT0+e3B2PWNsYXNze2NsYWltKCl7aWYodGhpcy5jbGFpbWVkKXRocm93IG5ldyBFcnJvcigiRGVmZXJyZWQgYWxyZWFkeSBjbGFpbWVkIik7dGhpcy5jbGFpbWVkPSEwfWdldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLnN0b3BwZWRBdD90aGlzLnN0b3BwZWRBdC10aGlzLnN0YXJ0ZWRBdDpEYXRlLm5vdygpLXRoaXMuc3RhcnRlZEF0fWNvbnN0cnVjdG9yKCl7dGhpcy5jbGFpbWVkPSExLHRoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgodCxyKT0+e3RoaXMucmVzb2x2ZT1pPT57dGhpcy5zdGF0dXM9ImZ1bGZpbGxlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSx0KGkpfSx0aGlzLnJlamVjdD1pPT57dGhpcy5zdGF0dXM9InJlamVjdGVkIix0aGlzLnN0b3BwZWRBdD1EYXRlLm5vdygpLHIoaSl9LHRoaXMuc3RhcnRlZEF0PURhdGUubm93KCksdGhpcy5zdGF0dXM9InBlbmRpbmcifSl9fSxCYz0oKT0+bmV3IHB2fSk7dmFyIGZ2LGg4cixtdWU9cCgoKT0+e2h2KCk7ZnY9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXM9W10sdGhpcy5kZWZlcnJlZD1CYygpLHRoaXMucHJvbWlzZT10aGlzLmRlZmVycmVkLnByb21pc2Usc2V0VGltZW91dChhc3luYygpPT57Zm9yKDt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMubGVuZ3RoPjA7KWF3YWl0IHRoaXMuYWNjdW11bGF0ZWRQcm9taXNlcy5zaGlmdCgpO3RoaXMuZGVmZXJyZWQucmVzb2x2ZSgpfSwwKX1zdWJEZWZlcigpe2xldCB0PUJjKCk7cmV0dXJuIHRoaXMuYWRkUHJvbWlzZSh0LnByb21pc2UpLHR9YWRkUHJvbWlzZSh0KXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMucHVzaCh0KX19LGg4cj0oKT0+bmV3IGZ2fSk7dmFyIEtlPXt9O0ZlKEtlLHtDdW11bGF0aXZlRGVmZXJyZWQ6KCk9PmZ2LERlZmVycmVkOigpPT5wdixjdW11bGF0aXZlRGVmZXI6KCk9Pmg4cixkZWZlcjooKT0+QmMsZnJvbUNhbGxiYWNrOigpPT54OHIsZ2V0Rmlyc3RUcnVlT3JGYWxzZTooKT0+djhyLG1hcDooKT0+ZzhyLHJlamVjdGVkUHJvbWlzZTooKT0+bThyLHJlc29sdmVkUHJvbWlzZTooKT0+ZjhyLHRpbWVvdXRBbmRDb250aW51ZTooKT0+YjhyLHRpbWVvdXRXcmFwOigpPT5ndWV9KTt2YXIgZjhyLG04cixnOHIsZ3VlLGI4cix2OHIseDhyLHNhPXAoKCk9PntodigpO211ZSgpO2h2KCk7ZjhyPWU9PlByb21pc2UucmVzb2x2ZShlKSxtOHI9ZT0+UHJvbWlzZS5yZWplY3QoZSksZzhyPWFzeW5jKGUsdCk9PntsZXQgcj1bXSxpPVtdO2ZvcihsZXQgYSBvZiBlKXtsZXQgbj10KGEpO3IucHVzaChuKSxuLnRoZW4obz0+e2kucHVzaChvKX0pfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChyKSxpfSxndWU9YXN5bmMoZSx0LHI9ITApPT5uZXcgUHJvbWlzZSgoaSxhKT0+e3NldFRpbWVvdXQoKCk9PntyP2EobmV3IEVycm9yKCJ0aW1lb3V0IikpOmkobnVsbCl9LHQpLGUudGhlbihpLGEpfSksYjhyPWFzeW5jKGUsdD02ZTQpPT5ndWUoZSx0LCExKSx2OHI9YXN5bmMgZT0+e2xldCB0PUJjKCk7Zm9yKGxldCByIG9mIGUpci50aGVuKGk9PntpPT09ITAmJnQucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwoZSkudGhlbigoKT0+e3QucmVzb2x2ZSghMSl9KSx0LnByb21pc2V9LHg4cj1lPT5uZXcgUHJvbWlzZSgodCxyKT0+e2UoKGksYSk9PntpP3IoaSk6dChhKX0pfSl9KTt2YXIgbXY9cCgoKT0+e3NhKCl9KTtmdW5jdGlvbiBHdChlLHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iJiZ0IT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKHQpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO09GKGUsdCk7ZnVuY3Rpb24gcigpe3RoaXMuY29uc3RydWN0b3I9ZX1lLnByb3RvdHlwZT10PT09bnVsbD9PYmplY3QuY3JlYXRlKHQpOihyLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgcil9ZnVuY3Rpb24gdzhyKGUsdCl7dmFyIHI9e307Zm9yKHZhciBpIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJnQuaW5kZXhPZihpKTwwJiYocltpXT1lW2ldKTtpZihlIT1udWxsJiZ0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz09ImZ1bmN0aW9uIilmb3IodmFyIGE9MCxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7YTxpLmxlbmd0aDthKyspdC5pbmRleE9mKGlbYV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLGlbYV0pJiYocltpW2FdXT1lW2lbYV1dKTtyZXR1cm4gcn1mdW5jdGlvbiBNOHIoZSx0LHIsaSl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aCxuPWE8Mz90Omk9PT1udWxsP2k9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOmksbztpZih0eXBlb2YgUmVmbGVjdD09Im9iamVjdCImJnR5cGVvZiBSZWZsZWN0LmRlY29yYXRlPT0iZnVuY3Rpb24iKW49UmVmbGVjdC5kZWNvcmF0ZShlLHQscixpKTtlbHNlIGZvcih2YXIgcz1lLmxlbmd0aC0xO3M+PTA7cy0tKShvPWVbc10pJiYobj0oYTwzP28obik6YT4zP28odCxyLG4pOm8odCxyKSl8fG4pO3JldHVybiBhPjMmJm4mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIsbiksbn1mdW5jdGlvbiBrOHIoZSx0KXtyZXR1cm4gZnVuY3Rpb24ocixpKXt0KHIsaSxlKX19ZnVuY3Rpb24gUzhyKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH1mdW5jdGlvbiB6OHIoZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9ZnVuY3Rpb24gQzhyKGUpe3JldHVybiB0eXBlb2YgZT09InN5bWJvbCI/ZToiIi5jb25jYXQoZSl9ZnVuY3Rpb24gVDhyKGUsdCxyKXtyZXR1cm4gdHlwZW9mIHQ9PSJzeW1ib2wiJiYodD10LmRlc2NyaXB0aW9uPyJbIi5jb25jYXQodC5kZXNjcmlwdGlvbiwiXSIpOiIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibmFtZSIse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyPyIiLmNvbmNhdChyLCIgIix0KTp0fSl9ZnVuY3Rpb24gXzhyKGUsdCl7aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YT09ImZ1bmN0aW9uIilyZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShlLHQpfWZ1bmN0aW9uIHFGKGUsdCxyLGkpe2Z1bmN0aW9uIGEobil7cmV0dXJuIG4gaW5zdGFuY2VvZiByP246bmV3IHIoZnVuY3Rpb24obyl7byhuKX0pfXJldHVybiBuZXcocnx8KHI9UHJvbWlzZSkpKGZ1bmN0aW9uKG4sbyl7ZnVuY3Rpb24gcyh1KXt0cnl7YyhpLm5leHQodSkpfWNhdGNoKGQpe28oZCl9fWZ1bmN0aW9uIGwodSl7dHJ5e2MoaS50aHJvdyh1KSl9Y2F0Y2goZCl7byhkKX19ZnVuY3Rpb24gYyh1KXt1LmRvbmU/bih1LnZhbHVlKTphKHUudmFsdWUpLnRoZW4ocyxsKX1jKChpPWkuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KX1mdW5jdGlvbiBGaChlLHQpe3ZhciByPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihuWzBdJjEpdGhyb3cgblsxXTtyZXR1cm4gblsxXX0sdHJ5czpbXSxvcHM6W119LGksYSxuLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PXMoMCksby50aHJvdz1zKDEpLG8ucmV0dXJuPXMoMiksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKGMpe3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gbChbYyx1XSl9fWZ1bmN0aW9uIGwoYyl7aWYoaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvJiYobz0wLGNbMF0mJihyPTApKSxyOyl0cnl7aWYoaT0xLGEmJihuPWNbMF0mMj9hLnJldHVybjpjWzBdP2EudGhyb3d8fCgobj1hLnJldHVybikmJm4uY2FsbChhKSwwKTphLm5leHQpJiYhKG49bi5jYWxsKGEsY1sxXSkpLmRvbmUpcmV0dXJuIG47c3dpdGNoKGE9MCxuJiYoYz1bY1swXSYyLG4udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm49YzticmVhaztjYXNlIDQ6cmV0dXJuIHIubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6ci5sYWJlbCsrLGE9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1yLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZihuPXIudHJ5cywhKG49bi5sZW5ndGg+MCYmbltuLmxlbmd0aC0xXSkmJihjWzBdPT09Nnx8Y1swXT09PTIpKXtyPTA7Y29udGludWV9aWYoY1swXT09PTMmJighbnx8Y1sxXT5uWzBdJiZjWzFdPG5bM10pKXtyLmxhYmVsPWNbMV07YnJlYWt9aWYoY1swXT09PTYmJnIubGFiZWw8blsxXSl7ci5sYWJlbD1uWzFdLG49YzticmVha31pZihuJiZyLmxhYmVsPG5bMl0pe3IubGFiZWw9blsyXSxyLm9wcy5wdXNoKGMpO2JyZWFrfW5bMl0mJnIub3BzLnBvcCgpLHIudHJ5cy5wb3AoKTtjb250aW51ZX1jPXQuY2FsbChlLHIpfWNhdGNoKHUpe2M9WzYsdV0sYT0wfWZpbmFsbHl7aT1uPTB9aWYoY1swXSY1KXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fWZ1bmN0aW9uIEw4cihlLHQpe2Zvcih2YXIgciBpbiBlKXIhPT0iZGVmYXVsdCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmQkYodCxlLHIpfWZ1bmN0aW9uIGxhKGUpe3ZhciB0PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5pdGVyYXRvcixyPXQmJmVbdF0saT0wO2lmKHIpcmV0dXJuIHIuY2FsbChlKTtpZihlJiZ0eXBlb2YgZS5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGUmJmk+PWUubGVuZ3RoJiYoZT12b2lkIDApLHt2YWx1ZTplJiZlW2krK10sZG9uZTohZX19fTt0aHJvdyBuZXcgVHlwZUVycm9yKHQ/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfWZ1bmN0aW9uIFgxKGUsdCl7dmFyIHI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmZVtTeW1ib2wuaXRlcmF0b3JdO2lmKCFyKXJldHVybiBlO3ZhciBpPXIuY2FsbChlKSxhLG49W10sbzt0cnl7Zm9yKDsodD09PXZvaWQgMHx8dC0tID4wKSYmIShhPWkubmV4dCgpKS5kb25lOyluLnB1c2goYS52YWx1ZSl9Y2F0Y2gocyl7bz17ZXJyb3I6c319ZmluYWxseXt0cnl7YSYmIWEuZG9uZSYmKHI9aS5yZXR1cm4pJiZyLmNhbGwoaSl9ZmluYWxseXtpZihvKXRocm93IG8uZXJyb3J9fXJldHVybiBufWZ1bmN0aW9uIEE4cigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllPWUuY29uY2F0KFgxKGFyZ3VtZW50c1t0XSkpO3JldHVybiBlfWZ1bmN0aW9uIEQ4cigpe2Zvcih2YXIgZT0wLHQ9MCxyPWFyZ3VtZW50cy5sZW5ndGg7dDxyO3QrKyllKz1hcmd1bWVudHNbdF0ubGVuZ3RoO2Zvcih2YXIgaT1BcnJheShlKSxhPTAsdD0wO3Q8cjt0KyspZm9yKHZhciBuPWFyZ3VtZW50c1t0XSxvPTAscz1uLmxlbmd0aDtvPHM7bysrLGErKylpW2FdPW5bb107cmV0dXJuIGl9ZnVuY3Rpb24gcWkoZSx0LHIpe2lmKHJ8fGFyZ3VtZW50cy5sZW5ndGg9PT0yKWZvcih2YXIgaT0wLGE9dC5sZW5ndGgsbjtpPGE7aSsrKShufHwhKGkgaW4gdCkpJiYobnx8KG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLGkpKSxuW2ldPXRbaV0pO3JldHVybiBlLmNvbmNhdChufHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSl9ZnVuY3Rpb24gaGwoZSl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBobD8odGhpcy52PWUsdGhpcyk6bmV3IGhsKGUpfWZ1bmN0aW9uIGpGKGUsdCxyKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIGk9ci5hcHBseShlLHR8fFtdKSxhLG49W107cmV0dXJuIGE9T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3I9PSJmdW5jdGlvbiI/QXN5bmNJdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSkscygibmV4dCIpLHMoInRocm93IikscygicmV0dXJuIixvKSxhW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxhO2Z1bmN0aW9uIG8oZil7cmV0dXJuIGZ1bmN0aW9uKHgpe3JldHVybiBQcm9taXNlLnJlc29sdmUoeCkudGhlbihmLGQpfX1mdW5jdGlvbiBzKGYseCl7aVtmXSYmKGFbZl09ZnVuY3Rpb24odil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGIseSl7bi5wdXNoKFtmLHYsYix5XSk+MXx8bChmLHYpfSl9LHgmJihhW2ZdPXgoYVtmXSkpKX1mdW5jdGlvbiBsKGYseCl7dHJ5e2MoaVtmXSh4KSl9Y2F0Y2godil7aChuWzBdWzNdLHYpfX1mdW5jdGlvbiBjKGYpe2YudmFsdWUgaW5zdGFuY2VvZiBobD9Qcm9taXNlLnJlc29sdmUoZi52YWx1ZS52KS50aGVuKHUsZCk6aChuWzBdWzJdLGYpfWZ1bmN0aW9uIHUoZil7bCgibmV4dCIsZil9ZnVuY3Rpb24gZChmKXtsKCJ0aHJvdyIsZil9ZnVuY3Rpb24gaChmLHgpe2YoeCksbi5zaGlmdCgpLG4ubGVuZ3RoJiZsKG5bMF1bMF0sblswXVsxXSl9fWZ1bmN0aW9uIEU4cihlKXt2YXIgdCxyO3JldHVybiB0PXt9LGkoIm5leHQiKSxpKCJ0aHJvdyIsZnVuY3Rpb24oYSl7dGhyb3cgYX0pLGkoInJldHVybiIpLHRbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0O2Z1bmN0aW9uIGkoYSxuKXt0W2FdPWVbYV0/ZnVuY3Rpb24obyl7cmV0dXJuKHI9IXIpP3t2YWx1ZTpobChlW2FdKG8pKSxkb25lOiExfTpuP24obyk6b306bn19ZnVuY3Rpb24gVkYoZSl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciB0PWVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdLHI7cmV0dXJuIHQ/dC5jYWxsKGUpOihlPXR5cGVvZiBsYT09ImZ1bmN0aW9uIj9sYShlKTplW1N5bWJvbC5pdGVyYXRvcl0oKSxyPXt9LGkoIm5leHQiKSxpKCJ0aHJvdyIpLGkoInJldHVybiIpLHJbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHIpO2Z1bmN0aW9uIGkobil7cltuXT1lW25dJiZmdW5jdGlvbihvKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocyxsKXtvPWVbbl0obyksYShzLGwsby5kb25lLG8udmFsdWUpfSl9fWZ1bmN0aW9uIGEobixvLHMsbCl7UHJvbWlzZS5yZXNvbHZlKGwpLnRoZW4oZnVuY3Rpb24oYyl7bih7dmFsdWU6Yyxkb25lOnN9KX0sbyl9fWZ1bmN0aW9uICQ4cihlLHQpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJhdyIse3ZhbHVlOnR9KTplLnJhdz10LGV9ZnVuY3Rpb24gUDhyKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihlIT1udWxsKWZvcih2YXIgcj1IRihlKSxpPTA7aTxyLmxlbmd0aDtpKyspcltpXSE9PSJkZWZhdWx0IiYmQkYodCxlLHJbaV0pO3JldHVybiBJOHIodCxlKSx0fWZ1bmN0aW9uIE44cihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gRjhyKGUsdCxyLGkpe2lmKHI9PT0iYSImJiFpKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iP2UhPT10fHwhaTohdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIHI9PT0ibSI/aTpyPT09ImEiP2kuY2FsbChlKTppP2kudmFsdWU6dC5nZXQoZSl9ZnVuY3Rpb24gTzhyKGUsdCxyLGksYSl7aWYoaT09PSJtIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZihpPT09ImEiJiYhYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIj9lIT09dHx8IWE6IXQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIGk9PT0iYSI/YS5jYWxsKGUscik6YT9hLnZhbHVlPXI6dC5zZXQoZSxyKSxyfWZ1bmN0aW9uIFI4cihlLHQpe2lmKHQ9PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCImJnR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7cmV0dXJuIHR5cGVvZiBlPT0iZnVuY3Rpb24iP3Q9PT1lOmUuaGFzKHQpfWZ1bmN0aW9uIEI4cihlLHQscil7aWYodCE9bnVsbCl7aWYodHlwZW9mIHQhPSJvYmplY3QiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQuIik7dmFyIGksYTtpZihyKXtpZighU3ltYm9sLmFzeW5jRGlzcG9zZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2k9dFtTeW1ib2wuYXN5bmNEaXNwb3NlXX1pZihpPT09dm9pZCAwKXtpZighU3ltYm9sLmRpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmRpc3Bvc2UgaXMgbm90IGRlZmluZWQuIik7aT10W1N5bWJvbC5kaXNwb3NlXSxyJiYoYT1pKX1pZih0eXBlb2YgaSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuIik7YSYmKGk9ZnVuY3Rpb24oKXt0cnl7YS5jYWxsKHRoaXMpfWNhdGNoKG4pe3JldHVybiBQcm9taXNlLnJlamVjdChuKX19KSxlLnN0YWNrLnB1c2goe3ZhbHVlOnQsZGlzcG9zZTppLGFzeW5jOnJ9KX1lbHNlIHImJmUuc3RhY2sucHVzaCh7YXN5bmM6ITB9KTtyZXR1cm4gdH1mdW5jdGlvbiBxOHIoZSl7ZnVuY3Rpb24gdChuKXtlLmVycm9yPWUuaGFzRXJyb3I/bmV3IEg4cihuLGUuZXJyb3IsIkFuIGVycm9yIHdhcyBzdXBwcmVzc2VkIGR1cmluZyBkaXNwb3NhbC4iKTpuLGUuaGFzRXJyb3I9ITB9dmFyIHIsaT0wO2Z1bmN0aW9uIGEoKXtmb3IoO3I9ZS5zdGFjay5wb3AoKTspdHJ5e2lmKCFyLmFzeW5jJiZpPT09MSlyZXR1cm4gaT0wLGUuc3RhY2sucHVzaChyKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKGEpO2lmKHIuZGlzcG9zZSl7dmFyIG49ci5kaXNwb3NlLmNhbGwoci52YWx1ZSk7aWYoci5hc3luYylyZXR1cm4gaXw9MixQcm9taXNlLnJlc29sdmUobikudGhlbihhLGZ1bmN0aW9uKG8pe3JldHVybiB0KG8pLGEoKX0pfWVsc2UgaXw9MX1jYXRjaChvKXt0KG8pfWlmKGk9PT0xKXJldHVybiBlLmhhc0Vycm9yP1Byb21pc2UucmVqZWN0KGUuZXJyb3IpOlByb21pc2UucmVzb2x2ZSgpO2lmKGUuaGFzRXJyb3IpdGhyb3cgZS5lcnJvcn1yZXR1cm4gYSgpfWZ1bmN0aW9uIGo4cihlLHQpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyImJi9eXC5cLj9cLy8udGVzdChlKT9lLnJlcGxhY2UoL1wuKHRzeCkkfCgoPzpcLmQpPykoKD86XC5bXi4vXSs/KT8pXC4oW2NtXT8pdHMkL2ksZnVuY3Rpb24ocixpLGEsbixvKXtyZXR1cm4gaT90PyIuanN4IjoiLmpzIjphJiYoIW58fCFvKT9yOmErbisiLiIrby50b0xvd2VyQ2FzZSgpKyJqcyJ9KTplfXZhciBPRixSRixCRixJOHIsSEYsSDhyLFNRcixPcj1wKCgpPT57T0Y9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gT0Y9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBhIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksYSkmJihyW2FdPWlbYV0pfSxPRihlLHQpfTtSRj1mdW5jdGlvbigpe3JldHVybiBSRj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIHIsaT0xLGE9YXJndW1lbnRzLmxlbmd0aDtpPGE7aSsrKXtyPWFyZ3VtZW50c1tpXTtmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmKHRbbl09cltuXSl9cmV0dXJuIHR9LFJGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07QkY9T2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LHIsaSl7aT09PXZvaWQgMCYmKGk9cik7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOyghYXx8KCJnZXQiaW4gYT8hdC5fX2VzTW9kdWxlOmEud3JpdGFibGV8fGEuY29uZmlndXJhYmxlKSkmJihhPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGksYSl9KTooZnVuY3Rpb24oZSx0LHIsaSl7aT09PXZvaWQgMCYmKGk9ciksZVtpXT10W3JdfSk7SThyPU9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX0pOmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9LEhGPWZ1bmN0aW9uKGUpe3JldHVybiBIRj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24odCl7dmFyIHI9W107Zm9yKHZhciBpIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihyW3IubGVuZ3RoXT1pKTtyZXR1cm4gcn0sSEYoZSl9O0g4cj10eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iP1N1cHByZXNzZWRFcnJvcjpmdW5jdGlvbihlLHQscil7dmFyIGk9bmV3IEVycm9yKHIpO3JldHVybiBpLm5hbWU9IlN1cHByZXNzZWRFcnJvciIsaS5lcnJvcj1lLGkuc3VwcHJlc3NlZD10LGl9O1NRcj17X19leHRlbmRzOkd0LF9fYXNzaWduOlJGLF9fcmVzdDp3OHIsX19kZWNvcmF0ZTpNOHIsX19wYXJhbTprOHIsX19lc0RlY29yYXRlOlM4cixfX3J1bkluaXRpYWxpemVyczp6OHIsX19wcm9wS2V5OkM4cixfX3NldEZ1bmN0aW9uTmFtZTpUOHIsX19tZXRhZGF0YTpfOHIsX19hd2FpdGVyOnFGLF9fZ2VuZXJhdG9yOkZoLF9fY3JlYXRlQmluZGluZzpCRixfX2V4cG9ydFN0YXI6TDhyLF9fdmFsdWVzOmxhLF9fcmVhZDpYMSxfX3NwcmVhZDpBOHIsX19zcHJlYWRBcnJheXM6RDhyLF9fc3ByZWFkQXJyYXk6cWksX19hd2FpdDpobCxfX2FzeW5jR2VuZXJhdG9yOmpGLF9fYXN5bmNEZWxlZ2F0b3I6RThyLF9fYXN5bmNWYWx1ZXM6VkYsX19tYWtlVGVtcGxhdGVPYmplY3Q6JDhyLF9faW1wb3J0U3RhcjpQOHIsX19pbXBvcnREZWZhdWx0Ok44cixfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0OkY4cixfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0Ok84cixfX2NsYXNzUHJpdmF0ZUZpZWxkSW46UjhyLF9fYWRkRGlzcG9zYWJsZVJlc291cmNlOkI4cixfX2Rpc3Bvc2VSZXNvdXJjZXM6cThyLF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uOmo4cn19KTtmdW5jdGlvbiBUdChlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiJ9dmFyIENpPXAoKCk9Pnt9KTtmdW5jdGlvbiBwbihlKXt2YXIgdD1mdW5jdGlvbihpKXtFcnJvci5jYWxsKGkpLGkuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2t9LHI9ZSh0KTtyZXR1cm4gci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIscn12YXIgSGM9cCgoKT0+e30pO3ZhciBPaCxVRj1wKCgpPT57SGMoKTtPaD1wbihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocil7ZSh0aGlzKSx0aGlzLm1lc3NhZ2U9cj9yLmxlbmd0aCtgIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246CmArci5tYXAoZnVuY3Rpb24oaSxhKXtyZXR1cm4gYSsxKyIpICIraS50b1N0cmluZygpfSkuam9pbihgCiAgYCk6IiIsdGhpcy5uYW1lPSJVbnN1YnNjcmlwdGlvbkVycm9yIix0aGlzLmVycm9ycz1yfX0pfSk7ZnVuY3Rpb24gSm8oZSx0KXtpZihlKXt2YXIgcj1lLmluZGV4T2YodCk7MDw9ciYmZS5zcGxpY2UociwxKX19dmFyIHU1PXAoKCk9Pnt9KTtmdW5jdGlvbiBndihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIE8xfHxlJiYiY2xvc2VkImluIGUmJlR0KGUucmVtb3ZlKSYmVHQoZS5hZGQpJiZUdChlLnVuc3Vic2NyaWJlKX1mdW5jdGlvbiBidWUoZSl7VHQoZSk/ZSgpOmUudW5zdWJzY3JpYmUoKX12YXIgTzEsV0YsVzI9cCgoKT0+e09yKCk7Q2koKTtVRigpO3U1KCk7TzE9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0aGlzLmluaXRpYWxUZWFyZG93bj10LHRoaXMuY2xvc2VkPSExLHRoaXMuX3BhcmVudGFnZT1udWxsLHRoaXMuX2ZpbmFsaXplcnM9bnVsbH1yZXR1cm4gZS5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt2YXIgdCxyLGksYSxuO2lmKCF0aGlzLmNsb3NlZCl7dGhpcy5jbG9zZWQ9ITA7dmFyIG89dGhpcy5fcGFyZW50YWdlO2lmKG8paWYodGhpcy5fcGFyZW50YWdlPW51bGwsQXJyYXkuaXNBcnJheShvKSl0cnl7Zm9yKHZhciBzPWxhKG8pLGw9cy5uZXh0KCk7IWwuZG9uZTtsPXMubmV4dCgpKXt2YXIgYz1sLnZhbHVlO2MucmVtb3ZlKHRoaXMpfX1jYXRjaCh2KXt0PXtlcnJvcjp2fX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYocj1zLnJldHVybikmJnIuY2FsbChzKX1maW5hbGx5e2lmKHQpdGhyb3cgdC5lcnJvcn19ZWxzZSBvLnJlbW92ZSh0aGlzKTt2YXIgdT10aGlzLmluaXRpYWxUZWFyZG93bjtpZihUdCh1KSl0cnl7dSgpfWNhdGNoKHYpe249diBpbnN0YW5jZW9mIE9oP3YuZXJyb3JzOlt2XX12YXIgZD10aGlzLl9maW5hbGl6ZXJzO2lmKGQpe3RoaXMuX2ZpbmFsaXplcnM9bnVsbDt0cnl7Zm9yKHZhciBoPWxhKGQpLGY9aC5uZXh0KCk7IWYuZG9uZTtmPWgubmV4dCgpKXt2YXIgeD1mLnZhbHVlO3RyeXtidWUoeCl9Y2F0Y2godil7bj1uPz9bXSx2IGluc3RhbmNlb2YgT2g/bj1xaShxaShbXSxYMShuKSksWDEodi5lcnJvcnMpKTpuLnB1c2godil9fX1jYXRjaCh2KXtpPXtlcnJvcjp2fX1maW5hbGx5e3RyeXtmJiYhZi5kb25lJiYoYT1oLnJldHVybikmJmEuY2FsbChoKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19fWlmKG4pdGhyb3cgbmV3IE9oKG4pfX0sZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQpe3ZhciByO2lmKHQmJnQhPT10aGlzKWlmKHRoaXMuY2xvc2VkKWJ1ZSh0KTtlbHNle2lmKHQgaW5zdGFuY2VvZiBlKXtpZih0LmNsb3NlZHx8dC5faGFzUGFyZW50KHRoaXMpKXJldHVybjt0Ll9hZGRQYXJlbnQodGhpcyl9KHRoaXMuX2ZpbmFsaXplcnM9KHI9dGhpcy5fZmluYWxpemVycykhPT1udWxsJiZyIT09dm9pZCAwP3I6W10pLnB1c2godCl9fSxlLnByb3RvdHlwZS5faGFzUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX3BhcmVudGFnZTtyZXR1cm4gcj09PXR8fEFycmF5LmlzQXJyYXkocikmJnIuaW5jbHVkZXModCl9LGUucHJvdG90eXBlLl9hZGRQYXJlbnQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fcGFyZW50YWdlO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KHIpPyhyLnB1c2godCkscik6cj9bcix0XTp0fSxlLnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX3BhcmVudGFnZTtyPT09dD90aGlzLl9wYXJlbnRhZ2U9bnVsbDpBcnJheS5pc0FycmF5KHIpJiZKbyhyLHQpfSxlLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fZmluYWxpemVycztyJiZKbyhyLHQpLHQgaW5zdGFuY2VvZiBlJiZ0Ll9yZW1vdmVQYXJlbnQodGhpcyl9LGUuRU1QVFk9KGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGU7cmV0dXJuIHQuY2xvc2VkPSEwLHR9KSgpLGV9KSgpLFdGPU8xLkVNUFRZfSk7dmFyIGFvLHA1PXAoKCk9Pnthbz17b25VbmhhbmRsZWRFcnJvcjpudWxsLG9uU3RvcHBlZE5vdGlmaWNhdGlvbjpudWxsLFByb21pc2U6dm9pZCAwLHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6ITEsdXNlRGVwcmVjYXRlZE5leHRDb250ZXh0OiExfX0pO3ZhciBoNSxHRj1wKCgpPT57T3IoKTtoNT17c2V0VGltZW91dDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktMl09YXJndW1lbnRzW2ldO3ZhciBhPWg1LmRlbGVnYXRlO3JldHVybiBhPy5zZXRUaW1lb3V0P2Euc2V0VGltZW91dC5hcHBseShhLHFpKFtlLHRdLFgxKHIpKSk6c2V0VGltZW91dC5hcHBseSh2b2lkIDAscWkoW2UsdF0sWDEocikpKX0sY2xlYXJUaW1lb3V0OmZ1bmN0aW9uKGUpe3ZhciB0PWg1LmRlbGVnYXRlO3JldHVybih0Py5jbGVhclRpbWVvdXR8fGNsZWFyVGltZW91dCkoZSl9LGRlbGVnYXRlOnZvaWQgMH19KTtmdW5jdGlvbiBidihlKXtoNS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9YW8ub25VbmhhbmRsZWRFcnJvcjtpZih0KXQoZSk7ZWxzZSB0aHJvdyBlfSl9dmFyIFlGPXAoKCk9PntwNSgpO0dGKCl9KTtmdW5jdGlvbiBubygpe312YXIgYTM9cCgoKT0+e30pO2Z1bmN0aW9uIHh1ZShlKXtyZXR1cm4gWkYoIkUiLHZvaWQgMCxlKX1mdW5jdGlvbiB5dWUoZSl7cmV0dXJuIFpGKCJOIixlLHZvaWQgMCl9ZnVuY3Rpb24gWkYoZSx0LHIpe3JldHVybntraW5kOmUsdmFsdWU6dCxlcnJvcjpyfX12YXIgdnVlLHd1ZT1wKCgpPT57dnVlPShmdW5jdGlvbigpe3JldHVybiBaRigiQyIsdm9pZCAwLHZvaWQgMCl9KSgpfSk7ZnVuY3Rpb24gZjUoZSl7aWYoYW8udXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyl7dmFyIHQ9IW4zO2lmKHQmJihuMz17ZXJyb3JUaHJvd246ITEsZXJyb3I6bnVsbH0pLGUoKSx0KXt2YXIgcj1uMyxpPXIuZXJyb3JUaHJvd24sYT1yLmVycm9yO2lmKG4zPW51bGwsaSl0aHJvdyBhfX1lbHNlIGUoKX1mdW5jdGlvbiBNdWUoZSl7YW8udXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmbjMmJihuMy5lcnJvclRocm93bj0hMCxuMy5lcnJvcj1lKX12YXIgbjMsdnY9cCgoKT0+e3A1KCk7bjM9bnVsbH0pO2Z1bmN0aW9uIFhGKGUsdCl7cmV0dXJuIFY4ci5jYWxsKGUsdCl9ZnVuY3Rpb24geHYoZSl7YW8udXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZz9NdWUoZSk6YnYoZSl9ZnVuY3Rpb24gVzhyKGUpe3Rocm93IGV9ZnVuY3Rpb24gUUYoZSx0KXt2YXIgcj1hby5vblN0b3BwZWROb3RpZmljYXRpb247ciYmaDUuc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiByKGUsdCl9KX12YXIgbzMsVjhyLFU4cixSaCxHOHIseXY9cCgoKT0+e09yKCk7Q2koKTtXMigpO3A1KCk7WUYoKTthMygpO3d1ZSgpO0dGKCk7dnYoKTtvMz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KHIpe3ZhciBpPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gaS5pc1N0b3BwZWQ9ITEscj8oaS5kZXN0aW5hdGlvbj1yLGd2KHIpJiZyLmFkZChpKSk6aS5kZXN0aW5hdGlvbj1HOHIsaX1yZXR1cm4gdC5jcmVhdGU9ZnVuY3Rpb24ocixpLGEpe3JldHVybiBuZXcgUmgocixpLGEpfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3RoaXMuaXNTdG9wcGVkP1FGKHl1ZShyKSx0aGlzKTp0aGlzLl9uZXh0KHIpfSx0LnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZD9RRih4dWUociksdGhpcyk6KHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuX2Vycm9yKHIpKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZD9RRih2dWUsdGhpcyk6KHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuX2NvbXBsZXRlKCkpfSx0LnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuY2xvc2VkfHwodGhpcy5pc1N0b3BwZWQ9ITAsZS5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKSx0aGlzLmRlc3RpbmF0aW9uPW51bGwpfSx0LnByb3RvdHlwZS5fbmV4dD1mdW5jdGlvbihyKXt0aGlzLmRlc3RpbmF0aW9uLm5leHQocil9LHQucHJvdG90eXBlLl9lcnJvcj1mdW5jdGlvbihyKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcihyKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19LHQucHJvdG90eXBlLl9jb21wbGV0ZT1mdW5jdGlvbigpe3RyeXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSx0fSkoTzEpLFY4cj1GdW5jdGlvbi5wcm90b3R5cGUuYmluZDtVOHI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0aGlzLnBhcnRpYWxPYnNlcnZlcj10fXJldHVybiBlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMucGFydGlhbE9ic2VydmVyO2lmKHIubmV4dCl0cnl7ci5uZXh0KHQpfWNhdGNoKGkpe3h2KGkpfX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI7aWYoci5lcnJvcil0cnl7ci5lcnJvcih0KX1jYXRjaChpKXt4dihpKX1lbHNlIHh2KHQpfSxlLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMucGFydGlhbE9ic2VydmVyO2lmKHQuY29tcGxldGUpdHJ5e3QuY29tcGxldGUoKX1jYXRjaChyKXt4dihyKX19LGV9KSgpLFJoPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpLGEpe3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcyxvO2lmKFR0KHIpfHwhcilvPXtuZXh0OnI/P3ZvaWQgMCxlcnJvcjppPz92b2lkIDAsY29tcGxldGU6YT8/dm9pZCAwfTtlbHNle3ZhciBzO24mJmFvLnVzZURlcHJlY2F0ZWROZXh0Q29udGV4dD8ocz1PYmplY3QuY3JlYXRlKHIpLHMudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXtyZXR1cm4gbi51bnN1YnNjcmliZSgpfSxvPXtuZXh0OnIubmV4dCYmWEYoci5uZXh0LHMpLGVycm9yOnIuZXJyb3ImJlhGKHIuZXJyb3IscyksY29tcGxldGU6ci5jb21wbGV0ZSYmWEYoci5jb21wbGV0ZSxzKX0pOm89cn1yZXR1cm4gbi5kZXN0aW5hdGlvbj1uZXcgVThyKG8pLG59cmV0dXJuIHR9KShvMyk7RzhyPXtjbG9zZWQ6ITAsbmV4dDpubyxlcnJvcjpXOHIsY29tcGxldGU6bm99fSk7dmFyIHMzLEJoPXAoKCk9PntzMz0oZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm9ic2VydmFibGV8fCJAQG9ic2VydmFibGUifSkoKX0pO2Z1bmN0aW9uIEhoKGUpe3JldHVybiBlfXZhciB3dj1wKCgpPT57fSk7ZnVuY3Rpb24gWThyKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBKRihlKX1mdW5jdGlvbiBKRihlKXtyZXR1cm4gZS5sZW5ndGg9PT0wP0hoOmUubGVuZ3RoPT09MT9lWzBdOmZ1bmN0aW9uKHIpe3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihpLGEpe3JldHVybiBhKGkpfSxyKX19dmFyIEtGPXAoKCk9Pnt3digpfSk7ZnVuY3Rpb24ga3VlKGUpe3ZhciB0O3JldHVybih0PWU/P2FvLlByb21pc2UpIT09bnVsbCYmdCE9PXZvaWQgMD90OlByb21pc2V9ZnVuY3Rpb24gWjhyKGUpe3JldHVybiBlJiZUdChlLm5leHQpJiZUdChlLmVycm9yKSYmVHQoZS5jb21wbGV0ZSl9ZnVuY3Rpb24gWDhyKGUpe3JldHVybiBlJiZlIGluc3RhbmNlb2YgbzN8fFo4cihlKSYmZ3YoZSl9dmFyIEh0LGhuPXAoKCk9Pnt5digpO1cyKCk7QmgoKTtLRigpO3A1KCk7Q2koKTt2digpO0h0PShmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dCYmKHRoaXMuX3N1YnNjcmliZT10KX1yZXR1cm4gZS5wcm90b3R5cGUubGlmdD1mdW5jdGlvbih0KXt2YXIgcj1uZXcgZTtyZXR1cm4gci5zb3VyY2U9dGhpcyxyLm9wZXJhdG9yPXQscn0sZS5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKHQscixpKXt2YXIgYT10aGlzLG49WDhyKHQpP3Q6bmV3IFJoKHQscixpKTtyZXR1cm4gZjUoZnVuY3Rpb24oKXt2YXIgbz1hLHM9by5vcGVyYXRvcixsPW8uc291cmNlO24uYWRkKHM/cy5jYWxsKG4sbCk6bD9hLl9zdWJzY3JpYmUobik6YS5fdHJ5U3Vic2NyaWJlKG4pKX0pLG59LGUucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUodCl9Y2F0Y2gocil7dC5lcnJvcihyKX19LGUucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxyKXt2YXIgaT10aGlzO3JldHVybiByPWt1ZShyKSxuZXcgcihmdW5jdGlvbihhLG4pe3ZhciBvPW5ldyBSaCh7bmV4dDpmdW5jdGlvbihzKXt0cnl7dChzKX1jYXRjaChsKXtuKGwpLG8udW5zdWJzY3JpYmUoKX19LGVycm9yOm4sY29tcGxldGU6YX0pO2kuc3Vic2NyaWJlKG8pfSl9LGUucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24odCl7dmFyIHI7cmV0dXJuKHI9dGhpcy5zb3VyY2UpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5zdWJzY3JpYmUodCl9LGUucHJvdG90eXBlW3MzXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiBKRih0KSh0aGlzKX0sZS5wcm90b3R5cGUudG9Qcm9taXNlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXM7cmV0dXJuIHQ9a3VlKHQpLG5ldyB0KGZ1bmN0aW9uKGksYSl7dmFyIG47ci5zdWJzY3JpYmUoZnVuY3Rpb24obyl7cmV0dXJuIG49b30sZnVuY3Rpb24obyl7cmV0dXJuIGEobyl9LGZ1bmN0aW9uKCl7cmV0dXJuIGkobil9KX0pfSxlLmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodCl9LGV9KSgpfSk7ZnVuY3Rpb24gZU8oZSl7cmV0dXJuIFR0KGU/LmxpZnQpfWZ1bmN0aW9uIF9yKGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihlTyh0KSlyZXR1cm4gdC5saWZ0KGZ1bmN0aW9uKHIpe3RyeXtyZXR1cm4gZShyLHRoaXMpfWNhdGNoKGkpe3RoaXMuZXJyb3IoaSl9fSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZhYmxlIHR5cGUiKX19dmFyIGppPXAoKCk9PntDaSgpfSk7ZnVuY3Rpb24geHIoZSx0LHIsaSxhKXtyZXR1cm4gbmV3IFN1ZShlLHQscixpLGEpfXZhciBTdWUsSGE9cCgoKT0+e09yKCk7eXYoKTtTdWU9KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdChyLGksYSxuLG8scyl7dmFyIGw9ZS5jYWxsKHRoaXMscil8fHRoaXM7cmV0dXJuIGwub25GaW5hbGl6ZT1vLGwuc2hvdWxkVW5zdWJzY3JpYmU9cyxsLl9uZXh0PWk/ZnVuY3Rpb24oYyl7dHJ5e2koYyl9Y2F0Y2godSl7ci5lcnJvcih1KX19OmUucHJvdG90eXBlLl9uZXh0LGwuX2Vycm9yPW4/ZnVuY3Rpb24oYyl7dHJ5e24oYyl9Y2F0Y2godSl7ci5lcnJvcih1KX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OmUucHJvdG90eXBlLl9lcnJvcixsLl9jb21wbGV0ZT1hP2Z1bmN0aW9uKCl7dHJ5e2EoKX1jYXRjaChjKXtyLmVycm9yKGMpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06ZS5wcm90b3R5cGUuX2NvbXBsZXRlLGx9cmV0dXJuIHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIHI7aWYoIXRoaXMuc2hvdWxkVW5zdWJzY3JpYmV8fHRoaXMuc2hvdWxkVW5zdWJzY3JpYmUoKSl7dmFyIGk9dGhpcy5jbG9zZWQ7ZS5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKSwhaSYmKChyPXRoaXMub25GaW5hbGl6ZSk9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNhbGwodGhpcykpfX0sdH0pKG8zKX0pO2Z1bmN0aW9uIE12KCl7cmV0dXJuIF9yKGZ1bmN0aW9uKGUsdCl7dmFyIHI9bnVsbDtlLl9yZWZDb3VudCsrO3ZhciBpPXhyKHQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtpZighZXx8ZS5fcmVmQ291bnQ8PTB8fDA8LS1lLl9yZWZDb3VudCl7cj1udWxsO3JldHVybn12YXIgYT1lLl9jb25uZWN0aW9uLG49cjtyPW51bGwsYSYmKCFufHxhPT09bikmJmEudW5zdWJzY3JpYmUoKSx0LnVuc3Vic2NyaWJlKCl9KTtlLnN1YnNjcmliZShpKSxpLmNsb3NlZHx8KHI9ZS5jb25uZWN0KCkpfSl9dmFyIGt2PXAoKCk9PntqaSgpO0hhKCl9KTt2YXIgenVlLEN1ZT1wKCgpPT57T3IoKTtobigpO1cyKCk7a3YoKTtIYSgpO2ppKCk7enVlPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpKXt2YXIgYT1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuc291cmNlPXIsYS5zdWJqZWN0RmFjdG9yeT1pLGEuX3N1YmplY3Q9bnVsbCxhLl9yZWZDb3VudD0wLGEuX2Nvbm5lY3Rpb249bnVsbCxlTyhyKSYmKGEubGlmdD1yLmxpZnQpLGF9cmV0dXJuIHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuZ2V0U3ViamVjdCgpLnN1YnNjcmliZShyKX0sdC5wcm90b3R5cGUuZ2V0U3ViamVjdD1mdW5jdGlvbigpe3ZhciByPXRoaXMuX3N1YmplY3Q7cmV0dXJuKCFyfHxyLmlzU3RvcHBlZCkmJih0aGlzLl9zdWJqZWN0PXRoaXMuc3ViamVjdEZhY3RvcnkoKSksdGhpcy5fc3ViamVjdH0sdC5wcm90b3R5cGUuX3RlYXJkb3duPWZ1bmN0aW9uKCl7dGhpcy5fcmVmQ291bnQ9MDt2YXIgcj10aGlzLl9jb25uZWN0aW9uO3RoaXMuX3N1YmplY3Q9dGhpcy5fY29ubmVjdGlvbj1udWxsLHI/LnVuc3Vic2NyaWJlKCl9LHQucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLGk9dGhpcy5fY29ubmVjdGlvbjtpZighaSl7aT10aGlzLl9jb25uZWN0aW9uPW5ldyBPMTt2YXIgYT10aGlzLmdldFN1YmplY3QoKTtpLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUoeHIoYSx2b2lkIDAsZnVuY3Rpb24oKXtyLl90ZWFyZG93bigpLGEuY29tcGxldGUoKX0sZnVuY3Rpb24obil7ci5fdGVhcmRvd24oKSxhLmVycm9yKG4pfSxmdW5jdGlvbigpe3JldHVybiByLl90ZWFyZG93bigpfSkpKSxpLmNsb3NlZCYmKHRoaXMuX2Nvbm5lY3Rpb249bnVsbCxpPU8xLkVNUFRZKX1yZXR1cm4gaX0sdC5wcm90b3R5cGUucmVmQ291bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gTXYoKSh0aGlzKX0sdH0pKEh0KX0pO3ZhciB0TyxUdWU9cCgoKT0+e3RPPXtub3c6ZnVuY3Rpb24oKXtyZXR1cm4odE8uZGVsZWdhdGV8fHBlcmZvcm1hbmNlKS5ub3coKX0sZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBmbCxyTz1wKCgpPT57T3IoKTtXMigpO2ZsPXtzY2hlZHVsZTpmdW5jdGlvbihlKXt2YXIgdD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUscj1jYW5jZWxBbmltYXRpb25GcmFtZSxpPWZsLmRlbGVnYXRlO2kmJih0PWkucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHI9aS5jYW5jZWxBbmltYXRpb25GcmFtZSk7dmFyIGE9dChmdW5jdGlvbihuKXtyPXZvaWQgMCxlKG4pfSk7cmV0dXJuIG5ldyBPMShmdW5jdGlvbigpe3JldHVybiByPy4oYSl9KX0scmVxdWVzdEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3ZhciByPWZsLmRlbGVnYXRlO3JldHVybihyPy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHJlcXVlc3RBbmltYXRpb25GcmFtZSkuYXBwbHkodm9pZCAwLHFpKFtdLFgxKGUpKSl9LGNhbmNlbEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3ZhciByPWZsLmRlbGVnYXRlO3JldHVybihyPy5jYW5jZWxBbmltYXRpb25GcmFtZXx8Y2FuY2VsQW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCxxaShbXSxYMShlKSkpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7ZnVuY3Rpb24gUThyKGUpe3JldHVybiBlP191ZShlKTpKOHJ9ZnVuY3Rpb24gX3VlKGUpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24odCl7dmFyIHI9ZXx8dE8saT1yLm5vdygpLGE9MCxuPWZ1bmN0aW9uKCl7dC5jbG9zZWR8fChhPWZsLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbihvKXthPTA7dmFyIHM9ci5ub3coKTt0Lm5leHQoe3RpbWVzdGFtcDplP3M6byxlbGFwc2VkOnMtaX0pLG4oKX0pKX07cmV0dXJuIG4oKSxmdW5jdGlvbigpe2EmJmZsLmNhbmNlbEFuaW1hdGlvbkZyYW1lKGEpfX0pfXZhciBKOHIsTHVlPXAoKCk9PntobigpO1R1ZSgpO3JPKCk7SjhyPV91ZSgpfSk7dmFyIGlPLGFPPXAoKCk9PntIYygpO2lPPXBuKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe2UodGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn19KX0pO3ZhciBmbixuTyxxaD1wKCgpPT57T3IoKTtobigpO1cyKCk7YU8oKTt1NSgpO3Z2KCk7Zm49KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5jbG9zZWQ9ITEsci5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsci5vYnNlcnZlcnM9W10sci5pc1N0b3BwZWQ9ITEsci5oYXNFcnJvcj0hMSxyLnRocm93bkVycm9yPW51bGwscn1yZXR1cm4gdC5wcm90b3R5cGUubGlmdD1mdW5jdGlvbihyKXt2YXIgaT1uZXcgbk8odGhpcyx0aGlzKTtyZXR1cm4gaS5vcGVyYXRvcj1yLGl9LHQucHJvdG90eXBlLl90aHJvd0lmQ2xvc2VkPWZ1bmN0aW9uKCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IGlPfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXM7ZjUoZnVuY3Rpb24oKXt2YXIgYSxuO2lmKGkuX3Rocm93SWZDbG9zZWQoKSwhaS5pc1N0b3BwZWQpe2kuY3VycmVudE9ic2VydmVyc3x8KGkuY3VycmVudE9ic2VydmVycz1BcnJheS5mcm9tKGkub2JzZXJ2ZXJzKSk7dHJ5e2Zvcih2YXIgbz1sYShpLmN1cnJlbnRPYnNlcnZlcnMpLHM9by5uZXh0KCk7IXMuZG9uZTtzPW8ubmV4dCgpKXt2YXIgbD1zLnZhbHVlO2wubmV4dChyKX19Y2F0Y2goYyl7YT17ZXJyb3I6Y319ZmluYWxseXt0cnl7cyYmIXMuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fX19KX0sdC5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcztmNShmdW5jdGlvbigpe2lmKGkuX3Rocm93SWZDbG9zZWQoKSwhaS5pc1N0b3BwZWQpe2kuaGFzRXJyb3I9aS5pc1N0b3BwZWQ9ITAsaS50aHJvd25FcnJvcj1yO2Zvcih2YXIgYT1pLm9ic2VydmVyczthLmxlbmd0aDspYS5zaGlmdCgpLmVycm9yKHIpfX0pfSx0LnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByPXRoaXM7ZjUoZnVuY3Rpb24oKXtpZihyLl90aHJvd0lmQ2xvc2VkKCksIXIuaXNTdG9wcGVkKXtyLmlzU3RvcHBlZD0hMDtmb3IodmFyIGk9ci5vYnNlcnZlcnM7aS5sZW5ndGg7KWkuc2hpZnQoKS5jb21wbGV0ZSgpfX0pfSx0LnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3RoaXMuaXNTdG9wcGVkPXRoaXMuY2xvc2VkPSEwLHRoaXMub2JzZXJ2ZXJzPXRoaXMuY3VycmVudE9ic2VydmVycz1udWxsfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIm9ic2VydmVkIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHI7cmV0dXJuKChyPXRoaXMub2JzZXJ2ZXJzKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIubGVuZ3RoKT4wfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLl90cnlTdWJzY3JpYmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSxlLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlLmNhbGwodGhpcyxyKX0sdC5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMociksdGhpcy5faW5uZXJTdWJzY3JpYmUocil9LHQucHJvdG90eXBlLl9pbm5lclN1YnNjcmliZT1mdW5jdGlvbihyKXt2YXIgaT10aGlzLGE9dGhpcyxuPWEuaGFzRXJyb3Isbz1hLmlzU3RvcHBlZCxzPWEub2JzZXJ2ZXJzO3JldHVybiBufHxvP1dGOih0aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbCxzLnB1c2gociksbmV3IE8xKGZ1bmN0aW9uKCl7aS5jdXJyZW50T2JzZXJ2ZXJzPW51bGwsSm8ocyxyKX0pKX0sdC5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXM9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPWkuaGFzRXJyb3Isbj1pLnRocm93bkVycm9yLG89aS5pc1N0b3BwZWQ7YT9yLmVycm9yKG4pOm8mJnIuY29tcGxldGUoKX0sdC5wcm90b3R5cGUuYXNPYnNlcnZhYmxlPWZ1bmN0aW9uKCl7dmFyIHI9bmV3IEh0O3JldHVybiByLnNvdXJjZT10aGlzLHJ9LHQuY3JlYXRlPWZ1bmN0aW9uKHIsaSl7cmV0dXJuIG5ldyBuTyhyLGkpfSx0fSkoSHQpLG5PPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpKXt2YXIgYT1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGEuZGVzdGluYXRpb249cixhLnNvdXJjZT1pLGF9cmV0dXJuIHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGksYTsoYT0oaT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkubmV4dCk9PT1udWxsfHxhPT09dm9pZCAwfHxhLmNhbGwoaSxyKX0sdC5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dmFyIGksYTsoYT0oaT10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuZXJyb3IpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKGkscil9LHQucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHIsaTsoaT0ocj10aGlzLmRlc3RpbmF0aW9uKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuY29tcGxldGUpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5jYWxsKHIpfSx0LnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3ZhciBpLGE7cmV0dXJuKGE9KGk9dGhpcy5zb3VyY2UpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5zdWJzY3JpYmUocikpIT09bnVsbCYmYSE9PXZvaWQgMD9hOldGfSx0fSkoZm4pfSk7dmFyIEF1ZSxEdWU9cCgoKT0+e09yKCk7cWgoKTtBdWU9KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdChyKXt2YXIgaT1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuX3ZhbHVlPXIsaX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJ2YWx1ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFZhbHVlKCl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXt2YXIgaT1lLnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcyxyKTtyZXR1cm4haS5jbG9zZWQmJnIubmV4dCh0aGlzLl92YWx1ZSksaX0sdC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLGk9ci5oYXNFcnJvcixhPXIudGhyb3duRXJyb3Isbj1yLl92YWx1ZTtpZihpKXRocm93IGE7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSxufSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe2UucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHRoaXMuX3ZhbHVlPXIpfSx0fSkoZm4pfSk7dmFyIGpoLG9PPXAoKCk9PntqaD17bm93OmZ1bmN0aW9uKCl7cmV0dXJuKGpoLmRlbGVnYXRlfHxEYXRlKS5ub3coKX0sZGVsZWdhdGU6dm9pZCAwfX0pO3ZhciBTdixFdWU9cCgoKT0+e09yKCk7cWgoKTtvTygpO1N2PShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpLGEpe3I9PT12b2lkIDAmJihyPTEvMCksaT09PXZvaWQgMCYmKGk9MS8wKSxhPT09dm9pZCAwJiYoYT1qaCk7dmFyIG49ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBuLl9idWZmZXJTaXplPXIsbi5fd2luZG93VGltZT1pLG4uX3RpbWVzdGFtcFByb3ZpZGVyPWEsbi5fYnVmZmVyPVtdLG4uX2luZmluaXRlVGltZVdpbmRvdz0hMCxuLl9pbmZpbml0ZVRpbWVXaW5kb3c9aT09PTEvMCxuLl9idWZmZXJTaXplPU1hdGgubWF4KDEsciksbi5fd2luZG93VGltZT1NYXRoLm1heCgxLGkpLG59cmV0dXJuIHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPWkuaXNTdG9wcGVkLG49aS5fYnVmZmVyLG89aS5faW5maW5pdGVUaW1lV2luZG93LHM9aS5fdGltZXN0YW1wUHJvdmlkZXIsbD1pLl93aW5kb3dUaW1lO2F8fChuLnB1c2gociksIW8mJm4ucHVzaChzLm5vdygpK2wpKSx0aGlzLl90cmltQnVmZmVyKCksZS5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMscil9LHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX3RyaW1CdWZmZXIoKTtmb3IodmFyIGk9dGhpcy5faW5uZXJTdWJzY3JpYmUociksYT10aGlzLG49YS5faW5maW5pdGVUaW1lV2luZG93LG89YS5fYnVmZmVyLHM9by5zbGljZSgpLGw9MDtsPHMubGVuZ3RoJiYhci5jbG9zZWQ7bCs9bj8xOjIpci5uZXh0KHNbbF0pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHIpLGl9LHQucHJvdG90eXBlLl90cmltQnVmZmVyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxpPXIuX2J1ZmZlclNpemUsYT1yLl90aW1lc3RhbXBQcm92aWRlcixuPXIuX2J1ZmZlcixvPXIuX2luZmluaXRlVGltZVdpbmRvdyxzPShvPzE6MikqaTtpZihpPDEvMCYmczxuLmxlbmd0aCYmbi5zcGxpY2UoMCxuLmxlbmd0aC1zKSwhbyl7Zm9yKHZhciBsPWEubm93KCksYz0wLHU9MTt1PG4ubGVuZ3RoJiZuW3VdPD1sO3UrPTIpYz11O2MmJm4uc3BsaWNlKDAsYysxKX19LHR9KShmbil9KTt2YXIgJHVlLEl1ZT1wKCgpPT57T3IoKTtxaCgpOyR1ZT0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KCl7dmFyIHI9ZSE9PW51bGwmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiByLl92YWx1ZT1udWxsLHIuX2hhc1ZhbHVlPSExLHIuX2lzQ29tcGxldGU9ITEscn1yZXR1cm4gdC5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXM9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPWkuaGFzRXJyb3Isbj1pLl9oYXNWYWx1ZSxvPWkuX3ZhbHVlLHM9aS50aHJvd25FcnJvcixsPWkuaXNTdG9wcGVkLGM9aS5faXNDb21wbGV0ZTthP3IuZXJyb3Iocyk6KGx8fGMpJiYobiYmci5uZXh0KG8pLHIuY29tcGxldGUoKSl9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24ocil7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLl92YWx1ZT1yLHRoaXMuX2hhc1ZhbHVlPSEwKX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLGk9ci5faGFzVmFsdWUsYT1yLl92YWx1ZSxuPXIuX2lzQ29tcGxldGU7bnx8KHRoaXMuX2lzQ29tcGxldGU9ITAsaSYmZS5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsYSksZS5wcm90b3R5cGUuY29tcGxldGUuY2FsbCh0aGlzKSl9LHR9KShmbil9KTt2YXIgc08sUHVlPXAoKCk9PntPcigpO1cyKCk7c089KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdChyLGkpe3JldHVybiBlLmNhbGwodGhpcyl8fHRoaXN9cmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsaSl7cmV0dXJuIGk9PT12b2lkIDAmJihpPTApLHRoaXN9LHR9KShPMSl9KTt2YXIgVmgsTnVlPXAoKCk9PntPcigpO1ZoPXtzZXRJbnRlcnZhbDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1bXSxpPTI7aTxhcmd1bWVudHMubGVuZ3RoO2krKylyW2ktMl09YXJndW1lbnRzW2ldO3ZhciBhPVZoLmRlbGVnYXRlO3JldHVybiBhPy5zZXRJbnRlcnZhbD9hLnNldEludGVydmFsLmFwcGx5KGEscWkoW2UsdF0sWDEocikpKTpzZXRJbnRlcnZhbC5hcHBseSh2b2lkIDAscWkoW2UsdF0sWDEocikpKX0sY2xlYXJJbnRlcnZhbDpmdW5jdGlvbihlKXt2YXIgdD1WaC5kZWxlZ2F0ZTtyZXR1cm4odD8uY2xlYXJJbnRlcnZhbHx8Y2xlYXJJbnRlcnZhbCkoZSl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgS28sbTU9cCgoKT0+e09yKCk7UHVlKCk7TnVlKCk7dTUoKTtLbz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KHIsaSl7dmFyIGE9ZS5jYWxsKHRoaXMscixpKXx8dGhpcztyZXR1cm4gYS5zY2hlZHVsZXI9cixhLndvcms9aSxhLnBlbmRpbmc9ITEsYX1yZXR1cm4gdC5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24ocixpKXt2YXIgYTtpZihpPT09dm9pZCAwJiYoaT0wKSx0aGlzLmNsb3NlZClyZXR1cm4gdGhpczt0aGlzLnN0YXRlPXI7dmFyIG49dGhpcy5pZCxvPXRoaXMuc2NoZWR1bGVyO3JldHVybiBuIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKG8sbixpKSksdGhpcy5wZW5kaW5nPSEwLHRoaXMuZGVsYXk9aSx0aGlzLmlkPShhPXRoaXMuaWQpIT09bnVsbCYmYSE9PXZvaWQgMD9hOnRoaXMucmVxdWVzdEFzeW5jSWQobyx0aGlzLmlkLGkpLHRoaXN9LHQucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHIsaSxhKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MCksVmguc2V0SW50ZXJ2YWwoci5mbHVzaC5iaW5kKHIsdGhpcyksYSl9LHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHIsaSxhKXtpZihhPT09dm9pZCAwJiYoYT0wKSxhIT1udWxsJiZ0aGlzLmRlbGF5PT09YSYmdGhpcy5wZW5kaW5nPT09ITEpcmV0dXJuIGk7aSE9bnVsbCYmVmguY2xlYXJJbnRlcnZhbChpKX0sdC5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihyLGkpe2lmKHRoaXMuY2xvc2VkKXJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTt0aGlzLnBlbmRpbmc9ITE7dmFyIGE9dGhpcy5fZXhlY3V0ZShyLGkpO2lmKGEpcmV0dXJuIGE7dGhpcy5wZW5kaW5nPT09ITEmJnRoaXMuaWQhPW51bGwmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQodGhpcy5zY2hlZHVsZXIsdGhpcy5pZCxudWxsKSl9LHQucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHIsaSl7dmFyIGE9ITEsbjt0cnl7dGhpcy53b3JrKHIpfWNhdGNoKG8pe2E9ITAsbj1vfHxuZXcgRXJyb3IoIlNjaGVkdWxlZCBhY3Rpb24gdGhyZXcgZmFsc3kgZXJyb3IiKX1pZihhKXJldHVybiB0aGlzLnVuc3Vic2NyaWJlKCksbn0sdC5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXtpZighdGhpcy5jbG9zZWQpe3ZhciByPXRoaXMsaT1yLmlkLGE9ci5zY2hlZHVsZXIsbj1hLmFjdGlvbnM7dGhpcy53b3JrPXRoaXMuc3RhdGU9dGhpcy5zY2hlZHVsZXI9bnVsbCx0aGlzLnBlbmRpbmc9ITEsSm8obix0aGlzKSxpIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKGEsaSxudWxsKSksdGhpcy5kZWxheT1udWxsLGUucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyl9fSx0fSkoc08pfSk7ZnVuY3Rpb24gRnVlKGUpe3JldHVybiBlIGluIHp2PyhkZWxldGUgenZbZV0sITApOiExfXZhciBLOHIsbE8senYsY08saEtyLE91ZT1wKCgpPT57SzhyPTEsenY9e307Y089e3NldEltbWVkaWF0ZTpmdW5jdGlvbihlKXt2YXIgdD1LOHIrKztyZXR1cm4genZbdF09ITAsbE98fChsTz1Qcm9taXNlLnJlc29sdmUoKSksbE8udGhlbihmdW5jdGlvbigpe3JldHVybiBGdWUodCkmJmUoKX0pLHR9LGNsZWFySW1tZWRpYXRlOmZ1bmN0aW9uKGUpe0Z1ZShlKX19LGhLcj17cGVuZGluZzpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh6dikubGVuZ3RofX19KTt2YXIgZXByLHRwcixVaCxSdWU9cCgoKT0+e09yKCk7T3VlKCk7ZXByPWNPLnNldEltbWVkaWF0ZSx0cHI9Y08uY2xlYXJJbW1lZGlhdGUsVWg9e3NldEltbWVkaWF0ZTpmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt2YXIgcj1VaC5kZWxlZ2F0ZTtyZXR1cm4ocj8uc2V0SW1tZWRpYXRlfHxlcHIpLmFwcGx5KHZvaWQgMCxxaShbXSxYMShlKSkpfSxjbGVhckltbWVkaWF0ZTpmdW5jdGlvbihlKXt2YXIgdD1VaC5kZWxlZ2F0ZTtyZXR1cm4odD8uY2xlYXJJbW1lZGlhdGV8fHRwcikoZSl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgZE8sQnVlPXAoKCk9PntPcigpO201KCk7UnVlKCk7ZE89KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdChyLGkpe3ZhciBhPWUuY2FsbCh0aGlzLHIsaSl8fHRoaXM7cmV0dXJuIGEuc2NoZWR1bGVyPXIsYS53b3JrPWksYX1yZXR1cm4gdC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe3JldHVybiBhPT09dm9pZCAwJiYoYT0wKSxhIT09bnVsbCYmYT4wP2UucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGksYSk6KHIuYWN0aW9ucy5wdXNoKHRoaXMpLHIuX3NjaGVkdWxlZHx8KHIuX3NjaGVkdWxlZD1VaC5zZXRJbW1lZGlhdGUoci5mbHVzaC5iaW5kKHIsdm9pZCAwKSkpKX0sdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe3ZhciBuO2lmKGE9PT12b2lkIDAmJihhPTApLGEhPW51bGw/YT4wOnRoaXMuZGVsYXk+MClyZXR1cm4gZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLHIsaSxhKTt2YXIgbz1yLmFjdGlvbnM7aSE9bnVsbCYmKChuPW9bby5sZW5ndGgtMV0pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5pZCkhPT1pJiYoVWguY2xlYXJJbW1lZGlhdGUoaSksci5fc2NoZWR1bGVkPT09aSYmKHIuX3NjaGVkdWxlZD12b2lkIDApKX0sdH0pKEtvKX0pO3ZhciBXaCx1Tz1wKCgpPT57b08oKTtXaD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQscil7cj09PXZvaWQgMCYmKHI9ZS5ub3cpLHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcj10LHRoaXMubm93PXJ9cmV0dXJuIGUucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHQscixpKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MCksbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLHQpLnNjaGVkdWxlKGkscil9LGUubm93PWpoLm5vdyxlfSkoKX0pO3ZhciBlMixnNT1wKCgpPT57T3IoKTt1TygpO2UyPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpKXtpPT09dm9pZCAwJiYoaT1XaC5ub3cpO3ZhciBhPWUuY2FsbCh0aGlzLHIsaSl8fHRoaXM7cmV0dXJuIGEuYWN0aW9ucz1bXSxhLl9hY3RpdmU9ITEsYX1yZXR1cm4gdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcy5hY3Rpb25zO2lmKHRoaXMuX2FjdGl2ZSl7aS5wdXNoKHIpO3JldHVybn12YXIgYTt0aGlzLl9hY3RpdmU9ITA7ZG8gaWYoYT1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZShyPWkuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLGEpe2Zvcig7cj1pLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBhfX0sdH0pKFdoKX0pO3ZhciBwTyxIdWU9cCgoKT0+e09yKCk7ZzUoKTtwTz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KCl7cmV0dXJuIGUhPT1udWxsJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dGhpcy5fYWN0aXZlPSEwO3ZhciBpPXRoaXMuX3NjaGVkdWxlZDt0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwO3ZhciBhPXRoaXMuYWN0aW9ucyxuO3I9cnx8YS5zaGlmdCgpO2RvIGlmKG49ci5leGVjdXRlKHIuc3RhdGUsci5kZWxheSkpYnJlYWs7d2hpbGUoKHI9YVswXSkmJnIuaWQ9PT1pJiZhLnNoaWZ0KCkpO2lmKHRoaXMuX2FjdGl2ZT0hMSxuKXtmb3IoOyhyPWFbMF0pJiZyLmlkPT09aSYmYS5zaGlmdCgpOylyLnVuc3Vic2NyaWJlKCk7dGhyb3cgbn19LHR9KShlMil9KTt2YXIgcXVlLHJwcixqdWU9cCgoKT0+e0J1ZSgpO0h1ZSgpO3F1ZT1uZXcgcE8oZE8pLHJwcj1xdWV9KTt2YXIgRzIsaE8sbDM9cCgoKT0+e201KCk7ZzUoKTtHMj1uZXcgZTIoS28pLGhPPUcyfSk7dmFyIGZPLFZ1ZT1wKCgpPT57T3IoKTttNSgpO2ZPPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpKXt2YXIgYT1lLmNhbGwodGhpcyxyLGkpfHx0aGlzO3JldHVybiBhLnNjaGVkdWxlcj1yLGEud29yaz1pLGF9cmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsaSl7cmV0dXJuIGk9PT12b2lkIDAmJihpPTApLGk+MD9lLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMscixpKToodGhpcy5kZWxheT1pLHRoaXMuc3RhdGU9cix0aGlzLnNjaGVkdWxlci5mbHVzaCh0aGlzKSx0aGlzKX0sdC5wcm90b3R5cGUuZXhlY3V0ZT1mdW5jdGlvbihyLGkpe3JldHVybiBpPjB8fHRoaXMuY2xvc2VkP2UucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLHIsaSk6dGhpcy5fZXhlY3V0ZShyLGkpfSx0LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGksYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLGEhPW51bGwmJmE+MHx8YT09bnVsbCYmdGhpcy5kZWxheT4wP2UucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGksYSk6KHIuZmx1c2godGhpcyksMCl9LHR9KShLbyl9KTt2YXIgbU8sVXVlPXAoKCk9PntPcigpO2c1KCk7bU89KGZ1bmN0aW9uKGUpe0d0KHQsZSk7ZnVuY3Rpb24gdCgpe3JldHVybiBlIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHR9KShlMil9KTt2YXIgV3VlLGlwcixHdWU9cCgoKT0+e1Z1ZSgpO1V1ZSgpO1d1ZT1uZXcgbU8oZk8pLGlwcj1XdWV9KTt2YXIgZ08sWXVlPXAoKCk9PntPcigpO201KCk7ck8oKTtnTz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KHIsaSl7dmFyIGE9ZS5jYWxsKHRoaXMscixpKXx8dGhpcztyZXR1cm4gYS5zY2hlZHVsZXI9cixhLndvcms9aSxhfXJldHVybiB0LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGksYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLGEhPT1udWxsJiZhPjA/ZS5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLHIsaSxhKTooci5hY3Rpb25zLnB1c2godGhpcyksci5fc2NoZWR1bGVkfHwoci5fc2NoZWR1bGVkPWZsLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JldHVybiByLmZsdXNoKHZvaWQgMCl9KSkpfSx0LnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGksYSl7dmFyIG47aWYoYT09PXZvaWQgMCYmKGE9MCksYSE9bnVsbD9hPjA6dGhpcy5kZWxheT4wKXJldHVybiBlLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMscixpLGEpO3ZhciBvPXIuYWN0aW9ucztpIT1udWxsJiZpPT09ci5fc2NoZWR1bGVkJiYoKG49b1tvLmxlbmd0aC0xXSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmlkKSE9PWkmJihmbC5jYW5jZWxBbmltYXRpb25GcmFtZShpKSxyLl9zY2hlZHVsZWQ9dm9pZCAwKX0sdH0pKEtvKX0pO3ZhciBiTyxadWU9cCgoKT0+e09yKCk7ZzUoKTtiTz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KCl7cmV0dXJuIGUhPT1udWxsJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31yZXR1cm4gdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24ocil7dGhpcy5fYWN0aXZlPSEwO3ZhciBpO3I/aT1yLmlkOihpPXRoaXMuX3NjaGVkdWxlZCx0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwKTt2YXIgYT10aGlzLmFjdGlvbnMsbjtyPXJ8fGEuc2hpZnQoKTtkbyBpZihuPXIuZXhlY3V0ZShyLnN0YXRlLHIuZGVsYXkpKWJyZWFrO3doaWxlKChyPWFbMF0pJiZyLmlkPT09aSYmYS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDsocj1hWzBdKSYmci5pZD09PWkmJmEuc2hpZnQoKTspci51bnN1YnNjcmliZSgpO3Rocm93IG59fSx0fSkoZTIpfSk7dmFyIFh1ZSxhcHIsUXVlPXAoKCk9PntZdWUoKTtadWUoKTtYdWU9bmV3IGJPKGdPKSxhcHI9WHVlfSk7dmFyIEp1ZSx2TyxLdWU9cCgoKT0+e09yKCk7bTUoKTtXMigpO2c1KCk7SnVlPShmdW5jdGlvbihlKXtHdCh0LGUpO2Z1bmN0aW9uIHQocixpKXtyPT09dm9pZCAwJiYocj12TyksaT09PXZvaWQgMCYmKGk9MS8wKTt2YXIgYT1lLmNhbGwodGhpcyxyLGZ1bmN0aW9uKCl7cmV0dXJuIGEuZnJhbWV9KXx8dGhpcztyZXR1cm4gYS5tYXhGcmFtZXM9aSxhLmZyYW1lPTAsYS5pbmRleD0tMSxhfXJldHVybiB0LnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgcj10aGlzLGk9ci5hY3Rpb25zLGE9ci5tYXhGcmFtZXMsbixvOyhvPWlbMF0pJiZvLmRlbGF5PD1hJiYoaS5zaGlmdCgpLHRoaXMuZnJhbWU9by5kZWxheSwhKG49by5leGVjdXRlKG8uc3RhdGUsby5kZWxheSkpKTspO2lmKG4pe2Zvcig7bz1pLnNoaWZ0KCk7KW8udW5zdWJzY3JpYmUoKTt0aHJvdyBufX0sdC5mcmFtZVRpbWVGYWN0b3I9MTAsdH0pKGUyKSx2Tz0oZnVuY3Rpb24oZSl7R3QodCxlKTtmdW5jdGlvbiB0KHIsaSxhKXthPT09dm9pZCAwJiYoYT1yLmluZGV4Kz0xKTt2YXIgbj1lLmNhbGwodGhpcyxyLGkpfHx0aGlzO3JldHVybiBuLnNjaGVkdWxlcj1yLG4ud29yaz1pLG4uaW5kZXg9YSxuLmFjdGl2ZT0hMCxuLmluZGV4PXIuaW5kZXg9YSxufXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihyLGkpe2lmKGk9PT12b2lkIDAmJihpPTApLE51bWJlci5pc0Zpbml0ZShpKSl7aWYoIXRoaXMuaWQpcmV0dXJuIGUucHJvdG90eXBlLnNjaGVkdWxlLmNhbGwodGhpcyxyLGkpO3RoaXMuYWN0aXZlPSExO3ZhciBhPW5ldyB0KHRoaXMuc2NoZWR1bGVyLHRoaXMud29yayk7cmV0dXJuIHRoaXMuYWRkKGEpLGEuc2NoZWR1bGUocixpKX1lbHNlIHJldHVybiBPMS5FTVBUWX0sdC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe2E9PT12b2lkIDAmJihhPTApLHRoaXMuZGVsYXk9ci5mcmFtZSthO3ZhciBuPXIuYWN0aW9ucztyZXR1cm4gbi5wdXNoKHRoaXMpLG4uc29ydCh0LnNvcnRBY3Rpb25zKSwxfSx0LnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGksYSl7YT09PXZvaWQgMCYmKGE9MCl9LHQucHJvdG90eXBlLl9leGVjdXRlPWZ1bmN0aW9uKHIsaSl7aWYodGhpcy5hY3RpdmU9PT0hMClyZXR1cm4gZS5wcm90b3R5cGUuX2V4ZWN1dGUuY2FsbCh0aGlzLHIsaSl9LHQuc29ydEFjdGlvbnM9ZnVuY3Rpb24ocixpKXtyZXR1cm4gci5kZWxheT09PWkuZGVsYXk/ci5pbmRleD09PWkuaW5kZXg/MDpyLmluZGV4PmkuaW5kZXg/MTotMTpyLmRlbGF5PmkuZGVsYXk/MTotMX0sdH0pKEtvKX0pO2Z1bmN0aW9uIG5wcihlKXtyZXR1cm4gZT9vcHIoZSk6Q3Z9ZnVuY3Rpb24gb3ByKGUpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24odCl7cmV0dXJuIGUuc2NoZWR1bGUoZnVuY3Rpb24oKXtyZXR1cm4gdC5jb21wbGV0ZSgpfSl9KX12YXIgQ3YsVHY9cCgoKT0+e2huKCk7Q3Y9bmV3IEh0KGZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbXBsZXRlKCl9KX0pO2Z1bmN0aW9uIF92KGUpe3JldHVybiBlJiZUdChlLnNjaGVkdWxlKX12YXIgeE89cCgoKT0+e0NpKCl9KTtmdW5jdGlvbiB5TyhlKXtyZXR1cm4gZVtlLmxlbmd0aC0xXX1mdW5jdGlvbiBwZTEoZSl7cmV0dXJuIFR0KHlPKGUpKT9lLnBvcCgpOnZvaWQgMH1mdW5jdGlvbiBxYyhlKXtyZXR1cm4gX3YoeU8oZSkpP2UucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIGhlMShlLHQpe3JldHVybiB0eXBlb2YgeU8oZSk9PSJudW1iZXIiP2UucG9wKCk6dH12YXIgR2g9cCgoKT0+e0NpKCk7eE8oKX0pO3ZhciBiNSxMdj1wKCgpPT57YjU9KGZ1bmN0aW9uKGUpe3JldHVybiBlJiZ0eXBlb2YgZS5sZW5ndGg9PSJudW1iZXIiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIn0pfSk7ZnVuY3Rpb24gQXYoZSl7cmV0dXJuIFR0KGU/LnRoZW4pfXZhciB3Tz1wKCgpPT57Q2koKX0pO2Z1bmN0aW9uIER2KGUpe3JldHVybiBUdChlW3MzXSl9dmFyIE1PPXAoKCk9PntCaCgpO0NpKCl9KTtmdW5jdGlvbiBFdihlKXtyZXR1cm4gU3ltYm9sLmFzeW5jSXRlcmF0b3ImJlR0KGU/LltTeW1ib2wuYXN5bmNJdGVyYXRvcl0pfXZhciBrTz1wKCgpPT57Q2koKX0pO2Z1bmN0aW9uICR2KGUpe3JldHVybiBuZXcgVHlwZUVycm9yKCJZb3UgcHJvdmlkZWQgIisoZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Ij8iYW4gaW52YWxpZCBvYmplY3QiOiInIitlKyInIikrIiB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFkYWJsZVN0cmVhbSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLiIpfXZhciBTTz1wKCgpPT57fSk7ZnVuY3Rpb24gc3ByKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2whPSJmdW5jdGlvbiJ8fCFTeW1ib2wuaXRlcmF0b3I/IkBAaXRlcmF0b3IiOlN5bWJvbC5pdGVyYXRvcn12YXIgSXYsek89cCgoKT0+e0l2PXNwcigpfSk7ZnVuY3Rpb24gUHYoZSl7cmV0dXJuIFR0KGU/LltJdl0pfXZhciBDTz1wKCgpPT57ek8oKTtDaSgpfSk7ZnVuY3Rpb24gTnYoZSl7cmV0dXJuIGpGKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKCl7dmFyIHIsaSxhLG47cmV0dXJuIEZoKHRoaXMsZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDpyPWUuZ2V0UmVhZGVyKCksby5sYWJlbD0xO2Nhc2UgMTpvLnRyeXMucHVzaChbMSwsOSwxMF0pLG8ubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzQsaGwoci5yZWFkKCkpXTtjYXNlIDM6cmV0dXJuIGk9by5zZW50KCksYT1pLnZhbHVlLG49aS5kb25lLG4/WzQsaGwodm9pZCAwKV06WzMsNV07Y2FzZSA0OnJldHVyblsyLG8uc2VudCgpXTtjYXNlIDU6cmV0dXJuWzQsaGwoYSldO2Nhc2UgNjpyZXR1cm5bNCxvLnNlbnQoKV07Y2FzZSA3OnJldHVybiBvLnNlbnQoKSxbMywyXTtjYXNlIDg6cmV0dXJuWzMsMTBdO2Nhc2UgOTpyZXR1cm4gci5yZWxlYXNlTG9jaygpLFs3XTtjYXNlIDEwOnJldHVyblsyXX19KX0pfWZ1bmN0aW9uIEZ2KGUpe3JldHVybiBUdChlPy5nZXRSZWFkZXIpfXZhciBPdj1wKCgpPT57T3IoKTtDaSgpfSk7ZnVuY3Rpb24gejEoZSl7aWYoZSBpbnN0YW5jZW9mIEh0KXJldHVybiBlO2lmKGUhPW51bGwpe2lmKER2KGUpKXJldHVybiBscHIoZSk7aWYoYjUoZSkpcmV0dXJuIGNwcihlKTtpZihBdihlKSlyZXR1cm4gZHByKGUpO2lmKEV2KGUpKXJldHVybiBlOGUoZSk7aWYoUHYoZSkpcmV0dXJuIHVwcihlKTtpZihGdihlKSlyZXR1cm4gcHByKGUpfXRocm93ICR2KGUpfWZ1bmN0aW9uIGxwcihlKXtyZXR1cm4gbmV3IEh0KGZ1bmN0aW9uKHQpe3ZhciByPWVbczNdKCk7aWYoVHQoci5zdWJzY3JpYmUpKXJldHVybiByLnN1YnNjcmliZSh0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm92aWRlZCBvYmplY3QgZG9lcyBub3QgY29ycmVjdGx5IGltcGxlbWVudCBTeW1ib2wub2JzZXJ2YWJsZSIpfSl9ZnVuY3Rpb24gY3ByKGUpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24odCl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aCYmIXQuY2xvc2VkO3IrKyl0Lm5leHQoZVtyXSk7dC5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gZHByKGUpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24odCl7ZS50aGVuKGZ1bmN0aW9uKHIpe3QuY2xvc2VkfHwodC5uZXh0KHIpLHQuY29tcGxldGUoKSl9LGZ1bmN0aW9uKHIpe3JldHVybiB0LmVycm9yKHIpfSkudGhlbihudWxsLGJ2KX0pfWZ1bmN0aW9uIHVwcihlKXtyZXR1cm4gbmV3IEh0KGZ1bmN0aW9uKHQpe3ZhciByLGk7dHJ5e2Zvcih2YXIgYT1sYShlKSxuPWEubmV4dCgpOyFuLmRvbmU7bj1hLm5leHQoKSl7dmFyIG89bi52YWx1ZTtpZih0Lm5leHQobyksdC5jbG9zZWQpcmV0dXJufX1jYXRjaChzKXtyPXtlcnJvcjpzfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYoaT1hLnJldHVybikmJmkuY2FsbChhKX1maW5hbGx5e2lmKHIpdGhyb3cgci5lcnJvcn19dC5jb21wbGV0ZSgpfSl9ZnVuY3Rpb24gZThlKGUpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24odCl7aHByKGUsdCkuY2F0Y2goZnVuY3Rpb24ocil7cmV0dXJuIHQuZXJyb3Iocil9KX0pfWZ1bmN0aW9uIHBwcihlKXtyZXR1cm4gZThlKE52KGUpKX1mdW5jdGlvbiBocHIoZSx0KXt2YXIgcixpLGEsbjtyZXR1cm4gcUYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG8scztyZXR1cm4gRmgodGhpcyxmdW5jdGlvbihsKXtzd2l0Y2gobC5sYWJlbCl7Y2FzZSAwOmwudHJ5cy5wdXNoKFswLDUsNiwxMV0pLHI9VkYoZSksbC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm5bNCxyLm5leHQoKV07Y2FzZSAyOmlmKGk9bC5zZW50KCksISFpLmRvbmUpcmV0dXJuWzMsNF07aWYobz1pLnZhbHVlLHQubmV4dChvKSx0LmNsb3NlZClyZXR1cm5bMl07bC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMywxXTtjYXNlIDQ6cmV0dXJuWzMsMTFdO2Nhc2UgNTpyZXR1cm4gcz1sLnNlbnQoKSxhPXtlcnJvcjpzfSxbMywxMV07Y2FzZSA2OnJldHVybiBsLnRyeXMucHVzaChbNiwsOSwxMF0pLGkmJiFpLmRvbmUmJihuPXIucmV0dXJuKT9bNCxuLmNhbGwocildOlszLDhdO2Nhc2UgNzpsLnNlbnQoKSxsLmxhYmVsPTg7Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6aWYoYSl0aHJvdyBhLmVycm9yO3JldHVybls3XTtjYXNlIDEwOnJldHVybls3XTtjYXNlIDExOnJldHVybiB0LmNvbXBsZXRlKCksWzJdfX0pfSl9dmFyIG9vPXAoKCk9PntPcigpO0x2KCk7d08oKTtobigpO01PKCk7a08oKTtTTygpO0NPKCk7T3YoKTtDaSgpO1lGKCk7QmgoKX0pO2Z1bmN0aW9uIFZpKGUsdCxyLGksYSl7aT09PXZvaWQgMCYmKGk9MCksYT09PXZvaWQgMCYmKGE9ITEpO3ZhciBuPXQuc2NoZWR1bGUoZnVuY3Rpb24oKXtyKCksYT9lLmFkZCh0aGlzLnNjaGVkdWxlKG51bGwsaSkpOnRoaXMudW5zdWJzY3JpYmUoKX0saSk7aWYoZS5hZGQobiksIWEpcmV0dXJuIG59dmFyIGMzPXAoKCk9Pnt9KTtmdW5jdGlvbiB2NShlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0wKSxfcihmdW5jdGlvbihyLGkpe3Iuc3Vic2NyaWJlKHhyKGksZnVuY3Rpb24oYSl7cmV0dXJuIFZpKGksZSxmdW5jdGlvbigpe3JldHVybiBpLm5leHQoYSl9LHQpfSxmdW5jdGlvbigpe3JldHVybiBWaShpLGUsZnVuY3Rpb24oKXtyZXR1cm4gaS5jb21wbGV0ZSgpfSx0KX0sZnVuY3Rpb24oYSl7cmV0dXJuIFZpKGksZSxmdW5jdGlvbigpe3JldHVybiBpLmVycm9yKGEpfSx0KX0pKX0pfXZhciBZaD1wKCgpPT57YzMoKTtqaSgpO0hhKCl9KTtmdW5jdGlvbiB4NShlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0wKSxfcihmdW5jdGlvbihyLGkpe2kuYWRkKGUuc2NoZWR1bGUoZnVuY3Rpb24oKXtyZXR1cm4gci5zdWJzY3JpYmUoaSl9LHQpKX0pfXZhciBaaD1wKCgpPT57amkoKX0pO2Z1bmN0aW9uIHQ4ZShlLHQpe3JldHVybiB6MShlKS5waXBlKHg1KHQpLHY1KHQpKX12YXIgcjhlPXAoKCk9PntvbygpO1loKCk7WmgoKX0pO2Z1bmN0aW9uIGk4ZShlLHQpe3JldHVybiB6MShlKS5waXBlKHg1KHQpLHY1KHQpKX12YXIgYThlPXAoKCk9PntvbygpO1loKCk7WmgoKX0pO2Z1bmN0aW9uIG44ZShlLHQpe3JldHVybiBuZXcgSHQoZnVuY3Rpb24ocil7dmFyIGk9MDtyZXR1cm4gdC5zY2hlZHVsZShmdW5jdGlvbigpe2k9PT1lLmxlbmd0aD9yLmNvbXBsZXRlKCk6KHIubmV4dChlW2krK10pLHIuY2xvc2VkfHx0aGlzLnNjaGVkdWxlKCkpfSl9KX12YXIgbzhlPXAoKCk9PntobigpfSk7ZnVuY3Rpb24gczhlKGUsdCl7cmV0dXJuIG5ldyBIdChmdW5jdGlvbihyKXt2YXIgaTtyZXR1cm4gVmkocix0LGZ1bmN0aW9uKCl7aT1lW0l2XSgpLFZpKHIsdCxmdW5jdGlvbigpe3ZhciBhLG4sbzt0cnl7YT1pLm5leHQoKSxuPWEudmFsdWUsbz1hLmRvbmV9Y2F0Y2gocyl7ci5lcnJvcihzKTtyZXR1cm59bz9yLmNvbXBsZXRlKCk6ci5uZXh0KG4pfSwwLCEwKX0pLGZ1bmN0aW9uKCl7cmV0dXJuIFR0KGk/LnJldHVybikmJmkucmV0dXJuKCl9fSl9dmFyIGw4ZT1wKCgpPT57aG4oKTt6TygpO0NpKCk7YzMoKX0pO2Z1bmN0aW9uIFJ2KGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJJdGVyYWJsZSBjYW5ub3QgYmUgbnVsbCIpO3JldHVybiBuZXcgSHQoZnVuY3Rpb24ocil7Vmkocix0LGZ1bmN0aW9uKCl7dmFyIGk9ZVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtWaShyLHQsZnVuY3Rpb24oKXtpLm5leHQoKS50aGVuKGZ1bmN0aW9uKGEpe2EuZG9uZT9yLmNvbXBsZXRlKCk6ci5uZXh0KGEudmFsdWUpfSl9LDAsITApfSl9KX12YXIgVE89cCgoKT0+e2huKCk7YzMoKX0pO2Z1bmN0aW9uIGM4ZShlLHQpe3JldHVybiBSdihOdihlKSx0KX12YXIgZDhlPXAoKCk9PntUTygpO092KCl9KTtmdW5jdGlvbiBfTyhlLHQpe2lmKGUhPW51bGwpe2lmKER2KGUpKXJldHVybiB0OGUoZSx0KTtpZihiNShlKSlyZXR1cm4gbjhlKGUsdCk7aWYoQXYoZSkpcmV0dXJuIGk4ZShlLHQpO2lmKEV2KGUpKXJldHVybiBSdihlLHQpO2lmKFB2KGUpKXJldHVybiBzOGUoZSx0KTtpZihGdihlKSlyZXR1cm4gYzhlKGUsdCl9dGhyb3cgJHYoZSl9dmFyIExPPXAoKCk9PntyOGUoKTthOGUoKTtvOGUoKTtsOGUoKTtUTygpO01PKCk7d08oKTtMdigpO0NPKCk7a08oKTtTTygpO092KCk7ZDhlKCl9KTtmdW5jdGlvbiBkMyhlLHQpe3JldHVybiB0P19PKGUsdCk6ejEoZSl9dmFyIEJ2PXAoKCk9PntMTygpO29vKCl9KTtmdW5jdGlvbiBYaCgpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt2YXIgcj1xYyhlKTtyZXR1cm4gZDMoZSxyKX12YXIgQU89cCgoKT0+e0doKCk7QnYoKX0pO2Z1bmN0aW9uIERPKGUsdCl7dmFyIHI9VHQoZSk/ZTpmdW5jdGlvbigpe3JldHVybiBlfSxpPWZ1bmN0aW9uKGEpe3JldHVybiBhLmVycm9yKHIoKSl9O3JldHVybiBuZXcgSHQodD9mdW5jdGlvbihhKXtyZXR1cm4gdC5zY2hlZHVsZShpLDAsYSl9OmkpfXZhciBFTz1wKCgpPT57aG4oKTtDaSgpfSk7ZnVuY3Rpb24gZnByKGUsdCl7dmFyIHIsaSxhLG49ZSxvPW4ua2luZCxzPW4udmFsdWUsbD1uLmVycm9yO2lmKHR5cGVvZiBvIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIG5vdGlmaWNhdGlvbiwgbWlzc2luZyAia2luZCInKTtvPT09Ik4iPyhyPXQubmV4dCk9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNhbGwodCxzKTpvPT09IkUiPyhpPXQuZXJyb3IpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5jYWxsKHQsbCk6KGE9dC5jb21wbGV0ZSk9PT1udWxsfHxhPT09dm9pZCAwfHxhLmNhbGwodCl9dmFyICRPLHU4ZSxwOGU9cCgoKT0+e1R2KCk7QU8oKTtFTygpO0NpKCk7KGZ1bmN0aW9uKGUpe2UuTkVYVD0iTiIsZS5FUlJPUj0iRSIsZS5DT01QTEVURT0iQyJ9KSgkT3x8KCRPPXt9KSk7dThlPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyLGkpe3RoaXMua2luZD10LHRoaXMudmFsdWU9cix0aGlzLmVycm9yPWksdGhpcy5oYXNWYWx1ZT10PT09Ik4ifXJldHVybiBlLnByb3RvdHlwZS5vYnNlcnZlPWZ1bmN0aW9uKHQpe3JldHVybiBmcHIodGhpcyx0KX0sZS5wcm90b3R5cGUuZG89ZnVuY3Rpb24odCxyLGkpe3ZhciBhPXRoaXMsbj1hLmtpbmQsbz1hLnZhbHVlLHM9YS5lcnJvcjtyZXR1cm4gbj09PSJOIj90Py4obyk6bj09PSJFIj9yPy4ocyk6aT8uKCl9LGUucHJvdG90eXBlLmFjY2VwdD1mdW5jdGlvbih0LHIsaSl7dmFyIGE7cmV0dXJuIFR0KChhPXQpPT09bnVsbHx8YT09PXZvaWQgMD92b2lkIDA6YS5uZXh0KT90aGlzLm9ic2VydmUodCk6dGhpcy5kbyh0LHIsaSl9LGUucHJvdG90eXBlLnRvT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMscj10LmtpbmQsaT10LnZhbHVlLGE9dC5lcnJvcixuPXI9PT0iTiI/WGgoaSk6cj09PSJFIj9ETyhmdW5jdGlvbigpe3JldHVybiBhfSk6cj09PSJDIj9DdjowO2lmKCFuKXRocm93IG5ldyBUeXBlRXJyb3IoIlVuZXhwZWN0ZWQgbm90aWZpY2F0aW9uIGtpbmQgIityKTtyZXR1cm4gbn0sZS5jcmVhdGVOZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSgiTiIsdCl9LGUuY3JlYXRlRXJyb3I9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKCJFIix2b2lkIDAsdCl9LGUuY3JlYXRlQ29tcGxldGU9ZnVuY3Rpb24oKXtyZXR1cm4gZS5jb21wbGV0ZU5vdGlmaWNhdGlvbn0sZS5jb21wbGV0ZU5vdGlmaWNhdGlvbj1uZXcgZSgiQyIpLGV9KSgpfSk7dmFyIGg4ZT1wKCgpPT57fSk7dmFyIG1wcixmOGU9cCgoKT0+e0hjKCk7bXByPXBuKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe2UodGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRzIGluIHNlcXVlbmNlIn19KX0pO3ZhciBtOGU9cCgoKT0+e30pO3ZhciBnOGU9cCgoKT0+e30pO3ZhciBncHIsYjhlPXAoKCk9PntIYygpO2dwcj1wbihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtlKHRoaXMpLHRoaXMubmFtZT0iQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLHRoaXMubWVzc2FnZT0iYXJndW1lbnQgb3V0IG9mIHJhbmdlIn19KX0pO3ZhciBicHIsdjhlPXAoKCk9PntIYygpO2Jwcj1wbihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocil7ZSh0aGlzKSx0aGlzLm5hbWU9Ik5vdEZvdW5kRXJyb3IiLHRoaXMubWVzc2FnZT1yfX0pfSk7dmFyIHZwcix4OGU9cCgoKT0+e0hjKCk7dnByPXBuKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihyKXtlKHRoaXMpLHRoaXMubmFtZT0iU2VxdWVuY2VFcnJvciIsdGhpcy5tZXNzYWdlPXJ9fSl9KTtmdW5jdGlvbiBIdihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihlKX12YXIgSU89cCgoKT0+e30pO2Z1bmN0aW9uIHc4ZShlLHQpe3ZhciByPUh2KGUpP3tmaXJzdDplfTp0eXBlb2YgZT09Im51bWJlciI/e2VhY2g6ZX06ZSxpPXIuZmlyc3QsYT1yLmVhY2gsbj1yLndpdGgsbz1uPT09dm9pZCAwP3hwcjpuLHM9ci5zY2hlZHVsZXIsbD1zPT09dm9pZCAwP3Q/P0cyOnMsYz1yLm1ldGEsdT1jPT09dm9pZCAwP251bGw6YztpZihpPT1udWxsJiZhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vIHRpbWVvdXQgcHJvdmlkZWQuIik7cmV0dXJuIF9yKGZ1bmN0aW9uKGQsaCl7dmFyIGYseCx2PW51bGwsYj0wLHk9ZnVuY3Rpb24odyl7eD1WaShoLGwsZnVuY3Rpb24oKXt0cnl7Zi51bnN1YnNjcmliZSgpLHoxKG8oe21ldGE6dSxsYXN0VmFsdWU6dixzZWVuOmJ9KSkuc3Vic2NyaWJlKGgpfWNhdGNoKGspe2guZXJyb3Ioayl9fSx3KX07Zj1kLnN1YnNjcmliZSh4cihoLGZ1bmN0aW9uKHcpe3g/LnVuc3Vic2NyaWJlKCksYisrLGgubmV4dCh2PXcpLGE+MCYmeShhKX0sdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3g/LmNsb3NlZHx8eD8udW5zdWJzY3JpYmUoKSx2PW51bGx9KSksIWImJnkoaSE9bnVsbD90eXBlb2YgaT09Im51bWJlciI/aToraS1sLm5vdygpOmEpfSl9ZnVuY3Rpb24geHByKGUpe3Rocm93IG5ldyB5OGUoZSl9dmFyIHk4ZSxxdj1wKCgpPT57bDMoKTtJTygpO2ppKCk7b28oKTtIYygpO0hhKCk7YzMoKTt5OGU9cG4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3I9PT12b2lkIDAmJihyPW51bGwpLGUodGhpcyksdGhpcy5tZXNzYWdlPSJUaW1lb3V0IGhhcyBvY2N1cnJlZCIsdGhpcy5uYW1lPSJUaW1lb3V0RXJyb3IiLHRoaXMuaW5mbz1yfX0pfSk7ZnVuY3Rpb24gamMoZSx0KXtyZXR1cm4gX3IoZnVuY3Rpb24ocixpKXt2YXIgYT0wO3Iuc3Vic2NyaWJlKHhyKGksZnVuY3Rpb24obil7aS5uZXh0KGUuY2FsbCh0LG4sYSsrKSl9KSl9KX12YXIgUWg9cCgoKT0+e2ppKCk7SGEoKX0pO2Z1bmN0aW9uIHdwcihlLHQpe3JldHVybiB5cHIodCk/ZS5hcHBseSh2b2lkIDAscWkoW10sWDEodCkpKTplKHQpfWZ1bmN0aW9uIE04ZShlKXtyZXR1cm4gamMoZnVuY3Rpb24odCl7cmV0dXJuIHdwcihlLHQpfSl9dmFyIHlwcixrOGU9cCgoKT0+e09yKCk7UWgoKTt5cHI9QXJyYXkuaXNBcnJheX0pO3ZhciBTOGU9cCgoKT0+e30pO3ZhciB6OGU9cCgoKT0+e30pO3ZhciBDOGU9cCgoKT0+e30pO2Z1bmN0aW9uIFQ4ZShlLHQscixpLGEsbixvLHMpe3ZhciBsPVtdLGM9MCx1PTAsZD0hMSxoPWZ1bmN0aW9uKCl7ZCYmIWwubGVuZ3RoJiYhYyYmdC5jb21wbGV0ZSgpfSxmPWZ1bmN0aW9uKHYpe3JldHVybiBjPGk/eCh2KTpsLnB1c2godil9LHg9ZnVuY3Rpb24odil7biYmdC5uZXh0KHYpLGMrKzt2YXIgYj0hMTt6MShyKHYsdSsrKSkuc3Vic2NyaWJlKHhyKHQsZnVuY3Rpb24oeSl7YT8uKHkpLG4/Zih5KTp0Lm5leHQoeSl9LGZ1bmN0aW9uKCl7Yj0hMH0sdm9pZCAwLGZ1bmN0aW9uKCl7aWYoYil0cnl7Yy0tO2Zvcih2YXIgeT1mdW5jdGlvbigpe3ZhciB3PWwuc2hpZnQoKTtvP1ZpKHQsbyxmdW5jdGlvbigpe3JldHVybiB4KHcpfSk6eCh3KX07bC5sZW5ndGgmJmM8aTspeSgpO2goKX1jYXRjaCh3KXt0LmVycm9yKHcpfX0pKX07cmV0dXJuIGUuc3Vic2NyaWJlKHhyKHQsZixmdW5jdGlvbigpe2Q9ITAsaCgpfSkpLGZ1bmN0aW9uKCl7cz8uKCl9fXZhciBfOGU9cCgoKT0+e29vKCk7YzMoKTtIYSgpfSk7ZnVuY3Rpb24gdTMoZSx0LHIpe3JldHVybiByPT09dm9pZCAwJiYocj0xLzApLFR0KHQpP3UzKGZ1bmN0aW9uKGksYSl7cmV0dXJuIGpjKGZ1bmN0aW9uKG4sbyl7cmV0dXJuIHQoaSxuLGEsbyl9KSh6MShlKGksYSkpKX0scik6KHR5cGVvZiB0PT0ibnVtYmVyIiYmKHI9dCksX3IoZnVuY3Rpb24oaSxhKXtyZXR1cm4gVDhlKGksYSxlLHIpfSkpfXZhciBKaD1wKCgpPT57UWgoKTtvbygpO2ppKCk7XzhlKCk7Q2koKX0pO2Z1bmN0aW9uIGp2KGUpe3JldHVybiBlPT09dm9pZCAwJiYoZT0xLzApLHUzKEhoLGUpfXZhciBWdj1wKCgpPT57SmgoKTt3digpfSk7ZnVuY3Rpb24gVXYoKXtyZXR1cm4ganYoMSl9dmFyIFd2PXAoKCk9PntWdigpfSk7ZnVuY3Rpb24gR3YoKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07cmV0dXJuIFV2KCkoZDMoZSxxYyhlKSkpfXZhciBQTz1wKCgpPT57V3YoKTtHaCgpO0J2KCl9KTt2YXIgTDhlPXAoKCk9Pnt9KTt2YXIgQThlPXAoKCk9Pnt9KTt2YXIgRDhlPXAoKCk9Pnt9KTtmdW5jdGlvbiBwMyhlLHQscixpKXtpZihUdChyKSYmKGk9cixyPXZvaWQgMCksaSlyZXR1cm4gcDMoZSx0LHIpLnBpcGUoTThlKGkpKTt2YXIgYT1YMShUcHIoZSk/a3ByLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIGVbc10odCxsLHIpfX0pOnpwcihlKT9NcHIubWFwKEU4ZShlLHQpKTpDcHIoZSk/U3ByLm1hcChFOGUoZSx0KSk6W10sMiksbj1hWzBdLG89YVsxXTtpZighbiYmYjUoZSkpcmV0dXJuIHUzKGZ1bmN0aW9uKHMpe3JldHVybiBwMyhzLHQscil9KSh6MShlKSk7aWYoIW4pdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBldmVudCB0YXJnZXQiKTtyZXR1cm4gbmV3IEh0KGZ1bmN0aW9uKHMpe3ZhciBsPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPVtdLHU9MDt1PGFyZ3VtZW50cy5sZW5ndGg7dSsrKWNbdV09YXJndW1lbnRzW3VdO3JldHVybiBzLm5leHQoMTxjLmxlbmd0aD9jOmNbMF0pfTtyZXR1cm4gbihsKSxmdW5jdGlvbigpe3JldHVybiBvKGwpfX0pfWZ1bmN0aW9uIEU4ZShlLHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIGVbcl0odCxpKX19fWZ1bmN0aW9uIHpwcihlKXtyZXR1cm4gVHQoZS5hZGRMaXN0ZW5lcikmJlR0KGUucmVtb3ZlTGlzdGVuZXIpfWZ1bmN0aW9uIENwcihlKXtyZXR1cm4gVHQoZS5vbikmJlR0KGUub2ZmKX1mdW5jdGlvbiBUcHIoZSl7cmV0dXJuIFR0KGUuYWRkRXZlbnRMaXN0ZW5lcikmJlR0KGUucmVtb3ZlRXZlbnRMaXN0ZW5lcil9dmFyIE1wcixrcHIsU3ByLCQ4ZT1wKCgpPT57T3IoKTtvbygpO2huKCk7SmgoKTtMdigpO0NpKCk7azhlKCk7TXByPVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLGtwcj1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sU3ByPVsib24iLCJvZmYiXX0pO3ZhciBJOGU9cCgoKT0+e30pO3ZhciBQOGU9cCgoKT0+e30pO3ZhciBOOGU9cCgoKT0+e30pO2Z1bmN0aW9uIE5PKGUsdCxyKXtlPT09dm9pZCAwJiYoZT0wKSxyPT09dm9pZCAwJiYocj1oTyk7dmFyIGk9LTE7cmV0dXJuIHQhPW51bGwmJihfdih0KT9yPXQ6aT10KSxuZXcgSHQoZnVuY3Rpb24oYSl7dmFyIG49SHYoZSk/K2Utci5ub3coKTplO248MCYmKG49MCk7dmFyIG89MDtyZXR1cm4gci5zY2hlZHVsZShmdW5jdGlvbigpe2EuY2xvc2VkfHwoYS5uZXh0KG8rKyksMDw9aT90aGlzLnNjaGVkdWxlKHZvaWQgMCxpKTphLmNvbXBsZXRlKCkpfSxuKX0pfXZhciBGTz1wKCgpPT57aG4oKTtsMygpO3hPKCk7SU8oKX0pO3ZhciBGOGU9cCgoKT0+e30pO3ZhciBPOGU9cCgoKT0+e30pO2Z1bmN0aW9uIF9wcigpe3JldHVybiBSOGV9dmFyIFI4ZSxPTz1wKCgpPT57aG4oKTthMygpO1I4ZT1uZXcgSHQobm8pfSk7dmFyIEI4ZT1wKCgpPT57fSk7dmFyIEg4ZT1wKCgpPT57fSk7ZnVuY3Rpb24gWXYoZSx0KXtyZXR1cm4gX3IoZnVuY3Rpb24ocixpKXt2YXIgYT0wO3Iuc3Vic2NyaWJlKHhyKGksZnVuY3Rpb24obil7cmV0dXJuIGUuY2FsbCh0LG4sYSsrKSYmaS5uZXh0KG4pfSkpfSl9dmFyIFJPPXAoKCk9PntqaSgpO0hhKCl9KTt2YXIgcThlPXAoKCk9Pnt9KTt2YXIgajhlPXAoKCk9Pnt9KTt2YXIgVjhlPXAoKCk9Pnt9KTt2YXIgVThlPXAoKCk9Pnt9KTt2YXIgVzhlPXAoKCk9Pnt9KTt2YXIgRzhlPXAoKCk9Pnt9KTt2YXIgQk89cCgoKT0+e30pO3ZhciBITz1wKCgpPT57fSk7ZnVuY3Rpb24gWnYoZSl7cmV0dXJuIF9yKGZ1bmN0aW9uKHQscil7dmFyIGk9W107cmV0dXJuIHQuc3Vic2NyaWJlKHhyKHIsZnVuY3Rpb24oYSl7cmV0dXJuIGkucHVzaChhKX0sZnVuY3Rpb24oKXtyLm5leHQoaSksci5jb21wbGV0ZSgpfSkpLHoxKGUpLnN1YnNjcmliZSh4cihyLGZ1bmN0aW9uKCl7dmFyIGE9aTtpPVtdLHIubmV4dChhKX0sbm8pKSxmdW5jdGlvbigpe2k9bnVsbH19KX12YXIgcU89cCgoKT0+e2ppKCk7YTMoKTtIYSgpO29vKCl9KTtmdW5jdGlvbiBYdihlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD1udWxsKSx0PXQ/P2UsX3IoZnVuY3Rpb24ocixpKXt2YXIgYT1bXSxuPTA7ci5zdWJzY3JpYmUoeHIoaSxmdW5jdGlvbihvKXt2YXIgcyxsLGMsdSxkPW51bGw7bisrJXQ9PT0wJiZhLnB1c2goW10pO3RyeXtmb3IodmFyIGg9bGEoYSksZj1oLm5leHQoKTshZi5kb25lO2Y9aC5uZXh0KCkpe3ZhciB4PWYudmFsdWU7eC5wdXNoKG8pLGU8PXgubGVuZ3RoJiYoZD1kPz9bXSxkLnB1c2goeCkpfX1jYXRjaCh5KXtzPXtlcnJvcjp5fX1maW5hbGx5e3RyeXtmJiYhZi5kb25lJiYobD1oLnJldHVybikmJmwuY2FsbChoKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19aWYoZCl0cnl7Zm9yKHZhciB2PWxhKGQpLGI9di5uZXh0KCk7IWIuZG9uZTtiPXYubmV4dCgpKXt2YXIgeD1iLnZhbHVlO0pvKGEseCksaS5uZXh0KHgpfX1jYXRjaCh5KXtjPXtlcnJvcjp5fX1maW5hbGx5e3RyeXtiJiYhYi5kb25lJiYodT12LnJldHVybikmJnUuY2FsbCh2KX1maW5hbGx5e2lmKGMpdGhyb3cgYy5lcnJvcn19fSxmdW5jdGlvbigpe3ZhciBvLHM7dHJ5e2Zvcih2YXIgbD1sYShhKSxjPWwubmV4dCgpOyFjLmRvbmU7Yz1sLm5leHQoKSl7dmFyIHU9Yy52YWx1ZTtpLm5leHQodSl9fWNhdGNoKGQpe289e2Vycm9yOmR9fWZpbmFsbHl7dHJ5e2MmJiFjLmRvbmUmJihzPWwucmV0dXJuKSYmcy5jYWxsKGwpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1pLmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe2E9bnVsbH0pKX0pfXZhciBqTz1wKCgpPT57T3IoKTtqaSgpO0hhKCk7dTUoKX0pO2Z1bmN0aW9uIFF2KGUpe2Zvcih2YXIgdCxyLGk9W10sYT0xO2E8YXJndW1lbnRzLmxlbmd0aDthKyspaVthLTFdPWFyZ3VtZW50c1thXTt2YXIgbj0odD1xYyhpKSkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6RzIsbz0ocj1pWzBdKSE9PW51bGwmJnIhPT12b2lkIDA/cjpudWxsLHM9aVsxXXx8MS8wO3JldHVybiBfcihmdW5jdGlvbihsLGMpe3ZhciB1PVtdLGQ9ITEsaD1mdW5jdGlvbih2KXt2YXIgYj12LmJ1ZmZlcix5PXYuc3Viczt5LnVuc3Vic2NyaWJlKCksSm8odSx2KSxjLm5leHQoYiksZCYmZigpfSxmPWZ1bmN0aW9uKCl7aWYodSl7dmFyIHY9bmV3IE8xO2MuYWRkKHYpO3ZhciBiPVtdLHk9e2J1ZmZlcjpiLHN1YnM6dn07dS5wdXNoKHkpLFZpKHYsbixmdW5jdGlvbigpe3JldHVybiBoKHkpfSxlKX19O28hPT1udWxsJiZvPj0wP1ZpKGMsbixmLG8sITApOmQ9ITAsZigpO3ZhciB4PXhyKGMsZnVuY3Rpb24odil7dmFyIGIseSx3PXUuc2xpY2UoKTt0cnl7Zm9yKHZhciBrPWxhKHcpLE89ay5uZXh0KCk7IU8uZG9uZTtPPWsubmV4dCgpKXt2YXIgej1PLnZhbHVlLE09ei5idWZmZXI7TS5wdXNoKHYpLHM8PU0ubGVuZ3RoJiZoKHopfX1jYXRjaChGKXtiPXtlcnJvcjpGfX1maW5hbGx5e3RyeXtPJiYhTy5kb25lJiYoeT1rLnJldHVybikmJnkuY2FsbChrKX1maW5hbGx5e2lmKGIpdGhyb3cgYi5lcnJvcn19fSxmdW5jdGlvbigpe2Zvcig7dT8ubGVuZ3RoOyljLm5leHQodS5zaGlmdCgpLmJ1ZmZlcik7eD8udW5zdWJzY3JpYmUoKSxjLmNvbXBsZXRlKCksYy51bnN1YnNjcmliZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gdT1udWxsfSk7bC5zdWJzY3JpYmUoeCl9KX12YXIgVk89cCgoKT0+e09yKCk7VzIoKTtqaSgpO0hhKCk7dTUoKTtsMygpO0doKCk7YzMoKX0pO3ZhciBVTz1wKCgpPT57fSk7dmFyIFdPPXAoKCk9Pnt9KTt2YXIgR089cCgoKT0+e30pO3ZhciBZTz1wKCgpPT57fSk7dmFyIFpPPXAoKCk9Pnt9KTt2YXIgWE89cCgoKT0+e30pO3ZhciBRTz1wKCgpPT57fSk7dmFyIFk4ZT1wKCgpPT57fSk7dmFyIEpPPXAoKCk9Pnt9KTt2YXIgS089cCgoKT0+e30pO3ZhciBlUj1wKCgpPT57fSk7dmFyIFo4ZT1wKCgpPT57fSk7dmFyIHRSPXAoKCk9Pnt9KTt2YXIgclI9cCgoKT0+e30pO3ZhciBpUj1wKCgpPT57fSk7ZnVuY3Rpb24gSnYoZSl7cmV0dXJuIF9yKGZ1bmN0aW9uKHQscil7dmFyIGk9ITEsYT1udWxsLG49bnVsbCxvPWZ1bmN0aW9uKCl7aWYobj8udW5zdWJzY3JpYmUoKSxuPW51bGwsaSl7aT0hMTt2YXIgcz1hO2E9bnVsbCxyLm5leHQocyl9fTt0LnN1YnNjcmliZSh4cihyLGZ1bmN0aW9uKHMpe24/LnVuc3Vic2NyaWJlKCksaT0hMCxhPXMsbj14cihyLG8sbm8pLHoxKGUocykpLnN1YnNjcmliZShuKX0sZnVuY3Rpb24oKXtvKCksci5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXthPW49bnVsbH0pKX0pfXZhciBhUj1wKCgpPT57amkoKTthMygpO0hhKCk7b28oKX0pO2Z1bmN0aW9uIEt2KGUsdCl7cmV0dXJuIHQ9PT12b2lkIDAmJih0PUcyKSxfcihmdW5jdGlvbihyLGkpe3ZhciBhPW51bGwsbj1udWxsLG89bnVsbCxzPWZ1bmN0aW9uKCl7aWYoYSl7YS51bnN1YnNjcmliZSgpLGE9bnVsbDt2YXIgYz1uO249bnVsbCxpLm5leHQoYyl9fTtmdW5jdGlvbiBsKCl7dmFyIGM9bytlLHU9dC5ub3coKTtpZih1PGMpe2E9dGhpcy5zY2hlZHVsZSh2b2lkIDAsYy11KSxpLmFkZChhKTtyZXR1cm59cygpfXIuc3Vic2NyaWJlKHhyKGksZnVuY3Rpb24oYyl7bj1jLG89dC5ub3coKSxhfHwoYT10LnNjaGVkdWxlKGwsZSksaS5hZGQoYSkpfSxmdW5jdGlvbigpe3MoKSxpLmNvbXBsZXRlKCl9LHZvaWQgMCxmdW5jdGlvbigpe249YT1udWxsfSkpfSl9dmFyIG5SPXAoKCk9PntsMygpO2ppKCk7SGEoKX0pO3ZhciBvUj1wKCgpPT57fSk7dmFyIHNSPXAoKCk9Pnt9KTt2YXIgbFI9cCgoKT0+e30pO3ZhciBjUj1wKCgpPT57fSk7dmFyIGRSPXAoKCk9Pnt9KTt2YXIgdVI9cCgoKT0+e30pO3ZhciBwUj1wKCgpPT57fSk7dmFyIGhSPXAoKCk9Pnt9KTt2YXIgZlI9cCgoKT0+e30pO3ZhciBtUj1wKCgpPT57fSk7dmFyIGdSPXAoKCk9Pnt9KTt2YXIgYlI9cCgoKT0+e30pO3ZhciB2Uj1wKCgpPT57fSk7dmFyIHhSPXAoKCk9Pnt9KTt2YXIgeVI9cCgoKT0+e30pO3ZhciB3Uj1wKCgpPT57fSk7dmFyIE1SPXAoKCk9Pnt9KTt2YXIga1I9cCgoKT0+e30pO3ZhciBTUj1wKCgpPT57fSk7dmFyIHpSPXAoKCk9Pnt9KTt2YXIgQ1I9cCgoKT0+e30pO3ZhciBUUj1wKCgpPT57fSk7dmFyIF9SPXAoKCk9Pnt9KTt2YXIgTFI9cCgoKT0+e30pO3ZhciBBUj1wKCgpPT57fSk7dmFyIERSPXAoKCk9Pnt9KTt2YXIgRVI9cCgoKT0+e30pO3ZhciAkUj1wKCgpPT57fSk7dmFyIElSPXAoKCk9Pnt9KTt2YXIgUFI9cCgoKT0+e30pO3ZhciBOUj1wKCgpPT57fSk7dmFyIFg4ZT1wKCgpPT57fSk7dmFyIEZSPXAoKCk9Pnt9KTt2YXIgT1I9cCgoKT0+e30pO3ZhciBSUj1wKCgpPT57fSk7dmFyIEJSPXAoKCk9Pnt9KTt2YXIgSFI9cCgoKT0+e30pO3ZhciBxUj1wKCgpPT57fSk7dmFyIGpSPXAoKCk9Pnt9KTt2YXIgVlI9cCgoKT0+e30pO3ZhciBVUj1wKCgpPT57fSk7dmFyIFdSPXAoKCk9Pnt9KTt2YXIgR1I9cCgoKT0+e30pO3ZhciBZUj1wKCgpPT57fSk7dmFyIFpSPXAoKCk9Pnt9KTt2YXIgWFI9cCgoKT0+e30pO3ZhciBRUj1wKCgpPT57fSk7dmFyIEpSPXAoKCk9Pnt9KTt2YXIgS1I9cCgoKT0+e30pO3ZhciBlQj1wKCgpPT57fSk7dmFyIHRCPXAoKCk9Pnt9KTt2YXIgckI9cCgoKT0+e30pO3ZhciBpQj1wKCgpPT57fSk7dmFyIGFCPXAoKCk9Pnt9KTt2YXIgbkI9cCgoKT0+e30pO3ZhciBvQj1wKCgpPT57fSk7dmFyIHNCPXAoKCk9Pnt9KTt2YXIgbEI9cCgoKT0+e30pO2Z1bmN0aW9uIGV4KCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3ZhciByPXFjKGUpO3JldHVybiBfcihmdW5jdGlvbihpLGEpeyhyP0d2KGUsaSxyKTpHdihlLGkpKS5zdWJzY3JpYmUoYSl9KX12YXIgY0I9cCgoKT0+e1BPKCk7R2goKTtqaSgpfSk7dmFyIGRCPXAoKCk9Pnt9KTt2YXIgdUI9cCgoKT0+e30pO3ZhciBwQj1wKCgpPT57fSk7dmFyIGhCPXAoKCk9Pnt9KTtmdW5jdGlvbiB0eChlKXtyZXR1cm4gX3IoZnVuY3Rpb24odCxyKXt6MShlKS5zdWJzY3JpYmUoeHIocixmdW5jdGlvbigpe3JldHVybiByLmNvbXBsZXRlKCl9LG5vKSksIXIuY2xvc2VkJiZ0LnN1YnNjcmliZShyKX0pfXZhciBmQj1wKCgpPT57amkoKTtIYSgpO29vKCk7YTMoKX0pO3ZhciBtQj1wKCgpPT57fSk7dmFyIGdCPXAoKCk9Pnt9KTtmdW5jdGlvbiByeChlLHQpe3JldHVybiBfcihmdW5jdGlvbihyLGkpe3ZhciBhPXQ/P3t9LG49YS5sZWFkaW5nLG89bj09PXZvaWQgMD8hMDpuLHM9YS50cmFpbGluZyxsPXM9PT12b2lkIDA/ITE6cyxjPSExLHU9bnVsbCxkPW51bGwsaD0hMSxmPWZ1bmN0aW9uKCl7ZD8udW5zdWJzY3JpYmUoKSxkPW51bGwsbCYmKGIoKSxoJiZpLmNvbXBsZXRlKCkpfSx4PWZ1bmN0aW9uKCl7ZD1udWxsLGgmJmkuY29tcGxldGUoKX0sdj1mdW5jdGlvbih5KXtyZXR1cm4gZD16MShlKHkpKS5zdWJzY3JpYmUoeHIoaSxmLHgpKX0sYj1mdW5jdGlvbigpe2lmKGMpe2M9ITE7dmFyIHk9dTt1PW51bGwsaS5uZXh0KHkpLCFoJiZ2KHkpfX07ci5zdWJzY3JpYmUoeHIoaSxmdW5jdGlvbih5KXtjPSEwLHU9eSwhKGQmJiFkLmNsb3NlZCkmJihvP2IoKTp2KHkpKX0sZnVuY3Rpb24oKXtoPSEwLCEobCYmYyYmZCYmIWQuY2xvc2VkKSYmaS5jb21wbGV0ZSgpfSkpfSl9dmFyIGl4PXAoKCk9PntqaSgpO0hhKCk7b28oKX0pO2Z1bmN0aW9uIGF4KGUsdCxyKXt0PT09dm9pZCAwJiYodD1HMik7dmFyIGk9Tk8oZSx0KTtyZXR1cm4gcngoZnVuY3Rpb24oKXtyZXR1cm4gaX0scil9dmFyIGJCPXAoKCk9PntsMygpO2l4KCk7Rk8oKX0pO3ZhciB2Qj1wKCgpPT57fSk7dmFyIHhCPXAoKCk9Pnt9KTt2YXIgeUI9cCgoKT0+e30pO3ZhciB3Qj1wKCgpPT57fSk7dmFyIE1CPXAoKCk9Pnt9KTt2YXIga0I9cCgoKT0+e30pO3ZhciBTQj1wKCgpPT57fSk7dmFyIHpCPXAoKCk9Pnt9KTt2YXIgQ0I9cCgoKT0+e30pO3ZhciBUQj1wKCgpPT57fSk7dmFyIFE4ZT1wKCgpPT57fSk7dmFyIF9CPXAoKCk9Pnt9KTt2YXIgTEI9cCgoKT0+e2huKCk7Q3VlKCk7QmgoKTtMdWUoKTtxaCgpO0R1ZSgpO0V1ZSgpO0l1ZSgpO2p1ZSgpO2wzKCk7R3VlKCk7UXVlKCk7S3VlKCk7dU8oKTtXMigpO3l2KCk7cDhlKCk7S0YoKTthMygpO3d2KCk7aDhlKCk7bThlKCk7ZzhlKCk7YjhlKCk7ZjhlKCk7djhlKCk7YU8oKTt4OGUoKTtxdigpO1VGKCk7UzhlKCk7ejhlKCk7QzhlKCk7UE8oKTtBOGUoKTtMOGUoKTtUdigpO0Q4ZSgpO0J2KCk7JDhlKCk7SThlKCk7UDhlKCk7TjhlKCk7RjhlKCk7TzhlKCk7T08oKTtBTygpO0I4ZSgpO0g4ZSgpO3E4ZSgpO2o4ZSgpO1Y4ZSgpO0VPKCk7Rk8oKTtVOGUoKTtXOGUoKTtMTygpO1R2KCk7T08oKTtHOGUoKTtwNSgpO0JPKCk7SE8oKTtxTygpO2pPKCk7Vk8oKTtVTygpO1dPKCk7R08oKTtRTygpO1hPKCk7Sk8oKTtXdigpO0tPKCk7ZVIoKTt0UigpO3JSKCk7aVIoKTthUigpO25SKCk7b1IoKTt1UigpO2RSKCk7cFIoKTtoUigpO2ZSKCk7bVIoKTtiUigpO3ZSKCk7eFIoKTtNUigpO3dSKCk7eVIoKTtrUigpO1JPKCk7U1IoKTt6UigpO0NSKCk7VFIoKTtfUigpO2xSKCk7TFIoKTtEUigpO1FoKCk7Y1IoKTtFUigpOyRSKCk7VnYoKTtJUigpO0poKCk7UFIoKTtOUigpO0ZSKCk7T1IoKTtSUigpO1loKCk7QlIoKTtIUigpO3FSKCk7alIoKTtWUigpO1VSKCk7V1IoKTtHUigpO1lPKCk7WVIoKTtaUigpO1hSKCk7UVIoKTtrdigpO0pSKCk7S1IoKTtlQigpO3RCKCk7ckIoKTtpQigpO2FCKCk7bkIoKTtvQigpO3NCKCk7bEIoKTtjQigpO1poKCk7dUIoKTtkQigpO3BCKCk7aEIoKTtzUigpO0FSKCk7ZkIoKTttQigpO2dCKCk7aXgoKTtiQigpO2dSKCk7dkIoKTtxdigpO3hCKCk7eUIoKTtaTygpO3dCKCk7TUIoKTtrQigpO1NCKCk7ekIoKTtDQigpO1RCKCk7X0IoKX0pO3ZhciBKOGU9cCgoKT0+e30pO3ZhciBLOGU9cCgoKT0+e30pO3ZhciBlcGU9cCgoKT0+e0JPKCk7SE8oKTtxTygpO2pPKCk7Vk8oKTtVTygpO1dPKCk7R08oKTtRTygpO1hPKCk7WThlKCk7Sk8oKTtaOGUoKTtXdigpO0tPKCk7ZVIoKTt0UigpO3JSKCk7aVIoKTthUigpO25SKCk7b1IoKTt1UigpO2RSKCk7cFIoKTtoUigpO2ZSKCk7bVIoKTtiUigpO3ZSKCk7eFIoKTtNUigpO3dSKCk7eVIoKTtrUigpO1JPKCk7U1IoKTt6UigpO0NSKCk7VFIoKTtfUigpO2xSKCk7TFIoKTtEUigpO1FoKCk7Y1IoKTtFUigpOyRSKCk7WDhlKCk7VnYoKTtJUigpO0poKCk7UFIoKTtOUigpO0ZSKCk7T1IoKTtSUigpO1loKCk7QlIoKTtIUigpO0o4ZSgpO3FSKCk7alIoKTtWUigpO1VSKCk7V1IoKTtLOGUoKTtHUigpO1lPKCk7WVIoKTtaUigpO1hSKCk7UVIoKTtrdigpO0pSKCk7S1IoKTtlQigpO3RCKCk7ckIoKTtpQigpO2FCKCk7bkIoKTtvQigpO3NCKCk7bEIoKTtjQigpO1poKCk7dUIoKTtkQigpO3BCKCk7aEIoKTtzUigpO0FSKCk7ZkIoKTttQigpO2dCKCk7aXgoKTtiQigpO2dSKCk7dkIoKTtxdigpO3hCKCk7eUIoKTtaTygpO3dCKCk7TUIoKTtrQigpO1NCKCk7ekIoKTtDQigpO1E4ZSgpO1RCKCk7X0IoKX0pO3ZhciB5NT17fTtGZSh5NSx7T2JzZXJ2YWJsZTooKT0+SHQsUmVwbGF5U3ViamVjdDooKT0+U3YsU3ViamVjdDooKT0+Zm4sU3Vic2NyaXB0aW9uOigpPT5PMSxmcm9tOigpPT5kMyxmcm9tRXZlbnQ6KCk9PnAzLG9mOigpPT5YaCxvcHM6KCk9PmNmcn0pO3ZhciBjZnIsbng9cCgoKT0+e0xCKCk7ZXBlKCk7Y2ZyPXtidWZmZXI6WnYsYnVmZmVyQ291bnQ6WHYsYnVmZmVyVGltZTpRdixkZWJvdW5jZTpKdixkZWJvdW5jZVRpbWU6S3YsZmlsdGVyOll2LG1hcDpqYyxzdGFydFdpdGg6ZXgsdGFrZVVudGlsOnR4LHRocm90dGxlVGltZTpheH19KTt2YXIgQUIsdHBlPXAoKCk9PnttdigpO254KCk7QUI9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheT1uZXcgQXJyYXksdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheT1uZXcgQXJyYXl9Z2V0U3ViamVjdEZvckVtaXR0ZXJFdmVudCh0LHIpe2xldCBpPXRoaXMub2JzZXJ2YWJsZUV2ZW50RW1pdHRlckJ1bmRsZUFycmF5LmZpbmQoYT0+YS5ldmVudFJlZj09PXQmJmEuZXZlbnQ9PT1yKTtpZihpKXJldHVybiBpLnN1YmplY3Q7e2xldCBhPXAzKHQsciksbj1uZXcgZm47YS5zdWJzY3JpYmUobik7bGV0IG89e3N1YmplY3Q6bixldmVudFJlZjp0LGV2ZW50OnJ9O3JldHVybiB0aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5wdXNoKG8pLG8uc3ViamVjdH19Z2V0U3ViamVjdEZvckV2ZW50VGFyZ2V0KHQscil7bGV0IGk9dGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5maW5kKGE9PmEuZXZlbnRSZWY9PT10JiZhLmV2ZW50PT09cik7aWYoaSlyZXR1cm4gaS5zdWJqZWN0O3tsZXQgbj17c3ViamVjdDpuZXcgZm4sZXZlbnRSZWY6dCxldmVudDpyfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRUYXJnZXRCdW5kbGVBcnJheS5wdXNoKG4pLG4uc3ViamVjdH19fX0pO3ZhciBEQixycGU9cCgoKT0+e212KCk7bngoKTtEQj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucz17bmV4dDp0PT57fSxjb21wbGV0ZTp0PT57fX0sdGhpcy5nZW5lcmF0b3I9bnVsbCx0aGlzLmJ1ZmZlcmVkPSExLHRoaXMucGF5bG9hZEJ1ZmZlcj1bXSx0aGlzLm9ic2VydmFibGU9bmV3IEh0KHQ9Pnt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMubmV4dD0oLi4ucik9PnQubmV4dChyKSx0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMuY29tcGxldGU9KCk9Pih0aGlzLmNvbXBsZXRlZERlZmZlcmVkLnJlc29sdmUoKSx0LmNvbXBsZXRlKCkpfSksdGhpcy5jb21wbGV0ZWREZWZmZXJlZD1LZS5kZWZlcigpLHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZmVyZWQucHJvbWlzZX1zZXRPYnNlcnZhYmxlKHQpe3RoaXMub2JzZXJ2YWJsZT10fXB1c2godCl7dGhpcy5idWZmZXJlZD90aGlzLnBheWxvYWRCdWZmZXIucHVzaCh0KTp0aGlzLmludGVybmFsUHVzaCh0KX1wdXNoTWFueSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLnB1c2gocil9c2V0R2VuZXJhdG9yKHQpe3RoaXMuZ2VuZXJhdG9yPXR9bWFrZUJ1ZmZlcmVkKCl7dGhpcy5idWZmZXJlZD0hMH1zdWJzY3JpYmUoLi4udCl7cmV0dXJuIHRoaXMub2JzZXJ2YWJsZS5zdWJzY3JpYmUoLi4udCl9cmVxdWVzdCh0KXtpZih0IT09MClmb3IobGV0IHI9MDtyIT09dDtyKyspaWYodGhpcy5wYXlsb2FkQnVmZmVyLmxlbmd0aD4wKXRoaXMuaW50ZXJuYWxQdXNoKHRoaXMucGF5bG9hZEJ1ZmZlci5zaGlmdCgpKTtlbHNle2xldCBpPXRoaXMuZ2VuZXJhdG9yLm5leHQoKTt0aGlzLmludGVybmFsUHVzaChpLnZhbHVlKX19c2lnbmFsQ29tcGxldGUoKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnMuY29tcGxldGUoKX1pbnRlcm5hbFB1c2godCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQodCl9fX0pO2Z1bmN0aW9uIGRmcihlKXtyZXR1cm4gbmV3IEh0KHQ9PntsZXQgcj0oKT0+ZS5wYXVzZSgpLGk9KCk9PnByb2Nlc3MubmV4dFRpY2soKCk9PmUucmVzdW1lKCkpLGE9bj0+e3IoKSx0Lm5leHQobiksaSgpfTtyZXR1cm4gZS5vbigiZGF0YSIsYSksZS5vbigiZXJyb3IiLG49PnQuZXJyb3IobikpLGUub24oImVuZCIsKCk9PnQuY29tcGxldGUoKSksZS5vbigiY2xvc2UiLCgpPT50LmNvbXBsZXRlKCkpLCgpPT57ZS5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsYSksZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLHQuZXJyb3IpLGUucmVtb3ZlTGlzdGVuZXIoImVuZCIsdC5jb21wbGV0ZSksZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHQuY29tcGxldGUpfX0pfXZhciBpcGU9cCgoKT0+e0xCKCl9KTt2YXIgaXI9e307RmUoaXIse09ic2VydmFibGVJbnRha2U6KCk9PkRCLE9ic2VydmFibGVtYXA6KCk9PkFCLGZyb21TdHJlYW1XaXRoQmFja3ByZXNzdXJlOigpPT5kZnIscnhqczooKT0+eTV9KTt2YXIgdDI9cCgoKT0+e212KCk7dHBlKCk7cnBlKCk7aXBlKCk7bngoKX0pO2Z1bmN0aW9uIGgzKGUpe3JldHVybih0LHIpPT50eXBlb2Ygcj09Im9iamVjdCI/YXBlKGUsdCxyKTooKGksYSxuKT0+e2xldCBvPWEuaGFzT3duUHJvcGVydHkobik7cmV0dXJuIGEuY29uc3RydWN0b3IuY3JlYXRlUHJvcGVydHkobixpKSxvP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxuKTp2b2lkIDB9KShlLHQscil9dmFyIHVmcixhcGUsb3g9cCgoKT0+e0RoKCk7dWZyPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOmM1LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpBaH0sYXBlPShlPXVmcix0LHIpPT57bGV0e2tpbmQ6aSxtZXRhZGF0YTphfT1yLG49Z2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChhKTtpZihuPT09dm9pZCAwJiZnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuc2V0KGEsbj1uZXcgTWFwKSxpPT09InNldHRlciImJigoZT1PYmplY3QuY3JlYXRlKGUpKS53cmFwcGVkPSEwKSxuLnNldChyLm5hbWUsZSksaT09PSJhY2Nlc3NvciIpe2xldHtuYW1lOm99PXI7cmV0dXJue3NldChzKXtsZXQgbD10LmdldC5jYWxsKHRoaXMpO3Quc2V0LmNhbGwodGhpcyxzKSx0aGlzLnJlcXVlc3RVcGRhdGUobyxsLGUsITAscyl9LGluaXQocyl7cmV0dXJuIHMhPT12b2lkIDAmJnRoaXMuQyhvLHZvaWQgMCxlLHMpLHN9fX1pZihpPT09InNldHRlciIpe2xldHtuYW1lOm99PXI7cmV0dXJuIGZ1bmN0aW9uKHMpe2xldCBsPXRoaXNbb107dC5jYWxsKHRoaXMscyksdGhpcy5yZXF1ZXN0VXBkYXRlKG8sbCxlLCEwLHMpfX10aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAiK2kpfX0pO3ZhciBucGU9cCgoKT0+e294KCl9KTt2YXIgb3BlPXAoKCk9Pnt9KTt2YXIgenQ9e307RmUoenQse1RpbWVvdXQ6KCk9PnN4LGRlbGF5Rm9yOigpPT5zcGUsZGVsYXlGb3JSYW5kb206KCk9PnBmcn0pO3ZhciBzcGUscGZyLHN4LFkyPXAoKCk9PntzYSgpO3NwZT1hc3luYyhlLHQscj0hMSk9Pihhd2FpdCBuZXcgc3goZSxudWxsLHIpLnByb21pc2UsdCkscGZyPWFzeW5jKGUsdCxyLGk9ITEpPT4oYXdhaXQgc3BlKE1hdGgucmFuZG9tKCkqKHQtZSkrZSxudWxsLGkpLHIpLHN4PWNsYXNze2NvbnN0cnVjdG9yKHQscixpPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9dCx0aGlzLl9kZWZlcnJlZD1CYygpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShyKX0sdCksdGhpcy5zdGFydGVkPURhdGUubm93KCksaSYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgdD10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gdD4wP3Q6MH19fSk7dmFyIFZjPXt9O3ZhciBLaD1wKCgpPT57fSk7ZnVuY3Rpb24gZjMoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIGUucmVwbGFjZSgvW3xcXHt9KClbXF1eJCsqPy5dL2csIlxcJCYiKS5yZXBsYWNlKC8tL2csIlxceDJkIil9dmFyIGx4PXAoKCk9Pnt9KTt2YXIgZWY9e307RmUoZWYse2lzTWF0Y2g6KCk9Pm1mcixtYXRjaGVyOigpPT5mZnJ9KTtmdW5jdGlvbiBmZnIoZSx0LHIpe3JldHVybiBjcGUoZSx0LHIsITEpfWZ1bmN0aW9uIG1mcihlLHQscil7cmV0dXJuIGNwZShlLHQsciwhMCkubGVuZ3RoPjB9dmFyIEVCLGxwZSxoZnIsY3BlLGRwZT1wKCgpPT57bHgoKTtFQj1uZXcgTWFwLGxwZT0oZSx0KT0+e2lmKCFBcnJheS5pc0FycmF5KGUpKXN3aXRjaCh0eXBlb2YgZSl7Y2FzZSJzdHJpbmciOmU9W2VdO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjplPVtdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7dH0nIHRvIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5LCBidXQgZ290IGEgdHlwZSBvZiAnJHt0eXBlb2YgZX0nYCl9cmV0dXJuIGUuZmlsdGVyKHI9PntpZih0eXBlb2YgciE9InN0cmluZyIpe2lmKHR5cGVvZiByPiJ1IilyZXR1cm4hMTt0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAnJHt0fScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2Ygcn0nIGluIHRoZSBhcnJheWApfXJldHVybiEwfSl9LGhmcj0oZSx0KT0+e3Q9e2Nhc2VTZW5zaXRpdmU6ITEsLi4udH07bGV0IHI9ZStKU09OLnN0cmluZ2lmeSh0KTtpZihFQi5oYXMocikpcmV0dXJuIEVCLmdldChyKTtsZXQgaT1lWzBdPT09IiEiO2kmJihlPWUuc2xpY2UoMSkpLGU9ZjMoZSkucmVwbGFjZSgvXFxcKi9nLCJbXFxzXFxTXSoiKTtsZXQgYT1uZXcgUmVnRXhwKGBeJHtlfSRgLHQuY2FzZVNlbnNpdGl2ZT8iIjoiaSIpO3JldHVybiBhLm5lZ2F0ZWQ9aSxFQi5zZXQocixhKSxhfSxjcGU9KGUsdCxyLGkpPT57aWYoZT1scGUoZSwiaW5wdXRzIiksdD1scGUodCwicGF0dGVybnMiKSx0Lmxlbmd0aD09PTApcmV0dXJuW107dD10Lm1hcChvPT5oZnIobyxyKSk7bGV0e2FsbFBhdHRlcm5zOmF9PXJ8fHt9LG49W107Zm9yKGxldCBvIG9mIGUpe2xldCBzLGw9Wy4uLnRdLmZpbGwoITEpO2ZvcihsZXRbYyx1XW9mIHQuZW50cmllcygpKWlmKHUudGVzdChvKSYmKGxbY109ITAscz0hdS5uZWdhdGVkLCFzKSlicmVhaztpZighKHM9PT0hMXx8cz09PXZvaWQgMCYmdC5zb21lKGM9PiFjLm5lZ2F0ZWQpfHxhJiZsLnNvbWUoKGMsdSk9PiFjJiYhdFt1XS5uZWdhdGVkKSkmJihuLnB1c2gobyksaSkpYnJlYWt9cmV0dXJuIG59fSk7dmFyIHVwZT1wKCgpPT57ZHBlKCl9KTt2YXIgbWw9e307RmUobWwse1NtYXJ0TWF0Y2g6KCk9PiRCfSk7dmFyICRCLElCPXAoKCk9Pnt1cGUoKTskQj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLndpbGRjYXJkPXR9bWF0Y2godCl7cmV0dXJuIGVmLmlzTWF0Y2godCx0aGlzLndpbGRjYXJkKX19fSk7dmFyIG5mPXt9O0ZlKG5mLHtDcm9uOigpPT5icGUsQ3JvbkRhdGU6KCk9PnNpLENyb25QYXR0ZXJuOigpPT5jeCxzY2hlZHVsZWRKb2JzOigpPT53NX0pO2Z1bmN0aW9uIHRmKGUpe3JldHVybiBEYXRlLlVUQyhlLnksZS5tLTEsZS5kLGUuaCxlLmksZS5zKX1mdW5jdGlvbiBQQihlLHQpe3JldHVybiBlLnk9PT10LnkmJmUubT09PXQubSYmZS5kPT09dC5kJiZlLmg9PT10LmgmJmUuaT09PXQuaSYmZS5zPT09dC5zfWZ1bmN0aW9uIGJmcihlLHQpe2xldCByPW5ldyBEYXRlKERhdGUucGFyc2UoZSkpO2lmKGlzTmFOKHIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBJU084NjAxIHBhc3NlZCB0byB0aW1lem9uZSBwYXJzZXIuIik7bGV0IGk9ZS5zdWJzdHJpbmcoOSk7cmV0dXJuIGkuaW5jbHVkZXMoIloiKXx8aS5pbmNsdWRlcygiKyIpfHxpLmluY2x1ZGVzKCItIik/TkIoci5nZXRVVENGdWxsWWVhcigpLHIuZ2V0VVRDTW9udGgoKSsxLHIuZ2V0VVRDRGF0ZSgpLHIuZ2V0VVRDSG91cnMoKSxyLmdldFVUQ01pbnV0ZXMoKSxyLmdldFVUQ1NlY29uZHMoKSwiRXRjL1VUQyIpOk5CKHIuZ2V0RnVsbFllYXIoKSxyLmdldE1vbnRoKCkrMSxyLmdldERhdGUoKSxyLmdldEhvdXJzKCksci5nZXRNaW51dGVzKCksci5nZXRTZWNvbmRzKCksdCl9ZnVuY3Rpb24gcHBlKGUsdCxyKXtyZXR1cm4gaHBlKGJmcihlLHQpLHIpfWZ1bmN0aW9uIGhwZShlLHQpe2xldCByPW5ldyBEYXRlKHRmKGUpKSxpPXJmKHIsZS50eiksYT10ZihlKSxuPXRmKGkpLG89YS1uLHM9bmV3IERhdGUoci5nZXRUaW1lKCkrbyksbD1yZihzLGUudHopO2lmKFBCKGwsZSkpe2xldCBkPW5ldyBEYXRlKHMuZ2V0VGltZSgpLTM2ZTUpLGg9cmYoZCxlLnR6KTtyZXR1cm4gUEIoaCxlKT9kOnN9bGV0IGM9bmV3IERhdGUocy5nZXRUaW1lKCkrdGYoZSktdGYobCkpLHU9cmYoYyxlLnR6KTtpZihQQih1LGUpKXJldHVybiBjO2lmKHQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIHMuZ2V0VGltZSgpPmMuZ2V0VGltZSgpP3M6Y31mdW5jdGlvbiByZihlLHQpe2xldCByLGk7dHJ5e3I9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmU6dCx5ZWFyOiJudW1lcmljIixtb250aDoibnVtZXJpYyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsaG91cjEyOiExfSksaT1yLmZvcm1hdFRvUGFydHMoZSl9Y2F0Y2gobil7bGV0IG89biBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpTdHJpbmcobik7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYHRvVFo6IEludmFsaWQgdGltZXpvbmUgJyR7dH0nIG9yIGRhdGUuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgSUFOQSB0aW1lem9uZSAoZS5nLiwgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL1N0b2NraG9sbScpLiBPcmlnaW5hbCBlcnJvcjogJHtvfWApfWxldCBhPXt5ZWFyOjAsbW9udGg6MCxkYXk6MCxob3VyOjAsbWludXRlOjAsc2Vjb25kOjB9O2ZvcihsZXQgbiBvZiBpKShuLnR5cGU9PT0ieWVhciJ8fG4udHlwZT09PSJtb250aCJ8fG4udHlwZT09PSJkYXkifHxuLnR5cGU9PT0iaG91ciJ8fG4udHlwZT09PSJtaW51dGUifHxuLnR5cGU9PT0ic2Vjb25kIikmJihhW24udHlwZV09cGFyc2VJbnQobi52YWx1ZSwxMCkpO2lmKGlzTmFOKGEueWVhcil8fGlzTmFOKGEubW9udGgpfHxpc05hTihhLmRheSl8fGlzTmFOKGEuaG91cil8fGlzTmFOKGEubWludXRlKXx8aXNOYU4oYS5zZWNvbmQpKXRocm93IG5ldyBFcnJvcihgdG9UWjogRmFpbGVkIHRvIHBhcnNlIGFsbCBkYXRlIGNvbXBvbmVudHMgZnJvbSB0aW1lem9uZSAnJHt0fScuIFRoaXMgbWF5IGluZGljYXRlIGFuIGludmFsaWQgZGF0ZSBvciB0aW1lem9uZSBjb25maWd1cmF0aW9uLiBQYXJzZWQgY29tcG9uZW50czogJHtKU09OLnN0cmluZ2lmeShhKX1gKTtyZXR1cm4gYS5ob3VyPT09MjQmJihhLmhvdXI9MCkse3k6YS55ZWFyLG06YS5tb250aCxkOmEuZGF5LGg6YS5ob3VyLGk6YS5taW51dGUsczphLnNlY29uZCx0ejp0fX1mdW5jdGlvbiBOQihlLHQscixpLGEsbixvKXtyZXR1cm57eTplLG06dCxkOnIsaDppLGk6YSxzOm4sdHo6b319ZnVuY3Rpb24gdmZyKGUpe2lmKGU9PT12b2lkIDAmJihlPXt9KSxkZWxldGUgZS5uYW1lLGUubGVnYWN5TW9kZSE9PXZvaWQgMCYmZS5kb21BbmREb3c9PT12b2lkIDA/ZS5kb21BbmREb3c9IWUubGVnYWN5TW9kZTplLmRvbUFuZERvdz09PXZvaWQgMCYmKGUuZG9tQW5kRG93PSExKSxlLmxlZ2FjeU1vZGU9IWUuZG9tQW5kRG93LGUucGF1c2VkPWUucGF1c2VkPT09dm9pZCAwPyExOmUucGF1c2VkLGUubWF4UnVucz1lLm1heFJ1bnM9PT12b2lkIDA/MS8wOmUubWF4UnVucyxlLmNhdGNoPWUuY2F0Y2g9PT12b2lkIDA/ITE6ZS5jYXRjaCxlLmludGVydmFsPWUuaW50ZXJ2YWw9PT12b2lkIDA/MDpwYXJzZUludChlLmludGVydmFsLnRvU3RyaW5nKCksMTApLGUudXRjT2Zmc2V0PWUudXRjT2Zmc2V0PT09dm9pZCAwP3ZvaWQgMDpwYXJzZUludChlLnV0Y09mZnNldC50b1N0cmluZygpLDEwKSxlLmRheU9mZnNldD1lLmRheU9mZnNldD09PXZvaWQgMD8wOnBhcnNlSW50KGUuZGF5T2Zmc2V0LnRvU3RyaW5nKCksMTApLGUudW5yZWY9ZS51bnJlZj09PXZvaWQgMD8hMTplLnVucmVmLGUubW9kZT1lLm1vZGU9PT12b2lkIDA/ImF1dG8iOmUubW9kZSxlLmFsdGVybmF0aXZlV2Vla2RheXM9ZS5hbHRlcm5hdGl2ZVdlZWtkYXlzPT09dm9pZCAwPyExOmUuYWx0ZXJuYXRpdmVXZWVrZGF5cyxlLnNsb3BweVJhbmdlcz1lLnNsb3BweVJhbmdlcz09PXZvaWQgMD8hMTplLnNsb3BweVJhbmdlcywhWyJhdXRvIiwiNS1wYXJ0IiwiNi1wYXJ0IiwiNy1wYXJ0IiwiNS1vci02LXBhcnRzIiwiNi1vci03LXBhcnRzIl0uaW5jbHVkZXMoZS5tb2RlKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBtb2RlIG11c3QgYmUgb25lIG9mICdhdXRvJywgJzUtcGFydCcsICc2LXBhcnQnLCAnNy1wYXJ0JywgJzUtb3ItNi1wYXJ0cycsIG9yICc2LW9yLTctcGFydHMnLiIpO2lmKGUuc3RhcnRBdCYmKGUuc3RhcnRBdD1uZXcgc2koZS5zdGFydEF0LGUudGltZXpvbmUpKSxlLnN0b3BBdCYmKGUuc3RvcEF0PW5ldyBzaShlLnN0b3BBdCxlLnRpbWV6b25lKSksZS5pbnRlcnZhbCE9PW51bGwpe2lmKGlzTmFOKGUuaW50ZXJ2YWwpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBpcyBub3QgYSBudW1iZXIiKTtpZihlLmludGVydmFsPDApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogU3VwcGxpZWQgdmFsdWUgZm9yIGludGVydmFsIGNhbiBub3QgYmUgbmVnYXRpdmUiKX1pZihlLnV0Y09mZnNldCE9PXZvaWQgMCl7aWYoaXNOYU4oZS51dGNPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciB1dGNPZmZzZXQsIHNob3VsZCBiZSBudW1iZXIgcmVwcmVzZW50aW5nIG1pbnV0ZXMgb2Zmc2V0IGZyb20gVVRDLiIpO2lmKGUudXRjT2Zmc2V0PC04NzB8fGUudXRjT2Zmc2V0Pjg3MCl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiB1dGNPZmZzZXQgb3V0IG9mIGJvdW5kcy4iKTtpZihlLnV0Y09mZnNldCE9PXZvaWQgMCYmZS50aW1lem9uZSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBDb21iaW5pbmcgJ3V0Y09mZnNldCcgd2l0aCAndGltZXpvbmUnIGlzIG5vdCBhbGxvd2VkLiIpfWlmKGUudW5yZWYhPT0hMCYmZS51bnJlZiE9PSExKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFVucmVmIHNob3VsZCBiZSBlaXRoZXIgdHJ1ZSwgZmFsc2Ugb3IgdW5kZWZpbmVkKGZhbHNlKS4iKTtpZihlLmRheU9mZnNldCE9PXZvaWQgMCYmZS5kYXlPZmZzZXQhPT0wJiZpc05hTihlLmRheU9mZnNldCkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogSW52YWxpZCB2YWx1ZSBwYXNzZWQgZm9yIGRheU9mZnNldCwgc2hvdWxkIGJlIGEgbnVtYmVyIHJlcHJlc2VudGluZyBkYXlzIHRvIG9mZnNldC4iKTtyZXR1cm4gZX1mdW5jdGlvbiBhZihlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09IltvYmplY3QgRnVuY3Rpb25dInx8dHlwZW9mIGU9PSJmdW5jdGlvbiJ8fGUgaW5zdGFuY2VvZiBGdW5jdGlvbn1mdW5jdGlvbiB4ZnIoZSl7cmV0dXJuIGFmKGUpfWZ1bmN0aW9uIHlmcihlKXt0eXBlb2YgRGVubzwidSImJnR5cGVvZiBEZW5vLnVucmVmVGltZXI8InUiP0Rlbm8udW5yZWZUaW1lcihlKTplJiZ0eXBlb2YgZS51bnJlZjwidSImJmUudW5yZWYoKX12YXIgZnBlLGN4LEZCLHMxLHNpLG1wZSx3NSxicGUsdnBlPXAoKCk9PntmcGU9WzEsMiw0LDgsMTZdLGN4PWNsYXNze3BhdHRlcm47dGltZXpvbmU7bW9kZTthbHRlcm5hdGl2ZVdlZWtkYXlzO3Nsb3BweVJhbmdlcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO2RheU9mV2Vlazt5ZWFyO2xhc3REYXlPZk1vbnRoO2xhc3RXZWVrZGF5O25lYXJlc3RXZWVrZGF5cztzdGFyRE9NO3N0YXJET1c7c3RhclllYXI7dXNlQW5kTG9naWM7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMucGF0dGVybj1lLHRoaXMudGltZXpvbmU9dCx0aGlzLm1vZGU9cj8ubW9kZT8/ImF1dG8iLHRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz1yPy5hbHRlcm5hdGl2ZVdlZWtkYXlzPz8hMSx0aGlzLnNsb3BweVJhbmdlcz1yPy5zbG9wcHlSYW5nZXM/PyExLHRoaXMuc2Vjb25kPUFycmF5KDYwKS5maWxsKDApLHRoaXMubWludXRlPUFycmF5KDYwKS5maWxsKDApLHRoaXMuaG91cj1BcnJheSgyNCkuZmlsbCgwKSx0aGlzLmRheT1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLm1vbnRoPUFycmF5KDEyKS5maWxsKDApLHRoaXMuZGF5T2ZXZWVrPUFycmF5KDcpLmZpbGwoMCksdGhpcy55ZWFyPUFycmF5KDFlNCkuZmlsbCgwKSx0aGlzLmxhc3REYXlPZk1vbnRoPSExLHRoaXMubGFzdFdlZWtkYXk9ITEsdGhpcy5uZWFyZXN0V2Vla2RheXM9QXJyYXkoMzEpLmZpbGwoMCksdGhpcy5zdGFyRE9NPSExLHRoaXMuc3RhckRPVz0hMSx0aGlzLnN0YXJZZWFyPSExLHRoaXMudXNlQW5kTG9naWM9ITEsdGhpcy5wYXJzZSgpfXBhcnNlKCl7aWYoISh0eXBlb2YgdGhpcy5wYXR0ZXJuPT0ic3RyaW5nInx8dGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogUGF0dGVybiBoYXMgdG8gYmUgb2YgdHlwZSBzdHJpbmcuIik7dGhpcy5wYXR0ZXJuLmluZGV4T2YoIkAiKT49MCYmKHRoaXMucGF0dGVybj10aGlzLmhhbmRsZU5pY2tuYW1lcyh0aGlzLnBhdHRlcm4pLnRyaW0oKSk7bGV0IGU9dGhpcy5wYXR0ZXJuLm1hdGNoKC9cUysvZyl8fFsiIl0sdD1lLmxlbmd0aDtpZihlLmxlbmd0aDw1fHxlLmxlbmd0aD43KXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBpbnZhbGlkIGNvbmZpZ3VyYXRpb24gZm9ybWF0ICgnIit0aGlzLnBhdHRlcm4rIicpLCBleGFjdGx5IGZpdmUsIHNpeCwgb3Igc2V2ZW4gc3BhY2Ugc2VwYXJhdGVkIHBhcnRzIGFyZSByZXF1aXJlZC4iKTtpZih0aGlzLm1vZGUhPT0iYXV0byIpe2xldCBpO3N3aXRjaCh0aGlzLm1vZGUpe2Nhc2UiNS1wYXJ0IjppPTU7YnJlYWs7Y2FzZSI2LXBhcnQiOmk9NjticmVhaztjYXNlIjctcGFydCI6aT03O2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjppPVs1LDZdO2JyZWFrO2Nhc2UiNi1vci03LXBhcnRzIjppPVs2LDddO2JyZWFrO2RlZmF1bHQ6aT0wfWlmKCEoQXJyYXkuaXNBcnJheShpKT9pLmluY2x1ZGVzKHQpOnQ9PT1pKSl7bGV0IGE9QXJyYXkuaXNBcnJheShpKT9pLmpvaW4oIiBvciAiKTppLnRvU3RyaW5nKCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG1vZGUgJyR7dGhpcy5tb2RlfScgcmVxdWlyZXMgZXhhY3RseSAke2F9IHBhcnRzLCBidXQgcGF0dGVybiAnJHt0aGlzLnBhdHRlcm59JyBoYXMgJHt0fSBwYXJ0cy5gKX19aWYoZS5sZW5ndGg9PT01JiZlLnVuc2hpZnQoIjAiKSxlLmxlbmd0aD09PTYmJmUucHVzaCgiKiIpLGVbM10udG9VcHBlckNhc2UoKT09PSJMVyI/KHRoaXMubGFzdFdlZWtkYXk9ITAsZVszXT0iIik6ZVszXS50b1VwcGVyQ2FzZSgpLmluZGV4T2YoIkwiKT49MCYmKGVbM109ZVszXS5yZXBsYWNlKC9ML2dpLCIiKSx0aGlzLmxhc3REYXlPZk1vbnRoPSEwKSxlWzNdPT0iKiImJih0aGlzLnN0YXJET009ITApLGVbNl09PSIqIiYmKHRoaXMuc3RhclllYXI9ITApLGVbNF0ubGVuZ3RoPj0zJiYoZVs0XT10aGlzLnJlcGxhY2VBbHBoYU1vbnRocyhlWzRdKSksZVs1XS5sZW5ndGg+PTMmJihlWzVdPXRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz90aGlzLnJlcGxhY2VBbHBoYURheXNRdWFydHooZVs1XSk6dGhpcy5yZXBsYWNlQWxwaGFEYXlzKGVbNV0pKSxlWzVdLnN0YXJ0c1dpdGgoIisiKSYmKHRoaXMudXNlQW5kTG9naWM9ITAsZVs1XT1lWzVdLnN1YnN0cmluZygxKSxlWzVdPT09IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBEYXktb2Ytd2VlayBmaWVsZCBjYW5ub3QgYmUgZW1wdHkgYWZ0ZXIgJysnIG1vZGlmaWVyLiIpO3N3aXRjaChlWzVdPT0iKiImJih0aGlzLnN0YXJET1c9ITApLHRoaXMucGF0dGVybi5pbmRleE9mKCI/Iik+PTAmJihlWzBdPWVbMF0ucmVwbGFjZSgvXD8vZywiKiIpLGVbMV09ZVsxXS5yZXBsYWNlKC9cPy9nLCIqIiksZVsyXT1lWzJdLnJlcGxhY2UoL1w/L2csIioiKSxlWzNdPWVbM10ucmVwbGFjZSgvXD8vZywiKiIpLGVbNF09ZVs0XS5yZXBsYWNlKC9cPy9nLCIqIiksZVs1XT1lWzVdLnJlcGxhY2UoL1w/L2csIioiKSxlWzZdJiYoZVs2XT1lWzZdLnJlcGxhY2UoL1w/L2csIioiKSkpLHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmVbMF09IjAiLGVbNl09IioiO2JyZWFrO2Nhc2UiNi1wYXJ0IjplWzZdPSIqIjticmVhaztjYXNlIjUtb3ItNi1wYXJ0cyI6ZVs2XT0iKiI7YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmJyZWFrO2Nhc2UiNy1wYXJ0IjpjYXNlImF1dG8iOmJyZWFrfXRoaXMudGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKGUpLHRoaXMucGFydFRvQXJyYXkoInNlY29uZCIsZVswXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoIm1pbnV0ZSIsZVsxXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImhvdXIiLGVbMl0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KCJkYXkiLGVbM10sLTEsMSksdGhpcy5wYXJ0VG9BcnJheSgibW9udGgiLGVbNF0sLTEsMSk7bGV0IHI9dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPy0xOjA7dGhpcy5wYXJ0VG9BcnJheSgiZGF5T2ZXZWVrIixlWzVdLHIsNjMpLHRoaXMucGFydFRvQXJyYXkoInllYXIiLGVbNl0sMCwxKSwhdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzJiZ0aGlzLmRheU9mV2Vla1s3XSYmKHRoaXMuZGF5T2ZXZWVrWzBdPXRoaXMuZGF5T2ZXZWVrWzddKX1wYXJ0VG9BcnJheShlLHQscixpKXtsZXQgYT10aGlzW2VdLG49ZT09PSJkYXkiJiZ0aGlzLmxhc3REYXlPZk1vbnRoLG89ZT09PSJkYXkiJiZ0aGlzLmxhc3RXZWVrZGF5O2lmKHQ9PT0iIiYmIW4mJiFvKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrZSsiICgiK3QrIikgaXMgZW1wdHksIGNoZWNrIGZvciB0cmFpbGluZyBzcGFjZXMuIik7aWYodD09PSIqIilyZXR1cm4gYS5maWxsKGkpO2xldCBzPXQuc3BsaXQoIiwiKTtpZihzLmxlbmd0aD4xKWZvcihsZXQgbD0wO2w8cy5sZW5ndGg7bCsrKXRoaXMucGFydFRvQXJyYXkoZSxzW2xdLHIsaSk7ZWxzZSB0LmluZGV4T2YoIi0iKSE9PS0xJiZ0LmluZGV4T2YoIi8iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcodCxlLHIsaSk6dC5pbmRleE9mKCItIikhPT0tMT90aGlzLmhhbmRsZVJhbmdlKHQsZSxyLGkpOnQuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVTdGVwcGluZyh0LGUscixpKTp0IT09IiImJnRoaXMuaGFuZGxlTnVtYmVyKHQsZSxyLGkpfXRocm93QXRJbGxlZ2FsQ2hhcmFjdGVycyhlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZigodD09PTM/L1teLyowLTksXC1Xd0xsXSsvOnQ9PT01Py9bXi8qMC05LFwtI0xsXSsvOi9bXi8qMC05LFwtXSsvKS50ZXN0KGVbdF0pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrdCsiICgiK2VbdF0rIikgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLiIpfWhhbmRsZU51bWJlcihlLHQscixpKXtsZXQgYT10aGlzLmV4dHJhY3ROdGgoZSx0KSxuPWUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpO2lmKHQhPT0iZGF5IiYmbil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogTmVhcmVzdCB3ZWVrZGF5IG1vZGlmaWVyIChXKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLW1vbnRoLiIpO24mJih0PSJuZWFyZXN0V2Vla2RheXMiKTtsZXQgbz1wYXJzZUludChhWzBdLDEwKStyO2lmKGlzTmFOKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiAiK3QrIiBpcyBub3QgYSBudW1iZXI6ICciK2UrIiciKTt0aGlzLnNldFBhcnQodCxvLGFbMV18fGkpfXNldFBhcnQoZSx0LHIpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyxlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCBwYXJ0IHNwZWNpZmllZDogIitlKTtpZihlPT09ImRheU9mV2VlayIpe2lmKHQ9PT03JiYodD0wKSx0PDB8fHQ+Nil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlazogIit0KTt0aGlzLnNldE50aFdlZWtkYXlPZk1vbnRoKHQscik7cmV0dXJufWlmKGU9PT0ic2Vjb25kInx8ZT09PSJtaW51dGUiKXtpZih0PDB8fHQ+PTYwKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIitlKyI6ICIrdCl9ZWxzZSBpZihlPT09ImhvdXIiKXtpZih0PDB8fHQ+PTI0KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIitlKyI6ICIrdCl9ZWxzZSBpZihlPT09ImRheSJ8fGU9PT0ibmVhcmVzdFdlZWtkYXlzIil7aWYodDwwfHx0Pj0zMSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrZSsiOiAiK3QpfWVsc2UgaWYoZT09PSJtb250aCIpe2lmKHQ8MHx8dD49MTIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK2UrIjogIit0KX1lbHNlIGlmKGU9PT0ieWVhciImJih0PDF8fHQ+PTFlNCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK2UrIjogIit0KyIgKHN1cHBvcnRlZCByYW5nZTogMS05OTk5KSIpO3RoaXNbZV1bdF09cn12YWxpZGF0ZU5vdE5hTihlLHQpe2lmKGlzTmFOKGUpKXRocm93IG5ldyBUeXBlRXJyb3IodCl9dmFsaWRhdGVSYW5nZShlLHQscixpLGEpe2lmKGU+dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogRnJvbSB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB0byB2YWx1ZTogJyIrYSsiJyIpO2lmKHIhPT12b2lkIDApe2lmKHI9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IDAiKTtpZihyPnRoaXNbaV0ubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4aW11bSB2YWx1ZSBvZiBwYXJ0ICgiK3RoaXNbaV0ubGVuZ3RoKyIpIil9fWhhbmRsZVJhbmdlV2l0aFN0ZXBwaW5nKGUsdCxyLGkpe2lmKGUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gcmFuZ2VzIHdpdGggc3RlcHBpbmcuIik7bGV0IGE9dGhpcy5leHRyYWN0TnRoKGUsdCksbj1hWzBdLm1hdGNoKC9eKFxkKyktKFxkKylcLyhcZCspJC8pO2lmKG49PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2Ugd2l0aCBzdGVwcGluZzogJyIrZSsiJyIpO2xldFssbyxzLGxdPW4sYz1wYXJzZUludChvLDEwKStyLHU9cGFyc2VJbnQocywxMCkrcixkPXBhcnNlSW50KGwsMTApO3RoaXMudmFsaWRhdGVOb3ROYU4oYywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4odSwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4oZCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoYyx1LGQsdCxlKTtmb3IobGV0IGg9YztoPD11O2grPWQpdGhpcy5zZXRQYXJ0KHQsaCxhWzFdfHxpKX1leHRyYWN0TnRoKGUsdCl7bGV0IHI9ZSxpO2lmKHIuaW5jbHVkZXMoIiMiKSl7aWYodCE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IG50aCAoIykgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkIik7aT1yLnNwbGl0KCIjIilbMV0scj1yLnNwbGl0KCIjIilbMF19ZWxzZSBpZihyLnRvVXBwZXJDYXNlKCkuZW5kc1dpdGgoIkwiKSl7aWYodCE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IEwgbW9kaWZpZXIgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkICh1c2UgTCBhbG9uZSBmb3IgZGF5LW9mLW1vbnRoKSIpO2k9IkwiLHI9ci5zbGljZSgwLC0xKX1yZXR1cm5bcixpXX1oYW5kbGVSYW5nZShlLHQscixpKXtpZihlLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIGEgcmFuZ2UuIik7bGV0IGE9dGhpcy5leHRyYWN0TnRoKGUsdCksbj1hWzBdLnNwbGl0KCItIik7aWYobi5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2U6ICciK2UrIiciKTtsZXQgbz1wYXJzZUludChuWzBdLDEwKStyLHM9cGFyc2VJbnQoblsxXSwxMCkrcjt0aGlzLnZhbGlkYXRlTm90TmFOKG8sIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgbG93ZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlTm90TmFOKHMsIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgdXBwZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UobyxzLHZvaWQgMCx0LGUpO2ZvcihsZXQgbD1vO2w8PXM7bCsrKXRoaXMuc2V0UGFydCh0LGwsYVsxXXx8aSl9aGFuZGxlU3RlcHBpbmcoZSx0LHIsaSl7aWYoZS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiBwYXJ0cyB3aXRoIHN0ZXBwaW5nLiIpO2xldCBhPXRoaXMuZXh0cmFjdE50aChlLHQpLG49YVswXS5zcGxpdCgiLyIpO2lmKG4ubGVuZ3RoIT09Mil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAnIitlKyInIik7aWYodGhpcy5zbG9wcHlSYW5nZXMpblswXT09PSIiJiYoblswXT0iKiIpO2Vsc2V7aWYoblswXT09PSIiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbWlzc2luZyBwcmVmaXggKCciK2UrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKTtpZihuWzBdIT09IioiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbnVtZXJpYyBwcmVmaXggKCciK2UrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKX1sZXQgbz0wO25bMF0hPT0iKiImJihvPXBhcnNlSW50KG5bMF0sMTApK3IpO2xldCBzPXBhcnNlSW50KG5bMV0sMTApO3RoaXMudmFsaWRhdGVOb3ROYU4ocywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoMCx0aGlzW3RdLmxlbmd0aC0xLHMsdCxlKTtmb3IobGV0IGw9bztsPHRoaXNbdF0ubGVuZ3RoO2wrPXMpdGhpcy5zZXRQYXJ0KHQsbCxhWzFdfHxpKX1yZXBsYWNlQWxwaGFEYXlzKGUpe3JldHVybiBlLnJlcGxhY2UoLy1zdW4vZ2ksIi03IikucmVwbGFjZSgvc3VuL2dpLCIwIikucmVwbGFjZSgvbW9uL2dpLCIxIikucmVwbGFjZSgvdHVlL2dpLCIyIikucmVwbGFjZSgvd2VkL2dpLCIzIikucmVwbGFjZSgvdGh1L2dpLCI0IikucmVwbGFjZSgvZnJpL2dpLCI1IikucmVwbGFjZSgvc2F0L2dpLCI2Iil9cmVwbGFjZUFscGhhRGF5c1F1YXJ0eihlKXtyZXR1cm4gZS5yZXBsYWNlKC9zdW4vZ2ksIjEiKS5yZXBsYWNlKC9tb24vZ2ksIjIiKS5yZXBsYWNlKC90dWUvZ2ksIjMiKS5yZXBsYWNlKC93ZWQvZ2ksIjQiKS5yZXBsYWNlKC90aHUvZ2ksIjUiKS5yZXBsYWNlKC9mcmkvZ2ksIjYiKS5yZXBsYWNlKC9zYXQvZ2ksIjciKX1yZXBsYWNlQWxwaGFNb250aHMoZSl7cmV0dXJuIGUucmVwbGFjZSgvamFuL2dpLCIxIikucmVwbGFjZSgvZmViL2dpLCIyIikucmVwbGFjZSgvbWFyL2dpLCIzIikucmVwbGFjZSgvYXByL2dpLCI0IikucmVwbGFjZSgvbWF5L2dpLCI1IikucmVwbGFjZSgvanVuL2dpLCI2IikucmVwbGFjZSgvanVsL2dpLCI3IikucmVwbGFjZSgvYXVnL2dpLCI4IikucmVwbGFjZSgvc2VwL2dpLCI5IikucmVwbGFjZSgvb2N0L2dpLCIxMCIpLnJlcGxhY2UoL25vdi9naSwiMTEiKS5yZXBsYWNlKC9kZWMvZ2ksIjEyIil9aGFuZGxlTmlja25hbWVzKGUpe2xldCB0PWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7aWYodD09PSJAeWVhcmx5Inx8dD09PSJAYW5udWFsbHkiKXJldHVybiIwIDAgMSAxICoiO2lmKHQ9PT0iQG1vbnRobHkiKXJldHVybiIwIDAgMSAqICoiO2lmKHQ9PT0iQHdlZWtseSIpcmV0dXJuIjAgMCAqICogMCI7aWYodD09PSJAZGFpbHkifHx0PT09IkBtaWRuaWdodCIpcmV0dXJuIjAgMCAqICogKiI7aWYodD09PSJAaG91cmx5IilyZXR1cm4iMCAqICogKiAqIjtpZih0PT09IkByZWJvb3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBAcmVib290IGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBhbiBldmVudC1iYXNlZCB0cmlnZ2VyIHRoYXQgcmVxdWlyZXMgc3lzdGVtIHN0YXJ0dXAgZGV0ZWN0aW9uLiIpO3JldHVybiBlfXNldE50aFdlZWtkYXlPZk1vbnRoKGUsdCl7aWYodHlwZW9mIHQhPSJudW1iZXIiJiZ0LnRvVXBwZXJDYXNlKCk9PT0iTCIpdGhpcy5kYXlPZldlZWtbZV09dGhpcy5kYXlPZldlZWtbZV18MzI7ZWxzZSBpZih0PT09NjMpdGhpcy5kYXlPZldlZWtbZV09NjM7ZWxzZSBpZih0PDYmJnQ+MCl0aGlzLmRheU9mV2Vla1tlXT10aGlzLmRheU9mV2Vla1tlXXxmcGVbdC0xXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYENyb25QYXR0ZXJuOiBudGggd2Vla2RheSBvdXQgb2YgcmFuZ2UsIHNob3VsZCBiZSAxLTUgb3IgTC4gVmFsdWU6ICR7dH0sIFR5cGU6ICR7dHlwZW9mIHR9YCl9fSxGQj1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLHMxPVtbIm1vbnRoIiwieWVhciIsMF0sWyJkYXkiLCJtb250aCIsLTFdLFsiaG91ciIsImRheSIsMF0sWyJtaW51dGUiLCJob3VyIiwwXSxbInNlY29uZCIsIm1pbnV0ZSIsMF1dLHNpPWNsYXNzIGdwZXt0ejttcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO3llYXI7Y29uc3RydWN0b3IodCxyKXtpZih0aGlzLnR6PXIsdCYmdCBpbnN0YW5jZW9mIERhdGUpaWYoIWlzTmFOKHQpKXRoaXMuZnJvbURhdGUodCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCBkYXRlIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpO2Vsc2UgaWYodD09bnVsbCl0aGlzLmZyb21EYXRlKG5ldyBEYXRlKTtlbHNlIGlmKHQmJnR5cGVvZiB0PT0ic3RyaW5nIil0aGlzLmZyb21TdHJpbmcodCk7ZWxzZSBpZih0IGluc3RhbmNlb2YgZ3BlKXRoaXMuZnJvbUNyb25EYXRlKHQpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvbkRhdGU6IEludmFsaWQgdHlwZSAoIit0eXBlb2YgdCsiKSBwYXNzZWQgdG8gQ3JvbkRhdGUgY29uc3RydWN0b3IiKX1nZXRMYXN0RGF5T2ZNb250aCh0LHIpe3JldHVybiByIT09MT9GQltyXTpuZXcgRGF0ZShEYXRlLlVUQyh0LHIrMSwwKSkuZ2V0VVRDRGF0ZSgpfWdldExhc3RXZWVrZGF5KHQscil7bGV0IGk9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0LHIpLGE9bmV3IERhdGUoRGF0ZS5VVEModCxyLGkpKS5nZXRVVENEYXkoKTtyZXR1cm4gYT09PTA/aS0yOmE9PT02P2ktMTppfWdldE5lYXJlc3RXZWVrZGF5KHQscixpKXtsZXQgYT10aGlzLmdldExhc3REYXlPZk1vbnRoKHQscik7aWYoaT5hKXJldHVybi0xO2xldCBuPW5ldyBEYXRlKERhdGUuVVRDKHQscixpKSkuZ2V0VVRDRGF5KCk7cmV0dXJuIG49PT0wP2k9PT1hP2ktMjppKzE6bj09PTY/aT09PTE/aSsyOmktMTppfWlzTnRoV2Vla2RheU9mTW9udGgodCxyLGksYSl7bGV0IG49bmV3IERhdGUoRGF0ZS5VVEModCxyLGkpKS5nZXRVVENEYXkoKSxvPTA7Zm9yKGxldCBzPTE7czw9aTtzKyspbmV3IERhdGUoRGF0ZS5VVEModCxyLHMpKS5nZXRVVENEYXkoKT09PW4mJm8rKztpZihhJjYzJiZmcGVbby0xXSZhKXJldHVybiEwO2lmKGEmMzIpe2xldCBzPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodCxyKTtmb3IobGV0IGw9aSsxO2w8PXM7bCsrKWlmKG5ldyBEYXRlKERhdGUuVVRDKHQscixsKSkuZ2V0VVRDRGF5KCk9PT1uKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZyb21EYXRlKHQpe2lmKHRoaXMudHohPT12b2lkIDApaWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXRoaXMubXM9dC5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD10LmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT10LmdldFVUQ01pbnV0ZXMoKSt0aGlzLnR6LHRoaXMuaG91cj10LmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9dC5nZXRVVENEYXRlKCksdGhpcy5tb250aD10LmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPXQuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCk7ZWxzZSB0cnl7bGV0IHI9cmYodCx0aGlzLnR6KTt0aGlzLm1zPXQuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5zLHRoaXMubWludXRlPXIuaSx0aGlzLmhvdXI9ci5oLHRoaXMuZGF5PXIuZCx0aGlzLm1vbnRoPXIubS0xLHRoaXMueWVhcj1yLnl9Y2F0Y2gocil7bGV0IGk9ciBpbnN0YW5jZW9mIEVycm9yP3IubWVzc2FnZTpTdHJpbmcocik7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvbkRhdGU6IEZhaWxlZCB0byBjb252ZXJ0IGRhdGUgdG8gdGltZXpvbmUgJyR7dGhpcy50en0nLiBUaGlzIG1heSBoYXBwZW4gd2l0aCBpbnZhbGlkIHRpbWV6b25lIG5hbWVzIG9yIGRhdGVzLiBPcmlnaW5hbCBlcnJvcjogJHtpfWApfWVsc2UgdGhpcy5tcz10LmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPXQuZ2V0U2Vjb25kcygpLHRoaXMubWludXRlPXQuZ2V0TWludXRlcygpLHRoaXMuaG91cj10LmdldEhvdXJzKCksdGhpcy5kYXk9dC5nZXREYXRlKCksdGhpcy5tb250aD10LmdldE1vbnRoKCksdGhpcy55ZWFyPXQuZ2V0RnVsbFllYXIoKX1mcm9tQ3JvbkRhdGUodCl7dGhpcy50ej10LnR6LHRoaXMueWVhcj10LnllYXIsdGhpcy5tb250aD10Lm1vbnRoLHRoaXMuZGF5PXQuZGF5LHRoaXMuaG91cj10LmhvdXIsdGhpcy5taW51dGU9dC5taW51dGUsdGhpcy5zZWNvbmQ9dC5zZWNvbmQsdGhpcy5tcz10Lm1zfWFwcGx5KCl7aWYodGhpcy5tb250aD4xMXx8dGhpcy5tb250aDwwfHx0aGlzLmRheT5GQlt0aGlzLm1vbnRoXXx8dGhpcy5kYXk8MXx8dGhpcy5ob3VyPjU5fHx0aGlzLm1pbnV0ZT41OXx8dGhpcy5zZWNvbmQ+NTl8fHRoaXMuaG91cjwwfHx0aGlzLm1pbnV0ZTwwfHx0aGlzLnNlY29uZDwwKXtsZXQgdD1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcykpO3JldHVybiB0aGlzLm1zPXQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9dC5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9dC5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXQuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT10LmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXQuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9dC5nZXRVVENGdWxsWWVhcigpLCEwfWVsc2UgcmV0dXJuITF9ZnJvbVN0cmluZyh0KXtpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpe2xldCByPXBwZSh0KTt0aGlzLm1zPXIuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ci5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXIuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1yLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXIuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ci5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKX1lbHNlIHJldHVybiB0aGlzLmZyb21EYXRlKHBwZSh0LHRoaXMudHopKX1maW5kTmV4dCh0LHIsaSxhKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKHQscixpLGEsMSl9X2ZpbmRNYXRjaCh0LHIsaSxhLG4pe2xldCBvPXRoaXNbcl0scztpLmxhc3REYXlPZk1vbnRoJiYocz10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSk7bGV0IGw9IWkuc3RhckRPVyYmcj09ImRheSI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCk6dm9pZCAwLGM9dGhpc1tyXSthLHU9bj09PTE/ZD0+ZDxpW3JdLmxlbmd0aDpkPT5kPj0wO2ZvcihsZXQgZD1jO3UoZCk7ZCs9bil7bGV0IGg9aVtyXVtkXTtpZihyPT09ImRheSImJiFoKXtmb3IobGV0IGY9MDtmPGkubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtmKyspaWYoaS5uZWFyZXN0V2Vla2RheXNbZl0pe2xldCB4PXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsZi1hKTtpZih4PT09LTEpY29udGludWU7aWYoeD09PWQtYSl7aD0xO2JyZWFrfX19aWYocj09PSJkYXkiJiZpLmxhc3RXZWVrZGF5KXtsZXQgZj10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtkLWE9PT1mJiYoaD0xKX1pZihyPT09ImRheSImJmkubGFzdERheU9mTW9udGgmJmQtYT09cyYmKGg9MSkscj09PSJkYXkiJiYhaS5zdGFyRE9XKXtsZXQgZj1pLmRheU9mV2Vla1sobCsoZC1hLTEpKSU3XTtpZihmJiZmJjYzKWY9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLGQtYSxmKT8xOjA7ZWxzZSBpZihmKXRocm93IG5ldyBFcnJvcihgQ3JvbkRhdGU6IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlayBlbmNvdW50ZXJlZC4gJHtmfWApO2kudXNlQW5kTG9naWM/aD1oJiZmOiF0LmRvbUFuZERvdyYmIWkuc3RhckRPTT9oPWh8fGY6aD1oJiZmfWlmKGgpcmV0dXJuIHRoaXNbcl09ZC1hLG8hPT10aGlzW3JdPzI6MX1yZXR1cm4gM31yZWN1cnNlKHQscixpKXtpZihpPT09MCYmIXQuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPHQueWVhci5sZW5ndGgmJnQueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG49LTE7Zm9yKGxldCBvPXRoaXMueWVhcisxO288dC55ZWFyLmxlbmd0aCYmbzwxZTQ7bysrKWlmKHQueWVhcltvXT09PTEpe249bzticmVha31pZihuPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW4sdGhpcy5tb250aD0wLHRoaXMuZGF5PTEsdGhpcy5ob3VyPTAsdGhpcy5taW51dGU9MCx0aGlzLnNlY29uZD0wLHRoaXMubXM9MH1pZih0aGlzLnllYXI+PTFlNClyZXR1cm4gbnVsbH1sZXQgYT10aGlzLmZpbmROZXh0KHIsczFbaV1bMF0sdCxzMVtpXVsyXSk7aWYoYT4xKXtsZXQgbj1pKzE7Zm9yKDtuPHMxLmxlbmd0aDspdGhpc1tzMVtuXVswXV09LXMxW25dWzJdLG4rKztpZihhPT09Myl7aWYodGhpc1tzMVtpXVsxXV0rKyx0aGlzW3MxW2ldWzBdXT0tczFbaV1bMl0sdGhpcy5hcHBseSgpLGk9PT0wJiYhdC5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjx0LnllYXIubGVuZ3RoJiZ0LnllYXJbdGhpcy55ZWFyXT09PTAmJnRoaXMueWVhcjwxZTQ7KXRoaXMueWVhcisrO2lmKHRoaXMueWVhcj49MWU0fHx0aGlzLnllYXI+PXQueWVhci5sZW5ndGgpcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZSh0LHIsMCl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZSh0LHIsaS0xKX1yZXR1cm4gaSs9MSxpPj1zMS5sZW5ndGg/dGhpczoodC5zdGFyWWVhcj90aGlzLnllYXI+PTNlMzp0aGlzLnllYXI+PTFlNCk/bnVsbDp0aGlzLnJlY3Vyc2UodCxyLGkpfWluY3JlbWVudCh0LHIsaSl7cmV0dXJuIHRoaXMuc2Vjb25kKz1yLmludGVydmFsIT09dm9pZCAwJiZyLmludGVydmFsPjEmJmk/ci5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlKHQsciwwKX1kZWNyZW1lbnQodCxyKXtyZXR1cm4gdGhpcy5zZWNvbmQtPXIuaW50ZXJ2YWwhPT12b2lkIDAmJnIuaW50ZXJ2YWw+MT9yLmludGVydmFsOjEsdGhpcy5tcz0wLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2VCYWNrd2FyZCh0LHIsMCwwKX1yZWN1cnNlQmFja3dhcmQodCxyLGksYT0wKXtpZihhPjFlNClyZXR1cm4gbnVsbDtpZihpPT09MCYmIXQuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPHQueWVhci5sZW5ndGgmJnQueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG89LTE7Zm9yKGxldCBzPXRoaXMueWVhci0xO3M+PTA7cy0tKWlmKHQueWVhcltzXT09PTEpe289czticmVha31pZihvPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW8sdGhpcy5tb250aD0xMSx0aGlzLmRheT0zMSx0aGlzLmhvdXI9MjMsdGhpcy5taW51dGU9NTksdGhpcy5zZWNvbmQ9NTksdGhpcy5tcz0wfWlmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfWxldCBuPXRoaXMuZmluZFByZXZpb3VzKHIsczFbaV1bMF0sdCxzMVtpXVsyXSk7aWYobj4xKXtsZXQgbz1pKzE7Zm9yKDtvPHMxLmxlbmd0aDspe2xldCBzPXMxW29dWzBdLGw9czFbb11bMl0sYz10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShzLHQsbCk7dGhpc1tzXT1jLG8rK31pZihuPT09Myl7aWYodGhpc1tzMVtpXVsxXV0tLSxpPT09MCl7bGV0IHU9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpcy5kYXk+dSYmKHRoaXMuZGF5PXUpfWlmKGk9PT0xKWlmKHRoaXMuZGF5PD0wKXRoaXMuZGF5PTE7ZWxzZXtsZXQgdT10aGlzLnllYXIsZD10aGlzLm1vbnRoO2Zvcig7ZDwwOylkKz0xMix1LS07Zm9yKDtkPjExOylkLT0xMix1Kys7bGV0IGg9ZCE9PTE/RkJbZF06bmV3IERhdGUoRGF0ZS5VVEModSxkKzEsMCkpLmdldFVUQ0RhdGUoKTt0aGlzLmRheT5oJiYodGhpcy5kYXk9aCl9dGhpcy5hcHBseSgpO2xldCBzPXMxW2ldWzBdLGw9czFbaV1bMl0sYz10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShzLHQsbCk7aWYocz09PSJkYXkiKXtsZXQgdT10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTt0aGlzW3NdPU1hdGgubWluKGMsdSl9ZWxzZSB0aGlzW3NdPWM7aWYodGhpcy5hcHBseSgpLGk9PT0wKXtsZXQgdT1zMVsxXVsyXSxkPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJkYXkiLHQsdSksaD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSxmPU1hdGgubWluKGQsaCk7ZiE9PXRoaXMuZGF5JiYodGhpcy5kYXk9Zix0aGlzLmhvdXI9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoImhvdXIiLHQsczFbMl1bMl0pLHRoaXMubWludXRlPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJtaW51dGUiLHQsczFbM11bMl0pLHRoaXMuc2Vjb25kPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJzZWNvbmQiLHQsczFbNF1bMl0pKX1pZihpPT09MCYmIXQuc3RhclllYXIpe2Zvcig7dGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8dC55ZWFyLmxlbmd0aCYmdC55ZWFyW3RoaXMueWVhcl09PT0wOyl0aGlzLnllYXItLTtpZih0aGlzLnllYXI8MClyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLDAsYSsxKX1lbHNlIGlmKHRoaXMuYXBwbHkoKSlyZXR1cm4gdGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLGktMSxhKzEpfXJldHVybiBpKz0xLGk+PXMxLmxlbmd0aD90aGlzOnRoaXMueWVhcjwwP251bGw6dGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLGksYSsxKX1nZXRNYXhQYXR0ZXJuVmFsdWUodCxyLGkpe2lmKHQ9PT0iZGF5IiYmci5sYXN0RGF5T2ZNb250aClyZXR1cm4gdGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7aWYodD09PSJkYXkiJiYhci5zdGFyRE9XKXJldHVybiB0aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtmb3IobGV0IGE9clt0XS5sZW5ndGgtMTthPj0wO2EtLSlpZihyW3RdW2FdKXJldHVybiBhLWk7cmV0dXJuIHJbdF0ubGVuZ3RoLTEtaX1maW5kUHJldmlvdXModCxyLGksYSl7cmV0dXJuIHRoaXMuX2ZpbmRNYXRjaCh0LHIsaSxhLC0xKX1nZXREYXRlKHQpe3JldHVybiB0fHx0aGlzLnR6PT09dm9pZCAwP25ldyBEYXRlKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLm1zKTp0eXBlb2YgdGhpcy50ej09Im51bWJlciI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLXRoaXMudHosdGhpcy5zZWNvbmQsdGhpcy5tcykpOmhwZShOQih0aGlzLnllYXIsdGhpcy5tb250aCsxLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLnR6KSwhMSl9Z2V0VGltZSgpe3JldHVybiB0aGlzLmdldERhdGUoITEpLmdldFRpbWUoKX1tYXRjaCh0LHIpe2lmKCF0LnN0YXJZZWFyJiYodGhpcy55ZWFyPDB8fHRoaXMueWVhcj49dC55ZWFyLmxlbmd0aHx8dC55ZWFyW3RoaXMueWVhcl09PT0wKSlyZXR1cm4hMTtmb3IobGV0IGk9MDtpPHMxLmxlbmd0aDtpKyspe2xldCBhPXMxW2ldWzBdLG49czFbaV1bMl0sbz10aGlzW2FdO2lmKG8rbjwwfHxvK24+PXRbYV0ubGVuZ3RoKXJldHVybiExO2xldCBzPXRbYV1bbytuXTtpZihhPT09ImRheSIpe2lmKCFzKXtmb3IobGV0IGw9MDtsPHQubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtsKyspaWYodC5uZWFyZXN0V2Vla2RheXNbbF0pe2xldCBjPXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsbC1uKTtpZihjIT09LTEmJmM9PT1vKXtzPTE7YnJlYWt9fX1pZih0Lmxhc3RXZWVrZGF5KXtsZXQgbD10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtvPT09bCYmKHM9MSl9aWYodC5sYXN0RGF5T2ZNb250aCl7bGV0IGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7bz09PWwmJihzPTEpfWlmKCF0LnN0YXJET1cpe2xldCBsPW5ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLDEsMCwwLDAsMCkpLmdldFVUQ0RheSgpLGM9dC5kYXlPZldlZWtbKGwrKG8tMSkpJTddO2MmJmMmNjMmJihjPXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCxvLGMpPzE6MCksdC51c2VBbmRMb2dpYz9zPXMmJmM6IXIuZG9tQW5kRG93JiYhdC5zdGFyRE9NP3M9c3x8YzpzPXMmJmN9fWlmKCFzKXJldHVybiExfXJldHVybiEwfX07bXBlPTMwKjFlMyx3NT1bXSxicGU9Y2xhc3N7bmFtZTtvcHRpb25zO19zdGF0ZXM7Zm47Z2V0VHooKXtyZXR1cm4gdGhpcy5vcHRpb25zLnRpbWV6b25lfHx0aGlzLm9wdGlvbnMudXRjT2Zmc2V0fWFwcGx5RGF5T2Zmc2V0KGUpe2lmKHRoaXMub3B0aW9ucy5kYXlPZmZzZXQhPT12b2lkIDAmJnRoaXMub3B0aW9ucy5kYXlPZmZzZXQhPT0wKXtsZXQgdD10aGlzLm9wdGlvbnMuZGF5T2Zmc2V0KjI0KjYwKjYwKjFlMztyZXR1cm4gbmV3IERhdGUoZS5nZXRUaW1lKCkrdCl9cmV0dXJuIGV9Y29uc3RydWN0b3IoZSx0LHIpe2xldCBpLGE7aWYoYWYodCkpYT10O2Vsc2UgaWYodHlwZW9mIHQ9PSJvYmplY3QiKWk9dDtlbHNlIGlmKHQhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3Igb3B0aW9uc0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLiIpO2lmKGFmKHIpKWE9cjtlbHNlIGlmKHR5cGVvZiByPT0ib2JqZWN0IilpPXI7ZWxzZSBpZihyIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiQ3JvbjogSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgZm9yIGZ1bmNJbi4gU2hvdWxkIGJlIG9uZSBvZiBmdW5jdGlvbiwgb3Igb2JqZWN0IChvcHRpb25zKS4iKTtpZih0aGlzLm5hbWU9aT8ubmFtZSx0aGlzLm9wdGlvbnM9dmZyKGkpLHRoaXMuX3N0YXRlcz17a2lsbDohMSxibG9ja2luZzohMSxwcmV2aW91c1J1bjp2b2lkIDAsY3VycmVudFJ1bjp2b2lkIDAsb25jZTp2b2lkIDAsY3VycmVudFRpbWVvdXQ6dm9pZCAwLG1heFJ1bnM6aT9pLm1heFJ1bnM6dm9pZCAwLHBhdXNlZDppP2kucGF1c2VkOiExLHBhdHRlcm46bmV3IGN4KCIqICogKiAqICoiLHZvaWQgMCx7bW9kZToiYXV0byJ9KX0sZSYmKGUgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2YgZT09InN0cmluZyImJmUuaW5kZXhPZigiOiIpPjApP3RoaXMuX3N0YXRlcy5vbmNlPW5ldyBzaShlLHRoaXMuZ2V0VHooKSk6dGhpcy5fc3RhdGVzLnBhdHRlcm49bmV3IGN4KGUsdGhpcy5vcHRpb25zLnRpbWV6b25lLHttb2RlOnRoaXMub3B0aW9ucy5tb2RlLGFsdGVybmF0aXZlV2Vla2RheXM6dGhpcy5vcHRpb25zLmFsdGVybmF0aXZlV2Vla2RheXMsc2xvcHB5UmFuZ2VzOnRoaXMub3B0aW9ucy5zbG9wcHlSYW5nZXN9KSx0aGlzLm5hbWUpe2lmKHc1LmZpbmQobj0+bi5uYW1lPT09dGhpcy5uYW1lKSl0aHJvdyBuZXcgRXJyb3IoIkNyb246IFRyaWVkIHRvIGluaXRpYWxpemUgbmV3IG5hbWVkIGpvYiAnIit0aGlzLm5hbWUrIicsIGJ1dCBuYW1lIGFscmVhZHkgdGFrZW4uIik7dzUucHVzaCh0aGlzKX1yZXR1cm4gYSE9PXZvaWQgMCYmeGZyKGEpJiYodGhpcy5mbj1hLHRoaXMuc2NoZWR1bGUoKSksdGhpc31uZXh0UnVuKGUpe2xldCB0PXRoaXMuX25leHQoZSk7cmV0dXJuIHQ/dGhpcy5hcHBseURheU9mZnNldCh0LmdldERhdGUoITEpKTpudWxsfW5leHRSdW5zKGUsdCl7dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJmU+dGhpcy5fc3RhdGVzLm1heFJ1bnMmJihlPXRoaXMuX3N0YXRlcy5tYXhSdW5zKTtsZXQgcj10fHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bnx8dm9pZCAwO3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKGUsciwibmV4dCIpfXByZXZpb3VzUnVucyhlLHQpe3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKGUsdHx8dm9pZCAwLCJwcmV2aW91cyIpfV9lbnVtZXJhdGVSdW5zKGUsdCxyKXtsZXQgaT1bXSxhPXQ/bmV3IHNpKHQsdGhpcy5nZXRUeigpKTpudWxsLG49cj09PSJuZXh0Ij90aGlzLl9uZXh0OnRoaXMuX3ByZXZpb3VzO2Zvcig7ZS0tOyl7bGV0IG89bi5jYWxsKHRoaXMsYSk7aWYoIW8pYnJlYWs7bGV0IHM9by5nZXREYXRlKCExKTtpLnB1c2godGhpcy5hcHBseURheU9mZnNldChzKSksYT1vfXJldHVybiBpfW1hdGNoKGUpe2lmKHRoaXMuX3N0YXRlcy5vbmNlKXtsZXQgcj1uZXcgc2koZSx0aGlzLmdldFR6KCkpO3IubXM9MDtsZXQgaT1uZXcgc2kodGhpcy5fc3RhdGVzLm9uY2UsdGhpcy5nZXRUeigpKTtyZXR1cm4gaS5tcz0wLHIuZ2V0VGltZSgpPT09aS5nZXRUaW1lKCl9bGV0IHQ9bmV3IHNpKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4gdC5tcz0wLHQubWF0Y2godGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKX1nZXRQYXR0ZXJuKCl7aWYoIXRoaXMuX3N0YXRlcy5vbmNlKXJldHVybiB0aGlzLl9zdGF0ZXMucGF0dGVybj90aGlzLl9zdGF0ZXMucGF0dGVybi5wYXR0ZXJuOnZvaWQgMH1nZXRPbmNlKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5vbmNlP3RoaXMuX3N0YXRlcy5vbmNlLmdldERhdGUoKTpudWxsfWlzUnVubmluZygpe2xldCBlPXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksdD0hdGhpcy5fc3RhdGVzLnBhdXNlZCxyPXRoaXMuZm4hPT12b2lkIDAsaT0hdGhpcy5fc3RhdGVzLmtpbGw7cmV0dXJuIHQmJnImJmkmJmUhPT1udWxsfWlzU3RvcHBlZCgpe3JldHVybiB0aGlzLl9zdGF0ZXMua2lsbH1pc0J1c3koKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmJsb2NraW5nfWN1cnJlbnRSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4/dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4uZ2V0RGF0ZSgpOm51bGx9cHJldmlvdXNSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuP3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bi5nZXREYXRlKCk6bnVsbH1tc1RvTmV4dChlKXtsZXQgdD10aGlzLl9uZXh0KGUpO3JldHVybiB0P2UgaW5zdGFuY2VvZiBzaXx8ZSBpbnN0YW5jZW9mIERhdGU/dC5nZXRUaW1lKCktZS5nZXRUaW1lKCk6dC5nZXRUaW1lKCktbmV3IHNpKGUpLmdldFRpbWUoKTpudWxsfXN0b3AoKXt0aGlzLl9zdGF0ZXMua2lsbD0hMCx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQpO2xldCBlPXc1LmluZGV4T2YodGhpcyk7ZT49MCYmdzUuc3BsaWNlKGUsMSl9cGF1c2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMCwhdGhpcy5fc3RhdGVzLmtpbGx9cmVzdW1lKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITEsIXRoaXMuX3N0YXRlcy5raWxsfXNjaGVkdWxlKGUpe2lmKGUmJnRoaXMuZm4pdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJdCBpcyBub3QgYWxsb3dlZCB0byBzY2hlZHVsZSB0d28gZnVuY3Rpb25zIHVzaW5nIHRoZSBzYW1lIENyb25lciBpbnN0YW5jZS4iKTtlJiYodGhpcy5mbj1lKTtsZXQgdD10aGlzLm1zVG9OZXh0KCkscj10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pO3JldHVybiB0PT1udWxsfHxpc05hTih0KXx8cj09PW51bGw/dGhpczoodD5tcGUmJih0PW1wZSksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuX2NoZWNrVHJpZ2dlcihyKSx0KSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJnRoaXMub3B0aW9ucy51bnJlZiYmeWZyKHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCksdGhpcyl9YXN5bmMgX3RyaWdnZXIoZSl7dGhpcy5fc3RhdGVzLmJsb2NraW5nPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuPW5ldyBzaSh2b2lkIDAsdGhpcy5nZXRUeigpKTt0cnl7aWYodGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKHQpe2lmKGFmKHRoaXMub3B0aW9ucy5jYXRjaCkpdHJ5e3RoaXMub3B0aW9ucy5jYXRjaCh0LHRoaXMpfWNhdGNoe319ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWZpbmFsbHl7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBzaShlLHRoaXMuZ2V0VHooKSksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfX1hc3luYyB0cmlnZ2VyKCl7YXdhaXQgdGhpcy5fdHJpZ2dlcigpfXJ1bnNMZWZ0KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5tYXhSdW5zfV9jaGVja1RyaWdnZXIoZSl7bGV0IHQ9bmV3IERhdGUscj0hdGhpcy5fc3RhdGVzLnBhdXNlZCYmdC5nZXRUaW1lKCk+PWUuZ2V0VGltZSgpLGk9dGhpcy5fc3RhdGVzLmJsb2NraW5nJiZ0aGlzLm9wdGlvbnMucHJvdGVjdDtyJiYhaT8odGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zLS0sdGhpcy5fdHJpZ2dlcigpKTpyJiZpJiZhZih0aGlzLm9wdGlvbnMucHJvdGVjdCkmJnNldFRpbWVvdXQoKCk9PnRoaXMub3B0aW9ucy5wcm90ZWN0KHRoaXMpLDApLHRoaXMuc2NoZWR1bGUoKX1fbmV4dChlKXtsZXQgdD0hIShlfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bikscj0hMTshZSYmdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnRoaXMub3B0aW9ucy5pbnRlcnZhbCYmKFtlLHRdPXRoaXMuX2NhbGN1bGF0ZVByZXZpb3VzUnVuKGUsdCkscj0hZSksZT1uZXcgc2koZSx0aGlzLmdldFR6KCkpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZlJiZlLmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJihlPXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgaT10aGlzLl9zdGF0ZXMub25jZXx8bmV3IHNpKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4hciYmaSE9PXRoaXMuX3N0YXRlcy5vbmNlJiYoaT1pLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsdCkpLHRoaXMuX3N0YXRlcy5vbmNlJiZ0aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8PWUuZ2V0VGltZSgpfHxpPT09bnVsbHx8dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zPD0wfHx0aGlzLl9zdGF0ZXMua2lsbHx8dGhpcy5vcHRpb25zLnN0b3BBdCYmaS5nZXRUaW1lKCk+PXRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpP251bGw6aX1fcHJldmlvdXMoZSl7bGV0IHQ9bmV3IHNpKGUsdGhpcy5nZXRUeigpKTt0aGlzLm9wdGlvbnMuc3RvcEF0JiZ0LmdldFRpbWUoKT50aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKSYmKHQ9dGhpcy5vcHRpb25zLnN0b3BBdCk7bGV0IHI9bmV3IHNpKHQsdGhpcy5nZXRUeigpKTtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPHQuZ2V0VGltZSgpP3RoaXMuX3N0YXRlcy5vbmNlOm51bGw6KHI9ci5kZWNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKSxyPT09bnVsbHx8dGhpcy5vcHRpb25zLnN0YXJ0QXQmJnIuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKT9udWxsOnIpfV9jYWxjdWxhdGVQcmV2aW91c1J1bihlLHQpe2xldCByPW5ldyBzaSh2b2lkIDAsdGhpcy5nZXRUeigpKSxpPWU7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD1yLmdldFRpbWUoKSl7aT10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgYT1pLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7YTw9ci5nZXRUaW1lKCk7KWk9bmV3IHNpKGksdGhpcy5nZXRUeigpKS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxhPWkuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7dD0hMH1yZXR1cm4gaT09PW51bGwmJihpPXZvaWQgMCksW2ksdF19fX0pO3ZhciB1eCxvZix3ZnIsbjAxLFoyLHB4LGNhLEFuLE01LE9CLFVjLGs1LGh4LGZ4LG14LGd4LG0zLFM1LGR4LHhwZSxSQixCQix5cGUsSEIsT3Q9cCgoKT0+e3V4PTcsb2Y9MzY1LjI0MjUsd2ZyPU1hdGgucG93KDEwLDgpKjI0KjYwKjYwKjFlMyxuMDE9LXdmcixaMj02MDQ4ZTUscHg9ODY0ZTUsY2E9NmU0LEFuPTM2ZTUsTTU9MWUzLE9CPTUyNTYwMCxVYz00MzIwMCxrNT0xNDQwLGh4PTYwLGZ4PTMsbXg9MTIsZ3g9NCxtMz0zNjAwLFM1PTYwLGR4PW0zKjI0LHhwZT1keCo3LFJCPWR4KjM2NS4yNDI1LEJCPVJCLzEyLHlwZT1CQiozLEhCPVN5bWJvbC5mb3IoImNvbnN0cnVjdERhdGVGcm9tIil9KTtmdW5jdGlvbiBQZShlLHQpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKHQpOmUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmSEIgaW4gZT9lW0hCXSh0KTplIGluc3RhbmNlb2YgRGF0ZT9uZXcgZS5jb25zdHJ1Y3Rvcih0KTpuZXcgRGF0ZSh0KX12YXIgbDAxLGZ0PXAoKCk9PntPdCgpO2wwMT1QZX0pO2Z1bmN0aW9uIGxlKGUsdCl7cmV0dXJuIFBlKHR8fGUsZSl9dmFyIHUwMSxPZT1wKCgpPT57ZnQoKTt1MDE9bGV9KTtmdW5jdGlvbiBsaShlLHQscil7bGV0IGk9bGUoZSxyPy5pbik7cmV0dXJuIGlzTmFOKHQpP1BlKHI/LmlufHxlLE5hTik6KHQmJmkuc2V0RGF0ZShpLmdldERhdGUoKSt0KSxpKX12YXIgbTAxLFgyPXAoKCk9PntmdCgpO09lKCk7bTAxPWxpfSk7ZnVuY3Rpb24gUTIoZSx0LHIpe2xldCBpPWxlKGUscj8uaW4pO2lmKGlzTmFOKHQpKXJldHVybiBQZShyPy5pbnx8ZSxOYU4pO2lmKCF0KXJldHVybiBpO2xldCBhPWkuZ2V0RGF0ZSgpLG49UGUocj8uaW58fGUsaS5nZXRUaW1lKCkpO24uc2V0TW9udGgoaS5nZXRNb250aCgpK3QrMSwwKTtsZXQgbz1uLmdldERhdGUoKTtyZXR1cm4gYT49bz9uOihpLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCksYSksaSl9dmFyIHgwMSx6NT1wKCgpPT57ZnQoKTtPZSgpO3gwMT1RMn0pO2Z1bmN0aW9uIFdjKGUsdCxyKXtsZXR7eWVhcnM6aT0wLG1vbnRoczphPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOnM9MCxtaW51dGVzOmw9MCxzZWNvbmRzOmM9MH09dCx1PWxlKGUscj8uaW4pLGQ9YXx8aT9RMih1LGEraSoxMik6dSxoPW98fG4/bGkoZCxvK24qNyk6ZCxmPWwrcyo2MCx2PShjK2YqNjApKjFlMztyZXR1cm4gUGUocj8uaW58fGUsK2grdil9dmFyIHowMSxxQj1wKCgpPT57WDIoKTt6NSgpO2Z0KCk7T2UoKTt6MDE9V2N9KTtmdW5jdGlvbiBieChlLHQpe3JldHVybiBsZShlLHQ/LmluKS5nZXREYXkoKT09PTZ9dmFyIF8wMSxqQj1wKCgpPT57T2UoKTtfMDE9Ynh9KTtmdW5jdGlvbiB2eChlLHQpe3JldHVybiBsZShlLHQ/LmluKS5nZXREYXkoKT09PTB9dmFyIEQwMSxWQj1wKCgpPT57T2UoKTtEMDE9dnh9KTtmdW5jdGlvbiBKMihlLHQpe2xldCByPWxlKGUsdD8uaW4pLmdldERheSgpO3JldHVybiByPT09MHx8cj09PTZ9dmFyIEkwMSxzZj1wKCgpPT57T2UoKTtJMDE9SjJ9KTtmdW5jdGlvbiB4eChlLHQscil7bGV0IGk9bGUoZSxyPy5pbiksYT1KMihpLHIpO2lmKGlzTmFOKHQpKXJldHVybiBQZShyPy5pbixOYU4pO2xldCBuPWkuZ2V0SG91cnMoKSxvPXQ8MD8tMToxLHM9TWF0aC50cnVuYyh0LzUpO2kuc2V0RGF0ZShpLmdldERhdGUoKStzKjcpO2xldCBsPU1hdGguYWJzKHQlNSk7Zm9yKDtsPjA7KWkuc2V0RGF0ZShpLmdldERhdGUoKStvKSxKMihpLHIpfHwobC09MSk7cmV0dXJuIGEmJkoyKGkscikmJnQhPT0wJiYoYngoaSxyKSYmaS5zZXREYXRlKGkuZ2V0RGF0ZSgpKyhvPDA/MjotMSkpLHZ4KGkscikmJmkuc2V0RGF0ZShpLmdldERhdGUoKSsobzwwPzE6LTIpKSksaS5zZXRIb3VycyhuKSxpfXZhciBIMDEsVUI9cCgoKT0+e2Z0KCk7akIoKTtWQigpO3NmKCk7T2UoKTtIMDE9eHh9KTtmdW5jdGlvbiBHYyhlLHQscil7cmV0dXJuIFBlKHI/LmlufHxlLCtsZShlKSt0KX12YXIgVTAxLGxmPXAoKCk9PntmdCgpO09lKCk7VTAxPUdjfSk7ZnVuY3Rpb24geXgoZSx0LHIpe3JldHVybiBHYyhlLHQqQW4scil9dmFyIFowMSxXQj1wKCgpPT57bGYoKTtPdCgpO1owMT15eH0pO2Z1bmN0aW9uIExyKCl7cmV0dXJuIHdwZX1mdW5jdGlvbiBNcGUoZSl7d3BlPWV9dmFyIHdwZSxkYT1wKCgpPT57d3BlPXt9fSk7ZnVuY3Rpb24gSnIoZSx0KXtsZXQgcj1McigpLGk9dD8ud2Vla1N0YXJ0c09uPz90Py5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/ci53ZWVrU3RhcnRzT24/P3IubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsYT1sZShlLHQ/LmluKSxuPWEuZ2V0RGF5KCksbz0objxpPzc6MCkrbi1pO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktbyksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciBlNDEscjI9cCgoKT0+e2RhKCk7T2UoKTtlNDE9SnJ9KTtmdW5jdGlvbiBRMShlLHQpe3JldHVybiBKcihlLHsuLi50LHdlZWtTdGFydHNPbjoxfSl9dmFyIGk0MSxLMj1wKCgpPT57cjIoKTtpNDE9UTF9KTtmdW5jdGlvbiBxYShlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9ci5nZXRGdWxsWWVhcigpLGE9UGUociwwKTthLnNldEZ1bGxZZWFyKGkrMSwwLDQpLGEuc2V0SG91cnMoMCwwLDAsMCk7bGV0IG49UTEoYSksbz1QZShyLDApO28uc2V0RnVsbFllYXIoaSwwLDQpLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9UTEobyk7cmV0dXJuIHIuZ2V0VGltZSgpPj1uLmdldFRpbWUoKT9pKzE6ci5nZXRUaW1lKCk+PXMuZ2V0VGltZSgpP2k6aS0xfXZhciBsNDEsWWM9cCgoKT0+e2Z0KCk7SzIoKTtPZSgpO2w0MT1xYX0pO2Z1bmN0aW9uIEMxKGUpe2xldCB0PWxlKGUpLHI9bmV3IERhdGUoRGF0ZS5VVEModC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSx0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCksdC5nZXRNaWxsaXNlY29uZHMoKSkpO3JldHVybiByLnNldFVUQ0Z1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSksK2UtK3J9dmFyIGdsPXAoKCk9PntPZSgpfSk7ZnVuY3Rpb24gZHQoZSwuLi50KXtsZXQgcj1QZS5iaW5kKG51bGwsZXx8dC5maW5kKGk9PnR5cGVvZiBpPT0ib2JqZWN0IikpO3JldHVybiB0Lm1hcChyKX12YXIgUnI9cCgoKT0+e2Z0KCl9KTtmdW5jdGlvbiBlcyhlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiByLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIG00MSxjZj1wKCgpPT57T2UoKTttNDE9ZXN9KTtmdW5jdGlvbiBUaShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KSxuPWVzKGkpLG89ZXMoYSkscz0rbi1DMShuKSxsPStvLUMxKG8pO3JldHVybiBNYXRoLnJvdW5kKChzLWwpL3B4KX12YXIgdzQxLGJsPXAoKCk9PntnbCgpO1JyKCk7T3QoKTtjZigpO3c0MT1UaX0pO2Z1bmN0aW9uIERuKGUsdCl7bGV0IHI9cWEoZSx0KSxpPVBlKHQ/LmlufHxlLDApO3JldHVybiBpLnNldEZ1bGxZZWFyKHIsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApLFExKGkpfXZhciBDNDEsQzU9cCgoKT0+e2Z0KCk7WWMoKTtLMigpO0M0MT1Ebn0pO2Z1bmN0aW9uIHd4KGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKSxhPVRpKGksRG4oaSxyKSksbj1QZShyPy5pbnx8ZSwwKTtyZXR1cm4gbi5zZXRGdWxsWWVhcih0LDAsNCksbi5zZXRIb3VycygwLDAsMCwwKSxpPURuKG4pLGkuc2V0RGF0ZShpLmdldERhdGUoKSthKSxpfXZhciBFNDEsR0I9cCgoKT0+e2Z0KCk7YmwoKTtDNSgpO09lKCk7RTQxPXd4fSk7ZnVuY3Rpb24gTXgoZSx0LHIpe3JldHVybiB3eChlLHFhKGUscikrdCxyKX12YXIgTjQxLFlCPXAoKCk9PntZYygpO0dCKCk7TjQxPU14fSk7ZnVuY3Rpb24gVDUoZSx0LHIpe2xldCBpPWxlKGUscj8uaW4pO3JldHVybiBpLnNldFRpbWUoaS5nZXRUaW1lKCkrdCpjYSksaX12YXIgQjQxLGt4PXAoKCk9PntPdCgpO09lKCk7QjQxPVQ1fSk7ZnVuY3Rpb24gXzUoZSx0LHIpe3JldHVybiBRMihlLHQqMyxyKX12YXIgajQxLFN4PXAoKCk9Pnt6NSgpO2o0MT1fNX0pO2Z1bmN0aW9uIHp4KGUsdCxyKXtyZXR1cm4gR2MoZSx0KjFlMyxyKX12YXIgVzQxLFpCPXAoKCk9PntsZigpO1c0MT16eH0pO2Z1bmN0aW9uIFpjKGUsdCxyKXtyZXR1cm4gbGkoZSx0Kjcscil9dmFyIFo0MSxkZj1wKCgpPT57WDIoKTtaNDE9WmN9KTtmdW5jdGlvbiBDeChlLHQscil7cmV0dXJuIFEyKGUsdCoxMixyKX12YXIgSjQxLFhCPXAoKCk9Pnt6NSgpO0o0MT1DeH0pO2Z1bmN0aW9uIGtwZShlLHQscil7bGV0W2ksYV09WytsZShlLnN0YXJ0LHI/LmluKSwrbGUoZS5lbmQscj8uaW4pXS5zb3J0KChzLGwpPT5zLWwpLFtuLG9dPVsrbGUodC5zdGFydCxyPy5pbiksK2xlKHQuZW5kLHI/LmluKV0uc29ydCgocyxsKT0+cy1sKTtyZXR1cm4gcj8uaW5jbHVzaXZlP2k8PW8mJm48PWE6aTxvJiZuPGF9dmFyIHQzMSxTcGU9cCgoKT0+e09lKCk7dDMxPWtwZX0pO2Z1bmN0aW9uIFR4KGUsdCl7bGV0IHIsaT10Py5pbjtyZXR1cm4gZS5mb3JFYWNoKGE9PnshaSYmdHlwZW9mIGE9PSJvYmplY3QiJiYoaT1QZS5iaW5kKG51bGwsYSkpO2xldCBuPWxlKGEsaSk7KCFyfHxyPG58fGlzTmFOKCtuKSkmJihyPW4pfSksUGUoaSxyfHxOYU4pfXZhciBuMzEsUUI9cCgoKT0+e2Z0KCk7T2UoKTtuMzE9VHh9KTtmdW5jdGlvbiBfeChlLHQpe2xldCByLGk9dD8uaW47cmV0dXJuIGUuZm9yRWFjaChhPT57IWkmJnR5cGVvZiBhPT0ib2JqZWN0IiYmKGk9UGUuYmluZChudWxsLGEpKTtsZXQgbj1sZShhLGkpOyghcnx8cj5ufHxpc05hTigrbikpJiYocj1uKX0pLFBlKGkscnx8TmFOKX12YXIgYzMxLEpCPXAoKCk9PntmdCgpO09lKCk7YzMxPV94fSk7ZnVuY3Rpb24genBlKGUsdCxyKXtsZXRbaSxhLG5dPWR0KHI/LmluLGUsdC5zdGFydCx0LmVuZCk7cmV0dXJuIF94KFtUeChbaSxhXSxyKSxuXSxyKX12YXIgZjMxLENwZT1wKCgpPT57UnIoKTtRQigpO0pCKCk7ZjMxPXpwZX0pO2Z1bmN0aW9uIEx4KGUsdCl7bGV0IHI9K2xlKGUpO2lmKGlzTmFOKHIpKXJldHVybiBOYU47bGV0IGksYTtyZXR1cm4gdC5mb3JFYWNoKChuLG8pPT57bGV0IHM9bGUobik7aWYoaXNOYU4oK3MpKXtpPU5hTixhPU5hTjtyZXR1cm59bGV0IGw9TWF0aC5hYnMoci0rcyk7KGk9PW51bGx8fGw8YSkmJihpPW8sYT1sKX0pLGl9dmFyIGIzMSxLQj1wKCgpPT57T2UoKTtiMzE9THh9KTtmdW5jdGlvbiBUcGUoZSx0LHIpe2xldFtpLC4uLmFdPWR0KHI/LmluLGUsLi4udCksbj1MeChpLGEpO2lmKHR5cGVvZiBuPT0ibnVtYmVyIiYmaXNOYU4obikpcmV0dXJuIFBlKGksTmFOKTtpZihuIT09dm9pZCAwKXJldHVybiBhW25dfXZhciBNMzEsX3BlPXAoKCk9PntScigpO0tCKCk7ZnQoKTtNMzE9VHBlfSk7ZnVuY3Rpb24gdWEoZSx0KXtsZXQgcj0rbGUoZSktK2xlKHQpO3JldHVybiByPDA/LTE6cj4wPzE6cn12YXIgejMxLGczPXAoKCk9PntPZSgpO3ozMT11YX0pO2Z1bmN0aW9uIExwZShlLHQpe2xldCByPStsZShlKS0rbGUodCk7cmV0dXJuIHI+MD8tMTpyPDA/MTpyfXZhciBfMzEsQXBlPXAoKCk9PntPZSgpO18zMT1McGV9KTtmdW5jdGlvbiBZdChlKXtyZXR1cm4gUGUoZSxEYXRlLm5vdygpKX12YXIgRDMxLGNpPXAoKCk9PntmdCgpO0QzMT1ZdH0pO2Z1bmN0aW9uIERwZShlKXtsZXQgdD1NYXRoLnRydW5jKGUvNyk7cmV0dXJuIHQ9PT0wPzA6dH12YXIgSTMxLEVwZT1wKCgpPT57T3QoKTtJMzE9RHBlfSk7ZnVuY3Rpb24gdHMoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCk7cmV0dXJuK2VzKGkpPT0rZXMoYSl9dmFyIE8zMSxMNT1wKCgpPT57UnIoKTtjZigpO08zMT10c30pO2Z1bmN0aW9uIEF4KGUpe3JldHVybiBlIGluc3RhbmNlb2YgRGF0ZXx8dHlwZW9mIGU9PSJvYmplY3QiJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBEYXRlXSJ9dmFyIEIzMSxlSD1wKCgpPT57QjMxPUF4fSk7ZnVuY3Rpb24gVWkoZSl7cmV0dXJuISghQXgoZSkmJnR5cGVvZiBlIT0ibnVtYmVyInx8aXNOYU4oK2xlKGUpKSl9dmFyIFYzMSx2bD1wKCgpPT57ZUgoKTtPZSgpO1YzMT1VaX0pO2Z1bmN0aW9uICRwZShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtpZighVWkoaSl8fCFVaShhKSlyZXR1cm4gTmFOO2xldCBuPVRpKGksYSksbz1uPDA/LTE6MSxzPU1hdGgudHJ1bmMobi83KSxsPXMqNSxjPWxpKGEscyo3KTtmb3IoOyF0cyhpLGMpOylsKz1KMihjLHIpPzA6byxjPWxpKGMsbyk7cmV0dXJuIGw9PT0wPzA6bH12YXIgSjMxLElwZT1wKCgpPT57UnIoKTtYMigpO2JsKCk7TDUoKTt2bCgpO3NmKCk7SjMxPSRwZX0pO2Z1bmN0aW9uIER4KGUsdCxyKXtsZXRbaSxhXT1kdChyPy5pbixlLHQpO3JldHVybiBxYShpLHIpLXFhKGEscil9dmFyIHI2MSx0SD1wKCgpPT57UnIoKTtZYygpO3I2MT1EeH0pO2Z1bmN0aW9uIFBwZShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KSxuPVExKGkpLG89UTEoYSkscz0rbi1DMShuKSxsPStvLUMxKG8pO3JldHVybiBNYXRoLnJvdW5kKChzLWwpL1oyKX12YXIgbDYxLE5wZT1wKCgpPT57Z2woKTtScigpO090KCk7SzIoKTtsNjE9UHBlfSk7ZnVuY3Rpb24gYjMoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCksbj1pLmdldEZ1bGxZZWFyKCktYS5nZXRGdWxsWWVhcigpLG89aS5nZXRNb250aCgpLWEuZ2V0TW9udGgoKTtyZXR1cm4gbioxMitvfXZhciB1NjEsRXg9cCgoKT0+e1JyKCk7dTYxPWIzfSk7ZnVuY3Rpb24gdWYoZSx0KXtsZXQgcj1sZShlLHQ/LmluKTtyZXR1cm4gTWF0aC50cnVuYyhyLmdldE1vbnRoKCkvMykrMX12YXIgZjYxLHJIPXAoKCk9PntPZSgpO2Y2MT11Zn0pO2Z1bmN0aW9uIEE1KGUsdCxyKXtsZXRbaSxhXT1kdChyPy5pbixlLHQpLG49aS5nZXRGdWxsWWVhcigpLWEuZ2V0RnVsbFllYXIoKSxvPXVmKGkpLXVmKGEpO3JldHVybiBuKjQrb312YXIgdjYxLGlIPXAoKCk9PntScigpO3JIKCk7djYxPUE1fSk7ZnVuY3Rpb24gdjMoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCksbj1KcihpLHIpLG89SnIoYSxyKSxzPStuLUMxKG4pLGw9K28tQzEobyk7cmV0dXJuIE1hdGgucm91bmQoKHMtbCkvWjIpfXZhciBTNjEsJHg9cCgoKT0+e2dsKCk7UnIoKTtPdCgpO3IyKCk7UzYxPXYzfSk7ZnVuY3Rpb24gWGMoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKS1hLmdldEZ1bGxZZWFyKCl9dmFyIFQ2MSxJeD1wKCgpPT57UnIoKTtUNjE9WGN9KTtmdW5jdGlvbiBENShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KSxuPUZwZShpLGEpLG89TWF0aC5hYnMoVGkoaSxhKSk7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpLW4qbyk7bGV0IHM9KyhGcGUoaSxhKT09PS1uKSxsPW4qKG8tcyk7cmV0dXJuIGw9PT0wPzA6bH1mdW5jdGlvbiBGcGUoZSx0KXtsZXQgcj1lLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfHxlLmdldE1vbnRoKCktdC5nZXRNb250aCgpfHxlLmdldERhdGUoKS10LmdldERhdGUoKXx8ZS5nZXRIb3VycygpLXQuZ2V0SG91cnMoKXx8ZS5nZXRNaW51dGVzKCktdC5nZXRNaW51dGVzKCl8fGUuZ2V0U2Vjb25kcygpLXQuZ2V0U2Vjb25kcygpfHxlLmdldE1pbGxpc2Vjb25kcygpLXQuZ2V0TWlsbGlzZWNvbmRzKCk7cmV0dXJuIHI8MD8tMTpyPjA/MTpyfXZhciBENjEsUHg9cCgoKT0+e1JyKCk7YmwoKTtENjE9RDV9KTtmdW5jdGlvbiBwYShlKXtyZXR1cm4gdD0+e2xldCBpPShlP01hdGhbZV06TWF0aC50cnVuYykodCk7cmV0dXJuIGk9PT0wPzA6aX19dmFyIHhsPXAoKCk9Pnt9KTtmdW5jdGlvbiB4MyhlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KSxuPSgraS0rYSkvQW47cmV0dXJuIHBhKHI/LnJvdW5kaW5nTWV0aG9kKShuKX12YXIgRjYxLE54PXAoKCk9Pnt4bCgpO1JyKCk7T3QoKTtGNjE9eDN9KTtmdW5jdGlvbiBGeChlLHQscil7cmV0dXJuIE14KGUsLXQscil9dmFyIEI2MSxhSD1wKCgpPT57WUIoKTtCNjE9Rnh9KTtmdW5jdGlvbiBPcGUoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCksbj11YShpLGEpLG89TWF0aC5hYnMoRHgoaSxhLHIpKSxzPUZ4KGksbipvLHIpLGw9Kyh1YShzLGEpPT09LW4pLGM9biooby1sKTtyZXR1cm4gYz09PTA/MDpjfXZhciBXNjEsUnBlPXAoKCk9PntScigpO2czKCk7dEgoKTthSCgpO1c2MT1PcGV9KTtmdW5jdGlvbiBFNShlLHQpe3JldHVybitsZShlKS0rbGUodCl9dmFyIFo2MSxPeD1wKCgpPT57T2UoKTtaNjE9RTV9KTtmdW5jdGlvbiB5MyhlLHQscil7bGV0IGk9RTUoZSx0KS9jYTtyZXR1cm4gcGEocj8ucm91bmRpbmdNZXRob2QpKGkpfXZhciBlZDEsUng9cCgoKT0+e3hsKCk7T3QoKTtPeCgpO2VkMT15M30pO2Z1bmN0aW9uICQ1KGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7cmV0dXJuIHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBpZDEsQng9cCgoKT0+e09lKCk7aWQxPSQ1fSk7ZnVuY3Rpb24gSTUoZSx0KXtsZXQgcj1sZShlLHQ/LmluKSxpPXIuZ2V0TW9udGgoKTtyZXR1cm4gci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCksaSsxLDApLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBvZDEsSHg9cCgoKT0+e09lKCk7b2QxPUk1fSk7ZnVuY3Rpb24gcXgoZSx0KXtsZXQgcj1sZShlLHQ/LmluKTtyZXR1cm4rJDUocix0KT09K0k1KHIsdCl9dmFyIHVkMSxuSD1wKCgpPT57QngoKTtIeCgpO09lKCk7dWQxPXF4fSk7ZnVuY3Rpb24gUWMoZSx0LHIpe2xldFtpLGEsbl09ZHQocj8uaW4sZSxlLHQpLG89dWEoYSxuKSxzPU1hdGguYWJzKGIzKGEsbikpO2lmKHM8MSlyZXR1cm4gMDthLmdldE1vbnRoKCk9PT0xJiZhLmdldERhdGUoKT4yNyYmYS5zZXREYXRlKDMwKSxhLnNldE1vbnRoKGEuZ2V0TW9udGgoKS1vKnMpO2xldCBsPXVhKGEsbik9PT0tbztxeChpKSYmcz09PTEmJnVhKGksbik9PT0xJiYobD0hMSk7bGV0IGM9byoocy0rbCk7cmV0dXJuIGM9PT0wPzA6Y312YXIgYmQxLHBmPXAoKCk9PntScigpO2czKCk7RXgoKTtuSCgpO2JkMT1RY30pO2Z1bmN0aW9uIEJwZShlLHQscil7bGV0IGk9UWMoZSx0LHIpLzM7cmV0dXJuIHBhKHI/LnJvdW5kaW5nTWV0aG9kKShpKX12YXIgd2QxLEhwZT1wKCgpPT57eGwoKTtwZigpO3dkMT1CcGV9KTtmdW5jdGlvbiBycyhlLHQscil7bGV0IGk9RTUoZSx0KS8xZTM7cmV0dXJuIHBhKHI/LnJvdW5kaW5nTWV0aG9kKShpKX12YXIgemQxLGhmPXAoKCk9Pnt4bCgpO094KCk7emQxPXJzfSk7ZnVuY3Rpb24gcXBlKGUsdCxyKXtsZXQgaT1ENShlLHQscikvNztyZXR1cm4gcGEocj8ucm91bmRpbmdNZXRob2QpKGkpfXZhciBMZDEsanBlPXAoKCk9Pnt4bCgpO1B4KCk7TGQxPXFwZX0pO2Z1bmN0aW9uIGp4KGUsdCxyKXtsZXRbaSxhXT1kdChyPy5pbixlLHQpLG49dWEoaSxhKSxvPU1hdGguYWJzKFhjKGksYSkpO2kuc2V0RnVsbFllYXIoMTU4NCksYS5zZXRGdWxsWWVhcigxNTg0KTtsZXQgcz11YShpLGEpPT09LW4sbD1uKihvLStzKTtyZXR1cm4gbD09PTA/MDpsfXZhciBJZDEsb0g9cCgoKT0+e1JyKCk7ZzMoKTtJeCgpO0lkMT1qeH0pO2Z1bmN0aW9uIF9pKGUsdCl7bGV0W3IsaV09ZHQoZSx0LnN0YXJ0LHQuZW5kKTtyZXR1cm57c3RhcnQ6cixlbmQ6aX19dmFyIGlzPXAoKCk9PntScigpfSk7ZnVuY3Rpb24gVngoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT0rcj4raSxuPWE/K3I6K2ksbz1hP2k6cjtvLnNldEhvdXJzKDAsMCwwLDApO2xldCBzPXQ/LnN0ZXA/PzE7aWYoIXMpcmV0dXJuW107czwwJiYocz0tcyxhPSFhKTtsZXQgbD1bXTtmb3IoOytvPD1uOylsLnB1c2goUGUocixvKSksby5zZXREYXRlKG8uZ2V0RGF0ZSgpK3MpLG8uc2V0SG91cnMoMCwwLDAsMCk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgQmQxLHNIPXAoKCk9PntpcygpO2Z0KCk7QmQxPVZ4fSk7ZnVuY3Rpb24gVnBlKGUsdCl7bGV0e3N0YXJ0OnIsZW5kOml9PV9pKHQ/LmluLGUpLGE9K3I+K2ksbj1hPytyOitpLG89YT9pOnI7by5zZXRNaW51dGVzKDAsMCwwKTtsZXQgcz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKFBlKHIsbykpLG8uc2V0SG91cnMoby5nZXRIb3VycygpK3MpO3JldHVybiBhP2wucmV2ZXJzZSgpOmx9dmFyIFZkMSxVcGU9cCgoKT0+e2lzKCk7ZnQoKTtWZDE9VnBlfSk7ZnVuY3Rpb24gV3BlKGUsdCl7bGV0e3N0YXJ0OnIsZW5kOml9PV9pKHQ/LmluLGUpO3Iuc2V0U2Vjb25kcygwLDApO2xldCBhPStyPitpLG49YT8rcjoraSxvPWE/aTpyLHM9dD8uc3RlcD8/MTtpZighcylyZXR1cm5bXTtzPDAmJihzPS1zLGE9IWEpO2xldCBsPVtdO2Zvcig7K288PW47KWwucHVzaChQZShyLG8pKSxvPVQ1KG8scyk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgWmQxLEdwZT1wKCgpPT57aXMoKTtreCgpO2Z0KCk7WmQxPVdwZX0pO2Z1bmN0aW9uIFlwZShlLHQpe2xldHtzdGFydDpyLGVuZDppfT1faSh0Py5pbixlKSxhPStyPitpLG49YT8rcjoraSxvPWE/aTpyO28uc2V0SG91cnMoMCwwLDAsMCksby5zZXREYXRlKDEpO2xldCBzPXQ/LnN0ZXA/PzE7aWYoIXMpcmV0dXJuW107czwwJiYocz0tcyxhPSFhKTtsZXQgbD1bXTtmb3IoOytvPD1uOylsLnB1c2goUGUocixvKSksby5zZXRNb250aChvLmdldE1vbnRoKCkrcyk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgS2QxLFpwZT1wKCgpPT57aXMoKTtmdCgpO0tkMT1ZcGV9KTtmdW5jdGlvbiBhcyhlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpLGE9aS1pJTM7cmV0dXJuIHIuc2V0TW9udGgoYSwxKSxyLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIHI1MSxVeD1wKCgpPT57T2UoKTtyNTE9YXN9KTtmdW5jdGlvbiBYcGUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT0rcj4raSxuPWE/K2FzKHIpOithcyhpKSxvPWE/YXMoaSk6YXMocikscz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKFBlKHIsbykpLG89XzUobyxzKTtyZXR1cm4gYT9sLnJldmVyc2UoKTpsfXZhciBsNTEsUXBlPXAoKCk9PntpcygpO1N4KCk7ZnQoKTtVeCgpO2w1MT1YcGV9KTtmdW5jdGlvbiBKcGUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT0rcj4raSxuPWE/SnIoaSx0KTpKcihyLHQpLG89YT9KcihyLHQpOkpyKGksdCk7bi5zZXRIb3VycygxNSksby5zZXRIb3VycygxNSk7bGV0IHM9K28uZ2V0VGltZSgpLGw9bixjPXQ/LnN0ZXA/PzE7aWYoIWMpcmV0dXJuW107YzwwJiYoYz0tYyxhPSFhKTtsZXQgdT1bXTtmb3IoOytsPD1zOylsLnNldEhvdXJzKDApLHUucHVzaChQZShyLGwpKSxsPVpjKGwsYyksbC5zZXRIb3VycygxNSk7cmV0dXJuIGE/dS5yZXZlcnNlKCk6dX12YXIgZjUxLEtwZT1wKCgpPT57aXMoKTtkZigpO2Z0KCk7cjIoKTtmNTE9SnBlfSk7ZnVuY3Rpb24gUDUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT1WeCh7c3RhcnQ6cixlbmQ6aX0sdCksbj1bXSxvPTA7Zm9yKDtvPGEubGVuZ3RoOyl7bGV0IHM9YVtvKytdO0oyKHMpJiZuLnB1c2goUGUocixzKSl9cmV0dXJuIG59dmFyIHk1MSxXeD1wKCgpPT57aXMoKTtmdCgpO3NIKCk7c2YoKTt5NTE9UDV9KTtmdW5jdGlvbiBKYyhlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiByLnNldERhdGUoMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBrNTEsZmY9cCgoKT0+e09lKCk7azUxPUpjfSk7ZnVuY3Rpb24gZWhlKGUsdCl7bGV0IHI9SmMoZSx0KSxpPUk1KGUsdCk7cmV0dXJuIFA1KHtzdGFydDpyLGVuZDppfSx0KX12YXIgXzUxLHRoZT1wKCgpPT57V3goKTtIeCgpO2ZmKCk7XzUxPWVoZX0pO2Z1bmN0aW9uIEd4KGUsdCl7bGV0IHI9bGUoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoaSsxLDAsMCksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEQ1MSxsSD1wKCgpPT57T2UoKTtENTE9R3h9KTtmdW5jdGlvbiBONShlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSwwLDEpLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgSTUxLFl4PXAoKCk9PntPZSgpO0k1MT1ONX0pO2Z1bmN0aW9uIHJoZShlLHQpe2xldCByPU41KGUsdCksaT1HeChlLHQpO3JldHVybiBQNSh7c3RhcnQ6cixlbmQ6aX0sdCl9dmFyIFI1MSxpaGU9cCgoKT0+e1d4KCk7bEgoKTtZeCgpO1I1MT1yaGV9KTtmdW5jdGlvbiBhaGUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT0rcj4raSxuPWE/K3I6K2ksbz1hP2k6cjtvLnNldEhvdXJzKDAsMCwwLDApLG8uc2V0TW9udGgoMCwxKTtsZXQgcz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKFBlKHIsbykpLG8uc2V0RnVsbFllYXIoby5nZXRGdWxsWWVhcigpK3MpO3JldHVybiBhP2wucmV2ZXJzZSgpOmx9dmFyIGo1MSxuaGU9cCgoKT0+e2lzKCk7ZnQoKTtqNTE9YWhlfSk7ZnVuY3Rpb24gb2hlKGUsdCl7bGV0IHI9bGUoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCksYT05K01hdGguZmxvb3IoaS8xMCkqMTA7cmV0dXJuIHIuc2V0RnVsbFllYXIoYSwxMSwzMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIFc1MSxzaGU9cCgoKT0+e09lKCk7VzUxPW9oZX0pO2Z1bmN0aW9uIGxoZShlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiByLnNldE1pbnV0ZXMoNTksNTksOTk5KSxyfXZhciBaNTEsY2hlPXAoKCk9PntPZSgpO1o1MT1saGV9KTtmdW5jdGlvbiBaeChlLHQpe2xldCByPUxyKCksaT10Py53ZWVrU3RhcnRzT24/P3Q/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxhPWxlKGUsdD8uaW4pLG49YS5nZXREYXkoKSxvPShuPGk/LTc6MCkrNi0obi1pKTtyZXR1cm4gYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK28pLGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciBLNTEsY0g9cCgoKT0+e2RhKCk7T2UoKTtLNTE9Wnh9KTtmdW5jdGlvbiBkaGUoZSx0KXtyZXR1cm4gWngoZSx7Li4udCx3ZWVrU3RhcnRzT246MX0pfXZhciBydTEsdWhlPXAoKCk9PntjSCgpO3J1MT1kaGV9KTtmdW5jdGlvbiBwaGUoZSx0KXtsZXQgcj1xYShlLHQpLGk9UGUodD8uaW58fGUsMCk7aS5zZXRGdWxsWWVhcihyKzEsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApO2xldCBhPVExKGksdCk7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKGEuZ2V0TWlsbGlzZWNvbmRzKCktMSksYX12YXIgc3UxLGhoZT1wKCgpPT57ZnQoKTtZYygpO0syKCk7c3UxPXBoZX0pO2Z1bmN0aW9uIGZoZShlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiByLnNldFNlY29uZHMoNTksOTk5KSxyfXZhciBkdTEsbWhlPXAoKCk9PntPZSgpO2R1MT1maGV9KTtmdW5jdGlvbiBnaGUoZSx0KXtsZXQgcj1sZShlLHQ/LmluKSxpPXIuZ2V0TW9udGgoKSxhPWktaSUzKzM7cmV0dXJuIHIuc2V0TW9udGgoYSwwKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgaHUxLGJoZT1wKCgpPT57T2UoKTtodTE9Z2hlfSk7ZnVuY3Rpb24gdmhlKGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7cmV0dXJuIHIuc2V0TWlsbGlzZWNvbmRzKDk5OSkscn12YXIgZ3UxLHhoZT1wKCgpPT57T2UoKTtndTE9dmhlfSk7ZnVuY3Rpb24geWhlKGUpe3JldHVybiAkNShEYXRlLm5vdygpLGUpfXZhciB4dTEsd2hlPXAoKCk9PntCeCgpO3h1MT15aGV9KTtmdW5jdGlvbiBNaGUoZSl7bGV0IHQ9WXQoZT8uaW4pLHI9dC5nZXRGdWxsWWVhcigpLGk9dC5nZXRNb250aCgpLGE9dC5nZXREYXRlKCksbj1ZdChlPy5pbik7cmV0dXJuIG4uc2V0RnVsbFllYXIocixpLGErMSksbi5zZXRIb3VycygyMyw1OSw1OSw5OTkpLGU/LmluP2UuaW4obik6bn12YXIgTXUxLGtoZT1wKCgpPT57Y2koKTtNdTE9TWhlfSk7ZnVuY3Rpb24gU2hlKGUpe2xldCB0PVl0KGU/LmluKSxyPVBlKGU/LmluLDApO3JldHVybiByLnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksdC5nZXREYXRlKCktMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEN1MSx6aGU9cCgoKT0+e2Z0KCk7Y2koKTtDdTE9U2hlfSk7dmFyIE1mcixDaGUsVGhlPXAoKCk9PntNZnI9e2xlc3NUaGFuWFNlY29uZHM6e29uZToibGVzcyB0aGFuIGEgc2Vjb25kIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzIn0seFNlY29uZHM6e29uZToiMSBzZWNvbmQiLG90aGVyOiJ7e2NvdW50fX0gc2Vjb25kcyJ9LGhhbGZBTWludXRlOiJoYWxmIGEgbWludXRlIixsZXNzVGhhblhNaW51dGVzOntvbmU6Imxlc3MgdGhhbiBhIG1pbnV0ZSIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcyJ9LHhNaW51dGVzOntvbmU6IjEgbWludXRlIixvdGhlcjoie3tjb3VudH19IG1pbnV0ZXMifSxhYm91dFhIb3Vyczp7b25lOiJhYm91dCAxIGhvdXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gaG91cnMifSx4SG91cnM6e29uZToiMSBob3VyIixvdGhlcjoie3tjb3VudH19IGhvdXJzIn0seERheXM6e29uZToiMSBkYXkiLG90aGVyOiJ7e2NvdW50fX0gZGF5cyJ9LGFib3V0WFdlZWtzOntvbmU6ImFib3V0IDEgd2VlayIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB3ZWVrcyJ9LHhXZWVrczp7b25lOiIxIHdlZWsiLG90aGVyOiJ7e2NvdW50fX0gd2Vla3MifSxhYm91dFhNb250aHM6e29uZToiYWJvdXQgMSBtb250aCIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBtb250aHMifSx4TW9udGhzOntvbmU6IjEgbW9udGgiLG90aGVyOiJ7e2NvdW50fX0gbW9udGhzIn0sYWJvdXRYWWVhcnM6e29uZToiYWJvdXQgMSB5ZWFyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHllYXJzIn0seFllYXJzOntvbmU6IjEgeWVhciIsb3RoZXI6Int7Y291bnR9fSB5ZWFycyJ9LG92ZXJYWWVhcnM6e29uZToib3ZlciAxIHllYXIiLG90aGVyOiJvdmVyIHt7Y291bnR9fSB5ZWFycyJ9LGFsbW9zdFhZZWFyczp7b25lOiJhbG1vc3QgMSB5ZWFyIixvdGhlcjoiYWxtb3N0IHt7Y291bnR9fSB5ZWFycyJ9fSxDaGU9KGUsdCxyKT0+e2xldCBpLGE9TWZyW2VdO3JldHVybiB0eXBlb2YgYT09InN0cmluZyI/aT1hOnQ9PT0xP2k9YS5vbmU6aT1hLm90aGVyLnJlcGxhY2UoInt7Y291bnR9fSIsdC50b1N0cmluZygpKSxyPy5hZGRTdWZmaXg/ci5jb21wYXJpc29uJiZyLmNvbXBhcmlzb24+MD8iaW4gIitpOmkrIiBhZ28iOml9fSk7ZnVuY3Rpb24gWHgoZSl7cmV0dXJuKHQ9e30pPT57bGV0IHI9dC53aWR0aD9TdHJpbmcodC53aWR0aCk6ZS5kZWZhdWx0V2lkdGg7cmV0dXJuIGUuZm9ybWF0c1tyXXx8ZS5mb3JtYXRzW2UuZGVmYXVsdFdpZHRoXX19dmFyIF9oZT1wKCgpPT57fSk7dmFyIGtmcixTZnIsemZyLExoZSxBaGU9cCgoKT0+e19oZSgpO2tmcj17ZnVsbDoiRUVFRSwgTU1NTSBkbywgeSIsbG9uZzoiTU1NTSBkbywgeSIsbWVkaXVtOiJNTU0gZCwgeSIsc2hvcnQ6Ik1NL2RkL3l5eXkifSxTZnI9e2Z1bGw6Img6bW06c3MgYSB6enp6Iixsb25nOiJoOm1tOnNzIGEgeiIsbWVkaXVtOiJoOm1tOnNzIGEiLHNob3J0OiJoOm1tIGEifSx6ZnI9e2Z1bGw6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLGxvbmc6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLG1lZGl1bToie3tkYXRlfX0sIHt7dGltZX19IixzaG9ydDoie3tkYXRlfX0sIHt7dGltZX19In0sTGhlPXtkYXRlOlh4KHtmb3JtYXRzOmtmcixkZWZhdWx0V2lkdGg6ImZ1bGwifSksdGltZTpYeCh7Zm9ybWF0czpTZnIsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLGRhdGVUaW1lOlh4KHtmb3JtYXRzOnpmcixkZWZhdWx0V2lkdGg6ImZ1bGwifSl9fSk7dmFyIENmcixEaGUsRWhlPXAoKCk9PntDZnI9e2xhc3RXZWVrOiInbGFzdCcgZWVlZSAnYXQnIHAiLHllc3RlcmRheToiJ3llc3RlcmRheSBhdCcgcCIsdG9kYXk6Iid0b2RheSBhdCcgcCIsdG9tb3Jyb3c6Iid0b21vcnJvdyBhdCcgcCIsbmV4dFdlZWs6ImVlZWUgJ2F0JyBwIixvdGhlcjoiUCJ9LERoZT0oZSx0LHIsaSk9PkNmcltlXX0pO2Z1bmN0aW9uIEY1KGUpe3JldHVybih0LHIpPT57bGV0IGk9cj8uY29udGV4dD9TdHJpbmcoci5jb250ZXh0KToic3RhbmRhbG9uZSIsYTtpZihpPT09ImZvcm1hdHRpbmciJiZlLmZvcm1hdHRpbmdWYWx1ZXMpe2xldCBvPWUuZGVmYXVsdEZvcm1hdHRpbmdXaWR0aHx8ZS5kZWZhdWx0V2lkdGgscz1yPy53aWR0aD9TdHJpbmcoci53aWR0aCk6bzthPWUuZm9ybWF0dGluZ1ZhbHVlc1tzXXx8ZS5mb3JtYXR0aW5nVmFsdWVzW29dfWVsc2V7bGV0IG89ZS5kZWZhdWx0V2lkdGgscz1yPy53aWR0aD9TdHJpbmcoci53aWR0aCk6ZS5kZWZhdWx0V2lkdGg7YT1lLnZhbHVlc1tzXXx8ZS52YWx1ZXNbb119bGV0IG49ZS5hcmd1bWVudENhbGxiYWNrP2UuYXJndW1lbnRDYWxsYmFjayh0KTp0O3JldHVybiBhW25dfX12YXIgJGhlPXAoKCk9Pnt9KTt2YXIgVGZyLF9mcixMZnIsQWZyLERmcixFZnIsJGZyLEloZSxQaGU9cCgoKT0+eyRoZSgpO1Rmcj17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LF9mcj17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0sTGZyPXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxBZnI9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sRGZyPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxFZnI9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LCRmcj0oZSx0KT0+e2xldCByPU51bWJlcihlKSxpPXIlMTAwO2lmKGk+MjB8fGk8MTApc3dpdGNoKGklMTApe2Nhc2UgMTpyZXR1cm4gcisic3QiO2Nhc2UgMjpyZXR1cm4gcisibmQiO2Nhc2UgMzpyZXR1cm4gcisicmQifXJldHVybiByKyJ0aCJ9LEloZT17b3JkaW5hbE51bWJlcjokZnIsZXJhOkY1KHt2YWx1ZXM6VGZyLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxxdWFydGVyOkY1KHt2YWx1ZXM6X2ZyLGRlZmF1bHRXaWR0aDoid2lkZSIsYXJndW1lbnRDYWxsYmFjazplPT5lLTF9KSxtb250aDpGNSh7dmFsdWVzOkxmcixkZWZhdWx0V2lkdGg6IndpZGUifSksZGF5OkY1KHt2YWx1ZXM6QWZyLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXlQZXJpb2Q6RjUoe3ZhbHVlczpEZnIsZGVmYXVsdFdpZHRoOiJ3aWRlIixmb3JtYXR0aW5nVmFsdWVzOkVmcixkZWZhdWx0Rm9ybWF0dGluZ1dpZHRoOiJ3aWRlIn0pfX0pO2Z1bmN0aW9uIE81KGUpe3JldHVybih0LHI9e30pPT57bGV0IGk9ci53aWR0aCxhPWkmJmUubWF0Y2hQYXR0ZXJuc1tpXXx8ZS5tYXRjaFBhdHRlcm5zW2UuZGVmYXVsdE1hdGNoV2lkdGhdLG49dC5tYXRjaChhKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz1uWzBdLHM9aSYmZS5wYXJzZVBhdHRlcm5zW2ldfHxlLnBhcnNlUGF0dGVybnNbZS5kZWZhdWx0UGFyc2VXaWR0aF0sbD1BcnJheS5pc0FycmF5KHMpP1BmcihzLGQ9PmQudGVzdChvKSk6SWZyKHMsZD0+ZC50ZXN0KG8pKSxjO2M9ZS52YWx1ZUNhbGxiYWNrP2UudmFsdWVDYWxsYmFjayhsKTpsLGM9ci52YWx1ZUNhbGxiYWNrP3IudmFsdWVDYWxsYmFjayhjKTpjO2xldCB1PXQuc2xpY2Uoby5sZW5ndGgpO3JldHVybnt2YWx1ZTpjLHJlc3Q6dX19fWZ1bmN0aW9uIElmcihlLHQpe2ZvcihsZXQgciBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0KGVbcl0pKXJldHVybiByfWZ1bmN0aW9uIFBmcihlLHQpe2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKHQoZVtyXSkpcmV0dXJuIHJ9dmFyIE5oZT1wKCgpPT57fSk7ZnVuY3Rpb24gRmhlKGUpe3JldHVybih0LHI9e30pPT57bGV0IGk9dC5tYXRjaChlLm1hdGNoUGF0dGVybik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IGE9aVswXSxuPXQubWF0Y2goZS5wYXJzZVBhdHRlcm4pO2lmKCFuKXJldHVybiBudWxsO2xldCBvPWUudmFsdWVDYWxsYmFjaz9lLnZhbHVlQ2FsbGJhY2soblswXSk6blswXTtvPXIudmFsdWVDYWxsYmFjaz9yLnZhbHVlQ2FsbGJhY2sobyk6bztsZXQgcz10LnNsaWNlKGEubGVuZ3RoKTtyZXR1cm57dmFsdWU6byxyZXN0OnN9fX12YXIgT2hlPXAoKCk9Pnt9KTt2YXIgTmZyLEZmcixPZnIsUmZyLEJmcixIZnIscWZyLGpmcixWZnIsVWZyLFdmcixHZnIsUmhlLEJoZT1wKCgpPT57TmhlKCk7T2hlKCk7TmZyPS9eKFxkKykodGh8c3R8bmR8cmQpPy9pLEZmcj0vXGQrL2ksT2ZyPXtuYXJyb3c6L14oYnxhKS9pLGFiYnJldmlhdGVkOi9eKGJcLj9ccz9jXC4/fGJcLj9ccz9jXC4/XHM/ZVwuP3xhXC4/XHM/ZFwuP3xjXC4/XHM/ZVwuPykvaSx3aWRlOi9eKGJlZm9yZSBjaHJpc3R8YmVmb3JlIGNvbW1vbiBlcmF8YW5ubyBkb21pbml8Y29tbW9uIGVyYSkvaX0sUmZyPXthbnk6Wy9eYi9pLC9eKGF8YykvaV19LEJmcj17bmFycm93Oi9eWzEyMzRdL2ksYWJicmV2aWF0ZWQ6L15xWzEyMzRdL2ksd2lkZTovXlsxMjM0XSh0aHxzdHxuZHxyZCk/IHF1YXJ0ZXIvaX0sSGZyPXthbnk6Wy8xL2ksLzIvaSwvMy9pLC80L2ldfSxxZnI9e25hcnJvdzovXltqZm1hc29uZF0vaSxhYmJyZXZpYXRlZDovXihqYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYykvaSx3aWRlOi9eKGphbnVhcnl8ZmVicnVhcnl8bWFyY2h8YXByaWx8bWF5fGp1bmV8anVseXxhdWd1c3R8c2VwdGVtYmVyfG9jdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2l9LGpmcj17bmFycm93OlsvXmovaSwvXmYvaSwvXm0vaSwvXmEvaSwvXm0vaSwvXmovaSwvXmovaSwvXmEvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV0sYW55OlsvXmphL2ksL15mL2ksL15tYXIvaSwvXmFwL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hdS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXX0sVmZyPXtuYXJyb3c6L15bc210d2ZdL2ksc2hvcnQ6L14oc3V8bW98dHV8d2V8dGh8ZnJ8c2EpL2ksYWJicmV2aWF0ZWQ6L14oc3VufG1vbnx0dWV8d2VkfHRodXxmcml8c2F0KS9pLHdpZGU6L14oc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpL2l9LFVmcj17bmFycm93OlsvXnMvaSwvXm0vaSwvXnQvaSwvXncvaSwvXnQvaSwvXmYvaSwvXnMvaV0sYW55OlsvXnN1L2ksL15tL2ksL150dS9pLC9edy9pLC9edGgvaSwvXmYvaSwvXnNhL2ldfSxXZnI9e25hcnJvdzovXihhfHB8bWl8bnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2ksYW55Oi9eKFthcF1cLj9ccz9tXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pfSxHZnI9e2FueTp7YW06L15hL2kscG06L15wL2ksbWlkbmlnaHQ6L15taS9pLG5vb246L15uby9pLG1vcm5pbmc6L21vcm5pbmcvaSxhZnRlcm5vb246L2FmdGVybm9vbi9pLGV2ZW5pbmc6L2V2ZW5pbmcvaSxuaWdodDovbmlnaHQvaX19LFJoZT17b3JkaW5hbE51bWJlcjpGaGUoe21hdGNoUGF0dGVybjpOZnIscGFyc2VQYXR0ZXJuOkZmcix2YWx1ZUNhbGxiYWNrOmU9PnBhcnNlSW50KGUsMTApfSksZXJhOk81KHttYXRjaFBhdHRlcm5zOk9mcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpSZnIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOk81KHttYXRjaFBhdHRlcm5zOkJmcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpIZnIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSIsdmFsdWVDYWxsYmFjazplPT5lKzF9KSxtb250aDpPNSh7bWF0Y2hQYXR0ZXJuczpxZnIsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6amZyLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSksZGF5Ok81KHttYXRjaFBhdHRlcm5zOlZmcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpVZnIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXlQZXJpb2Q6TzUoe21hdGNoUGF0dGVybnM6V2ZyLGRlZmF1bHRNYXRjaFdpZHRoOiJhbnkiLHBhcnNlUGF0dGVybnM6R2ZyLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSl9fSk7dmFyIG1uLFd1MSxIaGU9cCgoKT0+e1RoZSgpO0FoZSgpO0VoZSgpO1BoZSgpO0JoZSgpO21uPXtjb2RlOiJlbi1VUyIsZm9ybWF0RGlzdGFuY2U6Q2hlLGZvcm1hdExvbmc6TGhlLGZvcm1hdFJlbGF0aXZlOkRoZSxsb2NhbGl6ZTpJaGUsbWF0Y2g6UmhlLG9wdGlvbnM6e3dlZWtTdGFydHNPbjowLGZpcnN0V2Vla0NvbnRhaW5zRGF0ZToxfX0sV3UxPW1ufSk7dmFyIHczPXAoKCk9PntIaGUoKX0pO2Z1bmN0aW9uIFF4KGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7cmV0dXJuIFRpKHIsTjUocikpKzF9dmFyIEt1MSxkSD1wKCgpPT57YmwoKTtZeCgpO09lKCk7S3UxPVF4fSk7ZnVuY3Rpb24gUjUoZSx0KXtsZXQgcj1sZShlLHQ/LmluKSxpPStRMShyKS0rRG4ocik7cmV0dXJuIE1hdGgucm91bmQoaS9aMikrMX12YXIgbjgxLEp4PXAoKCk9PntPdCgpO0syKCk7QzUoKTtPZSgpO244MT1SNX0pO2Z1bmN0aW9uIEtjKGUsdCl7bGV0IHI9bGUoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCksYT1McigpLG49dD8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz90Py5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5maXJzdFdlZWtDb250YWluc0RhdGU/P2EubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1QZSh0Py5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKGkrMSwwLG4pLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9SnIobyx0KSxsPVBlKHQ/LmlufHxlLDApO2wuc2V0RnVsbFllYXIoaSwwLG4pLGwuc2V0SG91cnMoMCwwLDAsMCk7bGV0IGM9SnIobCx0KTtyZXR1cm4rcj49K3M/aSsxOityPj0rYz9pOmktMX12YXIgdTgxLG1mPXAoKCk9PntkYSgpO2Z0KCk7cjIoKTtPZSgpO3U4MT1LY30pO2Z1bmN0aW9uIE0zKGUsdCl7bGV0IHI9THIoKSxpPXQ/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/dD8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3IuZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz8xLGE9S2MoZSx0KSxuPVBlKHQ/LmlufHxlLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKGEsMCxpKSxuLnNldEhvdXJzKDAsMCwwLDApLEpyKG4sdCl9dmFyIGI4MSxLeD1wKCgpPT57ZGEoKTtmdCgpO21mKCk7cjIoKTtiODE9TTN9KTtmdW5jdGlvbiBCNShlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9K0pyKHIsdCktK00zKHIsdCk7cmV0dXJuIE1hdGgucm91bmQoaS9aMikrMX12YXIgazgxLGV5PXAoKCk9PntPdCgpO3IyKCk7S3goKTtPZSgpO2s4MT1CNX0pO2Z1bmN0aW9uIGF0KGUsdCl7bGV0IHI9ZTwwPyItIjoiIixpPU1hdGguYWJzKGUpLnRvU3RyaW5nKCkucGFkU3RhcnQodCwiMCIpO3JldHVybiByK2l9dmFyIGszPXAoKCk9Pnt9KTt2YXIgRW4sdUg9cCgoKT0+e2szKCk7RW49e3koZSx0KXtsZXQgcj1lLmdldEZ1bGxZZWFyKCksaT1yPjA/cjoxLXI7cmV0dXJuIGF0KHQ9PT0ieXkiP2klMTAwOmksdC5sZW5ndGgpfSxNKGUsdCl7bGV0IHI9ZS5nZXRNb250aCgpO3JldHVybiB0PT09Ik0iP1N0cmluZyhyKzEpOmF0KHIrMSwyKX0sZChlLHQpe3JldHVybiBhdChlLmdldERhdGUoKSx0Lmxlbmd0aCl9LGEoZSx0KXtsZXQgcj1lLmdldEhvdXJzKCkvMTI+PTE/InBtIjoiYW0iO3N3aXRjaCh0KXtjYXNlImEiOmNhc2UiYWEiOnJldHVybiByLnRvVXBwZXJDYXNlKCk7Y2FzZSJhYWEiOnJldHVybiByO2Nhc2UiYWFhYWEiOnJldHVybiByWzBdO2RlZmF1bHQ6cmV0dXJuIHI9PT0iYW0iPyJhLm0uIjoicC5tLiJ9fSxoKGUsdCl7cmV0dXJuIGF0KGUuZ2V0SG91cnMoKSUxMnx8MTIsdC5sZW5ndGgpfSxIKGUsdCl7cmV0dXJuIGF0KGUuZ2V0SG91cnMoKSx0Lmxlbmd0aCl9LG0oZSx0KXtyZXR1cm4gYXQoZS5nZXRNaW51dGVzKCksdC5sZW5ndGgpfSxzKGUsdCl7cmV0dXJuIGF0KGUuZ2V0U2Vjb25kcygpLHQubGVuZ3RoKX0sUyhlLHQpe2xldCByPXQubGVuZ3RoLGk9ZS5nZXRNaWxsaXNlY29uZHMoKSxhPU1hdGgudHJ1bmMoaSpNYXRoLnBvdygxMCxyLTMpKTtyZXR1cm4gYXQoYSx0Lmxlbmd0aCl9fX0pO2Z1bmN0aW9uIHFoZShlLHQ9IiIpe2xldCByPWU+MD8iLSI6IisiLGk9TWF0aC5hYnMoZSksYT1NYXRoLnRydW5jKGkvNjApLG49aSU2MDtyZXR1cm4gbj09PTA/citTdHJpbmcoYSk6citTdHJpbmcoYSkrdCthdChuLDIpfWZ1bmN0aW9uIGpoZShlLHQpe3JldHVybiBlJTYwPT09MD8oZT4wPyItIjoiKyIpK2F0KE1hdGguYWJzKGUpLzYwLDIpOlMzKGUsdCl9ZnVuY3Rpb24gUzMoZSx0PSIiKXtsZXQgcj1lPjA/Ii0iOiIrIixpPU1hdGguYWJzKGUpLGE9YXQoTWF0aC50cnVuYyhpLzYwKSwyKSxuPWF0KGklNjAsMik7cmV0dXJuIHIrYSt0K259dmFyIEg1LGdmLFZoZT1wKCgpPT57ZEgoKTtKeCgpO1ljKCk7ZXkoKTttZigpO2szKCk7dUgoKTtINT17YW06ImFtIixwbToicG0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LGdmPXtHOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldEZ1bGxZZWFyKCk+MD8xOjA7c3dpdGNoKHQpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiByLmVyYShpLHt3aWR0aDoiYWJicmV2aWF0ZWQifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIHIuZXJhKGkse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gci5lcmEoaSx7d2lkdGg6IndpZGUifSl9fSx5OmZ1bmN0aW9uKGUsdCxyKXtpZih0PT09InlvIil7bGV0IGk9ZS5nZXRGdWxsWWVhcigpLGE9aT4wP2k6MS1pO3JldHVybiByLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoieWVhciJ9KX1yZXR1cm4gRW4ueShlLHQpfSxZOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPUtjKGUsaSksbj1hPjA/YToxLWE7aWYodD09PSJZWSIpe2xldCBvPW4lMTAwO3JldHVybiBhdChvLDIpfXJldHVybiB0PT09IllvIj9yLm9yZGluYWxOdW1iZXIobix7dW5pdDoieWVhciJ9KTphdChuLHQubGVuZ3RoKX0sUjpmdW5jdGlvbihlLHQpe2xldCByPXFhKGUpO3JldHVybiBhdChyLHQubGVuZ3RoKX0sdTpmdW5jdGlvbihlLHQpe2xldCByPWUuZ2V0RnVsbFllYXIoKTtyZXR1cm4gYXQocix0Lmxlbmd0aCl9LFE6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPU1hdGguY2VpbCgoZS5nZXRNb250aCgpKzEpLzMpO3N3aXRjaCh0KXtjYXNlIlEiOnJldHVybiBTdHJpbmcoaSk7Y2FzZSJRUSI6cmV0dXJuIGF0KGksMik7Y2FzZSJRbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihpLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIlFRUVFRIjpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0scTpmdW5jdGlvbihlLHQscil7bGV0IGk9TWF0aC5jZWlsKChlLmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKHQpe2Nhc2UicSI6cmV0dXJuIFN0cmluZyhpKTtjYXNlInFxIjpyZXR1cm4gYXQoaSwyKTtjYXNlInFvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UicXFxcXEiOnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSxNOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldE1vbnRoKCk7c3dpdGNoKHQpe2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIEVuLk0oZSx0KTtjYXNlIk1vIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGkrMSx7dW5pdDoibW9udGgifSk7Y2FzZSJNTU0iOnJldHVybiByLm1vbnRoKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIk1NTU1NIjpyZXR1cm4gci5tb250aChpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIubW9udGgoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxMOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldE1vbnRoKCk7c3dpdGNoKHQpe2Nhc2UiTCI6cmV0dXJuIFN0cmluZyhpKzEpO2Nhc2UiTEwiOnJldHVybiBhdChpKzEsMik7Y2FzZSJMbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihpKzEse3VuaXQ6Im1vbnRoIn0pO2Nhc2UiTExMIjpyZXR1cm4gci5tb250aChpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIHIubW9udGgoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLm1vbnRoKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sdzpmdW5jdGlvbihlLHQscixpKXtsZXQgYT1CNShlLGkpO3JldHVybiB0PT09IndvIj9yLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoid2VlayJ9KTphdChhLHQubGVuZ3RoKX0sSTpmdW5jdGlvbihlLHQscil7bGV0IGk9UjUoZSk7cmV0dXJuIHQ9PT0iSW8iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJ3ZWVrIn0pOmF0KGksdC5sZW5ndGgpfSxkOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJkbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0RGF0ZSgpLHt1bml0OiJkYXRlIn0pOkVuLmQoZSx0KX0sRDpmdW5jdGlvbihlLHQscil7bGV0IGk9UXgoZSk7cmV0dXJuIHQ9PT0iRG8iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJkYXlPZlllYXIifSk6YXQoaSx0Lmxlbmd0aCl9LEU6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0RGF5KCk7c3dpdGNoKHQpe2Nhc2UiRSI6Y2FzZSJFRSI6Y2FzZSJFRUUiOnJldHVybiByLmRheShpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiByLmRheShpLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxlOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPWUuZ2V0RGF5KCksbj0oYS1pLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaCh0KXtjYXNlImUiOnJldHVybiBTdHJpbmcobik7Y2FzZSJlZSI6cmV0dXJuIGF0KG4sMik7Y2FzZSJlbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihuLHt1bml0OiJkYXkifSk7Y2FzZSJlZWUiOnJldHVybiByLmRheShhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiByLmRheShhLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxjOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPWUuZ2V0RGF5KCksbj0oYS1pLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaCh0KXtjYXNlImMiOnJldHVybiBTdHJpbmcobik7Y2FzZSJjYyI6cmV0dXJuIGF0KG4sdC5sZW5ndGgpO2Nhc2UiY28iOnJldHVybiByLm9yZGluYWxOdW1iZXIobix7dW5pdDoiZGF5In0pO2Nhc2UiY2NjIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiByLmRheShhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0saTpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXREYXkoKSxhPWk9PT0wPzc6aTtzd2l0Y2godCl7Y2FzZSJpIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UiaWkiOnJldHVybiBhdChhLHQubGVuZ3RoKTtjYXNlImlvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImRheSJ9KTtjYXNlImlpaSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpIjpyZXR1cm4gci5kYXkoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpaSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheShpLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGE6ZnVuY3Rpb24oZSx0LHIpe2xldCBhPWUuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKHQpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImFhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYWFhYWEiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sYjpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpLGE7c3dpdGNoKGk9PT0xMj9hPUg1Lm5vb246aT09PTA/YT1INS5taWRuaWdodDphPWkvMTI+PTE/InBtIjoiYW0iLHQpe2Nhc2UiYiI6Y2FzZSJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYmJiYmIiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sQjpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpLGE7c3dpdGNoKGk+PTE3P2E9SDUuZXZlbmluZzppPj0xMj9hPUg1LmFmdGVybm9vbjppPj00P2E9SDUubW9ybmluZzphPUg1Lm5pZ2h0LHQpe2Nhc2UiQiI6Y2FzZSJCQiI6Y2FzZSJCQkIiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJCQkJCQiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXlQZXJpb2QoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxoOmZ1bmN0aW9uKGUsdCxyKXtpZih0PT09ImhvIil7bGV0IGk9ZS5nZXRIb3VycygpJTEyO3JldHVybiBpPT09MCYmKGk9MTIpLHIub3JkaW5hbE51bWJlcihpLHt1bml0OiJob3VyIn0pfXJldHVybiBFbi5oKGUsdCl9LEg6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0PT09IkhvIj9yLm9yZGluYWxOdW1iZXIoZS5nZXRIb3VycygpLHt1bml0OiJob3VyIn0pOkVuLkgoZSx0KX0sSzpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpJTEyO3JldHVybiB0PT09IktvIj9yLm9yZGluYWxOdW1iZXIoaSx7dW5pdDoiaG91ciJ9KTphdChpLHQubGVuZ3RoKX0sazpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpO3JldHVybiBpPT09MCYmKGk9MjQpLHQ9PT0ia28iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJob3VyIn0pOmF0KGksdC5sZW5ndGgpfSxtOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJtbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0TWludXRlcygpLHt1bml0OiJtaW51dGUifSk6RW4ubShlLHQpfSxzOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJzbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0U2Vjb25kcygpLHt1bml0OiJzZWNvbmQifSk6RW4ucyhlLHQpfSxTOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEVuLlMoZSx0KX0sWDpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGk9PT0wKXJldHVybiJaIjtzd2l0Y2godCl7Y2FzZSJYIjpyZXR1cm4gamhlKGkpO2Nhc2UiWFhYWCI6Y2FzZSJYWCI6cmV0dXJuIFMzKGkpO2RlZmF1bHQ6cmV0dXJuIFMzKGksIjoiKX19LHg6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJ4IjpyZXR1cm4gamhlKGkpO2Nhc2UieHh4eCI6Y2FzZSJ4eCI6cmV0dXJuIFMzKGkpO2RlZmF1bHQ6cmV0dXJuIFMzKGksIjoiKX19LE86ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6cmV0dXJuIkdNVCIrcWhlKGksIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK1MzKGksIjoiKX19LHo6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6cmV0dXJuIkdNVCIrcWhlKGksIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK1MzKGksIjoiKX19LHQ6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPU1hdGgudHJ1bmMoK2UvMWUzKTtyZXR1cm4gYXQoaSx0Lmxlbmd0aCl9LFQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBhdCgrZSx0Lmxlbmd0aCl9fX0pO3ZhciBVaGUsV2hlLFlmcixlMCxwSD1wKCgpPT57VWhlPShlLHQpPT57c3dpdGNoKGUpe2Nhc2UiUCI6cmV0dXJuIHQuZGF0ZSh7d2lkdGg6InNob3J0In0pO2Nhc2UiUFAiOnJldHVybiB0LmRhdGUoe3dpZHRoOiJtZWRpdW0ifSk7Y2FzZSJQUFAiOnJldHVybiB0LmRhdGUoe3dpZHRoOiJsb25nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF0ZSh7d2lkdGg6ImZ1bGwifSl9fSxXaGU9KGUsdCk9Pntzd2l0Y2goZSl7Y2FzZSJwIjpyZXR1cm4gdC50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIHQudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIHQudGltZSh7d2lkdGg6ImxvbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC50aW1lKHt3aWR0aDoiZnVsbCJ9KX19LFlmcj0oZSx0KT0+e2xldCByPWUubWF0Y2goLyhQKykocCspPy8pfHxbXSxpPXJbMV0sYT1yWzJdO2lmKCFhKXJldHVybiBVaGUoZSx0KTtsZXQgbjtzd2l0Y2goaSl7Y2FzZSJQIjpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJzaG9ydCJ9KTticmVhaztjYXNlIlBQIjpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJtZWRpdW0ifSk7YnJlYWs7Y2FzZSJQUFAiOm49dC5kYXRlVGltZSh7d2lkdGg6ImxvbmcifSk7YnJlYWs7ZGVmYXVsdDpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJmdWxsIn0pO2JyZWFrfXJldHVybiBuLnJlcGxhY2UoInt7ZGF0ZX19IixVaGUoaSx0KSkucmVwbGFjZSgie3t0aW1lfX0iLFdoZShhLHQpKX0sZTA9e3A6V2hlLFA6WWZyfX0pO2Z1bmN0aW9uIHR5KGUpe3JldHVybiBaZnIudGVzdChlKX1mdW5jdGlvbiByeShlKXtyZXR1cm4gWGZyLnRlc3QoZSl9ZnVuY3Rpb24gYmYoZSx0LHIpe2xldCBpPUpmcihlLHQscik7aWYoY29uc29sZS53YXJuKGkpLFFmci5pbmNsdWRlcyhlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihpKX1mdW5jdGlvbiBKZnIoZSx0LHIpe2xldCBpPWVbMF09PT0iWSI/InllYXJzIjoiZGF5cyBvZiB0aGUgbW9udGgiO3JldHVybmBVc2UgXGAke2UudG9Mb3dlckNhc2UoKX1cYCBpbnN0ZWFkIG9mIFxgJHtlfVxgIChpbiBcYCR7dH1cYCkgZm9yIGZvcm1hdHRpbmcgJHtpfSB0byB0aGUgaW5wdXQgXGAke3J9XGA7IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZGB9dmFyIFpmcixYZnIsUWZyLGhIPXAoKCk9PntaZnI9L15EKyQvLFhmcj0vXlkrJC8sUWZyPVsiRCIsIkREIiwiWVkiLCJZWVlZIl19KTtmdW5jdGlvbiB2ZihlLHQscil7bGV0IGk9THIoKSxhPXI/LmxvY2FsZT8/aS5sb2NhbGU/P21uLG49cj8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5maXJzdFdlZWtDb250YWluc0RhdGU/P2kubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9pLndlZWtTdGFydHNPbj8/aS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPWxlKGUscj8uaW4pO2lmKCFVaShzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGw9dC5tYXRjaChlN3IpLm1hcCh1PT57bGV0IGQ9dVswXTtpZihkPT09InAifHxkPT09IlAiKXtsZXQgaD1lMFtkXTtyZXR1cm4gaCh1LGEuZm9ybWF0TG9uZyl9cmV0dXJuIHV9KS5qb2luKCIiKS5tYXRjaChLZnIpLm1hcCh1PT57aWYodT09PSInJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6IicifTtsZXQgZD11WzBdO2lmKGQ9PT0iJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6YTdyKHUpfTtpZihnZltkXSlyZXR1cm57aXNUb2tlbjohMCx2YWx1ZTp1fTtpZihkLm1hdGNoKGk3cikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitkKyJgIik7cmV0dXJue2lzVG9rZW46ITEsdmFsdWU6dX19KTthLmxvY2FsaXplLnByZXByb2Nlc3NvciYmKGw9YS5sb2NhbGl6ZS5wcmVwcm9jZXNzb3IocyxsKSk7bGV0IGM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpuLHdlZWtTdGFydHNPbjpvLGxvY2FsZTphfTtyZXR1cm4gbC5tYXAodT0+e2lmKCF1LmlzVG9rZW4pcmV0dXJuIHUudmFsdWU7bGV0IGQ9dS52YWx1ZTsoIXI/LnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyYmcnkoZCl8fCFyPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZ0eShkKSkmJmJmKGQsdCxTdHJpbmcoZSkpO2xldCBoPWdmW2RbMF1dO3JldHVybiBoKHMsZCxhLmxvY2FsaXplLGMpfSkuam9pbigiIil9ZnVuY3Rpb24gYTdyKGUpe2xldCB0PWUubWF0Y2godDdyKTtyZXR1cm4gdD90WzFdLnJlcGxhY2UocjdyLCInIik6ZX12YXIgS2ZyLGU3cix0N3IscjdyLGk3cixVODEsZkg9cCgoKT0+e3czKCk7ZGEoKTtWaGUoKTtwSCgpO2hIKCk7dmwoKTtPZSgpO0tmcj0vW3lZUXFNTHdJZERlY2loSEtrbXNdb3woXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLGU3cj0vUCtwK3xQK3xwK3wnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyx0N3I9L14nKFteXSo/KSc/JC8scjdyPS8nJy9nLGk3cj0vW2EtekEtWl0vO1U4MT12Zn0pO2Z1bmN0aW9uIGl5KGUsdCxyKXtsZXQgaT1McigpLGE9cj8ubG9jYWxlPz9pLmxvY2FsZT8/bW4sbj0yNTIwLG89dWEoZSx0KTtpZihpc05hTihvKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IHM9T2JqZWN0LmFzc2lnbih7fSxyLHthZGRTdWZmaXg6cj8uYWRkU3VmZml4LGNvbXBhcmlzb246b30pLFtsLGNdPWR0KHI/LmluLC4uLm8+MD9bdCxlXTpbZSx0XSksdT1ycyhjLGwpLGQ9KEMxKGMpLUMxKGwpKS8xZTMsaD1NYXRoLnJvdW5kKCh1LWQpLzYwKSxmO2lmKGg8MilyZXR1cm4gcj8uaW5jbHVkZVNlY29uZHM/dTw1P2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUscyk6dTwxMD9hLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxzKTp1PDIwP2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLHMpOnU8NDA/YS5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAscyk6dTw2MD9hLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLHMpOmEuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLHMpOmg9PT0wP2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEscyk6YS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgscyk7aWYoaDw0NSlyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgscyk7aWYoaDw5MClyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEscyk7aWYoaDxrNSl7bGV0IHg9TWF0aC5yb3VuZChoLzYwKTtyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLHgscyl9ZWxzZXtpZihoPG4pcmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhEYXlzIiwxLHMpO2lmKGg8VWMpe2xldCB4PU1hdGgucm91bmQoaC9rNSk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhEYXlzIix4LHMpfWVsc2UgaWYoaDxVYyoyKXJldHVybiBmPU1hdGgucm91bmQoaC9VYyksYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYTW9udGhzIixmLHMpfWlmKGY9UWMoYyxsKSxmPDEyKXtsZXQgeD1NYXRoLnJvdW5kKGgvVWMpO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIix4LHMpfWVsc2V7bGV0IHg9ZiUxMix2PU1hdGgudHJ1bmMoZi8xMik7cmV0dXJuIHg8Mz9hLmZvcm1hdERpc3RhbmNlKCJhYm91dFhZZWFycyIsdixzKTp4PDk/YS5mb3JtYXREaXN0YW5jZSgib3ZlclhZZWFycyIsdixzKTphLmZvcm1hdERpc3RhbmNlKCJhbG1vc3RYWWVhcnMiLHYrMSxzKX19dmFyIHRwMSxtSD1wKCgpPT57dzMoKTtkYSgpO2dsKCk7UnIoKTtnMygpO090KCk7cGYoKTtoZigpO3RwMT1peX0pO2Z1bmN0aW9uIGF5KGUsdCxyKXtsZXQgaT1McigpLGE9cj8ubG9jYWxlPz9pLmxvY2FsZT8/bW4sbj11YShlLHQpO2lmKGlzTmFOKG4pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgbz1PYmplY3QuYXNzaWduKHt9LHIse2FkZFN1ZmZpeDpyPy5hZGRTdWZmaXgsY29tcGFyaXNvbjpufSksW3MsbF09ZHQocj8uaW4sLi4ubj4wP1t0LGVdOltlLHRdKSxjPXBhKHI/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiKSx1PWwuZ2V0VGltZSgpLXMuZ2V0VGltZSgpLGQ9dS9jYSxoPUMxKGwpLUMxKHMpLGY9KHUtaCkvY2EseD1yPy51bml0LHY7aWYoeD92PXg6ZDwxP3Y9InNlY29uZCI6ZDw2MD92PSJtaW51dGUiOmQ8azU/dj0iaG91ciI6ZjxVYz92PSJkYXkiOmY8T0I/dj0ibW9udGgiOnY9InllYXIiLHY9PT0ic2Vjb25kIil7bGV0IGI9Yyh1LzFlMyk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhTZWNvbmRzIixiLG8pfWVsc2UgaWYodj09PSJtaW51dGUiKXtsZXQgYj1jKGQpO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJ4TWludXRlcyIsYixvKX1lbHNlIGlmKHY9PT0iaG91ciIpe2xldCBiPWMoZC82MCk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhIb3VycyIsYixvKX1lbHNlIGlmKHY9PT0iZGF5Iil7bGV0IGI9YyhmL2s1KTtyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgieERheXMiLGIsbyl9ZWxzZSBpZih2PT09Im1vbnRoIil7bGV0IGI9YyhmL1VjKTtyZXR1cm4gYj09PTEyJiZ4IT09Im1vbnRoIj9hLmZvcm1hdERpc3RhbmNlKCJ4WWVhcnMiLDEsbyk6YS5mb3JtYXREaXN0YW5jZSgieE1vbnRocyIsYixvKX1lbHNle2xldCBiPWMoZi9PQik7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhZZWFycyIsYixvKX19dmFyIGRwMSxnSD1wKCgpPT57dzMoKTtkYSgpO3hsKCk7Z2woKTtScigpO2czKCk7T3QoKTtkcDE9YXl9KTtmdW5jdGlvbiBHaGUoZSx0KXtyZXR1cm4gaXkoZSxZdChlKSx0KX12YXIgZnAxLFloZT1wKCgpPT57Y2koKTttSCgpO2ZwMT1HaGV9KTtmdW5jdGlvbiBaaGUoZSx0KXtyZXR1cm4gYXkoZSxZdChlKSx0KX12YXIgdnAxLFhoZT1wKCgpPT57Y2koKTtnSCgpO3ZwMT1aaGV9KTtmdW5jdGlvbiBRaGUoZSx0KXtsZXQgcj1McigpLGk9dD8ubG9jYWxlPz9yLmxvY2FsZT8/bW4sYT10Py5mb3JtYXQ/P243cixuPXQ/Lnplcm8/PyExLG89dD8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2U/YS5yZWR1Y2UoKGwsYyk9PntsZXQgdT1geCR7Yy5yZXBsYWNlKC8oXi4pLyxoPT5oLnRvVXBwZXJDYXNlKCkpfWAsZD1lW2NdO3JldHVybiBkIT09dm9pZCAwJiYobnx8ZVtjXSk/bC5jb25jYXQoaS5mb3JtYXREaXN0YW5jZSh1LGQpKTpsfSxbXSkuam9pbihvKToiIn12YXIgbjdyLE1wMSxKaGU9cCgoKT0+e3czKCk7ZGEoKTtuN3I9WyJ5ZWFycyIsIm1vbnRocyIsIndlZWtzIiwiZGF5cyIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiXTtNcDE9UWhlfSk7ZnVuY3Rpb24gS2hlKGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7aWYoaXNOYU4oK3IpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT10Py5mb3JtYXQ/PyJleHRlbmRlZCIsYT10Py5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89IiIscz1pPT09ImV4dGVuZGVkIj8iLSI6IiIsbD1pPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYoYSE9PSJ0aW1lIil7bGV0IGM9YXQoci5nZXREYXRlKCksMiksdT1hdChyLmdldE1vbnRoKCkrMSwyKTtuPWAke2F0KHIuZ2V0RnVsbFllYXIoKSw0KX0ke3N9JHt1fSR7c30ke2N9YH1pZihhIT09ImRhdGUiKXtsZXQgYz1yLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoYyE9PTApe2xldCB2PU1hdGguYWJzKGMpLGI9YXQoTWF0aC50cnVuYyh2LzYwKSwyKSx5PWF0KHYlNjAsMik7bz1gJHtjPDA/IisiOiItIn0ke2J9OiR7eX1gfWVsc2Ugbz0iWiI7bGV0IHU9YXQoci5nZXRIb3VycygpLDIpLGQ9YXQoci5nZXRNaW51dGVzKCksMiksaD1hdChyLmdldFNlY29uZHMoKSwyKSxmPW49PT0iIj8iIjoiVCIseD1bdSxkLGhdLmpvaW4obCk7bj1gJHtufSR7Zn0ke3h9JHtvfWB9cmV0dXJuIG59dmFyIENwMSxlZmU9cCgoKT0+e2szKCk7T2UoKTtDcDE9S2hlfSk7ZnVuY3Rpb24gdGZlKGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7aWYoIVVpKHIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT10Py5mb3JtYXQ/PyJleHRlbmRlZCIsYT10Py5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89aT09PSJleHRlbmRlZCI/Ii0iOiIiLHM9aT09PSJleHRlbmRlZCI/IjoiOiIiO2lmKGEhPT0idGltZSIpe2xldCBsPWF0KHIuZ2V0RGF0ZSgpLDIpLGM9YXQoci5nZXRNb250aCgpKzEsMik7bj1gJHthdChyLmdldEZ1bGxZZWFyKCksNCl9JHtvfSR7Y30ke299JHtsfWB9aWYoYSE9PSJkYXRlIil7bGV0IGw9YXQoci5nZXRIb3VycygpLDIpLGM9YXQoci5nZXRNaW51dGVzKCksMiksdT1hdChyLmdldFNlY29uZHMoKSwyKTtuPWAke259JHtuPT09IiI/IiI6IiAifSR7bH0ke3N9JHtjfSR7c30ke3V9YH1yZXR1cm4gbn12YXIgRHAxLHJmZT1wKCgpPT57azMoKTt2bCgpO09lKCk7RHAxPXRmZX0pO2Z1bmN0aW9uIGlmZShlKXtsZXR7eWVhcnM6dD0wLG1vbnRoczpyPTAsZGF5czppPTAsaG91cnM6YT0wLG1pbnV0ZXM6bj0wLHNlY29uZHM6bz0wfT1lO3JldHVybmBQJHt0fVkke3J9TSR7aX1EVCR7YX1IJHtufU0ke299U2B9dmFyICRwMSxhZmU9cCgoKT0+eyRwMT1pZmV9KTtmdW5jdGlvbiBuZmUoZSx0KXtsZXQgcj1sZShlLHQ/LmluKTtpZighVWkocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPXQ/LmZyYWN0aW9uRGlnaXRzPz8wLGE9YXQoci5nZXREYXRlKCksMiksbj1hdChyLmdldE1vbnRoKCkrMSwyKSxvPXIuZ2V0RnVsbFllYXIoKSxzPWF0KHIuZ2V0SG91cnMoKSwyKSxsPWF0KHIuZ2V0TWludXRlcygpLDIpLGM9YXQoci5nZXRTZWNvbmRzKCksMiksdT0iIjtpZihpPjApe2xldCBmPXIuZ2V0TWlsbGlzZWNvbmRzKCkseD1NYXRoLnRydW5jKGYqTWF0aC5wb3coMTAsaS0zKSk7dT0iLiIrYXQoeCxpKX1sZXQgZD0iIixoPXIuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihoIT09MCl7bGV0IGY9TWF0aC5hYnMoaCkseD1hdChNYXRoLnRydW5jKGYvNjApLDIpLHY9YXQoZiU2MCwyKTtkPWAke2g8MD8iKyI6Ii0ifSR7eH06JHt2fWB9ZWxzZSBkPSJaIjtyZXR1cm5gJHtvfS0ke259LSR7YX1UJHtzfToke2x9OiR7Y30ke3V9JHtkfWB9dmFyIE9wMSxvZmU9cCgoKT0+e2szKCk7dmwoKTtPZSgpO09wMT1uZmV9KTtmdW5jdGlvbiBzZmUoZSl7bGV0IHQ9bGUoZSk7aWYoIVVpKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcj1vN3JbdC5nZXRVVENEYXkoKV0saT1hdCh0LmdldFVUQ0RhdGUoKSwyKSxhPXM3clt0LmdldFVUQ01vbnRoKCldLG49dC5nZXRVVENGdWxsWWVhcigpLG89YXQodC5nZXRVVENIb3VycygpLDIpLHM9YXQodC5nZXRVVENNaW51dGVzKCksMiksbD1hdCh0LmdldFVUQ1NlY29uZHMoKSwyKTtyZXR1cm5gJHtyfSwgJHtpfSAke2F9ICR7bn0gJHtvfToke3N9OiR7bH0gR01UYH12YXIgbzdyLHM3cixqcDEsbGZlPXAoKCk9PntrMygpO3ZsKCk7T2UoKTtvN3I9WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxzN3I9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXTtqcDE9c2ZlfSk7ZnVuY3Rpb24gY2ZlKGUsdCxyKXtsZXRbaSxhXT1kdChyPy5pbixlLHQpLG49THIoKSxvPXI/LmxvY2FsZT8/bi5sb2NhbGU/P21uLHM9cj8ud2Vla1N0YXJ0c09uPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/bi53ZWVrU3RhcnRzT24/P24ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsbD1UaShpLGEpO2lmKGlzTmFOKGwpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYztsPC02P2M9Im90aGVyIjpsPC0xP2M9Imxhc3RXZWVrIjpsPDA/Yz0ieWVzdGVyZGF5IjpsPDE/Yz0idG9kYXkiOmw8Mj9jPSJ0b21vcnJvdyI6bDw3P2M9Im5leHRXZWVrIjpjPSJvdGhlciI7bGV0IHU9by5mb3JtYXRSZWxhdGl2ZShjLGksYSx7bG9jYWxlOm8sd2Vla1N0YXJ0c09uOnN9KTtyZXR1cm4gdmYoaSx1LHtsb2NhbGU6byx3ZWVrU3RhcnRzT246c30pfXZhciBYcDEsZGZlPXAoKCk9Pnt3MygpO2RhKCk7UnIoKTtibCgpO2ZIKCk7WHAxPWNmZX0pO2Z1bmN0aW9uIHVmZShlLHQpe3JldHVybiBsZShlKjFlMyx0Py5pbil9dmFyIEtwMSxwZmU9cCgoKT0+e09lKCk7S3AxPXVmZX0pO2Z1bmN0aW9uIG55KGUsdCl7cmV0dXJuIGxlKGUsdD8uaW4pLmdldERhdGUoKX12YXIgcmgxLGJIPXAoKCk9PntPZSgpO3JoMT1ueX0pO2Z1bmN0aW9uIHQwKGUsdCl7cmV0dXJuIGxlKGUsdD8uaW4pLmdldERheSgpfXZhciBuaDEseGY9cCgoKT0+e09lKCk7bmgxPXQwfSk7ZnVuY3Rpb24gb3koZSx0KXtsZXQgcj1sZShlLHQ/LmluKSxpPXIuZ2V0RnVsbFllYXIoKSxhPXIuZ2V0TW9udGgoKSxuPVBlKHIsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoaSxhKzEsMCksbi5zZXRIb3VycygwLDAsMCwwKSxuLmdldERhdGUoKX12YXIgY2gxLHZIPXAoKCk9PntmdCgpO09lKCk7Y2gxPW95fSk7ZnVuY3Rpb24gc3koZSx0KXtsZXQgaT1sZShlLHQ/LmluKS5nZXRGdWxsWWVhcigpO3JldHVybiBpJTQwMD09PTB8fGklND09PTAmJmklMTAwIT09MH12YXIgcGgxLHhIPXAoKCk9PntPZSgpO3BoMT1zeX0pO2Z1bmN0aW9uIGhmZShlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiBOdW1iZXIuaXNOYU4oK3IpP05hTjpzeShyKT8zNjY6MzY1fXZhciBnaDEsZmZlPXAoKCk9Pnt4SCgpO09lKCk7Z2gxPWhmZX0pO2Z1bmN0aW9uIG1mZShlLHQpe2xldCBpPWxlKGUsdD8uaW4pLmdldEZ1bGxZZWFyKCk7cmV0dXJuIE1hdGguZmxvb3IoaS8xMCkqMTB9dmFyIHhoMSxnZmU9cCgoKT0+e09lKCk7eGgxPW1mZX0pO2Z1bmN0aW9uIGx5KCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sTHIoKSl9dmFyIE1oMSx5SD1wKCgpPT57ZGEoKTtNaDE9bHl9KTtmdW5jdGlvbiBiZmUoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0SG91cnMoKX12YXIgemgxLHZmZT1wKCgpPT57T2UoKTt6aDE9YmZlfSk7ZnVuY3Rpb24gY3koZSx0KXtsZXQgcj1sZShlLHQ/LmluKS5nZXREYXkoKTtyZXR1cm4gcj09PTA/NzpyfXZhciBfaDEsd0g9cCgoKT0+e09lKCk7X2gxPWN5fSk7ZnVuY3Rpb24geGZlKGUsdCl7bGV0IHI9RG4oZSx0KSxhPStEbihaYyhyLDYwKSktK3I7cmV0dXJuIE1hdGgucm91bmQoYS9aMil9dmFyICRoMSx5ZmU9cCgoKT0+e2RmKCk7T3QoKTtDNSgpOyRoMT14ZmV9KTtmdW5jdGlvbiB3ZmUoZSl7cmV0dXJuIGxlKGUpLmdldE1pbGxpc2Vjb25kcygpfXZhciBOaDEsTWZlPXAoKCk9PntPZSgpO05oMT13ZmV9KTtmdW5jdGlvbiBrZmUoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0TWludXRlcygpfXZhciBSaDEsU2ZlPXAoKCk9PntPZSgpO1JoMT1rZmV9KTtmdW5jdGlvbiB6ZmUoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0TW9udGgoKX12YXIgcWgxLENmZT1wKCgpPT57T2UoKTtxaDE9emZlfSk7ZnVuY3Rpb24gVGZlKGUsdCl7bGV0W3IsaV09WytsZShlLnN0YXJ0KSwrbGUoZS5lbmQpXS5zb3J0KChkLGgpPT5kLWgpLFthLG5dPVsrbGUodC5zdGFydCksK2xlKHQuZW5kKV0uc29ydCgoZCxoKT0+ZC1oKTtpZighKHI8biYmYTxpKSlyZXR1cm4gMDtsZXQgcz1hPHI/cjphLGw9cy1DMShzKSxjPW4+aT9pOm4sdT1jLUMxKGMpO3JldHVybiBNYXRoLmNlaWwoKHUtbCkvcHgpfXZhciBHaDEsX2ZlPXAoKCk9PntnbCgpO090KCk7T2UoKTtHaDE9VGZlfSk7ZnVuY3Rpb24gTGZlKGUpe3JldHVybiBsZShlKS5nZXRTZWNvbmRzKCl9dmFyIFhoMSxBZmU9cCgoKT0+e09lKCk7WGgxPUxmZX0pO2Z1bmN0aW9uIERmZShlKXtyZXR1cm4rbGUoZSl9dmFyIEtoMSxFZmU9cCgoKT0+e09lKCk7S2gxPURmZX0pO2Z1bmN0aW9uICRmZShlKXtyZXR1cm4gTWF0aC50cnVuYygrbGUoZSkvMWUzKX12YXIgcmYxLElmZT1wKCgpPT57T2UoKTtyZjE9JGZlfSk7ZnVuY3Rpb24gUGZlKGUsdCl7bGV0IHI9THIoKSxpPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGE9bnkobGUoZSx0Py5pbikpO2lmKGlzTmFOKGEpKXJldHVybiBOYU47bGV0IG49dDAoSmMoZSx0KSksbz1pLW47bzw9MCYmKG8rPTcpO2xldCBzPWEtbztyZXR1cm4gTWF0aC5jZWlsKHMvNykrMX12YXIgY2YxLE5mZT1wKCgpPT57ZGEoKTtiSCgpO3hmKCk7ZmYoKTtPZSgpO2NmMT1QZmV9KTtmdW5jdGlvbiBkeShlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSxpKzEsMCksci5zZXRIb3VycygwLDAsMCwwKSxsZShyLHQ/LmluKX12YXIgcGYxLE1IPXAoKCk9PntPZSgpO3BmMT1keX0pO2Z1bmN0aW9uIEZmZShlLHQpe2xldCByPWxlKGUsdD8uaW4pO3JldHVybiB2MyhkeShyLHQpLEpjKHIsdCksdCkrMX12YXIgdmYxLE9mZT1wKCgpPT57JHgoKTtNSCgpO2ZmKCk7T2UoKTt2ZjE9RmZlfSk7ZnVuY3Rpb24gUmZlKGUsdCl7cmV0dXJuIGxlKGUsdD8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIHdmMSxCZmU9cCgoKT0+e09lKCk7d2YxPVJmZX0pO2Z1bmN0aW9uIEhmZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKkFuKX12YXIgU2YxLHFmZT1wKCgpPT57T3QoKTtTZjE9SGZlfSk7ZnVuY3Rpb24gamZlKGUpe3JldHVybiBNYXRoLnRydW5jKGUqaHgpfXZhciBUZjEsVmZlPXAoKCk9PntPdCgpO1RmMT1qZmV9KTtmdW5jdGlvbiBVZmUoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSptMyl9dmFyIEFmMSxXZmU9cCgoKT0+e090KCk7QWYxPVVmZX0pO2Z1bmN0aW9uIEdmZShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtpZihpc05hTigraSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RhcnQgZGF0ZSBpcyBpbnZhbGlkIik7aWYoaXNOYU4oK2EpKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuZCBkYXRlIGlzIGludmFsaWQiKTtpZihyPy5hc3NlcnRQb3NpdGl2ZSYmK2k+K2EpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgbXVzdCBiZSBhZnRlciBzdGFydCBkYXRlIik7cmV0dXJue3N0YXJ0OmksZW5kOmF9fXZhciAkZjEsWWZlPXAoKCk9PntScigpOyRmMT1HZmV9KTtmdW5jdGlvbiBaZmUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09X2kodD8uaW4sZSksYT17fSxuPWp4KGkscik7biYmKGEueWVhcnM9bik7bGV0IG89V2Mocix7eWVhcnM6YS55ZWFyc30pLHM9UWMoaSxvKTtzJiYoYS5tb250aHM9cyk7bGV0IGw9V2Mobyx7bW9udGhzOmEubW9udGhzfSksYz1ENShpLGwpO2MmJihhLmRheXM9Yyk7bGV0IHU9V2MobCx7ZGF5czphLmRheXN9KSxkPXgzKGksdSk7ZCYmKGEuaG91cnM9ZCk7bGV0IGg9V2ModSx7aG91cnM6YS5ob3Vyc30pLGY9eTMoaSxoKTtmJiYoYS5taW51dGVzPWYpO2xldCB4PVdjKGgse21pbnV0ZXM6YS5taW51dGVzfSksdj1ycyhpLHgpO3JldHVybiB2JiYoYS5zZWNvbmRzPXYpLGF9dmFyIGpmMSxYZmU9cCgoKT0+e2lzKCk7cUIoKTtQeCgpO054KCk7UngoKTtwZigpO2hmKCk7b0goKTtqZjE9WmZlfSk7ZnVuY3Rpb24gUWZlKGUsdCxyKXtsZXQgaTtyZXR1cm4gbDdyKHQpP2k9dDpyPXQsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQocj8ubG9jYWxlLGkpLmZvcm1hdChsZShlKSl9ZnVuY3Rpb24gbDdyKGUpe3JldHVybiBlIT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gZSl9dmFyIFdmMSxKZmU9cCgoKT0+e09lKCk7V2YxPVFmZX0pO2Z1bmN0aW9uIEtmZShlLHQscil7bGV0IGk9MCxhLFtuLG9dPWR0KHI/LmluLGUsdCk7aWYocj8udW5pdClhPXI/LnVuaXQsYT09PSJzZWNvbmQiP2k9cnMobixvKTphPT09Im1pbnV0ZSI/aT15MyhuLG8pOmE9PT0iaG91ciI/aT14MyhuLG8pOmE9PT0iZGF5Ij9pPVRpKG4sbyk6YT09PSJ3ZWVrIj9pPXYzKG4sbyk6YT09PSJtb250aCI/aT1iMyhuLG8pOmE9PT0icXVhcnRlciI/aT1BNShuLG8pOmE9PT0ieWVhciImJihpPVhjKG4sbykpO2Vsc2V7bGV0IGw9cnMobixvKTtNYXRoLmFicyhsKTxTNT8oaT1ycyhuLG8pLGE9InNlY29uZCIpOk1hdGguYWJzKGwpPG0zPyhpPXkzKG4sbyksYT0ibWludXRlIik6TWF0aC5hYnMobCk8ZHgmJk1hdGguYWJzKFRpKG4sbykpPDE/KGk9eDMobixvKSxhPSJob3VyIik6TWF0aC5hYnMobCk8eHBlJiYoaT1UaShuLG8pKSYmTWF0aC5hYnMoaSk8Nz9hPSJkYXkiOk1hdGguYWJzKGwpPEJCPyhpPXYzKG4sbyksYT0id2VlayIpOk1hdGguYWJzKGwpPHlwZT8oaT1iMyhuLG8pLGE9Im1vbnRoIik6TWF0aC5hYnMobCk8UkI/QTUobixvKTw0PyhpPUE1KG4sbyksYT0icXVhcnRlciIpOihpPVhjKG4sbyksYT0ieWVhciIpOihpPVhjKG4sbyksYT0ieWVhciIpfXJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQocj8ubG9jYWxlLHtudW1lcmljOiJhdXRvIiwuLi5yfSkuZm9ybWF0KGksYSl9dmFyIGE3MSxlN2U9cCgoKT0+e1JyKCk7T3QoKTtibCgpO0V4KCk7aUgoKTskeCgpO0l4KCk7TngoKTtSeCgpO2hmKCk7YTcxPUtmZX0pO2Z1bmN0aW9uIHQ3ZShlLHQpe3JldHVybitsZShlKT4rbGUodCl9dmFyIHM3MSxyN2U9cCgoKT0+e09lKCk7czcxPXQ3ZX0pO2Z1bmN0aW9uIGk3ZShlLHQpe3JldHVybitsZShlKTwrbGUodCl9dmFyIGQ3MSxhN2U9cCgoKT0+e09lKCk7ZDcxPWk3ZX0pO2Z1bmN0aW9uIG43ZShlLHQpe3JldHVybitsZShlKT09K2xlKHQpfXZhciBoNzEsbzdlPXAoKCk9PntPZSgpO2g3MT1uN2V9KTtmdW5jdGlvbiBzN2UoZSx0LHIpe2xldCBpPW5ldyBEYXRlKGUsdCxyKTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09ZSYmaS5nZXRNb250aCgpPT09dCYmaS5nZXREYXRlKCk9PT1yfXZhciBtNzEsbDdlPXAoKCk9PnttNzE9czdlfSk7ZnVuY3Rpb24gYzdlKGUsdCl7cmV0dXJuIGxlKGUsdD8uaW4pLmdldERhdGUoKT09PTF9dmFyIHY3MSxkN2U9cCgoKT0+e09lKCk7djcxPWM3ZX0pO2Z1bmN0aW9uIHU3ZShlLHQpe3JldHVybiBsZShlLHQ/LmluKS5nZXREYXkoKT09PTV9dmFyIHc3MSxwN2U9cCgoKT0+e09lKCk7dzcxPXU3ZX0pO2Z1bmN0aW9uIGg3ZShlKXtyZXR1cm4rbGUoZSk+RGF0ZS5ub3coKX12YXIgUzcxLGY3ZT1wKCgpPT57T2UoKTtTNzE9aDdlfSk7ZnVuY3Rpb24gdXkoZSx0KXtsZXQgcj1jN3IodCk/bmV3IHQoMCk6UGUodCwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpKSxyLnNldEhvdXJzKGUuZ2V0SG91cnMoKSxlLmdldE1pbnV0ZXMoKSxlLmdldFNlY29uZHMoKSxlLmdldE1pbGxpc2Vjb25kcygpKSxyfWZ1bmN0aW9uIGM3cihlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiImJmUucHJvdG90eXBlPy5jb25zdHJ1Y3Rvcj09PWV9dmFyIFQ3MSxrSD1wKCgpPT57ZnQoKTtUNzE9dXl9KTt2YXIgZDdyLHB5LGh5LGZ5LFNIPXAoKCk9PntmdCgpO2tIKCk7ZDdyPTEwLHB5PWNsYXNze3N1YlByaW9yaXR5PTA7dmFsaWRhdGUodCxyKXtyZXR1cm4hMH19LGh5PWNsYXNzIGV4dGVuZHMgcHl7Y29uc3RydWN0b3IodCxyLGksYSxuKXtzdXBlcigpLHRoaXMudmFsdWU9dCx0aGlzLnZhbGlkYXRlVmFsdWU9cix0aGlzLnNldFZhbHVlPWksdGhpcy5wcmlvcml0eT1hLG4mJih0aGlzLnN1YlByaW9yaXR5PW4pfXZhbGlkYXRlKHQscil7cmV0dXJuIHRoaXMudmFsaWRhdGVWYWx1ZSh0LHRoaXMudmFsdWUscil9c2V0KHQscixpKXtyZXR1cm4gdGhpcy5zZXRWYWx1ZSh0LHIsdGhpcy52YWx1ZSxpKX19LGZ5PWNsYXNzIGV4dGVuZHMgcHl7cHJpb3JpdHk9ZDdyO3N1YlByaW9yaXR5PS0xO2NvbnN0cnVjdG9yKHQscil7c3VwZXIoKSx0aGlzLmNvbnRleHQ9dHx8KGk9PlBlKHIsaSkpfXNldCh0LHIpe3JldHVybiByLnRpbWVzdGFtcElzU2V0P3Q6UGUodCx1eSh0LHRoaXMuY29udGV4dCkpfX19KTt2YXIgdHQseXI9cCgoKT0+e1NIKCk7dHQ9Y2xhc3N7cnVuKHQscixpLGEpe2xldCBuPXRoaXMucGFyc2UodCxyLGksYSk7cmV0dXJuIG4/e3NldHRlcjpuZXcgaHkobi52YWx1ZSx0aGlzLnZhbGlkYXRlLHRoaXMuc2V0LHRoaXMucHJpb3JpdHksdGhpcy5zdWJQcmlvcml0eSkscmVzdDpuLnJlc3R9Om51bGx9dmFsaWRhdGUodCxyLGkpe3JldHVybiEwfX19KTt2YXIgbXksbTdlPXAoKCk9Pnt5cigpO215PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9MTQwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIGkuZXJhKHQse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8aS5lcmEodCx7d2lkdGg6Im5hcnJvdyJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gaS5lcmEodCx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiBpLmVyYSh0LHt3aWR0aDoid2lkZSJ9KXx8aS5lcmEodCx7d2lkdGg6ImFiYnJldmlhdGVkIn0pfHxpLmVyYSh0LHt3aWR0aDoibmFycm93In0pfX1zZXQodCxyLGkpe3JldHVybiByLmVyYT1pLHQuc2V0RnVsbFllYXIoaSwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJSIiwidSIsInQiLCJUIl19fSk7dmFyIHByLHNvLGhhPXAoKCk9Pntwcj17bW9udGg6L14oMVswLTJdfDA/XGQpLyxkYXRlOi9eKDNbMC0xXXxbMC0yXT9cZCkvLGRheU9mWWVhcjovXigzNlswLTZdfDNbMC01XVxkfFswLTJdP1xkP1xkKS8sd2VlazovXig1WzAtM118WzAtNF0/XGQpLyxob3VyMjNoOi9eKDJbMC0zXXxbMC0xXT9cZCkvLGhvdXIyNGg6L14oMlswLTRdfFswLTFdP1xkKS8saG91cjExaDovXigxWzAtMV18MD9cZCkvLGhvdXIxMmg6L14oMVswLTJdfDA/XGQpLyxtaW51dGU6L15bMC01XT9cZC8sc2Vjb25kOi9eWzAtNV0/XGQvLHNpbmdsZURpZ2l0Oi9eXGQvLHR3b0RpZ2l0czovXlxkezEsMn0vLHRocmVlRGlnaXRzOi9eXGR7MSwzfS8sZm91ckRpZ2l0czovXlxkezEsNH0vLGFueURpZ2l0c1NpZ25lZDovXi0/XGQrLyxzaW5nbGVEaWdpdFNpZ25lZDovXi0/XGQvLHR3b0RpZ2l0c1NpZ25lZDovXi0/XGR7MSwyfS8sdGhyZWVEaWdpdHNTaWduZWQ6L14tP1xkezEsM30vLGZvdXJEaWdpdHNTaWduZWQ6L14tP1xkezEsNH0vfSxzbz17YmFzaWNPcHRpb25hbE1pbnV0ZXM6L14oWystXSkoXGR7Mn0pKFxkezJ9KT98Wi8sYmFzaWM6L14oWystXSkoXGR7Mn0pKFxkezJ9KXxaLyxiYXNpY09wdGlvbmFsU2Vjb25kczovXihbKy1dKShcZHsyfSkoXGR7Mn0pKChcZHsyfSkpP3xaLyxleHRlbmRlZDovXihbKy1dKShcZHsyfSk6KFxkezJ9KXxaLyxleHRlbmRlZE9wdGlvbmFsU2Vjb25kczovXihbKy1dKShcZHsyfSk6KFxkezJ9KSg6KFxkezJ9KSk/fFovfX0pO2Z1bmN0aW9uIEJyKGUsdCl7cmV0dXJuIGUmJnt2YWx1ZTp0KGUudmFsdWUpLHJlc3Q6ZS5yZXN0fX1mdW5jdGlvbiBscihlLHQpe2xldCByPXQubWF0Y2goZSk7cmV0dXJuIHI/e3ZhbHVlOnBhcnNlSW50KHJbMF0sMTApLHJlc3Q6dC5zbGljZShyWzBdLmxlbmd0aCl9Om51bGx9ZnVuY3Rpb24gbG8oZSx0KXtsZXQgcj10Lm1hdGNoKGUpO2lmKCFyKXJldHVybiBudWxsO2lmKHJbMF09PT0iWiIpcmV0dXJue3ZhbHVlOjAscmVzdDp0LnNsaWNlKDEpfTtsZXQgaT1yWzFdPT09IisiPzE6LTEsYT1yWzJdP3BhcnNlSW50KHJbMl0sMTApOjAsbj1yWzNdP3BhcnNlSW50KHJbM10sMTApOjAsbz1yWzVdP3BhcnNlSW50KHJbNV0sMTApOjA7cmV0dXJue3ZhbHVlOmkqKGEqQW4rbipjYStvKk01KSxyZXN0OnQuc2xpY2UoclswXS5sZW5ndGgpfX1mdW5jdGlvbiBneShlKXtyZXR1cm4gbHIocHIuYW55RGlnaXRzU2lnbmVkLGUpfWZ1bmN0aW9uIEl0KGUsdCl7c3dpdGNoKGUpe2Nhc2UgMTpyZXR1cm4gbHIocHIuc2luZ2xlRGlnaXQsdCk7Y2FzZSAyOnJldHVybiBscihwci50d29EaWdpdHMsdCk7Y2FzZSAzOnJldHVybiBscihwci50aHJlZURpZ2l0cyx0KTtjYXNlIDQ6cmV0dXJuIGxyKHByLmZvdXJEaWdpdHMsdCk7ZGVmYXVsdDpyZXR1cm4gbHIobmV3IFJlZ0V4cCgiXlxcZHsxLCIrZSsifSIpLHQpfX1mdW5jdGlvbiBxNShlLHQpe3N3aXRjaChlKXtjYXNlIDE6cmV0dXJuIGxyKHByLnNpbmdsZURpZ2l0U2lnbmVkLHQpO2Nhc2UgMjpyZXR1cm4gbHIocHIudHdvRGlnaXRzU2lnbmVkLHQpO2Nhc2UgMzpyZXR1cm4gbHIocHIudGhyZWVEaWdpdHNTaWduZWQsdCk7Y2FzZSA0OnJldHVybiBscihwci5mb3VyRGlnaXRzU2lnbmVkLHQpO2RlZmF1bHQ6cmV0dXJuIGxyKG5ldyBSZWdFeHAoIl4tP1xcZHsxLCIrZSsifSIpLHQpfX1mdW5jdGlvbiBqNShlKXtzd2l0Y2goZSl7Y2FzZSJtb3JuaW5nIjpyZXR1cm4gNDtjYXNlImV2ZW5pbmciOnJldHVybiAxNztjYXNlInBtIjpjYXNlIm5vb24iOmNhc2UiYWZ0ZXJub29uIjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gYnkoZSx0KXtsZXQgcj10PjAsaT1yP3Q6MS10LGE7aWYoaTw9NTApYT1lfHwxMDA7ZWxzZXtsZXQgbj1pKzUwLG89TWF0aC50cnVuYyhuLzEwMCkqMTAwLHM9ZT49biUxMDA7YT1lK28tKHM/MTAwOjApfXJldHVybiByP2E6MS1hfWZ1bmN0aW9uIHZ5KGUpe3JldHVybiBlJTQwMD09PTB8fGUlND09PTAmJmUlMTAwIT09MH12YXIgQXI9cCgoKT0+e090KCk7aGEoKX0pO3ZhciB4eSxnN2U9cCgoKT0+e3lyKCk7QXIoKTt4eT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTEzMDtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInUiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl07cGFyc2UodCxyLGkpe2xldCBhPW49Pih7eWVhcjpuLGlzVHdvRGlnaXRZZWFyOnI9PT0ieXkifSk7c3dpdGNoKHIpe2Nhc2UieSI6cmV0dXJuIEJyKEl0KDQsdCksYSk7Y2FzZSJ5byI6cmV0dXJuIEJyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJ5ZWFyIn0pLGEpO2RlZmF1bHQ6cmV0dXJuIEJyKEl0KHIubGVuZ3RoLHQpLGEpfX12YWxpZGF0ZSh0LHIpe3JldHVybiByLmlzVHdvRGlnaXRZZWFyfHxyLnllYXI+MH1zZXQodCxyLGkpe2xldCBhPXQuZ2V0RnVsbFllYXIoKTtpZihpLmlzVHdvRGlnaXRZZWFyKXtsZXQgbz1ieShpLnllYXIsYSk7cmV0dXJuIHQuc2V0RnVsbFllYXIobywwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1sZXQgbj0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9pLnllYXI6MS1pLnllYXI7cmV0dXJuIHQuc2V0RnVsbFllYXIobiwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH19fSk7dmFyIHl5LGI3ZT1wKCgpPT57bWYoKTtyMigpO3lyKCk7QXIoKTt5eT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTEzMDtwYXJzZSh0LHIsaSl7bGV0IGE9bj0+KHt5ZWFyOm4saXNUd29EaWdpdFllYXI6cj09PSJZWSJ9KTtzd2l0Y2gocil7Y2FzZSJZIjpyZXR1cm4gQnIoSXQoNCx0KSxhKTtjYXNlIllvIjpyZXR1cm4gQnIoaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6InllYXIifSksYSk7ZGVmYXVsdDpyZXR1cm4gQnIoSXQoci5sZW5ndGgsdCksYSl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHIuaXNUd29EaWdpdFllYXJ8fHIueWVhcj4wfXNldCh0LHIsaSxhKXtsZXQgbj1LYyh0LGEpO2lmKGkuaXNUd29EaWdpdFllYXIpe2xldCBzPWJ5KGkueWVhcixuKTtyZXR1cm4gdC5zZXRGdWxsWWVhcihzLDAsYS5maXJzdFdlZWtDb250YWluc0RhdGUpLHQuc2V0SG91cnMoMCwwLDAsMCksSnIodCxhKX1sZXQgbz0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9pLnllYXI6MS1pLnllYXI7cmV0dXJuIHQuc2V0RnVsbFllYXIobywwLGEuZmlyc3RXZWVrQ29udGFpbnNEYXRlKSx0LnNldEhvdXJzKDAsMCwwLDApLEpyKHQsYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwiUSIsInEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO3ZhciB3eSx2N2U9cCgoKT0+e0syKCk7ZnQoKTt5cigpO0FyKCk7d3k9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0xMzA7cGFyc2UodCxyKXtyZXR1cm4gcj09PSJSIj9xNSg0LHQpOnE1KHIubGVuZ3RoLHQpfXNldCh0LHIsaSl7bGV0IGE9UGUodCwwKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihpLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKSxRMShhKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJ1IiwiUSIsInEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgTXkseDdlPXAoKCk9Pnt5cigpO0FyKCk7TXk9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0xMzA7cGFyc2UodCxyKXtyZXR1cm4gcj09PSJ1Ij9xNSg0LHQpOnE1KHIubGVuZ3RoLHQpfXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0RnVsbFllYXIoaSwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJSIiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciBreSx5N2U9cCgoKT0+e3lyKCk7QXIoKTtreT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTEyMDtwYXJzZSh0LHIsaSl7c3dpdGNoKHIpe2Nhc2UiUSI6Y2FzZSJRUSI6cmV0dXJuIEl0KHIubGVuZ3RoLHQpO2Nhc2UiUW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIGkucXVhcnRlcih0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0xJiZyPD00fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0TW9udGgoKGktMSkqMywxKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgU3ksdzdlPXAoKCk9Pnt5cigpO0FyKCk7U3k9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0xMjA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInEiOmNhc2UicXEiOnJldHVybiBJdChyLmxlbmd0aCx0KTtjYXNlInFvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gaS5xdWFydGVyKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gaS5xdWFydGVyKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9NH1zZXQodCxyLGkpe3JldHVybiB0LnNldE1vbnRoKChpLTEpKjMsMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIHp5LE03ZT1wKCgpPT57aGEoKTt5cigpO0FyKCk7enk9Y2xhc3MgZXh0ZW5kcyB0dHtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTCIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl07cHJpb3JpdHk9MTEwO3BhcnNlKHQscixpKXtsZXQgYT1uPT5uLTE7c3dpdGNoKHIpe2Nhc2UiTSI6cmV0dXJuIEJyKGxyKHByLm1vbnRoLHQpLGEpO2Nhc2UiTU0iOnJldHVybiBCcihJdCgyLHQpLGEpO2Nhc2UiTW8iOnJldHVybiBCcihpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoibW9udGgifSksYSk7Y2FzZSJNTU0iOnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gaS5tb250aCh0LHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkubW9udGgodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9MTF9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRNb250aChpLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH19fSk7dmFyIEN5LGs3ZT1wKCgpPT57aGEoKTt5cigpO0FyKCk7Q3k9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0xMTA7cGFyc2UodCxyLGkpe2xldCBhPW49Pm4tMTtzd2l0Y2gocil7Y2FzZSJMIjpyZXR1cm4gQnIobHIocHIubW9udGgsdCksYSk7Y2FzZSJMTCI6cmV0dXJuIEJyKEl0KDIsdCksYSk7Y2FzZSJMbyI6cmV0dXJuIEJyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJtb250aCJ9KSxhKTtjYXNlIkxMTCI6cmV0dXJuIGkubW9udGgodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLm1vbnRoKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIGkubW9udGgodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLm1vbnRoKHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5tb250aCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0wJiZyPD0xMX1zZXQodCxyLGkpe3JldHVybiB0LnNldE1vbnRoKGksMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJNIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiBUeShlLHQscil7bGV0IGk9bGUoZSxyPy5pbiksYT1CNShpLHIpLXQ7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKS1hKjcpLGxlKGkscj8uaW4pfXZhciB2bTEsekg9cCgoKT0+e2V5KCk7T2UoKTt2bTE9VHl9KTt2YXIgX3ksUzdlPXAoKCk9Pnt6SCgpO3IyKCk7aGEoKTt5cigpO0FyKCk7X3k9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0xMDA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInciOnJldHVybiBscihwci53ZWVrLHQpO2Nhc2Uid28iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoid2VlayJ9KTtkZWZhdWx0OnJldHVybiBJdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9NTN9c2V0KHQscixpLGEpe3JldHVybiBKcihUeSh0LGksYSksYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIEx5KGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKSxhPVI1KGksciktdDtyZXR1cm4gaS5zZXREYXRlKGkuZ2V0RGF0ZSgpLWEqNyksaX12YXIgX20xLENIPXAoKCk9PntKeCgpO09lKCk7X20xPUx5fSk7dmFyIEF5LHo3ZT1wKCgpPT57Q0goKTtLMigpO2hhKCk7eXIoKTtBcigpO0F5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9MTAwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJJIjpyZXR1cm4gbHIocHIud2Vlayx0KTtjYXNlIklvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6IndlZWsifSk7ZGVmYXVsdDpyZXR1cm4gSXQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTEmJnI8PTUzfXNldCh0LHIsaSl7cmV0dXJuIFExKEx5KHQsaSkpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIHU3cixwN3IsRHksQzdlPXAoKCk9PntoYSgpO3lyKCk7QXIoKTt1N3I9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxwN3I9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxEeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTkwO3N1YlByaW9yaXR5PTE7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImQiOnJldHVybiBscihwci5kYXRlLHQpO2Nhc2UiZG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBJdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtsZXQgaT10LmdldEZ1bGxZZWFyKCksYT12eShpKSxuPXQuZ2V0TW9udGgoKTtyZXR1cm4gYT9yPj0xJiZyPD1wN3Jbbl06cj49MSYmcjw9dTdyW25dfXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0RGF0ZShpKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIEV5LFQ3ZT1wKCgpPT57aGEoKTt5cigpO0FyKCk7RXk9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT05MDtzdWJwcmlvcml0eT0xO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJEIjpjYXNlIkREIjpyZXR1cm4gbHIocHIuZGF5T2ZZZWFyLHQpO2Nhc2UiRG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBJdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtsZXQgaT10LmdldEZ1bGxZZWFyKCk7cmV0dXJuIHZ5KGkpP3I+PTEmJnI8PTM2NjpyPj0xJiZyPD0zNjV9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRNb250aCgwLGkpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJFIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiByMChlLHQscil7bGV0IGk9THIoKSxhPXI/LndlZWtTdGFydHNPbj8/cj8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2kud2Vla1N0YXJ0c09uPz9pLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG49bGUoZSxyPy5pbiksbz1uLmdldERheSgpLGw9KHQlNys3KSU3LGM9Ny1hLHU9dDwwfHx0PjY/dC0obytjKSU3OihsK2MpJTctKG8rYyklNztyZXR1cm4gbGkobix1LHIpfXZhciBHbTEseWY9cCgoKT0+e2RhKCk7WDIoKTtPZSgpO0dtMT1yMH0pO3ZhciAkeSxfN2U9cCgoKT0+e3lmKCk7eXIoKTskeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiBpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9Nn1zZXQodCxyLGksYSl7cmV0dXJuIHQ9cjAodCxpLGEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgSXksTDdlPXAoKCk9Pnt5ZigpO3lyKCk7QXIoKTtJeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpLGEpe2xldCBuPW89PntsZXQgcz1NYXRoLmZsb29yKChvLTEpLzcpKjc7cmV0dXJuKG8rYS53ZWVrU3RhcnRzT24rNiklNytzfTtzd2l0Y2gocil7Y2FzZSJlIjpjYXNlImVlIjpyZXR1cm4gQnIoSXQoci5sZW5ndGgsdCksbik7Y2FzZSJlbyI6cmV0dXJuIEJyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJkYXkifSksbik7Y2FzZSJlZWUiOnJldHVybiBpLmRheSh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBpLmRheSh0LHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTZ9c2V0KHQscixpLGEpe3JldHVybiB0PXIwKHQsaSxhKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsIkUiLCJpIiwiYyIsInQiLCJUIl19fSk7dmFyIFB5LEE3ZT1wKCgpPT57eWYoKTt5cigpO0FyKCk7UHk9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT05MDtwYXJzZSh0LHIsaSxhKXtsZXQgbj1vPT57bGV0IHM9TWF0aC5mbG9vcigoby0xKS83KSo3O3JldHVybihvK2Eud2Vla1N0YXJ0c09uKzYpJTcrc307c3dpdGNoKHIpe2Nhc2UiYyI6Y2FzZSJjYyI6cmV0dXJuIEJyKEl0KHIubGVuZ3RoLHQpLG4pO2Nhc2UiY28iOnJldHVybiBCcihpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF5In0pLG4pO2Nhc2UiY2NjIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjYyI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjY2MiOnJldHVybiBpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gaS5kYXkodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0wJiZyPD02fXNldCh0LHIsaSxhKXtyZXR1cm4gdD1yMCh0LGksYSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJFIiwiaSIsImUiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIE55KGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKSxhPWN5KGksciksbj10LWE7cmV0dXJuIGxpKGksbixyKX12YXIgYzkxLFRIPXAoKCk9PntYMigpO3dIKCk7T2UoKTtjOTE9Tnl9KTt2YXIgRnksRDdlPXAoKCk9PntUSCgpO3lyKCk7QXIoKTtGeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpKXtsZXQgYT1uPT5uPT09MD83Om47c3dpdGNoKHIpe2Nhc2UiaSI6Y2FzZSJpaSI6cmV0dXJuIEl0KHIubGVuZ3RoLHQpO2Nhc2UiaW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gQnIoaS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7Y2FzZSJpaWlpaSI6cmV0dXJuIEJyKGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7Y2FzZSJpaWlpaWkiOnJldHVybiBCcihpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7ZGVmYXVsdDpyZXR1cm4gQnIoaS5kYXkodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLGEpfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0xJiZyPD03fXNldCh0LHIsaSl7cmV0dXJuIHQ9TnkodCxpKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIE95LEU3ZT1wKCgpPT57eXIoKTtBcigpO095PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhYWEiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoajUoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYiIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIFJ5LCQ3ZT1wKCgpPT57eXIoKTtBcigpO1J5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImIiOmNhc2UiYmIiOmNhc2UiYmJiIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYmJiYmIiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoajUoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIEJ5LEk3ZT1wKCgpPT57eXIoKTtBcigpO0J5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoajUoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJ0IiwiVCJdfX0pO3ZhciBIeSxQN2U9cCgoKT0+e2hhKCk7eXIoKTtBcigpO0h5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9NzA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImgiOnJldHVybiBscihwci5ob3VyMTJoLHQpO2Nhc2UiaG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBJdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9MTJ9c2V0KHQscixpKXtsZXQgYT10LmdldEhvdXJzKCk+PTEyO3JldHVybiBhJiZpPDEyP3Quc2V0SG91cnMoaSsxMiwwLDAsMCk6IWEmJmk9PT0xMj90LnNldEhvdXJzKDAsMCwwLDApOnQuc2V0SG91cnMoaSwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJIIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBxeSxON2U9cCgoKT0+e2hhKCk7eXIoKTtBcigpO3F5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9NzA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIkgiOnJldHVybiBscihwci5ob3VyMjNoLHQpO2Nhc2UiSG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBJdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9MjN9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRIb3VycyhpLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwiaCIsIksiLCJrIiwidCIsIlQiXX19KTt2YXIganksRjdlPXAoKCk9PntoYSgpO3lyKCk7QXIoKTtqeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTcwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJLIjpyZXR1cm4gbHIocHIuaG91cjExaCx0KTtjYXNlIktvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gSXQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTExfXNldCh0LHIsaSl7cmV0dXJuIHQuZ2V0SG91cnMoKT49MTImJmk8MTI/dC5zZXRIb3VycyhpKzEyLDAsMCwwKTp0LnNldEhvdXJzKGksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiaCIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgVnksTzdlPXAoKCk9PntoYSgpO3lyKCk7QXIoKTtWeT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTcwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJrIjpyZXR1cm4gbHIocHIuaG91cjI0aCx0KTtjYXNlImtvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gSXQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTEmJnI8PTI0fXNldCh0LHIsaSl7bGV0IGE9aTw9MjQ/aSUyNDppO3JldHVybiB0LnNldEhvdXJzKGEsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSCIsIksiLCJ0IiwiVCJdfX0pO3ZhciBVeSxSN2U9cCgoKT0+e2hhKCk7eXIoKTtBcigpO1V5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9NjA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIm0iOnJldHVybiBscihwci5taW51dGUsdCk7Y2FzZSJtbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJtaW51dGUifSk7ZGVmYXVsdDpyZXR1cm4gSXQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTU5fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0TWludXRlcyhpLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciBXeSxCN2U9cCgoKT0+e2hhKCk7eXIoKTtBcigpO1d5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9NTA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInMiOnJldHVybiBscihwci5zZWNvbmQsdCk7Y2FzZSJzbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJzZWNvbmQifSk7ZGVmYXVsdDpyZXR1cm4gSXQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTU5fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0U2Vjb25kcyhpLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgR3ksSDdlPXAoKCk9Pnt5cigpO0FyKCk7R3k9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT0zMDtwYXJzZSh0LHIpe2xldCBpPWE9Pk1hdGgudHJ1bmMoYSpNYXRoLnBvdygxMCwtci5sZW5ndGgrMykpO3JldHVybiBCcihJdChyLmxlbmd0aCx0KSxpKX1zZXQodCxyLGkpe3JldHVybiB0LnNldE1pbGxpc2Vjb25kcyhpKSx0fWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIFl5LHE3ZT1wKCgpPT57ZnQoKTtnbCgpO2hhKCk7eXIoKTtBcigpO1l5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9MTA7cGFyc2UodCxyKXtzd2l0Y2gocil7Y2FzZSJYIjpyZXR1cm4gbG8oc28uYmFzaWNPcHRpb25hbE1pbnV0ZXMsdCk7Y2FzZSJYWCI6cmV0dXJuIGxvKHNvLmJhc2ljLHQpO2Nhc2UiWFhYWCI6cmV0dXJuIGxvKHNvLmJhc2ljT3B0aW9uYWxTZWNvbmRzLHQpO2Nhc2UiWFhYWFgiOnJldHVybiBsbyhzby5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyx0KTtkZWZhdWx0OnJldHVybiBsbyhzby5leHRlbmRlZCx0KX19c2V0KHQscixpKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD90OlBlKHQsdC5nZXRUaW1lKCktQzEodCktaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJ4Il19fSk7dmFyIFp5LGo3ZT1wKCgpPT57ZnQoKTtnbCgpO2hhKCk7eXIoKTtBcigpO1p5PWNsYXNzIGV4dGVuZHMgdHR7cHJpb3JpdHk9MTA7cGFyc2UodCxyKXtzd2l0Y2gocil7Y2FzZSJ4IjpyZXR1cm4gbG8oc28uYmFzaWNPcHRpb25hbE1pbnV0ZXMsdCk7Y2FzZSJ4eCI6cmV0dXJuIGxvKHNvLmJhc2ljLHQpO2Nhc2UieHh4eCI6cmV0dXJuIGxvKHNvLmJhc2ljT3B0aW9uYWxTZWNvbmRzLHQpO2Nhc2UieHh4eHgiOnJldHVybiBsbyhzby5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyx0KTtkZWZhdWx0OnJldHVybiBsbyhzby5leHRlbmRlZCx0KX19c2V0KHQscixpKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD90OlBlKHQsdC5nZXRUaW1lKCktQzEodCktaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIFh5LFY3ZT1wKCgpPT57ZnQoKTt5cigpO0FyKCk7WHk9Y2xhc3MgZXh0ZW5kcyB0dHtwcmlvcml0eT00MDtwYXJzZSh0KXtyZXR1cm4gZ3kodCl9c2V0KHQscixpKXtyZXR1cm5bUGUodCxpKjFlMykse3RpbWVzdGFtcElzU2V0OiEwfV19aW5jb21wYXRpYmxlVG9rZW5zPSIqIn19KTt2YXIgUXksVTdlPXAoKCk9PntmdCgpO3lyKCk7QXIoKTtReT1jbGFzcyBleHRlbmRzIHR0e3ByaW9yaXR5PTIwO3BhcnNlKHQpe3JldHVybiBneSh0KX1zZXQodCxyLGkpe3JldHVybltQZSh0LGkpLHt0aW1lc3RhbXBJc1NldDohMH1dfWluY29tcGF0aWJsZVRva2Vucz0iKiJ9fSk7dmFyIEp5LFc3ZT1wKCgpPT57bTdlKCk7ZzdlKCk7YjdlKCk7djdlKCk7eDdlKCk7eTdlKCk7dzdlKCk7TTdlKCk7azdlKCk7UzdlKCk7ejdlKCk7QzdlKCk7VDdlKCk7XzdlKCk7TDdlKCk7QTdlKCk7RDdlKCk7RTdlKCk7JDdlKCk7STdlKCk7UDdlKCk7TjdlKCk7RjdlKCk7TzdlKCk7UjdlKCk7QjdlKCk7SDdlKCk7cTdlKCk7ajdlKCk7VjdlKCk7VTdlKCk7Snk9e0c6bmV3IG15LHk6bmV3IHh5LFk6bmV3IHl5LFI6bmV3IHd5LHU6bmV3IE15LFE6bmV3IGt5LHE6bmV3IFN5LE06bmV3IHp5LEw6bmV3IEN5LHc6bmV3IF95LEk6bmV3IEF5LGQ6bmV3IER5LEQ6bmV3IEV5LEU6bmV3ICR5LGU6bmV3IEl5LGM6bmV3IFB5LGk6bmV3IEZ5LGE6bmV3IE95LGI6bmV3IFJ5LEI6bmV3IEJ5LGg6bmV3IEh5LEg6bmV3IHF5LEs6bmV3IGp5LGs6bmV3IFZ5LG06bmV3IFV5LHM6bmV3IFd5LFM6bmV3IEd5LFg6bmV3IFl5LHg6bmV3IFp5LHQ6bmV3IFh5LFQ6bmV3IFF5fX0pO2Z1bmN0aW9uIEt5KGUsdCxyLGkpe2xldCBhPSgpPT5QZShpPy5pbnx8cixOYU4pLG49bHkoKSxvPWk/LmxvY2FsZT8/bi5sb2NhbGU/P21uLHM9aT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/bi5maXJzdFdlZWtDb250YWluc0RhdGU/P24ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbD1pPy53ZWVrU3RhcnRzT24/P2k/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9uLndlZWtTdGFydHNPbj8/bi5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MDtpZighdClyZXR1cm4gZT9hKCk6bGUocixpPy5pbik7bGV0IGM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpzLHdlZWtTdGFydHNPbjpsLGxvY2FsZTpvfSx1PVtuZXcgZnkoaT8uaW4scildLGQ9dC5tYXRjaChmN3IpLm1hcChiPT57bGV0IHk9YlswXTtpZih5IGluIGUwKXtsZXQgdz1lMFt5XTtyZXR1cm4gdyhiLG8uZm9ybWF0TG9uZyl9cmV0dXJuIGJ9KS5qb2luKCIiKS5tYXRjaChoN3IpLGg9W107Zm9yKGxldCBiIG9mIGQpeyFpPy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnMmJnJ5KGIpJiZiZihiLHQsZSksIWk/LnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnMmJnR5KGIpJiZiZihiLHQsZSk7bGV0IHk9YlswXSx3PUp5W3ldO2lmKHcpe2xldHtpbmNvbXBhdGlibGVUb2tlbnM6a309dztpZihBcnJheS5pc0FycmF5KGspKXtsZXQgej1oLmZpbmQoTT0+ay5pbmNsdWRlcyhNLnRva2VuKXx8TS50b2tlbj09PXkpO2lmKHopdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7ei5mdWxsVG9rZW59XGAgYW5kIFxgJHtifVxgIGF0IHRoZSBzYW1lIHRpbWVgKX1lbHNlIGlmKHcuaW5jb21wYXRpYmxlVG9rZW5zPT09IioiJiZoLmxlbmd0aD4wKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke2J9XGAgYW5kIGFueSBvdGhlciB0b2tlbiBhdCB0aGUgc2FtZSB0aW1lYCk7aC5wdXNoKHt0b2tlbjp5LGZ1bGxUb2tlbjpifSk7bGV0IE89dy5ydW4oZSxiLG8ubWF0Y2gsYyk7aWYoIU8pcmV0dXJuIGEoKTt1LnB1c2goTy5zZXR0ZXIpLGU9Ty5yZXN0fWVsc2V7aWYoeS5tYXRjaCh2N3IpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIreSsiYCIpO2lmKGI9PT0iJyciP2I9IiciOnk9PT0iJyImJihiPXg3cihiKSksZS5pbmRleE9mKGIpPT09MCllPWUuc2xpY2UoYi5sZW5ndGgpO2Vsc2UgcmV0dXJuIGEoKX19aWYoZS5sZW5ndGg+MCYmYjdyLnRlc3QoZSkpcmV0dXJuIGEoKTtsZXQgZj11Lm1hcChiPT5iLnByaW9yaXR5KS5zb3J0KChiLHkpPT55LWIpLmZpbHRlcigoYix5LHcpPT53LmluZGV4T2YoYik9PT15KS5tYXAoYj0+dS5maWx0ZXIoeT0+eS5wcmlvcml0eT09PWIpLnNvcnQoKHksdyk9Pncuc3ViUHJpb3JpdHkteS5zdWJQcmlvcml0eSkpLm1hcChiPT5iWzBdKSx4PWxlKHIsaT8uaW4pO2lmKGlzTmFOKCt4KSlyZXR1cm4gYSgpO2xldCB2PXt9O2ZvcihsZXQgYiBvZiBmKXtpZighYi52YWxpZGF0ZSh4LGMpKXJldHVybiBhKCk7bGV0IHk9Yi5zZXQoeCx2LGMpO0FycmF5LmlzQXJyYXkoeSk/KHg9eVswXSxPYmplY3QuYXNzaWduKHYseVsxXSkpOng9eX1yZXR1cm4geH1mdW5jdGlvbiB4N3IoZSl7cmV0dXJuIGUubWF0Y2gobTdyKVsxXS5yZXBsYWNlKGc3ciwiJyIpfXZhciBoN3IsZjdyLG03cixnN3IsYjdyLHY3cixpYjEsX0g9cCgoKT0+e3czKCk7cEgoKTtoSCgpO2Z0KCk7eUgoKTtPZSgpO1NIKCk7VzdlKCk7aDdyPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csZjdyPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLG03cj0vXicoW15dKj8pJz8kLyxnN3I9LycnL2csYjdyPS9cUy8sdjdyPS9bYS16QS1aXS87aWIxPUt5fSk7ZnVuY3Rpb24gRzdlKGUsdCxyKXtyZXR1cm4gVWkoS3koZSx0LG5ldyBEYXRlLHIpKX12YXIgc2IxLFk3ZT1wKCgpPT57dmwoKTtfSCgpO3NiMT1HN2V9KTtmdW5jdGlvbiBaN2UoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0RGF5KCk9PT0xfXZhciBkYjEsWDdlPXAoKCk9PntPZSgpO2RiMT1aN2V9KTtmdW5jdGlvbiBRN2UoZSl7cmV0dXJuK2xlKGUpPERhdGUubm93KCl9dmFyIGhiMSxKN2U9cCgoKT0+e09lKCk7aGIxPVE3ZX0pO2Z1bmN0aW9uIHdmKGUsdCl7bGV0IHI9bGUoZSx0Py5pbik7cmV0dXJuIHIuc2V0TWludXRlcygwLDAsMCkscn12YXIgZ2IxLExIPXAoKCk9PntPZSgpO2diMT13Zn0pO2Z1bmN0aW9uIGV3KGUsdCxyKXtsZXRbaSxhXT1kdChyPy5pbixlLHQpO3JldHVybit3ZihpKT09K3dmKGEpfXZhciB5YjEsQUg9cCgoKT0+e1JyKCk7TEgoKTt5YjE9ZXd9KTtmdW5jdGlvbiBWNShlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtyZXR1cm4rSnIoaSxyKT09K0pyKGEscil9dmFyIFNiMSx0dz1wKCgpPT57UnIoKTtyMigpO1NiMT1WNX0pO2Z1bmN0aW9uIHJ3KGUsdCxyKXtyZXR1cm4gVjUoZSx0LHsuLi5yLHdlZWtTdGFydHNPbjoxfSl9dmFyIFRiMSxESD1wKCgpPT57dHcoKTtUYjE9cnd9KTtmdW5jdGlvbiBLN2UoZSx0LHIpe2xldFtpLGFdPWR0KHI/LmluLGUsdCk7cmV0dXJuK0RuKGkpPT0rRG4oYSl9dmFyIERiMSxlbWU9cCgoKT0+e0M1KCk7UnIoKTtEYjE9SzdlfSk7ZnVuY3Rpb24gTWYoZSx0KXtsZXQgcj1sZShlLHQ/LmluKTtyZXR1cm4gci5zZXRTZWNvbmRzKDAsMCkscn12YXIgSWIxLEVIPXAoKCk9PntPZSgpO0liMT1NZn0pO2Z1bmN0aW9uIGl3KGUsdCl7cmV0dXJuK01mKGUpPT0rTWYodCl9dmFyIEZiMSwkSD1wKCgpPT57RUgoKTtGYjE9aXd9KTtmdW5jdGlvbiBhdyhlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09YS5nZXRGdWxsWWVhcigpJiZpLmdldE1vbnRoKCk9PT1hLmdldE1vbnRoKCl9dmFyIEJiMSxJSD1wKCgpPT57UnIoKTtCYjE9YXd9KTtmdW5jdGlvbiBudyhlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtyZXR1cm4rYXMoaSk9PSthcyhhKX12YXIgVmIxLFBIPXAoKCk9PntScigpO1V4KCk7VmIxPW53fSk7ZnVuY3Rpb24ga2YoZSx0KXtsZXQgcj1sZShlLHQ/LmluKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoMCkscn12YXIgR2IxLE5IPXAoKCk9PntPZSgpO0diMT1rZn0pO2Z1bmN0aW9uIG93KGUsdCl7cmV0dXJuK2tmKGUpPT0ra2YodCl9dmFyIFhiMSxGSD1wKCgpPT57TkgoKTtYYjE9b3d9KTtmdW5jdGlvbiBzdyhlLHQscil7bGV0W2ksYV09ZHQocj8uaW4sZSx0KTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09YS5nZXRGdWxsWWVhcigpfXZhciBLYjEsT0g9cCgoKT0+e1JyKCk7S2IxPXN3fSk7ZnVuY3Rpb24gdG1lKGUsdCl7cmV0dXJuIGV3KGxlKGUsdD8uaW4pLFl0KHQ/LmlufHxlKSl9dmFyIGF2MSxybWU9cCgoKT0+e2NpKCk7QUgoKTtPZSgpO2F2MT10bWV9KTtmdW5jdGlvbiBpbWUoZSx0KXtyZXR1cm4gcncoUGUodD8uaW58fGUsZSksWXQodD8uaW58fGUpKX12YXIgY3YxLGFtZT1wKCgpPT57ZnQoKTtjaSgpO0RIKCk7Y3YxPWltZX0pO2Z1bmN0aW9uIG5tZShlKXtyZXR1cm4gaXcoZSxZdChlKSl9dmFyIGh2MSxvbWU9cCgoKT0+e2NpKCk7JEgoKTtodjE9bm1lfSk7ZnVuY3Rpb24gc21lKGUsdCl7cmV0dXJuIGF3KFBlKHQ/LmlufHxlLGUpLFl0KHQ/LmlufHxlKSl9dmFyIHZ2MSxsbWU9cCgoKT0+e2Z0KCk7Y2koKTtJSCgpO3Z2MT1zbWV9KTtmdW5jdGlvbiBjbWUoZSx0KXtyZXR1cm4gbncoUGUodD8uaW58fGUsZSksWXQodD8uaW58fGUpKX12YXIga3YxLGRtZT1wKCgpPT57ZnQoKTtjaSgpO1BIKCk7a3YxPWNtZX0pO2Z1bmN0aW9uIHVtZShlKXtyZXR1cm4gb3coZSxZdChlKSl9dmFyIFR2MSxwbWU9cCgoKT0+e2NpKCk7RkgoKTtUdjE9dW1lfSk7ZnVuY3Rpb24gaG1lKGUsdCl7cmV0dXJuIFY1KFBlKHQ/LmlufHxlLGUpLFl0KHQ/LmlufHxlKSx0KX12YXIgRXYxLGZtZT1wKCgpPT57ZnQoKTtjaSgpO3R3KCk7RXYxPWhtZX0pO2Z1bmN0aW9uIG1tZShlLHQpe3JldHVybiBzdyhQZSh0Py5pbnx8ZSxlKSxZdCh0Py5pbnx8ZSkpfXZhciBGdjEsZ21lPXAoKCk9PntmdCgpO2NpKCk7T0goKTtGdjE9bW1lfSk7ZnVuY3Rpb24gYm1lKGUsdCl7cmV0dXJuIGxlKGUsdD8uaW4pLmdldERheSgpPT09NH12YXIgQnYxLHZtZT1wKCgpPT57T2UoKTtCdjE9Ym1lfSk7ZnVuY3Rpb24geG1lKGUsdCl7cmV0dXJuIHRzKFBlKHQ/LmlufHxlLGUpLFl0KHQ/LmlufHxlKSl9dmFyIFV2MSx5bWU9cCgoKT0+e2Z0KCk7Y2koKTtMNSgpO1V2MT14bWV9KTtmdW5jdGlvbiB3bWUoZSx0KXtyZXR1cm4gdHMoZSxsaShZdCh0Py5pbnx8ZSksMSksdCl9dmFyIFh2MSxNbWU9cCgoKT0+e1gyKCk7Y2koKTtMNSgpO1h2MT13bWV9KTtmdW5jdGlvbiBrbWUoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0RGF5KCk9PT0yfXZhciBLdjEsU21lPXAoKCk9PntPZSgpO0t2MT1rbWV9KTtmdW5jdGlvbiB6bWUoZSx0KXtyZXR1cm4gbGUoZSx0Py5pbikuZ2V0RGF5KCk9PT0zfXZhciByeDEsQ21lPXAoKCk9PntPZSgpO3J4MT16bWV9KTtmdW5jdGlvbiBUbWUoZSx0LHIpe2xldCBpPStsZShlLHI/LmluKSxbYSxuXT1bK2xlKHQuc3RhcnQscj8uaW4pLCtsZSh0LmVuZCxyPy5pbildLnNvcnQoKG8scyk9Pm8tcyk7cmV0dXJuIGk+PWEmJmk8PW59dmFyIG54MSxfbWU9cCgoKT0+e09lKCk7bngxPVRtZX0pO2Z1bmN0aW9uIGkwKGUsdCxyKXtyZXR1cm4gbGkoZSwtdCxyKX12YXIgbHgxLFNmPXAoKCk9PntYMigpO2x4MT1pMH0pO2Z1bmN0aW9uIExtZShlLHQpe3JldHVybiB0cyhQZSh0Py5pbnx8ZSxlKSxpMChZdCh0Py5pbnx8ZSksMSkpfXZhciBmeDEsQW1lPXAoKCk9PntmdCgpO2NpKCk7TDUoKTtTZigpO2Z4MT1MbWV9KTtmdW5jdGlvbiBEbWUoZSx0KXtsZXQgcj1sZShlLHQ/LmluKSxpPXIuZ2V0RnVsbFllYXIoKSxhPTkrTWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihhKzEsMCwwKSxyLnNldEhvdXJzKDAsMCwwLDApLGxlKHIsdD8uaW4pfXZhciBieDEsRW1lPXAoKCk9PntPZSgpO2J4MT1EbWV9KTtmdW5jdGlvbiBsdyhlLHQpe2xldCByPUxyKCksaT10Py53ZWVrU3RhcnRzT24/P3Q/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxhPWxlKGUsdD8uaW4pLG49YS5nZXREYXkoKSxvPShuPGk/LTc6MCkrNi0obi1pKTtyZXR1cm4gYS5zZXRIb3VycygwLDAsMCwwKSxhLnNldERhdGUoYS5nZXREYXRlKCkrbyksYX12YXIgd3gxLFJIPXAoKCk9PntkYSgpO09lKCk7d3gxPWx3fSk7ZnVuY3Rpb24gJG1lKGUsdCl7cmV0dXJuIGx3KGUsey4uLnQsd2Vla1N0YXJ0c09uOjF9KX12YXIgU3gxLEltZT1wKCgpPT57UkgoKTtTeDE9JG1lfSk7ZnVuY3Rpb24gUG1lKGUsdCl7bGV0IHI9cWEoZSx0KSxpPVBlKHQ/LmlufHxlLDApO2kuc2V0RnVsbFllYXIocisxLDAsNCksaS5zZXRIb3VycygwLDAsMCwwKTtsZXQgYT1RMShpLHQpO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktMSksYX12YXIgTHgxLE5tZT1wKCgpPT57ZnQoKTtZYygpO0syKCk7THgxPVBtZX0pO2Z1bmN0aW9uIEZtZShlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpLGE9aS1pJTMrMztyZXR1cm4gci5zZXRNb250aChhLDApLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgRXgxLE9tZT1wKCgpPT57T2UoKTtFeDE9Rm1lfSk7ZnVuY3Rpb24gUm1lKGUsdCl7bGV0IHI9bGUoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoaSsxLDAsMCksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBQeDEsQm1lPXAoKCk9PntPZSgpO1B4MT1SbWV9KTtmdW5jdGlvbiBIbWUoZSx0KXtsZXQgcj1sZShlKTtpZighVWkocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPXQubWF0Y2goeTdyKTtyZXR1cm4gaT9pLm1hcChuPT57aWYobj09PSInJyIpcmV0dXJuIiciO2xldCBvPW5bMF07aWYobz09PSInIilyZXR1cm4gUzdyKG4pO2xldCBzPUVuW29dO2lmKHMpcmV0dXJuIHMocixuKTtpZihvLm1hdGNoKGs3cikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitvKyJgIik7cmV0dXJuIG59KS5qb2luKCIiKToiIn1mdW5jdGlvbiBTN3IoZSl7bGV0IHQ9ZS5tYXRjaCh3N3IpO3JldHVybiB0P3RbMV0ucmVwbGFjZShNN3IsIiciKTplfXZhciB5N3IsdzdyLE03cixrN3IsQngxLHFtZT1wKCgpPT57dUgoKTt2bCgpO09lKCk7eTdyPS8oXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLHc3cj0vXicoW15dKj8pJz8kLyxNN3I9LycnL2csazdyPS9bYS16QS1aXS87QngxPUhtZX0pO2Z1bmN0aW9uIGptZSh7eWVhcnM6ZSxtb250aHM6dCx3ZWVrczpyLGRheXM6aSxob3VyczphLG1pbnV0ZXM6bixzZWNvbmRzOm99KXtsZXQgcz0wO2UmJihzKz1lKjM2NS4yNDI1KSx0JiYocys9dCooMzY1LjI0MjUvMTIpKSxyJiYocys9cio3KSxpJiYocys9aSk7bGV0IGw9cyoyNCo2MCo2MDtyZXR1cm4gYSYmKGwrPWEqNjAqNjApLG4mJihsKz1uKjYwKSxvJiYobCs9byksTWF0aC50cnVuYyhsKjFlMyl9dmFyIGp4MSxWbWU9cCgoKT0+e090KCk7angxPWptZX0pO2Z1bmN0aW9uIFVtZShlKXtsZXQgdD1lL0FuO3JldHVybiBNYXRoLnRydW5jKHQpfXZhciBXeDEsV21lPXAoKCk9PntPdCgpO1d4MT1VbWV9KTtmdW5jdGlvbiBHbWUoZSl7bGV0IHQ9ZS9jYTtyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgWngxLFltZT1wKCgpPT57T3QoKTtaeDE9R21lfSk7ZnVuY3Rpb24gWm1lKGUpe2xldCB0PWUvTTU7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIEp4MSxYbWU9cCgoKT0+e090KCk7SngxPVptZX0pO2Z1bmN0aW9uIFFtZShlKXtsZXQgdD1lL2h4O3JldHVybiBNYXRoLnRydW5jKHQpfXZhciB0eTEsSm1lPXAoKCk9PntPdCgpO3R5MT1RbWV9KTtmdW5jdGlvbiBLbWUoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSpjYSl9dmFyIGF5MSxlOWU9cCgoKT0+e090KCk7YXkxPUttZX0pO2Z1bmN0aW9uIHQ5ZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKlM1KX12YXIgc3kxLHI5ZT1wKCgpPT57T3QoKTtzeTE9dDllfSk7ZnVuY3Rpb24gaTllKGUpe2xldCB0PWUvZng7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIGR5MSxhOWU9cCgoKT0+e090KCk7ZHkxPWk5ZX0pO2Z1bmN0aW9uIG45ZShlKXtsZXQgdD1lL214O3JldHVybiBNYXRoLnRydW5jKHQpfXZhciBoeTEsbzllPXAoKCk9PntPdCgpO2h5MT1uOWV9KTtmdW5jdGlvbiBmYShlLHQscil7bGV0IGk9dC10MChlLHIpO3JldHVybiBpPD0wJiYoaSs9NyksbGkoZSxpLHIpfXZhciBieTEseWw9cCgoKT0+e1gyKCk7eGYoKTtieTE9ZmF9KTtmdW5jdGlvbiBzOWUoZSx0KXtyZXR1cm4gZmEoZSw1LHQpfXZhciB5eTEsbDllPXAoKCk9Pnt5bCgpO3l5MT1zOWV9KTtmdW5jdGlvbiBjOWUoZSx0KXtyZXR1cm4gZmEoZSwxLHQpfXZhciBreTEsZDllPXAoKCk9Pnt5bCgpO2t5MT1jOWV9KTtmdW5jdGlvbiB1OWUoZSx0KXtyZXR1cm4gZmEoZSw2LHQpfXZhciBDeTEscDllPXAoKCk9Pnt5bCgpO0N5MT11OWV9KTtmdW5jdGlvbiBoOWUoZSx0KXtyZXR1cm4gZmEoZSwwLHQpfXZhciBMeTEsZjllPXAoKCk9Pnt5bCgpO0x5MT1oOWV9KTtmdW5jdGlvbiBtOWUoZSx0KXtyZXR1cm4gZmEoZSw0LHQpfXZhciBFeTEsZzllPXAoKCk9Pnt5bCgpO0V5MT1tOWV9KTtmdW5jdGlvbiBiOWUoZSx0KXtyZXR1cm4gZmEoZSwyLHQpfXZhciBQeTEsdjllPXAoKCk9Pnt5bCgpO1B5MT1iOWV9KTtmdW5jdGlvbiB4OWUoZSx0KXtyZXR1cm4gZmEoZSwzLHQpfXZhciBPeTEseTllPXAoKCk9Pnt5bCgpO095MT14OWV9KTtmdW5jdGlvbiBNOWUoZSx0KXtsZXQgcj0oKT0+UGUodD8uaW4sTmFOKSxpPXQ/LmFkZGl0aW9uYWxEaWdpdHM/PzIsYT1fN3IoZSksbjtpZihhLmRhdGUpe2xldCBjPUw3cihhLmRhdGUsaSk7bj1BN3IoYy5yZXN0RGF0ZVN0cmluZyxjLnllYXIpfWlmKCFufHxpc05hTigrbikpcmV0dXJuIHIoKTtsZXQgbz0rbixzPTAsbDtpZihhLnRpbWUmJihzPUQ3cihhLnRpbWUpLGlzTmFOKHMpKSlyZXR1cm4gcigpO2lmKGEudGltZXpvbmUpe2lmKGw9RTdyKGEudGltZXpvbmUpLGlzTmFOKGwpKXJldHVybiByKCl9ZWxzZXtsZXQgYz1uZXcgRGF0ZShvK3MpLHU9bGUoMCx0Py5pbik7cmV0dXJuIHUuc2V0RnVsbFllYXIoYy5nZXRVVENGdWxsWWVhcigpLGMuZ2V0VVRDTW9udGgoKSxjLmdldFVUQ0RhdGUoKSksdS5zZXRIb3VycyhjLmdldFVUQ0hvdXJzKCksYy5nZXRVVENNaW51dGVzKCksYy5nZXRVVENTZWNvbmRzKCksYy5nZXRVVENNaWxsaXNlY29uZHMoKSksdX1yZXR1cm4gbGUobytzK2wsdD8uaW4pfWZ1bmN0aW9uIF83cihlKXtsZXQgdD17fSxyPWUuc3BsaXQoY3cuZGF0ZVRpbWVEZWxpbWl0ZXIpLGk7aWYoci5sZW5ndGg+MilyZXR1cm4gdDtpZigvOi8udGVzdChyWzBdKT9pPXJbMF06KHQuZGF0ZT1yWzBdLGk9clsxXSxjdy50aW1lWm9uZURlbGltaXRlci50ZXN0KHQuZGF0ZSkmJih0LmRhdGU9ZS5zcGxpdChjdy50aW1lWm9uZURlbGltaXRlcilbMF0saT1lLnN1YnN0cih0LmRhdGUubGVuZ3RoLGUubGVuZ3RoKSkpLGkpe2xldCBhPWN3LnRpbWV6b25lLmV4ZWMoaSk7YT8odC50aW1lPWkucmVwbGFjZShhWzFdLCIiKSx0LnRpbWV6b25lPWFbMV0pOnQudGltZT1pfXJldHVybiB0fWZ1bmN0aW9uIEw3cihlLHQpe2xldCByPW5ldyBSZWdFeHAoIl4oPzooXFxkezR9fFsrLV1cXGR7IisoNCt0KSsifSl8KFxcZHsyfXxbKy1dXFxkeyIrKDIrdCkrIn0pJCkiKSxpPWUubWF0Y2gocik7aWYoIWkpcmV0dXJue3llYXI6TmFOLHJlc3REYXRlU3RyaW5nOiIifTtsZXQgYT1pWzFdP3BhcnNlSW50KGlbMV0pOm51bGwsbj1pWzJdP3BhcnNlSW50KGlbMl0pOm51bGw7cmV0dXJue3llYXI6bj09PW51bGw/YTpuKjEwMCxyZXN0RGF0ZVN0cmluZzplLnNsaWNlKChpWzFdfHxpWzJdKS5sZW5ndGgpfX1mdW5jdGlvbiBBN3IoZSx0KXtpZih0PT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtsZXQgcj1lLm1hdGNoKHo3cik7aWYoIXIpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IGk9ISFyWzRdLGE9emYoclsxXSksbj16ZihyWzJdKS0xLG89emYoclszXSkscz16ZihyWzRdKSxsPXpmKHJbNV0pLTE7aWYoaSlyZXR1cm4gRjdyKHQscyxsKT8kN3IodCxzLGwpOm5ldyBEYXRlKE5hTik7e2xldCBjPW5ldyBEYXRlKDApO3JldHVybiFQN3IodCxuLG8pfHwhTjdyKHQsYSk/bmV3IERhdGUoTmFOKTooYy5zZXRVVENGdWxsWWVhcih0LG4sTWF0aC5tYXgoYSxvKSksYyl9fWZ1bmN0aW9uIHpmKGUpe3JldHVybiBlP3BhcnNlSW50KGUpOjF9ZnVuY3Rpb24gRDdyKGUpe2xldCB0PWUubWF0Y2goQzdyKTtpZighdClyZXR1cm4gTmFOO2xldCByPUJIKHRbMV0pLGk9QkgodFsyXSksYT1CSCh0WzNdKTtyZXR1cm4gTzdyKHIsaSxhKT9yKkFuK2kqY2ErYSoxZTM6TmFOfWZ1bmN0aW9uIEJIKGUpe3JldHVybiBlJiZwYXJzZUZsb2F0KGUucmVwbGFjZSgiLCIsIi4iKSl8fDB9ZnVuY3Rpb24gRTdyKGUpe2lmKGU9PT0iWiIpcmV0dXJuIDA7bGV0IHQ9ZS5tYXRjaChUN3IpO2lmKCF0KXJldHVybiAwO2xldCByPXRbMV09PT0iKyI/LTE6MSxpPXBhcnNlSW50KHRbMl0pLGE9dFszXSYmcGFyc2VJbnQodFszXSl8fDA7cmV0dXJuIFI3cihpLGEpP3IqKGkqQW4rYSpjYSk6TmFOfWZ1bmN0aW9uICQ3cihlLHQscil7bGV0IGk9bmV3IERhdGUoMCk7aS5zZXRVVENGdWxsWWVhcihlLDAsNCk7bGV0IGE9aS5nZXRVVENEYXkoKXx8NyxuPSh0LTEpKjcrcisxLWE7cmV0dXJuIGkuc2V0VVRDRGF0ZShpLmdldFVUQ0RhdGUoKStuKSxpfWZ1bmN0aW9uIHc5ZShlKXtyZXR1cm4gZSU0MDA9PT0wfHxlJTQ9PT0wJiZlJTEwMCE9PTB9ZnVuY3Rpb24gUDdyKGUsdCxyKXtyZXR1cm4gdD49MCYmdDw9MTEmJnI+PTEmJnI8PShJN3JbdF18fCh3OWUoZSk/Mjk6MjgpKX1mdW5jdGlvbiBON3IoZSx0KXtyZXR1cm4gdD49MSYmdDw9KHc5ZShlKT8zNjY6MzY1KX1mdW5jdGlvbiBGN3IoZSx0LHIpe3JldHVybiB0Pj0xJiZ0PD01MyYmcj49MCYmcjw9Nn1mdW5jdGlvbiBPN3IoZSx0LHIpe3JldHVybiBlPT09MjQ/dD09PTAmJnI9PT0wOnI+PTAmJnI8NjAmJnQ+PTAmJnQ8NjAmJmU+PTAmJmU8MjV9ZnVuY3Rpb24gUjdyKGUsdCl7cmV0dXJuIHQ+PTAmJnQ8PTU5fXZhciBjdyx6N3IsQzdyLFQ3cixJN3IsankxLGs5ZT1wKCgpPT57T3QoKTtmdCgpO09lKCk7Y3c9e2RhdGVUaW1lRGVsaW1pdGVyOi9bVCBdLyx0aW1lWm9uZURlbGltaXRlcjovW1ogXS9pLHRpbWV6b25lOi8oW1orLV0uKikkL30sejdyPS9eLT8oPzooXGR7M30pfChcZHsyfSkoPzotPyhcZHsyfSkpP3xXKFxkezJ9KSg/Oi0/KFxkezF9KSk/fCkkLyxDN3I9L14oXGR7Mn0oPzpbLixdXGQqKT8pKD86Oj8oXGR7Mn0oPzpbLixdXGQqKT8pKT8oPzo6PyhcZHsyfSg/OlsuLF1cZCopPykpPyQvLFQ3cj0vXihbKy1dKShcZHsyfSkoPzo6PyhcZHsyfSkpPyQvO0k3cj1bMzEsbnVsbCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07ankxPU05ZX0pO2Z1bmN0aW9uIFM5ZShlLHQpe2xldCByPWUubWF0Y2goLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1QgXShcZHsyfSk6KFxkezJ9KTooXGR7Mn0pKD86XC4oXGR7MCw3fSkpPyg/Olp8KC4pKFxkezJ9KTo/KFxkezJ9KT8pPy8pO3JldHVybiByP2xlKERhdGUuVVRDKCtyWzFdLCtyWzJdLTEsK3JbM10sK3JbNF0tKCtyWzldfHwwKSoocls4XT09Ii0iPy0xOjEpLCtyWzVdLSgrclsxMF18fDApKihyWzhdPT0iLSI/LTE6MSksK3JbNl0sKygocls3XXx8IjAiKSsiMDAiKS5zdWJzdHJpbmcoMCwzKSksdD8uaW4pOmxlKE5hTix0Py5pbil9dmFyIFd5MSx6OWU9cCgoKT0+e09lKCk7V3kxPVM5ZX0pO2Z1bmN0aW9uIG1hKGUsdCxyKXtsZXQgaT10MChlLHIpLXQ7cmV0dXJuIGk8PTAmJihpKz03KSxpMChlLGkscil9dmFyIFh5MSx3bD1wKCgpPT57eGYoKTtTZigpO1h5MT1tYX0pO2Z1bmN0aW9uIEM5ZShlLHQpe3JldHVybiBtYShlLDUsdCl9dmFyIEt5MSxUOWU9cCgoKT0+e3dsKCk7S3kxPUM5ZX0pO2Z1bmN0aW9uIF85ZShlLHQpe3JldHVybiBtYShlLDEsdCl9dmFyIHJ3MSxMOWU9cCgoKT0+e3dsKCk7cncxPV85ZX0pO2Z1bmN0aW9uIEE5ZShlLHQpe3JldHVybiBtYShlLDYsdCl9dmFyIG53MSxEOWU9cCgoKT0+e3dsKCk7bncxPUE5ZX0pO2Z1bmN0aW9uIEU5ZShlLHQpe3JldHVybiBtYShlLDAsdCl9dmFyIGx3MSwkOWU9cCgoKT0+e3dsKCk7bHcxPUU5ZX0pO2Z1bmN0aW9uIEk5ZShlLHQpe3JldHVybiBtYShlLDQsdCl9dmFyIHV3MSxQOWU9cCgoKT0+e3dsKCk7dXcxPUk5ZX0pO2Z1bmN0aW9uIE45ZShlLHQpe3JldHVybiBtYShlLDIsdCl9dmFyIGZ3MSxGOWU9cCgoKT0+e3dsKCk7ZncxPU45ZX0pO2Z1bmN0aW9uIE85ZShlLHQpe3JldHVybiBtYShlLDMsdCl9dmFyIGJ3MSxSOWU9cCgoKT0+e3dsKCk7YncxPU85ZX0pO2Z1bmN0aW9uIEI5ZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKmZ4KX12YXIgeXcxLEg5ZT1wKCgpPT57T3QoKTt5dzE9QjllfSk7ZnVuY3Rpb24gcTllKGUpe2xldCB0PWUvZ3g7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIGt3MSxqOWU9cCgoKT0+e090KCk7a3cxPXE5ZX0pO2Z1bmN0aW9uIFY5ZShlLHQpe2xldCByPXQ/Lm5lYXJlc3RUbz8/MTtpZihyPDF8fHI+MTIpcmV0dXJuIFBlKHQ/LmlufHxlLE5hTik7bGV0IGk9bGUoZSx0Py5pbiksYT1pLmdldE1pbnV0ZXMoKS82MCxuPWkuZ2V0U2Vjb25kcygpLzYwLzYwLG89aS5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAscz1pLmdldEhvdXJzKCkrYStuK28sbD10Py5yb3VuZGluZ01ldGhvZD8/InJvdW5kIix1PXBhKGwpKHMvcikqcjtyZXR1cm4gaS5zZXRIb3Vycyh1LDAsMCwwKSxpfXZhciBfdzEsVTllPXAoKCk9Pnt4bCgpO2Z0KCk7T2UoKTtfdzE9VjllfSk7ZnVuY3Rpb24gVzllKGUsdCl7bGV0IHI9dD8ubmVhcmVzdFRvPz8xO2lmKHI8MXx8cj4zMClyZXR1cm4gUGUoZSxOYU4pO2xldCBpPWxlKGUsdD8uaW4pLGE9aS5nZXRTZWNvbmRzKCkvNjAsbj1pLmdldE1pbGxpc2Vjb25kcygpLzFlMy82MCxvPWkuZ2V0TWludXRlcygpK2ErbixzPXQ/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiLGM9cGEocykoby9yKSpyO3JldHVybiBpLnNldE1pbnV0ZXMoYywwLDApLGl9dmFyICR3MSxHOWU9cCgoKT0+e3hsKCk7ZnQoKTtPZSgpOyR3MT1XOWV9KTtmdW5jdGlvbiBZOWUoZSl7bGV0IHQ9ZS9tMztyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgTncxLFo5ZT1wKCgpPT57T3QoKTtOdzE9WTllfSk7ZnVuY3Rpb24gWDllKGUpe3JldHVybiBlKk01fXZhciBSdzEsUTllPXAoKCk9PntPdCgpO1J3MT1YOWV9KTtmdW5jdGlvbiBKOWUoZSl7bGV0IHQ9ZS9TNTtyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgcXcxLEs5ZT1wKCgpPT57T3QoKTtxdzE9SjllfSk7ZnVuY3Rpb24gVTUoZSx0LHIpe2xldCBpPWxlKGUscj8uaW4pLGE9aS5nZXRGdWxsWWVhcigpLG49aS5nZXREYXRlKCksbz1QZShyPy5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKGEsdCwxNSksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgcz1veShvKTtyZXR1cm4gaS5zZXRNb250aCh0LE1hdGgubWluKG4scykpLGl9dmFyIEd3MSxkdz1wKCgpPT57ZnQoKTt2SCgpO09lKCk7R3cxPVU1fSk7ZnVuY3Rpb24gZWdlKGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKTtyZXR1cm4gaXNOYU4oK2kpP1BlKHI/LmlufHxlLE5hTik6KHQueWVhciE9bnVsbCYmaS5zZXRGdWxsWWVhcih0LnllYXIpLHQubW9udGghPW51bGwmJihpPVU1KGksdC5tb250aCkpLHQuZGF0ZSE9bnVsbCYmaS5zZXREYXRlKHQuZGF0ZSksdC5ob3VycyE9bnVsbCYmaS5zZXRIb3Vycyh0LmhvdXJzKSx0Lm1pbnV0ZXMhPW51bGwmJmkuc2V0TWludXRlcyh0Lm1pbnV0ZXMpLHQuc2Vjb25kcyE9bnVsbCYmaS5zZXRTZWNvbmRzKHQuc2Vjb25kcyksdC5taWxsaXNlY29uZHMhPW51bGwmJmkuc2V0TWlsbGlzZWNvbmRzKHQubWlsbGlzZWNvbmRzKSxpKX12YXIgSncxLHRnZT1wKCgpPT57ZnQoKTtkdygpO09lKCk7SncxPWVnZX0pO2Z1bmN0aW9uIHJnZShlLHQscil7bGV0IGk9bGUoZSxyPy5pbik7cmV0dXJuIGkuc2V0RGF0ZSh0KSxpfXZhciB0TTEsaWdlPXAoKCk9PntPZSgpO3RNMT1yZ2V9KTtmdW5jdGlvbiBhZ2UoZSx0LHIpe2xldCBpPWxlKGUscj8uaW4pO3JldHVybiBpLnNldE1vbnRoKDApLGkuc2V0RGF0ZSh0KSxpfXZhciBhTTEsbmdlPXAoKCk9PntPZSgpO2FNMT1hZ2V9KTtmdW5jdGlvbiBvZ2UoZSl7bGV0IHQ9e30scj1McigpO2ZvcihsZXQgaSBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGkpJiYodFtpXT1yW2ldKTtmb3IobGV0IGkgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKGVbaV09PT12b2lkIDA/ZGVsZXRlIHRbaV06dFtpXT1lW2ldKTtNcGUodCl9dmFyIHNNMSxzZ2U9cCgoKT0+e2RhKCk7c00xPW9nZX0pO2Z1bmN0aW9uIGxnZShlLHQscil7bGV0IGk9bGUoZSxyPy5pbik7cmV0dXJuIGkuc2V0SG91cnModCksaX12YXIgZE0xLGNnZT1wKCgpPT57T2UoKTtkTTE9bGdlfSk7ZnVuY3Rpb24gZGdlKGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKTtyZXR1cm4gaS5zZXRNaWxsaXNlY29uZHModCksaX12YXIgaE0xLHVnZT1wKCgpPT57T2UoKTtoTTE9ZGdlfSk7ZnVuY3Rpb24gcGdlKGUsdCxyKXtsZXQgaT1sZShlLHI/LmluKTtyZXR1cm4gaS5zZXRNaW51dGVzKHQpLGl9dmFyIGdNMSxoZ2U9cCgoKT0+e09lKCk7Z00xPXBnZX0pO2Z1bmN0aW9uIGZnZShlLHQscil7bGV0IGk9bGUoZSxyPy5pbiksYT1NYXRoLnRydW5jKGkuZ2V0TW9udGgoKS8zKSsxLG49dC1hO3JldHVybiBVNShpLGkuZ2V0TW9udGgoKStuKjMpfXZhciB5TTEsbWdlPXAoKCk9PntkdygpO09lKCk7eU0xPWZnZX0pO2Z1bmN0aW9uIGdnZShlLHQscil7bGV0IGk9bGUoZSxyPy5pbik7cmV0dXJuIGkuc2V0U2Vjb25kcyh0KSxpfXZhciBrTTEsYmdlPXAoKCk9PntPZSgpO2tNMT1nZ2V9KTtmdW5jdGlvbiB2Z2UoZSx0LHIpe2xldCBpPUxyKCksYT1yPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3I/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPVRpKGxlKGUscj8uaW4pLE0zKGUsciksciksbz1QZShyPy5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKHQsMCxhKSxvLnNldEhvdXJzKDAsMCwwLDApO2xldCBzPU0zKG8scik7cmV0dXJuIHMuc2V0RGF0ZShzLmdldERhdGUoKStuKSxzfXZhciBBTTEseGdlPXAoKCk9PntkYSgpO2Z0KCk7YmwoKTtLeCgpO09lKCk7QU0xPXZnZX0pO2Z1bmN0aW9uIHlnZShlLHQscil7bGV0IGk9bGUoZSxyPy5pbik7cmV0dXJuIGlzTmFOKCtpKT9QZShyPy5pbnx8ZSxOYU4pOihpLnNldEZ1bGxZZWFyKHQpLGkpfXZhciBJTTEsd2dlPXAoKCk9PntmdCgpO09lKCk7SU0xPXlnZX0pO2Z1bmN0aW9uIE1nZShlLHQpe2xldCByPWxlKGUsdD8uaW4pLGk9ci5nZXRGdWxsWWVhcigpLGE9TWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihhLDAsMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBGTTEsa2dlPXAoKCk9PntPZSgpO0ZNMT1NZ2V9KTtmdW5jdGlvbiBTZ2UoZSl7cmV0dXJuIGVzKERhdGUubm93KCksZSl9dmFyIEJNMSx6Z2U9cCgoKT0+e2NmKCk7Qk0xPVNnZX0pO2Z1bmN0aW9uIENnZShlKXtsZXQgdD1ZdChlPy5pbikscj10LmdldEZ1bGxZZWFyKCksaT10LmdldE1vbnRoKCksYT10LmdldERhdGUoKSxuPVBlKGU/LmluLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKHIsaSxhKzEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgVk0xLFRnZT1wKCgpPT57ZnQoKTtjaSgpO1ZNMT1DZ2V9KTtmdW5jdGlvbiBfZ2UoZSl7bGV0IHQ9WXQoZT8uaW4pLHI9dC5nZXRGdWxsWWVhcigpLGk9dC5nZXRNb250aCgpLGE9dC5nZXREYXRlKCksbj1ZdChlPy5pbik7cmV0dXJuIG4uc2V0RnVsbFllYXIocixpLGEtMSksbi5zZXRIb3VycygwLDAsMCwwKSxufXZhciBHTTEsTGdlPXAoKCk9PntjaSgpO0dNMT1fZ2V9KTtmdW5jdGlvbiB1dyhlLHQscil7cmV0dXJuIFEyKGUsLXQscil9dmFyIFhNMSxISD1wKCgpPT57ejUoKTtYTTE9dXd9KTtmdW5jdGlvbiBBZ2UoZSx0LHIpe2xldHt5ZWFyczppPTAsbW9udGhzOmE9MCx3ZWVrczpuPTAsZGF5czpvPTAsaG91cnM6cz0wLG1pbnV0ZXM6bD0wLHNlY29uZHM6Yz0wfT10LHU9dXcoZSxhK2kqMTIsciksZD1pMCh1LG8rbio3LHIpLGg9bCtzKjYwLHg9KGMraCo2MCkqMWUzO3JldHVybiBQZShyPy5pbnx8ZSwrZC14KX12YXIgdGsxLERnZT1wKCgpPT57ZnQoKTtTZigpO0hIKCk7dGsxPUFnZX0pO2Z1bmN0aW9uIEVnZShlLHQscil7cmV0dXJuIHh4KGUsLXQscil9dmFyIGFrMSwkZ2U9cCgoKT0+e1VCKCk7YWsxPUVnZX0pO2Z1bmN0aW9uIElnZShlLHQscil7cmV0dXJuIHl4KGUsLXQscil9dmFyIHNrMSxQZ2U9cCgoKT0+e1dCKCk7c2sxPUlnZX0pO2Z1bmN0aW9uIE5nZShlLHQscil7cmV0dXJuIEdjKGUsLXQscil9dmFyIGRrMSxGZ2U9cCgoKT0+e2xmKCk7ZGsxPU5nZX0pO2Z1bmN0aW9uIE9nZShlLHQscil7cmV0dXJuIFQ1KGUsLXQscil9dmFyIGhrMSxSZ2U9cCgoKT0+e2t4KCk7aGsxPU9nZX0pO2Z1bmN0aW9uIEJnZShlLHQscil7cmV0dXJuIF81KGUsLXQscil9dmFyIGdrMSxIZ2U9cCgoKT0+e1N4KCk7Z2sxPUJnZX0pO2Z1bmN0aW9uIHFnZShlLHQscil7cmV0dXJuIHp4KGUsLXQscil9dmFyIHhrMSxqZ2U9cCgoKT0+e1pCKCk7eGsxPXFnZX0pO2Z1bmN0aW9uIFZnZShlLHQscil7cmV0dXJuIFpjKGUsLXQscil9dmFyIE1rMSxVZ2U9cCgoKT0+e2RmKCk7TWsxPVZnZX0pO2Z1bmN0aW9uIFdnZShlLHQscil7cmV0dXJuIEN4KGUsLXQscil9dmFyIHprMSxHZ2U9cCgoKT0+e1hCKCk7emsxPVdnZX0pO2Z1bmN0aW9uIFlnZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKjcpfXZhciBfazEsWmdlPXAoKCk9PntPdCgpO19rMT1ZZ2V9KTtmdW5jdGlvbiBYZ2UoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSozNjUuMjQyNSl9dmFyIERrMSxRZ2U9cCgoKT0+e090KCk7RGsxPVhnZX0pO2Z1bmN0aW9uIEpnZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKm14KX12YXIgSWsxLEtnZT1wKCgpPT57T3QoKTtJazE9SmdlfSk7ZnVuY3Rpb24gZWJlKGUpe3JldHVybiBNYXRoLnRydW5jKGUqZ3gpfXZhciBGazEsdGJlPXAoKCk9PntPdCgpO0ZrMT1lYmV9KTt2YXIgQ2Y9e307RmUoQ2Yse2FkZDooKT0+V2MsYWRkQnVzaW5lc3NEYXlzOigpPT54eCxhZGREYXlzOigpPT5saSxhZGRIb3VyczooKT0+eXgsYWRkSVNPV2Vla1llYXJzOigpPT5NeCxhZGRNaWxsaXNlY29uZHM6KCk9PkdjLGFkZE1pbnV0ZXM6KCk9PlQ1LGFkZE1vbnRoczooKT0+UTIsYWRkUXVhcnRlcnM6KCk9Pl81LGFkZFNlY29uZHM6KCk9Pnp4LGFkZFdlZWtzOigpPT5aYyxhZGRZZWFyczooKT0+Q3gsYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmc6KCk9PmtwZSxjbGFtcDooKT0+enBlLGNsb3Nlc3RJbmRleFRvOigpPT5MeCxjbG9zZXN0VG86KCk9PlRwZSxjb21wYXJlQXNjOigpPT51YSxjb21wYXJlRGVzYzooKT0+THBlLGNvbnN0cnVjdEZyb206KCk9PlBlLGNvbnN0cnVjdE5vdzooKT0+WXQsZGF5c1RvV2Vla3M6KCk9PkRwZSxkaWZmZXJlbmNlSW5CdXNpbmVzc0RheXM6KCk9PiRwZSxkaWZmZXJlbmNlSW5DYWxlbmRhckRheXM6KCk9PlRpLGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzOigpPT5EeCxkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtzOigpPT5QcGUsZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM6KCk9PmIzLGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnM6KCk9PkE1LGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3M6KCk9PnYzLGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM6KCk9PlhjLGRpZmZlcmVuY2VJbkRheXM6KCk9PkQ1LGRpZmZlcmVuY2VJbkhvdXJzOigpPT54MyxkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnM6KCk9Pk9wZSxkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHM6KCk9PkU1LGRpZmZlcmVuY2VJbk1pbnV0ZXM6KCk9PnkzLGRpZmZlcmVuY2VJbk1vbnRoczooKT0+UWMsZGlmZmVyZW5jZUluUXVhcnRlcnM6KCk9PkJwZSxkaWZmZXJlbmNlSW5TZWNvbmRzOigpPT5ycyxkaWZmZXJlbmNlSW5XZWVrczooKT0+cXBlLGRpZmZlcmVuY2VJblllYXJzOigpPT5qeCxlYWNoRGF5T2ZJbnRlcnZhbDooKT0+VngsZWFjaEhvdXJPZkludGVydmFsOigpPT5WcGUsZWFjaE1pbnV0ZU9mSW50ZXJ2YWw6KCk9PldwZSxlYWNoTW9udGhPZkludGVydmFsOigpPT5ZcGUsZWFjaFF1YXJ0ZXJPZkludGVydmFsOigpPT5YcGUsZWFjaFdlZWtPZkludGVydmFsOigpPT5KcGUsZWFjaFdlZWtlbmRPZkludGVydmFsOigpPT5QNSxlYWNoV2Vla2VuZE9mTW9udGg6KCk9PmVoZSxlYWNoV2Vla2VuZE9mWWVhcjooKT0+cmhlLGVhY2hZZWFyT2ZJbnRlcnZhbDooKT0+YWhlLGVuZE9mRGF5OigpPT4kNSxlbmRPZkRlY2FkZTooKT0+b2hlLGVuZE9mSG91cjooKT0+bGhlLGVuZE9mSVNPV2VlazooKT0+ZGhlLGVuZE9mSVNPV2Vla1llYXI6KCk9PnBoZSxlbmRPZk1pbnV0ZTooKT0+ZmhlLGVuZE9mTW9udGg6KCk9Pkk1LGVuZE9mUXVhcnRlcjooKT0+Z2hlLGVuZE9mU2Vjb25kOigpPT52aGUsZW5kT2ZUb2RheTooKT0+eWhlLGVuZE9mVG9tb3Jyb3c6KCk9Pk1oZSxlbmRPZldlZWs6KCk9Plp4LGVuZE9mWWVhcjooKT0+R3gsZW5kT2ZZZXN0ZXJkYXk6KCk9PlNoZSxmb3JtYXQ6KCk9PnZmLGZvcm1hdERhdGU6KCk9PnZmLGZvcm1hdERpc3RhbmNlOigpPT5peSxmb3JtYXREaXN0YW5jZVN0cmljdDooKT0+YXksZm9ybWF0RGlzdGFuY2VUb05vdzooKT0+R2hlLGZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3Q6KCk9PlpoZSxmb3JtYXREdXJhdGlvbjooKT0+UWhlLGZvcm1hdElTTzooKT0+S2hlLGZvcm1hdElTTzkwNzU6KCk9PnRmZSxmb3JtYXRJU09EdXJhdGlvbjooKT0+aWZlLGZvcm1hdFJGQzMzMzk6KCk9Pm5mZSxmb3JtYXRSRkM3MjMxOigpPT5zZmUsZm9ybWF0UmVsYXRpdmU6KCk9PmNmZSxmb3JtYXR0ZXJzOigpPT5nZixmcm9tVW5peFRpbWU6KCk9PnVmZSxnZXREYXRlOigpPT5ueSxnZXREYXk6KCk9PnQwLGdldERheU9mWWVhcjooKT0+UXgsZ2V0RGF5c0luTW9udGg6KCk9Pm95LGdldERheXNJblllYXI6KCk9PmhmZSxnZXREZWNhZGU6KCk9Pm1mZSxnZXREZWZhdWx0T3B0aW9uczooKT0+bHksZ2V0SG91cnM6KCk9PmJmZSxnZXRJU09EYXk6KCk9PmN5LGdldElTT1dlZWs6KCk9PlI1LGdldElTT1dlZWtZZWFyOigpPT5xYSxnZXRJU09XZWVrc0luWWVhcjooKT0+eGZlLGdldE1pbGxpc2Vjb25kczooKT0+d2ZlLGdldE1pbnV0ZXM6KCk9PmtmZSxnZXRNb250aDooKT0+emZlLGdldE92ZXJsYXBwaW5nRGF5c0luSW50ZXJ2YWxzOigpPT5UZmUsZ2V0UXVhcnRlcjooKT0+dWYsZ2V0U2Vjb25kczooKT0+TGZlLGdldFRpbWU6KCk9PkRmZSxnZXRVbml4VGltZTooKT0+JGZlLGdldFdlZWs6KCk9PkI1LGdldFdlZWtPZk1vbnRoOigpPT5QZmUsZ2V0V2Vla1llYXI6KCk9PktjLGdldFdlZWtzSW5Nb250aDooKT0+RmZlLGdldFllYXI6KCk9PlJmZSxob3Vyc1RvTWlsbGlzZWNvbmRzOigpPT5IZmUsaG91cnNUb01pbnV0ZXM6KCk9PmpmZSxob3Vyc1RvU2Vjb25kczooKT0+VWZlLGludGVydmFsOigpPT5HZmUsaW50ZXJ2YWxUb0R1cmF0aW9uOigpPT5aZmUsaW50bEZvcm1hdDooKT0+UWZlLGludGxGb3JtYXREaXN0YW5jZTooKT0+S2ZlLGlzQWZ0ZXI6KCk9PnQ3ZSxpc0JlZm9yZTooKT0+aTdlLGlzRGF0ZTooKT0+QXgsaXNFcXVhbDooKT0+bjdlLGlzRXhpc3RzOigpPT5zN2UsaXNGaXJzdERheU9mTW9udGg6KCk9PmM3ZSxpc0ZyaWRheTooKT0+dTdlLGlzRnV0dXJlOigpPT5oN2UsaXNMYXN0RGF5T2ZNb250aDooKT0+cXgsaXNMZWFwWWVhcjooKT0+c3ksaXNNYXRjaDooKT0+RzdlLGlzTW9uZGF5OigpPT5aN2UsaXNQYXN0OigpPT5RN2UsaXNTYW1lRGF5OigpPT50cyxpc1NhbWVIb3VyOigpPT5ldyxpc1NhbWVJU09XZWVrOigpPT5ydyxpc1NhbWVJU09XZWVrWWVhcjooKT0+SzdlLGlzU2FtZU1pbnV0ZTooKT0+aXcsaXNTYW1lTW9udGg6KCk9PmF3LGlzU2FtZVF1YXJ0ZXI6KCk9Pm53LGlzU2FtZVNlY29uZDooKT0+b3csaXNTYW1lV2VlazooKT0+VjUsaXNTYW1lWWVhcjooKT0+c3csaXNTYXR1cmRheTooKT0+YngsaXNTdW5kYXk6KCk9PnZ4LGlzVGhpc0hvdXI6KCk9PnRtZSxpc1RoaXNJU09XZWVrOigpPT5pbWUsaXNUaGlzTWludXRlOigpPT5ubWUsaXNUaGlzTW9udGg6KCk9PnNtZSxpc1RoaXNRdWFydGVyOigpPT5jbWUsaXNUaGlzU2Vjb25kOigpPT51bWUsaXNUaGlzV2VlazooKT0+aG1lLGlzVGhpc1llYXI6KCk9Pm1tZSxpc1RodXJzZGF5OigpPT5ibWUsaXNUb2RheTooKT0+eG1lLGlzVG9tb3Jyb3c6KCk9PndtZSxpc1R1ZXNkYXk6KCk9PmttZSxpc1ZhbGlkOigpPT5VaSxpc1dlZG5lc2RheTooKT0+em1lLGlzV2Vla2VuZDooKT0+SjIsaXNXaXRoaW5JbnRlcnZhbDooKT0+VG1lLGlzWWVzdGVyZGF5OigpPT5MbWUsbGFzdERheU9mRGVjYWRlOigpPT5EbWUsbGFzdERheU9mSVNPV2VlazooKT0+JG1lLGxhc3REYXlPZklTT1dlZWtZZWFyOigpPT5QbWUsbGFzdERheU9mTW9udGg6KCk9PmR5LGxhc3REYXlPZlF1YXJ0ZXI6KCk9PkZtZSxsYXN0RGF5T2ZXZWVrOigpPT5sdyxsYXN0RGF5T2ZZZWFyOigpPT5SbWUsbGlnaHRGb3JtYXQ6KCk9PkhtZSxsaWdodEZvcm1hdHRlcnM6KCk9PkVuLGxvbmdGb3JtYXR0ZXJzOigpPT5lMCxtYXg6KCk9PlR4LG1pbGxpc2Vjb25kczooKT0+am1lLG1pbGxpc2Vjb25kc1RvSG91cnM6KCk9PlVtZSxtaWxsaXNlY29uZHNUb01pbnV0ZXM6KCk9PkdtZSxtaWxsaXNlY29uZHNUb1NlY29uZHM6KCk9PlptZSxtaW46KCk9Pl94LG1pbnV0ZXNUb0hvdXJzOigpPT5RbWUsbWludXRlc1RvTWlsbGlzZWNvbmRzOigpPT5LbWUsbWludXRlc1RvU2Vjb25kczooKT0+dDllLG1vbnRoc1RvUXVhcnRlcnM6KCk9Pmk5ZSxtb250aHNUb1llYXJzOigpPT5uOWUsbmV4dERheTooKT0+ZmEsbmV4dEZyaWRheTooKT0+czllLG5leHRNb25kYXk6KCk9PmM5ZSxuZXh0U2F0dXJkYXk6KCk9PnU5ZSxuZXh0U3VuZGF5OigpPT5oOWUsbmV4dFRodXJzZGF5OigpPT5tOWUsbmV4dFR1ZXNkYXk6KCk9PmI5ZSxuZXh0V2VkbmVzZGF5OigpPT54OWUscGFyc2U6KCk9Pkt5LHBhcnNlSVNPOigpPT5NOWUscGFyc2VKU09OOigpPT5TOWUscGFyc2VyczooKT0+SnkscHJldmlvdXNEYXk6KCk9Pm1hLHByZXZpb3VzRnJpZGF5OigpPT5DOWUscHJldmlvdXNNb25kYXk6KCk9Pl85ZSxwcmV2aW91c1NhdHVyZGF5OigpPT5BOWUscHJldmlvdXNTdW5kYXk6KCk9PkU5ZSxwcmV2aW91c1RodXJzZGF5OigpPT5JOWUscHJldmlvdXNUdWVzZGF5OigpPT5OOWUscHJldmlvdXNXZWRuZXNkYXk6KCk9Pk85ZSxxdWFydGVyc1RvTW9udGhzOigpPT5COWUscXVhcnRlcnNUb1llYXJzOigpPT5xOWUscm91bmRUb05lYXJlc3RIb3VyczooKT0+VjllLHJvdW5kVG9OZWFyZXN0TWludXRlczooKT0+VzllLHNlY29uZHNUb0hvdXJzOigpPT5ZOWUsc2Vjb25kc1RvTWlsbGlzZWNvbmRzOigpPT5YOWUsc2Vjb25kc1RvTWludXRlczooKT0+SjllLHNldDooKT0+ZWdlLHNldERhdGU6KCk9PnJnZSxzZXREYXk6KCk9PnIwLHNldERheU9mWWVhcjooKT0+YWdlLHNldERlZmF1bHRPcHRpb25zOigpPT5vZ2Usc2V0SG91cnM6KCk9PmxnZSxzZXRJU09EYXk6KCk9Pk55LHNldElTT1dlZWs6KCk9Pkx5LHNldElTT1dlZWtZZWFyOigpPT53eCxzZXRNaWxsaXNlY29uZHM6KCk9PmRnZSxzZXRNaW51dGVzOigpPT5wZ2Usc2V0TW9udGg6KCk9PlU1LHNldFF1YXJ0ZXI6KCk9PmZnZSxzZXRTZWNvbmRzOigpPT5nZ2Usc2V0V2VlazooKT0+VHksc2V0V2Vla1llYXI6KCk9PnZnZSxzZXRZZWFyOigpPT55Z2Usc3RhcnRPZkRheTooKT0+ZXMsc3RhcnRPZkRlY2FkZTooKT0+TWdlLHN0YXJ0T2ZIb3VyOigpPT53ZixzdGFydE9mSVNPV2VlazooKT0+UTEsc3RhcnRPZklTT1dlZWtZZWFyOigpPT5EbixzdGFydE9mTWludXRlOigpPT5NZixzdGFydE9mTW9udGg6KCk9PkpjLHN0YXJ0T2ZRdWFydGVyOigpPT5hcyxzdGFydE9mU2Vjb25kOigpPT5rZixzdGFydE9mVG9kYXk6KCk9PlNnZSxzdGFydE9mVG9tb3Jyb3c6KCk9PkNnZSxzdGFydE9mV2VlazooKT0+SnIsc3RhcnRPZldlZWtZZWFyOigpPT5NMyxzdGFydE9mWWVhcjooKT0+TjUsc3RhcnRPZlllc3RlcmRheTooKT0+X2dlLHN1YjooKT0+QWdlLHN1YkJ1c2luZXNzRGF5czooKT0+RWdlLHN1YkRheXM6KCk9PmkwLHN1YkhvdXJzOigpPT5JZ2Usc3ViSVNPV2Vla1llYXJzOigpPT5GeCxzdWJNaWxsaXNlY29uZHM6KCk9Pk5nZSxzdWJNaW51dGVzOigpPT5PZ2Usc3ViTW9udGhzOigpPT51dyxzdWJRdWFydGVyczooKT0+QmdlLHN1YlNlY29uZHM6KCk9PnFnZSxzdWJXZWVrczooKT0+VmdlLHN1YlllYXJzOigpPT5XZ2UsdG9EYXRlOigpPT5sZSx0cmFuc3Bvc2U6KCk9PnV5LHdlZWtzVG9EYXlzOigpPT5ZZ2UseWVhcnNUb0RheXM6KCk9PlhnZSx5ZWFyc1RvTW9udGhzOigpPT5KZ2UseWVhcnNUb1F1YXJ0ZXJzOigpPT5lYmV9KTt2YXIgcmJlPXAoKCk9PntxQigpO1VCKCk7WDIoKTtXQigpO1lCKCk7bGYoKTtreCgpO3o1KCk7U3goKTtaQigpO2RmKCk7WEIoKTtTcGUoKTtDcGUoKTtLQigpO19wZSgpO2czKCk7QXBlKCk7ZnQoKTtjaSgpO0VwZSgpO0lwZSgpO2JsKCk7dEgoKTtOcGUoKTtFeCgpO2lIKCk7JHgoKTtJeCgpO1B4KCk7TngoKTtScGUoKTtPeCgpO1J4KCk7cGYoKTtIcGUoKTtoZigpO2pwZSgpO29IKCk7c0goKTtVcGUoKTtHcGUoKTtacGUoKTtRcGUoKTtLcGUoKTtXeCgpO3RoZSgpO2loZSgpO25oZSgpO0J4KCk7c2hlKCk7Y2hlKCk7dWhlKCk7aGhlKCk7bWhlKCk7SHgoKTtiaGUoKTt4aGUoKTt3aGUoKTtraGUoKTtjSCgpO2xIKCk7emhlKCk7ZkgoKTttSCgpO2dIKCk7WWhlKCk7WGhlKCk7SmhlKCk7ZWZlKCk7cmZlKCk7YWZlKCk7b2ZlKCk7bGZlKCk7ZGZlKCk7cGZlKCk7YkgoKTt4ZigpO2RIKCk7dkgoKTtmZmUoKTtnZmUoKTt5SCgpO3ZmZSgpO3dIKCk7SngoKTtZYygpO3lmZSgpO01mZSgpO1NmZSgpO0NmZSgpO19mZSgpO3JIKCk7QWZlKCk7RWZlKCk7SWZlKCk7ZXkoKTtOZmUoKTttZigpO09mZSgpO0JmZSgpO3FmZSgpO1ZmZSgpO1dmZSgpO1lmZSgpO1hmZSgpO0pmZSgpO2U3ZSgpO3I3ZSgpO2E3ZSgpO2VIKCk7bzdlKCk7bDdlKCk7ZDdlKCk7cDdlKCk7ZjdlKCk7bkgoKTt4SCgpO1k3ZSgpO1g3ZSgpO0o3ZSgpO0w1KCk7QUgoKTtESCgpO2VtZSgpOyRIKCk7SUgoKTtQSCgpO0ZIKCk7dHcoKTtPSCgpO2pCKCk7VkIoKTtybWUoKTthbWUoKTtvbWUoKTtsbWUoKTtkbWUoKTtwbWUoKTtmbWUoKTtnbWUoKTt2bWUoKTt5bWUoKTtNbWUoKTtTbWUoKTt2bCgpO0NtZSgpO3NmKCk7X21lKCk7QW1lKCk7RW1lKCk7SW1lKCk7Tm1lKCk7TUgoKTtPbWUoKTtSSCgpO0JtZSgpO3FtZSgpO1FCKCk7Vm1lKCk7V21lKCk7WW1lKCk7WG1lKCk7SkIoKTtKbWUoKTtlOWUoKTtyOWUoKTthOWUoKTtvOWUoKTt5bCgpO2w5ZSgpO2Q5ZSgpO3A5ZSgpO2Y5ZSgpO2c5ZSgpO3Y5ZSgpO3k5ZSgpO19IKCk7azllKCk7ejllKCk7d2woKTtUOWUoKTtMOWUoKTtEOWUoKTskOWUoKTtQOWUoKTtGOWUoKTtSOWUoKTtIOWUoKTtqOWUoKTtVOWUoKTtHOWUoKTtaOWUoKTtROWUoKTtLOWUoKTt0Z2UoKTtpZ2UoKTt5ZigpO25nZSgpO3NnZSgpO2NnZSgpO1RIKCk7Q0goKTtHQigpO3VnZSgpO2hnZSgpO2R3KCk7bWdlKCk7YmdlKCk7ekgoKTt4Z2UoKTt3Z2UoKTtjZigpO2tnZSgpO0xIKCk7SzIoKTtDNSgpO0VIKCk7ZmYoKTtVeCgpO05IKCk7emdlKCk7VGdlKCk7cjIoKTtLeCgpO1l4KCk7TGdlKCk7RGdlKCk7JGdlKCk7U2YoKTtQZ2UoKTthSCgpO0ZnZSgpO1JnZSgpO0hIKCk7SGdlKCk7amdlKCk7VWdlKCk7R2dlKCk7T2UoKTtrSCgpO1pnZSgpO1FnZSgpO0tnZSgpO3RiZSgpfSk7dmFyIGliZT1qZSgocUgsakgpPT57KGZ1bmN0aW9uKGUsdCl7dHlwZW9mIHFIPT0ib2JqZWN0IiYmdHlwZW9mIGpIPCJ1Ij9qSC5leHBvcnRzPXQoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczplfHxzZWxmKS5kYXlqcz10KCl9KShxSCwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9MWUzLHQ9NmU0LHI9MzZlNSxpPSJtaWxsaXNlY29uZCIsYT0ic2Vjb25kIixuPSJtaW51dGUiLG89ImhvdXIiLHM9ImRheSIsbD0id2VlayIsYz0ibW9udGgiLHU9InF1YXJ0ZXIiLGQ9InllYXIiLGg9ImRhdGUiLGY9IkludmFsaWQgRGF0ZSIseD0vXihcZHs0fSlbLS9dPyhcZHsxLDJ9KT9bLS9dPyhcZHswLDJ9KVtUdFxzXSooXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Wy46XT8oXGQrKT8kLyx2PS9cWyhbXlxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2csYj17bmFtZToiZW4iLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxtb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksb3JkaW5hbDpmdW5jdGlvbihTKXt2YXIgJD1bInRoIiwic3QiLCJuZCIsInJkIl0sVD1TJTEwMDtyZXR1cm4iWyIrUysoJFsoVC0yMCklMTBdfHwkW1RdfHwkWzBdKSsiXSJ9fSx5PWZ1bmN0aW9uKFMsJCxUKXt2YXIgRT1TdHJpbmcoUyk7cmV0dXJuIUV8fEUubGVuZ3RoPj0kP1M6IiIrQXJyYXkoJCsxLUUubGVuZ3RoKS5qb2luKFQpK1N9LHc9e3M6eSx6OmZ1bmN0aW9uKFMpe3ZhciAkPS1TLnV0Y09mZnNldCgpLFQ9TWF0aC5hYnMoJCksRT1NYXRoLmZsb29yKFQvNjApLHE9VCU2MDtyZXR1cm4oJDw9MD8iKyI6Ii0iKSt5KEUsMiwiMCIpKyI6Iit5KHEsMiwiMCIpfSxtOmZ1bmN0aW9uIFMoJCxUKXtpZigkLmRhdGUoKTxULmRhdGUoKSlyZXR1cm4tUyhULCQpO3ZhciBFPTEyKihULnllYXIoKS0kLnllYXIoKSkrKFQubW9udGgoKS0kLm1vbnRoKCkpLHE9JC5jbG9uZSgpLmFkZChFLGMpLEI9VC1xPDAsRz0kLmNsb25lKCkuYWRkKEUrKEI/LTE6MSksYyk7cmV0dXJuKygtKEUrKFQtcSkvKEI/cS1HOkctcSkpfHwwKX0sYTpmdW5jdGlvbihTKXtyZXR1cm4gUzwwP01hdGguY2VpbChTKXx8MDpNYXRoLmZsb29yKFMpfSxwOmZ1bmN0aW9uKFMpe3JldHVybntNOmMseTpkLHc6bCxkOnMsRDpoLGg6byxtOm4sczphLG1zOmksUTp1fVtTXXx8U3RyaW5nKFN8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LHU6ZnVuY3Rpb24oUyl7cmV0dXJuIFM9PT12b2lkIDB9fSxrPSJlbiIsTz17fTtPW2tdPWI7dmFyIHo9IiRpc0RheWpzT2JqZWN0IixNPWZ1bmN0aW9uKFMpe3JldHVybiBTIGluc3RhbmNlb2YgUnx8ISghU3x8IVNbel0pfSxGPWZ1bmN0aW9uIFMoJCxULEUpe3ZhciBxO2lmKCEkKXJldHVybiBrO2lmKHR5cGVvZiAkPT0ic3RyaW5nIil7dmFyIEI9JC50b0xvd2VyQ2FzZSgpO09bQl0mJihxPUIpLFQmJihPW0JdPVQscT1CKTt2YXIgRz0kLnNwbGl0KCItIik7aWYoIXEmJkcubGVuZ3RoPjEpcmV0dXJuIFMoR1swXSl9ZWxzZXt2YXIgZWU9JC5uYW1lO09bZWVdPSQscT1lZX1yZXR1cm4hRSYmcSYmKGs9cSkscXx8IUUmJmt9LEQ9ZnVuY3Rpb24oUywkKXtpZihNKFMpKXJldHVybiBTLmNsb25lKCk7dmFyIFQ9dHlwZW9mICQ9PSJvYmplY3QiPyQ6e307cmV0dXJuIFQuZGF0ZT1TLFQuYXJncz1hcmd1bWVudHMsbmV3IFIoVCl9LE49dztOLmw9RixOLmk9TSxOLnc9ZnVuY3Rpb24oUywkKXtyZXR1cm4gRChTLHtsb2NhbGU6JC4kTCx1dGM6JC4kdSx4OiQuJHgsJG9mZnNldDokLiRvZmZzZXR9KX07dmFyIFI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gUyhUKXt0aGlzLiRMPUYoVC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZShUKSx0aGlzLiR4PXRoaXMuJHh8fFQueHx8e30sdGhpc1t6XT0hMH12YXIgJD1TLnByb3RvdHlwZTtyZXR1cm4gJC5wYXJzZT1mdW5jdGlvbihUKXt0aGlzLiRkPShmdW5jdGlvbihFKXt2YXIgcT1FLmRhdGUsQj1FLnV0YztpZihxPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtpZihOLnUocSkpcmV0dXJuIG5ldyBEYXRlO2lmKHEgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShxKTtpZih0eXBlb2YgcT09InN0cmluZyImJiEvWiQvaS50ZXN0KHEpKXt2YXIgRz1xLm1hdGNoKHgpO2lmKEcpe3ZhciBlZT1HWzJdLTF8fDAsUD0oR1s3XXx8IjAiKS5zdWJzdHJpbmcoMCwzKTtyZXR1cm4gQj9uZXcgRGF0ZShEYXRlLlVUQyhHWzFdLGVlLEdbM118fDEsR1s0XXx8MCxHWzVdfHwwLEdbNl18fDAsUCkpOm5ldyBEYXRlKEdbMV0sZWUsR1szXXx8MSxHWzRdfHwwLEdbNV18fDAsR1s2XXx8MCxQKX19cmV0dXJuIG5ldyBEYXRlKHEpfSkoVCksdGhpcy5pbml0KCl9LCQuaW5pdD1mdW5jdGlvbigpe3ZhciBUPXRoaXMuJGQ7dGhpcy4keT1ULmdldEZ1bGxZZWFyKCksdGhpcy4kTT1ULmdldE1vbnRoKCksdGhpcy4kRD1ULmdldERhdGUoKSx0aGlzLiRXPVQuZ2V0RGF5KCksdGhpcy4kSD1ULmdldEhvdXJzKCksdGhpcy4kbT1ULmdldE1pbnV0ZXMoKSx0aGlzLiRzPVQuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPVQuZ2V0TWlsbGlzZWNvbmRzKCl9LCQuJHV0aWxzPWZ1bmN0aW9uKCl7cmV0dXJuIE59LCQuaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT1mfSwkLmlzU2FtZT1mdW5jdGlvbihULEUpe3ZhciBxPUQoVCk7cmV0dXJuIHRoaXMuc3RhcnRPZihFKTw9cSYmcTw9dGhpcy5lbmRPZihFKX0sJC5pc0FmdGVyPWZ1bmN0aW9uKFQsRSl7cmV0dXJuIEQoVCk8dGhpcy5zdGFydE9mKEUpfSwkLmlzQmVmb3JlPWZ1bmN0aW9uKFQsRSl7cmV0dXJuIHRoaXMuZW5kT2YoRSk8RChUKX0sJC4kZz1mdW5jdGlvbihULEUscSl7cmV0dXJuIE4udShUKT90aGlzW0VdOnRoaXMuc2V0KHEsVCl9LCQudW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LCQudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sJC5zdGFydE9mPWZ1bmN0aW9uKFQsRSl7dmFyIHE9dGhpcyxCPSEhTi51KEUpfHxFLEc9Ti5wKFQpLGVlPWZ1bmN0aW9uKEEsTCl7dmFyIFU9Ti53KHEuJHU/RGF0ZS5VVEMocS4keSxMLEEpOm5ldyBEYXRlKHEuJHksTCxBKSxxKTtyZXR1cm4gQj9VOlUuZW5kT2Yocyl9LFA9ZnVuY3Rpb24oQSxMKXtyZXR1cm4gTi53KHEudG9EYXRlKClbQV0uYXBwbHkocS50b0RhdGUoInMiKSwoQj9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKEwpKSxxKX0sZ2U9dGhpcy4kVyx3ZT10aGlzLiRNLEk9dGhpcy4kRCxuZT0ic2V0IisodGhpcy4kdT8iVVRDIjoiIik7c3dpdGNoKEcpe2Nhc2UgZDpyZXR1cm4gQj9lZSgxLDApOmVlKDMxLDExKTtjYXNlIGM6cmV0dXJuIEI/ZWUoMSx3ZSk6ZWUoMCx3ZSsxKTtjYXNlIGw6dmFyIGtlPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxZPShnZTxrZT9nZSs3OmdlKS1rZTtyZXR1cm4gZWUoQj9JLVk6SSsoNi1ZKSx3ZSk7Y2FzZSBzOmNhc2UgaDpyZXR1cm4gUChuZSsiSG91cnMiLDApO2Nhc2UgbzpyZXR1cm4gUChuZSsiTWludXRlcyIsMSk7Y2FzZSBuOnJldHVybiBQKG5lKyJTZWNvbmRzIiwyKTtjYXNlIGE6cmV0dXJuIFAobmUrIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sJC5lbmRPZj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5zdGFydE9mKFQsITEpfSwkLiRzZXQ9ZnVuY3Rpb24oVCxFKXt2YXIgcSxCPU4ucChUKSxHPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxlZT0ocT17fSxxW3NdPUcrIkRhdGUiLHFbaF09RysiRGF0ZSIscVtjXT1HKyJNb250aCIscVtkXT1HKyJGdWxsWWVhciIscVtvXT1HKyJIb3VycyIscVtuXT1HKyJNaW51dGVzIixxW2FdPUcrIlNlY29uZHMiLHFbaV09RysiTWlsbGlzZWNvbmRzIixxKVtCXSxQPUI9PT1zP3RoaXMuJEQrKEUtdGhpcy4kVyk6RTtpZihCPT09Y3x8Qj09PWQpe3ZhciBnZT10aGlzLmNsb25lKCkuc2V0KGgsMSk7Z2UuJGRbZWVdKFApLGdlLmluaXQoKSx0aGlzLiRkPWdlLnNldChoLE1hdGgubWluKHRoaXMuJEQsZ2UuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgZWUmJnRoaXMuJGRbZWVdKFApO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSwkLnNldD1mdW5jdGlvbihULEUpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldChULEUpfSwkLmdldD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpc1tOLnAoVCldKCl9LCQuYWRkPWZ1bmN0aW9uKFQsRSl7dmFyIHEsQj10aGlzO1Q9TnVtYmVyKFQpO3ZhciBHPU4ucChFKSxlZT1mdW5jdGlvbih3ZSl7dmFyIEk9RChCKTtyZXR1cm4gTi53KEkuZGF0ZShJLmRhdGUoKStNYXRoLnJvdW5kKHdlKlQpKSxCKX07aWYoRz09PWMpcmV0dXJuIHRoaXMuc2V0KGMsdGhpcy4kTStUKTtpZihHPT09ZClyZXR1cm4gdGhpcy5zZXQoZCx0aGlzLiR5K1QpO2lmKEc9PT1zKXJldHVybiBlZSgxKTtpZihHPT09bClyZXR1cm4gZWUoNyk7dmFyIFA9KHE9e30scVtuXT10LHFbb109cixxW2FdPWUscSlbR118fDEsZ2U9dGhpcy4kZC5nZXRUaW1lKCkrVCpQO3JldHVybiBOLncoZ2UsdGhpcyl9LCQuc3VidHJhY3Q9ZnVuY3Rpb24oVCxFKXtyZXR1cm4gdGhpcy5hZGQoLTEqVCxFKX0sJC5mb3JtYXQ9ZnVuY3Rpb24oVCl7dmFyIEU9dGhpcyxxPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gcS5pbnZhbGlkRGF0ZXx8Zjt2YXIgQj1UfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLEc9Ti56KHRoaXMpLGVlPXRoaXMuJEgsUD10aGlzLiRtLGdlPXRoaXMuJE0sd2U9cS53ZWVrZGF5cyxJPXEubW9udGhzLG5lPXEubWVyaWRpZW0sa2U9ZnVuY3Rpb24oTCxVLFYsWCl7cmV0dXJuIEwmJihMW1VdfHxMKEUsQikpfHxWW1VdLnNsaWNlKDAsWCl9LFk9ZnVuY3Rpb24oTCl7cmV0dXJuIE4ucyhlZSUxMnx8MTIsTCwiMCIpfSxBPW5lfHxmdW5jdGlvbihMLFUsVil7dmFyIFg9TDwxMj8iQU0iOiJQTSI7cmV0dXJuIFY/WC50b0xvd2VyQ2FzZSgpOlh9O3JldHVybiBCLnJlcGxhY2UodiwoZnVuY3Rpb24oTCxVKXtyZXR1cm4gVXx8KGZ1bmN0aW9uKFYpe3N3aXRjaChWKXtjYXNlIllZIjpyZXR1cm4gU3RyaW5nKEUuJHkpLnNsaWNlKC0yKTtjYXNlIllZWVkiOnJldHVybiBOLnMoRS4keSw0LCIwIik7Y2FzZSJNIjpyZXR1cm4gZ2UrMTtjYXNlIk1NIjpyZXR1cm4gTi5zKGdlKzEsMiwiMCIpO2Nhc2UiTU1NIjpyZXR1cm4ga2UocS5tb250aHNTaG9ydCxnZSxJLDMpO2Nhc2UiTU1NTSI6cmV0dXJuIGtlKEksZ2UpO2Nhc2UiRCI6cmV0dXJuIEUuJEQ7Y2FzZSJERCI6cmV0dXJuIE4ucyhFLiRELDIsIjAiKTtjYXNlImQiOnJldHVybiBTdHJpbmcoRS4kVyk7Y2FzZSJkZCI6cmV0dXJuIGtlKHEud2Vla2RheXNNaW4sRS4kVyx3ZSwyKTtjYXNlImRkZCI6cmV0dXJuIGtlKHEud2Vla2RheXNTaG9ydCxFLiRXLHdlLDMpO2Nhc2UiZGRkZCI6cmV0dXJuIHdlW0UuJFddO2Nhc2UiSCI6cmV0dXJuIFN0cmluZyhlZSk7Y2FzZSJISCI6cmV0dXJuIE4ucyhlZSwyLCIwIik7Y2FzZSJoIjpyZXR1cm4gWSgxKTtjYXNlImhoIjpyZXR1cm4gWSgyKTtjYXNlImEiOnJldHVybiBBKGVlLFAsITApO2Nhc2UiQSI6cmV0dXJuIEEoZWUsUCwhMSk7Y2FzZSJtIjpyZXR1cm4gU3RyaW5nKFApO2Nhc2UibW0iOnJldHVybiBOLnMoUCwyLCIwIik7Y2FzZSJzIjpyZXR1cm4gU3RyaW5nKEUuJHMpO2Nhc2Uic3MiOnJldHVybiBOLnMoRS4kcywyLCIwIik7Y2FzZSJTU1MiOnJldHVybiBOLnMoRS4kbXMsMywiMCIpO2Nhc2UiWiI6cmV0dXJuIEd9cmV0dXJuIG51bGx9KShMKXx8Ry5yZXBsYWNlKCI6IiwiIil9KSl9LCQudXRjT2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDE1Ki1NYXRoLnJvdW5kKHRoaXMuJGQuZ2V0VGltZXpvbmVPZmZzZXQoKS8xNSl9LCQuZGlmZj1mdW5jdGlvbihULEUscSl7dmFyIEIsRz10aGlzLGVlPU4ucChFKSxQPUQoVCksZ2U9KFAudXRjT2Zmc2V0KCktdGhpcy51dGNPZmZzZXQoKSkqdCx3ZT10aGlzLVAsST1mdW5jdGlvbigpe3JldHVybiBOLm0oRyxQKX07c3dpdGNoKGVlKXtjYXNlIGQ6Qj1JKCkvMTI7YnJlYWs7Y2FzZSBjOkI9SSgpO2JyZWFrO2Nhc2UgdTpCPUkoKS8zO2JyZWFrO2Nhc2UgbDpCPSh3ZS1nZSkvNjA0OGU1O2JyZWFrO2Nhc2UgczpCPSh3ZS1nZSkvODY0ZTU7YnJlYWs7Y2FzZSBvOkI9d2UvcjticmVhaztjYXNlIG46Qj13ZS90O2JyZWFrO2Nhc2UgYTpCPXdlL2U7YnJlYWs7ZGVmYXVsdDpCPXdlfXJldHVybiBxP0I6Ti5hKEIpfSwkLmRheXNJbk1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kT2YoYykuJER9LCQuJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBPW3RoaXMuJExdfSwkLmxvY2FsZT1mdW5jdGlvbihULEUpe2lmKCFUKXJldHVybiB0aGlzLiRMO3ZhciBxPXRoaXMuY2xvbmUoKSxCPUYoVCxFLCEwKTtyZXR1cm4gQiYmKHEuJEw9QikscX0sJC5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBOLncodGhpcy4kZCx0aGlzKX0sJC50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSwkLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sJC50b0lTT1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvSVNPU3RyaW5nKCl9LCQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1VUQ1N0cmluZygpfSxTfSkoKSxfPVIucHJvdG90eXBlO3JldHVybiBELnByb3RvdHlwZT1fLFtbIiRtcyIsaV0sWyIkcyIsYV0sWyIkbSIsbl0sWyIkSCIsb10sWyIkVyIsc10sWyIkTSIsY10sWyIkeSIsZF0sWyIkRCIsaF1dLmZvckVhY2goKGZ1bmN0aW9uKFMpe19bU1sxXV09ZnVuY3Rpb24oJCl7cmV0dXJuIHRoaXMuJGcoJCxTWzBdLFNbMV0pfX0pKSxELmV4dGVuZD1mdW5jdGlvbihTLCQpe3JldHVybiBTLiRpfHwoUygkLFIsRCksUy4kaT0hMCksRH0sRC5sb2NhbGU9RixELmlzRGF5anM9TSxELnVuaXg9ZnVuY3Rpb24oUyl7cmV0dXJuIEQoMWUzKlMpfSxELmVuPU9ba10sRC5Mcz1PLEQucD17fSxEfSkpfSk7dmFyIGFiZT1qZSgoVkgsVUgpPT57KGZ1bmN0aW9uKGUsdCl7dHlwZW9mIFZIPT0ib2JqZWN0IiYmdHlwZW9mIFVIPCJ1Ij9VSC5leHBvcnRzPXQoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczplfHxzZWxmKS5kYXlqc19wbHVnaW5faXNUb2RheT10KCl9KShWSCwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7cmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXt0LnByb3RvdHlwZS5pc1RvZGF5PWZ1bmN0aW9uKCl7dmFyIGk9IllZWVktTU0tREQiLGE9cigpO3JldHVybiB0aGlzLmZvcm1hdChpKT09PWEuZm9ybWF0KGkpfX19KSl9KTtmdW5jdGlvbiBCN3IoZSl7cmV0dXJue2RheXM6TWF0aC50cnVuYyhlLzg2NGU1KSxob3VyczpNYXRoLnRydW5jKGUvMzZlNSUyNCksbWludXRlczpNYXRoLnRydW5jKGUvNmU0JTYwKSxzZWNvbmRzOk1hdGgudHJ1bmMoZS8xZTMlNjApLG1pbGxpc2Vjb25kczpNYXRoLnRydW5jKGUlMWUzKSxtaWNyb3NlY29uZHM6TWF0aC50cnVuYyhuYmUoZSoxZTMpJTFlMyksbmFub3NlY29uZHM6TWF0aC50cnVuYyhuYmUoZSoxZTYpJTFlMyl9fWZ1bmN0aW9uIEg3cihlKXtyZXR1cm57ZGF5czplLzg2NDAwMDAwbixob3VyczplLzM2MDAwMDBuJTI0bixtaW51dGVzOmUvNjAwMDBuJTYwbixzZWNvbmRzOmUvMTAwMG4lNjBuLG1pbGxpc2Vjb25kczplJTEwMDBuLG1pY3Jvc2Vjb25kczowbixuYW5vc2Vjb25kczowbn19ZnVuY3Rpb24gV0goZSl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlIm51bWJlciI6e2lmKE51bWJlci5pc0Zpbml0ZShlKSlyZXR1cm4gQjdyKGUpO2JyZWFrfWNhc2UiYmlnaW50IjpyZXR1cm4gSDdyKGUpfXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKX12YXIgbmJlLG9iZT1wKCgpPT57bmJlPWU9Pk51bWJlci5pc0Zpbml0ZShlKT9lOjB9KTtmdW5jdGlvbiBUZihlLHQpe2xldCByPXR5cGVvZiBlPT0iYmlnaW50IjtpZighciYmIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZpbml0ZSBudW1iZXIgb3IgYmlnaW50Iik7dD17Li4udH07bGV0IGk9ZTwwPyItIjoiIjtlPWU8MD8tZTplLHQuY29sb25Ob3RhdGlvbiYmKHQuY29tcGFjdD0hMSx0LmZvcm1hdFN1Yk1pbGxpc2Vjb25kcz0hMSx0LnNlcGFyYXRlTWlsbGlzZWNvbmRzPSExLHQudmVyYm9zZT0hMSksdC5jb21wYWN0JiYodC51bml0Q291bnQ9MSx0LnNlY29uZHNEZWNpbWFsRGlnaXRzPTAsdC5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzPTApO2xldCBhPVtdLG49KHUsZCk9PntsZXQgaD1NYXRoLmZsb29yKHUqMTAqKmQrVjdyKTtyZXR1cm4oTWF0aC5yb3VuZChoKS8xMCoqZCkudG9GaXhlZChkKX0sbz0odSxkLGgsZik9PntpZighKChhLmxlbmd0aD09PTB8fCF0LmNvbG9uTm90YXRpb24pJiZxN3IodSkmJiEodC5jb2xvbk5vdGF0aW9uJiZoPT09Im0iKSkpe2lmKGY/Pz1TdHJpbmcodSksdC5jb2xvbk5vdGF0aW9uKXtsZXQgeD1mLmluY2x1ZGVzKCIuIik/Zi5zcGxpdCgiLiIpWzBdLmxlbmd0aDpmLmxlbmd0aCx2PWEubGVuZ3RoPjA/MjoxO2Y9IjAiLnJlcGVhdChNYXRoLm1heCgwLHYteCkpK2Z9ZWxzZSBmKz10LnZlcmJvc2U/IiAiK2o3cihkLHUpOmg7YS5wdXNoKGYpfX0scz1XSChlKSxsPUJpZ0ludChzLmRheXMpO2lmKHQuaGlkZVllYXJBbmREYXlzP28oQmlnSW50KGwpKjI0bitCaWdJbnQocy5ob3VycyksImhvdXIiLCJoIik6KHQuaGlkZVllYXI/byhsLCJkYXkiLCJkIik6KG8obC8zNjVuLCJ5ZWFyIiwieSIpLG8obCUzNjVuLCJkYXkiLCJkIikpLG8oTnVtYmVyKHMuaG91cnMpLCJob3VyIiwiaCIpKSxvKE51bWJlcihzLm1pbnV0ZXMpLCJtaW51dGUiLCJtIiksIXQuaGlkZVNlY29uZHMpaWYodC5zZXBhcmF0ZU1pbGxpc2Vjb25kc3x8dC5mb3JtYXRTdWJNaWxsaXNlY29uZHN8fCF0LmNvbG9uTm90YXRpb24mJmU8MWUzJiYhdC5zdWJTZWNvbmRzQXNEZWNpbWFscyl7bGV0IHU9TnVtYmVyKHMuc2Vjb25kcyksZD1OdW1iZXIocy5taWxsaXNlY29uZHMpLGg9TnVtYmVyKHMubWljcm9zZWNvbmRzKSxmPU51bWJlcihzLm5hbm9zZWNvbmRzKTtpZihvKHUsInNlY29uZCIsInMiKSx0LmZvcm1hdFN1Yk1pbGxpc2Vjb25kcylvKGQsIm1pbGxpc2Vjb25kIiwibXMiKSxvKGgsIm1pY3Jvc2Vjb25kIiwiXHhCNXMiKSxvKGYsIm5hbm9zZWNvbmQiLCJucyIpO2Vsc2V7bGV0IHg9ZCtoLzFlMytmLzFlNix2PXR5cGVvZiB0Lm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9PSJudW1iZXIiP3QubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0czowLGI9eD49MT9NYXRoLnJvdW5kKHgpOk1hdGguY2VpbCh4KSx5PXY/eC50b0ZpeGVkKHYpOmI7byhOdW1iZXIucGFyc2VGbG9hdCh5KSwibWlsbGlzZWNvbmQiLCJtcyIseSl9fWVsc2V7bGV0IHU9KHI/TnVtYmVyKGUlVTdyKTplKS8xZTMlNjAsZD10eXBlb2YgdC5zZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/dC5zZWNvbmRzRGVjaW1hbERpZ2l0czoxLGg9bih1LGQpLGY9dC5rZWVwRGVjaW1hbHNPbldob2xlU2Vjb25kcz9oOmgucmVwbGFjZSgvXC4wKyQvLCIiKTtvKE51bWJlci5wYXJzZUZsb2F0KGYpLCJzZWNvbmQiLCJzIixmKX1pZihhLmxlbmd0aD09PTApcmV0dXJuIGkrIjAiKyh0LnZlcmJvc2U/IiBtaWxsaXNlY29uZHMiOiJtcyIpO2xldCBjPXQuY29sb25Ob3RhdGlvbj8iOiI6IiAiO3JldHVybiB0eXBlb2YgdC51bml0Q291bnQ9PSJudW1iZXIiJiYoYT1hLnNsaWNlKDAsTWF0aC5tYXgodC51bml0Q291bnQsMSkpKSxpK2Euam9pbihjKX12YXIgcTdyLGo3cixWN3IsVTdyLHNiZT1wKCgpPT57b2JlKCk7cTdyPWU9PmU9PT0wfHxlPT09MG4sajdyPShlLHQpPT50PT09MXx8dD09PTFuP2U6YCR7ZX1zYCxWN3I9MWUtNyxVN3I9MjRuKjYwbio2MG4qMTAwMG59KTt2YXIgejMsbGJlLGEwPXAoKCk9PntfZigpO1kyKCk7c2EoKTt2cGUoKTtyYmUoKTt6Mz1lcihpYmUoKSwxKSxsYmU9ZXIoYWJlKCksMSk7c2JlKCk7ejMuZGVmYXVsdC5leHRlbmQobGJlLmRlZmF1bHQpfSk7dmFyIExmLEdIPXAoKCk9PnthMCgpO1lIKCk7TGY9Y2xhc3N7Y29uc3RydWN0b3IodCxyLGkpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLm5leHRFeGVjdXRpb25Vbml4PTAsdGhpcy5jcm9uRXhwcmVzc2lvbj1yLHRoaXMuam9iRnVuY3Rpb249aSx0aGlzLmNyb25QYXJzZXI9bmV3IG5mLkNyb24ocil9Y2hlY2tFeGVjdXRpb24oKXtpZih0aGlzLnN0YXR1cz09PSJzdG9wcGVkIilyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peDtpZih0aGlzLm5leHRFeGVjdXRpb25Vbml4PT09MCYmdGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpLERhdGUubm93KCk+dGhpcy5uZXh0RXhlY3V0aW9uVW5peCl7bGV0IHQ9dGhpcy5qb2JGdW5jdGlvbih0aGlzLm5leHRFeGVjdXRpb25Vbml4KTt0IGluc3RhbmNlb2YgUHJvbWlzZSYmdC5jYXRjaChyPT5jb25zb2xlLmxvZyhyKSksdGhpcy5uZXh0RXhlY3V0aW9uVW5peD10aGlzLmdldE5leHRFeGVjdXRpb25UaW1lKCl9cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXh9Z2V0TmV4dEV4ZWN1dGlvblRpbWUoKXtyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peD1EYXRlLm5vdygpK3RoaXMuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpfWdldFRpbWVUb05leHRFeGVjdXRpb24oKXtyZXR1cm4gdGhpcy5jcm9uUGFyc2VyLm1zVG9OZXh0KCl9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCJ9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIn19fSk7dmFyIFpILFlIPXAoKCk9PnthMCgpO0dIKCk7Wkg9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5jcm9uam9icz1uZXcgZGkuT2JqZWN0TWFwLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bnVsbH13YWtlQ3ljbGUoKXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkJiZ0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnN0YXR1cz09PSJwZW5kaW5nIiYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5yZXNvbHZlKCl9YWRkQ3JvbmpvYih0LHIpe2xldCBpPW5ldyBMZih0aGlzLHQscik7cmV0dXJuIHRoaXMuY3JvbmpvYnMuYWRkKGkpLHRoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYoaS5zdGFydCgpLHRoaXMud2FrZUN5Y2xlKCkpLGl9cmVtb3ZlQ3JvbmpvYih0KXt0LnN0b3AoKSx0aGlzLmNyb25qb2JzLnJlbW92ZSh0KSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmdGhpcy53YWtlQ3ljbGUoKX1zdGFydCgpe2lmKHRoaXMuc3RhdHVzIT09InN0YXJ0ZWQiKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7Zm9yKGxldCB0IG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSl0LnN0YXJ0KCk7dGhpcy5ydW5Dcm9uQ3ljbGUoKX19YXN5bmMgcnVuQ3JvbkN5Y2xlKCl7Zm9yKDt0aGlzLnN0YXR1cz09PSJzdGFydGVkIjspe3RoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bmV3IEtlLkRlZmVycmVkO2xldCB0PTEvMDtmb3IobGV0IHIgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKXtyLmNoZWNrRXhlY3V0aW9uKCk7bGV0IGk9ci5nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCk7aTx0JiYodD1pKX1pZih0PDEvMCYmdD4wKXRoaXMuZXhlY3V0aW9uVGltZW91dD1uZXcgenQuVGltZW91dCh0KSxhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMuZXhlY3V0aW9uVGltZW91dC5wcm9taXNlLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZV0pLHRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKTtlbHNle2lmKHQ8PTApY29udGludWU7YXdhaXQgdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5wcm9taXNlfX10aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9c3RvcCgpe3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYodGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuZXhlY3V0aW9uVGltZW91dCYmdGhpcy5leGVjdXRpb25UaW1lb3V0LmNhbmNlbCgpLHRoaXMud2FrZUN5Y2xlKCkpO2ZvcihsZXQgdCBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpdC5zdG9wKCl9fX0pO3ZhciBuMCxYSCxXN3IsRzdyLFFIPXAoKCk9PnthMCgpO24wPXt5ZWFyczooZT0xKT0+ZSozMTU0ZTcsbW9udGhzOihlPTEpPT5lKjI2MjhlNix3ZWVrczooZT0xKT0+ZSo2MDQ4ZTUsZGF5czooZT0xKT0+ZSo4NjRlNSxob3VyczooZT0xKT0+ZSozNmU1LG1pbnV0ZXM6KGU9MSk9PmUqNmU0LHNlY29uZHM6KGU9MSk9PmUqMWUzfSxYSD1lPT57bGV0IHQ9MCxyPWk9Pnt0PXQraX07cmV0dXJuIGUueWVhcnMmJnIobjAueWVhcnMoZS55ZWFycykpLGUubW9udGhzJiZyKG4wLm1vbnRocyhlLm1vbnRocykpLGUud2Vla3MmJnIobjAud2Vla3MoZS53ZWVrcykpLGUuZGF5cyYmcihuMC5kYXlzKGUuZGF5cykpLGUuaG91cnMmJnIobjAuaG91cnMoZS5ob3VycykpLGUubWludXRlcyYmcihuMC5taW51dGVzKGUubWludXRlcykpLGUuc2Vjb25kcyYmcihuMC5zZWNvbmRzKGUuc2Vjb25kcykpLHR9LFc3cj1lPT5UZihlKSxHN3I9ZT0+Q2YuZm9ybWF0RGlzdGFuY2VUb05vdyhuZXcgRGF0ZShlKSl9KTt2YXIgSkgsY2JlPXAoKCk9PnthMCgpO1FIKCk7Skg9Y2xhc3MgZSBleHRlbmRzIERhdGV7c3RhdGljIGZyb21NaWxsaXModCl7cmV0dXJuIG5ldyBlKHQpfXN0YXRpYyBmcm9tRGF0ZSh0KXtyZXR1cm4gbmV3IGUodC5nZXRUaW1lKCkpfXN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlKHQpe2xldCByPS8oLiopXC4oLiopXC4oLiopLy5leGVjKHQpLGE9bmV3IERhdGUocGFyc2VGbG9hdChyWzNdKSxwYXJzZUZsb2F0KHJbMl0pLTEscGFyc2VGbG9hdChyWzFdKSkuZ2V0VGltZSgpO3JldHVybiBuZXcgZShhKX1zdGF0aWMgZnJvbUh5cGhlZERhdGUodCl7bGV0IHI9bmV3IERhdGUodCkuZ2V0VGltZSgpO3JldHVybiBuZXcgZShyKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZUFuZFRpbWUodCxyPSIxMjowMDowMCIsaT0iRXVyb3BlL0JlcmxpbiIpe2xldCBhPS8oLiopXC4oLiopXC4oLiopLy5leGVjKHQpLG49Yz0+YDAke2N9YC5zbGljZSgtMiksbz1gJHthWzNdfS0ke24oYVsyXSl9LSR7bihhWzFdKX1UJHtyfWAsbD16My5kZWZhdWx0KG8pLnRvRGF0ZSgpLmdldFRpbWUoKTtyZXR1cm4gbmV3IGUobCl9Y29uc3RydWN0b3IodD1EYXRlLm5vdygpKXtzdXBlcih0KX1leHBvcnRUb0V1cm9wZWFuRGF0ZSgpe2xldCB0PXRoaXMuZXhwb3J0VG9Vbml0cygpO3JldHVybmAke3QuZGF5U3RyaW5nfS4ke3QubW9udGhTdHJpbmd9LiR7dC55ZWFyU3RyaW5nfWB9ZXhwb3J0VG9IeXBoZWRTb3J0YWJsZURhdGUoKXtsZXQgdD10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHt0LnllYXJTdHJpbmd9LSR7dC5tb250aFN0cmluZ30tJHt0LmRheVN0cmluZ31gfWV4cG9ydFRvVW5pdHMoKXtsZXQgdD1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0scj1bIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5IiwiU3VuZGF5Il07cmV0dXJue3llYXI6dGhpcy5nZXRGdWxsWWVhcigpLHllYXJTdHJpbmc6YCR7dGhpcy5nZXRGdWxsWWVhcigpfWAsbW9udGg6dGhpcy5nZXRNb250aCgpKzEsbW9udGhTdHJpbmc6KCIwIisodGhpcy5nZXRNb250aCgpKzEpKS5zbGljZSgtMiksbW9udGhOYW1lOnRbdGhpcy5nZXRNb250aCgpXSxkYXk6dGhpcy5nZXREYXRlKCksZGF5U3RyaW5nOigiMCIrdGhpcy5nZXREYXRlKCkpLnNsaWNlKC0yKSxkYXlPZlRoZVdlZWs6dGhpcy5nZXREYXkoKSxkYXlPZlRoZVdlZWtOYW1lOnJbdGhpcy5nZXREYXkoKV19fWZvcm1hdCh0KXtyZXR1cm4gejMuZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuZm9ybWF0KHQpfWlzVG9kYXkoKXtyZXR1cm4gejMuZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuaXNUb2RheSgpfWxlc3NUaW1lUGFzc2VkVG9Ob3codCl7bGV0IHI9WEgodCk7cmV0dXJuIERhdGUubm93KCktdGhpcy5nZXRUaW1lKCk8cn1tb3JlVGltZVBhc3NlZFRvTm93KHQpe3JldHVybiF0aGlzLmxlc3NUaW1lUGFzc2VkVG9Ob3codCl9fX0pO3ZhciBLSCxkYmU9cCgoKT0+e0tIPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5uYW5vU2Vjb25kcz1udWxsLHRoaXMubWlsbGlTZWNvbmRzPW51bGwsdGhpcy5fbWlsbGlTdGFydD1udWxsLHRoaXMuX21pbGxpRGlmZj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITF9c3RhcnQoKXt0aGlzLl9zdGFydGVkPSEwLHRoaXMuX21pbGxpU3RhcnQ9RGF0ZS5ub3coKX1zdG9wKCl7aWYodGhpcy5fc3RhcnRlZD09PSExKXtjb25zb2xlLmxvZygiSGFzbid0IHN0YXJ0ZWQgeWV0Iik7cmV0dXJufXJldHVybiB0aGlzLl9taWxsaURpZmY9RGF0ZS5ub3coKS10aGlzLl9taWxsaVN0YXJ0LHRoaXMubmFub1NlY29uZHM9dGhpcy5fbWlsbGlEaWZmKjFlMyx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLl9taWxsaURpZmYsdGhpc31yZXNldCgpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfX19KTt2YXIgZXEsdWJlPXAoKCk9PnthMCgpO2VxPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbCx0aGlzLmludGVydmFsSm9icz1bXSx0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzPXR9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7bGV0IHQ9bmV3IERhdGU7dGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPXQsKGFzeW5jKCk9Pntmb3IoO3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZ0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249PT10Oylhd2FpdCB6dC5kZWxheUZvcih0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzKSx0aGlzLmV4ZWN1dGVJbnRlcnZhbEpvYnMoKX0pKCl9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbH1hZGRJbnRlcnZhbEpvYih0KXt0aGlzLmludGVydmFsSm9icy5wdXNoKHQpfWV4ZWN1dGVJbnRlcnZhbEpvYnMoKXtmb3IobGV0IHQgb2YgdGhpcy5pbnRlcnZhbEpvYnMpdCgpfX19KTt2YXIgRzUsdHE9cCgoKT0+e2EwKCk7RzU9Y2xhc3MgZXtzdGF0aWMgZnJvbU1pbGxpU2Vjb25kcyh0KXtyZXR1cm4gbmV3IGUodCl9c3RhdGljIGZyb21UaW1lU3RhbXAodCl7bGV0IHI9bmV3IGU7cmV0dXJuIHIuY2hhbmdlPXIubWlsbGlTZWNvbmRzLXQubWlsbGlTZWNvbmRzLHJ9Y29uc3RydWN0b3IodCl7dGhpcy5jaGFuZ2U9bnVsbCx0P3R5cGVvZiB0PT0ibnVtYmVyIiYmKHRoaXMuZGF0ZT1uZXcgRGF0ZSh0KSk6dGhpcy5kYXRlPW5ldyBEYXRlLHRoaXMubWlsbGlTZWNvbmRzPXRoaXMuZGF0ZS5nZXRUaW1lKCksdGhpcy5lcG9jaHRpbWU9TWF0aC5mbG9vcih0aGlzLm1pbGxpU2Vjb25kcy8xZTMpfWlzT2xkZXJUaGFuT3RoZXJUaW1lU3RhbXAodCxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kczx0Lm1pbGxpU2Vjb25kcy1yfWlzT2xkZXJUaGFuKHQscj0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHMrcjx0Lm1pbGxpU2Vjb25kc31pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAodCxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kcz50Lm1pbGxpU2Vjb25kcytyfWlzWW91bmdlclRoYW5NaWxsaVNlY29uZHModCl7bGV0IGk9bmV3IGUoKS5lcG9jaHRpbWUtdCxhPW5ldyBlKGkpO3JldHVybiB0aGlzLmlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChhKX19fSk7dmFyIHJxLHBiZT1wKCgpPT57YTAoKTt0cSgpO3JxPWNsYXNze2dldCB0aW1lTGVmdCgpe3JldHVybiB0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcy10aGlzLnBhdXNlZEF0LmNoYW5nZX1jb25zdHJ1Y3Rvcih0KXt0aGlzLnN0YXRlPSJpbml0aWF0ZWQiLHRoaXMuY29tcGxldGVkRGVmZXJyZWQ9S2UuZGVmZXIoKSx0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcz10LHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZXJyZWQucHJvbWlzZX1zdGFydCgpe2lmKCF0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lSW5NaWxsaXNlY29uZHMpLHRoaXMuc3RhcnRlZEF0PW5ldyBHNTtlbHNlIHRocm93IG5ldyBFcnJvcigidGltZXIgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgcmVzdW1lIGluc3RlYWQiKX1wYXVzZSgpe3RoaXMuc3RhcnRlZEF0JiYoY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpbWVvdXQpLHRoaXMuY3VycmVudFRpbWVvdXQ9bnVsbCx0aGlzLnBhdXNlZEF0PUc1LmZyb21UaW1lU3RhbXAodGhpcy5zdGFydGVkQXQpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lTGVmdCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBOT1QgYmVlbiBzdGFydGVkIGJlZm9yZS4gUGxlYXNlIHVzZSAuc3RhcnQoKSBpbnN0ZWFkIil9cmVzZXQoKXt0aGlzLnBhdXNlKCksdGhpcy5zdGFydGVkQXQ9bnVsbCx0aGlzLnBhdXNlZEF0PW51bGx9fX0pO3ZhciBNbD17fTtGZShNbCx7Q3JvbkpvYjooKT0+TGYsQ3Jvbk1hbmFnZXI6KCk9PlpILEV4dGVuZGVkRGF0ZTooKT0+SkgsSHJ0TWVhc3VyZW1lbnQ6KCk9PktILEludGVydmFsOigpPT5lcSxUaW1lU3RhbXA6KCk9Pkc1LFRpbWVyOigpPT5ycSxnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVBZ29UaW1lOigpPT5HN3IsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nOigpPT5XN3IsZ2V0TWlsbGlTZWNvbmRzRnJvbVVuaXRzOigpPT5YSCx1bml0czooKT0+bjB9KTt2YXIgaXE9cCgoKT0+e1lIKCk7R0goKTtjYmUoKTtkYmUoKTt1YmUoKTtwYmUoKTt0cSgpO1FIKCl9KTt2YXIgZmJlPWplKChSXzEsaGJlKT0+eyJ1c2Ugc3RyaWN0IjtoYmUuZXhwb3J0cz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucGFyZW50PW51bGwsdGhpcy5wcmV2aW91c1NpYmxpbmc9bnVsbCx0aGlzLm5leHRTaWJsaW5nPW51bGwsdGhpcy5maXJzdENoaWxkPW51bGwsdGhpcy5sYXN0Q2hpbGQ9bnVsbCx0aGlzLmNoaWxkcmVuVmVyc2lvbj0wLHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbCx0aGlzLmNhY2hlZEluZGV4PS0xLHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTn1nZXQgaXNBdHRhY2hlZCgpe3JldHVybiEhKHRoaXMucGFyZW50fHx0aGlzLnByZXZpb3VzU2libGluZ3x8dGhpcy5uZXh0U2libGluZyl9Z2V0IGhhc0NoaWxkcmVuKCl7cmV0dXJuISF0aGlzLmZpcnN0Q2hpbGR9Y2hpbGRyZW5DaGFuZ2VkKCl7dGhpcy5jaGlsZHJlblZlcnNpb249dGhpcy5jaGlsZHJlblZlcnNpb24rMSY0Mjk0OTY3Mjk1LHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbH1nZXRDYWNoZWRJbmRleCh0KXtyZXR1cm4gdGhpcy5jYWNoZWRJbmRleFZlcnNpb24hPT10LmNoaWxkcmVuVmVyc2lvbj8odGhpcy5jYWNoZWRJbmRleFZlcnNpb249TmFOLC0xKTp0aGlzLmNhY2hlZEluZGV4fXNldENhY2hlZEluZGV4KHQscil7dGhpcy5jYWNoZWRJbmRleFZlcnNpb249dC5jaGlsZHJlblZlcnNpb24sdGhpcy5jYWNoZWRJbmRleD1yfX19KTt2YXIgZ2JlPWplKChCXzEsbWJlKT0+eyJ1c2Ugc3RyaWN0IjttYmUuZXhwb3J0cz1PYmplY3QuZnJlZXplKHtESVNDT05ORUNURUQ6MSxQUkVDRURJTkc6MixGT0xMT1dJTkc6NCxDT05UQUlOUzo4LENPTlRBSU5FRF9CWToxNn0pfSk7dmFyIHdiZT1qZSgoSF8xLHliZSk9PnsidXNlIHN0cmljdCI7dmFyIGJiZT1TeW1ib2woKSx2YmU9U3ltYm9sKCksbzA9U3ltYm9sKCkseGJlPVN5bWJvbCgpLGkyPWNsYXNze2NvbnN0cnVjdG9yKHQscixpLGEpe3RoaXNbYmJlXT10LHRoaXNbdmJlXT1yLHRoaXNbbzBdPWksdGhpc1t4YmVdPWF9bmV4dCgpe2xldCB0PXRoaXNbYmJlXSxyPXRoaXNbeGJlXSxpPXRoaXNbdmJlXTtpZighdGhpc1tvMF0pcmV0dXJue2RvbmU6ITAsdmFsdWU6aX07bGV0IGE9dGhpc1tvMF07cmV0dXJuIHI9PT0xP3RoaXNbbzBdPXQuX25vZGUoYSkucHJldmlvdXNTaWJsaW5nOnI9PT0yP3RoaXNbbzBdPXQuX25vZGUoYSkubmV4dFNpYmxpbmc6cj09PTM/dGhpc1tvMF09dC5fbm9kZShhKS5wYXJlbnQ6cj09PTQ/dGhpc1tvMF09dC5wcmVjZWRpbmcoYSx7cm9vdDppfSk6dGhpc1tvMF09dC5mb2xsb3dpbmcoYSx7cm9vdDppfSkse2RvbmU6ITEsdmFsdWU6YX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaTIucHJvdG90eXBlLFN5bWJvbC5pdGVyYXRvcix7dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sd3JpdGFibGU6ITF9KSxpMi5QUkVWPTEsaTIuTkVYVD0yLGkyLlBBUkVOVD0zLGkyLlBSRUNFRElORz00LGkyLkZPTExPV0lORz01LE9iamVjdC5mcmVlemUoaTIpLE9iamVjdC5mcmVlemUoaTIucHJvdG90eXBlKSx5YmUuZXhwb3J0cz1pMn0pO3ZhciBucT1qZSgocV8xLE1iZSk9PnsidXNlIHN0cmljdCI7dmFyIFo3cj1mYmUoKSxzMD1nYmUoKSxjbz13YmUoKTtmdW5jdGlvbiBhcSgpe3JldHVybiEwfWZ1bmN0aW9uIFk1KGUsdCl7cmV0dXJuIGVbZS5sZW5ndGgtMS10XX12YXIgcHc9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5zeW1ib2w9U3ltYm9sKHR8fCJTeW1ib2xUcmVlIGRhdGEiKX1pbml0aWFsaXplKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLHR9X25vZGUodCl7aWYoIXQpcmV0dXJuIG51bGw7bGV0IHI9dFt0aGlzLnN5bWJvbF07cmV0dXJuIHJ8fCh0W3RoaXMuc3ltYm9sXT1uZXcgWjdyKX1oYXNDaGlsZHJlbih0KXtyZXR1cm4gdGhpcy5fbm9kZSh0KS5oYXNDaGlsZHJlbn1maXJzdENoaWxkKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLmZpcnN0Q2hpbGR9bGFzdENoaWxkKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLmxhc3RDaGlsZH1wcmV2aW91c1NpYmxpbmcodCl7cmV0dXJuIHRoaXMuX25vZGUodCkucHJldmlvdXNTaWJsaW5nfW5leHRTaWJsaW5nKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLm5leHRTaWJsaW5nfXBhcmVudCh0KXtyZXR1cm4gdGhpcy5fbm9kZSh0KS5wYXJlbnR9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQodCl7bGV0IHIsaT10O2Zvcig7cj10aGlzLl9ub2RlKGkpLmxhc3RDaGlsZDspaT1yO3JldHVybiBpfXByZWNlZGluZyh0LHIpe2xldCBpPXImJnIucm9vdDtpZih0PT09aSlyZXR1cm4gbnVsbDtsZXQgYT10aGlzLl9ub2RlKHQpLnByZXZpb3VzU2libGluZztyZXR1cm4gYT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGEpOnRoaXMuX25vZGUodCkucGFyZW50fWZvbGxvd2luZyh0LHIpe2xldCBpPXImJnIucm9vdCxuPSEociYmci5za2lwQ2hpbGRyZW4pJiZ0aGlzLl9ub2RlKHQpLmZpcnN0Q2hpbGQ7aWYobilyZXR1cm4gbjtsZXQgbz10O2Rve2lmKG89PT1pKXJldHVybiBudWxsO2xldCBzPXRoaXMuX25vZGUobykubmV4dFNpYmxpbmc7aWYocylyZXR1cm4gcztvPXRoaXMuX25vZGUobykucGFyZW50fXdoaWxlKG8pO3JldHVybiBudWxsfWNoaWxkcmVuVG9BcnJheSh0LHIpe2xldCBpPXImJnIuYXJyYXl8fFtdLGE9ciYmci5maWx0ZXJ8fGFxLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz10aGlzLl9ub2RlKHQpLHM9by5maXJzdENoaWxkLGw9MDtmb3IoO3M7KXtsZXQgYz10aGlzLl9ub2RlKHMpO2Muc2V0Q2FjaGVkSW5kZXgobyxsKSxhLmNhbGwobixzKSYmaS5wdXNoKHMpLHM9Yy5uZXh0U2libGluZywrK2x9cmV0dXJuIGl9YW5jZXN0b3JzVG9BcnJheSh0LHIpe2xldCBpPXImJnIuYXJyYXl8fFtdLGE9ciYmci5maWx0ZXJ8fGFxLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz10O2Zvcig7bzspYS5jYWxsKG4sbykmJmkucHVzaChvKSxvPXRoaXMuX25vZGUobykucGFyZW50O3JldHVybiBpfXRyZWVUb0FycmF5KHQscil7bGV0IGk9ciYmci5hcnJheXx8W10sYT1yJiZyLmZpbHRlcnx8YXEsbj1yJiZyLnRoaXNBcmd8fHZvaWQgMCxvPXQ7Zm9yKDtvOylhLmNhbGwobixvKSYmaS5wdXNoKG8pLG89dGhpcy5mb2xsb3dpbmcobyx7cm9vdDp0fSk7cmV0dXJuIGl9Y2hpbGRyZW5JdGVyYXRvcih0LHIpe2xldCBpPXImJnIucmV2ZXJzZSxhPXRoaXMuX25vZGUodCk7cmV0dXJuIG5ldyBjbyh0aGlzLHQsaT9hLmxhc3RDaGlsZDphLmZpcnN0Q2hpbGQsaT9jby5QUkVWOmNvLk5FWFQpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gbmV3IGNvKHRoaXMsdCx0aGlzLl9ub2RlKHQpLnByZXZpb3VzU2libGluZyxjby5QUkVWKX1uZXh0U2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gbmV3IGNvKHRoaXMsdCx0aGlzLl9ub2RlKHQpLm5leHRTaWJsaW5nLGNvLk5FWFQpfWFuY2VzdG9yc0l0ZXJhdG9yKHQpe3JldHVybiBuZXcgY28odGhpcyx0LHQsY28uUEFSRU5UKX10cmVlSXRlcmF0b3IodCxyKXtsZXQgaT1yJiZyLnJldmVyc2U7cmV0dXJuIG5ldyBjbyh0aGlzLHQsaT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KHQpOnQsaT9jby5QUkVDRURJTkc6Y28uRk9MTE9XSU5HKX1pbmRleCh0KXtsZXQgcj10aGlzLl9ub2RlKHQpLGk9dGhpcy5fbm9kZShyLnBhcmVudCk7aWYoIWkpcmV0dXJuLTE7bGV0IGE9ci5nZXRDYWNoZWRJbmRleChpKTtpZihhPj0wKXJldHVybiBhO2E9MDtsZXQgbj1pLmZpcnN0Q2hpbGQ7aWYoaS5jaGlsZEluZGV4Q2FjaGVkVXBUbyl7bGV0IG89dGhpcy5fbm9kZShpLmNoaWxkSW5kZXhDYWNoZWRVcFRvKTtuPW8ubmV4dFNpYmxpbmcsYT1vLmdldENhY2hlZEluZGV4KGkpKzF9Zm9yKDtuOyl7bGV0IG89dGhpcy5fbm9kZShuKTtpZihvLnNldENhY2hlZEluZGV4KGksYSksbj09PXQpYnJlYWs7KythLG49by5uZXh0U2libGluZ31yZXR1cm4gaS5jaGlsZEluZGV4Q2FjaGVkVXBUbz10LGF9Y2hpbGRyZW5Db3VudCh0KXtsZXQgcj10aGlzLl9ub2RlKHQpO3JldHVybiByLmxhc3RDaGlsZD90aGlzLmluZGV4KHIubGFzdENoaWxkKSsxOjB9Y29tcGFyZVRyZWVQb3NpdGlvbih0LHIpe2lmKHQ9PT1yKXJldHVybiAwO2xldCBpPVtdO3tsZXQgdT10O2Zvcig7dTspe2lmKHU9PT1yKXJldHVybiBzMC5DT05UQUlOU3xzMC5QUkVDRURJTkc7aS5wdXNoKHUpLHU9dGhpcy5wYXJlbnQodSl9fWxldCBhPVtdO3tsZXQgdT1yO2Zvcig7dTspe2lmKHU9PT10KXJldHVybiBzMC5DT05UQUlORURfQll8czAuRk9MTE9XSU5HO2EucHVzaCh1KSx1PXRoaXMucGFyZW50KHUpfX1sZXQgbj1ZNShpLDApO2lmKCFufHxuIT09WTUoYSwwKSlyZXR1cm4gczAuRElTQ09OTkVDVEVEO2xldCBvPTAscz1NYXRoLm1pbihpLmxlbmd0aCxhLmxlbmd0aCk7Zm9yKGxldCB1PTA7dTxzOysrdSl7bGV0IGQ9WTUoaSx1KSxoPVk1KGEsdSk7aWYoZCE9PWgpYnJlYWs7bz11fWxldCBsPXRoaXMuaW5kZXgoWTUoaSxvKzEpKTtyZXR1cm4gdGhpcy5pbmRleChZNShhLG8rMSkpPGw/czAuUFJFQ0VESU5HOnMwLkZPTExPV0lOR31yZW1vdmUodCl7bGV0IHI9dGhpcy5fbm9kZSh0KSxpPXRoaXMuX25vZGUoci5wYXJlbnQpLGE9dGhpcy5fbm9kZShyLnByZXZpb3VzU2libGluZyksbj10aGlzLl9ub2RlKHIubmV4dFNpYmxpbmcpO3JldHVybiBpJiYoaS5maXJzdENoaWxkPT09dCYmKGkuZmlyc3RDaGlsZD1yLm5leHRTaWJsaW5nKSxpLmxhc3RDaGlsZD09PXQmJihpLmxhc3RDaGlsZD1yLnByZXZpb3VzU2libGluZykpLGEmJihhLm5leHRTaWJsaW5nPXIubmV4dFNpYmxpbmcpLG4mJihuLnByZXZpb3VzU2libGluZz1yLnByZXZpb3VzU2libGluZyksci5wYXJlbnQ9bnVsbCxyLnByZXZpb3VzU2libGluZz1udWxsLHIubmV4dFNpYmxpbmc9bnVsbCxyLmNhY2hlZEluZGV4PS0xLHIuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTixpJiZpLmNoaWxkcmVuQ2hhbmdlZCgpLHR9aW5zZXJ0QmVmb3JlKHQscil7bGV0IGk9dGhpcy5fbm9kZSh0KSxhPXRoaXMuX25vZGUoaS5wcmV2aW91c1NpYmxpbmcpLG49dGhpcy5fbm9kZShyKSxvPXRoaXMuX25vZGUoaS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1pLnBhcmVudCxuLnByZXZpb3VzU2libGluZz1pLnByZXZpb3VzU2libGluZyxuLm5leHRTaWJsaW5nPXQsaS5wcmV2aW91c1NpYmxpbmc9cixhJiYoYS5uZXh0U2libGluZz1yKSxvJiZvLmZpcnN0Q2hpbGQ9PT10JiYoby5maXJzdENoaWxkPXIpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCkscn1pbnNlcnRBZnRlcih0LHIpe2xldCBpPXRoaXMuX25vZGUodCksYT10aGlzLl9ub2RlKGkubmV4dFNpYmxpbmcpLG49dGhpcy5fbm9kZShyKSxvPXRoaXMuX25vZGUoaS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1pLnBhcmVudCxuLnByZXZpb3VzU2libGluZz10LG4ubmV4dFNpYmxpbmc9aS5uZXh0U2libGluZyxpLm5leHRTaWJsaW5nPXIsYSYmKGEucHJldmlvdXNTaWJsaW5nPXIpLG8mJm8ubGFzdENoaWxkPT09dCYmKG8ubGFzdENoaWxkPXIpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCkscn1wcmVwZW5kQ2hpbGQodCxyKXtsZXQgaT10aGlzLl9ub2RlKHQpLGE9dGhpcy5fbm9kZShyKTtpZihhLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gaS5oYXNDaGlsZHJlbj90aGlzLmluc2VydEJlZm9yZShpLmZpcnN0Q2hpbGQscik6KGEucGFyZW50PXQsaS5maXJzdENoaWxkPXIsaS5sYXN0Q2hpbGQ9cixpLmNoaWxkcmVuQ2hhbmdlZCgpKSxyfWFwcGVuZENoaWxkKHQscil7bGV0IGk9dGhpcy5fbm9kZSh0KSxhPXRoaXMuX25vZGUocik7aWYoYS5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIGkuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRBZnRlcihpLmxhc3RDaGlsZCxyKTooYS5wYXJlbnQ9dCxpLmZpcnN0Q2hpbGQ9cixpLmxhc3RDaGlsZD1yLGkuY2hpbGRyZW5DaGFuZ2VkKCkpLHJ9fTtNYmUuZXhwb3J0cz1wdyxwdy5UcmVlUG9zaXRpb249czB9KTt2YXIgaHcsdW89cCgoKT0+e1kyKCk7SUIoKTtzYSgpO3QyKCk7aXEoKTtodz1lcihucSgpLDEpfSk7dmFyIG9xLGtiZT1wKCgpPT57dW8oKTtvcT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZXhlY3V0aW9uU2xvdHM9W10sdGhpcy5pc1Byb2Nlc3Npbmc9ITEsdGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT0xLzAsdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ9MCx0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZT1bXX1hc3luYyBnZXRFeGNsdXNpdmVFeGVjdXRpb25TbG90KHQscil7bGV0IGk9S2UuZGVmZXIoKSxhPXtmdW5jVG9FeGVjdXRlOnQsZXhlY3V0aW9uRGVmZXJyZWQ6aSx0aW1lb3V0OnIsbW9kZToiZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChhKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGkucHJvbWlzZX1hc3luYyBnZXROb25FeGNsdXNpdmVFeGVjdXRpb25TbG90KHQscil7bGV0IGk9S2UuZGVmZXIoKSxhPXtmdW5jVG9FeGVjdXRlOnQsZXhlY3V0aW9uRGVmZXJyZWQ6aSx0aW1lb3V0OnIsbW9kZToibm9uZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChhKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGkucHJvbWlzZX1zZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSh0KXtpZighTnVtYmVyLmlzRmluaXRlKHQpfHx0PDEpdGhyb3cgbmV3IEVycm9yKCJub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSBtdXN0IGJlIGEgZmluaXRlIG51bWJlciA+PSAxIik7dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT10fWdldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3l9Z2V0QWN0aXZlTm9uRXhjbHVzaXZlQ291bnQoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnR9Z2V0UGVuZGluZ05vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLmxlbmd0aH1hc3luYyBwcm9jZXNzRXhlY3V0aW9uU2xvdHMoKXtpZighdGhpcy5pc1Byb2Nlc3Npbmcpe2Zvcih0aGlzLmlzUHJvY2Vzc2luZz0hMDt0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aD4wOyl7bGV0IHQ9dGhpcy5leGVjdXRpb25TbG90c1swXTtpZih0Lm1vZGU9PT0iZXhjbHVzaXZlIilhd2FpdCB0aGlzLmV4ZWN1dGVFeGNsdXNpdmVTbG90KHQpLHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKTtlbHNle2xldCByPVtdO2Zvcig7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MCYmdGhpcy5leGVjdXRpb25TbG90c1swXS5tb2RlPT09Im5vbmV4Y2x1c2l2ZSI7KXIucHVzaCh0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCkpO2F3YWl0IHRoaXMuZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKHIpfX10aGlzLmlzUHJvY2Vzc2luZz0hMX19YXN5bmMgZXhlY3V0ZUV4Y2x1c2l2ZVNsb3QodCl7dHJ5e2lmKHQudGltZW91dCl7bGV0IHI9YXdhaXQgUHJvbWlzZS5yYWNlKFt0LmZ1bmNUb0V4ZWN1dGUoKSx6dC5kZWxheUZvcih0LnRpbWVvdXQpLnRoZW4oKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRpbWVvdXQgcmVhY2hlZCIpfSldKTt0LmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9ZWxzZXtsZXQgcj1hd2FpdCB0LmZ1bmNUb0V4ZWN1dGUoKTt0LmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9fWNhdGNoKHIpe3QuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHIpfX1hc3luYyBleGVjdXRlTm9uRXhjbHVzaXZlU2xvdHModCl7bGV0IHI9dC5tYXAoYXN5bmMgaT0+e2F3YWl0IHRoaXMud2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKTt0cnl7aWYoaS50aW1lb3V0KXtsZXQgYT1hd2FpdCBQcm9taXNlLnJhY2UoW2kuZnVuY1RvRXhlY3V0ZSgpLHp0LmRlbGF5Rm9yKGkudGltZW91dCkudGhlbigoKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZW91dCByZWFjaGVkIil9KV0pO2kuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX1lbHNle2xldCBhPWF3YWl0IGkuZnVuY1RvRXhlY3V0ZSgpO2kuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX19Y2F0Y2goYSl7aS5leGVjdXRpb25EZWZlcnJlZC5yZWplY3QoYSl9ZmluYWxseXt0aGlzLnJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl9fSk7YXdhaXQgUHJvbWlzZS5hbGwocil9d2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ8dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT8odGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxQcm9taXNlLnJlc29sdmUoKSk6bmV3IFByb21pc2UodD0+e3RoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnB1c2goKCk9Pnt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrLHQoKX0pfSl9cmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKXt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudC0tO2xldCB0PXRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnNoaWZ0KCk7dCYmdCgpfX19KTt2YXIgc3EsU2JlPXAoKCk9Pnt1bygpO3NxPWNsYXNze2NvbnN0cnVjdG9yKHQ9MTYpe3RoaXMuaGFzU3BhY2U9bmV3IGlyLnJ4anMuU3ViamVjdCx0aGlzLml0ZW1zQXZhaWxhYmxlPW5ldyBpci5yeGpzLlN1YmplY3QsdGhpcy5kYXRhPVtdLHRoaXMuaGlnaFdhdGVyTWFyaz10fXB1c2godCl7dGhpcy5kYXRhLnB1c2godCksdGhpcy5pdGVtc0F2YWlsYWJsZS5uZXh0KCJpdGVtc0F2YWlsYWJsZSIpO2xldCByPXRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpO3JldHVybiByJiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIikscn1zaGlmdCgpe2xldCB0PXRoaXMuZGF0YS5zaGlmdCgpO3JldHVybiB0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKSYmdGhpcy5oYXNTcGFjZS5uZXh0KCJoYXNTcGFjZSIpLHR9Y2hlY2tTcGFjZUF2YWlsYWJsZSgpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoPHRoaXMuaGlnaFdhdGVyTWFya31jaGVja0hhc0l0ZW1zKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg+MH13YWl0Rm9yU3BhY2UoKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2lmKHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpKXQoKTtlbHNle2xldCByPXRoaXMuaGFzU3BhY2Uuc3Vic2NyaWJlKCgpPT57ci51bnN1YnNjcmliZSgpLHQoKX0pfX0pfXdhaXRGb3JJdGVtcygpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57aWYodGhpcy5kYXRhLmxlbmd0aD4wKXQoKTtlbHNle2xldCByPXRoaXMuaXRlbXNBdmFpbGFibGUuc3Vic2NyaWJlKCgpPT57ci51bnN1YnNjcmliZSgpLHQoKX0pfX0pfX19KTt2YXIgQWYsbHE9cCgoKT0+e3VvKCk7QWY9Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwT2JqZWN0PXt9fWlzVW5pcXVlS2V5KHQpe3JldHVybiF0aGlzLm1hcE9iamVjdFt0XX1hZGRUb01hcCh0LHIsaSl7cmV0dXJuIHRoaXMuaXNVbmlxdWVLZXkodCl8fGkmJmkuZm9yY2U/KHRoaXMubWFwT2JqZWN0W3RdPXIsITApOiExfWdldEJ5S2V5KHQpe3JldHVybiB0aGlzLm1hcE9iamVjdFt0XX1yZW1vdmVGcm9tTWFwKHQpe2xldCByPXRoaXMuZ2V0QnlLZXkodCk7cmV0dXJuIGRlbGV0ZSB0aGlzLm1hcE9iamVjdFt0XSxyfWdldEtleXMoKXtsZXQgdD1bXTtmb3IobGV0IHIgaW4gdGhpcy5tYXBPYmplY3QpdGhpcy5tYXBPYmplY3Rbcl0mJnQucHVzaChyKTtyZXR1cm4gdH1jbGVhbigpe3RoaXMubWFwT2JqZWN0PXt9fWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtmb3IobGV0IGkgb2YgdGhpcy5nZXRLZXlzKCkpci5hZGRUb01hcChpLHRoaXMuZ2V0QnlLZXkoaSkpO2ZvcihsZXQgaSBvZiB0LmdldEtleXMoKSlyLmFkZFRvTWFwKGksdC5nZXRCeUtleShpKSx7Zm9yY2U6ITB9KTtyZXR1cm4gcn1hZGRBbGxGcm9tT3RoZXIodCl7Zm9yKGxldCByIG9mIHQuZ2V0S2V5cygpKXRoaXMuYWRkVG9NYXAocix0LmdldEJ5S2V5KHIpLHtmb3JjZTohMH0pfWFzeW5jIGZpbmQodCl7Zm9yKGxldCByIG9mIHRoaXMuZ2V0S2V5cygpKXtsZXQgaT10aGlzLmdldEJ5S2V5KHIpO2lmKGF3YWl0IHQoaSkpcmV0dXJuIGl9fX19KTt2YXIgemJlLEMzLGZ3PXAoKCk9Pnt1bygpO2xxKCk7emJlPShlPSJ1bmkiKT0+YCR7ZX14eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLHQ9PntsZXQgcj1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKHQ9PT0ieCI/cjpyJjN8OCkudG9TdHJpbmcoMTYpfSksQzM9Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMuZmFzdE1hcD1uZXcgQWYsdGhpcy5ldmVudFN1YmplY3Q9bmV3IGlyLnJ4anMuU3ViamVjdH1hZGRNYXBwZWRVbmlxdWUodCxyKXt0aGlzLmZhc3RNYXAuYWRkVG9NYXAodCxyKX1nZXRNYXBwZWRVbmlxdWUodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRCeUtleSh0KX1yZW1vdmVNYXBwZWRVbmlxdWUodCl7bGV0IHI9dGhpcy5nZXRNYXBwZWRVbmlxdWUodCl9YWRkKHQpe2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHRoaXMuZmFzdE1hcC5nZXRCeUtleShpKT09PXQpcmV0dXJuIGk7bGV0IHI9emJlKCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUocix0KSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDp0fSkscn1hZGRBcnJheSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZChyKX1jaGVja0Zvck9iamVjdCh0KXtyZXR1cm4hIXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KHQpfWdldEtleUZvck9iamVjdCh0KXtsZXQgcj1udWxsO2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKCFyJiZ0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT10KXI9aTtlbHNlIGNvbnRpbnVlO3JldHVybiByfWFzeW5jIGZpbmQodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5maW5kKHQpfWZpbmRTeW5jKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKSlyZXR1cm4gdGhpcy5nZXRNYXBwZWRVbmlxdWUocil9YXN5bmMgZmluZE9uZUFuZFJlbW92ZSh0KXtsZXQgcj1hd2FpdCB0aGlzLmZpbmQodCk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9ZmluZE9uZUFuZFJlbW92ZVN5bmModCl7bGV0IHI9dGhpcy5maW5kU3luYyh0KTtyZXR1cm4gciYmdGhpcy5yZW1vdmUocikscn1hc3luYyBmb3JFYWNoKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWF3YWl0IHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKX1nZXRPbmVBbmRSZW1vdmUoKXtsZXQgdD10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2lmKHQubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt7bGV0IHI9dFswXSxpPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3JldHVybiB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDppfSksaX19Z2V0QXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSl0LnB1c2godGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKTtyZXR1cm4gdH1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkubGVuZ3RoPT09MH1yZW1vdmUodCl7aWYodGhpcy5jaGVja0Zvck9iamVjdCh0KSl7bGV0IHI9dGhpcy5nZXRLZXlGb3JPYmplY3QodCksaT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9cmV0dXJuIG51bGx9d2lwZSgpe2ZvcihsZXQgdCBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHQpfWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtyZXR1cm4gci5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApLHIuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodC5mYXN0TWFwKSxyfWFkZEFsbEZyb21PdGhlcih0KXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHQuZmFzdE1hcCl9fX0pO3ZhciBEZixjcT1wKCgpPT57dW8oKTtkcSgpO0RmPWNsYXNze2dldCBjb21wYXJpc29uU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29tcGFyaXNvbkZ1bmModGhpcy5vcmlnaW5hbEludGVyZXN0KX1mdWxsZmlsbEludGVyZXN0KHQpe3RoaXMuaXNGdWxsZmlsbGVkPSEwLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkLnJlc29sdmUodCl9Y29uc3RydWN0b3IodCxyLGksYSl7dGhpcy5kZXN0cnVjdGlvblRpbWVyPW5ldyBNbC5UaW1lcigxZTQpLHRoaXMuaXNGdWxsZmlsbGVkPSExLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkPW5ldyBLZS5EZWZlcnJlZCx0aGlzLmludGVyZXN0RnVsbGZpbGxlZD10aGlzLmludGVyZXN0RGVmZXJyZWQucHJvbWlzZSx0aGlzLmludGVyZXN0TWFwUmVmPXQsdGhpcy5vcmlnaW5hbEludGVyZXN0PXIsdGhpcy5jb21wYXJpc29uRnVuYz1pLHRoaXMub3B0aW9ucz1hLHRoaXMuZGVzdHJ1Y3Rpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e3RoaXMuZGVzdHJveSgpfSksdGhpcy5vcHRpb25zPy5tYXJrTG9zdEFmdGVyRGVmYXVsdCYmenQuZGVsYXlGb3IodGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0KS50aGVuKHRoaXMubWFya0xvc3QpfWRlc3Ryb3koKXt0aGlzLmludGVyZXN0TWFwUmVmLnJlbW92ZUludGVyZXN0KHRoaXMpLCF0aGlzLmlzRnVsbGZpbGxlZCYmdGhpcy5vcHRpb25zLmRlZmF1bHRGdWxsZmlsbG1lbnQmJnRoaXMuZnVsbGZpbGxJbnRlcmVzdCh0aGlzLm9wdGlvbnMuZGVmYXVsdEZ1bGxmaWxsbWVudCl9bWFya0xvc3QoKXt0aGlzLmRlc3RydWN0aW9uVGltZXIuc3RhcnQoKX1yZW5ldygpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lci5yZXNldCgpfX19KTt2YXIgdXEsZHE9cCgoKT0+e3VvKCk7ZncoKTtjcSgpO3VxPWNsYXNze2NvbnN0cnVjdG9yKHQscj17fSl7dGhpcy5pbnRlcmVzdE9iamVjdE1hcD1uZXcgQzMsdGhpcy5pbnRlcmVzdE9ic2VydmFibGU9bmV3IGlyLk9ic2VydmFibGVJbnRha2UsdGhpcy5jb21wYXJpc29uRnVuYz10LHRoaXMub3B0aW9ucz1yfWFzeW5jIGFkZEludGVyZXN0KHQscil7bGV0IGk9dGhpcy5jb21wYXJpc29uRnVuYyh0KSxhLG49bmV3IERmKHRoaXMsdCx0aGlzLmNvbXBhcmlzb25GdW5jLHttYXJrTG9zdEFmdGVyRGVmYXVsdDp0aGlzLm9wdGlvbnMubWFya0xvc3RBZnRlckRlZmF1bHQsZGVmYXVsdEZ1bGxmaWxsbWVudDpyfSksbz0hMTtyZXR1cm4gYXdhaXQgdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5mb3JFYWNoKHM9PnshbyYmcy5jb21wYXJpc29uU3RyaW5nPT09bi5jb21wYXJpc29uU3RyaW5nJiYoY29uc29sZS5sb2coImluZm8iLGBpbnRlcmVzdCBhbHJlYWR5IGV4aXN0cyBmb3IgJHtuLmNvbXBhcmlzb25TdHJpbmd9YCksbz0hMCxhPXMsYS5yZW5ldygpKX0pLGF8fChhPW4sdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5hZGQoYSkpLHRoaXMuaW50ZXJlc3RPYnNlcnZhYmxlLnB1c2goYSksYX1yZW1vdmVJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRPbmVBbmRSZW1vdmVTeW5jKGk9PnQuY29tcGFyaXNvblN0cmluZz09PWkuY29tcGFyaXNvblN0cmluZyl9Y2hlY2tJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmNvbXBhcmlzb25GdW5jKHQpO3JldHVybiB0aGlzLmNoZWNrSW50ZXJlc3RCeVN0cmluZyhyKX1jaGVja0ludGVyZXN0QnlTdHJpbmcodCl7cmV0dXJuISF0aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRTeW5jKGk9PmkuY29tcGFyaXNvblN0cmluZz09PXQpfWluZm9ybUxvc3RJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmZpbmRJbnRlcmVzdCh0KTtyJiZyLm1hcmtMb3N0KCl9ZmluZEludGVyZXN0KHQpe2xldCByPXRoaXMuY29tcGFyaXNvbkZ1bmModCk7cmV0dXJuIHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZmluZFN5bmMoYT0+YS5jb21wYXJpc29uU3RyaW5nPT09cil9fX0pO3ZhciBwcSxDYmU9cCgoKT0+e3VvKCk7cHE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5hcnJheT1bXSx0aGlzLmFycmF5TGltaXQ9dH1hZGRPbmUodCl7dGhpcy5hcnJheS51bnNoaWZ0KHQpLHRoaXMuYXJyYXkubGVuZ3RoPnRoaXMuYXJyYXlMaW1pdCYmKHRoaXMuYXJyYXkubGVuZ3RoPXRoaXMuYXJyYXlMaW1pdCl9YWRkTWFueSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZE9uZShyKX1zZXRMaW1pdCh0KXt0aGlzLmFycmF5TGltaXQ9dCx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWdldEF2ZXJhZ2UoKXtpZih0eXBlb2YgdGhpcy5hcnJheVswXT09Im51bWJlciIpe2xldCB0PTA7Zm9yKGxldCByIG9mIHRoaXMuYXJyYXkpdD10K3I7cmV0dXJuIHQvdGhpcy5hcnJheS5sZW5ndGh9ZWxzZSByZXR1cm4gbnVsbH19fSk7dmFyIGhxLFRiZT1wKCgpPT57dW8oKTtmdygpO2hxPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5yZWZlcmVuY2VPYmplY3RNYXA9bmV3IEMzfWNoZWNrQW5kVHJhY2sodCl7cmV0dXJuIHRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmNoZWNrRm9yT2JqZWN0KHQpPyExOih0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5hZGQodCksITApfX19KTt2YXIgZnEsX2JlPXAoKCk9Pnt1bygpO2ZxPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W119YWRkU3RyaW5nKHQpe3RoaXMuX3N0cmluZ0FycmF5LnB1c2godCksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9YWRkU3RyaW5nQXJyYXkodCl7Zm9yKGxldCByIG9mIHQpdGhpcy5hZGRTdHJpbmcocil9cmVtb3ZlU3RyaW5nKHQpe2ZvcihsZXQgciBpbiB0aGlzLl9zdHJpbmdBcnJheSl0aGlzLl9zdHJpbmdBcnJheVtyXT09PXQmJnRoaXMuX3N0cmluZ0FycmF5LnNwbGljZShwYXJzZUludChyKSwxKTt0aGlzLm5vdGlmeVRyaWdnZXIoKX13aXBlKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5ub3RpZnlUcmlnZ2VyKCl9Y2hlY2tTdHJpbmcodCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5LmluZGV4T2YodCkhPT0tMX1jaGVja01pbmltYXRjaCh0KXtsZXQgcj1uZXcgbWwuU21hcnRNYXRjaCh0KSxpPSExO2ZvcihsZXQgYSBvZiB0aGlzLl9zdHJpbmdBcnJheSlyLm1hdGNoKGEpJiYoaT0hMCk7cmV0dXJuIGl9Y2hlY2tJc0VtcHR5KCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5Lmxlbmd0aD09PTB9Z2V0U3RyaW5nQXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpdC5wdXNoKHIpO3JldHVybiB0fXJlZ2lzdGVyVW50aWxUcnVlKHQscil7bGV0IGk9S2UuZGVmZXIoKTtyZXR1cm4gdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkucHVzaCgoKT0+e2xldCBhPXQodGhpcy5nZXRTdHJpbmdBcnJheSgpKTtyZXR1cm4gYT09PSEwJiYociYmcigpLGkucmVzb2x2ZSgpKSxhfSksdGhpcy5ub3RpZnlUcmlnZ2VyKCksaS5wcm9taXNlfW5vdGlmeVRyaWdnZXIoKXtsZXQgdD10aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5maWx0ZXIocj0+IXIoKSk7dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9dH19fSk7dmFyIG1xLExiZT1wKCgpPT57dW8oKTttcT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JhZ2VBcnJheT1bXSx0aGlzLm9wdGlvbnM9dH1jaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCl7bGV0IHQ9KCk9Pnt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bmV3IE1sLlRpbWVyKHRoaXMub3B0aW9ucy5hZ2dyZWdhdGlvbkludGVydmFsSW5NaWxsaXMpLHRoaXMuYWdncmVnYXRpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e2xldCByPXRoaXMuc3RvcmFnZUFycmF5O2lmKHIubGVuZ3RoPT09MCl7dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGw7cmV0dXJufXRoaXMuc3RvcmFnZUFycmF5PVtdLHQoKSx0aGlzLm9wdGlvbnMuZnVuY3Rpb25Gb3JBZ2dyZWdhdGlvbihyKX0pLHRoaXMuYWdncmVnYXRpb25UaW1lci5zdGFydCgpfTt0aGlzLmFnZ3JlZ2F0aW9uVGltZXJ8fHQoKX1hZGQodCl7dGhpcy5zdG9yYWdlQXJyYXkucHVzaCh0KSx0aGlzLmNoZWNrQWdncmVnYXRpb25TdGF0dXMoKX19fSk7dmFyIGdxLEFiZT1wKCgpPT57dW8oKTtncT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3ltYm9sVHJlZT1uZXcgaHcuZGVmYXVsdH1pbml0aWFsaXplKHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5pdGlhbGl6ZSh0KX1oYXNDaGlsZHJlbih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmhhc0NoaWxkcmVuKHQpfWZpcnN0Q2hpbGQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5maXJzdENoaWxkKHQpfWxhc3RDaGlsZCh0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmxhc3RDaGlsZCh0KX1wcmV2aW91c1NpYmxpbmcodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmcodCl9bmV4dFNpYmxpbmcodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5uZXh0U2libGluZyh0KX1wYXJlbnQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wYXJlbnQodCl9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudCh0KX1wcmVjZWRpbmcodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZWNlZGluZyh0LHIpfWZvbGxvd2luZyh0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuZm9sbG93aW5nKHQscil9Y2hpbGRyZW5Ub0FycmF5KHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlblRvQXJyYXkodCxyKX1hbmNlc3RvcnNUb0FycmF5KHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNUb0FycmF5KHQscil9dHJlZVRvQXJyYXkodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVUb0FycmF5KHQscil9Y2hpbGRyZW5JdGVyYXRvcih0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5JdGVyYXRvcih0LHIpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KX1uZXh0U2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLm5leHRTaWJsaW5nc0l0ZXJhdG9yKCl9YW5jZXN0b3JzSXRlcmF0b3IodCl7dGhpcy5zeW1ib2xUcmVlLmFuY2VzdG9yc0l0ZXJhdG9yKCl9dHJlZUl0ZXJhdG9yKHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS50cmVlSXRlcmF0b3IodCl9aW5kZXgodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbmRleCh0KX1jaGlsZHJlbkNvdW50KHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5Db3VudCh0KX1jb21wYXJlVHJlZVBvc2l0aW9uKHQscil7cmV0dXJuIHRoaXMuY29tcGFyZVRyZWVQb3NpdGlvbih0LHIpfXJlbW92ZSh0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnJlbW92ZSh0KX1pbnNlcnRCZWZvcmUodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEJlZm9yZSh0LHIpfWluc2VydEFmdGVyKHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRBZnRlcih0LHIpfXByZXBlbmRDaGlsZCh0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlcGVuZENoaWxkKHQscil9YXBwZW5kQ2hpbGQodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFwcGVuZENoaWxkKHQscil9dG9Kc29uV2l0aEhpZXJhY2h5KHQpe2xldCByPXRoaXMudHJlZUl0ZXJhdG9yKHQse30pO2ZvcihsZXQgaSBvZiByKWNvbnNvbGUubG9nKGkpfWZyb21Kc29uV2l0aEhpZXJhY2h5KHQpe319fSk7dmFyIGRpPXt9O0ZlKGRpLHtBc3luY0V4ZWN1dGlvblN0YWNrOigpPT5vcSxCYWNrcHJlc3N1cmVkQXJyYXk6KCk9PnNxLEZhc3RNYXA6KCk9PkFmLEludGVyZXN0OigpPT5EZixJbnRlcmVzdE1hcDooKT0+dXEsTGltaXRlZEFycmF5OigpPT5wcSxMb29wVHJhY2tlcjooKT0+aHEsT2JqZWN0TWFwOigpPT5DMyxTdHJpbmdtYXA6KCk9PmZxLFRpbWVkQWdncmVndG9yOigpPT5tcSxUcmVlOigpPT5ncSx1bmk6KCk9PnpiZX0pO3ZhciBfZj1wKCgpPT57a2JlKCk7U2JlKCk7bHEoKTtkcSgpO2NxKCk7Q2JlKCk7VGJlKCk7ZncoKTtfYmUoKTtMYmUoKTtBYmUoKX0pO3ZhciBkMD17fTtGZShkMCx7YXJlVWludDhBcnJheXNFcXVhbDooKT0+aW1yLGFzc2VydFVpbnQ4QXJyYXk6KCk9PmMwLGFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyOigpPT5QYmUsYmFzZTY0VG9TdHJpbmc6KCk9PmNtcixiYXNlNjRUb1VpbnQ4QXJyYXk6KCk9PlJiZSxjb21wYXJlVWludDhBcnJheXM6KCk9PmFtcixjb25jYXRVaW50OEFycmF5czooKT0+cm1yLGdldFVpbnRCRTooKT0+aG1yLGhleFRvVWludDhBcnJheTooKT0+cG1yLGluY2x1ZGVzOigpPT5mbXIsaW5kZXhPZjooKT0+QmJlLGlzVWludDhBcnJheTooKT0+YnEsc3RyaW5nVG9CYXNlNjQ6KCk9PmxtcixzdHJpbmdUb1VpbnQ4QXJyYXk6KCk9PkZiZSx0b1VpbnQ4QXJyYXk6KCk9PnRtcix1aW50OEFycmF5VG9CYXNlNjQ6KCk9Pk9iZSx1aW50OEFycmF5VG9IZXg6KCk9PnVtcix1aW50OEFycmF5VG9TdHJpbmc6KCk9Pk5iZX0pO2Z1bmN0aW9uIERiZShlLHQscil7cmV0dXJuIGU/ZS5jb25zdHJ1Y3Rvcj09PXQ/ITA6WDdyLmNhbGwoZSk9PT1yOiExfWZ1bmN0aW9uIGJxKGUpe3JldHVybiBEYmUoZSxVaW50OEFycmF5LFE3cil9ZnVuY3Rpb24gSzdyKGUpe3JldHVybiBEYmUoZSxBcnJheUJ1ZmZlcixKN3IpfWZ1bmN0aW9uIGVtcihlKXtyZXR1cm4gYnEoZSl8fEs3cihlKX1mdW5jdGlvbiBjMChlKXtpZighYnEoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiBQYmUoZSl7aWYoIWVtcihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYFVpbnQ4QXJyYXlcYCBvciBcYEFycmF5QnVmZmVyXGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiB0bXIoZSl7aWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBuZXcgVWludDhBcnJheShlKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpO3Rocm93IG5ldyBUeXBlRXJyb3IoYFVuc3VwcG9ydGVkIHZhbHVlLCBnb3QgXGAke3R5cGVvZiBlfVxgLmApfWZ1bmN0aW9uIHJtcihlLHQpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7dD8/PWUucmVkdWNlKChhLG4pPT5hK24ubGVuZ3RoLDApO2xldCByPW5ldyBVaW50OEFycmF5KHQpLGk9MDtmb3IobGV0IGEgb2YgZSljMChhKSxyLnNldChhLGkpLGkrPWEubGVuZ3RoO3JldHVybiByfWZ1bmN0aW9uIGltcihlLHQpe2lmKGMwKGUpLGMwKHQpLGU9PT10KXJldHVybiEwO2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXSE9PXRbcl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gYW1yKGUsdCl7YzAoZSksYzAodCk7bGV0IHI9TWF0aC5taW4oZS5sZW5ndGgsdC5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8cjtpKyspe2xldCBhPWVbaV0tdFtpXTtpZihhIT09MClyZXR1cm4gTWF0aC5zaWduKGEpfXJldHVybiBNYXRoLnNpZ24oZS5sZW5ndGgtdC5sZW5ndGgpfWZ1bmN0aW9uIE5iZShlLHQ9InV0ZjgiKXtyZXR1cm4gUGJlKGUpLEViZVt0XT8/PW5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKHQpLEViZVt0XS5kZWNvZGUoZSl9ZnVuY3Rpb24gRWYoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgc3RyaW5nXGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiBGYmUoZSl7cmV0dXJuIEVmKGUpLG5tci5lbmNvZGUoZSl9ZnVuY3Rpb24gb21yKGUpe3JldHVybiBlLnJlcGxhY2VBbGwoIisiLCItIikucmVwbGFjZUFsbCgiLyIsIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBzbXIoZSl7bGV0IHQ9ZS5yZXBsYWNlQWxsKCItIiwiKyIpLnJlcGxhY2VBbGwoIl8iLCIvIikscj0oNC10Lmxlbmd0aCU0KSU0O3JldHVybiB0KyI9Ii5yZXBlYXQocil9ZnVuY3Rpb24gT2JlKGUse3VybFNhZmU6dD0hMX09e30pe2MwKGUpO2xldCByPSIiO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSs9JGJlKXtsZXQgYT1lLnN1YmFycmF5KGksaSskYmUpO3IrPWdsb2JhbFRoaXMuYnRvYShTdHJpbmcuZnJvbUNvZGVQb2ludC5hcHBseSh2b2lkIDAsYSkpfXJldHVybiB0P29tcihyKTpyfWZ1bmN0aW9uIFJiZShlKXtyZXR1cm4gRWYoZSksVWludDhBcnJheS5mcm9tKGdsb2JhbFRoaXMuYXRvYihzbXIoZSkpLHQ9PnQuY29kZVBvaW50QXQoMCkpfWZ1bmN0aW9uIGxtcihlLHt1cmxTYWZlOnQ9ITF9PXt9KXtyZXR1cm4gRWYoZSksT2JlKEZiZShlKSx7dXJsU2FmZTp0fSl9ZnVuY3Rpb24gY21yKGUpe3JldHVybiBFZihlKSxOYmUoUmJlKGUpKX1mdW5jdGlvbiB1bXIoZSl7YzAoZSk7bGV0IHQ9IiI7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspdCs9ZG1yW2Vbcl1dO3JldHVybiB0fWZ1bmN0aW9uIHBtcihlKXtpZihFZihlKSxlLmxlbmd0aCUyIT09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSGV4IHN0cmluZyBsZW5ndGguIik7bGV0IHQ9ZS5sZW5ndGgvMixyPW5ldyBVaW50OEFycmF5KHQpO2ZvcihsZXQgaT0wO2k8dDtpKyspe2xldCBhPUliZVtlW2kqMl1dLG49SWJlW2VbaSoyKzFdXTtpZihhPT09dm9pZCAwfHxuPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBIZXggY2hhcmFjdGVyIGVuY291bnRlcmVkIGF0IHBvc2l0aW9uICR7aSoyfWApO3JbaV09YTw8NHxufXJldHVybiByfWZ1bmN0aW9uIGhtcihlKXtsZXR7Ynl0ZUxlbmd0aDp0fT1lO2lmKHQ9PT02KXJldHVybiBlLmdldFVpbnQxNigwKSoyKiozMitlLmdldFVpbnQzMigyKTtpZih0PT09NSlyZXR1cm4gZS5nZXRVaW50OCgwKSoyKiozMitlLmdldFVpbnQzMigxKTtpZih0PT09NClyZXR1cm4gZS5nZXRVaW50MzIoMCk7aWYodD09PTMpcmV0dXJuIGUuZ2V0VWludDgoMCkqMioqMTYrZS5nZXRVaW50MTYoMSk7aWYodD09PTIpcmV0dXJuIGUuZ2V0VWludDE2KDApO2lmKHQ9PT0xKXJldHVybiBlLmdldFVpbnQ4KDApfWZ1bmN0aW9uIEJiZShlLHQpe2xldCByPWUubGVuZ3RoLGk9dC5sZW5ndGg7aWYoaT09PTB8fGk+cilyZXR1cm4tMTtsZXQgYT1yLWk7Zm9yKGxldCBuPTA7bjw9YTtuKyspe2xldCBvPSEwO2ZvcihsZXQgcz0wO3M8aTtzKyspaWYoZVtuK3NdIT09dFtzXSl7bz0hMTticmVha31pZihvKXJldHVybiBufXJldHVybi0xfWZ1bmN0aW9uIGZtcihlLHQpe3JldHVybiBCYmUoZSx0KSE9PS0xfXZhciBYN3IsUTdyLEo3cixFYmUsbm1yLCRiZSxkbXIsSWJlLEhiZT1wKCgpPT57WDdyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsUTdyPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixKN3I9IltvYmplY3QgQXJyYXlCdWZmZXJdIjtFYmU9e3V0Zjg6bmV3IGdsb2JhbFRoaXMuVGV4dERlY29kZXIoInV0ZjgiKX07bm1yPW5ldyBnbG9iYWxUaGlzLlRleHRFbmNvZGVyOyRiZT02NTUzNTtkbXI9QXJyYXkuZnJvbSh7bGVuZ3RoOjI1Nn0sKGUsdCk9PnQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSk7SWJlPXswOjAsMToxLDI6MiwzOjMsNDo0LDU6NSw2OjYsNzo3LDg6OCw5OjksYToxMCxiOjExLGM6MTIsZDoxMyxlOjE0LGY6MTUsQToxMCxCOjExLEM6MTIsRDoxMyxFOjE0LEY6MTV9fSk7dmFyIHFiZT1wKCgpPT57SGJlKCl9KTt2YXIgWjU9e307RmUoWjUse2Jhc2U2NFRvVWludDhBcnJheTooKT0+dm1yLGVuc3VyZVB1cmVVaW50OEFycmF5OigpPT53bXIsaXNCdWZmZXJMaWtlOigpPT55bXIsaXNVaW50OEFycmF5OigpPT54bXIsdUludDhBcnJheUV4dHJhczooKT0+Z21yLHVJbnQ4QXJyYXlUb0Jhc2U2NDooKT0+Ym1yfSk7ZnVuY3Rpb24gYm1yKGUpe3JldHVybiBkMC51aW50OEFycmF5VG9CYXNlNjQoZSl9ZnVuY3Rpb24gdm1yKGUpe3JldHVybiBkMC5iYXNlNjRUb1VpbnQ4QXJyYXkoZSl9ZnVuY3Rpb24geW1yKGUpe3JldHVybiBlJiZ0eXBlb2YgZS5ieXRlTGVuZ3RoPT0ibnVtYmVyIj8hMDp0eXBlb2YgQnVmZmVyPCJ1IiYmQnVmZmVyLmlzQnVmZmVyP0J1ZmZlci5pc0J1ZmZlcihlKTohMX1mdW5jdGlvbiB3bXIoZSl7bGV0IHQ9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpO3JldHVybiB0LnNldChlKSx0fXZhciBnbXIseG1yLGpiZT1wKCgpPT57cWJlKCk7Z21yPWQwO3htcj1lPT5kMC5pc1VpbnQ4QXJyYXkoZSl9KTt2YXIgJGY9cCgoKT0+e3NhKCl9KTt2YXIgSWYsbXc9cCgoKT0+eyRmKCk7SWY9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLmd1YXJkRnVuY3Rpb249dCx0aGlzLm9wdGlvbnM9cn1hc3luYyBleGVjKHQpe3JldHVybiBhd2FpdCB0aGlzLmd1YXJkRnVuY3Rpb24odCl9YXN5bmMgZ2V0RmFpbGVkSGludCh0KXtyZXR1cm4gYXdhaXQgdGhpcy5leGVjKHQpP251bGw6dGhpcy5vcHRpb25zLmZhaWxlZEhpbnR9fX0pO3ZhciBQZix2cT1wKCgpPT57JGYoKTtQZj1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMubmFtZT0iR3VhcmRFcnJvciJ9fX0pO3ZhciBOZix4cT1wKCgpPT57JGYoKTttdygpO05mPWNsYXNzIGV4dGVuZHMgSWZ7Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoYXN5bmMgcj0+dGhpcy5hbGxHdWFyZHNQYXNzKHIpKSx0aGlzLmd1YXJkcz10fWFzeW5jIGV4ZWNBbGxXaXRoRGF0YSh0LHI9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7bGV0IGk9W107Zm9yKGxldCBuIG9mIHRoaXMuZ3VhcmRzKXtsZXQgbz1uLmV4ZWModCk7aWYoci5tb2RlPT09InNlcmlhbCImJmF3YWl0IG8saS5wdXNoKG8pLHIuc3RvcE9uRmFpbCYmIWF3YWl0IG8pcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGkpfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChpKX1hc3luYyBhbGxHdWFyZHNQYXNzKHQscj17bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEodCxyKSkuZXZlcnkoYT0+YSl9YXN5bmMgYW55R3VhcmRzUGFzcyh0KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEodCx7bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KSkuc29tZShpPT5pKX1nZXRGYWlsZWRIaW50KHQpe2ZvcihsZXQgciBvZiB0aGlzLmd1YXJkcyl7bGV0IGk9ci5nZXRGYWlsZWRIaW50KHQpO2lmKGkpcmV0dXJuIGl9fX19KTt2YXIgRmY9e307RmUoRmYse0d1YXJkOigpPT5JZixHdWFyZEVycm9yOigpPT5QZixHdWFyZFNldDooKT0+TmYscGFzc0d1YXJkc09yUmVqZWN0OigpPT5NbXJ9KTt2YXIgTW1yLFZiZT1wKCgpPT57JGYoKTttdygpO3ZxKCk7bXcoKTt4cSgpO3hxKCk7dnEoKTtNbXI9YXN5bmMoZSx0KT0+e2xldCByPW5ldyBOZih0KTtpZighYXdhaXQgci5hbGxHdWFyZHNQYXNzKGUpKXtsZXQgYT1hd2FpdCByLmdldEZhaWxlZEhpbnQoZSk7dGhyb3cgbmV3IFBmKGBHdWFyZHMgZmFpbGVkOgoke2F9CiAgICBgKX19fSk7dmFyIFg1LHlxPXAoKCk9PntYNT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycz1bXSx0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzPVtdLHRoaXMuZXJyb3JJbnRlcmNlcHRvcnM9W119YWRkUmVxdWVzdEludGVyY2VwdG9yKHQpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycy5wdXNoKHQpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IodCl7dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5wdXNoKHQpfWFkZEVycm9ySW50ZXJjZXB0b3IodCl7dGhpcy5lcnJvckludGVyY2VwdG9ycy5wdXNoKHQpfXJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcih0KXtsZXQgcj10aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuaW5kZXhPZih0KTtyPi0xJiZ0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuc3BsaWNlKHIsMSl9cmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcih0KXtsZXQgcj10aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmluZGV4T2YodCk7cj4tMSYmdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5zcGxpY2UociwxKX1yZW1vdmVFcnJvckludGVyY2VwdG9yKHQpe2xldCByPXRoaXMuZXJyb3JJbnRlcmNlcHRvcnMuaW5kZXhPZih0KTtyPi0xJiZ0aGlzLmVycm9ySW50ZXJjZXB0b3JzLnNwbGljZShyLDEpfWNsZWFyQWxsKCl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzPVtdLHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnM9W10sdGhpcy5lcnJvckludGVyY2VwdG9ycz1bXX1hc3luYyBwcm9jZXNzUmVxdWVzdCh0KXtsZXQgcj10O2ZvcihsZXQgaSBvZiB0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihhIGluc3RhbmNlb2YgRXJyb3I/YTpuZXcgRXJyb3IoU3RyaW5nKGEpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc1Jlc3BvbnNlKHQpe2xldCByPXQ7Zm9yKGxldCBpIG9mIHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihhIGluc3RhbmNlb2YgRXJyb3I/YTpuZXcgRXJyb3IoU3RyaW5nKGEpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc0Vycm9yKHQpe2xldCByPXQ7Zm9yKGxldCBpIG9mIHRoaXMuZXJyb3JJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXtyPWEgaW5zdGFuY2VvZiBFcnJvcj9hOm5ldyBFcnJvcihTdHJpbmcoYSkpfXJldHVybiByfWdldEludGVyY2VwdG9yQ291bnRzKCl7cmV0dXJue3JlcXVlc3Q6dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLmxlbmd0aCxyZXNwb25zZTp0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmxlbmd0aCxlcnJvcjp0aGlzLmVycm9ySW50ZXJjZXB0b3JzLmxlbmd0aH19fX0pO3ZhciBVYmU9cCgoKT0+e3NhKCl9KTt2YXIgV2JlPXAoKCk9Pnt9KTt2YXIgd3EsR2JlPXAoKCk9PntVYmUoKTtXYmUoKTt3cT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZSh0KXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0Lm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKHQud2ViVXJsQXJnLHQuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZSh0LHIpe2lmKCF0aGlzLmlzTm9kZSl7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBub2RlIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7dH0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCBpPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHt0fScpYCkoKTtyZXR1cm4gciYmYXdhaXQgcihpKSxpfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUodCxyKXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKHQpKXJldHVybiByKCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2godCk7bGV0IGk9S2UuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKHQpLGkucmVzb2x2ZSgpO2Vsc2V7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5vbmxvYWQ9KCk9PntpLnJlc29sdmUoKX0sYS5zcmM9dCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpfXJldHVybiBhd2FpdCBpLnByb21pc2UscigpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBwcm9jZXNzPCJ1Ij8ibm9kZSI6ImJyb3dzZXIifWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4hdGhpcy5pc05vZGV9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBub2RlVmVyc2lvbigpe3JldHVybiBwcm9jZXNzLnZlcnNpb259Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciAkbj17fTtGZSgkbix7U21hcnRlbnY6KCk9PndxfSk7dmFyIFE1PXAoKCk9PntHYmUoKX0pO3ZhciBNcSxKNT1wKCgpPT57TXE9ZXIodXYoKSwxKX0pO3ZhciBndz17fTtGZShndyx7Y3JlYXRlQ3J5cHRvUmFuZG9tU3RyaW5nOigpPT5fbXIsY3JlYXRlUmFuZG9tU3RyaW5nOigpPT5UbXJ9KTt2YXIgem1yLENtcixUbXIsX21yLFliZT1wKCgpPT57SjUoKTt6bXI9KGUsdCk9PntpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuY3J5cHRvJiZnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2xldCByPXQtZSxpPW5ldyBVaW50MzJBcnJheSgxKTtyZXR1cm4gZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGkpLGUraVswXSVyfWVsc2UgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoodC1lKSkrZX0sQ21yPShlLHQscik9PntsZXQgaT17QToiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLGE6ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwwOiIwMTIzNDU2Nzg5IiwiISI6IiFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/IiwiKiI6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8ifSxhPWU7dCYmdD5lLmxlbmd0aD9hPWUucmVwZWF0KE1hdGguY2VpbCh0L2UubGVuZ3RoKSkuc2xpY2UoMCx0KTp0JiYoYT1lLnNsaWNlKDAsdCkpO2xldCBuPSIiO2ZvcihsZXQgbyBvZiBhKWlmKGlbb10pe2xldCBzPWlbb10sbD16bXIoMCxzLmxlbmd0aCk7bis9c1tsXX1lbHNlIG4rPW87cmV0dXJuIG59LFRtcj0oZSx0LHIpPT5DbXIoZSx0LHIpLF9tcj0oKT0+TXEudW5pKCl9KTt2YXIgYnc9e307RmUoYncse21ha2VFbnZPYmplY3Q6KCk9Pkxtcn0pO3ZhciBMbXIsWmJlPXAoKCk9PntKNSgpO0xtcj1mdW5jdGlvbihlKXtsZXQgdD17fSxyPS8oLiopPSguKikvO2lmKHR5cGVvZiBlPCJ1Iilmb3IobGV0IGkgaW4gZSl7bGV0IGE9ci5leGVjKGVbaV0pO3RbYVsxXV09YVsyXX1yZXR1cm4gdH19KTt2YXIgdnc9e307RmUodncse2luZGVudDooKT0+RG1yLGluZGVudFdpdGhQcmVmaXg6KCk9PkVtcixub3JtYWxpemU6KCk9PiRtcn0pO3ZhciBrcSxTcSxBbXIsRG1yLEVtciwkbXIsWGJlPXAoKCk9PntKNSgpO2txPWU9PntsZXQgdD1lLnNwbGl0KGAKYCk7cmV0dXJuIEFtcih0KX0sU3E9ZT0+e2xldCB0PSIiO2ZvcihsZXQgciBvZiBlKXQ9dCtyK2AKYDtyZXR1cm4gdH0sQW1yPWU9PntsZXQgdD0vXltcc10qJC87cmV0dXJuIHQudGVzdChlWzBdKSYmZS5zaGlmdCgpLHQudGVzdChlW2UubGVuZ3RoLTFdKSYmZS5wb3AoKSxlfSxEbXI9KGUsdCk9PntsZXQgcj1rcShlKTtmb3IobGV0IGEgb2YgcilhPSIgIi5yZXBlYXQodCkrYTtyZXR1cm4gU3Eocil9LEVtcj0oZSx0KT0+e2xldCByLGk9a3EoZSksYT1bXTtmb3IobGV0IG4gb2YgaSlhLnB1c2godCtuKTtyZXR1cm4gcj1TcShhKSxyfSwkbXI9ZT0+e2xldCB0LHI9a3EoZSksaSxhPS9eKFxzKikvLG49L14oXHMqKSQvO2ZvcihsZXQgcyBvZiByKXtsZXQgbD1hLmV4ZWMocylbMV07KHR5cGVvZiBpPiJ1Inx8bC5sZW5ndGg8aSkmJiFuLnRlc3QocykmJihpPWwubGVuZ3RoKX1sZXQgbz1bXTtmb3IobGV0IHMgb2YgcilvLnB1c2gocy5zdWJzdHIoaSkpO3JldHVybiB0PVNxKG8pLHR9fSk7dmFyIHh3PXt9O0ZlKHh3LHtyZXBsYWNlQWxsOigpPT5RYmUsc3RhbmRhcmQ6KCk9PlBtcn0pO3ZhciBRYmUsSW1yLFBtcixKYmU9cCgoKT0+e1FiZT0oZSx0LHIpPT5lLnJlcGxhY2UobmV3IFJlZ0V4cCh0LCJnIiksciksSW1yPWU9PntsZXQgdD1lLnNwbGl0KGAKYCkscj0xLzA7Zm9yKGxldCBpIG9mIHQpaWYoaS50cmltKCkubGVuZ3RoPjApe2xldCBhPWkubWF0Y2goL14oXHMqKS8pO2EmJihyPU1hdGgubWluKHIsYVsxXS5sZW5ndGgpKX1yZXR1cm4gcj09PTEvMHx8cj09PTA/ZTp0Lm1hcChpPT5pLmxlbmd0aD49cj9pLnNsaWNlKHIpOmkpLmpvaW4oYApgKX0sUG1yPShlLHQpPT57bGV0IHI9ZTtyZXR1cm4oIXR8fHQuc3RyaXBJbmRlbnQpJiYocj1JbXIocikpLCghdHx8dC5ub3JtYWxpemVOZXdsaW5lKSYmKHI9ci5yZXBsYWNlKC9cclxuL2csYApgKSksKCF0fHx0LnJlcGxhY2VUYWJzKSYmKHI9UWJlKHIsIgkvIiwiICIpKSwoIXR8fHQuc3RyaXBMZWFkaW5nVHJhaWxpbmdFbXB0eUxpbmVzKSYmKHI9ci5yZXBsYWNlKC9eXHMqW1xyXG5dL2dtLCIiKS5yZXBsYWNlKC9ccypbXHJcbl0kL2dtLCIiKSksKCF0fHx0LnN0cmlwQWxsRW1wdHlMaW5lcykmJihyPXIucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikpLHJ9fSk7dmFyIHpxLHl3LEs1LENxPXAoKCk9Pnt6cT17ZW5jb2RlOmU9PntpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20oZSwidXRmOCIpLnRvU3RyaW5nKCJiYXNlNjQiKTtpZih0eXBlb2YgYnRvYTwidSIpe2xldCB0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKSxyPUFycmF5LmZyb20odCxpPT5TdHJpbmcuZnJvbUNoYXJDb2RlKGkpKS5qb2luKCIiKTtyZXR1cm4gYnRvYShyKX1lbHNle2xldCB0PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixyPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKSxpPSIiLGE9MDtmb3IoO2E8ci5sZW5ndGg7KXtsZXQgbj1yW2ErK10sbz1hPHIubGVuZ3RoP3JbYSsrXTowLHM9YTxyLmxlbmd0aD9yW2ErK106MCxsPW48PDE2fG88PDh8cztpKz10LmNoYXJBdChsPj4xOCY2MyksaSs9dC5jaGFyQXQobD4+MTImNjMpLGkrPWEtMjxyLmxlbmd0aD90LmNoYXJBdChsPj42JjYzKToiPSIsaSs9YS0xPHIubGVuZ3RoP3QuY2hhckF0KGwmNjMpOiI9In1yZXR1cm4gaX19LGRlY29kZTplPT57bGV0IHQ9ZS5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKS5wYWRFbmQoZS5sZW5ndGgrKDQtZS5sZW5ndGglNCklNCwiPSIpO2lmKHR5cGVvZiBCdWZmZXI8InUiKXJldHVybiBCdWZmZXIuZnJvbSh0LCJiYXNlNjQiKS50b1N0cmluZygidXRmOCIpO2lmKHR5cGVvZiBhdG9iPCJ1Iil7bGV0IHI9YXRvYih0KSxpPW5ldyBVaW50OEFycmF5KHIubGVuZ3RoKTtmb3IobGV0IGE9MDthPHIubGVuZ3RoO2ErKylpW2FdPXIuY2hhckNvZGVBdChhKTtyZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGkpfWVsc2V7bGV0IHI9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGk9W10sYT0wO2Zvcig7YTx0Lmxlbmd0aDspe2xldCBuPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxvPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxzPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxsPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxjPW48PDE4fG88PDEyfHM8PDZ8bDtpLnB1c2goYz4+MTYmMjU1KSxzIT09NjQmJmkucHVzaChjPj44JjI1NSksbCE9PTY0JiZpLnB1c2goYyYyNTUpfXJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoaSkpfX19LHl3PWNsYXNze2NvbnN0cnVjdG9yKHQscil7c3dpdGNoKHIpe2Nhc2Uic3RyaW5nIjp0aGlzLnJlZlN0cmluZz10O2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnJlZlN0cmluZz1LNS5kZWNvZGUodCk7YnJlYWs7Y2FzZSJiYXNlNjR1cmkiOnRoaXMucmVmU3RyaW5nPUs1LmRlY29kZSh0KX19Z2V0IHNpbXBsZVN0cmluZygpe3JldHVybiB0aGlzLnJlZlN0cmluZ31nZXQgYmFzZTY0U3RyaW5nKCl7cmV0dXJuIEs1LmVuY29kZSh0aGlzLnJlZlN0cmluZyl9Z2V0IGJhc2U2NFVyaVN0cmluZygpe3JldHVybiBLNS5lbmNvZGVVcmkodGhpcy5yZWZTdHJpbmcpfX0sSzU9e2VuY29kZTplPT56cS5lbmNvZGUoZSksZW5jb2RlVXJpOmU9PnpxLmVuY29kZShlKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIiksZGVjb2RlOmU9PnpxLmRlY29kZShlKSxpc0Jhc2U2NDplPT4vXihbQS1aYS16MC05Ky9dezR9KSooW0EtWmEtejAtOSsvXXszfT18W0EtWmEtejAtOSsvXXsyfT09KT8kLy50ZXN0KGUpfX0pO3ZhciB3dz17fTtGZSh3dyx7aXNCYXNlNjQ6KCk9PkZtcixpc1V0Zjg6KCk9Pk5tcn0pO3ZhciBObXIsRm1yLEtiZT1wKCgpPT57SjUoKTtDcSgpO05tcj1lPT57bGV0IHI9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGUpLGk9MDtmb3IoO2k8ci5sZW5ndGg7KXtpZihyW2ldPT09OXx8cltpXT09PTEwfHxyW2ldPT09MTN8fDMyPD1yW2ldJiZyW2ldPD0xMjYpe2krPTE7Y29udGludWV9aWYoMTk0PD1yW2ldJiZyW2ldPD0yMjMmJjEyODw9cltpKzFdJiZyW2krMV08PTE5MSl7aSs9Mjtjb250aW51ZX1pZihyW2ldPT09MjI0JiYxNjA8PXJbaSsxXSYmcltpKzFdPD0xOTEmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MXx8KDIyNTw9cltpXSYmcltpXTw9MjM2fHxyW2ldPT09MjM4fHxyW2ldPT09MjM5KSYmMTI4PD1yW2krMV0mJnJbaSsxXTw9MTkxJiYxMjg8PXJbaSsyXSYmcltpKzJdPD0xOTF8fHJbaV09PT0yMzcmJjEyODw9cltpKzFdJiZyW2krMV08PTE1OSYmMTI4PD1yW2krMl0mJnJbaSsyXTw9MTkxKXtpKz0zO2NvbnRpbnVlfWlmKHJbaV09PT0yNDAmJjE0NDw9cltpKzFdJiZyW2krMV08PTE5MSYmMTI4PD1yW2krMl0mJnJbaSsyXTw9MTkxJiYxMjg8PXJbaSszXSYmcltpKzNdPD0xOTF8fDI0MTw9cltpXSYmcltpXTw9MjQzJiYxMjg8PXJbaSsxXSYmcltpKzFdPD0xOTEmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MSYmMTI4PD1yW2krM10mJnJbaSszXTw9MTkxfHxyW2ldPT09MjQ0JiYxMjg8PXJbaSsxXSYmcltpKzFdPD0xNDMmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MSYmMTI4PD1yW2krM10mJnJbaSszXTw9MTkxKXtpKz00O2NvbnRpbnVlfXJldHVybiExfXJldHVybiEwfSxGbXI9ZT0+e2xldCB0PS9bXkEtWjAtOStcLz1dL2kscj1lLmxlbmd0aDtpZighcnx8ciU0IT09MHx8dC50ZXN0KGUpKXJldHVybiExO2xldCBpPWUuaW5kZXhPZigiPSIpO3JldHVybiBpPT09LTF8fGk9PT1yLTF8fGk9PT1yLTImJmVbci0xXT09PSI9In19KTt2YXIgTXcsZXZlPXAoKCk9PntNdz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnByb3RvY29sPXRoaXMuX3Byb3RvY29sUmVnZXgodCksdGhpcy5wcm90b2NvbHx8KHQ9YGh0dHBzOi8vJHt0fWApLHRoaXMubm9kZVBhcnNlZFVybD1uZXcgVVJMKHQpLHRoaXMucG9ydD10aGlzLm5vZGVQYXJzZWRVcmwucG9ydDtsZXQgcj10aGlzLl9kb21haW5SZWdleCh0LnJlcGxhY2UodGhpcy5ub2RlUGFyc2VkVXJsLnBhdGhuYW1lLCIiKSk7dGhpcy5mdWxsTmFtZT0iIjtmb3IobGV0IGk9MTtpPD01O2krKylpZihyW2ktMV0pe2xldCBhPXJbaS0xXTt0aGlzWyJsZXZlbCIraS50b1N0cmluZygpXT1hLHRoaXMuZnVsbE5hbWU9PT0iIj90aGlzLmZ1bGxOYW1lPWE6dGhpcy5mdWxsTmFtZT1hKyIuIit0aGlzLmZ1bGxOYW1lfWVsc2UgdGhpc1sibGV2ZWwiK2kudG9TdHJpbmcoKV09dm9pZCAwO3RoaXMuem9uZU5hbWU9dGhpcy5sZXZlbDIrIi4iK3RoaXMubGV2ZWwxLHRoaXMudG9wTGV2ZWw9dGhpcy5sZXZlbDEsdGhpcy5kb21haW5OYW1lPXRoaXMubGV2ZWwyLHRoaXMuc3ViRG9tYWluPXRoaXMubGV2ZWwzfV9kb21haW5SZWdleCh0KXtsZXQgaT0vKFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0kLy5leGVjKHQpO3JldHVybiBpLnJldmVyc2UoKSxpLnBvcCgpLGkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuIT09IiJ9KX1fcHJvdG9jb2xSZWdleCh0KXtsZXQgaT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWModCk7aWYoaSlyZXR1cm4gaVsxXX1fcG9ydFJlZ2V4KHQpe2xldCBpPS9eKFthLXpBLVowLTldKik6XC9cLy8uZXhlYyh0KTtpZihpKXJldHVybiBpWzFdfX19KTt2YXIga3csT21yLHR2ZSxydmU9cCgoKT0+e0o1KCk7a3c9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXtsZXQgaT1PbXIodCk7dGhpcy5ob3N0PWlbMV0sdGhpcy51c2VyPWlbMl0sdGhpcy5yZXBvPWlbM10sdGhpcy5hY2Nlc3NUb2tlbj1yLHRoaXMuc3NoVXJsPXR2ZSh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJzc2giKSx0aGlzLmh0dHBzVXJsPXR2ZSh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJodHRwcyIpfX0sT21yPWZ1bmN0aW9uKGUpe3JldHVybi8oW2EtekEtWjAtOVwtX1wuXSopKD86XC98XDopKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvKShbYS16QS1aMC05XC1fXC5dKikoPzpcLmdpdCkvLmV4ZWMoZSl9LHR2ZT1mdW5jdGlvbihlLHQscixpPSIiLGEpe2xldCBuO3N3aXRjaChpIT09IiImJihpPWkrIkAiKSxhKXtjYXNlImh0dHBzIjpuPSJodHRwczovLyIraStlKyIvIit0KyIvIityKyIuZ2l0IjticmVhaztjYXNlInNzaCI6bj0iZ2l0QCIrZSsiOiIrdCsiLyIrcisiLmdpdCI7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJMaW5rIFR5cGUgIithKyIgbm90IGtub3duIik7YnJlYWt9cmV0dXJuIG59fSk7dmFyIGdhPXt9O0ZlKGdhLHtCYXNlNjQ6KCk9Pnl3LERvbWFpbjooKT0+TXcsR2l0UmVwbzooKT0+a3csYmFzZTY0OigpPT5LNSxjcmVhdGU6KCk9Pmd3LGRvY2tlcjooKT0+YncsaW5kZW50OigpPT52dyxub3JtYWxpemU6KCk9Pnh3LHR5cGU6KCk9Pnd3fSk7dmFyIE9mPXAoKCk9PntZYmUoKTtaYmUoKTtYYmUoKTtKYmUoKTtLYmUoKTtDcSgpO2V2ZSgpO3J2ZSgpfSk7dmFyIEhxPWplKChIZixpdSk9Pnt2YXIgUm1yPTIwMCxpdmU9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLGF2ZT05MDA3MTk5MjU0NzQwOTkxLFRxPSJbb2JqZWN0IEFyZ3VtZW50c10iLEJtcj0iW29iamVjdCBBcnJheV0iLG52ZT0iW29iamVjdCBCb29sZWFuXSIsb3ZlPSJbb2JqZWN0IERhdGVdIixIbXI9IltvYmplY3QgRXJyb3JdIixfcT0iW29iamVjdCBGdW5jdGlvbl0iLHN2ZT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLFN3PSJbb2JqZWN0IE1hcF0iLGx2ZT0iW29iamVjdCBOdW1iZXJdIixMcT0iW29iamVjdCBPYmplY3RdIixjdmU9IltvYmplY3QgUHJvbWlzZV0iLGR2ZT0iW29iamVjdCBSZWdFeHBdIix6dz0iW29iamVjdCBTZXRdIix1dmU9IltvYmplY3QgU3RyaW5nXSIscHZlPSJbb2JqZWN0IFN5bWJvbF0iLEFxPSJbb2JqZWN0IFdlYWtNYXBdIixodmU9IltvYmplY3QgQXJyYXlCdWZmZXJdIixDdz0iW29iamVjdCBEYXRhVmlld10iLGZ2ZT0iW29iamVjdCBGbG9hdDMyQXJyYXldIixtdmU9IltvYmplY3QgRmxvYXQ2NEFycmF5XSIsZ3ZlPSJbb2JqZWN0IEludDhBcnJheV0iLGJ2ZT0iW29iamVjdCBJbnQxNkFycmF5XSIsdnZlPSJbb2JqZWN0IEludDMyQXJyYXldIix4dmU9IltvYmplY3QgVWludDhBcnJheV0iLHl2ZT0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLHd2ZT0iW29iamVjdCBVaW50MTZBcnJheV0iLE12ZT0iW29iamVjdCBVaW50MzJBcnJheV0iLHFtcj0vW1xcXiQuKis/KClbXF17fXxdL2csam1yPS9cdyokLyxWbXI9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sVW1yPS9eKD86MHxbMS05XVxkKikkLyxpMT17fTtpMVtUcV09aTFbQm1yXT1pMVtodmVdPWkxW0N3XT1pMVtudmVdPWkxW292ZV09aTFbZnZlXT1pMVttdmVdPWkxW2d2ZV09aTFbYnZlXT1pMVt2dmVdPWkxW1N3XT1pMVtsdmVdPWkxW0xxXT1pMVtkdmVdPWkxW3p3XT1pMVt1dmVdPWkxW3B2ZV09aTFbeHZlXT1pMVt5dmVdPWkxW3d2ZV09aTFbTXZlXT0hMCxpMVtIbXJdPWkxW19xXT1pMVtBcV09ITE7dmFyIFdtcj10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsR21yPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsa2w9V21yfHxHbXJ8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksa3ZlPXR5cGVvZiBIZj09Im9iamVjdCImJkhmJiYhSGYubm9kZVR5cGUmJkhmLFN2ZT1rdmUmJnR5cGVvZiBpdT09Im9iamVjdCImJml1JiYhaXUubm9kZVR5cGUmJml1LFltcj1TdmUmJlN2ZS5leHBvcnRzPT09a3ZlO2Z1bmN0aW9uIFptcihlLHQpe3JldHVybiBlLnNldCh0WzBdLHRbMV0pLGV9ZnVuY3Rpb24gWG1yKGUsdCl7cmV0dXJuIGUuYWRkKHQpLGV9ZnVuY3Rpb24gUW1yKGUsdCl7Zm9yKHZhciByPS0xLGk9ZT9lLmxlbmd0aDowOysrcjxpJiZ0KGVbcl0scixlKSE9PSExOyk7cmV0dXJuIGV9ZnVuY3Rpb24gSm1yKGUsdCl7Zm9yKHZhciByPS0xLGk9dC5sZW5ndGgsYT1lLmxlbmd0aDsrK3I8aTspZVthK3JdPXRbcl07cmV0dXJuIGV9ZnVuY3Rpb24genZlKGUsdCxyLGkpe3ZhciBhPS0xLG49ZT9lLmxlbmd0aDowO2ZvcihpJiZuJiYocj1lWysrYV0pOysrYTxuOylyPXQocixlW2FdLGEsZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gS21yKGUsdCl7Zm9yKHZhciByPS0xLGk9QXJyYXkoZSk7KytyPGU7KWlbcl09dChyKTtyZXR1cm4gaX1mdW5jdGlvbiBlOXIoZSx0KXtyZXR1cm4gZT8uW3RdfWZ1bmN0aW9uIEN2ZShlKXt2YXIgdD0hMTtpZihlIT1udWxsJiZ0eXBlb2YgZS50b1N0cmluZyE9ImZ1bmN0aW9uIil0cnl7dD0hIShlKyIiKX1jYXRjaHt9cmV0dXJuIHR9ZnVuY3Rpb24gVHZlKGUpe3ZhciB0PS0xLHI9QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGksYSl7clsrK3RdPVthLGldfSkscn1mdW5jdGlvbiBEcShlLHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZSh0KHIpKX19ZnVuY3Rpb24gX3ZlKGUpe3ZhciB0PS0xLHI9QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3JbKyt0XT1pfSkscn12YXIgdDlyPUFycmF5LnByb3RvdHlwZSxyOXI9RnVuY3Rpb24ucHJvdG90eXBlLFR3PU9iamVjdC5wcm90b3R5cGUsRXE9a2xbIl9fY29yZS1qc19zaGFyZWRfXyJdLEx2ZT0oZnVuY3Rpb24oKXt2YXIgZT0vW14uXSskLy5leGVjKEVxJiZFcS5rZXlzJiZFcS5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIGU/IlN5bWJvbChzcmMpXzEuIitlOiIifSkoKSxBdmU9cjlyLnRvU3RyaW5nLHUwPVR3Lmhhc093blByb3BlcnR5LF93PVR3LnRvU3RyaW5nLGk5cj1SZWdFeHAoIl4iK0F2ZS5jYWxsKHUwKS5yZXBsYWNlKHFtciwiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKSxEdmU9WW1yP2tsLkJ1ZmZlcjp2b2lkIDAsRXZlPWtsLlN5bWJvbCwkdmU9a2wuVWludDhBcnJheSxhOXI9RHEoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCksbjlyPU9iamVjdC5jcmVhdGUsbzlyPVR3LnByb3BlcnR5SXNFbnVtZXJhYmxlLHM5cj10OXIuc3BsaWNlLEl2ZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGw5cj1EdmU/RHZlLmlzQnVmZmVyOnZvaWQgMCxjOXI9RHEoT2JqZWN0LmtleXMsT2JqZWN0KSwkcT1ydShrbCwiRGF0YVZpZXciKSxSZj1ydShrbCwiTWFwIiksSXE9cnUoa2wsIlByb21pc2UiKSxQcT1ydShrbCwiU2V0IiksTnE9cnUoa2wsIldlYWtNYXAiKSxCZj1ydShPYmplY3QsImNyZWF0ZSIpLGQ5cj1MMygkcSksdTlyPUwzKFJmKSxwOXI9TDMoSXEpLGg5cj1MMyhQcSksZjlyPUwzKE5xKSxQdmU9RXZlP0V2ZS5wcm90b3R5cGU6dm9pZCAwLE52ZT1QdmU/UHZlLnZhbHVlT2Y6dm9pZCAwO2Z1bmN0aW9uIFQzKGUpe3ZhciB0PS0xLHI9ZT9lLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PHI7KXt2YXIgaT1lW3RdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIG05cigpe3RoaXMuX19kYXRhX189QmY/QmYobnVsbCk6e319ZnVuY3Rpb24gZzlyKGUpe3JldHVybiB0aGlzLmhhcyhlKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bZV19ZnVuY3Rpb24gYjlyKGUpe3ZhciB0PXRoaXMuX19kYXRhX187aWYoQmYpe3ZhciByPXRbZV07cmV0dXJuIHI9PT1pdmU/dm9pZCAwOnJ9cmV0dXJuIHUwLmNhbGwodCxlKT90W2VdOnZvaWQgMH1mdW5jdGlvbiB2OXIoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXztyZXR1cm4gQmY/dFtlXSE9PXZvaWQgMDp1MC5jYWxsKHQsZSl9ZnVuY3Rpb24geDlyKGUsdCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gcltlXT1CZiYmdD09PXZvaWQgMD9pdmU6dCx0aGlzfVQzLnByb3RvdHlwZS5jbGVhcj1tOXIsVDMucHJvdG90eXBlLmRlbGV0ZT1nOXIsVDMucHJvdG90eXBlLmdldD1iOXIsVDMucHJvdG90eXBlLmhhcz12OXIsVDMucHJvdG90eXBlLnNldD14OXI7ZnVuY3Rpb24gU2woZSl7dmFyIHQ9LTEscj1lP2UubGVuZ3RoOjA7Zm9yKHRoaXMuY2xlYXIoKTsrK3Q8cjspe3ZhciBpPWVbdF07dGhpcy5zZXQoaVswXSxpWzFdKX19ZnVuY3Rpb24geTlyKCl7dGhpcy5fX2RhdGFfXz1bXX1mdW5jdGlvbiB3OXIoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXyxyPUx3KHQsZSk7aWYocjwwKXJldHVybiExO3ZhciBpPXQubGVuZ3RoLTE7cmV0dXJuIHI9PWk/dC5wb3AoKTpzOXIuY2FsbCh0LHIsMSksITB9ZnVuY3Rpb24gTTlyKGUpe3ZhciB0PXRoaXMuX19kYXRhX18scj1Mdyh0LGUpO3JldHVybiByPDA/dm9pZCAwOnRbcl1bMV19ZnVuY3Rpb24gazlyKGUpe3JldHVybiBMdyh0aGlzLl9fZGF0YV9fLGUpPi0xfWZ1bmN0aW9uIFM5cihlLHQpe3ZhciByPXRoaXMuX19kYXRhX18saT1MdyhyLGUpO3JldHVybiBpPDA/ci5wdXNoKFtlLHRdKTpyW2ldWzFdPXQsdGhpc31TbC5wcm90b3R5cGUuY2xlYXI9eTlyLFNsLnByb3RvdHlwZS5kZWxldGU9dzlyLFNsLnByb3RvdHlwZS5nZXQ9TTlyLFNsLnByb3RvdHlwZS5oYXM9azlyLFNsLnByb3RvdHlwZS5zZXQ9UzlyO2Z1bmN0aW9uIGV1KGUpe3ZhciB0PS0xLHI9ZT9lLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PHI7KXt2YXIgaT1lW3RdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIHo5cigpe3RoaXMuX19kYXRhX189e2hhc2g6bmV3IFQzLG1hcDpuZXcoUmZ8fFNsKSxzdHJpbmc6bmV3IFQzfX1mdW5jdGlvbiBDOXIoZSl7cmV0dXJuIEF3KHRoaXMsZSkuZGVsZXRlKGUpfWZ1bmN0aW9uIFQ5cihlKXtyZXR1cm4gQXcodGhpcyxlKS5nZXQoZSl9ZnVuY3Rpb24gXzlyKGUpe3JldHVybiBBdyh0aGlzLGUpLmhhcyhlKX1mdW5jdGlvbiBMOXIoZSx0KXtyZXR1cm4gQXcodGhpcyxlKS5zZXQoZSx0KSx0aGlzfWV1LnByb3RvdHlwZS5jbGVhcj16OXIsZXUucHJvdG90eXBlLmRlbGV0ZT1DOXIsZXUucHJvdG90eXBlLmdldD1UOXIsZXUucHJvdG90eXBlLmhhcz1fOXIsZXUucHJvdG90eXBlLnNldD1MOXI7ZnVuY3Rpb24gdHUoZSl7dGhpcy5fX2RhdGFfXz1uZXcgU2woZSl9ZnVuY3Rpb24gQTlyKCl7dGhpcy5fX2RhdGFfXz1uZXcgU2x9ZnVuY3Rpb24gRDlyKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmRlbGV0ZShlKX1mdW5jdGlvbiBFOXIoZSl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGUpfWZ1bmN0aW9uICQ5cihlKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoZSl9ZnVuY3Rpb24gSTlyKGUsdCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihyIGluc3RhbmNlb2YgU2wpe3ZhciBpPXIuX19kYXRhX187aWYoIVJmfHxpLmxlbmd0aDxSbXItMSlyZXR1cm4gaS5wdXNoKFtlLHRdKSx0aGlzO3I9dGhpcy5fX2RhdGFfXz1uZXcgZXUoaSl9cmV0dXJuIHIuc2V0KGUsdCksdGhpc310dS5wcm90b3R5cGUuY2xlYXI9QTlyLHR1LnByb3RvdHlwZS5kZWxldGU9RDlyLHR1LnByb3RvdHlwZS5nZXQ9RTlyLHR1LnByb3RvdHlwZS5oYXM9JDlyLHR1LnByb3RvdHlwZS5zZXQ9STlyO2Z1bmN0aW9uIFA5cihlLHQpe3ZhciByPVJxKGUpfHxuZ3IoZSk/S21yKGUubGVuZ3RoLFN0cmluZyk6W10saT1yLmxlbmd0aCxhPSEhaTtmb3IodmFyIG4gaW4gZSkodHx8dTAuY2FsbChlLG4pKSYmIShhJiYobj09Imxlbmd0aCJ8fHRncihuLGkpKSkmJnIucHVzaChuKTtyZXR1cm4gcn1mdW5jdGlvbiBGdmUoZSx0LHIpe3ZhciBpPWVbdF07KCEodTAuY2FsbChlLHQpJiZIdmUoaSxyKSl8fHI9PT12b2lkIDAmJiEodCBpbiBlKSkmJihlW3RdPXIpfWZ1bmN0aW9uIEx3KGUsdCl7Zm9yKHZhciByPWUubGVuZ3RoO3ItLTspaWYoSHZlKGVbcl1bMF0sdCkpcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gTjlyKGUsdCl7cmV0dXJuIGUmJk92ZSh0LEJxKHQpLGUpfWZ1bmN0aW9uIEZxKGUsdCxyLGksYSxuLG8pe3ZhciBzO2lmKGkmJihzPW4/aShlLGEsbixvKTppKGUpKSxzIT09dm9pZCAwKXJldHVybiBzO2lmKCFEdyhlKSlyZXR1cm4gZTt2YXIgbD1ScShlKTtpZihsKXtpZihzPUo5cihlKSwhdClyZXR1cm4gWjlyKGUscyl9ZWxzZXt2YXIgYz1fMyhlKSx1PWM9PV9xfHxjPT1zdmU7aWYoc2dyKGUpKXJldHVybiBxOXIoZSx0KTtpZihjPT1McXx8Yz09VHF8fHUmJiFuKXtpZihDdmUoZSkpcmV0dXJuIG4/ZTp7fTtpZihzPUs5cih1P3t9OmUpLCF0KXJldHVybiBYOXIoZSxOOXIocyxlKSl9ZWxzZXtpZighaTFbY10pcmV0dXJuIG4/ZTp7fTtzPWVncihlLGMsRnEsdCl9fW98fChvPW5ldyB0dSk7dmFyIGQ9by5nZXQoZSk7aWYoZClyZXR1cm4gZDtpZihvLnNldChlLHMpLCFsKXZhciBoPXI/UTlyKGUpOkJxKGUpO3JldHVybiBRbXIoaHx8ZSxmdW5jdGlvbihmLHgpe2gmJih4PWYsZj1lW3hdKSxGdmUocyx4LEZxKGYsdCxyLGkseCxlLG8pKX0pLHN9ZnVuY3Rpb24gRjlyKGUpe3JldHVybiBEdyhlKT9uOXIoZSk6e319ZnVuY3Rpb24gTzlyKGUsdCxyKXt2YXIgaT10KGUpO3JldHVybiBScShlKT9pOkptcihpLHIoZSkpfWZ1bmN0aW9uIFI5cihlKXtyZXR1cm4gX3cuY2FsbChlKX1mdW5jdGlvbiBCOXIoZSl7aWYoIUR3KGUpfHxpZ3IoZSkpcmV0dXJuITE7dmFyIHQ9anZlKGUpfHxDdmUoZSk/aTlyOlZtcjtyZXR1cm4gdC50ZXN0KEwzKGUpKX1mdW5jdGlvbiBIOXIoZSl7aWYoIUJ2ZShlKSlyZXR1cm4gYzlyKGUpO3ZhciB0PVtdO2Zvcih2YXIgciBpbiBPYmplY3QoZSkpdTAuY2FsbChlLHIpJiZyIT0iY29uc3RydWN0b3IiJiZ0LnB1c2gocik7cmV0dXJuIHR9ZnVuY3Rpb24gcTlyKGUsdCl7aWYodClyZXR1cm4gZS5zbGljZSgpO3ZhciByPW5ldyBlLmNvbnN0cnVjdG9yKGUubGVuZ3RoKTtyZXR1cm4gZS5jb3B5KHIpLHJ9ZnVuY3Rpb24gT3EoZSl7dmFyIHQ9bmV3IGUuY29uc3RydWN0b3IoZS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3ICR2ZSh0KS5zZXQobmV3ICR2ZShlKSksdH1mdW5jdGlvbiBqOXIoZSx0KXt2YXIgcj10P09xKGUuYnVmZmVyKTplLmJ1ZmZlcjtyZXR1cm4gbmV3IGUuY29uc3RydWN0b3IocixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKX1mdW5jdGlvbiBWOXIoZSx0LHIpe3ZhciBpPXQ/cihUdmUoZSksITApOlR2ZShlKTtyZXR1cm4genZlKGksWm1yLG5ldyBlLmNvbnN0cnVjdG9yKX1mdW5jdGlvbiBVOXIoZSl7dmFyIHQ9bmV3IGUuY29uc3RydWN0b3IoZS5zb3VyY2Usam1yLmV4ZWMoZSkpO3JldHVybiB0Lmxhc3RJbmRleD1lLmxhc3RJbmRleCx0fWZ1bmN0aW9uIFc5cihlLHQscil7dmFyIGk9dD9yKF92ZShlKSwhMCk6X3ZlKGUpO3JldHVybiB6dmUoaSxYbXIsbmV3IGUuY29uc3RydWN0b3IpfWZ1bmN0aW9uIEc5cihlKXtyZXR1cm4gTnZlP09iamVjdChOdmUuY2FsbChlKSk6e319ZnVuY3Rpb24gWTlyKGUsdCl7dmFyIHI9dD9PcShlLmJ1ZmZlcik6ZS5idWZmZXI7cmV0dXJuIG5ldyBlLmNvbnN0cnVjdG9yKHIsZS5ieXRlT2Zmc2V0LGUubGVuZ3RoKX1mdW5jdGlvbiBaOXIoZSx0KXt2YXIgcj0tMSxpPWUubGVuZ3RoO2Zvcih0fHwodD1BcnJheShpKSk7KytyPGk7KXRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBPdmUoZSx0LHIsaSl7cnx8KHI9e30pO2Zvcih2YXIgYT0tMSxuPXQubGVuZ3RoOysrYTxuOyl7dmFyIG89dFthXSxzPWk/aShyW29dLGVbb10sbyxyLGUpOnZvaWQgMDtGdmUocixvLHM9PT12b2lkIDA/ZVtvXTpzKX1yZXR1cm4gcn1mdW5jdGlvbiBYOXIoZSx0KXtyZXR1cm4gT3ZlKGUsUnZlKGUpLHQpfWZ1bmN0aW9uIFE5cihlKXtyZXR1cm4gTzlyKGUsQnEsUnZlKX1mdW5jdGlvbiBBdyhlLHQpe3ZhciByPWUuX19kYXRhX187cmV0dXJuIHJncih0KT9yW3R5cGVvZiB0PT0ic3RyaW5nIj8ic3RyaW5nIjoiaGFzaCJdOnIubWFwfWZ1bmN0aW9uIHJ1KGUsdCl7dmFyIHI9ZTlyKGUsdCk7cmV0dXJuIEI5cihyKT9yOnZvaWQgMH12YXIgUnZlPUl2ZT9EcShJdmUsT2JqZWN0KTpkZ3IsXzM9UjlyOygkcSYmXzMobmV3ICRxKG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1Dd3x8UmYmJl8zKG5ldyBSZikhPVN3fHxJcSYmXzMoSXEucmVzb2x2ZSgpKSE9Y3ZlfHxQcSYmXzMobmV3IFBxKSE9end8fE5xJiZfMyhuZXcgTnEpIT1BcSkmJihfMz1mdW5jdGlvbihlKXt2YXIgdD1fdy5jYWxsKGUpLHI9dD09THE/ZS5jb25zdHJ1Y3Rvcjp2b2lkIDAsaT1yP0wzKHIpOnZvaWQgMDtpZihpKXN3aXRjaChpKXtjYXNlIGQ5cjpyZXR1cm4gQ3c7Y2FzZSB1OXI6cmV0dXJuIFN3O2Nhc2UgcDlyOnJldHVybiBjdmU7Y2FzZSBoOXI6cmV0dXJuIHp3O2Nhc2UgZjlyOnJldHVybiBBcX1yZXR1cm4gdH0pO2Z1bmN0aW9uIEo5cihlKXt2YXIgdD1lLmxlbmd0aCxyPWUuY29uc3RydWN0b3IodCk7cmV0dXJuIHQmJnR5cGVvZiBlWzBdPT0ic3RyaW5nIiYmdTAuY2FsbChlLCJpbmRleCIpJiYoci5pbmRleD1lLmluZGV4LHIuaW5wdXQ9ZS5pbnB1dCkscn1mdW5jdGlvbiBLOXIoZSl7cmV0dXJuIHR5cGVvZiBlLmNvbnN0cnVjdG9yPT0iZnVuY3Rpb24iJiYhQnZlKGUpP0Y5cihhOXIoZSkpOnt9fWZ1bmN0aW9uIGVncihlLHQscixpKXt2YXIgYT1lLmNvbnN0cnVjdG9yO3N3aXRjaCh0KXtjYXNlIGh2ZTpyZXR1cm4gT3EoZSk7Y2FzZSBudmU6Y2FzZSBvdmU6cmV0dXJuIG5ldyBhKCtlKTtjYXNlIEN3OnJldHVybiBqOXIoZSxpKTtjYXNlIGZ2ZTpjYXNlIG12ZTpjYXNlIGd2ZTpjYXNlIGJ2ZTpjYXNlIHZ2ZTpjYXNlIHh2ZTpjYXNlIHl2ZTpjYXNlIHd2ZTpjYXNlIE12ZTpyZXR1cm4gWTlyKGUsaSk7Y2FzZSBTdzpyZXR1cm4gVjlyKGUsaSxyKTtjYXNlIGx2ZTpjYXNlIHV2ZTpyZXR1cm4gbmV3IGEoZSk7Y2FzZSBkdmU6cmV0dXJuIFU5cihlKTtjYXNlIHp3OnJldHVybiBXOXIoZSxpLHIpO2Nhc2UgcHZlOnJldHVybiBHOXIoZSl9fWZ1bmN0aW9uIHRncihlLHQpe3JldHVybiB0PXQ/P2F2ZSwhIXQmJih0eXBlb2YgZT09Im51bWJlciJ8fFVtci50ZXN0KGUpKSYmZT4tMSYmZSUxPT0wJiZlPHR9ZnVuY3Rpb24gcmdyKGUpe3ZhciB0PXR5cGVvZiBlO3JldHVybiB0PT0ic3RyaW5nInx8dD09Im51bWJlciJ8fHQ9PSJzeW1ib2wifHx0PT0iYm9vbGVhbiI/ZSE9PSJfX3Byb3RvX18iOmU9PT1udWxsfWZ1bmN0aW9uIGlncihlKXtyZXR1cm4hIUx2ZSYmTHZlIGluIGV9ZnVuY3Rpb24gQnZlKGUpe3ZhciB0PWUmJmUuY29uc3RydWN0b3Iscj10eXBlb2YgdD09ImZ1bmN0aW9uIiYmdC5wcm90b3R5cGV8fFR3O3JldHVybiBlPT09cn1mdW5jdGlvbiBMMyhlKXtpZihlIT1udWxsKXt0cnl7cmV0dXJuIEF2ZS5jYWxsKGUpfWNhdGNoe310cnl7cmV0dXJuIGUrIiJ9Y2F0Y2h7fX1yZXR1cm4iIn1mdW5jdGlvbiBhZ3IoZSl7cmV0dXJuIEZxKGUsITAsITApfWZ1bmN0aW9uIEh2ZShlLHQpe3JldHVybiBlPT09dHx8ZSE9PWUmJnQhPT10fWZ1bmN0aW9uIG5ncihlKXtyZXR1cm4gb2dyKGUpJiZ1MC5jYWxsKGUsImNhbGxlZSIpJiYoIW85ci5jYWxsKGUsImNhbGxlZSIpfHxfdy5jYWxsKGUpPT1UcSl9dmFyIFJxPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gcXZlKGUpe3JldHVybiBlIT1udWxsJiZsZ3IoZS5sZW5ndGgpJiYhanZlKGUpfWZ1bmN0aW9uIG9ncihlKXtyZXR1cm4gY2dyKGUpJiZxdmUoZSl9dmFyIHNncj1sOXJ8fHVncjtmdW5jdGlvbiBqdmUoZSl7dmFyIHQ9RHcoZSk/X3cuY2FsbChlKToiIjtyZXR1cm4gdD09X3F8fHQ9PXN2ZX1mdW5jdGlvbiBsZ3IoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIiYmZT4tMSYmZSUxPT0wJiZlPD1hdmV9ZnVuY3Rpb24gRHcoZSl7dmFyIHQ9dHlwZW9mIGU7cmV0dXJuISFlJiYodD09Im9iamVjdCJ8fHQ9PSJmdW5jdGlvbiIpfWZ1bmN0aW9uIGNncihlKXtyZXR1cm4hIWUmJnR5cGVvZiBlPT0ib2JqZWN0In1mdW5jdGlvbiBCcShlKXtyZXR1cm4gcXZlKGUpP1A5cihlKTpIOXIoZSl9ZnVuY3Rpb24gZGdyKCl7cmV0dXJuW119ZnVuY3Rpb24gdWdyKCl7cmV0dXJuITF9aXUuZXhwb3J0cz1hZ3J9KTt2YXIgcXE9amUoKEpMMSxWdmUpPT57InVzZSBzdHJpY3QiO1Z2ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dHx8KHQ9e30pLHR5cGVvZiB0PT0iZnVuY3Rpb24iJiYodD17Y21wOnR9KTt2YXIgcj10eXBlb2YgdC5jeWNsZXM9PSJib29sZWFuIj90LmN5Y2xlczohMSxpPXQuY21wJiYoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihzLGwpe3ZhciBjPXtrZXk6cyx2YWx1ZTpvW3NdfSx1PXtrZXk6bCx2YWx1ZTpvW2xdfTtyZXR1cm4gbihjLHUpfX19KSh0LmNtcCksYT1bXTtyZXR1cm4oZnVuY3Rpb24gbihvKXtpZihvJiZvLnRvSlNPTiYmdHlwZW9mIG8udG9KU09OPT0iZnVuY3Rpb24iJiYobz1vLnRvSlNPTigpKSxvIT09dm9pZCAwKXtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIGlzRmluaXRlKG8pPyIiK286Im51bGwiO2lmKHR5cGVvZiBvIT0ib2JqZWN0IilyZXR1cm4gSlNPTi5zdHJpbmdpZnkobyk7dmFyIHMsbDtpZihBcnJheS5pc0FycmF5KG8pKXtmb3IobD0iWyIscz0wO3M8by5sZW5ndGg7cysrKXMmJihsKz0iLCIpLGwrPW4ob1tzXSl8fCJudWxsIjtyZXR1cm4gbCsiXSJ9aWYobz09PW51bGwpcmV0dXJuIm51bGwiO2lmKGEuaW5kZXhPZihvKSE9PS0xKXtpZihyKXJldHVybiBKU09OLnN0cmluZ2lmeSgiX19jeWNsZV9fIik7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfXZhciBjPWEucHVzaChvKS0xLHU9T2JqZWN0LmtleXMobykuc29ydChpJiZpKG8pKTtmb3IobD0iIixzPTA7czx1Lmxlbmd0aDtzKyspe3ZhciBkPXVbc10saD1uKG9bZF0pO2gmJihsJiYobCs9IiwiKSxsKz1KU09OLnN0cmluZ2lmeShkKSsiOiIraCl9cmV0dXJuIGEuc3BsaWNlKGMsMSksInsiK2wrIn0ifX0pKGUpfX0pO3ZhciBFdyxVdmUsJHcsanE9cCgoKT0+e1E1KCk7T2YoKTtFdz1lcihIcSgpLDEpLFV2ZT1lcihxcSgpLDEpLCR3PVV2ZS5kZWZhdWx0fSk7ZnVuY3Rpb24gaGdyKGUpe3JldHVybiB0eXBlb2YgQnVmZmVyPCJ1Ij9CdWZmZXIuZnJvbShlKS50b1N0cmluZygiYmFzZTY0Iik6YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmUpKX1mdW5jdGlvbiBmZ3IoZSl7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCB0PUJ1ZmZlci5mcm9tKGUsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGUpKS5tYXAodD0+dC5jaGFyQ29kZUF0KDApKSl9ZnVuY3Rpb24gVXEoZSx0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSxJdyx0KX1mdW5jdGlvbiBXcShlKXtyZXR1cm4gSlNPTi5wYXJzZShlLFd2ZSl9ZnVuY3Rpb24gbWdyKGUpe3JldHVybiBZdmUoZSkmJmUudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmVnEoZS5kYXRhKX1mdW5jdGlvbiBnZ3IoZSl7cmV0dXJuIFl2ZShlKSYmZS50eXBlPT09IkJ1ZmZlciImJihHdmUoZS5kYXRhKXx8VnEoZS5kYXRhKSl8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIEd2ZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBWcShlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmcifWZ1bmN0aW9uIFl2ZShlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbH12YXIgSXcsV3ZlLFp2ZT1wKCgpPT57anEoKTtJdz0oZSx0KT0+e2lmKGdncih0KSl7bGV0IHI7aWYoImRhdGEiaW4gdCYmR3ZlKHQuZGF0YSkpcj1uZXcgVWludDhBcnJheSh0LmRhdGEpO2Vsc2UgaWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcj10O2Vsc2UgcmV0dXJuIHQ7cmV0dXJue3R5cGU6IkVuY29kZWRCdWZmZXIiLGRhdGE6ImJhc2U2NDoiK2hncihyKX19cmV0dXJuIHR9LFd2ZT0oZSx0KT0+e2lmKG1ncih0KSYmVnEodC5kYXRhKSYmdC5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHI9dC5kYXRhLnNsaWNlKDcpO3JldHVybiBmZ3Iocil9cmV0dXJuIHR9fSk7dmFyIHYxPXt9O0ZlKHYxLHtTbWFydGpzb246KCk9PllxLGRlZXBFcXVhbEpzb25MU3RyaW5nczooKT0+U2dyLGRlZXBFcXVhbE9iamVjdHM6KCk9Plh2ZSxmb2xkRGVjOigpPT5rZ3IscGFyc2U6KCk9PlB3LHBhcnNlQmFzZTY0OigpPT5NZ3IscGFyc2VKc29uTDooKT0+R3Esc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT54Z3Isc3RyaW5naWZ5OigpPT5BMyxzdHJpbmdpZnlCYXNlNjQ6KCk9PndncixzdHJpbmdpZnlKc29uTDooKT0+dmdyLHN0cmluZ2lmeVByZXR0eTooKT0+eWdyfSk7dmFyIFB3LEdxLHZncix4Z3IsQTMseWdyLHdncixNZ3IsWXEsa2dyLFh2ZSxTZ3IsYXU9cCgoKT0+e2pxKCk7WnZlKCk7UHc9V3EsR3E9ZT0+ZS5zcGxpdChgCmApLnJlZHVjZSgoaSxhKT0+e2xldCBuPWEudHJpbSgpO3JldHVybiBuLmxlbmd0aD4wJiZpLnB1c2goUHcobikpLGl9LFtdKSx2Z3I9ZT0+ZS5tYXAodD0+QTModCkpLmpvaW4oYApgKSx4Z3I9KGUsdCxyPXt9KT0+e2xldCBpPW5ldyBXZWFrU2V0LGE9cz0+e2lmKHM9PT1udWxsfHx0eXBlb2YgcyE9Im9iamVjdCIpcmV0dXJuIHM7bGV0IGw9SXcoIiIscyk7aWYobCYmbC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgbC5kYXRhPT0ic3RyaW5nIilyZXR1cm4gbDtpZihpLmhhcyhzKSlyZXR1cm4iX19jeWNsZV9fIjtpZihpLmFkZChzKSxBcnJheS5pc0FycmF5KHMpKXJldHVybiBzLm1hcCh1PT5hKHUpKTtsZXQgYz17fTtmb3IobGV0IHUgb2YgT2JqZWN0LmtleXMocykpdHJ5e2NbdV09YShzW3VdKX1jYXRjaHtjW3VdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBjfSxuPWEoZSksbz17Li4ucixjeWNsZXM6ITB9O2lmKHQmJiFvLmNtcCl7bGV0IHM9bmV3IE1hcDt0LmZvckVhY2goKGwsYyk9PnMuc2V0KGwsYykpLG8uY21wPShsLGMpPT57bGV0IHU9cy5oYXMobC5rZXkpP3MuZ2V0KGwua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksZD1zLmhhcyhjLmtleSk/cy5nZXQoYy5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gdSE9PWQ/dS1kOmwua2V5PGMua2V5Py0xOmwua2V5PmMua2V5PzE6MH19cmV0dXJuICR3KG4sbyl9LEEzPShlLHQscj17fSk9PntsZXQgaT1VcShlKTtlPUpTT04ucGFyc2UoaSk7bGV0IGE9ey4uLnJ9O2lmKHQmJiFhLmNtcCl7bGV0IG89bmV3IE1hcDt0LmZvckVhY2goKHMsbCk9Pm8uc2V0KHMsbCkpLGEuY21wPShzLGwpPT57bGV0IGM9by5oYXMocy5rZXkpP28uZ2V0KHMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdT1vLmhhcyhsLmtleSk/by5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYyE9PXU/Yy11OnMua2V5PGwua2V5Py0xOnMua2V5Pmwua2V5PzE6MH19cmV0dXJuICR3KGUsYSl9LHlncj1lPT57bGV0IHQ9QTMoZSkscj1KU09OLnBhcnNlKHQpO3JldHVybiBKU09OLnN0cmluZ2lmeShyLG51bGwsMil9LHdncj0oLi4uZSk9PntsZXQgdD1BMyguLi5lKTtyZXR1cm4gZ2EuYmFzZTY0LmVuY29kZVVyaSh0KX0sTWdyPWU9PntsZXQgdD1nYS5iYXNlNjQsaT0odC5kZWNvZGVVcml8fHQuZGVjb2RlKShlKTtyZXR1cm4gUHcoaSl9LFlxPWNsYXNzIGV7c3RhdGljIGVuZm9sZEZyb21PYmplY3QodCl7bGV0IHI9bmV3IHRoaXMsaT1yLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBhIGluIHQpaS5pbmRleE9mKGEpIT09LTEmJihyW2FdPXRbYV0pO3JldHVybiByfXN0YXRpYyBlbmZvbGRGcm9tSnNvbih0KXtsZXQgcj1Qdyh0KTtyZXR1cm4gdGhpcy5lbmZvbGRGcm9tT2JqZWN0KHIpfWZvbGRUb09iamVjdCgpe2xldCB0PW5ldyBTZXQ7cmV0dXJuIHQuYWRkKHRoaXMpLHRoaXMuZm9sZFRvT2JqZWN0SW50ZXJuYWwodCl9Zm9sZFRvT2JqZWN0SW50ZXJuYWwodCl7bGV0IHI9e30saT1uPT57aWYobiBpbnN0YW5jZW9mIGUpe2lmKHQuaGFzKG4pKXRocm93IG5ldyBFcnJvcigiY3ljbGUgZGV0ZWN0ZWQiKTtyZXR1cm4gdC5hZGQobiksbi5mb2xkVG9PYmplY3RJbnRlcm5hbCh0KX1yZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uLm1hcChvPT5pKG8pKTpFdy5kZWZhdWx0KG4pfSxhPXRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IG4gb2YgYSl7bGV0IG89dGhpc1tuXTtyW25dPWkobyl9cmV0dXJuIHJ9Zm9sZFRvSnNvbigpe2xldCB0PXRoaXMuZm9sZFRvT2JqZWN0KCk7cmV0dXJuIEEzKHQpfX0sa2dyPSgpPT4oZSx0KT0+e2Uuc2F2ZWFibGVQcm9wZXJ0aWVzfHwoZS5zYXZlYWJsZVByb3BlcnRpZXM9W10pLGUuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2godCl9LFh2ZT0oZSx0KT0+e2xldCByPUEzKGUpLGk9QTModCk7cmV0dXJuIHI9PT1pfSxTZ3I9KGUsdCk9PntsZXQgcj1HcShlKSxpPUdxKHQpO3JldHVybiBYdmUocixpKX19KTt2YXIgamY9e307RmUoamYse2RlbGV0ZURCOigpPT5ueGUsb3BlbkRCOigpPT5heGUsdW53cmFwOigpPT5xZix3cmFwOigpPT5uc30pO2Z1bmN0aW9uIHpncigpe3JldHVybiBRdmV8fChRdmU9W0lEQkRhdGFiYXNlLElEQk9iamVjdFN0b3JlLElEQkluZGV4LElEQkN1cnNvcixJREJUcmFuc2FjdGlvbl0pfWZ1bmN0aW9uIENncigpe3JldHVybiBKdmV8fChKdmU9W0lEQkN1cnNvci5wcm90b3R5cGUuYWR2YW5jZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5XSl9ZnVuY3Rpb24gVGdyKGUpe2xldCB0PW5ldyBQcm9taXNlKChyLGkpPT57bGV0IGE9KCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSxuPSgpPT57cihucyhlLnJlc3VsdCkpLGEoKX0sbz0oKT0+e2koZS5lcnJvciksYSgpfTtlLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLGUuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSk7cmV0dXJuIE53LnNldCh0LGUpLHR9ZnVuY3Rpb24gX2dyKGUpe2lmKFhxLmhhcyhlKSlyZXR1cm47bGV0IHQ9bmV3IFByb21pc2UoKHIsaSk9PntsZXQgYT0oKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLG4pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSxuPSgpPT57cigpLGEoKX0sbz0oKT0+e2koZS5lcnJvcnx8bmV3IERPTUV4Y2VwdGlvbigiQWJvcnRFcnJvciIsIkFib3J0RXJyb3IiKSksYSgpfTtlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixuKSxlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixvKSxlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0pO1hxLnNldChlLHQpfWZ1bmN0aW9uIEt2ZShlKXtKcT1lKEpxKX1mdW5jdGlvbiBMZ3IoZSl7cmV0dXJuIENncigpLmluY2x1ZGVzKGUpP2Z1bmN0aW9uKC4uLnQpe3JldHVybiBlLmFwcGx5KHFmKHRoaXMpLHQpLG5zKHRoaXMucmVxdWVzdCl9OmZ1bmN0aW9uKC4uLnQpe3JldHVybiBucyhlLmFwcGx5KHFmKHRoaXMpLHQpKX19ZnVuY3Rpb24gQWdyKGUpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9MZ3IoZSk6KGUgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmX2dyKGUpLFpxKGUsemdyKCkpP25ldyBQcm94eShlLEpxKTplKX1mdW5jdGlvbiBucyhlKXtpZihlIGluc3RhbmNlb2YgSURCUmVxdWVzdClyZXR1cm4gVGdyKGUpO2lmKFFxLmhhcyhlKSlyZXR1cm4gUXEuZ2V0KGUpO2xldCB0PUFncihlKTtyZXR1cm4gdCE9PWUmJihRcS5zZXQoZSx0KSxOdy5zZXQodCxlKSksdH1mdW5jdGlvbiBheGUoZSx0LHtibG9ja2VkOnIsdXBncmFkZTppLGJsb2NraW5nOmEsdGVybWluYXRlZDpufT17fSl7bGV0IG89aW5kZXhlZERCLm9wZW4oZSx0KSxzPW5zKG8pO3JldHVybiBpJiZvLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLGw9PntpKG5zKG8ucmVzdWx0KSxsLm9sZFZlcnNpb24sbC5uZXdWZXJzaW9uLG5zKG8udHJhbnNhY3Rpb24pLGwpfSksciYmby5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIixsPT5yKGwub2xkVmVyc2lvbixsLm5ld1ZlcnNpb24sbCkpLHMudGhlbihsPT57biYmbC5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9Pm4oKSksYSYmbC5hZGRFdmVudExpc3RlbmVyKCJ2ZXJzaW9uY2hhbmdlIixjPT5hKGMub2xkVmVyc2lvbixjLm5ld1ZlcnNpb24sYykpfSkuY2F0Y2goKCk9Pnt9KSxzfWZ1bmN0aW9uIG54ZShlLHtibG9ja2VkOnR9PXt9KXtsZXQgcj1pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZSk7cmV0dXJuIHQmJnIuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsaT0+dChpLm9sZFZlcnNpb24saSkpLG5zKHIpLnRoZW4oKCk9Pnt9KX1mdW5jdGlvbiBleGUoZSx0KXtpZighKGUgaW5zdGFuY2VvZiBJREJEYXRhYmFzZSYmISh0IGluIGUpJiZ0eXBlb2YgdD09InN0cmluZyIpKXJldHVybjtpZihLcS5nZXQodCkpcmV0dXJuIEtxLmdldCh0KTtsZXQgcj10LnJlcGxhY2UoL0Zyb21JbmRleCQvLCIiKSxpPXQhPT1yLGE9RWdyLmluY2x1ZGVzKHIpO2lmKCEociBpbihpP0lEQkluZGV4OklEQk9iamVjdFN0b3JlKS5wcm90b3R5cGUpfHwhKGF8fERnci5pbmNsdWRlcyhyKSkpcmV0dXJuO2xldCBuPWFzeW5jIGZ1bmN0aW9uKG8sLi4ucyl7bGV0IGw9dGhpcy50cmFuc2FjdGlvbihvLGE/InJlYWR3cml0ZSI6InJlYWRvbmx5IiksYz1sLnN0b3JlO3JldHVybiBpJiYoYz1jLmluZGV4KHMuc2hpZnQoKSkpLChhd2FpdCBQcm9taXNlLmFsbChbY1tyXSguLi5zKSxhJiZsLmRvbmVdKSlbMF19O3JldHVybiBLcS5zZXQodCxuKSxufWFzeW5jIGZ1bmN0aW9uKlBnciguLi5lKXtsZXQgdD10aGlzO2lmKHQgaW5zdGFuY2VvZiBJREJDdXJzb3J8fCh0PWF3YWl0IHQub3BlbkN1cnNvciguLi5lKSksIXQpcmV0dXJuO3Q9dDtsZXQgcj1uZXcgUHJveHkodCxJZ3IpO2ZvcihyeGUuc2V0KHIsdCksTncuc2V0KHIscWYodCkpO3Q7KXlpZWxkIHIsdD1hd2FpdChlai5nZXQocil8fHQuY29udGludWUoKSksZWouZGVsZXRlKHIpfWZ1bmN0aW9uIGl4ZShlLHQpe3JldHVybiB0PT09U3ltYm9sLmFzeW5jSXRlcmF0b3ImJlpxKGUsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlLElEQkN1cnNvcl0pfHx0PT09Iml0ZXJhdGUiJiZacShlLFtJREJJbmRleCxJREJPYmplY3RTdG9yZV0pfXZhciBacSxRdmUsSnZlLFhxLFFxLE53LEpxLHFmLERncixFZ3IsS3EsJGdyLHR4ZSxlaixyeGUsSWdyLG94ZT1wKCgpPT57WnE9KGUsdCk9PnQuc29tZShyPT5lIGluc3RhbmNlb2Ygcik7WHE9bmV3IFdlYWtNYXAsUXE9bmV3IFdlYWtNYXAsTnc9bmV3IFdlYWtNYXA7SnE9e2dldChlLHQscil7aWYoZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uKXtpZih0PT09ImRvbmUiKXJldHVybiBYcS5nZXQoZSk7aWYodD09PSJzdG9yZSIpcmV0dXJuIHIub2JqZWN0U3RvcmVOYW1lc1sxXT92b2lkIDA6ci5vYmplY3RTdG9yZShyLm9iamVjdFN0b3JlTmFtZXNbMF0pfXJldHVybiBucyhlW3RdKX0sc2V0KGUsdCxyKXtyZXR1cm4gZVt0XT1yLCEwfSxoYXMoZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiYodD09PSJkb25lInx8dD09PSJzdG9yZSIpPyEwOnQgaW4gZX19O3FmPWU9Pk53LmdldChlKTtEZ3I9WyJnZXQiLCJnZXRLZXkiLCJnZXRBbGwiLCJnZXRBbGxLZXlzIiwiY291bnQiXSxFZ3I9WyJwdXQiLCJhZGQiLCJkZWxldGUiLCJjbGVhciJdLEtxPW5ldyBNYXA7S3ZlKGU9Pih7Li4uZSxnZXQ6KHQscixpKT0+ZXhlKHQscil8fGUuZ2V0KHQscixpKSxoYXM6KHQscik9PiEhZXhlKHQscil8fGUuaGFzKHQscil9KSk7JGdyPVsiY29udGludWUiLCJjb250aW51ZVByaW1hcnlLZXkiLCJhZHZhbmNlIl0sdHhlPXt9LGVqPW5ldyBXZWFrTWFwLHJ4ZT1uZXcgV2Vha01hcCxJZ3I9e2dldChlLHQpe2lmKCEkZ3IuaW5jbHVkZXModCkpcmV0dXJuIGVbdF07bGV0IHI9dHhlW3RdO3JldHVybiByfHwocj10eGVbdF09ZnVuY3Rpb24oLi4uaSl7ZWouc2V0KHRoaXMscnhlLmdldCh0aGlzKVt0XSguLi5pKSl9KSxyfX07S3ZlKGU9Pih7Li4uZSxnZXQodCxyLGkpe3JldHVybiBpeGUodCxyKT9QZ3I6ZS5nZXQodCxyLGkpfSxoYXModCxyKXtyZXR1cm4gaXhlKHQscil8fGUuaGFzKHQscil9fSkpfSk7dmFyIHRqPXAoKCk9PntfZigpO1E1KCk7YXUoKTtzYSgpO3QyKCk7S2goKTtveGUoKX0pO3ZhciBWZixyaj1wKCgpPT57dGooKTtWZj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmluaXRDYWxsZWQ9ITEsdGhpcy5yZWFkeURlZmVycmVkPUtlLmRlZmVyKCksdGhpcy5vcHRpb25zPXR9YXN5bmMgaW5pdCgpe2lmKHRoaXMuaW5pdENhbGxlZCl7YXdhaXQgdGhpcy5yZWFkeURlZmVycmVkLnByb21pc2U7cmV0dXJufXRoaXMuaW5pdENhbGxlZD0hMDtsZXQgdD1uZXcgJG4uU21hcnRlbnY7aWYoIXQuaXNCcm93c2VyJiYhZ2xvYmFsVGhpcy5pbmRleGVkREImJihjb25zb2xlLmxvZygiaGV5IiksY29uc29sZS5sb2coZ2xvYmFsVGhpcy5pbmRleGVkREIpLGF3YWl0IHQuZ2V0U2FmZU5vZGVNb2R1bGUoImZha2UtaW5kZXhlZGRiL2F1dG8iKSwhZ2xvYmFsVGhpcy5pbmRleGVkREIpKXtsZXQgcj1hd2FpdCB0LmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYiIpO2dsb2JhbFRoaXMuaW5kZXhlZERCPW5ldyByLklEQkZhY3Rvcnl9dGhpcy5kYj1hd2FpdCBqZi5vcGVuREIodGhpcy5vcHRpb25zLmRiTmFtZSwxLHt1cGdyYWRlOnI9PntyLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfX0pLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9YXN5bmMgZ2V0KHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHQpfWFzeW5jIGNoZWNrKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSwhIWF3YWl0IHRoaXMuZ2V0KHQpfWFzeW5jIHNldCh0LHIpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLnB1dCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHIsdCl9YXN5bmMgZGVsZXRlKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmRlbGV0ZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHQpfWFzeW5jIGNsZWFyKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuY2xlYXIodGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9YXN5bmMga2V5cygpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldEFsbEtleXModGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9fX0pO3ZhciBpaixseGU9cCgoKT0+e3JqKCk7dGooKTtpaj1jbGFzc3tjb25zdHJ1Y3Rvcih0PSJkZWZhdWx0Iil7dGhpcy53ZWJzdG9yZT1uZXcgVmYoe2RiTmFtZToidHJTdG9yZSIsc3RvcmVOYW1lOmB0clN0b3JlLSR7dH1gfSl9YnVpbGRLZXkodCl7cmV0dXJuIHYxLnN0cmluZ2lmeSh7bWV0aG9kOnQubWV0aG9kLHJlcXVlc3Q6dC5yZXF1ZXN0fSl9YXN5bmMgc2V0QnlSZXF1ZXN0KHQpe2lmKCF0LnJlc3BvbnNlKXRocm93IG5ldyBFcnJvcigiWW91IGNhbm5vdCBzdG9yZSByZXF1ZXN0cyB3aXRob3V0IGEgcmVzcG9uc2UgcHJlc2VudCIpO2F3YWl0IHRoaXMud2Vic3RvcmUuc2V0KHRoaXMuYnVpbGRLZXkodCksdCl9YXN5bmMgZ2V0QnlSZXF1ZXN0KHQpe3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldCh0aGlzLmJ1aWxkS2V5KHQpKX19fSk7dmFyIGphPXt9O0ZlKGphLHtUeXBlZHJlcXVlc3RDYWNoZTooKT0+aWosV2ViU3RvcmU6KCk9PlZmfSk7dmFyIFVmPXAoKCk9PntseGUoKTtyaigpfSk7dmFyIFdmPXAoKCk9PntZMigpO1E1KCk7YXUoKTtzYSgpO1VmKCl9KTt2YXIgbnUsT3c9cCgoKT0+e1dmKCk7bnU9Y2xhc3N7Y29uc3RydWN0b3IodD0id2VicmVxdWVzdC12NCIscj0iY2FjaGUiKXt0aGlzLndlYnN0b3JlPW5ldyBqYS5XZWJTdG9yZSh7ZGJOYW1lOnQsc3RvcmVOYW1lOnJ9KSx0aGlzLmluaXRQcm9taXNlPXRoaXMuaW5pdCgpfWFzeW5jIGluaXQoKXt9Z2VuZXJhdGVDYWNoZUtleSh0KXtsZXQgcj10LnVybCxpPXQubWV0aG9kO3JldHVybiBpPT09IkdFVCI/cjpgJHtpfToke3J9YH1hc3luYyBzZXQodCxyKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuc2V0KHQscil9YXN5bmMgZ2V0KHQpe2F3YWl0IHRoaXMuaW5pdFByb21pc2U7dHJ5e3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldCh0KXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19YXN5bmMgaGFzKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2hlY2sodCl9YXN5bmMgZGVsZXRlKHQpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5kZWxldGUodCl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2xlYXIoKX1yZXNwb25zZUZyb21DYWNoZUVudHJ5KHQpe2xldCByPW5ldyBIZWFkZXJzKHQuaGVhZGVycyk7cmV0dXJuIG5ldyBSZXNwb25zZSh0LnJlc3BvbnNlLHtzdGF0dXM6dC5zdGF0dXMsc3RhdHVzVGV4dDp0LnN0YXR1c1RleHQsaGVhZGVyczpyfSl9YXN5bmMgY2FjaGVFbnRyeUZyb21SZXNwb25zZSh0LHIsaSl7bGV0IGE9ci5jbG9uZSgpLG49YXdhaXQgYS5hcnJheUJ1ZmZlcigpLG89e307cmV0dXJuIGEuaGVhZGVycy5mb3JFYWNoKChzLGwpPT57b1tsXT1zfSkse3Jlc3BvbnNlOm4saGVhZGVyczpvLHRpbWVzdGFtcDpEYXRlLm5vdygpLGV0YWc6aT8uZXRhZ3x8YS5oZWFkZXJzLmdldCgiZXRhZyIpfHx2b2lkIDAsbGFzdE1vZGlmaWVkOmk/Lmxhc3RNb2RpZmllZHx8YS5oZWFkZXJzLmdldCgibGFzdC1tb2RpZmllZCIpfHx2b2lkIDAsbWF4QWdlOmk/Lm1heEFnZSx1cmw6dCxzdGF0dXM6YS5zdGF0dXMsc3RhdHVzVGV4dDphLnN0YXR1c1RleHR9fWFzeW5jIHBydW5lRXhwaXJlZCgpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLDB9fX0pO2Z1bmN0aW9uIE5ncihlKXtsZXQgdD17bWF4QWdlOjAsaW1tdXRhYmxlOiExLG5vQ2FjaGU6ITEsbm9TdG9yZTohMSxtdXN0UmV2YWxpZGF0ZTohMX07aWYoIWUpcmV0dXJuIHQ7bGV0IHI9ZS50b0xvd2VyQ2FzZSgpLnNwbGl0KCIsIikubWFwKGk9PmkudHJpbSgpKTtmb3IobGV0IGkgb2YgcilpZihpPT09Im5vLWNhY2hlIil0Lm5vQ2FjaGU9ITA7ZWxzZSBpZihpPT09Im5vLXN0b3JlIil0Lm5vU3RvcmU9ITA7ZWxzZSBpZihpPT09ImltbXV0YWJsZSIpdC5pbW11dGFibGU9ITA7ZWxzZSBpZihpPT09Im11c3QtcmV2YWxpZGF0ZSIpdC5tdXN0UmV2YWxpZGF0ZT0hMDtlbHNlIGlmKGkuc3RhcnRzV2l0aCgibWF4LWFnZT0iKSl7bGV0IGE9cGFyc2VJbnQoaS5zcGxpdCgiPSIpWzFdLDEwKTtpc05hTihhKXx8KHQubWF4QWdlPWEqMWUzKX1yZXR1cm4gdH1mdW5jdGlvbiBGZ3IoZSl7aWYoZSl0cnl7cmV0dXJuIG5ldyBEYXRlKGUpLmdldFRpbWUoKX1jYXRjaHtyZXR1cm59fWZ1bmN0aW9uIG9zKGUpe2xldCB0PWUuZ2V0KCJjYWNoZS1jb250cm9sIikscj1lLmdldCgiZXhwaXJlcyIpLGk9ZS5nZXQoImV0YWciKSxhPWUuZ2V0KCJsYXN0LW1vZGlmaWVkIiksbj1OZ3IodCk7aWYobi5tYXhBZ2U9PT0wJiZyKXtsZXQgbz1GZ3Iocik7byYmKG4ubWF4QWdlPU1hdGgubWF4KDAsby1EYXRlLm5vdygpKSl9cmV0dXJue21heEFnZTpuLm1heEFnZXx8MCxldGFnOml8fHZvaWQgMCxsYXN0TW9kaWZpZWQ6YXx8dm9pZCAwLGltbXV0YWJsZTpuLmltbXV0YWJsZXx8ITEsbm9DYWNoZTpuLm5vQ2FjaGV8fCExLG5vU3RvcmU6bi5ub1N0b3JlfHwhMSxtdXN0UmV2YWxpZGF0ZTpuLm11c3RSZXZhbGlkYXRlfHwhMX19ZnVuY3Rpb24gR2YoZSx0KXtpZih0Lm5vU3RvcmUpcmV0dXJuITE7aWYodC5pbW11dGFibGUpcmV0dXJuITA7bGV0IHI9RGF0ZS5ub3coKS1lLnRpbWVzdGFtcCxpPWUubWF4QWdlfHx0Lm1heEFnZXx8MDtyZXR1cm4gaT09PTA/ITE6cjxpfWZ1bmN0aW9uIFlmKGUpe3JldHVybiBlLm5vQ2FjaGV8fGUubXVzdFJldmFsaWRhdGV9ZnVuY3Rpb24gUncoZSl7bGV0IHQ9e307cmV0dXJuIGUuZXRhZyYmKHRbImlmLW5vbmUtbWF0Y2giXT1lLmV0YWcpLGUubGFzdE1vZGlmaWVkJiYodFsiaWYtbW9kaWZpZWQtc2luY2UiXT1lLmxhc3RNb2RpZmllZCksdH1mdW5jdGlvbiBCdyhlKXtsZXQgdD17fTtyZXR1cm4gZS5mb3JFYWNoKChyLGkpPT57dFtpXT1yfSksdH1mdW5jdGlvbiBjeGUoZSl7bGV0IHQ9bmV3IEhlYWRlcnM7cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKFtyLGldKT0+e3Quc2V0KHIsaSl9KSx0fXZhciBIdz1wKCgpPT57fSk7ZnVuY3Rpb24gZHhlKGUpe3N3aXRjaChlKXtjYXNlIm5ldHdvcmstZmlyc3QiOnJldHVybiBuZXcgcXc7Y2FzZSJjYWNoZS1maXJzdCI6cmV0dXJuIG5ldyBhajtjYXNlInN0YWxlLXdoaWxlLXJldmFsaWRhdGUiOnJldHVybiBuZXcgbmo7Y2FzZSJuZXR3b3JrLW9ubHkiOnJldHVybiBuZXcgb2o7Y2FzZSJjYWNoZS1vbmx5IjpyZXR1cm4gbmV3IHNqO2RlZmF1bHQ6cmV0dXJuIG5ldyBxd319dmFyIHF3LGFqLG5qLG9qLHNqLHV4ZT1wKCgpPT57T3coKTtIdygpO3F3PWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7dHJ5e2xldCByPWF3YWl0IHQuZmV0Y2hGbih0LnJlcXVlc3QpO3JldHVybiByLm9rJiZhd2FpdCB0aGlzLmNhY2hlUmVzcG9uc2UodCxyKSx7cmVzcG9uc2U6cixmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWNhdGNoKHIpe3QubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBOZXR3b3JrIGZhaWxlZCwgdHJ5aW5nIGNhY2hlOiIscik7bGV0IGk9YXdhaXQgdC5jYWNoZVN0b3JlLmdldCh0LmNhY2hlS2V5KTtpZihpKXJldHVybntyZXNwb25zZTp0LmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShpKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9O3Rocm93IHJ9fWFzeW5jIGNhY2hlUmVzcG9uc2UodCxyKXtsZXQgaT1vcyhyLmhlYWRlcnMpO2lmKGkubm9TdG9yZSlyZXR1cm47bGV0IGE9YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxyLGkpO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxhKX19LGFqPWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7bGV0IHI9YXdhaXQgdC5jYWNoZVN0b3JlLmdldCh0LmNhY2hlS2V5KTtpZihyKXtsZXQgbj1vcyhuZXcgSGVhZGVycyhyLmhlYWRlcnMpKTtpZihHZihyLG4pKXJldHVybiB0LmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgaGl0IChmcmVzaCk6Iix0LnJlcXVlc3QudXJsKSx7cmVzcG9uc2U6dC5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTtpZihZZihuKSYmKHIuZXRhZ3x8ci5sYXN0TW9kaWZpZWQpKXJldHVybiBhd2FpdCB0aGlzLnJldmFsaWRhdGUodCxyKX10LmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgbWlzcywgZmV0Y2hpbmc6Iix0LnJlcXVlc3QudXJsKTtsZXQgaT1hd2FpdCB0LmZldGNoRm4odC5yZXF1ZXN0KSxhPW9zKGkuaGVhZGVycyk7aWYoIWEubm9TdG9yZSl7bGV0IG49YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxpLGEpO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxuKX1yZXR1cm57cmVzcG9uc2U6aSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGUodCxyKXtsZXQgaT1SdyhyKSxhPW5ldyBSZXF1ZXN0KHQucmVxdWVzdC51cmwse21ldGhvZDp0LnJlcXVlc3QubWV0aG9kLGhlYWRlcnM6ey4uLkJ3KHQucmVxdWVzdC5oZWFkZXJzKSwuLi5pfX0pO3RyeXtsZXQgbj1hd2FpdCB0LmZldGNoRm4oYSk7aWYobi5zdGF0dXM9PT0zMDQpcmV0dXJuIHQubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBDYWNoZSByZXZhbGlkYXRlZCAoMzA0KToiLHQucmVxdWVzdC51cmwpLHIudGltZXN0YW1wPURhdGUubm93KCksYXdhaXQgdC5jYWNoZVN0b3JlLnNldCh0LmNhY2hlS2V5LHIpLHtyZXNwb25zZTp0LmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShyKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITB9O2lmKG4ub2spe2xldCBvPW9zKG4uaGVhZGVycyk7aWYoIW8ubm9TdG9yZSl7bGV0IHM9YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxuLG8pO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxzKX19cmV0dXJue3Jlc3BvbnNlOm4sZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiEwfX1jYXRjaChuKXtyZXR1cm4gdC5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIFJldmFsaWRhdGlvbiBmYWlsZWQsIHVzaW5nIGNhY2hlOiIsbikse3Jlc3BvbnNlOnQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0sbmo9Y2xhc3N7YXN5bmMgZXhlY3V0ZSh0KXtsZXQgcj1hd2FpdCB0LmNhY2hlU3RvcmUuZ2V0KHQuY2FjaGVLZXkpO2lmKHIpe2xldCBuPXQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpO3JldHVybiB0aGlzLnJldmFsaWRhdGVJbkJhY2tncm91bmQodCxyKS5jYXRjaChvPT57dC5sb2dnaW5nJiZjb25zb2xlLndhcm4oIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBmYWlsZWQ6IixvKX0pLHtyZXNwb25zZTpuLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19bGV0IGk9YXdhaXQgdC5mZXRjaEZuKHQucmVxdWVzdCksYT1vcyhpLmhlYWRlcnMpO2lmKCFhLm5vU3RvcmUmJmkub2spe2xldCBuPWF3YWl0IHQuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKHQucmVxdWVzdC51cmwsaSxhKTthd2FpdCB0LmNhY2hlU3RvcmUuc2V0KHQuY2FjaGVLZXksbil9cmV0dXJue3Jlc3BvbnNlOmksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfX1hc3luYyByZXZhbGlkYXRlSW5CYWNrZ3JvdW5kKHQscil7bGV0IGk9b3MobmV3IEhlYWRlcnMoci5oZWFkZXJzKSk7aWYoIShHZihyLGkpJiYhWWYoaSkpKXRyeXtsZXQgYT1hd2FpdCB0LmZldGNoRm4odC5yZXF1ZXN0KTtpZihhLm9rKXtsZXQgbj1vcyhhLmhlYWRlcnMpO2lmKCFuLm5vU3RvcmUpe2xldCBvPWF3YWl0IHQuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKHQucmVxdWVzdC51cmwsYSxuKTthd2FpdCB0LmNhY2hlU3RvcmUuc2V0KHQuY2FjaGVLZXksbyksdC5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGNvbXBsZXRlOiIsdC5yZXF1ZXN0LnVybCl9fX1jYXRjaChhKXt0LmxvZ2dpbmcmJmNvbnNvbGUud2FybigiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGZhaWxlZDoiLGEpfX19LG9qPWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7cmV0dXJue3Jlc3BvbnNlOmF3YWl0IHQuZmV0Y2hGbih0LnJlcXVlc3QpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19fSxzaj1jbGFzc3thc3luYyBleGVjdXRlKHQpe2xldCByPWF3YWl0IHQuY2FjaGVTdG9yZS5nZXQodC5jYWNoZUtleSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDYWNoZSBtaXNzIGZvciAke3QucmVxdWVzdC51cmx9IChjYWNoZS1vbmx5IG1vZGUpYCk7cmV0dXJue3Jlc3BvbnNlOnQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0pO3ZhciBvdSxsaj1wKCgpPT57T3coKTt1eGUoKTtIdygpO291PWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy5jYWNoZVN0b3JlPW5ldyBudSh0LHIpfWFzeW5jIGV4ZWN1dGUodCxyLGkpe2xldCBhPXRoaXMuZGV0ZXJtaW5lU3RyYXRlZ3kodCxyKTtpZihhPT09Im5ldHdvcmstb25seSIpcmV0dXJue3Jlc3BvbnNlOmF3YWl0IGkodCksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfTtsZXQgbj10aGlzLmdlbmVyYXRlQ2FjaGVLZXkodCxyKSxvPWR4ZShhKSxzPXtyZXF1ZXN0OnQsY2FjaGVLZXk6bixjYWNoZVN0b3JlOnRoaXMuY2FjaGVTdG9yZSxmZXRjaEZuOmksbG9nZ2luZzpyLmxvZ2dpbmd9O3JldHVybiBhd2FpdCBvLmV4ZWN1dGUocyl9ZGV0ZXJtaW5lU3RyYXRlZ3kodCxyKXtyZXR1cm4gci5jYWNoZVN0cmF0ZWd5P3IuY2FjaGVTdHJhdGVneTpyLmNhY2hlP3RoaXMubWFwQ2FjaGVNb2RlVG9TdHJhdGVneShyLmNhY2hlKTp0LmNhY2hlP3RoaXMubWFwQ2FjaGVNb2RlVG9TdHJhdGVneSh0LmNhY2hlKToibmV0d29yay1maXJzdCJ9bWFwQ2FjaGVNb2RlVG9TdHJhdGVneSh0KXtzd2l0Y2godCl7Y2FzZSJkZWZhdWx0IjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJuby1zdG9yZSI6Y2FzZSJyZWxvYWQiOnJldHVybiJuZXR3b3JrLW9ubHkiO2Nhc2Uibm8tY2FjaGUiOnJldHVybiJuZXR3b3JrLWZpcnN0IjtjYXNlImZvcmNlLWNhY2hlIjpyZXR1cm4iY2FjaGUtZmlyc3QiO2Nhc2Uib25seS1pZi1jYWNoZWQiOnJldHVybiJjYWNoZS1vbmx5IjtkZWZhdWx0OnJldHVybiJuZXR3b3JrLWZpcnN0In19Z2VuZXJhdGVDYWNoZUtleSh0LHIpe3JldHVybiByLmNhY2hlS2V5P3R5cGVvZiByLmNhY2hlS2V5PT0iZnVuY3Rpb24iP3IuY2FjaGVLZXkodCk6ci5jYWNoZUtleTp0aGlzLmNhY2hlU3RvcmUuZ2VuZXJhdGVDYWNoZUtleSh0KX1hc3luYyBjbGVhcigpe2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5jbGVhcigpfWFzeW5jIGRlbGV0ZSh0KXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuZGVsZXRlKHQpfWFzeW5jIGhhcyh0KXtyZXR1cm4gYXdhaXQgdGhpcy5jYWNoZVN0b3JlLmhhcyh0KX1nZXRTdG9yZSgpe3JldHVybiB0aGlzLmNhY2hlU3RvcmV9fX0pO2Z1bmN0aW9uIHB4ZShlKXtzd2l0Y2goZSl7Y2FzZSJleHBvbmVudGlhbCI6cmV0dXJuIG5ldyBqdztjYXNlImxpbmVhciI6cmV0dXJuIG5ldyBjajtjYXNlImNvbnN0YW50IjpyZXR1cm4gbmV3IGRqO2RlZmF1bHQ6cmV0dXJuIG5ldyBqd319ZnVuY3Rpb24gaHhlKGUsdD0uMSl7bGV0IHI9ZSp0Kk1hdGgucmFuZG9tKCk7cmV0dXJuIGUrcn12YXIgancsY2osZGosZnhlPXAoKCk9Pntqdz1jbGFzc3tjYWxjdWxhdGUodCxyLGkpe2xldCBhPXIqTWF0aC5wb3coMix0LTEpO3JldHVybiBNYXRoLm1pbihhLGkpfX0sY2o9Y2xhc3N7Y2FsY3VsYXRlKHQscixpKXtsZXQgYT1yKnQ7cmV0dXJuIE1hdGgubWluKGEsaSl9fSxkaj1jbGFzc3tjYWxjdWxhdGUodCxyLGkpe3JldHVybiBNYXRoLm1pbihyLGkpfX19KTt2YXIgc3UsdWo9cCgoKT0+e1dmKCk7ZnhlKCk7c3U9Y2xhc3N7Y29uc3RydWN0b3IodD17fSl7dGhpcy5vcHRpb25zPXttYXhBdHRlbXB0czp0Lm1heEF0dGVtcHRzPz8zLGJhY2tvZmY6dC5iYWNrb2ZmPz8iZXhwb25lbnRpYWwiLGluaXRpYWxEZWxheTp0LmluaXRpYWxEZWxheT8/MWUzLG1heERlbGF5OnQubWF4RGVsYXk/PzNlNCxyZXRyeU9uOnQucmV0cnlPbj8/WzQwOCw0MjksNTAwLDUwMiw1MDMsNTA0XSxvblJldHJ5OnQub25SZXRyeT8/KCgpPT57fSl9fWFzeW5jIGV4ZWN1dGUodCxyKXtsZXQgaSxhO2ZvcihsZXQgbj0xO248PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cztuKyspdHJ5e2xldCBvPWF3YWl0IHQoKTtpZihvIGluc3RhbmNlb2YgUmVzcG9uc2UmJnRoaXMuc2hvdWxkUmV0cnlSZXNwb25zZShvKSl7aWYoYT1vLG49PT10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHMpcmV0dXJuIG87bGV0IHM9dGhpcy5jYWxjdWxhdGVEZWxheShuKTt0aGlzLm9wdGlvbnMub25SZXRyeShuLG5ldyBFcnJvcihgSFRUUCAke28uc3RhdHVzfWApLHMpLGF3YWl0IHRoaXMuZGVsYXkocyk7Y29udGludWV9cmV0dXJuIG99Y2F0Y2gobyl7aT1vIGluc3RhbmNlb2YgRXJyb3I/bzpuZXcgRXJyb3IoU3RyaW5nKG8pKTtsZXQgcz1yP3IobyxuKTp0aGlzLnNob3VsZFJldHJ5RXJyb3Iobyk7aWYobj09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0c3x8IXMpdGhyb3cgaTtsZXQgbD10aGlzLmNhbGN1bGF0ZURlbGF5KG4pO3RoaXMub3B0aW9ucy5vblJldHJ5KG4saSxsKSxhd2FpdCB0aGlzLmRlbGF5KGwpfXRocm93IGl8fG5ldyBFcnJvcigiTWF4IHJldHJ5IGF0dGVtcHRzIHJlYWNoZWQiKX1hc3luYyBleGVjdXRlV2l0aEZhbGxiYWNrcyh0LHIsaSl7aWYodC5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiTm8gVVJMcyBwcm92aWRlZCBmb3IgZmFsbGJhY2sgZXhlY3V0aW9uIik7bGV0IGEsbj1bXTtmb3IobGV0IG8gb2YgdCl0cnl7bGV0IHM9YXdhaXQgdGhpcy5leGVjdXRlKGFzeW5jKCk9PmF3YWl0IGkobyxyKSk7aWYocy5zdGF0dXM8NDAwfHxzLnN0YXR1cz49NDAwJiZzLnN0YXR1czw1MDAmJnMuc3RhdHVzIT09NDA4KXJldHVybiBzO24ucHVzaChvKSxhPW5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtzLnN0YXR1c31gKX1jYXRjaChzKXtuLnB1c2gobyksYT1zIGluc3RhbmNlb2YgRXJyb3I/czpuZXcgRXJyb3IoU3RyaW5nKHMpKX10aHJvdyBuZXcgRXJyb3IoYEFsbCBVUkxzIGZhaWxlZDogJHtuLmpvaW4oIiwgIil9LiBMYXN0IGVycm9yOiAke2E/Lm1lc3NhZ2V8fCJVbmtub3duIGVycm9yIn1gKX1zaG91bGRSZXRyeVJlc3BvbnNlKHQpe2xldCByPXRoaXMub3B0aW9ucy5yZXRyeU9uO3JldHVybiB0eXBlb2Ygcj09ImZ1bmN0aW9uIj9yKHQpOkFycmF5LmlzQXJyYXkocik/ci5pbmNsdWRlcyh0LnN0YXR1cyk6ITF9c2hvdWxkUmV0cnlFcnJvcih0KXtpZih0IGluc3RhbmNlb2YgVHlwZUVycm9yJiZ0Lm1lc3NhZ2UuaW5jbHVkZXMoImZldGNoIil8fHQubmFtZT09PSJBYm9ydEVycm9yInx8dC5tZXNzYWdlLmluY2x1ZGVzKCJ0aW1lb3V0IikpcmV0dXJuITA7bGV0IHI9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3Iodm9pZCAwLHQpOiExfWNhbGN1bGF0ZURlbGF5KHQpe2xldCBpPXB4ZSh0aGlzLm9wdGlvbnMuYmFja29mZikuY2FsY3VsYXRlKHQsdGhpcy5vcHRpb25zLmluaXRpYWxEZWxheSx0aGlzLm9wdGlvbnMubWF4RGVsYXkpO3JldHVybiBoeGUoaSl9YXN5bmMgZGVsYXkodCl7YXdhaXQgenQuZGVsYXlGb3IodCl9fX0pO3ZhciBsdSxwaj1wKCgpPT57V2YoKTtsdT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaW5GbGlnaHRSZXF1ZXN0cz1uZXcgTWFwfWdlbmVyYXRlS2V5KHQpe2xldCByPXQudXJsLGk9dC5tZXRob2Q7cmV0dXJuIGk9PT0iR0VUInx8aT09PSJIRUFEIj9gJHtpfToke3J9YDpgJHtpfToke3J9OiR7RGF0ZS5ub3coKX1gfWFzeW5jIGV4ZWN1dGUodCxyKXtsZXQgaT10aGlzLmluRmxpZ2h0UmVxdWVzdHMuZ2V0KHQpO2lmKGkpcmV0dXJue3Jlc3BvbnNlOihhd2FpdCBpLnByb21pc2UpLmNsb25lKCksd2FzRGVkdXBsaWNhdGVkOiEwfTtsZXQgYT1LZS5kZWZlcigpO3RoaXMuaW5GbGlnaHRSZXF1ZXN0cy5zZXQodCxhKTt0cnl7bGV0IG49YXdhaXQgcigpO3JldHVybiBhLnJlc29sdmUobiksdGhpcy5pbkZsaWdodFJlcXVlc3RzLmRlbGV0ZSh0KSx7cmVzcG9uc2U6bix3YXNEZWR1cGxpY2F0ZWQ6ITF9fWNhdGNoKG4pe3Rocm93IGEucmVqZWN0KG4pLHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5kZWxldGUodCksbn19aXNJbkZsaWdodCh0KXtyZXR1cm4gdGhpcy5pbkZsaWdodFJlcXVlc3RzLmhhcyh0KX1nZXRJbkZsaWdodENvdW50KCl7cmV0dXJuIHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5zaXplfWNsZWFyKCl7dGhpcy5pbkZsaWdodFJlcXVlc3RzLmNsZWFyKCl9fX0pO2Z1bmN0aW9uIE9ncihlKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLHI9bmV3IHp0LlRpbWVvdXQoZSxudWxsKTtyZXR1cm4gci5wcm9taXNlLnRoZW4oKCk9Pnt0LmFib3J0KCl9KSx7Y29udHJvbGxlcjp0LGNsZWFudXA6KCk9PntyLmNhbmNlbCgpfX19YXN5bmMgZnVuY3Rpb24gaGooZSx0LHIpe2xldHtjb250cm9sbGVyOmksY2xlYW51cDphfT1PZ3Iocik7dHJ5e2xldCBuPWF3YWl0IGZldGNoKGUsey4uLnQsc2lnbmFsOmkuc2lnbmFsfSk7cmV0dXJuIGEoKSxufWNhdGNoKG4pe3Rocm93IGEoKSxuIGluc3RhbmNlb2YgRXJyb3ImJm4ubmFtZT09PSJBYm9ydEVycm9yIj9uZXcgRXJyb3IoYFJlcXVlc3QgdGltZW91dCBhZnRlciAke3J9bXM6ICR7ZX1gKTpufX12YXIgbXhlPXAoKCk9PntXZigpfSk7dmFyIEQzLGZqPXAoKCk9Pnt5cSgpO2xqKCk7dWooKTtwaigpO214ZSgpO0QzPWNsYXNze2NvbnN0cnVjdG9yKHQ9e30pe3RoaXMuZGVmYXVsdE9wdGlvbnM9dCx0aGlzLmludGVyY2VwdG9yTWFuYWdlcj1uZXcgWDUsdGhpcy5jYWNoZU1hbmFnZXI9bmV3IG91LHRoaXMuZGVkdXBsaWNhdG9yPW5ldyBsdX1hZGRSZXF1ZXN0SW50ZXJjZXB0b3IodCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVxdWVzdEludGVyY2VwdG9yKHQpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IodCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcih0KX1hZGRFcnJvckludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZEVycm9ySW50ZXJjZXB0b3IodCl9cmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcih0KX1yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IodCl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcih0KXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVFcnJvckludGVyY2VwdG9yKHQpfWNsZWFySW50ZXJjZXB0b3JzKCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuY2xlYXJBbGwoKX1hc3luYyBjbGVhckNhY2hlKCl7YXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuY2xlYXIoKX1hc3luYyByZXF1ZXN0KHQscj17fSl7bGV0IGk9ey4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsLi4ucn0sYTtpZih0eXBlb2YgdD09InN0cmluZyI/YT1uZXcgUmVxdWVzdCh0LGkpOmE9dCxhPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXF1ZXN0KGEpLGkuaW50ZXJjZXB0b3JzPy5yZXF1ZXN0KWZvcihsZXQgbyBvZiBpLmludGVyY2VwdG9ycy5yZXF1ZXN0KWE9YXdhaXQgbyhhKTtpZihpLmRlZHVwbGljYXRlPz8hMSl7bGV0IG89dGhpcy5kZWR1cGxpY2F0b3IuZ2VuZXJhdGVLZXkoYSk7cmV0dXJuKGF3YWl0IHRoaXMuZGVkdXBsaWNhdG9yLmV4ZWN1dGUobyxhc3luYygpPT5hd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KGEsaSkpKS5yZXNwb25zZX1yZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdChhLGkpfWFzeW5jIGV4ZWN1dGVSZXF1ZXN0KHQscil7dHJ5e2xldCBpPXR5cGVvZiByLnJldHJ5PT0ib2JqZWN0Ij9yLnJldHJ5OnIucmV0cnk/e306dm9pZCAwLGE9YXN5bmMgcz0+e2xldCBsPXIudGltZW91dD8/NmU0O3JldHVybiBhd2FpdCBoaihzLnVybCx7bWV0aG9kOnMubWV0aG9kLGhlYWRlcnM6cy5oZWFkZXJzLGJvZHk6cy5ib2R5LC4uLnJ9LGwpfSxuPWFzeW5jKHMsbCk9PntsZXQgYz1yLnRpbWVvdXQ/PzZlNDtyZXR1cm4gYXdhaXQgaGoocyxsLGMpfSxvO2lmKGkpe2xldCBzPW5ldyBzdShpKTtpZihyLmZhbGxiYWNrVXJscyYmci5mYWxsYmFja1VybHMubGVuZ3RoPjApe2xldCBsPVt0LnVybCwuLi5yLmZhbGxiYWNrVXJsc107bz1hd2FpdCBzLmV4ZWN1dGVXaXRoRmFsbGJhY2tzKGwse21ldGhvZDp0Lm1ldGhvZCxoZWFkZXJzOnQuaGVhZGVycyxib2R5OnQuYm9keSwuLi5yfSxuKX1lbHNlIG89YXdhaXQgcy5leGVjdXRlKGFzeW5jKCk9Pihhd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5leGVjdXRlKHQscixhKSkucmVzcG9uc2UpfWVsc2Ugbz0oYXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuZXhlY3V0ZSh0LHIsYSkpLnJlc3BvbnNlO2lmKG89YXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc1Jlc3BvbnNlKG8pLHIuaW50ZXJjZXB0b3JzPy5yZXNwb25zZSlmb3IobGV0IHMgb2Ygci5pbnRlcmNlcHRvcnMucmVzcG9uc2Upbz1hd2FpdCBzKG8pO3JldHVybiBvfWNhdGNoKGkpe3Rocm93IGF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NFcnJvcihpIGluc3RhbmNlb2YgRXJyb3I/aTpuZXcgRXJyb3IoU3RyaW5nKGkpKSl9fWFzeW5jIGdldEpzb24odCxyPXt9KXtsZXQgaT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4ucixtZXRob2Q6IkdFVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5yLmhlYWRlcnN8fHt9fX0pO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2kuc3RhdHVzfTogJHtpLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGkuanNvbigpfWFzeW5jIHBvc3RKc29uKHQscixpPXt9KXtsZXQgYT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4uaSxtZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmkuaGVhZGVyc3x8e319LGJvZHk6SlNPTi5zdHJpbmdpZnkocil9KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX1hc3luYyBwdXRKc29uKHQscixpPXt9KXtsZXQgYT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4uaSxtZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uaS5oZWFkZXJzfHx7fX0sYm9keTpKU09OLnN0cmluZ2lmeShyKX0pO2lmKCFhLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2Euc3RhdHVzfTogJHthLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGEuanNvbigpfWFzeW5jIGRlbGV0ZUpzb24odCxyPXt9KXtsZXQgaT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4ucixtZXRob2Q6IkRFTEVURSIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5yLmhlYWRlcnN8fHt9fX0pO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2kuc3RhdHVzfTogJHtpLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGkuanNvbigpfX19KTthc3luYyBmdW5jdGlvbiBJbihlLHQpe2xldCByPWUgaW5zdGFuY2VvZiBSZXF1ZXN0P2UudXJsOlN0cmluZyhlKSxpPWUgaW5zdGFuY2VvZiBSZXF1ZXN0P2U6bmV3IFJlcXVlc3Qocix0KTtyZXR1cm4gYXdhaXQgYTIucmVxdWVzdChpLHQpfXZhciBhMixneGU9cCgoKT0+e2ZqKCk7YTI9bmV3IEQzO0luLmdldEpzb249YXN5bmMgZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXdhaXQgYTIuZ2V0SnNvbihlLHQpfSxJbi5wb3N0SnNvbj1hc3luYyBmdW5jdGlvbihlLHQscil7cmV0dXJuIGF3YWl0IGEyLnBvc3RKc29uKGUsdCxyKX0sSW4ucHV0SnNvbj1hc3luYyBmdW5jdGlvbihlLHQscil7cmV0dXJuIGF3YWl0IGEyLnB1dEpzb24oZSx0LHIpfSxJbi5kZWxldGVKc29uPWFzeW5jIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGF3YWl0IGEyLmRlbGV0ZUpzb24oZSx0KX0sSW4uYWRkUmVxdWVzdEludGVyY2VwdG9yPWZ1bmN0aW9uKGUpe2EyLmFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKX0sSW4uYWRkUmVzcG9uc2VJbnRlcmNlcHRvcj1mdW5jdGlvbihlKXthMi5hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpfSxJbi5hZGRFcnJvckludGVyY2VwdG9yPWZ1bmN0aW9uKGUpe2EyLmFkZEVycm9ySW50ZXJjZXB0b3IoZSl9LEluLmNsZWFySW50ZXJjZXB0b3JzPWZ1bmN0aW9uKCl7YTIuY2xlYXJJbnRlcmNlcHRvcnMoKX0sSW4uY2xlYXJDYWNoZT1hc3luYyBmdW5jdGlvbigpe2F3YWl0IGEyLmNsZWFyQ2FjaGUoKX0sSW4uY3JlYXRlQ2xpZW50PWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgRDMoZSl9LEluLmdldERlZmF1bHRDbGllbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gYTJ9fSk7dmFyIFpmPXt9O0ZlKFpmLHtDYWNoZU1hbmFnZXI6KCk9Pm91LENhY2hlU3RvcmU6KCk9Pm51LEludGVyY2VwdG9yTWFuYWdlcjooKT0+WDUsUmVxdWVzdERlZHVwbGljYXRvcjooKT0+bHUsUmV0cnlNYW5hZ2VyOigpPT5zdSxXZWJyZXF1ZXN0Q2xpZW50OigpPT5EMyxjcmVhdGVDb25kaXRpb25hbEhlYWRlcnM6KCk9PlJ3LGV4dHJhY3RDYWNoZU1ldGFkYXRhOigpPT5vcyxoZWFkZXJzVG9PYmplY3Q6KCk9PkJ3LGlzRnJlc2g6KCk9PkdmLG9iamVjdFRvSGVhZGVyczooKT0+Y3hlLHJlcXVpcmVzUmV2YWxpZGF0aW9uOigpPT5ZZix3ZWJyZXF1ZXN0OigpPT5Jbn0pO3ZhciBieGU9cCgoKT0+e2d4ZSgpO2ZqKCk7bGooKTtPdygpO3VqKCk7eXEoKTtwaigpO0h3KCl9KTt2YXIgcDAsaDA9cCgoKT0+e0toKCk7cDA9ZXIodXYoKSwxKTtfZigpO2piZSgpO1kyKCk7VmJlKCk7c2EoKTtieGUoKX0pO3ZhciB6bCxYZj1wKCgpPT57aDAoKTt6bD1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuZXJyb3JUZXh0PXQsdGhpcy5lcnJvckRhdGE9cn19fSk7dmFyIFV3LHZ4ZT1wKCgpPT57WGYoKTtoMCgpO1V3PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5sb2NhbERhdGE9e319YXN5bmMgcGFzc0d1YXJkcyh0LHIpe2xldCBpPW5ldyBGZi5HdWFyZFNldCh0KTtpZighYXdhaXQgaS5hbGxHdWFyZHNQYXNzKHIpKXtsZXQgbj1hd2FpdCBpLmdldEZhaWxlZEhpbnQocik7dGhyb3cgbmV3IHpsKGBndWFyZCBmYWlsZWQ6ICR7bn1gLHtmYWlsZWRIaW50Om59KX19fX0pO3ZhciBtaixnaj1wKCgpPT57aDAoKTtYZigpO3Z4ZSgpO21qPWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy5tZXRob2Q9dCx0aGlzLmhhbmRsZXJGdW5jdGlvbj1yfWFzeW5jIGFkZFJlc3BvbnNlKHQpe2lmKHQubWV0aG9kIT09dGhpcy5tZXRob2QpdGhyb3cgbmV3IEVycm9yKCJ0aGlzIGhhbmRsZXIgaGFzIGJlZW4gZ2l2ZW4gYSB3cm9uZyBtZXRob2QgdG8gYW5zd2VyIHRvLiBQbGVhc2UgdXNlIGEgVHlwZWRSb3V0ZXIgdG8gZmlsdGVyIHJlcXVlc3RzIik7bGV0IHIsaT1uZXcgVXc7dC5sb2NhbERhdGEmJihpLmxvY2FsRGF0YT10LmxvY2FsRGF0YSk7bGV0IGE9YXdhaXQgdGhpcy5oYW5kbGVyRnVuY3Rpb24odC5yZXF1ZXN0LGkpLmNhdGNoKG49PntuIGluc3RhbmNlb2Ygemw/cj1uOmNvbnNvbGUubG9nKG4pfSk7cmV0dXJuIHImJih0LmVycm9yPXt0ZXh0OnIuZXJyb3JUZXh0LGRhdGE6ci5lcnJvckRhdGF9KSxhJiYodC5yZXNwb25zZT1hKSx0Py5jb3JyZWxhdGlvbj8ucGhhc2UmJih0LmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIpLHR9fX0pO3ZhciBFMyxRZj1wKCgpPT57aDAoKTtXdygpO2dqKCk7YmooKTtFMz1jbGFzcyBle2NvbnN0cnVjdG9yKCl7dGhpcy5ob29rcz17fSx0aGlzLnJvdXRlck1hcD1uZXcgZGkuT2JqZWN0TWFwLHRoaXMuaGFuZGxlck1hcD1uZXcgZGkuT2JqZWN0TWFwLHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zPW5ldyBkaS5PYmplY3RNYXAsdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcD1uZXcgZGkuSW50ZXJlc3RNYXAodD0+dCl9c3RhdGljIGdldCBnbG9iYWxIb29rcygpe3JldHVybiBnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc3x8KGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9KSxnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc31zdGF0aWMgc2V0IGdsb2JhbEhvb2tzKHQpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXR9c3RhdGljIHNldEdsb2JhbEhvb2tzKHQpe2xldCByPWUuZ2xvYmFsSG9va3M7ZS5nbG9iYWxIb29rcz17Li4uciwuLi50fX1zdGF0aWMgY2xlYXJHbG9iYWxIb29rcygpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9fXNldEhvb2tzKHQpe3RoaXMuaG9va3M9ey4uLnRoaXMuaG9va3MsLi4udH19Y2FsbEhvb2sodCxyKXt0cnl7ZS5nbG9iYWxIb29rc1t0XT8uKHIpLHRoaXMuaG9va3NbdF0/LihyKX1jYXRjaChpKXtjb25zb2xlLmVycm9yKGBUeXBlZFJvdXRlciBob29rIGVycm9yICgke3R9KTpgLGkpfX1hZGRUeXBlZEhhbmRsZXIodCl7aWYodGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodC5tZXRob2QpKXRocm93IG5ldyBFcnJvcihgYSBUeXBlZEhhbmRsZXIgZm9yICR7dC5tZXRob2R9IGFscmVkeSBleGlzdHMhIENhbid0IGFkZCBhbm90aGVyIG9uZS5gKTt0aGlzLmhhbmRsZXJNYXAuYWRkKHQpfWFkZFR5cGVkUm91dGVyKHQpe3RoaXMucm91dGVyTWFwLmZpbmRTeW5jKGk9Pmk9PT10KXx8KHRoaXMucm91dGVyTWFwLmFkZCh0KSx0LmFkZFR5cGVkUm91dGVyKHRoaXMpKX1jaGVja0ZvclR5cGVkSGFuZGxlcih0KXtyZXR1cm4hIXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKHQpfWdldFR5cGVkSGFuZGxlckZvck1ldGhvZCh0LHI9W10pe3IucHVzaCh0aGlzKTtsZXQgaTtyZXR1cm4gaT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMoYT0+YS5tZXRob2Q9PT10KSxpfHx0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpLmZvckVhY2goYT0+eyFpJiYhci5pbmNsdWRlcyhhKSYmKGk9YS5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodCxyKSl9KSxpfXN0YXRpY3t0aGlzLmRlZmF1bHRSb3V0ZU9wdGlvbnM9e2xvY2FsUmVxdWVzdDohMSxza2lwSG9va3M6ITF9fWFzeW5jIHJvdXRlQW5kQWRkUmVzcG9uc2UodCxyPXt9KXtsZXQgaT17Li4uZS5kZWZhdWx0Um91dGVPcHRpb25zLC4uLnJ9O2lmKHQ9c3MuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHQse3R5cGVkcm91dGVyOnRoaXN9KSx0LmxvY2FsRGF0YT10LmxvY2FsRGF0YXx8e30sdC5sb2NhbERhdGEuZmlyc3RUeXBlZHJvdXRlcj10aGlzLHQubWV0aG9kPT09IiMjVmlydHVhbFN0cmVhbSMjIil7bGV0IGE9YXdhaXQgdGhpcy5oYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QodCk7cmV0dXJuIGEubG9jYWxEYXRhPW51bGwsYX1pZih0Py5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVxdWVzdCJ8fGkubG9jYWxSZXF1ZXN0KXtsZXQgYT1EYXRlLm5vdygpO2kuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6dC5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6dC5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDphLHBheWxvYWQ6dC5yZXF1ZXN0fSk7bGV0IG49dGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodC5tZXRob2QpO3JldHVybiBuPyh0PWF3YWl0IG4uYWRkUmVzcG9uc2UodCksdC5sb2NhbERhdGE9bnVsbCx0PXNzLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHQse3R5cGVkcm91dGVyOnRoaXN9KSxpLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDp0LmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDp0Lm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1hLHBheWxvYWQ6dC5yZXNwb25zZSxlcnJvcjp0LmVycm9yPy50ZXh0fSksdCk6KGNvbnNvbGUubG9nKGBDYW5ub3QgZmluZCBoYW5kbGVyIGZvciBtZXRob2RuYW1lICR7dC5tZXRob2R9YCksdC5lcnJvcj17dGV4dDoiVGhlcmUgaXMgbm8gYXZhaWxhYmxlIG1ldGhvZCBmb3IgdGhpcyBjYWxsIG9uIHRoZSBzZXJ2ZXIgc2lkZSIsZGF0YTp7fX0sdC5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLHQubG9jYWxEYXRhPW51bGwsdD1zcy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayh0LHt0eXBlZHJvdXRlcjp0aGlzfSksaS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6dC5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6dC5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktYSxwYXlsb2FkOnQucmVzcG9uc2UsZXJyb3I6dC5lcnJvcj8udGV4dH0pLHQpfWVsc2UgcmV0dXJuIHQ/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXNwb25zZSI/KGkuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOnQuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOnQubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCkscGF5bG9hZDp0LnJlc3BvbnNlLGVycm9yOnQuZXJyb3I/LnRleHR9KSx0aGlzLmZpcmVFdmVudEludGVyZXN0TWFwLmZpbmRJbnRlcmVzdCh0LmNvcnJlbGF0aW9uLmlkKT8uZnVsbGZpbGxJbnRlcmVzdCh0KSxudWxsKTooY29uc29sZS5sb2coInJlY2VpdmVkIHdlaXJkbHkgc2hhcGVkIHJlcXVlc3QiKSxjb25zb2xlLmxvZyh0KSxudWxsKX1hc3luYyBoYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QodCl7bGV0IHI9YXdhaXQgdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZmluZChhc3luYyBhPT5hLnN0cmVhbUlkPT09dC5yZXF1ZXN0LnN0cmVhbUlkKTtpZihyKWNvbnNvbGUubG9nKGBzdWNjZXNzOiBmb3VuZCByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSB3aXRoIGlkICR7dC5yZXF1ZXN0LnN0cmVhbUlkfWApO2Vsc2UgcmV0dXJuIGNvbnNvbGUubG9nKGBubyByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSBmb3VuZCBmb3Igc3RyZWFtIHdpdGggaWQgJHt0LnJlcXVlc3Quc3RyZWFtSWR9YCksY29uc29sZS5sb2codGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZ2V0QXJyYXkoKSksdDtyZXR1cm4gYXdhaXQgci5oYW5kbGVTdHJlYW1Ucih0KX19fSk7dmFyIHh4ZSxzcyxXdz1wKCgpPT57aDAoKTtRZigpO3h4ZT0iIyMjIyMjIyMjIyMjI0NMT1NJTkcgQklUIyMjIyMjIyMjIyMjIyIsc3M9Y2xhc3MgZXtzdGF0aWMgZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsodCxyLGksYT1bXSl7cmV0dXJuIXR8fFo1LmlzQnVmZmVyTGlrZSh0KT90OnQgaW5zdGFuY2VvZiBlPyghdC5zaWRlJiZyLnNlbmRNZXRob2QmJih0LnNpZGU9InJlcXVlc3RpbmciLHQuc2VuZE1ldGhvZD1yLnNlbmRNZXRob2QpLCF0LnNpZGUmJnIudHlwZWRyb3V0ZXImJih0LnNpZGU9InJlc3BvbmRpbmciLHQudHlwZWRyb3V0ZXI9ci50eXBlZHJvdXRlcixyLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQodCkpLCFpLnJlc3BvbnNlfHxhLmluY2x1ZGVzKCJyZXNwb25zZSIpPyh0LnN0YXJ0S2VlcEFsaXZlTG9vcCgpLHtfaXNWaXJ0dWFsU3RyZWFtOiEwLHN0cmVhbUlkOnQuc3RyZWFtSWR9KTp7X09CTUlUVEVEX1ZJUlRVQUxfU1RSRUFNOiEwLHJlYXNvbjoicGF0aCBpcyB1bmRlciAucmVxdWVzdDogb2JtaXR0ZWQgZm9yIGRlZHVwbGljYXRpb24gcmVhc29ucyBpbiByZXNwb25zZSBjeWNsZS4ifSk6QXJyYXkuaXNBcnJheSh0KT90Lm1hcCgobixvKT0+ZS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhuLHIsaXx8dCxhLmNvbmNhdChTdHJpbmcobykpKSk6dCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0Ij9PYmplY3QuZW50cmllcyh0KS5yZWR1Y2UoKG4sW28sc10pPT57bGV0IGw9YS5jb25jYXQobyk7cmV0dXJuIG5bb109ZS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhzLHIsaXx8dCxsKSxufSx7fSk6dH1zdGF0aWMgZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHQscil7aWYoWjUuaXNCdWZmZXJMaWtlKHQpfHx0IGluc3RhbmNlb2YgRTMpcmV0dXJuIHQ7aWYodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0Iil7aWYodCBpbnN0YW5jZW9mIFNldHx8dCBpbnN0YW5jZW9mIE1hcHx8dCBpbnN0YW5jZW9mIERhdGV8fHQgaW5zdGFuY2VvZiBSZWdFeHB8fHQgaW5zdGFuY2VvZiBFcnJvcnx8dCBpbnN0YW5jZW9mIFByb21pc2V8fHR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIHQ7aWYodC5faXNWaXJ0dWFsU3RyZWFtKXtsZXQgaT1uZXcgZTtyZXR1cm4gaS5zdHJlYW1JZD10LnN0cmVhbUlkLCFpLnNpZGUmJnIuc2VuZE1ldGhvZCYmKGkuc2lkZT0icmVxdWVzdGluZyIsaS5zZW5kTWV0aG9kPXIuc2VuZE1ldGhvZCksIWkuc2lkZSYmci50eXBlZHJvdXRlciYmKGkuc2lkZT0icmVzcG9uZGluZyIsaS50eXBlZHJvdXRlcj1yLnR5cGVkcm91dGVyLHIudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChpKSksaS5zdGFydEtlZXBBbGl2ZUxvb3AoKSxpfWVsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGk9W107Zm9yKGxldCBhIG9mIHQpaS5wdXNoKGUuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGEscikpO3JldHVybiBpfWVsc2UgcmV0dXJuIE9iamVjdC5rZXlzKHQpLnJlZHVjZSgoaSxhKT0+KGlbYV09ZS5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsodFthXSxyKSxpKSx7fSl9ZWxzZSByZXR1cm4gdH1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RyZWFtSWQ9cDAudW5pKCksdGhpcy5rZWVwQWxpdmU9ITAsdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5PW5ldyBkaS5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheT1uZXcgZGkuQmFja3ByZXNzdXJlZEFycmF5KDE2KX1hc3luYyB3b3JrT25RdWV1ZSgpe2lmKHRoaXMud29ya2luZ0RlZmVycmVkKXJldHVybiB0aGlzLndvcmtpbmdEZWZlcnJlZC5wcm9taXNlO2lmKHRoaXMud29ya2luZ0RlZmVycmVkPUtlLmRlZmVyKCksdGhpcy5zaWRlPT09InJlcXVlc3RpbmciKXtsZXQgdD0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxyPSExLGk9ITEsYT1hc3luYygpPT57bGV0IG49YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6cDAudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e2NvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExfSk7biYmbi5yZXNwb25zZSYmKGk9bi5yZXNwb25zZS5iYWNrcHJlc3N1cmUscj1uLnJlc3BvbnNlLm5leHQpfTtmb3IoYXdhaXQgYSgpO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wfHxyOyl7aWYoaSlmb3IoO2k7KWNvbnNvbGUubG9nKCJ3YWl0aW5nIGZvciBmZWVkYmFjayBiZWNhdXNlIG9mIGJhY2twcmVzc3VyZS4uLiIpLGF3YWl0IHp0LmRlbGF5Rm9yKDUwKSxhd2FpdCBhKCk7bGV0IG47dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJihuPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpKTtsZXQgbztvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOnAwLnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZTpuPyJjaHVuayI6InJlYWQiLGJhY2twcmVzc3VyZTp0LG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsLi4ubj97Y2h1bmtEYXRhOm59Ont9fSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pihjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMSxudWxsKSksbyYmby5yZXNwb25zZSYmby5yZXNwb25zZS5jaHVua0RhdGEmJnRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKG8ucmVzcG9uc2UuY2h1bmtEYXRhKSxpPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuYmFja3ByZXNzdXJlLHQ9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCkscj1vJiZvLnJlc3BvbnNlJiZvLnJlc3BvbnNlLm5leHR9fXRoaXMud29ya2luZ0RlZmVycmVkLnJlc29sdmUoKSx0aGlzLndvcmtpbmdEZWZlcnJlZD1udWxsfWFzeW5jIGhhbmRsZVN0cmVhbVRyKHQpe2lmKHQucmVxdWVzdC5rZWVwQWxpdmU9PT0hMCYmdGhpcy5rZWVwQWxpdmU9PT0hMD90aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpOnQucmVxdWVzdC5rZWVwQWxpdmU9PT0hMSYmKHRoaXMua2VlcEFsaXZlPSExKSx0LnJlcXVlc3QubWFpblB1cnBvc2U9PT0ia2VlcEFsaXZlIiYmKHQucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLHQucmVxdWVzdC5tYWluUHVycG9zZT09PSJmZWVkYmFjayImJih0LnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6dC5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksdC5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImNodW5rIil7aWYodGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnB1c2godC5yZXF1ZXN0LmNodW5rRGF0YSksdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJnQucmVzcG9uc2UuYmFja3ByZXNzdXJlPT09ITEpe2xldCByPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpO3QucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJjaHVuayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MSxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksY2h1bmtEYXRhOnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpfX1lbHNlIHQucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9O3QucmVxdWVzdD1udWxsfXJldHVybiB0fWFzeW5jIGNsZWFudXAoKXt0aGlzLnR5cGVkcm91dGVyJiZ0aGlzLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5yZW1vdmUodGhpcyl9YXN5bmMgc3RhcnRLZWVwQWxpdmVMb29wKCl7aWYodGhpcy5zaWRlPT09InJlc3BvbmRpbmciKXJldHVybjthd2FpdCB6dC5kZWxheUZvcigwKSxjb25zb2xlLmxvZyhgc3RhcnRpbmcga2VlcGFsaXZlIGxvb3Agb24gc2lkZSAke3RoaXMuc2lkZX1gKTtsZXQgdD0wO2Zvcig7dGhpcy5rZWVwQWxpdmU7KWF3YWl0IHRoaXMudHJpZ2dlcktlZXBBbGl2ZSgpLGF3YWl0IHp0LmRlbGF5Rm9yKDFlMyk7YXdhaXQgenQuZGVsYXlGb3IoMWUzKSxhd2FpdCB0aGlzLmNsZWFudXAoKSxjb25zb2xlLmxvZyhgY2xlYW5lZCB1cCBmb3Igc3RyZWFtICR7dGhpcy5zdHJlYW1JZH1gKX1hc3luYyB0cmlnZ2VyS2VlcEFsaXZlKCl7aWYodGhpcy5zaWRlPT09InJlcXVlc3RpbmciKXtjb25zb2xlLmxvZygia2VlcGFsaXZlIHNlbnQuIik7bGV0IHQ9YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6cDAudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT57dGhpcy5rZWVwQWxpdmU9ITF9KTt0JiZ0LnJlc3BvbnNlJiZ0LnJlc3BvbnNlLmtlZXBBbGl2ZT09PSExP3RoaXMua2VlcEFsaXZlPSExOnRoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCksdCYmdC5yZXNwb25zZSYmdC5yZXNwb25zZS5uZXh0JiZ0aGlzLndvcmtPblF1ZXVlKCl9RGF0ZS5ub3coKS10aGlzLmxhc3RLZWVwQWxpdmVFdmVudD4xZTQmJihjb25zb2xlLmxvZyhgY2xvc2luZyBzdHJlYW0gZm9yICR7dGhpcy5zdHJlYW1JZH1gKSx0aGlzLmtlZXBBbGl2ZT0hMSl9YXN5bmMgc2VuZERhdGEodCl7dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnB1c2godCksdGhpcy53b3JrT25RdWV1ZSgpLGF3YWl0IHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9yU3BhY2UoKX1hc3luYyBmZXRjaERhdGEoKXtyZXR1cm4gdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5Lmhhc1NwYWNlLGF3YWl0IHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9ySXRlbXMoKSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX1hc3luYyByZWFkRnJvbVdlYnN0cmVhbSh0LHI9ITApe2xldCBpPXQuZ2V0UmVhZGVyKCksYT0hMTtmb3IoOyFhOyl7bGV0e3ZhbHVlOm4sZG9uZTpvfT1hd2FpdCBpLnJlYWQoKTtuJiZhd2FpdCB0aGlzLnNlbmREYXRhKG4pLGE9b31yJiZhd2FpdCB0aGlzLmNsb3NlKCEwKX1hc3luYyB3cml0ZVRvV2Vic3RyZWFtKHQpe2xldCByPXQuZ2V0V3JpdGVyKCk7Zm9yKDt0aGlzLmtlZXBBbGl2ZXx8dGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrSGFzSXRlbXMoKTspe2xldCBpPWF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7aWYoaT09PXh4ZSl7ci5yZWxlYXNlTG9jaygpLGF3YWl0IHQuY2xvc2UoKTticmVha31hd2FpdCByLndyaXRlKGkpfX1hc3luYyBjbG9zZSh0PSExKXt0JiZ0aGlzLnNlbmREYXRhKHh4ZSksdGhpcy5rZWVwQWxpdmU9ITF9fX0pO3ZhciB2aix4aj1wKCgpPT57UWYoKTtoMCgpO3ZqPWNsYXNze2NvbnN0cnVjdG9yKHQpe2lmKHQucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciYmIXQudHlwZWRSb3V0ZXJSZWYpdGhyb3cgbmV3IEVycm9yKCJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgdHlwZWRyb3V0ZXIgd2hlbiB1c2luZyBwb3N0bWV0aG9kIHdpdGggdHlwZWRyb3V0ZXIiKTt0aGlzLm9wdGlvbnM9dH1hc3luYyBwb3N0KHQpe2xldCByO3RoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZiYmKHI9YXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KHQuY29ycmVsYXRpb24uaWQsdCkpO2xldCBhPWF3YWl0KHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kfHx0aGlzLm9wdGlvbnMucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcikodCksbjtyZXR1cm4gcj9uPWF3YWl0IHIuaW50ZXJlc3RGdWxsZmlsbGVkOmE/bj1hOm49dCxufX19KTtmdW5jdGlvbiB5eGUoZSx0KXt0cnl7RTMuZ2xvYmFsSG9va3NbZV0/Lih0KX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJlcXVlc3QgaG9vayBlcnJvciAoJHtlfSk6YCxyKX19dmFyIFJncixKZixiaj1wKCgpPT57aDAoKTtXdygpO1hmKCk7UWYoKTt4aigpO1Jncj1uZXcgWmYuV2VicmVxdWVzdENsaWVudDtKZj1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuc2tpcEhvb2tzPSExLHR5cGVvZiB0PT0ic3RyaW5nIj90aGlzLnVybEVuZFBvaW50PXQ6dGhpcy50eXBlZFRhcmdldD10LHRoaXMubWV0aG9kPXJ9YXN5bmMgZmlyZSh0LHI9ITEpe2xldCBpPURhdGUubm93KCksYT17bWV0aG9kOnRoaXMubWV0aG9kLHJlcXVlc3Q6dCxyZXNwb25zZTpudWxsLGNvcnJlbGF0aW9uOntpZDpwMC51bmkoKSxwaGFzZToicmVxdWVzdCJ9fTthPXNzLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKGEse3NlbmRNZXRob2Q6bz0+dGhpcy5wb3N0VHJPYmplY3Qobyl9KSx0aGlzLnNraXBIb29rc3x8eXhlKCJvbk91dGdvaW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6YS5jb3JyZWxhdGlvbi5pZCxtZXRob2Q6dGhpcy5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDppLHBheWxvYWQ6dH0pO2xldCBuO3JldHVybiBuPWF3YWl0IHRoaXMucG9zdFRyT2JqZWN0KGEsciksbj1zcy5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsobix7c2VuZE1ldGhvZDpvPT50aGlzLnBvc3RUck9iamVjdChvKX0pLHRoaXMuc2tpcEhvb2tzfHx5eGUoIm9uSW5jb21pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6YS5jb3JyZWxhdGlvbi5pZCxtZXRob2Q6dGhpcy5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktaSxwYXlsb2FkOm4/LnJlc3BvbnNlLGVycm9yOm4/LmVycm9yPy50ZXh0fSksbi5yZXNwb25zZX1hc3luYyBwb3N0VHJPYmplY3QodCxyPSExKXtsZXQgaTtpZih0aGlzLnVybEVuZFBvaW50P2k9YXdhaXQgUmdyLnBvc3RKc29uKHRoaXMudXJsRW5kUG9pbnQsdCxyP3tjYWNoZVN0cmF0ZWd5OiJjYWNoZS1maXJzdCJ9Ont9KTppPWF3YWl0IHRoaXMudHlwZWRUYXJnZXQucG9zdCh0KSxpLmVycm9yKXtpZihjb25zb2xlLmVycm9yKGBtZXRob2Q6ID4+JHt0aGlzLm1ldGhvZH08PCBnb3QgYW4gRVJST1I6ICIke2kuZXJyb3IudGV4dH0iIHdpdGggZGF0YSAke0pTT04uc3RyaW5naWZ5KGkuZXJyb3IuZGF0YSxudWxsLDIpfWApLCFpLnJldHJ5KXRocm93IG5ldyB6bChpLmVycm9yLnRleHQsaS5lcnJvci5kYXRhKTtyZXR1cm4gbnVsbH1yZXR1cm4gaS5yZXRyeSYmKGNvbnNvbGUubG9nKGBzZXJ2ZXIgcmVxdWVzdGVkIHJldHJ5IGZvciB0aGUgZm9sbG93aW5nIHJlYXNvbjogJHtpLnJldHJ5LnJlYXNvbn1gKSxhd2FpdCB6dC5kZWxheUZvcihpLnJldHJ5LndhaXRGb3JNcyksaT1hd2FpdCB0aGlzLnBvc3RUck9iamVjdCh0LHIpKSxpfX19KTt2YXIgVmE9e307RmUoVmEse1R5cGVkSGFuZGxlcjooKT0+bWosVHlwZWRSZXF1ZXN0OigpPT5KZixUeXBlZFJlc3BvbnNlRXJyb3I6KCk9PnpsLFR5cGVkUm91dGVyOigpPT5FMyxUeXBlZFRhcmdldDooKT0+dmosVmlydHVhbFN0cmVhbTooKT0+c3N9KTt2YXIgS2Y9cCgoKT0+e2JqKCk7Z2ooKTtRZigpO1hmKCk7eGooKTtXdygpfSk7ZnVuY3Rpb24gd3hlKGUpe3JldHVybiBlJiZ0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIGxzKGUsdCl7cmV0dXJuIGV8fChlPTApLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHIodCl9LGUpfSl9ZnVuY3Rpb24gU3hlKGUsdCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoodC1lKzEpK2UpfWZ1bmN0aW9uIENsKCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKX1mdW5jdGlvbiBUbCgpe3ZhciBlPURhdGUubm93KCkqMWUzO3JldHVybiBlPD15aiYmKGU9eWorMSkseWo9ZSxlfWZ1bmN0aW9uIHp4ZSgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmdHlwZW9mIG5hdmlnYXRvci5sb2NrczwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3MucmVxdWVzdD09ImZ1bmN0aW9uIn12YXIgTXhlLGt4ZSxQbix5aixmMD1wKCgpPT57TXhlPVByb21pc2UucmVzb2x2ZSghMSksa3hlPVByb21pc2UucmVzb2x2ZSghMCksUG49UHJvbWlzZS5yZXNvbHZlKCk7eWo9MH0pO2Z1bmN0aW9uIHFncihlKXt2YXIgdD17dGltZTpUbCgpLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxiYzpuZXcgQnJvYWRjYXN0Q2hhbm5lbChlKSxzdWJGbnM6W119O3JldHVybiB0LmJjLm9ubWVzc2FnZT1mdW5jdGlvbihyKXt0Lm1lc3NhZ2VzQ2FsbGJhY2smJnQubWVzc2FnZXNDYWxsYmFjayhyLmRhdGEpfSx0fWZ1bmN0aW9uIGpncihlKXtlLmJjLmNsb3NlKCksZS5zdWJGbnM9W119ZnVuY3Rpb24gVmdyKGUsdCl7dHJ5e3JldHVybiBlLmJjLnBvc3RNZXNzYWdlKHQsITEpLFBufWNhdGNoKHIpe3JldHVybiBQcm9taXNlLnJlamVjdChyKX19ZnVuY3Rpb24gVWdyKGUsdCl7ZS5tZXNzYWdlc0NhbGxiYWNrPXR9ZnVuY3Rpb24gV2dyKCl7aWYodHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzLkRlbm8mJmdsb2JhbFRoaXMuRGVuby5hcmdzKXJldHVybiEwO2lmKCh0eXBlb2Ygd2luZG93PCJ1Inx8dHlwZW9mIHNlbGY8InUiKSYmdHlwZW9mIEJyb2FkY2FzdENoYW5uZWw9PSJmdW5jdGlvbiIpe2lmKEJyb2FkY2FzdENoYW5uZWwuX3B1YmtleSl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWw6IERvIG5vdCBvdmVyd3JpdGUgd2luZG93LkJyb2FkY2FzdENoYW5uZWwgd2l0aCB0aGlzIG1vZHVsZSwgdGhpcyBpcyBub3QgYSBwb2x5ZmlsbCIpO3JldHVybiEwfWVsc2UgcmV0dXJuITF9ZnVuY3Rpb24gR2dyKCl7cmV0dXJuIDE1MH12YXIgQmdyLEhncixDeGUsVHhlPXAoKCk9PntmMCgpO0Jncj1UbCxIZ3I9Im5hdGl2ZSI7Q3hlPXtjcmVhdGU6cWdyLGNsb3NlOmpncixvbk1lc3NhZ2U6VWdyLHBvc3RNZXNzYWdlOlZncixjYW5CZVVzZWQ6V2dyLHR5cGU6SGdyLGF2ZXJhZ2VSZXNwb25zZVRpbWU6R2dyLG1pY3JvU2Vjb25kczpCZ3J9fSk7ZnVuY3Rpb24gWWdyKGUpe2xldCB0PXdqKCktZS50dGwscj1lLm1hcFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDs7KXtsZXQgaT1yLm5leHQoKS52YWx1ZTtpZighaSlicmVhaztsZXQgYT1pWzBdO2lmKGlbMV08dCllLm1hcC5kZWxldGUoYSk7ZWxzZSBicmVha319ZnVuY3Rpb24gd2ooKXtyZXR1cm4gRGF0ZS5ub3coKX12YXIgY3UsTWo9cCgoKT0+e2N1PWNsYXNze3R0bDttYXA9bmV3IE1hcDtfdG89ITE7Y29uc3RydWN0b3IodCl7dGhpcy50dGw9dH1oYXModCl7bGV0IHI9dGhpcy5tYXAuZ2V0KHQpO3JldHVybiB0eXBlb2Ygcj4idSI/ITE6cjx3aigpLXRoaXMudHRsPyh0aGlzLm1hcC5kZWxldGUodCksITEpOiEwfWFkZCh0KXt0aGlzLm1hcC5kZWxldGUodCksdGhpcy5tYXAuc2V0KHQsd2ooKSksdGhpcy5fdG98fCh0aGlzLl90bz0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5fdG89ITEsWWdyKHRoaXMpfSwwKSl9Y2xlYXIoKXt0aGlzLm1hcC5jbGVhcigpfX19KTtmdW5jdGlvbiAkMygpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSx0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZSkpO3JldHVybiB0eXBlb2YgdC53ZWJXb3JrZXJTdXBwb3J0PiJ1IiYmKHQud2ViV29ya2VyU3VwcG9ydD0hMCksdC5pZGJ8fCh0LmlkYj17fSksdC5pZGIudHRsfHwodC5pZGIudHRsPTFlMyo0NSksdC5pZGIuZmFsbGJhY2tJbnRlcnZhbHx8KHQuaWRiLmZhbGxiYWNrSW50ZXJ2YWw9MTUwKSxlLmlkYiYmdHlwZW9mIGUuaWRiLm9uY2xvc2U9PSJmdW5jdGlvbiImJih0LmlkYi5vbmNsb3NlPWUuaWRiLm9uY2xvc2UpLHQubG9jYWxzdG9yYWdlfHwodC5sb2NhbHN0b3JhZ2U9e30pLHQubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXR8fCh0LmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0PTFlMyo2MCksZS5tZXRob2RzJiYodC5tZXRob2RzPWUubWV0aG9kcyksdC5ub2RlfHwodC5ub2RlPXt9KSx0Lm5vZGUudHRsfHwodC5ub2RlLnR0bD0xZTMqNjAqMiksdC5ub2RlLm1heFBhcmFsbGVsV3JpdGVzfHwodC5ub2RlLm1heFBhcmFsbGVsV3JpdGVzPTIwNDgpLHR5cGVvZiB0Lm5vZGUudXNlRmFzdFBhdGg+InUiJiYodC5ub2RlLnVzZUZhc3RQYXRoPSEwKSx0fXZhciBHdz1wKCgpPT57fSk7ZnVuY3Rpb24gX3hlKCl7aWYodHlwZW9mIGluZGV4ZWREQjwidSIpcmV0dXJuIGluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93PCJ1Iil7aWYodHlwZW9mIHdpbmRvdy5tb3pJbmRleGVkREI8InUiKXJldHVybiB3aW5kb3cubW96SW5kZXhlZERCO2lmKHR5cGVvZiB3aW5kb3cud2Via2l0SW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93LndlYmtpdEluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93Lm1zSW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93Lm1zSW5kZXhlZERCfXJldHVybiExfWZ1bmN0aW9uIFl3KGUpe2UuY29tbWl0JiZlLmNvbW1pdCgpfWZ1bmN0aW9uIEpncihlKXt2YXIgdD1feGUoKSxyPVhncitlLGk9dC5vcGVuKHIpO3JldHVybiBpLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbihhKXt2YXIgbj1hLnRhcmdldC5yZXN1bHQ7bi5jcmVhdGVPYmplY3RTdG9yZShuMix7a2V5UGF0aDoiaWQiLGF1dG9JbmNyZW1lbnQ6ITB9KX0sbmV3IFByb21pc2UoZnVuY3Rpb24oYSxuKXtpLm9uZXJyb3I9ZnVuY3Rpb24obyl7cmV0dXJuIG4obyl9LGkub25zdWNjZXNzPWZ1bmN0aW9uKCl7YShpLnJlc3VsdCl9fSl9ZnVuY3Rpb24gS2dyKGUsdCxyKXt2YXIgaT1EYXRlLm5vdygpLGE9e3V1aWQ6dCx0aW1lOmksZGF0YTpyfSxuPWUudHJhbnNhY3Rpb24oW24yXSwicmVhZHdyaXRlIixlNyk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8scyl7bi5vbmNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG8oKX0sbi5vbmVycm9yPWZ1bmN0aW9uKGMpe3JldHVybiBzKGMpfTt2YXIgbD1uLm9iamVjdFN0b3JlKG4yKTtsLmFkZChhKSxZdyhuKX0pfWZ1bmN0aW9uIGtEMShlKXt2YXIgdD1lLnRyYW5zYWN0aW9uKG4yLCJyZWFkb25seSIsZTcpLHI9dC5vYmplY3RTdG9yZShuMiksaT1bXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYSl7ci5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKG4pe3ZhciBvPW4udGFyZ2V0LnJlc3VsdDtvPyhpLnB1c2goby52YWx1ZSksby5jb250aW51ZSgpKTooWXcodCksYShpKSl9fSl9ZnVuY3Rpb24gZWJyKGUsdCl7dmFyIHI9ZS50cmFuc2FjdGlvbihuMiwicmVhZG9ubHkiLGU3KSxpPXIub2JqZWN0U3RvcmUobjIpLGE9W10sbj1JREJLZXlSYW5nZS5ib3VuZCh0KzEsMS8wKTtpZihpLmdldEFsbCl7dmFyIG89aS5nZXRBbGwobik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsYyl7by5vbmVycm9yPWZ1bmN0aW9uKHUpe3JldHVybiBjKHUpfSxvLm9uc3VjY2Vzcz1mdW5jdGlvbih1KXtsKHUudGFyZ2V0LnJlc3VsdCl9fSl9ZnVuY3Rpb24gcygpe3RyeXtyZXR1cm4gbj1JREJLZXlSYW5nZS5ib3VuZCh0KzEsMS8wKSxpLm9wZW5DdXJzb3Iobil9Y2F0Y2h7cmV0dXJuIGkub3BlbkN1cnNvcigpfX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obCxjKXt2YXIgdT1zKCk7dS5vbmVycm9yPWZ1bmN0aW9uKGQpe3JldHVybiBjKGQpfSx1Lm9uc3VjY2Vzcz1mdW5jdGlvbihkKXt2YXIgaD1kLnRhcmdldC5yZXN1bHQ7aD9oLnZhbHVlLmlkPHQrMT9oLmNvbnRpbnVlKHQrMSk6KGEucHVzaChoLnZhbHVlKSxoLmNvbnRpbnVlKCkpOihZdyhyKSxsKGEpKX19KX1mdW5jdGlvbiB0YnIoZSx0KXtpZihlLmNsb3NlZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgcj1lLmRiLnRyYW5zYWN0aW9uKG4yLCJyZWFkd3JpdGUiLGU3KSxpPXIub2JqZWN0U3RvcmUobjIpO3JldHVybiBQcm9taXNlLmFsbCh0Lm1hcChmdW5jdGlvbihhKXt2YXIgbj1pLmRlbGV0ZShhKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyl7bi5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbygpfX0pfSkpfWZ1bmN0aW9uIHJicihlLHQpe3ZhciByPURhdGUubm93KCktdCxpPWUudHJhbnNhY3Rpb24objIsInJlYWRvbmx5IixlNyksYT1pLm9iamVjdFN0b3JlKG4yKSxuPVtdO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvKXthLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24ocyl7dmFyIGw9cy50YXJnZXQucmVzdWx0O2lmKGwpe3ZhciBjPWwudmFsdWU7Yy50aW1lPHI/KG4ucHVzaChjKSxsLmNvbnRpbnVlKCkpOihZdyhpKSxvKG4pKX1lbHNlIG8obil9fSl9ZnVuY3Rpb24gaWJyKGUpe3JldHVybiByYnIoZS5kYixlLm9wdGlvbnMuaWRiLnR0bCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdGJyKGUsdC5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHIuaWR9KSl9KX1mdW5jdGlvbiBhYnIoZSx0KXtyZXR1cm4gdD0kMyh0KSxKZ3IoZSkudGhlbihmdW5jdGlvbihyKXt2YXIgaT17Y2xvc2VkOiExLGxhc3RDdXJzb3JJZDowLGNoYW5uZWxOYW1lOmUsb3B0aW9uczp0LHV1aWQ6Q2woKSxlTUlzOm5ldyBjdSh0LmlkYi50dGwqMiksd3JpdGVCbG9ja1Byb21pc2U6UG4sbWVzc2FnZXNDYWxsYmFjazpudWxsLHJlYWRRdWV1ZVByb21pc2VzOltdLGRiOnJ9O3JldHVybiByLm9uY2xvc2U9ZnVuY3Rpb24oKXtpLmNsb3NlZD0hMCx0LmlkYi5vbmNsb3NlJiZ0LmlkYi5vbmNsb3NlKCl9LEx4ZShpKSxpfSl9ZnVuY3Rpb24gTHhlKGUpe2UuY2xvc2VkfHxBeGUoZSkudGhlbihmdW5jdGlvbigpe3JldHVybiBscyhlLm9wdGlvbnMuaWRiLmZhbGxiYWNrSW50ZXJ2YWwpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBMeGUoZSl9KX1mdW5jdGlvbiBuYnIoZSx0KXtyZXR1cm4hKGUudXVpZD09PXQudXVpZHx8dC5lTUlzLmhhcyhlLmlkKXx8ZS5kYXRhLnRpbWU8dC5tZXNzYWdlc0NhbGxiYWNrVGltZSl9ZnVuY3Rpb24gQXhlKGUpe3JldHVybiBlLmNsb3NlZD9QbjplLm1lc3NhZ2VzQ2FsbGJhY2s/ZWJyKGUuZGIsZS5sYXN0Q3Vyc29ySWQpLnRoZW4oZnVuY3Rpb24odCl7dmFyIHI9dC5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuISFpfSkubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPmUubGFzdEN1cnNvcklkJiYoZS5sYXN0Q3Vyc29ySWQ9aS5pZCksaX0pLmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gbmJyKGksZSl9KS5zb3J0KGZ1bmN0aW9uKGksYSl7cmV0dXJuIGkudGltZS1hLnRpbWV9KTtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKGkpe2UubWVzc2FnZXNDYWxsYmFjayYmKGUuZU1Jcy5hZGQoaS5pZCksZS5tZXNzYWdlc0NhbGxiYWNrKGkuZGF0YSkpfSksUG59KTpQbn1mdW5jdGlvbiBvYnIoZSl7ZS5jbG9zZWQ9ITAsZS5kYi5jbG9zZSgpfWZ1bmN0aW9uIHNicihlLHQpe3JldHVybiBlLndyaXRlQmxvY2tQcm9taXNlPWUud3JpdGVCbG9ja1Byb21pc2UudGhlbihmdW5jdGlvbigpe3JldHVybiBLZ3IoZS5kYixlLnV1aWQsdCl9KS50aGVuKGZ1bmN0aW9uKCl7U3hlKDAsMTApPT09MCYmaWJyKGUpfSksZS53cml0ZUJsb2NrUHJvbWlzZX1mdW5jdGlvbiBsYnIoZSx0LHIpe2UubWVzc2FnZXNDYWxsYmFja1RpbWU9cixlLm1lc3NhZ2VzQ2FsbGJhY2s9dCxBeGUoZSl9ZnVuY3Rpb24gY2JyKCl7cmV0dXJuISFfeGUoKX1mdW5jdGlvbiBkYnIoZSl7cmV0dXJuIGUuaWRiLmZhbGxiYWNrSW50ZXJ2YWwqMn12YXIgWmdyLFhncixuMixlNyxRZ3IsRHhlLEV4ZT1wKCgpPT57ZjAoKTtNaigpO0d3KCk7WmdyPVRsLFhncj0icHVia2V5LmJyb2FkY2FzdC1jaGFubmVsLTAtIixuMj0ibWVzc2FnZXMiLGU3PXtkdXJhYmlsaXR5OiJyZWxheGVkIn0sUWdyPSJpZGIiO0R4ZT17Y3JlYXRlOmFicixjbG9zZTpvYnIsb25NZXNzYWdlOmxicixwb3N0TWVzc2FnZTpzYnIsY2FuQmVVc2VkOmNicix0eXBlOlFncixhdmVyYWdlUmVzcG9uc2VUaW1lOmRicixtaWNyb1NlY29uZHM6WmdyfX0pO2Z1bmN0aW9uICR4ZSgpe3ZhciBlO2lmKHR5cGVvZiB3aW5kb3c+InUiKXJldHVybiBudWxsO3RyeXtlPXdpbmRvdy5sb2NhbFN0b3JhZ2UsZT13aW5kb3dbImllOC1ldmVudGxpc3RlbmVyL3N0b3JhZ2UiXXx8d2luZG93LmxvY2FsU3RvcmFnZX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24gSXhlKGUpe3JldHVybiBwYnIrZX1mdW5jdGlvbiBmYnIoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocil7bHMoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGk9SXhlKGUuY2hhbm5lbE5hbWUpLGE9e3Rva2VuOkNsKCksdGltZTpEYXRlLm5vdygpLGRhdGE6dCx1dWlkOmUudXVpZH0sbj1KU09OLnN0cmluZ2lmeShhKTskeGUoKS5zZXRJdGVtKGksbik7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7by5pbml0RXZlbnQoInN0b3JhZ2UiLCEwLCEwKSxvLmtleT1pLG8ubmV3VmFsdWU9bix3aW5kb3cuZGlzcGF0Y2hFdmVudChvKSxyKCl9KX0pfWZ1bmN0aW9uIG1icihlLHQpe3ZhciByPUl4ZShlKSxpPWZ1bmN0aW9uKG4pe24ua2V5PT09ciYmdChKU09OLnBhcnNlKG4ubmV3VmFsdWUpKX07cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzdG9yYWdlIixpKSxpfWZ1bmN0aW9uIGdicihlKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RvcmFnZSIsZSl9ZnVuY3Rpb24gYmJyKGUsdCl7aWYodD0kMyh0KSwhUHhlKCkpdGhyb3cgbmV3IEVycm9yKCJCcm9hZGNhc3RDaGFubmVsOiBsb2NhbHN0b3JhZ2UgY2Fubm90IGJlIHVzZWQiKTt2YXIgcj1DbCgpLGk9bmV3IGN1KHQubG9jYWxzdG9yYWdlLnJlbW92ZVRpbWVvdXQpLGE9e2NoYW5uZWxOYW1lOmUsdXVpZDpyLGVNSXM6aX07cmV0dXJuIGEubGlzdGVuZXI9bWJyKGUsZnVuY3Rpb24obil7YS5tZXNzYWdlc0NhbGxiYWNrJiZuLnV1aWQhPT1yJiYoIW4udG9rZW58fGkuaGFzKG4udG9rZW4pfHxuLmRhdGEudGltZSYmbi5kYXRhLnRpbWU8YS5tZXNzYWdlc0NhbGxiYWNrVGltZXx8KGkuYWRkKG4udG9rZW4pLGEubWVzc2FnZXNDYWxsYmFjayhuLmRhdGEpKSl9KSxhfWZ1bmN0aW9uIHZicihlKXtnYnIoZS5saXN0ZW5lcil9ZnVuY3Rpb24geGJyKGUsdCxyKXtlLm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsZS5tZXNzYWdlc0NhbGxiYWNrPXR9ZnVuY3Rpb24gUHhlKCl7dmFyIGU9JHhlKCk7aWYoIWUpcmV0dXJuITE7dHJ5e3ZhciB0PSJfX2Jyb2FkY2FzdGNoYW5uZWxfY2hlY2siO2Uuc2V0SXRlbSh0LCJ3b3JrcyIpLGUucmVtb3ZlSXRlbSh0KX1jYXRjaHtyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiB5YnIoKXt2YXIgZT0xMjAsdD1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQuaW5jbHVkZXMoInNhZmFyaSIpJiYhdC5pbmNsdWRlcygiY2hyb21lIik/ZSoyOmV9dmFyIHVicixwYnIsaGJyLE54ZSxGeGU9cCgoKT0+e01qKCk7R3coKTtmMCgpO3Vicj1UbCxwYnI9InB1YmtleS5icm9hZGNhc3RDaGFubmVsLSIsaGJyPSJsb2NhbHN0b3JhZ2UiO054ZT17Y3JlYXRlOmJicixjbG9zZTp2YnIsb25NZXNzYWdlOnhicixwb3N0TWVzc2FnZTpmYnIsY2FuQmVVc2VkOlB4ZSx0eXBlOmhicixhdmVyYWdlUmVzcG9uc2VUaW1lOnlicixtaWNyb1NlY29uZHM6dWJyfX0pO2Z1bmN0aW9uIE1icihlKXt2YXIgdD17dGltZTpPeGUoKSxuYW1lOmUsbWVzc2FnZXNDYWxsYmFjazpudWxsfTtyZXR1cm4ga2ouYWRkKHQpLHR9ZnVuY3Rpb24ga2JyKGUpe2tqLmRlbGV0ZShlKX1mdW5jdGlvbiBTYnIoZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocil7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgaT1BcnJheS5mcm9tKGtqKTtpLmZvckVhY2goZnVuY3Rpb24oYSl7YS5uYW1lPT09ZS5uYW1lJiZhIT09ZSYmYS5tZXNzYWdlc0NhbGxiYWNrJiZhLnRpbWU8dC50aW1lJiZhLm1lc3NhZ2VzQ2FsbGJhY2sodCl9KSxyKCl9LFJ4ZSl9KX1mdW5jdGlvbiB6YnIoZSx0KXtlLm1lc3NhZ2VzQ2FsbGJhY2s9dH1mdW5jdGlvbiBDYnIoKXtyZXR1cm4hMH1mdW5jdGlvbiBUYnIoKXtyZXR1cm4gUnhlfXZhciBPeGUsd2JyLGtqLFJ4ZSxCeGUsSHhlPXAoKCk9PntmMCgpO094ZT1UbCx3YnI9InNpbXVsYXRlIixraj1uZXcgU2V0O1J4ZT01O0J4ZT17Y3JlYXRlOk1icixjbG9zZTprYnIsb25NZXNzYWdlOnpicixwb3N0TWVzc2FnZTpTYnIsY2FuQmVVc2VkOkNicix0eXBlOndicixhdmVyYWdlUmVzcG9uc2VUaW1lOlRicixtaWNyb1NlY29uZHM6T3hlfX0pO2Z1bmN0aW9uIFNqKGUpe3ZhciB0PVtdLmNvbmNhdChlLm1ldGhvZHMscXhlKS5maWx0ZXIoQm9vbGVhbik7aWYoZS50eXBlKXtpZihlLnR5cGU9PT0ic2ltdWxhdGUiKXJldHVybiBCeGU7dmFyIHI9dC5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLnR5cGU9PT1lLnR5cGV9KTtpZihyKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigibWV0aG9kLXR5cGUgIitlLnR5cGUrIiBub3QgZm91bmQiKX1lLndlYldvcmtlclN1cHBvcnR8fCh0PXQuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLnR5cGUhPT0iaWRiIn0pKTt2YXIgaT10LmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2FuQmVVc2VkKCl9KTtpZihpKXJldHVybiBpO3Rocm93IG5ldyBFcnJvcigiTm8gdXNhYmxlIG1ldGhvZCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KHF4ZS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEudHlwZX0pKSl9dmFyIHF4ZSxqeGU9cCgoKT0+e1R4ZSgpO0V4ZSgpO0Z4ZSgpO0h4ZSgpO3F4ZT1bQ3hlLER4ZSxOeGVdfSk7ZnVuY3Rpb24gTGJyKGUpe2U9JDMoZSk7dmFyIHQ9U2ooZSk7cmV0dXJuIHQudHlwZT09PSJub2RlIj90LmNsZWFyTm9kZUZvbGRlcigpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pOk14ZX1mdW5jdGlvbiBBYnIoZSl7emo9ZX1mdW5jdGlvbiBWeGUoZSx0LHIpe3ZhciBpPWUubWV0aG9kLm1pY3JvU2Vjb25kcygpLGE9e3RpbWU6aSx0eXBlOnQsZGF0YTpyfSxuPWUuX3ByZXBQP2UuX3ByZXBQOlBuO3JldHVybiBuLnRoZW4oZnVuY3Rpb24oKXt2YXIgbz1lLm1ldGhvZC5wb3N0TWVzc2FnZShlLl9zdGF0ZSxhKTtyZXR1cm4gZS5fdU1QLmFkZChvKSxvLmNhdGNoKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLl91TVAuZGVsZXRlKG8pfSksb30pfWZ1bmN0aW9uIERicihlKXt2YXIgdD1lLm1ldGhvZC5jcmVhdGUoZS5uYW1lLGUub3B0aW9ucyk7d3hlKHQpPyhlLl9wcmVwUD10LHQudGhlbihmdW5jdGlvbihyKXtlLl9zdGF0ZT1yfSkpOmUuX3N0YXRlPXR9ZnVuY3Rpb24gVXhlKGUpe3JldHVybiBlLl9hZGRFTC5tZXNzYWdlLmxlbmd0aD4wfHxlLl9hZGRFTC5pbnRlcm5hbC5sZW5ndGg+MH1mdW5jdGlvbiBXeGUoZSx0LHIpe2UuX2FkZEVMW3RdLnB1c2gociksRWJyKGUpfWZ1bmN0aW9uIEd4ZShlLHQscil7ZS5fYWRkRUxbdF09ZS5fYWRkRUxbdF0uZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiBpIT09cn0pLCRicihlKX1mdW5jdGlvbiBFYnIoZSl7aWYoIWUuX2lMJiZVeGUoZSkpe3ZhciB0PWZ1bmN0aW9uKGEpe2UuX2FkZEVMW2EudHlwZV0uZm9yRWFjaChmdW5jdGlvbihuKXthLnRpbWU+PW4udGltZSYmbi5mbihhLmRhdGEpfSl9LHI9ZS5tZXRob2QubWljcm9TZWNvbmRzKCk7ZS5fcHJlcFA/ZS5fcHJlcFAudGhlbihmdW5jdGlvbigpe2UuX2lMPSEwLGUubWV0aG9kLm9uTWVzc2FnZShlLl9zdGF0ZSx0LHIpfSk6KGUuX2lMPSEwLGUubWV0aG9kLm9uTWVzc2FnZShlLl9zdGF0ZSx0LHIpKX19ZnVuY3Rpb24gJGJyKGUpe2lmKGUuX2lMJiYhVXhlKGUpKXtlLl9pTD0hMTt2YXIgdD1lLm1ldGhvZC5taWNyb1NlY29uZHMoKTtlLm1ldGhvZC5vbk1lc3NhZ2UoZS5fc3RhdGUsbnVsbCx0KX19dmFyIENqLF9icixJMyx6aixZeGU9cCgoKT0+e2YwKCk7anhlKCk7R3coKTtDaj1uZXcgU2V0LF9icj0wLEkzPWZ1bmN0aW9uKHQscil7dGhpcy5pZD1fYnIrKyxDai5hZGQodGhpcyksdGhpcy5uYW1lPXQsemomJihyPXpqKSx0aGlzLm9wdGlvbnM9JDMociksdGhpcy5tZXRob2Q9U2oodGhpcy5vcHRpb25zKSx0aGlzLl9pTD0hMSx0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUw9e21lc3NhZ2U6W10saW50ZXJuYWw6W119LHRoaXMuX3VNUD1uZXcgU2V0LHRoaXMuX2JlZkM9W10sdGhpcy5fcHJlcFA9bnVsbCxEYnIodGhpcyl9O0kzLl9wdWJrZXk9ITA7STMucHJvdG90eXBlPXtwb3N0TWVzc2FnZTpmdW5jdGlvbih0KXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UoKTogQ2Fubm90IHBvc3QgbWVzc2FnZSBhZnRlciBjaGFubmVsIGhhcyBjbG9zZWQgIitKU09OLnN0cmluZ2lmeSh0KSk7cmV0dXJuIFZ4ZSh0aGlzLCJtZXNzYWdlIix0KX0scG9zdEludGVybmFsOmZ1bmN0aW9uKHQpe3JldHVybiBWeGUodGhpcywiaW50ZXJuYWwiLHQpfSxzZXQgb25tZXNzYWdlKGUpe3ZhciB0PXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLHI9e3RpbWU6dCxmbjplfTtHeGUodGhpcywibWVzc2FnZSIsdGhpcy5fb25NTCksZSYmdHlwZW9mIGU9PSJmdW5jdGlvbiI/KHRoaXMuX29uTUw9cixXeGUodGhpcywibWVzc2FnZSIscikpOnRoaXMuX29uTUw9bnVsbH0sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbih0LHIpe3ZhciBpPXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLGE9e3RpbWU6aSxmbjpyfTtXeGUodGhpcyx0LGEpfSxyZW1vdmVFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcy5fYWRkRUxbdF0uZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5mbj09PXJ9KTtHeGUodGhpcyx0LGkpfSxjbG9zZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuY2xvc2VkKXtDai5kZWxldGUodGhpcyksdGhpcy5jbG9zZWQ9ITA7dmFyIHI9dGhpcy5fcHJlcFA/dGhpcy5fcHJlcFA6UG47cmV0dXJuIHRoaXMuX29uTUw9bnVsbCx0aGlzLl9hZGRFTC5tZXNzYWdlPVtdLHIudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbChBcnJheS5mcm9tKHQuX3VNUCkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLmFsbCh0Ll9iZWZDLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaSgpfSkpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0Lm1ldGhvZC5jbG9zZSh0Ll9zdGF0ZSl9KX19LGdldCB0eXBlKCl7cmV0dXJuIHRoaXMubWV0aG9kLnR5cGV9LGdldCBpc0Nsb3NlZCgpe3JldHVybiB0aGlzLmNsb3NlZH19fSk7ZnVuY3Rpb24gWnhlKGUpe2lmKHR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZT09ImZ1bmN0aW9uIiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlKXt2YXIgdD1zZWxmLmNsb3NlLmJpbmQoc2VsZik7c2VsZi5jbG9zZT1mdW5jdGlvbigpe3JldHVybiBlKCksdCgpfX1lbHNle2lmKHR5cGVvZiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciE9ImZ1bmN0aW9uIilyZXR1cm47d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXtlKCl9LCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixmdW5jdGlvbigpe2UoKX0sITApfX12YXIgWHhlPXAoKCk9Pnt9KTtmdW5jdGlvbiBReGUoZSl7cHJvY2Vzcy5vbigiZXhpdCIsZnVuY3Rpb24oKXtyZXR1cm4gZSgpfSkscHJvY2Vzcy5vbigiYmVmb3JlRXhpdCIsZnVuY3Rpb24oKXtyZXR1cm4gZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHJvY2Vzcy5leGl0KCl9KX0pLHByb2Nlc3Mub24oIlNJR0lOVCIsZnVuY3Rpb24oKXtyZXR1cm4gZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHJvY2Vzcy5leGl0KCl9KX0pLHByb2Nlc3Mub24oInVuY2F1Z2h0RXhjZXB0aW9uIixmdW5jdGlvbih0KXtyZXR1cm4gZSgpLnRoZW4oZnVuY3Rpb24oKXtjb25zb2xlLnRyYWNlKHQpLHByb2Nlc3MuZXhpdCgxMDEpfSl9KX12YXIgSnhlPXAoKCk9Pnt9KTtmdW5jdGlvbiBOYnIoKXtLeGV8fChLeGU9ITAsUGJyKEZicikpfWZ1bmN0aW9uIGV5ZShlKXtpZihOYnIoKSx0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIkxpc3RlbmVyIGlzIG5vIGZ1bmN0aW9uIik7UDMuYWRkKGUpO3ZhciB0PXtyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gUDMuZGVsZXRlKGUpfSxydW46ZnVuY3Rpb24oKXtyZXR1cm4gUDMuZGVsZXRlKGUpLGUoKX19O3JldHVybiB0fWZ1bmN0aW9uIEZicigpe3ZhciBlPVtdO3JldHVybiBQMy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UucHVzaCh0KCkpLFAzLmRlbGV0ZSh0KX0pLFByb21pc2UuYWxsKGUpfWZ1bmN0aW9uIFZEMSgpe1AzLmNsZWFyKCl9ZnVuY3Rpb24gVUQxKCl7cmV0dXJuIFAzLnNpemV9dmFyIElicixQYnIsUDMsS3hlLHR5ZT1wKCgpPT57WHhlKCk7SnhlKCk7SWJyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0eXBlb2YgcHJvY2VzczwidSI/cHJvY2VzczowKT09PSJbb2JqZWN0IHByb2Nlc3NdIixQYnI9SWJyP1F4ZTpaeGUsUDM9bmV3IFNldCxLeGU9ITF9KTtmdW5jdGlvbiBfbChlLHQpe3ZhciByPXtjb250ZXh0OiJsZWFkZXIiLGFjdGlvbjp0LHRva2VuOmUudG9rZW59O3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwucG9zdEludGVybmFsKHIpfWZ1bmN0aW9uIHQ3KGUpe2UuaXNMZWFkZXI9ITAsZS5faGFzTGVhZGVyPSEwO3ZhciB0PWV5ZShmdW5jdGlvbigpe3JldHVybiBlLmRpZSgpfSk7ZS5fdW5sLnB1c2godCk7dmFyIHI9ZnVuY3Rpb24oYSl7YS5jb250ZXh0PT09ImxlYWRlciImJmEuYWN0aW9uPT09ImFwcGx5IiYmX2woZSwidGVsbCIpLGEuY29udGV4dD09PSJsZWFkZXIiJiZhLmFjdGlvbj09PSJ0ZWxsIiYmIWUuX2RwTEMmJihlLl9kcExDPSEwLGUuX2RwTCgpLF9sKGUsInRlbGwiKSl9O3JldHVybiBlLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHIpLGUuX2xzdG5zLnB1c2gociksX2woZSwidGVsbCIpfXZhciBadz1wKCgpPT57dHllKCl9KTt2YXIgVGoscnllLGl5ZT1wKCgpPT57ZjAoKTtadygpO1RqPWZ1bmN0aW9uKHQscil7dmFyIGk9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9dCx0Ll9iZWZDLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gaS5kaWUoKX0pLHRoaXMuX29wdGlvbnM9cix0aGlzLmlzTGVhZGVyPSExLHRoaXMuaXNEZWFkPSExLHRoaXMudG9rZW49Q2woKSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmw9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExLHRoaXMuX3dLTUM9e30sdGhpcy5sTj0icHVia2V5LWJjfHwiK3QubWV0aG9kLnR5cGUrInx8Iit0Lm5hbWV9LHJ5ZT0iTGVhZGVyRWxlY3Rpb25XZWJMb2NrLmRpZSgpIGNhbGxlZCI7VGoucHJvdG90eXBlPXtoYXNMZWFkZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKGZ1bmN0aW9uKHIpe3ZhciBpPXIuaGVsZD9yLmhlbGQuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLm5hbWU9PT10LmxOfSk6W107cmV0dXJuISEoaSYmaS5sZW5ndGg+MCl9KX0sYXdhaXRMZWFkZXJzaGlwOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighdGhpcy5fd0xNUCl7dGhpcy5fd0tNQy5jPW5ldyBBYm9ydENvbnRyb2xsZXI7dmFyIHI9bmV3IFByb21pc2UoZnVuY3Rpb24oaSxhKXt0Ll93S01DLnJlcz1pLHQuX3dLTUMucmVqPWF9KTt0aGlzLl93TE1QPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGksYSl7bmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QodC5sTix7c2lnbmFsOnQuX3dLTUMuYy5zaWduYWx9LGZ1bmN0aW9uKCl7cmV0dXJuIHQuX3dLTUMuYz12b2lkIDAsdDcodCksaSgpLHJ9KS5jYXRjaChmdW5jdGlvbihuKXtuLm1lc3NhZ2UmJm4ubWVzc2FnZT09PXJ5ZXx8KHQuX3dLTUMucmVqJiZ0Ll93S01DLnJlaihuKSxhKG4pKX0pfSl9cmV0dXJuIHRoaXMuX3dMTVB9LHNldCBvbmR1cGxpY2F0ZShlKXt9LGRpZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX2xzdG5zLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHQuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIscil9KSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmwuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gci5yZW1vdmUoKX0pLHRoaXMuX3VubD1bXSx0aGlzLmlzTGVhZGVyJiYodGhpcy5pc0xlYWRlcj0hMSksdGhpcy5pc0RlYWQ9ITAsdGhpcy5fd0tNQy5yZXMmJnRoaXMuX3dLTUMucmVzKCksdGhpcy5fd0tNQy5jJiZ0aGlzLl93S01DLmMuYWJvcnQobmV3IEVycm9yKHJ5ZSkpLF9sKHRoaXMsImRlYXRoIil9fX0pO2Z1bmN0aW9uIE9icihlKXtyZXR1cm4gZS5pc0xlYWRlcj9QbjpuZXcgUHJvbWlzZShmdW5jdGlvbih0KXt2YXIgcj0hMTtmdW5jdGlvbiBpKCl7cnx8KHI9ITAsZS5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixuKSx0KCEwKSl9ZS5hcHBseU9uY2UoKS50aGVuKGZ1bmN0aW9uKCl7ZS5pc0xlYWRlciYmaSgpfSk7dmFyIGE9ZnVuY3Rpb24oKXtyZXR1cm4gbHMoZS5fb3B0aW9ucy5mYWxsYmFja0ludGVydmFsKS50aGVuKGZ1bmN0aW9uKCl7aWYoIShlLmlzRGVhZHx8cikpaWYoZS5pc0xlYWRlcilpKCk7ZWxzZSByZXR1cm4gZS5hcHBseU9uY2UoITApLnRoZW4oZnVuY3Rpb24oKXtlLmlzTGVhZGVyP2koKTphKCl9KX0pfTthKCk7dmFyIG49ZnVuY3Rpb24ocyl7cy5jb250ZXh0PT09ImxlYWRlciImJnMuYWN0aW9uPT09ImRlYXRoIiYmKGUuX2hhc0xlYWRlcj0hMSxlLmFwcGx5T25jZSgpLnRoZW4oZnVuY3Rpb24oKXtlLmlzTGVhZGVyJiZpKCl9KSl9O2UuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbiksZS5fbHN0bnMucHVzaChuKX0pfWZ1bmN0aW9uIFJicihlLHQpe3JldHVybiBlfHwoZT17fSksZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUpKSxlLmZhbGxiYWNrSW50ZXJ2YWx8fChlLmZhbGxiYWNrSW50ZXJ2YWw9M2UzKSxlLnJlc3BvbnNlVGltZXx8KGUucmVzcG9uc2VUaW1lPXQubWV0aG9kLmF2ZXJhZ2VSZXNwb25zZVRpbWUodC5vcHRpb25zKSksZX1mdW5jdGlvbiBCYnIoZSx0KXtpZihlLl9sZWFkZXJFbGVjdG9yKXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbCBhbHJlYWR5IGhhcyBhIGxlYWRlci1lbGVjdG9yIik7dD1SYnIodCxlKTt2YXIgcj16eGUoKT9uZXcgVGooZSx0KTpuZXcgYXllKGUsdCk7cmV0dXJuIGUuX2JlZkMucHVzaChmdW5jdGlvbigpe3JldHVybiByLmRpZSgpfSksZS5fbGVhZGVyRWxlY3Rvcj1yLHJ9dmFyIGF5ZSxueWU9cCgoKT0+e2YwKCk7WncoKTtpeWUoKTtheWU9ZnVuY3Rpb24odCxyKXt2YXIgaT10aGlzO3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD10LHRoaXMuX29wdGlvbnM9cix0aGlzLmlzTGVhZGVyPSExLHRoaXMuX2hhc0xlYWRlcj0hMSx0aGlzLmlzRGVhZD0hMSx0aGlzLnRva2VuPUNsKCksdGhpcy5fYXBsUT1Qbix0aGlzLl9hcGxRQz0wLHRoaXMuX3VubD1bXSx0aGlzLl9sc3Rucz1bXSx0aGlzLl9kcEw9ZnVuY3Rpb24oKXt9LHRoaXMuX2RwTEM9ITE7dmFyIGE9ZnVuY3Rpb24obyl7by5jb250ZXh0PT09ImxlYWRlciImJihvLmFjdGlvbj09PSJkZWF0aCImJihpLl9oYXNMZWFkZXI9ITEpLG8uYWN0aW9uPT09InRlbGwiJiYoaS5faGFzTGVhZGVyPSEwKSl9O3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsYSksdGhpcy5fbHN0bnMucHVzaChhKX07YXllLnByb3RvdHlwZT17aGFzTGVhZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9oYXNMZWFkZXIpfSxhcHBseU9uY2U6ZnVuY3Rpb24odCl7dmFyIHI9dGhpcztpZih0aGlzLmlzTGVhZGVyKXJldHVybiBscygwLCEwKTtpZih0aGlzLmlzRGVhZClyZXR1cm4gbHMoMCwhMSk7aWYodGhpcy5fYXBsUUM+MSlyZXR1cm4gdGhpcy5fYXBsUTt2YXIgaT1mdW5jdGlvbigpe2lmKHIuaXNMZWFkZXIpcmV0dXJuIGt4ZTt2YXIgbj0hMSxvLHM9bmV3IFByb21pc2UoZnVuY3Rpb24odSl7bz1mdW5jdGlvbigpe249ITAsdSgpfX0pLGw9ZnVuY3Rpb24oZCl7ZC5jb250ZXh0PT09ImxlYWRlciImJmQudG9rZW4hPXIudG9rZW4mJihkLmFjdGlvbj09PSJhcHBseSImJmQudG9rZW4+ci50b2tlbiYmbygpLGQuYWN0aW9uPT09InRlbGwiJiYobygpLHIuX2hhc0xlYWRlcj0hMCkpfTtyLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGwpO3ZhciBjPXQ/ci5fb3B0aW9ucy5yZXNwb25zZVRpbWUqNDpyLl9vcHRpb25zLnJlc3BvbnNlVGltZTtyZXR1cm4gX2wociwiYXBwbHkiKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmFjZShbbHMoYykscy50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcil9KV0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBfbChyLCJhcHBseSIpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJhY2UoW2xzKGMpLHMudGhlbihmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IpfSldKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkudGhlbihmdW5jdGlvbigpe3JldHVybiByLmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLGwpLG4/ITE6dDcocikudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSl9KX07cmV0dXJuIHRoaXMuX2FwbFFDPXRoaXMuX2FwbFFDKzEsdGhpcy5fYXBsUT10aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaSgpfSkudGhlbihmdW5jdGlvbigpe3IuX2FwbFFDPXIuX2FwbFFDLTF9KSx0aGlzLl9hcGxRLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gci5pc0xlYWRlcn0pfSxhd2FpdExlYWRlcnNoaXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYUxQfHwodGhpcy5fYUxQPU9icih0aGlzKSksdGhpcy5fYUxQfSxzZXQgb25kdXBsaWNhdGUoZSl7dGhpcy5fZHBMPWV9LGRpZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX2xzdG5zLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHQuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIscil9KSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmwuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gci5yZW1vdmUoKX0pLHRoaXMuX3VubD1bXSx0aGlzLmlzTGVhZGVyJiYodGhpcy5faGFzTGVhZGVyPSExLHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLF9sKHRoaXMsImRlYXRoIil9fX0pO3ZhciBveWU9cCgoKT0+e1l4ZSgpO255ZSgpO1p3KCl9KTt2YXIgc3llPXAoKCk9PntZMigpO0toKCk7S2YoKTtveWUoKX0pO3ZhciBfaixMaixseWU9cCgoKT0+e3N5ZSgpO19qPWdsb2JhbFRoaXMuQnJvYWRjYXN0Q2hhbm5lbDtfanx8KF9qPUkzKTtMaj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbD1uZXcgX2ooImRlZXMtY29tbXMiKSx0aGlzLnR5cGVkcm91dGVyPW5ldyBWYS5UeXBlZFJvdXRlcix0aGlzLnR5cGVkdGFyZ2V0PW5ldyBWYS5UeXBlZFRhcmdldCh7cG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcjphc3luYyB0PT57dGhpcy5wb3N0TWVzc2FnZSh0KX0sdHlwZWRSb3V0ZXJSZWY6dGhpcy50eXBlZHJvdXRlcn0pLHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5vbm1lc3NhZ2U9YXN5bmMgdD0+e2xldCByPXQubWV0aG9kP3Q6dC5kYXRhO2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHIpKTtsZXQgaT1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2Uocix7c2tpcEhvb2tzOiEwfSk7aSYmIWkuZXJyb3ImJnRoaXMucG9zdE1lc3NhZ2UoaSl9fWNyZWF0ZVR5cGVkUmVxdWVzdCh0KXtyZXR1cm4gbmV3IFZhLlR5cGVkUmVxdWVzdCh0aGlzLnR5cGVkdGFyZ2V0LHQpfWFzeW5jIHBvc3RNZXNzYWdlKHQpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSh0KX1hc3luYyBjcmVhdGVUeXBlZEhhbmRsZXIodCxyKXt0aGlzLnR5cGVkcm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgVmEuVHlwZWRIYW5kbGVyKHQscikpfX19KTt2YXIgcjc9e307RmUocjcse0RlZXNDb21tczooKT0+TGp9KTt2YXIgY3llPXAoKCk9PntseWUoKX0pO3ZhciBGMz1qZSgoY0UxLE4zKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkeWUoZSl7cmV0dXJuIHR5cGVvZiBlPiJ1Inx8ZT09PW51bGx9ZnVuY3Rpb24gcWJyKGUpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsfWZ1bmN0aW9uIGpicihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOmR5ZShlKT9bXTpbZV19ZnVuY3Rpb24gVmJyKGUsdCl7dmFyIHIsaSxhLG47aWYodClmb3Iobj1PYmplY3Qua2V5cyh0KSxyPTAsaT1uLmxlbmd0aDtyPGk7cis9MSlhPW5bcl0sZVthXT10W2FdO3JldHVybiBlfWZ1bmN0aW9uIFVicihlLHQpe3ZhciByPSIiLGk7Zm9yKGk9MDtpPHQ7aSs9MSlyKz1lO3JldHVybiByfWZ1bmN0aW9uIFdicihlKXtyZXR1cm4gZT09PTAmJk51bWJlci5ORUdBVElWRV9JTkZJTklUWT09PTEvZX1OMy5leHBvcnRzLmlzTm90aGluZz1keWUsTjMuZXhwb3J0cy5pc09iamVjdD1xYnIsTjMuZXhwb3J0cy50b0FycmF5PWpicixOMy5leHBvcnRzLnJlcGVhdD1VYnIsTjMuZXhwb3J0cy5pc05lZ2F0aXZlWmVybz1XYnIsTjMuZXhwb3J0cy5leHRlbmQ9VmJyfSk7dmFyIGR1PWplKChkRTEsdXllKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpNyhlLHQpe0Vycm9yLmNhbGwodGhpcyksdGhpcy5uYW1lPSJZQU1MRXhjZXB0aW9uIix0aGlzLnJlYXNvbj1lLHRoaXMubWFyaz10LHRoaXMubWVzc2FnZT0odGhpcy5yZWFzb258fCIodW5rbm93biByZWFzb24pIikrKHRoaXMubWFyaz8iICIrdGhpcy5tYXJrLnRvU3RyaW5nKCk6IiIpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFja3x8IiJ9aTcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxpNy5wcm90b3R5cGUuY29uc3RydWN0b3I9aTcsaTcucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMubmFtZSsiOiAiO3JldHVybiByKz10aGlzLnJlYXNvbnx8Iih1bmtub3duIHJlYXNvbikiLCF0JiZ0aGlzLm1hcmsmJihyKz0iICIrdGhpcy5tYXJrLnRvU3RyaW5nKCkpLHJ9LHV5ZS5leHBvcnRzPWk3fSk7dmFyIGZ5ZT1qZSgodUUxLGh5ZSk9PnsidXNlIHN0cmljdCI7dmFyIHB5ZT1GMygpO2Z1bmN0aW9uIEFqKGUsdCxyLGksYSl7dGhpcy5uYW1lPWUsdGhpcy5idWZmZXI9dCx0aGlzLnBvc2l0aW9uPXIsdGhpcy5saW5lPWksdGhpcy5jb2x1bW49YX1Bai5wcm90b3R5cGUuZ2V0U25pcHBldD1mdW5jdGlvbih0LHIpe3ZhciBpLGEsbixvLHM7aWYoIXRoaXMuYnVmZmVyKXJldHVybiBudWxsO2Zvcih0PXR8fDQscj1yfHw3NSxpPSIiLGE9dGhpcy5wb3NpdGlvbjthPjAmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KGEtMSkpPT09LTE7KWlmKGEtPTEsdGhpcy5wb3NpdGlvbi1hPnIvMi0xKXtpPSIgLi4uICIsYSs9NTticmVha31mb3Iobj0iIixvPXRoaXMucG9zaXRpb247bzx0aGlzLmJ1ZmZlci5sZW5ndGgmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KG8pKT09PS0xOylpZihvKz0xLG8tdGhpcy5wb3NpdGlvbj5yLzItMSl7bj0iIC4uLiAiLG8tPTU7YnJlYWt9cmV0dXJuIHM9dGhpcy5idWZmZXIuc2xpY2UoYSxvKSxweWUucmVwZWF0KCIgIix0KStpK3MrbitgCmArcHllLnJlcGVhdCgiICIsdCt0aGlzLnBvc2l0aW9uLWEraS5sZW5ndGgpKyJeIn0sQWoucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciByLGk9IiI7cmV0dXJuIHRoaXMubmFtZSYmKGkrPSdpbiAiJyt0aGlzLm5hbWUrJyIgJyksaSs9ImF0IGxpbmUgIisodGhpcy5saW5lKzEpKyIsIGNvbHVtbiAiKyh0aGlzLmNvbHVtbisxKSx0fHwocj10aGlzLmdldFNuaXBwZXQoKSxyJiYoaSs9YDoKYCtyKSksaX0saHllLmV4cG9ydHM9QWp9KTt2YXIgdWk9amUoKHBFMSxneWUpPT57InVzZSBzdHJpY3QiO3ZhciBteWU9ZHUoKSxHYnI9WyJraW5kIiwicmVzb2x2ZSIsImNvbnN0cnVjdCIsImluc3RhbmNlT2YiLCJwcmVkaWNhdGUiLCJyZXByZXNlbnQiLCJkZWZhdWx0U3R5bGUiLCJzdHlsZUFsaWFzZXMiXSxZYnI9WyJzY2FsYXIiLCJzZXF1ZW5jZSIsIm1hcHBpbmciXTtmdW5jdGlvbiBaYnIoZSl7dmFyIHQ9e307cmV0dXJuIGUhPT1udWxsJiZPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe2Vbcl0uZm9yRWFjaChmdW5jdGlvbihpKXt0W1N0cmluZyhpKV09cn0pfSksdH1mdW5jdGlvbiBYYnIoZSx0KXtpZih0PXR8fHt9LE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24ocil7aWYoR2JyLmluZGV4T2Yocik9PT0tMSl0aHJvdyBuZXcgbXllKCdVbmtub3duIG9wdGlvbiAiJytyKyciIGlzIG1ldCBpbiBkZWZpbml0aW9uIG9mICInK2UrJyIgWUFNTCB0eXBlLicpfSksdGhpcy50YWc9ZSx0aGlzLmtpbmQ9dC5raW5kfHxudWxsLHRoaXMucmVzb2x2ZT10LnJlc29sdmV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LHRoaXMuY29uc3RydWN0PXQuY29uc3RydWN0fHxmdW5jdGlvbihyKXtyZXR1cm4gcn0sdGhpcy5pbnN0YW5jZU9mPXQuaW5zdGFuY2VPZnx8bnVsbCx0aGlzLnByZWRpY2F0ZT10LnByZWRpY2F0ZXx8bnVsbCx0aGlzLnJlcHJlc2VudD10LnJlcHJlc2VudHx8bnVsbCx0aGlzLmRlZmF1bHRTdHlsZT10LmRlZmF1bHRTdHlsZXx8bnVsbCx0aGlzLnN0eWxlQWxpYXNlcz1aYnIodC5zdHlsZUFsaWFzZXN8fG51bGwpLFlici5pbmRleE9mKHRoaXMua2luZCk9PT0tMSl0aHJvdyBuZXcgbXllKCdVbmtub3duIGtpbmQgIicrdGhpcy5raW5kKyciIGlzIHNwZWNpZmllZCBmb3IgIicrZSsnIiBZQU1MIHR5cGUuJyl9Z3llLmV4cG9ydHM9WGJyfSk7dmFyIE8zPWplKChoRTEsdnllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYnllPUYzKCksWHc9ZHUoKSxRYnI9dWkoKTtmdW5jdGlvbiBEaihlLHQscil7dmFyIGk9W107cmV0dXJuIGUuaW5jbHVkZS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3I9RGooYSx0LHIpfSksZVt0XS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3IuZm9yRWFjaChmdW5jdGlvbihuLG8pe24udGFnPT09YS50YWcmJm4ua2luZD09PWEua2luZCYmaS5wdXNoKG8pfSksci5wdXNoKGEpfSksci5maWx0ZXIoZnVuY3Rpb24oYSxuKXtyZXR1cm4gaS5pbmRleE9mKG4pPT09LTF9KX1mdW5jdGlvbiBKYnIoKXt2YXIgZT17c2NhbGFyOnt9LHNlcXVlbmNlOnt9LG1hcHBpbmc6e30sZmFsbGJhY2s6e319LHQscjtmdW5jdGlvbiBpKGEpe2VbYS5raW5kXVthLnRhZ109ZS5mYWxsYmFja1thLnRhZ109YX1mb3IodD0wLHI9YXJndW1lbnRzLmxlbmd0aDt0PHI7dCs9MSlhcmd1bWVudHNbdF0uZm9yRWFjaChpKTtyZXR1cm4gZX1mdW5jdGlvbiB1dShlKXt0aGlzLmluY2x1ZGU9ZS5pbmNsdWRlfHxbXSx0aGlzLmltcGxpY2l0PWUuaW1wbGljaXR8fFtdLHRoaXMuZXhwbGljaXQ9ZS5leHBsaWNpdHx8W10sdGhpcy5pbXBsaWNpdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKHQubG9hZEtpbmQmJnQubG9hZEtpbmQhPT0ic2NhbGFyIil0aHJvdyBuZXcgWHcoIlRoZXJlIGlzIGEgbm9uLXNjYWxhciB0eXBlIGluIHRoZSBpbXBsaWNpdCBsaXN0IG9mIGEgc2NoZW1hLiBJbXBsaWNpdCByZXNvbHZpbmcgb2Ygc3VjaCB0eXBlcyBpcyBub3Qgc3VwcG9ydGVkLiIpfSksdGhpcy5jb21waWxlZEltcGxpY2l0PURqKHRoaXMsImltcGxpY2l0IixbXSksdGhpcy5jb21waWxlZEV4cGxpY2l0PURqKHRoaXMsImV4cGxpY2l0IixbXSksdGhpcy5jb21waWxlZFR5cGVNYXA9SmJyKHRoaXMuY29tcGlsZWRJbXBsaWNpdCx0aGlzLmNvbXBpbGVkRXhwbGljaXQpfXV1LkRFRkFVTFQ9bnVsbCx1dS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdCxyO3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6dD11dS5ERUZBVUxULHI9YXJndW1lbnRzWzBdO2JyZWFrO2Nhc2UgMjp0PWFyZ3VtZW50c1swXSxyPWFyZ3VtZW50c1sxXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBYdygiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgU2NoZW1hLmNyZWF0ZSBmdW5jdGlvbiIpfWlmKHQ9YnllLnRvQXJyYXkodCkscj1ieWUudG9BcnJheShyKSwhdC5ldmVyeShmdW5jdGlvbihpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIHV1fSkpdGhyb3cgbmV3IFh3KCJTcGVjaWZpZWQgbGlzdCBvZiBzdXBlciBzY2hlbWFzIChvciBhIHNpbmdsZSBTY2hlbWEgb2JqZWN0KSBjb250YWlucyBhIG5vbi1TY2hlbWEgb2JqZWN0LiIpO2lmKCFyLmV2ZXJ5KGZ1bmN0aW9uKGkpe3JldHVybiBpIGluc3RhbmNlb2YgUWJyfSkpdGhyb3cgbmV3IFh3KCJTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuIik7cmV0dXJuIG5ldyB1dSh7aW5jbHVkZTp0LGV4cGxpY2l0OnJ9KX0sdnllLmV4cG9ydHM9dXV9KTt2YXIgeXllPWplKChmRTEseHllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgS2JyPXVpKCk7eHllLmV4cG9ydHM9bmV3IEticigidGFnOnlhbWwub3JnLDIwMDI6c3RyIix7a2luZDoic2NhbGFyIixjb25zdHJ1Y3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1udWxsP2U6IiJ9fSl9KTt2YXIgTXllPWplKChtRTEsd3llKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZXZyPXVpKCk7d3llLmV4cG9ydHM9bmV3IGV2cigidGFnOnlhbWwub3JnLDIwMDI6c2VxIix7a2luZDoic2VxdWVuY2UiLGNvbnN0cnVjdDpmdW5jdGlvbihlKXtyZXR1cm4gZSE9PW51bGw/ZTpbXX19KX0pO3ZhciBTeWU9amUoKGdFMSxreWUpPT57InVzZSBzdHJpY3QiO3ZhciB0dnI9dWkoKTtreWUuZXhwb3J0cz1uZXcgdHZyKCJ0YWc6eWFtbC5vcmcsMjAwMjptYXAiLHtraW5kOiJtYXBwaW5nIixjb25zdHJ1Y3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1udWxsP2U6e319fSl9KTt2YXIgUXc9amUoKGJFMSx6eWUpPT57InVzZSBzdHJpY3QiO3ZhciBydnI9TzMoKTt6eWUuZXhwb3J0cz1uZXcgcnZyKHtleHBsaWNpdDpbeXllKCksTXllKCksU3llKCldfSl9KTt2YXIgVHllPWplKCh2RTEsQ3llKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaXZyPXVpKCk7ZnVuY3Rpb24gYXZyKGUpe2lmKGU9PT1udWxsKXJldHVybiEwO3ZhciB0PWUubGVuZ3RoO3JldHVybiB0PT09MSYmZT09PSJ+Inx8dD09PTQmJihlPT09Im51bGwifHxlPT09Ik51bGwifHxlPT09Ik5VTEwiKX1mdW5jdGlvbiBudnIoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBvdnIoZSl7cmV0dXJuIGU9PT1udWxsfUN5ZS5leHBvcnRzPW5ldyBpdnIoInRhZzp5YW1sLm9yZywyMDAyOm51bGwiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6YXZyLGNvbnN0cnVjdDpudnIscHJlZGljYXRlOm92cixyZXByZXNlbnQ6e2Nhbm9uaWNhbDpmdW5jdGlvbigpe3JldHVybiJ+In0sbG93ZXJjYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIm51bGwifSx1cHBlcmNhc2U6ZnVuY3Rpb24oKXtyZXR1cm4iTlVMTCJ9LGNhbWVsY2FzZTpmdW5jdGlvbigpe3JldHVybiJOdWxsIn19LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIEx5ZT1qZSgoeEUxLF95ZSk9PnsidXNlIHN0cmljdCI7dmFyIHN2cj11aSgpO2Z1bmN0aW9uIGx2cihlKXtpZihlPT09bnVsbClyZXR1cm4hMTt2YXIgdD1lLmxlbmd0aDtyZXR1cm4gdD09PTQmJihlPT09InRydWUifHxlPT09IlRydWUifHxlPT09IlRSVUUiKXx8dD09PTUmJihlPT09ImZhbHNlInx8ZT09PSJGYWxzZSJ8fGU9PT0iRkFMU0UiKX1mdW5jdGlvbiBjdnIoZSl7cmV0dXJuIGU9PT0idHJ1ZSJ8fGU9PT0iVHJ1ZSJ8fGU9PT0iVFJVRSJ9ZnVuY3Rpb24gZHZyKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBCb29sZWFuXSJ9X3llLmV4cG9ydHM9bmV3IHN2cigidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpsdnIsY29uc3RydWN0OmN2cixwcmVkaWNhdGU6ZHZyLHJlcHJlc2VudDp7bG93ZXJjYXNlOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJ0cnVlIjoiZmFsc2UifSx1cHBlcmNhc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/IlRSVUUiOiJGQUxTRSJ9LGNhbWVsY2FzZTpmdW5jdGlvbihlKXtyZXR1cm4gZT8iVHJ1ZSI6IkZhbHNlIn19LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIER5ZT1qZSgoeUUxLEF5ZSk9PnsidXNlIHN0cmljdCI7dmFyIHV2cj1GMygpLHB2cj11aSgpO2Z1bmN0aW9uIGh2cihlKXtyZXR1cm4gNDg8PWUmJmU8PTU3fHw2NTw9ZSYmZTw9NzB8fDk3PD1lJiZlPD0xMDJ9ZnVuY3Rpb24gZnZyKGUpe3JldHVybiA0ODw9ZSYmZTw9NTV9ZnVuY3Rpb24gbXZyKGUpe3JldHVybiA0ODw9ZSYmZTw9NTd9ZnVuY3Rpb24gZ3ZyKGUpe2lmKGU9PT1udWxsKXJldHVybiExO3ZhciB0PWUubGVuZ3RoLHI9MCxpPSExLGE7aWYoIXQpcmV0dXJuITE7aWYoYT1lW3JdLChhPT09Ii0ifHxhPT09IisiKSYmKGE9ZVsrK3JdKSxhPT09IjAiKXtpZihyKzE9PT10KXJldHVybiEwO2lmKGE9ZVsrK3JdLGE9PT0iYiIpe2ZvcihyKys7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoYSE9PSIwIiYmYSE9PSIxIilyZXR1cm4hMTtpPSEwfXJldHVybiBpJiZhIT09Il8ifWlmKGE9PT0ieCIpe2ZvcihyKys7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoIWh2cihlLmNoYXJDb2RlQXQocikpKXJldHVybiExO2k9ITB9cmV0dXJuIGkmJmEhPT0iXyJ9Zm9yKDtyPHQ7cisrKWlmKGE9ZVtyXSxhIT09Il8iKXtpZighZnZyKGUuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7aT0hMH1yZXR1cm4gaSYmYSE9PSJfIn1pZihhPT09Il8iKXJldHVybiExO2Zvcig7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoYT09PSI6IilicmVhaztpZighbXZyKGUuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7aT0hMH1yZXR1cm4haXx8YT09PSJfIj8hMTphIT09IjoiPyEwOi9eKDpbMC01XT9bMC05XSkrJC8udGVzdChlLnNsaWNlKHIpKX1mdW5jdGlvbiBidnIoZSl7dmFyIHQ9ZSxyPTEsaSxhLG49W107cmV0dXJuIHQuaW5kZXhPZigiXyIpIT09LTEmJih0PXQucmVwbGFjZSgvXy9nLCIiKSksaT10WzBdLChpPT09Ii0ifHxpPT09IisiKSYmKGk9PT0iLSImJihyPS0xKSx0PXQuc2xpY2UoMSksaT10WzBdKSx0PT09IjAiPzA6aT09PSIwIj90WzFdPT09ImIiP3IqcGFyc2VJbnQodC5zbGljZSgyKSwyKTp0WzFdPT09IngiP3IqcGFyc2VJbnQodCwxNik6cipwYXJzZUludCh0LDgpOnQuaW5kZXhPZigiOiIpIT09LTE/KHQuc3BsaXQoIjoiKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe24udW5zaGlmdChwYXJzZUludChvLDEwKSl9KSx0PTAsYT0xLG4uZm9yRWFjaChmdW5jdGlvbihvKXt0Kz1vKmEsYSo9NjB9KSxyKnQpOnIqcGFyc2VJbnQodCwxMCl9ZnVuY3Rpb24gdnZyKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBOdW1iZXJdIiYmZSUxPT09MCYmIXV2ci5pc05lZ2F0aXZlWmVybyhlKX1BeWUuZXhwb3J0cz1uZXcgcHZyKCJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6Z3ZyLGNvbnN0cnVjdDpidnIscHJlZGljYXRlOnZ2cixyZXByZXNlbnQ6e2JpbmFyeTpmdW5jdGlvbihlKXtyZXR1cm4gZT49MD8iMGIiK2UudG9TdHJpbmcoMik6Ii0wYiIrZS50b1N0cmluZygyKS5zbGljZSgxKX0sb2N0YWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTA/IjAiK2UudG9TdHJpbmcoOCk6Ii0wIitlLnRvU3RyaW5nKDgpLnNsaWNlKDEpfSxkZWNpbWFsOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRvU3RyaW5nKDEwKX0saGV4YWRlY2ltYWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTA/IjB4IitlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOiItMHgiK2UudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSl9fSxkZWZhdWx0U3R5bGU6ImRlY2ltYWwiLHN0eWxlQWxpYXNlczp7YmluYXJ5OlsyLCJiaW4iXSxvY3RhbDpbOCwib2N0Il0sZGVjaW1hbDpbMTAsImRlYyJdLGhleGFkZWNpbWFsOlsxNiwiaGV4Il19fSl9KTt2YXIgSXllPWplKCh3RTEsJHllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRXllPUYzKCkseHZyPXVpKCkseXZyPW5ldyBSZWdFeHAoIl4oPzpbLStdPyg/OjB8WzEtOV1bMC05X10qKSg/OlxcLlswLTlfXSopPyg/OltlRV1bLStdP1swLTldKyk/fFxcLlswLTlfXSsoPzpbZUVdWy0rXT9bMC05XSspP3xbLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrXFwuWzAtOV9dKnxbLStdP1xcLig/OmluZnxJbmZ8SU5GKXxcXC4oPzpuYW58TmFOfE5BTikpJCIpO2Z1bmN0aW9uIHd2cihlKXtyZXR1cm4hKGU9PT1udWxsfHwheXZyLnRlc3QoZSl8fGVbZS5sZW5ndGgtMV09PT0iXyIpfWZ1bmN0aW9uIE12cihlKXt2YXIgdCxyLGksYTtyZXR1cm4gdD1lLnJlcGxhY2UoL18vZywiIikudG9Mb3dlckNhc2UoKSxyPXRbMF09PT0iLSI/LTE6MSxhPVtdLCIrLSIuaW5kZXhPZih0WzBdKT49MCYmKHQ9dC5zbGljZSgxKSksdD09PSIuaW5mIj9yPT09MT9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk6TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOnQ9PT0iLm5hbiI/TmFOOnQuaW5kZXhPZigiOiIpPj0wPyh0LnNwbGl0KCI6IikuZm9yRWFjaChmdW5jdGlvbihuKXthLnVuc2hpZnQocGFyc2VGbG9hdChuLDEwKSl9KSx0PTAsaT0xLGEuZm9yRWFjaChmdW5jdGlvbihuKXt0Kz1uKmksaSo9NjB9KSxyKnQpOnIqcGFyc2VGbG9hdCh0LDEwKX12YXIga3ZyPS9eWy0rXT9bMC05XStlLztmdW5jdGlvbiBTdnIoZSx0KXt2YXIgcjtpZihpc05hTihlKSlzd2l0Y2godCl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiIubmFuIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi5OQU4iO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLk5hTiJ9ZWxzZSBpZihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk9PT1lKXN3aXRjaCh0KXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi5pbmYiO2Nhc2UidXBwZXJjYXNlIjpyZXR1cm4iLklORiI7Y2FzZSJjYW1lbGNhc2UiOnJldHVybiIuSW5mIn1lbHNlIGlmKE51bWJlci5ORUdBVElWRV9JTkZJTklUWT09PWUpc3dpdGNoKHQpe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLS5pbmYiO2Nhc2UidXBwZXJjYXNlIjpyZXR1cm4iLS5JTkYiO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLS5JbmYifWVsc2UgaWYoRXllLmlzTmVnYXRpdmVaZXJvKGUpKXJldHVybiItMC4wIjtyZXR1cm4gcj1lLnRvU3RyaW5nKDEwKSxrdnIudGVzdChyKT9yLnJlcGxhY2UoImUiLCIuZSIpOnJ9ZnVuY3Rpb24genZyKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBOdW1iZXJdIiYmKGUlMSE9PTB8fEV5ZS5pc05lZ2F0aXZlWmVybyhlKSl9JHllLmV4cG9ydHM9bmV3IHh2cigidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6d3ZyLGNvbnN0cnVjdDpNdnIscHJlZGljYXRlOnp2cixyZXByZXNlbnQ6U3ZyLGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIEVqPWplKChNRTEsUHllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQ3ZyPU8zKCk7UHllLmV4cG9ydHM9bmV3IEN2cih7aW5jbHVkZTpbUXcoKV0saW1wbGljaXQ6W1R5ZSgpLEx5ZSgpLER5ZSgpLEl5ZSgpXX0pfSk7dmFyICRqPWplKChrRTEsTnllKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgVHZyPU8zKCk7TnllLmV4cG9ydHM9bmV3IFR2cih7aW5jbHVkZTpbRWooKV19KX0pO3ZhciBCeWU9amUoKFNFMSxSeWUpPT57InVzZSBzdHJpY3QiO3ZhciBfdnI9dWkoKSxGeWU9bmV3IFJlZ0V4cCgiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0pLShbMC05XVswLTldKSQiKSxPeWU9bmV3IFJlZ0V4cCgiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0/KS0oWzAtOV1bMC05XT8pKD86W1R0XXxbIFxcdF0rKShbMC05XVswLTldPyk6KFswLTldWzAtOV0pOihbMC05XVswLTldKSg/OlxcLihbMC05XSopKT8oPzpbIFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KSg/OjooWzAtOV1bMC05XSkpPykpPyQiKTtmdW5jdGlvbiBMdnIoZSl7cmV0dXJuIGU9PT1udWxsPyExOkZ5ZS5leGVjKGUpIT09bnVsbHx8T3llLmV4ZWMoZSkhPT1udWxsfWZ1bmN0aW9uIEF2cihlKXt2YXIgdCxyLGksYSxuLG8scyxsPTAsYz1udWxsLHUsZCxoO2lmKHQ9RnllLmV4ZWMoZSksdD09PW51bGwmJih0PU95ZS5leGVjKGUpKSx0PT09bnVsbCl0aHJvdyBuZXcgRXJyb3IoIkRhdGUgcmVzb2x2ZSBlcnJvciIpO2lmKHI9K3RbMV0saT0rdFsyXS0xLGE9K3RbM10sIXRbNF0pcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHIsaSxhKSk7aWYobj0rdFs0XSxvPSt0WzVdLHM9K3RbNl0sdFs3XSl7Zm9yKGw9dFs3XS5zbGljZSgwLDMpO2wubGVuZ3RoPDM7KWwrPSIwIjtsPStsfXJldHVybiB0WzldJiYodT0rdFsxMF0sZD0rKHRbMTFdfHwwKSxjPSh1KjYwK2QpKjZlNCx0WzldPT09Ii0iJiYoYz0tYykpLGg9bmV3IERhdGUoRGF0ZS5VVEMocixpLGEsbixvLHMsbCkpLGMmJmguc2V0VGltZShoLmdldFRpbWUoKS1jKSxofWZ1bmN0aW9uIER2cihlKXtyZXR1cm4gZS50b0lTT1N0cmluZygpfVJ5ZS5leHBvcnRzPW5ldyBfdnIoInRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpMdnIsY29uc3RydWN0OkF2cixpbnN0YW5jZU9mOkRhdGUscmVwcmVzZW50OkR2cn0pfSk7dmFyIHF5ZT1qZSgoekUxLEh5ZSk9PnsidXNlIHN0cmljdCI7dmFyIEV2cj11aSgpO2Z1bmN0aW9uICR2cihlKXtyZXR1cm4gZT09PSI8PCJ8fGU9PT1udWxsfUh5ZS5leHBvcnRzPW5ldyBFdnIoInRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIix7a2luZDoic2NhbGFyIixyZXNvbHZlOiR2cn0pfSk7dmFyIFV5ZT1qZSgoQ0UxLFZ5ZSk9PnsidXNlIHN0cmljdCI7dmFyIFIzO3RyeXtqeWU9UmMsUjM9anllKCJidWZmZXIiKS5CdWZmZXJ9Y2F0Y2h7fXZhciBJdnI9dWkoKSxJaj1gQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0KXHJgO2Z1bmN0aW9uIFB2cihlKXtpZihlPT09bnVsbClyZXR1cm4hMTt2YXIgdCxyLGk9MCxhPWUubGVuZ3RoLG49SWo7Zm9yKHI9MDtyPGE7cisrKWlmKHQ9bi5pbmRleE9mKGUuY2hhckF0KHIpKSwhKHQ+NjQpKXtpZih0PDApcmV0dXJuITE7aSs9Nn1yZXR1cm4gaSU4PT09MH1mdW5jdGlvbiBOdnIoZSl7dmFyIHQscixpPWUucmVwbGFjZSgvW1xyXG49XS9nLCIiKSxhPWkubGVuZ3RoLG49SWosbz0wLHM9W107Zm9yKHQ9MDt0PGE7dCsrKXQlND09PTAmJnQmJihzLnB1c2gobz4+MTYmMjU1KSxzLnB1c2gobz4+OCYyNTUpLHMucHVzaChvJjI1NSkpLG89bzw8NnxuLmluZGV4T2YoaS5jaGFyQXQodCkpO3JldHVybiByPWElNCo2LHI9PT0wPyhzLnB1c2gobz4+MTYmMjU1KSxzLnB1c2gobz4+OCYyNTUpLHMucHVzaChvJjI1NSkpOnI9PT0xOD8ocy5wdXNoKG8+PjEwJjI1NSkscy5wdXNoKG8+PjImMjU1KSk6cj09PTEyJiZzLnB1c2gobz4+NCYyNTUpLFIzP1IzLmZyb20/UjMuZnJvbShzKTpuZXcgUjMocyk6c31mdW5jdGlvbiBGdnIoZSl7dmFyIHQ9IiIscj0wLGksYSxuPWUubGVuZ3RoLG89SWo7Zm9yKGk9MDtpPG47aSsrKWklMz09PTAmJmkmJih0Kz1vW3I+PjE4JjYzXSx0Kz1vW3I+PjEyJjYzXSx0Kz1vW3I+PjYmNjNdLHQrPW9bciY2M10pLHI9KHI8PDgpK2VbaV07cmV0dXJuIGE9biUzLGE9PT0wPyh0Kz1vW3I+PjE4JjYzXSx0Kz1vW3I+PjEyJjYzXSx0Kz1vW3I+PjYmNjNdLHQrPW9bciY2M10pOmE9PT0yPyh0Kz1vW3I+PjEwJjYzXSx0Kz1vW3I+PjQmNjNdLHQrPW9bcjw8MiY2M10sdCs9b1s2NF0pOmE9PT0xJiYodCs9b1tyPj4yJjYzXSx0Kz1vW3I8PDQmNjNdLHQrPW9bNjRdLHQrPW9bNjRdKSx0fWZ1bmN0aW9uIE92cihlKXtyZXR1cm4gUjMmJlIzLmlzQnVmZmVyKGUpfVZ5ZS5leHBvcnRzPW5ldyBJdnIoInRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeSIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpQdnIsY29uc3RydWN0Ok52cixwcmVkaWNhdGU6T3ZyLHJlcHJlc2VudDpGdnJ9KTt2YXIganllfSk7dmFyIEd5ZT1qZSgoX0UxLFd5ZSk9PnsidXNlIHN0cmljdCI7dmFyIFJ2cj11aSgpLEJ2cj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEh2cj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIHF2cihlKXtpZihlPT09bnVsbClyZXR1cm4hMDt2YXIgdD1bXSxyLGksYSxuLG8scz1lO2ZvcihyPTAsaT1zLmxlbmd0aDtyPGk7cis9MSl7aWYoYT1zW3JdLG89ITEsSHZyLmNhbGwoYSkhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTtmb3IobiBpbiBhKWlmKEJ2ci5jYWxsKGEsbikpaWYoIW8pbz0hMDtlbHNlIHJldHVybiExO2lmKCFvKXJldHVybiExO2lmKHQuaW5kZXhPZihuKT09PS0xKXQucHVzaChuKTtlbHNlIHJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGp2cihlKXtyZXR1cm4gZSE9PW51bGw/ZTpbXX1XeWUuZXhwb3J0cz1uZXcgUnZyKCJ0YWc6eWFtbC5vcmcsMjAwMjpvbWFwIix7a2luZDoic2VxdWVuY2UiLHJlc29sdmU6cXZyLGNvbnN0cnVjdDpqdnJ9KX0pO3ZhciBaeWU9amUoKExFMSxZeWUpPT57InVzZSBzdHJpY3QiO3ZhciBWdnI9dWkoKSxVdnI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBXdnIoZSl7aWYoZT09PW51bGwpcmV0dXJuITA7dmFyIHQscixpLGEsbixvPWU7Zm9yKG49bmV3IEFycmF5KG8ubGVuZ3RoKSx0PTAscj1vLmxlbmd0aDt0PHI7dCs9MSl7aWYoaT1vW3RdLFV2ci5jYWxsKGkpIT09IltvYmplY3QgT2JqZWN0XSJ8fChhPU9iamVjdC5rZXlzKGkpLGEubGVuZ3RoIT09MSkpcmV0dXJuITE7blt0XT1bYVswXSxpW2FbMF1dXX1yZXR1cm4hMH1mdW5jdGlvbiBHdnIoZSl7aWYoZT09PW51bGwpcmV0dXJuW107dmFyIHQscixpLGEsbixvPWU7Zm9yKG49bmV3IEFycmF5KG8ubGVuZ3RoKSx0PTAscj1vLmxlbmd0aDt0PHI7dCs9MSlpPW9bdF0sYT1PYmplY3Qua2V5cyhpKSxuW3RdPVthWzBdLGlbYVswXV1dO3JldHVybiBufVl5ZS5leHBvcnRzPW5ldyBWdnIoInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIix7a2luZDoic2VxdWVuY2UiLHJlc29sdmU6V3ZyLGNvbnN0cnVjdDpHdnJ9KX0pO3ZhciBReWU9amUoKEFFMSxYeWUpPT57InVzZSBzdHJpY3QiO3ZhciBZdnI9dWkoKSxadnI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBYdnIoZSl7aWYoZT09PW51bGwpcmV0dXJuITA7dmFyIHQscj1lO2Zvcih0IGluIHIpaWYoWnZyLmNhbGwocix0KSYmclt0XSE9PW51bGwpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gUXZyKGUpe3JldHVybiBlIT09bnVsbD9lOnt9fVh5ZS5leHBvcnRzPW5ldyBZdnIoInRhZzp5YW1sLm9yZywyMDAyOnNldCIse2tpbmQ6Im1hcHBpbmciLHJlc29sdmU6WHZyLGNvbnN0cnVjdDpRdnJ9KX0pO3ZhciBwdT1qZSgoREUxLEp5ZSk9PnsidXNlIHN0cmljdCI7dmFyIEp2cj1PMygpO0p5ZS5leHBvcnRzPW5ldyBKdnIoe2luY2x1ZGU6WyRqKCldLGltcGxpY2l0OltCeWUoKSxxeWUoKV0sZXhwbGljaXQ6W1V5ZSgpLEd5ZSgpLFp5ZSgpLFF5ZSgpXX0pfSk7dmFyIGV3ZT1qZSgoRUUxLEt5ZSk9PnsidXNlIHN0cmljdCI7dmFyIEt2cj11aSgpO2Z1bmN0aW9uIGV4cigpe3JldHVybiEwfWZ1bmN0aW9uIHR4cigpe31mdW5jdGlvbiByeHIoKXtyZXR1cm4iIn1mdW5jdGlvbiBpeHIoZSl7cmV0dXJuIHR5cGVvZiBlPiJ1In1LeWUuZXhwb3J0cz1uZXcgS3ZyKCJ0YWc6eWFtbC5vcmcsMjAwMjpqcy91bmRlZmluZWQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6ZXhyLGNvbnN0cnVjdDp0eHIscHJlZGljYXRlOml4cixyZXByZXNlbnQ6cnhyfSl9KTt2YXIgcndlPWplKCgkRTEsdHdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYXhyPXVpKCk7ZnVuY3Rpb24gbnhyKGUpe2lmKGU9PT1udWxsfHxlLmxlbmd0aD09PTApcmV0dXJuITE7dmFyIHQ9ZSxyPS9cLyhbZ2ltXSopJC8uZXhlYyhlKSxpPSIiO3JldHVybiEodFswXT09PSIvIiYmKHImJihpPXJbMV0pLGkubGVuZ3RoPjN8fHRbdC5sZW5ndGgtaS5sZW5ndGgtMV0hPT0iLyIpKX1mdW5jdGlvbiBveHIoZSl7dmFyIHQ9ZSxyPS9cLyhbZ2ltXSopJC8uZXhlYyhlKSxpPSIiO3JldHVybiB0WzBdPT09Ii8iJiYociYmKGk9clsxXSksdD10LnNsaWNlKDEsdC5sZW5ndGgtaS5sZW5ndGgtMSkpLG5ldyBSZWdFeHAodCxpKX1mdW5jdGlvbiBzeHIoZSl7dmFyIHQ9Ii8iK2Uuc291cmNlKyIvIjtyZXR1cm4gZS5nbG9iYWwmJih0Kz0iZyIpLGUubXVsdGlsaW5lJiYodCs9Im0iKSxlLmlnbm9yZUNhc2UmJih0Kz0iaSIpLHR9ZnVuY3Rpb24gbHhyKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBSZWdFeHBdIn10d2UuZXhwb3J0cz1uZXcgYXhyKCJ0YWc6eWFtbC5vcmcsMjAwMjpqcy9yZWdleHAiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6bnhyLGNvbnN0cnVjdDpveHIscHJlZGljYXRlOmx4cixyZXByZXNlbnQ6c3hyfSl9KTt2YXIgbndlPWplKChJRTEsYXdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgSnc7dHJ5e2l3ZT1SYyxKdz1pd2UoImVzcHJpbWEiKX1jYXRjaHt0eXBlb2Ygd2luZG93PCJ1IiYmKEp3PXdpbmRvdy5lc3ByaW1hKX12YXIgY3hyPXVpKCk7ZnVuY3Rpb24gZHhyKGUpe2lmKGU9PT1udWxsKXJldHVybiExO3RyeXt2YXIgdD0iKCIrZSsiKSIscj1Kdy5wYXJzZSh0LHtyYW5nZTohMH0pO3JldHVybiEoci50eXBlIT09IlByb2dyYW0ifHxyLmJvZHkubGVuZ3RoIT09MXx8ci5ib2R5WzBdLnR5cGUhPT0iRXhwcmVzc2lvblN0YXRlbWVudCJ8fHIuYm9keVswXS5leHByZXNzaW9uLnR5cGUhPT0iQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24iJiZyLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkZ1bmN0aW9uRXhwcmVzc2lvbiIpfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiB1eHIoZSl7dmFyIHQ9IigiK2UrIikiLHI9SncucGFyc2UodCx7cmFuZ2U6ITB9KSxpPVtdLGE7aWYoci50eXBlIT09IlByb2dyYW0ifHxyLmJvZHkubGVuZ3RoIT09MXx8ci5ib2R5WzBdLnR5cGUhPT0iRXhwcmVzc2lvblN0YXRlbWVudCJ8fHIuYm9keVswXS5leHByZXNzaW9uLnR5cGUhPT0iQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24iJiZyLmJvZHlbMF0uZXhwcmVzc2lvbi50eXBlIT09IkZ1bmN0aW9uRXhwcmVzc2lvbiIpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gcmVzb2x2ZSBmdW5jdGlvbiIpO3JldHVybiByLmJvZHlbMF0uZXhwcmVzc2lvbi5wYXJhbXMuZm9yRWFjaChmdW5jdGlvbihuKXtpLnB1c2gobi5uYW1lKX0pLGE9ci5ib2R5WzBdLmV4cHJlc3Npb24uYm9keS5yYW5nZSxyLmJvZHlbMF0uZXhwcmVzc2lvbi5ib2R5LnR5cGU9PT0iQmxvY2tTdGF0ZW1lbnQiP25ldyBGdW5jdGlvbihpLHQuc2xpY2UoYVswXSsxLGFbMV0tMSkpOm5ldyBGdW5jdGlvbihpLCJyZXR1cm4gIit0LnNsaWNlKGFbMF0sYVsxXSkpfWZ1bmN0aW9uIHB4cihlKXtyZXR1cm4gZS50b1N0cmluZygpfWZ1bmN0aW9uIGh4cihlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09IltvYmplY3QgRnVuY3Rpb25dIn1hd2UuZXhwb3J0cz1uZXcgY3hyKCJ0YWc6eWFtbC5vcmcsMjAwMjpqcy9mdW5jdGlvbiIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpkeHIsY29uc3RydWN0OnV4cixwcmVkaWNhdGU6aHhyLHJlcHJlc2VudDpweHJ9KTt2YXIgaXdlfSk7dmFyIGE3PWplKChORTEsc3dlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgb3dlPU8zKCk7c3dlLmV4cG9ydHM9b3dlLkRFRkFVTFQ9bmV3IG93ZSh7aW5jbHVkZTpbcHUoKV0sZXhwbGljaXQ6W2V3ZSgpLHJ3ZSgpLG53ZSgpXX0pfSk7dmFyIFR3ZT1qZSgoRkUxLG43KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTGw9RjMoKSxsd2U9ZHUoKSxmeHI9ZnllKCksY3dlPXB1KCksbXhyPWE3KCksbTA9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxLdz0xLGR3ZT0yLHV3ZT0zLGVNPTQsUGo9MSxneHI9Mixwd2U9MyxieHI9L1tceDAwLVx4MDhceDBCXHgwQ1x4MEUtXHgxRlx4N0YtXHg4NFx4ODYtXHg5Rlx1RkZGRVx1RkZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKXwoPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdLyx2eHI9L1tceDg1XHUyMDI4XHUyMDI5XS8seHhyPS9bLFxbXF1ce1x9XS8saHdlPS9eKD86IXwhIXwhW2EtelwtXSshKSQvaSxmd2U9L14oPzohfFteLFxbXF1ce1x9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelwtIztcL1w/OkAmPVwrXCQsX1wuIX5cKidcKFwpXFtcXV0pKiQvaTtmdW5jdGlvbiBtd2UoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBjcyhlKXtyZXR1cm4gZT09PTEwfHxlPT09MTN9ZnVuY3Rpb24gQjMoZSl7cmV0dXJuIGU9PT05fHxlPT09MzJ9ZnVuY3Rpb24gZ24oZSl7cmV0dXJuIGU9PT05fHxlPT09MzJ8fGU9PT0xMHx8ZT09PTEzfWZ1bmN0aW9uIGh1KGUpe3JldHVybiBlPT09NDR8fGU9PT05MXx8ZT09PTkzfHxlPT09MTIzfHxlPT09MTI1fWZ1bmN0aW9uIHl4cihlKXt2YXIgdDtyZXR1cm4gNDg8PWUmJmU8PTU3P2UtNDg6KHQ9ZXwzMiw5Nzw9dCYmdDw9MTAyP3QtOTcrMTA6LTEpfWZ1bmN0aW9uIHd4cihlKXtyZXR1cm4gZT09PTEyMD8yOmU9PT0xMTc/NDplPT09ODU/ODowfWZ1bmN0aW9uIE14cihlKXtyZXR1cm4gNDg8PWUmJmU8PTU3P2UtNDg6LTF9ZnVuY3Rpb24gZ3dlKGUpe3JldHVybiBlPT09NDg/IlwwIjplPT09OTc/Ilx4MDciOmU9PT05OD8iXGIiOmU9PT0xMTZ8fGU9PT05PyIJIjplPT09MTEwP2AKYDplPT09MTE4PyJcdiI6ZT09PTEwMj8iXGYiOmU9PT0xMTQ/IlxyIjplPT09MTAxPyJceDFCIjplPT09MzI/IiAiOmU9PT0zND8nIic6ZT09PTQ3PyIvIjplPT09OTI/IlxcIjplPT09Nzg/Ilx4ODUiOmU9PT05NT8iXHhBMCI6ZT09PTc2PyJcdTIwMjgiOmU9PT04MD8iXHUyMDI5IjoiIn1mdW5jdGlvbiBreHIoZSl7cmV0dXJuIGU8PTY1NTM1P1N0cmluZy5mcm9tQ2hhckNvZGUoZSk6U3RyaW5nLmZyb21DaGFyQ29kZSgoZS02NTUzNj4+MTApKzU1Mjk2LChlLTY1NTM2JjEwMjMpKzU2MzIwKX1mdW5jdGlvbiBid2UoZSx0LHIpe3Q9PT0iX19wcm90b19fIj9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpyfSk6ZVt0XT1yfXZhciB2d2U9bmV3IEFycmF5KDI1NikseHdlPW5ldyBBcnJheSgyNTYpO2ZvcihIMz0wO0gzPDI1NjtIMysrKXZ3ZVtIM109Z3dlKEgzKT8xOjAseHdlW0gzXT1nd2UoSDMpO2Z1bmN0aW9uIFN4cihlLHQpe3RoaXMuaW5wdXQ9ZSx0aGlzLmZpbGVuYW1lPXQuZmlsZW5hbWV8fG51bGwsdGhpcy5zY2hlbWE9dC5zY2hlbWF8fG14cix0aGlzLm9uV2FybmluZz10Lm9uV2FybmluZ3x8bnVsbCx0aGlzLmxlZ2FjeT10LmxlZ2FjeXx8ITEsdGhpcy5qc29uPXQuanNvbnx8ITEsdGhpcy5saXN0ZW5lcj10Lmxpc3RlbmVyfHxudWxsLHRoaXMuaW1wbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0LHRoaXMudHlwZU1hcD10aGlzLnNjaGVtYS5jb21waWxlZFR5cGVNYXAsdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5wb3NpdGlvbj0wLHRoaXMubGluZT0wLHRoaXMubGluZVN0YXJ0PTAsdGhpcy5saW5lSW5kZW50PTAsdGhpcy5kb2N1bWVudHM9W119ZnVuY3Rpb24geXdlKGUsdCl7cmV0dXJuIG5ldyBsd2UodCxuZXcgZnhyKGUuZmlsZW5hbWUsZS5pbnB1dCxlLnBvc2l0aW9uLGUubGluZSxlLnBvc2l0aW9uLWUubGluZVN0YXJ0KSl9ZnVuY3Rpb24geXQoZSx0KXt0aHJvdyB5d2UoZSx0KX1mdW5jdGlvbiB0TShlLHQpe2Uub25XYXJuaW5nJiZlLm9uV2FybmluZy5jYWxsKG51bGwseXdlKGUsdCkpfXZhciB3d2U9e1lBTUw6ZnVuY3Rpb24odCxyLGkpe3ZhciBhLG4sbzt0LnZlcnNpb24hPT1udWxsJiZ5dCh0LCJkdXBsaWNhdGlvbiBvZiAlWUFNTCBkaXJlY3RpdmUiKSxpLmxlbmd0aCE9PTEmJnl0KHQsIllBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQiKSxhPS9eKFswLTldKylcLihbMC05XSspJC8uZXhlYyhpWzBdKSxhPT09bnVsbCYmeXQodCwiaWxsLWZvcm1lZCBhcmd1bWVudCBvZiB0aGUgWUFNTCBkaXJlY3RpdmUiKSxuPXBhcnNlSW50KGFbMV0sMTApLG89cGFyc2VJbnQoYVsyXSwxMCksbiE9PTEmJnl0KHQsInVuYWNjZXB0YWJsZSBZQU1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IiksdC52ZXJzaW9uPWlbMF0sdC5jaGVja0xpbmVCcmVha3M9bzwyLG8hPT0xJiZvIT09MiYmdE0odCwidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpfSxUQUc6ZnVuY3Rpb24odCxyLGkpe3ZhciBhLG47aS5sZW5ndGghPT0yJiZ5dCh0LCJUQUcgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSB0d28gYXJndW1lbnRzIiksYT1pWzBdLG49aVsxXSxod2UudGVzdChhKXx8eXQodCwiaWxsLWZvcm1lZCB0YWcgaGFuZGxlIChmaXJzdCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKSxtMC5jYWxsKHQudGFnTWFwLGEpJiZ5dCh0LCd0aGVyZSBpcyBhIHByZXZpb3VzbHkgZGVjbGFyZWQgc3VmZml4IGZvciAiJythKyciIHRhZyBoYW5kbGUnKSxmd2UudGVzdChuKXx8eXQodCwiaWxsLWZvcm1lZCB0YWcgcHJlZml4IChzZWNvbmQgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIiksdC50YWdNYXBbYV09bn19O2Z1bmN0aW9uIGcwKGUsdCxyLGkpe3ZhciBhLG4sbyxzO2lmKHQ8cil7aWYocz1lLmlucHV0LnNsaWNlKHQsciksaSlmb3IoYT0wLG49cy5sZW5ndGg7YTxuO2ErPTEpbz1zLmNoYXJDb2RlQXQoYSksbz09PTl8fDMyPD1vJiZvPD0xMTE0MTExfHx5dChlLCJleHBlY3RlZCB2YWxpZCBKU09OIGNoYXJhY3RlciIpO2Vsc2UgYnhyLnRlc3QocykmJnl0KGUsInRoZSBzdHJlYW0gY29udGFpbnMgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIik7ZS5yZXN1bHQrPXN9fWZ1bmN0aW9uIE13ZShlLHQscixpKXt2YXIgYSxuLG8scztmb3IoTGwuaXNPYmplY3Qocil8fHl0KGUsImNhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlIiksYT1PYmplY3Qua2V5cyhyKSxvPTAscz1hLmxlbmd0aDtvPHM7bys9MSluPWFbb10sbTAuY2FsbCh0LG4pfHwoYndlKHQsbixyW25dKSxpW25dPSEwKX1mdW5jdGlvbiBmdShlLHQscixpLGEsbixvLHMpe3ZhciBsLGM7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IoYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKSxsPTAsYz1hLmxlbmd0aDtsPGM7bCs9MSlBcnJheS5pc0FycmF5KGFbbF0pJiZ5dChlLCJuZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBrZXlzIiksdHlwZW9mIGE9PSJvYmplY3QiJiZtd2UoYVtsXSk9PT0iW29iamVjdCBPYmplY3RdIiYmKGFbbF09IltvYmplY3QgT2JqZWN0XSIpO2lmKHR5cGVvZiBhPT0ib2JqZWN0IiYmbXdlKGEpPT09IltvYmplY3QgT2JqZWN0XSImJihhPSJbb2JqZWN0IE9iamVjdF0iKSxhPVN0cmluZyhhKSx0PT09bnVsbCYmKHQ9e30pLGk9PT0idGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiKWlmKEFycmF5LmlzQXJyYXkobikpZm9yKGw9MCxjPW4ubGVuZ3RoO2w8YztsKz0xKU13ZShlLHQsbltsXSxyKTtlbHNlIE13ZShlLHQsbixyKTtlbHNlIWUuanNvbiYmIW0wLmNhbGwocixhKSYmbTAuY2FsbCh0LGEpJiYoZS5saW5lPW98fGUubGluZSxlLnBvc2l0aW9uPXN8fGUucG9zaXRpb24seXQoZSwiZHVwbGljYXRlZCBtYXBwaW5nIGtleSIpKSxid2UodCxhLG4pLGRlbGV0ZSByW2FdO3JldHVybiB0fWZ1bmN0aW9uIE5qKGUpe3ZhciB0O3Q9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLHQ9PT0xMD9lLnBvc2l0aW9uKys6dD09PTEzPyhlLnBvc2l0aW9uKyssZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pPT09MTAmJmUucG9zaXRpb24rKyk6eXQoZSwiYSBsaW5lIGJyZWFrIGlzIGV4cGVjdGVkIiksZS5saW5lKz0xLGUubGluZVN0YXJ0PWUucG9zaXRpb259ZnVuY3Rpb24gSjEoZSx0LHIpe2Zvcih2YXIgaT0wLGE9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pO2EhPT0wOyl7Zm9yKDtCMyhhKTspYT1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtpZih0JiZhPT09MzUpZG8gYT1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTt3aGlsZShhIT09MTAmJmEhPT0xMyYmYSE9PTApO2lmKGNzKGEpKWZvcihOaihlKSxhPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxpKyssZS5saW5lSW5kZW50PTA7YT09PTMyOyllLmxpbmVJbmRlbnQrKyxhPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO2Vsc2UgYnJlYWt9cmV0dXJuIHIhPT0tMSYmaSE9PTAmJmUubGluZUluZGVudDxyJiZ0TShlLCJkZWZpY2llbnQgaW5kZW50YXRpb24iKSxpfWZ1bmN0aW9uIHJNKGUpe3ZhciB0PWUucG9zaXRpb24scjtyZXR1cm4gcj1lLmlucHV0LmNoYXJDb2RlQXQodCksISEoKHI9PT00NXx8cj09PTQ2KSYmcj09PWUuaW5wdXQuY2hhckNvZGVBdCh0KzEpJiZyPT09ZS5pbnB1dC5jaGFyQ29kZUF0KHQrMikmJih0Kz0zLHI9ZS5pbnB1dC5jaGFyQ29kZUF0KHQpLHI9PT0wfHxnbihyKSkpfWZ1bmN0aW9uIEZqKGUsdCl7dD09PTE/ZS5yZXN1bHQrPSIgIjp0PjEmJihlLnJlc3VsdCs9TGwucmVwZWF0KGAKYCx0LTEpKX1mdW5jdGlvbiB6eHIoZSx0LHIpe3ZhciBpLGEsbixvLHMsbCxjLHUsZD1lLmtpbmQsaD1lLnJlc3VsdCxmO2lmKGY9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGduKGYpfHxodShmKXx8Zj09PTM1fHxmPT09Mzh8fGY9PT00Mnx8Zj09PTMzfHxmPT09MTI0fHxmPT09NjJ8fGY9PT0zOXx8Zj09PTM0fHxmPT09Mzd8fGY9PT02NHx8Zj09PTk2fHwoZj09PTYzfHxmPT09NDUpJiYoYT1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSxnbihhKXx8ciYmaHUoYSkpKXJldHVybiExO2ZvcihlLmtpbmQ9InNjYWxhciIsZS5yZXN1bHQ9IiIsbj1vPWUucG9zaXRpb24scz0hMTtmIT09MDspe2lmKGY9PT01OCl7aWYoYT1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSxnbihhKXx8ciYmaHUoYSkpYnJlYWt9ZWxzZSBpZihmPT09MzUpe2lmKGk9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24tMSksZ24oaSkpYnJlYWt9ZWxzZXtpZihlLnBvc2l0aW9uPT09ZS5saW5lU3RhcnQmJnJNKGUpfHxyJiZodShmKSlicmVhaztpZihjcyhmKSlpZihsPWUubGluZSxjPWUubGluZVN0YXJ0LHU9ZS5saW5lSW5kZW50LEoxKGUsITEsLTEpLGUubGluZUluZGVudD49dCl7cz0hMCxmPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTtjb250aW51ZX1lbHNle2UucG9zaXRpb249byxlLmxpbmU9bCxlLmxpbmVTdGFydD1jLGUubGluZUluZGVudD11O2JyZWFrfX1zJiYoZzAoZSxuLG8sITEpLEZqKGUsZS5saW5lLWwpLG49bz1lLnBvc2l0aW9uLHM9ITEpLEIzKGYpfHwobz1lLnBvc2l0aW9uKzEpLGY9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbil9cmV0dXJuIGcwKGUsbixvLCExKSxlLnJlc3VsdD8hMDooZS5raW5kPWQsZS5yZXN1bHQ9aCwhMSl9ZnVuY3Rpb24gQ3hyKGUsdCl7dmFyIHIsaSxhO2lmKHI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLHIhPT0zOSlyZXR1cm4hMTtmb3IoZS5raW5kPSJzY2FsYXIiLGUucmVzdWx0PSIiLGUucG9zaXRpb24rKyxpPWE9ZS5wb3NpdGlvbjsocj1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbikpIT09MDspaWYocj09PTM5KWlmKGcwKGUsaSxlLnBvc2l0aW9uLCEwKSxyPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pLHI9PT0zOSlpPWUucG9zaXRpb24sZS5wb3NpdGlvbisrLGE9ZS5wb3NpdGlvbjtlbHNlIHJldHVybiEwO2Vsc2UgY3Mocik/KGcwKGUsaSxhLCEwKSxGaihlLEoxKGUsITEsdCkpLGk9YT1lLnBvc2l0aW9uKTplLnBvc2l0aW9uPT09ZS5saW5lU3RhcnQmJnJNKGUpP3l0KGUsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhciIpOihlLnBvc2l0aW9uKyssYT1lLnBvc2l0aW9uKTt5dChlLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIil9ZnVuY3Rpb24gVHhyKGUsdCl7dmFyIHIsaSxhLG4sbyxzO2lmKHM9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLHMhPT0zNClyZXR1cm4hMTtmb3IoZS5raW5kPSJzY2FsYXIiLGUucmVzdWx0PSIiLGUucG9zaXRpb24rKyxyPWk9ZS5wb3NpdGlvbjsocz1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbikpIT09MDspe2lmKHM9PT0zNClyZXR1cm4gZzAoZSxyLGUucG9zaXRpb24sITApLGUucG9zaXRpb24rKywhMDtpZihzPT09OTIpe2lmKGcwKGUscixlLnBvc2l0aW9uLCEwKSxzPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pLGNzKHMpKUoxKGUsITEsdCk7ZWxzZSBpZihzPDI1NiYmdndlW3NdKWUucmVzdWx0Kz14d2Vbc10sZS5wb3NpdGlvbisrO2Vsc2UgaWYoKG89d3hyKHMpKT4wKXtmb3IoYT1vLG49MDthPjA7YS0tKXM9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksKG89eXhyKHMpKT49MD9uPShuPDw0KStvOnl0KGUsImV4cGVjdGVkIGhleGFkZWNpbWFsIGNoYXJhY3RlciIpO2UucmVzdWx0Kz1reHIobiksZS5wb3NpdGlvbisrfWVsc2UgeXQoZSwidW5rbm93biBlc2NhcGUgc2VxdWVuY2UiKTtyPWk9ZS5wb3NpdGlvbn1lbHNlIGNzKHMpPyhnMChlLHIsaSwhMCksRmooZSxKMShlLCExLHQpKSxyPWk9ZS5wb3NpdGlvbik6ZS5wb3NpdGlvbj09PWUubGluZVN0YXJ0JiZyTShlKT95dChlLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKTooZS5wb3NpdGlvbisrLGk9ZS5wb3NpdGlvbil9eXQoZSwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhciIpfWZ1bmN0aW9uIF94cihlLHQpe3ZhciByPSEwLGksYT1lLnRhZyxuLG89ZS5hbmNob3IscyxsLGMsdSxkLGg9e30sZix4LHYsYjtpZihiPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxiPT09OTEpbD05MyxkPSExLG49W107ZWxzZSBpZihiPT09MTIzKWw9MTI1LGQ9ITAsbj17fTtlbHNlIHJldHVybiExO2ZvcihlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09biksYj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtiIT09MDspe2lmKEoxKGUsITAsdCksYj1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbiksYj09PWwpcmV0dXJuIGUucG9zaXRpb24rKyxlLnRhZz1hLGUuYW5jaG9yPW8sZS5raW5kPWQ/Im1hcHBpbmciOiJzZXF1ZW5jZSIsZS5yZXN1bHQ9biwhMDtyfHx5dChlLCJtaXNzZWQgY29tbWEgYmV0d2VlbiBmbG93IGNvbGxlY3Rpb24gZW50cmllcyIpLHg9Zj12PW51bGwsYz11PSExLGI9PT02MyYmKHM9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMSksZ24ocykmJihjPXU9ITAsZS5wb3NpdGlvbisrLEoxKGUsITAsdCkpKSxpPWUubGluZSxtdShlLHQsS3csITEsITApLHg9ZS50YWcsZj1lLnJlc3VsdCxKMShlLCEwLHQpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLCh1fHxlLmxpbmU9PT1pKSYmYj09PTU4JiYoYz0hMCxiPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pLEoxKGUsITAsdCksbXUoZSx0LEt3LCExLCEwKSx2PWUucmVzdWx0KSxkP2Z1KGUsbixoLHgsZix2KTpjP24ucHVzaChmdShlLG51bGwsaCx4LGYsdikpOm4ucHVzaChmKSxKMShlLCEwLHQpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGI9PT00ND8ocj0hMCxiPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pKTpyPSExfXl0KGUsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZmxvdyBjb2xsZWN0aW9uIil9ZnVuY3Rpb24gTHhyKGUsdCl7dmFyIHIsaSxhPVBqLG49ITEsbz0hMSxzPXQsbD0wLGM9ITEsdSxkO2lmKGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGQ9PT0xMjQpaT0hMTtlbHNlIGlmKGQ9PT02MilpPSEwO2Vsc2UgcmV0dXJuITE7Zm9yKGUua2luZD0ic2NhbGFyIixlLnJlc3VsdD0iIjtkIT09MDspaWYoZD1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSxkPT09NDN8fGQ9PT00NSlQaj09PWE/YT1kPT09NDM/cHdlOmd4cjp5dChlLCJyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXIiKTtlbHNlIGlmKCh1PU14cihkKSk+PTApdT09PTA/eXQoZSwiYmFkIGV4cGxpY2l0IGluZGVudGF0aW9uIHdpZHRoIG9mIGEgYmxvY2sgc2NhbGFyOyBpdCBjYW5ub3QgYmUgbGVzcyB0aGFuIG9uZSIpOm8/eXQoZSwicmVwZWF0IG9mIGFuIGluZGVudGF0aW9uIHdpZHRoIGlkZW50aWZpZXIiKToocz10K3UtMSxvPSEwKTtlbHNlIGJyZWFrO2lmKEIzKGQpKXtkbyBkPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO3doaWxlKEIzKGQpKTtpZihkPT09MzUpZG8gZD1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTt3aGlsZSghY3MoZCkmJmQhPT0wKX1mb3IoO2QhPT0wOyl7Zm9yKE5qKGUpLGUubGluZUluZGVudD0wLGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pOyghb3x8ZS5saW5lSW5kZW50PHMpJiZkPT09MzI7KWUubGluZUluZGVudCsrLGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7aWYoIW8mJmUubGluZUluZGVudD5zJiYocz1lLmxpbmVJbmRlbnQpLGNzKGQpKXtsKys7Y29udGludWV9aWYoZS5saW5lSW5kZW50PHMpe2E9PT1wd2U/ZS5yZXN1bHQrPUxsLnJlcGVhdChgCmAsbj8xK2w6bCk6YT09PVBqJiZuJiYoZS5yZXN1bHQrPWAKYCk7YnJlYWt9Zm9yKGk/QjMoZCk/KGM9ITAsZS5yZXN1bHQrPUxsLnJlcGVhdChgCmAsbj8xK2w6bCkpOmM/KGM9ITEsZS5yZXN1bHQrPUxsLnJlcGVhdChgCmAsbCsxKSk6bD09PTA/biYmKGUucmVzdWx0Kz0iICIpOmUucmVzdWx0Kz1MbC5yZXBlYXQoYApgLGwpOmUucmVzdWx0Kz1MbC5yZXBlYXQoYApgLG4/MStsOmwpLG49ITAsbz0hMCxsPTAscj1lLnBvc2l0aW9uOyFjcyhkKSYmZCE9PTA7KWQ9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7ZzAoZSxyLGUucG9zaXRpb24sITEpfXJldHVybiEwfWZ1bmN0aW9uIGt3ZShlLHQpe3ZhciByLGk9ZS50YWcsYT1lLmFuY2hvcixuPVtdLG8scz0hMSxsO2ZvcihlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09biksbD1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbik7bCE9PTAmJiEobCE9PTQ1fHwobz1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSwhZ24obykpKTspe2lmKHM9ITAsZS5wb3NpdGlvbisrLEoxKGUsITAsLTEpJiZlLmxpbmVJbmRlbnQ8PXQpe24ucHVzaChudWxsKSxsPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTtjb250aW51ZX1pZihyPWUubGluZSxtdShlLHQsdXdlLCExLCEwKSxuLnB1c2goZS5yZXN1bHQpLEoxKGUsITAsLTEpLGw9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLChlLmxpbmU9PT1yfHxlLmxpbmVJbmRlbnQ+dCkmJmwhPT0wKXl0KGUsImJhZCBpbmRlbnRhdGlvbiBvZiBhIHNlcXVlbmNlIGVudHJ5Iik7ZWxzZSBpZihlLmxpbmVJbmRlbnQ8dClicmVha31yZXR1cm4gcz8oZS50YWc9aSxlLmFuY2hvcj1hLGUua2luZD0ic2VxdWVuY2UiLGUucmVzdWx0PW4sITApOiExfWZ1bmN0aW9uIEF4cihlLHQscil7dmFyIGksYSxuLG8scz1lLnRhZyxsPWUuYW5jaG9yLGM9e30sdT17fSxkPW51bGwsaD1udWxsLGY9bnVsbCx4PSExLHY9ITEsYjtmb3IoZS5hbmNob3IhPT1udWxsJiYoZS5hbmNob3JNYXBbZS5hbmNob3JdPWMpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pO2IhPT0wOyl7aWYoaT1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSxuPWUubGluZSxvPWUucG9zaXRpb24sKGI9PT02M3x8Yj09PTU4KSYmZ24oaSkpYj09PTYzPyh4JiYoZnUoZSxjLHUsZCxoLG51bGwpLGQ9aD1mPW51bGwpLHY9ITAseD0hMCxhPSEwKTp4Pyh4PSExLGE9ITApOnl0KGUsImluY29tcGxldGUgZXhwbGljaXQgbWFwcGluZyBwYWlyOyBhIGtleSBub2RlIGlzIG1pc3NlZDsgb3IgZm9sbG93ZWQgYnkgYSBub24tdGFidWxhdGVkIGVtcHR5IGxpbmUiKSxlLnBvc2l0aW9uKz0xLGI9aTtlbHNlIGlmKG11KGUscixkd2UsITEsITApKWlmKGUubGluZT09PW4pe2ZvcihiPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTtCMyhiKTspYj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtpZihiPT09NTgpYj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSxnbihiKXx8eXQoZSwiYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpcyBleHBlY3RlZCBhZnRlciB0aGUga2V5LXZhbHVlIHNlcGFyYXRvciB3aXRoaW4gYSBibG9jayBtYXBwaW5nIikseCYmKGZ1KGUsYyx1LGQsaCxudWxsKSxkPWg9Zj1udWxsKSx2PSEwLHg9ITEsYT0hMSxkPWUudGFnLGg9ZS5yZXN1bHQ7ZWxzZSBpZih2KXl0KGUsImNhbiBub3QgcmVhZCBhbiBpbXBsaWNpdCBtYXBwaW5nIHBhaXI7IGEgY29sb24gaXMgbWlzc2VkIik7ZWxzZSByZXR1cm4gZS50YWc9cyxlLmFuY2hvcj1sLCEwfWVsc2UgaWYodil5dChlLCJjYW4gbm90IHJlYWQgYSBibG9jayBtYXBwaW5nIGVudHJ5OyBhIG11bHRpbGluZSBrZXkgbWF5IG5vdCBiZSBhbiBpbXBsaWNpdCBrZXkiKTtlbHNlIHJldHVybiBlLnRhZz1zLGUuYW5jaG9yPWwsITA7ZWxzZSBicmVhaztpZigoZS5saW5lPT09bnx8ZS5saW5lSW5kZW50PnQpJiYobXUoZSx0LGVNLCEwLGEpJiYoeD9oPWUucmVzdWx0OmY9ZS5yZXN1bHQpLHh8fChmdShlLGMsdSxkLGgsZixuLG8pLGQ9aD1mPW51bGwpLEoxKGUsITAsLTEpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pKSxlLmxpbmVJbmRlbnQ+dCYmYiE9PTApeXQoZSwiYmFkIGluZGVudGF0aW9uIG9mIGEgbWFwcGluZyBlbnRyeSIpO2Vsc2UgaWYoZS5saW5lSW5kZW50PHQpYnJlYWt9cmV0dXJuIHgmJmZ1KGUsYyx1LGQsaCxudWxsKSx2JiYoZS50YWc9cyxlLmFuY2hvcj1sLGUua2luZD0ibWFwcGluZyIsZS5yZXN1bHQ9Yyksdn1mdW5jdGlvbiBEeHIoZSl7dmFyIHQscj0hMSxpPSExLGEsbixvO2lmKG89ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLG8hPT0zMylyZXR1cm4hMTtpZihlLnRhZyE9PW51bGwmJnl0KGUsImR1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5Iiksbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSxvPT09NjA/KHI9ITAsbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSk6bz09PTMzPyhpPSEwLGE9IiEhIixvPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pKTphPSIhIix0PWUucG9zaXRpb24scil7ZG8gbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTt3aGlsZShvIT09MCYmbyE9PTYyKTtlLnBvc2l0aW9uPGUubGVuZ3RoPyhuPWUuaW5wdXQuc2xpY2UodCxlLnBvc2l0aW9uKSxvPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pKTp5dChlLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHZlcmJhdGltIHRhZyIpfWVsc2V7Zm9yKDtvIT09MCYmIWduKG8pOylvPT09MzMmJihpP3l0KGUsInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZXhjbGFtYXRpb24gbWFya3MiKTooYT1lLmlucHV0LnNsaWNlKHQtMSxlLnBvc2l0aW9uKzEpLGh3ZS50ZXN0KGEpfHx5dChlLCJuYW1lZCB0YWcgaGFuZGxlIGNhbm5vdCBjb250YWluIHN1Y2ggY2hhcmFjdGVycyIpLGk9ITAsdD1lLnBvc2l0aW9uKzEpKSxvPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO249ZS5pbnB1dC5zbGljZSh0LGUucG9zaXRpb24pLHh4ci50ZXN0KG4pJiZ5dChlLCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGZsb3cgaW5kaWNhdG9yIGNoYXJhY3RlcnMiKX1yZXR1cm4gbiYmIWZ3ZS50ZXN0KG4pJiZ5dChlLCJ0YWcgbmFtZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnM6ICIrbikscj9lLnRhZz1uOm0wLmNhbGwoZS50YWdNYXAsYSk/ZS50YWc9ZS50YWdNYXBbYV0rbjphPT09IiEiP2UudGFnPSIhIituOmE9PT0iISEiP2UudGFnPSJ0YWc6eWFtbC5vcmcsMjAwMjoiK246eXQoZSwndW5kZWNsYXJlZCB0YWcgaGFuZGxlICInK2ErJyInKSwhMH1mdW5jdGlvbiBFeHIoZSl7dmFyIHQscjtpZihyPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxyIT09MzgpcmV0dXJuITE7Zm9yKGUuYW5jaG9yIT09bnVsbCYmeXQoZSwiZHVwbGljYXRpb24gb2YgYW4gYW5jaG9yIHByb3BlcnR5Iikscj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSx0PWUucG9zaXRpb247ciE9PTAmJiFnbihyKSYmIWh1KHIpOylyPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO3JldHVybiBlLnBvc2l0aW9uPT09dCYmeXQoZSwibmFtZSBvZiBhbiBhbmNob3Igbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpLGUuYW5jaG9yPWUuaW5wdXQuc2xpY2UodCxlLnBvc2l0aW9uKSwhMH1mdW5jdGlvbiAkeHIoZSl7dmFyIHQscixpO2lmKGk9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGkhPT00MilyZXR1cm4hMTtmb3IoaT1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSx0PWUucG9zaXRpb247aSE9PTAmJiFnbihpKSYmIWh1KGkpOylpPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO3JldHVybiBlLnBvc2l0aW9uPT09dCYmeXQoZSwibmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIikscj1lLmlucHV0LnNsaWNlKHQsZS5wb3NpdGlvbiksbTAuY2FsbChlLmFuY2hvck1hcCxyKXx8eXQoZSwndW5pZGVudGlmaWVkIGFsaWFzICInK3IrJyInKSxlLnJlc3VsdD1lLmFuY2hvck1hcFtyXSxKMShlLCEwLC0xKSwhMH1mdW5jdGlvbiBtdShlLHQscixpLGEpe3ZhciBuLG8scyxsPTEsYz0hMSx1PSExLGQsaCxmLHgsdjtpZihlLmxpc3RlbmVyIT09bnVsbCYmZS5saXN0ZW5lcigib3BlbiIsZSksZS50YWc9bnVsbCxlLmFuY2hvcj1udWxsLGUua2luZD1udWxsLGUucmVzdWx0PW51bGwsbj1vPXM9ZU09PT1yfHx1d2U9PT1yLGkmJkoxKGUsITAsLTEpJiYoYz0hMCxlLmxpbmVJbmRlbnQ+dD9sPTE6ZS5saW5lSW5kZW50PT09dD9sPTA6ZS5saW5lSW5kZW50PHQmJihsPS0xKSksbD09PTEpZm9yKDtEeHIoZSl8fEV4cihlKTspSjEoZSwhMCwtMSk/KGM9ITAscz1uLGUubGluZUluZGVudD50P2w9MTplLmxpbmVJbmRlbnQ9PT10P2w9MDplLmxpbmVJbmRlbnQ8dCYmKGw9LTEpKTpzPSExO2lmKHMmJihzPWN8fGEpLChsPT09MXx8ZU09PT1yKSYmKEt3PT09cnx8ZHdlPT09cj94PXQ6eD10KzEsdj1lLnBvc2l0aW9uLWUubGluZVN0YXJ0LGw9PT0xP3MmJihrd2UoZSx2KXx8QXhyKGUsdix4KSl8fF94cihlLHgpP3U9ITA6KG8mJkx4cihlLHgpfHxDeHIoZSx4KXx8VHhyKGUseCk/dT0hMDokeHIoZSk/KHU9ITAsKGUudGFnIT09bnVsbHx8ZS5hbmNob3IhPT1udWxsKSYmeXQoZSwiYWxpYXMgbm9kZSBzaG91bGQgbm90IGhhdmUgYW55IHByb3BlcnRpZXMiKSk6enhyKGUseCxLdz09PXIpJiYodT0hMCxlLnRhZz09PW51bGwmJihlLnRhZz0iPyIpKSxlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09ZS5yZXN1bHQpKTpsPT09MCYmKHU9cyYma3dlKGUsdikpKSxlLnRhZyE9PW51bGwmJmUudGFnIT09IiEiKWlmKGUudGFnPT09Ij8iKXtmb3IoZS5yZXN1bHQhPT1udWxsJiZlLmtpbmQhPT0ic2NhbGFyIiYmeXQoZSwndW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITw/PiB0YWc7IGl0IHNob3VsZCBiZSAic2NhbGFyIiwgbm90ICInK2Uua2luZCsnIicpLGQ9MCxoPWUuaW1wbGljaXRUeXBlcy5sZW5ndGg7ZDxoO2QrPTEpaWYoZj1lLmltcGxpY2l0VHlwZXNbZF0sZi5yZXNvbHZlKGUucmVzdWx0KSl7ZS5yZXN1bHQ9Zi5jb25zdHJ1Y3QoZS5yZXN1bHQpLGUudGFnPWYudGFnLGUuYW5jaG9yIT09bnVsbCYmKGUuYW5jaG9yTWFwW2UuYW5jaG9yXT1lLnJlc3VsdCk7YnJlYWt9fWVsc2UgbTAuY2FsbChlLnR5cGVNYXBbZS5raW5kfHwiZmFsbGJhY2siXSxlLnRhZyk/KGY9ZS50eXBlTWFwW2Uua2luZHx8ImZhbGxiYWNrIl1bZS50YWddLGUucmVzdWx0IT09bnVsbCYmZi5raW5kIT09ZS5raW5kJiZ5dChlLCJ1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPCIrZS50YWcrJz4gdGFnOyBpdCBzaG91bGQgYmUgIicrZi5raW5kKyciLCBub3QgIicrZS5raW5kKyciJyksZi5yZXNvbHZlKGUucmVzdWx0KT8oZS5yZXN1bHQ9Zi5jb25zdHJ1Y3QoZS5yZXN1bHQpLGUuYW5jaG9yIT09bnVsbCYmKGUuYW5jaG9yTWFwW2UuYW5jaG9yXT1lLnJlc3VsdCkpOnl0KGUsImNhbm5vdCByZXNvbHZlIGEgbm9kZSB3aXRoICE8IitlLnRhZysiPiBleHBsaWNpdCB0YWciKSk6eXQoZSwidW5rbm93biB0YWcgITwiK2UudGFnKyI+Iik7cmV0dXJuIGUubGlzdGVuZXIhPT1udWxsJiZlLmxpc3RlbmVyKCJjbG9zZSIsZSksZS50YWchPT1udWxsfHxlLmFuY2hvciE9PW51bGx8fHV9ZnVuY3Rpb24gSXhyKGUpe3ZhciB0PWUucG9zaXRpb24scixpLGEsbj0hMSxvO2ZvcihlLnZlcnNpb249bnVsbCxlLmNoZWNrTGluZUJyZWFrcz1lLmxlZ2FjeSxlLnRhZ01hcD17fSxlLmFuY2hvck1hcD17fTsobz1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbikpIT09MCYmKEoxKGUsITAsLTEpLG89ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLCEoZS5saW5lSW5kZW50PjB8fG8hPT0zNykpOyl7Zm9yKG49ITAsbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSxyPWUucG9zaXRpb247byE9PTAmJiFnbihvKTspbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtmb3IoaT1lLmlucHV0LnNsaWNlKHIsZS5wb3NpdGlvbiksYT1bXSxpLmxlbmd0aDwxJiZ5dChlLCJkaXJlY3RpdmUgbmFtZSBtdXN0IG5vdCBiZSBsZXNzIHRoYW4gb25lIGNoYXJhY3RlciBpbiBsZW5ndGgiKTtvIT09MDspe2Zvcig7QjMobyk7KW89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7aWYobz09PTM1KXtkbyBvPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO3doaWxlKG8hPT0wJiYhY3MobykpO2JyZWFrfWlmKGNzKG8pKWJyZWFrO2ZvcihyPWUucG9zaXRpb247byE9PTAmJiFnbihvKTspbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTthLnB1c2goZS5pbnB1dC5zbGljZShyLGUucG9zaXRpb24pKX1vIT09MCYmTmooZSksbTAuY2FsbCh3d2UsaSk/d3dlW2ldKGUsaSxhKTp0TShlLCd1bmtub3duIGRvY3VtZW50IGRpcmVjdGl2ZSAiJytpKyciJyl9aWYoSjEoZSwhMCwtMSksZS5saW5lSW5kZW50PT09MCYmZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pPT09NDUmJmUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKzEpPT09NDUmJmUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKzIpPT09NDU/KGUucG9zaXRpb24rPTMsSjEoZSwhMCwtMSkpOm4mJnl0KGUsImRpcmVjdGl2ZXMgZW5kIG1hcmsgaXMgZXhwZWN0ZWQiKSxtdShlLGUubGluZUluZGVudC0xLGVNLCExLCEwKSxKMShlLCEwLC0xKSxlLmNoZWNrTGluZUJyZWFrcyYmdnhyLnRlc3QoZS5pbnB1dC5zbGljZSh0LGUucG9zaXRpb24pKSYmdE0oZSwibm9uLUFTQ0lJIGxpbmUgYnJlYWtzIGFyZSBpbnRlcnByZXRlZCBhcyBjb250ZW50IiksZS5kb2N1bWVudHMucHVzaChlLnJlc3VsdCksZS5wb3NpdGlvbj09PWUubGluZVN0YXJ0JiZyTShlKSl7ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pPT09NDYmJihlLnBvc2l0aW9uKz0zLEoxKGUsITAsLTEpKTtyZXR1cm59aWYoZS5wb3NpdGlvbjxlLmxlbmd0aC0xKXl0KGUsImVuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkIik7ZWxzZSByZXR1cm59ZnVuY3Rpb24gU3dlKGUsdCl7ZT1TdHJpbmcoZSksdD10fHx7fSxlLmxlbmd0aCE9PTAmJihlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSkhPT0xMCYmZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpIT09MTMmJihlKz1gCmApLGUuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoZT1lLnNsaWNlKDEpKSk7dmFyIHI9bmV3IFN4cihlLHQpLGk9ZS5pbmRleE9mKCJcMCIpO2ZvcihpIT09LTEmJihyLnBvc2l0aW9uPWkseXQociwibnVsbCBieXRlIGlzIG5vdCBhbGxvd2VkIGluIGlucHV0IikpLHIuaW5wdXQrPSJcMCI7ci5pbnB1dC5jaGFyQ29kZUF0KHIucG9zaXRpb24pPT09MzI7KXIubGluZUluZGVudCs9MSxyLnBvc2l0aW9uKz0xO2Zvcig7ci5wb3NpdGlvbjxyLmxlbmd0aC0xOylJeHIocik7cmV0dXJuIHIuZG9jdW1lbnRzfWZ1bmN0aW9uIHp3ZShlLHQscil7dCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdHlwZW9mIHI+InUiJiYocj10LHQ9bnVsbCk7dmFyIGk9U3dlKGUscik7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpcmV0dXJuIGk7Zm9yKHZhciBhPTAsbj1pLmxlbmd0aDthPG47YSs9MSl0KGlbYV0pfWZ1bmN0aW9uIEN3ZShlLHQpe3ZhciByPVN3ZShlLHQpO2lmKHIubGVuZ3RoIT09MCl7aWYoci5sZW5ndGg9PT0xKXJldHVybiByWzBdO3Rocm93IG5ldyBsd2UoImV4cGVjdGVkIGEgc2luZ2xlIGRvY3VtZW50IGluIHRoZSBzdHJlYW0sIGJ1dCBmb3VuZCBtb3JlIil9fWZ1bmN0aW9uIFB4cihlLHQscil7cmV0dXJuIHR5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGwmJnR5cGVvZiByPiJ1IiYmKHI9dCx0PW51bGwpLHp3ZShlLHQsTGwuZXh0ZW5kKHtzY2hlbWE6Y3dlfSxyKSl9ZnVuY3Rpb24gTnhyKGUsdCl7cmV0dXJuIEN3ZShlLExsLmV4dGVuZCh7c2NoZW1hOmN3ZX0sdCkpfW43LmV4cG9ydHMubG9hZEFsbD16d2UsbjcuZXhwb3J0cy5sb2FkPUN3ZSxuNy5leHBvcnRzLnNhZmVMb2FkQWxsPVB4cixuNy5leHBvcnRzLnNhZmVMb2FkPU54cjt2YXIgSDN9KTt2YXIgWHdlPWplKChPRTEsSGopPT57InVzZSBzdHJpY3QiO3ZhciBvNz1GMygpLHM3PWR1KCksRnhyPWE3KCksT3hyPXB1KCksX3dlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsTHdlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksUnhyPTksbDc9MTAsQnhyPTEzLEh4cj0zMixxeHI9MzMsanhyPTM0LEF3ZT0zNSxWeHI9MzcsVXhyPTM4LFd4cj0zOSxHeHI9NDIsRHdlPTQ0LFl4cj00NSxFd2U9NTgsWnhyPTYxLFh4cj02MixReHI9NjMsSnhyPTY0LCR3ZT05MSxJd2U9OTMsS3hyPTk2LFB3ZT0xMjMsZXlyPTEyNCxOd2U9MTI1LGJhPXt9O2JhWzBdPSJcXDAiLGJhWzddPSJcXGEiLGJhWzhdPSJcXGIiLGJhWzldPSJcXHQiLGJhWzEwXT0iXFxuIixiYVsxMV09IlxcdiIsYmFbMTJdPSJcXGYiLGJhWzEzXT0iXFxyIixiYVsyN109IlxcZSIsYmFbMzRdPSdcXCInLGJhWzkyXT0iXFxcXCIsYmFbMTMzXT0iXFxOIixiYVsxNjBdPSJcXF8iLGJhWzgyMzJdPSJcXEwiLGJhWzgyMzNdPSJcXFAiO3ZhciB0eXI9WyJ5IiwiWSIsInllcyIsIlllcyIsIllFUyIsIm9uIiwiT24iLCJPTiIsIm4iLCJOIiwibm8iLCJObyIsIk5PIiwib2ZmIiwiT2ZmIiwiT0ZGIl07ZnVuY3Rpb24gcnlyKGUsdCl7dmFyIHIsaSxhLG4sbyxzLGw7aWYodD09PW51bGwpcmV0dXJue307Zm9yKHI9e30saT1PYmplY3Qua2V5cyh0KSxhPTAsbj1pLmxlbmd0aDthPG47YSs9MSlvPWlbYV0scz1TdHJpbmcodFtvXSksby5zbGljZSgwLDIpPT09IiEhIiYmKG89InRhZzp5YW1sLm9yZywyMDAyOiIrby5zbGljZSgyKSksbD1lLmNvbXBpbGVkVHlwZU1hcC5mYWxsYmFja1tvXSxsJiZMd2UuY2FsbChsLnN0eWxlQWxpYXNlcyxzKSYmKHM9bC5zdHlsZUFsaWFzZXNbc10pLHJbb109cztyZXR1cm4gcn1mdW5jdGlvbiBGd2UoZSl7dmFyIHQscixpO2lmKHQ9ZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSxlPD0yNTUpcj0ieCIsaT0yO2Vsc2UgaWYoZTw9NjU1MzUpcj0idSIsaT00O2Vsc2UgaWYoZTw9NDI5NDk2NzI5NSlyPSJVIixpPTg7ZWxzZSB0aHJvdyBuZXcgczcoImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkYiKTtyZXR1cm4iXFwiK3IrbzcucmVwZWF0KCIwIixpLXQubGVuZ3RoKSt0fWZ1bmN0aW9uIGl5cihlKXt0aGlzLnNjaGVtYT1lLnNjaGVtYXx8RnhyLHRoaXMuaW5kZW50PU1hdGgubWF4KDEsZS5pbmRlbnR8fDIpLHRoaXMubm9BcnJheUluZGVudD1lLm5vQXJyYXlJbmRlbnR8fCExLHRoaXMuc2tpcEludmFsaWQ9ZS5za2lwSW52YWxpZHx8ITEsdGhpcy5mbG93TGV2ZWw9bzcuaXNOb3RoaW5nKGUuZmxvd0xldmVsKT8tMTplLmZsb3dMZXZlbCx0aGlzLnN0eWxlTWFwPXJ5cih0aGlzLnNjaGVtYSxlLnN0eWxlc3x8bnVsbCksdGhpcy5zb3J0S2V5cz1lLnNvcnRLZXlzfHwhMSx0aGlzLmxpbmVXaWR0aD1lLmxpbmVXaWR0aHx8ODAsdGhpcy5ub1JlZnM9ZS5ub1JlZnN8fCExLHRoaXMubm9Db21wYXRNb2RlPWUubm9Db21wYXRNb2RlfHwhMSx0aGlzLmNvbmRlbnNlRmxvdz1lLmNvbmRlbnNlRmxvd3x8ITEsdGhpcy5pbXBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQsdGhpcy5leHBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkRXhwbGljaXQsdGhpcy50YWc9bnVsbCx0aGlzLnJlc3VsdD0iIix0aGlzLmR1cGxpY2F0ZXM9W10sdGhpcy51c2VkRHVwbGljYXRlcz1udWxsfWZ1bmN0aW9uIE93ZShlLHQpe2Zvcih2YXIgcj1vNy5yZXBlYXQoIiAiLHQpLGk9MCxhPS0xLG49IiIsbyxzPWUubGVuZ3RoO2k8czspYT1lLmluZGV4T2YoYApgLGkpLGE9PT0tMT8obz1lLnNsaWNlKGkpLGk9cyk6KG89ZS5zbGljZShpLGErMSksaT1hKzEpLG8ubGVuZ3RoJiZvIT09YApgJiYobis9ciksbis9bztyZXR1cm4gbn1mdW5jdGlvbiBPaihlLHQpe3JldHVybmAKYCtvNy5yZXBlYXQoIiAiLGUuaW5kZW50KnQpfWZ1bmN0aW9uIGF5cihlLHQpe3ZhciByLGksYTtmb3Iocj0wLGk9ZS5pbXBsaWNpdFR5cGVzLmxlbmd0aDtyPGk7cis9MSlpZihhPWUuaW1wbGljaXRUeXBlc1tyXSxhLnJlc29sdmUodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gUmooZSl7cmV0dXJuIGU9PT1IeHJ8fGU9PT1SeHJ9ZnVuY3Rpb24gZ3UoZSl7cmV0dXJuIDMyPD1lJiZlPD0xMjZ8fDE2MTw9ZSYmZTw9NTUyOTUmJmUhPT04MjMyJiZlIT09ODIzM3x8NTczNDQ8PWUmJmU8PTY1NTMzJiZlIT09NjUyNzl8fDY1NTM2PD1lJiZlPD0xMTE0MTExfWZ1bmN0aW9uIG55cihlKXtyZXR1cm4gZ3UoZSkmJiFSaihlKSYmZSE9PTY1Mjc5JiZlIT09QnhyJiZlIT09bDd9ZnVuY3Rpb24gUndlKGUsdCl7cmV0dXJuIGd1KGUpJiZlIT09NjUyNzkmJmUhPT1Ed2UmJmUhPT0kd2UmJmUhPT1Jd2UmJmUhPT1Qd2UmJmUhPT1Od2UmJmUhPT1Fd2UmJihlIT09QXdlfHx0JiZueXIodCkpfWZ1bmN0aW9uIG95cihlKXtyZXR1cm4gZ3UoZSkmJmUhPT02NTI3OSYmIVJqKGUpJiZlIT09WXhyJiZlIT09UXhyJiZlIT09RXdlJiZlIT09RHdlJiZlIT09JHdlJiZlIT09SXdlJiZlIT09UHdlJiZlIT09TndlJiZlIT09QXdlJiZlIT09VXhyJiZlIT09R3hyJiZlIT09cXhyJiZlIT09ZXlyJiZlIT09WnhyJiZlIT09WHhyJiZlIT09V3hyJiZlIT09anhyJiZlIT09VnhyJiZlIT09SnhyJiZlIT09S3hyfWZ1bmN0aW9uIEJ3ZShlKXt2YXIgdD0vXlxuKiAvO3JldHVybiB0LnRlc3QoZSl9dmFyIEh3ZT0xLHF3ZT0yLGp3ZT0zLFZ3ZT00LGlNPTU7ZnVuY3Rpb24gc3lyKGUsdCxyLGksYSl7dmFyIG4sbyxzLGw9ITEsYz0hMSx1PWkhPT0tMSxkPS0xLGg9b3lyKGUuY2hhckNvZGVBdCgwKSkmJiFSaihlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSkpO2lmKHQpZm9yKG49MDtuPGUubGVuZ3RoO24rKyl7aWYobz1lLmNoYXJDb2RlQXQobiksIWd1KG8pKXJldHVybiBpTTtzPW4+MD9lLmNoYXJDb2RlQXQobi0xKTpudWxsLGg9aCYmUndlKG8scyl9ZWxzZXtmb3Iobj0wO248ZS5sZW5ndGg7bisrKXtpZihvPWUuY2hhckNvZGVBdChuKSxvPT09bDcpbD0hMCx1JiYoYz1jfHxuLWQtMT5pJiZlW2QrMV0hPT0iICIsZD1uKTtlbHNlIGlmKCFndShvKSlyZXR1cm4gaU07cz1uPjA/ZS5jaGFyQ29kZUF0KG4tMSk6bnVsbCxoPWgmJlJ3ZShvLHMpfWM9Y3x8dSYmbi1kLTE+aSYmZVtkKzFdIT09IiAifXJldHVybiFsJiYhYz9oJiYhYShlKT9Id2U6cXdlOnI+OSYmQndlKGUpP2lNOmM/VndlOmp3ZX1mdW5jdGlvbiBseXIoZSx0LHIsaSl7ZS5kdW1wPShmdW5jdGlvbigpe2lmKHQubGVuZ3RoPT09MClyZXR1cm4iJyciO2lmKCFlLm5vQ29tcGF0TW9kZSYmdHlyLmluZGV4T2YodCkhPT0tMSlyZXR1cm4iJyIrdCsiJyI7dmFyIGE9ZS5pbmRlbnQqTWF0aC5tYXgoMSxyKSxuPWUubGluZVdpZHRoPT09LTE/LTE6TWF0aC5tYXgoTWF0aC5taW4oZS5saW5lV2lkdGgsNDApLGUubGluZVdpZHRoLWEpLG89aXx8ZS5mbG93TGV2ZWw+LTEmJnI+PWUuZmxvd0xldmVsO2Z1bmN0aW9uIHMobCl7cmV0dXJuIGF5cihlLGwpfXN3aXRjaChzeXIodCxvLGUuaW5kZW50LG4scykpe2Nhc2UgSHdlOnJldHVybiB0O2Nhc2UgcXdlOnJldHVybiInIit0LnJlcGxhY2UoLycvZywiJyciKSsiJyI7Y2FzZSBqd2U6cmV0dXJuInwiK1V3ZSh0LGUuaW5kZW50KStXd2UoT3dlKHQsYSkpO2Nhc2UgVndlOnJldHVybiI+IitVd2UodCxlLmluZGVudCkrV3dlKE93ZShjeXIodCxuKSxhKSk7Y2FzZSBpTTpyZXR1cm4nIicrZHlyKHQsbikrJyInO2RlZmF1bHQ6dGhyb3cgbmV3IHM3KCJpbXBvc3NpYmxlIGVycm9yOiBpbnZhbGlkIHNjYWxhciBzdHlsZSIpfX0pKCl9ZnVuY3Rpb24gVXdlKGUsdCl7dmFyIHI9QndlKGUpP1N0cmluZyh0KToiIixpPWVbZS5sZW5ndGgtMV09PT1gCmAsYT1pJiYoZVtlLmxlbmd0aC0yXT09PWAKYHx8ZT09PWAKYCksbj1hPyIrIjppPyIiOiItIjtyZXR1cm4gcituK2AKYH1mdW5jdGlvbiBXd2UoZSl7cmV0dXJuIGVbZS5sZW5ndGgtMV09PT1gCmA/ZS5zbGljZSgwLC0xKTplfWZ1bmN0aW9uIGN5cihlLHQpe2Zvcih2YXIgcj0vKFxuKykoW15cbl0qKS9nLGk9KGZ1bmN0aW9uKCl7dmFyIGM9ZS5pbmRleE9mKGAKYCk7cmV0dXJuIGM9YyE9PS0xP2M6ZS5sZW5ndGgsci5sYXN0SW5kZXg9YyxHd2UoZS5zbGljZSgwLGMpLHQpfSkoKSxhPWVbMF09PT1gCmB8fGVbMF09PT0iICIsbixvO289ci5leGVjKGUpOyl7dmFyIHM9b1sxXSxsPW9bMl07bj1sWzBdPT09IiAiLGkrPXMrKCFhJiYhbiYmbCE9PSIiP2AKYDoiIikrR3dlKGwsdCksYT1ufXJldHVybiBpfWZ1bmN0aW9uIEd3ZShlLHQpe2lmKGU9PT0iInx8ZVswXT09PSIgIilyZXR1cm4gZTtmb3IodmFyIHI9LyBbXiBdL2csaSxhPTAsbixvPTAscz0wLGw9IiI7aT1yLmV4ZWMoZSk7KXM9aS5pbmRleCxzLWE+dCYmKG49bz5hP286cyxsKz1gCmArZS5zbGljZShhLG4pLGE9bisxKSxvPXM7cmV0dXJuIGwrPWAKYCxlLmxlbmd0aC1hPnQmJm8+YT9sKz1lLnNsaWNlKGEsbykrYApgK2Uuc2xpY2UobysxKTpsKz1lLnNsaWNlKGEpLGwuc2xpY2UoMSl9ZnVuY3Rpb24gZHlyKGUpe2Zvcih2YXIgdD0iIixyLGksYSxuPTA7bjxlLmxlbmd0aDtuKyspe2lmKHI9ZS5jaGFyQ29kZUF0KG4pLHI+PTU1Mjk2JiZyPD01NjMxOSYmKGk9ZS5jaGFyQ29kZUF0KG4rMSksaT49NTYzMjAmJmk8PTU3MzQzKSl7dCs9RndlKChyLTU1Mjk2KSoxMDI0K2ktNTYzMjArNjU1MzYpLG4rKztjb250aW51ZX1hPWJhW3JdLHQrPSFhJiZndShyKT9lW25dOmF8fEZ3ZShyKX1yZXR1cm4gdH1mdW5jdGlvbiB1eXIoZSx0LHIpe3ZhciBpPSIiLGE9ZS50YWcsbixvO2ZvcihuPTAsbz1yLmxlbmd0aDtuPG87bis9MSlxMyhlLHQscltuXSwhMSwhMSkmJihuIT09MCYmKGkrPSIsIisoZS5jb25kZW5zZUZsb3c/IiI6IiAiKSksaSs9ZS5kdW1wKTtlLnRhZz1hLGUuZHVtcD0iWyIraSsiXSJ9ZnVuY3Rpb24gcHlyKGUsdCxyLGkpe3ZhciBhPSIiLG49ZS50YWcsbyxzO2ZvcihvPTAscz1yLmxlbmd0aDtvPHM7bys9MSlxMyhlLHQrMSxyW29dLCEwLCEwKSYmKCghaXx8byE9PTApJiYoYSs9T2ooZSx0KSksZS5kdW1wJiZsNz09PWUuZHVtcC5jaGFyQ29kZUF0KDApP2ErPSItIjphKz0iLSAiLGErPWUuZHVtcCk7ZS50YWc9bixlLmR1bXA9YXx8IltdIn1mdW5jdGlvbiBoeXIoZSx0LHIpe3ZhciBpPSIiLGE9ZS50YWcsbj1PYmplY3Qua2V5cyhyKSxvLHMsbCxjLHU7Zm9yKG89MCxzPW4ubGVuZ3RoO288cztvKz0xKXU9IiIsbyE9PTAmJih1Kz0iLCAiKSxlLmNvbmRlbnNlRmxvdyYmKHUrPSciJyksbD1uW29dLGM9cltsXSxxMyhlLHQsbCwhMSwhMSkmJihlLmR1bXAubGVuZ3RoPjEwMjQmJih1Kz0iPyAiKSx1Kz1lLmR1bXArKGUuY29uZGVuc2VGbG93PyciJzoiIikrIjoiKyhlLmNvbmRlbnNlRmxvdz8iIjoiICIpLHEzKGUsdCxjLCExLCExKSYmKHUrPWUuZHVtcCxpKz11KSk7ZS50YWc9YSxlLmR1bXA9InsiK2krIn0ifWZ1bmN0aW9uIGZ5cihlLHQscixpKXt2YXIgYT0iIixuPWUudGFnLG89T2JqZWN0LmtleXMocikscyxsLGMsdSxkLGg7aWYoZS5zb3J0S2V5cz09PSEwKW8uc29ydCgpO2Vsc2UgaWYodHlwZW9mIGUuc29ydEtleXM9PSJmdW5jdGlvbiIpby5zb3J0KGUuc29ydEtleXMpO2Vsc2UgaWYoZS5zb3J0S2V5cyl0aHJvdyBuZXcgczcoInNvcnRLZXlzIG11c3QgYmUgYSBib29sZWFuIG9yIGEgZnVuY3Rpb24iKTtmb3Iocz0wLGw9by5sZW5ndGg7czxsO3MrPTEpaD0iIiwoIWl8fHMhPT0wKSYmKGgrPU9qKGUsdCkpLGM9b1tzXSx1PXJbY10scTMoZSx0KzEsYywhMCwhMCwhMCkmJihkPWUudGFnIT09bnVsbCYmZS50YWchPT0iPyJ8fGUuZHVtcCYmZS5kdW1wLmxlbmd0aD4xMDI0LGQmJihlLmR1bXAmJmw3PT09ZS5kdW1wLmNoYXJDb2RlQXQoMCk/aCs9Ij8iOmgrPSI/ICIpLGgrPWUuZHVtcCxkJiYoaCs9T2ooZSx0KSkscTMoZSx0KzEsdSwhMCxkKSYmKGUuZHVtcCYmbDc9PT1lLmR1bXAuY2hhckNvZGVBdCgwKT9oKz0iOiI6aCs9IjogIixoKz1lLmR1bXAsYSs9aCkpO2UudGFnPW4sZS5kdW1wPWF8fCJ7fSJ9ZnVuY3Rpb24gWXdlKGUsdCxyKXt2YXIgaSxhLG4sbyxzLGw7Zm9yKGE9cj9lLmV4cGxpY2l0VHlwZXM6ZS5pbXBsaWNpdFR5cGVzLG49MCxvPWEubGVuZ3RoO248bztuKz0xKWlmKHM9YVtuXSwocy5pbnN0YW5jZU9mfHxzLnByZWRpY2F0ZSkmJighcy5pbnN0YW5jZU9mfHx0eXBlb2YgdD09Im9iamVjdCImJnQgaW5zdGFuY2VvZiBzLmluc3RhbmNlT2YpJiYoIXMucHJlZGljYXRlfHxzLnByZWRpY2F0ZSh0KSkpe2lmKGUudGFnPXI/cy50YWc6Ij8iLHMucmVwcmVzZW50KXtpZihsPWUuc3R5bGVNYXBbcy50YWddfHxzLmRlZmF1bHRTdHlsZSxfd2UuY2FsbChzLnJlcHJlc2VudCk9PT0iW29iamVjdCBGdW5jdGlvbl0iKWk9cy5yZXByZXNlbnQodCxsKTtlbHNlIGlmKEx3ZS5jYWxsKHMucmVwcmVzZW50LGwpKWk9cy5yZXByZXNlbnRbbF0odCxsKTtlbHNlIHRocm93IG5ldyBzNygiITwiK3MudGFnKyc+IHRhZyByZXNvbHZlciBhY2NlcHRzIG5vdCAiJytsKyciIHN0eWxlJyk7ZS5kdW1wPWl9cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gcTMoZSx0LHIsaSxhLG4pe2UudGFnPW51bGwsZS5kdW1wPXIsWXdlKGUsciwhMSl8fFl3ZShlLHIsITApO3ZhciBvPV93ZS5jYWxsKGUuZHVtcCk7aSYmKGk9ZS5mbG93TGV2ZWw8MHx8ZS5mbG93TGV2ZWw+dCk7dmFyIHM9bz09PSJbb2JqZWN0IE9iamVjdF0ifHxvPT09IltvYmplY3QgQXJyYXldIixsLGM7aWYocyYmKGw9ZS5kdXBsaWNhdGVzLmluZGV4T2YociksYz1sIT09LTEpLChlLnRhZyE9PW51bGwmJmUudGFnIT09Ij8ifHxjfHxlLmluZGVudCE9PTImJnQ+MCkmJihhPSExKSxjJiZlLnVzZWREdXBsaWNhdGVzW2xdKWUuZHVtcD0iKnJlZl8iK2w7ZWxzZXtpZihzJiZjJiYhZS51c2VkRHVwbGljYXRlc1tsXSYmKGUudXNlZER1cGxpY2F0ZXNbbF09ITApLG89PT0iW29iamVjdCBPYmplY3RdIilpJiZPYmplY3Qua2V5cyhlLmR1bXApLmxlbmd0aCE9PTA/KGZ5cihlLHQsZS5kdW1wLGEpLGMmJihlLmR1bXA9IiZyZWZfIitsK2UuZHVtcCkpOihoeXIoZSx0LGUuZHVtcCksYyYmKGUuZHVtcD0iJnJlZl8iK2wrIiAiK2UuZHVtcCkpO2Vsc2UgaWYobz09PSJbb2JqZWN0IEFycmF5XSIpe3ZhciB1PWUubm9BcnJheUluZGVudCYmdD4wP3QtMTp0O2kmJmUuZHVtcC5sZW5ndGghPT0wPyhweXIoZSx1LGUuZHVtcCxhKSxjJiYoZS5kdW1wPSImcmVmXyIrbCtlLmR1bXApKToodXlyKGUsdSxlLmR1bXApLGMmJihlLmR1bXA9IiZyZWZfIitsKyIgIitlLmR1bXApKX1lbHNlIGlmKG89PT0iW29iamVjdCBTdHJpbmddIillLnRhZyE9PSI/IiYmbHlyKGUsZS5kdW1wLHQsbik7ZWxzZXtpZihlLnNraXBJbnZhbGlkKXJldHVybiExO3Rocm93IG5ldyBzNygidW5hY2NlcHRhYmxlIGtpbmQgb2YgYW4gb2JqZWN0IHRvIGR1bXAgIitvKX1lLnRhZyE9PW51bGwmJmUudGFnIT09Ij8iJiYoZS5kdW1wPSIhPCIrZS50YWcrIj4gIitlLmR1bXApfXJldHVybiEwfWZ1bmN0aW9uIG15cihlLHQpe3ZhciByPVtdLGk9W10sYSxuO2ZvcihCaihlLHIsaSksYT0wLG49aS5sZW5ndGg7YTxuO2ErPTEpdC5kdXBsaWNhdGVzLnB1c2gocltpW2FdXSk7dC51c2VkRHVwbGljYXRlcz1uZXcgQXJyYXkobil9ZnVuY3Rpb24gQmooZSx0LHIpe3ZhciBpLGEsbjtpZihlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiKWlmKGE9dC5pbmRleE9mKGUpLGEhPT0tMSlyLmluZGV4T2YoYSk9PT0tMSYmci5wdXNoKGEpO2Vsc2UgaWYodC5wdXNoKGUpLEFycmF5LmlzQXJyYXkoZSkpZm9yKGE9MCxuPWUubGVuZ3RoO2E8bjthKz0xKUJqKGVbYV0sdCxyKTtlbHNlIGZvcihpPU9iamVjdC5rZXlzKGUpLGE9MCxuPWkubGVuZ3RoO2E8bjthKz0xKUJqKGVbaVthXV0sdCxyKX1mdW5jdGlvbiBad2UoZSx0KXt0PXR8fHt9O3ZhciByPW5ldyBpeXIodCk7cmV0dXJuIHIubm9SZWZzfHxteXIoZSxyKSxxMyhyLDAsZSwhMCwhMCk/ci5kdW1wK2AKYDoiIn1mdW5jdGlvbiBneXIoZSx0KXtyZXR1cm4gWndlKGUsbzcuZXh0ZW5kKHtzY2hlbWE6T3hyfSx0KSl9SGouZXhwb3J0cy5kdW1wPVp3ZSxIai5leHBvcnRzLnNhZmVEdW1wPWd5cn0pO3ZhciBKd2U9amUoKFJFMSxUMSk9PnsidXNlIHN0cmljdCI7dmFyIGFNPVR3ZSgpLFF3ZT1Yd2UoKTtmdW5jdGlvbiBuTShlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIkZ1bmN0aW9uICIrZSsiIGlzIGRlcHJlY2F0ZWQgYW5kIGNhbm5vdCBiZSB1c2VkLiIpfX1UMS5leHBvcnRzLlR5cGU9dWkoKSxUMS5leHBvcnRzLlNjaGVtYT1PMygpLFQxLmV4cG9ydHMuRkFJTFNBRkVfU0NIRU1BPVF3KCksVDEuZXhwb3J0cy5KU09OX1NDSEVNQT1FaigpLFQxLmV4cG9ydHMuQ09SRV9TQ0hFTUE9JGooKSxUMS5leHBvcnRzLkRFRkFVTFRfU0FGRV9TQ0hFTUE9cHUoKSxUMS5leHBvcnRzLkRFRkFVTFRfRlVMTF9TQ0hFTUE9YTcoKSxUMS5leHBvcnRzLmxvYWQ9YU0ubG9hZCxUMS5leHBvcnRzLmxvYWRBbGw9YU0ubG9hZEFsbCxUMS5leHBvcnRzLnNhZmVMb2FkPWFNLnNhZmVMb2FkLFQxLmV4cG9ydHMuc2FmZUxvYWRBbGw9YU0uc2FmZUxvYWRBbGwsVDEuZXhwb3J0cy5kdW1wPVF3ZS5kdW1wLFQxLmV4cG9ydHMuc2FmZUR1bXA9UXdlLnNhZmVEdW1wLFQxLmV4cG9ydHMuWUFNTEV4Y2VwdGlvbj1kdSgpLFQxLmV4cG9ydHMuTUlOSU1BTF9TQ0hFTUE9UXcoKSxUMS5leHBvcnRzLlNBRkVfU0NIRU1BPXB1KCksVDEuZXhwb3J0cy5ERUZBVUxUX1NDSEVNQT1hNygpLFQxLmV4cG9ydHMuc2Nhbj1uTSgic2NhbiIpLFQxLmV4cG9ydHMucGFyc2U9bk0oInBhcnNlIiksVDEuZXhwb3J0cy5jb21wb3NlPW5NKCJjb21wb3NlIiksVDEuZXhwb3J0cy5hZGRDb25zdHJ1Y3Rvcj1uTSgiYWRkQ29uc3RydWN0b3IiKX0pO3ZhciBlTWU9amUoKEJFMSxLd2UpPT57InVzZSBzdHJpY3QiO3ZhciBieXI9SndlKCk7S3dlLmV4cG9ydHM9YnlyfSk7dmFyIHRNZT1qZShkcz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdnlyPWRzJiZkcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQscixpKXtpPT09dm9pZCAwJiYoaT1yKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pfSk6KGZ1bmN0aW9uKGUsdCxyLGkpe2k9PT12b2lkIDAmJihpPXIpLGVbaV09dFtyXX0pKSx4eXI9ZHMmJmRzLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX0pOmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSx5eXI9ZHMmJmRzLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKGUhPW51bGwpZm9yKHZhciByIGluIGUpciE9PSJkZWZhdWx0IiYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdnlyKHQsZSxyKTtyZXR1cm4geHlyKHQsZSksdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGRzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxkcy5qc1lhbWw9dm9pZCAwO3ZhciB3eXI9eXlyKGVNZSgpKTtkcy5qc1lhbWw9d3lyfSk7dmFyIGlNZT1qZShwbz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTXlyPXBvJiZwby5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQscixpKXtpPT09dm9pZCAwJiYoaT1yKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pfSk6KGZ1bmN0aW9uKGUsdCxyLGkpe2k9PT12b2lkIDAmJihpPXIpLGVbaV09dFtyXX0pKSxreXI9cG8mJnBvLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX0pOmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSxTeXI9cG8mJnBvLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKGUhPW51bGwpZm9yKHZhciByIGluIGUpciE9PSJkZWZhdWx0IiYmT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmTXlyKHQsZSxyKTtyZXR1cm4ga3lyKHQsZSksdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KHBvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxwby5vYmplY3RUb1lhbWxTdHJpbmc9cG8ueWFtbFN0cmluZ1RvT2JqZWN0PXZvaWQgMDt2YXIgck1lPVN5cih0TWUoKSk7cG8ueWFtbFN0cmluZ1RvT2JqZWN0PWFzeW5jKGUsdD17fSk9PnJNZS5qc1lhbWwuc2FmZUxvYWQoZSkscG8ub2JqZWN0VG9ZYW1sU3RyaW5nPWFzeW5jKGUsdD17fSk9PnJNZS5qc1lhbWwuc2FmZUR1bXAoZSl9KTtmdW5jdGlvbiBxaihlKXtpZihlKXRocm93IGV9dmFyIGFNZT1wKCgpPT57fSk7dmFyIGhNZT1qZSgoVkUxLHBNZSk9PnsidXNlIHN0cmljdCI7dmFyIG9NPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbk1lPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsb01lPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxzTWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixsTWU9ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiBBcnJheS5pc0FycmF5PT0iZnVuY3Rpb24iP0FycmF5LmlzQXJyYXkodCk6bk1lLmNhbGwodCk9PT0iW29iamVjdCBBcnJheV0ifSxjTWU9ZnVuY3Rpb24odCl7aWYoIXR8fG5NZS5jYWxsKHQpIT09IltvYmplY3QgT2JqZWN0XSIpcmV0dXJuITE7dmFyIHI9b00uY2FsbCh0LCJjb25zdHJ1Y3RvciIpLGk9dC5jb25zdHJ1Y3RvciYmdC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUmJm9NLmNhbGwodC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKTtpZih0LmNvbnN0cnVjdG9yJiYhciYmIWkpcmV0dXJuITE7dmFyIGE7Zm9yKGEgaW4gdCk7cmV0dXJuIHR5cGVvZiBhPiJ1Inx8b00uY2FsbCh0LGEpfSxkTWU9ZnVuY3Rpb24odCxyKXtvTWUmJnIubmFtZT09PSJfX3Byb3RvX18iP29NZSh0LHIubmFtZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsdmFsdWU6ci5uZXdWYWx1ZSx3cml0YWJsZTohMH0pOnRbci5uYW1lXT1yLm5ld1ZhbHVlfSx1TWU9ZnVuY3Rpb24odCxyKXtpZihyPT09Il9fcHJvdG9fXyIpaWYob00uY2FsbCh0LHIpKXtpZihzTWUpcmV0dXJuIHNNZSh0LHIpLnZhbHVlfWVsc2UgcmV0dXJuO3JldHVybiB0W3JdfTtwTWUuZXhwb3J0cz1mdW5jdGlvbiBlKCl7dmFyIHQscixpLGEsbixvLHM9YXJndW1lbnRzWzBdLGw9MSxjPWFyZ3VtZW50cy5sZW5ndGgsdT0hMTtmb3IodHlwZW9mIHM9PSJib29sZWFuIiYmKHU9cyxzPWFyZ3VtZW50c1sxXXx8e30sbD0yKSwocz09bnVsbHx8dHlwZW9mIHMhPSJvYmplY3QiJiZ0eXBlb2YgcyE9ImZ1bmN0aW9uIikmJihzPXt9KTtsPGM7KytsKWlmKHQ9YXJndW1lbnRzW2xdLHQhPW51bGwpZm9yKHIgaW4gdClpPXVNZShzLHIpLGE9dU1lKHQscikscyE9PWEmJih1JiZhJiYoY01lKGEpfHwobj1sTWUoYSkpKT8obj8obj0hMSxvPWkmJmxNZShpKT9pOltdKTpvPWkmJmNNZShpKT9pOnt9LGRNZShzLHtuYW1lOnIsbmV3VmFsdWU6ZSh1LG8sYSl9KSk6dHlwZW9mIGE8InUiJiZkTWUocyx7bmFtZTpyLG5ld1ZhbHVlOmF9KSk7cmV0dXJuIHN9fSk7dmFyIGIwPXAoKCk9Pnt9KTtmdW5jdGlvbiBjNyhlKXtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fGU9PT1udWxsKXJldHVybiExO2xldCB0PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4odD09PW51bGx8fHQ9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gZSkmJiEoU3ltYm9sLml0ZXJhdG9yIGluIGUpfXZhciBmTWU9cCgoKT0+e30pO2Z1bmN0aW9uIGpqKCl7bGV0IGU9W10sdD17cnVuOnIsdXNlOml9O3JldHVybiB0O2Z1bmN0aW9uIHIoLi4uYSl7bGV0IG49LTEsbz1hLnBvcCgpO2lmKHR5cGVvZiBvIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uIGFzIGxhc3QgYXJndW1lbnQsIG5vdCAiK28pO3MobnVsbCwuLi5hKTtmdW5jdGlvbiBzKGwsLi4uYyl7bGV0IHU9ZVsrK25dLGQ9LTE7aWYobCl7byhsKTtyZXR1cm59Zm9yKDsrK2Q8YS5sZW5ndGg7KShjW2RdPT09bnVsbHx8Y1tkXT09PXZvaWQgMCkmJihjW2RdPWFbZF0pO2E9Yyx1P21NZSh1LHMpKC4uLmMpOm8obnVsbCwuLi5jKX19ZnVuY3Rpb24gaShhKXtpZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIrYSk7cmV0dXJuIGUucHVzaChhKSx0fX1mdW5jdGlvbiBtTWUoZSx0KXtsZXQgcjtyZXR1cm4gaTtmdW5jdGlvbiBpKC4uLm8pe2xldCBzPWUubGVuZ3RoPm8ubGVuZ3RoLGw7cyYmby5wdXNoKGEpO3RyeXtsPWUuYXBwbHkodGhpcyxvKX1jYXRjaChjKXtsZXQgdT1jO2lmKHMmJnIpdGhyb3cgdTtyZXR1cm4gYSh1KX1zfHwobCYmbC50aGVuJiZ0eXBlb2YgbC50aGVuPT0iZnVuY3Rpb24iP2wudGhlbihuLGEpOmwgaW5zdGFuY2VvZiBFcnJvcj9hKGwpOm4obCkpfWZ1bmN0aW9uIGEobywuLi5zKXtyfHwocj0hMCx0KG8sLi4ucykpfWZ1bmN0aW9uIG4obyl7YShudWxsLG8pfX12YXIgZ01lPXAoKCk9Pnt9KTt2YXIgYk1lPXAoKCk9PntnTWUoKX0pO2Z1bmN0aW9uIHYwKGUpe3JldHVybiFlfHx0eXBlb2YgZSE9Im9iamVjdCI/IiI6InBvc2l0aW9uImluIGV8fCJ0eXBlImluIGU/dk1lKGUucG9zaXRpb24pOiJzdGFydCJpbiBlfHwiZW5kImluIGU/dk1lKGUpOiJsaW5lImluIGV8fCJjb2x1bW4iaW4gZT9WaihlKToiIn1mdW5jdGlvbiBWaihlKXtyZXR1cm4geE1lKGUmJmUubGluZSkrIjoiK3hNZShlJiZlLmNvbHVtbil9ZnVuY3Rpb24gdk1lKGUpe3JldHVybiBWaihlJiZlLnN0YXJ0KSsiLSIrVmooZSYmZS5lbmQpfWZ1bmN0aW9uIHhNZShlKXtyZXR1cm4gZSYmdHlwZW9mIGU9PSJudW1iZXIiP2U6MX12YXIgeU1lPXAoKCk9Pnt9KTt2YXIgVWo9cCgoKT0+e3lNZSgpfSk7dmFyIExpLHdNZT1wKCgpPT57VWooKTtMaT1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscixpKXtzdXBlcigpLHR5cGVvZiByPT0ic3RyaW5nIiYmKGk9cixyPXZvaWQgMCk7bGV0IGE9IiIsbj17fSxvPSExO2lmKHImJigibGluZSJpbiByJiYiY29sdW1uImluIHI/bj17cGxhY2U6cn06InN0YXJ0ImluIHImJiJlbmQiaW4gcj9uPXtwbGFjZTpyfToidHlwZSJpbiByP249e2FuY2VzdG9yczpbcl0scGxhY2U6ci5wb3NpdGlvbn06bj17Li4ucn0pLHR5cGVvZiB0PT0ic3RyaW5nIj9hPXQ6IW4uY2F1c2UmJnQmJihvPSEwLGE9dC5tZXNzYWdlLG4uY2F1c2U9dCksIW4ucnVsZUlkJiYhbi5zb3VyY2UmJnR5cGVvZiBpPT0ic3RyaW5nIil7bGV0IGw9aS5pbmRleE9mKCI6Iik7bD09PS0xP24ucnVsZUlkPWk6KG4uc291cmNlPWkuc2xpY2UoMCxsKSxuLnJ1bGVJZD1pLnNsaWNlKGwrMSkpfWlmKCFuLnBsYWNlJiZuLmFuY2VzdG9ycyYmbi5hbmNlc3RvcnMpe2xldCBsPW4uYW5jZXN0b3JzW24uYW5jZXN0b3JzLmxlbmd0aC0xXTtsJiYobi5wbGFjZT1sLnBvc2l0aW9uKX1sZXQgcz1uLnBsYWNlJiYic3RhcnQiaW4gbi5wbGFjZT9uLnBsYWNlLnN0YXJ0Om4ucGxhY2U7dGhpcy5hbmNlc3RvcnM9bi5hbmNlc3RvcnN8fHZvaWQgMCx0aGlzLmNhdXNlPW4uY2F1c2V8fHZvaWQgMCx0aGlzLmNvbHVtbj1zP3MuY29sdW1uOnZvaWQgMCx0aGlzLmZhdGFsPXZvaWQgMCx0aGlzLmZpbGU9IiIsdGhpcy5tZXNzYWdlPWEsdGhpcy5saW5lPXM/cy5saW5lOnZvaWQgMCx0aGlzLm5hbWU9djAobi5wbGFjZSl8fCIxOjEiLHRoaXMucGxhY2U9bi5wbGFjZXx8dm9pZCAwLHRoaXMucmVhc29uPXRoaXMubWVzc2FnZSx0aGlzLnJ1bGVJZD1uLnJ1bGVJZHx8dm9pZCAwLHRoaXMuc291cmNlPW4uc291cmNlfHx2b2lkIDAsdGhpcy5zdGFjaz1vJiZuLmNhdXNlJiZ0eXBlb2Ygbi5jYXVzZS5zdGFjaz09InN0cmluZyI/bi5jYXVzZS5zdGFjazoiIix0aGlzLmFjdHVhbD12b2lkIDAsdGhpcy5leHBlY3RlZD12b2lkIDAsdGhpcy5ub3RlPXZvaWQgMCx0aGlzLnVybD12b2lkIDB9fTtMaS5wcm90b3R5cGUuZmlsZT0iIixMaS5wcm90b3R5cGUubmFtZT0iIixMaS5wcm90b3R5cGUucmVhc29uPSIiLExpLnByb3RvdHlwZS5tZXNzYWdlPSIiLExpLnByb3RvdHlwZS5zdGFjaz0iIixMaS5wcm90b3R5cGUuY29sdW1uPXZvaWQgMCxMaS5wcm90b3R5cGUubGluZT12b2lkIDAsTGkucHJvdG90eXBlLmFuY2VzdG9ycz12b2lkIDAsTGkucHJvdG90eXBlLmNhdXNlPXZvaWQgMCxMaS5wcm90b3R5cGUuZmF0YWw9dm9pZCAwLExpLnByb3RvdHlwZS5wbGFjZT12b2lkIDAsTGkucHJvdG90eXBlLnJ1bGVJZD12b2lkIDAsTGkucHJvdG90eXBlLnNvdXJjZT12b2lkIDB9KTt2YXIgTU1lPXAoKCk9Pnt3TWUoKX0pO2Z1bmN0aW9uIHp5cihlLHQpe2lmKHQhPT12b2lkIDAmJnR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCciZXh0IiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7ZDcoZSk7bGV0IHI9MCxpPS0xLGE9ZS5sZW5ndGgsbjtpZih0PT09dm9pZCAwfHx0Lmxlbmd0aD09PTB8fHQubGVuZ3RoPmUubGVuZ3RoKXtmb3IoO2EtLTspaWYoZS5jb2RlUG9pbnRBdChhKT09PTQ3KXtpZihuKXtyPWErMTticmVha319ZWxzZSBpPDAmJihuPSEwLGk9YSsxKTtyZXR1cm4gaTwwPyIiOmUuc2xpY2UocixpKX1pZih0PT09ZSlyZXR1cm4iIjtsZXQgbz0tMSxzPXQubGVuZ3RoLTE7Zm9yKDthLS07KWlmKGUuY29kZVBvaW50QXQoYSk9PT00Nyl7aWYobil7cj1hKzE7YnJlYWt9fWVsc2UgbzwwJiYobj0hMCxvPWErMSkscz4tMSYmKGUuY29kZVBvaW50QXQoYSk9PT10LmNvZGVQb2ludEF0KHMtLSk/czwwJiYoaT1hKToocz0tMSxpPW8pKTtyZXR1cm4gcj09PWk/aT1vOmk8MCYmKGk9ZS5sZW5ndGgpLGUuc2xpY2UocixpKX1mdW5jdGlvbiBDeXIoZSl7aWYoZDcoZSksZS5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgdD0tMSxyPWUubGVuZ3RoLGk7Zm9yKDstLXI7KWlmKGUuY29kZVBvaW50QXQocik9PT00Nyl7aWYoaSl7dD1yO2JyZWFrfX1lbHNlIGl8fChpPSEwKTtyZXR1cm4gdDwwP2UuY29kZVBvaW50QXQoMCk9PT00Nz8iLyI6Ii4iOnQ9PT0xJiZlLmNvZGVQb2ludEF0KDApPT09NDc/Ii8vIjplLnNsaWNlKDAsdCl9ZnVuY3Rpb24gVHlyKGUpe2Q3KGUpO2xldCB0PWUubGVuZ3RoLHI9LTEsaT0wLGE9LTEsbj0wLG87Zm9yKDt0LS07KXtsZXQgcz1lLmNvZGVQb2ludEF0KHQpO2lmKHM9PT00Nyl7aWYobyl7aT10KzE7YnJlYWt9Y29udGludWV9cjwwJiYobz0hMCxyPXQrMSkscz09PTQ2P2E8MD9hPXQ6biE9PTEmJihuPTEpOmE+LTEmJihuPS0xKX1yZXR1cm4gYTwwfHxyPDB8fG49PT0wfHxuPT09MSYmYT09PXItMSYmYT09PWkrMT8iIjplLnNsaWNlKGEscil9ZnVuY3Rpb24gX3lyKC4uLmUpe2xldCB0PS0xLHI7Zm9yKDsrK3Q8ZS5sZW5ndGg7KWQ3KGVbdF0pLGVbdF0mJihyPXI9PT12b2lkIDA/ZVt0XTpyKyIvIitlW3RdKTtyZXR1cm4gcj09PXZvaWQgMD8iLiI6THlyKHIpfWZ1bmN0aW9uIEx5cihlKXtkNyhlKTtsZXQgdD1lLmNvZGVQb2ludEF0KDApPT09NDcscj1BeXIoZSwhdCk7cmV0dXJuIHIubGVuZ3RoPT09MCYmIXQmJihyPSIuIiksci5sZW5ndGg+MCYmZS5jb2RlUG9pbnRBdChlLmxlbmd0aC0xKT09PTQ3JiYocis9Ii8iKSx0PyIvIityOnJ9ZnVuY3Rpb24gQXlyKGUsdCl7bGV0IHI9IiIsaT0wLGE9LTEsbj0wLG89LTEscyxsO2Zvcig7KytvPD1lLmxlbmd0aDspe2lmKG88ZS5sZW5ndGgpcz1lLmNvZGVQb2ludEF0KG8pO2Vsc2V7aWYocz09PTQ3KWJyZWFrO3M9NDd9aWYocz09PTQ3KXtpZighKGE9PT1vLTF8fG49PT0xKSlpZihhIT09by0xJiZuPT09Mil7aWYoci5sZW5ndGg8Mnx8aSE9PTJ8fHIuY29kZVBvaW50QXQoci5sZW5ndGgtMSkhPT00Nnx8ci5jb2RlUG9pbnRBdChyLmxlbmd0aC0yKSE9PTQ2KXtpZihyLmxlbmd0aD4yKXtpZihsPXIubGFzdEluZGV4T2YoIi8iKSxsIT09ci5sZW5ndGgtMSl7bDwwPyhyPSIiLGk9MCk6KHI9ci5zbGljZSgwLGwpLGk9ci5sZW5ndGgtMS1yLmxhc3RJbmRleE9mKCIvIikpLGE9byxuPTA7Y29udGludWV9fWVsc2UgaWYoci5sZW5ndGg+MCl7cj0iIixpPTAsYT1vLG49MDtjb250aW51ZX19dCYmKHI9ci5sZW5ndGg+MD9yKyIvLi4iOiIuLiIsaT0yKX1lbHNlIHIubGVuZ3RoPjA/cis9Ii8iK2Uuc2xpY2UoYSsxLG8pOnI9ZS5zbGljZShhKzEsbyksaT1vLWEtMTthPW8sbj0wfWVsc2Ugcz09PTQ2JiZuPi0xP24rKzpuPS0xfXJldHVybiByfWZ1bmN0aW9uIGQ3KGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkoZSkpfXZhciBvMixrTWU9cCgoKT0+e28yPXtiYXNlbmFtZTp6eXIsZGlybmFtZTpDeXIsZXh0bmFtZTpUeXIsam9pbjpfeXIsc2VwOiIvIn19KTtmdW5jdGlvbiBEeXIoKXtyZXR1cm4iLyJ9dmFyIFNNZSx6TWU9cCgoKT0+e1NNZT17Y3dkOkR5cn19KTtmdW5jdGlvbiBidShlKXtyZXR1cm4hIShlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiJiYiaHJlZiJpbiBlJiZlLmhyZWYmJiJwcm90b2NvbCJpbiBlJiZlLnByb3RvY29sJiZlLmF1dGg9PT12b2lkIDApfXZhciBXaj1wKCgpPT57fSk7ZnVuY3Rpb24gQ01lKGUpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIillPW5ldyBVUkwoZSk7ZWxzZSBpZighYnUoZSkpe2xldCB0PW5ldyBUeXBlRXJyb3IoJ1RoZSAicGF0aCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBhbiBpbnN0YW5jZSBvZiBVUkwuIFJlY2VpdmVkIGAnK2UrImAiKTt0aHJvdyB0LmNvZGU9IkVSUl9JTlZBTElEX0FSR19UWVBFIix0fWlmKGUucHJvdG9jb2whPT0iZmlsZToiKXtsZXQgdD1uZXcgVHlwZUVycm9yKCJUaGUgVVJMIG11c3QgYmUgb2Ygc2NoZW1lIGZpbGUiKTt0aHJvdyB0LmNvZGU9IkVSUl9JTlZBTElEX1VSTF9TQ0hFTUUiLHR9cmV0dXJuIEV5cihlKX1mdW5jdGlvbiBFeXIoZSl7aWYoZS5ob3N0bmFtZSE9PSIiKXtsZXQgaT1uZXcgVHlwZUVycm9yKCdGaWxlIFVSTCBob3N0IG11c3QgYmUgImxvY2FsaG9zdCIgb3IgZW1wdHkgb24gZGFyd2luJyk7dGhyb3cgaS5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9IT1NUIixpfWxldCB0PWUucGF0aG5hbWUscj0tMTtmb3IoOysrcjx0Lmxlbmd0aDspaWYodC5jb2RlUG9pbnRBdChyKT09PTM3JiZ0LmNvZGVQb2ludEF0KHIrMSk9PT01MCl7bGV0IGk9dC5jb2RlUG9pbnRBdChyKzIpO2lmKGk9PT03MHx8aT09PTEwMil7bGV0IGE9bmV3IFR5cGVFcnJvcigiRmlsZSBVUkwgcGF0aCBtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgLyBjaGFyYWN0ZXJzIik7dGhyb3cgYS5jb2RlPSJFUlJfSU5WQUxJRF9GSUxFX1VSTF9QQVRIIixhfX1yZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfXZhciBUTWU9cCgoKT0+e1dqKCk7V2ooKX0pO2Z1bmN0aW9uIFlqKGUsdCl7aWYoZSYmZS5pbmNsdWRlcyhvMi5zZXApKXRocm93IG5ldyBFcnJvcigiYCIrdCsiYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgIitvMi5zZXArImAiKX1mdW5jdGlvbiBaaihlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiYCIrdCsiYCBjYW5ub3QgYmUgZW1wdHkiKX1mdW5jdGlvbiBfTWUoZSx0KXtpZighZSl0aHJvdyBuZXcgRXJyb3IoIlNldHRpbmcgYCIrdCsiYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbyIpfWZ1bmN0aW9uICR5cihlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCImJiJieXRlTGVuZ3RoImluIGUmJiJieXRlT2Zmc2V0ImluIGUpfXZhciBHaix1NyxMTWU9cCgoKT0+e01NZSgpO2tNZSgpO3pNZSgpO1RNZSgpO0dqPVsiaGlzdG9yeSIsInBhdGgiLCJiYXNlbmFtZSIsInN0ZW0iLCJleHRuYW1lIiwiZGlybmFtZSJdLHU3PWNsYXNze2NvbnN0cnVjdG9yKHQpe2xldCByO3Q/YnUodCk/cj17cGF0aDp0fTp0eXBlb2YgdD09InN0cmluZyJ8fCR5cih0KT9yPXt2YWx1ZTp0fTpyPXQ6cj17fSx0aGlzLmN3ZD0iY3dkImluIHI/IiI6U01lLmN3ZCgpLHRoaXMuZGF0YT17fSx0aGlzLmhpc3Rvcnk9W10sdGhpcy5tZXNzYWdlcz1bXSx0aGlzLnZhbHVlLHRoaXMubWFwLHRoaXMucmVzdWx0LHRoaXMuc3RvcmVkO2xldCBpPS0xO2Zvcig7KytpPEdqLmxlbmd0aDspe2xldCBuPUdqW2ldO24gaW4gciYmcltuXSE9PXZvaWQgMCYmcltuXSE9PW51bGwmJih0aGlzW25dPW49PT0iaGlzdG9yeSI/Wy4uLnJbbl1dOnJbbl0pfWxldCBhO2ZvcihhIGluIHIpR2ouaW5jbHVkZXMoYSl8fCh0aGlzW2FdPXJbYV0pfWdldCBiYXNlbmFtZSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9vMi5iYXNlbmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1zZXQgYmFzZW5hbWUodCl7WmoodCwiYmFzZW5hbWUiKSxZaih0LCJiYXNlbmFtZSIpLHRoaXMucGF0aD1vMi5qb2luKHRoaXMuZGlybmFtZXx8IiIsdCl9Z2V0IGRpcm5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/bzIuZGlybmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1zZXQgZGlybmFtZSh0KXtfTWUodGhpcy5iYXNlbmFtZSwiZGlybmFtZSIpLHRoaXMucGF0aD1vMi5qb2luKHR8fCIiLHRoaXMuYmFzZW5hbWUpfWdldCBleHRuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP28yLmV4dG5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGV4dG5hbWUodCl7aWYoWWoodCwiZXh0bmFtZSIpLF9NZSh0aGlzLmRpcm5hbWUsImV4dG5hbWUiKSx0KXtpZih0LmNvZGVQb2ludEF0KDApIT09NDYpdGhyb3cgbmV3IEVycm9yKCJgZXh0bmFtZWAgbXVzdCBzdGFydCB3aXRoIGAuYCIpO2lmKHQuaW5jbHVkZXMoIi4iLDEpKXRocm93IG5ldyBFcnJvcigiYGV4dG5hbWVgIGNhbm5vdCBjb250YWluIG11bHRpcGxlIGRvdHMiKX10aGlzLnBhdGg9bzIuam9pbih0aGlzLmRpcm5hbWUsdGhpcy5zdGVtKyh0fHwiIikpfWdldCBwYXRoKCl7cmV0dXJuIHRoaXMuaGlzdG9yeVt0aGlzLmhpc3RvcnkubGVuZ3RoLTFdfXNldCBwYXRoKHQpe2J1KHQpJiYodD1DTWUodCkpLFpqKHQsInBhdGgiKSx0aGlzLnBhdGghPT10JiZ0aGlzLmhpc3RvcnkucHVzaCh0KX1nZXQgc3RlbSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT0ic3RyaW5nIj9vMi5iYXNlbmFtZSh0aGlzLnBhdGgsdGhpcy5leHRuYW1lKTp2b2lkIDB9c2V0IHN0ZW0odCl7WmoodCwic3RlbSIpLFlqKHQsInN0ZW0iKSx0aGlzLnBhdGg9bzIuam9pbih0aGlzLmRpcm5hbWV8fCIiLHQrKHRoaXMuZXh0bmFtZXx8IiIpKX1mYWlsKHQscixpKXtsZXQgYT10aGlzLm1lc3NhZ2UodCxyLGkpO3Rocm93IGEuZmF0YWw9ITAsYX1pbmZvKHQscixpKXtsZXQgYT10aGlzLm1lc3NhZ2UodCxyLGkpO3JldHVybiBhLmZhdGFsPXZvaWQgMCxhfW1lc3NhZ2UodCxyLGkpe2xldCBhPW5ldyBMaSh0LHIsaSk7cmV0dXJuIHRoaXMucGF0aCYmKGEubmFtZT10aGlzLnBhdGgrIjoiK2EubmFtZSxhLmZpbGU9dGhpcy5wYXRoKSxhLmZhdGFsPSExLHRoaXMubWVzc2FnZXMucHVzaChhKSxhfXRvU3RyaW5nKHQpe3JldHVybiB0aGlzLnZhbHVlPT09dm9pZCAwPyIiOnR5cGVvZiB0aGlzLnZhbHVlPT0ic3RyaW5nIj90aGlzLnZhbHVlOm5ldyBUZXh0RGVjb2Rlcih0fHx2b2lkIDApLmRlY29kZSh0aGlzLnZhbHVlKX19fSk7dmFyIEFNZT1wKCgpPT57TE1lKCl9KTt2YXIgRE1lLEVNZT1wKCgpPT57RE1lPShmdW5jdGlvbihlKXtsZXQgaT10aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxhPWlbZV0sbj1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KG4sYXJndW1lbnRzKX07cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihuLGkpLG59KX0pO2Z1bmN0aW9uIFFqKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK2UrImAgd2l0aG91dCBgcGFyc2VyYCIpfWZ1bmN0aW9uIEpqKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK2UrImAgd2l0aG91dCBgY29tcGlsZXJgIil9ZnVuY3Rpb24gS2ooZSx0KXtpZih0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNhbGwgYCIrZSsiYCBvbiBhIGZyb3plbiBwcm9jZXNzb3IuXG5DcmVhdGUgYSBuZXcgcHJvY2Vzc29yIGZpcnN0LCBieSBjYWxsaW5nIGl0OiB1c2UgYHByb2Nlc3NvcigpYCBpbnN0ZWFkIG9mIGBwcm9jZXNzb3JgLiIpfWZ1bmN0aW9uICRNZShlKXtpZighYzcoZSl8fHR5cGVvZiBlLnR5cGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIG5vZGUsIGdvdCBgIitlKyJgIil9ZnVuY3Rpb24gSU1lKGUsdCxyKXtpZighcil0aHJvdyBuZXcgRXJyb3IoImAiK2UrImAgZmluaXNoZWQgYXN5bmMuIFVzZSBgIit0KyJgIGluc3RlYWQiKX1mdW5jdGlvbiBzTShlKXtyZXR1cm4gUHlyKGUpP2U6bmV3IHU3KGUpfWZ1bmN0aW9uIFB5cihlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCImJiJtZXNzYWdlImluIGUmJiJtZXNzYWdlcyJpbiBlKX1mdW5jdGlvbiBOeXIoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nInx8RnlyKGUpfWZ1bmN0aW9uIEZ5cihlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCImJiJieXRlTGVuZ3RoImluIGUmJiJieXRlT2Zmc2V0ImluIGUpfXZhciBsTSxJeXIsWGoscDcsUE1lPXAoKCk9PnthTWUoKTtsTT1lcihoTWUoKSwxKTtiMCgpO2ZNZSgpO2JNZSgpO0FNZSgpO0VNZSgpO0l5cj17fS5oYXNPd25Qcm9wZXJ0eSxYaj1jbGFzcyBlIGV4dGVuZHMgRE1le2NvbnN0cnVjdG9yKCl7c3VwZXIoImNvcHkiKSx0aGlzLkNvbXBpbGVyPXZvaWQgMCx0aGlzLlBhcnNlcj12b2lkIDAsdGhpcy5hdHRhY2hlcnM9W10sdGhpcy5jb21waWxlcj12b2lkIDAsdGhpcy5mcmVlemVJbmRleD0tMSx0aGlzLmZyb3plbj12b2lkIDAsdGhpcy5uYW1lc3BhY2U9e30sdGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMudHJhbnNmb3JtZXJzPWpqKCl9Y29weSgpe2xldCB0PW5ldyBlLHI9LTE7Zm9yKDsrK3I8dGhpcy5hdHRhY2hlcnMubGVuZ3RoOyl7bGV0IGk9dGhpcy5hdHRhY2hlcnNbcl07dC51c2UoLi4uaSl9cmV0dXJuIHQuZGF0YSgoMCxsTS5kZWZhdWx0KSghMCx7fSx0aGlzLm5hbWVzcGFjZSkpLHR9ZGF0YSh0LHIpe3JldHVybiB0eXBlb2YgdD09InN0cmluZyI/YXJndW1lbnRzLmxlbmd0aD09PTI/KEtqKCJkYXRhIix0aGlzLmZyb3plbiksdGhpcy5uYW1lc3BhY2VbdF09cix0aGlzKTpJeXIuY2FsbCh0aGlzLm5hbWVzcGFjZSx0KSYmdGhpcy5uYW1lc3BhY2VbdF18fHZvaWQgMDp0PyhLaigiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlPXQsdGhpcyk6dGhpcy5uYW1lc3BhY2V9ZnJlZXplKCl7aWYodGhpcy5mcm96ZW4pcmV0dXJuIHRoaXM7bGV0IHQ9dGhpcztmb3IoOysrdGhpcy5mcmVlemVJbmRleDx0aGlzLmF0dGFjaGVycy5sZW5ndGg7KXtsZXRbciwuLi5pXT10aGlzLmF0dGFjaGVyc1t0aGlzLmZyZWV6ZUluZGV4XTtpZihpWzBdPT09ITEpY29udGludWU7aVswXT09PSEwJiYoaVswXT12b2lkIDApO2xldCBhPXIuY2FsbCh0LC4uLmkpO3R5cGVvZiBhPT0iZnVuY3Rpb24iJiZ0aGlzLnRyYW5zZm9ybWVycy51c2UoYSl9cmV0dXJuIHRoaXMuZnJvemVuPSEwLHRoaXMuZnJlZXplSW5kZXg9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHRoaXN9cGFyc2UodCl7dGhpcy5mcmVlemUoKTtsZXQgcj1zTSh0KSxpPXRoaXMucGFyc2VyfHx0aGlzLlBhcnNlcjtyZXR1cm4gUWooInBhcnNlIixpKSxpKFN0cmluZyhyKSxyKX1wcm9jZXNzKHQscil7bGV0IGk9dGhpcztyZXR1cm4gdGhpcy5mcmVlemUoKSxRaigicHJvY2VzcyIsdGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyKSxKaigicHJvY2VzcyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlcikscj9hKHZvaWQgMCxyKTpuZXcgUHJvbWlzZShhKTtmdW5jdGlvbiBhKG4sbyl7bGV0IHM9c00odCksbD1pLnBhcnNlKHMpO2kucnVuKGwscyxmdW5jdGlvbih1LGQsaCl7aWYodXx8IWR8fCFoKXJldHVybiBjKHUpO2xldCBmPWQseD1pLnN0cmluZ2lmeShmLGgpO055cih4KT9oLnZhbHVlPXg6aC5yZXN1bHQ9eCxjKHUsaCl9KTtmdW5jdGlvbiBjKHUsZCl7dXx8IWQ/byh1KTpuP24oZCk6cih2b2lkIDAsZCl9fX1wcm9jZXNzU3luYyh0KXtsZXQgcj0hMSxpO3JldHVybiB0aGlzLmZyZWV6ZSgpLFFqKCJwcm9jZXNzU3luYyIsdGhpcy5wYXJzZXJ8fHRoaXMuUGFyc2VyKSxKaigicHJvY2Vzc1N5bmMiLHRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXIpLHRoaXMucHJvY2Vzcyh0LGEpLElNZSgicHJvY2Vzc1N5bmMiLCJwcm9jZXNzIixyKSxpO2Z1bmN0aW9uIGEobixvKXtyPSEwLHFqKG4pLGk9b319cnVuKHQscixpKXskTWUodCksdGhpcy5mcmVlemUoKTtsZXQgYT10aGlzLnRyYW5zZm9ybWVycztyZXR1cm4haSYmdHlwZW9mIHI9PSJmdW5jdGlvbiImJihpPXIscj12b2lkIDApLGk/bih2b2lkIDAsaSk6bmV3IFByb21pc2Uobik7ZnVuY3Rpb24gbihvLHMpe2xldCBsPXNNKHIpO2EucnVuKHQsbCxjKTtmdW5jdGlvbiBjKHUsZCxoKXtsZXQgZj1kfHx0O3U/cyh1KTpvP28oZik6aSh2b2lkIDAsZixoKX19fXJ1blN5bmModCxyKXtsZXQgaT0hMSxhO3JldHVybiB0aGlzLnJ1bih0LHIsbiksSU1lKCJydW5TeW5jIiwicnVuIixpKSxhO2Z1bmN0aW9uIG4obyxzKXtxaihvKSxhPXMsaT0hMH19c3RyaW5naWZ5KHQscil7dGhpcy5mcmVlemUoKTtsZXQgaT1zTShyKSxhPXRoaXMuY29tcGlsZXJ8fHRoaXMuQ29tcGlsZXI7cmV0dXJuIEpqKCJzdHJpbmdpZnkiLGEpLCRNZSh0KSxhKHQsaSl9dXNlKHQsLi4ucil7bGV0IGk9dGhpcy5hdHRhY2hlcnMsYT10aGlzLm5hbWVzcGFjZTtpZihLaigidXNlIix0aGlzLmZyb3plbiksdCE9bnVsbClpZih0eXBlb2YgdD09ImZ1bmN0aW9uIilsKHQscik7ZWxzZSBpZih0eXBlb2YgdD09Im9iamVjdCIpQXJyYXkuaXNBcnJheSh0KT9zKHQpOm8odCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgIit0KyJgIik7cmV0dXJuIHRoaXM7ZnVuY3Rpb24gbihjKXtpZih0eXBlb2YgYz09ImZ1bmN0aW9uIilsKGMsW10pO2Vsc2UgaWYodHlwZW9mIGM9PSJvYmplY3QiKWlmKEFycmF5LmlzQXJyYXkoYykpe2xldFt1LC4uLmRdPWM7bCh1LGQpfWVsc2UgbyhjKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK2MrImAiKX1mdW5jdGlvbiBvKGMpe2lmKCEoInBsdWdpbnMiaW4gYykmJiEoInNldHRpbmdzImluIGMpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlIGJ1dCByZWNlaXZlZCBhbiBlbXB0eSBwcmVzZXQsIHdoaWNoIGlzIHByb2JhYmx5IGEgbWlzdGFrZTogcHJlc2V0cyB0eXBpY2FsbHkgY29tZSB3aXRoIGBwbHVnaW5zYCBhbmQgc29tZXRpbWVzIHdpdGggYHNldHRpbmdzYCwgYnV0IHRoaXMgaGFzIG5laXRoZXIiKTtzKGMucGx1Z2lucyksYy5zZXR0aW5ncyYmKGEuc2V0dGluZ3M9KDAsbE0uZGVmYXVsdCkoITAsYS5zZXR0aW5ncyxjLnNldHRpbmdzKSl9ZnVuY3Rpb24gcyhjKXtsZXQgdT0tMTtpZihjIT1udWxsKWlmKEFycmF5LmlzQXJyYXkoYykpZm9yKDsrK3U8Yy5sZW5ndGg7KXtsZXQgZD1jW3VdO24oZCl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGxpc3Qgb2YgcGx1Z2lucywgbm90IGAiK2MrImAiKX1mdW5jdGlvbiBsKGMsdSl7bGV0IGQ9LTEsaD0tMTtmb3IoOysrZDxpLmxlbmd0aDspaWYoaVtkXVswXT09PWMpe2g9ZDticmVha31pZihoPT09LTEpaS5wdXNoKFtjLC4uLnVdKTtlbHNlIGlmKHUubGVuZ3RoPjApe2xldFtmLC4uLnhdPXUsdj1pW2hdWzFdO2M3KHYpJiZjNyhmKSYmKGY9KDAsbE0uZGVmYXVsdCkoITAsdixmKSksaVtoXT1bYyxmLC4uLnhdfX19fSxwNz1uZXcgWGooKS5mcmVlemUoKX0pO3ZhciBOTWU9cCgoKT0+e1BNZSgpfSk7ZnVuY3Rpb24geHUoZSx0KXtsZXQgcj1TdHJpbmcoZSk7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGNoYXJhY3RlciIpO2xldCBpPTAsYT1yLmluZGV4T2YodCk7Zm9yKDthIT09LTE7KWkrKyxhPXIuaW5kZXhPZih0LGErdC5sZW5ndGgpO3JldHVybiBpfXZhciBlVj1wKCgpPT57fSk7ZnVuY3Rpb24gajMoZSl7cmV0dXJuIGUhPT1udWxsJiYoZTwzMnx8ZT09PTEyNyl9ZnVuY3Rpb24gV2UoZSl7cmV0dXJuIGUhPT1udWxsJiZlPC0yfWZ1bmN0aW9uIFp0KGUpe3JldHVybiBlIT09bnVsbCYmKGU8MHx8ZT09PTMyKX1mdW5jdGlvbiBsdChlKXtyZXR1cm4gZT09PS0yfHxlPT09LTF8fGU9PT0zMn1mdW5jdGlvbiB4MChlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KHIpe3JldHVybiByIT09bnVsbCYmcj4tMSYmZS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUocikpfX12YXIgcGksXzEsRk1lLGg3LE9NZSxSTWUsVjMsdXMsdHI9cCgoKT0+e3BpPXgwKC9bQS1aYS16XS8pLF8xPXgwKC9bXGRBLVphLXpdLyksRk1lPXgwKC9bIy0nKitcLS05PT9BLVpeLX5dLyk7aDc9eDAoL1xkLyksT01lPXgwKC9bXGRBLUZhLWZdLyksUk1lPXgwKC9bIS0vOi1AWy1gey1+XS8pO1YzPXgwKC9ccHtQfXxccHtTfS91KSx1cz14MCgvXHMvKX0pO2Z1bmN0aW9uIE95cihlKXtsZXQgdD1bXSxyPS0xO2Zvcig7KytyPGUubGVuZ3RoOyl0W3JdPUFsKGVbcl0pO3JldHVybiBjTShpKTtmdW5jdGlvbiBpKC4uLmEpe2xldCBuPS0xO2Zvcig7KytuPHQubGVuZ3RoOylpZih0W25dLmFwcGx5KHRoaXMsYSkpcmV0dXJuITA7cmV0dXJuITF9fWZ1bmN0aW9uIFJ5cihlKXtsZXQgdD1lO3JldHVybiBjTShyKTtmdW5jdGlvbiByKGkpe2xldCBhPWksbjtmb3IobiBpbiBlKWlmKGFbbl0hPT10W25dKXJldHVybiExO3JldHVybiEwfX1mdW5jdGlvbiBCeXIoZSl7cmV0dXJuIGNNKHQpO2Z1bmN0aW9uIHQocil7cmV0dXJuIHImJnIudHlwZT09PWV9fWZ1bmN0aW9uIGNNKGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocixpLGEpe3JldHVybiEhKEJNZShyKSYmZS5jYWxsKHRoaXMscix0eXBlb2YgaT09Im51bWJlciI/aTp2b2lkIDAsYXx8dm9pZCAwKSl9fWZ1bmN0aW9uIEh5cigpe3JldHVybiEwfWZ1bmN0aW9uIEJNZShlKXtyZXR1cm4gZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IiYmInR5cGUiaW4gZX12YXIgSE1lLEFsLHFNZT1wKCgpPT57SE1lPShmdW5jdGlvbihlLHQscixpLGEpe2xldCBuPUFsKHQpO2lmKHIhPW51bGwmJih0eXBlb2YgciE9Im51bWJlciJ8fHI8MHx8cj09PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBwb3NpdGl2ZSBmaW5pdGUgaW5kZXgiKTtpZihpIT1udWxsJiYoIUhNZShpKXx8IWkuY2hpbGRyZW4pKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcGFyZW50IG5vZGUiKTtpZihpPT1udWxsIT0ocj09bnVsbCkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBib3RoIHBhcmVudCBhbmQgaW5kZXgiKTtyZXR1cm4gQk1lKGUpP24uY2FsbChhLGUscixpKTohMX0pLEFsPShmdW5jdGlvbihlKXtpZihlPT1udWxsKXJldHVybiBIeXI7aWYodHlwZW9mIGU9PSJmdW5jdGlvbiIpcmV0dXJuIGNNKGUpO2lmKHR5cGVvZiBlPT0ib2JqZWN0IilyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9PeXIoZSk6UnlyKGUpO2lmKHR5cGVvZiBlPT0ic3RyaW5nIilyZXR1cm4gQnlyKGUpO3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgZnVuY3Rpb24sIHN0cmluZywgb3Igb2JqZWN0IGFzIHRlc3QiKX0pfSk7dmFyIGRNPXAoKCk9PntxTWUoKX0pO3ZhciBqTWU9cCgoKT0+e30pO2Z1bmN0aW9uIGY3KGUsdCxyLGkpe2xldCBhO3R5cGVvZiB0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIj8oaT1yLHI9dCk6YT10O2xldCBuPUFsKGEpLG89aT8tMToxO3MoZSx2b2lkIDAsW10pKCk7ZnVuY3Rpb24gcyhsLGMsdSl7bGV0IGQ9bCYmdHlwZW9mIGw9PSJvYmplY3QiP2w6e307aWYodHlwZW9mIGQudHlwZT09InN0cmluZyIpe2xldCBmPXR5cGVvZiBkLnRhZ05hbWU9PSJzdHJpbmciP2QudGFnTmFtZTp0eXBlb2YgZC5uYW1lPT0ic3RyaW5nIj9kLm5hbWU6dm9pZCAwO09iamVjdC5kZWZpbmVQcm9wZXJ0eShoLCJuYW1lIix7dmFsdWU6Im5vZGUgKCIrKGwudHlwZSsoZj8iPCIrZisiPiI6IiIpKSsiKSJ9KX1yZXR1cm4gaDtmdW5jdGlvbiBoKCl7bGV0IGY9Vk1lLHgsdixiO2lmKCghdHx8bihsLGMsdVt1Lmxlbmd0aC0xXXx8dm9pZCAwKSkmJihmPXF5cihyKGwsdSkpLGZbMF09PT1VMykpcmV0dXJuIGY7aWYoImNoaWxkcmVuImluIGwmJmwuY2hpbGRyZW4pe2xldCB5PWw7aWYoeS5jaGlsZHJlbiYmZlswXSE9PXBNKWZvcih2PShpP3kuY2hpbGRyZW4ubGVuZ3RoOi0xKStvLGI9dS5jb25jYXQoeSk7dj4tMSYmdjx5LmNoaWxkcmVuLmxlbmd0aDspe2xldCB3PXkuY2hpbGRyZW5bdl07aWYoeD1zKHcsdixiKSgpLHhbMF09PT1VMylyZXR1cm4geDt2PXR5cGVvZiB4WzFdPT0ibnVtYmVyIj94WzFdOnYrb319cmV0dXJuIGZ9fX1mdW5jdGlvbiBxeXIoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTp0eXBlb2YgZT09Im51bWJlciI/W3VNLGVdOmU9PW51bGw/Vk1lOltlXX12YXIgVk1lLHVNLFUzLHBNLFVNZT1wKCgpPT57ZE0oKTtqTWUoKTtWTWU9W10sdU09ITAsVTM9ITEscE09InNraXAifSk7dmFyIGhNPXAoKCk9PntVTWUoKX0pO2Z1bmN0aW9uIHRWKGUsdCxyKXtsZXQgYT1BbCgocnx8e30pLmlnbm9yZXx8W10pLG49anlyKHQpLG89LTE7Zm9yKDsrK288bi5sZW5ndGg7KWY3KGUsInRleHQiLHMpO2Z1bmN0aW9uIHMoYyx1KXtsZXQgZD0tMSxoO2Zvcig7KytkPHUubGVuZ3RoOyl7bGV0IGY9dVtkXSx4PWg/aC5jaGlsZHJlbjp2b2lkIDA7aWYoYShmLHg/eC5pbmRleE9mKGYpOnZvaWQgMCxoKSlyZXR1cm47aD1mfWlmKGgpcmV0dXJuIGwoYyx1KX1mdW5jdGlvbiBsKGMsdSl7bGV0IGQ9dVt1Lmxlbmd0aC0xXSxoPW5bb11bMF0sZj1uW29dWzFdLHg9MCxiPWQuY2hpbGRyZW4uaW5kZXhPZihjKSx5PSExLHc9W107aC5sYXN0SW5kZXg9MDtsZXQgaz1oLmV4ZWMoYy52YWx1ZSk7Zm9yKDtrOyl7bGV0IE89ay5pbmRleCx6PXtpbmRleDprLmluZGV4LGlucHV0OmsuaW5wdXQsc3RhY2s6Wy4uLnUsY119LE09ZiguLi5rLHopO2lmKHR5cGVvZiBNPT0ic3RyaW5nIiYmKE09TS5sZW5ndGg+MD97dHlwZToidGV4dCIsdmFsdWU6TX06dm9pZCAwKSxNPT09ITE/aC5sYXN0SW5kZXg9TysxOih4IT09TyYmdy5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlLnNsaWNlKHgsTyl9KSxBcnJheS5pc0FycmF5KE0pP3cucHVzaCguLi5NKTpNJiZ3LnB1c2goTSkseD1PK2tbMF0ubGVuZ3RoLHk9ITApLCFoLmdsb2JhbClicmVhaztrPWguZXhlYyhjLnZhbHVlKX1yZXR1cm4geT8oeDxjLnZhbHVlLmxlbmd0aCYmdy5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlLnNsaWNlKHgpfSksZC5jaGlsZHJlbi5zcGxpY2UoYiwxLC4uLncpKTp3PVtjXSxiK3cubGVuZ3RofX1mdW5jdGlvbiBqeXIoZSl7bGV0IHQ9W107aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgZmluZCBhbmQgcmVwbGFjZSB0dXBsZSBvciBsaXN0IG9mIHR1cGxlcyIpO2xldCByPSFlWzBdfHxBcnJheS5pc0FycmF5KGVbMF0pP2U6W2VdLGk9LTE7Zm9yKDsrK2k8ci5sZW5ndGg7KXtsZXQgYT1yW2ldO3QucHVzaChbVnlyKGFbMF0pLFV5cihhWzFdKV0pfXJldHVybiB0fWZ1bmN0aW9uIFZ5cihlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP25ldyBSZWdFeHAoZjMoZSksImciKTplfWZ1bmN0aW9uIFV5cihlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpmdW5jdGlvbigpe3JldHVybiBlfX12YXIgV01lPXAoKCk9PntseCgpO2hNKCk7ZE0oKX0pO3ZhciBHTWU9cCgoKT0+e1dNZSgpfSk7ZnVuY3Rpb24gblYoKXtyZXR1cm57dHJhbnNmb3JtczpbUXlyXSxlbnRlcjp7bGl0ZXJhbEF1dG9saW5rOld5cixsaXRlcmFsQXV0b2xpbmtFbWFpbDphVixsaXRlcmFsQXV0b2xpbmtIdHRwOmFWLGxpdGVyYWxBdXRvbGlua1d3dzphVn0sZXhpdDp7bGl0ZXJhbEF1dG9saW5rOlh5cixsaXRlcmFsQXV0b2xpbmtFbWFpbDpaeXIsbGl0ZXJhbEF1dG9saW5rSHR0cDpHeXIsbGl0ZXJhbEF1dG9saW5rV3d3Oll5cn19fWZ1bmN0aW9uIG9WKCl7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiQCIsYmVmb3JlOiJbK1xcLS5cXHddIixhZnRlcjoiW1xcLS5cXHddIixpbkNvbnN0cnVjdDpyVixub3RJbkNvbnN0cnVjdDppVn0se2NoYXJhY3RlcjoiLiIsYmVmb3JlOiJbV3ddIixhZnRlcjoiW1xcLS5cXHddIixpbkNvbnN0cnVjdDpyVixub3RJbkNvbnN0cnVjdDppVn0se2NoYXJhY3RlcjoiOiIsYmVmb3JlOiJbcHNdIixhZnRlcjoiXFwvIixpbkNvbnN0cnVjdDpyVixub3RJbkNvbnN0cnVjdDppVn1dfX1mdW5jdGlvbiBXeXIoZSl7dGhpcy5lbnRlcih7dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119LGUpfWZ1bmN0aW9uIGFWKGUpe3RoaXMuY29uZmlnLmVudGVyLmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIEd5cihlKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIFl5cihlKXt0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLGUpO2xldCB0PXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dC50eXBlLHQudXJsPSJodHRwOi8vIit0aGlzLnNsaWNlU2VyaWFsaXplKGUpfWZ1bmN0aW9uIFp5cihlKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rRW1haWwuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIFh5cihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gUXlyKGUpe3RWKGUsW1svKGh0dHBzPzpcL1wvfHd3dyg/PVwuKSkoWy0uXHddKykoW14gXHRcclxuXSopL2dpLEp5cl0sWy8oPzw9Xnxcc3xccHtQfXxccHtTfSkoWy0uXHcrXSspQChbLVx3XSsoPzpcLlstXHddKykrKS9ndSxLeXJdXSx7aWdub3JlOlsibGluayIsImxpbmtSZWZlcmVuY2UiXX0pfWZ1bmN0aW9uIEp5cihlLHQscixpLGEpe2xldCBuPSIiO2lmKCFZTWUoYSl8fCgvXncvaS50ZXN0KHQpJiYocj10K3IsdD0iIixuPSJodHRwOi8vIiksIWV3cihyKSkpcmV0dXJuITE7bGV0IG89dHdyKHIraSk7aWYoIW9bMF0pcmV0dXJuITE7bGV0IHM9e3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOm4rdCtvWzBdLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6dCtvWzBdfV19O3JldHVybiBvWzFdP1tzLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpvWzFdfV06c31mdW5jdGlvbiBLeXIoZSx0LHIsaSl7cmV0dXJuIVlNZShpLCEwKXx8L1stXGRfXSQvLnRlc3Qocik/ITE6e3R5cGU6ImxpbmsiLHRpdGxlOm51bGwsdXJsOiJtYWlsdG86Iit0KyJAIityLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6dCsiQCIrcn1dfX1mdW5jdGlvbiBld3IoZSl7bGV0IHQ9ZS5zcGxpdCgiLiIpO3JldHVybiEodC5sZW5ndGg8Mnx8dFt0Lmxlbmd0aC0xXSYmKC9fLy50ZXN0KHRbdC5sZW5ndGgtMV0pfHwhL1thLXpBLVpcZF0vLnRlc3QodFt0Lmxlbmd0aC0xXSkpfHx0W3QubGVuZ3RoLTJdJiYoL18vLnRlc3QodFt0Lmxlbmd0aC0yXSl8fCEvW2EtekEtWlxkXS8udGVzdCh0W3QubGVuZ3RoLTJdKSkpfWZ1bmN0aW9uIHR3cihlKXtsZXQgdD0vWyEiJicpLC46Ozw+P1xdfV0rJC8uZXhlYyhlKTtpZighdClyZXR1cm5bZSx2b2lkIDBdO2U9ZS5zbGljZSgwLHQuaW5kZXgpO2xldCByPXRbMF0saT1yLmluZGV4T2YoIikiKSxhPXh1KGUsIigiKSxuPXh1KGUsIikiKTtmb3IoO2khPT0tMSYmYT5uOyllKz1yLnNsaWNlKDAsaSsxKSxyPXIuc2xpY2UoaSsxKSxpPXIuaW5kZXhPZigiKSIpLG4rKztyZXR1cm5bZSxyXX1mdW5jdGlvbiBZTWUoZSx0KXtsZXQgcj1lLmlucHV0LmNoYXJDb2RlQXQoZS5pbmRleC0xKTtyZXR1cm4oZS5pbmRleD09PTB8fHVzKHIpfHxWMyhyKSkmJighdHx8ciE9PTQ3KX12YXIgclYsaVYsWk1lPXAoKCk9PntlVigpO2IwKCk7dHIoKTtHTWUoKTtyVj0icGhyYXNpbmciLGlWPVsiYXV0b2xpbmsiLCJsaW5rIiwiaW1hZ2UiLCJsYWJlbCJdfSk7dmFyIFhNZT1wKCgpPT57Wk1lKCl9KTtmdW5jdGlvbiBMMShlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXHRcblxyIF0rL2csIiAiKS5yZXBsYWNlKC9eIHwgJC9nLCIiKS50b0xvd2VyQ2FzZSgpLnRvVXBwZXJDYXNlKCl9dmFyIHkwPXAoKCk9Pnt9KTtmdW5jdGlvbiByd3IoKXt0aGlzLmJ1ZmZlcigpfWZ1bmN0aW9uIGl3cihlKXt0aGlzLmVudGVyKHt0eXBlOiJmb290bm90ZVJlZmVyZW5jZSIsaWRlbnRpZmllcjoiIixsYWJlbDoiIn0sZSl9ZnVuY3Rpb24gYXdyKCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBud3IoZSl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVEZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOiIiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiBvd3IoZSl7bGV0IHQ9dGhpcy5yZXN1bWUoKSxyPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIuaWRlbnRpZmllcj1MMSh0aGlzLnNsaWNlU2VyaWFsaXplKGUpKS50b0xvd2VyQ2FzZSgpLHIubGFiZWw9dH1mdW5jdGlvbiBzd3IoZSl7dGhpcy5leGl0KGUpfWZ1bmN0aW9uIGx3cihlKXtsZXQgdD10aGlzLnJlc3VtZSgpLHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyLnR5cGUsci5pZGVudGlmaWVyPUwxKHRoaXMuc2xpY2VTZXJpYWxpemUoZSkpLnRvTG93ZXJDYXNlKCksci5sYWJlbD10fWZ1bmN0aW9uIGN3cihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gZHdyKCl7cmV0dXJuIlsifWZ1bmN0aW9uIFFNZShlLHQscixpKXtsZXQgYT1yLmNyZWF0ZVRyYWNrZXIoaSksbj1hLm1vdmUoIlteIiksbz1yLmVudGVyKCJmb290bm90ZVJlZmVyZW5jZSIpLHM9ci5lbnRlcigicmVmZXJlbmNlIik7cmV0dXJuIG4rPWEubW92ZShyLnNhZmUoci5hc3NvY2lhdGlvbklkKGUpLHthZnRlcjoiXSIsYmVmb3JlOm59KSkscygpLG8oKSxuKz1hLm1vdmUoIl0iKSxufWZ1bmN0aW9uIHNWKCl7cmV0dXJue2VudGVyOntnZm1Gb290bm90ZUNhbGxTdHJpbmc6cndyLGdmbUZvb3Rub3RlQ2FsbDppd3IsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmc6YXdyLGdmbUZvb3Rub3RlRGVmaW5pdGlvbjpud3J9LGV4aXQ6e2dmbUZvb3Rub3RlQ2FsbFN0cmluZzpvd3IsZ2ZtRm9vdG5vdGVDYWxsOnN3cixnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZzpsd3IsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uOmN3cn19fWZ1bmN0aW9uIGxWKGUpe2xldCB0PSExO3JldHVybiBlJiZlLmZpcnN0TGluZUJsYW5rJiYodD0hMCkse2hhbmRsZXJzOntmb290bm90ZURlZmluaXRpb246cixmb290bm90ZVJlZmVyZW5jZTpRTWV9LHVuc2FmZTpbe2NoYXJhY3RlcjoiWyIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInBocmFzaW5nIiwicmVmZXJlbmNlIl19XX07ZnVuY3Rpb24gcihpLGEsbixvKXtsZXQgcz1uLmNyZWF0ZVRyYWNrZXIobyksbD1zLm1vdmUoIlteIiksYz1uLmVudGVyKCJmb290bm90ZURlZmluaXRpb24iKSx1PW4uZW50ZXIoImxhYmVsIik7cmV0dXJuIGwrPXMubW92ZShuLnNhZmUobi5hc3NvY2lhdGlvbklkKGkpLHtiZWZvcmU6bCxhZnRlcjoiXSJ9KSksdSgpLGwrPXMubW92ZSgiXToiKSxpLmNoaWxkcmVuJiZpLmNoaWxkcmVuLmxlbmd0aD4wJiYocy5zaGlmdCg0KSxsKz1zLm1vdmUoKHQ/YApgOiIgIikrbi5pbmRlbnRMaW5lcyhuLmNvbnRhaW5lckZsb3coaSxzLmN1cnJlbnQoKSksdD9KTWU6dXdyKSkpLGMoKSxsfX1mdW5jdGlvbiB1d3IoZSx0LHIpe3JldHVybiB0PT09MD9lOkpNZShlLHQscil9ZnVuY3Rpb24gSk1lKGUsdCxyKXtyZXR1cm4ocj8iIjoiICAgICIpK2V9dmFyIEtNZT1wKCgpPT57YjAoKTt5MCgpO1FNZS5wZWVrPWR3cn0pO3ZhciBla2U9cCgoKT0+e0tNZSgpfSk7ZnVuY3Rpb24gY1YoKXtyZXR1cm57Y2FuQ29udGFpbkVvbHM6WyJkZWxldGUiXSxlbnRlcjp7c3RyaWtldGhyb3VnaDpod3J9LGV4aXQ6e3N0cmlrZXRocm91Z2g6ZndyfX19ZnVuY3Rpb24gZFYoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJ+IixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OnB3cn1dLGhhbmRsZXJzOntkZWxldGU6dGtlfX19ZnVuY3Rpb24gaHdyKGUpe3RoaXMuZW50ZXIoe3R5cGU6ImRlbGV0ZSIsY2hpbGRyZW46W119LGUpfWZ1bmN0aW9uIGZ3cihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gdGtlKGUsdCxyLGkpe2xldCBhPXIuY3JlYXRlVHJhY2tlcihpKSxuPXIuZW50ZXIoInN0cmlrZXRocm91Z2giKSxvPWEubW92ZSgifn4iKTtyZXR1cm4gbys9ci5jb250YWluZXJQaHJhc2luZyhlLHsuLi5hLmN1cnJlbnQoKSxiZWZvcmU6byxhZnRlcjoifiJ9KSxvKz1hLm1vdmUoIn5+IiksbigpLG99ZnVuY3Rpb24gbXdyKCl7cmV0dXJuIn4ifXZhciBwd3IscmtlPXAoKCk9Pntwd3I9WyJhdXRvbGluayIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlc3RpbmF0aW9uUmF3IiwicmVmZXJlbmNlIiwidGl0bGVRdW90ZSIsInRpdGxlQXBvc3Ryb3BoZSJdO3RrZS5wZWVrPW13cn0pO3ZhciBpa2U9cCgoKT0+e3JrZSgpfSk7ZnVuY3Rpb24gZ3dyKGUpe3JldHVybiBlLmxlbmd0aH1mdW5jdGlvbiBua2UoZSx0KXtsZXQgcj10fHx7fSxpPShyLmFsaWdufHxbXSkuY29uY2F0KCksYT1yLnN0cmluZ0xlbmd0aHx8Z3dyLG49W10sbz1bXSxzPVtdLGw9W10sYz0wLHU9LTE7Zm9yKDsrK3U8ZS5sZW5ndGg7KXtsZXQgdj1bXSxiPVtdLHk9LTE7Zm9yKGVbdV0ubGVuZ3RoPmMmJihjPWVbdV0ubGVuZ3RoKTsrK3k8ZVt1XS5sZW5ndGg7KXtsZXQgdz1id3IoZVt1XVt5XSk7aWYoci5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IGs9YSh3KTtiW3ldPWssKGxbeV09PT12b2lkIDB8fGs+bFt5XSkmJihsW3ldPWspfXYucHVzaCh3KX1vW3VdPXYsc1t1XT1ifWxldCBkPS0xO2lmKHR5cGVvZiBpPT0ib2JqZWN0IiYmImxlbmd0aCJpbiBpKWZvcig7KytkPGM7KW5bZF09YWtlKGlbZF0pO2Vsc2V7bGV0IHY9YWtlKGkpO2Zvcig7KytkPGM7KW5bZF09dn1kPS0xO2xldCBoPVtdLGY9W107Zm9yKDsrK2Q8Yzspe2xldCB2PW5bZF0sYj0iIix5PSIiO3Y9PT05OT8oYj0iOiIseT0iOiIpOnY9PT0xMDg/Yj0iOiI6dj09PTExNCYmKHk9IjoiKTtsZXQgdz1yLmFsaWduRGVsaW1pdGVycz09PSExPzE6TWF0aC5tYXgoMSxsW2RdLWIubGVuZ3RoLXkubGVuZ3RoKSxrPWIrIi0iLnJlcGVhdCh3KSt5O3IuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJih3PWIubGVuZ3RoK3creS5sZW5ndGgsdz5sW2RdJiYobFtkXT13KSxmW2RdPXcpLGhbZF09a31vLnNwbGljZSgxLDAsaCkscy5zcGxpY2UoMSwwLGYpLHU9LTE7bGV0IHg9W107Zm9yKDsrK3U8by5sZW5ndGg7KXtsZXQgdj1vW3VdLGI9c1t1XTtkPS0xO2xldCB5PVtdO2Zvcig7KytkPGM7KXtsZXQgdz12W2RdfHwiIixrPSIiLE89IiI7aWYoci5hbGlnbkRlbGltaXRlcnMhPT0hMSl7bGV0IHo9bFtkXS0oYltkXXx8MCksTT1uW2RdO009PT0xMTQ/az0iICIucmVwZWF0KHopOk09PT05OT96JTI/KGs9IiAiLnJlcGVhdCh6LzIrLjUpLE89IiAiLnJlcGVhdCh6LzItLjUpKTooaz0iICIucmVwZWF0KHovMiksTz1rKTpPPSIgIi5yZXBlYXQoeil9ci5kZWxpbWl0ZXJTdGFydCE9PSExJiYhZCYmeS5wdXNoKCJ8Iiksci5wYWRkaW5nIT09ITEmJiEoci5hbGlnbkRlbGltaXRlcnM9PT0hMSYmdz09PSIiKSYmKHIuZGVsaW1pdGVyU3RhcnQhPT0hMXx8ZCkmJnkucHVzaCgiICIpLHIuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJnkucHVzaChrKSx5LnB1c2godyksci5hbGlnbkRlbGltaXRlcnMhPT0hMSYmeS5wdXNoKE8pLHIucGFkZGluZyE9PSExJiZ5LnB1c2goIiAiKSwoci5kZWxpbWl0ZXJFbmQhPT0hMXx8ZCE9PWMtMSkmJnkucHVzaCgifCIpfXgucHVzaChyLmRlbGltaXRlckVuZD09PSExP3kuam9pbigiIikucmVwbGFjZSgvICskLywiIik6eS5qb2luKCIiKSl9cmV0dXJuIHguam9pbihgCmApfWZ1bmN0aW9uIGJ3cihlKXtyZXR1cm4gZT09bnVsbD8iIjpTdHJpbmcoZSl9ZnVuY3Rpb24gYWtlKGUpe2xldCB0PXR5cGVvZiBlPT0ic3RyaW5nIj9lLmNvZGVQb2ludEF0KDApOjA7cmV0dXJuIHQ9PT02N3x8dD09PTk5Pzk5OnQ9PT03Nnx8dD09PTEwOD8xMDg6dD09PTgyfHx0PT09MTE0PzExNDowfXZhciBva2U9cCgoKT0+e30pO2Z1bmN0aW9uIGZNKGUsdCl7bGV0IHI9dHx8e307ZnVuY3Rpb24gaShhLC4uLm4pe2xldCBvPWkuaW52YWxpZCxzPWkuaGFuZGxlcnM7aWYoYSYmc2tlLmNhbGwoYSxlKSl7bGV0IGw9U3RyaW5nKGFbZV0pO289c2tlLmNhbGwocyxsKT9zW2xdOmkudW5rbm93bn1pZihvKXJldHVybiBvLmNhbGwodGhpcyxhLC4uLm4pfXJldHVybiBpLmhhbmRsZXJzPXIuaGFuZGxlcnN8fHt9LGkuaW52YWxpZD1yLmludmFsaWQsaS51bmtub3duPXIudW5rbm93bixpfXZhciBza2UsdVY9cCgoKT0+e3NrZT17fS5oYXNPd25Qcm9wZXJ0eX0pO2Z1bmN0aW9uIHBWKGUsdCl7bGV0IHI9LTEsaTtpZih0LmV4dGVuc2lvbnMpZm9yKDsrK3I8dC5leHRlbnNpb25zLmxlbmd0aDspcFYoZSx0LmV4dGVuc2lvbnNbcl0pO2ZvcihpIGluIHQpaWYodndyLmNhbGwodCxpKSlzd2l0Y2goaSl7Y2FzZSJleHRlbnNpb25zIjpicmVhaztjYXNlInVuc2FmZSI6e2xrZShlW2ldLHRbaV0pO2JyZWFrfWNhc2Uiam9pbiI6e2xrZShlW2ldLHRbaV0pO2JyZWFrfWNhc2UiaGFuZGxlcnMiOnt4d3IoZVtpXSx0W2ldKTticmVha31kZWZhdWx0OmUub3B0aW9uc1tpXT10W2ldfXJldHVybiBlfWZ1bmN0aW9uIGxrZShlLHQpe3QmJmUucHVzaCguLi50KX1mdW5jdGlvbiB4d3IoZSx0KXt0JiZPYmplY3QuYXNzaWduKGUsdCl9dmFyIHZ3cixja2U9cCgoKT0+e3Z3cj17fS5oYXNPd25Qcm9wZXJ0eX0pO2Z1bmN0aW9uIGRrZShlLHQscixpKXtsZXQgYT1yLmVudGVyKCJibG9ja3F1b3RlIiksbj1yLmNyZWF0ZVRyYWNrZXIoaSk7bi5tb3ZlKCI+ICIpLG4uc2hpZnQoMik7bGV0IG89ci5pbmRlbnRMaW5lcyhyLmNvbnRhaW5lckZsb3coZSxuLmN1cnJlbnQoKSkseXdyKTtyZXR1cm4gYSgpLG99ZnVuY3Rpb24geXdyKGUsdCxyKXtyZXR1cm4iPiIrKHI/IiI6IiAiKStlfXZhciB1a2U9cCgoKT0+e30pO2Z1bmN0aW9uIG1NKGUsdCl7cmV0dXJuIHBrZShlLHQuaW5Db25zdHJ1Y3QsITApJiYhcGtlKGUsdC5ub3RJbkNvbnN0cnVjdCwhMSl9ZnVuY3Rpb24gcGtlKGUsdCxyKXtpZih0eXBlb2YgdD09InN0cmluZyImJih0PVt0XSksIXR8fHQubGVuZ3RoPT09MClyZXR1cm4gcjtsZXQgaT0tMTtmb3IoOysraTx0Lmxlbmd0aDspaWYoZS5pbmNsdWRlcyh0W2ldKSlyZXR1cm4hMDtyZXR1cm4hMX12YXIgaFY9cCgoKT0+e30pO2Z1bmN0aW9uIGZWKGUsdCxyLGkpe2xldCBhPS0xO2Zvcig7KythPHIudW5zYWZlLmxlbmd0aDspaWYoci51bnNhZmVbYV0uY2hhcmFjdGVyPT09YApgJiZtTShyLnN0YWNrLHIudW5zYWZlW2FdKSlyZXR1cm4vWyBcdF0vLnRlc3QoaS5iZWZvcmUpPyIiOiIgIjtyZXR1cm5gXFwKYH12YXIgaGtlPXAoKCk9PntoVigpfSk7ZnVuY3Rpb24gZmtlKGUsdCl7bGV0IHI9U3RyaW5nKGUpLGk9ci5pbmRleE9mKHQpLGE9aSxuPTAsbz0wO2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBzdWJzdHJpbmciKTtmb3IoO2khPT0tMTspaT09PWE/KytuPm8mJihvPW4pOm49MSxhPWkrdC5sZW5ndGgsaT1yLmluZGV4T2YodCxhKTtyZXR1cm4gb312YXIgbWtlPXAoKCk9Pnt9KTtmdW5jdGlvbiBtNyhlLHQpe3JldHVybiEhKHQub3B0aW9ucy5mZW5jZXM9PT0hMSYmZS52YWx1ZSYmIWUubGFuZyYmL1teIFxyXG5dLy50ZXN0KGUudmFsdWUpJiYhL15bXHQgXSooPzpbXHJcbl18JCl8KD86XnxbXHJcbl0pW1x0IF0qJC8udGVzdChlLnZhbHVlKSl9dmFyIG1WPXAoKCk9Pnt9KTtmdW5jdGlvbiBna2UoZSl7bGV0IHQ9ZS5vcHRpb25zLmZlbmNlfHwiYCI7aWYodCE9PSJgIiYmdCE9PSJ+Iil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgY29kZSB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLmZlbmNlYCwgZXhwZWN0ZWQgYGAgYCBgYCBvciBgfmAiKTtyZXR1cm4gdH12YXIgYmtlPXAoKCk9Pnt9KTtmdW5jdGlvbiB2a2UoZSx0LHIsaSl7bGV0IGE9Z2tlKHIpLG49ZS52YWx1ZXx8IiIsbz1hPT09ImAiPyJHcmF2ZUFjY2VudCI6IlRpbGRlIjtpZihtNyhlLHIpKXtsZXQgZD1yLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxoPXIuaW5kZW50TGluZXMobix3d3IpO3JldHVybiBkKCksaH1sZXQgcz1yLmNyZWF0ZVRyYWNrZXIoaSksbD1hLnJlcGVhdChNYXRoLm1heChma2UobixhKSsxLDMpKSxjPXIuZW50ZXIoImNvZGVGZW5jZWQiKSx1PXMubW92ZShsKTtpZihlLmxhbmcpe2xldCBkPXIuZW50ZXIoYGNvZGVGZW5jZWRMYW5nJHtvfWApO3UrPXMubW92ZShyLnNhZmUoZS5sYW5nLHtiZWZvcmU6dSxhZnRlcjoiICIsZW5jb2RlOlsiYCJdLC4uLnMuY3VycmVudCgpfSkpLGQoKX1pZihlLmxhbmcmJmUubWV0YSl7bGV0IGQ9ci5lbnRlcihgY29kZUZlbmNlZE1ldGEke299YCk7dSs9cy5tb3ZlKCIgIiksdSs9cy5tb3ZlKHIuc2FmZShlLm1ldGEse2JlZm9yZTp1LGFmdGVyOmAKYCxlbmNvZGU6WyJgIl0sLi4ucy5jdXJyZW50KCl9KSksZCgpfXJldHVybiB1Kz1zLm1vdmUoYApgKSxuJiYodSs9cy5tb3ZlKG4rYApgKSksdSs9cy5tb3ZlKGwpLGMoKSx1fWZ1bmN0aW9uIHd3cihlLHQscil7cmV0dXJuKHI/IiI6IiAgICAiKStlfXZhciB4a2U9cCgoKT0+e21rZSgpO21WKCk7YmtlKCl9KTtmdW5jdGlvbiB5dShlKXtsZXQgdD1lLm9wdGlvbnMucXVvdGV8fCciJztpZih0IT09JyInJiZ0IT09IiciKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSB0aXRsZSB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLnF1b3RlYCwgZXhwZWN0ZWQgYFwiYCwgb3IgYCdgIik7cmV0dXJuIHR9dmFyIGdNPXAoKCk9Pnt9KTtmdW5jdGlvbiB5a2UoZSx0LHIsaSl7bGV0IGE9eXUociksbj1hPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89ci5lbnRlcigiZGVmaW5pdGlvbiIpLHM9ci5lbnRlcigibGFiZWwiKSxsPXIuY3JlYXRlVHJhY2tlcihpKSxjPWwubW92ZSgiWyIpO3JldHVybiBjKz1sLm1vdmUoci5zYWZlKHIuYXNzb2NpYXRpb25JZChlKSx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZSgiXTogIikscygpLCFlLnVybHx8L1tcMC0gXHUwMDdGXS8udGVzdChlLnVybCk/KHM9ci5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksYys9bC5tb3ZlKCI8IiksYys9bC5tb3ZlKHIuc2FmZShlLnVybCx7YmVmb3JlOmMsYWZ0ZXI6Ij4iLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZSgiPiIpKToocz1yLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGMrPWwubW92ZShyLnNhZmUoZS51cmwse2JlZm9yZTpjLGFmdGVyOmUudGl0bGU/IiAiOmAKYCwuLi5sLmN1cnJlbnQoKX0pKSkscygpLGUudGl0bGUmJihzPXIuZW50ZXIoYHRpdGxlJHtufWApLGMrPWwubW92ZSgiICIrYSksYys9bC5tb3ZlKHIuc2FmZShlLnRpdGxlLHtiZWZvcmU6YyxhZnRlcjphLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZShhKSxzKCkpLG8oKSxjfXZhciB3a2U9cCgoKT0+e2dNKCl9KTtmdW5jdGlvbiBNa2UoZSl7bGV0IHQ9ZS5vcHRpb25zLmVtcGhhc2lzfHwiKiI7aWYodCE9PSIqIiYmdCE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgZW1waGFzaXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5lbXBoYXNpc2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIHR9dmFyIGtrZT1wKCgpPT57fSk7ZnVuY3Rpb24gTm4oZSl7cmV0dXJuIiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIHd1PXAoKCk9Pnt9KTtmdW5jdGlvbiBEbChlKXtpZihlPT09bnVsbHx8WnQoZSl8fHVzKGUpKXJldHVybiAxO2lmKFYzKGUpKXJldHVybiAyfXZhciBiTT1wKCgpPT57dHIoKX0pO2Z1bmN0aW9uIE11KGUsdCxyKXtsZXQgaT1EbChlKSxhPURsKHQpO3JldHVybiBpPT09dm9pZCAwP2E9PT12b2lkIDA/cj09PSJfIj97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06YT09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITB9Omk9PT0xP2E9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTphPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06YT09PXZvaWQgMD97aW5zaWRlOiExLG91dHNpZGU6ITF9OmE9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMX06e2luc2lkZTohMSxvdXRzaWRlOiExfX12YXIgZ1Y9cCgoKT0+e2JNKCl9KTtmdW5jdGlvbiBiVihlLHQscixpKXtsZXQgYT1Na2Uociksbj1yLmVudGVyKCJlbXBoYXNpcyIpLG89ci5jcmVhdGVUcmFja2VyKGkpLHM9by5tb3ZlKGEpLGw9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcoZSx7YWZ0ZXI6YSxiZWZvcmU6cywuLi5vLmN1cnJlbnQoKX0pKSxjPWwuY2hhckNvZGVBdCgwKSx1PU11KGkuYmVmb3JlLmNoYXJDb2RlQXQoaS5iZWZvcmUubGVuZ3RoLTEpLGMsYSk7dS5pbnNpZGUmJihsPU5uKGMpK2wuc2xpY2UoMSkpO2xldCBkPWwuY2hhckNvZGVBdChsLmxlbmd0aC0xKSxoPU11KGkuYWZ0ZXIuY2hhckNvZGVBdCgwKSxkLGEpO2guaW5zaWRlJiYobD1sLnNsaWNlKDAsLTEpK05uKGQpKTtsZXQgZj1vLm1vdmUoYSk7cmV0dXJuIG4oKSxyLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6aC5vdXRzaWRlLGJlZm9yZTp1Lm91dHNpZGV9LHMrbCtmfWZ1bmN0aW9uIE13cihlLHQscil7cmV0dXJuIHIub3B0aW9ucy5lbXBoYXNpc3x8IioifXZhciBTa2U9cCgoKT0+e2trZSgpO3d1KCk7Z1YoKTtiVi5wZWVrPU13cn0pO2Z1bmN0aW9uIGc3KGUsdCxyLGkpe2xldCBhLG4sbzt0eXBlb2YgdD09ImZ1bmN0aW9uIiYmdHlwZW9mIHIhPSJmdW5jdGlvbiI/KG49dm9pZCAwLG89dCxhPXIpOihuPXQsbz1yLGE9aSksZjcoZSxuLHMsYSk7ZnVuY3Rpb24gcyhsLGMpe2xldCB1PWNbYy5sZW5ndGgtMV0sZD11P3UuY2hpbGRyZW4uaW5kZXhPZihsKTp2b2lkIDA7cmV0dXJuIG8obCxkLHUpfX12YXIgemtlPXAoKCk9PntoTSgpO2hNKCl9KTt2YXIgdlY9cCgoKT0+e3prZSgpfSk7ZnVuY3Rpb24gVzMoZSx0KXtsZXQgcj10fHxrd3IsaT10eXBlb2Ygci5pbmNsdWRlSW1hZ2VBbHQ9PSJib29sZWFuIj9yLmluY2x1ZGVJbWFnZUFsdDohMCxhPXR5cGVvZiByLmluY2x1ZGVIdG1sPT0iYm9vbGVhbiI/ci5pbmNsdWRlSHRtbDohMDtyZXR1cm4gQ2tlKGUsaSxhKX1mdW5jdGlvbiBDa2UoZSx0LHIpe2lmKFN3cihlKSl7aWYoInZhbHVlImluIGUpcmV0dXJuIGUudHlwZT09PSJodG1sIiYmIXI/IiI6ZS52YWx1ZTtpZih0JiYiYWx0ImluIGUmJmUuYWx0KXJldHVybiBlLmFsdDtpZigiY2hpbGRyZW4iaW4gZSlyZXR1cm4gVGtlKGUuY2hpbGRyZW4sdCxyKX1yZXR1cm4gQXJyYXkuaXNBcnJheShlKT9Ua2UoZSx0LHIpOiIifWZ1bmN0aW9uIFRrZShlLHQscil7bGV0IGk9W10sYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspaVthXT1Da2UoZVthXSx0LHIpO3JldHVybiBpLmpvaW4oIiIpfWZ1bmN0aW9uIFN3cihlKXtyZXR1cm4hIShlJiZ0eXBlb2YgZT09Im9iamVjdCIpfXZhciBrd3IsX2tlPXAoKCk9Pntrd3I9e319KTt2YXIgdk09cCgoKT0+e19rZSgpfSk7ZnVuY3Rpb24geE0oZSx0KXtsZXQgcj0hMTtyZXR1cm4gZzcoZSxmdW5jdGlvbihpKXtpZigidmFsdWUiaW4gaSYmL1xyP1xufFxyLy50ZXN0KGkudmFsdWUpfHxpLnR5cGU9PT0iYnJlYWsiKXJldHVybiByPSEwLFUzfSksISEoKCFlLmRlcHRofHxlLmRlcHRoPDMpJiZXMyhlKSYmKHQub3B0aW9ucy5zZXRleHR8fHIpKX12YXIgeFY9cCgoKT0+e3ZWKCk7dk0oKX0pO2Z1bmN0aW9uIExrZShlLHQscixpKXtsZXQgYT1NYXRoLm1heChNYXRoLm1pbig2LGUuZGVwdGh8fDEpLDEpLG49ci5jcmVhdGVUcmFja2VyKGkpO2lmKHhNKGUscikpe2xldCB1PXIuZW50ZXIoImhlYWRpbmdTZXRleHQiKSxkPXIuZW50ZXIoInBocmFzaW5nIiksaD1yLmNvbnRhaW5lclBocmFzaW5nKGUsey4uLm4uY3VycmVudCgpLGJlZm9yZTpgCmAsYWZ0ZXI6YApgfSk7cmV0dXJuIGQoKSx1KCksaCtgCmArKGE9PT0xPyI9IjoiLSIpLnJlcGVhdChoLmxlbmd0aC0oTWF0aC5tYXgoaC5sYXN0SW5kZXhPZigiXHIiKSxoLmxhc3RJbmRleE9mKGAKYCkpKzEpKX1sZXQgbz0iIyIucmVwZWF0KGEpLHM9ci5lbnRlcigiaGVhZGluZ0F0eCIpLGw9ci5lbnRlcigicGhyYXNpbmciKTtuLm1vdmUobysiICIpO2xldCBjPXIuY29udGFpbmVyUGhyYXNpbmcoZSx7YmVmb3JlOiIjICIsYWZ0ZXI6YApgLC4uLm4uY3VycmVudCgpfSk7cmV0dXJuL15bXHQgXS8udGVzdChjKSYmKGM9Tm4oYy5jaGFyQ29kZUF0KDApKStjLnNsaWNlKDEpKSxjPWM/bysiICIrYzpvLHIub3B0aW9ucy5jbG9zZUF0eCYmKGMrPSIgIitvKSxsKCkscygpLGN9dmFyIEFrZT1wKCgpPT57d3UoKTt4VigpfSk7ZnVuY3Rpb24geVYoZSl7cmV0dXJuIGUudmFsdWV8fCIifWZ1bmN0aW9uIHp3cigpe3JldHVybiI8In12YXIgRGtlPXAoKCk9Pnt5Vi5wZWVrPXp3cn0pO2Z1bmN0aW9uIHdWKGUsdCxyLGkpe2xldCBhPXl1KHIpLG49YT09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXIuZW50ZXIoImltYWdlIikscz1yLmVudGVyKCJsYWJlbCIpLGw9ci5jcmVhdGVUcmFja2VyKGkpLGM9bC5tb3ZlKCIhWyIpO3JldHVybiBjKz1sLm1vdmUoci5zYWZlKGUuYWx0LHtiZWZvcmU6YyxhZnRlcjoiXSIsLi4ubC5jdXJyZW50KCl9KSksYys9bC5tb3ZlKCJdKCIpLHMoKSwhZS51cmwmJmUudGl0bGV8fC9bXDAtIFx1MDA3Rl0vLnRlc3QoZS51cmwpPyhzPXIuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGMrPWwubW92ZSgiPCIpLGMrPWwubW92ZShyLnNhZmUoZS51cmwse2JlZm9yZTpjLGFmdGVyOiI+IiwuLi5sLmN1cnJlbnQoKX0pKSxjKz1sLm1vdmUoIj4iKSk6KHM9ci5lbnRlcigiZGVzdGluYXRpb25SYXciKSxjKz1sLm1vdmUoci5zYWZlKGUudXJsLHtiZWZvcmU6YyxhZnRlcjplLnRpdGxlPyIgIjoiKSIsLi4ubC5jdXJyZW50KCl9KSkpLHMoKSxlLnRpdGxlJiYocz1yLmVudGVyKGB0aXRsZSR7bn1gKSxjKz1sLm1vdmUoIiAiK2EpLGMrPWwubW92ZShyLnNhZmUoZS50aXRsZSx7YmVmb3JlOmMsYWZ0ZXI6YSwuLi5sLmN1cnJlbnQoKX0pKSxjKz1sLm1vdmUoYSkscygpKSxjKz1sLm1vdmUoIikiKSxvKCksY31mdW5jdGlvbiBDd3IoKXtyZXR1cm4iISJ9dmFyIEVrZT1wKCgpPT57Z00oKTt3Vi5wZWVrPUN3cn0pO2Z1bmN0aW9uIE1WKGUsdCxyLGkpe2xldCBhPWUucmVmZXJlbmNlVHlwZSxuPXIuZW50ZXIoImltYWdlUmVmZXJlbmNlIiksbz1yLmVudGVyKCJsYWJlbCIpLHM9ci5jcmVhdGVUcmFja2VyKGkpLGw9cy5tb3ZlKCIhWyIpLGM9ci5zYWZlKGUuYWx0LHtiZWZvcmU6bCxhZnRlcjoiXSIsLi4ucy5jdXJyZW50KCl9KTtsKz1zLm1vdmUoYysiXVsiKSxvKCk7bGV0IHU9ci5zdGFjaztyLnN0YWNrPVtdLG89ci5lbnRlcigicmVmZXJlbmNlIik7bGV0IGQ9ci5zYWZlKHIuYXNzb2NpYXRpb25JZChlKSx7YmVmb3JlOmwsYWZ0ZXI6Il0iLC4uLnMuY3VycmVudCgpfSk7cmV0dXJuIG8oKSxyLnN0YWNrPXUsbigpLGE9PT0iZnVsbCJ8fCFjfHxjIT09ZD9sKz1zLm1vdmUoZCsiXSIpOmE9PT0ic2hvcnRjdXQiP2w9bC5zbGljZSgwLC0xKTpsKz1zLm1vdmUoIl0iKSxsfWZ1bmN0aW9uIFR3cigpe3JldHVybiIhIn12YXIgJGtlPXAoKCk9PntNVi5wZWVrPVR3cn0pO2Z1bmN0aW9uIGtWKGUsdCxyKXtsZXQgaT1lLnZhbHVlfHwiIixhPSJgIixuPS0xO2Zvcig7bmV3IFJlZ0V4cCgiKF58W15gXSkiK2ErIihbXmBdfCQpIikudGVzdChpKTspYSs9ImAiO2ZvcigvW14gXHJcbl0vLnRlc3QoaSkmJigvXlsgXHJcbl0vLnRlc3QoaSkmJi9bIFxyXG5dJC8udGVzdChpKXx8L15gfGAkLy50ZXN0KGkpKSYmKGk9IiAiK2krIiAiKTsrK248ci51bnNhZmUubGVuZ3RoOyl7bGV0IG89ci51bnNhZmVbbl0scz1yLmNvbXBpbGVQYXR0ZXJuKG8pLGw7aWYoby5hdEJyZWFrKWZvcig7bD1zLmV4ZWMoaSk7KXtsZXQgYz1sLmluZGV4O2kuY2hhckNvZGVBdChjKT09PTEwJiZpLmNoYXJDb2RlQXQoYy0xKT09PTEzJiZjLS0saT1pLnNsaWNlKDAsYykrIiAiK2kuc2xpY2UobC5pbmRleCsxKX19cmV0dXJuIGEraSthfWZ1bmN0aW9uIF93cigpe3JldHVybiJgIn12YXIgSWtlPXAoKCk9PntrVi5wZWVrPV93cn0pO2Z1bmN0aW9uIFNWKGUsdCl7bGV0IHI9VzMoZSk7cmV0dXJuISEoIXQub3B0aW9ucy5yZXNvdXJjZUxpbmsmJmUudXJsJiYhZS50aXRsZSYmZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5sZW5ndGg9PT0xJiZlLmNoaWxkcmVuWzBdLnR5cGU9PT0idGV4dCImJihyPT09ZS51cmx8fCJtYWlsdG86IityPT09ZS51cmwpJiYvXlthLXpdW2EteisuLV0rOi9pLnRlc3QoZS51cmwpJiYhL1tcMC0gPD5cdTAwN0ZdLy50ZXN0KGUudXJsKSl9dmFyIFBrZT1wKCgpPT57dk0oKX0pO2Z1bmN0aW9uIHpWKGUsdCxyLGkpe2xldCBhPXl1KHIpLG49YT09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXIuY3JlYXRlVHJhY2tlcihpKSxzLGw7aWYoU1YoZSxyKSl7bGV0IHU9ci5zdGFjaztyLnN0YWNrPVtdLHM9ci5lbnRlcigiYXV0b2xpbmsiKTtsZXQgZD1vLm1vdmUoIjwiKTtyZXR1cm4gZCs9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcoZSx7YmVmb3JlOmQsYWZ0ZXI6Ij4iLC4uLm8uY3VycmVudCgpfSkpLGQrPW8ubW92ZSgiPiIpLHMoKSxyLnN0YWNrPXUsZH1zPXIuZW50ZXIoImxpbmsiKSxsPXIuZW50ZXIoImxhYmVsIik7bGV0IGM9by5tb3ZlKCJbIik7cmV0dXJuIGMrPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKGUse2JlZm9yZTpjLGFmdGVyOiJdKCIsLi4uby5jdXJyZW50KCl9KSksYys9by5tb3ZlKCJdKCIpLGwoKSwhZS51cmwmJmUudGl0bGV8fC9bXDAtIFx1MDA3Rl0vLnRlc3QoZS51cmwpPyhsPXIuZW50ZXIoImRlc3RpbmF0aW9uTGl0ZXJhbCIpLGMrPW8ubW92ZSgiPCIpLGMrPW8ubW92ZShyLnNhZmUoZS51cmwse2JlZm9yZTpjLGFmdGVyOiI+IiwuLi5vLmN1cnJlbnQoKX0pKSxjKz1vLm1vdmUoIj4iKSk6KGw9ci5lbnRlcigiZGVzdGluYXRpb25SYXciKSxjKz1vLm1vdmUoci5zYWZlKGUudXJsLHtiZWZvcmU6YyxhZnRlcjplLnRpdGxlPyIgIjoiKSIsLi4uby5jdXJyZW50KCl9KSkpLGwoKSxlLnRpdGxlJiYobD1yLmVudGVyKGB0aXRsZSR7bn1gKSxjKz1vLm1vdmUoIiAiK2EpLGMrPW8ubW92ZShyLnNhZmUoZS50aXRsZSx7YmVmb3JlOmMsYWZ0ZXI6YSwuLi5vLmN1cnJlbnQoKX0pKSxjKz1vLm1vdmUoYSksbCgpKSxjKz1vLm1vdmUoIikiKSxzKCksY31mdW5jdGlvbiBMd3IoZSx0LHIpe3JldHVybiBTVihlLHIpPyI8IjoiWyJ9dmFyIE5rZT1wKCgpPT57Z00oKTtQa2UoKTt6Vi5wZWVrPUx3cn0pO2Z1bmN0aW9uIENWKGUsdCxyLGkpe2xldCBhPWUucmVmZXJlbmNlVHlwZSxuPXIuZW50ZXIoImxpbmtSZWZlcmVuY2UiKSxvPXIuZW50ZXIoImxhYmVsIikscz1yLmNyZWF0ZVRyYWNrZXIoaSksbD1zLm1vdmUoIlsiKSxjPXIuY29udGFpbmVyUGhyYXNpbmcoZSx7YmVmb3JlOmwsYWZ0ZXI6Il0iLC4uLnMuY3VycmVudCgpfSk7bCs9cy5tb3ZlKGMrIl1bIiksbygpO2xldCB1PXIuc3RhY2s7ci5zdGFjaz1bXSxvPXIuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBkPXIuc2FmZShyLmFzc29jaWF0aW9uSWQoZSkse2JlZm9yZTpsLGFmdGVyOiJdIiwuLi5zLmN1cnJlbnQoKX0pO3JldHVybiBvKCksci5zdGFjaz11LG4oKSxhPT09ImZ1bGwifHwhY3x8YyE9PWQ/bCs9cy5tb3ZlKGQrIl0iKTphPT09InNob3J0Y3V0Ij9sPWwuc2xpY2UoMCwtMSk6bCs9cy5tb3ZlKCJdIiksbH1mdW5jdGlvbiBBd3IoKXtyZXR1cm4iWyJ9dmFyIEZrZT1wKCgpPT57Q1YucGVlaz1Bd3J9KTtmdW5jdGlvbiBrdShlKXtsZXQgdD1lLm9wdGlvbnMuYnVsbGV0fHwiKiI7aWYodCE9PSIqIiYmdCE9PSIrIiYmdCE9PSItIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5idWxsZXRgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7cmV0dXJuIHR9dmFyIHlNPXAoKCk9Pnt9KTtmdW5jdGlvbiBPa2UoZSl7bGV0IHQ9a3UoZSkscj1lLm9wdGlvbnMuYnVsbGV0T3RoZXI7aWYoIXIpcmV0dXJuIHQ9PT0iKiI/Ii0iOiIqIjtpZihyIT09IioiJiZyIT09IisiJiZyIT09Ii0iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK3IrImAgZm9yIGBvcHRpb25zLmJ1bGxldE90aGVyYCwgZXhwZWN0ZWQgYCpgLCBgK2AsIG9yIGAtYCIpO2lmKHI9PT10KXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYGJ1bGxldGAgKGAiK3QrImApIGFuZCBgYnVsbGV0T3RoZXJgIChgIityKyJgKSB0byBiZSBkaWZmZXJlbnQiKTtyZXR1cm4gcn12YXIgUmtlPXAoKCk9Pnt5TSgpfSk7ZnVuY3Rpb24gQmtlKGUpe2xldCB0PWUub3B0aW9ucy5idWxsZXRPcmRlcmVkfHwiLiI7aWYodCE9PSIuIiYmdCE9PSIpIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgaXRlbXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5idWxsZXRPcmRlcmVkYCwgZXhwZWN0ZWQgYC5gIG9yIGApYCIpO3JldHVybiB0fXZhciBIa2U9cCgoKT0+e30pO2Z1bmN0aW9uIHdNKGUpe2xldCB0PWUub3B0aW9ucy5ydWxlfHwiKiI7aWYodCE9PSIqIiYmdCE9PSItIiYmdCE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5ydWxlYCwgZXhwZWN0ZWQgYCpgLCBgLWAsIG9yIGBfYCIpO3JldHVybiB0fXZhciBUVj1wKCgpPT57fSk7ZnVuY3Rpb24gcWtlKGUsdCxyLGkpe2xldCBhPXIuZW50ZXIoImxpc3QiKSxuPXIuYnVsbGV0Q3VycmVudCxvPWUub3JkZXJlZD9Ca2Uocik6a3Uocikscz1lLm9yZGVyZWQ/bz09PSIuIj8iKSI6Ii4iOk9rZShyKSxsPXQmJnIuYnVsbGV0TGFzdFVzZWQ/bz09PXIuYnVsbGV0TGFzdFVzZWQ6ITE7aWYoIWUub3JkZXJlZCl7bGV0IHU9ZS5jaGlsZHJlbj9lLmNoaWxkcmVuWzBdOnZvaWQgMDtpZigobz09PSIqInx8bz09PSItIikmJnUmJighdS5jaGlsZHJlbnx8IXUuY2hpbGRyZW5bMF0pJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTFdPT09Imxpc3QiJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTJdPT09Imxpc3RJdGVtIiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC0zXT09PSJsaXN0IiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC00XT09PSJsaXN0SXRlbSImJnIuaW5kZXhTdGFja1tyLmluZGV4U3RhY2subGVuZ3RoLTFdPT09MCYmci5pbmRleFN0YWNrW3IuaW5kZXhTdGFjay5sZW5ndGgtMl09PT0wJiZyLmluZGV4U3RhY2tbci5pbmRleFN0YWNrLmxlbmd0aC0zXT09PTAmJihsPSEwKSx3TShyKT09PW8mJnUpe2xldCBkPS0xO2Zvcig7KytkPGUuY2hpbGRyZW4ubGVuZ3RoOyl7bGV0IGg9ZS5jaGlsZHJlbltkXTtpZihoJiZoLnR5cGU9PT0ibGlzdEl0ZW0iJiZoLmNoaWxkcmVuJiZoLmNoaWxkcmVuWzBdJiZoLmNoaWxkcmVuWzBdLnR5cGU9PT0idGhlbWF0aWNCcmVhayIpe2w9ITA7YnJlYWt9fX19bCYmKG89cyksci5idWxsZXRDdXJyZW50PW87bGV0IGM9ci5jb250YWluZXJGbG93KGUsaSk7cmV0dXJuIHIuYnVsbGV0TGFzdFVzZWQ9byxyLmJ1bGxldEN1cnJlbnQ9bixhKCksY312YXIgamtlPXAoKCk9Pnt5TSgpO1JrZSgpO0hrZSgpO1RWKCl9KTtmdW5jdGlvbiBWa2UoZSl7bGV0IHQ9ZS5vcHRpb25zLmxpc3RJdGVtSW5kZW50fHwib25lIjtpZih0IT09InRhYiImJnQhPT0ib25lIiYmdCE9PSJtaXhlZCIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrdCsiYCBmb3IgYG9wdGlvbnMubGlzdEl0ZW1JbmRlbnRgLCBleHBlY3RlZCBgdGFiYCwgYG9uZWAsIG9yIGBtaXhlZGAiKTtyZXR1cm4gdH12YXIgVWtlPXAoKCk9Pnt9KTtmdW5jdGlvbiBXa2UoZSx0LHIsaSl7bGV0IGE9VmtlKHIpLG49ci5idWxsZXRDdXJyZW50fHxrdShyKTt0JiZ0LnR5cGU9PT0ibGlzdCImJnQub3JkZXJlZCYmKG49KHR5cGVvZiB0LnN0YXJ0PT0ibnVtYmVyIiYmdC5zdGFydD4tMT90LnN0YXJ0OjEpKyhyLm9wdGlvbnMuaW5jcmVtZW50TGlzdE1hcmtlcj09PSExPzA6dC5jaGlsZHJlbi5pbmRleE9mKGUpKStuKTtsZXQgbz1uLmxlbmd0aCsxOyhhPT09InRhYiJ8fGE9PT0ibWl4ZWQiJiYodCYmdC50eXBlPT09Imxpc3QiJiZ0LnNwcmVhZHx8ZS5zcHJlYWQpKSYmKG89TWF0aC5jZWlsKG8vNCkqNCk7bGV0IHM9ci5jcmVhdGVUcmFja2VyKGkpO3MubW92ZShuKyIgIi5yZXBlYXQoby1uLmxlbmd0aCkpLHMuc2hpZnQobyk7bGV0IGw9ci5lbnRlcigibGlzdEl0ZW0iKSxjPXIuaW5kZW50TGluZXMoci5jb250YWluZXJGbG93KGUscy5jdXJyZW50KCkpLHUpO3JldHVybiBsKCksYztmdW5jdGlvbiB1KGQsaCxmKXtyZXR1cm4gaD8oZj8iIjoiICIucmVwZWF0KG8pKStkOihmP246bisiICIucmVwZWF0KG8tbi5sZW5ndGgpKStkfX12YXIgR2tlPXAoKCk9Pnt5TSgpO1VrZSgpfSk7ZnVuY3Rpb24gWWtlKGUsdCxyLGkpe2xldCBhPXIuZW50ZXIoInBhcmFncmFwaCIpLG49ci5lbnRlcigicGhyYXNpbmciKSxvPXIuY29udGFpbmVyUGhyYXNpbmcoZSxpKTtyZXR1cm4gbigpLGEoKSxvfXZhciBaa2U9cCgoKT0+e30pO3ZhciBfVixYa2U9cCgoKT0+e2RNKCk7X1Y9QWwoWyJicmVhayIsImRlbGV0ZSIsImVtcGhhc2lzIiwiZm9vdG5vdGUiLCJmb290bm90ZVJlZmVyZW5jZSIsImltYWdlIiwiaW1hZ2VSZWZlcmVuY2UiLCJpbmxpbmVDb2RlIiwiaW5saW5lTWF0aCIsImxpbmsiLCJsaW5rUmVmZXJlbmNlIiwibWR4SnN4VGV4dEVsZW1lbnQiLCJtZHhUZXh0RXhwcmVzc2lvbiIsInN0cm9uZyIsInRleHQiLCJ0ZXh0RGlyZWN0aXZlIl0pfSk7dmFyIFFrZT1wKCgpPT57WGtlKCl9KTtmdW5jdGlvbiBKa2UoZSx0LHIsaSl7cmV0dXJuKGUuY2hpbGRyZW4uc29tZShmdW5jdGlvbihvKXtyZXR1cm4gX1Yobyl9KT9yLmNvbnRhaW5lclBocmFzaW5nOnIuY29udGFpbmVyRmxvdykuY2FsbChyLGUsaSl9dmFyIEtrZT1wKCgpPT57UWtlKCl9KTtmdW5jdGlvbiBlU2UoZSl7bGV0IHQ9ZS5vcHRpb25zLnN0cm9uZ3x8IioiO2lmKHQhPT0iKiImJnQhPT0iXyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHN0cm9uZyB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLnN0cm9uZ2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIHR9dmFyIHRTZT1wKCgpPT57fSk7ZnVuY3Rpb24gTFYoZSx0LHIsaSl7bGV0IGE9ZVNlKHIpLG49ci5lbnRlcigic3Ryb25nIiksbz1yLmNyZWF0ZVRyYWNrZXIoaSkscz1vLm1vdmUoYSthKSxsPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKGUse2FmdGVyOmEsYmVmb3JlOnMsLi4uby5jdXJyZW50KCl9KSksYz1sLmNoYXJDb2RlQXQoMCksdT1NdShpLmJlZm9yZS5jaGFyQ29kZUF0KGkuYmVmb3JlLmxlbmd0aC0xKSxjLGEpO3UuaW5zaWRlJiYobD1ObihjKStsLnNsaWNlKDEpKTtsZXQgZD1sLmNoYXJDb2RlQXQobC5sZW5ndGgtMSksaD1NdShpLmFmdGVyLmNoYXJDb2RlQXQoMCksZCxhKTtoLmluc2lkZSYmKGw9bC5zbGljZSgwLC0xKStObihkKSk7bGV0IGY9by5tb3ZlKGErYSk7cmV0dXJuIG4oKSxyLmF0dGVudGlvbkVuY29kZVN1cnJvdW5kaW5nSW5mbz17YWZ0ZXI6aC5vdXRzaWRlLGJlZm9yZTp1Lm91dHNpZGV9LHMrbCtmfWZ1bmN0aW9uIER3cihlLHQscil7cmV0dXJuIHIub3B0aW9ucy5zdHJvbmd8fCIqIn12YXIgclNlPXAoKCk9Pnt0U2UoKTt3dSgpO2dWKCk7TFYucGVlaz1Ed3J9KTtmdW5jdGlvbiBpU2UoZSx0LHIsaSl7cmV0dXJuIHIuc2FmZShlLnZhbHVlLGkpfXZhciBhU2U9cCgoKT0+e30pO2Z1bmN0aW9uIG5TZShlKXtsZXQgdD1lLm9wdGlvbnMucnVsZVJlcGV0aXRpb258fDM7aWYodDwzKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIHJlcGV0aXRpb24gYCIrdCsiYCBmb3IgYG9wdGlvbnMucnVsZVJlcGV0aXRpb25gLCBleHBlY3RlZCBgM2Agb3IgbW9yZSIpO3JldHVybiB0fXZhciBvU2U9cCgoKT0+e30pO2Z1bmN0aW9uIHNTZShlLHQscil7bGV0IGk9KHdNKHIpKyhyLm9wdGlvbnMucnVsZVNwYWNlcz8iICI6IiIpKS5yZXBlYXQoblNlKHIpKTtyZXR1cm4gci5vcHRpb25zLnJ1bGVTcGFjZXM/aS5zbGljZSgwLC0xKTppfXZhciBsU2U9cCgoKT0+e29TZSgpO1RWKCl9KTt2YXIgRzMsQVY9cCgoKT0+e3VrZSgpO2hrZSgpO3hrZSgpO3drZSgpO1NrZSgpO0FrZSgpO0RrZSgpO0VrZSgpOyRrZSgpO0lrZSgpO05rZSgpO0ZrZSgpO2prZSgpO0drZSgpO1prZSgpO0trZSgpO3JTZSgpO2FTZSgpO2xTZSgpO0czPXtibG9ja3F1b3RlOmRrZSxicmVhazpmVixjb2RlOnZrZSxkZWZpbml0aW9uOnlrZSxlbXBoYXNpczpiVixoYXJkQnJlYWs6ZlYsaGVhZGluZzpMa2UsaHRtbDp5VixpbWFnZTp3VixpbWFnZVJlZmVyZW5jZTpNVixpbmxpbmVDb2RlOmtWLGxpbms6elYsbGlua1JlZmVyZW5jZTpDVixsaXN0OnFrZSxsaXN0SXRlbTpXa2UscGFyYWdyYXBoOllrZSxyb290OkprZSxzdHJvbmc6TFYsdGV4dDppU2UsdGhlbWF0aWNCcmVhazpzU2V9fSk7ZnVuY3Rpb24gRXdyKGUsdCxyLGkpe2lmKHQudHlwZT09PSJjb2RlIiYmbTcodCxpKSYmKGUudHlwZT09PSJsaXN0Inx8ZS50eXBlPT09dC50eXBlJiZtNyhlLGkpKSlyZXR1cm4hMTtpZigic3ByZWFkImluIHImJnR5cGVvZiByLnNwcmVhZD09ImJvb2xlYW4iKXJldHVybiBlLnR5cGU9PT0icGFyYWdyYXBoIiYmKGUudHlwZT09PXQudHlwZXx8dC50eXBlPT09ImRlZmluaXRpb24ifHx0LnR5cGU9PT0iaGVhZGluZyImJnhNKHQsaSkpP3ZvaWQgMDpyLnNwcmVhZD8xOjB9dmFyIGNTZSxkU2U9cCgoKT0+e21WKCk7eFYoKTtjU2U9W0V3cl19KTt2YXIgWTMsdVNlLHBTZT1wKCgpPT57WTM9WyJhdXRvbGluayIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlc3RpbmF0aW9uUmF3IiwicmVmZXJlbmNlIiwidGl0bGVRdW90ZSIsInRpdGxlQXBvc3Ryb3BoZSJdLHVTZT1be2NoYXJhY3RlcjoiCSIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIJIixiZWZvcmU6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIJIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIl19LHtjaGFyYWN0ZXI6IlxyIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhVGlsZGUiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJoZWFkaW5nQXR4Il19LHtjaGFyYWN0ZXI6YApgLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFUaWxkZSIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImhlYWRpbmdBdHgiXX0se2NoYXJhY3RlcjoiICIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIgIixiZWZvcmU6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIgIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIl19LHtjaGFyYWN0ZXI6IiEiLGFmdGVyOiJcXFsiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6WTN9LHtjaGFyYWN0ZXI6JyInLGluQ29uc3RydWN0OiJ0aXRsZVF1b3RlIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIjIn0se2NoYXJhY3RlcjoiIyIsaW5Db25zdHJ1Y3Q6ImhlYWRpbmdBdHgiLGFmdGVyOmAoPzpbXHIKXXwkKWB9LHtjaGFyYWN0ZXI6IiYiLGFmdGVyOiJbI0EtWmEtel0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiciLGluQ29uc3RydWN0OiJ0aXRsZUFwb3N0cm9waGUifSx7Y2hhcmFjdGVyOiIoIixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25SYXcifSx7YmVmb3JlOiJcXF0iLGNoYXJhY3RlcjoiKCIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpZM30se2F0QnJlYWs6ITAsYmVmb3JlOiJcXGQrIixjaGFyYWN0ZXI6IikifSx7Y2hhcmFjdGVyOiIpIixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25SYXcifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IioiLGFmdGVyOmAoPzpbIAlccgoqXSlgfSx7Y2hhcmFjdGVyOiIqIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OlkzfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IisiLGFmdGVyOmAoPzpbIAlccgpdKWB9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6YCg/OlsgCVxyCi1dKWB9LHthdEJyZWFrOiEwLGJlZm9yZToiXFxkKyIsY2hhcmFjdGVyOiIuIixhZnRlcjpgKD86WyAJXHIKXXwkKWB9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPCIsYWZ0ZXI6IlshLz9BLVphLXpdIn0se2NoYXJhY3RlcjoiPCIsYWZ0ZXI6IlshLz9BLVphLXpdIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OlkzfSx7Y2hhcmFjdGVyOiI8IixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25MaXRlcmFsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI9In0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI+In0se2NoYXJhY3RlcjoiPiIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uTGl0ZXJhbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiWyJ9LHtjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6WTN9LHtjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OlsibGFiZWwiLCJyZWZlcmVuY2UiXX0se2NoYXJhY3RlcjoiXFwiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiXSIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInJlZmVyZW5jZSJdfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Il8ifSx7Y2hhcmFjdGVyOiJfIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OlkzfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6ImAifSx7Y2hhcmFjdGVyOiJgIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50Il19LHtjaGFyYWN0ZXI6ImAiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6WTN9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoifiJ9XX0pO2Z1bmN0aW9uIHcwKGUpe2xldCB0PSImIitlKyI7IjtoU2UuaW5uZXJIVE1MPXQ7bGV0IHI9aFNlLnRleHRDb250ZW50O3JldHVybiByLmNoYXJDb2RlQXQoci5sZW5ndGgtMSk9PT01OSYmZSE9PSJzZW1pInx8cj09PXQ/ITE6cn12YXIgaFNlLGI3PXAoKCk9PntoU2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpfSk7ZnVuY3Rpb24gU3UoZSx0KXtsZXQgcj1OdW1iZXIucGFyc2VJbnQoZSx0KTtyZXR1cm4gcjw5fHxyPT09MTF8fHI+MTMmJnI8MzJ8fHI+MTI2JiZyPDE2MHx8cj41NTI5NSYmcjw1NzM0NHx8cj42NDk3NSYmcjw2NTAwOHx8KHImNjU1MzUpPT09NjU1MzV8fChyJjY1NTM1KT09PTY1NTM0fHxyPjExMTQxMTE/Ilx1RkZGRCI6U3RyaW5nLmZyb21Db2RlUG9pbnQocil9dmFyIE1NPXAoKCk9Pnt9KTtmdW5jdGlvbiBrTShlKXtyZXR1cm4gZS5yZXBsYWNlKCR3cixJd3IpfWZ1bmN0aW9uIEl3cihlLHQscil7aWYodClyZXR1cm4gdDtpZihyLmNoYXJDb2RlQXQoMCk9PT0zNSl7bGV0IGE9ci5jaGFyQ29kZUF0KDEpLG49YT09PTEyMHx8YT09PTg4O3JldHVybiBTdShyLnNsaWNlKG4/MjoxKSxuPzE2OjEwKX1yZXR1cm4gdzAocil8fGV9dmFyICR3cixEVj1wKCgpPT57YjcoKTtNTSgpOyR3cj0vXFwoWyEtLzotQFstYHstfl0pfCYoIyg/OlxkezEsN318eFtcZGEtZl17MSw2fSl8W1xkYS16XXsxLDMxfSk7L2dpfSk7ZnVuY3Rpb24gZlNlKGUpe3JldHVybiBlLmxhYmVsfHwhZS5pZGVudGlmaWVyP2UubGFiZWx8fCIiOmtNKGUuaWRlbnRpZmllcil9dmFyIG1TZT1wKCgpPT57RFYoKX0pO2Z1bmN0aW9uIGdTZShlKXtpZighZS5fY29tcGlsZWQpe2xldCB0PShlLmF0QnJlYWs/IltcXHJcXG5dW1xcdCBdKiI6IiIpKyhlLmJlZm9yZT8iKD86IitlLmJlZm9yZSsiKSI6IiIpO2UuX2NvbXBpbGVkPW5ldyBSZWdFeHAoKHQ/IigiK3QrIikiOiIiKSsoL1t8XFx7fSgpW1xdXiQrKj8uLV0vLnRlc3QoZS5jaGFyYWN0ZXIpPyJcXCI6IiIpK2UuY2hhcmFjdGVyKyhlLmFmdGVyPyIoPzoiK2UuYWZ0ZXIrIikiOiIiKSwiZyIpfXJldHVybiBlLl9jb21waWxlZH12YXIgYlNlPXAoKCk9Pnt9KTtmdW5jdGlvbiB2U2UoZSx0LHIpe2xldCBpPXQuaW5kZXhTdGFjayxhPWUuY2hpbGRyZW58fFtdLG49W10sbz0tMSxzPXIuYmVmb3JlLGw7aS5wdXNoKC0xKTtsZXQgYz10LmNyZWF0ZVRyYWNrZXIocik7Zm9yKDsrK288YS5sZW5ndGg7KXtsZXQgdT1hW29dLGQ7aWYoaVtpLmxlbmd0aC0xXT1vLG8rMTxhLmxlbmd0aCl7bGV0IHg9dC5oYW5kbGUuaGFuZGxlcnNbYVtvKzFdLnR5cGVdO3gmJngucGVlayYmKHg9eC5wZWVrKSxkPXg/eChhW28rMV0sZSx0LHtiZWZvcmU6IiIsYWZ0ZXI6IiIsLi4uYy5jdXJyZW50KCl9KS5jaGFyQXQoMCk6IiJ9ZWxzZSBkPXIuYWZ0ZXI7bi5sZW5ndGg+MCYmKHM9PT0iXHIifHxzPT09YApgKSYmdS50eXBlPT09Imh0bWwiJiYobltuLmxlbmd0aC0xXT1uW24ubGVuZ3RoLTFdLnJlcGxhY2UoLyhccj9cbnxccikkLywiICIpLHM9IiAiLGM9dC5jcmVhdGVUcmFja2VyKHIpLGMubW92ZShuLmpvaW4oIiIpKSk7bGV0IGg9dC5oYW5kbGUodSxlLHQsey4uLmMuY3VycmVudCgpLGFmdGVyOmQsYmVmb3JlOnN9KTtsJiZsPT09aC5zbGljZSgwLDEpJiYoaD1ObihsLmNoYXJDb2RlQXQoMCkpK2guc2xpY2UoMSkpO2xldCBmPXQuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvO3QuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXZvaWQgMCxsPXZvaWQgMCxmJiYobi5sZW5ndGg+MCYmZi5iZWZvcmUmJnM9PT1uW24ubGVuZ3RoLTFdLnNsaWNlKC0xKSYmKG5bbi5sZW5ndGgtMV09bltuLmxlbmd0aC0xXS5zbGljZSgwLC0xKStObihzLmNoYXJDb2RlQXQoMCkpKSxmLmFmdGVyJiYobD1kKSksYy5tb3ZlKGgpLG4ucHVzaChoKSxzPWguc2xpY2UoLTEpfXJldHVybiBpLnBvcCgpLG4uam9pbigiIil9dmFyIHhTZT1wKCgpPT57d3UoKX0pO2Z1bmN0aW9uIHlTZShlLHQscil7bGV0IGk9dC5pbmRleFN0YWNrLGE9ZS5jaGlsZHJlbnx8W10sbj10LmNyZWF0ZVRyYWNrZXIociksbz1bXSxzPS0xO2ZvcihpLnB1c2goLTEpOysrczxhLmxlbmd0aDspe2xldCBsPWFbc107aVtpLmxlbmd0aC0xXT1zLG8ucHVzaChuLm1vdmUodC5oYW5kbGUobCxlLHQse2JlZm9yZTpgCmAsYWZ0ZXI6YApgLC4uLm4uY3VycmVudCgpfSkpKSxsLnR5cGUhPT0ibGlzdCImJih0LmJ1bGxldExhc3RVc2VkPXZvaWQgMCksczxhLmxlbmd0aC0xJiZvLnB1c2gobi5tb3ZlKFB3cihsLGFbcysxXSxlLHQpKSl9cmV0dXJuIGkucG9wKCksby5qb2luKCIiKX1mdW5jdGlvbiBQd3IoZSx0LHIsaSl7bGV0IGE9aS5qb2luLmxlbmd0aDtmb3IoO2EtLTspe2xldCBuPWkuam9pblthXShlLHQscixpKTtpZihuPT09ITB8fG49PT0xKWJyZWFrO2lmKHR5cGVvZiBuPT0ibnVtYmVyIilyZXR1cm5gCmAucmVwZWF0KDErbik7aWYobj09PSExKXJldHVybmAKCjwhLS0tLT4KCmB9cmV0dXJuYAoKYH12YXIgd1NlPXAoKCk9Pnt9KTtmdW5jdGlvbiBNU2UoZSx0KXtsZXQgcj1bXSxpPTAsYT0wLG47Zm9yKDtuPU53ci5leGVjKGUpOylvKGUuc2xpY2UoaSxuLmluZGV4KSksci5wdXNoKG5bMF0pLGk9bi5pbmRleCtuWzBdLmxlbmd0aCxhKys7cmV0dXJuIG8oZS5zbGljZShpKSksci5qb2luKCIiKTtmdW5jdGlvbiBvKHMpe3IucHVzaCh0KHMsYSwhcykpfX12YXIgTndyLGtTZT1wKCgpPT57TndyPS9ccj9cbnxcci9nfSk7ZnVuY3Rpb24gelNlKGUsdCxyKXtsZXQgaT0oci5iZWZvcmV8fCIiKSsodHx8IiIpKyhyLmFmdGVyfHwiIiksYT1bXSxuPVtdLG89e30scz0tMTtmb3IoOysrczxlLnVuc2FmZS5sZW5ndGg7KXtsZXQgdT1lLnVuc2FmZVtzXTtpZighbU0oZS5zdGFjayx1KSljb250aW51ZTtsZXQgZD1lLmNvbXBpbGVQYXR0ZXJuKHUpLGg7Zm9yKDtoPWQuZXhlYyhpKTspe2xldCBmPSJiZWZvcmUiaW4gdXx8ISF1LmF0QnJlYWsseD0iYWZ0ZXIiaW4gdSx2PWguaW5kZXgrKGY/aFsxXS5sZW5ndGg6MCk7YS5pbmNsdWRlcyh2KT8ob1t2XS5iZWZvcmUmJiFmJiYob1t2XS5iZWZvcmU9ITEpLG9bdl0uYWZ0ZXImJiF4JiYob1t2XS5hZnRlcj0hMSkpOihhLnB1c2godiksb1t2XT17YmVmb3JlOmYsYWZ0ZXI6eH0pfX1hLnNvcnQoRndyKTtsZXQgbD1yLmJlZm9yZT9yLmJlZm9yZS5sZW5ndGg6MCxjPWkubGVuZ3RoLShyLmFmdGVyP3IuYWZ0ZXIubGVuZ3RoOjApO2ZvcihzPS0xOysrczxhLmxlbmd0aDspe2xldCB1PWFbc107dTxsfHx1Pj1jfHx1KzE8YyYmYVtzKzFdPT09dSsxJiZvW3VdLmFmdGVyJiYhb1t1KzFdLmJlZm9yZSYmIW9bdSsxXS5hZnRlcnx8YVtzLTFdPT09dS0xJiZvW3VdLmJlZm9yZSYmIW9bdS0xXS5iZWZvcmUmJiFvW3UtMV0uYWZ0ZXJ8fChsIT09dSYmbi5wdXNoKFNTZShpLnNsaWNlKGwsdSksIlxcIikpLGw9dSwvWyEtLzotQFstYHstfl0vLnRlc3QoaS5jaGFyQXQodSkpJiYoIXIuZW5jb2RlfHwhci5lbmNvZGUuaW5jbHVkZXMoaS5jaGFyQXQodSkpKT9uLnB1c2goIlxcIik6KG4ucHVzaChObihpLmNoYXJDb2RlQXQodSkpKSxsKyspKX1yZXR1cm4gbi5wdXNoKFNTZShpLnNsaWNlKGwsYyksci5hZnRlcikpLG4uam9pbigiIil9ZnVuY3Rpb24gRndyKGUsdCl7cmV0dXJuIGUtdH1mdW5jdGlvbiBTU2UoZSx0KXtsZXQgcj0vXFwoPz1bIS0vOi1AWy1gey1+XSkvZyxpPVtdLGE9W10sbj1lK3Qsbz0tMSxzPTAsbDtmb3IoO2w9ci5leGVjKG4pOylpLnB1c2gobC5pbmRleCk7Zm9yKDsrK288aS5sZW5ndGg7KXMhPT1pW29dJiZhLnB1c2goZS5zbGljZShzLGlbb10pKSxhLnB1c2goIlxcIikscz1pW29dO3JldHVybiBhLnB1c2goZS5zbGljZShzKSksYS5qb2luKCIiKX12YXIgQ1NlPXAoKCk9Pnt3dSgpO2hWKCl9KTtmdW5jdGlvbiBUU2UoZSl7bGV0IHQ9ZXx8e30scj10Lm5vd3x8e30saT10LmxpbmVTaGlmdHx8MCxhPXIubGluZXx8MSxuPXIuY29sdW1ufHwxO3JldHVybnttb3ZlOmwsY3VycmVudDpvLHNoaWZ0OnN9O2Z1bmN0aW9uIG8oKXtyZXR1cm57bm93OntsaW5lOmEsY29sdW1uOm59LGxpbmVTaGlmdDppfX1mdW5jdGlvbiBzKGMpe2krPWN9ZnVuY3Rpb24gbChjKXtsZXQgdT1jfHwiIixkPXUuc3BsaXQoL1xyP1xufFxyL2cpLGg9ZFtkLmxlbmd0aC0xXTtyZXR1cm4gYSs9ZC5sZW5ndGgtMSxuPWQubGVuZ3RoPT09MT9uK2gubGVuZ3RoOjEraC5sZW5ndGgraSx1fX12YXIgX1NlPXAoKCk9Pnt9KTtmdW5jdGlvbiBFVihlLHQpe2xldCByPXR8fHt9LGk9e2Fzc29jaWF0aW9uSWQ6ZlNlLGNvbnRhaW5lclBocmFzaW5nOkh3cixjb250YWluZXJGbG93OnF3cixjcmVhdGVUcmFja2VyOlRTZSxjb21waWxlUGF0dGVybjpnU2UsZW50ZXI6bixoYW5kbGVyczp7Li4uRzN9LGhhbmRsZTp2b2lkIDAsaW5kZW50TGluZXM6TVNlLGluZGV4U3RhY2s6W10sam9pbjpbLi4uY1NlXSxvcHRpb25zOnt9LHNhZmU6andyLHN0YWNrOltdLHVuc2FmZTpbLi4udVNlXX07cFYoaSxyKSxpLm9wdGlvbnMudGlnaHREZWZpbml0aW9ucyYmaS5qb2luLnB1c2goQndyKSxpLmhhbmRsZT1mTSgidHlwZSIse2ludmFsaWQ6T3dyLHVua25vd246UndyLGhhbmRsZXJzOmkuaGFuZGxlcnN9KTtsZXQgYT1pLmhhbmRsZShlLHZvaWQgMCxpLHtiZWZvcmU6YApgLGFmdGVyOmAKYCxub3c6e2xpbmU6MSxjb2x1bW46MX0sbGluZVNoaWZ0OjB9KTtyZXR1cm4gYSYmYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpIT09MTAmJmEuY2hhckNvZGVBdChhLmxlbmd0aC0xKSE9PTEzJiYoYSs9YApgKSxhO2Z1bmN0aW9uIG4obyl7cmV0dXJuIGkuc3RhY2sucHVzaChvKSxzO2Z1bmN0aW9uIHMoKXtpLnN0YWNrLnBvcCgpfX19ZnVuY3Rpb24gT3dyKGUpe3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGhhbmRsZSB2YWx1ZSBgIitlKyJgLCBleHBlY3RlZCBub2RlIil9ZnVuY3Rpb24gUndyKGUpe2xldCB0PWU7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHVua25vd24gbm9kZSBgIit0LnR5cGUrImAiKX1mdW5jdGlvbiBCd3IoZSx0KXtpZihlLnR5cGU9PT0iZGVmaW5pdGlvbiImJmUudHlwZT09PXQudHlwZSlyZXR1cm4gMH1mdW5jdGlvbiBId3IoZSx0KXtyZXR1cm4gdlNlKGUsdGhpcyx0KX1mdW5jdGlvbiBxd3IoZSx0KXtyZXR1cm4geVNlKGUsdGhpcyx0KX1mdW5jdGlvbiBqd3IoZSx0KXtyZXR1cm4gelNlKHRoaXMsZSx0KX12YXIgTFNlPXAoKCk9Pnt1VigpO2NrZSgpO0FWKCk7ZFNlKCk7cFNlKCk7bVNlKCk7YlNlKCk7eFNlKCk7d1NlKCk7a1NlKCk7Q1NlKCk7X1NlKCl9KTt2YXIgU009cCgoKT0+e0xTZSgpO0FWKCl9KTtmdW5jdGlvbiBJVigpe3JldHVybntlbnRlcjp7dGFibGU6VndyLHRhYmxlRGF0YTpBU2UsdGFibGVIZWFkZXI6QVNlLHRhYmxlUm93Old3cn0sZXhpdDp7Y29kZVRleHQ6R3dyLHRhYmxlOlV3cix0YWJsZURhdGE6JFYsdGFibGVIZWFkZXI6JFYsdGFibGVSb3c6JFZ9fX1mdW5jdGlvbiBWd3IoZSl7bGV0IHQ9ZS5fYWxpZ247dGhpcy5lbnRlcih7dHlwZToidGFibGUiLGFsaWduOnQubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByPT09Im5vbmUiP251bGw6cn0pLGNoaWxkcmVuOltdfSxlKSx0aGlzLmRhdGEuaW5UYWJsZT0hMH1mdW5jdGlvbiBVd3IoZSl7dGhpcy5leGl0KGUpLHRoaXMuZGF0YS5pblRhYmxlPXZvaWQgMH1mdW5jdGlvbiBXd3IoZSl7dGhpcy5lbnRlcih7dHlwZToidGFibGVSb3ciLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiAkVihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gQVNlKGUpe3RoaXMuZW50ZXIoe3R5cGU6InRhYmxlQ2VsbCIsY2hpbGRyZW46W119LGUpfWZ1bmN0aW9uIEd3cihlKXtsZXQgdD10aGlzLnJlc3VtZSgpO3RoaXMuZGF0YS5pblRhYmxlJiYodD10LnJlcGxhY2UoL1xcKFtcXHxdKS9nLFl3cikpO2xldCByPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIudmFsdWU9dCx0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gWXdyKGUsdCl7cmV0dXJuIHQ9PT0ifCI/dDplfWZ1bmN0aW9uIFBWKGUpe2xldCB0PWV8fHt9LHI9dC50YWJsZUNlbGxQYWRkaW5nLGk9dC50YWJsZVBpcGVBbGlnbixhPXQuc3RyaW5nTGVuZ3RoLG49cj8iICI6InwiO3JldHVybnt1bnNhZmU6W3tjaGFyYWN0ZXI6IlxyIixpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2NoYXJhY3RlcjpgCmAsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoifCIsYWZ0ZXI6IlsJIDotXSJ9LHtjaGFyYWN0ZXI6InwiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IjoiLGFmdGVyOiItIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjoiWzp8LV0ifV0saGFuZGxlcnM6e2lubGluZUNvZGU6aCx0YWJsZTpvLHRhYmxlQ2VsbDpsLHRhYmxlUm93OnN9fTtmdW5jdGlvbiBvKGYseCx2LGIpe3JldHVybiBjKHUoZix2LGIpLGYuYWxpZ24pfWZ1bmN0aW9uIHMoZix4LHYsYil7bGV0IHk9ZChmLHYsYiksdz1jKFt5XSk7cmV0dXJuIHcuc2xpY2UoMCx3LmluZGV4T2YoYApgKSl9ZnVuY3Rpb24gbChmLHgsdixiKXtsZXQgeT12LmVudGVyKCJ0YWJsZUNlbGwiKSx3PXYuZW50ZXIoInBocmFzaW5nIiksaz12LmNvbnRhaW5lclBocmFzaW5nKGYsey4uLmIsYmVmb3JlOm4sYWZ0ZXI6bn0pO3JldHVybiB3KCkseSgpLGt9ZnVuY3Rpb24gYyhmLHgpe3JldHVybiBua2UoZix7YWxpZ246eCxhbGlnbkRlbGltaXRlcnM6aSxwYWRkaW5nOnIsc3RyaW5nTGVuZ3RoOmF9KX1mdW5jdGlvbiB1KGYseCx2KXtsZXQgYj1mLmNoaWxkcmVuLHk9LTEsdz1bXSxrPXguZW50ZXIoInRhYmxlIik7Zm9yKDsrK3k8Yi5sZW5ndGg7KXdbeV09ZChiW3ldLHgsdik7cmV0dXJuIGsoKSx3fWZ1bmN0aW9uIGQoZix4LHYpe2xldCBiPWYuY2hpbGRyZW4seT0tMSx3PVtdLGs9eC5lbnRlcigidGFibGVSb3ciKTtmb3IoOysreTxiLmxlbmd0aDspd1t5XT1sKGJbeV0sZix4LHYpO3JldHVybiBrKCksd31mdW5jdGlvbiBoKGYseCx2KXtsZXQgYj1HMy5pbmxpbmVDb2RlKGYseCx2KTtyZXR1cm4gdi5zdGFjay5pbmNsdWRlcygidGFibGVDZWxsIikmJihiPWIucmVwbGFjZSgvXHwvZywiXFwkJiIpKSxifX12YXIgRFNlPXAoKCk9PntiMCgpO29rZSgpO1NNKCl9KTt2YXIgRVNlPXAoKCk9PntEU2UoKX0pO2Z1bmN0aW9uIE5WKCl7cmV0dXJue2V4aXQ6e3Rhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQ6JFNlLHRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZDokU2UscGFyYWdyYXBoOlp3cn19fWZ1bmN0aW9uIEZWKCl7cmV0dXJue3Vuc2FmZTpbe2F0QnJlYWs6ITAsY2hhcmFjdGVyOiItIixhZnRlcjoiWzp8LV0ifV0saGFuZGxlcnM6e2xpc3RJdGVtOlh3cn19fWZ1bmN0aW9uICRTZShlKXtsZXQgdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO3QudHlwZSx0LmNoZWNrZWQ9ZS50eXBlPT09InRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQifWZ1bmN0aW9uIFp3cihlKXtsZXQgdD10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTJdO2lmKHQmJnQudHlwZT09PSJsaXN0SXRlbSImJnR5cGVvZiB0LmNoZWNrZWQ9PSJib29sZWFuIil7bGV0IHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyLnR5cGU7bGV0IGk9ci5jaGlsZHJlblswXTtpZihpJiZpLnR5cGU9PT0idGV4dCIpe2xldCBhPXQuY2hpbGRyZW4sbj0tMSxvO2Zvcig7KytuPGEubGVuZ3RoOyl7bGV0IHM9YVtuXTtpZihzLnR5cGU9PT0icGFyYWdyYXBoIil7bz1zO2JyZWFrfX1vPT09ciYmKGkudmFsdWU9aS52YWx1ZS5zbGljZSgxKSxpLnZhbHVlLmxlbmd0aD09PTA/ci5jaGlsZHJlbi5zaGlmdCgpOnIucG9zaXRpb24mJmkucG9zaXRpb24mJnR5cGVvZiBpLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldD09Im51bWJlciImJihpLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbisrLGkucG9zaXRpb24uc3RhcnQub2Zmc2V0Kyssci5wb3NpdGlvbi5zdGFydD1PYmplY3QuYXNzaWduKHt9LGkucG9zaXRpb24uc3RhcnQpKSl9fXRoaXMuZXhpdChlKX1mdW5jdGlvbiBYd3IoZSx0LHIsaSl7bGV0IGE9ZS5jaGlsZHJlblswXSxuPXR5cGVvZiBlLmNoZWNrZWQ9PSJib29sZWFuIiYmYSYmYS50eXBlPT09InBhcmFncmFwaCIsbz0iWyIrKGUuY2hlY2tlZD8ieCI6IiAiKSsiXSAiLHM9ci5jcmVhdGVUcmFja2VyKGkpO24mJnMubW92ZShvKTtsZXQgbD1HMy5saXN0SXRlbShlLHQscix7Li4uaSwuLi5zLmN1cnJlbnQoKX0pO3JldHVybiBuJiYobD1sLnJlcGxhY2UoL14oPzpbKistXXxcZCtcLikoW1xyXG5dfCB7MSwzfSkvLGMpKSxsO2Z1bmN0aW9uIGModSl7cmV0dXJuIHUrb319dmFyIElTZT1wKCgpPT57YjAoKTtTTSgpfSk7dmFyIFBTZT1wKCgpPT57SVNlKCl9KTtmdW5jdGlvbiBPVigpe3JldHVybltuVigpLHNWKCksY1YoKSxJVigpLE5WKCldfWZ1bmN0aW9uIFJWKGUpe3JldHVybntleHRlbnNpb25zOltvVigpLGxWKGUpLGRWKCksUFYoZSksRlYoKV19fXZhciBOU2U9cCgoKT0+e1hNZSgpO2VrZSgpO2lrZSgpO0VTZSgpO1BTZSgpfSk7dmFyIEZTZT1wKCgpPT57TlNlKCl9KTtmdW5jdGlvbiBSMShlLHQscixpKXtsZXQgYT1lLmxlbmd0aCxuPTAsbztpZih0PDA/dD0tdD5hPzA6YSt0OnQ9dD5hP2E6dCxyPXI+MD9yOjAsaS5sZW5ndGg8MWU0KW89QXJyYXkuZnJvbShpKSxvLnVuc2hpZnQodCxyKSxlLnNwbGljZSguLi5vKTtlbHNlIGZvcihyJiZlLnNwbGljZSh0LHIpO248aS5sZW5ndGg7KW89aS5zbGljZShuLG4rMWU0KSxvLnVuc2hpZnQodCwwKSxlLnNwbGljZSguLi5vKSxuKz0xZTQsdCs9MWU0fWZ1bmN0aW9uIEsxKGUsdCl7cmV0dXJuIGUubGVuZ3RoPjA/KFIxKGUsZS5sZW5ndGgsMCx0KSxlKTp0fXZhciBwcz1wKCgpPT57fSk7ZnVuY3Rpb24gek0oZSl7bGV0IHQ9e30scj0tMTtmb3IoOysrcjxlLmxlbmd0aDspUXdyKHQsZVtyXSk7cmV0dXJuIHR9ZnVuY3Rpb24gUXdyKGUsdCl7bGV0IHI7Zm9yKHIgaW4gdCl7bGV0IGE9KEJWLmNhbGwoZSxyKT9lW3JdOnZvaWQgMCl8fChlW3JdPXt9KSxuPXRbcl0sbztpZihuKWZvcihvIGluIG4pe0JWLmNhbGwoYSxvKXx8KGFbb109W10pO2xldCBzPW5bb107SndyKGFbb10sQXJyYXkuaXNBcnJheShzKT9zOnM/W3NdOltdKX19fWZ1bmN0aW9uIEp3cihlLHQpe2xldCByPS0xLGk9W107Zm9yKDsrK3I8dC5sZW5ndGg7KSh0W3JdLmFkZD09PSJhZnRlciI/ZTppKS5wdXNoKHRbcl0pO1IxKGUsMCwwLGkpfWZ1bmN0aW9uIENNKGUpe2xldCB0PXt9LHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KUt3cih0LGVbcl0pO3JldHVybiB0fWZ1bmN0aW9uIEt3cihlLHQpe2xldCByO2ZvcihyIGluIHQpe2xldCBhPShCVi5jYWxsKGUscik/ZVtyXTp2b2lkIDApfHwoZVtyXT17fSksbj10W3JdLG87aWYobilmb3IobyBpbiBuKWFbb109bltvXX19dmFyIEJWLFRNPXAoKCk9PntwcygpO0JWPXt9Lmhhc093blByb3BlcnR5fSk7ZnVuY3Rpb24galYoKXtyZXR1cm57dGV4dDpoc319ZnVuY3Rpb24gck1yKGUsdCxyKXtsZXQgaT10aGlzLGEsbjtyZXR1cm4gbztmdW5jdGlvbiBvKGQpe3JldHVybiFIVihkKXx8IVVTZS5jYWxsKGksaS5wcmV2aW91cyl8fHFWKGkuZXZlbnRzKT9yKGQpOihlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSxlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpLHMoZCkpfWZ1bmN0aW9uIHMoZCl7cmV0dXJuIEhWKGQpPyhlLmNvbnN1bWUoZCkscyk6ZD09PTY0PyhlLmNvbnN1bWUoZCksbCk6cihkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09NDY/ZS5jaGVjayh0TXIsdSxjKShkKTpkPT09NDV8fGQ9PT05NXx8XzEoZCk/KG49ITAsZS5jb25zdW1lKGQpLGwpOnUoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gZS5jb25zdW1lKGQpLGE9ITAsbH1mdW5jdGlvbiB1KGQpe3JldHVybiBuJiZhJiZwaShpLnByZXZpb3VzKT8oZS5leGl0KCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpLGUuZXhpdCgibGl0ZXJhbEF1dG9saW5rIiksdChkKSk6cihkKX19ZnVuY3Rpb24gaU1yKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIG8hPT04NyYmbyE9PTExOXx8IWpTZS5jYWxsKGksaS5wcmV2aW91cyl8fHFWKGkuZXZlbnRzKT9yKG8pOihlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSxlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmtXd3ciKSxlLmNoZWNrKGVNcixlLmF0dGVtcHQoT1NlLGUuYXR0ZW1wdChSU2UsbikscikscikobykpfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGUuZXhpdCgibGl0ZXJhbEF1dG9saW5rV3d3IiksZS5leGl0KCJsaXRlcmFsQXV0b2xpbmsiKSx0KG8pfX1mdW5jdGlvbiBhTXIoZSx0LHIpe2xldCBpPXRoaXMsYT0iIixuPSExO3JldHVybiBvO2Z1bmN0aW9uIG8oZCl7cmV0dXJuKGQ9PT03Mnx8ZD09PTEwNCkmJlZTZS5jYWxsKGksaS5wcmV2aW91cykmJiFxVihpLmV2ZW50cyk/KGUuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLGUuZW50ZXIoImxpdGVyYWxBdXRvbGlua0h0dHAiKSxhKz1TdHJpbmcuZnJvbUNvZGVQb2ludChkKSxlLmNvbnN1bWUoZCkscyk6cihkKX1mdW5jdGlvbiBzKGQpe2lmKHBpKGQpJiZhLmxlbmd0aDw1KXJldHVybiBhKz1TdHJpbmcuZnJvbUNvZGVQb2ludChkKSxlLmNvbnN1bWUoZCkscztpZihkPT09NTgpe2xldCBoPWEudG9Mb3dlckNhc2UoKTtpZihoPT09Imh0dHAifHxoPT09Imh0dHBzIilyZXR1cm4gZS5jb25zdW1lKGQpLGx9cmV0dXJuIHIoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PTQ3PyhlLmNvbnN1bWUoZCksbj9jOihuPSEwLGwpKTpyKGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGQ9PT1udWxsfHxqMyhkKXx8WnQoZCl8fHVzKGQpfHxWMyhkKT9yKGQpOmUuYXR0ZW1wdChPU2UsZS5hdHRlbXB0KFJTZSx1KSxyKShkKX1mdW5jdGlvbiB1KGQpe3JldHVybiBlLmV4aXQoImxpdGVyYWxBdXRvbGlua0h0dHAiKSxlLmV4aXQoImxpdGVyYWxBdXRvbGluayIpLHQoZCl9fWZ1bmN0aW9uIG5NcihlLHQscil7bGV0IGk9MDtyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybihvPT09ODd8fG89PT0xMTkpJiZpPDM/KGkrKyxlLmNvbnN1bWUobyksYSk6bz09PTQ2JiZpPT09Mz8oZS5jb25zdW1lKG8pLG4pOnIobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PW51bGw/cihvKTp0KG8pfX1mdW5jdGlvbiBvTXIoZSx0LHIpe2xldCBpLGEsbjtyZXR1cm4gbztmdW5jdGlvbiBvKGMpe3JldHVybiBjPT09NDZ8fGM9PT05NT9lLmNoZWNrKEJTZSxsLHMpKGMpOmM9PT1udWxsfHxadChjKXx8dXMoYyl8fGMhPT00NSYmVjMoYyk/bChjKToobj0hMCxlLmNvbnN1bWUoYyksbyl9ZnVuY3Rpb24gcyhjKXtyZXR1cm4gYz09PTk1P2k9ITA6KGE9aSxpPXZvaWQgMCksZS5jb25zdW1lKGMpLG99ZnVuY3Rpb24gbChjKXtyZXR1cm4gYXx8aXx8IW4/cihjKTp0KGMpfX1mdW5jdGlvbiBzTXIoZSx0KXtsZXQgcj0wLGk9MDtyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBvPT09NDA/KHIrKyxlLmNvbnN1bWUobyksYSk6bz09PTQxJiZpPHI/bihvKTpvPT09MzN8fG89PT0zNHx8bz09PTM4fHxvPT09Mzl8fG89PT00MXx8bz09PTQyfHxvPT09NDR8fG89PT00Nnx8bz09PTU4fHxvPT09NTl8fG89PT02MHx8bz09PTYzfHxvPT09OTN8fG89PT05NXx8bz09PTEyNj9lLmNoZWNrKEJTZSx0LG4pKG8pOm89PT1udWxsfHxadChvKXx8dXMobyk/dChvKTooZS5jb25zdW1lKG8pLGEpfWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT00MSYmaSsrLGUuY29uc3VtZShvKSxhfX1mdW5jdGlvbiBsTXIoZSx0LHIpe3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIHM9PT0zM3x8cz09PTM0fHxzPT09Mzl8fHM9PT00MXx8cz09PTQyfHxzPT09NDR8fHM9PT00Nnx8cz09PTU4fHxzPT09NTl8fHM9PT02M3x8cz09PTk1fHxzPT09MTI2PyhlLmNvbnN1bWUocyksaSk6cz09PTM4PyhlLmNvbnN1bWUocyksbik6cz09PTkzPyhlLmNvbnN1bWUocyksYSk6cz09PTYwfHxzPT09bnVsbHx8WnQocyl8fHVzKHMpP3Qocyk6cihzKX1mdW5jdGlvbiBhKHMpe3JldHVybiBzPT09bnVsbHx8cz09PTQwfHxzPT09OTF8fFp0KHMpfHx1cyhzKT90KHMpOmkocyl9ZnVuY3Rpb24gbihzKXtyZXR1cm4gcGkocyk/byhzKTpyKHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIHM9PT01OT8oZS5jb25zdW1lKHMpLGkpOnBpKHMpPyhlLmNvbnN1bWUocyksbyk6cihzKX19ZnVuY3Rpb24gY01yKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmNvbnN1bWUobiksYX1mdW5jdGlvbiBhKG4pe3JldHVybiBfMShuKT9yKG4pOnQobil9fWZ1bmN0aW9uIGpTZShlKXtyZXR1cm4gZT09PW51bGx8fGU9PT00MHx8ZT09PTQyfHxlPT09OTV8fGU9PT05MXx8ZT09PTkzfHxlPT09MTI2fHxadChlKX1mdW5jdGlvbiBWU2UoZSl7cmV0dXJuIXBpKGUpfWZ1bmN0aW9uIFVTZShlKXtyZXR1cm4hKGU9PT00N3x8SFYoZSkpfWZ1bmN0aW9uIEhWKGUpe3JldHVybiBlPT09NDN8fGU9PT00NXx8ZT09PTQ2fHxlPT09OTV8fF8xKGUpfWZ1bmN0aW9uIHFWKGUpe2xldCB0PWUubGVuZ3RoLHI9ITE7Zm9yKDt0LS07KXtsZXQgaT1lW3RdWzFdO2lmKChpLnR5cGU9PT0ibGFiZWxMaW5rInx8aS50eXBlPT09ImxhYmVsSW1hZ2UiKSYmIWkuX2JhbGFuY2VkKXtyPSEwO2JyZWFrfWlmKGkuX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG8pe3I9ITE7YnJlYWt9fXJldHVybiBlLmxlbmd0aD4wJiYhciYmKGVbZS5sZW5ndGgtMV1bMV0uX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG89ITApLHJ9dmFyIGVNcixPU2UsUlNlLEJTZSx0TXIsSFNlLHFTZSxFbCxocyxXU2U9cCgoKT0+e3RyKCk7ZU1yPXt0b2tlbml6ZTpuTXIscGFydGlhbDohMH0sT1NlPXt0b2tlbml6ZTpvTXIscGFydGlhbDohMH0sUlNlPXt0b2tlbml6ZTpzTXIscGFydGlhbDohMH0sQlNlPXt0b2tlbml6ZTpsTXIscGFydGlhbDohMH0sdE1yPXt0b2tlbml6ZTpjTXIscGFydGlhbDohMH0sSFNlPXtuYW1lOiJ3d3dBdXRvbGluayIsdG9rZW5pemU6aU1yLHByZXZpb3VzOmpTZX0scVNlPXtuYW1lOiJwcm90b2NvbEF1dG9saW5rIix0b2tlbml6ZTphTXIscHJldmlvdXM6VlNlfSxFbD17bmFtZToiZW1haWxBdXRvbGluayIsdG9rZW5pemU6ck1yLHByZXZpb3VzOlVTZX0saHM9e307Zm9yKHZhciBaMz00ODtaMzwxMjM7KWhzW1ozXT1FbCxaMysrLFozPT09NTg/WjM9NjU6WjM9PT05MSYmKFozPTk3KTtoc1s0M109RWwsaHNbNDVdPUVsLGhzWzQ2XT1FbCxoc1s5NV09RWwsaHNbNzJdPVtFbCxxU2VdLGhzWzEwNF09W0VsLHFTZV0saHNbODddPVtFbCxIU2VdLGhzWzExOV09W0VsLEhTZV19KTtmdW5jdGlvbiBfTShlKXtyZXR1cm4gZS5yZXBsYWNlKC9bIiY8Pl0vZyx0KTtmdW5jdGlvbiB0KHIpe3JldHVybiImIitkTXJbcl0rIjsifX12YXIgZE1yLFZWPXAoKCk9PntkTXI9eyciJzoicXVvdCIsIiYiOiJhbXAiLCI8IjoibHQiLCI+IjoiZ3QifX0pO2Z1bmN0aW9uIGZzKGUsdCl7bGV0IHI9X00oRm4oZXx8IiIpKTtpZighdClyZXR1cm4gcjtsZXQgaT1yLmluZGV4T2YoIjoiKSxhPXIuaW5kZXhPZigiPyIpLG49ci5pbmRleE9mKCIjIiksbz1yLmluZGV4T2YoIi8iKTtyZXR1cm4gaTwwfHxvPi0xJiZpPm98fGE+LTEmJmk+YXx8bj4tMSYmaT5ufHx0LnRlc3Qoci5zbGljZSgwLGkpKT9yOiIifWZ1bmN0aW9uIEZuKGUpe2xldCB0PVtdLHI9LTEsaT0wLGE9MDtmb3IoOysrcjxlLmxlbmd0aDspe2xldCBuPWUuY2hhckNvZGVBdChyKSxvPSIiO2lmKG49PT0zNyYmXzEoZS5jaGFyQ29kZUF0KHIrMSkpJiZfMShlLmNoYXJDb2RlQXQocisyKSkpYT0yO2Vsc2UgaWYobjwxMjgpL1shIyQmLTs9Py1aX2Eten5dLy50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUobikpfHwobz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pKTtlbHNlIGlmKG4+NTUyOTUmJm48NTczNDQpe2xldCBzPWUuY2hhckNvZGVBdChyKzEpO248NTYzMjAmJnM+NTYzMTkmJnM8NTczNDQ/KG89U3RyaW5nLmZyb21DaGFyQ29kZShuLHMpLGE9MSk6bz0iXHVGRkZEIn1lbHNlIG89U3RyaW5nLmZyb21DaGFyQ29kZShuKTtvJiYodC5wdXNoKGUuc2xpY2UoaSxyKSxlbmNvZGVVUklDb21wb25lbnQobykpLGk9cithKzEsbz0iIiksYSYmKHIrPWEsYT0wKX1yZXR1cm4gdC5qb2luKCIiKStlLnNsaWNlKGkpfXZhciBtcz1wKCgpPT57dHIoKTtWVigpfSk7ZnVuY3Rpb24gV1YoKXtyZXR1cm57ZXhpdDp7bGl0ZXJhbEF1dG9saW5rRW1haWw6cE1yLGxpdGVyYWxBdXRvbGlua0h0dHA6aE1yLGxpdGVyYWxBdXRvbGlua1d3dzp1TXJ9fX1mdW5jdGlvbiB1TXIoZSl7VVYuY2FsbCh0aGlzLGUsImh0dHA6Ly8iKX1mdW5jdGlvbiBwTXIoZSl7VVYuY2FsbCh0aGlzLGUsIm1haWx0bzoiKX1mdW5jdGlvbiBoTXIoZSl7VVYuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIFVWKGUsdCl7bGV0IHI9dGhpcy5zbGljZVNlcmlhbGl6ZShlKTt0aGlzLnRhZygnPGEgaHJlZj0iJytmcygodHx8IiIpK3IpKyciPicpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHIpKSx0aGlzLnRhZygiPC9hPiIpfXZhciBHU2U9cCgoKT0+e21zKCl9KTt2YXIgWVNlPXAoKCk9PntXU2UoKTtHU2UoKX0pO2Z1bmN0aW9uIE0wKGUsdCxyKXtsZXQgaT1bXSxhPS0xO2Zvcig7KythPGUubGVuZ3RoOyl7bGV0IG49ZVthXS5yZXNvbHZlQWxsO24mJiFpLmluY2x1ZGVzKG4pJiYodD1uKHQsciksaS5wdXNoKG4pKX1yZXR1cm4gdH12YXIgdjc9cCgoKT0+e30pO2Z1bmN0aW9uIGZNcihlLHQpe2xldCByPS0xLGksYSxuLG8scyxsLGMsdTtmb3IoOysrcjxlLmxlbmd0aDspaWYoZVtyXVswXT09PSJlbnRlciImJmVbcl1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJmVbcl1bMV0uX2Nsb3NlKXtmb3IoaT1yO2ktLTspaWYoZVtpXVswXT09PSJleGl0IiYmZVtpXVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmZVtpXVsxXS5fb3BlbiYmdC5zbGljZVNlcmlhbGl6ZShlW2ldWzFdKS5jaGFyQ29kZUF0KDApPT09dC5zbGljZVNlcmlhbGl6ZShlW3JdWzFdKS5jaGFyQ29kZUF0KDApKXtpZigoZVtpXVsxXS5fY2xvc2V8fGVbcl1bMV0uX29wZW4pJiYoZVtyXVsxXS5lbmQub2Zmc2V0LWVbcl1bMV0uc3RhcnQub2Zmc2V0KSUzJiYhKChlW2ldWzFdLmVuZC5vZmZzZXQtZVtpXVsxXS5zdGFydC5vZmZzZXQrZVtyXVsxXS5lbmQub2Zmc2V0LWVbcl1bMV0uc3RhcnQub2Zmc2V0KSUzKSljb250aW51ZTtsPWVbaV1bMV0uZW5kLm9mZnNldC1lW2ldWzFdLnN0YXJ0Lm9mZnNldD4xJiZlW3JdWzFdLmVuZC5vZmZzZXQtZVtyXVsxXS5zdGFydC5vZmZzZXQ+MT8yOjE7bGV0IGQ9ey4uLmVbaV1bMV0uZW5kfSxoPXsuLi5lW3JdWzFdLnN0YXJ0fTtaU2UoZCwtbCksWlNlKGgsbCksbz17dHlwZTpsPjE/InN0cm9uZ1NlcXVlbmNlIjoiZW1waGFzaXNTZXF1ZW5jZSIsc3RhcnQ6ZCxlbmQ6ey4uLmVbaV1bMV0uZW5kfX0scz17dHlwZTpsPjE/InN0cm9uZ1NlcXVlbmNlIjoiZW1waGFzaXNTZXF1ZW5jZSIsc3RhcnQ6ey4uLmVbcl1bMV0uc3RhcnR9LGVuZDpofSxuPXt0eXBlOmw+MT8ic3Ryb25nVGV4dCI6ImVtcGhhc2lzVGV4dCIsc3RhcnQ6ey4uLmVbaV1bMV0uZW5kfSxlbmQ6ey4uLmVbcl1bMV0uc3RhcnR9fSxhPXt0eXBlOmw+MT8ic3Ryb25nIjoiZW1waGFzaXMiLHN0YXJ0OnsuLi5vLnN0YXJ0fSxlbmQ6ey4uLnMuZW5kfX0sZVtpXVsxXS5lbmQ9ey4uLm8uc3RhcnR9LGVbcl1bMV0uc3RhcnQ9ey4uLnMuZW5kfSxjPVtdLGVbaV1bMV0uZW5kLm9mZnNldC1lW2ldWzFdLnN0YXJ0Lm9mZnNldCYmKGM9SzEoYyxbWyJlbnRlciIsZVtpXVsxXSx0XSxbImV4aXQiLGVbaV1bMV0sdF1dKSksYz1LMShjLFtbImVudGVyIixhLHRdLFsiZW50ZXIiLG8sdF0sWyJleGl0IixvLHRdLFsiZW50ZXIiLG4sdF1dKSxjPUsxKGMsTTAodC5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsZS5zbGljZShpKzEsciksdCkpLGM9SzEoYyxbWyJleGl0IixuLHRdLFsiZW50ZXIiLHMsdF0sWyJleGl0IixzLHRdLFsiZXhpdCIsYSx0XV0pLGVbcl1bMV0uZW5kLm9mZnNldC1lW3JdWzFdLnN0YXJ0Lm9mZnNldD8odT0yLGM9SzEoYyxbWyJlbnRlciIsZVtyXVsxXSx0XSxbImV4aXQiLGVbcl1bMV0sdF1dKSk6dT0wLFIxKGUsaS0xLHItaSszLGMpLHI9aStjLmxlbmd0aC11LTI7YnJlYWt9fWZvcihyPS0xOysrcjxlLmxlbmd0aDspZVtyXVsxXS50eXBlPT09ImF0dGVudGlvblNlcXVlbmNlIiYmKGVbcl1bMV0udHlwZT0iZGF0YSIpO3JldHVybiBlfWZ1bmN0aW9uIG1NcihlLHQpe2xldCByPXRoaXMucGFyc2VyLmNvbnN0cnVjdHMuYXR0ZW50aW9uTWFya2Vycy5udWxsLGk9dGhpcy5wcmV2aW91cyxhPURsKGkpLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhsKXtyZXR1cm4gbj1sLGUuZW50ZXIoImF0dGVudGlvblNlcXVlbmNlIikscyhsKX1mdW5jdGlvbiBzKGwpe2lmKGw9PT1uKXJldHVybiBlLmNvbnN1bWUobCkscztsZXQgYz1lLmV4aXQoImF0dGVudGlvblNlcXVlbmNlIiksdT1EbChsKSxkPSF1fHx1PT09MiYmYXx8ci5pbmNsdWRlcyhsKSxoPSFhfHxhPT09MiYmdXx8ci5pbmNsdWRlcyhpKTtyZXR1cm4gYy5fb3Blbj0hIShuPT09NDI/ZDpkJiYoYXx8IWgpKSxjLl9jbG9zZT0hIShuPT09NDI/aDpoJiYodXx8IWQpKSx0KGwpfX1mdW5jdGlvbiBaU2UoZSx0KXtlLmNvbHVtbis9dCxlLm9mZnNldCs9dCxlLl9idWZmZXJJbmRleCs9dH12YXIgeDcsWFNlPXAoKCk9PntwcygpO2JNKCk7djcoKTt4Nz17bmFtZToiYXR0ZW50aW9uIixyZXNvbHZlQWxsOmZNcix0b2tlbml6ZTptTXJ9fSk7ZnVuY3Rpb24gZ01yKGUsdCxyKXtsZXQgaT0wO3JldHVybiBhO2Z1bmN0aW9uIGEoZil7cmV0dXJuIGUuZW50ZXIoImF1dG9saW5rIiksZS5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJhdXRvbGlua01hcmtlciIpLGUuZW50ZXIoImF1dG9saW5rUHJvdG9jb2wiKSxufWZ1bmN0aW9uIG4oZil7cmV0dXJuIHBpKGYpPyhlLmNvbnN1bWUoZiksbyk6Zj09PTY0P3IoZik6YyhmKX1mdW5jdGlvbiBvKGYpe3JldHVybiBmPT09NDN8fGY9PT00NXx8Zj09PTQ2fHxfMShmKT8oaT0xLHMoZikpOmMoZil9ZnVuY3Rpb24gcyhmKXtyZXR1cm4gZj09PTU4PyhlLmNvbnN1bWUoZiksaT0wLGwpOihmPT09NDN8fGY9PT00NXx8Zj09PTQ2fHxfMShmKSkmJmkrKzwzMj8oZS5jb25zdW1lKGYpLHMpOihpPTAsYyhmKSl9ZnVuY3Rpb24gbChmKXtyZXR1cm4gZj09PTYyPyhlLmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKSxlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZShmKSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5leGl0KCJhdXRvbGluayIpLHQpOmY9PT1udWxsfHxmPT09MzJ8fGY9PT02MHx8ajMoZik/cihmKTooZS5jb25zdW1lKGYpLGwpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIGY9PT02ND8oZS5jb25zdW1lKGYpLHUpOkZNZShmKT8oZS5jb25zdW1lKGYpLGMpOnIoZil9ZnVuY3Rpb24gdShmKXtyZXR1cm4gXzEoZik/ZChmKTpyKGYpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGY9PT00Nj8oZS5jb25zdW1lKGYpLGk9MCx1KTpmPT09NjI/KGUuZXhpdCgiYXV0b2xpbmtQcm90b2NvbCIpLnR5cGU9ImF1dG9saW5rRW1haWwiLGUuZW50ZXIoImF1dG9saW5rTWFya2VyIiksZS5jb25zdW1lKGYpLGUuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSxlLmV4aXQoImF1dG9saW5rIiksdCk6aChmKX1mdW5jdGlvbiBoKGYpe2lmKChmPT09NDV8fF8xKGYpKSYmaSsrPDYzKXtsZXQgeD1mPT09NDU/aDpkO3JldHVybiBlLmNvbnN1bWUoZikseH1yZXR1cm4gcihmKX19dmFyIEdWLFFTZT1wKCgpPT57dHIoKTtHVj17bmFtZToiYXV0b2xpbmsiLHRva2VuaXplOmdNcn19KTtmdW5jdGlvbiBtdChlLHQscixpKXtsZXQgYT1pP2ktMTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbj0wO3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuIGx0KGwpPyhlLmVudGVyKHIpLHMobCkpOnQobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gbHQobCkmJm4rKzxhPyhlLmNvbnN1bWUobCkscyk6KGUuZXhpdChyKSx0KGwpKX19dmFyIEIxPXAoKCk9Pnt0cigpfSk7ZnVuY3Rpb24gYk1yKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBsdChuKT9tdChlLGEsImxpbmVQcmVmaXgiKShuKTphKG4pfWZ1bmN0aW9uIGEobil7cmV0dXJuIG49PT1udWxsfHxXZShuKT90KG4pOnIobil9fXZhciBncyxMTT1wKCgpPT57QjEoKTt0cigpO2dzPXtwYXJ0aWFsOiEwLHRva2VuaXplOmJNcn19KTtmdW5jdGlvbiB2TXIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtpZihvPT09NjIpe2xldCBzPWkuY29udGFpbmVyU3RhdGU7cmV0dXJuIHMub3Blbnx8KGUuZW50ZXIoImJsb2NrUXVvdGUiLHtfY29udGFpbmVyOiEwfSkscy5vcGVuPSEwKSxlLmVudGVyKCJibG9ja1F1b3RlUHJlZml4IiksZS5lbnRlcigiYmxvY2tRdW90ZU1hcmtlciIpLGUuY29uc3VtZShvKSxlLmV4aXQoImJsb2NrUXVvdGVNYXJrZXIiKSxufXJldHVybiByKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGx0KG8pPyhlLmVudGVyKCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLGUuY29uc3VtZShvKSxlLmV4aXQoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksZS5leGl0KCJibG9ja1F1b3RlUHJlZml4IiksdCk6KGUuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLHQobykpfX1mdW5jdGlvbiB4TXIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtyZXR1cm4gbHQobyk/bXQoZSxuLCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKG8pOm4obyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gZS5hdHRlbXB0KEFNLHQscikobyl9fWZ1bmN0aW9uIHlNcihlKXtlLmV4aXQoImJsb2NrUXVvdGUiKX12YXIgQU0sSlNlPXAoKCk9PntCMSgpO3RyKCk7QU09e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6eE1yfSxleGl0OnlNcixuYW1lOiJibG9ja1F1b3RlIix0b2tlbml6ZTp2TXJ9fSk7ZnVuY3Rpb24gd01yKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmVudGVyKCJjaGFyYWN0ZXJFc2NhcGUiKSxlLmVudGVyKCJlc2NhcGVNYXJrZXIiKSxlLmNvbnN1bWUobiksZS5leGl0KCJlc2NhcGVNYXJrZXIiKSxhfWZ1bmN0aW9uIGEobil7cmV0dXJuIFJNZShuKT8oZS5lbnRlcigiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxlLmNvbnN1bWUobiksZS5leGl0KCJjaGFyYWN0ZXJFc2NhcGVWYWx1ZSIpLGUuZXhpdCgiY2hhcmFjdGVyRXNjYXBlIiksdCk6cihuKX19dmFyIERNLEtTZT1wKCgpPT57dHIoKTtETT17bmFtZToiY2hhcmFjdGVyRXNjYXBlIix0b2tlbml6ZTp3TXJ9fSk7ZnVuY3Rpb24gTU1yKGUsdCxyKXtsZXQgaT10aGlzLGE9MCxuLG87cmV0dXJuIHM7ZnVuY3Rpb24gcyhkKXtyZXR1cm4gZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIiksZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksbH1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09MzU/KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksYyk6KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj0zMSxvPV8xLHUoZCkpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGQ9PT04OHx8ZD09PTEyMD8oZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj02LG89T01lLHUpOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NyxvPWg3LHUoZCkpfWZ1bmN0aW9uIHUoZCl7aWYoZD09PTU5JiZhKXtsZXQgaD1lLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIik7cmV0dXJuIG89PT1fMSYmIXcwKGkuc2xpY2VTZXJpYWxpemUoaCkpP3IoZCk6KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlIiksdCl9cmV0dXJuIG8oZCkmJmErKzxuPyhlLmNvbnN1bWUoZCksdSk6cihkKX19dmFyIEVNLGV6ZT1wKCgpPT57YjcoKTt0cigpO0VNPXtuYW1lOiJjaGFyYWN0ZXJSZWZlcmVuY2UiLHRva2VuaXplOk1Ncn19KTtmdW5jdGlvbiBrTXIoZSx0LHIpe2xldCBpPXRoaXMsYT17cGFydGlhbDohMCx0b2tlbml6ZTp6fSxuPTAsbz0wLHM7cmV0dXJuIGw7ZnVuY3Rpb24gbChNKXtyZXR1cm4gYyhNKX1mdW5jdGlvbiBjKE0pe2xldCBGPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbj1GJiZGWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/RlsyXS5zbGljZVNlcmlhbGl6ZShGWzFdLCEwKS5sZW5ndGg6MCxzPU0sZS5lbnRlcigiY29kZUZlbmNlZCIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksdShNKX1mdW5jdGlvbiB1KE0pe3JldHVybiBNPT09cz8obysrLGUuY29uc3VtZShNKSx1KTpvPDM/cihNKTooZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLGx0KE0pP210KGUsZCwid2hpdGVzcGFjZSIpKE0pOmQoTSkpfWZ1bmN0aW9uIGQoTSl7cmV0dXJuIE09PT1udWxsfHxXZShNKT8oZS5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSxpLmludGVycnVwdD90KE0pOmUuY2hlY2sodHplLHYsTykoTSkpOihlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGgoTSkpfWZ1bmN0aW9uIGgoTSl7cmV0dXJuIE09PT1udWxsfHxXZShNKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGQoTSkpOmx0KE0pPyhlLmV4aXQoImNodW5rU3RyaW5nIiksZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksbXQoZSxmLCJ3aGl0ZXNwYWNlIikoTSkpOk09PT05NiYmTT09PXM/cihNKTooZS5jb25zdW1lKE0pLGgpfWZ1bmN0aW9uIGYoTSl7cmV0dXJuIE09PT1udWxsfHxXZShNKT9kKE0pOihlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VNZXRhIiksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHgoTSkpfWZ1bmN0aW9uIHgoTSl7cmV0dXJuIE09PT1udWxsfHxXZShNKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlTWV0YSIpLGQoTSkpOk09PT05NiYmTT09PXM/cihNKTooZS5jb25zdW1lKE0pLHgpfWZ1bmN0aW9uIHYoTSl7cmV0dXJuIGUuYXR0ZW1wdChhLE8sYikoTSl9ZnVuY3Rpb24gYihNKXtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShNKSxlLmV4aXQoImxpbmVFbmRpbmciKSx5fWZ1bmN0aW9uIHkoTSl7cmV0dXJuIG4+MCYmbHQoTSk/bXQoZSx3LCJsaW5lUHJlZml4IixuKzEpKE0pOncoTSl9ZnVuY3Rpb24gdyhNKXtyZXR1cm4gTT09PW51bGx8fFdlKE0pP2UuY2hlY2sodHplLHYsTykoTSk6KGUuZW50ZXIoImNvZGVGbG93VmFsdWUiKSxrKE0pKX1mdW5jdGlvbiBrKE0pe3JldHVybiBNPT09bnVsbHx8V2UoTSk/KGUuZXhpdCgiY29kZUZsb3dWYWx1ZSIpLHcoTSkpOihlLmNvbnN1bWUoTSksayl9ZnVuY3Rpb24gTyhNKXtyZXR1cm4gZS5leGl0KCJjb2RlRmVuY2VkIiksdChNKX1mdW5jdGlvbiB6KE0sRixEKXtsZXQgTj0wO3JldHVybiBSO2Z1bmN0aW9uIFIoRSl7cmV0dXJuIE0uZW50ZXIoImxpbmVFbmRpbmciKSxNLmNvbnN1bWUoRSksTS5leGl0KCJsaW5lRW5kaW5nIiksX31mdW5jdGlvbiBfKEUpe3JldHVybiBNLmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSxsdChFKT9tdChNLFMsImxpbmVQcmVmaXgiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoRSk6UyhFKX1mdW5jdGlvbiBTKEUpe3JldHVybiBFPT09cz8oTS5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSwkKEUpKTpEKEUpfWZ1bmN0aW9uICQoRSl7cmV0dXJuIEU9PT1zPyhOKyssTS5jb25zdW1lKEUpLCQpOk4+PW8/KE0uZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxsdChFKT9tdChNLFQsIndoaXRlc3BhY2UiKShFKTpUKEUpKTpEKEUpfWZ1bmN0aW9uIFQoRSl7cmV0dXJuIEU9PT1udWxsfHxXZShFKT8oTS5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSxGKEUpKTpEKEUpfX19ZnVuY3Rpb24gU01yKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIG89PT1udWxsP3Iobyk6KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobyksZS5leGl0KCJsaW5lRW5kaW5nIiksbil9ZnVuY3Rpb24gbihvKXtyZXR1cm4gaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3Iobyk6dChvKX19dmFyIHR6ZSwkTSxyemU9cCgoKT0+e0IxKCk7dHIoKTt0emU9e3BhcnRpYWw6ITAsdG9rZW5pemU6U01yfSwkTT17Y29uY3JldGU6ITAsbmFtZToiY29kZUZlbmNlZCIsdG9rZW5pemU6a01yfX0pO2Z1bmN0aW9uIENNcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKGMpe3JldHVybiBlLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxtdChlLG4sImxpbmVQcmVmaXgiLDUpKGMpfWZ1bmN0aW9uIG4oYyl7bGV0IHU9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiB1JiZ1WzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnVbMl0uc2xpY2VTZXJpYWxpemUodVsxXSwhMCkubGVuZ3RoPj00P28oYyk6cihjKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjPT09bnVsbD9sKGMpOldlKGMpP2UuYXR0ZW1wdCh6TXIsbyxsKShjKTooZS5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLHMoYykpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1udWxsfHxXZShjKT8oZS5leGl0KCJjb2RlRmxvd1ZhbHVlIiksbyhjKSk6KGUuY29uc3VtZShjKSxzKX1mdW5jdGlvbiBsKGMpe3JldHVybiBlLmV4aXQoImNvZGVJbmRlbnRlZCIpLHQoYyl9fWZ1bmN0aW9uIFRNcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/cihvKTpXZShvKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShvKSxlLmV4aXQoImxpbmVFbmRpbmciKSxhKTptdChlLG4sImxpbmVQcmVmaXgiLDUpKG8pfWZ1bmN0aW9uIG4obyl7bGV0IHM9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBzJiZzWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnNbMl0uc2xpY2VTZXJpYWxpemUoc1sxXSwhMCkubGVuZ3RoPj00P3Qobyk6V2Uobyk/YShvKTpyKG8pfX12YXIgeTcsek1yLGl6ZT1wKCgpPT57QjEoKTt0cigpO3k3PXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOkNNcn0sek1yPXtwYXJ0aWFsOiEwLHRva2VuaXplOlRNcn19KTtmdW5jdGlvbiBfTXIoZSl7bGV0IHQ9ZS5sZW5ndGgtNCxyPTMsaSxhO2lmKChlW3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fGVbcl1bMV0udHlwZT09PSJzcGFjZSIpJiYoZVt0XVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxlW3RdWzFdLnR5cGU9PT0ic3BhY2UiKSl7Zm9yKGk9cjsrK2k8dDspaWYoZVtpXVsxXS50eXBlPT09ImNvZGVUZXh0RGF0YSIpe2Vbcl1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixlW3RdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIscis9Mix0LT0yO2JyZWFrfX1mb3IoaT1yLTEsdCsrOysraTw9dDspYT09PXZvaWQgMD9pIT09dCYmZVtpXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiYoYT1pKTooaT09PXR8fGVbaV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJihlW2FdWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsaSE9PWErMiYmKGVbYV1bMV0uZW5kPWVbaS0xXVsxXS5lbmQsZS5zcGxpY2UoYSsyLGktYS0yKSx0LT1pLWEtMixpPWErMiksYT12b2lkIDApO3JldHVybiBlfWZ1bmN0aW9uIExNcihlKXtyZXR1cm4gZSE9PTk2fHx0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGgtMV1bMV0udHlwZT09PSJjaGFyYWN0ZXJFc2NhcGUifWZ1bmN0aW9uIEFNcihlLHQscil7bGV0IGk9dGhpcyxhPTAsbixvO3JldHVybiBzO2Z1bmN0aW9uIHMoaCl7cmV0dXJuIGUuZW50ZXIoImNvZGVUZXh0IiksZS5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLGwoaCl9ZnVuY3Rpb24gbChoKXtyZXR1cm4gaD09PTk2PyhlLmNvbnN1bWUoaCksYSsrLGwpOihlLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxjKGgpKX1mdW5jdGlvbiBjKGgpe3JldHVybiBoPT09bnVsbD9yKGgpOmg9PT0zMj8oZS5lbnRlcigic3BhY2UiKSxlLmNvbnN1bWUoaCksZS5leGl0KCJzcGFjZSIpLGMpOmg9PT05Nj8obz1lLmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksbj0wLGQoaCkpOldlKGgpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGgpLGUuZXhpdCgibGluZUVuZGluZyIpLGMpOihlLmVudGVyKCJjb2RlVGV4dERhdGEiKSx1KGgpKX1mdW5jdGlvbiB1KGgpe3JldHVybiBoPT09bnVsbHx8aD09PTMyfHxoPT09OTZ8fFdlKGgpPyhlLmV4aXQoImNvZGVUZXh0RGF0YSIpLGMoaCkpOihlLmNvbnN1bWUoaCksdSl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gaD09PTk2PyhlLmNvbnN1bWUoaCksbisrLGQpOm49PT1hPyhlLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxlLmV4aXQoImNvZGVUZXh0IiksdChoKSk6KG8udHlwZT0iY29kZVRleHREYXRhIix1KGgpKX19dmFyIFlWLGF6ZT1wKCgpPT57dHIoKTtZVj17bmFtZToiY29kZVRleHQiLHByZXZpb3VzOkxNcixyZXNvbHZlOl9Ncix0b2tlbml6ZTpBTXJ9fSk7ZnVuY3Rpb24gdzcoZSx0KXtsZXQgcj0wO2lmKHQubGVuZ3RoPDFlNCllLnB1c2goLi4udCk7ZWxzZSBmb3IoO3I8dC5sZW5ndGg7KWUucHVzaCguLi50LnNsaWNlKHIscisxZTQpKSxyKz0xZTR9dmFyIE03LFpWPXAoKCk9PntNNz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmxlZnQ9dD9bLi4udF06W10sdGhpcy5yaWdodD1bXX1nZXQodCl7aWYodDwwfHx0Pj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK3QrImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIHQ8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbdF06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC10K3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UodCxyKXtsZXQgaT1yPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGk8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuc2xpY2UodCxpKTp0PnRoaXMubGVmdC5sZW5ndGg/dGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1pK3RoaXMubGVmdC5sZW5ndGgsdGhpcy5yaWdodC5sZW5ndGgtdCt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCk6dGhpcy5sZWZ0LnNsaWNlKHQpLmNvbmNhdCh0aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWkrdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpKX1zcGxpY2UodCxyLGkpe2xldCBhPXJ8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyh0KSk7bGV0IG49dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtYSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiBpJiZ3Nyh0aGlzLmxlZnQsaSksbi5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2godCl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaCh0KX1wdXNoTWFueSh0KXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLHc3KHRoaXMubGVmdCx0KX11bnNoaWZ0KHQpe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaCh0KX11bnNoaWZ0TWFueSh0KXt0aGlzLnNldEN1cnNvcigwKSx3Nyh0aGlzLnJpZ2h0LHQucmV2ZXJzZSgpKX1zZXRDdXJzb3IodCl7aWYoISh0PT09dGhpcy5sZWZ0Lmxlbmd0aHx8dD50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fHQ8MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKHQ8dGhpcy5sZWZ0Lmxlbmd0aCl7bGV0IHI9dGhpcy5sZWZ0LnNwbGljZSh0LE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7dzcodGhpcy5yaWdodCxyLnJldmVyc2UoKSl9ZWxzZXtsZXQgcj10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLXQsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTt3Nyh0aGlzLmxlZnQsci5yZXZlcnNlKCkpfX19fSk7ZnVuY3Rpb24gSU0oZSl7bGV0IHQ9e30scj0tMSxpLGEsbixvLHMsbCxjLHU9bmV3IE03KGUpO2Zvcig7KytyPHUubGVuZ3RoOyl7Zm9yKDtyIGluIHQ7KXI9dFtyXTtpZihpPXUuZ2V0KHIpLHImJmlbMV0udHlwZT09PSJjaHVua0Zsb3ciJiZ1LmdldChyLTEpWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiJiYobD1pWzFdLl90b2tlbml6ZXIuZXZlbnRzLG49MCxuPGwubGVuZ3RoJiZsW25dWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIiYmKG4rPTIpLG48bC5sZW5ndGgmJmxbbl1bMV0udHlwZT09PSJjb250ZW50IikpZm9yKDsrK248bC5sZW5ndGgmJmxbbl1bMV0udHlwZSE9PSJjb250ZW50IjspbFtuXVsxXS50eXBlPT09ImNodW5rVGV4dCImJihsW25dWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCxuKyspO2lmKGlbMF09PT0iZW50ZXIiKWlbMV0uY29udGVudFR5cGUmJihPYmplY3QuYXNzaWduKHQsRE1yKHUscikpLHI9dFtyXSxjPSEwKTtlbHNlIGlmKGlbMV0uX2NvbnRhaW5lcil7Zm9yKG49cixhPXZvaWQgMDtuLS07KWlmKG89dS5nZXQobiksb1sxXS50eXBlPT09ImxpbmVFbmRpbmcifHxvWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIilvWzBdPT09ImVudGVyIiYmKGEmJih1LmdldChhKVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiKSxvWzFdLnR5cGU9ImxpbmVFbmRpbmciLGE9bik7ZWxzZSBpZighKG9bMV0udHlwZT09PSJsaW5lUHJlZml4Inx8b1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWs7YSYmKGlbMV0uZW5kPXsuLi51LmdldChhKVsxXS5zdGFydH0scz11LnNsaWNlKGEscikscy51bnNoaWZ0KGkpLHUuc3BsaWNlKGEsci1hKzEscykpfX1yZXR1cm4gUjEoZSwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1LnNsaWNlKDApKSwhY31mdW5jdGlvbiBETXIoZSx0KXtsZXQgcj1lLmdldCh0KVsxXSxpPWUuZ2V0KHQpWzJdLGE9dC0xLG49W10sbz1yLl90b2tlbml6ZXI7b3x8KG89aS5wYXJzZXJbci5jb250ZW50VHlwZV0oci5zdGFydCksci5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJihvLl9jb250ZW50VHlwZVRleHRUcmFpbGluZz0hMCkpO2xldCBzPW8uZXZlbnRzLGw9W10sYz17fSx1LGQsaD0tMSxmPXIseD0wLHY9MCxiPVt2XTtmb3IoO2Y7KXtmb3IoO2UuZ2V0KCsrYSlbMV0hPT1mOyk7bi5wdXNoKGEpLGYuX3Rva2VuaXplcnx8KHU9aS5zbGljZVN0cmVhbShmKSxmLm5leHR8fHUucHVzaChudWxsKSxkJiZvLmRlZmluZVNraXAoZi5zdGFydCksZi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITApLG8ud3JpdGUodSksZi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09dm9pZCAwKSksZD1mLGY9Zi5uZXh0fWZvcihmPXI7KytoPHMubGVuZ3RoOylzW2hdWzBdPT09ImV4aXQiJiZzW2gtMV1bMF09PT0iZW50ZXIiJiZzW2hdWzFdLnR5cGU9PT1zW2gtMV1bMV0udHlwZSYmc1toXVsxXS5zdGFydC5saW5lIT09c1toXVsxXS5lbmQubGluZSYmKHY9aCsxLGIucHVzaCh2KSxmLl90b2tlbml6ZXI9dm9pZCAwLGYucHJldmlvdXM9dm9pZCAwLGY9Zi5uZXh0KTtmb3Ioby5ldmVudHM9W10sZj8oZi5fdG9rZW5pemVyPXZvaWQgMCxmLnByZXZpb3VzPXZvaWQgMCk6Yi5wb3AoKSxoPWIubGVuZ3RoO2gtLTspe2xldCB5PXMuc2xpY2UoYltoXSxiW2grMV0pLHc9bi5wb3AoKTtsLnB1c2goW3csdyt5Lmxlbmd0aC0xXSksZS5zcGxpY2UodywyLHkpfWZvcihsLnJldmVyc2UoKSxoPS0xOysraDxsLmxlbmd0aDspY1t4K2xbaF1bMF1dPXgrbFtoXVsxXSx4Kz1sW2hdWzFdLWxbaF1bMF0tMTtyZXR1cm4gY312YXIgWFY9cCgoKT0+e3BzKCk7WlYoKTtaVigpfSk7ZnVuY3Rpb24gJE1yKGUpe3JldHVybiBJTShlKSxlfWZ1bmN0aW9uIElNcihlLHQpe2xldCByO3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIGUuZW50ZXIoImNvbnRlbnQiKSxyPWUuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLGEocyl9ZnVuY3Rpb24gYShzKXtyZXR1cm4gcz09PW51bGw/bihzKTpXZShzKT9lLmNoZWNrKEVNcixvLG4pKHMpOihlLmNvbnN1bWUocyksYSl9ZnVuY3Rpb24gbihzKXtyZXR1cm4gZS5leGl0KCJjaHVua0NvbnRlbnQiKSxlLmV4aXQoImNvbnRlbnQiKSx0KHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIGUuY29uc3VtZShzKSxlLmV4aXQoImNodW5rQ29udGVudCIpLHIubmV4dD1lLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6cn0pLHI9ci5uZXh0LGF9fWZ1bmN0aW9uIFBNcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBlLmV4aXQoImNodW5rQ29udGVudCIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobyksZS5leGl0KCJsaW5lRW5kaW5nIiksbXQoZSxuLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gbihvKXtpZihvPT09bnVsbHx8V2UobykpcmV0dXJuIHIobyk7bGV0IHM9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIikmJnMmJnNbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmc1syXS5zbGljZVNlcmlhbGl6ZShzWzFdLCEwKS5sZW5ndGg+PTQ/dChvKTplLmludGVycnVwdChpLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3cscix0KShvKX19dmFyIFFWLEVNcixuemU9cCgoKT0+e0IxKCk7dHIoKTtYVigpO1FWPXtyZXNvbHZlOiRNcix0b2tlbml6ZTpJTXJ9LEVNcj17cGFydGlhbDohMCx0b2tlbml6ZTpQTXJ9fSk7ZnVuY3Rpb24gUE0oZSx0LHIsaSxhLG4sbyxzLGwpe2xldCBjPWx8fE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1PTA7cmV0dXJuIGQ7ZnVuY3Rpb24gZCh5KXtyZXR1cm4geT09PTYwPyhlLmVudGVyKGkpLGUuZW50ZXIoYSksZS5lbnRlcihuKSxlLmNvbnN1bWUoeSksZS5leGl0KG4pLGgpOnk9PT1udWxsfHx5PT09MzJ8fHk9PT00MXx8ajMoeSk/cih5KTooZS5lbnRlcihpKSxlLmVudGVyKG8pLGUuZW50ZXIocyksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHYoeSkpfWZ1bmN0aW9uIGgoeSl7cmV0dXJuIHk9PT02Mj8oZS5lbnRlcihuKSxlLmNvbnN1bWUoeSksZS5leGl0KG4pLGUuZXhpdChhKSxlLmV4aXQoaSksdCk6KGUuZW50ZXIocyksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGYoeSkpfWZ1bmN0aW9uIGYoeSl7cmV0dXJuIHk9PT02Mj8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChzKSxoKHkpKTp5PT09bnVsbHx8eT09PTYwfHxXZSh5KT9yKHkpOihlLmNvbnN1bWUoeSkseT09PTkyP3g6Zil9ZnVuY3Rpb24geCh5KXtyZXR1cm4geT09PTYwfHx5PT09NjJ8fHk9PT05Mj8oZS5jb25zdW1lKHkpLGYpOmYoeSl9ZnVuY3Rpb24gdih5KXtyZXR1cm4hdSYmKHk9PT1udWxsfHx5PT09NDF8fFp0KHkpKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChzKSxlLmV4aXQobyksZS5leGl0KGkpLHQoeSkpOnU8YyYmeT09PTQwPyhlLmNvbnN1bWUoeSksdSsrLHYpOnk9PT00MT8oZS5jb25zdW1lKHkpLHUtLSx2KTp5PT09bnVsbHx8eT09PTMyfHx5PT09NDB8fGozKHkpP3IoeSk6KGUuY29uc3VtZSh5KSx5PT09OTI/Yjp2KX1mdW5jdGlvbiBiKHkpe3JldHVybiB5PT09NDB8fHk9PT00MXx8eT09PTkyPyhlLmNvbnN1bWUoeSksdik6dih5KX19dmFyIEpWPXAoKCk9Pnt0cigpfSk7ZnVuY3Rpb24gTk0oZSx0LHIsaSxhLG4pe2xldCBvPXRoaXMscz0wLGw7cmV0dXJuIGM7ZnVuY3Rpb24gYyhmKXtyZXR1cm4gZS5lbnRlcihpKSxlLmVudGVyKGEpLGUuY29uc3VtZShmKSxlLmV4aXQoYSksZS5lbnRlcihuKSx1fWZ1bmN0aW9uIHUoZil7cmV0dXJuIHM+OTk5fHxmPT09bnVsbHx8Zj09PTkxfHxmPT09OTMmJiFsfHxmPT09OTQmJiFzJiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBvLnBhcnNlci5jb25zdHJ1Y3RzP3IoZik6Zj09PTkzPyhlLmV4aXQobiksZS5lbnRlcihhKSxlLmNvbnN1bWUoZiksZS5leGl0KGEpLGUuZXhpdChpKSx0KTpXZShmKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShmKSxlLmV4aXQoImxpbmVFbmRpbmciKSx1KTooZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGQoZikpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGY9PT1udWxsfHxmPT09OTF8fGY9PT05M3x8V2UoZil8fHMrKz45OTk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSx1KGYpKTooZS5jb25zdW1lKGYpLGx8fChsPSFsdChmKSksZj09PTkyP2g6ZCl9ZnVuY3Rpb24gaChmKXtyZXR1cm4gZj09PTkxfHxmPT09OTJ8fGY9PT05Mz8oZS5jb25zdW1lKGYpLHMrKyxkKTpkKGYpfX12YXIgS1Y9cCgoKT0+e3RyKCl9KTtmdW5jdGlvbiBGTShlLHQscixpLGEsbil7bGV0IG87cmV0dXJuIHM7ZnVuY3Rpb24gcyhoKXtyZXR1cm4gaD09PTM0fHxoPT09Mzl8fGg9PT00MD8oZS5lbnRlcihpKSxlLmVudGVyKGEpLGUuY29uc3VtZShoKSxlLmV4aXQoYSksbz1oPT09NDA/NDE6aCxsKTpyKGgpfWZ1bmN0aW9uIGwoaCl7cmV0dXJuIGg9PT1vPyhlLmVudGVyKGEpLGUuY29uc3VtZShoKSxlLmV4aXQoYSksZS5leGl0KGkpLHQpOihlLmVudGVyKG4pLGMoaCkpfWZ1bmN0aW9uIGMoaCl7cmV0dXJuIGg9PT1vPyhlLmV4aXQobiksbChvKSk6aD09PW51bGw/cihoKTpXZShoKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShoKSxlLmV4aXQoImxpbmVFbmRpbmciKSxtdChlLGMsImxpbmVQcmVmaXgiKSk6KGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSx1KGgpKX1mdW5jdGlvbiB1KGgpe3JldHVybiBoPT09b3x8aD09PW51bGx8fFdlKGgpPyhlLmV4aXQoImNodW5rU3RyaW5nIiksYyhoKSk6KGUuY29uc3VtZShoKSxoPT09OTI/ZDp1KX1mdW5jdGlvbiBkKGgpe3JldHVybiBoPT09b3x8aD09PTkyPyhlLmNvbnN1bWUoaCksdSk6dShoKX19dmFyIGVVPXAoKCk9PntCMSgpO3RyKCl9KTtmdW5jdGlvbiBYMyhlLHQpe2xldCByO3JldHVybiBpO2Z1bmN0aW9uIGkoYSl7cmV0dXJuIFdlKGEpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGEpLGUuZXhpdCgibGluZUVuZGluZyIpLHI9ITAsaSk6bHQoYSk/bXQoZSxpLHI/ImxpbmVQcmVmaXgiOiJsaW5lU3VmZml4IikoYSk6dChhKX19dmFyIHRVPXAoKCk9PntCMSgpO3RyKCl9KTtmdW5jdGlvbiBGTXIoZSx0LHIpe2xldCBpPXRoaXMsYTtyZXR1cm4gbjtmdW5jdGlvbiBuKGYpe3JldHVybiBlLmVudGVyKCJkZWZpbml0aW9uIiksbyhmKX1mdW5jdGlvbiBvKGYpe3JldHVybiBOTS5jYWxsKGksZSxzLHIsImRlZmluaXRpb25MYWJlbCIsImRlZmluaXRpb25MYWJlbE1hcmtlciIsImRlZmluaXRpb25MYWJlbFN0cmluZyIpKGYpfWZ1bmN0aW9uIHMoZil7cmV0dXJuIGE9TDEoaS5zbGljZVNlcmlhbGl6ZShpLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV1bMV0pLnNsaWNlKDEsLTEpKSxmPT09NTg/KGUuZW50ZXIoImRlZmluaXRpb25NYXJrZXIiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJkZWZpbml0aW9uTWFya2VyIiksbCk6cihmKX1mdW5jdGlvbiBsKGYpe3JldHVybiBadChmKT9YMyhlLGMpKGYpOmMoZil9ZnVuY3Rpb24gYyhmKXtyZXR1cm4gUE0oZSx1LHIsImRlZmluaXRpb25EZXN0aW5hdGlvbiIsImRlZmluaXRpb25EZXN0aW5hdGlvbkxpdGVyYWwiLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uUmF3IiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uU3RyaW5nIikoZil9ZnVuY3Rpb24gdShmKXtyZXR1cm4gZS5hdHRlbXB0KE5NcixkLGQpKGYpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGx0KGYpP210KGUsaCwid2hpdGVzcGFjZSIpKGYpOmgoZil9ZnVuY3Rpb24gaChmKXtyZXR1cm4gZj09PW51bGx8fFdlKGYpPyhlLmV4aXQoImRlZmluaXRpb24iKSxpLnBhcnNlci5kZWZpbmVkLnB1c2goYSksdChmKSk6cihmKX19ZnVuY3Rpb24gT01yKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKHMpe3JldHVybiBadChzKT9YMyhlLGEpKHMpOnIocyl9ZnVuY3Rpb24gYShzKXtyZXR1cm4gRk0oZSxuLHIsImRlZmluaXRpb25UaXRsZSIsImRlZmluaXRpb25UaXRsZU1hcmtlciIsImRlZmluaXRpb25UaXRsZVN0cmluZyIpKHMpfWZ1bmN0aW9uIG4ocyl7cmV0dXJuIGx0KHMpP210KGUsbywid2hpdGVzcGFjZSIpKHMpOm8ocyl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gcz09PW51bGx8fFdlKHMpP3Qocyk6cihzKX19dmFyIHJVLE5NcixvemU9cCgoKT0+e0pWKCk7S1YoKTtCMSgpO2VVKCk7dFUoKTt0cigpO3kwKCk7clU9e25hbWU6ImRlZmluaXRpb24iLHRva2VuaXplOkZNcn0sTk1yPXtwYXJ0aWFsOiEwLHRva2VuaXplOk9Ncn19KTtmdW5jdGlvbiBSTXIoZSx0LHIpe3JldHVybiBpO2Z1bmN0aW9uIGkobil7cmV0dXJuIGUuZW50ZXIoImhhcmRCcmVha0VzY2FwZSIpLGUuY29uc3VtZShuKSxhfWZ1bmN0aW9uIGEobil7cmV0dXJuIFdlKG4pPyhlLmV4aXQoImhhcmRCcmVha0VzY2FwZSIpLHQobikpOnIobil9fXZhciBpVSxzemU9cCgoKT0+e3RyKCk7aVU9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6Uk1yfX0pO2Z1bmN0aW9uIEJNcihlLHQpe2xldCByPWUubGVuZ3RoLTIsaT0zLGEsbjtyZXR1cm4gZVtpXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoaSs9Miksci0yPmkmJmVbcl1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKHItPTIpLGVbcl1bMV0udHlwZT09PSJhdHhIZWFkaW5nU2VxdWVuY2UiJiYoaT09PXItMXx8ci00PmkmJmVbci0yXVsxXS50eXBlPT09IndoaXRlc3BhY2UiKSYmKHItPWkrMT09PXI/Mjo0KSxyPmkmJihhPXt0eXBlOiJhdHhIZWFkaW5nVGV4dCIsc3RhcnQ6ZVtpXVsxXS5zdGFydCxlbmQ6ZVtyXVsxXS5lbmR9LG49e3R5cGU6ImNodW5rVGV4dCIsc3RhcnQ6ZVtpXVsxXS5zdGFydCxlbmQ6ZVtyXVsxXS5lbmQsY29udGVudFR5cGU6InRleHQifSxSMShlLGksci1pKzEsW1siZW50ZXIiLGEsdF0sWyJlbnRlciIsbix0XSxbImV4aXQiLG4sdF0sWyJleGl0IixhLHRdXSkpLGV9ZnVuY3Rpb24gSE1yKGUsdCxyKXtsZXQgaT0wO3JldHVybiBhO2Z1bmN0aW9uIGEodSl7cmV0dXJuIGUuZW50ZXIoImF0eEhlYWRpbmciKSxuKHUpfWZ1bmN0aW9uIG4odSl7cmV0dXJuIGUuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLG8odSl9ZnVuY3Rpb24gbyh1KXtyZXR1cm4gdT09PTM1JiZpKys8Nj8oZS5jb25zdW1lKHUpLG8pOnU9PT1udWxsfHxadCh1KT8oZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxzKHUpKTpyKHUpfWZ1bmN0aW9uIHModSl7cmV0dXJuIHU9PT0zNT8oZS5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksbCh1KSk6dT09PW51bGx8fFdlKHUpPyhlLmV4aXQoImF0eEhlYWRpbmciKSx0KHUpKTpsdCh1KT9tdChlLHMsIndoaXRlc3BhY2UiKSh1KTooZS5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxjKHUpKX1mdW5jdGlvbiBsKHUpe3JldHVybiB1PT09MzU/KGUuY29uc3VtZSh1KSxsKTooZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxzKHUpKX1mdW5jdGlvbiBjKHUpe3JldHVybiB1PT09bnVsbHx8dT09PTM1fHxadCh1KT8oZS5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLHModSkpOihlLmNvbnN1bWUodSksYyl9fXZhciBhVSxsemU9cCgoKT0+e0IxKCk7dHIoKTtwcygpO2FVPXtuYW1lOiJoZWFkaW5nQXR4IixyZXNvbHZlOkJNcix0b2tlbml6ZTpITXJ9fSk7dmFyIGN6ZSxuVSxkemU9cCgoKT0+e2N6ZT1bImFkZHJlc3MiLCJhcnRpY2xlIiwiYXNpZGUiLCJiYXNlIiwiYmFzZWZvbnQiLCJibG9ja3F1b3RlIiwiYm9keSIsImNhcHRpb24iLCJjZW50ZXIiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGV0YWlscyIsImRpYWxvZyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiZnJhbWUiLCJmcmFtZXNldCIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJociIsImh0bWwiLCJpZnJhbWUiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtYWluIiwibWVudSIsIm1lbnVpdGVtIiwibmF2Iiwibm9mcmFtZXMiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwicCIsInBhcmFtIiwic2VhcmNoIiwic2VjdGlvbiIsInN1bW1hcnkiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1bCJdLG5VPVsicHJlIiwic2NyaXB0Iiwic3R5bGUiLCJ0ZXh0YXJlYSJdfSk7ZnVuY3Rpb24gVk1yKGUpe2xldCB0PWUubGVuZ3RoO2Zvcig7dC0tJiYhKGVbdF1bMF09PT0iZW50ZXIiJiZlW3RdWzFdLnR5cGU9PT0iaHRtbEZsb3ciKTspO3JldHVybiB0PjEmJmVbdC0yXVsxXS50eXBlPT09ImxpbmVQcmVmaXgiJiYoZVt0XVsxXS5zdGFydD1lW3QtMl1bMV0uc3RhcnQsZVt0KzFdWzFdLnN0YXJ0PWVbdC0yXVsxXS5zdGFydCxlLnNwbGljZSh0LTIsMikpLGV9ZnVuY3Rpb24gVU1yKGUsdCxyKXtsZXQgaT10aGlzLGEsbixvLHMsbDtyZXR1cm4gYztmdW5jdGlvbiBjKEkpe3JldHVybiB1KEkpfWZ1bmN0aW9uIHUoSSl7cmV0dXJuIGUuZW50ZXIoImh0bWxGbG93IiksZS5lbnRlcigiaHRtbEZsb3dEYXRhIiksZS5jb25zdW1lKEkpLGR9ZnVuY3Rpb24gZChJKXtyZXR1cm4gST09PTMzPyhlLmNvbnN1bWUoSSksaCk6ST09PTQ3PyhlLmNvbnN1bWUoSSksbj0hMCx2KTpJPT09NjM/KGUuY29uc3VtZShJKSxhPTMsaS5pbnRlcnJ1cHQ/dDpQKTpwaShJKT8oZS5jb25zdW1lKEkpLG89U3RyaW5nLmZyb21DaGFyQ29kZShJKSxiKTpyKEkpfWZ1bmN0aW9uIGgoSSl7cmV0dXJuIEk9PT00NT8oZS5jb25zdW1lKEkpLGE9MixmKTpJPT09OTE/KGUuY29uc3VtZShJKSxhPTUscz0wLHgpOnBpKEkpPyhlLmNvbnN1bWUoSSksYT00LGkuaW50ZXJydXB0P3Q6UCk6cihJKX1mdW5jdGlvbiBmKEkpe3JldHVybiBJPT09NDU/KGUuY29uc3VtZShJKSxpLmludGVycnVwdD90OlApOnIoSSl9ZnVuY3Rpb24geChJKXtsZXQgbmU9IkNEQVRBWyI7cmV0dXJuIEk9PT1uZS5jaGFyQ29kZUF0KHMrKyk/KGUuY29uc3VtZShJKSxzPT09bmUubGVuZ3RoP2kuaW50ZXJydXB0P3Q6Uzp4KTpyKEkpfWZ1bmN0aW9uIHYoSSl7cmV0dXJuIHBpKEkpPyhlLmNvbnN1bWUoSSksbz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLGIpOnIoSSl9ZnVuY3Rpb24gYihJKXtpZihJPT09bnVsbHx8ST09PTQ3fHxJPT09NjJ8fFp0KEkpKXtsZXQgbmU9ST09PTQ3LGtlPW8udG9Mb3dlckNhc2UoKTtyZXR1cm4hbmUmJiFuJiZuVS5pbmNsdWRlcyhrZSk/KGE9MSxpLmludGVycnVwdD90KEkpOlMoSSkpOmN6ZS5pbmNsdWRlcyhvLnRvTG93ZXJDYXNlKCkpPyhhPTYsbmU/KGUuY29uc3VtZShJKSx5KTppLmludGVycnVwdD90KEkpOlMoSSkpOihhPTcsaS5pbnRlcnJ1cHQmJiFpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/cihJKTpuP3coSSk6ayhJKSl9cmV0dXJuIEk9PT00NXx8XzEoSSk/KGUuY29uc3VtZShJKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLGIpOnIoSSl9ZnVuY3Rpb24geShJKXtyZXR1cm4gST09PTYyPyhlLmNvbnN1bWUoSSksaS5pbnRlcnJ1cHQ/dDpTKTpyKEkpfWZ1bmN0aW9uIHcoSSl7cmV0dXJuIGx0KEkpPyhlLmNvbnN1bWUoSSksdyk6UihJKX1mdW5jdGlvbiBrKEkpe3JldHVybiBJPT09NDc/KGUuY29uc3VtZShJKSxSKTpJPT09NTh8fEk9PT05NXx8cGkoSSk/KGUuY29uc3VtZShJKSxPKTpsdChJKT8oZS5jb25zdW1lKEkpLGspOlIoSSl9ZnVuY3Rpb24gTyhJKXtyZXR1cm4gST09PTQ1fHxJPT09NDZ8fEk9PT01OHx8ST09PTk1fHxfMShJKT8oZS5jb25zdW1lKEkpLE8pOnooSSl9ZnVuY3Rpb24geihJKXtyZXR1cm4gST09PTYxPyhlLmNvbnN1bWUoSSksTSk6bHQoSSk/KGUuY29uc3VtZShJKSx6KTprKEkpfWZ1bmN0aW9uIE0oSSl7cmV0dXJuIEk9PT1udWxsfHxJPT09NjB8fEk9PT02MXx8ST09PTYyfHxJPT09OTY/cihJKTpJPT09MzR8fEk9PT0zOT8oZS5jb25zdW1lKEkpLGw9SSxGKTpsdChJKT8oZS5jb25zdW1lKEkpLE0pOkQoSSl9ZnVuY3Rpb24gRihJKXtyZXR1cm4gST09PWw/KGUuY29uc3VtZShJKSxsPW51bGwsTik6ST09PW51bGx8fFdlKEkpP3IoSSk6KGUuY29uc3VtZShJKSxGKX1mdW5jdGlvbiBEKEkpe3JldHVybiBJPT09bnVsbHx8ST09PTM0fHxJPT09Mzl8fEk9PT00N3x8ST09PTYwfHxJPT09NjF8fEk9PT02Mnx8ST09PTk2fHxadChJKT96KEkpOihlLmNvbnN1bWUoSSksRCl9ZnVuY3Rpb24gTihJKXtyZXR1cm4gST09PTQ3fHxJPT09NjJ8fGx0KEkpP2soSSk6cihJKX1mdW5jdGlvbiBSKEkpe3JldHVybiBJPT09NjI/KGUuY29uc3VtZShJKSxfKTpyKEkpfWZ1bmN0aW9uIF8oSSl7cmV0dXJuIEk9PT1udWxsfHxXZShJKT9TKEkpOmx0KEkpPyhlLmNvbnN1bWUoSSksXyk6cihJKX1mdW5jdGlvbiBTKEkpe3JldHVybiBJPT09NDUmJmE9PT0yPyhlLmNvbnN1bWUoSSkscSk6ST09PTYwJiZhPT09MT8oZS5jb25zdW1lKEkpLEIpOkk9PT02MiYmYT09PTQ/KGUuY29uc3VtZShJKSxnZSk6ST09PTYzJiZhPT09Mz8oZS5jb25zdW1lKEkpLFApOkk9PT05MyYmYT09PTU/KGUuY29uc3VtZShJKSxlZSk6V2UoSSkmJihhPT09Nnx8YT09PTcpPyhlLmV4aXQoImh0bWxGbG93RGF0YSIpLGUuY2hlY2socU1yLHdlLCQpKEkpKTpJPT09bnVsbHx8V2UoSSk/KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksJChJKSk6KGUuY29uc3VtZShJKSxTKX1mdW5jdGlvbiAkKEkpe3JldHVybiBlLmNoZWNrKGpNcixULHdlKShJKX1mdW5jdGlvbiBUKEkpe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKEkpLGUuZXhpdCgibGluZUVuZGluZyIpLEV9ZnVuY3Rpb24gRShJKXtyZXR1cm4gST09PW51bGx8fFdlKEkpPyQoSSk6KGUuZW50ZXIoImh0bWxGbG93RGF0YSIpLFMoSSkpfWZ1bmN0aW9uIHEoSSl7cmV0dXJuIEk9PT00NT8oZS5jb25zdW1lKEkpLFApOlMoSSl9ZnVuY3Rpb24gQihJKXtyZXR1cm4gST09PTQ3PyhlLmNvbnN1bWUoSSksbz0iIixHKTpTKEkpfWZ1bmN0aW9uIEcoSSl7aWYoST09PTYyKXtsZXQgbmU9by50b0xvd2VyQ2FzZSgpO3JldHVybiBuVS5pbmNsdWRlcyhuZSk/KGUuY29uc3VtZShJKSxnZSk6UyhJKX1yZXR1cm4gcGkoSSkmJm8ubGVuZ3RoPDg/KGUuY29uc3VtZShJKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLEcpOlMoSSl9ZnVuY3Rpb24gZWUoSSl7cmV0dXJuIEk9PT05Mz8oZS5jb25zdW1lKEkpLFApOlMoSSl9ZnVuY3Rpb24gUChJKXtyZXR1cm4gST09PTYyPyhlLmNvbnN1bWUoSSksZ2UpOkk9PT00NSYmYT09PTI/KGUuY29uc3VtZShJKSxQKTpTKEkpfWZ1bmN0aW9uIGdlKEkpe3JldHVybiBJPT09bnVsbHx8V2UoSSk/KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksd2UoSSkpOihlLmNvbnN1bWUoSSksZ2UpfWZ1bmN0aW9uIHdlKEkpe3JldHVybiBlLmV4aXQoImh0bWxGbG93IiksdChJKX19ZnVuY3Rpb24gV01yKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIFdlKG8pPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZyIpLG4pOnIobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3Iobyk6dChvKX19ZnVuY3Rpb24gR01yKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKGEpe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGEpLGUuZXhpdCgibGluZUVuZGluZyIpLGUuYXR0ZW1wdChncyx0LHIpfX12YXIgb1UscU1yLGpNcix1emU9cCgoKT0+e3RyKCk7ZHplKCk7TE0oKTtvVT17Y29uY3JldGU6ITAsbmFtZToiaHRtbEZsb3ciLHJlc29sdmVUbzpWTXIsdG9rZW5pemU6VU1yfSxxTXI9e3BhcnRpYWw6ITAsdG9rZW5pemU6R01yfSxqTXI9e3BhcnRpYWw6ITAsdG9rZW5pemU6V01yfX0pO2Z1bmN0aW9uIFlNcihlLHQscil7bGV0IGk9dGhpcyxhLG4sbztyZXR1cm4gcztmdW5jdGlvbiBzKFApe3JldHVybiBlLmVudGVyKCJodG1sVGV4dCIpLGUuZW50ZXIoImh0bWxUZXh0RGF0YSIpLGUuY29uc3VtZShQKSxsfWZ1bmN0aW9uIGwoUCl7cmV0dXJuIFA9PT0zMz8oZS5jb25zdW1lKFApLGMpOlA9PT00Nz8oZS5jb25zdW1lKFApLHopOlA9PT02Mz8oZS5jb25zdW1lKFApLGspOnBpKFApPyhlLmNvbnN1bWUoUCksRCk6cihQKX1mdW5jdGlvbiBjKFApe3JldHVybiBQPT09NDU/KGUuY29uc3VtZShQKSx1KTpQPT09OTE/KGUuY29uc3VtZShQKSxuPTAseCk6cGkoUCk/KGUuY29uc3VtZShQKSx3KTpyKFApfWZ1bmN0aW9uIHUoUCl7cmV0dXJuIFA9PT00NT8oZS5jb25zdW1lKFApLGYpOnIoUCl9ZnVuY3Rpb24gZChQKXtyZXR1cm4gUD09PW51bGw/cihQKTpQPT09NDU/KGUuY29uc3VtZShQKSxoKTpXZShQKT8obz1kLEIoUCkpOihlLmNvbnN1bWUoUCksZCl9ZnVuY3Rpb24gaChQKXtyZXR1cm4gUD09PTQ1PyhlLmNvbnN1bWUoUCksZik6ZChQKX1mdW5jdGlvbiBmKFApe3JldHVybiBQPT09NjI/cShQKTpQPT09NDU/aChQKTpkKFApfWZ1bmN0aW9uIHgoUCl7bGV0IGdlPSJDREFUQVsiO3JldHVybiBQPT09Z2UuY2hhckNvZGVBdChuKyspPyhlLmNvbnN1bWUoUCksbj09PWdlLmxlbmd0aD92OngpOnIoUCl9ZnVuY3Rpb24gdihQKXtyZXR1cm4gUD09PW51bGw/cihQKTpQPT09OTM/KGUuY29uc3VtZShQKSxiKTpXZShQKT8obz12LEIoUCkpOihlLmNvbnN1bWUoUCksdil9ZnVuY3Rpb24gYihQKXtyZXR1cm4gUD09PTkzPyhlLmNvbnN1bWUoUCkseSk6dihQKX1mdW5jdGlvbiB5KFApe3JldHVybiBQPT09NjI/cShQKTpQPT09OTM/KGUuY29uc3VtZShQKSx5KTp2KFApfWZ1bmN0aW9uIHcoUCl7cmV0dXJuIFA9PT1udWxsfHxQPT09NjI/cShQKTpXZShQKT8obz13LEIoUCkpOihlLmNvbnN1bWUoUCksdyl9ZnVuY3Rpb24gayhQKXtyZXR1cm4gUD09PW51bGw/cihQKTpQPT09NjM/KGUuY29uc3VtZShQKSxPKTpXZShQKT8obz1rLEIoUCkpOihlLmNvbnN1bWUoUCksayl9ZnVuY3Rpb24gTyhQKXtyZXR1cm4gUD09PTYyP3EoUCk6ayhQKX1mdW5jdGlvbiB6KFApe3JldHVybiBwaShQKT8oZS5jb25zdW1lKFApLE0pOnIoUCl9ZnVuY3Rpb24gTShQKXtyZXR1cm4gUD09PTQ1fHxfMShQKT8oZS5jb25zdW1lKFApLE0pOkYoUCl9ZnVuY3Rpb24gRihQKXtyZXR1cm4gV2UoUCk/KG89RixCKFApKTpsdChQKT8oZS5jb25zdW1lKFApLEYpOnEoUCl9ZnVuY3Rpb24gRChQKXtyZXR1cm4gUD09PTQ1fHxfMShQKT8oZS5jb25zdW1lKFApLEQpOlA9PT00N3x8UD09PTYyfHxadChQKT9OKFApOnIoUCl9ZnVuY3Rpb24gTihQKXtyZXR1cm4gUD09PTQ3PyhlLmNvbnN1bWUoUCkscSk6UD09PTU4fHxQPT09OTV8fHBpKFApPyhlLmNvbnN1bWUoUCksUik6V2UoUCk/KG89TixCKFApKTpsdChQKT8oZS5jb25zdW1lKFApLE4pOnEoUCl9ZnVuY3Rpb24gUihQKXtyZXR1cm4gUD09PTQ1fHxQPT09NDZ8fFA9PT01OHx8UD09PTk1fHxfMShQKT8oZS5jb25zdW1lKFApLFIpOl8oUCl9ZnVuY3Rpb24gXyhQKXtyZXR1cm4gUD09PTYxPyhlLmNvbnN1bWUoUCksUyk6V2UoUCk/KG89XyxCKFApKTpsdChQKT8oZS5jb25zdW1lKFApLF8pOk4oUCl9ZnVuY3Rpb24gUyhQKXtyZXR1cm4gUD09PW51bGx8fFA9PT02MHx8UD09PTYxfHxQPT09NjJ8fFA9PT05Nj9yKFApOlA9PT0zNHx8UD09PTM5PyhlLmNvbnN1bWUoUCksYT1QLCQpOldlKFApPyhvPVMsQihQKSk6bHQoUCk/KGUuY29uc3VtZShQKSxTKTooZS5jb25zdW1lKFApLFQpfWZ1bmN0aW9uICQoUCl7cmV0dXJuIFA9PT1hPyhlLmNvbnN1bWUoUCksYT12b2lkIDAsRSk6UD09PW51bGw/cihQKTpXZShQKT8obz0kLEIoUCkpOihlLmNvbnN1bWUoUCksJCl9ZnVuY3Rpb24gVChQKXtyZXR1cm4gUD09PW51bGx8fFA9PT0zNHx8UD09PTM5fHxQPT09NjB8fFA9PT02MXx8UD09PTk2P3IoUCk6UD09PTQ3fHxQPT09NjJ8fFp0KFApP04oUCk6KGUuY29uc3VtZShQKSxUKX1mdW5jdGlvbiBFKFApe3JldHVybiBQPT09NDd8fFA9PT02Mnx8WnQoUCk/TihQKTpyKFApfWZ1bmN0aW9uIHEoUCl7cmV0dXJuIFA9PT02Mj8oZS5jb25zdW1lKFApLGUuZXhpdCgiaHRtbFRleHREYXRhIiksZS5leGl0KCJodG1sVGV4dCIpLHQpOnIoUCl9ZnVuY3Rpb24gQihQKXtyZXR1cm4gZS5leGl0KCJodG1sVGV4dERhdGEiKSxlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKFApLGUuZXhpdCgibGluZUVuZGluZyIpLEd9ZnVuY3Rpb24gRyhQKXtyZXR1cm4gbHQoUCk/bXQoZSxlZSwibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShQKTplZShQKX1mdW5jdGlvbiBlZShQKXtyZXR1cm4gZS5lbnRlcigiaHRtbFRleHREYXRhIiksbyhQKX19dmFyIHNVLHB6ZT1wKCgpPT57QjEoKTt0cigpO3NVPXtuYW1lOiJodG1sVGV4dCIsdG9rZW5pemU6WU1yfX0pO2Z1bmN0aW9uIEpNcihlKXtsZXQgdD0tMSxyPVtdO2Zvcig7Kyt0PGUubGVuZ3RoOyl7bGV0IGk9ZVt0XVsxXTtpZihyLnB1c2goZVt0XSksaS50eXBlPT09ImxhYmVsSW1hZ2UifHxpLnR5cGU9PT0ibGFiZWxMaW5rInx8aS50eXBlPT09ImxhYmVsRW5kIil7bGV0IGE9aS50eXBlPT09ImxhYmVsSW1hZ2UiPzQ6MjtpLnR5cGU9ImRhdGEiLHQrPWF9fXJldHVybiBlLmxlbmd0aCE9PXIubGVuZ3RoJiZSMShlLDAsZS5sZW5ndGgsciksZX1mdW5jdGlvbiBLTXIoZSx0KXtsZXQgcj1lLmxlbmd0aCxpPTAsYSxuLG8scztmb3IoO3ItLTspaWYoYT1lW3JdWzFdLG4pe2lmKGEudHlwZT09PSJsaW5rInx8YS50eXBlPT09ImxhYmVsTGluayImJmEuX2luYWN0aXZlKWJyZWFrO2Vbcl1bMF09PT0iZW50ZXIiJiZhLnR5cGU9PT0ibGFiZWxMaW5rIiYmKGEuX2luYWN0aXZlPSEwKX1lbHNlIGlmKG8pe2lmKGVbcl1bMF09PT0iZW50ZXIiJiYoYS50eXBlPT09ImxhYmVsSW1hZ2UifHxhLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFhLl9iYWxhbmNlZCYmKG49cixhLnR5cGUhPT0ibGFiZWxMaW5rIikpe2k9MjticmVha319ZWxzZSBhLnR5cGU9PT0ibGFiZWxFbmQiJiYobz1yKTtsZXQgbD17dHlwZTplW25dWzFdLnR5cGU9PT0ibGFiZWxMaW5rIj8ibGluayI6ImltYWdlIixzdGFydDp7Li4uZVtuXVsxXS5zdGFydH0sZW5kOnsuLi5lW2UubGVuZ3RoLTFdWzFdLmVuZH19LGM9e3R5cGU6ImxhYmVsIixzdGFydDp7Li4uZVtuXVsxXS5zdGFydH0sZW5kOnsuLi5lW29dWzFdLmVuZH19LHU9e3R5cGU6ImxhYmVsVGV4dCIsc3RhcnQ6ey4uLmVbbitpKzJdWzFdLmVuZH0sZW5kOnsuLi5lW28tMl1bMV0uc3RhcnR9fTtyZXR1cm4gcz1bWyJlbnRlciIsbCx0XSxbImVudGVyIixjLHRdXSxzPUsxKHMsZS5zbGljZShuKzEsbitpKzMpKSxzPUsxKHMsW1siZW50ZXIiLHUsdF1dKSxzPUsxKHMsTTAodC5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGwsZS5zbGljZShuK2krNCxvLTMpLHQpKSxzPUsxKHMsW1siZXhpdCIsdSx0XSxlW28tMl0sZVtvLTFdLFsiZXhpdCIsYyx0XV0pLHM9SzEocyxlLnNsaWNlKG8rMSkpLHM9SzEocyxbWyJleGl0IixsLHRdXSksUjEoZSxuLGUubGVuZ3RoLHMpLGV9ZnVuY3Rpb24gZWtyKGUsdCxyKXtsZXQgaT10aGlzLGE9aS5ldmVudHMubGVuZ3RoLG4sbztmb3IoO2EtLTspaWYoKGkuZXZlbnRzW2FdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSJ8fGkuZXZlbnRzW2FdWzFdLnR5cGU9PT0ibGFiZWxMaW5rIikmJiFpLmV2ZW50c1thXVsxXS5fYmFsYW5jZWQpe249aS5ldmVudHNbYV1bMV07YnJlYWt9cmV0dXJuIHM7ZnVuY3Rpb24gcyhoKXtyZXR1cm4gbj9uLl9pbmFjdGl2ZT9kKGgpOihvPWkucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoTDEoaS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6bi5lbmQsZW5kOmkubm93KCl9KSkpLGUuZW50ZXIoImxhYmVsRW5kIiksZS5lbnRlcigibGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoaCksZS5leGl0KCJsYWJlbE1hcmtlciIpLGUuZXhpdCgibGFiZWxFbmQiKSxsKTpyKGgpfWZ1bmN0aW9uIGwoaCl7cmV0dXJuIGg9PT00MD9lLmF0dGVtcHQoWk1yLHUsbz91OmQpKGgpOmg9PT05MT9lLmF0dGVtcHQoWE1yLHUsbz9jOmQpKGgpOm8/dShoKTpkKGgpfWZ1bmN0aW9uIGMoaCl7cmV0dXJuIGUuYXR0ZW1wdChRTXIsdSxkKShoKX1mdW5jdGlvbiB1KGgpe3JldHVybiB0KGgpfWZ1bmN0aW9uIGQoaCl7cmV0dXJuIG4uX2JhbGFuY2VkPSEwLHIoaCl9fWZ1bmN0aW9uIHRrcihlLHQscil7cmV0dXJuIGk7ZnVuY3Rpb24gaShkKXtyZXR1cm4gZS5lbnRlcigicmVzb3VyY2UiKSxlLmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoInJlc291cmNlTWFya2VyIiksYX1mdW5jdGlvbiBhKGQpe3JldHVybiBadChkKT9YMyhlLG4pKGQpOm4oZCl9ZnVuY3Rpb24gbihkKXtyZXR1cm4gZD09PTQxP3UoZCk6UE0oZSxvLHMsInJlc291cmNlRGVzdGluYXRpb24iLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbCIsInJlc291cmNlRGVzdGluYXRpb25MaXRlcmFsTWFya2VyIiwicmVzb3VyY2VEZXN0aW5hdGlvblJhdyIsInJlc291cmNlRGVzdGluYXRpb25TdHJpbmciLDMyKShkKX1mdW5jdGlvbiBvKGQpe3JldHVybiBadChkKT9YMyhlLGwpKGQpOnUoZCl9ZnVuY3Rpb24gcyhkKXtyZXR1cm4gcihkKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09MzR8fGQ9PT0zOXx8ZD09PTQwP0ZNKGUsYyxyLCJyZXNvdXJjZVRpdGxlIiwicmVzb3VyY2VUaXRsZU1hcmtlciIsInJlc291cmNlVGl0bGVTdHJpbmciKShkKTp1KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIFp0KGQpP1gzKGUsdSkoZCk6dShkKX1mdW5jdGlvbiB1KGQpe3JldHVybiBkPT09NDE/KGUuZW50ZXIoInJlc291cmNlTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgicmVzb3VyY2VNYXJrZXIiKSxlLmV4aXQoInJlc291cmNlIiksdCk6cihkKX19ZnVuY3Rpb24gcmtyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEocyl7cmV0dXJuIE5NLmNhbGwoaSxlLG4sbywicmVmZXJlbmNlIiwicmVmZXJlbmNlTWFya2VyIiwicmVmZXJlbmNlU3RyaW5nIikocyl9ZnVuY3Rpb24gbihzKXtyZXR1cm4gaS5wYXJzZXIuZGVmaW5lZC5pbmNsdWRlcyhMMShpLnNsaWNlU2VyaWFsaXplKGkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXVsxXSkuc2xpY2UoMSwtMSkpKT90KHMpOnIocyl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gcihzKX19ZnVuY3Rpb24gaWtyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmVudGVyKCJyZWZlcmVuY2UiKSxlLmVudGVyKCJyZWZlcmVuY2VNYXJrZXIiKSxlLmNvbnN1bWUobiksZS5leGl0KCJyZWZlcmVuY2VNYXJrZXIiKSxhfWZ1bmN0aW9uIGEobil7cmV0dXJuIG49PT05Mz8oZS5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKG4pLGUuZXhpdCgicmVmZXJlbmNlTWFya2VyIiksZS5leGl0KCJyZWZlcmVuY2UiKSx0KTpyKG4pfX12YXIgUTMsWk1yLFhNcixRTXIsT009cCgoKT0+e0pWKCk7S1YoKTtlVSgpO3RVKCk7dHIoKTtwcygpO3kwKCk7djcoKTtRMz17bmFtZToibGFiZWxFbmQiLHJlc29sdmVBbGw6Sk1yLHJlc29sdmVUbzpLTXIsdG9rZW5pemU6ZWtyfSxaTXI9e3Rva2VuaXplOnRrcn0sWE1yPXt0b2tlbml6ZTpya3J9LFFNcj17dG9rZW5pemU6aWtyfX0pO2Z1bmN0aW9uIGFrcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKHMpe3JldHVybiBlLmVudGVyKCJsYWJlbEltYWdlIiksZS5lbnRlcigibGFiZWxJbWFnZU1hcmtlciIpLGUuY29uc3VtZShzKSxlLmV4aXQoImxhYmVsSW1hZ2VNYXJrZXIiKSxufWZ1bmN0aW9uIG4ocyl7cmV0dXJuIHM9PT05MT8oZS5lbnRlcigibGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUocyksZS5leGl0KCJsYWJlbE1hcmtlciIpLGUuZXhpdCgibGFiZWxJbWFnZSIpLG8pOnIocyl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gcz09PTk0JiYiX2hpZGRlbkZvb3Rub3RlU3VwcG9ydCJpbiBpLnBhcnNlci5jb25zdHJ1Y3RzP3Iocyk6dChzKX19dmFyIGxVLGh6ZT1wKCgpPT57T00oKTtsVT17bmFtZToibGFiZWxTdGFydEltYWdlIixyZXNvbHZlQWxsOlEzLnJlc29sdmVBbGwsdG9rZW5pemU6YWtyfX0pO2Z1bmN0aW9uIG5rcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBlLmVudGVyKCJsYWJlbExpbmsiKSxlLmVudGVyKCJsYWJlbE1hcmtlciIpLGUuY29uc3VtZShvKSxlLmV4aXQoImxhYmVsTWFya2VyIiksZS5leGl0KCJsYWJlbExpbmsiKSxufWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT05NCYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gaS5wYXJzZXIuY29uc3RydWN0cz9yKG8pOnQobyl9fXZhciBjVSxmemU9cCgoKT0+e09NKCk7Y1U9e25hbWU6ImxhYmVsU3RhcnRMaW5rIixyZXNvbHZlQWxsOlEzLnJlc29sdmVBbGwsdG9rZW5pemU6bmtyfX0pO2Z1bmN0aW9uIG9rcihlLHQpe3JldHVybiByO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoaSksZS5leGl0KCJsaW5lRW5kaW5nIiksbXQoZSx0LCJsaW5lUHJlZml4Iil9fXZhciBrNyxtemU9cCgoKT0+e0IxKCk7dHIoKTtrNz17bmFtZToibGluZUVuZGluZyIsdG9rZW5pemU6b2tyfX0pO2Z1bmN0aW9uIHNrcihlLHQscil7bGV0IGk9MCxhO3JldHVybiBuO2Z1bmN0aW9uIG4oYyl7cmV0dXJuIGUuZW50ZXIoInRoZW1hdGljQnJlYWsiKSxvKGMpfWZ1bmN0aW9uIG8oYyl7cmV0dXJuIGE9YyxzKGMpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1hPyhlLmVudGVyKCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxsKGMpKTppPj0zJiYoYz09PW51bGx8fFdlKGMpKT8oZS5leGl0KCJ0aGVtYXRpY0JyZWFrIiksdChjKSk6cihjKX1mdW5jdGlvbiBsKGMpe3JldHVybiBjPT09YT8oZS5jb25zdW1lKGMpLGkrKyxsKTooZS5leGl0KCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxsdChjKT9tdChlLHMsIndoaXRlc3BhY2UiKShjKTpzKGMpKX19dmFyIEozLGRVPXAoKCk9PntCMSgpO3RyKCk7SjM9e25hbWU6InRoZW1hdGljQnJlYWsiLHRva2VuaXplOnNrcn19KTtmdW5jdGlvbiBka3IoZSx0LHIpe2xldCBpPXRoaXMsYT1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV0sbj1hJiZhWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/YVsyXS5zbGljZVNlcmlhbGl6ZShhWzFdLCEwKS5sZW5ndGg6MCxvPTA7cmV0dXJuIHM7ZnVuY3Rpb24gcyhmKXtsZXQgeD1pLmNvbnRhaW5lclN0YXRlLnR5cGV8fChmPT09NDJ8fGY9PT00M3x8Zj09PTQ1PyJsaXN0VW5vcmRlcmVkIjoibGlzdE9yZGVyZWQiKTtpZih4PT09Imxpc3RVbm9yZGVyZWQiPyFpLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8Zj09PWkuY29udGFpbmVyU3RhdGUubWFya2VyOmg3KGYpKXtpZihpLmNvbnRhaW5lclN0YXRlLnR5cGV8fChpLmNvbnRhaW5lclN0YXRlLnR5cGU9eCxlLmVudGVyKHgse19jb250YWluZXI6ITB9KSkseD09PSJsaXN0VW5vcmRlcmVkIilyZXR1cm4gZS5lbnRlcigibGlzdEl0ZW1QcmVmaXgiKSxmPT09NDJ8fGY9PT00NT9lLmNoZWNrKEozLHIsYykoZik6YyhmKTtpZighaS5pbnRlcnJ1cHR8fGY9PT00OSlyZXR1cm4gZS5lbnRlcigibGlzdEl0ZW1QcmVmaXgiKSxlLmVudGVyKCJsaXN0SXRlbVZhbHVlIiksbChmKX1yZXR1cm4gcihmKX1mdW5jdGlvbiBsKGYpe3JldHVybiBoNyhmKSYmKytvPDEwPyhlLmNvbnN1bWUoZiksbCk6KCFpLmludGVycnVwdHx8bzwyKSYmKGkuY29udGFpbmVyU3RhdGUubWFya2VyP2Y9PT1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpmPT09NDF8fGY9PT00Nik/KGUuZXhpdCgibGlzdEl0ZW1WYWx1ZSIpLGMoZikpOnIoZil9ZnVuY3Rpb24gYyhmKXtyZXR1cm4gZS5lbnRlcigibGlzdEl0ZW1NYXJrZXIiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJsaXN0SXRlbU1hcmtlciIpLGkuY29udGFpbmVyU3RhdGUubWFya2VyPWkuY29udGFpbmVyU3RhdGUubWFya2VyfHxmLGUuY2hlY2soZ3MsaS5pbnRlcnJ1cHQ/cjp1LGUuYXR0ZW1wdChsa3IsaCxkKSl9ZnVuY3Rpb24gdShmKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPSEwLG4rKyxoKGYpfWZ1bmN0aW9uIGQoZil7cmV0dXJuIGx0KGYpPyhlLmVudGVyKCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiKSxoKTpyKGYpfWZ1bmN0aW9uIGgoZil7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuc2l6ZT1uK2kuc2xpY2VTZXJpYWxpemUoZS5leGl0KCJsaXN0SXRlbVByZWZpeCIpLCEwKS5sZW5ndGgsdChmKX19ZnVuY3Rpb24gdWtyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBpLmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3c9dm9pZCAwLGUuY2hlY2soZ3MsYSxuKTtmdW5jdGlvbiBhKHMpe3JldHVybiBpLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPWkuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fGkuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZSxtdChlLHQsImxpc3RJdGVtSW5kZW50IixpLmNvbnRhaW5lclN0YXRlLnNpemUrMSkocyl9ZnVuY3Rpb24gbihzKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lc3x8IWx0KHMpPyhpLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxpLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLG8ocykpOihpLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzPXZvaWQgMCxpLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmU9dm9pZCAwLGUuYXR0ZW1wdChja3IsdCxvKShzKSl9ZnVuY3Rpb24gbyhzKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PSEwLGkuaW50ZXJydXB0PXZvaWQgMCxtdChlLGUuYXR0ZW1wdCh2YSx0LHIpLCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKHMpfX1mdW5jdGlvbiBwa3IoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIG10KGUsYSwibGlzdEl0ZW1JbmRlbnQiLGkuY29udGFpbmVyU3RhdGUuc2l6ZSsxKTtmdW5jdGlvbiBhKG4pe2xldCBvPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IiYmb1syXS5zbGljZVNlcmlhbGl6ZShvWzFdLCEwKS5sZW5ndGg9PT1pLmNvbnRhaW5lclN0YXRlLnNpemU/dChuKTpyKG4pfX1mdW5jdGlvbiBoa3IoZSl7ZS5leGl0KHRoaXMuY29udGFpbmVyU3RhdGUudHlwZSl9ZnVuY3Rpb24gZmtyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBtdChlLGEsImxpc3RJdGVtUHJlZml4V2hpdGVzcGFjZSIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo1KTtmdW5jdGlvbiBhKG4pe2xldCBvPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4hbHQobikmJm8mJm9bMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiP3Qobik6cihuKX19dmFyIHZhLGxrcixja3IsZ3plPXAoKCk9PntCMSgpO3RyKCk7TE0oKTtkVSgpO3ZhPXtjb250aW51YXRpb246e3Rva2VuaXplOnVrcn0sZXhpdDpoa3IsbmFtZToibGlzdCIsdG9rZW5pemU6ZGtyfSxsa3I9e3BhcnRpYWw6ITAsdG9rZW5pemU6ZmtyfSxja3I9e3BhcnRpYWw6ITAsdG9rZW5pemU6cGtyfX0pO2Z1bmN0aW9uIG1rcihlLHQpe2xldCByPWUubGVuZ3RoLGksYSxuO2Zvcig7ci0tOylpZihlW3JdWzBdPT09ImVudGVyIil7aWYoZVtyXVsxXS50eXBlPT09ImNvbnRlbnQiKXtpPXI7YnJlYWt9ZVtyXVsxXS50eXBlPT09InBhcmFncmFwaCImJihhPXIpfWVsc2UgZVtyXVsxXS50eXBlPT09ImNvbnRlbnQiJiZlLnNwbGljZShyLDEpLCFuJiZlW3JdWzFdLnR5cGU9PT0iZGVmaW5pdGlvbiImJihuPXIpO2xldCBvPXt0eXBlOiJzZXRleHRIZWFkaW5nIixzdGFydDp7Li4uZVtpXVsxXS5zdGFydH0sZW5kOnsuLi5lW2UubGVuZ3RoLTFdWzFdLmVuZH19O3JldHVybiBlW2FdWzFdLnR5cGU9InNldGV4dEhlYWRpbmdUZXh0IixuPyhlLnNwbGljZShhLDAsWyJlbnRlciIsbyx0XSksZS5zcGxpY2UobisxLDAsWyJleGl0IixlW2ldWzFdLHRdKSxlW2ldWzFdLmVuZD17Li4uZVtuXVsxXS5lbmR9KTplW2ldWzFdPW8sZS5wdXNoKFsiZXhpdCIsbyx0XSksZX1mdW5jdGlvbiBna3IoZSx0LHIpe2xldCBpPXRoaXMsYTtyZXR1cm4gbjtmdW5jdGlvbiBuKGMpe2xldCB1PWkuZXZlbnRzLmxlbmd0aCxkO2Zvcig7dS0tOylpZihpLmV2ZW50c1t1XVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiZpLmV2ZW50c1t1XVsxXS50eXBlIT09ImxpbmVQcmVmaXgiJiZpLmV2ZW50c1t1XVsxXS50eXBlIT09ImNvbnRlbnQiKXtkPWkuZXZlbnRzW3VdWzFdLnR5cGU9PT0icGFyYWdyYXBoIjticmVha31yZXR1cm4haS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdJiYoaS5pbnRlcnJ1cHR8fGQpPyhlLmVudGVyKCJzZXRleHRIZWFkaW5nTGluZSIpLGE9YyxvKGMpKTpyKGMpfWZ1bmN0aW9uIG8oYyl7cmV0dXJuIGUuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2UiKSxzKGMpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1hPyhlLmNvbnN1bWUoYykscyk6KGUuZXhpdCgic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLGx0KGMpP210KGUsbCwibGluZVN1ZmZpeCIpKGMpOmwoYykpfWZ1bmN0aW9uIGwoYyl7cmV0dXJuIGM9PT1udWxsfHxXZShjKT8oZS5leGl0KCJzZXRleHRIZWFkaW5nTGluZSIpLHQoYykpOnIoYyl9fXZhciBSTSxiemU9cCgoKT0+e0IxKCk7dHIoKTtSTT17bmFtZToic2V0ZXh0VW5kZXJsaW5lIixyZXNvbHZlVG86bWtyLHRva2VuaXplOmdrcn19KTt2YXIgQk09cCgoKT0+e1hTZSgpO1FTZSgpO0xNKCk7SlNlKCk7S1NlKCk7ZXplKCk7cnplKCk7aXplKCk7YXplKCk7bnplKCk7b3plKCk7c3plKCk7bHplKCk7dXplKCk7cHplKCk7T00oKTtoemUoKTtmemUoKTttemUoKTtnemUoKTtiemUoKTtkVSgpfSk7ZnVuY3Rpb24gdVUoKXtyZXR1cm57ZG9jdW1lbnQ6ezkxOntuYW1lOiJnZm1Gb290bm90ZURlZmluaXRpb24iLHRva2VuaXplOndrcixjb250aW51YXRpb246e3Rva2VuaXplOk1rcn0sZXhpdDpra3J9fSx0ZXh0Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVDYWxsIix0b2tlbml6ZTp5a3J9LDkzOntuYW1lOiJnZm1Qb3RlbnRpYWxGb290bm90ZUNhbGwiLGFkZDoiYWZ0ZXIiLHRva2VuaXplOnZrcixyZXNvbHZlVG86eGtyfX19fWZ1bmN0aW9uIHZrcihlLHQscil7bGV0IGk9dGhpcyxhPWkuZXZlbnRzLmxlbmd0aCxuPWkucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGkucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbztmb3IoO2EtLTspe2xldCBsPWkuZXZlbnRzW2FdWzFdO2lmKGwudHlwZT09PSJsYWJlbEltYWdlIil7bz1sO2JyZWFrfWlmKGwudHlwZT09PSJnZm1Gb290bm90ZUNhbGwifHxsLnR5cGU9PT0ibGFiZWxMaW5rInx8bC50eXBlPT09ImxhYmVsInx8bC50eXBlPT09ImltYWdlInx8bC50eXBlPT09ImxpbmsiKWJyZWFrfXJldHVybiBzO2Z1bmN0aW9uIHMobCl7aWYoIW98fCFvLl9iYWxhbmNlZClyZXR1cm4gcihsKTtsZXQgYz1MMShpLnNsaWNlU2VyaWFsaXplKHtzdGFydDpvLmVuZCxlbmQ6aS5ub3coKX0pKTtyZXR1cm4gYy5jb2RlUG9pbnRBdCgwKSE9PTk0fHwhbi5pbmNsdWRlcyhjLnNsaWNlKDEpKT9yKGwpOihlLmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUuY29uc3VtZShsKSxlLmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksdChsKSl9fWZ1bmN0aW9uIHhrcihlLHQpe2xldCByPWUubGVuZ3RoLGk7Zm9yKDtyLS07KWlmKGVbcl1bMV0udHlwZT09PSJsYWJlbEltYWdlIiYmZVtyXVswXT09PSJlbnRlciIpe2k9ZVtyXVsxXTticmVha31lW3IrMV1bMV0udHlwZT0iZGF0YSIsZVtyKzNdWzFdLnR5cGU9ImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIjtsZXQgYT17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsIixzdGFydDpPYmplY3QuYXNzaWduKHt9LGVbciszXVsxXS5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sZVtlLmxlbmd0aC0xXVsxXS5lbmQpfSxuPXt0eXBlOiJnZm1Gb290bm90ZUNhbGxNYXJrZXIiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sZVtyKzNdWzFdLmVuZCksZW5kOk9iamVjdC5hc3NpZ24oe30sZVtyKzNdWzFdLmVuZCl9O24uZW5kLmNvbHVtbisrLG4uZW5kLm9mZnNldCsrLG4uZW5kLl9idWZmZXJJbmRleCsrO2xldCBvPXt0eXBlOiJnZm1Gb290bm90ZUNhbGxTdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sbi5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LGVbZS5sZW5ndGgtMV1bMV0uc3RhcnQpfSxzPXt0eXBlOiJjaHVua1N0cmluZyIsY29udGVudFR5cGU6InN0cmluZyIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvLmVuZCl9LGw9W2VbcisxXSxlW3IrMl0sWyJlbnRlciIsYSx0XSxlW3IrM10sZVtyKzRdLFsiZW50ZXIiLG4sdF0sWyJleGl0IixuLHRdLFsiZW50ZXIiLG8sdF0sWyJlbnRlciIscyx0XSxbImV4aXQiLHMsdF0sWyJleGl0IixvLHRdLGVbZS5sZW5ndGgtMl0sZVtlLmxlbmd0aC0xXSxbImV4aXQiLGEsdF1dO3JldHVybiBlLnNwbGljZShyLGUubGVuZ3RoLXIrMSwuLi5sKSxlfWZ1bmN0aW9uIHlrcihlLHQscil7bGV0IGk9dGhpcyxhPWkucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGkucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbj0wLG87cmV0dXJuIHM7ZnVuY3Rpb24gcyhkKXtyZXR1cm4gZS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsIiksZS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGx9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZCE9PTk0P3IoZCk6KGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoImdmbUZvb3Rub3RlQ2FsbE1hcmtlciIpLGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbFN0cmluZyIpLGUuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsYyl9ZnVuY3Rpb24gYyhkKXtpZihuPjk5OXx8ZD09PTkzJiYhb3x8ZD09PW51bGx8fGQ9PT05MXx8WnQoZCkpcmV0dXJuIHIoZCk7aWYoZD09PTkzKXtlLmV4aXQoImNodW5rU3RyaW5nIik7bGV0IGg9ZS5leGl0KCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKTtyZXR1cm4gYS5pbmNsdWRlcyhMMShpLnNsaWNlU2VyaWFsaXplKGgpKSk/KGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxlLmV4aXQoImdmbUZvb3Rub3RlQ2FsbCIpLHQpOnIoZCl9cmV0dXJuIFp0KGQpfHwobz0hMCksbisrLGUuY29uc3VtZShkKSxkPT09OTI/dTpjfWZ1bmN0aW9uIHUoZCl7cmV0dXJuIGQ9PT05MXx8ZD09PTkyfHxkPT09OTM/KGUuY29uc3VtZShkKSxuKyssYyk6YyhkKX19ZnVuY3Rpb24gd2tyKGUsdCxyKXtsZXQgaT10aGlzLGE9aS5wYXJzZXIuZ2ZtRm9vdG5vdGVzfHwoaS5wYXJzZXIuZ2ZtRm9vdG5vdGVzPVtdKSxuLG89MCxzO3JldHVybiBsO2Z1bmN0aW9uIGwoeCl7cmV0dXJuIGUuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpLl9jb250YWluZXI9ITAsZS5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGUuY29uc3VtZSh4KSxlLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksY31mdW5jdGlvbiBjKHgpe3JldHVybiB4PT09OTQ/KGUuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlciIpLGUuY29uc3VtZSh4KSxlLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbk1hcmtlciIpLGUuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIiksZS5lbnRlcigiY2h1bmtTdHJpbmciKS5jb250ZW50VHlwZT0ic3RyaW5nIix1KTpyKHgpfWZ1bmN0aW9uIHUoeCl7aWYobz45OTl8fHg9PT05MyYmIXN8fHg9PT1udWxsfHx4PT09OTF8fFp0KHgpKXJldHVybiByKHgpO2lmKHg9PT05Myl7ZS5leGl0KCJjaHVua1N0cmluZyIpO2xldCB2PWUuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmciKTtyZXR1cm4gbj1MMShpLnNsaWNlU2VyaWFsaXplKHYpKSxlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGUuY29uc3VtZSh4KSxlLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsTWFya2VyIiksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbCIpLGh9cmV0dXJuIFp0KHgpfHwocz0hMCksbysrLGUuY29uc3VtZSh4KSx4PT09OTI/ZDp1fWZ1bmN0aW9uIGQoeCl7cmV0dXJuIHg9PT05MXx8eD09PTkyfHx4PT09OTM/KGUuY29uc3VtZSh4KSxvKyssdSk6dSh4KX1mdW5jdGlvbiBoKHgpe3JldHVybiB4PT09NTg/KGUuZW50ZXIoImRlZmluaXRpb25NYXJrZXIiKSxlLmNvbnN1bWUoeCksZS5leGl0KCJkZWZpbml0aW9uTWFya2VyIiksYS5pbmNsdWRlcyhuKXx8YS5wdXNoKG4pLG10KGUsZiwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uV2hpdGVzcGFjZSIpKTpyKHgpfWZ1bmN0aW9uIGYoeCl7cmV0dXJuIHQoeCl9fWZ1bmN0aW9uIE1rcihlLHQscil7cmV0dXJuIGUuY2hlY2soZ3MsdCxlLmF0dGVtcHQoYmtyLHQscikpfWZ1bmN0aW9uIGtrcihlKXtlLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbiIpfWZ1bmN0aW9uIFNrcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gbXQoZSxhLCJnZm1Gb290bm90ZURlZmluaXRpb25JbmRlbnQiLDUpO2Z1bmN0aW9uIGEobil7bGV0IG89aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBvJiZvWzFdLnR5cGU9PT0iZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50IiYmb1syXS5zbGljZVNlcmlhbGl6ZShvWzFdLCEwKS5sZW5ndGg9PT00P3Qobik6cihuKX19dmFyIGJrcix2emU9cCgoKT0+e0JNKCk7QjEoKTt0cigpO3kwKCk7YmtyPXt0b2tlbml6ZTpTa3IscGFydGlhbDohMH19KTtmdW5jdGlvbiB4emUoZSx0KXtyZXR1cm4iQmFjayB0byByZWZlcmVuY2UgIisoZSsxKSsodD4xPyItIit0OiIiKX1mdW5jdGlvbiBwVShlKXtsZXQgdD1lfHxDa3Iscj10LmxhYmVsfHwiRm9vdG5vdGVzIixpPXQubGFiZWxUYWdOYW1lfHwiaDIiLGE9dC5sYWJlbEF0dHJpYnV0ZXM9PT1udWxsfHx0LmxhYmVsQXR0cmlidXRlcz09PXZvaWQgMD8nY2xhc3M9InNyLW9ubHkiJzp0LmxhYmVsQXR0cmlidXRlcyxuPXQuYmFja0xhYmVsfHx4emUsbz10LmNsb2JiZXJQcmVmaXg9PT1udWxsfHx0LmNsb2JiZXJQcmVmaXg9PT12b2lkIDA/InVzZXItY29udGVudC0iOnQuY2xvYmJlclByZWZpeDtyZXR1cm57ZW50ZXI6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe3RoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLnB1c2goITEpfSxnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9LGdmbUZvb3Rub3RlQ2FsbFN0cmluZygpe3RoaXMuYnVmZmVyKCl9fSxleGl0OntnZm1Gb290bm90ZURlZmluaXRpb24oKXtsZXQgcz10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiKSxsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKSxjPXRoaXMuZ2V0RGF0YSgidGlnaHRTdGFjayIpLHU9bC5wb3AoKSxkPXRoaXMucmVzdW1lKCk7c3x8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIixzPXt9KSx6a3IuY2FsbChzLHUpfHwoc1t1XT1kKSxjLnBvcCgpLHRoaXMuc2V0RGF0YSgic2x1cnBPbmVMaW5lRW5kaW5nIiwhMCksdGhpcy5zZXREYXRhKCJsYXN0V2FzVGFnIil9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKHMpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siKTtsfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvblN0YWNrIixsPVtdKSxsLnB1c2goTDEodGhpcy5zbGljZVNlcmlhbGl6ZShzKSkpLHRoaXMucmVzdW1lKCksdGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKHMpe2xldCBsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKSxjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIiksdT1MMSh0aGlzLnNsaWNlU2VyaWFsaXplKHMpKSxkO3RoaXMucmVzdW1lKCksbHx8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIsbD1bXSksY3x8dGhpcy5zZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiLGM9e30pO2xldCBoPWwuaW5kZXhPZih1KSxmPWZzKHUudG9Mb3dlckNhc2UoKSk7aD09PS0xPyhsLnB1c2godSksY1t1XT0xLGQ9bC5sZW5ndGgpOihjW3VdKyssZD1oKzEpO2xldCB4PWNbdV07dGhpcy50YWcoJzxzdXA+PGEgaHJlZj0iIycrbysiZm4tIitmKyciIGlkPSInK28rImZucmVmLSIrZisoeD4xPyItIit4OiIiKSsnIiBkYXRhLWZvb3Rub3RlLXJlZj0iIiBhcmlhLWRlc2NyaWJlZGJ5PSJmb290bm90ZS1sYWJlbCI+JytTdHJpbmcoZCkrIjwvYT48L3N1cD4iKX0sbnVsbCgpe2xldCBzPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsT3JkZXIiKXx8W10sbD10aGlzLmdldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIpfHx7fSxjPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpfHx7fSx1PS0xO2ZvcihzLmxlbmd0aD4wJiYodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygnPHNlY3Rpb24gZGF0YS1mb290bm90ZXM9IiIgY2xhc3M9ImZvb3Rub3RlcyI+PCcraSsnIGlkPSJmb290bm90ZS1sYWJlbCInKyhhPyIgIithOiIiKSsiPiIpLHRoaXMucmF3KHRoaXMuZW5jb2RlKHIpKSx0aGlzLnRhZygiPC8iK2krIj4iKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8b2w+IikpOysrdTxzLmxlbmd0aDspe2xldCBkPXNbdV0saD1mcyhkLnRvTG93ZXJDYXNlKCkpLGY9MCx4PVtdO2Zvcig7KytmPD1sW2RdOyl4LnB1c2goJzxhIGhyZWY9IiMnK28rImZucmVmLSIraCsoZj4xPyItIitmOiIiKSsnIiBkYXRhLWZvb3Rub3RlLWJhY2tyZWY9IiIgYXJpYS1sYWJlbD0iJyt0aGlzLmVuY29kZSh0eXBlb2Ygbj09InN0cmluZyI/bjpuKHUsZikpKyciIGNsYXNzPSJkYXRhLWZvb3Rub3RlLWJhY2tyZWYiPlx1MjFBOScrKGY+MT8iPHN1cD4iK2YrIjwvc3VwPiI6IiIpKyI8L2E+Iik7bGV0IHY9eC5qb2luKCIgIiksYj0hMTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8bGkgaWQ9IicrbysiZm4tIitoKyciPicpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoY1tkXS5yZXBsYWNlKC88XC9wPig/OlxyP1xufFxyKT8kLyxmdW5jdGlvbih5KXtyZXR1cm4gYj0hMCwiICIrdit5fSkpLGJ8fCh0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKHYpKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L2xpPiIpfXMubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L29sPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvc2VjdGlvbj4iKSl9fX19dmFyIHprcixDa3IseXplPXAoKCk9Pnt5MCgpO21zKCk7emtyPXt9Lmhhc093blByb3BlcnR5LENrcj17fX0pO3ZhciB3emU9cCgoKT0+e3Z6ZSgpO3l6ZSgpfSk7ZnVuY3Rpb24gaFUoKXtyZXR1cm57ZW50ZXI6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPGRlbD4iKX19LGV4aXQ6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPC9kZWw+Iil9fX19dmFyIE16ZT1wKCgpPT57fSk7ZnVuY3Rpb24gZlUoZSl7bGV0IHI9KGV8fHt9KS5zaW5nbGVUaWxkZSxpPXtuYW1lOiJzdHJpa2V0aHJvdWdoIix0b2tlbml6ZTpuLHJlc29sdmVBbGw6YX07cmV0dXJuIHI9PW51bGwmJihyPSEwKSx7dGV4dDp7MTI2Oml9LGluc2lkZVNwYW46e251bGw6W2ldfSxhdHRlbnRpb25NYXJrZXJzOntudWxsOlsxMjZdfX07ZnVuY3Rpb24gYShvLHMpe2xldCBsPS0xO2Zvcig7KytsPG8ubGVuZ3RoOylpZihvW2xdWzBdPT09ImVudGVyIiYmb1tsXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm9bbF1bMV0uX2Nsb3NlKXtsZXQgYz1sO2Zvcig7Yy0tOylpZihvW2NdWzBdPT09ImV4aXQiJiZvW2NdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmb1tjXVsxXS5fb3BlbiYmb1tsXVsxXS5lbmQub2Zmc2V0LW9bbF1bMV0uc3RhcnQub2Zmc2V0PT09b1tjXVsxXS5lbmQub2Zmc2V0LW9bY11bMV0uc3RhcnQub2Zmc2V0KXtvW2xdWzFdLnR5cGU9InN0cmlrZXRocm91Z2hTZXF1ZW5jZSIsb1tjXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiO2xldCB1PXt0eXBlOiJzdHJpa2V0aHJvdWdoIixzdGFydDpPYmplY3QuYXNzaWduKHt9LG9bY11bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LG9bbF1bMV0uZW5kKX0sZD17dHlwZToic3RyaWtldGhyb3VnaFRleHQiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sb1tjXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LG9bbF1bMV0uc3RhcnQpfSxoPVtbImVudGVyIix1LHNdLFsiZW50ZXIiLG9bY11bMV0sc10sWyJleGl0IixvW2NdWzFdLHNdLFsiZW50ZXIiLGQsc11dLGY9cy5wYXJzZXIuY29uc3RydWN0cy5pbnNpZGVTcGFuLm51bGw7ZiYmUjEoaCxoLmxlbmd0aCwwLE0wKGYsby5zbGljZShjKzEsbCkscykpLFIxKGgsaC5sZW5ndGgsMCxbWyJleGl0IixkLHNdLFsiZW50ZXIiLG9bbF1bMV0sc10sWyJleGl0IixvW2xdWzFdLHNdLFsiZXhpdCIsdSxzXV0pLFIxKG8sYy0xLGwtYyszLGgpLGw9YytoLmxlbmd0aC0yO2JyZWFrfX1mb3IobD0tMTsrK2w8by5sZW5ndGg7KW9bbF1bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiYob1tsXVsxXS50eXBlPSJkYXRhIik7cmV0dXJuIG99ZnVuY3Rpb24gbihvLHMsbCl7bGV0IGM9dGhpcy5wcmV2aW91cyx1PXRoaXMuZXZlbnRzLGQ9MDtyZXR1cm4gaDtmdW5jdGlvbiBoKHgpe3JldHVybiBjPT09MTI2JiZ1W3UubGVuZ3RoLTFdWzFdLnR5cGUhPT0iY2hhcmFjdGVyRXNjYXBlIj9sKHgpOihvLmVudGVyKCJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiKSxmKHgpKX1mdW5jdGlvbiBmKHgpe2xldCB2PURsKGMpO2lmKHg9PT0xMjYpcmV0dXJuIGQ+MT9sKHgpOihvLmNvbnN1bWUoeCksZCsrLGYpO2lmKGQ8MiYmIXIpcmV0dXJuIGwoeCk7bGV0IGI9by5leGl0KCJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiKSx5PURsKHgpO3JldHVybiBiLl9vcGVuPSF5fHx5PT09MiYmISF2LGIuX2Nsb3NlPSF2fHx2PT09MiYmISF5LHMoeCl9fX12YXIga3plPXAoKCk9PntwcygpO2JNKCk7djcoKX0pO3ZhciBTemU9cCgoKT0+e016ZSgpO2t6ZSgpfSk7ZnVuY3Rpb24gZ1UoKXtyZXR1cm57ZW50ZXI6e3RhYmxlKGUpe2xldCB0PWUuX2FsaWduO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0YWJsZT4iKSx0aGlzLnNldERhdGEoInRhYmxlQWxpZ24iLHQpfSx0YWJsZUJvZHkoKXt0aGlzLnRhZygiPHRib2R5PiIpfSx0YWJsZURhdGEoKXtsZXQgZT10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSx0PXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKSxyPW1VW2VbdF1dO3I9PT12b2lkIDA/dGhpcy5idWZmZXIoKToodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIityKyI+IikpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGhlYWQ+Iil9LHRhYmxlSGVhZGVyKCl7bGV0IGU9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksdD10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIikscj1tVVtlW3RdXTt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGgiK3IrIj4iKX0sdGFibGVSb3coKXt0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIiwwKSx0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dHI+Iil9fSxleGl0Ontjb2RlVGV4dERhdGEoZSl7bGV0IHQ9dGhpcy5zbGljZVNlcmlhbGl6ZShlKTt0aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSYmKHQ9dC5yZXBsYWNlKC9cXChbXFx8XSkvZyxUa3IpKSx0aGlzLnJhdyh0aGlzLmVuY29kZSh0KSl9LHRhYmxlKCl7dGhpcy5zZXREYXRhKCJ0YWJsZUFsaWduIiksdGhpcy5zZXREYXRhKCJzbHVycEFsbExpbmVFbmRpbmdzIiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90YWJsZT4iKX0sdGFibGVCb2R5KCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90Ym9keT4iKX0sdGFibGVEYXRhKCl7bGV0IGU9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksdD10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7dCBpbiBlPyh0aGlzLnRhZygiPC90ZD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIix0KzEpKTp0aGlzLnJlc3VtZSgpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8L3RoZWFkPiIpfSx0YWJsZUhlYWRlcigpe2xldCBlPXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTt0aGlzLnRhZygiPC90aD4iKSx0aGlzLnNldERhdGEoInRhYmxlQ29sdW1uIixlKzEpfSx0YWJsZVJvdygpe2xldCBlPXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO2Zvcig7dDxlLmxlbmd0aDspdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIittVVtlW3RdXSsiPjwvdGQ+IiksdCsrO3RoaXMuc2V0RGF0YSgidGFibGVDb2x1bW4iLHQpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdHI+Iil9fX19ZnVuY3Rpb24gVGtyKGUsdCl7cmV0dXJuIHQ9PT0ifCI/dDplfXZhciBtVSx6emU9cCgoKT0+e21VPXtub25lOiIiLGxlZnQ6JyBhbGlnbj0ibGVmdCInLHJpZ2h0OicgYWxpZ249InJpZ2h0IicsY2VudGVyOicgYWxpZ249ImNlbnRlciInfX0pO2Z1bmN0aW9uIF9rcihlLHQscixpKXtsZXQgYT0wO2lmKCEocj09PTAmJmkubGVuZ3RoPT09MCkpe2Zvcig7YTxlLm1hcC5sZW5ndGg7KXtpZihlLm1hcFthXVswXT09PXQpe2UubWFwW2FdWzFdKz1yLGUubWFwW2FdWzJdLnB1c2goLi4uaSk7cmV0dXJufWErPTF9ZS5tYXAucHVzaChbdCxyLGldKX19dmFyIEhNLEN6ZT1wKCgpPT57SE09Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1bXX1hZGQodCxyLGkpe19rcih0aGlzLHQscixpKX1jb25zdW1lKHQpe2lmKHRoaXMubWFwLnNvcnQoZnVuY3Rpb24obixvKXtyZXR1cm4gblswXS1vWzBdfSksdGhpcy5tYXAubGVuZ3RoPT09MClyZXR1cm47bGV0IHI9dGhpcy5tYXAubGVuZ3RoLGk9W107Zm9yKDtyPjA7KXItPTEsaS5wdXNoKHQuc2xpY2UodGhpcy5tYXBbcl1bMF0rdGhpcy5tYXBbcl1bMV0pLHRoaXMubWFwW3JdWzJdKSx0Lmxlbmd0aD10aGlzLm1hcFtyXVswXTtpLnB1c2godC5zbGljZSgpKSx0Lmxlbmd0aD0wO2xldCBhPWkucG9wKCk7Zm9yKDthOyl7Zm9yKGxldCBuIG9mIGEpdC5wdXNoKG4pO2E9aS5wb3AoKX10aGlzLm1hcC5sZW5ndGg9MH19fSk7ZnVuY3Rpb24gVHplKGUsdCl7bGV0IHI9ITEsaT1bXTtmb3IoO3Q8ZS5sZW5ndGg7KXtsZXQgYT1lW3RdO2lmKHIpe2lmKGFbMF09PT0iZW50ZXIiKWFbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiJiZpLnB1c2goZVt0KzFdWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIiPyJsZWZ0Ijoibm9uZSIpO2Vsc2UgaWYoYVsxXS50eXBlPT09InRhYmxlQ29udGVudCIpe2lmKGVbdC0xXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIil7bGV0IG49aS5sZW5ndGgtMTtpW25dPWlbbl09PT0ibGVmdCI/ImNlbnRlciI6InJpZ2h0In19ZWxzZSBpZihhWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciKWJyZWFrfWVsc2UgYVswXT09PSJlbnRlciImJmFbMV0udHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyImJihyPSEwKTt0Kz0xfXJldHVybiBpfXZhciBfemU9cCgoKT0+e30pO2Z1bmN0aW9uIGJVKCl7cmV0dXJue2Zsb3c6e251bGw6e25hbWU6InRhYmxlIix0b2tlbml6ZTpMa3IscmVzb2x2ZUFsbDpBa3J9fX19ZnVuY3Rpb24gTGtyKGUsdCxyKXtsZXQgaT10aGlzLGE9MCxuPTAsbztyZXR1cm4gcztmdW5jdGlvbiBzKFIpe2xldCBfPWkuZXZlbnRzLmxlbmd0aC0xO2Zvcig7Xz4tMTspe2xldCBUPWkuZXZlbnRzW19dWzFdLnR5cGU7aWYoVD09PSJsaW5lRW5kaW5nInx8VD09PSJsaW5lUHJlZml4IilfLS07ZWxzZSBicmVha31sZXQgUz1fPi0xP2kuZXZlbnRzW19dWzFdLnR5cGU6bnVsbCwkPVM9PT0idGFibGVIZWFkInx8Uz09PSJ0YWJsZVJvdyI/TTpsO3JldHVybiAkPT09TSYmaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3IoUik6JChSKX1mdW5jdGlvbiBsKFIpe3JldHVybiBlLmVudGVyKCJ0YWJsZUhlYWQiKSxlLmVudGVyKCJ0YWJsZVJvdyIpLGMoUil9ZnVuY3Rpb24gYyhSKXtyZXR1cm4gUj09PTEyNHx8KG89ITAsbis9MSksdShSKX1mdW5jdGlvbiB1KFIpe3JldHVybiBSPT09bnVsbD9yKFIpOldlKFIpP24+MT8obj0wLGkuaW50ZXJydXB0PSEwLGUuZXhpdCgidGFibGVSb3ciKSxlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKFIpLGUuZXhpdCgibGluZUVuZGluZyIpLGYpOnIoUik6bHQoUik/bXQoZSx1LCJ3aGl0ZXNwYWNlIikoUik6KG4rPTEsbyYmKG89ITEsYSs9MSksUj09PTEyND8oZS5lbnRlcigidGFibGVDZWxsRGl2aWRlciIpLGUuY29uc3VtZShSKSxlLmV4aXQoInRhYmxlQ2VsbERpdmlkZXIiKSxvPSEwLHUpOihlLmVudGVyKCJkYXRhIiksZChSKSkpfWZ1bmN0aW9uIGQoUil7cmV0dXJuIFI9PT1udWxsfHxSPT09MTI0fHxadChSKT8oZS5leGl0KCJkYXRhIiksdShSKSk6KGUuY29uc3VtZShSKSxSPT09OTI/aDpkKX1mdW5jdGlvbiBoKFIpe3JldHVybiBSPT09OTJ8fFI9PT0xMjQ/KGUuY29uc3VtZShSKSxkKTpkKFIpfWZ1bmN0aW9uIGYoUil7cmV0dXJuIGkuaW50ZXJydXB0PSExLGkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9yKFIpOihlLmVudGVyKCJ0YWJsZURlbGltaXRlclJvdyIpLG89ITEsbHQoUik/bXQoZSx4LCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKFIpOngoUikpfWZ1bmN0aW9uIHgoUil7cmV0dXJuIFI9PT00NXx8Uj09PTU4P2IoUik6Uj09PTEyND8obz0hMCxlLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksZS5jb25zdW1lKFIpLGUuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLHYpOnooUil9ZnVuY3Rpb24gdihSKXtyZXR1cm4gbHQoUik/bXQoZSxiLCJ3aGl0ZXNwYWNlIikoUik6YihSKX1mdW5jdGlvbiBiKFIpe3JldHVybiBSPT09NTg/KG4rPTEsbz0hMCxlLmVudGVyKCJ0YWJsZURlbGltaXRlck1hcmtlciIpLGUuY29uc3VtZShSKSxlLmV4aXQoInRhYmxlRGVsaW1pdGVyTWFya2VyIikseSk6Uj09PTQ1PyhuKz0xLHkoUikpOlI9PT1udWxsfHxXZShSKT9PKFIpOnooUil9ZnVuY3Rpb24geShSKXtyZXR1cm4gUj09PTQ1PyhlLmVudGVyKCJ0YWJsZURlbGltaXRlckZpbGxlciIpLHcoUikpOnooUil9ZnVuY3Rpb24gdyhSKXtyZXR1cm4gUj09PTQ1PyhlLmNvbnN1bWUoUiksdyk6Uj09PTU4PyhvPSEwLGUuZXhpdCgidGFibGVEZWxpbWl0ZXJGaWxsZXIiKSxlLmVudGVyKCJ0YWJsZURlbGltaXRlck1hcmtlciIpLGUuY29uc3VtZShSKSxlLmV4aXQoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksayk6KGUuZXhpdCgidGFibGVEZWxpbWl0ZXJGaWxsZXIiKSxrKFIpKX1mdW5jdGlvbiBrKFIpe3JldHVybiBsdChSKT9tdChlLE8sIndoaXRlc3BhY2UiKShSKTpPKFIpfWZ1bmN0aW9uIE8oUil7cmV0dXJuIFI9PT0xMjQ/eChSKTpSPT09bnVsbHx8V2UoUik/IW98fGEhPT1uP3ooUik6KGUuZXhpdCgidGFibGVEZWxpbWl0ZXJSb3ciKSxlLmV4aXQoInRhYmxlSGVhZCIpLHQoUikpOnooUil9ZnVuY3Rpb24geihSKXtyZXR1cm4gcihSKX1mdW5jdGlvbiBNKFIpe3JldHVybiBlLmVudGVyKCJ0YWJsZVJvdyIpLEYoUil9ZnVuY3Rpb24gRihSKXtyZXR1cm4gUj09PTEyND8oZS5lbnRlcigidGFibGVDZWxsRGl2aWRlciIpLGUuY29uc3VtZShSKSxlLmV4aXQoInRhYmxlQ2VsbERpdmlkZXIiKSxGKTpSPT09bnVsbHx8V2UoUik/KGUuZXhpdCgidGFibGVSb3ciKSx0KFIpKTpsdChSKT9tdChlLEYsIndoaXRlc3BhY2UiKShSKTooZS5lbnRlcigiZGF0YSIpLEQoUikpfWZ1bmN0aW9uIEQoUil7cmV0dXJuIFI9PT1udWxsfHxSPT09MTI0fHxadChSKT8oZS5leGl0KCJkYXRhIiksRihSKSk6KGUuY29uc3VtZShSKSxSPT09OTI/TjpEKX1mdW5jdGlvbiBOKFIpe3JldHVybiBSPT09OTJ8fFI9PT0xMjQ/KGUuY29uc3VtZShSKSxEKTpEKFIpfX1mdW5jdGlvbiBBa3IoZSx0KXtsZXQgcj0tMSxpPSEwLGE9MCxuPVswLDAsMCwwXSxvPVswLDAsMCwwXSxzPSExLGw9MCxjLHUsZCxoPW5ldyBITTtmb3IoOysrcjxlLmxlbmd0aDspe2xldCBmPWVbcl0seD1mWzFdO2ZbMF09PT0iZW50ZXIiP3gudHlwZT09PSJ0YWJsZUhlYWQiPyhzPSExLGwhPT0wJiYoTHplKGgsdCxsLGMsdSksdT12b2lkIDAsbD0wKSxjPXt0eXBlOiJ0YWJsZSIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSx4LnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx4LmVuZCl9LGguYWRkKHIsMCxbWyJlbnRlciIsYyx0XV0pKTp4LnR5cGU9PT0idGFibGVSb3cifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPyhpPSEwLGQ9dm9pZCAwLG49WzAsMCwwLDBdLG89WzAscisxLDAsMF0scyYmKHM9ITEsdT17dHlwZToidGFibGVCb2R5IixzdGFydDpPYmplY3QuYXNzaWduKHt9LHguc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHguZW5kKX0saC5hZGQociwwLFtbImVudGVyIix1LHRdXSkpLGE9eC50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93Ij8yOnU/MzoxKTphJiYoeC50eXBlPT09ImRhdGEifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKT8oaT0hMSxvWzJdPT09MCYmKG5bMV0hPT0wJiYob1swXT1vWzFdLGQ9cU0oaCx0LG4sYSx2b2lkIDAsZCksbj1bMCwwLDAsMF0pLG9bMl09cikpOngudHlwZT09PSJ0YWJsZUNlbGxEaXZpZGVyIiYmKGk/aT0hMTooblsxXSE9PTAmJihvWzBdPW9bMV0sZD1xTShoLHQsbixhLHZvaWQgMCxkKSksbj1vLG89W25bMV0sciwwLDBdKSk6eC50eXBlPT09InRhYmxlSGVhZCI/KHM9ITAsbD1yKTp4LnR5cGU9PT0idGFibGVSb3cifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPyhsPXIsblsxXSE9PTA/KG9bMF09b1sxXSxkPXFNKGgsdCxuLGEscixkKSk6b1sxXSE9PTAmJihkPXFNKGgsdCxvLGEscixkKSksYT0wKTphJiYoeC50eXBlPT09ImRhdGEifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJNYXJrZXIifHx4LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJGaWxsZXIiKSYmKG9bM109cil9Zm9yKGwhPT0wJiZMemUoaCx0LGwsYyx1KSxoLmNvbnN1bWUodC5ldmVudHMpLHI9LTE7KytyPHQuZXZlbnRzLmxlbmd0aDspe2xldCBmPXQuZXZlbnRzW3JdO2ZbMF09PT0iZW50ZXIiJiZmWzFdLnR5cGU9PT0idGFibGUiJiYoZlsxXS5fYWxpZ249VHplKHQuZXZlbnRzLHIpKX1yZXR1cm4gZX1mdW5jdGlvbiBxTShlLHQscixpLGEsbil7bGV0IG89aT09PTE/InRhYmxlSGVhZGVyIjppPT09Mj8idGFibGVEZWxpbWl0ZXIiOiJ0YWJsZURhdGEiLHM9InRhYmxlQ29udGVudCI7clswXSE9PTAmJihuLmVuZD1PYmplY3QuYXNzaWduKHt9LHp1KHQuZXZlbnRzLHJbMF0pKSxlLmFkZChyWzBdLDAsW1siZXhpdCIsbix0XV0pKTtsZXQgbD16dSh0LmV2ZW50cyxyWzFdKTtpZihuPXt0eXBlOm8sc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxsKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxsKX0sZS5hZGQoclsxXSwwLFtbImVudGVyIixuLHRdXSksclsyXSE9PTApe2xldCBjPXp1KHQuZXZlbnRzLHJbMl0pLHU9enUodC5ldmVudHMsclszXSksZD17dHlwZTpzLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYyksZW5kOk9iamVjdC5hc3NpZ24oe30sdSl9O2lmKGUuYWRkKHJbMl0sMCxbWyJlbnRlciIsZCx0XV0pLGkhPT0yKXtsZXQgaD10LmV2ZW50c1tyWzJdXSxmPXQuZXZlbnRzW3JbM11dO2lmKGhbMV0uZW5kPU9iamVjdC5hc3NpZ24oe30sZlsxXS5lbmQpLGhbMV0udHlwZT0iY2h1bmtUZXh0IixoWzFdLmNvbnRlbnRUeXBlPSJ0ZXh0IixyWzNdPnJbMl0rMSl7bGV0IHg9clsyXSsxLHY9clszXS1yWzJdLTE7ZS5hZGQoeCx2LFtdKX19ZS5hZGQoclszXSsxLDAsW1siZXhpdCIsZCx0XV0pfXJldHVybiBhIT09dm9pZCAwJiYobi5lbmQ9T2JqZWN0LmFzc2lnbih7fSx6dSh0LmV2ZW50cyxhKSksZS5hZGQoYSwwLFtbImV4aXQiLG4sdF1dKSxuPXZvaWQgMCksbn1mdW5jdGlvbiBMemUoZSx0LHIsaSxhKXtsZXQgbj1bXSxvPXp1KHQuZXZlbnRzLHIpO2EmJihhLmVuZD1PYmplY3QuYXNzaWduKHt9LG8pLG4ucHVzaChbImV4aXQiLGEsdF0pKSxpLmVuZD1PYmplY3QuYXNzaWduKHt9LG8pLG4ucHVzaChbImV4aXQiLGksdF0pLGUuYWRkKHIrMSwwLG4pfWZ1bmN0aW9uIHp1KGUsdCl7bGV0IHI9ZVt0XSxpPXJbMF09PT0iZW50ZXIiPyJzdGFydCI6ImVuZCI7cmV0dXJuIHJbMV1baV19dmFyIEF6ZT1wKCgpPT57QjEoKTt0cigpO0N6ZSgpO196ZSgpfSk7dmFyIER6ZT1wKCgpPT57enplKCk7QXplKCl9KTtmdW5jdGlvbiB2VSgpe3JldHVybntleGl0OntodG1sRmxvd0RhdGEoZSl7JHplLmNhbGwodGhpcyxlLEV6ZSl9LGh0bWxUZXh0RGF0YShlKXskemUuY2FsbCh0aGlzLGUsRGtyKX19fX1mdW5jdGlvbiAkemUoZSx0KXtsZXQgcj10aGlzLnNsaWNlU2VyaWFsaXplKGUpO3RoaXMub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwmJihyPXIucmVwbGFjZSh0LCImbHQ7JDEkMiIpKSx0aGlzLnJhdyh0aGlzLmVuY29kZShyKSl9dmFyIEV6ZSxEa3IsSXplPXAoKCk9PntFemU9LzwoXC8/KShpZnJhbWV8bm9lbWJlZHxub2ZyYW1lc3xwbGFpbnRleHR8c2NyaXB0fHN0eWxlfHRpdGxlfHRleHRhcmVhfHhtcCkoPz1bXHRcblxmXHIgLz5dKS9naSxEa3I9bmV3IFJlZ0V4cCgiXiIrRXplLnNvdXJjZSwiaSIpfSk7dmFyIFB6ZT1wKCgpPT57SXplKCl9KTtmdW5jdGlvbiB4VSgpe3JldHVybntlbnRlcjp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkPSIiICcpfX0sZXhpdDp7dGFza0xpc3RDaGVjaygpe3RoaXMudGFnKCIvPiIpfSx0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkKCl7dGhpcy50YWcoJ2NoZWNrZWQ9IiIgJyl9fX19dmFyIE56ZT1wKCgpPT57fSk7ZnVuY3Rpb24geVUoKXtyZXR1cm57dGV4dDp7OTE6RWtyfX19ZnVuY3Rpb24gJGtyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobCl7cmV0dXJuIGkucHJldmlvdXMhPT1udWxsfHwhaS5fZ2ZtVGFza2xpc3RGaXJzdENvbnRlbnRPZkxpc3RJdGVtP3IobCk6KGUuZW50ZXIoInRhc2tMaXN0Q2hlY2siKSxlLmVudGVyKCJ0YXNrTGlzdENoZWNrTWFya2VyIiksZS5jb25zdW1lKGwpLGUuZXhpdCgidGFza0xpc3RDaGVja01hcmtlciIpLG4pfWZ1bmN0aW9uIG4obCl7cmV0dXJuIFp0KGwpPyhlLmVudGVyKCJ0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQiKSxlLmNvbnN1bWUobCksZS5leGl0KCJ0YXNrTGlzdENoZWNrVmFsdWVVbmNoZWNrZWQiKSxvKTpsPT09ODh8fGw9PT0xMjA/KGUuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxlLmNvbnN1bWUobCksZS5leGl0KCJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIiksbyk6cihsKX1mdW5jdGlvbiBvKGwpe3JldHVybiBsPT09OTM/KGUuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxlLmNvbnN1bWUobCksZS5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksZS5leGl0KCJ0YXNrTGlzdENoZWNrIikscyk6cihsKX1mdW5jdGlvbiBzKGwpe3JldHVybiBXZShsKT90KGwpOmx0KGwpP2UuY2hlY2soe3Rva2VuaXplOklrcn0sdCxyKShsKTpyKGwpfX1mdW5jdGlvbiBJa3IoZSx0LHIpe3JldHVybiBtdChlLGksIndoaXRlc3BhY2UiKTtmdW5jdGlvbiBpKGEpe3JldHVybiBhPT09bnVsbD9yKGEpOnQoYSl9fXZhciBFa3IsRnplPXAoKCk9PntCMSgpO3RyKCk7RWtyPXtuYW1lOiJ0YXNrbGlzdENoZWNrIix0b2tlbml6ZToka3J9fSk7dmFyIE96ZT1wKCgpPT57TnplKCk7RnplKCl9KTtmdW5jdGlvbiBSemUoZSl7cmV0dXJuIHpNKFtqVigpLHVVKCksZlUoZSksYlUoKSx5VSgpXSl9ZnVuY3Rpb24gTUIxKGUpe3JldHVybiBDTShbV1YoKSxwVShlKSxoVSgpLGdVKCksdlUoKSx4VSgpXSl9dmFyIEJ6ZT1wKCgpPT57VE0oKTtZU2UoKTt3emUoKTtTemUoKTtEemUoKTtQemUoKTtPemUoKX0pO2Z1bmN0aW9uIEN1KGUpe2xldCB0PXRoaXMscj1lfHxQa3IsaT10LmRhdGEoKSxhPWkubWljcm9tYXJrRXh0ZW5zaW9uc3x8KGkubWljcm9tYXJrRXh0ZW5zaW9ucz1bXSksbj1pLmZyb21NYXJrZG93bkV4dGVuc2lvbnN8fChpLmZyb21NYXJrZG93bkV4dGVuc2lvbnM9W10pLG89aS50b01hcmtkb3duRXh0ZW5zaW9uc3x8KGkudG9NYXJrZG93bkV4dGVuc2lvbnM9W10pO2EucHVzaChSemUocikpLG4ucHVzaChPVigpKSxvLnB1c2goUlYocikpfXZhciBQa3IsSHplPXAoKCk9PntGU2UoKTtCemUoKTtQa3I9e319KTt2YXIgcXplPXAoKCk9PntIemUoKX0pO2Z1bmN0aW9uIHdVKGUpe2xldCB0PWV8fHt9LHI9ITAsaT17fSxhPVtbXV0sbj1bXSxvPVtdLGw9Q00oW3tlbnRlcjp7YmxvY2tRdW90ZTpFLGNvZGVGZW5jZWQ6ZWUsY29kZUZlbmNlZEZlbmNlSW5mbzpiLGNvZGVGZW5jZWRGZW5jZU1ldGE6Yixjb2RlSW5kZW50ZWQ6d2UsY29kZVRleHQ6YWUsY29udGVudDpDZSxkZWZpbml0aW9uOkxlLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzpILGRlZmluaXRpb25MYWJlbFN0cmluZzpiLGRlZmluaXRpb25UaXRsZVN0cmluZzpiLGVtcGhhc2lzOkx0LGh0bWxGbG93OlVlLGh0bWxUZXh0Oml0LGltYWdlOm5lLGxhYmVsOmIsbGluazprZSxsaXN0SXRlbU1hcmtlcjpfLGxpc3RJdGVtVmFsdWU6UixsaXN0T3JkZXJlZDpELGxpc3RVbm9yZGVyZWQ6TixwYXJhZ3JhcGg6QixyZWZlcmVuY2U6YixyZXNvdXJjZTpVLHJlc291cmNlRGVzdGluYXRpb25TdHJpbmc6VixyZXNvdXJjZVRpdGxlU3RyaW5nOmIsc2V0ZXh0SGVhZGluZzppZSxzdHJvbmc6V3R9LGV4aXQ6e2F0eEhlYWRpbmc6SWUsYXR4SGVhZGluZ1NlcXVlbmNlOmhlLGF1dG9saW5rRW1haWw6V28sYXV0b2xpbmtQcm90b2NvbDpVbyxibG9ja1F1b3RlOnEsY2hhcmFjdGVyRXNjYXBlVmFsdWU6WixjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbDpZcixjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljOllyLGNoYXJhY3RlclJlZmVyZW5jZVZhbHVlOmRuLGNvZGVGZW5jZWQ6SSxjb2RlRmVuY2VkRmVuY2U6Z2UsY29kZUZlbmNlZEZlbmNlSW5mbzpQLGNvZGVGZW5jZWRGZW5jZU1ldGE6Rixjb2RlRmxvd1ZhbHVlOm1lLGNvZGVJbmRlbnRlZDpJLGNvZGVUZXh0OnNlLGNvZGVUZXh0RGF0YTpaLGRhdGE6WixkZWZpbml0aW9uOnVlLGRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZzp0ZSxkZWZpbml0aW9uTGFiZWxTdHJpbmc6VyxkZWZpbml0aW9uVGl0bGVTdHJpbmc6YmUsZW1waGFzaXM6X2UsaGFyZEJyZWFrRXNjYXBlOkVlLGhhcmRCcmVha1RyYWlsaW5nOkVlLGh0bWxGbG93Ok10LGh0bWxGbG93RGF0YTpaLGh0bWxUZXh0Ok10LGh0bWxUZXh0RGF0YTpaLGltYWdlOnZlLGxhYmVsOkEsbGFiZWxUZXh0OlksbGluZUVuZGluZzpKLGxpbms6dmUsbGlzdE9yZGVyZWQ6UyxsaXN0VW5vcmRlcmVkOiQscGFyYWdyYXBoOkcscmVmZXJlbmNlOkYscmVmZXJlbmNlU3RyaW5nOkwscmVzb3VyY2U6RixyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOlgscmVzb3VyY2VUaXRsZVN0cmluZzpkZSxzZXRleHRIZWFkaW5nOkssc2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZTpaZSxzZXRleHRIZWFkaW5nVGV4dDpTZSxzdHJvbmc6dnQsdGhlbWF0aWNCcmVhazpTdH19LC4uLnQuaHRtbEV4dGVuc2lvbnN8fFtdXSksYz17ZGVmaW5pdGlvbnM6aSx0aWdodFN0YWNrOm99LHU9e2J1ZmZlcjpiLGVuY29kZTpNLGdldERhdGE6dixsaW5lRW5kaW5nSWZOZWVkZWQ6eixvcHRpb25zOnQscmF3OmsscmVzdW1lOnksc2V0RGF0YTp4LHRhZzp3fSxkPXQuZGVmYXVsdExpbmVFbmRpbmc7cmV0dXJuIGg7ZnVuY3Rpb24gaChNZSl7bGV0ICRlPS0xLEJ0PTAsRnI9W10sWnI9W10sbjE9W107Zm9yKDsrKyRlPE1lLmxlbmd0aDspIWQmJihNZVskZV1bMV0udHlwZT09PSJsaW5lRW5kaW5nInx8TWVbJGVdWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIikmJihkPU1lWyRlXVsyXS5zbGljZVNlcmlhbGl6ZShNZVskZV1bMV0pKSwoTWVbJGVdWzFdLnR5cGU9PT0ibGlzdE9yZGVyZWQifHxNZVskZV1bMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkIikmJihNZVskZV1bMF09PT0iZW50ZXIiP0ZyLnB1c2goJGUpOmYoTWUuc2xpY2UoRnIucG9wKCksJGUpKSksTWVbJGVdWzFdLnR5cGU9PT0iZGVmaW5pdGlvbiImJihNZVskZV1bMF09PT0iZW50ZXIiPyhuMT1LMShuMSxNZS5zbGljZShCdCwkZSkpLEJ0PSRlKTooWnI9SzEoWnIsTWUuc2xpY2UoQnQsJGUrMSkpLEJ0PSRlKzEpKTtacj1LMShacixuMSksWnI9SzEoWnIsTWUuc2xpY2UoQnQpKSwkZT0tMTtsZXQgWHI9WnI7Zm9yKGwuZW50ZXIubnVsbCYmbC5lbnRlci5udWxsLmNhbGwodSk7KyskZTxNZS5sZW5ndGg7KXtsZXQgR289bFtYclskZV1bMF1dLFlvPVhyWyRlXVsxXS50eXBlLFpvPUdvW1lvXTtqemUuY2FsbChHbyxZbykmJlpvJiZaby5jYWxsKHtzbGljZVNlcmlhbGl6ZTpYclskZV1bMl0uc2xpY2VTZXJpYWxpemUsLi4udX0sWHJbJGVdWzFdKX1yZXR1cm4gbC5leGl0Lm51bGwmJmwuZXhpdC5udWxsLmNhbGwodSksYVswXS5qb2luKCIiKX1mdW5jdGlvbiBmKE1lKXtsZXQgJGU9TWUubGVuZ3RoLEJ0PTAsRnI9MCxacj0hMSxuMTtmb3IoOysrQnQ8JGU7KXtsZXQgWHI9TWVbQnRdO2lmKFhyWzFdLl9jb250YWluZXIpbjE9dm9pZCAwLFhyWzBdPT09ImVudGVyIj9GcisrOkZyLS07ZWxzZSBzd2l0Y2goWHJbMV0udHlwZSl7Y2FzZSJsaXN0SXRlbVByZWZpeCI6e1hyWzBdPT09ImV4aXQiJiYobjE9ITApO2JyZWFrfWNhc2UibGluZVByZWZpeCI6YnJlYWs7Y2FzZSJsaW5lRW5kaW5nQmxhbmsiOntYclswXT09PSJlbnRlciImJiFGciYmKG4xP24xPXZvaWQgMDpacj0hMCk7YnJlYWt9ZGVmYXVsdDpuMT12b2lkIDB9fU1lWzBdWzFdLl9sb29zZT1acn1mdW5jdGlvbiB4KE1lLCRlKXtjW01lXT0kZX1mdW5jdGlvbiB2KE1lKXtyZXR1cm4gY1tNZV19ZnVuY3Rpb24gYigpe2EucHVzaChbXSl9ZnVuY3Rpb24geSgpe3JldHVybiBhLnBvcCgpLmpvaW4oIiIpfWZ1bmN0aW9uIHcoTWUpe3ImJih4KCJsYXN0V2FzVGFnIiwhMCksYVthLmxlbmd0aC0xXS5wdXNoKE1lKSl9ZnVuY3Rpb24gayhNZSl7eCgibGFzdFdhc1RhZyIpLGFbYS5sZW5ndGgtMV0ucHVzaChNZSl9ZnVuY3Rpb24gTygpe2soZHx8YApgKX1mdW5jdGlvbiB6KCl7bGV0IE1lPWFbYS5sZW5ndGgtMV0sJGU9TWVbTWUubGVuZ3RoLTFdLEJ0PSRlPyRlLmNoYXJDb2RlQXQoJGUubGVuZ3RoLTEpOm51bGw7QnQ9PT0xMHx8QnQ9PT0xM3x8QnQ9PT1udWxsfHxPKCl9ZnVuY3Rpb24gTShNZSl7cmV0dXJuIHYoImlnbm9yZUVuY29kZSIpP01lOl9NKE1lKX1mdW5jdGlvbiBGKCl7eSgpfWZ1bmN0aW9uIEQoTWUpe28ucHVzaCghTWUuX2xvb3NlKSx6KCksdygiPG9sIikseCgiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9ZnVuY3Rpb24gTihNZSl7by5wdXNoKCFNZS5fbG9vc2UpLHooKSx3KCI8dWwiKSx4KCJleHBlY3RGaXJzdEl0ZW0iLCEwKX1mdW5jdGlvbiBSKE1lKXtpZih2KCJleHBlY3RGaXJzdEl0ZW0iKSl7bGV0ICRlPU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKE1lKSwxMCk7JGUhPT0xJiZ3KCcgc3RhcnQ9IicrTShTdHJpbmcoJGUpKSsnIicpfX1mdW5jdGlvbiBfKCl7digiZXhwZWN0Rmlyc3RJdGVtIik/dygiPiIpOlQoKSx6KCksdygiPGxpPiIpLHgoImV4cGVjdEZpcnN0SXRlbSIpLHgoImxhc3RXYXNUYWciKX1mdW5jdGlvbiBTKCl7VCgpLG8ucG9wKCksTygpLHcoIjwvb2w+Iil9ZnVuY3Rpb24gJCgpe1QoKSxvLnBvcCgpLE8oKSx3KCI8L3VsPiIpfWZ1bmN0aW9uIFQoKXt2KCJsYXN0V2FzVGFnIikmJiF2KCJzbHVycEFsbExpbmVFbmRpbmdzIikmJnooKSx3KCI8L2xpPiIpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBFKCl7by5wdXNoKCExKSx6KCksdygiPGJsb2NrcXVvdGU+Iil9ZnVuY3Rpb24gcSgpe28ucG9wKCkseigpLHcoIjwvYmxvY2txdW90ZT4iKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gQigpe29bby5sZW5ndGgtMV18fCh6KCksdygiPHA+IikpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBHKCl7b1tvLmxlbmd0aC0xXT94KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCk6dygiPC9wPiIpfWZ1bmN0aW9uIGVlKCl7eigpLHcoIjxwcmU+PGNvZGUiKSx4KCJmZW5jZXNDb3VudCIsMCl9ZnVuY3Rpb24gUCgpe2xldCBNZT15KCk7dygnIGNsYXNzPSJsYW5ndWFnZS0nK01lKyciJyl9ZnVuY3Rpb24gZ2UoKXtsZXQgTWU9digiZmVuY2VzQ291bnQiKXx8MDtNZXx8KHcoIj4iKSx4KCJzbHVycE9uZUxpbmVFbmRpbmciLCEwKSkseCgiZmVuY2VzQ291bnQiLE1lKzEpfWZ1bmN0aW9uIHdlKCl7eigpLHcoIjxwcmU+PGNvZGU+Iil9ZnVuY3Rpb24gSSgpe2xldCBNZT12KCJmZW5jZXNDb3VudCIpO01lIT09dm9pZCAwJiZNZTwyJiZjLnRpZ2h0U3RhY2subGVuZ3RoPjAmJiF2KCJsYXN0V2FzVGFnIikmJk8oKSx2KCJmbG93Q29kZVNlZW5EYXRhIikmJnooKSx3KCI8L2NvZGU+PC9wcmU+IiksTWUhPT12b2lkIDAmJk1lPDImJnooKSx4KCJmbG93Q29kZVNlZW5EYXRhIikseCgiZmVuY2VzQ291bnQiKSx4KCJzbHVycE9uZUxpbmVFbmRpbmciKX1mdW5jdGlvbiBuZSgpe24ucHVzaCh7aW1hZ2U6ITB9KSxyPXZvaWQgMH1mdW5jdGlvbiBrZSgpe24ucHVzaCh7fSl9ZnVuY3Rpb24gWShNZSl7bltuLmxlbmd0aC0xXS5sYWJlbElkPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpfWZ1bmN0aW9uIEEoKXtuW24ubGVuZ3RoLTFdLmxhYmVsPXkoKX1mdW5jdGlvbiBMKE1lKXtuW24ubGVuZ3RoLTFdLnJlZmVyZW5jZUlkPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpfWZ1bmN0aW9uIFUoKXtiKCksbltuLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj0iIn1mdW5jdGlvbiBWKCl7YigpLHgoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIFgoKXtuW24ubGVuZ3RoLTFdLmRlc3RpbmF0aW9uPXkoKSx4KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBkZSgpe25bbi5sZW5ndGgtMV0udGl0bGU9eSgpfWZ1bmN0aW9uIHZlKCl7bGV0IE1lPW4ubGVuZ3RoLTEsJGU9bltNZV0sQnQ9JGUucmVmZXJlbmNlSWR8fCRlLmxhYmVsSWQsRnI9JGUuZGVzdGluYXRpb249PT12b2lkIDA/aVtMMShCdCldOiRlO2ZvcihyPSEwO01lLS07KWlmKG5bTWVdLmltYWdlKXtyPXZvaWQgMDticmVha30kZS5pbWFnZT8odygnPGltZyBzcmM9IicrZnMoRnIuZGVzdGluYXRpb24sdC5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpOa3IpKyciIGFsdD0iJyksaygkZS5sYWJlbCksdygnIicpKTp3KCc8YSBocmVmPSInK2ZzKEZyLmRlc3RpbmF0aW9uLHQuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6VnplKSsnIicpLHcoRnIudGl0bGU/JyB0aXRsZT0iJytGci50aXRsZSsnIic6IiIpLCRlLmltYWdlP3coIiAvPiIpOih3KCI+IiksaygkZS5sYWJlbCksdygiPC9hPiIpKSxuLnBvcCgpfWZ1bmN0aW9uIExlKCl7YigpLG4ucHVzaCh7fSl9ZnVuY3Rpb24gVyhNZSl7eSgpLG5bbi5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKE1lKX1mdW5jdGlvbiBIKCl7YigpLHgoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIHRlKCl7bltuLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj15KCkseCgiaWdub3JlRW5jb2RlIil9ZnVuY3Rpb24gYmUoKXtuW24ubGVuZ3RoLTFdLnRpdGxlPXkoKX1mdW5jdGlvbiB1ZSgpe2xldCBNZT1uW24ubGVuZ3RoLTFdLCRlPUwxKE1lLmxhYmVsSWQpO3koKSxqemUuY2FsbChpLCRlKXx8KGlbJGVdPW5bbi5sZW5ndGgtMV0pLG4ucG9wKCl9ZnVuY3Rpb24gQ2UoKXt4KCJzbHVycEFsbExpbmVFbmRpbmdzIiwhMCl9ZnVuY3Rpb24gaGUoTWUpe3YoImhlYWRpbmdSYW5rIil8fCh4KCJoZWFkaW5nUmFuayIsdGhpcy5zbGljZVNlcmlhbGl6ZShNZSkubGVuZ3RoKSx6KCksdygiPGgiK3YoImhlYWRpbmdSYW5rIikrIj4iKSl9ZnVuY3Rpb24gaWUoKXtiKCkseCgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIFNlKCl7eCgic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIEllKCl7dygiPC9oIit2KCJoZWFkaW5nUmFuayIpKyI+IikseCgiaGVhZGluZ1JhbmsiKX1mdW5jdGlvbiBaZShNZSl7eCgiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoTWUpLmNoYXJDb2RlQXQoMCk9PT02MT8xOjIpfWZ1bmN0aW9uIEsoKXtsZXQgTWU9eSgpO3ooKSx3KCI8aCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpLGsoTWUpLHcoIjwvaCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKSx4KCJoZWFkaW5nUmFuayIpfWZ1bmN0aW9uIFooTWUpe2soTSh0aGlzLnNsaWNlU2VyaWFsaXplKE1lKSkpfWZ1bmN0aW9uIEooTWUpe2lmKCF2KCJzbHVycEFsbExpbmVFbmRpbmdzIikpe2lmKHYoInNsdXJwT25lTGluZUVuZGluZyIpKXt4KCJzbHVycE9uZUxpbmVFbmRpbmciKTtyZXR1cm59aWYodigiaW5Db2RlVGV4dCIpKXtrKCIgIik7cmV0dXJufWsoTSh0aGlzLnNsaWNlU2VyaWFsaXplKE1lKSkpfX1mdW5jdGlvbiBtZShNZSl7ayhNKHRoaXMuc2xpY2VTZXJpYWxpemUoTWUpKSkseCgiZmxvd0NvZGVTZWVuRGF0YSIsITApfWZ1bmN0aW9uIEVlKCl7dygiPGJyIC8+Iil9ZnVuY3Rpb24gVWUoKXt6KCksaXQoKX1mdW5jdGlvbiBNdCgpe3goImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIGl0KCl7dC5hbGxvd0Rhbmdlcm91c0h0bWwmJngoImlnbm9yZUVuY29kZSIsITApfWZ1bmN0aW9uIEx0KCl7dygiPGVtPiIpfWZ1bmN0aW9uIFd0KCl7dygiPHN0cm9uZz4iKX1mdW5jdGlvbiBhZSgpe3goImluQ29kZVRleHQiLCEwKSx3KCI8Y29kZT4iKX1mdW5jdGlvbiBzZSgpe3goImluQ29kZVRleHQiKSx3KCI8L2NvZGU+Iil9ZnVuY3Rpb24gX2UoKXt3KCI8L2VtPiIpfWZ1bmN0aW9uIHZ0KCl7dygiPC9zdHJvbmc+Iil9ZnVuY3Rpb24gU3QoKXt6KCksdygiPGhyIC8+Iil9ZnVuY3Rpb24gWXIoTWUpe3goImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiLE1lLnR5cGUpfWZ1bmN0aW9uIGRuKE1lKXtsZXQgJGU9dGhpcy5zbGljZVNlcmlhbGl6ZShNZSksQnQ9digiY2hhcmFjdGVyUmVmZXJlbmNlVHlwZSIpP1N1KCRlLHYoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT09PSJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIj8xMDoxNik6dzAoJGUpO2soTShCdCkpLHgoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKX1mdW5jdGlvbiBVbyhNZSl7bGV0ICRlPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpO3coJzxhIGhyZWY9IicrZnMoJGUsdC5hbGxvd0Rhbmdlcm91c1Byb3RvY29sP3ZvaWQgMDpWemUpKyciPicpLGsoTSgkZSkpLHcoIjwvYT4iKX1mdW5jdGlvbiBXbyhNZSl7bGV0ICRlPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpO3coJzxhIGhyZWY9IicrZnMoIm1haWx0bzoiKyRlKSsnIj4nKSxrKE0oJGUpKSx3KCI8L2E+Iil9fXZhciBqemUsVnplLE5rcixNVT1wKCgpPT57YjcoKTtwcygpO1RNKCk7TU0oKTtWVigpO3kwKCk7bXMoKTtqemU9e30uaGFzT3duUHJvcGVydHksVnplPS9eKGh0dHBzP3xpcmNzP3xtYWlsdG98eG1wcCkkL2ksTmtyPS9eaHR0cHM/JC9pfSk7ZnVuY3Rpb24gRmtyKGUpe2xldCB0PWUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmNvbnRlbnRJbml0aWFsLGksYSkscjtyZXR1cm4gdDtmdW5jdGlvbiBpKHMpe2lmKHM9PT1udWxsKXtlLmNvbnN1bWUocyk7cmV0dXJufXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKHMpLGUuZXhpdCgibGluZUVuZGluZyIpLG10KGUsdCwibGluZVByZWZpeCIpfWZ1bmN0aW9uIGEocyl7cmV0dXJuIGUuZW50ZXIoInBhcmFncmFwaCIpLG4ocyl9ZnVuY3Rpb24gbihzKXtsZXQgbD1lLmVudGVyKCJjaHVua1RleHQiLHtjb250ZW50VHlwZToidGV4dCIscHJldmlvdXM6cn0pO3JldHVybiByJiYoci5uZXh0PWwpLHI9bCxvKHMpfWZ1bmN0aW9uIG8ocyl7aWYocz09PW51bGwpe2UuZXhpdCgiY2h1bmtUZXh0IiksZS5leGl0KCJwYXJhZ3JhcGgiKSxlLmNvbnN1bWUocyk7cmV0dXJufXJldHVybiBXZShzKT8oZS5jb25zdW1lKHMpLGUuZXhpdCgiY2h1bmtUZXh0Iiksbik6KGUuY29uc3VtZShzKSxvKX19dmFyIFV6ZSxXemU9cCgoKT0+e0IxKCk7dHIoKTtVemU9e3Rva2VuaXplOkZrcn19KTtmdW5jdGlvbiBPa3IoZSl7bGV0IHQ9dGhpcyxyPVtdLGk9MCxhLG4sbztyZXR1cm4gcztmdW5jdGlvbiBzKGspe2lmKGk8ci5sZW5ndGgpe2xldCBPPXJbaV07cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9T1sxXSxlLmF0dGVtcHQoT1swXS5jb250aW51YXRpb24sbCxjKShrKX1yZXR1cm4gYyhrKX1mdW5jdGlvbiBsKGspe2lmKGkrKyx0LmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cpe3QuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDAsYSYmdygpO2xldCBPPXQuZXZlbnRzLmxlbmd0aCx6PU8sTTtmb3IoO3otLTspaWYodC5ldmVudHNbel1bMF09PT0iZXhpdCImJnQuZXZlbnRzW3pdWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7TT10LmV2ZW50c1t6XVsxXS5lbmQ7YnJlYWt9eShpKTtsZXQgRj1PO2Zvcig7Rjx0LmV2ZW50cy5sZW5ndGg7KXQuZXZlbnRzW0ZdWzFdLmVuZD17Li4uTX0sRisrO3JldHVybiBSMSh0LmV2ZW50cyx6KzEsMCx0LmV2ZW50cy5zbGljZShPKSksdC5ldmVudHMubGVuZ3RoPUYsYyhrKX1yZXR1cm4gcyhrKX1mdW5jdGlvbiBjKGspe2lmKGk9PT1yLmxlbmd0aCl7aWYoIWEpcmV0dXJuIGgoayk7aWYoYS5jdXJyZW50Q29uc3RydWN0JiZhLmN1cnJlbnRDb25zdHJ1Y3QuY29uY3JldGUpcmV0dXJuIHgoayk7dC5pbnRlcnJ1cHQ9ISEoYS5jdXJyZW50Q29uc3RydWN0JiYhYS5fZ2ZtVGFibGVEeW5hbWljSW50ZXJydXB0SGFjayl9cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5jaGVjayhHemUsdSxkKShrKX1mdW5jdGlvbiB1KGspe3JldHVybiBhJiZ3KCkseShpKSxoKGspfWZ1bmN0aW9uIGQoayl7cmV0dXJuIHQucGFyc2VyLmxhenlbdC5ub3coKS5saW5lXT1pIT09ci5sZW5ndGgsbz10Lm5vdygpLm9mZnNldCx4KGspfWZ1bmN0aW9uIGgoayl7cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5hdHRlbXB0KEd6ZSxmLHgpKGspfWZ1bmN0aW9uIGYoayl7cmV0dXJuIGkrKyxyLnB1c2goW3QuY3VycmVudENvbnN0cnVjdCx0LmNvbnRhaW5lclN0YXRlXSksaChrKX1mdW5jdGlvbiB4KGspe2lmKGs9PT1udWxsKXthJiZ3KCkseSgwKSxlLmNvbnN1bWUoayk7cmV0dXJufXJldHVybiBhPWF8fHQucGFyc2VyLmZsb3codC5ub3coKSksZS5lbnRlcigiY2h1bmtGbG93Iix7X3Rva2VuaXplcjphLGNvbnRlbnRUeXBlOiJmbG93IixwcmV2aW91czpufSksdihrKX1mdW5jdGlvbiB2KGspe2lmKGs9PT1udWxsKXtiKGUuZXhpdCgiY2h1bmtGbG93IiksITApLHkoMCksZS5jb25zdW1lKGspO3JldHVybn1yZXR1cm4gV2Uoayk/KGUuY29uc3VtZShrKSxiKGUuZXhpdCgiY2h1bmtGbG93IikpLGk9MCx0LmludGVycnVwdD12b2lkIDAscyk6KGUuY29uc3VtZShrKSx2KX1mdW5jdGlvbiBiKGssTyl7bGV0IHo9dC5zbGljZVN0cmVhbShrKTtpZihPJiZ6LnB1c2gobnVsbCksay5wcmV2aW91cz1uLG4mJihuLm5leHQ9ayksbj1rLGEuZGVmaW5lU2tpcChrLnN0YXJ0KSxhLndyaXRlKHopLHQucGFyc2VyLmxhenlbay5zdGFydC5saW5lXSl7bGV0IE09YS5ldmVudHMubGVuZ3RoO2Zvcig7TS0tOylpZihhLmV2ZW50c1tNXVsxXS5zdGFydC5vZmZzZXQ8byYmKCFhLmV2ZW50c1tNXVsxXS5lbmR8fGEuZXZlbnRzW01dWzFdLmVuZC5vZmZzZXQ+bykpcmV0dXJuO2xldCBGPXQuZXZlbnRzLmxlbmd0aCxEPUYsTixSO2Zvcig7RC0tOylpZih0LmV2ZW50c1tEXVswXT09PSJleGl0IiYmdC5ldmVudHNbRF1bMV0udHlwZT09PSJjaHVua0Zsb3ciKXtpZihOKXtSPXQuZXZlbnRzW0RdWzFdLmVuZDticmVha31OPSEwfWZvcih5KGkpLE09RjtNPHQuZXZlbnRzLmxlbmd0aDspdC5ldmVudHNbTV1bMV0uZW5kPXsuLi5SfSxNKys7UjEodC5ldmVudHMsRCsxLDAsdC5ldmVudHMuc2xpY2UoRikpLHQuZXZlbnRzLmxlbmd0aD1NfX1mdW5jdGlvbiB5KGspe2xldCBPPXIubGVuZ3RoO2Zvcig7Ty0tID5rOyl7bGV0IHo9cltPXTt0LmNvbnRhaW5lclN0YXRlPXpbMV0selswXS5leGl0LmNhbGwodCxlKX1yLmxlbmd0aD1rfWZ1bmN0aW9uIHcoKXthLndyaXRlKFtudWxsXSksbj12b2lkIDAsYT12b2lkIDAsdC5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMH19ZnVuY3Rpb24gUmtyKGUsdCxyKXtyZXR1cm4gbXQoZSxlLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5kb2N1bWVudCx0LHIpLCJsaW5lUHJlZml4Iix0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpfXZhciBZemUsR3plLFp6ZT1wKCgpPT57QjEoKTt0cigpO3BzKCk7WXplPXt0b2tlbml6ZTpPa3J9LEd6ZT17dG9rZW5pemU6UmtyfX0pO2Z1bmN0aW9uIEJrcihlKXtsZXQgdD10aGlzLHI9ZS5hdHRlbXB0KGdzLGksZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvd0luaXRpYWwsYSxtdChlLGUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csYSxlLmF0dGVtcHQoUVYsYSkpLCJsaW5lUHJlZml4IikpKTtyZXR1cm4gcjtmdW5jdGlvbiBpKG4pe2lmKG49PT1udWxsKXtlLmNvbnN1bWUobik7cmV0dXJufXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nQmxhbmsiKSxlLmNvbnN1bWUobiksZS5leGl0KCJsaW5lRW5kaW5nQmxhbmsiKSx0LmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHJ9ZnVuY3Rpb24gYShuKXtpZihuPT09bnVsbCl7ZS5jb25zdW1lKG4pO3JldHVybn1yZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShuKSxlLmV4aXQoImxpbmVFbmRpbmciKSx0LmN1cnJlbnRDb25zdHJ1Y3Q9dm9pZCAwLHJ9fXZhciBYemUsUXplPXAoKCk9PntCTSgpO0IxKCk7dHIoKTtYemU9e3Rva2VuaXplOkJrcn19KTtmdW5jdGlvbiBKemUoZSl7cmV0dXJue3Jlc29sdmVBbGw6S3plKGU9PT0idGV4dCI/SGtyOnZvaWQgMCksdG9rZW5pemU6dH07ZnVuY3Rpb24gdChyKXtsZXQgaT10aGlzLGE9dGhpcy5wYXJzZXIuY29uc3RydWN0c1tlXSxuPXIuYXR0ZW1wdChhLG8scyk7cmV0dXJuIG87ZnVuY3Rpb24gbyh1KXtyZXR1cm4gYyh1KT9uKHUpOnModSl9ZnVuY3Rpb24gcyh1KXtpZih1PT09bnVsbCl7ci5jb25zdW1lKHUpO3JldHVybn1yZXR1cm4gci5lbnRlcigiZGF0YSIpLHIuY29uc3VtZSh1KSxsfWZ1bmN0aW9uIGwodSl7cmV0dXJuIGModSk/KHIuZXhpdCgiZGF0YSIpLG4odSkpOihyLmNvbnN1bWUodSksbCl9ZnVuY3Rpb24gYyh1KXtpZih1PT09bnVsbClyZXR1cm4hMDtsZXQgZD1hW3VdLGg9LTE7aWYoZClmb3IoOysraDxkLmxlbmd0aDspe2xldCBmPWRbaF07aWYoIWYucHJldmlvdXN8fGYucHJldmlvdXMuY2FsbChpLGkucHJldmlvdXMpKXJldHVybiEwfXJldHVybiExfX19ZnVuY3Rpb24gS3plKGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocixpKXtsZXQgYT0tMSxuO2Zvcig7KythPD1yLmxlbmd0aDspbj09PXZvaWQgMD9yW2FdJiZyW2FdWzFdLnR5cGU9PT0iZGF0YSImJihuPWEsYSsrKTooIXJbYV18fHJbYV1bMV0udHlwZSE9PSJkYXRhIikmJihhIT09bisyJiYocltuXVsxXS5lbmQ9clthLTFdWzFdLmVuZCxyLnNwbGljZShuKzIsYS1uLTIpLGE9bisyKSxuPXZvaWQgMCk7cmV0dXJuIGU/ZShyLGkpOnJ9fWZ1bmN0aW9uIEhrcihlLHQpe2xldCByPTA7Zm9yKDsrK3I8PWUubGVuZ3RoOylpZigocj09PWUubGVuZ3RofHxlW3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyIpJiZlW3ItMV1bMV0udHlwZT09PSJkYXRhIil7bGV0IGk9ZVtyLTFdWzFdLGE9dC5zbGljZVN0cmVhbShpKSxuPWEubGVuZ3RoLG89LTEscz0wLGw7Zm9yKDtuLS07KXtsZXQgYz1hW25dO2lmKHR5cGVvZiBjPT0ic3RyaW5nIil7Zm9yKG89Yy5sZW5ndGg7Yy5jaGFyQ29kZUF0KG8tMSk9PT0zMjspcysrLG8tLTtpZihvKWJyZWFrO289LTF9ZWxzZSBpZihjPT09LTIpbD0hMCxzKys7ZWxzZSBpZihjIT09LTEpe24rKzticmVha319aWYodC5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJnI9PT1lLmxlbmd0aCYmKHM9MCkscyl7bGV0IGM9e3R5cGU6cj09PWUubGVuZ3RofHxsfHxzPDI/ImxpbmVTdWZmaXgiOiJoYXJkQnJlYWtUcmFpbGluZyIsc3RhcnQ6e19idWZmZXJJbmRleDpuP286aS5zdGFydC5fYnVmZmVySW5kZXgrbyxfaW5kZXg6aS5zdGFydC5faW5kZXgrbixsaW5lOmkuZW5kLmxpbmUsY29sdW1uOmkuZW5kLmNvbHVtbi1zLG9mZnNldDppLmVuZC5vZmZzZXQtc30sZW5kOnsuLi5pLmVuZH19O2kuZW5kPXsuLi5jLnN0YXJ0fSxpLnN0YXJ0Lm9mZnNldD09PWkuZW5kLm9mZnNldD9PYmplY3QuYXNzaWduKGksYyk6KGUuc3BsaWNlKHIsMCxbImVudGVyIixjLHRdLFsiZXhpdCIsYyx0XSkscis9Mil9cisrfXJldHVybiBlfXZhciBlQ2UsdENlLHJDZSxrVT1wKCgpPT57ZUNlPXtyZXNvbHZlQWxsOkt6ZSgpfSx0Q2U9SnplKCJzdHJpbmciKSxyQ2U9SnplKCJ0ZXh0Iil9KTt2YXIgU1U9e307RmUoU1Use2F0dGVudGlvbk1hcmtlcnM6KCk9Plprcixjb250ZW50SW5pdGlhbDooKT0+amtyLGRpc2FibGU6KCk9Plhrcixkb2N1bWVudDooKT0+cWtyLGZsb3c6KCk9PlVrcixmbG93SW5pdGlhbDooKT0+VmtyLGluc2lkZVNwYW46KCk9PllrcixzdHJpbmc6KCk9Pldrcix0ZXh0OigpPT5Ha3J9KTt2YXIgcWtyLGprcixWa3IsVWtyLFdrcixHa3IsWWtyLFprcixYa3IsaUNlPXAoKCk9PntCTSgpO2tVKCk7cWtyPXs0Mjp2YSw0Mzp2YSw0NTp2YSw0ODp2YSw0OTp2YSw1MDp2YSw1MTp2YSw1Mjp2YSw1Mzp2YSw1NDp2YSw1NTp2YSw1Njp2YSw1Nzp2YSw2MjpBTX0samtyPXs5MTpyVX0sVmtyPXtbLTJdOnk3LFstMV06eTcsMzI6eTd9LFVrcj17MzU6YVUsNDI6SjMsNDU6W1JNLEozXSw2MDpvVSw2MTpSTSw5NTpKMyw5NjokTSwxMjY6JE19LFdrcj17Mzg6RU0sOTI6RE19LEdrcj17Wy01XTprNyxbLTRdOms3LFstM106azcsMzM6bFUsMzg6RU0sNDI6eDcsNjA6W0dWLHNVXSw5MTpjVSw5MjpbaVUsRE1dLDkzOlEzLDk1Ong3LDk2OllWfSxZa3I9e251bGw6W3g3LGVDZV19LFprcj17bnVsbDpbNDIsOTVdfSxYa3I9e251bGw6W119fSk7ZnVuY3Rpb24gYUNlKGUsdCxyKXtsZXQgaT17X2J1ZmZlckluZGV4Oi0xLF9pbmRleDowLGxpbmU6ciYmci5saW5lfHwxLGNvbHVtbjpyJiZyLmNvbHVtbnx8MSxvZmZzZXQ6ciYmci5vZmZzZXR8fDB9LGE9e30sbj1bXSxvPVtdLHM9W10sbD0hMCxjPXthdHRlbXB0Ok4oRiksY2hlY2s6TihEKSxjb25zdW1lOk8sZW50ZXI6eixleGl0Ok0saW50ZXJydXB0Ok4oRCx7aW50ZXJydXB0OiEwfSl9LHU9e2NvZGU6bnVsbCxjb250YWluZXJTdGF0ZTp7fSxkZWZpbmVTa2lwOnksZXZlbnRzOltdLG5vdzpiLHBhcnNlcjplLHByZXZpb3VzOm51bGwsc2xpY2VTZXJpYWxpemU6eCxzbGljZVN0cmVhbTp2LHdyaXRlOmZ9LGQ9dC50b2tlbml6ZS5jYWxsKHUsYyksaDtyZXR1cm4gdC5yZXNvbHZlQWxsJiZuLnB1c2godCksdTtmdW5jdGlvbiBmKCQpe3JldHVybiBvPUsxKG8sJCksdygpLG9bby5sZW5ndGgtMV0hPT1udWxsP1tdOihSKHQsMCksdS5ldmVudHM9TTAobix1LmV2ZW50cyx1KSx1LmV2ZW50cyl9ZnVuY3Rpb24geCgkLFQpe3JldHVybiBKa3IodigkKSxUKX1mdW5jdGlvbiB2KCQpe3JldHVybiBRa3IobywkKX1mdW5jdGlvbiBiKCl7bGV0e19idWZmZXJJbmRleDokLF9pbmRleDpULGxpbmU6RSxjb2x1bW46cSxvZmZzZXQ6Qn09aTtyZXR1cm57X2J1ZmZlckluZGV4OiQsX2luZGV4OlQsbGluZTpFLGNvbHVtbjpxLG9mZnNldDpCfX1mdW5jdGlvbiB5KCQpe2FbJC5saW5lXT0kLmNvbHVtbixTKCl9ZnVuY3Rpb24gdygpe2xldCAkO2Zvcig7aS5faW5kZXg8by5sZW5ndGg7KXtsZXQgVD1vW2kuX2luZGV4XTtpZih0eXBlb2YgVD09InN0cmluZyIpZm9yKCQ9aS5faW5kZXgsaS5fYnVmZmVySW5kZXg8MCYmKGkuX2J1ZmZlckluZGV4PTApO2kuX2luZGV4PT09JCYmaS5fYnVmZmVySW5kZXg8VC5sZW5ndGg7KWsoVC5jaGFyQ29kZUF0KGkuX2J1ZmZlckluZGV4KSk7ZWxzZSBrKFQpfX1mdW5jdGlvbiBrKCQpe2w9dm9pZCAwLGg9JCxkPWQoJCl9ZnVuY3Rpb24gTygkKXtXZSgkKT8oaS5saW5lKyssaS5jb2x1bW49MSxpLm9mZnNldCs9JD09PS0zPzI6MSxTKCkpOiQhPT0tMSYmKGkuY29sdW1uKyssaS5vZmZzZXQrKyksaS5fYnVmZmVySW5kZXg8MD9pLl9pbmRleCsrOihpLl9idWZmZXJJbmRleCsrLGkuX2J1ZmZlckluZGV4PT09b1tpLl9pbmRleF0ubGVuZ3RoJiYoaS5fYnVmZmVySW5kZXg9LTEsaS5faW5kZXgrKykpLHUucHJldmlvdXM9JCxsPSEwfWZ1bmN0aW9uIHooJCxUKXtsZXQgRT1UfHx7fTtyZXR1cm4gRS50eXBlPSQsRS5zdGFydD1iKCksdS5ldmVudHMucHVzaChbImVudGVyIixFLHVdKSxzLnB1c2goRSksRX1mdW5jdGlvbiBNKCQpe2xldCBUPXMucG9wKCk7cmV0dXJuIFQuZW5kPWIoKSx1LmV2ZW50cy5wdXNoKFsiZXhpdCIsVCx1XSksVH1mdW5jdGlvbiBGKCQsVCl7UigkLFQuZnJvbSl9ZnVuY3Rpb24gRCgkLFQpe1QucmVzdG9yZSgpfWZ1bmN0aW9uIE4oJCxUKXtyZXR1cm4gRTtmdW5jdGlvbiBFKHEsQixHKXtsZXQgZWUsUCxnZSx3ZTtyZXR1cm4gQXJyYXkuaXNBcnJheShxKT9uZShxKToidG9rZW5pemUiaW4gcT9uZShbcV0pOkkocSk7ZnVuY3Rpb24gSShMKXtyZXR1cm4gVTtmdW5jdGlvbiBVKFYpe2xldCBYPVYhPT1udWxsJiZMW1ZdLGRlPVYhPT1udWxsJiZMLm51bGwsdmU9Wy4uLkFycmF5LmlzQXJyYXkoWCk/WDpYP1tYXTpbXSwuLi5BcnJheS5pc0FycmF5KGRlKT9kZTpkZT9bZGVdOltdXTtyZXR1cm4gbmUodmUpKFYpfX1mdW5jdGlvbiBuZShMKXtyZXR1cm4gZWU9TCxQPTAsTC5sZW5ndGg9PT0wP0c6a2UoTFtQXSl9ZnVuY3Rpb24ga2UoTCl7cmV0dXJuIFU7ZnVuY3Rpb24gVShWKXtyZXR1cm4gd2U9XygpLGdlPUwsTC5wYXJ0aWFsfHwodS5jdXJyZW50Q29uc3RydWN0PUwpLEwubmFtZSYmdS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoTC5uYW1lKT9BKFYpOkwudG9rZW5pemUuY2FsbChUP09iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZSh1KSxUKTp1LGMsWSxBKShWKX19ZnVuY3Rpb24gWShMKXtyZXR1cm4gbD0hMCwkKGdlLHdlKSxCfWZ1bmN0aW9uIEEoTCl7cmV0dXJuIGw9ITAsd2UucmVzdG9yZSgpLCsrUDxlZS5sZW5ndGg/a2UoZWVbUF0pOkd9fX1mdW5jdGlvbiBSKCQsVCl7JC5yZXNvbHZlQWxsJiYhbi5pbmNsdWRlcygkKSYmbi5wdXNoKCQpLCQucmVzb2x2ZSYmUjEodS5ldmVudHMsVCx1LmV2ZW50cy5sZW5ndGgtVCwkLnJlc29sdmUodS5ldmVudHMuc2xpY2UoVCksdSkpLCQucmVzb2x2ZVRvJiYodS5ldmVudHM9JC5yZXNvbHZlVG8odS5ldmVudHMsdSkpfWZ1bmN0aW9uIF8oKXtsZXQgJD1iKCksVD11LnByZXZpb3VzLEU9dS5jdXJyZW50Q29uc3RydWN0LHE9dS5ldmVudHMubGVuZ3RoLEI9QXJyYXkuZnJvbShzKTtyZXR1cm57ZnJvbTpxLHJlc3RvcmU6R307ZnVuY3Rpb24gRygpe2k9JCx1LnByZXZpb3VzPVQsdS5jdXJyZW50Q29uc3RydWN0PUUsdS5ldmVudHMubGVuZ3RoPXEscz1CLFMoKX19ZnVuY3Rpb24gUygpe2kubGluZSBpbiBhJiZpLmNvbHVtbjwyJiYoaS5jb2x1bW49YVtpLmxpbmVdLGkub2Zmc2V0Kz1hW2kubGluZV0tMSl9fWZ1bmN0aW9uIFFrcihlLHQpe2xldCByPXQuc3RhcnQuX2luZGV4LGk9dC5zdGFydC5fYnVmZmVySW5kZXgsYT10LmVuZC5faW5kZXgsbj10LmVuZC5fYnVmZmVySW5kZXgsbztpZihyPT09YSlvPVtlW3JdLnNsaWNlKGksbildO2Vsc2V7aWYobz1lLnNsaWNlKHIsYSksaT4tMSl7bGV0IHM9b1swXTt0eXBlb2Ygcz09InN0cmluZyI/b1swXT1zLnNsaWNlKGkpOm8uc2hpZnQoKX1uPjAmJm8ucHVzaChlW2FdLnNsaWNlKDAsbikpfXJldHVybiBvfWZ1bmN0aW9uIEprcihlLHQpe2xldCByPS0xLGk9W10sYTtmb3IoOysrcjxlLmxlbmd0aDspe2xldCBuPWVbcl0sbztpZih0eXBlb2Ygbj09InN0cmluZyIpbz1uO2Vsc2Ugc3dpdGNoKG4pe2Nhc2UtNTp7bz0iXHIiO2JyZWFrfWNhc2UtNDp7bz1gCmA7YnJlYWt9Y2FzZS0zOntvPWBccgpgO2JyZWFrfWNhc2UtMjp7bz10PyIgIjoiCSI7YnJlYWt9Y2FzZS0xOntpZighdCYmYSljb250aW51ZTtvPSIgIjticmVha31kZWZhdWx0Om89U3RyaW5nLmZyb21DaGFyQ29kZShuKX1hPW49PT0tMixpLnB1c2gobyl9cmV0dXJuIGkuam9pbigiIil9dmFyIG5DZT1wKCgpPT57dHIoKTtwcygpO3Y3KCl9KTtmdW5jdGlvbiBTNyhlKXtsZXQgaT17Y29uc3RydWN0czp6TShbU1UsLi4uKGV8fHt9KS5leHRlbnNpb25zfHxbXV0pLGNvbnRlbnQ6YShVemUpLGRlZmluZWQ6W10sZG9jdW1lbnQ6YShZemUpLGZsb3c6YShYemUpLGxhenk6e30sc3RyaW5nOmEodENlKSx0ZXh0OmEockNlKX07cmV0dXJuIGk7ZnVuY3Rpb24gYShuKXtyZXR1cm4gbztmdW5jdGlvbiBvKHMpe3JldHVybiBhQ2UoaSxuLHMpfX19dmFyIHpVPXAoKCk9PntUTSgpO1d6ZSgpO1p6ZSgpO1F6ZSgpO2tVKCk7aUNlKCk7bkNlKCl9KTtmdW5jdGlvbiB6NyhlKXtmb3IoOyFJTShlKTspO3JldHVybiBlfXZhciBDVT1wKCgpPT57WFYoKX0pO2Z1bmN0aW9uIEM3KCl7bGV0IGU9MSx0PSIiLHI9ITAsaTtyZXR1cm4gYTtmdW5jdGlvbiBhKG4sbyxzKXtsZXQgbD1bXSxjLHUsZCxoLGY7Zm9yKG49dCsodHlwZW9mIG49PSJzdHJpbmciP24udG9TdHJpbmcoKTpuZXcgVGV4dERlY29kZXIob3x8dm9pZCAwKS5kZWNvZGUobikpLGQ9MCx0PSIiLHImJihuLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmZCsrLHI9dm9pZCAwKTtkPG4ubGVuZ3RoOyl7aWYob0NlLmxhc3RJbmRleD1kLGM9b0NlLmV4ZWMobiksaD1jJiZjLmluZGV4IT09dm9pZCAwP2MuaW5kZXg6bi5sZW5ndGgsZj1uLmNoYXJDb2RlQXQoaCksIWMpe3Q9bi5zbGljZShkKTticmVha31pZihmPT09MTAmJmQ9PT1oJiZpKWwucHVzaCgtMyksaT12b2lkIDA7ZWxzZSBzd2l0Y2goaSYmKGwucHVzaCgtNSksaT12b2lkIDApLGQ8aCYmKGwucHVzaChuLnNsaWNlKGQsaCkpLGUrPWgtZCksZil7Y2FzZSAwOntsLnB1c2goNjU1MzMpLGUrKzticmVha31jYXNlIDk6e2Zvcih1PU1hdGguY2VpbChlLzQpKjQsbC5wdXNoKC0yKTtlKys8dTspbC5wdXNoKC0xKTticmVha31jYXNlIDEwOntsLnB1c2goLTQpLGU9MTticmVha31kZWZhdWx0Omk9ITAsZT0xfWQ9aCsxfXJldHVybiBzJiYoaSYmbC5wdXNoKC01KSx0JiZsLnB1c2godCksbC5wdXNoKG51bGwpKSxsfX12YXIgb0NlLFRVPXAoKCk9PntvQ2U9L1tcMFx0XG5ccl0vZ30pO2Z1bmN0aW9uIGdIMShlLHQscil7cmV0dXJuIHR5cGVvZiB0IT0ic3RyaW5nIiYmKHI9dCx0PXZvaWQgMCksd1UocikoejcoUzcocikuZG9jdW1lbnQoKS53cml0ZShDNygpKGUsdCwhMCkpKSl9dmFyIHNDZT1wKCgpPT57TVUoKTt6VSgpO0NVKCk7VFUoKTtNVSgpO3pVKCk7Q1UoKTtUVSgpfSk7ZnVuY3Rpb24gX1UoZSx0LHIpe3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCImJihyPXQsdD12b2lkIDApLEtrcihyKSh6NyhTNyhyKS5kb2N1bWVudCgpLndyaXRlKEM3KCkoZSx0LCEwKSkpKX1mdW5jdGlvbiBLa3IoZSl7bGV0IHQ9e3RyYW5zZm9ybXM6W10sY2FuQ29udGFpbkVvbHM6WyJlbXBoYXNpcyIsImZyYWdtZW50IiwiaGVhZGluZyIsInBhcmFncmFwaCIsInN0cm9uZyJdLGVudGVyOnthdXRvbGluazpuKHVlKSxhdXRvbGlua1Byb3RvY29sOk4sYXV0b2xpbmtFbWFpbDpOLGF0eEhlYWRpbmc6bihXKSxibG9ja1F1b3RlOm4oViksY2hhcmFjdGVyRXNjYXBlOk4sY2hhcmFjdGVyUmVmZXJlbmNlOk4sY29kZUZlbmNlZDpuKFgpLGNvZGVGZW5jZWRGZW5jZUluZm86byxjb2RlRmVuY2VkRmVuY2VNZXRhOm8sY29kZUluZGVudGVkOm4oWCxvKSxjb2RlVGV4dDpuKGRlLG8pLGNvZGVUZXh0RGF0YTpOLGRhdGE6Tixjb2RlRmxvd1ZhbHVlOk4sZGVmaW5pdGlvbjpuKHZlKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6byxkZWZpbml0aW9uTGFiZWxTdHJpbmc6byxkZWZpbml0aW9uVGl0bGVTdHJpbmc6byxlbXBoYXNpczpuKExlKSxoYXJkQnJlYWtFc2NhcGU6bihIKSxoYXJkQnJlYWtUcmFpbGluZzpuKEgpLGh0bWxGbG93Om4odGUsbyksaHRtbEZsb3dEYXRhOk4saHRtbFRleHQ6bih0ZSxvKSxodG1sVGV4dERhdGE6TixpbWFnZTpuKGJlKSxsYWJlbDpvLGxpbms6bih1ZSksbGlzdEl0ZW06bihoZSksbGlzdEl0ZW1WYWx1ZTpoLGxpc3RPcmRlcmVkOm4oQ2UsZCksbGlzdFVub3JkZXJlZDpuKENlKSxwYXJhZ3JhcGg6bihpZSkscmVmZXJlbmNlOkkscmVmZXJlbmNlU3RyaW5nOm8scmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpvLHJlc291cmNlVGl0bGVTdHJpbmc6byxzZXRleHRIZWFkaW5nOm4oVyksc3Ryb25nOm4oU2UpLHRoZW1hdGljQnJlYWs6bihaZSl9LGV4aXQ6e2F0eEhlYWRpbmc6bCgpLGF0eEhlYWRpbmdTZXF1ZW5jZTp6LGF1dG9saW5rOmwoKSxhdXRvbGlua0VtYWlsOlUsYXV0b2xpbmtQcm90b2NvbDpMLGJsb2NrUXVvdGU6bCgpLGNoYXJhY3RlckVzY2FwZVZhbHVlOlIsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6a2UsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzprZSxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpZLGNoYXJhY3RlclJlZmVyZW5jZTpBLGNvZGVGZW5jZWQ6bChiKSxjb2RlRmVuY2VkRmVuY2U6dixjb2RlRmVuY2VkRmVuY2VJbmZvOmYsY29kZUZlbmNlZEZlbmNlTWV0YTp4LGNvZGVGbG93VmFsdWU6Uixjb2RlSW5kZW50ZWQ6bCh5KSxjb2RlVGV4dDpsKEUpLGNvZGVUZXh0RGF0YTpSLGRhdGE6UixkZWZpbml0aW9uOmwoKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6TyxkZWZpbml0aW9uTGFiZWxTdHJpbmc6dyxkZWZpbml0aW9uVGl0bGVTdHJpbmc6ayxlbXBoYXNpczpsKCksaGFyZEJyZWFrRXNjYXBlOmwoUyksaGFyZEJyZWFrVHJhaWxpbmc6bChTKSxodG1sRmxvdzpsKCQpLGh0bWxGbG93RGF0YTpSLGh0bWxUZXh0OmwoVCksaHRtbFRleHREYXRhOlIsaW1hZ2U6bChCKSxsYWJlbDplZSxsYWJlbFRleHQ6RyxsaW5lRW5kaW5nOl8sbGluazpsKHEpLGxpc3RJdGVtOmwoKSxsaXN0T3JkZXJlZDpsKCksbGlzdFVub3JkZXJlZDpsKCkscGFyYWdyYXBoOmwoKSxyZWZlcmVuY2VTdHJpbmc6bmUscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpQLHJlc291cmNlVGl0bGVTdHJpbmc6Z2UscmVzb3VyY2U6d2Usc2V0ZXh0SGVhZGluZzpsKEQpLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6RixzZXRleHRIZWFkaW5nVGV4dDpNLHN0cm9uZzpsKCksdGhlbWF0aWNCcmVhazpsKCl9fTtjQ2UodCwoZXx8e30pLm1kYXN0RXh0ZW5zaW9uc3x8W10pO2xldCByPXt9O3JldHVybiBpO2Z1bmN0aW9uIGkoSyl7bGV0IFo9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxKPXtzdGFjazpbWl0sdG9rZW5TdGFjazpbXSxjb25maWc6dCxlbnRlcjpzLGV4aXQ6YyxidWZmZXI6byxyZXN1bWU6dSxkYXRhOnJ9LG1lPVtdLEVlPS0xO2Zvcig7KytFZTxLLmxlbmd0aDspaWYoS1tFZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fEtbRWVdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpaWYoS1tFZV1bMF09PT0iZW50ZXIiKW1lLnB1c2goRWUpO2Vsc2V7bGV0IFVlPW1lLnBvcCgpO0VlPWEoSyxVZSxFZSl9Zm9yKEVlPS0xOysrRWU8Sy5sZW5ndGg7KXtsZXQgVWU9dFtLW0VlXVswXV07bENlLmNhbGwoVWUsS1tFZV1bMV0udHlwZSkmJlVlW0tbRWVdWzFdLnR5cGVdLmNhbGwoT2JqZWN0LmFzc2lnbih7c2xpY2VTZXJpYWxpemU6S1tFZV1bMl0uc2xpY2VTZXJpYWxpemV9LEopLEtbRWVdWzFdKX1pZihKLnRva2VuU3RhY2subGVuZ3RoPjApe2xldCBVZT1KLnRva2VuU3RhY2tbSi50b2tlblN0YWNrLmxlbmd0aC0xXTsoVWVbMV18fGRDZSkuY2FsbChKLHZvaWQgMCxVZVswXSl9Zm9yKFoucG9zaXRpb249e3N0YXJ0OmswKEsubGVuZ3RoPjA/S1swXVsxXS5zdGFydDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSksZW5kOmswKEsubGVuZ3RoPjA/S1tLLmxlbmd0aC0yXVsxXS5lbmQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pfSxFZT0tMTsrK0VlPHQudHJhbnNmb3Jtcy5sZW5ndGg7KVo9dC50cmFuc2Zvcm1zW0VlXShaKXx8WjtyZXR1cm4gWn1mdW5jdGlvbiBhKEssWixKKXtsZXQgbWU9Wi0xLEVlPS0xLFVlPSExLE10LGl0LEx0LFd0O2Zvcig7KyttZTw9Sjspe2xldCBhZT1LW21lXTtzd2l0Y2goYWVbMV0udHlwZSl7Y2FzZSJsaXN0VW5vcmRlcmVkIjpjYXNlImxpc3RPcmRlcmVkIjpjYXNlImJsb2NrUXVvdGUiOnthZVswXT09PSJlbnRlciI/RWUrKzpFZS0tLFd0PXZvaWQgMDticmVha31jYXNlImxpbmVFbmRpbmdCbGFuayI6e2FlWzBdPT09ImVudGVyIiYmKE10JiYhV3QmJiFFZSYmIUx0JiYoTHQ9bWUpLFd0PXZvaWQgMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpjYXNlImxpc3RJdGVtVmFsdWUiOmNhc2UibGlzdEl0ZW1NYXJrZXIiOmNhc2UibGlzdEl0ZW1QcmVmaXgiOmNhc2UibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIjpicmVhaztkZWZhdWx0Old0PXZvaWQgMH1pZighRWUmJmFlWzBdPT09ImVudGVyIiYmYWVbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCJ8fEVlPT09LTEmJmFlWzBdPT09ImV4aXQiJiYoYWVbMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkInx8YWVbMV0udHlwZT09PSJsaXN0T3JkZXJlZCIpKXtpZihNdCl7bGV0IHNlPW1lO2ZvcihpdD12b2lkIDA7c2UtLTspe2xldCBfZT1LW3NlXTtpZihfZVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxfZVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpe2lmKF9lWzBdPT09ImV4aXQiKWNvbnRpbnVlO2l0JiYoS1tpdF1bMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIixVZT0hMCksX2VbMV0udHlwZT0ibGluZUVuZGluZyIsaXQ9c2V9ZWxzZSBpZighKF9lWzFdLnR5cGU9PT0ibGluZVByZWZpeCJ8fF9lWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeCJ8fF9lWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UifHxfZVsxXS50eXBlPT09ImJsb2NrUXVvdGVNYXJrZXIifHxfZVsxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWt9THQmJighaXR8fEx0PGl0KSYmKE10Ll9zcHJlYWQ9ITApLE10LmVuZD1PYmplY3QuYXNzaWduKHt9LGl0P0tbaXRdWzFdLnN0YXJ0OmFlWzFdLmVuZCksSy5zcGxpY2UoaXR8fG1lLDAsWyJleGl0IixNdCxhZVsyXV0pLG1lKyssSisrfWlmKGFlWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiKXtsZXQgc2U9e3R5cGU6Imxpc3RJdGVtIixfc3ByZWFkOiExLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYWVbMV0uc3RhcnQpLGVuZDp2b2lkIDB9O010PXNlLEsuc3BsaWNlKG1lLDAsWyJlbnRlciIsc2UsYWVbMl1dKSxtZSsrLEorKyxMdD12b2lkIDAsV3Q9ITB9fX1yZXR1cm4gS1taXVsxXS5fc3ByZWFkPVVlLEp9ZnVuY3Rpb24gbihLLFope3JldHVybiBKO2Z1bmN0aW9uIEoobWUpe3MuY2FsbCh0aGlzLEsobWUpLG1lKSxaJiZaLmNhbGwodGhpcyxtZSl9fWZ1bmN0aW9uIG8oKXt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImZyYWdtZW50IixjaGlsZHJlbjpbXX0pfWZ1bmN0aW9uIHMoSyxaLEope3RoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4ucHVzaChLKSx0aGlzLnN0YWNrLnB1c2goSyksdGhpcy50b2tlblN0YWNrLnB1c2goW1osSnx8dm9pZCAwXSksSy5wb3NpdGlvbj17c3RhcnQ6azAoWi5zdGFydCksZW5kOnZvaWQgMH19ZnVuY3Rpb24gbChLKXtyZXR1cm4gWjtmdW5jdGlvbiBaKEope0smJksuY2FsbCh0aGlzLEopLGMuY2FsbCh0aGlzLEopfX1mdW5jdGlvbiBjKEssWil7bGV0IEo9dGhpcy5zdGFjay5wb3AoKSxtZT10aGlzLnRva2VuU3RhY2sucG9wKCk7aWYobWUpbWVbMF0udHlwZSE9PUsudHlwZSYmKFo/Wi5jYWxsKHRoaXMsSyxtZVswXSk6KG1lWzFdfHxkQ2UpLmNhbGwodGhpcyxLLG1lWzBdKSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitLLnR5cGUrImAgKCIrdjAoe3N0YXJ0Oksuc3RhcnQsZW5kOksuZW5kfSkrIik6IGl0XHUyMDE5cyBub3Qgb3BlbiIpO0oucG9zaXRpb24uZW5kPWswKEsuZW5kKX1mdW5jdGlvbiB1KCl7cmV0dXJuIFczKHRoaXMuc3RhY2sucG9wKCkpfWZ1bmN0aW9uIGQoKXt0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPSEwfWZ1bmN0aW9uIGgoSyl7aWYodGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZSl7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtaLnN0YXJ0PU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKEspLDEwKSx0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPXZvaWQgMH19ZnVuY3Rpb24gZigpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oubGFuZz1LfWZ1bmN0aW9uIHgoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLm1ldGE9S31mdW5jdGlvbiB2KCl7dGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlfHwodGhpcy5idWZmZXIoKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9ITApfWZ1bmN0aW9uIGIoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnZhbHVlPUsucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIiksdGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlPXZvaWQgMH1mdW5jdGlvbiB5KCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT1LLnJlcGxhY2UoLyhccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIHcoSyl7bGV0IFo9dGhpcy5yZXN1bWUoKSxKPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Si5sYWJlbD1aLEouaWRlbnRpZmllcj1MMSh0aGlzLnNsaWNlU2VyaWFsaXplKEspKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGsoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnRpdGxlPUt9ZnVuY3Rpb24gTygpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oudXJsPUt9ZnVuY3Rpb24geihLKXtsZXQgWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKCFaLmRlcHRoKXtsZXQgSj10aGlzLnNsaWNlU2VyaWFsaXplKEspLmxlbmd0aDtaLmRlcHRoPUp9fWZ1bmN0aW9uIE0oKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz0hMH1mdW5jdGlvbiBGKEspe2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi5kZXB0aD10aGlzLnNsaWNlU2VyaWFsaXplKEspLmNvZGVQb2ludEF0KDApPT09NjE/MToyfWZ1bmN0aW9uIEQoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz12b2lkIDB9ZnVuY3Rpb24gTihLKXtsZXQgSj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLG1lPUpbSi5sZW5ndGgtMV07KCFtZXx8bWUudHlwZSE9PSJ0ZXh0IikmJihtZT1JZSgpLG1lLnBvc2l0aW9uPXtzdGFydDprMChLLnN0YXJ0KSxlbmQ6dm9pZCAwfSxKLnB1c2gobWUpKSx0aGlzLnN0YWNrLnB1c2gobWUpfWZ1bmN0aW9uIFIoSyl7bGV0IFo9dGhpcy5zdGFjay5wb3AoKTtaLnZhbHVlKz10aGlzLnNsaWNlU2VyaWFsaXplKEspLFoucG9zaXRpb24uZW5kPWswKEsuZW5kKX1mdW5jdGlvbiBfKEspe2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmF0SGFyZEJyZWFrKXtsZXQgSj1aLmNoaWxkcmVuW1ouY2hpbGRyZW4ubGVuZ3RoLTFdO0oucG9zaXRpb24uZW5kPWswKEsuZW5kKSx0aGlzLmRhdGEuYXRIYXJkQnJlYWs9dm9pZCAwO3JldHVybn0hdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcmJnQuY2FuQ29udGFpbkVvbHMuaW5jbHVkZXMoWi50eXBlKSYmKE4uY2FsbCh0aGlzLEspLFIuY2FsbCh0aGlzLEspKX1mdW5jdGlvbiBTKCl7dGhpcy5kYXRhLmF0SGFyZEJyZWFrPSEwfWZ1bmN0aW9uICQoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnZhbHVlPUt9ZnVuY3Rpb24gVCgpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oudmFsdWU9S31mdW5jdGlvbiBFKCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT1LfWZ1bmN0aW9uIHEoKXtsZXQgSz10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IFo9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7Sy50eXBlKz0iUmVmZXJlbmNlIixLLnJlZmVyZW5jZVR5cGU9WixkZWxldGUgSy51cmwsZGVsZXRlIEsudGl0bGV9ZWxzZSBkZWxldGUgSy5pZGVudGlmaWVyLGRlbGV0ZSBLLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBCKCl7bGV0IEs9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2xldCBaPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO0sudHlwZSs9IlJlZmVyZW5jZSIsSy5yZWZlcmVuY2VUeXBlPVosZGVsZXRlIEsudXJsLGRlbGV0ZSBLLnRpdGxlfWVsc2UgZGVsZXRlIEsuaWRlbnRpZmllcixkZWxldGUgSy5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gRyhLKXtsZXQgWj10aGlzLnNsaWNlU2VyaWFsaXplKEspLEo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtKLmxhYmVsPWtNKFopLEouaWRlbnRpZmllcj1MMShaKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGVlKCl7bGV0IEs9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXSxaPXRoaXMucmVzdW1lKCksSj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZT0hMCxKLnR5cGU9PT0ibGluayIpe2xldCBtZT1LLmNoaWxkcmVuO0ouY2hpbGRyZW49bWV9ZWxzZSBKLmFsdD1afWZ1bmN0aW9uIFAoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD1LfWZ1bmN0aW9uIGdlKCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi50aXRsZT1LfWZ1bmN0aW9uIHdlKCl7dGhpcy5kYXRhLmluUmVmZXJlbmNlPXZvaWQgMH1mdW5jdGlvbiBJKCl7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImNvbGxhcHNlZCJ9ZnVuY3Rpb24gbmUoSyl7bGV0IFo9dGhpcy5yZXN1bWUoKSxKPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Si5sYWJlbD1aLEouaWRlbnRpZmllcj1MMSh0aGlzLnNsaWNlU2VyaWFsaXplKEspKS50b0xvd2VyQ2FzZSgpLHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJmdWxsIn1mdW5jdGlvbiBrZShLKXt0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT1LLnR5cGV9ZnVuY3Rpb24gWShLKXtsZXQgWj10aGlzLnNsaWNlU2VyaWFsaXplKEspLEo9dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGUsbWU7Sj8obWU9U3UoWixKPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KSx0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT12b2lkIDApOm1lPXcwKFopO2xldCBFZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0VlLnZhbHVlKz1tZX1mdW5jdGlvbiBBKEspe2xldCBaPXRoaXMuc3RhY2sucG9wKCk7Wi5wb3NpdGlvbi5lbmQ9azAoSy5lbmQpfWZ1bmN0aW9uIEwoSyl7Ui5jYWxsKHRoaXMsSyk7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD10aGlzLnNsaWNlU2VyaWFsaXplKEspfWZ1bmN0aW9uIFUoSyl7Ui5jYWxsKHRoaXMsSyk7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD0ibWFpbHRvOiIrdGhpcy5zbGljZVNlcmlhbGl6ZShLKX1mdW5jdGlvbiBWKCl7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBYKCl7cmV0dXJue3R5cGU6ImNvZGUiLGxhbmc6bnVsbCxtZXRhOm51bGwsdmFsdWU6IiJ9fWZ1bmN0aW9uIGRlKCl7cmV0dXJue3R5cGU6ImlubGluZUNvZGUiLHZhbHVlOiIifX1mdW5jdGlvbiB2ZSgpe3JldHVybnt0eXBlOiJkZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOm51bGwsdGl0bGU6bnVsbCx1cmw6IiJ9fWZ1bmN0aW9uIExlKCl7cmV0dXJue3R5cGU6ImVtcGhhc2lzIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gVygpe3JldHVybnt0eXBlOiJoZWFkaW5nIixkZXB0aDowLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBIKCl7cmV0dXJue3R5cGU6ImJyZWFrIn19ZnVuY3Rpb24gdGUoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIGJlKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24gdWUoKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uIENlKEspe3JldHVybnt0eXBlOiJsaXN0IixvcmRlcmVkOksudHlwZT09PSJsaXN0T3JkZXJlZCIsc3RhcnQ6bnVsbCxzcHJlYWQ6Sy5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBoZShLKXtyZXR1cm57dHlwZToibGlzdEl0ZW0iLHNwcmVhZDpLLl9zcHJlYWQsY2hlY2tlZDpudWxsLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBpZSgpe3JldHVybnt0eXBlOiJwYXJhZ3JhcGgiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBTZSgpe3JldHVybnt0eXBlOiJzdHJvbmciLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBJZSgpe3JldHVybnt0eXBlOiJ0ZXh0Iix2YWx1ZToiIn19ZnVuY3Rpb24gWmUoKXtyZXR1cm57dHlwZToidGhlbWF0aWNCcmVhayJ9fX1mdW5jdGlvbiBrMChlKXtyZXR1cm57bGluZTplLmxpbmUsY29sdW1uOmUuY29sdW1uLG9mZnNldDplLm9mZnNldH19ZnVuY3Rpb24gY0NlKGUsdCl7bGV0IHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KXtsZXQgaT10W3JdO0FycmF5LmlzQXJyYXkoaSk/Y0NlKGUsaSk6ZVNyKGUsaSl9fWZ1bmN0aW9uIGVTcihlLHQpe2xldCByO2ZvcihyIGluIHQpaWYobENlLmNhbGwodCxyKSlzd2l0Y2gocil7Y2FzZSJjYW5Db250YWluRW9scyI6e2xldCBpPXRbcl07aSYmZVtyXS5wdXNoKC4uLmkpO2JyZWFrfWNhc2UidHJhbnNmb3JtcyI6e2xldCBpPXRbcl07aSYmZVtyXS5wdXNoKC4uLmkpO2JyZWFrfWNhc2UiZW50ZXIiOmNhc2UiZXhpdCI6e2xldCBpPXRbcl07aSYmT2JqZWN0LmFzc2lnbihlW3JdLGkpO2JyZWFrfX19ZnVuY3Rpb24gZENlKGUsdCl7dGhyb3cgZT9uZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitlLnR5cGUrImAgKCIrdjAoe3N0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkrIik6IGEgZGlmZmVyZW50IHRva2VuIChgIit0LnR5cGUrImAsICIrdjAoe3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSkrIikgaXMgb3BlbiIpOm5ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGRvY3VtZW50LCBhIHRva2VuIChgIit0LnR5cGUrImAsICIrdjAoe3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSkrIikgaXMgc3RpbGwgb3BlbiIpfXZhciBsQ2UsdUNlPXAoKCk9Pnt2TSgpO3NDZSgpO01NKCk7RFYoKTt5MCgpO2I3KCk7VWooKTtsQ2U9e30uaGFzT3duUHJvcGVydHl9KTt2YXIgcENlPXAoKCk9Pnt1Q2UoKX0pO2Z1bmN0aW9uIFR1KGUpe2xldCB0PXRoaXM7dC5wYXJzZXI9cjtmdW5jdGlvbiByKGkpe3JldHVybiBfVShpLHsuLi50LmRhdGEoInNldHRpbmdzIiksLi4uZSxleHRlbnNpb25zOnQuZGF0YSgibWljcm9tYXJrRXh0ZW5zaW9ucyIpfHxbXSxtZGFzdEV4dGVuc2lvbnM6dC5kYXRhKCJmcm9tTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9fXZhciBoQ2U9cCgoKT0+e3BDZSgpfSk7dmFyIGZDZT1wKCgpPT57aENlKCl9KTt2YXIgbUNlPWplKChOSDEsTFUpPT57KGZ1bmN0aW9uKCl7dmFyIGU7dHlwZW9mIExVPCJ1Ij9lPUxVLmV4cG9ydHM9aTplPShmdW5jdGlvbigpe3JldHVybiB0aGlzfHwoMCxldmFsKSgidGhpcyIpfSkoKSxlLmZvcm1hdD1pLGUudnNwcmludGY9cix0eXBlb2YgY29uc29sZTwidSImJnR5cGVvZiBjb25zb2xlLmxvZz09ImZ1bmN0aW9uIiYmKGUucHJpbnRmPXQpO2Z1bmN0aW9uIHQoKXtjb25zb2xlLmxvZyhpLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9ZnVuY3Rpb24gcihhLG4pe3JldHVybiBpLmFwcGx5KG51bGwsW2FdLmNvbmNhdChuKSl9ZnVuY3Rpb24gaShhKXtmb3IodmFyIG49MSxvPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxzPTAsbD1hLmxlbmd0aCxjPSIiLHUsZD0hMSxoLGYseD0hMSx2LGI9ZnVuY3Rpb24oKXtyZXR1cm4gb1tuKytdfSx5PWZ1bmN0aW9uKCl7Zm9yKHZhciB3PSIiOy9cZC8udGVzdChhW3NdKTspdys9YVtzKytdLHU9YVtzXTtyZXR1cm4gdy5sZW5ndGg+MD9wYXJzZUludCh3KTpudWxsfTtzPGw7KytzKWlmKHU9YVtzXSxkKXN3aXRjaChkPSExLHU9PSIuIj8oeD0hMSx1PWFbKytzXSk6dT09IjAiJiZhW3MrMV09PSIuIj8oeD0hMCxzKz0yLHU9YVtzXSk6eD0hMCx2PXkoKSx1KXtjYXNlImIiOmMrPXBhcnNlSW50KGIoKSwxMCkudG9TdHJpbmcoMik7YnJlYWs7Y2FzZSJjIjpoPWIoKSx0eXBlb2YgaD09InN0cmluZyJ8fGggaW5zdGFuY2VvZiBTdHJpbmc/Yys9aDpjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGgsMTApKTticmVhaztjYXNlImQiOmMrPXBhcnNlSW50KGIoKSwxMCk7YnJlYWs7Y2FzZSJmIjpmPVN0cmluZyhwYXJzZUZsb2F0KGIoKSkudG9GaXhlZCh2fHw2KSksYys9eD9mOmYucmVwbGFjZSgvXjAvLCIiKTticmVhaztjYXNlImoiOmMrPUpTT04uc3RyaW5naWZ5KGIoKSk7YnJlYWs7Y2FzZSJvIjpjKz0iMCIrcGFyc2VJbnQoYigpLDEwKS50b1N0cmluZyg4KTticmVhaztjYXNlInMiOmMrPWIoKTticmVhaztjYXNlIngiOmMrPSIweCIrcGFyc2VJbnQoYigpLDEwKS50b1N0cmluZygxNik7YnJlYWs7Y2FzZSJYIjpjKz0iMHgiK3BhcnNlSW50KGIoKSwxMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7YnJlYWs7ZGVmYXVsdDpjKz11O2JyZWFrfWVsc2UgdT09PSIlIj9kPSEwOmMrPXU7cmV0dXJuIGN9fSkoKX0pO2Z1bmN0aW9uIEszKGUpe3JldHVybiB0LmRpc3BsYXlOYW1lPWUuZGlzcGxheU5hbWV8fGUubmFtZSx0O2Z1bmN0aW9uIHQociwuLi5pKXtsZXQgYT1yJiYoMCxnQ2UuZGVmYXVsdCkociwuLi5pKTtyZXR1cm4gbmV3IGUoYSl9fXZhciBnQ2UsVDcsYkNlPXAoKCk9PntnQ2U9ZXIobUNlKCksMSksVDc9T2JqZWN0LmFzc2lnbihLMyhFcnJvcikse2V2YWw6SzMoRXZhbEVycm9yKSxyYW5nZTpLMyhSYW5nZUVycm9yKSxyZWZlcmVuY2U6SzMoUmVmZXJlbmNlRXJyb3IpLHN5bnRheDpLMyhTeW50YXhFcnJvciksdHlwZTpLMyhUeXBlRXJyb3IpLHVyaTpLMyhVUklFcnJvcil9KX0pO2Z1bmN0aW9uIF91KGUpe2xldCB0PVtdLHI9LTEsaT1BcnJheS5pc0FycmF5KGUpP2U6ZT9bZV06WyJ5YW1sIl07Zm9yKDsrK3I8aS5sZW5ndGg7KXRbcl09dFNyKGlbcl0pO3JldHVybiB0fWZ1bmN0aW9uIHRTcihlKXtsZXQgdD1lO2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYoIWpNLmNhbGwodkNlLHQpKXRocm93IFQ3KCJNaXNzaW5nIG1hdHRlciBkZWZpbml0aW9uIGZvciBgJXNgIix0KTt0PXt0eXBlOnQsbWFya2VyOnZDZVt0XX19ZWxzZSBpZih0eXBlb2YgdCE9Im9iamVjdCIpdGhyb3cgVDcoIkV4cGVjdGVkIG1hdHRlciB0byBiZSBhbiBvYmplY3QsIG5vdCBgJWpgIix0KTtpZighak0uY2FsbCh0LCJ0eXBlIikpdGhyb3cgVDcoIk1pc3NpbmcgYHR5cGVgIGluIG1hdHRlciBgJWpgIix0KTtpZighak0uY2FsbCh0LCJmZW5jZSIpJiYhak0uY2FsbCh0LCJtYXJrZXIiKSl0aHJvdyBUNygiTWlzc2luZyBgbWFya2VyYCBvciBgZmVuY2VgIGluIG1hdHRlciBgJWpgIix0KTtyZXR1cm4gdH12YXIgak0sdkNlLEFVPXAoKCk9PntiQ2UoKTtqTT17fS5oYXNPd25Qcm9wZXJ0eSx2Q2U9e3lhbWw6Ii0iLHRvbWw6IisifX0pO2Z1bmN0aW9uIEVVKGUpe2xldCB0PV91KGUpLHI9e30saT0tMTtmb3IoOysraTx0Lmxlbmd0aDspe2xldCBhPXRbaV0sbj1EVShhLCJvcGVuIikuY2hhckNvZGVBdCgwKSxvPXJTcihhKSxzPXJbbl07QXJyYXkuaXNBcnJheShzKT9zLnB1c2gobyk6cltuXT1bb119cmV0dXJue2Zsb3c6cn19ZnVuY3Rpb24gclNyKGUpe2xldCB0PWUuYW55d2hlcmUscj1lLnR5cGUsaT1yKyJGZW5jZSIsYT1pKyJTZXF1ZW5jZSIsbj1yKyJWYWx1ZSIsbz17dG9rZW5pemU6dSxwYXJ0aWFsOiEwfSxzLGw9MDtyZXR1cm57dG9rZW5pemU6Yyxjb25jcmV0ZTohMH07ZnVuY3Rpb24gYyhkLGgsZil7bGV0IHg9dGhpcztyZXR1cm4gdjtmdW5jdGlvbiB2KEYpe2xldCBEPXgubm93KCk7cmV0dXJuIEQuY29sdW1uPT09MSYmKEQubGluZT09PTF8fHQpJiYocz1EVShlLCJvcGVuIiksbD0wLEY9PT1zLmNoYXJDb2RlQXQobCkpPyhkLmVudGVyKHIpLGQuZW50ZXIoaSksZC5lbnRlcihhKSxiKEYpKTpmKEYpfWZ1bmN0aW9uIGIoRil7cmV0dXJuIGw9PT1zLmxlbmd0aD8oZC5leGl0KGEpLGx0KEYpPyhkLmVudGVyKCJ3aGl0ZXNwYWNlIikseShGKSk6dyhGKSk6Rj09PXMuY2hhckNvZGVBdChsKyspPyhkLmNvbnN1bWUoRiksYik6ZihGKX1mdW5jdGlvbiB5KEYpe3JldHVybiBsdChGKT8oZC5jb25zdW1lKEYpLHkpOihkLmV4aXQoIndoaXRlc3BhY2UiKSx3KEYpKX1mdW5jdGlvbiB3KEYpe3JldHVybiBXZShGKT8oZC5leGl0KGkpLGQuZW50ZXIoImxpbmVFbmRpbmciKSxkLmNvbnN1bWUoRiksZC5leGl0KCJsaW5lRW5kaW5nIikscz1EVShlLCJjbG9zZSIpLGw9MCxkLmF0dGVtcHQobyxNLGspKTpmKEYpfWZ1bmN0aW9uIGsoRil7cmV0dXJuIEY9PT1udWxsfHxXZShGKT96KEYpOihkLmVudGVyKG4pLE8oRikpfWZ1bmN0aW9uIE8oRil7cmV0dXJuIEY9PT1udWxsfHxXZShGKT8oZC5leGl0KG4pLHooRikpOihkLmNvbnN1bWUoRiksTyl9ZnVuY3Rpb24geihGKXtyZXR1cm4gRj09PW51bGw/ZihGKTooZC5lbnRlcigibGluZUVuZGluZyIpLGQuY29uc3VtZShGKSxkLmV4aXQoImxpbmVFbmRpbmciKSxkLmF0dGVtcHQobyxNLGspKX1mdW5jdGlvbiBNKEYpe3JldHVybiBkLmV4aXQociksaChGKX19ZnVuY3Rpb24gdShkLGgsZil7bGV0IHg9MDtyZXR1cm4gdjtmdW5jdGlvbiB2KGspe3JldHVybiBrPT09cy5jaGFyQ29kZUF0KHgpPyhkLmVudGVyKGkpLGQuZW50ZXIoYSksYihrKSk6ZihrKX1mdW5jdGlvbiBiKGspe3JldHVybiB4PT09cy5sZW5ndGg/KGQuZXhpdChhKSxsdChrKT8oZC5lbnRlcigid2hpdGVzcGFjZSIpLHkoaykpOncoaykpOms9PT1zLmNoYXJDb2RlQXQoeCsrKT8oZC5jb25zdW1lKGspLGIpOmYoayl9ZnVuY3Rpb24geShrKXtyZXR1cm4gbHQoayk/KGQuY29uc3VtZShrKSx5KTooZC5leGl0KCJ3aGl0ZXNwYWNlIiksdyhrKSl9ZnVuY3Rpb24gdyhrKXtyZXR1cm4gaz09PW51bGx8fFdlKGspPyhkLmV4aXQoaSksaChrKSk6ZihrKX19fWZ1bmN0aW9uIERVKGUsdCl7cmV0dXJuIGUubWFya2VyP3hDZShlLm1hcmtlcix0KS5yZXBlYXQoMyk6eENlKGUuZmVuY2UsdCl9ZnVuY3Rpb24geENlKGUsdCl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9lOmVbdF19dmFyIHlDZT1wKCgpPT57dHIoKTtBVSgpfSk7dmFyIHdDZT1wKCgpPT57fSk7dmFyICRVPXAoKCk9Pnt5Q2UoKTt3Q2UoKTtBVSgpfSk7ZnVuY3Rpb24gUFUoZSl7bGV0IHQ9X3UoZSkscj17fSxpPXt9LGE9LTE7Zm9yKDsrK2E8dC5sZW5ndGg7KXtsZXQgbj10W2FdO3Jbbi50eXBlXT1pU3IobiksaVtuLnR5cGVdPWFTcixpW24udHlwZSsiVmFsdWUiXT1uU3J9cmV0dXJue2VudGVyOnIsZXhpdDppfX1mdW5jdGlvbiBpU3IoZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdChyKXt0aGlzLmVudGVyKHt0eXBlOmUudHlwZSx2YWx1ZToiIn0sciksdGhpcy5idWZmZXIoKX19ZnVuY3Rpb24gYVNyKGUpe2xldCB0PXRoaXMucmVzdW1lKCkscj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdOyJ2YWx1ZSJpbiByLHRoaXMuZXhpdChlKSxyLnZhbHVlPXQucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIil9ZnVuY3Rpb24gblNyKGUpe3RoaXMuY29uZmlnLmVudGVyLmRhdGEuY2FsbCh0aGlzLGUpLHRoaXMuY29uZmlnLmV4aXQuZGF0YS5jYWxsKHRoaXMsZSl9ZnVuY3Rpb24gTlUoZSl7bGV0IHQ9W10scj17fSxpPV91KGUpLGE9LTE7Zm9yKDsrK2E8aS5sZW5ndGg7KXtsZXQgbj1pW2FdO3Jbbi50eXBlXT1vU3Iobik7bGV0IG89SVUobiwib3BlbiIpO3QucHVzaCh7YXRCcmVhazohMCxjaGFyYWN0ZXI6by5jaGFyQXQoMCksYWZ0ZXI6ZjMoby5jaGFyQXQoMSkpfSl9cmV0dXJue3Vuc2FmZTp0LGhhbmRsZXJzOnJ9fWZ1bmN0aW9uIG9TcihlKXtsZXQgdD1JVShlLCJvcGVuIikscj1JVShlLCJjbG9zZSIpO3JldHVybiBpO2Z1bmN0aW9uIGkoYSl7cmV0dXJuIHQrKGEudmFsdWU/YApgK2EudmFsdWU6IiIpK2AKYCtyfX1mdW5jdGlvbiBJVShlLHQpe3JldHVybiBlLm1hcmtlcj9NQ2UoZS5tYXJrZXIsdCkucmVwZWF0KDMpOk1DZShlLmZlbmNlLHQpfWZ1bmN0aW9uIE1DZShlLHQpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/ZTplW3RdfXZhciBrQ2U9cCgoKT0+e2IwKCk7JFUoKTtseCgpfSk7dmFyIFNDZT1wKCgpPT57a0NlKCl9KTtmdW5jdGlvbiBMdShlKXtsZXQgdD10aGlzLHI9ZXx8c1NyLGk9dC5kYXRhKCksYT1pLm1pY3JvbWFya0V4dGVuc2lvbnN8fChpLm1pY3JvbWFya0V4dGVuc2lvbnM9W10pLG49aS5mcm9tTWFya2Rvd25FeHRlbnNpb25zfHwoaS5mcm9tTWFya2Rvd25FeHRlbnNpb25zPVtdKSxvPWkudG9NYXJrZG93bkV4dGVuc2lvbnN8fChpLnRvTWFya2Rvd25FeHRlbnNpb25zPVtdKTthLnB1c2goRVUocikpLG4ucHVzaChQVShyKSksby5wdXNoKE5VKHIpKX12YXIgc1NyLHpDZT1wKCgpPT57U0NlKCk7JFUoKTtzU3I9InlhbWwifSk7dmFyIENDZT1wKCgpPT57ekNlKCl9KTt2YXIgRlU9cCgoKT0+e30pO3ZhciBUQ2UsbFNyLFlNLF9DZT1wKCgpPT57RlUoKTtUQ2U9dHlwZW9mIHNlbGY9PSJvYmplY3QiP3NlbGY6Z2xvYmFsVGhpcyxsU3I9KGUsdCk9PntsZXQgcj0oYSxuKT0+KGUuc2V0KG4sYSksYSksaT1hPT57aWYoZS5oYXMoYSkpcmV0dXJuIGUuZ2V0KGEpO2xldFtuLG9dPXRbYV07c3dpdGNoKG4pe2Nhc2UgMDpjYXNlLTE6cmV0dXJuIHIobyxhKTtjYXNlIDE6e2xldCBzPXIoW10sYSk7Zm9yKGxldCBsIG9mIG8pcy5wdXNoKGkobCkpO3JldHVybiBzfWNhc2UgMjp7bGV0IHM9cih7fSxhKTtmb3IobGV0W2wsY11vZiBvKXNbaShsKV09aShjKTtyZXR1cm4gc31jYXNlIDM6cmV0dXJuIHIobmV3IERhdGUobyksYSk7Y2FzZSA0OntsZXR7c291cmNlOnMsZmxhZ3M6bH09bztyZXR1cm4gcihuZXcgUmVnRXhwKHMsbCksYSl9Y2FzZSA1OntsZXQgcz1yKG5ldyBNYXAsYSk7Zm9yKGxldFtsLGNdb2YgbylzLnNldChpKGwpLGkoYykpO3JldHVybiBzfWNhc2UgNjp7bGV0IHM9cihuZXcgU2V0LGEpO2ZvcihsZXQgbCBvZiBvKXMuYWRkKGkobCkpO3JldHVybiBzfWNhc2UgNzp7bGV0e25hbWU6cyxtZXNzYWdlOmx9PW87cmV0dXJuIHIobmV3IFRDZVtzXShsKSxhKX1jYXNlIDg6cmV0dXJuIHIoQmlnSW50KG8pLGEpO2Nhc2UiQmlnSW50IjpyZXR1cm4gcihPYmplY3QoQmlnSW50KG8pKSxhKTtjYXNlIkFycmF5QnVmZmVyIjpyZXR1cm4gcihuZXcgVWludDhBcnJheShvKS5idWZmZXIsbyk7Y2FzZSJEYXRhVmlldyI6e2xldHtidWZmZXI6c309bmV3IFVpbnQ4QXJyYXkobyk7cmV0dXJuIHIobmV3IERhdGFWaWV3KHMpLG8pfX1yZXR1cm4gcihuZXcgVENlW25dKG8pLGEpfTtyZXR1cm4gaX0sWU09ZT0+bFNyKG5ldyBNYXAsZSkoMCl9KTt2YXIgRHUsY1NyLGRTcixBNyxaTSx1U3IsWE0sTENlPXAoKCk9PntGVSgpO0R1PSIiLHt0b1N0cmluZzpjU3J9PXt9LHtrZXlzOmRTcn09T2JqZWN0LEE3PWU9PntsZXQgdD10eXBlb2YgZTtpZih0IT09Im9iamVjdCJ8fCFlKXJldHVyblswLHRdO2xldCByPWNTci5jYWxsKGUpLnNsaWNlKDgsLTEpO3N3aXRjaChyKXtjYXNlIkFycmF5IjpyZXR1cm5bMSxEdV07Y2FzZSJPYmplY3QiOnJldHVyblsyLER1XTtjYXNlIkRhdGUiOnJldHVyblszLER1XTtjYXNlIlJlZ0V4cCI6cmV0dXJuWzQsRHVdO2Nhc2UiTWFwIjpyZXR1cm5bNSxEdV07Y2FzZSJTZXQiOnJldHVybls2LER1XTtjYXNlIkRhdGFWaWV3IjpyZXR1cm5bMSxyXX1yZXR1cm4gci5pbmNsdWRlcygiQXJyYXkiKT9bMSxyXTpyLmluY2x1ZGVzKCJFcnJvciIpP1s3LHJdOlsyLHJdfSxaTT0oW2UsdF0pPT5lPT09MCYmKHQ9PT0iZnVuY3Rpb24ifHx0PT09InN5bWJvbCIpLHVTcj0oZSx0LHIsaSk9PntsZXQgYT0obyxzKT0+e2xldCBsPWkucHVzaChvKS0xO3JldHVybiByLnNldChzLGwpLGx9LG49bz0+e2lmKHIuaGFzKG8pKXJldHVybiByLmdldChvKTtsZXRbcyxsXT1BNyhvKTtzd2l0Y2gocyl7Y2FzZSAwOntsZXQgdT1vO3N3aXRjaChsKXtjYXNlImJpZ2ludCI6cz04LHU9by50b1N0cmluZygpO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjppZihlKXRocm93IG5ldyBUeXBlRXJyb3IoInVuYWJsZSB0byBzZXJpYWxpemUgIitsKTt1PW51bGw7YnJlYWs7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBhKFstMV0sbyl9cmV0dXJuIGEoW3MsdV0sbyl9Y2FzZSAxOntpZihsKXtsZXQgaD1vO3JldHVybiBsPT09IkRhdGFWaWV3Ij9oPW5ldyBVaW50OEFycmF5KG8uYnVmZmVyKTpsPT09IkFycmF5QnVmZmVyIiYmKGg9bmV3IFVpbnQ4QXJyYXkobykpLGEoW2wsWy4uLmhdXSxvKX1sZXQgdT1bXSxkPWEoW3MsdV0sbyk7Zm9yKGxldCBoIG9mIG8pdS5wdXNoKG4oaCkpO3JldHVybiBkfWNhc2UgMjp7aWYobClzd2l0Y2gobCl7Y2FzZSJCaWdJbnQiOnJldHVybiBhKFtsLG8udG9TdHJpbmcoKV0sbyk7Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOnJldHVybiBhKFtsLG8udmFsdWVPZigpXSxvKX1pZih0JiYidG9KU09OImluIG8pcmV0dXJuIG4oby50b0pTT04oKSk7bGV0IHU9W10sZD1hKFtzLHVdLG8pO2ZvcihsZXQgaCBvZiBkU3IobykpKGV8fCFaTShBNyhvW2hdKSkpJiZ1LnB1c2goW24oaCksbihvW2hdKV0pO3JldHVybiBkfWNhc2UgMzpyZXR1cm4gYShbcyxvLnRvSVNPU3RyaW5nKCldLG8pO2Nhc2UgNDp7bGV0e3NvdXJjZTp1LGZsYWdzOmR9PW87cmV0dXJuIGEoW3Mse3NvdXJjZTp1LGZsYWdzOmR9XSxvKX1jYXNlIDU6e2xldCB1PVtdLGQ9YShbcyx1XSxvKTtmb3IobGV0W2gsZl1vZiBvKShlfHwhKFpNKEE3KGgpKXx8Wk0oQTcoZikpKSkmJnUucHVzaChbbihoKSxuKGYpXSk7cmV0dXJuIGR9Y2FzZSA2OntsZXQgdT1bXSxkPWEoW3MsdV0sbyk7Zm9yKGxldCBoIG9mIG8pKGV8fCFaTShBNyhoKSkpJiZ1LnB1c2gobihoKSk7cmV0dXJuIGR9fWxldHttZXNzYWdlOmN9PW87cmV0dXJuIGEoW3Mse25hbWU6bCxtZXNzYWdlOmN9XSxvKX07cmV0dXJuIG59LFhNPShlLHtqc29uOnQsbG9zc3k6cn09e30pPT57bGV0IGk9W107cmV0dXJuIHVTcighKHR8fHIpLCEhdCxuZXcgTWFwLGkpKGUpLGl9fSk7dmFyIFMwLFFNPXAoKCk9PntfQ2UoKTtMQ2UoKTtTMD10eXBlb2Ygc3RydWN0dXJlZENsb25lPT0iZnVuY3Rpb24iPyhlLHQpPT50JiYoImpzb24iaW4gdHx8Imxvc3N5ImluIHQpP1lNKFhNKGUsdCkpOnN0cnVjdHVyZWRDbG9uZShlKTooZSx0KT0+WU0oWE0oZSx0KSl9KTtmdW5jdGlvbiBBQ2UoZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdChyKXtsZXQgaT1yJiZyLnBvc2l0aW9uJiZyLnBvc2l0aW9uW2VdfHx7fTtpZih0eXBlb2YgaS5saW5lPT0ibnVtYmVyIiYmaS5saW5lPjAmJnR5cGVvZiBpLmNvbHVtbj09Im51bWJlciImJmkuY29sdW1uPjApcmV0dXJue2xpbmU6aS5saW5lLGNvbHVtbjppLmNvbHVtbixvZmZzZXQ6dHlwZW9mIGkub2Zmc2V0PT0ibnVtYmVyIiYmaS5vZmZzZXQ+LTE/aS5vZmZzZXQ6dm9pZCAwfX19ZnVuY3Rpb24gRDcoZSl7bGV0IHQ9S00oZSkscj1KTShlKTtpZih0JiZyKXJldHVybntzdGFydDp0LGVuZDpyfX12YXIgSk0sS00sRENlPXAoKCk9PntKTT1BQ2UoImVuZCIpLEtNPUFDZSgic3RhcnQiKX0pO3ZhciBlaz1wKCgpPT57RENlKCl9KTt2YXIgZTYsdGssSFU9cCgoKT0+e2U2PVsiYXJpYURlc2NyaWJlZEJ5IiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiXSx0az17YW5jZXN0b3JzOnt0Ym9keTpbInRhYmxlIl0sdGQ6WyJ0YWJsZSJdLHRoOlsidGFibGUiXSx0aGVhZDpbInRhYmxlIl0sdGZvb3Q6WyJ0YWJsZSJdLHRyOlsidGFibGUiXX0sYXR0cmlidXRlczp7YTpbLi4uZTYsImRhdGFGb290bm90ZUJhY2tyZWYiLCJkYXRhRm9vdG5vdGVSZWYiLFsiY2xhc3NOYW1lIiwiZGF0YS1mb290bm90ZS1iYWNrcmVmIl0sImhyZWYiXSxibG9ja3F1b3RlOlsiY2l0ZSJdLGNvZGU6W1siY2xhc3NOYW1lIiwvXmxhbmd1YWdlLS4vXV0sZGVsOlsiY2l0ZSJdLGRpdjpbIml0ZW1TY29wZSIsIml0ZW1UeXBlIl0sZGw6Wy4uLmU2XSxoMjpbWyJjbGFzc05hbWUiLCJzci1vbmx5Il1dLGltZzpbLi4uZTYsImxvbmdEZXNjIiwic3JjIl0saW5wdXQ6W1siZGlzYWJsZWQiLCEwXSxbInR5cGUiLCJjaGVja2JveCJdXSxpbnM6WyJjaXRlIl0sbGk6W1siY2xhc3NOYW1lIiwidGFzay1saXN0LWl0ZW0iXV0sb2w6Wy4uLmU2LFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLHE6WyJjaXRlIl0sc2VjdGlvbjpbImRhdGFGb290bm90ZXMiLFsiY2xhc3NOYW1lIiwiZm9vdG5vdGVzIl1dLHNvdXJjZTpbInNyY1NldCJdLHN1bW1hcnk6Wy4uLmU2XSx0YWJsZTpbLi4uZTZdLHVsOlsuLi5lNixbImNsYXNzTmFtZSIsImNvbnRhaW5zLXRhc2stbGlzdCJdXSwiKiI6WyJhYmJyIiwiYWNjZXB0IiwiYWNjZXB0Q2hhcnNldCIsImFjY2Vzc0tleSIsImFjdGlvbiIsImFsaWduIiwiYWx0IiwiYXhpcyIsImJvcmRlciIsImNlbGxQYWRkaW5nIiwiY2VsbFNwYWNpbmciLCJjaGFyIiwiY2hhck9mZiIsImNoYXJTZXQiLCJjaGVja2VkIiwiY2xlYXIiLCJjb2xTcGFuIiwiY29sb3IiLCJjb2xzIiwiY29tcGFjdCIsImNvb3JkcyIsImRhdGVUaW1lIiwiZGlyIiwiZW5jVHlwZSIsImZyYW1lIiwiaFNwYWNlIiwiaGVhZGVycyIsImhlaWdodCIsImhyZWZMYW5nIiwiaHRtbEZvciIsImlkIiwiaXNNYXAiLCJpdGVtUHJvcCIsImxhYmVsIiwibGFuZyIsIm1heExlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibXVsdGlwbGUiLCJuYW1lIiwibm9IcmVmIiwibm9TaGFkZSIsIm5vV3JhcCIsIm9wZW4iLCJwcm9tcHQiLCJyZWFkT25seSIsInJldiIsInJvd1NwYW4iLCJyb3dzIiwicnVsZXMiLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic3BhbiIsInN0YXJ0Iiwic3VtbWFyeSIsInRhYkluZGV4IiwidGl0bGUiLCJ1c2VNYXAiLCJ2QWxpZ24iLCJ2YWx1ZSIsIndpZHRoIl19LGNsb2JiZXI6WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWxsZWRCeSIsImlkIiwibmFtZSJdLGNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLHByb3RvY29sczp7Y2l0ZTpbImh0dHAiLCJodHRwcyJdLGhyZWY6WyJodHRwIiwiaHR0cHMiLCJpcmMiLCJpcmNzIiwibWFpbHRvIiwieG1wcCJdLGxvbmdEZXNjOlsiaHR0cCIsImh0dHBzIl0sc3JjOlsiaHR0cCIsImh0dHBzIl19LHJlcXVpcmVkOntpbnB1dDp7ZGlzYWJsZWQ6ITAsdHlwZToiY2hlY2tib3gifX0sc3RyaXA6WyJzY3JpcHQiXSx0YWdOYW1lczpbImEiLCJiIiwiYmxvY2txdW90ZSIsImJyIiwiY29kZSIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhyIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGkiLCJvbCIsInAiLCJwaWN0dXJlIiwicHJlIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzZWN0aW9uIiwic291cmNlIiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0ciIsInR0IiwidWwiLCJ2YXIiXX19KTtmdW5jdGlvbiBxVShlLHQpe2xldCByPXt0eXBlOiJyb290IixjaGlsZHJlbjpbXX0saT17c2NoZW1hOnQ/ey4uLnRrLC4uLnR9OnRrLHN0YWNrOltdfSxhPUVDZShpLGUpO3JldHVybiBhJiYoQXJyYXkuaXNBcnJheShhKT9hLmxlbmd0aD09PTE/cj1hWzBdOnIuY2hpbGRyZW49YTpyPWEpLHJ9ZnVuY3Rpb24gRUNlKGUsdCl7aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QiKXtsZXQgcj10O3N3aXRjaCh0eXBlb2Ygci50eXBlPT0ic3RyaW5nIj9yLnR5cGU6IiIpe2Nhc2UiY29tbWVudCI6cmV0dXJuIHBTcihlLHIpO2Nhc2UiZG9jdHlwZSI6cmV0dXJuIGhTcihlLHIpO2Nhc2UiZWxlbWVudCI6cmV0dXJuIGZTcihlLHIpO2Nhc2Uicm9vdCI6cmV0dXJuIG1TcihlLHIpO2Nhc2UidGV4dCI6cmV0dXJuIGdTcihlLHIpO2RlZmF1bHQ6fX19ZnVuY3Rpb24gcFNyKGUsdCl7aWYoZS5zY2hlbWEuYWxsb3dDb21tZW50cyl7bGV0IHI9dHlwZW9mIHQudmFsdWU9PSJzdHJpbmciP3QudmFsdWU6IiIsaT1yLmluZGV4T2YoIi0tPiIpLG49e3R5cGU6ImNvbW1lbnQiLHZhbHVlOmk8MD9yOnIuc2xpY2UoMCxpKX07cmV0dXJuIEU3KG4sdCksbn19ZnVuY3Rpb24gaFNyKGUsdCl7aWYoZS5zY2hlbWEuYWxsb3dEb2N0eXBlcyl7bGV0IHI9e3R5cGU6ImRvY3R5cGUifTtyZXR1cm4gRTcocix0KSxyfX1mdW5jdGlvbiBmU3IoZSx0KXtsZXQgcj10eXBlb2YgdC50YWdOYW1lPT0ic3RyaW5nIj90LnRhZ05hbWU6IiI7ZS5zdGFjay5wdXNoKHIpO2xldCBpPSRDZShlLHQuY2hpbGRyZW4pLGE9YlNyKGUsdC5wcm9wZXJ0aWVzKTtlLnN0YWNrLnBvcCgpO2xldCBuPSExO2lmKHImJnIhPT0iKiImJighZS5zY2hlbWEudGFnTmFtZXN8fGUuc2NoZW1hLnRhZ05hbWVzLmluY2x1ZGVzKHIpKSYmKG49ITAsZS5zY2hlbWEuYW5jZXN0b3JzJiZ6MC5jYWxsKGUuc2NoZW1hLmFuY2VzdG9ycyxyKSkpe2xldCBzPWUuc2NoZW1hLmFuY2VzdG9yc1tyXSxsPS0xO2ZvcihuPSExOysrbDxzLmxlbmd0aDspZS5zdGFjay5pbmNsdWRlcyhzW2xdKSYmKG49ITApfWlmKCFuKXJldHVybiBlLnNjaGVtYS5zdHJpcCYmIWUuc2NoZW1hLnN0cmlwLmluY2x1ZGVzKHIpP2k6dm9pZCAwO2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOnIscHJvcGVydGllczphLGNoaWxkcmVuOml9O3JldHVybiBFNyhvLHQpLG99ZnVuY3Rpb24gbVNyKGUsdCl7bGV0IGk9e3R5cGU6InJvb3QiLGNoaWxkcmVuOiRDZShlLHQuY2hpbGRyZW4pfTtyZXR1cm4gRTcoaSx0KSxpfWZ1bmN0aW9uIGdTcihlLHQpe2xldCBpPXt0eXBlOiJ0ZXh0Iix2YWx1ZTp0eXBlb2YgdC52YWx1ZT09InN0cmluZyI/dC52YWx1ZToiIn07cmV0dXJuIEU3KGksdCksaX1mdW5jdGlvbiAkQ2UoZSx0KXtsZXQgcj1bXTtpZihBcnJheS5pc0FycmF5KHQpKXtsZXQgaT10LGE9LTE7Zm9yKDsrK2E8aS5sZW5ndGg7KXtsZXQgbj1FQ2UoZSxpW2FdKTtuJiYoQXJyYXkuaXNBcnJheShuKT9yLnB1c2goLi4ubik6ci5wdXNoKG4pKX19cmV0dXJuIHJ9ZnVuY3Rpb24gYlNyKGUsdCl7bGV0IHI9ZS5zdGFja1tlLnN0YWNrLmxlbmd0aC0xXSxpPWUuc2NoZW1hLmF0dHJpYnV0ZXMsYT1lLnNjaGVtYS5yZXF1aXJlZCxuPWkmJnowLmNhbGwoaSxyKT9pW3JdOnZvaWQgMCxvPWkmJnowLmNhbGwoaSwiKiIpP2lbIioiXTp2b2lkIDAscz10JiZ0eXBlb2YgdD09Im9iamVjdCI/dDp7fSxsPXt9LGM7Zm9yKGMgaW4gcylpZih6MC5jYWxsKHMsYykpe2xldCB1PXNbY10sZD1JQ2UoZSxOQ2UobixjKSxjLHUpO2Q9PW51bGwmJihkPUlDZShlLE5DZShvLGMpLGMsdSkpLGQhPW51bGwmJihsW2NdPWQpfWlmKGEmJnowLmNhbGwoYSxyKSl7bGV0IHU9YVtyXTtmb3IoYyBpbiB1KXowLmNhbGwodSxjKSYmIXowLmNhbGwobCxjKSYmKGxbY109dVtjXSl9cmV0dXJuIGx9ZnVuY3Rpb24gSUNlKGUsdCxyLGkpe3JldHVybiB0P0FycmF5LmlzQXJyYXkoaSk/dlNyKGUsdCxyLGkpOlBDZShlLHQscixpKTp2b2lkIDB9ZnVuY3Rpb24gdlNyKGUsdCxyLGkpe2xldCBhPS0xLG49W107Zm9yKDsrK2E8aS5sZW5ndGg7KXtsZXQgbz1QQ2UoZSx0LHIsaVthXSk7KHR5cGVvZiBvPT0ibnVtYmVyInx8dHlwZW9mIG89PSJzdHJpbmciKSYmbi5wdXNoKG8pfXJldHVybiBufWZ1bmN0aW9uIFBDZShlLHQscixpKXtpZighKHR5cGVvZiBpIT0iYm9vbGVhbiImJnR5cGVvZiBpIT0ibnVtYmVyIiYmdHlwZW9mIGkhPSJzdHJpbmciKSYmeFNyKGUscixpKSl7aWYodHlwZW9mIHQ9PSJvYmplY3QiJiZ0Lmxlbmd0aD4xKXtsZXQgYT0hMSxuPTA7Zm9yKDsrK248dC5sZW5ndGg7KXtsZXQgbz10W25dO2lmKG8mJnR5cGVvZiBvPT0ib2JqZWN0IiYmImZsYWdzImluIG8pe2lmKG8udGVzdChTdHJpbmcoaSkpKXthPSEwO2JyZWFrfX1lbHNlIGlmKG89PT1pKXthPSEwO2JyZWFrfX1pZighYSlyZXR1cm59cmV0dXJuIGUuc2NoZW1hLmNsb2JiZXImJmUuc2NoZW1hLmNsb2JiZXJQcmVmaXgmJmUuc2NoZW1hLmNsb2JiZXIuaW5jbHVkZXMocik/ZS5zY2hlbWEuY2xvYmJlclByZWZpeCtpOml9fWZ1bmN0aW9uIHhTcihlLHQscil7bGV0IGk9ZS5zY2hlbWEucHJvdG9jb2xzJiZ6MC5jYWxsKGUuc2NoZW1hLnByb3RvY29scyx0KT9lLnNjaGVtYS5wcm90b2NvbHNbdF06dm9pZCAwO2lmKCFpfHxpLmxlbmd0aD09PTApcmV0dXJuITA7bGV0IGE9U3RyaW5nKHIpLG49YS5pbmRleE9mKCI6Iiksbz1hLmluZGV4T2YoIj8iKSxzPWEuaW5kZXhPZigiIyIpLGw9YS5pbmRleE9mKCIvIik7aWYobjwwfHxsPi0xJiZuPmx8fG8+LTEmJm4+b3x8cz4tMSYmbj5zKXJldHVybiEwO2xldCBjPS0xO2Zvcig7KytjPGkubGVuZ3RoOyl7bGV0IHU9aVtjXTtpZihuPT09dS5sZW5ndGgmJmEuc2xpY2UoMCx1Lmxlbmd0aCk9PT11KXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIEU3KGUsdCl7bGV0IHI9RDcodCk7dC5kYXRhJiYoZS5kYXRhPVMwKHQuZGF0YSkpLHImJihlLnBvc2l0aW9uPXIpfWZ1bmN0aW9uIE5DZShlLHQpe2xldCByLGk9LTE7aWYoZSlmb3IoOysraTxlLmxlbmd0aDspe2xldCBhPWVbaV0sbj10eXBlb2YgYT09InN0cmluZyI/YTphWzBdO2lmKG49PT10KXJldHVybiBhO249PT0iZGF0YSoiJiYocj1hKX1pZih0Lmxlbmd0aD40JiZ0LnNsaWNlKDAsNCkudG9Mb3dlckNhc2UoKT09PSJkYXRhIilyZXR1cm4gcn12YXIgejAsRkNlPXAoKCk9PntRTSgpO2VrKCk7SFUoKTt6MD17fS5oYXNPd25Qcm9wZXJ0eX0pO3ZhciBPQ2U9cCgoKT0+e0ZDZSgpO0hVKCl9KTtmdW5jdGlvbiBSQ2UoZSx0KXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYmxvY2txdW90ZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAoZS5hbGwodCksITApfTtyZXR1cm4gZS5wYXRjaCh0LHIpLGUuYXBwbHlEYXRhKHQscil9dmFyIEJDZT1wKCgpPT57fSk7ZnVuY3Rpb24gSENlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImJyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaCh0LHIpLFtlLmFwcGx5RGF0YSh0LHIpLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX12YXIgcUNlPXAoKCk9Pnt9KTtmdW5jdGlvbiBqQ2UoZSx0KXtsZXQgcj10LnZhbHVlP3QudmFsdWUrYApgOiIiLGk9e30sYT10Lmxhbmc/dC5sYW5nLnNwbGl0KC9ccysvKTpbXTthLmxlbmd0aD4wJiYoaS5jbGFzc05hbWU9WyJsYW5ndWFnZS0iK2FbMF1dKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiY29kZSIscHJvcGVydGllczppLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6cn1dfTtyZXR1cm4gdC5tZXRhJiYobi5kYXRhPXttZXRhOnQubWV0YX0pLGUucGF0Y2godCxuKSxuPWUuYXBwbHlEYXRhKHQsbiksbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicHJlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltuXX0sZS5wYXRjaCh0LG4pLG59dmFyIFZDZT1wKCgpPT57fSk7ZnVuY3Rpb24gVUNlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRlbCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBXQ2U9cCgoKT0+e30pO2Z1bmN0aW9uIEdDZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJlbSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBZQ2U9cCgoKT0+e30pO2Z1bmN0aW9uIFpDZShlLHQpe2xldCByPXR5cGVvZiBlLm9wdGlvbnMuY2xvYmJlclByZWZpeD09InN0cmluZyI/ZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLGk9U3RyaW5nKHQuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPUZuKGkudG9Mb3dlckNhc2UoKSksbj1lLmZvb3Rub3RlT3JkZXIuaW5kZXhPZihpKSxvLHM9ZS5mb290bm90ZUNvdW50cy5nZXQoaSk7cz09PXZvaWQgMD8ocz0wLGUuZm9vdG5vdGVPcmRlci5wdXNoKGkpLG89ZS5mb290bm90ZU9yZGVyLmxlbmd0aCk6bz1uKzEscys9MSxlLmZvb3Rub3RlQ291bnRzLnNldChpLHMpO2xldCBsPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIityKyJmbi0iK2EsaWQ6cisiZm5yZWYtIithKyhzPjE/Ii0iK3M6IiIpLGRhdGFGb290bm90ZVJlZjohMCxhcmlhRGVzY3JpYmVkQnk6WyJmb290bm90ZS1sYWJlbCJdfSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOlN0cmluZyhvKX1dfTtlLnBhdGNoKHQsbCk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN1cCIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbbF19O3JldHVybiBlLnBhdGNoKHQsYyksZS5hcHBseURhdGEodCxjKX12YXIgWENlPXAoKCk9PnttcygpfSk7ZnVuY3Rpb24gUUNlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImgiK3QuZGVwdGgscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBKQ2U9cCgoKT0+e30pO2Z1bmN0aW9uIEtDZShlLHQpe2lmKGUub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpe2xldCByPXt0eXBlOiJyYXciLHZhbHVlOnQudmFsdWV9O3JldHVybiBlLnBhdGNoKHQsciksZS5hcHBseURhdGEodCxyKX19dmFyIGVUZT1wKCgpPT57fSk7ZnVuY3Rpb24gcmsoZSx0KXtsZXQgcj10LnJlZmVyZW5jZVR5cGUsaT0iXSI7aWYocj09PSJjb2xsYXBzZWQiP2krPSJbXSI6cj09PSJmdWxsIiYmKGkrPSJbIisodC5sYWJlbHx8dC5pZGVudGlmaWVyKSsiXSIpLHQudHlwZT09PSJpbWFnZVJlZmVyZW5jZSIpcmV0dXJuW3t0eXBlOiJ0ZXh0Iix2YWx1ZToiIVsiK3QuYWx0K2l9XTtsZXQgYT1lLmFsbCh0KSxuPWFbMF07biYmbi50eXBlPT09InRleHQiP24udmFsdWU9IlsiK24udmFsdWU6YS51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiWyJ9KTtsZXQgbz1hW2EubGVuZ3RoLTFdO3JldHVybiBvJiZvLnR5cGU9PT0idGV4dCI/by52YWx1ZSs9aTphLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOml9KSxhfXZhciBqVT1wKCgpPT57fSk7ZnVuY3Rpb24gdFRlKGUsdCl7bGV0IHI9U3RyaW5nKHQuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxpPWUuZGVmaW5pdGlvbkJ5SWQuZ2V0KHIpO2lmKCFpKXJldHVybiByayhlLHQpO2xldCBhPXtzcmM6Rm4oaS51cmx8fCIiKSxhbHQ6dC5hbHR9O2kudGl0bGUhPT1udWxsJiZpLnRpdGxlIT09dm9pZCAwJiYoYS50aXRsZT1pLnRpdGxlKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOmEsY2hpbGRyZW46W119O3JldHVybiBlLnBhdGNoKHQsbiksZS5hcHBseURhdGEodCxuKX12YXIgclRlPXAoKCk9PnttcygpO2pVKCl9KTtmdW5jdGlvbiBpVGUoZSx0KXtsZXQgcj17c3JjOkZuKHQudXJsKX07dC5hbHQhPT1udWxsJiZ0LmFsdCE9PXZvaWQgMCYmKHIuYWx0PXQuYWx0KSx0LnRpdGxlIT09bnVsbCYmdC50aXRsZSE9PXZvaWQgMCYmKHIudGl0bGU9dC50aXRsZSk7bGV0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczpyLGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaCh0LGkpLGUuYXBwbHlEYXRhKHQsaSl9dmFyIGFUZT1wKCgpPT57bXMoKX0pO2Z1bmN0aW9uIG5UZShlLHQpe2xldCByPXt0eXBlOiJ0ZXh0Iix2YWx1ZTp0LnZhbHVlLnJlcGxhY2UoL1xyP1xufFxyL2csIiAiKX07ZS5wYXRjaCh0LHIpO2xldCBpPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJjb2RlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltyXX07cmV0dXJuIGUucGF0Y2godCxpKSxlLmFwcGx5RGF0YSh0LGkpfXZhciBvVGU9cCgoKT0+e30pO2Z1bmN0aW9uIHNUZShlLHQpe2xldCByPVN0cmluZyh0LmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksaT1lLmRlZmluaXRpb25CeUlkLmdldChyKTtpZighaSlyZXR1cm4gcmsoZSx0KTtsZXQgYT17aHJlZjpGbihpLnVybHx8IiIpfTtpLnRpdGxlIT09bnVsbCYmaS50aXRsZSE9PXZvaWQgMCYmKGEudGl0bGU9aS50aXRsZSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImEiLHByb3BlcnRpZXM6YSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxuKSxlLmFwcGx5RGF0YSh0LG4pfXZhciBsVGU9cCgoKT0+e21zKCk7alUoKX0pO2Z1bmN0aW9uIGNUZShlLHQpe2xldCByPXtocmVmOkZuKHQudXJsKX07dC50aXRsZSE9PW51bGwmJnQudGl0bGUhPT12b2lkIDAmJihyLnRpdGxlPXQudGl0bGUpO2xldCBpPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46ZS5hbGwodCl9O3JldHVybiBlLnBhdGNoKHQsaSksZS5hcHBseURhdGEodCxpKX12YXIgZFRlPXAoKCk9PnttcygpfSk7ZnVuY3Rpb24gcFRlKGUsdCxyKXtsZXQgaT1lLmFsbCh0KSxhPXI/eVNyKHIpOnVUZSh0KSxuPXt9LG89W107aWYodHlwZW9mIHQuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgdT1pWzBdLGQ7dSYmdS50eXBlPT09ImVsZW1lbnQiJiZ1LnRhZ05hbWU9PT0icCI/ZD11OihkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfSxpLnVuc2hpZnQoZCkpLGQuY2hpbGRyZW4ubGVuZ3RoPjAmJmQuY2hpbGRyZW4udW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksZC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbnB1dCIscHJvcGVydGllczp7dHlwZToiY2hlY2tib3giLGNoZWNrZWQ6dC5jaGVja2VkLGRpc2FibGVkOiEwfSxjaGlsZHJlbjpbXX0pLG4uY2xhc3NOYW1lPVsidGFzay1saXN0LWl0ZW0iXX1sZXQgcz0tMTtmb3IoOysrczxpLmxlbmd0aDspe2xldCB1PWlbc107KGF8fHMhPT0wfHx1LnR5cGUhPT0iZWxlbWVudCJ8fHUudGFnTmFtZSE9PSJwIikmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksdS50eXBlPT09ImVsZW1lbnQiJiZ1LnRhZ05hbWU9PT0icCImJiFhP28ucHVzaCguLi51LmNoaWxkcmVuKTpvLnB1c2godSl9bGV0IGw9aVtpLmxlbmd0aC0xXTtsJiYoYXx8bC50eXBlIT09ImVsZW1lbnQifHxsLnRhZ05hbWUhPT0icCIpJiZvLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pO2xldCBjPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczpuLGNoaWxkcmVuOm99O3JldHVybiBlLnBhdGNoKHQsYyksZS5hcHBseURhdGEodCxjKX1mdW5jdGlvbiB5U3IoZSl7bGV0IHQ9ITE7aWYoZS50eXBlPT09Imxpc3QiKXt0PWUuc3ByZWFkfHwhMTtsZXQgcj1lLmNoaWxkcmVuLGk9LTE7Zm9yKDshdCYmKytpPHIubGVuZ3RoOyl0PXVUZShyW2ldKX1yZXR1cm4gdH1mdW5jdGlvbiB1VGUoZSl7bGV0IHQ9ZS5zcHJlYWQ7cmV0dXJuIHQ/P2UuY2hpbGRyZW4ubGVuZ3RoPjF9dmFyIGhUZT1wKCgpPT57fSk7ZnVuY3Rpb24gZlRlKGUsdCl7bGV0IHI9e30saT1lLmFsbCh0KSxhPS0xO2Zvcih0eXBlb2YgdC5zdGFydD09Im51bWJlciImJnQuc3RhcnQhPT0xJiYoci5zdGFydD10LnN0YXJ0KTsrK2E8aS5sZW5ndGg7KXtsZXQgbz1pW2FdO2lmKG8udHlwZT09PSJlbGVtZW50IiYmby50YWdOYW1lPT09ImxpIiYmby5wcm9wZXJ0aWVzJiZBcnJheS5pc0FycmF5KG8ucHJvcGVydGllcy5jbGFzc05hbWUpJiZvLnByb3BlcnRpZXMuY2xhc3NOYW1lLmluY2x1ZGVzKCJ0YXNrLWxpc3QtaXRlbSIpKXtyLmNsYXNzTmFtZT1bImNvbnRhaW5zLXRhc2stbGlzdCJdO2JyZWFrfX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTp0Lm9yZGVyZWQ/Im9sIjoidWwiLHByb3BlcnRpZXM6cixjaGlsZHJlbjplLndyYXAoaSwhMCl9O3JldHVybiBlLnBhdGNoKHQsbiksZS5hcHBseURhdGEodCxuKX12YXIgbVRlPXAoKCk9Pnt9KTtmdW5jdGlvbiBnVGUoZSx0KXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBiVGU9cCgoKT0+e30pO2Z1bmN0aW9uIHZUZShlLHQpe2xldCByPXt0eXBlOiJyb290IixjaGlsZHJlbjplLndyYXAoZS5hbGwodCkpfTtyZXR1cm4gZS5wYXRjaCh0LHIpLGUuYXBwbHlEYXRhKHQscil9dmFyIHhUZT1wKCgpPT57fSk7ZnVuY3Rpb24geVRlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN0cm9uZyIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciB3VGU9cCgoKT0+e30pO2Z1bmN0aW9uIE1UZShlLHQpe2xldCByPWUuYWxsKHQpLGk9ci5zaGlmdCgpLGE9W107aWYoaSl7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRoZWFkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChbaV0sITApfTtlLnBhdGNoKHQuY2hpbGRyZW5bMF0sbyksYS5wdXNoKG8pfWlmKHIubGVuZ3RoPjApe2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0Ym9keSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAociwhMCl9LHM9S00odC5jaGlsZHJlblsxXSksbD1KTSh0LmNoaWxkcmVuW3QuY2hpbGRyZW4ubGVuZ3RoLTFdKTtzJiZsJiYoby5wb3NpdGlvbj17c3RhcnQ6cyxlbmQ6bH0pLGEucHVzaChvKX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGFibGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS53cmFwKGEsITApfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9dmFyIGtUZT1wKCgpPT57ZWsoKX0pO2Z1bmN0aW9uIFNUZShlLHQscil7bGV0IGk9cj9yLmNoaWxkcmVuOnZvaWQgMCxuPShpP2kuaW5kZXhPZih0KToxKT09PTA/InRoIjoidGQiLG89ciYmci50eXBlPT09InRhYmxlIj9yLmFsaWduOnZvaWQgMCxzPW8/by5sZW5ndGg6dC5jaGlsZHJlbi5sZW5ndGgsbD0tMSxjPVtdO2Zvcig7KytsPHM7KXtsZXQgZD10LmNoaWxkcmVuW2xdLGg9e30sZj1vP29bbF06dm9pZCAwO2YmJihoLmFsaWduPWYpO2xldCB4PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm4scHJvcGVydGllczpoLGNoaWxkcmVuOltdfTtkJiYoeC5jaGlsZHJlbj1lLmFsbChkKSxlLnBhdGNoKGQseCkseD1lLmFwcGx5RGF0YShkLHgpKSxjLnB1c2goeCl9bGV0IHU9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChjLCEwKX07cmV0dXJuIGUucGF0Y2godCx1KSxlLmFwcGx5RGF0YSh0LHUpfXZhciB6VGU9cCgoKT0+e30pO2Z1bmN0aW9uIENUZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBUVGU9cCgoKT0+e30pO2Z1bmN0aW9uIExUZShlKXtsZXQgdD1TdHJpbmcoZSkscj0vXHI/XG58XHIvZyxpPXIuZXhlYyh0KSxhPTAsbj1bXTtmb3IoO2k7KW4ucHVzaChfVGUodC5zbGljZShhLGkuaW5kZXgpLGE+MCwhMCksaVswXSksYT1pLmluZGV4K2lbMF0ubGVuZ3RoLGk9ci5leGVjKHQpO3JldHVybiBuLnB1c2goX1RlKHQuc2xpY2UoYSksYT4wLCExKSksbi5qb2luKCIiKX1mdW5jdGlvbiBfVGUoZSx0LHIpe2xldCBpPTAsYT1lLmxlbmd0aDtpZih0KXtsZXQgbj1lLmNvZGVQb2ludEF0KGkpO2Zvcig7bj09PTl8fG49PT0zMjspaSsrLG49ZS5jb2RlUG9pbnRBdChpKX1pZihyKXtsZXQgbj1lLmNvZGVQb2ludEF0KGEtMSk7Zm9yKDtuPT09OXx8bj09PTMyOylhLS0sbj1lLmNvZGVQb2ludEF0KGEtMSl9cmV0dXJuIGE+aT9lLnNsaWNlKGksYSk6IiJ9dmFyIHRqMSxyajEsQVRlPXAoKCk9Pnt0ajE9OSxyajE9MzJ9KTtmdW5jdGlvbiBEVGUoZSx0KXtsZXQgcj17dHlwZToidGV4dCIsdmFsdWU6TFRlKFN0cmluZyh0LnZhbHVlKSl9O3JldHVybiBlLnBhdGNoKHQsciksZS5hcHBseURhdGEodCxyKX12YXIgRVRlPXAoKCk9PntBVGUoKX0pO2Z1bmN0aW9uICRUZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJociIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBJVGU9cCgoKT0+e30pO2Z1bmN0aW9uIGlrKCl7fXZhciBWVSxVVT1wKCgpPT57QkNlKCk7cUNlKCk7VkNlKCk7V0NlKCk7WUNlKCk7WENlKCk7SkNlKCk7ZVRlKCk7clRlKCk7YVRlKCk7b1RlKCk7bFRlKCk7ZFRlKCk7aFRlKCk7bVRlKCk7YlRlKCk7eFRlKCk7d1RlKCk7a1RlKCk7elRlKCk7VFRlKCk7RVRlKCk7SVRlKCk7VlU9e2Jsb2NrcXVvdGU6UkNlLGJyZWFrOkhDZSxjb2RlOmpDZSxkZWxldGU6VUNlLGVtcGhhc2lzOkdDZSxmb290bm90ZVJlZmVyZW5jZTpaQ2UsaGVhZGluZzpRQ2UsaHRtbDpLQ2UsaW1hZ2VSZWZlcmVuY2U6dFRlLGltYWdlOmlUZSxpbmxpbmVDb2RlOm5UZSxsaW5rUmVmZXJlbmNlOnNUZSxsaW5rOmNUZSxsaXN0SXRlbTpwVGUsbGlzdDpmVGUscGFyYWdyYXBoOmdUZSxyb290OnZUZSxzdHJvbmc6eVRlLHRhYmxlOk1UZSx0YWJsZUNlbGw6Q1RlLHRhYmxlUm93OlNUZSx0ZXh0OkRUZSx0aGVtYXRpY0JyZWFrOiRUZSx0b21sOmlrLHlhbWw6aWssZGVmaW5pdGlvbjppayxmb290bm90ZURlZmluaXRpb246aWt9fSk7ZnVuY3Rpb24gUFRlKGUsdCl7bGV0IHI9W3t0eXBlOiJ0ZXh0Iix2YWx1ZToiXHUyMUE5In1dO3JldHVybiB0PjEmJnIucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKHQpfV19KSxyfWZ1bmN0aW9uIE5UZShlLHQpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyhlKzEpKyh0PjE/Ii0iK3Q6IiIpfWZ1bmN0aW9uIEZUZShlKXtsZXQgdD10eXBlb2YgZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg9PSJzdHJpbmciP2Uub3B0aW9ucy5jbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIixyPWUub3B0aW9ucy5mb290bm90ZUJhY2tDb250ZW50fHxQVGUsaT1lLm9wdGlvbnMuZm9vdG5vdGVCYWNrTGFiZWx8fE5UZSxhPWUub3B0aW9ucy5mb290bm90ZUxhYmVsfHwiRm9vdG5vdGVzIixuPWUub3B0aW9ucy5mb290bm90ZUxhYmVsVGFnTmFtZXx8ImgyIixvPWUub3B0aW9ucy5mb290bm90ZUxhYmVsUHJvcGVydGllc3x8e2NsYXNzTmFtZTpbInNyLW9ubHkiXX0scz1bXSxsPS0xO2Zvcig7KytsPGUuZm9vdG5vdGVPcmRlci5sZW5ndGg7KXtsZXQgYz1lLmZvb3Rub3RlQnlJZC5nZXQoZS5mb290bm90ZU9yZGVyW2xdKTtpZighYyljb250aW51ZTtsZXQgdT1lLmFsbChjKSxkPVN0cmluZyhjLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksaD1GbihkLnRvTG93ZXJDYXNlKCkpLGY9MCx4PVtdLHY9ZS5mb290bm90ZUNvdW50cy5nZXQoZCk7Zm9yKDt2IT09dm9pZCAwJiYrK2Y8PXY7KXt4Lmxlbmd0aD4wJiZ4LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pO2xldCB3PXR5cGVvZiByPT0ic3RyaW5nIj9yOnIobCxmKTt0eXBlb2Ygdz09InN0cmluZyImJih3PXt0eXBlOiJ0ZXh0Iix2YWx1ZTp3fSkseC5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIit0KyJmbnJlZi0iK2grKGY+MT8iLSIrZjoiIiksZGF0YUZvb3Rub3RlQmFja3JlZjoiIixhcmlhTGFiZWw6dHlwZW9mIGk9PSJzdHJpbmciP2k6aShsLGYpLGNsYXNzTmFtZTpbImRhdGEtZm9vdG5vdGUtYmFja3JlZiJdfSxjaGlsZHJlbjpBcnJheS5pc0FycmF5KHcpP3c6W3ddfSl9bGV0IGI9dVt1Lmxlbmd0aC0xXTtpZihiJiZiLnR5cGU9PT0iZWxlbWVudCImJmIudGFnTmFtZT09PSJwIil7bGV0IHc9Yi5jaGlsZHJlbltiLmNoaWxkcmVuLmxlbmd0aC0xXTt3JiZ3LnR5cGU9PT0idGV4dCI/dy52YWx1ZSs9IiAiOmIuY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksYi5jaGlsZHJlbi5wdXNoKC4uLngpfWVsc2UgdS5wdXNoKC4uLngpO2xldCB5PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczp7aWQ6dCsiZm4tIitofSxjaGlsZHJlbjplLndyYXAodSwhMCl9O2UucGF0Y2goYyx5KSxzLnB1c2goeSl9aWYocy5sZW5ndGghPT0wKXJldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzZWN0aW9uIixwcm9wZXJ0aWVzOntkYXRhRm9vdG5vdGVzOiEwLGNsYXNzTmFtZTpbImZvb3Rub3RlcyJdfSxjaGlsZHJlbjpbe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6bixwcm9wZXJ0aWVzOnsuLi5TMChvKSxpZDoiZm9vdG5vdGUtbGFiZWwifSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmF9XX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH0se3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6Im9sIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChzLCEwKX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfX12YXIgV1U9cCgoKT0+e1FNKCk7bXMoKX0pO2Z1bmN0aW9uIFJUZShlLHQpe2xldCByPXR8fHdTcixpPW5ldyBNYXAsYT1uZXcgTWFwLG49bmV3IE1hcCxvPXsuLi5WVSwuLi5yLmhhbmRsZXJzfSxzPXthbGw6YyxhcHBseURhdGE6a1NyLGRlZmluaXRpb25CeUlkOmksZm9vdG5vdGVCeUlkOmEsZm9vdG5vdGVDb3VudHM6bixmb290bm90ZU9yZGVyOltdLGhhbmRsZXJzOm8sb25lOmwsb3B0aW9uczpyLHBhdGNoOk1Tcix3cmFwOnpTcn07cmV0dXJuIGc3KGUsZnVuY3Rpb24odSl7aWYodS50eXBlPT09ImRlZmluaXRpb24ifHx1LnR5cGU9PT0iZm9vdG5vdGVEZWZpbml0aW9uIil7bGV0IGQ9dS50eXBlPT09ImRlZmluaXRpb24iP2k6YSxoPVN0cmluZyh1LmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCk7ZC5oYXMoaCl8fGQuc2V0KGgsdSl9fSkscztmdW5jdGlvbiBsKHUsZCl7bGV0IGg9dS50eXBlLGY9cy5oYW5kbGVyc1toXTtpZihHVS5jYWxsKHMuaGFuZGxlcnMsaCkmJmYpcmV0dXJuIGYocyx1LGQpO2lmKHMub3B0aW9ucy5wYXNzVGhyb3VnaCYmcy5vcHRpb25zLnBhc3NUaHJvdWdoLmluY2x1ZGVzKGgpKXtpZigiY2hpbGRyZW4iaW4gdSl7bGV0e2NoaWxkcmVuOnYsLi4uYn09dSx5PVMwKGIpO3JldHVybiB5LmNoaWxkcmVuPXMuYWxsKHUpLHl9cmV0dXJuIFMwKHUpfXJldHVybihzLm9wdGlvbnMudW5rbm93bkhhbmRsZXJ8fFNTcikocyx1LGQpfWZ1bmN0aW9uIGModSl7bGV0IGQ9W107aWYoImNoaWxkcmVuImluIHUpe2xldCBoPXUuY2hpbGRyZW4sZj0tMTtmb3IoOysrZjxoLmxlbmd0aDspe2xldCB4PXMub25lKGhbZl0sdSk7aWYoeCl7aWYoZiYmaFtmLTFdLnR5cGU9PT0iYnJlYWsiJiYoIUFycmF5LmlzQXJyYXkoeCkmJngudHlwZT09PSJ0ZXh0IiYmKHgudmFsdWU9T1RlKHgudmFsdWUpKSwhQXJyYXkuaXNBcnJheSh4KSYmeC50eXBlPT09ImVsZW1lbnQiKSl7bGV0IHY9eC5jaGlsZHJlblswXTt2JiZ2LnR5cGU9PT0idGV4dCImJih2LnZhbHVlPU9UZSh2LnZhbHVlKSl9QXJyYXkuaXNBcnJheSh4KT9kLnB1c2goLi4ueCk6ZC5wdXNoKHgpfX19cmV0dXJuIGR9fWZ1bmN0aW9uIE1TcihlLHQpe2UucG9zaXRpb24mJih0LnBvc2l0aW9uPUQ3KGUpKX1mdW5jdGlvbiBrU3IoZSx0KXtsZXQgcj10O2lmKGUmJmUuZGF0YSl7bGV0IGk9ZS5kYXRhLmhOYW1lLGE9ZS5kYXRhLmhDaGlsZHJlbixuPWUuZGF0YS5oUHJvcGVydGllcztpZih0eXBlb2YgaT09InN0cmluZyIpaWYoci50eXBlPT09ImVsZW1lbnQiKXIudGFnTmFtZT1pO2Vsc2V7bGV0IG89ImNoaWxkcmVuImluIHI/ci5jaGlsZHJlbjpbcl07cj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTppLHByb3BlcnRpZXM6e30sY2hpbGRyZW46b319ci50eXBlPT09ImVsZW1lbnQiJiZuJiZPYmplY3QuYXNzaWduKHIucHJvcGVydGllcyxTMChuKSksImNoaWxkcmVuImluIHImJnIuY2hpbGRyZW4mJmEhPT1udWxsJiZhIT09dm9pZCAwJiYoci5jaGlsZHJlbj1hKX1yZXR1cm4gcn1mdW5jdGlvbiBTU3IoZSx0KXtsZXQgcj10LmRhdGF8fHt9LGk9InZhbHVlImluIHQmJiEoR1UuY2FsbChyLCJoUHJvcGVydGllcyIpfHxHVS5jYWxsKHIsImhDaGlsZHJlbiIpKT97dHlwZToidGV4dCIsdmFsdWU6dC52YWx1ZX06e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRpdiIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxpKSxlLmFwcGx5RGF0YSh0LGkpfWZ1bmN0aW9uIHpTcihlLHQpe2xldCByPVtdLGk9LTE7Zm9yKHQmJnIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSk7KytpPGUubGVuZ3RoOylpJiZyLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLHIucHVzaChlW2ldKTtyZXR1cm4gdCYmZS5sZW5ndGg+MCYmci5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KSxyfWZ1bmN0aW9uIE9UZShlKXtsZXQgdD0wLHI9ZS5jaGFyQ29kZUF0KHQpO2Zvcig7cj09PTl8fHI9PT0zMjspdCsrLHI9ZS5jaGFyQ29kZUF0KHQpO3JldHVybiBlLnNsaWNlKHQpfXZhciBHVSx3U3IsQlRlPXAoKCk9PntRTSgpO3ZWKCk7ZWsoKTtVVSgpO0dVPXt9Lmhhc093blByb3BlcnR5LHdTcj17fX0pO2Z1bmN0aW9uIFlVKGUsdCl7bGV0IHI9UlRlKGUsdCksaT1yLm9uZShlLHZvaWQgMCksYT1GVGUociksbj1BcnJheS5pc0FycmF5KGkpP3t0eXBlOiJyb290IixjaGlsZHJlbjppfTppfHx7dHlwZToicm9vdCIsY2hpbGRyZW46W119O3JldHVybiBhJiYoImNoaWxkcmVuImluIG4sbi5jaGlsZHJlbi5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9LGEpKSxufXZhciBIVGU9cCgoKT0+e2IwKCk7V1UoKTtCVGUoKX0pO3ZhciBxVGU9cCgoKT0+e1VVKCk7SFRlKCk7V1UoKX0pO3ZhciBqVGUsVlRlPXAoKCk9PntqVGU9WyJhcmVhIiwiYmFzZSIsImJhc2Vmb250IiwiYmdzb3VuZCIsImJyIiwiY29sIiwiY29tbWFuZCIsImVtYmVkIiwiZnJhbWUiLCJociIsImltYWdlIiwiaW1nIiwiaW5wdXQiLCJrZXlnZW4iLCJsaW5rIiwibWV0YSIsInBhcmFtIiwic291cmNlIiwidHJhY2siLCJ3YnIiXX0pO3ZhciAkbCxaVT1wKCgpPT57JGw9Y2xhc3N7Y29uc3RydWN0b3IodCxyLGkpe3RoaXMubm9ybWFsPXIsdGhpcy5wcm9wZXJ0eT10LGkmJih0aGlzLnNwYWNlPWkpfX07JGwucHJvdG90eXBlLm5vcm1hbD17fSwkbC5wcm90b3R5cGUucHJvcGVydHk9e30sJGwucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO2Z1bmN0aW9uIFhVKGUsdCl7bGV0IHI9e30saT17fTtmb3IobGV0IGEgb2YgZSlPYmplY3QuYXNzaWduKHIsYS5wcm9wZXJ0eSksT2JqZWN0LmFzc2lnbihpLGEubm9ybWFsKTtyZXR1cm4gbmV3ICRsKHIsaSx0KX12YXIgVVRlPXAoKCk9PntaVSgpfSk7ZnVuY3Rpb24gRXUoZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX12YXIgYWs9cCgoKT0+e30pO3ZhciBBaSxRVT1wKCgpPT57QWk9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLmF0dHJpYnV0ZT1yLHRoaXMucHJvcGVydHk9dH19O0FpLnByb3RvdHlwZS5hdHRyaWJ1dGU9IiIsQWkucHJvdG90eXBlLmJvb2xlYW5pc2g9ITEsQWkucHJvdG90eXBlLmJvb2xlYW49ITEsQWkucHJvdG90eXBlLmNvbW1hT3JTcGFjZVNlcGFyYXRlZD0hMSxBaS5wcm90b3R5cGUuY29tbWFTZXBhcmF0ZWQ9ITEsQWkucHJvdG90eXBlLmRlZmluZWQ9ITEsQWkucHJvdG90eXBlLm11c3RVc2VQcm9wZXJ0eT0hMSxBaS5wcm90b3R5cGUubnVtYmVyPSExLEFpLnByb3RvdHlwZS5vdmVybG9hZGVkQm9vbGVhbj0hMSxBaS5wcm90b3R5cGUucHJvcGVydHk9IiIsQWkucHJvdG90eXBlLnNwYWNlU2VwYXJhdGVkPSExLEFpLnByb3RvdHlwZS5zcGFjZT12b2lkIDB9KTt2YXIgJDc9e307RmUoJDcse2Jvb2xlYW46KCk9PkR0LGJvb2xlYW5pc2g6KCk9PkExLGNvbW1hT3JTcGFjZVNlcGFyYXRlZDooKT0+Ym4sY29tbWFTZXBhcmF0ZWQ6KCk9PkMwLG51bWJlcjooKT0+SGUsb3ZlcmxvYWRlZEJvb2xlYW46KCk9Pm5rLHNwYWNlU2VwYXJhdGVkOigpPT5Icn0pO2Z1bmN0aW9uIHQ2KCl7cmV0dXJuIDIqKisrQ1NyfXZhciBDU3IsRHQsQTEsbmssSGUsSHIsQzAsYm4sSTc9cCgoKT0+e0NTcj0wLER0PXQ2KCksQTE9dDYoKSxuaz10NigpLEhlPXQ2KCksSHI9dDYoKSxDMD10NigpLGJuPXQ2KCl9KTtmdW5jdGlvbiBXVGUoZSx0LHIpe3ImJihlW3RdPXIpfXZhciBKVSxyNixLVT1wKCgpPT57UVUoKTtJNygpO0pVPU9iamVjdC5rZXlzKCQ3KSxyNj1jbGFzcyBleHRlbmRzIEFpe2NvbnN0cnVjdG9yKHQscixpLGEpe2xldCBuPS0xO2lmKHN1cGVyKHQsciksV1RlKHRoaXMsInNwYWNlIixhKSx0eXBlb2YgaT09Im51bWJlciIpZm9yKDsrK248SlUubGVuZ3RoOyl7bGV0IG89SlVbbl07V1RlKHRoaXMsSlVbbl0sKGkmJDdbb10pPT09JDdbb10pfX19O3I2LnByb3RvdHlwZS5kZWZpbmVkPSEwfSk7ZnVuY3Rpb24gaG8oZSl7bGV0IHQ9e30scj17fTtmb3IobGV0W2ksYV1vZiBPYmplY3QuZW50cmllcyhlLnByb3BlcnRpZXMpKXtsZXQgbj1uZXcgcjYoaSxlLnRyYW5zZm9ybShlLmF0dHJpYnV0ZXN8fHt9LGkpLGEsZS5zcGFjZSk7ZS5tdXN0VXNlUHJvcGVydHkmJmUubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKGkpJiYobi5tdXN0VXNlUHJvcGVydHk9ITApLHRbaV09bixyW0V1KGkpXT1pLHJbRXUobi5hdHRyaWJ1dGUpXT1pfXJldHVybiBuZXcgJGwodCxyLGUuc3BhY2UpfXZhciBpNj1wKCgpPT57YWsoKTtLVSgpO1pVKCl9KTt2YXIgZVcsR1RlPXAoKCk9PntpNigpO0k3KCk7ZVc9aG8oe3Byb3BlcnRpZXM6e2FyaWFBY3RpdmVEZXNjZW5kYW50Om51bGwsYXJpYUF0b21pYzpBMSxhcmlhQXV0b0NvbXBsZXRlOm51bGwsYXJpYUJ1c3k6QTEsYXJpYUNoZWNrZWQ6QTEsYXJpYUNvbENvdW50OkhlLGFyaWFDb2xJbmRleDpIZSxhcmlhQ29sU3BhbjpIZSxhcmlhQ29udHJvbHM6SHIsYXJpYUN1cnJlbnQ6bnVsbCxhcmlhRGVzY3JpYmVkQnk6SHIsYXJpYURldGFpbHM6bnVsbCxhcmlhRGlzYWJsZWQ6QTEsYXJpYURyb3BFZmZlY3Q6SHIsYXJpYUVycm9yTWVzc2FnZTpudWxsLGFyaWFFeHBhbmRlZDpBMSxhcmlhRmxvd1RvOkhyLGFyaWFHcmFiYmVkOkExLGFyaWFIYXNQb3B1cDpudWxsLGFyaWFIaWRkZW46QTEsYXJpYUludmFsaWQ6bnVsbCxhcmlhS2V5U2hvcnRjdXRzOm51bGwsYXJpYUxhYmVsOm51bGwsYXJpYUxhYmVsbGVkQnk6SHIsYXJpYUxldmVsOkhlLGFyaWFMaXZlOm51bGwsYXJpYU1vZGFsOkExLGFyaWFNdWx0aUxpbmU6QTEsYXJpYU11bHRpU2VsZWN0YWJsZTpBMSxhcmlhT3JpZW50YXRpb246bnVsbCxhcmlhT3duczpIcixhcmlhUGxhY2Vob2xkZXI6bnVsbCxhcmlhUG9zSW5TZXQ6SGUsYXJpYVByZXNzZWQ6QTEsYXJpYVJlYWRPbmx5OkExLGFyaWFSZWxldmFudDpudWxsLGFyaWFSZXF1aXJlZDpBMSxhcmlhUm9sZURlc2NyaXB0aW9uOkhyLGFyaWFSb3dDb3VudDpIZSxhcmlhUm93SW5kZXg6SGUsYXJpYVJvd1NwYW46SGUsYXJpYVNlbGVjdGVkOkExLGFyaWFTZXRTaXplOkhlLGFyaWFTb3J0Om51bGwsYXJpYVZhbHVlTWF4OkhlLGFyaWFWYWx1ZU1pbjpIZSxhcmlhVmFsdWVOb3c6SGUsYXJpYVZhbHVlVGV4dDpudWxsLHJvbGU6bnVsbH0sdHJhbnNmb3JtKGUsdCl7cmV0dXJuIHQ9PT0icm9sZSI/dDoiYXJpYS0iK3Quc2xpY2UoNCkudG9Mb3dlckNhc2UoKX19KX0pO2Z1bmN0aW9uIG9rKGUsdCl7cmV0dXJuIHQgaW4gZT9lW3RdOnR9dmFyIHRXPXAoKCk9Pnt9KTtmdW5jdGlvbiBzayhlLHQpe3JldHVybiBvayhlLHQudG9Mb3dlckNhc2UoKSl9dmFyIHJXPXAoKCk9Pnt0VygpfSk7dmFyIFlUZSxaVGU9cCgoKT0+e3JXKCk7aTYoKTtJNygpO1lUZT1obyh7YXR0cmlidXRlczp7YWNjZXB0Y2hhcnNldDoiYWNjZXB0LWNoYXJzZXQiLGNsYXNzbmFtZToiY2xhc3MiLGh0bWxmb3I6ImZvciIsaHR0cGVxdWl2OiJodHRwLWVxdWl2In0sbXVzdFVzZVByb3BlcnR5OlsiY2hlY2tlZCIsIm11bHRpcGxlIiwibXV0ZWQiLCJzZWxlY3RlZCJdLHByb3BlcnRpZXM6e2FiYnI6bnVsbCxhY2NlcHQ6QzAsYWNjZXB0Q2hhcnNldDpIcixhY2Nlc3NLZXk6SHIsYWN0aW9uOm51bGwsYWxsb3c6bnVsbCxhbGxvd0Z1bGxTY3JlZW46RHQsYWxsb3dQYXltZW50UmVxdWVzdDpEdCxhbGxvd1VzZXJNZWRpYTpEdCxhbHQ6bnVsbCxhczpudWxsLGFzeW5jOkR0LGF1dG9DYXBpdGFsaXplOm51bGwsYXV0b0NvbXBsZXRlOkhyLGF1dG9Gb2N1czpEdCxhdXRvUGxheTpEdCxibG9ja2luZzpIcixjYXB0dXJlOm51bGwsY2hhclNldDpudWxsLGNoZWNrZWQ6RHQsY2l0ZTpudWxsLGNsYXNzTmFtZTpIcixjb2xzOkhlLGNvbFNwYW46bnVsbCxjb250ZW50Om51bGwsY29udGVudEVkaXRhYmxlOkExLGNvbnRyb2xzOkR0LGNvbnRyb2xzTGlzdDpIcixjb29yZHM6SGV8QzAsY3Jvc3NPcmlnaW46bnVsbCxkYXRhOm51bGwsZGF0ZVRpbWU6bnVsbCxkZWNvZGluZzpudWxsLGRlZmF1bHQ6RHQsZGVmZXI6RHQsZGlyOm51bGwsZGlyTmFtZTpudWxsLGRpc2FibGVkOkR0LGRvd25sb2FkOm5rLGRyYWdnYWJsZTpBMSxlbmNUeXBlOm51bGwsZW50ZXJLZXlIaW50Om51bGwsZmV0Y2hQcmlvcml0eTpudWxsLGZvcm06bnVsbCxmb3JtQWN0aW9uOm51bGwsZm9ybUVuY1R5cGU6bnVsbCxmb3JtTWV0aG9kOm51bGwsZm9ybU5vVmFsaWRhdGU6RHQsZm9ybVRhcmdldDpudWxsLGhlYWRlcnM6SHIsaGVpZ2h0OkhlLGhpZGRlbjpuayxoaWdoOkhlLGhyZWY6bnVsbCxocmVmTGFuZzpudWxsLGh0bWxGb3I6SHIsaHR0cEVxdWl2OkhyLGlkOm51bGwsaW1hZ2VTaXplczpudWxsLGltYWdlU3JjU2V0Om51bGwsaW5lcnQ6RHQsaW5wdXRNb2RlOm51bGwsaW50ZWdyaXR5Om51bGwsaXM6bnVsbCxpc01hcDpEdCxpdGVtSWQ6bnVsbCxpdGVtUHJvcDpIcixpdGVtUmVmOkhyLGl0ZW1TY29wZTpEdCxpdGVtVHlwZTpIcixraW5kOm51bGwsbGFiZWw6bnVsbCxsYW5nOm51bGwsbGFuZ3VhZ2U6bnVsbCxsaXN0Om51bGwsbG9hZGluZzpudWxsLGxvb3A6RHQsbG93OkhlLG1hbmlmZXN0Om51bGwsbWF4Om51bGwsbWF4TGVuZ3RoOkhlLG1lZGlhOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbWluTGVuZ3RoOkhlLG11bHRpcGxlOkR0LG11dGVkOkR0LG5hbWU6bnVsbCxub25jZTpudWxsLG5vTW9kdWxlOkR0LG5vVmFsaWRhdGU6RHQsb25BYm9ydDpudWxsLG9uQWZ0ZXJQcmludDpudWxsLG9uQXV4Q2xpY2s6bnVsbCxvbkJlZm9yZU1hdGNoOm51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVmb3JlVG9nZ2xlOm51bGwsb25CZWZvcmVVbmxvYWQ6bnVsbCxvbkJsdXI6bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db250ZXh0TG9zdDpudWxsLG9uQ29udGV4dE1lbnU6bnVsbCxvbkNvbnRleHRSZXN0b3JlZDpudWxsLG9uQ29weTpudWxsLG9uQ3VlQ2hhbmdlOm51bGwsb25DdXQ6bnVsbCxvbkRibENsaWNrOm51bGwsb25EcmFnOm51bGwsb25EcmFnRW5kOm51bGwsb25EcmFnRW50ZXI6bnVsbCxvbkRyYWdFeGl0Om51bGwsb25EcmFnTGVhdmU6bnVsbCxvbkRyYWdPdmVyOm51bGwsb25EcmFnU3RhcnQ6bnVsbCxvbkRyb3A6bnVsbCxvbkR1cmF0aW9uQ2hhbmdlOm51bGwsb25FbXB0aWVkOm51bGwsb25FbmRlZDpudWxsLG9uRXJyb3I6bnVsbCxvbkZvY3VzOm51bGwsb25Gb3JtRGF0YTpudWxsLG9uSGFzaENoYW5nZTpudWxsLG9uSW5wdXQ6bnVsbCxvbkludmFsaWQ6bnVsbCxvbktleURvd246bnVsbCxvbktleVByZXNzOm51bGwsb25LZXlVcDpudWxsLG9uTGFuZ3VhZ2VDaGFuZ2U6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkRW5kOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1lc3NhZ2VFcnJvcjpudWxsLG9uTW91c2VEb3duOm51bGwsb25Nb3VzZUVudGVyOm51bGwsb25Nb3VzZUxlYXZlOm51bGwsb25Nb3VzZU1vdmU6bnVsbCxvbk1vdXNlT3V0Om51bGwsb25Nb3VzZU92ZXI6bnVsbCxvbk1vdXNlVXA6bnVsbCxvbk9mZmxpbmU6bnVsbCxvbk9ubGluZTpudWxsLG9uUGFnZUhpZGU6bnVsbCxvblBhZ2VTaG93Om51bGwsb25QYXN0ZTpudWxsLG9uUGF1c2U6bnVsbCxvblBsYXk6bnVsbCxvblBsYXlpbmc6bnVsbCxvblBvcFN0YXRlOm51bGwsb25Qcm9ncmVzczpudWxsLG9uUmF0ZUNoYW5nZTpudWxsLG9uUmVqZWN0aW9uSGFuZGxlZDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TY3JvbGxFbmQ6bnVsbCxvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2xvdENoYW5nZTpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVuaGFuZGxlZFJlamVjdGlvbjpudWxsLG9uVW5sb2FkOm51bGwsb25Wb2x1bWVDaGFuZ2U6bnVsbCxvbldhaXRpbmc6bnVsbCxvbldoZWVsOm51bGwsb3BlbjpEdCxvcHRpbXVtOkhlLHBhdHRlcm46bnVsbCxwaW5nOkhyLHBsYWNlaG9sZGVyOm51bGwscGxheXNJbmxpbmU6RHQscG9wb3ZlcjpudWxsLHBvcG92ZXJUYXJnZXQ6bnVsbCxwb3BvdmVyVGFyZ2V0QWN0aW9uOm51bGwscG9zdGVyOm51bGwscHJlbG9hZDpudWxsLHJlYWRPbmx5OkR0LHJlZmVycmVyUG9saWN5Om51bGwscmVsOkhyLHJlcXVpcmVkOkR0LHJldmVyc2VkOkR0LHJvd3M6SGUscm93U3BhbjpIZSxzYW5kYm94OkhyLHNjb3BlOm51bGwsc2NvcGVkOkR0LHNlYW1sZXNzOkR0LHNlbGVjdGVkOkR0LHNoYWRvd1Jvb3RDbG9uYWJsZTpEdCxzaGFkb3dSb290RGVsZWdhdGVzRm9jdXM6RHQsc2hhZG93Um9vdE1vZGU6bnVsbCxzaGFwZTpudWxsLHNpemU6SGUsc2l6ZXM6bnVsbCxzbG90Om51bGwsc3BhbjpIZSxzcGVsbENoZWNrOkExLHNyYzpudWxsLHNyY0RvYzpudWxsLHNyY0xhbmc6bnVsbCxzcmNTZXQ6bnVsbCxzdGFydDpIZSxzdGVwOm51bGwsc3R5bGU6bnVsbCx0YWJJbmRleDpIZSx0YXJnZXQ6bnVsbCx0aXRsZTpudWxsLHRyYW5zbGF0ZTpudWxsLHR5cGU6bnVsbCx0eXBlTXVzdE1hdGNoOkR0LHVzZU1hcDpudWxsLHZhbHVlOkExLHdpZHRoOkhlLHdyYXA6bnVsbCx3cml0aW5nU3VnZ2VzdGlvbnM6bnVsbCxhbGlnbjpudWxsLGFMaW5rOm51bGwsYXJjaGl2ZTpIcixheGlzOm51bGwsYmFja2dyb3VuZDpudWxsLGJnQ29sb3I6bnVsbCxib3JkZXI6SGUsYm9yZGVyQ29sb3I6bnVsbCxib3R0b21NYXJnaW46SGUsY2VsbFBhZGRpbmc6bnVsbCxjZWxsU3BhY2luZzpudWxsLGNoYXI6bnVsbCxjaGFyT2ZmOm51bGwsY2xhc3NJZDpudWxsLGNsZWFyOm51bGwsY29kZTpudWxsLGNvZGVCYXNlOm51bGwsY29kZVR5cGU6bnVsbCxjb2xvcjpudWxsLGNvbXBhY3Q6RHQsZGVjbGFyZTpEdCxldmVudDpudWxsLGZhY2U6bnVsbCxmcmFtZTpudWxsLGZyYW1lQm9yZGVyOm51bGwsaFNwYWNlOkhlLGxlZnRNYXJnaW46SGUsbGluazpudWxsLGxvbmdEZXNjOm51bGwsbG93U3JjOm51bGwsbWFyZ2luSGVpZ2h0OkhlLG1hcmdpbldpZHRoOkhlLG5vUmVzaXplOkR0LG5vSHJlZjpEdCxub1NoYWRlOkR0LG5vV3JhcDpEdCxvYmplY3Q6bnVsbCxwcm9maWxlOm51bGwscHJvbXB0Om51bGwscmV2Om51bGwscmlnaHRNYXJnaW46SGUscnVsZXM6bnVsbCxzY2hlbWU6bnVsbCxzY3JvbGxpbmc6QTEsc3RhbmRieTpudWxsLHN1bW1hcnk6bnVsbCx0ZXh0Om51bGwsdG9wTWFyZ2luOkhlLHZhbHVlVHlwZTpudWxsLHZlcnNpb246bnVsbCx2QWxpZ246bnVsbCx2TGluazpudWxsLHZTcGFjZTpIZSxhbGxvd1RyYW5zcGFyZW5jeTpudWxsLGF1dG9Db3JyZWN0Om51bGwsYXV0b1NhdmU6bnVsbCxkaXNhYmxlUGljdHVyZUluUGljdHVyZTpEdCxkaXNhYmxlUmVtb3RlUGxheWJhY2s6RHQscHJlZml4Om51bGwscHJvcGVydHk6bnVsbCxyZXN1bHRzOkhlLHNlY3VyaXR5Om51bGwsdW5zZWxlY3RhYmxlOm51bGx9LHNwYWNlOiJodG1sIix0cmFuc2Zvcm06c2t9KX0pO3ZhciBYVGUsUVRlPXAoKCk9Pnt0VygpO2k2KCk7STcoKTtYVGU9aG8oe2F0dHJpYnV0ZXM6e2FjY2VudEhlaWdodDoiYWNjZW50LWhlaWdodCIsYWxpZ25tZW50QmFzZWxpbmU6ImFsaWdubWVudC1iYXNlbGluZSIsYXJhYmljRm9ybToiYXJhYmljLWZvcm0iLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixjYXBIZWlnaHQ6ImNhcC1oZWlnaHQiLGNsYXNzTmFtZToiY2xhc3MiLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNsaXBSdWxlOiJjbGlwLXJ1bGUiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9yUmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNyb3NzT3JpZ2luOiJjcm9zc29yaWdpbiIsZGF0YVR5cGU6ImRhdGF0eXBlIixkb21pbmFudEJhc2VsaW5lOiJkb21pbmFudC1iYXNlbGluZSIsZW5hYmxlQmFja2dyb3VuZDoiZW5hYmxlLWJhY2tncm91bmQiLGZpbGxPcGFjaXR5OiJmaWxsLW9wYWNpdHkiLGZpbGxSdWxlOiJmaWxsLXJ1bGUiLGZsb29kQ29sb3I6ImZsb29kLWNvbG9yIixmbG9vZE9wYWNpdHk6ImZsb29kLW9wYWNpdHkiLGZvbnRGYW1pbHk6ImZvbnQtZmFtaWx5Iixmb250U2l6ZToiZm9udC1zaXplIixmb250U2l6ZUFkanVzdDoiZm9udC1zaXplLWFkanVzdCIsZm9udFN0cmV0Y2g6ImZvbnQtc3RyZXRjaCIsZm9udFN0eWxlOiJmb250LXN0eWxlIixmb250VmFyaWFudDoiZm9udC12YXJpYW50Iixmb250V2VpZ2h0OiJmb250LXdlaWdodCIsZ2x5cGhOYW1lOiJnbHlwaC1uYW1lIixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDoiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsaHJlZkxhbmc6ImhyZWZsYW5nIixob3JpekFkdlg6Imhvcml6LWFkdi14Iixob3Jpek9yaWdpblg6Imhvcml6LW9yaWdpbi14Iixob3Jpek9yaWdpblk6Imhvcml6LW9yaWdpbi15IixpbWFnZVJlbmRlcmluZzoiaW1hZ2UtcmVuZGVyaW5nIixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xvcjoibGlnaHRpbmctY29sb3IiLG1hcmtlckVuZDoibWFya2VyLWVuZCIsbWFya2VyTWlkOiJtYXJrZXItbWlkIixtYXJrZXJTdGFydDoibWFya2VyLXN0YXJ0IixuYXZEb3duOiJuYXYtZG93biIsbmF2RG93bkxlZnQ6Im5hdi1kb3duLWxlZnQiLG5hdkRvd25SaWdodDoibmF2LWRvd24tcmlnaHQiLG5hdkxlZnQ6Im5hdi1sZWZ0IixuYXZOZXh0OiJuYXYtbmV4dCIsbmF2UHJldjoibmF2LXByZXYiLG5hdlJpZ2h0OiJuYXYtcmlnaHQiLG5hdlVwOiJuYXYtdXAiLG5hdlVwTGVmdDoibmF2LXVwLWxlZnQiLG5hdlVwUmlnaHQ6Im5hdi11cC1yaWdodCIsb25BYm9ydDoib25hYm9ydCIsb25BY3RpdmF0ZToib25hY3RpdmF0ZSIsb25BZnRlclByaW50OiJvbmFmdGVycHJpbnQiLG9uQmVmb3JlUHJpbnQ6Im9uYmVmb3JlcHJpbnQiLG9uQmVnaW46Im9uYmVnaW4iLG9uQ2FuY2VsOiJvbmNhbmNlbCIsb25DYW5QbGF5OiJvbmNhbnBsYXkiLG9uQ2FuUGxheVRocm91Z2g6Im9uY2FucGxheXRocm91Z2giLG9uQ2hhbmdlOiJvbmNoYW5nZSIsb25DbGljazoib25jbGljayIsb25DbG9zZToib25jbG9zZSIsb25Db3B5OiJvbmNvcHkiLG9uQ3VlQ2hhbmdlOiJvbmN1ZWNoYW5nZSIsb25DdXQ6Im9uY3V0IixvbkRibENsaWNrOiJvbmRibGNsaWNrIixvbkRyYWc6Im9uZHJhZyIsb25EcmFnRW5kOiJvbmRyYWdlbmQiLG9uRHJhZ0VudGVyOiJvbmRyYWdlbnRlciIsb25EcmFnRXhpdDoib25kcmFnZXhpdCIsb25EcmFnTGVhdmU6Im9uZHJhZ2xlYXZlIixvbkRyYWdPdmVyOiJvbmRyYWdvdmVyIixvbkRyYWdTdGFydDoib25kcmFnc3RhcnQiLG9uRHJvcDoib25kcm9wIixvbkR1cmF0aW9uQ2hhbmdlOiJvbmR1cmF0aW9uY2hhbmdlIixvbkVtcHRpZWQ6Im9uZW1wdGllZCIsb25FbmQ6Im9uZW5kIixvbkVuZGVkOiJvbmVuZGVkIixvbkVycm9yOiJvbmVycm9yIixvbkZvY3VzOiJvbmZvY3VzIixvbkZvY3VzSW46Im9uZm9jdXNpbiIsb25Gb2N1c091dDoib25mb2N1c291dCIsb25IYXNoQ2hhbmdlOiJvbmhhc2hjaGFuZ2UiLG9uSW5wdXQ6Im9uaW5wdXQiLG9uSW52YWxpZDoib25pbnZhbGlkIixvbktleURvd246Im9ua2V5ZG93biIsb25LZXlQcmVzczoib25rZXlwcmVzcyIsb25LZXlVcDoib25rZXl1cCIsb25Mb2FkOiJvbmxvYWQiLG9uTG9hZGVkRGF0YToib25sb2FkZWRkYXRhIixvbkxvYWRlZE1ldGFkYXRhOiJvbmxvYWRlZG1ldGFkYXRhIixvbkxvYWRTdGFydDoib25sb2Fkc3RhcnQiLG9uTWVzc2FnZToib25tZXNzYWdlIixvbk1vdXNlRG93bjoib25tb3VzZWRvd24iLG9uTW91c2VFbnRlcjoib25tb3VzZWVudGVyIixvbk1vdXNlTGVhdmU6Im9ubW91c2VsZWF2ZSIsb25Nb3VzZU1vdmU6Im9ubW91c2Vtb3ZlIixvbk1vdXNlT3V0OiJvbm1vdXNlb3V0Iixvbk1vdXNlT3Zlcjoib25tb3VzZW92ZXIiLG9uTW91c2VVcDoib25tb3VzZXVwIixvbk1vdXNlV2hlZWw6Im9ubW91c2V3aGVlbCIsb25PZmZsaW5lOiJvbm9mZmxpbmUiLG9uT25saW5lOiJvbm9ubGluZSIsb25QYWdlSGlkZToib25wYWdlaGlkZSIsb25QYWdlU2hvdzoib25wYWdlc2hvdyIsb25QYXN0ZToib25wYXN0ZSIsb25QYXVzZToib25wYXVzZSIsb25QbGF5OiJvbnBsYXkiLG9uUGxheWluZzoib25wbGF5aW5nIixvblBvcFN0YXRlOiJvbnBvcHN0YXRlIixvblByb2dyZXNzOiJvbnByb2dyZXNzIixvblJhdGVDaGFuZ2U6Im9ucmF0ZWNoYW5nZSIsb25SZXBlYXQ6Im9ucmVwZWF0IixvblJlc2V0OiJvbnJlc2V0IixvblJlc2l6ZToib25yZXNpemUiLG9uU2Nyb2xsOiJvbnNjcm9sbCIsb25TZWVrZWQ6Im9uc2Vla2VkIixvblNlZWtpbmc6Im9uc2Vla2luZyIsb25TZWxlY3Q6Im9uc2VsZWN0IixvblNob3c6Im9uc2hvdyIsb25TdGFsbGVkOiJvbnN0YWxsZWQiLG9uU3RvcmFnZToib25zdG9yYWdlIixvblN1Ym1pdDoib25zdWJtaXQiLG9uU3VzcGVuZDoib25zdXNwZW5kIixvblRpbWVVcGRhdGU6Im9udGltZXVwZGF0ZSIsb25Ub2dnbGU6Im9udG9nZ2xlIixvblVubG9hZDoib251bmxvYWQiLG9uVm9sdW1lQ2hhbmdlOiJvbnZvbHVtZWNoYW5nZSIsb25XYWl0aW5nOiJvbndhaXRpbmciLG9uWm9vbToib256b29tIixvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3ZlcmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRlcjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwb2ludGVyRXZlbnRzOiJwb2ludGVyLWV2ZW50cyIscmVmZXJyZXJQb2xpY3k6InJlZmVycmVycG9saWN5IixyZW5kZXJpbmdJbnRlbnQ6InJlbmRlcmluZy1pbnRlbnQiLHNoYXBlUmVuZGVyaW5nOiJzaGFwZS1yZW5kZXJpbmciLHN0b3BDb2xvcjoic3RvcC1jb2xvciIsc3RvcE9wYWNpdHk6InN0b3Atb3BhY2l0eSIsc3RyaWtldGhyb3VnaFBvc2l0aW9uOiJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIixzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyIsc3Ryb2tlRGFzaEFycmF5OiJzdHJva2UtZGFzaGFycmF5IixzdHJva2VEYXNoT2Zmc2V0OiJzdHJva2UtZGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlLWxpbmVjYXAiLHN0cm9rZUxpbmVKb2luOiJzdHJva2UtbGluZWpvaW4iLHN0cm9rZU1pdGVyTGltaXQ6InN0cm9rZS1taXRlcmxpbWl0IixzdHJva2VPcGFjaXR5OiJzdHJva2Utb3BhY2l0eSIsc3Ryb2tlV2lkdGg6InN0cm9rZS13aWR0aCIsdGFiSW5kZXg6InRhYmluZGV4Iix0ZXh0QW5jaG9yOiJ0ZXh0LWFuY2hvciIsdGV4dERlY29yYXRpb246InRleHQtZGVjb3JhdGlvbiIsdGV4dFJlbmRlcmluZzoidGV4dC1yZW5kZXJpbmciLHRyYW5zZm9ybU9yaWdpbjoidHJhbnNmb3JtLW9yaWdpbiIsdHlwZU9mOiJ0eXBlb2YiLHVuZGVybGluZVBvc2l0aW9uOiJ1bmRlcmxpbmUtcG9zaXRpb24iLHVuZGVybGluZVRoaWNrbmVzczoidW5kZXJsaW5lLXRoaWNrbmVzcyIsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdlOiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZBbHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmciLHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoidi1tYXRoZW1hdGljYWwiLHZlY3RvckVmZmVjdDoidmVjdG9yLWVmZmVjdCIsdmVydEFkdlk6InZlcnQtYWR2LXkiLHZlcnRPcmlnaW5YOiJ2ZXJ0LW9yaWdpbi14Iix2ZXJ0T3JpZ2luWToidmVydC1vcmlnaW4teSIsd29yZFNwYWNpbmc6IndvcmQtc3BhY2luZyIsd3JpdGluZ01vZGU6IndyaXRpbmctbW9kZSIseEhlaWdodDoieC1oZWlnaHQiLHBsYXliYWNrT3JkZXI6InBsYXliYWNrb3JkZXIiLHRpbWVsaW5lQmVnaW46InRpbWVsaW5lYmVnaW4ifSxwcm9wZXJ0aWVzOnthYm91dDpibixhY2NlbnRIZWlnaHQ6SGUsYWNjdW11bGF0ZTpudWxsLGFkZGl0aXZlOm51bGwsYWxpZ25tZW50QmFzZWxpbmU6bnVsbCxhbHBoYWJldGljOkhlLGFtcGxpdHVkZTpIZSxhcmFiaWNGb3JtOm51bGwsYXNjZW50OkhlLGF0dHJpYnV0ZU5hbWU6bnVsbCxhdHRyaWJ1dGVUeXBlOm51bGwsYXppbXV0aDpIZSxiYW5kd2lkdGg6bnVsbCxiYXNlbGluZVNoaWZ0Om51bGwsYmFzZUZyZXF1ZW5jeTpudWxsLGJhc2VQcm9maWxlOm51bGwsYmJveDpudWxsLGJlZ2luOm51bGwsYmlhczpIZSxieTpudWxsLGNhbGNNb2RlOm51bGwsY2FwSGVpZ2h0OkhlLGNsYXNzTmFtZTpIcixjbGlwOm51bGwsY2xpcFBhdGg6bnVsbCxjbGlwUGF0aFVuaXRzOm51bGwsY2xpcFJ1bGU6bnVsbCxjb2xvcjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6bnVsbCxjb2xvclByb2ZpbGU6bnVsbCxjb2xvclJlbmRlcmluZzpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50U2NyaXB0VHlwZTpudWxsLGNvbnRlbnRTdHlsZVR5cGU6bnVsbCxjcm9zc09yaWdpbjpudWxsLGN1cnNvcjpudWxsLGN4Om51bGwsY3k6bnVsbCxkOm51bGwsZGF0YVR5cGU6bnVsbCxkZWZhdWx0QWN0aW9uOm51bGwsZGVzY2VudDpIZSxkaWZmdXNlQ29uc3RhbnQ6SGUsZGlyZWN0aW9uOm51bGwsZGlzcGxheTpudWxsLGR1cjpudWxsLGRpdmlzb3I6SGUsZG9taW5hbnRCYXNlbGluZTpudWxsLGRvd25sb2FkOkR0LGR4Om51bGwsZHk6bnVsbCxlZGdlTW9kZTpudWxsLGVkaXRhYmxlOm51bGwsZWxldmF0aW9uOkhlLGVuYWJsZUJhY2tncm91bmQ6bnVsbCxlbmQ6bnVsbCxldmVudDpudWxsLGV4cG9uZW50OkhlLGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6bnVsbCxmaWxsOm51bGwsZmlsbE9wYWNpdHk6SGUsZmlsbFJ1bGU6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJSZXM6bnVsbCxmaWx0ZXJVbml0czpudWxsLGZsb29kQ29sb3I6bnVsbCxmbG9vZE9wYWNpdHk6bnVsbCxmb2N1c2FibGU6bnVsbCxmb2N1c0hpZ2hsaWdodDpudWxsLGZvbnRGYW1pbHk6bnVsbCxmb250U2l6ZTpudWxsLGZvbnRTaXplQWRqdXN0Om51bGwsZm9udFN0cmV0Y2g6bnVsbCxmb250U3R5bGU6bnVsbCxmb250VmFyaWFudDpudWxsLGZvbnRXZWlnaHQ6bnVsbCxmb3JtYXQ6bnVsbCxmcjpudWxsLGZyb206bnVsbCxmeDpudWxsLGZ5Om51bGwsZzE6QzAsZzI6QzAsZ2x5cGhOYW1lOkMwLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOm51bGwsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOm51bGwsZ2x5cGhSZWY6bnVsbCxncmFkaWVudFRyYW5zZm9ybTpudWxsLGdyYWRpZW50VW5pdHM6bnVsbCxoYW5kbGVyOm51bGwsaGFuZ2luZzpIZSxoYXRjaENvbnRlbnRVbml0czpudWxsLGhhdGNoVW5pdHM6bnVsbCxoZWlnaHQ6bnVsbCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxob3JpekFkdlg6SGUsaG9yaXpPcmlnaW5YOkhlLGhvcml6T3JpZ2luWTpIZSxpZDpudWxsLGlkZW9ncmFwaGljOkhlLGltYWdlUmVuZGVyaW5nOm51bGwsaW5pdGlhbFZpc2liaWxpdHk6bnVsbCxpbjpudWxsLGluMjpudWxsLGludGVyY2VwdDpIZSxrOkhlLGsxOkhlLGsyOkhlLGszOkhlLGs0OkhlLGtlcm5lbE1hdHJpeDpibixrZXJuZWxVbml0TGVuZ3RoOm51bGwsa2V5UG9pbnRzOm51bGwsa2V5U3BsaW5lczpudWxsLGtleVRpbWVzOm51bGwsa2VybmluZzpudWxsLGxhbmc6bnVsbCxsZW5ndGhBZGp1c3Q6bnVsbCxsZXR0ZXJTcGFjaW5nOm51bGwsbGlnaHRpbmdDb2xvcjpudWxsLGxpbWl0aW5nQ29uZUFuZ2xlOkhlLGxvY2FsOm51bGwsbWFya2VyRW5kOm51bGwsbWFya2VyTWlkOm51bGwsbWFya2VyU3RhcnQ6bnVsbCxtYXJrZXJIZWlnaHQ6bnVsbCxtYXJrZXJVbml0czpudWxsLG1hcmtlcldpZHRoOm51bGwsbWFzazpudWxsLG1hc2tDb250ZW50VW5pdHM6bnVsbCxtYXNrVW5pdHM6bnVsbCxtYXRoZW1hdGljYWw6bnVsbCxtYXg6bnVsbCxtZWRpYTpudWxsLG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6bnVsbCxtZWRpYUNvbnRlbnRFbmNvZGluZ3M6bnVsbCxtZWRpYVNpemU6SGUsbWVkaWFUaW1lOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbW9kZTpudWxsLG5hbWU6bnVsbCxuYXZEb3duOm51bGwsbmF2RG93bkxlZnQ6bnVsbCxuYXZEb3duUmlnaHQ6bnVsbCxuYXZMZWZ0Om51bGwsbmF2TmV4dDpudWxsLG5hdlByZXY6bnVsbCxuYXZSaWdodDpudWxsLG5hdlVwOm51bGwsbmF2VXBMZWZ0Om51bGwsbmF2VXBSaWdodDpudWxsLG51bU9jdGF2ZXM6bnVsbCxvYnNlcnZlcjpudWxsLG9mZnNldDpudWxsLG9uQWJvcnQ6bnVsbCxvbkFjdGl2YXRlOm51bGwsb25BZnRlclByaW50Om51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVnaW46bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9jdXNJbjpudWxsLG9uRm9jdXNPdXQ6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25Nb3VzZVdoZWVsOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlcGVhdDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2hvdzpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25ab29tOm51bGwsb3BhY2l0eTpudWxsLG9wZXJhdG9yOm51bGwsb3JkZXI6bnVsbCxvcmllbnQ6bnVsbCxvcmllbnRhdGlvbjpudWxsLG9yaWdpbjpudWxsLG92ZXJmbG93Om51bGwsb3ZlcmxheTpudWxsLG92ZXJsaW5lUG9zaXRpb246SGUsb3ZlcmxpbmVUaGlja25lc3M6SGUscGFpbnRPcmRlcjpudWxsLHBhbm9zZTE6bnVsbCxwYXRoOm51bGwscGF0aExlbmd0aDpIZSxwYXR0ZXJuQ29udGVudFVuaXRzOm51bGwscGF0dGVyblRyYW5zZm9ybTpudWxsLHBhdHRlcm5Vbml0czpudWxsLHBoYXNlOm51bGwscGluZzpIcixwaXRjaDpudWxsLHBsYXliYWNrT3JkZXI6bnVsbCxwb2ludGVyRXZlbnRzOm51bGwscG9pbnRzOm51bGwscG9pbnRzQXRYOkhlLHBvaW50c0F0WTpIZSxwb2ludHNBdFo6SGUscHJlc2VydmVBbHBoYTpudWxsLHByZXNlcnZlQXNwZWN0UmF0aW86bnVsbCxwcmltaXRpdmVVbml0czpudWxsLHByb3BhZ2F0ZTpudWxsLHByb3BlcnR5OmJuLHI6bnVsbCxyYWRpdXM6bnVsbCxyZWZlcnJlclBvbGljeTpudWxsLHJlZlg6bnVsbCxyZWZZOm51bGwscmVsOmJuLHJldjpibixyZW5kZXJpbmdJbnRlbnQ6bnVsbCxyZXBlYXRDb3VudDpudWxsLHJlcGVhdER1cjpudWxsLHJlcXVpcmVkRXh0ZW5zaW9uczpibixyZXF1aXJlZEZlYXR1cmVzOmJuLHJlcXVpcmVkRm9udHM6Ym4scmVxdWlyZWRGb3JtYXRzOmJuLHJlc291cmNlOm51bGwscmVzdGFydDpudWxsLHJlc3VsdDpudWxsLHJvdGF0ZTpudWxsLHJ4Om51bGwscnk6bnVsbCxzY2FsZTpudWxsLHNlZWQ6bnVsbCxzaGFwZVJlbmRlcmluZzpudWxsLHNpZGU6bnVsbCxzbG9wZTpudWxsLHNuYXBzaG90VGltZTpudWxsLHNwZWN1bGFyQ29uc3RhbnQ6SGUsc3BlY3VsYXJFeHBvbmVudDpIZSxzcHJlYWRNZXRob2Q6bnVsbCxzcGFjaW5nOm51bGwsc3RhcnRPZmZzZXQ6bnVsbCxzdGREZXZpYXRpb246bnVsbCxzdGVtaDpudWxsLHN0ZW12Om51bGwsc3RpdGNoVGlsZXM6bnVsbCxzdG9wQ29sb3I6bnVsbCxzdG9wT3BhY2l0eTpudWxsLHN0cmlrZXRocm91Z2hQb3NpdGlvbjpIZSxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOkhlLHN0cmluZzpudWxsLHN0cm9rZTpudWxsLHN0cm9rZURhc2hBcnJheTpibixzdHJva2VEYXNoT2Zmc2V0Om51bGwsc3Ryb2tlTGluZUNhcDpudWxsLHN0cm9rZUxpbmVKb2luOm51bGwsc3Ryb2tlTWl0ZXJMaW1pdDpIZSxzdHJva2VPcGFjaXR5OkhlLHN0cm9rZVdpZHRoOm51bGwsc3R5bGU6bnVsbCxzdXJmYWNlU2NhbGU6SGUsc3luY0JlaGF2aW9yOm51bGwsc3luY0JlaGF2aW9yRGVmYXVsdDpudWxsLHN5bmNNYXN0ZXI6bnVsbCxzeW5jVG9sZXJhbmNlOm51bGwsc3luY1RvbGVyYW5jZURlZmF1bHQ6bnVsbCxzeXN0ZW1MYW5ndWFnZTpibix0YWJJbmRleDpIZSx0YWJsZVZhbHVlczpudWxsLHRhcmdldDpudWxsLHRhcmdldFg6SGUsdGFyZ2V0WTpIZSx0ZXh0QW5jaG9yOm51bGwsdGV4dERlY29yYXRpb246bnVsbCx0ZXh0UmVuZGVyaW5nOm51bGwsdGV4dExlbmd0aDpudWxsLHRpbWVsaW5lQmVnaW46bnVsbCx0aXRsZTpudWxsLHRyYW5zZm9ybUJlaGF2aW9yOm51bGwsdHlwZTpudWxsLHR5cGVPZjpibix0bzpudWxsLHRyYW5zZm9ybTpudWxsLHRyYW5zZm9ybU9yaWdpbjpudWxsLHUxOm51bGwsdTI6bnVsbCx1bmRlcmxpbmVQb3NpdGlvbjpIZSx1bmRlcmxpbmVUaGlja25lc3M6SGUsdW5pY29kZTpudWxsLHVuaWNvZGVCaWRpOm51bGwsdW5pY29kZVJhbmdlOm51bGwsdW5pdHNQZXJFbTpIZSx2YWx1ZXM6bnVsbCx2QWxwaGFiZXRpYzpIZSx2TWF0aGVtYXRpY2FsOkhlLHZlY3RvckVmZmVjdDpudWxsLHZIYW5naW5nOkhlLHZJZGVvZ3JhcGhpYzpIZSx2ZXJzaW9uOm51bGwsdmVydEFkdlk6SGUsdmVydE9yaWdpblg6SGUsdmVydE9yaWdpblk6SGUsdmlld0JveDpudWxsLHZpZXdUYXJnZXQ6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCx3aWR0aHM6bnVsbCx3b3JkU3BhY2luZzpudWxsLHdyaXRpbmdNb2RlOm51bGwseDpudWxsLHgxOm51bGwseDI6bnVsbCx4Q2hhbm5lbFNlbGVjdG9yOm51bGwseEhlaWdodDpIZSx5Om51bGwseTE6bnVsbCx5MjpudWxsLHlDaGFubmVsU2VsZWN0b3I6bnVsbCx6Om51bGwsem9vbUFuZFBhbjpudWxsfSxzcGFjZToic3ZnIix0cmFuc2Zvcm06b2t9KX0pO3ZhciBpVyxKVGU9cCgoKT0+e2k2KCk7aVc9aG8oe3Byb3BlcnRpZXM6e3hMaW5rQWN0dWF0ZTpudWxsLHhMaW5rQXJjUm9sZTpudWxsLHhMaW5rSHJlZjpudWxsLHhMaW5rUm9sZTpudWxsLHhMaW5rU2hvdzpudWxsLHhMaW5rVGl0bGU6bnVsbCx4TGlua1R5cGU6bnVsbH0sc3BhY2U6InhsaW5rIix0cmFuc2Zvcm0oZSx0KXtyZXR1cm4ieGxpbms6Iit0LnNsaWNlKDUpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgYVcsS1RlPXAoKCk9PntpNigpO3JXKCk7YVc9aG8oe2F0dHJpYnV0ZXM6e3htbG5zeGxpbms6InhtbG5zOnhsaW5rIn0scHJvcGVydGllczp7eG1sbnNYTGluazpudWxsLHhtbG5zOm51bGx9LHNwYWNlOiJ4bWxucyIsdHJhbnNmb3JtOnNrfSl9KTt2YXIgblcsZV9lPXAoKCk9PntpNigpO25XPWhvKHtwcm9wZXJ0aWVzOnt4bWxCYXNlOm51bGwseG1sTGFuZzpudWxsLHhtbFNwYWNlOm51bGx9LHNwYWNlOiJ4bWwiLHRyYW5zZm9ybShlLHQpe3JldHVybiJ4bWw6Iit0LnNsaWNlKDMpLnRvTG93ZXJDYXNlKCl9fSl9KTt2YXIgdF9lPXAoKCk9Pnt9KTtmdW5jdGlvbiBvVyhlLHQpe2xldCByPUV1KHQpLGk9dCxhPUFpO2lmKHIgaW4gZS5ub3JtYWwpcmV0dXJuIGUucHJvcGVydHlbZS5ub3JtYWxbcl1dO2lmKHIubGVuZ3RoPjQmJnIuc2xpY2UoMCw0KT09PSJkYXRhIiYmX1NyLnRlc3QodCkpe2lmKHQuY2hhckF0KDQpPT09Ii0iKXtsZXQgbj10LnNsaWNlKDUpLnJlcGxhY2Uocl9lLEFTcik7aT0iZGF0YSIrbi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStuLnNsaWNlKDEpfWVsc2V7bGV0IG49dC5zbGljZSg0KTtpZighcl9lLnRlc3Qobikpe2xldCBvPW4ucmVwbGFjZShUU3IsTFNyKTtvLmNoYXJBdCgwKSE9PSItIiYmKG89Ii0iK28pLHQ9ImRhdGEiK299fWE9cjZ9cmV0dXJuIG5ldyBhKGksdCl9ZnVuY3Rpb24gTFNyKGUpe3JldHVybiItIitlLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gQVNyKGUpe3JldHVybiBlLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpfXZhciBUU3Iscl9lLF9TcixpX2U9cCgoKT0+e0tVKCk7UVUoKTthaygpO1RTcj0vW0EtWl0vZyxyX2U9Ly1bYS16XS9nLF9Tcj0vXmRhdGFbLVx3LjpdKyQvaX0pO3ZhciBhX2UsbGssc1c9cCgoKT0+e1VUZSgpO0dUZSgpO1pUZSgpO1FUZSgpO0pUZSgpO0tUZSgpO2VfZSgpO3RfZSgpO2lfZSgpO2FrKCk7YV9lPVhVKFtlVyxZVGUsaVcsYVcsblddLCJodG1sIiksbGs9WFUoW2VXLFhUZSxpVyxhVyxuV10sInN2ZyIpfSk7ZnVuY3Rpb24gbFcoZSx0KXtpZihlPWUucmVwbGFjZSh0LnN1YnNldD9QU3IodC5zdWJzZXQpOkRTcixpKSx0LnN1YnNldHx8dC5lc2NhcGVPbmx5KXJldHVybiBlO3JldHVybiBlLnJlcGxhY2UoRVNyLHIpLnJlcGxhY2UoJFNyLGkpO2Z1bmN0aW9uIHIoYSxuLG8pe3JldHVybiB0LmZvcm1hdCgoYS5jaGFyQ29kZUF0KDApLTU1Mjk2KSoxMDI0K2EuY2hhckNvZGVBdCgxKS01NjMyMCs2NTUzNixvLmNoYXJDb2RlQXQobisyKSx0KX1mdW5jdGlvbiBpKGEsbixvKXtyZXR1cm4gdC5mb3JtYXQoYS5jaGFyQ29kZUF0KDApLG8uY2hhckNvZGVBdChuKzEpLHQpfX1mdW5jdGlvbiBQU3IoZSl7bGV0IHQ9bl9lLmdldChlKTtyZXR1cm4gdHx8KHQ9TlNyKGUpLG5fZS5zZXQoZSx0KSksdH1mdW5jdGlvbiBOU3IoZSl7bGV0IHQ9W10scj0tMTtmb3IoOysrcjxlLmxlbmd0aDspdC5wdXNoKGVbcl0ucmVwbGFjZShJU3IsIlxcJCYiKSk7cmV0dXJuIG5ldyBSZWdFeHAoIig/OiIrdC5qb2luKCJ8IikrIikiLCJnIil9dmFyIERTcixFU3IsJFNyLElTcixuX2Usb19lPXAoKCk9PntEU3I9L1siJic8PmBdL2csRVNyPS9bXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl0vZywkU3I9L1tceDAxLVx0XHZcZlx4MEUtXHgxRlx4N0ZceDgxXHg4RFx4OEZceDkwXHg5RFx4QTAtXHVGRkZGXS9nLElTcj0vW3xcXHt9KClbXF1eJCsqPy5dL2csbl9lPW5ldyBXZWFrTWFwfSk7ZnVuY3Rpb24gc19lKGUsdCxyKXtsZXQgaT0iJiN4IitlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiByJiZ0JiYhRlNyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZSh0KSk/aTppKyI7In12YXIgRlNyLGxfZT1wKCgpPT57RlNyPS9bXGRBLUZhLWZdL30pO2Z1bmN0aW9uIGNfZShlLHQscil7bGV0IGk9IiYjIitTdHJpbmcoZSk7cmV0dXJuIHImJnQmJiFPU3IudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKT9pOmkrIjsifXZhciBPU3IsZF9lPXAoKCk9PntPU3I9L1xkL30pO3ZhciB1X2UscF9lPXAoKCk9Pnt1X2U9WyJBRWxpZyIsIkFNUCIsIkFhY3V0ZSIsIkFjaXJjIiwiQWdyYXZlIiwiQXJpbmciLCJBdGlsZGUiLCJBdW1sIiwiQ09QWSIsIkNjZWRpbCIsIkVUSCIsIkVhY3V0ZSIsIkVjaXJjIiwiRWdyYXZlIiwiRXVtbCIsIkdUIiwiSWFjdXRlIiwiSWNpcmMiLCJJZ3JhdmUiLCJJdW1sIiwiTFQiLCJOdGlsZGUiLCJPYWN1dGUiLCJPY2lyYyIsIk9ncmF2ZSIsIk9zbGFzaCIsIk90aWxkZSIsIk91bWwiLCJRVU9UIiwiUkVHIiwiVEhPUk4iLCJVYWN1dGUiLCJVY2lyYyIsIlVncmF2ZSIsIlV1bWwiLCJZYWN1dGUiLCJhYWN1dGUiLCJhY2lyYyIsImFjdXRlIiwiYWVsaWciLCJhZ3JhdmUiLCJhbXAiLCJhcmluZyIsImF0aWxkZSIsImF1bWwiLCJicnZiYXIiLCJjY2VkaWwiLCJjZWRpbCIsImNlbnQiLCJjb3B5IiwiY3VycmVuIiwiZGVnIiwiZGl2aWRlIiwiZWFjdXRlIiwiZWNpcmMiLCJlZ3JhdmUiLCJldGgiLCJldW1sIiwiZnJhYzEyIiwiZnJhYzE0IiwiZnJhYzM0IiwiZ3QiLCJpYWN1dGUiLCJpY2lyYyIsImlleGNsIiwiaWdyYXZlIiwiaXF1ZXN0IiwiaXVtbCIsImxhcXVvIiwibHQiLCJtYWNyIiwibWljcm8iLCJtaWRkb3QiLCJuYnNwIiwibm90IiwibnRpbGRlIiwib2FjdXRlIiwib2NpcmMiLCJvZ3JhdmUiLCJvcmRmIiwib3JkbSIsIm9zbGFzaCIsIm90aWxkZSIsIm91bWwiLCJwYXJhIiwicGx1c21uIiwicG91bmQiLCJxdW90IiwicmFxdW8iLCJyZWciLCJzZWN0Iiwic2h5Iiwic3VwMSIsInN1cDIiLCJzdXAzIiwic3psaWciLCJ0aG9ybiIsInRpbWVzIiwidWFjdXRlIiwidWNpcmMiLCJ1Z3JhdmUiLCJ1bWwiLCJ1dW1sIiwieWFjdXRlIiwieWVuIiwieXVtbCJdfSk7dmFyIGNrLGhfZT1wKCgpPT57Y2s9e25ic3A6Ilx4QTAiLGlleGNsOiJceEExIixjZW50OiJceEEyIixwb3VuZDoiXHhBMyIsY3VycmVuOiJceEE0Iix5ZW46Ilx4QTUiLGJydmJhcjoiXHhBNiIsc2VjdDoiXHhBNyIsdW1sOiJceEE4Iixjb3B5OiJceEE5IixvcmRmOiJceEFBIixsYXF1bzoiXHhBQiIsbm90OiJceEFDIixzaHk6Ilx4QUQiLHJlZzoiXHhBRSIsbWFjcjoiXHhBRiIsZGVnOiJceEIwIixwbHVzbW46Ilx4QjEiLHN1cDI6Ilx4QjIiLHN1cDM6Ilx4QjMiLGFjdXRlOiJceEI0IixtaWNybzoiXHhCNSIscGFyYToiXHhCNiIsbWlkZG90OiJceEI3IixjZWRpbDoiXHhCOCIsc3VwMToiXHhCOSIsb3JkbToiXHhCQSIscmFxdW86Ilx4QkIiLGZyYWMxNDoiXHhCQyIsZnJhYzEyOiJceEJEIixmcmFjMzQ6Ilx4QkUiLGlxdWVzdDoiXHhCRiIsQWdyYXZlOiJceEMwIixBYWN1dGU6Ilx4QzEiLEFjaXJjOiJceEMyIixBdGlsZGU6Ilx4QzMiLEF1bWw6Ilx4QzQiLEFyaW5nOiJceEM1IixBRWxpZzoiXHhDNiIsQ2NlZGlsOiJceEM3IixFZ3JhdmU6Ilx4QzgiLEVhY3V0ZToiXHhDOSIsRWNpcmM6Ilx4Q0EiLEV1bWw6Ilx4Q0IiLElncmF2ZToiXHhDQyIsSWFjdXRlOiJceENEIixJY2lyYzoiXHhDRSIsSXVtbDoiXHhDRiIsRVRIOiJceEQwIixOdGlsZGU6Ilx4RDEiLE9ncmF2ZToiXHhEMiIsT2FjdXRlOiJceEQzIixPY2lyYzoiXHhENCIsT3RpbGRlOiJceEQ1IixPdW1sOiJceEQ2Iix0aW1lczoiXHhENyIsT3NsYXNoOiJceEQ4IixVZ3JhdmU6Ilx4RDkiLFVhY3V0ZToiXHhEQSIsVWNpcmM6Ilx4REIiLFV1bWw6Ilx4REMiLFlhY3V0ZToiXHhERCIsVEhPUk46Ilx4REUiLHN6bGlnOiJceERGIixhZ3JhdmU6Ilx4RTAiLGFhY3V0ZToiXHhFMSIsYWNpcmM6Ilx4RTIiLGF0aWxkZToiXHhFMyIsYXVtbDoiXHhFNCIsYXJpbmc6Ilx4RTUiLGFlbGlnOiJceEU2IixjY2VkaWw6Ilx4RTciLGVncmF2ZToiXHhFOCIsZWFjdXRlOiJceEU5IixlY2lyYzoiXHhFQSIsZXVtbDoiXHhFQiIsaWdyYXZlOiJceEVDIixpYWN1dGU6Ilx4RUQiLGljaXJjOiJceEVFIixpdW1sOiJceEVGIixldGg6Ilx4RjAiLG50aWxkZToiXHhGMSIsb2dyYXZlOiJceEYyIixvYWN1dGU6Ilx4RjMiLG9jaXJjOiJceEY0IixvdGlsZGU6Ilx4RjUiLG91bWw6Ilx4RjYiLGRpdmlkZToiXHhGNyIsb3NsYXNoOiJceEY4Iix1Z3JhdmU6Ilx4RjkiLHVhY3V0ZToiXHhGQSIsdWNpcmM6Ilx4RkIiLHV1bWw6Ilx4RkMiLHlhY3V0ZToiXHhGRCIsdGhvcm46Ilx4RkUiLHl1bWw6Ilx4RkYiLGZub2Y6Ilx1MDE5MiIsQWxwaGE6Ilx1MDM5MSIsQmV0YToiXHUwMzkyIixHYW1tYToiXHUwMzkzIixEZWx0YToiXHUwMzk0IixFcHNpbG9uOiJcdTAzOTUiLFpldGE6Ilx1MDM5NiIsRXRhOiJcdTAzOTciLFRoZXRhOiJcdTAzOTgiLElvdGE6Ilx1MDM5OSIsS2FwcGE6Ilx1MDM5QSIsTGFtYmRhOiJcdTAzOUIiLE11OiJcdTAzOUMiLE51OiJcdTAzOUQiLFhpOiJcdTAzOUUiLE9taWNyb246Ilx1MDM5RiIsUGk6Ilx1MDNBMCIsUmhvOiJcdTAzQTEiLFNpZ21hOiJcdTAzQTMiLFRhdToiXHUwM0E0IixVcHNpbG9uOiJcdTAzQTUiLFBoaToiXHUwM0E2IixDaGk6Ilx1MDNBNyIsUHNpOiJcdTAzQTgiLE9tZWdhOiJcdTAzQTkiLGFscGhhOiJcdTAzQjEiLGJldGE6Ilx1MDNCMiIsZ2FtbWE6Ilx1MDNCMyIsZGVsdGE6Ilx1MDNCNCIsZXBzaWxvbjoiXHUwM0I1Iix6ZXRhOiJcdTAzQjYiLGV0YToiXHUwM0I3Iix0aGV0YToiXHUwM0I4Iixpb3RhOiJcdTAzQjkiLGthcHBhOiJcdTAzQkEiLGxhbWJkYToiXHUwM0JCIixtdToiXHUwM0JDIixudToiXHUwM0JEIix4aToiXHUwM0JFIixvbWljcm9uOiJcdTAzQkYiLHBpOiJcdTAzQzAiLHJobzoiXHUwM0MxIixzaWdtYWY6Ilx1MDNDMiIsc2lnbWE6Ilx1MDNDMyIsdGF1OiJcdTAzQzQiLHVwc2lsb246Ilx1MDNDNSIscGhpOiJcdTAzQzYiLGNoaToiXHUwM0M3Iixwc2k6Ilx1MDNDOCIsb21lZ2E6Ilx1MDNDOSIsdGhldGFzeW06Ilx1MDNEMSIsdXBzaWg6Ilx1MDNEMiIscGl2OiJcdTAzRDYiLGJ1bGw6Ilx1MjAyMiIsaGVsbGlwOiJcdTIwMjYiLHByaW1lOiJcdTIwMzIiLFByaW1lOiJcdTIwMzMiLG9saW5lOiJcdTIwM0UiLGZyYXNsOiJcdTIwNDQiLHdlaWVycDoiXHUyMTE4IixpbWFnZToiXHUyMTExIixyZWFsOiJcdTIxMUMiLHRyYWRlOiJcdTIxMjIiLGFsZWZzeW06Ilx1MjEzNSIsbGFycjoiXHUyMTkwIix1YXJyOiJcdTIxOTEiLHJhcnI6Ilx1MjE5MiIsZGFycjoiXHUyMTkzIixoYXJyOiJcdTIxOTQiLGNyYXJyOiJcdTIxQjUiLGxBcnI6Ilx1MjFEMCIsdUFycjoiXHUyMUQxIixyQXJyOiJcdTIxRDIiLGRBcnI6Ilx1MjFEMyIsaEFycjoiXHUyMUQ0Iixmb3JhbGw6Ilx1MjIwMCIscGFydDoiXHUyMjAyIixleGlzdDoiXHUyMjAzIixlbXB0eToiXHUyMjA1IixuYWJsYToiXHUyMjA3Iixpc2luOiJcdTIyMDgiLG5vdGluOiJcdTIyMDkiLG5pOiJcdTIyMEIiLHByb2Q6Ilx1MjIwRiIsc3VtOiJcdTIyMTEiLG1pbnVzOiJcdTIyMTIiLGxvd2FzdDoiXHUyMjE3IixyYWRpYzoiXHUyMjFBIixwcm9wOiJcdTIyMUQiLGluZmluOiJcdTIyMUUiLGFuZzoiXHUyMjIwIixhbmQ6Ilx1MjIyNyIsb3I6Ilx1MjIyOCIsY2FwOiJcdTIyMjkiLGN1cDoiXHUyMjJBIixpbnQ6Ilx1MjIyQiIsdGhlcmU0OiJcdTIyMzQiLHNpbToiXHUyMjNDIixjb25nOiJcdTIyNDUiLGFzeW1wOiJcdTIyNDgiLG5lOiJcdTIyNjAiLGVxdWl2OiJcdTIyNjEiLGxlOiJcdTIyNjQiLGdlOiJcdTIyNjUiLHN1YjoiXHUyMjgyIixzdXA6Ilx1MjI4MyIsbnN1YjoiXHUyMjg0IixzdWJlOiJcdTIyODYiLHN1cGU6Ilx1MjI4NyIsb3BsdXM6Ilx1MjI5NSIsb3RpbWVzOiJcdTIyOTciLHBlcnA6Ilx1MjJBNSIsc2RvdDoiXHUyMkM1IixsY2VpbDoiXHUyMzA4IixyY2VpbDoiXHUyMzA5IixsZmxvb3I6Ilx1MjMwQSIscmZsb29yOiJcdTIzMEIiLGxhbmc6Ilx1MjMyOSIscmFuZzoiXHUyMzJBIixsb3o6Ilx1MjVDQSIsc3BhZGVzOiJcdTI2NjAiLGNsdWJzOiJcdTI2NjMiLGhlYXJ0czoiXHUyNjY1IixkaWFtczoiXHUyNjY2IixxdW90OiciJyxhbXA6IiYiLGx0OiI8IixndDoiPiIsT0VsaWc6Ilx1MDE1MiIsb2VsaWc6Ilx1MDE1MyIsU2Nhcm9uOiJcdTAxNjAiLHNjYXJvbjoiXHUwMTYxIixZdW1sOiJcdTAxNzgiLGNpcmM6Ilx1MDJDNiIsdGlsZGU6Ilx1MDJEQyIsZW5zcDoiXHUyMDAyIixlbXNwOiJcdTIwMDMiLHRoaW5zcDoiXHUyMDA5Iix6d25qOiJcdTIwMEMiLHp3ajoiXHUyMDBEIixscm06Ilx1MjAwRSIscmxtOiJcdTIwMEYiLG5kYXNoOiJcdTIwMTMiLG1kYXNoOiJcdTIwMTQiLGxzcXVvOiJcdTIwMTgiLHJzcXVvOiJcdTIwMTkiLHNicXVvOiJcdTIwMUEiLGxkcXVvOiJcdTIwMUMiLHJkcXVvOiJcdTIwMUQiLGJkcXVvOiJcdTIwMUUiLGRhZ2dlcjoiXHUyMDIwIixEYWdnZXI6Ilx1MjAyMSIscGVybWlsOiJcdTIwMzAiLGxzYXF1bzoiXHUyMDM5Iixyc2FxdW86Ilx1MjAzQSIsZXVybzoiXHUyMEFDIn19KTt2YXIgZl9lLG1fZT1wKCgpPT57Zl9lPVsiY2VudCIsImNvcHkiLCJkaXZpZGUiLCJndCIsImx0Iiwibm90IiwicGFyYSIsInRpbWVzIl19KTtmdW5jdGlvbiBiX2UoZSx0LHIsaSl7bGV0IGE9U3RyaW5nLmZyb21DaGFyQ29kZShlKTtpZihnX2UuY2FsbChjVyxhKSl7bGV0IG49Y1dbYV0sbz0iJiIrbjtyZXR1cm4gciYmdV9lLmluY2x1ZGVzKG4pJiYhZl9lLmluY2x1ZGVzKG4pJiYoIWl8fHQmJnQhPT02MSYmUlNyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZSh0KSkpP286bysiOyJ9cmV0dXJuIiJ9dmFyIGdfZSxjVyxkayxSU3Isdl9lPXAoKCk9PntwX2UoKTtoX2UoKTttX2UoKTtnX2U9e30uaGFzT3duUHJvcGVydHksY1c9e307Zm9yKGRrIGluIGNrKWdfZS5jYWxsKGNrLGRrKSYmKGNXW2NrW2RrXV09ZGspO1JTcj0vW15cZEEtWmEtel0vfSk7ZnVuY3Rpb24geF9lKGUsdCxyKXtsZXQgaT1zX2UoZSx0LHIub21pdE9wdGlvbmFsU2VtaWNvbG9ucyksYTtpZigoci51c2VOYW1lZFJlZmVyZW5jZXN8fHIudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSYmKGE9Yl9lKGUsdCxyLm9taXRPcHRpb25hbFNlbWljb2xvbnMsci5hdHRyaWJ1dGUpKSwoci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fCFhKSYmci51c2VTaG9ydGVzdFJlZmVyZW5jZXMpe2xldCBuPWNfZShlLHQsci5vbWl0T3B0aW9uYWxTZW1pY29sb25zKTtuLmxlbmd0aDxpLmxlbmd0aCYmKGk9bil9cmV0dXJuIGEmJighci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fGEubGVuZ3RoPGkubGVuZ3RoKT9hOml9dmFyIHlfZT1wKCgpPT57bF9lKCk7ZF9lKCk7dl9lKCl9KTtmdW5jdGlvbiB3X2UoZSl7cmV0dXJuIiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIE1fZT1wKCgpPT57fSk7ZnVuY3Rpb24gSWwoZSx0KXtyZXR1cm4gbFcoZSxPYmplY3QuYXNzaWduKHtmb3JtYXQ6eF9lfSx0KSl9ZnVuY3Rpb24gc1UxKGUsdCl7cmV0dXJuIGxXKGUsT2JqZWN0LmFzc2lnbih7Zm9ybWF0OndfZX0sdCkpfXZhciBrX2U9cCgoKT0+e29fZSgpO3lfZSgpO01fZSgpfSk7dmFyIHVrPXAoKCk9PntrX2UoKX0pO2Z1bmN0aW9uIFNfZShlLHQscixpKXtyZXR1cm4gaS5zZXR0aW5ncy5ib2d1c0NvbW1lbnRzPyI8PyIrSWwoZS52YWx1ZSxPYmplY3QuYXNzaWduKHt9LGkuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OkhTcn0pKSsiPiI6IjwhLS0iK2UudmFsdWUucmVwbGFjZShCU3IsYSkrIi0tPiI7ZnVuY3Rpb24gYShuKXtyZXR1cm4gSWwobixPYmplY3QuYXNzaWduKHt9LGkuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OnFTcn0pKX19dmFyIEJTcixIU3IscVNyLHpfZT1wKCgpPT57dWsoKTtCU3I9L14+fF4tPnw8IS0tfC0tPnwtLSE+fDwhLSQvZyxIU3I9WyI+Il0scVNyPVsiPCIsIj4iXX0pO2Z1bmN0aW9uIENfZShlLHQscixpKXtyZXR1cm4iPCEiKyhpLnNldHRpbmdzLnVwcGVyRG9jdHlwZT8iRE9DVFlQRSI6ImRvY3R5cGUiKSsoaS5zZXR0aW5ncy50aWdodERvY3R5cGU/IiI6IiAiKSsiaHRtbD4ifXZhciBUX2U9cCgoKT0+e30pO2Z1bmN0aW9uIGZVMShlKXtsZXQgdD1bXSxyPVN0cmluZyhlfHwiIiksaT1yLmluZGV4T2YoIiwiKSxhPTAsbj0hMTtmb3IoOyFuOyl7aT09PS0xJiYoaT1yLmxlbmd0aCxuPSEwKTtsZXQgbz1yLnNsaWNlKGEsaSkudHJpbSgpOyhvfHwhbikmJnQucHVzaChvKSxhPWkrMSxpPXIuaW5kZXhPZigiLCIsYSl9cmV0dXJuIHR9ZnVuY3Rpb24gX19lKGUsdCl7bGV0IHI9dHx8e307cmV0dXJuKGVbZS5sZW5ndGgtMV09PT0iIj9bLi4uZSwiIl06ZSkuam9pbigoci5wYWRSaWdodD8iICI6IiIpKyIsIisoci5wYWRMZWZ0PT09ITE/IiI6IiAiKSkudHJpbSgpfXZhciBMX2U9cCgoKT0+e30pO2Z1bmN0aW9uIGdVMShlKXtsZXQgdD1TdHJpbmcoZXx8IiIpLnRyaW0oKTtyZXR1cm4gdD90LnNwbGl0KC9bIFx0XG5cclxmXSsvZyk6W119ZnVuY3Rpb24gQV9lKGUpe3JldHVybiBlLmpvaW4oIiAiKS50cmltKCl9dmFyIERfZT1wKCgpPT57fSk7ZnVuY3Rpb24gYTYoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0Ij9lLnR5cGU9PT0idGV4dCI/RV9lKGUudmFsdWUpOiExOkVfZShlKX1mdW5jdGlvbiBFX2UoZSl7cmV0dXJuIGUucmVwbGFjZShqU3IsIiIpPT09IiJ9dmFyIGpTciwkX2U9cCgoKT0+e2pTcj0vWyBcdFxuXGZccl0vZ30pO3ZhciBwaz1wKCgpPT57JF9lKCl9KTtmdW5jdGlvbiBJX2UoZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdChyLGksYSl7bGV0IG49cj9yLmNoaWxkcmVuOlZTcixvPShpfHwwKStlLHM9bltvXTtpZighYSlmb3IoO3MmJmE2KHMpOylvKz1lLHM9bltvXTtyZXR1cm4gc319dmFyIEgxLGRXLFZTcix1Vz1wKCgpPT57cGsoKTtIMT1JX2UoMSksZFc9SV9lKC0xKSxWU3I9W119KTtmdW5jdGlvbiBoayhlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KHIsaSxhKXtyZXR1cm4gVVNyLmNhbGwoZSxyLnRhZ05hbWUpJiZlW3IudGFnTmFtZV0ocixpLGEpfX12YXIgVVNyLHBXPXAoKCk9PntVU3I9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiBoVyhlLHQscil7bGV0IGk9SDEocix0LCEwKTtyZXR1cm4haXx8aS50eXBlIT09ImNvbW1lbnQiJiYhKGkudHlwZT09PSJ0ZXh0IiYmYTYoaS52YWx1ZS5jaGFyQXQoMCkpKX1mdW5jdGlvbiBXU3IoZSx0LHIpe2xldCBpPUgxKHIsdCk7cmV0dXJuIWl8fGkudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiBHU3IoZSx0LHIpe2xldCBpPUgxKHIsdCk7cmV0dXJuIWl8fGkudHlwZSE9PSJjb21tZW50In1mdW5jdGlvbiBZU3IoZSx0LHIpe2xldCBpPUgxKHIsdCk7cmV0dXJuIGk/aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09ImFkZHJlc3MifHxpLnRhZ05hbWU9PT0iYXJ0aWNsZSJ8fGkudGFnTmFtZT09PSJhc2lkZSJ8fGkudGFnTmFtZT09PSJibG9ja3F1b3RlInx8aS50YWdOYW1lPT09ImRldGFpbHMifHxpLnRhZ05hbWU9PT0iZGl2Inx8aS50YWdOYW1lPT09ImRsInx8aS50YWdOYW1lPT09ImZpZWxkc2V0Inx8aS50YWdOYW1lPT09ImZpZ2NhcHRpb24ifHxpLnRhZ05hbWU9PT0iZmlndXJlInx8aS50YWdOYW1lPT09ImZvb3RlciJ8fGkudGFnTmFtZT09PSJmb3JtInx8aS50YWdOYW1lPT09ImgxInx8aS50YWdOYW1lPT09ImgyInx8aS50YWdOYW1lPT09ImgzInx8aS50YWdOYW1lPT09Img0Inx8aS50YWdOYW1lPT09Img1Inx8aS50YWdOYW1lPT09Img2Inx8aS50YWdOYW1lPT09ImhlYWRlciJ8fGkudGFnTmFtZT09PSJoZ3JvdXAifHxpLnRhZ05hbWU9PT0iaHIifHxpLnRhZ05hbWU9PT0ibWFpbiJ8fGkudGFnTmFtZT09PSJtZW51Inx8aS50YWdOYW1lPT09Im5hdiJ8fGkudGFnTmFtZT09PSJvbCJ8fGkudGFnTmFtZT09PSJwInx8aS50YWdOYW1lPT09InByZSJ8fGkudGFnTmFtZT09PSJzZWN0aW9uInx8aS50YWdOYW1lPT09InRhYmxlInx8aS50YWdOYW1lPT09InVsIik6IXJ8fCEoci50eXBlPT09ImVsZW1lbnQiJiYoci50YWdOYW1lPT09ImEifHxyLnRhZ05hbWU9PT0iYXVkaW8ifHxyLnRhZ05hbWU9PT0iZGVsInx8ci50YWdOYW1lPT09ImlucyJ8fHIudGFnTmFtZT09PSJtYXAifHxyLnRhZ05hbWU9PT0ibm9zY3JpcHQifHxyLnRhZ05hbWU9PT0idmlkZW8iKSl9ZnVuY3Rpb24gWlNyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJmkudGFnTmFtZT09PSJsaSJ9ZnVuY3Rpb24gWFNyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiEhKGkmJmkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJkdCJ8fGkudGFnTmFtZT09PSJkZCIpKX1mdW5jdGlvbiBRU3IoZSx0LHIpe2xldCBpPUgxKHIsdCk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJkdCJ8fGkudGFnTmFtZT09PSJkZCIpfWZ1bmN0aW9uIFBfZShlLHQscil7bGV0IGk9SDEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09InJwInx8aS50YWdOYW1lPT09InJ0Iil9ZnVuY3Rpb24gSlNyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJmkudGFnTmFtZT09PSJvcHRncm91cCJ9ZnVuY3Rpb24gS1NyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0ib3B0aW9uInx8aS50YWdOYW1lPT09Im9wdGdyb3VwIil9ZnVuY3Rpb24gZXpyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiEhKGkmJmkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJ0Ym9keSJ8fGkudGFnTmFtZT09PSJ0Zm9vdCIpKX1mdW5jdGlvbiB0enIoZSx0LHIpe2xldCBpPUgxKHIsdCk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJ0Ym9keSJ8fGkudGFnTmFtZT09PSJ0Zm9vdCIpfWZ1bmN0aW9uIHJ6cihlLHQscil7cmV0dXJuIUgxKHIsdCl9ZnVuY3Rpb24gaXpyKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJmkudGFnTmFtZT09PSJ0ciJ9ZnVuY3Rpb24gTl9lKGUsdCxyKXtsZXQgaT1IMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0idGQifHxpLnRhZ05hbWU9PT0idGgiKX12YXIgUDcsZlc9cCgoKT0+e3BrKCk7dVcoKTtwVygpO1A3PWhrKHtib2R5OkdTcixjYXB0aW9uOmhXLGNvbGdyb3VwOmhXLGRkOlFTcixkdDpYU3IsaGVhZDpoVyxodG1sOldTcixsaTpaU3Isb3B0Z3JvdXA6SlNyLG9wdGlvbjpLU3IscDpZU3IscnA6UF9lLHJ0OlBfZSx0Ym9keTp0enIsdGQ6Tl9lLHRmb290OnJ6cix0aDpOX2UsdGhlYWQ6ZXpyLHRyOml6cn0pfSk7ZnVuY3Rpb24gYXpyKGUpe2xldCB0PUgxKGUsLTEpO3JldHVybiF0fHx0LnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gbnpyKGUpe2xldCB0PW5ldyBTZXQ7Zm9yKGxldCBpIG9mIGUuY2hpbGRyZW4paWYoaS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09ImJhc2UifHxpLnRhZ05hbWU9PT0idGl0bGUiKSl7aWYodC5oYXMoaS50YWdOYW1lKSlyZXR1cm4hMTt0LmFkZChpLnRhZ05hbWUpfWxldCByPWUuY2hpbGRyZW5bMF07cmV0dXJuIXJ8fHIudHlwZT09PSJlbGVtZW50In1mdW5jdGlvbiBvenIoZSl7bGV0IHQ9SDEoZSwtMSwhMCk7cmV0dXJuIXR8fHQudHlwZSE9PSJjb21tZW50IiYmISh0LnR5cGU9PT0idGV4dCImJmE2KHQudmFsdWUuY2hhckF0KDApKSkmJiEodC50eXBlPT09ImVsZW1lbnQiJiYodC50YWdOYW1lPT09Im1ldGEifHx0LnRhZ05hbWU9PT0ibGluayJ8fHQudGFnTmFtZT09PSJzY3JpcHQifHx0LnRhZ05hbWU9PT0ic3R5bGUifHx0LnRhZ05hbWU9PT0idGVtcGxhdGUiKSl9ZnVuY3Rpb24gc3pyKGUsdCxyKXtsZXQgaT1kVyhyLHQpLGE9SDEoZSwtMSwhMCk7cmV0dXJuIHImJmkmJmkudHlwZT09PSJlbGVtZW50IiYmaS50YWdOYW1lPT09ImNvbGdyb3VwIiYmUDcoaSxyLmNoaWxkcmVuLmluZGV4T2YoaSkscik/ITE6ISEoYSYmYS50eXBlPT09ImVsZW1lbnQiJiZhLnRhZ05hbWU9PT0iY29sIil9ZnVuY3Rpb24gbHpyKGUsdCxyKXtsZXQgaT1kVyhyLHQpLGE9SDEoZSwtMSk7cmV0dXJuIHImJmkmJmkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJ0aGVhZCJ8fGkudGFnTmFtZT09PSJ0Ym9keSIpJiZQNyhpLHIuY2hpbGRyZW4uaW5kZXhPZihpKSxyKT8hMTohIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJ0ciIpfXZhciBGX2UsT19lPXAoKCk9PntwaygpO3VXKCk7ZlcoKTtwVygpO0ZfZT1oayh7Ym9keTpvenIsY29sZ3JvdXA6c3pyLGhlYWQ6bnpyLGh0bWw6YXpyLHRib2R5Omx6cn0pfSk7ZnVuY3Rpb24gUl9lKGUsdCxyLGkpe2xldCBhPWkuc2NoZW1hLG49YS5zcGFjZT09PSJzdmciPyExOmkuc2V0dGluZ3Mub21pdE9wdGlvbmFsVGFncyxvPWEuc3BhY2U9PT0ic3ZnIj9pLnNldHRpbmdzLmNsb3NlRW1wdHlFbGVtZW50czppLnNldHRpbmdzLnZvaWRzLmluY2x1ZGVzKGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSxzPVtdLGw7YS5zcGFjZT09PSJodG1sIiYmZS50YWdOYW1lPT09InN2ZyImJihpLnNjaGVtYT1sayk7bGV0IGM9Y3pyKGksZS5wcm9wZXJ0aWVzKSx1PWkuYWxsKGEuc3BhY2U9PT0iaHRtbCImJmUudGFnTmFtZT09PSJ0ZW1wbGF0ZSI/ZS5jb250ZW50OmUpO3JldHVybiBpLnNjaGVtYT1hLHUmJihvPSExKSwoY3x8IW58fCFGX2UoZSx0LHIpKSYmKHMucHVzaCgiPCIsZS50YWdOYW1lLGM/IiAiK2M6IiIpLG8mJihhLnNwYWNlPT09InN2ZyJ8fGkuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZykmJihsPWMuY2hhckF0KGMubGVuZ3RoLTEpLCghaS5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nfHxsPT09Ii8ifHxsJiZsIT09JyInJiZsIT09IiciKSYmcy5wdXNoKCIgIikscy5wdXNoKCIvIikpLHMucHVzaCgiPiIpKSxzLnB1c2godSksIW8mJighbnx8IVA3KGUsdCxyKSkmJnMucHVzaCgiPC8iK2UudGFnTmFtZSsiPiIpLHMuam9pbigiIil9ZnVuY3Rpb24gY3pyKGUsdCl7bGV0IHI9W10saT0tMSxhO2lmKHQpe2ZvcihhIGluIHQpaWYodFthXSE9PW51bGwmJnRbYV0hPT12b2lkIDApe2xldCBuPWR6cihlLGEsdFthXSk7biYmci5wdXNoKG4pfX1mb3IoOysraTxyLmxlbmd0aDspe2xldCBuPWUuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzP3JbaV0uY2hhckF0KHJbaV0ubGVuZ3RoLTEpOnZvaWQgMDtpIT09ci5sZW5ndGgtMSYmbiE9PSciJyYmbiE9PSInIiYmKHJbaV0rPSIgIil9cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gZHpyKGUsdCxyKXtsZXQgaT1vVyhlLnNjaGVtYSx0KSxhPWUuc2V0dGluZ3MuYWxsb3dQYXJzZUVycm9ycyYmZS5zY2hlbWEuc3BhY2U9PT0iaHRtbCI/MDoxLG49ZS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM/MDoxLG89ZS5xdW90ZSxzO2lmKGkub3ZlcmxvYWRlZEJvb2xlYW4mJihyPT09aS5hdHRyaWJ1dGV8fHI9PT0iIik/cj0hMDooaS5ib29sZWFufHxpLm92ZXJsb2FkZWRCb29sZWFuKSYmKHR5cGVvZiByIT0ic3RyaW5nInx8cj09PWkuYXR0cmlidXRlfHxyPT09IiIpJiYocj0hIXIpLHI9PW51bGx8fHI9PT0hMXx8dHlwZW9mIHI9PSJudW1iZXIiJiZOdW1iZXIuaXNOYU4ocikpcmV0dXJuIiI7bGV0IGw9SWwoaS5hdHRyaWJ1dGUsT2JqZWN0LmFzc2lnbih7fSxlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDpmay5uYW1lW2FdW25dfSkpO3JldHVybiByPT09ITB8fChyPUFycmF5LmlzQXJyYXkocik/KGkuY29tbWFTZXBhcmF0ZWQ/X19lOkFfZSkocix7cGFkTGVmdDohZS5zZXR0aW5ncy50aWdodENvbW1hU2VwYXJhdGVkTGlzdHN9KTpTdHJpbmcociksZS5zZXR0aW5ncy5jb2xsYXBzZUVtcHR5QXR0cmlidXRlcyYmIXIpP2w6KGUuc2V0dGluZ3MucHJlZmVyVW5xdW90ZWQmJihzPUlsKHIsT2JqZWN0LmFzc2lnbih7fSxlLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse2F0dHJpYnV0ZTohMCxzdWJzZXQ6ZmsudW5xdW90ZWRbYV1bbl19KSkpLHMhPT1yJiYoZS5zZXR0aW5ncy5xdW90ZVNtYXJ0JiZ4dShyLG8pPnh1KHIsZS5hbHRlcm5hdGl2ZSkmJihvPWUuYWx0ZXJuYXRpdmUpLHM9bytJbChyLE9iamVjdC5hc3NpZ24oe30sZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6KG89PT0iJyI/Zmsuc2luZ2xlOmZrLmRvdWJsZSlbYV1bbl0sYXR0cmlidXRlOiEwfSkpK28pLGwrKHMmJiI9IitzKSl9dmFyIGZrLEJfZT1wKCgpPT57ZVYoKTtMX2UoKTtzVygpO0RfZSgpO3VrKCk7ZlcoKTtPX2UoKTtmaz17bmFtZTpbW2AJClxmXHIgJi89PmAuc3BsaXQoIiIpLGAJClxmXHIgIiYnLz0+XGBgLnNwbGl0KCIiKV0sW2BcMAkKXGZcciAiJicvPD0+YC5zcGxpdCgiIiksYFwwCQpcZlxyICImJy88PT5cYGAuc3BsaXQoIiIpXV0sdW5xdW90ZWQ6W1tgCQpcZlxyICY+YC5zcGxpdCgiIiksYFwwCQpcZlxyICImJzw9PlxgYC5zcGxpdCgiIildLFtgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKSxgXDAJClxmXHIgIiYnPD0+XGBgLnNwbGl0KCIiKV1dLHNpbmdsZTpbWyImJyIuc3BsaXQoIiIpLCJcIiYnYCIuc3BsaXQoIiIpXSxbIlwwJiciLnNwbGl0KCIiKSwiXDBcIiYnYCIuc3BsaXQoIiIpXV0sZG91YmxlOltbJyImJy5zcGxpdCgiIiksIlwiJidgIi5zcGxpdCgiIildLFsnXDAiJicuc3BsaXQoIiIpLCJcMFwiJidgIi5zcGxpdCgiIildXX19KTtmdW5jdGlvbiBtayhlLHQscixpKXtyZXR1cm4gciYmci50eXBlPT09ImVsZW1lbnQiJiYoci50YWdOYW1lPT09InNjcmlwdCJ8fHIudGFnTmFtZT09PSJzdHlsZSIpP2UudmFsdWU6SWwoZS52YWx1ZSxPYmplY3QuYXNzaWduKHt9LGkuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OnV6cn0pKX12YXIgdXpyLG1XPXAoKCk9Pnt1aygpO3V6cj1bIjwiLCImIl19KTtmdW5jdGlvbiBIX2UoZSx0LHIsaSl7cmV0dXJuIGkuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNIdG1sP2UudmFsdWU6bWsoZSx0LHIsaSl9dmFyIHFfZT1wKCgpPT57bVcoKX0pO2Z1bmN0aW9uIGpfZShlLHQscixpKXtyZXR1cm4gaS5hbGwoZSl9dmFyIFZfZT1wKCgpPT57fSk7ZnVuY3Rpb24gcHpyKGUpe3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgbm9kZSwgbm90IGAiK2UrImAiKX1mdW5jdGlvbiBoenIoZSl7bGV0IHQ9ZTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgIit0LnR5cGUrImAiKX12YXIgVV9lLFdfZT1wKCgpPT57dVYoKTt6X2UoKTtUX2UoKTtCX2UoKTtxX2UoKTtWX2UoKTttVygpO1VfZT1mTSgidHlwZSIse2ludmFsaWQ6cHpyLHVua25vd246aHpyLGhhbmRsZXJzOntjb21tZW50OlNfZSxkb2N0eXBlOkNfZSxlbGVtZW50OlJfZSxyYXc6SF9lLHJvb3Q6al9lLHRleHQ6bWt9fSl9KTtmdW5jdGlvbiBnVyhlLHQpe2xldCByPXR8fGZ6cixpPXIucXVvdGV8fCciJyxhPWk9PT0nIic/IiciOiciJztpZihpIT09JyInJiZpIT09IiciKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBxdW90ZSBgIitpKyJgLCBleHBlY3RlZCBgJ2Agb3IgYFwiYCIpO3JldHVybntvbmU6YnpyLGFsbDp2enIsc2V0dGluZ3M6e29taXRPcHRpb25hbFRhZ3M6ci5vbWl0T3B0aW9uYWxUYWdzfHwhMSxhbGxvd1BhcnNlRXJyb3JzOnIuYWxsb3dQYXJzZUVycm9yc3x8ITEsYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzOnIuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzfHwhMSxxdW90ZVNtYXJ0OnIucXVvdGVTbWFydHx8ITEscHJlZmVyVW5xdW90ZWQ6ci5wcmVmZXJVbnF1b3RlZHx8ITEsdGlnaHRBdHRyaWJ1dGVzOnIudGlnaHRBdHRyaWJ1dGVzfHwhMSx1cHBlckRvY3R5cGU6ci51cHBlckRvY3R5cGV8fCExLHRpZ2h0RG9jdHlwZTpyLnRpZ2h0RG9jdHlwZXx8ITEsYm9ndXNDb21tZW50czpyLmJvZ3VzQ29tbWVudHN8fCExLHRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0czpyLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c3x8ITEsdGlnaHRTZWxmQ2xvc2luZzpyLnRpZ2h0U2VsZkNsb3Npbmd8fCExLGNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzOnIuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXN8fCExLGFsbG93RGFuZ2Vyb3VzSHRtbDpyLmFsbG93RGFuZ2Vyb3VzSHRtbHx8ITEsdm9pZHM6ci52b2lkc3x8alRlLGNoYXJhY3RlclJlZmVyZW5jZXM6ci5jaGFyYWN0ZXJSZWZlcmVuY2VzfHxtenIsY2xvc2VTZWxmQ2xvc2luZzpyLmNsb3NlU2VsZkNsb3Npbmd8fCExLGNsb3NlRW1wdHlFbGVtZW50czpyLmNsb3NlRW1wdHlFbGVtZW50c3x8ITF9LHNjaGVtYTpyLnNwYWNlPT09InN2ZyI/bGs6YV9lLHF1b3RlOmksYWx0ZXJuYXRpdmU6YX0ub25lKEFycmF5LmlzQXJyYXkoZSk/e3R5cGU6InJvb3QiLGNoaWxkcmVuOmV9OmUsdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gYnpyKGUsdCxyKXtyZXR1cm4gVV9lKGUsdCxyLHRoaXMpfWZ1bmN0aW9uIHZ6cihlKXtsZXQgdD1bXSxyPWUmJmUuY2hpbGRyZW58fGd6cixpPS0xO2Zvcig7KytpPHIubGVuZ3RoOyl0W2ldPXRoaXMub25lKHJbaV0saSxlKTtyZXR1cm4gdC5qb2luKCIiKX12YXIgZnpyLG16cixnenIsR19lPXAoKCk9PntWVGUoKTtzVygpO1dfZSgpO2Z6cj17fSxtenI9e30sZ3pyPVtdfSk7dmFyIFlfZT1wKCgpPT57R19lKCl9KTtmdW5jdGlvbiAkdShlKXtsZXQgdD10aGlzLHtoYW5kbGVyczpyLHNhbml0aXplOmksLi4uYX09ZXx8eHpyLG49ITEsbzt0eXBlb2YgaT09ImJvb2xlYW4iP249IWk6aSYmKG89aSksdC5jb21waWxlcj1zO2Z1bmN0aW9uIHMobCxjKXtsZXQgdT1ZVShsLHtoYW5kbGVyczpyLGFsbG93RGFuZ2Vyb3VzSHRtbDpufSksZD1uP3U6cVUodSxvKSxoPWdXKGQsey4uLmEsYWxsb3dEYW5nZXJvdXNIdG1sOm59KTtyZXR1cm4gYy5leHRuYW1lJiYoYy5leHRuYW1lPSIuaHRtbCIpLGwmJmwudHlwZT09PSJyb290IiYmaCYmL1teXHJcbl0vLnRlc3QoaC5jaGFyQXQoaC5sZW5ndGgtMSkpP2grYApgOmh9fXZhciB4enIsWl9lPXAoKCk9PntPQ2UoKTtxVGUoKTtZX2UoKTt4enI9e319KTt2YXIgWF9lPXAoKCk9PntaX2UoKX0pO2Z1bmN0aW9uIEl1KGUpe2xldCB0PXRoaXM7dC5jb21waWxlcj1yO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIEVWKGksey4uLnQuZGF0YSgic2V0dGluZ3MiKSwuLi5lLGV4dGVuc2lvbnM6dC5kYXRhKCJ0b01hcmtkb3duRXh0ZW5zaW9ucyIpfHxbXX0pfX12YXIgUV9lPXAoKCk9PntTTSgpfSk7dmFyIEpfZT1wKCgpPT57UV9lKCl9KTtmdW5jdGlvbiB5enIoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9YXJndW1lbnRzW3RdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJihlW2ldPXJbaV0pfXJldHVybiBlfWZ1bmN0aW9uIGJXKGUsdCl7cmV0dXJuIEFycmF5KHQrMSkuam9pbihlKX1mdW5jdGlvbiBLX2UoZSl7cmV0dXJuIGUucmVwbGFjZSgvXlxuKi8sIiIpfWZ1bmN0aW9uIGVMZShlKXtmb3IodmFyIHQ9ZS5sZW5ndGg7dD4wJiZlW3QtMV09PT1gCmA7KXQtLTtyZXR1cm4gZS5zdWJzdHJpbmcoMCx0KX1mdW5jdGlvbiB0TGUoZSl7cmV0dXJuIGVMZShLX2UoZSkpfWZ1bmN0aW9uIHZXKGUpe3JldHVybiB4VyhlLHd6cil9ZnVuY3Rpb24gaUxlKGUpe3JldHVybiB4VyhlLHJMZSl9ZnVuY3Rpb24gTXpyKGUpe3JldHVybiBuTGUoZSxyTGUpfWZ1bmN0aW9uIGt6cihlKXtyZXR1cm4geFcoZSxhTGUpfWZ1bmN0aW9uIFN6cihlKXtyZXR1cm4gbkxlKGUsYUxlKX1mdW5jdGlvbiB4VyhlLHQpe3JldHVybiB0LmluZGV4T2YoZS5ub2RlTmFtZSk+PTB9ZnVuY3Rpb24gbkxlKGUsdCl7cmV0dXJuIGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJnQuc29tZShmdW5jdGlvbihyKXtyZXR1cm4gZS5nZXRFbGVtZW50c0J5VGFnTmFtZShyKS5sZW5ndGh9KX1mdW5jdGlvbiBnayhlKXtyZXR1cm4gZT9lLnJlcGxhY2UoLyhcbitccyopKy9nLGAKYCk6IiJ9ZnVuY3Rpb24gb0xlKGUpe3RoaXMub3B0aW9ucz1lLHRoaXMuX2tlZXA9W10sdGhpcy5fcmVtb3ZlPVtdLHRoaXMuYmxhbmtSdWxlPXtyZXBsYWNlbWVudDplLmJsYW5rUmVwbGFjZW1lbnR9LHRoaXMua2VlcFJlcGxhY2VtZW50PWUua2VlcFJlcGxhY2VtZW50LHRoaXMuZGVmYXVsdFJ1bGU9e3JlcGxhY2VtZW50OmUuZGVmYXVsdFJlcGxhY2VtZW50fSx0aGlzLmFycmF5PVtdO2Zvcih2YXIgdCBpbiBlLnJ1bGVzKXRoaXMuYXJyYXkucHVzaChlLnJ1bGVzW3RdKX1mdW5jdGlvbiB5VyhlLHQscil7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoenpyKGEsdCxyKSlyZXR1cm4gYX19ZnVuY3Rpb24genpyKGUsdCxyKXt2YXIgaT1lLmZpbHRlcjtpZih0eXBlb2YgaT09InN0cmluZyIpe2lmKGk9PT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuITB9ZWxzZSBpZihBcnJheS5pc0FycmF5KGkpKXtpZihpLmluZGV4T2YodC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKT4tMSlyZXR1cm4hMH1lbHNlIGlmKHR5cGVvZiBpPT0iZnVuY3Rpb24iKXtpZihpLmNhbGwoZSx0LHIpKXJldHVybiEwfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiYGZpbHRlcmAgbmVlZHMgdG8gYmUgYSBzdHJpbmcsIGFycmF5LCBvciBmdW5jdGlvbiIpfWZ1bmN0aW9uIEN6cihlKXt2YXIgdD1lLmVsZW1lbnQscj1lLmlzQmxvY2ssaT1lLmlzVm9pZCxhPWUuaXNQcmV8fGZ1bmN0aW9uKGQpe3JldHVybiBkLm5vZGVOYW1lPT09IlBSRSJ9O2lmKCEoIXQuZmlyc3RDaGlsZHx8YSh0KSkpe2Zvcih2YXIgbj1udWxsLG89ITEscz1udWxsLGw9c0xlKHMsdCxhKTtsIT09dDspe2lmKGwubm9kZVR5cGU9PT0zfHxsLm5vZGVUeXBlPT09NCl7dmFyIGM9bC5kYXRhLnJlcGxhY2UoL1sgXHJcblx0XSsvZywiICIpO2lmKCghbnx8LyAkLy50ZXN0KG4uZGF0YSkpJiYhbyYmY1swXT09PSIgIiYmKGM9Yy5zdWJzdHIoMSkpLCFjKXtsPXdXKGwpO2NvbnRpbnVlfWwuZGF0YT1jLG49bH1lbHNlIGlmKGwubm9kZVR5cGU9PT0xKXIobCl8fGwubm9kZU5hbWU9PT0iQlIiPyhuJiYobi5kYXRhPW4uZGF0YS5yZXBsYWNlKC8gJC8sIiIpKSxuPW51bGwsbz0hMSk6aShsKXx8YShsKT8obj1udWxsLG89ITApOm4mJihvPSExKTtlbHNle2w9d1cobCk7Y29udGludWV9dmFyIHU9c0xlKHMsbCxhKTtzPWwsbD11fW4mJihuLmRhdGE9bi5kYXRhLnJlcGxhY2UoLyAkLywiIiksbi5kYXRhfHx3VyhuKSl9fWZ1bmN0aW9uIHdXKGUpe3ZhciB0PWUubmV4dFNpYmxpbmd8fGUucGFyZW50Tm9kZTtyZXR1cm4gZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpLHR9ZnVuY3Rpb24gc0xlKGUsdCxyKXtyZXR1cm4gZSYmZS5wYXJlbnROb2RlPT09dHx8cih0KT90Lm5leHRTaWJsaW5nfHx0LnBhcmVudE5vZGU6dC5maXJzdENoaWxkfHx0Lm5leHRTaWJsaW5nfHx0LnBhcmVudE5vZGV9ZnVuY3Rpb24gVHpyKCl7dmFyIGU9TVcuRE9NUGFyc2VyLHQ9ITE7dHJ5e25ldyBlKCkucGFyc2VGcm9tU3RyaW5nKCIiLCJ0ZXh0L2h0bWwiKSYmKHQ9ITApfWNhdGNoe31yZXR1cm4gdH1mdW5jdGlvbiBfenIoKXt2YXIgZT1mdW5jdGlvbigpe307cmV0dXJuIEx6cigpP2UucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbih0KXt2YXIgcj1uZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIik7cmV0dXJuIHIuZGVzaWduTW9kZT0ib24iLHIub3BlbigpLHIud3JpdGUodCksci5jbG9zZSgpLHJ9OmUucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZz1mdW5jdGlvbih0KXt2YXIgcj1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO3JldHVybiByLm9wZW4oKSxyLndyaXRlKHQpLHIuY2xvc2UoKSxyfSxlfWZ1bmN0aW9uIEx6cigpe3ZhciBlPSExO3RyeXtkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLm9wZW4oKX1jYXRjaHtNVy5BY3RpdmVYT2JqZWN0JiYoZT0hMCl9cmV0dXJuIGV9ZnVuY3Rpb24gRHpyKGUsdCl7dmFyIHI7aWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgaT1FenIoKS5wYXJzZUZyb21TdHJpbmcoJzx4LXR1cm5kb3duIGlkPSJ0dXJuZG93bi1yb290Ij4nK2UrIjwveC10dXJuZG93bj4iLCJ0ZXh0L2h0bWwiKTtyPWkuZ2V0RWxlbWVudEJ5SWQoInR1cm5kb3duLXJvb3QiKX1lbHNlIHI9ZS5jbG9uZU5vZGUoITApO3JldHVybiBDenIoe2VsZW1lbnQ6cixpc0Jsb2NrOnZXLGlzVm9pZDppTGUsaXNQcmU6dC5wcmVmb3JtYXR0ZWRDb2RlPyR6cjpudWxsfSkscn1mdW5jdGlvbiBFenIoKXtyZXR1cm4ga1c9a1d8fG5ldyBBenIsa1d9ZnVuY3Rpb24gJHpyKGUpe3JldHVybiBlLm5vZGVOYW1lPT09IlBSRSJ8fGUubm9kZU5hbWU9PT0iQ09ERSJ9ZnVuY3Rpb24gSXpyKGUsdCl7cmV0dXJuIGUuaXNCbG9jaz12VyhlKSxlLmlzQ29kZT1lLm5vZGVOYW1lPT09IkNPREUifHxlLnBhcmVudE5vZGUuaXNDb2RlLGUuaXNCbGFuaz1QenIoZSksZS5mbGFua2luZ1doaXRlc3BhY2U9TnpyKGUsdCksZX1mdW5jdGlvbiBQenIoZSl7cmV0dXJuIWlMZShlKSYmIWt6cihlKSYmL15ccyokL2kudGVzdChlLnRleHRDb250ZW50KSYmIU16cihlKSYmIVN6cihlKX1mdW5jdGlvbiBOenIoZSx0KXtpZihlLmlzQmxvY2t8fHQucHJlZm9ybWF0dGVkQ29kZSYmZS5pc0NvZGUpcmV0dXJue2xlYWRpbmc6IiIsdHJhaWxpbmc6IiJ9O3ZhciByPUZ6cihlLnRleHRDb250ZW50KTtyZXR1cm4gci5sZWFkaW5nQXNjaWkmJmxMZSgibGVmdCIsZSx0KSYmKHIubGVhZGluZz1yLmxlYWRpbmdOb25Bc2NpaSksci50cmFpbGluZ0FzY2lpJiZsTGUoInJpZ2h0IixlLHQpJiYoci50cmFpbGluZz1yLnRyYWlsaW5nTm9uQXNjaWkpLHtsZWFkaW5nOnIubGVhZGluZyx0cmFpbGluZzpyLnRyYWlsaW5nfX1mdW5jdGlvbiBGenIoZSl7dmFyIHQ9ZS5tYXRjaCgvXigoWyBcdFxyXG5dKikoXHMqKSkoPzooPz1cUylbXHNcU10qXFMpPygoXHMqPykoWyBcdFxyXG5dKikpJC8pO3JldHVybntsZWFkaW5nOnRbMV0sbGVhZGluZ0FzY2lpOnRbMl0sbGVhZGluZ05vbkFzY2lpOnRbM10sdHJhaWxpbmc6dFs0XSx0cmFpbGluZ05vbkFzY2lpOnRbNV0sdHJhaWxpbmdBc2NpaTp0WzZdfX1mdW5jdGlvbiBsTGUoZSx0LHIpe3ZhciBpLGEsbjtyZXR1cm4gZT09PSJsZWZ0Ij8oaT10LnByZXZpb3VzU2libGluZyxhPS8gJC8pOihpPXQubmV4dFNpYmxpbmcsYT0vXiAvKSxpJiYoaS5ub2RlVHlwZT09PTM/bj1hLnRlc3QoaS5ub2RlVmFsdWUpOnIucHJlZm9ybWF0dGVkQ29kZSYmaS5ub2RlTmFtZT09PSJDT0RFIj9uPSExOmkubm9kZVR5cGU9PT0xJiYhdlcoaSkmJihuPWEudGVzdChpLnRleHRDb250ZW50KSkpLG59ZnVuY3Rpb24gYmsoZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgYmspKXJldHVybiBuZXcgYmsoZSk7dmFyIHQ9e3J1bGVzOnhhLGhlYWRpbmdTdHlsZToic2V0ZXh0IixocjoiKiAqICoiLGJ1bGxldExpc3RNYXJrZXI6IioiLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsZmVuY2U6ImBgYCIsZW1EZWxpbWl0ZXI6Il8iLHN0cm9uZ0RlbGltaXRlcjoiKioiLGxpbmtTdHlsZToiaW5saW5lZCIsbGlua1JlZmVyZW5jZVN0eWxlOiJmdWxsIixicjoiICAiLHByZWZvcm1hdHRlZENvZGU6ITEsYmxhbmtSZXBsYWNlbWVudDpmdW5jdGlvbihyLGkpe3JldHVybiBpLmlzQmxvY2s/YAoKYDoiIn0sa2VlcFJlcGxhY2VtZW50OmZ1bmN0aW9uKHIsaSl7cmV0dXJuIGkuaXNCbG9jaz9gCgpgK2kub3V0ZXJIVE1MK2AKCmA6aS5vdXRlckhUTUx9LGRlZmF1bHRSZXBsYWNlbWVudDpmdW5jdGlvbihyLGkpe3JldHVybiBpLmlzQmxvY2s/YAoKYCtyK2AKCmA6cn19O3RoaXMub3B0aW9ucz15enIoe30sdCxlKSx0aGlzLnJ1bGVzPW5ldyBvTGUodGhpcy5vcHRpb25zKX1mdW5jdGlvbiBjTGUoZSl7dmFyIHQ9dGhpcztyZXR1cm4gT3pyLmNhbGwoZS5jaGlsZE5vZGVzLGZ1bmN0aW9uKHIsaSl7aT1uZXcgSXpyKGksdC5vcHRpb25zKTt2YXIgYT0iIjtyZXR1cm4gaS5ub2RlVHlwZT09PTM/YT1pLmlzQ29kZT9pLm5vZGVWYWx1ZTp0LmVzY2FwZShpLm5vZGVWYWx1ZSk6aS5ub2RlVHlwZT09PTEmJihhPUh6ci5jYWxsKHQsaSkpLGRMZShyLGEpfSwiIil9ZnVuY3Rpb24gQnpyKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMucnVsZXMuZm9yRWFjaChmdW5jdGlvbihyKXt0eXBlb2Ygci5hcHBlbmQ9PSJmdW5jdGlvbiImJihlPWRMZShlLHIuYXBwZW5kKHQub3B0aW9ucykpKX0pLGUucmVwbGFjZSgvXltcdFxyXG5dKy8sIiIpLnJlcGxhY2UoL1tcdFxyXG5cc10rJC8sIiIpfWZ1bmN0aW9uIEh6cihlKXt2YXIgdD10aGlzLnJ1bGVzLmZvck5vZGUoZSkscj1jTGUuY2FsbCh0aGlzLGUpLGk9ZS5mbGFua2luZ1doaXRlc3BhY2U7cmV0dXJuKGkubGVhZGluZ3x8aS50cmFpbGluZykmJihyPXIudHJpbSgpKSxpLmxlYWRpbmcrdC5yZXBsYWNlbWVudChyLGUsdGhpcy5vcHRpb25zKStpLnRyYWlsaW5nfWZ1bmN0aW9uIGRMZShlLHQpe3ZhciByPWVMZShlKSxpPUtfZSh0KSxhPU1hdGgubWF4KGUubGVuZ3RoLXIubGVuZ3RoLHQubGVuZ3RoLWkubGVuZ3RoKSxuPWAKCmAuc3Vic3RyaW5nKDAsYSk7cmV0dXJuIHIrbitpfWZ1bmN0aW9uIHF6cihlKXtyZXR1cm4gZSE9bnVsbCYmKHR5cGVvZiBlPT0ic3RyaW5nInx8ZS5ub2RlVHlwZSYmKGUubm9kZVR5cGU9PT0xfHxlLm5vZGVUeXBlPT09OXx8ZS5ub2RlVHlwZT09PTExKSl9dmFyIHd6cixyTGUsYUxlLHhhLE1XLEF6cixrVyxPenIsUnpyLHZrLHVMZT1wKCgpPT57d3pyPVsiQUREUkVTUyIsIkFSVElDTEUiLCJBU0lERSIsIkFVRElPIiwiQkxPQ0tRVU9URSIsIkJPRFkiLCJDQU5WQVMiLCJDRU5URVIiLCJERCIsIkRJUiIsIkRJViIsIkRMIiwiRFQiLCJGSUVMRFNFVCIsIkZJR0NBUFRJT04iLCJGSUdVUkUiLCJGT09URVIiLCJGT1JNIiwiRlJBTUVTRVQiLCJIMSIsIkgyIiwiSDMiLCJINCIsIkg1IiwiSDYiLCJIRUFERVIiLCJIR1JPVVAiLCJIUiIsIkhUTUwiLCJJU0lOREVYIiwiTEkiLCJNQUlOIiwiTUVOVSIsIk5BViIsIk5PRlJBTUVTIiwiTk9TQ1JJUFQiLCJPTCIsIk9VVFBVVCIsIlAiLCJQUkUiLCJTRUNUSU9OIiwiVEFCTEUiLCJUQk9EWSIsIlREIiwiVEZPT1QiLCJUSCIsIlRIRUFEIiwiVFIiLCJVTCJdO3JMZT1bIkFSRUEiLCJCQVNFIiwiQlIiLCJDT0wiLCJDT01NQU5EIiwiRU1CRUQiLCJIUiIsIklNRyIsIklOUFVUIiwiS0VZR0VOIiwiTElOSyIsIk1FVEEiLCJQQVJBTSIsIlNPVVJDRSIsIlRSQUNLIiwiV0JSIl07YUxlPVsiQSIsIlRBQkxFIiwiVEhFQUQiLCJUQk9EWSIsIlRGT09UIiwiVEgiLCJURCIsIklGUkFNRSIsIlNDUklQVCIsIkFVRElPIiwiVklERU8iXTt4YT17fTt4YS5wYXJhZ3JhcGg9e2ZpbHRlcjoicCIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuYAoKYCtlK2AKCmB9fSx4YS5saW5lQnJlYWs9e2ZpbHRlcjoiYnIiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gci5icitgCmB9fSx4YS5oZWFkaW5nPXtmaWx0ZXI6WyJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiXSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7dmFyIGk9TnVtYmVyKHQubm9kZU5hbWUuY2hhckF0KDEpKTtpZihyLmhlYWRpbmdTdHlsZT09PSJzZXRleHQiJiZpPDMpe3ZhciBhPWJXKGk9PT0xPyI9IjoiLSIsZS5sZW5ndGgpO3JldHVybmAKCmArZStgCmArYStgCgpgfWVsc2UgcmV0dXJuYAoKYCtiVygiIyIsaSkrIiAiK2UrYAoKYH19LHhhLmJsb2NrcXVvdGU9e2ZpbHRlcjoiYmxvY2txdW90ZSIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9dExlKGUpLnJlcGxhY2UoL14vZ20sIj4gIiksYAoKYCtlK2AKCmB9fSx4YS5saXN0PXtmaWx0ZXI6WyJ1bCIsIm9sIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgcj10LnBhcmVudE5vZGU7cmV0dXJuIHIubm9kZU5hbWU9PT0iTEkiJiZyLmxhc3RFbGVtZW50Q2hpbGQ9PT10P2AKYCtlOmAKCmArZStgCgpgfX0seGEubGlzdEl0ZW09e2ZpbHRlcjoibGkiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1yLmJ1bGxldExpc3RNYXJrZXIrIiAgICIsYT10LnBhcmVudE5vZGU7aWYoYS5ub2RlTmFtZT09PSJPTCIpe3ZhciBuPWEuZ2V0QXR0cmlidXRlKCJzdGFydCIpLG89QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLmNoaWxkcmVuLHQpO2k9KG4/TnVtYmVyKG4pK286bysxKSsiLiAgIn12YXIgcz0vXG4kLy50ZXN0KGUpO3JldHVybiBlPXRMZShlKSsocz9gCmA6IiIpLGU9ZS5yZXBsYWNlKC9cbi9nbSxgCmArIiAiLnJlcGVhdChpLmxlbmd0aCkpLGkrZSsodC5uZXh0U2libGluZz9gCmA6IiIpfX0seGEuaW5kZW50ZWRDb2RlQmxvY2s9e2ZpbHRlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0LmNvZGVCbG9ja1N0eWxlPT09ImluZGVudGVkIiYmZS5ub2RlTmFtZT09PSJQUkUiJiZlLmZpcnN0Q2hpbGQmJmUuZmlyc3RDaGlsZC5ub2RlTmFtZT09PSJDT0RFIn0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybmAKCiAgICBgK3QuZmlyc3RDaGlsZC50ZXh0Q29udGVudC5yZXBsYWNlKC9cbi9nLGAKICAgIGApK2AKCmB9fSx4YS5mZW5jZWRDb2RlQmxvY2s9e2ZpbHRlcjpmdW5jdGlvbihlLHQpe3JldHVybiB0LmNvZGVCbG9ja1N0eWxlPT09ImZlbmNlZCImJmUubm9kZU5hbWU9PT0iUFJFIiYmZS5maXJzdENoaWxkJiZlLmZpcnN0Q2hpbGQubm9kZU5hbWU9PT0iQ09ERSJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9dC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIsYT0oaS5tYXRjaCgvbGFuZ3VhZ2UtKFxTKykvKXx8W251bGwsIiJdKVsxXSxuPXQuZmlyc3RDaGlsZC50ZXh0Q29udGVudCxvPXIuZmVuY2UuY2hhckF0KDApLHM9MyxsPW5ldyBSZWdFeHAoIl4iK28rInszLH0iLCJnbSIpLGM7Yz1sLmV4ZWMobik7KWNbMF0ubGVuZ3RoPj1zJiYocz1jWzBdLmxlbmd0aCsxKTt2YXIgdT1iVyhvLHMpO3JldHVybmAKCmArdSthK2AKYCtuLnJlcGxhY2UoL1xuJC8sIiIpK2AKYCt1K2AKCmB9fSx4YS5ob3Jpem9udGFsUnVsZT17ZmlsdGVyOiJociIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybmAKCmArci5ocitgCgpgfX0seGEuaW5saW5lTGluaz17ZmlsdGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubGlua1N0eWxlPT09ImlubGluZWQiJiZlLm5vZGVOYW1lPT09IkEiJiZlLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQpe3ZhciByPXQuZ2V0QXR0cmlidXRlKCJocmVmIik7ciYmKHI9ci5yZXBsYWNlKC8oWygpXSkvZywiXFwkMSIpKTt2YXIgaT1nayh0LmdldEF0dHJpYnV0ZSgidGl0bGUiKSk7cmV0dXJuIGkmJihpPScgIicraS5yZXBsYWNlKC8iL2csJ1xcIicpKyciJyksIlsiK2UrIl0oIityK2krIikifX0seGEucmVmZXJlbmNlTGluaz17ZmlsdGVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubGlua1N0eWxlPT09InJlZmVyZW5jZWQiJiZlLm5vZGVOYW1lPT09IkEiJiZlLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7dmFyIGk9dC5nZXRBdHRyaWJ1dGUoImhyZWYiKSxhPWdrKHQuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKTthJiYoYT0nICInK2ErJyInKTt2YXIgbixvO3N3aXRjaChyLmxpbmtSZWZlcmVuY2VTdHlsZSl7Y2FzZSJjb2xsYXBzZWQiOm49IlsiK2UrIl1bXSIsbz0iWyIrZSsiXTogIitpK2E7YnJlYWs7Y2FzZSJzaG9ydGN1dCI6bj0iWyIrZSsiXSIsbz0iWyIrZSsiXTogIitpK2E7YnJlYWs7ZGVmYXVsdDp2YXIgcz10aGlzLnJlZmVyZW5jZXMubGVuZ3RoKzE7bj0iWyIrZSsiXVsiK3MrIl0iLG89IlsiK3MrIl06ICIraSthfXJldHVybiB0aGlzLnJlZmVyZW5jZXMucHVzaChvKSxufSxyZWZlcmVuY2VzOltdLGFwcGVuZDpmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gdGhpcy5yZWZlcmVuY2VzLmxlbmd0aCYmKHQ9YAoKYCt0aGlzLnJlZmVyZW5jZXMuam9pbihgCmApK2AKCmAsdGhpcy5yZWZlcmVuY2VzPVtdKSx0fX0seGEuZW1waGFzaXM9e2ZpbHRlcjpbImVtIiwiaSJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZS50cmltKCk/ci5lbURlbGltaXRlcitlK3IuZW1EZWxpbWl0ZXI6IiJ9fSx4YS5zdHJvbmc9e2ZpbHRlcjpbInN0cm9uZyIsImIiXSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7cmV0dXJuIGUudHJpbSgpP3Iuc3Ryb25nRGVsaW1pdGVyK2Urci5zdHJvbmdEZWxpbWl0ZXI6IiJ9fSx4YS5jb2RlPXtmaWx0ZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wcmV2aW91c1NpYmxpbmd8fGUubmV4dFNpYmxpbmcscj1lLnBhcmVudE5vZGUubm9kZU5hbWU9PT0iUFJFIiYmIXQ7cmV0dXJuIGUubm9kZU5hbWU9PT0iQ09ERSImJiFyfSxyZXBsYWNlbWVudDpmdW5jdGlvbihlKXtpZighZSlyZXR1cm4iIjtlPWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpO2Zvcih2YXIgdD0vXmB8XiAuKj9bXiBdLiogJHxgJC8udGVzdChlKT8iICI6IiIscj0iYCIsaT1lLm1hdGNoKC9gKy9nbSl8fFtdO2kuaW5kZXhPZihyKSE9PS0xOylyPXIrImAiO3JldHVybiByK3QrZSt0K3J9fSx4YS5pbWFnZT17ZmlsdGVyOiJpbWciLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9Z2sodC5nZXRBdHRyaWJ1dGUoImFsdCIpKSxpPXQuZ2V0QXR0cmlidXRlKCJzcmMiKXx8IiIsYT1nayh0LmdldEF0dHJpYnV0ZSgidGl0bGUiKSksbj1hPycgIicrYSsnIic6IiI7cmV0dXJuIGk/IiFbIityKyJdKCIraStuKyIpIjoiIn19O29MZS5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbihlLHQpe3RoaXMuYXJyYXkudW5zaGlmdCh0KX0sa2VlcDpmdW5jdGlvbihlKXt0aGlzLl9rZWVwLnVuc2hpZnQoe2ZpbHRlcjplLHJlcGxhY2VtZW50OnRoaXMua2VlcFJlcGxhY2VtZW50fSl9LHJlbW92ZTpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmUudW5zaGlmdCh7ZmlsdGVyOmUscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4iIn19KX0sZm9yTm9kZTpmdW5jdGlvbihlKXtpZihlLmlzQmxhbmspcmV0dXJuIHRoaXMuYmxhbmtSdWxlO3ZhciB0O3JldHVybih0PXlXKHRoaXMuYXJyYXksZSx0aGlzLm9wdGlvbnMpKXx8KHQ9eVcodGhpcy5fa2VlcCxlLHRoaXMub3B0aW9ucykpfHwodD15Vyh0aGlzLl9yZW1vdmUsZSx0aGlzLm9wdGlvbnMpKT90OnRoaXMuZGVmYXVsdFJ1bGV9LGZvckVhY2g6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDx0aGlzLmFycmF5Lmxlbmd0aDt0KyspZSh0aGlzLmFycmF5W3RdLHQpfX07TVc9dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9O0F6cj1UenIoKT9NVy5ET01QYXJzZXI6X3pyKCk7T3pyPUFycmF5LnByb3RvdHlwZS5yZWR1Y2UsUnpyPVtbL1xcL2csIlxcXFwiXSxbL1wqL2csIlxcKiJdLFsvXi0vZywiXFwtIl0sWy9eXCsgL2csIlxcKyAiXSxbL14oPSspL2csIlxcJDEiXSxbL14oI3sxLDZ9KSAvZywiXFwkMSAiXSxbL2AvZywiXFxgIl0sWy9efn5+L2csIlxcfn5+Il0sWy9cWy9nLCJcXFsiXSxbL1xdL2csIlxcXSJdLFsvXj4vZywiXFw+Il0sWy9fL2csIlxcXyJdLFsvXihcZCspXC4gL2csIiQxXFwuICJdXTtiay5wcm90b3R5cGU9e3R1cm5kb3duOmZ1bmN0aW9uKGUpe2lmKCFxenIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihlKyIgaXMgbm90IGEgc3RyaW5nLCBvciBhbiBlbGVtZW50L2RvY3VtZW50L2ZyYWdtZW50IG5vZGUuIik7aWYoZT09PSIiKXJldHVybiIiO3ZhciB0PWNMZS5jYWxsKHRoaXMsbmV3IER6cihlLHRoaXMub3B0aW9ucykpO3JldHVybiBCenIuY2FsbCh0aGlzLHQpfSx1c2U6ZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl0aGlzLnVzZShlW3RdKTtlbHNlIGlmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKWUodGhpcyk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJwbHVnaW4gbXVzdCBiZSBhIEZ1bmN0aW9uIG9yIGFuIEFycmF5IG9mIEZ1bmN0aW9ucyIpO3JldHVybiB0aGlzfSxhZGRSdWxlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucnVsZXMuYWRkKGUsdCksdGhpc30sa2VlcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5ydWxlcy5rZWVwKGUpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5ydWxlcy5yZW1vdmUoZSksdGhpc30sZXNjYXBlOmZ1bmN0aW9uKGUpe3JldHVybiBSenIucmVkdWNlKGZ1bmN0aW9uKHQscil7cmV0dXJuIHQucmVwbGFjZShyWzBdLHJbMV0pfSxlKX19O3ZrPWJrfSk7dmFyIE43PXt9O0ZlKE43LHtnZm06KCk9PmZMZSxoaWdobGlnaHRlZENvZGVCbG9jazooKT0+elcsc3RyaWtldGhyb3VnaDooKT0+Q1csdGFibGVzOigpPT5UVyx0YXNrTGlzdEl0ZW1zOigpPT5fV30pO2Z1bmN0aW9uIHpXKGUpe2UuYWRkUnVsZSgiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siLHtmaWx0ZXI6ZnVuY3Rpb24odCl7dmFyIHI9dC5maXJzdENoaWxkO3JldHVybiB0Lm5vZGVOYW1lPT09IkRJViImJnBMZS50ZXN0KHQuY2xhc3NOYW1lKSYmciYmci5ub2RlTmFtZT09PSJQUkUifSxyZXBsYWNlbWVudDpmdW5jdGlvbih0LHIsaSl7dmFyIGE9ci5jbGFzc05hbWV8fCIiLG49KGEubWF0Y2gocExlKXx8W251bGwsIiJdKVsxXTtyZXR1cm5gCgpgK2kuZmVuY2UrbitgCmArci5maXJzdENoaWxkLnRleHRDb250ZW50K2AKYCtpLmZlbmNlK2AKCmB9fSl9ZnVuY3Rpb24gQ1coZSl7ZS5hZGRSdWxlKCJzdHJpa2V0aHJvdWdoIix7ZmlsdGVyOlsiZGVsIiwicyIsInN0cmlrZSJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQpe3JldHVybiJ+Iit0KyJ+In19KX1mdW5jdGlvbiBTVyhlKXt2YXIgdD1lLnBhcmVudE5vZGU7cmV0dXJuIHQubm9kZU5hbWU9PT0iVEhFQUQifHx0LmZpcnN0Q2hpbGQ9PT1lJiYodC5ub2RlTmFtZT09PSJUQUJMRSJ8fFV6cih0KSkmJlZ6ci5jYWxsKGUuY2hpbGROb2RlcyxmdW5jdGlvbihyKXtyZXR1cm4gci5ub2RlTmFtZT09PSJUSCJ9KX1mdW5jdGlvbiBVenIoZSl7dmFyIHQ9ZS5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIGUubm9kZU5hbWU9PT0iVEJPRFkiJiYoIXR8fHQubm9kZU5hbWU9PT0iVEhFQUQiJiYvXlxzKiQvaS50ZXN0KHQudGV4dENvbnRlbnQpKX1mdW5jdGlvbiBoTGUoZSx0KXt2YXIgcj1qenIuY2FsbCh0LnBhcmVudE5vZGUuY2hpbGROb2Rlcyx0KSxpPSIgIjtyZXR1cm4gcj09PTAmJihpPSJ8ICIpLGkrZSsiIHwifWZ1bmN0aW9uIFRXKGUpe2Uua2VlcChmdW5jdGlvbihyKXtyZXR1cm4gci5ub2RlTmFtZT09PSJUQUJMRSImJiFTVyhyLnJvd3NbMF0pfSk7Zm9yKHZhciB0IGluIFB1KWUuYWRkUnVsZSh0LFB1W3RdKX1mdW5jdGlvbiBfVyhlKXtlLmFkZFJ1bGUoInRhc2tMaXN0SXRlbXMiLHtmaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PSJjaGVja2JveCImJnQucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJMSSJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKHQscil7cmV0dXJuKHIuY2hlY2tlZD8iW3hdIjoiWyBdIikrIiAifX0pfWZ1bmN0aW9uIGZMZShlKXtlLnVzZShbelcsQ1csVFcsX1ddKX12YXIgcExlLGp6cixWenIsUHUsbUxlPXAoKCk9PntwTGU9L2hpZ2hsaWdodC0oPzp0ZXh0fHNvdXJjZSktKFthLXowLTldKykvO2p6cj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZixWenI9QXJyYXkucHJvdG90eXBlLmV2ZXJ5LFB1PXt9O1B1LnRhYmxlQ2VsbD17ZmlsdGVyOlsidGgiLCJ0ZCJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGhMZShlLHQpfX0sUHUudGFibGVSb3c9e2ZpbHRlcjoidHIiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9IiIsaT17bGVmdDoiOi0tIixyaWdodDoiLS06IixjZW50ZXI6IjotOiJ9O2lmKFNXKHQpKWZvcih2YXIgYT0wO2E8dC5jaGlsZE5vZGVzLmxlbmd0aDthKyspe3ZhciBuPSItLS0iLG89KHQuY2hpbGROb2Rlc1thXS5nZXRBdHRyaWJ1dGUoImFsaWduIil8fCIiKS50b0xvd2VyQ2FzZSgpO28mJihuPWlbb118fG4pLHIrPWhMZShuLHQuY2hpbGROb2Rlc1thXSl9cmV0dXJuYApgK2UrKHI/YApgK3I6IiIpfX0sUHUudGFibGU9e2ZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS5ub2RlTmFtZT09PSJUQUJMRSImJlNXKGUucm93c1swXSl9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUpe3JldHVybiBlPWUucmVwbGFjZShgCgpgLGAKYCksYAoKYCtlK2AKCmB9fSxQdS50YWJsZVNlY3Rpb249e2ZpbHRlcjpbInRoZWFkIiwidGJvZHkiLCJ0Zm9vdCJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUpe3JldHVybiBlfX19KTt2YXIgTFcsQVc9cCgoKT0+e0xXPWVyKGlNZSgpLDEpO05NZSgpO3F6ZSgpO2ZDZSgpO0NDZSgpO1hfZSgpO0pfZSgpO3VMZSgpO21MZSgpfSk7dmFyIHhrLGJMZT1wKCgpPT57QVcoKTt4az1jbGFzcyBle3N0YXRpYyBhc3luYyBjcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcodCl7bGV0IHI9bmV3IGU7cmV0dXJuIGF3YWl0IHIudXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpLHJ9YXN5bmMgdXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpe2xldCByLGk9YXdhaXQgcDcoKS51c2UoVHUpLnVzZShDdSkudXNlKEx1LFsieWFtbCIsInRvbWwiXSkudXNlKEl1KS51c2UoJHUpLnVzZSgoKT0+YT0+e2NvbnNvbGUuZGlyKGEpO2xldCBuPWEuY2hpbGRyZW4uZmluZChvPT5vLnR5cGU9PT0ieWFtbCIpO24mJihyPW4udmFsdWUpfSkucHJvY2Vzcyh0KTt0aGlzLmh0bWw9aS50b1N0cmluZygpLHI/dGhpcy5mcm9udG1hdHRlckRhdGE9YXdhaXQgTFcueWFtbFN0cmluZ1RvT2JqZWN0KHIpOnRoaXMuZnJvbnRtYXR0ZXJEYXRhPXt9fX19KTt2YXIgTnU9e307RmUoTnUse1NtYXJ0TWFya2Rvd246KCk9PkRXfSk7dmFyIERXLEVXPXAoKCk9PntBVygpO2JMZSgpO0RXPWNsYXNzIGV7c3RhdGljIGFzeW5jIGVhc3lNYXJrZG93blRvSHRtbCh0KXtyZXR1cm4oYXdhaXQgbmV3IGUoKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bih0KSkuaHRtbH1jb25zdHJ1Y3Rvcigpe31hc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bih0KXtyZXR1cm4gYXdhaXQgeGsuY3JlYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpfWh0bWxUb01hcmtkb3duKHQpe2xldCByPW5ldyB2ayh7aGVhZGluZ1N0eWxlOiJhdHgiLGNvZGVCbG9ja1N0eWxlOiJmZW5jZWQifSk7cmV0dXJuIHIudXNlKE43LmdmbSksci50dXJuZG93bih0KX19fSk7dmFyIGtMZT1qZShzMj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoczIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHMyLlBhdGhFcnJvcj1zMi5Ub2tlbkRhdGE9dm9pZCAwLHMyLnBhcnNlPU5XLHMyLmNvbXBpbGU9WXpyLHMyLm1hdGNoPVh6cixzMi5wYXRoVG9SZWdleHA9eUxlLHMyLnN0cmluZ2lmeT1LenI7dmFyICRXPSIvIixJVz1lPT5lLHZMZT0vXlskX1xwe0lEX1N0YXJ0fV0kL3UsUFc9L15bJFx1MjAwY1x1MjAwZFxwe0lEX0NvbnRpbnVlfV0kL3UsV3pyPXsieyI6InsiLCJ9IjoifSIsIigiOiIoIiwiKSI6IikiLCJbIjoiWyIsIl0iOiJdIiwiKyI6IisiLCI/IjoiPyIsIiEiOiIhIn07ZnVuY3Rpb24gR3pyKGUpe3JldHVybiBlLnJlcGxhY2UoL1t7fSgpXFtcXSs/IToqXFxdL2csIlxcJCYiKX1mdW5jdGlvbiBicyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9bLisqP14ke30oKVtcXXwvXFxdL2csIlxcJCYiKX12YXIgeWs9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnRva2Vucz10LHRoaXMub3JpZ2luYWxQYXRoPXJ9fTtzMi5Ub2tlbkRhdGE9eWs7dmFyIG42PWNsYXNzIGV4dGVuZHMgVHlwZUVycm9ye2NvbnN0cnVjdG9yKHQscil7bGV0IGk9dDtyJiYoaSs9YDogJHtyfWApLGkrPSI7IHZpc2l0IGh0dHBzOi8vZ2l0Lm5ldy9wYXRoVG9SZWdleHBFcnJvciBmb3IgaW5mbyIsc3VwZXIoaSksdGhpcy5vcmlnaW5hbFBhdGg9cn19O3MyLlBhdGhFcnJvcj1uNjtmdW5jdGlvbiBOVyhlLHQ9e30pe2xldHtlbmNvZGVQYXRoOnI9SVd9PXQsaT1bLi4uZV0sYT1bXSxuPTAsbz0wO2Z1bmN0aW9uIHMoKXtsZXQgYz0iIjtpZih2TGUudGVzdChpW25dKSlkbyBjKz1pW24rK107d2hpbGUoUFcudGVzdChpW25dKSk7ZWxzZSBpZihpW25dPT09JyInKXtsZXQgdT1uO2Zvcig7bisrPGkubGVuZ3RoOyl7aWYoaVtuXT09PSciJyl7bisrLHU9MDticmVha31pW25dPT09IlxcIiYmbisrLGMrPWlbbl19aWYodSl0aHJvdyBuZXcgbjYoYFVudGVybWluYXRlZCBxdW90ZSBhdCBpbmRleCAke3V9YCxlKX1pZighYyl0aHJvdyBuZXcgbjYoYE1pc3NpbmcgcGFyYW1ldGVyIG5hbWUgYXQgaW5kZXggJHtufWAsZSk7cmV0dXJuIGN9Zm9yKDtuPGkubGVuZ3RoOyl7bGV0IGM9aVtuXSx1PVd6cltjXTt1P2EucHVzaCh7dHlwZTp1LGluZGV4Om4rKyx2YWx1ZTpjfSk6Yz09PSJcXCI/YS5wdXNoKHt0eXBlOiJlc2NhcGUiLGluZGV4Om4rKyx2YWx1ZTppW24rK119KTpjPT09IjoiP2EucHVzaCh7dHlwZToicGFyYW0iLGluZGV4Om4rKyx2YWx1ZTpzKCl9KTpjPT09IioiP2EucHVzaCh7dHlwZToid2lsZGNhcmQiLGluZGV4Om4rKyx2YWx1ZTpzKCl9KTphLnB1c2goe3R5cGU6ImNoYXIiLGluZGV4Om4rKyx2YWx1ZTpjfSl9YS5wdXNoKHt0eXBlOiJlbmQiLGluZGV4Om4sdmFsdWU6IiJ9KTtmdW5jdGlvbiBsKGMpe2xldCB1PVtdO2Zvcig7Oyl7bGV0IGQ9YVtvKytdO2lmKGQudHlwZT09PWMpYnJlYWs7aWYoZC50eXBlPT09ImNoYXIifHxkLnR5cGU9PT0iZXNjYXBlIil7bGV0IGg9ZC52YWx1ZSxmPWFbb107Zm9yKDtmLnR5cGU9PT0iY2hhciJ8fGYudHlwZT09PSJlc2NhcGUiOyloKz1mLnZhbHVlLGY9YVsrK29dO3UucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6cihoKX0pO2NvbnRpbnVlfWlmKGQudHlwZT09PSJwYXJhbSJ8fGQudHlwZT09PSJ3aWxkY2FyZCIpe3UucHVzaCh7dHlwZTpkLnR5cGUsbmFtZTpkLnZhbHVlfSk7Y29udGludWV9aWYoZC50eXBlPT09InsiKXt1LnB1c2goe3R5cGU6Imdyb3VwIix0b2tlbnM6bCgifSIpfSk7Y29udGludWV9dGhyb3cgbmV3IG42KGBVbmV4cGVjdGVkICR7ZC50eXBlfSBhdCBpbmRleCAke2QuaW5kZXh9LCBleHBlY3RlZCAke2N9YCxlKX1yZXR1cm4gdX1yZXR1cm4gbmV3IHlrKGwoImVuZCIpLGUpfWZ1bmN0aW9uIFl6cihlLHQ9e30pe2xldHtlbmNvZGU6cj1lbmNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOmk9JFd9PXQsYT10eXBlb2YgZT09Im9iamVjdCI/ZTpOVyhlLHQpLG49eExlKGEudG9rZW5zLGkscik7cmV0dXJuIGZ1bmN0aW9uKHM9e30pe2xldFtsLC4uLmNdPW4ocyk7aWYoYy5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcihgTWlzc2luZyBwYXJhbWV0ZXJzOiAke2Muam9pbigiLCAiKX1gKTtyZXR1cm4gbH19ZnVuY3Rpb24geExlKGUsdCxyKXtsZXQgaT1lLm1hcChhPT5aenIoYSx0LHIpKTtyZXR1cm4gYT0+e2xldCBuPVsiIl07Zm9yKGxldCBvIG9mIGkpe2xldFtzLC4uLmxdPW8oYSk7blswXSs9cyxuLnB1c2goLi4ubCl9cmV0dXJuIG59fWZ1bmN0aW9uIFp6cihlLHQscil7aWYoZS50eXBlPT09InRleHQiKXJldHVybigpPT5bZS52YWx1ZV07aWYoZS50eXBlPT09Imdyb3VwIil7bGV0IGE9eExlKGUudG9rZW5zLHQscik7cmV0dXJuIG49PntsZXRbbywuLi5zXT1hKG4pO3JldHVybiBzLmxlbmd0aD9bIiJdOltvXX19bGV0IGk9cnx8SVc7cmV0dXJuIGUudHlwZT09PSJ3aWxkY2FyZCImJnIhPT0hMT9hPT57bGV0IG49YVtlLm5hbWVdO2lmKG49PW51bGwpcmV0dXJuWyIiLGUubmFtZV07aWYoIUFycmF5LmlzQXJyYXkobil8fG4ubGVuZ3RoPT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtlLm5hbWV9IiB0byBiZSBhIG5vbi1lbXB0eSBhcnJheWApO3JldHVybltuLm1hcCgobyxzKT0+e2lmKHR5cGVvZiBvIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtlLm5hbWV9LyR7c30iIHRvIGJlIGEgc3RyaW5nYCk7cmV0dXJuIGkobyl9KS5qb2luKHQpXX06YT0+e2xldCBuPWFbZS5uYW1lXTtpZihuPT1udWxsKXJldHVyblsiIixlLm5hbWVdO2lmKHR5cGVvZiBuIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAiJHtlLm5hbWV9IiB0byBiZSBhIHN0cmluZ2ApO3JldHVybltpKG4pXX19ZnVuY3Rpb24gWHpyKGUsdD17fSl7bGV0e2RlY29kZTpyPWRlY29kZVVSSUNvbXBvbmVudCxkZWxpbWl0ZXI6aT0kV309dCx7cmVnZXhwOmEsa2V5czpufT15TGUoZSx0KSxvPW4ubWFwKHM9PnI9PT0hMT9JVzpzLnR5cGU9PT0icGFyYW0iP3I6bD0+bC5zcGxpdChpKS5tYXAocikpO3JldHVybiBmdW5jdGlvbihsKXtsZXQgYz1hLmV4ZWMobCk7aWYoIWMpcmV0dXJuITE7bGV0IHU9Y1swXSxkPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBoPTE7aDxjLmxlbmd0aDtoKyspe2lmKGNbaF09PT12b2lkIDApY29udGludWU7bGV0IGY9bltoLTFdLHg9b1toLTFdO2RbZi5uYW1lXT14KGNbaF0pfXJldHVybntwYXRoOnUscGFyYW1zOmR9fX1mdW5jdGlvbiB5TGUoZSx0PXt9KXtsZXR7ZGVsaW1pdGVyOnI9JFcsZW5kOmk9ITAsc2Vuc2l0aXZlOmE9ITEsdHJhaWxpbmc6bj0hMH09dCxvPVtdLHM9YT8iIjoiaSIsbD1bXTtmb3IobGV0IGQgb2Ygd0xlKGUsW10pKXtsZXQgaD10eXBlb2YgZD09Im9iamVjdCI/ZDpOVyhkLHQpO2ZvcihsZXQgZiBvZiB3ayhoLnRva2VucywwLFtdKSlsLnB1c2goUXpyKGYscixvLGgub3JpZ2luYWxQYXRoKSl9bGV0IGM9YF4oPzoke2wuam9pbigifCIpfSlgO3JldHVybiBuJiYoYys9YCg/OiR7YnMocil9JCk/YCksYys9aT8iJCI6YCg/PSR7YnMocil9fCQpYCx7cmVnZXhwOm5ldyBSZWdFeHAoYyxzKSxrZXlzOm99fWZ1bmN0aW9uIHdMZShlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCByIG9mIGUpd0xlKHIsdCk7ZWxzZSB0LnB1c2goZSk7cmV0dXJuIHR9ZnVuY3Rpb24qd2soZSx0LHIpe2lmKHQ9PT1lLmxlbmd0aClyZXR1cm4geWllbGQgcjtsZXQgaT1lW3RdO2lmKGkudHlwZT09PSJncm91cCIpZm9yKGxldCBhIG9mIHdrKGkudG9rZW5zLDAsci5zbGljZSgpKSl5aWVsZCp3ayhlLHQrMSxhKTtlbHNlIHIucHVzaChpKTt5aWVsZCp3ayhlLHQrMSxyKX1mdW5jdGlvbiBRenIoZSx0LHIsaSl7bGV0IGE9IiIsbj0iIixvPSEwO2ZvcihsZXQgcyBvZiBlKXtpZihzLnR5cGU9PT0idGV4dCIpe2ErPWJzKHMudmFsdWUpLG4rPXMudmFsdWUsb3x8KG89cy52YWx1ZS5pbmNsdWRlcyh0KSk7Y29udGludWV9aWYocy50eXBlPT09InBhcmFtInx8cy50eXBlPT09IndpbGRjYXJkIil7aWYoIW8mJiFuKXRocm93IG5ldyBuNihgTWlzc2luZyB0ZXh0IGJlZm9yZSAiJHtzLm5hbWV9IiAke3MudHlwZX1gLGkpO3MudHlwZT09PSJwYXJhbSI/YSs9YCgke0p6cih0LG8/IiI6bil9KylgOmErPSIoW1xcc1xcU10rKSIsci5wdXNoKHMpLG49IiIsbz0hMTtjb250aW51ZX19cmV0dXJuIGF9ZnVuY3Rpb24gSnpyKGUsdCl7cmV0dXJuIHQubGVuZ3RoPDI/ZS5sZW5ndGg8Mj9gW14ke2JzKGUrdCl9XWA6YCg/Oig/ISR7YnMoZSl9KVteJHticyh0KX1dKWA6ZS5sZW5ndGg8Mj9gKD86KD8hJHticyh0KX0pW14ke2JzKGUpfV0pYDpgKD86KD8hJHticyh0KX18JHticyhlKX0pW1xcc1xcU10pYH1mdW5jdGlvbiBNTGUoZSl7bGV0IHQ9IiIscj0wO2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGVDcihhKSYmdENyKGVbcl0pP2E6SlNPTi5zdHJpbmdpZnkoYSl9Zm9yKDtyPGUubGVuZ3RoOyl7bGV0IGE9ZVtyKytdO2lmKGEudHlwZT09PSJ0ZXh0Iil7dCs9R3pyKGEudmFsdWUpO2NvbnRpbnVlfWlmKGEudHlwZT09PSJncm91cCIpe3QrPWB7JHtNTGUoYS50b2tlbnMpfX1gO2NvbnRpbnVlfWlmKGEudHlwZT09PSJwYXJhbSIpe3QrPWA6JHtpKGEubmFtZSl9YDtjb250aW51ZX1pZihhLnR5cGU9PT0id2lsZGNhcmQiKXt0Kz1gKiR7aShhLm5hbWUpfWA7Y29udGludWV9dGhyb3cgbmV3IFR5cGVFcnJvcihgVW5rbm93biB0b2tlbiB0eXBlOiAke2EudHlwZX1gKX1yZXR1cm4gdH1mdW5jdGlvbiBLenIoZSl7cmV0dXJuIE1MZShlLnRva2Vucyl9ZnVuY3Rpb24gZUNyKGUpe2xldFt0LC4uLnJdPWU7cmV0dXJuIHZMZS50ZXN0KHQpJiZyLmV2ZXJ5KGk9PlBXLnRlc3QoaSkpfWZ1bmN0aW9uIHRDcihlKXtyZXR1cm4gZSYmZS50eXBlPT09InRleHQiPyFQVy50ZXN0KGUudmFsdWVbMF0pOiEwfX0pO3ZhciBGVyxPVz1wKCgpPT57X2YoKTt0MigpO0ZXPWVyKGtMZSgpLDEpfSk7dmFyIE1rLFNMZT1wKCgpPT57T1coKTtNaz1jbGFzc3tjb25zdHJ1Y3Rvcigpe31nZXRBbGxBc09iamVjdCgpe2xldCB0PW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyh0LmVudHJpZXMoKSl9c2V0UXVlcnlQYXJhbSh0LHIsaT0icmVwbGFjZSIpe3ZhciBhPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7YS5zZXQodCxyKSxpPT09InB1c2giP2hpc3RvcnkucHVzaFN0YXRlKG51bGwsbnVsbCwiPyIrYS50b1N0cmluZygpKTpoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLG51bGwsIj8iK2EudG9TdHJpbmcoKSl9ZGVsZXRlUXVlcnlQYXJhbSh0LHI9InJlcGxhY2UiKXt2YXIgaT1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO2kuZGVsZXRlKHQpLHI9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IitpLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIraS50b1N0cmluZygpKX1nZXRRdWVyeVBhcmFtKHQpe3JldHVybiB0aGlzLmdldEFsbEFzT2JqZWN0KClbdF19fX0pO3ZhciBBVzEsUlcsekxlPXAoKCk9PntPVygpO1NMZSgpO0FXMT1lPT57Y29uc29sZS5sb2coYCVjW1JvdXRlcl0lYyAke2V9YCwiY29sb3I6IHJnYigyNTUsIDEwNSwgMTAwKTsiLCJjb2xvcjogaW5oZXJpdCIpfSxSVz1jbGFzcyBle2NvbnN0cnVjdG9yKHQscj0iIil7dGhpcy5vcHRpb25zPXtkZWJ1ZzohMX0sdGhpcy5xdWVyeVBhcmFtcz1uZXcgTWssdGhpcy5yb3V0ZXM9W10sdGhpcy5vcHRpb25zPXsuLi50aGlzLm9wdGlvbnMsLi4udH0sdGhpcy5iYXNlUGF0aD1yLHRoaXMucG9wc3RhdGVMaXN0ZW5lcj1pPT57aS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2hhbmRsZVJvdXRlU3RhdGUoKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0aGlzLnBvcHN0YXRlTGlzdGVuZXIpfWNyZWF0ZVN1YlJvdXRlcih0LHIpe2xldCBpPWAke3RoaXMuYmFzZVBhdGh9JHt0fWA7cmV0dXJuIG5ldyBlKHsuLi50aGlzLm9wdGlvbnMsLi4ucn0saSl9YXN5bmMgcHVzaFVybCh0PSIvIixyPXt9KXtsZXQgaT1gJHt0aGlzLmJhc2VQYXRofSR7dH1gO2khPT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU/d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHIsd2luZG93LmRvY3VtZW50LnRpdGxlLGkpOndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShyLHdpbmRvdy5kb2N1bWVudC50aXRsZSxpKSxhd2FpdCB0aGlzLl9oYW5kbGVSb3V0ZVN0YXRlKCl9b24odCxyKXtsZXQgaT1gJHt0aGlzLmJhc2VQYXRofSR7dH1gLGE9e21hdGNoRnVuY3Rpb246RlcubWF0Y2goaSksaGFuZGxlcjpyfTtyZXR1cm4gdGhpcy5yb3V0ZXMucHVzaChhKSwoKT0+e3RoaXMucm91dGVzLnNwbGljZSh0aGlzLnJvdXRlcy5pbmRleE9mKGEpLDEpfX1hc3luYyBfaGFuZGxlUm91dGVTdGF0ZSgpe2xldCB0PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxyPXRoaXMucm91dGVzLmZpbHRlcihpPT4hIWkubWF0Y2hGdW5jdGlvbih0KSk7Zm9yKGxldCBpIG9mIHIpe2xldCBhPWkubWF0Y2hGdW5jdGlvbih0KTtpLmhhbmRsZXIoey4uLmEudmFsdWVPZigpLHF1ZXJ5UGFyYW1zOnRoaXMucXVlcnlQYXJhbXMuZ2V0QWxsQXNPYmplY3QoKX0pfX1kZXN0cm95KCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0aGlzLnBvcHN0YXRlTGlzdGVuZXIpLHRoaXMucm91dGVzPVtdfX19KTt2YXIgVDA9e307RmUoVDAse1NtYXJ0Um91dGVyOigpPT5SV30pO3ZhciBCVz1wKCgpPT57ekxlKCl9KTt2YXIgQ0xlPXAoKCk9PntRNSgpO2F1KCl9KTtmdW5jdGlvbiB2cyhlLHQpe3JldHVybiBlPj4+dHxlPDwzMi10fWZ1bmN0aW9uIG9DcihlLHQpe2xldCByPXRbMF0saT10WzFdLGE9dFsyXSxuPXRbM10sbz10WzRdLHM9dFs1XSxsPXRbNl0sYz10WzddO2ZvcihsZXQgdT0wO3U8NjQ7dSsrKXtpZih1Pj0xNil7bGV0IHk9dnMoZVt1LTE1XSw3KV52cyhlW3UtMTVdLDE4KV5lW3UtMTVdPj4+Myx3PXZzKGVbdS0yXSwxNylednMoZVt1LTJdLDE5KV5lW3UtMl0+Pj4xMDtlW3VdPWVbdS0xNl0reStlW3UtN10rdz4+PjB9bGV0IGQ9dnMobyw2KV52cyhvLDExKV52cyhvLDI1KSxoPW8mc15+byZsLGY9YytkK2grYUNyW3VdK2VbdV0+Pj4wLHg9dnMociwyKV52cyhyLDEzKV52cyhyLDIyKSx2PXImaV5yJmFeaSZhLGI9eCt2Pj4+MDtjPWwsbD1zLHM9byxvPW4rZj4+PjAsbj1hLGE9aSxpPXIscj1mK2I+Pj4wfXRbMF09dFswXStyPj4+MCx0WzFdPXRbMV0raT4+PjAsdFsyXT10WzJdK2E+Pj4wLHRbM109dFszXStuPj4+MCx0WzRdPXRbNF0rbz4+PjAsdFs1XT10WzVdK3M+Pj4wLHRbNl09dFs2XStsPj4+MCx0WzddPXRbN10rYz4+PjB9ZnVuY3Rpb24gSFcoZSl7bGV0IHQ9Wy4uLm5Dcl0scj1lLmxlbmd0aCxpPXIqOCxhPXIlNjQ8NTY/NTYtciU2NDoxMjAtciU2NCxuPW5ldyBVaW50OEFycmF5KHIrYSs4KTtuLnNldChlKSxuW3JdPTEyODtsZXQgbz1uZXcgRGF0YVZpZXcobi5idWZmZXIpO28uc2V0VWludDMyKG4ubGVuZ3RoLTgsMCwhMSksby5zZXRVaW50MzIobi5sZW5ndGgtNCxpPj4+MCwhMSk7Zm9yKGxldCBsPTA7bDxuLmxlbmd0aDtsKz02NCl7bGV0IGM9bmV3IEFycmF5KDY0KTtmb3IobGV0IHU9MDt1PDE2O3UrKyljW3VdPW8uZ2V0VWludDMyKGwrdSo0LCExKTtvQ3IoYyx0KX1sZXQgcz0iIjtmb3IobGV0IGw9MDtsPDg7bCsrKXMrPXRbbF0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKTtyZXR1cm4gc312YXIgYUNyLG5DcixUTGU9cCgoKT0+e2FDcj1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxuQ3I9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XX0pO3ZhciBGNz17fTtGZShGNyx7bWQ1RnJvbVN0cmluZzooKT0+cENyLHNoYTI1NkZyb21CdWZmZXI6KCk9PmxDcixzaGEyNTZGcm9tRmlsZTooKT0+dUNyLHNoYTI1NkZyb21TdHJlYW06KCk9PmRDcixzaGEyNTZGcm9tU3RyaW5nOigpPT5BTGUsc2hhMjU2RnJvbVN0cmluZ1N5bmM6KCk9PnNDcixzaGEyNjVGcm9tT2JqZWN0OigpPT5jQ3J9KTt2YXIgX0xlLExMZSxBTGUsc0NyLGxDcixjQ3IsZENyLHVDcixwQ3IsRExlPXAoKCk9PntDTGUoKTtUTGUoKTtfTGU9ZT0+e2xldCB0PVtdLHI9bmV3IERhdGFWaWV3KGUpO2ZvcihsZXQgaT0wO2k8ci5ieXRlTGVuZ3RoO2krPTQpe2xldCBuPXIuZ2V0VWludDMyKGkpLnRvU3RyaW5nKDE2KSxvPSIwMDAwMDAwMCIscz0obytuKS5zbGljZSgtby5sZW5ndGgpO3QucHVzaChzKX1yZXR1cm4gdC5qb2luKCIiKX0sTExlPSgpPT50eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnN1YnRsZSE9PXZvaWQgMCxBTGU9YXN5bmMgZT0+e2xldCB0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKTtpZihMTGUoKSl7bGV0IHI9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLHQpO3JldHVybiBfTGUocil9ZWxzZSByZXR1cm4gSFcodCl9LHNDcj1lPT57dGhyb3cgY29uc29sZS53YXJuKCJzaGEyNTZGcm9tU3RyaW5nU3luYyBpcyBub3QgdHJ1bHkgc3luY2hyb25vdXMgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpLG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50LiBVc2Ugc2hhMjU2RnJvbVN0cmluZyBpbnN0ZWFkLiIpfSxsQ3I9YXN5bmMgZT0+e2lmKExMZSgpKXtsZXQgdDtpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSl7bGV0IGE9ZTt0PWEuYnVmZmVyLnNsaWNlKGEuYnl0ZU9mZnNldCxhLmJ5dGVPZmZzZXQrYS5ieXRlTGVuZ3RoKX1lbHNlIHQ9ZTtsZXQgcj1hd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsdCk7cmV0dXJuIF9MZShyKX1lbHNle2xldCB0PWUgaW5zdGFuY2VvZiBVaW50OEFycmF5P2U6bmV3IFVpbnQ4QXJyYXkoZSk7cmV0dXJuIEhXKHQpfX0sY0NyPWFzeW5jIGU9PntsZXQgdD12MS5zdHJpbmdpZnkoZSk7cmV0dXJuIGF3YWl0IEFMZSh0KX0sZENyPWU9Pnt0aHJvdyBuZXcgRXJyb3IoInNoYTI1NkZyb21TdHJlYW0gaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50Iil9LHVDcj1hc3luYyBlPT57dGhyb3cgbmV3IEVycm9yKCJzaGEyNTZGcm9tRmlsZSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0scENyPWFzeW5jIGU9Pnt0aHJvdyBuZXcgRXJyb3IoIm1kNUZyb21TdHJpbmcgaXMgbm90IHN1cHBvcnRlZCBpbiBicm93c2VyIGVudmlyb25tZW50LiBXZWIgQ3J5cHRvIEFQSSBkb2VzIG5vdCBzdXBwb3J0IE1ENS4iKX19KTt2YXIgRUxlPXAoKCk9PntzYSgpfSk7dmFyICRMZT1wKCgpPT57fSk7dmFyIHFXLElMZT1wKCgpPT57RUxlKCk7JExlKCk7cVc9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRlZFNjcmlwdHM9W119YXN5bmMgZ2V0RW52QXdhcmVNb2R1bGUodCl7aWYodGhpcy5pc05vZGUpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUodC5ub2RlTW9kdWxlTmFtZSk7aWYodGhpcy5pc0Jyb3dzZXIpcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZVdlYk1vZHVsZSh0LndlYlVybEFyZyx0LmdldEZ1bmN0aW9uKTtjb25zb2xlLmVycm9yKCJwbGF0Zm9ybSBmb3IgbG9hZGluZyBub3Qgc3VwcG9ydGVkIGJ5IHNtYXJ0ZW52Iil9YXN5bmMgZ2V0U2FmZU5vZGVNb2R1bGUodCxyKXtpZighdGhpcy5pc05vZGUmJiF0aGlzLmlzRGVubyYmIXRoaXMuaXNCdW4pe2NvbnNvbGUuZXJyb3IoYFlvdSB0cmllZCB0byBsb2FkIGEgc2VydmVyIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7dH0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCBpPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHt0fScpYCkoKTtyZXR1cm4gciYmYXdhaXQgcihpKSxpfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUodCxyKXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKHQpKXJldHVybiByKCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2godCk7bGV0IGk9S2UuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKHQpLGkucmVzb2x2ZSgpO2Vsc2V7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5vbmxvYWQ9KCk9PntpLnJlc29sdmUoKX0sYS5zcmM9dCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpfXJldHVybiBhd2FpdCBpLnByb21pc2UscigpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBnbG9iYWxUaGlzLkRlbm88InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcy5EZW5vPy52ZXJzaW9uPCJ1Ij8iZGVubyI6dHlwZW9mIGdsb2JhbFRoaXMuQnVuPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuQnVuPy52ZXJzaW9uPCJ1Ij8iYnVuIjp0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/Lm5vZGU8InUiPyJub2RlIjoodHlwZW9mIGdsb2JhbFRoaXMud2luZG93PCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuZG9jdW1lbnQ8InUiLCJicm93c2VyIil9Z2V0IGlzQnJvd3Nlcigpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iYnJvd3NlciJ9Z2V0IGlzTm9kZSgpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0ibm9kZSJ9Z2V0IGlzRGVubygpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iZGVubyJ9Z2V0IGlzQnVuKCl7cmV0dXJuIHRoaXMucnVudGltZUVudj09PSJidW4ifWdldCB1c2VyQWdlbnQoKXtyZXR1cm4gdGhpcy5pc0Jyb3dzZXI/bmF2aWdhdG9yLnVzZXJBZ2VudDoidW5kZWZpbmVkIn1nZXQgbm9kZVZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc05vZGU/cHJvY2Vzcy52ZXJzaW9uOiJ1bmRlZmluZWQifWdldCBkZW5vVmVyc2lvbigpe3JldHVybiB0aGlzLmlzRGVubz9nbG9iYWxUaGlzLkRlbm8udmVyc2lvbi5kZW5vOiJ1bmRlZmluZWQifWdldCBidW5WZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNCdW4/Z2xvYmFsVGhpcy5CdW4udmVyc2lvbjoidW5kZWZpbmVkIn1hc3luYyBnZXRTYWZlTW9kdWxlRm9yKHQscixpKXtsZXQgYTtpZihBcnJheS5pc0FycmF5KHQpP2E9dC5mbGF0TWFwKG49Pm49PT0ic2VydmVyIj9bIm5vZGUiLCJkZW5vIiwiYnVuIl06W25dKTp0PT09InNlcnZlciI/YT1bIm5vZGUiLCJkZW5vIiwiYnVuIl06YT1bdF0sIWEuaW5jbHVkZXModGhpcy5ydW50aW1lRW52KSl7Y29uc29sZS53YXJuKGBNb2R1bGUgIiR7cn0iIHJlcXVlc3RlZCBmb3IgcnVudGltZShzKSBbJHthLmpvaW4oIiwgIil9XSBidXQgY3VycmVudCBydW50aW1lIGlzICIke3RoaXMucnVudGltZUVudn0iLiBTa2lwcGluZyBsb2FkLmApO3JldHVybn1pZih0aGlzLmlzTm9kZXx8dGhpcy5pc0Rlbm98fHRoaXMuaXNCdW4pcmV0dXJuIGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUocik7aWYodGhpcy5pc0Jyb3dzZXIpe2lmKCFpKXtjb25zb2xlLmVycm9yKGBCcm93c2VyIG1vZHVsZSBsb2FkIHJlcXVpcmVzIGdldEZ1bmN0aW9uIHBhcmFtZXRlciBmb3IgIiR7cn0iYCk7cmV0dXJufXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUocixpKX19Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6dGhpcy5pc0Rlbm8/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIERFTk8iKSxjb25zb2xlLmxvZygiZGVubyB2ZXJzaW9uIGlzICIrdGhpcy5kZW5vVmVyc2lvbikpOnRoaXMuaXNCdW4/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJVTiIpLGNvbnNvbGUubG9nKCJidW4gdmVyc2lvbiBpcyAiK3RoaXMuYnVuVmVyc2lvbikpOihjb25zb2xlLmxvZygicnVubmluZyBvbiBCUk9XU0VSIiksY29uc29sZS5sb2coImJyb3dzZXIgaXMgIit0aGlzLnVzZXJBZ2VudCkpfX19KTt2YXIgalc9e307RmUoalcse1NtYXJ0ZW52OigpPT5xV30pO3ZhciBQTGU9cCgoKT0+e0lMZSgpfSk7dmFyIGtrLE5MZSxTayxWVz1wKCgpPT57UExlKCk7T2YoKTtraz1lcihIcSgpLDEpLE5MZT1lcihxcSgpLDEpLFNrPU5MZS5kZWZhdWx0fSk7ZnVuY3Rpb24gbUNyKGUpe3JldHVybiB0eXBlb2YgQnVmZmVyPCJ1Ij9CdWZmZXIuZnJvbShlKS50b1N0cmluZygiYmFzZTY0Iik6YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmUpKX1mdW5jdGlvbiBnQ3IoZSl7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCB0PUJ1ZmZlci5mcm9tKGUsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGUpKS5tYXAodD0+dC5jaGFyQ29kZUF0KDApKSl9ZnVuY3Rpb24gV1coZSx0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSx6ayx0KX1mdW5jdGlvbiBHVyhlKXtyZXR1cm4gSlNPTi5wYXJzZShlLEZMZSl9ZnVuY3Rpb24gYkNyKGUpe3JldHVybiBSTGUoZSkmJmUudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmVVcoZS5kYXRhKX1mdW5jdGlvbiB2Q3IoZSl7cmV0dXJuIFJMZShlKSYmZS50eXBlPT09IkJ1ZmZlciImJihPTGUoZS5kYXRhKXx8VVcoZS5kYXRhKSl8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIE9MZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBVVyhlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmcifWZ1bmN0aW9uIFJMZShlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbH12YXIgemssRkxlLEJMZT1wKCgpPT57VlcoKTt6az0oZSx0KT0+e2lmKHZDcih0KSl7bGV0IHI7aWYoImRhdGEiaW4gdCYmT0xlKHQuZGF0YSkpcj1uZXcgVWludDhBcnJheSh0LmRhdGEpO2Vsc2UgaWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcj10O2Vsc2UgcmV0dXJuIHQ7cmV0dXJue3R5cGU6IkVuY29kZWRCdWZmZXIiLGRhdGE6ImJhc2U2NDoiK21DcihyKX19cmV0dXJuIHR9LEZMZT0oZSx0KT0+e2lmKGJDcih0KSYmVVcodC5kYXRhKSYmdC5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHI9dC5kYXRhLnNsaWNlKDcpO3JldHVybiBnQ3Iocil9cmV0dXJuIHR9fSk7dmFyIE83PXt9O0ZlKE83LHtTbWFydGpzb246KCk9PlpXLGRlZXBFcXVhbEpzb25MU3RyaW5nczooKT0+Q0NyLGRlZXBFcXVhbE9iamVjdHM6KCk9PkhMZSxmb2xkRGVjOigpPT56Q3IscGFyc2U6KCk9PkNrLHBhcnNlQmFzZTY0OigpPT5TQ3IscGFyc2VKc29uTDooKT0+WVcsc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT53Q3Isc3RyaW5naWZ5OigpPT5vNixzdHJpbmdpZnlCYXNlNjQ6KCk9PmtDcixzdHJpbmdpZnlKc29uTDooKT0+eUNyLHN0cmluZ2lmeVByZXR0eTooKT0+TUNyfSk7dmFyIENrLFlXLHlDcix3Q3IsbzYsTUNyLGtDcixTQ3IsWlcsekNyLEhMZSxDQ3IscUxlPXAoKCk9PntWVygpO0JMZSgpO0NrPUdXLFlXPWU9PmUuc3BsaXQoYApgKS5yZWR1Y2UoKGksYSk9PntsZXQgbj1hLnRyaW0oKTtyZXR1cm4gbi5sZW5ndGg+MCYmaS5wdXNoKENrKG4pKSxpfSxbXSkseUNyPWU9PmUubWFwKHQ9Pm82KHQpKS5qb2luKGAKYCksd0NyPShlLHQscj17fSk9PntsZXQgaT1uZXcgV2Vha1NldCxhPXM9PntpZihzPT09bnVsbHx8dHlwZW9mIHMhPSJvYmplY3QiKXJldHVybiBzO2xldCBsPXprKCIiLHMpO2lmKGwmJmwudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmdHlwZW9mIGwuZGF0YT09InN0cmluZyIpcmV0dXJuIGw7aWYoaS5oYXMocykpcmV0dXJuIl9fY3ljbGVfXyI7aWYoaS5hZGQocyksQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gcy5tYXAodT0+YSh1KSk7bGV0IGM9e307Zm9yKGxldCB1IG9mIE9iamVjdC5rZXlzKHMpKXRyeXtjW3VdPWEoc1t1XSl9Y2F0Y2h7Y1t1XT0iX191bnNlcmlhbGl6YWJsZV9fIn1yZXR1cm4gY30sbj1hKGUpLG89ey4uLnIsY3ljbGVzOiEwfTtpZih0JiYhby5jbXApe2xldCBzPW5ldyBNYXA7dC5mb3JFYWNoKChsLGMpPT5zLnNldChsLGMpKSxvLmNtcD0obCxjKT0+e2xldCB1PXMuaGFzKGwua2V5KT9zLmdldChsLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGQ9cy5oYXMoYy5rZXkpP3MuZ2V0KGMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIHUhPT1kP3UtZDpsLmtleTxjLmtleT8tMTpsLmtleT5jLmtleT8xOjB9fXJldHVybiBTayhuLG8pfSxvNj0oZSx0LHI9e30pPT57bGV0IGk9V1coZSk7ZT1KU09OLnBhcnNlKGkpO2xldCBhPXsuLi5yfTtpZih0JiYhYS5jbXApe2xldCBvPW5ldyBNYXA7dC5mb3JFYWNoKChzLGwpPT5vLnNldChzLGwpKSxhLmNtcD0ocyxsKT0+e2xldCBjPW8uaGFzKHMua2V5KT9vLmdldChzLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHU9by5oYXMobC5rZXkpP28uZ2V0KGwua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGMhPT11P2MtdTpzLmtleTxsLmtleT8tMTpzLmtleT5sLmtleT8xOjB9fXJldHVybiBTayhlLGEpfSxNQ3I9ZT0+e2xldCB0PW82KGUpLHI9SlNPTi5wYXJzZSh0KTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkocixudWxsLDIpfSxrQ3I9KC4uLmUpPT57bGV0IHQ9bzYoLi4uZSk7cmV0dXJuIGdhLmJhc2U2NC5lbmNvZGVVcmkodCl9LFNDcj1lPT57bGV0IHQ9Z2EuYmFzZTY0LGk9KHQuZGVjb2RlVXJpfHx0LmRlY29kZSkoZSk7cmV0dXJuIENrKGkpfSxaVz1jbGFzcyBle3N0YXRpYyBlbmZvbGRGcm9tT2JqZWN0KHQpe2xldCByPW5ldyB0aGlzLGk9ci5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgYSBpbiB0KWkuaW5kZXhPZihhKSE9PS0xJiYoclthXT10W2FdKTtyZXR1cm4gcn1zdGF0aWMgZW5mb2xkRnJvbUpzb24odCl7bGV0IHI9Q2sodCk7cmV0dXJuIHRoaXMuZW5mb2xkRnJvbU9iamVjdChyKX1zYXZlYWJsZVByb3BlcnRpZXM7Zm9sZFRvT2JqZWN0KCl7bGV0IHQ9bmV3IFNldDtyZXR1cm4gdC5hZGQodGhpcyksdGhpcy5mb2xkVG9PYmplY3RJbnRlcm5hbCh0KX1mb2xkVG9PYmplY3RJbnRlcm5hbCh0KXtsZXQgcj17fSxpPW49PntpZihuIGluc3RhbmNlb2YgZSl7aWYodC5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJjeWNsZSBkZXRlY3RlZCIpO3JldHVybiB0LmFkZChuKSxuLmZvbGRUb09iamVjdEludGVybmFsKHQpfXJldHVybiBBcnJheS5pc0FycmF5KG4pP24ubWFwKG89PmkobykpOmtrLmRlZmF1bHQobil9LGE9dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgbiBvZiBhKXtsZXQgbz10aGlzW25dO3Jbbl09aShvKX1yZXR1cm4gcn1mb2xkVG9Kc29uKCl7bGV0IHQ9dGhpcy5mb2xkVG9PYmplY3QoKTtyZXR1cm4gbzYodCl9fSx6Q3I9KCk9PihlLHQpPT57bGV0IHI9U3RyaW5nKHQubmFtZSk7dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbigpe3RoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHwodGhpcy5zYXZlYWJsZVByb3BlcnRpZXM9W10pLHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLmluY2x1ZGVzKHIpfHx0aGlzLnNhdmVhYmxlUHJvcGVydGllcy5wdXNoKHIpfSl9LEhMZT0oZSx0KT0+e2xldCByPW82KGUpLGk9bzYodCk7cmV0dXJuIHI9PT1pfSxDQ3I9KGUsdCk9PntsZXQgcj1ZVyhlKSxpPVlXKHQpO3JldHVybiBITGUocixpKX19KTt2YXIgVGs9cCgoKT0+e0RMZSgpO3FMZSgpO3NhKCk7dDIoKTtVZigpfSk7dmFyIFI3LFhXPXAoKCk9PntUaygpO19rKCk7Ujc9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnN0YXRlUGFydFJlZj10LHRoaXMuYWN0aW9uRGVmPXJ9dHJpZ2dlcih0KXtyZXR1cm4gdGhpcy5zdGF0ZVBhcnRSZWYuZGlzcGF0Y2hBY3Rpb24odGhpcyx0KX19fSk7dmFyIEI3LF9rPXAoKCk9PntUaygpO1hXKCk7Qjc9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnN0YXRlPW5ldyBpci5yeGpzLlN1YmplY3QsdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQ9S2UuY3VtdWxhdGl2ZURlZmVyKCksdGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1udWxsLHRoaXMud2ViU3RvcmU9bnVsbCx0aGlzLm5hbWU9dCxyJiYodGhpcy53ZWJTdG9yZU9wdGlvbnM9cil9YXN5bmMgaW5pdCgpe2lmKHRoaXMud2ViU3RvcmVPcHRpb25zKXt0aGlzLndlYlN0b3JlPW5ldyBqYS5XZWJTdG9yZSh0aGlzLndlYlN0b3JlT3B0aW9ucyksYXdhaXQgdGhpcy53ZWJTdG9yZS5pbml0KCk7bGV0IHQ9YXdhaXQgdGhpcy53ZWJTdG9yZS5nZXQoU3RyaW5nKHRoaXMubmFtZSkpO3QmJnRoaXMudmFsaWRhdGVTdGF0ZSh0KSYmKHRoaXMuc3RhdGVTdG9yZT10LGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCkpfX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLnN0YXRlU3RvcmV9YXN5bmMgc2V0U3RhdGUodCl7aWYoIXRoaXMudmFsaWRhdGVTdGF0ZSh0KSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc3RhdGUgc3RydWN0dXJlIGZvciBzdGF0ZSBwYXJ0ICcke3RoaXMubmFtZX0nYCk7cmV0dXJuIHRoaXMud2ViU3RvcmUmJmF3YWl0IHRoaXMud2ViU3RvcmUuc2V0KFN0cmluZyh0aGlzLm5hbWUpLHQpLHRoaXMuc3RhdGVTdG9yZT10LGF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCksdGhpcy5zdGF0ZVN0b3JlfXZhbGlkYXRlU3RhdGUodCl7cmV0dXJuIHQhPW51bGx9YXN5bmMgbm90aWZ5Q2hhbmdlKCl7aWYoIXRoaXMuc3RhdGVTdG9yZSlyZXR1cm47bGV0IHI9YXdhaXQoYXN5bmMgaT0+YXdhaXQgRjcuc2hhMjU2RnJvbVN0cmluZyhPNy5zdGFibGVPbmVXYXlTdHJpbmdpZnkoaSkpKSh0aGlzLnN0YXRlU3RvcmUpO3RoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2gmJnI9PT10aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNofHwodGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaD1yLHRoaXMuc3RhdGUubmV4dCh0aGlzLnN0YXRlU3RvcmUpKX1ub3RpZnlDaGFuZ2VDdW11bGF0aXZlKCl7dGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbiYmY2xlYXJUaW1lb3V0KHRoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24pLHRoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb249c2V0VGltZW91dChhc3luYygpPT57dGhpcy5wZW5kaW5nQ3VtdWxhdGl2ZU5vdGlmaWNhdGlvbj1udWxsLHRoaXMuc3RhdGVTdG9yZSYmYXdhaXQgdGhpcy5ub3RpZnlDaGFuZ2UoKX0sMCl9c2VsZWN0KHQpe3JldHVybiB0fHwodD1pPT5pKSx0aGlzLnN0YXRlLnBpcGUoaXIucnhqcy5vcHMuc3RhcnRXaXRoKHRoaXMuZ2V0U3RhdGUoKSksaXIucnhqcy5vcHMuZmlsdGVyKGk9PmkhPT12b2lkIDApLGlyLnJ4anMub3BzLm1hcChpPT57dHJ5e3JldHVybiB0KGkpfWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoYFNlbGVjdG9yIGVycm9yIGluIHN0YXRlIHBhcnQgJyR7dGhpcy5uYW1lfSc6YCxhKTtyZXR1cm59fSkpfWNyZWF0ZUFjdGlvbih0KXtyZXR1cm4gbmV3IFI3KHRoaXMsdCl9YXN5bmMgZGlzcGF0Y2hBY3Rpb24odCxyKXthd2FpdCB0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZC5wcm9taXNlO2xldCBpPWF3YWl0IHQuYWN0aW9uRGVmKHRoaXMscik7cmV0dXJuIGF3YWl0IHRoaXMuc2V0U3RhdGUoaSksdGhpcy5nZXRTdGF0ZSgpfWFzeW5jIHdhaXRVbnRpbFByZXNlbnQodCxyKXtsZXQgaT1LZS5kZWZlcigpLGE9dGhpcy5zZWxlY3QodCksbj0hMSxvPWEuc3Vic2NyaWJlKGw9PntsJiYhbiYmKG49ITAsaS5yZXNvbHZlKGwpKX0pLHM7ciYmKHM9c2V0VGltZW91dCgoKT0+e258fChuPSEwLG8udW5zdWJzY3JpYmUoKSxpLnJlamVjdChuZXcgRXJyb3IoYHdhaXRVbnRpbFByZXNlbnQgdGltZWQgb3V0IGFmdGVyICR7cn1tc2ApKSl9LHIpKTt0cnl7cmV0dXJuIGF3YWl0IGkucHJvbWlzZX1maW5hbGx5e28udW5zdWJzY3JpYmUoKSxzJiZjbGVhclRpbWVvdXQocyl9fWFzeW5jIHN0YXRlU2V0dXAodCl7bGV0IHI9dCh0aGlzKTt0aGlzLmN1bXVsYXRpdmVEZWZlcnJlZC5hZGRQcm9taXNlKHIpLGF3YWl0IHRoaXMuc2V0U3RhdGUoYXdhaXQgcil9fX0pO3ZhciBRVyxqTGU9cCgoKT0+e1RrKCk7X2soKTtRVz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGVQYXJ0TWFwPXt9LHRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uPW5ldyBNYXB9YXN5bmMgZ2V0U3RhdGVQYXJ0KHQscixpPSJzb2Z0Iil7bGV0IGE9dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZ2V0KHQpO2lmKGEpcmV0dXJuIGE7bGV0IG49dGhpcy5zdGF0ZVBhcnRNYXBbdF07aWYobilzd2l0Y2goaSl7Y2FzZSJtYW5kYXRvcnkiOnRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHt0fScgYWxyZWFkeSBleGlzdHMsIGJ1dCBpbml0TW9kZSBpcyAnbWFuZGF0b3J5J2ApO2Nhc2UiZm9yY2UiOmJyZWFrO2RlZmF1bHQ6cmV0dXJuIG59ZWxzZSBpZighcil0aHJvdyBuZXcgRXJyb3IoYFN0YXRlIHBhcnQgJyR7dH0nIGRvZXMgbm90IGV4aXN0IGFuZCBubyBpbml0aWFsIHN0YXRlIHByb3ZpZGVkYCk7bGV0IG89dGhpcy5jcmVhdGVTdGF0ZVBhcnQodCxyLGkpO3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLnNldCh0LG8pO3RyeXtyZXR1cm4gYXdhaXQgb31maW5hbGx5e3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLmRlbGV0ZSh0KX19YXN5bmMgY3JlYXRlU3RhdGVQYXJ0KHQscixpPSJzb2Z0Iil7bGV0IGE9bmV3IEI3KHQsaT09PSJwZXJzaXN0ZW50Ij97ZGJOYW1lOiJzbWFydHN0YXRlIixzdG9yZU5hbWU6dH06bnVsbCk7YXdhaXQgYS5pbml0KCk7bGV0IG49YS5nZXRTdGF0ZSgpO3JldHVybiBpPT09InBlcnNpc3RlbnQiJiZuIT09dm9pZCAwP2F3YWl0IGEuc2V0U3RhdGUoey4uLnIsLi4ubn0pOmF3YWl0IGEuc2V0U3RhdGUociksdGhpcy5zdGF0ZVBhcnRNYXBbdF09YSxhfX19KTt2YXIgXzA9e307RmUoXzAse1NtYXJ0c3RhdGU6KCk9PlFXLFN0YXRlQWN0aW9uOigpPT5SNyxTdGF0ZVBhcnQ6KCk9PkI3fSk7dmFyIEpXPXAoKCk9PntqTGUoKTtfaygpO1hXKCl9KTt2YXIgVkxlPXAoKCk9Pnt9KTt2YXIgS1csVUxlPXAoKCk9PntWTGUoKTtLVz1jbGFzcyBle3N0YXRpYyBjcmVhdGVGcm9tVXJsKHQscil7bGV0IGk9bmV3IFVSTCh0KSxhPXt9LG49W107aS5zZWFyY2gmJmkuc2VhcmNoLnJlcGxhY2UoIj8iLCIiKS5zcGxpdCgiJiIpLm1hcChjPT57bi5wdXNoKHtrZXk6Yy5zcGxpdCgiPSIpWzBdLHZhbHVlOmMuc3BsaXQoIj0iKVsxXX0pfSk7Zm9yKGxldCBjIG9mIG4pYVtjLmtleV09Yy52YWx1ZTtpZihyPy5zZWFyY2hQYXJhbXMpZm9yKGxldCBjIG9mIE9iamVjdC5rZXlzKHIuc2VhcmNoUGFyYW1zKSlhW2NdPXIuc2VhcmNoUGFyYW1zW2NdO2xldCBvPWkucGF0aG5hbWV8fCIiO2lmKE9iamVjdC5rZXlzKGEpLmxlbmd0aD4wKXtvKz0iPyI7bGV0IGM9ITA7Zm9yKGxldCB1IG9mIE9iamVjdC5rZXlzKGEpKWM/Yz0hMTpvKz0iJiIsbys9YCR7dX09JHthW3VdfWB9bGV0IHM9ey4uLmksaHJlZjppLmhyZWYsb3JpZ2luOmkub3JpZ2luLHByb3RvY29sOmkucHJvdG9jb2wsdXNlcm5hbWU6aS51c2VybmFtZSxwYXNzd29yZDppLnBhc3N3b3JkLGhvc3Q6aS5ob3N0LGhvc3RuYW1lOmkuaG9zdG5hbWUscG9ydDppLnBvcnQscGF0aDpvLHBhdGhuYW1lOmkucGF0aG5hbWUsc2VhcmNoOmkuc2VhcmNoLHNlYXJjaFBhcmFtczphLGhhc2g6aS5oYXNofTshcy5wb3J0JiZzLnByb3RvY29sPT09Imh0dHBzOiImJihzLnBvcnQ9IjQ0MyIpLCFzLnBvcnQmJnMucHJvdG9jb2w9PT0iaHR0cDoiJiYocy5wb3J0PSI4MCIpO2xldCBsPW5ldyBlO3JldHVybiBPYmplY3QuYXNzaWduKGwscyksbH1zdGF0aWMgY3JlYXRlRnJvbVBhcnNlZFVybCh0KXtsZXQgcj1uZXcgZTtyZXR1cm4gT2JqZWN0LmFzc2lnbihyLHQpLHJ9Y29uc3RydWN0b3IoKXt0aGlzLnNlYXJjaFBhcmFtcz17fX1jbG9uZSgpe2xldCB0PW5ldyBlO3JldHVybiBPYmplY3QuYXNzaWduKHQsdGhpcyksdC5zZWFyY2hQYXJhbXM9ey4uLnRoaXMuc2VhcmNoUGFyYW1zfSx0fXNldCh0LHIpe3JldHVybiB0aGlzW3RdPXIsdGhpc310b1N0cmluZygpe2xldCB0PSIiO3JldHVybiB0aGlzLnVzZXJuYW1lJiYhdGhpcy5wYXNzd29yZCYmKHQ9YCR7dGhpcy51c2VybmFtZX1AYCksdGhpcy51c2VybmFtZSYmdGhpcy5wYXNzd29yZCYmKHQ9YCR7dGhpcy51c2VybmFtZX06JHt0aGlzLnBhc3N3b3JkfUBgKSxgJHt0aGlzLnByb3RvY29sfS8vJHt0fSR7dGhpcy5ob3N0bmFtZX06JHt0aGlzLnBvcnR9JHt0aGlzLnBhdGh9YH19fSk7dmFyIEwwPXt9O0ZlKEwwLHtTbWFydHVybDooKT0+S1d9KTt2YXIgZUc9cCgoKT0+e1VMZSgpfSk7dmFyIFdMZT1wKCgpPT57WTIoKTtRNSgpO2F1KCk7c2EoKTtVZigpfSk7dmFyIHJHPXt9O0ZlKHJHLHtXZWJSZXF1ZXN0OigpPT50R30pO3ZhciB0RyxHTGU9cCgoKT0+e1dMZSgpO3RHPWNsYXNze2NvbnN0cnVjdG9yKHQ9e30pe3RoaXMub3B0aW9uc0FyZz10LHRoaXMuY2FjaGVTdG9yZT1uZXcgamEuV2ViU3RvcmUoe2RiTmFtZToid2VicmVxdWVzdCIsc3RvcmVOYW1lOiJ3ZWJyZXF1ZXN0In0pLHRoaXMub3B0aW9ucz17bG9nZ2luZzohMCwuLi50fX1hc3luYyBnZXRKc29uKHQscj0hMSl7bGV0IGE9YXdhaXQoYXdhaXQgdGhpcy5yZXF1ZXN0KHQse21ldGhvZDoiR0VUIix1c2VDYWNoZTpyfSkpLnRleHQoKTtyZXR1cm4gdjEucGFyc2UoYSl9YXN5bmMgcG9zdEpzb24odCxyLGk9ITEpe2xldCBuPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdCh0LHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTp2MS5zdHJpbmdpZnkociksdXNlQ2FjaGU6aX0pKS50ZXh0KCk7cmV0dXJuIHYxLnBhcnNlKG4pfWFzeW5jIHB1dEpzb24odCxyLGk9ITEpe2xldCBuPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdCh0LHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OnYxLnN0cmluZ2lmeShyKX0pKS50ZXh0KCk7cmV0dXJuIHYxLnBhcnNlKG4pfWFzeW5jIGRlbGV0ZUpzb24odCxyPSExKXtsZXQgYT1hd2FpdChhd2FpdCB0aGlzLnJlcXVlc3QodCx7aGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6IkdFVCJ9KSkudGV4dCgpO3JldHVybiB2MS5wYXJzZShhKX1hc3luYyByZXF1ZXN0KHQscil7cj17dGltZW91dE1zOjZlNCx1c2VDYWNoZTohMSwuLi5yfTtsZXQgaT1uZXcgQWJvcnRDb250cm9sbGVyO3p0LmRlbGF5Rm9yKHIudGltZW91dE1zKS50aGVuKCgpPT57aS5hYm9ydCgpfSk7bGV0IGE9S2UuZGVmZXIoKSxuPSExO2lmKHIudXNlQ2FjaGUmJmF3YWl0IHRoaXMuY2FjaGVTdG9yZS5jaGVjayh0KSl7bGV0IHM9YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmdldCh0KTthLnJlc29sdmUobmV3IFJlc3BvbnNlKHMse30pKX1lbHNlIGEucmVzb2x2ZShudWxsKTtsZXQgbz1hd2FpdCBmZXRjaCh0LHtzaWduYWw6aS5zaWduYWwsbWV0aG9kOnIubWV0aG9kLGhlYWRlcnM6ey4uLnIuaGVhZGVyc3x8e319LGJvZHk6ci5ib2R5fSkuY2F0Y2goYXN5bmMgcz0+ci51c2VDYWNoZSYmYXdhaXQgYS5wcm9taXNlPyhuPSEwLGEucHJvbWlzZSk6cyk7aWYoci51c2VDYWNoZSYmYXdhaXQgYS5wcm9taXNlJiZvLnN0YXR1cz09PTUwMCYmKG49ITAsbz1hd2FpdCBhLnByb21pc2UpLCFuJiZyLnVzZUNhY2hlJiZvLnN0YXR1czwzMDApe2xldCBzPWF3YWl0IG8uY2xvbmUoKS5hcnJheUJ1ZmZlcigpO2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5zZXQodCxzKX1yZXR1cm4gdGhpcy5sb2coYCR7dH0gYW5zd2VycyB3aXRoIHN0YXR1czogJHtvLnN0YXR1c31gKSxvfWFzeW5jIHJlcXVlc3RNdWx0aUVuZHBvaW50KHQscil7bGV0IGksYT0wO0FycmF5LmlzQXJyYXkodCk/aT10Omk9W3RdO2xldCBuPVtdLG89YXN5bmMgYz0+e24ucHVzaChjKSxjPT09IjQyOSImJihjb25zb2xlLmxvZygiZ290IDQyOSwgc28gd2FpdGluZyBhIGxpdHRsZSBiaXQuIiksYXdhaXQgenQuZGVsYXlGb3IoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMDEpKzFlMykpO2xldCB1PTA7Zm9yKGxldCBkIG9mIG4pZD09PWMmJnUrKzt1PjIqaS5sZW5ndGgqYSYmYSsrfSxzPWFzeW5jIGM9PntpZighYyl0aHJvdyBuZXcgRXJyb3IoInJlcXVlc3QgZmFpbGVkIHBlcm1hbmVudGx5Iik7dGhpcy5sb2coYEdldHRpbmcgJHtjfSB3aXRoIG1ldGhvZCAke3IubWV0aG9kfWApO2xldCB1PWF3YWl0IGZldGNoKGMse21ldGhvZDpyLm1ldGhvZCxoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX0sYm9keTpyLmJvZHl9KTtyZXR1cm4gdGhpcy5sb2coYCR7Y30gYW5zd2VycyB3aXRoIHN0YXR1czogJHt1LnN0YXR1c31gKSx1LnN0YXR1cz49MjAwJiZ1LnN0YXR1czwzMDA/dTooYXdhaXQgbyh1LnN0YXR1cy50b1N0cmluZygpKSxhd2FpdCBzKGlbYV0pKX07cmV0dXJuIGF3YWl0IHMoaVthXSl9bG9nKHQpe3RoaXMub3B0aW9ucy5sb2dnaW5nJiZjb25zb2xlLmxvZyh0KX19fSk7dmFyIExrLHM2LEFrPXAoKCk9PntMaz1jbGFzc3tjbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKHQscik9Pnt0aGlzLnJlc29sdmU9aT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksdChpKX0sdGhpcy5yZWplY3Q9aT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxyKGkpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sczY9KCk9Pm5ldyBMa30pO3ZhciBEayxMQ3IsWUxlPXAoKCk9PntBaygpO0RrPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9czYoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9YWRkUHJvbWlzZSh0KXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMucHVzaCh0KX19LExDcj0oKT0+bmV3IERrfSk7dmFyIGw2PXt9O0ZlKGw2LHtDdW11bGF0aXZlRGVmZXJyZWQ6KCk9PkRrLERlZmVycmVkOigpPT5MayxjdW11bGF0aXZlRGVmZXI6KCk9PkxDcixkZWZlcjooKT0+czYsZ2V0Rmlyc3RUcnVlT3JGYWxzZTooKT0+SUNyLG1hcDooKT0+RUNyLHJlamVjdGVkUHJvbWlzZTooKT0+RENyLHJlc29sdmVkUHJvbWlzZTooKT0+QUNyLHRpbWVvdXRBbmRDb250aW51ZTooKT0+JENyLHRpbWVvdXRXcmFwOigpPT5aTGV9KTt2YXIgQUNyLERDcixFQ3IsWkxlLCRDcixJQ3IsaUc9cCgoKT0+e0FrKCk7WUxlKCk7QWsoKTtBQ3I9ZT0+UHJvbWlzZS5yZXNvbHZlKGUpLERDcj1lPT5Qcm9taXNlLnJlamVjdChlKSxFQ3I9YXN5bmMoZSx0KT0+e2xldCByPVtdLGk9W107Zm9yKGxldCBhIG9mIGUpe2xldCBuPXQoYSk7ci5wdXNoKG4pLG4udGhlbihvPT57aS5wdXNoKG8pfSl9cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHIpLGl9LFpMZT1hc3luYyhlLHQscj0hMCk9Pm5ldyBQcm9taXNlKChpLGEpPT57c2V0VGltZW91dCgoKT0+e3I/YShuZXcgRXJyb3IoInRpbWVvdXQiKSk6aShudWxsKX0sdCksZS50aGVuKGksYSl9KSwkQ3I9YXN5bmMoZSx0PTZlNCk9PlpMZShlLHQsITEpLElDcj1hc3luYyBlPT57bGV0IHQ9czYoKTtmb3IobGV0IHIgb2YgZSlyLnRoZW4oaT0+e2k9PT0hMCYmdC5yZXNvbHZlKCEwKX0pO3JldHVybiBQcm9taXNlLmFsbChlKS50aGVuKCgpPT57dC5yZXNvbHZlKCExKX0pLHQucHJvbWlzZX19KTt2YXIgYUc9e307RmUoYUcse1RpbWVvdXQ6KCk9PkVrLGRlbGF5Rm9yOigpPT5YTGUsZGVsYXlGb3JSYW5kb206KCk9PlBDcn0pO3ZhciBYTGUsUENyLEVrLFFMZT1wKCgpPT57aUcoKTtYTGU9YXN5bmMoZSx0LHI9ITEpPT4oYXdhaXQgbmV3IEVrKGUsbnVsbCxyKS5wcm9taXNlLHQpLFBDcj1hc3luYyhlLHQscixpPSExKT0+KGF3YWl0IFhMZShNYXRoLnJhbmRvbSgpKih0LWUpK2UsbnVsbCxpKSxyKSxFaz1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsaT0hMSl7dGhpcy5fY2FuY2VsbGVkPSExLHRoaXMudGltZW91dEluTWlsbGlzPXQsdGhpcy5fZGVmZXJyZWQ9czYoKSx0aGlzLnByb21pc2U9dGhpcy5fZGVmZXJyZWQucHJvbWlzZSx0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLl9jYW5jZWxsZWR8fHRoaXMuX2RlZmVycmVkLnJlc29sdmUocil9LHQpLHRoaXMuc3RhcnRlZD1EYXRlLm5vdygpLGkmJnRoaXMubWFrZVVucmVmZWQoKX1tYWtlVW5yZWZlZCgpe3RoaXMuX3RpbWVvdXQudW5yZWYoKX1jYW5jZWwoKXt0aGlzLl9jYW5jZWxsZWQ9ITAsY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpfWdldFRpbWVMZWZ0KCl7bGV0IHQ9dGhpcy5zdGFydGVkK3RoaXMudGltZW91dEluTWlsbGlzLURhdGUubm93KCk7cmV0dXJuIHQ+MD90OjB9fX0pO3ZhciBKTGU9cCgoKT0+e30pO3ZhciAkaz1wKCgpPT57eHMoKX0pO3ZhciBJaz1wKCgpPT57eHMoKTt4cygpfSk7dmFyIEtMZT1wKCgpPT57eHMoKX0pO3ZhciBlQWU9cCgoKT0+e30pO3ZhciB0QWU9cCgoKT0+e3hzKCl9KTt2YXIgckFlPXAoKCk9Pnt4cygpfSk7dmFyIGlBZT1wKCgpPT57fSk7dmFyIGFBZT1wKCgpPT57fSk7dmFyIG5HPXt9O3ZhciBQaz1wKCgpPT57S0xlKCk7ZUFlKCk7dEFlKCk7ckFlKCk7aUFlKCk7YUFlKCl9KTt2YXIgb0csbkFlPXAoKCk9PntQaygpOyRrKCk7SWsoKTtvRz1jbGFzc3t9fSk7dmFyIG9BZT1wKCgpPT57fSk7dmFyIHNBZT1wKCgpPT57fSk7dmFyIGxBZT1wKCgpPT57fSk7dmFyIGNBZT1wKCgpPT57fSk7dmFyIHNHPXt9O3ZhciBsRz1wKCgpPT57b0FlKCk7c0FlKCk7bEFlKCk7Y0FlKCl9KTt2YXIgZEFlPXAoKCk9PntjRygpO1BrKCk7bEcoKX0pO3ZhciB1QWU9cCgoKT0+e30pO3ZhciBwQWU9cCgoKT0+e0lrKCl9KTt2YXIgaEFlPXAoKCk9Pnt9KTt2YXIgTms9e307RmUoTmsse0lKb2I6KCk9Pm9HfSk7dmFyIGNHPXAoKCk9PntKTGUoKTskaygpO0lrKCk7bkFlKCk7ZEFlKCk7dUFlKCk7cEFlKCk7aEFlKCl9KTt2YXIgZkFlPXAoKCk9Pnt9KTt2YXIgbUFlPXAoKCk9Pnt9KTt2YXIgZEc9e307dmFyIGdBZT1wKCgpPT57ZkFlKCk7bUFlKCl9KTt2YXIgYkFlPXAoKCk9Pnt9KTt2YXIgdkFlPXAoKCk9Pnt9KTt2YXIgdUc9e307dmFyIHhBZT1wKCgpPT57YkFlKCk7dkFlKCl9KTt2YXIgcEc9cCgoKT0+e3hzKCl9KTt2YXIgeUFlPXAoKCk9Pnt4cygpfSk7dmFyIHdBZT1wKCgpPT57cEcoKX0pO3ZhciBoRz17fTt2YXIgTUFlPXAoKCk9PntwRygpO3lBZSgpO3dBZSgpfSk7dmFyIGtBZT1wKCgpPT57fSk7dmFyIFNBZT1wKCgpPT57fSk7dmFyIGZHPXt9O3ZhciB6QWU9cCgoKT0+e2tBZSgpO1NBZSgpfSk7dmFyIG1HPXAoKCk9Pnt9KTt2YXIgZ0csQ0FlPXAoKCk9PnttRygpO2dHPWNsYXNze319KTt2YXIgVEFlPXAoKCk9Pnt9KTt2YXIgX0FlPXAoKCk9Pnt9KTt2YXIgTEFlPXAoKCk9Pnt9KTt2YXIgQUFlPXAoKCk9Pnt9KTt2YXIgREFlPXAoKCk9Pnt9KTt2YXIgRUFlPXAoKCk9Pnt9KTt2YXIgJEFlPXAoKCk9Pnt9KTt2YXIgSUFlPXAoKCk9Pnt9KTt2YXIgUEFlPXAoKCk9Pnt9KTt2YXIgRms9e307RmUoRmsse0lDbmFtZURlc2NyaXB0b3I6KCk9PmdHfSk7dmFyIE5BZT1wKCgpPT57bUcoKTtDQWUoKTtUQWUoKTtfQWUoKTtMQWUoKTtBQWUoKTtEQWUoKTtFQWUoKTskQWUoKTtJQWUoKTtQQWUoKX0pO3ZhciBiRz1wKCgpPT57JGsoKX0pO3ZhciBGQWU9cCgoKT0+e2JHKCl9KTt2YXIgdkc9e307dmFyIE9BZT1wKCgpPT57RkFlKCk7YkcoKX0pO3ZhciB4Rz17fTt2YXIgUkFlPXAoKCk9Pnt9KTt2YXIgQkFlPXAoKCk9Pnt9KTt2YXIgSEFlPXAoKCk9Pnt9KTt2YXIgcUFlPXAoKCk9Pnt9KTt2YXIgeUc9e307dmFyIGpBZT1wKCgpPT57QkFlKCk7SEFlKCk7cUFlKCl9KTt2YXIgVkFlPXAoKCk9Pnt9KTt2YXIgd0c9e307RmUod0cse2J1c2luZXNzOigpPT5Oayxjb2RlOigpPT5kRyxjb250YWluZXI6KCk9PnVHLGNvbnRlbnQ6KCk9PmhHLGRhdGFiYXNlOigpPT5zRyxmaW5hbmNlOigpPT5uRyxnZW5lcmFsOigpPT5mRyxuZXR3b3JrOigpPT5GayxzYWFzOigpPT52RyxzdG9yYWdlOigpPT54Ryx3ZWJzaXRlOigpPT55R30pO3ZhciB4cz1wKCgpPT57Y0coKTtnQWUoKTt4QWUoKTtsRygpO1BrKCk7TUFlKCk7ekFlKCk7TkFlKCk7T0FlKCk7UkFlKCk7akFlKCk7VkFlKCl9KTt2YXIgUGw9cCgoKT0+e1FMZSgpO2lHKCk7eHMoKX0pO3ZhciBPaz1wKCgpPT57UGwoKX0pO3ZhciBBMCxINz1wKCgpPT57UGwoKTtBMD1jbGFzc3thcHBlbmRUb0RvbSgpeyF0aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudCYmIXRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlJiZkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZil9cmVtb3ZlRnJvbURvbSgpe3RoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50P3RoaXMuZWxlbWVudFJlZi5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudFJlZik6dGhpcy5lbGVtZW50UmVmLnBhcmVudE5vZGUmJnRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudFJlZil9fX0pO3ZhciBjNixSaz1wKCgpPT57UGwoKTtPaygpO0g3KCk7YzY9Y2xhc3MgZSBleHRlbmRzIEEwe3N0YXRpYyBjcmVhdGVDb21wYW55SnNvbkxkKHQpe2xldCByPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6IkNvcnBvcmF0aW9uIixuYW1lOnQubmFtZSxhbHRlcm5hdGVOYW1lOnQubmFtZS5yZXBsYWNlKCIgR21iSCIsIiIpLHVybDp0LmNvbnRhY3Qud2Vic2l0ZSxsb2dvOnQuY29udGFjdC5sb2dvVXJsLGNvbnRhY3RQb2ludDp7IkB0eXBlIjoiQ29udGFjdFBvaW50Iix0ZWxlcGhvbmU6dC5jb250YWN0LnBob25lLGNvbnRhY3RUeXBlOiJjdXN0b21lciBzZXJ2aWNlIixhcmVhU2VydmVkOiJERSIsYXZhaWxhYmxlTGFuZ3VhZ2U6WyJlbiIsIkdlcm1hbiJdfSxzYW1lQXM6W119O3JldHVybiB0LmNvbnRhY3QuZmFjZWJvb2tVcmwmJnIuc2FtZUFzLnB1c2godC5jb250YWN0LmZhY2Vib29rVXJsKSx0LmNvbnRhY3QudHdpdHRlclVybCYmci5zYW1lQXMucHVzaCh0LmNvbnRhY3QudHdpdHRlclVybCksbmV3IGUocil9c3RhdGljIGNyZWF0ZU5ld3NBcnRpY2xlSnNvbkxkKHQpe2xldCByPXsiQGNvbnRleHQiOiJodHRwczovL3NjaGVtYS5vcmciLCJAdHlwZSI6Ik5ld3NBcnRpY2xlIixtYWluRW50aXR5T2ZQYWdlOnsiQHR5cGUiOiJXZWJQYWdlIiwiQGlkIjp3aW5kb3cubG9jYXRpb24uaHJlZn0saGVhZGxpbmU6IkFydGljbGUgaGVhZGxpbmUiLGltYWdlOlt0LmZlYXR1cmVkSW1hZ2VVcmxdLGRhdGVQdWJsaXNoZWQ6bmV3IERhdGUodC50aW1lc3RhbXApLnRvSVNPU3RyaW5nKCksZGF0ZU1vZGlmaWVkOm5ldyBEYXRlKHQudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGF1dGhvcjp7IkB0eXBlIjoiUGVyc29uIixuYW1lOmAke3QuYXV0aG9yLmZpcnN0TmFtZX0gJHt0LmF1dGhvci5zdXJOYW1lfWB9LHB1Ymxpc2hlcjp7IkB0eXBlIjoiT3JnYW5pemF0aW9uIixuYW1lOnQuYXV0aG9yLnN1ck5hbWUsbG9nbzp7IkB0eXBlIjoiSW1hZ2VPYmplY3QiLHVybDp0LmF1dGhvci5zdXJOYW1lfX0sZGVzY3JpcHRpb246dC5hdXRob3IuZmlyc3ROYW1lfTtyZXR1cm4gbmV3IGUocil9c3RhdGljIGNyZWF0ZVByb2R1Y3RKc29uTGQodCxyKXtsZXQgaT17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJTb2Z0d2FyZUFwcGxpY2F0aW9uIixuYW1lOnQubmFtZSxkZXNjcmlwdGlvbjp0LmRlc2NyaXB0aW9uLG9wZXJhdGluZ1N5c3RlbTp0Lm9zLGFwcGxpY2F0aW9uQ2F0ZWdvcnk6dC5jYXRlZ29yeSxvZmZlcnM6eyJAdHlwZSI6Ik9mZmVyIixuYW1lOiJVc2VyLWJhc2VkIFBsYW4iLHByaWNlU3BlY2lmaWNhdGlvbjp7IkB0eXBlIjoiUHJvcGVydHlWYWx1ZVNwZWNpZmljYXRpb24iLHZhbHVlTmFtZToiTnVtYmVyIG9mIFVzZXJzIix2YWx1ZVJlcXVpcmVkOiEwLHByaWNlOiI0Ljk5IixwcmljZUN1cnJlbmN5OiJFVVIifX0scHVibGlzaGVyOnRoaXMuY3JlYXRlQ29tcGFueUpzb25MZChyKS5lbGVtZW50UmVmLnRleHRDb250ZW50LHNjcmVlbnNob3Q6Imh0dHBzOi8vd3d3LnNvY2lhbC5pby9zY3JlZW5zaG90LnBuZyIsdXJsOiJodHRwczovL3d3dy5zb2NpYWwuaW8vIn07cmV0dXJuIG5ldyBlKGkpfWNvbnN0cnVjdG9yKHQpe3N1cGVyKCk7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ci50eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIixyLnRleHQ9SlNPTi5zdHJpbmdpZnkodCksdGhpcy5lbGVtZW50UmVmPXJ9fX0pO3ZhciBVYSxCaz1wKCgpPT57UGwoKTtINygpO1VhPWNsYXNzIGUgZXh0ZW5kcyBBMHtzdGF0aWMgY3JlYXRlTmV3c0FydGljbGVPZ1RhZ3ModCl7bGV0IHI9W107cmV0dXJuIHIucHVzaChuZXcgZSgib2c6dXJsIix0LnVybCkpLHIucHVzaChuZXcgZSgib2c6dGl0bGUiLHQudGl0bGUpKSxyLnB1c2gobmV3IGUoIm9nOmRlc2NyaXB0aW9uIix0LmNvbnRlbnQpKSxyLnB1c2gobmV3IGUoIm9nOmltYWdlIix0LmZlYXR1cmVkSW1hZ2VVcmwpKSxyfXN0YXRpYyBjcmVhdGVQcm9kdWN0T2dUYWdzKHQpe2xldCByPVtdO3JldHVybiByLnB1c2gobmV3IGUoIm9nOnVybCIsZ2xvYmFsVGhpcy5sb2NhdGlvbi5ocmVmKSksci5wdXNoKG5ldyBlKCJvZzp0aXRsZSIsYCR7dC5uYW1lfSAtICR7dC5zbG9nYW59YCkpLHIucHVzaChuZXcgZSgib2c6c2l0ZV9uYW1lIix0Lm5hbWUpKSxyLnB1c2gobmV3IGUoIm9nOmRlc2NyaXB0aW9uIix0LmRlc2NyaXB0aW9uKSksci5wdXNoKG5ldyBlKCJvZzppbWFnZSIsdC5sb2dvTGluaykpLHJ9Y29uc3RydWN0b3IodCxyKXtzdXBlcigpO2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm1ldGEiKTtpLnNldEF0dHJpYnV0ZSgicHJvcGVydHkiLHQpLGkuY29udGVudD1yLHRoaXMuZWxlbWVudFJlZj1pfX19KTt2YXIgRnUsTUc9cCgoKT0+e0g3KCk7UmsoKTtCaygpO2tHKCk7UGwoKTtGdT1jbGFzc3tzZXQgdGl0bGUodCl7dGhpcy50aXRsZVN0b3JlPXQsdGhpcy5zdGF0ZT09PSJlbmFibGVkIiYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGVTdG9yZSl9Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMudGl0bGVTdG9yZX1jb25zdHJ1Y3Rvcih0LHIpe3RoaXMudGFncz1bXSx0aGlzLnN0YXRlPSJkaXNhYmxlZCIsdGhpcy50YWdNYW5hZ2VyUmVmPXR9YWRkVGFnKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheSlmb3IobGV0IHIgb2YgdCl0aGlzLmFkZFRhZyhyKTtlbHNlIHRoaXMudGFncy5wdXNoKHQpLHRoaXMuc3RhdGU9PT0iZW5hYmxlZCImJnQuYXBwZW5kVG9Eb20oKX1hc3luYyBhZGRDb21wYW55SW5mbyh0KXt0aGlzLmFkZFRhZyhjNi5jcmVhdGVDb21wYW55SnNvbkxkKHQpKSx0aGlzLmFkZFRhZyhuZXcgVWEoIm9nOnR5cGUiLCJidXNpbmVzcy5idXNpbmVzcyIpKSx0aGlzLmFkZFRhZyhuZXcgVWEoIm9nOnRpdGxlIix0Lm5hbWUpKSx0aGlzLmFkZFRhZyhuZXcgVWEoIm9nOnVybCIsdC5jb250YWN0LndlYnNpdGUpKSx0aGlzLmFkZFRhZyhuZXcgVWEoIm9nOmltYWdlIix0LmNvbnRhY3QubG9nb1VybCkpLHRoaXMuYWRkVGFnKG5ldyBVYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnN0cmVldF9hZGRyZXNzIixgJHt0LmNvbnRhY3QuYWRkcmVzcy5zdHJlZXROYW1lfSAke3QuY29udGFjdC5hZGRyZXNzLmhvdXNlTnVtYmVyfWApKSx0aGlzLmFkZFRhZyhuZXcgVWEoImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpsb2NhbGl0eSIsdC5jb250YWN0LmFkZHJlc3MucG9zdGFsQ29kZSkpLHRoaXMuYWRkVGFnKG5ldyBVYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnJlZ2lvbiIsdC5jb250YWN0LmFkZHJlc3MuY2l0eSkpLHRoaXMuYWRkVGFnKG5ldyBVYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnBvc3RhbF9jb2RlIix0LmNvbnRhY3QuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IFVhKCJidXNpbmVzczpjb250YWN0X2RhdGE6Y291bnRyeV9uYW1lIix0LmNvbnRhY3QuYWRkcmVzcy5jb3VudHJ5KSl9YWRkTmV3c0FydGljbGVJbmZvKHQpe3RoaXMuYWRkVGFnKGM2LmNyZWF0ZU5ld3NBcnRpY2xlSnNvbkxkKHQpKSx0aGlzLmFkZFRhZyhVYS5jcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyh0KSl9YWRkUHJvZHVjdEluZm8odCxyKXt0aGlzLmFkZFRhZyhjNi5jcmVhdGVQcm9kdWN0SnNvbkxkKHQscikpLHRoaXMuYWRkVGFnKFVhLmNyZWF0ZVByb2R1Y3RPZ1RhZ3ModCkpfWFzeW5jIGVuYWJsZSgpe3RoaXMudGl0bGUmJihkb2N1bWVudC50aXRsZT10aGlzLnRpdGxlKTtmb3IobGV0IHQgb2YgdGhpcy50YWdzKXQuYXBwZW5kVG9Eb20oKTt0aGlzLnN0YXRlPSJlbmFibGVkIn1hc3luYyBkaXNhYmxlKCl7Zm9yKGxldCB0IG9mIHRoaXMudGFncyl0LnJlbW92ZUZyb21Eb20oKTt0aGlzLnN0YXRlPSJkaXNhYmxlZCJ9fX0pO3ZhciBmbyxTRz1wKCgpPT57SDcoKTtmbz1jbGFzcyBleHRlbmRzIEEwe2NvbnN0cnVjdG9yKHQscil7c3VwZXIoKTtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7aS5uYW1lPXQsaS5jb250ZW50PXIsdGhpcy5lbGVtZW50UmVmPWl9fX0pO3ZhciBIayxrRz1wKCgpPT57TUcoKTtQbCgpO09rKCk7U0coKTtSaygpO0JrKCk7SGs9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmdsb2JhbExldmVsPW5ldyBGdSh0aGlzLCJnbG9iYWwiKSx0aGlzLmJhc2VMZXZlbD1uZXcgRnUodGhpcywiYmFzZSIpfWFzeW5jIHNldHVwKHQpe3N3aXRjaCh0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgZm8oImdvb2dsZSIsIm5vdHJhbnNsYXRlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBmbygicmV2aXNpdC1hZnRlciIsIjEgZGF5cyIpKSx0LnR3aXR0ZXJIYW5kbGUmJih0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgZm8oInR3aXR0ZXI6Y2FyZCIsInN1bW1hcnlfbGFyZ2VfaW1hZ2UiKSksdGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IGZvKCJ0d2l0dGVyOnNpdGUiLHQudHdpdHRlckhhbmRsZSkpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBmbygidHdpdHRlcjpjcmVhdG9yIix0LnR3aXR0ZXJIYW5kbGUpKSksdGhpcy5iYXNlTGV2ZWwudGl0bGU9dC50aXRsZSx0LmRlc2NyaXB0aW9uJiZ0aGlzLmJhc2VMZXZlbC5hZGRUYWcobmV3IGZvKCJkZXNjcmlwdGlvbiIsdC5kZXNjcmlwdGlvbikpLHQuY2Fub25pY2FsRG9tYWluJiZ0aGlzLmJhc2VMZXZlbC5hZGRUYWcobmV3IGZvKCJjYW5vbmljYWwiLHQuY2Fub25pY2FsRG9tYWluKSksITApe2Nhc2UodC5sZENvbXBhbnkmJiF0LmxkUHJvZHVjdCk6dGhpcy5iYXNlTGV2ZWwuYWRkQ29tcGFueUluZm8odC5sZENvbXBhbnkpO2JyZWFrO2Nhc2UhIXQubGRQcm9kdWN0OnRoaXMuYmFzZUxldmVsLmFkZFByb2R1Y3RJbmZvKHQubGRQcm9kdWN0LHQubGRDb21wYW55KTticmVha31hd2FpdCB0aGlzLmdsb2JhbExldmVsLmVuYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKX1hc3luYyBzZXRTdWJQYWdlTGV2ZWwodCl7bGV0IHI9bmV3IEZ1KHRoaXMsInN1YnBhZ2UiKTtyZXR1cm4gci50aXRsZT10LnRpdGxlLHQuZGVzY3JpcHRpb24mJnIuYWRkVGFnKG5ldyBmbygiZGVzY3JpcHRpb24iLHQuZGVzY3JpcHRpb24pKSxhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmRpc2FibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXIsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSxyfWFzeW5jIHJldmVydFRvQmFzZUxldmVsKCl7dGhpcy5hY3RpdmVMZXZlbCE9PXRoaXMuYmFzZUxldmVsJiYoYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD10aGlzLmJhc2VMZXZlbCxhd2FpdCB0aGlzLmFjdGl2ZUxldmVsLmVuYWJsZSgpKX19fSk7dmFyIHE3LFVBZT1wKCgpPT57UGwoKTtPaygpO2tHKCk7TUcoKTtxNz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnRhZ01hbmFnZXI9bmV3IEhrLHRoaXMucmVhZHlEZWZlcnJlZD1sNi5kZWZlcigpLHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkPWw2LmRlZmVyKCksdGhpcy5yZWFkeVByb21pc2U9dGhpcy5yZWFkeURlZmVycmVkLnByb21pc2UsdGhpcy5yZWFkeUZvclNtYXJ0c3NyUHJvbWlzZT10aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5wcm9taXNlLHRoaXMub3B0aW9ucz10LHRoaXMuc2V0dXAoKS50aGVuKCgpPT57dGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKSx0aGlzLm9wdGlvbnMuc21hcnRzc3JXYWl0Rm9yUmVhZHlTaWduYWx8fHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnJlc29sdmUoKX0pfWFzeW5jIHNldHVwKHQpe3QmJih0aGlzLm9wdGlvbnM9dCksYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldHVwKHRoaXMub3B0aW9ucy5tZXRhT2JqZWN0KX1yZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMudGFnTWFuYWdlci5yZXZlcnRUb0Jhc2VMZXZlbCgpfWFzeW5jIHNldFN1YkxldmVsKHQpe3JldHVybiBhd2FpdCB0aGlzLnRhZ01hbmFnZXIuc2V0U3ViUGFnZUxldmVsKHQpfWZsYXNoVGl0bGUodCl7fWluZm9ybVJlYWR5Rm9yU21hcnRzc3IoKXt0aGlzLm9wdGlvbnMuc21hcnRzc3JXYWl0Rm9yUmVhZHlTaWduYWx8fGNvbnNvbGUuZXJyb3IoIllvdSBoYXZlIG5vdCBpbmRpY2F0ZWQgdGhhdCB5b3UgaW5mb3JtIHNtYXJ0c3NyIGJ5IGEgZGVkaWNhdGVkIHNpZ25hbCEgUGxlYXNlIGNvbnNpZGVyIGRvaW5nIHNvISIpLHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnJlc29sdmUoKX19fSk7dmFyIHpHLFdBZT1wKCgpPT57UGwoKTt6Rz1jbGFzc3t9fSk7dmFyIENHPXt9O0ZlKENHLHtKc29uTGRUYWc6KCk9PmM2LE1ldGFUYWc6KCk9PmZvLE9wZW5ncmFwaFRhZzooKT0+VWEsVGl0bGU6KCk9PnpHLFdlYlNldHVwOigpPT5xN30pO3ZhciBxaz1wKCgpPT57VUFlKCk7U0coKTtCaygpO1JrKCk7V0FlKCl9KTt2YXIgR0FlLGprPXAoKCk9PntZMigpO0lCKCk7c2EoKTt0MigpO2lxKCk7R0FlPWVyKG5xKCksMSl9KTt2YXIgT3UsVEc9cCgoKT0+e2prKCk7T3U9Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwT2JqZWN0PXt9fWlzVW5pcXVlS2V5KHQpe3JldHVybiF0aGlzLm1hcE9iamVjdFt0XX1hZGRUb01hcCh0LHIsaSl7cmV0dXJuIHRoaXMuaXNVbmlxdWVLZXkodCl8fGkmJmkuZm9yY2U/KHRoaXMubWFwT2JqZWN0W3RdPXIsITApOiExfWdldEJ5S2V5KHQpe3JldHVybiB0aGlzLm1hcE9iamVjdFt0XX1yZW1vdmVGcm9tTWFwKHQpe2xldCByPXRoaXMuZ2V0QnlLZXkodCk7cmV0dXJuIGRlbGV0ZSB0aGlzLm1hcE9iamVjdFt0XSxyfWdldEtleXMoKXtsZXQgdD1bXTtmb3IobGV0IHIgaW4gdGhpcy5tYXBPYmplY3QpdGhpcy5tYXBPYmplY3Rbcl0mJnQucHVzaChyKTtyZXR1cm4gdH1jbGVhbigpe3RoaXMubWFwT2JqZWN0PXt9fWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtmb3IobGV0IGkgb2YgdGhpcy5nZXRLZXlzKCkpci5hZGRUb01hcChpLHRoaXMuZ2V0QnlLZXkoaSkpO2ZvcihsZXQgaSBvZiB0LmdldEtleXMoKSlyLmFkZFRvTWFwKGksdC5nZXRCeUtleShpKSx7Zm9yY2U6ITB9KTtyZXR1cm4gcn1hZGRBbGxGcm9tT3RoZXIodCl7Zm9yKGxldCByIG9mIHQuZ2V0S2V5cygpKXRoaXMuYWRkVG9NYXAocix0LmdldEJ5S2V5KHIpLHtmb3JjZTohMH0pfWFzeW5jIGZpbmQodCl7Zm9yKGxldCByIG9mIHRoaXMuZ2V0S2V5cygpKXtsZXQgaT10aGlzLmdldEJ5S2V5KHIpO2lmKGF3YWl0IHQoaSkpcmV0dXJuIGl9fX19KTt2YXIgRkNyLFZrLFpBZT1wKCgpPT57amsoKTtURygpO0ZDcj0oZT0idW5pIik9PmAke2V9eHh4eHh4eHh4eHhgLnJlcGxhY2UoL1t4eV0vZyx0PT57bGV0IHI9TWF0aC5yYW5kb20oKSoxNnwwO3JldHVybih0PT09IngiP3I6ciYzfDgpLnRvU3RyaW5nKDE2KX0pLFZrPWNsYXNzIGV7Y29uc3RydWN0b3IoKXt0aGlzLmZhc3RNYXA9bmV3IE91LHRoaXMuZXZlbnRTdWJqZWN0PW5ldyBpci5yeGpzLlN1YmplY3R9YWRkTWFwcGVkVW5pcXVlKHQscil7dGhpcy5mYXN0TWFwLmFkZFRvTWFwKHQscil9Z2V0TWFwcGVkVW5pcXVlKHQpe3JldHVybiB0aGlzLmZhc3RNYXAuZ2V0QnlLZXkodCl9cmVtb3ZlTWFwcGVkVW5pcXVlKHQpe2xldCByPXRoaXMuZ2V0TWFwcGVkVW5pcXVlKHQpfWFkZCh0KXtmb3IobGV0IGkgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZih0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT10KXJldHVybiBpO2xldCByPUZDcigia2V5Iik7cmV0dXJuIHRoaXMuYWRkTWFwcGVkVW5pcXVlKHIsdCksdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJhZGQiLHBheWxvYWQ6dH0pLHJ9YWRkQXJyYXkodCl7Zm9yKGxldCByIG9mIHQpdGhpcy5hZGQocil9Y2hlY2tGb3JPYmplY3QodCl7cmV0dXJuISF0aGlzLmdldEtleUZvck9iamVjdCh0KX1nZXRLZXlGb3JPYmplY3QodCl7bGV0IHI9bnVsbDtmb3IobGV0IGkgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZighciYmdGhpcy5mYXN0TWFwLmdldEJ5S2V5KGkpPT09dClyPWk7ZWxzZSBjb250aW51ZTtyZXR1cm4gcn1hc3luYyBmaW5kKHQpe3JldHVybiB0aGlzLmZhc3RNYXAuZmluZCh0KX1maW5kU3luYyh0KXtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlpZih0KHRoaXMuZmFzdE1hcC5nZXRCeUtleShyKSkpcmV0dXJuIHRoaXMuZ2V0TWFwcGVkVW5pcXVlKHIpfWFzeW5jIGZpbmRPbmVBbmRSZW1vdmUodCl7bGV0IHI9YXdhaXQgdGhpcy5maW5kKHQpO3JldHVybiByJiZ0aGlzLnJlbW92ZShyKSxyfWZpbmRPbmVBbmRSZW1vdmVTeW5jKHQpe2xldCByPXRoaXMuZmluZFN5bmModCk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9YXN5bmMgZm9yRWFjaCh0KXtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSlhd2FpdCB0KHRoaXMuZmFzdE1hcC5nZXRCeUtleShyKSl9Z2V0T25lQW5kUmVtb3ZlKCl7bGV0IHQ9dGhpcy5mYXN0TWFwLmdldEtleXMoKTtpZih0Lmxlbmd0aD09PTApcmV0dXJuIG51bGw7e2xldCByPXRbMF0saT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9fWdldEFycmF5KCl7bGV0IHQ9W107Zm9yKGxldCByIG9mIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkpdC5wdXNoKHRoaXMuZmFzdE1hcC5nZXRCeUtleShyKSk7cmV0dXJuIHR9aXNFbXB0eSgpe3JldHVybiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpLmxlbmd0aD09PTB9cmVtb3ZlKHQpe2lmKHRoaXMuY2hlY2tGb3JPYmplY3QodCkpe2xldCByPXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KHQpLGk9dGhpcy5mYXN0TWFwLnJlbW92ZUZyb21NYXAocik7cmV0dXJuIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoe29wZXJhdGlvbjoicmVtb3ZlIixwYXlsb2FkOml9KSxpfXJldHVybiBudWxsfXdpcGUoKXtmb3IobGV0IHQgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSl0aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcCh0KX1jb25jYXQodCl7bGV0IHI9bmV3IGU7cmV0dXJuIHIuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodGhpcy5mYXN0TWFwKSxyLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHQuZmFzdE1hcCkscn1hZGRBbGxGcm9tT3RoZXIodCl7dGhpcy5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0LmZhc3RNYXApfX19KTt2YXIgVWssWEFlPXAoKCk9PntqaygpO1VrPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W119YWRkU3RyaW5nKHQpe3RoaXMuX3N0cmluZ0FycmF5LnB1c2godCksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9YWRkU3RyaW5nQXJyYXkodCl7Zm9yKGxldCByIG9mIHQpdGhpcy5hZGRTdHJpbmcocil9cmVtb3ZlU3RyaW5nKHQpe2ZvcihsZXQgciBpbiB0aGlzLl9zdHJpbmdBcnJheSl0aGlzLl9zdHJpbmdBcnJheVtyXT09PXQmJnRoaXMuX3N0cmluZ0FycmF5LnNwbGljZShwYXJzZUludChyKSwxKTt0aGlzLm5vdGlmeVRyaWdnZXIoKX13aXBlKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5ub3RpZnlUcmlnZ2VyKCl9Y2hlY2tTdHJpbmcodCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5LmluZGV4T2YodCkhPT0tMX1jaGVja01pbmltYXRjaCh0KXtsZXQgcj1uZXcgbWwuU21hcnRNYXRjaCh0KSxpPSExO2ZvcihsZXQgYSBvZiB0aGlzLl9zdHJpbmdBcnJheSlyLm1hdGNoKGEpJiYoaT0hMCk7cmV0dXJuIGl9Y2hlY2tJc0VtcHR5KCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5Lmxlbmd0aD09PTB9Z2V0U3RyaW5nQXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpdC5wdXNoKHIpO3JldHVybiB0fXJlZ2lzdGVyVW50aWxUcnVlKHQscil7bGV0IGk9S2UuZGVmZXIoKTtyZXR1cm4gdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkucHVzaCgoKT0+e2xldCBhPXQodGhpcy5nZXRTdHJpbmdBcnJheSgpKTtyZXR1cm4gYT09PSEwJiYociYmcigpLGkucmVzb2x2ZSgpKSxhfSksdGhpcy5ub3RpZnlUcmlnZ2VyKCksaS5wcm9taXNlfW5vdGlmeVRyaWdnZXIoKXtsZXQgdD10aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5maWx0ZXIocj0+IXIoKSk7dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9dH19fSk7ZnVuY3Rpb24gUUFlKGUsdCxyKXtyZXR1cm4gTWF0aC5tYXgoZSxNYXRoLm1pbih0LHIpKX1mdW5jdGlvbiBSQ3IoZSx0LHIpe3JldHVybigxLXIpKmUrcip0fWZ1bmN0aW9uIEJDcihlLHQscixpKXtyZXR1cm4gUkNyKGUsdCwxLU1hdGguZXhwKC1yKmkpKX1mdW5jdGlvbiBIQ3IoZSx0KXtyZXR1cm4oZSV0K3QpJXR9ZnVuY3Rpb24gakNyKGUsdCl7bGV0IHI7cmV0dXJuIGZ1bmN0aW9uKC4uLmkpe2xldCBhPXRoaXM7Y2xlYXJUaW1lb3V0KHIpLHI9c2V0VGltZW91dCgoKT0+e3I9dm9pZCAwLGUuYXBwbHkoYSxpKX0sdCl9fXZhciBPQ3IscUNyLFZDcixKQWUsS0FlLEQwLFVDcixlRGUsajcsdERlPXAoKCk9PntPQ3I9IjEuMy4xNyI7cUNyPWNsYXNze2lzUnVubmluZz0hMTt2YWx1ZT0wO2Zyb209MDt0bz0wO2N1cnJlbnRUaW1lPTA7bGVycDtkdXJhdGlvbjtlYXNpbmc7b25VcGRhdGU7YWR2YW5jZShlKXtpZighdGhpcy5pc1J1bm5pbmcpcmV0dXJuO2xldCB0PSExO2lmKHRoaXMuZHVyYXRpb24mJnRoaXMuZWFzaW5nKXt0aGlzLmN1cnJlbnRUaW1lKz1lO2xldCByPVFBZSgwLHRoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbiwxKTt0PXI+PTE7bGV0IGk9dD8xOnRoaXMuZWFzaW5nKHIpO3RoaXMudmFsdWU9dGhpcy5mcm9tKyh0aGlzLnRvLXRoaXMuZnJvbSkqaX1lbHNlIHRoaXMubGVycD8odGhpcy52YWx1ZT1CQ3IodGhpcy52YWx1ZSx0aGlzLnRvLHRoaXMubGVycCo2MCxlKSxNYXRoLnJvdW5kKHRoaXMudmFsdWUpPT09dGhpcy50byYmKHRoaXMudmFsdWU9dGhpcy50byx0PSEwKSk6KHRoaXMudmFsdWU9dGhpcy50byx0PSEwKTt0JiZ0aGlzLnN0b3AoKSx0aGlzLm9uVXBkYXRlPy4odGhpcy52YWx1ZSx0KX1zdG9wKCl7dGhpcy5pc1J1bm5pbmc9ITF9ZnJvbVRvKGUsdCx7bGVycDpyLGR1cmF0aW9uOmksZWFzaW5nOmEsb25TdGFydDpuLG9uVXBkYXRlOm99KXt0aGlzLmZyb209dGhpcy52YWx1ZT1lLHRoaXMudG89dCx0aGlzLmxlcnA9cix0aGlzLmR1cmF0aW9uPWksdGhpcy5lYXNpbmc9YSx0aGlzLmN1cnJlbnRUaW1lPTAsdGhpcy5pc1J1bm5pbmc9ITAsbj8uKCksdGhpcy5vblVwZGF0ZT1vfX07VkNyPWNsYXNze2NvbnN0cnVjdG9yKGUsdCx7YXV0b1Jlc2l6ZTpyPSEwLGRlYm91bmNlOmk9MjUwfT17fSl7dGhpcy53cmFwcGVyPWUsdGhpcy5jb250ZW50PXQsciYmKHRoaXMuZGVib3VuY2VkUmVzaXplPWpDcih0aGlzLnJlc2l6ZSxpKSx0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpOih0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy53cmFwcGVyKSksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuZGVib3VuY2VkUmVzaXplKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY29udGVudCkpLHRoaXMucmVzaXplKCl9d2lkdGg9MDtoZWlnaHQ9MDtzY3JvbGxIZWlnaHQ9MDtzY3JvbGxXaWR0aD0wO2RlYm91bmNlZFJlc2l6ZTt3cmFwcGVyUmVzaXplT2JzZXJ2ZXI7Y29udGVudFJlc2l6ZU9ic2VydmVyO2Rlc3Ryb3koKXt0aGlzLndyYXBwZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy53cmFwcGVyPT09d2luZG93JiZ0aGlzLmRlYm91bmNlZFJlc2l6ZSYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5kZWJvdW5jZWRSZXNpemUsITEpfXJlc2l6ZT0oKT0+e3RoaXMub25XcmFwcGVyUmVzaXplKCksdGhpcy5vbkNvbnRlbnRSZXNpemUoKX07b25XcmFwcGVyUmVzaXplPSgpPT57dGhpcy53cmFwcGVyIGluc3RhbmNlb2YgV2luZG93Pyh0aGlzLndpZHRoPXdpbmRvdy5pbm5lcldpZHRoLHRoaXMuaGVpZ2h0PXdpbmRvdy5pbm5lckhlaWdodCk6KHRoaXMud2lkdGg9dGhpcy53cmFwcGVyLmNsaWVudFdpZHRoLHRoaXMuaGVpZ2h0PXRoaXMud3JhcHBlci5jbGllbnRIZWlnaHQpfTtvbkNvbnRlbnRSZXNpemU9KCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuY29udGVudC5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLmNvbnRlbnQuc2Nyb2xsV2lkdGgpOih0aGlzLnNjcm9sbEhlaWdodD10aGlzLndyYXBwZXIuc2Nyb2xsSGVpZ2h0LHRoaXMuc2Nyb2xsV2lkdGg9dGhpcy53cmFwcGVyLnNjcm9sbFdpZHRoKX07Z2V0IGxpbWl0KCl7cmV0dXJue3g6dGhpcy5zY3JvbGxXaWR0aC10aGlzLndpZHRoLHk6dGhpcy5zY3JvbGxIZWlnaHQtdGhpcy5oZWlnaHR9fX0sSkFlPWNsYXNze2V2ZW50cz17fTtlbWl0KGUsLi4udCl7bGV0IHI9dGhpcy5ldmVudHNbZV18fFtdO2ZvcihsZXQgaT0wLGE9ci5sZW5ndGg7aTxhO2krKylyW2ldPy4oLi4udCl9b24oZSx0KXtyZXR1cm4gdGhpcy5ldmVudHNbZV0/LnB1c2godCl8fCh0aGlzLmV2ZW50c1tlXT1bdF0pLCgpPT57dGhpcy5ldmVudHNbZV09dGhpcy5ldmVudHNbZV0/LmZpbHRlcihyPT50IT09cil9fW9mZihlLHQpe3RoaXMuZXZlbnRzW2VdPXRoaXMuZXZlbnRzW2VdPy5maWx0ZXIocj0+dCE9PXIpfWRlc3Ryb3koKXt0aGlzLmV2ZW50cz17fX19LEtBZT0xMDAvNixEMD17cGFzc2l2ZTohMX0sVUNyPWNsYXNze2NvbnN0cnVjdG9yKGUsdD17d2hlZWxNdWx0aXBsaWVyOjEsdG91Y2hNdWx0aXBsaWVyOjF9KXt0aGlzLmVsZW1lbnQ9ZSx0aGlzLm9wdGlvbnM9dCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLm9uV2luZG93UmVzaXplKCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLm9uV2hlZWwsRDApLHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLm9uVG91Y2hTdGFydCxEMCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5vblRvdWNoTW92ZSxEMCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLm9uVG91Y2hFbmQsRDApfXRvdWNoU3RhcnQ9e3g6MCx5OjB9O2xhc3REZWx0YT17eDowLHk6MH07d2luZG93PXt3aWR0aDowLGhlaWdodDowfTtlbWl0dGVyPW5ldyBKQWU7b24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uKGUsdCl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5vbldpbmRvd1Jlc2l6ZSwhMSksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLm9uV2hlZWwsRDApLHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLm9uVG91Y2hTdGFydCxEMCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5vblRvdWNoTW92ZSxEMCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLm9uVG91Y2hFbmQsRDApfW9uVG91Y2hTdGFydD1lPT57bGV0e2NsaWVudFg6dCxjbGllbnRZOnJ9PWUudGFyZ2V0VG91Y2hlcz9lLnRhcmdldFRvdWNoZXNbMF06ZTt0aGlzLnRvdWNoU3RhcnQueD10LHRoaXMudG91Y2hTdGFydC55PXIsdGhpcy5sYXN0RGVsdGE9e3g6MCx5OjB9LHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6MCxkZWx0YVk6MCxldmVudDplfSl9O29uVG91Y2hNb3ZlPWU9PntsZXR7Y2xpZW50WDp0LGNsaWVudFk6cn09ZS50YXJnZXRUb3VjaGVzP2UudGFyZ2V0VG91Y2hlc1swXTplLGk9LSh0LXRoaXMudG91Y2hTdGFydC54KSp0aGlzLm9wdGlvbnMudG91Y2hNdWx0aXBsaWVyLGE9LShyLXRoaXMudG91Y2hTdGFydC55KSp0aGlzLm9wdGlvbnMudG91Y2hNdWx0aXBsaWVyO3RoaXMudG91Y2hTdGFydC54PXQsdGhpcy50b3VjaFN0YXJ0Lnk9cix0aGlzLmxhc3REZWx0YT17eDppLHk6YX0sdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDppLGRlbHRhWTphLGV2ZW50OmV9KX07b25Ub3VjaEVuZD1lPT57dGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDp0aGlzLmxhc3REZWx0YS54LGRlbHRhWTp0aGlzLmxhc3REZWx0YS55LGV2ZW50OmV9KX07b25XaGVlbD1lPT57bGV0e2RlbHRhWDp0LGRlbHRhWTpyLGRlbHRhTW9kZTppfT1lLGE9aT09PTE/S0FlOmk9PT0yP3RoaXMud2luZG93LndpZHRoOjEsbj1pPT09MT9LQWU6aT09PTI/dGhpcy53aW5kb3cuaGVpZ2h0OjE7dCo9YSxyKj1uLHQqPXRoaXMub3B0aW9ucy53aGVlbE11bHRpcGxpZXIscio9dGhpcy5vcHRpb25zLndoZWVsTXVsdGlwbGllcix0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOnQsZGVsdGFZOnIsZXZlbnQ6ZX0pfTtvbldpbmRvd1Jlc2l6ZT0oKT0+e3RoaXMud2luZG93PXt3aWR0aDp3aW5kb3cuaW5uZXJXaWR0aCxoZWlnaHQ6d2luZG93LmlubmVySGVpZ2h0fX19LGVEZT1lPT5NYXRoLm1pbigxLDEuMDAxLU1hdGgucG93KDIsLTEwKmUpKSxqNz1jbGFzc3tfaXNTY3JvbGxpbmc9ITE7X2lzU3RvcHBlZD0hMTtfaXNMb2NrZWQ9ITE7X3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITE7X3Jlc2V0VmVsb2NpdHlUaW1lb3V0PW51bGw7X3JhZklkPW51bGw7aXNUb3VjaGluZzt0aW1lPTA7dXNlckRhdGE9e307bGFzdFZlbG9jaXR5PTA7dmVsb2NpdHk9MDtkaXJlY3Rpb249MDtvcHRpb25zO3RhcmdldFNjcm9sbDthbmltYXRlZFNjcm9sbDthbmltYXRlPW5ldyBxQ3I7ZW1pdHRlcj1uZXcgSkFlO2RpbWVuc2lvbnM7dmlydHVhbFNjcm9sbDtjb25zdHJ1Y3Rvcih7d3JhcHBlcjplPXdpbmRvdyxjb250ZW50OnQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGV2ZW50c1RhcmdldDpyPWUsc21vb3RoV2hlZWw6aT0hMCxzeW5jVG91Y2g6YT0hMSxzeW5jVG91Y2hMZXJwOm49LjA3NSx0b3VjaEluZXJ0aWFFeHBvbmVudDpvPTEuNyxkdXJhdGlvbjpzLGVhc2luZzpsLGxlcnA6Yz0uMSxpbmZpbml0ZTp1PSExLG9yaWVudGF0aW9uOmQ9InZlcnRpY2FsIixnZXN0dXJlT3JpZW50YXRpb246aD1kPT09Imhvcml6b250YWwiPyJib3RoIjoidmVydGljYWwiLHRvdWNoTXVsdGlwbGllcjpmPTEsd2hlZWxNdWx0aXBsaWVyOng9MSxhdXRvUmVzaXplOnY9ITAscHJldmVudDpiLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOnc9ITAsYXV0b1JhZjprPSExLGFuY2hvcnM6Tz0hMSxhdXRvVG9nZ2xlOno9ITEsYWxsb3dOZXN0ZWRTY3JvbGw6TT0hMSxfX2V4cGVyaW1lbnRhbF9fbmFpdmVEaW1lbnNpb25zOkY9ITEsbmFpdmVEaW1lbnNpb25zOkQ9RixzdG9wSW5lcnRpYU9uTmF2aWdhdGU6Tj0hMX09e30pe3dpbmRvdy5sZW5pc1ZlcnNpb249T0NyLCghZXx8ZT09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJihlPXdpbmRvdyksdHlwZW9mIHM9PSJudW1iZXIiJiZ0eXBlb2YgbCE9ImZ1bmN0aW9uIj9sPWVEZTp0eXBlb2YgbD09ImZ1bmN0aW9uIiYmdHlwZW9mIHMhPSJudW1iZXIiJiYocz0xKSx0aGlzLm9wdGlvbnM9e3dyYXBwZXI6ZSxjb250ZW50OnQsZXZlbnRzVGFyZ2V0OnIsc21vb3RoV2hlZWw6aSxzeW5jVG91Y2g6YSxzeW5jVG91Y2hMZXJwOm4sdG91Y2hJbmVydGlhRXhwb25lbnQ6byxkdXJhdGlvbjpzLGVhc2luZzpsLGxlcnA6YyxpbmZpbml0ZTp1LGdlc3R1cmVPcmllbnRhdGlvbjpoLG9yaWVudGF0aW9uOmQsdG91Y2hNdWx0aXBsaWVyOmYsd2hlZWxNdWx0aXBsaWVyOngsYXV0b1Jlc2l6ZTp2LHByZXZlbnQ6Yix2aXJ0dWFsU2Nyb2xsOnksb3ZlcnNjcm9sbDp3LGF1dG9SYWY6ayxhbmNob3JzOk8sYXV0b1RvZ2dsZTp6LGFsbG93TmVzdGVkU2Nyb2xsOk0sbmFpdmVEaW1lbnNpb25zOkQsc3RvcEluZXJ0aWFPbk5hdmlnYXRlOk59LHRoaXMuZGltZW5zaW9ucz1uZXcgVkNyKGUsdCx7YXV0b1Jlc2l6ZTp2fSksdGhpcy51cGRhdGVDbGFzc05hbWUoKSx0aGlzLnRhcmdldFNjcm9sbD10aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMub3B0aW9ucy53cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5vbk5hdGl2ZVNjcm9sbCwhMSksdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIix0aGlzLm9uU2Nyb2xsRW5kLHtjYXB0dXJlOiEwfSksKHRoaXMub3B0aW9ucy5hbmNob3JzfHx0aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlKSYmdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMub25DbGljaywhMSksdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHRoaXMub25Qb2ludGVyRG93biwhMSksdGhpcy52aXJ0dWFsU2Nyb2xsPW5ldyBVQ3Iocix7dG91Y2hNdWx0aXBsaWVyOmYsd2hlZWxNdWx0aXBsaWVyOnh9KSx0aGlzLnZpcnR1YWxTY3JvbGwub24oInNjcm9sbCIsdGhpcy5vblZpcnR1YWxTY3JvbGwpLHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlJiYodGhpcy5jaGVja092ZXJmbG93KCksdGhpcy5yb290RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0aGlzLm9uVHJhbnNpdGlvbkVuZCx7cGFzc2l2ZTohMH0pKSx0aGlzLm9wdGlvbnMuYXV0b1JhZiYmKHRoaXMuX3JhZklkPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnJhZikpfWRlc3Ryb3koKXt0aGlzLmVtaXR0ZXIuZGVzdHJveSgpLHRoaXMub3B0aW9ucy53cmFwcGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5vbk5hdGl2ZVNjcm9sbCwhMSksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIix0aGlzLm9uU2Nyb2xsRW5kLHtjYXB0dXJlOiEwfSksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHRoaXMub25Qb2ludGVyRG93biwhMSksKHRoaXMub3B0aW9ucy5hbmNob3JzfHx0aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlKSYmdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMub25DbGljaywhMSksdGhpcy52aXJ0dWFsU2Nyb2xsLmRlc3Ryb3koKSx0aGlzLmRpbWVuc2lvbnMuZGVzdHJveSgpLHRoaXMuY2xlYW5VcENsYXNzTmFtZSgpLHRoaXMuX3JhZklkJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWZJZCl9b24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uKGUsdCl9b2ZmKGUsdCl7cmV0dXJuIHRoaXMuZW1pdHRlci5vZmYoZSx0KX1vblNjcm9sbEVuZD1lPT57ZSBpbnN0YW5jZW9mIEN1c3RvbUV2ZW50fHwodGhpcy5pc1Njcm9sbGluZz09PSJzbW9vdGgifHx0aGlzLmlzU2Nyb2xsaW5nPT09ITEpJiZlLnN0b3BQcm9wYWdhdGlvbigpfTtkaXNwYXRjaFNjcm9sbGVuZEV2ZW50PSgpPT57dGhpcy5vcHRpb25zLndyYXBwZXIuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNjcm9sbGVuZCIse2J1YmJsZXM6dGhpcy5vcHRpb25zLndyYXBwZXI9PT13aW5kb3csZGV0YWlsOntsZW5pc1Njcm9sbEVuZDohMH19KSl9O2dldCBvdmVyZmxvdygpe2xldCBlPXRoaXMuaXNIb3Jpem9udGFsPyJvdmVyZmxvdy14Ijoib3ZlcmZsb3cteSI7cmV0dXJuIGdldENvbXB1dGVkU3R5bGUodGhpcy5yb290RWxlbWVudClbZV19Y2hlY2tPdmVyZmxvdygpe1siaGlkZGVuIiwiY2xpcCJdLmluY2x1ZGVzKHRoaXMub3ZlcmZsb3cpP3RoaXMuaW50ZXJuYWxTdG9wKCk6dGhpcy5pbnRlcm5hbFN0YXJ0KCl9b25UcmFuc2l0aW9uRW5kPWU9PntlLnByb3BlcnR5TmFtZS5pbmNsdWRlcygib3ZlcmZsb3ciKSYmdGhpcy5jaGVja092ZXJmbG93KCl9O3NldFNjcm9sbChlKXt0aGlzLmlzSG9yaXpvbnRhbD90aGlzLm9wdGlvbnMud3JhcHBlci5zY3JvbGxUbyh7bGVmdDplLGJlaGF2aW9yOiJpbnN0YW50In0pOnRoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHt0b3A6ZSxiZWhhdmlvcjoiaW5zdGFudCJ9KX1vbkNsaWNrPWU9PntsZXQgcj1lLmNvbXBvc2VkUGF0aCgpLmZpbHRlcihpPT5pIGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQmJmkuZ2V0QXR0cmlidXRlKCJocmVmIikpO2lmKHRoaXMub3B0aW9ucy5hbmNob3JzKXtsZXQgaT1yLmZpbmQoYT0+YS5nZXRBdHRyaWJ1dGUoImhyZWYiKT8uaW5jbHVkZXMoIiMiKSk7aWYoaSl7bGV0IGE9aS5nZXRBdHRyaWJ1dGUoImhyZWYiKTtpZihhKXtsZXQgbj10eXBlb2YgdGhpcy5vcHRpb25zLmFuY2hvcnM9PSJvYmplY3QiJiZ0aGlzLm9wdGlvbnMuYW5jaG9ycz90aGlzLm9wdGlvbnMuYW5jaG9yczp2b2lkIDAsbz1gIyR7YS5zcGxpdCgiIyIpWzFdfWA7dGhpcy5zY3JvbGxUbyhvLG4pfX19dGhpcy5vcHRpb25zLnN0b3BJbmVydGlhT25OYXZpZ2F0ZSYmci5maW5kKGE9PmEuaG9zdD09PXdpbmRvdy5sb2NhdGlvbi5ob3N0KSYmdGhpcy5yZXNldCgpfTtvblBvaW50ZXJEb3duPWU9PntlLmJ1dHRvbj09PTEmJnRoaXMucmVzZXQoKX07b25WaXJ0dWFsU2Nyb2xsPWU9PntpZih0eXBlb2YgdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGw9PSJmdW5jdGlvbiImJnRoaXMub3B0aW9ucy52aXJ0dWFsU2Nyb2xsKGUpPT09ITEpcmV0dXJuO2xldHtkZWx0YVg6dCxkZWx0YVk6cixldmVudDppfT1lO2lmKHRoaXMuZW1pdHRlci5lbWl0KCJ2aXJ0dWFsLXNjcm9sbCIse2RlbHRhWDp0LGRlbHRhWTpyLGV2ZW50Oml9KSxpLmN0cmxLZXl8fGkubGVuaXNTdG9wUHJvcGFnYXRpb24pcmV0dXJuO2xldCBhPWkudHlwZS5pbmNsdWRlcygidG91Y2giKSxuPWkudHlwZS5pbmNsdWRlcygid2hlZWwiKTt0aGlzLmlzVG91Y2hpbmc9aS50eXBlPT09InRvdWNoc3RhcnQifHxpLnR5cGU9PT0idG91Y2htb3ZlIjtsZXQgbz10PT09MCYmcj09PTA7aWYodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmYSYmaS50eXBlPT09InRvdWNoc3RhcnQiJiZvJiYhdGhpcy5pc1N0b3BwZWQmJiF0aGlzLmlzTG9ja2VkKXt0aGlzLnJlc2V0KCk7cmV0dXJufWxldCBsPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0idmVydGljYWwiJiZyPT09MHx8dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJob3Jpem9udGFsIiYmdD09PTA7aWYob3x8bClyZXR1cm47bGV0IGM9aS5jb21wb3NlZFBhdGgoKTtjPWMuc2xpY2UoMCxjLmluZGV4T2YodGhpcy5yb290RWxlbWVudCkpO2xldCB1PXRoaXMub3B0aW9ucy5wcmV2ZW50O2lmKGMuZmluZChiPT5iIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJih0eXBlb2YgdT09ImZ1bmN0aW9uIiYmdT8uKGIpfHxiLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQiKXx8YSYmYi5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXRvdWNoIil8fG4mJmIuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudC13aGVlbCIpfHx0aGlzLm9wdGlvbnMuYWxsb3dOZXN0ZWRTY3JvbGwmJnRoaXMuY2hlY2tOZXN0ZWRTY3JvbGwoYix7ZGVsdGFYOnQsZGVsdGFZOnJ9KSkpKXJldHVybjtpZih0aGlzLmlzU3RvcHBlZHx8dGhpcy5pc0xvY2tlZCl7aS5jYW5jZWxhYmxlJiZpLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCEodGhpcy5vcHRpb25zLnN5bmNUb3VjaCYmYXx8dGhpcy5vcHRpb25zLnNtb290aFdoZWVsJiZuKSl7dGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIix0aGlzLmFuaW1hdGUuc3RvcCgpLGkubGVuaXNTdG9wUHJvcGFnYXRpb249ITA7cmV0dXJufWxldCBoPXI7dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJib3RoIj9oPU1hdGguYWJzKHIpPk1hdGguYWJzKHQpP3I6dDp0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiYoaD10KSwoIXRoaXMub3B0aW9ucy5vdmVyc2Nyb2xsfHx0aGlzLm9wdGlvbnMuaW5maW5pdGV8fHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93JiZ0aGlzLmxpbWl0PjAmJih0aGlzLmFuaW1hdGVkU2Nyb2xsPjAmJnRoaXMuYW5pbWF0ZWRTY3JvbGw8dGhpcy5saW1pdHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PTAmJnI+MHx8dGhpcy5hbmltYXRlZFNjcm9sbD09PXRoaXMubGltaXQmJnI8MCkpJiYoaS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMCksaS5jYW5jZWxhYmxlJiZpLnByZXZlbnREZWZhdWx0KCk7bGV0IGY9YSYmdGhpcy5vcHRpb25zLnN5bmNUb3VjaCx2PWEmJmkudHlwZT09PSJ0b3VjaGVuZCI7diYmKGg9TWF0aC5zaWduKHRoaXMudmVsb2NpdHkpKk1hdGgucG93KE1hdGguYWJzKHRoaXMudmVsb2NpdHkpLHRoaXMub3B0aW9ucy50b3VjaEluZXJ0aWFFeHBvbmVudCkpLHRoaXMuc2Nyb2xsVG8odGhpcy50YXJnZXRTY3JvbGwraCx7cHJvZ3JhbW1hdGljOiExLC4uLmY/e2xlcnA6dj90aGlzLm9wdGlvbnMuc3luY1RvdWNoTGVycDoxfTp7bGVycDp0aGlzLm9wdGlvbnMubGVycCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuZHVyYXRpb24sZWFzaW5nOnRoaXMub3B0aW9ucy5lYXNpbmd9fSl9O3Jlc2l6ZSgpe3RoaXMuZGltZW5zaW9ucy5yZXNpemUoKSx0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMuZW1pdCgpfWVtaXQoKXt0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix0aGlzKX1vbk5hdGl2ZVNjcm9sbD0oKT0+e2lmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0IT09bnVsbCYmKGNsZWFyVGltZW91dCh0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dCksdGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbCksdGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCl7dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtyZXR1cm59aWYodGhpcy5pc1Njcm9sbGluZz09PSExfHx0aGlzLmlzU2Nyb2xsaW5nPT09Im5hdGl2ZSIpe2xldCBlPXRoaXMuYW5pbWF0ZWRTY3JvbGw7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD10aGlzLmFjdHVhbFNjcm9sbCx0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9dGhpcy5hbmltYXRlZFNjcm9sbC1lLHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLmFuaW1hdGVkU2Nyb2xsLWUpLHRoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1Njcm9sbGluZz0ibmF0aXZlIiksdGhpcy5lbWl0KCksdGhpcy52ZWxvY2l0eSE9PTAmJih0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PTAsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmVtaXQoKX0sNDAwKSl9fTtyZXNldCgpe3RoaXMuaXNMb2NrZWQ9ITEsdGhpcy5pc1Njcm9sbGluZz0hMSx0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHk9MCx0aGlzLmFuaW1hdGUuc3RvcCgpfXN0YXJ0KCl7aWYodGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCJvdmVyZmxvdyIpO3JldHVybn10aGlzLmludGVybmFsU3RhcnQoKX19aW50ZXJuYWxTdGFydCgpe3RoaXMuaXNTdG9wcGVkJiYodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMuZW1pdCgpKX1zdG9wKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtpZih0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSl7dGhpcy5yb290RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgib3ZlcmZsb3ciLCJjbGlwIik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdG9wKCl9fWludGVybmFsU3RvcCgpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5yZXNldCgpLHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuZW1pdCgpKX1yYWY9ZT0+e2xldCB0PWUtKHRoaXMudGltZXx8ZSk7dGhpcy50aW1lPWUsdGhpcy5hbmltYXRlLmFkdmFuY2UodCouMDAxKSx0aGlzLm9wdGlvbnMuYXV0b1JhZiYmKHRoaXMuX3JhZklkPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLnJhZikpfTtzY3JvbGxUbyhlLHtvZmZzZXQ6dD0wLGltbWVkaWF0ZTpyPSExLGxvY2s6aT0hMSxwcm9ncmFtbWF0aWM6YT0hMCxsZXJwOm49YT90aGlzLm9wdGlvbnMubGVycDp2b2lkIDAsZHVyYXRpb246bz1hP3RoaXMub3B0aW9ucy5kdXJhdGlvbjp2b2lkIDAsZWFzaW5nOnM9YT90aGlzLm9wdGlvbnMuZWFzaW5nOnZvaWQgMCxvblN0YXJ0Omwsb25Db21wbGV0ZTpjLGZvcmNlOnU9ITEsdXNlckRhdGE6ZH09e30pe2lmKCEoKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKSYmIXUpKXtpZih0eXBlb2YgZT09InN0cmluZyImJlsidG9wIiwibGVmdCIsInN0YXJ0IiwiIyJdLmluY2x1ZGVzKGUpKWU9MDtlbHNlIGlmKHR5cGVvZiBlPT0ic3RyaW5nIiYmWyJib3R0b20iLCJyaWdodCIsImVuZCJdLmluY2x1ZGVzKGUpKWU9dGhpcy5saW1pdDtlbHNle2xldCBoO2lmKHR5cGVvZiBlPT0ic3RyaW5nIj8oaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGUpLGh8fChlPT09IiN0b3AiP2U9MDpjb25zb2xlLndhcm4oIkxlbmlzOiBUYXJnZXQgbm90IGZvdW5kIixlKSkpOmUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmZT8ubm9kZVR5cGUmJihoPWUpLGgpe2lmKHRoaXMub3B0aW9ucy53cmFwcGVyIT09d2luZG93KXtsZXQgeD10aGlzLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3QtPXRoaXMuaXNIb3Jpem9udGFsP3gubGVmdDp4LnRvcH1sZXQgZj1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2U9KHRoaXMuaXNIb3Jpem9udGFsP2YubGVmdDpmLnRvcCkrdGhpcy5hbmltYXRlZFNjcm9sbH19aWYodHlwZW9mIGU9PSJudW1iZXIiKXtpZihlKz10LGU9TWF0aC5yb3VuZChlKSx0aGlzLm9wdGlvbnMuaW5maW5pdGUpe2lmKGEpe3RoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5zY3JvbGw7bGV0IGg9ZS10aGlzLmFuaW1hdGVkU2Nyb2xsO2g+dGhpcy5saW1pdC8yP2U9ZS10aGlzLmxpbWl0Omg8LXRoaXMubGltaXQvMiYmKGU9ZSt0aGlzLmxpbWl0KX19ZWxzZSBlPVFBZSgwLGUsdGhpcy5saW1pdCk7aWYoZT09PXRoaXMudGFyZ2V0U2Nyb2xsKXtsPy4odGhpcyksYz8uKHRoaXMpO3JldHVybn1pZih0aGlzLnVzZXJEYXRhPWQ/P3t9LHIpe3RoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9ZSx0aGlzLnNldFNjcm9sbCh0aGlzLnNjcm9sbCksdGhpcy5yZXNldCgpLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpLHRoaXMuZW1pdCgpLGM/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSk7cmV0dXJufWF8fCh0aGlzLnRhcmdldFNjcm9sbD1lKSx0eXBlb2Ygbz09Im51bWJlciImJnR5cGVvZiBzIT0iZnVuY3Rpb24iP3M9ZURlOnR5cGVvZiBzPT0iZnVuY3Rpb24iJiZ0eXBlb2YgbyE9Im51bWJlciImJihvPTEpLHRoaXMuYW5pbWF0ZS5mcm9tVG8odGhpcy5hbmltYXRlZFNjcm9sbCxlLHtkdXJhdGlvbjpvLGVhc2luZzpzLGxlcnA6bixvblN0YXJ0OigpPT57aSYmKHRoaXMuaXNMb2NrZWQ9ITApLHRoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsbD8uKHRoaXMpfSxvblVwZGF0ZTooaCxmKT0+e3RoaXMuaXNTY3JvbGxpbmc9InNtb290aCIsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eSx0aGlzLnZlbG9jaXR5PWgtdGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmRpcmVjdGlvbj1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSksdGhpcy5hbmltYXRlZFNjcm9sbD1oLHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSxhJiYodGhpcy50YXJnZXRTY3JvbGw9aCksZnx8dGhpcy5lbWl0KCksZiYmKHRoaXMucmVzZXQoKSx0aGlzLmVtaXQoKSxjPy4odGhpcyksdGhpcy51c2VyRGF0YT17fSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRpc3BhdGNoU2Nyb2xsZW5kRXZlbnQoKX0pLHRoaXMucHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpKX19KX19fXByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQoKXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITF9KX1jaGVja05lc3RlZFNjcm9sbChlLHtkZWx0YVg6dCxkZWx0YVk6cn0pe2xldCBpPURhdGUubm93KCksYT1lLl9sZW5pcz8/PXt9LG4sbyxzLGwsYyx1LGQsaCxmPXRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb247aWYoaS0oYS50aW1lPz8wKT4yZTMpe2EudGltZT1EYXRlLm5vdygpO2xldCB6PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpO2EuY29tcHV0ZWRTdHlsZT16O2xldCBNPXoub3ZlcmZsb3dYLEY9ei5vdmVyZmxvd1k7aWYobj1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoTSksbz1bImF1dG8iLCJvdmVybGF5Iiwic2Nyb2xsIl0uaW5jbHVkZXMoRiksYS5oYXNPdmVyZmxvd1g9bixhLmhhc092ZXJmbG93WT1vLCFuJiYhb3x8Zj09PSJ2ZXJ0aWNhbCImJiFvfHxmPT09Imhvcml6b250YWwiJiYhbilyZXR1cm4hMTtjPWUuc2Nyb2xsV2lkdGgsdT1lLnNjcm9sbEhlaWdodCxkPWUuY2xpZW50V2lkdGgsaD1lLmNsaWVudEhlaWdodCxzPWM+ZCxsPXU+aCxhLmlzU2Nyb2xsYWJsZVg9cyxhLmlzU2Nyb2xsYWJsZVk9bCxhLnNjcm9sbFdpZHRoPWMsYS5zY3JvbGxIZWlnaHQ9dSxhLmNsaWVudFdpZHRoPWQsYS5jbGllbnRIZWlnaHQ9aH1lbHNlIHM9YS5pc1Njcm9sbGFibGVYLGw9YS5pc1Njcm9sbGFibGVZLG49YS5oYXNPdmVyZmxvd1gsbz1hLmhhc092ZXJmbG93WSxjPWEuc2Nyb2xsV2lkdGgsdT1hLnNjcm9sbEhlaWdodCxkPWEuY2xpZW50V2lkdGgsaD1hLmNsaWVudEhlaWdodDtpZighbiYmIW98fCFzJiYhbHx8Zj09PSJ2ZXJ0aWNhbCImJighb3x8IWwpfHxmPT09Imhvcml6b250YWwiJiYoIW58fCFzKSlyZXR1cm4hMTtsZXQgeDtpZihmPT09Imhvcml6b250YWwiKXg9IngiO2Vsc2UgaWYoZj09PSJ2ZXJ0aWNhbCIpeD0ieSI7ZWxzZXtsZXQgej10IT09MCxNPXIhPT0wO3omJm4mJnMmJih4PSJ4IiksTSYmbyYmbCYmKHg9InkiKX1pZigheClyZXR1cm4hMTtsZXQgdixiLHksdyxrO2lmKHg9PT0ieCIpdj1lLnNjcm9sbExlZnQsYj1jLWQseT10LHc9bixrPXM7ZWxzZSBpZih4PT09InkiKXY9ZS5zY3JvbGxUb3AsYj11LWgseT1yLHc9byxrPWw7ZWxzZSByZXR1cm4hMTtyZXR1cm4oeT4wP3Y8Yjp2PjApJiZ3JiZrfWdldCByb290RWxlbWVudCgpe3JldHVybiB0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdz9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6dGhpcy5vcHRpb25zLndyYXBwZXJ9Z2V0IGxpbWl0KCl7cmV0dXJuIHRoaXMub3B0aW9ucy5uYWl2ZURpbWVuc2lvbnM/dGhpcy5pc0hvcml6b250YWw/dGhpcy5yb290RWxlbWVudC5zY3JvbGxXaWR0aC10aGlzLnJvb3RFbGVtZW50LmNsaWVudFdpZHRoOnRoaXMucm9vdEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LXRoaXMucm9vdEVsZW1lbnQuY2xpZW50SGVpZ2h0OnRoaXMuZGltZW5zaW9ucy5saW1pdFt0aGlzLmlzSG9yaXpvbnRhbD8ieCI6InkiXX1nZXQgaXNIb3Jpem9udGFsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj09PSJob3Jpem9udGFsIn1nZXQgYWN0dWFsU2Nyb2xsKCl7bGV0IGU9dGhpcy5vcHRpb25zLndyYXBwZXI7cmV0dXJuIHRoaXMuaXNIb3Jpem9udGFsP2Uuc2Nyb2xsWD8/ZS5zY3JvbGxMZWZ0OmUuc2Nyb2xsWT8/ZS5zY3JvbGxUb3B9Z2V0IHNjcm9sbCgpe3JldHVybiB0aGlzLm9wdGlvbnMuaW5maW5pdGU/SENyKHRoaXMuYW5pbWF0ZWRTY3JvbGwsdGhpcy5saW1pdCk6dGhpcy5hbmltYXRlZFNjcm9sbH1nZXQgcHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy5saW1pdD09PTA/MTp0aGlzLnNjcm9sbC90aGlzLmxpbWl0fWdldCBpc1Njcm9sbGluZygpe3JldHVybiB0aGlzLl9pc1Njcm9sbGluZ31zZXQgaXNTY3JvbGxpbmcoZSl7dGhpcy5faXNTY3JvbGxpbmchPT1lJiYodGhpcy5faXNTY3JvbGxpbmc9ZSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTdG9wcGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RvcHBlZH1zZXQgaXNTdG9wcGVkKGUpe3RoaXMuX2lzU3RvcHBlZCE9PWUmJih0aGlzLl9pc1N0b3BwZWQ9ZSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNMb2NrZWQoKXtyZXR1cm4gdGhpcy5faXNMb2NrZWR9c2V0IGlzTG9ja2VkKGUpe3RoaXMuX2lzTG9ja2VkIT09ZSYmKHRoaXMuX2lzTG9ja2VkPWUsdGhpcy51cGRhdGVDbGFzc05hbWUoKSl9Z2V0IGlzU21vb3RoKCl7cmV0dXJuIHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIn1nZXQgY2xhc3NOYW1lKCl7bGV0IGU9ImxlbmlzIjtyZXR1cm4gdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJihlKz0iIGxlbmlzLWF1dG9Ub2dnbGUiKSx0aGlzLmlzU3RvcHBlZCYmKGUrPSIgbGVuaXMtc3RvcHBlZCIpLHRoaXMuaXNMb2NrZWQmJihlKz0iIGxlbmlzLWxvY2tlZCIpLHRoaXMuaXNTY3JvbGxpbmcmJihlKz0iIGxlbmlzLXNjcm9sbGluZyIpLHRoaXMuaXNTY3JvbGxpbmc9PT0ic21vb3RoIiYmKGUrPSIgbGVuaXMtc21vb3RoIiksZX11cGRhdGVDbGFzc05hbWUoKXt0aGlzLmNsZWFuVXBDbGFzc05hbWUoKSx0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT1gJHt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZX0gJHt0aGlzLmNsYXNzTmFtZX1gLnRyaW0oKX1jbGVhblVwQ2xhc3NOYW1lKCl7dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWU9dGhpcy5yb290RWxlbWVudC5jbGFzc05hbWUucmVwbGFjZSgvbGVuaXMoLVx3Kyk/L2csIiIpLnRyaW0oKX19fSk7dmFyIEFHPWplKChfRyxMRyk9PnsoZnVuY3Rpb24oZSx0KXt0eXBlb2YgX0c9PSJvYmplY3QiJiZ0eXBlb2YgTEc8InUiP0xHLmV4cG9ydHM9dCgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOihlPWV8fHNlbGYsZS5Td2VldFNjcm9sbD10KCkpfSkoX0csZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihMKXtmb3IodmFyIFUsVj0xLFg9YXJndW1lbnRzLmxlbmd0aDtWPFg7VisrKXtVPWFyZ3VtZW50c1tWXTtmb3IodmFyIGRlIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsZGUpJiYoTFtkZV09VVtkZV0pfXJldHVybiBMfSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdD0hISh0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCkscj10P3dpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5JiZ3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToiOiExLGk9KGZ1bmN0aW9uKCl7dmFyIEE9ITE7aWYoIXQpcmV0dXJuIEE7dHJ5e3ZhciBMPXdpbmRvdyxVPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe0E9ITB9fSk7TC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLFUpLEwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxVKX1jYXRjaHt9cmV0dXJuIEF9KSgpLGE9ZnVuY3Rpb24oQSl7cmV0dXJuIHR5cGVvZiBBPT0ic3RyaW5nIn0sbj1mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIEE9PSJmdW5jdGlvbiJ9LG89ZnVuY3Rpb24oQSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQSl9LHM9ZnVuY3Rpb24oQSl7cmV0dXJuIW8oQSkmJkEtcGFyc2VGbG9hdChBKSsxPj0wfSxsPWZ1bmN0aW9uKEEsTCl7cmV0dXJuIEEmJkEuaGFzT3duUHJvcGVydHkoTCl9LGM9dD93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpudWxsLHU9dD93aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOm51bGwsZD1NYXRoLmNvcyxoPU1hdGguc2luLGY9TWF0aC5wb3cseD1NYXRoLnNxcnQsdj1NYXRoLlBJLGI9e2xpbmVhcjpmdW5jdGlvbihBKXtyZXR1cm4gQX0sZWFzZUluUXVhZDpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKihMLz1YKSpMK1V9LGVhc2VPdXRRdWFkOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKEwvPVgpKihMLTIpK1V9LGVhc2VJbk91dFF1YWQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxP1YvMipMKkwrVTotVi8yKigtLUwqKEwtMiktMSkrVX0sZWFzZUluQ3ViaWM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMK1V9LGVhc2VPdXRDdWJpYzpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKigoTD1ML1gtMSkqTCpMKzEpK1V9LGVhc2VJbk91dEN1YmljOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuKEwvPVgvMik8MT9WLzIqTCpMKkwrVTpWLzIqKChMLT0yKSpMKkwrMikrVX0sZWFzZUluUXVhcnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMKkwrVX0sZWFzZU91dFF1YXJ0OmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKChMPUwvWC0xKSpMKkwqTC0xKStVfSxlYXNlSW5PdXRRdWFydDpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybihMLz1YLzIpPDE/Vi8yKkwqTCpMKkwrVTotVi8yKigoTC09MikqTCpMKkwtMikrVX0sZWFzZUluUXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMKkwqTCtVfSxlYXNlT3V0UXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooKEw9TC9YLTEpKkwqTCpMKkwrMSkrVX0sZWFzZUluT3V0UXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxP1YvMipMKkwqTCpMKkwrVTpWLzIqKChMLT0yKSpMKkwqTCpMKzIpK1V9LGVhc2VJblNpbmU6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4tVipkKEwvWCoodi8yKSkrVitVfSxlYXNlT3V0U2luZTpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKmgoTC9YKih2LzIpKStVfSxlYXNlSW5PdXRTaW5lOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYvMiooZCh2KkwvWCktMSkrVX0sZWFzZUluRXhwbzpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBMPT09MD9VOlYqZigyLDEwKihML1gtMSkpK1V9LGVhc2VPdXRFeHBvOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuIEw9PT1YP1UrVjpWKigtZigyLC0xMCpML1gpKzEpK1V9LGVhc2VJbk91dEV4cG86ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gTD09PTA/VTpMPT09WD9VK1Y6KEwvPVgvMik8MT9WLzIqZigyLDEwKihMLTEpKStVOlYvMiooLWYoMiwtMTAqLS1MKSsyKStVfSxlYXNlSW5DaXJjOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKHgoMS0oTC89WCkqTCktMSkrVX0sZWFzZU91dENpcmM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gVip4KDEtKEw9TC9YLTEpKkwpK1V9LGVhc2VJbk91dENpcmM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxPy1WLzIqKHgoMS1MKkwpLTEpK1U6Vi8yKih4KDEtKEwtPTIpKkwpKzEpK1V9fSx5PWZ1bmN0aW9uKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChBP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoQSk6W10pfSx3PWZ1bmN0aW9uKEEpe3JldHVybiB5KEEpLnNoaWZ0KCl8fG51bGx9LGs9ZnVuY3Rpb24oQSl7cmV0dXJuIEEgaW5zdGFuY2VvZiBFbGVtZW50fSxPPWZ1bmN0aW9uKEEpe3JldHVybiBBPT09d2luZG93fSx6PWZ1bmN0aW9uKEEpe3JldHVybiBBPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxBPT09ZG9jdW1lbnQuYm9keX0sTT1mdW5jdGlvbihBLEwpe2lmKGsoTCkpcmV0dXJuIEE9PT1MO2Zvcih2YXIgVT15KEwpLFY9VS5sZW5ndGg7LS1WPj0wJiZVW1ZdIT09QTspO3JldHVybiBWPi0xfSxGPWZ1bmN0aW9uKEEpe3JldHVybiBNYXRoLm1heChBLnNjcm9sbEhlaWdodCxBLmNsaWVudEhlaWdodCxBLm9mZnNldEhlaWdodCl9LEQ9ZnVuY3Rpb24oQSl7cmV0dXJuIE1hdGgubWF4KEEuc2Nyb2xsV2lkdGgsQS5jbGllbnRXaWR0aCxBLm9mZnNldFdpZHRoKX0sTj1mdW5jdGlvbihBKXtyZXR1cm57d2lkdGg6RChBKSxoZWlnaHQ6RihBKX19LFI9ZnVuY3Rpb24oQSl7dmFyIEw9TyhBKXx8eihBKTtyZXR1cm57dmlld3BvcnQ6e3dpZHRoOkw/TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTpBLmNsaWVudFdpZHRoLGhlaWdodDpMP3dpbmRvdy5pbm5lckhlaWdodDpBLmNsaWVudEhlaWdodH0sc2l6ZTpMP3t3aWR0aDpNYXRoLm1heChEKGRvY3VtZW50LmJvZHkpLEQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSksaGVpZ2h0Ok1hdGgubWF4KEYoZG9jdW1lbnQuYm9keSksRihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX06TihBKX19LF89e3k6InNjcm9sbFRvcCIseDoic2Nyb2xsTGVmdCJ9LFM9e3k6InBhZ2VZT2Zmc2V0Iix4OiJwYWdlWE9mZnNldCJ9LCQ9ZnVuY3Rpb24oQSxMKXtyZXR1cm4gTyhBKT9BW1NbTF1dOkFbX1tMXV19LFQ9ZnVuY3Rpb24oQSxMLFUpe2lmKE8oQSkpe3ZhciBWPVU9PT0ieSI7QS5zY3JvbGxUbyhWP0EucGFnZVhPZmZzZXQ6TCxWP0w6QS5wYWdlWU9mZnNldCl9ZWxzZSBBW19bVV1dPUx9LEU9ZnVuY3Rpb24oQSxMKXt2YXIgVT1BLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFUud2lkdGh8fFUuaGVpZ2h0KXt2YXIgVj17dG9wOjAsbGVmdDowfSxYPXZvaWQgMDtpZihPKEwpfHx6KEwpKVg9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFYudG9wPXdpbmRvd1tTLnldLFYubGVmdD13aW5kb3dbUy54XTtlbHNle1g9TDt2YXIgZGU9WC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtWLnRvcD1kZS50b3AqLTErWFtfLnldLFYubGVmdD1kZS5sZWZ0Ki0xK1hbXy54XX1yZXR1cm57dG9wOlUudG9wK1YudG9wLVguY2xpZW50VG9wLGxlZnQ6VS5sZWZ0K1YubGVmdC1YLmNsaWVudExlZnR9fXJldHVybiBVfSxxPShmdW5jdGlvbigpe3JldHVybiB0PyJvbndoZWVsImluIGRvY3VtZW50PyJ3aGVlbCI6Im1vdXNld2hlZWwiOiJ3aGVlbCJ9KSgpLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT0id2hlZWwiP3E6QX0sRz1mdW5jdGlvbihBLEwsVSxWLFgpe1Uuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGRlKXtBW0xdKEIoZGUpLFYsaT97cGFzc2l2ZTpYfTohMSl9KX0sZWU9ZnVuY3Rpb24oQSxMLFUsVil7cmV0dXJuIEcoQSwiYWRkRXZlbnRMaXN0ZW5lciIsTCxVLFYpfSxQPWZ1bmN0aW9uKEEsTCxVLFYpe3JldHVybiBHKEEsInJlbW92ZUV2ZW50TGlzdGVuZXIiLEwsVSxWKX0sZ2U9L14oXCt8LSk9KFxkKyg/OlwuXGQrKT8pJC8sd2U9ZnVuY3Rpb24oQSxMKXt2YXIgVT17dG9wOjAsbGVmdDowLHJlbGF0aXZlOiExfTtpZihsKEEsInRvcCIpfHxsKEEsImxlZnQiKSlVPWUoe30sVSxBKTtlbHNlIGlmKG8oQSkpaWYoQS5sZW5ndGg+MSlVLnRvcD1BWzBdLFUubGVmdD1BWzFdO2Vsc2UgaWYoQS5sZW5ndGg9PT0xKVUudG9wPUw/QVswXTowLFUubGVmdD1MPzA6QVswXTtlbHNlIHJldHVybiBudWxsO2Vsc2UgaWYocyhBKSlMP1UudG9wPUE6VS5sZWZ0PUE7ZWxzZSBpZihhKEEpKXt2YXIgVj1BLnRyaW0oKS5tYXRjaChnZSk7aWYoIVYpcmV0dXJuIG51bGw7dmFyIFg9VlsxXSxkZT1wYXJzZUludChWWzJdLDEwKTtYPT09IisiPyhVLnRvcD1MP2RlOjAsVS5sZWZ0PUw/MDpkZSk6KFUudG9wPUw/LWRlOjAsVS5sZWZ0PUw/MDotZGUpLFUucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gVX0sST17dHJpZ2dlcjoiW2RhdGEtc2Nyb2xsXSIsaGVhZGVyOiJbZGF0YS1zY3JvbGwtaGVhZGVyXSIsZHVyYXRpb246MWUzLGVhc2luZzoiZWFzZU91dFF1aW50IixvZmZzZXQ6MCx2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGNhbmNlbGxhYmxlOiEwLHVwZGF0ZVVSTDohMSxwcmV2ZW50RGVmYXVsdDohMCxzdG9wUHJvcGFnYXRpb246ITAsYmVmb3JlOm51bGwsYWZ0ZXI6bnVsbCxjYW5jZWw6bnVsbCxjb21wbGV0ZTpudWxsLHN0ZXA6bnVsbH0sbmU9ImNsaWNrIixrZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLFk9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShMLFUpe3ZhciBWPXRoaXM7dGhpcy4kZWw9bnVsbCx0aGlzLmN0eD17JHRyaWdnZXI6bnVsbCxvcHRzOm51bGwscHJvZ3Jlc3M6ITEscG9zOm51bGwsc3RhcnRQb3M6bnVsbCxlYXNpbmc6bnVsbCxzdGFydDowLGlkOjAsY2FuY2VsOiExLGhhc2g6bnVsbH0sdGhpcy5sb29wPWZ1bmN0aW9uKGRlKXt2YXIgdmU9VixMZT12ZS4kZWwsVz12ZS5jdHg7aWYoVy5zdGFydHx8KFcuc3RhcnQ9ZGUpLCFXLnByb2dyZXNzfHwhTGUpe1Yuc3RvcCgpO3JldHVybn12YXIgSD1XLm9wdHMsdGU9Vy5wb3MsYmU9Vy5zdGFydCx1ZT1XLnN0YXJ0UG9zLENlPVcuZWFzaW5nLGhlPUguZHVyYXRpb24saWU9e3RvcDoieSIsbGVmdDoieCJ9LFNlPWRlLWJlLEllPU1hdGgubWluKDEsTWF0aC5tYXgoU2UvaGUsMCkpO09iamVjdC5rZXlzKHRlKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXt2YXIgSz10ZVtaZV0sWj11ZVtaZV0sSj1LLVo7aWYoSiE9PTApe3ZhciBtZT1DZShJZSxoZSpJZSwwLDEsaGUpO1QoTGUsTWF0aC5yb3VuZChaK0oqbWUpLGllW1plXSl9fSksU2U8PWhlPyhWLmhvb2soSCwic3RlcCIsSWUpLFcuaWQ9QS5yYWYoVi5sb29wKSk6Vi5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihkZSl7Zm9yKHZhciB2ZT1WLm9wdHMsTGU9ZGUudGFyZ2V0O0xlJiZMZSE9PWRvY3VtZW50O0xlPUxlLnBhcmVudE5vZGUpaWYoTShMZSx2ZS50cmlnZ2VyKSl7dmFyIFc9SlNPTi5wYXJzZShMZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsLW9wdGlvbnMiKXx8Int9IiksSD1MZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsIiksdGU9SHx8TGUuZ2V0QXR0cmlidXRlKCJocmVmIiksYmU9ZSh7fSx2ZSxXKSx1ZT1iZS5wcmV2ZW50RGVmYXVsdCxDZT1iZS5zdG9wUHJvcGFnYXRpb24saGU9YmUudmVydGljYWwsaWU9YmUuaG9yaXpvbnRhbDt1ZSYmZGUucHJldmVudERlZmF1bHQoKSxDZSYmZGUuc3RvcFByb3BhZ2F0aW9uKCksVi5jdHguJHRyaWdnZXI9TGUsaWUmJmhlP1YudG8odGUsYmUpOmhlP1YudG9Ub3AodGUsYmUpOmllJiZWLnRvTGVmdCh0ZSxiZSk7YnJlYWt9fSx0aGlzLmhhbmRsZVN0b3A9ZnVuY3Rpb24oZGUpe3ZhciB2ZT1WLmN0eCxMZT12ZS5vcHRzO0xlJiZMZS5jYW5jZWxsYWJsZT8odmUuY2FuY2VsPSEwLFYuc3RvcCgpKTpkZS5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLm9wdHM9ZSh7fSxJLEx8fHt9KTt2YXIgWD1udWxsO3QmJih0eXBlb2YgVT09InN0cmluZyI/WD13KFUpOlUhPW51bGw/WD1VOlg9d2luZG93KSx0aGlzLiRlbD1YLFgmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIEEuY3JlYXRlPWZ1bmN0aW9uKEwsVSl7cmV0dXJuIG5ldyBBKEwsVSl9LEEucHJvdG90eXBlLnRvPWZ1bmN0aW9uKEwsVSl7aWYodCl7dmFyIFY9dGhpcyxYPVYuJGVsLGRlPVYuY3R4LHZlPVYub3B0cyxMZT1kZS4kdHJpZ2dlcixXPWUoe30sdmUsVXx8e30pLEg9Vy5vZmZzZXQsdGU9Vy52ZXJ0aWNhbCxiZT1XLmhvcml6b250YWwsdWU9ayhXLmhlYWRlcik/Vy5oZWFkZXI6dyhXLmhlYWRlciksQ2U9L14jLyxoZT1hKEwpJiZDZS50ZXN0KEwpP0w6bnVsbDtpZihkZS5vcHRzPVcsZGUuY2FuY2VsPSExLGRlLmhhc2g9aGUsdGhpcy5zdG9wKCksISFYKXt2YXIgaWU9d2UoSCx0ZSksU2U9d2UoTCx0ZSksSWU9e3RvcDowLGxlZnQ6MH07aWYoU2UpaWYoU2UucmVsYXRpdmUpe3ZhciBaZT0kKFgsdGU/InkiOiJ4Iik7SWUudG9wPXRlP1plK1NlLnRvcDpTZS50b3AsSWUubGVmdD10ZT9TZS5sZWZ0OlplK1NlLmxlZnR9ZWxzZSBJZT1TZTtlbHNlIGlmKGEoTCkmJkwhPT0iIyIpe3ZhciBLPXcoTCk7aWYoIUspcmV0dXJuO0llPUUoSyxYKX1pZSYmKEllLnRvcCs9aWUudG9wLEllLmxlZnQrPWllLmxlZnQpLHVlJiYoSWUudG9wPU1hdGgubWF4KDAsSWUudG9wLU4odWUpLmhlaWdodCkpO3ZhciBaPVIoWCksSj1aLnZpZXdwb3J0LG1lPVouc2l6ZTtpZihJZS50b3A9dGU/TWF0aC5tYXgoMCxNYXRoLm1pbihtZS5oZWlnaHQtSi5oZWlnaHQsSWUudG9wKSk6JChYLCJ5IiksSWUubGVmdD1iZT9NYXRoLm1heCgwLE1hdGgubWluKG1lLndpZHRoLUoud2lkdGgsSWUubGVmdCkpOiQoWCwieCIpLHRoaXMuaG9vayhXLCJiZWZvcmUiLEllLExlKT09PSExKXtkZS5vcHRzPW51bGw7cmV0dXJufWRlLnBvcz1JZSx0aGlzLnN0YXJ0KFcpLHRoaXMuYmluZCghMSwhMCl9fX0sQS5wcm90b3R5cGUudG9Ub3A9ZnVuY3Rpb24oTCxVKXt0aGlzLnRvKEwsZSh7fSxVfHx7fSx7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMX0pKX0sQS5wcm90b3R5cGUudG9MZWZ0PWZ1bmN0aW9uKEwsVSl7dGhpcy50byhMLGUoe30sVXx8e30se3ZlcnRpY2FsOiExLGhvcml6b250YWw6ITB9KSl9LEEucHJvdG90eXBlLnRvRWxlbWVudD1mdW5jdGlvbihMLFUpe3ZhciBWPXRoaXMuJGVsOyF0fHwhVnx8dGhpcy50byhFKEwsViksVXx8e30pfSxBLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKEwpe0w9PT12b2lkIDAmJihMPSExKTt2YXIgVT10aGlzLFY9VS4kZWwsWD1VLmN0eCxkZT1YLnBvczshVnx8IVgucHJvZ3Jlc3N8fChBLmNhZihYLmlkKSxYLnByb2dyZXNzPSExLFguc3RhcnQ9MCxYLmlkPTAsTCYmZGUmJihUKFYsZGUubGVmdCwieCIpLFQoVixkZS50b3AsInkiKSksdGhpcy5jb21wbGV0ZSgpKX0sQS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEwpe2lmKHRoaXMuJGVsKXt2YXIgVT1lKHt9LHRoaXMub3B0cyxMKTt0aGlzLnN0b3AoKSx0aGlzLnVuYmluZCghMCwhMCksdGhpcy5vcHRzPVUsdGhpcy5iaW5kKCEwLCExKX19LEEucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLiRlbCYmKHRoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLiRlbD1udWxsKX0sQS5wcm90b3R5cGUub25CZWZvcmU9ZnVuY3Rpb24oTCxVKXtyZXR1cm4hMH0sQS5wcm90b3R5cGUub25TdGVwPWZ1bmN0aW9uKEwpe30sQS5wcm90b3R5cGUub25BZnRlcj1mdW5jdGlvbihMLFUpe30sQS5wcm90b3R5cGUub25DYW5jZWw9ZnVuY3Rpb24oKXt9LEEucHJvdG90eXBlLm9uQ29tcGxldGU9ZnVuY3Rpb24oTCl7fSxBLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihMKXt2YXIgVT10aGlzLmN0eDtVLm9wdHM9TCxVLnByb2dyZXNzPSEwLFUuZWFzaW5nPW4oTC5lYXNpbmcpP0wuZWFzaW5nOmJbTC5lYXNpbmddO3ZhciBWPXRoaXMuJGVsLFg9e3RvcDokKFYsInkiKSxsZWZ0OiQoViwieCIpfTtVLnN0YXJ0UG9zPVgsVS5pZD1BLnJhZih0aGlzLmxvb3ApfSxBLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBMPXRoaXMsVT1MLiRlbCxWPUwuY3R4LFg9Vi5oYXNoLGRlPVYuY2FuY2VsLHZlPVYub3B0cyxMZT1WLnBvcyxXPVYuJHRyaWdnZXI7aWYoISghVXx8IXZlKSl7aWYoWCE9bnVsbCYmWCE9PXdpbmRvdy5sb2NhdGlvbi5oYXNoKXt2YXIgSD12ZS51cGRhdGVVUkw7dCYmciYmSCE9PSExJiZ3aW5kb3cuaGlzdG9yeVtIPT09InJlcGxhY2UiPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXShudWxsLCIiLFgpfXRoaXMudW5iaW5kKCExLCEwKSxWLm9wdHM9bnVsbCxWLiR0cmlnZ2VyPW51bGwsZGU/dGhpcy5ob29rKHZlLCJjYW5jZWwiKTp0aGlzLmhvb2sodmUsImFmdGVyIixMZSxXKSx0aGlzLmhvb2sodmUsImNvbXBsZXRlIixkZSl9fSxBLnByb3RvdHlwZS5ob29rPWZ1bmN0aW9uKEwsVSl7Zm9yKHZhciBWPVtdLFg9MjtYPGFyZ3VtZW50cy5sZW5ndGg7WCsrKVZbWC0yXT1hcmd1bWVudHNbWF07dmFyIGRlLHZlPUxbVV0sTGUsVztyZXR1cm4gbih2ZSkmJihMZT12ZS5hcHBseSh0aGlzLFYuY29uY2F0KFt0aGlzXSkpKSxXPShkZT10aGlzKVsib24iKyhVWzBdLnRvVXBwZXJDYXNlKCkrVS5zbGljZSgxKSldLmFwcGx5KGRlLFYpLExlIT09dm9pZCAwP0xlOld9LEEucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oTCxVKXt2YXIgVj10aGlzLFg9Vi4kZWwsZGU9Vi5jdHgub3B0cztYJiYoTCYmZWUoWCxuZSx0aGlzLmhhbmRsZUNsaWNrLCExKSxVJiZlZShYLGtlLHRoaXMuaGFuZGxlU3RvcCxkZT9kZS5jYW5jZWxsYWJsZTohMCkpfSxBLnByb3RvdHlwZS51bmJpbmQ9ZnVuY3Rpb24oTCxVKXt2YXIgVj10aGlzLFg9Vi4kZWwsZGU9Vi5jdHgub3B0cztYJiYoTCYmUChYLG5lLHRoaXMuaGFuZGxlQ2xpY2ssITEpLFUmJlAoWCxrZSx0aGlzLmhhbmRsZVN0b3AsZGU/ZGUuY2FuY2VsbGFibGU6ITApKX0sQS5yYWY9YyxBLmNhZj11LEF9KSgpO3JldHVybiBZfSl9KTt2YXIgV2ssVjcsUnU9cCgoKT0+e2N5ZSgpO0tmKCk7WTIoKTthdSgpO0VXKCk7c2EoKTtCVygpO3QyKCk7SlcoKTtPZigpO2VHKCk7R0xlKCk7cWsoKTtVZigpO1pBZSgpO1hBZSgpO1RHKCk7dERlKCk7V2s9ZXIoQUcoKSwxKSxWNz17T2JqZWN0TWFwOlZrLFN0cmluZ21hcDpVayxGYXN0TWFwOk91fX0pO3ZhciB5cz17fTtGZSh5cyx7Y3NzRm9yRGVza3RvcDooKT0+V0NyLGNzc0Zvck5vdGVib29rOigpPT5HQ3IsY3NzRm9yUGhhYmxldDooKT0+WkNyLGNzc0ZvclBob25lOigpPT5YQ3IsY3NzRm9yVGFibGV0OigpPT5ZQ3IsZGVza3RvcDooKT0+REcsbm90ZWJvb2s6KCk9PkVHLHBoYWJsZXQ6KCk9PklHLHBob25lOigpPT5QRyx0YWJsZXQ6KCk9PiRHfSk7dmFyIERHLEVHLCRHLElHLFBHLFdDcixHQ3IsWUNyLFpDcixYQ3IsTkc9cCgoKT0+e0J1KCk7VTIoKTtERz0xNjAwLEVHPTEyNDAsJEc9MTAyNCxJRz02MDAsUEc9NDAwLFdDcj1lPT53MShgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1pbi13aWR0aDogJHtER31weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWluLXdpZHRoOiAke0RHfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLEdDcj1lPT53MShgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtFR31weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke0VHfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLFlDcj1lPT53MShgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHskR31weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkeyRHfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLFpDcj1lPT53MShgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtJR31weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke0lHfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLFhDcj1lPT53MShgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtQR31weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke1BHfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApfSk7dmFyIFlrLHJEZT1wKCgpPT57UnUoKTtZaz1jbGFzc3tkb210b29sc0luc3RhbmNlO3Njcm9sbENhbGxiYWNrcz1bXTtsZW5pc0luc3RhbmNlPW51bGw7aGFuZGxlTmF0aXZlU2Nyb2xsPXQ9Pnt0aGlzLmV4ZWN1dGVTY3JvbGxDYWxsYmFja3MoKX07aGFuZGxlTGVuaXNTY3JvbGw9dD0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfTtjb25zdHJ1Y3Rvcih0KXt0aGlzLmRvbXRvb2xzSW5zdGFuY2U9dCx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCl9c3dlZXRTY3JvbGxlcj1uZXcgV2suZGVmYXVsdCh7fSk7YXN5bmMgdG9FbGVtZW50KHQscil7dGhpcy5zd2VldFNjcm9sbGVyLnRvRWxlbWVudCh0LHIpLGF3YWl0IHp0LmRlbGF5Rm9yKHIuZHVyYXRpb24pfWFzeW5jIGRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpe2xldCB0PUtlLmRlZmVyKCkscj0xMDAsaT0zLGE9Ljc1LG49W107ZnVuY3Rpb24gbyhsKXtuLnB1c2gobC5kZWx0YVkpLG4ubGVuZ3RoPj1yJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixvKSxzKCkpfWZ1bmN0aW9uIHMoKXtsZXQgbD1uLmxlbmd0aC0xLGM9MDtmb3IobGV0IGQ9MDtkPGw7ZCsrKU1hdGguYWJzKG5bZCsxXS1uW2RdKTw9aSYmYysrO2MvbD49YT8oY29uc29sZS5sb2coIlNtb290aCBzY3JvbGxpbmcgZGV0ZWN0ZWQuIiksdC5yZXNvbHZlKCEwKSk6KGNvbnNvbGUubG9nKCJTbW9vdGggc2Nyb2xsaW5nIE5PVCBkZXRlY3RlZC4iKSx0LnJlc29sdmUoITEpKX1yZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixvKSx0LnByb21pc2V9YXN5bmMgZW5hYmxlTGVuaXNTY3JvbGwodCl7bGV0IHI9bmV3IGo3KHthdXRvUmFmOiEwfSk7aWYodD8uZGlzYWJsZU9uTmF0aXZlU21vb3RoU2Nyb2xsJiZhd2FpdCB0aGlzLmRldGVjdE5hdGl2ZVNtb290aFNjcm9sbCgpKXtyLmRlc3Ryb3koKTtyZXR1cm59dGhpcy5sZW5pc0luc3RhbmNlPXIsdGhpcy5kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpLHRoaXMuYXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpO2xldCBpPXIuZGVzdHJveS5iaW5kKHIpO3IuZGVzdHJveT0oKT0+e2koKSx0aGlzLmRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmF0dGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5sZW5pc0luc3RhbmNlPW51bGx9fW9uU2Nyb2xsKHQpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLnB1c2godCl9ZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpe3RoaXMuc2Nyb2xsQ2FsbGJhY2tzLmZvckVhY2godD0+e3RyeXt0KCl9Y2F0Y2gocil7Y29uc29sZS5lcnJvcigiRXJyb3IgaW4gc2Nyb2xsIGNhbGxiYWNrOiIscil9fSl9YXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCl9ZGV0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmhhbmRsZU5hdGl2ZVNjcm9sbCl9YXR0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNJbnN0YW5jZSYmdGhpcy5sZW5pc0luc3RhbmNlLm9uKCJzY3JvbGwiLHRoaXMuaGFuZGxlTGVuaXNTY3JvbGwpfWRldGFjaExlbmlzU2Nyb2xsTGlzdGVuZXIoKXt0aGlzLmxlbmlzSW5zdGFuY2UmJnRoaXMubGVuaXNJbnN0YW5jZS5vZmYoInNjcm9sbCIsdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCl9fX0pO3ZhciBaayxpRGU9cCgoKT0+e0J1KCk7UnUoKTtaaz1jbGFzc3tkb210b29sc1JlZjtnb0JyaWdodEJvb2xlYW49ITE7cHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoPXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpO3RoZW1lT2JzZXJ2YWJsZT1uZXcgaXIucnhqcy5SZXBsYXlTdWJqZWN0KDEpO2NvbnN0cnVjdG9yKHQpe3RoaXMuZG9tdG9vbHNSZWY9dCx0aGlzLmdvQnJpZ2h0Qm9vbGVhbj10aGlzLnByZWZlcnJlZENvbG9yU2NoZW1lTWVkaWFNYXRjaC5tYXRjaGVzLHRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIscj0+e3RoaXMuZ29CcmlnaHRCb29sZWFuPXIubWF0Y2hlcyx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9KSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9YXN5bmMgZW5hYmxlQXV0b21hdGljR2xvYmFsVGhlbWVDaGFuZ2UoKXtkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LnN0eWxlJiZ0aGlzLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoe25leHQ6dD0+e2RvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZD10PyIjZmZmIjoiIzAwMCJ9fSl9YXN5bmMgdXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKXt0aGlzLnRoZW1lT2JzZXJ2YWJsZS5uZXh0KHRoaXMuZ29CcmlnaHRCb29sZWFuKX1nb0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSEwLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1nb0RhcmsoKXt0aGlzLmdvQnJpZ2h0Qm9vbGVhbj0hMSx0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9dG9nZ2xlRGFya0JyaWdodCgpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSF0aGlzLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnVwZGF0ZUFsbENvbm5lY3RlZEVsZW1lbnRzKCl9fX0pO3ZhciBGRyxYayxhRGU9cCgoKT0+e1J1KCk7KGZ1bmN0aW9uKGUpe2VbZS5CYWNrc3BhY2U9OF09IkJhY2tzcGFjZSIsZVtlLlRhYj05XT0iVGFiIixlW2UuRW50ZXI9MTNdPSJFbnRlciIsZVtlLlNoaWZ0PTE2XT0iU2hpZnQiLGVbZS5DdHJsPTE3XT0iQ3RybCIsZVtlLkFsdD0xOF09IkFsdCIsZVtlLlBhdXNlQnJlYWs9MTldPSJQYXVzZUJyZWFrIixlW2UuQ2Fwc0xvY2s9MjBdPSJDYXBzTG9jayIsZVtlLkVzY2FwZT0yN109IkVzY2FwZSIsZVtlLlNwYWNlPTMyXT0iU3BhY2UiLGVbZS5QYWdlVXA9MzNdPSJQYWdlVXAiLGVbZS5QYWdlRG93bj0zNF09IlBhZ2VEb3duIixlW2UuRW5kPTM1XT0iRW5kIixlW2UuSG9tZT0zNl09IkhvbWUiLGVbZS5MZWZ0QXJyb3c9MzddPSJMZWZ0QXJyb3ciLGVbZS5VcEFycm93PTM4XT0iVXBBcnJvdyIsZVtlLlJpZ2h0QXJyb3c9MzldPSJSaWdodEFycm93IixlW2UuRG93bkFycm93PTQwXT0iRG93bkFycm93IixlW2UuSW5zZXJ0PTQ1XT0iSW5zZXJ0IixlW2UuRGVsZXRlPTQ2XT0iRGVsZXRlIixlW2UuWmVybz00OF09Ilplcm8iLGVbZS5DbG9zZWRQYXJlbj00OF09IkNsb3NlZFBhcmVuIixlW2UuT25lPTQ5XT0iT25lIixlW2UuRXhjbGFtYXRpb25NYXJrPTQ5XT0iRXhjbGFtYXRpb25NYXJrIixlW2UuVHdvPTUwXT0iVHdvIixlW2UuQXRTaWduPTUwXT0iQXRTaWduIixlW2UuVGhyZWU9NTFdPSJUaHJlZSIsZVtlLlBvdW5kU2lnbj01MV09IlBvdW5kU2lnbiIsZVtlLkhhc2g9NTFdPSJIYXNoIixlW2UuRm91cj01Ml09IkZvdXIiLGVbZS5Eb2xsYXJTaWduPTUyXT0iRG9sbGFyU2lnbiIsZVtlLkZpdmU9NTNdPSJGaXZlIixlW2UuUGVyY2VudFNpZ249NTNdPSJQZXJjZW50U2lnbiIsZVtlLlNpeD01NF09IlNpeCIsZVtlLkNhcmV0PTU0XT0iQ2FyZXQiLGVbZS5IYXQ9NTRdPSJIYXQiLGVbZS5TZXZlbj01NV09IlNldmVuIixlW2UuQW1wZXJzYW5kPTU1XT0iQW1wZXJzYW5kIixlW2UuRWlnaHQ9NTZdPSJFaWdodCIsZVtlLlN0YXI9NTZdPSJTdGFyIixlW2UuQXN0ZXJpaz01Nl09IkFzdGVyaWsiLGVbZS5OaW5lPTU3XT0iTmluZSIsZVtlLk9wZW5QYXJlbj01N109Ik9wZW5QYXJlbiIsZVtlLkE9NjVdPSJBIixlW2UuQj02Nl09IkIiLGVbZS5DPTY3XT0iQyIsZVtlLkQ9NjhdPSJEIixlW2UuRT02OV09IkUiLGVbZS5GPTcwXT0iRiIsZVtlLkc9NzFdPSJHIixlW2UuSD03Ml09IkgiLGVbZS5JPTczXT0iSSIsZVtlLko9NzRdPSJKIixlW2UuSz03NV09IksiLGVbZS5MPTc2XT0iTCIsZVtlLk09NzddPSJNIixlW2UuTj03OF09Ik4iLGVbZS5PPTc5XT0iTyIsZVtlLlA9ODBdPSJQIixlW2UuUT04MV09IlEiLGVbZS5SPTgyXT0iUiIsZVtlLlM9ODNdPSJTIixlW2UuVD04NF09IlQiLGVbZS5VPTg1XT0iVSIsZVtlLlY9ODZdPSJWIixlW2UuVz04N109IlciLGVbZS5YPTg4XT0iWCIsZVtlLlk9ODldPSJZIixlW2UuWj05MF09IloiLGVbZS5MZWZ0V2luZG93S2V5PTkxXT0iTGVmdFdpbmRvd0tleSIsZVtlLlJpZ2h0V2luZG93S2V5PTkyXT0iUmlnaHRXaW5kb3dLZXkiLGVbZS5TZWxlY3RLZXk9OTNdPSJTZWxlY3RLZXkiLGVbZS5OdW1wYWQwPTk2XT0iTnVtcGFkMCIsZVtlLk51bXBhZDE9OTddPSJOdW1wYWQxIixlW2UuTnVtcGFkMj05OF09Ik51bXBhZDIiLGVbZS5OdW1wYWQzPTk5XT0iTnVtcGFkMyIsZVtlLk51bXBhZDQ9MTAwXT0iTnVtcGFkNCIsZVtlLk51bXBhZDU9MTAxXT0iTnVtcGFkNSIsZVtlLk51bXBhZDY9MTAyXT0iTnVtcGFkNiIsZVtlLk51bXBhZDc9MTAzXT0iTnVtcGFkNyIsZVtlLk51bXBhZDg9MTA0XT0iTnVtcGFkOCIsZVtlLk51bXBhZDk9MTA1XT0iTnVtcGFkOSIsZVtlLk11bHRpcGx5PTEwNl09Ik11bHRpcGx5IixlW2UuQWRkPTEwN109IkFkZCIsZVtlLlN1YnRyYWN0PTEwOV09IlN1YnRyYWN0IixlW2UuRGVjaW1hbFBvaW50PTExMF09IkRlY2ltYWxQb2ludCIsZVtlLkRpdmlkZT0xMTFdPSJEaXZpZGUiLGVbZS5GMT0xMTJdPSJGMSIsZVtlLkYyPTExM109IkYyIixlW2UuRjM9MTE0XT0iRjMiLGVbZS5GND0xMTVdPSJGNCIsZVtlLkY1PTExNl09IkY1IixlW2UuRjY9MTE3XT0iRjYiLGVbZS5GNz0xMThdPSJGNyIsZVtlLkY4PTExOV09IkY4IixlW2UuRjk9MTIwXT0iRjkiLGVbZS5GMTA9MTIxXT0iRjEwIixlW2UuRjExPTEyMl09IkYxMSIsZVtlLkYxMj0xMjNdPSJGMTIiLGVbZS5OdW1Mb2NrPTE0NF09Ik51bUxvY2siLGVbZS5TY3JvbGxMb2NrPTE0NV09IlNjcm9sbExvY2siLGVbZS5TZW1pQ29sb249MTg2XT0iU2VtaUNvbG9uIixlW2UuRXF1YWxzPTE4N109IkVxdWFscyIsZVtlLkNvbW1hPTE4OF09IkNvbW1hIixlW2UuRGFzaD0xODldPSJEYXNoIixlW2UuUGVyaW9kPTE5MF09IlBlcmlvZCIsZVtlLlVuZGVyU2NvcmU9MTg5XT0iVW5kZXJTY29yZSIsZVtlLlBsdXNTaWduPTE4N109IlBsdXNTaWduIixlW2UuRm9yd2FyZFNsYXNoPTE5MV09IkZvcndhcmRTbGFzaCIsZVtlLlRpbGRlPTE5Ml09IlRpbGRlIixlW2UuR3JhdmVBY2NlbnQ9MTkyXT0iR3JhdmVBY2NlbnQiLGVbZS5PcGVuQnJhY2tldD0yMTldPSJPcGVuQnJhY2tldCIsZVtlLkNsb3NlZEJyYWNrZXQ9MjIxXT0iQ2xvc2VkQnJhY2tldCIsZVtlLlF1b3RlPTIyMl09IlF1b3RlIn0pKEZHfHwoRkc9e30pKTtYaz1jbGFzc3tkb21Ob2RlO21hcENvbWJvc1RvSGFuZGxlcnM9bmV3IE1hcDtwcmVzc2VkS2V5cz1uZXcgU2V0O2NvbnN0cnVjdG9yKHQpe3RoaXMuZG9tTm9kZT10LHRoaXMuc3RhcnRMaXN0ZW5pbmcoKX1rZXlFbnVtPUZHO29uKHQpe2xldCByPW5ldyBpci5yeGpzLlN1YmplY3Q7cmV0dXJuIHRoaXMucmVnaXN0ZXJLZXlzKHQscikscn10cmlnZ2VyS2V5UHJlc3ModCl7Zm9yKGxldCByIG9mIHQpdGhpcy5wcmVzc2VkS2V5cy5hZGQocik7dGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cygpO2ZvcihsZXQgciBvZiB0KXRoaXMucHJlc3NlZEtleXMuZGVsZXRlKHIpfXN0YXJ0TGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1zdG9wTGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1jbGVhcigpe3RoaXMuc3RvcExpc3RlbmluZygpLHRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5jbGVhcigpLHRoaXMucHJlc3NlZEtleXMuY2xlYXIoKX1oYW5kbGVLZXlEb3duPXQ9Pnt0aGlzLnByZXNzZWRLZXlzLmFkZCh0LmtleUNvZGUpLHRoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHModCl9O2NoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKHQpe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5mb3JFYWNoKChyLGkpPT57dGhpcy5hcmVBbGxLZXlzUHJlc3NlZChpKSYmci5uZXh0KHQpfSl9aGFuZGxlS2V5VXA9dD0+e3RoaXMucHJlc3NlZEtleXMuZGVsZXRlKHQua2V5Q29kZSl9O2FyZUFsbEtleXNQcmVzc2VkKHQpe2xldCByPSEwO3JldHVybiB0LmZvckVhY2goaT0+e3RoaXMucHJlc3NlZEtleXMuaGFzKGkpfHwocj0hMSl9KSxyfXJlZ2lzdGVyS2V5cyh0LHIpe2lmKCF0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuaGFzKHQpKXRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5zZXQodCxyKTtlbHNlIHJldHVybiB0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZ2V0KHQpfX19KTt2YXIgd3MsQnU9cCgoKT0+e1J1KCk7TkcoKTtyRGUoKTtxaygpO2lEZSgpO2FEZSgpO3dzPWNsYXNzIGV7c3RhdGljIGluaXRpYWxpemF0aW9uUHJvbWlzZT1udWxsO3N0YXRpYyBhc3luYyBzZXR1cERvbVRvb2xzKHQ9e30pe3JldHVybiF0Lmlnbm9yZUdsb2JhbCYmZS5pbml0aWFsaXphdGlvblByb21pc2U/YXdhaXQgZS5pbml0aWFsaXphdGlvblByb21pc2U6dC5pZ25vcmVHbG9iYWw/bmV3IGUodCk6KGUuaW5pdGlhbGl6YXRpb25Qcm9taXNlPShhc3luYygpPT57bGV0IHI7aWYoZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMpcj1nbG9iYWxUaGlzLmRlZXNEb21Ub29scztlbHNle2dsb2JhbFRoaXMuZGVlc0RvbVRvb2xzPW5ldyBlKHQpLHI9Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM7bGV0IGk9KCk9PnsoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSJ8fGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKSYmKHIuZWxlbWVudHMuaGVhZEVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaGVhZCIpLHIuZWxlbWVudHMuYm9keUVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLHIua2V5Ym9hcmQ9bmV3IFhrKGRvY3VtZW50LmJvZHkpLHIuZG9tUmVhZHkucmVzb2x2ZSgpKX07ZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJpbnRlcmFjdGl2ZSJ8fGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUiP2koKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixpKSxyLmRvbVRvb2xzUmVhZHkucmVzb2x2ZSgpfXJldHVybiBhd2FpdCByLmRvbVRvb2xzUmVhZHkucHJvbWlzZSxyfSkoKSxhd2FpdCBlLmluaXRpYWxpemF0aW9uUHJvbWlzZSl9c3RhdGljIGdldEdsb2JhbERvbVRvb2xzU3luYygpe2lmKCFnbG9iYWxUaGlzLmRlZXNEb21Ub29scyl0aHJvdyBuZXcgRXJyb3IoIllvdSB0cmllZCB0byBhY2Nlc3MgZG9tdG9vbHMgc3luY2hyb25vdXNseSB0b28gZWFybHkiKTtyZXR1cm4gZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHN9ZWxlbWVudHM9e2hlYWRFbGVtZW50Om51bGwsYm9keUVsZW1lbnQ6bnVsbH07d2Vic2V0dXA9bmV3IHE3KHttZXRhT2JqZWN0Ont0aXRsZToiIn19KTtzbWFydHN0YXRlPW5ldyBfMC5TbWFydHN0YXRlO2RvbVRvb2xzU3RhdGVQYXJ0PXRoaXMuc21hcnRzdGF0ZS5nZXRTdGF0ZVBhcnQoImRvbXRvb2xzIix7dmlydHVhbFZpZXdwb3J0OiJuYXRpdmUiLGp3dDpudWxsfSk7cm91dGVyPW5ldyBUMC5TbWFydFJvdXRlcih7ZGVidWc6ITF9KTtjb252ZW5pZW5jZT17dHlwZWRyZXF1ZXN0OlZhLHNtYXJ0ZGVsYXk6enQsc21hcnRqc29uOnYxLHNtYXJ0dXJsOkwwfTtkZWVzQ29tbXM9bmV3IHI3LkRlZXNDb21tcztzY3JvbGxlcj1uZXcgWWsodGhpcyk7dGhlbWVNYW5hZ2VyPW5ldyBaayh0aGlzKTtrZXlib2FyZD1udWxsO2RvbVRvb2xzUmVhZHk9S2UuZGVmZXIoKTtkb21SZWFkeT1LZS5kZWZlcigpO2dsb2JhbFN0eWxlc1JlYWR5PUtlLmRlZmVyKCk7Y29uc3RydWN0b3IodCl7fXJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwPW5ldyBWNy5TdHJpbmdtYXA7cnVuT25jZVJlc3VsdE1hcD1uZXcgVjcuRmFzdE1hcDtydW5PbmNlRXJyb3JNYXA9bmV3IFY3LkZhc3RNYXA7YXN5bmMgcnVuT25jZSh0LHIpe2xldCBpPWAke3R9K3J1bm5pbmdDaGVja2A7aWYoIXRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuY2hlY2tTdHJpbmcodCkpe3RoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuYWRkU3RyaW5nKHQpLHRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAuYWRkU3RyaW5nKGkpO3RyeXtsZXQgYT1hd2FpdCByKCk7dGhpcy5ydW5PbmNlUmVzdWx0TWFwLmFkZFRvTWFwKHQsYSl9Y2F0Y2goYSl7dGhpcy5ydW5PbmNlRXJyb3JNYXAuYWRkVG9NYXAodCxhKX1maW5hbGx5e3RoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAucmVtb3ZlU3RyaW5nKGkpfX1yZXR1cm4gYXdhaXQgdGhpcy5ydW5PbmNlVHJhY2tlclN0cmluZ01hcC5yZWdpc3RlclVudGlsVHJ1ZShhPT4hYS5pbmNsdWRlcyhpKSwoKT0+e2xldCBhPXRoaXMucnVuT25jZUVycm9yTWFwLmdldEJ5S2V5KHQpO2lmKGEpdGhyb3cgYTtyZXR1cm4gdGhpcy5ydW5PbmNlUmVzdWx0TWFwLmdldEJ5S2V5KHQpfSl9YXN5bmMgc2V0R2xvYmFsU3R5bGVzKHQpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3IudHlwZT0idGV4dC9jc3MiLHIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodCkpLHRoaXMuZWxlbWVudHMuaGVhZEVsZW1lbnQuYXBwZW5kQ2hpbGQocil9YXN5bmMgc2V0RXh0ZXJuYWxTY3JpcHQodCl7YXdhaXQgdGhpcy5kb21SZWFkeS5wcm9taXNlO2xldCByPUtlLmRlZmVyKCksaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpLnNyYz10LGkuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtyLnJlc29sdmUoKX0pLChkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5ib2R5KS5hcHBlbmQoaSksYXdhaXQgci5wcm9taXNlfWFzeW5jIHNldEV4dGVybmFsQ3NzKHQpe2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtyLnJlbD0ic3R5bGVzaGVldCIsci5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixyLmhyZWY9dCxkb2N1bWVudC5oZWFkLmFwcGVuZChyKX1hc3luYyBzZXRXZWJzaXRlSW5mbyh0KXthd2FpdCB0aGlzLndlYnNldHVwLnNldHVwKHQpLGF3YWl0IHRoaXMud2Vic2V0dXAucmVhZHlQcm9taXNlfX19KTt2YXIgUWssbkRlLG9EZT1wKCgpPT57QnUoKTtVMigpO1FrPSgoKT0+e2xldCBlPW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIE9TIFgiKT09PS0xP1oxYGAuY3NzVGV4dDoiIjtyZXR1cm4gWjFgCiAgICAvKiB3aWR0aCAqLwogICAgOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgIHdpZHRoOiAwcHg7CiAgICB9CiAgICBib2R5IHsKICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOwogICAgfQogIGAuY3NzVGV4dH0pKCksbkRlPVoxYAogIC8qCiAgQGZvbnQtZmFjZSB7CiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJzsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvbWF0ZXJpYWxpY29ucy92NDIvZmxVaFJxNnR6WmNsUUVKLVZkZy1JdWlhRHNOY0loUTh0US53b2ZmMikKICAgICAgZm9ybWF0KCd3b2ZmMicpOwogIH0gKi8KCiAgLyogZ2xvYmFsIGJvZHkgc3R5bGVzICovCiAgYm9keSB7CiAgICBtYXJnaW46IDBweDsKICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIHNhbnMtc2VyaWY7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KCiAgLyogc2Nyb2xsIGJhciBzdHlsZXMgKi8KICAke3cxKFFrKX0KYC5jc3NUZXh0fSk7dmFyIEh1PXt9O0ZlKEh1LHtzZXR1cDooKT0+S0NyLHN0YXRpY1N0eWxlczooKT0+UUNyLHN0eWxlczooKT0+SkNyfSk7dmFyIFFDcixKQ3IsS0NyLHNEZT1wKCgpPT57UnUoKTtCdSgpO29EZSgpO1UyKCk7UUNyPVoxYAogICogewogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzLCBjb2xvciAwLjFzOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIDpob3N0IHsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogIH0KCiAgJHt3MShRayl9CmAsSkNyPXVyYAogIDxzdHlsZT4KICAgICogewogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CgogICAgOmhvc3QgewogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgfQoKICAgICR7UWt9CiAgPC9zdHlsZT4KYCxLQ3I9YXN5bmMoZSx0PXt9KT0+e2xldCByPWF3YWl0IHdzLnNldHVwRG9tVG9vbHModCk7cmV0dXJuIHIucnVuT25jZSgiZWxlbWVudEJhc2ljU2V0dXAiLGFzeW5jKCk9PntyLnNldEdsb2JhbFN0eWxlcyhuRGUpfSkscn19KTt2YXIgSms9e307RmUoSmsse2Nzc0dyaWRDb2x1bW5zOigpPT5lVHJ9KTt2YXIgZVRyLGxEZT1wKCgpPT57ZVRyPShlLHQpPT57bGV0IHI9IiI7Zm9yKGxldCBpPTA7aTxlO2krKylyKz1gIGNhbGMoKDEwMCUvJHtlfSkgLSAoJHt0KihlLTEpfXB4LyR7ZX0pKWA7cmV0dXJuIHJ9fSk7dmFyIEtrPXt9O0ZlKEtrLHtTd2VldFNjcm9sbDooKT0+T0cuZGVmYXVsdCxzbWFydGRlbGF5OigpPT56dCxzbWFydG1hcmtkb3duOigpPT5OdSxzbWFydHByb21pc2U6KCk9PktlLHNtYXJ0cm91dGVyOigpPT5UMCxzbWFydHJ4OigpPT5pcixzbWFydHN0YXRlOigpPT5fMCxzbWFydHN0cmluZzooKT0+Z2Esc21hcnR1cmw6KCk9PkwwLHR5cGVkcmVxdWVzdDooKT0+VmF9KTt2YXIgT0csY0RlPXAoKCk9PntZMigpO0VXKCk7c2EoKTtPRz1lcihBRygpLDEpO0pXKCk7QlcoKTt0MigpO09mKCk7ZUcoKTtLZigpfSk7dmFyIG1vPXt9O0ZlKG1vLHtEb21Ub29sczooKT0+d3MsVHlwZWRSZXF1ZXN0OigpPT5KZixicmVha3BvaW50czooKT0+eXMsY3NzOigpPT5KayxlbGVtZW50QmFzaWM6KCk9Pkh1LHBsdWdpbnM6KCk9PktrfSk7dmFyIGVTPXAoKCk9PntvcGUoKTtzRGUoKTtORygpO2xEZSgpO0J1KCk7S2YoKTtxaygpO2NEZSgpfSk7dmFyIFJHLEUwLEJHPXAoKCk9PntSRz1lcih1digpLDEpO3QyKCk7VTIoKTtucGUoKTtlUygpO0UwPXtjc3M6WjEsdW5zYWZlQ1NTOncxLExpdEVsZW1lbnQ6cGwscHJvcGVydHk6aDN9fSk7dmFyIHRTLHVEZT1wKCgpPT57VTIoKTtCRygpO2VTKCk7dFM9Y2xhc3MgZXtzdGF0aWMgaW5zdGFuY2U9bnVsbDtzdGF0aWMgZ2V0U2luZ2xldG9uKCl7cmV0dXJuIGUuaW5zdGFuY2V8fChlLmluc3RhbmNlPW5ldyBlKSxlLmluc3RhbmNlfWRvbXRvb2xzUHJvbWlzZT13cy5zZXR1cERvbVRvb2xzKCk7Z29CcmlnaHQ9ITE7YmRWYXJUcmlwbGV0U3RvcmU9W107Y29uc3RydWN0b3IoKXt0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIHQ9Pnt0LnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGFzeW5jIHI9Pnt0aGlzLmdvQnJpZ2h0PXIsYXdhaXQgdC5kb21SZWFkeS5wcm9taXNlO2ZvcihsZXQgaSBvZiB0aGlzLmJkVmFyVHJpcGxldFN0b3JlKWRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoaS5jc3NWYXJOYW1lLHRoaXMuZ29CcmlnaHQ/aS5icmlnaHRWYWx1ZTppLmRhcmtWYWx1ZSl9KX0pfWdldCBkZWZhdWx0U3R5bGVzKCl7cmV0dXJuIEh1LnN0YXRpY1N0eWxlc31jc3NGb3JEZXNrdG9wKHQpe3JldHVybiB3MSh5cy5jc3NGb3JEZXNrdG9wKHQpKX1jc3NGb3JOb3RlYm9vayh0KXtyZXR1cm4gdzEoeXMuY3NzRm9yTm90ZWJvb2sodCkpfWNzc0ZvclRhYmxldCh0KXtyZXR1cm4gdzEoeXMuY3NzRm9yVGFibGV0KHQpKX1jc3NGb3JQaGFibGV0KHQpe3JldHVybiB3MSh5cy5jc3NGb3JQaGFibGV0KHQpKX1jc3NGb3JQaG9uZSh0KXtyZXR1cm4gdzEoeXMuY3NzRm9yUGhvbmUodCkpfWJkVGhlbWUodCxyKXtsZXQgaSxhO3dzLmdldEdsb2JhbERvbVRvb2xzU3luYygpP2E9d3MuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCkudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj90OnI6YT1yO2xldCBuPXRoaXMuYmRWYXJUcmlwbGV0U3RvcmUuZmluZChvPT5vLmRhcmtWYWx1ZT09PXImJm8uYnJpZ2h0VmFsdWU9PT10KTtpZihuKWk9bi5jc3NWYXJOYW1lO2Vsc2V7bGV0IG89e2Nzc1Zhck5hbWU6YC0tJHtSRy51bmkoKX1gLGJyaWdodFZhbHVlOnQsZGFya1ZhbHVlOnJ9O3RoaXMuYmRWYXJUcmlwbGV0U3RvcmUucHVzaChvKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIHM9Pnthd2FpdCBzLmRvbVJlYWR5LnByb21pc2UsZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShvLmNzc1Zhck5hbWUsYSl9KSxpPW8uY3NzVmFyTmFtZX1yZXR1cm4gRTAudW5zYWZlQ1NTKGB2YXIoJHtpfSwgJHthfSlgKX1jc3NHcmlkQ29sdW1ucz0odCxyKT0+e2xldCBpPSIiO2ZvcihsZXQgYT0wO2E8dDthKyspaSs9YCBjYWxjKCgxMDAlLyR7dH0pIC0gKCR7cioodC0xKX1weC8ke3R9KSlgO3JldHVybiBFMC51bnNhZmVDU1MoaSl9fX0pO3ZhciBIRyx0VHIscUcsclRyLHBEZSxyUyxqRyxpVHIsYVRyLGhEZT1wKCgpPT57UW8oKTtIRz1TeW1ib2wuZm9yKCIiKSx0VHI9ZT0+e2lmKGU/LnI9PT1IRylyZXR1cm4gZT8uXyRsaXRTdGF0aWMkfSxxRz1lPT4oe18kbGl0U3RhdGljJDplLHI6SEd9KSxyVHI9KGUsLi4udCk9Pih7XyRsaXRTdGF0aWMkOnQucmVkdWNlKChyLGksYSk9PnIrKG49PntpZihuLl8kbGl0U3RhdGljJCE9PXZvaWQgMClyZXR1cm4gbi5fJGxpdFN0YXRpYyQ7dGhyb3cgRXJyb3IoYFZhbHVlIHBhc3NlZCB0byAnbGl0ZXJhbCcgZnVuY3Rpb24gbXVzdCBiZSBhICdsaXRlcmFsJyByZXN1bHQ6ICR7bn0uIFVzZSAndW5zYWZlU3RhdGljJyB0byBwYXNzIG5vbi1saXRlcmFsIHZhbHVlcywgYnV0CiAgICAgICAgICAgIHRha2UgY2FyZSB0byBlbnN1cmUgcGFnZSBzZWN1cml0eS5gKX0pKGkpK2VbYSsxXSxlWzBdKSxyOkhHfSkscERlPW5ldyBNYXAsclM9ZT0+KHQsLi4ucik9PntsZXQgaT1yLmxlbmd0aCxhLG4sbz1bXSxzPVtdLGwsYz0wLHU9ITE7Zm9yKDtjPGk7KXtmb3IobD10W2NdO2M8aSYmKG49cltjXSwoYT10VHIobikpIT09dm9pZCAwKTspbCs9YSt0WysrY10sdT0hMDtjIT09aSYmcy5wdXNoKG4pLG8ucHVzaChsKSxjKyt9aWYoYz09PWkmJm8ucHVzaCh0W2ldKSx1KXtsZXQgZD1vLmpvaW4oIiQkbGl0JCQiKTsodD1wRGUuZ2V0KGQpKT09PXZvaWQgMCYmKG8ucmF3PW8scERlLnNldChkLHQ9bykpLHI9c31yZXR1cm4gZSh0LC4uLnIpfSxqRz1yUyh1ciksaVRyPXJTKElGKSxhVHI9clMoUEYpfSk7dmFyIGZEZT1wKCgpPT57aERlKCl9KTt2YXIgTXMsZWksZ28sTmw9cCgoKT0+e01zPXtBVFRSSUJVVEU6MSxDSElMRDoyLFBST1BFUlRZOjMsQk9PTEVBTl9BVFRSSUJVVEU6NCxFVkVOVDo1LEVMRU1FTlQ6Nn0sZWk9ZT0+KC4uLnQpPT4oe18kbGl0RGlyZWN0aXZlJDplLHZhbHVlczp0fSksZ289Y2xhc3N7Y29uc3RydWN0b3IodCl7fWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQVQodCxyLGkpe3RoaXMuXyRDdD10LHRoaXMuXyRBTT1yLHRoaXMuXyRDaT1pfV8kQVModCxyKXtyZXR1cm4gdGhpcy51cGRhdGUodCxyKX11cGRhdGUodCxyKXtyZXR1cm4gdGhpcy5yZW5kZXIoLi4ucil9fX0pO3ZhciBxdSxWRyxtRGU9cCgoKT0+e1FvKCk7TmwoKTtxdT1jbGFzcyBleHRlbmRzIGdve2NvbnN0cnVjdG9yKHQpe2lmKHN1cGVyKHQpLHRoaXMuaXQ9YjEsdC50eXBlIT09TXMuQ0hJTEQpdGhyb3cgRXJyb3IodGhpcy5jb25zdHJ1Y3Rvci5kaXJlY3RpdmVOYW1lKyIoKSBjYW4gb25seSBiZSB1c2VkIGluIGNoaWxkIGJpbmRpbmdzIil9cmVuZGVyKHQpe2lmKHQ9PT1iMXx8dD09bnVsbClyZXR1cm4gdGhpcy5fdD12b2lkIDAsdGhpcy5pdD10O2lmKHQ9PT1vMSlyZXR1cm4gdDtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgRXJyb3IodGhpcy5jb25zdHJ1Y3Rvci5kaXJlY3RpdmVOYW1lKyIoKSBjYWxsZWQgd2l0aCBhIG5vbi1zdHJpbmcgdmFsdWUiKTtpZih0PT09dGhpcy5pdClyZXR1cm4gdGhpcy5fdDt0aGlzLml0PXQ7bGV0IHI9W3RdO3JldHVybiByLnJhdz1yLHRoaXMuX3Q9e18kbGl0VHlwZSQ6dGhpcy5jb25zdHJ1Y3Rvci5yZXN1bHRUeXBlLHN0cmluZ3M6cix2YWx1ZXM6W119fX07cXUuZGlyZWN0aXZlTmFtZT0idW5zYWZlSFRNTCIscXUucmVzdWx0VHlwZT0xO1ZHPWVpKHF1KX0pO3ZhciBnRGU9cCgoKT0+e21EZSgpfSk7dmFyIGhpLFVHPXAoKCk9PntoaT1lPT4odCxyKT0+e3IhPT12b2lkIDA/ci5hZGRJbml0aWFsaXplcigoKT0+e2N1c3RvbUVsZW1lbnRzLmRlZmluZShlLHQpfSk6Y3VzdG9tRWxlbWVudHMuZGVmaW5lKGUsdCl9fSk7dmFyIGJEZT1wKCgpPT57VUcoKX0pO2Z1bmN0aW9uIGFyKGUpe3JldHVybiBoMyh7Li4uZSxzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX12YXIgdkRlPXAoKCk9PntveCgpO30pO2Z1bmN0aW9uIG5UcihlKXtyZXR1cm4odCxyKT0+e2xldCBpPXR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6dFtyXTtPYmplY3QuYXNzaWduKGksZSl9fXZhciB4RGU9cCgoKT0+e30pO3ZhciBibyxqdT1wKCgpPT57Ym89KGUsdCxyKT0+KHIuY29uZmlndXJhYmxlPSEwLHIuZW51bWVyYWJsZT0hMCxSZWZsZWN0LmRlY29yYXRlJiZ0eXBlb2YgdCE9Im9iamVjdCImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQscikscil9KTtmdW5jdGlvbiBXRyhlLHQpe3JldHVybihyLGksYSk9PntsZXQgbj1vPT5vLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IoZSk/P251bGw7aWYodCl7bGV0e2dldDpvLHNldDpzfT10eXBlb2YgaT09Im9iamVjdCI/cjphPz8oKCk9PntsZXQgbD1TeW1ib2woKTtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbbF19LHNldChjKXt0aGlzW2xdPWN9fX0pKCk7cmV0dXJuIGJvKHIsaSx7Z2V0KCl7bGV0IGw9by5jYWxsKHRoaXMpO3JldHVybiBsPT09dm9pZCAwJiYobD1uKHRoaXMpLChsIT09bnVsbHx8dGhpcy5oYXNVcGRhdGVkKSYmcy5jYWxsKHRoaXMsbCkpLGx9fSl9cmV0dXJuIGJvKHIsaSx7Z2V0KCl7cmV0dXJuIG4odGhpcyl9fSl9fXZhciB5RGU9cCgoKT0+e2p1KCk7fSk7ZnVuY3Rpb24gR0coZSl7cmV0dXJuKHQscik9PmJvKHQscix7Z2V0KCl7cmV0dXJuKHRoaXMucmVuZGVyUm9vdD8/KG9Ucj8/PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkpLnF1ZXJ5U2VsZWN0b3JBbGwoZSl9fSl9dmFyIG9Ucix3RGU9cCgoKT0+e2p1KCk7fSk7ZnVuY3Rpb24gWUcoZSl7cmV0dXJuKHQscik9PmJvKHQscix7YXN5bmMgZ2V0KCl7cmV0dXJuIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKGUpPz9udWxsfX0pfXZhciBNRGU9cCgoKT0+e2p1KCk7fSk7ZnVuY3Rpb24gc1RyKGUpe3JldHVybih0LHIpPT57bGV0e3Nsb3Q6aSxzZWxlY3RvcjphfT1lPz97fSxuPSJzbG90IisoaT9gW25hbWU9JHtpfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gYm8odCxyLHtnZXQoKXtsZXQgbz10aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3Iobikscz1vPy5hc3NpZ25lZEVsZW1lbnRzKGUpPz9bXTtyZXR1cm4gYT09PXZvaWQgMD9zOnMuZmlsdGVyKGw9PmwubWF0Y2hlcyhhKSl9fSl9fXZhciBrRGU9cCgoKT0+e2p1KCk7fSk7ZnVuY3Rpb24gbFRyKGUpe3JldHVybih0LHIpPT57bGV0e3Nsb3Q6aX09ZT8/e30sYT0ic2xvdCIrKGk/YFtuYW1lPSR7aX1dYDoiOm5vdChbbmFtZV0pIik7cmV0dXJuIGJvKHQscix7Z2V0KCl7cmV0dXJuIHRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihhKT8uYXNzaWduZWROb2RlcyhlKT8/W119fSl9fXZhciBTRGU9cCgoKT0+e2p1KCk7fSk7dmFyIHpEZT1wKCgpPT57VUcoKTtveCgpO3ZEZSgpO3hEZSgpO3lEZSgpO3dEZSgpO01EZSgpO2tEZSgpO1NEZSgpfSk7dmFyIENEZSxpUyxEaSxURGU9cCgoKT0+e0JHKCk7Q0RlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0saVM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LERpPSgoKT0+e2xldCBlPUUwLkxpdEVsZW1lbnQsdCxyPVtdLGk9W10sYSxuPVtdLG89W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtzdGF0aWN7bGV0IGw9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoZVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7dD1bRTAucHJvcGVydHkoe3R5cGU6Qm9vbGVhbn0pXSxhPVtFMC5wcm9wZXJ0eSgpXSxDRGUodGhpcyxudWxsLHQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJnb0JyaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yz0+ImdvQnJpZ2h0ImluIGMsZ2V0OmM9PmMuZ29CcmlnaHQsc2V0OihjLHUpPT57Yy5nb0JyaWdodD11fX0sbWV0YWRhdGE6bH0scixpKSxDRGUodGhpcyxudWxsLGEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb210b29scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yz0+ImRvbXRvb2xzImluIGMsZ2V0OmM9PmMuZG9tdG9vbHMsc2V0OihjLHUpPT57Yy5kb210b29scz11fX0sbWV0YWRhdGE6bH0sbixvKSxsJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmx9KX0jZT1pUyh0aGlzLHIsITEpO2dldCBnb0JyaWdodCgpe3JldHVybiB0aGlzLiNlfXNldCBnb0JyaWdodChsKXt0aGlzLiNlPWx9ZG9tdG9vbHNQcm9taXNlPWlTKHRoaXMsaSk7I3Q9aVModGhpcyxuLHZvaWQgMCk7Z2V0IGRvbXRvb2xzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRvbXRvb2xzKGwpe3RoaXMuI3Q9bH1yeFN1YnNjcmlwdGlvbnM9KGlTKHRoaXMsbyksW10pO3RoZW1lU3Vic2NyaXB0aW9uO2VsZW1lbnREb21SZWFkeURlZmVycmVkPW1vLnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCk7ZWxlbWVudERvbVJlYWR5PXRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3RvcihsPXt9KXtzdXBlcigpLHRoaXMuZG9tdG9vbHNQcm9taXNlPW1vLmVsZW1lbnRCYXNpYy5zZXR1cCh0aGlzLGwpLHRoaXMuZG9tdG9vbHNQcm9taXNlLnRoZW4oYz0+e3RoaXMuZG9tdG9vbHM9Y30pfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtsZXQgbD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnRoZW1lU3Vic2NyaXB0aW9uPWwudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoYz0+e3RoaXMuZ29CcmlnaHQ9Yyx0aGlzLnRoZW1lQ2hhbmdlZCYmdGhpcy50aGVtZUNoYW5nZWQoYyl9KSx0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudGhlbWVTdWJzY3JpcHRpb24pO2ZvcihsZXQgYyBvZiB0aGlzLnN0YXJ0dXBGdW5jdGlvbnMpYXdhaXQgYygpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlZXNFbGVtZW50Q29ubmVjdGVkIikpfWZpcnN0VXBkYXRlZChsKXtzdXBlci5maXJzdFVwZGF0ZWQobCksdGhpcy5lbGVtZW50RG9tUmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9c3RhcnR1cEZ1bmN0aW9ucz1bXTtyZWdpc3RlclN0YXJ0dXBGdW5jdGlvbihsKXt0aGlzLnN0YXJ0dXBGdW5jdGlvbnMucHVzaChsKX1nYXJiYWdlRnVuY3Rpb25zPVtdO3JlZ2lzdGVyR2FyYmFnZUZ1bmN0aW9uKGwpe3RoaXMuZ2FyYmFnZUZ1bmN0aW9ucy5wdXNoKGwpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2Usc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtmb3IobGV0IGwgb2YgdGhpcy5yeFN1YnNjcmlwdGlvbnMpbC51bnN1YnNjcmliZSgpO2ZvcihsZXQgbCBvZiB0aGlzLmdhcmJhZ2VGdW5jdGlvbnMpYXdhaXQgbCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRlZXNFbGVtZW50RGlzY29ubmVjdGVkIikpfX19KSgpfSk7dmFyIGNUcixfRGUsWkcsZFRyLHVUcixwVHIsaFRyLGZUcixYRyxMRGUsRmwsbDIsbVRyLFU3LFFHLFc3LEpHLFZ1PXAoKCk9PntRbygpOyh7STpjVHJ9PU5GKSxfRGU9ZT0+ZSxaRz1lPT5lPT09bnVsbHx8dHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIixkVHI9e0hUTUw6MSxTVkc6MixNQVRITUw6M30sdVRyPShlLHQpPT50PT09dm9pZCAwP2U/Ll8kbGl0VHlwZSQhPT12b2lkIDA6ZT8uXyRsaXRUeXBlJD09PXQscFRyPWU9PmU/Ll8kbGl0VHlwZSQ/LmghPW51bGwsaFRyPWU9PmU/Ll8kbGl0RGlyZWN0aXZlJCE9PXZvaWQgMCxmVHI9ZT0+ZT8uXyRsaXREaXJlY3RpdmUkLFhHPWU9PmUuc3RyaW5ncz09PXZvaWQgMCxMRGU9KCk9PmRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpLEZsPShlLHQscik9PntsZXQgaT1lLl8kQUEucGFyZW50Tm9kZSxhPXQ9PT12b2lkIDA/ZS5fJEFCOnQuXyRBQTtpZihyPT09dm9pZCAwKXtsZXQgbj1pLmluc2VydEJlZm9yZShMRGUoKSxhKSxvPWkuaW5zZXJ0QmVmb3JlKExEZSgpLGEpO3I9bmV3IGNUcihuLG8sZSxlLm9wdGlvbnMpfWVsc2V7bGV0IG49ci5fJEFCLm5leHRTaWJsaW5nLG89ci5fJEFNLHM9byE9PWU7aWYocyl7bGV0IGw7ci5fJEFRPy4oZSksci5fJEFNPWUsci5fJEFQIT09dm9pZCAwJiYobD1lLl8kQVUpIT09by5fJEFVJiZyLl8kQVAobCl9aWYobiE9PWF8fHMpe2xldCBsPXIuXyRBQTtmb3IoO2whPT1uOyl7bGV0IGM9X0RlKGwpLm5leHRTaWJsaW5nO19EZShpKS5pbnNlcnRCZWZvcmUobCxhKSxsPWN9fX1yZXR1cm4gcn0sbDI9KGUsdCxyPWUpPT4oZS5fJEFJKHQsciksZSksbVRyPXt9LFU3PShlLHQ9bVRyKT0+ZS5fJEFIPXQsUUc9ZT0+ZS5fJEFILFc3PWU9PntlLl8kQVIoKSxlLl8kQUEucmVtb3ZlKCl9LEpHPWU9PntlLl8kQVIoKX19KTtmdW5jdGlvbiBnVHIoZSl7dGhpcy5fJEFOIT09dm9pZCAwPyhhUyh0aGlzKSx0aGlzLl8kQU09ZSxBRGUodGhpcykpOnRoaXMuXyRBTT1lfWZ1bmN0aW9uIGJUcihlLHQ9ITEscj0wKXtsZXQgaT10aGlzLl8kQUgsYT10aGlzLl8kQU47aWYoYSE9PXZvaWQgMCYmYS5zaXplIT09MClpZih0KWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBuPXI7bjxpLmxlbmd0aDtuKyspRzcoaVtuXSwhMSksYVMoaVtuXSk7ZWxzZSBpIT1udWxsJiYoRzcoaSwhMSksYVMoaSkpO2Vsc2UgRzcodGhpcyxlKX12YXIgRzcsYVMsQURlLHZUcixPbixuUz1wKCgpPT57VnUoKTtObCgpO05sKCk7Rzc9KGUsdCk9PntsZXQgcj1lLl8kQU47aWYocj09PXZvaWQgMClyZXR1cm4hMTtmb3IobGV0IGkgb2YgcilpLl8kQU8/Lih0LCExKSxHNyhpLHQpO3JldHVybiEwfSxhUz1lPT57bGV0IHQscjtkb3tpZigodD1lLl8kQU0pPT09dm9pZCAwKWJyZWFrO3I9dC5fJEFOLHIuZGVsZXRlKGUpLGU9dH13aGlsZShyPy5zaXplPT09MCl9LEFEZT1lPT57Zm9yKGxldCB0O3Q9ZS5fJEFNO2U9dCl7bGV0IHI9dC5fJEFOO2lmKHI9PT12b2lkIDApdC5fJEFOPXI9bmV3IFNldDtlbHNlIGlmKHIuaGFzKGUpKWJyZWFrO3IuYWRkKGUpLHZUcih0KX19O3ZUcj1lPT57ZS50eXBlPT1Ncy5DSElMRCYmKGUuXyRBUD8/PWJUcixlLl8kQVE/Pz1nVHIpfSxPbj1jbGFzcyBleHRlbmRzIGdve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQodCxyLGkpe3N1cGVyLl8kQVQodCxyLGkpLEFEZSh0aGlzKSx0aGlzLmlzQ29ubmVjdGVkPXQuXyRBVX1fJEFPKHQscj0hMCl7dCE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPXQsdD90aGlzLnJlY29ubmVjdGVkPy4oKTp0aGlzLmRpc2Nvbm5lY3RlZD8uKCkpLHImJihHNyh0aGlzLHQpLGFTKHRoaXMpKX1zZXRWYWx1ZSh0KXtpZihYRyh0aGlzLl8kQ3QpKXRoaXMuXyRDdC5fJEFJKHQsdGhpcyk7ZWxzZXtsZXQgcj1bLi4udGhpcy5fJEN0Ll8kQUhdO3JbdGhpcy5fJENpXT10LHRoaXMuXyRDdC5fJEFJKHIsdGhpcywwKX19ZGlzY29ubmVjdGVkKCl7fXJlY29ubmVjdGVkKCl7fX19KTt2YXIgb1M9cCgoKT0+e25TKCl9KTt2YXIgS0csRERlLHhUcixFRGU9cCgoKT0+e1UyKCk7b1MoKTtLRz1jbGFzcyBleHRlbmRzIE9ue3Byb21pc2U7aGFzUHJvbWlzZVNldHRsZWQ9ITE7cmVuZGVyKHQpe3JldHVybiB0aGlzLnByb21pc2UhPT10JiYodGhpcy5wcm9taXNlPXQsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5oYW5kbGVQcm9taXNlKHQpKSxvMX1oYW5kbGVQcm9taXNlKHQpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITEsdC50aGVuKHI9Pnt0aGlzLnByb21pc2U9PT10JiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUociksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KS5jYXRjaChyPT57dGhpcy5wcm9taXNlPT09dCYmIXRoaXMuaGFzUHJvbWlzZVNldHRsZWQmJih0aGlzLnNldFZhbHVlKHIpLHRoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITApfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMH1yZWNvbm5lY3RlZCgpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWR8fHRoaXMuaGFuZGxlUHJvbWlzZSh0aGlzLnByb21pc2UpfX0sRERlPWVpKEtHKSx4VHI9ZT0+RERlKGUoKSl9KTt2YXIgZVkseVRyLCREZT1wKCgpPT57VTIoKTtvUygpO3QyKCk7ZVk9Y2xhc3MgZXh0ZW5kcyBPbntvYnNlcnZhYmxlO3N1Yj1udWxsO3JlbmRlcih0KXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlIT09dCYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT10LHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3Vic2NyaWJlKHQpKSxvMX1zdWJzY3JpYmUodCl7dGhpcy5zdWI9dC5zdWJzY3JpYmUocj0+e3RoaXMuc2V0VmFsdWUocil9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKX1yZWNvbm5lY3RlZCgpe3RoaXMuc3Vic2NyaWJlKHRoaXMub2JzZXJ2YWJsZSl9fSx5VHI9ZWkoZVkpfSk7dmFyIHRZLElEZSxQRGU9cCgoKT0+e1UyKCk7b1MoKTt0MigpO3RZPWNsYXNzIGV4dGVuZHMgT257b2JzZXJ2YWJsZTt0ZW1wbGF0ZUZuO3N1Yj1udWxsO3JlbmRlcih0LHIpe3JldHVybih0aGlzLm9ic2VydmFibGUhPT10fHx0aGlzLnRlbXBsYXRlRm4hPT1yKSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT10LHRoaXMudGVtcGxhdGVGbj1yLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKSksbzF9c3RhcnRTdWJzY3JpcHRpb24oKXt0aGlzLnN1Yj10aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKHQ9PntsZXQgcj10aGlzLnRlbXBsYXRlRm4odCk7dGhpcy5zZXRWYWx1ZShyKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdGFydFN1YnNjcmlwdGlvbigpfX0sSURlPWVpKHRZKX0pO3ZhciByWSxkNix1NixpWT1wKCgpPT57clk9YXN5bmMoZSx0KT0+e2ZvciBhd2FpdChsZXQgciBvZiBlKWlmKGF3YWl0IHQocik9PT0hMSlyZXR1cm59LGQ2PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuRz10fWRpc2Nvbm5lY3QoKXt0aGlzLkc9dm9pZCAwfXJlY29ubmVjdCh0KXt0aGlzLkc9dH1kZXJlZigpe3JldHVybiB0aGlzLkd9fSx1Nj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuWT12b2lkIDAsdGhpcy5aPXZvaWQgMH1nZXQoKXtyZXR1cm4gdGhpcy5ZfXBhdXNlKCl7dGhpcy5ZPz89bmV3IFByb21pc2UodD0+dGhpcy5aPXQpfXJlc3VtZSgpe3RoaXMuWj8uKCksdGhpcy5ZPXRoaXMuWj12b2lkIDB9fX0pO3ZhciBORGUsRkRlLHNTLGFZLE9EZT1wKCgpPT57UW8oKTtWdSgpO25TKCk7aVkoKTtObCgpO05EZT1lPT4hWkcoZSkmJnR5cGVvZiBlLnRoZW49PSJmdW5jdGlvbiIsRkRlPTEwNzM3NDE4MjMsc1M9Y2xhc3MgZXh0ZW5kcyBPbntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fJEN3dD1GRGUsdGhpcy5fJENidD1bXSx0aGlzLl8kQ0s9bmV3IGQ2KHRoaXMpLHRoaXMuXyRDWD1uZXcgdTZ9cmVuZGVyKC4uLnQpe3JldHVybiB0LmZpbmQocj0+IU5EZShyKSk/P28xfXVwZGF0ZSh0LHIpe2xldCBpPXRoaXMuXyRDYnQsYT1pLmxlbmd0aDt0aGlzLl8kQ2J0PXI7bGV0IG49dGhpcy5fJENLLG89dGhpcy5fJENYO3RoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCk7Zm9yKGxldCBzPTA7czxyLmxlbmd0aCYmIShzPnRoaXMuXyRDd3QpO3MrKyl7bGV0IGw9cltzXTtpZighTkRlKGwpKXJldHVybiB0aGlzLl8kQ3d0PXMsbDtzPGEmJmw9PT1pW3NdfHwodGhpcy5fJEN3dD1GRGUsYT0wLFByb21pc2UucmVzb2x2ZShsKS50aGVuKGFzeW5jIGM9Pntmb3IoO28uZ2V0KCk7KWF3YWl0IG8uZ2V0KCk7bGV0IHU9bi5kZXJlZigpO2lmKHUhPT12b2lkIDApe2xldCBkPXUuXyRDYnQuaW5kZXhPZihsKTtkPi0xJiZkPHUuXyRDd3QmJih1Ll8kQ3d0PWQsdS5zZXRWYWx1ZShjKSl9fSkpfXJldHVybiBvMX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSxhWT1laShzUyl9KTt2YXIgUkRlPXAoKCk9PntPRGUoKX0pO3ZhciBVdSx3VHIsQkRlPXAoKCk9PntRbygpO25TKCk7aVkoKTtObCgpO1V1PWNsYXNzIGV4dGVuZHMgT257Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRDSz1uZXcgZDYodGhpcyksdGhpcy5fJENYPW5ldyB1Nn1yZW5kZXIodCxyKXtyZXR1cm4gbzF9dXBkYXRlKHQsW3IsaV0pe2lmKHRoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCkscj09PXRoaXMuXyRDSilyZXR1cm4gbzE7dGhpcy5fJENKPXI7bGV0IGE9MCx7XyRDSzpuLF8kQ1g6b309dGhpcztyZXR1cm4gclkocixhc3luYyBzPT57Zm9yKDtvLmdldCgpOylhd2FpdCBvLmdldCgpO2xldCBsPW4uZGVyZWYoKTtpZihsIT09dm9pZCAwKXtpZihsLl8kQ0ohPT1yKXJldHVybiExO2khPT12b2lkIDAmJihzPWkocyxhKSksbC5jb21taXRWYWx1ZShzLGEpLGErK31yZXR1cm4hMH0pLG8xfWNvbW1pdFZhbHVlKHQscil7dGhpcy5zZXRWYWx1ZSh0KX1kaXNjb25uZWN0ZWQoKXt0aGlzLl8kQ0suZGlzY29ubmVjdCgpLHRoaXMuXyRDWC5wYXVzZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5fJENLLnJlY29ubmVjdCh0aGlzKSx0aGlzLl8kQ1gucmVzdW1lKCl9fSx3VHI9ZWkoVXUpfSk7dmFyIG5ZLEhEZT1wKCgpPT57TmwoKTtCRGUoKTtWdSgpO25ZPWVpKGNsYXNzIGV4dGVuZHMgVXV7Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksZS50eXBlIT09TXMuQ0hJTEQpdGhyb3cgRXJyb3IoImFzeW5jQXBwZW5kIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgZXhwcmVzc2lvbnMiKX11cGRhdGUoZSx0KXtyZXR1cm4gdGhpcy5fJEN0dD1lLHN1cGVyLnVwZGF0ZShlLHQpfWNvbW1pdFZhbHVlKGUsdCl7dD09PTAmJkpHKHRoaXMuXyRDdHQpO2xldCByPUZsKHRoaXMuXyRDdHQpO2wyKHIsZSl9fSl9KTt2YXIgcURlPXAoKCk9PntIRGUoKX0pO3ZhciBvWSxqRGU9cCgoKT0+e1FvKCk7TmwoKTtWdSgpO29ZPWVpKGNsYXNzIGV4dGVuZHMgZ297Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMua2V5PWIxfXJlbmRlcihlLHQpe3JldHVybiB0aGlzLmtleT1lLHR9dXBkYXRlKGUsW3Qscl0pe3JldHVybiB0IT09dGhpcy5rZXkmJihVNyhlKSx0aGlzLmtleT10KSxyfX0pfSk7dmFyIFZEZT1wKCgpPT57akRlKCl9KTt2YXIgVURlLHNZLFdEZT1wKCgpPT57UW8oKTtObCgpO1Z1KCk7VURlPShlLHQscik9PntsZXQgaT1uZXcgTWFwO2ZvcihsZXQgYT10O2E8PXI7YSsrKWkuc2V0KGVbYV0sYSk7cmV0dXJuIGl9LHNZPWVpKGNsYXNzIGV4dGVuZHMgZ297Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksZS50eXBlIT09TXMuQ0hJTEQpdGhyb3cgRXJyb3IoInJlcGVhdCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gdGV4dCBleHByZXNzaW9ucyIpfWR0KGUsdCxyKXtsZXQgaTtyPT09dm9pZCAwP3I9dDp0IT09dm9pZCAwJiYoaT10KTtsZXQgYT1bXSxuPVtdLG89MDtmb3IobGV0IHMgb2YgZSlhW29dPWk/aShzLG8pOm8sbltvXT1yKHMsbyksbysrO3JldHVybnt2YWx1ZXM6bixrZXlzOmF9fXJlbmRlcihlLHQscil7cmV0dXJuIHRoaXMuZHQoZSx0LHIpLnZhbHVlc311cGRhdGUoZSxbdCxyLGldKXtsZXQgYT1RRyhlKSx7dmFsdWVzOm4sa2V5czpvfT10aGlzLmR0KHQscixpKTtpZighQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gdGhpcy51dD1vLG47bGV0IHM9dGhpcy51dD8/PVtdLGw9W10sYyx1LGQ9MCxoPWEubGVuZ3RoLTEsZj0wLHg9bi5sZW5ndGgtMTtmb3IoO2Q8PWgmJmY8PXg7KWlmKGFbZF09PT1udWxsKWQrKztlbHNlIGlmKGFbaF09PT1udWxsKWgtLTtlbHNlIGlmKHNbZF09PT1vW2ZdKWxbZl09bDIoYVtkXSxuW2ZdKSxkKyssZisrO2Vsc2UgaWYoc1toXT09PW9beF0pbFt4XT1sMihhW2hdLG5beF0pLGgtLSx4LS07ZWxzZSBpZihzW2RdPT09b1t4XSlsW3hdPWwyKGFbZF0sblt4XSksRmwoZSxsW3grMV0sYVtkXSksZCsrLHgtLTtlbHNlIGlmKHNbaF09PT1vW2ZdKWxbZl09bDIoYVtoXSxuW2ZdKSxGbChlLGFbZF0sYVtoXSksaC0tLGYrKztlbHNlIGlmKGM9PT12b2lkIDAmJihjPVVEZShvLGYseCksdT1VRGUocyxkLGgpKSxjLmhhcyhzW2RdKSlpZihjLmhhcyhzW2hdKSl7bGV0IHY9dS5nZXQob1tmXSksYj12IT09dm9pZCAwP2Fbdl06bnVsbDtpZihiPT09bnVsbCl7bGV0IHk9RmwoZSxhW2RdKTtsMih5LG5bZl0pLGxbZl09eX1lbHNlIGxbZl09bDIoYixuW2ZdKSxGbChlLGFbZF0sYiksYVt2XT1udWxsO2YrK31lbHNlIFc3KGFbaF0pLGgtLTtlbHNlIFc3KGFbZF0pLGQrKztmb3IoO2Y8PXg7KXtsZXQgdj1GbChlLGxbeCsxXSk7bDIodixuW2ZdKSxsW2YrK109dn1mb3IoO2Q8PWg7KXtsZXQgdj1hW2QrK107diE9PW51bGwmJlc3KHYpfXJldHVybiB0aGlzLnV0PW8sVTcoZSxsKSxvMX19KX0pO3ZhciBHRGU9cCgoKT0+e1dEZSgpfSk7dmFyIGxTPXt9O0ZlKGxTLHthc3luY0FwcGVuZDooKT0+blksa2V5ZWQ6KCk9Pm9ZLHJlcGVhdDooKT0+c1kscmVzb2x2ZTooKT0+RERlLHJlc29sdmVFeGVjOigpPT54VHIsc3Vic2NyaWJlOigpPT55VHIsc3Vic2NyaWJlV2l0aFRlbXBsYXRlOigpPT5JRGUsdW50aWw6KCk9PmFZfSk7dmFyIFlEZT1wKCgpPT57RURlKCk7JERlKCk7UERlKCk7UkRlKCk7cURlKCk7VkRlKCk7R0RlKCl9KTt2YXIgWTc9e307RmUoWTcse0RlZXNFbGVtZW50OigpPT5EaSxjc3M6KCk9PloxLGNzc01hbmFnZXI6KCk9PldpLGN1c3RvbUVsZW1lbnQ6KCk9PmhpLGRpcmVjdGl2ZXM6KCk9PmxTLGRvbXRvb2xzOigpPT5tbyxodG1sOigpPT51cixwcm9wZXJ0eTooKT0+aDMscXVlcnk6KCk9PldHLHF1ZXJ5QWxsOigpPT5HRyxxdWVyeUFzeW5jOigpPT5ZRyxyZW5kZXI6KCk9Pk5oLHN0YXRlOigpPT5hcixzdGF0aWM6KCk9PmpHLHVuc2FmZUNTUzooKT0+dzEsdW5zYWZlSFRNTDooKT0+VkcsdW5zYWZlU3RhdGljOigpPT5xR30pO3ZhciBXaSx2bz1wKCgpPT57dURlKCk7VTIoKTtmRGUoKTtnRGUoKTtiRGUoKTt6RGUoKTtlUygpO1REZSgpO1lEZSgpO1dpPXRTLmdldFNpbmdsZXRvbigpfSk7ZnVuY3Rpb24gTVRyKGUsdCl7bGV0IHI9ZmlbZV07cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmdD9yW3RdfHwiYXV0byI6dHlwZW9mIHI9PSJudW1iZXIiP3I6ImF1dG8ifXZhciBmaSxrVHIsY1MsS3IseG89cCgoKT0+e2ZpPXtiYXNlOntjb250ZW50OiJhdXRvIixpbnB1dEVsZW1lbnRzOjF9LGZpeGVkOnthcHBCYXI6MTAsc2lkZU1lbnU6MTAsbW9iaWxlTmF2OjI1MH0sYmFja2Ryb3A6e2Ryb3Bkb3duOjE5OTksbW9kYWw6Mjk5OSxjb250ZXh0TWVudTozOTk5fSxvdmVybGF5Ontkcm9wZG93bjoyZTMsbW9kYWw6M2UzLGNvbnRleHRNZW51OjRlMyx0b2FzdDo1ZTN9LG1vZGFsRHJvcGRvd246MzUwMCx3eXNpd3lnTWVudXM6NDUwMH07a1RyPXsiZGVlcy1tb2RhbCI6Zmkub3ZlcmxheS5tb2RhbCwiZGVlcy13aW5kb3dsYXllciI6Zmkub3ZlcmxheS5kcm9wZG93biwiZGVlcy1jb250ZXh0bWVudSI6Zmkub3ZlcmxheS5jb250ZXh0TWVudSwiZGVlcy10b2FzdCI6Zmkub3ZlcmxheS50b2FzdCwiZGVlcy1hcHB1aS1tYWlubWVudSI6ZmkuZml4ZWQuYXBwQmFyLCJkZWVzLW1vYmlsZW5hdmlnYXRpb24iOmZpLmZpeGVkLm1vYmlsZU5hdiwiZGVlcy1zbGFzaC1tZW51IjpmaS53eXNpd3lnTWVudXMsImRlZXMtZm9ybWF0dGluZy1tZW51IjpmaS53eXNpd3lnTWVudXN9LGNTPWNsYXNzIGV7c3RhdGljIGluc3RhbmNlO2FjdGl2ZUVsZW1lbnRzPW5ldyBTZXQ7ZWxlbWVudFpJbmRleE1hcD1uZXcgV2Vha01hcDtjdXJyZW50WkluZGV4PTFlMztjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gZS5pbnN0YW5jZXx8KGUuaW5zdGFuY2U9bmV3IGUpLGUuaW5zdGFuY2V9Z2V0TmV4dFpJbmRleCgpe3JldHVybiB0aGlzLmN1cnJlbnRaSW5kZXgrPTEwLHRoaXMuY3VycmVudFpJbmRleH1yZWdpc3Rlcih0LHIpe3RoaXMuYWN0aXZlRWxlbWVudHMuYWRkKHQpLHRoaXMuZWxlbWVudFpJbmRleE1hcC5zZXQodCxyKX11bnJlZ2lzdGVyKHQpe3RoaXMuYWN0aXZlRWxlbWVudHMuZGVsZXRlKHQpLHRoaXMuZWxlbWVudFpJbmRleE1hcC5kZWxldGUodCksdGhpcy5hY3RpdmVFbGVtZW50cy5zaXplPT09MCYmKHRoaXMuY3VycmVudFpJbmRleD0xZTMpfWdldEVsZW1lbnRaSW5kZXgodCl7cmV0dXJuIHRoaXMuZWxlbWVudFpJbmRleE1hcC5nZXQodCl9Z2V0QWN0aXZlQ291bnQoKXtyZXR1cm4gdGhpcy5hY3RpdmVFbGVtZW50cy5zaXplfWdldEN1cnJlbnRaSW5kZXgoKXtyZXR1cm4gdGhpcy5jdXJyZW50WkluZGV4fWNsZWFyKCl7dGhpcy5hY3RpdmVFbGVtZW50cy5jbGVhcigpLHRoaXMuZWxlbWVudFpJbmRleE1hcD1uZXcgV2Vha01hcCx0aGlzLmN1cnJlbnRaSW5kZXg9MWUzfWdldEFjdGl2ZUVsZW1lbnRzSW5PcmRlcigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuYWN0aXZlRWxlbWVudHMpLnNvcnQoKHQscik9PntsZXQgaT10aGlzLmVsZW1lbnRaSW5kZXhNYXAuZ2V0KHQpfHwwLGE9dGhpcy5lbGVtZW50WkluZGV4TWFwLmdldChyKXx8MDtyZXR1cm4gaS1hfSl9fSxLcj1jUy5nZXRJbnN0YW5jZSgpfSk7dmFyIGRTLFo3LGxZLFpEZSxXdSxrcixvZSx1UyxYNyxjWT1wKCgpPT57ZFM9Z2xvYmFsVGhpcyxaNz1kUy5TaGFkb3dSb290JiYoZFMuU2hhZHlDU1M9PT12b2lkIDB8fGRTLlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNoZWV0LnByb3RvdHlwZSxsWT1TeW1ib2woKSxaRGU9bmV3IFdlYWtNYXAsV3U9Y2xhc3N7Y29uc3RydWN0b3IodCxyLGkpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLGkhPT1sWSl0aHJvdyBFcnJvcigiQ1NTUmVzdWx0IGlzIG5vdCBjb25zdHJ1Y3RhYmxlLiBVc2UgYHVuc2FmZUNTU2Agb3IgYGNzc2AgaW5zdGVhZC4iKTt0aGlzLmNzc1RleHQ9dCx0aGlzLnQ9cn1nZXQgc3R5bGVTaGVldCgpe2xldCB0PXRoaXMubyxyPXRoaXMudDtpZihaNyYmdD09PXZvaWQgMCl7bGV0IGk9ciE9PXZvaWQgMCYmci5sZW5ndGg9PT0xO2kmJih0PVpEZS5nZXQocikpLHQ9PT12b2lkIDAmJigodGhpcy5vPXQ9bmV3IENTU1N0eWxlU2hlZXQpLnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCksaSYmWkRlLnNldChyLHQpKX1yZXR1cm4gdH10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fSxrcj1lPT5uZXcgV3UodHlwZW9mIGU9PSJzdHJpbmciP2U6ZSsiIix2b2lkIDAsbFkpLG9lPShlLC4uLnQpPT57bGV0IHI9ZS5sZW5ndGg9PT0xP2VbMF06dC5yZWR1Y2UoKGksYSxuKT0+aSsobz0+e2lmKG8uXyRjc3NSZXN1bHQkPT09ITApcmV0dXJuIG8uY3NzVGV4dDtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIG87dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiAiK28rIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkoYSkrZVtuKzFdLGVbMF0pO3JldHVybiBuZXcgV3UocixlLGxZKX0sdVM9KGUsdCk9PntpZihaNyllLmFkb3B0ZWRTdHlsZVNoZWV0cz10Lm1hcChyPT5yIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9yOnIuc3R5bGVTaGVldCk7ZWxzZSBmb3IobGV0IHIgb2YgdCl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxhPWRTLmxpdE5vbmNlO2EhPT12b2lkIDAmJmkuc2V0QXR0cmlidXRlKCJub25jZSIsYSksaS50ZXh0Q29udGVudD1yLmNzc1RleHQsZS5hcHBlbmRDaGlsZChpKX19LFg3PVo3P2U9PmU6ZT0+ZSBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/KHQ9PntsZXQgcj0iIjtmb3IobGV0IGkgb2YgdC5jc3NSdWxlcylyKz1pLmNzc1RleHQ7cmV0dXJuIGtyKHIpfSkoZSk6ZX0pO3ZhciBTVHIselRyLENUcixUVHIsX1RyLExUcixwUyxYRGUsQVRyLERUcixRNyxHdSxKNyxRRGUsa3MsSzc9cCgoKT0+e2NZKCk7Y1koKTsoe2lzOlNUcixkZWZpbmVQcm9wZXJ0eTp6VHIsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOkNUcixnZXRPd25Qcm9wZXJ0eU5hbWVzOlRUcixnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6X1RyLGdldFByb3RvdHlwZU9mOkxUcn09T2JqZWN0KSxwUz1nbG9iYWxUaGlzLFhEZT1wUy50cnVzdGVkVHlwZXMsQVRyPVhEZT9YRGUuZW1wdHlTY3JpcHQ6IiIsRFRyPXBTLnJlYWN0aXZlRWxlbWVudFBvbHlmaWxsU3VwcG9ydCxRNz0oZSx0KT0+ZSxHdT17dG9BdHRyaWJ1dGUoZSx0KXtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOmU9ZT9BVHI6bnVsbDticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OmU9ZT09bnVsbD9lOkpTT04uc3RyaW5naWZ5KGUpfXJldHVybiBlfSxmcm9tQXR0cmlidXRlKGUsdCl7bGV0IHI9ZTtzd2l0Y2godCl7Y2FzZSBCb29sZWFuOnI9ZSE9PW51bGw7YnJlYWs7Y2FzZSBOdW1iZXI6cj1lPT09bnVsbD9udWxsOk51bWJlcihlKTticmVhaztjYXNlIE9iamVjdDpjYXNlIEFycmF5OnRyeXtyPUpTT04ucGFyc2UoZSl9Y2F0Y2h7cj1udWxsfX1yZXR1cm4gcn19LEo3PShlLHQpPT4hU1RyKGUsdCksUURlPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOkd1LHJlZmxlY3Q6ITEsdXNlRGVmYXVsdDohMSxoYXNDaGFuZ2VkOko3fTtTeW1ib2wubWV0YWRhdGE/Pz1TeW1ib2woIm1ldGFkYXRhIikscFMubGl0UHJvcGVydHlNZXRhZGF0YT8/PW5ldyBXZWFrTWFwO2tzPWNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnR7c3RhdGljIGFkZEluaXRpYWxpemVyKHQpe3RoaXMuXyRFaSgpLCh0aGlzLmw/Pz1bXSkucHVzaCh0KX1zdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpe3JldHVybiB0aGlzLmZpbmFsaXplKCksdGhpcy5fJEVoJiZbLi4udGhpcy5fJEVoLmtleXMoKV19c3RhdGljIGNyZWF0ZVByb3BlcnR5KHQscj1RRGUpe2lmKHIuc3RhdGUmJihyLmF0dHJpYnV0ZT0hMSksdGhpcy5fJEVpKCksdGhpcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkodCkmJigocj1PYmplY3QuY3JlYXRlKHIpKS53cmFwcGVkPSEwKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldCh0LHIpLCFyLm5vQWNjZXNzb3Ipe2xldCBpPVN5bWJvbCgpLGE9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IodCxpLHIpO2EhPT12b2lkIDAmJnpUcih0aGlzLnByb3RvdHlwZSx0LGEpfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQscixpKXtsZXR7Z2V0OmEsc2V0Om59PUNUcih0aGlzLnByb3RvdHlwZSx0KT8/e2dldCgpe3JldHVybiB0aGlzW3JdfSxzZXQobyl7dGhpc1tyXT1vfX07cmV0dXJue2dldDphLHNldChvKXtsZXQgcz1hPy5jYWxsKHRoaXMpO24/LmNhbGwodGhpcyxvKSx0aGlzLnJlcXVlc3RVcGRhdGUodCxzLGkpfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19c3RhdGljIGdldFByb3BlcnR5T3B0aW9ucyh0KXtyZXR1cm4gdGhpcy5lbGVtZW50UHJvcGVydGllcy5nZXQodCk/P1FEZX1zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoUTcoImVsZW1lbnRQcm9wZXJ0aWVzIikpKXJldHVybjtsZXQgdD1MVHIodGhpcyk7dC5maW5hbGl6ZSgpLHQubCE9PXZvaWQgMCYmKHRoaXMubD1bLi4udC5sXSksdGhpcy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwKHQuZWxlbWVudFByb3BlcnRpZXMpfXN0YXRpYyBmaW5hbGl6ZSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoUTcoImZpbmFsaXplZCIpKSlyZXR1cm47aWYodGhpcy5maW5hbGl6ZWQ9ITAsdGhpcy5fJEVpKCksdGhpcy5oYXNPd25Qcm9wZXJ0eShRNygicHJvcGVydGllcyIpKSl7bGV0IHI9dGhpcy5wcm9wZXJ0aWVzLGk9Wy4uLlRUcihyKSwuLi5fVHIocildO2ZvcihsZXQgYSBvZiBpKXRoaXMuY3JlYXRlUHJvcGVydHkoYSxyW2FdKX1sZXQgdD10aGlzW1N5bWJvbC5tZXRhZGF0YV07aWYodCE9PW51bGwpe2xldCByPWxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KHQpO2lmKHIhPT12b2lkIDApZm9yKGxldFtpLGFdb2Ygcil0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChpLGEpfXRoaXMuXyRFaD1uZXcgTWFwO2ZvcihsZXRbcixpXW9mIHRoaXMuZWxlbWVudFByb3BlcnRpZXMpe2xldCBhPXRoaXMuXyRFdShyLGkpO2EhPT12b2lkIDAmJnRoaXMuXyRFaC5zZXQoYSxyKX10aGlzLmVsZW1lbnRTdHlsZXM9dGhpcy5maW5hbGl6ZVN0eWxlcyh0aGlzLnN0eWxlcyl9c3RhdGljIGZpbmFsaXplU3R5bGVzKHQpe2xldCByPVtdO2lmKEFycmF5LmlzQXJyYXkodCkpe2xldCBpPW5ldyBTZXQodC5mbGF0KDEvMCkucmV2ZXJzZSgpKTtmb3IobGV0IGEgb2YgaSlyLnVuc2hpZnQoWDcoYSkpfWVsc2UgdCE9PXZvaWQgMCYmci5wdXNoKFg3KHQpKTtyZXR1cm4gcn1zdGF0aWMgXyRFdSh0LHIpe2xldCBpPXIuYXR0cmlidXRlO3JldHVybiBpPT09ITE/dm9pZCAwOnR5cGVvZiBpPT0ic3RyaW5nIj9pOnR5cGVvZiB0PT0ic3RyaW5nIj90LnRvTG93ZXJDYXNlKCk6dm9pZCAwfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLl8kRXA9dm9pZCAwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExLHRoaXMuaGFzVXBkYXRlZD0hMSx0aGlzLl8kRW09bnVsbCx0aGlzLl8kRXYoKX1fJEV2KCl7dGhpcy5fJEVTPW5ldyBQcm9taXNlKHQ9PnRoaXMuZW5hYmxlVXBkYXRpbmc9dCksdGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5fJEVfKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jb25zdHJ1Y3Rvci5sPy5mb3JFYWNoKHQ9PnQodGhpcykpfWFkZENvbnRyb2xsZXIodCl7KHRoaXMuXyRFTz8/PW5ldyBTZXQpLmFkZCh0KSx0aGlzLnJlbmRlclJvb3QhPT12b2lkIDAmJnRoaXMuaXNDb25uZWN0ZWQmJnQuaG9zdENvbm5lY3RlZD8uKCl9cmVtb3ZlQ29udHJvbGxlcih0KXt0aGlzLl8kRU8/LmRlbGV0ZSh0KX1fJEVfKCl7bGV0IHQ9bmV3IE1hcCxyPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7Zm9yKGxldCBpIG9mIHIua2V5cygpKXRoaXMuaGFzT3duUHJvcGVydHkoaSkmJih0LnNldChpLHRoaXNbaV0pLGRlbGV0ZSB0aGlzW2ldKTt0LnNpemU+MCYmKHRoaXMuXyRFcD10KX1jcmVhdGVSZW5kZXJSb290KCl7bGV0IHQ9dGhpcy5zaGFkb3dSb290Pz90aGlzLmF0dGFjaFNoYWRvdyh0aGlzLmNvbnN0cnVjdG9yLnNoYWRvd1Jvb3RPcHRpb25zKTtyZXR1cm4gdVModCx0aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRTdHlsZXMpLHR9Y29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLnJlbmRlclJvb3Q/Pz10aGlzLmNyZWF0ZVJlbmRlclJvb3QoKSx0aGlzLmVuYWJsZVVwZGF0aW5nKCEwKSx0aGlzLl8kRU8/LmZvckVhY2godD0+dC5ob3N0Q29ubmVjdGVkPy4oKSl9ZW5hYmxlVXBkYXRpbmcodCl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fJEVPPy5mb3JFYWNoKHQ9PnQuaG9zdERpc2Nvbm5lY3RlZD8uKCkpfWF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0LHIsaSl7dGhpcy5fJEFLKHQsaSl9XyRFVCh0LHIpe2xldCBpPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXMuZ2V0KHQpLGE9dGhpcy5jb25zdHJ1Y3Rvci5fJEV1KHQsaSk7aWYoYSE9PXZvaWQgMCYmaS5yZWZsZWN0PT09ITApe2xldCBuPShpLmNvbnZlcnRlcj8udG9BdHRyaWJ1dGUhPT12b2lkIDA/aS5jb252ZXJ0ZXI6R3UpLnRvQXR0cmlidXRlKHIsaS50eXBlKTt0aGlzLl8kRW09dCxuPT1udWxsP3RoaXMucmVtb3ZlQXR0cmlidXRlKGEpOnRoaXMuc2V0QXR0cmlidXRlKGEsbiksdGhpcy5fJEVtPW51bGx9fV8kQUsodCxyKXtsZXQgaT10aGlzLmNvbnN0cnVjdG9yLGE9aS5fJEVoLmdldCh0KTtpZihhIT09dm9pZCAwJiZ0aGlzLl8kRW0hPT1hKXtsZXQgbj1pLmdldFByb3BlcnR5T3B0aW9ucyhhKSxvPXR5cGVvZiBuLmNvbnZlcnRlcj09ImZ1bmN0aW9uIj97ZnJvbUF0dHJpYnV0ZTpuLmNvbnZlcnRlcn06bi5jb252ZXJ0ZXI/LmZyb21BdHRyaWJ1dGUhPT12b2lkIDA/bi5jb252ZXJ0ZXI6R3U7dGhpcy5fJEVtPWE7bGV0IHM9by5mcm9tQXR0cmlidXRlKHIsbi50eXBlKTt0aGlzW2FdPXM/P3RoaXMuXyRFaj8uZ2V0KGEpPz9zLHRoaXMuXyRFbT1udWxsfX1yZXF1ZXN0VXBkYXRlKHQscixpLGE9ITEsbil7aWYodCE9PXZvaWQgMCl7bGV0IG89dGhpcy5jb25zdHJ1Y3RvcjtpZihhPT09ITEmJihuPXRoaXNbdF0pLGk/Pz1vLmdldFByb3BlcnR5T3B0aW9ucyh0KSwhKChpLmhhc0NoYW5nZWQ/P0o3KShuLHIpfHxpLnVzZURlZmF1bHQmJmkucmVmbGVjdCYmbj09PXRoaXMuXyRFaj8uZ2V0KHQpJiYhdGhpcy5oYXNBdHRyaWJ1dGUoby5fJEV1KHQsaSkpKSlyZXR1cm47dGhpcy5DKHQscixpKX10aGlzLmlzVXBkYXRlUGVuZGluZz09PSExJiYodGhpcy5fJEVTPXRoaXMuXyRFUCgpKX1DKHQscix7dXNlRGVmYXVsdDppLHJlZmxlY3Q6YSx3cmFwcGVkOm59LG8pe2kmJiEodGhpcy5fJEVqPz89bmV3IE1hcCkuaGFzKHQpJiYodGhpcy5fJEVqLnNldCh0LG8/P3I/P3RoaXNbdF0pLG4hPT0hMHx8byE9PXZvaWQgMCl8fCh0aGlzLl8kQUwuaGFzKHQpfHwodGhpcy5oYXNVcGRhdGVkfHxpfHwocj12b2lkIDApLHRoaXMuXyRBTC5zZXQodCxyKSksYT09PSEwJiZ0aGlzLl8kRW0hPT10JiYodGhpcy5fJEVxPz89bmV3IFNldCkuYWRkKHQpKX1hc3luYyBfJEVQKCl7dGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e2F3YWl0IHRoaXMuXyRFU31jYXRjaChyKXtQcm9taXNlLnJlamVjdChyKX1sZXQgdD10aGlzLnNjaGVkdWxlVXBkYXRlKCk7cmV0dXJuIHQhPW51bGwmJmF3YWl0IHQsIXRoaXMuaXNVcGRhdGVQZW5kaW5nfXNjaGVkdWxlVXBkYXRlKCl7cmV0dXJuIHRoaXMucGVyZm9ybVVwZGF0ZSgpfXBlcmZvcm1VcGRhdGUoKXtpZighdGhpcy5pc1VwZGF0ZVBlbmRpbmcpcmV0dXJuO2lmKCF0aGlzLmhhc1VwZGF0ZWQpe2lmKHRoaXMucmVuZGVyUm9vdD8/PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpLHRoaXMuXyRFcCl7Zm9yKGxldFthLG5db2YgdGhpcy5fJEVwKXRoaXNbYV09bjt0aGlzLl8kRXA9dm9pZCAwfWxldCBpPXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7aWYoaS5zaXplPjApZm9yKGxldFthLG5db2YgaSl7bGV0e3dyYXBwZWQ6b309bixzPXRoaXNbYV07byE9PSEwfHx0aGlzLl8kQUwuaGFzKGEpfHxzPT09dm9pZCAwfHx0aGlzLkMoYSx2b2lkIDAsbixzKX19bGV0IHQ9ITEscj10aGlzLl8kQUw7dHJ5e3Q9dGhpcy5zaG91bGRVcGRhdGUociksdD8odGhpcy53aWxsVXBkYXRlKHIpLHRoaXMuXyRFTz8uZm9yRWFjaChpPT5pLmhvc3RVcGRhdGU/LigpKSx0aGlzLnVwZGF0ZShyKSk6dGhpcy5fJEVNKCl9Y2F0Y2goaSl7dGhyb3cgdD0hMSx0aGlzLl8kRU0oKSxpfXQmJnRoaXMuXyRBRShyKX13aWxsVXBkYXRlKHQpe31fJEFFKHQpe3RoaXMuXyRFTz8uZm9yRWFjaChyPT5yLmhvc3RVcGRhdGVkPy4oKSksdGhpcy5oYXNVcGRhdGVkfHwodGhpcy5oYXNVcGRhdGVkPSEwLHRoaXMuZmlyc3RVcGRhdGVkKHQpKSx0aGlzLnVwZGF0ZWQodCl9XyRFTSgpe3RoaXMuXyRBTD1uZXcgTWFwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExfWdldCB1cGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLmdldFVwZGF0ZUNvbXBsZXRlKCl9Z2V0VXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5fJEVTfXNob3VsZFVwZGF0ZSh0KXtyZXR1cm4hMH11cGRhdGUodCl7dGhpcy5fJEVxJiY9dGhpcy5fJEVxLmZvckVhY2gocj0+dGhpcy5fJEVUKHIsdGhpc1tyXSkpLHRoaXMuXyRFTSgpfXVwZGF0ZWQodCl7fWZpcnN0VXBkYXRlZCh0KXt9fTtrcy5lbGVtZW50U3R5bGVzPVtdLGtzLnNoYWRvd1Jvb3RPcHRpb25zPXttb2RlOiJvcGVuIn0sa3NbUTcoImVsZW1lbnRQcm9wZXJ0aWVzIildPW5ldyBNYXAsa3NbUTcoImZpbmFsaXplZCIpXT1uZXcgTWFwLERUcj8uKHtSZWFjdGl2ZUVsZW1lbnQ6a3N9KSwocFMucmVhY3RpdmVFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiMi4xLjIiKX0pO2Z1bmN0aW9uIHNFZShlLHQpe2lmKCFoWShlKXx8IWUuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gS0RlIT09dm9pZCAwP0tEZS5jcmVhdGVIVE1MKHQpOnR9ZnVuY3Rpb24gbTYoZSx0LHI9ZSxpKXtpZih0PT09bDEpcmV0dXJuIHQ7bGV0IGE9aSE9PXZvaWQgMD9yLl8kQ28/LltpXTpyLl8kQ2wsbj10bSh0KT92b2lkIDA6dC5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIGE/LmNvbnN0cnVjdG9yIT09biYmKGE/Ll8kQU8/LighMSksbj09PXZvaWQgMD9hPXZvaWQgMDooYT1uZXcgbihlKSxhLl8kQVQoZSxyLGkpKSxpIT09dm9pZCAwPyhyLl8kQ28/Pz1bXSlbaV09YTpyLl8kQ2w9YSksYSE9PXZvaWQgMCYmKHQ9bTYoZSxhLl8kQVMoZSx0LnZhbHVlcyksYSxpKSksdH12YXIgZFksSkRlLGhTLEtEZSx1WSxPbCxwWSxFVHIscDYsZW0sdG0saFksZUVlLGZZLHJtLHRFZSxyRWUsaDYsaUVlLGFFZSxuRWUsbVksQyxnWSxiWSxsMSx4MSxvRWUsZjYsbEVlLGltLGZTLFl1LGc2LG1TLGdTLGJTLHZTLHZZLCRUcixiNixjMj1wKCgpPT57ZFk9Z2xvYmFsVGhpcyxKRGU9ZT0+ZSxoUz1kWS50cnVzdGVkVHlwZXMsS0RlPWhTP2hTLmNyZWF0ZVBvbGljeSgibGl0LWh0bWwiLHtjcmVhdGVIVE1MOmU9PmV9KTp2b2lkIDAsdVk9IiRsaXQkIixPbD1gbGl0JCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDkpLnNsaWNlKDIpfSRgLHBZPSI/IitPbCxFVHI9YDwke3BZfT5gLHA2PWRvY3VtZW50LGVtPSgpPT5wNi5jcmVhdGVDb21tZW50KCIiKSx0bT1lPT5lPT09bnVsbHx8dHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIixoWT1BcnJheS5pc0FycmF5LGVFZT1lPT5oWShlKXx8dHlwZW9mIGU/LltTeW1ib2wuaXRlcmF0b3JdPT0iZnVuY3Rpb24iLGZZPWBbIAkKXGZccl1gLHJtPS88KD86KCEtLXxcL1teYS16QS1aXSl8KFwvP1thLXpBLVpdW14+XHNdKil8KFwvPyQpKS9nLHRFZT0vLS0+L2csckVlPS8+L2csaDY9UmVnRXhwKGA+fCR7Zll9KD86KFteXFxzIic+PS9dKykoJHtmWX0qPSR7Zll9Kig/OlteIAkKXGZcciInXGA8Pj1dfCgifCcpfCkpfCQpYCwiZyIpLGlFZT0vJy9nLGFFZT0vIi9nLG5FZT0vXig/OnNjcmlwdHxzdHlsZXx0ZXh0YXJlYXx0aXRsZSkkL2ksbVk9ZT0+KHQsLi4ucik9Pih7XyRsaXRUeXBlJDplLHN0cmluZ3M6dCx2YWx1ZXM6cn0pLEM9bVkoMSksZ1k9bVkoMiksYlk9bVkoMyksbDE9U3ltYm9sLmZvcigibGl0LW5vQ2hhbmdlIikseDE9U3ltYm9sLmZvcigibGl0LW5vdGhpbmciKSxvRWU9bmV3IFdlYWtNYXAsZjY9cDYuY3JlYXRlVHJlZVdhbGtlcihwNiwxMjkpO2xFZT0oZSx0KT0+e2xldCByPWUubGVuZ3RoLTEsaT1bXSxhLG49dD09PTI/Ijxzdmc+Ijp0PT09Mz8iPG1hdGg+IjoiIixvPXJtO2ZvcihsZXQgcz0wO3M8cjtzKyspe2xldCBsPWVbc10sYyx1LGQ9LTEsaD0wO2Zvcig7aDxsLmxlbmd0aCYmKG8ubGFzdEluZGV4PWgsdT1vLmV4ZWMobCksdSE9PW51bGwpOyloPW8ubGFzdEluZGV4LG89PT1ybT91WzFdPT09IiEtLSI/bz10RWU6dVsxXSE9PXZvaWQgMD9vPXJFZTp1WzJdIT09dm9pZCAwPyhuRWUudGVzdCh1WzJdKSYmKGE9UmVnRXhwKCI8LyIrdVsyXSwiZyIpKSxvPWg2KTp1WzNdIT09dm9pZCAwJiYobz1oNik6bz09PWg2P3VbMF09PT0iPiI/KG89YT8/cm0sZD0tMSk6dVsxXT09PXZvaWQgMD9kPS0yOihkPW8ubGFzdEluZGV4LXVbMl0ubGVuZ3RoLGM9dVsxXSxvPXVbM109PT12b2lkIDA/aDY6dVszXT09PSciJz9hRWU6aUVlKTpvPT09YUVlfHxvPT09aUVlP289aDY6bz09PXRFZXx8bz09PXJFZT9vPXJtOihvPWg2LGE9dm9pZCAwKTtsZXQgZj1vPT09aDYmJmVbcysxXS5zdGFydHNXaXRoKCIvPiIpPyIgIjoiIjtuKz1vPT09cm0/bCtFVHI6ZD49MD8oaS5wdXNoKGMpLGwuc2xpY2UoMCxkKSt1WStsLnNsaWNlKGQpK09sK2YpOmwrT2wrKGQ9PT0tMj9zOmYpfXJldHVybltzRWUoZSxuKyhlW3JdfHwiPD8+IikrKHQ9PT0yPyI8L3N2Zz4iOnQ9PT0zPyI8L21hdGg+IjoiIikpLGldfSxpbT1jbGFzcyBle2NvbnN0cnVjdG9yKHtzdHJpbmdzOnQsXyRsaXRUeXBlJDpyfSxpKXtsZXQgYTt0aGlzLnBhcnRzPVtdO2xldCBuPTAsbz0wLHM9dC5sZW5ndGgtMSxsPXRoaXMucGFydHMsW2MsdV09bEVlKHQscik7aWYodGhpcy5lbD1lLmNyZWF0ZUVsZW1lbnQoYyxpKSxmNi5jdXJyZW50Tm9kZT10aGlzLmVsLmNvbnRlbnQscj09PTJ8fHI9PT0zKXtsZXQgZD10aGlzLmVsLmNvbnRlbnQuZmlyc3RDaGlsZDtkLnJlcGxhY2VXaXRoKC4uLmQuY2hpbGROb2Rlcyl9Zm9yKDsoYT1mNi5uZXh0Tm9kZSgpKSE9PW51bGwmJmwubGVuZ3RoPHM7KXtpZihhLm5vZGVUeXBlPT09MSl7aWYoYS5oYXNBdHRyaWJ1dGVzKCkpZm9yKGxldCBkIG9mIGEuZ2V0QXR0cmlidXRlTmFtZXMoKSlpZihkLmVuZHNXaXRoKHVZKSl7bGV0IGg9dVtvKytdLGY9YS5nZXRBdHRyaWJ1dGUoZCkuc3BsaXQoT2wpLHg9LyhbLj9AXSk/KC4qKS8uZXhlYyhoKTtsLnB1c2goe3R5cGU6MSxpbmRleDpuLG5hbWU6eFsyXSxzdHJpbmdzOmYsY3Rvcjp4WzFdPT09Ii4iP21TOnhbMV09PT0iPyI/Z1M6eFsxXT09PSJAIj9iUzpnNn0pLGEucmVtb3ZlQXR0cmlidXRlKGQpfWVsc2UgZC5zdGFydHNXaXRoKE9sKSYmKGwucHVzaCh7dHlwZTo2LGluZGV4Om59KSxhLnJlbW92ZUF0dHJpYnV0ZShkKSk7aWYobkVlLnRlc3QoYS50YWdOYW1lKSl7bGV0IGQ9YS50ZXh0Q29udGVudC5zcGxpdChPbCksaD1kLmxlbmd0aC0xO2lmKGg+MCl7YS50ZXh0Q29udGVudD1oUz9oUy5lbXB0eVNjcmlwdDoiIjtmb3IobGV0IGY9MDtmPGg7ZisrKWEuYXBwZW5kKGRbZl0sZW0oKSksZjYubmV4dE5vZGUoKSxsLnB1c2goe3R5cGU6MixpbmRleDorK259KTthLmFwcGVuZChkW2hdLGVtKCkpfX19ZWxzZSBpZihhLm5vZGVUeXBlPT09OClpZihhLmRhdGE9PT1wWSlsLnB1c2goe3R5cGU6MixpbmRleDpufSk7ZWxzZXtsZXQgZD0tMTtmb3IoOyhkPWEuZGF0YS5pbmRleE9mKE9sLGQrMSkpIT09LTE7KWwucHVzaCh7dHlwZTo3LGluZGV4Om59KSxkKz1PbC5sZW5ndGgtMX1uKyt9fXN0YXRpYyBjcmVhdGVFbGVtZW50KHQscil7bGV0IGk9cDYuY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiKTtyZXR1cm4gaS5pbm5lckhUTUw9dCxpfX07ZlM9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLl8kQVY9W10sdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUQ9dCx0aGlzLl8kQU09cn1nZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLl8kQU0ucGFyZW50Tm9kZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX11KHQpe2xldHtlbDp7Y29udGVudDpyfSxwYXJ0czppfT10aGlzLl8kQUQsYT0odD8uY3JlYXRpb25TY29wZT8/cDYpLmltcG9ydE5vZGUociwhMCk7ZjYuY3VycmVudE5vZGU9YTtsZXQgbj1mNi5uZXh0Tm9kZSgpLG89MCxzPTAsbD1pWzBdO2Zvcig7bCE9PXZvaWQgMDspe2lmKG89PT1sLmluZGV4KXtsZXQgYztsLnR5cGU9PT0yP2M9bmV3IFl1KG4sbi5uZXh0U2libGluZyx0aGlzLHQpOmwudHlwZT09PTE/Yz1uZXcgbC5jdG9yKG4sbC5uYW1lLGwuc3RyaW5ncyx0aGlzLHQpOmwudHlwZT09PTYmJihjPW5ldyB2UyhuLHRoaXMsdCkpLHRoaXMuXyRBVi5wdXNoKGMpLGw9aVsrK3NdfW8hPT1sPy5pbmRleCYmKG49ZjYubmV4dE5vZGUoKSxvKyspfXJldHVybiBmNi5jdXJyZW50Tm9kZT1wNixhfXAodCl7bGV0IHI9MDtmb3IobGV0IGkgb2YgdGhpcy5fJEFWKWkhPT12b2lkIDAmJihpLnN0cmluZ3MhPT12b2lkIDA/KGkuXyRBSSh0LGkscikscis9aS5zdHJpbmdzLmxlbmd0aC0yKTppLl8kQUkodFtyXSkpLHIrK319LFl1PWNsYXNzIGV7Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNPy5fJEFVPz90aGlzLl8kQ3Z9Y29uc3RydWN0b3IodCxyLGksYSl7dGhpcy50eXBlPTIsdGhpcy5fJEFIPXgxLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPXQsdGhpcy5fJEFCPXIsdGhpcy5fJEFNPWksdGhpcy5vcHRpb25zPWEsdGhpcy5fJEN2PWE/LmlzQ29ubmVjdGVkPz8hMH1nZXQgcGFyZW50Tm9kZSgpe2xldCB0PXRoaXMuXyRBQS5wYXJlbnROb2RlLHI9dGhpcy5fJEFNO3JldHVybiByIT09dm9pZCAwJiZ0Py5ub2RlVHlwZT09PTExJiYodD1yLnBhcmVudE5vZGUpLHR9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFCfV8kQUkodCxyPXRoaXMpe3Q9bTYodGhpcyx0LHIpLHRtKHQpP3Q9PT14MXx8dD09bnVsbHx8dD09PSIiPyh0aGlzLl8kQUghPT14MSYmdGhpcy5fJEFSKCksdGhpcy5fJEFIPXgxKTp0IT09dGhpcy5fJEFIJiZ0IT09bDEmJnRoaXMuXyh0KTp0Ll8kbGl0VHlwZSQhPT12b2lkIDA/dGhpcy4kKHQpOnQubm9kZVR5cGUhPT12b2lkIDA/dGhpcy5UKHQpOmVFZSh0KT90aGlzLmsodCk6dGhpcy5fKHQpfU8odCl7cmV0dXJuIHRoaXMuXyRBQS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHRoaXMuXyRBQil9VCh0KXt0aGlzLl8kQUghPT10JiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuTyh0KSl9Xyh0KXt0aGlzLl8kQUghPT14MSYmdG0odGhpcy5fJEFIKT90aGlzLl8kQUEubmV4dFNpYmxpbmcuZGF0YT10OnRoaXMuVChwNi5jcmVhdGVUZXh0Tm9kZSh0KSksdGhpcy5fJEFIPXR9JCh0KXtsZXR7dmFsdWVzOnIsXyRsaXRUeXBlJDppfT10LGE9dHlwZW9mIGk9PSJudW1iZXIiP3RoaXMuXyRBQyh0KTooaS5lbD09PXZvaWQgMCYmKGkuZWw9aW0uY3JlYXRlRWxlbWVudChzRWUoaS5oLGkuaFswXSksdGhpcy5vcHRpb25zKSksaSk7aWYodGhpcy5fJEFIPy5fJEFEPT09YSl0aGlzLl8kQUgucChyKTtlbHNle2xldCBuPW5ldyBmUyhhLHRoaXMpLG89bi51KHRoaXMub3B0aW9ucyk7bi5wKHIpLHRoaXMuVChvKSx0aGlzLl8kQUg9bn19XyRBQyh0KXtsZXQgcj1vRWUuZ2V0KHQuc3RyaW5ncyk7cmV0dXJuIHI9PT12b2lkIDAmJm9FZS5zZXQodC5zdHJpbmdzLHI9bmV3IGltKHQpKSxyfWsodCl7aFkodGhpcy5fJEFIKXx8KHRoaXMuXyRBSD1bXSx0aGlzLl8kQVIoKSk7bGV0IHI9dGhpcy5fJEFILGksYT0wO2ZvcihsZXQgbiBvZiB0KWE9PT1yLmxlbmd0aD9yLnB1c2goaT1uZXcgZSh0aGlzLk8oZW0oKSksdGhpcy5PKGVtKCkpLHRoaXMsdGhpcy5vcHRpb25zKSk6aT1yW2FdLGkuXyRBSShuKSxhKys7YTxyLmxlbmd0aCYmKHRoaXMuXyRBUihpJiZpLl8kQUIubmV4dFNpYmxpbmcsYSksci5sZW5ndGg9YSl9XyRBUih0PXRoaXMuXyRBQS5uZXh0U2libGluZyxyKXtmb3IodGhpcy5fJEFQPy4oITEsITAscik7dCE9PXRoaXMuXyRBQjspe2xldCBpPUpEZSh0KS5uZXh0U2libGluZztKRGUodCkucmVtb3ZlKCksdD1pfX1zZXRDb25uZWN0ZWQodCl7dGhpcy5fJEFNPT09dm9pZCAwJiYodGhpcy5fJEN2PXQsdGhpcy5fJEFQPy4odCkpfX0sZzY9Y2xhc3N7Z2V0IHRhZ05hbWUoKXtyZXR1cm4gdGhpcy5lbGVtZW50LnRhZ05hbWV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9Y29uc3RydWN0b3IodCxyLGksYSxuKXt0aGlzLnR5cGU9MSx0aGlzLl8kQUg9eDEsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLmVsZW1lbnQ9dCx0aGlzLm5hbWU9cix0aGlzLl8kQU09YSx0aGlzLm9wdGlvbnM9bixpLmxlbmd0aD4yfHxpWzBdIT09IiJ8fGlbMV0hPT0iIj8odGhpcy5fJEFIPUFycmF5KGkubGVuZ3RoLTEpLmZpbGwobmV3IFN0cmluZyksdGhpcy5zdHJpbmdzPWkpOnRoaXMuXyRBSD14MX1fJEFJKHQscj10aGlzLGksYSl7bGV0IG49dGhpcy5zdHJpbmdzLG89ITE7aWYobj09PXZvaWQgMCl0PW02KHRoaXMsdCxyLDApLG89IXRtKHQpfHx0IT09dGhpcy5fJEFIJiZ0IT09bDEsbyYmKHRoaXMuXyRBSD10KTtlbHNle2xldCBzPXQsbCxjO2Zvcih0PW5bMF0sbD0wO2w8bi5sZW5ndGgtMTtsKyspYz1tNih0aGlzLHNbaStsXSxyLGwpLGM9PT1sMSYmKGM9dGhpcy5fJEFIW2xdKSxvfHw9IXRtKGMpfHxjIT09dGhpcy5fJEFIW2xdLGM9PT14MT90PXgxOnQhPT14MSYmKHQrPShjPz8iIikrbltsKzFdKSx0aGlzLl8kQUhbbF09Y31vJiYhYSYmdGhpcy5qKHQpfWoodCl7dD09PXgxP3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uYW1lKTp0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMubmFtZSx0Pz8iIil9fSxtUz1jbGFzcyBleHRlbmRzIGc2e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9M31qKHQpe3RoaXMuZWxlbWVudFt0aGlzLm5hbWVdPXQ9PT14MT92b2lkIDA6dH19LGdTPWNsYXNzIGV4dGVuZHMgZzZ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT00fWoodCl7dGhpcy5lbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSh0aGlzLm5hbWUsISF0JiZ0IT09eDEpfX0sYlM9Y2xhc3MgZXh0ZW5kcyBnNntjb25zdHJ1Y3Rvcih0LHIsaSxhLG4pe3N1cGVyKHQscixpLGEsbiksdGhpcy50eXBlPTV9XyRBSSh0LHI9dGhpcyl7aWYoKHQ9bTYodGhpcyx0LHIsMCk/P3gxKT09PWwxKXJldHVybjtsZXQgaT10aGlzLl8kQUgsYT10PT09eDEmJmkhPT14MXx8dC5jYXB0dXJlIT09aS5jYXB0dXJlfHx0Lm9uY2UhPT1pLm9uY2V8fHQucGFzc2l2ZSE9PWkucGFzc2l2ZSxuPXQhPT14MSYmKGk9PT14MXx8YSk7YSYmdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsaSksbiYmdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5uYW1lLHRoaXMsdCksdGhpcy5fJEFIPXR9aGFuZGxlRXZlbnQodCl7dHlwZW9mIHRoaXMuXyRBSD09ImZ1bmN0aW9uIj90aGlzLl8kQUguY2FsbCh0aGlzLm9wdGlvbnM/Lmhvc3Q/P3RoaXMuZWxlbWVudCx0KTp0aGlzLl8kQUguaGFuZGxlRXZlbnQodCl9fSx2Uz1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsaSl7dGhpcy5lbGVtZW50PXQsdGhpcy50eXBlPTYsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQU09cix0aGlzLm9wdGlvbnM9aX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFJKHQpe202KHRoaXMsdCl9fSx2WT17TTp1WSxQOk9sLEE6cFksQzoxLEw6bEVlLFI6ZlMsRDplRWUsVjptNixJOll1LEg6ZzYsTjpnUyxVOmJTLEI6bVMsRjp2U30sJFRyPWRZLmxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQ7JFRyPy4oaW0sWXUpLChkWS5saXRIdG1sVmVyc2lvbnM/Pz1bXSkucHVzaCgiMy4zLjIiKTtiNj0oZSx0LHIpPT57bGV0IGk9cj8ucmVuZGVyQmVmb3JlPz90LGE9aS5fJGxpdFBhcnQkO2lmKGE9PT12b2lkIDApe2xldCBuPXI/LnJlbmRlckJlZm9yZT8/bnVsbDtpLl8kbGl0UGFydCQ9YT1uZXcgWXUodC5pbnNlcnRCZWZvcmUoZW0oKSxuKSxuLHZvaWQgMCxyPz97fSl9cmV0dXJuIGEuXyRBSShlKSxhfX0pO3ZhciB4WSxSbCxJVHIsUFRyLGNFZT1wKCgpPT57SzcoKTtLNygpO2MyKCk7YzIoKTt4WT1nbG9iYWxUaGlzLFJsPWNsYXNzIGV4dGVuZHMga3N7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMucmVuZGVyT3B0aW9ucz17aG9zdDp0aGlzfSx0aGlzLl8kRG89dm9pZCAwfWNyZWF0ZVJlbmRlclJvb3QoKXtsZXQgdD1zdXBlci5jcmVhdGVSZW5kZXJSb290KCk7cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucy5yZW5kZXJCZWZvcmU/Pz10LmZpcnN0Q2hpbGQsdH11cGRhdGUodCl7bGV0IHI9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKHQpLHRoaXMuXyREbz1iNihyLHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLl8kRG8/LnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCExKX1yZW5kZXIoKXtyZXR1cm4gbDF9fTtSbC5fJGxpdEVsZW1lbnQkPSEwLFJsLmZpbmFsaXplZD0hMCx4WS5saXRFbGVtZW50SHlkcmF0ZVN1cHBvcnQ/Lih7TGl0RWxlbWVudDpSbH0pO0lUcj14WS5saXRFbGVtZW50UG9seWZpbGxTdXBwb3J0O0lUcj8uKHtMaXRFbGVtZW50OlJsfSk7UFRyPXtfJEFLOihlLHQscik9PntlLl8kQUsodCxyKX0sXyRBTDplPT5lLl8kQUx9Oyh4WS5saXRFbGVtZW50VmVyc2lvbnM/Pz1bXSkucHVzaCgiNC4yLjIiKX0pO3ZhciBOVHIsZEVlPXAoKCk9PntOVHI9ITF9KTt2YXIgU3M9cCgoKT0+e0s3KCk7YzIoKTtjRWUoKTtkRWUoKX0pO3ZhciB5Uz1qZSh4Uz0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoeFMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHhTLnVuaT12b2lkIDA7dmFyIEZUcj0oZT0idW5pIik9PmAke2V9XyR7Inh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCIucmVwbGFjZSgvW3h5XS9nLHQ9PntsZXQgcj1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKHQ9PT0ieCI/cjpyJjN8OCkudG9TdHJpbmcoMTYpfSl9YDt4Uy51bmk9RlRyfSk7dmFyIHdTLCQwLE1TPXAoKCk9Pnt3Uz1jbGFzc3tjbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKHQscik9Pnt0aGlzLnJlc29sdmU9aT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksdChpKX0sdGhpcy5yZWplY3Q9aT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxyKGkpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sJDA9KCk9Pm5ldyB3U30pO3ZhciBrUyxPVHIsdUVlPXAoKCk9PntNUygpO2tTPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9JDAoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9c3ViRGVmZXIoKXtsZXQgdD0kMCgpO3JldHVybiB0aGlzLmFkZFByb21pc2UodC5wcm9taXNlKSx0fWFkZFByb21pc2UodCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLnB1c2godCl9fSxPVHI9KCk9Pm5ldyBrU30pO3ZhciBYZT17fTtGZShYZSx7Q3VtdWxhdGl2ZURlZmVycmVkOigpPT5rUyxEZWZlcnJlZDooKT0+d1MsY3VtdWxhdGl2ZURlZmVyOigpPT5PVHIsZGVmZXI6KCk9PiQwLGZyb21DYWxsYmFjazooKT0+VlRyLGdldEZpcnN0VHJ1ZU9yRmFsc2U6KCk9PmpUcixtYXA6KCk9PkhUcixyZWplY3RlZFByb21pc2U6KCk9PkJUcixyZXNvbHZlZFByb21pc2U6KCk9PlJUcix0aW1lb3V0QW5kQ29udGludWU6KCk9PnFUcix0aW1lb3V0V3JhcDooKT0+cEVlfSk7dmFyIFJUcixCVHIsSFRyLHBFZSxxVHIsalRyLFZUcixFaT1wKCgpPT57TVMoKTt1RWUoKTtNUygpO1JUcj1lPT5Qcm9taXNlLnJlc29sdmUoZSksQlRyPWU9PlByb21pc2UucmVqZWN0KGUpLEhUcj1hc3luYyhlLHQpPT57bGV0IHI9W10saT1bXTtmb3IobGV0IGEgb2YgZSl7bGV0IG49dChhKTtyLnB1c2gobiksbi50aGVuKG89PntpLnB1c2gobyl9KX1yZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwociksaX0scEVlPWFzeW5jKGUsdCxyPSEwKT0+bmV3IFByb21pc2UoKGksYSk9PntzZXRUaW1lb3V0KCgpPT57cj9hKG5ldyBFcnJvcigidGltZW91dCIpKTppKG51bGwpfSx0KSxlLnRoZW4oaSxhKX0pLHFUcj1hc3luYyhlLHQ9NmU0KT0+cEVlKGUsdCwhMSksalRyPWFzeW5jIGU9PntsZXQgdD0kMCgpO2ZvcihsZXQgciBvZiBlKXIudGhlbihpPT57aT09PSEwJiZ0LnJlc29sdmUoITApfSk7cmV0dXJuIFByb21pc2UuYWxsKGUpLnRoZW4oKCk9Pnt0LnJlc29sdmUoITEpfSksdC5wcm9taXNlfSxWVHI9ZT0+bmV3IFByb21pc2UoKHQscik9PntlKChpLGEpPT57aT9yKGkpOnQoYSl9KX0pfSk7dmFyIFNTPXAoKCk9PntFaSgpfSk7ZnVuY3Rpb24gWHQoZSx0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmdCE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyh0KSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTt5WShlLHQpO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPWV9ZS5wcm90b3R5cGU9dD09PW51bGw/T2JqZWN0LmNyZWF0ZSh0KTooci5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IHIpfWZ1bmN0aW9uIFdUcihlLHQpe3ZhciByPXt9O2Zvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiZ0LmluZGV4T2YoaSk8MCYmKHJbaV09ZVtpXSk7aWYoZSE9bnVsbCYmdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM9PSJmdW5jdGlvbiIpZm9yKHZhciBhPTAsaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2E8aS5sZW5ndGg7YSsrKXQuaW5kZXhPZihpW2FdKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxpW2FdKSYmKHJbaVthXV09ZVtpW2FdXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gR1RyKGUsdCxyLGkpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGgsbj1hPDM/dDppPT09bnVsbD9pPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKTppLG87aWYodHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZ0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZT09ImZ1bmN0aW9uIiluPVJlZmxlY3QuZGVjb3JhdGUoZSx0LHIsaSk7ZWxzZSBmb3IodmFyIHM9ZS5sZW5ndGgtMTtzPj0wO3MtLSkobz1lW3NdKSYmKG49KGE8Mz9vKG4pOmE+Mz9vKHQscixuKTpvKHQscikpfHxuKTtyZXR1cm4gYT4zJiZuJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLG4pLG59ZnVuY3Rpb24gWVRyKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKHIsaSl7dChyLGksZSl9fWZ1bmN0aW9uIFpUcihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9ZnVuY3Rpb24gWFRyKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfWZ1bmN0aW9uIFFUcihlKXtyZXR1cm4gdHlwZW9mIGU9PSJzeW1ib2wiP2U6IiIuY29uY2F0KGUpfWZ1bmN0aW9uIEpUcihlLHQscil7cmV0dXJuIHR5cGVvZiB0PT0ic3ltYm9sIiYmKHQ9dC5kZXNjcmlwdGlvbj8iWyIuY29uY2F0KHQuZGVzY3JpcHRpb24sIl0iKToiIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm5hbWUiLHtjb25maWd1cmFibGU6ITAsdmFsdWU6cj8iIi5jb25jYXQociwiICIsdCk6dH0pfWZ1bmN0aW9uIEtUcihlLHQpe2lmKHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmdHlwZW9mIFJlZmxlY3QubWV0YWRhdGE9PSJmdW5jdGlvbiIpcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoZSx0KX1mdW5jdGlvbiBTWShlLHQscixpKXtmdW5jdGlvbiBhKG4pe3JldHVybiBuIGluc3RhbmNlb2Ygcj9uOm5ldyByKGZ1bmN0aW9uKG8pe28obil9KX1yZXR1cm4gbmV3KHJ8fChyPVByb21pc2UpKShmdW5jdGlvbihuLG8pe2Z1bmN0aW9uIHModSl7dHJ5e2MoaS5uZXh0KHUpKX1jYXRjaChkKXtvKGQpfX1mdW5jdGlvbiBsKHUpe3RyeXtjKGkudGhyb3codSkpfWNhdGNoKGQpe28oZCl9fWZ1bmN0aW9uIGModSl7dS5kb25lP24odS52YWx1ZSk6YSh1LnZhbHVlKS50aGVuKHMsbCl9YygoaT1pLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSl9ZnVuY3Rpb24gYW0oZSx0KXt2YXIgcj17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoblswXSYxKXRocm93IG5bMV07cmV0dXJuIG5bMV19LHRyeXM6W10sb3BzOltdfSxpLGEsbixvPU9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvcj09ImZ1bmN0aW9uIj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIG8ubmV4dD1zKDApLG8udGhyb3c9cygxKSxvLnJldHVybj1zKDIpLHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhjKXtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGwoW2MsdV0pfX1mdW5jdGlvbiBsKGMpe2lmKGkpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7byYmKG89MCxjWzBdJiYocj0wKSkscjspdHJ5e2lmKGk9MSxhJiYobj1jWzBdJjI/YS5yZXR1cm46Y1swXT9hLnRocm93fHwoKG49YS5yZXR1cm4pJiZuLmNhbGwoYSksMCk6YS5uZXh0KSYmIShuPW4uY2FsbChhLGNbMV0pKS5kb25lKXJldHVybiBuO3N3aXRjaChhPTAsbiYmKGM9W2NbMF0mMixuLnZhbHVlXSksY1swXSl7Y2FzZSAwOmNhc2UgMTpuPWM7YnJlYWs7Y2FzZSA0OnJldHVybiByLmxhYmVsKysse3ZhbHVlOmNbMV0sZG9uZTohMX07Y2FzZSA1OnIubGFiZWwrKyxhPWNbMV0sYz1bMF07Y29udGludWU7Y2FzZSA3OmM9ci5vcHMucG9wKCksci50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYobj1yLnRyeXMsIShuPW4ubGVuZ3RoPjAmJm5bbi5sZW5ndGgtMV0pJiYoY1swXT09PTZ8fGNbMF09PT0yKSl7cj0wO2NvbnRpbnVlfWlmKGNbMF09PT0zJiYoIW58fGNbMV0+blswXSYmY1sxXTxuWzNdKSl7ci5sYWJlbD1jWzFdO2JyZWFrfWlmKGNbMF09PT02JiZyLmxhYmVsPG5bMV0pe3IubGFiZWw9blsxXSxuPWM7YnJlYWt9aWYobiYmci5sYWJlbDxuWzJdKXtyLmxhYmVsPW5bMl0sci5vcHMucHVzaChjKTticmVha31uWzJdJiZyLm9wcy5wb3AoKSxyLnRyeXMucG9wKCk7Y29udGludWV9Yz10LmNhbGwoZSxyKX1jYXRjaCh1KXtjPVs2LHVdLGE9MH1maW5hbGx5e2k9bj0wfWlmKGNbMF0mNSl0aHJvdyBjWzFdO3JldHVybnt2YWx1ZTpjWzBdP2NbMV06dm9pZCAwLGRvbmU6ITB9fX1mdW5jdGlvbiBlX3IoZSx0KXtmb3IodmFyIHIgaW4gZSlyIT09ImRlZmF1bHQiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJk1ZKHQsZSxyKX1mdW5jdGlvbiB5YShlKXt2YXIgdD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wuaXRlcmF0b3Iscj10JiZlW3RdLGk9MDtpZihyKXJldHVybiByLmNhbGwoZSk7aWYoZSYmdHlwZW9mIGUubGVuZ3RoPT0ibnVtYmVyIilyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiBlJiZpPj1lLmxlbmd0aCYmKGU9dm9pZCAwKSx7dmFsdWU6ZSYmZVtpKytdLGRvbmU6IWV9fX07dGhyb3cgbmV3IFR5cGVFcnJvcih0PyJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiI6IlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKX1mdW5jdGlvbiB0aShlLHQpe3ZhciByPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJmVbU3ltYm9sLml0ZXJhdG9yXTtpZighcilyZXR1cm4gZTt2YXIgaT1yLmNhbGwoZSksYSxuPVtdLG87dHJ5e2Zvcig7KHQ9PT12b2lkIDB8fHQtLSA+MCkmJiEoYT1pLm5leHQoKSkuZG9uZTspbi5wdXNoKGEudmFsdWUpfWNhdGNoKHMpe289e2Vycm9yOnN9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihyPWkucmV0dXJuKSYmci5jYWxsKGkpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1yZXR1cm4gbn1mdW5jdGlvbiB0X3IoKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZT1lLmNvbmNhdCh0aShhcmd1bWVudHNbdF0pKTtyZXR1cm4gZX1mdW5jdGlvbiByX3IoKXtmb3IodmFyIGU9MCx0PTAscj1hcmd1bWVudHMubGVuZ3RoO3Q8cjt0KyspZSs9YXJndW1lbnRzW3RdLmxlbmd0aDtmb3IodmFyIGk9QXJyYXkoZSksYT0wLHQ9MDt0PHI7dCsrKWZvcih2YXIgbj1hcmd1bWVudHNbdF0sbz0wLHM9bi5sZW5ndGg7bzxzO28rKyxhKyspaVthXT1uW29dO3JldHVybiBpfWZ1bmN0aW9uIEdpKGUsdCxyKXtpZihyfHxhcmd1bWVudHMubGVuZ3RoPT09Milmb3IodmFyIGk9MCxhPXQubGVuZ3RoLG47aTxhO2krKykobnx8IShpIGluIHQpKSYmKG58fChuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsMCxpKSksbltpXT10W2ldKTtyZXR1cm4gZS5jb25jYXQobnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCkpfWZ1bmN0aW9uIEJsKGUpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgQmw/KHRoaXMudj1lLHRoaXMpOm5ldyBCbChlKX1mdW5jdGlvbiB6WShlLHQscil7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBpPXIuYXBwbHkoZSx0fHxbXSksYSxuPVtdO3JldHVybiBhPU9iamVjdC5jcmVhdGUoKHR5cGVvZiBBc3luY0l0ZXJhdG9yPT0iZnVuY3Rpb24iP0FzeW5jSXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpLHMoIm5leHQiKSxzKCJ0aHJvdyIpLHMoInJldHVybiIsbyksYVtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sYTtmdW5jdGlvbiBvKGYpe3JldHVybiBmdW5jdGlvbih4KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHgpLnRoZW4oZixkKX19ZnVuY3Rpb24gcyhmLHgpe2lbZl0mJihhW2ZdPWZ1bmN0aW9uKHYpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihiLHkpe24ucHVzaChbZix2LGIseV0pPjF8fGwoZix2KX0pfSx4JiYoYVtmXT14KGFbZl0pKSl9ZnVuY3Rpb24gbChmLHgpe3RyeXtjKGlbZl0oeCkpfWNhdGNoKHYpe2goblswXVszXSx2KX19ZnVuY3Rpb24gYyhmKXtmLnZhbHVlIGluc3RhbmNlb2YgQmw/UHJvbWlzZS5yZXNvbHZlKGYudmFsdWUudikudGhlbih1LGQpOmgoblswXVsyXSxmKX1mdW5jdGlvbiB1KGYpe2woIm5leHQiLGYpfWZ1bmN0aW9uIGQoZil7bCgidGhyb3ciLGYpfWZ1bmN0aW9uIGgoZix4KXtmKHgpLG4uc2hpZnQoKSxuLmxlbmd0aCYmbChuWzBdWzBdLG5bMF1bMV0pfX1mdW5jdGlvbiBpX3IoZSl7dmFyIHQscjtyZXR1cm4gdD17fSxpKCJuZXh0IiksaSgidGhyb3ciLGZ1bmN0aW9uKGEpe3Rocm93IGF9KSxpKCJyZXR1cm4iKSx0W1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdDtmdW5jdGlvbiBpKGEsbil7dFthXT1lW2FdP2Z1bmN0aW9uKG8pe3JldHVybihyPSFyKT97dmFsdWU6QmwoZVthXShvKSksZG9uZTohMX06bj9uKG8pOm99Om59fWZ1bmN0aW9uIENZKGUpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgdD1lW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSxyO3JldHVybiB0P3QuY2FsbChlKTooZT10eXBlb2YgeWE9PSJmdW5jdGlvbiI/eWEoZSk6ZVtTeW1ib2wuaXRlcmF0b3JdKCkscj17fSxpKCJuZXh0IiksaSgidGhyb3ciKSxpKCJyZXR1cm4iKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyKTtmdW5jdGlvbiBpKG4pe3Jbbl09ZVtuXSYmZnVuY3Rpb24obyl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMsbCl7bz1lW25dKG8pLGEocyxsLG8uZG9uZSxvLnZhbHVlKX0pfX1mdW5jdGlvbiBhKG4sbyxzLGwpe1Byb21pc2UucmVzb2x2ZShsKS50aGVuKGZ1bmN0aW9uKGMpe24oe3ZhbHVlOmMsZG9uZTpzfSl9LG8pfX1mdW5jdGlvbiBhX3IoZSx0KXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJyYXciLHt2YWx1ZTp0fSk6ZS5yYXc9dCxlfWZ1bmN0aW9uIG9fcihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYoZSE9bnVsbClmb3IodmFyIHI9a1koZSksaT0wO2k8ci5sZW5ndGg7aSsrKXJbaV0hPT0iZGVmYXVsdCImJk1ZKHQsZSxyW2ldKTtyZXR1cm4gbl9yKHQsZSksdH1mdW5jdGlvbiBzX3IoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIGxfcihlLHQscixpKXtpZihyPT09ImEiJiYhaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIiKTtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIj9lIT09dHx8IWk6IXQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpO3JldHVybiByPT09Im0iP2k6cj09PSJhIj9pLmNhbGwoZSk6aT9pLnZhbHVlOnQuZ2V0KGUpfWZ1bmN0aW9uIGNfcihlLHQscixpLGEpe2lmKGk9PT0ibSIpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlIik7aWYoaT09PSJhIiYmIWEpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyIik7aWYodHlwZW9mIHQ9PSJmdW5jdGlvbiI/ZSE9PXR8fCFhOiF0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpO3JldHVybiBpPT09ImEiP2EuY2FsbChlLHIpOmE/YS52YWx1ZT1yOnQuc2V0KGUscikscn1mdW5jdGlvbiBkX3IoZSx0KXtpZih0PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiJiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgdXNlICdpbicgb3BlcmF0b3Igb24gbm9uLW9iamVjdCIpO3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj90PT09ZTplLmhhcyh0KX1mdW5jdGlvbiB1X3IoZSx0LHIpe2lmKHQhPW51bGwpe2lmKHR5cGVvZiB0IT0ib2JqZWN0IiYmdHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkLiIpO3ZhciBpLGE7aWYocil7aWYoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC4iKTtpPXRbU3ltYm9sLmFzeW5jRGlzcG9zZV19aWYoaT09PXZvaWQgMCl7aWYoIVN5bWJvbC5kaXNwb3NlKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLiIpO2k9dFtTeW1ib2wuZGlzcG9zZV0sciYmKGE9aSl9aWYodHlwZW9mIGkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLiIpO2EmJihpPWZ1bmN0aW9uKCl7dHJ5e2EuY2FsbCh0aGlzKX1jYXRjaChuKXtyZXR1cm4gUHJvbWlzZS5yZWplY3Qobil9fSksZS5zdGFjay5wdXNoKHt2YWx1ZTp0LGRpc3Bvc2U6aSxhc3luYzpyfSl9ZWxzZSByJiZlLnN0YWNrLnB1c2goe2FzeW5jOiEwfSk7cmV0dXJuIHR9ZnVuY3Rpb24gaF9yKGUpe2Z1bmN0aW9uIHQobil7ZS5lcnJvcj1lLmhhc0Vycm9yP25ldyBwX3IobixlLmVycm9yLCJBbiBlcnJvciB3YXMgc3VwcHJlc3NlZCBkdXJpbmcgZGlzcG9zYWwuIik6bixlLmhhc0Vycm9yPSEwfXZhciByLGk9MDtmdW5jdGlvbiBhKCl7Zm9yKDtyPWUuc3RhY2sucG9wKCk7KXRyeXtpZighci5hc3luYyYmaT09PTEpcmV0dXJuIGk9MCxlLnN0YWNrLnB1c2gociksUHJvbWlzZS5yZXNvbHZlKCkudGhlbihhKTtpZihyLmRpc3Bvc2Upe3ZhciBuPXIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO2lmKHIuYXN5bmMpcmV0dXJuIGl8PTIsUHJvbWlzZS5yZXNvbHZlKG4pLnRoZW4oYSxmdW5jdGlvbihvKXtyZXR1cm4gdChvKSxhKCl9KX1lbHNlIGl8PTF9Y2F0Y2gobyl7dChvKX1pZihpPT09MSlyZXR1cm4gZS5oYXNFcnJvcj9Qcm9taXNlLnJlamVjdChlLmVycm9yKTpQcm9taXNlLnJlc29sdmUoKTtpZihlLmhhc0Vycm9yKXRocm93IGUuZXJyb3J9cmV0dXJuIGEoKX1mdW5jdGlvbiBmX3IoZSx0KXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciJiYvXlwuXC4/XC8vLnRlc3QoZSk/ZS5yZXBsYWNlKC9cLih0c3gpJHwoKD86XC5kKT8pKCg/OlwuW14uL10rPyk/KVwuKFtjbV0/KXRzJC9pLGZ1bmN0aW9uKHIsaSxhLG4sbyl7cmV0dXJuIGk/dD8iLmpzeCI6Ii5qcyI6YSYmKCFufHwhbyk/cjphK24rIi4iK28udG9Mb3dlckNhc2UoKSsianMifSk6ZX12YXIgeVksd1ksTVksbl9yLGtZLHBfcixBSjEscXI9cCgoKT0+e3lZPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHlZPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihyLGkpe3IuX19wcm90b19fPWl9fHxmdW5jdGlvbihyLGkpe2Zvcih2YXIgYSBpbiBpKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGEpJiYoclthXT1pW2FdKX0seVkoZSx0KX07d1k9ZnVuY3Rpb24oKXtyZXR1cm4gd1k9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciByLGk9MSxhPWFyZ3VtZW50cy5sZW5ndGg7aTxhO2krKyl7cj1hcmd1bWVudHNbaV07Zm9yKHZhciBuIGluIHIpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsbikmJih0W25dPXJbbl0pfXJldHVybiB0fSx3WS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O01ZPU9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCxyLGkpe2k9PT12b2lkIDAmJihpPXIpO3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKTsoIWF8fCgiZ2V0ImluIGE/IXQuX19lc01vZHVsZTphLndyaXRhYmxlfHxhLmNvbmZpZ3VyYWJsZSkpJiYoYT17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLGEpfSk6KGZ1bmN0aW9uKGUsdCxyLGkpe2k9PT12b2lkIDAmJihpPXIpLGVbaV09dFtyXX0pO25fcj1PYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9KTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSxrWT1mdW5jdGlvbihlKXtyZXR1cm4ga1k9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3ZhciByPVtdO2Zvcih2YXIgaSBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGkpJiYocltyLmxlbmd0aF09aSk7cmV0dXJuIHJ9LGtZKGUpfTtwX3I9dHlwZW9mIFN1cHByZXNzZWRFcnJvcj09ImZ1bmN0aW9uIj9TdXBwcmVzc2VkRXJyb3I6ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPW5ldyBFcnJvcihyKTtyZXR1cm4gaS5uYW1lPSJTdXBwcmVzc2VkRXJyb3IiLGkuZXJyb3I9ZSxpLnN1cHByZXNzZWQ9dCxpfTtBSjE9e19fZXh0ZW5kczpYdCxfX2Fzc2lnbjp3WSxfX3Jlc3Q6V1RyLF9fZGVjb3JhdGU6R1RyLF9fcGFyYW06WVRyLF9fZXNEZWNvcmF0ZTpaVHIsX19ydW5Jbml0aWFsaXplcnM6WFRyLF9fcHJvcEtleTpRVHIsX19zZXRGdW5jdGlvbk5hbWU6SlRyLF9fbWV0YWRhdGE6S1RyLF9fYXdhaXRlcjpTWSxfX2dlbmVyYXRvcjphbSxfX2NyZWF0ZUJpbmRpbmc6TVksX19leHBvcnRTdGFyOmVfcixfX3ZhbHVlczp5YSxfX3JlYWQ6dGksX19zcHJlYWQ6dF9yLF9fc3ByZWFkQXJyYXlzOnJfcixfX3NwcmVhZEFycmF5OkdpLF9fYXdhaXQ6QmwsX19hc3luY0dlbmVyYXRvcjp6WSxfX2FzeW5jRGVsZWdhdG9yOmlfcixfX2FzeW5jVmFsdWVzOkNZLF9fbWFrZVRlbXBsYXRlT2JqZWN0OmFfcixfX2ltcG9ydFN0YXI6b19yLF9faW1wb3J0RGVmYXVsdDpzX3IsX19jbGFzc1ByaXZhdGVGaWVsZEdldDpsX3IsX19jbGFzc1ByaXZhdGVGaWVsZFNldDpjX3IsX19jbGFzc1ByaXZhdGVGaWVsZEluOmRfcixfX2FkZERpc3Bvc2FibGVSZXNvdXJjZTp1X3IsX19kaXNwb3NlUmVzb3VyY2VzOmhfcixfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbjpmX3J9fSk7ZnVuY3Rpb24gX3QoZSl7cmV0dXJuIHR5cGVvZiBlPT0iZnVuY3Rpb24ifXZhciAkaT1wKCgpPT57fSk7ZnVuY3Rpb24gdm4oZSl7dmFyIHQ9ZnVuY3Rpb24oaSl7RXJyb3IuY2FsbChpKSxpLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrfSxyPWUodCk7cmV0dXJuIHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHJ9dmFyIEkwPXAoKCk9Pnt9KTt2YXIgbm0sVFk9cCgoKT0+e0kwKCk7bm09dm4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe2UodGhpcyksdGhpcy5tZXNzYWdlPXI/ci5sZW5ndGgrYCBlcnJvcnMgb2NjdXJyZWQgZHVyaW5nIHVuc3Vic2NyaXB0aW9uOgpgK3IubWFwKGZ1bmN0aW9uKGksYSl7cmV0dXJuIGErMSsiKSAiK2kudG9TdHJpbmcoKX0pLmpvaW4oYAogIGApOiIiLHRoaXMubmFtZT0iVW5zdWJzY3JpcHRpb25FcnJvciIsdGhpcy5lcnJvcnM9cn19KX0pO2Z1bmN0aW9uIGQyKGUsdCl7aWYoZSl7dmFyIHI9ZS5pbmRleE9mKHQpOzA8PXImJmUuc3BsaWNlKHIsMSl9fXZhciBadT1wKCgpPT57fSk7ZnVuY3Rpb24gelMoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBxMXx8ZSYmImNsb3NlZCJpbiBlJiZfdChlLnJlbW92ZSkmJl90KGUuYWRkKSYmX3QoZS51bnN1YnNjcmliZSl9ZnVuY3Rpb24gaEVlKGUpe190KGUpP2UoKTplLnVuc3Vic2NyaWJlKCl9dmFyIHExLF9ZLHpzPXAoKCk9PntxcigpOyRpKCk7VFkoKTtadSgpO3ExPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dGhpcy5pbml0aWFsVGVhcmRvd249dCx0aGlzLmNsb3NlZD0hMSx0aGlzLl9wYXJlbnRhZ2U9bnVsbCx0aGlzLl9maW5hbGl6ZXJzPW51bGx9cmV0dXJuIGUucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7dmFyIHQscixpLGEsbjtpZighdGhpcy5jbG9zZWQpe3RoaXMuY2xvc2VkPSEwO3ZhciBvPXRoaXMuX3BhcmVudGFnZTtpZihvKWlmKHRoaXMuX3BhcmVudGFnZT1udWxsLEFycmF5LmlzQXJyYXkobykpdHJ5e2Zvcih2YXIgcz15YShvKSxsPXMubmV4dCgpOyFsLmRvbmU7bD1zLm5leHQoKSl7dmFyIGM9bC52YWx1ZTtjLnJlbW92ZSh0aGlzKX19Y2F0Y2godil7dD17ZXJyb3I6dn19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKHI9cy5yZXR1cm4pJiZyLmNhbGwocyl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fWVsc2Ugby5yZW1vdmUodGhpcyk7dmFyIHU9dGhpcy5pbml0aWFsVGVhcmRvd247aWYoX3QodSkpdHJ5e3UoKX1jYXRjaCh2KXtuPXYgaW5zdGFuY2VvZiBubT92LmVycm9yczpbdl19dmFyIGQ9dGhpcy5fZmluYWxpemVycztpZihkKXt0aGlzLl9maW5hbGl6ZXJzPW51bGw7dHJ5e2Zvcih2YXIgaD15YShkKSxmPWgubmV4dCgpOyFmLmRvbmU7Zj1oLm5leHQoKSl7dmFyIHg9Zi52YWx1ZTt0cnl7aEVlKHgpfWNhdGNoKHYpe249bj8/W10sdiBpbnN0YW5jZW9mIG5tP249R2koR2koW10sdGkobikpLHRpKHYuZXJyb3JzKSk6bi5wdXNoKHYpfX19Y2F0Y2godil7aT17ZXJyb3I6dn19ZmluYWxseXt0cnl7ZiYmIWYuZG9uZSYmKGE9aC5yZXR1cm4pJiZhLmNhbGwoaCl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fX1pZihuKXRocm93IG5ldyBubShuKX19LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgcjtpZih0JiZ0IT09dGhpcylpZih0aGlzLmNsb3NlZCloRWUodCk7ZWxzZXtpZih0IGluc3RhbmNlb2YgZSl7aWYodC5jbG9zZWR8fHQuX2hhc1BhcmVudCh0aGlzKSlyZXR1cm47dC5fYWRkUGFyZW50KHRoaXMpfSh0aGlzLl9maW5hbGl6ZXJzPShyPXRoaXMuX2ZpbmFsaXplcnMpIT09bnVsbCYmciE9PXZvaWQgMD9yOltdKS5wdXNoKHQpfX0sZS5wcm90b3R5cGUuX2hhc1BhcmVudD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cmV0dXJuIHI9PT10fHxBcnJheS5pc0FycmF5KHIpJiZyLmluY2x1ZGVzKHQpfSxlLnByb3RvdHlwZS5fYWRkUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX3BhcmVudGFnZTt0aGlzLl9wYXJlbnRhZ2U9QXJyYXkuaXNBcnJheShyKT8oci5wdXNoKHQpLHIpOnI/W3IsdF06dH0sZS5wcm90b3R5cGUuX3JlbW92ZVBhcmVudD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9wYXJlbnRhZ2U7cj09PXQ/dGhpcy5fcGFyZW50YWdlPW51bGw6QXJyYXkuaXNBcnJheShyKSYmZDIocix0KX0sZS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX2ZpbmFsaXplcnM7ciYmZDIocix0KSx0IGluc3RhbmNlb2YgZSYmdC5fcmVtb3ZlUGFyZW50KHRoaXMpfSxlLkVNUFRZPShmdW5jdGlvbigpe3ZhciB0PW5ldyBlO3JldHVybiB0LmNsb3NlZD0hMCx0fSkoKSxlfSkoKSxfWT1xMS5FTVBUWX0pO3ZhciB5byxYdT1wKCgpPT57eW89e29uVW5oYW5kbGVkRXJyb3I6bnVsbCxvblN0b3BwZWROb3RpZmljYXRpb246bnVsbCxQcm9taXNlOnZvaWQgMCx1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nOiExLHVzZURlcHJlY2F0ZWROZXh0Q29udGV4dDohMX19KTt2YXIgUXUsTFk9cCgoKT0+e3FyKCk7UXU9e3NldFRpbWVvdXQ6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9W10saT0yO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspcltpLTJdPWFyZ3VtZW50c1tpXTt2YXIgYT1RdS5kZWxlZ2F0ZTtyZXR1cm4gYT8uc2V0VGltZW91dD9hLnNldFRpbWVvdXQuYXBwbHkoYSxHaShbZSx0XSx0aShyKSkpOnNldFRpbWVvdXQuYXBwbHkodm9pZCAwLEdpKFtlLHRdLHRpKHIpKSl9LGNsZWFyVGltZW91dDpmdW5jdGlvbihlKXt2YXIgdD1RdS5kZWxlZ2F0ZTtyZXR1cm4odD8uY2xlYXJUaW1lb3V0fHxjbGVhclRpbWVvdXQpKGUpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7ZnVuY3Rpb24gQ1MoZSl7UXUuc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PXlvLm9uVW5oYW5kbGVkRXJyb3I7aWYodCl0KGUpO2Vsc2UgdGhyb3cgZX0pfXZhciBBWT1wKCgpPT57WHUoKTtMWSgpfSk7ZnVuY3Rpb24gd28oKXt9dmFyIHY2PXAoKCk9Pnt9KTtmdW5jdGlvbiBtRWUoZSl7cmV0dXJuIERZKCJFIix2b2lkIDAsZSl9ZnVuY3Rpb24gZ0VlKGUpe3JldHVybiBEWSgiTiIsZSx2b2lkIDApfWZ1bmN0aW9uIERZKGUsdCxyKXtyZXR1cm57a2luZDplLHZhbHVlOnQsZXJyb3I6cn19dmFyIGZFZSxiRWU9cCgoKT0+e2ZFZT0oZnVuY3Rpb24oKXtyZXR1cm4gRFkoIkMiLHZvaWQgMCx2b2lkIDApfSkoKX0pO2Z1bmN0aW9uIEp1KGUpe2lmKHlvLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpe3ZhciB0PSF4NjtpZih0JiYoeDY9e2Vycm9yVGhyb3duOiExLGVycm9yOm51bGx9KSxlKCksdCl7dmFyIHI9eDYsaT1yLmVycm9yVGhyb3duLGE9ci5lcnJvcjtpZih4Nj1udWxsLGkpdGhyb3cgYX19ZWxzZSBlKCl9ZnVuY3Rpb24gdkVlKGUpe3lvLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJng2JiYoeDYuZXJyb3JUaHJvd249ITAseDYuZXJyb3I9ZSl9dmFyIHg2LFRTPXAoKCk9PntYdSgpO3g2PW51bGx9KTtmdW5jdGlvbiBFWShlLHQpe3JldHVybiBtX3IuY2FsbChlLHQpfWZ1bmN0aW9uIF9TKGUpe3lvLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc/dkVlKGUpOkNTKGUpfWZ1bmN0aW9uIGJfcihlKXt0aHJvdyBlfWZ1bmN0aW9uICRZKGUsdCl7dmFyIHI9eW8ub25TdG9wcGVkTm90aWZpY2F0aW9uO3ImJlF1LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gcihlLHQpfSl9dmFyIHk2LG1fcixnX3Isb20sdl9yLExTPXAoKCk9PntxcigpOyRpKCk7enMoKTtYdSgpO0FZKCk7djYoKTtiRWUoKTtMWSgpO1RTKCk7eTY9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdChyKXt2YXIgaT1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIGkuaXNTdG9wcGVkPSExLHI/KGkuZGVzdGluYXRpb249cix6UyhyKSYmci5hZGQoaSkpOmkuZGVzdGluYXRpb249dl9yLGl9cmV0dXJuIHQuY3JlYXRlPWZ1bmN0aW9uKHIsaSxhKXtyZXR1cm4gbmV3IG9tKHIsaSxhKX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt0aGlzLmlzU3RvcHBlZD8kWShnRWUociksdGhpcyk6dGhpcy5fbmV4dChyKX0sdC5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24ocil7dGhpcy5pc1N0b3BwZWQ/JFkobUVlKHIpLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9lcnJvcihyKSl9LHQucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dGhpcy5pc1N0b3BwZWQ/JFkoZkVlLHRoaXMpOih0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX0sdC5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmNsb3NlZHx8KHRoaXMuaXNTdG9wcGVkPSEwLGUucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksdGhpcy5kZXN0aW5hdGlvbj1udWxsKX0sdC5wcm90b3R5cGUuX25leHQ9ZnVuY3Rpb24ocil7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KHIpfSx0LnByb3RvdHlwZS5fZXJyb3I9ZnVuY3Rpb24ocil7dHJ5e3RoaXMuZGVzdGluYXRpb24uZXJyb3Iocil9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fSx0LnByb3RvdHlwZS5fY29tcGxldGU9ZnVuY3Rpb24oKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX0sdH0pKHExKSxtX3I9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQ7Z19yPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dGhpcy5wYXJ0aWFsT2JzZXJ2ZXI9dH1yZXR1cm4gZS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZihyLm5leHQpdHJ5e3IubmV4dCh0KX1jYXRjaChpKXtfUyhpKX19LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMucGFydGlhbE9ic2VydmVyO2lmKHIuZXJyb3IpdHJ5e3IuZXJyb3IodCl9Y2F0Y2goaSl7X1MoaSl9ZWxzZSBfUyh0KX0sZS5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcnRpYWxPYnNlcnZlcjtpZih0LmNvbXBsZXRlKXRyeXt0LmNvbXBsZXRlKCl9Y2F0Y2gocil7X1Mocil9fSxlfSkoKSxvbT0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSxhKXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXMsbztpZihfdChyKXx8IXIpbz17bmV4dDpyPz92b2lkIDAsZXJyb3I6aT8/dm9pZCAwLGNvbXBsZXRlOmE/P3ZvaWQgMH07ZWxzZXt2YXIgcztuJiZ5by51c2VEZXByZWNhdGVkTmV4dENvbnRleHQ/KHM9T2JqZWN0LmNyZWF0ZShyKSxzLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7cmV0dXJuIG4udW5zdWJzY3JpYmUoKX0sbz17bmV4dDpyLm5leHQmJkVZKHIubmV4dCxzKSxlcnJvcjpyLmVycm9yJiZFWShyLmVycm9yLHMpLGNvbXBsZXRlOnIuY29tcGxldGUmJkVZKHIuY29tcGxldGUscyl9KTpvPXJ9cmV0dXJuIG4uZGVzdGluYXRpb249bmV3IGdfcihvKSxufXJldHVybiB0fSkoeTYpO3Zfcj17Y2xvc2VkOiEwLG5leHQ6d28sZXJyb3I6Yl9yLGNvbXBsZXRlOndvfX0pO3ZhciB3NixzbT1wKCgpPT57dzY9KGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIn0pKCl9KTtmdW5jdGlvbiBsbShlKXtyZXR1cm4gZX12YXIgQVM9cCgoKT0+e30pO2Z1bmN0aW9uIHhfcigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gSVkoZSl9ZnVuY3Rpb24gSVkoZSl7cmV0dXJuIGUubGVuZ3RoPT09MD9sbTplLmxlbmd0aD09PTE/ZVswXTpmdW5jdGlvbihyKXtyZXR1cm4gZS5yZWR1Y2UoZnVuY3Rpb24oaSxhKXtyZXR1cm4gYShpKX0scil9fXZhciBQWT1wKCgpPT57QVMoKX0pO2Z1bmN0aW9uIHhFZShlKXt2YXIgdDtyZXR1cm4odD1lPz95by5Qcm9taXNlKSE9PW51bGwmJnQhPT12b2lkIDA/dDpQcm9taXNlfWZ1bmN0aW9uIHlfcihlKXtyZXR1cm4gZSYmX3QoZS5uZXh0KSYmX3QoZS5lcnJvcikmJl90KGUuY29tcGxldGUpfWZ1bmN0aW9uIHdfcihlKXtyZXR1cm4gZSYmZSBpbnN0YW5jZW9mIHk2fHx5X3IoZSkmJnpTKGUpfXZhciBxdCx4bj1wKCgpPT57TFMoKTt6cygpO3NtKCk7UFkoKTtYdSgpOyRpKCk7VFMoKTtxdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe3QmJih0aGlzLl9zdWJzY3JpYmU9dCl9cmV0dXJuIGUucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24odCl7dmFyIHI9bmV3IGU7cmV0dXJuIHIuc291cmNlPXRoaXMsci5vcGVyYXRvcj10LHJ9LGUucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbih0LHIsaSl7dmFyIGE9dGhpcyxuPXdfcih0KT90Om5ldyBvbSh0LHIsaSk7cmV0dXJuIEp1KGZ1bmN0aW9uKCl7dmFyIG89YSxzPW8ub3BlcmF0b3IsbD1vLnNvdXJjZTtuLmFkZChzP3MuY2FsbChuLGwpOmw/YS5fc3Vic2NyaWJlKG4pOmEuX3RyeVN1YnNjcmliZShuKSl9KSxufSxlLnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5fc3Vic2NyaWJlKHQpfWNhdGNoKHIpe3QuZXJyb3Iocil9fSxlLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcztyZXR1cm4gcj14RWUociksbmV3IHIoZnVuY3Rpb24oYSxuKXt2YXIgbz1uZXcgb20oe25leHQ6ZnVuY3Rpb24ocyl7dHJ5e3Qocyl9Y2F0Y2gobCl7bihsKSxvLnVuc3Vic2NyaWJlKCl9fSxlcnJvcjpuLGNvbXBsZXRlOmF9KTtpLnN1YnNjcmliZShvKX0pfSxlLnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHQpe3ZhciByO3JldHVybihyPXRoaXMuc291cmNlKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuc3Vic2NyaWJlKHQpfSxlLnByb3RvdHlwZVt3Nl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gSVkodCkodGhpcyl9LGUucHJvdG90eXBlLnRvUHJvbWlzZT1mdW5jdGlvbih0KXt2YXIgcj10aGlzO3JldHVybiB0PXhFZSh0KSxuZXcgdChmdW5jdGlvbihpLGEpe3ZhciBuO3Iuc3Vic2NyaWJlKGZ1bmN0aW9uKG8pe3JldHVybiBuPW99LGZ1bmN0aW9uKG8pe3JldHVybiBhKG8pfSxmdW5jdGlvbigpe3JldHVybiBpKG4pfSl9KX0sZS5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfSxlfSkoKX0pO2Z1bmN0aW9uIE5ZKGUpe3JldHVybiBfdChlPy5saWZ0KX1mdW5jdGlvbiBEcihlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoTlkodCkpcmV0dXJuIHQubGlmdChmdW5jdGlvbihyKXt0cnl7cmV0dXJuIGUocix0aGlzKX1jYXRjaChpKXt0aGlzLmVycm9yKGkpfX0pO3Rocm93IG5ldyBUeXBlRXJyb3IoIlVuYWJsZSB0byBsaWZ0IHVua25vd24gT2JzZXJ2YWJsZSB0eXBlIil9fXZhciBZaT1wKCgpPT57JGkoKX0pO2Z1bmN0aW9uIHdyKGUsdCxyLGksYSl7cmV0dXJuIG5ldyB5RWUoZSx0LHIsaSxhKX12YXIgeUVlLFdhPXAoKCk9PntxcigpO0xTKCk7eUVlPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQocixpLGEsbixvLHMpe3ZhciBsPWUuY2FsbCh0aGlzLHIpfHx0aGlzO3JldHVybiBsLm9uRmluYWxpemU9byxsLnNob3VsZFVuc3Vic2NyaWJlPXMsbC5fbmV4dD1pP2Z1bmN0aW9uKGMpe3RyeXtpKGMpfWNhdGNoKHUpe3IuZXJyb3IodSl9fTplLnByb3RvdHlwZS5fbmV4dCxsLl9lcnJvcj1uP2Z1bmN0aW9uKGMpe3RyeXtuKGMpfWNhdGNoKHUpe3IuZXJyb3IodSl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTplLnByb3RvdHlwZS5fZXJyb3IsbC5fY29tcGxldGU9YT9mdW5jdGlvbigpe3RyeXthKCl9Y2F0Y2goYyl7ci5lcnJvcihjKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19OmUucHJvdG90eXBlLl9jb21wbGV0ZSxsfXJldHVybiB0LnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbigpe3ZhciByO2lmKCF0aGlzLnNob3VsZFVuc3Vic2NyaWJlfHx0aGlzLnNob3VsZFVuc3Vic2NyaWJlKCkpe3ZhciBpPXRoaXMuY2xvc2VkO2UucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyksIWkmJigocj10aGlzLm9uRmluYWxpemUpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKHRoaXMpKX19LHR9KSh5Nil9KTtmdW5jdGlvbiBEUygpe3JldHVybiBEcihmdW5jdGlvbihlLHQpe3ZhciByPW51bGw7ZS5fcmVmQ291bnQrKzt2YXIgaT13cih0LHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7aWYoIWV8fGUuX3JlZkNvdW50PD0wfHwwPC0tZS5fcmVmQ291bnQpe3I9bnVsbDtyZXR1cm59dmFyIGE9ZS5fY29ubmVjdGlvbixuPXI7cj1udWxsLGEmJighbnx8YT09PW4pJiZhLnVuc3Vic2NyaWJlKCksdC51bnN1YnNjcmliZSgpfSk7ZS5zdWJzY3JpYmUoaSksaS5jbG9zZWR8fChyPWUuY29ubmVjdCgpKX0pfXZhciBFUz1wKCgpPT57WWkoKTtXYSgpfSk7dmFyIHdFZSxNRWU9cCgoKT0+e3FyKCk7eG4oKTt6cygpO0VTKCk7V2EoKTtZaSgpO3dFZT0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSl7dmFyIGE9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBhLnNvdXJjZT1yLGEuc3ViamVjdEZhY3Rvcnk9aSxhLl9zdWJqZWN0PW51bGwsYS5fcmVmQ291bnQ9MCxhLl9jb25uZWN0aW9uPW51bGwsTlkocikmJihhLmxpZnQ9ci5saWZ0KSxhfXJldHVybiB0LnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLmdldFN1YmplY3QoKS5zdWJzY3JpYmUocil9LHQucHJvdG90eXBlLmdldFN1YmplY3Q9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLl9zdWJqZWN0O3JldHVybighcnx8ci5pc1N0b3BwZWQpJiYodGhpcy5fc3ViamVjdD10aGlzLnN1YmplY3RGYWN0b3J5KCkpLHRoaXMuX3N1YmplY3R9LHQucHJvdG90eXBlLl90ZWFyZG93bj1mdW5jdGlvbigpe3RoaXMuX3JlZkNvdW50PTA7dmFyIHI9dGhpcy5fY29ubmVjdGlvbjt0aGlzLl9zdWJqZWN0PXRoaXMuX2Nvbm5lY3Rpb249bnVsbCxyPy51bnN1YnNjcmliZSgpfSx0LnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxpPXRoaXMuX2Nvbm5lY3Rpb247aWYoIWkpe2k9dGhpcy5fY29ubmVjdGlvbj1uZXcgcTE7dmFyIGE9dGhpcy5nZXRTdWJqZWN0KCk7aS5hZGQodGhpcy5zb3VyY2Uuc3Vic2NyaWJlKHdyKGEsdm9pZCAwLGZ1bmN0aW9uKCl7ci5fdGVhcmRvd24oKSxhLmNvbXBsZXRlKCl9LGZ1bmN0aW9uKG4pe3IuX3RlYXJkb3duKCksYS5lcnJvcihuKX0sZnVuY3Rpb24oKXtyZXR1cm4gci5fdGVhcmRvd24oKX0pKSksaS5jbG9zZWQmJih0aGlzLl9jb25uZWN0aW9uPW51bGwsaT1xMS5FTVBUWSl9cmV0dXJuIGl9LHQucHJvdG90eXBlLnJlZkNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIERTKCkodGhpcyl9LHR9KShxdCl9KTt2YXIgRlksa0VlPXAoKCk9PntGWT17bm93OmZ1bmN0aW9uKCl7cmV0dXJuKEZZLmRlbGVnYXRlfHxwZXJmb3JtYW5jZSkubm93KCl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgSGwsT1k9cCgoKT0+e3FyKCk7enMoKTtIbD17c2NoZWR1bGU6ZnVuY3Rpb24oZSl7dmFyIHQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lLHI9Y2FuY2VsQW5pbWF0aW9uRnJhbWUsaT1IbC5kZWxlZ2F0ZTtpJiYodD1pLnJlcXVlc3RBbmltYXRpb25GcmFtZSxyPWkuY2FuY2VsQW5pbWF0aW9uRnJhbWUpO3ZhciBhPXQoZnVuY3Rpb24obil7cj12b2lkIDAsZShuKX0pO3JldHVybiBuZXcgcTEoZnVuY3Rpb24oKXtyZXR1cm4gcj8uKGEpfSl9LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt2YXIgcj1IbC5kZWxlZ2F0ZTtyZXR1cm4ocj8ucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCxHaShbXSx0aShlKSkpfSxjYW5jZWxBbmltYXRpb25GcmFtZTpmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt2YXIgcj1IbC5kZWxlZ2F0ZTtyZXR1cm4ocj8uY2FuY2VsQW5pbWF0aW9uRnJhbWV8fGNhbmNlbEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsR2koW10sdGkoZSkpKX0sZGVsZWdhdGU6dm9pZCAwfX0pO2Z1bmN0aW9uIE1fcihlKXtyZXR1cm4gZT9TRWUoZSk6a19yfWZ1bmN0aW9uIFNFZShlKXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHQpe3ZhciByPWV8fEZZLGk9ci5ub3coKSxhPTAsbj1mdW5jdGlvbigpe3QuY2xvc2VkfHwoYT1IbC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24obyl7YT0wO3ZhciBzPXIubm93KCk7dC5uZXh0KHt0aW1lc3RhbXA6ZT9zOm8sZWxhcHNlZDpzLWl9KSxuKCl9KSl9O3JldHVybiBuKCksZnVuY3Rpb24oKXthJiZIbC5jYW5jZWxBbmltYXRpb25GcmFtZShhKX19KX12YXIga19yLHpFZT1wKCgpPT57eG4oKTtrRWUoKTtPWSgpO2tfcj1TRWUoKX0pO3ZhciBSWSxCWT1wKCgpPT57STAoKTtSWT12bihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtlKHRoaXMpLHRoaXMubmFtZT0iT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IiLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCJ9fSl9KTt2YXIgeW4sSFksY209cCgoKT0+e3FyKCk7eG4oKTt6cygpO0JZKCk7WnUoKTtUUygpO3luPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIHIuY2xvc2VkPSExLHIuY3VycmVudE9ic2VydmVycz1udWxsLHIub2JzZXJ2ZXJzPVtdLHIuaXNTdG9wcGVkPSExLHIuaGFzRXJyb3I9ITEsci50aHJvd25FcnJvcj1udWxsLHJ9cmV0dXJuIHQucHJvdG90eXBlLmxpZnQ9ZnVuY3Rpb24ocil7dmFyIGk9bmV3IEhZKHRoaXMsdGhpcyk7cmV0dXJuIGkub3BlcmF0b3I9cixpfSx0LnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZD1mdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VkKXRocm93IG5ldyBSWX0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXt2YXIgaT10aGlzO0p1KGZ1bmN0aW9uKCl7dmFyIGEsbjtpZihpLl90aHJvd0lmQ2xvc2VkKCksIWkuaXNTdG9wcGVkKXtpLmN1cnJlbnRPYnNlcnZlcnN8fChpLmN1cnJlbnRPYnNlcnZlcnM9QXJyYXkuZnJvbShpLm9ic2VydmVycykpO3RyeXtmb3IodmFyIG89eWEoaS5jdXJyZW50T2JzZXJ2ZXJzKSxzPW8ubmV4dCgpOyFzLmRvbmU7cz1vLm5leHQoKSl7dmFyIGw9cy52YWx1ZTtsLm5leHQocil9fWNhdGNoKGMpe2E9e2Vycm9yOmN9fWZpbmFsbHl7dHJ5e3MmJiFzLmRvbmUmJihuPW8ucmV0dXJuKSYmbi5jYWxsKG8pfWZpbmFsbHl7aWYoYSl0aHJvdyBhLmVycm9yfX19fSl9LHQucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXM7SnUoZnVuY3Rpb24oKXtpZihpLl90aHJvd0lmQ2xvc2VkKCksIWkuaXNTdG9wcGVkKXtpLmhhc0Vycm9yPWkuaXNTdG9wcGVkPSEwLGkudGhyb3duRXJyb3I9cjtmb3IodmFyIGE9aS5vYnNlcnZlcnM7YS5sZW5ndGg7KWEuc2hpZnQoKS5lcnJvcihyKX19KX0sdC5wcm90b3R5cGUuY29tcGxldGU9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO0p1KGZ1bmN0aW9uKCl7aWYoci5fdGhyb3dJZkNsb3NlZCgpLCFyLmlzU3RvcHBlZCl7ci5pc1N0b3BwZWQ9ITA7Zm9yKHZhciBpPXIub2JzZXJ2ZXJzO2kubGVuZ3RoOylpLnNoaWZ0KCkuY29tcGxldGUoKX19KX0sdC5wcm90b3R5cGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24oKXt0aGlzLmlzU3RvcHBlZD10aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz10aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJvYnNlcnZlZCIse2dldDpmdW5jdGlvbigpe3ZhciByO3JldHVybigocj10aGlzLm9ic2VydmVycyk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmxlbmd0aCk+MH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5fdHJ5U3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksZS5wcm90b3R5cGUuX3RyeVN1YnNjcmliZS5jYWxsKHRoaXMscil9LHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKHIpLHRoaXMuX2lubmVyU3Vic2NyaWJlKHIpfSx0LnByb3RvdHlwZS5faW5uZXJTdWJzY3JpYmU9ZnVuY3Rpb24ocil7dmFyIGk9dGhpcyxhPXRoaXMsbj1hLmhhc0Vycm9yLG89YS5pc1N0b3BwZWQscz1hLm9ic2VydmVycztyZXR1cm4gbnx8bz9fWToodGhpcy5jdXJyZW50T2JzZXJ2ZXJzPW51bGwscy5wdXNoKHIpLG5ldyBxMShmdW5jdGlvbigpe2kuY3VycmVudE9ic2VydmVycz1udWxsLGQyKHMscil9KSl9LHQucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMsYT1pLmhhc0Vycm9yLG49aS50aHJvd25FcnJvcixvPWkuaXNTdG9wcGVkO2E/ci5lcnJvcihuKTpvJiZyLmNvbXBsZXRlKCl9LHQucHJvdG90eXBlLmFzT2JzZXJ2YWJsZT1mdW5jdGlvbigpe3ZhciByPW5ldyBxdDtyZXR1cm4gci5zb3VyY2U9dGhpcyxyfSx0LmNyZWF0ZT1mdW5jdGlvbihyLGkpe3JldHVybiBuZXcgSFkocixpKX0sdH0pKHF0KSxIWT0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSl7dmFyIGE9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBhLmRlc3RpbmF0aW9uPXIsYS5zb3VyY2U9aSxhfXJldHVybiB0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3ZhciBpLGE7KGE9KGk9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm5leHQpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKGkscil9LHQucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHIpe3ZhciBpLGE7KGE9KGk9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmVycm9yKT09PW51bGx8fGE9PT12b2lkIDB8fGEuY2FsbChpLHIpfSx0LnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciByLGk7KGk9KHI9dGhpcy5kZXN0aW5hdGlvbik9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLmNvbXBsZXRlKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbChyKX0sdC5wcm90b3R5cGUuX3N1YnNjcmliZT1mdW5jdGlvbihyKXt2YXIgaSxhO3JldHVybihhPShpPXRoaXMuc291cmNlKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuc3Vic2NyaWJlKHIpKSE9PW51bGwmJmEhPT12b2lkIDA/YTpfWX0sdH0pKHluKX0pO3ZhciBDRWUsVEVlPXAoKCk9PntxcigpO2NtKCk7Q0VlPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQocil7dmFyIGk9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiBpLl92YWx1ZT1yLGl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwidmFsdWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHQucHJvdG90eXBlLl9zdWJzY3JpYmU9ZnVuY3Rpb24ocil7dmFyIGk9ZS5wcm90b3R5cGUuX3N1YnNjcmliZS5jYWxsKHRoaXMscik7cmV0dXJuIWkuY2xvc2VkJiZyLm5leHQodGhpcy5fdmFsdWUpLGl9LHQucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxpPXIuaGFzRXJyb3IsYT1yLnRocm93bkVycm9yLG49ci5fdmFsdWU7aWYoaSl0aHJvdyBhO3JldHVybiB0aGlzLl90aHJvd0lmQ2xvc2VkKCksbn0sdC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihyKXtlLnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcyx0aGlzLl92YWx1ZT1yKX0sdH0pKHluKX0pO3ZhciBkbSxxWT1wKCgpPT57ZG09e25vdzpmdW5jdGlvbigpe3JldHVybihkbS5kZWxlZ2F0ZXx8RGF0ZSkubm93KCl9LGRlbGVnYXRlOnZvaWQgMH19KTt2YXIgJFMsX0VlPXAoKCk9PntxcigpO2NtKCk7cVkoKTskUz0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSxhKXtyPT09dm9pZCAwJiYocj0xLzApLGk9PT12b2lkIDAmJihpPTEvMCksYT09PXZvaWQgMCYmKGE9ZG0pO3ZhciBuPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gbi5fYnVmZmVyU2l6ZT1yLG4uX3dpbmRvd1RpbWU9aSxuLl90aW1lc3RhbXBQcm92aWRlcj1hLG4uX2J1ZmZlcj1bXSxuLl9pbmZpbml0ZVRpbWVXaW5kb3c9ITAsbi5faW5maW5pdGVUaW1lV2luZG93PWk9PT0xLzAsbi5fYnVmZmVyU2l6ZT1NYXRoLm1heCgxLHIpLG4uX3dpbmRvd1RpbWU9TWF0aC5tYXgoMSxpKSxufXJldHVybiB0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMsYT1pLmlzU3RvcHBlZCxuPWkuX2J1ZmZlcixvPWkuX2luZmluaXRlVGltZVdpbmRvdyxzPWkuX3RpbWVzdGFtcFByb3ZpZGVyLGw9aS5fd2luZG93VGltZTthfHwobi5wdXNoKHIpLCFvJiZuLnB1c2gocy5ub3coKStsKSksdGhpcy5fdHJpbUJ1ZmZlcigpLGUucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLHIpfSx0LnByb3RvdHlwZS5fc3Vic2NyaWJlPWZ1bmN0aW9uKHIpe3RoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl90cmltQnVmZmVyKCk7Zm9yKHZhciBpPXRoaXMuX2lubmVyU3Vic2NyaWJlKHIpLGE9dGhpcyxuPWEuX2luZmluaXRlVGltZVdpbmRvdyxvPWEuX2J1ZmZlcixzPW8uc2xpY2UoKSxsPTA7bDxzLmxlbmd0aCYmIXIuY2xvc2VkO2wrPW4/MToyKXIubmV4dChzW2xdKTtyZXR1cm4gdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyhyKSxpfSx0LnByb3RvdHlwZS5fdHJpbUJ1ZmZlcj1mdW5jdGlvbigpe3ZhciByPXRoaXMsaT1yLl9idWZmZXJTaXplLGE9ci5fdGltZXN0YW1wUHJvdmlkZXIsbj1yLl9idWZmZXIsbz1yLl9pbmZpbml0ZVRpbWVXaW5kb3cscz0obz8xOjIpKmk7aWYoaTwxLzAmJnM8bi5sZW5ndGgmJm4uc3BsaWNlKDAsbi5sZW5ndGgtcyksIW8pe2Zvcih2YXIgbD1hLm5vdygpLGM9MCx1PTE7dTxuLmxlbmd0aCYmblt1XTw9bDt1Kz0yKWM9dTtjJiZuLnNwbGljZSgwLGMrMSl9fSx0fSkoeW4pfSk7dmFyIExFZSxBRWU9cCgoKT0+e3FyKCk7Y20oKTtMRWU9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdCgpe3ZhciByPWUhPT1udWxsJiZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpcztyZXR1cm4gci5fdmFsdWU9bnVsbCxyLl9oYXNWYWx1ZT0hMSxyLl9pc0NvbXBsZXRlPSExLHJ9cmV0dXJuIHQucHJvdG90eXBlLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzPWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMsYT1pLmhhc0Vycm9yLG49aS5faGFzVmFsdWUsbz1pLl92YWx1ZSxzPWkudGhyb3duRXJyb3IsbD1pLmlzU3RvcHBlZCxjPWkuX2lzQ29tcGxldGU7YT9yLmVycm9yKHMpOihsfHxjKSYmKG4mJnIubmV4dChvKSxyLmNvbXBsZXRlKCkpfSx0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKHIpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5fdmFsdWU9cix0aGlzLl9oYXNWYWx1ZT0hMCl9LHQucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcyxpPXIuX2hhc1ZhbHVlLGE9ci5fdmFsdWUsbj1yLl9pc0NvbXBsZXRlO258fCh0aGlzLl9pc0NvbXBsZXRlPSEwLGkmJmUucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLGEpLGUucHJvdG90eXBlLmNvbXBsZXRlLmNhbGwodGhpcykpfSx0fSkoeW4pfSk7dmFyIGpZLERFZT1wKCgpPT57cXIoKTt6cygpO2pZPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQocixpKXtyZXR1cm4gZS5jYWxsKHRoaXMpfHx0aGlzfXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihyLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSx0aGlzfSx0fSkocTEpfSk7dmFyIHVtLEVFZT1wKCgpPT57cXIoKTt1bT17c2V0SW50ZXJ2YWw6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9W10saT0yO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspcltpLTJdPWFyZ3VtZW50c1tpXTt2YXIgYT11bS5kZWxlZ2F0ZTtyZXR1cm4gYT8uc2V0SW50ZXJ2YWw/YS5zZXRJbnRlcnZhbC5hcHBseShhLEdpKFtlLHRdLHRpKHIpKSk6c2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLEdpKFtlLHRdLHRpKHIpKSl9LGNsZWFySW50ZXJ2YWw6ZnVuY3Rpb24oZSl7dmFyIHQ9dW0uZGVsZWdhdGU7cmV0dXJuKHQ/LmNsZWFySW50ZXJ2YWx8fGNsZWFySW50ZXJ2YWwpKGUpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIHUyLEt1PXAoKCk9PntxcigpO0RFZSgpO0VFZSgpO1p1KCk7dTI9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdChyLGkpe3ZhciBhPWUuY2FsbCh0aGlzLHIsaSl8fHRoaXM7cmV0dXJuIGEuc2NoZWR1bGVyPXIsYS53b3JrPWksYS5wZW5kaW5nPSExLGF9cmV0dXJuIHQucHJvdG90eXBlLnNjaGVkdWxlPWZ1bmN0aW9uKHIsaSl7dmFyIGE7aWYoaT09PXZvaWQgMCYmKGk9MCksdGhpcy5jbG9zZWQpcmV0dXJuIHRoaXM7dGhpcy5zdGF0ZT1yO3ZhciBuPXRoaXMuaWQsbz10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbiE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChvLG4saSkpLHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PWksdGhpcy5pZD0oYT10aGlzLmlkKSE9PW51bGwmJmEhPT12b2lkIDA/YTp0aGlzLnJlcXVlc3RBc3luY0lkKG8sdGhpcy5pZCxpKSx0aGlzfSx0LnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZD1mdW5jdGlvbihyLGksYSl7cmV0dXJuIGE9PT12b2lkIDAmJihhPTApLHVtLnNldEludGVydmFsKHIuZmx1c2guYmluZChyLHRoaXMpLGEpfSx0LnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZD1mdW5jdGlvbihyLGksYSl7aWYoYT09PXZvaWQgMCYmKGE9MCksYSE9bnVsbCYmdGhpcy5kZWxheT09PWEmJnRoaXMucGVuZGluZz09PSExKXJldHVybiBpO2khPW51bGwmJnVtLmNsZWFySW50ZXJ2YWwoaSl9LHQucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24ocixpKXtpZih0aGlzLmNsb3NlZClyZXR1cm4gbmV3IEVycm9yKCJleGVjdXRpbmcgYSBjYW5jZWxsZWQgYWN0aW9uIik7dGhpcy5wZW5kaW5nPSExO3ZhciBhPXRoaXMuX2V4ZWN1dGUocixpKTtpZihhKXJldHVybiBhO3RoaXMucGVuZGluZz09PSExJiZ0aGlzLmlkIT1udWxsJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLHRoaXMuaWQsbnVsbCkpfSx0LnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihyLGkpe3ZhciBhPSExLG47dHJ5e3RoaXMud29yayhyKX1jYXRjaChvKXthPSEwLG49b3x8bmV3IEVycm9yKCJTY2hlZHVsZWQgYWN0aW9uIHRocmV3IGZhbHN5IGVycm9yIil9aWYoYSlyZXR1cm4gdGhpcy51bnN1YnNjcmliZSgpLG59LHQucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY2xvc2VkKXt2YXIgcj10aGlzLGk9ci5pZCxhPXIuc2NoZWR1bGVyLG49YS5hY3Rpb25zO3RoaXMud29yaz10aGlzLnN0YXRlPXRoaXMuc2NoZWR1bGVyPW51bGwsdGhpcy5wZW5kaW5nPSExLGQyKG4sdGhpcyksaSE9bnVsbCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChhLGksbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCxlLnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpfX0sdH0pKGpZKX0pO2Z1bmN0aW9uICRFZShlKXtyZXR1cm4gZSBpbiBJUz8oZGVsZXRlIElTW2VdLCEwKTohMX12YXIgU19yLFZZLElTLFVZLHhlaSxJRWU9cCgoKT0+e1Nfcj0xLElTPXt9O1VZPXtzZXRJbW1lZGlhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9U19yKys7cmV0dXJuIElTW3RdPSEwLFZZfHwoVlk9UHJvbWlzZS5yZXNvbHZlKCkpLFZZLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gJEVlKHQpJiZlKCl9KSx0fSxjbGVhckltbWVkaWF0ZTpmdW5jdGlvbihlKXskRWUoZSl9fSx4ZWk9e3BlbmRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMoSVMpLmxlbmd0aH19fSk7dmFyIHpfcixDX3IscG0sUEVlPXAoKCk9PntxcigpO0lFZSgpO3pfcj1VWS5zZXRJbW1lZGlhdGUsQ19yPVVZLmNsZWFySW1tZWRpYXRlLHBtPXtzZXRJbW1lZGlhdGU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07dmFyIHI9cG0uZGVsZWdhdGU7cmV0dXJuKHI/LnNldEltbWVkaWF0ZXx8el9yKS5hcHBseSh2b2lkIDAsR2koW10sdGkoZSkpKX0sY2xlYXJJbW1lZGlhdGU6ZnVuY3Rpb24oZSl7dmFyIHQ9cG0uZGVsZWdhdGU7cmV0dXJuKHQ/LmNsZWFySW1tZWRpYXRlfHxDX3IpKGUpfSxkZWxlZ2F0ZTp2b2lkIDB9fSk7dmFyIFdZLE5FZT1wKCgpPT57cXIoKTtLdSgpO1BFZSgpO1dZPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQocixpKXt2YXIgYT1lLmNhbGwodGhpcyxyLGkpfHx0aGlzO3JldHVybiBhLnNjaGVkdWxlcj1yLGEud29yaz1pLGF9cmV0dXJuIHQucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHIsaSxhKXtyZXR1cm4gYT09PXZvaWQgMCYmKGE9MCksYSE9PW51bGwmJmE+MD9lLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMscixpLGEpOihyLmFjdGlvbnMucHVzaCh0aGlzKSxyLl9zY2hlZHVsZWR8fChyLl9zY2hlZHVsZWQ9cG0uc2V0SW1tZWRpYXRlKHIuZmx1c2guYmluZChyLHZvaWQgMCkpKSl9LHQucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkPWZ1bmN0aW9uKHIsaSxhKXt2YXIgbjtpZihhPT09dm9pZCAwJiYoYT0wKSxhIT1udWxsP2E+MDp0aGlzLmRlbGF5PjApcmV0dXJuIGUucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcyxyLGksYSk7dmFyIG89ci5hY3Rpb25zO2khPW51bGwmJigobj1vW28ubGVuZ3RoLTFdKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uaWQpIT09aSYmKHBtLmNsZWFySW1tZWRpYXRlKGkpLHIuX3NjaGVkdWxlZD09PWkmJihyLl9zY2hlZHVsZWQ9dm9pZCAwKSl9LHR9KSh1Mil9KTt2YXIgaG0sR1k9cCgoKT0+e3FZKCk7aG09KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIpe3I9PT12b2lkIDAmJihyPWUubm93KSx0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3I9dCx0aGlzLm5vdz1yfXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbih0LHIsaSl7cmV0dXJuIHI9PT12b2lkIDAmJihyPTApLG5ldyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyx0KS5zY2hlZHVsZShpLHIpfSxlLm5vdz1kbS5ub3csZX0pKCl9KTt2YXIgcDIsZTg9cCgoKT0+e3FyKCk7R1koKTtwMj0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSl7aT09PXZvaWQgMCYmKGk9aG0ubm93KTt2YXIgYT1lLmNhbGwodGhpcyxyLGkpfHx0aGlzO3JldHVybiBhLmFjdGlvbnM9W10sYS5fYWN0aXZlPSExLGF9cmV0dXJuIHQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHIpe3ZhciBpPXRoaXMuYWN0aW9ucztpZih0aGlzLl9hY3RpdmUpe2kucHVzaChyKTtyZXR1cm59dmFyIGE7dGhpcy5fYWN0aXZlPSEwO2RvIGlmKGE9ci5leGVjdXRlKHIuc3RhdGUsci5kZWxheSkpYnJlYWs7d2hpbGUocj1pLnNoaWZ0KCkpO2lmKHRoaXMuX2FjdGl2ZT0hMSxhKXtmb3IoO3I9aS5zaGlmdCgpOylyLnVuc3Vic2NyaWJlKCk7dGhyb3cgYX19LHR9KShobSl9KTt2YXIgWVksRkVlPXAoKCk9PntxcigpO2U4KCk7WVk9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdCgpe3JldHVybiBlIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHIpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgaT10aGlzLl9zY2hlZHVsZWQ7dGhpcy5fc2NoZWR1bGVkPXZvaWQgMDt2YXIgYT10aGlzLmFjdGlvbnMsbjtyPXJ8fGEuc2hpZnQoKTtkbyBpZihuPXIuZXhlY3V0ZShyLnN0YXRlLHIuZGVsYXkpKWJyZWFrO3doaWxlKChyPWFbMF0pJiZyLmlkPT09aSYmYS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsbil7Zm9yKDsocj1hWzBdKSYmci5pZD09PWkmJmEuc2hpZnQoKTspci51bnN1YnNjcmliZSgpO3Rocm93IG59fSx0fSkocDIpfSk7dmFyIE9FZSxUX3IsUkVlPXAoKCk9PntORWUoKTtGRWUoKTtPRWU9bmV3IFlZKFdZKSxUX3I9T0VlfSk7dmFyIENzLFpZLE02PXAoKCk9PntLdSgpO2U4KCk7Q3M9bmV3IHAyKHUyKSxaWT1Dc30pO3ZhciBYWSxCRWU9cCgoKT0+e3FyKCk7S3UoKTtYWT0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSl7dmFyIGE9ZS5jYWxsKHRoaXMscixpKXx8dGhpcztyZXR1cm4gYS5zY2hlZHVsZXI9cixhLndvcms9aSxhfXJldHVybiB0LnByb3RvdHlwZS5zY2hlZHVsZT1mdW5jdGlvbihyLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSxpPjA/ZS5wcm90b3R5cGUuc2NoZWR1bGUuY2FsbCh0aGlzLHIsaSk6KHRoaXMuZGVsYXk9aSx0aGlzLnN0YXRlPXIsdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyksdGhpcyl9LHQucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24ocixpKXtyZXR1cm4gaT4wfHx0aGlzLmNsb3NlZD9lLnByb3RvdHlwZS5leGVjdXRlLmNhbGwodGhpcyxyLGkpOnRoaXMuX2V4ZWN1dGUocixpKX0sdC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe3JldHVybiBhPT09dm9pZCAwJiYoYT0wKSxhIT1udWxsJiZhPjB8fGE9PW51bGwmJnRoaXMuZGVsYXk+MD9lLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMscixpLGEpOihyLmZsdXNoKHRoaXMpLDApfSx0fSkodTIpfSk7dmFyIFFZLEhFZT1wKCgpPT57cXIoKTtlOCgpO1FZPShmdW5jdGlvbihlKXtYdCh0LGUpO2Z1bmN0aW9uIHQoKXtyZXR1cm4gZSE9PW51bGwmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfXJldHVybiB0fSkocDIpfSk7dmFyIHFFZSxfX3IsakVlPXAoKCk9PntCRWUoKTtIRWUoKTtxRWU9bmV3IFFZKFhZKSxfX3I9cUVlfSk7dmFyIEpZLFZFZT1wKCgpPT57cXIoKTtLdSgpO09ZKCk7Slk9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdChyLGkpe3ZhciBhPWUuY2FsbCh0aGlzLHIsaSl8fHRoaXM7cmV0dXJuIGEuc2NoZWR1bGVyPXIsYS53b3JrPWksYX1yZXR1cm4gdC5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe3JldHVybiBhPT09dm9pZCAwJiYoYT0wKSxhIT09bnVsbCYmYT4wP2UucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkLmNhbGwodGhpcyxyLGksYSk6KHIuYWN0aW9ucy5wdXNoKHRoaXMpLHIuX3NjaGVkdWxlZHx8KHIuX3NjaGVkdWxlZD1IbC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXR1cm4gci5mbHVzaCh2b2lkIDApfSkpKX0sdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe3ZhciBuO2lmKGE9PT12b2lkIDAmJihhPTApLGEhPW51bGw/YT4wOnRoaXMuZGVsYXk+MClyZXR1cm4gZS5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQuY2FsbCh0aGlzLHIsaSxhKTt2YXIgbz1yLmFjdGlvbnM7aSE9bnVsbCYmaT09PXIuX3NjaGVkdWxlZCYmKChuPW9bby5sZW5ndGgtMV0pPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5pZCkhPT1pJiYoSGwuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaSksci5fc2NoZWR1bGVkPXZvaWQgMCl9LHR9KSh1Mil9KTt2YXIgS1ksVUVlPXAoKCk9PntxcigpO2U4KCk7S1k9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdCgpe3JldHVybiBlIT09bnVsbCYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9cmV0dXJuIHQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKHIpe3RoaXMuX2FjdGl2ZT0hMDt2YXIgaTtyP2k9ci5pZDooaT10aGlzLl9zY2hlZHVsZWQsdGhpcy5fc2NoZWR1bGVkPXZvaWQgMCk7dmFyIGE9dGhpcy5hY3Rpb25zLG47cj1yfHxhLnNoaWZ0KCk7ZG8gaWYobj1yLmV4ZWN1dGUoci5zdGF0ZSxyLmRlbGF5KSlicmVhazt3aGlsZSgocj1hWzBdKSYmci5pZD09PWkmJmEuc2hpZnQoKSk7aWYodGhpcy5fYWN0aXZlPSExLG4pe2Zvcig7KHI9YVswXSkmJnIuaWQ9PT1pJiZhLnNoaWZ0KCk7KXIudW5zdWJzY3JpYmUoKTt0aHJvdyBufX0sdH0pKHAyKX0pO3ZhciBXRWUsTF9yLEdFZT1wKCgpPT57VkVlKCk7VUVlKCk7V0VlPW5ldyBLWShKWSksTF9yPVdFZX0pO3ZhciBZRWUsZVosWkVlPXAoKCk9PntxcigpO0t1KCk7enMoKTtlOCgpO1lFZT0oZnVuY3Rpb24oZSl7WHQodCxlKTtmdW5jdGlvbiB0KHIsaSl7cj09PXZvaWQgMCYmKHI9ZVopLGk9PT12b2lkIDAmJihpPTEvMCk7dmFyIGE9ZS5jYWxsKHRoaXMscixmdW5jdGlvbigpe3JldHVybiBhLmZyYW1lfSl8fHRoaXM7cmV0dXJuIGEubWF4RnJhbWVzPWksYS5mcmFtZT0wLGEuaW5kZXg9LTEsYX1yZXR1cm4gdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIHI9dGhpcyxpPXIuYWN0aW9ucyxhPXIubWF4RnJhbWVzLG4sbzsobz1pWzBdKSYmby5kZWxheTw9YSYmKGkuc2hpZnQoKSx0aGlzLmZyYW1lPW8uZGVsYXksIShuPW8uZXhlY3V0ZShvLnN0YXRlLG8uZGVsYXkpKSk7KTtpZihuKXtmb3IoO289aS5zaGlmdCgpOylvLnVuc3Vic2NyaWJlKCk7dGhyb3cgbn19LHQuZnJhbWVUaW1lRmFjdG9yPTEwLHR9KShwMiksZVo9KGZ1bmN0aW9uKGUpe1h0KHQsZSk7ZnVuY3Rpb24gdChyLGksYSl7YT09PXZvaWQgMCYmKGE9ci5pbmRleCs9MSk7dmFyIG49ZS5jYWxsKHRoaXMscixpKXx8dGhpcztyZXR1cm4gbi5zY2hlZHVsZXI9cixuLndvcms9aSxuLmluZGV4PWEsbi5hY3RpdmU9ITAsbi5pbmRleD1yLmluZGV4PWEsbn1yZXR1cm4gdC5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24ocixpKXtpZihpPT09dm9pZCAwJiYoaT0wKSxOdW1iZXIuaXNGaW5pdGUoaSkpe2lmKCF0aGlzLmlkKXJldHVybiBlLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMscixpKTt0aGlzLmFjdGl2ZT0hMTt2YXIgYT1uZXcgdCh0aGlzLnNjaGVkdWxlcix0aGlzLndvcmspO3JldHVybiB0aGlzLmFkZChhKSxhLnNjaGVkdWxlKHIsaSl9ZWxzZSByZXR1cm4gcTEuRU1QVFl9LHQucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkPWZ1bmN0aW9uKHIsaSxhKXthPT09dm9pZCAwJiYoYT0wKSx0aGlzLmRlbGF5PXIuZnJhbWUrYTt2YXIgbj1yLmFjdGlvbnM7cmV0dXJuIG4ucHVzaCh0aGlzKSxuLnNvcnQodC5zb3J0QWN0aW9ucyksMX0sdC5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQ9ZnVuY3Rpb24ocixpLGEpe2E9PT12b2lkIDAmJihhPTApfSx0LnByb3RvdHlwZS5fZXhlY3V0ZT1mdW5jdGlvbihyLGkpe2lmKHRoaXMuYWN0aXZlPT09ITApcmV0dXJuIGUucHJvdG90eXBlLl9leGVjdXRlLmNhbGwodGhpcyxyLGkpfSx0LnNvcnRBY3Rpb25zPWZ1bmN0aW9uKHIsaSl7cmV0dXJuIHIuZGVsYXk9PT1pLmRlbGF5P3IuaW5kZXg9PT1pLmluZGV4PzA6ci5pbmRleD5pLmluZGV4PzE6LTE6ci5kZWxheT5pLmRlbGF5PzE6LTF9LHR9KSh1Mil9KTtmdW5jdGlvbiBBX3IoZSl7cmV0dXJuIGU/RF9yKGUpOlBTfWZ1bmN0aW9uIERfcihlKXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHQpe3JldHVybiBlLnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIHQuY29tcGxldGUoKX0pfSl9dmFyIFBTLE5TPXAoKCk9Pnt4bigpO1BTPW5ldyBxdChmdW5jdGlvbihlKXtyZXR1cm4gZS5jb21wbGV0ZSgpfSl9KTtmdW5jdGlvbiBGUyhlKXtyZXR1cm4gZSYmX3QoZS5zY2hlZHVsZSl9dmFyIHRaPXAoKCk9PnskaSgpfSk7ZnVuY3Rpb24gclooZSl7cmV0dXJuIGVbZS5sZW5ndGgtMV19ZnVuY3Rpb24gdnRpKGUpe3JldHVybiBfdChyWihlKSk/ZS5wb3AoKTp2b2lkIDB9ZnVuY3Rpb24gUDAoZSl7cmV0dXJuIEZTKHJaKGUpKT9lLnBvcCgpOnZvaWQgMH1mdW5jdGlvbiB4dGkoZSx0KXtyZXR1cm4gdHlwZW9mIHJaKGUpPT0ibnVtYmVyIj9lLnBvcCgpOnR9dmFyIGZtPXAoKCk9PnskaSgpO3RaKCl9KTt2YXIgdDgsT1M9cCgoKT0+e3Q4PShmdW5jdGlvbihlKXtyZXR1cm4gZSYmdHlwZW9mIGUubGVuZ3RoPT0ibnVtYmVyIiYmdHlwZW9mIGUhPSJmdW5jdGlvbiJ9KX0pO2Z1bmN0aW9uIFJTKGUpe3JldHVybiBfdChlPy50aGVuKX12YXIgaVo9cCgoKT0+eyRpKCl9KTtmdW5jdGlvbiBCUyhlKXtyZXR1cm4gX3QoZVt3Nl0pfXZhciBhWj1wKCgpPT57c20oKTskaSgpfSk7ZnVuY3Rpb24gSFMoZSl7cmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yJiZfdChlPy5bU3ltYm9sLmFzeW5jSXRlcmF0b3JdKX12YXIgblo9cCgoKT0+eyRpKCl9KTtmdW5jdGlvbiBxUyhlKXtyZXR1cm4gbmV3IFR5cGVFcnJvcigiWW91IHByb3ZpZGVkICIrKGUhPT1udWxsJiZ0eXBlb2YgZT09Im9iamVjdCI/ImFuIGludmFsaWQgb2JqZWN0IjoiJyIrZSsiJyIpKyIgd2hlcmUgYSBzdHJlYW0gd2FzIGV4cGVjdGVkLiBZb3UgY2FuIHByb3ZpZGUgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgUmVhZGFibGVTdHJlYW0sIEFycmF5LCBBc3luY0l0ZXJhYmxlLCBvciBJdGVyYWJsZS4iKX12YXIgb1o9cCgoKT0+e30pO2Z1bmN0aW9uIEVfcigpe3JldHVybiB0eXBlb2YgU3ltYm9sIT0iZnVuY3Rpb24ifHwhU3ltYm9sLml0ZXJhdG9yPyJAQGl0ZXJhdG9yIjpTeW1ib2wuaXRlcmF0b3J9dmFyIGpTLHNaPXAoKCk9PntqUz1FX3IoKX0pO2Z1bmN0aW9uIFZTKGUpe3JldHVybiBfdChlPy5balNdKX12YXIgbFo9cCgoKT0+e3NaKCk7JGkoKX0pO2Z1bmN0aW9uIFVTKGUpe3JldHVybiB6WSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciByLGksYSxuO3JldHVybiBhbSh0aGlzLGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxhYmVsKXtjYXNlIDA6cj1lLmdldFJlYWRlcigpLG8ubGFiZWw9MTtjYXNlIDE6by50cnlzLnB1c2goWzEsLDksMTBdKSxvLmxhYmVsPTI7Y2FzZSAyOnJldHVybls0LEJsKHIucmVhZCgpKV07Y2FzZSAzOnJldHVybiBpPW8uc2VudCgpLGE9aS52YWx1ZSxuPWkuZG9uZSxuP1s0LEJsKHZvaWQgMCldOlszLDVdO2Nhc2UgNDpyZXR1cm5bMixvLnNlbnQoKV07Y2FzZSA1OnJldHVybls0LEJsKGEpXTtjYXNlIDY6cmV0dXJuWzQsby5zZW50KCldO2Nhc2UgNzpyZXR1cm4gby5zZW50KCksWzMsMl07Y2FzZSA4OnJldHVyblszLDEwXTtjYXNlIDk6cmV0dXJuIHIucmVsZWFzZUxvY2soKSxbN107Y2FzZSAxMDpyZXR1cm5bMl19fSl9KX1mdW5jdGlvbiBXUyhlKXtyZXR1cm4gX3QoZT8uZ2V0UmVhZGVyKX12YXIgR1M9cCgoKT0+e3FyKCk7JGkoKX0pO2Z1bmN0aW9uIEQxKGUpe2lmKGUgaW5zdGFuY2VvZiBxdClyZXR1cm4gZTtpZihlIT1udWxsKXtpZihCUyhlKSlyZXR1cm4gJF9yKGUpO2lmKHQ4KGUpKXJldHVybiBJX3IoZSk7aWYoUlMoZSkpcmV0dXJuIFBfcihlKTtpZihIUyhlKSlyZXR1cm4gWEVlKGUpO2lmKFZTKGUpKXJldHVybiBOX3IoZSk7aWYoV1MoZSkpcmV0dXJuIEZfcihlKX10aHJvdyBxUyhlKX1mdW5jdGlvbiAkX3IoZSl7cmV0dXJuIG5ldyBxdChmdW5jdGlvbih0KXt2YXIgcj1lW3c2XSgpO2lmKF90KHIuc3Vic2NyaWJlKSlyZXR1cm4gci5zdWJzY3JpYmUodCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJvdmlkZWQgb2JqZWN0IGRvZXMgbm90IGNvcnJlY3RseSBpbXBsZW1lbnQgU3ltYm9sLm9ic2VydmFibGUiKX0pfWZ1bmN0aW9uIElfcihlKXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGgmJiF0LmNsb3NlZDtyKyspdC5uZXh0KGVbcl0pO3QuY29tcGxldGUoKX0pfWZ1bmN0aW9uIFBfcihlKXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHQpe2UudGhlbihmdW5jdGlvbihyKXt0LmNsb3NlZHx8KHQubmV4dChyKSx0LmNvbXBsZXRlKCkpfSxmdW5jdGlvbihyKXtyZXR1cm4gdC5lcnJvcihyKX0pLnRoZW4obnVsbCxDUyl9KX1mdW5jdGlvbiBOX3IoZSl7cmV0dXJuIG5ldyBxdChmdW5jdGlvbih0KXt2YXIgcixpO3RyeXtmb3IodmFyIGE9eWEoZSksbj1hLm5leHQoKTshbi5kb25lO249YS5uZXh0KCkpe3ZhciBvPW4udmFsdWU7aWYodC5uZXh0KG8pLHQuY2xvc2VkKXJldHVybn19Y2F0Y2gocyl7cj17ZXJyb3I6c319ZmluYWxseXt0cnl7biYmIW4uZG9uZSYmKGk9YS5yZXR1cm4pJiZpLmNhbGwoYSl9ZmluYWxseXtpZihyKXRocm93IHIuZXJyb3J9fXQuY29tcGxldGUoKX0pfWZ1bmN0aW9uIFhFZShlKXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHQpe09fcihlLHQpLmNhdGNoKGZ1bmN0aW9uKHIpe3JldHVybiB0LmVycm9yKHIpfSl9KX1mdW5jdGlvbiBGX3IoZSl7cmV0dXJuIFhFZShVUyhlKSl9ZnVuY3Rpb24gT19yKGUsdCl7dmFyIHIsaSxhLG47cmV0dXJuIFNZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvLHM7cmV0dXJuIGFtKHRoaXMsZnVuY3Rpb24obCl7c3dpdGNoKGwubGFiZWwpe2Nhc2UgMDpsLnRyeXMucHVzaChbMCw1LDYsMTFdKSxyPUNZKGUpLGwubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsci5uZXh0KCldO2Nhc2UgMjppZihpPWwuc2VudCgpLCEhaS5kb25lKXJldHVyblszLDRdO2lmKG89aS52YWx1ZSx0Lm5leHQobyksdC5jbG9zZWQpcmV0dXJuWzJdO2wubGFiZWw9MztjYXNlIDM6cmV0dXJuWzMsMV07Y2FzZSA0OnJldHVyblszLDExXTtjYXNlIDU6cmV0dXJuIHM9bC5zZW50KCksYT17ZXJyb3I6c30sWzMsMTFdO2Nhc2UgNjpyZXR1cm4gbC50cnlzLnB1c2goWzYsLDksMTBdKSxpJiYhaS5kb25lJiYobj1yLnJldHVybik/WzQsbi5jYWxsKHIpXTpbMyw4XTtjYXNlIDc6bC5zZW50KCksbC5sYWJlbD04O2Nhc2UgODpyZXR1cm5bMywxMF07Y2FzZSA5OmlmKGEpdGhyb3cgYS5lcnJvcjtyZXR1cm5bN107Y2FzZSAxMDpyZXR1cm5bN107Y2FzZSAxMTpyZXR1cm4gdC5jb21wbGV0ZSgpLFsyXX19KX0pfXZhciBNbz1wKCgpPT57cXIoKTtPUygpO2laKCk7eG4oKTthWigpO25aKCk7b1ooKTtsWigpO0dTKCk7JGkoKTtBWSgpO3NtKCl9KTtmdW5jdGlvbiBaaShlLHQscixpLGEpe2k9PT12b2lkIDAmJihpPTApLGE9PT12b2lkIDAmJihhPSExKTt2YXIgbj10LnNjaGVkdWxlKGZ1bmN0aW9uKCl7cigpLGE/ZS5hZGQodGhpcy5zY2hlZHVsZShudWxsLGkpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LGkpO2lmKGUuYWRkKG4pLCFhKXJldHVybiBufXZhciBrNj1wKCgpPT57fSk7ZnVuY3Rpb24gcjgoZSx0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9MCksRHIoZnVuY3Rpb24ocixpKXtyLnN1YnNjcmliZSh3cihpLGZ1bmN0aW9uKGEpe3JldHVybiBaaShpLGUsZnVuY3Rpb24oKXtyZXR1cm4gaS5uZXh0KGEpfSx0KX0sZnVuY3Rpb24oKXtyZXR1cm4gWmkoaSxlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuY29tcGxldGUoKX0sdCl9LGZ1bmN0aW9uKGEpe3JldHVybiBaaShpLGUsZnVuY3Rpb24oKXtyZXR1cm4gaS5lcnJvcihhKX0sdCl9KSl9KX12YXIgbW09cCgoKT0+e2s2KCk7WWkoKTtXYSgpfSk7ZnVuY3Rpb24gaTgoZSx0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9MCksRHIoZnVuY3Rpb24ocixpKXtpLmFkZChlLnNjaGVkdWxlKGZ1bmN0aW9uKCl7cmV0dXJuIHIuc3Vic2NyaWJlKGkpfSx0KSl9KX12YXIgZ209cCgoKT0+e1lpKCl9KTtmdW5jdGlvbiBRRWUoZSx0KXtyZXR1cm4gRDEoZSkucGlwZShpOCh0KSxyOCh0KSl9dmFyIEpFZT1wKCgpPT57TW8oKTttbSgpO2dtKCl9KTtmdW5jdGlvbiBLRWUoZSx0KXtyZXR1cm4gRDEoZSkucGlwZShpOCh0KSxyOCh0KSl9dmFyIGUkZT1wKCgpPT57TW8oKTttbSgpO2dtKCl9KTtmdW5jdGlvbiB0JGUoZSx0KXtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHIpe3ZhciBpPTA7cmV0dXJuIHQuc2NoZWR1bGUoZnVuY3Rpb24oKXtpPT09ZS5sZW5ndGg/ci5jb21wbGV0ZSgpOihyLm5leHQoZVtpKytdKSxyLmNsb3NlZHx8dGhpcy5zY2hlZHVsZSgpKX0pfSl9dmFyIHIkZT1wKCgpPT57eG4oKX0pO2Z1bmN0aW9uIGkkZShlLHQpe3JldHVybiBuZXcgcXQoZnVuY3Rpb24ocil7dmFyIGk7cmV0dXJuIFppKHIsdCxmdW5jdGlvbigpe2k9ZVtqU10oKSxaaShyLHQsZnVuY3Rpb24oKXt2YXIgYSxuLG87dHJ5e2E9aS5uZXh0KCksbj1hLnZhbHVlLG89YS5kb25lfWNhdGNoKHMpe3IuZXJyb3Iocyk7cmV0dXJufW8/ci5jb21wbGV0ZSgpOnIubmV4dChuKX0sMCwhMCl9KSxmdW5jdGlvbigpe3JldHVybiBfdChpPy5yZXR1cm4pJiZpLnJldHVybigpfX0pfXZhciBhJGU9cCgoKT0+e3huKCk7c1ooKTskaSgpO2s2KCl9KTtmdW5jdGlvbiBZUyhlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTtyZXR1cm4gbmV3IHF0KGZ1bmN0aW9uKHIpe1ppKHIsdCxmdW5jdGlvbigpe3ZhciBpPWVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7Wmkocix0LGZ1bmN0aW9uKCl7aS5uZXh0KCkudGhlbihmdW5jdGlvbihhKXthLmRvbmU/ci5jb21wbGV0ZSgpOnIubmV4dChhLnZhbHVlKX0pfSwwLCEwKX0pfSl9dmFyIGNaPXAoKCk9Pnt4bigpO2s2KCl9KTtmdW5jdGlvbiBuJGUoZSx0KXtyZXR1cm4gWVMoVVMoZSksdCl9dmFyIG8kZT1wKCgpPT57Y1ooKTtHUygpfSk7ZnVuY3Rpb24gZFooZSx0KXtpZihlIT1udWxsKXtpZihCUyhlKSlyZXR1cm4gUUVlKGUsdCk7aWYodDgoZSkpcmV0dXJuIHQkZShlLHQpO2lmKFJTKGUpKXJldHVybiBLRWUoZSx0KTtpZihIUyhlKSlyZXR1cm4gWVMoZSx0KTtpZihWUyhlKSlyZXR1cm4gaSRlKGUsdCk7aWYoV1MoZSkpcmV0dXJuIG4kZShlLHQpfXRocm93IHFTKGUpfXZhciB1Wj1wKCgpPT57SkVlKCk7ZSRlKCk7ciRlKCk7YSRlKCk7Y1ooKTthWigpO2laKCk7T1MoKTtsWigpO25aKCk7b1ooKTtHUygpO28kZSgpfSk7ZnVuY3Rpb24gUzYoZSx0KXtyZXR1cm4gdD9kWihlLHQpOkQxKGUpfXZhciBaUz1wKCgpPT57dVooKTtNbygpfSk7ZnVuY3Rpb24gYm0oKXtmb3IodmFyIGU9W10sdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZVt0XT1hcmd1bWVudHNbdF07dmFyIHI9UDAoZSk7cmV0dXJuIFM2KGUscil9dmFyIHBaPXAoKCk9PntmbSgpO1pTKCl9KTtmdW5jdGlvbiBoWihlLHQpe3ZhciByPV90KGUpP2U6ZnVuY3Rpb24oKXtyZXR1cm4gZX0saT1mdW5jdGlvbihhKXtyZXR1cm4gYS5lcnJvcihyKCkpfTtyZXR1cm4gbmV3IHF0KHQ/ZnVuY3Rpb24oYSl7cmV0dXJuIHQuc2NoZWR1bGUoaSwwLGEpfTppKX12YXIgZlo9cCgoKT0+e3huKCk7JGkoKX0pO2Z1bmN0aW9uIFJfcihlLHQpe3ZhciByLGksYSxuPWUsbz1uLmtpbmQscz1uLnZhbHVlLGw9bi5lcnJvcjtpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBub3RpZmljYXRpb24sIG1pc3NpbmcgImtpbmQiJyk7bz09PSJOIj8ocj10Lm5leHQpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5jYWxsKHQscyk6bz09PSJFIj8oaT10LmVycm9yKT09PW51bGx8fGk9PT12b2lkIDB8fGkuY2FsbCh0LGwpOihhPXQuY29tcGxldGUpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKHQpfXZhciBtWixzJGUsbCRlPXAoKCk9PntOUygpO3BaKCk7ZlooKTskaSgpOyhmdW5jdGlvbihlKXtlLk5FWFQ9Ik4iLGUuRVJST1I9IkUiLGUuQ09NUExFVEU9IkMifSkobVp8fChtWj17fSkpO3MkZT0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQscixpKXt0aGlzLmtpbmQ9dCx0aGlzLnZhbHVlPXIsdGhpcy5lcnJvcj1pLHRoaXMuaGFzVmFsdWU9dD09PSJOIn1yZXR1cm4gZS5wcm90b3R5cGUub2JzZXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gUl9yKHRoaXMsdCl9LGUucHJvdG90eXBlLmRvPWZ1bmN0aW9uKHQscixpKXt2YXIgYT10aGlzLG49YS5raW5kLG89YS52YWx1ZSxzPWEuZXJyb3I7cmV0dXJuIG49PT0iTiI/dD8uKG8pOm49PT0iRSI/cj8uKHMpOmk/LigpfSxlLnByb3RvdHlwZS5hY2NlcHQ9ZnVuY3Rpb24odCxyLGkpe3ZhciBhO3JldHVybiBfdCgoYT10KT09PW51bGx8fGE9PT12b2lkIDA/dm9pZCAwOmEubmV4dCk/dGhpcy5vYnNlcnZlKHQpOnRoaXMuZG8odCxyLGkpfSxlLnByb3RvdHlwZS50b09ic2VydmFibGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLHI9dC5raW5kLGk9dC52YWx1ZSxhPXQuZXJyb3Isbj1yPT09Ik4iP2JtKGkpOnI9PT0iRSI/aFooZnVuY3Rpb24oKXtyZXR1cm4gYX0pOnI9PT0iQyI/UFM6MDtpZighbil0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmV4cGVjdGVkIG5vdGlmaWNhdGlvbiBraW5kICIrcik7cmV0dXJuIG59LGUuY3JlYXRlTmV4dD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUoIk4iLHQpfSxlLmNyZWF0ZUVycm9yPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSgiRSIsdm9pZCAwLHQpfSxlLmNyZWF0ZUNvbXBsZXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGUuY29tcGxldGVOb3RpZmljYXRpb259LGUuY29tcGxldGVOb3RpZmljYXRpb249bmV3IGUoIkMiKSxlfSkoKX0pO3ZhciBjJGU9cCgoKT0+e30pO3ZhciBCX3IsZCRlPXAoKCk9PntJMCgpO0Jfcj12bihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtlKHRoaXMpLHRoaXMubmFtZT0iRW1wdHlFcnJvciIsdGhpcy5tZXNzYWdlPSJubyBlbGVtZW50cyBpbiBzZXF1ZW5jZSJ9fSl9KTt2YXIgdSRlPXAoKCk9Pnt9KTt2YXIgcCRlPXAoKCk9Pnt9KTt2YXIgSF9yLGgkZT1wKCgpPT57STAoKTtIX3I9dm4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7ZSh0aGlzKSx0aGlzLm5hbWU9IkFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yIix0aGlzLm1lc3NhZ2U9ImFyZ3VtZW50IG91dCBvZiByYW5nZSJ9fSl9KTt2YXIgcV9yLGYkZT1wKCgpPT57STAoKTtxX3I9dm4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe2UodGhpcyksdGhpcy5uYW1lPSJOb3RGb3VuZEVycm9yIix0aGlzLm1lc3NhZ2U9cn19KX0pO3ZhciBqX3IsbSRlPXAoKCk9PntJMCgpO2pfcj12bihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocil7ZSh0aGlzKSx0aGlzLm5hbWU9IlNlcXVlbmNlRXJyb3IiLHRoaXMubWVzc2FnZT1yfX0pfSk7ZnVuY3Rpb24gWFMoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBEYXRlJiYhaXNOYU4oZSl9dmFyIGdaPXAoKCk9Pnt9KTtmdW5jdGlvbiBiJGUoZSx0KXt2YXIgcj1YUyhlKT97Zmlyc3Q6ZX06dHlwZW9mIGU9PSJudW1iZXIiP3tlYWNoOmV9OmUsaT1yLmZpcnN0LGE9ci5lYWNoLG49ci53aXRoLG89bj09PXZvaWQgMD9WX3I6bixzPXIuc2NoZWR1bGVyLGw9cz09PXZvaWQgMD90Pz9DczpzLGM9ci5tZXRhLHU9Yz09PXZvaWQgMD9udWxsOmM7aWYoaT09bnVsbCYmYT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJObyB0aW1lb3V0IHByb3ZpZGVkLiIpO3JldHVybiBEcihmdW5jdGlvbihkLGgpe3ZhciBmLHgsdj1udWxsLGI9MCx5PWZ1bmN0aW9uKHcpe3g9WmkoaCxsLGZ1bmN0aW9uKCl7dHJ5e2YudW5zdWJzY3JpYmUoKSxEMShvKHttZXRhOnUsbGFzdFZhbHVlOnYsc2VlbjpifSkpLnN1YnNjcmliZShoKX1jYXRjaChrKXtoLmVycm9yKGspfX0sdyl9O2Y9ZC5zdWJzY3JpYmUod3IoaCxmdW5jdGlvbih3KXt4Py51bnN1YnNjcmliZSgpLGIrKyxoLm5leHQodj13KSxhPjAmJnkoYSl9LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt4Py5jbG9zZWR8fHg/LnVuc3Vic2NyaWJlKCksdj1udWxsfSkpLCFiJiZ5KGkhPW51bGw/dHlwZW9mIGk9PSJudW1iZXIiP2k6K2ktbC5ub3coKTphKX0pfWZ1bmN0aW9uIFZfcihlKXt0aHJvdyBuZXcgZyRlKGUpfXZhciBnJGUsUVM9cCgoKT0+e002KCk7Z1ooKTtZaSgpO01vKCk7STAoKTtXYSgpO2s2KCk7ZyRlPXZuKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihyKXtyPT09dm9pZCAwJiYocj1udWxsKSxlKHRoaXMpLHRoaXMubWVzc2FnZT0iVGltZW91dCBoYXMgb2NjdXJyZWQiLHRoaXMubmFtZT0iVGltZW91dEVycm9yIix0aGlzLmluZm89cn19KX0pO2Z1bmN0aW9uIE4wKGUsdCl7cmV0dXJuIERyKGZ1bmN0aW9uKHIsaSl7dmFyIGE9MDtyLnN1YnNjcmliZSh3cihpLGZ1bmN0aW9uKG4pe2kubmV4dChlLmNhbGwodCxuLGErKykpfSkpfSl9dmFyIHZtPXAoKCk9PntZaSgpO1dhKCl9KTtmdW5jdGlvbiBXX3IoZSx0KXtyZXR1cm4gVV9yKHQpP2UuYXBwbHkodm9pZCAwLEdpKFtdLHRpKHQpKSk6ZSh0KX1mdW5jdGlvbiB2JGUoZSl7cmV0dXJuIE4wKGZ1bmN0aW9uKHQpe3JldHVybiBXX3IoZSx0KX0pfXZhciBVX3IseCRlPXAoKCk9PntxcigpO3ZtKCk7VV9yPUFycmF5LmlzQXJyYXl9KTt2YXIgeSRlPXAoKCk9Pnt9KTt2YXIgdyRlPXAoKCk9Pnt9KTt2YXIgTSRlPXAoKCk9Pnt9KTtmdW5jdGlvbiBrJGUoZSx0LHIsaSxhLG4sbyxzKXt2YXIgbD1bXSxjPTAsdT0wLGQ9ITEsaD1mdW5jdGlvbigpe2QmJiFsLmxlbmd0aCYmIWMmJnQuY29tcGxldGUoKX0sZj1mdW5jdGlvbih2KXtyZXR1cm4gYzxpP3godik6bC5wdXNoKHYpfSx4PWZ1bmN0aW9uKHYpe24mJnQubmV4dCh2KSxjKys7dmFyIGI9ITE7RDEocih2LHUrKykpLnN1YnNjcmliZSh3cih0LGZ1bmN0aW9uKHkpe2E/Lih5KSxuP2YoeSk6dC5uZXh0KHkpfSxmdW5jdGlvbigpe2I9ITB9LHZvaWQgMCxmdW5jdGlvbigpe2lmKGIpdHJ5e2MtLTtmb3IodmFyIHk9ZnVuY3Rpb24oKXt2YXIgdz1sLnNoaWZ0KCk7bz9aaSh0LG8sZnVuY3Rpb24oKXtyZXR1cm4geCh3KX0pOngodyl9O2wubGVuZ3RoJiZjPGk7KXkoKTtoKCl9Y2F0Y2godyl7dC5lcnJvcih3KX19KSl9O3JldHVybiBlLnN1YnNjcmliZSh3cih0LGYsZnVuY3Rpb24oKXtkPSEwLGgoKX0pKSxmdW5jdGlvbigpe3M/LigpfX12YXIgUyRlPXAoKCk9PntNbygpO2s2KCk7V2EoKX0pO2Z1bmN0aW9uIHo2KGUsdCxyKXtyZXR1cm4gcj09PXZvaWQgMCYmKHI9MS8wKSxfdCh0KT96NihmdW5jdGlvbihpLGEpe3JldHVybiBOMChmdW5jdGlvbihuLG8pe3JldHVybiB0KGksbixhLG8pfSkoRDEoZShpLGEpKSl9LHIpOih0eXBlb2YgdD09Im51bWJlciImJihyPXQpLERyKGZ1bmN0aW9uKGksYSl7cmV0dXJuIGskZShpLGEsZSxyKX0pKX12YXIgeG09cCgoKT0+e3ZtKCk7TW8oKTtZaSgpO1MkZSgpOyRpKCl9KTtmdW5jdGlvbiBKUyhlKXtyZXR1cm4gZT09PXZvaWQgMCYmKGU9MS8wKSx6NihsbSxlKX12YXIgS1M9cCgoKT0+e3htKCk7QVMoKX0pO2Z1bmN0aW9uIGV6KCl7cmV0dXJuIEpTKDEpfXZhciB0ej1wKCgpPT57S1MoKX0pO2Z1bmN0aW9uIHJ6KCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBleigpKFM2KGUsUDAoZSkpKX12YXIgYlo9cCgoKT0+e3R6KCk7Zm0oKTtaUygpfSk7dmFyIHokZT1wKCgpPT57fSk7dmFyIEMkZT1wKCgpPT57fSk7dmFyIFQkZT1wKCgpPT57fSk7ZnVuY3Rpb24gQzYoZSx0LHIsaSl7aWYoX3QocikmJihpPXIscj12b2lkIDApLGkpcmV0dXJuIEM2KGUsdCxyKS5waXBlKHYkZShpKSk7dmFyIGE9dGkoSl9yKGUpP1lfci5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKGwpe3JldHVybiBlW3NdKHQsbCxyKX19KTpYX3IoZSk/R19yLm1hcChfJGUoZSx0KSk6UV9yKGUpP1pfci5tYXAoXyRlKGUsdCkpOltdLDIpLG49YVswXSxvPWFbMV07aWYoIW4mJnQ4KGUpKXJldHVybiB6NihmdW5jdGlvbihzKXtyZXR1cm4gQzYocyx0LHIpfSkoRDEoZSkpO2lmKCFuKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBxdChmdW5jdGlvbihzKXt2YXIgbD1mdW5jdGlvbigpe2Zvcih2YXIgYz1bXSx1PTA7dTxhcmd1bWVudHMubGVuZ3RoO3UrKyljW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gcy5uZXh0KDE8Yy5sZW5ndGg/YzpjWzBdKX07cmV0dXJuIG4obCksZnVuY3Rpb24oKXtyZXR1cm4gbyhsKX19KX1mdW5jdGlvbiBfJGUoZSx0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBlW3JdKHQsaSl9fX1mdW5jdGlvbiBYX3IoZSl7cmV0dXJuIF90KGUuYWRkTGlzdGVuZXIpJiZfdChlLnJlbW92ZUxpc3RlbmVyKX1mdW5jdGlvbiBRX3IoZSl7cmV0dXJuIF90KGUub24pJiZfdChlLm9mZil9ZnVuY3Rpb24gSl9yKGUpe3JldHVybiBfdChlLmFkZEV2ZW50TGlzdGVuZXIpJiZfdChlLnJlbW92ZUV2ZW50TGlzdGVuZXIpfXZhciBHX3IsWV9yLFpfcixMJGU9cCgoKT0+e3FyKCk7TW8oKTt4bigpO3htKCk7T1MoKTskaSgpO3gkZSgpO0dfcj1bImFkZExpc3RlbmVyIiwicmVtb3ZlTGlzdGVuZXIiXSxZX3I9WyJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLFpfcj1bIm9uIiwib2ZmIl19KTt2YXIgQSRlPXAoKCk9Pnt9KTt2YXIgRCRlPXAoKCk9Pnt9KTt2YXIgRSRlPXAoKCk9Pnt9KTtmdW5jdGlvbiB2WihlLHQscil7ZT09PXZvaWQgMCYmKGU9MCkscj09PXZvaWQgMCYmKHI9WlkpO3ZhciBpPS0xO3JldHVybiB0IT1udWxsJiYoRlModCk/cj10Omk9dCksbmV3IHF0KGZ1bmN0aW9uKGEpe3ZhciBuPVhTKGUpPytlLXIubm93KCk6ZTtuPDAmJihuPTApO3ZhciBvPTA7cmV0dXJuIHIuc2NoZWR1bGUoZnVuY3Rpb24oKXthLmNsb3NlZHx8KGEubmV4dChvKyspLDA8PWk/dGhpcy5zY2hlZHVsZSh2b2lkIDAsaSk6YS5jb21wbGV0ZSgpKX0sbil9KX12YXIgeFo9cCgoKT0+e3huKCk7TTYoKTt0WigpO2daKCl9KTt2YXIgJCRlPXAoKCk9Pnt9KTt2YXIgSSRlPXAoKCk9Pnt9KTtmdW5jdGlvbiBLX3IoKXtyZXR1cm4gUCRlfXZhciBQJGUseVo9cCgoKT0+e3huKCk7djYoKTtQJGU9bmV3IHF0KHdvKX0pO3ZhciBOJGU9cCgoKT0+e30pO3ZhciBGJGU9cCgoKT0+e30pO2Z1bmN0aW9uIGl6KGUsdCl7cmV0dXJuIERyKGZ1bmN0aW9uKHIsaSl7dmFyIGE9MDtyLnN1YnNjcmliZSh3cihpLGZ1bmN0aW9uKG4pe3JldHVybiBlLmNhbGwodCxuLGErKykmJmkubmV4dChuKX0pKX0pfXZhciB3Wj1wKCgpPT57WWkoKTtXYSgpfSk7dmFyIE8kZT1wKCgpPT57fSk7dmFyIFIkZT1wKCgpPT57fSk7dmFyIEIkZT1wKCgpPT57fSk7dmFyIEgkZT1wKCgpPT57fSk7dmFyIHEkZT1wKCgpPT57fSk7dmFyIGokZT1wKCgpPT57fSk7dmFyIE1aPXAoKCk9Pnt9KTt2YXIga1o9cCgoKT0+e30pO2Z1bmN0aW9uIGF6KGUpe3JldHVybiBEcihmdW5jdGlvbih0LHIpe3ZhciBpPVtdO3JldHVybiB0LnN1YnNjcmliZSh3cihyLGZ1bmN0aW9uKGEpe3JldHVybiBpLnB1c2goYSl9LGZ1bmN0aW9uKCl7ci5uZXh0KGkpLHIuY29tcGxldGUoKX0pKSxEMShlKS5zdWJzY3JpYmUod3IocixmdW5jdGlvbigpe3ZhciBhPWk7aT1bXSxyLm5leHQoYSl9LHdvKSksZnVuY3Rpb24oKXtpPW51bGx9fSl9dmFyIFNaPXAoKCk9PntZaSgpO3Y2KCk7V2EoKTtNbygpfSk7ZnVuY3Rpb24gbnooZSx0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9bnVsbCksdD10Pz9lLERyKGZ1bmN0aW9uKHIsaSl7dmFyIGE9W10sbj0wO3Iuc3Vic2NyaWJlKHdyKGksZnVuY3Rpb24obyl7dmFyIHMsbCxjLHUsZD1udWxsO24rKyV0PT09MCYmYS5wdXNoKFtdKTt0cnl7Zm9yKHZhciBoPXlhKGEpLGY9aC5uZXh0KCk7IWYuZG9uZTtmPWgubmV4dCgpKXt2YXIgeD1mLnZhbHVlO3gucHVzaChvKSxlPD14Lmxlbmd0aCYmKGQ9ZD8/W10sZC5wdXNoKHgpKX19Y2F0Y2goeSl7cz17ZXJyb3I6eX19ZmluYWxseXt0cnl7ZiYmIWYuZG9uZSYmKGw9aC5yZXR1cm4pJiZsLmNhbGwoaCl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fWlmKGQpdHJ5e2Zvcih2YXIgdj15YShkKSxiPXYubmV4dCgpOyFiLmRvbmU7Yj12Lm5leHQoKSl7dmFyIHg9Yi52YWx1ZTtkMihhLHgpLGkubmV4dCh4KX19Y2F0Y2goeSl7Yz17ZXJyb3I6eX19ZmluYWxseXt0cnl7YiYmIWIuZG9uZSYmKHU9di5yZXR1cm4pJiZ1LmNhbGwodil9ZmluYWxseXtpZihjKXRocm93IGMuZXJyb3J9fX0sZnVuY3Rpb24oKXt2YXIgbyxzO3RyeXtmb3IodmFyIGw9eWEoYSksYz1sLm5leHQoKTshYy5kb25lO2M9bC5uZXh0KCkpe3ZhciB1PWMudmFsdWU7aS5uZXh0KHUpfX1jYXRjaChkKXtvPXtlcnJvcjpkfX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYocz1sLnJldHVybikmJnMuY2FsbChsKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19aS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXthPW51bGx9KSl9KX12YXIgelo9cCgoKT0+e3FyKCk7WWkoKTtXYSgpO1p1KCl9KTtmdW5jdGlvbiBveihlKXtmb3IodmFyIHQscixpPVtdLGE9MTthPGFyZ3VtZW50cy5sZW5ndGg7YSsrKWlbYS0xXT1hcmd1bWVudHNbYV07dmFyIG49KHQ9UDAoaSkpIT09bnVsbCYmdCE9PXZvaWQgMD90OkNzLG89KHI9aVswXSkhPT1udWxsJiZyIT09dm9pZCAwP3I6bnVsbCxzPWlbMV18fDEvMDtyZXR1cm4gRHIoZnVuY3Rpb24obCxjKXt2YXIgdT1bXSxkPSExLGg9ZnVuY3Rpb24odil7dmFyIGI9di5idWZmZXIseT12LnN1YnM7eS51bnN1YnNjcmliZSgpLGQyKHUsdiksYy5uZXh0KGIpLGQmJmYoKX0sZj1mdW5jdGlvbigpe2lmKHUpe3ZhciB2PW5ldyBxMTtjLmFkZCh2KTt2YXIgYj1bXSx5PXtidWZmZXI6YixzdWJzOnZ9O3UucHVzaCh5KSxaaSh2LG4sZnVuY3Rpb24oKXtyZXR1cm4gaCh5KX0sZSl9fTtvIT09bnVsbCYmbz49MD9aaShjLG4sZixvLCEwKTpkPSEwLGYoKTt2YXIgeD13cihjLGZ1bmN0aW9uKHYpe3ZhciBiLHksdz11LnNsaWNlKCk7dHJ5e2Zvcih2YXIgaz15YSh3KSxPPWsubmV4dCgpOyFPLmRvbmU7Tz1rLm5leHQoKSl7dmFyIHo9Ty52YWx1ZSxNPXouYnVmZmVyO00ucHVzaCh2KSxzPD1NLmxlbmd0aCYmaCh6KX19Y2F0Y2goRil7Yj17ZXJyb3I6Rn19ZmluYWxseXt0cnl7TyYmIU8uZG9uZSYmKHk9ay5yZXR1cm4pJiZ5LmNhbGwoayl9ZmluYWxseXtpZihiKXRocm93IGIuZXJyb3J9fX0sZnVuY3Rpb24oKXtmb3IoO3U/Lmxlbmd0aDspYy5uZXh0KHUuc2hpZnQoKS5idWZmZXIpO3g/LnVuc3Vic2NyaWJlKCksYy5jb21wbGV0ZSgpLGMudW5zdWJzY3JpYmUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIHU9bnVsbH0pO2wuc3Vic2NyaWJlKHgpfSl9dmFyIENaPXAoKCk9PntxcigpO3pzKCk7WWkoKTtXYSgpO1p1KCk7TTYoKTtmbSgpO2s2KCl9KTt2YXIgVFo9cCgoKT0+e30pO3ZhciBfWj1wKCgpPT57fSk7dmFyIExaPXAoKCk9Pnt9KTt2YXIgQVo9cCgoKT0+e30pO3ZhciBEWj1wKCgpPT57fSk7dmFyIEVaPXAoKCk9Pnt9KTt2YXIgJFo9cCgoKT0+e30pO3ZhciBWJGU9cCgoKT0+e30pO3ZhciBJWj1wKCgpPT57fSk7dmFyIFBaPXAoKCk9Pnt9KTt2YXIgTlo9cCgoKT0+e30pO3ZhciBVJGU9cCgoKT0+e30pO3ZhciBGWj1wKCgpPT57fSk7dmFyIE9aPXAoKCk9Pnt9KTt2YXIgUlo9cCgoKT0+e30pO2Z1bmN0aW9uIHN6KGUpe3JldHVybiBEcihmdW5jdGlvbih0LHIpe3ZhciBpPSExLGE9bnVsbCxuPW51bGwsbz1mdW5jdGlvbigpe2lmKG4/LnVuc3Vic2NyaWJlKCksbj1udWxsLGkpe2k9ITE7dmFyIHM9YTthPW51bGwsci5uZXh0KHMpfX07dC5zdWJzY3JpYmUod3IocixmdW5jdGlvbihzKXtuPy51bnN1YnNjcmliZSgpLGk9ITAsYT1zLG49d3IocixvLHdvKSxEMShlKHMpKS5zdWJzY3JpYmUobil9LGZ1bmN0aW9uKCl7bygpLHIuY29tcGxldGUoKX0sdm9pZCAwLGZ1bmN0aW9uKCl7YT1uPW51bGx9KSl9KX12YXIgQlo9cCgoKT0+e1lpKCk7djYoKTtXYSgpO01vKCl9KTtmdW5jdGlvbiBseihlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD1DcyksRHIoZnVuY3Rpb24ocixpKXt2YXIgYT1udWxsLG49bnVsbCxvPW51bGwscz1mdW5jdGlvbigpe2lmKGEpe2EudW5zdWJzY3JpYmUoKSxhPW51bGw7dmFyIGM9bjtuPW51bGwsaS5uZXh0KGMpfX07ZnVuY3Rpb24gbCgpe3ZhciBjPW8rZSx1PXQubm93KCk7aWYodTxjKXthPXRoaXMuc2NoZWR1bGUodm9pZCAwLGMtdSksaS5hZGQoYSk7cmV0dXJufXMoKX1yLnN1YnNjcmliZSh3cihpLGZ1bmN0aW9uKGMpe249YyxvPXQubm93KCksYXx8KGE9dC5zY2hlZHVsZShsLGUpLGkuYWRkKGEpKX0sZnVuY3Rpb24oKXtzKCksaS5jb21wbGV0ZSgpfSx2b2lkIDAsZnVuY3Rpb24oKXtuPWE9bnVsbH0pKX0pfXZhciBIWj1wKCgpPT57TTYoKTtZaSgpO1dhKCl9KTt2YXIgcVo9cCgoKT0+e30pO3ZhciBqWj1wKCgpPT57fSk7dmFyIFZaPXAoKCk9Pnt9KTt2YXIgVVo9cCgoKT0+e30pO3ZhciBXWj1wKCgpPT57fSk7dmFyIEdaPXAoKCk9Pnt9KTt2YXIgWVo9cCgoKT0+e30pO3ZhciBaWj1wKCgpPT57fSk7dmFyIFhaPXAoKCk9Pnt9KTt2YXIgUVo9cCgoKT0+e30pO3ZhciBKWj1wKCgpPT57fSk7dmFyIEtaPXAoKCk9Pnt9KTt2YXIgZVg9cCgoKT0+e30pO3ZhciB0WD1wKCgpPT57fSk7dmFyIHJYPXAoKCk9Pnt9KTt2YXIgaVg9cCgoKT0+e30pO3ZhciBhWD1wKCgpPT57fSk7dmFyIG5YPXAoKCk9Pnt9KTt2YXIgb1g9cCgoKT0+e30pO3ZhciBzWD1wKCgpPT57fSk7dmFyIGxYPXAoKCk9Pnt9KTt2YXIgY1g9cCgoKT0+e30pO3ZhciBkWD1wKCgpPT57fSk7dmFyIHVYPXAoKCk9Pnt9KTt2YXIgcFg9cCgoKT0+e30pO3ZhciBoWD1wKCgpPT57fSk7dmFyIGZYPXAoKCk9Pnt9KTt2YXIgbVg9cCgoKT0+e30pO3ZhciBnWD1wKCgpPT57fSk7dmFyIGJYPXAoKCk9Pnt9KTt2YXIgdlg9cCgoKT0+e30pO3ZhciBXJGU9cCgoKT0+e30pO3ZhciB4WD1wKCgpPT57fSk7dmFyIHlYPXAoKCk9Pnt9KTt2YXIgd1g9cCgoKT0+e30pO3ZhciBNWD1wKCgpPT57fSk7dmFyIGtYPXAoKCk9Pnt9KTt2YXIgU1g9cCgoKT0+e30pO3ZhciB6WD1wKCgpPT57fSk7dmFyIENYPXAoKCk9Pnt9KTt2YXIgVFg9cCgoKT0+e30pO3ZhciBfWD1wKCgpPT57fSk7dmFyIExYPXAoKCk9Pnt9KTt2YXIgQVg9cCgoKT0+e30pO3ZhciBEWD1wKCgpPT57fSk7dmFyIEVYPXAoKCk9Pnt9KTt2YXIgJFg9cCgoKT0+e30pO3ZhciBJWD1wKCgpPT57fSk7dmFyIFBYPXAoKCk9Pnt9KTt2YXIgTlg9cCgoKT0+e30pO3ZhciBGWD1wKCgpPT57fSk7dmFyIE9YPXAoKCk9Pnt9KTt2YXIgUlg9cCgoKT0+e30pO3ZhciBCWD1wKCgpPT57fSk7dmFyIEhYPXAoKCk9Pnt9KTt2YXIgcVg9cCgoKT0+e30pO3ZhciBqWD1wKCgpPT57fSk7dmFyIFZYPXAoKCk9Pnt9KTtmdW5jdGlvbiBjeigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt2YXIgcj1QMChlKTtyZXR1cm4gRHIoZnVuY3Rpb24oaSxhKXsocj9yeihlLGkscik6cnooZSxpKSkuc3Vic2NyaWJlKGEpfSl9dmFyIFVYPXAoKCk9PntiWigpO2ZtKCk7WWkoKX0pO3ZhciBXWD1wKCgpPT57fSk7dmFyIEdYPXAoKCk9Pnt9KTt2YXIgWVg9cCgoKT0+e30pO3ZhciBaWD1wKCgpPT57fSk7ZnVuY3Rpb24gZHooZSl7cmV0dXJuIERyKGZ1bmN0aW9uKHQscil7RDEoZSkuc3Vic2NyaWJlKHdyKHIsZnVuY3Rpb24oKXtyZXR1cm4gci5jb21wbGV0ZSgpfSx3bykpLCFyLmNsb3NlZCYmdC5zdWJzY3JpYmUocil9KX12YXIgWFg9cCgoKT0+e1lpKCk7V2EoKTtNbygpO3Y2KCl9KTt2YXIgUVg9cCgoKT0+e30pO3ZhciBKWD1wKCgpPT57fSk7ZnVuY3Rpb24gdXooZSx0KXtyZXR1cm4gRHIoZnVuY3Rpb24ocixpKXt2YXIgYT10Pz97fSxuPWEubGVhZGluZyxvPW49PT12b2lkIDA/ITA6bixzPWEudHJhaWxpbmcsbD1zPT09dm9pZCAwPyExOnMsYz0hMSx1PW51bGwsZD1udWxsLGg9ITEsZj1mdW5jdGlvbigpe2Q/LnVuc3Vic2NyaWJlKCksZD1udWxsLGwmJihiKCksaCYmaS5jb21wbGV0ZSgpKX0seD1mdW5jdGlvbigpe2Q9bnVsbCxoJiZpLmNvbXBsZXRlKCl9LHY9ZnVuY3Rpb24oeSl7cmV0dXJuIGQ9RDEoZSh5KSkuc3Vic2NyaWJlKHdyKGksZix4KSl9LGI9ZnVuY3Rpb24oKXtpZihjKXtjPSExO3ZhciB5PXU7dT1udWxsLGkubmV4dCh5KSwhaCYmdih5KX19O3Iuc3Vic2NyaWJlKHdyKGksZnVuY3Rpb24oeSl7Yz0hMCx1PXksIShkJiYhZC5jbG9zZWQpJiYobz9iKCk6dih5KSl9LGZ1bmN0aW9uKCl7aD0hMCwhKGwmJmMmJmQmJiFkLmNsb3NlZCkmJmkuY29tcGxldGUoKX0pKX0pfXZhciBwej1wKCgpPT57WWkoKTtXYSgpO01vKCl9KTtmdW5jdGlvbiBoeihlLHQscil7dD09PXZvaWQgMCYmKHQ9Q3MpO3ZhciBpPXZaKGUsdCk7cmV0dXJuIHV6KGZ1bmN0aW9uKCl7cmV0dXJuIGl9LHIpfXZhciBLWD1wKCgpPT57TTYoKTtweigpO3haKCl9KTt2YXIgZVE9cCgoKT0+e30pO3ZhciB0UT1wKCgpPT57fSk7dmFyIHJRPXAoKCk9Pnt9KTt2YXIgaVE9cCgoKT0+e30pO3ZhciBhUT1wKCgpPT57fSk7dmFyIG5RPXAoKCk9Pnt9KTt2YXIgb1E9cCgoKT0+e30pO3ZhciBzUT1wKCgpPT57fSk7dmFyIGxRPXAoKCk9Pnt9KTt2YXIgY1E9cCgoKT0+e30pO3ZhciBHJGU9cCgoKT0+e30pO3ZhciBkUT1wKCgpPT57fSk7dmFyIHVRPXAoKCk9Pnt4bigpO01FZSgpO3NtKCk7ekVlKCk7Y20oKTtURWUoKTtfRWUoKTtBRWUoKTtSRWUoKTtNNigpO2pFZSgpO0dFZSgpO1pFZSgpO0dZKCk7enMoKTtMUygpO2wkZSgpO1BZKCk7djYoKTtBUygpO2MkZSgpO3UkZSgpO3AkZSgpO2gkZSgpO2QkZSgpO2YkZSgpO0JZKCk7bSRlKCk7UVMoKTtUWSgpO3kkZSgpO3ckZSgpO00kZSgpO2JaKCk7QyRlKCk7eiRlKCk7TlMoKTtUJGUoKTtaUygpO0wkZSgpO0EkZSgpO0QkZSgpO0UkZSgpOyQkZSgpO0kkZSgpO3laKCk7cFooKTtOJGUoKTtGJGUoKTtPJGUoKTtSJGUoKTtCJGUoKTtmWigpO3haKCk7SCRlKCk7cSRlKCk7dVooKTtOUygpO3laKCk7aiRlKCk7WHUoKTtNWigpO2taKCk7U1ooKTt6WigpO0NaKCk7VFooKTtfWigpO0xaKCk7JFooKTtFWigpO0laKCk7dHooKTtQWigpO05aKCk7RlooKTtPWigpO1JaKCk7QlooKTtIWigpO3FaKCk7R1ooKTtXWigpO1laKCk7WlooKTtYWigpO1FaKCk7S1ooKTtlWCgpO3RYKCk7YVgoKTtpWCgpO3JYKCk7blgoKTt3WigpO29YKCk7c1goKTtsWCgpO2NYKCk7ZFgoKTtWWigpO3VYKCk7aFgoKTt2bSgpO1VaKCk7ZlgoKTttWCgpO0tTKCk7Z1goKTt4bSgpO2JYKCk7dlgoKTt4WCgpO3lYKCk7d1goKTttbSgpO01YKCk7a1goKTtTWCgpO3pYKCk7Q1goKTtUWCgpO19YKCk7TFgoKTtBWigpO0FYKCk7RFgoKTtFWCgpOyRYKCk7RVMoKTtJWCgpO1BYKCk7TlgoKTtGWCgpO09YKCk7UlgoKTtCWCgpO0hYKCk7cVgoKTtqWCgpO1ZYKCk7VVgoKTtnbSgpO0dYKCk7V1goKTtZWCgpO1pYKCk7alooKTtwWCgpO1hYKCk7UVgoKTtKWCgpO3B6KCk7S1goKTtKWigpO2VRKCk7UVMoKTt0USgpO3JRKCk7RFooKTtpUSgpO2FRKCk7blEoKTtvUSgpO3NRKCk7bFEoKTtjUSgpO2RRKCl9KTt2YXIgWSRlPXAoKCk9Pnt9KTt2YXIgWiRlPXAoKCk9Pnt9KTt2YXIgWCRlPXAoKCk9PntNWigpO2taKCk7U1ooKTt6WigpO0NaKCk7VFooKTtfWigpO0xaKCk7JFooKTtFWigpO1YkZSgpO0laKCk7VSRlKCk7dHooKTtQWigpO05aKCk7RlooKTtPWigpO1JaKCk7QlooKTtIWigpO3FaKCk7R1ooKTtXWigpO1laKCk7WlooKTtYWigpO1FaKCk7S1ooKTtlWCgpO3RYKCk7YVgoKTtpWCgpO3JYKCk7blgoKTt3WigpO29YKCk7c1goKTtsWCgpO2NYKCk7ZFgoKTtWWigpO3VYKCk7aFgoKTt2bSgpO1VaKCk7ZlgoKTttWCgpO1ckZSgpO0tTKCk7Z1goKTt4bSgpO2JYKCk7dlgoKTt4WCgpO3lYKCk7d1goKTttbSgpO01YKCk7a1goKTtZJGUoKTtTWCgpO3pYKCk7Q1goKTtUWCgpO19YKCk7WiRlKCk7TFgoKTtBWigpO0FYKCk7RFgoKTtFWCgpOyRYKCk7RVMoKTtJWCgpO1BYKCk7TlgoKTtGWCgpO09YKCk7UlgoKTtCWCgpO0hYKCk7cVgoKTtqWCgpO1ZYKCk7VVgoKTtnbSgpO0dYKCk7V1goKTtZWCgpO1pYKCk7alooKTtwWCgpO1hYKCk7UVgoKTtKWCgpO3B6KCk7S1goKTtKWigpO2VRKCk7UVMoKTt0USgpO3JRKCk7RFooKTtpUSgpO2FRKCk7blEoKTtvUSgpO3NRKCk7bFEoKTtHJGUoKTtjUSgpO2RRKCl9KTt2YXIgYTg9e307RmUoYTgse09ic2VydmFibGU6KCk9PnF0LFJlcGxheVN1YmplY3Q6KCk9PiRTLFN1YmplY3Q6KCk9PnluLFN1YnNjcmlwdGlvbjooKT0+cTEsZnJvbTooKT0+UzYsZnJvbUV2ZW50OigpPT5DNixvZjooKT0+Ym0sb3BzOigpPT5JQXJ9KTt2YXIgSUFyLGZ6PXAoKCk9Pnt1USgpO1gkZSgpO0lBcj17YnVmZmVyOmF6LGJ1ZmZlckNvdW50Om56LGJ1ZmZlclRpbWU6b3osZGVib3VuY2U6c3osZGVib3VuY2VUaW1lOmx6LGZpbHRlcjppeixtYXA6TjAsc3RhcnRXaXRoOmN6LHRha2VVbnRpbDpkeix0aHJvdHRsZVRpbWU6aHp9fSk7dmFyIHBRLFEkZT1wKCgpPT57U1MoKTtmeigpO3BRPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXk9bmV3IEFycmF5LHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXk9bmV3IEFycmF5fWdldFN1YmplY3RGb3JFbWl0dGVyRXZlbnQodCxyKXtsZXQgaT10aGlzLm9ic2VydmFibGVFdmVudEVtaXR0ZXJCdW5kbGVBcnJheS5maW5kKGE9PmEuZXZlbnRSZWY9PT10JiZhLmV2ZW50PT09cik7aWYoaSlyZXR1cm4gaS5zdWJqZWN0O3tsZXQgYT1DNih0LHIpLG49bmV3IHluO2Euc3Vic2NyaWJlKG4pO2xldCBvPXtzdWJqZWN0Om4sZXZlbnRSZWY6dCxldmVudDpyfTtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlRXZlbnRFbWl0dGVyQnVuZGxlQXJyYXkucHVzaChvKSxvLnN1YmplY3R9fWdldFN1YmplY3RGb3JFdmVudFRhcmdldCh0LHIpe2xldCBpPXRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkuZmluZChhPT5hLmV2ZW50UmVmPT09dCYmYS5ldmVudD09PXIpO2lmKGkpcmV0dXJuIGkuc3ViamVjdDt7bGV0IG49e3N1YmplY3Q6bmV3IHluLGV2ZW50UmVmOnQsZXZlbnQ6cn07cmV0dXJuIHRoaXMub2JzZXJ2YWJsZUV2ZW50VGFyZ2V0QnVuZGxlQXJyYXkucHVzaChuKSxuLnN1YmplY3R9fX19KTt2YXIgaFEsSiRlPXAoKCk9PntTUygpO2Z6KCk7aFE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm9ic2VydmFibGVGdW5jdGlvbnM9e25leHQ6dD0+e30sY29tcGxldGU6dD0+e319LHRoaXMuZ2VuZXJhdG9yPW51bGwsdGhpcy5idWZmZXJlZD0hMSx0aGlzLnBheWxvYWRCdWZmZXI9W10sdGhpcy5vYnNlcnZhYmxlPW5ldyBxdCh0PT57dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLm5leHQ9KC4uLnIpPT50Lm5leHQociksdGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlPSgpPT4odGhpcy5jb21wbGV0ZWREZWZmZXJlZC5yZXNvbHZlKCksdC5jb21wbGV0ZSgpKX0pLHRoaXMuY29tcGxldGVkRGVmZmVyZWQ9WGUuZGVmZXIoKSx0aGlzLmNvbXBsZXRlZD10aGlzLmNvbXBsZXRlZERlZmZlcmVkLnByb21pc2V9c2V0T2JzZXJ2YWJsZSh0KXt0aGlzLm9ic2VydmFibGU9dH1wdXNoKHQpe3RoaXMuYnVmZmVyZWQ/dGhpcy5wYXlsb2FkQnVmZmVyLnB1c2godCk6dGhpcy5pbnRlcm5hbFB1c2godCl9cHVzaE1hbnkodCl7Zm9yKGxldCByIG9mIHQpdGhpcy5wdXNoKHIpfXNldEdlbmVyYXRvcih0KXt0aGlzLmdlbmVyYXRvcj10fW1ha2VCdWZmZXJlZCgpe3RoaXMuYnVmZmVyZWQ9ITB9c3Vic2NyaWJlKC4uLnQpe3JldHVybiB0aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKC4uLnQpfXJlcXVlc3QodCl7aWYodCE9PTApZm9yKGxldCByPTA7ciE9PXQ7cisrKWlmKHRoaXMucGF5bG9hZEJ1ZmZlci5sZW5ndGg+MCl0aGlzLmludGVybmFsUHVzaCh0aGlzLnBheWxvYWRCdWZmZXIuc2hpZnQoKSk7ZWxzZXtsZXQgaT10aGlzLmdlbmVyYXRvci5uZXh0KCk7dGhpcy5pbnRlcm5hbFB1c2goaS52YWx1ZSl9fXNpZ25hbENvbXBsZXRlKCl7dGhpcy5vYnNlcnZhYmxlRnVuY3Rpb25zLmNvbXBsZXRlKCl9aW50ZXJuYWxQdXNoKHQpe3RoaXMub2JzZXJ2YWJsZUZ1bmN0aW9ucy5uZXh0KHQpfX19KTtmdW5jdGlvbiBQQXIoZSl7cmV0dXJuIG5ldyBxdCh0PT57bGV0IHI9KCk9PmUucGF1c2UoKSxpPSgpPT5wcm9jZXNzLm5leHRUaWNrKCgpPT5lLnJlc3VtZSgpKSxhPW49PntyKCksdC5uZXh0KG4pLGkoKX07cmV0dXJuIGUub24oImRhdGEiLGEpLGUub24oImVycm9yIixuPT50LmVycm9yKG4pKSxlLm9uKCJlbmQiLCgpPT50LmNvbXBsZXRlKCkpLGUub24oImNsb3NlIiwoKT0+dC5jb21wbGV0ZSgpKSwoKT0+e2UucmVtb3ZlTGlzdGVuZXIoImRhdGEiLGEpLGUucmVtb3ZlTGlzdGVuZXIoImVycm9yIix0LmVycm9yKSxlLnJlbW92ZUxpc3RlbmVyKCJlbmQiLHQuY29tcGxldGUpLGUucmVtb3ZlTGlzdGVuZXIoImNsb3NlIix0LmNvbXBsZXRlKX19KX12YXIgSyRlPXAoKCk9Pnt1USgpfSk7dmFyIG5yPXt9O0ZlKG5yLHtPYnNlcnZhYmxlSW50YWtlOigpPT5oUSxPYnNlcnZhYmxlbWFwOigpPT5wUSxmcm9tU3RyZWFtV2l0aEJhY2twcmVzc3VyZTooKT0+UEFyLHJ4anM6KCk9PmE4fSk7dmFyIGgyPXAoKCk9PntTUygpO1EkZSgpO0okZSgpO0skZSgpO2Z6KCl9KTtmdW5jdGlvbiBqKGUpe3JldHVybih0LHIpPT50eXBlb2Ygcj09Im9iamVjdCI/ZUllKGUsdCxyKTooKGksYSxuKT0+e2xldCBvPWEuaGFzT3duUHJvcGVydHkobik7cmV0dXJuIGEuY29uc3RydWN0b3IuY3JlYXRlUHJvcGVydHkobixpKSxvP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxuKTp2b2lkIDB9KShlLHQscil9dmFyIE5BcixlSWUsbXo9cCgoKT0+e0s3KCk7TkFyPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOkd1LHJlZmxlY3Q6ITEsaGFzQ2hhbmdlZDpKN30sZUllPShlPU5Bcix0LHIpPT57bGV0e2tpbmQ6aSxtZXRhZGF0YTphfT1yLG49Z2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChhKTtpZihuPT09dm9pZCAwJiZnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuc2V0KGEsbj1uZXcgTWFwKSxpPT09InNldHRlciImJigoZT1PYmplY3QuY3JlYXRlKGUpKS53cmFwcGVkPSEwKSxuLnNldChyLm5hbWUsZSksaT09PSJhY2Nlc3NvciIpe2xldHtuYW1lOm99PXI7cmV0dXJue3NldChzKXtsZXQgbD10LmdldC5jYWxsKHRoaXMpO3Quc2V0LmNhbGwodGhpcyxzKSx0aGlzLnJlcXVlc3RVcGRhdGUobyxsLGUsITAscyl9LGluaXQocyl7cmV0dXJuIHMhPT12b2lkIDAmJnRoaXMuQyhvLHZvaWQgMCxlLHMpLHN9fX1pZihpPT09InNldHRlciIpe2xldHtuYW1lOm99PXI7cmV0dXJuIGZ1bmN0aW9uKHMpe2xldCBsPXRoaXNbb107dC5jYWxsKHRoaXMscyksdGhpcy5yZXF1ZXN0VXBkYXRlKG8sbCxlLCEwLHMpfX10aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAiK2kpfX0pO3ZhciB0SWU9cCgoKT0+e216KCl9KTt2YXIgckllPXAoKCk9Pnt9KTt2YXIgQ3Q9e307RmUoQ3Qse1RpbWVvdXQ6KCk9Pmd6LGRlbGF5Rm9yOigpPT5pSWUsZGVsYXlGb3JSYW5kb206KCk9PkZBcn0pO3ZhciBpSWUsRkFyLGd6LFRzPXAoKCk9PntFaSgpO2lJZT1hc3luYyhlLHQscj0hMSk9Pihhd2FpdCBuZXcgZ3ooZSxudWxsLHIpLnByb21pc2UsdCksRkFyPWFzeW5jKGUsdCxyLGk9ITEpPT4oYXdhaXQgaUllKE1hdGgucmFuZG9tKCkqKHQtZSkrZSxudWxsLGkpLHIpLGd6PWNsYXNze2NvbnN0cnVjdG9yKHQscixpPSExKXt0aGlzLl9jYW5jZWxsZWQ9ITEsdGhpcy50aW1lb3V0SW5NaWxsaXM9dCx0aGlzLl9kZWZlcnJlZD0kMCgpLHRoaXMucHJvbWlzZT10aGlzLl9kZWZlcnJlZC5wcm9taXNlLHRoaXMuX3RpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbmNlbGxlZHx8dGhpcy5fZGVmZXJyZWQucmVzb2x2ZShyKX0sdCksdGhpcy5zdGFydGVkPURhdGUubm93KCksaSYmdGhpcy5tYWtlVW5yZWZlZCgpfW1ha2VVbnJlZmVkKCl7dGhpcy5fdGltZW91dC51bnJlZigpfWNhbmNlbCgpe3RoaXMuX2NhbmNlbGxlZD0hMCxjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCl9Z2V0VGltZUxlZnQoKXtsZXQgdD10aGlzLnN0YXJ0ZWQrdGhpcy50aW1lb3V0SW5NaWxsaXMtRGF0ZS5ub3coKTtyZXR1cm4gdD4wP3Q6MH19fSk7dmFyIG44PXt9O3ZhciBiej1wKCgpPT57fSk7ZnVuY3Rpb24gVDYoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIGUucmVwbGFjZSgvW3xcXHt9KClbXF1eJCsqPy5dL2csIlxcJCYiKS5yZXBsYWNlKC8tL2csIlxceDJkIil9dmFyIHZ6PXAoKCk9Pnt9KTt2YXIgeW09e307RmUoeW0se2lzTWF0Y2g6KCk9PkJBcixtYXRjaGVyOigpPT5SQXJ9KTtmdW5jdGlvbiBSQXIoZSx0LHIpe3JldHVybiBuSWUoZSx0LHIsITEpfWZ1bmN0aW9uIEJBcihlLHQscil7cmV0dXJuIG5JZShlLHQsciwhMCkubGVuZ3RoPjB9dmFyIGZRLGFJZSxPQXIsbkllLG9JZT1wKCgpPT57dnooKTtmUT1uZXcgTWFwLGFJZT0oZSx0KT0+e2lmKCFBcnJheS5pc0FycmF5KGUpKXN3aXRjaCh0eXBlb2YgZSl7Y2FzZSJzdHJpbmciOmU9W2VdO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjplPVtdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJyR7dH0nIHRvIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5LCBidXQgZ290IGEgdHlwZSBvZiAnJHt0eXBlb2YgZX0nYCl9cmV0dXJuIGUuZmlsdGVyKHI9PntpZih0eXBlb2YgciE9InN0cmluZyIpe2lmKHR5cGVvZiByPiJ1IilyZXR1cm4hMTt0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAnJHt0fScgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncywgYnV0IGZvdW5kIGEgdHlwZSBvZiAnJHt0eXBlb2Ygcn0nIGluIHRoZSBhcnJheWApfXJldHVybiEwfSl9LE9Bcj0oZSx0KT0+e3Q9e2Nhc2VTZW5zaXRpdmU6ITEsLi4udH07bGV0IHI9ZStKU09OLnN0cmluZ2lmeSh0KTtpZihmUS5oYXMocikpcmV0dXJuIGZRLmdldChyKTtsZXQgaT1lWzBdPT09IiEiO2kmJihlPWUuc2xpY2UoMSkpLGU9VDYoZSkucmVwbGFjZSgvXFxcKi9nLCJbXFxzXFxTXSoiKTtsZXQgYT1uZXcgUmVnRXhwKGBeJHtlfSRgLHQuY2FzZVNlbnNpdGl2ZT8iIjoiaSIpO3JldHVybiBhLm5lZ2F0ZWQ9aSxmUS5zZXQocixhKSxhfSxuSWU9KGUsdCxyLGkpPT57aWYoZT1hSWUoZSwiaW5wdXRzIiksdD1hSWUodCwicGF0dGVybnMiKSx0Lmxlbmd0aD09PTApcmV0dXJuW107dD10Lm1hcChvPT5PQXIobyxyKSk7bGV0e2FsbFBhdHRlcm5zOmF9PXJ8fHt9LG49W107Zm9yKGxldCBvIG9mIGUpe2xldCBzLGw9Wy4uLnRdLmZpbGwoITEpO2ZvcihsZXRbYyx1XW9mIHQuZW50cmllcygpKWlmKHUudGVzdChvKSYmKGxbY109ITAscz0hdS5uZWdhdGVkLCFzKSlicmVhaztpZighKHM9PT0hMXx8cz09PXZvaWQgMCYmdC5zb21lKGM9PiFjLm5lZ2F0ZWQpfHxhJiZsLnNvbWUoKGMsdSk9PiFjJiYhdFt1XS5uZWdhdGVkKSkmJihuLnB1c2gobyksaSkpYnJlYWt9cmV0dXJuIG59fSk7dmFyIHNJZT1wKCgpPT57b0llKCl9KTt2YXIgcWw9e307RmUocWwse1NtYXJ0TWF0Y2g6KCk9Pm1RfSk7dmFyIG1RLGdRPXAoKCk9PntzSWUoKTttUT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLndpbGRjYXJkPXR9bWF0Y2godCl7cmV0dXJuIHltLmlzTWF0Y2godCx0aGlzLndpbGRjYXJkKX19fSk7dmFyIFNtPXt9O0ZlKFNtLHtDcm9uOigpPT5oSWUsQ3JvbkRhdGU6KCk9Pm1pLENyb25QYXR0ZXJuOigpPT54eixzY2hlZHVsZWRKb2JzOigpPT5vOH0pO2Z1bmN0aW9uIHdtKGUpe3JldHVybiBEYXRlLlVUQyhlLnksZS5tLTEsZS5kLGUuaCxlLmksZS5zKX1mdW5jdGlvbiBiUShlLHQpe3JldHVybiBlLnk9PT10LnkmJmUubT09PXQubSYmZS5kPT09dC5kJiZlLmg9PT10LmgmJmUuaT09PXQuaSYmZS5zPT09dC5zfWZ1bmN0aW9uIHFBcihlLHQpe2xldCByPW5ldyBEYXRlKERhdGUucGFyc2UoZSkpO2lmKGlzTmFOKHIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBJU084NjAxIHBhc3NlZCB0byB0aW1lem9uZSBwYXJzZXIuIik7bGV0IGk9ZS5zdWJzdHJpbmcoOSk7cmV0dXJuIGkuaW5jbHVkZXMoIloiKXx8aS5pbmNsdWRlcygiKyIpfHxpLmluY2x1ZGVzKCItIik/dlEoci5nZXRVVENGdWxsWWVhcigpLHIuZ2V0VVRDTW9udGgoKSsxLHIuZ2V0VVRDRGF0ZSgpLHIuZ2V0VVRDSG91cnMoKSxyLmdldFVUQ01pbnV0ZXMoKSxyLmdldFVUQ1NlY29uZHMoKSwiRXRjL1VUQyIpOnZRKHIuZ2V0RnVsbFllYXIoKSxyLmdldE1vbnRoKCkrMSxyLmdldERhdGUoKSxyLmdldEhvdXJzKCksci5nZXRNaW51dGVzKCksci5nZXRTZWNvbmRzKCksdCl9ZnVuY3Rpb24gbEllKGUsdCxyKXtyZXR1cm4gY0llKHFBcihlLHQpLHIpfWZ1bmN0aW9uIGNJZShlLHQpe2xldCByPW5ldyBEYXRlKHdtKGUpKSxpPU1tKHIsZS50eiksYT13bShlKSxuPXdtKGkpLG89YS1uLHM9bmV3IERhdGUoci5nZXRUaW1lKCkrbyksbD1NbShzLGUudHopO2lmKGJRKGwsZSkpe2xldCBkPW5ldyBEYXRlKHMuZ2V0VGltZSgpLTM2ZTUpLGg9TW0oZCxlLnR6KTtyZXR1cm4gYlEoaCxlKT9kOnN9bGV0IGM9bmV3IERhdGUocy5nZXRUaW1lKCkrd20oZSktd20obCkpLHU9TW0oYyxlLnR6KTtpZihiUSh1LGUpKXJldHVybiBjO2lmKHQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgcGFzc2VkIHRvIGZyb21UWigpIik7cmV0dXJuIHMuZ2V0VGltZSgpPmMuZ2V0VGltZSgpP3M6Y31mdW5jdGlvbiBNbShlLHQpe2xldCByLGk7dHJ5e3I9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7dGltZVpvbmU6dCx5ZWFyOiJudW1lcmljIixtb250aDoibnVtZXJpYyIsZGF5OiJudW1lcmljIixob3VyOiJudW1lcmljIixtaW51dGU6Im51bWVyaWMiLHNlY29uZDoibnVtZXJpYyIsaG91cjEyOiExfSksaT1yLmZvcm1hdFRvUGFydHMoZSl9Y2F0Y2gobil7bGV0IG89biBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpTdHJpbmcobik7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYHRvVFo6IEludmFsaWQgdGltZXpvbmUgJyR7dH0nIG9yIGRhdGUuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgSUFOQSB0aW1lem9uZSAoZS5nLiwgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL1N0b2NraG9sbScpLiBPcmlnaW5hbCBlcnJvcjogJHtvfWApfWxldCBhPXt5ZWFyOjAsbW9udGg6MCxkYXk6MCxob3VyOjAsbWludXRlOjAsc2Vjb25kOjB9O2ZvcihsZXQgbiBvZiBpKShuLnR5cGU9PT0ieWVhciJ8fG4udHlwZT09PSJtb250aCJ8fG4udHlwZT09PSJkYXkifHxuLnR5cGU9PT0iaG91ciJ8fG4udHlwZT09PSJtaW51dGUifHxuLnR5cGU9PT0ic2Vjb25kIikmJihhW24udHlwZV09cGFyc2VJbnQobi52YWx1ZSwxMCkpO2lmKGlzTmFOKGEueWVhcil8fGlzTmFOKGEubW9udGgpfHxpc05hTihhLmRheSl8fGlzTmFOKGEuaG91cil8fGlzTmFOKGEubWludXRlKXx8aXNOYU4oYS5zZWNvbmQpKXRocm93IG5ldyBFcnJvcihgdG9UWjogRmFpbGVkIHRvIHBhcnNlIGFsbCBkYXRlIGNvbXBvbmVudHMgZnJvbSB0aW1lem9uZSAnJHt0fScuIFRoaXMgbWF5IGluZGljYXRlIGFuIGludmFsaWQgZGF0ZSBvciB0aW1lem9uZSBjb25maWd1cmF0aW9uLiBQYXJzZWQgY29tcG9uZW50czogJHtKU09OLnN0cmluZ2lmeShhKX1gKTtyZXR1cm4gYS5ob3VyPT09MjQmJihhLmhvdXI9MCkse3k6YS55ZWFyLG06YS5tb250aCxkOmEuZGF5LGg6YS5ob3VyLGk6YS5taW51dGUsczphLnNlY29uZCx0ejp0fX1mdW5jdGlvbiB2UShlLHQscixpLGEsbixvKXtyZXR1cm57eTplLG06dCxkOnIsaDppLGk6YSxzOm4sdHo6b319ZnVuY3Rpb24gakFyKGUpe2lmKGU9PT12b2lkIDAmJihlPXt9KSxkZWxldGUgZS5uYW1lLGUubGVnYWN5TW9kZSE9PXZvaWQgMCYmZS5kb21BbmREb3c9PT12b2lkIDA/ZS5kb21BbmREb3c9IWUubGVnYWN5TW9kZTplLmRvbUFuZERvdz09PXZvaWQgMCYmKGUuZG9tQW5kRG93PSExKSxlLmxlZ2FjeU1vZGU9IWUuZG9tQW5kRG93LGUucGF1c2VkPWUucGF1c2VkPT09dm9pZCAwPyExOmUucGF1c2VkLGUubWF4UnVucz1lLm1heFJ1bnM9PT12b2lkIDA/MS8wOmUubWF4UnVucyxlLmNhdGNoPWUuY2F0Y2g9PT12b2lkIDA/ITE6ZS5jYXRjaCxlLmludGVydmFsPWUuaW50ZXJ2YWw9PT12b2lkIDA/MDpwYXJzZUludChlLmludGVydmFsLnRvU3RyaW5nKCksMTApLGUudXRjT2Zmc2V0PWUudXRjT2Zmc2V0PT09dm9pZCAwP3ZvaWQgMDpwYXJzZUludChlLnV0Y09mZnNldC50b1N0cmluZygpLDEwKSxlLmRheU9mZnNldD1lLmRheU9mZnNldD09PXZvaWQgMD8wOnBhcnNlSW50KGUuZGF5T2Zmc2V0LnRvU3RyaW5nKCksMTApLGUudW5yZWY9ZS51bnJlZj09PXZvaWQgMD8hMTplLnVucmVmLGUubW9kZT1lLm1vZGU9PT12b2lkIDA/ImF1dG8iOmUubW9kZSxlLmFsdGVybmF0aXZlV2Vla2RheXM9ZS5hbHRlcm5hdGl2ZVdlZWtkYXlzPT09dm9pZCAwPyExOmUuYWx0ZXJuYXRpdmVXZWVrZGF5cyxlLnNsb3BweVJhbmdlcz1lLnNsb3BweVJhbmdlcz09PXZvaWQgMD8hMTplLnNsb3BweVJhbmdlcywhWyJhdXRvIiwiNS1wYXJ0IiwiNi1wYXJ0IiwiNy1wYXJ0IiwiNS1vci02LXBhcnRzIiwiNi1vci03LXBhcnRzIl0uaW5jbHVkZXMoZS5tb2RlKSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBtb2RlIG11c3QgYmUgb25lIG9mICdhdXRvJywgJzUtcGFydCcsICc2LXBhcnQnLCAnNy1wYXJ0JywgJzUtb3ItNi1wYXJ0cycsIG9yICc2LW9yLTctcGFydHMnLiIpO2lmKGUuc3RhcnRBdCYmKGUuc3RhcnRBdD1uZXcgbWkoZS5zdGFydEF0LGUudGltZXpvbmUpKSxlLnN0b3BBdCYmKGUuc3RvcEF0PW5ldyBtaShlLnN0b3BBdCxlLnRpbWV6b25lKSksZS5pbnRlcnZhbCE9PW51bGwpe2lmKGlzTmFOKGUuaW50ZXJ2YWwpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFN1cHBsaWVkIHZhbHVlIGZvciBpbnRlcnZhbCBpcyBub3QgYSBudW1iZXIiKTtpZihlLmludGVydmFsPDApdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogU3VwcGxpZWQgdmFsdWUgZm9yIGludGVydmFsIGNhbiBub3QgYmUgbmVnYXRpdmUiKX1pZihlLnV0Y09mZnNldCE9PXZvaWQgMCl7aWYoaXNOYU4oZS51dGNPZmZzZXQpKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IEludmFsaWQgdmFsdWUgcGFzc2VkIGZvciB1dGNPZmZzZXQsIHNob3VsZCBiZSBudW1iZXIgcmVwcmVzZW50aW5nIG1pbnV0ZXMgb2Zmc2V0IGZyb20gVVRDLiIpO2lmKGUudXRjT2Zmc2V0PC04NzB8fGUudXRjT2Zmc2V0Pjg3MCl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiB1dGNPZmZzZXQgb3V0IG9mIGJvdW5kcy4iKTtpZihlLnV0Y09mZnNldCE9PXZvaWQgMCYmZS50aW1lem9uZSl0aHJvdyBuZXcgRXJyb3IoIkNyb25PcHRpb25zOiBDb21iaW5pbmcgJ3V0Y09mZnNldCcgd2l0aCAndGltZXpvbmUnIGlzIG5vdCBhbGxvd2VkLiIpfWlmKGUudW5yZWYhPT0hMCYmZS51bnJlZiE9PSExKXRocm93IG5ldyBFcnJvcigiQ3Jvbk9wdGlvbnM6IFVucmVmIHNob3VsZCBiZSBlaXRoZXIgdHJ1ZSwgZmFsc2Ugb3IgdW5kZWZpbmVkKGZhbHNlKS4iKTtpZihlLmRheU9mZnNldCE9PXZvaWQgMCYmZS5kYXlPZmZzZXQhPT0wJiZpc05hTihlLmRheU9mZnNldCkpdGhyb3cgbmV3IEVycm9yKCJDcm9uT3B0aW9uczogSW52YWxpZCB2YWx1ZSBwYXNzZWQgZm9yIGRheU9mZnNldCwgc2hvdWxkIGJlIGEgbnVtYmVyIHJlcHJlc2VudGluZyBkYXlzIHRvIG9mZnNldC4iKTtyZXR1cm4gZX1mdW5jdGlvbiBrbShlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT09IltvYmplY3QgRnVuY3Rpb25dInx8dHlwZW9mIGU9PSJmdW5jdGlvbiJ8fGUgaW5zdGFuY2VvZiBGdW5jdGlvbn1mdW5jdGlvbiBWQXIoZSl7cmV0dXJuIGttKGUpfWZ1bmN0aW9uIFVBcihlKXt0eXBlb2YgRGVubzwidSImJnR5cGVvZiBEZW5vLnVucmVmVGltZXI8InUiP0Rlbm8udW5yZWZUaW1lcihlKTplJiZ0eXBlb2YgZS51bnJlZjwidSImJmUudW5yZWYoKX12YXIgZEllLHh6LHhRLGMxLG1pLHVJZSxvOCxoSWUsZkllPXAoKCk9PntkSWU9WzEsMiw0LDgsMTZdLHh6PWNsYXNze3BhdHRlcm47dGltZXpvbmU7bW9kZTthbHRlcm5hdGl2ZVdlZWtkYXlzO3Nsb3BweVJhbmdlcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO2RheU9mV2Vlazt5ZWFyO2xhc3REYXlPZk1vbnRoO2xhc3RXZWVrZGF5O25lYXJlc3RXZWVrZGF5cztzdGFyRE9NO3N0YXJET1c7c3RhclllYXI7dXNlQW5kTG9naWM7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMucGF0dGVybj1lLHRoaXMudGltZXpvbmU9dCx0aGlzLm1vZGU9cj8ubW9kZT8/ImF1dG8iLHRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz1yPy5hbHRlcm5hdGl2ZVdlZWtkYXlzPz8hMSx0aGlzLnNsb3BweVJhbmdlcz1yPy5zbG9wcHlSYW5nZXM/PyExLHRoaXMuc2Vjb25kPUFycmF5KDYwKS5maWxsKDApLHRoaXMubWludXRlPUFycmF5KDYwKS5maWxsKDApLHRoaXMuaG91cj1BcnJheSgyNCkuZmlsbCgwKSx0aGlzLmRheT1BcnJheSgzMSkuZmlsbCgwKSx0aGlzLm1vbnRoPUFycmF5KDEyKS5maWxsKDApLHRoaXMuZGF5T2ZXZWVrPUFycmF5KDcpLmZpbGwoMCksdGhpcy55ZWFyPUFycmF5KDFlNCkuZmlsbCgwKSx0aGlzLmxhc3REYXlPZk1vbnRoPSExLHRoaXMubGFzdFdlZWtkYXk9ITEsdGhpcy5uZWFyZXN0V2Vla2RheXM9QXJyYXkoMzEpLmZpbGwoMCksdGhpcy5zdGFyRE9NPSExLHRoaXMuc3RhckRPVz0hMSx0aGlzLnN0YXJZZWFyPSExLHRoaXMudXNlQW5kTG9naWM9ITEsdGhpcy5wYXJzZSgpfXBhcnNlKCl7aWYoISh0eXBlb2YgdGhpcy5wYXR0ZXJuPT0ic3RyaW5nInx8dGhpcy5wYXR0ZXJuIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogUGF0dGVybiBoYXMgdG8gYmUgb2YgdHlwZSBzdHJpbmcuIik7dGhpcy5wYXR0ZXJuLmluZGV4T2YoIkAiKT49MCYmKHRoaXMucGF0dGVybj10aGlzLmhhbmRsZU5pY2tuYW1lcyh0aGlzLnBhdHRlcm4pLnRyaW0oKSk7bGV0IGU9dGhpcy5wYXR0ZXJuLm1hdGNoKC9cUysvZyl8fFsiIl0sdD1lLmxlbmd0aDtpZihlLmxlbmd0aDw1fHxlLmxlbmd0aD43KXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBpbnZhbGlkIGNvbmZpZ3VyYXRpb24gZm9ybWF0ICgnIit0aGlzLnBhdHRlcm4rIicpLCBleGFjdGx5IGZpdmUsIHNpeCwgb3Igc2V2ZW4gc3BhY2Ugc2VwYXJhdGVkIHBhcnRzIGFyZSByZXF1aXJlZC4iKTtpZih0aGlzLm1vZGUhPT0iYXV0byIpe2xldCBpO3N3aXRjaCh0aGlzLm1vZGUpe2Nhc2UiNS1wYXJ0IjppPTU7YnJlYWs7Y2FzZSI2LXBhcnQiOmk9NjticmVhaztjYXNlIjctcGFydCI6aT03O2JyZWFrO2Nhc2UiNS1vci02LXBhcnRzIjppPVs1LDZdO2JyZWFrO2Nhc2UiNi1vci03LXBhcnRzIjppPVs2LDddO2JyZWFrO2RlZmF1bHQ6aT0wfWlmKCEoQXJyYXkuaXNBcnJheShpKT9pLmluY2x1ZGVzKHQpOnQ9PT1pKSl7bGV0IGE9QXJyYXkuaXNBcnJheShpKT9pLmpvaW4oIiBvciAiKTppLnRvU3RyaW5nKCk7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvblBhdHRlcm46IG1vZGUgJyR7dGhpcy5tb2RlfScgcmVxdWlyZXMgZXhhY3RseSAke2F9IHBhcnRzLCBidXQgcGF0dGVybiAnJHt0aGlzLnBhdHRlcm59JyBoYXMgJHt0fSBwYXJ0cy5gKX19aWYoZS5sZW5ndGg9PT01JiZlLnVuc2hpZnQoIjAiKSxlLmxlbmd0aD09PTYmJmUucHVzaCgiKiIpLGVbM10udG9VcHBlckNhc2UoKT09PSJMVyI/KHRoaXMubGFzdFdlZWtkYXk9ITAsZVszXT0iIik6ZVszXS50b1VwcGVyQ2FzZSgpLmluZGV4T2YoIkwiKT49MCYmKGVbM109ZVszXS5yZXBsYWNlKC9ML2dpLCIiKSx0aGlzLmxhc3REYXlPZk1vbnRoPSEwKSxlWzNdPT0iKiImJih0aGlzLnN0YXJET009ITApLGVbNl09PSIqIiYmKHRoaXMuc3RhclllYXI9ITApLGVbNF0ubGVuZ3RoPj0zJiYoZVs0XT10aGlzLnJlcGxhY2VBbHBoYU1vbnRocyhlWzRdKSksZVs1XS5sZW5ndGg+PTMmJihlWzVdPXRoaXMuYWx0ZXJuYXRpdmVXZWVrZGF5cz90aGlzLnJlcGxhY2VBbHBoYURheXNRdWFydHooZVs1XSk6dGhpcy5yZXBsYWNlQWxwaGFEYXlzKGVbNV0pKSxlWzVdLnN0YXJ0c1dpdGgoIisiKSYmKHRoaXMudXNlQW5kTG9naWM9ITAsZVs1XT1lWzVdLnN1YnN0cmluZygxKSxlWzVdPT09IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBEYXktb2Ytd2VlayBmaWVsZCBjYW5ub3QgYmUgZW1wdHkgYWZ0ZXIgJysnIG1vZGlmaWVyLiIpO3N3aXRjaChlWzVdPT0iKiImJih0aGlzLnN0YXJET1c9ITApLHRoaXMucGF0dGVybi5pbmRleE9mKCI/Iik+PTAmJihlWzBdPWVbMF0ucmVwbGFjZSgvXD8vZywiKiIpLGVbMV09ZVsxXS5yZXBsYWNlKC9cPy9nLCIqIiksZVsyXT1lWzJdLnJlcGxhY2UoL1w/L2csIioiKSxlWzNdPWVbM10ucmVwbGFjZSgvXD8vZywiKiIpLGVbNF09ZVs0XS5yZXBsYWNlKC9cPy9nLCIqIiksZVs1XT1lWzVdLnJlcGxhY2UoL1w/L2csIioiKSxlWzZdJiYoZVs2XT1lWzZdLnJlcGxhY2UoL1w/L2csIioiKSkpLHRoaXMubW9kZSl7Y2FzZSI1LXBhcnQiOmVbMF09IjAiLGVbNl09IioiO2JyZWFrO2Nhc2UiNi1wYXJ0IjplWzZdPSIqIjticmVhaztjYXNlIjUtb3ItNi1wYXJ0cyI6ZVs2XT0iKiI7YnJlYWs7Y2FzZSI2LW9yLTctcGFydHMiOmJyZWFrO2Nhc2UiNy1wYXJ0IjpjYXNlImF1dG8iOmJyZWFrfXRoaXMudGhyb3dBdElsbGVnYWxDaGFyYWN0ZXJzKGUpLHRoaXMucGFydFRvQXJyYXkoInNlY29uZCIsZVswXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoIm1pbnV0ZSIsZVsxXSwwLDEpLHRoaXMucGFydFRvQXJyYXkoImhvdXIiLGVbMl0sMCwxKSx0aGlzLnBhcnRUb0FycmF5KCJkYXkiLGVbM10sLTEsMSksdGhpcy5wYXJ0VG9BcnJheSgibW9udGgiLGVbNF0sLTEsMSk7bGV0IHI9dGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzPy0xOjA7dGhpcy5wYXJ0VG9BcnJheSgiZGF5T2ZXZWVrIixlWzVdLHIsNjMpLHRoaXMucGFydFRvQXJyYXkoInllYXIiLGVbNl0sMCwxKSwhdGhpcy5hbHRlcm5hdGl2ZVdlZWtkYXlzJiZ0aGlzLmRheU9mV2Vla1s3XSYmKHRoaXMuZGF5T2ZXZWVrWzBdPXRoaXMuZGF5T2ZXZWVrWzddKX1wYXJ0VG9BcnJheShlLHQscixpKXtsZXQgYT10aGlzW2VdLG49ZT09PSJkYXkiJiZ0aGlzLmxhc3REYXlPZk1vbnRoLG89ZT09PSJkYXkiJiZ0aGlzLmxhc3RXZWVrZGF5O2lmKHQ9PT0iIiYmIW4mJiFvKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrZSsiICgiK3QrIikgaXMgZW1wdHksIGNoZWNrIGZvciB0cmFpbGluZyBzcGFjZXMuIik7aWYodD09PSIqIilyZXR1cm4gYS5maWxsKGkpO2xldCBzPXQuc3BsaXQoIiwiKTtpZihzLmxlbmd0aD4xKWZvcihsZXQgbD0wO2w8cy5sZW5ndGg7bCsrKXRoaXMucGFydFRvQXJyYXkoZSxzW2xdLHIsaSk7ZWxzZSB0LmluZGV4T2YoIi0iKSE9PS0xJiZ0LmluZGV4T2YoIi8iKSE9PS0xP3RoaXMuaGFuZGxlUmFuZ2VXaXRoU3RlcHBpbmcodCxlLHIsaSk6dC5pbmRleE9mKCItIikhPT0tMT90aGlzLmhhbmRsZVJhbmdlKHQsZSxyLGkpOnQuaW5kZXhPZigiLyIpIT09LTE/dGhpcy5oYW5kbGVTdGVwcGluZyh0LGUscixpKTp0IT09IiImJnRoaXMuaGFuZGxlTnVtYmVyKHQsZSxyLGkpfXRocm93QXRJbGxlZ2FsQ2hhcmFjdGVycyhlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKylpZigodD09PTM/L1teLyowLTksXC1Xd0xsXSsvOnQ9PT01Py9bXi8qMC05LFwtI0xsXSsvOi9bXi8qMC05LFwtXSsvKS50ZXN0KGVbdF0pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBjb25maWd1cmF0aW9uIGVudHJ5ICIrdCsiICgiK2VbdF0rIikgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLiIpfWhhbmRsZU51bWJlcihlLHQscixpKXtsZXQgYT10aGlzLmV4dHJhY3ROdGgoZSx0KSxuPWUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpO2lmKHQhPT0iZGF5IiYmbil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogTmVhcmVzdCB3ZWVrZGF5IG1vZGlmaWVyIChXKSBvbmx5IGFsbG93ZWQgaW4gZGF5LW9mLW1vbnRoLiIpO24mJih0PSJuZWFyZXN0V2Vla2RheXMiKTtsZXQgbz1wYXJzZUludChhWzBdLDEwKStyO2lmKGlzTmFOKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiAiK3QrIiBpcyBub3QgYSBudW1iZXI6ICciK2UrIiciKTt0aGlzLnNldFBhcnQodCxvLGFbMV18fGkpfXNldFBhcnQoZSx0LHIpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcyxlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCBwYXJ0IHNwZWNpZmllZDogIitlKTtpZihlPT09ImRheU9mV2VlayIpe2lmKHQ9PT03JiYodD0wKSx0PDB8fHQ+Nil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlazogIit0KTt0aGlzLnNldE50aFdlZWtkYXlPZk1vbnRoKHQscik7cmV0dXJufWlmKGU9PT0ic2Vjb25kInx8ZT09PSJtaW51dGUiKXtpZih0PDB8fHQ+PTYwKXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIitlKyI6ICIrdCl9ZWxzZSBpZihlPT09ImhvdXIiKXtpZih0PDB8fHQ+PTI0KXRocm93IG5ldyBSYW5nZUVycm9yKCJDcm9uUGF0dGVybjogSW52YWxpZCB2YWx1ZSBmb3IgIitlKyI6ICIrdCl9ZWxzZSBpZihlPT09ImRheSJ8fGU9PT0ibmVhcmVzdFdlZWtkYXlzIil7aWYodDwwfHx0Pj0zMSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQ3JvblBhdHRlcm46IEludmFsaWQgdmFsdWUgZm9yICIrZSsiOiAiK3QpfWVsc2UgaWYoZT09PSJtb250aCIpe2lmKHQ8MHx8dD49MTIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK2UrIjogIit0KX1lbHNlIGlmKGU9PT0ieWVhciImJih0PDF8fHQ+PTFlNCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkNyb25QYXR0ZXJuOiBJbnZhbGlkIHZhbHVlIGZvciAiK2UrIjogIit0KyIgKHN1cHBvcnRlZCByYW5nZTogMS05OTk5KSIpO3RoaXNbZV1bdF09cn12YWxpZGF0ZU5vdE5hTihlLHQpe2lmKGlzTmFOKGUpKXRocm93IG5ldyBUeXBlRXJyb3IodCl9dmFsaWRhdGVSYW5nZShlLHQscixpLGEpe2lmKGU+dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogRnJvbSB2YWx1ZSBpcyBsYXJnZXIgdGhhbiB0byB2YWx1ZTogJyIrYSsiJyIpO2lmKHIhPT12b2lkIDApe2lmKHI9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgc3RlcHBpbmc6IDAiKTtpZihyPnRoaXNbaV0ubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4aW11bSB2YWx1ZSBvZiBwYXJ0ICgiK3RoaXNbaV0ubGVuZ3RoKyIpIil9fWhhbmRsZVJhbmdlV2l0aFN0ZXBwaW5nKGUsdCxyLGkpe2lmKGUudG9VcHBlckNhc2UoKS5pbmNsdWRlcygiVyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIFcgaXMgbm90IGFsbG93ZWQgaW4gcmFuZ2VzIHdpdGggc3RlcHBpbmcuIik7bGV0IGE9dGhpcy5leHRyYWN0TnRoKGUsdCksbj1hWzBdLm1hdGNoKC9eKFxkKyktKFxkKylcLyhcZCspJC8pO2lmKG49PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2Ugd2l0aCBzdGVwcGluZzogJyIrZSsiJyIpO2xldFssbyxzLGxdPW4sYz1wYXJzZUludChvLDEwKStyLHU9cGFyc2VJbnQocywxMCkrcixkPXBhcnNlSW50KGwsMTApO3RoaXMudmFsaWRhdGVOb3ROYU4oYywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBsb3dlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4odSwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCB1cHBlciByYW5nZSAoTmFOKSIpLHRoaXMudmFsaWRhdGVOb3ROYU4oZCwiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoYyx1LGQsdCxlKTtmb3IobGV0IGg9YztoPD11O2grPWQpdGhpcy5zZXRQYXJ0KHQsaCxhWzFdfHxpKX1leHRyYWN0TnRoKGUsdCl7bGV0IHI9ZSxpO2lmKHIuaW5jbHVkZXMoIiMiKSl7aWYodCE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IG50aCAoIykgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkIik7aT1yLnNwbGl0KCIjIilbMV0scj1yLnNwbGl0KCIjIilbMF19ZWxzZSBpZihyLnRvVXBwZXJDYXNlKCkuZW5kc1dpdGgoIkwiKSl7aWYodCE9PSJkYXlPZldlZWsiKXRocm93IG5ldyBFcnJvcigiQ3JvblBhdHRlcm46IEwgbW9kaWZpZXIgb25seSBhbGxvd2VkIGluIGRheS1vZi13ZWVrIGZpZWxkICh1c2UgTCBhbG9uZSBmb3IgZGF5LW9mLW1vbnRoKSIpO2k9IkwiLHI9ci5zbGljZSgwLC0xKX1yZXR1cm5bcixpXX1oYW5kbGVSYW5nZShlLHQscixpKXtpZihlLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoIlciKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBXIGlzIG5vdCBhbGxvd2VkIGluIGEgcmFuZ2UuIik7bGV0IGE9dGhpcy5leHRyYWN0TnRoKGUsdCksbj1hWzBdLnNwbGl0KCItIik7aWYobi5sZW5ndGghPT0yKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgcmFuZ2U6ICciK2UrIiciKTtsZXQgbz1wYXJzZUludChuWzBdLDEwKStyLHM9cGFyc2VJbnQoblsxXSwxMCkrcjt0aGlzLnZhbGlkYXRlTm90TmFOKG8sIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgbG93ZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlTm90TmFOKHMsIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIGlsbGVnYWwgdXBwZXIgcmFuZ2UgKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UobyxzLHZvaWQgMCx0LGUpO2ZvcihsZXQgbD1vO2w8PXM7bCsrKXRoaXMuc2V0UGFydCh0LGwsYVsxXXx8aSl9aGFuZGxlU3RlcHBpbmcoZSx0LHIsaSl7aWYoZS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCJXIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgVyBpcyBub3QgYWxsb3dlZCBpbiBwYXJ0cyB3aXRoIHN0ZXBwaW5nLiIpO2xldCBhPXRoaXMuZXh0cmFjdE50aChlLHQpLG49YVswXS5zcGxpdCgiLyIpO2lmKG4ubGVuZ3RoIT09Mil0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uUGF0dGVybjogU3ludGF4IGVycm9yLCBpbGxlZ2FsIHN0ZXBwaW5nOiAnIitlKyInIik7aWYodGhpcy5zbG9wcHlSYW5nZXMpblswXT09PSIiJiYoblswXT0iKiIpO2Vsc2V7aWYoblswXT09PSIiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbWlzc2luZyBwcmVmaXggKCciK2UrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKTtpZihuWzBdIT09IioiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBTeW50YXggZXJyb3IsIHN0ZXBwaW5nIHdpdGggbnVtZXJpYyBwcmVmaXggKCciK2UrIicpIGlzIG5vdCBhbGxvd2VkLiBVc2Ugd2lsZGNhcmQgKCovc3RlcCkgb3IgcmFuZ2UgKG1pbi1tYXgvc3RlcCkgaW5zdGVhZC4iKX1sZXQgbz0wO25bMF0hPT0iKiImJihvPXBhcnNlSW50KG5bMF0sMTApK3IpO2xldCBzPXBhcnNlSW50KG5bMV0sMTApO3RoaXMudmFsaWRhdGVOb3ROYU4ocywiQ3JvblBhdHRlcm46IFN5bnRheCBlcnJvciwgaWxsZWdhbCBzdGVwcGluZzogKE5hTikiKSx0aGlzLnZhbGlkYXRlUmFuZ2UoMCx0aGlzW3RdLmxlbmd0aC0xLHMsdCxlKTtmb3IobGV0IGw9bztsPHRoaXNbdF0ubGVuZ3RoO2wrPXMpdGhpcy5zZXRQYXJ0KHQsbCxhWzFdfHxpKX1yZXBsYWNlQWxwaGFEYXlzKGUpe3JldHVybiBlLnJlcGxhY2UoLy1zdW4vZ2ksIi03IikucmVwbGFjZSgvc3VuL2dpLCIwIikucmVwbGFjZSgvbW9uL2dpLCIxIikucmVwbGFjZSgvdHVlL2dpLCIyIikucmVwbGFjZSgvd2VkL2dpLCIzIikucmVwbGFjZSgvdGh1L2dpLCI0IikucmVwbGFjZSgvZnJpL2dpLCI1IikucmVwbGFjZSgvc2F0L2dpLCI2Iil9cmVwbGFjZUFscGhhRGF5c1F1YXJ0eihlKXtyZXR1cm4gZS5yZXBsYWNlKC9zdW4vZ2ksIjEiKS5yZXBsYWNlKC9tb24vZ2ksIjIiKS5yZXBsYWNlKC90dWUvZ2ksIjMiKS5yZXBsYWNlKC93ZWQvZ2ksIjQiKS5yZXBsYWNlKC90aHUvZ2ksIjUiKS5yZXBsYWNlKC9mcmkvZ2ksIjYiKS5yZXBsYWNlKC9zYXQvZ2ksIjciKX1yZXBsYWNlQWxwaGFNb250aHMoZSl7cmV0dXJuIGUucmVwbGFjZSgvamFuL2dpLCIxIikucmVwbGFjZSgvZmViL2dpLCIyIikucmVwbGFjZSgvbWFyL2dpLCIzIikucmVwbGFjZSgvYXByL2dpLCI0IikucmVwbGFjZSgvbWF5L2dpLCI1IikucmVwbGFjZSgvanVuL2dpLCI2IikucmVwbGFjZSgvanVsL2dpLCI3IikucmVwbGFjZSgvYXVnL2dpLCI4IikucmVwbGFjZSgvc2VwL2dpLCI5IikucmVwbGFjZSgvb2N0L2dpLCIxMCIpLnJlcGxhY2UoL25vdi9naSwiMTEiKS5yZXBsYWNlKC9kZWMvZ2ksIjEyIil9aGFuZGxlTmlja25hbWVzKGUpe2xldCB0PWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7aWYodD09PSJAeWVhcmx5Inx8dD09PSJAYW5udWFsbHkiKXJldHVybiIwIDAgMSAxICoiO2lmKHQ9PT0iQG1vbnRobHkiKXJldHVybiIwIDAgMSAqICoiO2lmKHQ9PT0iQHdlZWtseSIpcmV0dXJuIjAgMCAqICogMCI7aWYodD09PSJAZGFpbHkifHx0PT09IkBtaWRuaWdodCIpcmV0dXJuIjAgMCAqICogKiI7aWYodD09PSJAaG91cmx5IilyZXR1cm4iMCAqICogKiAqIjtpZih0PT09IkByZWJvb3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNyb25QYXR0ZXJuOiBAcmVib290IGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBlbnZpcm9ubWVudC4gVGhpcyBpcyBhbiBldmVudC1iYXNlZCB0cmlnZ2VyIHRoYXQgcmVxdWlyZXMgc3lzdGVtIHN0YXJ0dXAgZGV0ZWN0aW9uLiIpO3JldHVybiBlfXNldE50aFdlZWtkYXlPZk1vbnRoKGUsdCl7aWYodHlwZW9mIHQhPSJudW1iZXIiJiZ0LnRvVXBwZXJDYXNlKCk9PT0iTCIpdGhpcy5kYXlPZldlZWtbZV09dGhpcy5kYXlPZldlZWtbZV18MzI7ZWxzZSBpZih0PT09NjMpdGhpcy5kYXlPZldlZWtbZV09NjM7ZWxzZSBpZih0PDYmJnQ+MCl0aGlzLmRheU9mV2Vla1tlXT10aGlzLmRheU9mV2Vla1tlXXxkSWVbdC0xXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYENyb25QYXR0ZXJuOiBudGggd2Vla2RheSBvdXQgb2YgcmFuZ2UsIHNob3VsZCBiZSAxLTUgb3IgTC4gVmFsdWU6ICR7dH0sIFR5cGU6ICR7dHlwZW9mIHR9YCl9fSx4UT1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGMxPVtbIm1vbnRoIiwieWVhciIsMF0sWyJkYXkiLCJtb250aCIsLTFdLFsiaG91ciIsImRheSIsMF0sWyJtaW51dGUiLCJob3VyIiwwXSxbInNlY29uZCIsIm1pbnV0ZSIsMF1dLG1pPWNsYXNzIHBJZXt0ejttcztzZWNvbmQ7bWludXRlO2hvdXI7ZGF5O21vbnRoO3llYXI7Y29uc3RydWN0b3IodCxyKXtpZih0aGlzLnR6PXIsdCYmdCBpbnN0YW5jZW9mIERhdGUpaWYoIWlzTmFOKHQpKXRoaXMuZnJvbURhdGUodCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDcm9uRGF0ZTogSW52YWxpZCBkYXRlIHBhc3NlZCB0byBDcm9uRGF0ZSBjb25zdHJ1Y3RvciIpO2Vsc2UgaWYodD09bnVsbCl0aGlzLmZyb21EYXRlKG5ldyBEYXRlKTtlbHNlIGlmKHQmJnR5cGVvZiB0PT0ic3RyaW5nIil0aGlzLmZyb21TdHJpbmcodCk7ZWxzZSBpZih0IGluc3RhbmNlb2YgcEllKXRoaXMuZnJvbUNyb25EYXRlKHQpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3JvbkRhdGU6IEludmFsaWQgdHlwZSAoIit0eXBlb2YgdCsiKSBwYXNzZWQgdG8gQ3JvbkRhdGUgY29uc3RydWN0b3IiKX1nZXRMYXN0RGF5T2ZNb250aCh0LHIpe3JldHVybiByIT09MT94UVtyXTpuZXcgRGF0ZShEYXRlLlVUQyh0LHIrMSwwKSkuZ2V0VVRDRGF0ZSgpfWdldExhc3RXZWVrZGF5KHQscil7bGV0IGk9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0LHIpLGE9bmV3IERhdGUoRGF0ZS5VVEModCxyLGkpKS5nZXRVVENEYXkoKTtyZXR1cm4gYT09PTA/aS0yOmE9PT02P2ktMTppfWdldE5lYXJlc3RXZWVrZGF5KHQscixpKXtsZXQgYT10aGlzLmdldExhc3REYXlPZk1vbnRoKHQscik7aWYoaT5hKXJldHVybi0xO2xldCBuPW5ldyBEYXRlKERhdGUuVVRDKHQscixpKSkuZ2V0VVRDRGF5KCk7cmV0dXJuIG49PT0wP2k9PT1hP2ktMjppKzE6bj09PTY/aT09PTE/aSsyOmktMTppfWlzTnRoV2Vla2RheU9mTW9udGgodCxyLGksYSl7bGV0IG49bmV3IERhdGUoRGF0ZS5VVEModCxyLGkpKS5nZXRVVENEYXkoKSxvPTA7Zm9yKGxldCBzPTE7czw9aTtzKyspbmV3IERhdGUoRGF0ZS5VVEModCxyLHMpKS5nZXRVVENEYXkoKT09PW4mJm8rKztpZihhJjYzJiZkSWVbby0xXSZhKXJldHVybiEwO2lmKGEmMzIpe2xldCBzPXRoaXMuZ2V0TGFzdERheU9mTW9udGgodCxyKTtmb3IobGV0IGw9aSsxO2w8PXM7bCsrKWlmKG5ldyBEYXRlKERhdGUuVVRDKHQscixsKSkuZ2V0VVRDRGF5KCk9PT1uKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZyb21EYXRlKHQpe2lmKHRoaXMudHohPT12b2lkIDApaWYodHlwZW9mIHRoaXMudHo9PSJudW1iZXIiKXRoaXMubXM9dC5nZXRVVENNaWxsaXNlY29uZHMoKSx0aGlzLnNlY29uZD10LmdldFVUQ1NlY29uZHMoKSx0aGlzLm1pbnV0ZT10LmdldFVUQ01pbnV0ZXMoKSt0aGlzLnR6LHRoaXMuaG91cj10LmdldFVUQ0hvdXJzKCksdGhpcy5kYXk9dC5nZXRVVENEYXRlKCksdGhpcy5tb250aD10LmdldFVUQ01vbnRoKCksdGhpcy55ZWFyPXQuZ2V0VVRDRnVsbFllYXIoKSx0aGlzLmFwcGx5KCk7ZWxzZSB0cnl7bGV0IHI9TW0odCx0aGlzLnR6KTt0aGlzLm1zPXQuZ2V0TWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5zLHRoaXMubWludXRlPXIuaSx0aGlzLmhvdXI9ci5oLHRoaXMuZGF5PXIuZCx0aGlzLm1vbnRoPXIubS0xLHRoaXMueWVhcj1yLnl9Y2F0Y2gocil7bGV0IGk9ciBpbnN0YW5jZW9mIEVycm9yP3IubWVzc2FnZTpTdHJpbmcocik7dGhyb3cgbmV3IFR5cGVFcnJvcihgQ3JvbkRhdGU6IEZhaWxlZCB0byBjb252ZXJ0IGRhdGUgdG8gdGltZXpvbmUgJyR7dGhpcy50en0nLiBUaGlzIG1heSBoYXBwZW4gd2l0aCBpbnZhbGlkIHRpbWV6b25lIG5hbWVzIG9yIGRhdGVzLiBPcmlnaW5hbCBlcnJvcjogJHtpfWApfWVsc2UgdGhpcy5tcz10LmdldE1pbGxpc2Vjb25kcygpLHRoaXMuc2Vjb25kPXQuZ2V0U2Vjb25kcygpLHRoaXMubWludXRlPXQuZ2V0TWludXRlcygpLHRoaXMuaG91cj10LmdldEhvdXJzKCksdGhpcy5kYXk9dC5nZXREYXRlKCksdGhpcy5tb250aD10LmdldE1vbnRoKCksdGhpcy55ZWFyPXQuZ2V0RnVsbFllYXIoKX1mcm9tQ3JvbkRhdGUodCl7dGhpcy50ej10LnR6LHRoaXMueWVhcj10LnllYXIsdGhpcy5tb250aD10Lm1vbnRoLHRoaXMuZGF5PXQuZGF5LHRoaXMuaG91cj10LmhvdXIsdGhpcy5taW51dGU9dC5taW51dGUsdGhpcy5zZWNvbmQ9dC5zZWNvbmQsdGhpcy5tcz10Lm1zfWFwcGx5KCl7aWYodGhpcy5tb250aD4xMXx8dGhpcy5tb250aDwwfHx0aGlzLmRheT54UVt0aGlzLm1vbnRoXXx8dGhpcy5kYXk8MXx8dGhpcy5ob3VyPjU5fHx0aGlzLm1pbnV0ZT41OXx8dGhpcy5zZWNvbmQ+NTl8fHRoaXMuaG91cjwwfHx0aGlzLm1pbnV0ZTwwfHx0aGlzLnNlY29uZDwwKXtsZXQgdD1uZXcgRGF0ZShEYXRlLlVUQyh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRheSx0aGlzLmhvdXIsdGhpcy5taW51dGUsdGhpcy5zZWNvbmQsdGhpcy5tcykpO3JldHVybiB0aGlzLm1zPXQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9dC5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9dC5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXQuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT10LmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXQuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9dC5nZXRVVENGdWxsWWVhcigpLCEwfWVsc2UgcmV0dXJuITF9ZnJvbVN0cmluZyh0KXtpZih0eXBlb2YgdGhpcy50ej09Im51bWJlciIpe2xldCByPWxJZSh0KTt0aGlzLm1zPXIuZ2V0VVRDTWlsbGlzZWNvbmRzKCksdGhpcy5zZWNvbmQ9ci5nZXRVVENTZWNvbmRzKCksdGhpcy5taW51dGU9ci5nZXRVVENNaW51dGVzKCksdGhpcy5ob3VyPXIuZ2V0VVRDSG91cnMoKSx0aGlzLmRheT1yLmdldFVUQ0RhdGUoKSx0aGlzLm1vbnRoPXIuZ2V0VVRDTW9udGgoKSx0aGlzLnllYXI9ci5nZXRVVENGdWxsWWVhcigpLHRoaXMuYXBwbHkoKX1lbHNlIHJldHVybiB0aGlzLmZyb21EYXRlKGxJZSh0LHRoaXMudHopKX1maW5kTmV4dCh0LHIsaSxhKXtyZXR1cm4gdGhpcy5fZmluZE1hdGNoKHQscixpLGEsMSl9X2ZpbmRNYXRjaCh0LHIsaSxhLG4pe2xldCBvPXRoaXNbcl0scztpLmxhc3REYXlPZk1vbnRoJiYocz10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSk7bGV0IGw9IWkuc3RhckRPVyYmcj09ImRheSI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsMSwwLDAsMCwwKSkuZ2V0VVRDRGF5KCk6dm9pZCAwLGM9dGhpc1tyXSthLHU9bj09PTE/ZD0+ZDxpW3JdLmxlbmd0aDpkPT5kPj0wO2ZvcihsZXQgZD1jO3UoZCk7ZCs9bil7bGV0IGg9aVtyXVtkXTtpZihyPT09ImRheSImJiFoKXtmb3IobGV0IGY9MDtmPGkubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtmKyspaWYoaS5uZWFyZXN0V2Vla2RheXNbZl0pe2xldCB4PXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsZi1hKTtpZih4PT09LTEpY29udGludWU7aWYoeD09PWQtYSl7aD0xO2JyZWFrfX19aWYocj09PSJkYXkiJiZpLmxhc3RXZWVrZGF5KXtsZXQgZj10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtkLWE9PT1mJiYoaD0xKX1pZihyPT09ImRheSImJmkubGFzdERheU9mTW9udGgmJmQtYT09cyYmKGg9MSkscj09PSJkYXkiJiYhaS5zdGFyRE9XKXtsZXQgZj1pLmRheU9mV2Vla1sobCsoZC1hLTEpKSU3XTtpZihmJiZmJjYzKWY9dGhpcy5pc050aFdlZWtkYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoLGQtYSxmKT8xOjA7ZWxzZSBpZihmKXRocm93IG5ldyBFcnJvcihgQ3JvbkRhdGU6IEludmFsaWQgdmFsdWUgZm9yIGRheU9mV2VlayBlbmNvdW50ZXJlZC4gJHtmfWApO2kudXNlQW5kTG9naWM/aD1oJiZmOiF0LmRvbUFuZERvdyYmIWkuc3RhckRPTT9oPWh8fGY6aD1oJiZmfWlmKGgpcmV0dXJuIHRoaXNbcl09ZC1hLG8hPT10aGlzW3JdPzI6MX1yZXR1cm4gM31yZWN1cnNlKHQscixpKXtpZihpPT09MCYmIXQuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPHQueWVhci5sZW5ndGgmJnQueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG49LTE7Zm9yKGxldCBvPXRoaXMueWVhcisxO288dC55ZWFyLmxlbmd0aCYmbzwxZTQ7bysrKWlmKHQueWVhcltvXT09PTEpe249bzticmVha31pZihuPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW4sdGhpcy5tb250aD0wLHRoaXMuZGF5PTEsdGhpcy5ob3VyPTAsdGhpcy5taW51dGU9MCx0aGlzLnNlY29uZD0wLHRoaXMubXM9MH1pZih0aGlzLnllYXI+PTFlNClyZXR1cm4gbnVsbH1sZXQgYT10aGlzLmZpbmROZXh0KHIsYzFbaV1bMF0sdCxjMVtpXVsyXSk7aWYoYT4xKXtsZXQgbj1pKzE7Zm9yKDtuPGMxLmxlbmd0aDspdGhpc1tjMVtuXVswXV09LWMxW25dWzJdLG4rKztpZihhPT09Myl7aWYodGhpc1tjMVtpXVsxXV0rKyx0aGlzW2MxW2ldWzBdXT0tYzFbaV1bMl0sdGhpcy5hcHBseSgpLGk9PT0wJiYhdC5zdGFyWWVhcil7Zm9yKDt0aGlzLnllYXI+PTAmJnRoaXMueWVhcjx0LnllYXIubGVuZ3RoJiZ0LnllYXJbdGhpcy55ZWFyXT09PTAmJnRoaXMueWVhcjwxZTQ7KXRoaXMueWVhcisrO2lmKHRoaXMueWVhcj49MWU0fHx0aGlzLnllYXI+PXQueWVhci5sZW5ndGgpcmV0dXJuIG51bGx9cmV0dXJuIHRoaXMucmVjdXJzZSh0LHIsMCl9ZWxzZSBpZih0aGlzLmFwcGx5KCkpcmV0dXJuIHRoaXMucmVjdXJzZSh0LHIsaS0xKX1yZXR1cm4gaSs9MSxpPj1jMS5sZW5ndGg/dGhpczoodC5zdGFyWWVhcj90aGlzLnllYXI+PTNlMzp0aGlzLnllYXI+PTFlNCk/bnVsbDp0aGlzLnJlY3Vyc2UodCxyLGkpfWluY3JlbWVudCh0LHIsaSl7cmV0dXJuIHRoaXMuc2Vjb25kKz1yLmludGVydmFsIT09dm9pZCAwJiZyLmludGVydmFsPjEmJmk/ci5pbnRlcnZhbDoxLHRoaXMubXM9MCx0aGlzLmFwcGx5KCksdGhpcy5yZWN1cnNlKHQsciwwKX1kZWNyZW1lbnQodCxyKXtyZXR1cm4gdGhpcy5zZWNvbmQtPXIuaW50ZXJ2YWwhPT12b2lkIDAmJnIuaW50ZXJ2YWw+MT9yLmludGVydmFsOjEsdGhpcy5tcz0wLHRoaXMuYXBwbHkoKSx0aGlzLnJlY3Vyc2VCYWNrd2FyZCh0LHIsMCwwKX1yZWN1cnNlQmFja3dhcmQodCxyLGksYT0wKXtpZihhPjFlNClyZXR1cm4gbnVsbDtpZihpPT09MCYmIXQuc3RhclllYXIpe2lmKHRoaXMueWVhcj49MCYmdGhpcy55ZWFyPHQueWVhci5sZW5ndGgmJnQueWVhclt0aGlzLnllYXJdPT09MCl7bGV0IG89LTE7Zm9yKGxldCBzPXRoaXMueWVhci0xO3M+PTA7cy0tKWlmKHQueWVhcltzXT09PTEpe289czticmVha31pZihvPT09LTEpcmV0dXJuIG51bGw7dGhpcy55ZWFyPW8sdGhpcy5tb250aD0xMSx0aGlzLmRheT0zMSx0aGlzLmhvdXI9MjMsdGhpcy5taW51dGU9NTksdGhpcy5zZWNvbmQ9NTksdGhpcy5tcz0wfWlmKHRoaXMueWVhcjwwKXJldHVybiBudWxsfWxldCBuPXRoaXMuZmluZFByZXZpb3VzKHIsYzFbaV1bMF0sdCxjMVtpXVsyXSk7aWYobj4xKXtsZXQgbz1pKzE7Zm9yKDtvPGMxLmxlbmd0aDspe2xldCBzPWMxW29dWzBdLGw9YzFbb11bMl0sYz10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShzLHQsbCk7dGhpc1tzXT1jLG8rK31pZihuPT09Myl7aWYodGhpc1tjMVtpXVsxXV0tLSxpPT09MCl7bGV0IHU9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7dGhpcy5kYXk+dSYmKHRoaXMuZGF5PXUpfWlmKGk9PT0xKWlmKHRoaXMuZGF5PD0wKXRoaXMuZGF5PTE7ZWxzZXtsZXQgdT10aGlzLnllYXIsZD10aGlzLm1vbnRoO2Zvcig7ZDwwOylkKz0xMix1LS07Zm9yKDtkPjExOylkLT0xMix1Kys7bGV0IGg9ZCE9PTE/eFFbZF06bmV3IERhdGUoRGF0ZS5VVEModSxkKzEsMCkpLmdldFVUQ0RhdGUoKTt0aGlzLmRheT5oJiYodGhpcy5kYXk9aCl9dGhpcy5hcHBseSgpO2xldCBzPWMxW2ldWzBdLGw9YzFbaV1bMl0sYz10aGlzLmdldE1heFBhdHRlcm5WYWx1ZShzLHQsbCk7aWYocz09PSJkYXkiKXtsZXQgdT10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTt0aGlzW3NdPU1hdGgubWluKGMsdSl9ZWxzZSB0aGlzW3NdPWM7aWYodGhpcy5hcHBseSgpLGk9PT0wKXtsZXQgdT1jMVsxXVsyXSxkPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJkYXkiLHQsdSksaD10aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKSxmPU1hdGgubWluKGQsaCk7ZiE9PXRoaXMuZGF5JiYodGhpcy5kYXk9Zix0aGlzLmhvdXI9dGhpcy5nZXRNYXhQYXR0ZXJuVmFsdWUoImhvdXIiLHQsYzFbMl1bMl0pLHRoaXMubWludXRlPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJtaW51dGUiLHQsYzFbM11bMl0pLHRoaXMuc2Vjb25kPXRoaXMuZ2V0TWF4UGF0dGVyblZhbHVlKCJzZWNvbmQiLHQsYzFbNF1bMl0pKX1pZihpPT09MCYmIXQuc3RhclllYXIpe2Zvcig7dGhpcy55ZWFyPj0wJiZ0aGlzLnllYXI8dC55ZWFyLmxlbmd0aCYmdC55ZWFyW3RoaXMueWVhcl09PT0wOyl0aGlzLnllYXItLTtpZih0aGlzLnllYXI8MClyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLDAsYSsxKX1lbHNlIGlmKHRoaXMuYXBwbHkoKSlyZXR1cm4gdGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLGktMSxhKzEpfXJldHVybiBpKz0xLGk+PWMxLmxlbmd0aD90aGlzOnRoaXMueWVhcjwwP251bGw6dGhpcy5yZWN1cnNlQmFja3dhcmQodCxyLGksYSsxKX1nZXRNYXhQYXR0ZXJuVmFsdWUodCxyLGkpe2lmKHQ9PT0iZGF5IiYmci5sYXN0RGF5T2ZNb250aClyZXR1cm4gdGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7aWYodD09PSJkYXkiJiYhci5zdGFyRE9XKXJldHVybiB0aGlzLmdldExhc3REYXlPZk1vbnRoKHRoaXMueWVhcix0aGlzLm1vbnRoKTtmb3IobGV0IGE9clt0XS5sZW5ndGgtMTthPj0wO2EtLSlpZihyW3RdW2FdKXJldHVybiBhLWk7cmV0dXJuIHJbdF0ubGVuZ3RoLTEtaX1maW5kUHJldmlvdXModCxyLGksYSl7cmV0dXJuIHRoaXMuX2ZpbmRNYXRjaCh0LHIsaSxhLC0xKX1nZXREYXRlKHQpe3JldHVybiB0fHx0aGlzLnR6PT09dm9pZCAwP25ldyBEYXRlKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLm1zKTp0eXBlb2YgdGhpcy50ej09Im51bWJlciI/bmV3IERhdGUoRGF0ZS5VVEModGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXksdGhpcy5ob3VyLHRoaXMubWludXRlLXRoaXMudHosdGhpcy5zZWNvbmQsdGhpcy5tcykpOmNJZSh2USh0aGlzLnllYXIsdGhpcy5tb250aCsxLHRoaXMuZGF5LHRoaXMuaG91cix0aGlzLm1pbnV0ZSx0aGlzLnNlY29uZCx0aGlzLnR6KSwhMSl9Z2V0VGltZSgpe3JldHVybiB0aGlzLmdldERhdGUoITEpLmdldFRpbWUoKX1tYXRjaCh0LHIpe2lmKCF0LnN0YXJZZWFyJiYodGhpcy55ZWFyPDB8fHRoaXMueWVhcj49dC55ZWFyLmxlbmd0aHx8dC55ZWFyW3RoaXMueWVhcl09PT0wKSlyZXR1cm4hMTtmb3IobGV0IGk9MDtpPGMxLmxlbmd0aDtpKyspe2xldCBhPWMxW2ldWzBdLG49YzFbaV1bMl0sbz10aGlzW2FdO2lmKG8rbjwwfHxvK24+PXRbYV0ubGVuZ3RoKXJldHVybiExO2xldCBzPXRbYV1bbytuXTtpZihhPT09ImRheSIpe2lmKCFzKXtmb3IobGV0IGw9MDtsPHQubmVhcmVzdFdlZWtkYXlzLmxlbmd0aDtsKyspaWYodC5uZWFyZXN0V2Vla2RheXNbbF0pe2xldCBjPXRoaXMuZ2V0TmVhcmVzdFdlZWtkYXkodGhpcy55ZWFyLHRoaXMubW9udGgsbC1uKTtpZihjIT09LTEmJmM9PT1vKXtzPTE7YnJlYWt9fX1pZih0Lmxhc3RXZWVrZGF5KXtsZXQgbD10aGlzLmdldExhc3RXZWVrZGF5KHRoaXMueWVhcix0aGlzLm1vbnRoKTtvPT09bCYmKHM9MSl9aWYodC5sYXN0RGF5T2ZNb250aCl7bGV0IGw9dGhpcy5nZXRMYXN0RGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCk7bz09PWwmJihzPTEpfWlmKCF0LnN0YXJET1cpe2xldCBsPW5ldyBEYXRlKERhdGUuVVRDKHRoaXMueWVhcix0aGlzLm1vbnRoLDEsMCwwLDAsMCkpLmdldFVUQ0RheSgpLGM9dC5kYXlPZldlZWtbKGwrKG8tMSkpJTddO2MmJmMmNjMmJihjPXRoaXMuaXNOdGhXZWVrZGF5T2ZNb250aCh0aGlzLnllYXIsdGhpcy5tb250aCxvLGMpPzE6MCksdC51c2VBbmRMb2dpYz9zPXMmJmM6IXIuZG9tQW5kRG93JiYhdC5zdGFyRE9NP3M9c3x8YzpzPXMmJmN9fWlmKCFzKXJldHVybiExfXJldHVybiEwfX07dUllPTMwKjFlMyxvOD1bXSxoSWU9Y2xhc3N7bmFtZTtvcHRpb25zO19zdGF0ZXM7Zm47Z2V0VHooKXtyZXR1cm4gdGhpcy5vcHRpb25zLnRpbWV6b25lfHx0aGlzLm9wdGlvbnMudXRjT2Zmc2V0fWFwcGx5RGF5T2Zmc2V0KGUpe2lmKHRoaXMub3B0aW9ucy5kYXlPZmZzZXQhPT12b2lkIDAmJnRoaXMub3B0aW9ucy5kYXlPZmZzZXQhPT0wKXtsZXQgdD10aGlzLm9wdGlvbnMuZGF5T2Zmc2V0KjI0KjYwKjYwKjFlMztyZXR1cm4gbmV3IERhdGUoZS5nZXRUaW1lKCkrdCl9cmV0dXJuIGV9Y29uc3RydWN0b3IoZSx0LHIpe2xldCBpLGE7aWYoa20odCkpYT10O2Vsc2UgaWYodHlwZW9mIHQ9PSJvYmplY3QiKWk9dDtlbHNlIGlmKHQhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCBmb3Igb3B0aW9uc0luLiBTaG91bGQgYmUgb25lIG9mIGZ1bmN0aW9uLCBvciBvYmplY3QgKG9wdGlvbnMpLiIpO2lmKGttKHIpKWE9cjtlbHNlIGlmKHR5cGVvZiByPT0ib2JqZWN0IilpPXI7ZWxzZSBpZihyIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiQ3JvbjogSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgZm9yIGZ1bmNJbi4gU2hvdWxkIGJlIG9uZSBvZiBmdW5jdGlvbiwgb3Igb2JqZWN0IChvcHRpb25zKS4iKTtpZih0aGlzLm5hbWU9aT8ubmFtZSx0aGlzLm9wdGlvbnM9akFyKGkpLHRoaXMuX3N0YXRlcz17a2lsbDohMSxibG9ja2luZzohMSxwcmV2aW91c1J1bjp2b2lkIDAsY3VycmVudFJ1bjp2b2lkIDAsb25jZTp2b2lkIDAsY3VycmVudFRpbWVvdXQ6dm9pZCAwLG1heFJ1bnM6aT9pLm1heFJ1bnM6dm9pZCAwLHBhdXNlZDppP2kucGF1c2VkOiExLHBhdHRlcm46bmV3IHh6KCIqICogKiAqICoiLHZvaWQgMCx7bW9kZToiYXV0byJ9KX0sZSYmKGUgaW5zdGFuY2VvZiBEYXRlfHx0eXBlb2YgZT09InN0cmluZyImJmUuaW5kZXhPZigiOiIpPjApP3RoaXMuX3N0YXRlcy5vbmNlPW5ldyBtaShlLHRoaXMuZ2V0VHooKSk6dGhpcy5fc3RhdGVzLnBhdHRlcm49bmV3IHh6KGUsdGhpcy5vcHRpb25zLnRpbWV6b25lLHttb2RlOnRoaXMub3B0aW9ucy5tb2RlLGFsdGVybmF0aXZlV2Vla2RheXM6dGhpcy5vcHRpb25zLmFsdGVybmF0aXZlV2Vla2RheXMsc2xvcHB5UmFuZ2VzOnRoaXMub3B0aW9ucy5zbG9wcHlSYW5nZXN9KSx0aGlzLm5hbWUpe2lmKG84LmZpbmQobj0+bi5uYW1lPT09dGhpcy5uYW1lKSl0aHJvdyBuZXcgRXJyb3IoIkNyb246IFRyaWVkIHRvIGluaXRpYWxpemUgbmV3IG5hbWVkIGpvYiAnIit0aGlzLm5hbWUrIicsIGJ1dCBuYW1lIGFscmVhZHkgdGFrZW4uIik7bzgucHVzaCh0aGlzKX1yZXR1cm4gYSE9PXZvaWQgMCYmVkFyKGEpJiYodGhpcy5mbj1hLHRoaXMuc2NoZWR1bGUoKSksdGhpc31uZXh0UnVuKGUpe2xldCB0PXRoaXMuX25leHQoZSk7cmV0dXJuIHQ/dGhpcy5hcHBseURheU9mZnNldCh0LmdldERhdGUoITEpKTpudWxsfW5leHRSdW5zKGUsdCl7dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJmU+dGhpcy5fc3RhdGVzLm1heFJ1bnMmJihlPXRoaXMuX3N0YXRlcy5tYXhSdW5zKTtsZXQgcj10fHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bnx8dm9pZCAwO3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKGUsciwibmV4dCIpfXByZXZpb3VzUnVucyhlLHQpe3JldHVybiB0aGlzLl9lbnVtZXJhdGVSdW5zKGUsdHx8dm9pZCAwLCJwcmV2aW91cyIpfV9lbnVtZXJhdGVSdW5zKGUsdCxyKXtsZXQgaT1bXSxhPXQ/bmV3IG1pKHQsdGhpcy5nZXRUeigpKTpudWxsLG49cj09PSJuZXh0Ij90aGlzLl9uZXh0OnRoaXMuX3ByZXZpb3VzO2Zvcig7ZS0tOyl7bGV0IG89bi5jYWxsKHRoaXMsYSk7aWYoIW8pYnJlYWs7bGV0IHM9by5nZXREYXRlKCExKTtpLnB1c2godGhpcy5hcHBseURheU9mZnNldChzKSksYT1vfXJldHVybiBpfW1hdGNoKGUpe2lmKHRoaXMuX3N0YXRlcy5vbmNlKXtsZXQgcj1uZXcgbWkoZSx0aGlzLmdldFR6KCkpO3IubXM9MDtsZXQgaT1uZXcgbWkodGhpcy5fc3RhdGVzLm9uY2UsdGhpcy5nZXRUeigpKTtyZXR1cm4gaS5tcz0wLHIuZ2V0VGltZSgpPT09aS5nZXRUaW1lKCl9bGV0IHQ9bmV3IG1pKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4gdC5tcz0wLHQubWF0Y2godGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKX1nZXRQYXR0ZXJuKCl7aWYoIXRoaXMuX3N0YXRlcy5vbmNlKXJldHVybiB0aGlzLl9zdGF0ZXMucGF0dGVybj90aGlzLl9zdGF0ZXMucGF0dGVybi5wYXR0ZXJuOnZvaWQgMH1nZXRPbmNlKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5vbmNlP3RoaXMuX3N0YXRlcy5vbmNlLmdldERhdGUoKTpudWxsfWlzUnVubmluZygpe2xldCBlPXRoaXMubmV4dFJ1bih0aGlzLl9zdGF0ZXMuY3VycmVudFJ1biksdD0hdGhpcy5fc3RhdGVzLnBhdXNlZCxyPXRoaXMuZm4hPT12b2lkIDAsaT0hdGhpcy5fc3RhdGVzLmtpbGw7cmV0dXJuIHQmJnImJmkmJmUhPT1udWxsfWlzU3RvcHBlZCgpe3JldHVybiB0aGlzLl9zdGF0ZXMua2lsbH1pc0J1c3koKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmJsb2NraW5nfWN1cnJlbnRSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4/dGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4uZ2V0RGF0ZSgpOm51bGx9cHJldmlvdXNSdW4oKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuP3RoaXMuX3N0YXRlcy5wcmV2aW91c1J1bi5nZXREYXRlKCk6bnVsbH1tc1RvTmV4dChlKXtsZXQgdD10aGlzLl9uZXh0KGUpO3JldHVybiB0P2UgaW5zdGFuY2VvZiBtaXx8ZSBpbnN0YW5jZW9mIERhdGU/dC5nZXRUaW1lKCktZS5nZXRUaW1lKCk6dC5nZXRUaW1lKCktbmV3IG1pKGUpLmdldFRpbWUoKTpudWxsfXN0b3AoKXt0aGlzLl9zdGF0ZXMua2lsbD0hMCx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQpO2xldCBlPW84LmluZGV4T2YodGhpcyk7ZT49MCYmbzguc3BsaWNlKGUsMSl9cGF1c2UoKXtyZXR1cm4gdGhpcy5fc3RhdGVzLnBhdXNlZD0hMCwhdGhpcy5fc3RhdGVzLmtpbGx9cmVzdW1lKCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5wYXVzZWQ9ITEsIXRoaXMuX3N0YXRlcy5raWxsfXNjaGVkdWxlKGUpe2lmKGUmJnRoaXMuZm4pdGhyb3cgbmV3IEVycm9yKCJDcm9uOiBJdCBpcyBub3QgYWxsb3dlZCB0byBzY2hlZHVsZSB0d28gZnVuY3Rpb25zIHVzaW5nIHRoZSBzYW1lIENyb25lciBpbnN0YW5jZS4iKTtlJiYodGhpcy5mbj1lKTtsZXQgdD10aGlzLm1zVG9OZXh0KCkscj10aGlzLm5leHRSdW4odGhpcy5fc3RhdGVzLmN1cnJlbnRSdW4pO3JldHVybiB0PT1udWxsfHxpc05hTih0KXx8cj09PW51bGw/dGhpczoodD51SWUmJih0PXVJZSksdGhpcy5fc3RhdGVzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9PnRoaXMuX2NoZWNrVHJpZ2dlcihyKSx0KSx0aGlzLl9zdGF0ZXMuY3VycmVudFRpbWVvdXQmJnRoaXMub3B0aW9ucy51bnJlZiYmVUFyKHRoaXMuX3N0YXRlcy5jdXJyZW50VGltZW91dCksdGhpcyl9YXN5bmMgX3RyaWdnZXIoZSl7dGhpcy5fc3RhdGVzLmJsb2NraW5nPSEwLHRoaXMuX3N0YXRlcy5jdXJyZW50UnVuPW5ldyBtaSh2b2lkIDAsdGhpcy5nZXRUeigpKTt0cnl7aWYodGhpcy5vcHRpb25zLmNhdGNoKXRyeXt0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWNhdGNoKHQpe2lmKGttKHRoaXMub3B0aW9ucy5jYXRjaCkpdHJ5e3RoaXMub3B0aW9ucy5jYXRjaCh0LHRoaXMpfWNhdGNoe319ZWxzZSB0aGlzLmZuIT09dm9pZCAwJiZhd2FpdCB0aGlzLmZuKHRoaXMsdGhpcy5vcHRpb25zLmNvbnRleHQpfWZpbmFsbHl7dGhpcy5fc3RhdGVzLnByZXZpb3VzUnVuPW5ldyBtaShlLHRoaXMuZ2V0VHooKSksdGhpcy5fc3RhdGVzLmJsb2NraW5nPSExfX1hc3luYyB0cmlnZ2VyKCl7YXdhaXQgdGhpcy5fdHJpZ2dlcigpfXJ1bnNMZWZ0KCl7cmV0dXJuIHRoaXMuX3N0YXRlcy5tYXhSdW5zfV9jaGVja1RyaWdnZXIoZSl7bGV0IHQ9bmV3IERhdGUscj0hdGhpcy5fc3RhdGVzLnBhdXNlZCYmdC5nZXRUaW1lKCk+PWUuZ2V0VGltZSgpLGk9dGhpcy5fc3RhdGVzLmJsb2NraW5nJiZ0aGlzLm9wdGlvbnMucHJvdGVjdDtyJiYhaT8odGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zLS0sdGhpcy5fdHJpZ2dlcigpKTpyJiZpJiZrbSh0aGlzLm9wdGlvbnMucHJvdGVjdCkmJnNldFRpbWVvdXQoKCk9PnRoaXMub3B0aW9ucy5wcm90ZWN0KHRoaXMpLDApLHRoaXMuc2NoZWR1bGUoKX1fbmV4dChlKXtsZXQgdD0hIShlfHx0aGlzLl9zdGF0ZXMuY3VycmVudFJ1bikscj0hMTshZSYmdGhpcy5vcHRpb25zLnN0YXJ0QXQmJnRoaXMub3B0aW9ucy5pbnRlcnZhbCYmKFtlLHRdPXRoaXMuX2NhbGN1bGF0ZVByZXZpb3VzUnVuKGUsdCkscj0hZSksZT1uZXcgbWkoZSx0aGlzLmdldFR6KCkpLHRoaXMub3B0aW9ucy5zdGFydEF0JiZlJiZlLmdldFRpbWUoKTx0aGlzLm9wdGlvbnMuc3RhcnRBdC5nZXRUaW1lKCkmJihlPXRoaXMub3B0aW9ucy5zdGFydEF0KTtsZXQgaT10aGlzLl9zdGF0ZXMub25jZXx8bmV3IG1pKGUsdGhpcy5nZXRUeigpKTtyZXR1cm4hciYmaSE9PXRoaXMuX3N0YXRlcy5vbmNlJiYoaT1pLmluY3JlbWVudCh0aGlzLl9zdGF0ZXMucGF0dGVybix0aGlzLm9wdGlvbnMsdCkpLHRoaXMuX3N0YXRlcy5vbmNlJiZ0aGlzLl9zdGF0ZXMub25jZS5nZXRUaW1lKCk8PWUuZ2V0VGltZSgpfHxpPT09bnVsbHx8dGhpcy5fc3RhdGVzLm1heFJ1bnMhPT12b2lkIDAmJnRoaXMuX3N0YXRlcy5tYXhSdW5zPD0wfHx0aGlzLl9zdGF0ZXMua2lsbHx8dGhpcy5vcHRpb25zLnN0b3BBdCYmaS5nZXRUaW1lKCk+PXRoaXMub3B0aW9ucy5zdG9wQXQuZ2V0VGltZSgpP251bGw6aX1fcHJldmlvdXMoZSl7bGV0IHQ9bmV3IG1pKGUsdGhpcy5nZXRUeigpKTt0aGlzLm9wdGlvbnMuc3RvcEF0JiZ0LmdldFRpbWUoKT50aGlzLm9wdGlvbnMuc3RvcEF0LmdldFRpbWUoKSYmKHQ9dGhpcy5vcHRpb25zLnN0b3BBdCk7bGV0IHI9bmV3IG1pKHQsdGhpcy5nZXRUeigpKTtyZXR1cm4gdGhpcy5fc3RhdGVzLm9uY2U/dGhpcy5fc3RhdGVzLm9uY2UuZ2V0VGltZSgpPHQuZ2V0VGltZSgpP3RoaXMuX3N0YXRlcy5vbmNlOm51bGw6KHI9ci5kZWNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zKSxyPT09bnVsbHx8dGhpcy5vcHRpb25zLnN0YXJ0QXQmJnIuZ2V0VGltZSgpPHRoaXMub3B0aW9ucy5zdGFydEF0LmdldFRpbWUoKT9udWxsOnIpfV9jYWxjdWxhdGVQcmV2aW91c1J1bihlLHQpe2xldCByPW5ldyBtaSh2b2lkIDAsdGhpcy5nZXRUeigpKSxpPWU7aWYodGhpcy5vcHRpb25zLnN0YXJ0QXQuZ2V0VGltZSgpPD1yLmdldFRpbWUoKSl7aT10aGlzLm9wdGlvbnMuc3RhcnRBdDtsZXQgYT1pLmdldFRpbWUoKSt0aGlzLm9wdGlvbnMuaW50ZXJ2YWwqMWUzO2Zvcig7YTw9ci5nZXRUaW1lKCk7KWk9bmV3IG1pKGksdGhpcy5nZXRUeigpKS5pbmNyZW1lbnQodGhpcy5fc3RhdGVzLnBhdHRlcm4sdGhpcy5vcHRpb25zLCEwKSxhPWkuZ2V0VGltZSgpK3RoaXMub3B0aW9ucy5pbnRlcnZhbCoxZTM7dD0hMH1yZXR1cm4gaT09PW51bGwmJihpPXZvaWQgMCksW2ksdF19fX0pO3ZhciB3eix6bSxXQXIsdTRpLF9zLE16LHdhLFJuLHM4LHlRLEYwLGw4LGt6LFN6LHp6LEN6LF82LGM4LHl6LG1JZSx3USxNUSxnSWUsa1EsUnQ9cCgoKT0+e3d6PTcsem09MzY1LjI0MjUsV0FyPU1hdGgucG93KDEwLDgpKjI0KjYwKjYwKjFlMyx1NGk9LVdBcixfcz02MDQ4ZTUsTXo9ODY0ZTUsd2E9NmU0LFJuPTM2ZTUsczg9MWUzLHlRPTUyNTYwMCxGMD00MzIwMCxsOD0xNDQwLGt6PTYwLFN6PTMseno9MTIsQ3o9NCxfNj0zNjAwLGM4PTYwLHl6PV82KjI0LG1JZT15eio3LHdRPXl6KjM2NS4yNDI1LE1RPXdRLzEyLGdJZT1NUSozLGtRPVN5bWJvbC5mb3IoImNvbnN0cnVjdERhdGVGcm9tIil9KTtmdW5jdGlvbiBOZShlLHQpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9lKHQpOmUmJnR5cGVvZiBlPT0ib2JqZWN0IiYma1EgaW4gZT9lW2tRXSh0KTplIGluc3RhbmNlb2YgRGF0ZT9uZXcgZS5jb25zdHJ1Y3Rvcih0KTpuZXcgRGF0ZSh0KX12YXIgZjRpLGd0PXAoKCk9PntSdCgpO2Y0aT1OZX0pO2Z1bmN0aW9uIGNlKGUsdCl7cmV0dXJuIE5lKHR8fGUsZSl9dmFyIGI0aSxSZT1wKCgpPT57Z3QoKTtiNGk9Y2V9KTtmdW5jdGlvbiBnaShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbik7cmV0dXJuIGlzTmFOKHQpP05lKHI/LmlufHxlLE5hTik6KHQmJmkuc2V0RGF0ZShpLmdldERhdGUoKSt0KSxpKX12YXIgdzRpLExzPXAoKCk9PntndCgpO1JlKCk7dzRpPWdpfSk7ZnVuY3Rpb24gQXMoZSx0LHIpe2xldCBpPWNlKGUscj8uaW4pO2lmKGlzTmFOKHQpKXJldHVybiBOZShyPy5pbnx8ZSxOYU4pO2lmKCF0KXJldHVybiBpO2xldCBhPWkuZ2V0RGF0ZSgpLG49TmUocj8uaW58fGUsaS5nZXRUaW1lKCkpO24uc2V0TW9udGgoaS5nZXRNb250aCgpK3QrMSwwKTtsZXQgbz1uLmdldERhdGUoKTtyZXR1cm4gYT49bz9uOihpLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSxuLmdldE1vbnRoKCksYSksaSl9dmFyIHo0aSxkOD1wKCgpPT57Z3QoKTtSZSgpO3o0aT1Bc30pO2Z1bmN0aW9uIE8wKGUsdCxyKXtsZXR7eWVhcnM6aT0wLG1vbnRoczphPTAsd2Vla3M6bj0wLGRheXM6bz0wLGhvdXJzOnM9MCxtaW51dGVzOmw9MCxzZWNvbmRzOmM9MH09dCx1PWNlKGUscj8uaW4pLGQ9YXx8aT9Bcyh1LGEraSoxMik6dSxoPW98fG4/Z2koZCxvK24qNyk6ZCxmPWwrcyo2MCx2PShjK2YqNjApKjFlMztyZXR1cm4gTmUocj8uaW58fGUsK2grdil9dmFyIEQ0aSxTUT1wKCgpPT57THMoKTtkOCgpO2d0KCk7UmUoKTtENGk9TzB9KTtmdW5jdGlvbiBUeihlLHQpe3JldHVybiBjZShlLHQ/LmluKS5nZXREYXkoKT09PTZ9dmFyIEk0aSx6UT1wKCgpPT57UmUoKTtJNGk9VHp9KTtmdW5jdGlvbiBfeihlLHQpe3JldHVybiBjZShlLHQ/LmluKS5nZXREYXkoKT09PTB9dmFyIEY0aSxDUT1wKCgpPT57UmUoKTtGNGk9X3p9KTtmdW5jdGlvbiBEcyhlLHQpe2xldCByPWNlKGUsdD8uaW4pLmdldERheSgpO3JldHVybiByPT09MHx8cj09PTZ9dmFyIEI0aSxDbT1wKCgpPT57UmUoKTtCNGk9RHN9KTtmdW5jdGlvbiBMeihlLHQscil7bGV0IGk9Y2UoZSxyPy5pbiksYT1EcyhpLHIpO2lmKGlzTmFOKHQpKXJldHVybiBOZShyPy5pbixOYU4pO2xldCBuPWkuZ2V0SG91cnMoKSxvPXQ8MD8tMToxLHM9TWF0aC50cnVuYyh0LzUpO2kuc2V0RGF0ZShpLmdldERhdGUoKStzKjcpO2xldCBsPU1hdGguYWJzKHQlNSk7Zm9yKDtsPjA7KWkuc2V0RGF0ZShpLmdldERhdGUoKStvKSxEcyhpLHIpfHwobC09MSk7cmV0dXJuIGEmJkRzKGkscikmJnQhPT0wJiYoVHooaSxyKSYmaS5zZXREYXRlKGkuZ2V0RGF0ZSgpKyhvPDA/MjotMSkpLF96KGkscikmJmkuc2V0RGF0ZShpLmdldERhdGUoKSsobzwwPzE6LTIpKSksaS5zZXRIb3VycyhuKSxpfXZhciBHNGksVFE9cCgoKT0+e2d0KCk7elEoKTtDUSgpO0NtKCk7UmUoKTtHNGk9THp9KTtmdW5jdGlvbiBSMChlLHQscil7cmV0dXJuIE5lKHI/LmlufHxlLCtjZShlKSt0KX12YXIgUTRpLFRtPXAoKCk9PntndCgpO1JlKCk7UTRpPVIwfSk7ZnVuY3Rpb24gQXooZSx0LHIpe3JldHVybiBSMChlLHQqUm4scil9dmFyIHQzaSxfUT1wKCgpPT57VG0oKTtSdCgpO3QzaT1Ben0pO2Z1bmN0aW9uIEVyKCl7cmV0dXJuIGJJZX1mdW5jdGlvbiB2SWUoZSl7YkllPWV9dmFyIGJJZSxNYT1wKCgpPT57YkllPXt9fSk7ZnVuY3Rpb24gZTEoZSx0KXtsZXQgcj1FcigpLGk9dD8ud2Vla1N0YXJ0c09uPz90Py5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/ci53ZWVrU3RhcnRzT24/P3IubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsYT1jZShlLHQ/LmluKSxuPWEuZ2V0RGF5KCksbz0objxpPzc6MCkrbi1pO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktbyksYS5zZXRIb3VycygwLDAsMCwwKSxhfXZhciBvM2ksZjI9cCgoKT0+e01hKCk7UmUoKTtvM2k9ZTF9KTtmdW5jdGlvbiByaShlLHQpe3JldHVybiBlMShlLHsuLi50LHdlZWtTdGFydHNPbjoxfSl9dmFyIGMzaSxFcz1wKCgpPT57ZjIoKTtjM2k9cml9KTtmdW5jdGlvbiBHYShlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9ci5nZXRGdWxsWWVhcigpLGE9TmUociwwKTthLnNldEZ1bGxZZWFyKGkrMSwwLDQpLGEuc2V0SG91cnMoMCwwLDAsMCk7bGV0IG49cmkoYSksbz1OZShyLDApO28uc2V0RnVsbFllYXIoaSwwLDQpLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9cmkobyk7cmV0dXJuIHIuZ2V0VGltZSgpPj1uLmdldFRpbWUoKT9pKzE6ci5nZXRUaW1lKCk+PXMuZ2V0VGltZSgpP2k6aS0xfXZhciBmM2ksQjA9cCgoKT0+e2d0KCk7RXMoKTtSZSgpO2YzaT1HYX0pO2Z1bmN0aW9uIEUxKGUpe2xldCB0PWNlKGUpLHI9bmV3IERhdGUoRGF0ZS5VVEModC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSx0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCksdC5nZXRNaWxsaXNlY29uZHMoKSkpO3JldHVybiByLnNldFVUQ0Z1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSksK2UtK3J9dmFyIGpsPXAoKCk9PntSZSgpfSk7ZnVuY3Rpb24gdXQoZSwuLi50KXtsZXQgcj1OZS5iaW5kKG51bGwsZXx8dC5maW5kKGk9PnR5cGVvZiBpPT0ib2JqZWN0IikpO3JldHVybiB0Lm1hcChyKX12YXIganI9cCgoKT0+e2d0KCl9KTtmdW5jdGlvbiAkcyhlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiByLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIHczaSxfbT1wKCgpPT57UmUoKTt3M2k9JHN9KTtmdW5jdGlvbiBJaShlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KSxuPSRzKGkpLG89JHMoYSkscz0rbi1FMShuKSxsPStvLUUxKG8pO3JldHVybiBNYXRoLnJvdW5kKChzLWwpL016KX12YXIgVDNpLFZsPXAoKCk9PntqbCgpO2pyKCk7UnQoKTtfbSgpO1QzaT1JaX0pO2Z1bmN0aW9uIEJuKGUsdCl7bGV0IHI9R2EoZSx0KSxpPU5lKHQ/LmlufHxlLDApO3JldHVybiBpLnNldEZ1bGxZZWFyKHIsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApLHJpKGkpfXZhciBFM2ksdTg9cCgoKT0+e2d0KCk7QjAoKTtFcygpO0UzaT1Cbn0pO2Z1bmN0aW9uIER6KGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKSxhPUlpKGksQm4oaSxyKSksbj1OZShyPy5pbnx8ZSwwKTtyZXR1cm4gbi5zZXRGdWxsWWVhcih0LDAsNCksbi5zZXRIb3VycygwLDAsMCwwKSxpPUJuKG4pLGkuc2V0RGF0ZShpLmdldERhdGUoKSthKSxpfXZhciBPM2ksTFE9cCgoKT0+e2d0KCk7VmwoKTt1OCgpO1JlKCk7TzNpPUR6fSk7ZnVuY3Rpb24gRXooZSx0LHIpe3JldHVybiBEeihlLEdhKGUscikrdCxyKX12YXIgcTNpLEFRPXAoKCk9PntCMCgpO0xRKCk7cTNpPUV6fSk7ZnVuY3Rpb24gcDgoZSx0LHIpe2xldCBpPWNlKGUscj8uaW4pO3JldHVybiBpLnNldFRpbWUoaS5nZXRUaW1lKCkrdCp3YSksaX12YXIgVzNpLCR6PXAoKCk9PntSdCgpO1JlKCk7VzNpPXA4fSk7ZnVuY3Rpb24gaDgoZSx0LHIpe3JldHVybiBBcyhlLHQqMyxyKX12YXIgWjNpLEl6PXAoKCk9PntkOCgpO1ozaT1oOH0pO2Z1bmN0aW9uIFB6KGUsdCxyKXtyZXR1cm4gUjAoZSx0KjFlMyxyKX12YXIgSjNpLERRPXAoKCk9PntUbSgpO0ozaT1Qen0pO2Z1bmN0aW9uIEgwKGUsdCxyKXtyZXR1cm4gZ2koZSx0Kjcscil9dmFyIHQ2aSxMbT1wKCgpPT57THMoKTt0Nmk9SDB9KTtmdW5jdGlvbiBOeihlLHQscil7cmV0dXJuIEFzKGUsdCoxMixyKX12YXIgYTZpLEVRPXAoKCk9PntkOCgpO2E2aT1Oen0pO2Z1bmN0aW9uIHhJZShlLHQscil7bGV0W2ksYV09WytjZShlLnN0YXJ0LHI/LmluKSwrY2UoZS5lbmQscj8uaW4pXS5zb3J0KChzLGwpPT5zLWwpLFtuLG9dPVsrY2UodC5zdGFydCxyPy5pbiksK2NlKHQuZW5kLHI/LmluKV0uc29ydCgocyxsKT0+cy1sKTtyZXR1cm4gcj8uaW5jbHVzaXZlP2k8PW8mJm48PWE6aTxvJiZuPGF9dmFyIHM2aSx5SWU9cCgoKT0+e1JlKCk7czZpPXhJZX0pO2Z1bmN0aW9uIEZ6KGUsdCl7bGV0IHIsaT10Py5pbjtyZXR1cm4gZS5mb3JFYWNoKGE9PnshaSYmdHlwZW9mIGE9PSJvYmplY3QiJiYoaT1OZS5iaW5kKG51bGwsYSkpO2xldCBuPWNlKGEsaSk7KCFyfHxyPG58fGlzTmFOKCtuKSkmJihyPW4pfSksTmUoaSxyfHxOYU4pfXZhciB1NmksJFE9cCgoKT0+e2d0KCk7UmUoKTt1Nmk9Rnp9KTtmdW5jdGlvbiBPeihlLHQpe2xldCByLGk9dD8uaW47cmV0dXJuIGUuZm9yRWFjaChhPT57IWkmJnR5cGVvZiBhPT0ib2JqZWN0IiYmKGk9TmUuYmluZChudWxsLGEpKTtsZXQgbj1jZShhLGkpOyghcnx8cj5ufHxpc05hTigrbikpJiYocj1uKX0pLE5lKGkscnx8TmFOKX12YXIgbTZpLElRPXAoKCk9PntndCgpO1JlKCk7bTZpPU96fSk7ZnVuY3Rpb24gd0llKGUsdCxyKXtsZXRbaSxhLG5dPXV0KHI/LmluLGUsdC5zdGFydCx0LmVuZCk7cmV0dXJuIE96KFtGeihbaSxhXSxyKSxuXSxyKX12YXIgeTZpLE1JZT1wKCgpPT57anIoKTskUSgpO0lRKCk7eTZpPXdJZX0pO2Z1bmN0aW9uIFJ6KGUsdCl7bGV0IHI9K2NlKGUpO2lmKGlzTmFOKHIpKXJldHVybiBOYU47bGV0IGksYTtyZXR1cm4gdC5mb3JFYWNoKChuLG8pPT57bGV0IHM9Y2Uobik7aWYoaXNOYU4oK3MpKXtpPU5hTixhPU5hTjtyZXR1cm59bGV0IGw9TWF0aC5hYnMoci0rcyk7KGk9PW51bGx8fGw8YSkmJihpPW8sYT1sKX0pLGl9dmFyIGs2aSxQUT1wKCgpPT57UmUoKTtrNmk9Unp9KTtmdW5jdGlvbiBrSWUoZSx0LHIpe2xldFtpLC4uLmFdPXV0KHI/LmluLGUsLi4udCksbj1SeihpLGEpO2lmKHR5cGVvZiBuPT0ibnVtYmVyIiYmaXNOYU4obikpcmV0dXJuIE5lKGksTmFOKTtpZihuIT09dm9pZCAwKXJldHVybiBhW25dfXZhciBfNmksU0llPXAoKCk9PntqcigpO1BRKCk7Z3QoKTtfNmk9a0llfSk7ZnVuY3Rpb24ga2EoZSx0KXtsZXQgcj0rY2UoZSktK2NlKHQpO3JldHVybiByPDA/LTE6cj4wPzE6cn12YXIgRDZpLEw2PXAoKCk9PntSZSgpO0Q2aT1rYX0pO2Z1bmN0aW9uIHpJZShlLHQpe2xldCByPStjZShlKS0rY2UodCk7cmV0dXJuIHI+MD8tMTpyPDA/MTpyfXZhciBJNmksQ0llPXAoKCk9PntSZSgpO0k2aT16SWV9KTtmdW5jdGlvbiBRdChlKXtyZXR1cm4gTmUoZSxEYXRlLm5vdygpKX12YXIgRjZpLGJpPXAoKCk9PntndCgpO0Y2aT1RdH0pO2Z1bmN0aW9uIFRJZShlKXtsZXQgdD1NYXRoLnRydW5jKGUvNyk7cmV0dXJuIHQ9PT0wPzA6dH12YXIgQjZpLF9JZT1wKCgpPT57UnQoKTtCNmk9VEllfSk7ZnVuY3Rpb24gSXMoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCk7cmV0dXJuKyRzKGkpPT0rJHMoYSl9dmFyIFY2aSxmOD1wKCgpPT57anIoKTtfbSgpO1Y2aT1Jc30pO2Z1bmN0aW9uIEJ6KGUpe3JldHVybiBlIGluc3RhbmNlb2YgRGF0ZXx8dHlwZW9mIGU9PSJvYmplY3QiJiZPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBEYXRlXSJ9dmFyIFc2aSxOUT1wKCgpPT57VzZpPUJ6fSk7ZnVuY3Rpb24gWGkoZSl7cmV0dXJuISghQnooZSkmJnR5cGVvZiBlIT0ibnVtYmVyInx8aXNOYU4oK2NlKGUpKSl9dmFyIFg2aSxVbD1wKCgpPT57TlEoKTtSZSgpO1g2aT1YaX0pO2Z1bmN0aW9uIExJZShlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtpZighWGkoaSl8fCFYaShhKSlyZXR1cm4gTmFOO2xldCBuPUlpKGksYSksbz1uPDA/LTE6MSxzPU1hdGgudHJ1bmMobi83KSxsPXMqNSxjPWdpKGEscyo3KTtmb3IoOyFJcyhpLGMpOylsKz1EcyhjLHIpPzA6byxjPWdpKGMsbyk7cmV0dXJuIGw9PT0wPzA6bH12YXIgYWRpLEFJZT1wKCgpPT57anIoKTtMcygpO1ZsKCk7ZjgoKTtVbCgpO0NtKCk7YWRpPUxJZX0pO2Z1bmN0aW9uIEh6KGUsdCxyKXtsZXRbaSxhXT11dChyPy5pbixlLHQpO3JldHVybiBHYShpLHIpLUdhKGEscil9dmFyIGxkaSxGUT1wKCgpPT57anIoKTtCMCgpO2xkaT1Ien0pO2Z1bmN0aW9uIERJZShlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KSxuPXJpKGkpLG89cmkoYSkscz0rbi1FMShuKSxsPStvLUUxKG8pO3JldHVybiBNYXRoLnJvdW5kKChzLWwpL19zKX12YXIgZmRpLEVJZT1wKCgpPT57amwoKTtqcigpO1J0KCk7RXMoKTtmZGk9REllfSk7ZnVuY3Rpb24gQTYoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCksbj1pLmdldEZ1bGxZZWFyKCktYS5nZXRGdWxsWWVhcigpLG89aS5nZXRNb250aCgpLWEuZ2V0TW9udGgoKTtyZXR1cm4gbioxMitvfXZhciBiZGkscXo9cCgoKT0+e2pyKCk7YmRpPUE2fSk7ZnVuY3Rpb24gQW0oZSx0KXtsZXQgcj1jZShlLHQ/LmluKTtyZXR1cm4gTWF0aC50cnVuYyhyLmdldE1vbnRoKCkvMykrMX12YXIgeWRpLE9RPXAoKCk9PntSZSgpO3lkaT1BbX0pO2Z1bmN0aW9uIG04KGUsdCxyKXtsZXRbaSxhXT11dChyPy5pbixlLHQpLG49aS5nZXRGdWxsWWVhcigpLWEuZ2V0RnVsbFllYXIoKSxvPUFtKGkpLUFtKGEpO3JldHVybiBuKjQrb312YXIgU2RpLFJRPXAoKCk9PntqcigpO09RKCk7U2RpPW04fSk7ZnVuY3Rpb24gRDYoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCksbj1lMShpLHIpLG89ZTEoYSxyKSxzPStuLUUxKG4pLGw9K28tRTEobyk7cmV0dXJuIE1hdGgucm91bmQoKHMtbCkvX3MpfXZhciBBZGksano9cCgoKT0+e2psKCk7anIoKTtSdCgpO2YyKCk7QWRpPUQ2fSk7ZnVuY3Rpb24gcTAoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCk7cmV0dXJuIGkuZ2V0RnVsbFllYXIoKS1hLmdldEZ1bGxZZWFyKCl9dmFyICRkaSxWej1wKCgpPT57anIoKTskZGk9cTB9KTtmdW5jdGlvbiBnOChlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KSxuPSRJZShpLGEpLG89TWF0aC5hYnMoSWkoaSxhKSk7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpLW4qbyk7bGV0IHM9KygkSWUoaSxhKT09PS1uKSxsPW4qKG8tcyk7cmV0dXJuIGw9PT0wPzA6bH1mdW5jdGlvbiAkSWUoZSx0KXtsZXQgcj1lLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfHxlLmdldE1vbnRoKCktdC5nZXRNb250aCgpfHxlLmdldERhdGUoKS10LmdldERhdGUoKXx8ZS5nZXRIb3VycygpLXQuZ2V0SG91cnMoKXx8ZS5nZXRNaW51dGVzKCktdC5nZXRNaW51dGVzKCl8fGUuZ2V0U2Vjb25kcygpLXQuZ2V0U2Vjb25kcygpfHxlLmdldE1pbGxpc2Vjb25kcygpLXQuZ2V0TWlsbGlzZWNvbmRzKCk7cmV0dXJuIHI8MD8tMTpyPjA/MTpyfXZhciBGZGksVXo9cCgoKT0+e2pyKCk7VmwoKTtGZGk9Zzh9KTtmdW5jdGlvbiBTYShlKXtyZXR1cm4gdD0+e2xldCBpPShlP01hdGhbZV06TWF0aC50cnVuYykodCk7cmV0dXJuIGk9PT0wPzA6aX19dmFyIFdsPXAoKCk9Pnt9KTtmdW5jdGlvbiBFNihlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KSxuPSgraS0rYSkvUm47cmV0dXJuIFNhKHI/LnJvdW5kaW5nTWV0aG9kKShuKX12YXIgamRpLFd6PXAoKCk9PntXbCgpO2pyKCk7UnQoKTtqZGk9RTZ9KTtmdW5jdGlvbiBHeihlLHQscil7cmV0dXJuIEV6KGUsLXQscil9dmFyIFdkaSxCUT1wKCgpPT57QVEoKTtXZGk9R3p9KTtmdW5jdGlvbiBJSWUoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCksbj1rYShpLGEpLG89TWF0aC5hYnMoSHooaSxhLHIpKSxzPUd6KGksbipvLHIpLGw9KyhrYShzLGEpPT09LW4pLGM9biooby1sKTtyZXR1cm4gYz09PTA/MDpjfXZhciBKZGksUEllPXAoKCk9PntqcigpO0w2KCk7RlEoKTtCUSgpO0pkaT1JSWV9KTtmdW5jdGlvbiBiOChlLHQpe3JldHVybitjZShlKS0rY2UodCl9dmFyIHQ1aSxZej1wKCgpPT57UmUoKTt0NWk9Yjh9KTtmdW5jdGlvbiAkNihlLHQscil7bGV0IGk9YjgoZSx0KS93YTtyZXR1cm4gU2Eocj8ucm91bmRpbmdNZXRob2QpKGkpfXZhciBvNWksWno9cCgoKT0+e1dsKCk7UnQoKTtZeigpO281aT0kNn0pO2Z1bmN0aW9uIHY4KGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7cmV0dXJuIHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBjNWksWHo9cCgoKT0+e1JlKCk7YzVpPXY4fSk7ZnVuY3Rpb24geDgoZSx0KXtsZXQgcj1jZShlLHQ/LmluKSxpPXIuZ2V0TW9udGgoKTtyZXR1cm4gci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCksaSsxLDApLHIuc2V0SG91cnMoMjMsNTksNTksOTk5KSxyfXZhciBwNWksUXo9cCgoKT0+e1JlKCk7cDVpPXg4fSk7ZnVuY3Rpb24gSnooZSx0KXtsZXQgcj1jZShlLHQ/LmluKTtyZXR1cm4rdjgocix0KT09K3g4KHIsdCl9dmFyIGI1aSxIUT1wKCgpPT57WHooKTtReigpO1JlKCk7YjVpPUp6fSk7ZnVuY3Rpb24gajAoZSx0LHIpe2xldFtpLGEsbl09dXQocj8uaW4sZSxlLHQpLG89a2EoYSxuKSxzPU1hdGguYWJzKEE2KGEsbikpO2lmKHM8MSlyZXR1cm4gMDthLmdldE1vbnRoKCk9PT0xJiZhLmdldERhdGUoKT4yNyYmYS5zZXREYXRlKDMwKSxhLnNldE1vbnRoKGEuZ2V0TW9udGgoKS1vKnMpO2xldCBsPWthKGEsbik9PT0tbztKeihpKSYmcz09PTEmJmthKGksbik9PT0xJiYobD0hMSk7bGV0IGM9byoocy0rbCk7cmV0dXJuIGM9PT0wPzA6Y312YXIgazVpLERtPXAoKCk9PntqcigpO0w2KCk7cXooKTtIUSgpO2s1aT1qMH0pO2Z1bmN0aW9uIE5JZShlLHQscil7bGV0IGk9ajAoZSx0LHIpLzM7cmV0dXJuIFNhKHI/LnJvdW5kaW5nTWV0aG9kKShpKX12YXIgVDVpLEZJZT1wKCgpPT57V2woKTtEbSgpO1Q1aT1OSWV9KTtmdW5jdGlvbiBQcyhlLHQscil7bGV0IGk9YjgoZSx0KS8xZTM7cmV0dXJuIFNhKHI/LnJvdW5kaW5nTWV0aG9kKShpKX12YXIgRDVpLEVtPXAoKCk9PntXbCgpO1l6KCk7RDVpPVBzfSk7ZnVuY3Rpb24gT0llKGUsdCxyKXtsZXQgaT1nOChlLHQscikvNztyZXR1cm4gU2Eocj8ucm91bmRpbmdNZXRob2QpKGkpfXZhciBQNWksUkllPXAoKCk9PntXbCgpO1V6KCk7UDVpPU9JZX0pO2Z1bmN0aW9uIEt6KGUsdCxyKXtsZXRbaSxhXT11dChyPy5pbixlLHQpLG49a2EoaSxhKSxvPU1hdGguYWJzKHEwKGksYSkpO2kuc2V0RnVsbFllYXIoMTU4NCksYS5zZXRGdWxsWWVhcigxNTg0KTtsZXQgcz1rYShpLGEpPT09LW4sbD1uKihvLStzKTtyZXR1cm4gbD09PTA/MDpsfXZhciBCNWkscVE9cCgoKT0+e2pyKCk7TDYoKTtWeigpO0I1aT1Len0pO2Z1bmN0aW9uIFBpKGUsdCl7bGV0W3IsaV09dXQoZSx0LnN0YXJ0LHQuZW5kKTtyZXR1cm57c3RhcnQ6cixlbmQ6aX19dmFyIE5zPXAoKCk9PntqcigpfSk7ZnVuY3Rpb24gZUMoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT0rcj4raSxuPWE/K3I6K2ksbz1hP2k6cjtvLnNldEhvdXJzKDAsMCwwLDApO2xldCBzPXQ/LnN0ZXA/PzE7aWYoIXMpcmV0dXJuW107czwwJiYocz0tcyxhPSFhKTtsZXQgbD1bXTtmb3IoOytvPD1uOylsLnB1c2goTmUocixvKSksby5zZXREYXRlKG8uZ2V0RGF0ZSgpK3MpLG8uc2V0SG91cnMoMCwwLDAsMCk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgVzVpLGpRPXAoKCk9PntOcygpO2d0KCk7VzVpPWVDfSk7ZnVuY3Rpb24gQkllKGUsdCl7bGV0e3N0YXJ0OnIsZW5kOml9PVBpKHQ/LmluLGUpLGE9K3I+K2ksbj1hPytyOitpLG89YT9pOnI7by5zZXRNaW51dGVzKDAsMCwwKTtsZXQgcz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKE5lKHIsbykpLG8uc2V0SG91cnMoby5nZXRIb3VycygpK3MpO3JldHVybiBhP2wucmV2ZXJzZSgpOmx9dmFyIFg1aSxISWU9cCgoKT0+e05zKCk7Z3QoKTtYNWk9QkllfSk7ZnVuY3Rpb24gcUllKGUsdCl7bGV0e3N0YXJ0OnIsZW5kOml9PVBpKHQ/LmluLGUpO3Iuc2V0U2Vjb25kcygwLDApO2xldCBhPStyPitpLG49YT8rcjoraSxvPWE/aTpyLHM9dD8uc3RlcD8/MTtpZighcylyZXR1cm5bXTtzPDAmJihzPS1zLGE9IWEpO2xldCBsPVtdO2Zvcig7K288PW47KWwucHVzaChOZShyLG8pKSxvPXA4KG8scyk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgdHVpLGpJZT1wKCgpPT57TnMoKTskeigpO2d0KCk7dHVpPXFJZX0pO2Z1bmN0aW9uIFZJZShlLHQpe2xldHtzdGFydDpyLGVuZDppfT1QaSh0Py5pbixlKSxhPStyPitpLG49YT8rcjoraSxvPWE/aTpyO28uc2V0SG91cnMoMCwwLDAsMCksby5zZXREYXRlKDEpO2xldCBzPXQ/LnN0ZXA/PzE7aWYoIXMpcmV0dXJuW107czwwJiYocz0tcyxhPSFhKTtsZXQgbD1bXTtmb3IoOytvPD1uOylsLnB1c2goTmUocixvKSksby5zZXRNb250aChvLmdldE1vbnRoKCkrcyk7cmV0dXJuIGE/bC5yZXZlcnNlKCk6bH12YXIgbnVpLFVJZT1wKCgpPT57TnMoKTtndCgpO251aT1WSWV9KTtmdW5jdGlvbiBGcyhlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpLGE9aS1pJTM7cmV0dXJuIHIuc2V0TW9udGgoYSwxKSxyLnNldEhvdXJzKDAsMCwwLDApLHJ9dmFyIGx1aSx0Qz1wKCgpPT57UmUoKTtsdWk9RnN9KTtmdW5jdGlvbiBXSWUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT0rcj4raSxuPWE/K0ZzKHIpOitGcyhpKSxvPWE/RnMoaSk6RnMocikscz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKE5lKHIsbykpLG89aDgobyxzKTtyZXR1cm4gYT9sLnJldmVyc2UoKTpsfXZhciBmdWksR0llPXAoKCk9PntOcygpO0l6KCk7Z3QoKTt0QygpO2Z1aT1XSWV9KTtmdW5jdGlvbiBZSWUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT0rcj4raSxuPWE/ZTEoaSx0KTplMShyLHQpLG89YT9lMShyLHQpOmUxKGksdCk7bi5zZXRIb3VycygxNSksby5zZXRIb3VycygxNSk7bGV0IHM9K28uZ2V0VGltZSgpLGw9bixjPXQ/LnN0ZXA/PzE7aWYoIWMpcmV0dXJuW107YzwwJiYoYz0tYyxhPSFhKTtsZXQgdT1bXTtmb3IoOytsPD1zOylsLnNldEhvdXJzKDApLHUucHVzaChOZShyLGwpKSxsPUgwKGwsYyksbC5zZXRIb3VycygxNSk7cmV0dXJuIGE/dS5yZXZlcnNlKCk6dX12YXIgeXVpLFpJZT1wKCgpPT57TnMoKTtMbSgpO2d0KCk7ZjIoKTt5dWk9WUllfSk7ZnVuY3Rpb24geTgoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT1lQyh7c3RhcnQ6cixlbmQ6aX0sdCksbj1bXSxvPTA7Zm9yKDtvPGEubGVuZ3RoOyl7bGV0IHM9YVtvKytdO0RzKHMpJiZuLnB1c2goTmUocixzKSl9cmV0dXJuIG59dmFyIEN1aSxyQz1wKCgpPT57TnMoKTtndCgpO2pRKCk7Q20oKTtDdWk9eTh9KTtmdW5jdGlvbiBWMChlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiByLnNldERhdGUoMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBMdWksJG09cCgoKT0+e1JlKCk7THVpPVYwfSk7ZnVuY3Rpb24gWEllKGUsdCl7bGV0IHI9VjAoZSx0KSxpPXg4KGUsdCk7cmV0dXJuIHk4KHtzdGFydDpyLGVuZDppfSx0KX12YXIgSXVpLFFJZT1wKCgpPT57ckMoKTtReigpOyRtKCk7SXVpPVhJZX0pO2Z1bmN0aW9uIGlDKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoaSsxLDAsMCksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEZ1aSxWUT1wKCgpPT57UmUoKTtGdWk9aUN9KTtmdW5jdGlvbiB3OChlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSwwLDEpLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgQnVpLGFDPXAoKCk9PntSZSgpO0J1aT13OH0pO2Z1bmN0aW9uIEpJZShlLHQpe2xldCByPXc4KGUsdCksaT1pQyhlLHQpO3JldHVybiB5OCh7c3RhcnQ6cixlbmQ6aX0sdCl9dmFyIFV1aSxLSWU9cCgoKT0+e3JDKCk7VlEoKTthQygpO1V1aT1KSWV9KTtmdW5jdGlvbiBlUGUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT0rcj4raSxuPWE/K3I6K2ksbz1hP2k6cjtvLnNldEhvdXJzKDAsMCwwLDApLG8uc2V0TW9udGgoMCwxKTtsZXQgcz10Py5zdGVwPz8xO2lmKCFzKXJldHVybltdO3M8MCYmKHM9LXMsYT0hYSk7bGV0IGw9W107Zm9yKDsrbzw9bjspbC5wdXNoKE5lKHIsbykpLG8uc2V0RnVsbFllYXIoby5nZXRGdWxsWWVhcigpK3MpO3JldHVybiBhP2wucmV2ZXJzZSgpOmx9dmFyIFp1aSx0UGU9cCgoKT0+e05zKCk7Z3QoKTtadWk9ZVBlfSk7ZnVuY3Rpb24gclBlKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCksYT05K01hdGguZmxvb3IoaS8xMCkqMTA7cmV0dXJuIHIuc2V0RnVsbFllYXIoYSwxMSwzMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEp1aSxpUGU9cCgoKT0+e1JlKCk7SnVpPXJQZX0pO2Z1bmN0aW9uIGFQZShlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiByLnNldE1pbnV0ZXMoNTksNTksOTk5KSxyfXZhciB0OGksblBlPXAoKCk9PntSZSgpO3Q4aT1hUGV9KTtmdW5jdGlvbiBuQyhlLHQpe2xldCByPUVyKCksaT10Py53ZWVrU3RhcnRzT24/P3Q/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxhPWNlKGUsdD8uaW4pLG49YS5nZXREYXkoKSxvPShuPGk/LTc6MCkrNi0obi1pKTtyZXR1cm4gYS5zZXREYXRlKGEuZ2V0RGF0ZSgpK28pLGEuc2V0SG91cnMoMjMsNTksNTksOTk5KSxhfXZhciBuOGksVVE9cCgoKT0+e01hKCk7UmUoKTtuOGk9bkN9KTtmdW5jdGlvbiBvUGUoZSx0KXtyZXR1cm4gbkMoZSx7Li4udCx3ZWVrU3RhcnRzT246MX0pfXZhciBsOGksc1BlPXAoKCk9PntVUSgpO2w4aT1vUGV9KTtmdW5jdGlvbiBsUGUoZSx0KXtsZXQgcj1HYShlLHQpLGk9TmUodD8uaW58fGUsMCk7aS5zZXRGdWxsWWVhcihyKzEsMCw0KSxpLnNldEhvdXJzKDAsMCwwLDApO2xldCBhPXJpKGksdCk7cmV0dXJuIGEuc2V0TWlsbGlzZWNvbmRzKGEuZ2V0TWlsbGlzZWNvbmRzKCktMSksYX12YXIgaDhpLGNQZT1wKCgpPT57Z3QoKTtCMCgpO0VzKCk7aDhpPWxQZX0pO2Z1bmN0aW9uIGRQZShlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiByLnNldFNlY29uZHMoNTksOTk5KSxyfXZhciBnOGksdVBlPXAoKCk9PntSZSgpO2c4aT1kUGV9KTtmdW5jdGlvbiBwUGUoZSx0KXtsZXQgcj1jZShlLHQ/LmluKSxpPXIuZ2V0TW9udGgoKSxhPWktaSUzKzM7cmV0dXJuIHIuc2V0TW9udGgoYSwwKSxyLnNldEhvdXJzKDIzLDU5LDU5LDk5OSkscn12YXIgeDhpLGhQZT1wKCgpPT57UmUoKTt4OGk9cFBlfSk7ZnVuY3Rpb24gZlBlKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7cmV0dXJuIHIuc2V0TWlsbGlzZWNvbmRzKDk5OSkscn12YXIgTThpLG1QZT1wKCgpPT57UmUoKTtNOGk9ZlBlfSk7ZnVuY3Rpb24gZ1BlKGUpe3JldHVybiB2OChEYXRlLm5vdygpLGUpfXZhciB6OGksYlBlPXAoKCk9PntYeigpO3o4aT1nUGV9KTtmdW5jdGlvbiB2UGUoZSl7bGV0IHQ9UXQoZT8uaW4pLHI9dC5nZXRGdWxsWWVhcigpLGk9dC5nZXRNb250aCgpLGE9dC5nZXREYXRlKCksbj1RdChlPy5pbik7cmV0dXJuIG4uc2V0RnVsbFllYXIocixpLGErMSksbi5zZXRIb3VycygyMyw1OSw1OSw5OTkpLGU/LmluP2UuaW4obik6bn12YXIgXzhpLHhQZT1wKCgpPT57YmkoKTtfOGk9dlBlfSk7ZnVuY3Rpb24geVBlKGUpe2xldCB0PVF0KGU/LmluKSxyPU5lKGU/LmluLDApO3JldHVybiByLnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksdC5nZXREYXRlKCktMSksci5zZXRIb3VycygyMyw1OSw1OSw5OTkpLHJ9dmFyIEU4aSx3UGU9cCgoKT0+e2d0KCk7YmkoKTtFOGk9eVBlfSk7dmFyIEdBcixNUGUsa1BlPXAoKCk9PntHQXI9e2xlc3NUaGFuWFNlY29uZHM6e29uZToibGVzcyB0aGFuIGEgc2Vjb25kIixvdGhlcjoibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzIn0seFNlY29uZHM6e29uZToiMSBzZWNvbmQiLG90aGVyOiJ7e2NvdW50fX0gc2Vjb25kcyJ9LGhhbGZBTWludXRlOiJoYWxmIGEgbWludXRlIixsZXNzVGhhblhNaW51dGVzOntvbmU6Imxlc3MgdGhhbiBhIG1pbnV0ZSIsb3RoZXI6Imxlc3MgdGhhbiB7e2NvdW50fX0gbWludXRlcyJ9LHhNaW51dGVzOntvbmU6IjEgbWludXRlIixvdGhlcjoie3tjb3VudH19IG1pbnV0ZXMifSxhYm91dFhIb3Vyczp7b25lOiJhYm91dCAxIGhvdXIiLG90aGVyOiJhYm91dCB7e2NvdW50fX0gaG91cnMifSx4SG91cnM6e29uZToiMSBob3VyIixvdGhlcjoie3tjb3VudH19IGhvdXJzIn0seERheXM6e29uZToiMSBkYXkiLG90aGVyOiJ7e2NvdW50fX0gZGF5cyJ9LGFib3V0WFdlZWtzOntvbmU6ImFib3V0IDEgd2VlayIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSB3ZWVrcyJ9LHhXZWVrczp7b25lOiIxIHdlZWsiLG90aGVyOiJ7e2NvdW50fX0gd2Vla3MifSxhYm91dFhNb250aHM6e29uZToiYWJvdXQgMSBtb250aCIsb3RoZXI6ImFib3V0IHt7Y291bnR9fSBtb250aHMifSx4TW9udGhzOntvbmU6IjEgbW9udGgiLG90aGVyOiJ7e2NvdW50fX0gbW9udGhzIn0sYWJvdXRYWWVhcnM6e29uZToiYWJvdXQgMSB5ZWFyIixvdGhlcjoiYWJvdXQge3tjb3VudH19IHllYXJzIn0seFllYXJzOntvbmU6IjEgeWVhciIsb3RoZXI6Int7Y291bnR9fSB5ZWFycyJ9LG92ZXJYWWVhcnM6e29uZToib3ZlciAxIHllYXIiLG90aGVyOiJvdmVyIHt7Y291bnR9fSB5ZWFycyJ9LGFsbW9zdFhZZWFyczp7b25lOiJhbG1vc3QgMSB5ZWFyIixvdGhlcjoiYWxtb3N0IHt7Y291bnR9fSB5ZWFycyJ9fSxNUGU9KGUsdCxyKT0+e2xldCBpLGE9R0FyW2VdO3JldHVybiB0eXBlb2YgYT09InN0cmluZyI/aT1hOnQ9PT0xP2k9YS5vbmU6aT1hLm90aGVyLnJlcGxhY2UoInt7Y291bnR9fSIsdC50b1N0cmluZygpKSxyPy5hZGRTdWZmaXg/ci5jb21wYXJpc29uJiZyLmNvbXBhcmlzb24+MD8iaW4gIitpOmkrIiBhZ28iOml9fSk7ZnVuY3Rpb24gb0MoZSl7cmV0dXJuKHQ9e30pPT57bGV0IHI9dC53aWR0aD9TdHJpbmcodC53aWR0aCk6ZS5kZWZhdWx0V2lkdGg7cmV0dXJuIGUuZm9ybWF0c1tyXXx8ZS5mb3JtYXRzW2UuZGVmYXVsdFdpZHRoXX19dmFyIFNQZT1wKCgpPT57fSk7dmFyIFlBcixaQXIsWEFyLHpQZSxDUGU9cCgoKT0+e1NQZSgpO1lBcj17ZnVsbDoiRUVFRSwgTU1NTSBkbywgeSIsbG9uZzoiTU1NTSBkbywgeSIsbWVkaXVtOiJNTU0gZCwgeSIsc2hvcnQ6Ik1NL2RkL3l5eXkifSxaQXI9e2Z1bGw6Img6bW06c3MgYSB6enp6Iixsb25nOiJoOm1tOnNzIGEgeiIsbWVkaXVtOiJoOm1tOnNzIGEiLHNob3J0OiJoOm1tIGEifSxYQXI9e2Z1bGw6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLGxvbmc6Int7ZGF0ZX19ICdhdCcge3t0aW1lfX0iLG1lZGl1bToie3tkYXRlfX0sIHt7dGltZX19IixzaG9ydDoie3tkYXRlfX0sIHt7dGltZX19In0selBlPXtkYXRlOm9DKHtmb3JtYXRzOllBcixkZWZhdWx0V2lkdGg6ImZ1bGwifSksdGltZTpvQyh7Zm9ybWF0czpaQXIsZGVmYXVsdFdpZHRoOiJmdWxsIn0pLGRhdGVUaW1lOm9DKHtmb3JtYXRzOlhBcixkZWZhdWx0V2lkdGg6ImZ1bGwifSl9fSk7dmFyIFFBcixUUGUsX1BlPXAoKCk9PntRQXI9e2xhc3RXZWVrOiInbGFzdCcgZWVlZSAnYXQnIHAiLHllc3RlcmRheToiJ3llc3RlcmRheSBhdCcgcCIsdG9kYXk6Iid0b2RheSBhdCcgcCIsdG9tb3Jyb3c6Iid0b21vcnJvdyBhdCcgcCIsbmV4dFdlZWs6ImVlZWUgJ2F0JyBwIixvdGhlcjoiUCJ9LFRQZT0oZSx0LHIsaSk9PlFBcltlXX0pO2Z1bmN0aW9uIE04KGUpe3JldHVybih0LHIpPT57bGV0IGk9cj8uY29udGV4dD9TdHJpbmcoci5jb250ZXh0KToic3RhbmRhbG9uZSIsYTtpZihpPT09ImZvcm1hdHRpbmciJiZlLmZvcm1hdHRpbmdWYWx1ZXMpe2xldCBvPWUuZGVmYXVsdEZvcm1hdHRpbmdXaWR0aHx8ZS5kZWZhdWx0V2lkdGgscz1yPy53aWR0aD9TdHJpbmcoci53aWR0aCk6bzthPWUuZm9ybWF0dGluZ1ZhbHVlc1tzXXx8ZS5mb3JtYXR0aW5nVmFsdWVzW29dfWVsc2V7bGV0IG89ZS5kZWZhdWx0V2lkdGgscz1yPy53aWR0aD9TdHJpbmcoci53aWR0aCk6ZS5kZWZhdWx0V2lkdGg7YT1lLnZhbHVlc1tzXXx8ZS52YWx1ZXNbb119bGV0IG49ZS5hcmd1bWVudENhbGxiYWNrP2UuYXJndW1lbnRDYWxsYmFjayh0KTp0O3JldHVybiBhW25dfX12YXIgTFBlPXAoKCk9Pnt9KTt2YXIgSkFyLEtBcixlRHIsdERyLHJEcixpRHIsYURyLEFQZSxEUGU9cCgoKT0+e0xQZSgpO0pBcj17bmFycm93OlsiQiIsIkEiXSxhYmJyZXZpYXRlZDpbIkJDIiwiQUQiXSx3aWRlOlsiQmVmb3JlIENocmlzdCIsIkFubm8gRG9taW5pIl19LEtBcj17bmFycm93OlsiMSIsIjIiLCIzIiwiNCJdLGFiYnJldmlhdGVkOlsiUTEiLCJRMiIsIlEzIiwiUTQiXSx3aWRlOlsiMXN0IHF1YXJ0ZXIiLCIybmQgcXVhcnRlciIsIjNyZCBxdWFydGVyIiwiNHRoIHF1YXJ0ZXIiXX0sZURyPXtuYXJyb3c6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxhYmJyZXZpYXRlZDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHdpZGU6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSx0RHI9e25hcnJvdzpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxzaG9ydDpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sYWJicmV2aWF0ZWQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3aWRlOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sckRyPXtuYXJyb3c6e2FtOiJhIixwbToicCIsbWlkbmlnaHQ6Im1pIixub29uOiJuIixtb3JuaW5nOiJtb3JuaW5nIixhZnRlcm5vb246ImFmdGVybm9vbiIsZXZlbmluZzoiZXZlbmluZyIsbmlnaHQ6Im5pZ2h0In0sYWJicmV2aWF0ZWQ6e2FtOiJBTSIscG06IlBNIixtaWRuaWdodDoibWlkbmlnaHQiLG5vb246Im5vb24iLG1vcm5pbmc6Im1vcm5pbmciLGFmdGVybm9vbjoiYWZ0ZXJub29uIixldmVuaW5nOiJldmVuaW5nIixuaWdodDoibmlnaHQifSx3aWRlOnthbToiYS5tLiIscG06InAubS4iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9fSxpRHI9e25hcnJvdzp7YW06ImEiLHBtOiJwIixtaWRuaWdodDoibWkiLG5vb246Im4iLG1vcm5pbmc6ImluIHRoZSBtb3JuaW5nIixhZnRlcm5vb246ImluIHRoZSBhZnRlcm5vb24iLGV2ZW5pbmc6ImluIHRoZSBldmVuaW5nIixuaWdodDoiYXQgbmlnaHQifSxhYmJyZXZpYXRlZDp7YW06IkFNIixwbToiUE0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoiaW4gdGhlIG1vcm5pbmciLGFmdGVybm9vbjoiaW4gdGhlIGFmdGVybm9vbiIsZXZlbmluZzoiaW4gdGhlIGV2ZW5pbmciLG5pZ2h0OiJhdCBuaWdodCJ9LHdpZGU6e2FtOiJhLm0uIixwbToicC5tLiIsbWlkbmlnaHQ6Im1pZG5pZ2h0Iixub29uOiJub29uIixtb3JuaW5nOiJpbiB0aGUgbW9ybmluZyIsYWZ0ZXJub29uOiJpbiB0aGUgYWZ0ZXJub29uIixldmVuaW5nOiJpbiB0aGUgZXZlbmluZyIsbmlnaHQ6ImF0IG5pZ2h0In19LGFEcj0oZSx0KT0+e2xldCByPU51bWJlcihlKSxpPXIlMTAwO2lmKGk+MjB8fGk8MTApc3dpdGNoKGklMTApe2Nhc2UgMTpyZXR1cm4gcisic3QiO2Nhc2UgMjpyZXR1cm4gcisibmQiO2Nhc2UgMzpyZXR1cm4gcisicmQifXJldHVybiByKyJ0aCJ9LEFQZT17b3JkaW5hbE51bWJlcjphRHIsZXJhOk04KHt2YWx1ZXM6SkFyLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxxdWFydGVyOk04KHt2YWx1ZXM6S0FyLGRlZmF1bHRXaWR0aDoid2lkZSIsYXJndW1lbnRDYWxsYmFjazplPT5lLTF9KSxtb250aDpNOCh7dmFsdWVzOmVEcixkZWZhdWx0V2lkdGg6IndpZGUifSksZGF5Ok04KHt2YWx1ZXM6dERyLGRlZmF1bHRXaWR0aDoid2lkZSJ9KSxkYXlQZXJpb2Q6TTgoe3ZhbHVlczpyRHIsZGVmYXVsdFdpZHRoOiJ3aWRlIixmb3JtYXR0aW5nVmFsdWVzOmlEcixkZWZhdWx0Rm9ybWF0dGluZ1dpZHRoOiJ3aWRlIn0pfX0pO2Z1bmN0aW9uIGs4KGUpe3JldHVybih0LHI9e30pPT57bGV0IGk9ci53aWR0aCxhPWkmJmUubWF0Y2hQYXR0ZXJuc1tpXXx8ZS5tYXRjaFBhdHRlcm5zW2UuZGVmYXVsdE1hdGNoV2lkdGhdLG49dC5tYXRjaChhKTtpZighbilyZXR1cm4gbnVsbDtsZXQgbz1uWzBdLHM9aSYmZS5wYXJzZVBhdHRlcm5zW2ldfHxlLnBhcnNlUGF0dGVybnNbZS5kZWZhdWx0UGFyc2VXaWR0aF0sbD1BcnJheS5pc0FycmF5KHMpP29EcihzLGQ9PmQudGVzdChvKSk6bkRyKHMsZD0+ZC50ZXN0KG8pKSxjO2M9ZS52YWx1ZUNhbGxiYWNrP2UudmFsdWVDYWxsYmFjayhsKTpsLGM9ci52YWx1ZUNhbGxiYWNrP3IudmFsdWVDYWxsYmFjayhjKTpjO2xldCB1PXQuc2xpY2Uoby5sZW5ndGgpO3JldHVybnt2YWx1ZTpjLHJlc3Q6dX19fWZ1bmN0aW9uIG5EcihlLHQpe2ZvcihsZXQgciBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0KGVbcl0pKXJldHVybiByfWZ1bmN0aW9uIG9EcihlLHQpe2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKHQoZVtyXSkpcmV0dXJuIHJ9dmFyIEVQZT1wKCgpPT57fSk7ZnVuY3Rpb24gJFBlKGUpe3JldHVybih0LHI9e30pPT57bGV0IGk9dC5tYXRjaChlLm1hdGNoUGF0dGVybik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IGE9aVswXSxuPXQubWF0Y2goZS5wYXJzZVBhdHRlcm4pO2lmKCFuKXJldHVybiBudWxsO2xldCBvPWUudmFsdWVDYWxsYmFjaz9lLnZhbHVlQ2FsbGJhY2soblswXSk6blswXTtvPXIudmFsdWVDYWxsYmFjaz9yLnZhbHVlQ2FsbGJhY2sobyk6bztsZXQgcz10LnNsaWNlKGEubGVuZ3RoKTtyZXR1cm57dmFsdWU6byxyZXN0OnN9fX12YXIgSVBlPXAoKCk9Pnt9KTt2YXIgc0RyLGxEcixjRHIsZERyLHVEcixwRHIsaERyLGZEcixtRHIsZ0RyLGJEcix2RHIsUFBlLE5QZT1wKCgpPT57RVBlKCk7SVBlKCk7c0RyPS9eKFxkKykodGh8c3R8bmR8cmQpPy9pLGxEcj0vXGQrL2ksY0RyPXtuYXJyb3c6L14oYnxhKS9pLGFiYnJldmlhdGVkOi9eKGJcLj9ccz9jXC4/fGJcLj9ccz9jXC4/XHM/ZVwuP3xhXC4/XHM/ZFwuP3xjXC4/XHM/ZVwuPykvaSx3aWRlOi9eKGJlZm9yZSBjaHJpc3R8YmVmb3JlIGNvbW1vbiBlcmF8YW5ubyBkb21pbml8Y29tbW9uIGVyYSkvaX0sZERyPXthbnk6Wy9eYi9pLC9eKGF8YykvaV19LHVEcj17bmFycm93Oi9eWzEyMzRdL2ksYWJicmV2aWF0ZWQ6L15xWzEyMzRdL2ksd2lkZTovXlsxMjM0XSh0aHxzdHxuZHxyZCk/IHF1YXJ0ZXIvaX0scERyPXthbnk6Wy8xL2ksLzIvaSwvMy9pLC80L2ldfSxoRHI9e25hcnJvdzovXltqZm1hc29uZF0vaSxhYmJyZXZpYXRlZDovXihqYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYykvaSx3aWRlOi9eKGphbnVhcnl8ZmVicnVhcnl8bWFyY2h8YXByaWx8bWF5fGp1bmV8anVseXxhdWd1c3R8c2VwdGVtYmVyfG9jdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2l9LGZEcj17bmFycm93OlsvXmovaSwvXmYvaSwvXm0vaSwvXmEvaSwvXm0vaSwvXmovaSwvXmovaSwvXmEvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV0sYW55OlsvXmphL2ksL15mL2ksL15tYXIvaSwvXmFwL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hdS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXX0sbURyPXtuYXJyb3c6L15bc210d2ZdL2ksc2hvcnQ6L14oc3V8bW98dHV8d2V8dGh8ZnJ8c2EpL2ksYWJicmV2aWF0ZWQ6L14oc3VufG1vbnx0dWV8d2VkfHRodXxmcml8c2F0KS9pLHdpZGU6L14oc3VuZGF5fG1vbmRheXx0dWVzZGF5fHdlZG5lc2RheXx0aHVyc2RheXxmcmlkYXl8c2F0dXJkYXkpL2l9LGdEcj17bmFycm93OlsvXnMvaSwvXm0vaSwvXnQvaSwvXncvaSwvXnQvaSwvXmYvaSwvXnMvaV0sYW55OlsvXnN1L2ksL15tL2ksL150dS9pLC9edy9pLC9edGgvaSwvXmYvaSwvXnNhL2ldfSxiRHI9e25hcnJvdzovXihhfHB8bWl8bnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2ksYW55Oi9eKFthcF1cLj9ccz9tXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pfSx2RHI9e2FueTp7YW06L15hL2kscG06L15wL2ksbWlkbmlnaHQ6L15taS9pLG5vb246L15uby9pLG1vcm5pbmc6L21vcm5pbmcvaSxhZnRlcm5vb246L2FmdGVybm9vbi9pLGV2ZW5pbmc6L2V2ZW5pbmcvaSxuaWdodDovbmlnaHQvaX19LFBQZT17b3JkaW5hbE51bWJlcjokUGUoe21hdGNoUGF0dGVybjpzRHIscGFyc2VQYXR0ZXJuOmxEcix2YWx1ZUNhbGxiYWNrOmU9PnBhcnNlSW50KGUsMTApfSksZXJhOms4KHttYXRjaFBhdHRlcm5zOmNEcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpkRHIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxxdWFydGVyOms4KHttYXRjaFBhdHRlcm5zOnVEcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpwRHIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSIsdmFsdWVDYWxsYmFjazplPT5lKzF9KSxtb250aDprOCh7bWF0Y2hQYXR0ZXJuczpoRHIsZGVmYXVsdE1hdGNoV2lkdGg6IndpZGUiLHBhcnNlUGF0dGVybnM6ZkRyLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSksZGF5Oms4KHttYXRjaFBhdHRlcm5zOm1EcixkZWZhdWx0TWF0Y2hXaWR0aDoid2lkZSIscGFyc2VQYXR0ZXJuczpnRHIsZGVmYXVsdFBhcnNlV2lkdGg6ImFueSJ9KSxkYXlQZXJpb2Q6azgoe21hdGNoUGF0dGVybnM6YkRyLGRlZmF1bHRNYXRjaFdpZHRoOiJhbnkiLHBhcnNlUGF0dGVybnM6dkRyLGRlZmF1bHRQYXJzZVdpZHRoOiJhbnkifSl9fSk7dmFyIHduLEo4aSxGUGU9cCgoKT0+e2tQZSgpO0NQZSgpO19QZSgpO0RQZSgpO05QZSgpO3duPXtjb2RlOiJlbi1VUyIsZm9ybWF0RGlzdGFuY2U6TVBlLGZvcm1hdExvbmc6elBlLGZvcm1hdFJlbGF0aXZlOlRQZSxsb2NhbGl6ZTpBUGUsbWF0Y2g6UFBlLG9wdGlvbnM6e3dlZWtTdGFydHNPbjowLGZpcnN0V2Vla0NvbnRhaW5zRGF0ZToxfX0sSjhpPXdufSk7dmFyIEk2PXAoKCk9PntGUGUoKX0pO2Z1bmN0aW9uIHNDKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7cmV0dXJuIElpKHIsdzgocikpKzF9dmFyIG5waSxXUT1wKCgpPT57VmwoKTthQygpO1JlKCk7bnBpPXNDfSk7ZnVuY3Rpb24gUzgoZSx0KXtsZXQgcj1jZShlLHQ/LmluKSxpPStyaShyKS0rQm4ocik7cmV0dXJuIE1hdGgucm91bmQoaS9fcykrMX12YXIgdXBpLGxDPXAoKCk9PntSdCgpO0VzKCk7dTgoKTtSZSgpO3VwaT1TOH0pO2Z1bmN0aW9uIFUwKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCksYT1FcigpLG49dD8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz90Py5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/YS5maXJzdFdlZWtDb250YWluc0RhdGU/P2EubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1OZSh0Py5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKGkrMSwwLG4pLG8uc2V0SG91cnMoMCwwLDAsMCk7bGV0IHM9ZTEobyx0KSxsPU5lKHQ/LmlufHxlLDApO2wuc2V0RnVsbFllYXIoaSwwLG4pLGwuc2V0SG91cnMoMCwwLDAsMCk7bGV0IGM9ZTEobCx0KTtyZXR1cm4rcj49K3M/aSsxOityPj0rYz9pOmktMX12YXIgYnBpLEltPXAoKCk9PntNYSgpO2d0KCk7ZjIoKTtSZSgpO2JwaT1VMH0pO2Z1bmN0aW9uIFA2KGUsdCl7bGV0IHI9RXIoKSxpPXQ/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/dD8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3IuZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz8xLGE9VTAoZSx0KSxuPU5lKHQ/LmlufHxlLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKGEsMCxpKSxuLnNldEhvdXJzKDAsMCwwLDApLGUxKG4sdCl9dmFyIGtwaSxjQz1wKCgpPT57TWEoKTtndCgpO0ltKCk7ZjIoKTtrcGk9UDZ9KTtmdW5jdGlvbiB6OChlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9K2UxKHIsdCktK1A2KHIsdCk7cmV0dXJuIE1hdGgucm91bmQoaS9fcykrMX12YXIgTHBpLGRDPXAoKCk9PntSdCgpO2YyKCk7Y0MoKTtSZSgpO0xwaT16OH0pO2Z1bmN0aW9uIG50KGUsdCl7bGV0IHI9ZTwwPyItIjoiIixpPU1hdGguYWJzKGUpLnRvU3RyaW5nKCkucGFkU3RhcnQodCwiMCIpO3JldHVybiByK2l9dmFyIE42PXAoKCk9Pnt9KTt2YXIgSG4sR1E9cCgoKT0+e042KCk7SG49e3koZSx0KXtsZXQgcj1lLmdldEZ1bGxZZWFyKCksaT1yPjA/cjoxLXI7cmV0dXJuIG50KHQ9PT0ieXkiP2klMTAwOmksdC5sZW5ndGgpfSxNKGUsdCl7bGV0IHI9ZS5nZXRNb250aCgpO3JldHVybiB0PT09Ik0iP1N0cmluZyhyKzEpOm50KHIrMSwyKX0sZChlLHQpe3JldHVybiBudChlLmdldERhdGUoKSx0Lmxlbmd0aCl9LGEoZSx0KXtsZXQgcj1lLmdldEhvdXJzKCkvMTI+PTE/InBtIjoiYW0iO3N3aXRjaCh0KXtjYXNlImEiOmNhc2UiYWEiOnJldHVybiByLnRvVXBwZXJDYXNlKCk7Y2FzZSJhYWEiOnJldHVybiByO2Nhc2UiYWFhYWEiOnJldHVybiByWzBdO2RlZmF1bHQ6cmV0dXJuIHI9PT0iYW0iPyJhLm0uIjoicC5tLiJ9fSxoKGUsdCl7cmV0dXJuIG50KGUuZ2V0SG91cnMoKSUxMnx8MTIsdC5sZW5ndGgpfSxIKGUsdCl7cmV0dXJuIG50KGUuZ2V0SG91cnMoKSx0Lmxlbmd0aCl9LG0oZSx0KXtyZXR1cm4gbnQoZS5nZXRNaW51dGVzKCksdC5sZW5ndGgpfSxzKGUsdCl7cmV0dXJuIG50KGUuZ2V0U2Vjb25kcygpLHQubGVuZ3RoKX0sUyhlLHQpe2xldCByPXQubGVuZ3RoLGk9ZS5nZXRNaWxsaXNlY29uZHMoKSxhPU1hdGgudHJ1bmMoaSpNYXRoLnBvdygxMCxyLTMpKTtyZXR1cm4gbnQoYSx0Lmxlbmd0aCl9fX0pO2Z1bmN0aW9uIE9QZShlLHQ9IiIpe2xldCByPWU+MD8iLSI6IisiLGk9TWF0aC5hYnMoZSksYT1NYXRoLnRydW5jKGkvNjApLG49aSU2MDtyZXR1cm4gbj09PTA/citTdHJpbmcoYSk6citTdHJpbmcoYSkrdCtudChuLDIpfWZ1bmN0aW9uIFJQZShlLHQpe3JldHVybiBlJTYwPT09MD8oZT4wPyItIjoiKyIpK250KE1hdGguYWJzKGUpLzYwLDIpOkY2KGUsdCl9ZnVuY3Rpb24gRjYoZSx0PSIiKXtsZXQgcj1lPjA/Ii0iOiIrIixpPU1hdGguYWJzKGUpLGE9bnQoTWF0aC50cnVuYyhpLzYwKSwyKSxuPW50KGklNjAsMik7cmV0dXJuIHIrYSt0K259dmFyIEM4LFBtLEJQZT1wKCgpPT57V1EoKTtsQygpO0IwKCk7ZEMoKTtJbSgpO042KCk7R1EoKTtDOD17YW06ImFtIixwbToicG0iLG1pZG5pZ2h0OiJtaWRuaWdodCIsbm9vbjoibm9vbiIsbW9ybmluZzoibW9ybmluZyIsYWZ0ZXJub29uOiJhZnRlcm5vb24iLGV2ZW5pbmc6ImV2ZW5pbmciLG5pZ2h0OiJuaWdodCJ9LFBtPXtHOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldEZ1bGxZZWFyKCk+MD8xOjA7c3dpdGNoKHQpe2Nhc2UiRyI6Y2FzZSJHRyI6Y2FzZSJHR0ciOnJldHVybiByLmVyYShpLHt3aWR0aDoiYWJicmV2aWF0ZWQifSk7Y2FzZSJHR0dHRyI6cmV0dXJuIHIuZXJhKGkse3dpZHRoOiJuYXJyb3cifSk7ZGVmYXVsdDpyZXR1cm4gci5lcmEoaSx7d2lkdGg6IndpZGUifSl9fSx5OmZ1bmN0aW9uKGUsdCxyKXtpZih0PT09InlvIil7bGV0IGk9ZS5nZXRGdWxsWWVhcigpLGE9aT4wP2k6MS1pO3JldHVybiByLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoieWVhciJ9KX1yZXR1cm4gSG4ueShlLHQpfSxZOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPVUwKGUsaSksbj1hPjA/YToxLWE7aWYodD09PSJZWSIpe2xldCBvPW4lMTAwO3JldHVybiBudChvLDIpfXJldHVybiB0PT09IllvIj9yLm9yZGluYWxOdW1iZXIobix7dW5pdDoieWVhciJ9KTpudChuLHQubGVuZ3RoKX0sUjpmdW5jdGlvbihlLHQpe2xldCByPUdhKGUpO3JldHVybiBudChyLHQubGVuZ3RoKX0sdTpmdW5jdGlvbihlLHQpe2xldCByPWUuZ2V0RnVsbFllYXIoKTtyZXR1cm4gbnQocix0Lmxlbmd0aCl9LFE6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPU1hdGguY2VpbCgoZS5nZXRNb250aCgpKzEpLzMpO3N3aXRjaCh0KXtjYXNlIlEiOnJldHVybiBTdHJpbmcoaSk7Y2FzZSJRUSI6cmV0dXJuIG50KGksMik7Y2FzZSJRbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihpLHt1bml0OiJxdWFydGVyIn0pO2Nhc2UiUVFRIjpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIlFRUVFRIjpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5xdWFydGVyKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0scTpmdW5jdGlvbihlLHQscil7bGV0IGk9TWF0aC5jZWlsKChlLmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKHQpe2Nhc2UicSI6cmV0dXJuIFN0cmluZyhpKTtjYXNlInFxIjpyZXR1cm4gbnQoaSwyKTtjYXNlInFvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGkse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UicXFxcXEiOnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLnF1YXJ0ZXIoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl9fSxNOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldE1vbnRoKCk7c3dpdGNoKHQpe2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIEhuLk0oZSx0KTtjYXNlIk1vIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGkrMSx7dW5pdDoibW9udGgifSk7Y2FzZSJNTU0iOnJldHVybiByLm1vbnRoKGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlIk1NTU1NIjpyZXR1cm4gci5tb250aChpLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIubW9udGgoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxMOmZ1bmN0aW9uKGUsdCxyKXtsZXQgaT1lLmdldE1vbnRoKCk7c3dpdGNoKHQpe2Nhc2UiTCI6cmV0dXJuIFN0cmluZyhpKzEpO2Nhc2UiTEwiOnJldHVybiBudChpKzEsMik7Y2FzZSJMbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihpKzEse3VuaXQ6Im1vbnRoIn0pO2Nhc2UiTExMIjpyZXR1cm4gci5tb250aChpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIHIubW9udGgoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiByLm1vbnRoKGkse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0sdzpmdW5jdGlvbihlLHQscixpKXtsZXQgYT16OChlLGkpO3JldHVybiB0PT09IndvIj9yLm9yZGluYWxOdW1iZXIoYSx7dW5pdDoid2VlayJ9KTpudChhLHQubGVuZ3RoKX0sSTpmdW5jdGlvbihlLHQscil7bGV0IGk9UzgoZSk7cmV0dXJuIHQ9PT0iSW8iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJ3ZWVrIn0pOm50KGksdC5sZW5ndGgpfSxkOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJkbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0RGF0ZSgpLHt1bml0OiJkYXRlIn0pOkhuLmQoZSx0KX0sRDpmdW5jdGlvbihlLHQscil7bGV0IGk9c0MoZSk7cmV0dXJuIHQ9PT0iRG8iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJkYXlPZlllYXIifSk6bnQoaSx0Lmxlbmd0aCl9LEU6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0RGF5KCk7c3dpdGNoKHQpe2Nhc2UiRSI6Y2FzZSJFRSI6Y2FzZSJFRUUiOnJldHVybiByLmRheShpLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJFRUVFRUUiOnJldHVybiByLmRheShpLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoaSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxlOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPWUuZ2V0RGF5KCksbj0oYS1pLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaCh0KXtjYXNlImUiOnJldHVybiBTdHJpbmcobik7Y2FzZSJlZSI6cmV0dXJuIG50KG4sMik7Y2FzZSJlbyI6cmV0dXJuIHIub3JkaW5hbE51bWJlcihuLHt1bml0OiJkYXkifSk7Y2FzZSJlZWUiOnJldHVybiByLmRheShhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZSI6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJlZWVlZWUiOnJldHVybiByLmRheShhLHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXkoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxjOmZ1bmN0aW9uKGUsdCxyLGkpe2xldCBhPWUuZ2V0RGF5KCksbj0oYS1pLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaCh0KXtjYXNlImMiOnJldHVybiBTdHJpbmcobik7Y2FzZSJjYyI6cmV0dXJuIG50KG4sdC5sZW5ndGgpO2Nhc2UiY28iOnJldHVybiByLm9yZGluYWxOdW1iZXIobix7dW5pdDoiZGF5In0pO2Nhc2UiY2NjIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2MiOnJldHVybiByLmRheShhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2Nhc2UiY2NjY2NjIjpyZXR1cm4gci5kYXkoYSx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5KGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX0saTpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXREYXkoKSxhPWk9PT0wPzc6aTtzd2l0Y2godCl7Y2FzZSJpIjpyZXR1cm4gU3RyaW5nKGEpO2Nhc2UiaWkiOnJldHVybiBudChhLHQubGVuZ3RoKTtjYXNlImlvIjpyZXR1cm4gci5vcmRpbmFsTnVtYmVyKGEse3VuaXQ6ImRheSJ9KTtjYXNlImlpaSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpIjpyZXR1cm4gci5kYXkoaSx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImlpaWlpaSI6cmV0dXJuIHIuZGF5KGkse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiByLmRheShpLHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19LGE6ZnVuY3Rpb24oZSx0LHIpe2xldCBhPWUuZ2V0SG91cnMoKS8xMj49MT8icG0iOiJhbSI7c3dpdGNoKHQpe2Nhc2UiYSI6Y2FzZSJhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImFhYSI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYWFhYWEiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sYjpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpLGE7c3dpdGNoKGk9PT0xMj9hPUM4Lm5vb246aT09PTA/YT1DOC5taWRuaWdodDphPWkvMTI+PTE/InBtIjoiYW0iLHQpe2Nhc2UiYiI6Y2FzZSJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImJiYiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2UiYmJiYmIiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX0sQjpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpLGE7c3dpdGNoKGk+PTE3P2E9QzguZXZlbmluZzppPj0xMj9hPUM4LmFmdGVybm9vbjppPj00P2E9QzgubW9ybmluZzphPUM4Lm5pZ2h0LHQpe2Nhc2UiQiI6Y2FzZSJCQiI6Y2FzZSJCQkIiOnJldHVybiByLmRheVBlcmlvZChhLHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7Y2FzZSJCQkJCQiI6cmV0dXJuIHIuZGF5UGVyaW9kKGEse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gci5kYXlQZXJpb2QoYSx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fSxoOmZ1bmN0aW9uKGUsdCxyKXtpZih0PT09ImhvIil7bGV0IGk9ZS5nZXRIb3VycygpJTEyO3JldHVybiBpPT09MCYmKGk9MTIpLHIub3JkaW5hbE51bWJlcihpLHt1bml0OiJob3VyIn0pfXJldHVybiBIbi5oKGUsdCl9LEg6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0PT09IkhvIj9yLm9yZGluYWxOdW1iZXIoZS5nZXRIb3VycygpLHt1bml0OiJob3VyIn0pOkhuLkgoZSx0KX0sSzpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpJTEyO3JldHVybiB0PT09IktvIj9yLm9yZGluYWxOdW1iZXIoaSx7dW5pdDoiaG91ciJ9KTpudChpLHQubGVuZ3RoKX0sazpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRIb3VycygpO3JldHVybiBpPT09MCYmKGk9MjQpLHQ9PT0ia28iP3Iub3JkaW5hbE51bWJlcihpLHt1bml0OiJob3VyIn0pOm50KGksdC5sZW5ndGgpfSxtOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJtbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0TWludXRlcygpLHt1bml0OiJtaW51dGUifSk6SG4ubShlLHQpfSxzOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdD09PSJzbyI/ci5vcmRpbmFsTnVtYmVyKGUuZ2V0U2Vjb25kcygpLHt1bml0OiJzZWNvbmQifSk6SG4ucyhlLHQpfSxTOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIEhuLlMoZSx0KX0sWDpmdW5jdGlvbihlLHQscil7bGV0IGk9ZS5nZXRUaW1lem9uZU9mZnNldCgpO2lmKGk9PT0wKXJldHVybiJaIjtzd2l0Y2godCl7Y2FzZSJYIjpyZXR1cm4gUlBlKGkpO2Nhc2UiWFhYWCI6Y2FzZSJYWCI6cmV0dXJuIEY2KGkpO2RlZmF1bHQ6cmV0dXJuIEY2KGksIjoiKX19LHg6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJ4IjpyZXR1cm4gUlBlKGkpO2Nhc2UieHh4eCI6Y2FzZSJ4eCI6cmV0dXJuIEY2KGkpO2RlZmF1bHQ6cmV0dXJuIEY2KGksIjoiKX19LE86ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJPIjpjYXNlIk9PIjpjYXNlIk9PTyI6cmV0dXJuIkdNVCIrT1BlKGksIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK0Y2KGksIjoiKX19LHo6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZSJ6IjpjYXNlInp6IjpjYXNlInp6eiI6cmV0dXJuIkdNVCIrT1BlKGksIjoiKTtkZWZhdWx0OnJldHVybiJHTVQiK0Y2KGksIjoiKX19LHQ6ZnVuY3Rpb24oZSx0LHIpe2xldCBpPU1hdGgudHJ1bmMoK2UvMWUzKTtyZXR1cm4gbnQoaSx0Lmxlbmd0aCl9LFQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBudCgrZSx0Lmxlbmd0aCl9fX0pO3ZhciBIUGUscVBlLHhEcixXMCxZUT1wKCgpPT57SFBlPShlLHQpPT57c3dpdGNoKGUpe2Nhc2UiUCI6cmV0dXJuIHQuZGF0ZSh7d2lkdGg6InNob3J0In0pO2Nhc2UiUFAiOnJldHVybiB0LmRhdGUoe3dpZHRoOiJtZWRpdW0ifSk7Y2FzZSJQUFAiOnJldHVybiB0LmRhdGUoe3dpZHRoOiJsb25nIn0pO2RlZmF1bHQ6cmV0dXJuIHQuZGF0ZSh7d2lkdGg6ImZ1bGwifSl9fSxxUGU9KGUsdCk9Pntzd2l0Y2goZSl7Y2FzZSJwIjpyZXR1cm4gdC50aW1lKHt3aWR0aDoic2hvcnQifSk7Y2FzZSJwcCI6cmV0dXJuIHQudGltZSh7d2lkdGg6Im1lZGl1bSJ9KTtjYXNlInBwcCI6cmV0dXJuIHQudGltZSh7d2lkdGg6ImxvbmcifSk7ZGVmYXVsdDpyZXR1cm4gdC50aW1lKHt3aWR0aDoiZnVsbCJ9KX19LHhEcj0oZSx0KT0+e2xldCByPWUubWF0Y2goLyhQKykocCspPy8pfHxbXSxpPXJbMV0sYT1yWzJdO2lmKCFhKXJldHVybiBIUGUoZSx0KTtsZXQgbjtzd2l0Y2goaSl7Y2FzZSJQIjpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJzaG9ydCJ9KTticmVhaztjYXNlIlBQIjpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJtZWRpdW0ifSk7YnJlYWs7Y2FzZSJQUFAiOm49dC5kYXRlVGltZSh7d2lkdGg6ImxvbmcifSk7YnJlYWs7ZGVmYXVsdDpuPXQuZGF0ZVRpbWUoe3dpZHRoOiJmdWxsIn0pO2JyZWFrfXJldHVybiBuLnJlcGxhY2UoInt7ZGF0ZX19IixIUGUoaSx0KSkucmVwbGFjZSgie3t0aW1lfX0iLHFQZShhLHQpKX0sVzA9e3A6cVBlLFA6eERyfX0pO2Z1bmN0aW9uIHVDKGUpe3JldHVybiB5RHIudGVzdChlKX1mdW5jdGlvbiBwQyhlKXtyZXR1cm4gd0RyLnRlc3QoZSl9ZnVuY3Rpb24gTm0oZSx0LHIpe2xldCBpPWtEcihlLHQscik7aWYoY29uc29sZS53YXJuKGkpLE1Eci5pbmNsdWRlcyhlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihpKX1mdW5jdGlvbiBrRHIoZSx0LHIpe2xldCBpPWVbMF09PT0iWSI/InllYXJzIjoiZGF5cyBvZiB0aGUgbW9udGgiO3JldHVybmBVc2UgXGAke2UudG9Mb3dlckNhc2UoKX1cYCBpbnN0ZWFkIG9mIFxgJHtlfVxgIChpbiBcYCR7dH1cYCkgZm9yIGZvcm1hdHRpbmcgJHtpfSB0byB0aGUgaW5wdXQgXGAke3J9XGA7IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZGB9dmFyIHlEcix3RHIsTURyLFpRPXAoKCk9Pnt5RHI9L15EKyQvLHdEcj0vXlkrJC8sTURyPVsiRCIsIkREIiwiWVkiLCJZWVlZIl19KTtmdW5jdGlvbiBGbShlLHQscil7bGV0IGk9RXIoKSxhPXI/LmxvY2FsZT8/aS5sb2NhbGU/P3duLG49cj8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5maXJzdFdlZWtDb250YWluc0RhdGU/P2kubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbz1yPy53ZWVrU3RhcnRzT24/P3I/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9pLndlZWtTdGFydHNPbj8/aS5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxzPWNlKGUscj8uaW4pO2lmKCFYaShzKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IGw9dC5tYXRjaCh6RHIpLm1hcCh1PT57bGV0IGQ9dVswXTtpZihkPT09InAifHxkPT09IlAiKXtsZXQgaD1XMFtkXTtyZXR1cm4gaCh1LGEuZm9ybWF0TG9uZyl9cmV0dXJuIHV9KS5qb2luKCIiKS5tYXRjaChTRHIpLm1hcCh1PT57aWYodT09PSInJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6IicifTtsZXQgZD11WzBdO2lmKGQ9PT0iJyIpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6TERyKHUpfTtpZihQbVtkXSlyZXR1cm57aXNUb2tlbjohMCx2YWx1ZTp1fTtpZihkLm1hdGNoKF9EcikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitkKyJgIik7cmV0dXJue2lzVG9rZW46ITEsdmFsdWU6dX19KTthLmxvY2FsaXplLnByZXByb2Nlc3NvciYmKGw9YS5sb2NhbGl6ZS5wcmVwcm9jZXNzb3IocyxsKSk7bGV0IGM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpuLHdlZWtTdGFydHNPbjpvLGxvY2FsZTphfTtyZXR1cm4gbC5tYXAodT0+e2lmKCF1LmlzVG9rZW4pcmV0dXJuIHUudmFsdWU7bGV0IGQ9dS52YWx1ZTsoIXI/LnVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2VucyYmcEMoZCl8fCFyPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZ1QyhkKSkmJk5tKGQsdCxTdHJpbmcoZSkpO2xldCBoPVBtW2RbMF1dO3JldHVybiBoKHMsZCxhLmxvY2FsaXplLGMpfSkuam9pbigiIil9ZnVuY3Rpb24gTERyKGUpe2xldCB0PWUubWF0Y2goQ0RyKTtyZXR1cm4gdD90WzFdLnJlcGxhY2UoVERyLCInIik6ZX12YXIgU0RyLHpEcixDRHIsVERyLF9EcixRcGksWFE9cCgoKT0+e0k2KCk7TWEoKTtCUGUoKTtZUSgpO1pRKCk7VWwoKTtSZSgpO1NEcj0vW3lZUXFNTHdJZERlY2loSEtrbXNdb3woXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLHpEcj0vUCtwK3xQK3xwK3wnJ3wnKCcnfFteJ10pKygnfCQpfC4vZyxDRHI9L14nKFteXSo/KSc/JC8sVERyPS8nJy9nLF9Ecj0vW2EtekEtWl0vO1FwaT1GbX0pO2Z1bmN0aW9uIGhDKGUsdCxyKXtsZXQgaT1FcigpLGE9cj8ubG9jYWxlPz9pLmxvY2FsZT8/d24sbj0yNTIwLG89a2EoZSx0KTtpZihpc05hTihvKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7bGV0IHM9T2JqZWN0LmFzc2lnbih7fSxyLHthZGRTdWZmaXg6cj8uYWRkU3VmZml4LGNvbXBhcmlzb246b30pLFtsLGNdPXV0KHI/LmluLC4uLm8+MD9bdCxlXTpbZSx0XSksdT1QcyhjLGwpLGQ9KEUxKGMpLUUxKGwpKS8xZTMsaD1NYXRoLnJvdW5kKCh1LWQpLzYwKSxmO2lmKGg8MilyZXR1cm4gcj8uaW5jbHVkZVNlY29uZHM/dTw1P2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDUscyk6dTwxMD9hLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhTZWNvbmRzIiwxMCxzKTp1PDIwP2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWFNlY29uZHMiLDIwLHMpOnU8NDA/YS5mb3JtYXREaXN0YW5jZSgiaGFsZkFNaW51dGUiLDAscyk6dTw2MD9hLmZvcm1hdERpc3RhbmNlKCJsZXNzVGhhblhNaW51dGVzIiwxLHMpOmEuZm9ybWF0RGlzdGFuY2UoInhNaW51dGVzIiwxLHMpOmg9PT0wP2EuZm9ybWF0RGlzdGFuY2UoImxlc3NUaGFuWE1pbnV0ZXMiLDEscyk6YS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgscyk7aWYoaDw0NSlyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgieE1pbnV0ZXMiLGgscyk7aWYoaDw5MClyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLDEscyk7aWYoaDxsOCl7bGV0IHg9TWF0aC5yb3VuZChoLzYwKTtyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYSG91cnMiLHgscyl9ZWxzZXtpZihoPG4pcmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhEYXlzIiwxLHMpO2lmKGg8RjApe2xldCB4PU1hdGgucm91bmQoaC9sOCk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhEYXlzIix4LHMpfWVsc2UgaWYoaDxGMCoyKXJldHVybiBmPU1hdGgucm91bmQoaC9GMCksYS5mb3JtYXREaXN0YW5jZSgiYWJvdXRYTW9udGhzIixmLHMpfWlmKGY9ajAoYyxsKSxmPDEyKXtsZXQgeD1NYXRoLnJvdW5kKGgvRjApO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJ4TW9udGhzIix4LHMpfWVsc2V7bGV0IHg9ZiUxMix2PU1hdGgudHJ1bmMoZi8xMik7cmV0dXJuIHg8Mz9hLmZvcm1hdERpc3RhbmNlKCJhYm91dFhZZWFycyIsdixzKTp4PDk/YS5mb3JtYXREaXN0YW5jZSgib3ZlclhZZWFycyIsdixzKTphLmZvcm1hdERpc3RhbmNlKCJhbG1vc3RYWWVhcnMiLHYrMSxzKX19dmFyIHNoaSxRUT1wKCgpPT57STYoKTtNYSgpO2psKCk7anIoKTtMNigpO1J0KCk7RG0oKTtFbSgpO3NoaT1oQ30pO2Z1bmN0aW9uIGZDKGUsdCxyKXtsZXQgaT1FcigpLGE9cj8ubG9jYWxlPz9pLmxvY2FsZT8/d24sbj1rYShlLHQpO2lmKGlzTmFOKG4pKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgbz1PYmplY3QuYXNzaWduKHt9LHIse2FkZFN1ZmZpeDpyPy5hZGRTdWZmaXgsY29tcGFyaXNvbjpufSksW3MsbF09dXQocj8uaW4sLi4ubj4wP1t0LGVdOltlLHRdKSxjPVNhKHI/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiKSx1PWwuZ2V0VGltZSgpLXMuZ2V0VGltZSgpLGQ9dS93YSxoPUUxKGwpLUUxKHMpLGY9KHUtaCkvd2EseD1yPy51bml0LHY7aWYoeD92PXg6ZDwxP3Y9InNlY29uZCI6ZDw2MD92PSJtaW51dGUiOmQ8bDg/dj0iaG91ciI6ZjxGMD92PSJkYXkiOmY8eVE/dj0ibW9udGgiOnY9InllYXIiLHY9PT0ic2Vjb25kIil7bGV0IGI9Yyh1LzFlMyk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhTZWNvbmRzIixiLG8pfWVsc2UgaWYodj09PSJtaW51dGUiKXtsZXQgYj1jKGQpO3JldHVybiBhLmZvcm1hdERpc3RhbmNlKCJ4TWludXRlcyIsYixvKX1lbHNlIGlmKHY9PT0iaG91ciIpe2xldCBiPWMoZC82MCk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhIb3VycyIsYixvKX1lbHNlIGlmKHY9PT0iZGF5Iil7bGV0IGI9YyhmL2w4KTtyZXR1cm4gYS5mb3JtYXREaXN0YW5jZSgieERheXMiLGIsbyl9ZWxzZSBpZih2PT09Im1vbnRoIil7bGV0IGI9YyhmL0YwKTtyZXR1cm4gYj09PTEyJiZ4IT09Im1vbnRoIj9hLmZvcm1hdERpc3RhbmNlKCJ4WWVhcnMiLDEsbyk6YS5mb3JtYXREaXN0YW5jZSgieE1vbnRocyIsYixvKX1lbHNle2xldCBiPWMoZi95USk7cmV0dXJuIGEuZm9ybWF0RGlzdGFuY2UoInhZZWFycyIsYixvKX19dmFyIGdoaSxKUT1wKCgpPT57STYoKTtNYSgpO1dsKCk7amwoKTtqcigpO0w2KCk7UnQoKTtnaGk9ZkN9KTtmdW5jdGlvbiBqUGUoZSx0KXtyZXR1cm4gaEMoZSxRdChlKSx0KX12YXIgeWhpLFZQZT1wKCgpPT57YmkoKTtRUSgpO3loaT1qUGV9KTtmdW5jdGlvbiBVUGUoZSx0KXtyZXR1cm4gZkMoZSxRdChlKSx0KX12YXIgU2hpLFdQZT1wKCgpPT57YmkoKTtKUSgpO1NoaT1VUGV9KTtmdW5jdGlvbiBHUGUoZSx0KXtsZXQgcj1FcigpLGk9dD8ubG9jYWxlPz9yLmxvY2FsZT8/d24sYT10Py5mb3JtYXQ/P0FEcixuPXQ/Lnplcm8/PyExLG89dD8uZGVsaW1pdGVyPz8iICI7cmV0dXJuIGkuZm9ybWF0RGlzdGFuY2U/YS5yZWR1Y2UoKGwsYyk9PntsZXQgdT1geCR7Yy5yZXBsYWNlKC8oXi4pLyxoPT5oLnRvVXBwZXJDYXNlKCkpfWAsZD1lW2NdO3JldHVybiBkIT09dm9pZCAwJiYobnx8ZVtjXSk/bC5jb25jYXQoaS5mb3JtYXREaXN0YW5jZSh1LGQpKTpsfSxbXSkuam9pbihvKToiIn12YXIgQURyLF9oaSxZUGU9cCgoKT0+e0k2KCk7TWEoKTtBRHI9WyJ5ZWFycyIsIm1vbnRocyIsIndlZWtzIiwiZGF5cyIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiXTtfaGk9R1BlfSk7ZnVuY3Rpb24gWlBlKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7aWYoaXNOYU4oK3IpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT10Py5mb3JtYXQ/PyJleHRlbmRlZCIsYT10Py5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89IiIscz1pPT09ImV4dGVuZGVkIj8iLSI6IiIsbD1pPT09ImV4dGVuZGVkIj8iOiI6IiI7aWYoYSE9PSJ0aW1lIil7bGV0IGM9bnQoci5nZXREYXRlKCksMiksdT1udChyLmdldE1vbnRoKCkrMSwyKTtuPWAke250KHIuZ2V0RnVsbFllYXIoKSw0KX0ke3N9JHt1fSR7c30ke2N9YH1pZihhIT09ImRhdGUiKXtsZXQgYz1yLmdldFRpbWV6b25lT2Zmc2V0KCk7aWYoYyE9PTApe2xldCB2PU1hdGguYWJzKGMpLGI9bnQoTWF0aC50cnVuYyh2LzYwKSwyKSx5PW50KHYlNjAsMik7bz1gJHtjPDA/IisiOiItIn0ke2J9OiR7eX1gfWVsc2Ugbz0iWiI7bGV0IHU9bnQoci5nZXRIb3VycygpLDIpLGQ9bnQoci5nZXRNaW51dGVzKCksMiksaD1udChyLmdldFNlY29uZHMoKSwyKSxmPW49PT0iIj8iIjoiVCIseD1bdSxkLGhdLmpvaW4obCk7bj1gJHtufSR7Zn0ke3h9JHtvfWB9cmV0dXJuIG59dmFyIEVoaSxYUGU9cCgoKT0+e042KCk7UmUoKTtFaGk9WlBlfSk7ZnVuY3Rpb24gUVBlKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7aWYoIVhpKHIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgaT10Py5mb3JtYXQ/PyJleHRlbmRlZCIsYT10Py5yZXByZXNlbnRhdGlvbj8/ImNvbXBsZXRlIixuPSIiLG89aT09PSJleHRlbmRlZCI/Ii0iOiIiLHM9aT09PSJleHRlbmRlZCI/IjoiOiIiO2lmKGEhPT0idGltZSIpe2xldCBsPW50KHIuZ2V0RGF0ZSgpLDIpLGM9bnQoci5nZXRNb250aCgpKzEsMik7bj1gJHtudChyLmdldEZ1bGxZZWFyKCksNCl9JHtvfSR7Y30ke299JHtsfWB9aWYoYSE9PSJkYXRlIil7bGV0IGw9bnQoci5nZXRIb3VycygpLDIpLGM9bnQoci5nZXRNaW51dGVzKCksMiksdT1udChyLmdldFNlY29uZHMoKSwyKTtuPWAke259JHtuPT09IiI/IiI6IiAifSR7bH0ke3N9JHtjfSR7c30ke3V9YH1yZXR1cm4gbn12YXIgRmhpLEpQZT1wKCgpPT57TjYoKTtVbCgpO1JlKCk7RmhpPVFQZX0pO2Z1bmN0aW9uIEtQZShlKXtsZXR7eWVhcnM6dD0wLG1vbnRoczpyPTAsZGF5czppPTAsaG91cnM6YT0wLG1pbnV0ZXM6bj0wLHNlY29uZHM6bz0wfT1lO3JldHVybmBQJHt0fVkke3J9TSR7aX1EVCR7YX1IJHtufU0ke299U2B9dmFyIFJoaSxlTmU9cCgoKT0+e1JoaT1LUGV9KTtmdW5jdGlvbiB0TmUoZSx0KXtsZXQgcj1jZShlLHQ/LmluKTtpZighWGkocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPXQ/LmZyYWN0aW9uRGlnaXRzPz8wLGE9bnQoci5nZXREYXRlKCksMiksbj1udChyLmdldE1vbnRoKCkrMSwyKSxvPXIuZ2V0RnVsbFllYXIoKSxzPW50KHIuZ2V0SG91cnMoKSwyKSxsPW50KHIuZ2V0TWludXRlcygpLDIpLGM9bnQoci5nZXRTZWNvbmRzKCksMiksdT0iIjtpZihpPjApe2xldCBmPXIuZ2V0TWlsbGlzZWNvbmRzKCkseD1NYXRoLnRydW5jKGYqTWF0aC5wb3coMTAsaS0zKSk7dT0iLiIrbnQoeCxpKX1sZXQgZD0iIixoPXIuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZihoIT09MCl7bGV0IGY9TWF0aC5hYnMoaCkseD1udChNYXRoLnRydW5jKGYvNjApLDIpLHY9bnQoZiU2MCwyKTtkPWAke2g8MD8iKyI6Ii0ifSR7eH06JHt2fWB9ZWxzZSBkPSJaIjtyZXR1cm5gJHtvfS0ke259LSR7YX1UJHtzfToke2x9OiR7Y30ke3V9JHtkfWB9dmFyIFZoaSxyTmU9cCgoKT0+e042KCk7VWwoKTtSZSgpO1ZoaT10TmV9KTtmdW5jdGlvbiBpTmUoZSl7bGV0IHQ9Y2UoZSk7aWYoIVhpKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgcj1ERHJbdC5nZXRVVENEYXkoKV0saT1udCh0LmdldFVUQ0RhdGUoKSwyKSxhPUVEclt0LmdldFVUQ01vbnRoKCldLG49dC5nZXRVVENGdWxsWWVhcigpLG89bnQodC5nZXRVVENIb3VycygpLDIpLHM9bnQodC5nZXRVVENNaW51dGVzKCksMiksbD1udCh0LmdldFVUQ1NlY29uZHMoKSwyKTtyZXR1cm5gJHtyfSwgJHtpfSAke2F9ICR7bn0gJHtvfToke3N9OiR7bH0gR01UYH12YXIgRERyLEVEcixaaGksYU5lPXAoKCk9PntONigpO1VsKCk7UmUoKTtERHI9WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxFRHI9WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXTtaaGk9aU5lfSk7ZnVuY3Rpb24gbk5lKGUsdCxyKXtsZXRbaSxhXT11dChyPy5pbixlLHQpLG49RXIoKSxvPXI/LmxvY2FsZT8/bi5sb2NhbGU/P3duLHM9cj8ud2Vla1N0YXJ0c09uPz9yPy5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/bi53ZWVrU3RhcnRzT24/P24ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/PzAsbD1JaShpLGEpO2lmKGlzTmFOKGwpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTtsZXQgYztsPC02P2M9Im90aGVyIjpsPC0xP2M9Imxhc3RXZWVrIjpsPDA/Yz0ieWVzdGVyZGF5IjpsPDE/Yz0idG9kYXkiOmw8Mj9jPSJ0b21vcnJvdyI6bDw3P2M9Im5leHRXZWVrIjpjPSJvdGhlciI7bGV0IHU9by5mb3JtYXRSZWxhdGl2ZShjLGksYSx7bG9jYWxlOm8sd2Vla1N0YXJ0c09uOnN9KTtyZXR1cm4gRm0oaSx1LHtsb2NhbGU6byx3ZWVrU3RhcnRzT246c30pfXZhciByZmksb05lPXAoKCk9PntJNigpO01hKCk7anIoKTtWbCgpO1hRKCk7cmZpPW5OZX0pO2Z1bmN0aW9uIHNOZShlLHQpe3JldHVybiBjZShlKjFlMyx0Py5pbil9dmFyIG5maSxsTmU9cCgoKT0+e1JlKCk7bmZpPXNOZX0pO2Z1bmN0aW9uIG1DKGUsdCl7cmV0dXJuIGNlKGUsdD8uaW4pLmdldERhdGUoKX12YXIgbGZpLEtRPXAoKCk9PntSZSgpO2xmaT1tQ30pO2Z1bmN0aW9uIEcwKGUsdCl7cmV0dXJuIGNlKGUsdD8uaW4pLmdldERheSgpfXZhciB1ZmksT209cCgoKT0+e1JlKCk7dWZpPUcwfSk7ZnVuY3Rpb24gZ0MoZSx0KXtsZXQgcj1jZShlLHQ/LmluKSxpPXIuZ2V0RnVsbFllYXIoKSxhPXIuZ2V0TW9udGgoKSxuPU5lKHIsMCk7cmV0dXJuIG4uc2V0RnVsbFllYXIoaSxhKzEsMCksbi5zZXRIb3VycygwLDAsMCwwKSxuLmdldERhdGUoKX12YXIgbWZpLGVKPXAoKCk9PntndCgpO1JlKCk7bWZpPWdDfSk7ZnVuY3Rpb24gYkMoZSx0KXtsZXQgaT1jZShlLHQ/LmluKS5nZXRGdWxsWWVhcigpO3JldHVybiBpJTQwMD09PTB8fGklND09PTAmJmklMTAwIT09MH12YXIgdmZpLHRKPXAoKCk9PntSZSgpO3ZmaT1iQ30pO2Z1bmN0aW9uIGNOZShlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiBOdW1iZXIuaXNOYU4oK3IpP05hTjpiQyhyKT8zNjY6MzY1fXZhciBNZmksZE5lPXAoKCk9Pnt0SigpO1JlKCk7TWZpPWNOZX0pO2Z1bmN0aW9uIHVOZShlLHQpe2xldCBpPWNlKGUsdD8uaW4pLmdldEZ1bGxZZWFyKCk7cmV0dXJuIE1hdGguZmxvb3IoaS8xMCkqMTB9dmFyIHpmaSxwTmU9cCgoKT0+e1JlKCk7emZpPXVOZX0pO2Z1bmN0aW9uIHZDKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sRXIoKSl9dmFyIF9maSxySj1wKCgpPT57TWEoKTtfZmk9dkN9KTtmdW5jdGlvbiBoTmUoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0SG91cnMoKX12YXIgRGZpLGZOZT1wKCgpPT57UmUoKTtEZmk9aE5lfSk7ZnVuY3Rpb24geEMoZSx0KXtsZXQgcj1jZShlLHQ/LmluKS5nZXREYXkoKTtyZXR1cm4gcj09PTA/NzpyfXZhciBJZmksaUo9cCgoKT0+e1JlKCk7SWZpPXhDfSk7ZnVuY3Rpb24gbU5lKGUsdCl7bGV0IHI9Qm4oZSx0KSxhPStCbihIMChyLDYwKSktK3I7cmV0dXJuIE1hdGgucm91bmQoYS9fcyl9dmFyIFJmaSxnTmU9cCgoKT0+e0xtKCk7UnQoKTt1OCgpO1JmaT1tTmV9KTtmdW5jdGlvbiBiTmUoZSl7cmV0dXJuIGNlKGUpLmdldE1pbGxpc2Vjb25kcygpfXZhciBxZmksdk5lPXAoKCk9PntSZSgpO3FmaT1iTmV9KTtmdW5jdGlvbiB4TmUoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0TWludXRlcygpfXZhciBVZmkseU5lPXAoKCk9PntSZSgpO1VmaT14TmV9KTtmdW5jdGlvbiB3TmUoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0TW9udGgoKX12YXIgWWZpLE1OZT1wKCgpPT57UmUoKTtZZmk9d05lfSk7ZnVuY3Rpb24ga05lKGUsdCl7bGV0W3IsaV09WytjZShlLnN0YXJ0KSwrY2UoZS5lbmQpXS5zb3J0KChkLGgpPT5kLWgpLFthLG5dPVsrY2UodC5zdGFydCksK2NlKHQuZW5kKV0uc29ydCgoZCxoKT0+ZC1oKTtpZighKHI8biYmYTxpKSlyZXR1cm4gMDtsZXQgcz1hPHI/cjphLGw9cy1FMShzKSxjPW4+aT9pOm4sdT1jLUUxKGMpO3JldHVybiBNYXRoLmNlaWwoKHUtbCkvTXopfXZhciBLZmksU05lPXAoKCk9PntqbCgpO1J0KCk7UmUoKTtLZmk9a05lfSk7ZnVuY3Rpb24gek5lKGUpe3JldHVybiBjZShlKS5nZXRTZWNvbmRzKCl9dmFyIHI3aSxDTmU9cCgoKT0+e1JlKCk7cjdpPXpOZX0pO2Z1bmN0aW9uIFROZShlKXtyZXR1cm4rY2UoZSl9dmFyIG43aSxfTmU9cCgoKT0+e1JlKCk7bjdpPVROZX0pO2Z1bmN0aW9uIExOZShlKXtyZXR1cm4gTWF0aC50cnVuYygrY2UoZSkvMWUzKX12YXIgbDdpLEFOZT1wKCgpPT57UmUoKTtsN2k9TE5lfSk7ZnVuY3Rpb24gRE5lKGUsdCl7bGV0IHI9RXIoKSxpPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P3Iud2Vla1N0YXJ0c09uPz9yLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLGE9bUMoY2UoZSx0Py5pbikpO2lmKGlzTmFOKGEpKXJldHVybiBOYU47bGV0IG49RzAoVjAoZSx0KSksbz1pLW47bzw9MCYmKG8rPTcpO2xldCBzPWEtbztyZXR1cm4gTWF0aC5jZWlsKHMvNykrMX12YXIgbTdpLEVOZT1wKCgpPT57TWEoKTtLUSgpO09tKCk7JG0oKTtSZSgpO203aT1ETmV9KTtmdW5jdGlvbiB5QyhlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpO3JldHVybiByLnNldEZ1bGxZZWFyKHIuZ2V0RnVsbFllYXIoKSxpKzEsMCksci5zZXRIb3VycygwLDAsMCwwKSxjZShyLHQ/LmluKX12YXIgdjdpLGFKPXAoKCk9PntSZSgpO3Y3aT15Q30pO2Z1bmN0aW9uICROZShlLHQpe2xldCByPWNlKGUsdD8uaW4pO3JldHVybiBENih5QyhyLHQpLFYwKHIsdCksdCkrMX12YXIgUzdpLElOZT1wKCgpPT57anooKTthSigpOyRtKCk7UmUoKTtTN2k9JE5lfSk7ZnVuY3Rpb24gUE5lKGUsdCl7cmV0dXJuIGNlKGUsdD8uaW4pLmdldEZ1bGxZZWFyKCl9dmFyIFQ3aSxOTmU9cCgoKT0+e1JlKCk7VDdpPVBOZX0pO2Z1bmN0aW9uIEZOZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKlJuKX12YXIgQTdpLE9OZT1wKCgpPT57UnQoKTtBN2k9Rk5lfSk7ZnVuY3Rpb24gUk5lKGUpe3JldHVybiBNYXRoLnRydW5jKGUqa3opfXZhciAkN2ksQk5lPXAoKCk9PntSdCgpOyQ3aT1STmV9KTtmdW5jdGlvbiBITmUoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSpfNil9dmFyIE43aSxxTmU9cCgoKT0+e1J0KCk7TjdpPUhOZX0pO2Z1bmN0aW9uIGpOZShlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtpZihpc05hTigraSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3RhcnQgZGF0ZSBpcyBpbnZhbGlkIik7aWYoaXNOYU4oK2EpKXRocm93IG5ldyBUeXBlRXJyb3IoIkVuZCBkYXRlIGlzIGludmFsaWQiKTtpZihyPy5hc3NlcnRQb3NpdGl2ZSYmK2k+K2EpdGhyb3cgbmV3IFR5cGVFcnJvcigiRW5kIGRhdGUgbXVzdCBiZSBhZnRlciBzdGFydCBkYXRlIik7cmV0dXJue3N0YXJ0OmksZW5kOmF9fXZhciBSN2ksVk5lPXAoKCk9PntqcigpO1I3aT1qTmV9KTtmdW5jdGlvbiBVTmUoZSx0KXtsZXR7c3RhcnQ6cixlbmQ6aX09UGkodD8uaW4sZSksYT17fSxuPUt6KGkscik7biYmKGEueWVhcnM9bik7bGV0IG89TzAocix7eWVhcnM6YS55ZWFyc30pLHM9ajAoaSxvKTtzJiYoYS5tb250aHM9cyk7bGV0IGw9TzAobyx7bW9udGhzOmEubW9udGhzfSksYz1nOChpLGwpO2MmJihhLmRheXM9Yyk7bGV0IHU9TzAobCx7ZGF5czphLmRheXN9KSxkPUU2KGksdSk7ZCYmKGEuaG91cnM9ZCk7bGV0IGg9TzAodSx7aG91cnM6YS5ob3Vyc30pLGY9JDYoaSxoKTtmJiYoYS5taW51dGVzPWYpO2xldCB4PU8wKGgse21pbnV0ZXM6YS5taW51dGVzfSksdj1QcyhpLHgpO3JldHVybiB2JiYoYS5zZWNvbmRzPXYpLGF9dmFyIFo3aSxXTmU9cCgoKT0+e05zKCk7U1EoKTtVeigpO1d6KCk7WnooKTtEbSgpO0VtKCk7cVEoKTtaN2k9VU5lfSk7ZnVuY3Rpb24gR05lKGUsdCxyKXtsZXQgaTtyZXR1cm4gJERyKHQpP2k9dDpyPXQsbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQocj8ubG9jYWxlLGkpLmZvcm1hdChjZShlKSl9ZnVuY3Rpb24gJERyKGUpe3JldHVybiBlIT09dm9pZCAwJiYhKCJsb2NhbGUiaW4gZSl9dmFyIEo3aSxZTmU9cCgoKT0+e1JlKCk7SjdpPUdOZX0pO2Z1bmN0aW9uIFpOZShlLHQscil7bGV0IGk9MCxhLFtuLG9dPXV0KHI/LmluLGUsdCk7aWYocj8udW5pdClhPXI/LnVuaXQsYT09PSJzZWNvbmQiP2k9UHMobixvKTphPT09Im1pbnV0ZSI/aT0kNihuLG8pOmE9PT0iaG91ciI/aT1FNihuLG8pOmE9PT0iZGF5Ij9pPUlpKG4sbyk6YT09PSJ3ZWVrIj9pPUQ2KG4sbyk6YT09PSJtb250aCI/aT1BNihuLG8pOmE9PT0icXVhcnRlciI/aT1tOChuLG8pOmE9PT0ieWVhciImJihpPXEwKG4sbykpO2Vsc2V7bGV0IGw9UHMobixvKTtNYXRoLmFicyhsKTxjOD8oaT1QcyhuLG8pLGE9InNlY29uZCIpOk1hdGguYWJzKGwpPF82PyhpPSQ2KG4sbyksYT0ibWludXRlIik6TWF0aC5hYnMobCk8eXomJk1hdGguYWJzKElpKG4sbykpPDE/KGk9RTYobixvKSxhPSJob3VyIik6TWF0aC5hYnMobCk8bUllJiYoaT1JaShuLG8pKSYmTWF0aC5hYnMoaSk8Nz9hPSJkYXkiOk1hdGguYWJzKGwpPE1RPyhpPUQ2KG4sbyksYT0id2VlayIpOk1hdGguYWJzKGwpPGdJZT8oaT1BNihuLG8pLGE9Im1vbnRoIik6TWF0aC5hYnMobCk8d1E/bTgobixvKTw0PyhpPW04KG4sbyksYT0icXVhcnRlciIpOihpPXEwKG4sbyksYT0ieWVhciIpOihpPXEwKG4sbyksYT0ieWVhciIpfXJldHVybiBuZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQocj8ubG9jYWxlLHtudW1lcmljOiJhdXRvIiwuLi5yfSkuZm9ybWF0KGksYSl9dmFyIGRtaSxYTmU9cCgoKT0+e2pyKCk7UnQoKTtWbCgpO3F6KCk7UlEoKTtqeigpO1Z6KCk7V3ooKTtaeigpO0VtKCk7ZG1pPVpOZX0pO2Z1bmN0aW9uIFFOZShlLHQpe3JldHVybitjZShlKT4rY2UodCl9dmFyIGhtaSxKTmU9cCgoKT0+e1JlKCk7aG1pPVFOZX0pO2Z1bmN0aW9uIEtOZShlLHQpe3JldHVybitjZShlKTwrY2UodCl9dmFyIGdtaSxlRmU9cCgoKT0+e1JlKCk7Z21pPUtOZX0pO2Z1bmN0aW9uIHRGZShlLHQpe3JldHVybitjZShlKT09K2NlKHQpfXZhciB4bWksckZlPXAoKCk9PntSZSgpO3htaT10RmV9KTtmdW5jdGlvbiBpRmUoZSx0LHIpe2xldCBpPW5ldyBEYXRlKGUsdCxyKTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09ZSYmaS5nZXRNb250aCgpPT09dCYmaS5nZXREYXRlKCk9PT1yfXZhciB3bWksYUZlPXAoKCk9Pnt3bWk9aUZlfSk7ZnVuY3Rpb24gbkZlKGUsdCl7cmV0dXJuIGNlKGUsdD8uaW4pLmdldERhdGUoKT09PTF9dmFyIFNtaSxvRmU9cCgoKT0+e1JlKCk7U21pPW5GZX0pO2Z1bmN0aW9uIHNGZShlLHQpe3JldHVybiBjZShlLHQ/LmluKS5nZXREYXkoKT09PTV9dmFyIFRtaSxsRmU9cCgoKT0+e1JlKCk7VG1pPXNGZX0pO2Z1bmN0aW9uIGNGZShlKXtyZXR1cm4rY2UoZSk+RGF0ZS5ub3coKX12YXIgQW1pLGRGZT1wKCgpPT57UmUoKTtBbWk9Y0ZlfSk7ZnVuY3Rpb24gd0MoZSx0KXtsZXQgcj1JRHIodCk/bmV3IHQoMCk6TmUodCwwKTtyZXR1cm4gci5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCksZS5nZXRNb250aCgpLGUuZ2V0RGF0ZSgpKSxyLnNldEhvdXJzKGUuZ2V0SG91cnMoKSxlLmdldE1pbnV0ZXMoKSxlLmdldFNlY29uZHMoKSxlLmdldE1pbGxpc2Vjb25kcygpKSxyfWZ1bmN0aW9uIElEcihlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiImJmUucHJvdG90eXBlPy5jb25zdHJ1Y3Rvcj09PWV9dmFyICRtaSxuSj1wKCgpPT57Z3QoKTskbWk9d0N9KTt2YXIgUERyLE1DLGtDLFNDLG9KPXAoKCk9PntndCgpO25KKCk7UERyPTEwLE1DPWNsYXNze3N1YlByaW9yaXR5PTA7dmFsaWRhdGUodCxyKXtyZXR1cm4hMH19LGtDPWNsYXNzIGV4dGVuZHMgTUN7Y29uc3RydWN0b3IodCxyLGksYSxuKXtzdXBlcigpLHRoaXMudmFsdWU9dCx0aGlzLnZhbGlkYXRlVmFsdWU9cix0aGlzLnNldFZhbHVlPWksdGhpcy5wcmlvcml0eT1hLG4mJih0aGlzLnN1YlByaW9yaXR5PW4pfXZhbGlkYXRlKHQscil7cmV0dXJuIHRoaXMudmFsaWRhdGVWYWx1ZSh0LHRoaXMudmFsdWUscil9c2V0KHQscixpKXtyZXR1cm4gdGhpcy5zZXRWYWx1ZSh0LHIsdGhpcy52YWx1ZSxpKX19LFNDPWNsYXNzIGV4dGVuZHMgTUN7cHJpb3JpdHk9UERyO3N1YlByaW9yaXR5PS0xO2NvbnN0cnVjdG9yKHQscil7c3VwZXIoKSx0aGlzLmNvbnRleHQ9dHx8KGk9Pk5lKHIsaSkpfXNldCh0LHIpe3JldHVybiByLnRpbWVzdGFtcElzU2V0P3Q6TmUodCx3Qyh0LHRoaXMuY29udGV4dCkpfX19KTt2YXIgcnQsTXI9cCgoKT0+e29KKCk7cnQ9Y2xhc3N7cnVuKHQscixpLGEpe2xldCBuPXRoaXMucGFyc2UodCxyLGksYSk7cmV0dXJuIG4/e3NldHRlcjpuZXcga0Mobi52YWx1ZSx0aGlzLnZhbGlkYXRlLHRoaXMuc2V0LHRoaXMucHJpb3JpdHksdGhpcy5zdWJQcmlvcml0eSkscmVzdDpuLnJlc3R9Om51bGx9dmFsaWRhdGUodCxyLGkpe3JldHVybiEwfX19KTt2YXIgekMsdUZlPXAoKCk9PntNcigpO3pDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9MTQwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJHIjpjYXNlIkdHIjpjYXNlIkdHRyI6cmV0dXJuIGkuZXJhKHQse3dpZHRoOiJhYmJyZXZpYXRlZCJ9KXx8aS5lcmEodCx7d2lkdGg6Im5hcnJvdyJ9KTtjYXNlIkdHR0dHIjpyZXR1cm4gaS5lcmEodCx7d2lkdGg6Im5hcnJvdyJ9KTtkZWZhdWx0OnJldHVybiBpLmVyYSh0LHt3aWR0aDoid2lkZSJ9KXx8aS5lcmEodCx7d2lkdGg6ImFiYnJldmlhdGVkIn0pfHxpLmVyYSh0LHt3aWR0aDoibmFycm93In0pfX1zZXQodCxyLGkpe3JldHVybiByLmVyYT1pLHQuc2V0RnVsbFllYXIoaSwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJSIiwidSIsInQiLCJUIl19fSk7dmFyIGhyLGtvLHphPXAoKCk9Pntocj17bW9udGg6L14oMVswLTJdfDA/XGQpLyxkYXRlOi9eKDNbMC0xXXxbMC0yXT9cZCkvLGRheU9mWWVhcjovXigzNlswLTZdfDNbMC01XVxkfFswLTJdP1xkP1xkKS8sd2VlazovXig1WzAtM118WzAtNF0/XGQpLyxob3VyMjNoOi9eKDJbMC0zXXxbMC0xXT9cZCkvLGhvdXIyNGg6L14oMlswLTRdfFswLTFdP1xkKS8saG91cjExaDovXigxWzAtMV18MD9cZCkvLGhvdXIxMmg6L14oMVswLTJdfDA/XGQpLyxtaW51dGU6L15bMC01XT9cZC8sc2Vjb25kOi9eWzAtNV0/XGQvLHNpbmdsZURpZ2l0Oi9eXGQvLHR3b0RpZ2l0czovXlxkezEsMn0vLHRocmVlRGlnaXRzOi9eXGR7MSwzfS8sZm91ckRpZ2l0czovXlxkezEsNH0vLGFueURpZ2l0c1NpZ25lZDovXi0/XGQrLyxzaW5nbGVEaWdpdFNpZ25lZDovXi0/XGQvLHR3b0RpZ2l0c1NpZ25lZDovXi0/XGR7MSwyfS8sdGhyZWVEaWdpdHNTaWduZWQ6L14tP1xkezEsM30vLGZvdXJEaWdpdHNTaWduZWQ6L14tP1xkezEsNH0vfSxrbz17YmFzaWNPcHRpb25hbE1pbnV0ZXM6L14oWystXSkoXGR7Mn0pKFxkezJ9KT98Wi8sYmFzaWM6L14oWystXSkoXGR7Mn0pKFxkezJ9KXxaLyxiYXNpY09wdGlvbmFsU2Vjb25kczovXihbKy1dKShcZHsyfSkoXGR7Mn0pKChcZHsyfSkpP3xaLyxleHRlbmRlZDovXihbKy1dKShcZHsyfSk6KFxkezJ9KXxaLyxleHRlbmRlZE9wdGlvbmFsU2Vjb25kczovXihbKy1dKShcZHsyfSk6KFxkezJ9KSg6KFxkezJ9KSk/fFovfX0pO2Z1bmN0aW9uIFZyKGUsdCl7cmV0dXJuIGUmJnt2YWx1ZTp0KGUudmFsdWUpLHJlc3Q6ZS5yZXN0fX1mdW5jdGlvbiBjcihlLHQpe2xldCByPXQubWF0Y2goZSk7cmV0dXJuIHI/e3ZhbHVlOnBhcnNlSW50KHJbMF0sMTApLHJlc3Q6dC5zbGljZShyWzBdLmxlbmd0aCl9Om51bGx9ZnVuY3Rpb24gU28oZSx0KXtsZXQgcj10Lm1hdGNoKGUpO2lmKCFyKXJldHVybiBudWxsO2lmKHJbMF09PT0iWiIpcmV0dXJue3ZhbHVlOjAscmVzdDp0LnNsaWNlKDEpfTtsZXQgaT1yWzFdPT09IisiPzE6LTEsYT1yWzJdP3BhcnNlSW50KHJbMl0sMTApOjAsbj1yWzNdP3BhcnNlSW50KHJbM10sMTApOjAsbz1yWzVdP3BhcnNlSW50KHJbNV0sMTApOjA7cmV0dXJue3ZhbHVlOmkqKGEqUm4rbip3YStvKnM4KSxyZXN0OnQuc2xpY2UoclswXS5sZW5ndGgpfX1mdW5jdGlvbiBDQyhlKXtyZXR1cm4gY3IoaHIuYW55RGlnaXRzU2lnbmVkLGUpfWZ1bmN0aW9uIFB0KGUsdCl7c3dpdGNoKGUpe2Nhc2UgMTpyZXR1cm4gY3IoaHIuc2luZ2xlRGlnaXQsdCk7Y2FzZSAyOnJldHVybiBjcihoci50d29EaWdpdHMsdCk7Y2FzZSAzOnJldHVybiBjcihoci50aHJlZURpZ2l0cyx0KTtjYXNlIDQ6cmV0dXJuIGNyKGhyLmZvdXJEaWdpdHMsdCk7ZGVmYXVsdDpyZXR1cm4gY3IobmV3IFJlZ0V4cCgiXlxcZHsxLCIrZSsifSIpLHQpfX1mdW5jdGlvbiBUOChlLHQpe3N3aXRjaChlKXtjYXNlIDE6cmV0dXJuIGNyKGhyLnNpbmdsZURpZ2l0U2lnbmVkLHQpO2Nhc2UgMjpyZXR1cm4gY3IoaHIudHdvRGlnaXRzU2lnbmVkLHQpO2Nhc2UgMzpyZXR1cm4gY3IoaHIudGhyZWVEaWdpdHNTaWduZWQsdCk7Y2FzZSA0OnJldHVybiBjcihoci5mb3VyRGlnaXRzU2lnbmVkLHQpO2RlZmF1bHQ6cmV0dXJuIGNyKG5ldyBSZWdFeHAoIl4tP1xcZHsxLCIrZSsifSIpLHQpfX1mdW5jdGlvbiBfOChlKXtzd2l0Y2goZSl7Y2FzZSJtb3JuaW5nIjpyZXR1cm4gNDtjYXNlImV2ZW5pbmciOnJldHVybiAxNztjYXNlInBtIjpjYXNlIm5vb24iOmNhc2UiYWZ0ZXJub29uIjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gVEMoZSx0KXtsZXQgcj10PjAsaT1yP3Q6MS10LGE7aWYoaTw9NTApYT1lfHwxMDA7ZWxzZXtsZXQgbj1pKzUwLG89TWF0aC50cnVuYyhuLzEwMCkqMTAwLHM9ZT49biUxMDA7YT1lK28tKHM/MTAwOjApfXJldHVybiByP2E6MS1hfWZ1bmN0aW9uIF9DKGUpe3JldHVybiBlJTQwMD09PTB8fGUlND09PTAmJmUlMTAwIT09MH12YXIgJHI9cCgoKT0+e1J0KCk7emEoKX0pO3ZhciBMQyxwRmU9cCgoKT0+e01yKCk7JHIoKTtMQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTEzMDtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInUiLCJ3IiwiSSIsImkiLCJlIiwiYyIsInQiLCJUIl07cGFyc2UodCxyLGkpe2xldCBhPW49Pih7eWVhcjpuLGlzVHdvRGlnaXRZZWFyOnI9PT0ieXkifSk7c3dpdGNoKHIpe2Nhc2UieSI6cmV0dXJuIFZyKFB0KDQsdCksYSk7Y2FzZSJ5byI6cmV0dXJuIFZyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJ5ZWFyIn0pLGEpO2RlZmF1bHQ6cmV0dXJuIFZyKFB0KHIubGVuZ3RoLHQpLGEpfX12YWxpZGF0ZSh0LHIpe3JldHVybiByLmlzVHdvRGlnaXRZZWFyfHxyLnllYXI+MH1zZXQodCxyLGkpe2xldCBhPXQuZ2V0RnVsbFllYXIoKTtpZihpLmlzVHdvRGlnaXRZZWFyKXtsZXQgbz1UQyhpLnllYXIsYSk7cmV0dXJuIHQuc2V0RnVsbFllYXIobywwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1sZXQgbj0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9pLnllYXI6MS1pLnllYXI7cmV0dXJuIHQuc2V0RnVsbFllYXIobiwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH19fSk7dmFyIEFDLGhGZT1wKCgpPT57SW0oKTtmMigpO01yKCk7JHIoKTtBQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTEzMDtwYXJzZSh0LHIsaSl7bGV0IGE9bj0+KHt5ZWFyOm4saXNUd29EaWdpdFllYXI6cj09PSJZWSJ9KTtzd2l0Y2gocil7Y2FzZSJZIjpyZXR1cm4gVnIoUHQoNCx0KSxhKTtjYXNlIllvIjpyZXR1cm4gVnIoaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6InllYXIifSksYSk7ZGVmYXVsdDpyZXR1cm4gVnIoUHQoci5sZW5ndGgsdCksYSl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHIuaXNUd29EaWdpdFllYXJ8fHIueWVhcj4wfXNldCh0LHIsaSxhKXtsZXQgbj1VMCh0LGEpO2lmKGkuaXNUd29EaWdpdFllYXIpe2xldCBzPVRDKGkueWVhcixuKTtyZXR1cm4gdC5zZXRGdWxsWWVhcihzLDAsYS5maXJzdFdlZWtDb250YWluc0RhdGUpLHQuc2V0SG91cnMoMCwwLDAsMCksZTEodCxhKX1sZXQgbz0hKCJlcmEiaW4gcil8fHIuZXJhPT09MT9pLnllYXI6MS1pLnllYXI7cmV0dXJuIHQuc2V0RnVsbFllYXIobywwLGEuZmlyc3RXZWVrQ29udGFpbnNEYXRlKSx0LnNldEhvdXJzKDAsMCwwLDApLGUxKHQsYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwiUSIsInEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO3ZhciBEQyxmRmU9cCgoKT0+e0VzKCk7Z3QoKTtNcigpOyRyKCk7REM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0xMzA7cGFyc2UodCxyKXtyZXR1cm4gcj09PSJSIj9UOCg0LHQpOlQ4KHIubGVuZ3RoLHQpfXNldCh0LHIsaSl7bGV0IGE9TmUodCwwKTtyZXR1cm4gYS5zZXRGdWxsWWVhcihpLDAsNCksYS5zZXRIb3VycygwLDAsMCwwKSxyaShhKX1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJ1IiwiUSIsInEiLCJNIiwiTCIsInciLCJkIiwiRCIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgRUMsbUZlPXAoKCk9PntNcigpOyRyKCk7RUM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0xMzA7cGFyc2UodCxyKXtyZXR1cm4gcj09PSJ1Ij9UOCg0LHQpOlQ4KHIubGVuZ3RoLHQpfXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0RnVsbFllYXIoaSwwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJHIiwieSIsIlkiLCJSIiwidyIsIkkiLCJpIiwiZSIsImMiLCJ0IiwiVCJdfX0pO3ZhciAkQyxnRmU9cCgoKT0+e01yKCk7JHIoKTskQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTEyMDtwYXJzZSh0LHIsaSl7c3dpdGNoKHIpe2Nhc2UiUSI6Y2FzZSJRUSI6cmV0dXJuIFB0KHIubGVuZ3RoLHQpO2Nhc2UiUW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoicXVhcnRlciJ9KTtjYXNlIlFRUSI6cmV0dXJuIGkucXVhcnRlcih0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiUVFRUVEiOnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkucXVhcnRlcih0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0xJiZyPD00fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0TW9udGgoKGktMSkqMywxKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgSUMsYkZlPXAoKCk9PntNcigpOyRyKCk7SUM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0xMjA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInEiOmNhc2UicXEiOnJldHVybiBQdChyLmxlbmd0aCx0KTtjYXNlInFvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6InF1YXJ0ZXIifSk7Y2FzZSJxcXEiOnJldHVybiBpLnF1YXJ0ZXIodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtjYXNlInFxcXFxIjpyZXR1cm4gaS5xdWFydGVyKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gaS5xdWFydGVyKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLnF1YXJ0ZXIodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9NH1zZXQodCxyLGkpe3JldHVybiB0LnNldE1vbnRoKChpLTEpKjMsMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwiUSIsIk0iLCJMIiwidyIsIkkiLCJkIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFBDLHZGZT1wKCgpPT57emEoKTtNcigpOyRyKCk7UEM9Y2xhc3MgZXh0ZW5kcyBydHtpbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTCIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl07cHJpb3JpdHk9MTEwO3BhcnNlKHQscixpKXtsZXQgYT1uPT5uLTE7c3dpdGNoKHIpe2Nhc2UiTSI6cmV0dXJuIFZyKGNyKGhyLm1vbnRoLHQpLGEpO2Nhc2UiTU0iOnJldHVybiBWcihQdCgyLHQpLGEpO2Nhc2UiTW8iOnJldHVybiBWcihpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoibW9udGgifSksYSk7Y2FzZSJNTU0iOnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiTU1NTU0iOnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSk7ZGVmYXVsdDpyZXR1cm4gaS5tb250aCh0LHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5tb250aCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkubW9udGgodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9MTF9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRNb250aChpLDEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH19fSk7dmFyIE5DLHhGZT1wKCgpPT57emEoKTtNcigpOyRyKCk7TkM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0xMTA7cGFyc2UodCxyLGkpe2xldCBhPW49Pm4tMTtzd2l0Y2gocil7Y2FzZSJMIjpyZXR1cm4gVnIoY3IoaHIubW9udGgsdCksYSk7Y2FzZSJMTCI6cmV0dXJuIFZyKFB0KDIsdCksYSk7Y2FzZSJMbyI6cmV0dXJuIFZyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJtb250aCJ9KSxhKTtjYXNlIkxMTCI6cmV0dXJuIGkubW9udGgodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLm1vbnRoKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJMTExMTCI6cmV0dXJuIGkubW9udGgodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoic3RhbmRhbG9uZSJ9KTtkZWZhdWx0OnJldHVybiBpLm1vbnRoKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLm1vbnRoKHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5tb250aCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0wJiZyPD0xMX1zZXQodCxyLGkpe3JldHVybiB0LnNldE1vbnRoKGksMSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bIlkiLCJSIiwicSIsIlEiLCJNIiwidyIsIkkiLCJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiBGQyhlLHQscil7bGV0IGk9Y2UoZSxyPy5pbiksYT16OChpLHIpLXQ7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKS1hKjcpLGNlKGkscj8uaW4pfXZhciBTOWksc0o9cCgoKT0+e2RDKCk7UmUoKTtTOWk9RkN9KTt2YXIgT0MseUZlPXAoKCk9PntzSigpO2YyKCk7emEoKTtNcigpOyRyKCk7T0M9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0xMDA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInciOnJldHVybiBjcihoci53ZWVrLHQpO2Nhc2Uid28iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoid2VlayJ9KTtkZWZhdWx0OnJldHVybiBQdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9NTN9c2V0KHQscixpLGEpe3JldHVybiBlMShGQyh0LGksYSksYSl9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsImkiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIFJDKGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKSxhPVM4KGksciktdDtyZXR1cm4gaS5zZXREYXRlKGkuZ2V0RGF0ZSgpLWEqNyksaX12YXIgSTlpLGxKPXAoKCk9PntsQygpO1JlKCk7STlpPVJDfSk7dmFyIEJDLHdGZT1wKCgpPT57bEooKTtFcygpO3phKCk7TXIoKTskcigpO0JDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9MTAwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJJIjpyZXR1cm4gY3IoaHIud2Vlayx0KTtjYXNlIklvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6IndlZWsifSk7ZGVmYXVsdDpyZXR1cm4gUHQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTEmJnI8PTUzfXNldCh0LHIsaSl7cmV0dXJuIHJpKFJDKHQsaSkpfWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJZIiwidSIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiZCIsIkQiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIE5EcixGRHIsSEMsTUZlPXAoKCk9Pnt6YSgpO01yKCk7JHIoKTtORHI9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxGRHI9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxIQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTkwO3N1YlByaW9yaXR5PTE7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImQiOnJldHVybiBjcihoci5kYXRlLHQpO2Nhc2UiZG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBQdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtsZXQgaT10LmdldEZ1bGxZZWFyKCksYT1fQyhpKSxuPXQuZ2V0TW9udGgoKTtyZXR1cm4gYT9yPj0xJiZyPD1GRHJbbl06cj49MSYmcjw9TkRyW25dfXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0RGF0ZShpKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiWSIsIlIiLCJxIiwiUSIsInciLCJJIiwiRCIsImkiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIHFDLGtGZT1wKCgpPT57emEoKTtNcigpOyRyKCk7cUM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT05MDtzdWJwcmlvcml0eT0xO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJEIjpjYXNlIkREIjpyZXR1cm4gY3IoaHIuZGF5T2ZZZWFyLHQpO2Nhc2UiRG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF0ZSJ9KTtkZWZhdWx0OnJldHVybiBQdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtsZXQgaT10LmdldEZ1bGxZZWFyKCk7cmV0dXJuIF9DKGkpP3I+PTEmJnI8PTM2NjpyPj0xJiZyPD0zNjV9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRNb250aCgwLGkpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJZIiwiUiIsInEiLCJRIiwiTSIsIkwiLCJ3IiwiSSIsImQiLCJFIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTtmdW5jdGlvbiBZMChlLHQscil7bGV0IGk9RXIoKSxhPXI/LndlZWtTdGFydHNPbj8/cj8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P2kud2Vla1N0YXJ0c09uPz9pLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG49Y2UoZSxyPy5pbiksbz1uLmdldERheSgpLGw9KHQlNys3KSU3LGM9Ny1hLHU9dDwwfHx0PjY/dC0obytjKSU3OihsK2MpJTctKG8rYyklNztyZXR1cm4gZ2kobix1LHIpfXZhciBLOWksUm09cCgoKT0+e01hKCk7THMoKTtSZSgpO0s5aT1ZMH0pO3ZhciBqQyxTRmU9cCgoKT0+e1JtKCk7TXIoKTtqQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJFIjpjYXNlIkVFIjpjYXNlIkVFRSI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUUiOnJldHVybiBpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiRUVFRUVFIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9Nn1zZXQodCxyLGksYSl7cmV0dXJuIHQ9WTAodCxpLGEpLHQuc2V0SG91cnMoMCwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJEIiwiaSIsImUiLCJjIiwidCIsIlQiXX19KTt2YXIgVkMsekZlPXAoKCk9PntSbSgpO01yKCk7JHIoKTtWQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpLGEpe2xldCBuPW89PntsZXQgcz1NYXRoLmZsb29yKChvLTEpLzcpKjc7cmV0dXJuKG8rYS53ZWVrU3RhcnRzT24rNiklNytzfTtzd2l0Y2gocil7Y2FzZSJlIjpjYXNlImVlIjpyZXR1cm4gVnIoUHQoci5sZW5ndGgsdCksbik7Y2FzZSJlbyI6cmV0dXJuIFZyKGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJkYXkifSksbik7Y2FzZSJlZWUiOnJldHVybiBpLmRheSh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtjYXNlImVlZWVlZSI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJzaG9ydCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6Im5hcnJvdyIsY29udGV4dDoiZm9ybWF0dGluZyJ9KTtkZWZhdWx0OnJldHVybiBpLmRheSh0LHt3aWR0aDoid2lkZSIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTZ9c2V0KHQscixpLGEpe3JldHVybiB0PVkwKHQsaSxhKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlIiLCJ1IiwicSIsIlEiLCJNIiwiTCIsIkkiLCJkIiwiRCIsIkUiLCJpIiwiYyIsInQiLCJUIl19fSk7dmFyIFVDLENGZT1wKCgpPT57Um0oKTtNcigpOyRyKCk7VUM9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT05MDtwYXJzZSh0LHIsaSxhKXtsZXQgbj1vPT57bGV0IHM9TWF0aC5mbG9vcigoby0xKS83KSo3O3JldHVybihvK2Eud2Vla1N0YXJ0c09uKzYpJTcrc307c3dpdGNoKHIpe2Nhc2UiYyI6Y2FzZSJjYyI6cmV0dXJuIFZyKFB0KHIubGVuZ3RoLHQpLG4pO2Nhc2UiY28iOnJldHVybiBWcihpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF5In0pLG4pO2Nhc2UiY2NjIjpyZXR1cm4gaS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjYyI6cmV0dXJuIGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7Y2FzZSJjY2NjY2MiOnJldHVybiBpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6InN0YW5kYWxvbmUifSk7ZGVmYXVsdDpyZXR1cm4gaS5kYXkodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6InN0YW5kYWxvbmUifSl8fGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoic3RhbmRhbG9uZSJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJzdGFuZGFsb25lIn0pfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0wJiZyPD02fXNldCh0LHIsaSxhKXtyZXR1cm4gdD1ZMCh0LGksYSksdC5zZXRIb3VycygwLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bInkiLCJSIiwidSIsInEiLCJRIiwiTSIsIkwiLCJJIiwiZCIsIkQiLCJFIiwiaSIsImUiLCJ0IiwiVCJdfX0pO2Z1bmN0aW9uIFdDKGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKSxhPXhDKGksciksbj10LWE7cmV0dXJuIGdpKGksbixyKX12YXIgbWdpLGNKPXAoKCk9PntMcygpO2lKKCk7UmUoKTttZ2k9V0N9KTt2YXIgR0MsVEZlPXAoKCk9PntjSigpO01yKCk7JHIoKTtHQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTkwO3BhcnNlKHQscixpKXtsZXQgYT1uPT5uPT09MD83Om47c3dpdGNoKHIpe2Nhc2UiaSI6Y2FzZSJpaSI6cmV0dXJuIFB0KHIubGVuZ3RoLHQpO2Nhc2UiaW8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiZGF5In0pO2Nhc2UiaWlpIjpyZXR1cm4gVnIoaS5kYXkodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7Y2FzZSJpaWlpaSI6cmV0dXJuIFZyKGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7Y2FzZSJpaWlpaWkiOnJldHVybiBWcihpLmRheSh0LHt3aWR0aDoic2hvcnQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSksYSk7ZGVmYXVsdDpyZXR1cm4gVnIoaS5kYXkodCx7d2lkdGg6IndpZGUiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5KHQse3dpZHRoOiJhYmJyZXZpYXRlZCIsY29udGV4dDoiZm9ybWF0dGluZyJ9KXx8aS5kYXkodCx7d2lkdGg6InNob3J0Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheSh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pLGEpfX12YWxpZGF0ZSh0LHIpe3JldHVybiByPj0xJiZyPD03fXNldCh0LHIsaSl7cmV0dXJuIHQ9V0ModCxpKSx0LnNldEhvdXJzKDAsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsieSIsIlkiLCJ1IiwicSIsIlEiLCJNIiwiTCIsInciLCJkIiwiRCIsIkUiLCJlIiwiYyIsInQiLCJUIl19fSk7dmFyIFlDLF9GZT1wKCgpPT57TXIoKTskcigpO1lDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImEiOmNhc2UiYWEiOmNhc2UiYWFhIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYWFhYWEiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoXzgoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYiIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIFpDLExGZT1wKCgpPT57TXIoKTskcigpO1pDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImIiOmNhc2UiYmIiOmNhc2UiYmJiIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiYmJiYmIiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoXzgoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsIkIiLCJIIiwiayIsInQiLCJUIl19fSk7dmFyIFhDLEFGZT1wKCgpPT57TXIoKTskcigpO1hDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9ODA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIkIiOmNhc2UiQkIiOmNhc2UiQkJCIjpyZXR1cm4gaS5kYXlQZXJpb2QodCx7d2lkdGg6ImFiYnJldmlhdGVkIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2Nhc2UiQkJCQkIiOnJldHVybiBpLmRheVBlcmlvZCh0LHt3aWR0aDoibmFycm93Iixjb250ZXh0OiJmb3JtYXR0aW5nIn0pO2RlZmF1bHQ6cmV0dXJuIGkuZGF5UGVyaW9kKHQse3dpZHRoOiJ3aWRlIixjb250ZXh0OiJmb3JtYXR0aW5nIn0pfHxpLmRheVBlcmlvZCh0LHt3aWR0aDoiYWJicmV2aWF0ZWQiLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl8fGkuZGF5UGVyaW9kKHQse3dpZHRoOiJuYXJyb3ciLGNvbnRleHQ6ImZvcm1hdHRpbmcifSl9fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0SG91cnMoXzgoaSksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJ0IiwiVCJdfX0pO3ZhciBRQyxERmU9cCgoKT0+e3phKCk7TXIoKTskcigpO1FDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9NzA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlImgiOnJldHVybiBjcihoci5ob3VyMTJoLHQpO2Nhc2UiaG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBQdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MSYmcjw9MTJ9c2V0KHQscixpKXtsZXQgYT10LmdldEhvdXJzKCk+PTEyO3JldHVybiBhJiZpPDEyP3Quc2V0SG91cnMoaSsxMiwwLDAsMCk6IWEmJmk9PT0xMj90LnNldEhvdXJzKDAsMCwwLDApOnQuc2V0SG91cnMoaSwwLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJIIiwiSyIsImsiLCJ0IiwiVCJdfX0pO3ZhciBKQyxFRmU9cCgoKT0+e3phKCk7TXIoKTskcigpO0pDPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9NzA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIkgiOnJldHVybiBjcihoci5ob3VyMjNoLHQpO2Nhc2UiSG8iOnJldHVybiBpLm9yZGluYWxOdW1iZXIodCx7dW5pdDoiaG91ciJ9KTtkZWZhdWx0OnJldHVybiBQdChyLmxlbmd0aCx0KX19dmFsaWRhdGUodCxyKXtyZXR1cm4gcj49MCYmcjw9MjN9c2V0KHQscixpKXtyZXR1cm4gdC5zZXRIb3VycyhpLDAsMCwwKSx0fWluY29tcGF0aWJsZVRva2Vucz1bImEiLCJiIiwiaCIsIksiLCJrIiwidCIsIlQiXX19KTt2YXIgS0MsJEZlPXAoKCk9Pnt6YSgpO01yKCk7JHIoKTtLQz1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTcwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJLIjpyZXR1cm4gY3IoaHIuaG91cjExaCx0KTtjYXNlIktvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gUHQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTExfXNldCh0LHIsaSl7cmV0dXJuIHQuZ2V0SG91cnMoKT49MTImJmk8MTI/dC5zZXRIb3VycyhpKzEyLDAsMCwwKTp0LnNldEhvdXJzKGksMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiaCIsIkgiLCJrIiwidCIsIlQiXX19KTt2YXIgZVQsSUZlPXAoKCk9Pnt6YSgpO01yKCk7JHIoKTtlVD1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTcwO3BhcnNlKHQscixpKXtzd2l0Y2gocil7Y2FzZSJrIjpyZXR1cm4gY3IoaHIuaG91cjI0aCx0KTtjYXNlImtvIjpyZXR1cm4gaS5vcmRpbmFsTnVtYmVyKHQse3VuaXQ6ImhvdXIifSk7ZGVmYXVsdDpyZXR1cm4gUHQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTEmJnI8PTI0fXNldCh0LHIsaSl7bGV0IGE9aTw9MjQ/aSUyNDppO3JldHVybiB0LnNldEhvdXJzKGEsMCwwLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsiYSIsImIiLCJoIiwiSCIsIksiLCJ0IiwiVCJdfX0pO3ZhciB0VCxQRmU9cCgoKT0+e3phKCk7TXIoKTskcigpO3RUPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9NjA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlIm0iOnJldHVybiBjcihoci5taW51dGUsdCk7Y2FzZSJtbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJtaW51dGUifSk7ZGVmYXVsdDpyZXR1cm4gUHQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTU5fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0TWludXRlcyhpLDAsMCksdH1pbmNvbXBhdGlibGVUb2tlbnM9WyJ0IiwiVCJdfX0pO3ZhciByVCxORmU9cCgoKT0+e3phKCk7TXIoKTskcigpO3JUPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9NTA7cGFyc2UodCxyLGkpe3N3aXRjaChyKXtjYXNlInMiOnJldHVybiBjcihoci5zZWNvbmQsdCk7Y2FzZSJzbyI6cmV0dXJuIGkub3JkaW5hbE51bWJlcih0LHt1bml0OiJzZWNvbmQifSk7ZGVmYXVsdDpyZXR1cm4gUHQoci5sZW5ndGgsdCl9fXZhbGlkYXRlKHQscil7cmV0dXJuIHI+PTAmJnI8PTU5fXNldCh0LHIsaSl7cmV0dXJuIHQuc2V0U2Vjb25kcyhpLDApLHR9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiXX19KTt2YXIgaVQsRkZlPXAoKCk9PntNcigpOyRyKCk7aVQ9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT0zMDtwYXJzZSh0LHIpe2xldCBpPWE9Pk1hdGgudHJ1bmMoYSpNYXRoLnBvdygxMCwtci5sZW5ndGgrMykpO3JldHVybiBWcihQdChyLmxlbmd0aCx0KSxpKX1zZXQodCxyLGkpe3JldHVybiB0LnNldE1pbGxpc2Vjb25kcyhpKSx0fWluY29tcGF0aWJsZVRva2Vucz1bInQiLCJUIl19fSk7dmFyIGFULE9GZT1wKCgpPT57Z3QoKTtqbCgpO3phKCk7TXIoKTskcigpO2FUPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9MTA7cGFyc2UodCxyKXtzd2l0Y2gocil7Y2FzZSJYIjpyZXR1cm4gU28oa28uYmFzaWNPcHRpb25hbE1pbnV0ZXMsdCk7Y2FzZSJYWCI6cmV0dXJuIFNvKGtvLmJhc2ljLHQpO2Nhc2UiWFhYWCI6cmV0dXJuIFNvKGtvLmJhc2ljT3B0aW9uYWxTZWNvbmRzLHQpO2Nhc2UiWFhYWFgiOnJldHVybiBTbyhrby5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyx0KTtkZWZhdWx0OnJldHVybiBTbyhrby5leHRlbmRlZCx0KX19c2V0KHQscixpKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD90Ok5lKHQsdC5nZXRUaW1lKCktRTEodCktaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJ4Il19fSk7dmFyIG5ULFJGZT1wKCgpPT57Z3QoKTtqbCgpO3phKCk7TXIoKTskcigpO25UPWNsYXNzIGV4dGVuZHMgcnR7cHJpb3JpdHk9MTA7cGFyc2UodCxyKXtzd2l0Y2gocil7Y2FzZSJ4IjpyZXR1cm4gU28oa28uYmFzaWNPcHRpb25hbE1pbnV0ZXMsdCk7Y2FzZSJ4eCI6cmV0dXJuIFNvKGtvLmJhc2ljLHQpO2Nhc2UieHh4eCI6cmV0dXJuIFNvKGtvLmJhc2ljT3B0aW9uYWxTZWNvbmRzLHQpO2Nhc2UieHh4eHgiOnJldHVybiBTbyhrby5leHRlbmRlZE9wdGlvbmFsU2Vjb25kcyx0KTtkZWZhdWx0OnJldHVybiBTbyhrby5leHRlbmRlZCx0KX19c2V0KHQscixpKXtyZXR1cm4gci50aW1lc3RhbXBJc1NldD90Ok5lKHQsdC5nZXRUaW1lKCktRTEodCktaSl9aW5jb21wYXRpYmxlVG9rZW5zPVsidCIsIlQiLCJYIl19fSk7dmFyIG9ULEJGZT1wKCgpPT57Z3QoKTtNcigpOyRyKCk7b1Q9Y2xhc3MgZXh0ZW5kcyBydHtwcmlvcml0eT00MDtwYXJzZSh0KXtyZXR1cm4gQ0ModCl9c2V0KHQscixpKXtyZXR1cm5bTmUodCxpKjFlMykse3RpbWVzdGFtcElzU2V0OiEwfV19aW5jb21wYXRpYmxlVG9rZW5zPSIqIn19KTt2YXIgc1QsSEZlPXAoKCk9PntndCgpO01yKCk7JHIoKTtzVD1jbGFzcyBleHRlbmRzIHJ0e3ByaW9yaXR5PTIwO3BhcnNlKHQpe3JldHVybiBDQyh0KX1zZXQodCxyLGkpe3JldHVybltOZSh0LGkpLHt0aW1lc3RhbXBJc1NldDohMH1dfWluY29tcGF0aWJsZVRva2Vucz0iKiJ9fSk7dmFyIGxULHFGZT1wKCgpPT57dUZlKCk7cEZlKCk7aEZlKCk7ZkZlKCk7bUZlKCk7Z0ZlKCk7YkZlKCk7dkZlKCk7eEZlKCk7eUZlKCk7d0ZlKCk7TUZlKCk7a0ZlKCk7U0ZlKCk7ekZlKCk7Q0ZlKCk7VEZlKCk7X0ZlKCk7TEZlKCk7QUZlKCk7REZlKCk7RUZlKCk7JEZlKCk7SUZlKCk7UEZlKCk7TkZlKCk7RkZlKCk7T0ZlKCk7UkZlKCk7QkZlKCk7SEZlKCk7bFQ9e0c6bmV3IHpDLHk6bmV3IExDLFk6bmV3IEFDLFI6bmV3IERDLHU6bmV3IEVDLFE6bmV3ICRDLHE6bmV3IElDLE06bmV3IFBDLEw6bmV3IE5DLHc6bmV3IE9DLEk6bmV3IEJDLGQ6bmV3IEhDLEQ6bmV3IHFDLEU6bmV3IGpDLGU6bmV3IFZDLGM6bmV3IFVDLGk6bmV3IEdDLGE6bmV3IFlDLGI6bmV3IFpDLEI6bmV3IFhDLGg6bmV3IFFDLEg6bmV3IEpDLEs6bmV3IEtDLGs6bmV3IGVULG06bmV3IHRULHM6bmV3IHJULFM6bmV3IGlULFg6bmV3IGFULHg6bmV3IG5ULHQ6bmV3IG9ULFQ6bmV3IHNUfX0pO2Z1bmN0aW9uIGNUKGUsdCxyLGkpe2xldCBhPSgpPT5OZShpPy5pbnx8cixOYU4pLG49dkMoKSxvPWk/LmxvY2FsZT8/bi5sb2NhbGU/P3duLHM9aT8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/bi5maXJzdFdlZWtDb250YWluc0RhdGU/P24ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEsbD1pPy53ZWVrU3RhcnRzT24/P2k/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9uLndlZWtTdGFydHNPbj8/bi5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MDtpZighdClyZXR1cm4gZT9hKCk6Y2UocixpPy5pbik7bGV0IGM9e2ZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpzLHdlZWtTdGFydHNPbjpsLGxvY2FsZTpvfSx1PVtuZXcgU0MoaT8uaW4scildLGQ9dC5tYXRjaChSRHIpLm1hcChiPT57bGV0IHk9YlswXTtpZih5IGluIFcwKXtsZXQgdz1XMFt5XTtyZXR1cm4gdyhiLG8uZm9ybWF0TG9uZyl9cmV0dXJuIGJ9KS5qb2luKCIiKS5tYXRjaChPRHIpLGg9W107Zm9yKGxldCBiIG9mIGQpeyFpPy51c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnMmJnBDKGIpJiZObShiLHQsZSksIWk/LnVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnMmJnVDKGIpJiZObShiLHQsZSk7bGV0IHk9YlswXSx3PWxUW3ldO2lmKHcpe2xldHtpbmNvbXBhdGlibGVUb2tlbnM6a309dztpZihBcnJheS5pc0FycmF5KGspKXtsZXQgej1oLmZpbmQoTT0+ay5pbmNsdWRlcyhNLnRva2VuKXx8TS50b2tlbj09PXkpO2lmKHopdGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBmb3JtYXQgc3RyaW5nIG11c3RuJ3QgY29udGFpbiBcYCR7ei5mdWxsVG9rZW59XGAgYW5kIFxgJHtifVxgIGF0IHRoZSBzYW1lIHRpbWVgKX1lbHNlIGlmKHcuaW5jb21wYXRpYmxlVG9rZW5zPT09IioiJiZoLmxlbmd0aD4wKXRocm93IG5ldyBSYW5nZUVycm9yKGBUaGUgZm9ybWF0IHN0cmluZyBtdXN0bid0IGNvbnRhaW4gXGAke2J9XGAgYW5kIGFueSBvdGhlciB0b2tlbiBhdCB0aGUgc2FtZSB0aW1lYCk7aC5wdXNoKHt0b2tlbjp5LGZ1bGxUb2tlbjpifSk7bGV0IE89dy5ydW4oZSxiLG8ubWF0Y2gsYyk7aWYoIU8pcmV0dXJuIGEoKTt1LnB1c2goTy5zZXR0ZXIpLGU9Ty5yZXN0fWVsc2V7aWYoeS5tYXRjaChqRHIpKXRocm93IG5ldyBSYW5nZUVycm9yKCJGb3JtYXQgc3RyaW5nIGNvbnRhaW5zIGFuIHVuZXNjYXBlZCBsYXRpbiBhbHBoYWJldCBjaGFyYWN0ZXIgYCIreSsiYCIpO2lmKGI9PT0iJyciP2I9IiciOnk9PT0iJyImJihiPVZEcihiKSksZS5pbmRleE9mKGIpPT09MCllPWUuc2xpY2UoYi5sZW5ndGgpO2Vsc2UgcmV0dXJuIGEoKX19aWYoZS5sZW5ndGg+MCYmcURyLnRlc3QoZSkpcmV0dXJuIGEoKTtsZXQgZj11Lm1hcChiPT5iLnByaW9yaXR5KS5zb3J0KChiLHkpPT55LWIpLmZpbHRlcigoYix5LHcpPT53LmluZGV4T2YoYik9PT15KS5tYXAoYj0+dS5maWx0ZXIoeT0+eS5wcmlvcml0eT09PWIpLnNvcnQoKHksdyk9Pncuc3ViUHJpb3JpdHkteS5zdWJQcmlvcml0eSkpLm1hcChiPT5iWzBdKSx4PWNlKHIsaT8uaW4pO2lmKGlzTmFOKCt4KSlyZXR1cm4gYSgpO2xldCB2PXt9O2ZvcihsZXQgYiBvZiBmKXtpZighYi52YWxpZGF0ZSh4LGMpKXJldHVybiBhKCk7bGV0IHk9Yi5zZXQoeCx2LGMpO0FycmF5LmlzQXJyYXkoeSk/KHg9eVswXSxPYmplY3QuYXNzaWduKHYseVsxXSkpOng9eX1yZXR1cm4geH1mdW5jdGlvbiBWRHIoZSl7cmV0dXJuIGUubWF0Y2goQkRyKVsxXS5yZXBsYWNlKEhEciwiJyIpfXZhciBPRHIsUkRyLEJEcixIRHIscURyLGpEcixjdmksZEo9cCgoKT0+e0k2KCk7WVEoKTtaUSgpO2d0KCk7ckooKTtSZSgpO29KKCk7cUZlKCk7T0RyPS9beVlRcU1Md0lkRGVjaWhIS2ttc11vfChcdylcMSp8Jyd8JygnJ3xbXiddKSsoJ3wkKXwuL2csUkRyPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLEJEcj0vXicoW15dKj8pJz8kLyxIRHI9LycnL2cscURyPS9cUy8sakRyPS9bYS16QS1aXS87Y3ZpPWNUfSk7ZnVuY3Rpb24gakZlKGUsdCxyKXtyZXR1cm4gWGkoY1QoZSx0LG5ldyBEYXRlLHIpKX12YXIgaHZpLFZGZT1wKCgpPT57VWwoKTtkSigpO2h2aT1qRmV9KTtmdW5jdGlvbiBVRmUoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0RGF5KCk9PT0xfXZhciBndmksV0ZlPXAoKCk9PntSZSgpO2d2aT1VRmV9KTtmdW5jdGlvbiBHRmUoZSl7cmV0dXJuK2NlKGUpPERhdGUubm93KCl9dmFyIHh2aSxZRmU9cCgoKT0+e1JlKCk7eHZpPUdGZX0pO2Z1bmN0aW9uIEJtKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbik7cmV0dXJuIHIuc2V0TWludXRlcygwLDAsMCkscn12YXIgTXZpLHVKPXAoKCk9PntSZSgpO012aT1CbX0pO2Z1bmN0aW9uIGRUKGUsdCxyKXtsZXRbaSxhXT11dChyPy5pbixlLHQpO3JldHVybitCbShpKT09K0JtKGEpfXZhciBDdmkscEo9cCgoKT0+e2pyKCk7dUooKTtDdmk9ZFR9KTtmdW5jdGlvbiBMOChlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtyZXR1cm4rZTEoaSxyKT09K2UxKGEscil9dmFyIEF2aSx1VD1wKCgpPT57anIoKTtmMigpO0F2aT1MOH0pO2Z1bmN0aW9uIHBUKGUsdCxyKXtyZXR1cm4gTDgoZSx0LHsuLi5yLHdlZWtTdGFydHNPbjoxfSl9dmFyICR2aSxoSj1wKCgpPT57dVQoKTskdmk9cFR9KTtmdW5jdGlvbiBaRmUoZSx0LHIpe2xldFtpLGFdPXV0KHI/LmluLGUsdCk7cmV0dXJuK0JuKGkpPT0rQm4oYSl9dmFyIEZ2aSxYRmU9cCgoKT0+e3U4KCk7anIoKTtGdmk9WkZlfSk7ZnVuY3Rpb24gSG0oZSx0KXtsZXQgcj1jZShlLHQ/LmluKTtyZXR1cm4gci5zZXRTZWNvbmRzKDAsMCkscn12YXIgQnZpLGZKPXAoKCk9PntSZSgpO0J2aT1IbX0pO2Z1bmN0aW9uIGhUKGUsdCl7cmV0dXJuK0htKGUpPT0rSG0odCl9dmFyIGp2aSxtSj1wKCgpPT57ZkooKTtqdmk9aFR9KTtmdW5jdGlvbiBmVChlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09YS5nZXRGdWxsWWVhcigpJiZpLmdldE1vbnRoKCk9PT1hLmdldE1vbnRoKCl9dmFyIFd2aSxnSj1wKCgpPT57anIoKTtXdmk9ZlR9KTtmdW5jdGlvbiBtVChlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtyZXR1cm4rRnMoaSk9PStGcyhhKX12YXIgWHZpLGJKPXAoKCk9PntqcigpO3RDKCk7WHZpPW1UfSk7ZnVuY3Rpb24gcW0oZSx0KXtsZXQgcj1jZShlLHQ/LmluKTtyZXR1cm4gci5zZXRNaWxsaXNlY29uZHMoMCkscn12YXIgS3ZpLHZKPXAoKCk9PntSZSgpO0t2aT1xbX0pO2Z1bmN0aW9uIGdUKGUsdCl7cmV0dXJuK3FtKGUpPT0rcW0odCl9dmFyIHJ4aSx4Sj1wKCgpPT57dkooKTtyeGk9Z1R9KTtmdW5jdGlvbiBiVChlLHQscil7bGV0W2ksYV09dXQocj8uaW4sZSx0KTtyZXR1cm4gaS5nZXRGdWxsWWVhcigpPT09YS5nZXRGdWxsWWVhcigpfXZhciBueGkseUo9cCgoKT0+e2pyKCk7bnhpPWJUfSk7ZnVuY3Rpb24gUUZlKGUsdCl7cmV0dXJuIGRUKGNlKGUsdD8uaW4pLFF0KHQ/LmlufHxlKSl9dmFyIGR4aSxKRmU9cCgoKT0+e2JpKCk7cEooKTtSZSgpO2R4aT1RRmV9KTtmdW5jdGlvbiBLRmUoZSx0KXtyZXR1cm4gcFQoTmUodD8uaW58fGUsZSksUXQodD8uaW58fGUpKX12YXIgbXhpLGVPZT1wKCgpPT57Z3QoKTtiaSgpO2hKKCk7bXhpPUtGZX0pO2Z1bmN0aW9uIHRPZShlKXtyZXR1cm4gaFQoZSxRdChlKSl9dmFyIHh4aSxyT2U9cCgoKT0+e2JpKCk7bUooKTt4eGk9dE9lfSk7ZnVuY3Rpb24gaU9lKGUsdCl7cmV0dXJuIGZUKE5lKHQ/LmlufHxlLGUpLFF0KHQ/LmlufHxlKSl9dmFyIFN4aSxhT2U9cCgoKT0+e2d0KCk7YmkoKTtnSigpO1N4aT1pT2V9KTtmdW5jdGlvbiBuT2UoZSx0KXtyZXR1cm4gbVQoTmUodD8uaW58fGUsZSksUXQodD8uaW58fGUpKX12YXIgTHhpLG9PZT1wKCgpPT57Z3QoKTtiaSgpO2JKKCk7THhpPW5PZX0pO2Z1bmN0aW9uIHNPZShlKXtyZXR1cm4gZ1QoZSxRdChlKSl9dmFyICR4aSxsT2U9cCgoKT0+e2JpKCk7eEooKTskeGk9c09lfSk7ZnVuY3Rpb24gY09lKGUsdCl7cmV0dXJuIEw4KE5lKHQ/LmlufHxlLGUpLFF0KHQ/LmlufHxlKSx0KX12YXIgT3hpLGRPZT1wKCgpPT57Z3QoKTtiaSgpO3VUKCk7T3hpPWNPZX0pO2Z1bmN0aW9uIHVPZShlLHQpe3JldHVybiBiVChOZSh0Py5pbnx8ZSxlKSxRdCh0Py5pbnx8ZSkpfXZhciBqeGkscE9lPXAoKCk9PntndCgpO2JpKCk7eUooKTtqeGk9dU9lfSk7ZnVuY3Rpb24gaE9lKGUsdCl7cmV0dXJuIGNlKGUsdD8uaW4pLmdldERheSgpPT09NH12YXIgV3hpLGZPZT1wKCgpPT57UmUoKTtXeGk9aE9lfSk7ZnVuY3Rpb24gbU9lKGUsdCl7cmV0dXJuIElzKE5lKHQ/LmlufHxlLGUpLFF0KHQ/LmlufHxlKSl9dmFyIFF4aSxnT2U9cCgoKT0+e2d0KCk7YmkoKTtmOCgpO1F4aT1tT2V9KTtmdW5jdGlvbiBiT2UoZSx0KXtyZXR1cm4gSXMoZSxnaShRdCh0Py5pbnx8ZSksMSksdCl9dmFyIHJ5aSx2T2U9cCgoKT0+e0xzKCk7YmkoKTtmOCgpO3J5aT1iT2V9KTtmdW5jdGlvbiB4T2UoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0RGF5KCk9PT0yfXZhciBueWkseU9lPXAoKCk9PntSZSgpO255aT14T2V9KTtmdW5jdGlvbiB3T2UoZSx0KXtyZXR1cm4gY2UoZSx0Py5pbikuZ2V0RGF5KCk9PT0zfXZhciBseWksTU9lPXAoKCk9PntSZSgpO2x5aT13T2V9KTtmdW5jdGlvbiBrT2UoZSx0LHIpe2xldCBpPStjZShlLHI/LmluKSxbYSxuXT1bK2NlKHQuc3RhcnQscj8uaW4pLCtjZSh0LmVuZCxyPy5pbildLnNvcnQoKG8scyk9Pm8tcyk7cmV0dXJuIGk+PWEmJmk8PW59dmFyIHV5aSxTT2U9cCgoKT0+e1JlKCk7dXlpPWtPZX0pO2Z1bmN0aW9uIFowKGUsdCxyKXtyZXR1cm4gZ2koZSwtdCxyKX12YXIgZnlpLGptPXAoKCk9PntMcygpO2Z5aT1aMH0pO2Z1bmN0aW9uIHpPZShlLHQpe3JldHVybiBJcyhOZSh0Py5pbnx8ZSxlKSxaMChRdCh0Py5pbnx8ZSksMSkpfXZhciB5eWksQ09lPXAoKCk9PntndCgpO2JpKCk7ZjgoKTtqbSgpO3l5aT16T2V9KTtmdW5jdGlvbiBUT2UoZSx0KXtsZXQgcj1jZShlLHQ/LmluKSxpPXIuZ2V0RnVsbFllYXIoKSxhPTkrTWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihhKzEsMCwwKSxyLnNldEhvdXJzKDAsMCwwLDApLGNlKHIsdD8uaW4pfXZhciBreWksX09lPXAoKCk9PntSZSgpO2t5aT1UT2V9KTtmdW5jdGlvbiB2VChlLHQpe2xldCByPUVyKCksaT10Py53ZWVrU3RhcnRzT24/P3Q/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxhPWNlKGUsdD8uaW4pLG49YS5nZXREYXkoKSxvPShuPGk/LTc6MCkrNi0obi1pKTtyZXR1cm4gYS5zZXRIb3VycygwLDAsMCwwKSxhLnNldERhdGUoYS5nZXREYXRlKCkrbyksYX12YXIgVHlpLHdKPXAoKCk9PntNYSgpO1JlKCk7VHlpPXZUfSk7ZnVuY3Rpb24gTE9lKGUsdCl7cmV0dXJuIHZUKGUsey4uLnQsd2Vla1N0YXJ0c09uOjF9KX12YXIgQXlpLEFPZT1wKCgpPT57d0ooKTtBeWk9TE9lfSk7ZnVuY3Rpb24gRE9lKGUsdCl7bGV0IHI9R2EoZSx0KSxpPU5lKHQ/LmlufHxlLDApO2kuc2V0RnVsbFllYXIocisxLDAsNCksaS5zZXRIb3VycygwLDAsMCwwKTtsZXQgYT1yaShpLHQpO3JldHVybiBhLnNldERhdGUoYS5nZXREYXRlKCktMSksYX12YXIgUHlpLEVPZT1wKCgpPT57Z3QoKTtCMCgpO0VzKCk7UHlpPURPZX0pO2Z1bmN0aW9uICRPZShlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9ci5nZXRNb250aCgpLGE9aS1pJTMrMztyZXR1cm4gci5zZXRNb250aChhLDApLHIuc2V0SG91cnMoMCwwLDAsMCkscn12YXIgT3lpLElPZT1wKCgpPT57UmUoKTtPeWk9JE9lfSk7ZnVuY3Rpb24gUE9lKGUsdCl7bGV0IHI9Y2UoZSx0Py5pbiksaT1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIHIuc2V0RnVsbFllYXIoaSsxLDAsMCksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBIeWksTk9lPXAoKCk9PntSZSgpO0h5aT1QT2V9KTtmdW5jdGlvbiBGT2UoZSx0KXtsZXQgcj1jZShlKTtpZighWGkocikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO2xldCBpPXQubWF0Y2goVURyKTtyZXR1cm4gaT9pLm1hcChuPT57aWYobj09PSInJyIpcmV0dXJuIiciO2xldCBvPW5bMF07aWYobz09PSInIilyZXR1cm4gWkRyKG4pO2xldCBzPUhuW29dO2lmKHMpcmV0dXJuIHMocixuKTtpZihvLm1hdGNoKFlEcikpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkZvcm1hdCBzdHJpbmcgY29udGFpbnMgYW4gdW5lc2NhcGVkIGxhdGluIGFscGhhYmV0IGNoYXJhY3RlciBgIitvKyJgIik7cmV0dXJuIG59KS5qb2luKCIiKToiIn1mdW5jdGlvbiBaRHIoZSl7bGV0IHQ9ZS5tYXRjaChXRHIpO3JldHVybiB0P3RbMV0ucmVwbGFjZShHRHIsIiciKTplfXZhciBVRHIsV0RyLEdEcixZRHIsV3lpLE9PZT1wKCgpPT57R1EoKTtVbCgpO1JlKCk7VURyPS8oXHcpXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLFdEcj0vXicoW15dKj8pJz8kLyxHRHI9LycnL2csWURyPS9bYS16QS1aXS87V3lpPUZPZX0pO2Z1bmN0aW9uIFJPZSh7eWVhcnM6ZSxtb250aHM6dCx3ZWVrczpyLGRheXM6aSxob3VyczphLG1pbnV0ZXM6bixzZWNvbmRzOm99KXtsZXQgcz0wO2UmJihzKz1lKjM2NS4yNDI1KSx0JiYocys9dCooMzY1LjI0MjUvMTIpKSxyJiYocys9cio3KSxpJiYocys9aSk7bGV0IGw9cyoyNCo2MCo2MDtyZXR1cm4gYSYmKGwrPWEqNjAqNjApLG4mJihsKz1uKjYwKSxvJiYobCs9byksTWF0aC50cnVuYyhsKjFlMyl9dmFyIFp5aSxCT2U9cCgoKT0+e1J0KCk7WnlpPVJPZX0pO2Z1bmN0aW9uIEhPZShlKXtsZXQgdD1lL1JuO3JldHVybiBNYXRoLnRydW5jKHQpfXZhciBKeWkscU9lPXAoKCk9PntSdCgpO0p5aT1IT2V9KTtmdW5jdGlvbiBqT2UoZSl7bGV0IHQ9ZS93YTtyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgdHdpLFZPZT1wKCgpPT57UnQoKTt0d2k9ak9lfSk7ZnVuY3Rpb24gVU9lKGUpe2xldCB0PWUvczg7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIGF3aSxXT2U9cCgoKT0+e1J0KCk7YXdpPVVPZX0pO2Z1bmN0aW9uIEdPZShlKXtsZXQgdD1lL2t6O3JldHVybiBNYXRoLnRydW5jKHQpfXZhciBzd2ksWU9lPXAoKCk9PntSdCgpO3N3aT1HT2V9KTtmdW5jdGlvbiBaT2UoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSp3YSl9dmFyIGR3aSxYT2U9cCgoKT0+e1J0KCk7ZHdpPVpPZX0pO2Z1bmN0aW9uIFFPZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKmM4KX12YXIgaHdpLEpPZT1wKCgpPT57UnQoKTtod2k9UU9lfSk7ZnVuY3Rpb24gS09lKGUpe2xldCB0PWUvU3o7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIGd3aSxlUmU9cCgoKT0+e1J0KCk7Z3dpPUtPZX0pO2Z1bmN0aW9uIHRSZShlKXtsZXQgdD1lL3p6O3JldHVybiBNYXRoLnRydW5jKHQpfXZhciB4d2ksclJlPXAoKCk9PntSdCgpO3h3aT10UmV9KTtmdW5jdGlvbiBDYShlLHQscil7bGV0IGk9dC1HMChlLHIpO3JldHVybiBpPD0wJiYoaSs9NyksZ2koZSxpLHIpfXZhciBrd2ksR2w9cCgoKT0+e0xzKCk7T20oKTtrd2k9Q2F9KTtmdW5jdGlvbiBpUmUoZSx0KXtyZXR1cm4gQ2EoZSw1LHQpfXZhciBDd2ksYVJlPXAoKCk9PntHbCgpO0N3aT1pUmV9KTtmdW5jdGlvbiBuUmUoZSx0KXtyZXR1cm4gQ2EoZSwxLHQpfXZhciBMd2ksb1JlPXAoKCk9PntHbCgpO0x3aT1uUmV9KTtmdW5jdGlvbiBzUmUoZSx0KXtyZXR1cm4gQ2EoZSw2LHQpfXZhciBFd2ksbFJlPXAoKCk9PntHbCgpO0V3aT1zUmV9KTtmdW5jdGlvbiBjUmUoZSx0KXtyZXR1cm4gQ2EoZSwwLHQpfXZhciBQd2ksZFJlPXAoKCk9PntHbCgpO1B3aT1jUmV9KTtmdW5jdGlvbiB1UmUoZSx0KXtyZXR1cm4gQ2EoZSw0LHQpfXZhciBPd2kscFJlPXAoKCk9PntHbCgpO093aT11UmV9KTtmdW5jdGlvbiBoUmUoZSx0KXtyZXR1cm4gQ2EoZSwyLHQpfXZhciBId2ksZlJlPXAoKCk9PntHbCgpO0h3aT1oUmV9KTtmdW5jdGlvbiBtUmUoZSx0KXtyZXR1cm4gQ2EoZSwzLHQpfXZhciBWd2ksZ1JlPXAoKCk9PntHbCgpO1Z3aT1tUmV9KTtmdW5jdGlvbiB2UmUoZSx0KXtsZXQgcj0oKT0+TmUodD8uaW4sTmFOKSxpPXQ/LmFkZGl0aW9uYWxEaWdpdHM/PzIsYT1LRHIoZSksbjtpZihhLmRhdGUpe2xldCBjPWVFcihhLmRhdGUsaSk7bj10RXIoYy5yZXN0RGF0ZVN0cmluZyxjLnllYXIpfWlmKCFufHxpc05hTigrbikpcmV0dXJuIHIoKTtsZXQgbz0rbixzPTAsbDtpZihhLnRpbWUmJihzPXJFcihhLnRpbWUpLGlzTmFOKHMpKSlyZXR1cm4gcigpO2lmKGEudGltZXpvbmUpe2lmKGw9aUVyKGEudGltZXpvbmUpLGlzTmFOKGwpKXJldHVybiByKCl9ZWxzZXtsZXQgYz1uZXcgRGF0ZShvK3MpLHU9Y2UoMCx0Py5pbik7cmV0dXJuIHUuc2V0RnVsbFllYXIoYy5nZXRVVENGdWxsWWVhcigpLGMuZ2V0VVRDTW9udGgoKSxjLmdldFVUQ0RhdGUoKSksdS5zZXRIb3VycyhjLmdldFVUQ0hvdXJzKCksYy5nZXRVVENNaW51dGVzKCksYy5nZXRVVENTZWNvbmRzKCksYy5nZXRVVENNaWxsaXNlY29uZHMoKSksdX1yZXR1cm4gY2UobytzK2wsdD8uaW4pfWZ1bmN0aW9uIEtEcihlKXtsZXQgdD17fSxyPWUuc3BsaXQoeFQuZGF0ZVRpbWVEZWxpbWl0ZXIpLGk7aWYoci5sZW5ndGg+MilyZXR1cm4gdDtpZigvOi8udGVzdChyWzBdKT9pPXJbMF06KHQuZGF0ZT1yWzBdLGk9clsxXSx4VC50aW1lWm9uZURlbGltaXRlci50ZXN0KHQuZGF0ZSkmJih0LmRhdGU9ZS5zcGxpdCh4VC50aW1lWm9uZURlbGltaXRlcilbMF0saT1lLnN1YnN0cih0LmRhdGUubGVuZ3RoLGUubGVuZ3RoKSkpLGkpe2xldCBhPXhULnRpbWV6b25lLmV4ZWMoaSk7YT8odC50aW1lPWkucmVwbGFjZShhWzFdLCIiKSx0LnRpbWV6b25lPWFbMV0pOnQudGltZT1pfXJldHVybiB0fWZ1bmN0aW9uIGVFcihlLHQpe2xldCByPW5ldyBSZWdFeHAoIl4oPzooXFxkezR9fFsrLV1cXGR7IisoNCt0KSsifSl8KFxcZHsyfXxbKy1dXFxkeyIrKDIrdCkrIn0pJCkiKSxpPWUubWF0Y2gocik7aWYoIWkpcmV0dXJue3llYXI6TmFOLHJlc3REYXRlU3RyaW5nOiIifTtsZXQgYT1pWzFdP3BhcnNlSW50KGlbMV0pOm51bGwsbj1pWzJdP3BhcnNlSW50KGlbMl0pOm51bGw7cmV0dXJue3llYXI6bj09PW51bGw/YTpuKjEwMCxyZXN0RGF0ZVN0cmluZzplLnNsaWNlKChpWzFdfHxpWzJdKS5sZW5ndGgpfX1mdW5jdGlvbiB0RXIoZSx0KXtpZih0PT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtsZXQgcj1lLm1hdGNoKFhEcik7aWYoIXIpcmV0dXJuIG5ldyBEYXRlKE5hTik7bGV0IGk9ISFyWzRdLGE9Vm0oclsxXSksbj1WbShyWzJdKS0xLG89Vm0oclszXSkscz1WbShyWzRdKSxsPVZtKHJbNV0pLTE7aWYoaSlyZXR1cm4gbEVyKHQscyxsKT9hRXIodCxzLGwpOm5ldyBEYXRlKE5hTik7e2xldCBjPW5ldyBEYXRlKDApO3JldHVybiFvRXIodCxuLG8pfHwhc0VyKHQsYSk/bmV3IERhdGUoTmFOKTooYy5zZXRVVENGdWxsWWVhcih0LG4sTWF0aC5tYXgoYSxvKSksYyl9fWZ1bmN0aW9uIFZtKGUpe3JldHVybiBlP3BhcnNlSW50KGUpOjF9ZnVuY3Rpb24gckVyKGUpe2xldCB0PWUubWF0Y2goUURyKTtpZighdClyZXR1cm4gTmFOO2xldCByPU1KKHRbMV0pLGk9TUoodFsyXSksYT1NSih0WzNdKTtyZXR1cm4gY0VyKHIsaSxhKT9yKlJuK2kqd2ErYSoxZTM6TmFOfWZ1bmN0aW9uIE1KKGUpe3JldHVybiBlJiZwYXJzZUZsb2F0KGUucmVwbGFjZSgiLCIsIi4iKSl8fDB9ZnVuY3Rpb24gaUVyKGUpe2lmKGU9PT0iWiIpcmV0dXJuIDA7bGV0IHQ9ZS5tYXRjaChKRHIpO2lmKCF0KXJldHVybiAwO2xldCByPXRbMV09PT0iKyI/LTE6MSxpPXBhcnNlSW50KHRbMl0pLGE9dFszXSYmcGFyc2VJbnQodFszXSl8fDA7cmV0dXJuIGRFcihpLGEpP3IqKGkqUm4rYSp3YSk6TmFOfWZ1bmN0aW9uIGFFcihlLHQscil7bGV0IGk9bmV3IERhdGUoMCk7aS5zZXRVVENGdWxsWWVhcihlLDAsNCk7bGV0IGE9aS5nZXRVVENEYXkoKXx8NyxuPSh0LTEpKjcrcisxLWE7cmV0dXJuIGkuc2V0VVRDRGF0ZShpLmdldFVUQ0RhdGUoKStuKSxpfWZ1bmN0aW9uIGJSZShlKXtyZXR1cm4gZSU0MDA9PT0wfHxlJTQ9PT0wJiZlJTEwMCE9PTB9ZnVuY3Rpb24gb0VyKGUsdCxyKXtyZXR1cm4gdD49MCYmdDw9MTEmJnI+PTEmJnI8PShuRXJbdF18fChiUmUoZSk/Mjk6MjgpKX1mdW5jdGlvbiBzRXIoZSx0KXtyZXR1cm4gdD49MSYmdDw9KGJSZShlKT8zNjY6MzY1KX1mdW5jdGlvbiBsRXIoZSx0LHIpe3JldHVybiB0Pj0xJiZ0PD01MyYmcj49MCYmcjw9Nn1mdW5jdGlvbiBjRXIoZSx0LHIpe3JldHVybiBlPT09MjQ/dD09PTAmJnI9PT0wOnI+PTAmJnI8NjAmJnQ+PTAmJnQ8NjAmJmU+PTAmJmU8MjV9ZnVuY3Rpb24gZEVyKGUsdCl7cmV0dXJuIHQ+PTAmJnQ8PTU5fXZhciB4VCxYRHIsUURyLEpEcixuRXIsWndpLHhSZT1wKCgpPT57UnQoKTtndCgpO1JlKCk7eFQ9e2RhdGVUaW1lRGVsaW1pdGVyOi9bVCBdLyx0aW1lWm9uZURlbGltaXRlcjovW1ogXS9pLHRpbWV6b25lOi8oW1orLV0uKikkL30sWERyPS9eLT8oPzooXGR7M30pfChcZHsyfSkoPzotPyhcZHsyfSkpP3xXKFxkezJ9KSg/Oi0/KFxkezF9KSk/fCkkLyxRRHI9L14oXGR7Mn0oPzpbLixdXGQqKT8pKD86Oj8oXGR7Mn0oPzpbLixdXGQqKT8pKT8oPzo6PyhcZHsyfSg/OlsuLF1cZCopPykpPyQvLEpEcj0vXihbKy1dKShcZHsyfSkoPzo6PyhcZHsyfSkpPyQvO25Fcj1bMzEsbnVsbCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07WndpPXZSZX0pO2Z1bmN0aW9uIHlSZShlLHQpe2xldCByPWUubWF0Y2goLyhcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1QgXShcZHsyfSk6KFxkezJ9KTooXGR7Mn0pKD86XC4oXGR7MCw3fSkpPyg/Olp8KC4pKFxkezJ9KTo/KFxkezJ9KT8pPy8pO3JldHVybiByP2NlKERhdGUuVVRDKCtyWzFdLCtyWzJdLTEsK3JbM10sK3JbNF0tKCtyWzldfHwwKSoocls4XT09Ii0iPy0xOjEpLCtyWzVdLSgrclsxMF18fDApKihyWzhdPT0iLSI/LTE6MSksK3JbNl0sKygocls3XXx8IjAiKSsiMDAiKS5zdWJzdHJpbmcoMCwzKSksdD8uaW4pOmNlKE5hTix0Py5pbil9dmFyIEp3aSx3UmU9cCgoKT0+e1JlKCk7SndpPXlSZX0pO2Z1bmN0aW9uIFRhKGUsdCxyKXtsZXQgaT1HMChlLHIpLXQ7cmV0dXJuIGk8PTAmJihpKz03KSxaMChlLGkscil9dmFyIHJNaSxZbD1wKCgpPT57T20oKTtqbSgpO3JNaT1UYX0pO2Z1bmN0aW9uIE1SZShlLHQpe3JldHVybiBUYShlLDUsdCl9dmFyIG5NaSxrUmU9cCgoKT0+e1lsKCk7bk1pPU1SZX0pO2Z1bmN0aW9uIFNSZShlLHQpe3JldHVybiBUYShlLDEsdCl9dmFyIGxNaSx6UmU9cCgoKT0+e1lsKCk7bE1pPVNSZX0pO2Z1bmN0aW9uIENSZShlLHQpe3JldHVybiBUYShlLDYsdCl9dmFyIHVNaSxUUmU9cCgoKT0+e1lsKCk7dU1pPUNSZX0pO2Z1bmN0aW9uIF9SZShlLHQpe3JldHVybiBUYShlLDAsdCl9dmFyIGZNaSxMUmU9cCgoKT0+e1lsKCk7Zk1pPV9SZX0pO2Z1bmN0aW9uIEFSZShlLHQpe3JldHVybiBUYShlLDQsdCl9dmFyIGJNaSxEUmU9cCgoKT0+e1lsKCk7Yk1pPUFSZX0pO2Z1bmN0aW9uIEVSZShlLHQpe3JldHVybiBUYShlLDIsdCl9dmFyIHlNaSwkUmU9cCgoKT0+e1lsKCk7eU1pPUVSZX0pO2Z1bmN0aW9uIElSZShlLHQpe3JldHVybiBUYShlLDMsdCl9dmFyIGtNaSxQUmU9cCgoKT0+e1lsKCk7a01pPUlSZX0pO2Z1bmN0aW9uIE5SZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKlN6KX12YXIgQ01pLEZSZT1wKCgpPT57UnQoKTtDTWk9TlJlfSk7ZnVuY3Rpb24gT1JlKGUpe2xldCB0PWUvQ3o7cmV0dXJuIE1hdGgudHJ1bmModCl9dmFyIExNaSxSUmU9cCgoKT0+e1J0KCk7TE1pPU9SZX0pO2Z1bmN0aW9uIEJSZShlLHQpe2xldCByPXQ/Lm5lYXJlc3RUbz8/MTtpZihyPDF8fHI+MTIpcmV0dXJuIE5lKHQ/LmlufHxlLE5hTik7bGV0IGk9Y2UoZSx0Py5pbiksYT1pLmdldE1pbnV0ZXMoKS82MCxuPWkuZ2V0U2Vjb25kcygpLzYwLzYwLG89aS5nZXRNaWxsaXNlY29uZHMoKS8xZTMvNjAvNjAscz1pLmdldEhvdXJzKCkrYStuK28sbD10Py5yb3VuZGluZ01ldGhvZD8/InJvdW5kIix1PVNhKGwpKHMvcikqcjtyZXR1cm4gaS5zZXRIb3Vycyh1LDAsMCwwKSxpfXZhciBJTWksSFJlPXAoKCk9PntXbCgpO2d0KCk7UmUoKTtJTWk9QlJlfSk7ZnVuY3Rpb24gcVJlKGUsdCl7bGV0IHI9dD8ubmVhcmVzdFRvPz8xO2lmKHI8MXx8cj4zMClyZXR1cm4gTmUoZSxOYU4pO2xldCBpPWNlKGUsdD8uaW4pLGE9aS5nZXRTZWNvbmRzKCkvNjAsbj1pLmdldE1pbGxpc2Vjb25kcygpLzFlMy82MCxvPWkuZ2V0TWludXRlcygpK2ErbixzPXQ/LnJvdW5kaW5nTWV0aG9kPz8icm91bmQiLGM9U2Eocykoby9yKSpyO3JldHVybiBpLnNldE1pbnV0ZXMoYywwLDApLGl9dmFyIFJNaSxqUmU9cCgoKT0+e1dsKCk7Z3QoKTtSZSgpO1JNaT1xUmV9KTtmdW5jdGlvbiBWUmUoZSl7bGV0IHQ9ZS9fNjtyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgcU1pLFVSZT1wKCgpPT57UnQoKTtxTWk9VlJlfSk7ZnVuY3Rpb24gV1JlKGUpe3JldHVybiBlKnM4fXZhciBVTWksR1JlPXAoKCk9PntSdCgpO1VNaT1XUmV9KTtmdW5jdGlvbiBZUmUoZSl7bGV0IHQ9ZS9jODtyZXR1cm4gTWF0aC50cnVuYyh0KX12YXIgWU1pLFpSZT1wKCgpPT57UnQoKTtZTWk9WVJlfSk7ZnVuY3Rpb24gQTgoZSx0LHIpe2xldCBpPWNlKGUscj8uaW4pLGE9aS5nZXRGdWxsWWVhcigpLG49aS5nZXREYXRlKCksbz1OZShyPy5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKGEsdCwxNSksby5zZXRIb3VycygwLDAsMCwwKTtsZXQgcz1nQyhvKTtyZXR1cm4gaS5zZXRNb250aCh0LE1hdGgubWluKG4scykpLGl9dmFyIEtNaSx5VD1wKCgpPT57Z3QoKTtlSigpO1JlKCk7S01pPUE4fSk7ZnVuY3Rpb24gWFJlKGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKTtyZXR1cm4gaXNOYU4oK2kpP05lKHI/LmlufHxlLE5hTik6KHQueWVhciE9bnVsbCYmaS5zZXRGdWxsWWVhcih0LnllYXIpLHQubW9udGghPW51bGwmJihpPUE4KGksdC5tb250aCkpLHQuZGF0ZSE9bnVsbCYmaS5zZXREYXRlKHQuZGF0ZSksdC5ob3VycyE9bnVsbCYmaS5zZXRIb3Vycyh0LmhvdXJzKSx0Lm1pbnV0ZXMhPW51bGwmJmkuc2V0TWludXRlcyh0Lm1pbnV0ZXMpLHQuc2Vjb25kcyE9bnVsbCYmaS5zZXRTZWNvbmRzKHQuc2Vjb25kcyksdC5taWxsaXNlY29uZHMhPW51bGwmJmkuc2V0TWlsbGlzZWNvbmRzKHQubWlsbGlzZWNvbmRzKSxpKX12YXIgYWtpLFFSZT1wKCgpPT57Z3QoKTt5VCgpO1JlKCk7YWtpPVhSZX0pO2Z1bmN0aW9uIEpSZShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbik7cmV0dXJuIGkuc2V0RGF0ZSh0KSxpfXZhciBza2ksS1JlPXAoKCk9PntSZSgpO3NraT1KUmV9KTtmdW5jdGlvbiBlQmUoZSx0LHIpe2xldCBpPWNlKGUscj8uaW4pO3JldHVybiBpLnNldE1vbnRoKDApLGkuc2V0RGF0ZSh0KSxpfXZhciBka2ksdEJlPXAoKCk9PntSZSgpO2RraT1lQmV9KTtmdW5jdGlvbiByQmUoZSl7bGV0IHQ9e30scj1FcigpO2ZvcihsZXQgaSBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGkpJiYodFtpXT1yW2ldKTtmb3IobGV0IGkgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxpKSYmKGVbaV09PT12b2lkIDA/ZGVsZXRlIHRbaV06dFtpXT1lW2ldKTt2SWUodCl9dmFyIGhraSxpQmU9cCgoKT0+e01hKCk7aGtpPXJCZX0pO2Z1bmN0aW9uIGFCZShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbik7cmV0dXJuIGkuc2V0SG91cnModCksaX12YXIgZ2tpLG5CZT1wKCgpPT57UmUoKTtna2k9YUJlfSk7ZnVuY3Rpb24gb0JlKGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKTtyZXR1cm4gaS5zZXRNaWxsaXNlY29uZHModCksaX12YXIgeGtpLHNCZT1wKCgpPT57UmUoKTt4a2k9b0JlfSk7ZnVuY3Rpb24gbEJlKGUsdCxyKXtsZXQgaT1jZShlLHI/LmluKTtyZXR1cm4gaS5zZXRNaW51dGVzKHQpLGl9dmFyIE1raSxjQmU9cCgoKT0+e1JlKCk7TWtpPWxCZX0pO2Z1bmN0aW9uIGRCZShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbiksYT1NYXRoLnRydW5jKGkuZ2V0TW9udGgoKS8zKSsxLG49dC1hO3JldHVybiBBOChpLGkuZ2V0TW9udGgoKStuKjMpfXZhciBDa2ksdUJlPXAoKCk9Pnt5VCgpO1JlKCk7Q2tpPWRCZX0pO2Z1bmN0aW9uIHBCZShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbik7cmV0dXJuIGkuc2V0U2Vjb25kcyh0KSxpfXZhciBMa2ksaEJlPXAoKCk9PntSZSgpO0xraT1wQmV9KTtmdW5jdGlvbiBmQmUoZSx0LHIpe2xldCBpPUVyKCksYT1yPy5maXJzdFdlZWtDb250YWluc0RhdGU/P3I/LmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9pLmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/aS5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/MSxuPUlpKGNlKGUscj8uaW4pLFA2KGUsciksciksbz1OZShyPy5pbnx8ZSwwKTtvLnNldEZ1bGxZZWFyKHQsMCxhKSxvLnNldEhvdXJzKDAsMCwwLDApO2xldCBzPVA2KG8scik7cmV0dXJuIHMuc2V0RGF0ZShzLmdldERhdGUoKStuKSxzfXZhciBOa2ksbUJlPXAoKCk9PntNYSgpO2d0KCk7VmwoKTtjQygpO1JlKCk7TmtpPWZCZX0pO2Z1bmN0aW9uIGdCZShlLHQscil7bGV0IGk9Y2UoZSxyPy5pbik7cmV0dXJuIGlzTmFOKCtpKT9OZShyPy5pbnx8ZSxOYU4pOihpLnNldEZ1bGxZZWFyKHQpLGkpfXZhciBCa2ksYkJlPXAoKCk9PntndCgpO1JlKCk7QmtpPWdCZX0pO2Z1bmN0aW9uIHZCZShlLHQpe2xldCByPWNlKGUsdD8uaW4pLGk9ci5nZXRGdWxsWWVhcigpLGE9TWF0aC5mbG9vcihpLzEwKSoxMDtyZXR1cm4gci5zZXRGdWxsWWVhcihhLDAsMSksci5zZXRIb3VycygwLDAsMCwwKSxyfXZhciBqa2kseEJlPXAoKCk9PntSZSgpO2praT12QmV9KTtmdW5jdGlvbiB5QmUoZSl7cmV0dXJuICRzKERhdGUubm93KCksZSl9dmFyIFdraSx3QmU9cCgoKT0+e19tKCk7V2tpPXlCZX0pO2Z1bmN0aW9uIE1CZShlKXtsZXQgdD1RdChlPy5pbikscj10LmdldEZ1bGxZZWFyKCksaT10LmdldE1vbnRoKCksYT10LmdldERhdGUoKSxuPU5lKGU/LmluLDApO3JldHVybiBuLnNldEZ1bGxZZWFyKHIsaSxhKzEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn12YXIgWGtpLGtCZT1wKCgpPT57Z3QoKTtiaSgpO1hraT1NQmV9KTtmdW5jdGlvbiBTQmUoZSl7bGV0IHQ9UXQoZT8uaW4pLHI9dC5nZXRGdWxsWWVhcigpLGk9dC5nZXRNb250aCgpLGE9dC5nZXREYXRlKCksbj1RdChlPy5pbik7cmV0dXJuIG4uc2V0RnVsbFllYXIocixpLGEtMSksbi5zZXRIb3VycygwLDAsMCwwKSxufXZhciBLa2ksekJlPXAoKCk9PntiaSgpO0traT1TQmV9KTtmdW5jdGlvbiB3VChlLHQscil7cmV0dXJuIEFzKGUsLXQscil9dmFyIHJTaSxrSj1wKCgpPT57ZDgoKTtyU2k9d1R9KTtmdW5jdGlvbiBDQmUoZSx0LHIpe2xldHt5ZWFyczppPTAsbW9udGhzOmE9MCx3ZWVrczpuPTAsZGF5czpvPTAsaG91cnM6cz0wLG1pbnV0ZXM6bD0wLHNlY29uZHM6Yz0wfT10LHU9d1QoZSxhK2kqMTIsciksZD1aMCh1LG8rbio3LHIpLGg9bCtzKjYwLHg9KGMraCo2MCkqMWUzO3JldHVybiBOZShyPy5pbnx8ZSwrZC14KX12YXIgc1NpLFRCZT1wKCgpPT57Z3QoKTtqbSgpO2tKKCk7c1NpPUNCZX0pO2Z1bmN0aW9uIF9CZShlLHQscil7cmV0dXJuIEx6KGUsLXQscil9dmFyIGRTaSxMQmU9cCgoKT0+e1RRKCk7ZFNpPV9CZX0pO2Z1bmN0aW9uIEFCZShlLHQscil7cmV0dXJuIEF6KGUsLXQscil9dmFyIGhTaSxEQmU9cCgoKT0+e19RKCk7aFNpPUFCZX0pO2Z1bmN0aW9uIEVCZShlLHQscil7cmV0dXJuIFIwKGUsLXQscil9dmFyIGdTaSwkQmU9cCgoKT0+e1RtKCk7Z1NpPUVCZX0pO2Z1bmN0aW9uIElCZShlLHQscil7cmV0dXJuIHA4KGUsLXQscil9dmFyIHhTaSxQQmU9cCgoKT0+eyR6KCk7eFNpPUlCZX0pO2Z1bmN0aW9uIE5CZShlLHQscil7cmV0dXJuIGg4KGUsLXQscil9dmFyIE1TaSxGQmU9cCgoKT0+e0l6KCk7TVNpPU5CZX0pO2Z1bmN0aW9uIE9CZShlLHQscil7cmV0dXJuIFB6KGUsLXQscil9dmFyIHpTaSxSQmU9cCgoKT0+e0RRKCk7elNpPU9CZX0pO2Z1bmN0aW9uIEJCZShlLHQscil7cmV0dXJuIEgwKGUsLXQscil9dmFyIF9TaSxIQmU9cCgoKT0+e0xtKCk7X1NpPUJCZX0pO2Z1bmN0aW9uIHFCZShlLHQscil7cmV0dXJuIE56KGUsLXQscil9dmFyIERTaSxqQmU9cCgoKT0+e0VRKCk7RFNpPXFCZX0pO2Z1bmN0aW9uIFZCZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKjcpfXZhciBJU2ksVUJlPXAoKCk9PntSdCgpO0lTaT1WQmV9KTtmdW5jdGlvbiBXQmUoZSl7cmV0dXJuIE1hdGgudHJ1bmMoZSozNjUuMjQyNSl9dmFyIEZTaSxHQmU9cCgoKT0+e1J0KCk7RlNpPVdCZX0pO2Z1bmN0aW9uIFlCZShlKXtyZXR1cm4gTWF0aC50cnVuYyhlKnp6KX12YXIgQlNpLFpCZT1wKCgpPT57UnQoKTtCU2k9WUJlfSk7ZnVuY3Rpb24gWEJlKGUpe3JldHVybiBNYXRoLnRydW5jKGUqQ3opfXZhciBqU2ksUUJlPXAoKCk9PntSdCgpO2pTaT1YQmV9KTt2YXIgVW09e307RmUoVW0se2FkZDooKT0+TzAsYWRkQnVzaW5lc3NEYXlzOigpPT5MeixhZGREYXlzOigpPT5naSxhZGRIb3VyczooKT0+QXosYWRkSVNPV2Vla1llYXJzOigpPT5FeixhZGRNaWxsaXNlY29uZHM6KCk9PlIwLGFkZE1pbnV0ZXM6KCk9PnA4LGFkZE1vbnRoczooKT0+QXMsYWRkUXVhcnRlcnM6KCk9Pmg4LGFkZFNlY29uZHM6KCk9PlB6LGFkZFdlZWtzOigpPT5IMCxhZGRZZWFyczooKT0+TnosYXJlSW50ZXJ2YWxzT3ZlcmxhcHBpbmc6KCk9PnhJZSxjbGFtcDooKT0+d0llLGNsb3Nlc3RJbmRleFRvOigpPT5SeixjbG9zZXN0VG86KCk9PmtJZSxjb21wYXJlQXNjOigpPT5rYSxjb21wYXJlRGVzYzooKT0+ekllLGNvbnN0cnVjdEZyb206KCk9Pk5lLGNvbnN0cnVjdE5vdzooKT0+UXQsZGF5c1RvV2Vla3M6KCk9PlRJZSxkaWZmZXJlbmNlSW5CdXNpbmVzc0RheXM6KCk9PkxJZSxkaWZmZXJlbmNlSW5DYWxlbmRhckRheXM6KCk9PklpLGRpZmZlcmVuY2VJbkNhbGVuZGFySVNPV2Vla1llYXJzOigpPT5IeixkaWZmZXJlbmNlSW5DYWxlbmRhcklTT1dlZWtzOigpPT5ESWUsZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM6KCk9PkE2LGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnM6KCk9Pm04LGRpZmZlcmVuY2VJbkNhbGVuZGFyV2Vla3M6KCk9PkQ2LGRpZmZlcmVuY2VJbkNhbGVuZGFyWWVhcnM6KCk9PnEwLGRpZmZlcmVuY2VJbkRheXM6KCk9Pmc4LGRpZmZlcmVuY2VJbkhvdXJzOigpPT5FNixkaWZmZXJlbmNlSW5JU09XZWVrWWVhcnM6KCk9PklJZSxkaWZmZXJlbmNlSW5NaWxsaXNlY29uZHM6KCk9PmI4LGRpZmZlcmVuY2VJbk1pbnV0ZXM6KCk9PiQ2LGRpZmZlcmVuY2VJbk1vbnRoczooKT0+ajAsZGlmZmVyZW5jZUluUXVhcnRlcnM6KCk9Pk5JZSxkaWZmZXJlbmNlSW5TZWNvbmRzOigpPT5QcyxkaWZmZXJlbmNlSW5XZWVrczooKT0+T0llLGRpZmZlcmVuY2VJblllYXJzOigpPT5LeixlYWNoRGF5T2ZJbnRlcnZhbDooKT0+ZUMsZWFjaEhvdXJPZkludGVydmFsOigpPT5CSWUsZWFjaE1pbnV0ZU9mSW50ZXJ2YWw6KCk9PnFJZSxlYWNoTW9udGhPZkludGVydmFsOigpPT5WSWUsZWFjaFF1YXJ0ZXJPZkludGVydmFsOigpPT5XSWUsZWFjaFdlZWtPZkludGVydmFsOigpPT5ZSWUsZWFjaFdlZWtlbmRPZkludGVydmFsOigpPT55OCxlYWNoV2Vla2VuZE9mTW9udGg6KCk9PlhJZSxlYWNoV2Vla2VuZE9mWWVhcjooKT0+SkllLGVhY2hZZWFyT2ZJbnRlcnZhbDooKT0+ZVBlLGVuZE9mRGF5OigpPT52OCxlbmRPZkRlY2FkZTooKT0+clBlLGVuZE9mSG91cjooKT0+YVBlLGVuZE9mSVNPV2VlazooKT0+b1BlLGVuZE9mSVNPV2Vla1llYXI6KCk9PmxQZSxlbmRPZk1pbnV0ZTooKT0+ZFBlLGVuZE9mTW9udGg6KCk9Png4LGVuZE9mUXVhcnRlcjooKT0+cFBlLGVuZE9mU2Vjb25kOigpPT5mUGUsZW5kT2ZUb2RheTooKT0+Z1BlLGVuZE9mVG9tb3Jyb3c6KCk9PnZQZSxlbmRPZldlZWs6KCk9Pm5DLGVuZE9mWWVhcjooKT0+aUMsZW5kT2ZZZXN0ZXJkYXk6KCk9PnlQZSxmb3JtYXQ6KCk9PkZtLGZvcm1hdERhdGU6KCk9PkZtLGZvcm1hdERpc3RhbmNlOigpPT5oQyxmb3JtYXREaXN0YW5jZVN0cmljdDooKT0+ZkMsZm9ybWF0RGlzdGFuY2VUb05vdzooKT0+alBlLGZvcm1hdERpc3RhbmNlVG9Ob3dTdHJpY3Q6KCk9PlVQZSxmb3JtYXREdXJhdGlvbjooKT0+R1BlLGZvcm1hdElTTzooKT0+WlBlLGZvcm1hdElTTzkwNzU6KCk9PlFQZSxmb3JtYXRJU09EdXJhdGlvbjooKT0+S1BlLGZvcm1hdFJGQzMzMzk6KCk9PnROZSxmb3JtYXRSRkM3MjMxOigpPT5pTmUsZm9ybWF0UmVsYXRpdmU6KCk9Pm5OZSxmb3JtYXR0ZXJzOigpPT5QbSxmcm9tVW5peFRpbWU6KCk9PnNOZSxnZXREYXRlOigpPT5tQyxnZXREYXk6KCk9PkcwLGdldERheU9mWWVhcjooKT0+c0MsZ2V0RGF5c0luTW9udGg6KCk9PmdDLGdldERheXNJblllYXI6KCk9PmNOZSxnZXREZWNhZGU6KCk9PnVOZSxnZXREZWZhdWx0T3B0aW9uczooKT0+dkMsZ2V0SG91cnM6KCk9PmhOZSxnZXRJU09EYXk6KCk9PnhDLGdldElTT1dlZWs6KCk9PlM4LGdldElTT1dlZWtZZWFyOigpPT5HYSxnZXRJU09XZWVrc0luWWVhcjooKT0+bU5lLGdldE1pbGxpc2Vjb25kczooKT0+Yk5lLGdldE1pbnV0ZXM6KCk9PnhOZSxnZXRNb250aDooKT0+d05lLGdldE92ZXJsYXBwaW5nRGF5c0luSW50ZXJ2YWxzOigpPT5rTmUsZ2V0UXVhcnRlcjooKT0+QW0sZ2V0U2Vjb25kczooKT0+ek5lLGdldFRpbWU6KCk9PlROZSxnZXRVbml4VGltZTooKT0+TE5lLGdldFdlZWs6KCk9Pno4LGdldFdlZWtPZk1vbnRoOigpPT5ETmUsZ2V0V2Vla1llYXI6KCk9PlUwLGdldFdlZWtzSW5Nb250aDooKT0+JE5lLGdldFllYXI6KCk9PlBOZSxob3Vyc1RvTWlsbGlzZWNvbmRzOigpPT5GTmUsaG91cnNUb01pbnV0ZXM6KCk9PlJOZSxob3Vyc1RvU2Vjb25kczooKT0+SE5lLGludGVydmFsOigpPT5qTmUsaW50ZXJ2YWxUb0R1cmF0aW9uOigpPT5VTmUsaW50bEZvcm1hdDooKT0+R05lLGludGxGb3JtYXREaXN0YW5jZTooKT0+Wk5lLGlzQWZ0ZXI6KCk9PlFOZSxpc0JlZm9yZTooKT0+S05lLGlzRGF0ZTooKT0+QnosaXNFcXVhbDooKT0+dEZlLGlzRXhpc3RzOigpPT5pRmUsaXNGaXJzdERheU9mTW9udGg6KCk9Pm5GZSxpc0ZyaWRheTooKT0+c0ZlLGlzRnV0dXJlOigpPT5jRmUsaXNMYXN0RGF5T2ZNb250aDooKT0+SnosaXNMZWFwWWVhcjooKT0+YkMsaXNNYXRjaDooKT0+akZlLGlzTW9uZGF5OigpPT5VRmUsaXNQYXN0OigpPT5HRmUsaXNTYW1lRGF5OigpPT5Jcyxpc1NhbWVIb3VyOigpPT5kVCxpc1NhbWVJU09XZWVrOigpPT5wVCxpc1NhbWVJU09XZWVrWWVhcjooKT0+WkZlLGlzU2FtZU1pbnV0ZTooKT0+aFQsaXNTYW1lTW9udGg6KCk9PmZULGlzU2FtZVF1YXJ0ZXI6KCk9Pm1ULGlzU2FtZVNlY29uZDooKT0+Z1QsaXNTYW1lV2VlazooKT0+TDgsaXNTYW1lWWVhcjooKT0+YlQsaXNTYXR1cmRheTooKT0+VHosaXNTdW5kYXk6KCk9Pl96LGlzVGhpc0hvdXI6KCk9PlFGZSxpc1RoaXNJU09XZWVrOigpPT5LRmUsaXNUaGlzTWludXRlOigpPT50T2UsaXNUaGlzTW9udGg6KCk9PmlPZSxpc1RoaXNRdWFydGVyOigpPT5uT2UsaXNUaGlzU2Vjb25kOigpPT5zT2UsaXNUaGlzV2VlazooKT0+Y09lLGlzVGhpc1llYXI6KCk9PnVPZSxpc1RodXJzZGF5OigpPT5oT2UsaXNUb2RheTooKT0+bU9lLGlzVG9tb3Jyb3c6KCk9PmJPZSxpc1R1ZXNkYXk6KCk9PnhPZSxpc1ZhbGlkOigpPT5YaSxpc1dlZG5lc2RheTooKT0+d09lLGlzV2Vla2VuZDooKT0+RHMsaXNXaXRoaW5JbnRlcnZhbDooKT0+a09lLGlzWWVzdGVyZGF5OigpPT56T2UsbGFzdERheU9mRGVjYWRlOigpPT5UT2UsbGFzdERheU9mSVNPV2VlazooKT0+TE9lLGxhc3REYXlPZklTT1dlZWtZZWFyOigpPT5ET2UsbGFzdERheU9mTW9udGg6KCk9PnlDLGxhc3REYXlPZlF1YXJ0ZXI6KCk9PiRPZSxsYXN0RGF5T2ZXZWVrOigpPT52VCxsYXN0RGF5T2ZZZWFyOigpPT5QT2UsbGlnaHRGb3JtYXQ6KCk9PkZPZSxsaWdodEZvcm1hdHRlcnM6KCk9PkhuLGxvbmdGb3JtYXR0ZXJzOigpPT5XMCxtYXg6KCk9PkZ6LG1pbGxpc2Vjb25kczooKT0+Uk9lLG1pbGxpc2Vjb25kc1RvSG91cnM6KCk9PkhPZSxtaWxsaXNlY29uZHNUb01pbnV0ZXM6KCk9PmpPZSxtaWxsaXNlY29uZHNUb1NlY29uZHM6KCk9PlVPZSxtaW46KCk9Pk96LG1pbnV0ZXNUb0hvdXJzOigpPT5HT2UsbWludXRlc1RvTWlsbGlzZWNvbmRzOigpPT5aT2UsbWludXRlc1RvU2Vjb25kczooKT0+UU9lLG1vbnRoc1RvUXVhcnRlcnM6KCk9PktPZSxtb250aHNUb1llYXJzOigpPT50UmUsbmV4dERheTooKT0+Q2EsbmV4dEZyaWRheTooKT0+aVJlLG5leHRNb25kYXk6KCk9Pm5SZSxuZXh0U2F0dXJkYXk6KCk9PnNSZSxuZXh0U3VuZGF5OigpPT5jUmUsbmV4dFRodXJzZGF5OigpPT51UmUsbmV4dFR1ZXNkYXk6KCk9PmhSZSxuZXh0V2VkbmVzZGF5OigpPT5tUmUscGFyc2U6KCk9PmNULHBhcnNlSVNPOigpPT52UmUscGFyc2VKU09OOigpPT55UmUscGFyc2VyczooKT0+bFQscHJldmlvdXNEYXk6KCk9PlRhLHByZXZpb3VzRnJpZGF5OigpPT5NUmUscHJldmlvdXNNb25kYXk6KCk9PlNSZSxwcmV2aW91c1NhdHVyZGF5OigpPT5DUmUscHJldmlvdXNTdW5kYXk6KCk9Pl9SZSxwcmV2aW91c1RodXJzZGF5OigpPT5BUmUscHJldmlvdXNUdWVzZGF5OigpPT5FUmUscHJldmlvdXNXZWRuZXNkYXk6KCk9PklSZSxxdWFydGVyc1RvTW9udGhzOigpPT5OUmUscXVhcnRlcnNUb1llYXJzOigpPT5PUmUscm91bmRUb05lYXJlc3RIb3VyczooKT0+QlJlLHJvdW5kVG9OZWFyZXN0TWludXRlczooKT0+cVJlLHNlY29uZHNUb0hvdXJzOigpPT5WUmUsc2Vjb25kc1RvTWlsbGlzZWNvbmRzOigpPT5XUmUsc2Vjb25kc1RvTWludXRlczooKT0+WVJlLHNldDooKT0+WFJlLHNldERhdGU6KCk9PkpSZSxzZXREYXk6KCk9PlkwLHNldERheU9mWWVhcjooKT0+ZUJlLHNldERlZmF1bHRPcHRpb25zOigpPT5yQmUsc2V0SG91cnM6KCk9PmFCZSxzZXRJU09EYXk6KCk9PldDLHNldElTT1dlZWs6KCk9PlJDLHNldElTT1dlZWtZZWFyOigpPT5EeixzZXRNaWxsaXNlY29uZHM6KCk9Pm9CZSxzZXRNaW51dGVzOigpPT5sQmUsc2V0TW9udGg6KCk9PkE4LHNldFF1YXJ0ZXI6KCk9PmRCZSxzZXRTZWNvbmRzOigpPT5wQmUsc2V0V2VlazooKT0+RkMsc2V0V2Vla1llYXI6KCk9PmZCZSxzZXRZZWFyOigpPT5nQmUsc3RhcnRPZkRheTooKT0+JHMsc3RhcnRPZkRlY2FkZTooKT0+dkJlLHN0YXJ0T2ZIb3VyOigpPT5CbSxzdGFydE9mSVNPV2VlazooKT0+cmksc3RhcnRPZklTT1dlZWtZZWFyOigpPT5CbixzdGFydE9mTWludXRlOigpPT5IbSxzdGFydE9mTW9udGg6KCk9PlYwLHN0YXJ0T2ZRdWFydGVyOigpPT5GcyxzdGFydE9mU2Vjb25kOigpPT5xbSxzdGFydE9mVG9kYXk6KCk9PnlCZSxzdGFydE9mVG9tb3Jyb3c6KCk9Pk1CZSxzdGFydE9mV2VlazooKT0+ZTEsc3RhcnRPZldlZWtZZWFyOigpPT5QNixzdGFydE9mWWVhcjooKT0+dzgsc3RhcnRPZlllc3RlcmRheTooKT0+U0JlLHN1YjooKT0+Q0JlLHN1YkJ1c2luZXNzRGF5czooKT0+X0JlLHN1YkRheXM6KCk9PlowLHN1YkhvdXJzOigpPT5BQmUsc3ViSVNPV2Vla1llYXJzOigpPT5HeixzdWJNaWxsaXNlY29uZHM6KCk9PkVCZSxzdWJNaW51dGVzOigpPT5JQmUsc3ViTW9udGhzOigpPT53VCxzdWJRdWFydGVyczooKT0+TkJlLHN1YlNlY29uZHM6KCk9Pk9CZSxzdWJXZWVrczooKT0+QkJlLHN1YlllYXJzOigpPT5xQmUsdG9EYXRlOigpPT5jZSx0cmFuc3Bvc2U6KCk9PndDLHdlZWtzVG9EYXlzOigpPT5WQmUseWVhcnNUb0RheXM6KCk9PldCZSx5ZWFyc1RvTW9udGhzOigpPT5ZQmUseWVhcnNUb1F1YXJ0ZXJzOigpPT5YQmV9KTt2YXIgSkJlPXAoKCk9PntTUSgpO1RRKCk7THMoKTtfUSgpO0FRKCk7VG0oKTskeigpO2Q4KCk7SXooKTtEUSgpO0xtKCk7RVEoKTt5SWUoKTtNSWUoKTtQUSgpO1NJZSgpO0w2KCk7Q0llKCk7Z3QoKTtiaSgpO19JZSgpO0FJZSgpO1ZsKCk7RlEoKTtFSWUoKTtxeigpO1JRKCk7anooKTtWeigpO1V6KCk7V3ooKTtQSWUoKTtZeigpO1p6KCk7RG0oKTtGSWUoKTtFbSgpO1JJZSgpO3FRKCk7alEoKTtISWUoKTtqSWUoKTtVSWUoKTtHSWUoKTtaSWUoKTtyQygpO1FJZSgpO0tJZSgpO3RQZSgpO1h6KCk7aVBlKCk7blBlKCk7c1BlKCk7Y1BlKCk7dVBlKCk7UXooKTtoUGUoKTttUGUoKTtiUGUoKTt4UGUoKTtVUSgpO1ZRKCk7d1BlKCk7WFEoKTtRUSgpO0pRKCk7VlBlKCk7V1BlKCk7WVBlKCk7WFBlKCk7SlBlKCk7ZU5lKCk7ck5lKCk7YU5lKCk7b05lKCk7bE5lKCk7S1EoKTtPbSgpO1dRKCk7ZUooKTtkTmUoKTtwTmUoKTtySigpO2ZOZSgpO2lKKCk7bEMoKTtCMCgpO2dOZSgpO3ZOZSgpO3lOZSgpO01OZSgpO1NOZSgpO09RKCk7Q05lKCk7X05lKCk7QU5lKCk7ZEMoKTtFTmUoKTtJbSgpO0lOZSgpO05OZSgpO09OZSgpO0JOZSgpO3FOZSgpO1ZOZSgpO1dOZSgpO1lOZSgpO1hOZSgpO0pOZSgpO2VGZSgpO05RKCk7ckZlKCk7YUZlKCk7b0ZlKCk7bEZlKCk7ZEZlKCk7SFEoKTt0SigpO1ZGZSgpO1dGZSgpO1lGZSgpO2Y4KCk7cEooKTtoSigpO1hGZSgpO21KKCk7Z0ooKTtiSigpO3hKKCk7dVQoKTt5SigpO3pRKCk7Q1EoKTtKRmUoKTtlT2UoKTtyT2UoKTthT2UoKTtvT2UoKTtsT2UoKTtkT2UoKTtwT2UoKTtmT2UoKTtnT2UoKTt2T2UoKTt5T2UoKTtVbCgpO01PZSgpO0NtKCk7U09lKCk7Q09lKCk7X09lKCk7QU9lKCk7RU9lKCk7YUooKTtJT2UoKTt3SigpO05PZSgpO09PZSgpOyRRKCk7Qk9lKCk7cU9lKCk7Vk9lKCk7V09lKCk7SVEoKTtZT2UoKTtYT2UoKTtKT2UoKTtlUmUoKTtyUmUoKTtHbCgpO2FSZSgpO29SZSgpO2xSZSgpO2RSZSgpO3BSZSgpO2ZSZSgpO2dSZSgpO2RKKCk7eFJlKCk7d1JlKCk7WWwoKTtrUmUoKTt6UmUoKTtUUmUoKTtMUmUoKTtEUmUoKTskUmUoKTtQUmUoKTtGUmUoKTtSUmUoKTtIUmUoKTtqUmUoKTtVUmUoKTtHUmUoKTtaUmUoKTtRUmUoKTtLUmUoKTtSbSgpO3RCZSgpO2lCZSgpO25CZSgpO2NKKCk7bEooKTtMUSgpO3NCZSgpO2NCZSgpO3lUKCk7dUJlKCk7aEJlKCk7c0ooKTttQmUoKTtiQmUoKTtfbSgpO3hCZSgpO3VKKCk7RXMoKTt1OCgpO2ZKKCk7JG0oKTt0QygpO3ZKKCk7d0JlKCk7a0JlKCk7ZjIoKTtjQygpO2FDKCk7ekJlKCk7VEJlKCk7TEJlKCk7am0oKTtEQmUoKTtCUSgpOyRCZSgpO1BCZSgpO2tKKCk7RkJlKCk7UkJlKCk7SEJlKCk7akJlKCk7UmUoKTtuSigpO1VCZSgpO0dCZSgpO1pCZSgpO1FCZSgpfSk7dmFyIEtCZT1qZSgoU0osekopPT57KGZ1bmN0aW9uKGUsdCl7dHlwZW9mIFNKPT0ib2JqZWN0IiYmdHlwZW9mIHpKPCJ1Ij96Si5leHBvcnRzPXQoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczplfHxzZWxmKS5kYXlqcz10KCl9KShTSiwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9MWUzLHQ9NmU0LHI9MzZlNSxpPSJtaWxsaXNlY29uZCIsYT0ic2Vjb25kIixuPSJtaW51dGUiLG89ImhvdXIiLHM9ImRheSIsbD0id2VlayIsYz0ibW9udGgiLHU9InF1YXJ0ZXIiLGQ9InllYXIiLGg9ImRhdGUiLGY9IkludmFsaWQgRGF0ZSIseD0vXihcZHs0fSlbLS9dPyhcZHsxLDJ9KT9bLS9dPyhcZHswLDJ9KVtUdFxzXSooXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Oj8oXGR7MSwyfSk/Wy46XT8oXGQrKT8kLyx2PS9cWyhbXlxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2csYj17bmFtZToiZW4iLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxtb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksb3JkaW5hbDpmdW5jdGlvbihTKXt2YXIgJD1bInRoIiwic3QiLCJuZCIsInJkIl0sVD1TJTEwMDtyZXR1cm4iWyIrUysoJFsoVC0yMCklMTBdfHwkW1RdfHwkWzBdKSsiXSJ9fSx5PWZ1bmN0aW9uKFMsJCxUKXt2YXIgRT1TdHJpbmcoUyk7cmV0dXJuIUV8fEUubGVuZ3RoPj0kP1M6IiIrQXJyYXkoJCsxLUUubGVuZ3RoKS5qb2luKFQpK1N9LHc9e3M6eSx6OmZ1bmN0aW9uKFMpe3ZhciAkPS1TLnV0Y09mZnNldCgpLFQ9TWF0aC5hYnMoJCksRT1NYXRoLmZsb29yKFQvNjApLHE9VCU2MDtyZXR1cm4oJDw9MD8iKyI6Ii0iKSt5KEUsMiwiMCIpKyI6Iit5KHEsMiwiMCIpfSxtOmZ1bmN0aW9uIFMoJCxUKXtpZigkLmRhdGUoKTxULmRhdGUoKSlyZXR1cm4tUyhULCQpO3ZhciBFPTEyKihULnllYXIoKS0kLnllYXIoKSkrKFQubW9udGgoKS0kLm1vbnRoKCkpLHE9JC5jbG9uZSgpLmFkZChFLGMpLEI9VC1xPDAsRz0kLmNsb25lKCkuYWRkKEUrKEI/LTE6MSksYyk7cmV0dXJuKygtKEUrKFQtcSkvKEI/cS1HOkctcSkpfHwwKX0sYTpmdW5jdGlvbihTKXtyZXR1cm4gUzwwP01hdGguY2VpbChTKXx8MDpNYXRoLmZsb29yKFMpfSxwOmZ1bmN0aW9uKFMpe3JldHVybntNOmMseTpkLHc6bCxkOnMsRDpoLGg6byxtOm4sczphLG1zOmksUTp1fVtTXXx8U3RyaW5nKFN8fCIiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL3MkLywiIil9LHU6ZnVuY3Rpb24oUyl7cmV0dXJuIFM9PT12b2lkIDB9fSxrPSJlbiIsTz17fTtPW2tdPWI7dmFyIHo9IiRpc0RheWpzT2JqZWN0IixNPWZ1bmN0aW9uKFMpe3JldHVybiBTIGluc3RhbmNlb2YgUnx8ISghU3x8IVNbel0pfSxGPWZ1bmN0aW9uIFMoJCxULEUpe3ZhciBxO2lmKCEkKXJldHVybiBrO2lmKHR5cGVvZiAkPT0ic3RyaW5nIil7dmFyIEI9JC50b0xvd2VyQ2FzZSgpO09bQl0mJihxPUIpLFQmJihPW0JdPVQscT1CKTt2YXIgRz0kLnNwbGl0KCItIik7aWYoIXEmJkcubGVuZ3RoPjEpcmV0dXJuIFMoR1swXSl9ZWxzZXt2YXIgZWU9JC5uYW1lO09bZWVdPSQscT1lZX1yZXR1cm4hRSYmcSYmKGs9cSkscXx8IUUmJmt9LEQ9ZnVuY3Rpb24oUywkKXtpZihNKFMpKXJldHVybiBTLmNsb25lKCk7dmFyIFQ9dHlwZW9mICQ9PSJvYmplY3QiPyQ6e307cmV0dXJuIFQuZGF0ZT1TLFQuYXJncz1hcmd1bWVudHMsbmV3IFIoVCl9LE49dztOLmw9RixOLmk9TSxOLnc9ZnVuY3Rpb24oUywkKXtyZXR1cm4gRChTLHtsb2NhbGU6JC4kTCx1dGM6JC4kdSx4OiQuJHgsJG9mZnNldDokLiRvZmZzZXR9KX07dmFyIFI9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gUyhUKXt0aGlzLiRMPUYoVC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZShUKSx0aGlzLiR4PXRoaXMuJHh8fFQueHx8e30sdGhpc1t6XT0hMH12YXIgJD1TLnByb3RvdHlwZTtyZXR1cm4gJC5wYXJzZT1mdW5jdGlvbihUKXt0aGlzLiRkPShmdW5jdGlvbihFKXt2YXIgcT1FLmRhdGUsQj1FLnV0YztpZihxPT09bnVsbClyZXR1cm4gbmV3IERhdGUoTmFOKTtpZihOLnUocSkpcmV0dXJuIG5ldyBEYXRlO2lmKHEgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBuZXcgRGF0ZShxKTtpZih0eXBlb2YgcT09InN0cmluZyImJiEvWiQvaS50ZXN0KHEpKXt2YXIgRz1xLm1hdGNoKHgpO2lmKEcpe3ZhciBlZT1HWzJdLTF8fDAsUD0oR1s3XXx8IjAiKS5zdWJzdHJpbmcoMCwzKTtyZXR1cm4gQj9uZXcgRGF0ZShEYXRlLlVUQyhHWzFdLGVlLEdbM118fDEsR1s0XXx8MCxHWzVdfHwwLEdbNl18fDAsUCkpOm5ldyBEYXRlKEdbMV0sZWUsR1szXXx8MSxHWzRdfHwwLEdbNV18fDAsR1s2XXx8MCxQKX19cmV0dXJuIG5ldyBEYXRlKHEpfSkoVCksdGhpcy5pbml0KCl9LCQuaW5pdD1mdW5jdGlvbigpe3ZhciBUPXRoaXMuJGQ7dGhpcy4keT1ULmdldEZ1bGxZZWFyKCksdGhpcy4kTT1ULmdldE1vbnRoKCksdGhpcy4kRD1ULmdldERhdGUoKSx0aGlzLiRXPVQuZ2V0RGF5KCksdGhpcy4kSD1ULmdldEhvdXJzKCksdGhpcy4kbT1ULmdldE1pbnV0ZXMoKSx0aGlzLiRzPVQuZ2V0U2Vjb25kcygpLHRoaXMuJG1zPVQuZ2V0TWlsbGlzZWNvbmRzKCl9LCQuJHV0aWxzPWZ1bmN0aW9uKCl7cmV0dXJuIE59LCQuaXNWYWxpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvU3RyaW5nKCkhPT1mfSwkLmlzU2FtZT1mdW5jdGlvbihULEUpe3ZhciBxPUQoVCk7cmV0dXJuIHRoaXMuc3RhcnRPZihFKTw9cSYmcTw9dGhpcy5lbmRPZihFKX0sJC5pc0FmdGVyPWZ1bmN0aW9uKFQsRSl7cmV0dXJuIEQoVCk8dGhpcy5zdGFydE9mKEUpfSwkLmlzQmVmb3JlPWZ1bmN0aW9uKFQsRSl7cmV0dXJuIHRoaXMuZW5kT2YoRSk8RChUKX0sJC4kZz1mdW5jdGlvbihULEUscSl7cmV0dXJuIE4udShUKT90aGlzW0VdOnRoaXMuc2V0KHEsVCl9LCQudW5peD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LCQudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLmdldFRpbWUoKX0sJC5zdGFydE9mPWZ1bmN0aW9uKFQsRSl7dmFyIHE9dGhpcyxCPSEhTi51KEUpfHxFLEc9Ti5wKFQpLGVlPWZ1bmN0aW9uKEEsTCl7dmFyIFU9Ti53KHEuJHU/RGF0ZS5VVEMocS4keSxMLEEpOm5ldyBEYXRlKHEuJHksTCxBKSxxKTtyZXR1cm4gQj9VOlUuZW5kT2Yocyl9LFA9ZnVuY3Rpb24oQSxMKXtyZXR1cm4gTi53KHEudG9EYXRlKClbQV0uYXBwbHkocS50b0RhdGUoInMiKSwoQj9bMCwwLDAsMF06WzIzLDU5LDU5LDk5OV0pLnNsaWNlKEwpKSxxKX0sZ2U9dGhpcy4kVyx3ZT10aGlzLiRNLEk9dGhpcy4kRCxuZT0ic2V0IisodGhpcy4kdT8iVVRDIjoiIik7c3dpdGNoKEcpe2Nhc2UgZDpyZXR1cm4gQj9lZSgxLDApOmVlKDMxLDExKTtjYXNlIGM6cmV0dXJuIEI/ZWUoMSx3ZSk6ZWUoMCx3ZSsxKTtjYXNlIGw6dmFyIGtlPXRoaXMuJGxvY2FsZSgpLndlZWtTdGFydHx8MCxZPShnZTxrZT9nZSs3OmdlKS1rZTtyZXR1cm4gZWUoQj9JLVk6SSsoNi1ZKSx3ZSk7Y2FzZSBzOmNhc2UgaDpyZXR1cm4gUChuZSsiSG91cnMiLDApO2Nhc2UgbzpyZXR1cm4gUChuZSsiTWludXRlcyIsMSk7Y2FzZSBuOnJldHVybiBQKG5lKyJTZWNvbmRzIiwyKTtjYXNlIGE6cmV0dXJuIFAobmUrIk1pbGxpc2Vjb25kcyIsMyk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5jbG9uZSgpfX0sJC5lbmRPZj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5zdGFydE9mKFQsITEpfSwkLiRzZXQ9ZnVuY3Rpb24oVCxFKXt2YXIgcSxCPU4ucChUKSxHPSJzZXQiKyh0aGlzLiR1PyJVVEMiOiIiKSxlZT0ocT17fSxxW3NdPUcrIkRhdGUiLHFbaF09RysiRGF0ZSIscVtjXT1HKyJNb250aCIscVtkXT1HKyJGdWxsWWVhciIscVtvXT1HKyJIb3VycyIscVtuXT1HKyJNaW51dGVzIixxW2FdPUcrIlNlY29uZHMiLHFbaV09RysiTWlsbGlzZWNvbmRzIixxKVtCXSxQPUI9PT1zP3RoaXMuJEQrKEUtdGhpcy4kVyk6RTtpZihCPT09Y3x8Qj09PWQpe3ZhciBnZT10aGlzLmNsb25lKCkuc2V0KGgsMSk7Z2UuJGRbZWVdKFApLGdlLmluaXQoKSx0aGlzLiRkPWdlLnNldChoLE1hdGgubWluKHRoaXMuJEQsZ2UuZGF5c0luTW9udGgoKSkpLiRkfWVsc2UgZWUmJnRoaXMuJGRbZWVdKFApO3JldHVybiB0aGlzLmluaXQoKSx0aGlzfSwkLnNldD1mdW5jdGlvbihULEUpe3JldHVybiB0aGlzLmNsb25lKCkuJHNldChULEUpfSwkLmdldD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpc1tOLnAoVCldKCl9LCQuYWRkPWZ1bmN0aW9uKFQsRSl7dmFyIHEsQj10aGlzO1Q9TnVtYmVyKFQpO3ZhciBHPU4ucChFKSxlZT1mdW5jdGlvbih3ZSl7dmFyIEk9RChCKTtyZXR1cm4gTi53KEkuZGF0ZShJLmRhdGUoKStNYXRoLnJvdW5kKHdlKlQpKSxCKX07aWYoRz09PWMpcmV0dXJuIHRoaXMuc2V0KGMsdGhpcy4kTStUKTtpZihHPT09ZClyZXR1cm4gdGhpcy5zZXQoZCx0aGlzLiR5K1QpO2lmKEc9PT1zKXJldHVybiBlZSgxKTtpZihHPT09bClyZXR1cm4gZWUoNyk7dmFyIFA9KHE9e30scVtuXT10LHFbb109cixxW2FdPWUscSlbR118fDEsZ2U9dGhpcy4kZC5nZXRUaW1lKCkrVCpQO3JldHVybiBOLncoZ2UsdGhpcyl9LCQuc3VidHJhY3Q9ZnVuY3Rpb24oVCxFKXtyZXR1cm4gdGhpcy5hZGQoLTEqVCxFKX0sJC5mb3JtYXQ9ZnVuY3Rpb24oVCl7dmFyIEU9dGhpcyxxPXRoaXMuJGxvY2FsZSgpO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gcS5pbnZhbGlkRGF0ZXx8Zjt2YXIgQj1UfHwiWVlZWS1NTS1ERFRISDptbTpzc1oiLEc9Ti56KHRoaXMpLGVlPXRoaXMuJEgsUD10aGlzLiRtLGdlPXRoaXMuJE0sd2U9cS53ZWVrZGF5cyxJPXEubW9udGhzLG5lPXEubWVyaWRpZW0sa2U9ZnVuY3Rpb24oTCxVLFYsWCl7cmV0dXJuIEwmJihMW1VdfHxMKEUsQikpfHxWW1VdLnNsaWNlKDAsWCl9LFk9ZnVuY3Rpb24oTCl7cmV0dXJuIE4ucyhlZSUxMnx8MTIsTCwiMCIpfSxBPW5lfHxmdW5jdGlvbihMLFUsVil7dmFyIFg9TDwxMj8iQU0iOiJQTSI7cmV0dXJuIFY/WC50b0xvd2VyQ2FzZSgpOlh9O3JldHVybiBCLnJlcGxhY2UodiwoZnVuY3Rpb24oTCxVKXtyZXR1cm4gVXx8KGZ1bmN0aW9uKFYpe3N3aXRjaChWKXtjYXNlIllZIjpyZXR1cm4gU3RyaW5nKEUuJHkpLnNsaWNlKC0yKTtjYXNlIllZWVkiOnJldHVybiBOLnMoRS4keSw0LCIwIik7Y2FzZSJNIjpyZXR1cm4gZ2UrMTtjYXNlIk1NIjpyZXR1cm4gTi5zKGdlKzEsMiwiMCIpO2Nhc2UiTU1NIjpyZXR1cm4ga2UocS5tb250aHNTaG9ydCxnZSxJLDMpO2Nhc2UiTU1NTSI6cmV0dXJuIGtlKEksZ2UpO2Nhc2UiRCI6cmV0dXJuIEUuJEQ7Y2FzZSJERCI6cmV0dXJuIE4ucyhFLiRELDIsIjAiKTtjYXNlImQiOnJldHVybiBTdHJpbmcoRS4kVyk7Y2FzZSJkZCI6cmV0dXJuIGtlKHEud2Vla2RheXNNaW4sRS4kVyx3ZSwyKTtjYXNlImRkZCI6cmV0dXJuIGtlKHEud2Vla2RheXNTaG9ydCxFLiRXLHdlLDMpO2Nhc2UiZGRkZCI6cmV0dXJuIHdlW0UuJFddO2Nhc2UiSCI6cmV0dXJuIFN0cmluZyhlZSk7Y2FzZSJISCI6cmV0dXJuIE4ucyhlZSwyLCIwIik7Y2FzZSJoIjpyZXR1cm4gWSgxKTtjYXNlImhoIjpyZXR1cm4gWSgyKTtjYXNlImEiOnJldHVybiBBKGVlLFAsITApO2Nhc2UiQSI6cmV0dXJuIEEoZWUsUCwhMSk7Y2FzZSJtIjpyZXR1cm4gU3RyaW5nKFApO2Nhc2UibW0iOnJldHVybiBOLnMoUCwyLCIwIik7Y2FzZSJzIjpyZXR1cm4gU3RyaW5nKEUuJHMpO2Nhc2Uic3MiOnJldHVybiBOLnMoRS4kcywyLCIwIik7Y2FzZSJTU1MiOnJldHVybiBOLnMoRS4kbXMsMywiMCIpO2Nhc2UiWiI6cmV0dXJuIEd9cmV0dXJuIG51bGx9KShMKXx8Ry5yZXBsYWNlKCI6IiwiIil9KSl9LCQudXRjT2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDE1Ki1NYXRoLnJvdW5kKHRoaXMuJGQuZ2V0VGltZXpvbmVPZmZzZXQoKS8xNSl9LCQuZGlmZj1mdW5jdGlvbihULEUscSl7dmFyIEIsRz10aGlzLGVlPU4ucChFKSxQPUQoVCksZ2U9KFAudXRjT2Zmc2V0KCktdGhpcy51dGNPZmZzZXQoKSkqdCx3ZT10aGlzLVAsST1mdW5jdGlvbigpe3JldHVybiBOLm0oRyxQKX07c3dpdGNoKGVlKXtjYXNlIGQ6Qj1JKCkvMTI7YnJlYWs7Y2FzZSBjOkI9SSgpO2JyZWFrO2Nhc2UgdTpCPUkoKS8zO2JyZWFrO2Nhc2UgbDpCPSh3ZS1nZSkvNjA0OGU1O2JyZWFrO2Nhc2UgczpCPSh3ZS1nZSkvODY0ZTU7YnJlYWs7Y2FzZSBvOkI9d2UvcjticmVhaztjYXNlIG46Qj13ZS90O2JyZWFrO2Nhc2UgYTpCPXdlL2U7YnJlYWs7ZGVmYXVsdDpCPXdlfXJldHVybiBxP0I6Ti5hKEIpfSwkLmRheXNJbk1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kT2YoYykuJER9LCQuJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBPW3RoaXMuJExdfSwkLmxvY2FsZT1mdW5jdGlvbihULEUpe2lmKCFUKXJldHVybiB0aGlzLiRMO3ZhciBxPXRoaXMuY2xvbmUoKSxCPUYoVCxFLCEwKTtyZXR1cm4gQiYmKHEuJEw9QikscX0sJC5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBOLncodGhpcy4kZCx0aGlzKX0sJC50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSwkLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sJC50b0lTT1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvSVNPU3RyaW5nKCl9LCQudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1VUQ1N0cmluZygpfSxTfSkoKSxfPVIucHJvdG90eXBlO3JldHVybiBELnByb3RvdHlwZT1fLFtbIiRtcyIsaV0sWyIkcyIsYV0sWyIkbSIsbl0sWyIkSCIsb10sWyIkVyIsc10sWyIkTSIsY10sWyIkeSIsZF0sWyIkRCIsaF1dLmZvckVhY2goKGZ1bmN0aW9uKFMpe19bU1sxXV09ZnVuY3Rpb24oJCl7cmV0dXJuIHRoaXMuJGcoJCxTWzBdLFNbMV0pfX0pKSxELmV4dGVuZD1mdW5jdGlvbihTLCQpe3JldHVybiBTLiRpfHwoUygkLFIsRCksUy4kaT0hMCksRH0sRC5sb2NhbGU9RixELmlzRGF5anM9TSxELnVuaXg9ZnVuY3Rpb24oUyl7cmV0dXJuIEQoMWUzKlMpfSxELmVuPU9ba10sRC5Mcz1PLEQucD17fSxEfSkpfSk7dmFyIGVIZT1qZSgoQ0osVEopPT57KGZ1bmN0aW9uKGUsdCl7dHlwZW9mIENKPT0ib2JqZWN0IiYmdHlwZW9mIFRKPCJ1Ij9USi5leHBvcnRzPXQoKTp0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczplfHxzZWxmKS5kYXlqc19wbHVnaW5faXNUb2RheT10KCl9KShDSiwoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7cmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXt0LnByb3RvdHlwZS5pc1RvZGF5PWZ1bmN0aW9uKCl7dmFyIGk9IllZWVktTU0tREQiLGE9cigpO3JldHVybiB0aGlzLmZvcm1hdChpKT09PWEuZm9ybWF0KGkpfX19KSl9KTtmdW5jdGlvbiB1RXIoZSl7cmV0dXJue2RheXM6TWF0aC50cnVuYyhlLzg2NGU1KSxob3VyczpNYXRoLnRydW5jKGUvMzZlNSUyNCksbWludXRlczpNYXRoLnRydW5jKGUvNmU0JTYwKSxzZWNvbmRzOk1hdGgudHJ1bmMoZS8xZTMlNjApLG1pbGxpc2Vjb25kczpNYXRoLnRydW5jKGUlMWUzKSxtaWNyb3NlY29uZHM6TWF0aC50cnVuYyh0SGUoZSoxZTMpJTFlMyksbmFub3NlY29uZHM6TWF0aC50cnVuYyh0SGUoZSoxZTYpJTFlMyl9fWZ1bmN0aW9uIHBFcihlKXtyZXR1cm57ZGF5czplLzg2NDAwMDAwbixob3VyczplLzM2MDAwMDBuJTI0bixtaW51dGVzOmUvNjAwMDBuJTYwbixzZWNvbmRzOmUvMTAwMG4lNjBuLG1pbGxpc2Vjb25kczplJTEwMDBuLG1pY3Jvc2Vjb25kczowbixuYW5vc2Vjb25kczowbn19ZnVuY3Rpb24gX0ooZSl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlIm51bWJlciI6e2lmKE51bWJlci5pc0Zpbml0ZShlKSlyZXR1cm4gdUVyKGUpO2JyZWFrfWNhc2UiYmlnaW50IjpyZXR1cm4gcEVyKGUpfXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZmluaXRlIG51bWJlciBvciBiaWdpbnQiKX12YXIgdEhlLHJIZT1wKCgpPT57dEhlPWU9Pk51bWJlci5pc0Zpbml0ZShlKT9lOjB9KTtmdW5jdGlvbiBXbShlLHQpe2xldCByPXR5cGVvZiBlPT0iYmlnaW50IjtpZighciYmIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGZpbml0ZSBudW1iZXIgb3IgYmlnaW50Iik7dD17Li4udH07bGV0IGk9ZTwwPyItIjoiIjtlPWU8MD8tZTplLHQuY29sb25Ob3RhdGlvbiYmKHQuY29tcGFjdD0hMSx0LmZvcm1hdFN1Yk1pbGxpc2Vjb25kcz0hMSx0LnNlcGFyYXRlTWlsbGlzZWNvbmRzPSExLHQudmVyYm9zZT0hMSksdC5jb21wYWN0JiYodC51bml0Q291bnQ9MSx0LnNlY29uZHNEZWNpbWFsRGlnaXRzPTAsdC5taWxsaXNlY29uZHNEZWNpbWFsRGlnaXRzPTApO2xldCBhPVtdLG49KHUsZCk9PntsZXQgaD1NYXRoLmZsb29yKHUqMTAqKmQrbUVyKTtyZXR1cm4oTWF0aC5yb3VuZChoKS8xMCoqZCkudG9GaXhlZChkKX0sbz0odSxkLGgsZik9PntpZighKChhLmxlbmd0aD09PTB8fCF0LmNvbG9uTm90YXRpb24pJiZoRXIodSkmJiEodC5jb2xvbk5vdGF0aW9uJiZoPT09Im0iKSkpe2lmKGY/Pz1TdHJpbmcodSksdC5jb2xvbk5vdGF0aW9uKXtsZXQgeD1mLmluY2x1ZGVzKCIuIik/Zi5zcGxpdCgiLiIpWzBdLmxlbmd0aDpmLmxlbmd0aCx2PWEubGVuZ3RoPjA/MjoxO2Y9IjAiLnJlcGVhdChNYXRoLm1heCgwLHYteCkpK2Z9ZWxzZSBmKz10LnZlcmJvc2U/IiAiK2ZFcihkLHUpOmg7YS5wdXNoKGYpfX0scz1fSihlKSxsPUJpZ0ludChzLmRheXMpO2lmKHQuaGlkZVllYXJBbmREYXlzP28oQmlnSW50KGwpKjI0bitCaWdJbnQocy5ob3VycyksImhvdXIiLCJoIik6KHQuaGlkZVllYXI/byhsLCJkYXkiLCJkIik6KG8obC8zNjVuLCJ5ZWFyIiwieSIpLG8obCUzNjVuLCJkYXkiLCJkIikpLG8oTnVtYmVyKHMuaG91cnMpLCJob3VyIiwiaCIpKSxvKE51bWJlcihzLm1pbnV0ZXMpLCJtaW51dGUiLCJtIiksIXQuaGlkZVNlY29uZHMpaWYodC5zZXBhcmF0ZU1pbGxpc2Vjb25kc3x8dC5mb3JtYXRTdWJNaWxsaXNlY29uZHN8fCF0LmNvbG9uTm90YXRpb24mJmU8MWUzJiYhdC5zdWJTZWNvbmRzQXNEZWNpbWFscyl7bGV0IHU9TnVtYmVyKHMuc2Vjb25kcyksZD1OdW1iZXIocy5taWxsaXNlY29uZHMpLGg9TnVtYmVyKHMubWljcm9zZWNvbmRzKSxmPU51bWJlcihzLm5hbm9zZWNvbmRzKTtpZihvKHUsInNlY29uZCIsInMiKSx0LmZvcm1hdFN1Yk1pbGxpc2Vjb25kcylvKGQsIm1pbGxpc2Vjb25kIiwibXMiKSxvKGgsIm1pY3Jvc2Vjb25kIiwiXHhCNXMiKSxvKGYsIm5hbm9zZWNvbmQiLCJucyIpO2Vsc2V7bGV0IHg9ZCtoLzFlMytmLzFlNix2PXR5cGVvZiB0Lm1pbGxpc2Vjb25kc0RlY2ltYWxEaWdpdHM9PSJudW1iZXIiP3QubWlsbGlzZWNvbmRzRGVjaW1hbERpZ2l0czowLGI9eD49MT9NYXRoLnJvdW5kKHgpOk1hdGguY2VpbCh4KSx5PXY/eC50b0ZpeGVkKHYpOmI7byhOdW1iZXIucGFyc2VGbG9hdCh5KSwibWlsbGlzZWNvbmQiLCJtcyIseSl9fWVsc2V7bGV0IHU9KHI/TnVtYmVyKGUlZ0VyKTplKS8xZTMlNjAsZD10eXBlb2YgdC5zZWNvbmRzRGVjaW1hbERpZ2l0cz09Im51bWJlciI/dC5zZWNvbmRzRGVjaW1hbERpZ2l0czoxLGg9bih1LGQpLGY9dC5rZWVwRGVjaW1hbHNPbldob2xlU2Vjb25kcz9oOmgucmVwbGFjZSgvXC4wKyQvLCIiKTtvKE51bWJlci5wYXJzZUZsb2F0KGYpLCJzZWNvbmQiLCJzIixmKX1pZihhLmxlbmd0aD09PTApcmV0dXJuIGkrIjAiKyh0LnZlcmJvc2U/IiBtaWxsaXNlY29uZHMiOiJtcyIpO2xldCBjPXQuY29sb25Ob3RhdGlvbj8iOiI6IiAiO3JldHVybiB0eXBlb2YgdC51bml0Q291bnQ9PSJudW1iZXIiJiYoYT1hLnNsaWNlKDAsTWF0aC5tYXgodC51bml0Q291bnQsMSkpKSxpK2Euam9pbihjKX12YXIgaEVyLGZFcixtRXIsZ0VyLGlIZT1wKCgpPT57ckhlKCk7aEVyPWU9PmU9PT0wfHxlPT09MG4sZkVyPShlLHQpPT50PT09MXx8dD09PTFuP2U6YCR7ZX1zYCxtRXI9MWUtNyxnRXI9MjRuKjYwbio2MG4qMTAwMG59KTt2YXIgTzYsYUhlLFgwPXAoKCk9PntHbSgpO1RzKCk7RWkoKTtmSWUoKTtKQmUoKTtPNj1lcihLQmUoKSwxKSxhSGU9ZXIoZUhlKCksMSk7aUhlKCk7TzYuZGVmYXVsdC5leHRlbmQoYUhlLmRlZmF1bHQpfSk7dmFyIFltLExKPXAoKCk9PntYMCgpO0FKKCk7WW09Y2xhc3N7Y29uc3RydWN0b3IodCxyLGkpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLm5leHRFeGVjdXRpb25Vbml4PTAsdGhpcy5jcm9uRXhwcmVzc2lvbj1yLHRoaXMuam9iRnVuY3Rpb249aSx0aGlzLmNyb25QYXJzZXI9bmV3IFNtLkNyb24ocil9Y2hlY2tFeGVjdXRpb24oKXtpZih0aGlzLnN0YXR1cz09PSJzdG9wcGVkIilyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peDtpZih0aGlzLm5leHRFeGVjdXRpb25Vbml4PT09MCYmdGhpcy5nZXROZXh0RXhlY3V0aW9uVGltZSgpLERhdGUubm93KCk+dGhpcy5uZXh0RXhlY3V0aW9uVW5peCl7bGV0IHQ9dGhpcy5qb2JGdW5jdGlvbih0aGlzLm5leHRFeGVjdXRpb25Vbml4KTt0IGluc3RhbmNlb2YgUHJvbWlzZSYmdC5jYXRjaChyPT5jb25zb2xlLmxvZyhyKSksdGhpcy5uZXh0RXhlY3V0aW9uVW5peD10aGlzLmdldE5leHRFeGVjdXRpb25UaW1lKCl9cmV0dXJuIHRoaXMubmV4dEV4ZWN1dGlvblVuaXh9Z2V0TmV4dEV4ZWN1dGlvblRpbWUoKXtyZXR1cm4gdGhpcy5uZXh0RXhlY3V0aW9uVW5peD1EYXRlLm5vdygpK3RoaXMuZ2V0VGltZVRvTmV4dEV4ZWN1dGlvbigpfWdldFRpbWVUb05leHRFeGVjdXRpb24oKXtyZXR1cm4gdGhpcy5jcm9uUGFyc2VyLm1zVG9OZXh0KCl9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCJ9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIn19fSk7dmFyIERKLEFKPXAoKCk9PntYMCgpO0xKKCk7REo9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0YXR1cz0ic3RvcHBlZCIsdGhpcy5jcm9uam9icz1uZXcgdmkuT2JqZWN0TWFwLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bnVsbH13YWtlQ3ljbGUoKXt0aGlzLmN5Y2xlV2FrZURlZmVycmVkJiZ0aGlzLmN5Y2xlV2FrZURlZmVycmVkLnN0YXR1cz09PSJwZW5kaW5nIiYmdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5yZXNvbHZlKCl9YWRkQ3JvbmpvYih0LHIpe2xldCBpPW5ldyBZbSh0aGlzLHQscik7cmV0dXJuIHRoaXMuY3JvbmpvYnMuYWRkKGkpLHRoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYoaS5zdGFydCgpLHRoaXMud2FrZUN5Y2xlKCkpLGl9cmVtb3ZlQ3JvbmpvYih0KXt0LnN0b3AoKSx0aGlzLmNyb25qb2JzLnJlbW92ZSh0KSx0aGlzLnN0YXR1cz09PSJzdGFydGVkIiYmdGhpcy53YWtlQ3ljbGUoKX1zdGFydCgpe2lmKHRoaXMuc3RhdHVzIT09InN0YXJ0ZWQiKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7Zm9yKGxldCB0IG9mIHRoaXMuY3JvbmpvYnMuZ2V0QXJyYXkoKSl0LnN0YXJ0KCk7dGhpcy5ydW5Dcm9uQ3ljbGUoKX19YXN5bmMgcnVuQ3JvbkN5Y2xlKCl7Zm9yKDt0aGlzLnN0YXR1cz09PSJzdGFydGVkIjspe3RoaXMuY3ljbGVXYWtlRGVmZXJyZWQ9bmV3IFhlLkRlZmVycmVkO2xldCB0PTEvMDtmb3IobGV0IHIgb2YgdGhpcy5jcm9uam9icy5nZXRBcnJheSgpKXtyLmNoZWNrRXhlY3V0aW9uKCk7bGV0IGk9ci5nZXRUaW1lVG9OZXh0RXhlY3V0aW9uKCk7aTx0JiYodD1pKX1pZih0PDEvMCYmdD4wKXRoaXMuZXhlY3V0aW9uVGltZW91dD1uZXcgQ3QuVGltZW91dCh0KSxhd2FpdCBQcm9taXNlLnJhY2UoW3RoaXMuZXhlY3V0aW9uVGltZW91dC5wcm9taXNlLHRoaXMuY3ljbGVXYWtlRGVmZXJyZWQucHJvbWlzZV0pLHRoaXMuZXhlY3V0aW9uVGltZW91dC5jYW5jZWwoKTtlbHNle2lmKHQ8PTApY29udGludWU7YXdhaXQgdGhpcy5jeWNsZVdha2VEZWZlcnJlZC5wcm9taXNlfX10aGlzLmN5Y2xlV2FrZURlZmVycmVkPW51bGx9c3RvcCgpe3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiYodGhpcy5zdGF0dXM9InN0b3BwZWQiLHRoaXMuZXhlY3V0aW9uVGltZW91dCYmdGhpcy5leGVjdXRpb25UaW1lb3V0LmNhbmNlbCgpLHRoaXMud2FrZUN5Y2xlKCkpO2ZvcihsZXQgdCBvZiB0aGlzLmNyb25qb2JzLmdldEFycmF5KCkpdC5zdG9wKCl9fX0pO3ZhciBRMCxFSixiRXIsdkVyLCRKPXAoKCk9PntYMCgpO1EwPXt5ZWFyczooZT0xKT0+ZSozMTU0ZTcsbW9udGhzOihlPTEpPT5lKjI2MjhlNix3ZWVrczooZT0xKT0+ZSo2MDQ4ZTUsZGF5czooZT0xKT0+ZSo4NjRlNSxob3VyczooZT0xKT0+ZSozNmU1LG1pbnV0ZXM6KGU9MSk9PmUqNmU0LHNlY29uZHM6KGU9MSk9PmUqMWUzfSxFSj1lPT57bGV0IHQ9MCxyPWk9Pnt0PXQraX07cmV0dXJuIGUueWVhcnMmJnIoUTAueWVhcnMoZS55ZWFycykpLGUubW9udGhzJiZyKFEwLm1vbnRocyhlLm1vbnRocykpLGUud2Vla3MmJnIoUTAud2Vla3MoZS53ZWVrcykpLGUuZGF5cyYmcihRMC5kYXlzKGUuZGF5cykpLGUuaG91cnMmJnIoUTAuaG91cnMoZS5ob3VycykpLGUubWludXRlcyYmcihRMC5taW51dGVzKGUubWludXRlcykpLGUuc2Vjb25kcyYmcihRMC5zZWNvbmRzKGUuc2Vjb25kcykpLHR9LGJFcj1lPT5XbShlKSx2RXI9ZT0+VW0uZm9ybWF0RGlzdGFuY2VUb05vdyhuZXcgRGF0ZShlKSl9KTt2YXIgSUosbkhlPXAoKCk9PntYMCgpOyRKKCk7SUo9Y2xhc3MgZSBleHRlbmRzIERhdGV7c3RhdGljIGZyb21NaWxsaXModCl7cmV0dXJuIG5ldyBlKHQpfXN0YXRpYyBmcm9tRGF0ZSh0KXtyZXR1cm4gbmV3IGUodC5nZXRUaW1lKCkpfXN0YXRpYyBmcm9tRXVyb3BlYW5EYXRlKHQpe2xldCByPS8oLiopXC4oLiopXC4oLiopLy5leGVjKHQpLGE9bmV3IERhdGUocGFyc2VGbG9hdChyWzNdKSxwYXJzZUZsb2F0KHJbMl0pLTEscGFyc2VGbG9hdChyWzFdKSkuZ2V0VGltZSgpO3JldHVybiBuZXcgZShhKX1zdGF0aWMgZnJvbUh5cGhlZERhdGUodCl7bGV0IHI9bmV3IERhdGUodCkuZ2V0VGltZSgpO3JldHVybiBuZXcgZShyKX1zdGF0aWMgZnJvbUV1cm9wZWFuRGF0ZUFuZFRpbWUodCxyPSIxMjowMDowMCIsaT0iRXVyb3BlL0JlcmxpbiIpe2xldCBhPS8oLiopXC4oLiopXC4oLiopLy5leGVjKHQpLG49Yz0+YDAke2N9YC5zbGljZSgtMiksbz1gJHthWzNdfS0ke24oYVsyXSl9LSR7bihhWzFdKX1UJHtyfWAsbD1PNi5kZWZhdWx0KG8pLnRvRGF0ZSgpLmdldFRpbWUoKTtyZXR1cm4gbmV3IGUobCl9Y29uc3RydWN0b3IodD1EYXRlLm5vdygpKXtzdXBlcih0KX1leHBvcnRUb0V1cm9wZWFuRGF0ZSgpe2xldCB0PXRoaXMuZXhwb3J0VG9Vbml0cygpO3JldHVybmAke3QuZGF5U3RyaW5nfS4ke3QubW9udGhTdHJpbmd9LiR7dC55ZWFyU3RyaW5nfWB9ZXhwb3J0VG9IeXBoZWRTb3J0YWJsZURhdGUoKXtsZXQgdD10aGlzLmV4cG9ydFRvVW5pdHMoKTtyZXR1cm5gJHt0LnllYXJTdHJpbmd9LSR7dC5tb250aFN0cmluZ30tJHt0LmRheVN0cmluZ31gfWV4cG9ydFRvVW5pdHMoKXtsZXQgdD1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0scj1bIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5IiwiU3VuZGF5Il07cmV0dXJue3llYXI6dGhpcy5nZXRGdWxsWWVhcigpLHllYXJTdHJpbmc6YCR7dGhpcy5nZXRGdWxsWWVhcigpfWAsbW9udGg6dGhpcy5nZXRNb250aCgpKzEsbW9udGhTdHJpbmc6KCIwIisodGhpcy5nZXRNb250aCgpKzEpKS5zbGljZSgtMiksbW9udGhOYW1lOnRbdGhpcy5nZXRNb250aCgpXSxkYXk6dGhpcy5nZXREYXRlKCksZGF5U3RyaW5nOigiMCIrdGhpcy5nZXREYXRlKCkpLnNsaWNlKC0yKSxkYXlPZlRoZVdlZWs6dGhpcy5nZXREYXkoKSxkYXlPZlRoZVdlZWtOYW1lOnJbdGhpcy5nZXREYXkoKV19fWZvcm1hdCh0KXtyZXR1cm4gTzYuZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuZm9ybWF0KHQpfWlzVG9kYXkoKXtyZXR1cm4gTzYuZGVmYXVsdCh0aGlzLmdldFRpbWUoKSkuaXNUb2RheSgpfWxlc3NUaW1lUGFzc2VkVG9Ob3codCl7bGV0IHI9RUoodCk7cmV0dXJuIERhdGUubm93KCktdGhpcy5nZXRUaW1lKCk8cn1tb3JlVGltZVBhc3NlZFRvTm93KHQpe3JldHVybiF0aGlzLmxlc3NUaW1lUGFzc2VkVG9Ob3codCl9fX0pO3ZhciBQSixvSGU9cCgoKT0+e1BKPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5uYW5vU2Vjb25kcz1udWxsLHRoaXMubWlsbGlTZWNvbmRzPW51bGwsdGhpcy5fbWlsbGlTdGFydD1udWxsLHRoaXMuX21pbGxpRGlmZj1udWxsLHRoaXMuX3N0YXJ0ZWQ9ITF9c3RhcnQoKXt0aGlzLl9zdGFydGVkPSEwLHRoaXMuX21pbGxpU3RhcnQ9RGF0ZS5ub3coKX1zdG9wKCl7aWYodGhpcy5fc3RhcnRlZD09PSExKXtjb25zb2xlLmxvZygiSGFzbid0IHN0YXJ0ZWQgeWV0Iik7cmV0dXJufXJldHVybiB0aGlzLl9taWxsaURpZmY9RGF0ZS5ub3coKS10aGlzLl9taWxsaVN0YXJ0LHRoaXMubmFub1NlY29uZHM9dGhpcy5fbWlsbGlEaWZmKjFlMyx0aGlzLm1pbGxpU2Vjb25kcz10aGlzLl9taWxsaURpZmYsdGhpc31yZXNldCgpe3RoaXMubmFub1NlY29uZHM9bnVsbCx0aGlzLm1pbGxpU2Vjb25kcz1udWxsLHRoaXMuX21pbGxpU3RhcnQ9bnVsbCx0aGlzLl9taWxsaURpZmY9bnVsbCx0aGlzLl9zdGFydGVkPSExfX19KTt2YXIgTkosc0hlPXAoKCk9PntYMCgpO05KPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RhdHVzPSJpbml0aWFsIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbCx0aGlzLmludGVydmFsSm9icz1bXSx0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzPXR9c3RhcnQoKXt0aGlzLnN0YXR1cz0ic3RhcnRlZCI7bGV0IHQ9bmV3IERhdGU7dGhpcy5zdGF0dXNBdXRob3JpemF0aW9uPXQsKGFzeW5jKCk9Pntmb3IoO3RoaXMuc3RhdHVzPT09InN0YXJ0ZWQiJiZ0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249PT10Oylhd2FpdCBDdC5kZWxheUZvcih0aGlzLmludGVydmFsTWlsbGlzZWNvbmRzKSx0aGlzLmV4ZWN1dGVJbnRlcnZhbEpvYnMoKX0pKCl9c3RvcCgpe3RoaXMuc3RhdHVzPSJzdG9wcGVkIix0aGlzLnN0YXR1c0F1dGhvcml6YXRpb249bnVsbH1hZGRJbnRlcnZhbEpvYih0KXt0aGlzLmludGVydmFsSm9icy5wdXNoKHQpfWV4ZWN1dGVJbnRlcnZhbEpvYnMoKXtmb3IobGV0IHQgb2YgdGhpcy5pbnRlcnZhbEpvYnMpdCgpfX19KTt2YXIgRTgsRko9cCgoKT0+e1gwKCk7RTg9Y2xhc3MgZXtzdGF0aWMgZnJvbU1pbGxpU2Vjb25kcyh0KXtyZXR1cm4gbmV3IGUodCl9c3RhdGljIGZyb21UaW1lU3RhbXAodCl7bGV0IHI9bmV3IGU7cmV0dXJuIHIuY2hhbmdlPXIubWlsbGlTZWNvbmRzLXQubWlsbGlTZWNvbmRzLHJ9Y29uc3RydWN0b3IodCl7dGhpcy5jaGFuZ2U9bnVsbCx0P3R5cGVvZiB0PT0ibnVtYmVyIiYmKHRoaXMuZGF0ZT1uZXcgRGF0ZSh0KSk6dGhpcy5kYXRlPW5ldyBEYXRlLHRoaXMubWlsbGlTZWNvbmRzPXRoaXMuZGF0ZS5nZXRUaW1lKCksdGhpcy5lcG9jaHRpbWU9TWF0aC5mbG9vcih0aGlzLm1pbGxpU2Vjb25kcy8xZTMpfWlzT2xkZXJUaGFuT3RoZXJUaW1lU3RhbXAodCxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kczx0Lm1pbGxpU2Vjb25kcy1yfWlzT2xkZXJUaGFuKHQscj0wKXtyZXR1cm4gdGhpcy5taWxsaVNlY29uZHMrcjx0Lm1pbGxpU2Vjb25kc31pc1lvdW5nZXJUaGFuT3RoZXJUaW1lU3RhbXAodCxyPTApe3JldHVybiB0aGlzLm1pbGxpU2Vjb25kcz50Lm1pbGxpU2Vjb25kcytyfWlzWW91bmdlclRoYW5NaWxsaVNlY29uZHModCl7bGV0IGk9bmV3IGUoKS5lcG9jaHRpbWUtdCxhPW5ldyBlKGkpO3JldHVybiB0aGlzLmlzWW91bmdlclRoYW5PdGhlclRpbWVTdGFtcChhKX19fSk7dmFyIE9KLGxIZT1wKCgpPT57WDAoKTtGSigpO09KPWNsYXNze2dldCB0aW1lTGVmdCgpe3JldHVybiB0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcy10aGlzLnBhdXNlZEF0LmNoYW5nZX1jb25zdHJ1Y3Rvcih0KXt0aGlzLnN0YXRlPSJpbml0aWF0ZWQiLHRoaXMuY29tcGxldGVkRGVmZXJyZWQ9WGUuZGVmZXIoKSx0aGlzLnRpbWVJbk1pbGxpc2Vjb25kcz10LHRoaXMuY29tcGxldGVkPXRoaXMuY29tcGxldGVkRGVmZXJyZWQucHJvbWlzZX1zdGFydCgpe2lmKCF0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lSW5NaWxsaXNlY29uZHMpLHRoaXMuc3RhcnRlZEF0PW5ldyBFODtlbHNlIHRocm93IG5ldyBFcnJvcigidGltZXIgaGFzIGJlZW4gc3RhcnRlZCBiZWZvcmUuIFBsZWFzZSB1c2UgcmVzdW1lIGluc3RlYWQiKX1wYXVzZSgpe3RoaXMuc3RhcnRlZEF0JiYoY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpbWVvdXQpLHRoaXMuY3VycmVudFRpbWVvdXQ9bnVsbCx0aGlzLnBhdXNlZEF0PUU4LmZyb21UaW1lU3RhbXAodGhpcy5zdGFydGVkQXQpKX1yZXN1bWUoKXtpZih0aGlzLnN0YXJ0ZWRBdCl0aGlzLmN1cnJlbnRUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXBsZXRlZERlZmVycmVkLnJlc29sdmUoKX0sdGhpcy50aW1lTGVmdCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoInRpbWVyIGhhcyBOT1QgYmVlbiBzdGFydGVkIGJlZm9yZS4gUGxlYXNlIHVzZSAuc3RhcnQoKSBpbnN0ZWFkIil9cmVzZXQoKXt0aGlzLnBhdXNlKCksdGhpcy5zdGFydGVkQXQ9bnVsbCx0aGlzLnBhdXNlZEF0PW51bGx9fX0pO3ZhciBabD17fTtGZShabCx7Q3JvbkpvYjooKT0+WW0sQ3Jvbk1hbmFnZXI6KCk9PkRKLEV4dGVuZGVkRGF0ZTooKT0+SUosSHJ0TWVhc3VyZW1lbnQ6KCk9PlBKLEludGVydmFsOigpPT5OSixUaW1lU3RhbXA6KCk9PkU4LFRpbWVyOigpPT5PSixnZXRNaWxsaVNlY29uZHNBc0h1bWFuUmVhZGFibGVBZ29UaW1lOigpPT52RXIsZ2V0TWlsbGlTZWNvbmRzQXNIdW1hblJlYWRhYmxlU3RyaW5nOigpPT5iRXIsZ2V0TWlsbGlTZWNvbmRzRnJvbVVuaXRzOigpPT5FSix1bml0czooKT0+UTB9KTt2YXIgUko9cCgoKT0+e0FKKCk7TEooKTtuSGUoKTtvSGUoKTtzSGUoKTtsSGUoKTtGSigpOyRKKCl9KTt2YXIgZEhlPWplKChVTGksY0hlKT0+eyJ1c2Ugc3RyaWN0IjtjSGUuZXhwb3J0cz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucGFyZW50PW51bGwsdGhpcy5wcmV2aW91c1NpYmxpbmc9bnVsbCx0aGlzLm5leHRTaWJsaW5nPW51bGwsdGhpcy5maXJzdENoaWxkPW51bGwsdGhpcy5sYXN0Q2hpbGQ9bnVsbCx0aGlzLmNoaWxkcmVuVmVyc2lvbj0wLHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbCx0aGlzLmNhY2hlZEluZGV4PS0xLHRoaXMuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTn1nZXQgaXNBdHRhY2hlZCgpe3JldHVybiEhKHRoaXMucGFyZW50fHx0aGlzLnByZXZpb3VzU2libGluZ3x8dGhpcy5uZXh0U2libGluZyl9Z2V0IGhhc0NoaWxkcmVuKCl7cmV0dXJuISF0aGlzLmZpcnN0Q2hpbGR9Y2hpbGRyZW5DaGFuZ2VkKCl7dGhpcy5jaGlsZHJlblZlcnNpb249dGhpcy5jaGlsZHJlblZlcnNpb24rMSY0Mjk0OTY3Mjk1LHRoaXMuY2hpbGRJbmRleENhY2hlZFVwVG89bnVsbH1nZXRDYWNoZWRJbmRleCh0KXtyZXR1cm4gdGhpcy5jYWNoZWRJbmRleFZlcnNpb24hPT10LmNoaWxkcmVuVmVyc2lvbj8odGhpcy5jYWNoZWRJbmRleFZlcnNpb249TmFOLC0xKTp0aGlzLmNhY2hlZEluZGV4fXNldENhY2hlZEluZGV4KHQscil7dGhpcy5jYWNoZWRJbmRleFZlcnNpb249dC5jaGlsZHJlblZlcnNpb24sdGhpcy5jYWNoZWRJbmRleD1yfX19KTt2YXIgcEhlPWplKChXTGksdUhlKT0+eyJ1c2Ugc3RyaWN0Ijt1SGUuZXhwb3J0cz1PYmplY3QuZnJlZXplKHtESVNDT05ORUNURUQ6MSxQUkVDRURJTkc6MixGT0xMT1dJTkc6NCxDT05UQUlOUzo4LENPTlRBSU5FRF9CWToxNn0pfSk7dmFyIGJIZT1qZSgoR0xpLGdIZSk9PnsidXNlIHN0cmljdCI7dmFyIGhIZT1TeW1ib2woKSxmSGU9U3ltYm9sKCksSjA9U3ltYm9sKCksbUhlPVN5bWJvbCgpLG0yPWNsYXNze2NvbnN0cnVjdG9yKHQscixpLGEpe3RoaXNbaEhlXT10LHRoaXNbZkhlXT1yLHRoaXNbSjBdPWksdGhpc1ttSGVdPWF9bmV4dCgpe2xldCB0PXRoaXNbaEhlXSxyPXRoaXNbbUhlXSxpPXRoaXNbZkhlXTtpZighdGhpc1tKMF0pcmV0dXJue2RvbmU6ITAsdmFsdWU6aX07bGV0IGE9dGhpc1tKMF07cmV0dXJuIHI9PT0xP3RoaXNbSjBdPXQuX25vZGUoYSkucHJldmlvdXNTaWJsaW5nOnI9PT0yP3RoaXNbSjBdPXQuX25vZGUoYSkubmV4dFNpYmxpbmc6cj09PTM/dGhpc1tKMF09dC5fbm9kZShhKS5wYXJlbnQ6cj09PTQ/dGhpc1tKMF09dC5wcmVjZWRpbmcoYSx7cm9vdDppfSk6dGhpc1tKMF09dC5mb2xsb3dpbmcoYSx7cm9vdDppfSkse2RvbmU6ITEsdmFsdWU6YX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkobTIucHJvdG90eXBlLFN5bWJvbC5pdGVyYXRvcix7dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sd3JpdGFibGU6ITF9KSxtMi5QUkVWPTEsbTIuTkVYVD0yLG0yLlBBUkVOVD0zLG0yLlBSRUNFRElORz00LG0yLkZPTExPV0lORz01LE9iamVjdC5mcmVlemUobTIpLE9iamVjdC5mcmVlemUobTIucHJvdG90eXBlKSxnSGUuZXhwb3J0cz1tMn0pO3ZhciBISj1qZSgoWUxpLHZIZSk9PnsidXNlIHN0cmljdCI7dmFyIHlFcj1kSGUoKSxLMD1wSGUoKSx6bz1iSGUoKTtmdW5jdGlvbiBCSigpe3JldHVybiEwfWZ1bmN0aW9uICQ4KGUsdCl7cmV0dXJuIGVbZS5sZW5ndGgtMS10XX12YXIgTVQ9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5zeW1ib2w9U3ltYm9sKHR8fCJTeW1ib2xUcmVlIGRhdGEiKX1pbml0aWFsaXplKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLHR9X25vZGUodCl7aWYoIXQpcmV0dXJuIG51bGw7bGV0IHI9dFt0aGlzLnN5bWJvbF07cmV0dXJuIHJ8fCh0W3RoaXMuc3ltYm9sXT1uZXcgeUVyKX1oYXNDaGlsZHJlbih0KXtyZXR1cm4gdGhpcy5fbm9kZSh0KS5oYXNDaGlsZHJlbn1maXJzdENoaWxkKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLmZpcnN0Q2hpbGR9bGFzdENoaWxkKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLmxhc3RDaGlsZH1wcmV2aW91c1NpYmxpbmcodCl7cmV0dXJuIHRoaXMuX25vZGUodCkucHJldmlvdXNTaWJsaW5nfW5leHRTaWJsaW5nKHQpe3JldHVybiB0aGlzLl9ub2RlKHQpLm5leHRTaWJsaW5nfXBhcmVudCh0KXtyZXR1cm4gdGhpcy5fbm9kZSh0KS5wYXJlbnR9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQodCl7bGV0IHIsaT10O2Zvcig7cj10aGlzLl9ub2RlKGkpLmxhc3RDaGlsZDspaT1yO3JldHVybiBpfXByZWNlZGluZyh0LHIpe2xldCBpPXImJnIucm9vdDtpZih0PT09aSlyZXR1cm4gbnVsbDtsZXQgYT10aGlzLl9ub2RlKHQpLnByZXZpb3VzU2libGluZztyZXR1cm4gYT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KGEpOnRoaXMuX25vZGUodCkucGFyZW50fWZvbGxvd2luZyh0LHIpe2xldCBpPXImJnIucm9vdCxuPSEociYmci5za2lwQ2hpbGRyZW4pJiZ0aGlzLl9ub2RlKHQpLmZpcnN0Q2hpbGQ7aWYobilyZXR1cm4gbjtsZXQgbz10O2Rve2lmKG89PT1pKXJldHVybiBudWxsO2xldCBzPXRoaXMuX25vZGUobykubmV4dFNpYmxpbmc7aWYocylyZXR1cm4gcztvPXRoaXMuX25vZGUobykucGFyZW50fXdoaWxlKG8pO3JldHVybiBudWxsfWNoaWxkcmVuVG9BcnJheSh0LHIpe2xldCBpPXImJnIuYXJyYXl8fFtdLGE9ciYmci5maWx0ZXJ8fEJKLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz10aGlzLl9ub2RlKHQpLHM9by5maXJzdENoaWxkLGw9MDtmb3IoO3M7KXtsZXQgYz10aGlzLl9ub2RlKHMpO2Muc2V0Q2FjaGVkSW5kZXgobyxsKSxhLmNhbGwobixzKSYmaS5wdXNoKHMpLHM9Yy5uZXh0U2libGluZywrK2x9cmV0dXJuIGl9YW5jZXN0b3JzVG9BcnJheSh0LHIpe2xldCBpPXImJnIuYXJyYXl8fFtdLGE9ciYmci5maWx0ZXJ8fEJKLG49ciYmci50aGlzQXJnfHx2b2lkIDAsbz10O2Zvcig7bzspYS5jYWxsKG4sbykmJmkucHVzaChvKSxvPXRoaXMuX25vZGUobykucGFyZW50O3JldHVybiBpfXRyZWVUb0FycmF5KHQscil7bGV0IGk9ciYmci5hcnJheXx8W10sYT1yJiZyLmZpbHRlcnx8Qkosbj1yJiZyLnRoaXNBcmd8fHZvaWQgMCxvPXQ7Zm9yKDtvOylhLmNhbGwobixvKSYmaS5wdXNoKG8pLG89dGhpcy5mb2xsb3dpbmcobyx7cm9vdDp0fSk7cmV0dXJuIGl9Y2hpbGRyZW5JdGVyYXRvcih0LHIpe2xldCBpPXImJnIucmV2ZXJzZSxhPXRoaXMuX25vZGUodCk7cmV0dXJuIG5ldyB6byh0aGlzLHQsaT9hLmxhc3RDaGlsZDphLmZpcnN0Q2hpbGQsaT96by5QUkVWOnpvLk5FWFQpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gbmV3IHpvKHRoaXMsdCx0aGlzLl9ub2RlKHQpLnByZXZpb3VzU2libGluZyx6by5QUkVWKX1uZXh0U2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gbmV3IHpvKHRoaXMsdCx0aGlzLl9ub2RlKHQpLm5leHRTaWJsaW5nLHpvLk5FWFQpfWFuY2VzdG9yc0l0ZXJhdG9yKHQpe3JldHVybiBuZXcgem8odGhpcyx0LHQsem8uUEFSRU5UKX10cmVlSXRlcmF0b3IodCxyKXtsZXQgaT1yJiZyLnJldmVyc2U7cmV0dXJuIG5ldyB6byh0aGlzLHQsaT90aGlzLmxhc3RJbmNsdXNpdmVEZXNjZW5kYW50KHQpOnQsaT96by5QUkVDRURJTkc6em8uRk9MTE9XSU5HKX1pbmRleCh0KXtsZXQgcj10aGlzLl9ub2RlKHQpLGk9dGhpcy5fbm9kZShyLnBhcmVudCk7aWYoIWkpcmV0dXJuLTE7bGV0IGE9ci5nZXRDYWNoZWRJbmRleChpKTtpZihhPj0wKXJldHVybiBhO2E9MDtsZXQgbj1pLmZpcnN0Q2hpbGQ7aWYoaS5jaGlsZEluZGV4Q2FjaGVkVXBUbyl7bGV0IG89dGhpcy5fbm9kZShpLmNoaWxkSW5kZXhDYWNoZWRVcFRvKTtuPW8ubmV4dFNpYmxpbmcsYT1vLmdldENhY2hlZEluZGV4KGkpKzF9Zm9yKDtuOyl7bGV0IG89dGhpcy5fbm9kZShuKTtpZihvLnNldENhY2hlZEluZGV4KGksYSksbj09PXQpYnJlYWs7KythLG49by5uZXh0U2libGluZ31yZXR1cm4gaS5jaGlsZEluZGV4Q2FjaGVkVXBUbz10LGF9Y2hpbGRyZW5Db3VudCh0KXtsZXQgcj10aGlzLl9ub2RlKHQpO3JldHVybiByLmxhc3RDaGlsZD90aGlzLmluZGV4KHIubGFzdENoaWxkKSsxOjB9Y29tcGFyZVRyZWVQb3NpdGlvbih0LHIpe2lmKHQ9PT1yKXJldHVybiAwO2xldCBpPVtdO3tsZXQgdT10O2Zvcig7dTspe2lmKHU9PT1yKXJldHVybiBLMC5DT05UQUlOU3xLMC5QUkVDRURJTkc7aS5wdXNoKHUpLHU9dGhpcy5wYXJlbnQodSl9fWxldCBhPVtdO3tsZXQgdT1yO2Zvcig7dTspe2lmKHU9PT10KXJldHVybiBLMC5DT05UQUlORURfQll8SzAuRk9MTE9XSU5HO2EucHVzaCh1KSx1PXRoaXMucGFyZW50KHUpfX1sZXQgbj0kOChpLDApO2lmKCFufHxuIT09JDgoYSwwKSlyZXR1cm4gSzAuRElTQ09OTkVDVEVEO2xldCBvPTAscz1NYXRoLm1pbihpLmxlbmd0aCxhLmxlbmd0aCk7Zm9yKGxldCB1PTA7dTxzOysrdSl7bGV0IGQ9JDgoaSx1KSxoPSQ4KGEsdSk7aWYoZCE9PWgpYnJlYWs7bz11fWxldCBsPXRoaXMuaW5kZXgoJDgoaSxvKzEpKTtyZXR1cm4gdGhpcy5pbmRleCgkOChhLG8rMSkpPGw/SzAuUFJFQ0VESU5HOkswLkZPTExPV0lOR31yZW1vdmUodCl7bGV0IHI9dGhpcy5fbm9kZSh0KSxpPXRoaXMuX25vZGUoci5wYXJlbnQpLGE9dGhpcy5fbm9kZShyLnByZXZpb3VzU2libGluZyksbj10aGlzLl9ub2RlKHIubmV4dFNpYmxpbmcpO3JldHVybiBpJiYoaS5maXJzdENoaWxkPT09dCYmKGkuZmlyc3RDaGlsZD1yLm5leHRTaWJsaW5nKSxpLmxhc3RDaGlsZD09PXQmJihpLmxhc3RDaGlsZD1yLnByZXZpb3VzU2libGluZykpLGEmJihhLm5leHRTaWJsaW5nPXIubmV4dFNpYmxpbmcpLG4mJihuLnByZXZpb3VzU2libGluZz1yLnByZXZpb3VzU2libGluZyksci5wYXJlbnQ9bnVsbCxyLnByZXZpb3VzU2libGluZz1udWxsLHIubmV4dFNpYmxpbmc9bnVsbCxyLmNhY2hlZEluZGV4PS0xLHIuY2FjaGVkSW5kZXhWZXJzaW9uPU5hTixpJiZpLmNoaWxkcmVuQ2hhbmdlZCgpLHR9aW5zZXJ0QmVmb3JlKHQscil7bGV0IGk9dGhpcy5fbm9kZSh0KSxhPXRoaXMuX25vZGUoaS5wcmV2aW91c1NpYmxpbmcpLG49dGhpcy5fbm9kZShyKSxvPXRoaXMuX25vZGUoaS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1pLnBhcmVudCxuLnByZXZpb3VzU2libGluZz1pLnByZXZpb3VzU2libGluZyxuLm5leHRTaWJsaW5nPXQsaS5wcmV2aW91c1NpYmxpbmc9cixhJiYoYS5uZXh0U2libGluZz1yKSxvJiZvLmZpcnN0Q2hpbGQ9PT10JiYoby5maXJzdENoaWxkPXIpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCkscn1pbnNlcnRBZnRlcih0LHIpe2xldCBpPXRoaXMuX25vZGUodCksYT10aGlzLl9ub2RlKGkubmV4dFNpYmxpbmcpLG49dGhpcy5fbm9kZShyKSxvPXRoaXMuX25vZGUoaS5wYXJlbnQpO2lmKG4uaXNBdHRhY2hlZCl0aHJvdyBFcnJvcigiR2l2ZW4gb2JqZWN0IGlzIGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIFN5bWJvbFRyZWUsIHJlbW92ZSBpdCBmaXJzdCIpO3JldHVybiBuLnBhcmVudD1pLnBhcmVudCxuLnByZXZpb3VzU2libGluZz10LG4ubmV4dFNpYmxpbmc9aS5uZXh0U2libGluZyxpLm5leHRTaWJsaW5nPXIsYSYmKGEucHJldmlvdXNTaWJsaW5nPXIpLG8mJm8ubGFzdENoaWxkPT09dCYmKG8ubGFzdENoaWxkPXIpLG8mJm8uY2hpbGRyZW5DaGFuZ2VkKCkscn1wcmVwZW5kQ2hpbGQodCxyKXtsZXQgaT10aGlzLl9ub2RlKHQpLGE9dGhpcy5fbm9kZShyKTtpZihhLmlzQXR0YWNoZWQpdGhyb3cgRXJyb3IoIkdpdmVuIG9iamVjdCBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBTeW1ib2xUcmVlLCByZW1vdmUgaXQgZmlyc3QiKTtyZXR1cm4gaS5oYXNDaGlsZHJlbj90aGlzLmluc2VydEJlZm9yZShpLmZpcnN0Q2hpbGQscik6KGEucGFyZW50PXQsaS5maXJzdENoaWxkPXIsaS5sYXN0Q2hpbGQ9cixpLmNoaWxkcmVuQ2hhbmdlZCgpKSxyfWFwcGVuZENoaWxkKHQscil7bGV0IGk9dGhpcy5fbm9kZSh0KSxhPXRoaXMuX25vZGUocik7aWYoYS5pc0F0dGFjaGVkKXRocm93IEVycm9yKCJHaXZlbiBvYmplY3QgaXMgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgU3ltYm9sVHJlZSwgcmVtb3ZlIGl0IGZpcnN0Iik7cmV0dXJuIGkuaGFzQ2hpbGRyZW4/dGhpcy5pbnNlcnRBZnRlcihpLmxhc3RDaGlsZCxyKTooYS5wYXJlbnQ9dCxpLmZpcnN0Q2hpbGQ9cixpLmxhc3RDaGlsZD1yLGkuY2hpbGRyZW5DaGFuZ2VkKCkpLHJ9fTt2SGUuZXhwb3J0cz1NVCxNVC5UcmVlUG9zaXRpb249SzB9KTt2YXIga1QsQ289cCgoKT0+e1RzKCk7Z1EoKTtFaSgpO2gyKCk7UkooKTtrVD1lcihISigpLDEpfSk7dmFyIHFKLHhIZT1wKCgpPT57Q28oKTtxSj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuZXhlY3V0aW9uU2xvdHM9W10sdGhpcy5pc1Byb2Nlc3Npbmc9ITEsdGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT0xLzAsdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ9MCx0aGlzLm5vbkV4Y2x1c2l2ZVBlbmRpbmdRdWV1ZT1bXX1hc3luYyBnZXRFeGNsdXNpdmVFeGVjdXRpb25TbG90KHQscil7bGV0IGk9WGUuZGVmZXIoKSxhPXtmdW5jVG9FeGVjdXRlOnQsZXhlY3V0aW9uRGVmZXJyZWQ6aSx0aW1lb3V0OnIsbW9kZToiZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChhKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGkucHJvbWlzZX1hc3luYyBnZXROb25FeGNsdXNpdmVFeGVjdXRpb25TbG90KHQscil7bGV0IGk9WGUuZGVmZXIoKSxhPXtmdW5jVG9FeGVjdXRlOnQsZXhlY3V0aW9uRGVmZXJyZWQ6aSx0aW1lb3V0OnIsbW9kZToibm9uZXhjbHVzaXZlIn07cmV0dXJuIHRoaXMuZXhlY3V0aW9uU2xvdHMucHVzaChhKSx0aGlzLnByb2Nlc3NFeGVjdXRpb25TbG90cygpLGkucHJvbWlzZX1zZXROb25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSh0KXtpZighTnVtYmVyLmlzRmluaXRlKHQpfHx0PDEpdGhyb3cgbmV3IEVycm9yKCJub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeSBtdXN0IGJlIGEgZmluaXRlIG51bWJlciA+PSAxIik7dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT10fWdldE5vbkV4Y2x1c2l2ZU1heENvbmN1cnJlbmN5KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlTWF4Q29uY3VycmVuY3l9Z2V0QWN0aXZlTm9uRXhjbHVzaXZlQ291bnQoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnR9Z2V0UGVuZGluZ05vbkV4Y2x1c2l2ZUNvdW50KCl7cmV0dXJuIHRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLmxlbmd0aH1hc3luYyBwcm9jZXNzRXhlY3V0aW9uU2xvdHMoKXtpZighdGhpcy5pc1Byb2Nlc3Npbmcpe2Zvcih0aGlzLmlzUHJvY2Vzc2luZz0hMDt0aGlzLmV4ZWN1dGlvblNsb3RzLmxlbmd0aD4wOyl7bGV0IHQ9dGhpcy5leGVjdXRpb25TbG90c1swXTtpZih0Lm1vZGU9PT0iZXhjbHVzaXZlIilhd2FpdCB0aGlzLmV4ZWN1dGVFeGNsdXNpdmVTbG90KHQpLHRoaXMuZXhlY3V0aW9uU2xvdHMuc2hpZnQoKTtlbHNle2xldCByPVtdO2Zvcig7dGhpcy5leGVjdXRpb25TbG90cy5sZW5ndGg+MCYmdGhpcy5leGVjdXRpb25TbG90c1swXS5tb2RlPT09Im5vbmV4Y2x1c2l2ZSI7KXIucHVzaCh0aGlzLmV4ZWN1dGlvblNsb3RzLnNoaWZ0KCkpO2F3YWl0IHRoaXMuZXhlY3V0ZU5vbkV4Y2x1c2l2ZVNsb3RzKHIpfX10aGlzLmlzUHJvY2Vzc2luZz0hMX19YXN5bmMgZXhlY3V0ZUV4Y2x1c2l2ZVNsb3QodCl7dHJ5e2lmKHQudGltZW91dCl7bGV0IHI9YXdhaXQgUHJvbWlzZS5yYWNlKFt0LmZ1bmNUb0V4ZWN1dGUoKSxDdC5kZWxheUZvcih0LnRpbWVvdXQpLnRoZW4oKCk9Pnt0aHJvdyBuZXcgRXJyb3IoIlRpbWVvdXQgcmVhY2hlZCIpfSldKTt0LmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9ZWxzZXtsZXQgcj1hd2FpdCB0LmZ1bmNUb0V4ZWN1dGUoKTt0LmV4ZWN1dGlvbkRlZmVycmVkLnJlc29sdmUocil9fWNhdGNoKHIpe3QuZXhlY3V0aW9uRGVmZXJyZWQucmVqZWN0KHIpfX1hc3luYyBleGVjdXRlTm9uRXhjbHVzaXZlU2xvdHModCl7bGV0IHI9dC5tYXAoYXN5bmMgaT0+e2F3YWl0IHRoaXMud2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKTt0cnl7aWYoaS50aW1lb3V0KXtsZXQgYT1hd2FpdCBQcm9taXNlLnJhY2UoW2kuZnVuY1RvRXhlY3V0ZSgpLEN0LmRlbGF5Rm9yKGkudGltZW91dCkudGhlbigoKT0+e3Rocm93IG5ldyBFcnJvcigiVGltZW91dCByZWFjaGVkIil9KV0pO2kuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX1lbHNle2xldCBhPWF3YWl0IGkuZnVuY1RvRXhlY3V0ZSgpO2kuZXhlY3V0aW9uRGVmZXJyZWQucmVzb2x2ZShhKX19Y2F0Y2goYSl7aS5leGVjdXRpb25EZWZlcnJlZC5yZWplY3QoYSl9ZmluYWxseXt0aGlzLnJlbGVhc2VOb25FeGNsdXNpdmVTbG90KCl9fSk7YXdhaXQgUHJvbWlzZS5hbGwocil9d2FpdEZvck5vbkV4Y2x1c2l2ZVNsb3QoKXtyZXR1cm4gdGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQ8dGhpcy5ub25FeGNsdXNpdmVNYXhDb25jdXJyZW5jeT8odGhpcy5ub25FeGNsdXNpdmVDdXJyZW50Q291bnQrKyxQcm9taXNlLnJlc29sdmUoKSk6bmV3IFByb21pc2UodD0+e3RoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnB1c2goKCk9Pnt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudCsrLHQoKX0pfSl9cmVsZWFzZU5vbkV4Y2x1c2l2ZVNsb3QoKXt0aGlzLm5vbkV4Y2x1c2l2ZUN1cnJlbnRDb3VudC0tO2xldCB0PXRoaXMubm9uRXhjbHVzaXZlUGVuZGluZ1F1ZXVlLnNoaWZ0KCk7dCYmdCgpfX19KTt2YXIgakoseUhlPXAoKCk9PntDbygpO2pKPWNsYXNze2NvbnN0cnVjdG9yKHQ9MTYpe3RoaXMuaGFzU3BhY2U9bmV3IG5yLnJ4anMuU3ViamVjdCx0aGlzLml0ZW1zQXZhaWxhYmxlPW5ldyBuci5yeGpzLlN1YmplY3QsdGhpcy5kYXRhPVtdLHRoaXMuaGlnaFdhdGVyTWFyaz10fXB1c2godCl7dGhpcy5kYXRhLnB1c2godCksdGhpcy5pdGVtc0F2YWlsYWJsZS5uZXh0KCJpdGVtc0F2YWlsYWJsZSIpO2xldCByPXRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpO3JldHVybiByJiZ0aGlzLmhhc1NwYWNlLm5leHQoImhhc1NwYWNlIikscn1zaGlmdCgpe2xldCB0PXRoaXMuZGF0YS5zaGlmdCgpO3JldHVybiB0aGlzLmNoZWNrU3BhY2VBdmFpbGFibGUoKSYmdGhpcy5oYXNTcGFjZS5uZXh0KCJoYXNTcGFjZSIpLHR9Y2hlY2tTcGFjZUF2YWlsYWJsZSgpe3JldHVybiB0aGlzLmRhdGEubGVuZ3RoPHRoaXMuaGlnaFdhdGVyTWFya31jaGVja0hhc0l0ZW1zKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGg+MH13YWl0Rm9yU3BhY2UoKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2lmKHRoaXMuY2hlY2tTcGFjZUF2YWlsYWJsZSgpKXQoKTtlbHNle2xldCByPXRoaXMuaGFzU3BhY2Uuc3Vic2NyaWJlKCgpPT57ci51bnN1YnNjcmliZSgpLHQoKX0pfX0pfXdhaXRGb3JJdGVtcygpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57aWYodGhpcy5kYXRhLmxlbmd0aD4wKXQoKTtlbHNle2xldCByPXRoaXMuaXRlbXNBdmFpbGFibGUuc3Vic2NyaWJlKCgpPT57ci51bnN1YnNjcmliZSgpLHQoKX0pfX0pfX19KTt2YXIgWm0sVko9cCgoKT0+e0NvKCk7Wm09Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwT2JqZWN0PXt9fWlzVW5pcXVlS2V5KHQpe3JldHVybiF0aGlzLm1hcE9iamVjdFt0XX1hZGRUb01hcCh0LHIsaSl7cmV0dXJuIHRoaXMuaXNVbmlxdWVLZXkodCl8fGkmJmkuZm9yY2U/KHRoaXMubWFwT2JqZWN0W3RdPXIsITApOiExfWdldEJ5S2V5KHQpe3JldHVybiB0aGlzLm1hcE9iamVjdFt0XX1yZW1vdmVGcm9tTWFwKHQpe2xldCByPXRoaXMuZ2V0QnlLZXkodCk7cmV0dXJuIGRlbGV0ZSB0aGlzLm1hcE9iamVjdFt0XSxyfWdldEtleXMoKXtsZXQgdD1bXTtmb3IobGV0IHIgaW4gdGhpcy5tYXBPYmplY3QpdGhpcy5tYXBPYmplY3Rbcl0mJnQucHVzaChyKTtyZXR1cm4gdH1jbGVhbigpe3RoaXMubWFwT2JqZWN0PXt9fWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtmb3IobGV0IGkgb2YgdGhpcy5nZXRLZXlzKCkpci5hZGRUb01hcChpLHRoaXMuZ2V0QnlLZXkoaSkpO2ZvcihsZXQgaSBvZiB0LmdldEtleXMoKSlyLmFkZFRvTWFwKGksdC5nZXRCeUtleShpKSx7Zm9yY2U6ITB9KTtyZXR1cm4gcn1hZGRBbGxGcm9tT3RoZXIodCl7Zm9yKGxldCByIG9mIHQuZ2V0S2V5cygpKXRoaXMuYWRkVG9NYXAocix0LmdldEJ5S2V5KHIpLHtmb3JjZTohMH0pfWFzeW5jIGZpbmQodCl7Zm9yKGxldCByIG9mIHRoaXMuZ2V0S2V5cygpKXtsZXQgaT10aGlzLmdldEJ5S2V5KHIpO2lmKGF3YWl0IHQoaSkpcmV0dXJuIGl9fX19KTt2YXIgd0hlLFI2LFNUPXAoKCk9PntDbygpO1ZKKCk7d0hlPShlPSJ1bmkiKT0+YCR7ZX14eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLHQ9PntsZXQgcj1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKHQ9PT0ieCI/cjpyJjN8OCkudG9TdHJpbmcoMTYpfSksUjY9Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMuZmFzdE1hcD1uZXcgWm0sdGhpcy5ldmVudFN1YmplY3Q9bmV3IG5yLnJ4anMuU3ViamVjdH1hZGRNYXBwZWRVbmlxdWUodCxyKXt0aGlzLmZhc3RNYXAuYWRkVG9NYXAodCxyKX1nZXRNYXBwZWRVbmlxdWUodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRCeUtleSh0KX1yZW1vdmVNYXBwZWRVbmlxdWUodCl7bGV0IHI9dGhpcy5nZXRNYXBwZWRVbmlxdWUodCl9YWRkKHQpe2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHRoaXMuZmFzdE1hcC5nZXRCeUtleShpKT09PXQpcmV0dXJuIGk7bGV0IHI9d0hlKCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUocix0KSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDp0fSkscn1hZGRBcnJheSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZChyKX1jaGVja0Zvck9iamVjdCh0KXtyZXR1cm4hIXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KHQpfWdldEtleUZvck9iamVjdCh0KXtsZXQgcj1udWxsO2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKCFyJiZ0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT10KXI9aTtlbHNlIGNvbnRpbnVlO3JldHVybiByfWFzeW5jIGZpbmQodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5maW5kKHQpfWZpbmRTeW5jKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKSlyZXR1cm4gdGhpcy5nZXRNYXBwZWRVbmlxdWUocil9YXN5bmMgZmluZE9uZUFuZFJlbW92ZSh0KXtsZXQgcj1hd2FpdCB0aGlzLmZpbmQodCk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9ZmluZE9uZUFuZFJlbW92ZVN5bmModCl7bGV0IHI9dGhpcy5maW5kU3luYyh0KTtyZXR1cm4gciYmdGhpcy5yZW1vdmUocikscn1hc3luYyBmb3JFYWNoKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWF3YWl0IHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKX1nZXRPbmVBbmRSZW1vdmUoKXtsZXQgdD10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2lmKHQubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt7bGV0IHI9dFswXSxpPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3JldHVybiB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDppfSksaX19Z2V0QXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSl0LnB1c2godGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKTtyZXR1cm4gdH1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkubGVuZ3RoPT09MH1yZW1vdmUodCl7aWYodGhpcy5jaGVja0Zvck9iamVjdCh0KSl7bGV0IHI9dGhpcy5nZXRLZXlGb3JPYmplY3QodCksaT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9cmV0dXJuIG51bGx9d2lwZSgpe2ZvcihsZXQgdCBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHQpfWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtyZXR1cm4gci5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApLHIuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodC5mYXN0TWFwKSxyfWFkZEFsbEZyb21PdGhlcih0KXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHQuZmFzdE1hcCl9fX0pO3ZhciBYbSxVSj1wKCgpPT57Q28oKTtXSigpO1htPWNsYXNze2dldCBjb21wYXJpc29uU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29tcGFyaXNvbkZ1bmModGhpcy5vcmlnaW5hbEludGVyZXN0KX1mdWxsZmlsbEludGVyZXN0KHQpe3RoaXMuaXNGdWxsZmlsbGVkPSEwLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkLnJlc29sdmUodCl9Y29uc3RydWN0b3IodCxyLGksYSl7dGhpcy5kZXN0cnVjdGlvblRpbWVyPW5ldyBabC5UaW1lcigxZTQpLHRoaXMuaXNGdWxsZmlsbGVkPSExLHRoaXMuZnVsbGZpbGxtZW50U3RvcmU9W10sdGhpcy5pbnRlcmVzdERlZmVycmVkPW5ldyBYZS5EZWZlcnJlZCx0aGlzLmludGVyZXN0RnVsbGZpbGxlZD10aGlzLmludGVyZXN0RGVmZXJyZWQucHJvbWlzZSx0aGlzLmludGVyZXN0TWFwUmVmPXQsdGhpcy5vcmlnaW5hbEludGVyZXN0PXIsdGhpcy5jb21wYXJpc29uRnVuYz1pLHRoaXMub3B0aW9ucz1hLHRoaXMuZGVzdHJ1Y3Rpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e3RoaXMuZGVzdHJveSgpfSksdGhpcy5vcHRpb25zPy5tYXJrTG9zdEFmdGVyRGVmYXVsdCYmQ3QuZGVsYXlGb3IodGhpcy5vcHRpb25zLm1hcmtMb3N0QWZ0ZXJEZWZhdWx0KS50aGVuKHRoaXMubWFya0xvc3QpfWRlc3Ryb3koKXt0aGlzLmludGVyZXN0TWFwUmVmLnJlbW92ZUludGVyZXN0KHRoaXMpLCF0aGlzLmlzRnVsbGZpbGxlZCYmdGhpcy5vcHRpb25zLmRlZmF1bHRGdWxsZmlsbG1lbnQmJnRoaXMuZnVsbGZpbGxJbnRlcmVzdCh0aGlzLm9wdGlvbnMuZGVmYXVsdEZ1bGxmaWxsbWVudCl9bWFya0xvc3QoKXt0aGlzLmRlc3RydWN0aW9uVGltZXIuc3RhcnQoKX1yZW5ldygpe3RoaXMuZGVzdHJ1Y3Rpb25UaW1lci5yZXNldCgpfX19KTt2YXIgR0osV0o9cCgoKT0+e0NvKCk7U1QoKTtVSigpO0dKPWNsYXNze2NvbnN0cnVjdG9yKHQscj17fSl7dGhpcy5pbnRlcmVzdE9iamVjdE1hcD1uZXcgUjYsdGhpcy5pbnRlcmVzdE9ic2VydmFibGU9bmV3IG5yLk9ic2VydmFibGVJbnRha2UsdGhpcy5jb21wYXJpc29uRnVuYz10LHRoaXMub3B0aW9ucz1yfWFzeW5jIGFkZEludGVyZXN0KHQscil7bGV0IGk9dGhpcy5jb21wYXJpc29uRnVuYyh0KSxhLG49bmV3IFhtKHRoaXMsdCx0aGlzLmNvbXBhcmlzb25GdW5jLHttYXJrTG9zdEFmdGVyRGVmYXVsdDp0aGlzLm9wdGlvbnMubWFya0xvc3RBZnRlckRlZmF1bHQsZGVmYXVsdEZ1bGxmaWxsbWVudDpyfSksbz0hMTtyZXR1cm4gYXdhaXQgdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5mb3JFYWNoKHM9PnshbyYmcy5jb21wYXJpc29uU3RyaW5nPT09bi5jb21wYXJpc29uU3RyaW5nJiYoY29uc29sZS5sb2coImluZm8iLGBpbnRlcmVzdCBhbHJlYWR5IGV4aXN0cyBmb3IgJHtuLmNvbXBhcmlzb25TdHJpbmd9YCksbz0hMCxhPXMsYS5yZW5ldygpKX0pLGF8fChhPW4sdGhpcy5pbnRlcmVzdE9iamVjdE1hcC5hZGQoYSkpLHRoaXMuaW50ZXJlc3RPYnNlcnZhYmxlLnB1c2goYSksYX1yZW1vdmVJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRPbmVBbmRSZW1vdmVTeW5jKGk9PnQuY29tcGFyaXNvblN0cmluZz09PWkuY29tcGFyaXNvblN0cmluZyl9Y2hlY2tJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmNvbXBhcmlzb25GdW5jKHQpO3JldHVybiB0aGlzLmNoZWNrSW50ZXJlc3RCeVN0cmluZyhyKX1jaGVja0ludGVyZXN0QnlTdHJpbmcodCl7cmV0dXJuISF0aGlzLmludGVyZXN0T2JqZWN0TWFwLmZpbmRTeW5jKGk9PmkuY29tcGFyaXNvblN0cmluZz09PXQpfWluZm9ybUxvc3RJbnRlcmVzdCh0KXtsZXQgcj10aGlzLmZpbmRJbnRlcmVzdCh0KTtyJiZyLm1hcmtMb3N0KCl9ZmluZEludGVyZXN0KHQpe2xldCByPXRoaXMuY29tcGFyaXNvbkZ1bmModCk7cmV0dXJuIHRoaXMuaW50ZXJlc3RPYmplY3RNYXAuZmluZFN5bmMoYT0+YS5jb21wYXJpc29uU3RyaW5nPT09cil9fX0pO3ZhciBZSixNSGU9cCgoKT0+e0NvKCk7WUo9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5hcnJheT1bXSx0aGlzLmFycmF5TGltaXQ9dH1hZGRPbmUodCl7dGhpcy5hcnJheS51bnNoaWZ0KHQpLHRoaXMuYXJyYXkubGVuZ3RoPnRoaXMuYXJyYXlMaW1pdCYmKHRoaXMuYXJyYXkubGVuZ3RoPXRoaXMuYXJyYXlMaW1pdCl9YWRkTWFueSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZE9uZShyKX1zZXRMaW1pdCh0KXt0aGlzLmFycmF5TGltaXQ9dCx0aGlzLmFycmF5Lmxlbmd0aD50aGlzLmFycmF5TGltaXQmJih0aGlzLmFycmF5Lmxlbmd0aD10aGlzLmFycmF5TGltaXQpfWdldEF2ZXJhZ2UoKXtpZih0eXBlb2YgdGhpcy5hcnJheVswXT09Im51bWJlciIpe2xldCB0PTA7Zm9yKGxldCByIG9mIHRoaXMuYXJyYXkpdD10K3I7cmV0dXJuIHQvdGhpcy5hcnJheS5sZW5ndGh9ZWxzZSByZXR1cm4gbnVsbH19fSk7dmFyIFpKLGtIZT1wKCgpPT57Q28oKTtTVCgpO1pKPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5yZWZlcmVuY2VPYmplY3RNYXA9bmV3IFI2fWNoZWNrQW5kVHJhY2sodCl7cmV0dXJuIHRoaXMucmVmZXJlbmNlT2JqZWN0TWFwLmNoZWNrRm9yT2JqZWN0KHQpPyExOih0aGlzLnJlZmVyZW5jZU9iamVjdE1hcC5hZGQodCksITApfX19KTt2YXIgWEosU0hlPXAoKCk9PntDbygpO1hKPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9W119YWRkU3RyaW5nKHQpe3RoaXMuX3N0cmluZ0FycmF5LnB1c2godCksdGhpcy5ub3RpZnlUcmlnZ2VyKCl9YWRkU3RyaW5nQXJyYXkodCl7Zm9yKGxldCByIG9mIHQpdGhpcy5hZGRTdHJpbmcocil9cmVtb3ZlU3RyaW5nKHQpe2ZvcihsZXQgciBpbiB0aGlzLl9zdHJpbmdBcnJheSl0aGlzLl9zdHJpbmdBcnJheVtyXT09PXQmJnRoaXMuX3N0cmluZ0FycmF5LnNwbGljZShwYXJzZUludChyKSwxKTt0aGlzLm5vdGlmeVRyaWdnZXIoKX13aXBlKCl7dGhpcy5fc3RyaW5nQXJyYXk9W10sdGhpcy5ub3RpZnlUcmlnZ2VyKCl9Y2hlY2tTdHJpbmcodCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5LmluZGV4T2YodCkhPT0tMX1jaGVja01pbmltYXRjaCh0KXtsZXQgcj1uZXcgcWwuU21hcnRNYXRjaCh0KSxpPSExO2ZvcihsZXQgYSBvZiB0aGlzLl9zdHJpbmdBcnJheSlyLm1hdGNoKGEpJiYoaT0hMCk7cmV0dXJuIGl9Y2hlY2tJc0VtcHR5KCl7cmV0dXJuIHRoaXMuX3N0cmluZ0FycmF5Lmxlbmd0aD09PTB9Z2V0U3RyaW5nQXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5fc3RyaW5nQXJyYXkpdC5wdXNoKHIpO3JldHVybiB0fXJlZ2lzdGVyVW50aWxUcnVlKHQscil7bGV0IGk9WGUuZGVmZXIoKTtyZXR1cm4gdGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXkucHVzaCgoKT0+e2xldCBhPXQodGhpcy5nZXRTdHJpbmdBcnJheSgpKTtyZXR1cm4gYT09PSEwJiYociYmcigpLGkucmVzb2x2ZSgpKSxhfSksdGhpcy5ub3RpZnlUcmlnZ2VyKCksaS5wcm9taXNlfW5vdGlmeVRyaWdnZXIoKXtsZXQgdD10aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5maWx0ZXIocj0+IXIoKSk7dGhpcy5fdHJpZ2dlclVudGlsVHJ1ZUZ1bmN0aW9uQXJyYXk9dH19fSk7dmFyIFFKLHpIZT1wKCgpPT57Q28oKTtRSj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JhZ2VBcnJheT1bXSx0aGlzLm9wdGlvbnM9dH1jaGVja0FnZ3JlZ2F0aW9uU3RhdHVzKCl7bGV0IHQ9KCk9Pnt0aGlzLmFnZ3JlZ2F0aW9uVGltZXI9bmV3IFpsLlRpbWVyKHRoaXMub3B0aW9ucy5hZ2dyZWdhdGlvbkludGVydmFsSW5NaWxsaXMpLHRoaXMuYWdncmVnYXRpb25UaW1lci5jb21wbGV0ZWQudGhlbigoKT0+e2xldCByPXRoaXMuc3RvcmFnZUFycmF5O2lmKHIubGVuZ3RoPT09MCl7dGhpcy5hZ2dyZWdhdGlvblRpbWVyPW51bGw7cmV0dXJufXRoaXMuc3RvcmFnZUFycmF5PVtdLHQoKSx0aGlzLm9wdGlvbnMuZnVuY3Rpb25Gb3JBZ2dyZWdhdGlvbihyKX0pLHRoaXMuYWdncmVnYXRpb25UaW1lci5zdGFydCgpfTt0aGlzLmFnZ3JlZ2F0aW9uVGltZXJ8fHQoKX1hZGQodCl7dGhpcy5zdG9yYWdlQXJyYXkucHVzaCh0KSx0aGlzLmNoZWNrQWdncmVnYXRpb25TdGF0dXMoKX19fSk7dmFyIEpKLENIZT1wKCgpPT57Q28oKTtKSj1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3ltYm9sVHJlZT1uZXcga1QuZGVmYXVsdH1pbml0aWFsaXplKHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuaW5pdGlhbGl6ZSh0KX1oYXNDaGlsZHJlbih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmhhc0NoaWxkcmVuKHQpfWZpcnN0Q2hpbGQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5maXJzdENoaWxkKHQpfWxhc3RDaGlsZCh0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmxhc3RDaGlsZCh0KX1wcmV2aW91c1NpYmxpbmcodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wcmV2aW91c1NpYmxpbmcodCl9bmV4dFNpYmxpbmcodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5uZXh0U2libGluZyh0KX1wYXJlbnQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5wYXJlbnQodCl9bGFzdEluY2x1c2l2ZURlc2NlbmRhbnQodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5sYXN0SW5jbHVzaXZlRGVzY2VuZGFudCh0KX1wcmVjZWRpbmcodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZWNlZGluZyh0LHIpfWZvbGxvd2luZyh0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuZm9sbG93aW5nKHQscil9Y2hpbGRyZW5Ub0FycmF5KHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5jaGlsZHJlblRvQXJyYXkodCxyKX1hbmNlc3RvcnNUb0FycmF5KHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5hbmNlc3RvcnNUb0FycmF5KHQscil9dHJlZVRvQXJyYXkodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnRyZWVUb0FycmF5KHQscil9Y2hpbGRyZW5JdGVyYXRvcih0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5JdGVyYXRvcih0LHIpfXByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnByZXZpb3VzU2libGluZ3NJdGVyYXRvcih0KX1uZXh0U2libGluZ3NJdGVyYXRvcih0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLm5leHRTaWJsaW5nc0l0ZXJhdG9yKCl9YW5jZXN0b3JzSXRlcmF0b3IodCl7dGhpcy5zeW1ib2xUcmVlLmFuY2VzdG9yc0l0ZXJhdG9yKCl9dHJlZUl0ZXJhdG9yKHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS50cmVlSXRlcmF0b3IodCl9aW5kZXgodCl7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbmRleCh0KX1jaGlsZHJlbkNvdW50KHQpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUuY2hpbGRyZW5Db3VudCh0KX1jb21wYXJlVHJlZVBvc2l0aW9uKHQscil7cmV0dXJuIHRoaXMuY29tcGFyZVRyZWVQb3NpdGlvbih0LHIpfXJlbW92ZSh0KXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLnJlbW92ZSh0KX1pbnNlcnRCZWZvcmUodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmluc2VydEJlZm9yZSh0LHIpfWluc2VydEFmdGVyKHQscil7cmV0dXJuIHRoaXMuc3ltYm9sVHJlZS5pbnNlcnRBZnRlcih0LHIpfXByZXBlbmRDaGlsZCh0LHIpe3JldHVybiB0aGlzLnN5bWJvbFRyZWUucHJlcGVuZENoaWxkKHQscil9YXBwZW5kQ2hpbGQodCxyKXtyZXR1cm4gdGhpcy5zeW1ib2xUcmVlLmFwcGVuZENoaWxkKHQscil9dG9Kc29uV2l0aEhpZXJhY2h5KHQpe2xldCByPXRoaXMudHJlZUl0ZXJhdG9yKHQse30pO2ZvcihsZXQgaSBvZiByKWNvbnNvbGUubG9nKGkpfWZyb21Kc29uV2l0aEhpZXJhY2h5KHQpe319fSk7dmFyIHZpPXt9O0ZlKHZpLHtBc3luY0V4ZWN1dGlvblN0YWNrOigpPT5xSixCYWNrcHJlc3N1cmVkQXJyYXk6KCk9PmpKLEZhc3RNYXA6KCk9PlptLEludGVyZXN0OigpPT5YbSxJbnRlcmVzdE1hcDooKT0+R0osTGltaXRlZEFycmF5OigpPT5ZSixMb29wVHJhY2tlcjooKT0+WkosT2JqZWN0TWFwOigpPT5SNixTdHJpbmdtYXA6KCk9PlhKLFRpbWVkQWdncmVndG9yOigpPT5RSixUcmVlOigpPT5KSix1bmk6KCk9PndIZX0pO3ZhciBHbT1wKCgpPT57eEhlKCk7eUhlKCk7VkooKTtXSigpO1VKKCk7TUhlKCk7a0hlKCk7U1QoKTtTSGUoKTt6SGUoKTtDSGUoKX0pO3ZhciByND17fTtGZShyNCx7YXJlVWludDhBcnJheXNFcXVhbDooKT0+X0VyLGFzc2VydFVpbnQ4QXJyYXk6KCk9PnQ0LGFzc2VydFVpbnQ4QXJyYXlPckFycmF5QnVmZmVyOigpPT5ESGUsYmFzZTY0VG9TdHJpbmc6KCk9PklFcixiYXNlNjRUb1VpbnQ4QXJyYXk6KCk9PlBIZSxjb21wYXJlVWludDhBcnJheXM6KCk9PkxFcixjb25jYXRVaW50OEFycmF5czooKT0+VEVyLGdldFVpbnRCRTooKT0+T0VyLGhleFRvVWludDhBcnJheTooKT0+RkVyLGluY2x1ZGVzOigpPT5SRXIsaW5kZXhPZjooKT0+TkhlLGlzVWludDhBcnJheTooKT0+S0osc3RyaW5nVG9CYXNlNjQ6KCk9PiRFcixzdHJpbmdUb1VpbnQ4QXJyYXk6KCk9PiRIZSx0b1VpbnQ4QXJyYXk6KCk9PkNFcix1aW50OEFycmF5VG9CYXNlNjQ6KCk9PklIZSx1aW50OEFycmF5VG9IZXg6KCk9Pk5Fcix1aW50OEFycmF5VG9TdHJpbmc6KCk9PkVIZX0pO2Z1bmN0aW9uIFRIZShlLHQscil7cmV0dXJuIGU/ZS5jb25zdHJ1Y3Rvcj09PXQ/ITA6d0VyLmNhbGwoZSk9PT1yOiExfWZ1bmN0aW9uIEtKKGUpe3JldHVybiBUSGUoZSxVaW50OEFycmF5LE1Fcil9ZnVuY3Rpb24gU0VyKGUpe3JldHVybiBUSGUoZSxBcnJheUJ1ZmZlcixrRXIpfWZ1bmN0aW9uIHpFcihlKXtyZXR1cm4gS0ooZSl8fFNFcihlKX1mdW5jdGlvbiB0NChlKXtpZighS0ooZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXGBVaW50OEFycmF5XGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiBESGUoZSl7aWYoIXpFcihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcYFVpbnQ4QXJyYXlcYCBvciBcYEFycmF5QnVmZmVyXGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiBDRXIoZSl7aWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBuZXcgVWludDhBcnJheShlKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpO3Rocm93IG5ldyBUeXBlRXJyb3IoYFVuc3VwcG9ydGVkIHZhbHVlLCBnb3QgXGAke3R5cGVvZiBlfVxgLmApfWZ1bmN0aW9uIFRFcihlLHQpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7dD8/PWUucmVkdWNlKChhLG4pPT5hK24ubGVuZ3RoLDApO2xldCByPW5ldyBVaW50OEFycmF5KHQpLGk9MDtmb3IobGV0IGEgb2YgZSl0NChhKSxyLnNldChhLGkpLGkrPWEubGVuZ3RoO3JldHVybiByfWZ1bmN0aW9uIF9FcihlLHQpe2lmKHQ0KGUpLHQ0KHQpLGU9PT10KXJldHVybiEwO2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXSE9PXRbcl0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gTEVyKGUsdCl7dDQoZSksdDQodCk7bGV0IHI9TWF0aC5taW4oZS5sZW5ndGgsdC5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8cjtpKyspe2xldCBhPWVbaV0tdFtpXTtpZihhIT09MClyZXR1cm4gTWF0aC5zaWduKGEpfXJldHVybiBNYXRoLnNpZ24oZS5sZW5ndGgtdC5sZW5ndGgpfWZ1bmN0aW9uIEVIZShlLHQ9InV0ZjgiKXtyZXR1cm4gREhlKGUpLF9IZVt0XT8/PW5ldyBnbG9iYWxUaGlzLlRleHREZWNvZGVyKHQpLF9IZVt0XS5kZWNvZGUoZSl9ZnVuY3Rpb24gUW0oZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxgc3RyaW5nXGAsIGdvdCBcYCR7dHlwZW9mIGV9XGBgKX1mdW5jdGlvbiAkSGUoZSl7cmV0dXJuIFFtKGUpLEFFci5lbmNvZGUoZSl9ZnVuY3Rpb24gREVyKGUpe3JldHVybiBlLnJlcGxhY2VBbGwoIisiLCItIikucmVwbGFjZUFsbCgiLyIsIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBFRXIoZSl7bGV0IHQ9ZS5yZXBsYWNlQWxsKCItIiwiKyIpLnJlcGxhY2VBbGwoIl8iLCIvIikscj0oNC10Lmxlbmd0aCU0KSU0O3JldHVybiB0KyI9Ii5yZXBlYXQocil9ZnVuY3Rpb24gSUhlKGUse3VybFNhZmU6dD0hMX09e30pe3Q0KGUpO2xldCByPSIiO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSs9TEhlKXtsZXQgYT1lLnN1YmFycmF5KGksaStMSGUpO3IrPWdsb2JhbFRoaXMuYnRvYShTdHJpbmcuZnJvbUNvZGVQb2ludC5hcHBseSh2b2lkIDAsYSkpfXJldHVybiB0P0RFcihyKTpyfWZ1bmN0aW9uIFBIZShlKXtyZXR1cm4gUW0oZSksVWludDhBcnJheS5mcm9tKGdsb2JhbFRoaXMuYXRvYihFRXIoZSkpLHQ9PnQuY29kZVBvaW50QXQoMCkpfWZ1bmN0aW9uICRFcihlLHt1cmxTYWZlOnQ9ITF9PXt9KXtyZXR1cm4gUW0oZSksSUhlKCRIZShlKSx7dXJsU2FmZTp0fSl9ZnVuY3Rpb24gSUVyKGUpe3JldHVybiBRbShlKSxFSGUoUEhlKGUpKX1mdW5jdGlvbiBORXIoZSl7dDQoZSk7bGV0IHQ9IiI7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspdCs9UEVyW2Vbcl1dO3JldHVybiB0fWZ1bmN0aW9uIEZFcihlKXtpZihRbShlKSxlLmxlbmd0aCUyIT09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgSGV4IHN0cmluZyBsZW5ndGguIik7bGV0IHQ9ZS5sZW5ndGgvMixyPW5ldyBVaW50OEFycmF5KHQpO2ZvcihsZXQgaT0wO2k8dDtpKyspe2xldCBhPUFIZVtlW2kqMl1dLG49QUhlW2VbaSoyKzFdXTtpZihhPT09dm9pZCAwfHxuPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBIZXggY2hhcmFjdGVyIGVuY291bnRlcmVkIGF0IHBvc2l0aW9uICR7aSoyfWApO3JbaV09YTw8NHxufXJldHVybiByfWZ1bmN0aW9uIE9FcihlKXtsZXR7Ynl0ZUxlbmd0aDp0fT1lO2lmKHQ9PT02KXJldHVybiBlLmdldFVpbnQxNigwKSoyKiozMitlLmdldFVpbnQzMigyKTtpZih0PT09NSlyZXR1cm4gZS5nZXRVaW50OCgwKSoyKiozMitlLmdldFVpbnQzMigxKTtpZih0PT09NClyZXR1cm4gZS5nZXRVaW50MzIoMCk7aWYodD09PTMpcmV0dXJuIGUuZ2V0VWludDgoMCkqMioqMTYrZS5nZXRVaW50MTYoMSk7aWYodD09PTIpcmV0dXJuIGUuZ2V0VWludDE2KDApO2lmKHQ9PT0xKXJldHVybiBlLmdldFVpbnQ4KDApfWZ1bmN0aW9uIE5IZShlLHQpe2xldCByPWUubGVuZ3RoLGk9dC5sZW5ndGg7aWYoaT09PTB8fGk+cilyZXR1cm4tMTtsZXQgYT1yLWk7Zm9yKGxldCBuPTA7bjw9YTtuKyspe2xldCBvPSEwO2ZvcihsZXQgcz0wO3M8aTtzKyspaWYoZVtuK3NdIT09dFtzXSl7bz0hMTticmVha31pZihvKXJldHVybiBufXJldHVybi0xfWZ1bmN0aW9uIFJFcihlLHQpe3JldHVybiBOSGUoZSx0KSE9PS0xfXZhciB3RXIsTUVyLGtFcixfSGUsQUVyLExIZSxQRXIsQUhlLEZIZT1wKCgpPT57d0VyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsTUVyPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixrRXI9IltvYmplY3QgQXJyYXlCdWZmZXJdIjtfSGU9e3V0Zjg6bmV3IGdsb2JhbFRoaXMuVGV4dERlY29kZXIoInV0ZjgiKX07QUVyPW5ldyBnbG9iYWxUaGlzLlRleHRFbmNvZGVyO0xIZT02NTUzNTtQRXI9QXJyYXkuZnJvbSh7bGVuZ3RoOjI1Nn0sKGUsdCk9PnQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSk7QUhlPXswOjAsMToxLDI6MiwzOjMsNDo0LDU6NSw2OjYsNzo3LDg6OCw5OjksYToxMCxiOjExLGM6MTIsZDoxMyxlOjE0LGY6MTUsQToxMCxCOjExLEM6MTIsRDoxMyxFOjE0LEY6MTV9fSk7dmFyIE9IZT1wKCgpPT57RkhlKCl9KTt2YXIgSTg9e307RmUoSTgse2Jhc2U2NFRvVWludDhBcnJheTooKT0+akVyLGVuc3VyZVB1cmVVaW50OEFycmF5OigpPT5XRXIsaXNCdWZmZXJMaWtlOigpPT5VRXIsaXNVaW50OEFycmF5OigpPT5WRXIsdUludDhBcnJheUV4dHJhczooKT0+SEVyLHVJbnQ4QXJyYXlUb0Jhc2U2NDooKT0+cUVyfSk7ZnVuY3Rpb24gcUVyKGUpe3JldHVybiByNC51aW50OEFycmF5VG9CYXNlNjQoZSl9ZnVuY3Rpb24gakVyKGUpe3JldHVybiByNC5iYXNlNjRUb1VpbnQ4QXJyYXkoZSl9ZnVuY3Rpb24gVUVyKGUpe3JldHVybiBlJiZ0eXBlb2YgZS5ieXRlTGVuZ3RoPT0ibnVtYmVyIj8hMDp0eXBlb2YgQnVmZmVyPCJ1IiYmQnVmZmVyLmlzQnVmZmVyP0J1ZmZlci5pc0J1ZmZlcihlKTohMX1mdW5jdGlvbiBXRXIoZSl7bGV0IHQ9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpO3JldHVybiB0LnNldChlKSx0fXZhciBIRXIsVkVyLFJIZT1wKCgpPT57T0hlKCk7SEVyPXI0O1ZFcj1lPT5yNC5pc1VpbnQ4QXJyYXkoZSl9KTt2YXIgSm09cCgoKT0+e0VpKCl9KTt2YXIgS20selQ9cCgoKT0+e0ptKCk7S209Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLmd1YXJkRnVuY3Rpb249dCx0aGlzLm9wdGlvbnM9cn1hc3luYyBleGVjKHQpe3JldHVybiBhd2FpdCB0aGlzLmd1YXJkRnVuY3Rpb24odCl9YXN5bmMgZ2V0RmFpbGVkSGludCh0KXtyZXR1cm4gYXdhaXQgdGhpcy5leGVjKHQpP251bGw6dGhpcy5vcHRpb25zLmZhaWxlZEhpbnR9fX0pO3ZhciBlOSxlSz1wKCgpPT57Sm0oKTtlOT1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMubmFtZT0iR3VhcmRFcnJvciJ9fX0pO3ZhciB0OSx0Sz1wKCgpPT57Sm0oKTt6VCgpO3Q5PWNsYXNzIGV4dGVuZHMgS217Y29uc3RydWN0b3IodD1bXSl7c3VwZXIoYXN5bmMgcj0+dGhpcy5hbGxHdWFyZHNQYXNzKHIpKSx0aGlzLmd1YXJkcz10fWFzeW5jIGV4ZWNBbGxXaXRoRGF0YSh0LHI9e21vZGU6InBhcmFsbGVsIixzdG9wT25GYWlsOiExfSl7bGV0IGk9W107Zm9yKGxldCBuIG9mIHRoaXMuZ3VhcmRzKXtsZXQgbz1uLmV4ZWModCk7aWYoci5tb2RlPT09InNlcmlhbCImJmF3YWl0IG8saS5wdXNoKG8pLHIuc3RvcE9uRmFpbCYmIWF3YWl0IG8pcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGkpfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChpKX1hc3luYyBhbGxHdWFyZHNQYXNzKHQscj17bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEodCxyKSkuZXZlcnkoYT0+YSl9YXN5bmMgYW55R3VhcmRzUGFzcyh0KXtyZXR1cm4oYXdhaXQgdGhpcy5leGVjQWxsV2l0aERhdGEodCx7bW9kZToicGFyYWxsZWwiLHN0b3BPbkZhaWw6ITF9KSkuc29tZShpPT5pKX1nZXRGYWlsZWRIaW50KHQpe2ZvcihsZXQgciBvZiB0aGlzLmd1YXJkcyl7bGV0IGk9ci5nZXRGYWlsZWRIaW50KHQpO2lmKGkpcmV0dXJuIGl9fX19KTt2YXIgcjk9e307RmUocjkse0d1YXJkOigpPT5LbSxHdWFyZEVycm9yOigpPT5lOSxHdWFyZFNldDooKT0+dDkscGFzc0d1YXJkc09yUmVqZWN0OigpPT5HRXJ9KTt2YXIgR0VyLEJIZT1wKCgpPT57Sm0oKTt6VCgpO2VLKCk7elQoKTt0SygpO3RLKCk7ZUsoKTtHRXI9YXN5bmMoZSx0KT0+e2xldCByPW5ldyB0OSh0KTtpZighYXdhaXQgci5hbGxHdWFyZHNQYXNzKGUpKXtsZXQgYT1hd2FpdCByLmdldEZhaWxlZEhpbnQoZSk7dGhyb3cgbmV3IGU5KGBHdWFyZHMgZmFpbGVkOgoke2F9CiAgICBgKX19fSk7dmFyIFA4LHJLPXAoKCk9PntQOD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycz1bXSx0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzPVtdLHRoaXMuZXJyb3JJbnRlcmNlcHRvcnM9W119YWRkUmVxdWVzdEludGVyY2VwdG9yKHQpe3RoaXMucmVxdWVzdEludGVyY2VwdG9ycy5wdXNoKHQpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IodCl7dGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5wdXNoKHQpfWFkZEVycm9ySW50ZXJjZXB0b3IodCl7dGhpcy5lcnJvckludGVyY2VwdG9ycy5wdXNoKHQpfXJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcih0KXtsZXQgcj10aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuaW5kZXhPZih0KTtyPi0xJiZ0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMuc3BsaWNlKHIsMSl9cmVtb3ZlUmVzcG9uc2VJbnRlcmNlcHRvcih0KXtsZXQgcj10aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmluZGV4T2YodCk7cj4tMSYmdGhpcy5yZXNwb25zZUludGVyY2VwdG9ycy5zcGxpY2UociwxKX1yZW1vdmVFcnJvckludGVyY2VwdG9yKHQpe2xldCByPXRoaXMuZXJyb3JJbnRlcmNlcHRvcnMuaW5kZXhPZih0KTtyPi0xJiZ0aGlzLmVycm9ySW50ZXJjZXB0b3JzLnNwbGljZShyLDEpfWNsZWFyQWxsKCl7dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzPVtdLHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnM9W10sdGhpcy5lcnJvckludGVyY2VwdG9ycz1bXX1hc3luYyBwcm9jZXNzUmVxdWVzdCh0KXtsZXQgcj10O2ZvcihsZXQgaSBvZiB0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihhIGluc3RhbmNlb2YgRXJyb3I/YTpuZXcgRXJyb3IoU3RyaW5nKGEpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc1Jlc3BvbnNlKHQpe2xldCByPXQ7Zm9yKGxldCBpIG9mIHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXt0aHJvdyBhd2FpdCB0aGlzLnByb2Nlc3NFcnJvcihhIGluc3RhbmNlb2YgRXJyb3I/YTpuZXcgRXJyb3IoU3RyaW5nKGEpKSl9cmV0dXJuIHJ9YXN5bmMgcHJvY2Vzc0Vycm9yKHQpe2xldCByPXQ7Zm9yKGxldCBpIG9mIHRoaXMuZXJyb3JJbnRlcmNlcHRvcnMpdHJ5e3I9YXdhaXQgaShyKX1jYXRjaChhKXtyPWEgaW5zdGFuY2VvZiBFcnJvcj9hOm5ldyBFcnJvcihTdHJpbmcoYSkpfXJldHVybiByfWdldEludGVyY2VwdG9yQ291bnRzKCl7cmV0dXJue3JlcXVlc3Q6dGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JzLmxlbmd0aCxyZXNwb25zZTp0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3JzLmxlbmd0aCxlcnJvcjp0aGlzLmVycm9ySW50ZXJjZXB0b3JzLmxlbmd0aH19fX0pO3ZhciBISGU9cCgoKT0+e0VpKCl9KTt2YXIgcUhlPXAoKCk9Pnt9KTt2YXIgaUssakhlPXAoKCk9PntISGUoKTtxSGUoKTtpSz1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGVkU2NyaXB0cz1bXX1hc3luYyBnZXRFbnZBd2FyZU1vZHVsZSh0KXtpZih0aGlzLmlzTm9kZSlyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSh0Lm5vZGVNb2R1bGVOYW1lKTtpZih0aGlzLmlzQnJvd3NlcilyZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKHQud2ViVXJsQXJnLHQuZ2V0RnVuY3Rpb24pO2NvbnNvbGUuZXJyb3IoInBsYXRmb3JtIGZvciBsb2FkaW5nIG5vdCBzdXBwb3J0ZWQgYnkgc21hcnRlbnYiKX1hc3luYyBnZXRTYWZlTm9kZU1vZHVsZSh0LHIpe2lmKCF0aGlzLmlzTm9kZSl7Y29uc29sZS5lcnJvcihgWW91IHRyaWVkIHRvIGxvYWQgYSBub2RlIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQ6ICR7dH0uIFRoaXMgZG9lcyBub3QgdGhyb3cuYCk7cmV0dXJufWxldCBpPWF3YWl0IG5ldyBGdW5jdGlvbihgcmV0dXJuIGltcG9ydCgnJHt0fScpYCkoKTtyZXR1cm4gciYmYXdhaXQgcihpKSxpfWFzeW5jIGdldFNhZmVXZWJNb2R1bGUodCxyKXtpZighdGhpcy5pc0Jyb3dzZXIpe2NvbnNvbGUuZXJyb3IoIllvdSB0cmllZCB0byBsb2FkIGEgd2ViIG1vZHVsZSBpbiBhIHdyb25nIGNvbnRleHQiKTtyZXR1cm59aWYodGhpcy5sb2FkZWRTY3JpcHRzLmluY2x1ZGVzKHQpKXJldHVybiByKCk7dGhpcy5sb2FkZWRTY3JpcHRzLnB1c2godCk7bGV0IGk9WGUuZGVmZXIoKTtpZihnbG9iYWxUaGlzLmltcG9ydFNjcmlwdHMpZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKHQpLGkucmVzb2x2ZSgpO2Vsc2V7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5vbmxvYWQ9KCk9PntpLnJlc29sdmUoKX0sYS5zcmM9dCxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpfXJldHVybiBhd2FpdCBpLnByb21pc2UscigpfWdldCBydW50aW1lRW52KCl7cmV0dXJuIHR5cGVvZiBwcm9jZXNzPCJ1Ij8ibm9kZSI6ImJyb3dzZXIifWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4hdGhpcy5pc05vZGV9Z2V0IHVzZXJBZ2VudCgpe3JldHVybiB0aGlzLmlzQnJvd3Nlcj9uYXZpZ2F0b3IudXNlckFnZW50OiJ1bmRlZmluZWQifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBub2RlVmVyc2lvbigpe3JldHVybiBwcm9jZXNzLnZlcnNpb259Z2V0IGlzQ0koKXtyZXR1cm4gdGhpcy5pc05vZGU/ISFwcm9jZXNzLmVudi5DSTohMX1hc3luYyBpc01hY0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09ImRhcndpbiI6ITF9YXN5bmMgaXNXaW5kb3dzQXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0id2luMzIiOiExfWFzeW5jIGlzTGludXhBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJsaW51eCI6ITF9YXN5bmMgcHJpbnRFbnYoKXt0aGlzLmlzTm9kZT8oY29uc29sZS5sb2coInJ1bm5pbmcgb24gTk9ERSIpLGNvbnNvbGUubG9nKCJub2RlIHZlcnNpb24gaXMgIit0aGlzLm5vZGVWZXJzaW9uKSk6KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIEJST1dTRVIiKSxjb25zb2xlLmxvZygiYnJvd3NlciBpcyAiK3RoaXMudXNlckFnZW50KSl9fX0pO3ZhciBxbj17fTtGZShxbix7U21hcnRlbnY6KCk9PmlLfSk7dmFyIE44PXAoKCk9PntqSGUoKX0pO3ZhciBhSyxGOD1wKCgpPT57YUs9ZXIoeVMoKSwxKX0pO3ZhciBDVD17fTtGZShDVCx7Y3JlYXRlQ3J5cHRvUmFuZG9tU3RyaW5nOigpPT5LRXIsY3JlYXRlUmFuZG9tU3RyaW5nOigpPT5KRXJ9KTt2YXIgWEVyLFFFcixKRXIsS0VyLFZIZT1wKCgpPT57RjgoKTtYRXI9KGUsdCk9PntpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuY3J5cHRvJiZnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2xldCByPXQtZSxpPW5ldyBVaW50MzJBcnJheSgxKTtyZXR1cm4gZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGkpLGUraVswXSVyfWVsc2UgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoodC1lKSkrZX0sUUVyPShlLHQscik9PntsZXQgaT17QToiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiLGE6ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwwOiIwMTIzNDU2Nzg5IiwiISI6IiFAIyQlXiYqKClfKy09W117fXw7OiwuPD4/IiwiKiI6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IUAjJCVeJiooKV8rLT1bXXt9fDs6LC48Pj8ifSxhPWU7dCYmdD5lLmxlbmd0aD9hPWUucmVwZWF0KE1hdGguY2VpbCh0L2UubGVuZ3RoKSkuc2xpY2UoMCx0KTp0JiYoYT1lLnNsaWNlKDAsdCkpO2xldCBuPSIiO2ZvcihsZXQgbyBvZiBhKWlmKGlbb10pe2xldCBzPWlbb10sbD1YRXIoMCxzLmxlbmd0aCk7bis9c1tsXX1lbHNlIG4rPW87cmV0dXJuIG59LEpFcj0oZSx0LHIpPT5RRXIoZSx0LHIpLEtFcj0oKT0+YUsudW5pKCl9KTt2YXIgVFQ9e307RmUoVFQse21ha2VFbnZPYmplY3Q6KCk9PmUkcn0pO3ZhciBlJHIsVUhlPXAoKCk9PntGOCgpO2Ukcj1mdW5jdGlvbihlKXtsZXQgdD17fSxyPS8oLiopPSguKikvO2lmKHR5cGVvZiBlPCJ1Iilmb3IobGV0IGkgaW4gZSl7bGV0IGE9ci5leGVjKGVbaV0pO3RbYVsxXV09YVsyXX1yZXR1cm4gdH19KTt2YXIgQjY9e307RmUoQjYse2luZGVudDooKT0+ciRyLGluZGVudFdpdGhQcmVmaXg6KCk9Pmkkcixub3JtYWxpemU6KCk9PmEkcn0pO3ZhciBuSyxvSyx0JHIsciRyLGkkcixhJHIsV0hlPXAoKCk9PntGOCgpO25LPWU9PntsZXQgdD1lLnNwbGl0KGAKYCk7cmV0dXJuIHQkcih0KX0sb0s9ZT0+e2xldCB0PSIiO2ZvcihsZXQgciBvZiBlKXQ9dCtyK2AKYDtyZXR1cm4gdH0sdCRyPWU9PntsZXQgdD0vXltcc10qJC87cmV0dXJuIHQudGVzdChlWzBdKSYmZS5zaGlmdCgpLHQudGVzdChlW2UubGVuZ3RoLTFdKSYmZS5wb3AoKSxlfSxyJHI9KGUsdCk9PntsZXQgcj1uSyhlKTtmb3IobGV0IGEgb2YgcilhPSIgIi5yZXBlYXQodCkrYTtyZXR1cm4gb0socil9LGkkcj0oZSx0KT0+e2xldCByLGk9bksoZSksYT1bXTtmb3IobGV0IG4gb2YgaSlhLnB1c2godCtuKTtyZXR1cm4gcj1vSyhhKSxyfSxhJHI9ZT0+e2xldCB0LHI9bksoZSksaSxhPS9eKFxzKikvLG49L14oXHMqKSQvO2ZvcihsZXQgcyBvZiByKXtsZXQgbD1hLmV4ZWMocylbMV07KHR5cGVvZiBpPiJ1Inx8bC5sZW5ndGg8aSkmJiFuLnRlc3QocykmJihpPWwubGVuZ3RoKX1sZXQgbz1bXTtmb3IobGV0IHMgb2YgcilvLnB1c2gocy5zdWJzdHIoaSkpO3JldHVybiB0PW9LKG8pLHR9fSk7dmFyIF9UPXt9O0ZlKF9ULHtyZXBsYWNlQWxsOigpPT5HSGUsc3RhbmRhcmQ6KCk9Pm8kcn0pO3ZhciBHSGUsbiRyLG8kcixZSGU9cCgoKT0+e0dIZT0oZSx0LHIpPT5lLnJlcGxhY2UobmV3IFJlZ0V4cCh0LCJnIiksciksbiRyPWU9PntsZXQgdD1lLnNwbGl0KGAKYCkscj0xLzA7Zm9yKGxldCBpIG9mIHQpaWYoaS50cmltKCkubGVuZ3RoPjApe2xldCBhPWkubWF0Y2goL14oXHMqKS8pO2EmJihyPU1hdGgubWluKHIsYVsxXS5sZW5ndGgpKX1yZXR1cm4gcj09PTEvMHx8cj09PTA/ZTp0Lm1hcChpPT5pLmxlbmd0aD49cj9pLnNsaWNlKHIpOmkpLmpvaW4oYApgKX0sbyRyPShlLHQpPT57bGV0IHI9ZTtyZXR1cm4oIXR8fHQuc3RyaXBJbmRlbnQpJiYocj1uJHIocikpLCghdHx8dC5ub3JtYWxpemVOZXdsaW5lKSYmKHI9ci5yZXBsYWNlKC9cclxuL2csYApgKSksKCF0fHx0LnJlcGxhY2VUYWJzKSYmKHI9R0hlKHIsIgkvIiwiICIpKSwoIXR8fHQuc3RyaXBMZWFkaW5nVHJhaWxpbmdFbXB0eUxpbmVzKSYmKHI9ci5yZXBsYWNlKC9eXHMqW1xyXG5dL2dtLCIiKS5yZXBsYWNlKC9ccypbXHJcbl0kL2dtLCIiKSksKCF0fHx0LnN0cmlwQWxsRW1wdHlMaW5lcykmJihyPXIucmVwbGFjZSgvXlxzKltcclxuXS9nbSwiIikpLHJ9fSk7dmFyIHNLLExULE84LGxLPXAoKCk9PntzSz17ZW5jb2RlOmU9PntpZih0eXBlb2YgQnVmZmVyPCJ1IilyZXR1cm4gQnVmZmVyLmZyb20oZSwidXRmOCIpLnRvU3RyaW5nKCJiYXNlNjQiKTtpZih0eXBlb2YgYnRvYTwidSIpe2xldCB0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKSxyPUFycmF5LmZyb20odCxpPT5TdHJpbmcuZnJvbUNoYXJDb2RlKGkpKS5qb2luKCIiKTtyZXR1cm4gYnRvYShyKX1lbHNle2xldCB0PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixyPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKSxpPSIiLGE9MDtmb3IoO2E8ci5sZW5ndGg7KXtsZXQgbj1yW2ErK10sbz1hPHIubGVuZ3RoP3JbYSsrXTowLHM9YTxyLmxlbmd0aD9yW2ErK106MCxsPW48PDE2fG88PDh8cztpKz10LmNoYXJBdChsPj4xOCY2MyksaSs9dC5jaGFyQXQobD4+MTImNjMpLGkrPWEtMjxyLmxlbmd0aD90LmNoYXJBdChsPj42JjYzKToiPSIsaSs9YS0xPHIubGVuZ3RoP3QuY2hhckF0KGwmNjMpOiI9In1yZXR1cm4gaX19LGRlY29kZTplPT57bGV0IHQ9ZS5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKS5wYWRFbmQoZS5sZW5ndGgrKDQtZS5sZW5ndGglNCklNCwiPSIpO2lmKHR5cGVvZiBCdWZmZXI8InUiKXJldHVybiBCdWZmZXIuZnJvbSh0LCJiYXNlNjQiKS50b1N0cmluZygidXRmOCIpO2lmKHR5cGVvZiBhdG9iPCJ1Iil7bGV0IHI9YXRvYih0KSxpPW5ldyBVaW50OEFycmF5KHIubGVuZ3RoKTtmb3IobGV0IGE9MDthPHIubGVuZ3RoO2ErKylpW2FdPXIuY2hhckNvZGVBdChhKTtyZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGkpfWVsc2V7bGV0IHI9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGk9W10sYT0wO2Zvcig7YTx0Lmxlbmd0aDspe2xldCBuPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxvPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxzPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxsPXIuaW5kZXhPZih0LmNoYXJBdChhKyspKSxjPW48PDE4fG88PDEyfHM8PDZ8bDtpLnB1c2goYz4+MTYmMjU1KSxzIT09NjQmJmkucHVzaChjPj44JjI1NSksbCE9PTY0JiZpLnB1c2goYyYyNTUpfXJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoaSkpfX19LExUPWNsYXNze2NvbnN0cnVjdG9yKHQscil7c3dpdGNoKHIpe2Nhc2Uic3RyaW5nIjp0aGlzLnJlZlN0cmluZz10O2JyZWFrO2Nhc2UiYmFzZTY0Ijp0aGlzLnJlZlN0cmluZz1POC5kZWNvZGUodCk7YnJlYWs7Y2FzZSJiYXNlNjR1cmkiOnRoaXMucmVmU3RyaW5nPU84LmRlY29kZSh0KX19Z2V0IHNpbXBsZVN0cmluZygpe3JldHVybiB0aGlzLnJlZlN0cmluZ31nZXQgYmFzZTY0U3RyaW5nKCl7cmV0dXJuIE84LmVuY29kZSh0aGlzLnJlZlN0cmluZyl9Z2V0IGJhc2U2NFVyaVN0cmluZygpe3JldHVybiBPOC5lbmNvZGVVcmkodGhpcy5yZWZTdHJpbmcpfX0sTzg9e2VuY29kZTplPT5zSy5lbmNvZGUoZSksZW5jb2RlVXJpOmU9PnNLLmVuY29kZShlKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIiksZGVjb2RlOmU9PnNLLmRlY29kZShlKSxpc0Jhc2U2NDplPT4vXihbQS1aYS16MC05Ky9dezR9KSooW0EtWmEtejAtOSsvXXszfT18W0EtWmEtejAtOSsvXXsyfT09KT8kLy50ZXN0KGUpfX0pO3ZhciBBVD17fTtGZShBVCx7aXNCYXNlNjQ6KCk9Pmwkcixpc1V0Zjg6KCk9PnMkcn0pO3ZhciBzJHIsbCRyLFpIZT1wKCgpPT57RjgoKTtsSygpO3Mkcj1lPT57bGV0IHI9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGUpLGk9MDtmb3IoO2k8ci5sZW5ndGg7KXtpZihyW2ldPT09OXx8cltpXT09PTEwfHxyW2ldPT09MTN8fDMyPD1yW2ldJiZyW2ldPD0xMjYpe2krPTE7Y29udGludWV9aWYoMTk0PD1yW2ldJiZyW2ldPD0yMjMmJjEyODw9cltpKzFdJiZyW2krMV08PTE5MSl7aSs9Mjtjb250aW51ZX1pZihyW2ldPT09MjI0JiYxNjA8PXJbaSsxXSYmcltpKzFdPD0xOTEmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MXx8KDIyNTw9cltpXSYmcltpXTw9MjM2fHxyW2ldPT09MjM4fHxyW2ldPT09MjM5KSYmMTI4PD1yW2krMV0mJnJbaSsxXTw9MTkxJiYxMjg8PXJbaSsyXSYmcltpKzJdPD0xOTF8fHJbaV09PT0yMzcmJjEyODw9cltpKzFdJiZyW2krMV08PTE1OSYmMTI4PD1yW2krMl0mJnJbaSsyXTw9MTkxKXtpKz0zO2NvbnRpbnVlfWlmKHJbaV09PT0yNDAmJjE0NDw9cltpKzFdJiZyW2krMV08PTE5MSYmMTI4PD1yW2krMl0mJnJbaSsyXTw9MTkxJiYxMjg8PXJbaSszXSYmcltpKzNdPD0xOTF8fDI0MTw9cltpXSYmcltpXTw9MjQzJiYxMjg8PXJbaSsxXSYmcltpKzFdPD0xOTEmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MSYmMTI4PD1yW2krM10mJnJbaSszXTw9MTkxfHxyW2ldPT09MjQ0JiYxMjg8PXJbaSsxXSYmcltpKzFdPD0xNDMmJjEyODw9cltpKzJdJiZyW2krMl08PTE5MSYmMTI4PD1yW2krM10mJnJbaSszXTw9MTkxKXtpKz00O2NvbnRpbnVlfXJldHVybiExfXJldHVybiEwfSxsJHI9ZT0+e2xldCB0PS9bXkEtWjAtOStcLz1dL2kscj1lLmxlbmd0aDtpZighcnx8ciU0IT09MHx8dC50ZXN0KGUpKXJldHVybiExO2xldCBpPWUuaW5kZXhPZigiPSIpO3JldHVybiBpPT09LTF8fGk9PT1yLTF8fGk9PT1yLTImJmVbci0xXT09PSI9In19KTt2YXIgRFQsWEhlPXAoKCk9PntEVD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnByb3RvY29sPXRoaXMuX3Byb3RvY29sUmVnZXgodCksdGhpcy5wcm90b2NvbHx8KHQ9YGh0dHBzOi8vJHt0fWApLHRoaXMubm9kZVBhcnNlZFVybD1uZXcgVVJMKHQpLHRoaXMucG9ydD10aGlzLm5vZGVQYXJzZWRVcmwucG9ydDtsZXQgcj10aGlzLl9kb21haW5SZWdleCh0LnJlcGxhY2UodGhpcy5ub2RlUGFyc2VkVXJsLnBhdGhuYW1lLCIiKSk7dGhpcy5mdWxsTmFtZT0iIjtmb3IobGV0IGk9MTtpPD01O2krKylpZihyW2ktMV0pe2xldCBhPXJbaS0xXTt0aGlzWyJsZXZlbCIraS50b1N0cmluZygpXT1hLHRoaXMuZnVsbE5hbWU9PT0iIj90aGlzLmZ1bGxOYW1lPWE6dGhpcy5mdWxsTmFtZT1hKyIuIit0aGlzLmZ1bGxOYW1lfWVsc2UgdGhpc1sibGV2ZWwiK2kudG9TdHJpbmcoKV09dm9pZCAwO3RoaXMuem9uZU5hbWU9dGhpcy5sZXZlbDIrIi4iK3RoaXMubGV2ZWwxLHRoaXMudG9wTGV2ZWw9dGhpcy5sZXZlbDEsdGhpcy5kb21haW5OYW1lPXRoaXMubGV2ZWwyLHRoaXMuc3ViRG9tYWluPXRoaXMubGV2ZWwzfV9kb21haW5SZWdleCh0KXtsZXQgaT0vKFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0oW2EtekEtWjAtOVwtXF9dKilcLnswLDF9KFthLXpBLVowLTlcLVxfXSopXC57MCwxfShbYS16QS1aMC05XC1cX10qKVwuezAsMX0kLy5leGVjKHQpO3JldHVybiBpLnJldmVyc2UoKSxpLnBvcCgpLGkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuIT09IiJ9KX1fcHJvdG9jb2xSZWdleCh0KXtsZXQgaT0vXihbYS16QS1aMC05XSopOlwvXC8vLmV4ZWModCk7aWYoaSlyZXR1cm4gaVsxXX1fcG9ydFJlZ2V4KHQpe2xldCBpPS9eKFthLXpBLVowLTldKik6XC9cLy8uZXhlYyh0KTtpZihpKXJldHVybiBpWzFdfX19KTt2YXIgRVQsYyRyLFFIZSxKSGU9cCgoKT0+e0Y4KCk7RVQ9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXtsZXQgaT1jJHIodCk7dGhpcy5ob3N0PWlbMV0sdGhpcy51c2VyPWlbMl0sdGhpcy5yZXBvPWlbM10sdGhpcy5hY2Nlc3NUb2tlbj1yLHRoaXMuc3NoVXJsPVFIZSh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJzc2giKSx0aGlzLmh0dHBzVXJsPVFIZSh0aGlzLmhvc3QsdGhpcy51c2VyLHRoaXMucmVwbyx0aGlzLmFjY2Vzc1Rva2VuLCJodHRwcyIpfX0sYyRyPWZ1bmN0aW9uKGUpe3JldHVybi8oW2EtekEtWjAtOVwtX1wuXSopKD86XC98XDopKFthLXpBLVowLTlcLV9cLl0qKSg/OlwvKShbYS16QS1aMC05XC1fXC5dKikoPzpcLmdpdCkvLmV4ZWMoZSl9LFFIZT1mdW5jdGlvbihlLHQscixpPSIiLGEpe2xldCBuO3N3aXRjaChpIT09IiImJihpPWkrIkAiKSxhKXtjYXNlImh0dHBzIjpuPSJodHRwczovLyIraStlKyIvIit0KyIvIityKyIuZ2l0IjticmVhaztjYXNlInNzaCI6bj0iZ2l0QCIrZSsiOiIrdCsiLyIrcisiLmdpdCI7YnJlYWs7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCJMaW5rIFR5cGUgIithKyIgbm90IGtub3duIik7YnJlYWt9cmV0dXJuIG59fSk7dmFyIFFpPXt9O0ZlKFFpLHtCYXNlNjQ6KCk9PkxULERvbWFpbjooKT0+RFQsR2l0UmVwbzooKT0+RVQsYmFzZTY0OigpPT5POCxjcmVhdGU6KCk9PkNULGRvY2tlcjooKT0+VFQsaW5kZW50OigpPT5CNixub3JtYWxpemU6KCk9Pl9ULHR5cGU6KCk9PkFUfSk7dmFyIFI4PXAoKCk9PntWSGUoKTtVSGUoKTtXSGUoKTtZSGUoKTtaSGUoKTtsSygpO1hIZSgpO0pIZSgpfSk7dmFyIGtLPWplKChuOSxqOCk9Pnt2YXIgZCRyPTIwMCxLSGU9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLGVxZT05MDA3MTk5MjU0NzQwOTkxLGNLPSJbb2JqZWN0IEFyZ3VtZW50c10iLHUkcj0iW29iamVjdCBBcnJheV0iLHRxZT0iW29iamVjdCBCb29sZWFuXSIscnFlPSJbb2JqZWN0IERhdGVdIixwJHI9IltvYmplY3QgRXJyb3JdIixkSz0iW29iamVjdCBGdW5jdGlvbl0iLGlxZT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLCRUPSJbb2JqZWN0IE1hcF0iLGFxZT0iW29iamVjdCBOdW1iZXJdIix1Sz0iW29iamVjdCBPYmplY3RdIixucWU9IltvYmplY3QgUHJvbWlzZV0iLG9xZT0iW29iamVjdCBSZWdFeHBdIixJVD0iW29iamVjdCBTZXRdIixzcWU9IltvYmplY3QgU3RyaW5nXSIsbHFlPSJbb2JqZWN0IFN5bWJvbF0iLHBLPSJbb2JqZWN0IFdlYWtNYXBdIixjcWU9IltvYmplY3QgQXJyYXlCdWZmZXJdIixQVD0iW29iamVjdCBEYXRhVmlld10iLGRxZT0iW29iamVjdCBGbG9hdDMyQXJyYXldIix1cWU9IltvYmplY3QgRmxvYXQ2NEFycmF5XSIscHFlPSJbb2JqZWN0IEludDhBcnJheV0iLGhxZT0iW29iamVjdCBJbnQxNkFycmF5XSIsZnFlPSJbb2JqZWN0IEludDMyQXJyYXldIixtcWU9IltvYmplY3QgVWludDhBcnJheV0iLGdxZT0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLGJxZT0iW29iamVjdCBVaW50MTZBcnJheV0iLHZxZT0iW29iamVjdCBVaW50MzJBcnJheV0iLGgkcj0vW1xcXiQuKis/KClbXF17fXxdL2csZiRyPS9cdyokLyxtJHI9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sZyRyPS9eKD86MHxbMS05XVxkKikkLyxhMT17fTthMVtjS109YTFbdSRyXT1hMVtjcWVdPWExW1BUXT1hMVt0cWVdPWExW3JxZV09YTFbZHFlXT1hMVt1cWVdPWExW3BxZV09YTFbaHFlXT1hMVtmcWVdPWExWyRUXT1hMVthcWVdPWExW3VLXT1hMVtvcWVdPWExW0lUXT1hMVtzcWVdPWExW2xxZV09YTFbbXFlXT1hMVtncWVdPWExW2JxZV09YTFbdnFlXT0hMCxhMVtwJHJdPWExW2RLXT1hMVtwS109ITE7dmFyIGIkcj10eXBlb2YgZ2xvYmFsPT0ib2JqZWN0IiYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsdiRyPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsWGw9YiRyfHx2JHJ8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCkseHFlPXR5cGVvZiBuOT09Im9iamVjdCImJm45JiYhbjkubm9kZVR5cGUmJm45LHlxZT14cWUmJnR5cGVvZiBqOD09Im9iamVjdCImJmo4JiYhajgubm9kZVR5cGUmJmo4LHgkcj15cWUmJnlxZS5leHBvcnRzPT09eHFlO2Z1bmN0aW9uIHkkcihlLHQpe3JldHVybiBlLnNldCh0WzBdLHRbMV0pLGV9ZnVuY3Rpb24gdyRyKGUsdCl7cmV0dXJuIGUuYWRkKHQpLGV9ZnVuY3Rpb24gTSRyKGUsdCl7Zm9yKHZhciByPS0xLGk9ZT9lLmxlbmd0aDowOysrcjxpJiZ0KGVbcl0scixlKSE9PSExOyk7cmV0dXJuIGV9ZnVuY3Rpb24gayRyKGUsdCl7Zm9yKHZhciByPS0xLGk9dC5sZW5ndGgsYT1lLmxlbmd0aDsrK3I8aTspZVthK3JdPXRbcl07cmV0dXJuIGV9ZnVuY3Rpb24gd3FlKGUsdCxyLGkpe3ZhciBhPS0xLG49ZT9lLmxlbmd0aDowO2ZvcihpJiZuJiYocj1lWysrYV0pOysrYTxuOylyPXQocixlW2FdLGEsZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gUyRyKGUsdCl7Zm9yKHZhciByPS0xLGk9QXJyYXkoZSk7KytyPGU7KWlbcl09dChyKTtyZXR1cm4gaX1mdW5jdGlvbiB6JHIoZSx0KXtyZXR1cm4gZT8uW3RdfWZ1bmN0aW9uIE1xZShlKXt2YXIgdD0hMTtpZihlIT1udWxsJiZ0eXBlb2YgZS50b1N0cmluZyE9ImZ1bmN0aW9uIil0cnl7dD0hIShlKyIiKX1jYXRjaHt9cmV0dXJuIHR9ZnVuY3Rpb24ga3FlKGUpe3ZhciB0PS0xLHI9QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGksYSl7clsrK3RdPVthLGldfSkscn1mdW5jdGlvbiBoSyhlLHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZSh0KHIpKX19ZnVuY3Rpb24gU3FlKGUpe3ZhciB0PS0xLHI9QXJyYXkoZS5zaXplKTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3JbKyt0XT1pfSkscn12YXIgQyRyPUFycmF5LnByb3RvdHlwZSxUJHI9RnVuY3Rpb24ucHJvdG90eXBlLE5UPU9iamVjdC5wcm90b3R5cGUsZks9WGxbIl9fY29yZS1qc19zaGFyZWRfXyJdLHpxZT0oZnVuY3Rpb24oKXt2YXIgZT0vW14uXSskLy5leGVjKGZLJiZmSy5rZXlzJiZmSy5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIGU/IlN5bWJvbChzcmMpXzEuIitlOiIifSkoKSxDcWU9VCRyLnRvU3RyaW5nLGk0PU5ULmhhc093blByb3BlcnR5LEZUPU5ULnRvU3RyaW5nLF8kcj1SZWdFeHAoIl4iK0NxZS5jYWxsKGk0KS5yZXBsYWNlKGgkciwiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKSxUcWU9eCRyP1hsLkJ1ZmZlcjp2b2lkIDAsX3FlPVhsLlN5bWJvbCxMcWU9WGwuVWludDhBcnJheSxMJHI9aEsoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCksQSRyPU9iamVjdC5jcmVhdGUsRCRyPU5ULnByb3BlcnR5SXNFbnVtZXJhYmxlLEUkcj1DJHIuc3BsaWNlLEFxZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLCQkcj1UcWU/VHFlLmlzQnVmZmVyOnZvaWQgMCxJJHI9aEsoT2JqZWN0LmtleXMsT2JqZWN0KSxtSz1xOChYbCwiRGF0YVZpZXciKSxpOT1xOChYbCwiTWFwIiksZ0s9cTgoWGwsIlByb21pc2UiKSxiSz1xOChYbCwiU2V0Iiksdks9cTgoWGwsIldlYWtNYXAiKSxhOT1xOChPYmplY3QsImNyZWF0ZSIpLFAkcj1qNihtSyksTiRyPWo2KGk5KSxGJHI9ajYoZ0spLE8kcj1qNihiSyksUiRyPWo2KHZLKSxEcWU9X3FlP19xZS5wcm90b3R5cGU6dm9pZCAwLEVxZT1EcWU/RHFlLnZhbHVlT2Y6dm9pZCAwO2Z1bmN0aW9uIEg2KGUpe3ZhciB0PS0xLHI9ZT9lLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PHI7KXt2YXIgaT1lW3RdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIEIkcigpe3RoaXMuX19kYXRhX189YTk/YTkobnVsbCk6e319ZnVuY3Rpb24gSCRyKGUpe3JldHVybiB0aGlzLmhhcyhlKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bZV19ZnVuY3Rpb24gcSRyKGUpe3ZhciB0PXRoaXMuX19kYXRhX187aWYoYTkpe3ZhciByPXRbZV07cmV0dXJuIHI9PT1LSGU/dm9pZCAwOnJ9cmV0dXJuIGk0LmNhbGwodCxlKT90W2VdOnZvaWQgMH1mdW5jdGlvbiBqJHIoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXztyZXR1cm4gYTk/dFtlXSE9PXZvaWQgMDppNC5jYWxsKHQsZSl9ZnVuY3Rpb24gViRyKGUsdCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gcltlXT1hOSYmdD09PXZvaWQgMD9LSGU6dCx0aGlzfUg2LnByb3RvdHlwZS5jbGVhcj1CJHIsSDYucHJvdG90eXBlLmRlbGV0ZT1IJHIsSDYucHJvdG90eXBlLmdldD1xJHIsSDYucHJvdG90eXBlLmhhcz1qJHIsSDYucHJvdG90eXBlLnNldD1WJHI7ZnVuY3Rpb24gUWwoZSl7dmFyIHQ9LTEscj1lP2UubGVuZ3RoOjA7Zm9yKHRoaXMuY2xlYXIoKTsrK3Q8cjspe3ZhciBpPWVbdF07dGhpcy5zZXQoaVswXSxpWzFdKX19ZnVuY3Rpb24gVSRyKCl7dGhpcy5fX2RhdGFfXz1bXX1mdW5jdGlvbiBXJHIoZSl7dmFyIHQ9dGhpcy5fX2RhdGFfXyxyPU9UKHQsZSk7aWYocjwwKXJldHVybiExO3ZhciBpPXQubGVuZ3RoLTE7cmV0dXJuIHI9PWk/dC5wb3AoKTpFJHIuY2FsbCh0LHIsMSksITB9ZnVuY3Rpb24gRyRyKGUpe3ZhciB0PXRoaXMuX19kYXRhX18scj1PVCh0LGUpO3JldHVybiByPDA/dm9pZCAwOnRbcl1bMV19ZnVuY3Rpb24gWSRyKGUpe3JldHVybiBPVCh0aGlzLl9fZGF0YV9fLGUpPi0xfWZ1bmN0aW9uIFokcihlLHQpe3ZhciByPXRoaXMuX19kYXRhX18saT1PVChyLGUpO3JldHVybiBpPDA/ci5wdXNoKFtlLHRdKTpyW2ldWzFdPXQsdGhpc31RbC5wcm90b3R5cGUuY2xlYXI9VSRyLFFsLnByb3RvdHlwZS5kZWxldGU9VyRyLFFsLnByb3RvdHlwZS5nZXQ9RyRyLFFsLnByb3RvdHlwZS5oYXM9WSRyLFFsLnByb3RvdHlwZS5zZXQ9WiRyO2Z1bmN0aW9uIEI4KGUpe3ZhciB0PS0xLHI9ZT9lLmxlbmd0aDowO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PHI7KXt2YXIgaT1lW3RdO3RoaXMuc2V0KGlbMF0saVsxXSl9fWZ1bmN0aW9uIFgkcigpe3RoaXMuX19kYXRhX189e2hhc2g6bmV3IEg2LG1hcDpuZXcoaTl8fFFsKSxzdHJpbmc6bmV3IEg2fX1mdW5jdGlvbiBRJHIoZSl7cmV0dXJuIFJUKHRoaXMsZSkuZGVsZXRlKGUpfWZ1bmN0aW9uIEokcihlKXtyZXR1cm4gUlQodGhpcyxlKS5nZXQoZSl9ZnVuY3Rpb24gSyRyKGUpe3JldHVybiBSVCh0aGlzLGUpLmhhcyhlKX1mdW5jdGlvbiBlSXIoZSx0KXtyZXR1cm4gUlQodGhpcyxlKS5zZXQoZSx0KSx0aGlzfUI4LnByb3RvdHlwZS5jbGVhcj1YJHIsQjgucHJvdG90eXBlLmRlbGV0ZT1RJHIsQjgucHJvdG90eXBlLmdldD1KJHIsQjgucHJvdG90eXBlLmhhcz1LJHIsQjgucHJvdG90eXBlLnNldD1lSXI7ZnVuY3Rpb24gSDgoZSl7dGhpcy5fX2RhdGFfXz1uZXcgUWwoZSl9ZnVuY3Rpb24gdElyKCl7dGhpcy5fX2RhdGFfXz1uZXcgUWx9ZnVuY3Rpb24gcklyKGUpe3JldHVybiB0aGlzLl9fZGF0YV9fLmRlbGV0ZShlKX1mdW5jdGlvbiBpSXIoZSl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGUpfWZ1bmN0aW9uIGFJcihlKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoZSl9ZnVuY3Rpb24gbklyKGUsdCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihyIGluc3RhbmNlb2YgUWwpe3ZhciBpPXIuX19kYXRhX187aWYoIWk5fHxpLmxlbmd0aDxkJHItMSlyZXR1cm4gaS5wdXNoKFtlLHRdKSx0aGlzO3I9dGhpcy5fX2RhdGFfXz1uZXcgQjgoaSl9cmV0dXJuIHIuc2V0KGUsdCksdGhpc31IOC5wcm90b3R5cGUuY2xlYXI9dElyLEg4LnByb3RvdHlwZS5kZWxldGU9cklyLEg4LnByb3RvdHlwZS5nZXQ9aUlyLEg4LnByb3RvdHlwZS5oYXM9YUlyLEg4LnByb3RvdHlwZS5zZXQ9bklyO2Z1bmN0aW9uIG9JcihlLHQpe3ZhciByPXdLKGUpfHxBSXIoZSk/UyRyKGUubGVuZ3RoLFN0cmluZyk6W10saT1yLmxlbmd0aCxhPSEhaTtmb3IodmFyIG4gaW4gZSkodHx8aTQuY2FsbChlLG4pKSYmIShhJiYobj09Imxlbmd0aCJ8fENJcihuLGkpKSkmJnIucHVzaChuKTtyZXR1cm4gcn1mdW5jdGlvbiAkcWUoZSx0LHIpe3ZhciBpPWVbdF07KCEoaTQuY2FsbChlLHQpJiZGcWUoaSxyKSl8fHI9PT12b2lkIDAmJiEodCBpbiBlKSkmJihlW3RdPXIpfWZ1bmN0aW9uIE9UKGUsdCl7Zm9yKHZhciByPWUubGVuZ3RoO3ItLTspaWYoRnFlKGVbcl1bMF0sdCkpcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gc0lyKGUsdCl7cmV0dXJuIGUmJklxZSh0LE1LKHQpLGUpfWZ1bmN0aW9uIHhLKGUsdCxyLGksYSxuLG8pe3ZhciBzO2lmKGkmJihzPW4/aShlLGEsbixvKTppKGUpKSxzIT09dm9pZCAwKXJldHVybiBzO2lmKCFCVChlKSlyZXR1cm4gZTt2YXIgbD13SyhlKTtpZihsKXtpZihzPWtJcihlKSwhdClyZXR1cm4geUlyKGUscyl9ZWxzZXt2YXIgYz1xNihlKSx1PWM9PWRLfHxjPT1pcWU7aWYoRUlyKGUpKXJldHVybiBoSXIoZSx0KTtpZihjPT11S3x8Yz09Y0t8fHUmJiFuKXtpZihNcWUoZSkpcmV0dXJuIG4/ZTp7fTtpZihzPVNJcih1P3t9OmUpLCF0KXJldHVybiB3SXIoZSxzSXIocyxlKSl9ZWxzZXtpZighYTFbY10pcmV0dXJuIG4/ZTp7fTtzPXpJcihlLGMseEssdCl9fW98fChvPW5ldyBIOCk7dmFyIGQ9by5nZXQoZSk7aWYoZClyZXR1cm4gZDtpZihvLnNldChlLHMpLCFsKXZhciBoPXI/TUlyKGUpOk1LKGUpO3JldHVybiBNJHIoaHx8ZSxmdW5jdGlvbihmLHgpe2gmJih4PWYsZj1lW3hdKSwkcWUocyx4LHhLKGYsdCxyLGkseCxlLG8pKX0pLHN9ZnVuY3Rpb24gbElyKGUpe3JldHVybiBCVChlKT9BJHIoZSk6e319ZnVuY3Rpb24gY0lyKGUsdCxyKXt2YXIgaT10KGUpO3JldHVybiB3SyhlKT9pOmskcihpLHIoZSkpfWZ1bmN0aW9uIGRJcihlKXtyZXR1cm4gRlQuY2FsbChlKX1mdW5jdGlvbiB1SXIoZSl7aWYoIUJUKGUpfHxfSXIoZSkpcmV0dXJuITE7dmFyIHQ9UnFlKGUpfHxNcWUoZSk/XyRyOm0kcjtyZXR1cm4gdC50ZXN0KGo2KGUpKX1mdW5jdGlvbiBwSXIoZSl7aWYoIU5xZShlKSlyZXR1cm4gSSRyKGUpO3ZhciB0PVtdO2Zvcih2YXIgciBpbiBPYmplY3QoZSkpaTQuY2FsbChlLHIpJiZyIT0iY29uc3RydWN0b3IiJiZ0LnB1c2gocik7cmV0dXJuIHR9ZnVuY3Rpb24gaElyKGUsdCl7aWYodClyZXR1cm4gZS5zbGljZSgpO3ZhciByPW5ldyBlLmNvbnN0cnVjdG9yKGUubGVuZ3RoKTtyZXR1cm4gZS5jb3B5KHIpLHJ9ZnVuY3Rpb24geUsoZSl7dmFyIHQ9bmV3IGUuY29uc3RydWN0b3IoZS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IExxZSh0KS5zZXQobmV3IExxZShlKSksdH1mdW5jdGlvbiBmSXIoZSx0KXt2YXIgcj10P3lLKGUuYnVmZmVyKTplLmJ1ZmZlcjtyZXR1cm4gbmV3IGUuY29uc3RydWN0b3IocixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKX1mdW5jdGlvbiBtSXIoZSx0LHIpe3ZhciBpPXQ/cihrcWUoZSksITApOmtxZShlKTtyZXR1cm4gd3FlKGkseSRyLG5ldyBlLmNvbnN0cnVjdG9yKX1mdW5jdGlvbiBnSXIoZSl7dmFyIHQ9bmV3IGUuY29uc3RydWN0b3IoZS5zb3VyY2UsZiRyLmV4ZWMoZSkpO3JldHVybiB0Lmxhc3RJbmRleD1lLmxhc3RJbmRleCx0fWZ1bmN0aW9uIGJJcihlLHQscil7dmFyIGk9dD9yKFNxZShlKSwhMCk6U3FlKGUpO3JldHVybiB3cWUoaSx3JHIsbmV3IGUuY29uc3RydWN0b3IpfWZ1bmN0aW9uIHZJcihlKXtyZXR1cm4gRXFlP09iamVjdChFcWUuY2FsbChlKSk6e319ZnVuY3Rpb24geElyKGUsdCl7dmFyIHI9dD95SyhlLmJ1ZmZlcik6ZS5idWZmZXI7cmV0dXJuIG5ldyBlLmNvbnN0cnVjdG9yKHIsZS5ieXRlT2Zmc2V0LGUubGVuZ3RoKX1mdW5jdGlvbiB5SXIoZSx0KXt2YXIgcj0tMSxpPWUubGVuZ3RoO2Zvcih0fHwodD1BcnJheShpKSk7KytyPGk7KXRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBJcWUoZSx0LHIsaSl7cnx8KHI9e30pO2Zvcih2YXIgYT0tMSxuPXQubGVuZ3RoOysrYTxuOyl7dmFyIG89dFthXSxzPWk/aShyW29dLGVbb10sbyxyLGUpOnZvaWQgMDskcWUocixvLHM9PT12b2lkIDA/ZVtvXTpzKX1yZXR1cm4gcn1mdW5jdGlvbiB3SXIoZSx0KXtyZXR1cm4gSXFlKGUsUHFlKGUpLHQpfWZ1bmN0aW9uIE1JcihlKXtyZXR1cm4gY0lyKGUsTUssUHFlKX1mdW5jdGlvbiBSVChlLHQpe3ZhciByPWUuX19kYXRhX187cmV0dXJuIFRJcih0KT9yW3R5cGVvZiB0PT0ic3RyaW5nIj8ic3RyaW5nIjoiaGFzaCJdOnIubWFwfWZ1bmN0aW9uIHE4KGUsdCl7dmFyIHI9eiRyKGUsdCk7cmV0dXJuIHVJcihyKT9yOnZvaWQgMH12YXIgUHFlPUFxZT9oSyhBcWUsT2JqZWN0KTpQSXIscTY9ZElyOyhtSyYmcTYobmV3IG1LKG5ldyBBcnJheUJ1ZmZlcigxKSkpIT1QVHx8aTkmJnE2KG5ldyBpOSkhPSRUfHxnSyYmcTYoZ0sucmVzb2x2ZSgpKSE9bnFlfHxiSyYmcTYobmV3IGJLKSE9SVR8fHZLJiZxNihuZXcgdkspIT1wSykmJihxNj1mdW5jdGlvbihlKXt2YXIgdD1GVC5jYWxsKGUpLHI9dD09dUs/ZS5jb25zdHJ1Y3Rvcjp2b2lkIDAsaT1yP2o2KHIpOnZvaWQgMDtpZihpKXN3aXRjaChpKXtjYXNlIFAkcjpyZXR1cm4gUFQ7Y2FzZSBOJHI6cmV0dXJuICRUO2Nhc2UgRiRyOnJldHVybiBucWU7Y2FzZSBPJHI6cmV0dXJuIElUO2Nhc2UgUiRyOnJldHVybiBwS31yZXR1cm4gdH0pO2Z1bmN0aW9uIGtJcihlKXt2YXIgdD1lLmxlbmd0aCxyPWUuY29uc3RydWN0b3IodCk7cmV0dXJuIHQmJnR5cGVvZiBlWzBdPT0ic3RyaW5nIiYmaTQuY2FsbChlLCJpbmRleCIpJiYoci5pbmRleD1lLmluZGV4LHIuaW5wdXQ9ZS5pbnB1dCkscn1mdW5jdGlvbiBTSXIoZSl7cmV0dXJuIHR5cGVvZiBlLmNvbnN0cnVjdG9yPT0iZnVuY3Rpb24iJiYhTnFlKGUpP2xJcihMJHIoZSkpOnt9fWZ1bmN0aW9uIHpJcihlLHQscixpKXt2YXIgYT1lLmNvbnN0cnVjdG9yO3N3aXRjaCh0KXtjYXNlIGNxZTpyZXR1cm4geUsoZSk7Y2FzZSB0cWU6Y2FzZSBycWU6cmV0dXJuIG5ldyBhKCtlKTtjYXNlIFBUOnJldHVybiBmSXIoZSxpKTtjYXNlIGRxZTpjYXNlIHVxZTpjYXNlIHBxZTpjYXNlIGhxZTpjYXNlIGZxZTpjYXNlIG1xZTpjYXNlIGdxZTpjYXNlIGJxZTpjYXNlIHZxZTpyZXR1cm4geElyKGUsaSk7Y2FzZSAkVDpyZXR1cm4gbUlyKGUsaSxyKTtjYXNlIGFxZTpjYXNlIHNxZTpyZXR1cm4gbmV3IGEoZSk7Y2FzZSBvcWU6cmV0dXJuIGdJcihlKTtjYXNlIElUOnJldHVybiBiSXIoZSxpLHIpO2Nhc2UgbHFlOnJldHVybiB2SXIoZSl9fWZ1bmN0aW9uIENJcihlLHQpe3JldHVybiB0PXQ/P2VxZSwhIXQmJih0eXBlb2YgZT09Im51bWJlciJ8fGckci50ZXN0KGUpKSYmZT4tMSYmZSUxPT0wJiZlPHR9ZnVuY3Rpb24gVElyKGUpe3ZhciB0PXR5cGVvZiBlO3JldHVybiB0PT0ic3RyaW5nInx8dD09Im51bWJlciJ8fHQ9PSJzeW1ib2wifHx0PT0iYm9vbGVhbiI/ZSE9PSJfX3Byb3RvX18iOmU9PT1udWxsfWZ1bmN0aW9uIF9JcihlKXtyZXR1cm4hIXpxZSYmenFlIGluIGV9ZnVuY3Rpb24gTnFlKGUpe3ZhciB0PWUmJmUuY29uc3RydWN0b3Iscj10eXBlb2YgdD09ImZ1bmN0aW9uIiYmdC5wcm90b3R5cGV8fE5UO3JldHVybiBlPT09cn1mdW5jdGlvbiBqNihlKXtpZihlIT1udWxsKXt0cnl7cmV0dXJuIENxZS5jYWxsKGUpfWNhdGNoe310cnl7cmV0dXJuIGUrIiJ9Y2F0Y2h7fX1yZXR1cm4iIn1mdW5jdGlvbiBMSXIoZSl7cmV0dXJuIHhLKGUsITAsITApfWZ1bmN0aW9uIEZxZShlLHQpe3JldHVybiBlPT09dHx8ZSE9PWUmJnQhPT10fWZ1bmN0aW9uIEFJcihlKXtyZXR1cm4gRElyKGUpJiZpNC5jYWxsKGUsImNhbGxlZSIpJiYoIUQkci5jYWxsKGUsImNhbGxlZSIpfHxGVC5jYWxsKGUpPT1jSyl9dmFyIHdLPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gT3FlKGUpe3JldHVybiBlIT1udWxsJiYkSXIoZS5sZW5ndGgpJiYhUnFlKGUpfWZ1bmN0aW9uIERJcihlKXtyZXR1cm4gSUlyKGUpJiZPcWUoZSl9dmFyIEVJcj0kJHJ8fE5JcjtmdW5jdGlvbiBScWUoZSl7dmFyIHQ9QlQoZSk/RlQuY2FsbChlKToiIjtyZXR1cm4gdD09ZEt8fHQ9PWlxZX1mdW5jdGlvbiAkSXIoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIiYmZT4tMSYmZSUxPT0wJiZlPD1lcWV9ZnVuY3Rpb24gQlQoZSl7dmFyIHQ9dHlwZW9mIGU7cmV0dXJuISFlJiYodD09Im9iamVjdCJ8fHQ9PSJmdW5jdGlvbiIpfWZ1bmN0aW9uIElJcihlKXtyZXR1cm4hIWUmJnR5cGVvZiBlPT0ib2JqZWN0In1mdW5jdGlvbiBNSyhlKXtyZXR1cm4gT3FlKGUpP29JcihlKTpwSXIoZSl9ZnVuY3Rpb24gUElyKCl7cmV0dXJuW119ZnVuY3Rpb24gTklyKCl7cmV0dXJuITF9ajguZXhwb3J0cz1MSXJ9KTt2YXIgU0s9amUoKGFEaSxCcWUpPT57InVzZSBzdHJpY3QiO0JxZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dHx8KHQ9e30pLHR5cGVvZiB0PT0iZnVuY3Rpb24iJiYodD17Y21wOnR9KTt2YXIgcj10eXBlb2YgdC5jeWNsZXM9PSJib29sZWFuIj90LmN5Y2xlczohMSxpPXQuY21wJiYoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihzLGwpe3ZhciBjPXtrZXk6cyx2YWx1ZTpvW3NdfSx1PXtrZXk6bCx2YWx1ZTpvW2xdfTtyZXR1cm4gbihjLHUpfX19KSh0LmNtcCksYT1bXTtyZXR1cm4oZnVuY3Rpb24gbihvKXtpZihvJiZvLnRvSlNPTiYmdHlwZW9mIG8udG9KU09OPT0iZnVuY3Rpb24iJiYobz1vLnRvSlNPTigpKSxvIT09dm9pZCAwKXtpZih0eXBlb2Ygbz09Im51bWJlciIpcmV0dXJuIGlzRmluaXRlKG8pPyIiK286Im51bGwiO2lmKHR5cGVvZiBvIT0ib2JqZWN0IilyZXR1cm4gSlNPTi5zdHJpbmdpZnkobyk7dmFyIHMsbDtpZihBcnJheS5pc0FycmF5KG8pKXtmb3IobD0iWyIscz0wO3M8by5sZW5ndGg7cysrKXMmJihsKz0iLCIpLGwrPW4ob1tzXSl8fCJudWxsIjtyZXR1cm4gbCsiXSJ9aWYobz09PW51bGwpcmV0dXJuIm51bGwiO2lmKGEuaW5kZXhPZihvKSE9PS0xKXtpZihyKXJldHVybiBKU09OLnN0cmluZ2lmeSgiX19jeWNsZV9fIik7dGhyb3cgbmV3IFR5cGVFcnJvcigiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTiIpfXZhciBjPWEucHVzaChvKS0xLHU9T2JqZWN0LmtleXMobykuc29ydChpJiZpKG8pKTtmb3IobD0iIixzPTA7czx1Lmxlbmd0aDtzKyspe3ZhciBkPXVbc10saD1uKG9bZF0pO2gmJihsJiYobCs9IiwiKSxsKz1KU09OLnN0cmluZ2lmeShkKSsiOiIraCl9cmV0dXJuIGEuc3BsaWNlKGMsMSksInsiK2wrIn0ifX0pKGUpfX0pO3ZhciBIVCxIcWUscVQseks9cCgoKT0+e044KCk7UjgoKTtIVD1lcihrSygpLDEpLEhxZT1lcihTSygpLDEpLHFUPUhxZS5kZWZhdWx0fSk7ZnVuY3Rpb24gT0lyKGUpe3JldHVybiB0eXBlb2YgQnVmZmVyPCJ1Ij9CdWZmZXIuZnJvbShlKS50b1N0cmluZygiYmFzZTY0Iik6YnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLmUpKX1mdW5jdGlvbiBSSXIoZSl7aWYodHlwZW9mIEJ1ZmZlcjwidSIpe2xldCB0PUJ1ZmZlci5mcm9tKGUsImJhc2U2NCIpO3JldHVybiBuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoQXJyYXkuZnJvbShhdG9iKGUpKS5tYXAodD0+dC5jaGFyQ29kZUF0KDApKSl9ZnVuY3Rpb24gVEsoZSx0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSxqVCx0KX1mdW5jdGlvbiBfSyhlKXtyZXR1cm4gSlNPTi5wYXJzZShlLHFxZSl9ZnVuY3Rpb24gQklyKGUpe3JldHVybiBWcWUoZSkmJmUudHlwZT09PSJFbmNvZGVkQnVmZmVyIiYmQ0soZS5kYXRhKX1mdW5jdGlvbiBISXIoZSl7cmV0dXJuIFZxZShlKSYmZS50eXBlPT09IkJ1ZmZlciImJihqcWUoZS5kYXRhKXx8Q0soZS5kYXRhKSl8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIGpxZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBDSyhlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmcifWZ1bmN0aW9uIFZxZShlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbH12YXIgalQscXFlLFVxZT1wKCgpPT57eksoKTtqVD0oZSx0KT0+e2lmKEhJcih0KSl7bGV0IHI7aWYoImRhdGEiaW4gdCYmanFlKHQuZGF0YSkpcj1uZXcgVWludDhBcnJheSh0LmRhdGEpO2Vsc2UgaWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcj10O2Vsc2UgcmV0dXJuIHQ7cmV0dXJue3R5cGU6IkVuY29kZWRCdWZmZXIiLGRhdGE6ImJhc2U2NDoiK09JcihyKX19cmV0dXJuIHR9LHFxZT0oZSx0KT0+e2lmKEJJcih0KSYmQ0sodC5kYXRhKSYmdC5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHI9dC5kYXRhLnNsaWNlKDcpO3JldHVybiBSSXIocil9cmV0dXJuIHR9fSk7dmFyIHkxPXt9O0ZlKHkxLHtTbWFydGpzb246KCk9PkFLLGRlZXBFcXVhbEpzb25MU3RyaW5nczooKT0+WklyLGRlZXBFcXVhbE9iamVjdHM6KCk9PldxZSxmb2xkRGVjOigpPT5ZSXIscGFyc2U6KCk9PlZULHBhcnNlQmFzZTY0OigpPT5HSXIscGFyc2VKc29uTDooKT0+TEssc3RhYmxlT25lV2F5U3RyaW5naWZ5OigpPT5WSXIsc3RyaW5naWZ5OigpPT5WNixzdHJpbmdpZnlCYXNlNjQ6KCk9PldJcixzdHJpbmdpZnlKc29uTDooKT0+aklyLHN0cmluZ2lmeVByZXR0eTooKT0+VUlyfSk7dmFyIFZULExLLGpJcixWSXIsVjYsVUlyLFdJcixHSXIsQUssWUlyLFdxZSxaSXIsVjg9cCgoKT0+e3pLKCk7VXFlKCk7VlQ9X0ssTEs9ZT0+ZS5zcGxpdChgCmApLnJlZHVjZSgoaSxhKT0+e2xldCBuPWEudHJpbSgpO3JldHVybiBuLmxlbmd0aD4wJiZpLnB1c2goVlQobikpLGl9LFtdKSxqSXI9ZT0+ZS5tYXAodD0+VjYodCkpLmpvaW4oYApgKSxWSXI9KGUsdCxyPXt9KT0+e2xldCBpPW5ldyBXZWFrU2V0LGE9cz0+e2lmKHM9PT1udWxsfHx0eXBlb2YgcyE9Im9iamVjdCIpcmV0dXJuIHM7bGV0IGw9alQoIiIscyk7aWYobCYmbC50eXBlPT09IkVuY29kZWRCdWZmZXIiJiZ0eXBlb2YgbC5kYXRhPT0ic3RyaW5nIilyZXR1cm4gbDtpZihpLmhhcyhzKSlyZXR1cm4iX19jeWNsZV9fIjtpZihpLmFkZChzKSxBcnJheS5pc0FycmF5KHMpKXJldHVybiBzLm1hcCh1PT5hKHUpKTtsZXQgYz17fTtmb3IobGV0IHUgb2YgT2JqZWN0LmtleXMocykpdHJ5e2NbdV09YShzW3VdKX1jYXRjaHtjW3VdPSJfX3Vuc2VyaWFsaXphYmxlX18ifXJldHVybiBjfSxuPWEoZSksbz17Li4ucixjeWNsZXM6ITB9O2lmKHQmJiFvLmNtcCl7bGV0IHM9bmV3IE1hcDt0LmZvckVhY2goKGwsYyk9PnMuc2V0KGwsYykpLG8uY21wPShsLGMpPT57bGV0IHU9cy5oYXMobC5rZXkpP3MuZ2V0KGwua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksZD1zLmhhcyhjLmtleSk/cy5nZXQoYy5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gdSE9PWQ/dS1kOmwua2V5PGMua2V5Py0xOmwua2V5PmMua2V5PzE6MH19cmV0dXJuIHFUKG4sbyl9LFY2PShlLHQscj17fSk9PntsZXQgaT1USyhlKTtlPUpTT04ucGFyc2UoaSk7bGV0IGE9ey4uLnJ9O2lmKHQmJiFhLmNtcCl7bGV0IG89bmV3IE1hcDt0LmZvckVhY2goKHMsbCk9Pm8uc2V0KHMsbCkpLGEuY21wPShzLGwpPT57bGV0IGM9by5oYXMocy5rZXkpP28uZ2V0KHMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdT1vLmhhcyhsLmtleSk/by5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYyE9PXU/Yy11OnMua2V5PGwua2V5Py0xOnMua2V5Pmwua2V5PzE6MH19cmV0dXJuIHFUKGUsYSl9LFVJcj1lPT57bGV0IHQ9VjYoZSkscj1KU09OLnBhcnNlKHQpO3JldHVybiBKU09OLnN0cmluZ2lmeShyLG51bGwsMil9LFdJcj0oLi4uZSk9PntsZXQgdD1WNiguLi5lKTtyZXR1cm4gUWkuYmFzZTY0LmVuY29kZVVyaSh0KX0sR0lyPWU9PntsZXQgdD1RaS5iYXNlNjQsaT0odC5kZWNvZGVVcml8fHQuZGVjb2RlKShlKTtyZXR1cm4gVlQoaSl9LEFLPWNsYXNzIGV7c3RhdGljIGVuZm9sZEZyb21PYmplY3QodCl7bGV0IHI9bmV3IHRoaXMsaT1yLnNhdmVhYmxlUHJvcGVydGllc3x8W107Zm9yKGxldCBhIGluIHQpaS5pbmRleE9mKGEpIT09LTEmJihyW2FdPXRbYV0pO3JldHVybiByfXN0YXRpYyBlbmZvbGRGcm9tSnNvbih0KXtsZXQgcj1WVCh0KTtyZXR1cm4gdGhpcy5lbmZvbGRGcm9tT2JqZWN0KHIpfWZvbGRUb09iamVjdCgpe2xldCB0PW5ldyBTZXQ7cmV0dXJuIHQuYWRkKHRoaXMpLHRoaXMuZm9sZFRvT2JqZWN0SW50ZXJuYWwodCl9Zm9sZFRvT2JqZWN0SW50ZXJuYWwodCl7bGV0IHI9e30saT1uPT57aWYobiBpbnN0YW5jZW9mIGUpe2lmKHQuaGFzKG4pKXRocm93IG5ldyBFcnJvcigiY3ljbGUgZGV0ZWN0ZWQiKTtyZXR1cm4gdC5hZGQobiksbi5mb2xkVG9PYmplY3RJbnRlcm5hbCh0KX1yZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uLm1hcChvPT5pKG8pKTpIVC5kZWZhdWx0KG4pfSxhPXRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHxbXTtmb3IobGV0IG4gb2YgYSl7bGV0IG89dGhpc1tuXTtyW25dPWkobyl9cmV0dXJuIHJ9Zm9sZFRvSnNvbigpe2xldCB0PXRoaXMuZm9sZFRvT2JqZWN0KCk7cmV0dXJuIFY2KHQpfX0sWUlyPSgpPT4oZSx0KT0+e2Uuc2F2ZWFibGVQcm9wZXJ0aWVzfHwoZS5zYXZlYWJsZVByb3BlcnRpZXM9W10pLGUuc2F2ZWFibGVQcm9wZXJ0aWVzLnB1c2godCl9LFdxZT0oZSx0KT0+e2xldCByPVY2KGUpLGk9VjYodCk7cmV0dXJuIHI9PT1pfSxaSXI9KGUsdCk9PntsZXQgcj1MSyhlKSxpPUxLKHQpO3JldHVybiBXcWUocixpKX19KTt2YXIgczk9e307RmUoczkse2RlbGV0ZURCOigpPT50amUsb3BlbkRCOigpPT5lamUsdW53cmFwOigpPT5vOSx3cmFwOigpPT5Pc30pO2Z1bmN0aW9uIFhJcigpe3JldHVybiBHcWV8fChHcWU9W0lEQkRhdGFiYXNlLElEQk9iamVjdFN0b3JlLElEQkluZGV4LElEQkN1cnNvcixJREJUcmFuc2FjdGlvbl0pfWZ1bmN0aW9uIFFJcigpe3JldHVybiBZcWV8fChZcWU9W0lEQkN1cnNvci5wcm90b3R5cGUuYWR2YW5jZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5XSl9ZnVuY3Rpb24gSklyKGUpe2xldCB0PW5ldyBQcm9taXNlKChyLGkpPT57bGV0IGE9KCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSxuPSgpPT57cihPcyhlLnJlc3VsdCkpLGEoKX0sbz0oKT0+e2koZS5lcnJvciksYSgpfTtlLmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLG4pLGUuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pfSk7cmV0dXJuIFVULnNldCh0LGUpLHR9ZnVuY3Rpb24gS0lyKGUpe2lmKEVLLmhhcyhlKSlyZXR1cm47bGV0IHQ9bmV3IFByb21pc2UoKHIsaSk9PntsZXQgYT0oKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLG4pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLG8pLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSxuPSgpPT57cigpLGEoKX0sbz0oKT0+e2koZS5lcnJvcnx8bmV3IERPTUV4Y2VwdGlvbigiQWJvcnRFcnJvciIsIkFib3J0RXJyb3IiKSksYSgpfTtlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixuKSxlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixvKSxlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0pO0VLLnNldChlLHQpfWZ1bmN0aW9uIFpxZShlKXtJSz1lKElLKX1mdW5jdGlvbiBlUHIoZSl7cmV0dXJuIFFJcigpLmluY2x1ZGVzKGUpP2Z1bmN0aW9uKC4uLnQpe3JldHVybiBlLmFwcGx5KG85KHRoaXMpLHQpLE9zKHRoaXMucmVxdWVzdCl9OmZ1bmN0aW9uKC4uLnQpe3JldHVybiBPcyhlLmFwcGx5KG85KHRoaXMpLHQpKX19ZnVuY3Rpb24gdFByKGUpe3JldHVybiB0eXBlb2YgZT09ImZ1bmN0aW9uIj9lUHIoZSk6KGUgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmS0lyKGUpLERLKGUsWElyKCkpP25ldyBQcm94eShlLElLKTplKX1mdW5jdGlvbiBPcyhlKXtpZihlIGluc3RhbmNlb2YgSURCUmVxdWVzdClyZXR1cm4gSklyKGUpO2lmKCRLLmhhcyhlKSlyZXR1cm4gJEsuZ2V0KGUpO2xldCB0PXRQcihlKTtyZXR1cm4gdCE9PWUmJigkSy5zZXQoZSx0KSxVVC5zZXQodCxlKSksdH1mdW5jdGlvbiBlamUoZSx0LHtibG9ja2VkOnIsdXBncmFkZTppLGJsb2NraW5nOmEsdGVybWluYXRlZDpufT17fSl7bGV0IG89aW5kZXhlZERCLm9wZW4oZSx0KSxzPU9zKG8pO3JldHVybiBpJiZvLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLGw9PntpKE9zKG8ucmVzdWx0KSxsLm9sZFZlcnNpb24sbC5uZXdWZXJzaW9uLE9zKG8udHJhbnNhY3Rpb24pLGwpfSksciYmby5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIixsPT5yKGwub2xkVmVyc2lvbixsLm5ld1ZlcnNpb24sbCkpLHMudGhlbihsPT57biYmbC5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCk9Pm4oKSksYSYmbC5hZGRFdmVudExpc3RlbmVyKCJ2ZXJzaW9uY2hhbmdlIixjPT5hKGMub2xkVmVyc2lvbixjLm5ld1ZlcnNpb24sYykpfSkuY2F0Y2goKCk9Pnt9KSxzfWZ1bmN0aW9uIHRqZShlLHtibG9ja2VkOnR9PXt9KXtsZXQgcj1pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZSk7cmV0dXJuIHQmJnIuYWRkRXZlbnRMaXN0ZW5lcigiYmxvY2tlZCIsaT0+dChpLm9sZFZlcnNpb24saSkpLE9zKHIpLnRoZW4oKCk9Pnt9KX1mdW5jdGlvbiBYcWUoZSx0KXtpZighKGUgaW5zdGFuY2VvZiBJREJEYXRhYmFzZSYmISh0IGluIGUpJiZ0eXBlb2YgdD09InN0cmluZyIpKXJldHVybjtpZihQSy5nZXQodCkpcmV0dXJuIFBLLmdldCh0KTtsZXQgcj10LnJlcGxhY2UoL0Zyb21JbmRleCQvLCIiKSxpPXQhPT1yLGE9aVByLmluY2x1ZGVzKHIpO2lmKCEociBpbihpP0lEQkluZGV4OklEQk9iamVjdFN0b3JlKS5wcm90b3R5cGUpfHwhKGF8fHJQci5pbmNsdWRlcyhyKSkpcmV0dXJuO2xldCBuPWFzeW5jIGZ1bmN0aW9uKG8sLi4ucyl7bGV0IGw9dGhpcy50cmFuc2FjdGlvbihvLGE/InJlYWR3cml0ZSI6InJlYWRvbmx5IiksYz1sLnN0b3JlO3JldHVybiBpJiYoYz1jLmluZGV4KHMuc2hpZnQoKSkpLChhd2FpdCBQcm9taXNlLmFsbChbY1tyXSguLi5zKSxhJiZsLmRvbmVdKSlbMF19O3JldHVybiBQSy5zZXQodCxuKSxufWFzeW5jIGZ1bmN0aW9uKm9QciguLi5lKXtsZXQgdD10aGlzO2lmKHQgaW5zdGFuY2VvZiBJREJDdXJzb3J8fCh0PWF3YWl0IHQub3BlbkN1cnNvciguLi5lKSksIXQpcmV0dXJuO3Q9dDtsZXQgcj1uZXcgUHJveHkodCxuUHIpO2ZvcihKcWUuc2V0KHIsdCksVVQuc2V0KHIsbzkodCkpO3Q7KXlpZWxkIHIsdD1hd2FpdChOSy5nZXQocil8fHQuY29udGludWUoKSksTksuZGVsZXRlKHIpfWZ1bmN0aW9uIEtxZShlLHQpe3JldHVybiB0PT09U3ltYm9sLmFzeW5jSXRlcmF0b3ImJkRLKGUsW0lEQkluZGV4LElEQk9iamVjdFN0b3JlLElEQkN1cnNvcl0pfHx0PT09Iml0ZXJhdGUiJiZESyhlLFtJREJJbmRleCxJREJPYmplY3RTdG9yZV0pfXZhciBESyxHcWUsWXFlLEVLLCRLLFVULElLLG85LHJQcixpUHIsUEssYVByLFFxZSxOSyxKcWUsblByLHJqZT1wKCgpPT57REs9KGUsdCk9PnQuc29tZShyPT5lIGluc3RhbmNlb2Ygcik7RUs9bmV3IFdlYWtNYXAsJEs9bmV3IFdlYWtNYXAsVVQ9bmV3IFdlYWtNYXA7SUs9e2dldChlLHQscil7aWYoZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uKXtpZih0PT09ImRvbmUiKXJldHVybiBFSy5nZXQoZSk7aWYodD09PSJzdG9yZSIpcmV0dXJuIHIub2JqZWN0U3RvcmVOYW1lc1sxXT92b2lkIDA6ci5vYmplY3RTdG9yZShyLm9iamVjdFN0b3JlTmFtZXNbMF0pfXJldHVybiBPcyhlW3RdKX0sc2V0KGUsdCxyKXtyZXR1cm4gZVt0XT1yLCEwfSxoYXMoZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiYodD09PSJkb25lInx8dD09PSJzdG9yZSIpPyEwOnQgaW4gZX19O285PWU9PlVULmdldChlKTtyUHI9WyJnZXQiLCJnZXRLZXkiLCJnZXRBbGwiLCJnZXRBbGxLZXlzIiwiY291bnQiXSxpUHI9WyJwdXQiLCJhZGQiLCJkZWxldGUiLCJjbGVhciJdLFBLPW5ldyBNYXA7WnFlKGU9Pih7Li4uZSxnZXQ6KHQscixpKT0+WHFlKHQscil8fGUuZ2V0KHQscixpKSxoYXM6KHQscik9PiEhWHFlKHQscil8fGUuaGFzKHQscil9KSk7YVByPVsiY29udGludWUiLCJjb250aW51ZVByaW1hcnlLZXkiLCJhZHZhbmNlIl0sUXFlPXt9LE5LPW5ldyBXZWFrTWFwLEpxZT1uZXcgV2Vha01hcCxuUHI9e2dldChlLHQpe2lmKCFhUHIuaW5jbHVkZXModCkpcmV0dXJuIGVbdF07bGV0IHI9UXFlW3RdO3JldHVybiByfHwocj1RcWVbdF09ZnVuY3Rpb24oLi4uaSl7Tksuc2V0KHRoaXMsSnFlLmdldCh0aGlzKVt0XSguLi5pKSl9KSxyfX07WnFlKGU9Pih7Li4uZSxnZXQodCxyLGkpe3JldHVybiBLcWUodCxyKT9vUHI6ZS5nZXQodCxyLGkpfSxoYXModCxyKXtyZXR1cm4gS3FlKHQscil8fGUuaGFzKHQscil9fSkpfSk7dmFyIEZLPXAoKCk9PntHbSgpO044KCk7VjgoKTtFaSgpO2gyKCk7YnooKTtyamUoKX0pO3ZhciBsOSxPSz1wKCgpPT57RksoKTtsOT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmluaXRDYWxsZWQ9ITEsdGhpcy5yZWFkeURlZmVycmVkPVhlLmRlZmVyKCksdGhpcy5vcHRpb25zPXR9YXN5bmMgaW5pdCgpe2lmKHRoaXMuaW5pdENhbGxlZCl7YXdhaXQgdGhpcy5yZWFkeURlZmVycmVkLnByb21pc2U7cmV0dXJufXRoaXMuaW5pdENhbGxlZD0hMDtsZXQgdD1uZXcgcW4uU21hcnRlbnY7aWYoIXQuaXNCcm93c2VyJiYhZ2xvYmFsVGhpcy5pbmRleGVkREImJihjb25zb2xlLmxvZygiaGV5IiksY29uc29sZS5sb2coZ2xvYmFsVGhpcy5pbmRleGVkREIpLGF3YWl0IHQuZ2V0U2FmZU5vZGVNb2R1bGUoImZha2UtaW5kZXhlZGRiL2F1dG8iKSwhZ2xvYmFsVGhpcy5pbmRleGVkREIpKXtsZXQgcj1hd2FpdCB0LmdldFNhZmVOb2RlTW9kdWxlKCJmYWtlLWluZGV4ZWRkYiIpO2dsb2JhbFRoaXMuaW5kZXhlZERCPW5ldyByLklEQkZhY3Rvcnl9dGhpcy5kYj1hd2FpdCBzOS5vcGVuREIodGhpcy5vcHRpb25zLmRiTmFtZSwxLHt1cGdyYWRlOnI9PntyLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMub3B0aW9ucy5zdG9yZU5hbWUpfX0pLHRoaXMucmVhZHlEZWZlcnJlZC5yZXNvbHZlKCl9YXN5bmMgZ2V0KHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHQpfWFzeW5jIGNoZWNrKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSwhIWF3YWl0IHRoaXMuZ2V0KHQpfWFzeW5jIHNldCh0LHIpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLnB1dCh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHIsdCl9YXN5bmMgZGVsZXRlKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmRlbGV0ZSh0aGlzLm9wdGlvbnMuc3RvcmVOYW1lLHQpfWFzeW5jIGNsZWFyKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdCgpLHRoaXMuZGIuY2xlYXIodGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9YXN5bmMga2V5cygpe3JldHVybiBhd2FpdCB0aGlzLmluaXQoKSx0aGlzLmRiLmdldEFsbEtleXModGhpcy5vcHRpb25zLnN0b3JlTmFtZSl9fX0pO3ZhciBSSyxhamU9cCgoKT0+e09LKCk7RksoKTtSSz1jbGFzc3tjb25zdHJ1Y3Rvcih0PSJkZWZhdWx0Iil7dGhpcy53ZWJzdG9yZT1uZXcgbDkoe2RiTmFtZToidHJTdG9yZSIsc3RvcmVOYW1lOmB0clN0b3JlLSR7dH1gfSl9YnVpbGRLZXkodCl7cmV0dXJuIHkxLnN0cmluZ2lmeSh7bWV0aG9kOnQubWV0aG9kLHJlcXVlc3Q6dC5yZXF1ZXN0fSl9YXN5bmMgc2V0QnlSZXF1ZXN0KHQpe2lmKCF0LnJlc3BvbnNlKXRocm93IG5ldyBFcnJvcigiWW91IGNhbm5vdCBzdG9yZSByZXF1ZXN0cyB3aXRob3V0IGEgcmVzcG9uc2UgcHJlc2VudCIpO2F3YWl0IHRoaXMud2Vic3RvcmUuc2V0KHRoaXMuYnVpbGRLZXkodCksdCl9YXN5bmMgZ2V0QnlSZXF1ZXN0KHQpe3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldCh0aGlzLmJ1aWxkS2V5KHQpKX19fSk7dmFyIFlhPXt9O0ZlKFlhLHtUeXBlZHJlcXVlc3RDYWNoZTooKT0+UkssV2ViU3RvcmU6KCk9Pmw5fSk7dmFyIGM5PXAoKCk9PnthamUoKTtPSygpfSk7dmFyIGQ5PXAoKCk9PntUcygpO044KCk7VjgoKTtFaSgpO2M5KCl9KTt2YXIgVTgsR1Q9cCgoKT0+e2Q5KCk7VTg9Y2xhc3N7Y29uc3RydWN0b3IodD0id2VicmVxdWVzdC12NCIscj0iY2FjaGUiKXt0aGlzLndlYnN0b3JlPW5ldyBZYS5XZWJTdG9yZSh7ZGJOYW1lOnQsc3RvcmVOYW1lOnJ9KSx0aGlzLmluaXRQcm9taXNlPXRoaXMuaW5pdCgpfWFzeW5jIGluaXQoKXt9Z2VuZXJhdGVDYWNoZUtleSh0KXtsZXQgcj10LnVybCxpPXQubWV0aG9kO3JldHVybiBpPT09IkdFVCI/cjpgJHtpfToke3J9YH1hc3luYyBzZXQodCxyKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuc2V0KHQscil9YXN5bmMgZ2V0KHQpe2F3YWl0IHRoaXMuaW5pdFByb21pc2U7dHJ5e3JldHVybiBhd2FpdCB0aGlzLndlYnN0b3JlLmdldCh0KXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19YXN5bmMgaGFzKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2hlY2sodCl9YXN5bmMgZGVsZXRlKHQpe2F3YWl0IHRoaXMuaW5pdFByb21pc2UsYXdhaXQgdGhpcy53ZWJzdG9yZS5kZWxldGUodCl9YXN5bmMgY2xlYXIoKXthd2FpdCB0aGlzLmluaXRQcm9taXNlLGF3YWl0IHRoaXMud2Vic3RvcmUuY2xlYXIoKX1yZXNwb25zZUZyb21DYWNoZUVudHJ5KHQpe2xldCByPW5ldyBIZWFkZXJzKHQuaGVhZGVycyk7cmV0dXJuIG5ldyBSZXNwb25zZSh0LnJlc3BvbnNlLHtzdGF0dXM6dC5zdGF0dXMsc3RhdHVzVGV4dDp0LnN0YXR1c1RleHQsaGVhZGVyczpyfSl9YXN5bmMgY2FjaGVFbnRyeUZyb21SZXNwb25zZSh0LHIsaSl7bGV0IGE9ci5jbG9uZSgpLG49YXdhaXQgYS5hcnJheUJ1ZmZlcigpLG89e307cmV0dXJuIGEuaGVhZGVycy5mb3JFYWNoKChzLGwpPT57b1tsXT1zfSkse3Jlc3BvbnNlOm4saGVhZGVyczpvLHRpbWVzdGFtcDpEYXRlLm5vdygpLGV0YWc6aT8uZXRhZ3x8YS5oZWFkZXJzLmdldCgiZXRhZyIpfHx2b2lkIDAsbGFzdE1vZGlmaWVkOmk/Lmxhc3RNb2RpZmllZHx8YS5oZWFkZXJzLmdldCgibGFzdC1tb2RpZmllZCIpfHx2b2lkIDAsbWF4QWdlOmk/Lm1heEFnZSx1cmw6dCxzdGF0dXM6YS5zdGF0dXMsc3RhdHVzVGV4dDphLnN0YXR1c1RleHR9fWFzeW5jIHBydW5lRXhwaXJlZCgpe3JldHVybiBhd2FpdCB0aGlzLmluaXRQcm9taXNlLDB9fX0pO2Z1bmN0aW9uIHNQcihlKXtsZXQgdD17bWF4QWdlOjAsaW1tdXRhYmxlOiExLG5vQ2FjaGU6ITEsbm9TdG9yZTohMSxtdXN0UmV2YWxpZGF0ZTohMX07aWYoIWUpcmV0dXJuIHQ7bGV0IHI9ZS50b0xvd2VyQ2FzZSgpLnNwbGl0KCIsIikubWFwKGk9PmkudHJpbSgpKTtmb3IobGV0IGkgb2YgcilpZihpPT09Im5vLWNhY2hlIil0Lm5vQ2FjaGU9ITA7ZWxzZSBpZihpPT09Im5vLXN0b3JlIil0Lm5vU3RvcmU9ITA7ZWxzZSBpZihpPT09ImltbXV0YWJsZSIpdC5pbW11dGFibGU9ITA7ZWxzZSBpZihpPT09Im11c3QtcmV2YWxpZGF0ZSIpdC5tdXN0UmV2YWxpZGF0ZT0hMDtlbHNlIGlmKGkuc3RhcnRzV2l0aCgibWF4LWFnZT0iKSl7bGV0IGE9cGFyc2VJbnQoaS5zcGxpdCgiPSIpWzFdLDEwKTtpc05hTihhKXx8KHQubWF4QWdlPWEqMWUzKX1yZXR1cm4gdH1mdW5jdGlvbiBsUHIoZSl7aWYoZSl0cnl7cmV0dXJuIG5ldyBEYXRlKGUpLmdldFRpbWUoKX1jYXRjaHtyZXR1cm59fWZ1bmN0aW9uIFJzKGUpe2xldCB0PWUuZ2V0KCJjYWNoZS1jb250cm9sIikscj1lLmdldCgiZXhwaXJlcyIpLGk9ZS5nZXQoImV0YWciKSxhPWUuZ2V0KCJsYXN0LW1vZGlmaWVkIiksbj1zUHIodCk7aWYobi5tYXhBZ2U9PT0wJiZyKXtsZXQgbz1sUHIocik7byYmKG4ubWF4QWdlPU1hdGgubWF4KDAsby1EYXRlLm5vdygpKSl9cmV0dXJue21heEFnZTpuLm1heEFnZXx8MCxldGFnOml8fHZvaWQgMCxsYXN0TW9kaWZpZWQ6YXx8dm9pZCAwLGltbXV0YWJsZTpuLmltbXV0YWJsZXx8ITEsbm9DYWNoZTpuLm5vQ2FjaGV8fCExLG5vU3RvcmU6bi5ub1N0b3JlfHwhMSxtdXN0UmV2YWxpZGF0ZTpuLm11c3RSZXZhbGlkYXRlfHwhMX19ZnVuY3Rpb24gdTkoZSx0KXtpZih0Lm5vU3RvcmUpcmV0dXJuITE7aWYodC5pbW11dGFibGUpcmV0dXJuITA7bGV0IHI9RGF0ZS5ub3coKS1lLnRpbWVzdGFtcCxpPWUubWF4QWdlfHx0Lm1heEFnZXx8MDtyZXR1cm4gaT09PTA/ITE6cjxpfWZ1bmN0aW9uIHA5KGUpe3JldHVybiBlLm5vQ2FjaGV8fGUubXVzdFJldmFsaWRhdGV9ZnVuY3Rpb24gWVQoZSl7bGV0IHQ9e307cmV0dXJuIGUuZXRhZyYmKHRbImlmLW5vbmUtbWF0Y2giXT1lLmV0YWcpLGUubGFzdE1vZGlmaWVkJiYodFsiaWYtbW9kaWZpZWQtc2luY2UiXT1lLmxhc3RNb2RpZmllZCksdH1mdW5jdGlvbiBaVChlKXtsZXQgdD17fTtyZXR1cm4gZS5mb3JFYWNoKChyLGkpPT57dFtpXT1yfSksdH1mdW5jdGlvbiBuamUoZSl7bGV0IHQ9bmV3IEhlYWRlcnM7cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKFtyLGldKT0+e3Quc2V0KHIsaSl9KSx0fXZhciBYVD1wKCgpPT57fSk7ZnVuY3Rpb24gb2plKGUpe3N3aXRjaChlKXtjYXNlIm5ldHdvcmstZmlyc3QiOnJldHVybiBuZXcgUVQ7Y2FzZSJjYWNoZS1maXJzdCI6cmV0dXJuIG5ldyBCSztjYXNlInN0YWxlLXdoaWxlLXJldmFsaWRhdGUiOnJldHVybiBuZXcgSEs7Y2FzZSJuZXR3b3JrLW9ubHkiOnJldHVybiBuZXcgcUs7Y2FzZSJjYWNoZS1vbmx5IjpyZXR1cm4gbmV3IGpLO2RlZmF1bHQ6cmV0dXJuIG5ldyBRVH19dmFyIFFULEJLLEhLLHFLLGpLLHNqZT1wKCgpPT57R1QoKTtYVCgpO1FUPWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7dHJ5e2xldCByPWF3YWl0IHQuZmV0Y2hGbih0LnJlcXVlc3QpO3JldHVybiByLm9rJiZhd2FpdCB0aGlzLmNhY2hlUmVzcG9uc2UodCxyKSx7cmVzcG9uc2U6cixmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWNhdGNoKHIpe3QubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBOZXR3b3JrIGZhaWxlZCwgdHJ5aW5nIGNhY2hlOiIscik7bGV0IGk9YXdhaXQgdC5jYWNoZVN0b3JlLmdldCh0LmNhY2hlS2V5KTtpZihpKXJldHVybntyZXNwb25zZTp0LmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShpKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITF9O3Rocm93IHJ9fWFzeW5jIGNhY2hlUmVzcG9uc2UodCxyKXtsZXQgaT1ScyhyLmhlYWRlcnMpO2lmKGkubm9TdG9yZSlyZXR1cm47bGV0IGE9YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxyLGkpO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxhKX19LEJLPWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7bGV0IHI9YXdhaXQgdC5jYWNoZVN0b3JlLmdldCh0LmNhY2hlS2V5KTtpZihyKXtsZXQgbj1ScyhuZXcgSGVhZGVycyhyLmhlYWRlcnMpKTtpZih1OShyLG4pKXJldHVybiB0LmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgaGl0IChmcmVzaCk6Iix0LnJlcXVlc3QudXJsKSx7cmVzcG9uc2U6dC5jYWNoZVN0b3JlLnJlc3BvbnNlRnJvbUNhY2hlRW50cnkociksZnJvbUNhY2hlOiEwLHJldmFsaWRhdGVkOiExfTtpZihwOShuKSYmKHIuZXRhZ3x8ci5sYXN0TW9kaWZpZWQpKXJldHVybiBhd2FpdCB0aGlzLnJldmFsaWRhdGUodCxyKX10LmxvZ2dpbmcmJmNvbnNvbGUubG9nKCJbd2VicmVxdWVzdF0gQ2FjaGUgbWlzcywgZmV0Y2hpbmc6Iix0LnJlcXVlc3QudXJsKTtsZXQgaT1hd2FpdCB0LmZldGNoRm4odC5yZXF1ZXN0KSxhPVJzKGkuaGVhZGVycyk7aWYoIWEubm9TdG9yZSl7bGV0IG49YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxpLGEpO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxuKX1yZXR1cm57cmVzcG9uc2U6aSxmcm9tQ2FjaGU6ITEscmV2YWxpZGF0ZWQ6ITF9fWFzeW5jIHJldmFsaWRhdGUodCxyKXtsZXQgaT1ZVChyKSxhPW5ldyBSZXF1ZXN0KHQucmVxdWVzdC51cmwse21ldGhvZDp0LnJlcXVlc3QubWV0aG9kLGhlYWRlcnM6ey4uLlpUKHQucmVxdWVzdC5oZWFkZXJzKSwuLi5pfX0pO3RyeXtsZXQgbj1hd2FpdCB0LmZldGNoRm4oYSk7aWYobi5zdGF0dXM9PT0zMDQpcmV0dXJuIHQubG9nZ2luZyYmY29uc29sZS5sb2coIlt3ZWJyZXF1ZXN0XSBDYWNoZSByZXZhbGlkYXRlZCAoMzA0KToiLHQucmVxdWVzdC51cmwpLHIudGltZXN0YW1wPURhdGUubm93KCksYXdhaXQgdC5jYWNoZVN0b3JlLnNldCh0LmNhY2hlS2V5LHIpLHtyZXNwb25zZTp0LmNhY2hlU3RvcmUucmVzcG9uc2VGcm9tQ2FjaGVFbnRyeShyKSxmcm9tQ2FjaGU6ITAscmV2YWxpZGF0ZWQ6ITB9O2lmKG4ub2spe2xldCBvPVJzKG4uaGVhZGVycyk7aWYoIW8ubm9TdG9yZSl7bGV0IHM9YXdhaXQgdC5jYWNoZVN0b3JlLmNhY2hlRW50cnlGcm9tUmVzcG9uc2UodC5yZXF1ZXN0LnVybCxuLG8pO2F3YWl0IHQuY2FjaGVTdG9yZS5zZXQodC5jYWNoZUtleSxzKX19cmV0dXJue3Jlc3BvbnNlOm4sZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiEwfX1jYXRjaChuKXtyZXR1cm4gdC5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIFJldmFsaWRhdGlvbiBmYWlsZWQsIHVzaW5nIGNhY2hlOiIsbikse3Jlc3BvbnNlOnQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0sSEs9Y2xhc3N7YXN5bmMgZXhlY3V0ZSh0KXtsZXQgcj1hd2FpdCB0LmNhY2hlU3RvcmUuZ2V0KHQuY2FjaGVLZXkpO2lmKHIpe2xldCBuPXQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpO3JldHVybiB0aGlzLnJldmFsaWRhdGVJbkJhY2tncm91bmQodCxyKS5jYXRjaChvPT57dC5sb2dnaW5nJiZjb25zb2xlLndhcm4oIlt3ZWJyZXF1ZXN0XSBCYWNrZ3JvdW5kIHJldmFsaWRhdGlvbiBmYWlsZWQ6IixvKX0pLHtyZXNwb25zZTpuLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19bGV0IGk9YXdhaXQgdC5mZXRjaEZuKHQucmVxdWVzdCksYT1ScyhpLmhlYWRlcnMpO2lmKCFhLm5vU3RvcmUmJmkub2spe2xldCBuPWF3YWl0IHQuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKHQucmVxdWVzdC51cmwsaSxhKTthd2FpdCB0LmNhY2hlU3RvcmUuc2V0KHQuY2FjaGVLZXksbil9cmV0dXJue3Jlc3BvbnNlOmksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfX1hc3luYyByZXZhbGlkYXRlSW5CYWNrZ3JvdW5kKHQscil7bGV0IGk9UnMobmV3IEhlYWRlcnMoci5oZWFkZXJzKSk7aWYoISh1OShyLGkpJiYhcDkoaSkpKXRyeXtsZXQgYT1hd2FpdCB0LmZldGNoRm4odC5yZXF1ZXN0KTtpZihhLm9rKXtsZXQgbj1ScyhhLmhlYWRlcnMpO2lmKCFuLm5vU3RvcmUpe2xldCBvPWF3YWl0IHQuY2FjaGVTdG9yZS5jYWNoZUVudHJ5RnJvbVJlc3BvbnNlKHQucmVxdWVzdC51cmwsYSxuKTthd2FpdCB0LmNhY2hlU3RvcmUuc2V0KHQuY2FjaGVLZXksbyksdC5sb2dnaW5nJiZjb25zb2xlLmxvZygiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGNvbXBsZXRlOiIsdC5yZXF1ZXN0LnVybCl9fX1jYXRjaChhKXt0LmxvZ2dpbmcmJmNvbnNvbGUud2FybigiW3dlYnJlcXVlc3RdIEJhY2tncm91bmQgcmV2YWxpZGF0aW9uIGZhaWxlZDoiLGEpfX19LHFLPWNsYXNze2FzeW5jIGV4ZWN1dGUodCl7cmV0dXJue3Jlc3BvbnNlOmF3YWl0IHQuZmV0Y2hGbih0LnJlcXVlc3QpLGZyb21DYWNoZTohMSxyZXZhbGlkYXRlZDohMX19fSxqSz1jbGFzc3thc3luYyBleGVjdXRlKHQpe2xldCByPWF3YWl0IHQuY2FjaGVTdG9yZS5nZXQodC5jYWNoZUtleSk7aWYoIXIpdGhyb3cgbmV3IEVycm9yKGBDYWNoZSBtaXNzIGZvciAke3QucmVxdWVzdC51cmx9IChjYWNoZS1vbmx5IG1vZGUpYCk7cmV0dXJue3Jlc3BvbnNlOnQuY2FjaGVTdG9yZS5yZXNwb25zZUZyb21DYWNoZUVudHJ5KHIpLGZyb21DYWNoZTohMCxyZXZhbGlkYXRlZDohMX19fX0pO3ZhciBXOCxWSz1wKCgpPT57R1QoKTtzamUoKTtYVCgpO1c4PWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy5jYWNoZVN0b3JlPW5ldyBVOCh0LHIpfWFzeW5jIGV4ZWN1dGUodCxyLGkpe2xldCBhPXRoaXMuZGV0ZXJtaW5lU3RyYXRlZ3kodCxyKTtpZihhPT09Im5ldHdvcmstb25seSIpcmV0dXJue3Jlc3BvbnNlOmF3YWl0IGkodCksZnJvbUNhY2hlOiExLHJldmFsaWRhdGVkOiExfTtsZXQgbj10aGlzLmdlbmVyYXRlQ2FjaGVLZXkodCxyKSxvPW9qZShhKSxzPXtyZXF1ZXN0OnQsY2FjaGVLZXk6bixjYWNoZVN0b3JlOnRoaXMuY2FjaGVTdG9yZSxmZXRjaEZuOmksbG9nZ2luZzpyLmxvZ2dpbmd9O3JldHVybiBhd2FpdCBvLmV4ZWN1dGUocyl9ZGV0ZXJtaW5lU3RyYXRlZ3kodCxyKXtyZXR1cm4gci5jYWNoZVN0cmF0ZWd5P3IuY2FjaGVTdHJhdGVneTpyLmNhY2hlP3RoaXMubWFwQ2FjaGVNb2RlVG9TdHJhdGVneShyLmNhY2hlKTp0LmNhY2hlP3RoaXMubWFwQ2FjaGVNb2RlVG9TdHJhdGVneSh0LmNhY2hlKToibmV0d29yay1maXJzdCJ9bWFwQ2FjaGVNb2RlVG9TdHJhdGVneSh0KXtzd2l0Y2godCl7Y2FzZSJkZWZhdWx0IjpyZXR1cm4ibmV0d29yay1maXJzdCI7Y2FzZSJuby1zdG9yZSI6Y2FzZSJyZWxvYWQiOnJldHVybiJuZXR3b3JrLW9ubHkiO2Nhc2Uibm8tY2FjaGUiOnJldHVybiJuZXR3b3JrLWZpcnN0IjtjYXNlImZvcmNlLWNhY2hlIjpyZXR1cm4iY2FjaGUtZmlyc3QiO2Nhc2Uib25seS1pZi1jYWNoZWQiOnJldHVybiJjYWNoZS1vbmx5IjtkZWZhdWx0OnJldHVybiJuZXR3b3JrLWZpcnN0In19Z2VuZXJhdGVDYWNoZUtleSh0LHIpe3JldHVybiByLmNhY2hlS2V5P3R5cGVvZiByLmNhY2hlS2V5PT0iZnVuY3Rpb24iP3IuY2FjaGVLZXkodCk6ci5jYWNoZUtleTp0aGlzLmNhY2hlU3RvcmUuZ2VuZXJhdGVDYWNoZUtleSh0KX1hc3luYyBjbGVhcigpe2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5jbGVhcigpfWFzeW5jIGRlbGV0ZSh0KXthd2FpdCB0aGlzLmNhY2hlU3RvcmUuZGVsZXRlKHQpfWFzeW5jIGhhcyh0KXtyZXR1cm4gYXdhaXQgdGhpcy5jYWNoZVN0b3JlLmhhcyh0KX1nZXRTdG9yZSgpe3JldHVybiB0aGlzLmNhY2hlU3RvcmV9fX0pO2Z1bmN0aW9uIGxqZShlKXtzd2l0Y2goZSl7Y2FzZSJleHBvbmVudGlhbCI6cmV0dXJuIG5ldyBKVDtjYXNlImxpbmVhciI6cmV0dXJuIG5ldyBVSztjYXNlImNvbnN0YW50IjpyZXR1cm4gbmV3IFdLO2RlZmF1bHQ6cmV0dXJuIG5ldyBKVH19ZnVuY3Rpb24gY2plKGUsdD0uMSl7bGV0IHI9ZSp0Kk1hdGgucmFuZG9tKCk7cmV0dXJuIGUrcn12YXIgSlQsVUssV0ssZGplPXAoKCk9PntKVD1jbGFzc3tjYWxjdWxhdGUodCxyLGkpe2xldCBhPXIqTWF0aC5wb3coMix0LTEpO3JldHVybiBNYXRoLm1pbihhLGkpfX0sVUs9Y2xhc3N7Y2FsY3VsYXRlKHQscixpKXtsZXQgYT1yKnQ7cmV0dXJuIE1hdGgubWluKGEsaSl9fSxXSz1jbGFzc3tjYWxjdWxhdGUodCxyLGkpe3JldHVybiBNYXRoLm1pbihyLGkpfX19KTt2YXIgRzgsR0s9cCgoKT0+e2Q5KCk7ZGplKCk7Rzg9Y2xhc3N7Y29uc3RydWN0b3IodD17fSl7dGhpcy5vcHRpb25zPXttYXhBdHRlbXB0czp0Lm1heEF0dGVtcHRzPz8zLGJhY2tvZmY6dC5iYWNrb2ZmPz8iZXhwb25lbnRpYWwiLGluaXRpYWxEZWxheTp0LmluaXRpYWxEZWxheT8/MWUzLG1heERlbGF5OnQubWF4RGVsYXk/PzNlNCxyZXRyeU9uOnQucmV0cnlPbj8/WzQwOCw0MjksNTAwLDUwMiw1MDMsNTA0XSxvblJldHJ5OnQub25SZXRyeT8/KCgpPT57fSl9fWFzeW5jIGV4ZWN1dGUodCxyKXtsZXQgaSxhO2ZvcihsZXQgbj0xO248PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0cztuKyspdHJ5e2xldCBvPWF3YWl0IHQoKTtpZihvIGluc3RhbmNlb2YgUmVzcG9uc2UmJnRoaXMuc2hvdWxkUmV0cnlSZXNwb25zZShvKSl7aWYoYT1vLG49PT10aGlzLm9wdGlvbnMubWF4QXR0ZW1wdHMpcmV0dXJuIG87bGV0IHM9dGhpcy5jYWxjdWxhdGVEZWxheShuKTt0aGlzLm9wdGlvbnMub25SZXRyeShuLG5ldyBFcnJvcihgSFRUUCAke28uc3RhdHVzfWApLHMpLGF3YWl0IHRoaXMuZGVsYXkocyk7Y29udGludWV9cmV0dXJuIG99Y2F0Y2gobyl7aT1vIGluc3RhbmNlb2YgRXJyb3I/bzpuZXcgRXJyb3IoU3RyaW5nKG8pKTtsZXQgcz1yP3IobyxuKTp0aGlzLnNob3VsZFJldHJ5RXJyb3Iobyk7aWYobj09PXRoaXMub3B0aW9ucy5tYXhBdHRlbXB0c3x8IXMpdGhyb3cgaTtsZXQgbD10aGlzLmNhbGN1bGF0ZURlbGF5KG4pO3RoaXMub3B0aW9ucy5vblJldHJ5KG4saSxsKSxhd2FpdCB0aGlzLmRlbGF5KGwpfXRocm93IGl8fG5ldyBFcnJvcigiTWF4IHJldHJ5IGF0dGVtcHRzIHJlYWNoZWQiKX1hc3luYyBleGVjdXRlV2l0aEZhbGxiYWNrcyh0LHIsaSl7aWYodC5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiTm8gVVJMcyBwcm92aWRlZCBmb3IgZmFsbGJhY2sgZXhlY3V0aW9uIik7bGV0IGEsbj1bXTtmb3IobGV0IG8gb2YgdCl0cnl7bGV0IHM9YXdhaXQgdGhpcy5leGVjdXRlKGFzeW5jKCk9PmF3YWl0IGkobyxyKSk7aWYocy5zdGF0dXM8NDAwfHxzLnN0YXR1cz49NDAwJiZzLnN0YXR1czw1MDAmJnMuc3RhdHVzIT09NDA4KXJldHVybiBzO24ucHVzaChvKSxhPW5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgJHtzLnN0YXR1c31gKX1jYXRjaChzKXtuLnB1c2gobyksYT1zIGluc3RhbmNlb2YgRXJyb3I/czpuZXcgRXJyb3IoU3RyaW5nKHMpKX10aHJvdyBuZXcgRXJyb3IoYEFsbCBVUkxzIGZhaWxlZDogJHtuLmpvaW4oIiwgIil9LiBMYXN0IGVycm9yOiAke2E/Lm1lc3NhZ2V8fCJVbmtub3duIGVycm9yIn1gKX1zaG91bGRSZXRyeVJlc3BvbnNlKHQpe2xldCByPXRoaXMub3B0aW9ucy5yZXRyeU9uO3JldHVybiB0eXBlb2Ygcj09ImZ1bmN0aW9uIj9yKHQpOkFycmF5LmlzQXJyYXkocik/ci5pbmNsdWRlcyh0LnN0YXR1cyk6ITF9c2hvdWxkUmV0cnlFcnJvcih0KXtpZih0IGluc3RhbmNlb2YgVHlwZUVycm9yJiZ0Lm1lc3NhZ2UuaW5jbHVkZXMoImZldGNoIil8fHQubmFtZT09PSJBYm9ydEVycm9yInx8dC5tZXNzYWdlLmluY2x1ZGVzKCJ0aW1lb3V0IikpcmV0dXJuITA7bGV0IHI9dGhpcy5vcHRpb25zLnJldHJ5T247cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3Iodm9pZCAwLHQpOiExfWNhbGN1bGF0ZURlbGF5KHQpe2xldCBpPWxqZSh0aGlzLm9wdGlvbnMuYmFja29mZikuY2FsY3VsYXRlKHQsdGhpcy5vcHRpb25zLmluaXRpYWxEZWxheSx0aGlzLm9wdGlvbnMubWF4RGVsYXkpO3JldHVybiBjamUoaSl9YXN5bmMgZGVsYXkodCl7YXdhaXQgQ3QuZGVsYXlGb3IodCl9fX0pO3ZhciBZOCxZSz1wKCgpPT57ZDkoKTtZOD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaW5GbGlnaHRSZXF1ZXN0cz1uZXcgTWFwfWdlbmVyYXRlS2V5KHQpe2xldCByPXQudXJsLGk9dC5tZXRob2Q7cmV0dXJuIGk9PT0iR0VUInx8aT09PSJIRUFEIj9gJHtpfToke3J9YDpgJHtpfToke3J9OiR7RGF0ZS5ub3coKX1gfWFzeW5jIGV4ZWN1dGUodCxyKXtsZXQgaT10aGlzLmluRmxpZ2h0UmVxdWVzdHMuZ2V0KHQpO2lmKGkpcmV0dXJue3Jlc3BvbnNlOihhd2FpdCBpLnByb21pc2UpLmNsb25lKCksd2FzRGVkdXBsaWNhdGVkOiEwfTtsZXQgYT1YZS5kZWZlcigpO3RoaXMuaW5GbGlnaHRSZXF1ZXN0cy5zZXQodCxhKTt0cnl7bGV0IG49YXdhaXQgcigpO3JldHVybiBhLnJlc29sdmUobiksdGhpcy5pbkZsaWdodFJlcXVlc3RzLmRlbGV0ZSh0KSx7cmVzcG9uc2U6bix3YXNEZWR1cGxpY2F0ZWQ6ITF9fWNhdGNoKG4pe3Rocm93IGEucmVqZWN0KG4pLHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5kZWxldGUodCksbn19aXNJbkZsaWdodCh0KXtyZXR1cm4gdGhpcy5pbkZsaWdodFJlcXVlc3RzLmhhcyh0KX1nZXRJbkZsaWdodENvdW50KCl7cmV0dXJuIHRoaXMuaW5GbGlnaHRSZXF1ZXN0cy5zaXplfWNsZWFyKCl7dGhpcy5pbkZsaWdodFJlcXVlc3RzLmNsZWFyKCl9fX0pO2Z1bmN0aW9uIGNQcihlKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLHI9bmV3IEN0LlRpbWVvdXQoZSxudWxsKTtyZXR1cm4gci5wcm9taXNlLnRoZW4oKCk9Pnt0LmFib3J0KCl9KSx7Y29udHJvbGxlcjp0LGNsZWFudXA6KCk9PntyLmNhbmNlbCgpfX19YXN5bmMgZnVuY3Rpb24gWksoZSx0LHIpe2xldHtjb250cm9sbGVyOmksY2xlYW51cDphfT1jUHIocik7dHJ5e2xldCBuPWF3YWl0IGZldGNoKGUsey4uLnQsc2lnbmFsOmkuc2lnbmFsfSk7cmV0dXJuIGEoKSxufWNhdGNoKG4pe3Rocm93IGEoKSxuIGluc3RhbmNlb2YgRXJyb3ImJm4ubmFtZT09PSJBYm9ydEVycm9yIj9uZXcgRXJyb3IoYFJlcXVlc3QgdGltZW91dCBhZnRlciAke3J9bXM6ICR7ZX1gKTpufX12YXIgdWplPXAoKCk9PntkOSgpfSk7dmFyIFU2LFhLPXAoKCk9PntySygpO1ZLKCk7R0soKTtZSygpO3VqZSgpO1U2PWNsYXNze2NvbnN0cnVjdG9yKHQ9e30pe3RoaXMuZGVmYXVsdE9wdGlvbnM9dCx0aGlzLmludGVyY2VwdG9yTWFuYWdlcj1uZXcgUDgsdGhpcy5jYWNoZU1hbmFnZXI9bmV3IFc4LHRoaXMuZGVkdXBsaWNhdG9yPW5ldyBZOH1hZGRSZXF1ZXN0SW50ZXJjZXB0b3IodCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVxdWVzdEludGVyY2VwdG9yKHQpfWFkZFJlc3BvbnNlSW50ZXJjZXB0b3IodCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuYWRkUmVzcG9uc2VJbnRlcmNlcHRvcih0KX1hZGRFcnJvckludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLmFkZEVycm9ySW50ZXJjZXB0b3IodCl9cmVtb3ZlUmVxdWVzdEludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlcXVlc3RJbnRlcmNlcHRvcih0KX1yZW1vdmVSZXNwb25zZUludGVyY2VwdG9yKHQpe3RoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnJlbW92ZVJlc3BvbnNlSW50ZXJjZXB0b3IodCl9cmVtb3ZlRXJyb3JJbnRlcmNlcHRvcih0KXt0aGlzLmludGVyY2VwdG9yTWFuYWdlci5yZW1vdmVFcnJvckludGVyY2VwdG9yKHQpfWNsZWFySW50ZXJjZXB0b3JzKCl7dGhpcy5pbnRlcmNlcHRvck1hbmFnZXIuY2xlYXJBbGwoKX1hc3luYyBjbGVhckNhY2hlKCl7YXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuY2xlYXIoKX1hc3luYyByZXF1ZXN0KHQscj17fSl7bGV0IGk9ey4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsLi4ucn0sYTtpZih0eXBlb2YgdD09InN0cmluZyI/YT1uZXcgUmVxdWVzdCh0LGkpOmE9dCxhPWF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NSZXF1ZXN0KGEpLGkuaW50ZXJjZXB0b3JzPy5yZXF1ZXN0KWZvcihsZXQgbyBvZiBpLmludGVyY2VwdG9ycy5yZXF1ZXN0KWE9YXdhaXQgbyhhKTtpZihpLmRlZHVwbGljYXRlPz8hMSl7bGV0IG89dGhpcy5kZWR1cGxpY2F0b3IuZ2VuZXJhdGVLZXkoYSk7cmV0dXJuKGF3YWl0IHRoaXMuZGVkdXBsaWNhdG9yLmV4ZWN1dGUobyxhc3luYygpPT5hd2FpdCB0aGlzLmV4ZWN1dGVSZXF1ZXN0KGEsaSkpKS5yZXNwb25zZX1yZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlUmVxdWVzdChhLGkpfWFzeW5jIGV4ZWN1dGVSZXF1ZXN0KHQscil7dHJ5e2xldCBpPXR5cGVvZiByLnJldHJ5PT0ib2JqZWN0Ij9yLnJldHJ5OnIucmV0cnk/e306dm9pZCAwLGE9YXN5bmMgcz0+e2xldCBsPXIudGltZW91dD8/NmU0O3JldHVybiBhd2FpdCBaSyhzLnVybCx7bWV0aG9kOnMubWV0aG9kLGhlYWRlcnM6cy5oZWFkZXJzLGJvZHk6cy5ib2R5LC4uLnJ9LGwpfSxuPWFzeW5jKHMsbCk9PntsZXQgYz1yLnRpbWVvdXQ/PzZlNDtyZXR1cm4gYXdhaXQgWksocyxsLGMpfSxvO2lmKGkpe2xldCBzPW5ldyBHOChpKTtpZihyLmZhbGxiYWNrVXJscyYmci5mYWxsYmFja1VybHMubGVuZ3RoPjApe2xldCBsPVt0LnVybCwuLi5yLmZhbGxiYWNrVXJsc107bz1hd2FpdCBzLmV4ZWN1dGVXaXRoRmFsbGJhY2tzKGwse21ldGhvZDp0Lm1ldGhvZCxoZWFkZXJzOnQuaGVhZGVycyxib2R5OnQuYm9keSwuLi5yfSxuKX1lbHNlIG89YXdhaXQgcy5leGVjdXRlKGFzeW5jKCk9Pihhd2FpdCB0aGlzLmNhY2hlTWFuYWdlci5leGVjdXRlKHQscixhKSkucmVzcG9uc2UpfWVsc2Ugbz0oYXdhaXQgdGhpcy5jYWNoZU1hbmFnZXIuZXhlY3V0ZSh0LHIsYSkpLnJlc3BvbnNlO2lmKG89YXdhaXQgdGhpcy5pbnRlcmNlcHRvck1hbmFnZXIucHJvY2Vzc1Jlc3BvbnNlKG8pLHIuaW50ZXJjZXB0b3JzPy5yZXNwb25zZSlmb3IobGV0IHMgb2Ygci5pbnRlcmNlcHRvcnMucmVzcG9uc2Upbz1hd2FpdCBzKG8pO3JldHVybiBvfWNhdGNoKGkpe3Rocm93IGF3YWl0IHRoaXMuaW50ZXJjZXB0b3JNYW5hZ2VyLnByb2Nlc3NFcnJvcihpIGluc3RhbmNlb2YgRXJyb3I/aTpuZXcgRXJyb3IoU3RyaW5nKGkpKSl9fWFzeW5jIGdldEpzb24odCxyPXt9KXtsZXQgaT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4ucixtZXRob2Q6IkdFVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5yLmhlYWRlcnN8fHt9fX0pO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2kuc3RhdHVzfTogJHtpLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGkuanNvbigpfWFzeW5jIHBvc3RKc29uKHQscixpPXt9KXtsZXQgYT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4uaSxtZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLC4uLmkuaGVhZGVyc3x8e319LGJvZHk6SlNPTi5zdHJpbmdpZnkocil9KTtpZighYS5vayl0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHthLnN0YXR1c306ICR7YS5zdGF0dXNUZXh0fWApO3JldHVybiBhd2FpdCBhLmpzb24oKX1hc3luYyBwdXRKc29uKHQscixpPXt9KXtsZXQgYT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4uaSxtZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsLi4uaS5oZWFkZXJzfHx7fX0sYm9keTpKU09OLnN0cmluZ2lmeShyKX0pO2lmKCFhLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2Euc3RhdHVzfTogJHthLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGEuanNvbigpfWFzeW5jIGRlbGV0ZUpzb24odCxyPXt9KXtsZXQgaT1hd2FpdCB0aGlzLnJlcXVlc3QodCx7Li4ucixtZXRob2Q6IkRFTEVURSIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwuLi5yLmhlYWRlcnN8fHt9fX0pO2lmKCFpLm9rKXRocm93IG5ldyBFcnJvcihgSFRUUCAke2kuc3RhdHVzfTogJHtpLnN0YXR1c1RleHR9YCk7cmV0dXJuIGF3YWl0IGkuanNvbigpfX19KTthc3luYyBmdW5jdGlvbiBqbihlLHQpe2xldCByPWUgaW5zdGFuY2VvZiBSZXF1ZXN0P2UudXJsOlN0cmluZyhlKSxpPWUgaW5zdGFuY2VvZiBSZXF1ZXN0P2U6bmV3IFJlcXVlc3Qocix0KTtyZXR1cm4gYXdhaXQgZzIucmVxdWVzdChpLHQpfXZhciBnMixwamU9cCgoKT0+e1hLKCk7ZzI9bmV3IFU2O2puLmdldEpzb249YXN5bmMgZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXdhaXQgZzIuZ2V0SnNvbihlLHQpfSxqbi5wb3N0SnNvbj1hc3luYyBmdW5jdGlvbihlLHQscil7cmV0dXJuIGF3YWl0IGcyLnBvc3RKc29uKGUsdCxyKX0sam4ucHV0SnNvbj1hc3luYyBmdW5jdGlvbihlLHQscil7cmV0dXJuIGF3YWl0IGcyLnB1dEpzb24oZSx0LHIpfSxqbi5kZWxldGVKc29uPWFzeW5jIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGF3YWl0IGcyLmRlbGV0ZUpzb24oZSx0KX0sam4uYWRkUmVxdWVzdEludGVyY2VwdG9yPWZ1bmN0aW9uKGUpe2cyLmFkZFJlcXVlc3RJbnRlcmNlcHRvcihlKX0sam4uYWRkUmVzcG9uc2VJbnRlcmNlcHRvcj1mdW5jdGlvbihlKXtnMi5hZGRSZXNwb25zZUludGVyY2VwdG9yKGUpfSxqbi5hZGRFcnJvckludGVyY2VwdG9yPWZ1bmN0aW9uKGUpe2cyLmFkZEVycm9ySW50ZXJjZXB0b3IoZSl9LGpuLmNsZWFySW50ZXJjZXB0b3JzPWZ1bmN0aW9uKCl7ZzIuY2xlYXJJbnRlcmNlcHRvcnMoKX0sam4uY2xlYXJDYWNoZT1hc3luYyBmdW5jdGlvbigpe2F3YWl0IGcyLmNsZWFyQ2FjaGUoKX0sam4uY3JlYXRlQ2xpZW50PWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgVTYoZSl9LGpuLmdldERlZmF1bHRDbGllbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gZzJ9fSk7dmFyIGg5PXt9O0ZlKGg5LHtDYWNoZU1hbmFnZXI6KCk9Plc4LENhY2hlU3RvcmU6KCk9PlU4LEludGVyY2VwdG9yTWFuYWdlcjooKT0+UDgsUmVxdWVzdERlZHVwbGljYXRvcjooKT0+WTgsUmV0cnlNYW5hZ2VyOigpPT5HOCxXZWJyZXF1ZXN0Q2xpZW50OigpPT5VNixjcmVhdGVDb25kaXRpb25hbEhlYWRlcnM6KCk9PllULGV4dHJhY3RDYWNoZU1ldGFkYXRhOigpPT5ScyxoZWFkZXJzVG9PYmplY3Q6KCk9PlpULGlzRnJlc2g6KCk9PnU5LG9iamVjdFRvSGVhZGVyczooKT0+bmplLHJlcXVpcmVzUmV2YWxpZGF0aW9uOigpPT5wOSx3ZWJyZXF1ZXN0OigpPT5qbn0pO3ZhciBoamU9cCgoKT0+e3BqZSgpO1hLKCk7VksoKTtHVCgpO0dLKCk7cksoKTtZSygpO1hUKCl9KTt2YXIgYTQsbjQ9cCgoKT0+e2J6KCk7YTQ9ZXIoeVMoKSwxKTtHbSgpO1JIZSgpO1RzKCk7QkhlKCk7RWkoKTtoamUoKX0pO3ZhciBKbCxmOT1wKCgpPT57bjQoKTtKbD1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuZXJyb3JUZXh0PXQsdGhpcy5lcnJvckRhdGE9cn19fSk7dmFyIGVfLGZqZT1wKCgpPT57ZjkoKTtuNCgpO2VfPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5sb2NhbERhdGE9e319YXN5bmMgcGFzc0d1YXJkcyh0LHIpe2xldCBpPW5ldyByOS5HdWFyZFNldCh0KTtpZighYXdhaXQgaS5hbGxHdWFyZHNQYXNzKHIpKXtsZXQgbj1hd2FpdCBpLmdldEZhaWxlZEhpbnQocik7dGhyb3cgbmV3IEpsKGBndWFyZCBmYWlsZWQ6ICR7bn1gLHtmYWlsZWRIaW50Om59KX19fX0pO3ZhciBRSyxKSz1wKCgpPT57bjQoKTtmOSgpO2ZqZSgpO1FLPWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy5tZXRob2Q9dCx0aGlzLmhhbmRsZXJGdW5jdGlvbj1yfWFzeW5jIGFkZFJlc3BvbnNlKHQpe2lmKHQubWV0aG9kIT09dGhpcy5tZXRob2QpdGhyb3cgbmV3IEVycm9yKCJ0aGlzIGhhbmRsZXIgaGFzIGJlZW4gZ2l2ZW4gYSB3cm9uZyBtZXRob2QgdG8gYW5zd2VyIHRvLiBQbGVhc2UgdXNlIGEgVHlwZWRSb3V0ZXIgdG8gZmlsdGVyIHJlcXVlc3RzIik7bGV0IHIsaT1uZXcgZV87dC5sb2NhbERhdGEmJihpLmxvY2FsRGF0YT10LmxvY2FsRGF0YSk7bGV0IGE9YXdhaXQgdGhpcy5oYW5kbGVyRnVuY3Rpb24odC5yZXF1ZXN0LGkpLmNhdGNoKG49PntuIGluc3RhbmNlb2YgSmw/cj1uOmNvbnNvbGUubG9nKG4pfSk7cmV0dXJuIHImJih0LmVycm9yPXt0ZXh0OnIuZXJyb3JUZXh0LGRhdGE6ci5lcnJvckRhdGF9KSxhJiYodC5yZXNwb25zZT1hKSx0Py5jb3JyZWxhdGlvbj8ucGhhc2UmJih0LmNvcnJlbGF0aW9uLnBoYXNlPSJyZXNwb25zZSIpLHR9fX0pO3ZhciBXNixtOT1wKCgpPT57bjQoKTt0XygpO0pLKCk7S0soKTtXNj1jbGFzcyBle2NvbnN0cnVjdG9yKCl7dGhpcy5ob29rcz17fSx0aGlzLnJvdXRlck1hcD1uZXcgdmkuT2JqZWN0TWFwLHRoaXMuaGFuZGxlck1hcD1uZXcgdmkuT2JqZWN0TWFwLHRoaXMucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zPW5ldyB2aS5PYmplY3RNYXAsdGhpcy5maXJlRXZlbnRJbnRlcmVzdE1hcD1uZXcgdmkuSW50ZXJlc3RNYXAodD0+dCl9c3RhdGljIGdldCBnbG9iYWxIb29rcygpe3JldHVybiBnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc3x8KGdsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9KSxnbG9iYWxUaGlzLl9fdHlwZWRSb3V0ZXJHbG9iYWxIb29rc31zdGF0aWMgc2V0IGdsb2JhbEhvb2tzKHQpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXR9c3RhdGljIHNldEdsb2JhbEhvb2tzKHQpe2xldCByPWUuZ2xvYmFsSG9va3M7ZS5nbG9iYWxIb29rcz17Li4uciwuLi50fX1zdGF0aWMgY2xlYXJHbG9iYWxIb29rcygpe2dsb2JhbFRoaXMuX190eXBlZFJvdXRlckdsb2JhbEhvb2tzPXt9fXNldEhvb2tzKHQpe3RoaXMuaG9va3M9ey4uLnRoaXMuaG9va3MsLi4udH19Y2FsbEhvb2sodCxyKXt0cnl7ZS5nbG9iYWxIb29rc1t0XT8uKHIpLHRoaXMuaG9va3NbdF0/LihyKX1jYXRjaChpKXtjb25zb2xlLmVycm9yKGBUeXBlZFJvdXRlciBob29rIGVycm9yICgke3R9KTpgLGkpfX1hZGRUeXBlZEhhbmRsZXIodCl7aWYodGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodC5tZXRob2QpKXRocm93IG5ldyBFcnJvcihgYSBUeXBlZEhhbmRsZXIgZm9yICR7dC5tZXRob2R9IGFscmVkeSBleGlzdHMhIENhbid0IGFkZCBhbm90aGVyIG9uZS5gKTt0aGlzLmhhbmRsZXJNYXAuYWRkKHQpfWFkZFR5cGVkUm91dGVyKHQpe3RoaXMucm91dGVyTWFwLmZpbmRTeW5jKGk9Pmk9PT10KXx8KHRoaXMucm91dGVyTWFwLmFkZCh0KSx0LmFkZFR5cGVkUm91dGVyKHRoaXMpKX1jaGVja0ZvclR5cGVkSGFuZGxlcih0KXtyZXR1cm4hIXRoaXMuZ2V0VHlwZWRIYW5kbGVyRm9yTWV0aG9kKHQpfWdldFR5cGVkSGFuZGxlckZvck1ldGhvZCh0LHI9W10pe3IucHVzaCh0aGlzKTtsZXQgaTtyZXR1cm4gaT10aGlzLmhhbmRsZXJNYXAuZmluZFN5bmMoYT0+YS5tZXRob2Q9PT10KSxpfHx0aGlzLnJvdXRlck1hcC5nZXRBcnJheSgpLmZvckVhY2goYT0+eyFpJiYhci5pbmNsdWRlcyhhKSYmKGk9YS5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodCxyKSl9KSxpfXN0YXRpY3t0aGlzLmRlZmF1bHRSb3V0ZU9wdGlvbnM9e2xvY2FsUmVxdWVzdDohMSxza2lwSG9va3M6ITF9fWFzeW5jIHJvdXRlQW5kQWRkUmVzcG9uc2UodCxyPXt9KXtsZXQgaT17Li4uZS5kZWZhdWx0Um91dGVPcHRpb25zLC4uLnJ9O2lmKHQ9QnMuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHQse3R5cGVkcm91dGVyOnRoaXN9KSx0LmxvY2FsRGF0YT10LmxvY2FsRGF0YXx8e30sdC5sb2NhbERhdGEuZmlyc3RUeXBlZHJvdXRlcj10aGlzLHQubWV0aG9kPT09IiMjVmlydHVhbFN0cmVhbSMjIil7bGV0IGE9YXdhaXQgdGhpcy5oYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QodCk7cmV0dXJuIGEubG9jYWxEYXRhPW51bGwsYX1pZih0Py5jb3JyZWxhdGlvbj8ucGhhc2U9PT0icmVxdWVzdCJ8fGkubG9jYWxSZXF1ZXN0KXtsZXQgYT1EYXRlLm5vdygpO2kuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVxdWVzdCIse2NvcnJlbGF0aW9uSWQ6dC5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6dC5tZXRob2QsZGlyZWN0aW9uOiJpbmNvbWluZyIscGhhc2U6InJlcXVlc3QiLHRpbWVzdGFtcDphLHBheWxvYWQ6dC5yZXF1ZXN0fSk7bGV0IG49dGhpcy5nZXRUeXBlZEhhbmRsZXJGb3JNZXRob2QodC5tZXRob2QpO3JldHVybiBuPyh0PWF3YWl0IG4uYWRkUmVzcG9uc2UodCksdC5sb2NhbERhdGE9bnVsbCx0PUJzLmVuY29kZVBheWxvYWRGb3JOZXR3b3JrKHQse3R5cGVkcm91dGVyOnRoaXN9KSxpLnNraXBIb29rc3x8dGhpcy5jYWxsSG9vaygib25PdXRnb2luZ1Jlc3BvbnNlIix7Y29ycmVsYXRpb25JZDp0LmNvcnJlbGF0aW9uPy5pZHx8InVua25vd24iLG1ldGhvZDp0Lm1ldGhvZCxkaXJlY3Rpb246Im91dGdvaW5nIixwaGFzZToicmVzcG9uc2UiLHRpbWVzdGFtcDpEYXRlLm5vdygpLGR1cmF0aW9uTXM6RGF0ZS5ub3coKS1hLHBheWxvYWQ6dC5yZXNwb25zZSxlcnJvcjp0LmVycm9yPy50ZXh0fSksdCk6KGNvbnNvbGUubG9nKGBDYW5ub3QgZmluZCBoYW5kbGVyIGZvciBtZXRob2RuYW1lICR7dC5tZXRob2R9YCksdC5lcnJvcj17dGV4dDoiVGhlcmUgaXMgbm8gYXZhaWxhYmxlIG1ldGhvZCBmb3IgdGhpcyBjYWxsIG9uIHRoZSBzZXJ2ZXIgc2lkZSIsZGF0YTp7fX0sdC5jb3JyZWxhdGlvbi5waGFzZT0icmVzcG9uc2UiLHQubG9jYWxEYXRhPW51bGwsdD1Ccy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayh0LHt0eXBlZHJvdXRlcjp0aGlzfSksaS5za2lwSG9va3N8fHRoaXMuY2FsbEhvb2soIm9uT3V0Z29pbmdSZXNwb25zZSIse2NvcnJlbGF0aW9uSWQ6dC5jb3JyZWxhdGlvbj8uaWR8fCJ1bmtub3duIixtZXRob2Q6dC5tZXRob2QsZGlyZWN0aW9uOiJvdXRnb2luZyIscGhhc2U6InJlc3BvbnNlIix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkdXJhdGlvbk1zOkRhdGUubm93KCktYSxwYXlsb2FkOnQucmVzcG9uc2UsZXJyb3I6dC5lcnJvcj8udGV4dH0pLHQpfWVsc2UgcmV0dXJuIHQ/LmNvcnJlbGF0aW9uPy5waGFzZT09PSJyZXNwb25zZSI/KGkuc2tpcEhvb2tzfHx0aGlzLmNhbGxIb29rKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOnQuY29ycmVsYXRpb24/LmlkfHwidW5rbm93biIsbWV0aG9kOnQubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCkscGF5bG9hZDp0LnJlc3BvbnNlLGVycm9yOnQuZXJyb3I/LnRleHR9KSx0aGlzLmZpcmVFdmVudEludGVyZXN0TWFwLmZpbmRJbnRlcmVzdCh0LmNvcnJlbGF0aW9uLmlkKT8uZnVsbGZpbGxJbnRlcmVzdCh0KSxudWxsKTooY29uc29sZS5sb2coInJlY2VpdmVkIHdlaXJkbHkgc2hhcGVkIHJlcXVlc3QiKSxjb25zb2xlLmxvZyh0KSxudWxsKX1hc3luYyBoYW5kbGVTdHJlYW1UeXBlZFJlcXVlc3QodCl7bGV0IHI9YXdhaXQgdGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZmluZChhc3luYyBhPT5hLnN0cmVhbUlkPT09dC5yZXF1ZXN0LnN0cmVhbUlkKTtpZihyKWNvbnNvbGUubG9nKGBzdWNjZXNzOiBmb3VuZCByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSB3aXRoIGlkICR7dC5yZXF1ZXN0LnN0cmVhbUlkfWApO2Vsc2UgcmV0dXJuIGNvbnNvbGUubG9nKGBubyByZWxldmFudCB2aXJ0dWFsIHN0cmVhbSBmb3VuZCBmb3Igc3RyZWFtIHdpdGggaWQgJHt0LnJlcXVlc3Quc3RyZWFtSWR9YCksY29uc29sZS5sb2codGhpcy5yZWdpc3RlcmVkVmlydHVhbFN0cmVhbXMuZ2V0QXJyYXkoKSksdDtyZXR1cm4gYXdhaXQgci5oYW5kbGVTdHJlYW1Ucih0KX19fSk7dmFyIG1qZSxCcyx0Xz1wKCgpPT57bjQoKTttOSgpO21qZT0iIyMjIyMjIyMjIyMjI0NMT1NJTkcgQklUIyMjIyMjIyMjIyMjIyIsQnM9Y2xhc3MgZXtzdGF0aWMgZW5jb2RlUGF5bG9hZEZvck5ldHdvcmsodCxyLGksYT1bXSl7cmV0dXJuIXR8fEk4LmlzQnVmZmVyTGlrZSh0KT90OnQgaW5zdGFuY2VvZiBlPyghdC5zaWRlJiZyLnNlbmRNZXRob2QmJih0LnNpZGU9InJlcXVlc3RpbmciLHQuc2VuZE1ldGhvZD1yLnNlbmRNZXRob2QpLCF0LnNpZGUmJnIudHlwZWRyb3V0ZXImJih0LnNpZGU9InJlc3BvbmRpbmciLHQudHlwZWRyb3V0ZXI9ci50eXBlZHJvdXRlcixyLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5hZGQodCkpLCFpLnJlc3BvbnNlfHxhLmluY2x1ZGVzKCJyZXNwb25zZSIpPyh0LnN0YXJ0S2VlcEFsaXZlTG9vcCgpLHtfaXNWaXJ0dWFsU3RyZWFtOiEwLHN0cmVhbUlkOnQuc3RyZWFtSWR9KTp7X09CTUlUVEVEX1ZJUlRVQUxfU1RSRUFNOiEwLHJlYXNvbjoicGF0aCBpcyB1bmRlciAucmVxdWVzdDogb2JtaXR0ZWQgZm9yIGRlZHVwbGljYXRpb24gcmVhc29ucyBpbiByZXNwb25zZSBjeWNsZS4ifSk6QXJyYXkuaXNBcnJheSh0KT90Lm1hcCgobixvKT0+ZS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhuLHIsaXx8dCxhLmNvbmNhdChTdHJpbmcobykpKSk6dCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0Ij9PYmplY3QuZW50cmllcyh0KS5yZWR1Y2UoKG4sW28sc10pPT57bGV0IGw9YS5jb25jYXQobyk7cmV0dXJuIG5bb109ZS5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhzLHIsaXx8dCxsKSxufSx7fSk6dH1zdGF0aWMgZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKHQscil7aWYoSTguaXNCdWZmZXJMaWtlKHQpfHx0IGluc3RhbmNlb2YgVzYpcmV0dXJuIHQ7aWYodCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0Iil7aWYodCBpbnN0YW5jZW9mIFNldHx8dCBpbnN0YW5jZW9mIE1hcHx8dCBpbnN0YW5jZW9mIERhdGV8fHQgaW5zdGFuY2VvZiBSZWdFeHB8fHQgaW5zdGFuY2VvZiBFcnJvcnx8dCBpbnN0YW5jZW9mIFByb21pc2V8fHR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIHQ7aWYodC5faXNWaXJ0dWFsU3RyZWFtKXtsZXQgaT1uZXcgZTtyZXR1cm4gaS5zdHJlYW1JZD10LnN0cmVhbUlkLCFpLnNpZGUmJnIuc2VuZE1ldGhvZCYmKGkuc2lkZT0icmVxdWVzdGluZyIsaS5zZW5kTWV0aG9kPXIuc2VuZE1ldGhvZCksIWkuc2lkZSYmci50eXBlZHJvdXRlciYmKGkuc2lkZT0icmVzcG9uZGluZyIsaS50eXBlZHJvdXRlcj1yLnR5cGVkcm91dGVyLHIudHlwZWRyb3V0ZXIucmVnaXN0ZXJlZFZpcnR1YWxTdHJlYW1zLmFkZChpKSksaS5zdGFydEtlZXBBbGl2ZUxvb3AoKSxpfWVsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGk9W107Zm9yKGxldCBhIG9mIHQpaS5wdXNoKGUuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKGEscikpO3JldHVybiBpfWVsc2UgcmV0dXJuIE9iamVjdC5rZXlzKHQpLnJlZHVjZSgoaSxhKT0+KGlbYV09ZS5kZWNvZGVQYXlsb2FkRnJvbU5ldHdvcmsodFthXSxyKSxpKSx7fSl9ZWxzZSByZXR1cm4gdH1jb25zdHJ1Y3Rvcigpe3RoaXMuc3RyZWFtSWQ9YTQudW5pKCksdGhpcy5rZWVwQWxpdmU9ITAsdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5PW5ldyB2aS5CYWNrcHJlc3N1cmVkQXJyYXkoMTYpLHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheT1uZXcgdmkuQmFja3ByZXNzdXJlZEFycmF5KDE2KX1hc3luYyB3b3JrT25RdWV1ZSgpe2lmKHRoaXMud29ya2luZ0RlZmVycmVkKXJldHVybiB0aGlzLndvcmtpbmdEZWZlcnJlZC5wcm9taXNlO2lmKHRoaXMud29ya2luZ0RlZmVycmVkPVhlLmRlZmVyKCksdGhpcy5zaWRlPT09InJlcXVlc3RpbmciKXtsZXQgdD0hdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKSxyPSExLGk9ITEsYT1hc3luYygpPT57bGV0IG49YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6YTQudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9LHJlc3BvbnNlOm51bGx9KS5jYXRjaCgoKT0+e2NvbnNvbGUubG9nKCJzdHJlYW0gZW5kZWQgaW1tYXR1cmVseSIpLHRoaXMua2VlcEFsaXZlPSExfSk7biYmbi5yZXNwb25zZSYmKGk9bi5yZXNwb25zZS5iYWNrcHJlc3N1cmUscj1uLnJlc3BvbnNlLm5leHQpfTtmb3IoYXdhaXQgYSgpO3RoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wfHxyOyl7aWYoaSlmb3IoO2k7KWNvbnNvbGUubG9nKCJ3YWl0aW5nIGZvciBmZWVkYmFjayBiZWNhdXNlIG9mIGJhY2twcmVzc3VyZS4uLiIpLGF3YWl0IEN0LmRlbGF5Rm9yKDUwKSxhd2FpdCBhKCk7bGV0IG47dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJihuPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpKTtsZXQgbztvPWF3YWl0IHRoaXMuc2VuZE1ldGhvZCh7bWV0aG9kOiIjI1ZpcnR1YWxTdHJlYW0jIyIscmVxdWVzdDp7c3RyZWFtSWQ6dGhpcy5zdHJlYW1JZCxjeWNsZUlkOmE0LnVuaSgpLGN5Y2xlOiJyZXF1ZXN0IixtYWluUHVycG9zZTpuPyJjaHVuayI6InJlYWQiLGJhY2twcmVzc3VyZTp0LG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsLi4ubj97Y2h1bmtEYXRhOm59Ont9fSxyZXNwb25zZTpudWxsfSkuY2F0Y2goKCk9Pihjb25zb2xlLmxvZygic3RyZWFtIGVuZGVkIGltbWF0dXJlbHkiKSx0aGlzLmtlZXBBbGl2ZT0hMSxudWxsKSksbyYmby5yZXNwb25zZSYmby5yZXNwb25zZS5jaHVua0RhdGEmJnRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5wdXNoKG8ucmVzcG9uc2UuY2h1bmtEYXRhKSxpPW8mJm8ucmVzcG9uc2UmJm8ucmVzcG9uc2UuYmFja3ByZXNzdXJlLHQ9IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCkscj1vJiZvLnJlc3BvbnNlJiZvLnJlc3BvbnNlLm5leHR9fXRoaXMud29ya2luZ0RlZmVycmVkLnJlc29sdmUoKSx0aGlzLndvcmtpbmdEZWZlcnJlZD1udWxsfWFzeW5jIGhhbmRsZVN0cmVhbVRyKHQpe2lmKHQucmVxdWVzdC5rZWVwQWxpdmU9PT0hMCYmdGhpcy5rZWVwQWxpdmU9PT0hMD90aGlzLmxhc3RLZWVwQWxpdmVFdmVudD1EYXRlLm5vdygpOnQucmVxdWVzdC5rZWVwQWxpdmU9PT0hMSYmKHRoaXMua2VlcEFsaXZlPSExKSx0LnJlcXVlc3QubWFpblB1cnBvc2U9PT0ia2VlcEFsaXZlIiYmKHQucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZSxuZXh0OnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5kYXRhLmxlbmd0aD4wLGJhY2twcmVzc3VyZTohdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrU3BhY2VBdmFpbGFibGUoKX0pLHQucmVxdWVzdC5tYWluUHVycG9zZT09PSJmZWVkYmFjayImJih0LnJlc3BvbnNlPXtzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6dC5yZXF1ZXN0LmN5Y2xlSWQsY3ljbGU6InJlc3BvbnNlIixtYWluUHVycG9zZToiZmVlZGJhY2siLG5leHQ6dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAsYmFja3ByZXNzdXJlOiF0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuY2hlY2tTcGFjZUF2YWlsYWJsZSgpfSksdC5yZXF1ZXN0Lm1haW5QdXJwb3NlPT09ImNodW5rIil7aWYodGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LnB1c2godC5yZXF1ZXN0LmNodW5rRGF0YSksdGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LmRhdGEubGVuZ3RoPjAmJnQucmVzcG9uc2UuYmFja3ByZXNzdXJlPT09ITEpe2xldCByPXRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpO3QucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJjaHVuayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MSxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCksY2h1bmtEYXRhOnRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS5zaGlmdCgpfX1lbHNlIHQucmVzcG9uc2U9e3N0cmVhbUlkOnRoaXMuc3RyZWFtSWQsY3ljbGVJZDp0LnJlcXVlc3QuY3ljbGVJZCxjeWNsZToicmVzcG9uc2UiLG1haW5QdXJwb3NlOiJmZWVkYmFjayIsbmV4dDp0aGlzLnNlbmRCYWNrcHJlc3N1cmVkQXJyYXkuZGF0YS5sZW5ndGg+MCxiYWNrcHJlc3N1cmU6IXRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS5jaGVja1NwYWNlQXZhaWxhYmxlKCl9O3QucmVxdWVzdD1udWxsfXJldHVybiB0fWFzeW5jIGNsZWFudXAoKXt0aGlzLnR5cGVkcm91dGVyJiZ0aGlzLnR5cGVkcm91dGVyLnJlZ2lzdGVyZWRWaXJ0dWFsU3RyZWFtcy5yZW1vdmUodGhpcyl9YXN5bmMgc3RhcnRLZWVwQWxpdmVMb29wKCl7aWYodGhpcy5zaWRlPT09InJlc3BvbmRpbmciKXJldHVybjthd2FpdCBDdC5kZWxheUZvcigwKSxjb25zb2xlLmxvZyhgc3RhcnRpbmcga2VlcGFsaXZlIGxvb3Agb24gc2lkZSAke3RoaXMuc2lkZX1gKTtsZXQgdD0wO2Zvcig7dGhpcy5rZWVwQWxpdmU7KWF3YWl0IHRoaXMudHJpZ2dlcktlZXBBbGl2ZSgpLGF3YWl0IEN0LmRlbGF5Rm9yKDFlMyk7YXdhaXQgQ3QuZGVsYXlGb3IoMWUzKSxhd2FpdCB0aGlzLmNsZWFudXAoKSxjb25zb2xlLmxvZyhgY2xlYW5lZCB1cCBmb3Igc3RyZWFtICR7dGhpcy5zdHJlYW1JZH1gKX1hc3luYyB0cmlnZ2VyS2VlcEFsaXZlKCl7aWYodGhpcy5zaWRlPT09InJlcXVlc3RpbmciKXtjb25zb2xlLmxvZygia2VlcGFsaXZlIHNlbnQuIik7bGV0IHQ9YXdhaXQgdGhpcy5zZW5kTWV0aG9kKHttZXRob2Q6IiMjVmlydHVhbFN0cmVhbSMjIixyZXF1ZXN0OntzdHJlYW1JZDp0aGlzLnN0cmVhbUlkLGN5Y2xlSWQ6YTQudW5pKCksY3ljbGU6InJlcXVlc3QiLG1haW5QdXJwb3NlOiJrZWVwQWxpdmUiLGtlZXBBbGl2ZTp0aGlzLmtlZXBBbGl2ZX0scmVzcG9uc2U6bnVsbH0pLmNhdGNoKCgpPT57dGhpcy5rZWVwQWxpdmU9ITF9KTt0JiZ0LnJlc3BvbnNlJiZ0LnJlc3BvbnNlLmtlZXBBbGl2ZT09PSExP3RoaXMua2VlcEFsaXZlPSExOnRoaXMubGFzdEtlZXBBbGl2ZUV2ZW50PURhdGUubm93KCksdCYmdC5yZXNwb25zZSYmdC5yZXNwb25zZS5uZXh0JiZ0aGlzLndvcmtPblF1ZXVlKCl9RGF0ZS5ub3coKS10aGlzLmxhc3RLZWVwQWxpdmVFdmVudD4xZTQmJihjb25zb2xlLmxvZyhgY2xvc2luZyBzdHJlYW0gZm9yICR7dGhpcy5zdHJlYW1JZH1gKSx0aGlzLmtlZXBBbGl2ZT0hMSl9YXN5bmMgc2VuZERhdGEodCl7dGhpcy5zZW5kQmFja3ByZXNzdXJlZEFycmF5LnB1c2godCksdGhpcy53b3JrT25RdWV1ZSgpLGF3YWl0IHRoaXMuc2VuZEJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9yU3BhY2UoKX1hc3luYyBmZXRjaERhdGEoKXtyZXR1cm4gdGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5Lmhhc1NwYWNlLGF3YWl0IHRoaXMucmVjZWl2ZUJhY2twcmVzc3VyZWRBcnJheS53YWl0Rm9ySXRlbXMoKSx0aGlzLnJlY2VpdmVCYWNrcHJlc3N1cmVkQXJyYXkuc2hpZnQoKX1hc3luYyByZWFkRnJvbVdlYnN0cmVhbSh0LHI9ITApe2xldCBpPXQuZ2V0UmVhZGVyKCksYT0hMTtmb3IoOyFhOyl7bGV0e3ZhbHVlOm4sZG9uZTpvfT1hd2FpdCBpLnJlYWQoKTtuJiZhd2FpdCB0aGlzLnNlbmREYXRhKG4pLGE9b31yJiZhd2FpdCB0aGlzLmNsb3NlKCEwKX1hc3luYyB3cml0ZVRvV2Vic3RyZWFtKHQpe2xldCByPXQuZ2V0V3JpdGVyKCk7Zm9yKDt0aGlzLmtlZXBBbGl2ZXx8dGhpcy5yZWNlaXZlQmFja3ByZXNzdXJlZEFycmF5LmNoZWNrSGFzSXRlbXMoKTspe2xldCBpPWF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7aWYoaT09PW1qZSl7ci5yZWxlYXNlTG9jaygpLGF3YWl0IHQuY2xvc2UoKTticmVha31hd2FpdCByLndyaXRlKGkpfX1hc3luYyBjbG9zZSh0PSExKXt0JiZ0aGlzLnNlbmREYXRhKG1qZSksdGhpcy5rZWVwQWxpdmU9ITF9fX0pO3ZhciBlZWUsdGVlPXAoKCk9PnttOSgpO240KCk7ZWVlPWNsYXNze2NvbnN0cnVjdG9yKHQpe2lmKHQucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlciYmIXQudHlwZWRSb3V0ZXJSZWYpdGhyb3cgbmV3IEVycm9yKCJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgdHlwZWRyb3V0ZXIgd2hlbiB1c2luZyBwb3N0bWV0aG9kIHdpdGggdHlwZWRyb3V0ZXIiKTt0aGlzLm9wdGlvbnM9dH1hc3luYyBwb3N0KHQpe2xldCByO3RoaXMub3B0aW9ucy50eXBlZFJvdXRlclJlZiYmKHI9YXdhaXQgdGhpcy5vcHRpb25zLnR5cGVkUm91dGVyUmVmLmZpcmVFdmVudEludGVyZXN0TWFwLmFkZEludGVyZXN0KHQuY29ycmVsYXRpb24uaWQsdCkpO2xldCBhPWF3YWl0KHRoaXMub3B0aW9ucy5wb3N0TWV0aG9kfHx0aGlzLm9wdGlvbnMucG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcikodCksbjtyZXR1cm4gcj9uPWF3YWl0IHIuaW50ZXJlc3RGdWxsZmlsbGVkOmE/bj1hOm49dCxufX19KTtmdW5jdGlvbiBnamUoZSx0KXt0cnl7VzYuZ2xvYmFsSG9va3NbZV0/Lih0KX1jYXRjaChyKXtjb25zb2xlLmVycm9yKGBUeXBlZFJlcXVlc3QgaG9vayBlcnJvciAoJHtlfSk6YCxyKX19dmFyIGRQcixnOSxLSz1wKCgpPT57bjQoKTt0XygpO2Y5KCk7bTkoKTt0ZWUoKTtkUHI9bmV3IGg5LldlYnJlcXVlc3RDbGllbnQ7Zzk9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnNraXBIb29rcz0hMSx0eXBlb2YgdD09InN0cmluZyI/dGhpcy51cmxFbmRQb2ludD10OnRoaXMudHlwZWRUYXJnZXQ9dCx0aGlzLm1ldGhvZD1yfWFzeW5jIGZpcmUodCxyPSExKXtsZXQgaT1EYXRlLm5vdygpLGE9e21ldGhvZDp0aGlzLm1ldGhvZCxyZXF1ZXN0OnQscmVzcG9uc2U6bnVsbCxjb3JyZWxhdGlvbjp7aWQ6YTQudW5pKCkscGhhc2U6InJlcXVlc3QifX07YT1Ccy5lbmNvZGVQYXlsb2FkRm9yTmV0d29yayhhLHtzZW5kTWV0aG9kOm89PnRoaXMucG9zdFRyT2JqZWN0KG8pfSksdGhpcy5za2lwSG9va3N8fGdqZSgib25PdXRnb2luZ1JlcXVlc3QiLHtjb3JyZWxhdGlvbklkOmEuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoib3V0Z29pbmciLHBoYXNlOiJyZXF1ZXN0Iix0aW1lc3RhbXA6aSxwYXlsb2FkOnR9KTtsZXQgbjtyZXR1cm4gbj1hd2FpdCB0aGlzLnBvc3RUck9iamVjdChhLHIpLG49QnMuZGVjb2RlUGF5bG9hZEZyb21OZXR3b3JrKG4se3NlbmRNZXRob2Q6bz0+dGhpcy5wb3N0VHJPYmplY3Qobyl9KSx0aGlzLnNraXBIb29rc3x8Z2plKCJvbkluY29taW5nUmVzcG9uc2UiLHtjb3JyZWxhdGlvbklkOmEuY29ycmVsYXRpb24uaWQsbWV0aG9kOnRoaXMubWV0aG9kLGRpcmVjdGlvbjoiaW5jb21pbmciLHBoYXNlOiJyZXNwb25zZSIsdGltZXN0YW1wOkRhdGUubm93KCksZHVyYXRpb25NczpEYXRlLm5vdygpLWkscGF5bG9hZDpuPy5yZXNwb25zZSxlcnJvcjpuPy5lcnJvcj8udGV4dH0pLG4ucmVzcG9uc2V9YXN5bmMgcG9zdFRyT2JqZWN0KHQscj0hMSl7bGV0IGk7aWYodGhpcy51cmxFbmRQb2ludD9pPWF3YWl0IGRQci5wb3N0SnNvbih0aGlzLnVybEVuZFBvaW50LHQscj97Y2FjaGVTdHJhdGVneToiY2FjaGUtZmlyc3QifTp7fSk6aT1hd2FpdCB0aGlzLnR5cGVkVGFyZ2V0LnBvc3QodCksaS5lcnJvcil7aWYoY29uc29sZS5lcnJvcihgbWV0aG9kOiA+PiR7dGhpcy5tZXRob2R9PDwgZ290IGFuIEVSUk9SOiAiJHtpLmVycm9yLnRleHR9IiB3aXRoIGRhdGEgJHtKU09OLnN0cmluZ2lmeShpLmVycm9yLmRhdGEsbnVsbCwyKX1gKSwhaS5yZXRyeSl0aHJvdyBuZXcgSmwoaS5lcnJvci50ZXh0LGkuZXJyb3IuZGF0YSk7cmV0dXJuIG51bGx9cmV0dXJuIGkucmV0cnkmJihjb25zb2xlLmxvZyhgc2VydmVyIHJlcXVlc3RlZCByZXRyeSBmb3IgdGhlIGZvbGxvd2luZyByZWFzb246ICR7aS5yZXRyeS5yZWFzb259YCksYXdhaXQgQ3QuZGVsYXlGb3IoaS5yZXRyeS53YWl0Rm9yTXMpLGk9YXdhaXQgdGhpcy5wb3N0VHJPYmplY3QodCxyKSksaX19fSk7dmFyIFphPXt9O0ZlKFphLHtUeXBlZEhhbmRsZXI6KCk9PlFLLFR5cGVkUmVxdWVzdDooKT0+ZzksVHlwZWRSZXNwb25zZUVycm9yOigpPT5KbCxUeXBlZFJvdXRlcjooKT0+VzYsVHlwZWRUYXJnZXQ6KCk9PmVlZSxWaXJ0dWFsU3RyZWFtOigpPT5Cc30pO3ZhciBiOT1wKCgpPT57S0soKTtKSygpO205KCk7ZjkoKTt0ZWUoKTt0XygpfSk7ZnVuY3Rpb24gYmplKGUpe3JldHVybiBlJiZ0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIEhzKGUsdCl7cmV0dXJuIGV8fChlPTApLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHIodCl9LGUpfSl9ZnVuY3Rpb24geWplKGUsdCl7cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoodC1lKzEpK2UpfWZ1bmN0aW9uIEtsKCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKX1mdW5jdGlvbiBlYygpe3ZhciBlPURhdGUubm93KCkqMWUzO3JldHVybiBlPD1yZWUmJihlPXJlZSsxKSxyZWU9ZSxlfWZ1bmN0aW9uIHdqZSgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmdHlwZW9mIG5hdmlnYXRvci5sb2NrczwidSImJnR5cGVvZiBuYXZpZ2F0b3IubG9ja3MucmVxdWVzdD09ImZ1bmN0aW9uIn12YXIgdmplLHhqZSxWbixyZWUsbzQ9cCgoKT0+e3ZqZT1Qcm9taXNlLnJlc29sdmUoITEpLHhqZT1Qcm9taXNlLnJlc29sdmUoITApLFZuPVByb21pc2UucmVzb2x2ZSgpO3JlZT0wfSk7ZnVuY3Rpb24gaFByKGUpe3ZhciB0PXt0aW1lOmVjKCksbWVzc2FnZXNDYWxsYmFjazpudWxsLGJjOm5ldyBCcm9hZGNhc3RDaGFubmVsKGUpLHN1YkZuczpbXX07cmV0dXJuIHQuYmMub25tZXNzYWdlPWZ1bmN0aW9uKHIpe3QubWVzc2FnZXNDYWxsYmFjayYmdC5tZXNzYWdlc0NhbGxiYWNrKHIuZGF0YSl9LHR9ZnVuY3Rpb24gZlByKGUpe2UuYmMuY2xvc2UoKSxlLnN1YkZucz1bXX1mdW5jdGlvbiBtUHIoZSx0KXt0cnl7cmV0dXJuIGUuYmMucG9zdE1lc3NhZ2UodCwhMSksVm59Y2F0Y2gocil7cmV0dXJuIFByb21pc2UucmVqZWN0KHIpfX1mdW5jdGlvbiBnUHIoZSx0KXtlLm1lc3NhZ2VzQ2FsbGJhY2s9dH1mdW5jdGlvbiBiUHIoKXtpZih0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuRGVubyYmZ2xvYmFsVGhpcy5EZW5vLmFyZ3MpcmV0dXJuITA7aWYoKHR5cGVvZiB3aW5kb3c8InUifHx0eXBlb2Ygc2VsZjwidSIpJiZ0eXBlb2YgQnJvYWRjYXN0Q2hhbm5lbD09ImZ1bmN0aW9uIil7aWYoQnJvYWRjYXN0Q2hhbm5lbC5fcHVia2V5KXRocm93IG5ldyBFcnJvcigiQnJvYWRjYXN0Q2hhbm5lbDogRG8gbm90IG92ZXJ3cml0ZSB3aW5kb3cuQnJvYWRjYXN0Q2hhbm5lbCB3aXRoIHRoaXMgbW9kdWxlLCB0aGlzIGlzIG5vdCBhIHBvbHlmaWxsIik7cmV0dXJuITB9ZWxzZSByZXR1cm4hMX1mdW5jdGlvbiB2UHIoKXtyZXR1cm4gMTUwfXZhciB1UHIscFByLE1qZSxramU9cCgoKT0+e280KCk7dVByPWVjLHBQcj0ibmF0aXZlIjtNamU9e2NyZWF0ZTpoUHIsY2xvc2U6ZlByLG9uTWVzc2FnZTpnUHIscG9zdE1lc3NhZ2U6bVByLGNhbkJlVXNlZDpiUHIsdHlwZTpwUHIsYXZlcmFnZVJlc3BvbnNlVGltZTp2UHIsbWljcm9TZWNvbmRzOnVQcn19KTtmdW5jdGlvbiB4UHIoZSl7bGV0IHQ9aWVlKCktZS50dGwscj1lLm1hcFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDs7KXtsZXQgaT1yLm5leHQoKS52YWx1ZTtpZighaSlicmVhaztsZXQgYT1pWzBdO2lmKGlbMV08dCllLm1hcC5kZWxldGUoYSk7ZWxzZSBicmVha319ZnVuY3Rpb24gaWVlKCl7cmV0dXJuIERhdGUubm93KCl9dmFyIFo4LGFlZT1wKCgpPT57Wjg9Y2xhc3N7dHRsO21hcD1uZXcgTWFwO190bz0hMTtjb25zdHJ1Y3Rvcih0KXt0aGlzLnR0bD10fWhhcyh0KXtsZXQgcj10aGlzLm1hcC5nZXQodCk7cmV0dXJuIHR5cGVvZiByPiJ1Ij8hMTpyPGllZSgpLXRoaXMudHRsPyh0aGlzLm1hcC5kZWxldGUodCksITEpOiEwfWFkZCh0KXt0aGlzLm1hcC5kZWxldGUodCksdGhpcy5tYXAuc2V0KHQsaWVlKCkpLHRoaXMuX3RvfHwodGhpcy5fdG89ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuX3RvPSExLHhQcih0aGlzKX0sMCkpfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19fSk7ZnVuY3Rpb24gRzYoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXZvaWQgMD9hcmd1bWVudHNbMF06e30sdD1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUpKTtyZXR1cm4gdHlwZW9mIHQud2ViV29ya2VyU3VwcG9ydD4idSImJih0LndlYldvcmtlclN1cHBvcnQ9ITApLHQuaWRifHwodC5pZGI9e30pLHQuaWRiLnR0bHx8KHQuaWRiLnR0bD0xZTMqNDUpLHQuaWRiLmZhbGxiYWNrSW50ZXJ2YWx8fCh0LmlkYi5mYWxsYmFja0ludGVydmFsPTE1MCksZS5pZGImJnR5cGVvZiBlLmlkYi5vbmNsb3NlPT0iZnVuY3Rpb24iJiYodC5pZGIub25jbG9zZT1lLmlkYi5vbmNsb3NlKSx0LmxvY2Fsc3RvcmFnZXx8KHQubG9jYWxzdG9yYWdlPXt9KSx0LmxvY2Fsc3RvcmFnZS5yZW1vdmVUaW1lb3V0fHwodC5sb2NhbHN0b3JhZ2UucmVtb3ZlVGltZW91dD0xZTMqNjApLGUubWV0aG9kcyYmKHQubWV0aG9kcz1lLm1ldGhvZHMpLHQubm9kZXx8KHQubm9kZT17fSksdC5ub2RlLnR0bHx8KHQubm9kZS50dGw9MWUzKjYwKjIpLHQubm9kZS5tYXhQYXJhbGxlbFdyaXRlc3x8KHQubm9kZS5tYXhQYXJhbGxlbFdyaXRlcz0yMDQ4KSx0eXBlb2YgdC5ub2RlLnVzZUZhc3RQYXRoPiJ1IiYmKHQubm9kZS51c2VGYXN0UGF0aD0hMCksdH12YXIgcl89cCgoKT0+e30pO2Z1bmN0aW9uIFNqZSgpe2lmKHR5cGVvZiBpbmRleGVkREI8InUiKXJldHVybiBpbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdzwidSIpe2lmKHR5cGVvZiB3aW5kb3cubW96SW5kZXhlZERCPCJ1IilyZXR1cm4gd2luZG93Lm1vekluZGV4ZWREQjtpZih0eXBlb2Ygd2luZG93LndlYmtpdEluZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy53ZWJraXRJbmRleGVkREI7aWYodHlwZW9mIHdpbmRvdy5tc0luZGV4ZWREQjwidSIpcmV0dXJuIHdpbmRvdy5tc0luZGV4ZWREQn1yZXR1cm4hMX1mdW5jdGlvbiBpXyhlKXtlLmNvbW1pdCYmZS5jb21taXQoKX1mdW5jdGlvbiBrUHIoZSl7dmFyIHQ9U2plKCkscj13UHIrZSxpPXQub3BlbihyKTtyZXR1cm4gaS5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24oYSl7dmFyIG49YS50YXJnZXQucmVzdWx0O24uY3JlYXRlT2JqZWN0U3RvcmUoYjIse2tleVBhdGg6ImlkIixhdXRvSW5jcmVtZW50OiEwfSl9LG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEsbil7aS5vbmVycm9yPWZ1bmN0aW9uKG8pe3JldHVybiBuKG8pfSxpLm9uc3VjY2Vzcz1mdW5jdGlvbigpe2EoaS5yZXN1bHQpfX0pfWZ1bmN0aW9uIFNQcihlLHQscil7dmFyIGk9RGF0ZS5ub3coKSxhPXt1dWlkOnQsdGltZTppLGRhdGE6cn0sbj1lLnRyYW5zYWN0aW9uKFtiMl0sInJlYWR3cml0ZSIsdjkpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvLHMpe24ub25jb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiBvKCl9LG4ub25lcnJvcj1mdW5jdGlvbihjKXtyZXR1cm4gcyhjKX07dmFyIGw9bi5vYmplY3RTdG9yZShiMik7bC5hZGQoYSksaV8obil9KX1mdW5jdGlvbiBMRWkoZSl7dmFyIHQ9ZS50cmFuc2FjdGlvbihiMiwicmVhZG9ubHkiLHY5KSxyPXQub2JqZWN0U3RvcmUoYjIpLGk9W107cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGEpe3Iub3BlbkN1cnNvcigpLm9uc3VjY2Vzcz1mdW5jdGlvbihuKXt2YXIgbz1uLnRhcmdldC5yZXN1bHQ7bz8oaS5wdXNoKG8udmFsdWUpLG8uY29udGludWUoKSk6KGlfKHQpLGEoaSkpfX0pfWZ1bmN0aW9uIHpQcihlLHQpe3ZhciByPWUudHJhbnNhY3Rpb24oYjIsInJlYWRvbmx5Iix2OSksaT1yLm9iamVjdFN0b3JlKGIyKSxhPVtdLG49SURCS2V5UmFuZ2UuYm91bmQodCsxLDEvMCk7aWYoaS5nZXRBbGwpe3ZhciBvPWkuZ2V0QWxsKG4pO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihsLGMpe28ub25lcnJvcj1mdW5jdGlvbih1KXtyZXR1cm4gYyh1KX0sby5vbnN1Y2Nlc3M9ZnVuY3Rpb24odSl7bCh1LnRhcmdldC5yZXN1bHQpfX0pfWZ1bmN0aW9uIHMoKXt0cnl7cmV0dXJuIG49SURCS2V5UmFuZ2UuYm91bmQodCsxLDEvMCksaS5vcGVuQ3Vyc29yKG4pfWNhdGNoe3JldHVybiBpLm9wZW5DdXJzb3IoKX19cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsYyl7dmFyIHU9cygpO3Uub25lcnJvcj1mdW5jdGlvbihkKXtyZXR1cm4gYyhkKX0sdS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oZCl7dmFyIGg9ZC50YXJnZXQucmVzdWx0O2g/aC52YWx1ZS5pZDx0KzE/aC5jb250aW51ZSh0KzEpOihhLnB1c2goaC52YWx1ZSksaC5jb250aW51ZSgpKTooaV8ociksbChhKSl9fSl9ZnVuY3Rpb24gQ1ByKGUsdCl7aWYoZS5jbG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7dmFyIHI9ZS5kYi50cmFuc2FjdGlvbihiMiwicmVhZHdyaXRlIix2OSksaT1yLm9iamVjdFN0b3JlKGIyKTtyZXR1cm4gUHJvbWlzZS5hbGwodC5tYXAoZnVuY3Rpb24oYSl7dmFyIG49aS5kZWxldGUoYSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pe24ub25zdWNjZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG8oKX19KX0pKX1mdW5jdGlvbiBUUHIoZSx0KXt2YXIgcj1EYXRlLm5vdygpLXQsaT1lLnRyYW5zYWN0aW9uKGIyLCJyZWFkb25seSIsdjkpLGE9aS5vYmplY3RTdG9yZShiMiksbj1bXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyl7YS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKHMpe3ZhciBsPXMudGFyZ2V0LnJlc3VsdDtpZihsKXt2YXIgYz1sLnZhbHVlO2MudGltZTxyPyhuLnB1c2goYyksbC5jb250aW51ZSgpKTooaV8oaSksbyhuKSl9ZWxzZSBvKG4pfX0pfWZ1bmN0aW9uIF9QcihlKXtyZXR1cm4gVFByKGUuZGIsZS5vcHRpb25zLmlkYi50dGwpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIENQcihlLHQubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmlkfSkpfSl9ZnVuY3Rpb24gTFByKGUsdCl7cmV0dXJuIHQ9RzYodCksa1ByKGUpLnRoZW4oZnVuY3Rpb24ocil7dmFyIGk9e2Nsb3NlZDohMSxsYXN0Q3Vyc29ySWQ6MCxjaGFubmVsTmFtZTplLG9wdGlvbnM6dCx1dWlkOktsKCksZU1JczpuZXcgWjgodC5pZGIudHRsKjIpLHdyaXRlQmxvY2tQcm9taXNlOlZuLG1lc3NhZ2VzQ2FsbGJhY2s6bnVsbCxyZWFkUXVldWVQcm9taXNlczpbXSxkYjpyfTtyZXR1cm4gci5vbmNsb3NlPWZ1bmN0aW9uKCl7aS5jbG9zZWQ9ITAsdC5pZGIub25jbG9zZSYmdC5pZGIub25jbG9zZSgpfSx6amUoaSksaX0pfWZ1bmN0aW9uIHpqZShlKXtlLmNsb3NlZHx8Q2plKGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gSHMoZS5vcHRpb25zLmlkYi5mYWxsYmFja0ludGVydmFsKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gemplKGUpfSl9ZnVuY3Rpb24gQVByKGUsdCl7cmV0dXJuIShlLnV1aWQ9PT10LnV1aWR8fHQuZU1Jcy5oYXMoZS5pZCl8fGUuZGF0YS50aW1lPHQubWVzc2FnZXNDYWxsYmFja1RpbWUpfWZ1bmN0aW9uIENqZShlKXtyZXR1cm4gZS5jbG9zZWQ/Vm46ZS5tZXNzYWdlc0NhbGxiYWNrP3pQcihlLmRiLGUubGFzdEN1cnNvcklkKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciByPXQuZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiEhaX0pLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD5lLmxhc3RDdXJzb3JJZCYmKGUubGFzdEN1cnNvcklkPWkuaWQpLGl9KS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIEFQcihpLGUpfSkuc29ydChmdW5jdGlvbihpLGEpe3JldHVybiBpLnRpbWUtYS50aW1lfSk7cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihpKXtlLm1lc3NhZ2VzQ2FsbGJhY2smJihlLmVNSXMuYWRkKGkuaWQpLGUubWVzc2FnZXNDYWxsYmFjayhpLmRhdGEpKX0pLFZufSk6Vm59ZnVuY3Rpb24gRFByKGUpe2UuY2xvc2VkPSEwLGUuZGIuY2xvc2UoKX1mdW5jdGlvbiBFUHIoZSx0KXtyZXR1cm4gZS53cml0ZUJsb2NrUHJvbWlzZT1lLndyaXRlQmxvY2tQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gU1ByKGUuZGIsZS51dWlkLHQpfSkudGhlbihmdW5jdGlvbigpe3lqZSgwLDEwKT09PTAmJl9QcihlKX0pLGUud3JpdGVCbG9ja1Byb21pc2V9ZnVuY3Rpb24gJFByKGUsdCxyKXtlLm1lc3NhZ2VzQ2FsbGJhY2tUaW1lPXIsZS5tZXNzYWdlc0NhbGxiYWNrPXQsQ2plKGUpfWZ1bmN0aW9uIElQcigpe3JldHVybiEhU2plKCl9ZnVuY3Rpb24gUFByKGUpe3JldHVybiBlLmlkYi5mYWxsYmFja0ludGVydmFsKjJ9dmFyIHlQcix3UHIsYjIsdjksTVByLFRqZSxfamU9cCgoKT0+e280KCk7YWVlKCk7cl8oKTt5UHI9ZWMsd1ByPSJwdWJrZXkuYnJvYWRjYXN0LWNoYW5uZWwtMC0iLGIyPSJtZXNzYWdlcyIsdjk9e2R1cmFiaWxpdHk6InJlbGF4ZWQifSxNUHI9ImlkYiI7VGplPXtjcmVhdGU6TFByLGNsb3NlOkRQcixvbk1lc3NhZ2U6JFByLHBvc3RNZXNzYWdlOkVQcixjYW5CZVVzZWQ6SVByLHR5cGU6TVByLGF2ZXJhZ2VSZXNwb25zZVRpbWU6UFByLG1pY3JvU2Vjb25kczp5UHJ9fSk7ZnVuY3Rpb24gTGplKCl7dmFyIGU7aWYodHlwZW9mIHdpbmRvdz4idSIpcmV0dXJuIG51bGw7dHJ5e2U9d2luZG93LmxvY2FsU3RvcmFnZSxlPXdpbmRvd1siaWU4LWV2ZW50bGlzdGVuZXIvc3RvcmFnZSJdfHx3aW5kb3cubG9jYWxTdG9yYWdlfWNhdGNoe31yZXR1cm4gZX1mdW5jdGlvbiBBamUoZSl7cmV0dXJuIEZQcitlfWZ1bmN0aW9uIFJQcihlLHQpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyKXtIcygpLnRoZW4oZnVuY3Rpb24oKXt2YXIgaT1BamUoZS5jaGFubmVsTmFtZSksYT17dG9rZW46S2woKSx0aW1lOkRhdGUubm93KCksZGF0YTp0LHV1aWQ6ZS51dWlkfSxuPUpTT04uc3RyaW5naWZ5KGEpO0xqZSgpLnNldEl0ZW0oaSxuKTt2YXIgbz1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtvLmluaXRFdmVudCgic3RvcmFnZSIsITAsITApLG8ua2V5PWksby5uZXdWYWx1ZT1uLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG8pLHIoKX0pfSl9ZnVuY3Rpb24gQlByKGUsdCl7dmFyIHI9QWplKGUpLGk9ZnVuY3Rpb24obil7bi5rZXk9PT1yJiZ0KEpTT04ucGFyc2Uobi5uZXdWYWx1ZSkpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInN0b3JhZ2UiLGkpLGl9ZnVuY3Rpb24gSFByKGUpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzdG9yYWdlIixlKX1mdW5jdGlvbiBxUHIoZSx0KXtpZih0PUc2KHQpLCFEamUoKSl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWw6IGxvY2Fsc3RvcmFnZSBjYW5ub3QgYmUgdXNlZCIpO3ZhciByPUtsKCksaT1uZXcgWjgodC5sb2NhbHN0b3JhZ2UucmVtb3ZlVGltZW91dCksYT17Y2hhbm5lbE5hbWU6ZSx1dWlkOnIsZU1JczppfTtyZXR1cm4gYS5saXN0ZW5lcj1CUHIoZSxmdW5jdGlvbihuKXthLm1lc3NhZ2VzQ2FsbGJhY2smJm4udXVpZCE9PXImJighbi50b2tlbnx8aS5oYXMobi50b2tlbil8fG4uZGF0YS50aW1lJiZuLmRhdGEudGltZTxhLm1lc3NhZ2VzQ2FsbGJhY2tUaW1lfHwoaS5hZGQobi50b2tlbiksYS5tZXNzYWdlc0NhbGxiYWNrKG4uZGF0YSkpKX0pLGF9ZnVuY3Rpb24galByKGUpe0hQcihlLmxpc3RlbmVyKX1mdW5jdGlvbiBWUHIoZSx0LHIpe2UubWVzc2FnZXNDYWxsYmFja1RpbWU9cixlLm1lc3NhZ2VzQ2FsbGJhY2s9dH1mdW5jdGlvbiBEamUoKXt2YXIgZT1MamUoKTtpZighZSlyZXR1cm4hMTt0cnl7dmFyIHQ9Il9fYnJvYWRjYXN0Y2hhbm5lbF9jaGVjayI7ZS5zZXRJdGVtKHQsIndvcmtzIiksZS5yZW1vdmVJdGVtKHQpfWNhdGNoe3JldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIFVQcigpe3ZhciBlPTEyMCx0PW5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtyZXR1cm4gdC5pbmNsdWRlcygic2FmYXJpIikmJiF0LmluY2x1ZGVzKCJjaHJvbWUiKT9lKjI6ZX12YXIgTlByLEZQcixPUHIsRWplLCRqZT1wKCgpPT57YWVlKCk7cl8oKTtvNCgpO05Qcj1lYyxGUHI9InB1YmtleS5icm9hZGNhc3RDaGFubmVsLSIsT1ByPSJsb2NhbHN0b3JhZ2UiO0VqZT17Y3JlYXRlOnFQcixjbG9zZTpqUHIsb25NZXNzYWdlOlZQcixwb3N0TWVzc2FnZTpSUHIsY2FuQmVVc2VkOkRqZSx0eXBlOk9QcixhdmVyYWdlUmVzcG9uc2VUaW1lOlVQcixtaWNyb1NlY29uZHM6TlByfX0pO2Z1bmN0aW9uIEdQcihlKXt2YXIgdD17dGltZTpJamUoKSxuYW1lOmUsbWVzc2FnZXNDYWxsYmFjazpudWxsfTtyZXR1cm4gbmVlLmFkZCh0KSx0fWZ1bmN0aW9uIFlQcihlKXtuZWUuZGVsZXRlKGUpfWZ1bmN0aW9uIFpQcihlLHQpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBpPUFycmF5LmZyb20obmVlKTtpLmZvckVhY2goZnVuY3Rpb24oYSl7YS5uYW1lPT09ZS5uYW1lJiZhIT09ZSYmYS5tZXNzYWdlc0NhbGxiYWNrJiZhLnRpbWU8dC50aW1lJiZhLm1lc3NhZ2VzQ2FsbGJhY2sodCl9KSxyKCl9LFBqZSl9KX1mdW5jdGlvbiBYUHIoZSx0KXtlLm1lc3NhZ2VzQ2FsbGJhY2s9dH1mdW5jdGlvbiBRUHIoKXtyZXR1cm4hMH1mdW5jdGlvbiBKUHIoKXtyZXR1cm4gUGplfXZhciBJamUsV1ByLG5lZSxQamUsTmplLEZqZT1wKCgpPT57bzQoKTtJamU9ZWMsV1ByPSJzaW11bGF0ZSIsbmVlPW5ldyBTZXQ7UGplPTU7TmplPXtjcmVhdGU6R1ByLGNsb3NlOllQcixvbk1lc3NhZ2U6WFByLHBvc3RNZXNzYWdlOlpQcixjYW5CZVVzZWQ6UVByLHR5cGU6V1ByLGF2ZXJhZ2VSZXNwb25zZVRpbWU6SlByLG1pY3JvU2Vjb25kczpJamV9fSk7ZnVuY3Rpb24gb2VlKGUpe3ZhciB0PVtdLmNvbmNhdChlLm1ldGhvZHMsT2plKS5maWx0ZXIoQm9vbGVhbik7aWYoZS50eXBlKXtpZihlLnR5cGU9PT0ic2ltdWxhdGUiKXJldHVybiBOamU7dmFyIHI9dC5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLnR5cGU9PT1lLnR5cGV9KTtpZihyKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigibWV0aG9kLXR5cGUgIitlLnR5cGUrIiBub3QgZm91bmQiKX1lLndlYldvcmtlclN1cHBvcnR8fCh0PXQuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLnR5cGUhPT0iaWRiIn0pKTt2YXIgaT10LmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2FuQmVVc2VkKCl9KTtpZihpKXJldHVybiBpO3Rocm93IG5ldyBFcnJvcigiTm8gdXNhYmxlIG1ldGhvZCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KE9qZS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEudHlwZX0pKSl9dmFyIE9qZSxSamU9cCgoKT0+e2tqZSgpO19qZSgpOyRqZSgpO0ZqZSgpO09qZT1bTWplLFRqZSxFamVdfSk7ZnVuY3Rpb24gZU5yKGUpe2U9RzYoZSk7dmFyIHQ9b2VlKGUpO3JldHVybiB0LnR5cGU9PT0ibm9kZSI/dC5jbGVhck5vZGVGb2xkZXIoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KTp2amV9ZnVuY3Rpb24gdE5yKGUpe3NlZT1lfWZ1bmN0aW9uIEJqZShlLHQscil7dmFyIGk9ZS5tZXRob2QubWljcm9TZWNvbmRzKCksYT17dGltZTppLHR5cGU6dCxkYXRhOnJ9LG49ZS5fcHJlcFA/ZS5fcHJlcFA6Vm47cmV0dXJuIG4udGhlbihmdW5jdGlvbigpe3ZhciBvPWUubWV0aG9kLnBvc3RNZXNzYWdlKGUuX3N0YXRlLGEpO3JldHVybiBlLl91TVAuYWRkKG8pLG8uY2F0Y2goKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3VNUC5kZWxldGUobyl9KSxvfSl9ZnVuY3Rpb24gck5yKGUpe3ZhciB0PWUubWV0aG9kLmNyZWF0ZShlLm5hbWUsZS5vcHRpb25zKTtiamUodCk/KGUuX3ByZXBQPXQsdC50aGVuKGZ1bmN0aW9uKHIpe2UuX3N0YXRlPXJ9KSk6ZS5fc3RhdGU9dH1mdW5jdGlvbiBIamUoZSl7cmV0dXJuIGUuX2FkZEVMLm1lc3NhZ2UubGVuZ3RoPjB8fGUuX2FkZEVMLmludGVybmFsLmxlbmd0aD4wfWZ1bmN0aW9uIHFqZShlLHQscil7ZS5fYWRkRUxbdF0ucHVzaChyKSxpTnIoZSl9ZnVuY3Rpb24gamplKGUsdCxyKXtlLl9hZGRFTFt0XT1lLl9hZGRFTFt0XS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkhPT1yfSksYU5yKGUpfWZ1bmN0aW9uIGlOcihlKXtpZighZS5faUwmJkhqZShlKSl7dmFyIHQ9ZnVuY3Rpb24oYSl7ZS5fYWRkRUxbYS50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2EudGltZT49bi50aW1lJiZuLmZuKGEuZGF0YSl9KX0scj1lLm1ldGhvZC5taWNyb1NlY29uZHMoKTtlLl9wcmVwUD9lLl9wcmVwUC50aGVuKGZ1bmN0aW9uKCl7ZS5faUw9ITAsZS5tZXRob2Qub25NZXNzYWdlKGUuX3N0YXRlLHQscil9KTooZS5faUw9ITAsZS5tZXRob2Qub25NZXNzYWdlKGUuX3N0YXRlLHQscikpfX1mdW5jdGlvbiBhTnIoZSl7aWYoZS5faUwmJiFIamUoZSkpe2UuX2lMPSExO3ZhciB0PWUubWV0aG9kLm1pY3JvU2Vjb25kcygpO2UubWV0aG9kLm9uTWVzc2FnZShlLl9zdGF0ZSxudWxsLHQpfX12YXIgbGVlLEtQcixZNixzZWUsVmplPXAoKCk9PntvNCgpO1JqZSgpO3JfKCk7bGVlPW5ldyBTZXQsS1ByPTAsWTY9ZnVuY3Rpb24odCxyKXt0aGlzLmlkPUtQcisrLGxlZS5hZGQodGhpcyksdGhpcy5uYW1lPXQsc2VlJiYocj1zZWUpLHRoaXMub3B0aW9ucz1HNihyKSx0aGlzLm1ldGhvZD1vZWUodGhpcy5vcHRpb25zKSx0aGlzLl9pTD0hMSx0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUw9e21lc3NhZ2U6W10saW50ZXJuYWw6W119LHRoaXMuX3VNUD1uZXcgU2V0LHRoaXMuX2JlZkM9W10sdGhpcy5fcHJlcFA9bnVsbCxyTnIodGhpcyl9O1k2Ll9wdWJrZXk9ITA7WTYucHJvdG90eXBlPXtwb3N0TWVzc2FnZTpmdW5jdGlvbih0KXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWwucG9zdE1lc3NhZ2UoKTogQ2Fubm90IHBvc3QgbWVzc2FnZSBhZnRlciBjaGFubmVsIGhhcyBjbG9zZWQgIitKU09OLnN0cmluZ2lmeSh0KSk7cmV0dXJuIEJqZSh0aGlzLCJtZXNzYWdlIix0KX0scG9zdEludGVybmFsOmZ1bmN0aW9uKHQpe3JldHVybiBCamUodGhpcywiaW50ZXJuYWwiLHQpfSxzZXQgb25tZXNzYWdlKGUpe3ZhciB0PXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLHI9e3RpbWU6dCxmbjplfTtqamUodGhpcywibWVzc2FnZSIsdGhpcy5fb25NTCksZSYmdHlwZW9mIGU9PSJmdW5jdGlvbiI/KHRoaXMuX29uTUw9cixxamUodGhpcywibWVzc2FnZSIscikpOnRoaXMuX29uTUw9bnVsbH0sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbih0LHIpe3ZhciBpPXRoaXMubWV0aG9kLm1pY3JvU2Vjb25kcygpLGE9e3RpbWU6aSxmbjpyfTtxamUodGhpcyx0LGEpfSxyZW1vdmVFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcy5fYWRkRUxbdF0uZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5mbj09PXJ9KTtqamUodGhpcyx0LGkpfSxjbG9zZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuY2xvc2VkKXtsZWUuZGVsZXRlKHRoaXMpLHRoaXMuY2xvc2VkPSEwO3ZhciByPXRoaXMuX3ByZXBQP3RoaXMuX3ByZXBQOlZuO3JldHVybiB0aGlzLl9vbk1MPW51bGwsdGhpcy5fYWRkRUwubWVzc2FnZT1bXSxyLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh0Ll91TVApKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5hbGwodC5fYmVmQy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIGkoKX0pKX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5tZXRob2QuY2xvc2UodC5fc3RhdGUpfSl9fSxnZXQgdHlwZSgpe3JldHVybiB0aGlzLm1ldGhvZC50eXBlfSxnZXQgaXNDbG9zZWQoKXtyZXR1cm4gdGhpcy5jbG9zZWR9fX0pO2Z1bmN0aW9uIFVqZShlKXtpZih0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU9PSJmdW5jdGlvbiImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSl7dmFyIHQ9c2VsZi5jbG9zZS5iaW5kKHNlbGYpO3NlbGYuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHQoKX19ZWxzZXtpZih0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIhPSJmdW5jdGlvbiIpcmV0dXJuO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7ZSgpfSwhMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZnVuY3Rpb24oKXtlKCl9LCEwKX19dmFyIFdqZT1wKCgpPT57fSk7ZnVuY3Rpb24gR2plKGUpe3Byb2Nlc3Mub24oImV4aXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGUoKX0pLHByb2Nlc3Mub24oImJlZm9yZUV4aXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHByb2Nlc3MuZXhpdCgpfSl9KSxwcm9jZXNzLm9uKCJTSUdJTlQiLGZ1bmN0aW9uKCl7cmV0dXJuIGUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHByb2Nlc3MuZXhpdCgpfSl9KSxwcm9jZXNzLm9uKCJ1bmNhdWdodEV4Y2VwdGlvbiIsZnVuY3Rpb24odCl7cmV0dXJuIGUoKS50aGVuKGZ1bmN0aW9uKCl7Y29uc29sZS50cmFjZSh0KSxwcm9jZXNzLmV4aXQoMTAxKX0pfSl9dmFyIFlqZT1wKCgpPT57fSk7ZnVuY3Rpb24gc05yKCl7WmplfHwoWmplPSEwLG9OcihsTnIpKX1mdW5jdGlvbiBYamUoZSl7aWYoc05yKCksdHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IEVycm9yKCJMaXN0ZW5lciBpcyBubyBmdW5jdGlvbiIpO1o2LmFkZChlKTt2YXIgdD17cmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIFo2LmRlbGV0ZShlKX0scnVuOmZ1bmN0aW9uKCl7cmV0dXJuIFo2LmRlbGV0ZShlKSxlKCl9fTtyZXR1cm4gdH1mdW5jdGlvbiBsTnIoKXt2YXIgZT1bXTtyZXR1cm4gWjYuZm9yRWFjaChmdW5jdGlvbih0KXtlLnB1c2godCgpKSxaNi5kZWxldGUodCl9KSxQcm9taXNlLmFsbChlKX1mdW5jdGlvbiBYRWkoKXtaNi5jbGVhcigpfWZ1bmN0aW9uIFFFaSgpe3JldHVybiBaNi5zaXplfXZhciBuTnIsb05yLFo2LFpqZSxRamU9cCgoKT0+e1dqZSgpO1lqZSgpO25Ocj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodHlwZW9mIHByb2Nlc3M8InUiP3Byb2Nlc3M6MCk9PT0iW29iamVjdCBwcm9jZXNzXSIsb05yPW5Ocj9HamU6VWplLFo2PW5ldyBTZXQsWmplPSExfSk7ZnVuY3Rpb24gdGMoZSx0KXt2YXIgcj17Y29udGV4dDoibGVhZGVyIixhY3Rpb246dCx0b2tlbjplLnRva2VufTtyZXR1cm4gZS5icm9hZGNhc3RDaGFubmVsLnBvc3RJbnRlcm5hbChyKX1mdW5jdGlvbiB4OShlKXtlLmlzTGVhZGVyPSEwLGUuX2hhc0xlYWRlcj0hMDt2YXIgdD1YamUoZnVuY3Rpb24oKXtyZXR1cm4gZS5kaWUoKX0pO2UuX3VubC5wdXNoKHQpO3ZhciByPWZ1bmN0aW9uKGEpe2EuY29udGV4dD09PSJsZWFkZXIiJiZhLmFjdGlvbj09PSJhcHBseSImJnRjKGUsInRlbGwiKSxhLmNvbnRleHQ9PT0ibGVhZGVyIiYmYS5hY3Rpb249PT0idGVsbCImJiFlLl9kcExDJiYoZS5fZHBMQz0hMCxlLl9kcEwoKSx0YyhlLCJ0ZWxsIikpfTtyZXR1cm4gZS5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixyKSxlLl9sc3Rucy5wdXNoKHIpLHRjKGUsInRlbGwiKX12YXIgYV89cCgoKT0+e1FqZSgpfSk7dmFyIGNlZSxKamUsS2plPXAoKCk9PntvNCgpO2FfKCk7Y2VlPWZ1bmN0aW9uKHQscil7dmFyIGk9dGhpczt0aGlzLmJyb2FkY2FzdENoYW5uZWw9dCx0Ll9iZWZDLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gaS5kaWUoKX0pLHRoaXMuX29wdGlvbnM9cix0aGlzLmlzTGVhZGVyPSExLHRoaXMuaXNEZWFkPSExLHRoaXMudG9rZW49S2woKSx0aGlzLl9sc3Rucz1bXSx0aGlzLl91bmw9W10sdGhpcy5fZHBMPWZ1bmN0aW9uKCl7fSx0aGlzLl9kcExDPSExLHRoaXMuX3dLTUM9e30sdGhpcy5sTj0icHVia2V5LWJjfHwiK3QubWV0aG9kLnR5cGUrInx8Iit0Lm5hbWV9LEpqZT0iTGVhZGVyRWxlY3Rpb25XZWJMb2NrLmRpZSgpIGNhbGxlZCI7Y2VlLnByb3RvdHlwZT17aGFzTGVhZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gbmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihmdW5jdGlvbihyKXt2YXIgaT1yLmhlbGQ/ci5oZWxkLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5uYW1lPT09dC5sTn0pOltdO3JldHVybiEhKGkmJmkubGVuZ3RoPjApfSl9LGF3YWl0TGVhZGVyc2hpcDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuX3dMTVApe3RoaXMuX3dLTUMuYz1uZXcgQWJvcnRDb250cm9sbGVyO3ZhciByPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGksYSl7dC5fd0tNQy5yZXM9aSx0Ll93S01DLnJlaj1hfSk7dGhpcy5fd0xNUD1uZXcgUHJvbWlzZShmdW5jdGlvbihpLGEpe25hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KHQubE4se3NpZ25hbDp0Ll93S01DLmMuc2lnbmFsfSxmdW5jdGlvbigpe3JldHVybiB0Ll93S01DLmM9dm9pZCAwLHg5KHQpLGkoKSxyfSkuY2F0Y2goZnVuY3Rpb24obil7bi5tZXNzYWdlJiZuLm1lc3NhZ2U9PT1KamV8fCh0Ll93S01DLnJlaiYmdC5fd0tNQy5yZWoobiksYShuKSl9KX0pfXJldHVybiB0aGlzLl93TE1QfSxzZXQgb25kdXBsaWNhdGUoZSl7fSxkaWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9sc3Rucy5mb3JFYWNoKGZ1bmN0aW9uKHIpe3JldHVybiB0LmJyb2FkY2FzdENoYW5uZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLHIpfSksdGhpcy5fbHN0bnM9W10sdGhpcy5fdW5sLmZvckVhY2goZnVuY3Rpb24ocil7cmV0dXJuIHIucmVtb3ZlKCl9KSx0aGlzLl91bmw9W10sdGhpcy5pc0xlYWRlciYmKHRoaXMuaXNMZWFkZXI9ITEpLHRoaXMuaXNEZWFkPSEwLHRoaXMuX3dLTUMucmVzJiZ0aGlzLl93S01DLnJlcygpLHRoaXMuX3dLTUMuYyYmdGhpcy5fd0tNQy5jLmFib3J0KG5ldyBFcnJvcihKamUpKSx0Yyh0aGlzLCJkZWF0aCIpfX19KTtmdW5jdGlvbiBjTnIoZSl7cmV0dXJuIGUuaXNMZWFkZXI/Vm46bmV3IFByb21pc2UoZnVuY3Rpb24odCl7dmFyIHI9ITE7ZnVuY3Rpb24gaSgpe3J8fChyPSEwLGUuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbiksdCghMCkpfWUuYXBwbHlPbmNlKCkudGhlbihmdW5jdGlvbigpe2UuaXNMZWFkZXImJmkoKX0pO3ZhciBhPWZ1bmN0aW9uKCl7cmV0dXJuIEhzKGUuX29wdGlvbnMuZmFsbGJhY2tJbnRlcnZhbCkudGhlbihmdW5jdGlvbigpe2lmKCEoZS5pc0RlYWR8fHIpKWlmKGUuaXNMZWFkZXIpaSgpO2Vsc2UgcmV0dXJuIGUuYXBwbHlPbmNlKCEwKS50aGVuKGZ1bmN0aW9uKCl7ZS5pc0xlYWRlcj9pKCk6YSgpfSl9KX07YSgpO3ZhciBuPWZ1bmN0aW9uKHMpe3MuY29udGV4dD09PSJsZWFkZXIiJiZzLmFjdGlvbj09PSJkZWF0aCImJihlLl9oYXNMZWFkZXI9ITEsZS5hcHBseU9uY2UoKS50aGVuKGZ1bmN0aW9uKCl7ZS5pc0xlYWRlciYmaSgpfSkpfTtlLmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigiaW50ZXJuYWwiLG4pLGUuX2xzdG5zLnB1c2gobil9KX1mdW5jdGlvbiBkTnIoZSx0KXtyZXR1cm4gZXx8KGU9e30pLGU9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlKSksZS5mYWxsYmFja0ludGVydmFsfHwoZS5mYWxsYmFja0ludGVydmFsPTNlMyksZS5yZXNwb25zZVRpbWV8fChlLnJlc3BvbnNlVGltZT10Lm1ldGhvZC5hdmVyYWdlUmVzcG9uc2VUaW1lKHQub3B0aW9ucykpLGV9ZnVuY3Rpb24gdU5yKGUsdCl7aWYoZS5fbGVhZGVyRWxlY3Rvcil0aHJvdyBuZXcgRXJyb3IoIkJyb2FkY2FzdENoYW5uZWwgYWxyZWFkeSBoYXMgYSBsZWFkZXItZWxlY3RvciIpO3Q9ZE5yKHQsZSk7dmFyIHI9d2plKCk/bmV3IGNlZShlLHQpOm5ldyBlVmUoZSx0KTtyZXR1cm4gZS5fYmVmQy5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIHIuZGllKCl9KSxlLl9sZWFkZXJFbGVjdG9yPXIscn12YXIgZVZlLHRWZT1wKCgpPT57bzQoKTthXygpO0tqZSgpO2VWZT1mdW5jdGlvbih0LHIpe3ZhciBpPXRoaXM7dGhpcy5icm9hZGNhc3RDaGFubmVsPXQsdGhpcy5fb3B0aW9ucz1yLHRoaXMuaXNMZWFkZXI9ITEsdGhpcy5faGFzTGVhZGVyPSExLHRoaXMuaXNEZWFkPSExLHRoaXMudG9rZW49S2woKSx0aGlzLl9hcGxRPVZuLHRoaXMuX2FwbFFDPTAsdGhpcy5fdW5sPVtdLHRoaXMuX2xzdG5zPVtdLHRoaXMuX2RwTD1mdW5jdGlvbigpe30sdGhpcy5fZHBMQz0hMTt2YXIgYT1mdW5jdGlvbihvKXtvLmNvbnRleHQ9PT0ibGVhZGVyIiYmKG8uYWN0aW9uPT09ImRlYXRoIiYmKGkuX2hhc0xlYWRlcj0hMSksby5hY3Rpb249PT0idGVsbCImJihpLl9oYXNMZWFkZXI9ITApKX07dGhpcy5icm9hZGNhc3RDaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoImludGVybmFsIixhKSx0aGlzLl9sc3Rucy5wdXNoKGEpfTtlVmUucHJvdG90eXBlPXtoYXNMZWFkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2hhc0xlYWRlcil9LGFwcGx5T25jZTpmdW5jdGlvbih0KXt2YXIgcj10aGlzO2lmKHRoaXMuaXNMZWFkZXIpcmV0dXJuIEhzKDAsITApO2lmKHRoaXMuaXNEZWFkKXJldHVybiBIcygwLCExKTtpZih0aGlzLl9hcGxRQz4xKXJldHVybiB0aGlzLl9hcGxRO3ZhciBpPWZ1bmN0aW9uKCl7aWYoci5pc0xlYWRlcilyZXR1cm4geGplO3ZhciBuPSExLG8scz1uZXcgUHJvbWlzZShmdW5jdGlvbih1KXtvPWZ1bmN0aW9uKCl7bj0hMCx1KCl9fSksbD1mdW5jdGlvbihkKXtkLmNvbnRleHQ9PT0ibGVhZGVyIiYmZC50b2tlbiE9ci50b2tlbiYmKGQuYWN0aW9uPT09ImFwcGx5IiYmZC50b2tlbj5yLnRva2VuJiZvKCksZC5hY3Rpb249PT0idGVsbCImJihvKCksci5faGFzTGVhZGVyPSEwKSl9O3IuYnJvYWRjYXN0Q2hhbm5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbCk7dmFyIGM9dD9yLl9vcHRpb25zLnJlc3BvbnNlVGltZSo0OnIuX29wdGlvbnMucmVzcG9uc2VUaW1lO3JldHVybiB0YyhyLCJhcHBseSIpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yYWNlKFtIcyhjKSxzLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKX0pXSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHRjKHIsImFwcGx5Iil9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmFjZShbSHMoYykscy50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcil9KV0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHIuYnJvYWRjYXN0Q2hhbm5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnRlcm5hbCIsbCksbj8hMTp4OShyKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KX0pfTtyZXR1cm4gdGhpcy5fYXBsUUM9dGhpcy5fYXBsUUMrMSx0aGlzLl9hcGxRPXRoaXMuX2FwbFEudGhlbihmdW5jdGlvbigpe3JldHVybiBpKCl9KS50aGVuKGZ1bmN0aW9uKCl7ci5fYXBsUUM9ci5fYXBsUUMtMX0pLHRoaXMuX2FwbFEudGhlbihmdW5jdGlvbigpe3JldHVybiByLmlzTGVhZGVyfSl9LGF3YWl0TGVhZGVyc2hpcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hTFB8fCh0aGlzLl9hTFA9Y05yKHRoaXMpKSx0aGlzLl9hTFB9LHNldCBvbmR1cGxpY2F0ZShlKXt0aGlzLl9kcEw9ZX0sZGllOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fbHN0bnMuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gdC5icm9hZGNhc3RDaGFubmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImludGVybmFsIixyKX0pLHRoaXMuX2xzdG5zPVtdLHRoaXMuX3VubC5mb3JFYWNoKGZ1bmN0aW9uKHIpe3JldHVybiByLnJlbW92ZSgpfSksdGhpcy5fdW5sPVtdLHRoaXMuaXNMZWFkZXImJih0aGlzLl9oYXNMZWFkZXI9ITEsdGhpcy5pc0xlYWRlcj0hMSksdGhpcy5pc0RlYWQ9ITAsdGModGhpcywiZGVhdGgiKX19fSk7dmFyIHJWZT1wKCgpPT57VmplKCk7dFZlKCk7YV8oKX0pO3ZhciBpVmU9cCgoKT0+e1RzKCk7YnooKTtiOSgpO3JWZSgpfSk7dmFyIGRlZSx1ZWUsYVZlPXAoKCk9PntpVmUoKTtkZWU9Z2xvYmFsVGhpcy5Ccm9hZGNhc3RDaGFubmVsO2RlZXx8KGRlZT1ZNik7dWVlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5icm9hZGNhc3RDaGFubmVsPW5ldyBkZWUoImRlZXMtY29tbXMiKSx0aGlzLnR5cGVkcm91dGVyPW5ldyBaYS5UeXBlZFJvdXRlcix0aGlzLnR5cGVkdGFyZ2V0PW5ldyBaYS5UeXBlZFRhcmdldCh7cG9zdE1ldGhvZFdpdGhUeXBlZFJvdXRlcjphc3luYyB0PT57dGhpcy5wb3N0TWVzc2FnZSh0KX0sdHlwZWRSb3V0ZXJSZWY6dGhpcy50eXBlZHJvdXRlcn0pLHRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5vbm1lc3NhZ2U9YXN5bmMgdD0+e2xldCByPXQubWV0aG9kP3Q6dC5kYXRhO2NvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHIpKTtsZXQgaT1hd2FpdCB0aGlzLnR5cGVkcm91dGVyLnJvdXRlQW5kQWRkUmVzcG9uc2Uocix7c2tpcEhvb2tzOiEwfSk7aSYmIWkuZXJyb3ImJnRoaXMucG9zdE1lc3NhZ2UoaSl9fWNyZWF0ZVR5cGVkUmVxdWVzdCh0KXtyZXR1cm4gbmV3IFphLlR5cGVkUmVxdWVzdCh0aGlzLnR5cGVkdGFyZ2V0LHQpfWFzeW5jIHBvc3RNZXNzYWdlKHQpe3RoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSh0KX1hc3luYyBjcmVhdGVUeXBlZEhhbmRsZXIodCxyKXt0aGlzLnR5cGVkcm91dGVyLmFkZFR5cGVkSGFuZGxlcihuZXcgWmEuVHlwZWRIYW5kbGVyKHQscikpfX19KTt2YXIgeTk9e307RmUoeTkse0RlZXNDb21tczooKT0+dWVlfSk7dmFyIG5WZT1wKCgpPT57YVZlKCl9KTt2YXIgUTY9amUoKG0kaSxYNik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gb1ZlKGUpe3JldHVybiB0eXBlb2YgZT4idSJ8fGU9PT1udWxsfWZ1bmN0aW9uIGhOcihlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbH1mdW5jdGlvbiBmTnIoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZTpvVmUoZSk/W106W2VdfWZ1bmN0aW9uIG1OcihlLHQpe3ZhciByLGksYSxuO2lmKHQpZm9yKG49T2JqZWN0LmtleXModCkscj0wLGk9bi5sZW5ndGg7cjxpO3IrPTEpYT1uW3JdLGVbYV09dFthXTtyZXR1cm4gZX1mdW5jdGlvbiBnTnIoZSx0KXt2YXIgcj0iIixpO2ZvcihpPTA7aTx0O2krPTEpcis9ZTtyZXR1cm4gcn1mdW5jdGlvbiBiTnIoZSl7cmV0dXJuIGU9PT0wJiZOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk9PT0xL2V9WDYuZXhwb3J0cy5pc05vdGhpbmc9b1ZlLFg2LmV4cG9ydHMuaXNPYmplY3Q9aE5yLFg2LmV4cG9ydHMudG9BcnJheT1mTnIsWDYuZXhwb3J0cy5yZXBlYXQ9Z05yLFg2LmV4cG9ydHMuaXNOZWdhdGl2ZVplcm89Yk5yLFg2LmV4cG9ydHMuZXh0ZW5kPW1Ocn0pO3ZhciBYOD1qZSgoZyRpLHNWZSk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdzkoZSx0KXtFcnJvci5jYWxsKHRoaXMpLHRoaXMubmFtZT0iWUFNTEV4Y2VwdGlvbiIsdGhpcy5yZWFzb249ZSx0aGlzLm1hcms9dCx0aGlzLm1lc3NhZ2U9KHRoaXMucmVhc29ufHwiKHVua25vd24gcmVhc29uKSIpKyh0aGlzLm1hcms/IiAiK3RoaXMubWFyay50b1N0cmluZygpOiIiKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2t8fCIifXc5LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksdzkucHJvdG90eXBlLmNvbnN0cnVjdG9yPXc5LHc5LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLm5hbWUrIjogIjtyZXR1cm4gcis9dGhpcy5yZWFzb258fCIodW5rbm93biByZWFzb24pIiwhdCYmdGhpcy5tYXJrJiYocis9IiAiK3RoaXMubWFyay50b1N0cmluZygpKSxyfSxzVmUuZXhwb3J0cz13OX0pO3ZhciBkVmU9amUoKGIkaSxjVmUpPT57InVzZSBzdHJpY3QiO3ZhciBsVmU9UTYoKTtmdW5jdGlvbiBwZWUoZSx0LHIsaSxhKXt0aGlzLm5hbWU9ZSx0aGlzLmJ1ZmZlcj10LHRoaXMucG9zaXRpb249cix0aGlzLmxpbmU9aSx0aGlzLmNvbHVtbj1hfXBlZS5wcm90b3R5cGUuZ2V0U25pcHBldD1mdW5jdGlvbih0LHIpe3ZhciBpLGEsbixvLHM7aWYoIXRoaXMuYnVmZmVyKXJldHVybiBudWxsO2Zvcih0PXR8fDQscj1yfHw3NSxpPSIiLGE9dGhpcy5wb3NpdGlvbjthPjAmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KGEtMSkpPT09LTE7KWlmKGEtPTEsdGhpcy5wb3NpdGlvbi1hPnIvMi0xKXtpPSIgLi4uICIsYSs9NTticmVha31mb3Iobj0iIixvPXRoaXMucG9zaXRpb247bzx0aGlzLmJ1ZmZlci5sZW5ndGgmJmBcMFxyClx4ODVcdTIwMjhcdTIwMjlgLmluZGV4T2YodGhpcy5idWZmZXIuY2hhckF0KG8pKT09PS0xOylpZihvKz0xLG8tdGhpcy5wb3NpdGlvbj5yLzItMSl7bj0iIC4uLiAiLG8tPTU7YnJlYWt9cmV0dXJuIHM9dGhpcy5idWZmZXIuc2xpY2UoYSxvKSxsVmUucmVwZWF0KCIgIix0KStpK3MrbitgCmArbFZlLnJlcGVhdCgiICIsdCt0aGlzLnBvc2l0aW9uLWEraS5sZW5ndGgpKyJeIn0scGVlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0KXt2YXIgcixpPSIiO3JldHVybiB0aGlzLm5hbWUmJihpKz0naW4gIicrdGhpcy5uYW1lKyciICcpLGkrPSJhdCBsaW5lICIrKHRoaXMubGluZSsxKSsiLCBjb2x1bW4gIisodGhpcy5jb2x1bW4rMSksdHx8KHI9dGhpcy5nZXRTbmlwcGV0KCksciYmKGkrPWA6CmArcikpLGl9LGNWZS5leHBvcnRzPXBlZX0pO3ZhciB4aT1qZSgodiRpLHBWZSk9PnsidXNlIHN0cmljdCI7dmFyIHVWZT1YOCgpLHZOcj1bImtpbmQiLCJyZXNvbHZlIiwiY29uc3RydWN0IiwiaW5zdGFuY2VPZiIsInByZWRpY2F0ZSIsInJlcHJlc2VudCIsImRlZmF1bHRTdHlsZSIsInN0eWxlQWxpYXNlcyJdLHhOcj1bInNjYWxhciIsInNlcXVlbmNlIiwibWFwcGluZyJdO2Z1bmN0aW9uIHlOcihlKXt2YXIgdD17fTtyZXR1cm4gZSE9PW51bGwmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24ocil7ZVtyXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3RbU3RyaW5nKGkpXT1yfSl9KSx0fWZ1bmN0aW9uIHdOcihlLHQpe2lmKHQ9dHx8e30sT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihyKXtpZih2TnIuaW5kZXhPZihyKT09PS0xKXRocm93IG5ldyB1VmUoJ1Vua25vd24gb3B0aW9uICInK3IrJyIgaXMgbWV0IGluIGRlZmluaXRpb24gb2YgIicrZSsnIiBZQU1MIHR5cGUuJyl9KSx0aGlzLnRhZz1lLHRoaXMua2luZD10LmtpbmR8fG51bGwsdGhpcy5yZXNvbHZlPXQucmVzb2x2ZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdGhpcy5jb25zdHJ1Y3Q9dC5jb25zdHJ1Y3R8fGZ1bmN0aW9uKHIpe3JldHVybiByfSx0aGlzLmluc3RhbmNlT2Y9dC5pbnN0YW5jZU9mfHxudWxsLHRoaXMucHJlZGljYXRlPXQucHJlZGljYXRlfHxudWxsLHRoaXMucmVwcmVzZW50PXQucmVwcmVzZW50fHxudWxsLHRoaXMuZGVmYXVsdFN0eWxlPXQuZGVmYXVsdFN0eWxlfHxudWxsLHRoaXMuc3R5bGVBbGlhc2VzPXlOcih0LnN0eWxlQWxpYXNlc3x8bnVsbCkseE5yLmluZGV4T2YodGhpcy5raW5kKT09PS0xKXRocm93IG5ldyB1VmUoJ1Vua25vd24ga2luZCAiJyt0aGlzLmtpbmQrJyIgaXMgc3BlY2lmaWVkIGZvciAiJytlKyciIFlBTUwgdHlwZS4nKX1wVmUuZXhwb3J0cz13TnJ9KTt2YXIgSjY9amUoKHgkaSxmVmUpPT57InVzZSBzdHJpY3QiO3ZhciBoVmU9UTYoKSxuXz1YOCgpLE1Ocj14aSgpO2Z1bmN0aW9uIGhlZShlLHQscil7dmFyIGk9W107cmV0dXJuIGUuaW5jbHVkZS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3I9aGVlKGEsdCxyKX0pLGVbdF0uZm9yRWFjaChmdW5jdGlvbihhKXtyLmZvckVhY2goZnVuY3Rpb24obixvKXtuLnRhZz09PWEudGFnJiZuLmtpbmQ9PT1hLmtpbmQmJmkucHVzaChvKX0pLHIucHVzaChhKX0pLHIuZmlsdGVyKGZ1bmN0aW9uKGEsbil7cmV0dXJuIGkuaW5kZXhPZihuKT09PS0xfSl9ZnVuY3Rpb24ga05yKCl7dmFyIGU9e3NjYWxhcjp7fSxzZXF1ZW5jZTp7fSxtYXBwaW5nOnt9LGZhbGxiYWNrOnt9fSx0LHI7ZnVuY3Rpb24gaShhKXtlW2Eua2luZF1bYS50YWddPWUuZmFsbGJhY2tbYS50YWddPWF9Zm9yKHQ9MCxyPWFyZ3VtZW50cy5sZW5ndGg7dDxyO3QrPTEpYXJndW1lbnRzW3RdLmZvckVhY2goaSk7cmV0dXJuIGV9ZnVuY3Rpb24gUTgoZSl7dGhpcy5pbmNsdWRlPWUuaW5jbHVkZXx8W10sdGhpcy5pbXBsaWNpdD1lLmltcGxpY2l0fHxbXSx0aGlzLmV4cGxpY2l0PWUuZXhwbGljaXR8fFtdLHRoaXMuaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbih0KXtpZih0LmxvYWRLaW5kJiZ0LmxvYWRLaW5kIT09InNjYWxhciIpdGhyb3cgbmV3IG5fKCJUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4iKX0pLHRoaXMuY29tcGlsZWRJbXBsaWNpdD1oZWUodGhpcywiaW1wbGljaXQiLFtdKSx0aGlzLmNvbXBpbGVkRXhwbGljaXQ9aGVlKHRoaXMsImV4cGxpY2l0IixbXSksdGhpcy5jb21waWxlZFR5cGVNYXA9a05yKHRoaXMuY29tcGlsZWRJbXBsaWNpdCx0aGlzLmNvbXBpbGVkRXhwbGljaXQpfVE4LkRFRkFVTFQ9bnVsbCxROC5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdCxyO3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6dD1ROC5ERUZBVUxULHI9YXJndW1lbnRzWzBdO2JyZWFrO2Nhc2UgMjp0PWFyZ3VtZW50c1swXSxyPWFyZ3VtZW50c1sxXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBuXygiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgU2NoZW1hLmNyZWF0ZSBmdW5jdGlvbiIpfWlmKHQ9aFZlLnRvQXJyYXkodCkscj1oVmUudG9BcnJheShyKSwhdC5ldmVyeShmdW5jdGlvbihpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIFE4fSkpdGhyb3cgbmV3IG5fKCJTcGVjaWZpZWQgbGlzdCBvZiBzdXBlciBzY2hlbWFzIChvciBhIHNpbmdsZSBTY2hlbWEgb2JqZWN0KSBjb250YWlucyBhIG5vbi1TY2hlbWEgb2JqZWN0LiIpO2lmKCFyLmV2ZXJ5KGZ1bmN0aW9uKGkpe3JldHVybiBpIGluc3RhbmNlb2YgTU5yfSkpdGhyb3cgbmV3IG5fKCJTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuIik7cmV0dXJuIG5ldyBROCh7aW5jbHVkZTp0LGV4cGxpY2l0OnJ9KX0sZlZlLmV4cG9ydHM9UTh9KTt2YXIgZ1ZlPWplKCh5JGksbVZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgU05yPXhpKCk7bVZlLmV4cG9ydHM9bmV3IFNOcigidGFnOnlhbWwub3JnLDIwMDI6c3RyIix7a2luZDoic2NhbGFyIixjb25zdHJ1Y3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1udWxsP2U6IiJ9fSl9KTt2YXIgdlZlPWplKCh3JGksYlZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgek5yPXhpKCk7YlZlLmV4cG9ydHM9bmV3IHpOcigidGFnOnlhbWwub3JnLDIwMDI6c2VxIix7a2luZDoic2VxdWVuY2UiLGNvbnN0cnVjdDpmdW5jdGlvbihlKXtyZXR1cm4gZSE9PW51bGw/ZTpbXX19KX0pO3ZhciB5VmU9amUoKE0kaSx4VmUpPT57InVzZSBzdHJpY3QiO3ZhciBDTnI9eGkoKTt4VmUuZXhwb3J0cz1uZXcgQ05yKCJ0YWc6eWFtbC5vcmcsMjAwMjptYXAiLHtraW5kOiJtYXBwaW5nIixjb25zdHJ1Y3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1udWxsP2U6e319fSl9KTt2YXIgb189amUoKGskaSx3VmUpPT57InVzZSBzdHJpY3QiO3ZhciBUTnI9SjYoKTt3VmUuZXhwb3J0cz1uZXcgVE5yKHtleHBsaWNpdDpbZ1ZlKCksdlZlKCkseVZlKCldfSl9KTt2YXIga1ZlPWplKChTJGksTVZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgX05yPXhpKCk7ZnVuY3Rpb24gTE5yKGUpe2lmKGU9PT1udWxsKXJldHVybiEwO3ZhciB0PWUubGVuZ3RoO3JldHVybiB0PT09MSYmZT09PSJ+Inx8dD09PTQmJihlPT09Im51bGwifHxlPT09Ik51bGwifHxlPT09Ik5VTEwiKX1mdW5jdGlvbiBBTnIoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBETnIoZSl7cmV0dXJuIGU9PT1udWxsfU1WZS5leHBvcnRzPW5ldyBfTnIoInRhZzp5YW1sLm9yZywyMDAyOm51bGwiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6TE5yLGNvbnN0cnVjdDpBTnIscHJlZGljYXRlOkROcixyZXByZXNlbnQ6e2Nhbm9uaWNhbDpmdW5jdGlvbigpe3JldHVybiJ+In0sbG93ZXJjYXNlOmZ1bmN0aW9uKCl7cmV0dXJuIm51bGwifSx1cHBlcmNhc2U6ZnVuY3Rpb24oKXtyZXR1cm4iTlVMTCJ9LGNhbWVsY2FzZTpmdW5jdGlvbigpe3JldHVybiJOdWxsIn19LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIHpWZT1qZSgoeiRpLFNWZSk9PnsidXNlIHN0cmljdCI7dmFyIEVOcj14aSgpO2Z1bmN0aW9uICROcihlKXtpZihlPT09bnVsbClyZXR1cm4hMTt2YXIgdD1lLmxlbmd0aDtyZXR1cm4gdD09PTQmJihlPT09InRydWUifHxlPT09IlRydWUifHxlPT09IlRSVUUiKXx8dD09PTUmJihlPT09ImZhbHNlInx8ZT09PSJGYWxzZSJ8fGU9PT0iRkFMU0UiKX1mdW5jdGlvbiBJTnIoZSl7cmV0dXJuIGU9PT0idHJ1ZSJ8fGU9PT0iVHJ1ZSJ8fGU9PT0iVFJVRSJ9ZnVuY3Rpb24gUE5yKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBCb29sZWFuXSJ9U1ZlLmV4cG9ydHM9bmV3IEVOcigidGFnOnlhbWwub3JnLDIwMDI6Ym9vbCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTokTnIsY29uc3RydWN0OklOcixwcmVkaWNhdGU6UE5yLHJlcHJlc2VudDp7bG93ZXJjYXNlOmZ1bmN0aW9uKGUpe3JldHVybiBlPyJ0cnVlIjoiZmFsc2UifSx1cHBlcmNhc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/IlRSVUUiOiJGQUxTRSJ9LGNhbWVsY2FzZTpmdW5jdGlvbihlKXtyZXR1cm4gZT8iVHJ1ZSI6IkZhbHNlIn19LGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIFRWZT1qZSgoQyRpLENWZSk9PnsidXNlIHN0cmljdCI7dmFyIE5Ocj1RNigpLEZOcj14aSgpO2Z1bmN0aW9uIE9OcihlKXtyZXR1cm4gNDg8PWUmJmU8PTU3fHw2NTw9ZSYmZTw9NzB8fDk3PD1lJiZlPD0xMDJ9ZnVuY3Rpb24gUk5yKGUpe3JldHVybiA0ODw9ZSYmZTw9NTV9ZnVuY3Rpb24gQk5yKGUpe3JldHVybiA0ODw9ZSYmZTw9NTd9ZnVuY3Rpb24gSE5yKGUpe2lmKGU9PT1udWxsKXJldHVybiExO3ZhciB0PWUubGVuZ3RoLHI9MCxpPSExLGE7aWYoIXQpcmV0dXJuITE7aWYoYT1lW3JdLChhPT09Ii0ifHxhPT09IisiKSYmKGE9ZVsrK3JdKSxhPT09IjAiKXtpZihyKzE9PT10KXJldHVybiEwO2lmKGE9ZVsrK3JdLGE9PT0iYiIpe2ZvcihyKys7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoYSE9PSIwIiYmYSE9PSIxIilyZXR1cm4hMTtpPSEwfXJldHVybiBpJiZhIT09Il8ifWlmKGE9PT0ieCIpe2ZvcihyKys7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoIU9OcihlLmNoYXJDb2RlQXQocikpKXJldHVybiExO2k9ITB9cmV0dXJuIGkmJmEhPT0iXyJ9Zm9yKDtyPHQ7cisrKWlmKGE9ZVtyXSxhIT09Il8iKXtpZighUk5yKGUuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7aT0hMH1yZXR1cm4gaSYmYSE9PSJfIn1pZihhPT09Il8iKXJldHVybiExO2Zvcig7cjx0O3IrKylpZihhPWVbcl0sYSE9PSJfIil7aWYoYT09PSI6IilicmVhaztpZighQk5yKGUuY2hhckNvZGVBdChyKSkpcmV0dXJuITE7aT0hMH1yZXR1cm4haXx8YT09PSJfIj8hMTphIT09IjoiPyEwOi9eKDpbMC01XT9bMC05XSkrJC8udGVzdChlLnNsaWNlKHIpKX1mdW5jdGlvbiBxTnIoZSl7dmFyIHQ9ZSxyPTEsaSxhLG49W107cmV0dXJuIHQuaW5kZXhPZigiXyIpIT09LTEmJih0PXQucmVwbGFjZSgvXy9nLCIiKSksaT10WzBdLChpPT09Ii0ifHxpPT09IisiKSYmKGk9PT0iLSImJihyPS0xKSx0PXQuc2xpY2UoMSksaT10WzBdKSx0PT09IjAiPzA6aT09PSIwIj90WzFdPT09ImIiP3IqcGFyc2VJbnQodC5zbGljZSgyKSwyKTp0WzFdPT09IngiP3IqcGFyc2VJbnQodCwxNik6cipwYXJzZUludCh0LDgpOnQuaW5kZXhPZigiOiIpIT09LTE/KHQuc3BsaXQoIjoiKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe24udW5zaGlmdChwYXJzZUludChvLDEwKSl9KSx0PTAsYT0xLG4uZm9yRWFjaChmdW5jdGlvbihvKXt0Kz1vKmEsYSo9NjB9KSxyKnQpOnIqcGFyc2VJbnQodCwxMCl9ZnVuY3Rpb24gak5yKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBOdW1iZXJdIiYmZSUxPT09MCYmIU5Oci5pc05lZ2F0aXZlWmVybyhlKX1DVmUuZXhwb3J0cz1uZXcgRk5yKCJ0YWc6eWFtbC5vcmcsMjAwMjppbnQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6SE5yLGNvbnN0cnVjdDpxTnIscHJlZGljYXRlOmpOcixyZXByZXNlbnQ6e2JpbmFyeTpmdW5jdGlvbihlKXtyZXR1cm4gZT49MD8iMGIiK2UudG9TdHJpbmcoMik6Ii0wYiIrZS50b1N0cmluZygyKS5zbGljZSgxKX0sb2N0YWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTA/IjAiK2UudG9TdHJpbmcoOCk6Ii0wIitlLnRvU3RyaW5nKDgpLnNsaWNlKDEpfSxkZWNpbWFsOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRvU3RyaW5nKDEwKX0saGV4YWRlY2ltYWw6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTA/IjB4IitlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOiItMHgiK2UudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSl9fSxkZWZhdWx0U3R5bGU6ImRlY2ltYWwiLHN0eWxlQWxpYXNlczp7YmluYXJ5OlsyLCJiaW4iXSxvY3RhbDpbOCwib2N0Il0sZGVjaW1hbDpbMTAsImRlYyJdLGhleGFkZWNpbWFsOlsxNiwiaGV4Il19fSl9KTt2YXIgQVZlPWplKChUJGksTFZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgX1ZlPVE2KCksVk5yPXhpKCksVU5yPW5ldyBSZWdFeHAoIl4oPzpbLStdPyg/OjB8WzEtOV1bMC05X10qKSg/OlxcLlswLTlfXSopPyg/OltlRV1bLStdP1swLTldKyk/fFxcLlswLTlfXSsoPzpbZUVdWy0rXT9bMC05XSspP3xbLStdP1swLTldWzAtOV9dKig/OjpbMC01XT9bMC05XSkrXFwuWzAtOV9dKnxbLStdP1xcLig/OmluZnxJbmZ8SU5GKXxcXC4oPzpuYW58TmFOfE5BTikpJCIpO2Z1bmN0aW9uIFdOcihlKXtyZXR1cm4hKGU9PT1udWxsfHwhVU5yLnRlc3QoZSl8fGVbZS5sZW5ndGgtMV09PT0iXyIpfWZ1bmN0aW9uIEdOcihlKXt2YXIgdCxyLGksYTtyZXR1cm4gdD1lLnJlcGxhY2UoL18vZywiIikudG9Mb3dlckNhc2UoKSxyPXRbMF09PT0iLSI/LTE6MSxhPVtdLCIrLSIuaW5kZXhPZih0WzBdKT49MCYmKHQ9dC5zbGljZSgxKSksdD09PSIuaW5mIj9yPT09MT9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk6TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOnQ9PT0iLm5hbiI/TmFOOnQuaW5kZXhPZigiOiIpPj0wPyh0LnNwbGl0KCI6IikuZm9yRWFjaChmdW5jdGlvbihuKXthLnVuc2hpZnQocGFyc2VGbG9hdChuLDEwKSl9KSx0PTAsaT0xLGEuZm9yRWFjaChmdW5jdGlvbihuKXt0Kz1uKmksaSo9NjB9KSxyKnQpOnIqcGFyc2VGbG9hdCh0LDEwKX12YXIgWU5yPS9eWy0rXT9bMC05XStlLztmdW5jdGlvbiBaTnIoZSx0KXt2YXIgcjtpZihpc05hTihlKSlzd2l0Y2godCl7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiIubmFuIjtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIi5OQU4iO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLk5hTiJ9ZWxzZSBpZihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk9PT1lKXN3aXRjaCh0KXtjYXNlImxvd2VyY2FzZSI6cmV0dXJuIi5pbmYiO2Nhc2UidXBwZXJjYXNlIjpyZXR1cm4iLklORiI7Y2FzZSJjYW1lbGNhc2UiOnJldHVybiIuSW5mIn1lbHNlIGlmKE51bWJlci5ORUdBVElWRV9JTkZJTklUWT09PWUpc3dpdGNoKHQpe2Nhc2UibG93ZXJjYXNlIjpyZXR1cm4iLS5pbmYiO2Nhc2UidXBwZXJjYXNlIjpyZXR1cm4iLS5JTkYiO2Nhc2UiY2FtZWxjYXNlIjpyZXR1cm4iLS5JbmYifWVsc2UgaWYoX1ZlLmlzTmVnYXRpdmVaZXJvKGUpKXJldHVybiItMC4wIjtyZXR1cm4gcj1lLnRvU3RyaW5nKDEwKSxZTnIudGVzdChyKT9yLnJlcGxhY2UoImUiLCIuZSIpOnJ9ZnVuY3Rpb24gWE5yKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBOdW1iZXJdIiYmKGUlMSE9PTB8fF9WZS5pc05lZ2F0aXZlWmVybyhlKSl9TFZlLmV4cG9ydHM9bmV3IFZOcigidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6V05yLGNvbnN0cnVjdDpHTnIscHJlZGljYXRlOlhOcixyZXByZXNlbnQ6Wk5yLGRlZmF1bHRTdHlsZToibG93ZXJjYXNlIn0pfSk7dmFyIGZlZT1qZSgoXyRpLERWZSk9PnsidXNlIHN0cmljdCI7dmFyIFFOcj1KNigpO0RWZS5leHBvcnRzPW5ldyBRTnIoe2luY2x1ZGU6W29fKCldLGltcGxpY2l0OltrVmUoKSx6VmUoKSxUVmUoKSxBVmUoKV19KX0pO3ZhciBtZWU9amUoKEwkaSxFVmUpPT57InVzZSBzdHJpY3QiO3ZhciBKTnI9SjYoKTtFVmUuZXhwb3J0cz1uZXcgSk5yKHtpbmNsdWRlOltmZWUoKV19KX0pO3ZhciBOVmU9amUoKEEkaSxQVmUpPT57InVzZSBzdHJpY3QiO3ZhciBLTnI9eGkoKSwkVmU9bmV3IFJlZ0V4cCgiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0pLShbMC05XVswLTldKSQiKSxJVmU9bmV3IFJlZ0V4cCgiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0/KS0oWzAtOV1bMC05XT8pKD86W1R0XXxbIFxcdF0rKShbMC05XVswLTldPyk6KFswLTldWzAtOV0pOihbMC05XVswLTldKSg/OlxcLihbMC05XSopKT8oPzpbIFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KSg/OjooWzAtOV1bMC05XSkpPykpPyQiKTtmdW5jdGlvbiBlRnIoZSl7cmV0dXJuIGU9PT1udWxsPyExOiRWZS5leGVjKGUpIT09bnVsbHx8SVZlLmV4ZWMoZSkhPT1udWxsfWZ1bmN0aW9uIHRGcihlKXt2YXIgdCxyLGksYSxuLG8scyxsPTAsYz1udWxsLHUsZCxoO2lmKHQ9JFZlLmV4ZWMoZSksdD09PW51bGwmJih0PUlWZS5leGVjKGUpKSx0PT09bnVsbCl0aHJvdyBuZXcgRXJyb3IoIkRhdGUgcmVzb2x2ZSBlcnJvciIpO2lmKHI9K3RbMV0saT0rdFsyXS0xLGE9K3RbM10sIXRbNF0pcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHIsaSxhKSk7aWYobj0rdFs0XSxvPSt0WzVdLHM9K3RbNl0sdFs3XSl7Zm9yKGw9dFs3XS5zbGljZSgwLDMpO2wubGVuZ3RoPDM7KWwrPSIwIjtsPStsfXJldHVybiB0WzldJiYodT0rdFsxMF0sZD0rKHRbMTFdfHwwKSxjPSh1KjYwK2QpKjZlNCx0WzldPT09Ii0iJiYoYz0tYykpLGg9bmV3IERhdGUoRGF0ZS5VVEMocixpLGEsbixvLHMsbCkpLGMmJmguc2V0VGltZShoLmdldFRpbWUoKS1jKSxofWZ1bmN0aW9uIHJGcihlKXtyZXR1cm4gZS50b0lTT1N0cmluZygpfVBWZS5leHBvcnRzPW5ldyBLTnIoInRhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTplRnIsY29uc3RydWN0OnRGcixpbnN0YW5jZU9mOkRhdGUscmVwcmVzZW50OnJGcn0pfSk7dmFyIE9WZT1qZSgoRCRpLEZWZSk9PnsidXNlIHN0cmljdCI7dmFyIGlGcj14aSgpO2Z1bmN0aW9uIGFGcihlKXtyZXR1cm4gZT09PSI8PCJ8fGU9PT1udWxsfUZWZS5leHBvcnRzPW5ldyBpRnIoInRhZzp5YW1sLm9yZywyMDAyOm1lcmdlIix7a2luZDoic2NhbGFyIixyZXNvbHZlOmFGcn0pfSk7dmFyIEhWZT1qZSgoRSRpLEJWZSk9PnsidXNlIHN0cmljdCI7dmFyIEs2O3RyeXtSVmU9UmMsSzY9UlZlKCJidWZmZXIiKS5CdWZmZXJ9Y2F0Y2h7fXZhciBuRnI9eGkoKSxnZWU9YEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89ClxyYDtmdW5jdGlvbiBvRnIoZSl7aWYoZT09PW51bGwpcmV0dXJuITE7dmFyIHQscixpPTAsYT1lLmxlbmd0aCxuPWdlZTtmb3Iocj0wO3I8YTtyKyspaWYodD1uLmluZGV4T2YoZS5jaGFyQXQocikpLCEodD42NCkpe2lmKHQ8MClyZXR1cm4hMTtpKz02fXJldHVybiBpJTg9PT0wfWZ1bmN0aW9uIHNGcihlKXt2YXIgdCxyLGk9ZS5yZXBsYWNlKC9bXHJcbj1dL2csIiIpLGE9aS5sZW5ndGgsbj1nZWUsbz0wLHM9W107Zm9yKHQ9MDt0PGE7dCsrKXQlND09PTAmJnQmJihzLnB1c2gobz4+MTYmMjU1KSxzLnB1c2gobz4+OCYyNTUpLHMucHVzaChvJjI1NSkpLG89bzw8NnxuLmluZGV4T2YoaS5jaGFyQXQodCkpO3JldHVybiByPWElNCo2LHI9PT0wPyhzLnB1c2gobz4+MTYmMjU1KSxzLnB1c2gobz4+OCYyNTUpLHMucHVzaChvJjI1NSkpOnI9PT0xOD8ocy5wdXNoKG8+PjEwJjI1NSkscy5wdXNoKG8+PjImMjU1KSk6cj09PTEyJiZzLnB1c2gobz4+NCYyNTUpLEs2P0s2LmZyb20/SzYuZnJvbShzKTpuZXcgSzYocyk6c31mdW5jdGlvbiBsRnIoZSl7dmFyIHQ9IiIscj0wLGksYSxuPWUubGVuZ3RoLG89Z2VlO2ZvcihpPTA7aTxuO2krKylpJTM9PT0wJiZpJiYodCs9b1tyPj4xOCY2M10sdCs9b1tyPj4xMiY2M10sdCs9b1tyPj42JjYzXSx0Kz1vW3ImNjNdKSxyPShyPDw4KStlW2ldO3JldHVybiBhPW4lMyxhPT09MD8odCs9b1tyPj4xOCY2M10sdCs9b1tyPj4xMiY2M10sdCs9b1tyPj42JjYzXSx0Kz1vW3ImNjNdKTphPT09Mj8odCs9b1tyPj4xMCY2M10sdCs9b1tyPj40JjYzXSx0Kz1vW3I8PDImNjNdLHQrPW9bNjRdKTphPT09MSYmKHQrPW9bcj4+MiY2M10sdCs9b1tyPDw0JjYzXSx0Kz1vWzY0XSx0Kz1vWzY0XSksdH1mdW5jdGlvbiBjRnIoZSl7cmV0dXJuIEs2JiZLNi5pc0J1ZmZlcihlKX1CVmUuZXhwb3J0cz1uZXcgbkZyKCJ0YWc6eWFtbC5vcmcsMjAwMjpiaW5hcnkiLHtraW5kOiJzY2FsYXIiLHJlc29sdmU6b0ZyLGNvbnN0cnVjdDpzRnIscHJlZGljYXRlOmNGcixyZXByZXNlbnQ6bEZyfSk7dmFyIFJWZX0pO3ZhciBqVmU9amUoKEkkaSxxVmUpPT57InVzZSBzdHJpY3QiO3ZhciBkRnI9eGkoKSx1RnI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxwRnI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBoRnIoZSl7aWYoZT09PW51bGwpcmV0dXJuITA7dmFyIHQ9W10scixpLGEsbixvLHM9ZTtmb3Iocj0wLGk9cy5sZW5ndGg7cjxpO3IrPTEpe2lmKGE9c1tyXSxvPSExLHBGci5jYWxsKGEpIT09IltvYmplY3QgT2JqZWN0XSIpcmV0dXJuITE7Zm9yKG4gaW4gYSlpZih1RnIuY2FsbChhLG4pKWlmKCFvKW89ITA7ZWxzZSByZXR1cm4hMTtpZighbylyZXR1cm4hMTtpZih0LmluZGV4T2Yobik9PT0tMSl0LnB1c2gobik7ZWxzZSByZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBmRnIoZSl7cmV0dXJuIGUhPT1udWxsP2U6W119cVZlLmV4cG9ydHM9bmV3IGRGcigidGFnOnlhbWwub3JnLDIwMDI6b21hcCIse2tpbmQ6InNlcXVlbmNlIixyZXNvbHZlOmhGcixjb25zdHJ1Y3Q6ZkZyfSl9KTt2YXIgVVZlPWplKChQJGksVlZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbUZyPXhpKCksZ0ZyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gYkZyKGUpe2lmKGU9PT1udWxsKXJldHVybiEwO3ZhciB0LHIsaSxhLG4sbz1lO2ZvcihuPW5ldyBBcnJheShvLmxlbmd0aCksdD0wLHI9by5sZW5ndGg7dDxyO3QrPTEpe2lmKGk9b1t0XSxnRnIuY2FsbChpKSE9PSJbb2JqZWN0IE9iamVjdF0ifHwoYT1PYmplY3Qua2V5cyhpKSxhLmxlbmd0aCE9PTEpKXJldHVybiExO25bdF09W2FbMF0saVthWzBdXV19cmV0dXJuITB9ZnVuY3Rpb24gdkZyKGUpe2lmKGU9PT1udWxsKXJldHVybltdO3ZhciB0LHIsaSxhLG4sbz1lO2ZvcihuPW5ldyBBcnJheShvLmxlbmd0aCksdD0wLHI9by5sZW5ndGg7dDxyO3QrPTEpaT1vW3RdLGE9T2JqZWN0LmtleXMoaSksblt0XT1bYVswXSxpW2FbMF1dXTtyZXR1cm4gbn1WVmUuZXhwb3J0cz1uZXcgbUZyKCJ0YWc6eWFtbC5vcmcsMjAwMjpwYWlycyIse2tpbmQ6InNlcXVlbmNlIixyZXNvbHZlOmJGcixjb25zdHJ1Y3Q6dkZyfSl9KTt2YXIgR1ZlPWplKChOJGksV1ZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgeEZyPXhpKCkseUZyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gd0ZyKGUpe2lmKGU9PT1udWxsKXJldHVybiEwO3ZhciB0LHI9ZTtmb3IodCBpbiByKWlmKHlGci5jYWxsKHIsdCkmJnJbdF0hPT1udWxsKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIE1GcihlKXtyZXR1cm4gZSE9PW51bGw/ZTp7fX1XVmUuZXhwb3J0cz1uZXcgeEZyKCJ0YWc6eWFtbC5vcmcsMjAwMjpzZXQiLHtraW5kOiJtYXBwaW5nIixyZXNvbHZlOndGcixjb25zdHJ1Y3Q6TUZyfSl9KTt2YXIgSjg9amUoKEYkaSxZVmUpPT57InVzZSBzdHJpY3QiO3ZhciBrRnI9SjYoKTtZVmUuZXhwb3J0cz1uZXcga0ZyKHtpbmNsdWRlOlttZWUoKV0saW1wbGljaXQ6W05WZSgpLE9WZSgpXSxleHBsaWNpdDpbSFZlKCksalZlKCksVVZlKCksR1ZlKCldfSl9KTt2YXIgWFZlPWplKChPJGksWlZlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgU0ZyPXhpKCk7ZnVuY3Rpb24gekZyKCl7cmV0dXJuITB9ZnVuY3Rpb24gQ0ZyKCl7fWZ1bmN0aW9uIFRGcigpe3JldHVybiIifWZ1bmN0aW9uIF9GcihlKXtyZXR1cm4gdHlwZW9mIGU+InUifVpWZS5leHBvcnRzPW5ldyBTRnIoInRhZzp5YW1sLm9yZywyMDAyOmpzL3VuZGVmaW5lZCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTp6RnIsY29uc3RydWN0OkNGcixwcmVkaWNhdGU6X0ZyLHJlcHJlc2VudDpURnJ9KX0pO3ZhciBKVmU9amUoKFIkaSxRVmUpPT57InVzZSBzdHJpY3QiO3ZhciBMRnI9eGkoKTtmdW5jdGlvbiBBRnIoZSl7aWYoZT09PW51bGx8fGUubGVuZ3RoPT09MClyZXR1cm4hMTt2YXIgdD1lLHI9L1wvKFtnaW1dKikkLy5leGVjKGUpLGk9IiI7cmV0dXJuISh0WzBdPT09Ii8iJiYociYmKGk9clsxXSksaS5sZW5ndGg+M3x8dFt0Lmxlbmd0aC1pLmxlbmd0aC0xXSE9PSIvIikpfWZ1bmN0aW9uIERGcihlKXt2YXIgdD1lLHI9L1wvKFtnaW1dKikkLy5leGVjKGUpLGk9IiI7cmV0dXJuIHRbMF09PT0iLyImJihyJiYoaT1yWzFdKSx0PXQuc2xpY2UoMSx0Lmxlbmd0aC1pLmxlbmd0aC0xKSksbmV3IFJlZ0V4cCh0LGkpfWZ1bmN0aW9uIEVGcihlKXt2YXIgdD0iLyIrZS5zb3VyY2UrIi8iO3JldHVybiBlLmdsb2JhbCYmKHQrPSJnIiksZS5tdWx0aWxpbmUmJih0Kz0ibSIpLGUuaWdub3JlQ2FzZSYmKHQrPSJpIiksdH1mdW5jdGlvbiAkRnIoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKT09PSJbb2JqZWN0IFJlZ0V4cF0ifVFWZS5leHBvcnRzPW5ldyBMRnIoInRhZzp5YW1sLm9yZywyMDAyOmpzL3JlZ2V4cCIse2tpbmQ6InNjYWxhciIscmVzb2x2ZTpBRnIsY29uc3RydWN0OkRGcixwcmVkaWNhdGU6JEZyLHJlcHJlc2VudDpFRnJ9KX0pO3ZhciB0VWU9amUoKEIkaSxlVWUpPT57InVzZSBzdHJpY3QiO3ZhciBzXzt0cnl7S1ZlPVJjLHNfPUtWZSgiZXNwcmltYSIpfWNhdGNoe3R5cGVvZiB3aW5kb3c8InUiJiYoc189d2luZG93LmVzcHJpbWEpfXZhciBJRnI9eGkoKTtmdW5jdGlvbiBQRnIoZSl7aWYoZT09PW51bGwpcmV0dXJuITE7dHJ5e3ZhciB0PSIoIitlKyIpIixyPXNfLnBhcnNlKHQse3JhbmdlOiEwfSk7cmV0dXJuIShyLnR5cGUhPT0iUHJvZ3JhbSJ8fHIuYm9keS5sZW5ndGghPT0xfHxyLmJvZHlbMF0udHlwZSE9PSJFeHByZXNzaW9uU3RhdGVtZW50Inx8ci5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiImJnIuYm9keVswXS5leHByZXNzaW9uLnR5cGUhPT0iRnVuY3Rpb25FeHByZXNzaW9uIil9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIE5GcihlKXt2YXIgdD0iKCIrZSsiKSIscj1zXy5wYXJzZSh0LHtyYW5nZTohMH0pLGk9W10sYTtpZihyLnR5cGUhPT0iUHJvZ3JhbSJ8fHIuYm9keS5sZW5ndGghPT0xfHxyLmJvZHlbMF0udHlwZSE9PSJFeHByZXNzaW9uU3RhdGVtZW50Inx8ci5ib2R5WzBdLmV4cHJlc3Npb24udHlwZSE9PSJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiImJnIuYm9keVswXS5leHByZXNzaW9uLnR5cGUhPT0iRnVuY3Rpb25FeHByZXNzaW9uIil0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byByZXNvbHZlIGZ1bmN0aW9uIik7cmV0dXJuIHIuYm9keVswXS5leHByZXNzaW9uLnBhcmFtcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe2kucHVzaChuLm5hbWUpfSksYT1yLmJvZHlbMF0uZXhwcmVzc2lvbi5ib2R5LnJhbmdlLHIuYm9keVswXS5leHByZXNzaW9uLmJvZHkudHlwZT09PSJCbG9ja1N0YXRlbWVudCI/bmV3IEZ1bmN0aW9uKGksdC5zbGljZShhWzBdKzEsYVsxXS0xKSk6bmV3IEZ1bmN0aW9uKGksInJldHVybiAiK3Quc2xpY2UoYVswXSxhWzFdKSl9ZnVuY3Rpb24gRkZyKGUpe3JldHVybiBlLnRvU3RyaW5nKCl9ZnVuY3Rpb24gT0ZyKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk9PT0iW29iamVjdCBGdW5jdGlvbl0ifWVVZS5leHBvcnRzPW5ldyBJRnIoInRhZzp5YW1sLm9yZywyMDAyOmpzL2Z1bmN0aW9uIix7a2luZDoic2NhbGFyIixyZXNvbHZlOlBGcixjb25zdHJ1Y3Q6TkZyLHByZWRpY2F0ZTpPRnIscmVwcmVzZW50OkZGcn0pO3ZhciBLVmV9KTt2YXIgTTk9amUoKHEkaSxpVWUpPT57InVzZSBzdHJpY3QiO3ZhciByVWU9SjYoKTtpVWUuZXhwb3J0cz1yVWUuREVGQVVMVD1uZXcgclVlKHtpbmNsdWRlOltKOCgpXSxleHBsaWNpdDpbWFZlKCksSlZlKCksdFVlKCldfSl9KTt2YXIga1VlPWplKChqJGksazkpPT57InVzZSBzdHJpY3QiO3ZhciByYz1RNigpLGFVZT1YOCgpLFJGcj1kVmUoKSxuVWU9SjgoKSxCRnI9TTkoKSxzND1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGxfPTEsb1VlPTIsc1VlPTMsY189NCxiZWU9MSxIRnI9MixsVWU9MyxxRnI9L1tceDAwLVx4MDhceDBCXHgwQ1x4MEUtXHgxRlx4N0YtXHg4NFx4ODYtXHg5Rlx1RkZGRVx1RkZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKXwoPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdLyxqRnI9L1tceDg1XHUyMDI4XHUyMDI5XS8sVkZyPS9bLFxbXF1ce1x9XS8sY1VlPS9eKD86IXwhIXwhW2EtelwtXSshKSQvaSxkVWU9L14oPzohfFteLFxbXF1ce1x9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelwtIztcL1w/OkAmPVwrXCQsX1wuIX5cKidcKFwpXFtcXV0pKiQvaTtmdW5jdGlvbiB1VWUoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBxcyhlKXtyZXR1cm4gZT09PTEwfHxlPT09MTN9ZnVuY3Rpb24gZWQoZSl7cmV0dXJuIGU9PT05fHxlPT09MzJ9ZnVuY3Rpb24gTW4oZSl7cmV0dXJuIGU9PT05fHxlPT09MzJ8fGU9PT0xMHx8ZT09PTEzfWZ1bmN0aW9uIEs4KGUpe3JldHVybiBlPT09NDR8fGU9PT05MXx8ZT09PTkzfHxlPT09MTIzfHxlPT09MTI1fWZ1bmN0aW9uIFVGcihlKXt2YXIgdDtyZXR1cm4gNDg8PWUmJmU8PTU3P2UtNDg6KHQ9ZXwzMiw5Nzw9dCYmdDw9MTAyP3QtOTcrMTA6LTEpfWZ1bmN0aW9uIFdGcihlKXtyZXR1cm4gZT09PTEyMD8yOmU9PT0xMTc/NDplPT09ODU/ODowfWZ1bmN0aW9uIEdGcihlKXtyZXR1cm4gNDg8PWUmJmU8PTU3P2UtNDg6LTF9ZnVuY3Rpb24gcFVlKGUpe3JldHVybiBlPT09NDg/IlwwIjplPT09OTc/Ilx4MDciOmU9PT05OD8iXGIiOmU9PT0xMTZ8fGU9PT05PyIJIjplPT09MTEwP2AKYDplPT09MTE4PyJcdiI6ZT09PTEwMj8iXGYiOmU9PT0xMTQ/IlxyIjplPT09MTAxPyJceDFCIjplPT09MzI/IiAiOmU9PT0zND8nIic6ZT09PTQ3PyIvIjplPT09OTI/IlxcIjplPT09Nzg/Ilx4ODUiOmU9PT05NT8iXHhBMCI6ZT09PTc2PyJcdTIwMjgiOmU9PT04MD8iXHUyMDI5IjoiIn1mdW5jdGlvbiBZRnIoZSl7cmV0dXJuIGU8PTY1NTM1P1N0cmluZy5mcm9tQ2hhckNvZGUoZSk6U3RyaW5nLmZyb21DaGFyQ29kZSgoZS02NTUzNj4+MTApKzU1Mjk2LChlLTY1NTM2JjEwMjMpKzU2MzIwKX1mdW5jdGlvbiBoVWUoZSx0LHIpe3Q9PT0iX19wcm90b19fIj9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpyfSk6ZVt0XT1yfXZhciBmVWU9bmV3IEFycmF5KDI1NiksbVVlPW5ldyBBcnJheSgyNTYpO2Zvcih0ZD0wO3RkPDI1Njt0ZCsrKWZVZVt0ZF09cFVlKHRkKT8xOjAsbVVlW3RkXT1wVWUodGQpO2Z1bmN0aW9uIFpGcihlLHQpe3RoaXMuaW5wdXQ9ZSx0aGlzLmZpbGVuYW1lPXQuZmlsZW5hbWV8fG51bGwsdGhpcy5zY2hlbWE9dC5zY2hlbWF8fEJGcix0aGlzLm9uV2FybmluZz10Lm9uV2FybmluZ3x8bnVsbCx0aGlzLmxlZ2FjeT10LmxlZ2FjeXx8ITEsdGhpcy5qc29uPXQuanNvbnx8ITEsdGhpcy5saXN0ZW5lcj10Lmxpc3RlbmVyfHxudWxsLHRoaXMuaW1wbGljaXRUeXBlcz10aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0LHRoaXMudHlwZU1hcD10aGlzLnNjaGVtYS5jb21waWxlZFR5cGVNYXAsdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5wb3NpdGlvbj0wLHRoaXMubGluZT0wLHRoaXMubGluZVN0YXJ0PTAsdGhpcy5saW5lSW5kZW50PTAsdGhpcy5kb2N1bWVudHM9W119ZnVuY3Rpb24gZ1VlKGUsdCl7cmV0dXJuIG5ldyBhVWUodCxuZXcgUkZyKGUuZmlsZW5hbWUsZS5pbnB1dCxlLnBvc2l0aW9uLGUubGluZSxlLnBvc2l0aW9uLWUubGluZVN0YXJ0KSl9ZnVuY3Rpb24gd3QoZSx0KXt0aHJvdyBnVWUoZSx0KX1mdW5jdGlvbiBkXyhlLHQpe2Uub25XYXJuaW5nJiZlLm9uV2FybmluZy5jYWxsKG51bGwsZ1VlKGUsdCkpfXZhciBiVWU9e1lBTUw6ZnVuY3Rpb24odCxyLGkpe3ZhciBhLG4sbzt0LnZlcnNpb24hPT1udWxsJiZ3dCh0LCJkdXBsaWNhdGlvbiBvZiAlWUFNTCBkaXJlY3RpdmUiKSxpLmxlbmd0aCE9PTEmJnd0KHQsIllBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQiKSxhPS9eKFswLTldKylcLihbMC05XSspJC8uZXhlYyhpWzBdKSxhPT09bnVsbCYmd3QodCwiaWxsLWZvcm1lZCBhcmd1bWVudCBvZiB0aGUgWUFNTCBkaXJlY3RpdmUiKSxuPXBhcnNlSW50KGFbMV0sMTApLG89cGFyc2VJbnQoYVsyXSwxMCksbiE9PTEmJnd0KHQsInVuYWNjZXB0YWJsZSBZQU1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IiksdC52ZXJzaW9uPWlbMF0sdC5jaGVja0xpbmVCcmVha3M9bzwyLG8hPT0xJiZvIT09MiYmZF8odCwidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpfSxUQUc6ZnVuY3Rpb24odCxyLGkpe3ZhciBhLG47aS5sZW5ndGghPT0yJiZ3dCh0LCJUQUcgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSB0d28gYXJndW1lbnRzIiksYT1pWzBdLG49aVsxXSxjVWUudGVzdChhKXx8d3QodCwiaWxsLWZvcm1lZCB0YWcgaGFuZGxlIChmaXJzdCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKSxzNC5jYWxsKHQudGFnTWFwLGEpJiZ3dCh0LCd0aGVyZSBpcyBhIHByZXZpb3VzbHkgZGVjbGFyZWQgc3VmZml4IGZvciAiJythKyciIHRhZyBoYW5kbGUnKSxkVWUudGVzdChuKXx8d3QodCwiaWxsLWZvcm1lZCB0YWcgcHJlZml4IChzZWNvbmQgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIiksdC50YWdNYXBbYV09bn19O2Z1bmN0aW9uIGw0KGUsdCxyLGkpe3ZhciBhLG4sbyxzO2lmKHQ8cil7aWYocz1lLmlucHV0LnNsaWNlKHQsciksaSlmb3IoYT0wLG49cy5sZW5ndGg7YTxuO2ErPTEpbz1zLmNoYXJDb2RlQXQoYSksbz09PTl8fDMyPD1vJiZvPD0xMTE0MTExfHx3dChlLCJleHBlY3RlZCB2YWxpZCBKU09OIGNoYXJhY3RlciIpO2Vsc2UgcUZyLnRlc3QocykmJnd0KGUsInRoZSBzdHJlYW0gY29udGFpbnMgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIik7ZS5yZXN1bHQrPXN9fWZ1bmN0aW9uIHZVZShlLHQscixpKXt2YXIgYSxuLG8scztmb3IocmMuaXNPYmplY3Qocil8fHd0KGUsImNhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlIiksYT1PYmplY3Qua2V5cyhyKSxvPTAscz1hLmxlbmd0aDtvPHM7bys9MSluPWFbb10sczQuY2FsbCh0LG4pfHwoaFVlKHQsbixyW25dKSxpW25dPSEwKX1mdW5jdGlvbiBlcChlLHQscixpLGEsbixvLHMpe3ZhciBsLGM7aWYoQXJyYXkuaXNBcnJheShhKSlmb3IoYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKSxsPTAsYz1hLmxlbmd0aDtsPGM7bCs9MSlBcnJheS5pc0FycmF5KGFbbF0pJiZ3dChlLCJuZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBrZXlzIiksdHlwZW9mIGE9PSJvYmplY3QiJiZ1VWUoYVtsXSk9PT0iW29iamVjdCBPYmplY3RdIiYmKGFbbF09IltvYmplY3QgT2JqZWN0XSIpO2lmKHR5cGVvZiBhPT0ib2JqZWN0IiYmdVVlKGEpPT09IltvYmplY3QgT2JqZWN0XSImJihhPSJbb2JqZWN0IE9iamVjdF0iKSxhPVN0cmluZyhhKSx0PT09bnVsbCYmKHQ9e30pLGk9PT0idGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UiKWlmKEFycmF5LmlzQXJyYXkobikpZm9yKGw9MCxjPW4ubGVuZ3RoO2w8YztsKz0xKXZVZShlLHQsbltsXSxyKTtlbHNlIHZVZShlLHQsbixyKTtlbHNlIWUuanNvbiYmIXM0LmNhbGwocixhKSYmczQuY2FsbCh0LGEpJiYoZS5saW5lPW98fGUubGluZSxlLnBvc2l0aW9uPXN8fGUucG9zaXRpb24sd3QoZSwiZHVwbGljYXRlZCBtYXBwaW5nIGtleSIpKSxoVWUodCxhLG4pLGRlbGV0ZSByW2FdO3JldHVybiB0fWZ1bmN0aW9uIHZlZShlKXt2YXIgdDt0PWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSx0PT09MTA/ZS5wb3NpdGlvbisrOnQ9PT0xMz8oZS5wb3NpdGlvbisrLGUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKT09PTEwJiZlLnBvc2l0aW9uKyspOnd0KGUsImEgbGluZSBicmVhayBpcyBleHBlY3RlZCIpLGUubGluZSs9MSxlLmxpbmVTdGFydD1lLnBvc2l0aW9ufWZ1bmN0aW9uIGlpKGUsdCxyKXtmb3IodmFyIGk9MCxhPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTthIT09MDspe2Zvcig7ZWQoYSk7KWE9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7aWYodCYmYT09PTM1KWRvIGE9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7d2hpbGUoYSE9PTEwJiZhIT09MTMmJmEhPT0wKTtpZihxcyhhKSlmb3IodmVlKGUpLGE9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGkrKyxlLmxpbmVJbmRlbnQ9MDthPT09MzI7KWUubGluZUluZGVudCsrLGE9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7ZWxzZSBicmVha31yZXR1cm4gciE9PS0xJiZpIT09MCYmZS5saW5lSW5kZW50PHImJmRfKGUsImRlZmljaWVudCBpbmRlbnRhdGlvbiIpLGl9ZnVuY3Rpb24gdV8oZSl7dmFyIHQ9ZS5wb3NpdGlvbixyO3JldHVybiByPWUuaW5wdXQuY2hhckNvZGVBdCh0KSwhISgocj09PTQ1fHxyPT09NDYpJiZyPT09ZS5pbnB1dC5jaGFyQ29kZUF0KHQrMSkmJnI9PT1lLmlucHV0LmNoYXJDb2RlQXQodCsyKSYmKHQrPTMscj1lLmlucHV0LmNoYXJDb2RlQXQodCkscj09PTB8fE1uKHIpKSl9ZnVuY3Rpb24geGVlKGUsdCl7dD09PTE/ZS5yZXN1bHQrPSIgIjp0PjEmJihlLnJlc3VsdCs9cmMucmVwZWF0KGAKYCx0LTEpKX1mdW5jdGlvbiBYRnIoZSx0LHIpe3ZhciBpLGEsbixvLHMsbCxjLHUsZD1lLmtpbmQsaD1lLnJlc3VsdCxmO2lmKGY9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLE1uKGYpfHxLOChmKXx8Zj09PTM1fHxmPT09Mzh8fGY9PT00Mnx8Zj09PTMzfHxmPT09MTI0fHxmPT09NjJ8fGY9PT0zOXx8Zj09PTM0fHxmPT09Mzd8fGY9PT02NHx8Zj09PTk2fHwoZj09PTYzfHxmPT09NDUpJiYoYT1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSxNbihhKXx8ciYmSzgoYSkpKXJldHVybiExO2ZvcihlLmtpbmQ9InNjYWxhciIsZS5yZXN1bHQ9IiIsbj1vPWUucG9zaXRpb24scz0hMTtmIT09MDspe2lmKGY9PT01OCl7aWYoYT1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbisxKSxNbihhKXx8ciYmSzgoYSkpYnJlYWt9ZWxzZSBpZihmPT09MzUpe2lmKGk9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24tMSksTW4oaSkpYnJlYWt9ZWxzZXtpZihlLnBvc2l0aW9uPT09ZS5saW5lU3RhcnQmJnVfKGUpfHxyJiZLOChmKSlicmVhaztpZihxcyhmKSlpZihsPWUubGluZSxjPWUubGluZVN0YXJ0LHU9ZS5saW5lSW5kZW50LGlpKGUsITEsLTEpLGUubGluZUluZGVudD49dCl7cz0hMCxmPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTtjb250aW51ZX1lbHNle2UucG9zaXRpb249byxlLmxpbmU9bCxlLmxpbmVTdGFydD1jLGUubGluZUluZGVudD11O2JyZWFrfX1zJiYobDQoZSxuLG8sITEpLHhlZShlLGUubGluZS1sKSxuPW89ZS5wb3NpdGlvbixzPSExKSxlZChmKXx8KG89ZS5wb3NpdGlvbisxKSxmPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pfXJldHVybiBsNChlLG4sbywhMSksZS5yZXN1bHQ/ITA6KGUua2luZD1kLGUucmVzdWx0PWgsITEpfWZ1bmN0aW9uIFFGcihlLHQpe3ZhciByLGksYTtpZihyPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxyIT09MzkpcmV0dXJuITE7Zm9yKGUua2luZD0ic2NhbGFyIixlLnJlc3VsdD0iIixlLnBvc2l0aW9uKyssaT1hPWUucG9zaXRpb247KHI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pKSE9PTA7KWlmKHI9PT0zOSlpZihsNChlLGksZS5wb3NpdGlvbiwhMCkscj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSxyPT09MzkpaT1lLnBvc2l0aW9uLGUucG9zaXRpb24rKyxhPWUucG9zaXRpb247ZWxzZSByZXR1cm4hMDtlbHNlIHFzKHIpPyhsNChlLGksYSwhMCkseGVlKGUsaWkoZSwhMSx0KSksaT1hPWUucG9zaXRpb24pOmUucG9zaXRpb249PT1lLmxpbmVTdGFydCYmdV8oZSk/d3QoZSwidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik6KGUucG9zaXRpb24rKyxhPWUucG9zaXRpb24pO3d0KGUsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgc2luZ2xlIHF1b3RlZCBzY2FsYXIiKX1mdW5jdGlvbiBKRnIoZSx0KXt2YXIgcixpLGEsbixvLHM7aWYocz1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbikscyE9PTM0KXJldHVybiExO2ZvcihlLmtpbmQ9InNjYWxhciIsZS5yZXN1bHQ9IiIsZS5wb3NpdGlvbisrLHI9aT1lLnBvc2l0aW9uOyhzPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSkhPT0wOyl7aWYocz09PTM0KXJldHVybiBsNChlLHIsZS5wb3NpdGlvbiwhMCksZS5wb3NpdGlvbisrLCEwO2lmKHM9PT05Mil7aWYobDQoZSxyLGUucG9zaXRpb24sITApLHM9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbikscXMocykpaWkoZSwhMSx0KTtlbHNlIGlmKHM8MjU2JiZmVWVbc10pZS5yZXN1bHQrPW1VZVtzXSxlLnBvc2l0aW9uKys7ZWxzZSBpZigobz1XRnIocykpPjApe2ZvcihhPW8sbj0wO2E+MDthLS0pcz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSwobz1VRnIocykpPj0wP249KG48PDQpK286d3QoZSwiZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIik7ZS5yZXN1bHQrPVlGcihuKSxlLnBvc2l0aW9uKyt9ZWxzZSB3dChlLCJ1bmtub3duIGVzY2FwZSBzZXF1ZW5jZSIpO3I9aT1lLnBvc2l0aW9ufWVsc2UgcXMocyk/KGw0KGUscixpLCEwKSx4ZWUoZSxpaShlLCExLHQpKSxyPWk9ZS5wb3NpdGlvbik6ZS5wb3NpdGlvbj09PWUubGluZVN0YXJ0JiZ1XyhlKT93dChlLCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXIiKTooZS5wb3NpdGlvbisrLGk9ZS5wb3NpdGlvbil9d3QoZSwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhciIpfWZ1bmN0aW9uIEtGcihlLHQpe3ZhciByPSEwLGksYT1lLnRhZyxuLG89ZS5hbmNob3IscyxsLGMsdSxkLGg9e30sZix4LHYsYjtpZihiPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxiPT09OTEpbD05MyxkPSExLG49W107ZWxzZSBpZihiPT09MTIzKWw9MTI1LGQ9ITAsbj17fTtlbHNlIHJldHVybiExO2ZvcihlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09biksYj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtiIT09MDspe2lmKGlpKGUsITAsdCksYj1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbiksYj09PWwpcmV0dXJuIGUucG9zaXRpb24rKyxlLnRhZz1hLGUuYW5jaG9yPW8sZS5raW5kPWQ/Im1hcHBpbmciOiJzZXF1ZW5jZSIsZS5yZXN1bHQ9biwhMDtyfHx3dChlLCJtaXNzZWQgY29tbWEgYmV0d2VlbiBmbG93IGNvbGxlY3Rpb24gZW50cmllcyIpLHg9Zj12PW51bGwsYz11PSExLGI9PT02MyYmKHM9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMSksTW4ocykmJihjPXU9ITAsZS5wb3NpdGlvbisrLGlpKGUsITAsdCkpKSxpPWUubGluZSx0cChlLHQsbF8sITEsITApLHg9ZS50YWcsZj1lLnJlc3VsdCxpaShlLCEwLHQpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLCh1fHxlLmxpbmU9PT1pKSYmYj09PTU4JiYoYz0hMCxiPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pLGlpKGUsITAsdCksdHAoZSx0LGxfLCExLCEwKSx2PWUucmVzdWx0KSxkP2VwKGUsbixoLHgsZix2KTpjP24ucHVzaChlcChlLG51bGwsaCx4LGYsdikpOm4ucHVzaChmKSxpaShlLCEwLHQpLGI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pLGI9PT00ND8ocj0hMCxiPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pKTpyPSExfXd0KGUsInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZmxvdyBjb2xsZWN0aW9uIil9ZnVuY3Rpb24gZU9yKGUsdCl7dmFyIHIsaSxhPWJlZSxuPSExLG89ITEscz10LGw9MCxjPSExLHUsZDtpZihkPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxkPT09MTI0KWk9ITE7ZWxzZSBpZihkPT09NjIpaT0hMDtlbHNlIHJldHVybiExO2ZvcihlLmtpbmQ9InNjYWxhciIsZS5yZXN1bHQ9IiI7ZCE9PTA7KWlmKGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksZD09PTQzfHxkPT09NDUpYmVlPT09YT9hPWQ9PT00Mz9sVWU6SEZyOnd0KGUsInJlcGVhdCBvZiBhIGNob21waW5nIG1vZGUgaWRlbnRpZmllciIpO2Vsc2UgaWYoKHU9R0ZyKGQpKT49MCl1PT09MD93dChlLCJiYWQgZXhwbGljaXQgaW5kZW50YXRpb24gd2lkdGggb2YgYSBibG9jayBzY2FsYXI7IGl0IGNhbm5vdCBiZSBsZXNzIHRoYW4gb25lIik6bz93dChlLCJyZXBlYXQgb2YgYW4gaW5kZW50YXRpb24gd2lkdGggaWRlbnRpZmllciIpOihzPXQrdS0xLG89ITApO2Vsc2UgYnJlYWs7aWYoZWQoZCkpe2RvIGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7d2hpbGUoZWQoZCkpO2lmKGQ9PT0zNSlkbyBkPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO3doaWxlKCFxcyhkKSYmZCE9PTApfWZvcig7ZCE9PTA7KXtmb3IodmVlKGUpLGUubGluZUluZGVudD0wLGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pOyghb3x8ZS5saW5lSW5kZW50PHMpJiZkPT09MzI7KWUubGluZUluZGVudCsrLGQ9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7aWYoIW8mJmUubGluZUluZGVudD5zJiYocz1lLmxpbmVJbmRlbnQpLHFzKGQpKXtsKys7Y29udGludWV9aWYoZS5saW5lSW5kZW50PHMpe2E9PT1sVWU/ZS5yZXN1bHQrPXJjLnJlcGVhdChgCmAsbj8xK2w6bCk6YT09PWJlZSYmbiYmKGUucmVzdWx0Kz1gCmApO2JyZWFrfWZvcihpP2VkKGQpPyhjPSEwLGUucmVzdWx0Kz1yYy5yZXBlYXQoYApgLG4/MStsOmwpKTpjPyhjPSExLGUucmVzdWx0Kz1yYy5yZXBlYXQoYApgLGwrMSkpOmw9PT0wP24mJihlLnJlc3VsdCs9IiAiKTplLnJlc3VsdCs9cmMucmVwZWF0KGAKYCxsKTplLnJlc3VsdCs9cmMucmVwZWF0KGAKYCxuPzErbDpsKSxuPSEwLG89ITAsbD0wLHI9ZS5wb3NpdGlvbjshcXMoZCkmJmQhPT0wOylkPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO2w0KGUscixlLnBvc2l0aW9uLCExKX1yZXR1cm4hMH1mdW5jdGlvbiB4VWUoZSx0KXt2YXIgcixpPWUudGFnLGE9ZS5hbmNob3Isbj1bXSxvLHM9ITEsbDtmb3IoZS5hbmNob3IhPT1udWxsJiYoZS5hbmNob3JNYXBbZS5hbmNob3JdPW4pLGw9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pO2whPT0wJiYhKGwhPT00NXx8KG89ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMSksIU1uKG8pKSk7KXtpZihzPSEwLGUucG9zaXRpb24rKyxpaShlLCEwLC0xKSYmZS5saW5lSW5kZW50PD10KXtuLnB1c2gobnVsbCksbD1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbik7Y29udGludWV9aWYocj1lLmxpbmUsdHAoZSx0LHNVZSwhMSwhMCksbi5wdXNoKGUucmVzdWx0KSxpaShlLCEwLC0xKSxsPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSwoZS5saW5lPT09cnx8ZS5saW5lSW5kZW50PnQpJiZsIT09MCl3dChlLCJiYWQgaW5kZW50YXRpb24gb2YgYSBzZXF1ZW5jZSBlbnRyeSIpO2Vsc2UgaWYoZS5saW5lSW5kZW50PHQpYnJlYWt9cmV0dXJuIHM/KGUudGFnPWksZS5hbmNob3I9YSxlLmtpbmQ9InNlcXVlbmNlIixlLnJlc3VsdD1uLCEwKTohMX1mdW5jdGlvbiB0T3IoZSx0LHIpe3ZhciBpLGEsbixvLHM9ZS50YWcsbD1lLmFuY2hvcixjPXt9LHU9e30sZD1udWxsLGg9bnVsbCxmPW51bGwseD0hMSx2PSExLGI7Zm9yKGUuYW5jaG9yIT09bnVsbCYmKGUuYW5jaG9yTWFwW2UuYW5jaG9yXT1jKSxiPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKTtiIT09MDspe2lmKGk9ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMSksbj1lLmxpbmUsbz1lLnBvc2l0aW9uLChiPT09NjN8fGI9PT01OCkmJk1uKGkpKWI9PT02Mz8oeCYmKGVwKGUsYyx1LGQsaCxudWxsKSxkPWg9Zj1udWxsKSx2PSEwLHg9ITAsYT0hMCk6eD8oeD0hMSxhPSEwKTp3dChlLCJpbmNvbXBsZXRlIGV4cGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBrZXkgbm9kZSBpcyBtaXNzZWQ7IG9yIGZvbGxvd2VkIGJ5IGEgbm9uLXRhYnVsYXRlZCBlbXB0eSBsaW5lIiksZS5wb3NpdGlvbis9MSxiPWk7ZWxzZSBpZih0cChlLHIsb1VlLCExLCEwKSlpZihlLmxpbmU9PT1uKXtmb3IoYj1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbik7ZWQoYik7KWI9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7aWYoYj09PTU4KWI9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksTW4oYil8fHd0KGUsImEgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgZXhwZWN0ZWQgYWZ0ZXIgdGhlIGtleS12YWx1ZSBzZXBhcmF0b3Igd2l0aGluIGEgYmxvY2sgbWFwcGluZyIpLHgmJihlcChlLGMsdSxkLGgsbnVsbCksZD1oPWY9bnVsbCksdj0hMCx4PSExLGE9ITEsZD1lLnRhZyxoPWUucmVzdWx0O2Vsc2UgaWYodil3dChlLCJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpO2Vsc2UgcmV0dXJuIGUudGFnPXMsZS5hbmNob3I9bCwhMH1lbHNlIGlmKHYpd3QoZSwiY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Iik7ZWxzZSByZXR1cm4gZS50YWc9cyxlLmFuY2hvcj1sLCEwO2Vsc2UgYnJlYWs7aWYoKGUubGluZT09PW58fGUubGluZUluZGVudD50KSYmKHRwKGUsdCxjXywhMCxhKSYmKHg/aD1lLnJlc3VsdDpmPWUucmVzdWx0KSx4fHwoZXAoZSxjLHUsZCxoLGYsbixvKSxkPWg9Zj1udWxsKSxpaShlLCEwLC0xKSxiPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSksZS5saW5lSW5kZW50PnQmJmIhPT0wKXd0KGUsImJhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnkiKTtlbHNlIGlmKGUubGluZUluZGVudDx0KWJyZWFrfXJldHVybiB4JiZlcChlLGMsdSxkLGgsbnVsbCksdiYmKGUudGFnPXMsZS5hbmNob3I9bCxlLmtpbmQ9Im1hcHBpbmciLGUucmVzdWx0PWMpLHZ9ZnVuY3Rpb24gck9yKGUpe3ZhciB0LHI9ITEsaT0hMSxhLG4sbztpZihvPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxvIT09MzMpcmV0dXJuITE7aWYoZS50YWchPT1udWxsJiZ3dChlLCJkdXBsaWNhdGlvbiBvZiBhIHRhZyBwcm9wZXJ0eSIpLG89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksbz09PTYwPyhyPSEwLG89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbikpOm89PT0zMz8oaT0hMCxhPSIhISIsbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSk6YT0iISIsdD1lLnBvc2l0aW9uLHIpe2RvIG89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7d2hpbGUobyE9PTAmJm8hPT02Mik7ZS5wb3NpdGlvbjxlLmxlbmd0aD8obj1lLmlucHV0LnNsaWNlKHQsZS5wb3NpdGlvbiksbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKSk6d3QoZSwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKX1lbHNle2Zvcig7byE9PTAmJiFNbihvKTspbz09PTMzJiYoaT93dChlLCJ0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGV4Y2xhbWF0aW9uIG1hcmtzIik6KGE9ZS5pbnB1dC5zbGljZSh0LTEsZS5wb3NpdGlvbisxKSxjVWUudGVzdChhKXx8d3QoZSwibmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnMiKSxpPSEwLHQ9ZS5wb3NpdGlvbisxKSksbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtuPWUuaW5wdXQuc2xpY2UodCxlLnBvc2l0aW9uKSxWRnIudGVzdChuKSYmd3QoZSwidGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBmbG93IGluZGljYXRvciBjaGFyYWN0ZXJzIil9cmV0dXJuIG4mJiFkVWUudGVzdChuKSYmd3QoZSwidGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAiK24pLHI/ZS50YWc9bjpzNC5jYWxsKGUudGFnTWFwLGEpP2UudGFnPWUudGFnTWFwW2FdK246YT09PSIhIj9lLnRhZz0iISIrbjphPT09IiEhIj9lLnRhZz0idGFnOnlhbWwub3JnLDIwMDI6IituOnd0KGUsJ3VuZGVjbGFyZWQgdGFnIGhhbmRsZSAiJythKyciJyksITB9ZnVuY3Rpb24gaU9yKGUpe3ZhciB0LHI7aWYocj1lLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbiksciE9PTM4KXJldHVybiExO2ZvcihlLmFuY2hvciE9PW51bGwmJnd0KGUsImR1cGxpY2F0aW9uIG9mIGFuIGFuY2hvciBwcm9wZXJ0eSIpLHI9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksdD1lLnBvc2l0aW9uO3IhPT0wJiYhTW4ocikmJiFLOChyKTspcj1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtyZXR1cm4gZS5wb3NpdGlvbj09PXQmJnd0KGUsIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIiKSxlLmFuY2hvcj1lLmlucHV0LnNsaWNlKHQsZS5wb3NpdGlvbiksITB9ZnVuY3Rpb24gYU9yKGUpe3ZhciB0LHIsaTtpZihpPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSxpIT09NDIpcmV0dXJuITE7Zm9yKGk9ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbiksdD1lLnBvc2l0aW9uO2khPT0wJiYhTW4oaSkmJiFLOChpKTspaT1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTtyZXR1cm4gZS5wb3NpdGlvbj09PXQmJnd0KGUsIm5hbWUgb2YgYW4gYWxpYXMgbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpLHI9ZS5pbnB1dC5zbGljZSh0LGUucG9zaXRpb24pLHM0LmNhbGwoZS5hbmNob3JNYXAscil8fHd0KGUsJ3VuaWRlbnRpZmllZCBhbGlhcyAiJytyKyciJyksZS5yZXN1bHQ9ZS5hbmNob3JNYXBbcl0saWkoZSwhMCwtMSksITB9ZnVuY3Rpb24gdHAoZSx0LHIsaSxhKXt2YXIgbixvLHMsbD0xLGM9ITEsdT0hMSxkLGgsZix4LHY7aWYoZS5saXN0ZW5lciE9PW51bGwmJmUubGlzdGVuZXIoIm9wZW4iLGUpLGUudGFnPW51bGwsZS5hbmNob3I9bnVsbCxlLmtpbmQ9bnVsbCxlLnJlc3VsdD1udWxsLG49bz1zPWNfPT09cnx8c1VlPT09cixpJiZpaShlLCEwLC0xKSYmKGM9ITAsZS5saW5lSW5kZW50PnQ/bD0xOmUubGluZUluZGVudD09PXQ/bD0wOmUubGluZUluZGVudDx0JiYobD0tMSkpLGw9PT0xKWZvcig7ck9yKGUpfHxpT3IoZSk7KWlpKGUsITAsLTEpPyhjPSEwLHM9bixlLmxpbmVJbmRlbnQ+dD9sPTE6ZS5saW5lSW5kZW50PT09dD9sPTA6ZS5saW5lSW5kZW50PHQmJihsPS0xKSk6cz0hMTtpZihzJiYocz1jfHxhKSwobD09PTF8fGNfPT09cikmJihsXz09PXJ8fG9VZT09PXI/eD10Ong9dCsxLHY9ZS5wb3NpdGlvbi1lLmxpbmVTdGFydCxsPT09MT9zJiYoeFVlKGUsdil8fHRPcihlLHYseCkpfHxLRnIoZSx4KT91PSEwOihvJiZlT3IoZSx4KXx8UUZyKGUseCl8fEpGcihlLHgpP3U9ITA6YU9yKGUpPyh1PSEwLChlLnRhZyE9PW51bGx8fGUuYW5jaG9yIT09bnVsbCkmJnd0KGUsImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzIikpOlhGcihlLHgsbF89PT1yKSYmKHU9ITAsZS50YWc9PT1udWxsJiYoZS50YWc9Ij8iKSksZS5hbmNob3IhPT1udWxsJiYoZS5hbmNob3JNYXBbZS5hbmNob3JdPWUucmVzdWx0KSk6bD09PTAmJih1PXMmJnhVZShlLHYpKSksZS50YWchPT1udWxsJiZlLnRhZyE9PSIhIilpZihlLnRhZz09PSI/Iil7Zm9yKGUucmVzdWx0IT09bnVsbCYmZS5raW5kIT09InNjYWxhciImJnd0KGUsJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8Pz4gdGFnOyBpdCBzaG91bGQgYmUgInNjYWxhciIsIG5vdCAiJytlLmtpbmQrJyInKSxkPTAsaD1lLmltcGxpY2l0VHlwZXMubGVuZ3RoO2Q8aDtkKz0xKWlmKGY9ZS5pbXBsaWNpdFR5cGVzW2RdLGYucmVzb2x2ZShlLnJlc3VsdCkpe2UucmVzdWx0PWYuY29uc3RydWN0KGUucmVzdWx0KSxlLnRhZz1mLnRhZyxlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09ZS5yZXN1bHQpO2JyZWFrfX1lbHNlIHM0LmNhbGwoZS50eXBlTWFwW2Uua2luZHx8ImZhbGxiYWNrIl0sZS50YWcpPyhmPWUudHlwZU1hcFtlLmtpbmR8fCJmYWxsYmFjayJdW2UudGFnXSxlLnJlc3VsdCE9PW51bGwmJmYua2luZCE9PWUua2luZCYmd3QoZSwidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwiK2UudGFnKyc+IHRhZzsgaXQgc2hvdWxkIGJlICInK2Yua2luZCsnIiwgbm90ICInK2Uua2luZCsnIicpLGYucmVzb2x2ZShlLnJlc3VsdCk/KGUucmVzdWx0PWYuY29uc3RydWN0KGUucmVzdWx0KSxlLmFuY2hvciE9PW51bGwmJihlLmFuY2hvck1hcFtlLmFuY2hvcl09ZS5yZXN1bHQpKTp3dChlLCJjYW5ub3QgcmVzb2x2ZSBhIG5vZGUgd2l0aCAhPCIrZS50YWcrIj4gZXhwbGljaXQgdGFnIikpOnd0KGUsInVua25vd24gdGFnICE8IitlLnRhZysiPiIpO3JldHVybiBlLmxpc3RlbmVyIT09bnVsbCYmZS5saXN0ZW5lcigiY2xvc2UiLGUpLGUudGFnIT09bnVsbHx8ZS5hbmNob3IhPT1udWxsfHx1fWZ1bmN0aW9uIG5PcihlKXt2YXIgdD1lLnBvc2l0aW9uLHIsaSxhLG49ITEsbztmb3IoZS52ZXJzaW9uPW51bGwsZS5jaGVja0xpbmVCcmVha3M9ZS5sZWdhY3ksZS50YWdNYXA9e30sZS5hbmNob3JNYXA9e307KG89ZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24pKSE9PTAmJihpaShlLCEwLC0xKSxvPWUuaW5wdXQuY2hhckNvZGVBdChlLnBvc2l0aW9uKSwhKGUubGluZUluZGVudD4wfHxvIT09MzcpKTspe2ZvcihuPSEwLG89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbikscj1lLnBvc2l0aW9uO28hPT0wJiYhTW4obyk7KW89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7Zm9yKGk9ZS5pbnB1dC5zbGljZShyLGUucG9zaXRpb24pLGE9W10saS5sZW5ndGg8MSYmd3QoZSwiZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoIik7byE9PTA7KXtmb3IoO2VkKG8pOylvPWUuaW5wdXQuY2hhckNvZGVBdCgrK2UucG9zaXRpb24pO2lmKG89PT0zNSl7ZG8gbz1lLmlucHV0LmNoYXJDb2RlQXQoKytlLnBvc2l0aW9uKTt3aGlsZShvIT09MCYmIXFzKG8pKTticmVha31pZihxcyhvKSlicmVhaztmb3Iocj1lLnBvc2l0aW9uO28hPT0wJiYhTW4obyk7KW89ZS5pbnB1dC5jaGFyQ29kZUF0KCsrZS5wb3NpdGlvbik7YS5wdXNoKGUuaW5wdXQuc2xpY2UocixlLnBvc2l0aW9uKSl9byE9PTAmJnZlZShlKSxzNC5jYWxsKGJVZSxpKT9iVWVbaV0oZSxpLGEpOmRfKGUsJ3Vua25vd24gZG9jdW1lbnQgZGlyZWN0aXZlICInK2krJyInKX1pZihpaShlLCEwLC0xKSxlLmxpbmVJbmRlbnQ9PT0wJiZlLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbik9PT00NSYmZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMSk9PT00NSYmZS5pbnB1dC5jaGFyQ29kZUF0KGUucG9zaXRpb24rMik9PT00NT8oZS5wb3NpdGlvbis9MyxpaShlLCEwLC0xKSk6biYmd3QoZSwiZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCIpLHRwKGUsZS5saW5lSW5kZW50LTEsY18sITEsITApLGlpKGUsITAsLTEpLGUuY2hlY2tMaW5lQnJlYWtzJiZqRnIudGVzdChlLmlucHV0LnNsaWNlKHQsZS5wb3NpdGlvbikpJiZkXyhlLCJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQiKSxlLmRvY3VtZW50cy5wdXNoKGUucmVzdWx0KSxlLnBvc2l0aW9uPT09ZS5saW5lU3RhcnQmJnVfKGUpKXtlLmlucHV0LmNoYXJDb2RlQXQoZS5wb3NpdGlvbik9PT00NiYmKGUucG9zaXRpb24rPTMsaWkoZSwhMCwtMSkpO3JldHVybn1pZihlLnBvc2l0aW9uPGUubGVuZ3RoLTEpd3QoZSwiZW5kIG9mIHRoZSBzdHJlYW0gb3IgYSBkb2N1bWVudCBzZXBhcmF0b3IgaXMgZXhwZWN0ZWQiKTtlbHNlIHJldHVybn1mdW5jdGlvbiB5VWUoZSx0KXtlPVN0cmluZyhlKSx0PXR8fHt9LGUubGVuZ3RoIT09MCYmKGUuY2hhckNvZGVBdChlLmxlbmd0aC0xKSE9PTEwJiZlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSkhPT0xMyYmKGUrPWAKYCksZS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihlPWUuc2xpY2UoMSkpKTt2YXIgcj1uZXcgWkZyKGUsdCksaT1lLmluZGV4T2YoIlwwIik7Zm9yKGkhPT0tMSYmKHIucG9zaXRpb249aSx3dChyLCJudWxsIGJ5dGUgaXMgbm90IGFsbG93ZWQgaW4gaW5wdXQiKSksci5pbnB1dCs9IlwwIjtyLmlucHV0LmNoYXJDb2RlQXQoci5wb3NpdGlvbik9PT0zMjspci5saW5lSW5kZW50Kz0xLHIucG9zaXRpb24rPTE7Zm9yKDtyLnBvc2l0aW9uPHIubGVuZ3RoLTE7KW5PcihyKTtyZXR1cm4gci5kb2N1bWVudHN9ZnVuY3Rpb24gd1VlKGUsdCxyKXt0IT09bnVsbCYmdHlwZW9mIHQ9PSJvYmplY3QiJiZ0eXBlb2Ygcj4idSImJihyPXQsdD1udWxsKTt2YXIgaT15VWUoZSxyKTtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIilyZXR1cm4gaTtmb3IodmFyIGE9MCxuPWkubGVuZ3RoO2E8bjthKz0xKXQoaVthXSl9ZnVuY3Rpb24gTVVlKGUsdCl7dmFyIHI9eVVlKGUsdCk7aWYoci5sZW5ndGghPT0wKXtpZihyLmxlbmd0aD09PTEpcmV0dXJuIHJbMF07dGhyb3cgbmV3IGFVZSgiZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUiKX19ZnVuY3Rpb24gb09yKGUsdCxyKXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbCYmdHlwZW9mIHI+InUiJiYocj10LHQ9bnVsbCksd1VlKGUsdCxyYy5leHRlbmQoe3NjaGVtYTpuVWV9LHIpKX1mdW5jdGlvbiBzT3IoZSx0KXtyZXR1cm4gTVVlKGUscmMuZXh0ZW5kKHtzY2hlbWE6blVlfSx0KSl9azkuZXhwb3J0cy5sb2FkQWxsPXdVZSxrOS5leHBvcnRzLmxvYWQ9TVVlLGs5LmV4cG9ydHMuc2FmZUxvYWRBbGw9b09yLGs5LmV4cG9ydHMuc2FmZUxvYWQ9c09yO3ZhciB0ZH0pO3ZhciBXVWU9amUoKFYkaSxrZWUpPT57InVzZSBzdHJpY3QiO3ZhciBTOT1RNigpLHo5PVg4KCksbE9yPU05KCksY09yPUo4KCksU1VlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcselVlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksZE9yPTksQzk9MTAsdU9yPTEzLHBPcj0zMixoT3I9MzMsZk9yPTM0LENVZT0zNSxtT3I9MzcsZ09yPTM4LGJPcj0zOSx2T3I9NDIsVFVlPTQ0LHhPcj00NSxfVWU9NTgseU9yPTYxLHdPcj02MixNT3I9NjMsa09yPTY0LExVZT05MSxBVWU9OTMsU09yPTk2LERVZT0xMjMsek9yPTEyNCxFVWU9MTI1LF9hPXt9O19hWzBdPSJcXDAiLF9hWzddPSJcXGEiLF9hWzhdPSJcXGIiLF9hWzldPSJcXHQiLF9hWzEwXT0iXFxuIixfYVsxMV09IlxcdiIsX2FbMTJdPSJcXGYiLF9hWzEzXT0iXFxyIixfYVsyN109IlxcZSIsX2FbMzRdPSdcXCInLF9hWzkyXT0iXFxcXCIsX2FbMTMzXT0iXFxOIixfYVsxNjBdPSJcXF8iLF9hWzgyMzJdPSJcXEwiLF9hWzgyMzNdPSJcXFAiO3ZhciBDT3I9WyJ5IiwiWSIsInllcyIsIlllcyIsIllFUyIsIm9uIiwiT24iLCJPTiIsIm4iLCJOIiwibm8iLCJObyIsIk5PIiwib2ZmIiwiT2ZmIiwiT0ZGIl07ZnVuY3Rpb24gVE9yKGUsdCl7dmFyIHIsaSxhLG4sbyxzLGw7aWYodD09PW51bGwpcmV0dXJue307Zm9yKHI9e30saT1PYmplY3Qua2V5cyh0KSxhPTAsbj1pLmxlbmd0aDthPG47YSs9MSlvPWlbYV0scz1TdHJpbmcodFtvXSksby5zbGljZSgwLDIpPT09IiEhIiYmKG89InRhZzp5YW1sLm9yZywyMDAyOiIrby5zbGljZSgyKSksbD1lLmNvbXBpbGVkVHlwZU1hcC5mYWxsYmFja1tvXSxsJiZ6VWUuY2FsbChsLnN0eWxlQWxpYXNlcyxzKSYmKHM9bC5zdHlsZUFsaWFzZXNbc10pLHJbb109cztyZXR1cm4gcn1mdW5jdGlvbiAkVWUoZSl7dmFyIHQscixpO2lmKHQ9ZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSxlPD0yNTUpcj0ieCIsaT0yO2Vsc2UgaWYoZTw9NjU1MzUpcj0idSIsaT00O2Vsc2UgaWYoZTw9NDI5NDk2NzI5NSlyPSJVIixpPTg7ZWxzZSB0aHJvdyBuZXcgejkoImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkYiKTtyZXR1cm4iXFwiK3IrUzkucmVwZWF0KCIwIixpLXQubGVuZ3RoKSt0fWZ1bmN0aW9uIF9PcihlKXt0aGlzLnNjaGVtYT1lLnNjaGVtYXx8bE9yLHRoaXMuaW5kZW50PU1hdGgubWF4KDEsZS5pbmRlbnR8fDIpLHRoaXMubm9BcnJheUluZGVudD1lLm5vQXJyYXlJbmRlbnR8fCExLHRoaXMuc2tpcEludmFsaWQ9ZS5za2lwSW52YWxpZHx8ITEsdGhpcy5mbG93TGV2ZWw9UzkuaXNOb3RoaW5nKGUuZmxvd0xldmVsKT8tMTplLmZsb3dMZXZlbCx0aGlzLnN0eWxlTWFwPVRPcih0aGlzLnNjaGVtYSxlLnN0eWxlc3x8bnVsbCksdGhpcy5zb3J0S2V5cz1lLnNvcnRLZXlzfHwhMSx0aGlzLmxpbmVXaWR0aD1lLmxpbmVXaWR0aHx8ODAsdGhpcy5ub1JlZnM9ZS5ub1JlZnN8fCExLHRoaXMubm9Db21wYXRNb2RlPWUubm9Db21wYXRNb2RlfHwhMSx0aGlzLmNvbmRlbnNlRmxvdz1lLmNvbmRlbnNlRmxvd3x8ITEsdGhpcy5pbXBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQsdGhpcy5leHBsaWNpdFR5cGVzPXRoaXMuc2NoZW1hLmNvbXBpbGVkRXhwbGljaXQsdGhpcy50YWc9bnVsbCx0aGlzLnJlc3VsdD0iIix0aGlzLmR1cGxpY2F0ZXM9W10sdGhpcy51c2VkRHVwbGljYXRlcz1udWxsfWZ1bmN0aW9uIElVZShlLHQpe2Zvcih2YXIgcj1TOS5yZXBlYXQoIiAiLHQpLGk9MCxhPS0xLG49IiIsbyxzPWUubGVuZ3RoO2k8czspYT1lLmluZGV4T2YoYApgLGkpLGE9PT0tMT8obz1lLnNsaWNlKGkpLGk9cyk6KG89ZS5zbGljZShpLGErMSksaT1hKzEpLG8ubGVuZ3RoJiZvIT09YApgJiYobis9ciksbis9bztyZXR1cm4gbn1mdW5jdGlvbiB5ZWUoZSx0KXtyZXR1cm5gCmArUzkucmVwZWF0KCIgIixlLmluZGVudCp0KX1mdW5jdGlvbiBMT3IoZSx0KXt2YXIgcixpLGE7Zm9yKHI9MCxpPWUuaW1wbGljaXRUeXBlcy5sZW5ndGg7cjxpO3IrPTEpaWYoYT1lLmltcGxpY2l0VHlwZXNbcl0sYS5yZXNvbHZlKHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHdlZShlKXtyZXR1cm4gZT09PXBPcnx8ZT09PWRPcn1mdW5jdGlvbiBycChlKXtyZXR1cm4gMzI8PWUmJmU8PTEyNnx8MTYxPD1lJiZlPD01NTI5NSYmZSE9PTgyMzImJmUhPT04MjMzfHw1NzM0NDw9ZSYmZTw9NjU1MzMmJmUhPT02NTI3OXx8NjU1MzY8PWUmJmU8PTExMTQxMTF9ZnVuY3Rpb24gQU9yKGUpe3JldHVybiBycChlKSYmIXdlZShlKSYmZSE9PTY1Mjc5JiZlIT09dU9yJiZlIT09Qzl9ZnVuY3Rpb24gUFVlKGUsdCl7cmV0dXJuIHJwKGUpJiZlIT09NjUyNzkmJmUhPT1UVWUmJmUhPT1MVWUmJmUhPT1BVWUmJmUhPT1EVWUmJmUhPT1FVWUmJmUhPT1fVWUmJihlIT09Q1VlfHx0JiZBT3IodCkpfWZ1bmN0aW9uIERPcihlKXtyZXR1cm4gcnAoZSkmJmUhPT02NTI3OSYmIXdlZShlKSYmZSE9PXhPciYmZSE9PU1PciYmZSE9PV9VZSYmZSE9PVRVZSYmZSE9PUxVZSYmZSE9PUFVZSYmZSE9PURVZSYmZSE9PUVVZSYmZSE9PUNVZSYmZSE9PWdPciYmZSE9PXZPciYmZSE9PWhPciYmZSE9PXpPciYmZSE9PXlPciYmZSE9PXdPciYmZSE9PWJPciYmZSE9PWZPciYmZSE9PW1PciYmZSE9PWtPciYmZSE9PVNPcn1mdW5jdGlvbiBOVWUoZSl7dmFyIHQ9L15cbiogLztyZXR1cm4gdC50ZXN0KGUpfXZhciBGVWU9MSxPVWU9MixSVWU9MyxCVWU9NCxwXz01O2Z1bmN0aW9uIEVPcihlLHQscixpLGEpe3ZhciBuLG8scyxsPSExLGM9ITEsdT1pIT09LTEsZD0tMSxoPURPcihlLmNoYXJDb2RlQXQoMCkpJiYhd2VlKGUuY2hhckNvZGVBdChlLmxlbmd0aC0xKSk7aWYodClmb3Iobj0wO248ZS5sZW5ndGg7bisrKXtpZihvPWUuY2hhckNvZGVBdChuKSwhcnAobykpcmV0dXJuIHBfO3M9bj4wP2UuY2hhckNvZGVBdChuLTEpOm51bGwsaD1oJiZQVWUobyxzKX1lbHNle2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspe2lmKG89ZS5jaGFyQ29kZUF0KG4pLG89PT1DOSlsPSEwLHUmJihjPWN8fG4tZC0xPmkmJmVbZCsxXSE9PSIgIixkPW4pO2Vsc2UgaWYoIXJwKG8pKXJldHVybiBwXztzPW4+MD9lLmNoYXJDb2RlQXQobi0xKTpudWxsLGg9aCYmUFVlKG8scyl9Yz1jfHx1JiZuLWQtMT5pJiZlW2QrMV0hPT0iICJ9cmV0dXJuIWwmJiFjP2gmJiFhKGUpP0ZVZTpPVWU6cj45JiZOVWUoZSk/cF86Yz9CVWU6UlVlfWZ1bmN0aW9uICRPcihlLHQscixpKXtlLmR1bXA9KGZ1bmN0aW9uKCl7aWYodC5sZW5ndGg9PT0wKXJldHVybiInJyI7aWYoIWUubm9Db21wYXRNb2RlJiZDT3IuaW5kZXhPZih0KSE9PS0xKXJldHVybiInIit0KyInIjt2YXIgYT1lLmluZGVudCpNYXRoLm1heCgxLHIpLG49ZS5saW5lV2lkdGg9PT0tMT8tMTpNYXRoLm1heChNYXRoLm1pbihlLmxpbmVXaWR0aCw0MCksZS5saW5lV2lkdGgtYSksbz1pfHxlLmZsb3dMZXZlbD4tMSYmcj49ZS5mbG93TGV2ZWw7ZnVuY3Rpb24gcyhsKXtyZXR1cm4gTE9yKGUsbCl9c3dpdGNoKEVPcih0LG8sZS5pbmRlbnQsbixzKSl7Y2FzZSBGVWU6cmV0dXJuIHQ7Y2FzZSBPVWU6cmV0dXJuIiciK3QucmVwbGFjZSgvJy9nLCInJyIpKyInIjtjYXNlIFJVZTpyZXR1cm4ifCIrSFVlKHQsZS5pbmRlbnQpK3FVZShJVWUodCxhKSk7Y2FzZSBCVWU6cmV0dXJuIj4iK0hVZSh0LGUuaW5kZW50KStxVWUoSVVlKElPcih0LG4pLGEpKTtjYXNlIHBfOnJldHVybiciJytQT3IodCxuKSsnIic7ZGVmYXVsdDp0aHJvdyBuZXcgejkoImltcG9zc2libGUgZXJyb3I6IGludmFsaWQgc2NhbGFyIHN0eWxlIil9fSkoKX1mdW5jdGlvbiBIVWUoZSx0KXt2YXIgcj1OVWUoZSk/U3RyaW5nKHQpOiIiLGk9ZVtlLmxlbmd0aC0xXT09PWAKYCxhPWkmJihlW2UubGVuZ3RoLTJdPT09YApgfHxlPT09YApgKSxuPWE/IisiOmk/IiI6Ii0iO3JldHVybiByK24rYApgfWZ1bmN0aW9uIHFVZShlKXtyZXR1cm4gZVtlLmxlbmd0aC0xXT09PWAKYD9lLnNsaWNlKDAsLTEpOmV9ZnVuY3Rpb24gSU9yKGUsdCl7Zm9yKHZhciByPS8oXG4rKShbXlxuXSopL2csaT0oZnVuY3Rpb24oKXt2YXIgYz1lLmluZGV4T2YoYApgKTtyZXR1cm4gYz1jIT09LTE/YzplLmxlbmd0aCxyLmxhc3RJbmRleD1jLGpVZShlLnNsaWNlKDAsYyksdCl9KSgpLGE9ZVswXT09PWAKYHx8ZVswXT09PSIgIixuLG87bz1yLmV4ZWMoZSk7KXt2YXIgcz1vWzFdLGw9b1syXTtuPWxbMF09PT0iICIsaSs9cysoIWEmJiFuJiZsIT09IiI/YApgOiIiKStqVWUobCx0KSxhPW59cmV0dXJuIGl9ZnVuY3Rpb24galVlKGUsdCl7aWYoZT09PSIifHxlWzBdPT09IiAiKXJldHVybiBlO2Zvcih2YXIgcj0vIFteIF0vZyxpLGE9MCxuLG89MCxzPTAsbD0iIjtpPXIuZXhlYyhlKTspcz1pLmluZGV4LHMtYT50JiYobj1vPmE/bzpzLGwrPWAKYCtlLnNsaWNlKGEsbiksYT1uKzEpLG89cztyZXR1cm4gbCs9YApgLGUubGVuZ3RoLWE+dCYmbz5hP2wrPWUuc2xpY2UoYSxvKStgCmArZS5zbGljZShvKzEpOmwrPWUuc2xpY2UoYSksbC5zbGljZSgxKX1mdW5jdGlvbiBQT3IoZSl7Zm9yKHZhciB0PSIiLHIsaSxhLG49MDtuPGUubGVuZ3RoO24rKyl7aWYocj1lLmNoYXJDb2RlQXQobikscj49NTUyOTYmJnI8PTU2MzE5JiYoaT1lLmNoYXJDb2RlQXQobisxKSxpPj01NjMyMCYmaTw9NTczNDMpKXt0Kz0kVWUoKHItNTUyOTYpKjEwMjQraS01NjMyMCs2NTUzNiksbisrO2NvbnRpbnVlfWE9X2Fbcl0sdCs9IWEmJnJwKHIpP2Vbbl06YXx8JFVlKHIpfXJldHVybiB0fWZ1bmN0aW9uIE5PcihlLHQscil7dmFyIGk9IiIsYT1lLnRhZyxuLG87Zm9yKG49MCxvPXIubGVuZ3RoO248bztuKz0xKXJkKGUsdCxyW25dLCExLCExKSYmKG4hPT0wJiYoaSs9IiwiKyhlLmNvbmRlbnNlRmxvdz8iIjoiICIpKSxpKz1lLmR1bXApO2UudGFnPWEsZS5kdW1wPSJbIitpKyJdIn1mdW5jdGlvbiBGT3IoZSx0LHIsaSl7dmFyIGE9IiIsbj1lLnRhZyxvLHM7Zm9yKG89MCxzPXIubGVuZ3RoO288cztvKz0xKXJkKGUsdCsxLHJbb10sITAsITApJiYoKCFpfHxvIT09MCkmJihhKz15ZWUoZSx0KSksZS5kdW1wJiZDOT09PWUuZHVtcC5jaGFyQ29kZUF0KDApP2ErPSItIjphKz0iLSAiLGErPWUuZHVtcCk7ZS50YWc9bixlLmR1bXA9YXx8IltdIn1mdW5jdGlvbiBPT3IoZSx0LHIpe3ZhciBpPSIiLGE9ZS50YWcsbj1PYmplY3Qua2V5cyhyKSxvLHMsbCxjLHU7Zm9yKG89MCxzPW4ubGVuZ3RoO288cztvKz0xKXU9IiIsbyE9PTAmJih1Kz0iLCAiKSxlLmNvbmRlbnNlRmxvdyYmKHUrPSciJyksbD1uW29dLGM9cltsXSxyZChlLHQsbCwhMSwhMSkmJihlLmR1bXAubGVuZ3RoPjEwMjQmJih1Kz0iPyAiKSx1Kz1lLmR1bXArKGUuY29uZGVuc2VGbG93PyciJzoiIikrIjoiKyhlLmNvbmRlbnNlRmxvdz8iIjoiICIpLHJkKGUsdCxjLCExLCExKSYmKHUrPWUuZHVtcCxpKz11KSk7ZS50YWc9YSxlLmR1bXA9InsiK2krIn0ifWZ1bmN0aW9uIFJPcihlLHQscixpKXt2YXIgYT0iIixuPWUudGFnLG89T2JqZWN0LmtleXMocikscyxsLGMsdSxkLGg7aWYoZS5zb3J0S2V5cz09PSEwKW8uc29ydCgpO2Vsc2UgaWYodHlwZW9mIGUuc29ydEtleXM9PSJmdW5jdGlvbiIpby5zb3J0KGUuc29ydEtleXMpO2Vsc2UgaWYoZS5zb3J0S2V5cyl0aHJvdyBuZXcgejkoInNvcnRLZXlzIG11c3QgYmUgYSBib29sZWFuIG9yIGEgZnVuY3Rpb24iKTtmb3Iocz0wLGw9by5sZW5ndGg7czxsO3MrPTEpaD0iIiwoIWl8fHMhPT0wKSYmKGgrPXllZShlLHQpKSxjPW9bc10sdT1yW2NdLHJkKGUsdCsxLGMsITAsITAsITApJiYoZD1lLnRhZyE9PW51bGwmJmUudGFnIT09Ij8ifHxlLmR1bXAmJmUuZHVtcC5sZW5ndGg+MTAyNCxkJiYoZS5kdW1wJiZDOT09PWUuZHVtcC5jaGFyQ29kZUF0KDApP2grPSI/IjpoKz0iPyAiKSxoKz1lLmR1bXAsZCYmKGgrPXllZShlLHQpKSxyZChlLHQrMSx1LCEwLGQpJiYoZS5kdW1wJiZDOT09PWUuZHVtcC5jaGFyQ29kZUF0KDApP2grPSI6IjpoKz0iOiAiLGgrPWUuZHVtcCxhKz1oKSk7ZS50YWc9bixlLmR1bXA9YXx8Int9In1mdW5jdGlvbiBWVWUoZSx0LHIpe3ZhciBpLGEsbixvLHMsbDtmb3IoYT1yP2UuZXhwbGljaXRUeXBlczplLmltcGxpY2l0VHlwZXMsbj0wLG89YS5sZW5ndGg7bjxvO24rPTEpaWYocz1hW25dLChzLmluc3RhbmNlT2Z8fHMucHJlZGljYXRlKSYmKCFzLmluc3RhbmNlT2Z8fHR5cGVvZiB0PT0ib2JqZWN0IiYmdCBpbnN0YW5jZW9mIHMuaW5zdGFuY2VPZikmJighcy5wcmVkaWNhdGV8fHMucHJlZGljYXRlKHQpKSl7aWYoZS50YWc9cj9zLnRhZzoiPyIscy5yZXByZXNlbnQpe2lmKGw9ZS5zdHlsZU1hcFtzLnRhZ118fHMuZGVmYXVsdFN0eWxlLFNVZS5jYWxsKHMucmVwcmVzZW50KT09PSJbb2JqZWN0IEZ1bmN0aW9uXSIpaT1zLnJlcHJlc2VudCh0LGwpO2Vsc2UgaWYoelVlLmNhbGwocy5yZXByZXNlbnQsbCkpaT1zLnJlcHJlc2VudFtsXSh0LGwpO2Vsc2UgdGhyb3cgbmV3IHo5KCIhPCIrcy50YWcrJz4gdGFnIHJlc29sdmVyIGFjY2VwdHMgbm90ICInK2wrJyIgc3R5bGUnKTtlLmR1bXA9aX1yZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiByZChlLHQscixpLGEsbil7ZS50YWc9bnVsbCxlLmR1bXA9cixWVWUoZSxyLCExKXx8VlVlKGUsciwhMCk7dmFyIG89U1VlLmNhbGwoZS5kdW1wKTtpJiYoaT1lLmZsb3dMZXZlbDwwfHxlLmZsb3dMZXZlbD50KTt2YXIgcz1vPT09IltvYmplY3QgT2JqZWN0XSJ8fG89PT0iW29iamVjdCBBcnJheV0iLGwsYztpZihzJiYobD1lLmR1cGxpY2F0ZXMuaW5kZXhPZihyKSxjPWwhPT0tMSksKGUudGFnIT09bnVsbCYmZS50YWchPT0iPyJ8fGN8fGUuaW5kZW50IT09MiYmdD4wKSYmKGE9ITEpLGMmJmUudXNlZER1cGxpY2F0ZXNbbF0pZS5kdW1wPSIqcmVmXyIrbDtlbHNle2lmKHMmJmMmJiFlLnVzZWREdXBsaWNhdGVzW2xdJiYoZS51c2VkRHVwbGljYXRlc1tsXT0hMCksbz09PSJbb2JqZWN0IE9iamVjdF0iKWkmJk9iamVjdC5rZXlzKGUuZHVtcCkubGVuZ3RoIT09MD8oUk9yKGUsdCxlLmR1bXAsYSksYyYmKGUuZHVtcD0iJnJlZl8iK2wrZS5kdW1wKSk6KE9PcihlLHQsZS5kdW1wKSxjJiYoZS5kdW1wPSImcmVmXyIrbCsiICIrZS5kdW1wKSk7ZWxzZSBpZihvPT09IltvYmplY3QgQXJyYXldIil7dmFyIHU9ZS5ub0FycmF5SW5kZW50JiZ0PjA/dC0xOnQ7aSYmZS5kdW1wLmxlbmd0aCE9PTA/KEZPcihlLHUsZS5kdW1wLGEpLGMmJihlLmR1bXA9IiZyZWZfIitsK2UuZHVtcCkpOihOT3IoZSx1LGUuZHVtcCksYyYmKGUuZHVtcD0iJnJlZl8iK2wrIiAiK2UuZHVtcCkpfWVsc2UgaWYobz09PSJbb2JqZWN0IFN0cmluZ10iKWUudGFnIT09Ij8iJiYkT3IoZSxlLmR1bXAsdCxuKTtlbHNle2lmKGUuc2tpcEludmFsaWQpcmV0dXJuITE7dGhyb3cgbmV3IHo5KCJ1bmFjY2VwdGFibGUga2luZCBvZiBhbiBvYmplY3QgdG8gZHVtcCAiK28pfWUudGFnIT09bnVsbCYmZS50YWchPT0iPyImJihlLmR1bXA9IiE8IitlLnRhZysiPiAiK2UuZHVtcCl9cmV0dXJuITB9ZnVuY3Rpb24gQk9yKGUsdCl7dmFyIHI9W10saT1bXSxhLG47Zm9yKE1lZShlLHIsaSksYT0wLG49aS5sZW5ndGg7YTxuO2ErPTEpdC5kdXBsaWNhdGVzLnB1c2gocltpW2FdXSk7dC51c2VkRHVwbGljYXRlcz1uZXcgQXJyYXkobil9ZnVuY3Rpb24gTWVlKGUsdCxyKXt2YXIgaSxhLG47aWYoZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IilpZihhPXQuaW5kZXhPZihlKSxhIT09LTEpci5pbmRleE9mKGEpPT09LTEmJnIucHVzaChhKTtlbHNlIGlmKHQucHVzaChlKSxBcnJheS5pc0FycmF5KGUpKWZvcihhPTAsbj1lLmxlbmd0aDthPG47YSs9MSlNZWUoZVthXSx0LHIpO2Vsc2UgZm9yKGk9T2JqZWN0LmtleXMoZSksYT0wLG49aS5sZW5ndGg7YTxuO2ErPTEpTWVlKGVbaVthXV0sdCxyKX1mdW5jdGlvbiBVVWUoZSx0KXt0PXR8fHt9O3ZhciByPW5ldyBfT3IodCk7cmV0dXJuIHIubm9SZWZzfHxCT3IoZSxyKSxyZChyLDAsZSwhMCwhMCk/ci5kdW1wK2AKYDoiIn1mdW5jdGlvbiBIT3IoZSx0KXtyZXR1cm4gVVVlKGUsUzkuZXh0ZW5kKHtzY2hlbWE6Y09yfSx0KSl9a2VlLmV4cG9ydHMuZHVtcD1VVWUsa2VlLmV4cG9ydHMuc2FmZUR1bXA9SE9yfSk7dmFyIFlVZT1qZSgoVSRpLCQxKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaF89a1VlKCksR1VlPVdVZSgpO2Z1bmN0aW9uIGZfKGUpe3JldHVybiBmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiRnVuY3Rpb24gIitlKyIgaXMgZGVwcmVjYXRlZCBhbmQgY2Fubm90IGJlIHVzZWQuIil9fSQxLmV4cG9ydHMuVHlwZT14aSgpLCQxLmV4cG9ydHMuU2NoZW1hPUo2KCksJDEuZXhwb3J0cy5GQUlMU0FGRV9TQ0hFTUE9b18oKSwkMS5leHBvcnRzLkpTT05fU0NIRU1BPWZlZSgpLCQxLmV4cG9ydHMuQ09SRV9TQ0hFTUE9bWVlKCksJDEuZXhwb3J0cy5ERUZBVUxUX1NBRkVfU0NIRU1BPUo4KCksJDEuZXhwb3J0cy5ERUZBVUxUX0ZVTExfU0NIRU1BPU05KCksJDEuZXhwb3J0cy5sb2FkPWhfLmxvYWQsJDEuZXhwb3J0cy5sb2FkQWxsPWhfLmxvYWRBbGwsJDEuZXhwb3J0cy5zYWZlTG9hZD1oXy5zYWZlTG9hZCwkMS5leHBvcnRzLnNhZmVMb2FkQWxsPWhfLnNhZmVMb2FkQWxsLCQxLmV4cG9ydHMuZHVtcD1HVWUuZHVtcCwkMS5leHBvcnRzLnNhZmVEdW1wPUdVZS5zYWZlRHVtcCwkMS5leHBvcnRzLllBTUxFeGNlcHRpb249WDgoKSwkMS5leHBvcnRzLk1JTklNQUxfU0NIRU1BPW9fKCksJDEuZXhwb3J0cy5TQUZFX1NDSEVNQT1KOCgpLCQxLmV4cG9ydHMuREVGQVVMVF9TQ0hFTUE9TTkoKSwkMS5leHBvcnRzLnNjYW49Zl8oInNjYW4iKSwkMS5leHBvcnRzLnBhcnNlPWZfKCJwYXJzZSIpLCQxLmV4cG9ydHMuY29tcG9zZT1mXygiY29tcG9zZSIpLCQxLmV4cG9ydHMuYWRkQ29uc3RydWN0b3I9Zl8oImFkZENvbnN0cnVjdG9yIil9KTt2YXIgWFVlPWplKChXJGksWlVlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcU9yPVlVZSgpO1pVZS5leHBvcnRzPXFPcn0pO3ZhciBRVWU9amUoanM9PnsidXNlIHN0cmljdCI7dmFyIGpPcj1qcyYmanMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LHIsaSl7aT09PXZvaWQgMCYmKGk9ciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX0pOihmdW5jdGlvbihlLHQscixpKXtpPT09dm9pZCAwJiYoaT1yKSxlW2ldPXRbcl19KSksVk9yPWpzJiZqcy5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9KTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSksVU9yPWpzJiZqcy5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihlIT1udWxsKWZvcih2YXIgciBpbiBlKXIhPT0iZGVmYXVsdCImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJmpPcih0LGUscik7cmV0dXJuIFZPcih0LGUpLHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShqcywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksanMuanNZYW1sPXZvaWQgMDt2YXIgV09yPVVPcihYVWUoKSk7anMuanNZYW1sPVdPcn0pO3ZhciBLVWU9amUoVG89PnsidXNlIHN0cmljdCI7dmFyIEdPcj1UbyYmVG8uX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LHIsaSl7aT09PXZvaWQgMCYmKGk9ciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX0pOihmdW5jdGlvbihlLHQscixpKXtpPT09dm9pZCAwJiYoaT1yKSxlW2ldPXRbcl19KSksWU9yPVRvJiZUby5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9KTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSksWk9yPVRvJiZUby5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihlIT1udWxsKWZvcih2YXIgciBpbiBlKXIhPT0iZGVmYXVsdCImJk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJkdPcih0LGUscik7cmV0dXJuIFlPcih0LGUpLHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShUbywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksVG8ub2JqZWN0VG9ZYW1sU3RyaW5nPVRvLnlhbWxTdHJpbmdUb09iamVjdD12b2lkIDA7dmFyIEpVZT1aT3IoUVVlKCkpO1RvLnlhbWxTdHJpbmdUb09iamVjdD1hc3luYyhlLHQ9e30pPT5KVWUuanNZYW1sLnNhZmVMb2FkKGUpLFRvLm9iamVjdFRvWWFtbFN0cmluZz1hc3luYyhlLHQ9e30pPT5KVWUuanNZYW1sLnNhZmVEdW1wKGUpfSk7ZnVuY3Rpb24gU2VlKGUpe2lmKGUpdGhyb3cgZX12YXIgZVdlPXAoKCk9Pnt9KTt2YXIgY1dlPWplKChYJGksbFdlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbV89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSx0V2U9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxyV2U9T2JqZWN0LmRlZmluZVByb3BlcnR5LGlXZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGFXZT1mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIEFycmF5LmlzQXJyYXk9PSJmdW5jdGlvbiI/QXJyYXkuaXNBcnJheSh0KTp0V2UuY2FsbCh0KT09PSJbb2JqZWN0IEFycmF5XSJ9LG5XZT1mdW5jdGlvbih0KXtpZighdHx8dFdlLmNhbGwodCkhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTt2YXIgcj1tXy5jYWxsKHQsImNvbnN0cnVjdG9yIiksaT10LmNvbnN0cnVjdG9yJiZ0LmNvbnN0cnVjdG9yLnByb3RvdHlwZSYmbV8uY2FsbCh0LmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpO2lmKHQuY29uc3RydWN0b3ImJiFyJiYhaSlyZXR1cm4hMTt2YXIgYTtmb3IoYSBpbiB0KTtyZXR1cm4gdHlwZW9mIGE+InUifHxtXy5jYWxsKHQsYSl9LG9XZT1mdW5jdGlvbih0LHIpe3JXZSYmci5uYW1lPT09Il9fcHJvdG9fXyI/cldlKHQsci5uYW1lLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyLm5ld1ZhbHVlLHdyaXRhYmxlOiEwfSk6dFtyLm5hbWVdPXIubmV3VmFsdWV9LHNXZT1mdW5jdGlvbih0LHIpe2lmKHI9PT0iX19wcm90b19fIilpZihtXy5jYWxsKHQscikpe2lmKGlXZSlyZXR1cm4gaVdlKHQscikudmFsdWV9ZWxzZSByZXR1cm47cmV0dXJuIHRbcl19O2xXZS5leHBvcnRzPWZ1bmN0aW9uIGUoKXt2YXIgdCxyLGksYSxuLG8scz1hcmd1bWVudHNbMF0sbD0xLGM9YXJndW1lbnRzLmxlbmd0aCx1PSExO2Zvcih0eXBlb2Ygcz09ImJvb2xlYW4iJiYodT1zLHM9YXJndW1lbnRzWzFdfHx7fSxsPTIpLChzPT1udWxsfHx0eXBlb2YgcyE9Im9iamVjdCImJnR5cGVvZiBzIT0iZnVuY3Rpb24iKSYmKHM9e30pO2w8YzsrK2wpaWYodD1hcmd1bWVudHNbbF0sdCE9bnVsbClmb3IociBpbiB0KWk9c1dlKHMsciksYT1zV2UodCxyKSxzIT09YSYmKHUmJmEmJihuV2UoYSl8fChuPWFXZShhKSkpPyhuPyhuPSExLG89aSYmYVdlKGkpP2k6W10pOm89aSYmbldlKGkpP2k6e30sb1dlKHMse25hbWU6cixuZXdWYWx1ZTplKHUsbyxhKX0pKTp0eXBlb2YgYTwidSImJm9XZShzLHtuYW1lOnIsbmV3VmFsdWU6YX0pKTtyZXR1cm4gc319KTt2YXIgYzQ9cCgoKT0+e30pO2Z1bmN0aW9uIFQ5KGUpe2lmKHR5cGVvZiBlIT0ib2JqZWN0Inx8ZT09PW51bGwpcmV0dXJuITE7bGV0IHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBlKSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gZSl9dmFyIGRXZT1wKCgpPT57fSk7ZnVuY3Rpb24gemVlKCl7bGV0IGU9W10sdD17cnVuOnIsdXNlOml9O3JldHVybiB0O2Z1bmN0aW9uIHIoLi4uYSl7bGV0IG49LTEsbz1hLnBvcCgpO2lmKHR5cGVvZiBvIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGZ1bmN0aW9uIGFzIGxhc3QgYXJndW1lbnQsIG5vdCAiK28pO3MobnVsbCwuLi5hKTtmdW5jdGlvbiBzKGwsLi4uYyl7bGV0IHU9ZVsrK25dLGQ9LTE7aWYobCl7byhsKTtyZXR1cm59Zm9yKDsrK2Q8YS5sZW5ndGg7KShjW2RdPT09bnVsbHx8Y1tkXT09PXZvaWQgMCkmJihjW2RdPWFbZF0pO2E9Yyx1P3VXZSh1LHMpKC4uLmMpOm8obnVsbCwuLi5jKX19ZnVuY3Rpb24gaShhKXtpZih0eXBlb2YgYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgbWlkZGVsd2FyZWAgdG8gYmUgYSBmdW5jdGlvbiwgbm90ICIrYSk7cmV0dXJuIGUucHVzaChhKSx0fX1mdW5jdGlvbiB1V2UoZSx0KXtsZXQgcjtyZXR1cm4gaTtmdW5jdGlvbiBpKC4uLm8pe2xldCBzPWUubGVuZ3RoPm8ubGVuZ3RoLGw7cyYmby5wdXNoKGEpO3RyeXtsPWUuYXBwbHkodGhpcyxvKX1jYXRjaChjKXtsZXQgdT1jO2lmKHMmJnIpdGhyb3cgdTtyZXR1cm4gYSh1KX1zfHwobCYmbC50aGVuJiZ0eXBlb2YgbC50aGVuPT0iZnVuY3Rpb24iP2wudGhlbihuLGEpOmwgaW5zdGFuY2VvZiBFcnJvcj9hKGwpOm4obCkpfWZ1bmN0aW9uIGEobywuLi5zKXtyfHwocj0hMCx0KG8sLi4ucykpfWZ1bmN0aW9uIG4obyl7YShudWxsLG8pfX12YXIgcFdlPXAoKCk9Pnt9KTt2YXIgaFdlPXAoKCk9PntwV2UoKX0pO2Z1bmN0aW9uIGQ0KGUpe3JldHVybiFlfHx0eXBlb2YgZSE9Im9iamVjdCI/IiI6InBvc2l0aW9uImluIGV8fCJ0eXBlImluIGU/ZldlKGUucG9zaXRpb24pOiJzdGFydCJpbiBlfHwiZW5kImluIGU/ZldlKGUpOiJsaW5lImluIGV8fCJjb2x1bW4iaW4gZT9DZWUoZSk6IiJ9ZnVuY3Rpb24gQ2VlKGUpe3JldHVybiBtV2UoZSYmZS5saW5lKSsiOiIrbVdlKGUmJmUuY29sdW1uKX1mdW5jdGlvbiBmV2UoZSl7cmV0dXJuIENlZShlJiZlLnN0YXJ0KSsiLSIrQ2VlKGUmJmUuZW5kKX1mdW5jdGlvbiBtV2UoZSl7cmV0dXJuIGUmJnR5cGVvZiBlPT0ibnVtYmVyIj9lOjF9dmFyIGdXZT1wKCgpPT57fSk7dmFyIFRlZT1wKCgpPT57Z1dlKCl9KTt2YXIgTmksYldlPXAoKCk9PntUZWUoKTtOaT1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscixpKXtzdXBlcigpLHR5cGVvZiByPT0ic3RyaW5nIiYmKGk9cixyPXZvaWQgMCk7bGV0IGE9IiIsbj17fSxvPSExO2lmKHImJigibGluZSJpbiByJiYiY29sdW1uImluIHI/bj17cGxhY2U6cn06InN0YXJ0ImluIHImJiJlbmQiaW4gcj9uPXtwbGFjZTpyfToidHlwZSJpbiByP249e2FuY2VzdG9yczpbcl0scGxhY2U6ci5wb3NpdGlvbn06bj17Li4ucn0pLHR5cGVvZiB0PT0ic3RyaW5nIj9hPXQ6IW4uY2F1c2UmJnQmJihvPSEwLGE9dC5tZXNzYWdlLG4uY2F1c2U9dCksIW4ucnVsZUlkJiYhbi5zb3VyY2UmJnR5cGVvZiBpPT0ic3RyaW5nIil7bGV0IGw9aS5pbmRleE9mKCI6Iik7bD09PS0xP24ucnVsZUlkPWk6KG4uc291cmNlPWkuc2xpY2UoMCxsKSxuLnJ1bGVJZD1pLnNsaWNlKGwrMSkpfWlmKCFuLnBsYWNlJiZuLmFuY2VzdG9ycyYmbi5hbmNlc3RvcnMpe2xldCBsPW4uYW5jZXN0b3JzW24uYW5jZXN0b3JzLmxlbmd0aC0xXTtsJiYobi5wbGFjZT1sLnBvc2l0aW9uKX1sZXQgcz1uLnBsYWNlJiYic3RhcnQiaW4gbi5wbGFjZT9uLnBsYWNlLnN0YXJ0Om4ucGxhY2U7dGhpcy5hbmNlc3RvcnM9bi5hbmNlc3RvcnN8fHZvaWQgMCx0aGlzLmNhdXNlPW4uY2F1c2V8fHZvaWQgMCx0aGlzLmNvbHVtbj1zP3MuY29sdW1uOnZvaWQgMCx0aGlzLmZhdGFsPXZvaWQgMCx0aGlzLmZpbGU9IiIsdGhpcy5tZXNzYWdlPWEsdGhpcy5saW5lPXM/cy5saW5lOnZvaWQgMCx0aGlzLm5hbWU9ZDQobi5wbGFjZSl8fCIxOjEiLHRoaXMucGxhY2U9bi5wbGFjZXx8dm9pZCAwLHRoaXMucmVhc29uPXRoaXMubWVzc2FnZSx0aGlzLnJ1bGVJZD1uLnJ1bGVJZHx8dm9pZCAwLHRoaXMuc291cmNlPW4uc291cmNlfHx2b2lkIDAsdGhpcy5zdGFjaz1vJiZuLmNhdXNlJiZ0eXBlb2Ygbi5jYXVzZS5zdGFjaz09InN0cmluZyI/bi5jYXVzZS5zdGFjazoiIix0aGlzLmFjdHVhbD12b2lkIDAsdGhpcy5leHBlY3RlZD12b2lkIDAsdGhpcy5ub3RlPXZvaWQgMCx0aGlzLnVybD12b2lkIDB9fTtOaS5wcm90b3R5cGUuZmlsZT0iIixOaS5wcm90b3R5cGUubmFtZT0iIixOaS5wcm90b3R5cGUucmVhc29uPSIiLE5pLnByb3RvdHlwZS5tZXNzYWdlPSIiLE5pLnByb3RvdHlwZS5zdGFjaz0iIixOaS5wcm90b3R5cGUuY29sdW1uPXZvaWQgMCxOaS5wcm90b3R5cGUubGluZT12b2lkIDAsTmkucHJvdG90eXBlLmFuY2VzdG9ycz12b2lkIDAsTmkucHJvdG90eXBlLmNhdXNlPXZvaWQgMCxOaS5wcm90b3R5cGUuZmF0YWw9dm9pZCAwLE5pLnByb3RvdHlwZS5wbGFjZT12b2lkIDAsTmkucHJvdG90eXBlLnJ1bGVJZD12b2lkIDAsTmkucHJvdG90eXBlLnNvdXJjZT12b2lkIDB9KTt2YXIgdldlPXAoKCk9PntiV2UoKX0pO2Z1bmN0aW9uIFhPcihlLHQpe2lmKHQhPT12b2lkIDAmJnR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCciZXh0IiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7XzkoZSk7bGV0IHI9MCxpPS0xLGE9ZS5sZW5ndGgsbjtpZih0PT09dm9pZCAwfHx0Lmxlbmd0aD09PTB8fHQubGVuZ3RoPmUubGVuZ3RoKXtmb3IoO2EtLTspaWYoZS5jb2RlUG9pbnRBdChhKT09PTQ3KXtpZihuKXtyPWErMTticmVha319ZWxzZSBpPDAmJihuPSEwLGk9YSsxKTtyZXR1cm4gaTwwPyIiOmUuc2xpY2UocixpKX1pZih0PT09ZSlyZXR1cm4iIjtsZXQgbz0tMSxzPXQubGVuZ3RoLTE7Zm9yKDthLS07KWlmKGUuY29kZVBvaW50QXQoYSk9PT00Nyl7aWYobil7cj1hKzE7YnJlYWt9fWVsc2UgbzwwJiYobj0hMCxvPWErMSkscz4tMSYmKGUuY29kZVBvaW50QXQoYSk9PT10LmNvZGVQb2ludEF0KHMtLSk/czwwJiYoaT1hKToocz0tMSxpPW8pKTtyZXR1cm4gcj09PWk/aT1vOmk8MCYmKGk9ZS5sZW5ndGgpLGUuc2xpY2UocixpKX1mdW5jdGlvbiBRT3IoZSl7aWYoXzkoZSksZS5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgdD0tMSxyPWUubGVuZ3RoLGk7Zm9yKDstLXI7KWlmKGUuY29kZVBvaW50QXQocik9PT00Nyl7aWYoaSl7dD1yO2JyZWFrfX1lbHNlIGl8fChpPSEwKTtyZXR1cm4gdDwwP2UuY29kZVBvaW50QXQoMCk9PT00Nz8iLyI6Ii4iOnQ9PT0xJiZlLmNvZGVQb2ludEF0KDApPT09NDc/Ii8vIjplLnNsaWNlKDAsdCl9ZnVuY3Rpb24gSk9yKGUpe185KGUpO2xldCB0PWUubGVuZ3RoLHI9LTEsaT0wLGE9LTEsbj0wLG87Zm9yKDt0LS07KXtsZXQgcz1lLmNvZGVQb2ludEF0KHQpO2lmKHM9PT00Nyl7aWYobyl7aT10KzE7YnJlYWt9Y29udGludWV9cjwwJiYobz0hMCxyPXQrMSkscz09PTQ2P2E8MD9hPXQ6biE9PTEmJihuPTEpOmE+LTEmJihuPS0xKX1yZXR1cm4gYTwwfHxyPDB8fG49PT0wfHxuPT09MSYmYT09PXItMSYmYT09PWkrMT8iIjplLnNsaWNlKGEscil9ZnVuY3Rpb24gS09yKC4uLmUpe2xldCB0PS0xLHI7Zm9yKDsrK3Q8ZS5sZW5ndGg7KV85KGVbdF0pLGVbdF0mJihyPXI9PT12b2lkIDA/ZVt0XTpyKyIvIitlW3RdKTtyZXR1cm4gcj09PXZvaWQgMD8iLiI6ZVJyKHIpfWZ1bmN0aW9uIGVScihlKXtfOShlKTtsZXQgdD1lLmNvZGVQb2ludEF0KDApPT09NDcscj10UnIoZSwhdCk7cmV0dXJuIHIubGVuZ3RoPT09MCYmIXQmJihyPSIuIiksci5sZW5ndGg+MCYmZS5jb2RlUG9pbnRBdChlLmxlbmd0aC0xKT09PTQ3JiYocis9Ii8iKSx0PyIvIityOnJ9ZnVuY3Rpb24gdFJyKGUsdCl7bGV0IHI9IiIsaT0wLGE9LTEsbj0wLG89LTEscyxsO2Zvcig7KytvPD1lLmxlbmd0aDspe2lmKG88ZS5sZW5ndGgpcz1lLmNvZGVQb2ludEF0KG8pO2Vsc2V7aWYocz09PTQ3KWJyZWFrO3M9NDd9aWYocz09PTQ3KXtpZighKGE9PT1vLTF8fG49PT0xKSlpZihhIT09by0xJiZuPT09Mil7aWYoci5sZW5ndGg8Mnx8aSE9PTJ8fHIuY29kZVBvaW50QXQoci5sZW5ndGgtMSkhPT00Nnx8ci5jb2RlUG9pbnRBdChyLmxlbmd0aC0yKSE9PTQ2KXtpZihyLmxlbmd0aD4yKXtpZihsPXIubGFzdEluZGV4T2YoIi8iKSxsIT09ci5sZW5ndGgtMSl7bDwwPyhyPSIiLGk9MCk6KHI9ci5zbGljZSgwLGwpLGk9ci5sZW5ndGgtMS1yLmxhc3RJbmRleE9mKCIvIikpLGE9byxuPTA7Y29udGludWV9fWVsc2UgaWYoci5sZW5ndGg+MCl7cj0iIixpPTAsYT1vLG49MDtjb250aW51ZX19dCYmKHI9ci5sZW5ndGg+MD9yKyIvLi4iOiIuLiIsaT0yKX1lbHNlIHIubGVuZ3RoPjA/cis9Ii8iK2Uuc2xpY2UoYSsxLG8pOnI9ZS5zbGljZShhKzEsbyksaT1vLWEtMTthPW8sbj0wfWVsc2Ugcz09PTQ2JiZuPi0xP24rKzpuPS0xfXJldHVybiByfWZ1bmN0aW9uIF85KGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXRoIG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkICIrSlNPTi5zdHJpbmdpZnkoZSkpfXZhciB2Mix4V2U9cCgoKT0+e3YyPXtiYXNlbmFtZTpYT3IsZGlybmFtZTpRT3IsZXh0bmFtZTpKT3Isam9pbjpLT3Isc2VwOiIvIn19KTtmdW5jdGlvbiByUnIoKXtyZXR1cm4iLyJ9dmFyIHlXZSx3V2U9cCgoKT0+e3lXZT17Y3dkOnJScn19KTtmdW5jdGlvbiBpcChlKXtyZXR1cm4hIShlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiJiYiaHJlZiJpbiBlJiZlLmhyZWYmJiJwcm90b2NvbCJpbiBlJiZlLnByb3RvY29sJiZlLmF1dGg9PT12b2lkIDApfXZhciBfZWU9cCgoKT0+e30pO2Z1bmN0aW9uIE1XZShlKXtpZih0eXBlb2YgZT09InN0cmluZyIpZT1uZXcgVVJMKGUpO2Vsc2UgaWYoIWlwKGUpKXtsZXQgdD1uZXcgVHlwZUVycm9yKCdUaGUgInBhdGgiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4gaW5zdGFuY2Ugb2YgVVJMLiBSZWNlaXZlZCBgJytlKyJgIik7dGhyb3cgdC5jb2RlPSJFUlJfSU5WQUxJRF9BUkdfVFlQRSIsdH1pZihlLnByb3RvY29sIT09ImZpbGU6Iil7bGV0IHQ9bmV3IFR5cGVFcnJvcigiVGhlIFVSTCBtdXN0IGJlIG9mIHNjaGVtZSBmaWxlIik7dGhyb3cgdC5jb2RlPSJFUlJfSU5WQUxJRF9VUkxfU0NIRU1FIix0fXJldHVybiBpUnIoZSl9ZnVuY3Rpb24gaVJyKGUpe2lmKGUuaG9zdG5hbWUhPT0iIil7bGV0IGk9bmV3IFR5cGVFcnJvcignRmlsZSBVUkwgaG9zdCBtdXN0IGJlICJsb2NhbGhvc3QiIG9yIGVtcHR5IG9uIGRhcndpbicpO3Rocm93IGkuY29kZT0iRVJSX0lOVkFMSURfRklMRV9VUkxfSE9TVCIsaX1sZXQgdD1lLnBhdGhuYW1lLHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KWlmKHQuY29kZVBvaW50QXQocik9PT0zNyYmdC5jb2RlUG9pbnRBdChyKzEpPT09NTApe2xldCBpPXQuY29kZVBvaW50QXQocisyKTtpZihpPT09NzB8fGk9PT0xMDIpe2xldCBhPW5ldyBUeXBlRXJyb3IoIkZpbGUgVVJMIHBhdGggbXVzdCBub3QgaW5jbHVkZSBlbmNvZGVkIC8gY2hhcmFjdGVycyIpO3Rocm93IGEuY29kZT0iRVJSX0lOVkFMSURfRklMRV9VUkxfUEFUSCIsYX19cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0KX12YXIga1dlPXAoKCk9PntfZWUoKTtfZWUoKX0pO2Z1bmN0aW9uIEFlZShlLHQpe2lmKGUmJmUuaW5jbHVkZXModjIuc2VwKSl0aHJvdyBuZXcgRXJyb3IoImAiK3QrImAgY2Fubm90IGJlIGEgcGF0aDogZGlkIG5vdCBleHBlY3QgYCIrdjIuc2VwKyJgIil9ZnVuY3Rpb24gRGVlKGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJgIit0KyJgIGNhbm5vdCBiZSBlbXB0eSIpfWZ1bmN0aW9uIFNXZShlLHQpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiU2V0dGluZyBgIit0KyJgIHJlcXVpcmVzIGBwYXRoYCB0byBiZSBzZXQgdG9vIil9ZnVuY3Rpb24gYVJyKGUpe3JldHVybiEhKGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmImJ5dGVMZW5ndGgiaW4gZSYmImJ5dGVPZmZzZXQiaW4gZSl9dmFyIExlZSxMOSx6V2U9cCgoKT0+e3ZXZSgpO3hXZSgpO3dXZSgpO2tXZSgpO0xlZT1bImhpc3RvcnkiLCJwYXRoIiwiYmFzZW5hbWUiLCJzdGVtIiwiZXh0bmFtZSIsImRpcm5hbWUiXSxMOT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXtsZXQgcjt0P2lwKHQpP3I9e3BhdGg6dH06dHlwZW9mIHQ9PSJzdHJpbmcifHxhUnIodCk/cj17dmFsdWU6dH06cj10OnI9e30sdGhpcy5jd2Q9ImN3ZCJpbiByPyIiOnlXZS5jd2QoKSx0aGlzLmRhdGE9e30sdGhpcy5oaXN0b3J5PVtdLHRoaXMubWVzc2FnZXM9W10sdGhpcy52YWx1ZSx0aGlzLm1hcCx0aGlzLnJlc3VsdCx0aGlzLnN0b3JlZDtsZXQgaT0tMTtmb3IoOysraTxMZWUubGVuZ3RoOyl7bGV0IG49TGVlW2ldO24gaW4gciYmcltuXSE9PXZvaWQgMCYmcltuXSE9PW51bGwmJih0aGlzW25dPW49PT0iaGlzdG9yeSI/Wy4uLnJbbl1dOnJbbl0pfWxldCBhO2ZvcihhIGluIHIpTGVlLmluY2x1ZGVzKGEpfHwodGhpc1thXT1yW2FdKX1nZXQgYmFzZW5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/djIuYmFzZW5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGJhc2VuYW1lKHQpe0RlZSh0LCJiYXNlbmFtZSIpLEFlZSh0LCJiYXNlbmFtZSIpLHRoaXMucGF0aD12Mi5qb2luKHRoaXMuZGlybmFtZXx8IiIsdCl9Z2V0IGRpcm5hbWUoKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09InN0cmluZyI/djIuZGlybmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1zZXQgZGlybmFtZSh0KXtTV2UodGhpcy5iYXNlbmFtZSwiZGlybmFtZSIpLHRoaXMucGF0aD12Mi5qb2luKHR8fCIiLHRoaXMuYmFzZW5hbWUpfWdldCBleHRuYW1lKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP3YyLmV4dG5hbWUodGhpcy5wYXRoKTp2b2lkIDB9c2V0IGV4dG5hbWUodCl7aWYoQWVlKHQsImV4dG5hbWUiKSxTV2UodGhpcy5kaXJuYW1lLCJleHRuYW1lIiksdCl7aWYodC5jb2RlUG9pbnRBdCgwKSE9PTQ2KXRocm93IG5ldyBFcnJvcigiYGV4dG5hbWVgIG11c3Qgc3RhcnQgd2l0aCBgLmAiKTtpZih0LmluY2x1ZGVzKCIuIiwxKSl0aHJvdyBuZXcgRXJyb3IoImBleHRuYW1lYCBjYW5ub3QgY29udGFpbiBtdWx0aXBsZSBkb3RzIil9dGhpcy5wYXRoPXYyLmpvaW4odGhpcy5kaXJuYW1lLHRoaXMuc3RlbSsodHx8IiIpKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5Lmxlbmd0aC0xXX1zZXQgcGF0aCh0KXtpcCh0KSYmKHQ9TVdlKHQpKSxEZWUodCwicGF0aCIpLHRoaXMucGF0aCE9PXQmJnRoaXMuaGlzdG9yeS5wdXNoKHQpfWdldCBzdGVtKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PSJzdHJpbmciP3YyLmJhc2VuYW1lKHRoaXMucGF0aCx0aGlzLmV4dG5hbWUpOnZvaWQgMH1zZXQgc3RlbSh0KXtEZWUodCwic3RlbSIpLEFlZSh0LCJzdGVtIiksdGhpcy5wYXRoPXYyLmpvaW4odGhpcy5kaXJuYW1lfHwiIix0Kyh0aGlzLmV4dG5hbWV8fCIiKSl9ZmFpbCh0LHIsaSl7bGV0IGE9dGhpcy5tZXNzYWdlKHQscixpKTt0aHJvdyBhLmZhdGFsPSEwLGF9aW5mbyh0LHIsaSl7bGV0IGE9dGhpcy5tZXNzYWdlKHQscixpKTtyZXR1cm4gYS5mYXRhbD12b2lkIDAsYX1tZXNzYWdlKHQscixpKXtsZXQgYT1uZXcgTmkodCxyLGkpO3JldHVybiB0aGlzLnBhdGgmJihhLm5hbWU9dGhpcy5wYXRoKyI6IithLm5hbWUsYS5maWxlPXRoaXMucGF0aCksYS5mYXRhbD0hMSx0aGlzLm1lc3NhZ2VzLnB1c2goYSksYX10b1N0cmluZyh0KXtyZXR1cm4gdGhpcy52YWx1ZT09PXZvaWQgMD8iIjp0eXBlb2YgdGhpcy52YWx1ZT09InN0cmluZyI/dGhpcy52YWx1ZTpuZXcgVGV4dERlY29kZXIodHx8dm9pZCAwKS5kZWNvZGUodGhpcy52YWx1ZSl9fX0pO3ZhciBDV2U9cCgoKT0+e3pXZSgpfSk7dmFyIFRXZSxfV2U9cCgoKT0+e1RXZT0oZnVuY3Rpb24oZSl7bGV0IGk9dGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsYT1pW2VdLG49ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShuLGFyZ3VtZW50cyl9O3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YobixpKSxufSl9KTtmdW5jdGlvbiAkZWUoZSx0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYCIrZSsiYCB3aXRob3V0IGBwYXJzZXJgIil9ZnVuY3Rpb24gSWVlKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGAiK2UrImAgd2l0aG91dCBgY29tcGlsZXJgIil9ZnVuY3Rpb24gUGVlKGUsdCl7aWYodCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYWxsIGAiK2UrImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxuQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBmaXJzdCwgYnkgY2FsbGluZyBpdDogdXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4iKX1mdW5jdGlvbiBMV2UoZSl7aWYoIVQ5KGUpfHx0eXBlb2YgZS50eXBlIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBub2RlLCBnb3QgYCIrZSsiYCIpfWZ1bmN0aW9uIEFXZShlLHQscil7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJgIitlKyJgIGZpbmlzaGVkIGFzeW5jLiBVc2UgYCIrdCsiYCBpbnN0ZWFkIil9ZnVuY3Rpb24gZ18oZSl7cmV0dXJuIG9ScihlKT9lOm5ldyBMOShlKX1mdW5jdGlvbiBvUnIoZSl7cmV0dXJuISEoZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYibWVzc2FnZSJpbiBlJiYibWVzc2FnZXMiaW4gZSl9ZnVuY3Rpb24gc1JyKGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyJ8fGxScihlKX1mdW5jdGlvbiBsUnIoZSl7cmV0dXJuISEoZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYiYnl0ZUxlbmd0aCJpbiBlJiYiYnl0ZU9mZnNldCJpbiBlKX12YXIgYl8sblJyLEVlZSxBOSxEV2U9cCgoKT0+e2VXZSgpO2JfPWVyKGNXZSgpLDEpO2M0KCk7ZFdlKCk7aFdlKCk7Q1dlKCk7X1dlKCk7blJyPXt9Lmhhc093blByb3BlcnR5LEVlZT1jbGFzcyBlIGV4dGVuZHMgVFdle2NvbnN0cnVjdG9yKCl7c3VwZXIoImNvcHkiKSx0aGlzLkNvbXBpbGVyPXZvaWQgMCx0aGlzLlBhcnNlcj12b2lkIDAsdGhpcy5hdHRhY2hlcnM9W10sdGhpcy5jb21waWxlcj12b2lkIDAsdGhpcy5mcmVlemVJbmRleD0tMSx0aGlzLmZyb3plbj12b2lkIDAsdGhpcy5uYW1lc3BhY2U9e30sdGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMudHJhbnNmb3JtZXJzPXplZSgpfWNvcHkoKXtsZXQgdD1uZXcgZSxyPS0xO2Zvcig7KytyPHRoaXMuYXR0YWNoZXJzLmxlbmd0aDspe2xldCBpPXRoaXMuYXR0YWNoZXJzW3JdO3QudXNlKC4uLmkpfXJldHVybiB0LmRhdGEoKDAsYl8uZGVmYXVsdCkoITAse30sdGhpcy5uYW1lc3BhY2UpKSx0fWRhdGEodCxyKXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP2FyZ3VtZW50cy5sZW5ndGg9PT0yPyhQZWUoImRhdGEiLHRoaXMuZnJvemVuKSx0aGlzLm5hbWVzcGFjZVt0XT1yLHRoaXMpOm5Sci5jYWxsKHRoaXMubmFtZXNwYWNlLHQpJiZ0aGlzLm5hbWVzcGFjZVt0XXx8dm9pZCAwOnQ/KFBlZSgiZGF0YSIsdGhpcy5mcm96ZW4pLHRoaXMubmFtZXNwYWNlPXQsdGhpcyk6dGhpcy5uYW1lc3BhY2V9ZnJlZXplKCl7aWYodGhpcy5mcm96ZW4pcmV0dXJuIHRoaXM7bGV0IHQ9dGhpcztmb3IoOysrdGhpcy5mcmVlemVJbmRleDx0aGlzLmF0dGFjaGVycy5sZW5ndGg7KXtsZXRbciwuLi5pXT10aGlzLmF0dGFjaGVyc1t0aGlzLmZyZWV6ZUluZGV4XTtpZihpWzBdPT09ITEpY29udGludWU7aVswXT09PSEwJiYoaVswXT12b2lkIDApO2xldCBhPXIuY2FsbCh0LC4uLmkpO3R5cGVvZiBhPT0iZnVuY3Rpb24iJiZ0aGlzLnRyYW5zZm9ybWVycy51c2UoYSl9cmV0dXJuIHRoaXMuZnJvemVuPSEwLHRoaXMuZnJlZXplSW5kZXg9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHRoaXN9cGFyc2UodCl7dGhpcy5mcmVlemUoKTtsZXQgcj1nXyh0KSxpPXRoaXMucGFyc2VyfHx0aGlzLlBhcnNlcjtyZXR1cm4gJGVlKCJwYXJzZSIsaSksaShTdHJpbmcocikscil9cHJvY2Vzcyh0LHIpe2xldCBpPXRoaXM7cmV0dXJuIHRoaXMuZnJlZXplKCksJGVlKCJwcm9jZXNzIix0aGlzLnBhcnNlcnx8dGhpcy5QYXJzZXIpLEllZSgicHJvY2VzcyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlcikscj9hKHZvaWQgMCxyKTpuZXcgUHJvbWlzZShhKTtmdW5jdGlvbiBhKG4sbyl7bGV0IHM9Z18odCksbD1pLnBhcnNlKHMpO2kucnVuKGwscyxmdW5jdGlvbih1LGQsaCl7aWYodXx8IWR8fCFoKXJldHVybiBjKHUpO2xldCBmPWQseD1pLnN0cmluZ2lmeShmLGgpO3NScih4KT9oLnZhbHVlPXg6aC5yZXN1bHQ9eCxjKHUsaCl9KTtmdW5jdGlvbiBjKHUsZCl7dXx8IWQ/byh1KTpuP24oZCk6cih2b2lkIDAsZCl9fX1wcm9jZXNzU3luYyh0KXtsZXQgcj0hMSxpO3JldHVybiB0aGlzLmZyZWV6ZSgpLCRlZSgicHJvY2Vzc1N5bmMiLHRoaXMucGFyc2VyfHx0aGlzLlBhcnNlciksSWVlKCJwcm9jZXNzU3luYyIsdGhpcy5jb21waWxlcnx8dGhpcy5Db21waWxlciksdGhpcy5wcm9jZXNzKHQsYSksQVdlKCJwcm9jZXNzU3luYyIsInByb2Nlc3MiLHIpLGk7ZnVuY3Rpb24gYShuLG8pe3I9ITAsU2VlKG4pLGk9b319cnVuKHQscixpKXtMV2UodCksdGhpcy5mcmVlemUoKTtsZXQgYT10aGlzLnRyYW5zZm9ybWVycztyZXR1cm4haSYmdHlwZW9mIHI9PSJmdW5jdGlvbiImJihpPXIscj12b2lkIDApLGk/bih2b2lkIDAsaSk6bmV3IFByb21pc2Uobik7ZnVuY3Rpb24gbihvLHMpe2xldCBsPWdfKHIpO2EucnVuKHQsbCxjKTtmdW5jdGlvbiBjKHUsZCxoKXtsZXQgZj1kfHx0O3U/cyh1KTpvP28oZik6aSh2b2lkIDAsZixoKX19fXJ1blN5bmModCxyKXtsZXQgaT0hMSxhO3JldHVybiB0aGlzLnJ1bih0LHIsbiksQVdlKCJydW5TeW5jIiwicnVuIixpKSxhO2Z1bmN0aW9uIG4obyxzKXtTZWUobyksYT1zLGk9ITB9fXN0cmluZ2lmeSh0LHIpe3RoaXMuZnJlZXplKCk7bGV0IGk9Z18ociksYT10aGlzLmNvbXBpbGVyfHx0aGlzLkNvbXBpbGVyO3JldHVybiBJZWUoInN0cmluZ2lmeSIsYSksTFdlKHQpLGEodCxpKX11c2UodCwuLi5yKXtsZXQgaT10aGlzLmF0dGFjaGVycyxhPXRoaXMubmFtZXNwYWNlO2lmKFBlZSgidXNlIix0aGlzLmZyb3plbiksdCE9bnVsbClpZih0eXBlb2YgdD09ImZ1bmN0aW9uIilsKHQscik7ZWxzZSBpZih0eXBlb2YgdD09Im9iamVjdCIpQXJyYXkuaXNBcnJheSh0KT9zKHQpOm8odCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB1c2FibGUgdmFsdWUsIG5vdCBgIit0KyJgIik7cmV0dXJuIHRoaXM7ZnVuY3Rpb24gbihjKXtpZih0eXBlb2YgYz09ImZ1bmN0aW9uIilsKGMsW10pO2Vsc2UgaWYodHlwZW9mIGM9PSJvYmplY3QiKWlmKEFycmF5LmlzQXJyYXkoYykpe2xldFt1LC4uLmRdPWM7bCh1LGQpfWVsc2UgbyhjKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAiK2MrImAiKX1mdW5jdGlvbiBvKGMpe2lmKCEoInBsdWdpbnMiaW4gYykmJiEoInNldHRpbmdzImluIGMpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlIGJ1dCByZWNlaXZlZCBhbiBlbXB0eSBwcmVzZXQsIHdoaWNoIGlzIHByb2JhYmx5IGEgbWlzdGFrZTogcHJlc2V0cyB0eXBpY2FsbHkgY29tZSB3aXRoIGBwbHVnaW5zYCBhbmQgc29tZXRpbWVzIHdpdGggYHNldHRpbmdzYCwgYnV0IHRoaXMgaGFzIG5laXRoZXIiKTtzKGMucGx1Z2lucyksYy5zZXR0aW5ncyYmKGEuc2V0dGluZ3M9KDAsYl8uZGVmYXVsdCkoITAsYS5zZXR0aW5ncyxjLnNldHRpbmdzKSl9ZnVuY3Rpb24gcyhjKXtsZXQgdT0tMTtpZihjIT1udWxsKWlmKEFycmF5LmlzQXJyYXkoYykpZm9yKDsrK3U8Yy5sZW5ndGg7KXtsZXQgZD1jW3VdO24oZCl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIGxpc3Qgb2YgcGx1Z2lucywgbm90IGAiK2MrImAiKX1mdW5jdGlvbiBsKGMsdSl7bGV0IGQ9LTEsaD0tMTtmb3IoOysrZDxpLmxlbmd0aDspaWYoaVtkXVswXT09PWMpe2g9ZDticmVha31pZihoPT09LTEpaS5wdXNoKFtjLC4uLnVdKTtlbHNlIGlmKHUubGVuZ3RoPjApe2xldFtmLC4uLnhdPXUsdj1pW2hdWzFdO1Q5KHYpJiZUOShmKSYmKGY9KDAsYl8uZGVmYXVsdCkoITAsdixmKSksaVtoXT1bYyxmLC4uLnhdfX19fSxBOT1uZXcgRWVlKCkuZnJlZXplKCl9KTt2YXIgRVdlPXAoKCk9PntEV2UoKX0pO2Z1bmN0aW9uIG5wKGUsdCl7bGV0IHI9U3RyaW5nKGUpO2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBjaGFyYWN0ZXIiKTtsZXQgaT0wLGE9ci5pbmRleE9mKHQpO2Zvcig7YSE9PS0xOylpKyssYT1yLmluZGV4T2YodCxhK3QubGVuZ3RoKTtyZXR1cm4gaX12YXIgTmVlPXAoKCk9Pnt9KTtmdW5jdGlvbiBpZChlKXtyZXR1cm4gZSE9PW51bGwmJihlPDMyfHxlPT09MTI3KX1mdW5jdGlvbiBHZShlKXtyZXR1cm4gZSE9PW51bGwmJmU8LTJ9ZnVuY3Rpb24gSnQoZSl7cmV0dXJuIGUhPT1udWxsJiYoZTwwfHxlPT09MzIpfWZ1bmN0aW9uIGN0KGUpe3JldHVybiBlPT09LTJ8fGU9PT0tMXx8ZT09PTMyfWZ1bmN0aW9uIHU0KGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocil7cmV0dXJuIHIhPT1udWxsJiZyPi0xJiZlLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShyKSl9fXZhciB5aSxJMSwkV2UsRDksSVdlLFBXZSxhZCxWcyxycj1wKCgpPT57eWk9dTQoL1tBLVphLXpdLyksSTE9dTQoL1tcZEEtWmEtel0vKSwkV2U9dTQoL1sjLScqK1wtLTk9P0EtWl4tfl0vKTtEOT11NCgvXGQvKSxJV2U9dTQoL1tcZEEtRmEtZl0vKSxQV2U9dTQoL1shLS86LUBbLWB7LX5dLyk7YWQ9dTQoL1xwe1B9fFxwe1N9L3UpLFZzPXU0KC9ccy8pfSk7ZnVuY3Rpb24gY1JyKGUpe2xldCB0PVtdLHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KXRbcl09aWMoZVtyXSk7cmV0dXJuIHZfKGkpO2Z1bmN0aW9uIGkoLi4uYSl7bGV0IG49LTE7Zm9yKDsrK248dC5sZW5ndGg7KWlmKHRbbl0uYXBwbHkodGhpcyxhKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24gZFJyKGUpe2xldCB0PWU7cmV0dXJuIHZfKHIpO2Z1bmN0aW9uIHIoaSl7bGV0IGE9aSxuO2ZvcihuIGluIGUpaWYoYVtuXSE9PXRbbl0pcmV0dXJuITE7cmV0dXJuITB9fWZ1bmN0aW9uIHVScihlKXtyZXR1cm4gdl8odCk7ZnVuY3Rpb24gdChyKXtyZXR1cm4gciYmci50eXBlPT09ZX19ZnVuY3Rpb24gdl8oZSl7cmV0dXJuIHQ7ZnVuY3Rpb24gdChyLGksYSl7cmV0dXJuISEoTldlKHIpJiZlLmNhbGwodGhpcyxyLHR5cGVvZiBpPT0ibnVtYmVyIj9pOnZvaWQgMCxhfHx2b2lkIDApKX19ZnVuY3Rpb24gcFJyKCl7cmV0dXJuITB9ZnVuY3Rpb24gTldlKGUpe3JldHVybiBlIT09bnVsbCYmdHlwZW9mIGU9PSJvYmplY3QiJiYidHlwZSJpbiBlfXZhciBGV2UsaWMsT1dlPXAoKCk9PntGV2U9KGZ1bmN0aW9uKGUsdCxyLGksYSl7bGV0IG49aWModCk7aWYociE9bnVsbCYmKHR5cGVvZiByIT0ibnVtYmVyInx8cjwwfHxyPT09TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBvc2l0aXZlIGZpbml0ZSBpbmRleCIpO2lmKGkhPW51bGwmJighRldlKGkpfHwhaS5jaGlsZHJlbikpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBwYXJlbnQgbm9kZSIpO2lmKGk9PW51bGwhPShyPT1udWxsKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGJvdGggcGFyZW50IGFuZCBpbmRleCIpO3JldHVybiBOV2UoZSk/bi5jYWxsKGEsZSxyLGkpOiExfSksaWM9KGZ1bmN0aW9uKGUpe2lmKGU9PW51bGwpcmV0dXJuIHBScjtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIilyZXR1cm4gdl8oZSk7aWYodHlwZW9mIGU9PSJvYmplY3QiKXJldHVybiBBcnJheS5pc0FycmF5KGUpP2NScihlKTpkUnIoZSk7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiB1UnIoZSk7dGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBmdW5jdGlvbiwgc3RyaW5nLCBvciBvYmplY3QgYXMgdGVzdCIpfSl9KTt2YXIgeF89cCgoKT0+e09XZSgpfSk7dmFyIFJXZT1wKCgpPT57fSk7ZnVuY3Rpb24gRTkoZSx0LHIsaSl7bGV0IGE7dHlwZW9mIHQ9PSJmdW5jdGlvbiImJnR5cGVvZiByIT0iZnVuY3Rpb24iPyhpPXIscj10KTphPXQ7bGV0IG49aWMoYSksbz1pPy0xOjE7cyhlLHZvaWQgMCxbXSkoKTtmdW5jdGlvbiBzKGwsYyx1KXtsZXQgZD1sJiZ0eXBlb2YgbD09Im9iamVjdCI/bDp7fTtpZih0eXBlb2YgZC50eXBlPT0ic3RyaW5nIil7bGV0IGY9dHlwZW9mIGQudGFnTmFtZT09InN0cmluZyI/ZC50YWdOYW1lOnR5cGVvZiBkLm5hbWU9PSJzdHJpbmciP2QubmFtZTp2b2lkIDA7T2JqZWN0LmRlZmluZVByb3BlcnR5KGgsIm5hbWUiLHt2YWx1ZToibm9kZSAoIisobC50eXBlKyhmPyI8IitmKyI+IjoiIikpKyIpIn0pfXJldHVybiBoO2Z1bmN0aW9uIGgoKXtsZXQgZj1CV2UseCx2LGI7aWYoKCF0fHxuKGwsYyx1W3UubGVuZ3RoLTFdfHx2b2lkIDApKSYmKGY9aFJyKHIobCx1KSksZlswXT09PW5kKSlyZXR1cm4gZjtpZigiY2hpbGRyZW4iaW4gbCYmbC5jaGlsZHJlbil7bGV0IHk9bDtpZih5LmNoaWxkcmVuJiZmWzBdIT09d18pZm9yKHY9KGk/eS5jaGlsZHJlbi5sZW5ndGg6LTEpK28sYj11LmNvbmNhdCh5KTt2Pi0xJiZ2PHkuY2hpbGRyZW4ubGVuZ3RoOyl7bGV0IHc9eS5jaGlsZHJlblt2XTtpZih4PXModyx2LGIpKCkseFswXT09PW5kKXJldHVybiB4O3Y9dHlwZW9mIHhbMV09PSJudW1iZXIiP3hbMV06ditvfX1yZXR1cm4gZn19fWZ1bmN0aW9uIGhScihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOnR5cGVvZiBlPT0ibnVtYmVyIj9beV8sZV06ZT09bnVsbD9CV2U6W2VdfXZhciBCV2UseV8sbmQsd18sSFdlPXAoKCk9Pnt4XygpO1JXZSgpO0JXZT1bXSx5Xz0hMCxuZD0hMSx3Xz0ic2tpcCJ9KTt2YXIgTV89cCgoKT0+e0hXZSgpfSk7ZnVuY3Rpb24gRmVlKGUsdCxyKXtsZXQgYT1pYygocnx8e30pLmlnbm9yZXx8W10pLG49ZlJyKHQpLG89LTE7Zm9yKDsrK288bi5sZW5ndGg7KUU5KGUsInRleHQiLHMpO2Z1bmN0aW9uIHMoYyx1KXtsZXQgZD0tMSxoO2Zvcig7KytkPHUubGVuZ3RoOyl7bGV0IGY9dVtkXSx4PWg/aC5jaGlsZHJlbjp2b2lkIDA7aWYoYShmLHg/eC5pbmRleE9mKGYpOnZvaWQgMCxoKSlyZXR1cm47aD1mfWlmKGgpcmV0dXJuIGwoYyx1KX1mdW5jdGlvbiBsKGMsdSl7bGV0IGQ9dVt1Lmxlbmd0aC0xXSxoPW5bb11bMF0sZj1uW29dWzFdLHg9MCxiPWQuY2hpbGRyZW4uaW5kZXhPZihjKSx5PSExLHc9W107aC5sYXN0SW5kZXg9MDtsZXQgaz1oLmV4ZWMoYy52YWx1ZSk7Zm9yKDtrOyl7bGV0IE89ay5pbmRleCx6PXtpbmRleDprLmluZGV4LGlucHV0OmsuaW5wdXQsc3RhY2s6Wy4uLnUsY119LE09ZiguLi5rLHopO2lmKHR5cGVvZiBNPT0ic3RyaW5nIiYmKE09TS5sZW5ndGg+MD97dHlwZToidGV4dCIsdmFsdWU6TX06dm9pZCAwKSxNPT09ITE/aC5sYXN0SW5kZXg9TysxOih4IT09TyYmdy5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlLnNsaWNlKHgsTyl9KSxBcnJheS5pc0FycmF5KE0pP3cucHVzaCguLi5NKTpNJiZ3LnB1c2goTSkseD1PK2tbMF0ubGVuZ3RoLHk9ITApLCFoLmdsb2JhbClicmVhaztrPWguZXhlYyhjLnZhbHVlKX1yZXR1cm4geT8oeDxjLnZhbHVlLmxlbmd0aCYmdy5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpjLnZhbHVlLnNsaWNlKHgpfSksZC5jaGlsZHJlbi5zcGxpY2UoYiwxLC4uLncpKTp3PVtjXSxiK3cubGVuZ3RofX1mdW5jdGlvbiBmUnIoZSl7bGV0IHQ9W107aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgZmluZCBhbmQgcmVwbGFjZSB0dXBsZSBvciBsaXN0IG9mIHR1cGxlcyIpO2xldCByPSFlWzBdfHxBcnJheS5pc0FycmF5KGVbMF0pP2U6W2VdLGk9LTE7Zm9yKDsrK2k8ci5sZW5ndGg7KXtsZXQgYT1yW2ldO3QucHVzaChbbVJyKGFbMF0pLGdScihhWzFdKV0pfXJldHVybiB0fWZ1bmN0aW9uIG1ScihlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP25ldyBSZWdFeHAoVDYoZSksImciKTplfWZ1bmN0aW9uIGdScihlKXtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpmdW5jdGlvbigpe3JldHVybiBlfX12YXIgcVdlPXAoKCk9Pnt2eigpO01fKCk7eF8oKX0pO3ZhciBqV2U9cCgoKT0+e3FXZSgpfSk7ZnVuY3Rpb24gSGVlKCl7cmV0dXJue3RyYW5zZm9ybXM6W01Scl0sZW50ZXI6e2xpdGVyYWxBdXRvbGluazpiUnIsbGl0ZXJhbEF1dG9saW5rRW1haWw6QmVlLGxpdGVyYWxBdXRvbGlua0h0dHA6QmVlLGxpdGVyYWxBdXRvbGlua1d3dzpCZWV9LGV4aXQ6e2xpdGVyYWxBdXRvbGluazp3UnIsbGl0ZXJhbEF1dG9saW5rRW1haWw6eVJyLGxpdGVyYWxBdXRvbGlua0h0dHA6dlJyLGxpdGVyYWxBdXRvbGlua1d3dzp4UnJ9fX1mdW5jdGlvbiBxZWUoKXtyZXR1cm57dW5zYWZlOlt7Y2hhcmFjdGVyOiJAIixiZWZvcmU6IlsrXFwtLlxcd10iLGFmdGVyOiJbXFwtLlxcd10iLGluQ29uc3RydWN0Ok9lZSxub3RJbkNvbnN0cnVjdDpSZWV9LHtjaGFyYWN0ZXI6Ii4iLGJlZm9yZToiW1d3XSIsYWZ0ZXI6IltcXC0uXFx3XSIsaW5Db25zdHJ1Y3Q6T2VlLG5vdEluQ29uc3RydWN0OlJlZX0se2NoYXJhY3RlcjoiOiIsYmVmb3JlOiJbcHNdIixhZnRlcjoiXFwvIixpbkNvbnN0cnVjdDpPZWUsbm90SW5Db25zdHJ1Y3Q6UmVlfV19fWZ1bmN0aW9uIGJScihlKXt0aGlzLmVudGVyKHt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoiIixjaGlsZHJlbjpbXX0sZSl9ZnVuY3Rpb24gQmVlKGUpe3RoaXMuY29uZmlnLmVudGVyLmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIHZScihlKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rUHJvdG9jb2wuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIHhScihlKXt0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLGUpO2xldCB0PXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07dC50eXBlLHQudXJsPSJodHRwOi8vIit0aGlzLnNsaWNlU2VyaWFsaXplKGUpfWZ1bmN0aW9uIHlScihlKXt0aGlzLmNvbmZpZy5leGl0LmF1dG9saW5rRW1haWwuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIHdScihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gTVJyKGUpe0ZlZShlLFtbLyhodHRwcz86XC9cL3x3d3coPz1cLikpKFstLlx3XSspKFteIFx0XHJcbl0qKS9naSxrUnJdLFsvKD88PV58XHN8XHB7UH18XHB7U30pKFstLlx3K10rKUAoWy1cd10rKD86XC5bLVx3XSspKykvZ3UsU1JyXV0se2lnbm9yZTpbImxpbmsiLCJsaW5rUmVmZXJlbmNlIl19KX1mdW5jdGlvbiBrUnIoZSx0LHIsaSxhKXtsZXQgbj0iIjtpZighVldlKGEpfHwoL153L2kudGVzdCh0KSYmKHI9dCtyLHQ9IiIsbj0iaHR0cDovLyIpLCF6UnIocikpKXJldHVybiExO2xldCBvPUNScihyK2kpO2lmKCFvWzBdKXJldHVybiExO2xldCBzPXt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDpuK3Qrb1swXSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnQrb1swXX1dfTtyZXR1cm4gb1sxXT9bcyx7dHlwZToidGV4dCIsdmFsdWU6b1sxXX1dOnN9ZnVuY3Rpb24gU1JyKGUsdCxyLGkpe3JldHVybiFWV2UoaSwhMCl8fC9bLVxkX10kLy50ZXN0KHIpPyExOnt0eXBlOiJsaW5rIix0aXRsZTpudWxsLHVybDoibWFpbHRvOiIrdCsiQCIrcixjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOnQrIkAiK3J9XX19ZnVuY3Rpb24gelJyKGUpe2xldCB0PWUuc3BsaXQoIi4iKTtyZXR1cm4hKHQubGVuZ3RoPDJ8fHRbdC5sZW5ndGgtMV0mJigvXy8udGVzdCh0W3QubGVuZ3RoLTFdKXx8IS9bYS16QS1aXGRdLy50ZXN0KHRbdC5sZW5ndGgtMV0pKXx8dFt0Lmxlbmd0aC0yXSYmKC9fLy50ZXN0KHRbdC5sZW5ndGgtMl0pfHwhL1thLXpBLVpcZF0vLnRlc3QodFt0Lmxlbmd0aC0yXSkpKX1mdW5jdGlvbiBDUnIoZSl7bGV0IHQ9L1shIiYnKSwuOjs8Pj9cXX1dKyQvLmV4ZWMoZSk7aWYoIXQpcmV0dXJuW2Usdm9pZCAwXTtlPWUuc2xpY2UoMCx0LmluZGV4KTtsZXQgcj10WzBdLGk9ci5pbmRleE9mKCIpIiksYT1ucChlLCIoIiksbj1ucChlLCIpIik7Zm9yKDtpIT09LTEmJmE+bjspZSs9ci5zbGljZSgwLGkrMSkscj1yLnNsaWNlKGkrMSksaT1yLmluZGV4T2YoIikiKSxuKys7cmV0dXJuW2Uscl19ZnVuY3Rpb24gVldlKGUsdCl7bGV0IHI9ZS5pbnB1dC5jaGFyQ29kZUF0KGUuaW5kZXgtMSk7cmV0dXJuKGUuaW5kZXg9PT0wfHxWcyhyKXx8YWQocikpJiYoIXR8fHIhPT00Nyl9dmFyIE9lZSxSZWUsVVdlPXAoKCk9PntOZWUoKTtjNCgpO3JyKCk7aldlKCk7T2VlPSJwaHJhc2luZyIsUmVlPVsiYXV0b2xpbmsiLCJsaW5rIiwiaW1hZ2UiLCJsYWJlbCJdfSk7dmFyIFdXZT1wKCgpPT57VVdlKCl9KTtmdW5jdGlvbiBQMShlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXHRcblxyIF0rL2csIiAiKS5yZXBsYWNlKC9eIHwgJC9nLCIiKS50b0xvd2VyQ2FzZSgpLnRvVXBwZXJDYXNlKCl9dmFyIHA0PXAoKCk9Pnt9KTtmdW5jdGlvbiBUUnIoKXt0aGlzLmJ1ZmZlcigpfWZ1bmN0aW9uIF9ScihlKXt0aGlzLmVudGVyKHt0eXBlOiJmb290bm90ZVJlZmVyZW5jZSIsaWRlbnRpZmllcjoiIixsYWJlbDoiIn0sZSl9ZnVuY3Rpb24gTFJyKCl7dGhpcy5idWZmZXIoKX1mdW5jdGlvbiBBUnIoZSl7dGhpcy5lbnRlcih7dHlwZToiZm9vdG5vdGVEZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOiIiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiBEUnIoZSl7bGV0IHQ9dGhpcy5yZXN1bWUoKSxyPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlLHIuaWRlbnRpZmllcj1QMSh0aGlzLnNsaWNlU2VyaWFsaXplKGUpKS50b0xvd2VyQ2FzZSgpLHIubGFiZWw9dH1mdW5jdGlvbiBFUnIoZSl7dGhpcy5leGl0KGUpfWZ1bmN0aW9uICRScihlKXtsZXQgdD10aGlzLnJlc3VtZSgpLHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtyLnR5cGUsci5pZGVudGlmaWVyPVAxKHRoaXMuc2xpY2VTZXJpYWxpemUoZSkpLnRvTG93ZXJDYXNlKCksci5sYWJlbD10fWZ1bmN0aW9uIElScihlKXt0aGlzLmV4aXQoZSl9ZnVuY3Rpb24gUFJyKCl7cmV0dXJuIlsifWZ1bmN0aW9uIEdXZShlLHQscixpKXtsZXQgYT1yLmNyZWF0ZVRyYWNrZXIoaSksbj1hLm1vdmUoIlteIiksbz1yLmVudGVyKCJmb290bm90ZVJlZmVyZW5jZSIpLHM9ci5lbnRlcigicmVmZXJlbmNlIik7cmV0dXJuIG4rPWEubW92ZShyLnNhZmUoci5hc3NvY2lhdGlvbklkKGUpLHthZnRlcjoiXSIsYmVmb3JlOm59KSkscygpLG8oKSxuKz1hLm1vdmUoIl0iKSxufWZ1bmN0aW9uIGplZSgpe3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVDYWxsU3RyaW5nOlRScixnZm1Gb290bm90ZUNhbGw6X1JyLGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nOkxScixnZm1Gb290bm90ZURlZmluaXRpb246QVJyfSxleGl0OntnZm1Gb290bm90ZUNhbGxTdHJpbmc6RFJyLGdmbUZvb3Rub3RlQ2FsbDpFUnIsZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmc6JFJyLGdmbUZvb3Rub3RlRGVmaW5pdGlvbjpJUnJ9fX1mdW5jdGlvbiBWZWUoZSl7bGV0IHQ9ITE7cmV0dXJuIGUmJmUuZmlyc3RMaW5lQmxhbmsmJih0PSEwKSx7aGFuZGxlcnM6e2Zvb3Rub3RlRGVmaW5pdGlvbjpyLGZvb3Rub3RlUmVmZXJlbmNlOkdXZX0sdW5zYWZlOlt7Y2hhcmFjdGVyOiJbIixpbkNvbnN0cnVjdDpbImxhYmVsIiwicGhyYXNpbmciLCJyZWZlcmVuY2UiXX1dfTtmdW5jdGlvbiByKGksYSxuLG8pe2xldCBzPW4uY3JlYXRlVHJhY2tlcihvKSxsPXMubW92ZSgiW14iKSxjPW4uZW50ZXIoImZvb3Rub3RlRGVmaW5pdGlvbiIpLHU9bi5lbnRlcigibGFiZWwiKTtyZXR1cm4gbCs9cy5tb3ZlKG4uc2FmZShuLmFzc29jaWF0aW9uSWQoaSkse2JlZm9yZTpsLGFmdGVyOiJdIn0pKSx1KCksbCs9cy5tb3ZlKCJdOiIpLGkuY2hpbGRyZW4mJmkuY2hpbGRyZW4ubGVuZ3RoPjAmJihzLnNoaWZ0KDQpLGwrPXMubW92ZSgodD9gCmA6IiAiKStuLmluZGVudExpbmVzKG4uY29udGFpbmVyRmxvdyhpLHMuY3VycmVudCgpKSx0P1lXZTpOUnIpKSksYygpLGx9fWZ1bmN0aW9uIE5ScihlLHQscil7cmV0dXJuIHQ9PT0wP2U6WVdlKGUsdCxyKX1mdW5jdGlvbiBZV2UoZSx0LHIpe3JldHVybihyPyIiOiIgICAgIikrZX12YXIgWldlPXAoKCk9PntjNCgpO3A0KCk7R1dlLnBlZWs9UFJyfSk7dmFyIFhXZT1wKCgpPT57WldlKCl9KTtmdW5jdGlvbiBVZWUoKXtyZXR1cm57Y2FuQ29udGFpbkVvbHM6WyJkZWxldGUiXSxlbnRlcjp7c3RyaWtldGhyb3VnaDpPUnJ9LGV4aXQ6e3N0cmlrZXRocm91Z2g6UlJyfX19ZnVuY3Rpb24gV2VlKCl7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoifiIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpGUnJ9XSxoYW5kbGVyczp7ZGVsZXRlOlFXZX19fWZ1bmN0aW9uIE9ScihlKXt0aGlzLmVudGVyKHt0eXBlOiJkZWxldGUiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiBSUnIoZSl7dGhpcy5leGl0KGUpfWZ1bmN0aW9uIFFXZShlLHQscixpKXtsZXQgYT1yLmNyZWF0ZVRyYWNrZXIoaSksbj1yLmVudGVyKCJzdHJpa2V0aHJvdWdoIiksbz1hLm1vdmUoIn5+Iik7cmV0dXJuIG8rPXIuY29udGFpbmVyUGhyYXNpbmcoZSx7Li4uYS5jdXJyZW50KCksYmVmb3JlOm8sYWZ0ZXI6In4ifSksbys9YS5tb3ZlKCJ+fiIpLG4oKSxvfWZ1bmN0aW9uIEJScigpe3JldHVybiJ+In12YXIgRlJyLEpXZT1wKCgpPT57RlJyPVsiYXV0b2xpbmsiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJkZXN0aW5hdGlvblJhdyIsInJlZmVyZW5jZSIsInRpdGxlUXVvdGUiLCJ0aXRsZUFwb3N0cm9waGUiXTtRV2UucGVlaz1CUnJ9KTt2YXIgS1dlPXAoKCk9PntKV2UoKX0pO2Z1bmN0aW9uIEhScihlKXtyZXR1cm4gZS5sZW5ndGh9ZnVuY3Rpb24gdEdlKGUsdCl7bGV0IHI9dHx8e30saT0oci5hbGlnbnx8W10pLmNvbmNhdCgpLGE9ci5zdHJpbmdMZW5ndGh8fEhScixuPVtdLG89W10scz1bXSxsPVtdLGM9MCx1PS0xO2Zvcig7Kyt1PGUubGVuZ3RoOyl7bGV0IHY9W10sYj1bXSx5PS0xO2ZvcihlW3VdLmxlbmd0aD5jJiYoYz1lW3VdLmxlbmd0aCk7Kyt5PGVbdV0ubGVuZ3RoOyl7bGV0IHc9cVJyKGVbdV1beV0pO2lmKHIuYWxpZ25EZWxpbWl0ZXJzIT09ITEpe2xldCBrPWEodyk7Ylt5XT1rLChsW3ldPT09dm9pZCAwfHxrPmxbeV0pJiYobFt5XT1rKX12LnB1c2godyl9b1t1XT12LHNbdV09Yn1sZXQgZD0tMTtpZih0eXBlb2YgaT09Im9iamVjdCImJiJsZW5ndGgiaW4gaSlmb3IoOysrZDxjOyluW2RdPWVHZShpW2RdKTtlbHNle2xldCB2PWVHZShpKTtmb3IoOysrZDxjOyluW2RdPXZ9ZD0tMTtsZXQgaD1bXSxmPVtdO2Zvcig7KytkPGM7KXtsZXQgdj1uW2RdLGI9IiIseT0iIjt2PT09OTk/KGI9IjoiLHk9IjoiKTp2PT09MTA4P2I9IjoiOnY9PT0xMTQmJih5PSI6Iik7bGV0IHc9ci5hbGlnbkRlbGltaXRlcnM9PT0hMT8xOk1hdGgubWF4KDEsbFtkXS1iLmxlbmd0aC15Lmxlbmd0aCksaz1iKyItIi5yZXBlYXQodykreTtyLmFsaWduRGVsaW1pdGVycyE9PSExJiYodz1iLmxlbmd0aCt3K3kubGVuZ3RoLHc+bFtkXSYmKGxbZF09dyksZltkXT13KSxoW2RdPWt9by5zcGxpY2UoMSwwLGgpLHMuc3BsaWNlKDEsMCxmKSx1PS0xO2xldCB4PVtdO2Zvcig7Kyt1PG8ubGVuZ3RoOyl7bGV0IHY9b1t1XSxiPXNbdV07ZD0tMTtsZXQgeT1bXTtmb3IoOysrZDxjOyl7bGV0IHc9dltkXXx8IiIsaz0iIixPPSIiO2lmKHIuYWxpZ25EZWxpbWl0ZXJzIT09ITEpe2xldCB6PWxbZF0tKGJbZF18fDApLE09bltkXTtNPT09MTE0P2s9IiAiLnJlcGVhdCh6KTpNPT09OTk/eiUyPyhrPSIgIi5yZXBlYXQoei8yKy41KSxPPSIgIi5yZXBlYXQoei8yLS41KSk6KGs9IiAiLnJlcGVhdCh6LzIpLE89ayk6Tz0iICIucmVwZWF0KHopfXIuZGVsaW1pdGVyU3RhcnQhPT0hMSYmIWQmJnkucHVzaCgifCIpLHIucGFkZGluZyE9PSExJiYhKHIuYWxpZ25EZWxpbWl0ZXJzPT09ITEmJnc9PT0iIikmJihyLmRlbGltaXRlclN0YXJ0IT09ITF8fGQpJiZ5LnB1c2goIiAiKSxyLmFsaWduRGVsaW1pdGVycyE9PSExJiZ5LnB1c2goaykseS5wdXNoKHcpLHIuYWxpZ25EZWxpbWl0ZXJzIT09ITEmJnkucHVzaChPKSxyLnBhZGRpbmchPT0hMSYmeS5wdXNoKCIgIiksKHIuZGVsaW1pdGVyRW5kIT09ITF8fGQhPT1jLTEpJiZ5LnB1c2goInwiKX14LnB1c2goci5kZWxpbWl0ZXJFbmQ9PT0hMT95LmpvaW4oIiIpLnJlcGxhY2UoLyArJC8sIiIpOnkuam9pbigiIikpfXJldHVybiB4LmpvaW4oYApgKX1mdW5jdGlvbiBxUnIoZSl7cmV0dXJuIGU9PW51bGw/IiI6U3RyaW5nKGUpfWZ1bmN0aW9uIGVHZShlKXtsZXQgdD10eXBlb2YgZT09InN0cmluZyI/ZS5jb2RlUG9pbnRBdCgwKTowO3JldHVybiB0PT09Njd8fHQ9PT05OT85OTp0PT09NzZ8fHQ9PT0xMDg/MTA4OnQ9PT04Mnx8dD09PTExND8xMTQ6MH12YXIgckdlPXAoKCk9Pnt9KTtmdW5jdGlvbiBrXyhlLHQpe2xldCByPXR8fHt9O2Z1bmN0aW9uIGkoYSwuLi5uKXtsZXQgbz1pLmludmFsaWQscz1pLmhhbmRsZXJzO2lmKGEmJmlHZS5jYWxsKGEsZSkpe2xldCBsPVN0cmluZyhhW2VdKTtvPWlHZS5jYWxsKHMsbCk/c1tsXTppLnVua25vd259aWYobylyZXR1cm4gby5jYWxsKHRoaXMsYSwuLi5uKX1yZXR1cm4gaS5oYW5kbGVycz1yLmhhbmRsZXJzfHx7fSxpLmludmFsaWQ9ci5pbnZhbGlkLGkudW5rbm93bj1yLnVua25vd24saX12YXIgaUdlLEdlZT1wKCgpPT57aUdlPXt9Lmhhc093blByb3BlcnR5fSk7ZnVuY3Rpb24gWWVlKGUsdCl7bGV0IHI9LTEsaTtpZih0LmV4dGVuc2lvbnMpZm9yKDsrK3I8dC5leHRlbnNpb25zLmxlbmd0aDspWWVlKGUsdC5leHRlbnNpb25zW3JdKTtmb3IoaSBpbiB0KWlmKGpSci5jYWxsKHQsaSkpc3dpdGNoKGkpe2Nhc2UiZXh0ZW5zaW9ucyI6YnJlYWs7Y2FzZSJ1bnNhZmUiOnthR2UoZVtpXSx0W2ldKTticmVha31jYXNlImpvaW4iOnthR2UoZVtpXSx0W2ldKTticmVha31jYXNlImhhbmRsZXJzIjp7VlJyKGVbaV0sdFtpXSk7YnJlYWt9ZGVmYXVsdDplLm9wdGlvbnNbaV09dFtpXX1yZXR1cm4gZX1mdW5jdGlvbiBhR2UoZSx0KXt0JiZlLnB1c2goLi4udCl9ZnVuY3Rpb24gVlJyKGUsdCl7dCYmT2JqZWN0LmFzc2lnbihlLHQpfXZhciBqUnIsbkdlPXAoKCk9PntqUnI9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiBvR2UoZSx0LHIsaSl7bGV0IGE9ci5lbnRlcigiYmxvY2txdW90ZSIpLG49ci5jcmVhdGVUcmFja2VyKGkpO24ubW92ZSgiPiAiKSxuLnNoaWZ0KDIpO2xldCBvPXIuaW5kZW50TGluZXMoci5jb250YWluZXJGbG93KGUsbi5jdXJyZW50KCkpLFVScik7cmV0dXJuIGEoKSxvfWZ1bmN0aW9uIFVScihlLHQscil7cmV0dXJuIj4iKyhyPyIiOiIgIikrZX12YXIgc0dlPXAoKCk9Pnt9KTtmdW5jdGlvbiBTXyhlLHQpe3JldHVybiBsR2UoZSx0LmluQ29uc3RydWN0LCEwKSYmIWxHZShlLHQubm90SW5Db25zdHJ1Y3QsITEpfWZ1bmN0aW9uIGxHZShlLHQscil7aWYodHlwZW9mIHQ9PSJzdHJpbmciJiYodD1bdF0pLCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIHI7bGV0IGk9LTE7Zm9yKDsrK2k8dC5sZW5ndGg7KWlmKGUuaW5jbHVkZXModFtpXSkpcmV0dXJuITA7cmV0dXJuITF9dmFyIFplZT1wKCgpPT57fSk7ZnVuY3Rpb24gWGVlKGUsdCxyLGkpe2xldCBhPS0xO2Zvcig7KythPHIudW5zYWZlLmxlbmd0aDspaWYoci51bnNhZmVbYV0uY2hhcmFjdGVyPT09YApgJiZTXyhyLnN0YWNrLHIudW5zYWZlW2FdKSlyZXR1cm4vWyBcdF0vLnRlc3QoaS5iZWZvcmUpPyIiOiIgIjtyZXR1cm5gXFwKYH12YXIgY0dlPXAoKCk9PntaZWUoKX0pO2Z1bmN0aW9uIGRHZShlLHQpe2xldCByPVN0cmluZyhlKSxpPXIuaW5kZXhPZih0KSxhPWksbj0wLG89MDtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgc3Vic3RyaW5nIik7Zm9yKDtpIT09LTE7KWk9PT1hPysrbj5vJiYobz1uKTpuPTEsYT1pK3QubGVuZ3RoLGk9ci5pbmRleE9mKHQsYSk7cmV0dXJuIG99dmFyIHVHZT1wKCgpPT57fSk7ZnVuY3Rpb24gJDkoZSx0KXtyZXR1cm4hISh0Lm9wdGlvbnMuZmVuY2VzPT09ITEmJmUudmFsdWUmJiFlLmxhbmcmJi9bXiBcclxuXS8udGVzdChlLnZhbHVlKSYmIS9eW1x0IF0qKD86W1xyXG5dfCQpfCg/Ol58W1xyXG5dKVtcdCBdKiQvLnRlc3QoZS52YWx1ZSkpfXZhciBRZWU9cCgoKT0+e30pO2Z1bmN0aW9uIHBHZShlKXtsZXQgdD1lLm9wdGlvbnMuZmVuY2V8fCJgIjtpZih0IT09ImAiJiZ0IT09In4iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBjb2RlIHdpdGggYCIrdCsiYCBmb3IgYG9wdGlvbnMuZmVuY2VgLCBleHBlY3RlZCBgYCBgIGBgIG9yIGB+YCIpO3JldHVybiB0fXZhciBoR2U9cCgoKT0+e30pO2Z1bmN0aW9uIGZHZShlLHQscixpKXtsZXQgYT1wR2Uociksbj1lLnZhbHVlfHwiIixvPWE9PT0iYCI/IkdyYXZlQWNjZW50IjoiVGlsZGUiO2lmKCQ5KGUscikpe2xldCBkPXIuZW50ZXIoImNvZGVJbmRlbnRlZCIpLGg9ci5pbmRlbnRMaW5lcyhuLFdScik7cmV0dXJuIGQoKSxofWxldCBzPXIuY3JlYXRlVHJhY2tlcihpKSxsPWEucmVwZWF0KE1hdGgubWF4KGRHZShuLGEpKzEsMykpLGM9ci5lbnRlcigiY29kZUZlbmNlZCIpLHU9cy5tb3ZlKGwpO2lmKGUubGFuZyl7bGV0IGQ9ci5lbnRlcihgY29kZUZlbmNlZExhbmcke299YCk7dSs9cy5tb3ZlKHIuc2FmZShlLmxhbmcse2JlZm9yZTp1LGFmdGVyOiIgIixlbmNvZGU6WyJgIl0sLi4ucy5jdXJyZW50KCl9KSksZCgpfWlmKGUubGFuZyYmZS5tZXRhKXtsZXQgZD1yLmVudGVyKGBjb2RlRmVuY2VkTWV0YSR7b31gKTt1Kz1zLm1vdmUoIiAiKSx1Kz1zLm1vdmUoci5zYWZlKGUubWV0YSx7YmVmb3JlOnUsYWZ0ZXI6YApgLGVuY29kZTpbImAiXSwuLi5zLmN1cnJlbnQoKX0pKSxkKCl9cmV0dXJuIHUrPXMubW92ZShgCmApLG4mJih1Kz1zLm1vdmUobitgCmApKSx1Kz1zLm1vdmUobCksYygpLHV9ZnVuY3Rpb24gV1JyKGUsdCxyKXtyZXR1cm4ocj8iIjoiICAgICIpK2V9dmFyIG1HZT1wKCgpPT57dUdlKCk7UWVlKCk7aEdlKCl9KTtmdW5jdGlvbiBvcChlKXtsZXQgdD1lLm9wdGlvbnMucXVvdGV8fCciJztpZih0IT09JyInJiZ0IT09IiciKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSB0aXRsZSB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLnF1b3RlYCwgZXhwZWN0ZWQgYFwiYCwgb3IgYCdgIik7cmV0dXJuIHR9dmFyIHpfPXAoKCk9Pnt9KTtmdW5jdGlvbiBnR2UoZSx0LHIsaSl7bGV0IGE9b3Aociksbj1hPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89ci5lbnRlcigiZGVmaW5pdGlvbiIpLHM9ci5lbnRlcigibGFiZWwiKSxsPXIuY3JlYXRlVHJhY2tlcihpKSxjPWwubW92ZSgiWyIpO3JldHVybiBjKz1sLm1vdmUoci5zYWZlKHIuYXNzb2NpYXRpb25JZChlKSx7YmVmb3JlOmMsYWZ0ZXI6Il0iLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZSgiXTogIikscygpLCFlLnVybHx8L1tcMC0gXHUwMDdGXS8udGVzdChlLnVybCk/KHM9ci5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksYys9bC5tb3ZlKCI8IiksYys9bC5tb3ZlKHIuc2FmZShlLnVybCx7YmVmb3JlOmMsYWZ0ZXI6Ij4iLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZSgiPiIpKToocz1yLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGMrPWwubW92ZShyLnNhZmUoZS51cmwse2JlZm9yZTpjLGFmdGVyOmUudGl0bGU/IiAiOmAKYCwuLi5sLmN1cnJlbnQoKX0pKSkscygpLGUudGl0bGUmJihzPXIuZW50ZXIoYHRpdGxlJHtufWApLGMrPWwubW92ZSgiICIrYSksYys9bC5tb3ZlKHIuc2FmZShlLnRpdGxlLHtiZWZvcmU6YyxhZnRlcjphLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZShhKSxzKCkpLG8oKSxjfXZhciBiR2U9cCgoKT0+e3pfKCl9KTtmdW5jdGlvbiB2R2UoZSl7bGV0IHQ9ZS5vcHRpb25zLmVtcGhhc2lzfHwiKiI7aWYodCE9PSIqIiYmdCE9PSJfIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgZW1waGFzaXMgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5lbXBoYXNpc2AsIGV4cGVjdGVkIGAqYCwgb3IgYF9gIik7cmV0dXJuIHR9dmFyIHhHZT1wKCgpPT57fSk7ZnVuY3Rpb24gVW4oZSl7cmV0dXJuIiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIHNwPXAoKCk9Pnt9KTtmdW5jdGlvbiBhYyhlKXtpZihlPT09bnVsbHx8SnQoZSl8fFZzKGUpKXJldHVybiAxO2lmKGFkKGUpKXJldHVybiAyfXZhciBDXz1wKCgpPT57cnIoKX0pO2Z1bmN0aW9uIGxwKGUsdCxyKXtsZXQgaT1hYyhlKSxhPWFjKHQpO3JldHVybiBpPT09dm9pZCAwP2E9PT12b2lkIDA/cj09PSJfIj97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06YT09PTE/e2luc2lkZTohMCxvdXRzaWRlOiEwfTp7aW5zaWRlOiExLG91dHNpZGU6ITB9Omk9PT0xP2E9PT12b2lkIDA/e2luc2lkZTohMSxvdXRzaWRlOiExfTphPT09MT97aW5zaWRlOiEwLG91dHNpZGU6ITB9OntpbnNpZGU6ITEsb3V0c2lkZTohMX06YT09PXZvaWQgMD97aW5zaWRlOiExLG91dHNpZGU6ITF9OmE9PT0xP3tpbnNpZGU6ITAsb3V0c2lkZTohMX06e2luc2lkZTohMSxvdXRzaWRlOiExfX12YXIgSmVlPXAoKCk9PntDXygpfSk7ZnVuY3Rpb24gS2VlKGUsdCxyLGkpe2xldCBhPXZHZShyKSxuPXIuZW50ZXIoImVtcGhhc2lzIiksbz1yLmNyZWF0ZVRyYWNrZXIoaSkscz1vLm1vdmUoYSksbD1vLm1vdmUoci5jb250YWluZXJQaHJhc2luZyhlLHthZnRlcjphLGJlZm9yZTpzLC4uLm8uY3VycmVudCgpfSkpLGM9bC5jaGFyQ29kZUF0KDApLHU9bHAoaS5iZWZvcmUuY2hhckNvZGVBdChpLmJlZm9yZS5sZW5ndGgtMSksYyxhKTt1Lmluc2lkZSYmKGw9VW4oYykrbC5zbGljZSgxKSk7bGV0IGQ9bC5jaGFyQ29kZUF0KGwubGVuZ3RoLTEpLGg9bHAoaS5hZnRlci5jaGFyQ29kZUF0KDApLGQsYSk7aC5pbnNpZGUmJihsPWwuc2xpY2UoMCwtMSkrVW4oZCkpO2xldCBmPW8ubW92ZShhKTtyZXR1cm4gbigpLHIuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpoLm91dHNpZGUsYmVmb3JlOnUub3V0c2lkZX0scytsK2Z9ZnVuY3Rpb24gR1JyKGUsdCxyKXtyZXR1cm4gci5vcHRpb25zLmVtcGhhc2lzfHwiKiJ9dmFyIHlHZT1wKCgpPT57eEdlKCk7c3AoKTtKZWUoKTtLZWUucGVlaz1HUnJ9KTtmdW5jdGlvbiBJOShlLHQscixpKXtsZXQgYSxuLG87dHlwZW9mIHQ9PSJmdW5jdGlvbiImJnR5cGVvZiByIT0iZnVuY3Rpb24iPyhuPXZvaWQgMCxvPXQsYT1yKToobj10LG89cixhPWkpLEU5KGUsbixzLGEpO2Z1bmN0aW9uIHMobCxjKXtsZXQgdT1jW2MubGVuZ3RoLTFdLGQ9dT91LmNoaWxkcmVuLmluZGV4T2YobCk6dm9pZCAwO3JldHVybiBvKGwsZCx1KX19dmFyIHdHZT1wKCgpPT57TV8oKTtNXygpfSk7dmFyIGV0ZT1wKCgpPT57d0dlKCl9KTtmdW5jdGlvbiBvZChlLHQpe2xldCByPXR8fFlScixpPXR5cGVvZiByLmluY2x1ZGVJbWFnZUFsdD09ImJvb2xlYW4iP3IuaW5jbHVkZUltYWdlQWx0OiEwLGE9dHlwZW9mIHIuaW5jbHVkZUh0bWw9PSJib29sZWFuIj9yLmluY2x1ZGVIdG1sOiEwO3JldHVybiBNR2UoZSxpLGEpfWZ1bmN0aW9uIE1HZShlLHQscil7aWYoWlJyKGUpKXtpZigidmFsdWUiaW4gZSlyZXR1cm4gZS50eXBlPT09Imh0bWwiJiYhcj8iIjplLnZhbHVlO2lmKHQmJiJhbHQiaW4gZSYmZS5hbHQpcmV0dXJuIGUuYWx0O2lmKCJjaGlsZHJlbiJpbiBlKXJldHVybiBrR2UoZS5jaGlsZHJlbix0LHIpfXJldHVybiBBcnJheS5pc0FycmF5KGUpP2tHZShlLHQscik6IiJ9ZnVuY3Rpb24ga0dlKGUsdCxyKXtsZXQgaT1bXSxhPS0xO2Zvcig7KythPGUubGVuZ3RoOylpW2FdPU1HZShlW2FdLHQscik7cmV0dXJuIGkuam9pbigiIil9ZnVuY3Rpb24gWlJyKGUpe3JldHVybiEhKGUmJnR5cGVvZiBlPT0ib2JqZWN0Iil9dmFyIFlScixTR2U9cCgoKT0+e1lScj17fX0pO3ZhciBUXz1wKCgpPT57U0dlKCl9KTtmdW5jdGlvbiBfXyhlLHQpe2xldCByPSExO3JldHVybiBJOShlLGZ1bmN0aW9uKGkpe2lmKCJ2YWx1ZSJpbiBpJiYvXHI/XG58XHIvLnRlc3QoaS52YWx1ZSl8fGkudHlwZT09PSJicmVhayIpcmV0dXJuIHI9ITAsbmR9KSwhISgoIWUuZGVwdGh8fGUuZGVwdGg8MykmJm9kKGUpJiYodC5vcHRpb25zLnNldGV4dHx8cikpfXZhciB0dGU9cCgoKT0+e2V0ZSgpO1RfKCl9KTtmdW5jdGlvbiB6R2UoZSx0LHIsaSl7bGV0IGE9TWF0aC5tYXgoTWF0aC5taW4oNixlLmRlcHRofHwxKSwxKSxuPXIuY3JlYXRlVHJhY2tlcihpKTtpZihfXyhlLHIpKXtsZXQgdT1yLmVudGVyKCJoZWFkaW5nU2V0ZXh0IiksZD1yLmVudGVyKCJwaHJhc2luZyIpLGg9ci5jb250YWluZXJQaHJhc2luZyhlLHsuLi5uLmN1cnJlbnQoKSxiZWZvcmU6YApgLGFmdGVyOmAKYH0pO3JldHVybiBkKCksdSgpLGgrYApgKyhhPT09MT8iPSI6Ii0iKS5yZXBlYXQoaC5sZW5ndGgtKE1hdGgubWF4KGgubGFzdEluZGV4T2YoIlxyIiksaC5sYXN0SW5kZXhPZihgCmApKSsxKSl9bGV0IG89IiMiLnJlcGVhdChhKSxzPXIuZW50ZXIoImhlYWRpbmdBdHgiKSxsPXIuZW50ZXIoInBocmFzaW5nIik7bi5tb3ZlKG8rIiAiKTtsZXQgYz1yLmNvbnRhaW5lclBocmFzaW5nKGUse2JlZm9yZToiIyAiLGFmdGVyOmAKYCwuLi5uLmN1cnJlbnQoKX0pO3JldHVybi9eW1x0IF0vLnRlc3QoYykmJihjPVVuKGMuY2hhckNvZGVBdCgwKSkrYy5zbGljZSgxKSksYz1jP28rIiAiK2M6byxyLm9wdGlvbnMuY2xvc2VBdHgmJihjKz0iICIrbyksbCgpLHMoKSxjfXZhciBDR2U9cCgoKT0+e3NwKCk7dHRlKCl9KTtmdW5jdGlvbiBydGUoZSl7cmV0dXJuIGUudmFsdWV8fCIifWZ1bmN0aW9uIFhScigpe3JldHVybiI8In12YXIgVEdlPXAoKCk9PntydGUucGVlaz1YUnJ9KTtmdW5jdGlvbiBpdGUoZSx0LHIsaSl7bGV0IGE9b3Aociksbj1hPT09JyInPyJRdW90ZSI6IkFwb3N0cm9waGUiLG89ci5lbnRlcigiaW1hZ2UiKSxzPXIuZW50ZXIoImxhYmVsIiksbD1yLmNyZWF0ZVRyYWNrZXIoaSksYz1sLm1vdmUoIiFbIik7cmV0dXJuIGMrPWwubW92ZShyLnNhZmUoZS5hbHQse2JlZm9yZTpjLGFmdGVyOiJdIiwuLi5sLmN1cnJlbnQoKX0pKSxjKz1sLm1vdmUoIl0oIikscygpLCFlLnVybCYmZS50aXRsZXx8L1tcMC0gXHUwMDdGXS8udGVzdChlLnVybCk/KHM9ci5lbnRlcigiZGVzdGluYXRpb25MaXRlcmFsIiksYys9bC5tb3ZlKCI8IiksYys9bC5tb3ZlKHIuc2FmZShlLnVybCx7YmVmb3JlOmMsYWZ0ZXI6Ij4iLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZSgiPiIpKToocz1yLmVudGVyKCJkZXN0aW5hdGlvblJhdyIpLGMrPWwubW92ZShyLnNhZmUoZS51cmwse2JlZm9yZTpjLGFmdGVyOmUudGl0bGU/IiAiOiIpIiwuLi5sLmN1cnJlbnQoKX0pKSkscygpLGUudGl0bGUmJihzPXIuZW50ZXIoYHRpdGxlJHtufWApLGMrPWwubW92ZSgiICIrYSksYys9bC5tb3ZlKHIuc2FmZShlLnRpdGxlLHtiZWZvcmU6YyxhZnRlcjphLC4uLmwuY3VycmVudCgpfSkpLGMrPWwubW92ZShhKSxzKCkpLGMrPWwubW92ZSgiKSIpLG8oKSxjfWZ1bmN0aW9uIFFScigpe3JldHVybiIhIn12YXIgX0dlPXAoKCk9Pnt6XygpO2l0ZS5wZWVrPVFScn0pO2Z1bmN0aW9uIGF0ZShlLHQscixpKXtsZXQgYT1lLnJlZmVyZW5jZVR5cGUsbj1yLmVudGVyKCJpbWFnZVJlZmVyZW5jZSIpLG89ci5lbnRlcigibGFiZWwiKSxzPXIuY3JlYXRlVHJhY2tlcihpKSxsPXMubW92ZSgiIVsiKSxjPXIuc2FmZShlLmFsdCx7YmVmb3JlOmwsYWZ0ZXI6Il0iLC4uLnMuY3VycmVudCgpfSk7bCs9cy5tb3ZlKGMrIl1bIiksbygpO2xldCB1PXIuc3RhY2s7ci5zdGFjaz1bXSxvPXIuZW50ZXIoInJlZmVyZW5jZSIpO2xldCBkPXIuc2FmZShyLmFzc29jaWF0aW9uSWQoZSkse2JlZm9yZTpsLGFmdGVyOiJdIiwuLi5zLmN1cnJlbnQoKX0pO3JldHVybiBvKCksci5zdGFjaz11LG4oKSxhPT09ImZ1bGwifHwhY3x8YyE9PWQ/bCs9cy5tb3ZlKGQrIl0iKTphPT09InNob3J0Y3V0Ij9sPWwuc2xpY2UoMCwtMSk6bCs9cy5tb3ZlKCJdIiksbH1mdW5jdGlvbiBKUnIoKXtyZXR1cm4iISJ9dmFyIExHZT1wKCgpPT57YXRlLnBlZWs9SlJyfSk7ZnVuY3Rpb24gbnRlKGUsdCxyKXtsZXQgaT1lLnZhbHVlfHwiIixhPSJgIixuPS0xO2Zvcig7bmV3IFJlZ0V4cCgiKF58W15gXSkiK2ErIihbXmBdfCQpIikudGVzdChpKTspYSs9ImAiO2ZvcigvW14gXHJcbl0vLnRlc3QoaSkmJigvXlsgXHJcbl0vLnRlc3QoaSkmJi9bIFxyXG5dJC8udGVzdChpKXx8L15gfGAkLy50ZXN0KGkpKSYmKGk9IiAiK2krIiAiKTsrK248ci51bnNhZmUubGVuZ3RoOyl7bGV0IG89ci51bnNhZmVbbl0scz1yLmNvbXBpbGVQYXR0ZXJuKG8pLGw7aWYoby5hdEJyZWFrKWZvcig7bD1zLmV4ZWMoaSk7KXtsZXQgYz1sLmluZGV4O2kuY2hhckNvZGVBdChjKT09PTEwJiZpLmNoYXJDb2RlQXQoYy0xKT09PTEzJiZjLS0saT1pLnNsaWNlKDAsYykrIiAiK2kuc2xpY2UobC5pbmRleCsxKX19cmV0dXJuIGEraSthfWZ1bmN0aW9uIEtScigpe3JldHVybiJgIn12YXIgQUdlPXAoKCk9PntudGUucGVlaz1LUnJ9KTtmdW5jdGlvbiBvdGUoZSx0KXtsZXQgcj1vZChlKTtyZXR1cm4hISghdC5vcHRpb25zLnJlc291cmNlTGluayYmZS51cmwmJiFlLnRpdGxlJiZlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLmxlbmd0aD09PTEmJmUuY2hpbGRyZW5bMF0udHlwZT09PSJ0ZXh0IiYmKHI9PT1lLnVybHx8Im1haWx0bzoiK3I9PT1lLnVybCkmJi9eW2Etel1bYS16Ky4tXSs6L2kudGVzdChlLnVybCkmJiEvW1wwLSA8Plx1MDA3Rl0vLnRlc3QoZS51cmwpKX12YXIgREdlPXAoKCk9PntUXygpfSk7ZnVuY3Rpb24gc3RlKGUsdCxyLGkpe2xldCBhPW9wKHIpLG49YT09PSciJz8iUXVvdGUiOiJBcG9zdHJvcGhlIixvPXIuY3JlYXRlVHJhY2tlcihpKSxzLGw7aWYob3RlKGUscikpe2xldCB1PXIuc3RhY2s7ci5zdGFjaz1bXSxzPXIuZW50ZXIoImF1dG9saW5rIik7bGV0IGQ9by5tb3ZlKCI8Iik7cmV0dXJuIGQrPW8ubW92ZShyLmNvbnRhaW5lclBocmFzaW5nKGUse2JlZm9yZTpkLGFmdGVyOiI+IiwuLi5vLmN1cnJlbnQoKX0pKSxkKz1vLm1vdmUoIj4iKSxzKCksci5zdGFjaz11LGR9cz1yLmVudGVyKCJsaW5rIiksbD1yLmVudGVyKCJsYWJlbCIpO2xldCBjPW8ubW92ZSgiWyIpO3JldHVybiBjKz1vLm1vdmUoci5jb250YWluZXJQaHJhc2luZyhlLHtiZWZvcmU6YyxhZnRlcjoiXSgiLC4uLm8uY3VycmVudCgpfSkpLGMrPW8ubW92ZSgiXSgiKSxsKCksIWUudXJsJiZlLnRpdGxlfHwvW1wwLSBcdTAwN0ZdLy50ZXN0KGUudXJsKT8obD1yLmVudGVyKCJkZXN0aW5hdGlvbkxpdGVyYWwiKSxjKz1vLm1vdmUoIjwiKSxjKz1vLm1vdmUoci5zYWZlKGUudXJsLHtiZWZvcmU6YyxhZnRlcjoiPiIsLi4uby5jdXJyZW50KCl9KSksYys9by5tb3ZlKCI+IikpOihsPXIuZW50ZXIoImRlc3RpbmF0aW9uUmF3IiksYys9by5tb3ZlKHIuc2FmZShlLnVybCx7YmVmb3JlOmMsYWZ0ZXI6ZS50aXRsZT8iICI6IikiLC4uLm8uY3VycmVudCgpfSkpKSxsKCksZS50aXRsZSYmKGw9ci5lbnRlcihgdGl0bGUke259YCksYys9by5tb3ZlKCIgIithKSxjKz1vLm1vdmUoci5zYWZlKGUudGl0bGUse2JlZm9yZTpjLGFmdGVyOmEsLi4uby5jdXJyZW50KCl9KSksYys9by5tb3ZlKGEpLGwoKSksYys9by5tb3ZlKCIpIikscygpLGN9ZnVuY3Rpb24gZUJyKGUsdCxyKXtyZXR1cm4gb3RlKGUscik/IjwiOiJbIn12YXIgRUdlPXAoKCk9Pnt6XygpO0RHZSgpO3N0ZS5wZWVrPWVCcn0pO2Z1bmN0aW9uIGx0ZShlLHQscixpKXtsZXQgYT1lLnJlZmVyZW5jZVR5cGUsbj1yLmVudGVyKCJsaW5rUmVmZXJlbmNlIiksbz1yLmVudGVyKCJsYWJlbCIpLHM9ci5jcmVhdGVUcmFja2VyKGkpLGw9cy5tb3ZlKCJbIiksYz1yLmNvbnRhaW5lclBocmFzaW5nKGUse2JlZm9yZTpsLGFmdGVyOiJdIiwuLi5zLmN1cnJlbnQoKX0pO2wrPXMubW92ZShjKyJdWyIpLG8oKTtsZXQgdT1yLnN0YWNrO3Iuc3RhY2s9W10sbz1yLmVudGVyKCJyZWZlcmVuY2UiKTtsZXQgZD1yLnNhZmUoci5hc3NvY2lhdGlvbklkKGUpLHtiZWZvcmU6bCxhZnRlcjoiXSIsLi4ucy5jdXJyZW50KCl9KTtyZXR1cm4gbygpLHIuc3RhY2s9dSxuKCksYT09PSJmdWxsInx8IWN8fGMhPT1kP2wrPXMubW92ZShkKyJdIik6YT09PSJzaG9ydGN1dCI/bD1sLnNsaWNlKDAsLTEpOmwrPXMubW92ZSgiXSIpLGx9ZnVuY3Rpb24gdEJyKCl7cmV0dXJuIlsifXZhciAkR2U9cCgoKT0+e2x0ZS5wZWVrPXRCcn0pO2Z1bmN0aW9uIGNwKGUpe2xldCB0PWUub3B0aW9ucy5idWxsZXR8fCIqIjtpZih0IT09IioiJiZ0IT09IisiJiZ0IT09Ii0iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLmJ1bGxldGAsIGV4cGVjdGVkIGAqYCwgYCtgLCBvciBgLWAiKTtyZXR1cm4gdH12YXIgTF89cCgoKT0+e30pO2Z1bmN0aW9uIElHZShlKXtsZXQgdD1jcChlKSxyPWUub3B0aW9ucy5idWxsZXRPdGhlcjtpZighcilyZXR1cm4gdD09PSIqIj8iLSI6IioiO2lmKHIhPT0iKiImJnIhPT0iKyImJnIhPT0iLSIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIGl0ZW1zIHdpdGggYCIrcisiYCBmb3IgYG9wdGlvbnMuYnVsbGV0T3RoZXJgLCBleHBlY3RlZCBgKmAsIGArYCwgb3IgYC1gIik7aWYocj09PXQpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBgYnVsbGV0YCAoYCIrdCsiYCkgYW5kIGBidWxsZXRPdGhlcmAgKGAiK3IrImApIHRvIGJlIGRpZmZlcmVudCIpO3JldHVybiByfXZhciBQR2U9cCgoKT0+e0xfKCl9KTtmdW5jdGlvbiBOR2UoZSl7bGV0IHQ9ZS5vcHRpb25zLmJ1bGxldE9yZGVyZWR8fCIuIjtpZih0IT09Ii4iJiZ0IT09IikiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLmJ1bGxldE9yZGVyZWRgLCBleHBlY3RlZCBgLmAgb3IgYClgIik7cmV0dXJuIHR9dmFyIEZHZT1wKCgpPT57fSk7ZnVuY3Rpb24gQV8oZSl7bGV0IHQ9ZS5vcHRpb25zLnJ1bGV8fCIqIjtpZih0IT09IioiJiZ0IT09Ii0iJiZ0IT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBydWxlcyB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLnJ1bGVgLCBleHBlY3RlZCBgKmAsIGAtYCwgb3IgYF9gIik7cmV0dXJuIHR9dmFyIGN0ZT1wKCgpPT57fSk7ZnVuY3Rpb24gT0dlKGUsdCxyLGkpe2xldCBhPXIuZW50ZXIoImxpc3QiKSxuPXIuYnVsbGV0Q3VycmVudCxvPWUub3JkZXJlZD9OR2Uocik6Y3Aocikscz1lLm9yZGVyZWQ/bz09PSIuIj8iKSI6Ii4iOklHZShyKSxsPXQmJnIuYnVsbGV0TGFzdFVzZWQ/bz09PXIuYnVsbGV0TGFzdFVzZWQ6ITE7aWYoIWUub3JkZXJlZCl7bGV0IHU9ZS5jaGlsZHJlbj9lLmNoaWxkcmVuWzBdOnZvaWQgMDtpZigobz09PSIqInx8bz09PSItIikmJnUmJighdS5jaGlsZHJlbnx8IXUuY2hpbGRyZW5bMF0pJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTFdPT09Imxpc3QiJiZyLnN0YWNrW3Iuc3RhY2subGVuZ3RoLTJdPT09Imxpc3RJdGVtIiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC0zXT09PSJsaXN0IiYmci5zdGFja1tyLnN0YWNrLmxlbmd0aC00XT09PSJsaXN0SXRlbSImJnIuaW5kZXhTdGFja1tyLmluZGV4U3RhY2subGVuZ3RoLTFdPT09MCYmci5pbmRleFN0YWNrW3IuaW5kZXhTdGFjay5sZW5ndGgtMl09PT0wJiZyLmluZGV4U3RhY2tbci5pbmRleFN0YWNrLmxlbmd0aC0zXT09PTAmJihsPSEwKSxBXyhyKT09PW8mJnUpe2xldCBkPS0xO2Zvcig7KytkPGUuY2hpbGRyZW4ubGVuZ3RoOyl7bGV0IGg9ZS5jaGlsZHJlbltkXTtpZihoJiZoLnR5cGU9PT0ibGlzdEl0ZW0iJiZoLmNoaWxkcmVuJiZoLmNoaWxkcmVuWzBdJiZoLmNoaWxkcmVuWzBdLnR5cGU9PT0idGhlbWF0aWNCcmVhayIpe2w9ITA7YnJlYWt9fX19bCYmKG89cyksci5idWxsZXRDdXJyZW50PW87bGV0IGM9ci5jb250YWluZXJGbG93KGUsaSk7cmV0dXJuIHIuYnVsbGV0TGFzdFVzZWQ9byxyLmJ1bGxldEN1cnJlbnQ9bixhKCksY312YXIgUkdlPXAoKCk9PntMXygpO1BHZSgpO0ZHZSgpO2N0ZSgpfSk7ZnVuY3Rpb24gQkdlKGUpe2xldCB0PWUub3B0aW9ucy5saXN0SXRlbUluZGVudHx8Im9uZSI7aWYodCE9PSJ0YWIiJiZ0IT09Im9uZSImJnQhPT0ibWl4ZWQiKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBpdGVtcyB3aXRoIGAiK3QrImAgZm9yIGBvcHRpb25zLmxpc3RJdGVtSW5kZW50YCwgZXhwZWN0ZWQgYHRhYmAsIGBvbmVgLCBvciBgbWl4ZWRgIik7cmV0dXJuIHR9dmFyIEhHZT1wKCgpPT57fSk7ZnVuY3Rpb24gcUdlKGUsdCxyLGkpe2xldCBhPUJHZShyKSxuPXIuYnVsbGV0Q3VycmVudHx8Y3Aocik7dCYmdC50eXBlPT09Imxpc3QiJiZ0Lm9yZGVyZWQmJihuPSh0eXBlb2YgdC5zdGFydD09Im51bWJlciImJnQuc3RhcnQ+LTE/dC5zdGFydDoxKSsoci5vcHRpb25zLmluY3JlbWVudExpc3RNYXJrZXI9PT0hMT8wOnQuY2hpbGRyZW4uaW5kZXhPZihlKSkrbik7bGV0IG89bi5sZW5ndGgrMTsoYT09PSJ0YWIifHxhPT09Im1peGVkIiYmKHQmJnQudHlwZT09PSJsaXN0IiYmdC5zcHJlYWR8fGUuc3ByZWFkKSkmJihvPU1hdGguY2VpbChvLzQpKjQpO2xldCBzPXIuY3JlYXRlVHJhY2tlcihpKTtzLm1vdmUobisiICIucmVwZWF0KG8tbi5sZW5ndGgpKSxzLnNoaWZ0KG8pO2xldCBsPXIuZW50ZXIoImxpc3RJdGVtIiksYz1yLmluZGVudExpbmVzKHIuY29udGFpbmVyRmxvdyhlLHMuY3VycmVudCgpKSx1KTtyZXR1cm4gbCgpLGM7ZnVuY3Rpb24gdShkLGgsZil7cmV0dXJuIGg/KGY/IiI6IiAiLnJlcGVhdChvKSkrZDooZj9uOm4rIiAiLnJlcGVhdChvLW4ubGVuZ3RoKSkrZH19dmFyIGpHZT1wKCgpPT57TF8oKTtIR2UoKX0pO2Z1bmN0aW9uIFZHZShlLHQscixpKXtsZXQgYT1yLmVudGVyKCJwYXJhZ3JhcGgiKSxuPXIuZW50ZXIoInBocmFzaW5nIiksbz1yLmNvbnRhaW5lclBocmFzaW5nKGUsaSk7cmV0dXJuIG4oKSxhKCksb312YXIgVUdlPXAoKCk9Pnt9KTt2YXIgZHRlLFdHZT1wKCgpPT57eF8oKTtkdGU9aWMoWyJicmVhayIsImRlbGV0ZSIsImVtcGhhc2lzIiwiZm9vdG5vdGUiLCJmb290bm90ZVJlZmVyZW5jZSIsImltYWdlIiwiaW1hZ2VSZWZlcmVuY2UiLCJpbmxpbmVDb2RlIiwiaW5saW5lTWF0aCIsImxpbmsiLCJsaW5rUmVmZXJlbmNlIiwibWR4SnN4VGV4dEVsZW1lbnQiLCJtZHhUZXh0RXhwcmVzc2lvbiIsInN0cm9uZyIsInRleHQiLCJ0ZXh0RGlyZWN0aXZlIl0pfSk7dmFyIEdHZT1wKCgpPT57V0dlKCl9KTtmdW5jdGlvbiBZR2UoZSx0LHIsaSl7cmV0dXJuKGUuY2hpbGRyZW4uc29tZShmdW5jdGlvbihvKXtyZXR1cm4gZHRlKG8pfSk/ci5jb250YWluZXJQaHJhc2luZzpyLmNvbnRhaW5lckZsb3cpLmNhbGwocixlLGkpfXZhciBaR2U9cCgoKT0+e0dHZSgpfSk7ZnVuY3Rpb24gWEdlKGUpe2xldCB0PWUub3B0aW9ucy5zdHJvbmd8fCIqIjtpZih0IT09IioiJiZ0IT09Il8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNlcmlhbGl6ZSBzdHJvbmcgd2l0aCBgIit0KyJgIGZvciBgb3B0aW9ucy5zdHJvbmdgLCBleHBlY3RlZCBgKmAsIG9yIGBfYCIpO3JldHVybiB0fXZhciBRR2U9cCgoKT0+e30pO2Z1bmN0aW9uIHV0ZShlLHQscixpKXtsZXQgYT1YR2Uociksbj1yLmVudGVyKCJzdHJvbmciKSxvPXIuY3JlYXRlVHJhY2tlcihpKSxzPW8ubW92ZShhK2EpLGw9by5tb3ZlKHIuY29udGFpbmVyUGhyYXNpbmcoZSx7YWZ0ZXI6YSxiZWZvcmU6cywuLi5vLmN1cnJlbnQoKX0pKSxjPWwuY2hhckNvZGVBdCgwKSx1PWxwKGkuYmVmb3JlLmNoYXJDb2RlQXQoaS5iZWZvcmUubGVuZ3RoLTEpLGMsYSk7dS5pbnNpZGUmJihsPVVuKGMpK2wuc2xpY2UoMSkpO2xldCBkPWwuY2hhckNvZGVBdChsLmxlbmd0aC0xKSxoPWxwKGkuYWZ0ZXIuY2hhckNvZGVBdCgwKSxkLGEpO2guaW5zaWRlJiYobD1sLnNsaWNlKDAsLTEpK1VuKGQpKTtsZXQgZj1vLm1vdmUoYSthKTtyZXR1cm4gbigpLHIuYXR0ZW50aW9uRW5jb2RlU3Vycm91bmRpbmdJbmZvPXthZnRlcjpoLm91dHNpZGUsYmVmb3JlOnUub3V0c2lkZX0scytsK2Z9ZnVuY3Rpb24gckJyKGUsdCxyKXtyZXR1cm4gci5vcHRpb25zLnN0cm9uZ3x8IioifXZhciBKR2U9cCgoKT0+e1FHZSgpO3NwKCk7SmVlKCk7dXRlLnBlZWs9ckJyfSk7ZnVuY3Rpb24gS0dlKGUsdCxyLGkpe3JldHVybiByLnNhZmUoZS52YWx1ZSxpKX12YXIgZVllPXAoKCk9Pnt9KTtmdW5jdGlvbiB0WWUoZSl7bGV0IHQ9ZS5vcHRpb25zLnJ1bGVSZXBldGl0aW9ufHwzO2lmKHQ8Myl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXJpYWxpemUgcnVsZXMgd2l0aCByZXBldGl0aW9uIGAiK3QrImAgZm9yIGBvcHRpb25zLnJ1bGVSZXBldGl0aW9uYCwgZXhwZWN0ZWQgYDNgIG9yIG1vcmUiKTtyZXR1cm4gdH12YXIgclllPXAoKCk9Pnt9KTtmdW5jdGlvbiBpWWUoZSx0LHIpe2xldCBpPShBXyhyKSsoci5vcHRpb25zLnJ1bGVTcGFjZXM/IiAiOiIiKSkucmVwZWF0KHRZZShyKSk7cmV0dXJuIHIub3B0aW9ucy5ydWxlU3BhY2VzP2kuc2xpY2UoMCwtMSk6aX12YXIgYVllPXAoKCk9PntyWWUoKTtjdGUoKX0pO3ZhciBzZCxwdGU9cCgoKT0+e3NHZSgpO2NHZSgpO21HZSgpO2JHZSgpO3lHZSgpO0NHZSgpO1RHZSgpO19HZSgpO0xHZSgpO0FHZSgpO0VHZSgpOyRHZSgpO1JHZSgpO2pHZSgpO1VHZSgpO1pHZSgpO0pHZSgpO2VZZSgpO2FZZSgpO3NkPXtibG9ja3F1b3RlOm9HZSxicmVhazpYZWUsY29kZTpmR2UsZGVmaW5pdGlvbjpnR2UsZW1waGFzaXM6S2VlLGhhcmRCcmVhazpYZWUsaGVhZGluZzp6R2UsaHRtbDpydGUsaW1hZ2U6aXRlLGltYWdlUmVmZXJlbmNlOmF0ZSxpbmxpbmVDb2RlOm50ZSxsaW5rOnN0ZSxsaW5rUmVmZXJlbmNlOmx0ZSxsaXN0Ok9HZSxsaXN0SXRlbTpxR2UscGFyYWdyYXBoOlZHZSxyb290OllHZSxzdHJvbmc6dXRlLHRleHQ6S0dlLHRoZW1hdGljQnJlYWs6aVllfX0pO2Z1bmN0aW9uIGlCcihlLHQscixpKXtpZih0LnR5cGU9PT0iY29kZSImJiQ5KHQsaSkmJihlLnR5cGU9PT0ibGlzdCJ8fGUudHlwZT09PXQudHlwZSYmJDkoZSxpKSkpcmV0dXJuITE7aWYoInNwcmVhZCJpbiByJiZ0eXBlb2Ygci5zcHJlYWQ9PSJib29sZWFuIilyZXR1cm4gZS50eXBlPT09InBhcmFncmFwaCImJihlLnR5cGU9PT10LnR5cGV8fHQudHlwZT09PSJkZWZpbml0aW9uInx8dC50eXBlPT09ImhlYWRpbmciJiZfXyh0LGkpKT92b2lkIDA6ci5zcHJlYWQ/MTowfXZhciBuWWUsb1llPXAoKCk9PntRZWUoKTt0dGUoKTtuWWU9W2lCcl19KTt2YXIgbGQsc1llLGxZZT1wKCgpPT57bGQ9WyJhdXRvbGluayIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImRlc3RpbmF0aW9uUmF3IiwicmVmZXJlbmNlIiwidGl0bGVRdW90ZSIsInRpdGxlQXBvc3Ryb3BoZSJdLHNZZT1be2NoYXJhY3RlcjoiCSIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIJIixiZWZvcmU6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIJIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIl19LHtjaGFyYWN0ZXI6IlxyIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIiwiY29kZUZlbmNlZE1ldGFHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRNZXRhVGlsZGUiLCJkZXN0aW5hdGlvbkxpdGVyYWwiLCJoZWFkaW5nQXR4Il19LHtjaGFyYWN0ZXI6YApgLGluQ29uc3RydWN0OlsiY29kZUZlbmNlZExhbmdHcmF2ZUFjY2VudCIsImNvZGVGZW5jZWRMYW5nVGlsZGUiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50IiwiY29kZUZlbmNlZE1ldGFUaWxkZSIsImRlc3RpbmF0aW9uTGl0ZXJhbCIsImhlYWRpbmdBdHgiXX0se2NoYXJhY3RlcjoiICIsYWZ0ZXI6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIgIixiZWZvcmU6IltcXHJcXG5dIixpbkNvbnN0cnVjdDoicGhyYXNpbmcifSx7Y2hhcmFjdGVyOiIgIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTGFuZ1RpbGRlIl19LHtjaGFyYWN0ZXI6IiEiLGFmdGVyOiJcXFsiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6bGR9LHtjaGFyYWN0ZXI6JyInLGluQ29uc3RydWN0OiJ0aXRsZVF1b3RlIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiIjIn0se2NoYXJhY3RlcjoiIyIsaW5Db25zdHJ1Y3Q6ImhlYWRpbmdBdHgiLGFmdGVyOmAoPzpbXHIKXXwkKWB9LHtjaGFyYWN0ZXI6IiYiLGFmdGVyOiJbI0EtWmEtel0iLGluQ29uc3RydWN0OiJwaHJhc2luZyJ9LHtjaGFyYWN0ZXI6IiciLGluQ29uc3RydWN0OiJ0aXRsZUFwb3N0cm9waGUifSx7Y2hhcmFjdGVyOiIoIixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25SYXcifSx7YmVmb3JlOiJcXF0iLGNoYXJhY3RlcjoiKCIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIixub3RJbkNvbnN0cnVjdDpsZH0se2F0QnJlYWs6ITAsYmVmb3JlOiJcXGQrIixjaGFyYWN0ZXI6IikifSx7Y2hhcmFjdGVyOiIpIixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25SYXcifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IioiLGFmdGVyOmAoPzpbIAlccgoqXSlgfSx7Y2hhcmFjdGVyOiIqIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmxkfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6IisiLGFmdGVyOmAoPzpbIAlccgpdKWB9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6YCg/OlsgCVxyCi1dKWB9LHthdEJyZWFrOiEwLGJlZm9yZToiXFxkKyIsY2hhcmFjdGVyOiIuIixhZnRlcjpgKD86WyAJXHIKXXwkKWB9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiPCIsYWZ0ZXI6IlshLz9BLVphLXpdIn0se2NoYXJhY3RlcjoiPCIsYWZ0ZXI6IlshLz9BLVphLXpdIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmxkfSx7Y2hhcmFjdGVyOiI8IixpbkNvbnN0cnVjdDoiZGVzdGluYXRpb25MaXRlcmFsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI9In0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiI+In0se2NoYXJhY3RlcjoiPiIsaW5Db25zdHJ1Y3Q6ImRlc3RpbmF0aW9uTGl0ZXJhbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiWyJ9LHtjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6bGR9LHtjaGFyYWN0ZXI6IlsiLGluQ29uc3RydWN0OlsibGFiZWwiLCJyZWZlcmVuY2UiXX0se2NoYXJhY3RlcjoiXFwiLGFmdGVyOiJbXFxyXFxuXSIsaW5Db25zdHJ1Y3Q6InBocmFzaW5nIn0se2NoYXJhY3RlcjoiXSIsaW5Db25zdHJ1Y3Q6WyJsYWJlbCIsInJlZmVyZW5jZSJdfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Il8ifSx7Y2hhcmFjdGVyOiJfIixpbkNvbnN0cnVjdDoicGhyYXNpbmciLG5vdEluQ29uc3RydWN0OmxkfSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6ImAifSx7Y2hhcmFjdGVyOiJgIixpbkNvbnN0cnVjdDpbImNvZGVGZW5jZWRMYW5nR3JhdmVBY2NlbnQiLCJjb2RlRmVuY2VkTWV0YUdyYXZlQWNjZW50Il19LHtjaGFyYWN0ZXI6ImAiLGluQ29uc3RydWN0OiJwaHJhc2luZyIsbm90SW5Db25zdHJ1Y3Q6bGR9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoifiJ9XX0pO2Z1bmN0aW9uIGg0KGUpe2xldCB0PSImIitlKyI7IjtjWWUuaW5uZXJIVE1MPXQ7bGV0IHI9Y1llLnRleHRDb250ZW50O3JldHVybiByLmNoYXJDb2RlQXQoci5sZW5ndGgtMSk9PT01OSYmZSE9PSJzZW1pInx8cj09PXQ/ITE6cn12YXIgY1llLFA5PXAoKCk9PntjWWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpfSk7ZnVuY3Rpb24gZHAoZSx0KXtsZXQgcj1OdW1iZXIucGFyc2VJbnQoZSx0KTtyZXR1cm4gcjw5fHxyPT09MTF8fHI+MTMmJnI8MzJ8fHI+MTI2JiZyPDE2MHx8cj41NTI5NSYmcjw1NzM0NHx8cj42NDk3NSYmcjw2NTAwOHx8KHImNjU1MzUpPT09NjU1MzV8fChyJjY1NTM1KT09PTY1NTM0fHxyPjExMTQxMTE/Ilx1RkZGRCI6U3RyaW5nLmZyb21Db2RlUG9pbnQocil9dmFyIERfPXAoKCk9Pnt9KTtmdW5jdGlvbiBFXyhlKXtyZXR1cm4gZS5yZXBsYWNlKGFCcixuQnIpfWZ1bmN0aW9uIG5CcihlLHQscil7aWYodClyZXR1cm4gdDtpZihyLmNoYXJDb2RlQXQoMCk9PT0zNSl7bGV0IGE9ci5jaGFyQ29kZUF0KDEpLG49YT09PTEyMHx8YT09PTg4O3JldHVybiBkcChyLnNsaWNlKG4/MjoxKSxuPzE2OjEwKX1yZXR1cm4gaDQocil8fGV9dmFyIGFCcixodGU9cCgoKT0+e1A5KCk7RF8oKTthQnI9L1xcKFshLS86LUBbLWB7LX5dKXwmKCMoPzpcZHsxLDd9fHhbXGRhLWZdezEsNn0pfFtcZGEtel17MSwzMX0pOy9naX0pO2Z1bmN0aW9uIGRZZShlKXtyZXR1cm4gZS5sYWJlbHx8IWUuaWRlbnRpZmllcj9lLmxhYmVsfHwiIjpFXyhlLmlkZW50aWZpZXIpfXZhciB1WWU9cCgoKT0+e2h0ZSgpfSk7ZnVuY3Rpb24gcFllKGUpe2lmKCFlLl9jb21waWxlZCl7bGV0IHQ9KGUuYXRCcmVhaz8iW1xcclxcbl1bXFx0IF0qIjoiIikrKGUuYmVmb3JlPyIoPzoiK2UuYmVmb3JlKyIpIjoiIik7ZS5fY29tcGlsZWQ9bmV3IFJlZ0V4cCgodD8iKCIrdCsiKSI6IiIpKygvW3xcXHt9KClbXF1eJCsqPy4tXS8udGVzdChlLmNoYXJhY3Rlcik/IlxcIjoiIikrZS5jaGFyYWN0ZXIrKGUuYWZ0ZXI/Iig/OiIrZS5hZnRlcisiKSI6IiIpLCJnIil9cmV0dXJuIGUuX2NvbXBpbGVkfXZhciBoWWU9cCgoKT0+e30pO2Z1bmN0aW9uIGZZZShlLHQscil7bGV0IGk9dC5pbmRleFN0YWNrLGE9ZS5jaGlsZHJlbnx8W10sbj1bXSxvPS0xLHM9ci5iZWZvcmUsbDtpLnB1c2goLTEpO2xldCBjPXQuY3JlYXRlVHJhY2tlcihyKTtmb3IoOysrbzxhLmxlbmd0aDspe2xldCB1PWFbb10sZDtpZihpW2kubGVuZ3RoLTFdPW8sbysxPGEubGVuZ3RoKXtsZXQgeD10LmhhbmRsZS5oYW5kbGVyc1thW28rMV0udHlwZV07eCYmeC5wZWVrJiYoeD14LnBlZWspLGQ9eD94KGFbbysxXSxlLHQse2JlZm9yZToiIixhZnRlcjoiIiwuLi5jLmN1cnJlbnQoKX0pLmNoYXJBdCgwKToiIn1lbHNlIGQ9ci5hZnRlcjtuLmxlbmd0aD4wJiYocz09PSJcciJ8fHM9PT1gCmApJiZ1LnR5cGU9PT0iaHRtbCImJihuW24ubGVuZ3RoLTFdPW5bbi5sZW5ndGgtMV0ucmVwbGFjZSgvKFxyP1xufFxyKSQvLCIgIikscz0iICIsYz10LmNyZWF0ZVRyYWNrZXIociksYy5tb3ZlKG4uam9pbigiIikpKTtsZXQgaD10LmhhbmRsZSh1LGUsdCx7Li4uYy5jdXJyZW50KCksYWZ0ZXI6ZCxiZWZvcmU6c30pO2wmJmw9PT1oLnNsaWNlKDAsMSkmJihoPVVuKGwuY2hhckNvZGVBdCgwKSkraC5zbGljZSgxKSk7bGV0IGY9dC5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm87dC5hdHRlbnRpb25FbmNvZGVTdXJyb3VuZGluZ0luZm89dm9pZCAwLGw9dm9pZCAwLGYmJihuLmxlbmd0aD4wJiZmLmJlZm9yZSYmcz09PW5bbi5sZW5ndGgtMV0uc2xpY2UoLTEpJiYobltuLmxlbmd0aC0xXT1uW24ubGVuZ3RoLTFdLnNsaWNlKDAsLTEpK1VuKHMuY2hhckNvZGVBdCgwKSkpLGYuYWZ0ZXImJihsPWQpKSxjLm1vdmUoaCksbi5wdXNoKGgpLHM9aC5zbGljZSgtMSl9cmV0dXJuIGkucG9wKCksbi5qb2luKCIiKX12YXIgbVllPXAoKCk9PntzcCgpfSk7ZnVuY3Rpb24gZ1llKGUsdCxyKXtsZXQgaT10LmluZGV4U3RhY2ssYT1lLmNoaWxkcmVufHxbXSxuPXQuY3JlYXRlVHJhY2tlcihyKSxvPVtdLHM9LTE7Zm9yKGkucHVzaCgtMSk7KytzPGEubGVuZ3RoOyl7bGV0IGw9YVtzXTtpW2kubGVuZ3RoLTFdPXMsby5wdXNoKG4ubW92ZSh0LmhhbmRsZShsLGUsdCx7YmVmb3JlOmAKYCxhZnRlcjpgCmAsLi4ubi5jdXJyZW50KCl9KSkpLGwudHlwZSE9PSJsaXN0IiYmKHQuYnVsbGV0TGFzdFVzZWQ9dm9pZCAwKSxzPGEubGVuZ3RoLTEmJm8ucHVzaChuLm1vdmUob0JyKGwsYVtzKzFdLGUsdCkpKX1yZXR1cm4gaS5wb3AoKSxvLmpvaW4oIiIpfWZ1bmN0aW9uIG9CcihlLHQscixpKXtsZXQgYT1pLmpvaW4ubGVuZ3RoO2Zvcig7YS0tOyl7bGV0IG49aS5qb2luW2FdKGUsdCxyLGkpO2lmKG49PT0hMHx8bj09PTEpYnJlYWs7aWYodHlwZW9mIG49PSJudW1iZXIiKXJldHVybmAKYC5yZXBlYXQoMStuKTtpZihuPT09ITEpcmV0dXJuYAoKPCEtLS0tPgoKYH1yZXR1cm5gCgpgfXZhciBiWWU9cCgoKT0+e30pO2Z1bmN0aW9uIHZZZShlLHQpe2xldCByPVtdLGk9MCxhPTAsbjtmb3IoO249c0JyLmV4ZWMoZSk7KW8oZS5zbGljZShpLG4uaW5kZXgpKSxyLnB1c2goblswXSksaT1uLmluZGV4K25bMF0ubGVuZ3RoLGErKztyZXR1cm4gbyhlLnNsaWNlKGkpKSxyLmpvaW4oIiIpO2Z1bmN0aW9uIG8ocyl7ci5wdXNoKHQocyxhLCFzKSl9fXZhciBzQnIseFllPXAoKCk9PntzQnI9L1xyP1xufFxyL2d9KTtmdW5jdGlvbiB3WWUoZSx0LHIpe2xldCBpPShyLmJlZm9yZXx8IiIpKyh0fHwiIikrKHIuYWZ0ZXJ8fCIiKSxhPVtdLG49W10sbz17fSxzPS0xO2Zvcig7KytzPGUudW5zYWZlLmxlbmd0aDspe2xldCB1PWUudW5zYWZlW3NdO2lmKCFTXyhlLnN0YWNrLHUpKWNvbnRpbnVlO2xldCBkPWUuY29tcGlsZVBhdHRlcm4odSksaDtmb3IoO2g9ZC5leGVjKGkpOyl7bGV0IGY9ImJlZm9yZSJpbiB1fHwhIXUuYXRCcmVhayx4PSJhZnRlciJpbiB1LHY9aC5pbmRleCsoZj9oWzFdLmxlbmd0aDowKTthLmluY2x1ZGVzKHYpPyhvW3ZdLmJlZm9yZSYmIWYmJihvW3ZdLmJlZm9yZT0hMSksb1t2XS5hZnRlciYmIXgmJihvW3ZdLmFmdGVyPSExKSk6KGEucHVzaCh2KSxvW3ZdPXtiZWZvcmU6ZixhZnRlcjp4fSl9fWEuc29ydChsQnIpO2xldCBsPXIuYmVmb3JlP3IuYmVmb3JlLmxlbmd0aDowLGM9aS5sZW5ndGgtKHIuYWZ0ZXI/ci5hZnRlci5sZW5ndGg6MCk7Zm9yKHM9LTE7KytzPGEubGVuZ3RoOyl7bGV0IHU9YVtzXTt1PGx8fHU+PWN8fHUrMTxjJiZhW3MrMV09PT11KzEmJm9bdV0uYWZ0ZXImJiFvW3UrMV0uYmVmb3JlJiYhb1t1KzFdLmFmdGVyfHxhW3MtMV09PT11LTEmJm9bdV0uYmVmb3JlJiYhb1t1LTFdLmJlZm9yZSYmIW9bdS0xXS5hZnRlcnx8KGwhPT11JiZuLnB1c2goeVllKGkuc2xpY2UobCx1KSwiXFwiKSksbD11LC9bIS0vOi1AWy1gey1+XS8udGVzdChpLmNoYXJBdCh1KSkmJighci5lbmNvZGV8fCFyLmVuY29kZS5pbmNsdWRlcyhpLmNoYXJBdCh1KSkpP24ucHVzaCgiXFwiKToobi5wdXNoKFVuKGkuY2hhckNvZGVBdCh1KSkpLGwrKykpfXJldHVybiBuLnB1c2goeVllKGkuc2xpY2UobCxjKSxyLmFmdGVyKSksbi5qb2luKCIiKX1mdW5jdGlvbiBsQnIoZSx0KXtyZXR1cm4gZS10fWZ1bmN0aW9uIHlZZShlLHQpe2xldCByPS9cXCg/PVshLS86LUBbLWB7LX5dKS9nLGk9W10sYT1bXSxuPWUrdCxvPS0xLHM9MCxsO2Zvcig7bD1yLmV4ZWMobik7KWkucHVzaChsLmluZGV4KTtmb3IoOysrbzxpLmxlbmd0aDspcyE9PWlbb10mJmEucHVzaChlLnNsaWNlKHMsaVtvXSkpLGEucHVzaCgiXFwiKSxzPWlbb107cmV0dXJuIGEucHVzaChlLnNsaWNlKHMpKSxhLmpvaW4oIiIpfXZhciBNWWU9cCgoKT0+e3NwKCk7WmVlKCl9KTtmdW5jdGlvbiBrWWUoZSl7bGV0IHQ9ZXx8e30scj10Lm5vd3x8e30saT10LmxpbmVTaGlmdHx8MCxhPXIubGluZXx8MSxuPXIuY29sdW1ufHwxO3JldHVybnttb3ZlOmwsY3VycmVudDpvLHNoaWZ0OnN9O2Z1bmN0aW9uIG8oKXtyZXR1cm57bm93OntsaW5lOmEsY29sdW1uOm59LGxpbmVTaGlmdDppfX1mdW5jdGlvbiBzKGMpe2krPWN9ZnVuY3Rpb24gbChjKXtsZXQgdT1jfHwiIixkPXUuc3BsaXQoL1xyP1xufFxyL2cpLGg9ZFtkLmxlbmd0aC0xXTtyZXR1cm4gYSs9ZC5sZW5ndGgtMSxuPWQubGVuZ3RoPT09MT9uK2gubGVuZ3RoOjEraC5sZW5ndGgraSx1fX12YXIgU1llPXAoKCk9Pnt9KTtmdW5jdGlvbiBmdGUoZSx0KXtsZXQgcj10fHx7fSxpPXthc3NvY2lhdGlvbklkOmRZZSxjb250YWluZXJQaHJhc2luZzpwQnIsY29udGFpbmVyRmxvdzpoQnIsY3JlYXRlVHJhY2tlcjprWWUsY29tcGlsZVBhdHRlcm46cFllLGVudGVyOm4saGFuZGxlcnM6ey4uLnNkfSxoYW5kbGU6dm9pZCAwLGluZGVudExpbmVzOnZZZSxpbmRleFN0YWNrOltdLGpvaW46Wy4uLm5ZZV0sb3B0aW9uczp7fSxzYWZlOmZCcixzdGFjazpbXSx1bnNhZmU6Wy4uLnNZZV19O1llZShpLHIpLGkub3B0aW9ucy50aWdodERlZmluaXRpb25zJiZpLmpvaW4ucHVzaCh1QnIpLGkuaGFuZGxlPWtfKCJ0eXBlIix7aW52YWxpZDpjQnIsdW5rbm93bjpkQnIsaGFuZGxlcnM6aS5oYW5kbGVyc30pO2xldCBhPWkuaGFuZGxlKGUsdm9pZCAwLGkse2JlZm9yZTpgCmAsYWZ0ZXI6YApgLG5vdzp7bGluZToxLGNvbHVtbjoxfSxsaW5lU2hpZnQ6MH0pO3JldHVybiBhJiZhLmNoYXJDb2RlQXQoYS5sZW5ndGgtMSkhPT0xMCYmYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpIT09MTMmJihhKz1gCmApLGE7ZnVuY3Rpb24gbihvKXtyZXR1cm4gaS5zdGFjay5wdXNoKG8pLHM7ZnVuY3Rpb24gcygpe2kuc3RhY2sucG9wKCl9fX1mdW5jdGlvbiBjQnIoZSl7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaGFuZGxlIHZhbHVlIGAiK2UrImAsIGV4cGVjdGVkIG5vZGUiKX1mdW5jdGlvbiBkQnIoZSl7bGV0IHQ9ZTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBoYW5kbGUgdW5rbm93biBub2RlIGAiK3QudHlwZSsiYCIpfWZ1bmN0aW9uIHVCcihlLHQpe2lmKGUudHlwZT09PSJkZWZpbml0aW9uIiYmZS50eXBlPT09dC50eXBlKXJldHVybiAwfWZ1bmN0aW9uIHBCcihlLHQpe3JldHVybiBmWWUoZSx0aGlzLHQpfWZ1bmN0aW9uIGhCcihlLHQpe3JldHVybiBnWWUoZSx0aGlzLHQpfWZ1bmN0aW9uIGZCcihlLHQpe3JldHVybiB3WWUodGhpcyxlLHQpfXZhciB6WWU9cCgoKT0+e0dlZSgpO25HZSgpO3B0ZSgpO29ZZSgpO2xZZSgpO3VZZSgpO2hZZSgpO21ZZSgpO2JZZSgpO3hZZSgpO01ZZSgpO1NZZSgpfSk7dmFyICRfPXAoKCk9Pnt6WWUoKTtwdGUoKX0pO2Z1bmN0aW9uIGd0ZSgpe3JldHVybntlbnRlcjp7dGFibGU6bUJyLHRhYmxlRGF0YTpDWWUsdGFibGVIZWFkZXI6Q1llLHRhYmxlUm93OmJCcn0sZXhpdDp7Y29kZVRleHQ6dkJyLHRhYmxlOmdCcix0YWJsZURhdGE6bXRlLHRhYmxlSGVhZGVyOm10ZSx0YWJsZVJvdzptdGV9fX1mdW5jdGlvbiBtQnIoZSl7bGV0IHQ9ZS5fYWxpZ247dGhpcy5lbnRlcih7dHlwZToidGFibGUiLGFsaWduOnQubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByPT09Im5vbmUiP251bGw6cn0pLGNoaWxkcmVuOltdfSxlKSx0aGlzLmRhdGEuaW5UYWJsZT0hMH1mdW5jdGlvbiBnQnIoZSl7dGhpcy5leGl0KGUpLHRoaXMuZGF0YS5pblRhYmxlPXZvaWQgMH1mdW5jdGlvbiBiQnIoZSl7dGhpcy5lbnRlcih7dHlwZToidGFibGVSb3ciLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiBtdGUoZSl7dGhpcy5leGl0KGUpfWZ1bmN0aW9uIENZZShlKXt0aGlzLmVudGVyKHt0eXBlOiJ0YWJsZUNlbGwiLGNoaWxkcmVuOltdfSxlKX1mdW5jdGlvbiB2QnIoZSl7bGV0IHQ9dGhpcy5yZXN1bWUoKTt0aGlzLmRhdGEuaW5UYWJsZSYmKHQ9dC5yZXBsYWNlKC9cXChbXFx8XSkvZyx4QnIpKTtsZXQgcj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO3IudHlwZSxyLnZhbHVlPXQsdGhpcy5leGl0KGUpfWZ1bmN0aW9uIHhCcihlLHQpe3JldHVybiB0PT09InwiP3Q6ZX1mdW5jdGlvbiBidGUoZSl7bGV0IHQ9ZXx8e30scj10LnRhYmxlQ2VsbFBhZGRpbmcsaT10LnRhYmxlUGlwZUFsaWduLGE9dC5zdHJpbmdMZW5ndGgsbj1yPyIgIjoifCI7cmV0dXJue3Vuc2FmZTpbe2NoYXJhY3RlcjoiXHIiLGluQ29uc3RydWN0OiJ0YWJsZUNlbGwifSx7Y2hhcmFjdGVyOmAKYCxpbkNvbnN0cnVjdDoidGFibGVDZWxsIn0se2F0QnJlYWs6ITAsY2hhcmFjdGVyOiJ8IixhZnRlcjoiWwkgOi1dIn0se2NoYXJhY3RlcjoifCIsaW5Db25zdHJ1Y3Q6InRhYmxlQ2VsbCJ9LHthdEJyZWFrOiEwLGNoYXJhY3RlcjoiOiIsYWZ0ZXI6Ii0ifSx7YXRCcmVhazohMCxjaGFyYWN0ZXI6Ii0iLGFmdGVyOiJbOnwtXSJ9XSxoYW5kbGVyczp7aW5saW5lQ29kZTpoLHRhYmxlOm8sdGFibGVDZWxsOmwsdGFibGVSb3c6c319O2Z1bmN0aW9uIG8oZix4LHYsYil7cmV0dXJuIGModShmLHYsYiksZi5hbGlnbil9ZnVuY3Rpb24gcyhmLHgsdixiKXtsZXQgeT1kKGYsdixiKSx3PWMoW3ldKTtyZXR1cm4gdy5zbGljZSgwLHcuaW5kZXhPZihgCmApKX1mdW5jdGlvbiBsKGYseCx2LGIpe2xldCB5PXYuZW50ZXIoInRhYmxlQ2VsbCIpLHc9di5lbnRlcigicGhyYXNpbmciKSxrPXYuY29udGFpbmVyUGhyYXNpbmcoZix7Li4uYixiZWZvcmU6bixhZnRlcjpufSk7cmV0dXJuIHcoKSx5KCksa31mdW5jdGlvbiBjKGYseCl7cmV0dXJuIHRHZShmLHthbGlnbjp4LGFsaWduRGVsaW1pdGVyczppLHBhZGRpbmc6cixzdHJpbmdMZW5ndGg6YX0pfWZ1bmN0aW9uIHUoZix4LHYpe2xldCBiPWYuY2hpbGRyZW4seT0tMSx3PVtdLGs9eC5lbnRlcigidGFibGUiKTtmb3IoOysreTxiLmxlbmd0aDspd1t5XT1kKGJbeV0seCx2KTtyZXR1cm4gaygpLHd9ZnVuY3Rpb24gZChmLHgsdil7bGV0IGI9Zi5jaGlsZHJlbix5PS0xLHc9W10saz14LmVudGVyKCJ0YWJsZVJvdyIpO2Zvcig7Kyt5PGIubGVuZ3RoOyl3W3ldPWwoYlt5XSxmLHgsdik7cmV0dXJuIGsoKSx3fWZ1bmN0aW9uIGgoZix4LHYpe2xldCBiPXNkLmlubGluZUNvZGUoZix4LHYpO3JldHVybiB2LnN0YWNrLmluY2x1ZGVzKCJ0YWJsZUNlbGwiKSYmKGI9Yi5yZXBsYWNlKC9cfC9nLCJcXCQmIikpLGJ9fXZhciBUWWU9cCgoKT0+e2M0KCk7ckdlKCk7JF8oKX0pO3ZhciBfWWU9cCgoKT0+e1RZZSgpfSk7ZnVuY3Rpb24gdnRlKCl7cmV0dXJue2V4aXQ6e3Rhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQ6TFllLHRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZDpMWWUscGFyYWdyYXBoOnlCcn19fWZ1bmN0aW9uIHh0ZSgpe3JldHVybnt1bnNhZmU6W3thdEJyZWFrOiEwLGNoYXJhY3RlcjoiLSIsYWZ0ZXI6Ils6fC1dIn1dLGhhbmRsZXJzOntsaXN0SXRlbTp3QnJ9fX1mdW5jdGlvbiBMWWUoZSl7bGV0IHQ9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTt0LnR5cGUsdC5jaGVja2VkPWUudHlwZT09PSJ0YXNrTGlzdENoZWNrVmFsdWVDaGVja2VkIn1mdW5jdGlvbiB5QnIoZSl7bGV0IHQ9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtpZih0JiZ0LnR5cGU9PT0ibGlzdEl0ZW0iJiZ0eXBlb2YgdC5jaGVja2VkPT0iYm9vbGVhbiIpe2xldCByPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07ci50eXBlO2xldCBpPXIuY2hpbGRyZW5bMF07aWYoaSYmaS50eXBlPT09InRleHQiKXtsZXQgYT10LmNoaWxkcmVuLG49LTEsbztmb3IoOysrbjxhLmxlbmd0aDspe2xldCBzPWFbbl07aWYocy50eXBlPT09InBhcmFncmFwaCIpe289czticmVha319bz09PXImJihpLnZhbHVlPWkudmFsdWUuc2xpY2UoMSksaS52YWx1ZS5sZW5ndGg9PT0wP3IuY2hpbGRyZW4uc2hpZnQoKTpyLnBvc2l0aW9uJiZpLnBvc2l0aW9uJiZ0eXBlb2YgaS5wb3NpdGlvbi5zdGFydC5vZmZzZXQ9PSJudW1iZXIiJiYoaS5wb3NpdGlvbi5zdGFydC5jb2x1bW4rKyxpLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCsrLHIucG9zaXRpb24uc3RhcnQ9T2JqZWN0LmFzc2lnbih7fSxpLnBvc2l0aW9uLnN0YXJ0KSkpfX10aGlzLmV4aXQoZSl9ZnVuY3Rpb24gd0JyKGUsdCxyLGkpe2xldCBhPWUuY2hpbGRyZW5bMF0sbj10eXBlb2YgZS5jaGVja2VkPT0iYm9vbGVhbiImJmEmJmEudHlwZT09PSJwYXJhZ3JhcGgiLG89IlsiKyhlLmNoZWNrZWQ/IngiOiIgIikrIl0gIixzPXIuY3JlYXRlVHJhY2tlcihpKTtuJiZzLm1vdmUobyk7bGV0IGw9c2QubGlzdEl0ZW0oZSx0LHIsey4uLmksLi4ucy5jdXJyZW50KCl9KTtyZXR1cm4gbiYmKGw9bC5yZXBsYWNlKC9eKD86WyorLV18XGQrXC4pKFtcclxuXXwgezEsM30pLyxjKSksbDtmdW5jdGlvbiBjKHUpe3JldHVybiB1K299fXZhciBBWWU9cCgoKT0+e2M0KCk7JF8oKX0pO3ZhciBEWWU9cCgoKT0+e0FZZSgpfSk7ZnVuY3Rpb24geXRlKCl7cmV0dXJuW0hlZSgpLGplZSgpLFVlZSgpLGd0ZSgpLHZ0ZSgpXX1mdW5jdGlvbiB3dGUoZSl7cmV0dXJue2V4dGVuc2lvbnM6W3FlZSgpLFZlZShlKSxXZWUoKSxidGUoZSkseHRlKCldfX12YXIgRVllPXAoKCk9PntXV2UoKTtYV2UoKTtLV2UoKTtfWWUoKTtEWWUoKX0pO3ZhciAkWWU9cCgoKT0+e0VZZSgpfSk7ZnVuY3Rpb24gajEoZSx0LHIsaSl7bGV0IGE9ZS5sZW5ndGgsbj0wLG87aWYodDwwP3Q9LXQ+YT8wOmErdDp0PXQ+YT9hOnQscj1yPjA/cjowLGkubGVuZ3RoPDFlNClvPUFycmF5LmZyb20oaSksby51bnNoaWZ0KHQsciksZS5zcGxpY2UoLi4ubyk7ZWxzZSBmb3IociYmZS5zcGxpY2UodCxyKTtuPGkubGVuZ3RoOylvPWkuc2xpY2UobixuKzFlNCksby51bnNoaWZ0KHQsMCksZS5zcGxpY2UoLi4ubyksbis9MWU0LHQrPTFlNH1mdW5jdGlvbiBhaShlLHQpe3JldHVybiBlLmxlbmd0aD4wPyhqMShlLGUubGVuZ3RoLDAsdCksZSk6dH12YXIgVXM9cCgoKT0+e30pO2Z1bmN0aW9uIElfKGUpe2xldCB0PXt9LHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KU1Ccih0LGVbcl0pO3JldHVybiB0fWZ1bmN0aW9uIE1CcihlLHQpe2xldCByO2ZvcihyIGluIHQpe2xldCBhPShNdGUuY2FsbChlLHIpP2Vbcl06dm9pZCAwKXx8KGVbcl09e30pLG49dFtyXSxvO2lmKG4pZm9yKG8gaW4gbil7TXRlLmNhbGwoYSxvKXx8KGFbb109W10pO2xldCBzPW5bb107a0JyKGFbb10sQXJyYXkuaXNBcnJheShzKT9zOnM/W3NdOltdKX19fWZ1bmN0aW9uIGtCcihlLHQpe2xldCByPS0xLGk9W107Zm9yKDsrK3I8dC5sZW5ndGg7KSh0W3JdLmFkZD09PSJhZnRlciI/ZTppKS5wdXNoKHRbcl0pO2oxKGUsMCwwLGkpfWZ1bmN0aW9uIFBfKGUpe2xldCB0PXt9LHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KVNCcih0LGVbcl0pO3JldHVybiB0fWZ1bmN0aW9uIFNCcihlLHQpe2xldCByO2ZvcihyIGluIHQpe2xldCBhPShNdGUuY2FsbChlLHIpP2Vbcl06dm9pZCAwKXx8KGVbcl09e30pLG49dFtyXSxvO2lmKG4pZm9yKG8gaW4gbilhW29dPW5bb119fXZhciBNdGUsTl89cCgoKT0+e1VzKCk7TXRlPXt9Lmhhc093blByb3BlcnR5fSk7ZnVuY3Rpb24genRlKCl7cmV0dXJue3RleHQ6V3N9fWZ1bmN0aW9uIFRCcihlLHQscil7bGV0IGk9dGhpcyxhLG47cmV0dXJuIG87ZnVuY3Rpb24gbyhkKXtyZXR1cm4ha3RlKGQpfHwhSFllLmNhbGwoaSxpLnByZXZpb3VzKXx8U3RlKGkuZXZlbnRzKT9yKGQpOihlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmsiKSxlLmVudGVyKCJsaXRlcmFsQXV0b2xpbmtFbWFpbCIpLHMoZCkpfWZ1bmN0aW9uIHMoZCl7cmV0dXJuIGt0ZShkKT8oZS5jb25zdW1lKGQpLHMpOmQ9PT02ND8oZS5jb25zdW1lKGQpLGwpOnIoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PTQ2P2UuY2hlY2soQ0JyLHUsYykoZCk6ZD09PTQ1fHxkPT09OTV8fEkxKGQpPyhuPSEwLGUuY29uc3VtZShkKSxsKTp1KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGUuY29uc3VtZShkKSxhPSEwLGx9ZnVuY3Rpb24gdShkKXtyZXR1cm4gbiYmYSYmeWkoaS5wcmV2aW91cyk/KGUuZXhpdCgibGl0ZXJhbEF1dG9saW5rRW1haWwiKSxlLmV4aXQoImxpdGVyYWxBdXRvbGluayIpLHQoZCkpOnIoZCl9fWZ1bmN0aW9uIF9CcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBvIT09ODcmJm8hPT0xMTl8fCFSWWUuY2FsbChpLGkucHJldmlvdXMpfHxTdGUoaS5ldmVudHMpP3Iobyk6KGUuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLGUuZW50ZXIoImxpdGVyYWxBdXRvbGlua1d3dyIpLGUuY2hlY2soekJyLGUuYXR0ZW1wdChJWWUsZS5hdHRlbXB0KFBZZSxuKSxyKSxyKShvKSl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gZS5leGl0KCJsaXRlcmFsQXV0b2xpbmtXd3ciKSxlLmV4aXQoImxpdGVyYWxBdXRvbGluayIpLHQobyl9fWZ1bmN0aW9uIExCcihlLHQscil7bGV0IGk9dGhpcyxhPSIiLG49ITE7cmV0dXJuIG87ZnVuY3Rpb24gbyhkKXtyZXR1cm4oZD09PTcyfHxkPT09MTA0KSYmQlllLmNhbGwoaSxpLnByZXZpb3VzKSYmIVN0ZShpLmV2ZW50cyk/KGUuZW50ZXIoImxpdGVyYWxBdXRvbGluayIpLGUuZW50ZXIoImxpdGVyYWxBdXRvbGlua0h0dHAiKSxhKz1TdHJpbmcuZnJvbUNvZGVQb2ludChkKSxlLmNvbnN1bWUoZCkscyk6cihkKX1mdW5jdGlvbiBzKGQpe2lmKHlpKGQpJiZhLmxlbmd0aDw1KXJldHVybiBhKz1TdHJpbmcuZnJvbUNvZGVQb2ludChkKSxlLmNvbnN1bWUoZCkscztpZihkPT09NTgpe2xldCBoPWEudG9Mb3dlckNhc2UoKTtpZihoPT09Imh0dHAifHxoPT09Imh0dHBzIilyZXR1cm4gZS5jb25zdW1lKGQpLGx9cmV0dXJuIHIoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PTQ3PyhlLmNvbnN1bWUoZCksbj9jOihuPSEwLGwpKTpyKGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGQ9PT1udWxsfHxpZChkKXx8SnQoZCl8fFZzKGQpfHxhZChkKT9yKGQpOmUuYXR0ZW1wdChJWWUsZS5hdHRlbXB0KFBZZSx1KSxyKShkKX1mdW5jdGlvbiB1KGQpe3JldHVybiBlLmV4aXQoImxpdGVyYWxBdXRvbGlua0h0dHAiKSxlLmV4aXQoImxpdGVyYWxBdXRvbGluayIpLHQoZCl9fWZ1bmN0aW9uIEFCcihlLHQscil7bGV0IGk9MDtyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybihvPT09ODd8fG89PT0xMTkpJiZpPDM/KGkrKyxlLmNvbnN1bWUobyksYSk6bz09PTQ2JiZpPT09Mz8oZS5jb25zdW1lKG8pLG4pOnIobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gbz09PW51bGw/cihvKTp0KG8pfX1mdW5jdGlvbiBEQnIoZSx0LHIpe2xldCBpLGEsbjtyZXR1cm4gbztmdW5jdGlvbiBvKGMpe3JldHVybiBjPT09NDZ8fGM9PT05NT9lLmNoZWNrKE5ZZSxsLHMpKGMpOmM9PT1udWxsfHxKdChjKXx8VnMoYyl8fGMhPT00NSYmYWQoYyk/bChjKToobj0hMCxlLmNvbnN1bWUoYyksbyl9ZnVuY3Rpb24gcyhjKXtyZXR1cm4gYz09PTk1P2k9ITA6KGE9aSxpPXZvaWQgMCksZS5jb25zdW1lKGMpLG99ZnVuY3Rpb24gbChjKXtyZXR1cm4gYXx8aXx8IW4/cihjKTp0KGMpfX1mdW5jdGlvbiBFQnIoZSx0KXtsZXQgcj0wLGk9MDtyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBvPT09NDA/KHIrKyxlLmNvbnN1bWUobyksYSk6bz09PTQxJiZpPHI/bihvKTpvPT09MzN8fG89PT0zNHx8bz09PTM4fHxvPT09Mzl8fG89PT00MXx8bz09PTQyfHxvPT09NDR8fG89PT00Nnx8bz09PTU4fHxvPT09NTl8fG89PT02MHx8bz09PTYzfHxvPT09OTN8fG89PT05NXx8bz09PTEyNj9lLmNoZWNrKE5ZZSx0LG4pKG8pOm89PT1udWxsfHxKdChvKXx8VnMobyk/dChvKTooZS5jb25zdW1lKG8pLGEpfWZ1bmN0aW9uIG4obyl7cmV0dXJuIG89PT00MSYmaSsrLGUuY29uc3VtZShvKSxhfX1mdW5jdGlvbiAkQnIoZSx0LHIpe3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIHM9PT0zM3x8cz09PTM0fHxzPT09Mzl8fHM9PT00MXx8cz09PTQyfHxzPT09NDR8fHM9PT00Nnx8cz09PTU4fHxzPT09NTl8fHM9PT02M3x8cz09PTk1fHxzPT09MTI2PyhlLmNvbnN1bWUocyksaSk6cz09PTM4PyhlLmNvbnN1bWUocyksbik6cz09PTkzPyhlLmNvbnN1bWUocyksYSk6cz09PTYwfHxzPT09bnVsbHx8SnQocyl8fFZzKHMpP3Qocyk6cihzKX1mdW5jdGlvbiBhKHMpe3JldHVybiBzPT09bnVsbHx8cz09PTQwfHxzPT09OTF8fEp0KHMpfHxWcyhzKT90KHMpOmkocyl9ZnVuY3Rpb24gbihzKXtyZXR1cm4geWkocyk/byhzKTpyKHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIHM9PT01OT8oZS5jb25zdW1lKHMpLGkpOnlpKHMpPyhlLmNvbnN1bWUocyksbyk6cihzKX19ZnVuY3Rpb24gSUJyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmNvbnN1bWUobiksYX1mdW5jdGlvbiBhKG4pe3JldHVybiBJMShuKT9yKG4pOnQobil9fWZ1bmN0aW9uIFJZZShlKXtyZXR1cm4gZT09PW51bGx8fGU9PT00MHx8ZT09PTQyfHxlPT09OTV8fGU9PT05MXx8ZT09PTkzfHxlPT09MTI2fHxKdChlKX1mdW5jdGlvbiBCWWUoZSl7cmV0dXJuIXlpKGUpfWZ1bmN0aW9uIEhZZShlKXtyZXR1cm4hKGU9PT00N3x8a3RlKGUpKX1mdW5jdGlvbiBrdGUoZSl7cmV0dXJuIGU9PT00M3x8ZT09PTQ1fHxlPT09NDZ8fGU9PT05NXx8STEoZSl9ZnVuY3Rpb24gU3RlKGUpe2xldCB0PWUubGVuZ3RoLHI9ITE7Zm9yKDt0LS07KXtsZXQgaT1lW3RdWzFdO2lmKChpLnR5cGU9PT0ibGFiZWxMaW5rInx8aS50eXBlPT09ImxhYmVsSW1hZ2UiKSYmIWkuX2JhbGFuY2VkKXtyPSEwO2JyZWFrfWlmKGkuX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG8pe3I9ITE7YnJlYWt9fXJldHVybiBlLmxlbmd0aD4wJiYhciYmKGVbZS5sZW5ndGgtMV1bMV0uX2dmbUF1dG9saW5rTGl0ZXJhbFdhbGtlZEludG89ITApLHJ9dmFyIHpCcixJWWUsUFllLE5ZZSxDQnIsRlllLE9ZZSxuYyxXcyxxWWU9cCgoKT0+e3JyKCk7ekJyPXt0b2tlbml6ZTpBQnIscGFydGlhbDohMH0sSVllPXt0b2tlbml6ZTpEQnIscGFydGlhbDohMH0sUFllPXt0b2tlbml6ZTpFQnIscGFydGlhbDohMH0sTlllPXt0b2tlbml6ZTokQnIscGFydGlhbDohMH0sQ0JyPXt0b2tlbml6ZTpJQnIscGFydGlhbDohMH0sRlllPXtuYW1lOiJ3d3dBdXRvbGluayIsdG9rZW5pemU6X0JyLHByZXZpb3VzOlJZZX0sT1llPXtuYW1lOiJwcm90b2NvbEF1dG9saW5rIix0b2tlbml6ZTpMQnIscHJldmlvdXM6QlllfSxuYz17bmFtZToiZW1haWxBdXRvbGluayIsdG9rZW5pemU6VEJyLHByZXZpb3VzOkhZZX0sV3M9e307Zm9yKHZhciBjZD00ODtjZDwxMjM7KVdzW2NkXT1uYyxjZCsrLGNkPT09NTg/Y2Q9NjU6Y2Q9PT05MSYmKGNkPTk3KTtXc1s0M109bmMsV3NbNDVdPW5jLFdzWzQ2XT1uYyxXc1s5NV09bmMsV3NbNzJdPVtuYyxPWWVdLFdzWzEwNF09W25jLE9ZZV0sV3NbODddPVtuYyxGWWVdLFdzWzExOV09W25jLEZZZV19KTtmdW5jdGlvbiBGXyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9bIiY8Pl0vZyx0KTtmdW5jdGlvbiB0KHIpe3JldHVybiImIitQQnJbcl0rIjsifX12YXIgUEJyLEN0ZT1wKCgpPT57UEJyPXsnIic6InF1b3QiLCImIjoiYW1wIiwiPCI6Imx0IiwiPiI6Imd0In19KTtmdW5jdGlvbiBHcyhlLHQpe2xldCByPUZfKFduKGV8fCIiKSk7aWYoIXQpcmV0dXJuIHI7bGV0IGk9ci5pbmRleE9mKCI6IiksYT1yLmluZGV4T2YoIj8iKSxuPXIuaW5kZXhPZigiIyIpLG89ci5pbmRleE9mKCIvIik7cmV0dXJuIGk8MHx8bz4tMSYmaT5vfHxhPi0xJiZpPmF8fG4+LTEmJmk+bnx8dC50ZXN0KHIuc2xpY2UoMCxpKSk/cjoiIn1mdW5jdGlvbiBXbihlKXtsZXQgdD1bXSxyPS0xLGk9MCxhPTA7Zm9yKDsrK3I8ZS5sZW5ndGg7KXtsZXQgbj1lLmNoYXJDb2RlQXQociksbz0iIjtpZihuPT09MzcmJkkxKGUuY2hhckNvZGVBdChyKzEpKSYmSTEoZS5jaGFyQ29kZUF0KHIrMikpKWE9MjtlbHNlIGlmKG48MTI4KS9bISMkJi07PT8tWl9hLXp+XS8udGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKG4pKXx8KG89U3RyaW5nLmZyb21DaGFyQ29kZShuKSk7ZWxzZSBpZihuPjU1Mjk1JiZuPDU3MzQ0KXtsZXQgcz1lLmNoYXJDb2RlQXQocisxKTtuPDU2MzIwJiZzPjU2MzE5JiZzPDU3MzQ0PyhvPVN0cmluZy5mcm9tQ2hhckNvZGUobixzKSxhPTEpOm89Ilx1RkZGRCJ9ZWxzZSBvPVN0cmluZy5mcm9tQ2hhckNvZGUobik7byYmKHQucHVzaChlLnNsaWNlKGksciksZW5jb2RlVVJJQ29tcG9uZW50KG8pKSxpPXIrYSsxLG89IiIpLGEmJihyKz1hLGE9MCl9cmV0dXJuIHQuam9pbigiIikrZS5zbGljZShpKX12YXIgWXM9cCgoKT0+e3JyKCk7Q3RlKCl9KTtmdW5jdGlvbiBfdGUoKXtyZXR1cm57ZXhpdDp7bGl0ZXJhbEF1dG9saW5rRW1haWw6RkJyLGxpdGVyYWxBdXRvbGlua0h0dHA6T0JyLGxpdGVyYWxBdXRvbGlua1d3dzpOQnJ9fX1mdW5jdGlvbiBOQnIoZSl7VHRlLmNhbGwodGhpcyxlLCJodHRwOi8vIil9ZnVuY3Rpb24gRkJyKGUpe1R0ZS5jYWxsKHRoaXMsZSwibWFpbHRvOiIpfWZ1bmN0aW9uIE9CcihlKXtUdGUuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIFR0ZShlLHQpe2xldCByPXRoaXMuc2xpY2VTZXJpYWxpemUoZSk7dGhpcy50YWcoJzxhIGhyZWY9IicrR3MoKHR8fCIiKStyKSsnIj4nKSx0aGlzLnJhdyh0aGlzLmVuY29kZShyKSksdGhpcy50YWcoIjwvYT4iKX12YXIgalllPXAoKCk9PntZcygpfSk7dmFyIFZZZT1wKCgpPT57cVllKCk7alllKCl9KTtmdW5jdGlvbiBmNChlLHQscil7bGV0IGk9W10sYT0tMTtmb3IoOysrYTxlLmxlbmd0aDspe2xldCBuPWVbYV0ucmVzb2x2ZUFsbDtuJiYhaS5pbmNsdWRlcyhuKSYmKHQ9bih0LHIpLGkucHVzaChuKSl9cmV0dXJuIHR9dmFyIE45PXAoKCk9Pnt9KTtmdW5jdGlvbiBSQnIoZSx0KXtsZXQgcj0tMSxpLGEsbixvLHMsbCxjLHU7Zm9yKDsrK3I8ZS5sZW5ndGg7KWlmKGVbcl1bMF09PT0iZW50ZXIiJiZlW3JdWzFdLnR5cGU9PT0iYXR0ZW50aW9uU2VxdWVuY2UiJiZlW3JdWzFdLl9jbG9zZSl7Zm9yKGk9cjtpLS07KWlmKGVbaV1bMF09PT0iZXhpdCImJmVbaV1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJmVbaV1bMV0uX29wZW4mJnQuc2xpY2VTZXJpYWxpemUoZVtpXVsxXSkuY2hhckNvZGVBdCgwKT09PXQuc2xpY2VTZXJpYWxpemUoZVtyXVsxXSkuY2hhckNvZGVBdCgwKSl7aWYoKGVbaV1bMV0uX2Nsb3NlfHxlW3JdWzFdLl9vcGVuKSYmKGVbcl1bMV0uZW5kLm9mZnNldC1lW3JdWzFdLnN0YXJ0Lm9mZnNldCklMyYmISgoZVtpXVsxXS5lbmQub2Zmc2V0LWVbaV1bMV0uc3RhcnQub2Zmc2V0K2Vbcl1bMV0uZW5kLm9mZnNldC1lW3JdWzFdLnN0YXJ0Lm9mZnNldCklMykpY29udGludWU7bD1lW2ldWzFdLmVuZC5vZmZzZXQtZVtpXVsxXS5zdGFydC5vZmZzZXQ+MSYmZVtyXVsxXS5lbmQub2Zmc2V0LWVbcl1bMV0uc3RhcnQub2Zmc2V0PjE/MjoxO2xldCBkPXsuLi5lW2ldWzFdLmVuZH0saD17Li4uZVtyXVsxXS5zdGFydH07VVllKGQsLWwpLFVZZShoLGwpLG89e3R5cGU6bD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OmQsZW5kOnsuLi5lW2ldWzFdLmVuZH19LHM9e3R5cGU6bD4xPyJzdHJvbmdTZXF1ZW5jZSI6ImVtcGhhc2lzU2VxdWVuY2UiLHN0YXJ0OnsuLi5lW3JdWzFdLnN0YXJ0fSxlbmQ6aH0sbj17dHlwZTpsPjE/InN0cm9uZ1RleHQiOiJlbXBoYXNpc1RleHQiLHN0YXJ0OnsuLi5lW2ldWzFdLmVuZH0sZW5kOnsuLi5lW3JdWzFdLnN0YXJ0fX0sYT17dHlwZTpsPjE/InN0cm9uZyI6ImVtcGhhc2lzIixzdGFydDp7Li4uby5zdGFydH0sZW5kOnsuLi5zLmVuZH19LGVbaV1bMV0uZW5kPXsuLi5vLnN0YXJ0fSxlW3JdWzFdLnN0YXJ0PXsuLi5zLmVuZH0sYz1bXSxlW2ldWzFdLmVuZC5vZmZzZXQtZVtpXVsxXS5zdGFydC5vZmZzZXQmJihjPWFpKGMsW1siZW50ZXIiLGVbaV1bMV0sdF0sWyJleGl0IixlW2ldWzFdLHRdXSkpLGM9YWkoYyxbWyJlbnRlciIsYSx0XSxbImVudGVyIixvLHRdLFsiZXhpdCIsbyx0XSxbImVudGVyIixuLHRdXSksYz1haShjLGY0KHQucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLGUuc2xpY2UoaSsxLHIpLHQpKSxjPWFpKGMsW1siZXhpdCIsbix0XSxbImVudGVyIixzLHRdLFsiZXhpdCIscyx0XSxbImV4aXQiLGEsdF1dKSxlW3JdWzFdLmVuZC5vZmZzZXQtZVtyXVsxXS5zdGFydC5vZmZzZXQ/KHU9MixjPWFpKGMsW1siZW50ZXIiLGVbcl1bMV0sdF0sWyJleGl0IixlW3JdWzFdLHRdXSkpOnU9MCxqMShlLGktMSxyLWkrMyxjKSxyPWkrYy5sZW5ndGgtdS0yO2JyZWFrfX1mb3Iocj0tMTsrK3I8ZS5sZW5ndGg7KWVbcl1bMV0udHlwZT09PSJhdHRlbnRpb25TZXF1ZW5jZSImJihlW3JdWzFdLnR5cGU9ImRhdGEiKTtyZXR1cm4gZX1mdW5jdGlvbiBCQnIoZSx0KXtsZXQgcj10aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmF0dGVudGlvbk1hcmtlcnMubnVsbCxpPXRoaXMucHJldmlvdXMsYT1hYyhpKSxuO3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuIG49bCxlLmVudGVyKCJhdHRlbnRpb25TZXF1ZW5jZSIpLHMobCl9ZnVuY3Rpb24gcyhsKXtpZihsPT09bilyZXR1cm4gZS5jb25zdW1lKGwpLHM7bGV0IGM9ZS5leGl0KCJhdHRlbnRpb25TZXF1ZW5jZSIpLHU9YWMobCksZD0hdXx8dT09PTImJmF8fHIuaW5jbHVkZXMobCksaD0hYXx8YT09PTImJnV8fHIuaW5jbHVkZXMoaSk7cmV0dXJuIGMuX29wZW49ISEobj09PTQyP2Q6ZCYmKGF8fCFoKSksYy5fY2xvc2U9ISEobj09PTQyP2g6aCYmKHV8fCFkKSksdChsKX19ZnVuY3Rpb24gVVllKGUsdCl7ZS5jb2x1bW4rPXQsZS5vZmZzZXQrPXQsZS5fYnVmZmVySW5kZXgrPXR9dmFyIEY5LFdZZT1wKCgpPT57VXMoKTtDXygpO045KCk7Rjk9e25hbWU6ImF0dGVudGlvbiIscmVzb2x2ZUFsbDpSQnIsdG9rZW5pemU6QkJyfX0pO2Z1bmN0aW9uIEhCcihlLHQscil7bGV0IGk9MDtyZXR1cm4gYTtmdW5jdGlvbiBhKGYpe3JldHVybiBlLmVudGVyKCJhdXRvbGluayIpLGUuZW50ZXIoImF1dG9saW5rTWFya2VyIiksZS5jb25zdW1lKGYpLGUuZXhpdCgiYXV0b2xpbmtNYXJrZXIiKSxlLmVudGVyKCJhdXRvbGlua1Byb3RvY29sIiksbn1mdW5jdGlvbiBuKGYpe3JldHVybiB5aShmKT8oZS5jb25zdW1lKGYpLG8pOmY9PT02ND9yKGYpOmMoZil9ZnVuY3Rpb24gbyhmKXtyZXR1cm4gZj09PTQzfHxmPT09NDV8fGY9PT00Nnx8STEoZik/KGk9MSxzKGYpKTpjKGYpfWZ1bmN0aW9uIHMoZil7cmV0dXJuIGY9PT01OD8oZS5jb25zdW1lKGYpLGk9MCxsKTooZj09PTQzfHxmPT09NDV8fGY9PT00Nnx8STEoZikpJiZpKys8MzI/KGUuY29uc3VtZShmKSxzKTooaT0wLGMoZikpfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGY9PT02Mj8oZS5leGl0KCJhdXRvbGlua1Byb3RvY29sIiksZS5lbnRlcigiYXV0b2xpbmtNYXJrZXIiKSxlLmNvbnN1bWUoZiksZS5leGl0KCJhdXRvbGlua01hcmtlciIpLGUuZXhpdCgiYXV0b2xpbmsiKSx0KTpmPT09bnVsbHx8Zj09PTMyfHxmPT09NjB8fGlkKGYpP3IoZik6KGUuY29uc3VtZShmKSxsKX1mdW5jdGlvbiBjKGYpe3JldHVybiBmPT09NjQ/KGUuY29uc3VtZShmKSx1KTokV2UoZik/KGUuY29uc3VtZShmKSxjKTpyKGYpfWZ1bmN0aW9uIHUoZil7cmV0dXJuIEkxKGYpP2QoZik6cihmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09NDY/KGUuY29uc3VtZShmKSxpPTAsdSk6Zj09PTYyPyhlLmV4aXQoImF1dG9saW5rUHJvdG9jb2wiKS50eXBlPSJhdXRvbGlua0VtYWlsIixlLmVudGVyKCJhdXRvbGlua01hcmtlciIpLGUuY29uc3VtZShmKSxlLmV4aXQoImF1dG9saW5rTWFya2VyIiksZS5leGl0KCJhdXRvbGluayIpLHQpOmgoZil9ZnVuY3Rpb24gaChmKXtpZigoZj09PTQ1fHxJMShmKSkmJmkrKzw2Myl7bGV0IHg9Zj09PTQ1P2g6ZDtyZXR1cm4gZS5jb25zdW1lKGYpLHh9cmV0dXJuIHIoZil9fXZhciBMdGUsR1llPXAoKCk9PntycigpO0x0ZT17bmFtZToiYXV0b2xpbmsiLHRva2VuaXplOkhCcn19KTtmdW5jdGlvbiBidChlLHQscixpKXtsZXQgYT1pP2ktMTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbj0wO3JldHVybiBvO2Z1bmN0aW9uIG8obCl7cmV0dXJuIGN0KGwpPyhlLmVudGVyKHIpLHMobCkpOnQobCl9ZnVuY3Rpb24gcyhsKXtyZXR1cm4gY3QobCkmJm4rKzxhPyhlLmNvbnN1bWUobCkscyk6KGUuZXhpdChyKSx0KGwpKX19dmFyIFYxPXAoKCk9PntycigpfSk7ZnVuY3Rpb24gcUJyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBjdChuKT9idChlLGEsImxpbmVQcmVmaXgiKShuKTphKG4pfWZ1bmN0aW9uIGEobil7cmV0dXJuIG49PT1udWxsfHxHZShuKT90KG4pOnIobil9fXZhciBacyxPXz1wKCgpPT57VjEoKTtycigpO1pzPXtwYXJ0aWFsOiEwLHRva2VuaXplOnFCcn19KTtmdW5jdGlvbiBqQnIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtpZihvPT09NjIpe2xldCBzPWkuY29udGFpbmVyU3RhdGU7cmV0dXJuIHMub3Blbnx8KGUuZW50ZXIoImJsb2NrUXVvdGUiLHtfY29udGFpbmVyOiEwfSkscy5vcGVuPSEwKSxlLmVudGVyKCJibG9ja1F1b3RlUHJlZml4IiksZS5lbnRlcigiYmxvY2tRdW90ZU1hcmtlciIpLGUuY29uc3VtZShvKSxlLmV4aXQoImJsb2NrUXVvdGVNYXJrZXIiKSxufXJldHVybiByKG8pfWZ1bmN0aW9uIG4obyl7cmV0dXJuIGN0KG8pPyhlLmVudGVyKCJibG9ja1F1b3RlUHJlZml4V2hpdGVzcGFjZSIpLGUuY29uc3VtZShvKSxlLmV4aXQoImJsb2NrUXVvdGVQcmVmaXhXaGl0ZXNwYWNlIiksZS5leGl0KCJibG9ja1F1b3RlUHJlZml4IiksdCk6KGUuZXhpdCgiYmxvY2tRdW90ZVByZWZpeCIpLHQobykpfX1mdW5jdGlvbiBWQnIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtyZXR1cm4gY3Qobyk/YnQoZSxuLCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKG8pOm4obyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gZS5hdHRlbXB0KFJfLHQscikobyl9fWZ1bmN0aW9uIFVCcihlKXtlLmV4aXQoImJsb2NrUXVvdGUiKX12YXIgUl8sWVllPXAoKCk9PntWMSgpO3JyKCk7Ul89e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6VkJyfSxleGl0OlVCcixuYW1lOiJibG9ja1F1b3RlIix0b2tlbml6ZTpqQnJ9fSk7ZnVuY3Rpb24gV0JyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmVudGVyKCJjaGFyYWN0ZXJFc2NhcGUiKSxlLmVudGVyKCJlc2NhcGVNYXJrZXIiKSxlLmNvbnN1bWUobiksZS5leGl0KCJlc2NhcGVNYXJrZXIiKSxhfWZ1bmN0aW9uIGEobil7cmV0dXJuIFBXZShuKT8oZS5lbnRlcigiY2hhcmFjdGVyRXNjYXBlVmFsdWUiKSxlLmNvbnN1bWUobiksZS5leGl0KCJjaGFyYWN0ZXJFc2NhcGVWYWx1ZSIpLGUuZXhpdCgiY2hhcmFjdGVyRXNjYXBlIiksdCk6cihuKX19dmFyIEJfLFpZZT1wKCgpPT57cnIoKTtCXz17bmFtZToiY2hhcmFjdGVyRXNjYXBlIix0b2tlbml6ZTpXQnJ9fSk7ZnVuY3Rpb24gR0JyKGUsdCxyKXtsZXQgaT10aGlzLGE9MCxuLG87cmV0dXJuIHM7ZnVuY3Rpb24gcyhkKXtyZXR1cm4gZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlIiksZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyIiksbH1mdW5jdGlvbiBsKGQpe3JldHVybiBkPT09MzU/KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJOdW1lcmljIiksYyk6KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj0zMSxvPUkxLHUoZCkpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGQ9PT04OHx8ZD09PTEyMD8oZS5lbnRlcigiY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWwiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJjaGFyYWN0ZXJSZWZlcmVuY2VNYXJrZXJIZXhhZGVjaW1hbCIpLGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIiksbj02LG89SVdlLHUpOihlLmVudGVyKCJjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZSIpLG49NyxvPUQ5LHUoZCkpfWZ1bmN0aW9uIHUoZCl7aWYoZD09PTU5JiZhKXtsZXQgaD1lLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZVZhbHVlIik7cmV0dXJuIG89PT1JMSYmIWg0KGkuc2xpY2VTZXJpYWxpemUoaCkpP3IoZCk6KGUuZW50ZXIoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlciIpLGUuZXhpdCgiY2hhcmFjdGVyUmVmZXJlbmNlIiksdCl9cmV0dXJuIG8oZCkmJmErKzxuPyhlLmNvbnN1bWUoZCksdSk6cihkKX19dmFyIEhfLFhZZT1wKCgpPT57UDkoKTtycigpO0hfPXtuYW1lOiJjaGFyYWN0ZXJSZWZlcmVuY2UiLHRva2VuaXplOkdCcn19KTtmdW5jdGlvbiBZQnIoZSx0LHIpe2xldCBpPXRoaXMsYT17cGFydGlhbDohMCx0b2tlbml6ZTp6fSxuPTAsbz0wLHM7cmV0dXJuIGw7ZnVuY3Rpb24gbChNKXtyZXR1cm4gYyhNKX1mdW5jdGlvbiBjKE0pe2xldCBGPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbj1GJiZGWzFdLnR5cGU9PT0ibGluZVByZWZpeCI/RlsyXS5zbGljZVNlcmlhbGl6ZShGWzFdLCEwKS5sZW5ndGg6MCxzPU0sZS5lbnRlcigiY29kZUZlbmNlZCIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZSIpLGUuZW50ZXIoImNvZGVGZW5jZWRGZW5jZVNlcXVlbmNlIiksdShNKX1mdW5jdGlvbiB1KE0pe3JldHVybiBNPT09cz8obysrLGUuY29uc3VtZShNKSx1KTpvPDM/cihNKTooZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VTZXF1ZW5jZSIpLGN0KE0pP2J0KGUsZCwid2hpdGVzcGFjZSIpKE0pOmQoTSkpfWZ1bmN0aW9uIGQoTSl7cmV0dXJuIE09PT1udWxsfHxHZShNKT8oZS5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSxpLmludGVycnVwdD90KE0pOmUuY2hlY2soUVllLHYsTykoTSkpOihlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGgoTSkpfWZ1bmN0aW9uIGgoTSl7cmV0dXJuIE09PT1udWxsfHxHZShNKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlSW5mbyIpLGQoTSkpOmN0KE0pPyhlLmV4aXQoImNodW5rU3RyaW5nIiksZS5leGl0KCJjb2RlRmVuY2VkRmVuY2VJbmZvIiksYnQoZSxmLCJ3aGl0ZXNwYWNlIikoTSkpOk09PT05NiYmTT09PXM/cihNKTooZS5jb25zdW1lKE0pLGgpfWZ1bmN0aW9uIGYoTSl7cmV0dXJuIE09PT1udWxsfHxHZShNKT9kKE0pOihlLmVudGVyKCJjb2RlRmVuY2VkRmVuY2VNZXRhIiksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHgoTSkpfWZ1bmN0aW9uIHgoTSl7cmV0dXJuIE09PT1udWxsfHxHZShNKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdCgiY29kZUZlbmNlZEZlbmNlTWV0YSIpLGQoTSkpOk09PT05NiYmTT09PXM/cihNKTooZS5jb25zdW1lKE0pLHgpfWZ1bmN0aW9uIHYoTSl7cmV0dXJuIGUuYXR0ZW1wdChhLE8sYikoTSl9ZnVuY3Rpb24gYihNKXtyZXR1cm4gZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShNKSxlLmV4aXQoImxpbmVFbmRpbmciKSx5fWZ1bmN0aW9uIHkoTSl7cmV0dXJuIG4+MCYmY3QoTSk/YnQoZSx3LCJsaW5lUHJlZml4IixuKzEpKE0pOncoTSl9ZnVuY3Rpb24gdyhNKXtyZXR1cm4gTT09PW51bGx8fEdlKE0pP2UuY2hlY2soUVllLHYsTykoTSk6KGUuZW50ZXIoImNvZGVGbG93VmFsdWUiKSxrKE0pKX1mdW5jdGlvbiBrKE0pe3JldHVybiBNPT09bnVsbHx8R2UoTSk/KGUuZXhpdCgiY29kZUZsb3dWYWx1ZSIpLHcoTSkpOihlLmNvbnN1bWUoTSksayl9ZnVuY3Rpb24gTyhNKXtyZXR1cm4gZS5leGl0KCJjb2RlRmVuY2VkIiksdChNKX1mdW5jdGlvbiB6KE0sRixEKXtsZXQgTj0wO3JldHVybiBSO2Z1bmN0aW9uIFIoRSl7cmV0dXJuIE0uZW50ZXIoImxpbmVFbmRpbmciKSxNLmNvbnN1bWUoRSksTS5leGl0KCJsaW5lRW5kaW5nIiksX31mdW5jdGlvbiBfKEUpe3JldHVybiBNLmVudGVyKCJjb2RlRmVuY2VkRmVuY2UiKSxjdChFKT9idChNLFMsImxpbmVQcmVmaXgiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoRSk6UyhFKX1mdW5jdGlvbiBTKEUpe3JldHVybiBFPT09cz8oTS5lbnRlcigiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSwkKEUpKTpEKEUpfWZ1bmN0aW9uICQoRSl7cmV0dXJuIEU9PT1zPyhOKyssTS5jb25zdW1lKEUpLCQpOk4+PW8/KE0uZXhpdCgiY29kZUZlbmNlZEZlbmNlU2VxdWVuY2UiKSxjdChFKT9idChNLFQsIndoaXRlc3BhY2UiKShFKTpUKEUpKTpEKEUpfWZ1bmN0aW9uIFQoRSl7cmV0dXJuIEU9PT1udWxsfHxHZShFKT8oTS5leGl0KCJjb2RlRmVuY2VkRmVuY2UiKSxGKEUpKTpEKEUpfX19ZnVuY3Rpb24gWkJyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIG89PT1udWxsP3Iobyk6KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobyksZS5leGl0KCJsaW5lRW5kaW5nIiksbil9ZnVuY3Rpb24gbihvKXtyZXR1cm4gaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3Iobyk6dChvKX19dmFyIFFZZSxxXyxKWWU9cCgoKT0+e1YxKCk7cnIoKTtRWWU9e3BhcnRpYWw6ITAsdG9rZW5pemU6WkJyfSxxXz17Y29uY3JldGU6ITAsbmFtZToiY29kZUZlbmNlZCIsdG9rZW5pemU6WUJyfX0pO2Z1bmN0aW9uIFFCcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKGMpe3JldHVybiBlLmVudGVyKCJjb2RlSW5kZW50ZWQiKSxidChlLG4sImxpbmVQcmVmaXgiLDUpKGMpfWZ1bmN0aW9uIG4oYyl7bGV0IHU9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiB1JiZ1WzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnVbMl0uc2xpY2VTZXJpYWxpemUodVsxXSwhMCkubGVuZ3RoPj00P28oYyk6cihjKX1mdW5jdGlvbiBvKGMpe3JldHVybiBjPT09bnVsbD9sKGMpOkdlKGMpP2UuYXR0ZW1wdChYQnIsbyxsKShjKTooZS5lbnRlcigiY29kZUZsb3dWYWx1ZSIpLHMoYykpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1udWxsfHxHZShjKT8oZS5leGl0KCJjb2RlRmxvd1ZhbHVlIiksbyhjKSk6KGUuY29uc3VtZShjKSxzKX1mdW5jdGlvbiBsKGMpe3JldHVybiBlLmV4aXQoImNvZGVJbmRlbnRlZCIpLHQoYyl9fWZ1bmN0aW9uIEpCcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/cihvKTpHZShvKT8oZS5lbnRlcigibGluZUVuZGluZyIpLGUuY29uc3VtZShvKSxlLmV4aXQoImxpbmVFbmRpbmciKSxhKTpidChlLG4sImxpbmVQcmVmaXgiLDUpKG8pfWZ1bmN0aW9uIG4obyl7bGV0IHM9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiBzJiZzWzFdLnR5cGU9PT0ibGluZVByZWZpeCImJnNbMl0uc2xpY2VTZXJpYWxpemUoc1sxXSwhMCkubGVuZ3RoPj00P3Qobyk6R2Uobyk/YShvKTpyKG8pfX12YXIgTzksWEJyLEtZZT1wKCgpPT57VjEoKTtycigpO085PXtuYW1lOiJjb2RlSW5kZW50ZWQiLHRva2VuaXplOlFCcn0sWEJyPXtwYXJ0aWFsOiEwLHRva2VuaXplOkpCcn19KTtmdW5jdGlvbiBLQnIoZSl7bGV0IHQ9ZS5sZW5ndGgtNCxyPTMsaSxhO2lmKChlW3JdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fGVbcl1bMV0udHlwZT09PSJzcGFjZSIpJiYoZVt0XVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxlW3RdWzFdLnR5cGU9PT0ic3BhY2UiKSl7Zm9yKGk9cjsrK2k8dDspaWYoZVtpXVsxXS50eXBlPT09ImNvZGVUZXh0RGF0YSIpe2Vbcl1bMV0udHlwZT0iY29kZVRleHRQYWRkaW5nIixlW3RdWzFdLnR5cGU9ImNvZGVUZXh0UGFkZGluZyIscis9Mix0LT0yO2JyZWFrfX1mb3IoaT1yLTEsdCsrOysraTw9dDspYT09PXZvaWQgMD9pIT09dCYmZVtpXVsxXS50eXBlIT09ImxpbmVFbmRpbmciJiYoYT1pKTooaT09PXR8fGVbaV1bMV0udHlwZT09PSJsaW5lRW5kaW5nIikmJihlW2FdWzFdLnR5cGU9ImNvZGVUZXh0RGF0YSIsaSE9PWErMiYmKGVbYV1bMV0uZW5kPWVbaS0xXVsxXS5lbmQsZS5zcGxpY2UoYSsyLGktYS0yKSx0LT1pLWEtMixpPWErMiksYT12b2lkIDApO3JldHVybiBlfWZ1bmN0aW9uIGVIcihlKXtyZXR1cm4gZSE9PTk2fHx0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGgtMV1bMV0udHlwZT09PSJjaGFyYWN0ZXJFc2NhcGUifWZ1bmN0aW9uIHRIcihlLHQscil7bGV0IGk9dGhpcyxhPTAsbixvO3JldHVybiBzO2Z1bmN0aW9uIHMoaCl7cmV0dXJuIGUuZW50ZXIoImNvZGVUZXh0IiksZS5lbnRlcigiY29kZVRleHRTZXF1ZW5jZSIpLGwoaCl9ZnVuY3Rpb24gbChoKXtyZXR1cm4gaD09PTk2PyhlLmNvbnN1bWUoaCksYSsrLGwpOihlLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxjKGgpKX1mdW5jdGlvbiBjKGgpe3JldHVybiBoPT09bnVsbD9yKGgpOmg9PT0zMj8oZS5lbnRlcigic3BhY2UiKSxlLmNvbnN1bWUoaCksZS5leGl0KCJzcGFjZSIpLGMpOmg9PT05Nj8obz1lLmVudGVyKCJjb2RlVGV4dFNlcXVlbmNlIiksbj0wLGQoaCkpOkdlKGgpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGgpLGUuZXhpdCgibGluZUVuZGluZyIpLGMpOihlLmVudGVyKCJjb2RlVGV4dERhdGEiKSx1KGgpKX1mdW5jdGlvbiB1KGgpe3JldHVybiBoPT09bnVsbHx8aD09PTMyfHxoPT09OTZ8fEdlKGgpPyhlLmV4aXQoImNvZGVUZXh0RGF0YSIpLGMoaCkpOihlLmNvbnN1bWUoaCksdSl9ZnVuY3Rpb24gZChoKXtyZXR1cm4gaD09PTk2PyhlLmNvbnN1bWUoaCksbisrLGQpOm49PT1hPyhlLmV4aXQoImNvZGVUZXh0U2VxdWVuY2UiKSxlLmV4aXQoImNvZGVUZXh0IiksdChoKSk6KG8udHlwZT0iY29kZVRleHREYXRhIix1KGgpKX19dmFyIEF0ZSxlWmU9cCgoKT0+e3JyKCk7QXRlPXtuYW1lOiJjb2RlVGV4dCIscHJldmlvdXM6ZUhyLHJlc29sdmU6S0JyLHRva2VuaXplOnRIcn19KTtmdW5jdGlvbiBSOShlLHQpe2xldCByPTA7aWYodC5sZW5ndGg8MWU0KWUucHVzaCguLi50KTtlbHNlIGZvcig7cjx0Lmxlbmd0aDspZS5wdXNoKC4uLnQuc2xpY2UocixyKzFlNCkpLHIrPTFlNH12YXIgQjksRHRlPXAoKCk9PntCOT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmxlZnQ9dD9bLi4udF06W10sdGhpcy5yaWdodD1bXX1nZXQodCl7aWYodDwwfHx0Pj10aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJDYW5ub3QgYWNjZXNzIGluZGV4IGAiK3QrImAgaW4gYSBzcGxpY2UgYnVmZmVyIG9mIHNpemUgYCIrKHRoaXMubGVmdC5sZW5ndGgrdGhpcy5yaWdodC5sZW5ndGgpKyJgIik7cmV0dXJuIHQ8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnRbdF06dGhpcy5yaWdodFt0aGlzLnJpZ2h0Lmxlbmd0aC10K3RoaXMubGVmdC5sZW5ndGgtMV19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RofXNoaWZ0KCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucG9wKCl9c2xpY2UodCxyKXtsZXQgaT1yPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7cmV0dXJuIGk8dGhpcy5sZWZ0Lmxlbmd0aD90aGlzLmxlZnQuc2xpY2UodCxpKTp0PnRoaXMubGVmdC5sZW5ndGg/dGhpcy5yaWdodC5zbGljZSh0aGlzLnJpZ2h0Lmxlbmd0aC1pK3RoaXMubGVmdC5sZW5ndGgsdGhpcy5yaWdodC5sZW5ndGgtdCt0aGlzLmxlZnQubGVuZ3RoKS5yZXZlcnNlKCk6dGhpcy5sZWZ0LnNsaWNlKHQpLmNvbmNhdCh0aGlzLnJpZ2h0LnNsaWNlKHRoaXMucmlnaHQubGVuZ3RoLWkrdGhpcy5sZWZ0Lmxlbmd0aCkucmV2ZXJzZSgpKX1zcGxpY2UodCxyLGkpe2xldCBhPXJ8fDA7dGhpcy5zZXRDdXJzb3IoTWF0aC50cnVuYyh0KSk7bGV0IG49dGhpcy5yaWdodC5zcGxpY2UodGhpcy5yaWdodC5sZW5ndGgtYSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO3JldHVybiBpJiZSOSh0aGlzLmxlZnQsaSksbi5yZXZlcnNlKCl9cG9wKCl7cmV0dXJuIHRoaXMuc2V0Q3Vyc29yKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSksdGhpcy5sZWZ0LnBvcCgpfXB1c2godCl7dGhpcy5zZXRDdXJzb3IoTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx0aGlzLmxlZnQucHVzaCh0KX1wdXNoTWFueSh0KXt0aGlzLnNldEN1cnNvcihOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpLFI5KHRoaXMubGVmdCx0KX11bnNoaWZ0KHQpe3RoaXMuc2V0Q3Vyc29yKDApLHRoaXMucmlnaHQucHVzaCh0KX11bnNoaWZ0TWFueSh0KXt0aGlzLnNldEN1cnNvcigwKSxSOSh0aGlzLnJpZ2h0LHQucmV2ZXJzZSgpKX1zZXRDdXJzb3IodCl7aWYoISh0PT09dGhpcy5sZWZ0Lmxlbmd0aHx8dD50aGlzLmxlZnQubGVuZ3RoJiZ0aGlzLnJpZ2h0Lmxlbmd0aD09PTB8fHQ8MCYmdGhpcy5sZWZ0Lmxlbmd0aD09PTApKWlmKHQ8dGhpcy5sZWZ0Lmxlbmd0aCl7bGV0IHI9dGhpcy5sZWZ0LnNwbGljZSh0LE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7UjkodGhpcy5yaWdodCxyLnJldmVyc2UoKSl9ZWxzZXtsZXQgcj10aGlzLnJpZ2h0LnNwbGljZSh0aGlzLmxlZnQubGVuZ3RoK3RoaXMucmlnaHQubGVuZ3RoLXQsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTtSOSh0aGlzLmxlZnQsci5yZXZlcnNlKCkpfX19fSk7ZnVuY3Rpb24gal8oZSl7bGV0IHQ9e30scj0tMSxpLGEsbixvLHMsbCxjLHU9bmV3IEI5KGUpO2Zvcig7KytyPHUubGVuZ3RoOyl7Zm9yKDtyIGluIHQ7KXI9dFtyXTtpZihpPXUuZ2V0KHIpLHImJmlbMV0udHlwZT09PSJjaHVua0Zsb3ciJiZ1LmdldChyLTEpWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiJiYobD1pWzFdLl90b2tlbml6ZXIuZXZlbnRzLG49MCxuPGwubGVuZ3RoJiZsW25dWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIiYmKG4rPTIpLG48bC5sZW5ndGgmJmxbbl1bMV0udHlwZT09PSJjb250ZW50IikpZm9yKDsrK248bC5sZW5ndGgmJmxbbl1bMV0udHlwZSE9PSJjb250ZW50IjspbFtuXVsxXS50eXBlPT09ImNodW5rVGV4dCImJihsW25dWzFdLl9pc0luRmlyc3RDb250ZW50T2ZMaXN0SXRlbT0hMCxuKyspO2lmKGlbMF09PT0iZW50ZXIiKWlbMV0uY29udGVudFR5cGUmJihPYmplY3QuYXNzaWduKHQsckhyKHUscikpLHI9dFtyXSxjPSEwKTtlbHNlIGlmKGlbMV0uX2NvbnRhaW5lcil7Zm9yKG49cixhPXZvaWQgMDtuLS07KWlmKG89dS5nZXQobiksb1sxXS50eXBlPT09ImxpbmVFbmRpbmcifHxvWzFdLnR5cGU9PT0ibGluZUVuZGluZ0JsYW5rIilvWzBdPT09ImVudGVyIiYmKGEmJih1LmdldChhKVsxXS50eXBlPSJsaW5lRW5kaW5nQmxhbmsiKSxvWzFdLnR5cGU9ImxpbmVFbmRpbmciLGE9bik7ZWxzZSBpZighKG9bMV0udHlwZT09PSJsaW5lUHJlZml4Inx8b1sxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWs7YSYmKGlbMV0uZW5kPXsuLi51LmdldChhKVsxXS5zdGFydH0scz11LnNsaWNlKGEscikscy51bnNoaWZ0KGkpLHUuc3BsaWNlKGEsci1hKzEscykpfX1yZXR1cm4gajEoZSwwLE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1LnNsaWNlKDApKSwhY31mdW5jdGlvbiBySHIoZSx0KXtsZXQgcj1lLmdldCh0KVsxXSxpPWUuZ2V0KHQpWzJdLGE9dC0xLG49W10sbz1yLl90b2tlbml6ZXI7b3x8KG89aS5wYXJzZXJbci5jb250ZW50VHlwZV0oci5zdGFydCksci5fY29udGVudFR5cGVUZXh0VHJhaWxpbmcmJihvLl9jb250ZW50VHlwZVRleHRUcmFpbGluZz0hMCkpO2xldCBzPW8uZXZlbnRzLGw9W10sYz17fSx1LGQsaD0tMSxmPXIseD0wLHY9MCxiPVt2XTtmb3IoO2Y7KXtmb3IoO2UuZ2V0KCsrYSlbMV0hPT1mOyk7bi5wdXNoKGEpLGYuX3Rva2VuaXplcnx8KHU9aS5zbGljZVN0cmVhbShmKSxmLm5leHR8fHUucHVzaChudWxsKSxkJiZvLmRlZmluZVNraXAoZi5zdGFydCksZi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09ITApLG8ud3JpdGUodSksZi5faXNJbkZpcnN0Q29udGVudE9mTGlzdEl0ZW0mJihvLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW09dm9pZCAwKSksZD1mLGY9Zi5uZXh0fWZvcihmPXI7KytoPHMubGVuZ3RoOylzW2hdWzBdPT09ImV4aXQiJiZzW2gtMV1bMF09PT0iZW50ZXIiJiZzW2hdWzFdLnR5cGU9PT1zW2gtMV1bMV0udHlwZSYmc1toXVsxXS5zdGFydC5saW5lIT09c1toXVsxXS5lbmQubGluZSYmKHY9aCsxLGIucHVzaCh2KSxmLl90b2tlbml6ZXI9dm9pZCAwLGYucHJldmlvdXM9dm9pZCAwLGY9Zi5uZXh0KTtmb3Ioby5ldmVudHM9W10sZj8oZi5fdG9rZW5pemVyPXZvaWQgMCxmLnByZXZpb3VzPXZvaWQgMCk6Yi5wb3AoKSxoPWIubGVuZ3RoO2gtLTspe2xldCB5PXMuc2xpY2UoYltoXSxiW2grMV0pLHc9bi5wb3AoKTtsLnB1c2goW3csdyt5Lmxlbmd0aC0xXSksZS5zcGxpY2UodywyLHkpfWZvcihsLnJldmVyc2UoKSxoPS0xOysraDxsLmxlbmd0aDspY1t4K2xbaF1bMF1dPXgrbFtoXVsxXSx4Kz1sW2hdWzFdLWxbaF1bMF0tMTtyZXR1cm4gY312YXIgRXRlPXAoKCk9PntVcygpO0R0ZSgpO0R0ZSgpfSk7ZnVuY3Rpb24gYUhyKGUpe3JldHVybiBqXyhlKSxlfWZ1bmN0aW9uIG5IcihlLHQpe2xldCByO3JldHVybiBpO2Z1bmN0aW9uIGkocyl7cmV0dXJuIGUuZW50ZXIoImNvbnRlbnQiKSxyPWUuZW50ZXIoImNodW5rQ29udGVudCIse2NvbnRlbnRUeXBlOiJjb250ZW50In0pLGEocyl9ZnVuY3Rpb24gYShzKXtyZXR1cm4gcz09PW51bGw/bihzKTpHZShzKT9lLmNoZWNrKGlIcixvLG4pKHMpOihlLmNvbnN1bWUocyksYSl9ZnVuY3Rpb24gbihzKXtyZXR1cm4gZS5leGl0KCJjaHVua0NvbnRlbnQiKSxlLmV4aXQoImNvbnRlbnQiKSx0KHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIGUuY29uc3VtZShzKSxlLmV4aXQoImNodW5rQ29udGVudCIpLHIubmV4dD1lLmVudGVyKCJjaHVua0NvbnRlbnQiLHtjb250ZW50VHlwZToiY29udGVudCIscHJldmlvdXM6cn0pLHI9ci5uZXh0LGF9fWZ1bmN0aW9uIG9IcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKG8pe3JldHVybiBlLmV4aXQoImNodW5rQ29udGVudCIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobyksZS5leGl0KCJsaW5lRW5kaW5nIiksYnQoZSxuLCJsaW5lUHJlZml4Iil9ZnVuY3Rpb24gbihvKXtpZihvPT09bnVsbHx8R2UobykpcmV0dXJuIHIobyk7bGV0IHM9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdO3JldHVybiFpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIikmJnMmJnNbMV0udHlwZT09PSJsaW5lUHJlZml4IiYmc1syXS5zbGljZVNlcmlhbGl6ZShzWzFdLCEwKS5sZW5ndGg+PTQ/dChvKTplLmludGVycnVwdChpLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3cscix0KShvKX19dmFyICR0ZSxpSHIsdFplPXAoKCk9PntWMSgpO3JyKCk7RXRlKCk7JHRlPXtyZXNvbHZlOmFIcix0b2tlbml6ZTpuSHJ9LGlIcj17cGFydGlhbDohMCx0b2tlbml6ZTpvSHJ9fSk7ZnVuY3Rpb24gVl8oZSx0LHIsaSxhLG4sbyxzLGwpe2xldCBjPWx8fE51bWJlci5QT1NJVElWRV9JTkZJTklUWSx1PTA7cmV0dXJuIGQ7ZnVuY3Rpb24gZCh5KXtyZXR1cm4geT09PTYwPyhlLmVudGVyKGkpLGUuZW50ZXIoYSksZS5lbnRlcihuKSxlLmNvbnN1bWUoeSksZS5leGl0KG4pLGgpOnk9PT1udWxsfHx5PT09MzJ8fHk9PT00MXx8aWQoeSk/cih5KTooZS5lbnRlcihpKSxlLmVudGVyKG8pLGUuZW50ZXIocyksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHYoeSkpfWZ1bmN0aW9uIGgoeSl7cmV0dXJuIHk9PT02Mj8oZS5lbnRlcihuKSxlLmNvbnN1bWUoeSksZS5leGl0KG4pLGUuZXhpdChhKSxlLmV4aXQoaSksdCk6KGUuZW50ZXIocyksZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLGYoeSkpfWZ1bmN0aW9uIGYoeSl7cmV0dXJuIHk9PT02Mj8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChzKSxoKHkpKTp5PT09bnVsbHx8eT09PTYwfHxHZSh5KT9yKHkpOihlLmNvbnN1bWUoeSkseT09PTkyP3g6Zil9ZnVuY3Rpb24geCh5KXtyZXR1cm4geT09PTYwfHx5PT09NjJ8fHk9PT05Mj8oZS5jb25zdW1lKHkpLGYpOmYoeSl9ZnVuY3Rpb24gdih5KXtyZXR1cm4hdSYmKHk9PT1udWxsfHx5PT09NDF8fEp0KHkpKT8oZS5leGl0KCJjaHVua1N0cmluZyIpLGUuZXhpdChzKSxlLmV4aXQobyksZS5leGl0KGkpLHQoeSkpOnU8YyYmeT09PTQwPyhlLmNvbnN1bWUoeSksdSsrLHYpOnk9PT00MT8oZS5jb25zdW1lKHkpLHUtLSx2KTp5PT09bnVsbHx8eT09PTMyfHx5PT09NDB8fGlkKHkpP3IoeSk6KGUuY29uc3VtZSh5KSx5PT09OTI/Yjp2KX1mdW5jdGlvbiBiKHkpe3JldHVybiB5PT09NDB8fHk9PT00MXx8eT09PTkyPyhlLmNvbnN1bWUoeSksdik6dih5KX19dmFyIEl0ZT1wKCgpPT57cnIoKX0pO2Z1bmN0aW9uIFVfKGUsdCxyLGksYSxuKXtsZXQgbz10aGlzLHM9MCxsO3JldHVybiBjO2Z1bmN0aW9uIGMoZil7cmV0dXJuIGUuZW50ZXIoaSksZS5lbnRlcihhKSxlLmNvbnN1bWUoZiksZS5leGl0KGEpLGUuZW50ZXIobiksdX1mdW5jdGlvbiB1KGYpe3JldHVybiBzPjk5OXx8Zj09PW51bGx8fGY9PT05MXx8Zj09PTkzJiYhbHx8Zj09PTk0JiYhcyYmIl9oaWRkZW5Gb290bm90ZVN1cHBvcnQiaW4gby5wYXJzZXIuY29uc3RydWN0cz9yKGYpOmY9PT05Mz8oZS5leGl0KG4pLGUuZW50ZXIoYSksZS5jb25zdW1lKGYpLGUuZXhpdChhKSxlLmV4aXQoaSksdCk6R2UoZik/KGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoZiksZS5leGl0KCJsaW5lRW5kaW5nIiksdSk6KGUuZW50ZXIoImNodW5rU3RyaW5nIix7Y29udGVudFR5cGU6InN0cmluZyJ9KSxkKGYpKX1mdW5jdGlvbiBkKGYpe3JldHVybiBmPT09bnVsbHx8Zj09PTkxfHxmPT09OTN8fEdlKGYpfHxzKys+OTk5PyhlLmV4aXQoImNodW5rU3RyaW5nIiksdShmKSk6KGUuY29uc3VtZShmKSxsfHwobD0hY3QoZikpLGY9PT05Mj9oOmQpfWZ1bmN0aW9uIGgoZil7cmV0dXJuIGY9PT05MXx8Zj09PTkyfHxmPT09OTM/KGUuY29uc3VtZShmKSxzKyssZCk6ZChmKX19dmFyIFB0ZT1wKCgpPT57cnIoKX0pO2Z1bmN0aW9uIFdfKGUsdCxyLGksYSxuKXtsZXQgbztyZXR1cm4gcztmdW5jdGlvbiBzKGgpe3JldHVybiBoPT09MzR8fGg9PT0zOXx8aD09PTQwPyhlLmVudGVyKGkpLGUuZW50ZXIoYSksZS5jb25zdW1lKGgpLGUuZXhpdChhKSxvPWg9PT00MD80MTpoLGwpOnIoaCl9ZnVuY3Rpb24gbChoKXtyZXR1cm4gaD09PW8/KGUuZW50ZXIoYSksZS5jb25zdW1lKGgpLGUuZXhpdChhKSxlLmV4aXQoaSksdCk6KGUuZW50ZXIobiksYyhoKSl9ZnVuY3Rpb24gYyhoKXtyZXR1cm4gaD09PW8/KGUuZXhpdChuKSxsKG8pKTpoPT09bnVsbD9yKGgpOkdlKGgpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGgpLGUuZXhpdCgibGluZUVuZGluZyIpLGJ0KGUsYywibGluZVByZWZpeCIpKTooZS5lbnRlcigiY2h1bmtTdHJpbmciLHtjb250ZW50VHlwZToic3RyaW5nIn0pLHUoaCkpfWZ1bmN0aW9uIHUoaCl7cmV0dXJuIGg9PT1vfHxoPT09bnVsbHx8R2UoaCk/KGUuZXhpdCgiY2h1bmtTdHJpbmciKSxjKGgpKTooZS5jb25zdW1lKGgpLGg9PT05Mj9kOnUpfWZ1bmN0aW9uIGQoaCl7cmV0dXJuIGg9PT1vfHxoPT09OTI/KGUuY29uc3VtZShoKSx1KTp1KGgpfX12YXIgTnRlPXAoKCk9PntWMSgpO3JyKCl9KTtmdW5jdGlvbiBkZChlLHQpe2xldCByO3JldHVybiBpO2Z1bmN0aW9uIGkoYSl7cmV0dXJuIEdlKGEpPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGEpLGUuZXhpdCgibGluZUVuZGluZyIpLHI9ITAsaSk6Y3QoYSk/YnQoZSxpLHI/ImxpbmVQcmVmaXgiOiJsaW5lU3VmZml4IikoYSk6dChhKX19dmFyIEZ0ZT1wKCgpPT57VjEoKTtycigpfSk7ZnVuY3Rpb24gbEhyKGUsdCxyKXtsZXQgaT10aGlzLGE7cmV0dXJuIG47ZnVuY3Rpb24gbihmKXtyZXR1cm4gZS5lbnRlcigiZGVmaW5pdGlvbiIpLG8oZil9ZnVuY3Rpb24gbyhmKXtyZXR1cm4gVV8uY2FsbChpLGUscyxyLCJkZWZpbml0aW9uTGFiZWwiLCJkZWZpbml0aW9uTGFiZWxNYXJrZXIiLCJkZWZpbml0aW9uTGFiZWxTdHJpbmciKShmKX1mdW5jdGlvbiBzKGYpe3JldHVybiBhPVAxKGkuc2xpY2VTZXJpYWxpemUoaS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdWzFdKS5zbGljZSgxLC0xKSksZj09PTU4PyhlLmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksZS5jb25zdW1lKGYpLGUuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLGwpOnIoZil9ZnVuY3Rpb24gbChmKXtyZXR1cm4gSnQoZik/ZGQoZSxjKShmKTpjKGYpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIFZfKGUsdSxyLCJkZWZpbml0aW9uRGVzdGluYXRpb24iLCJkZWZpbml0aW9uRGVzdGluYXRpb25MaXRlcmFsIiwiZGVmaW5pdGlvbkRlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsImRlZmluaXRpb25EZXN0aW5hdGlvblJhdyIsImRlZmluaXRpb25EZXN0aW5hdGlvblN0cmluZyIpKGYpfWZ1bmN0aW9uIHUoZil7cmV0dXJuIGUuYXR0ZW1wdChzSHIsZCxkKShmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBjdChmKT9idChlLGgsIndoaXRlc3BhY2UiKShmKTpoKGYpfWZ1bmN0aW9uIGgoZil7cmV0dXJuIGY9PT1udWxsfHxHZShmKT8oZS5leGl0KCJkZWZpbml0aW9uIiksaS5wYXJzZXIuZGVmaW5lZC5wdXNoKGEpLHQoZikpOnIoZil9fWZ1bmN0aW9uIGNIcihlLHQscil7cmV0dXJuIGk7ZnVuY3Rpb24gaShzKXtyZXR1cm4gSnQocyk/ZGQoZSxhKShzKTpyKHMpfWZ1bmN0aW9uIGEocyl7cmV0dXJuIFdfKGUsbixyLCJkZWZpbml0aW9uVGl0bGUiLCJkZWZpbml0aW9uVGl0bGVNYXJrZXIiLCJkZWZpbml0aW9uVGl0bGVTdHJpbmciKShzKX1mdW5jdGlvbiBuKHMpe3JldHVybiBjdChzKT9idChlLG8sIndoaXRlc3BhY2UiKShzKTpvKHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIHM9PT1udWxsfHxHZShzKT90KHMpOnIocyl9fXZhciBPdGUsc0hyLHJaZT1wKCgpPT57SXRlKCk7UHRlKCk7VjEoKTtOdGUoKTtGdGUoKTtycigpO3A0KCk7T3RlPXtuYW1lOiJkZWZpbml0aW9uIix0b2tlbml6ZTpsSHJ9LHNIcj17cGFydGlhbDohMCx0b2tlbml6ZTpjSHJ9fSk7ZnVuY3Rpb24gZEhyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKG4pe3JldHVybiBlLmVudGVyKCJoYXJkQnJlYWtFc2NhcGUiKSxlLmNvbnN1bWUobiksYX1mdW5jdGlvbiBhKG4pe3JldHVybiBHZShuKT8oZS5leGl0KCJoYXJkQnJlYWtFc2NhcGUiKSx0KG4pKTpyKG4pfX12YXIgUnRlLGlaZT1wKCgpPT57cnIoKTtSdGU9e25hbWU6ImhhcmRCcmVha0VzY2FwZSIsdG9rZW5pemU6ZEhyfX0pO2Z1bmN0aW9uIHVIcihlLHQpe2xldCByPWUubGVuZ3RoLTIsaT0zLGEsbjtyZXR1cm4gZVtpXVsxXS50eXBlPT09IndoaXRlc3BhY2UiJiYoaSs9Miksci0yPmkmJmVbcl1bMV0udHlwZT09PSJ3aGl0ZXNwYWNlIiYmKHItPTIpLGVbcl1bMV0udHlwZT09PSJhdHhIZWFkaW5nU2VxdWVuY2UiJiYoaT09PXItMXx8ci00PmkmJmVbci0yXVsxXS50eXBlPT09IndoaXRlc3BhY2UiKSYmKHItPWkrMT09PXI/Mjo0KSxyPmkmJihhPXt0eXBlOiJhdHhIZWFkaW5nVGV4dCIsc3RhcnQ6ZVtpXVsxXS5zdGFydCxlbmQ6ZVtyXVsxXS5lbmR9LG49e3R5cGU6ImNodW5rVGV4dCIsc3RhcnQ6ZVtpXVsxXS5zdGFydCxlbmQ6ZVtyXVsxXS5lbmQsY29udGVudFR5cGU6InRleHQifSxqMShlLGksci1pKzEsW1siZW50ZXIiLGEsdF0sWyJlbnRlciIsbix0XSxbImV4aXQiLG4sdF0sWyJleGl0IixhLHRdXSkpLGV9ZnVuY3Rpb24gcEhyKGUsdCxyKXtsZXQgaT0wO3JldHVybiBhO2Z1bmN0aW9uIGEodSl7cmV0dXJuIGUuZW50ZXIoImF0eEhlYWRpbmciKSxuKHUpfWZ1bmN0aW9uIG4odSl7cmV0dXJuIGUuZW50ZXIoImF0eEhlYWRpbmdTZXF1ZW5jZSIpLG8odSl9ZnVuY3Rpb24gbyh1KXtyZXR1cm4gdT09PTM1JiZpKys8Nj8oZS5jb25zdW1lKHUpLG8pOnU9PT1udWxsfHxKdCh1KT8oZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxzKHUpKTpyKHUpfWZ1bmN0aW9uIHModSl7cmV0dXJuIHU9PT0zNT8oZS5lbnRlcigiYXR4SGVhZGluZ1NlcXVlbmNlIiksbCh1KSk6dT09PW51bGx8fEdlKHUpPyhlLmV4aXQoImF0eEhlYWRpbmciKSx0KHUpKTpjdCh1KT9idChlLHMsIndoaXRlc3BhY2UiKSh1KTooZS5lbnRlcigiYXR4SGVhZGluZ1RleHQiKSxjKHUpKX1mdW5jdGlvbiBsKHUpe3JldHVybiB1PT09MzU/KGUuY29uc3VtZSh1KSxsKTooZS5leGl0KCJhdHhIZWFkaW5nU2VxdWVuY2UiKSxzKHUpKX1mdW5jdGlvbiBjKHUpe3JldHVybiB1PT09bnVsbHx8dT09PTM1fHxKdCh1KT8oZS5leGl0KCJhdHhIZWFkaW5nVGV4dCIpLHModSkpOihlLmNvbnN1bWUodSksYyl9fXZhciBCdGUsYVplPXAoKCk9PntWMSgpO3JyKCk7VXMoKTtCdGU9e25hbWU6ImhlYWRpbmdBdHgiLHJlc29sdmU6dUhyLHRva2VuaXplOnBIcn19KTt2YXIgblplLEh0ZSxvWmU9cCgoKT0+e25aZT1bImFkZHJlc3MiLCJhcnRpY2xlIiwiYXNpZGUiLCJiYXNlIiwiYmFzZWZvbnQiLCJibG9ja3F1b3RlIiwiYm9keSIsImNhcHRpb24iLCJjZW50ZXIiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGV0YWlscyIsImRpYWxvZyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiZnJhbWUiLCJmcmFtZXNldCIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJociIsImh0bWwiLCJpZnJhbWUiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtYWluIiwibWVudSIsIm1lbnVpdGVtIiwibmF2Iiwibm9mcmFtZXMiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uIiwicCIsInBhcmFtIiwic2VhcmNoIiwic2VjdGlvbiIsInN1bW1hcnkiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1bCJdLEh0ZT1bInByZSIsInNjcmlwdCIsInN0eWxlIiwidGV4dGFyZWEiXX0pO2Z1bmN0aW9uIG1IcihlKXtsZXQgdD1lLmxlbmd0aDtmb3IoO3QtLSYmIShlW3RdWzBdPT09ImVudGVyIiYmZVt0XVsxXS50eXBlPT09Imh0bWxGbG93Iik7KTtyZXR1cm4gdD4xJiZlW3QtMl1bMV0udHlwZT09PSJsaW5lUHJlZml4IiYmKGVbdF1bMV0uc3RhcnQ9ZVt0LTJdWzFdLnN0YXJ0LGVbdCsxXVsxXS5zdGFydD1lW3QtMl1bMV0uc3RhcnQsZS5zcGxpY2UodC0yLDIpKSxlfWZ1bmN0aW9uIGdIcihlLHQscil7bGV0IGk9dGhpcyxhLG4sbyxzLGw7cmV0dXJuIGM7ZnVuY3Rpb24gYyhJKXtyZXR1cm4gdShJKX1mdW5jdGlvbiB1KEkpe3JldHVybiBlLmVudGVyKCJodG1sRmxvdyIpLGUuZW50ZXIoImh0bWxGbG93RGF0YSIpLGUuY29uc3VtZShJKSxkfWZ1bmN0aW9uIGQoSSl7cmV0dXJuIEk9PT0zMz8oZS5jb25zdW1lKEkpLGgpOkk9PT00Nz8oZS5jb25zdW1lKEkpLG49ITAsdik6ST09PTYzPyhlLmNvbnN1bWUoSSksYT0zLGkuaW50ZXJydXB0P3Q6UCk6eWkoSSk/KGUuY29uc3VtZShJKSxvPVN0cmluZy5mcm9tQ2hhckNvZGUoSSksYik6cihJKX1mdW5jdGlvbiBoKEkpe3JldHVybiBJPT09NDU/KGUuY29uc3VtZShJKSxhPTIsZik6ST09PTkxPyhlLmNvbnN1bWUoSSksYT01LHM9MCx4KTp5aShJKT8oZS5jb25zdW1lKEkpLGE9NCxpLmludGVycnVwdD90OlApOnIoSSl9ZnVuY3Rpb24gZihJKXtyZXR1cm4gST09PTQ1PyhlLmNvbnN1bWUoSSksaS5pbnRlcnJ1cHQ/dDpQKTpyKEkpfWZ1bmN0aW9uIHgoSSl7bGV0IG5lPSJDREFUQVsiO3JldHVybiBJPT09bmUuY2hhckNvZGVBdChzKyspPyhlLmNvbnN1bWUoSSkscz09PW5lLmxlbmd0aD9pLmludGVycnVwdD90OlM6eCk6cihJKX1mdW5jdGlvbiB2KEkpe3JldHVybiB5aShJKT8oZS5jb25zdW1lKEkpLG89U3RyaW5nLmZyb21DaGFyQ29kZShJKSxiKTpyKEkpfWZ1bmN0aW9uIGIoSSl7aWYoST09PW51bGx8fEk9PT00N3x8ST09PTYyfHxKdChJKSl7bGV0IG5lPUk9PT00NyxrZT1vLnRvTG93ZXJDYXNlKCk7cmV0dXJuIW5lJiYhbiYmSHRlLmluY2x1ZGVzKGtlKT8oYT0xLGkuaW50ZXJydXB0P3QoSSk6UyhJKSk6blplLmluY2x1ZGVzKG8udG9Mb3dlckNhc2UoKSk/KGE9NixuZT8oZS5jb25zdW1lKEkpLHkpOmkuaW50ZXJydXB0P3QoSSk6UyhJKSk6KGE9NyxpLmludGVycnVwdCYmIWkucGFyc2VyLmxhenlbaS5ub3coKS5saW5lXT9yKEkpOm4/dyhJKTprKEkpKX1yZXR1cm4gST09PTQ1fHxJMShJKT8oZS5jb25zdW1lKEkpLG8rPVN0cmluZy5mcm9tQ2hhckNvZGUoSSksYik6cihJKX1mdW5jdGlvbiB5KEkpe3JldHVybiBJPT09NjI/KGUuY29uc3VtZShJKSxpLmludGVycnVwdD90OlMpOnIoSSl9ZnVuY3Rpb24gdyhJKXtyZXR1cm4gY3QoSSk/KGUuY29uc3VtZShJKSx3KTpSKEkpfWZ1bmN0aW9uIGsoSSl7cmV0dXJuIEk9PT00Nz8oZS5jb25zdW1lKEkpLFIpOkk9PT01OHx8ST09PTk1fHx5aShJKT8oZS5jb25zdW1lKEkpLE8pOmN0KEkpPyhlLmNvbnN1bWUoSSksayk6UihJKX1mdW5jdGlvbiBPKEkpe3JldHVybiBJPT09NDV8fEk9PT00Nnx8ST09PTU4fHxJPT09OTV8fEkxKEkpPyhlLmNvbnN1bWUoSSksTyk6eihJKX1mdW5jdGlvbiB6KEkpe3JldHVybiBJPT09NjE/KGUuY29uc3VtZShJKSxNKTpjdChJKT8oZS5jb25zdW1lKEkpLHopOmsoSSl9ZnVuY3Rpb24gTShJKXtyZXR1cm4gST09PW51bGx8fEk9PT02MHx8ST09PTYxfHxJPT09NjJ8fEk9PT05Nj9yKEkpOkk9PT0zNHx8ST09PTM5PyhlLmNvbnN1bWUoSSksbD1JLEYpOmN0KEkpPyhlLmNvbnN1bWUoSSksTSk6RChJKX1mdW5jdGlvbiBGKEkpe3JldHVybiBJPT09bD8oZS5jb25zdW1lKEkpLGw9bnVsbCxOKTpJPT09bnVsbHx8R2UoSSk/cihJKTooZS5jb25zdW1lKEkpLEYpfWZ1bmN0aW9uIEQoSSl7cmV0dXJuIEk9PT1udWxsfHxJPT09MzR8fEk9PT0zOXx8ST09PTQ3fHxJPT09NjB8fEk9PT02MXx8ST09PTYyfHxJPT09OTZ8fEp0KEkpP3ooSSk6KGUuY29uc3VtZShJKSxEKX1mdW5jdGlvbiBOKEkpe3JldHVybiBJPT09NDd8fEk9PT02Mnx8Y3QoSSk/ayhJKTpyKEkpfWZ1bmN0aW9uIFIoSSl7cmV0dXJuIEk9PT02Mj8oZS5jb25zdW1lKEkpLF8pOnIoSSl9ZnVuY3Rpb24gXyhJKXtyZXR1cm4gST09PW51bGx8fEdlKEkpP1MoSSk6Y3QoSSk/KGUuY29uc3VtZShJKSxfKTpyKEkpfWZ1bmN0aW9uIFMoSSl7cmV0dXJuIEk9PT00NSYmYT09PTI/KGUuY29uc3VtZShJKSxxKTpJPT09NjAmJmE9PT0xPyhlLmNvbnN1bWUoSSksQik6ST09PTYyJiZhPT09ND8oZS5jb25zdW1lKEkpLGdlKTpJPT09NjMmJmE9PT0zPyhlLmNvbnN1bWUoSSksUCk6ST09PTkzJiZhPT09NT8oZS5jb25zdW1lKEkpLGVlKTpHZShJKSYmKGE9PT02fHxhPT09Nyk/KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksZS5jaGVjayhoSHIsd2UsJCkoSSkpOkk9PT1udWxsfHxHZShJKT8oZS5leGl0KCJodG1sRmxvd0RhdGEiKSwkKEkpKTooZS5jb25zdW1lKEkpLFMpfWZ1bmN0aW9uICQoSSl7cmV0dXJuIGUuY2hlY2soZkhyLFQsd2UpKEkpfWZ1bmN0aW9uIFQoSSl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoSSksZS5leGl0KCJsaW5lRW5kaW5nIiksRX1mdW5jdGlvbiBFKEkpe3JldHVybiBJPT09bnVsbHx8R2UoSSk/JChJKTooZS5lbnRlcigiaHRtbEZsb3dEYXRhIiksUyhJKSl9ZnVuY3Rpb24gcShJKXtyZXR1cm4gST09PTQ1PyhlLmNvbnN1bWUoSSksUCk6UyhJKX1mdW5jdGlvbiBCKEkpe3JldHVybiBJPT09NDc/KGUuY29uc3VtZShJKSxvPSIiLEcpOlMoSSl9ZnVuY3Rpb24gRyhJKXtpZihJPT09NjIpe2xldCBuZT1vLnRvTG93ZXJDYXNlKCk7cmV0dXJuIEh0ZS5pbmNsdWRlcyhuZSk/KGUuY29uc3VtZShJKSxnZSk6UyhJKX1yZXR1cm4geWkoSSkmJm8ubGVuZ3RoPDg/KGUuY29uc3VtZShJKSxvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpLEcpOlMoSSl9ZnVuY3Rpb24gZWUoSSl7cmV0dXJuIEk9PT05Mz8oZS5jb25zdW1lKEkpLFApOlMoSSl9ZnVuY3Rpb24gUChJKXtyZXR1cm4gST09PTYyPyhlLmNvbnN1bWUoSSksZ2UpOkk9PT00NSYmYT09PTI/KGUuY29uc3VtZShJKSxQKTpTKEkpfWZ1bmN0aW9uIGdlKEkpe3JldHVybiBJPT09bnVsbHx8R2UoSSk/KGUuZXhpdCgiaHRtbEZsb3dEYXRhIiksd2UoSSkpOihlLmNvbnN1bWUoSSksZ2UpfWZ1bmN0aW9uIHdlKEkpe3JldHVybiBlLmV4aXQoImh0bWxGbG93IiksdChJKX19ZnVuY3Rpb24gYkhyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEobyl7cmV0dXJuIEdlKG8pPyhlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKG8pLGUuZXhpdCgibGluZUVuZGluZyIpLG4pOnIobyl9ZnVuY3Rpb24gbihvKXtyZXR1cm4gaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3Iobyk6dChvKX19ZnVuY3Rpb24gdkhyKGUsdCxyKXtyZXR1cm4gaTtmdW5jdGlvbiBpKGEpe3JldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKGEpLGUuZXhpdCgibGluZUVuZGluZyIpLGUuYXR0ZW1wdChacyx0LHIpfX12YXIgcXRlLGhIcixmSHIsc1plPXAoKCk9PntycigpO29aZSgpO09fKCk7cXRlPXtjb25jcmV0ZTohMCxuYW1lOiJodG1sRmxvdyIscmVzb2x2ZVRvOm1Icix0b2tlbml6ZTpnSHJ9LGhIcj17cGFydGlhbDohMCx0b2tlbml6ZTp2SHJ9LGZIcj17cGFydGlhbDohMCx0b2tlbml6ZTpiSHJ9fSk7ZnVuY3Rpb24geEhyKGUsdCxyKXtsZXQgaT10aGlzLGEsbixvO3JldHVybiBzO2Z1bmN0aW9uIHMoUCl7cmV0dXJuIGUuZW50ZXIoImh0bWxUZXh0IiksZS5lbnRlcigiaHRtbFRleHREYXRhIiksZS5jb25zdW1lKFApLGx9ZnVuY3Rpb24gbChQKXtyZXR1cm4gUD09PTMzPyhlLmNvbnN1bWUoUCksYyk6UD09PTQ3PyhlLmNvbnN1bWUoUCkseik6UD09PTYzPyhlLmNvbnN1bWUoUCksayk6eWkoUCk/KGUuY29uc3VtZShQKSxEKTpyKFApfWZ1bmN0aW9uIGMoUCl7cmV0dXJuIFA9PT00NT8oZS5jb25zdW1lKFApLHUpOlA9PT05MT8oZS5jb25zdW1lKFApLG49MCx4KTp5aShQKT8oZS5jb25zdW1lKFApLHcpOnIoUCl9ZnVuY3Rpb24gdShQKXtyZXR1cm4gUD09PTQ1PyhlLmNvbnN1bWUoUCksZik6cihQKX1mdW5jdGlvbiBkKFApe3JldHVybiBQPT09bnVsbD9yKFApOlA9PT00NT8oZS5jb25zdW1lKFApLGgpOkdlKFApPyhvPWQsQihQKSk6KGUuY29uc3VtZShQKSxkKX1mdW5jdGlvbiBoKFApe3JldHVybiBQPT09NDU/KGUuY29uc3VtZShQKSxmKTpkKFApfWZ1bmN0aW9uIGYoUCl7cmV0dXJuIFA9PT02Mj9xKFApOlA9PT00NT9oKFApOmQoUCl9ZnVuY3Rpb24geChQKXtsZXQgZ2U9IkNEQVRBWyI7cmV0dXJuIFA9PT1nZS5jaGFyQ29kZUF0KG4rKyk/KGUuY29uc3VtZShQKSxuPT09Z2UubGVuZ3RoP3Y6eCk6cihQKX1mdW5jdGlvbiB2KFApe3JldHVybiBQPT09bnVsbD9yKFApOlA9PT05Mz8oZS5jb25zdW1lKFApLGIpOkdlKFApPyhvPXYsQihQKSk6KGUuY29uc3VtZShQKSx2KX1mdW5jdGlvbiBiKFApe3JldHVybiBQPT09OTM/KGUuY29uc3VtZShQKSx5KTp2KFApfWZ1bmN0aW9uIHkoUCl7cmV0dXJuIFA9PT02Mj9xKFApOlA9PT05Mz8oZS5jb25zdW1lKFApLHkpOnYoUCl9ZnVuY3Rpb24gdyhQKXtyZXR1cm4gUD09PW51bGx8fFA9PT02Mj9xKFApOkdlKFApPyhvPXcsQihQKSk6KGUuY29uc3VtZShQKSx3KX1mdW5jdGlvbiBrKFApe3JldHVybiBQPT09bnVsbD9yKFApOlA9PT02Mz8oZS5jb25zdW1lKFApLE8pOkdlKFApPyhvPWssQihQKSk6KGUuY29uc3VtZShQKSxrKX1mdW5jdGlvbiBPKFApe3JldHVybiBQPT09NjI/cShQKTprKFApfWZ1bmN0aW9uIHooUCl7cmV0dXJuIHlpKFApPyhlLmNvbnN1bWUoUCksTSk6cihQKX1mdW5jdGlvbiBNKFApe3JldHVybiBQPT09NDV8fEkxKFApPyhlLmNvbnN1bWUoUCksTSk6RihQKX1mdW5jdGlvbiBGKFApe3JldHVybiBHZShQKT8obz1GLEIoUCkpOmN0KFApPyhlLmNvbnN1bWUoUCksRik6cShQKX1mdW5jdGlvbiBEKFApe3JldHVybiBQPT09NDV8fEkxKFApPyhlLmNvbnN1bWUoUCksRCk6UD09PTQ3fHxQPT09NjJ8fEp0KFApP04oUCk6cihQKX1mdW5jdGlvbiBOKFApe3JldHVybiBQPT09NDc/KGUuY29uc3VtZShQKSxxKTpQPT09NTh8fFA9PT05NXx8eWkoUCk/KGUuY29uc3VtZShQKSxSKTpHZShQKT8obz1OLEIoUCkpOmN0KFApPyhlLmNvbnN1bWUoUCksTik6cShQKX1mdW5jdGlvbiBSKFApe3JldHVybiBQPT09NDV8fFA9PT00Nnx8UD09PTU4fHxQPT09OTV8fEkxKFApPyhlLmNvbnN1bWUoUCksUik6XyhQKX1mdW5jdGlvbiBfKFApe3JldHVybiBQPT09NjE/KGUuY29uc3VtZShQKSxTKTpHZShQKT8obz1fLEIoUCkpOmN0KFApPyhlLmNvbnN1bWUoUCksXyk6TihQKX1mdW5jdGlvbiBTKFApe3JldHVybiBQPT09bnVsbHx8UD09PTYwfHxQPT09NjF8fFA9PT02Mnx8UD09PTk2P3IoUCk6UD09PTM0fHxQPT09Mzk/KGUuY29uc3VtZShQKSxhPVAsJCk6R2UoUCk/KG89UyxCKFApKTpjdChQKT8oZS5jb25zdW1lKFApLFMpOihlLmNvbnN1bWUoUCksVCl9ZnVuY3Rpb24gJChQKXtyZXR1cm4gUD09PWE/KGUuY29uc3VtZShQKSxhPXZvaWQgMCxFKTpQPT09bnVsbD9yKFApOkdlKFApPyhvPSQsQihQKSk6KGUuY29uc3VtZShQKSwkKX1mdW5jdGlvbiBUKFApe3JldHVybiBQPT09bnVsbHx8UD09PTM0fHxQPT09Mzl8fFA9PT02MHx8UD09PTYxfHxQPT09OTY/cihQKTpQPT09NDd8fFA9PT02Mnx8SnQoUCk/TihQKTooZS5jb25zdW1lKFApLFQpfWZ1bmN0aW9uIEUoUCl7cmV0dXJuIFA9PT00N3x8UD09PTYyfHxKdChQKT9OKFApOnIoUCl9ZnVuY3Rpb24gcShQKXtyZXR1cm4gUD09PTYyPyhlLmNvbnN1bWUoUCksZS5leGl0KCJodG1sVGV4dERhdGEiKSxlLmV4aXQoImh0bWxUZXh0IiksdCk6cihQKX1mdW5jdGlvbiBCKFApe3JldHVybiBlLmV4aXQoImh0bWxUZXh0RGF0YSIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoUCksZS5leGl0KCJsaW5lRW5kaW5nIiksR31mdW5jdGlvbiBHKFApe3JldHVybiBjdChQKT9idChlLGVlLCJsaW5lUHJlZml4IixpLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpKFApOmVlKFApfWZ1bmN0aW9uIGVlKFApe3JldHVybiBlLmVudGVyKCJodG1sVGV4dERhdGEiKSxvKFApfX12YXIganRlLGxaZT1wKCgpPT57VjEoKTtycigpO2p0ZT17bmFtZToiaHRtbFRleHQiLHRva2VuaXplOnhIcn19KTtmdW5jdGlvbiBrSHIoZSl7bGV0IHQ9LTEscj1bXTtmb3IoOysrdDxlLmxlbmd0aDspe2xldCBpPWVbdF1bMV07aWYoci5wdXNoKGVbdF0pLGkudHlwZT09PSJsYWJlbEltYWdlInx8aS50eXBlPT09ImxhYmVsTGluayJ8fGkudHlwZT09PSJsYWJlbEVuZCIpe2xldCBhPWkudHlwZT09PSJsYWJlbEltYWdlIj80OjI7aS50eXBlPSJkYXRhIix0Kz1hfX1yZXR1cm4gZS5sZW5ndGghPT1yLmxlbmd0aCYmajEoZSwwLGUubGVuZ3RoLHIpLGV9ZnVuY3Rpb24gU0hyKGUsdCl7bGV0IHI9ZS5sZW5ndGgsaT0wLGEsbixvLHM7Zm9yKDtyLS07KWlmKGE9ZVtyXVsxXSxuKXtpZihhLnR5cGU9PT0ibGluayJ8fGEudHlwZT09PSJsYWJlbExpbmsiJiZhLl9pbmFjdGl2ZSlicmVhaztlW3JdWzBdPT09ImVudGVyIiYmYS50eXBlPT09ImxhYmVsTGluayImJihhLl9pbmFjdGl2ZT0hMCl9ZWxzZSBpZihvKXtpZihlW3JdWzBdPT09ImVudGVyIiYmKGEudHlwZT09PSJsYWJlbEltYWdlInx8YS50eXBlPT09ImxhYmVsTGluayIpJiYhYS5fYmFsYW5jZWQmJihuPXIsYS50eXBlIT09ImxhYmVsTGluayIpKXtpPTI7YnJlYWt9fWVsc2UgYS50eXBlPT09ImxhYmVsRW5kIiYmKG89cik7bGV0IGw9e3R5cGU6ZVtuXVsxXS50eXBlPT09ImxhYmVsTGluayI/ImxpbmsiOiJpbWFnZSIsc3RhcnQ6ey4uLmVbbl1bMV0uc3RhcnR9LGVuZDp7Li4uZVtlLmxlbmd0aC0xXVsxXS5lbmR9fSxjPXt0eXBlOiJsYWJlbCIsc3RhcnQ6ey4uLmVbbl1bMV0uc3RhcnR9LGVuZDp7Li4uZVtvXVsxXS5lbmR9fSx1PXt0eXBlOiJsYWJlbFRleHQiLHN0YXJ0OnsuLi5lW24raSsyXVsxXS5lbmR9LGVuZDp7Li4uZVtvLTJdWzFdLnN0YXJ0fX07cmV0dXJuIHM9W1siZW50ZXIiLGwsdF0sWyJlbnRlciIsYyx0XV0scz1haShzLGUuc2xpY2UobisxLG4raSszKSkscz1haShzLFtbImVudGVyIix1LHRdXSkscz1haShzLGY0KHQucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsLGUuc2xpY2UobitpKzQsby0zKSx0KSkscz1haShzLFtbImV4aXQiLHUsdF0sZVtvLTJdLGVbby0xXSxbImV4aXQiLGMsdF1dKSxzPWFpKHMsZS5zbGljZShvKzEpKSxzPWFpKHMsW1siZXhpdCIsbCx0XV0pLGoxKGUsbixlLmxlbmd0aCxzKSxlfWZ1bmN0aW9uIHpIcihlLHQscil7bGV0IGk9dGhpcyxhPWkuZXZlbnRzLmxlbmd0aCxuLG87Zm9yKDthLS07KWlmKChpLmV2ZW50c1thXVsxXS50eXBlPT09ImxhYmVsSW1hZ2UifHxpLmV2ZW50c1thXVsxXS50eXBlPT09ImxhYmVsTGluayIpJiYhaS5ldmVudHNbYV1bMV0uX2JhbGFuY2VkKXtuPWkuZXZlbnRzW2FdWzFdO2JyZWFrfXJldHVybiBzO2Z1bmN0aW9uIHMoaCl7cmV0dXJuIG4/bi5faW5hY3RpdmU/ZChoKToobz1pLnBhcnNlci5kZWZpbmVkLmluY2x1ZGVzKFAxKGkuc2xpY2VTZXJpYWxpemUoe3N0YXJ0Om4uZW5kLGVuZDppLm5vdygpfSkpKSxlLmVudGVyKCJsYWJlbEVuZCIpLGUuZW50ZXIoImxhYmVsTWFya2VyIiksZS5jb25zdW1lKGgpLGUuZXhpdCgibGFiZWxNYXJrZXIiKSxlLmV4aXQoImxhYmVsRW5kIiksbCk6cihoKX1mdW5jdGlvbiBsKGgpe3JldHVybiBoPT09NDA/ZS5hdHRlbXB0KHlIcix1LG8/dTpkKShoKTpoPT09OTE/ZS5hdHRlbXB0KHdIcix1LG8/YzpkKShoKTpvP3UoaCk6ZChoKX1mdW5jdGlvbiBjKGgpe3JldHVybiBlLmF0dGVtcHQoTUhyLHUsZCkoaCl9ZnVuY3Rpb24gdShoKXtyZXR1cm4gdChoKX1mdW5jdGlvbiBkKGgpe3JldHVybiBuLl9iYWxhbmNlZD0hMCxyKGgpfX1mdW5jdGlvbiBDSHIoZSx0LHIpe3JldHVybiBpO2Z1bmN0aW9uIGkoZCl7cmV0dXJuIGUuZW50ZXIoInJlc291cmNlIiksZS5lbnRlcigicmVzb3VyY2VNYXJrZXIiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJyZXNvdXJjZU1hcmtlciIpLGF9ZnVuY3Rpb24gYShkKXtyZXR1cm4gSnQoZCk/ZGQoZSxuKShkKTpuKGQpfWZ1bmN0aW9uIG4oZCl7cmV0dXJuIGQ9PT00MT91KGQpOlZfKGUsbyxzLCJyZXNvdXJjZURlc3RpbmF0aW9uIiwicmVzb3VyY2VEZXN0aW5hdGlvbkxpdGVyYWwiLCJyZXNvdXJjZURlc3RpbmF0aW9uTGl0ZXJhbE1hcmtlciIsInJlc291cmNlRGVzdGluYXRpb25SYXciLCJyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nIiwzMikoZCl9ZnVuY3Rpb24gbyhkKXtyZXR1cm4gSnQoZCk/ZGQoZSxsKShkKTp1KGQpfWZ1bmN0aW9uIHMoZCl7cmV0dXJuIHIoZCl9ZnVuY3Rpb24gbChkKXtyZXR1cm4gZD09PTM0fHxkPT09Mzl8fGQ9PT00MD9XXyhlLGMsciwicmVzb3VyY2VUaXRsZSIsInJlc291cmNlVGl0bGVNYXJrZXIiLCJyZXNvdXJjZVRpdGxlU3RyaW5nIikoZCk6dShkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBKdChkKT9kZChlLHUpKGQpOnUoZCl9ZnVuY3Rpb24gdShkKXtyZXR1cm4gZD09PTQxPyhlLmVudGVyKCJyZXNvdXJjZU1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoInJlc291cmNlTWFya2VyIiksZS5leGl0KCJyZXNvdXJjZSIpLHQpOnIoZCl9fWZ1bmN0aW9uIFRIcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYTtmdW5jdGlvbiBhKHMpe3JldHVybiBVXy5jYWxsKGksZSxuLG8sInJlZmVyZW5jZSIsInJlZmVyZW5jZU1hcmtlciIsInJlZmVyZW5jZVN0cmluZyIpKHMpfWZ1bmN0aW9uIG4ocyl7cmV0dXJuIGkucGFyc2VyLmRlZmluZWQuaW5jbHVkZXMoUDEoaS5zbGljZVNlcmlhbGl6ZShpLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV1bMV0pLnNsaWNlKDEsLTEpKSk/dChzKTpyKHMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIHIocyl9fWZ1bmN0aW9uIF9IcihlLHQscil7cmV0dXJuIGk7ZnVuY3Rpb24gaShuKXtyZXR1cm4gZS5lbnRlcigicmVmZXJlbmNlIiksZS5lbnRlcigicmVmZXJlbmNlTWFya2VyIiksZS5jb25zdW1lKG4pLGUuZXhpdCgicmVmZXJlbmNlTWFya2VyIiksYX1mdW5jdGlvbiBhKG4pe3JldHVybiBuPT09OTM/KGUuZW50ZXIoInJlZmVyZW5jZU1hcmtlciIpLGUuY29uc3VtZShuKSxlLmV4aXQoInJlZmVyZW5jZU1hcmtlciIpLGUuZXhpdCgicmVmZXJlbmNlIiksdCk6cihuKX19dmFyIHVkLHlIcix3SHIsTUhyLEdfPXAoKCk9PntJdGUoKTtQdGUoKTtOdGUoKTtGdGUoKTtycigpO1VzKCk7cDQoKTtOOSgpO3VkPXtuYW1lOiJsYWJlbEVuZCIscmVzb2x2ZUFsbDprSHIscmVzb2x2ZVRvOlNIcix0b2tlbml6ZTp6SHJ9LHlIcj17dG9rZW5pemU6Q0hyfSx3SHI9e3Rva2VuaXplOlRIcn0sTUhyPXt0b2tlbml6ZTpfSHJ9fSk7ZnVuY3Rpb24gTEhyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBhO2Z1bmN0aW9uIGEocyl7cmV0dXJuIGUuZW50ZXIoImxhYmVsSW1hZ2UiKSxlLmVudGVyKCJsYWJlbEltYWdlTWFya2VyIiksZS5jb25zdW1lKHMpLGUuZXhpdCgibGFiZWxJbWFnZU1hcmtlciIpLG59ZnVuY3Rpb24gbihzKXtyZXR1cm4gcz09PTkxPyhlLmVudGVyKCJsYWJlbE1hcmtlciIpLGUuY29uc3VtZShzKSxlLmV4aXQoImxhYmVsTWFya2VyIiksZS5leGl0KCJsYWJlbEltYWdlIiksbyk6cihzKX1mdW5jdGlvbiBvKHMpe3JldHVybiBzPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGkucGFyc2VyLmNvbnN0cnVjdHM/cihzKTp0KHMpfX12YXIgVnRlLGNaZT1wKCgpPT57R18oKTtWdGU9e25hbWU6ImxhYmVsU3RhcnRJbWFnZSIscmVzb2x2ZUFsbDp1ZC5yZXNvbHZlQWxsLHRva2VuaXplOkxIcn19KTtmdW5jdGlvbiBBSHIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShvKXtyZXR1cm4gZS5lbnRlcigibGFiZWxMaW5rIiksZS5lbnRlcigibGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUobyksZS5leGl0KCJsYWJlbE1hcmtlciIpLGUuZXhpdCgibGFiZWxMaW5rIiksbn1mdW5jdGlvbiBuKG8pe3JldHVybiBvPT09OTQmJiJfaGlkZGVuRm9vdG5vdGVTdXBwb3J0ImluIGkucGFyc2VyLmNvbnN0cnVjdHM/cihvKTp0KG8pfX12YXIgVXRlLGRaZT1wKCgpPT57R18oKTtVdGU9e25hbWU6ImxhYmVsU3RhcnRMaW5rIixyZXNvbHZlQWxsOnVkLnJlc29sdmVBbGwsdG9rZW5pemU6QUhyfX0pO2Z1bmN0aW9uIERIcihlLHQpe3JldHVybiByO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoaSksZS5leGl0KCJsaW5lRW5kaW5nIiksYnQoZSx0LCJsaW5lUHJlZml4Iil9fXZhciBIOSx1WmU9cCgoKT0+e1YxKCk7cnIoKTtIOT17bmFtZToibGluZUVuZGluZyIsdG9rZW5pemU6REhyfX0pO2Z1bmN0aW9uIEVIcihlLHQscil7bGV0IGk9MCxhO3JldHVybiBuO2Z1bmN0aW9uIG4oYyl7cmV0dXJuIGUuZW50ZXIoInRoZW1hdGljQnJlYWsiKSxvKGMpfWZ1bmN0aW9uIG8oYyl7cmV0dXJuIGE9YyxzKGMpfWZ1bmN0aW9uIHMoYyl7cmV0dXJuIGM9PT1hPyhlLmVudGVyKCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxsKGMpKTppPj0zJiYoYz09PW51bGx8fEdlKGMpKT8oZS5leGl0KCJ0aGVtYXRpY0JyZWFrIiksdChjKSk6cihjKX1mdW5jdGlvbiBsKGMpe3JldHVybiBjPT09YT8oZS5jb25zdW1lKGMpLGkrKyxsKTooZS5leGl0KCJ0aGVtYXRpY0JyZWFrU2VxdWVuY2UiKSxjdChjKT9idChlLHMsIndoaXRlc3BhY2UiKShjKTpzKGMpKX19dmFyIHBkLFd0ZT1wKCgpPT57VjEoKTtycigpO3BkPXtuYW1lOiJ0aGVtYXRpY0JyZWFrIix0b2tlbml6ZTpFSHJ9fSk7ZnVuY3Rpb24gUEhyKGUsdCxyKXtsZXQgaT10aGlzLGE9aS5ldmVudHNbaS5ldmVudHMubGVuZ3RoLTFdLG49YSYmYVsxXS50eXBlPT09ImxpbmVQcmVmaXgiP2FbMl0uc2xpY2VTZXJpYWxpemUoYVsxXSwhMCkubGVuZ3RoOjAsbz0wO3JldHVybiBzO2Z1bmN0aW9uIHMoZil7bGV0IHg9aS5jb250YWluZXJTdGF0ZS50eXBlfHwoZj09PTQyfHxmPT09NDN8fGY9PT00NT8ibGlzdFVub3JkZXJlZCI6Imxpc3RPcmRlcmVkIik7aWYoeD09PSJsaXN0VW5vcmRlcmVkIj8haS5jb250YWluZXJTdGF0ZS5tYXJrZXJ8fGY9PT1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcjpEOShmKSl7aWYoaS5jb250YWluZXJTdGF0ZS50eXBlfHwoaS5jb250YWluZXJTdGF0ZS50eXBlPXgsZS5lbnRlcih4LHtfY29udGFpbmVyOiEwfSkpLHg9PT0ibGlzdFVub3JkZXJlZCIpcmV0dXJuIGUuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksZj09PTQyfHxmPT09NDU/ZS5jaGVjayhwZCxyLGMpKGYpOmMoZik7aWYoIWkuaW50ZXJydXB0fHxmPT09NDkpcmV0dXJuIGUuZW50ZXIoImxpc3RJdGVtUHJlZml4IiksZS5lbnRlcigibGlzdEl0ZW1WYWx1ZSIpLGwoZil9cmV0dXJuIHIoZil9ZnVuY3Rpb24gbChmKXtyZXR1cm4gRDkoZikmJisrbzwxMD8oZS5jb25zdW1lKGYpLGwpOighaS5pbnRlcnJ1cHR8fG88MikmJihpLmNvbnRhaW5lclN0YXRlLm1hcmtlcj9mPT09aS5jb250YWluZXJTdGF0ZS5tYXJrZXI6Zj09PTQxfHxmPT09NDYpPyhlLmV4aXQoImxpc3RJdGVtVmFsdWUiKSxjKGYpKTpyKGYpfWZ1bmN0aW9uIGMoZil7cmV0dXJuIGUuZW50ZXIoImxpc3RJdGVtTWFya2VyIiksZS5jb25zdW1lKGYpLGUuZXhpdCgibGlzdEl0ZW1NYXJrZXIiKSxpLmNvbnRhaW5lclN0YXRlLm1hcmtlcj1pLmNvbnRhaW5lclN0YXRlLm1hcmtlcnx8ZixlLmNoZWNrKFpzLGkuaW50ZXJydXB0P3I6dSxlLmF0dGVtcHQoJEhyLGgsZCkpfWZ1bmN0aW9uIHUoZil7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuaW5pdGlhbEJsYW5rTGluZT0hMCxuKyssaChmKX1mdW5jdGlvbiBkKGYpe3JldHVybiBjdChmKT8oZS5lbnRlcigibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksZS5jb25zdW1lKGYpLGUuZXhpdCgibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIiksaCk6cihmKX1mdW5jdGlvbiBoKGYpe3JldHVybiBpLmNvbnRhaW5lclN0YXRlLnNpemU9bitpLnNsaWNlU2VyaWFsaXplKGUuZXhpdCgibGlzdEl0ZW1QcmVmaXgiKSwhMCkubGVuZ3RoLHQoZil9fWZ1bmN0aW9uIE5IcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMCxlLmNoZWNrKFpzLGEsbik7ZnVuY3Rpb24gYShzKXtyZXR1cm4gaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz1pLmNvbnRhaW5lclN0YXRlLmZ1cnRoZXJCbGFua0xpbmVzfHxpLmNvbnRhaW5lclN0YXRlLmluaXRpYWxCbGFua0xpbmUsYnQoZSx0LCJsaXN0SXRlbUluZGVudCIsaS5jb250YWluZXJTdGF0ZS5zaXplKzEpKHMpfWZ1bmN0aW9uIG4ocyl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuZnVydGhlckJsYW5rTGluZXN8fCFjdChzKT8oaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxvKHMpKTooaS5jb250YWluZXJTdGF0ZS5mdXJ0aGVyQmxhbmtMaW5lcz12b2lkIDAsaS5jb250YWluZXJTdGF0ZS5pbml0aWFsQmxhbmtMaW5lPXZvaWQgMCxlLmF0dGVtcHQoSUhyLHQsbykocykpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIGkuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz0hMCxpLmludGVycnVwdD12b2lkIDAsYnQoZSxlLmF0dGVtcHQoTGEsdCxyKSwibGluZVByZWZpeCIsaS5wYXJzZXIuY29uc3RydWN0cy5kaXNhYmxlLm51bGwuaW5jbHVkZXMoImNvZGVJbmRlbnRlZCIpP3ZvaWQgMDo0KShzKX19ZnVuY3Rpb24gRkhyKGUsdCxyKXtsZXQgaT10aGlzO3JldHVybiBidChlLGEsImxpc3RJdGVtSW5kZW50IixpLmNvbnRhaW5lclN0YXRlLnNpemUrMSk7ZnVuY3Rpb24gYShuKXtsZXQgbz1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIG8mJm9bMV0udHlwZT09PSJsaXN0SXRlbUluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09aS5jb250YWluZXJTdGF0ZS5zaXplP3Qobik6cihuKX19ZnVuY3Rpb24gT0hyKGUpe2UuZXhpdCh0aGlzLmNvbnRhaW5lclN0YXRlLnR5cGUpfWZ1bmN0aW9uIFJIcihlLHQscil7bGV0IGk9dGhpcztyZXR1cm4gYnQoZSxhLCJsaXN0SXRlbVByZWZpeFdoaXRlc3BhY2UiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NSk7ZnVuY3Rpb24gYShuKXtsZXQgbz1pLmV2ZW50c1tpLmV2ZW50cy5sZW5ndGgtMV07cmV0dXJuIWN0KG4pJiZvJiZvWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIj90KG4pOnIobil9fXZhciBMYSwkSHIsSUhyLHBaZT1wKCgpPT57VjEoKTtycigpO09fKCk7V3RlKCk7TGE9e2NvbnRpbnVhdGlvbjp7dG9rZW5pemU6TkhyfSxleGl0Ok9IcixuYW1lOiJsaXN0Iix0b2tlbml6ZTpQSHJ9LCRIcj17cGFydGlhbDohMCx0b2tlbml6ZTpSSHJ9LElIcj17cGFydGlhbDohMCx0b2tlbml6ZTpGSHJ9fSk7ZnVuY3Rpb24gQkhyKGUsdCl7bGV0IHI9ZS5sZW5ndGgsaSxhLG47Zm9yKDtyLS07KWlmKGVbcl1bMF09PT0iZW50ZXIiKXtpZihlW3JdWzFdLnR5cGU9PT0iY29udGVudCIpe2k9cjticmVha31lW3JdWzFdLnR5cGU9PT0icGFyYWdyYXBoIiYmKGE9cil9ZWxzZSBlW3JdWzFdLnR5cGU9PT0iY29udGVudCImJmUuc3BsaWNlKHIsMSksIW4mJmVbcl1bMV0udHlwZT09PSJkZWZpbml0aW9uIiYmKG49cik7bGV0IG89e3R5cGU6InNldGV4dEhlYWRpbmciLHN0YXJ0OnsuLi5lW2ldWzFdLnN0YXJ0fSxlbmQ6ey4uLmVbZS5sZW5ndGgtMV1bMV0uZW5kfX07cmV0dXJuIGVbYV1bMV0udHlwZT0ic2V0ZXh0SGVhZGluZ1RleHQiLG4/KGUuc3BsaWNlKGEsMCxbImVudGVyIixvLHRdKSxlLnNwbGljZShuKzEsMCxbImV4aXQiLGVbaV1bMV0sdF0pLGVbaV1bMV0uZW5kPXsuLi5lW25dWzFdLmVuZH0pOmVbaV1bMV09byxlLnB1c2goWyJleGl0IixvLHRdKSxlfWZ1bmN0aW9uIEhIcihlLHQscil7bGV0IGk9dGhpcyxhO3JldHVybiBuO2Z1bmN0aW9uIG4oYyl7bGV0IHU9aS5ldmVudHMubGVuZ3RoLGQ7Zm9yKDt1LS07KWlmKGkuZXZlbnRzW3VdWzFdLnR5cGUhPT0ibGluZUVuZGluZyImJmkuZXZlbnRzW3VdWzFdLnR5cGUhPT0ibGluZVByZWZpeCImJmkuZXZlbnRzW3VdWzFdLnR5cGUhPT0iY29udGVudCIpe2Q9aS5ldmVudHNbdV1bMV0udHlwZT09PSJwYXJhZ3JhcGgiO2JyZWFrfXJldHVybiFpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0mJihpLmludGVycnVwdHx8ZCk/KGUuZW50ZXIoInNldGV4dEhlYWRpbmdMaW5lIiksYT1jLG8oYykpOnIoYyl9ZnVuY3Rpb24gbyhjKXtyZXR1cm4gZS5lbnRlcigic2V0ZXh0SGVhZGluZ0xpbmVTZXF1ZW5jZSIpLHMoYyl9ZnVuY3Rpb24gcyhjKXtyZXR1cm4gYz09PWE/KGUuY29uc3VtZShjKSxzKTooZS5leGl0KCJzZXRleHRIZWFkaW5nTGluZVNlcXVlbmNlIiksY3QoYyk/YnQoZSxsLCJsaW5lU3VmZml4IikoYyk6bChjKSl9ZnVuY3Rpb24gbChjKXtyZXR1cm4gYz09PW51bGx8fEdlKGMpPyhlLmV4aXQoInNldGV4dEhlYWRpbmdMaW5lIiksdChjKSk6cihjKX19dmFyIFlfLGhaZT1wKCgpPT57VjEoKTtycigpO1lfPXtuYW1lOiJzZXRleHRVbmRlcmxpbmUiLHJlc29sdmVUbzpCSHIsdG9rZW5pemU6SEhyfX0pO3ZhciBaXz1wKCgpPT57V1llKCk7R1llKCk7T18oKTtZWWUoKTtaWWUoKTtYWWUoKTtKWWUoKTtLWWUoKTtlWmUoKTt0WmUoKTtyWmUoKTtpWmUoKTthWmUoKTtzWmUoKTtsWmUoKTtHXygpO2NaZSgpO2RaZSgpO3VaZSgpO3BaZSgpO2haZSgpO1d0ZSgpfSk7ZnVuY3Rpb24gR3RlKCl7cmV0dXJue2RvY3VtZW50Ons5MTp7bmFtZToiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uIix0b2tlbml6ZTpXSHIsY29udGludWF0aW9uOnt0b2tlbml6ZTpHSHJ9LGV4aXQ6WUhyfX0sdGV4dDp7OTE6e25hbWU6ImdmbUZvb3Rub3RlQ2FsbCIsdG9rZW5pemU6VUhyfSw5Mzp7bmFtZToiZ2ZtUG90ZW50aWFsRm9vdG5vdGVDYWxsIixhZGQ6ImFmdGVyIix0b2tlbml6ZTpqSHIscmVzb2x2ZVRvOlZIcn19fX1mdW5jdGlvbiBqSHIoZSx0LHIpe2xldCBpPXRoaXMsYT1pLmV2ZW50cy5sZW5ndGgsbj1pLnBhcnNlci5nZm1Gb290bm90ZXN8fChpLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG87Zm9yKDthLS07KXtsZXQgbD1pLmV2ZW50c1thXVsxXTtpZihsLnR5cGU9PT0ibGFiZWxJbWFnZSIpe289bDticmVha31pZihsLnR5cGU9PT0iZ2ZtRm9vdG5vdGVDYWxsInx8bC50eXBlPT09ImxhYmVsTGluayJ8fGwudHlwZT09PSJsYWJlbCJ8fGwudHlwZT09PSJpbWFnZSJ8fGwudHlwZT09PSJsaW5rIilicmVha31yZXR1cm4gcztmdW5jdGlvbiBzKGwpe2lmKCFvfHwhby5fYmFsYW5jZWQpcmV0dXJuIHIobCk7bGV0IGM9UDEoaS5zbGljZVNlcmlhbGl6ZSh7c3RhcnQ6by5lbmQsZW5kOmkubm93KCl9KSk7cmV0dXJuIGMuY29kZVBvaW50QXQoMCkhPT05NHx8IW4uaW5jbHVkZXMoYy5zbGljZSgxKSk/cihsKTooZS5lbnRlcigiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUobCksZS5leGl0KCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLHQobCkpfX1mdW5jdGlvbiBWSHIoZSx0KXtsZXQgcj1lLmxlbmd0aCxpO2Zvcig7ci0tOylpZihlW3JdWzFdLnR5cGU9PT0ibGFiZWxJbWFnZSImJmVbcl1bMF09PT0iZW50ZXIiKXtpPWVbcl1bMV07YnJlYWt9ZVtyKzFdWzFdLnR5cGU9ImRhdGEiLGVbciszXVsxXS50eXBlPSJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciI7bGV0IGE9e3R5cGU6ImdmbUZvb3Rub3RlQ2FsbCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxlW3IrM11bMV0uc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LGVbZS5sZW5ndGgtMV1bMV0uZW5kKX0sbj17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsTWFya2VyIixzdGFydDpPYmplY3QuYXNzaWduKHt9LGVbciszXVsxXS5lbmQpLGVuZDpPYmplY3QuYXNzaWduKHt9LGVbciszXVsxXS5lbmQpfTtuLmVuZC5jb2x1bW4rKyxuLmVuZC5vZmZzZXQrKyxuLmVuZC5fYnVmZmVySW5kZXgrKztsZXQgbz17dHlwZToiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIixzdGFydDpPYmplY3QuYXNzaWduKHt9LG4uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxlW2UubGVuZ3RoLTFdWzFdLnN0YXJ0KX0scz17dHlwZToiY2h1bmtTdHJpbmciLGNvbnRlbnRUeXBlOiJzdHJpbmciLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sby5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30sby5lbmQpfSxsPVtlW3IrMV0sZVtyKzJdLFsiZW50ZXIiLGEsdF0sZVtyKzNdLGVbcis0XSxbImVudGVyIixuLHRdLFsiZXhpdCIsbix0XSxbImVudGVyIixvLHRdLFsiZW50ZXIiLHMsdF0sWyJleGl0IixzLHRdLFsiZXhpdCIsbyx0XSxlW2UubGVuZ3RoLTJdLGVbZS5sZW5ndGgtMV0sWyJleGl0IixhLHRdXTtyZXR1cm4gZS5zcGxpY2UocixlLmxlbmd0aC1yKzEsLi4ubCksZX1mdW5jdGlvbiBVSHIoZSx0LHIpe2xldCBpPXRoaXMsYT1pLnBhcnNlci5nZm1Gb290bm90ZXN8fChpLnBhcnNlci5nZm1Gb290bm90ZXM9W10pLG49MCxvO3JldHVybiBzO2Z1bmN0aW9uIHMoZCl7cmV0dXJuIGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbCIpLGUuZW50ZXIoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZS5jb25zdW1lKGQpLGUuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsTGFiZWxNYXJrZXIiKSxsfWZ1bmN0aW9uIGwoZCl7cmV0dXJuIGQhPT05ND9yKGQpOihlLmVudGVyKCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSxlLmNvbnN1bWUoZCksZS5leGl0KCJnZm1Gb290bm90ZUNhbGxNYXJrZXIiKSxlLmVudGVyKCJnZm1Gb290bm90ZUNhbGxTdHJpbmciKSxlLmVudGVyKCJjaHVua1N0cmluZyIpLmNvbnRlbnRUeXBlPSJzdHJpbmciLGMpfWZ1bmN0aW9uIGMoZCl7aWYobj45OTl8fGQ9PT05MyYmIW98fGQ9PT1udWxsfHxkPT09OTF8fEp0KGQpKXJldHVybiByKGQpO2lmKGQ9PT05Myl7ZS5leGl0KCJjaHVua1N0cmluZyIpO2xldCBoPWUuZXhpdCgiZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nIik7cmV0dXJuIGEuaW5jbHVkZXMoUDEoaS5zbGljZVNlcmlhbGl6ZShoKSkpPyhlLmVudGVyKCJnZm1Gb290bm90ZUNhbGxMYWJlbE1hcmtlciIpLGUuY29uc3VtZShkKSxlLmV4aXQoImdmbUZvb3Rub3RlQ2FsbExhYmVsTWFya2VyIiksZS5leGl0KCJnZm1Gb290bm90ZUNhbGwiKSx0KTpyKGQpfXJldHVybiBKdChkKXx8KG89ITApLG4rKyxlLmNvbnN1bWUoZCksZD09PTkyP3U6Y31mdW5jdGlvbiB1KGQpe3JldHVybiBkPT09OTF8fGQ9PT05Mnx8ZD09PTkzPyhlLmNvbnN1bWUoZCksbisrLGMpOmMoZCl9fWZ1bmN0aW9uIFdIcihlLHQscil7bGV0IGk9dGhpcyxhPWkucGFyc2VyLmdmbUZvb3Rub3Rlc3x8KGkucGFyc2VyLmdmbUZvb3Rub3Rlcz1bXSksbixvPTAscztyZXR1cm4gbDtmdW5jdGlvbiBsKHgpe3JldHVybiBlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb24iKS5fY29udGFpbmVyPSEwLGUuZW50ZXIoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsIiksZS5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoeCksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGN9ZnVuY3Rpb24gYyh4KXtyZXR1cm4geD09PTk0PyhlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSxlLmNvbnN1bWUoeCksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25NYXJrZXIiKSxlLmVudGVyKCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbFN0cmluZyIpLGUuZW50ZXIoImNodW5rU3RyaW5nIikuY29udGVudFR5cGU9InN0cmluZyIsdSk6cih4KX1mdW5jdGlvbiB1KHgpe2lmKG8+OTk5fHx4PT09OTMmJiFzfHx4PT09bnVsbHx8eD09PTkxfHxKdCh4KSlyZXR1cm4gcih4KTtpZih4PT09OTMpe2UuZXhpdCgiY2h1bmtTdHJpbmciKTtsZXQgdj1lLmV4aXQoImdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nIik7cmV0dXJuIG49UDEoaS5zbGljZVNlcmlhbGl6ZSh2KSksZS5lbnRlcigiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxNYXJrZXIiKSxlLmNvbnN1bWUoeCksZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb25MYWJlbE1hcmtlciIpLGUuZXhpdCgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWwiKSxofXJldHVybiBKdCh4KXx8KHM9ITApLG8rKyxlLmNvbnN1bWUoeCkseD09PTkyP2Q6dX1mdW5jdGlvbiBkKHgpe3JldHVybiB4PT09OTF8fHg9PT05Mnx8eD09PTkzPyhlLmNvbnN1bWUoeCksbysrLHUpOnUoeCl9ZnVuY3Rpb24gaCh4KXtyZXR1cm4geD09PTU4PyhlLmVudGVyKCJkZWZpbml0aW9uTWFya2VyIiksZS5jb25zdW1lKHgpLGUuZXhpdCgiZGVmaW5pdGlvbk1hcmtlciIpLGEuaW5jbHVkZXMobil8fGEucHVzaChuKSxidChlLGYsImdmbUZvb3Rub3RlRGVmaW5pdGlvbldoaXRlc3BhY2UiKSk6cih4KX1mdW5jdGlvbiBmKHgpe3JldHVybiB0KHgpfX1mdW5jdGlvbiBHSHIoZSx0LHIpe3JldHVybiBlLmNoZWNrKFpzLHQsZS5hdHRlbXB0KHFIcix0LHIpKX1mdW5jdGlvbiBZSHIoZSl7ZS5leGl0KCJnZm1Gb290bm90ZURlZmluaXRpb24iKX1mdW5jdGlvbiBaSHIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGJ0KGUsYSwiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uSW5kZW50Iiw1KTtmdW5jdGlvbiBhKG4pe2xldCBvPWkuZXZlbnRzW2kuZXZlbnRzLmxlbmd0aC0xXTtyZXR1cm4gbyYmb1sxXS50eXBlPT09ImdmbUZvb3Rub3RlRGVmaW5pdGlvbkluZGVudCImJm9bMl0uc2xpY2VTZXJpYWxpemUob1sxXSwhMCkubGVuZ3RoPT09ND90KG4pOnIobil9fXZhciBxSHIsZlplPXAoKCk9PntaXygpO1YxKCk7cnIoKTtwNCgpO3FIcj17dG9rZW5pemU6WkhyLHBhcnRpYWw6ITB9fSk7ZnVuY3Rpb24gbVplKGUsdCl7cmV0dXJuIkJhY2sgdG8gcmVmZXJlbmNlICIrKGUrMSkrKHQ+MT8iLSIrdDoiIil9ZnVuY3Rpb24gWXRlKGUpe2xldCB0PWV8fFFIcixyPXQubGFiZWx8fCJGb290bm90ZXMiLGk9dC5sYWJlbFRhZ05hbWV8fCJoMiIsYT10LmxhYmVsQXR0cmlidXRlcz09PW51bGx8fHQubGFiZWxBdHRyaWJ1dGVzPT09dm9pZCAwPydjbGFzcz0ic3Itb25seSInOnQubGFiZWxBdHRyaWJ1dGVzLG49dC5iYWNrTGFiZWx8fG1aZSxvPXQuY2xvYmJlclByZWZpeD09PW51bGx8fHQuY2xvYmJlclByZWZpeD09PXZvaWQgMD8idXNlci1jb250ZW50LSI6dC5jbG9iYmVyUHJlZml4O3JldHVybntlbnRlcjp7Z2ZtRm9vdG5vdGVEZWZpbml0aW9uKCl7dGhpcy5nZXREYXRhKCJ0aWdodFN0YWNrIikucHVzaCghMSl9LGdmbUZvb3Rub3RlRGVmaW5pdGlvbkxhYmVsU3RyaW5nKCl7dGhpcy5idWZmZXIoKX0sZ2ZtRm9vdG5vdGVDYWxsU3RyaW5nKCl7dGhpcy5idWZmZXIoKX19LGV4aXQ6e2dmbUZvb3Rub3RlRGVmaW5pdGlvbigpe2xldCBzPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9ucyIpLGw9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIpLGM9dGhpcy5nZXREYXRhKCJ0aWdodFN0YWNrIiksdT1sLnBvcCgpLGQ9dGhpcy5yZXN1bWUoKTtzfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlRGVmaW5pdGlvbnMiLHM9e30pLFhIci5jYWxsKHMsdSl8fChzW3VdPWQpLGMucG9wKCksdGhpcy5zZXREYXRhKCJzbHVycE9uZUxpbmVFbmRpbmciLCEwKSx0aGlzLnNldERhdGEoImxhc3RXYXNUYWciKX0sZ2ZtRm9vdG5vdGVEZWZpbml0aW9uTGFiZWxTdHJpbmcocyl7bGV0IGw9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25TdGFjayIpO2x8fHRoaXMuc2V0RGF0YSgiZ2ZtRm9vdG5vdGVEZWZpbml0aW9uU3RhY2siLGw9W10pLGwucHVzaChQMSh0aGlzLnNsaWNlU2VyaWFsaXplKHMpKSksdGhpcy5yZXN1bWUoKSx0aGlzLmJ1ZmZlcigpfSxnZm1Gb290bm90ZUNhbGxTdHJpbmcocyl7bGV0IGw9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIpLGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxDb3VudHMiKSx1PVAxKHRoaXMuc2xpY2VTZXJpYWxpemUocykpLGQ7dGhpcy5yZXN1bWUoKSxsfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlQ2FsbE9yZGVyIixsPVtdKSxjfHx0aGlzLnNldERhdGEoImdmbUZvb3Rub3RlQ2FsbENvdW50cyIsYz17fSk7bGV0IGg9bC5pbmRleE9mKHUpLGY9R3ModS50b0xvd2VyQ2FzZSgpKTtoPT09LTE/KGwucHVzaCh1KSxjW3VdPTEsZD1sLmxlbmd0aCk6KGNbdV0rKyxkPWgrMSk7bGV0IHg9Y1t1XTt0aGlzLnRhZygnPHN1cD48YSBocmVmPSIjJytvKyJmbi0iK2YrJyIgaWQ9IicrbysiZm5yZWYtIitmKyh4PjE/Ii0iK3g6IiIpKyciIGRhdGEtZm9vdG5vdGUtcmVmPSIiIGFyaWEtZGVzY3JpYmVkYnk9ImZvb3Rub3RlLWxhYmVsIj4nK1N0cmluZyhkKSsiPC9hPjwvc3VwPiIpfSxudWxsKCl7bGV0IHM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZUNhbGxPcmRlciIpfHxbXSxsPXRoaXMuZ2V0RGF0YSgiZ2ZtRm9vdG5vdGVDYWxsQ291bnRzIil8fHt9LGM9dGhpcy5nZXREYXRhKCJnZm1Gb290bm90ZURlZmluaXRpb25zIil8fHt9LHU9LTE7Zm9yKHMubGVuZ3RoPjAmJih0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCc8c2VjdGlvbiBkYXRhLWZvb3Rub3Rlcz0iIiBjbGFzcz0iZm9vdG5vdGVzIj48JytpKycgaWQ9ImZvb3Rub3RlLWxhYmVsIicrKGE/IiAiK2E6IiIpKyI+IiksdGhpcy5yYXcodGhpcy5lbmNvZGUocikpLHRoaXMudGFnKCI8LyIraSsiPiIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjxvbD4iKSk7Kyt1PHMubGVuZ3RoOyl7bGV0IGQ9c1t1XSxoPUdzKGQudG9Mb3dlckNhc2UoKSksZj0wLHg9W107Zm9yKDsrK2Y8PWxbZF07KXgucHVzaCgnPGEgaHJlZj0iIycrbysiZm5yZWYtIitoKyhmPjE/Ii0iK2Y6IiIpKyciIGRhdGEtZm9vdG5vdGUtYmFja3JlZj0iIiBhcmlhLWxhYmVsPSInK3RoaXMuZW5jb2RlKHR5cGVvZiBuPT0ic3RyaW5nIj9uOm4odSxmKSkrJyIgY2xhc3M9ImRhdGEtZm9vdG5vdGUtYmFja3JlZiI+XHUyMUE5JysoZj4xPyI8c3VwPiIrZisiPC9zdXA+IjoiIikrIjwvYT4iKTtsZXQgdj14LmpvaW4oIiAiKSxiPSExO3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoJzxsaSBpZD0iJytvKyJmbi0iK2grJyI+JyksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZyhjW2RdLnJlcGxhY2UoLzxcL3A+KD86XHI/XG58XHIpPyQvLGZ1bmN0aW9uKHkpe3JldHVybiBiPSEwLCIgIit2K3l9KSksYnx8KHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcodikpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvbGk+Iil9cy5sZW5ndGg+MCYmKHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvb2w+IiksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC9zZWN0aW9uPiIpKX19fX12YXIgWEhyLFFIcixnWmU9cCgoKT0+e3A0KCk7WXMoKTtYSHI9e30uaGFzT3duUHJvcGVydHksUUhyPXt9fSk7dmFyIGJaZT1wKCgpPT57ZlplKCk7Z1plKCl9KTtmdW5jdGlvbiBadGUoKXtyZXR1cm57ZW50ZXI6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPGRlbD4iKX19LGV4aXQ6e3N0cmlrZXRocm91Z2goKXt0aGlzLnRhZygiPC9kZWw+Iil9fX19dmFyIHZaZT1wKCgpPT57fSk7ZnVuY3Rpb24gWHRlKGUpe2xldCByPShlfHx7fSkuc2luZ2xlVGlsZGUsaT17bmFtZToic3RyaWtldGhyb3VnaCIsdG9rZW5pemU6bixyZXNvbHZlQWxsOmF9O3JldHVybiByPT1udWxsJiYocj0hMCkse3RleHQ6ezEyNjppfSxpbnNpZGVTcGFuOntudWxsOltpXX0sYXR0ZW50aW9uTWFya2Vyczp7bnVsbDpbMTI2XX19O2Z1bmN0aW9uIGEobyxzKXtsZXQgbD0tMTtmb3IoOysrbDxvLmxlbmd0aDspaWYob1tsXVswXT09PSJlbnRlciImJm9bbF1bMV0udHlwZT09PSJzdHJpa2V0aHJvdWdoU2VxdWVuY2VUZW1wb3JhcnkiJiZvW2xdWzFdLl9jbG9zZSl7bGV0IGM9bDtmb3IoO2MtLTspaWYob1tjXVswXT09PSJleGl0IiYmb1tjXVsxXS50eXBlPT09InN0cmlrZXRocm91Z2hTZXF1ZW5jZVRlbXBvcmFyeSImJm9bY11bMV0uX29wZW4mJm9bbF1bMV0uZW5kLm9mZnNldC1vW2xdWzFdLnN0YXJ0Lm9mZnNldD09PW9bY11bMV0uZW5kLm9mZnNldC1vW2NdWzFdLnN0YXJ0Lm9mZnNldCl7b1tsXVsxXS50eXBlPSJzdHJpa2V0aHJvdWdoU2VxdWVuY2UiLG9bY11bMV0udHlwZT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlIjtsZXQgdT17dHlwZToic3RyaWtldGhyb3VnaCIsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxvW2NdWzFdLnN0YXJ0KSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW2xdWzFdLmVuZCl9LGQ9e3R5cGU6InN0cmlrZXRocm91Z2hUZXh0IixzdGFydDpPYmplY3QuYXNzaWduKHt9LG9bY11bMV0uZW5kKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSxvW2xdWzFdLnN0YXJ0KX0saD1bWyJlbnRlciIsdSxzXSxbImVudGVyIixvW2NdWzFdLHNdLFsiZXhpdCIsb1tjXVsxXSxzXSxbImVudGVyIixkLHNdXSxmPXMucGFyc2VyLmNvbnN0cnVjdHMuaW5zaWRlU3Bhbi5udWxsO2YmJmoxKGgsaC5sZW5ndGgsMCxmNChmLG8uc2xpY2UoYysxLGwpLHMpKSxqMShoLGgubGVuZ3RoLDAsW1siZXhpdCIsZCxzXSxbImVudGVyIixvW2xdWzFdLHNdLFsiZXhpdCIsb1tsXVsxXSxzXSxbImV4aXQiLHUsc11dKSxqMShvLGMtMSxsLWMrMyxoKSxsPWMraC5sZW5ndGgtMjticmVha319Zm9yKGw9LTE7KytsPG8ubGVuZ3RoOylvW2xdWzFdLnR5cGU9PT0ic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiYmKG9bbF1bMV0udHlwZT0iZGF0YSIpO3JldHVybiBvfWZ1bmN0aW9uIG4obyxzLGwpe2xldCBjPXRoaXMucHJldmlvdXMsdT10aGlzLmV2ZW50cyxkPTA7cmV0dXJuIGg7ZnVuY3Rpb24gaCh4KXtyZXR1cm4gYz09PTEyNiYmdVt1Lmxlbmd0aC0xXVsxXS50eXBlIT09ImNoYXJhY3RlckVzY2FwZSI/bCh4KTooby5lbnRlcigic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IiksZih4KSl9ZnVuY3Rpb24gZih4KXtsZXQgdj1hYyhjKTtpZih4PT09MTI2KXJldHVybiBkPjE/bCh4KTooby5jb25zdW1lKHgpLGQrKyxmKTtpZihkPDImJiFyKXJldHVybiBsKHgpO2xldCBiPW8uZXhpdCgic3RyaWtldGhyb3VnaFNlcXVlbmNlVGVtcG9yYXJ5IikseT1hYyh4KTtyZXR1cm4gYi5fb3Blbj0heXx8eT09PTImJiEhdixiLl9jbG9zZT0hdnx8dj09PTImJiEheSxzKHgpfX19dmFyIHhaZT1wKCgpPT57VXMoKTtDXygpO045KCl9KTt2YXIgeVplPXAoKCk9Pnt2WmUoKTt4WmUoKX0pO2Z1bmN0aW9uIEp0ZSgpe3JldHVybntlbnRlcjp7dGFibGUoZSl7bGV0IHQ9ZS5fYWxpZ247dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRhYmxlPiIpLHRoaXMuc2V0RGF0YSgidGFibGVBbGlnbiIsdCl9LHRhYmxlQm9keSgpe3RoaXMudGFnKCI8dGJvZHk+Iil9LHRhYmxlRGF0YSgpe2xldCBlPXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpLHI9UXRlW2VbdF1dO3I9PT12b2lkIDA/dGhpcy5idWZmZXIoKToodGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRkIityKyI+IikpfSx0YWJsZUhlYWQoKXt0aGlzLmxpbmVFbmRpbmdJZk5lZWRlZCgpLHRoaXMudGFnKCI8dGhlYWQ+Iil9LHRhYmxlSGVhZGVyKCl7bGV0IGU9dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIiksdD10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIikscj1RdGVbZVt0XV07dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRoIityKyI+Iil9LHRhYmxlUm93KCl7dGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsMCksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPHRyPiIpfX0sZXhpdDp7Y29kZVRleHREYXRhKGUpe2xldCB0PXRoaXMuc2xpY2VTZXJpYWxpemUoZSk7dGhpcy5nZXREYXRhKCJ0YWJsZUFsaWduIikmJih0PXQucmVwbGFjZSgvXFwoW1xcfF0pL2csSkhyKSksdGhpcy5yYXcodGhpcy5lbmNvZGUodCkpfSx0YWJsZSgpe3RoaXMuc2V0RGF0YSgidGFibGVBbGlnbiIpLHRoaXMuc2V0RGF0YSgic2x1cnBBbGxMaW5lRW5kaW5ncyIpLHRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGFibGU+Iil9LHRhYmxlQm9keSgpe3RoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjwvdGJvZHk+Iil9LHRhYmxlRGF0YSgpe2xldCBlPXRoaXMuZ2V0RGF0YSgidGFibGVBbGlnbiIpLHQ9dGhpcy5nZXREYXRhKCJ0YWJsZUNvbHVtbiIpO3QgaW4gZT8odGhpcy50YWcoIjwvdGQ+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsdCsxKSk6dGhpcy5yZXN1bWUoKX0sdGFibGVIZWFkKCl7dGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90aGVhZD4iKX0sdGFibGVIZWFkZXIoKXtsZXQgZT10aGlzLmdldERhdGEoInRhYmxlQ29sdW1uIik7dGhpcy50YWcoIjwvdGg+IiksdGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsZSsxKX0sdGFibGVSb3coKXtsZXQgZT10aGlzLmdldERhdGEoInRhYmxlQWxpZ24iKSx0PXRoaXMuZ2V0RGF0YSgidGFibGVDb2x1bW4iKTtmb3IoO3Q8ZS5sZW5ndGg7KXRoaXMubGluZUVuZGluZ0lmTmVlZGVkKCksdGhpcy50YWcoIjx0ZCIrUXRlW2VbdF1dKyI+PC90ZD4iKSx0Kys7dGhpcy5zZXREYXRhKCJ0YWJsZUNvbHVtbiIsdCksdGhpcy5saW5lRW5kaW5nSWZOZWVkZWQoKSx0aGlzLnRhZygiPC90cj4iKX19fX1mdW5jdGlvbiBKSHIoZSx0KXtyZXR1cm4gdD09PSJ8Ij90OmV9dmFyIFF0ZSx3WmU9cCgoKT0+e1F0ZT17bm9uZToiIixsZWZ0OicgYWxpZ249ImxlZnQiJyxyaWdodDonIGFsaWduPSJyaWdodCInLGNlbnRlcjonIGFsaWduPSJjZW50ZXIiJ319KTtmdW5jdGlvbiBLSHIoZSx0LHIsaSl7bGV0IGE9MDtpZighKHI9PT0wJiZpLmxlbmd0aD09PTApKXtmb3IoO2E8ZS5tYXAubGVuZ3RoOyl7aWYoZS5tYXBbYV1bMF09PT10KXtlLm1hcFthXVsxXSs9cixlLm1hcFthXVsyXS5wdXNoKC4uLmkpO3JldHVybn1hKz0xfWUubWFwLnB1c2goW3QscixpXSl9fXZhciBYXyxNWmU9cCgoKT0+e1hfPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5tYXA9W119YWRkKHQscixpKXtLSHIodGhpcyx0LHIsaSl9Y29uc3VtZSh0KXtpZih0aGlzLm1hcC5zb3J0KGZ1bmN0aW9uKG4sbyl7cmV0dXJuIG5bMF0tb1swXX0pLHRoaXMubWFwLmxlbmd0aD09PTApcmV0dXJuO2xldCByPXRoaXMubWFwLmxlbmd0aCxpPVtdO2Zvcig7cj4wOylyLT0xLGkucHVzaCh0LnNsaWNlKHRoaXMubWFwW3JdWzBdK3RoaXMubWFwW3JdWzFdKSx0aGlzLm1hcFtyXVsyXSksdC5sZW5ndGg9dGhpcy5tYXBbcl1bMF07aS5wdXNoKHQuc2xpY2UoKSksdC5sZW5ndGg9MDtsZXQgYT1pLnBvcCgpO2Zvcig7YTspe2ZvcihsZXQgbiBvZiBhKXQucHVzaChuKTthPWkucG9wKCl9dGhpcy5tYXAubGVuZ3RoPTB9fX0pO2Z1bmN0aW9uIGtaZShlLHQpe2xldCByPSExLGk9W107Zm9yKDt0PGUubGVuZ3RoOyl7bGV0IGE9ZVt0XTtpZihyKXtpZihhWzBdPT09ImVudGVyIilhWzFdLnR5cGU9PT0idGFibGVDb250ZW50IiYmaS5wdXNoKGVbdCsxXVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyTWFya2VyIj8ibGVmdCI6Im5vbmUiKTtlbHNlIGlmKGFbMV0udHlwZT09PSJ0YWJsZUNvbnRlbnQiKXtpZihlW3QtMV1bMV0udHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciIpe2xldCBuPWkubGVuZ3RoLTE7aVtuXT1pW25dPT09ImxlZnQiPyJjZW50ZXIiOiJyaWdodCJ9fWVsc2UgaWYoYVsxXS50eXBlPT09InRhYmxlRGVsaW1pdGVyUm93IilicmVha31lbHNlIGFbMF09PT0iZW50ZXIiJiZhWzFdLnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciJiYocj0hMCk7dCs9MX1yZXR1cm4gaX12YXIgU1plPXAoKCk9Pnt9KTtmdW5jdGlvbiBLdGUoKXtyZXR1cm57Zmxvdzp7bnVsbDp7bmFtZToidGFibGUiLHRva2VuaXplOmVxcixyZXNvbHZlQWxsOnRxcn19fX1mdW5jdGlvbiBlcXIoZSx0LHIpe2xldCBpPXRoaXMsYT0wLG49MCxvO3JldHVybiBzO2Z1bmN0aW9uIHMoUil7bGV0IF89aS5ldmVudHMubGVuZ3RoLTE7Zm9yKDtfPi0xOyl7bGV0IFQ9aS5ldmVudHNbX11bMV0udHlwZTtpZihUPT09ImxpbmVFbmRpbmcifHxUPT09ImxpbmVQcmVmaXgiKV8tLTtlbHNlIGJyZWFrfWxldCBTPV8+LTE/aS5ldmVudHNbX11bMV0udHlwZTpudWxsLCQ9Uz09PSJ0YWJsZUhlYWQifHxTPT09InRhYmxlUm93Ij9NOmw7cmV0dXJuICQ9PT1NJiZpLnBhcnNlci5sYXp5W2kubm93KCkubGluZV0/cihSKTokKFIpfWZ1bmN0aW9uIGwoUil7cmV0dXJuIGUuZW50ZXIoInRhYmxlSGVhZCIpLGUuZW50ZXIoInRhYmxlUm93IiksYyhSKX1mdW5jdGlvbiBjKFIpe3JldHVybiBSPT09MTI0fHwobz0hMCxuKz0xKSx1KFIpfWZ1bmN0aW9uIHUoUil7cmV0dXJuIFI9PT1udWxsP3IoUik6R2UoUik/bj4xPyhuPTAsaS5pbnRlcnJ1cHQ9ITAsZS5leGl0KCJ0YWJsZVJvdyIpLGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUoUiksZS5leGl0KCJsaW5lRW5kaW5nIiksZik6cihSKTpjdChSKT9idChlLHUsIndoaXRlc3BhY2UiKShSKToobis9MSxvJiYobz0hMSxhKz0xKSxSPT09MTI0PyhlLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksZS5jb25zdW1lKFIpLGUuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLG89ITAsdSk6KGUuZW50ZXIoImRhdGEiKSxkKFIpKSl9ZnVuY3Rpb24gZChSKXtyZXR1cm4gUj09PW51bGx8fFI9PT0xMjR8fEp0KFIpPyhlLmV4aXQoImRhdGEiKSx1KFIpKTooZS5jb25zdW1lKFIpLFI9PT05Mj9oOmQpfWZ1bmN0aW9uIGgoUil7cmV0dXJuIFI9PT05Mnx8Uj09PTEyND8oZS5jb25zdW1lKFIpLGQpOmQoUil9ZnVuY3Rpb24gZihSKXtyZXR1cm4gaS5pbnRlcnJ1cHQ9ITEsaS5wYXJzZXIubGF6eVtpLm5vdygpLmxpbmVdP3IoUik6KGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyUm93Iiksbz0hMSxjdChSKT9idChlLHgsImxpbmVQcmVmaXgiLGkucGFyc2VyLmNvbnN0cnVjdHMuZGlzYWJsZS5udWxsLmluY2x1ZGVzKCJjb2RlSW5kZW50ZWQiKT92b2lkIDA6NCkoUik6eChSKSl9ZnVuY3Rpb24geChSKXtyZXR1cm4gUj09PTQ1fHxSPT09NTg/YihSKTpSPT09MTI0PyhvPSEwLGUuZW50ZXIoInRhYmxlQ2VsbERpdmlkZXIiKSxlLmNvbnN1bWUoUiksZS5leGl0KCJ0YWJsZUNlbGxEaXZpZGVyIiksdik6eihSKX1mdW5jdGlvbiB2KFIpe3JldHVybiBjdChSKT9idChlLGIsIndoaXRlc3BhY2UiKShSKTpiKFIpfWZ1bmN0aW9uIGIoUil7cmV0dXJuIFI9PT01OD8obis9MSxvPSEwLGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksZS5jb25zdW1lKFIpLGUuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSx5KTpSPT09NDU/KG4rPTEseShSKSk6Uj09PW51bGx8fEdlKFIpP08oUik6eihSKX1mdW5jdGlvbiB5KFIpe3JldHVybiBSPT09NDU/KGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyRmlsbGVyIiksdyhSKSk6eihSKX1mdW5jdGlvbiB3KFIpe3JldHVybiBSPT09NDU/KGUuY29uc3VtZShSKSx3KTpSPT09NTg/KG89ITAsZS5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLGUuZW50ZXIoInRhYmxlRGVsaW1pdGVyTWFya2VyIiksZS5jb25zdW1lKFIpLGUuZXhpdCgidGFibGVEZWxpbWl0ZXJNYXJrZXIiKSxrKTooZS5leGl0KCJ0YWJsZURlbGltaXRlckZpbGxlciIpLGsoUikpfWZ1bmN0aW9uIGsoUil7cmV0dXJuIGN0KFIpP2J0KGUsTywid2hpdGVzcGFjZSIpKFIpOk8oUil9ZnVuY3Rpb24gTyhSKXtyZXR1cm4gUj09PTEyND94KFIpOlI9PT1udWxsfHxHZShSKT8hb3x8YSE9PW4/eihSKTooZS5leGl0KCJ0YWJsZURlbGltaXRlclJvdyIpLGUuZXhpdCgidGFibGVIZWFkIiksdChSKSk6eihSKX1mdW5jdGlvbiB6KFIpe3JldHVybiByKFIpfWZ1bmN0aW9uIE0oUil7cmV0dXJuIGUuZW50ZXIoInRhYmxlUm93IiksRihSKX1mdW5jdGlvbiBGKFIpe3JldHVybiBSPT09MTI0PyhlLmVudGVyKCJ0YWJsZUNlbGxEaXZpZGVyIiksZS5jb25zdW1lKFIpLGUuZXhpdCgidGFibGVDZWxsRGl2aWRlciIpLEYpOlI9PT1udWxsfHxHZShSKT8oZS5leGl0KCJ0YWJsZVJvdyIpLHQoUikpOmN0KFIpP2J0KGUsRiwid2hpdGVzcGFjZSIpKFIpOihlLmVudGVyKCJkYXRhIiksRChSKSl9ZnVuY3Rpb24gRChSKXtyZXR1cm4gUj09PW51bGx8fFI9PT0xMjR8fEp0KFIpPyhlLmV4aXQoImRhdGEiKSxGKFIpKTooZS5jb25zdW1lKFIpLFI9PT05Mj9OOkQpfWZ1bmN0aW9uIE4oUil7cmV0dXJuIFI9PT05Mnx8Uj09PTEyND8oZS5jb25zdW1lKFIpLEQpOkQoUil9fWZ1bmN0aW9uIHRxcihlLHQpe2xldCByPS0xLGk9ITAsYT0wLG49WzAsMCwwLDBdLG89WzAsMCwwLDBdLHM9ITEsbD0wLGMsdSxkLGg9bmV3IFhfO2Zvcig7KytyPGUubGVuZ3RoOyl7bGV0IGY9ZVtyXSx4PWZbMV07ZlswXT09PSJlbnRlciI/eC50eXBlPT09InRhYmxlSGVhZCI/KHM9ITEsbCE9PTAmJih6WmUoaCx0LGwsYyx1KSx1PXZvaWQgMCxsPTApLGM9e3R5cGU6InRhYmxlIixzdGFydDpPYmplY3QuYXNzaWduKHt9LHguc3RhcnQpLGVuZDpPYmplY3QuYXNzaWduKHt9LHguZW5kKX0saC5hZGQociwwLFtbImVudGVyIixjLHRdXSkpOngudHlwZT09PSJ0YWJsZVJvdyJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGk9ITAsZD12b2lkIDAsbj1bMCwwLDAsMF0sbz1bMCxyKzEsMCwwXSxzJiYocz0hMSx1PXt0eXBlOiJ0YWJsZUJvZHkiLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30seC5zdGFydCksZW5kOk9iamVjdC5hc3NpZ24oe30seC5lbmQpfSxoLmFkZChyLDAsW1siZW50ZXIiLHUsdF1dKSksYT14LnR5cGU9PT0idGFibGVEZWxpbWl0ZXJSb3ciPzI6dT8zOjEpOmEmJih4LnR5cGU9PT0iZGF0YSJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlckZpbGxlciIpPyhpPSExLG9bMl09PT0wJiYoblsxXSE9PTAmJihvWzBdPW9bMV0sZD1RXyhoLHQsbixhLHZvaWQgMCxkKSxuPVswLDAsMCwwXSksb1syXT1yKSk6eC50eXBlPT09InRhYmxlQ2VsbERpdmlkZXIiJiYoaT9pPSExOihuWzFdIT09MCYmKG9bMF09b1sxXSxkPVFfKGgsdCxuLGEsdm9pZCAwLGQpKSxuPW8sbz1bblsxXSxyLDAsMF0pKTp4LnR5cGU9PT0idGFibGVIZWFkIj8ocz0hMCxsPXIpOngudHlwZT09PSJ0YWJsZVJvdyJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlclJvdyI/KGw9cixuWzFdIT09MD8ob1swXT1vWzFdLGQ9UV8oaCx0LG4sYSxyLGQpKTpvWzFdIT09MCYmKGQ9UV8oaCx0LG8sYSxyLGQpKSxhPTApOmEmJih4LnR5cGU9PT0iZGF0YSJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlck1hcmtlciJ8fHgudHlwZT09PSJ0YWJsZURlbGltaXRlckZpbGxlciIpJiYob1szXT1yKX1mb3IobCE9PTAmJnpaZShoLHQsbCxjLHUpLGguY29uc3VtZSh0LmV2ZW50cykscj0tMTsrK3I8dC5ldmVudHMubGVuZ3RoOyl7bGV0IGY9dC5ldmVudHNbcl07ZlswXT09PSJlbnRlciImJmZbMV0udHlwZT09PSJ0YWJsZSImJihmWzFdLl9hbGlnbj1rWmUodC5ldmVudHMscikpfXJldHVybiBlfWZ1bmN0aW9uIFFfKGUsdCxyLGksYSxuKXtsZXQgbz1pPT09MT8idGFibGVIZWFkZXIiOmk9PT0yPyJ0YWJsZURlbGltaXRlciI6InRhYmxlRGF0YSIscz0idGFibGVDb250ZW50IjtyWzBdIT09MCYmKG4uZW5kPU9iamVjdC5hc3NpZ24oe30sdXAodC5ldmVudHMsclswXSkpLGUuYWRkKHJbMF0sMCxbWyJleGl0IixuLHRdXSkpO2xldCBsPXVwKHQuZXZlbnRzLHJbMV0pO2lmKG49e3R5cGU6byxzdGFydDpPYmplY3QuYXNzaWduKHt9LGwpLGVuZDpPYmplY3QuYXNzaWduKHt9LGwpfSxlLmFkZChyWzFdLDAsW1siZW50ZXIiLG4sdF1dKSxyWzJdIT09MCl7bGV0IGM9dXAodC5ldmVudHMsclsyXSksdT11cCh0LmV2ZW50cyxyWzNdKSxkPXt0eXBlOnMsc3RhcnQ6T2JqZWN0LmFzc2lnbih7fSxjKSxlbmQ6T2JqZWN0LmFzc2lnbih7fSx1KX07aWYoZS5hZGQoclsyXSwwLFtbImVudGVyIixkLHRdXSksaSE9PTIpe2xldCBoPXQuZXZlbnRzW3JbMl1dLGY9dC5ldmVudHNbclszXV07aWYoaFsxXS5lbmQ9T2JqZWN0LmFzc2lnbih7fSxmWzFdLmVuZCksaFsxXS50eXBlPSJjaHVua1RleHQiLGhbMV0uY29udGVudFR5cGU9InRleHQiLHJbM10+clsyXSsxKXtsZXQgeD1yWzJdKzEsdj1yWzNdLXJbMl0tMTtlLmFkZCh4LHYsW10pfX1lLmFkZChyWzNdKzEsMCxbWyJleGl0IixkLHRdXSl9cmV0dXJuIGEhPT12b2lkIDAmJihuLmVuZD1PYmplY3QuYXNzaWduKHt9LHVwKHQuZXZlbnRzLGEpKSxlLmFkZChhLDAsW1siZXhpdCIsbix0XV0pLG49dm9pZCAwKSxufWZ1bmN0aW9uIHpaZShlLHQscixpLGEpe2xldCBuPVtdLG89dXAodC5ldmVudHMscik7YSYmKGEuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIsYSx0XSkpLGkuZW5kPU9iamVjdC5hc3NpZ24oe30sbyksbi5wdXNoKFsiZXhpdCIsaSx0XSksZS5hZGQocisxLDAsbil9ZnVuY3Rpb24gdXAoZSx0KXtsZXQgcj1lW3RdLGk9clswXT09PSJlbnRlciI/InN0YXJ0IjoiZW5kIjtyZXR1cm4gclsxXVtpXX12YXIgQ1plPXAoKCk9PntWMSgpO3JyKCk7TVplKCk7U1plKCl9KTt2YXIgVFplPXAoKCk9Pnt3WmUoKTtDWmUoKX0pO2Z1bmN0aW9uIGVyZSgpe3JldHVybntleGl0OntodG1sRmxvd0RhdGEoZSl7TFplLmNhbGwodGhpcyxlLF9aZSl9LGh0bWxUZXh0RGF0YShlKXtMWmUuY2FsbCh0aGlzLGUscnFyKX19fX1mdW5jdGlvbiBMWmUoZSx0KXtsZXQgcj10aGlzLnNsaWNlU2VyaWFsaXplKGUpO3RoaXMub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwmJihyPXIucmVwbGFjZSh0LCImbHQ7JDEkMiIpKSx0aGlzLnJhdyh0aGlzLmVuY29kZShyKSl9dmFyIF9aZSxycXIsQVplPXAoKCk9PntfWmU9LzwoXC8/KShpZnJhbWV8bm9lbWJlZHxub2ZyYW1lc3xwbGFpbnRleHR8c2NyaXB0fHN0eWxlfHRpdGxlfHRleHRhcmVhfHhtcCkoPz1bXHRcblxmXHIgLz5dKS9naSxycXI9bmV3IFJlZ0V4cCgiXiIrX1plLnNvdXJjZSwiaSIpfSk7dmFyIERaZT1wKCgpPT57QVplKCl9KTtmdW5jdGlvbiB0cmUoKXtyZXR1cm57ZW50ZXI6e3Rhc2tMaXN0Q2hlY2soKXt0aGlzLnRhZygnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD0iIiAnKX19LGV4aXQ6e3Rhc2tMaXN0Q2hlY2soKXt0aGlzLnRhZygiLz4iKX0sdGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCgpe3RoaXMudGFnKCdjaGVja2VkPSIiICcpfX19fXZhciBFWmU9cCgoKT0+e30pO2Z1bmN0aW9uIHJyZSgpe3JldHVybnt0ZXh0Ons5MTppcXJ9fX1mdW5jdGlvbiBhcXIoZSx0LHIpe2xldCBpPXRoaXM7cmV0dXJuIGE7ZnVuY3Rpb24gYShsKXtyZXR1cm4gaS5wcmV2aW91cyE9PW51bGx8fCFpLl9nZm1UYXNrbGlzdEZpcnN0Q29udGVudE9mTGlzdEl0ZW0/cihsKTooZS5lbnRlcigidGFza0xpc3RDaGVjayIpLGUuZW50ZXIoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxlLmNvbnN1bWUobCksZS5leGl0KCJ0YXNrTGlzdENoZWNrTWFya2VyIiksbil9ZnVuY3Rpb24gbihsKXtyZXR1cm4gSnQobCk/KGUuZW50ZXIoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLGUuY29uc3VtZShsKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZVVuY2hlY2tlZCIpLG8pOmw9PT04OHx8bD09PTEyMD8oZS5lbnRlcigidGFza0xpc3RDaGVja1ZhbHVlQ2hlY2tlZCIpLGUuY29uc3VtZShsKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2tWYWx1ZUNoZWNrZWQiKSxvKTpyKGwpfWZ1bmN0aW9uIG8obCl7cmV0dXJuIGw9PT05Mz8oZS5lbnRlcigidGFza0xpc3RDaGVja01hcmtlciIpLGUuY29uc3VtZShsKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2tNYXJrZXIiKSxlLmV4aXQoInRhc2tMaXN0Q2hlY2siKSxzKTpyKGwpfWZ1bmN0aW9uIHMobCl7cmV0dXJuIEdlKGwpP3QobCk6Y3QobCk/ZS5jaGVjayh7dG9rZW5pemU6bnFyfSx0LHIpKGwpOnIobCl9fWZ1bmN0aW9uIG5xcihlLHQscil7cmV0dXJuIGJ0KGUsaSwid2hpdGVzcGFjZSIpO2Z1bmN0aW9uIGkoYSl7cmV0dXJuIGE9PT1udWxsP3IoYSk6dChhKX19dmFyIGlxciwkWmU9cCgoKT0+e1YxKCk7cnIoKTtpcXI9e25hbWU6InRhc2tsaXN0Q2hlY2siLHRva2VuaXplOmFxcn19KTt2YXIgSVplPXAoKCk9PntFWmUoKTskWmUoKX0pO2Z1bmN0aW9uIFBaZShlKXtyZXR1cm4gSV8oW3p0ZSgpLEd0ZSgpLFh0ZShlKSxLdGUoKSxycmUoKV0pfWZ1bmN0aW9uIF9IaShlKXtyZXR1cm4gUF8oW190ZSgpLFl0ZShlKSxadGUoKSxKdGUoKSxlcmUoKSx0cmUoKV0pfXZhciBOWmU9cCgoKT0+e05fKCk7VlllKCk7YlplKCk7eVplKCk7VFplKCk7RFplKCk7SVplKCl9KTtmdW5jdGlvbiBwcChlKXtsZXQgdD10aGlzLHI9ZXx8b3FyLGk9dC5kYXRhKCksYT1pLm1pY3JvbWFya0V4dGVuc2lvbnN8fChpLm1pY3JvbWFya0V4dGVuc2lvbnM9W10pLG49aS5mcm9tTWFya2Rvd25FeHRlbnNpb25zfHwoaS5mcm9tTWFya2Rvd25FeHRlbnNpb25zPVtdKSxvPWkudG9NYXJrZG93bkV4dGVuc2lvbnN8fChpLnRvTWFya2Rvd25FeHRlbnNpb25zPVtdKTthLnB1c2goUFplKHIpKSxuLnB1c2goeXRlKCkpLG8ucHVzaCh3dGUocikpfXZhciBvcXIsRlplPXAoKCk9PnskWWUoKTtOWmUoKTtvcXI9e319KTt2YXIgT1plPXAoKCk9PntGWmUoKX0pO2Z1bmN0aW9uIGlyZShlKXtsZXQgdD1lfHx7fSxyPSEwLGk9e30sYT1bW11dLG49W10sbz1bXSxsPVBfKFt7ZW50ZXI6e2Jsb2NrUXVvdGU6RSxjb2RlRmVuY2VkOmVlLGNvZGVGZW5jZWRGZW5jZUluZm86Yixjb2RlRmVuY2VkRmVuY2VNZXRhOmIsY29kZUluZGVudGVkOndlLGNvZGVUZXh0OmFlLGNvbnRlbnQ6Q2UsZGVmaW5pdGlvbjpMZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6SCxkZWZpbml0aW9uTGFiZWxTdHJpbmc6YixkZWZpbml0aW9uVGl0bGVTdHJpbmc6YixlbXBoYXNpczpMdCxodG1sRmxvdzpVZSxodG1sVGV4dDppdCxpbWFnZTpuZSxsYWJlbDpiLGxpbms6a2UsbGlzdEl0ZW1NYXJrZXI6XyxsaXN0SXRlbVZhbHVlOlIsbGlzdE9yZGVyZWQ6RCxsaXN0VW5vcmRlcmVkOk4scGFyYWdyYXBoOkIscmVmZXJlbmNlOmIscmVzb3VyY2U6VSxyZXNvdXJjZURlc3RpbmF0aW9uU3RyaW5nOlYscmVzb3VyY2VUaXRsZVN0cmluZzpiLHNldGV4dEhlYWRpbmc6aWUsc3Ryb25nOld0fSxleGl0OnthdHhIZWFkaW5nOkllLGF0eEhlYWRpbmdTZXF1ZW5jZTpoZSxhdXRvbGlua0VtYWlsOldvLGF1dG9saW5rUHJvdG9jb2w6VW8sYmxvY2tRdW90ZTpxLGNoYXJhY3RlckVzY2FwZVZhbHVlOlosY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6WXIsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzpZcixjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpkbixjb2RlRmVuY2VkOkksY29kZUZlbmNlZEZlbmNlOmdlLGNvZGVGZW5jZWRGZW5jZUluZm86UCxjb2RlRmVuY2VkRmVuY2VNZXRhOkYsY29kZUZsb3dWYWx1ZTptZSxjb2RlSW5kZW50ZWQ6SSxjb2RlVGV4dDpzZSxjb2RlVGV4dERhdGE6WixkYXRhOlosZGVmaW5pdGlvbjp1ZSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6dGUsZGVmaW5pdGlvbkxhYmVsU3RyaW5nOlcsZGVmaW5pdGlvblRpdGxlU3RyaW5nOmJlLGVtcGhhc2lzOl9lLGhhcmRCcmVha0VzY2FwZTpFZSxoYXJkQnJlYWtUcmFpbGluZzpFZSxodG1sRmxvdzpNdCxodG1sRmxvd0RhdGE6WixodG1sVGV4dDpNdCxodG1sVGV4dERhdGE6WixpbWFnZTp2ZSxsYWJlbDpBLGxhYmVsVGV4dDpZLGxpbmVFbmRpbmc6SixsaW5rOnZlLGxpc3RPcmRlcmVkOlMsbGlzdFVub3JkZXJlZDokLHBhcmFncmFwaDpHLHJlZmVyZW5jZTpGLHJlZmVyZW5jZVN0cmluZzpMLHJlc291cmNlOkYscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpYLHJlc291cmNlVGl0bGVTdHJpbmc6ZGUsc2V0ZXh0SGVhZGluZzpLLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6WmUsc2V0ZXh0SGVhZGluZ1RleHQ6U2Usc3Ryb25nOnZ0LHRoZW1hdGljQnJlYWs6U3R9fSwuLi50Lmh0bWxFeHRlbnNpb25zfHxbXV0pLGM9e2RlZmluaXRpb25zOmksdGlnaHRTdGFjazpvfSx1PXtidWZmZXI6YixlbmNvZGU6TSxnZXREYXRhOnYsbGluZUVuZGluZ0lmTmVlZGVkOnosb3B0aW9uczp0LHJhdzprLHJlc3VtZTp5LHNldERhdGE6eCx0YWc6d30sZD10LmRlZmF1bHRMaW5lRW5kaW5nO3JldHVybiBoO2Z1bmN0aW9uIGgoTWUpe2xldCAkZT0tMSxCdD0wLEZyPVtdLFpyPVtdLG4xPVtdO2Zvcig7KyskZTxNZS5sZW5ndGg7KSFkJiYoTWVbJGVdWzFdLnR5cGU9PT0ibGluZUVuZGluZyJ8fE1lWyRlXVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpJiYoZD1NZVskZV1bMl0uc2xpY2VTZXJpYWxpemUoTWVbJGVdWzFdKSksKE1lWyRlXVsxXS50eXBlPT09Imxpc3RPcmRlcmVkInx8TWVbJGVdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpJiYoTWVbJGVdWzBdPT09ImVudGVyIj9Gci5wdXNoKCRlKTpmKE1lLnNsaWNlKEZyLnBvcCgpLCRlKSkpLE1lWyRlXVsxXS50eXBlPT09ImRlZmluaXRpb24iJiYoTWVbJGVdWzBdPT09ImVudGVyIj8objE9YWkobjEsTWUuc2xpY2UoQnQsJGUpKSxCdD0kZSk6KFpyPWFpKFpyLE1lLnNsaWNlKEJ0LCRlKzEpKSxCdD0kZSsxKSk7WnI9YWkoWnIsbjEpLFpyPWFpKFpyLE1lLnNsaWNlKEJ0KSksJGU9LTE7bGV0IFhyPVpyO2ZvcihsLmVudGVyLm51bGwmJmwuZW50ZXIubnVsbC5jYWxsKHUpOysrJGU8TWUubGVuZ3RoOyl7bGV0IEdvPWxbWHJbJGVdWzBdXSxZbz1YclskZV1bMV0udHlwZSxabz1Hb1tZb107UlplLmNhbGwoR28sWW8pJiZabyYmWm8uY2FsbCh7c2xpY2VTZXJpYWxpemU6WHJbJGVdWzJdLnNsaWNlU2VyaWFsaXplLC4uLnV9LFhyWyRlXVsxXSl9cmV0dXJuIGwuZXhpdC5udWxsJiZsLmV4aXQubnVsbC5jYWxsKHUpLGFbMF0uam9pbigiIil9ZnVuY3Rpb24gZihNZSl7bGV0ICRlPU1lLmxlbmd0aCxCdD0wLEZyPTAsWnI9ITEsbjE7Zm9yKDsrK0J0PCRlOyl7bGV0IFhyPU1lW0J0XTtpZihYclsxXS5fY29udGFpbmVyKW4xPXZvaWQgMCxYclswXT09PSJlbnRlciI/RnIrKzpGci0tO2Vsc2Ugc3dpdGNoKFhyWzFdLnR5cGUpe2Nhc2UibGlzdEl0ZW1QcmVmaXgiOntYclswXT09PSJleGl0IiYmKG4xPSEwKTticmVha31jYXNlImxpbmVQcmVmaXgiOmJyZWFrO2Nhc2UibGluZUVuZGluZ0JsYW5rIjp7WHJbMF09PT0iZW50ZXIiJiYhRnImJihuMT9uMT12b2lkIDA6WnI9ITApO2JyZWFrfWRlZmF1bHQ6bjE9dm9pZCAwfX1NZVswXVsxXS5fbG9vc2U9WnJ9ZnVuY3Rpb24geChNZSwkZSl7Y1tNZV09JGV9ZnVuY3Rpb24gdihNZSl7cmV0dXJuIGNbTWVdfWZ1bmN0aW9uIGIoKXthLnB1c2goW10pfWZ1bmN0aW9uIHkoKXtyZXR1cm4gYS5wb3AoKS5qb2luKCIiKX1mdW5jdGlvbiB3KE1lKXtyJiYoeCgibGFzdFdhc1RhZyIsITApLGFbYS5sZW5ndGgtMV0ucHVzaChNZSkpfWZ1bmN0aW9uIGsoTWUpe3goImxhc3RXYXNUYWciKSxhW2EubGVuZ3RoLTFdLnB1c2goTWUpfWZ1bmN0aW9uIE8oKXtrKGR8fGAKYCl9ZnVuY3Rpb24geigpe2xldCBNZT1hW2EubGVuZ3RoLTFdLCRlPU1lW01lLmxlbmd0aC0xXSxCdD0kZT8kZS5jaGFyQ29kZUF0KCRlLmxlbmd0aC0xKTpudWxsO0J0PT09MTB8fEJ0PT09MTN8fEJ0PT09bnVsbHx8TygpfWZ1bmN0aW9uIE0oTWUpe3JldHVybiB2KCJpZ25vcmVFbmNvZGUiKT9NZTpGXyhNZSl9ZnVuY3Rpb24gRigpe3koKX1mdW5jdGlvbiBEKE1lKXtvLnB1c2goIU1lLl9sb29zZSkseigpLHcoIjxvbCIpLHgoImV4cGVjdEZpcnN0SXRlbSIsITApfWZ1bmN0aW9uIE4oTWUpe28ucHVzaCghTWUuX2xvb3NlKSx6KCksdygiPHVsIikseCgiZXhwZWN0Rmlyc3RJdGVtIiwhMCl9ZnVuY3Rpb24gUihNZSl7aWYodigiZXhwZWN0Rmlyc3RJdGVtIikpe2xldCAkZT1OdW1iZXIucGFyc2VJbnQodGhpcy5zbGljZVNlcmlhbGl6ZShNZSksMTApOyRlIT09MSYmdygnIHN0YXJ0PSInK00oU3RyaW5nKCRlKSkrJyInKX19ZnVuY3Rpb24gXygpe3YoImV4cGVjdEZpcnN0SXRlbSIpP3coIj4iKTpUKCkseigpLHcoIjxsaT4iKSx4KCJleHBlY3RGaXJzdEl0ZW0iKSx4KCJsYXN0V2FzVGFnIil9ZnVuY3Rpb24gUygpe1QoKSxvLnBvcCgpLE8oKSx3KCI8L29sPiIpfWZ1bmN0aW9uICQoKXtUKCksby5wb3AoKSxPKCksdygiPC91bD4iKX1mdW5jdGlvbiBUKCl7digibGFzdFdhc1RhZyIpJiYhdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpJiZ6KCksdygiPC9saT4iKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gRSgpe28ucHVzaCghMSkseigpLHcoIjxibG9ja3F1b3RlPiIpfWZ1bmN0aW9uIHEoKXtvLnBvcCgpLHooKSx3KCI8L2Jsb2NrcXVvdGU+IikseCgic2x1cnBBbGxMaW5lRW5kaW5ncyIpfWZ1bmN0aW9uIEIoKXtvW28ubGVuZ3RoLTFdfHwoeigpLHcoIjxwPiIpKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIil9ZnVuY3Rpb24gRygpe29bby5sZW5ndGgtMV0/eCgic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApOncoIjwvcD4iKX1mdW5jdGlvbiBlZSgpe3ooKSx3KCI8cHJlPjxjb2RlIikseCgiZmVuY2VzQ291bnQiLDApfWZ1bmN0aW9uIFAoKXtsZXQgTWU9eSgpO3coJyBjbGFzcz0ibGFuZ3VhZ2UtJytNZSsnIicpfWZ1bmN0aW9uIGdlKCl7bGV0IE1lPXYoImZlbmNlc0NvdW50Iil8fDA7TWV8fCh3KCI+IikseCgic2x1cnBPbmVMaW5lRW5kaW5nIiwhMCkpLHgoImZlbmNlc0NvdW50IixNZSsxKX1mdW5jdGlvbiB3ZSgpe3ooKSx3KCI8cHJlPjxjb2RlPiIpfWZ1bmN0aW9uIEkoKXtsZXQgTWU9digiZmVuY2VzQ291bnQiKTtNZSE9PXZvaWQgMCYmTWU8MiYmYy50aWdodFN0YWNrLmxlbmd0aD4wJiYhdigibGFzdFdhc1RhZyIpJiZPKCksdigiZmxvd0NvZGVTZWVuRGF0YSIpJiZ6KCksdygiPC9jb2RlPjwvcHJlPiIpLE1lIT09dm9pZCAwJiZNZTwyJiZ6KCkseCgiZmxvd0NvZGVTZWVuRGF0YSIpLHgoImZlbmNlc0NvdW50IikseCgic2x1cnBPbmVMaW5lRW5kaW5nIil9ZnVuY3Rpb24gbmUoKXtuLnB1c2goe2ltYWdlOiEwfSkscj12b2lkIDB9ZnVuY3Rpb24ga2UoKXtuLnB1c2goe30pfWZ1bmN0aW9uIFkoTWUpe25bbi5sZW5ndGgtMV0ubGFiZWxJZD10aGlzLnNsaWNlU2VyaWFsaXplKE1lKX1mdW5jdGlvbiBBKCl7bltuLmxlbmd0aC0xXS5sYWJlbD15KCl9ZnVuY3Rpb24gTChNZSl7bltuLmxlbmd0aC0xXS5yZWZlcmVuY2VJZD10aGlzLnNsaWNlU2VyaWFsaXplKE1lKX1mdW5jdGlvbiBVKCl7YigpLG5bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249IiJ9ZnVuY3Rpb24gVigpe2IoKSx4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBYKCl7bltuLmxlbmd0aC0xXS5kZXN0aW5hdGlvbj15KCkseCgiaWdub3JlRW5jb2RlIil9ZnVuY3Rpb24gZGUoKXtuW24ubGVuZ3RoLTFdLnRpdGxlPXkoKX1mdW5jdGlvbiB2ZSgpe2xldCBNZT1uLmxlbmd0aC0xLCRlPW5bTWVdLEJ0PSRlLnJlZmVyZW5jZUlkfHwkZS5sYWJlbElkLEZyPSRlLmRlc3RpbmF0aW9uPT09dm9pZCAwP2lbUDEoQnQpXTokZTtmb3Iocj0hMDtNZS0tOylpZihuW01lXS5pbWFnZSl7cj12b2lkIDA7YnJlYWt9JGUuaW1hZ2U/KHcoJzxpbWcgc3JjPSInK0dzKEZyLmRlc3RpbmF0aW9uLHQuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6c3FyKSsnIiBhbHQ9IicpLGsoJGUubGFiZWwpLHcoJyInKSk6dygnPGEgaHJlZj0iJytHcyhGci5kZXN0aW5hdGlvbix0LmFsbG93RGFuZ2Vyb3VzUHJvdG9jb2w/dm9pZCAwOkJaZSkrJyInKSx3KEZyLnRpdGxlPycgdGl0bGU9IicrRnIudGl0bGUrJyInOiIiKSwkZS5pbWFnZT93KCIgLz4iKToodygiPiIpLGsoJGUubGFiZWwpLHcoIjwvYT4iKSksbi5wb3AoKX1mdW5jdGlvbiBMZSgpe2IoKSxuLnB1c2goe30pfWZ1bmN0aW9uIFcoTWUpe3koKSxuW24ubGVuZ3RoLTFdLmxhYmVsSWQ9dGhpcy5zbGljZVNlcmlhbGl6ZShNZSl9ZnVuY3Rpb24gSCgpe2IoKSx4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiB0ZSgpe25bbi5sZW5ndGgtMV0uZGVzdGluYXRpb249eSgpLHgoImlnbm9yZUVuY29kZSIpfWZ1bmN0aW9uIGJlKCl7bltuLmxlbmd0aC0xXS50aXRsZT15KCl9ZnVuY3Rpb24gdWUoKXtsZXQgTWU9bltuLmxlbmd0aC0xXSwkZT1QMShNZS5sYWJlbElkKTt5KCksUlplLmNhbGwoaSwkZSl8fChpWyRlXT1uW24ubGVuZ3RoLTFdKSxuLnBvcCgpfWZ1bmN0aW9uIENlKCl7eCgic2x1cnBBbGxMaW5lRW5kaW5ncyIsITApfWZ1bmN0aW9uIGhlKE1lKXt2KCJoZWFkaW5nUmFuayIpfHwoeCgiaGVhZGluZ1JhbmsiLHRoaXMuc2xpY2VTZXJpYWxpemUoTWUpLmxlbmd0aCkseigpLHcoIjxoIit2KCJoZWFkaW5nUmFuayIpKyI+IikpfWZ1bmN0aW9uIGllKCl7YigpLHgoInNsdXJwQWxsTGluZUVuZGluZ3MiKX1mdW5jdGlvbiBTZSgpe3goInNsdXJwQWxsTGluZUVuZGluZ3MiLCEwKX1mdW5jdGlvbiBJZSgpe3coIjwvaCIrdigiaGVhZGluZ1JhbmsiKSsiPiIpLHgoImhlYWRpbmdSYW5rIil9ZnVuY3Rpb24gWmUoTWUpe3goImhlYWRpbmdSYW5rIix0aGlzLnNsaWNlU2VyaWFsaXplKE1lKS5jaGFyQ29kZUF0KDApPT09NjE/MToyKX1mdW5jdGlvbiBLKCl7bGV0IE1lPXkoKTt6KCksdygiPGgiK3YoImhlYWRpbmdSYW5rIikrIj4iKSxrKE1lKSx3KCI8L2giK3YoImhlYWRpbmdSYW5rIikrIj4iKSx4KCJzbHVycEFsbExpbmVFbmRpbmdzIikseCgiaGVhZGluZ1JhbmsiKX1mdW5jdGlvbiBaKE1lKXtrKE0odGhpcy5zbGljZVNlcmlhbGl6ZShNZSkpKX1mdW5jdGlvbiBKKE1lKXtpZighdigic2x1cnBBbGxMaW5lRW5kaW5ncyIpKXtpZih2KCJzbHVycE9uZUxpbmVFbmRpbmciKSl7eCgic2x1cnBPbmVMaW5lRW5kaW5nIik7cmV0dXJufWlmKHYoImluQ29kZVRleHQiKSl7aygiICIpO3JldHVybn1rKE0odGhpcy5zbGljZVNlcmlhbGl6ZShNZSkpKX19ZnVuY3Rpb24gbWUoTWUpe2soTSh0aGlzLnNsaWNlU2VyaWFsaXplKE1lKSkpLHgoImZsb3dDb2RlU2VlbkRhdGEiLCEwKX1mdW5jdGlvbiBFZSgpe3coIjxiciAvPiIpfWZ1bmN0aW9uIFVlKCl7eigpLGl0KCl9ZnVuY3Rpb24gTXQoKXt4KCJpZ25vcmVFbmNvZGUiKX1mdW5jdGlvbiBpdCgpe3QuYWxsb3dEYW5nZXJvdXNIdG1sJiZ4KCJpZ25vcmVFbmNvZGUiLCEwKX1mdW5jdGlvbiBMdCgpe3coIjxlbT4iKX1mdW5jdGlvbiBXdCgpe3coIjxzdHJvbmc+Iil9ZnVuY3Rpb24gYWUoKXt4KCJpbkNvZGVUZXh0IiwhMCksdygiPGNvZGU+Iil9ZnVuY3Rpb24gc2UoKXt4KCJpbkNvZGVUZXh0IiksdygiPC9jb2RlPiIpfWZ1bmN0aW9uIF9lKCl7dygiPC9lbT4iKX1mdW5jdGlvbiB2dCgpe3coIjwvc3Ryb25nPiIpfWZ1bmN0aW9uIFN0KCl7eigpLHcoIjxociAvPiIpfWZ1bmN0aW9uIFlyKE1lKXt4KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIixNZS50eXBlKX1mdW5jdGlvbiBkbihNZSl7bGV0ICRlPXRoaXMuc2xpY2VTZXJpYWxpemUoTWUpLEJ0PXYoImNoYXJhY3RlclJlZmVyZW5jZVR5cGUiKT9kcCgkZSx2KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIik9PT0iY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYyI/MTA6MTYpOmg0KCRlKTtrKE0oQnQpKSx4KCJjaGFyYWN0ZXJSZWZlcmVuY2VUeXBlIil9ZnVuY3Rpb24gVW8oTWUpe2xldCAkZT10aGlzLnNsaWNlU2VyaWFsaXplKE1lKTt3KCc8YSBocmVmPSInK0dzKCRlLHQuYWxsb3dEYW5nZXJvdXNQcm90b2NvbD92b2lkIDA6QlplKSsnIj4nKSxrKE0oJGUpKSx3KCI8L2E+Iil9ZnVuY3Rpb24gV28oTWUpe2xldCAkZT10aGlzLnNsaWNlU2VyaWFsaXplKE1lKTt3KCc8YSBocmVmPSInK0dzKCJtYWlsdG86IiskZSkrJyI+JyksayhNKCRlKSksdygiPC9hPiIpfX12YXIgUlplLEJaZSxzcXIsYXJlPXAoKCk9PntQOSgpO1VzKCk7Tl8oKTtEXygpO0N0ZSgpO3A0KCk7WXMoKTtSWmU9e30uaGFzT3duUHJvcGVydHksQlplPS9eKGh0dHBzP3xpcmNzP3xtYWlsdG98eG1wcCkkL2ksc3FyPS9eaHR0cHM/JC9pfSk7ZnVuY3Rpb24gbHFyKGUpe2xldCB0PWUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmNvbnRlbnRJbml0aWFsLGksYSkscjtyZXR1cm4gdDtmdW5jdGlvbiBpKHMpe2lmKHM9PT1udWxsKXtlLmNvbnN1bWUocyk7cmV0dXJufXJldHVybiBlLmVudGVyKCJsaW5lRW5kaW5nIiksZS5jb25zdW1lKHMpLGUuZXhpdCgibGluZUVuZGluZyIpLGJ0KGUsdCwibGluZVByZWZpeCIpfWZ1bmN0aW9uIGEocyl7cmV0dXJuIGUuZW50ZXIoInBhcmFncmFwaCIpLG4ocyl9ZnVuY3Rpb24gbihzKXtsZXQgbD1lLmVudGVyKCJjaHVua1RleHQiLHtjb250ZW50VHlwZToidGV4dCIscHJldmlvdXM6cn0pO3JldHVybiByJiYoci5uZXh0PWwpLHI9bCxvKHMpfWZ1bmN0aW9uIG8ocyl7aWYocz09PW51bGwpe2UuZXhpdCgiY2h1bmtUZXh0IiksZS5leGl0KCJwYXJhZ3JhcGgiKSxlLmNvbnN1bWUocyk7cmV0dXJufXJldHVybiBHZShzKT8oZS5jb25zdW1lKHMpLGUuZXhpdCgiY2h1bmtUZXh0Iiksbik6KGUuY29uc3VtZShzKSxvKX19dmFyIEhaZSxxWmU9cCgoKT0+e1YxKCk7cnIoKTtIWmU9e3Rva2VuaXplOmxxcn19KTtmdW5jdGlvbiBjcXIoZSl7bGV0IHQ9dGhpcyxyPVtdLGk9MCxhLG4sbztyZXR1cm4gcztmdW5jdGlvbiBzKGspe2lmKGk8ci5sZW5ndGgpe2xldCBPPXJbaV07cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9T1sxXSxlLmF0dGVtcHQoT1swXS5jb250aW51YXRpb24sbCxjKShrKX1yZXR1cm4gYyhrKX1mdW5jdGlvbiBsKGspe2lmKGkrKyx0LmNvbnRhaW5lclN0YXRlLl9jbG9zZUZsb3cpe3QuY29udGFpbmVyU3RhdGUuX2Nsb3NlRmxvdz12b2lkIDAsYSYmdygpO2xldCBPPXQuZXZlbnRzLmxlbmd0aCx6PU8sTTtmb3IoO3otLTspaWYodC5ldmVudHNbel1bMF09PT0iZXhpdCImJnQuZXZlbnRzW3pdWzFdLnR5cGU9PT0iY2h1bmtGbG93Iil7TT10LmV2ZW50c1t6XVsxXS5lbmQ7YnJlYWt9eShpKTtsZXQgRj1PO2Zvcig7Rjx0LmV2ZW50cy5sZW5ndGg7KXQuZXZlbnRzW0ZdWzFdLmVuZD17Li4uTX0sRisrO3JldHVybiBqMSh0LmV2ZW50cyx6KzEsMCx0LmV2ZW50cy5zbGljZShPKSksdC5ldmVudHMubGVuZ3RoPUYsYyhrKX1yZXR1cm4gcyhrKX1mdW5jdGlvbiBjKGspe2lmKGk9PT1yLmxlbmd0aCl7aWYoIWEpcmV0dXJuIGgoayk7aWYoYS5jdXJyZW50Q29uc3RydWN0JiZhLmN1cnJlbnRDb25zdHJ1Y3QuY29uY3JldGUpcmV0dXJuIHgoayk7dC5pbnRlcnJ1cHQ9ISEoYS5jdXJyZW50Q29uc3RydWN0JiYhYS5fZ2ZtVGFibGVEeW5hbWljSW50ZXJydXB0SGFjayl9cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5jaGVjayhqWmUsdSxkKShrKX1mdW5jdGlvbiB1KGspe3JldHVybiBhJiZ3KCkseShpKSxoKGspfWZ1bmN0aW9uIGQoayl7cmV0dXJuIHQucGFyc2VyLmxhenlbdC5ub3coKS5saW5lXT1pIT09ci5sZW5ndGgsbz10Lm5vdygpLm9mZnNldCx4KGspfWZ1bmN0aW9uIGgoayl7cmV0dXJuIHQuY29udGFpbmVyU3RhdGU9e30sZS5hdHRlbXB0KGpaZSxmLHgpKGspfWZ1bmN0aW9uIGYoayl7cmV0dXJuIGkrKyxyLnB1c2goW3QuY3VycmVudENvbnN0cnVjdCx0LmNvbnRhaW5lclN0YXRlXSksaChrKX1mdW5jdGlvbiB4KGspe2lmKGs9PT1udWxsKXthJiZ3KCkseSgwKSxlLmNvbnN1bWUoayk7cmV0dXJufXJldHVybiBhPWF8fHQucGFyc2VyLmZsb3codC5ub3coKSksZS5lbnRlcigiY2h1bmtGbG93Iix7X3Rva2VuaXplcjphLGNvbnRlbnRUeXBlOiJmbG93IixwcmV2aW91czpufSksdihrKX1mdW5jdGlvbiB2KGspe2lmKGs9PT1udWxsKXtiKGUuZXhpdCgiY2h1bmtGbG93IiksITApLHkoMCksZS5jb25zdW1lKGspO3JldHVybn1yZXR1cm4gR2Uoayk/KGUuY29uc3VtZShrKSxiKGUuZXhpdCgiY2h1bmtGbG93IikpLGk9MCx0LmludGVycnVwdD12b2lkIDAscyk6KGUuY29uc3VtZShrKSx2KX1mdW5jdGlvbiBiKGssTyl7bGV0IHo9dC5zbGljZVN0cmVhbShrKTtpZihPJiZ6LnB1c2gobnVsbCksay5wcmV2aW91cz1uLG4mJihuLm5leHQ9ayksbj1rLGEuZGVmaW5lU2tpcChrLnN0YXJ0KSxhLndyaXRlKHopLHQucGFyc2VyLmxhenlbay5zdGFydC5saW5lXSl7bGV0IE09YS5ldmVudHMubGVuZ3RoO2Zvcig7TS0tOylpZihhLmV2ZW50c1tNXVsxXS5zdGFydC5vZmZzZXQ8byYmKCFhLmV2ZW50c1tNXVsxXS5lbmR8fGEuZXZlbnRzW01dWzFdLmVuZC5vZmZzZXQ+bykpcmV0dXJuO2xldCBGPXQuZXZlbnRzLmxlbmd0aCxEPUYsTixSO2Zvcig7RC0tOylpZih0LmV2ZW50c1tEXVswXT09PSJleGl0IiYmdC5ldmVudHNbRF1bMV0udHlwZT09PSJjaHVua0Zsb3ciKXtpZihOKXtSPXQuZXZlbnRzW0RdWzFdLmVuZDticmVha31OPSEwfWZvcih5KGkpLE09RjtNPHQuZXZlbnRzLmxlbmd0aDspdC5ldmVudHNbTV1bMV0uZW5kPXsuLi5SfSxNKys7ajEodC5ldmVudHMsRCsxLDAsdC5ldmVudHMuc2xpY2UoRikpLHQuZXZlbnRzLmxlbmd0aD1NfX1mdW5jdGlvbiB5KGspe2xldCBPPXIubGVuZ3RoO2Zvcig7Ty0tID5rOyl7bGV0IHo9cltPXTt0LmNvbnRhaW5lclN0YXRlPXpbMV0selswXS5leGl0LmNhbGwodCxlKX1yLmxlbmd0aD1rfWZ1bmN0aW9uIHcoKXthLndyaXRlKFtudWxsXSksbj12b2lkIDAsYT12b2lkIDAsdC5jb250YWluZXJTdGF0ZS5fY2xvc2VGbG93PXZvaWQgMH19ZnVuY3Rpb24gZHFyKGUsdCxyKXtyZXR1cm4gYnQoZSxlLmF0dGVtcHQodGhpcy5wYXJzZXIuY29uc3RydWN0cy5kb2N1bWVudCx0LHIpLCJsaW5lUHJlZml4Iix0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcygiY29kZUluZGVudGVkIik/dm9pZCAwOjQpfXZhciBWWmUsalplLFVaZT1wKCgpPT57VjEoKTtycigpO1VzKCk7VlplPXt0b2tlbml6ZTpjcXJ9LGpaZT17dG9rZW5pemU6ZHFyfX0pO2Z1bmN0aW9uIHVxcihlKXtsZXQgdD10aGlzLHI9ZS5hdHRlbXB0KFpzLGksZS5hdHRlbXB0KHRoaXMucGFyc2VyLmNvbnN0cnVjdHMuZmxvd0luaXRpYWwsYSxidChlLGUuYXR0ZW1wdCh0aGlzLnBhcnNlci5jb25zdHJ1Y3RzLmZsb3csYSxlLmF0dGVtcHQoJHRlLGEpKSwibGluZVByZWZpeCIpKSk7cmV0dXJuIHI7ZnVuY3Rpb24gaShuKXtpZihuPT09bnVsbCl7ZS5jb25zdW1lKG4pO3JldHVybn1yZXR1cm4gZS5lbnRlcigibGluZUVuZGluZ0JsYW5rIiksZS5jb25zdW1lKG4pLGUuZXhpdCgibGluZUVuZGluZ0JsYW5rIiksdC5jdXJyZW50Q29uc3RydWN0PXZvaWQgMCxyfWZ1bmN0aW9uIGEobil7aWYobj09PW51bGwpe2UuY29uc3VtZShuKTtyZXR1cm59cmV0dXJuIGUuZW50ZXIoImxpbmVFbmRpbmciKSxlLmNvbnN1bWUobiksZS5leGl0KCJsaW5lRW5kaW5nIiksdC5jdXJyZW50Q29uc3RydWN0PXZvaWQgMCxyfX12YXIgV1plLEdaZT1wKCgpPT57Wl8oKTtWMSgpO3JyKCk7V1plPXt0b2tlbml6ZTp1cXJ9fSk7ZnVuY3Rpb24gWVplKGUpe3JldHVybntyZXNvbHZlQWxsOlpaZShlPT09InRleHQiP3Bxcjp2b2lkIDApLHRva2VuaXplOnR9O2Z1bmN0aW9uIHQocil7bGV0IGk9dGhpcyxhPXRoaXMucGFyc2VyLmNvbnN0cnVjdHNbZV0sbj1yLmF0dGVtcHQoYSxvLHMpO3JldHVybiBvO2Z1bmN0aW9uIG8odSl7cmV0dXJuIGModSk/bih1KTpzKHUpfWZ1bmN0aW9uIHModSl7aWYodT09PW51bGwpe3IuY29uc3VtZSh1KTtyZXR1cm59cmV0dXJuIHIuZW50ZXIoImRhdGEiKSxyLmNvbnN1bWUodSksbH1mdW5jdGlvbiBsKHUpe3JldHVybiBjKHUpPyhyLmV4aXQoImRhdGEiKSxuKHUpKTooci5jb25zdW1lKHUpLGwpfWZ1bmN0aW9uIGModSl7aWYodT09PW51bGwpcmV0dXJuITA7bGV0IGQ9YVt1XSxoPS0xO2lmKGQpZm9yKDsrK2g8ZC5sZW5ndGg7KXtsZXQgZj1kW2hdO2lmKCFmLnByZXZpb3VzfHxmLnByZXZpb3VzLmNhbGwoaSxpLnByZXZpb3VzKSlyZXR1cm4hMH1yZXR1cm4hMX19fWZ1bmN0aW9uIFpaZShlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KHIsaSl7bGV0IGE9LTEsbjtmb3IoOysrYTw9ci5sZW5ndGg7KW49PT12b2lkIDA/clthXSYmclthXVsxXS50eXBlPT09ImRhdGEiJiYobj1hLGErKyk6KCFyW2FdfHxyW2FdWzFdLnR5cGUhPT0iZGF0YSIpJiYoYSE9PW4rMiYmKHJbbl1bMV0uZW5kPXJbYS0xXVsxXS5lbmQsci5zcGxpY2UobisyLGEtbi0yKSxhPW4rMiksbj12b2lkIDApO3JldHVybiBlP2UocixpKTpyfX1mdW5jdGlvbiBwcXIoZSx0KXtsZXQgcj0wO2Zvcig7KytyPD1lLmxlbmd0aDspaWYoKHI9PT1lLmxlbmd0aHx8ZVtyXVsxXS50eXBlPT09ImxpbmVFbmRpbmciKSYmZVtyLTFdWzFdLnR5cGU9PT0iZGF0YSIpe2xldCBpPWVbci0xXVsxXSxhPXQuc2xpY2VTdHJlYW0oaSksbj1hLmxlbmd0aCxvPS0xLHM9MCxsO2Zvcig7bi0tOyl7bGV0IGM9YVtuXTtpZih0eXBlb2YgYz09InN0cmluZyIpe2ZvcihvPWMubGVuZ3RoO2MuY2hhckNvZGVBdChvLTEpPT09MzI7KXMrKyxvLS07aWYobylicmVhaztvPS0xfWVsc2UgaWYoYz09PS0yKWw9ITAscysrO2Vsc2UgaWYoYyE9PS0xKXtuKys7YnJlYWt9fWlmKHQuX2NvbnRlbnRUeXBlVGV4dFRyYWlsaW5nJiZyPT09ZS5sZW5ndGgmJihzPTApLHMpe2xldCBjPXt0eXBlOnI9PT1lLmxlbmd0aHx8bHx8czwyPyJsaW5lU3VmZml4IjoiaGFyZEJyZWFrVHJhaWxpbmciLHN0YXJ0OntfYnVmZmVySW5kZXg6bj9vOmkuc3RhcnQuX2J1ZmZlckluZGV4K28sX2luZGV4Omkuc3RhcnQuX2luZGV4K24sbGluZTppLmVuZC5saW5lLGNvbHVtbjppLmVuZC5jb2x1bW4tcyxvZmZzZXQ6aS5lbmQub2Zmc2V0LXN9LGVuZDp7Li4uaS5lbmR9fTtpLmVuZD17Li4uYy5zdGFydH0saS5zdGFydC5vZmZzZXQ9PT1pLmVuZC5vZmZzZXQ/T2JqZWN0LmFzc2lnbihpLGMpOihlLnNwbGljZShyLDAsWyJlbnRlciIsYyx0XSxbImV4aXQiLGMsdF0pLHIrPTIpfXIrK31yZXR1cm4gZX12YXIgWFplLFFaZSxKWmUsbnJlPXAoKCk9PntYWmU9e3Jlc29sdmVBbGw6WlplKCl9LFFaZT1ZWmUoInN0cmluZyIpLEpaZT1ZWmUoInRleHQiKX0pO3ZhciBvcmU9e307RmUob3JlLHthdHRlbnRpb25NYXJrZXJzOigpPT55cXIsY29udGVudEluaXRpYWw6KCk9PmZxcixkaXNhYmxlOigpPT53cXIsZG9jdW1lbnQ6KCk9PmhxcixmbG93OigpPT5ncXIsZmxvd0luaXRpYWw6KCk9Pm1xcixpbnNpZGVTcGFuOigpPT54cXIsc3RyaW5nOigpPT5icXIsdGV4dDooKT0+dnFyfSk7dmFyIGhxcixmcXIsbXFyLGdxcixicXIsdnFyLHhxcix5cXIsd3FyLEtaZT1wKCgpPT57Wl8oKTtucmUoKTtocXI9ezQyOkxhLDQzOkxhLDQ1OkxhLDQ4OkxhLDQ5OkxhLDUwOkxhLDUxOkxhLDUyOkxhLDUzOkxhLDU0OkxhLDU1OkxhLDU2OkxhLDU3OkxhLDYyOlJffSxmcXI9ezkxOk90ZX0sbXFyPXtbLTJdOk85LFstMV06TzksMzI6Tzl9LGdxcj17MzU6QnRlLDQyOnBkLDQ1OltZXyxwZF0sNjA6cXRlLDYxOllfLDk1OnBkLDk2OnFfLDEyNjpxX30sYnFyPXszODpIXyw5MjpCX30sdnFyPXtbLTVdOkg5LFstNF06SDksWy0zXTpIOSwzMzpWdGUsMzg6SF8sNDI6RjksNjA6W0x0ZSxqdGVdLDkxOlV0ZSw5MjpbUnRlLEJfXSw5Mzp1ZCw5NTpGOSw5NjpBdGV9LHhxcj17bnVsbDpbRjksWFplXX0seXFyPXtudWxsOls0Miw5NV19LHdxcj17bnVsbDpbXX19KTtmdW5jdGlvbiBlWGUoZSx0LHIpe2xldCBpPXtfYnVmZmVySW5kZXg6LTEsX2luZGV4OjAsbGluZTpyJiZyLmxpbmV8fDEsY29sdW1uOnImJnIuY29sdW1ufHwxLG9mZnNldDpyJiZyLm9mZnNldHx8MH0sYT17fSxuPVtdLG89W10scz1bXSxsPSEwLGM9e2F0dGVtcHQ6TihGKSxjaGVjazpOKEQpLGNvbnN1bWU6TyxlbnRlcjp6LGV4aXQ6TSxpbnRlcnJ1cHQ6TihELHtpbnRlcnJ1cHQ6ITB9KX0sdT17Y29kZTpudWxsLGNvbnRhaW5lclN0YXRlOnt9LGRlZmluZVNraXA6eSxldmVudHM6W10sbm93OmIscGFyc2VyOmUscHJldmlvdXM6bnVsbCxzbGljZVNlcmlhbGl6ZTp4LHNsaWNlU3RyZWFtOnYsd3JpdGU6Zn0sZD10LnRva2VuaXplLmNhbGwodSxjKSxoO3JldHVybiB0LnJlc29sdmVBbGwmJm4ucHVzaCh0KSx1O2Z1bmN0aW9uIGYoJCl7cmV0dXJuIG89YWkobywkKSx3KCksb1tvLmxlbmd0aC0xXSE9PW51bGw/W106KFIodCwwKSx1LmV2ZW50cz1mNChuLHUuZXZlbnRzLHUpLHUuZXZlbnRzKX1mdW5jdGlvbiB4KCQsVCl7cmV0dXJuIGtxcih2KCQpLFQpfWZ1bmN0aW9uIHYoJCl7cmV0dXJuIE1xcihvLCQpfWZ1bmN0aW9uIGIoKXtsZXR7X2J1ZmZlckluZGV4OiQsX2luZGV4OlQsbGluZTpFLGNvbHVtbjpxLG9mZnNldDpCfT1pO3JldHVybntfYnVmZmVySW5kZXg6JCxfaW5kZXg6VCxsaW5lOkUsY29sdW1uOnEsb2Zmc2V0OkJ9fWZ1bmN0aW9uIHkoJCl7YVskLmxpbmVdPSQuY29sdW1uLFMoKX1mdW5jdGlvbiB3KCl7bGV0ICQ7Zm9yKDtpLl9pbmRleDxvLmxlbmd0aDspe2xldCBUPW9baS5faW5kZXhdO2lmKHR5cGVvZiBUPT0ic3RyaW5nIilmb3IoJD1pLl9pbmRleCxpLl9idWZmZXJJbmRleDwwJiYoaS5fYnVmZmVySW5kZXg9MCk7aS5faW5kZXg9PT0kJiZpLl9idWZmZXJJbmRleDxULmxlbmd0aDspayhULmNoYXJDb2RlQXQoaS5fYnVmZmVySW5kZXgpKTtlbHNlIGsoVCl9fWZ1bmN0aW9uIGsoJCl7bD12b2lkIDAsaD0kLGQ9ZCgkKX1mdW5jdGlvbiBPKCQpe0dlKCQpPyhpLmxpbmUrKyxpLmNvbHVtbj0xLGkub2Zmc2V0Kz0kPT09LTM/MjoxLFMoKSk6JCE9PS0xJiYoaS5jb2x1bW4rKyxpLm9mZnNldCsrKSxpLl9idWZmZXJJbmRleDwwP2kuX2luZGV4Kys6KGkuX2J1ZmZlckluZGV4KyssaS5fYnVmZmVySW5kZXg9PT1vW2kuX2luZGV4XS5sZW5ndGgmJihpLl9idWZmZXJJbmRleD0tMSxpLl9pbmRleCsrKSksdS5wcmV2aW91cz0kLGw9ITB9ZnVuY3Rpb24geigkLFQpe2xldCBFPVR8fHt9O3JldHVybiBFLnR5cGU9JCxFLnN0YXJ0PWIoKSx1LmV2ZW50cy5wdXNoKFsiZW50ZXIiLEUsdV0pLHMucHVzaChFKSxFfWZ1bmN0aW9uIE0oJCl7bGV0IFQ9cy5wb3AoKTtyZXR1cm4gVC5lbmQ9YigpLHUuZXZlbnRzLnB1c2goWyJleGl0IixULHVdKSxUfWZ1bmN0aW9uIEYoJCxUKXtSKCQsVC5mcm9tKX1mdW5jdGlvbiBEKCQsVCl7VC5yZXN0b3JlKCl9ZnVuY3Rpb24gTigkLFQpe3JldHVybiBFO2Z1bmN0aW9uIEUocSxCLEcpe2xldCBlZSxQLGdlLHdlO3JldHVybiBBcnJheS5pc0FycmF5KHEpP25lKHEpOiJ0b2tlbml6ZSJpbiBxP25lKFtxXSk6SShxKTtmdW5jdGlvbiBJKEwpe3JldHVybiBVO2Z1bmN0aW9uIFUoVil7bGV0IFg9ViE9PW51bGwmJkxbVl0sZGU9ViE9PW51bGwmJkwubnVsbCx2ZT1bLi4uQXJyYXkuaXNBcnJheShYKT9YOlg/W1hdOltdLC4uLkFycmF5LmlzQXJyYXkoZGUpP2RlOmRlP1tkZV06W11dO3JldHVybiBuZSh2ZSkoVil9fWZ1bmN0aW9uIG5lKEwpe3JldHVybiBlZT1MLFA9MCxMLmxlbmd0aD09PTA/RzprZShMW1BdKX1mdW5jdGlvbiBrZShMKXtyZXR1cm4gVTtmdW5jdGlvbiBVKFYpe3JldHVybiB3ZT1fKCksZ2U9TCxMLnBhcnRpYWx8fCh1LmN1cnJlbnRDb25zdHJ1Y3Q9TCksTC5uYW1lJiZ1LnBhcnNlci5jb25zdHJ1Y3RzLmRpc2FibGUubnVsbC5pbmNsdWRlcyhMLm5hbWUpP0EoVik6TC50b2tlbml6ZS5jYWxsKFQ/T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKHUpLFQpOnUsYyxZLEEpKFYpfX1mdW5jdGlvbiBZKEwpe3JldHVybiBsPSEwLCQoZ2Usd2UpLEJ9ZnVuY3Rpb24gQShMKXtyZXR1cm4gbD0hMCx3ZS5yZXN0b3JlKCksKytQPGVlLmxlbmd0aD9rZShlZVtQXSk6R319fWZ1bmN0aW9uIFIoJCxUKXskLnJlc29sdmVBbGwmJiFuLmluY2x1ZGVzKCQpJiZuLnB1c2goJCksJC5yZXNvbHZlJiZqMSh1LmV2ZW50cyxULHUuZXZlbnRzLmxlbmd0aC1ULCQucmVzb2x2ZSh1LmV2ZW50cy5zbGljZShUKSx1KSksJC5yZXNvbHZlVG8mJih1LmV2ZW50cz0kLnJlc29sdmVUbyh1LmV2ZW50cyx1KSl9ZnVuY3Rpb24gXygpe2xldCAkPWIoKSxUPXUucHJldmlvdXMsRT11LmN1cnJlbnRDb25zdHJ1Y3QscT11LmV2ZW50cy5sZW5ndGgsQj1BcnJheS5mcm9tKHMpO3JldHVybntmcm9tOnEscmVzdG9yZTpHfTtmdW5jdGlvbiBHKCl7aT0kLHUucHJldmlvdXM9VCx1LmN1cnJlbnRDb25zdHJ1Y3Q9RSx1LmV2ZW50cy5sZW5ndGg9cSxzPUIsUygpfX1mdW5jdGlvbiBTKCl7aS5saW5lIGluIGEmJmkuY29sdW1uPDImJihpLmNvbHVtbj1hW2kubGluZV0saS5vZmZzZXQrPWFbaS5saW5lXS0xKX19ZnVuY3Rpb24gTXFyKGUsdCl7bGV0IHI9dC5zdGFydC5faW5kZXgsaT10LnN0YXJ0Ll9idWZmZXJJbmRleCxhPXQuZW5kLl9pbmRleCxuPXQuZW5kLl9idWZmZXJJbmRleCxvO2lmKHI9PT1hKW89W2Vbcl0uc2xpY2UoaSxuKV07ZWxzZXtpZihvPWUuc2xpY2UocixhKSxpPi0xKXtsZXQgcz1vWzBdO3R5cGVvZiBzPT0ic3RyaW5nIj9vWzBdPXMuc2xpY2UoaSk6by5zaGlmdCgpfW4+MCYmby5wdXNoKGVbYV0uc2xpY2UoMCxuKSl9cmV0dXJuIG99ZnVuY3Rpb24ga3FyKGUsdCl7bGV0IHI9LTEsaT1bXSxhO2Zvcig7KytyPGUubGVuZ3RoOyl7bGV0IG49ZVtyXSxvO2lmKHR5cGVvZiBuPT0ic3RyaW5nIilvPW47ZWxzZSBzd2l0Y2gobil7Y2FzZS01OntvPSJcciI7YnJlYWt9Y2FzZS00OntvPWAKYDticmVha31jYXNlLTM6e289YFxyCmA7YnJlYWt9Y2FzZS0yOntvPXQ/IiAiOiIJIjticmVha31jYXNlLTE6e2lmKCF0JiZhKWNvbnRpbnVlO289IiAiO2JyZWFrfWRlZmF1bHQ6bz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pfWE9bj09PS0yLGkucHVzaChvKX1yZXR1cm4gaS5qb2luKCIiKX12YXIgdFhlPXAoKCk9PntycigpO1VzKCk7TjkoKX0pO2Z1bmN0aW9uIHE5KGUpe2xldCBpPXtjb25zdHJ1Y3RzOklfKFtvcmUsLi4uKGV8fHt9KS5leHRlbnNpb25zfHxbXV0pLGNvbnRlbnQ6YShIWmUpLGRlZmluZWQ6W10sZG9jdW1lbnQ6YShWWmUpLGZsb3c6YShXWmUpLGxhenk6e30sc3RyaW5nOmEoUVplKSx0ZXh0OmEoSlplKX07cmV0dXJuIGk7ZnVuY3Rpb24gYShuKXtyZXR1cm4gbztmdW5jdGlvbiBvKHMpe3JldHVybiBlWGUoaSxuLHMpfX19dmFyIHNyZT1wKCgpPT57Tl8oKTtxWmUoKTtVWmUoKTtHWmUoKTtucmUoKTtLWmUoKTt0WGUoKX0pO2Z1bmN0aW9uIGo5KGUpe2Zvcig7IWpfKGUpOyk7cmV0dXJuIGV9dmFyIGxyZT1wKCgpPT57RXRlKCl9KTtmdW5jdGlvbiBWOSgpe2xldCBlPTEsdD0iIixyPSEwLGk7cmV0dXJuIGE7ZnVuY3Rpb24gYShuLG8scyl7bGV0IGw9W10sYyx1LGQsaCxmO2ZvcihuPXQrKHR5cGVvZiBuPT0ic3RyaW5nIj9uLnRvU3RyaW5nKCk6bmV3IFRleHREZWNvZGVyKG98fHZvaWQgMCkuZGVjb2RlKG4pKSxkPTAsdD0iIixyJiYobi5jaGFyQ29kZUF0KDApPT09NjUyNzkmJmQrKyxyPXZvaWQgMCk7ZDxuLmxlbmd0aDspe2lmKHJYZS5sYXN0SW5kZXg9ZCxjPXJYZS5leGVjKG4pLGg9YyYmYy5pbmRleCE9PXZvaWQgMD9jLmluZGV4Om4ubGVuZ3RoLGY9bi5jaGFyQ29kZUF0KGgpLCFjKXt0PW4uc2xpY2UoZCk7YnJlYWt9aWYoZj09PTEwJiZkPT09aCYmaSlsLnB1c2goLTMpLGk9dm9pZCAwO2Vsc2Ugc3dpdGNoKGkmJihsLnB1c2goLTUpLGk9dm9pZCAwKSxkPGgmJihsLnB1c2gobi5zbGljZShkLGgpKSxlKz1oLWQpLGYpe2Nhc2UgMDp7bC5wdXNoKDY1NTMzKSxlKys7YnJlYWt9Y2FzZSA5Ontmb3IodT1NYXRoLmNlaWwoZS80KSo0LGwucHVzaCgtMik7ZSsrPHU7KWwucHVzaCgtMSk7YnJlYWt9Y2FzZSAxMDp7bC5wdXNoKC00KSxlPTE7YnJlYWt9ZGVmYXVsdDppPSEwLGU9MX1kPWgrMX1yZXR1cm4gcyYmKGkmJmwucHVzaCgtNSksdCYmbC5wdXNoKHQpLGwucHVzaChudWxsKSksbH19dmFyIHJYZSxjcmU9cCgoKT0+e3JYZT0vW1wwXHRcblxyXS9nfSk7ZnVuY3Rpb24gTXFpKGUsdCxyKXtyZXR1cm4gdHlwZW9mIHQhPSJzdHJpbmciJiYocj10LHQ9dm9pZCAwKSxpcmUocikoajkocTkocikuZG9jdW1lbnQoKS53cml0ZShWOSgpKGUsdCwhMCkpKSl9dmFyIGlYZT1wKCgpPT57YXJlKCk7c3JlKCk7bHJlKCk7Y3JlKCk7YXJlKCk7c3JlKCk7bHJlKCk7Y3JlKCl9KTtmdW5jdGlvbiBkcmUoZSx0LHIpe3JldHVybiB0eXBlb2YgdCE9InN0cmluZyImJihyPXQsdD12b2lkIDApLFNxcihyKShqOShxOShyKS5kb2N1bWVudCgpLndyaXRlKFY5KCkoZSx0LCEwKSkpKX1mdW5jdGlvbiBTcXIoZSl7bGV0IHQ9e3RyYW5zZm9ybXM6W10sY2FuQ29udGFpbkVvbHM6WyJlbXBoYXNpcyIsImZyYWdtZW50IiwiaGVhZGluZyIsInBhcmFncmFwaCIsInN0cm9uZyJdLGVudGVyOnthdXRvbGluazpuKHVlKSxhdXRvbGlua1Byb3RvY29sOk4sYXV0b2xpbmtFbWFpbDpOLGF0eEhlYWRpbmc6bihXKSxibG9ja1F1b3RlOm4oViksY2hhcmFjdGVyRXNjYXBlOk4sY2hhcmFjdGVyUmVmZXJlbmNlOk4sY29kZUZlbmNlZDpuKFgpLGNvZGVGZW5jZWRGZW5jZUluZm86byxjb2RlRmVuY2VkRmVuY2VNZXRhOm8sY29kZUluZGVudGVkOm4oWCxvKSxjb2RlVGV4dDpuKGRlLG8pLGNvZGVUZXh0RGF0YTpOLGRhdGE6Tixjb2RlRmxvd1ZhbHVlOk4sZGVmaW5pdGlvbjpuKHZlKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6byxkZWZpbml0aW9uTGFiZWxTdHJpbmc6byxkZWZpbml0aW9uVGl0bGVTdHJpbmc6byxlbXBoYXNpczpuKExlKSxoYXJkQnJlYWtFc2NhcGU6bihIKSxoYXJkQnJlYWtUcmFpbGluZzpuKEgpLGh0bWxGbG93Om4odGUsbyksaHRtbEZsb3dEYXRhOk4saHRtbFRleHQ6bih0ZSxvKSxodG1sVGV4dERhdGE6TixpbWFnZTpuKGJlKSxsYWJlbDpvLGxpbms6bih1ZSksbGlzdEl0ZW06bihoZSksbGlzdEl0ZW1WYWx1ZTpoLGxpc3RPcmRlcmVkOm4oQ2UsZCksbGlzdFVub3JkZXJlZDpuKENlKSxwYXJhZ3JhcGg6bihpZSkscmVmZXJlbmNlOkkscmVmZXJlbmNlU3RyaW5nOm8scmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpvLHJlc291cmNlVGl0bGVTdHJpbmc6byxzZXRleHRIZWFkaW5nOm4oVyksc3Ryb25nOm4oU2UpLHRoZW1hdGljQnJlYWs6bihaZSl9LGV4aXQ6e2F0eEhlYWRpbmc6bCgpLGF0eEhlYWRpbmdTZXF1ZW5jZTp6LGF1dG9saW5rOmwoKSxhdXRvbGlua0VtYWlsOlUsYXV0b2xpbmtQcm90b2NvbDpMLGJsb2NrUXVvdGU6bCgpLGNoYXJhY3RlckVzY2FwZVZhbHVlOlIsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VySGV4YWRlY2ltYWw6a2UsY2hhcmFjdGVyUmVmZXJlbmNlTWFya2VyTnVtZXJpYzprZSxjaGFyYWN0ZXJSZWZlcmVuY2VWYWx1ZTpZLGNoYXJhY3RlclJlZmVyZW5jZTpBLGNvZGVGZW5jZWQ6bChiKSxjb2RlRmVuY2VkRmVuY2U6dixjb2RlRmVuY2VkRmVuY2VJbmZvOmYsY29kZUZlbmNlZEZlbmNlTWV0YTp4LGNvZGVGbG93VmFsdWU6Uixjb2RlSW5kZW50ZWQ6bCh5KSxjb2RlVGV4dDpsKEUpLGNvZGVUZXh0RGF0YTpSLGRhdGE6UixkZWZpbml0aW9uOmwoKSxkZWZpbml0aW9uRGVzdGluYXRpb25TdHJpbmc6TyxkZWZpbml0aW9uTGFiZWxTdHJpbmc6dyxkZWZpbml0aW9uVGl0bGVTdHJpbmc6ayxlbXBoYXNpczpsKCksaGFyZEJyZWFrRXNjYXBlOmwoUyksaGFyZEJyZWFrVHJhaWxpbmc6bChTKSxodG1sRmxvdzpsKCQpLGh0bWxGbG93RGF0YTpSLGh0bWxUZXh0OmwoVCksaHRtbFRleHREYXRhOlIsaW1hZ2U6bChCKSxsYWJlbDplZSxsYWJlbFRleHQ6RyxsaW5lRW5kaW5nOl8sbGluazpsKHEpLGxpc3RJdGVtOmwoKSxsaXN0T3JkZXJlZDpsKCksbGlzdFVub3JkZXJlZDpsKCkscGFyYWdyYXBoOmwoKSxyZWZlcmVuY2VTdHJpbmc6bmUscmVzb3VyY2VEZXN0aW5hdGlvblN0cmluZzpQLHJlc291cmNlVGl0bGVTdHJpbmc6Z2UscmVzb3VyY2U6d2Usc2V0ZXh0SGVhZGluZzpsKEQpLHNldGV4dEhlYWRpbmdMaW5lU2VxdWVuY2U6RixzZXRleHRIZWFkaW5nVGV4dDpNLHN0cm9uZzpsKCksdGhlbWF0aWNCcmVhazpsKCl9fTtuWGUodCwoZXx8e30pLm1kYXN0RXh0ZW5zaW9uc3x8W10pO2xldCByPXt9O3JldHVybiBpO2Z1bmN0aW9uIGkoSyl7bGV0IFo9e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfSxKPXtzdGFjazpbWl0sdG9rZW5TdGFjazpbXSxjb25maWc6dCxlbnRlcjpzLGV4aXQ6YyxidWZmZXI6byxyZXN1bWU6dSxkYXRhOnJ9LG1lPVtdLEVlPS0xO2Zvcig7KytFZTxLLmxlbmd0aDspaWYoS1tFZV1bMV0udHlwZT09PSJsaXN0T3JkZXJlZCJ8fEtbRWVdWzFdLnR5cGU9PT0ibGlzdFVub3JkZXJlZCIpaWYoS1tFZV1bMF09PT0iZW50ZXIiKW1lLnB1c2goRWUpO2Vsc2V7bGV0IFVlPW1lLnBvcCgpO0VlPWEoSyxVZSxFZSl9Zm9yKEVlPS0xOysrRWU8Sy5sZW5ndGg7KXtsZXQgVWU9dFtLW0VlXVswXV07YVhlLmNhbGwoVWUsS1tFZV1bMV0udHlwZSkmJlVlW0tbRWVdWzFdLnR5cGVdLmNhbGwoT2JqZWN0LmFzc2lnbih7c2xpY2VTZXJpYWxpemU6S1tFZV1bMl0uc2xpY2VTZXJpYWxpemV9LEopLEtbRWVdWzFdKX1pZihKLnRva2VuU3RhY2subGVuZ3RoPjApe2xldCBVZT1KLnRva2VuU3RhY2tbSi50b2tlblN0YWNrLmxlbmd0aC0xXTsoVWVbMV18fG9YZSkuY2FsbChKLHZvaWQgMCxVZVswXSl9Zm9yKFoucG9zaXRpb249e3N0YXJ0Om00KEsubGVuZ3RoPjA/S1swXVsxXS5zdGFydDp7bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSksZW5kOm00KEsubGVuZ3RoPjA/S1tLLmxlbmd0aC0yXVsxXS5lbmQ6e2xpbmU6MSxjb2x1bW46MSxvZmZzZXQ6MH0pfSxFZT0tMTsrK0VlPHQudHJhbnNmb3Jtcy5sZW5ndGg7KVo9dC50cmFuc2Zvcm1zW0VlXShaKXx8WjtyZXR1cm4gWn1mdW5jdGlvbiBhKEssWixKKXtsZXQgbWU9Wi0xLEVlPS0xLFVlPSExLE10LGl0LEx0LFd0O2Zvcig7KyttZTw9Sjspe2xldCBhZT1LW21lXTtzd2l0Y2goYWVbMV0udHlwZSl7Y2FzZSJsaXN0VW5vcmRlcmVkIjpjYXNlImxpc3RPcmRlcmVkIjpjYXNlImJsb2NrUXVvdGUiOnthZVswXT09PSJlbnRlciI/RWUrKzpFZS0tLFd0PXZvaWQgMDticmVha31jYXNlImxpbmVFbmRpbmdCbGFuayI6e2FlWzBdPT09ImVudGVyIiYmKE10JiYhV3QmJiFFZSYmIUx0JiYoTHQ9bWUpLFd0PXZvaWQgMCk7YnJlYWt9Y2FzZSJsaW5lUHJlZml4IjpjYXNlImxpc3RJdGVtVmFsdWUiOmNhc2UibGlzdEl0ZW1NYXJrZXIiOmNhc2UibGlzdEl0ZW1QcmVmaXgiOmNhc2UibGlzdEl0ZW1QcmVmaXhXaGl0ZXNwYWNlIjpicmVhaztkZWZhdWx0Old0PXZvaWQgMH1pZighRWUmJmFlWzBdPT09ImVudGVyIiYmYWVbMV0udHlwZT09PSJsaXN0SXRlbVByZWZpeCJ8fEVlPT09LTEmJmFlWzBdPT09ImV4aXQiJiYoYWVbMV0udHlwZT09PSJsaXN0VW5vcmRlcmVkInx8YWVbMV0udHlwZT09PSJsaXN0T3JkZXJlZCIpKXtpZihNdCl7bGV0IHNlPW1lO2ZvcihpdD12b2lkIDA7c2UtLTspe2xldCBfZT1LW3NlXTtpZihfZVsxXS50eXBlPT09ImxpbmVFbmRpbmcifHxfZVsxXS50eXBlPT09ImxpbmVFbmRpbmdCbGFuayIpe2lmKF9lWzBdPT09ImV4aXQiKWNvbnRpbnVlO2l0JiYoS1tpdF1bMV0udHlwZT0ibGluZUVuZGluZ0JsYW5rIixVZT0hMCksX2VbMV0udHlwZT0ibGluZUVuZGluZyIsaXQ9c2V9ZWxzZSBpZighKF9lWzFdLnR5cGU9PT0ibGluZVByZWZpeCJ8fF9lWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeCJ8fF9lWzFdLnR5cGU9PT0iYmxvY2tRdW90ZVByZWZpeFdoaXRlc3BhY2UifHxfZVsxXS50eXBlPT09ImJsb2NrUXVvdGVNYXJrZXIifHxfZVsxXS50eXBlPT09Imxpc3RJdGVtSW5kZW50IikpYnJlYWt9THQmJighaXR8fEx0PGl0KSYmKE10Ll9zcHJlYWQ9ITApLE10LmVuZD1PYmplY3QuYXNzaWduKHt9LGl0P0tbaXRdWzFdLnN0YXJ0OmFlWzFdLmVuZCksSy5zcGxpY2UoaXR8fG1lLDAsWyJleGl0IixNdCxhZVsyXV0pLG1lKyssSisrfWlmKGFlWzFdLnR5cGU9PT0ibGlzdEl0ZW1QcmVmaXgiKXtsZXQgc2U9e3R5cGU6Imxpc3RJdGVtIixfc3ByZWFkOiExLHN0YXJ0Ok9iamVjdC5hc3NpZ24oe30sYWVbMV0uc3RhcnQpLGVuZDp2b2lkIDB9O010PXNlLEsuc3BsaWNlKG1lLDAsWyJlbnRlciIsc2UsYWVbMl1dKSxtZSsrLEorKyxMdD12b2lkIDAsV3Q9ITB9fX1yZXR1cm4gS1taXVsxXS5fc3ByZWFkPVVlLEp9ZnVuY3Rpb24gbihLLFope3JldHVybiBKO2Z1bmN0aW9uIEoobWUpe3MuY2FsbCh0aGlzLEsobWUpLG1lKSxaJiZaLmNhbGwodGhpcyxtZSl9fWZ1bmN0aW9uIG8oKXt0aGlzLnN0YWNrLnB1c2goe3R5cGU6ImZyYWdtZW50IixjaGlsZHJlbjpbXX0pfWZ1bmN0aW9uIHMoSyxaLEope3RoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV0uY2hpbGRyZW4ucHVzaChLKSx0aGlzLnN0YWNrLnB1c2goSyksdGhpcy50b2tlblN0YWNrLnB1c2goW1osSnx8dm9pZCAwXSksSy5wb3NpdGlvbj17c3RhcnQ6bTQoWi5zdGFydCksZW5kOnZvaWQgMH19ZnVuY3Rpb24gbChLKXtyZXR1cm4gWjtmdW5jdGlvbiBaKEope0smJksuY2FsbCh0aGlzLEopLGMuY2FsbCh0aGlzLEopfX1mdW5jdGlvbiBjKEssWil7bGV0IEo9dGhpcy5zdGFjay5wb3AoKSxtZT10aGlzLnRva2VuU3RhY2sucG9wKCk7aWYobWUpbWVbMF0udHlwZSE9PUsudHlwZSYmKFo/Wi5jYWxsKHRoaXMsSyxtZVswXSk6KG1lWzFdfHxvWGUpLmNhbGwodGhpcyxLLG1lWzBdKSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitLLnR5cGUrImAgKCIrZDQoe3N0YXJ0Oksuc3RhcnQsZW5kOksuZW5kfSkrIik6IGl0XHUyMDE5cyBub3Qgb3BlbiIpO0oucG9zaXRpb24uZW5kPW00KEsuZW5kKX1mdW5jdGlvbiB1KCl7cmV0dXJuIG9kKHRoaXMuc3RhY2sucG9wKCkpfWZ1bmN0aW9uIGQoKXt0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPSEwfWZ1bmN0aW9uIGgoSyl7aWYodGhpcy5kYXRhLmV4cGVjdGluZ0ZpcnN0TGlzdEl0ZW1WYWx1ZSl7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtaLnN0YXJ0PU51bWJlci5wYXJzZUludCh0aGlzLnNsaWNlU2VyaWFsaXplKEspLDEwKSx0aGlzLmRhdGEuZXhwZWN0aW5nRmlyc3RMaXN0SXRlbVZhbHVlPXZvaWQgMH19ZnVuY3Rpb24gZigpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oubGFuZz1LfWZ1bmN0aW9uIHgoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLm1ldGE9S31mdW5jdGlvbiB2KCl7dGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlfHwodGhpcy5idWZmZXIoKSx0aGlzLmRhdGEuZmxvd0NvZGVJbnNpZGU9ITApfWZ1bmN0aW9uIGIoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnZhbHVlPUsucmVwbGFjZSgvXihccj9cbnxccil8KFxyP1xufFxyKSQvZywiIiksdGhpcy5kYXRhLmZsb3dDb2RlSW5zaWRlPXZvaWQgMH1mdW5jdGlvbiB5KCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT1LLnJlcGxhY2UoLyhccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIHcoSyl7bGV0IFo9dGhpcy5yZXN1bWUoKSxKPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Si5sYWJlbD1aLEouaWRlbnRpZmllcj1QMSh0aGlzLnNsaWNlU2VyaWFsaXplKEspKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGsoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnRpdGxlPUt9ZnVuY3Rpb24gTygpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oudXJsPUt9ZnVuY3Rpb24geihLKXtsZXQgWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKCFaLmRlcHRoKXtsZXQgSj10aGlzLnNsaWNlU2VyaWFsaXplKEspLmxlbmd0aDtaLmRlcHRoPUp9fWZ1bmN0aW9uIE0oKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz0hMH1mdW5jdGlvbiBGKEspe2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi5kZXB0aD10aGlzLnNsaWNlU2VyaWFsaXplKEspLmNvZGVQb2ludEF0KDApPT09NjE/MToyfWZ1bmN0aW9uIEQoKXt0aGlzLmRhdGEuc2V0ZXh0SGVhZGluZ1NsdXJwTGluZUVuZGluZz12b2lkIDB9ZnVuY3Rpb24gTihLKXtsZXQgSj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdLmNoaWxkcmVuLG1lPUpbSi5sZW5ndGgtMV07KCFtZXx8bWUudHlwZSE9PSJ0ZXh0IikmJihtZT1JZSgpLG1lLnBvc2l0aW9uPXtzdGFydDptNChLLnN0YXJ0KSxlbmQ6dm9pZCAwfSxKLnB1c2gobWUpKSx0aGlzLnN0YWNrLnB1c2gobWUpfWZ1bmN0aW9uIFIoSyl7bGV0IFo9dGhpcy5zdGFjay5wb3AoKTtaLnZhbHVlKz10aGlzLnNsaWNlU2VyaWFsaXplKEspLFoucG9zaXRpb24uZW5kPW00KEsuZW5kKX1mdW5jdGlvbiBfKEspe2xldCBaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07aWYodGhpcy5kYXRhLmF0SGFyZEJyZWFrKXtsZXQgSj1aLmNoaWxkcmVuW1ouY2hpbGRyZW4ubGVuZ3RoLTFdO0oucG9zaXRpb24uZW5kPW00KEsuZW5kKSx0aGlzLmRhdGEuYXRIYXJkQnJlYWs9dm9pZCAwO3JldHVybn0hdGhpcy5kYXRhLnNldGV4dEhlYWRpbmdTbHVycExpbmVFbmRpbmcmJnQuY2FuQ29udGFpbkVvbHMuaW5jbHVkZXMoWi50eXBlKSYmKE4uY2FsbCh0aGlzLEspLFIuY2FsbCh0aGlzLEspKX1mdW5jdGlvbiBTKCl7dGhpcy5kYXRhLmF0SGFyZEJyZWFrPSEwfWZ1bmN0aW9uICQoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnZhbHVlPUt9ZnVuY3Rpb24gVCgpe2xldCBLPXRoaXMucmVzdW1lKCksWj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO1oudmFsdWU9S31mdW5jdGlvbiBFKCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi52YWx1ZT1LfWZ1bmN0aW9uIHEoKXtsZXQgSz10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZSl7bGV0IFo9dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGV8fCJzaG9ydGN1dCI7Sy50eXBlKz0iUmVmZXJlbmNlIixLLnJlZmVyZW5jZVR5cGU9WixkZWxldGUgSy51cmwsZGVsZXRlIEsudGl0bGV9ZWxzZSBkZWxldGUgSy5pZGVudGlmaWVyLGRlbGV0ZSBLLmxhYmVsO3RoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPXZvaWQgMH1mdW5jdGlvbiBCKCl7bGV0IEs9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtpZih0aGlzLmRhdGEuaW5SZWZlcmVuY2Upe2xldCBaPXRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlfHwic2hvcnRjdXQiO0sudHlwZSs9IlJlZmVyZW5jZSIsSy5yZWZlcmVuY2VUeXBlPVosZGVsZXRlIEsudXJsLGRlbGV0ZSBLLnRpdGxlfWVsc2UgZGVsZXRlIEsuaWRlbnRpZmllcixkZWxldGUgSy5sYWJlbDt0aGlzLmRhdGEucmVmZXJlbmNlVHlwZT12b2lkIDB9ZnVuY3Rpb24gRyhLKXtsZXQgWj10aGlzLnNsaWNlU2VyaWFsaXplKEspLEo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0yXTtKLmxhYmVsPUVfKFopLEouaWRlbnRpZmllcj1QMShaKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGVlKCl7bGV0IEs9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXSxaPXRoaXMucmVzdW1lKCksSj10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO2lmKHRoaXMuZGF0YS5pblJlZmVyZW5jZT0hMCxKLnR5cGU9PT0ibGluayIpe2xldCBtZT1LLmNoaWxkcmVuO0ouY2hpbGRyZW49bWV9ZWxzZSBKLmFsdD1afWZ1bmN0aW9uIFAoKXtsZXQgSz10aGlzLnJlc3VtZSgpLFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD1LfWZ1bmN0aW9uIGdlKCl7bGV0IEs9dGhpcy5yZXN1bWUoKSxaPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Wi50aXRsZT1LfWZ1bmN0aW9uIHdlKCl7dGhpcy5kYXRhLmluUmVmZXJlbmNlPXZvaWQgMH1mdW5jdGlvbiBJKCl7dGhpcy5kYXRhLnJlZmVyZW5jZVR5cGU9ImNvbGxhcHNlZCJ9ZnVuY3Rpb24gbmUoSyl7bGV0IFo9dGhpcy5yZXN1bWUoKSxKPXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07Si5sYWJlbD1aLEouaWRlbnRpZmllcj1QMSh0aGlzLnNsaWNlU2VyaWFsaXplKEspKS50b0xvd2VyQ2FzZSgpLHRoaXMuZGF0YS5yZWZlcmVuY2VUeXBlPSJmdWxsIn1mdW5jdGlvbiBrZShLKXt0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT1LLnR5cGV9ZnVuY3Rpb24gWShLKXtsZXQgWj10aGlzLnNsaWNlU2VyaWFsaXplKEspLEo9dGhpcy5kYXRhLmNoYXJhY3RlclJlZmVyZW5jZVR5cGUsbWU7Sj8obWU9ZHAoWixKPT09ImNoYXJhY3RlclJlZmVyZW5jZU1hcmtlck51bWVyaWMiPzEwOjE2KSx0aGlzLmRhdGEuY2hhcmFjdGVyUmVmZXJlbmNlVHlwZT12b2lkIDApOm1lPWg0KFopO2xldCBFZT10aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLTFdO0VlLnZhbHVlKz1tZX1mdW5jdGlvbiBBKEspe2xldCBaPXRoaXMuc3RhY2sucG9wKCk7Wi5wb3NpdGlvbi5lbmQ9bTQoSy5lbmQpfWZ1bmN0aW9uIEwoSyl7Ui5jYWxsKHRoaXMsSyk7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD10aGlzLnNsaWNlU2VyaWFsaXplKEspfWZ1bmN0aW9uIFUoSyl7Ui5jYWxsKHRoaXMsSyk7bGV0IFo9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTtaLnVybD0ibWFpbHRvOiIrdGhpcy5zbGljZVNlcmlhbGl6ZShLKX1mdW5jdGlvbiBWKCl7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBYKCl7cmV0dXJue3R5cGU6ImNvZGUiLGxhbmc6bnVsbCxtZXRhOm51bGwsdmFsdWU6IiJ9fWZ1bmN0aW9uIGRlKCl7cmV0dXJue3R5cGU6ImlubGluZUNvZGUiLHZhbHVlOiIifX1mdW5jdGlvbiB2ZSgpe3JldHVybnt0eXBlOiJkZWZpbml0aW9uIixpZGVudGlmaWVyOiIiLGxhYmVsOm51bGwsdGl0bGU6bnVsbCx1cmw6IiJ9fWZ1bmN0aW9uIExlKCl7cmV0dXJue3R5cGU6ImVtcGhhc2lzIixjaGlsZHJlbjpbXX19ZnVuY3Rpb24gVygpe3JldHVybnt0eXBlOiJoZWFkaW5nIixkZXB0aDowLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBIKCl7cmV0dXJue3R5cGU6ImJyZWFrIn19ZnVuY3Rpb24gdGUoKXtyZXR1cm57dHlwZToiaHRtbCIsdmFsdWU6IiJ9fWZ1bmN0aW9uIGJlKCl7cmV0dXJue3R5cGU6ImltYWdlIix0aXRsZTpudWxsLHVybDoiIixhbHQ6bnVsbH19ZnVuY3Rpb24gdWUoKXtyZXR1cm57dHlwZToibGluayIsdGl0bGU6bnVsbCx1cmw6IiIsY2hpbGRyZW46W119fWZ1bmN0aW9uIENlKEspe3JldHVybnt0eXBlOiJsaXN0IixvcmRlcmVkOksudHlwZT09PSJsaXN0T3JkZXJlZCIsc3RhcnQ6bnVsbCxzcHJlYWQ6Sy5fc3ByZWFkLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBoZShLKXtyZXR1cm57dHlwZToibGlzdEl0ZW0iLHNwcmVhZDpLLl9zcHJlYWQsY2hlY2tlZDpudWxsLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBpZSgpe3JldHVybnt0eXBlOiJwYXJhZ3JhcGgiLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBTZSgpe3JldHVybnt0eXBlOiJzdHJvbmciLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBJZSgpe3JldHVybnt0eXBlOiJ0ZXh0Iix2YWx1ZToiIn19ZnVuY3Rpb24gWmUoKXtyZXR1cm57dHlwZToidGhlbWF0aWNCcmVhayJ9fX1mdW5jdGlvbiBtNChlKXtyZXR1cm57bGluZTplLmxpbmUsY29sdW1uOmUuY29sdW1uLG9mZnNldDplLm9mZnNldH19ZnVuY3Rpb24gblhlKGUsdCl7bGV0IHI9LTE7Zm9yKDsrK3I8dC5sZW5ndGg7KXtsZXQgaT10W3JdO0FycmF5LmlzQXJyYXkoaSk/blhlKGUsaSk6enFyKGUsaSl9fWZ1bmN0aW9uIHpxcihlLHQpe2xldCByO2ZvcihyIGluIHQpaWYoYVhlLmNhbGwodCxyKSlzd2l0Y2gocil7Y2FzZSJjYW5Db250YWluRW9scyI6e2xldCBpPXRbcl07aSYmZVtyXS5wdXNoKC4uLmkpO2JyZWFrfWNhc2UidHJhbnNmb3JtcyI6e2xldCBpPXRbcl07aSYmZVtyXS5wdXNoKC4uLmkpO2JyZWFrfWNhc2UiZW50ZXIiOmNhc2UiZXhpdCI6e2xldCBpPXRbcl07aSYmT2JqZWN0LmFzc2lnbihlW3JdLGkpO2JyZWFrfX19ZnVuY3Rpb24gb1hlKGUsdCl7dGhyb3cgZT9uZXcgRXJyb3IoIkNhbm5vdCBjbG9zZSBgIitlLnR5cGUrImAgKCIrZDQoe3N0YXJ0OmUuc3RhcnQsZW5kOmUuZW5kfSkrIik6IGEgZGlmZmVyZW50IHRva2VuIChgIit0LnR5cGUrImAsICIrZDQoe3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSkrIikgaXMgb3BlbiIpOm5ldyBFcnJvcigiQ2Fubm90IGNsb3NlIGRvY3VtZW50LCBhIHRva2VuIChgIit0LnR5cGUrImAsICIrZDQoe3N0YXJ0OnQuc3RhcnQsZW5kOnQuZW5kfSkrIikgaXMgc3RpbGwgb3BlbiIpfXZhciBhWGUsc1hlPXAoKCk9PntUXygpO2lYZSgpO0RfKCk7aHRlKCk7cDQoKTtQOSgpO1RlZSgpO2FYZT17fS5oYXNPd25Qcm9wZXJ0eX0pO3ZhciBsWGU9cCgoKT0+e3NYZSgpfSk7ZnVuY3Rpb24gaHAoZSl7bGV0IHQ9dGhpczt0LnBhcnNlcj1yO2Z1bmN0aW9uIHIoaSl7cmV0dXJuIGRyZShpLHsuLi50LmRhdGEoInNldHRpbmdzIiksLi4uZSxleHRlbnNpb25zOnQuZGF0YSgibWljcm9tYXJrRXh0ZW5zaW9ucyIpfHxbXSxtZGFzdEV4dGVuc2lvbnM6dC5kYXRhKCJmcm9tTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9fXZhciBjWGU9cCgoKT0+e2xYZSgpfSk7dmFyIGRYZT1wKCgpPT57Y1hlKCl9KTt2YXIgdVhlPWplKChxcWksdXJlKT0+eyhmdW5jdGlvbigpe3ZhciBlO3R5cGVvZiB1cmU8InUiP2U9dXJlLmV4cG9ydHM9aTplPShmdW5jdGlvbigpe3JldHVybiB0aGlzfHwoMCxldmFsKSgidGhpcyIpfSkoKSxlLmZvcm1hdD1pLGUudnNwcmludGY9cix0eXBlb2YgY29uc29sZTwidSImJnR5cGVvZiBjb25zb2xlLmxvZz09ImZ1bmN0aW9uIiYmKGUucHJpbnRmPXQpO2Z1bmN0aW9uIHQoKXtjb25zb2xlLmxvZyhpLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9ZnVuY3Rpb24gcihhLG4pe3JldHVybiBpLmFwcGx5KG51bGwsW2FdLmNvbmNhdChuKSl9ZnVuY3Rpb24gaShhKXtmb3IodmFyIG49MSxvPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSxzPTAsbD1hLmxlbmd0aCxjPSIiLHUsZD0hMSxoLGYseD0hMSx2LGI9ZnVuY3Rpb24oKXtyZXR1cm4gb1tuKytdfSx5PWZ1bmN0aW9uKCl7Zm9yKHZhciB3PSIiOy9cZC8udGVzdChhW3NdKTspdys9YVtzKytdLHU9YVtzXTtyZXR1cm4gdy5sZW5ndGg+MD9wYXJzZUludCh3KTpudWxsfTtzPGw7KytzKWlmKHU9YVtzXSxkKXN3aXRjaChkPSExLHU9PSIuIj8oeD0hMSx1PWFbKytzXSk6dT09IjAiJiZhW3MrMV09PSIuIj8oeD0hMCxzKz0yLHU9YVtzXSk6eD0hMCx2PXkoKSx1KXtjYXNlImIiOmMrPXBhcnNlSW50KGIoKSwxMCkudG9TdHJpbmcoMik7YnJlYWs7Y2FzZSJjIjpoPWIoKSx0eXBlb2YgaD09InN0cmluZyJ8fGggaW5zdGFuY2VvZiBTdHJpbmc/Yys9aDpjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGgsMTApKTticmVhaztjYXNlImQiOmMrPXBhcnNlSW50KGIoKSwxMCk7YnJlYWs7Y2FzZSJmIjpmPVN0cmluZyhwYXJzZUZsb2F0KGIoKSkudG9GaXhlZCh2fHw2KSksYys9eD9mOmYucmVwbGFjZSgvXjAvLCIiKTticmVhaztjYXNlImoiOmMrPUpTT04uc3RyaW5naWZ5KGIoKSk7YnJlYWs7Y2FzZSJvIjpjKz0iMCIrcGFyc2VJbnQoYigpLDEwKS50b1N0cmluZyg4KTticmVhaztjYXNlInMiOmMrPWIoKTticmVhaztjYXNlIngiOmMrPSIweCIrcGFyc2VJbnQoYigpLDEwKS50b1N0cmluZygxNik7YnJlYWs7Y2FzZSJYIjpjKz0iMHgiK3BhcnNlSW50KGIoKSwxMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7YnJlYWs7ZGVmYXVsdDpjKz11O2JyZWFrfWVsc2UgdT09PSIlIj9kPSEwOmMrPXU7cmV0dXJuIGN9fSkoKX0pO2Z1bmN0aW9uIGhkKGUpe3JldHVybiB0LmRpc3BsYXlOYW1lPWUuZGlzcGxheU5hbWV8fGUubmFtZSx0O2Z1bmN0aW9uIHQociwuLi5pKXtsZXQgYT1yJiYoMCxwWGUuZGVmYXVsdCkociwuLi5pKTtyZXR1cm4gbmV3IGUoYSl9fXZhciBwWGUsVTksaFhlPXAoKCk9PntwWGU9ZXIodVhlKCksMSksVTk9T2JqZWN0LmFzc2lnbihoZChFcnJvcikse2V2YWw6aGQoRXZhbEVycm9yKSxyYW5nZTpoZChSYW5nZUVycm9yKSxyZWZlcmVuY2U6aGQoUmVmZXJlbmNlRXJyb3IpLHN5bnRheDpoZChTeW50YXhFcnJvciksdHlwZTpoZChUeXBlRXJyb3IpLHVyaTpoZChVUklFcnJvcil9KX0pO2Z1bmN0aW9uIGZwKGUpe2xldCB0PVtdLHI9LTEsaT1BcnJheS5pc0FycmF5KGUpP2U6ZT9bZV06WyJ5YW1sIl07Zm9yKDsrK3I8aS5sZW5ndGg7KXRbcl09Q3FyKGlbcl0pO3JldHVybiB0fWZ1bmN0aW9uIENxcihlKXtsZXQgdD1lO2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYoIUpfLmNhbGwoZlhlLHQpKXRocm93IFU5KCJNaXNzaW5nIG1hdHRlciBkZWZpbml0aW9uIGZvciBgJXNgIix0KTt0PXt0eXBlOnQsbWFya2VyOmZYZVt0XX19ZWxzZSBpZih0eXBlb2YgdCE9Im9iamVjdCIpdGhyb3cgVTkoIkV4cGVjdGVkIG1hdHRlciB0byBiZSBhbiBvYmplY3QsIG5vdCBgJWpgIix0KTtpZighSl8uY2FsbCh0LCJ0eXBlIikpdGhyb3cgVTkoIk1pc3NpbmcgYHR5cGVgIGluIG1hdHRlciBgJWpgIix0KTtpZighSl8uY2FsbCh0LCJmZW5jZSIpJiYhSl8uY2FsbCh0LCJtYXJrZXIiKSl0aHJvdyBVOSgiTWlzc2luZyBgbWFya2VyYCBvciBgZmVuY2VgIGluIG1hdHRlciBgJWpgIix0KTtyZXR1cm4gdH12YXIgSl8sZlhlLHByZT1wKCgpPT57aFhlKCk7Sl89e30uaGFzT3duUHJvcGVydHksZlhlPXt5YW1sOiItIix0b21sOiIrIn19KTtmdW5jdGlvbiBmcmUoZSl7bGV0IHQ9ZnAoZSkscj17fSxpPS0xO2Zvcig7KytpPHQubGVuZ3RoOyl7bGV0IGE9dFtpXSxuPWhyZShhLCJvcGVuIikuY2hhckNvZGVBdCgwKSxvPVRxcihhKSxzPXJbbl07QXJyYXkuaXNBcnJheShzKT9zLnB1c2gobyk6cltuXT1bb119cmV0dXJue2Zsb3c6cn19ZnVuY3Rpb24gVHFyKGUpe2xldCB0PWUuYW55d2hlcmUscj1lLnR5cGUsaT1yKyJGZW5jZSIsYT1pKyJTZXF1ZW5jZSIsbj1yKyJWYWx1ZSIsbz17dG9rZW5pemU6dSxwYXJ0aWFsOiEwfSxzLGw9MDtyZXR1cm57dG9rZW5pemU6Yyxjb25jcmV0ZTohMH07ZnVuY3Rpb24gYyhkLGgsZil7bGV0IHg9dGhpcztyZXR1cm4gdjtmdW5jdGlvbiB2KEYpe2xldCBEPXgubm93KCk7cmV0dXJuIEQuY29sdW1uPT09MSYmKEQubGluZT09PTF8fHQpJiYocz1ocmUoZSwib3BlbiIpLGw9MCxGPT09cy5jaGFyQ29kZUF0KGwpKT8oZC5lbnRlcihyKSxkLmVudGVyKGkpLGQuZW50ZXIoYSksYihGKSk6ZihGKX1mdW5jdGlvbiBiKEYpe3JldHVybiBsPT09cy5sZW5ndGg/KGQuZXhpdChhKSxjdChGKT8oZC5lbnRlcigid2hpdGVzcGFjZSIpLHkoRikpOncoRikpOkY9PT1zLmNoYXJDb2RlQXQobCsrKT8oZC5jb25zdW1lKEYpLGIpOmYoRil9ZnVuY3Rpb24geShGKXtyZXR1cm4gY3QoRik/KGQuY29uc3VtZShGKSx5KTooZC5leGl0KCJ3aGl0ZXNwYWNlIiksdyhGKSl9ZnVuY3Rpb24gdyhGKXtyZXR1cm4gR2UoRik/KGQuZXhpdChpKSxkLmVudGVyKCJsaW5lRW5kaW5nIiksZC5jb25zdW1lKEYpLGQuZXhpdCgibGluZUVuZGluZyIpLHM9aHJlKGUsImNsb3NlIiksbD0wLGQuYXR0ZW1wdChvLE0saykpOmYoRil9ZnVuY3Rpb24gayhGKXtyZXR1cm4gRj09PW51bGx8fEdlKEYpP3ooRik6KGQuZW50ZXIobiksTyhGKSl9ZnVuY3Rpb24gTyhGKXtyZXR1cm4gRj09PW51bGx8fEdlKEYpPyhkLmV4aXQobikseihGKSk6KGQuY29uc3VtZShGKSxPKX1mdW5jdGlvbiB6KEYpe3JldHVybiBGPT09bnVsbD9mKEYpOihkLmVudGVyKCJsaW5lRW5kaW5nIiksZC5jb25zdW1lKEYpLGQuZXhpdCgibGluZUVuZGluZyIpLGQuYXR0ZW1wdChvLE0saykpfWZ1bmN0aW9uIE0oRil7cmV0dXJuIGQuZXhpdChyKSxoKEYpfX1mdW5jdGlvbiB1KGQsaCxmKXtsZXQgeD0wO3JldHVybiB2O2Z1bmN0aW9uIHYoayl7cmV0dXJuIGs9PT1zLmNoYXJDb2RlQXQoeCk/KGQuZW50ZXIoaSksZC5lbnRlcihhKSxiKGspKTpmKGspfWZ1bmN0aW9uIGIoayl7cmV0dXJuIHg9PT1zLmxlbmd0aD8oZC5leGl0KGEpLGN0KGspPyhkLmVudGVyKCJ3aGl0ZXNwYWNlIikseShrKSk6dyhrKSk6az09PXMuY2hhckNvZGVBdCh4KyspPyhkLmNvbnN1bWUoayksYik6ZihrKX1mdW5jdGlvbiB5KGspe3JldHVybiBjdChrKT8oZC5jb25zdW1lKGspLHkpOihkLmV4aXQoIndoaXRlc3BhY2UiKSx3KGspKX1mdW5jdGlvbiB3KGspe3JldHVybiBrPT09bnVsbHx8R2Uoayk/KGQuZXhpdChpKSxoKGspKTpmKGspfX19ZnVuY3Rpb24gaHJlKGUsdCl7cmV0dXJuIGUubWFya2VyP21YZShlLm1hcmtlcix0KS5yZXBlYXQoMyk6bVhlKGUuZmVuY2UsdCl9ZnVuY3Rpb24gbVhlKGUsdCl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9lOmVbdF19dmFyIGdYZT1wKCgpPT57cnIoKTtwcmUoKX0pO3ZhciBiWGU9cCgoKT0+e30pO3ZhciBtcmU9cCgoKT0+e2dYZSgpO2JYZSgpO3ByZSgpfSk7ZnVuY3Rpb24gYnJlKGUpe2xldCB0PWZwKGUpLHI9e30saT17fSxhPS0xO2Zvcig7KythPHQubGVuZ3RoOyl7bGV0IG49dFthXTtyW24udHlwZV09X3FyKG4pLGlbbi50eXBlXT1McXIsaVtuLnR5cGUrIlZhbHVlIl09QXFyfXJldHVybntlbnRlcjpyLGV4aXQ6aX19ZnVuY3Rpb24gX3FyKGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocil7dGhpcy5lbnRlcih7dHlwZTplLnR5cGUsdmFsdWU6IiJ9LHIpLHRoaXMuYnVmZmVyKCl9fWZ1bmN0aW9uIExxcihlKXtsZXQgdD10aGlzLnJlc3VtZSgpLHI9dGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXTsidmFsdWUiaW4gcix0aGlzLmV4aXQoZSksci52YWx1ZT10LnJlcGxhY2UoL14oXHI/XG58XHIpfChccj9cbnxccikkL2csIiIpfWZ1bmN0aW9uIEFxcihlKXt0aGlzLmNvbmZpZy5lbnRlci5kYXRhLmNhbGwodGhpcyxlKSx0aGlzLmNvbmZpZy5leGl0LmRhdGEuY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIHZyZShlKXtsZXQgdD1bXSxyPXt9LGk9ZnAoZSksYT0tMTtmb3IoOysrYTxpLmxlbmd0aDspe2xldCBuPWlbYV07cltuLnR5cGVdPURxcihuKTtsZXQgbz1ncmUobiwib3BlbiIpO3QucHVzaCh7YXRCcmVhazohMCxjaGFyYWN0ZXI6by5jaGFyQXQoMCksYWZ0ZXI6VDYoby5jaGFyQXQoMSkpfSl9cmV0dXJue3Vuc2FmZTp0LGhhbmRsZXJzOnJ9fWZ1bmN0aW9uIERxcihlKXtsZXQgdD1ncmUoZSwib3BlbiIpLHI9Z3JlKGUsImNsb3NlIik7cmV0dXJuIGk7ZnVuY3Rpb24gaShhKXtyZXR1cm4gdCsoYS52YWx1ZT9gCmArYS52YWx1ZToiIikrYApgK3J9fWZ1bmN0aW9uIGdyZShlLHQpe3JldHVybiBlLm1hcmtlcj92WGUoZS5tYXJrZXIsdCkucmVwZWF0KDMpOnZYZShlLmZlbmNlLHQpfWZ1bmN0aW9uIHZYZShlLHQpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/ZTplW3RdfXZhciB4WGU9cCgoKT0+e2M0KCk7bXJlKCk7dnooKX0pO3ZhciB5WGU9cCgoKT0+e3hYZSgpfSk7ZnVuY3Rpb24gbXAoZSl7bGV0IHQ9dGhpcyxyPWV8fEVxcixpPXQuZGF0YSgpLGE9aS5taWNyb21hcmtFeHRlbnNpb25zfHwoaS5taWNyb21hcmtFeHRlbnNpb25zPVtdKSxuPWkuZnJvbU1hcmtkb3duRXh0ZW5zaW9uc3x8KGkuZnJvbU1hcmtkb3duRXh0ZW5zaW9ucz1bXSksbz1pLnRvTWFya2Rvd25FeHRlbnNpb25zfHwoaS50b01hcmtkb3duRXh0ZW5zaW9ucz1bXSk7YS5wdXNoKGZyZShyKSksbi5wdXNoKGJyZShyKSksby5wdXNoKHZyZShyKSl9dmFyIEVxcix3WGU9cCgoKT0+e3lYZSgpO21yZSgpO0Vxcj0ieWFtbCJ9KTt2YXIgTVhlPXAoKCk9Pnt3WGUoKX0pO3ZhciB4cmU9cCgoKT0+e30pO3ZhciBrWGUsJHFyLGlMLFNYZT1wKCgpPT57eHJlKCk7a1hlPXR5cGVvZiBzZWxmPT0ib2JqZWN0Ij9zZWxmOmdsb2JhbFRoaXMsJHFyPShlLHQpPT57bGV0IHI9KGEsbik9PihlLnNldChuLGEpLGEpLGk9YT0+e2lmKGUuaGFzKGEpKXJldHVybiBlLmdldChhKTtsZXRbbixvXT10W2FdO3N3aXRjaChuKXtjYXNlIDA6Y2FzZS0xOnJldHVybiByKG8sYSk7Y2FzZSAxOntsZXQgcz1yKFtdLGEpO2ZvcihsZXQgbCBvZiBvKXMucHVzaChpKGwpKTtyZXR1cm4gc31jYXNlIDI6e2xldCBzPXIoe30sYSk7Zm9yKGxldFtsLGNdb2YgbylzW2kobCldPWkoYyk7cmV0dXJuIHN9Y2FzZSAzOnJldHVybiByKG5ldyBEYXRlKG8pLGEpO2Nhc2UgNDp7bGV0e3NvdXJjZTpzLGZsYWdzOmx9PW87cmV0dXJuIHIobmV3IFJlZ0V4cChzLGwpLGEpfWNhc2UgNTp7bGV0IHM9cihuZXcgTWFwLGEpO2ZvcihsZXRbbCxjXW9mIG8pcy5zZXQoaShsKSxpKGMpKTtyZXR1cm4gc31jYXNlIDY6e2xldCBzPXIobmV3IFNldCxhKTtmb3IobGV0IGwgb2YgbylzLmFkZChpKGwpKTtyZXR1cm4gc31jYXNlIDc6e2xldHtuYW1lOnMsbWVzc2FnZTpsfT1vO3JldHVybiByKG5ldyBrWGVbc10obCksYSl9Y2FzZSA4OnJldHVybiByKEJpZ0ludChvKSxhKTtjYXNlIkJpZ0ludCI6cmV0dXJuIHIoT2JqZWN0KEJpZ0ludChvKSksYSk7Y2FzZSJBcnJheUJ1ZmZlciI6cmV0dXJuIHIobmV3IFVpbnQ4QXJyYXkobykuYnVmZmVyLG8pO2Nhc2UiRGF0YVZpZXciOntsZXR7YnVmZmVyOnN9PW5ldyBVaW50OEFycmF5KG8pO3JldHVybiByKG5ldyBEYXRhVmlldyhzKSxvKX19cmV0dXJuIHIobmV3IGtYZVtuXShvKSxhKX07cmV0dXJuIGl9LGlMPWU9PiRxcihuZXcgTWFwLGUpKDApfSk7dmFyIGJwLElxcixQcXIsWTksYUwsTnFyLG5MLHpYZT1wKCgpPT57eHJlKCk7YnA9IiIse3RvU3RyaW5nOklxcn09e30se2tleXM6UHFyfT1PYmplY3QsWTk9ZT0+e2xldCB0PXR5cGVvZiBlO2lmKHQhPT0ib2JqZWN0Inx8IWUpcmV0dXJuWzAsdF07bGV0IHI9SXFyLmNhbGwoZSkuc2xpY2UoOCwtMSk7c3dpdGNoKHIpe2Nhc2UiQXJyYXkiOnJldHVyblsxLGJwXTtjYXNlIk9iamVjdCI6cmV0dXJuWzIsYnBdO2Nhc2UiRGF0ZSI6cmV0dXJuWzMsYnBdO2Nhc2UiUmVnRXhwIjpyZXR1cm5bNCxicF07Y2FzZSJNYXAiOnJldHVybls1LGJwXTtjYXNlIlNldCI6cmV0dXJuWzYsYnBdO2Nhc2UiRGF0YVZpZXciOnJldHVyblsxLHJdfXJldHVybiByLmluY2x1ZGVzKCJBcnJheSIpP1sxLHJdOnIuaW5jbHVkZXMoIkVycm9yIik/Wzcscl06WzIscl19LGFMPShbZSx0XSk9PmU9PT0wJiYodD09PSJmdW5jdGlvbiJ8fHQ9PT0ic3ltYm9sIiksTnFyPShlLHQscixpKT0+e2xldCBhPShvLHMpPT57bGV0IGw9aS5wdXNoKG8pLTE7cmV0dXJuIHIuc2V0KHMsbCksbH0sbj1vPT57aWYoci5oYXMobykpcmV0dXJuIHIuZ2V0KG8pO2xldFtzLGxdPVk5KG8pO3N3aXRjaChzKXtjYXNlIDA6e2xldCB1PW87c3dpdGNoKGwpe2Nhc2UiYmlnaW50IjpzPTgsdT1vLnRvU3RyaW5nKCk7YnJlYWs7Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmlmKGUpdGhyb3cgbmV3IFR5cGVFcnJvcigidW5hYmxlIHRvIHNlcmlhbGl6ZSAiK2wpO3U9bnVsbDticmVhaztjYXNlInVuZGVmaW5lZCI6cmV0dXJuIGEoWy0xXSxvKX1yZXR1cm4gYShbcyx1XSxvKX1jYXNlIDE6e2lmKGwpe2xldCBoPW87cmV0dXJuIGw9PT0iRGF0YVZpZXciP2g9bmV3IFVpbnQ4QXJyYXkoby5idWZmZXIpOmw9PT0iQXJyYXlCdWZmZXIiJiYoaD1uZXcgVWludDhBcnJheShvKSksYShbbCxbLi4uaF1dLG8pfWxldCB1PVtdLGQ9YShbcyx1XSxvKTtmb3IobGV0IGggb2Ygbyl1LnB1c2gobihoKSk7cmV0dXJuIGR9Y2FzZSAyOntpZihsKXN3aXRjaChsKXtjYXNlIkJpZ0ludCI6cmV0dXJuIGEoW2wsby50b1N0cmluZygpXSxvKTtjYXNlIkJvb2xlYW4iOmNhc2UiTnVtYmVyIjpjYXNlIlN0cmluZyI6cmV0dXJuIGEoW2wsby52YWx1ZU9mKCldLG8pfWlmKHQmJiJ0b0pTT04iaW4gbylyZXR1cm4gbihvLnRvSlNPTigpKTtsZXQgdT1bXSxkPWEoW3MsdV0sbyk7Zm9yKGxldCBoIG9mIFBxcihvKSkoZXx8IWFMKFk5KG9baF0pKSkmJnUucHVzaChbbihoKSxuKG9baF0pXSk7cmV0dXJuIGR9Y2FzZSAzOnJldHVybiBhKFtzLG8udG9JU09TdHJpbmcoKV0sbyk7Y2FzZSA0OntsZXR7c291cmNlOnUsZmxhZ3M6ZH09bztyZXR1cm4gYShbcyx7c291cmNlOnUsZmxhZ3M6ZH1dLG8pfWNhc2UgNTp7bGV0IHU9W10sZD1hKFtzLHVdLG8pO2ZvcihsZXRbaCxmXW9mIG8pKGV8fCEoYUwoWTkoaCkpfHxhTChZOShmKSkpKSYmdS5wdXNoKFtuKGgpLG4oZildKTtyZXR1cm4gZH1jYXNlIDY6e2xldCB1PVtdLGQ9YShbcyx1XSxvKTtmb3IobGV0IGggb2YgbykoZXx8IWFMKFk5KGgpKSkmJnUucHVzaChuKGgpKTtyZXR1cm4gZH19bGV0e21lc3NhZ2U6Y309bztyZXR1cm4gYShbcyx7bmFtZTpsLG1lc3NhZ2U6Y31dLG8pfTtyZXR1cm4gbn0sbkw9KGUse2pzb246dCxsb3NzeTpyfT17fSk9PntsZXQgaT1bXTtyZXR1cm4gTnFyKCEodHx8ciksISF0LG5ldyBNYXAsaSkoZSksaX19KTt2YXIgZzQsb0w9cCgoKT0+e1NYZSgpO3pYZSgpO2c0PXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU9PSJmdW5jdGlvbiI/KGUsdCk9PnQmJigianNvbiJpbiB0fHwibG9zc3kiaW4gdCk/aUwobkwoZSx0KSk6c3RydWN0dXJlZENsb25lKGUpOihlLHQpPT5pTChuTChlLHQpKX0pO2Z1bmN0aW9uIENYZShlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KHIpe2xldCBpPXImJnIucG9zaXRpb24mJnIucG9zaXRpb25bZV18fHt9O2lmKHR5cGVvZiBpLmxpbmU9PSJudW1iZXIiJiZpLmxpbmU+MCYmdHlwZW9mIGkuY29sdW1uPT0ibnVtYmVyIiYmaS5jb2x1bW4+MClyZXR1cm57bGluZTppLmxpbmUsY29sdW1uOmkuY29sdW1uLG9mZnNldDp0eXBlb2YgaS5vZmZzZXQ9PSJudW1iZXIiJiZpLm9mZnNldD4tMT9pLm9mZnNldDp2b2lkIDB9fX1mdW5jdGlvbiBaOShlKXtsZXQgdD1sTChlKSxyPXNMKGUpO2lmKHQmJnIpcmV0dXJue3N0YXJ0OnQsZW5kOnJ9fXZhciBzTCxsTCxUWGU9cCgoKT0+e3NMPUNYZSgiZW5kIiksbEw9Q1hlKCJzdGFydCIpfSk7dmFyIGNMPXAoKCk9PntUWGUoKX0pO3ZhciBmZCxkTCxrcmU9cCgoKT0+e2ZkPVsiYXJpYURlc2NyaWJlZEJ5IiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiXSxkTD17YW5jZXN0b3JzOnt0Ym9keTpbInRhYmxlIl0sdGQ6WyJ0YWJsZSJdLHRoOlsidGFibGUiXSx0aGVhZDpbInRhYmxlIl0sdGZvb3Q6WyJ0YWJsZSJdLHRyOlsidGFibGUiXX0sYXR0cmlidXRlczp7YTpbLi4uZmQsImRhdGFGb290bm90ZUJhY2tyZWYiLCJkYXRhRm9vdG5vdGVSZWYiLFsiY2xhc3NOYW1lIiwiZGF0YS1mb290bm90ZS1iYWNrcmVmIl0sImhyZWYiXSxibG9ja3F1b3RlOlsiY2l0ZSJdLGNvZGU6W1siY2xhc3NOYW1lIiwvXmxhbmd1YWdlLS4vXV0sZGVsOlsiY2l0ZSJdLGRpdjpbIml0ZW1TY29wZSIsIml0ZW1UeXBlIl0sZGw6Wy4uLmZkXSxoMjpbWyJjbGFzc05hbWUiLCJzci1vbmx5Il1dLGltZzpbLi4uZmQsImxvbmdEZXNjIiwic3JjIl0saW5wdXQ6W1siZGlzYWJsZWQiLCEwXSxbInR5cGUiLCJjaGVja2JveCJdXSxpbnM6WyJjaXRlIl0sbGk6W1siY2xhc3NOYW1lIiwidGFzay1saXN0LWl0ZW0iXV0sb2w6Wy4uLmZkLFsiY2xhc3NOYW1lIiwiY29udGFpbnMtdGFzay1saXN0Il1dLHE6WyJjaXRlIl0sc2VjdGlvbjpbImRhdGFGb290bm90ZXMiLFsiY2xhc3NOYW1lIiwiZm9vdG5vdGVzIl1dLHNvdXJjZTpbInNyY1NldCJdLHN1bW1hcnk6Wy4uLmZkXSx0YWJsZTpbLi4uZmRdLHVsOlsuLi5mZCxbImNsYXNzTmFtZSIsImNvbnRhaW5zLXRhc2stbGlzdCJdXSwiKiI6WyJhYmJyIiwiYWNjZXB0IiwiYWNjZXB0Q2hhcnNldCIsImFjY2Vzc0tleSIsImFjdGlvbiIsImFsaWduIiwiYWx0IiwiYXhpcyIsImJvcmRlciIsImNlbGxQYWRkaW5nIiwiY2VsbFNwYWNpbmciLCJjaGFyIiwiY2hhck9mZiIsImNoYXJTZXQiLCJjaGVja2VkIiwiY2xlYXIiLCJjb2xTcGFuIiwiY29sb3IiLCJjb2xzIiwiY29tcGFjdCIsImNvb3JkcyIsImRhdGVUaW1lIiwiZGlyIiwiZW5jVHlwZSIsImZyYW1lIiwiaFNwYWNlIiwiaGVhZGVycyIsImhlaWdodCIsImhyZWZMYW5nIiwiaHRtbEZvciIsImlkIiwiaXNNYXAiLCJpdGVtUHJvcCIsImxhYmVsIiwibGFuZyIsIm1heExlbmd0aCIsIm1lZGlhIiwibWV0aG9kIiwibXVsdGlwbGUiLCJuYW1lIiwibm9IcmVmIiwibm9TaGFkZSIsIm5vV3JhcCIsIm9wZW4iLCJwcm9tcHQiLCJyZWFkT25seSIsInJldiIsInJvd1NwYW4iLCJyb3dzIiwicnVsZXMiLCJzY29wZSIsInNlbGVjdGVkIiwic2hhcGUiLCJzaXplIiwic3BhbiIsInN0YXJ0Iiwic3VtbWFyeSIsInRhYkluZGV4IiwidGl0bGUiLCJ1c2VNYXAiLCJ2QWxpZ24iLCJ2YWx1ZSIsIndpZHRoIl19LGNsb2JiZXI6WyJhcmlhRGVzY3JpYmVkQnkiLCJhcmlhTGFiZWxsZWRCeSIsImlkIiwibmFtZSJdLGNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLHByb3RvY29sczp7Y2l0ZTpbImh0dHAiLCJodHRwcyJdLGhyZWY6WyJodHRwIiwiaHR0cHMiLCJpcmMiLCJpcmNzIiwibWFpbHRvIiwieG1wcCJdLGxvbmdEZXNjOlsiaHR0cCIsImh0dHBzIl0sc3JjOlsiaHR0cCIsImh0dHBzIl19LHJlcXVpcmVkOntpbnB1dDp7ZGlzYWJsZWQ6ITAsdHlwZToiY2hlY2tib3gifX0sc3RyaXA6WyJzY3JpcHQiXSx0YWdOYW1lczpbImEiLCJiIiwiYmxvY2txdW90ZSIsImJyIiwiY29kZSIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhyIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGkiLCJvbCIsInAiLCJwaWN0dXJlIiwicHJlIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNhbXAiLCJzZWN0aW9uIiwic291cmNlIiwic3BhbiIsInN0cmlrZSIsInN0cm9uZyIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0ciIsInR0IiwidWwiLCJ2YXIiXX19KTtmdW5jdGlvbiBTcmUoZSx0KXtsZXQgcj17dHlwZToicm9vdCIsY2hpbGRyZW46W119LGk9e3NjaGVtYTp0P3suLi5kTCwuLi50fTpkTCxzdGFjazpbXX0sYT1fWGUoaSxlKTtyZXR1cm4gYSYmKEFycmF5LmlzQXJyYXkoYSk/YS5sZW5ndGg9PT0xP3I9YVswXTpyLmNoaWxkcmVuPWE6cj1hKSxyfWZ1bmN0aW9uIF9YZShlLHQpe2lmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Iil7bGV0IHI9dDtzd2l0Y2godHlwZW9mIHIudHlwZT09InN0cmluZyI/ci50eXBlOiIiKXtjYXNlImNvbW1lbnQiOnJldHVybiBGcXIoZSxyKTtjYXNlImRvY3R5cGUiOnJldHVybiBPcXIoZSxyKTtjYXNlImVsZW1lbnQiOnJldHVybiBScXIoZSxyKTtjYXNlInJvb3QiOnJldHVybiBCcXIoZSxyKTtjYXNlInRleHQiOnJldHVybiBIcXIoZSxyKTtkZWZhdWx0On19fWZ1bmN0aW9uIEZxcihlLHQpe2lmKGUuc2NoZW1hLmFsbG93Q29tbWVudHMpe2xldCByPXR5cGVvZiB0LnZhbHVlPT0ic3RyaW5nIj90LnZhbHVlOiIiLGk9ci5pbmRleE9mKCItLT4iKSxuPXt0eXBlOiJjb21tZW50Iix2YWx1ZTppPDA/cjpyLnNsaWNlKDAsaSl9O3JldHVybiBYOShuLHQpLG59fWZ1bmN0aW9uIE9xcihlLHQpe2lmKGUuc2NoZW1hLmFsbG93RG9jdHlwZXMpe2xldCByPXt0eXBlOiJkb2N0eXBlIn07cmV0dXJuIFg5KHIsdCkscn19ZnVuY3Rpb24gUnFyKGUsdCl7bGV0IHI9dHlwZW9mIHQudGFnTmFtZT09InN0cmluZyI/dC50YWdOYW1lOiIiO2Uuc3RhY2sucHVzaChyKTtsZXQgaT1MWGUoZSx0LmNoaWxkcmVuKSxhPXFxcihlLHQucHJvcGVydGllcyk7ZS5zdGFjay5wb3AoKTtsZXQgbj0hMTtpZihyJiZyIT09IioiJiYoIWUuc2NoZW1hLnRhZ05hbWVzfHxlLnNjaGVtYS50YWdOYW1lcy5pbmNsdWRlcyhyKSkmJihuPSEwLGUuc2NoZW1hLmFuY2VzdG9ycyYmYjQuY2FsbChlLnNjaGVtYS5hbmNlc3RvcnMscikpKXtsZXQgcz1lLnNjaGVtYS5hbmNlc3RvcnNbcl0sbD0tMTtmb3Iobj0hMTsrK2w8cy5sZW5ndGg7KWUuc3RhY2suaW5jbHVkZXMoc1tsXSkmJihuPSEwKX1pZighbilyZXR1cm4gZS5zY2hlbWEuc3RyaXAmJiFlLnNjaGVtYS5zdHJpcC5pbmNsdWRlcyhyKT9pOnZvaWQgMDtsZXQgbz17dHlwZToiZWxlbWVudCIsdGFnTmFtZTpyLHByb3BlcnRpZXM6YSxjaGlsZHJlbjppfTtyZXR1cm4gWDkobyx0KSxvfWZ1bmN0aW9uIEJxcihlLHQpe2xldCBpPXt0eXBlOiJyb290IixjaGlsZHJlbjpMWGUoZSx0LmNoaWxkcmVuKX07cmV0dXJuIFg5KGksdCksaX1mdW5jdGlvbiBIcXIoZSx0KXtsZXQgaT17dHlwZToidGV4dCIsdmFsdWU6dHlwZW9mIHQudmFsdWU9PSJzdHJpbmciP3QudmFsdWU6IiJ9O3JldHVybiBYOShpLHQpLGl9ZnVuY3Rpb24gTFhlKGUsdCl7bGV0IHI9W107aWYoQXJyYXkuaXNBcnJheSh0KSl7bGV0IGk9dCxhPS0xO2Zvcig7KythPGkubGVuZ3RoOyl7bGV0IG49X1hlKGUsaVthXSk7biYmKEFycmF5LmlzQXJyYXkobik/ci5wdXNoKC4uLm4pOnIucHVzaChuKSl9fXJldHVybiByfWZ1bmN0aW9uIHFxcihlLHQpe2xldCByPWUuc3RhY2tbZS5zdGFjay5sZW5ndGgtMV0saT1lLnNjaGVtYS5hdHRyaWJ1dGVzLGE9ZS5zY2hlbWEucmVxdWlyZWQsbj1pJiZiNC5jYWxsKGkscik/aVtyXTp2b2lkIDAsbz1pJiZiNC5jYWxsKGksIioiKT9pWyIqIl06dm9pZCAwLHM9dCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6e30sbD17fSxjO2ZvcihjIGluIHMpaWYoYjQuY2FsbChzLGMpKXtsZXQgdT1zW2NdLGQ9QVhlKGUsRVhlKG4sYyksYyx1KTtkPT1udWxsJiYoZD1BWGUoZSxFWGUobyxjKSxjLHUpKSxkIT1udWxsJiYobFtjXT1kKX1pZihhJiZiNC5jYWxsKGEscikpe2xldCB1PWFbcl07Zm9yKGMgaW4gdSliNC5jYWxsKHUsYykmJiFiNC5jYWxsKGwsYykmJihsW2NdPXVbY10pfXJldHVybiBsfWZ1bmN0aW9uIEFYZShlLHQscixpKXtyZXR1cm4gdD9BcnJheS5pc0FycmF5KGkpP2pxcihlLHQscixpKTpEWGUoZSx0LHIsaSk6dm9pZCAwfWZ1bmN0aW9uIGpxcihlLHQscixpKXtsZXQgYT0tMSxuPVtdO2Zvcig7KythPGkubGVuZ3RoOyl7bGV0IG89RFhlKGUsdCxyLGlbYV0pOyh0eXBlb2Ygbz09Im51bWJlciJ8fHR5cGVvZiBvPT0ic3RyaW5nIikmJm4ucHVzaChvKX1yZXR1cm4gbn1mdW5jdGlvbiBEWGUoZSx0LHIsaSl7aWYoISh0eXBlb2YgaSE9ImJvb2xlYW4iJiZ0eXBlb2YgaSE9Im51bWJlciImJnR5cGVvZiBpIT0ic3RyaW5nIikmJlZxcihlLHIsaSkpe2lmKHR5cGVvZiB0PT0ib2JqZWN0IiYmdC5sZW5ndGg+MSl7bGV0IGE9ITEsbj0wO2Zvcig7KytuPHQubGVuZ3RoOyl7bGV0IG89dFtuXTtpZihvJiZ0eXBlb2Ygbz09Im9iamVjdCImJiJmbGFncyJpbiBvKXtpZihvLnRlc3QoU3RyaW5nKGkpKSl7YT0hMDticmVha319ZWxzZSBpZihvPT09aSl7YT0hMDticmVha319aWYoIWEpcmV0dXJufXJldHVybiBlLnNjaGVtYS5jbG9iYmVyJiZlLnNjaGVtYS5jbG9iYmVyUHJlZml4JiZlLnNjaGVtYS5jbG9iYmVyLmluY2x1ZGVzKHIpP2Uuc2NoZW1hLmNsb2JiZXJQcmVmaXgraTppfX1mdW5jdGlvbiBWcXIoZSx0LHIpe2xldCBpPWUuc2NoZW1hLnByb3RvY29scyYmYjQuY2FsbChlLnNjaGVtYS5wcm90b2NvbHMsdCk/ZS5zY2hlbWEucHJvdG9jb2xzW3RdOnZvaWQgMDtpZighaXx8aS5sZW5ndGg9PT0wKXJldHVybiEwO2xldCBhPVN0cmluZyhyKSxuPWEuaW5kZXhPZigiOiIpLG89YS5pbmRleE9mKCI/Iikscz1hLmluZGV4T2YoIiMiKSxsPWEuaW5kZXhPZigiLyIpO2lmKG48MHx8bD4tMSYmbj5sfHxvPi0xJiZuPm98fHM+LTEmJm4+cylyZXR1cm4hMDtsZXQgYz0tMTtmb3IoOysrYzxpLmxlbmd0aDspe2xldCB1PWlbY107aWYobj09PXUubGVuZ3RoJiZhLnNsaWNlKDAsdS5sZW5ndGgpPT09dSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBYOShlLHQpe2xldCByPVo5KHQpO3QuZGF0YSYmKGUuZGF0YT1nNCh0LmRhdGEpKSxyJiYoZS5wb3NpdGlvbj1yKX1mdW5jdGlvbiBFWGUoZSx0KXtsZXQgcixpPS0xO2lmKGUpZm9yKDsrK2k8ZS5sZW5ndGg7KXtsZXQgYT1lW2ldLG49dHlwZW9mIGE9PSJzdHJpbmciP2E6YVswXTtpZihuPT09dClyZXR1cm4gYTtuPT09ImRhdGEqIiYmKHI9YSl9aWYodC5sZW5ndGg+NCYmdC5zbGljZSgwLDQpLnRvTG93ZXJDYXNlKCk9PT0iZGF0YSIpcmV0dXJuIHJ9dmFyIGI0LCRYZT1wKCgpPT57b0woKTtjTCgpO2tyZSgpO2I0PXt9Lmhhc093blByb3BlcnR5fSk7dmFyIElYZT1wKCgpPT57JFhlKCk7a3JlKCl9KTtmdW5jdGlvbiBQWGUoZSx0KXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYmxvY2txdW90ZSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAoZS5hbGwodCksITApfTtyZXR1cm4gZS5wYXRjaCh0LHIpLGUuYXBwbHlEYXRhKHQscil9dmFyIE5YZT1wKCgpPT57fSk7ZnVuY3Rpb24gRlhlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImJyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaCh0LHIpLFtlLmFwcGx5RGF0YSh0LHIpLHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9XX12YXIgT1hlPXAoKCk9Pnt9KTtmdW5jdGlvbiBSWGUoZSx0KXtsZXQgcj10LnZhbHVlP3QudmFsdWUrYApgOiIiLGk9e30sYT10Lmxhbmc/dC5sYW5nLnNwbGl0KC9ccysvKTpbXTthLmxlbmd0aD4wJiYoaS5jbGFzc05hbWU9WyJsYW5ndWFnZS0iK2FbMF1dKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiY29kZSIscHJvcGVydGllczppLGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6cn1dfTtyZXR1cm4gdC5tZXRhJiYobi5kYXRhPXttZXRhOnQubWV0YX0pLGUucGF0Y2godCxuKSxuPWUuYXBwbHlEYXRhKHQsbiksbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicHJlIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltuXX0sZS5wYXRjaCh0LG4pLG59dmFyIEJYZT1wKCgpPT57fSk7ZnVuY3Rpb24gSFhlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImRlbCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBxWGU9cCgoKT0+e30pO2Z1bmN0aW9uIGpYZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJlbSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBWWGU9cCgoKT0+e30pO2Z1bmN0aW9uIFVYZShlLHQpe2xldCByPXR5cGVvZiBlLm9wdGlvbnMuY2xvYmJlclByZWZpeD09InN0cmluZyI/ZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg6InVzZXItY29udGVudC0iLGk9U3RyaW5nKHQuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxhPVduKGkudG9Mb3dlckNhc2UoKSksbj1lLmZvb3Rub3RlT3JkZXIuaW5kZXhPZihpKSxvLHM9ZS5mb290bm90ZUNvdW50cy5nZXQoaSk7cz09PXZvaWQgMD8ocz0wLGUuZm9vdG5vdGVPcmRlci5wdXNoKGkpLG89ZS5mb290bm90ZU9yZGVyLmxlbmd0aCk6bz1uKzEscys9MSxlLmZvb3Rub3RlQ291bnRzLnNldChpLHMpO2xldCBsPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIityKyJmbi0iK2EsaWQ6cisiZm5yZWYtIithKyhzPjE/Ii0iK3M6IiIpLGRhdGFGb290bm90ZVJlZjohMCxhcmlhRGVzY3JpYmVkQnk6WyJmb290bm90ZS1sYWJlbCJdfSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOlN0cmluZyhvKX1dfTtlLnBhdGNoKHQsbCk7bGV0IGM9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN1cCIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbbF19O3JldHVybiBlLnBhdGNoKHQsYyksZS5hcHBseURhdGEodCxjKX12YXIgV1hlPXAoKCk9PntZcygpfSk7ZnVuY3Rpb24gR1hlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImgiK3QuZGVwdGgscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBZWGU9cCgoKT0+e30pO2Z1bmN0aW9uIFpYZShlLHQpe2lmKGUub3B0aW9ucy5hbGxvd0Rhbmdlcm91c0h0bWwpe2xldCByPXt0eXBlOiJyYXciLHZhbHVlOnQudmFsdWV9O3JldHVybiBlLnBhdGNoKHQsciksZS5hcHBseURhdGEodCxyKX19dmFyIFhYZT1wKCgpPT57fSk7ZnVuY3Rpb24gdUwoZSx0KXtsZXQgcj10LnJlZmVyZW5jZVR5cGUsaT0iXSI7aWYocj09PSJjb2xsYXBzZWQiP2krPSJbXSI6cj09PSJmdWxsIiYmKGkrPSJbIisodC5sYWJlbHx8dC5pZGVudGlmaWVyKSsiXSIpLHQudHlwZT09PSJpbWFnZVJlZmVyZW5jZSIpcmV0dXJuW3t0eXBlOiJ0ZXh0Iix2YWx1ZToiIVsiK3QuYWx0K2l9XTtsZXQgYT1lLmFsbCh0KSxuPWFbMF07biYmbi50eXBlPT09InRleHQiP24udmFsdWU9IlsiK24udmFsdWU6YS51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix2YWx1ZToiWyJ9KTtsZXQgbz1hW2EubGVuZ3RoLTFdO3JldHVybiBvJiZvLnR5cGU9PT0idGV4dCI/by52YWx1ZSs9aTphLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOml9KSxhfXZhciB6cmU9cCgoKT0+e30pO2Z1bmN0aW9uIFFYZShlLHQpe2xldCByPVN0cmluZyh0LmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksaT1lLmRlZmluaXRpb25CeUlkLmdldChyKTtpZighaSlyZXR1cm4gdUwoZSx0KTtsZXQgYT17c3JjOlduKGkudXJsfHwiIiksYWx0OnQuYWx0fTtpLnRpdGxlIT09bnVsbCYmaS50aXRsZSE9PXZvaWQgMCYmKGEudGl0bGU9aS50aXRsZSk7bGV0IG49e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImltZyIscHJvcGVydGllczphLGNoaWxkcmVuOltdfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9dmFyIEpYZT1wKCgpPT57WXMoKTt6cmUoKX0pO2Z1bmN0aW9uIEtYZShlLHQpe2xldCByPXtzcmM6V24odC51cmwpfTt0LmFsdCE9PW51bGwmJnQuYWx0IT09dm9pZCAwJiYoci5hbHQ9dC5hbHQpLHQudGl0bGUhPT1udWxsJiZ0LnRpdGxlIT09dm9pZCAwJiYoci50aXRsZT10LnRpdGxlKTtsZXQgaT17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiaW1nIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46W119O3JldHVybiBlLnBhdGNoKHQsaSksZS5hcHBseURhdGEodCxpKX12YXIgZVFlPXAoKCk9PntZcygpfSk7ZnVuY3Rpb24gdFFlKGUsdCl7bGV0IHI9e3R5cGU6InRleHQiLHZhbHVlOnQudmFsdWUucmVwbGFjZSgvXHI/XG58XHIvZywiICIpfTtlLnBhdGNoKHQscik7bGV0IGk9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6ImNvZGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46W3JdfTtyZXR1cm4gZS5wYXRjaCh0LGkpLGUuYXBwbHlEYXRhKHQsaSl9dmFyIHJRZT1wKCgpPT57fSk7ZnVuY3Rpb24gaVFlKGUsdCl7bGV0IHI9U3RyaW5nKHQuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKSxpPWUuZGVmaW5pdGlvbkJ5SWQuZ2V0KHIpO2lmKCFpKXJldHVybiB1TChlLHQpO2xldCBhPXtocmVmOlduKGkudXJsfHwiIil9O2kudGl0bGUhPT1udWxsJiZpLnRpdGxlIT09dm9pZCAwJiYoYS50aXRsZT1pLnRpdGxlKTtsZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToiYSIscHJvcGVydGllczphLGNoaWxkcmVuOmUuYWxsKHQpfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9dmFyIGFRZT1wKCgpPT57WXMoKTt6cmUoKX0pO2Z1bmN0aW9uIG5RZShlLHQpe2xldCByPXtocmVmOlduKHQudXJsKX07dC50aXRsZSE9PW51bGwmJnQudGl0bGUhPT12b2lkIDAmJihyLnRpdGxlPXQudGl0bGUpO2xldCBpPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOnIsY2hpbGRyZW46ZS5hbGwodCl9O3JldHVybiBlLnBhdGNoKHQsaSksZS5hcHBseURhdGEodCxpKX12YXIgb1FlPXAoKCk9PntZcygpfSk7ZnVuY3Rpb24gbFFlKGUsdCxyKXtsZXQgaT1lLmFsbCh0KSxhPXI/VXFyKHIpOnNRZSh0KSxuPXt9LG89W107aWYodHlwZW9mIHQuY2hlY2tlZD09ImJvb2xlYW4iKXtsZXQgdT1pWzBdLGQ7dSYmdS50eXBlPT09ImVsZW1lbnQiJiZ1LnRhZ05hbWU9PT0icCI/ZD11OihkPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOltdfSxpLnVuc2hpZnQoZCkpLGQuY2hpbGRyZW4ubGVuZ3RoPjAmJmQuY2hpbGRyZW4udW5zaGlmdCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksZC5jaGlsZHJlbi51bnNoaWZ0KHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJpbnB1dCIscHJvcGVydGllczp7dHlwZToiY2hlY2tib3giLGNoZWNrZWQ6dC5jaGVja2VkLGRpc2FibGVkOiEwfSxjaGlsZHJlbjpbXX0pLG4uY2xhc3NOYW1lPVsidGFzay1saXN0LWl0ZW0iXX1sZXQgcz0tMTtmb3IoOysrczxpLmxlbmd0aDspe2xldCB1PWlbc107KGF8fHMhPT0wfHx1LnR5cGUhPT0iZWxlbWVudCJ8fHUudGFnTmFtZSE9PSJwIikmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksdS50eXBlPT09ImVsZW1lbnQiJiZ1LnRhZ05hbWU9PT0icCImJiFhP28ucHVzaCguLi51LmNoaWxkcmVuKTpvLnB1c2godSl9bGV0IGw9aVtpLmxlbmd0aC0xXTtsJiYoYXx8bC50eXBlIT09ImVsZW1lbnQifHxsLnRhZ05hbWUhPT0icCIpJiZvLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pO2xldCBjPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczpuLGNoaWxkcmVuOm99O3JldHVybiBlLnBhdGNoKHQsYyksZS5hcHBseURhdGEodCxjKX1mdW5jdGlvbiBVcXIoZSl7bGV0IHQ9ITE7aWYoZS50eXBlPT09Imxpc3QiKXt0PWUuc3ByZWFkfHwhMTtsZXQgcj1lLmNoaWxkcmVuLGk9LTE7Zm9yKDshdCYmKytpPHIubGVuZ3RoOyl0PXNRZShyW2ldKX1yZXR1cm4gdH1mdW5jdGlvbiBzUWUoZSl7bGV0IHQ9ZS5zcHJlYWQ7cmV0dXJuIHQ/P2UuY2hpbGRyZW4ubGVuZ3RoPjF9dmFyIGNRZT1wKCgpPT57fSk7ZnVuY3Rpb24gZFFlKGUsdCl7bGV0IHI9e30saT1lLmFsbCh0KSxhPS0xO2Zvcih0eXBlb2YgdC5zdGFydD09Im51bWJlciImJnQuc3RhcnQhPT0xJiYoci5zdGFydD10LnN0YXJ0KTsrK2E8aS5sZW5ndGg7KXtsZXQgbz1pW2FdO2lmKG8udHlwZT09PSJlbGVtZW50IiYmby50YWdOYW1lPT09ImxpIiYmby5wcm9wZXJ0aWVzJiZBcnJheS5pc0FycmF5KG8ucHJvcGVydGllcy5jbGFzc05hbWUpJiZvLnByb3BlcnRpZXMuY2xhc3NOYW1lLmluY2x1ZGVzKCJ0YXNrLWxpc3QtaXRlbSIpKXtyLmNsYXNzTmFtZT1bImNvbnRhaW5zLXRhc2stbGlzdCJdO2JyZWFrfX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTp0Lm9yZGVyZWQ/Im9sIjoidWwiLHByb3BlcnRpZXM6cixjaGlsZHJlbjplLndyYXAoaSwhMCl9O3JldHVybiBlLnBhdGNoKHQsbiksZS5hcHBseURhdGEodCxuKX12YXIgdVFlPXAoKCk9Pnt9KTtmdW5jdGlvbiBwUWUoZSx0KXtsZXQgcj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToicCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBoUWU9cCgoKT0+e30pO2Z1bmN0aW9uIGZRZShlLHQpe2xldCByPXt0eXBlOiJyb290IixjaGlsZHJlbjplLndyYXAoZS5hbGwodCkpfTtyZXR1cm4gZS5wYXRjaCh0LHIpLGUuYXBwbHlEYXRhKHQscil9dmFyIG1RZT1wKCgpPT57fSk7ZnVuY3Rpb24gZ1FlKGUsdCl7bGV0IHI9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InN0cm9uZyIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBiUWU9cCgoKT0+e30pO2Z1bmN0aW9uIHZRZShlLHQpe2xldCByPWUuYWxsKHQpLGk9ci5zaGlmdCgpLGE9W107aWYoaSl7bGV0IG89e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRoZWFkIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChbaV0sITApfTtlLnBhdGNoKHQuY2hpbGRyZW5bMF0sbyksYS5wdXNoKG8pfWlmKHIubGVuZ3RoPjApe2xldCBvPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0Ym9keSIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLndyYXAociwhMCl9LHM9bEwodC5jaGlsZHJlblsxXSksbD1zTCh0LmNoaWxkcmVuW3QuY2hpbGRyZW4ubGVuZ3RoLTFdKTtzJiZsJiYoby5wb3NpdGlvbj17c3RhcnQ6cyxlbmQ6bH0pLGEucHVzaChvKX1sZXQgbj17dHlwZToiZWxlbWVudCIsdGFnTmFtZToidGFibGUiLHByb3BlcnRpZXM6e30sY2hpbGRyZW46ZS53cmFwKGEsITApfTtyZXR1cm4gZS5wYXRjaCh0LG4pLGUuYXBwbHlEYXRhKHQsbil9dmFyIHhRZT1wKCgpPT57Y0woKX0pO2Z1bmN0aW9uIHlRZShlLHQscil7bGV0IGk9cj9yLmNoaWxkcmVuOnZvaWQgMCxuPShpP2kuaW5kZXhPZih0KToxKT09PTA/InRoIjoidGQiLG89ciYmci50eXBlPT09InRhYmxlIj9yLmFsaWduOnZvaWQgMCxzPW8/by5sZW5ndGg6dC5jaGlsZHJlbi5sZW5ndGgsbD0tMSxjPVtdO2Zvcig7KytsPHM7KXtsZXQgZD10LmNoaWxkcmVuW2xdLGg9e30sZj1vP29bbF06dm9pZCAwO2YmJihoLmFsaWduPWYpO2xldCB4PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOm4scHJvcGVydGllczpoLGNoaWxkcmVuOltdfTtkJiYoeC5jaGlsZHJlbj1lLmFsbChkKSxlLnBhdGNoKGQseCkseD1lLmFwcGx5RGF0YShkLHgpKSxjLnB1c2goeCl9bGV0IHU9e3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6InRyIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChjLCEwKX07cmV0dXJuIGUucGF0Y2godCx1KSxlLmFwcGx5RGF0YSh0LHUpfXZhciB3UWU9cCgoKT0+e30pO2Z1bmN0aW9uIE1RZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJ0ZCIscHJvcGVydGllczp7fSxjaGlsZHJlbjplLmFsbCh0KX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBrUWU9cCgoKT0+e30pO2Z1bmN0aW9uIHpRZShlKXtsZXQgdD1TdHJpbmcoZSkscj0vXHI/XG58XHIvZyxpPXIuZXhlYyh0KSxhPTAsbj1bXTtmb3IoO2k7KW4ucHVzaChTUWUodC5zbGljZShhLGkuaW5kZXgpLGE+MCwhMCksaVswXSksYT1pLmluZGV4K2lbMF0ubGVuZ3RoLGk9ci5leGVjKHQpO3JldHVybiBuLnB1c2goU1FlKHQuc2xpY2UoYSksYT4wLCExKSksbi5qb2luKCIiKX1mdW5jdGlvbiBTUWUoZSx0LHIpe2xldCBpPTAsYT1lLmxlbmd0aDtpZih0KXtsZXQgbj1lLmNvZGVQb2ludEF0KGkpO2Zvcig7bj09PTl8fG49PT0zMjspaSsrLG49ZS5jb2RlUG9pbnRBdChpKX1pZihyKXtsZXQgbj1lLmNvZGVQb2ludEF0KGEtMSk7Zm9yKDtuPT09OXx8bj09PTMyOylhLS0sbj1lLmNvZGVQb2ludEF0KGEtMSl9cmV0dXJuIGE+aT9lLnNsaWNlKGksYSk6IiJ9dmFyIHNWaSxsVmksQ1FlPXAoKCk9PntzVmk9OSxsVmk9MzJ9KTtmdW5jdGlvbiBUUWUoZSx0KXtsZXQgcj17dHlwZToidGV4dCIsdmFsdWU6elFlKFN0cmluZyh0LnZhbHVlKSl9O3JldHVybiBlLnBhdGNoKHQsciksZS5hcHBseURhdGEodCxyKX12YXIgX1FlPXAoKCk9PntDUWUoKX0pO2Z1bmN0aW9uIExRZShlLHQpe2xldCByPXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJociIscHJvcGVydGllczp7fSxjaGlsZHJlbjpbXX07cmV0dXJuIGUucGF0Y2godCxyKSxlLmFwcGx5RGF0YSh0LHIpfXZhciBBUWU9cCgoKT0+e30pO2Z1bmN0aW9uIHBMKCl7fXZhciBDcmUsVHJlPXAoKCk9PntOWGUoKTtPWGUoKTtCWGUoKTtxWGUoKTtWWGUoKTtXWGUoKTtZWGUoKTtYWGUoKTtKWGUoKTtlUWUoKTtyUWUoKTthUWUoKTtvUWUoKTtjUWUoKTt1UWUoKTtoUWUoKTttUWUoKTtiUWUoKTt4UWUoKTt3UWUoKTtrUWUoKTtfUWUoKTtBUWUoKTtDcmU9e2Jsb2NrcXVvdGU6UFhlLGJyZWFrOkZYZSxjb2RlOlJYZSxkZWxldGU6SFhlLGVtcGhhc2lzOmpYZSxmb290bm90ZVJlZmVyZW5jZTpVWGUsaGVhZGluZzpHWGUsaHRtbDpaWGUsaW1hZ2VSZWZlcmVuY2U6UVhlLGltYWdlOktYZSxpbmxpbmVDb2RlOnRRZSxsaW5rUmVmZXJlbmNlOmlRZSxsaW5rOm5RZSxsaXN0SXRlbTpsUWUsbGlzdDpkUWUscGFyYWdyYXBoOnBRZSxyb290OmZRZSxzdHJvbmc6Z1FlLHRhYmxlOnZRZSx0YWJsZUNlbGw6TVFlLHRhYmxlUm93OnlRZSx0ZXh0OlRRZSx0aGVtYXRpY0JyZWFrOkxRZSx0b21sOnBMLHlhbWw6cEwsZGVmaW5pdGlvbjpwTCxmb290bm90ZURlZmluaXRpb246cEx9fSk7ZnVuY3Rpb24gRFFlKGUsdCl7bGV0IHI9W3t0eXBlOiJ0ZXh0Iix2YWx1ZToiXHUyMUE5In1dO3JldHVybiB0PjEmJnIucHVzaCh7dHlwZToiZWxlbWVudCIsdGFnTmFtZToic3VwIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOlt7dHlwZToidGV4dCIsdmFsdWU6U3RyaW5nKHQpfV19KSxyfWZ1bmN0aW9uIEVRZShlLHQpe3JldHVybiJCYWNrIHRvIHJlZmVyZW5jZSAiKyhlKzEpKyh0PjE/Ii0iK3Q6IiIpfWZ1bmN0aW9uICRRZShlKXtsZXQgdD10eXBlb2YgZS5vcHRpb25zLmNsb2JiZXJQcmVmaXg9PSJzdHJpbmciP2Uub3B0aW9ucy5jbG9iYmVyUHJlZml4OiJ1c2VyLWNvbnRlbnQtIixyPWUub3B0aW9ucy5mb290bm90ZUJhY2tDb250ZW50fHxEUWUsaT1lLm9wdGlvbnMuZm9vdG5vdGVCYWNrTGFiZWx8fEVRZSxhPWUub3B0aW9ucy5mb290bm90ZUxhYmVsfHwiRm9vdG5vdGVzIixuPWUub3B0aW9ucy5mb290bm90ZUxhYmVsVGFnTmFtZXx8ImgyIixvPWUub3B0aW9ucy5mb290bm90ZUxhYmVsUHJvcGVydGllc3x8e2NsYXNzTmFtZTpbInNyLW9ubHkiXX0scz1bXSxsPS0xO2Zvcig7KytsPGUuZm9vdG5vdGVPcmRlci5sZW5ndGg7KXtsZXQgYz1lLmZvb3Rub3RlQnlJZC5nZXQoZS5mb290bm90ZU9yZGVyW2xdKTtpZighYyljb250aW51ZTtsZXQgdT1lLmFsbChjKSxkPVN0cmluZyhjLmlkZW50aWZpZXIpLnRvVXBwZXJDYXNlKCksaD1XbihkLnRvTG93ZXJDYXNlKCkpLGY9MCx4PVtdLHY9ZS5mb290bm90ZUNvdW50cy5nZXQoZCk7Zm9yKDt2IT09dm9pZCAwJiYrK2Y8PXY7KXt4Lmxlbmd0aD4wJiZ4LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOiIgIn0pO2xldCB3PXR5cGVvZiByPT0ic3RyaW5nIj9yOnIobCxmKTt0eXBlb2Ygdz09InN0cmluZyImJih3PXt0eXBlOiJ0ZXh0Iix2YWx1ZTp3fSkseC5wdXNoKHt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJhIixwcm9wZXJ0aWVzOntocmVmOiIjIit0KyJmbnJlZi0iK2grKGY+MT8iLSIrZjoiIiksZGF0YUZvb3Rub3RlQmFja3JlZjoiIixhcmlhTGFiZWw6dHlwZW9mIGk9PSJzdHJpbmciP2k6aShsLGYpLGNsYXNzTmFtZTpbImRhdGEtZm9vdG5vdGUtYmFja3JlZiJdfSxjaGlsZHJlbjpBcnJheS5pc0FycmF5KHcpP3c6W3ddfSl9bGV0IGI9dVt1Lmxlbmd0aC0xXTtpZihiJiZiLnR5cGU9PT0iZWxlbWVudCImJmIudGFnTmFtZT09PSJwIil7bGV0IHc9Yi5jaGlsZHJlbltiLmNoaWxkcmVuLmxlbmd0aC0xXTt3JiZ3LnR5cGU9PT0idGV4dCI/dy52YWx1ZSs9IiAiOmIuY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6IiAifSksYi5jaGlsZHJlbi5wdXNoKC4uLngpfWVsc2UgdS5wdXNoKC4uLngpO2xldCB5PXt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJsaSIscHJvcGVydGllczp7aWQ6dCsiZm4tIitofSxjaGlsZHJlbjplLndyYXAodSwhMCl9O2UucGF0Y2goYyx5KSxzLnB1c2goeSl9aWYocy5sZW5ndGghPT0wKXJldHVybnt0eXBlOiJlbGVtZW50Iix0YWdOYW1lOiJzZWN0aW9uIixwcm9wZXJ0aWVzOntkYXRhRm9vdG5vdGVzOiEwLGNsYXNzTmFtZTpbImZvb3Rub3RlcyJdfSxjaGlsZHJlbjpbe3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6bixwcm9wZXJ0aWVzOnsuLi5nNChvKSxpZDoiZm9vdG5vdGUtbGFiZWwifSxjaGlsZHJlbjpbe3R5cGU6InRleHQiLHZhbHVlOmF9XX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH0se3R5cGU6ImVsZW1lbnQiLHRhZ05hbWU6Im9sIixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUud3JhcChzLCEwKX0se3R5cGU6InRleHQiLHZhbHVlOmAKYH1dfX12YXIgX3JlPXAoKCk9PntvTCgpO1lzKCl9KTtmdW5jdGlvbiBQUWUoZSx0KXtsZXQgcj10fHxXcXIsaT1uZXcgTWFwLGE9bmV3IE1hcCxuPW5ldyBNYXAsbz17Li4uQ3JlLC4uLnIuaGFuZGxlcnN9LHM9e2FsbDpjLGFwcGx5RGF0YTpZcXIsZGVmaW5pdGlvbkJ5SWQ6aSxmb290bm90ZUJ5SWQ6YSxmb290bm90ZUNvdW50czpuLGZvb3Rub3RlT3JkZXI6W10saGFuZGxlcnM6byxvbmU6bCxvcHRpb25zOnIscGF0Y2g6R3FyLHdyYXA6WHFyfTtyZXR1cm4gSTkoZSxmdW5jdGlvbih1KXtpZih1LnR5cGU9PT0iZGVmaW5pdGlvbiJ8fHUudHlwZT09PSJmb290bm90ZURlZmluaXRpb24iKXtsZXQgZD11LnR5cGU9PT0iZGVmaW5pdGlvbiI/aTphLGg9U3RyaW5nKHUuaWRlbnRpZmllcikudG9VcHBlckNhc2UoKTtkLmhhcyhoKXx8ZC5zZXQoaCx1KX19KSxzO2Z1bmN0aW9uIGwodSxkKXtsZXQgaD11LnR5cGUsZj1zLmhhbmRsZXJzW2hdO2lmKExyZS5jYWxsKHMuaGFuZGxlcnMsaCkmJmYpcmV0dXJuIGYocyx1LGQpO2lmKHMub3B0aW9ucy5wYXNzVGhyb3VnaCYmcy5vcHRpb25zLnBhc3NUaHJvdWdoLmluY2x1ZGVzKGgpKXtpZigiY2hpbGRyZW4iaW4gdSl7bGV0e2NoaWxkcmVuOnYsLi4uYn09dSx5PWc0KGIpO3JldHVybiB5LmNoaWxkcmVuPXMuYWxsKHUpLHl9cmV0dXJuIGc0KHUpfXJldHVybihzLm9wdGlvbnMudW5rbm93bkhhbmRsZXJ8fFpxcikocyx1LGQpfWZ1bmN0aW9uIGModSl7bGV0IGQ9W107aWYoImNoaWxkcmVuImluIHUpe2xldCBoPXUuY2hpbGRyZW4sZj0tMTtmb3IoOysrZjxoLmxlbmd0aDspe2xldCB4PXMub25lKGhbZl0sdSk7aWYoeCl7aWYoZiYmaFtmLTFdLnR5cGU9PT0iYnJlYWsiJiYoIUFycmF5LmlzQXJyYXkoeCkmJngudHlwZT09PSJ0ZXh0IiYmKHgudmFsdWU9SVFlKHgudmFsdWUpKSwhQXJyYXkuaXNBcnJheSh4KSYmeC50eXBlPT09ImVsZW1lbnQiKSl7bGV0IHY9eC5jaGlsZHJlblswXTt2JiZ2LnR5cGU9PT0idGV4dCImJih2LnZhbHVlPUlRZSh2LnZhbHVlKSl9QXJyYXkuaXNBcnJheSh4KT9kLnB1c2goLi4ueCk6ZC5wdXNoKHgpfX19cmV0dXJuIGR9fWZ1bmN0aW9uIEdxcihlLHQpe2UucG9zaXRpb24mJih0LnBvc2l0aW9uPVo5KGUpKX1mdW5jdGlvbiBZcXIoZSx0KXtsZXQgcj10O2lmKGUmJmUuZGF0YSl7bGV0IGk9ZS5kYXRhLmhOYW1lLGE9ZS5kYXRhLmhDaGlsZHJlbixuPWUuZGF0YS5oUHJvcGVydGllcztpZih0eXBlb2YgaT09InN0cmluZyIpaWYoci50eXBlPT09ImVsZW1lbnQiKXIudGFnTmFtZT1pO2Vsc2V7bGV0IG89ImNoaWxkcmVuImluIHI/ci5jaGlsZHJlbjpbcl07cj17dHlwZToiZWxlbWVudCIsdGFnTmFtZTppLHByb3BlcnRpZXM6e30sY2hpbGRyZW46b319ci50eXBlPT09ImVsZW1lbnQiJiZuJiZPYmplY3QuYXNzaWduKHIucHJvcGVydGllcyxnNChuKSksImNoaWxkcmVuImluIHImJnIuY2hpbGRyZW4mJmEhPT1udWxsJiZhIT09dm9pZCAwJiYoci5jaGlsZHJlbj1hKX1yZXR1cm4gcn1mdW5jdGlvbiBacXIoZSx0KXtsZXQgcj10LmRhdGF8fHt9LGk9InZhbHVlImluIHQmJiEoTHJlLmNhbGwociwiaFByb3BlcnRpZXMiKXx8THJlLmNhbGwociwiaENoaWxkcmVuIikpP3t0eXBlOiJ0ZXh0Iix2YWx1ZTp0LnZhbHVlfTp7dHlwZToiZWxlbWVudCIsdGFnTmFtZToiZGl2Iixwcm9wZXJ0aWVzOnt9LGNoaWxkcmVuOmUuYWxsKHQpfTtyZXR1cm4gZS5wYXRjaCh0LGkpLGUuYXBwbHlEYXRhKHQsaSl9ZnVuY3Rpb24gWHFyKGUsdCl7bGV0IHI9W10saT0tMTtmb3IodCYmci5wdXNoKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpgCmB9KTsrK2k8ZS5sZW5ndGg7KWkmJnIucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSksci5wdXNoKGVbaV0pO3JldHVybiB0JiZlLmxlbmd0aD4wJiZyLnB1c2goe3R5cGU6InRleHQiLHZhbHVlOmAKYH0pLHJ9ZnVuY3Rpb24gSVFlKGUpe2xldCB0PTAscj1lLmNoYXJDb2RlQXQodCk7Zm9yKDtyPT09OXx8cj09PTMyOyl0Kysscj1lLmNoYXJDb2RlQXQodCk7cmV0dXJuIGUuc2xpY2UodCl9dmFyIExyZSxXcXIsTlFlPXAoKCk9PntvTCgpO2V0ZSgpO2NMKCk7VHJlKCk7THJlPXt9Lmhhc093blByb3BlcnR5LFdxcj17fX0pO2Z1bmN0aW9uIEFyZShlLHQpe2xldCByPVBRZShlLHQpLGk9ci5vbmUoZSx2b2lkIDApLGE9JFFlKHIpLG49QXJyYXkuaXNBcnJheShpKT97dHlwZToicm9vdCIsY2hpbGRyZW46aX06aXx8e3R5cGU6InJvb3QiLGNoaWxkcmVuOltdfTtyZXR1cm4gYSYmKCJjaGlsZHJlbiJpbiBuLG4uY2hpbGRyZW4ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6YApgfSxhKSksbn12YXIgRlFlPXAoKCk9PntjNCgpO19yZSgpO05RZSgpfSk7dmFyIE9RZT1wKCgpPT57VHJlKCk7RlFlKCk7X3JlKCl9KTt2YXIgUlFlLEJRZT1wKCgpPT57UlFlPVsiYXJlYSIsImJhc2UiLCJiYXNlZm9udCIsImJnc291bmQiLCJiciIsImNvbCIsImNvbW1hbmQiLCJlbWJlZCIsImZyYW1lIiwiaHIiLCJpbWFnZSIsImltZyIsImlucHV0Iiwia2V5Z2VuIiwibGluayIsIm1ldGEiLCJwYXJhbSIsInNvdXJjZSIsInRyYWNrIiwid2JyIl19KTt2YXIgb2MsRHJlPXAoKCk9PntvYz1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIsaSl7dGhpcy5ub3JtYWw9cix0aGlzLnByb3BlcnR5PXQsaSYmKHRoaXMuc3BhY2U9aSl9fTtvYy5wcm90b3R5cGUubm9ybWFsPXt9LG9jLnByb3RvdHlwZS5wcm9wZXJ0eT17fSxvYy5wcm90b3R5cGUuc3BhY2U9dm9pZCAwfSk7ZnVuY3Rpb24gRXJlKGUsdCl7bGV0IHI9e30saT17fTtmb3IobGV0IGEgb2YgZSlPYmplY3QuYXNzaWduKHIsYS5wcm9wZXJ0eSksT2JqZWN0LmFzc2lnbihpLGEubm9ybWFsKTtyZXR1cm4gbmV3IG9jKHIsaSx0KX12YXIgSFFlPXAoKCk9PntEcmUoKX0pO2Z1bmN0aW9uIHZwKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCl9dmFyIGhMPXAoKCk9Pnt9KTt2YXIgRmksJHJlPXAoKCk9PntGaT1jbGFzc3tjb25zdHJ1Y3Rvcih0LHIpe3RoaXMuYXR0cmlidXRlPXIsdGhpcy5wcm9wZXJ0eT10fX07RmkucHJvdG90eXBlLmF0dHJpYnV0ZT0iIixGaS5wcm90b3R5cGUuYm9vbGVhbmlzaD0hMSxGaS5wcm90b3R5cGUuYm9vbGVhbj0hMSxGaS5wcm90b3R5cGUuY29tbWFPclNwYWNlU2VwYXJhdGVkPSExLEZpLnByb3RvdHlwZS5jb21tYVNlcGFyYXRlZD0hMSxGaS5wcm90b3R5cGUuZGVmaW5lZD0hMSxGaS5wcm90b3R5cGUubXVzdFVzZVByb3BlcnR5PSExLEZpLnByb3RvdHlwZS5udW1iZXI9ITEsRmkucHJvdG90eXBlLm92ZXJsb2FkZWRCb29sZWFuPSExLEZpLnByb3RvdHlwZS5wcm9wZXJ0eT0iIixGaS5wcm90b3R5cGUuc3BhY2VTZXBhcmF0ZWQ9ITEsRmkucHJvdG90eXBlLnNwYWNlPXZvaWQgMH0pO3ZhciBROT17fTtGZShROSx7Ym9vbGVhbjooKT0+RXQsYm9vbGVhbmlzaDooKT0+TjEsY29tbWFPclNwYWNlU2VwYXJhdGVkOigpPT5rbixjb21tYVNlcGFyYXRlZDooKT0+djQsbnVtYmVyOigpPT5xZSxvdmVybG9hZGVkQm9vbGVhbjooKT0+Zkwsc3BhY2VTZXBhcmF0ZWQ6KCk9PlVyfSk7ZnVuY3Rpb24gbWQoKXtyZXR1cm4gMioqKytRcXJ9dmFyIFFxcixFdCxOMSxmTCxxZSxVcix2NCxrbixKOT1wKCgpPT57UXFyPTAsRXQ9bWQoKSxOMT1tZCgpLGZMPW1kKCkscWU9bWQoKSxVcj1tZCgpLHY0PW1kKCksa249bWQoKX0pO2Z1bmN0aW9uIHFRZShlLHQscil7ciYmKGVbdF09cil9dmFyIElyZSxnZCxQcmU9cCgoKT0+eyRyZSgpO0o5KCk7SXJlPU9iamVjdC5rZXlzKFE5KSxnZD1jbGFzcyBleHRlbmRzIEZpe2NvbnN0cnVjdG9yKHQscixpLGEpe2xldCBuPS0xO2lmKHN1cGVyKHQscikscVFlKHRoaXMsInNwYWNlIixhKSx0eXBlb2YgaT09Im51bWJlciIpZm9yKDsrK248SXJlLmxlbmd0aDspe2xldCBvPUlyZVtuXTtxUWUodGhpcyxJcmVbbl0sKGkmUTlbb10pPT09UTlbb10pfX19O2dkLnByb3RvdHlwZS5kZWZpbmVkPSEwfSk7ZnVuY3Rpb24gX28oZSl7bGV0IHQ9e30scj17fTtmb3IobGV0W2ksYV1vZiBPYmplY3QuZW50cmllcyhlLnByb3BlcnRpZXMpKXtsZXQgbj1uZXcgZ2QoaSxlLnRyYW5zZm9ybShlLmF0dHJpYnV0ZXN8fHt9LGkpLGEsZS5zcGFjZSk7ZS5tdXN0VXNlUHJvcGVydHkmJmUubXVzdFVzZVByb3BlcnR5LmluY2x1ZGVzKGkpJiYobi5tdXN0VXNlUHJvcGVydHk9ITApLHRbaV09bixyW3ZwKGkpXT1pLHJbdnAobi5hdHRyaWJ1dGUpXT1pfXJldHVybiBuZXcgb2ModCxyLGUuc3BhY2UpfXZhciBiZD1wKCgpPT57aEwoKTtQcmUoKTtEcmUoKX0pO3ZhciBOcmUsalFlPXAoKCk9PntiZCgpO0o5KCk7TnJlPV9vKHtwcm9wZXJ0aWVzOnthcmlhQWN0aXZlRGVzY2VuZGFudDpudWxsLGFyaWFBdG9taWM6TjEsYXJpYUF1dG9Db21wbGV0ZTpudWxsLGFyaWFCdXN5Ok4xLGFyaWFDaGVja2VkOk4xLGFyaWFDb2xDb3VudDpxZSxhcmlhQ29sSW5kZXg6cWUsYXJpYUNvbFNwYW46cWUsYXJpYUNvbnRyb2xzOlVyLGFyaWFDdXJyZW50Om51bGwsYXJpYURlc2NyaWJlZEJ5OlVyLGFyaWFEZXRhaWxzOm51bGwsYXJpYURpc2FibGVkOk4xLGFyaWFEcm9wRWZmZWN0OlVyLGFyaWFFcnJvck1lc3NhZ2U6bnVsbCxhcmlhRXhwYW5kZWQ6TjEsYXJpYUZsb3dUbzpVcixhcmlhR3JhYmJlZDpOMSxhcmlhSGFzUG9wdXA6bnVsbCxhcmlhSGlkZGVuOk4xLGFyaWFJbnZhbGlkOm51bGwsYXJpYUtleVNob3J0Y3V0czpudWxsLGFyaWFMYWJlbDpudWxsLGFyaWFMYWJlbGxlZEJ5OlVyLGFyaWFMZXZlbDpxZSxhcmlhTGl2ZTpudWxsLGFyaWFNb2RhbDpOMSxhcmlhTXVsdGlMaW5lOk4xLGFyaWFNdWx0aVNlbGVjdGFibGU6TjEsYXJpYU9yaWVudGF0aW9uOm51bGwsYXJpYU93bnM6VXIsYXJpYVBsYWNlaG9sZGVyOm51bGwsYXJpYVBvc0luU2V0OnFlLGFyaWFQcmVzc2VkOk4xLGFyaWFSZWFkT25seTpOMSxhcmlhUmVsZXZhbnQ6bnVsbCxhcmlhUmVxdWlyZWQ6TjEsYXJpYVJvbGVEZXNjcmlwdGlvbjpVcixhcmlhUm93Q291bnQ6cWUsYXJpYVJvd0luZGV4OnFlLGFyaWFSb3dTcGFuOnFlLGFyaWFTZWxlY3RlZDpOMSxhcmlhU2V0U2l6ZTpxZSxhcmlhU29ydDpudWxsLGFyaWFWYWx1ZU1heDpxZSxhcmlhVmFsdWVNaW46cWUsYXJpYVZhbHVlTm93OnFlLGFyaWFWYWx1ZVRleHQ6bnVsbCxyb2xlOm51bGx9LHRyYW5zZm9ybShlLHQpe3JldHVybiB0PT09InJvbGUiP3Q6ImFyaWEtIit0LnNsaWNlKDQpLnRvTG93ZXJDYXNlKCl9fSl9KTtmdW5jdGlvbiBtTChlLHQpe3JldHVybiB0IGluIGU/ZVt0XTp0fXZhciBGcmU9cCgoKT0+e30pO2Z1bmN0aW9uIGdMKGUsdCl7cmV0dXJuIG1MKGUsdC50b0xvd2VyQ2FzZSgpKX12YXIgT3JlPXAoKCk9PntGcmUoKX0pO3ZhciBWUWUsVVFlPXAoKCk9PntPcmUoKTtiZCgpO0o5KCk7VlFlPV9vKHthdHRyaWJ1dGVzOnthY2NlcHRjaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NuYW1lOiJjbGFzcyIsaHRtbGZvcjoiZm9yIixodHRwZXF1aXY6Imh0dHAtZXF1aXYifSxtdXN0VXNlUHJvcGVydHk6WyJjaGVja2VkIiwibXVsdGlwbGUiLCJtdXRlZCIsInNlbGVjdGVkIl0scHJvcGVydGllczp7YWJicjpudWxsLGFjY2VwdDp2NCxhY2NlcHRDaGFyc2V0OlVyLGFjY2Vzc0tleTpVcixhY3Rpb246bnVsbCxhbGxvdzpudWxsLGFsbG93RnVsbFNjcmVlbjpFdCxhbGxvd1BheW1lbnRSZXF1ZXN0OkV0LGFsbG93VXNlck1lZGlhOkV0LGFsdDpudWxsLGFzOm51bGwsYXN5bmM6RXQsYXV0b0NhcGl0YWxpemU6bnVsbCxhdXRvQ29tcGxldGU6VXIsYXV0b0ZvY3VzOkV0LGF1dG9QbGF5OkV0LGJsb2NraW5nOlVyLGNhcHR1cmU6bnVsbCxjaGFyU2V0Om51bGwsY2hlY2tlZDpFdCxjaXRlOm51bGwsY2xhc3NOYW1lOlVyLGNvbHM6cWUsY29sU3BhbjpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50RWRpdGFibGU6TjEsY29udHJvbHM6RXQsY29udHJvbHNMaXN0OlVyLGNvb3JkczpxZXx2NCxjcm9zc09yaWdpbjpudWxsLGRhdGE6bnVsbCxkYXRlVGltZTpudWxsLGRlY29kaW5nOm51bGwsZGVmYXVsdDpFdCxkZWZlcjpFdCxkaXI6bnVsbCxkaXJOYW1lOm51bGwsZGlzYWJsZWQ6RXQsZG93bmxvYWQ6ZkwsZHJhZ2dhYmxlOk4xLGVuY1R5cGU6bnVsbCxlbnRlcktleUhpbnQ6bnVsbCxmZXRjaFByaW9yaXR5Om51bGwsZm9ybTpudWxsLGZvcm1BY3Rpb246bnVsbCxmb3JtRW5jVHlwZTpudWxsLGZvcm1NZXRob2Q6bnVsbCxmb3JtTm9WYWxpZGF0ZTpFdCxmb3JtVGFyZ2V0Om51bGwsaGVhZGVyczpVcixoZWlnaHQ6cWUsaGlkZGVuOmZMLGhpZ2g6cWUsaHJlZjpudWxsLGhyZWZMYW5nOm51bGwsaHRtbEZvcjpVcixodHRwRXF1aXY6VXIsaWQ6bnVsbCxpbWFnZVNpemVzOm51bGwsaW1hZ2VTcmNTZXQ6bnVsbCxpbmVydDpFdCxpbnB1dE1vZGU6bnVsbCxpbnRlZ3JpdHk6bnVsbCxpczpudWxsLGlzTWFwOkV0LGl0ZW1JZDpudWxsLGl0ZW1Qcm9wOlVyLGl0ZW1SZWY6VXIsaXRlbVNjb3BlOkV0LGl0ZW1UeXBlOlVyLGtpbmQ6bnVsbCxsYWJlbDpudWxsLGxhbmc6bnVsbCxsYW5ndWFnZTpudWxsLGxpc3Q6bnVsbCxsb2FkaW5nOm51bGwsbG9vcDpFdCxsb3c6cWUsbWFuaWZlc3Q6bnVsbCxtYXg6bnVsbCxtYXhMZW5ndGg6cWUsbWVkaWE6bnVsbCxtZXRob2Q6bnVsbCxtaW46bnVsbCxtaW5MZW5ndGg6cWUsbXVsdGlwbGU6RXQsbXV0ZWQ6RXQsbmFtZTpudWxsLG5vbmNlOm51bGwsbm9Nb2R1bGU6RXQsbm9WYWxpZGF0ZTpFdCxvbkFib3J0Om51bGwsb25BZnRlclByaW50Om51bGwsb25BdXhDbGljazpudWxsLG9uQmVmb3JlTWF0Y2g6bnVsbCxvbkJlZm9yZVByaW50Om51bGwsb25CZWZvcmVUb2dnbGU6bnVsbCxvbkJlZm9yZVVubG9hZDpudWxsLG9uQmx1cjpudWxsLG9uQ2FuY2VsOm51bGwsb25DYW5QbGF5Om51bGwsb25DYW5QbGF5VGhyb3VnaDpudWxsLG9uQ2hhbmdlOm51bGwsb25DbGljazpudWxsLG9uQ2xvc2U6bnVsbCxvbkNvbnRleHRMb3N0Om51bGwsb25Db250ZXh0TWVudTpudWxsLG9uQ29udGV4dFJlc3RvcmVkOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZGVkOm51bGwsb25FcnJvcjpudWxsLG9uRm9jdXM6bnVsbCxvbkZvcm1EYXRhOm51bGwsb25IYXNoQ2hhbmdlOm51bGwsb25JbnB1dDpudWxsLG9uSW52YWxpZDpudWxsLG9uS2V5RG93bjpudWxsLG9uS2V5UHJlc3M6bnVsbCxvbktleVVwOm51bGwsb25MYW5ndWFnZUNoYW5nZTpudWxsLG9uTG9hZDpudWxsLG9uTG9hZGVkRGF0YTpudWxsLG9uTG9hZGVkTWV0YWRhdGE6bnVsbCxvbkxvYWRFbmQ6bnVsbCxvbkxvYWRTdGFydDpudWxsLG9uTWVzc2FnZTpudWxsLG9uTWVzc2FnZUVycm9yOm51bGwsb25Nb3VzZURvd246bnVsbCxvbk1vdXNlRW50ZXI6bnVsbCxvbk1vdXNlTGVhdmU6bnVsbCxvbk1vdXNlTW92ZTpudWxsLG9uTW91c2VPdXQ6bnVsbCxvbk1vdXNlT3ZlcjpudWxsLG9uTW91c2VVcDpudWxsLG9uT2ZmbGluZTpudWxsLG9uT25saW5lOm51bGwsb25QYWdlSGlkZTpudWxsLG9uUGFnZVNob3c6bnVsbCxvblBhc3RlOm51bGwsb25QYXVzZTpudWxsLG9uUGxheTpudWxsLG9uUGxheWluZzpudWxsLG9uUG9wU3RhdGU6bnVsbCxvblByb2dyZXNzOm51bGwsb25SYXRlQ2hhbmdlOm51bGwsb25SZWplY3Rpb25IYW5kbGVkOm51bGwsb25SZXNldDpudWxsLG9uUmVzaXplOm51bGwsb25TY3JvbGw6bnVsbCxvblNjcm9sbEVuZDpudWxsLG9uU2VjdXJpdHlQb2xpY3lWaW9sYXRpb246bnVsbCxvblNlZWtlZDpudWxsLG9uU2Vla2luZzpudWxsLG9uU2VsZWN0Om51bGwsb25TbG90Q2hhbmdlOm51bGwsb25TdGFsbGVkOm51bGwsb25TdG9yYWdlOm51bGwsb25TdWJtaXQ6bnVsbCxvblN1c3BlbmQ6bnVsbCxvblRpbWVVcGRhdGU6bnVsbCxvblRvZ2dsZTpudWxsLG9uVW5oYW5kbGVkUmVqZWN0aW9uOm51bGwsb25VbmxvYWQ6bnVsbCxvblZvbHVtZUNoYW5nZTpudWxsLG9uV2FpdGluZzpudWxsLG9uV2hlZWw6bnVsbCxvcGVuOkV0LG9wdGltdW06cWUscGF0dGVybjpudWxsLHBpbmc6VXIscGxhY2Vob2xkZXI6bnVsbCxwbGF5c0lubGluZTpFdCxwb3BvdmVyOm51bGwscG9wb3ZlclRhcmdldDpudWxsLHBvcG92ZXJUYXJnZXRBY3Rpb246bnVsbCxwb3N0ZXI6bnVsbCxwcmVsb2FkOm51bGwscmVhZE9ubHk6RXQscmVmZXJyZXJQb2xpY3k6bnVsbCxyZWw6VXIscmVxdWlyZWQ6RXQscmV2ZXJzZWQ6RXQscm93czpxZSxyb3dTcGFuOnFlLHNhbmRib3g6VXIsc2NvcGU6bnVsbCxzY29wZWQ6RXQsc2VhbWxlc3M6RXQsc2VsZWN0ZWQ6RXQsc2hhZG93Um9vdENsb25hYmxlOkV0LHNoYWRvd1Jvb3REZWxlZ2F0ZXNGb2N1czpFdCxzaGFkb3dSb290TW9kZTpudWxsLHNoYXBlOm51bGwsc2l6ZTpxZSxzaXplczpudWxsLHNsb3Q6bnVsbCxzcGFuOnFlLHNwZWxsQ2hlY2s6TjEsc3JjOm51bGwsc3JjRG9jOm51bGwsc3JjTGFuZzpudWxsLHNyY1NldDpudWxsLHN0YXJ0OnFlLHN0ZXA6bnVsbCxzdHlsZTpudWxsLHRhYkluZGV4OnFlLHRhcmdldDpudWxsLHRpdGxlOm51bGwsdHJhbnNsYXRlOm51bGwsdHlwZTpudWxsLHR5cGVNdXN0TWF0Y2g6RXQsdXNlTWFwOm51bGwsdmFsdWU6TjEsd2lkdGg6cWUsd3JhcDpudWxsLHdyaXRpbmdTdWdnZXN0aW9uczpudWxsLGFsaWduOm51bGwsYUxpbms6bnVsbCxhcmNoaXZlOlVyLGF4aXM6bnVsbCxiYWNrZ3JvdW5kOm51bGwsYmdDb2xvcjpudWxsLGJvcmRlcjpxZSxib3JkZXJDb2xvcjpudWxsLGJvdHRvbU1hcmdpbjpxZSxjZWxsUGFkZGluZzpudWxsLGNlbGxTcGFjaW5nOm51bGwsY2hhcjpudWxsLGNoYXJPZmY6bnVsbCxjbGFzc0lkOm51bGwsY2xlYXI6bnVsbCxjb2RlOm51bGwsY29kZUJhc2U6bnVsbCxjb2RlVHlwZTpudWxsLGNvbG9yOm51bGwsY29tcGFjdDpFdCxkZWNsYXJlOkV0LGV2ZW50Om51bGwsZmFjZTpudWxsLGZyYW1lOm51bGwsZnJhbWVCb3JkZXI6bnVsbCxoU3BhY2U6cWUsbGVmdE1hcmdpbjpxZSxsaW5rOm51bGwsbG9uZ0Rlc2M6bnVsbCxsb3dTcmM6bnVsbCxtYXJnaW5IZWlnaHQ6cWUsbWFyZ2luV2lkdGg6cWUsbm9SZXNpemU6RXQsbm9IcmVmOkV0LG5vU2hhZGU6RXQsbm9XcmFwOkV0LG9iamVjdDpudWxsLHByb2ZpbGU6bnVsbCxwcm9tcHQ6bnVsbCxyZXY6bnVsbCxyaWdodE1hcmdpbjpxZSxydWxlczpudWxsLHNjaGVtZTpudWxsLHNjcm9sbGluZzpOMSxzdGFuZGJ5Om51bGwsc3VtbWFyeTpudWxsLHRleHQ6bnVsbCx0b3BNYXJnaW46cWUsdmFsdWVUeXBlOm51bGwsdmVyc2lvbjpudWxsLHZBbGlnbjpudWxsLHZMaW5rOm51bGwsdlNwYWNlOnFlLGFsbG93VHJhbnNwYXJlbmN5Om51bGwsYXV0b0NvcnJlY3Q6bnVsbCxhdXRvU2F2ZTpudWxsLGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlOkV0LGRpc2FibGVSZW1vdGVQbGF5YmFjazpFdCxwcmVmaXg6bnVsbCxwcm9wZXJ0eTpudWxsLHJlc3VsdHM6cWUsc2VjdXJpdHk6bnVsbCx1bnNlbGVjdGFibGU6bnVsbH0sc3BhY2U6Imh0bWwiLHRyYW5zZm9ybTpnTH0pfSk7dmFyIFdRZSxHUWU9cCgoKT0+e0ZyZSgpO2JkKCk7SjkoKTtXUWU9X28oe2F0dHJpYnV0ZXM6e2FjY2VudEhlaWdodDoiYWNjZW50LWhlaWdodCIsYWxpZ25tZW50QmFzZWxpbmU6ImFsaWdubWVudC1iYXNlbGluZSIsYXJhYmljRm9ybToiYXJhYmljLWZvcm0iLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixjYXBIZWlnaHQ6ImNhcC1oZWlnaHQiLGNsYXNzTmFtZToiY2xhc3MiLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNsaXBSdWxlOiJjbGlwLXJ1bGUiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIsY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9yUmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNyb3NzT3JpZ2luOiJjcm9zc29yaWdpbiIsZGF0YVR5cGU6ImRhdGF0eXBlIixkb21pbmFudEJhc2VsaW5lOiJkb21pbmFudC1iYXNlbGluZSIsZW5hYmxlQmFja2dyb3VuZDoiZW5hYmxlLWJhY2tncm91bmQiLGZpbGxPcGFjaXR5OiJmaWxsLW9wYWNpdHkiLGZpbGxSdWxlOiJmaWxsLXJ1bGUiLGZsb29kQ29sb3I6ImZsb29kLWNvbG9yIixmbG9vZE9wYWNpdHk6ImZsb29kLW9wYWNpdHkiLGZvbnRGYW1pbHk6ImZvbnQtZmFtaWx5Iixmb250U2l6ZToiZm9udC1zaXplIixmb250U2l6ZUFkanVzdDoiZm9udC1zaXplLWFkanVzdCIsZm9udFN0cmV0Y2g6ImZvbnQtc3RyZXRjaCIsZm9udFN0eWxlOiJmb250LXN0eWxlIixmb250VmFyaWFudDoiZm9udC12YXJpYW50Iixmb250V2VpZ2h0OiJmb250LXdlaWdodCIsZ2x5cGhOYW1lOiJnbHlwaC1uYW1lIixnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbDoiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOiJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsaHJlZkxhbmc6ImhyZWZsYW5nIixob3JpekFkdlg6Imhvcml6LWFkdi14Iixob3Jpek9yaWdpblg6Imhvcml6LW9yaWdpbi14Iixob3Jpek9yaWdpblk6Imhvcml6LW9yaWdpbi15IixpbWFnZVJlbmRlcmluZzoiaW1hZ2UtcmVuZGVyaW5nIixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xvcjoibGlnaHRpbmctY29sb3IiLG1hcmtlckVuZDoibWFya2VyLWVuZCIsbWFya2VyTWlkOiJtYXJrZXItbWlkIixtYXJrZXJTdGFydDoibWFya2VyLXN0YXJ0IixuYXZEb3duOiJuYXYtZG93biIsbmF2RG93bkxlZnQ6Im5hdi1kb3duLWxlZnQiLG5hdkRvd25SaWdodDoibmF2LWRvd24tcmlnaHQiLG5hdkxlZnQ6Im5hdi1sZWZ0IixuYXZOZXh0OiJuYXYtbmV4dCIsbmF2UHJldjoibmF2LXByZXYiLG5hdlJpZ2h0OiJuYXYtcmlnaHQiLG5hdlVwOiJuYXYtdXAiLG5hdlVwTGVmdDoibmF2LXVwLWxlZnQiLG5hdlVwUmlnaHQ6Im5hdi11cC1yaWdodCIsb25BYm9ydDoib25hYm9ydCIsb25BY3RpdmF0ZToib25hY3RpdmF0ZSIsb25BZnRlclByaW50OiJvbmFmdGVycHJpbnQiLG9uQmVmb3JlUHJpbnQ6Im9uYmVmb3JlcHJpbnQiLG9uQmVnaW46Im9uYmVnaW4iLG9uQ2FuY2VsOiJvbmNhbmNlbCIsb25DYW5QbGF5OiJvbmNhbnBsYXkiLG9uQ2FuUGxheVRocm91Z2g6Im9uY2FucGxheXRocm91Z2giLG9uQ2hhbmdlOiJvbmNoYW5nZSIsb25DbGljazoib25jbGljayIsb25DbG9zZToib25jbG9zZSIsb25Db3B5OiJvbmNvcHkiLG9uQ3VlQ2hhbmdlOiJvbmN1ZWNoYW5nZSIsb25DdXQ6Im9uY3V0IixvbkRibENsaWNrOiJvbmRibGNsaWNrIixvbkRyYWc6Im9uZHJhZyIsb25EcmFnRW5kOiJvbmRyYWdlbmQiLG9uRHJhZ0VudGVyOiJvbmRyYWdlbnRlciIsb25EcmFnRXhpdDoib25kcmFnZXhpdCIsb25EcmFnTGVhdmU6Im9uZHJhZ2xlYXZlIixvbkRyYWdPdmVyOiJvbmRyYWdvdmVyIixvbkRyYWdTdGFydDoib25kcmFnc3RhcnQiLG9uRHJvcDoib25kcm9wIixvbkR1cmF0aW9uQ2hhbmdlOiJvbmR1cmF0aW9uY2hhbmdlIixvbkVtcHRpZWQ6Im9uZW1wdGllZCIsb25FbmQ6Im9uZW5kIixvbkVuZGVkOiJvbmVuZGVkIixvbkVycm9yOiJvbmVycm9yIixvbkZvY3VzOiJvbmZvY3VzIixvbkZvY3VzSW46Im9uZm9jdXNpbiIsb25Gb2N1c091dDoib25mb2N1c291dCIsb25IYXNoQ2hhbmdlOiJvbmhhc2hjaGFuZ2UiLG9uSW5wdXQ6Im9uaW5wdXQiLG9uSW52YWxpZDoib25pbnZhbGlkIixvbktleURvd246Im9ua2V5ZG93biIsb25LZXlQcmVzczoib25rZXlwcmVzcyIsb25LZXlVcDoib25rZXl1cCIsb25Mb2FkOiJvbmxvYWQiLG9uTG9hZGVkRGF0YToib25sb2FkZWRkYXRhIixvbkxvYWRlZE1ldGFkYXRhOiJvbmxvYWRlZG1ldGFkYXRhIixvbkxvYWRTdGFydDoib25sb2Fkc3RhcnQiLG9uTWVzc2FnZToib25tZXNzYWdlIixvbk1vdXNlRG93bjoib25tb3VzZWRvd24iLG9uTW91c2VFbnRlcjoib25tb3VzZWVudGVyIixvbk1vdXNlTGVhdmU6Im9ubW91c2VsZWF2ZSIsb25Nb3VzZU1vdmU6Im9ubW91c2Vtb3ZlIixvbk1vdXNlT3V0OiJvbm1vdXNlb3V0Iixvbk1vdXNlT3Zlcjoib25tb3VzZW92ZXIiLG9uTW91c2VVcDoib25tb3VzZXVwIixvbk1vdXNlV2hlZWw6Im9ubW91c2V3aGVlbCIsb25PZmZsaW5lOiJvbm9mZmxpbmUiLG9uT25saW5lOiJvbm9ubGluZSIsb25QYWdlSGlkZToib25wYWdlaGlkZSIsb25QYWdlU2hvdzoib25wYWdlc2hvdyIsb25QYXN0ZToib25wYXN0ZSIsb25QYXVzZToib25wYXVzZSIsb25QbGF5OiJvbnBsYXkiLG9uUGxheWluZzoib25wbGF5aW5nIixvblBvcFN0YXRlOiJvbnBvcHN0YXRlIixvblByb2dyZXNzOiJvbnByb2dyZXNzIixvblJhdGVDaGFuZ2U6Im9ucmF0ZWNoYW5nZSIsb25SZXBlYXQ6Im9ucmVwZWF0IixvblJlc2V0OiJvbnJlc2V0IixvblJlc2l6ZToib25yZXNpemUiLG9uU2Nyb2xsOiJvbnNjcm9sbCIsb25TZWVrZWQ6Im9uc2Vla2VkIixvblNlZWtpbmc6Im9uc2Vla2luZyIsb25TZWxlY3Q6Im9uc2VsZWN0IixvblNob3c6Im9uc2hvdyIsb25TdGFsbGVkOiJvbnN0YWxsZWQiLG9uU3RvcmFnZToib25zdG9yYWdlIixvblN1Ym1pdDoib25zdWJtaXQiLG9uU3VzcGVuZDoib25zdXNwZW5kIixvblRpbWVVcGRhdGU6Im9udGltZXVwZGF0ZSIsb25Ub2dnbGU6Im9udG9nZ2xlIixvblVubG9hZDoib251bmxvYWQiLG9uVm9sdW1lQ2hhbmdlOiJvbnZvbHVtZWNoYW5nZSIsb25XYWl0aW5nOiJvbndhaXRpbmciLG9uWm9vbToib256b29tIixvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3ZlcmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRlcjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwb2ludGVyRXZlbnRzOiJwb2ludGVyLWV2ZW50cyIscmVmZXJyZXJQb2xpY3k6InJlZmVycmVycG9saWN5IixyZW5kZXJpbmdJbnRlbnQ6InJlbmRlcmluZy1pbnRlbnQiLHNoYXBlUmVuZGVyaW5nOiJzaGFwZS1yZW5kZXJpbmciLHN0b3BDb2xvcjoic3RvcC1jb2xvciIsc3RvcE9wYWNpdHk6InN0b3Atb3BhY2l0eSIsc3RyaWtldGhyb3VnaFBvc2l0aW9uOiJzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIixzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOiJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyIsc3Ryb2tlRGFzaEFycmF5OiJzdHJva2UtZGFzaGFycmF5IixzdHJva2VEYXNoT2Zmc2V0OiJzdHJva2UtZGFzaG9mZnNldCIsc3Ryb2tlTGluZUNhcDoic3Ryb2tlLWxpbmVjYXAiLHN0cm9rZUxpbmVKb2luOiJzdHJva2UtbGluZWpvaW4iLHN0cm9rZU1pdGVyTGltaXQ6InN0cm9rZS1taXRlcmxpbWl0IixzdHJva2VPcGFjaXR5OiJzdHJva2Utb3BhY2l0eSIsc3Ryb2tlV2lkdGg6InN0cm9rZS13aWR0aCIsdGFiSW5kZXg6InRhYmluZGV4Iix0ZXh0QW5jaG9yOiJ0ZXh0LWFuY2hvciIsdGV4dERlY29yYXRpb246InRleHQtZGVjb3JhdGlvbiIsdGV4dFJlbmRlcmluZzoidGV4dC1yZW5kZXJpbmciLHRyYW5zZm9ybU9yaWdpbjoidHJhbnNmb3JtLW9yaWdpbiIsdHlwZU9mOiJ0eXBlb2YiLHVuZGVybGluZVBvc2l0aW9uOiJ1bmRlcmxpbmUtcG9zaXRpb24iLHVuZGVybGluZVRoaWNrbmVzczoidW5kZXJsaW5lLXRoaWNrbmVzcyIsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdlOiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZBbHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmciLHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoidi1tYXRoZW1hdGljYWwiLHZlY3RvckVmZmVjdDoidmVjdG9yLWVmZmVjdCIsdmVydEFkdlk6InZlcnQtYWR2LXkiLHZlcnRPcmlnaW5YOiJ2ZXJ0LW9yaWdpbi14Iix2ZXJ0T3JpZ2luWToidmVydC1vcmlnaW4teSIsd29yZFNwYWNpbmc6IndvcmQtc3BhY2luZyIsd3JpdGluZ01vZGU6IndyaXRpbmctbW9kZSIseEhlaWdodDoieC1oZWlnaHQiLHBsYXliYWNrT3JkZXI6InBsYXliYWNrb3JkZXIiLHRpbWVsaW5lQmVnaW46InRpbWVsaW5lYmVnaW4ifSxwcm9wZXJ0aWVzOnthYm91dDprbixhY2NlbnRIZWlnaHQ6cWUsYWNjdW11bGF0ZTpudWxsLGFkZGl0aXZlOm51bGwsYWxpZ25tZW50QmFzZWxpbmU6bnVsbCxhbHBoYWJldGljOnFlLGFtcGxpdHVkZTpxZSxhcmFiaWNGb3JtOm51bGwsYXNjZW50OnFlLGF0dHJpYnV0ZU5hbWU6bnVsbCxhdHRyaWJ1dGVUeXBlOm51bGwsYXppbXV0aDpxZSxiYW5kd2lkdGg6bnVsbCxiYXNlbGluZVNoaWZ0Om51bGwsYmFzZUZyZXF1ZW5jeTpudWxsLGJhc2VQcm9maWxlOm51bGwsYmJveDpudWxsLGJlZ2luOm51bGwsYmlhczpxZSxieTpudWxsLGNhbGNNb2RlOm51bGwsY2FwSGVpZ2h0OnFlLGNsYXNzTmFtZTpVcixjbGlwOm51bGwsY2xpcFBhdGg6bnVsbCxjbGlwUGF0aFVuaXRzOm51bGwsY2xpcFJ1bGU6bnVsbCxjb2xvcjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbjpudWxsLGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnM6bnVsbCxjb2xvclByb2ZpbGU6bnVsbCxjb2xvclJlbmRlcmluZzpudWxsLGNvbnRlbnQ6bnVsbCxjb250ZW50U2NyaXB0VHlwZTpudWxsLGNvbnRlbnRTdHlsZVR5cGU6bnVsbCxjcm9zc09yaWdpbjpudWxsLGN1cnNvcjpudWxsLGN4Om51bGwsY3k6bnVsbCxkOm51bGwsZGF0YVR5cGU6bnVsbCxkZWZhdWx0QWN0aW9uOm51bGwsZGVzY2VudDpxZSxkaWZmdXNlQ29uc3RhbnQ6cWUsZGlyZWN0aW9uOm51bGwsZGlzcGxheTpudWxsLGR1cjpudWxsLGRpdmlzb3I6cWUsZG9taW5hbnRCYXNlbGluZTpudWxsLGRvd25sb2FkOkV0LGR4Om51bGwsZHk6bnVsbCxlZGdlTW9kZTpudWxsLGVkaXRhYmxlOm51bGwsZWxldmF0aW9uOnFlLGVuYWJsZUJhY2tncm91bmQ6bnVsbCxlbmQ6bnVsbCxldmVudDpudWxsLGV4cG9uZW50OnFlLGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6bnVsbCxmaWxsOm51bGwsZmlsbE9wYWNpdHk6cWUsZmlsbFJ1bGU6bnVsbCxmaWx0ZXI6bnVsbCxmaWx0ZXJSZXM6bnVsbCxmaWx0ZXJVbml0czpudWxsLGZsb29kQ29sb3I6bnVsbCxmbG9vZE9wYWNpdHk6bnVsbCxmb2N1c2FibGU6bnVsbCxmb2N1c0hpZ2hsaWdodDpudWxsLGZvbnRGYW1pbHk6bnVsbCxmb250U2l6ZTpudWxsLGZvbnRTaXplQWRqdXN0Om51bGwsZm9udFN0cmV0Y2g6bnVsbCxmb250U3R5bGU6bnVsbCxmb250VmFyaWFudDpudWxsLGZvbnRXZWlnaHQ6bnVsbCxmb3JtYXQ6bnVsbCxmcjpudWxsLGZyb206bnVsbCxmeDpudWxsLGZ5Om51bGwsZzE6djQsZzI6djQsZ2x5cGhOYW1lOnY0LGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOm51bGwsZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsOm51bGwsZ2x5cGhSZWY6bnVsbCxncmFkaWVudFRyYW5zZm9ybTpudWxsLGdyYWRpZW50VW5pdHM6bnVsbCxoYW5kbGVyOm51bGwsaGFuZ2luZzpxZSxoYXRjaENvbnRlbnRVbml0czpudWxsLGhhdGNoVW5pdHM6bnVsbCxoZWlnaHQ6bnVsbCxocmVmOm51bGwsaHJlZkxhbmc6bnVsbCxob3JpekFkdlg6cWUsaG9yaXpPcmlnaW5YOnFlLGhvcml6T3JpZ2luWTpxZSxpZDpudWxsLGlkZW9ncmFwaGljOnFlLGltYWdlUmVuZGVyaW5nOm51bGwsaW5pdGlhbFZpc2liaWxpdHk6bnVsbCxpbjpudWxsLGluMjpudWxsLGludGVyY2VwdDpxZSxrOnFlLGsxOnFlLGsyOnFlLGszOnFlLGs0OnFlLGtlcm5lbE1hdHJpeDprbixrZXJuZWxVbml0TGVuZ3RoOm51bGwsa2V5UG9pbnRzOm51bGwsa2V5U3BsaW5lczpudWxsLGtleVRpbWVzOm51bGwsa2VybmluZzpudWxsLGxhbmc6bnVsbCxsZW5ndGhBZGp1c3Q6bnVsbCxsZXR0ZXJTcGFjaW5nOm51bGwsbGlnaHRpbmdDb2xvcjpudWxsLGxpbWl0aW5nQ29uZUFuZ2xlOnFlLGxvY2FsOm51bGwsbWFya2VyRW5kOm51bGwsbWFya2VyTWlkOm51bGwsbWFya2VyU3RhcnQ6bnVsbCxtYXJrZXJIZWlnaHQ6bnVsbCxtYXJrZXJVbml0czpudWxsLG1hcmtlcldpZHRoOm51bGwsbWFzazpudWxsLG1hc2tDb250ZW50VW5pdHM6bnVsbCxtYXNrVW5pdHM6bnVsbCxtYXRoZW1hdGljYWw6bnVsbCxtYXg6bnVsbCxtZWRpYTpudWxsLG1lZGlhQ2hhcmFjdGVyRW5jb2Rpbmc6bnVsbCxtZWRpYUNvbnRlbnRFbmNvZGluZ3M6bnVsbCxtZWRpYVNpemU6cWUsbWVkaWFUaW1lOm51bGwsbWV0aG9kOm51bGwsbWluOm51bGwsbW9kZTpudWxsLG5hbWU6bnVsbCxuYXZEb3duOm51bGwsbmF2RG93bkxlZnQ6bnVsbCxuYXZEb3duUmlnaHQ6bnVsbCxuYXZMZWZ0Om51bGwsbmF2TmV4dDpudWxsLG5hdlByZXY6bnVsbCxuYXZSaWdodDpudWxsLG5hdlVwOm51bGwsbmF2VXBMZWZ0Om51bGwsbmF2VXBSaWdodDpudWxsLG51bU9jdGF2ZXM6bnVsbCxvYnNlcnZlcjpudWxsLG9mZnNldDpudWxsLG9uQWJvcnQ6bnVsbCxvbkFjdGl2YXRlOm51bGwsb25BZnRlclByaW50Om51bGwsb25CZWZvcmVQcmludDpudWxsLG9uQmVnaW46bnVsbCxvbkNhbmNlbDpudWxsLG9uQ2FuUGxheTpudWxsLG9uQ2FuUGxheVRocm91Z2g6bnVsbCxvbkNoYW5nZTpudWxsLG9uQ2xpY2s6bnVsbCxvbkNsb3NlOm51bGwsb25Db3B5Om51bGwsb25DdWVDaGFuZ2U6bnVsbCxvbkN1dDpudWxsLG9uRGJsQ2xpY2s6bnVsbCxvbkRyYWc6bnVsbCxvbkRyYWdFbmQ6bnVsbCxvbkRyYWdFbnRlcjpudWxsLG9uRHJhZ0V4aXQ6bnVsbCxvbkRyYWdMZWF2ZTpudWxsLG9uRHJhZ092ZXI6bnVsbCxvbkRyYWdTdGFydDpudWxsLG9uRHJvcDpudWxsLG9uRHVyYXRpb25DaGFuZ2U6bnVsbCxvbkVtcHRpZWQ6bnVsbCxvbkVuZDpudWxsLG9uRW5kZWQ6bnVsbCxvbkVycm9yOm51bGwsb25Gb2N1czpudWxsLG9uRm9jdXNJbjpudWxsLG9uRm9jdXNPdXQ6bnVsbCxvbkhhc2hDaGFuZ2U6bnVsbCxvbklucHV0Om51bGwsb25JbnZhbGlkOm51bGwsb25LZXlEb3duOm51bGwsb25LZXlQcmVzczpudWxsLG9uS2V5VXA6bnVsbCxvbkxvYWQ6bnVsbCxvbkxvYWRlZERhdGE6bnVsbCxvbkxvYWRlZE1ldGFkYXRhOm51bGwsb25Mb2FkU3RhcnQ6bnVsbCxvbk1lc3NhZ2U6bnVsbCxvbk1vdXNlRG93bjpudWxsLG9uTW91c2VFbnRlcjpudWxsLG9uTW91c2VMZWF2ZTpudWxsLG9uTW91c2VNb3ZlOm51bGwsb25Nb3VzZU91dDpudWxsLG9uTW91c2VPdmVyOm51bGwsb25Nb3VzZVVwOm51bGwsb25Nb3VzZVdoZWVsOm51bGwsb25PZmZsaW5lOm51bGwsb25PbmxpbmU6bnVsbCxvblBhZ2VIaWRlOm51bGwsb25QYWdlU2hvdzpudWxsLG9uUGFzdGU6bnVsbCxvblBhdXNlOm51bGwsb25QbGF5Om51bGwsb25QbGF5aW5nOm51bGwsb25Qb3BTdGF0ZTpudWxsLG9uUHJvZ3Jlc3M6bnVsbCxvblJhdGVDaGFuZ2U6bnVsbCxvblJlcGVhdDpudWxsLG9uUmVzZXQ6bnVsbCxvblJlc2l6ZTpudWxsLG9uU2Nyb2xsOm51bGwsb25TZWVrZWQ6bnVsbCxvblNlZWtpbmc6bnVsbCxvblNlbGVjdDpudWxsLG9uU2hvdzpudWxsLG9uU3RhbGxlZDpudWxsLG9uU3RvcmFnZTpudWxsLG9uU3VibWl0Om51bGwsb25TdXNwZW5kOm51bGwsb25UaW1lVXBkYXRlOm51bGwsb25Ub2dnbGU6bnVsbCxvblVubG9hZDpudWxsLG9uVm9sdW1lQ2hhbmdlOm51bGwsb25XYWl0aW5nOm51bGwsb25ab29tOm51bGwsb3BhY2l0eTpudWxsLG9wZXJhdG9yOm51bGwsb3JkZXI6bnVsbCxvcmllbnQ6bnVsbCxvcmllbnRhdGlvbjpudWxsLG9yaWdpbjpudWxsLG92ZXJmbG93Om51bGwsb3ZlcmxheTpudWxsLG92ZXJsaW5lUG9zaXRpb246cWUsb3ZlcmxpbmVUaGlja25lc3M6cWUscGFpbnRPcmRlcjpudWxsLHBhbm9zZTE6bnVsbCxwYXRoOm51bGwscGF0aExlbmd0aDpxZSxwYXR0ZXJuQ29udGVudFVuaXRzOm51bGwscGF0dGVyblRyYW5zZm9ybTpudWxsLHBhdHRlcm5Vbml0czpudWxsLHBoYXNlOm51bGwscGluZzpVcixwaXRjaDpudWxsLHBsYXliYWNrT3JkZXI6bnVsbCxwb2ludGVyRXZlbnRzOm51bGwscG9pbnRzOm51bGwscG9pbnRzQXRYOnFlLHBvaW50c0F0WTpxZSxwb2ludHNBdFo6cWUscHJlc2VydmVBbHBoYTpudWxsLHByZXNlcnZlQXNwZWN0UmF0aW86bnVsbCxwcmltaXRpdmVVbml0czpudWxsLHByb3BhZ2F0ZTpudWxsLHByb3BlcnR5OmtuLHI6bnVsbCxyYWRpdXM6bnVsbCxyZWZlcnJlclBvbGljeTpudWxsLHJlZlg6bnVsbCxyZWZZOm51bGwscmVsOmtuLHJldjprbixyZW5kZXJpbmdJbnRlbnQ6bnVsbCxyZXBlYXRDb3VudDpudWxsLHJlcGVhdER1cjpudWxsLHJlcXVpcmVkRXh0ZW5zaW9uczprbixyZXF1aXJlZEZlYXR1cmVzOmtuLHJlcXVpcmVkRm9udHM6a24scmVxdWlyZWRGb3JtYXRzOmtuLHJlc291cmNlOm51bGwscmVzdGFydDpudWxsLHJlc3VsdDpudWxsLHJvdGF0ZTpudWxsLHJ4Om51bGwscnk6bnVsbCxzY2FsZTpudWxsLHNlZWQ6bnVsbCxzaGFwZVJlbmRlcmluZzpudWxsLHNpZGU6bnVsbCxzbG9wZTpudWxsLHNuYXBzaG90VGltZTpudWxsLHNwZWN1bGFyQ29uc3RhbnQ6cWUsc3BlY3VsYXJFeHBvbmVudDpxZSxzcHJlYWRNZXRob2Q6bnVsbCxzcGFjaW5nOm51bGwsc3RhcnRPZmZzZXQ6bnVsbCxzdGREZXZpYXRpb246bnVsbCxzdGVtaDpudWxsLHN0ZW12Om51bGwsc3RpdGNoVGlsZXM6bnVsbCxzdG9wQ29sb3I6bnVsbCxzdG9wT3BhY2l0eTpudWxsLHN0cmlrZXRocm91Z2hQb3NpdGlvbjpxZSxzdHJpa2V0aHJvdWdoVGhpY2tuZXNzOnFlLHN0cmluZzpudWxsLHN0cm9rZTpudWxsLHN0cm9rZURhc2hBcnJheTprbixzdHJva2VEYXNoT2Zmc2V0Om51bGwsc3Ryb2tlTGluZUNhcDpudWxsLHN0cm9rZUxpbmVKb2luOm51bGwsc3Ryb2tlTWl0ZXJMaW1pdDpxZSxzdHJva2VPcGFjaXR5OnFlLHN0cm9rZVdpZHRoOm51bGwsc3R5bGU6bnVsbCxzdXJmYWNlU2NhbGU6cWUsc3luY0JlaGF2aW9yOm51bGwsc3luY0JlaGF2aW9yRGVmYXVsdDpudWxsLHN5bmNNYXN0ZXI6bnVsbCxzeW5jVG9sZXJhbmNlOm51bGwsc3luY1RvbGVyYW5jZURlZmF1bHQ6bnVsbCxzeXN0ZW1MYW5ndWFnZTprbix0YWJJbmRleDpxZSx0YWJsZVZhbHVlczpudWxsLHRhcmdldDpudWxsLHRhcmdldFg6cWUsdGFyZ2V0WTpxZSx0ZXh0QW5jaG9yOm51bGwsdGV4dERlY29yYXRpb246bnVsbCx0ZXh0UmVuZGVyaW5nOm51bGwsdGV4dExlbmd0aDpudWxsLHRpbWVsaW5lQmVnaW46bnVsbCx0aXRsZTpudWxsLHRyYW5zZm9ybUJlaGF2aW9yOm51bGwsdHlwZTpudWxsLHR5cGVPZjprbix0bzpudWxsLHRyYW5zZm9ybTpudWxsLHRyYW5zZm9ybU9yaWdpbjpudWxsLHUxOm51bGwsdTI6bnVsbCx1bmRlcmxpbmVQb3NpdGlvbjpxZSx1bmRlcmxpbmVUaGlja25lc3M6cWUsdW5pY29kZTpudWxsLHVuaWNvZGVCaWRpOm51bGwsdW5pY29kZVJhbmdlOm51bGwsdW5pdHNQZXJFbTpxZSx2YWx1ZXM6bnVsbCx2QWxwaGFiZXRpYzpxZSx2TWF0aGVtYXRpY2FsOnFlLHZlY3RvckVmZmVjdDpudWxsLHZIYW5naW5nOnFlLHZJZGVvZ3JhcGhpYzpxZSx2ZXJzaW9uOm51bGwsdmVydEFkdlk6cWUsdmVydE9yaWdpblg6cWUsdmVydE9yaWdpblk6cWUsdmlld0JveDpudWxsLHZpZXdUYXJnZXQ6bnVsbCx2aXNpYmlsaXR5Om51bGwsd2lkdGg6bnVsbCx3aWR0aHM6bnVsbCx3b3JkU3BhY2luZzpudWxsLHdyaXRpbmdNb2RlOm51bGwseDpudWxsLHgxOm51bGwseDI6bnVsbCx4Q2hhbm5lbFNlbGVjdG9yOm51bGwseEhlaWdodDpxZSx5Om51bGwseTE6bnVsbCx5MjpudWxsLHlDaGFubmVsU2VsZWN0b3I6bnVsbCx6Om51bGwsem9vbUFuZFBhbjpudWxsfSxzcGFjZToic3ZnIix0cmFuc2Zvcm06bUx9KX0pO3ZhciBScmUsWVFlPXAoKCk9PntiZCgpO1JyZT1fbyh7cHJvcGVydGllczp7eExpbmtBY3R1YXRlOm51bGwseExpbmtBcmNSb2xlOm51bGwseExpbmtIcmVmOm51bGwseExpbmtSb2xlOm51bGwseExpbmtTaG93Om51bGwseExpbmtUaXRsZTpudWxsLHhMaW5rVHlwZTpudWxsfSxzcGFjZToieGxpbmsiLHRyYW5zZm9ybShlLHQpe3JldHVybiJ4bGluazoiK3Quc2xpY2UoNSkudG9Mb3dlckNhc2UoKX19KX0pO3ZhciBCcmUsWlFlPXAoKCk9PntiZCgpO09yZSgpO0JyZT1fbyh7YXR0cmlidXRlczp7eG1sbnN4bGluazoieG1sbnM6eGxpbmsifSxwcm9wZXJ0aWVzOnt4bWxuc1hMaW5rOm51bGwseG1sbnM6bnVsbH0sc3BhY2U6InhtbG5zIix0cmFuc2Zvcm06Z0x9KX0pO3ZhciBIcmUsWFFlPXAoKCk9PntiZCgpO0hyZT1fbyh7cHJvcGVydGllczp7eG1sQmFzZTpudWxsLHhtbExhbmc6bnVsbCx4bWxTcGFjZTpudWxsfSxzcGFjZToieG1sIix0cmFuc2Zvcm0oZSx0KXtyZXR1cm4ieG1sOiIrdC5zbGljZSgzKS50b0xvd2VyQ2FzZSgpfX0pfSk7dmFyIFFRZT1wKCgpPT57fSk7ZnVuY3Rpb24gcXJlKGUsdCl7bGV0IHI9dnAodCksaT10LGE9Rmk7aWYociBpbiBlLm5vcm1hbClyZXR1cm4gZS5wcm9wZXJ0eVtlLm5vcm1hbFtyXV07aWYoci5sZW5ndGg+NCYmci5zbGljZSgwLDQpPT09ImRhdGEiJiZLcXIudGVzdCh0KSl7aWYodC5jaGFyQXQoNCk9PT0iLSIpe2xldCBuPXQuc2xpY2UoNSkucmVwbGFjZShKUWUsdGpyKTtpPSJkYXRhIituLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK24uc2xpY2UoMSl9ZWxzZXtsZXQgbj10LnNsaWNlKDQpO2lmKCFKUWUudGVzdChuKSl7bGV0IG89bi5yZXBsYWNlKEpxcixlanIpO28uY2hhckF0KDApIT09Ii0iJiYobz0iLSIrbyksdD0iZGF0YSIrb319YT1nZH1yZXR1cm4gbmV3IGEoaSx0KX1mdW5jdGlvbiBlanIoZSl7cmV0dXJuIi0iK2UudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB0anIoZSl7cmV0dXJuIGUuY2hhckF0KDEpLnRvVXBwZXJDYXNlKCl9dmFyIEpxcixKUWUsS3FyLEtRZT1wKCgpPT57UHJlKCk7JHJlKCk7aEwoKTtKcXI9L1tBLVpdL2csSlFlPS8tW2Etel0vZyxLcXI9L15kYXRhWy1cdy46XSskL2l9KTt2YXIgZUplLGJMLGpyZT1wKCgpPT57SFFlKCk7alFlKCk7VVFlKCk7R1FlKCk7WVFlKCk7WlFlKCk7WFFlKCk7UVFlKCk7S1FlKCk7aEwoKTtlSmU9RXJlKFtOcmUsVlFlLFJyZSxCcmUsSHJlXSwiaHRtbCIpLGJMPUVyZShbTnJlLFdRZSxScmUsQnJlLEhyZV0sInN2ZyIpfSk7ZnVuY3Rpb24gVnJlKGUsdCl7aWYoZT1lLnJlcGxhY2UodC5zdWJzZXQ/b2pyKHQuc3Vic2V0KTpyanIsaSksdC5zdWJzZXR8fHQuZXNjYXBlT25seSlyZXR1cm4gZTtyZXR1cm4gZS5yZXBsYWNlKGlqcixyKS5yZXBsYWNlKGFqcixpKTtmdW5jdGlvbiByKGEsbixvKXtyZXR1cm4gdC5mb3JtYXQoKGEuY2hhckNvZGVBdCgwKS01NTI5NikqMTAyNCthLmNoYXJDb2RlQXQoMSktNTYzMjArNjU1MzYsby5jaGFyQ29kZUF0KG4rMiksdCl9ZnVuY3Rpb24gaShhLG4sbyl7cmV0dXJuIHQuZm9ybWF0KGEuY2hhckNvZGVBdCgwKSxvLmNoYXJDb2RlQXQobisxKSx0KX19ZnVuY3Rpb24gb2pyKGUpe2xldCB0PXRKZS5nZXQoZSk7cmV0dXJuIHR8fCh0PXNqcihlKSx0SmUuc2V0KGUsdCkpLHR9ZnVuY3Rpb24gc2pyKGUpe2xldCB0PVtdLHI9LTE7Zm9yKDsrK3I8ZS5sZW5ndGg7KXQucHVzaChlW3JdLnJlcGxhY2UobmpyLCJcXCQmIikpO3JldHVybiBuZXcgUmVnRXhwKCIoPzoiK3Quam9pbigifCIpKyIpIiwiZyIpfXZhciByanIsaWpyLGFqcixuanIsdEplLHJKZT1wKCgpPT57cmpyPS9bIiYnPD5gXS9nLGlqcj0vW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csYWpyPS9bXHgwMS1cdFx2XGZceDBFLVx4MUZceDdGXHg4MVx4OERceDhGXHg5MFx4OURceEEwLVx1RkZGRl0vZyxuanI9L1t8XFx7fSgpW1xdXiQrKj8uXS9nLHRKZT1uZXcgV2Vha01hcH0pO2Z1bmN0aW9uIGlKZShlLHQscil7bGV0IGk9IiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gciYmdCYmIWxqci50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUodCkpP2k6aSsiOyJ9dmFyIGxqcixhSmU9cCgoKT0+e2xqcj0vW1xkQS1GYS1mXS99KTtmdW5jdGlvbiBuSmUoZSx0LHIpe2xldCBpPSImIyIrU3RyaW5nKGUpO3JldHVybiByJiZ0JiYhY2pyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZSh0KSk/aTppKyI7In12YXIgY2pyLG9KZT1wKCgpPT57Y2pyPS9cZC99KTt2YXIgc0plLGxKZT1wKCgpPT57c0plPVsiQUVsaWciLCJBTVAiLCJBYWN1dGUiLCJBY2lyYyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQXVtbCIsIkNPUFkiLCJDY2VkaWwiLCJFVEgiLCJFYWN1dGUiLCJFY2lyYyIsIkVncmF2ZSIsIkV1bWwiLCJHVCIsIklhY3V0ZSIsIkljaXJjIiwiSWdyYXZlIiwiSXVtbCIsIkxUIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmMiLCJPZ3JhdmUiLCJPc2xhc2giLCJPdGlsZGUiLCJPdW1sIiwiUVVPVCIsIlJFRyIsIlRIT1JOIiwiVWFjdXRlIiwiVWNpcmMiLCJVZ3JhdmUiLCJVdW1sIiwiWWFjdXRlIiwiYWFjdXRlIiwiYWNpcmMiLCJhY3V0ZSIsImFlbGlnIiwiYWdyYXZlIiwiYW1wIiwiYXJpbmciLCJhdGlsZGUiLCJhdW1sIiwiYnJ2YmFyIiwiY2NlZGlsIiwiY2VkaWwiLCJjZW50IiwiY29weSIsImN1cnJlbiIsImRlZyIsImRpdmlkZSIsImVhY3V0ZSIsImVjaXJjIiwiZWdyYXZlIiwiZXRoIiwiZXVtbCIsImZyYWMxMiIsImZyYWMxNCIsImZyYWMzNCIsImd0IiwiaWFjdXRlIiwiaWNpcmMiLCJpZXhjbCIsImlncmF2ZSIsImlxdWVzdCIsIml1bWwiLCJsYXF1byIsImx0IiwibWFjciIsIm1pY3JvIiwibWlkZG90IiwibmJzcCIsIm5vdCIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjIiwib2dyYXZlIiwib3JkZiIsIm9yZG0iLCJvc2xhc2giLCJvdGlsZGUiLCJvdW1sIiwicGFyYSIsInBsdXNtbiIsInBvdW5kIiwicXVvdCIsInJhcXVvIiwicmVnIiwic2VjdCIsInNoeSIsInN1cDEiLCJzdXAyIiwic3VwMyIsInN6bGlnIiwidGhvcm4iLCJ0aW1lcyIsInVhY3V0ZSIsInVjaXJjIiwidWdyYXZlIiwidW1sIiwidXVtbCIsInlhY3V0ZSIsInllbiIsInl1bWwiXX0pO3ZhciB2TCxjSmU9cCgoKT0+e3ZMPXtuYnNwOiJceEEwIixpZXhjbDoiXHhBMSIsY2VudDoiXHhBMiIscG91bmQ6Ilx4QTMiLGN1cnJlbjoiXHhBNCIseWVuOiJceEE1IixicnZiYXI6Ilx4QTYiLHNlY3Q6Ilx4QTciLHVtbDoiXHhBOCIsY29weToiXHhBOSIsb3JkZjoiXHhBQSIsbGFxdW86Ilx4QUIiLG5vdDoiXHhBQyIsc2h5OiJceEFEIixyZWc6Ilx4QUUiLG1hY3I6Ilx4QUYiLGRlZzoiXHhCMCIscGx1c21uOiJceEIxIixzdXAyOiJceEIyIixzdXAzOiJceEIzIixhY3V0ZToiXHhCNCIsbWljcm86Ilx4QjUiLHBhcmE6Ilx4QjYiLG1pZGRvdDoiXHhCNyIsY2VkaWw6Ilx4QjgiLHN1cDE6Ilx4QjkiLG9yZG06Ilx4QkEiLHJhcXVvOiJceEJCIixmcmFjMTQ6Ilx4QkMiLGZyYWMxMjoiXHhCRCIsZnJhYzM0OiJceEJFIixpcXVlc3Q6Ilx4QkYiLEFncmF2ZToiXHhDMCIsQWFjdXRlOiJceEMxIixBY2lyYzoiXHhDMiIsQXRpbGRlOiJceEMzIixBdW1sOiJceEM0IixBcmluZzoiXHhDNSIsQUVsaWc6Ilx4QzYiLENjZWRpbDoiXHhDNyIsRWdyYXZlOiJceEM4IixFYWN1dGU6Ilx4QzkiLEVjaXJjOiJceENBIixFdW1sOiJceENCIixJZ3JhdmU6Ilx4Q0MiLElhY3V0ZToiXHhDRCIsSWNpcmM6Ilx4Q0UiLEl1bWw6Ilx4Q0YiLEVUSDoiXHhEMCIsTnRpbGRlOiJceEQxIixPZ3JhdmU6Ilx4RDIiLE9hY3V0ZToiXHhEMyIsT2NpcmM6Ilx4RDQiLE90aWxkZToiXHhENSIsT3VtbDoiXHhENiIsdGltZXM6Ilx4RDciLE9zbGFzaDoiXHhEOCIsVWdyYXZlOiJceEQ5IixVYWN1dGU6Ilx4REEiLFVjaXJjOiJceERCIixVdW1sOiJceERDIixZYWN1dGU6Ilx4REQiLFRIT1JOOiJceERFIixzemxpZzoiXHhERiIsYWdyYXZlOiJceEUwIixhYWN1dGU6Ilx4RTEiLGFjaXJjOiJceEUyIixhdGlsZGU6Ilx4RTMiLGF1bWw6Ilx4RTQiLGFyaW5nOiJceEU1IixhZWxpZzoiXHhFNiIsY2NlZGlsOiJceEU3IixlZ3JhdmU6Ilx4RTgiLGVhY3V0ZToiXHhFOSIsZWNpcmM6Ilx4RUEiLGV1bWw6Ilx4RUIiLGlncmF2ZToiXHhFQyIsaWFjdXRlOiJceEVEIixpY2lyYzoiXHhFRSIsaXVtbDoiXHhFRiIsZXRoOiJceEYwIixudGlsZGU6Ilx4RjEiLG9ncmF2ZToiXHhGMiIsb2FjdXRlOiJceEYzIixvY2lyYzoiXHhGNCIsb3RpbGRlOiJceEY1IixvdW1sOiJceEY2IixkaXZpZGU6Ilx4RjciLG9zbGFzaDoiXHhGOCIsdWdyYXZlOiJceEY5Iix1YWN1dGU6Ilx4RkEiLHVjaXJjOiJceEZCIix1dW1sOiJceEZDIix5YWN1dGU6Ilx4RkQiLHRob3JuOiJceEZFIix5dW1sOiJceEZGIixmbm9mOiJcdTAxOTIiLEFscGhhOiJcdTAzOTEiLEJldGE6Ilx1MDM5MiIsR2FtbWE6Ilx1MDM5MyIsRGVsdGE6Ilx1MDM5NCIsRXBzaWxvbjoiXHUwMzk1IixaZXRhOiJcdTAzOTYiLEV0YToiXHUwMzk3IixUaGV0YToiXHUwMzk4IixJb3RhOiJcdTAzOTkiLEthcHBhOiJcdTAzOUEiLExhbWJkYToiXHUwMzlCIixNdToiXHUwMzlDIixOdToiXHUwMzlEIixYaToiXHUwMzlFIixPbWljcm9uOiJcdTAzOUYiLFBpOiJcdTAzQTAiLFJobzoiXHUwM0ExIixTaWdtYToiXHUwM0EzIixUYXU6Ilx1MDNBNCIsVXBzaWxvbjoiXHUwM0E1IixQaGk6Ilx1MDNBNiIsQ2hpOiJcdTAzQTciLFBzaToiXHUwM0E4IixPbWVnYToiXHUwM0E5IixhbHBoYToiXHUwM0IxIixiZXRhOiJcdTAzQjIiLGdhbW1hOiJcdTAzQjMiLGRlbHRhOiJcdTAzQjQiLGVwc2lsb246Ilx1MDNCNSIsemV0YToiXHUwM0I2IixldGE6Ilx1MDNCNyIsdGhldGE6Ilx1MDNCOCIsaW90YToiXHUwM0I5IixrYXBwYToiXHUwM0JBIixsYW1iZGE6Ilx1MDNCQiIsbXU6Ilx1MDNCQyIsbnU6Ilx1MDNCRCIseGk6Ilx1MDNCRSIsb21pY3JvbjoiXHUwM0JGIixwaToiXHUwM0MwIixyaG86Ilx1MDNDMSIsc2lnbWFmOiJcdTAzQzIiLHNpZ21hOiJcdTAzQzMiLHRhdToiXHUwM0M0Iix1cHNpbG9uOiJcdTAzQzUiLHBoaToiXHUwM0M2IixjaGk6Ilx1MDNDNyIscHNpOiJcdTAzQzgiLG9tZWdhOiJcdTAzQzkiLHRoZXRhc3ltOiJcdTAzRDEiLHVwc2loOiJcdTAzRDIiLHBpdjoiXHUwM0Q2IixidWxsOiJcdTIwMjIiLGhlbGxpcDoiXHUyMDI2IixwcmltZToiXHUyMDMyIixQcmltZToiXHUyMDMzIixvbGluZToiXHUyMDNFIixmcmFzbDoiXHUyMDQ0Iix3ZWllcnA6Ilx1MjExOCIsaW1hZ2U6Ilx1MjExMSIscmVhbDoiXHUyMTFDIix0cmFkZToiXHUyMTIyIixhbGVmc3ltOiJcdTIxMzUiLGxhcnI6Ilx1MjE5MCIsdWFycjoiXHUyMTkxIixyYXJyOiJcdTIxOTIiLGRhcnI6Ilx1MjE5MyIsaGFycjoiXHUyMTk0IixjcmFycjoiXHUyMUI1IixsQXJyOiJcdTIxRDAiLHVBcnI6Ilx1MjFEMSIsckFycjoiXHUyMUQyIixkQXJyOiJcdTIxRDMiLGhBcnI6Ilx1MjFENCIsZm9yYWxsOiJcdTIyMDAiLHBhcnQ6Ilx1MjIwMiIsZXhpc3Q6Ilx1MjIwMyIsZW1wdHk6Ilx1MjIwNSIsbmFibGE6Ilx1MjIwNyIsaXNpbjoiXHUyMjA4Iixub3RpbjoiXHUyMjA5IixuaToiXHUyMjBCIixwcm9kOiJcdTIyMEYiLHN1bToiXHUyMjExIixtaW51czoiXHUyMjEyIixsb3dhc3Q6Ilx1MjIxNyIscmFkaWM6Ilx1MjIxQSIscHJvcDoiXHUyMjFEIixpbmZpbjoiXHUyMjFFIixhbmc6Ilx1MjIyMCIsYW5kOiJcdTIyMjciLG9yOiJcdTIyMjgiLGNhcDoiXHUyMjI5IixjdXA6Ilx1MjIyQSIsaW50OiJcdTIyMkIiLHRoZXJlNDoiXHUyMjM0IixzaW06Ilx1MjIzQyIsY29uZzoiXHUyMjQ1Iixhc3ltcDoiXHUyMjQ4IixuZToiXHUyMjYwIixlcXVpdjoiXHUyMjYxIixsZToiXHUyMjY0IixnZToiXHUyMjY1IixzdWI6Ilx1MjI4MiIsc3VwOiJcdTIyODMiLG5zdWI6Ilx1MjI4NCIsc3ViZToiXHUyMjg2IixzdXBlOiJcdTIyODciLG9wbHVzOiJcdTIyOTUiLG90aW1lczoiXHUyMjk3IixwZXJwOiJcdTIyQTUiLHNkb3Q6Ilx1MjJDNSIsbGNlaWw6Ilx1MjMwOCIscmNlaWw6Ilx1MjMwOSIsbGZsb29yOiJcdTIzMEEiLHJmbG9vcjoiXHUyMzBCIixsYW5nOiJcdTIzMjkiLHJhbmc6Ilx1MjMyQSIsbG96OiJcdTI1Q0EiLHNwYWRlczoiXHUyNjYwIixjbHViczoiXHUyNjYzIixoZWFydHM6Ilx1MjY2NSIsZGlhbXM6Ilx1MjY2NiIscXVvdDonIicsYW1wOiImIixsdDoiPCIsZ3Q6Ij4iLE9FbGlnOiJcdTAxNTIiLG9lbGlnOiJcdTAxNTMiLFNjYXJvbjoiXHUwMTYwIixzY2Fyb246Ilx1MDE2MSIsWXVtbDoiXHUwMTc4IixjaXJjOiJcdTAyQzYiLHRpbGRlOiJcdTAyREMiLGVuc3A6Ilx1MjAwMiIsZW1zcDoiXHUyMDAzIix0aGluc3A6Ilx1MjAwOSIsenduajoiXHUyMDBDIix6d2o6Ilx1MjAwRCIsbHJtOiJcdTIwMEUiLHJsbToiXHUyMDBGIixuZGFzaDoiXHUyMDEzIixtZGFzaDoiXHUyMDE0Iixsc3F1bzoiXHUyMDE4Iixyc3F1bzoiXHUyMDE5IixzYnF1bzoiXHUyMDFBIixsZHF1bzoiXHUyMDFDIixyZHF1bzoiXHUyMDFEIixiZHF1bzoiXHUyMDFFIixkYWdnZXI6Ilx1MjAyMCIsRGFnZ2VyOiJcdTIwMjEiLHBlcm1pbDoiXHUyMDMwIixsc2FxdW86Ilx1MjAzOSIscnNhcXVvOiJcdTIwM0EiLGV1cm86Ilx1MjBBQyJ9fSk7dmFyIGRKZSx1SmU9cCgoKT0+e2RKZT1bImNlbnQiLCJjb3B5IiwiZGl2aWRlIiwiZ3QiLCJsdCIsIm5vdCIsInBhcmEiLCJ0aW1lcyJdfSk7ZnVuY3Rpb24gaEplKGUsdCxyLGkpe2xldCBhPVN0cmluZy5mcm9tQ2hhckNvZGUoZSk7aWYocEplLmNhbGwoVXJlLGEpKXtsZXQgbj1VcmVbYV0sbz0iJiIrbjtyZXR1cm4gciYmc0plLmluY2x1ZGVzKG4pJiYhZEplLmluY2x1ZGVzKG4pJiYoIWl8fHQmJnQhPT02MSYmZGpyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZSh0KSkpP286bysiOyJ9cmV0dXJuIiJ9dmFyIHBKZSxVcmUseEwsZGpyLGZKZT1wKCgpPT57bEplKCk7Y0plKCk7dUplKCk7cEplPXt9Lmhhc093blByb3BlcnR5LFVyZT17fTtmb3IoeEwgaW4gdkwpcEplLmNhbGwodkwseEwpJiYoVXJlW3ZMW3hMXV09eEwpO2Rqcj0vW15cZEEtWmEtel0vfSk7ZnVuY3Rpb24gbUplKGUsdCxyKXtsZXQgaT1pSmUoZSx0LHIub21pdE9wdGlvbmFsU2VtaWNvbG9ucyksYTtpZigoci51c2VOYW1lZFJlZmVyZW5jZXN8fHIudXNlU2hvcnRlc3RSZWZlcmVuY2VzKSYmKGE9aEplKGUsdCxyLm9taXRPcHRpb25hbFNlbWljb2xvbnMsci5hdHRyaWJ1dGUpKSwoci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fCFhKSYmci51c2VTaG9ydGVzdFJlZmVyZW5jZXMpe2xldCBuPW5KZShlLHQsci5vbWl0T3B0aW9uYWxTZW1pY29sb25zKTtuLmxlbmd0aDxpLmxlbmd0aCYmKGk9bil9cmV0dXJuIGEmJighci51c2VTaG9ydGVzdFJlZmVyZW5jZXN8fGEubGVuZ3RoPGkubGVuZ3RoKT9hOml9dmFyIGdKZT1wKCgpPT57YUplKCk7b0plKCk7ZkplKCl9KTtmdW5jdGlvbiBiSmUoZSl7cmV0dXJuIiYjeCIrZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiOyJ9dmFyIHZKZT1wKCgpPT57fSk7ZnVuY3Rpb24gc2MoZSx0KXtyZXR1cm4gVnJlKGUsT2JqZWN0LmFzc2lnbih7Zm9ybWF0Om1KZX0sdCkpfWZ1bmN0aW9uIGhXaShlLHQpe3JldHVybiBWcmUoZSxPYmplY3QuYXNzaWduKHtmb3JtYXQ6YkplfSx0KSl9dmFyIHhKZT1wKCgpPT57ckplKCk7Z0plKCk7dkplKCl9KTt2YXIgeUw9cCgoKT0+e3hKZSgpfSk7ZnVuY3Rpb24geUplKGUsdCxyLGkpe3JldHVybiBpLnNldHRpbmdzLmJvZ3VzQ29tbWVudHM/Ijw/IitzYyhlLnZhbHVlLE9iamVjdC5hc3NpZ24oe30saS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6cGpyfSkpKyI+IjoiPCEtLSIrZS52YWx1ZS5yZXBsYWNlKHVqcixhKSsiLS0+IjtmdW5jdGlvbiBhKG4pe3JldHVybiBzYyhuLE9iamVjdC5hc3NpZ24oe30saS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6aGpyfSkpfX12YXIgdWpyLHBqcixoanIsd0plPXAoKCk9Pnt5TCgpO3Vqcj0vXj58Xi0+fDwhLS18LS0+fC0tIT58PCEtJC9nLHBqcj1bIj4iXSxoanI9WyI8IiwiPiJdfSk7ZnVuY3Rpb24gTUplKGUsdCxyLGkpe3JldHVybiI8ISIrKGkuc2V0dGluZ3MudXBwZXJEb2N0eXBlPyJET0NUWVBFIjoiZG9jdHlwZSIpKyhpLnNldHRpbmdzLnRpZ2h0RG9jdHlwZT8iIjoiICIpKyJodG1sPiJ9dmFyIGtKZT1wKCgpPT57fSk7ZnVuY3Rpb24geVdpKGUpe2xldCB0PVtdLHI9U3RyaW5nKGV8fCIiKSxpPXIuaW5kZXhPZigiLCIpLGE9MCxuPSExO2Zvcig7IW47KXtpPT09LTEmJihpPXIubGVuZ3RoLG49ITApO2xldCBvPXIuc2xpY2UoYSxpKS50cmltKCk7KG98fCFuKSYmdC5wdXNoKG8pLGE9aSsxLGk9ci5pbmRleE9mKCIsIixhKX1yZXR1cm4gdH1mdW5jdGlvbiBTSmUoZSx0KXtsZXQgcj10fHx7fTtyZXR1cm4oZVtlLmxlbmd0aC0xXT09PSIiP1suLi5lLCIiXTplKS5qb2luKChyLnBhZFJpZ2h0PyIgIjoiIikrIiwiKyhyLnBhZExlZnQ9PT0hMT8iIjoiICIpKS50cmltKCl9dmFyIHpKZT1wKCgpPT57fSk7ZnVuY3Rpb24gTVdpKGUpe2xldCB0PVN0cmluZyhlfHwiIikudHJpbSgpO3JldHVybiB0P3Quc3BsaXQoL1sgXHRcblxyXGZdKy9nKTpbXX1mdW5jdGlvbiBDSmUoZSl7cmV0dXJuIGUuam9pbigiICIpLnRyaW0oKX12YXIgVEplPXAoKCk9Pnt9KTtmdW5jdGlvbiB2ZChlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiP2UudHlwZT09PSJ0ZXh0Ij9fSmUoZS52YWx1ZSk6ITE6X0plKGUpfWZ1bmN0aW9uIF9KZShlKXtyZXR1cm4gZS5yZXBsYWNlKGZqciwiIik9PT0iIn12YXIgZmpyLExKZT1wKCgpPT57ZmpyPS9bIFx0XG5cZlxyXS9nfSk7dmFyIHdMPXAoKCk9PntMSmUoKX0pO2Z1bmN0aW9uIEFKZShlKXtyZXR1cm4gdDtmdW5jdGlvbiB0KHIsaSxhKXtsZXQgbj1yP3IuY2hpbGRyZW46bWpyLG89KGl8fDApK2Uscz1uW29dO2lmKCFhKWZvcig7cyYmdmQocyk7KW8rPWUscz1uW29dO3JldHVybiBzfX12YXIgVTEsV3JlLG1qcixHcmU9cCgoKT0+e3dMKCk7VTE9QUplKDEpLFdyZT1BSmUoLTEpLG1qcj1bXX0pO2Z1bmN0aW9uIE1MKGUpe3JldHVybiB0O2Z1bmN0aW9uIHQocixpLGEpe3JldHVybiBnanIuY2FsbChlLHIudGFnTmFtZSkmJmVbci50YWdOYW1lXShyLGksYSl9fXZhciBnanIsWXJlPXAoKCk9PntnanI9e30uaGFzT3duUHJvcGVydHl9KTtmdW5jdGlvbiBacmUoZSx0LHIpe2xldCBpPVUxKHIsdCwhMCk7cmV0dXJuIWl8fGkudHlwZSE9PSJjb21tZW50IiYmIShpLnR5cGU9PT0idGV4dCImJnZkKGkudmFsdWUuY2hhckF0KDApKSl9ZnVuY3Rpb24gYmpyKGUsdCxyKXtsZXQgaT1VMShyLHQpO3JldHVybiFpfHxpLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24gdmpyKGUsdCxyKXtsZXQgaT1VMShyLHQpO3JldHVybiFpfHxpLnR5cGUhPT0iY29tbWVudCJ9ZnVuY3Rpb24geGpyKGUsdCxyKXtsZXQgaT1VMShyLHQpO3JldHVybiBpP2kudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJhZGRyZXNzInx8aS50YWdOYW1lPT09ImFydGljbGUifHxpLnRhZ05hbWU9PT0iYXNpZGUifHxpLnRhZ05hbWU9PT0iYmxvY2txdW90ZSJ8fGkudGFnTmFtZT09PSJkZXRhaWxzInx8aS50YWdOYW1lPT09ImRpdiJ8fGkudGFnTmFtZT09PSJkbCJ8fGkudGFnTmFtZT09PSJmaWVsZHNldCJ8fGkudGFnTmFtZT09PSJmaWdjYXB0aW9uInx8aS50YWdOYW1lPT09ImZpZ3VyZSJ8fGkudGFnTmFtZT09PSJmb290ZXIifHxpLnRhZ05hbWU9PT0iZm9ybSJ8fGkudGFnTmFtZT09PSJoMSJ8fGkudGFnTmFtZT09PSJoMiJ8fGkudGFnTmFtZT09PSJoMyJ8fGkudGFnTmFtZT09PSJoNCJ8fGkudGFnTmFtZT09PSJoNSJ8fGkudGFnTmFtZT09PSJoNiJ8fGkudGFnTmFtZT09PSJoZWFkZXIifHxpLnRhZ05hbWU9PT0iaGdyb3VwInx8aS50YWdOYW1lPT09ImhyInx8aS50YWdOYW1lPT09Im1haW4ifHxpLnRhZ05hbWU9PT0ibWVudSJ8fGkudGFnTmFtZT09PSJuYXYifHxpLnRhZ05hbWU9PT0ib2wifHxpLnRhZ05hbWU9PT0icCJ8fGkudGFnTmFtZT09PSJwcmUifHxpLnRhZ05hbWU9PT0ic2VjdGlvbiJ8fGkudGFnTmFtZT09PSJ0YWJsZSJ8fGkudGFnTmFtZT09PSJ1bCIpOiFyfHwhKHIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJhInx8ci50YWdOYW1lPT09ImF1ZGlvInx8ci50YWdOYW1lPT09ImRlbCJ8fHIudGFnTmFtZT09PSJpbnMifHxyLnRhZ05hbWU9PT0ibWFwInx8ci50YWdOYW1lPT09Im5vc2NyaXB0Inx8ci50YWdOYW1lPT09InZpZGVvIikpfWZ1bmN0aW9uIHlqcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0ibGkifWZ1bmN0aW9uIHdqcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4hIShpJiZpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0iZHQifHxpLnRhZ05hbWU9PT0iZGQiKSl9ZnVuY3Rpb24gTWpyKGUsdCxyKXtsZXQgaT1VMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0iZHQifHxpLnRhZ05hbWU9PT0iZGQiKX1mdW5jdGlvbiBESmUoZSx0LHIpe2xldCBpPVUxKHIsdCk7cmV0dXJuIWl8fGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJycCJ8fGkudGFnTmFtZT09PSJydCIpfWZ1bmN0aW9uIGtqcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0ib3B0Z3JvdXAifWZ1bmN0aW9uIFNqcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09Im9wdGlvbiJ8fGkudGFnTmFtZT09PSJvcHRncm91cCIpfWZ1bmN0aW9uIHpqcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4hIShpJiZpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0idGJvZHkifHxpLnRhZ05hbWU9PT0idGZvb3QiKSl9ZnVuY3Rpb24gQ2pyKGUsdCxyKXtsZXQgaT1VMShyLHQpO3JldHVybiFpfHxpLnR5cGU9PT0iZWxlbWVudCImJihpLnRhZ05hbWU9PT0idGJvZHkifHxpLnRhZ05hbWU9PT0idGZvb3QiKX1mdW5jdGlvbiBUanIoZSx0LHIpe3JldHVybiFVMShyLHQpfWZ1bmN0aW9uIF9qcihlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0idHIifWZ1bmN0aW9uIEVKZShlLHQscil7bGV0IGk9VTEocix0KTtyZXR1cm4haXx8aS50eXBlPT09ImVsZW1lbnQiJiYoaS50YWdOYW1lPT09InRkInx8aS50YWdOYW1lPT09InRoIil9dmFyIEs5LFhyZT1wKCgpPT57d0woKTtHcmUoKTtZcmUoKTtLOT1NTCh7Ym9keTp2anIsY2FwdGlvbjpacmUsY29sZ3JvdXA6WnJlLGRkOk1qcixkdDp3anIsaGVhZDpacmUsaHRtbDpianIsbGk6eWpyLG9wdGdyb3VwOmtqcixvcHRpb246U2pyLHA6eGpyLHJwOkRKZSxydDpESmUsdGJvZHk6Q2pyLHRkOkVKZSx0Zm9vdDpUanIsdGg6RUplLHRoZWFkOnpqcix0cjpfanJ9KX0pO2Z1bmN0aW9uIExqcihlKXtsZXQgdD1VMShlLC0xKTtyZXR1cm4hdHx8dC50eXBlIT09ImNvbW1lbnQifWZ1bmN0aW9uIEFqcihlKXtsZXQgdD1uZXcgU2V0O2ZvcihsZXQgaSBvZiBlLmNoaWxkcmVuKWlmKGkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJiYXNlInx8aS50YWdOYW1lPT09InRpdGxlIikpe2lmKHQuaGFzKGkudGFnTmFtZSkpcmV0dXJuITE7dC5hZGQoaS50YWdOYW1lKX1sZXQgcj1lLmNoaWxkcmVuWzBdO3JldHVybiFyfHxyLnR5cGU9PT0iZWxlbWVudCJ9ZnVuY3Rpb24gRGpyKGUpe2xldCB0PVUxKGUsLTEsITApO3JldHVybiF0fHx0LnR5cGUhPT0iY29tbWVudCImJiEodC50eXBlPT09InRleHQiJiZ2ZCh0LnZhbHVlLmNoYXJBdCgwKSkpJiYhKHQudHlwZT09PSJlbGVtZW50IiYmKHQudGFnTmFtZT09PSJtZXRhInx8dC50YWdOYW1lPT09ImxpbmsifHx0LnRhZ05hbWU9PT0ic2NyaXB0Inx8dC50YWdOYW1lPT09InN0eWxlInx8dC50YWdOYW1lPT09InRlbXBsYXRlIikpfWZ1bmN0aW9uIEVqcihlLHQscil7bGV0IGk9V3JlKHIsdCksYT1VMShlLC0xLCEwKTtyZXR1cm4gciYmaSYmaS50eXBlPT09ImVsZW1lbnQiJiZpLnRhZ05hbWU9PT0iY29sZ3JvdXAiJiZLOShpLHIuY2hpbGRyZW4uaW5kZXhPZihpKSxyKT8hMTohIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJjb2wiKX1mdW5jdGlvbiAkanIoZSx0LHIpe2xldCBpPVdyZShyLHQpLGE9VTEoZSwtMSk7cmV0dXJuIHImJmkmJmkudHlwZT09PSJlbGVtZW50IiYmKGkudGFnTmFtZT09PSJ0aGVhZCJ8fGkudGFnTmFtZT09PSJ0Ym9keSIpJiZLOShpLHIuY2hpbGRyZW4uaW5kZXhPZihpKSxyKT8hMTohIShhJiZhLnR5cGU9PT0iZWxlbWVudCImJmEudGFnTmFtZT09PSJ0ciIpfXZhciAkSmUsSUplPXAoKCk9Pnt3TCgpO0dyZSgpO1hyZSgpO1lyZSgpOyRKZT1NTCh7Ym9keTpEanIsY29sZ3JvdXA6RWpyLGhlYWQ6QWpyLGh0bWw6TGpyLHRib2R5OiRqcn0pfSk7ZnVuY3Rpb24gUEplKGUsdCxyLGkpe2xldCBhPWkuc2NoZW1hLG49YS5zcGFjZT09PSJzdmciPyExOmkuc2V0dGluZ3Mub21pdE9wdGlvbmFsVGFncyxvPWEuc3BhY2U9PT0ic3ZnIj9pLnNldHRpbmdzLmNsb3NlRW1wdHlFbGVtZW50czppLnNldHRpbmdzLnZvaWRzLmluY2x1ZGVzKGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSxzPVtdLGw7YS5zcGFjZT09PSJodG1sIiYmZS50YWdOYW1lPT09InN2ZyImJihpLnNjaGVtYT1iTCk7bGV0IGM9SWpyKGksZS5wcm9wZXJ0aWVzKSx1PWkuYWxsKGEuc3BhY2U9PT0iaHRtbCImJmUudGFnTmFtZT09PSJ0ZW1wbGF0ZSI/ZS5jb250ZW50OmUpO3JldHVybiBpLnNjaGVtYT1hLHUmJihvPSExKSwoY3x8IW58fCEkSmUoZSx0LHIpKSYmKHMucHVzaCgiPCIsZS50YWdOYW1lLGM/IiAiK2M6IiIpLG8mJihhLnNwYWNlPT09InN2ZyJ8fGkuc2V0dGluZ3MuY2xvc2VTZWxmQ2xvc2luZykmJihsPWMuY2hhckF0KGMubGVuZ3RoLTEpLCghaS5zZXR0aW5ncy50aWdodFNlbGZDbG9zaW5nfHxsPT09Ii8ifHxsJiZsIT09JyInJiZsIT09IiciKSYmcy5wdXNoKCIgIikscy5wdXNoKCIvIikpLHMucHVzaCgiPiIpKSxzLnB1c2godSksIW8mJighbnx8IUs5KGUsdCxyKSkmJnMucHVzaCgiPC8iK2UudGFnTmFtZSsiPiIpLHMuam9pbigiIil9ZnVuY3Rpb24gSWpyKGUsdCl7bGV0IHI9W10saT0tMSxhO2lmKHQpe2ZvcihhIGluIHQpaWYodFthXSE9PW51bGwmJnRbYV0hPT12b2lkIDApe2xldCBuPVBqcihlLGEsdFthXSk7biYmci5wdXNoKG4pfX1mb3IoOysraTxyLmxlbmd0aDspe2xldCBuPWUuc2V0dGluZ3MudGlnaHRBdHRyaWJ1dGVzP3JbaV0uY2hhckF0KHJbaV0ubGVuZ3RoLTEpOnZvaWQgMDtpIT09ci5sZW5ndGgtMSYmbiE9PSciJyYmbiE9PSInIiYmKHJbaV0rPSIgIil9cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gUGpyKGUsdCxyKXtsZXQgaT1xcmUoZS5zY2hlbWEsdCksYT1lLnNldHRpbmdzLmFsbG93UGFyc2VFcnJvcnMmJmUuc2NoZW1hLnNwYWNlPT09Imh0bWwiPzA6MSxuPWUuc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPzA6MSxvPWUucXVvdGUscztpZihpLm92ZXJsb2FkZWRCb29sZWFuJiYocj09PWkuYXR0cmlidXRlfHxyPT09IiIpP3I9ITA6KGkuYm9vbGVhbnx8aS5vdmVybG9hZGVkQm9vbGVhbikmJih0eXBlb2YgciE9InN0cmluZyJ8fHI9PT1pLmF0dHJpYnV0ZXx8cj09PSIiKSYmKHI9ISFyKSxyPT1udWxsfHxyPT09ITF8fHR5cGVvZiByPT0ibnVtYmVyIiYmTnVtYmVyLmlzTmFOKHIpKXJldHVybiIiO2xldCBsPXNjKGkuYXR0cmlidXRlLE9iamVjdC5hc3NpZ24oe30sZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHtzdWJzZXQ6a0wubmFtZVthXVtuXX0pKTtyZXR1cm4gcj09PSEwfHwocj1BcnJheS5pc0FycmF5KHIpPyhpLmNvbW1hU2VwYXJhdGVkP1NKZTpDSmUpKHIse3BhZExlZnQ6IWUuc2V0dGluZ3MudGlnaHRDb21tYVNlcGFyYXRlZExpc3RzfSk6U3RyaW5nKHIpLGUuc2V0dGluZ3MuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXMmJiFyKT9sOihlLnNldHRpbmdzLnByZWZlclVucXVvdGVkJiYocz1zYyhyLE9iamVjdC5hc3NpZ24oe30sZS5zZXR0aW5ncy5jaGFyYWN0ZXJSZWZlcmVuY2VzLHthdHRyaWJ1dGU6ITAsc3Vic2V0OmtMLnVucXVvdGVkW2FdW25dfSkpKSxzIT09ciYmKGUuc2V0dGluZ3MucXVvdGVTbWFydCYmbnAocixvKT5ucChyLGUuYWx0ZXJuYXRpdmUpJiYobz1lLmFsdGVybmF0aXZlKSxzPW8rc2MocixPYmplY3QuYXNzaWduKHt9LGUuc2V0dGluZ3MuY2hhcmFjdGVyUmVmZXJlbmNlcyx7c3Vic2V0OihvPT09IiciP2tMLnNpbmdsZTprTC5kb3VibGUpW2FdW25dLGF0dHJpYnV0ZTohMH0pKStvKSxsKyhzJiYiPSIrcykpfXZhciBrTCxOSmU9cCgoKT0+e05lZSgpO3pKZSgpO2pyZSgpO1RKZSgpO3lMKCk7WHJlKCk7SUplKCk7a0w9e25hbWU6W1tgCQpcZlxyICYvPT5gLnNwbGl0KCIiKSxgCQpcZlxyICImJy89PlxgYC5zcGxpdCgiIildLFtgXDAJClxmXHIgIiYnLzw9PmAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJicvPD0+XGBgLnNwbGl0KCIiKV1dLHVucXVvdGVkOltbYAkKXGZcciAmPmAuc3BsaXQoIiIpLGBcMAkKXGZcciAiJic8PT5cYGAuc3BsaXQoIiIpXSxbYFwwCQpcZlxyICImJzw9PlxgYC5zcGxpdCgiIiksYFwwCQpcZlxyICImJzw9PlxgYC5zcGxpdCgiIildXSxzaW5nbGU6W1siJiciLnNwbGl0KCIiKSwiXCImJ2AiLnNwbGl0KCIiKV0sWyJcMCYnIi5zcGxpdCgiIiksIlwwXCImJ2AiLnNwbGl0KCIiKV1dLGRvdWJsZTpbWyciJicuc3BsaXQoIiIpLCJcIiYnYCIuc3BsaXQoIiIpXSxbJ1wwIiYnLnNwbGl0KCIiKSwiXDBcIiYnYCIuc3BsaXQoIiIpXV19fSk7ZnVuY3Rpb24gU0woZSx0LHIsaSl7cmV0dXJuIHImJnIudHlwZT09PSJlbGVtZW50IiYmKHIudGFnTmFtZT09PSJzY3JpcHQifHxyLnRhZ05hbWU9PT0ic3R5bGUiKT9lLnZhbHVlOnNjKGUudmFsdWUsT2JqZWN0LmFzc2lnbih7fSxpLnNldHRpbmdzLmNoYXJhY3RlclJlZmVyZW5jZXMse3N1YnNldDpOanJ9KSl9dmFyIE5qcixRcmU9cCgoKT0+e3lMKCk7TmpyPVsiPCIsIiYiXX0pO2Z1bmN0aW9uIEZKZShlLHQscixpKXtyZXR1cm4gaS5zZXR0aW5ncy5hbGxvd0Rhbmdlcm91c0h0bWw/ZS52YWx1ZTpTTChlLHQscixpKX12YXIgT0plPXAoKCk9PntRcmUoKX0pO2Z1bmN0aW9uIFJKZShlLHQscixpKXtyZXR1cm4gaS5hbGwoZSl9dmFyIEJKZT1wKCgpPT57fSk7ZnVuY3Rpb24gRmpyKGUpe3Rocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgbm9kZSwgbm90IGAiK2UrImAiKX1mdW5jdGlvbiBPanIoZSl7bGV0IHQ9ZTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjb21waWxlIHVua25vd24gbm9kZSBgIit0LnR5cGUrImAiKX12YXIgSEplLHFKZT1wKCgpPT57R2VlKCk7d0plKCk7a0plKCk7TkplKCk7T0plKCk7QkplKCk7UXJlKCk7SEplPWtfKCJ0eXBlIix7aW52YWxpZDpGanIsdW5rbm93bjpPanIsaGFuZGxlcnM6e2NvbW1lbnQ6eUplLGRvY3R5cGU6TUplLGVsZW1lbnQ6UEplLHJhdzpGSmUscm9vdDpSSmUsdGV4dDpTTH19KX0pO2Z1bmN0aW9uIEpyZShlLHQpe2xldCByPXR8fFJqcixpPXIucXVvdGV8fCciJyxhPWk9PT0nIic/IiciOiciJztpZihpIT09JyInJiZpIT09IiciKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBxdW90ZSBgIitpKyJgLCBleHBlY3RlZCBgJ2Agb3IgYFwiYCIpO3JldHVybntvbmU6cWpyLGFsbDpqanIsc2V0dGluZ3M6e29taXRPcHRpb25hbFRhZ3M6ci5vbWl0T3B0aW9uYWxUYWdzfHwhMSxhbGxvd1BhcnNlRXJyb3JzOnIuYWxsb3dQYXJzZUVycm9yc3x8ITEsYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzOnIuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzfHwhMSxxdW90ZVNtYXJ0OnIucXVvdGVTbWFydHx8ITEscHJlZmVyVW5xdW90ZWQ6ci5wcmVmZXJVbnF1b3RlZHx8ITEsdGlnaHRBdHRyaWJ1dGVzOnIudGlnaHRBdHRyaWJ1dGVzfHwhMSx1cHBlckRvY3R5cGU6ci51cHBlckRvY3R5cGV8fCExLHRpZ2h0RG9jdHlwZTpyLnRpZ2h0RG9jdHlwZXx8ITEsYm9ndXNDb21tZW50czpyLmJvZ3VzQ29tbWVudHN8fCExLHRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0czpyLnRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0c3x8ITEsdGlnaHRTZWxmQ2xvc2luZzpyLnRpZ2h0U2VsZkNsb3Npbmd8fCExLGNvbGxhcHNlRW1wdHlBdHRyaWJ1dGVzOnIuY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXN8fCExLGFsbG93RGFuZ2Vyb3VzSHRtbDpyLmFsbG93RGFuZ2Vyb3VzSHRtbHx8ITEsdm9pZHM6ci52b2lkc3x8UlFlLGNoYXJhY3RlclJlZmVyZW5jZXM6ci5jaGFyYWN0ZXJSZWZlcmVuY2VzfHxCanIsY2xvc2VTZWxmQ2xvc2luZzpyLmNsb3NlU2VsZkNsb3Npbmd8fCExLGNsb3NlRW1wdHlFbGVtZW50czpyLmNsb3NlRW1wdHlFbGVtZW50c3x8ITF9LHNjaGVtYTpyLnNwYWNlPT09InN2ZyI/Ykw6ZUplLHF1b3RlOmksYWx0ZXJuYXRpdmU6YX0ub25lKEFycmF5LmlzQXJyYXkoZSk/e3R5cGU6InJvb3QiLGNoaWxkcmVuOmV9OmUsdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gcWpyKGUsdCxyKXtyZXR1cm4gSEplKGUsdCxyLHRoaXMpfWZ1bmN0aW9uIGpqcihlKXtsZXQgdD1bXSxyPWUmJmUuY2hpbGRyZW58fEhqcixpPS0xO2Zvcig7KytpPHIubGVuZ3RoOyl0W2ldPXRoaXMub25lKHJbaV0saSxlKTtyZXR1cm4gdC5qb2luKCIiKX12YXIgUmpyLEJqcixIanIsakplPXAoKCk9PntCUWUoKTtqcmUoKTtxSmUoKTtSanI9e30sQmpyPXt9LEhqcj1bXX0pO3ZhciBWSmU9cCgoKT0+e2pKZSgpfSk7ZnVuY3Rpb24geHAoZSl7bGV0IHQ9dGhpcyx7aGFuZGxlcnM6cixzYW5pdGl6ZTppLC4uLmF9PWV8fFZqcixuPSExLG87dHlwZW9mIGk9PSJib29sZWFuIj9uPSFpOmkmJihvPWkpLHQuY29tcGlsZXI9cztmdW5jdGlvbiBzKGwsYyl7bGV0IHU9QXJlKGwse2hhbmRsZXJzOnIsYWxsb3dEYW5nZXJvdXNIdG1sOm59KSxkPW4/dTpTcmUodSxvKSxoPUpyZShkLHsuLi5hLGFsbG93RGFuZ2Vyb3VzSHRtbDpufSk7cmV0dXJuIGMuZXh0bmFtZSYmKGMuZXh0bmFtZT0iLmh0bWwiKSxsJiZsLnR5cGU9PT0icm9vdCImJmgmJi9bXlxyXG5dLy50ZXN0KGguY2hhckF0KGgubGVuZ3RoLTEpKT9oK2AKYDpofX12YXIgVmpyLFVKZT1wKCgpPT57SVhlKCk7T1FlKCk7VkplKCk7VmpyPXt9fSk7dmFyIFdKZT1wKCgpPT57VUplKCl9KTtmdW5jdGlvbiB5cChlKXtsZXQgdD10aGlzO3QuY29tcGlsZXI9cjtmdW5jdGlvbiByKGkpe3JldHVybiBmdGUoaSx7Li4udC5kYXRhKCJzZXR0aW5ncyIpLC4uLmUsZXh0ZW5zaW9uczp0LmRhdGEoInRvTWFya2Rvd25FeHRlbnNpb25zIil8fFtdfSl9fXZhciBHSmU9cCgoKT0+eyRfKCl9KTt2YXIgWUplPXAoKCk9PntHSmUoKX0pO2Z1bmN0aW9uIFVqcihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1hcmd1bWVudHNbdF07Zm9yKHZhciBpIGluIHIpci5oYXNPd25Qcm9wZXJ0eShpKSYmKGVbaV09cltpXSl9cmV0dXJuIGV9ZnVuY3Rpb24gS3JlKGUsdCl7cmV0dXJuIEFycmF5KHQrMSkuam9pbihlKX1mdW5jdGlvbiBaSmUoZSl7cmV0dXJuIGUucmVwbGFjZSgvXlxuKi8sIiIpfWZ1bmN0aW9uIFhKZShlKXtmb3IodmFyIHQ9ZS5sZW5ndGg7dD4wJiZlW3QtMV09PT1gCmA7KXQtLTtyZXR1cm4gZS5zdWJzdHJpbmcoMCx0KX1mdW5jdGlvbiBRSmUoZSl7cmV0dXJuIFhKZShaSmUoZSkpfWZ1bmN0aW9uIGUxZShlKXtyZXR1cm4gdDFlKGUsV2pyKX1mdW5jdGlvbiBLSmUoZSl7cmV0dXJuIHQxZShlLEpKZSl9ZnVuY3Rpb24gR2pyKGUpe3JldHVybiB0S2UoZSxKSmUpfWZ1bmN0aW9uIFlqcihlKXtyZXR1cm4gdDFlKGUsZUtlKX1mdW5jdGlvbiBaanIoZSl7cmV0dXJuIHRLZShlLGVLZSl9ZnVuY3Rpb24gdDFlKGUsdCl7cmV0dXJuIHQuaW5kZXhPZihlLm5vZGVOYW1lKT49MH1mdW5jdGlvbiB0S2UoZSx0KXtyZXR1cm4gZS5nZXRFbGVtZW50c0J5VGFnTmFtZSYmdC5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lKHIpLmxlbmd0aH0pfWZ1bmN0aW9uIHpMKGUpe3JldHVybiBlP2UucmVwbGFjZSgvKFxuK1xzKikrL2csYApgKToiIn1mdW5jdGlvbiByS2UoZSl7dGhpcy5vcHRpb25zPWUsdGhpcy5fa2VlcD1bXSx0aGlzLl9yZW1vdmU9W10sdGhpcy5ibGFua1J1bGU9e3JlcGxhY2VtZW50OmUuYmxhbmtSZXBsYWNlbWVudH0sdGhpcy5rZWVwUmVwbGFjZW1lbnQ9ZS5rZWVwUmVwbGFjZW1lbnQsdGhpcy5kZWZhdWx0UnVsZT17cmVwbGFjZW1lbnQ6ZS5kZWZhdWx0UmVwbGFjZW1lbnR9LHRoaXMuYXJyYXk9W107Zm9yKHZhciB0IGluIGUucnVsZXMpdGhpcy5hcnJheS5wdXNoKGUucnVsZXNbdF0pfWZ1bmN0aW9uIHIxZShlLHQscil7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoWGpyKGEsdCxyKSlyZXR1cm4gYX19ZnVuY3Rpb24gWGpyKGUsdCxyKXt2YXIgaT1lLmZpbHRlcjtpZih0eXBlb2YgaT09InN0cmluZyIpe2lmKGk9PT10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuITB9ZWxzZSBpZihBcnJheS5pc0FycmF5KGkpKXtpZihpLmluZGV4T2YodC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKT4tMSlyZXR1cm4hMH1lbHNlIGlmKHR5cGVvZiBpPT0iZnVuY3Rpb24iKXtpZihpLmNhbGwoZSx0LHIpKXJldHVybiEwfWVsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiYGZpbHRlcmAgbmVlZHMgdG8gYmUgYSBzdHJpbmcsIGFycmF5LCBvciBmdW5jdGlvbiIpfWZ1bmN0aW9uIFFqcihlKXt2YXIgdD1lLmVsZW1lbnQscj1lLmlzQmxvY2ssaT1lLmlzVm9pZCxhPWUuaXNQcmV8fGZ1bmN0aW9uKGQpe3JldHVybiBkLm5vZGVOYW1lPT09IlBSRSJ9O2lmKCEoIXQuZmlyc3RDaGlsZHx8YSh0KSkpe2Zvcih2YXIgbj1udWxsLG89ITEscz1udWxsLGw9aUtlKHMsdCxhKTtsIT09dDspe2lmKGwubm9kZVR5cGU9PT0zfHxsLm5vZGVUeXBlPT09NCl7dmFyIGM9bC5kYXRhLnJlcGxhY2UoL1sgXHJcblx0XSsvZywiICIpO2lmKCghbnx8LyAkLy50ZXN0KG4uZGF0YSkpJiYhbyYmY1swXT09PSIgIiYmKGM9Yy5zdWJzdHIoMSkpLCFjKXtsPWkxZShsKTtjb250aW51ZX1sLmRhdGE9YyxuPWx9ZWxzZSBpZihsLm5vZGVUeXBlPT09MSlyKGwpfHxsLm5vZGVOYW1lPT09IkJSIj8obiYmKG4uZGF0YT1uLmRhdGEucmVwbGFjZSgvICQvLCIiKSksbj1udWxsLG89ITEpOmkobCl8fGEobCk/KG49bnVsbCxvPSEwKTpuJiYobz0hMSk7ZWxzZXtsPWkxZShsKTtjb250aW51ZX12YXIgdT1pS2UocyxsLGEpO3M9bCxsPXV9biYmKG4uZGF0YT1uLmRhdGEucmVwbGFjZSgvICQvLCIiKSxuLmRhdGF8fGkxZShuKSl9fWZ1bmN0aW9uIGkxZShlKXt2YXIgdD1lLm5leHRTaWJsaW5nfHxlLnBhcmVudE5vZGU7cmV0dXJuIGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKSx0fWZ1bmN0aW9uIGlLZShlLHQscil7cmV0dXJuIGUmJmUucGFyZW50Tm9kZT09PXR8fHIodCk/dC5uZXh0U2libGluZ3x8dC5wYXJlbnROb2RlOnQuZmlyc3RDaGlsZHx8dC5uZXh0U2libGluZ3x8dC5wYXJlbnROb2RlfWZ1bmN0aW9uIEpqcigpe3ZhciBlPWExZS5ET01QYXJzZXIsdD0hMTt0cnl7bmV3IGUoKS5wYXJzZUZyb21TdHJpbmcoIiIsInRleHQvaHRtbCIpJiYodD0hMCl9Y2F0Y2h7fXJldHVybiB0fWZ1bmN0aW9uIEtqcigpe3ZhciBlPWZ1bmN0aW9uKCl7fTtyZXR1cm4gZVZyKCk/ZS5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciByPW5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKTtyZXR1cm4gci5kZXNpZ25Nb2RlPSJvbiIsci5vcGVuKCksci53cml0ZSh0KSxyLmNsb3NlKCkscn06ZS5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciByPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7cmV0dXJuIHIub3BlbigpLHIud3JpdGUodCksci5jbG9zZSgpLHJ9LGV9ZnVuY3Rpb24gZVZyKCl7dmFyIGU9ITE7dHJ5e2RvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikub3BlbigpfWNhdGNoe2ExZS5BY3RpdmVYT2JqZWN0JiYoZT0hMCl9cmV0dXJuIGV9ZnVuY3Rpb24gclZyKGUsdCl7dmFyIHI7aWYodHlwZW9mIGU9PSJzdHJpbmciKXt2YXIgaT1pVnIoKS5wYXJzZUZyb21TdHJpbmcoJzx4LXR1cm5kb3duIGlkPSJ0dXJuZG93bi1yb290Ij4nK2UrIjwveC10dXJuZG93bj4iLCJ0ZXh0L2h0bWwiKTtyPWkuZ2V0RWxlbWVudEJ5SWQoInR1cm5kb3duLXJvb3QiKX1lbHNlIHI9ZS5jbG9uZU5vZGUoITApO3JldHVybiBRanIoe2VsZW1lbnQ6cixpc0Jsb2NrOmUxZSxpc1ZvaWQ6S0plLGlzUHJlOnQucHJlZm9ybWF0dGVkQ29kZT9hVnI6bnVsbH0pLHJ9ZnVuY3Rpb24gaVZyKCl7cmV0dXJuIG4xZT1uMWV8fG5ldyB0VnIsbjFlfWZ1bmN0aW9uIGFWcihlKXtyZXR1cm4gZS5ub2RlTmFtZT09PSJQUkUifHxlLm5vZGVOYW1lPT09IkNPREUifWZ1bmN0aW9uIG5WcihlLHQpe3JldHVybiBlLmlzQmxvY2s9ZTFlKGUpLGUuaXNDb2RlPWUubm9kZU5hbWU9PT0iQ09ERSJ8fGUucGFyZW50Tm9kZS5pc0NvZGUsZS5pc0JsYW5rPW9WcihlKSxlLmZsYW5raW5nV2hpdGVzcGFjZT1zVnIoZSx0KSxlfWZ1bmN0aW9uIG9WcihlKXtyZXR1cm4hS0plKGUpJiYhWWpyKGUpJiYvXlxzKiQvaS50ZXN0KGUudGV4dENvbnRlbnQpJiYhR2pyKGUpJiYhWmpyKGUpfWZ1bmN0aW9uIHNWcihlLHQpe2lmKGUuaXNCbG9ja3x8dC5wcmVmb3JtYXR0ZWRDb2RlJiZlLmlzQ29kZSlyZXR1cm57bGVhZGluZzoiIix0cmFpbGluZzoiIn07dmFyIHI9bFZyKGUudGV4dENvbnRlbnQpO3JldHVybiByLmxlYWRpbmdBc2NpaSYmYUtlKCJsZWZ0IixlLHQpJiYoci5sZWFkaW5nPXIubGVhZGluZ05vbkFzY2lpKSxyLnRyYWlsaW5nQXNjaWkmJmFLZSgicmlnaHQiLGUsdCkmJihyLnRyYWlsaW5nPXIudHJhaWxpbmdOb25Bc2NpaSkse2xlYWRpbmc6ci5sZWFkaW5nLHRyYWlsaW5nOnIudHJhaWxpbmd9fWZ1bmN0aW9uIGxWcihlKXt2YXIgdD1lLm1hdGNoKC9eKChbIFx0XHJcbl0qKShccyopKSg/Oig/PVxTKVtcc1xTXSpcUyk/KChccyo/KShbIFx0XHJcbl0qKSkkLyk7cmV0dXJue2xlYWRpbmc6dFsxXSxsZWFkaW5nQXNjaWk6dFsyXSxsZWFkaW5nTm9uQXNjaWk6dFszXSx0cmFpbGluZzp0WzRdLHRyYWlsaW5nTm9uQXNjaWk6dFs1XSx0cmFpbGluZ0FzY2lpOnRbNl19fWZ1bmN0aW9uIGFLZShlLHQscil7dmFyIGksYSxuO3JldHVybiBlPT09ImxlZnQiPyhpPXQucHJldmlvdXNTaWJsaW5nLGE9LyAkLyk6KGk9dC5uZXh0U2libGluZyxhPS9eIC8pLGkmJihpLm5vZGVUeXBlPT09Mz9uPWEudGVzdChpLm5vZGVWYWx1ZSk6ci5wcmVmb3JtYXR0ZWRDb2RlJiZpLm5vZGVOYW1lPT09IkNPREUiP249ITE6aS5ub2RlVHlwZT09PTEmJiFlMWUoaSkmJihuPWEudGVzdChpLnRleHRDb250ZW50KSkpLG59ZnVuY3Rpb24gQ0woZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgQ0wpKXJldHVybiBuZXcgQ0woZSk7dmFyIHQ9e3J1bGVzOkFhLGhlYWRpbmdTdHlsZToic2V0ZXh0IixocjoiKiAqICoiLGJ1bGxldExpc3RNYXJrZXI6IioiLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsZmVuY2U6ImBgYCIsZW1EZWxpbWl0ZXI6Il8iLHN0cm9uZ0RlbGltaXRlcjoiKioiLGxpbmtTdHlsZToiaW5saW5lZCIsbGlua1JlZmVyZW5jZVN0eWxlOiJmdWxsIixicjoiICAiLHByZWZvcm1hdHRlZENvZGU6ITEsYmxhbmtSZXBsYWNlbWVudDpmdW5jdGlvbihyLGkpe3JldHVybiBpLmlzQmxvY2s/YAoKYDoiIn0sa2VlcFJlcGxhY2VtZW50OmZ1bmN0aW9uKHIsaSl7cmV0dXJuIGkuaXNCbG9jaz9gCgpgK2kub3V0ZXJIVE1MK2AKCmA6aS5vdXRlckhUTUx9LGRlZmF1bHRSZXBsYWNlbWVudDpmdW5jdGlvbihyLGkpe3JldHVybiBpLmlzQmxvY2s/YAoKYCtyK2AKCmA6cn19O3RoaXMub3B0aW9ucz1VanIoe30sdCxlKSx0aGlzLnJ1bGVzPW5ldyByS2UodGhpcy5vcHRpb25zKX1mdW5jdGlvbiBuS2UoZSl7dmFyIHQ9dGhpcztyZXR1cm4gY1ZyLmNhbGwoZS5jaGlsZE5vZGVzLGZ1bmN0aW9uKHIsaSl7aT1uZXcgblZyKGksdC5vcHRpb25zKTt2YXIgYT0iIjtyZXR1cm4gaS5ub2RlVHlwZT09PTM/YT1pLmlzQ29kZT9pLm5vZGVWYWx1ZTp0LmVzY2FwZShpLm5vZGVWYWx1ZSk6aS5ub2RlVHlwZT09PTEmJihhPXBWci5jYWxsKHQsaSkpLG9LZShyLGEpfSwiIil9ZnVuY3Rpb24gdVZyKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMucnVsZXMuZm9yRWFjaChmdW5jdGlvbihyKXt0eXBlb2Ygci5hcHBlbmQ9PSJmdW5jdGlvbiImJihlPW9LZShlLHIuYXBwZW5kKHQub3B0aW9ucykpKX0pLGUucmVwbGFjZSgvXltcdFxyXG5dKy8sIiIpLnJlcGxhY2UoL1tcdFxyXG5cc10rJC8sIiIpfWZ1bmN0aW9uIHBWcihlKXt2YXIgdD10aGlzLnJ1bGVzLmZvck5vZGUoZSkscj1uS2UuY2FsbCh0aGlzLGUpLGk9ZS5mbGFua2luZ1doaXRlc3BhY2U7cmV0dXJuKGkubGVhZGluZ3x8aS50cmFpbGluZykmJihyPXIudHJpbSgpKSxpLmxlYWRpbmcrdC5yZXBsYWNlbWVudChyLGUsdGhpcy5vcHRpb25zKStpLnRyYWlsaW5nfWZ1bmN0aW9uIG9LZShlLHQpe3ZhciByPVhKZShlKSxpPVpKZSh0KSxhPU1hdGgubWF4KGUubGVuZ3RoLXIubGVuZ3RoLHQubGVuZ3RoLWkubGVuZ3RoKSxuPWAKCmAuc3Vic3RyaW5nKDAsYSk7cmV0dXJuIHIrbitpfWZ1bmN0aW9uIGhWcihlKXtyZXR1cm4gZSE9bnVsbCYmKHR5cGVvZiBlPT0ic3RyaW5nInx8ZS5ub2RlVHlwZSYmKGUubm9kZVR5cGU9PT0xfHxlLm5vZGVUeXBlPT09OXx8ZS5ub2RlVHlwZT09PTExKSl9dmFyIFdqcixKSmUsZUtlLEFhLGExZSx0VnIsbjFlLGNWcixkVnIsVEwsc0tlPXAoKCk9PntXanI9WyJBRERSRVNTIiwiQVJUSUNMRSIsIkFTSURFIiwiQVVESU8iLCJCTE9DS1FVT1RFIiwiQk9EWSIsIkNBTlZBUyIsIkNFTlRFUiIsIkREIiwiRElSIiwiRElWIiwiREwiLCJEVCIsIkZJRUxEU0VUIiwiRklHQ0FQVElPTiIsIkZJR1VSRSIsIkZPT1RFUiIsIkZPUk0iLCJGUkFNRVNFVCIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkhFQURFUiIsIkhHUk9VUCIsIkhSIiwiSFRNTCIsIklTSU5ERVgiLCJMSSIsIk1BSU4iLCJNRU5VIiwiTkFWIiwiTk9GUkFNRVMiLCJOT1NDUklQVCIsIk9MIiwiT1VUUFVUIiwiUCIsIlBSRSIsIlNFQ1RJT04iLCJUQUJMRSIsIlRCT0RZIiwiVEQiLCJURk9PVCIsIlRIIiwiVEhFQUQiLCJUUiIsIlVMIl07SkplPVsiQVJFQSIsIkJBU0UiLCJCUiIsIkNPTCIsIkNPTU1BTkQiLCJFTUJFRCIsIkhSIiwiSU1HIiwiSU5QVVQiLCJLRVlHRU4iLCJMSU5LIiwiTUVUQSIsIlBBUkFNIiwiU09VUkNFIiwiVFJBQ0siLCJXQlIiXTtlS2U9WyJBIiwiVEFCTEUiLCJUSEVBRCIsIlRCT0RZIiwiVEZPT1QiLCJUSCIsIlREIiwiSUZSQU1FIiwiU0NSSVBUIiwiQVVESU8iLCJWSURFTyJdO0FhPXt9O0FhLnBhcmFncmFwaD17ZmlsdGVyOiJwIixyZXBsYWNlbWVudDpmdW5jdGlvbihlKXtyZXR1cm5gCgpgK2UrYAoKYH19LEFhLmxpbmVCcmVhaz17ZmlsdGVyOiJiciIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiByLmJyK2AKYH19LEFhLmhlYWRpbmc9e2ZpbHRlcjpbImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT1OdW1iZXIodC5ub2RlTmFtZS5jaGFyQXQoMSkpO2lmKHIuaGVhZGluZ1N0eWxlPT09InNldGV4dCImJmk8Myl7dmFyIGE9S3JlKGk9PT0xPyI9IjoiLSIsZS5sZW5ndGgpO3JldHVybmAKCmArZStgCmArYStgCgpgfWVsc2UgcmV0dXJuYAoKYCtLcmUoIiMiLGkpKyIgIitlK2AKCmB9fSxBYS5ibG9ja3F1b3RlPXtmaWx0ZXI6ImJsb2NrcXVvdGUiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUpe3JldHVybiBlPVFKZShlKS5yZXBsYWNlKC9eL2dtLCI+ICIpLGAKCmArZStgCgpgfX0sQWEubGlzdD17ZmlsdGVyOlsidWwiLCJvbCJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9dC5wYXJlbnROb2RlO3JldHVybiByLm5vZGVOYW1lPT09IkxJIiYmci5sYXN0RWxlbWVudENoaWxkPT09dD9gCmArZTpgCgpgK2UrYAoKYH19LEFhLmxpc3RJdGVtPXtmaWx0ZXI6ImxpIixyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7dmFyIGk9ci5idWxsZXRMaXN0TWFya2VyKyIgICAiLGE9dC5wYXJlbnROb2RlO2lmKGEubm9kZU5hbWU9PT0iT0wiKXt2YXIgbj1hLmdldEF0dHJpYnV0ZSgic3RhcnQiKSxvPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYS5jaGlsZHJlbix0KTtpPShuP051bWJlcihuKStvOm8rMSkrIi4gICJ9dmFyIHM9L1xuJC8udGVzdChlKTtyZXR1cm4gZT1RSmUoZSkrKHM/YApgOiIiKSxlPWUucmVwbGFjZSgvXG4vZ20sYApgKyIgIi5yZXBlYXQoaS5sZW5ndGgpKSxpK2UrKHQubmV4dFNpYmxpbmc/YApgOiIiKX19LEFhLmluZGVudGVkQ29kZUJsb2NrPXtmaWx0ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5jb2RlQmxvY2tTdHlsZT09PSJpbmRlbnRlZCImJmUubm9kZU5hbWU9PT0iUFJFIiYmZS5maXJzdENoaWxkJiZlLmZpcnN0Q2hpbGQubm9kZU5hbWU9PT0iQ09ERSJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm5gCgogICAgYCt0LmZpcnN0Q2hpbGQudGV4dENvbnRlbnQucmVwbGFjZSgvXG4vZyxgCiAgICBgKStgCgpgfX0sQWEuZmVuY2VkQ29kZUJsb2NrPXtmaWx0ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5jb2RlQmxvY2tTdHlsZT09PSJmZW5jZWQiJiZlLm5vZGVOYW1lPT09IlBSRSImJmUuZmlyc3RDaGlsZCYmZS5maXJzdENoaWxkLm5vZGVOYW1lPT09IkNPREUifSxyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPXQuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiLGE9KGkubWF0Y2goL2xhbmd1YWdlLShcUyspLyl8fFtudWxsLCIiXSlbMV0sbj10LmZpcnN0Q2hpbGQudGV4dENvbnRlbnQsbz1yLmZlbmNlLmNoYXJBdCgwKSxzPTMsbD1uZXcgUmVnRXhwKCJeIitvKyJ7Myx9IiwiZ20iKSxjO2M9bC5leGVjKG4pOyljWzBdLmxlbmd0aD49cyYmKHM9Y1swXS5sZW5ndGgrMSk7dmFyIHU9S3JlKG8scyk7cmV0dXJuYAoKYCt1K2ErYApgK24ucmVwbGFjZSgvXG4kLywiIikrYApgK3UrYAoKYH19LEFhLmhvcml6b250YWxSdWxlPXtmaWx0ZXI6ImhyIixyZXBsYWNlbWVudDpmdW5jdGlvbihlLHQscil7cmV0dXJuYAoKYCtyLmhyK2AKCmB9fSxBYS5pbmxpbmVMaW5rPXtmaWx0ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5saW5rU3R5bGU9PT0iaW5saW5lZCImJmUubm9kZU5hbWU9PT0iQSImJmUuZ2V0QXR0cmlidXRlKCJocmVmIil9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9dC5nZXRBdHRyaWJ1dGUoImhyZWYiKTtyJiYocj1yLnJlcGxhY2UoLyhbKCldKS9nLCJcXCQxIikpO3ZhciBpPXpMKHQuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKTtyZXR1cm4gaSYmKGk9JyAiJytpLnJlcGxhY2UoLyIvZywnXFwiJykrJyInKSwiWyIrZSsiXSgiK3IraSsiKSJ9fSxBYS5yZWZlcmVuY2VMaW5rPXtmaWx0ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5saW5rU3R5bGU9PT0icmVmZXJlbmNlZCImJmUubm9kZU5hbWU9PT0iQSImJmUuZ2V0QXR0cmlidXRlKCJocmVmIil9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXt2YXIgaT10LmdldEF0dHJpYnV0ZSgiaHJlZiIpLGE9ekwodC5nZXRBdHRyaWJ1dGUoInRpdGxlIikpO2EmJihhPScgIicrYSsnIicpO3ZhciBuLG87c3dpdGNoKHIubGlua1JlZmVyZW5jZVN0eWxlKXtjYXNlImNvbGxhcHNlZCI6bj0iWyIrZSsiXVtdIixvPSJbIitlKyJdOiAiK2krYTticmVhaztjYXNlInNob3J0Y3V0IjpuPSJbIitlKyJdIixvPSJbIitlKyJdOiAiK2krYTticmVhaztkZWZhdWx0OnZhciBzPXRoaXMucmVmZXJlbmNlcy5sZW5ndGgrMTtuPSJbIitlKyJdWyIrcysiXSIsbz0iWyIrcysiXTogIitpK2F9cmV0dXJuIHRoaXMucmVmZXJlbmNlcy5wdXNoKG8pLG59LHJlZmVyZW5jZXM6W10sYXBwZW5kOmZ1bmN0aW9uKGUpe3ZhciB0PSIiO3JldHVybiB0aGlzLnJlZmVyZW5jZXMubGVuZ3RoJiYodD1gCgpgK3RoaXMucmVmZXJlbmNlcy5qb2luKGAKYCkrYAoKYCx0aGlzLnJlZmVyZW5jZXM9W10pLHR9fSxBYS5lbXBoYXNpcz17ZmlsdGVyOlsiZW0iLCJpIl0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlLnRyaW0oKT9yLmVtRGVsaW1pdGVyK2Urci5lbURlbGltaXRlcjoiIn19LEFhLnN0cm9uZz17ZmlsdGVyOlsic3Ryb25nIiwiYiJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZS50cmltKCk/ci5zdHJvbmdEZWxpbWl0ZXIrZStyLnN0cm9uZ0RlbGltaXRlcjoiIn19LEFhLmNvZGU9e2ZpbHRlcjpmdW5jdGlvbihlKXt2YXIgdD1lLnByZXZpb3VzU2libGluZ3x8ZS5uZXh0U2libGluZyxyPWUucGFyZW50Tm9kZS5ub2RlTmFtZT09PSJQUkUiJiYhdDtyZXR1cm4gZS5ub2RlTmFtZT09PSJDT0RFIiYmIXJ9LHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiIiO2U9ZS5yZXBsYWNlKC9ccj9cbnxcci9nLCIgIik7Zm9yKHZhciB0PS9eYHxeIC4qP1teIF0uKiAkfGAkLy50ZXN0KGUpPyIgIjoiIixyPSJgIixpPWUubWF0Y2goL2ArL2dtKXx8W107aS5pbmRleE9mKHIpIT09LTE7KXI9cisiYCI7cmV0dXJuIHIrdCtlK3Qrcn19LEFhLmltYWdlPXtmaWx0ZXI6ImltZyIscmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgcj16TCh0LmdldEF0dHJpYnV0ZSgiYWx0IikpLGk9dC5nZXRBdHRyaWJ1dGUoInNyYyIpfHwiIixhPXpMKHQuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpKSxuPWE/JyAiJythKyciJzoiIjtyZXR1cm4gaT8iIVsiK3IrIl0oIitpK24rIikiOiIifX07cktlLnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKGUsdCl7dGhpcy5hcnJheS51bnNoaWZ0KHQpfSxrZWVwOmZ1bmN0aW9uKGUpe3RoaXMuX2tlZXAudW5zaGlmdCh7ZmlsdGVyOmUscmVwbGFjZW1lbnQ6dGhpcy5rZWVwUmVwbGFjZW1lbnR9KX0scmVtb3ZlOmZ1bmN0aW9uKGUpe3RoaXMuX3JlbW92ZS51bnNoaWZ0KHtmaWx0ZXI6ZSxyZXBsYWNlbWVudDpmdW5jdGlvbigpe3JldHVybiIifX0pfSxmb3JOb2RlOmZ1bmN0aW9uKGUpe2lmKGUuaXNCbGFuaylyZXR1cm4gdGhpcy5ibGFua1J1bGU7dmFyIHQ7cmV0dXJuKHQ9cjFlKHRoaXMuYXJyYXksZSx0aGlzLm9wdGlvbnMpKXx8KHQ9cjFlKHRoaXMuX2tlZXAsZSx0aGlzLm9wdGlvbnMpKXx8KHQ9cjFlKHRoaXMuX3JlbW92ZSxlLHRoaXMub3B0aW9ucykpP3Q6dGhpcy5kZWZhdWx0UnVsZX0sZm9yRWFjaDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PHRoaXMuYXJyYXkubGVuZ3RoO3QrKyllKHRoaXMuYXJyYXlbdF0sdCl9fTthMWU9dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9O3RWcj1KanIoKT9hMWUuRE9NUGFyc2VyOktqcigpO2NWcj1BcnJheS5wcm90b3R5cGUucmVkdWNlLGRWcj1bWy9cXC9nLCJcXFxcIl0sWy9cKi9nLCJcXCoiXSxbL14tL2csIlxcLSJdLFsvXlwrIC9nLCJcXCsgIl0sWy9eKD0rKS9nLCJcXCQxIl0sWy9eKCN7MSw2fSkgL2csIlxcJDEgIl0sWy9gL2csIlxcYCJdLFsvXn5+fi9nLCJcXH5+fiJdLFsvXFsvZywiXFxbIl0sWy9cXS9nLCJcXF0iXSxbL14+L2csIlxcPiJdLFsvXy9nLCJcXF8iXSxbL14oXGQrKVwuIC9nLCIkMVxcLiAiXV07Q0wucHJvdG90eXBlPXt0dXJuZG93bjpmdW5jdGlvbihlKXtpZighaFZyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoZSsiIGlzIG5vdCBhIHN0cmluZywgb3IgYW4gZWxlbWVudC9kb2N1bWVudC9mcmFnbWVudCBub2RlLiIpO2lmKGU9PT0iIilyZXR1cm4iIjt2YXIgdD1uS2UuY2FsbCh0aGlzLG5ldyByVnIoZSx0aGlzLm9wdGlvbnMpKTtyZXR1cm4gdVZyLmNhbGwodGhpcyx0KX0sdXNlOmZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspdGhpcy51c2UoZVt0XSk7ZWxzZSBpZih0eXBlb2YgZT09ImZ1bmN0aW9uIillKHRoaXMpO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigicGx1Z2luIG11c3QgYmUgYSBGdW5jdGlvbiBvciBhbiBBcnJheSBvZiBGdW5jdGlvbnMiKTtyZXR1cm4gdGhpc30sYWRkUnVsZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnJ1bGVzLmFkZChlLHQpLHRoaXN9LGtlZXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucnVsZXMua2VlcChlKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucnVsZXMucmVtb3ZlKGUpLHRoaXN9LGVzY2FwZTpmdW5jdGlvbihlKXtyZXR1cm4gZFZyLnJlZHVjZShmdW5jdGlvbih0LHIpe3JldHVybiB0LnJlcGxhY2UoclswXSxyWzFdKX0sZSl9fTtUTD1DTH0pO3ZhciBlZz17fTtGZShlZyx7Z2ZtOigpPT5kS2UsaGlnaGxpZ2h0ZWRDb2RlQmxvY2s6KCk9PnMxZSxzdHJpa2V0aHJvdWdoOigpPT5sMWUsdGFibGVzOigpPT5jMWUsdGFza0xpc3RJdGVtczooKT0+ZDFlfSk7ZnVuY3Rpb24gczFlKGUpe2UuYWRkUnVsZSgiaGlnaGxpZ2h0ZWRDb2RlQmxvY2siLHtmaWx0ZXI6ZnVuY3Rpb24odCl7dmFyIHI9dC5maXJzdENoaWxkO3JldHVybiB0Lm5vZGVOYW1lPT09IkRJViImJmxLZS50ZXN0KHQuY2xhc3NOYW1lKSYmciYmci5ub2RlTmFtZT09PSJQUkUifSxyZXBsYWNlbWVudDpmdW5jdGlvbih0LHIsaSl7dmFyIGE9ci5jbGFzc05hbWV8fCIiLG49KGEubWF0Y2gobEtlKXx8W251bGwsIiJdKVsxXTtyZXR1cm5gCgpgK2kuZmVuY2UrbitgCmArci5maXJzdENoaWxkLnRleHRDb250ZW50K2AKYCtpLmZlbmNlK2AKCmB9fSl9ZnVuY3Rpb24gbDFlKGUpe2UuYWRkUnVsZSgic3RyaWtldGhyb3VnaCIse2ZpbHRlcjpbImRlbCIsInMiLCJzdHJpa2UiXSxyZXBsYWNlbWVudDpmdW5jdGlvbih0KXtyZXR1cm4ifiIrdCsifiJ9fSl9ZnVuY3Rpb24gbzFlKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdC5ub2RlTmFtZT09PSJUSEVBRCJ8fHQuZmlyc3RDaGlsZD09PWUmJih0Lm5vZGVOYW1lPT09IlRBQkxFInx8Z1ZyKHQpKSYmbVZyLmNhbGwoZS5jaGlsZE5vZGVzLGZ1bmN0aW9uKHIpe3JldHVybiByLm5vZGVOYW1lPT09IlRIIn0pfWZ1bmN0aW9uIGdWcihlKXt2YXIgdD1lLnByZXZpb3VzU2libGluZztyZXR1cm4gZS5ub2RlTmFtZT09PSJUQk9EWSImJighdHx8dC5ub2RlTmFtZT09PSJUSEVBRCImJi9eXHMqJC9pLnRlc3QodC50ZXh0Q29udGVudCkpfWZ1bmN0aW9uIGNLZShlLHQpe3ZhciByPWZWci5jYWxsKHQucGFyZW50Tm9kZS5jaGlsZE5vZGVzLHQpLGk9IiAiO3JldHVybiByPT09MCYmKGk9InwgIiksaStlKyIgfCJ9ZnVuY3Rpb24gYzFlKGUpe2Uua2VlcChmdW5jdGlvbihyKXtyZXR1cm4gci5ub2RlTmFtZT09PSJUQUJMRSImJiFvMWUoci5yb3dzWzBdKX0pO2Zvcih2YXIgdCBpbiB3cCllLmFkZFJ1bGUodCx3cFt0XSl9ZnVuY3Rpb24gZDFlKGUpe2UuYWRkUnVsZSgidGFza0xpc3RJdGVtcyIse2ZpbHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlPT09ImNoZWNrYm94IiYmdC5wYXJlbnROb2RlLm5vZGVOYW1lPT09IkxJIn0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24odCxyKXtyZXR1cm4oci5jaGVja2VkPyJbeF0iOiJbIF0iKSsiICJ9fSl9ZnVuY3Rpb24gZEtlKGUpe2UudXNlKFtzMWUsbDFlLGMxZSxkMWVdKX12YXIgbEtlLGZWcixtVnIsd3AsdUtlPXAoKCk9PntsS2U9L2hpZ2hsaWdodC0oPzp0ZXh0fHNvdXJjZSktKFthLXowLTldKykvO2ZWcj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZixtVnI9QXJyYXkucHJvdG90eXBlLmV2ZXJ5LHdwPXt9O3dwLnRhYmxlQ2VsbD17ZmlsdGVyOlsidGgiLCJ0ZCJdLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGNLZShlLHQpfX0sd3AudGFibGVSb3c9e2ZpbHRlcjoidHIiLHJlcGxhY2VtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIHI9IiIsaT17bGVmdDoiOi0tIixyaWdodDoiLS06IixjZW50ZXI6IjotOiJ9O2lmKG8xZSh0KSlmb3IodmFyIGE9MDthPHQuY2hpbGROb2Rlcy5sZW5ndGg7YSsrKXt2YXIgbj0iLS0tIixvPSh0LmNoaWxkTm9kZXNbYV0uZ2V0QXR0cmlidXRlKCJhbGlnbiIpfHwiIikudG9Mb3dlckNhc2UoKTtvJiYobj1pW29dfHxuKSxyKz1jS2Uobix0LmNoaWxkTm9kZXNbYV0pfXJldHVybmAKYCtlKyhyP2AKYCtyOiIiKX19LHdwLnRhYmxlPXtmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWU9PT0iVEFCTEUiJiZvMWUoZS5yb3dzWzBdKX0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZS5yZXBsYWNlKGAKCmAsYApgKSxgCgpgK2UrYAoKYH19LHdwLnRhYmxlU2VjdGlvbj17ZmlsdGVyOlsidGhlYWQiLCJ0Ym9keSIsInRmb290Il0scmVwbGFjZW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9fX0pO3ZhciB1MWUscDFlPXAoKCk9Pnt1MWU9ZXIoS1VlKCksMSk7RVdlKCk7T1plKCk7ZFhlKCk7TVhlKCk7V0plKCk7WUplKCk7c0tlKCk7dUtlKCl9KTt2YXIgX0wsaEtlPXAoKCk9PntwMWUoKTtfTD1jbGFzcyBle3N0YXRpYyBhc3luYyBjcmVhdGVGcm9tTWFya2Rvd25TdHJpbmcodCl7bGV0IHI9bmV3IGU7cmV0dXJuIGF3YWl0IHIudXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpLHJ9YXN5bmMgdXBkYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpe2xldCByLGk9YXdhaXQgQTkoKS51c2UoaHApLnVzZShwcCkudXNlKG1wLFsieWFtbCIsInRvbWwiXSkudXNlKHlwKS51c2UoeHApLnVzZSgoKT0+YT0+e2NvbnNvbGUuZGlyKGEpO2xldCBuPWEuY2hpbGRyZW4uZmluZChvPT5vLnR5cGU9PT0ieWFtbCIpO24mJihyPW4udmFsdWUpfSkucHJvY2Vzcyh0KTt0aGlzLmh0bWw9aS50b1N0cmluZygpLHI/dGhpcy5mcm9udG1hdHRlckRhdGE9YXdhaXQgdTFlLnlhbWxTdHJpbmdUb09iamVjdChyKTp0aGlzLmZyb250bWF0dGVyRGF0YT17fX19fSk7dmFyIE1wPXt9O0ZlKE1wLHtTbWFydE1hcmtkb3duOigpPT5oMWV9KTt2YXIgaDFlLGYxZT1wKCgpPT57cDFlKCk7aEtlKCk7aDFlPWNsYXNzIGV7c3RhdGljIGFzeW5jIGVhc3lNYXJrZG93blRvSHRtbCh0KXtyZXR1cm4oYXdhaXQgbmV3IGUoKS5nZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bih0KSkuaHRtbH1jb25zdHJ1Y3Rvcigpe31hc3luYyBnZXRNZFBhcnNlZFJlc3VsdEZyb21NYXJrZG93bih0KXtyZXR1cm4gYXdhaXQgX0wuY3JlYXRlRnJvbU1hcmtkb3duU3RyaW5nKHQpfWh0bWxUb01hcmtkb3duKHQpe2xldCByPW5ldyBUTCh7aGVhZGluZ1N0eWxlOiJhdHgiLGNvZGVCbG9ja1N0eWxlOiJmZW5jZWQifSk7cmV0dXJuIHIudXNlKGVnLmdmbSksci50dXJuZG93bih0KX19fSk7dmFyIHhLZT1qZSh4Mj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoeDIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHgyLlBhdGhFcnJvcj14Mi5Ub2tlbkRhdGE9dm9pZCAwLHgyLnBhcnNlPXYxZSx4Mi5jb21waWxlPXhWcix4Mi5tYXRjaD13VnIseDIucGF0aFRvUmVnZXhwPWdLZSx4Mi5zdHJpbmdpZnk9U1ZyO3ZhciBtMWU9Ii8iLGcxZT1lPT5lLGZLZT0vXlskX1xwe0lEX1N0YXJ0fV0kL3UsYjFlPS9eWyRcdTIwMGNcdTIwMGRccHtJRF9Db250aW51ZX1dJC91LGJWcj17InsiOiJ7IiwifSI6In0iLCIoIjoiKCIsIikiOiIpIiwiWyI6IlsiLCJdIjoiXSIsIisiOiIrIiwiPyI6Ij8iLCIhIjoiISJ9O2Z1bmN0aW9uIHZWcihlKXtyZXR1cm4gZS5yZXBsYWNlKC9be30oKVxbXF0rPyE6KlxcXS9nLCJcXCQmIil9ZnVuY3Rpb24gWHMoZSl7cmV0dXJuIGUucmVwbGFjZSgvWy4rKj9eJHt9KClbXF18L1xcXS9nLCJcXCQmIil9dmFyIExMPWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy50b2tlbnM9dCx0aGlzLm9yaWdpbmFsUGF0aD1yfX07eDIuVG9rZW5EYXRhPUxMO3ZhciB4ZD1jbGFzcyBleHRlbmRzIFR5cGVFcnJvcntjb25zdHJ1Y3Rvcih0LHIpe2xldCBpPXQ7ciYmKGkrPWA6ICR7cn1gKSxpKz0iOyB2aXNpdCBodHRwczovL2dpdC5uZXcvcGF0aFRvUmVnZXhwRXJyb3IgZm9yIGluZm8iLHN1cGVyKGkpLHRoaXMub3JpZ2luYWxQYXRoPXJ9fTt4Mi5QYXRoRXJyb3I9eGQ7ZnVuY3Rpb24gdjFlKGUsdD17fSl7bGV0e2VuY29kZVBhdGg6cj1nMWV9PXQsaT1bLi4uZV0sYT1bXSxuPTAsbz0wO2Z1bmN0aW9uIHMoKXtsZXQgYz0iIjtpZihmS2UudGVzdChpW25dKSlkbyBjKz1pW24rK107d2hpbGUoYjFlLnRlc3QoaVtuXSkpO2Vsc2UgaWYoaVtuXT09PSciJyl7bGV0IHU9bjtmb3IoO24rKzxpLmxlbmd0aDspe2lmKGlbbl09PT0nIicpe24rKyx1PTA7YnJlYWt9aVtuXT09PSJcXCImJm4rKyxjKz1pW25dfWlmKHUpdGhyb3cgbmV3IHhkKGBVbnRlcm1pbmF0ZWQgcXVvdGUgYXQgaW5kZXggJHt1fWAsZSl9aWYoIWMpdGhyb3cgbmV3IHhkKGBNaXNzaW5nIHBhcmFtZXRlciBuYW1lIGF0IGluZGV4ICR7bn1gLGUpO3JldHVybiBjfWZvcig7bjxpLmxlbmd0aDspe2xldCBjPWlbbl0sdT1iVnJbY107dT9hLnB1c2goe3R5cGU6dSxpbmRleDpuKyssdmFsdWU6Y30pOmM9PT0iXFwiP2EucHVzaCh7dHlwZToiZXNjYXBlIixpbmRleDpuKyssdmFsdWU6aVtuKytdfSk6Yz09PSI6Ij9hLnB1c2goe3R5cGU6InBhcmFtIixpbmRleDpuKyssdmFsdWU6cygpfSk6Yz09PSIqIj9hLnB1c2goe3R5cGU6IndpbGRjYXJkIixpbmRleDpuKyssdmFsdWU6cygpfSk6YS5wdXNoKHt0eXBlOiJjaGFyIixpbmRleDpuKyssdmFsdWU6Y30pfWEucHVzaCh7dHlwZToiZW5kIixpbmRleDpuLHZhbHVlOiIifSk7ZnVuY3Rpb24gbChjKXtsZXQgdT1bXTtmb3IoOzspe2xldCBkPWFbbysrXTtpZihkLnR5cGU9PT1jKWJyZWFrO2lmKGQudHlwZT09PSJjaGFyInx8ZC50eXBlPT09ImVzY2FwZSIpe2xldCBoPWQudmFsdWUsZj1hW29dO2Zvcig7Zi50eXBlPT09ImNoYXIifHxmLnR5cGU9PT0iZXNjYXBlIjspaCs9Zi52YWx1ZSxmPWFbKytvXTt1LnB1c2goe3R5cGU6InRleHQiLHZhbHVlOnIoaCl9KTtjb250aW51ZX1pZihkLnR5cGU9PT0icGFyYW0ifHxkLnR5cGU9PT0id2lsZGNhcmQiKXt1LnB1c2goe3R5cGU6ZC50eXBlLG5hbWU6ZC52YWx1ZX0pO2NvbnRpbnVlfWlmKGQudHlwZT09PSJ7Iil7dS5wdXNoKHt0eXBlOiJncm91cCIsdG9rZW5zOmwoIn0iKX0pO2NvbnRpbnVlfXRocm93IG5ldyB4ZChgVW5leHBlY3RlZCAke2QudHlwZX0gYXQgaW5kZXggJHtkLmluZGV4fSwgZXhwZWN0ZWQgJHtjfWAsZSl9cmV0dXJuIHV9cmV0dXJuIG5ldyBMTChsKCJlbmQiKSxlKX1mdW5jdGlvbiB4VnIoZSx0PXt9KXtsZXR7ZW5jb2RlOnI9ZW5jb2RlVVJJQ29tcG9uZW50LGRlbGltaXRlcjppPW0xZX09dCxhPXR5cGVvZiBlPT0ib2JqZWN0Ij9lOnYxZShlLHQpLG49bUtlKGEudG9rZW5zLGkscik7cmV0dXJuIGZ1bmN0aW9uKHM9e30pe2xldFtsLC4uLmNdPW4ocyk7aWYoYy5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcihgTWlzc2luZyBwYXJhbWV0ZXJzOiAke2Muam9pbigiLCAiKX1gKTtyZXR1cm4gbH19ZnVuY3Rpb24gbUtlKGUsdCxyKXtsZXQgaT1lLm1hcChhPT55VnIoYSx0LHIpKTtyZXR1cm4gYT0+e2xldCBuPVsiIl07Zm9yKGxldCBvIG9mIGkpe2xldFtzLC4uLmxdPW8oYSk7blswXSs9cyxuLnB1c2goLi4ubCl9cmV0dXJuIG59fWZ1bmN0aW9uIHlWcihlLHQscil7aWYoZS50eXBlPT09InRleHQiKXJldHVybigpPT5bZS52YWx1ZV07aWYoZS50eXBlPT09Imdyb3VwIil7bGV0IGE9bUtlKGUudG9rZW5zLHQscik7cmV0dXJuIG49PntsZXRbbywuLi5zXT1hKG4pO3JldHVybiBzLmxlbmd0aD9bIiJdOltvXX19bGV0IGk9cnx8ZzFlO3JldHVybiBlLnR5cGU9PT0id2lsZGNhcmQiJiZyIT09ITE/YT0+e2xldCBuPWFbZS5uYW1lXTtpZihuPT1udWxsKXJldHVyblsiIixlLm5hbWVdO2lmKCFBcnJheS5pc0FycmF5KG4pfHxuLmxlbmd0aD09PTApdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7ZS5uYW1lfSIgdG8gYmUgYSBub24tZW1wdHkgYXJyYXlgKTtyZXR1cm5bbi5tYXAoKG8scyk9PntpZih0eXBlb2YgbyE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7ZS5uYW1lfS8ke3N9IiB0byBiZSBhIHN0cmluZ2ApO3JldHVybiBpKG8pfSkuam9pbih0KV19OmE9PntsZXQgbj1hW2UubmFtZV07aWYobj09bnVsbClyZXR1cm5bIiIsZS5uYW1lXTtpZih0eXBlb2YgbiE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgIiR7ZS5uYW1lfSIgdG8gYmUgYSBzdHJpbmdgKTtyZXR1cm5baShuKV19fWZ1bmN0aW9uIHdWcihlLHQ9e30pe2xldHtkZWNvZGU6cj1kZWNvZGVVUklDb21wb25lbnQsZGVsaW1pdGVyOmk9bTFlfT10LHtyZWdleHA6YSxrZXlzOm59PWdLZShlLHQpLG89bi5tYXAocz0+cj09PSExP2cxZTpzLnR5cGU9PT0icGFyYW0iP3I6bD0+bC5zcGxpdChpKS5tYXAocikpO3JldHVybiBmdW5jdGlvbihsKXtsZXQgYz1hLmV4ZWMobCk7aWYoIWMpcmV0dXJuITE7bGV0IHU9Y1swXSxkPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBoPTE7aDxjLmxlbmd0aDtoKyspe2lmKGNbaF09PT12b2lkIDApY29udGludWU7bGV0IGY9bltoLTFdLHg9b1toLTFdO2RbZi5uYW1lXT14KGNbaF0pfXJldHVybntwYXRoOnUscGFyYW1zOmR9fX1mdW5jdGlvbiBnS2UoZSx0PXt9KXtsZXR7ZGVsaW1pdGVyOnI9bTFlLGVuZDppPSEwLHNlbnNpdGl2ZTphPSExLHRyYWlsaW5nOm49ITB9PXQsbz1bXSxzPWE/IiI6ImkiLGw9W107Zm9yKGxldCBkIG9mIGJLZShlLFtdKSl7bGV0IGg9dHlwZW9mIGQ9PSJvYmplY3QiP2Q6djFlKGQsdCk7Zm9yKGxldCBmIG9mIEFMKGgudG9rZW5zLDAsW10pKWwucHVzaChNVnIoZixyLG8saC5vcmlnaW5hbFBhdGgpKX1sZXQgYz1gXig/OiR7bC5qb2luKCJ8Iil9KWA7cmV0dXJuIG4mJihjKz1gKD86JHtYcyhyKX0kKT9gKSxjKz1pPyIkIjpgKD89JHtYcyhyKX18JClgLHtyZWdleHA6bmV3IFJlZ0V4cChjLHMpLGtleXM6b319ZnVuY3Rpb24gYktlKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IobGV0IHIgb2YgZSliS2Uocix0KTtlbHNlIHQucHVzaChlKTtyZXR1cm4gdH1mdW5jdGlvbipBTChlLHQscil7aWYodD09PWUubGVuZ3RoKXJldHVybiB5aWVsZCByO2xldCBpPWVbdF07aWYoaS50eXBlPT09Imdyb3VwIilmb3IobGV0IGEgb2YgQUwoaS50b2tlbnMsMCxyLnNsaWNlKCkpKXlpZWxkKkFMKGUsdCsxLGEpO2Vsc2Ugci5wdXNoKGkpO3lpZWxkKkFMKGUsdCsxLHIpfWZ1bmN0aW9uIE1WcihlLHQscixpKXtsZXQgYT0iIixuPSIiLG89ITA7Zm9yKGxldCBzIG9mIGUpe2lmKHMudHlwZT09PSJ0ZXh0Iil7YSs9WHMocy52YWx1ZSksbis9cy52YWx1ZSxvfHwobz1zLnZhbHVlLmluY2x1ZGVzKHQpKTtjb250aW51ZX1pZihzLnR5cGU9PT0icGFyYW0ifHxzLnR5cGU9PT0id2lsZGNhcmQiKXtpZighbyYmIW4pdGhyb3cgbmV3IHhkKGBNaXNzaW5nIHRleHQgYmVmb3JlICIke3MubmFtZX0iICR7cy50eXBlfWAsaSk7cy50eXBlPT09InBhcmFtIj9hKz1gKCR7a1ZyKHQsbz8iIjpuKX0rKWA6YSs9IihbXFxzXFxTXSspIixyLnB1c2gocyksbj0iIixvPSExO2NvbnRpbnVlfX1yZXR1cm4gYX1mdW5jdGlvbiBrVnIoZSx0KXtyZXR1cm4gdC5sZW5ndGg8Mj9lLmxlbmd0aDwyP2BbXiR7WHMoZSt0KX1dYDpgKD86KD8hJHtYcyhlKX0pW14ke1hzKHQpfV0pYDplLmxlbmd0aDwyP2AoPzooPyEke1hzKHQpfSlbXiR7WHMoZSl9XSlgOmAoPzooPyEke1hzKHQpfXwke1hzKGUpfSlbXFxzXFxTXSlgfWZ1bmN0aW9uIHZLZShlKXtsZXQgdD0iIixyPTA7ZnVuY3Rpb24gaShhKXtyZXR1cm4gelZyKGEpJiZDVnIoZVtyXSk/YTpKU09OLnN0cmluZ2lmeShhKX1mb3IoO3I8ZS5sZW5ndGg7KXtsZXQgYT1lW3IrK107aWYoYS50eXBlPT09InRleHQiKXt0Kz12VnIoYS52YWx1ZSk7Y29udGludWV9aWYoYS50eXBlPT09Imdyb3VwIil7dCs9YHske3ZLZShhLnRva2Vucyl9fWA7Y29udGludWV9aWYoYS50eXBlPT09InBhcmFtIil7dCs9YDoke2koYS5uYW1lKX1gO2NvbnRpbnVlfWlmKGEudHlwZT09PSJ3aWxkY2FyZCIpe3QrPWAqJHtpKGEubmFtZSl9YDtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKGBVbmtub3duIHRva2VuIHR5cGU6ICR7YS50eXBlfWApfXJldHVybiB0fWZ1bmN0aW9uIFNWcihlKXtyZXR1cm4gdktlKGUudG9rZW5zKX1mdW5jdGlvbiB6VnIoZSl7bGV0W3QsLi4ucl09ZTtyZXR1cm4gZktlLnRlc3QodCkmJnIuZXZlcnkoaT0+YjFlLnRlc3QoaSkpfWZ1bmN0aW9uIENWcihlKXtyZXR1cm4gZSYmZS50eXBlPT09InRleHQiPyFiMWUudGVzdChlLnZhbHVlWzBdKTohMH19KTt2YXIgeDFlLHkxZT1wKCgpPT57R20oKTtoMigpO3gxZT1lcih4S2UoKSwxKX0pO3ZhciBETCx5S2U9cCgoKT0+e3kxZSgpO0RMPWNsYXNze2NvbnN0cnVjdG9yKCl7fWdldEFsbEFzT2JqZWN0KCl7bGV0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHQuZW50cmllcygpKX1zZXRRdWVyeVBhcmFtKHQscixpPSJyZXBsYWNlIil7dmFyIGE9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTthLnNldCh0LHIpLGk9PT0icHVzaCI/aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxudWxsLCI/IithLnRvU3RyaW5nKCkpOmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsbnVsbCwiPyIrYS50b1N0cmluZygpKX1kZWxldGVRdWVyeVBhcmFtKHQscj0icmVwbGFjZSIpe3ZhciBpPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7aS5kZWxldGUodCkscj09PSJwdXNoIj9oaXN0b3J5LnB1c2hTdGF0ZShudWxsLG51bGwsIj8iK2kudG9TdHJpbmcoKSk6aGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxudWxsLCI/IitpLnRvU3RyaW5nKCkpfWdldFF1ZXJ5UGFyYW0odCl7cmV0dXJuIHRoaXMuZ2V0QWxsQXNPYmplY3QoKVt0XX19fSk7dmFyIE5HaSx3MWUsd0tlPXAoKCk9Pnt5MWUoKTt5S2UoKTtOR2k9ZT0+e2NvbnNvbGUubG9nKGAlY1tSb3V0ZXJdJWMgJHtlfWAsImNvbG9yOiByZ2IoMjU1LCAxMDUsIDEwMCk7IiwiY29sb3I6IGluaGVyaXQiKX0sdzFlPWNsYXNzIGV7Y29uc3RydWN0b3IodCxyPSIiKXt0aGlzLm9wdGlvbnM9e2RlYnVnOiExfSx0aGlzLnF1ZXJ5UGFyYW1zPW5ldyBETCx0aGlzLnJvdXRlcz1bXSx0aGlzLm9wdGlvbnM9ey4uLnRoaXMub3B0aW9ucywuLi50fSx0aGlzLmJhc2VQYXRoPXIsdGhpcy5wb3BzdGF0ZUxpc3RlbmVyPWk9PntpLnByZXZlbnREZWZhdWx0KCksdGhpcy5faGFuZGxlUm91dGVTdGF0ZSgpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLHRoaXMucG9wc3RhdGVMaXN0ZW5lcil9Y3JlYXRlU3ViUm91dGVyKHQscil7bGV0IGk9YCR7dGhpcy5iYXNlUGF0aH0ke3R9YDtyZXR1cm4gbmV3IGUoey4uLnRoaXMub3B0aW9ucywuLi5yfSxpKX1hc3luYyBwdXNoVXJsKHQ9Ii8iLHI9e30pe2xldCBpPWAke3RoaXMuYmFzZVBhdGh9JHt0fWA7aSE9PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZT93aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUocix3aW5kb3cuZG9jdW1lbnQudGl0bGUsaSk6d2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHIsd2luZG93LmRvY3VtZW50LnRpdGxlLGkpLGF3YWl0IHRoaXMuX2hhbmRsZVJvdXRlU3RhdGUoKX1vbih0LHIpe2xldCBpPWAke3RoaXMuYmFzZVBhdGh9JHt0fWAsYT17bWF0Y2hGdW5jdGlvbjp4MWUubWF0Y2goaSksaGFuZGxlcjpyfTtyZXR1cm4gdGhpcy5yb3V0ZXMucHVzaChhKSwoKT0+e3RoaXMucm91dGVzLnNwbGljZSh0aGlzLnJvdXRlcy5pbmRleE9mKGEpLDEpfX1hc3luYyBfaGFuZGxlUm91dGVTdGF0ZSgpe2xldCB0PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxyPXRoaXMucm91dGVzLmZpbHRlcihpPT4hIWkubWF0Y2hGdW5jdGlvbih0KSk7Zm9yKGxldCBpIG9mIHIpe2xldCBhPWkubWF0Y2hGdW5jdGlvbih0KTtpLmhhbmRsZXIoey4uLmEudmFsdWVPZigpLHF1ZXJ5UGFyYW1zOnRoaXMucXVlcnlQYXJhbXMuZ2V0QWxsQXNPYmplY3QoKX0pfX1kZXN0cm95KCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIix0aGlzLnBvcHN0YXRlTGlzdGVuZXIpLHRoaXMucm91dGVzPVtdfX19KTt2YXIgeDQ9e307RmUoeDQse1NtYXJ0Um91dGVyOigpPT53MWV9KTt2YXIgTTFlPXAoKCk9Pnt3S2UoKX0pO3ZhciBNS2U9cCgoKT0+e044KCk7VjgoKX0pO2Z1bmN0aW9uIFFzKGUsdCl7cmV0dXJuIGU+Pj50fGU8PDMyLXR9ZnVuY3Rpb24gRFZyKGUsdCl7bGV0IHI9dFswXSxpPXRbMV0sYT10WzJdLG49dFszXSxvPXRbNF0scz10WzVdLGw9dFs2XSxjPXRbN107Zm9yKGxldCB1PTA7dTw2NDt1Kyspe2lmKHU+PTE2KXtsZXQgeT1RcyhlW3UtMTVdLDcpXlFzKGVbdS0xNV0sMTgpXmVbdS0xNV0+Pj4zLHc9UXMoZVt1LTJdLDE3KV5RcyhlW3UtMl0sMTkpXmVbdS0yXT4+PjEwO2VbdV09ZVt1LTE2XSt5K2VbdS03XSt3Pj4+MH1sZXQgZD1RcyhvLDYpXlFzKG8sMTEpXlFzKG8sMjUpLGg9byZzXn5vJmwsZj1jK2QraCtMVnJbdV0rZVt1XT4+PjAseD1RcyhyLDIpXlFzKHIsMTMpXlFzKHIsMjIpLHY9ciZpXnImYV5pJmEsYj14K3Y+Pj4wO2M9bCxsPXMscz1vLG89bitmPj4+MCxuPWEsYT1pLGk9cixyPWYrYj4+PjB9dFswXT10WzBdK3I+Pj4wLHRbMV09dFsxXStpPj4+MCx0WzJdPXRbMl0rYT4+PjAsdFszXT10WzNdK24+Pj4wLHRbNF09dFs0XStvPj4+MCx0WzVdPXRbNV0rcz4+PjAsdFs2XT10WzZdK2w+Pj4wLHRbN109dFs3XStjPj4+MH1mdW5jdGlvbiBrMWUoZSl7bGV0IHQ9Wy4uLkFWcl0scj1lLmxlbmd0aCxpPXIqOCxhPXIlNjQ8NTY/NTYtciU2NDoxMjAtciU2NCxuPW5ldyBVaW50OEFycmF5KHIrYSs4KTtuLnNldChlKSxuW3JdPTEyODtsZXQgbz1uZXcgRGF0YVZpZXcobi5idWZmZXIpO28uc2V0VWludDMyKG4ubGVuZ3RoLTgsMCwhMSksby5zZXRVaW50MzIobi5sZW5ndGgtNCxpPj4+MCwhMSk7Zm9yKGxldCBsPTA7bDxuLmxlbmd0aDtsKz02NCl7bGV0IGM9bmV3IEFycmF5KDY0KTtmb3IobGV0IHU9MDt1PDE2O3UrKyljW3VdPW8uZ2V0VWludDMyKGwrdSo0LCExKTtEVnIoYyx0KX1sZXQgcz0iIjtmb3IobGV0IGw9MDtsPDg7bCsrKXMrPXRbbF0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKTtyZXR1cm4gc312YXIgTFZyLEFWcixrS2U9cCgoKT0+e0xWcj1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxBVnI9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIsMTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XX0pO3ZhciB0Zz17fTtGZSh0Zyx7bWQ1RnJvbVN0cmluZzooKT0+RlZyLHNoYTI1NkZyb21CdWZmZXI6KCk9PiRWcixzaGEyNTZGcm9tRmlsZTooKT0+TlZyLHNoYTI1NkZyb21TdHJlYW06KCk9PlBWcixzaGEyNTZGcm9tU3RyaW5nOigpPT5DS2Usc2hhMjU2RnJvbVN0cmluZ1N5bmM6KCk9PkVWcixzaGEyNjVGcm9tT2JqZWN0OigpPT5JVnJ9KTt2YXIgU0tlLHpLZSxDS2UsRVZyLCRWcixJVnIsUFZyLE5WcixGVnIsVEtlPXAoKCk9PntNS2UoKTtrS2UoKTtTS2U9ZT0+e2xldCB0PVtdLHI9bmV3IERhdGFWaWV3KGUpO2ZvcihsZXQgaT0wO2k8ci5ieXRlTGVuZ3RoO2krPTQpe2xldCBuPXIuZ2V0VWludDMyKGkpLnRvU3RyaW5nKDE2KSxvPSIwMDAwMDAwMCIscz0obytuKS5zbGljZSgtby5sZW5ndGgpO3QucHVzaChzKX1yZXR1cm4gdC5qb2luKCIiKX0sektlPSgpPT50eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnN1YnRsZSE9PXZvaWQgMCxDS2U9YXN5bmMgZT0+e2xldCB0PW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlKTtpZih6S2UoKSl7bGV0IHI9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLHQpO3JldHVybiBTS2Uocil9ZWxzZSByZXR1cm4gazFlKHQpfSxFVnI9ZT0+e3Rocm93IGNvbnNvbGUud2Fybigic2hhMjU2RnJvbVN0cmluZ1N5bmMgaXMgbm90IHRydWx5IHN5bmNocm9ub3VzIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKSxuZXcgRXJyb3IoInNoYTI1NkZyb21TdHJpbmdTeW5jIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudC4gVXNlIHNoYTI1NkZyb21TdHJpbmcgaW5zdGVhZC4iKX0sJFZyPWFzeW5jIGU9PntpZih6S2UoKSl7bGV0IHQ7aWYoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2xldCBhPWU7dD1hLmJ1ZmZlci5zbGljZShhLmJ5dGVPZmZzZXQsYS5ieXRlT2Zmc2V0K2EuYnl0ZUxlbmd0aCl9ZWxzZSB0PWU7bGV0IHI9YXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLHQpO3JldHVybiBTS2Uocil9ZWxzZXtsZXQgdD1lIGluc3RhbmNlb2YgVWludDhBcnJheT9lOm5ldyBVaW50OEFycmF5KGUpO3JldHVybiBrMWUodCl9fSxJVnI9YXN5bmMgZT0+e2xldCB0PXkxLnN0cmluZ2lmeShlKTtyZXR1cm4gYXdhaXQgQ0tlKHQpfSxQVnI9ZT0+e3Rocm93IG5ldyBFcnJvcigic2hhMjU2RnJvbVN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQiKX0sTlZyPWFzeW5jIGU9Pnt0aHJvdyBuZXcgRXJyb3IoInNoYTI1NkZyb21GaWxlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudCIpfSxGVnI9YXN5bmMgZT0+e3Rocm93IG5ldyBFcnJvcigibWQ1RnJvbVN0cmluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuIFdlYiBDcnlwdG8gQVBJIGRvZXMgbm90IHN1cHBvcnQgTUQ1LiIpfX0pO3ZhciBfS2U9cCgoKT0+e0VpKCl9KTt2YXIgTEtlPXAoKCk9Pnt9KTt2YXIgUzFlLEFLZT1wKCgpPT57X0tlKCk7TEtlKCk7UzFlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5sb2FkZWRTY3JpcHRzPVtdfWFzeW5jIGdldEVudkF3YXJlTW9kdWxlKHQpe2lmKHRoaXMuaXNOb2RlKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHQubm9kZU1vZHVsZU5hbWUpO2lmKHRoaXMuaXNCcm93c2VyKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVXZWJNb2R1bGUodC53ZWJVcmxBcmcsdC5nZXRGdW5jdGlvbik7Y29uc29sZS5lcnJvcigicGxhdGZvcm0gZm9yIGxvYWRpbmcgbm90IHN1cHBvcnRlZCBieSBzbWFydGVudiIpfWFzeW5jIGdldFNhZmVOb2RlTW9kdWxlKHQscil7aWYoIXRoaXMuaXNOb2RlJiYhdGhpcy5pc0Rlbm8mJiF0aGlzLmlzQnVuKXtjb25zb2xlLmVycm9yKGBZb3UgdHJpZWQgdG8gbG9hZCBhIHNlcnZlciBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0OiAke3R9LiBUaGlzIGRvZXMgbm90IHRocm93LmApO3JldHVybn1sZXQgaT1hd2FpdCBuZXcgRnVuY3Rpb24oYHJldHVybiBpbXBvcnQoJyR7dH0nKWApKCk7cmV0dXJuIHImJmF3YWl0IHIoaSksaX1hc3luYyBnZXRTYWZlV2ViTW9kdWxlKHQscil7aWYoIXRoaXMuaXNCcm93c2VyKXtjb25zb2xlLmVycm9yKCJZb3UgdHJpZWQgdG8gbG9hZCBhIHdlYiBtb2R1bGUgaW4gYSB3cm9uZyBjb250ZXh0Iik7cmV0dXJufWlmKHRoaXMubG9hZGVkU2NyaXB0cy5pbmNsdWRlcyh0KSlyZXR1cm4gcigpO3RoaXMubG9hZGVkU2NyaXB0cy5wdXNoKHQpO2xldCBpPVhlLmRlZmVyKCk7aWYoZ2xvYmFsVGhpcy5pbXBvcnRTY3JpcHRzKWdsb2JhbFRoaXMuaW1wb3J0U2NyaXB0cyh0KSxpLnJlc29sdmUoKTtlbHNle2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Eub25sb2FkPSgpPT57aS5yZXNvbHZlKCl9LGEuc3JjPXQsZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKX1yZXR1cm4gYXdhaXQgaS5wcm9taXNlLHIoKX1nZXQgcnVudGltZUVudigpe3JldHVybiB0eXBlb2YgZ2xvYmFsVGhpcy5EZW5vPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXMuRGVubz8udmVyc2lvbjwidSI/ImRlbm8iOnR5cGVvZiBnbG9iYWxUaGlzLkJ1bjwidSImJnR5cGVvZiBnbG9iYWxUaGlzLkJ1bj8udmVyc2lvbjwidSI/ImJ1biI6dHlwZW9mIGdsb2JhbFRoaXMucHJvY2VzczwidSImJnR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3M/LnZlcnNpb25zPy5ub2RlPCJ1Ij8ibm9kZSI6KHR5cGVvZiBnbG9iYWxUaGlzLndpbmRvdzwidSImJnR5cGVvZiBnbG9iYWxUaGlzLmRvY3VtZW50PCJ1IiwiYnJvd3NlciIpfWdldCBpc0Jyb3dzZXIoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09ImJyb3dzZXIifWdldCBpc05vZGUoKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09Im5vZGUifWdldCBpc0Rlbm8oKXtyZXR1cm4gdGhpcy5ydW50aW1lRW52PT09ImRlbm8ifWdldCBpc0J1bigpe3JldHVybiB0aGlzLnJ1bnRpbWVFbnY9PT0iYnVuIn1nZXQgdXNlckFnZW50KCl7cmV0dXJuIHRoaXMuaXNCcm93c2VyP25hdmlnYXRvci51c2VyQWdlbnQ6InVuZGVmaW5lZCJ9Z2V0IG5vZGVWZXJzaW9uKCl7cmV0dXJuIHRoaXMuaXNOb2RlP3Byb2Nlc3MudmVyc2lvbjoidW5kZWZpbmVkIn1nZXQgZGVub1ZlcnNpb24oKXtyZXR1cm4gdGhpcy5pc0Rlbm8/Z2xvYmFsVGhpcy5EZW5vLnZlcnNpb24uZGVubzoidW5kZWZpbmVkIn1nZXQgYnVuVmVyc2lvbigpe3JldHVybiB0aGlzLmlzQnVuP2dsb2JhbFRoaXMuQnVuLnZlcnNpb246InVuZGVmaW5lZCJ9YXN5bmMgZ2V0U2FmZU1vZHVsZUZvcih0LHIsaSl7bGV0IGE7aWYoQXJyYXkuaXNBcnJheSh0KT9hPXQuZmxhdE1hcChuPT5uPT09InNlcnZlciI/WyJub2RlIiwiZGVubyIsImJ1biJdOltuXSk6dD09PSJzZXJ2ZXIiP2E9WyJub2RlIiwiZGVubyIsImJ1biJdOmE9W3RdLCFhLmluY2x1ZGVzKHRoaXMucnVudGltZUVudikpe2NvbnNvbGUud2FybihgTW9kdWxlICIke3J9IiByZXF1ZXN0ZWQgZm9yIHJ1bnRpbWUocykgWyR7YS5qb2luKCIsICIpfV0gYnV0IGN1cnJlbnQgcnVudGltZSBpcyAiJHt0aGlzLnJ1bnRpbWVFbnZ9Ii4gU2tpcHBpbmcgbG9hZC5gKTtyZXR1cm59aWYodGhpcy5pc05vZGV8fHRoaXMuaXNEZW5vfHx0aGlzLmlzQnVuKXJldHVybiBhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKHIpO2lmKHRoaXMuaXNCcm93c2VyKXtpZighaSl7Y29uc29sZS5lcnJvcihgQnJvd3NlciBtb2R1bGUgbG9hZCByZXF1aXJlcyBnZXRGdW5jdGlvbiBwYXJhbWV0ZXIgZm9yICIke3J9ImApO3JldHVybn1yZXR1cm4gYXdhaXQgdGhpcy5nZXRTYWZlV2ViTW9kdWxlKHIsaSl9fWdldCBpc0NJKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyEhcHJvY2Vzcy5lbnYuQ0k6ITF9YXN5bmMgaXNNYWNBc3luYygpe3JldHVybiB0aGlzLmlzTm9kZT8oYXdhaXQgdGhpcy5nZXRTYWZlTm9kZU1vZHVsZSgib3MiKSkucGxhdGZvcm0oKT09PSJkYXJ3aW4iOiExfWFzeW5jIGlzV2luZG93c0FzeW5jKCl7cmV0dXJuIHRoaXMuaXNOb2RlPyhhd2FpdCB0aGlzLmdldFNhZmVOb2RlTW9kdWxlKCJvcyIpKS5wbGF0Zm9ybSgpPT09IndpbjMyIjohMX1hc3luYyBpc0xpbnV4QXN5bmMoKXtyZXR1cm4gdGhpcy5pc05vZGU/KGF3YWl0IHRoaXMuZ2V0U2FmZU5vZGVNb2R1bGUoIm9zIikpLnBsYXRmb3JtKCk9PT0ibGludXgiOiExfWFzeW5jIHByaW50RW52KCl7dGhpcy5pc05vZGU/KGNvbnNvbGUubG9nKCJydW5uaW5nIG9uIE5PREUiKSxjb25zb2xlLmxvZygibm9kZSB2ZXJzaW9uIGlzICIrdGhpcy5ub2RlVmVyc2lvbikpOnRoaXMuaXNEZW5vPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBERU5PIiksY29uc29sZS5sb2coImRlbm8gdmVyc2lvbiBpcyAiK3RoaXMuZGVub1ZlcnNpb24pKTp0aGlzLmlzQnVuPyhjb25zb2xlLmxvZygicnVubmluZyBvbiBCVU4iKSxjb25zb2xlLmxvZygiYnVuIHZlcnNpb24gaXMgIit0aGlzLmJ1blZlcnNpb24pKTooY29uc29sZS5sb2coInJ1bm5pbmcgb24gQlJPV1NFUiIpLGNvbnNvbGUubG9nKCJicm93c2VyIGlzICIrdGhpcy51c2VyQWdlbnQpKX19fSk7dmFyIHoxZT17fTtGZSh6MWUse1NtYXJ0ZW52OigpPT5TMWV9KTt2YXIgREtlPXAoKCk9PntBS2UoKX0pO3ZhciBFTCxFS2UsJEwsQzFlPXAoKCk9PntES2UoKTtSOCgpO0VMPWVyKGtLKCksMSksRUtlPWVyKFNLKCksMSksJEw9RUtlLmRlZmF1bHR9KTtmdW5jdGlvbiBCVnIoZSl7cmV0dXJuIHR5cGVvZiBCdWZmZXI8InUiP0J1ZmZlci5mcm9tKGUpLnRvU3RyaW5nKCJiYXNlNjQiKTpidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4uZSkpfWZ1bmN0aW9uIEhWcihlKXtpZih0eXBlb2YgQnVmZmVyPCJ1Iil7bGV0IHQ9QnVmZmVyLmZyb20oZSwiYmFzZTY0Iik7cmV0dXJuIG5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfXJldHVybiBuZXcgVWludDhBcnJheShBcnJheS5mcm9tKGF0b2IoZSkpLm1hcCh0PT50LmNoYXJDb2RlQXQoMCkpKX1mdW5jdGlvbiBfMWUoZSx0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSxJTCx0KX1mdW5jdGlvbiBMMWUoZSl7cmV0dXJuIEpTT04ucGFyc2UoZSwkS2UpfWZ1bmN0aW9uIHFWcihlKXtyZXR1cm4gUEtlKGUpJiZlLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJlQxZShlLmRhdGEpfWZ1bmN0aW9uIGpWcihlKXtyZXR1cm4gUEtlKGUpJiZlLnR5cGU9PT0iQnVmZmVyIiYmKElLZShlLmRhdGEpfHxUMWUoZS5kYXRhKSl8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fWZ1bmN0aW9uIElLZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBUMWUoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIn1mdW5jdGlvbiBQS2UoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGx9dmFyIElMLCRLZSxOS2U9cCgoKT0+e0MxZSgpO0lMPShlLHQpPT57aWYoalZyKHQpKXtsZXQgcjtpZigiZGF0YSJpbiB0JiZJS2UodC5kYXRhKSlyPW5ldyBVaW50OEFycmF5KHQuZGF0YSk7ZWxzZSBpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSlyPXQ7ZWxzZSByZXR1cm4gdDtyZXR1cm57dHlwZToiRW5jb2RlZEJ1ZmZlciIsZGF0YToiYmFzZTY0OiIrQlZyKHIpfX1yZXR1cm4gdH0sJEtlPShlLHQpPT57aWYocVZyKHQpJiZUMWUodC5kYXRhKSYmdC5kYXRhLnN0YXJ0c1dpdGgoImJhc2U2NDoiKSl7bGV0IHI9dC5kYXRhLnNsaWNlKDcpO3JldHVybiBIVnIocil9cmV0dXJuIHR9fSk7dmFyIHJnPXt9O0ZlKHJnLHtTbWFydGpzb246KCk9PkQxZSxkZWVwRXF1YWxKc29uTFN0cmluZ3M6KCk9PlFWcixkZWVwRXF1YWxPYmplY3RzOigpPT5GS2UsZm9sZERlYzooKT0+WFZyLHBhcnNlOigpPT5QTCxwYXJzZUJhc2U2NDooKT0+WlZyLHBhcnNlSnNvbkw6KCk9PkExZSxzdGFibGVPbmVXYXlTdHJpbmdpZnk6KCk9PldWcixzdHJpbmdpZnk6KCk9PnlkLHN0cmluZ2lmeUJhc2U2NDooKT0+WVZyLHN0cmluZ2lmeUpzb25MOigpPT5VVnIsc3RyaW5naWZ5UHJldHR5OigpPT5HVnJ9KTt2YXIgUEwsQTFlLFVWcixXVnIseWQsR1ZyLFlWcixaVnIsRDFlLFhWcixGS2UsUVZyLE9LZT1wKCgpPT57QzFlKCk7TktlKCk7UEw9TDFlLEExZT1lPT5lLnNwbGl0KGAKYCkucmVkdWNlKChpLGEpPT57bGV0IG49YS50cmltKCk7cmV0dXJuIG4ubGVuZ3RoPjAmJmkucHVzaChQTChuKSksaX0sW10pLFVWcj1lPT5lLm1hcCh0PT55ZCh0KSkuam9pbihgCmApLFdWcj0oZSx0LHI9e30pPT57bGV0IGk9bmV3IFdlYWtTZXQsYT1zPT57aWYocz09PW51bGx8fHR5cGVvZiBzIT0ib2JqZWN0IilyZXR1cm4gcztsZXQgbD1JTCgiIixzKTtpZihsJiZsLnR5cGU9PT0iRW5jb2RlZEJ1ZmZlciImJnR5cGVvZiBsLmRhdGE9PSJzdHJpbmciKXJldHVybiBsO2lmKGkuaGFzKHMpKXJldHVybiJfX2N5Y2xlX18iO2lmKGkuYWRkKHMpLEFycmF5LmlzQXJyYXkocykpcmV0dXJuIHMubWFwKHU9PmEodSkpO2xldCBjPXt9O2ZvcihsZXQgdSBvZiBPYmplY3Qua2V5cyhzKSl0cnl7Y1t1XT1hKHNbdV0pfWNhdGNoe2NbdV09Il9fdW5zZXJpYWxpemFibGVfXyJ9cmV0dXJuIGN9LG49YShlKSxvPXsuLi5yLGN5Y2xlczohMH07aWYodCYmIW8uY21wKXtsZXQgcz1uZXcgTWFwO3QuZm9yRWFjaCgobCxjKT0+cy5zZXQobCxjKSksby5jbXA9KGwsYyk9PntsZXQgdT1zLmhhcyhsLmtleSk/cy5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWSxkPXMuaGFzKGMua2V5KT9zLmdldChjLmtleSk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3JldHVybiB1IT09ZD91LWQ6bC5rZXk8Yy5rZXk/LTE6bC5rZXk+Yy5rZXk/MTowfX1yZXR1cm4gJEwobixvKX0seWQ9KGUsdCxyPXt9KT0+e2xldCBpPV8xZShlKTtlPUpTT04ucGFyc2UoaSk7bGV0IGE9ey4uLnJ9O2lmKHQmJiFhLmNtcCl7bGV0IG89bmV3IE1hcDt0LmZvckVhY2goKHMsbCk9Pm8uc2V0KHMsbCkpLGEuY21wPShzLGwpPT57bGV0IGM9by5oYXMocy5rZXkpP28uZ2V0KHMua2V5KTpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdT1vLmhhcyhsLmtleSk/by5nZXQobC5rZXkpOk51bWJlci5QT1NJVElWRV9JTkZJTklUWTtyZXR1cm4gYyE9PXU/Yy11OnMua2V5PGwua2V5Py0xOnMua2V5Pmwua2V5PzE6MH19cmV0dXJuICRMKGUsYSl9LEdWcj1lPT57bGV0IHQ9eWQoZSkscj1KU09OLnBhcnNlKHQpO3JldHVybiBKU09OLnN0cmluZ2lmeShyLG51bGwsMil9LFlWcj0oLi4uZSk9PntsZXQgdD15ZCguLi5lKTtyZXR1cm4gUWkuYmFzZTY0LmVuY29kZVVyaSh0KX0sWlZyPWU9PntsZXQgdD1RaS5iYXNlNjQsaT0odC5kZWNvZGVVcml8fHQuZGVjb2RlKShlKTtyZXR1cm4gUEwoaSl9LEQxZT1jbGFzcyBle3N0YXRpYyBlbmZvbGRGcm9tT2JqZWN0KHQpe2xldCByPW5ldyB0aGlzLGk9ci5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgYSBpbiB0KWkuaW5kZXhPZihhKSE9PS0xJiYoclthXT10W2FdKTtyZXR1cm4gcn1zdGF0aWMgZW5mb2xkRnJvbUpzb24odCl7bGV0IHI9UEwodCk7cmV0dXJuIHRoaXMuZW5mb2xkRnJvbU9iamVjdChyKX1zYXZlYWJsZVByb3BlcnRpZXM7Zm9sZFRvT2JqZWN0KCl7bGV0IHQ9bmV3IFNldDtyZXR1cm4gdC5hZGQodGhpcyksdGhpcy5mb2xkVG9PYmplY3RJbnRlcm5hbCh0KX1mb2xkVG9PYmplY3RJbnRlcm5hbCh0KXtsZXQgcj17fSxpPW49PntpZihuIGluc3RhbmNlb2YgZSl7aWYodC5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJjeWNsZSBkZXRlY3RlZCIpO3JldHVybiB0LmFkZChuKSxuLmZvbGRUb09iamVjdEludGVybmFsKHQpfXJldHVybiBBcnJheS5pc0FycmF5KG4pP24ubWFwKG89PmkobykpOkVMLmRlZmF1bHQobil9LGE9dGhpcy5zYXZlYWJsZVByb3BlcnRpZXN8fFtdO2ZvcihsZXQgbiBvZiBhKXtsZXQgbz10aGlzW25dO3Jbbl09aShvKX1yZXR1cm4gcn1mb2xkVG9Kc29uKCl7bGV0IHQ9dGhpcy5mb2xkVG9PYmplY3QoKTtyZXR1cm4geWQodCl9fSxYVnI9KCk9PihlLHQpPT57bGV0IHI9U3RyaW5nKHQubmFtZSk7dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbigpe3RoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzfHwodGhpcy5zYXZlYWJsZVByb3BlcnRpZXM9W10pLHRoaXMuc2F2ZWFibGVQcm9wZXJ0aWVzLmluY2x1ZGVzKHIpfHx0aGlzLnNhdmVhYmxlUHJvcGVydGllcy5wdXNoKHIpfSl9LEZLZT0oZSx0KT0+e2xldCByPXlkKGUpLGk9eWQodCk7cmV0dXJuIHI9PT1pfSxRVnI9KGUsdCk9PntsZXQgcj1BMWUoZSksaT1BMWUodCk7cmV0dXJuIEZLZShyLGkpfX0pO3ZhciBOTD1wKCgpPT57VEtlKCk7T0tlKCk7RWkoKTtoMigpO2M5KCl9KTt2YXIgaWcsRTFlPXAoKCk9PntOTCgpO0ZMKCk7aWc9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXt0aGlzLnN0YXRlUGFydFJlZj10LHRoaXMuYWN0aW9uRGVmPXJ9dHJpZ2dlcih0KXtyZXR1cm4gdGhpcy5zdGF0ZVBhcnRSZWYuZGlzcGF0Y2hBY3Rpb24odGhpcyx0KX19fSk7dmFyIGFnLEZMPXAoKCk9PntOTCgpO0UxZSgpO2FnPWNsYXNze2NvbnN0cnVjdG9yKHQscil7dGhpcy5zdGF0ZT1uZXcgbnIucnhqcy5TdWJqZWN0LHRoaXMuY3VtdWxhdGl2ZURlZmVycmVkPVhlLmN1bXVsYXRpdmVEZWZlcigpLHRoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb249bnVsbCx0aGlzLndlYlN0b3JlPW51bGwsdGhpcy5uYW1lPXQsciYmKHRoaXMud2ViU3RvcmVPcHRpb25zPXIpfWFzeW5jIGluaXQoKXtpZih0aGlzLndlYlN0b3JlT3B0aW9ucyl7dGhpcy53ZWJTdG9yZT1uZXcgWWEuV2ViU3RvcmUodGhpcy53ZWJTdG9yZU9wdGlvbnMpLGF3YWl0IHRoaXMud2ViU3RvcmUuaW5pdCgpO2xldCB0PWF3YWl0IHRoaXMud2ViU3RvcmUuZ2V0KFN0cmluZyh0aGlzLm5hbWUpKTt0JiZ0aGlzLnZhbGlkYXRlU3RhdGUodCkmJih0aGlzLnN0YXRlU3RvcmU9dCxhd2FpdCB0aGlzLm5vdGlmeUNoYW5nZSgpKX19Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5zdGF0ZVN0b3JlfWFzeW5jIHNldFN0YXRlKHQpe2lmKCF0aGlzLnZhbGlkYXRlU3RhdGUodCkpdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN0YXRlIHN0cnVjdHVyZSBmb3Igc3RhdGUgcGFydCAnJHt0aGlzLm5hbWV9J2ApO3JldHVybiB0aGlzLndlYlN0b3JlJiZhd2FpdCB0aGlzLndlYlN0b3JlLnNldChTdHJpbmcodGhpcy5uYW1lKSx0KSx0aGlzLnN0YXRlU3RvcmU9dCxhd2FpdCB0aGlzLm5vdGlmeUNoYW5nZSgpLHRoaXMuc3RhdGVTdG9yZX12YWxpZGF0ZVN0YXRlKHQpe3JldHVybiB0IT1udWxsfWFzeW5jIG5vdGlmeUNoYW5nZSgpe2lmKCF0aGlzLnN0YXRlU3RvcmUpcmV0dXJuO2xldCByPWF3YWl0KGFzeW5jIGk9PmF3YWl0IHRnLnNoYTI1NkZyb21TdHJpbmcocmcuc3RhYmxlT25lV2F5U3RyaW5naWZ5KGkpKSkodGhpcy5zdGF0ZVN0b3JlKTt0aGlzLmxhc3RTdGF0ZU5vdGlmaWNhdGlvblBheWxvYWRIYXNoJiZyPT09dGhpcy5sYXN0U3RhdGVOb3RpZmljYXRpb25QYXlsb2FkSGFzaHx8KHRoaXMubGFzdFN0YXRlTm90aWZpY2F0aW9uUGF5bG9hZEhhc2g9cix0aGlzLnN0YXRlLm5leHQodGhpcy5zdGF0ZVN0b3JlKSl9bm90aWZ5Q2hhbmdlQ3VtdWxhdGl2ZSgpe3RoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb24mJmNsZWFyVGltZW91dCh0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uKSx0aGlzLnBlbmRpbmdDdW11bGF0aXZlTm90aWZpY2F0aW9uPXNldFRpbWVvdXQoYXN5bmMoKT0+e3RoaXMucGVuZGluZ0N1bXVsYXRpdmVOb3RpZmljYXRpb249bnVsbCx0aGlzLnN0YXRlU3RvcmUmJmF3YWl0IHRoaXMubm90aWZ5Q2hhbmdlKCl9LDApfXNlbGVjdCh0KXtyZXR1cm4gdHx8KHQ9aT0+aSksdGhpcy5zdGF0ZS5waXBlKG5yLnJ4anMub3BzLnN0YXJ0V2l0aCh0aGlzLmdldFN0YXRlKCkpLG5yLnJ4anMub3BzLmZpbHRlcihpPT5pIT09dm9pZCAwKSxuci5yeGpzLm9wcy5tYXAoaT0+e3RyeXtyZXR1cm4gdChpKX1jYXRjaChhKXtjb25zb2xlLmVycm9yKGBTZWxlY3RvciBlcnJvciBpbiBzdGF0ZSBwYXJ0ICcke3RoaXMubmFtZX0nOmAsYSk7cmV0dXJufX0pKX1jcmVhdGVBY3Rpb24odCl7cmV0dXJuIG5ldyBpZyh0aGlzLHQpfWFzeW5jIGRpc3BhdGNoQWN0aW9uKHQscil7YXdhaXQgdGhpcy5jdW11bGF0aXZlRGVmZXJyZWQucHJvbWlzZTtsZXQgaT1hd2FpdCB0LmFjdGlvbkRlZih0aGlzLHIpO3JldHVybiBhd2FpdCB0aGlzLnNldFN0YXRlKGkpLHRoaXMuZ2V0U3RhdGUoKX1hc3luYyB3YWl0VW50aWxQcmVzZW50KHQscil7bGV0IGk9WGUuZGVmZXIoKSxhPXRoaXMuc2VsZWN0KHQpLG49ITEsbz1hLnN1YnNjcmliZShsPT57bCYmIW4mJihuPSEwLGkucmVzb2x2ZShsKSl9KSxzO3ImJihzPXNldFRpbWVvdXQoKCk9PntufHwobj0hMCxvLnVuc3Vic2NyaWJlKCksaS5yZWplY3QobmV3IEVycm9yKGB3YWl0VW50aWxQcmVzZW50IHRpbWVkIG91dCBhZnRlciAke3J9bXNgKSkpfSxyKSk7dHJ5e3JldHVybiBhd2FpdCBpLnByb21pc2V9ZmluYWxseXtvLnVuc3Vic2NyaWJlKCkscyYmY2xlYXJUaW1lb3V0KHMpfX1hc3luYyBzdGF0ZVNldHVwKHQpe2xldCByPXQodGhpcyk7dGhpcy5jdW11bGF0aXZlRGVmZXJyZWQuYWRkUHJvbWlzZShyKSxhd2FpdCB0aGlzLnNldFN0YXRlKGF3YWl0IHIpfX19KTt2YXIgJDFlLFJLZT1wKCgpPT57TkwoKTtGTCgpOyQxZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuc3RhdGVQYXJ0TWFwPXt9LHRoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uPW5ldyBNYXB9YXN5bmMgZ2V0U3RhdGVQYXJ0KHQscixpPSJzb2Z0Iil7bGV0IGE9dGhpcy5wZW5kaW5nU3RhdGVQYXJ0Q3JlYXRpb24uZ2V0KHQpO2lmKGEpcmV0dXJuIGE7bGV0IG49dGhpcy5zdGF0ZVBhcnRNYXBbdF07aWYobilzd2l0Y2goaSl7Y2FzZSJtYW5kYXRvcnkiOnRocm93IG5ldyBFcnJvcihgU3RhdGUgcGFydCAnJHt0fScgYWxyZWFkeSBleGlzdHMsIGJ1dCBpbml0TW9kZSBpcyAnbWFuZGF0b3J5J2ApO2Nhc2UiZm9yY2UiOmJyZWFrO2RlZmF1bHQ6cmV0dXJuIG59ZWxzZSBpZighcil0aHJvdyBuZXcgRXJyb3IoYFN0YXRlIHBhcnQgJyR7dH0nIGRvZXMgbm90IGV4aXN0IGFuZCBubyBpbml0aWFsIHN0YXRlIHByb3ZpZGVkYCk7bGV0IG89dGhpcy5jcmVhdGVTdGF0ZVBhcnQodCxyLGkpO3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLnNldCh0LG8pO3RyeXtyZXR1cm4gYXdhaXQgb31maW5hbGx5e3RoaXMucGVuZGluZ1N0YXRlUGFydENyZWF0aW9uLmRlbGV0ZSh0KX19YXN5bmMgY3JlYXRlU3RhdGVQYXJ0KHQscixpPSJzb2Z0Iil7bGV0IGE9bmV3IGFnKHQsaT09PSJwZXJzaXN0ZW50Ij97ZGJOYW1lOiJzbWFydHN0YXRlIixzdG9yZU5hbWU6dH06bnVsbCk7YXdhaXQgYS5pbml0KCk7bGV0IG49YS5nZXRTdGF0ZSgpO3JldHVybiBpPT09InBlcnNpc3RlbnQiJiZuIT09dm9pZCAwP2F3YWl0IGEuc2V0U3RhdGUoey4uLnIsLi4ubn0pOmF3YWl0IGEuc2V0U3RhdGUociksdGhpcy5zdGF0ZVBhcnRNYXBbdF09YSxhfX19KTt2YXIgeTQ9e307RmUoeTQse1NtYXJ0c3RhdGU6KCk9PiQxZSxTdGF0ZUFjdGlvbjooKT0+aWcsU3RhdGVQYXJ0OigpPT5hZ30pO3ZhciBJMWU9cCgoKT0+e1JLZSgpO0ZMKCk7RTFlKCl9KTt2YXIgQktlPXAoKCk9Pnt9KTt2YXIgUDFlLEhLZT1wKCgpPT57QktlKCk7UDFlPWNsYXNzIGV7c3RhdGljIGNyZWF0ZUZyb21VcmwodCxyKXtsZXQgaT1uZXcgVVJMKHQpLGE9e30sbj1bXTtpLnNlYXJjaCYmaS5zZWFyY2gucmVwbGFjZSgiPyIsIiIpLnNwbGl0KCImIikubWFwKGM9PntuLnB1c2goe2tleTpjLnNwbGl0KCI9IilbMF0sdmFsdWU6Yy5zcGxpdCgiPSIpWzFdfSl9KTtmb3IobGV0IGMgb2YgbilhW2Mua2V5XT1jLnZhbHVlO2lmKHI/LnNlYXJjaFBhcmFtcylmb3IobGV0IGMgb2YgT2JqZWN0LmtleXMoci5zZWFyY2hQYXJhbXMpKWFbY109ci5zZWFyY2hQYXJhbXNbY107bGV0IG89aS5wYXRobmFtZXx8IiI7aWYoT2JqZWN0LmtleXMoYSkubGVuZ3RoPjApe28rPSI/IjtsZXQgYz0hMDtmb3IobGV0IHUgb2YgT2JqZWN0LmtleXMoYSkpYz9jPSExOm8rPSImIixvKz1gJHt1fT0ke2FbdV19YH1sZXQgcz17Li4uaSxocmVmOmkuaHJlZixvcmlnaW46aS5vcmlnaW4scHJvdG9jb2w6aS5wcm90b2NvbCx1c2VybmFtZTppLnVzZXJuYW1lLHBhc3N3b3JkOmkucGFzc3dvcmQsaG9zdDppLmhvc3QsaG9zdG5hbWU6aS5ob3N0bmFtZSxwb3J0OmkucG9ydCxwYXRoOm8scGF0aG5hbWU6aS5wYXRobmFtZSxzZWFyY2g6aS5zZWFyY2gsc2VhcmNoUGFyYW1zOmEsaGFzaDppLmhhc2h9OyFzLnBvcnQmJnMucHJvdG9jb2w9PT0iaHR0cHM6IiYmKHMucG9ydD0iNDQzIiksIXMucG9ydCYmcy5wcm90b2NvbD09PSJodHRwOiImJihzLnBvcnQ9IjgwIik7bGV0IGw9bmV3IGU7cmV0dXJuIE9iamVjdC5hc3NpZ24obCxzKSxsfXN0YXRpYyBjcmVhdGVGcm9tUGFyc2VkVXJsKHQpe2xldCByPW5ldyBlO3JldHVybiBPYmplY3QuYXNzaWduKHIsdCkscn1jb25zdHJ1Y3Rvcigpe3RoaXMuc2VhcmNoUGFyYW1zPXt9fWNsb25lKCl7bGV0IHQ9bmV3IGU7cmV0dXJuIE9iamVjdC5hc3NpZ24odCx0aGlzKSx0LnNlYXJjaFBhcmFtcz17Li4udGhpcy5zZWFyY2hQYXJhbXN9LHR9c2V0KHQscil7cmV0dXJuIHRoaXNbdF09cix0aGlzfXRvU3RyaW5nKCl7bGV0IHQ9IiI7cmV0dXJuIHRoaXMudXNlcm5hbWUmJiF0aGlzLnBhc3N3b3JkJiYodD1gJHt0aGlzLnVzZXJuYW1lfUBgKSx0aGlzLnVzZXJuYW1lJiZ0aGlzLnBhc3N3b3JkJiYodD1gJHt0aGlzLnVzZXJuYW1lfToke3RoaXMucGFzc3dvcmR9QGApLGAke3RoaXMucHJvdG9jb2x9Ly8ke3R9JHt0aGlzLmhvc3RuYW1lfToke3RoaXMucG9ydH0ke3RoaXMucGF0aH1gfX19KTt2YXIgdzQ9e307RmUodzQse1NtYXJ0dXJsOigpPT5QMWV9KTt2YXIgTjFlPXAoKCk9PntIS2UoKX0pO3ZhciBxS2U9cCgoKT0+e1RzKCk7TjgoKTtWOCgpO0VpKCk7YzkoKX0pO3ZhciBPMWU9e307RmUoTzFlLHtXZWJSZXF1ZXN0OigpPT5GMWV9KTt2YXIgRjFlLGpLZT1wKCgpPT57cUtlKCk7RjFlPWNsYXNze2NvbnN0cnVjdG9yKHQ9e30pe3RoaXMub3B0aW9uc0FyZz10LHRoaXMuY2FjaGVTdG9yZT1uZXcgWWEuV2ViU3RvcmUoe2RiTmFtZToid2VicmVxdWVzdCIsc3RvcmVOYW1lOiJ3ZWJyZXF1ZXN0In0pLHRoaXMub3B0aW9ucz17bG9nZ2luZzohMCwuLi50fX1hc3luYyBnZXRKc29uKHQscj0hMSl7bGV0IGE9YXdhaXQoYXdhaXQgdGhpcy5yZXF1ZXN0KHQse21ldGhvZDoiR0VUIix1c2VDYWNoZTpyfSkpLnRleHQoKTtyZXR1cm4geTEucGFyc2UoYSl9YXN5bmMgcG9zdEpzb24odCxyLGk9ITEpe2xldCBuPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdCh0LHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTp5MS5zdHJpbmdpZnkociksdXNlQ2FjaGU6aX0pKS50ZXh0KCk7cmV0dXJuIHkxLnBhcnNlKG4pfWFzeW5jIHB1dEpzb24odCxyLGk9ITEpe2xldCBuPWF3YWl0KGF3YWl0IHRoaXMucmVxdWVzdCh0LHttZXRob2Q6IlBVVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OnkxLnN0cmluZ2lmeShyKX0pKS50ZXh0KCk7cmV0dXJuIHkxLnBhcnNlKG4pfWFzeW5jIGRlbGV0ZUpzb24odCxyPSExKXtsZXQgYT1hd2FpdChhd2FpdCB0aGlzLnJlcXVlc3QodCx7aGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxtZXRob2Q6IkdFVCJ9KSkudGV4dCgpO3JldHVybiB5MS5wYXJzZShhKX1hc3luYyByZXF1ZXN0KHQscil7cj17dGltZW91dE1zOjZlNCx1c2VDYWNoZTohMSwuLi5yfTtsZXQgaT1uZXcgQWJvcnRDb250cm9sbGVyO0N0LmRlbGF5Rm9yKHIudGltZW91dE1zKS50aGVuKCgpPT57aS5hYm9ydCgpfSk7bGV0IGE9WGUuZGVmZXIoKSxuPSExO2lmKHIudXNlQ2FjaGUmJmF3YWl0IHRoaXMuY2FjaGVTdG9yZS5jaGVjayh0KSl7bGV0IHM9YXdhaXQgdGhpcy5jYWNoZVN0b3JlLmdldCh0KTthLnJlc29sdmUobmV3IFJlc3BvbnNlKHMse30pKX1lbHNlIGEucmVzb2x2ZShudWxsKTtsZXQgbz1hd2FpdCBmZXRjaCh0LHtzaWduYWw6aS5zaWduYWwsbWV0aG9kOnIubWV0aG9kLGhlYWRlcnM6ey4uLnIuaGVhZGVyc3x8e319LGJvZHk6ci5ib2R5fSkuY2F0Y2goYXN5bmMgcz0+ci51c2VDYWNoZSYmYXdhaXQgYS5wcm9taXNlPyhuPSEwLGEucHJvbWlzZSk6cyk7aWYoci51c2VDYWNoZSYmYXdhaXQgYS5wcm9taXNlJiZvLnN0YXR1cz09PTUwMCYmKG49ITAsbz1hd2FpdCBhLnByb21pc2UpLCFuJiZyLnVzZUNhY2hlJiZvLnN0YXR1czwzMDApe2xldCBzPWF3YWl0IG8uY2xvbmUoKS5hcnJheUJ1ZmZlcigpO2F3YWl0IHRoaXMuY2FjaGVTdG9yZS5zZXQodCxzKX1yZXR1cm4gdGhpcy5sb2coYCR7dH0gYW5zd2VycyB3aXRoIHN0YXR1czogJHtvLnN0YXR1c31gKSxvfWFzeW5jIHJlcXVlc3RNdWx0aUVuZHBvaW50KHQscil7bGV0IGksYT0wO0FycmF5LmlzQXJyYXkodCk/aT10Omk9W3RdO2xldCBuPVtdLG89YXN5bmMgYz0+e24ucHVzaChjKSxjPT09IjQyOSImJihjb25zb2xlLmxvZygiZ290IDQyOSwgc28gd2FpdGluZyBhIGxpdHRsZSBiaXQuIiksYXdhaXQgQ3QuZGVsYXlGb3IoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMDEpKzFlMykpO2xldCB1PTA7Zm9yKGxldCBkIG9mIG4pZD09PWMmJnUrKzt1PjIqaS5sZW5ndGgqYSYmYSsrfSxzPWFzeW5jIGM9PntpZighYyl0aHJvdyBuZXcgRXJyb3IoInJlcXVlc3QgZmFpbGVkIHBlcm1hbmVudGx5Iik7dGhpcy5sb2coYEdldHRpbmcgJHtjfSB3aXRoIG1ldGhvZCAke3IubWV0aG9kfWApO2xldCB1PWF3YWl0IGZldGNoKGMse21ldGhvZDpyLm1ldGhvZCxoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsLi4uci5oZWFkZXJzfHx7fX0sYm9keTpyLmJvZHl9KTtyZXR1cm4gdGhpcy5sb2coYCR7Y30gYW5zd2VycyB3aXRoIHN0YXR1czogJHt1LnN0YXR1c31gKSx1LnN0YXR1cz49MjAwJiZ1LnN0YXR1czwzMDA/dTooYXdhaXQgbyh1LnN0YXR1cy50b1N0cmluZygpKSxhd2FpdCBzKGlbYV0pKX07cmV0dXJuIGF3YWl0IHMoaVthXSl9bG9nKHQpe3RoaXMub3B0aW9ucy5sb2dnaW5nJiZjb25zb2xlLmxvZyh0KX19fSk7dmFyIE9MLHdkLFJMPXAoKCk9PntPTD1jbGFzc3tjbGFpbSgpe2lmKHRoaXMuY2xhaW1lZCl0aHJvdyBuZXcgRXJyb3IoIkRlZmVycmVkIGFscmVhZHkgY2xhaW1lZCIpO3RoaXMuY2xhaW1lZD0hMH1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkQXQ/dGhpcy5zdG9wcGVkQXQtdGhpcy5zdGFydGVkQXQ6RGF0ZS5ub3coKS10aGlzLnN0YXJ0ZWRBdH1jb25zdHJ1Y3Rvcigpe3RoaXMuY2xhaW1lZD0hMSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKHQscik9Pnt0aGlzLnJlc29sdmU9aT0+e3RoaXMuc3RhdHVzPSJmdWxmaWxsZWQiLHRoaXMuc3RvcHBlZEF0PURhdGUubm93KCksdChpKX0sdGhpcy5yZWplY3Q9aT0+e3RoaXMuc3RhdHVzPSJyZWplY3RlZCIsdGhpcy5zdG9wcGVkQXQ9RGF0ZS5ub3coKSxyKGkpfSx0aGlzLnN0YXJ0ZWRBdD1EYXRlLm5vdygpLHRoaXMuc3RhdHVzPSJwZW5kaW5nIn0pfX0sd2Q9KCk9Pm5ldyBPTH0pO3ZhciBCTCxlVXIsVktlPXAoKCk9PntSTCgpO0JMPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzPVtdLHRoaXMuZGVmZXJyZWQ9d2QoKSx0aGlzLnByb21pc2U9dGhpcy5kZWZlcnJlZC5wcm9taXNlLHNldFRpbWVvdXQoYXN5bmMoKT0+e2Zvcig7dGhpcy5hY2N1bXVsYXRlZFByb21pc2VzLmxlbmd0aD4wOylhd2FpdCB0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMuc2hpZnQoKTt0aGlzLmRlZmVycmVkLnJlc29sdmUoKX0sMCl9YWRkUHJvbWlzZSh0KXt0aGlzLmFjY3VtdWxhdGVkUHJvbWlzZXMucHVzaCh0KX19LGVVcj0oKT0+bmV3IEJMfSk7dmFyIE1kPXt9O0ZlKE1kLHtDdW11bGF0aXZlRGVmZXJyZWQ6KCk9PkJMLERlZmVycmVkOigpPT5PTCxjdW11bGF0aXZlRGVmZXI6KCk9PmVVcixkZWZlcjooKT0+d2QsZ2V0Rmlyc3RUcnVlT3JGYWxzZTooKT0+blVyLG1hcDooKT0+aVVyLHJlamVjdGVkUHJvbWlzZTooKT0+clVyLHJlc29sdmVkUHJvbWlzZTooKT0+dFVyLHRpbWVvdXRBbmRDb250aW51ZTooKT0+YVVyLHRpbWVvdXRXcmFwOigpPT5VS2V9KTt2YXIgdFVyLHJVcixpVXIsVUtlLGFVcixuVXIsUjFlPXAoKCk9PntSTCgpO1ZLZSgpO1JMKCk7dFVyPWU9PlByb21pc2UucmVzb2x2ZShlKSxyVXI9ZT0+UHJvbWlzZS5yZWplY3QoZSksaVVyPWFzeW5jKGUsdCk9PntsZXQgcj1bXSxpPVtdO2ZvcihsZXQgYSBvZiBlKXtsZXQgbj10KGEpO3IucHVzaChuKSxuLnRoZW4obz0+e2kucHVzaChvKX0pfXJldHVybiBhd2FpdCBQcm9taXNlLmFsbChyKSxpfSxVS2U9YXN5bmMoZSx0LHI9ITApPT5uZXcgUHJvbWlzZSgoaSxhKT0+e3NldFRpbWVvdXQoKCk9PntyP2EobmV3IEVycm9yKCJ0aW1lb3V0IikpOmkobnVsbCl9LHQpLGUudGhlbihpLGEpfSksYVVyPWFzeW5jKGUsdD02ZTQpPT5VS2UoZSx0LCExKSxuVXI9YXN5bmMgZT0+e2xldCB0PXdkKCk7Zm9yKGxldCByIG9mIGUpci50aGVuKGk9PntpPT09ITAmJnQucmVzb2x2ZSghMCl9KTtyZXR1cm4gUHJvbWlzZS5hbGwoZSkudGhlbigoKT0+e3QucmVzb2x2ZSghMSl9KSx0LnByb21pc2V9fSk7dmFyIEIxZT17fTtGZShCMWUse1RpbWVvdXQ6KCk9PkhMLGRlbGF5Rm9yOigpPT5XS2UsZGVsYXlGb3JSYW5kb206KCk9Pm9Vcn0pO3ZhciBXS2Usb1VyLEhMLEdLZT1wKCgpPT57UjFlKCk7V0tlPWFzeW5jKGUsdCxyPSExKT0+KGF3YWl0IG5ldyBITChlLG51bGwscikucHJvbWlzZSx0KSxvVXI9YXN5bmMoZSx0LHIsaT0hMSk9Pihhd2FpdCBXS2UoTWF0aC5yYW5kb20oKSoodC1lKStlLG51bGwsaSksciksSEw9Y2xhc3N7Y29uc3RydWN0b3IodCxyLGk9ITEpe3RoaXMuX2NhbmNlbGxlZD0hMSx0aGlzLnRpbWVvdXRJbk1pbGxpcz10LHRoaXMuX2RlZmVycmVkPXdkKCksdGhpcy5wcm9taXNlPXRoaXMuX2RlZmVycmVkLnByb21pc2UsdGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5fY2FuY2VsbGVkfHx0aGlzLl9kZWZlcnJlZC5yZXNvbHZlKHIpfSx0KSx0aGlzLnN0YXJ0ZWQ9RGF0ZS5ub3coKSxpJiZ0aGlzLm1ha2VVbnJlZmVkKCl9bWFrZVVucmVmZWQoKXt0aGlzLl90aW1lb3V0LnVucmVmKCl9Y2FuY2VsKCl7dGhpcy5fY2FuY2VsbGVkPSEwLGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KX1nZXRUaW1lTGVmdCgpe2xldCB0PXRoaXMuc3RhcnRlZCt0aGlzLnRpbWVvdXRJbk1pbGxpcy1EYXRlLm5vdygpO3JldHVybiB0PjA/dDowfX19KTt2YXIgWUtlPXAoKCk9Pnt9KTt2YXIgcUw9cCgoKT0+e0pzKCl9KTt2YXIgakw9cCgoKT0+e0pzKCk7SnMoKX0pO3ZhciBaS2U9cCgoKT0+e0pzKCl9KTt2YXIgWEtlPXAoKCk9Pnt9KTt2YXIgUUtlPXAoKCk9PntKcygpfSk7dmFyIEpLZT1wKCgpPT57SnMoKX0pO3ZhciBLS2U9cCgoKT0+e30pO3ZhciBlZXQ9cCgoKT0+e30pO3ZhciBIMWU9e307dmFyIFZMPXAoKCk9PntaS2UoKTtYS2UoKTtRS2UoKTtKS2UoKTtLS2UoKTtlZXQoKX0pO3ZhciBxMWUsdGV0PXAoKCk9PntWTCgpO3FMKCk7akwoKTtxMWU9Y2xhc3N7fX0pO3ZhciByZXQ9cCgoKT0+e30pO3ZhciBpZXQ9cCgoKT0+e30pO3ZhciBhZXQ9cCgoKT0+e30pO3ZhciBuZXQ9cCgoKT0+e30pO3ZhciBqMWU9e307dmFyIFYxZT1wKCgpPT57cmV0KCk7aWV0KCk7YWV0KCk7bmV0KCl9KTt2YXIgb2V0PXAoKCk9PntVMWUoKTtWTCgpO1YxZSgpfSk7dmFyIHNldD1wKCgpPT57fSk7dmFyIGNldD1wKCgpPT57akwoKX0pO3ZhciBkZXQ9cCgoKT0+e30pO3ZhciBVTD17fTtGZShVTCx7SUpvYjooKT0+cTFlfSk7dmFyIFUxZT1wKCgpPT57WUtlKCk7cUwoKTtqTCgpO3RldCgpO29ldCgpO3NldCgpO2NldCgpO2RldCgpfSk7dmFyIHVldD1wKCgpPT57fSk7dmFyIHBldD1wKCgpPT57fSk7dmFyIFcxZT17fTt2YXIgaGV0PXAoKCk9Pnt1ZXQoKTtwZXQoKX0pO3ZhciBmZXQ9cCgoKT0+e30pO3ZhciBtZXQ9cCgoKT0+e30pO3ZhciBHMWU9e307dmFyIGdldD1wKCgpPT57ZmV0KCk7bWV0KCl9KTt2YXIgWTFlPXAoKCk9PntKcygpfSk7dmFyIGJldD1wKCgpPT57SnMoKX0pO3ZhciB2ZXQ9cCgoKT0+e1kxZSgpfSk7dmFyIFoxZT17fTt2YXIgeGV0PXAoKCk9PntZMWUoKTtiZXQoKTt2ZXQoKX0pO3ZhciB5ZXQ9cCgoKT0+e30pO3ZhciB3ZXQ9cCgoKT0+e30pO3ZhciBYMWU9e307dmFyIE1ldD1wKCgpPT57eWV0KCk7d2V0KCl9KTt2YXIgUTFlPXAoKCk9Pnt9KTt2YXIgSjFlLGtldD1wKCgpPT57UTFlKCk7SjFlPWNsYXNze319KTt2YXIgemV0PXAoKCk9Pnt9KTt2YXIgQ2V0PXAoKCk9Pnt9KTt2YXIgVGV0PXAoKCk9Pnt9KTt2YXIgX2V0PXAoKCk9Pnt9KTt2YXIgTGV0PXAoKCk9Pnt9KTt2YXIgQWV0PXAoKCk9Pnt9KTt2YXIgRGV0PXAoKCk9Pnt9KTt2YXIgRWV0PXAoKCk9Pnt9KTt2YXIgJGV0PXAoKCk9Pnt9KTt2YXIgV0w9e307RmUoV0wse0lDbmFtZURlc2NyaXB0b3I6KCk9PkoxZX0pO3ZhciBJZXQ9cCgoKT0+e1ExZSgpO2tldCgpO3pldCgpO0NldCgpO1RldCgpO19ldCgpO0xldCgpO0FldCgpO0RldCgpO0VldCgpOyRldCgpfSk7dmFyIEsxZT1wKCgpPT57cUwoKX0pO3ZhciBQZXQ9cCgoKT0+e0sxZSgpfSk7dmFyIGVpZT17fTt2YXIgTmV0PXAoKCk9PntQZXQoKTtLMWUoKX0pO3ZhciB0aWU9e307dmFyIEZldD1wKCgpPT57fSk7dmFyIE9ldD1wKCgpPT57fSk7dmFyIFJldD1wKCgpPT57fSk7dmFyIEJldD1wKCgpPT57fSk7dmFyIHJpZT17fTt2YXIgSGV0PXAoKCk9PntPZXQoKTtSZXQoKTtCZXQoKX0pO3ZhciBxZXQ9cCgoKT0+e30pO3ZhciBpaWU9e307RmUoaWllLHtidXNpbmVzczooKT0+VUwsY29kZTooKT0+VzFlLGNvbnRhaW5lcjooKT0+RzFlLGNvbnRlbnQ6KCk9PloxZSxkYXRhYmFzZTooKT0+ajFlLGZpbmFuY2U6KCk9PkgxZSxnZW5lcmFsOigpPT5YMWUsbmV0d29yazooKT0+V0wsc2FhczooKT0+ZWllLHN0b3JhZ2U6KCk9PnRpZSx3ZWJzaXRlOigpPT5yaWV9KTt2YXIgSnM9cCgoKT0+e1UxZSgpO2hldCgpO2dldCgpO1YxZSgpO1ZMKCk7eGV0KCk7TWV0KCk7SWV0KCk7TmV0KCk7RmV0KCk7SGV0KCk7cWV0KCl9KTt2YXIgbGM9cCgoKT0+e0dLZSgpO1IxZSgpO0pzKCl9KTt2YXIgR0w9cCgoKT0+e2xjKCl9KTt2YXIgTTQsbmc9cCgoKT0+e2xjKCk7TTQ9Y2xhc3N7YXBwZW5kVG9Eb20oKXshdGhpcy5lbGVtZW50UmVmLnBhcmVudEVsZW1lbnQmJiF0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZSYmZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfXJlbW92ZUZyb21Eb20oKXt0aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudD90aGlzLmVsZW1lbnRSZWYucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpOnRoaXMuZWxlbWVudFJlZi5wYXJlbnROb2RlJiZ0aGlzLmVsZW1lbnRSZWYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYpfX19KTt2YXIga2QsWUw9cCgoKT0+e2xjKCk7R0woKTtuZygpO2tkPWNsYXNzIGUgZXh0ZW5kcyBNNHtzdGF0aWMgY3JlYXRlQ29tcGFueUpzb25MZCh0KXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJDb3Jwb3JhdGlvbiIsbmFtZTp0Lm5hbWUsYWx0ZXJuYXRlTmFtZTp0Lm5hbWUucmVwbGFjZSgiIEdtYkgiLCIiKSx1cmw6dC5jb250YWN0LndlYnNpdGUsbG9nbzp0LmNvbnRhY3QubG9nb1VybCxjb250YWN0UG9pbnQ6eyJAdHlwZSI6IkNvbnRhY3RQb2ludCIsdGVsZXBob25lOnQuY29udGFjdC5waG9uZSxjb250YWN0VHlwZToiY3VzdG9tZXIgc2VydmljZSIsYXJlYVNlcnZlZDoiREUiLGF2YWlsYWJsZUxhbmd1YWdlOlsiZW4iLCJHZXJtYW4iXX0sc2FtZUFzOltdfTtyZXR1cm4gdC5jb250YWN0LmZhY2Vib29rVXJsJiZyLnNhbWVBcy5wdXNoKHQuY29udGFjdC5mYWNlYm9va1VybCksdC5jb250YWN0LnR3aXR0ZXJVcmwmJnIuc2FtZUFzLnB1c2godC5jb250YWN0LnR3aXR0ZXJVcmwpLG5ldyBlKHIpfXN0YXRpYyBjcmVhdGVOZXdzQXJ0aWNsZUpzb25MZCh0KXtsZXQgcj17IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJOZXdzQXJ0aWNsZSIsbWFpbkVudGl0eU9mUGFnZTp7IkB0eXBlIjoiV2ViUGFnZSIsIkBpZCI6d2luZG93LmxvY2F0aW9uLmhyZWZ9LGhlYWRsaW5lOiJBcnRpY2xlIGhlYWRsaW5lIixpbWFnZTpbdC5mZWF0dXJlZEltYWdlVXJsXSxkYXRlUHVibGlzaGVkOm5ldyBEYXRlKHQudGltZXN0YW1wKS50b0lTT1N0cmluZygpLGRhdGVNb2RpZmllZDpuZXcgRGF0ZSh0LnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxhdXRob3I6eyJAdHlwZSI6IlBlcnNvbiIsbmFtZTpgJHt0LmF1dGhvci5maXJzdE5hbWV9ICR7dC5hdXRob3Iuc3VyTmFtZX1gfSxwdWJsaXNoZXI6eyJAdHlwZSI6Ik9yZ2FuaXphdGlvbiIsbmFtZTp0LmF1dGhvci5zdXJOYW1lLGxvZ286eyJAdHlwZSI6IkltYWdlT2JqZWN0Iix1cmw6dC5hdXRob3Iuc3VyTmFtZX19LGRlc2NyaXB0aW9uOnQuYXV0aG9yLmZpcnN0TmFtZX07cmV0dXJuIG5ldyBlKHIpfXN0YXRpYyBjcmVhdGVQcm9kdWN0SnNvbkxkKHQscil7bGV0IGk9eyJAY29udGV4dCI6Imh0dHBzOi8vc2NoZW1hLm9yZyIsIkB0eXBlIjoiU29mdHdhcmVBcHBsaWNhdGlvbiIsbmFtZTp0Lm5hbWUsZGVzY3JpcHRpb246dC5kZXNjcmlwdGlvbixvcGVyYXRpbmdTeXN0ZW06dC5vcyxhcHBsaWNhdGlvbkNhdGVnb3J5OnQuY2F0ZWdvcnksb2ZmZXJzOnsiQHR5cGUiOiJPZmZlciIsbmFtZToiVXNlci1iYXNlZCBQbGFuIixwcmljZVNwZWNpZmljYXRpb246eyJAdHlwZSI6IlByb3BlcnR5VmFsdWVTcGVjaWZpY2F0aW9uIix2YWx1ZU5hbWU6Ik51bWJlciBvZiBVc2VycyIsdmFsdWVSZXF1aXJlZDohMCxwcmljZToiNC45OSIscHJpY2VDdXJyZW5jeToiRVVSIn19LHB1Ymxpc2hlcjp0aGlzLmNyZWF0ZUNvbXBhbnlKc29uTGQocikuZWxlbWVudFJlZi50ZXh0Q29udGVudCxzY3JlZW5zaG90OiJodHRwczovL3d3dy5zb2NpYWwuaW8vc2NyZWVuc2hvdC5wbmciLHVybDoiaHR0cHM6Ly93d3cuc29jaWFsLmlvLyJ9O3JldHVybiBuZXcgZShpKX1jb25zdHJ1Y3Rvcih0KXtzdXBlcigpO2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3IudHlwZT0iYXBwbGljYXRpb24vbGQranNvbiIsci50ZXh0PUpTT04uc3RyaW5naWZ5KHQpLHRoaXMuZWxlbWVudFJlZj1yfX19KTt2YXIgWGEsWkw9cCgoKT0+e2xjKCk7bmcoKTtYYT1jbGFzcyBlIGV4dGVuZHMgTTR7c3RhdGljIGNyZWF0ZU5ld3NBcnRpY2xlT2dUYWdzKHQpe2xldCByPVtdO3JldHVybiByLnB1c2gobmV3IGUoIm9nOnVybCIsdC51cmwpKSxyLnB1c2gobmV3IGUoIm9nOnRpdGxlIix0LnRpdGxlKSksci5wdXNoKG5ldyBlKCJvZzpkZXNjcmlwdGlvbiIsdC5jb250ZW50KSksci5wdXNoKG5ldyBlKCJvZzppbWFnZSIsdC5mZWF0dXJlZEltYWdlVXJsKSkscn1zdGF0aWMgY3JlYXRlUHJvZHVjdE9nVGFncyh0KXtsZXQgcj1bXTtyZXR1cm4gci5wdXNoKG5ldyBlKCJvZzp1cmwiLGdsb2JhbFRoaXMubG9jYXRpb24uaHJlZikpLHIucHVzaChuZXcgZSgib2c6dGl0bGUiLGAke3QubmFtZX0gLSAke3Quc2xvZ2FufWApKSxyLnB1c2gobmV3IGUoIm9nOnNpdGVfbmFtZSIsdC5uYW1lKSksci5wdXNoKG5ldyBlKCJvZzpkZXNjcmlwdGlvbiIsdC5kZXNjcmlwdGlvbikpLHIucHVzaChuZXcgZSgib2c6aW1hZ2UiLHQubG9nb0xpbmspKSxyfWNvbnN0cnVjdG9yKHQscil7c3VwZXIoKTtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtZXRhIik7aS5zZXRBdHRyaWJ1dGUoInByb3BlcnR5Iix0KSxpLmNvbnRlbnQ9cix0aGlzLmVsZW1lbnRSZWY9aX19fSk7dmFyIGtwLGFpZT1wKCgpPT57bmcoKTtZTCgpO1pMKCk7bmllKCk7bGMoKTtrcD1jbGFzc3tzZXQgdGl0bGUodCl7dGhpcy50aXRsZVN0b3JlPXQsdGhpcy5zdGF0ZT09PSJlbmFibGVkIiYmKGRvY3VtZW50LnRpdGxlPXRoaXMudGl0bGVTdG9yZSl9Z2V0IHRpdGxlKCl7cmV0dXJuIHRoaXMudGl0bGVTdG9yZX1jb25zdHJ1Y3Rvcih0LHIpe3RoaXMudGFncz1bXSx0aGlzLnN0YXRlPSJkaXNhYmxlZCIsdGhpcy50YWdNYW5hZ2VyUmVmPXR9YWRkVGFnKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheSlmb3IobGV0IHIgb2YgdCl0aGlzLmFkZFRhZyhyKTtlbHNlIHRoaXMudGFncy5wdXNoKHQpLHRoaXMuc3RhdGU9PT0iZW5hYmxlZCImJnQuYXBwZW5kVG9Eb20oKX1hc3luYyBhZGRDb21wYW55SW5mbyh0KXt0aGlzLmFkZFRhZyhrZC5jcmVhdGVDb21wYW55SnNvbkxkKHQpKSx0aGlzLmFkZFRhZyhuZXcgWGEoIm9nOnR5cGUiLCJidXNpbmVzcy5idXNpbmVzcyIpKSx0aGlzLmFkZFRhZyhuZXcgWGEoIm9nOnRpdGxlIix0Lm5hbWUpKSx0aGlzLmFkZFRhZyhuZXcgWGEoIm9nOnVybCIsdC5jb250YWN0LndlYnNpdGUpKSx0aGlzLmFkZFRhZyhuZXcgWGEoIm9nOmltYWdlIix0LmNvbnRhY3QubG9nb1VybCkpLHRoaXMuYWRkVGFnKG5ldyBYYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnN0cmVldF9hZGRyZXNzIixgJHt0LmNvbnRhY3QuYWRkcmVzcy5zdHJlZXROYW1lfSAke3QuY29udGFjdC5hZGRyZXNzLmhvdXNlTnVtYmVyfWApKSx0aGlzLmFkZFRhZyhuZXcgWGEoImJ1c2luZXNzOmNvbnRhY3RfZGF0YTpsb2NhbGl0eSIsdC5jb250YWN0LmFkZHJlc3MucG9zdGFsQ29kZSkpLHRoaXMuYWRkVGFnKG5ldyBYYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnJlZ2lvbiIsdC5jb250YWN0LmFkZHJlc3MuY2l0eSkpLHRoaXMuYWRkVGFnKG5ldyBYYSgiYnVzaW5lc3M6Y29udGFjdF9kYXRhOnBvc3RhbF9jb2RlIix0LmNvbnRhY3QuYWRkcmVzcy5wb3N0YWxDb2RlKSksdGhpcy5hZGRUYWcobmV3IFhhKCJidXNpbmVzczpjb250YWN0X2RhdGE6Y291bnRyeV9uYW1lIix0LmNvbnRhY3QuYWRkcmVzcy5jb3VudHJ5KSl9YWRkTmV3c0FydGljbGVJbmZvKHQpe3RoaXMuYWRkVGFnKGtkLmNyZWF0ZU5ld3NBcnRpY2xlSnNvbkxkKHQpKSx0aGlzLmFkZFRhZyhYYS5jcmVhdGVOZXdzQXJ0aWNsZU9nVGFncyh0KSl9YWRkUHJvZHVjdEluZm8odCxyKXt0aGlzLmFkZFRhZyhrZC5jcmVhdGVQcm9kdWN0SnNvbkxkKHQscikpLHRoaXMuYWRkVGFnKFhhLmNyZWF0ZVByb2R1Y3RPZ1RhZ3ModCkpfWFzeW5jIGVuYWJsZSgpe3RoaXMudGl0bGUmJihkb2N1bWVudC50aXRsZT10aGlzLnRpdGxlKTtmb3IobGV0IHQgb2YgdGhpcy50YWdzKXQuYXBwZW5kVG9Eb20oKTt0aGlzLnN0YXRlPSJlbmFibGVkIn1hc3luYyBkaXNhYmxlKCl7Zm9yKGxldCB0IG9mIHRoaXMudGFncyl0LnJlbW92ZUZyb21Eb20oKTt0aGlzLnN0YXRlPSJkaXNhYmxlZCJ9fX0pO3ZhciBMbyxvaWU9cCgoKT0+e25nKCk7TG89Y2xhc3MgZXh0ZW5kcyBNNHtjb25zdHJ1Y3Rvcih0LHIpe3N1cGVyKCk7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpO2kubmFtZT10LGkuY29udGVudD1yLHRoaXMuZWxlbWVudFJlZj1pfX19KTt2YXIgWEwsbmllPXAoKCk9PnthaWUoKTtsYygpO0dMKCk7b2llKCk7WUwoKTtaTCgpO1hMPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5nbG9iYWxMZXZlbD1uZXcga3AodGhpcywiZ2xvYmFsIiksdGhpcy5iYXNlTGV2ZWw9bmV3IGtwKHRoaXMsImJhc2UiKX1hc3luYyBzZXR1cCh0KXtzd2l0Y2godGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IExvKCJnb29nbGUiLCJub3RyYW5zbGF0ZSIpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgTG8oInJldmlzaXQtYWZ0ZXIiLCIxIGRheXMiKSksdC50d2l0dGVySGFuZGxlJiYodGhpcy5nbG9iYWxMZXZlbC5hZGRUYWcobmV3IExvKCJ0d2l0dGVyOmNhcmQiLCJzdW1tYXJ5X2xhcmdlX2ltYWdlIikpLHRoaXMuZ2xvYmFsTGV2ZWwuYWRkVGFnKG5ldyBMbygidHdpdHRlcjpzaXRlIix0LnR3aXR0ZXJIYW5kbGUpKSx0aGlzLmdsb2JhbExldmVsLmFkZFRhZyhuZXcgTG8oInR3aXR0ZXI6Y3JlYXRvciIsdC50d2l0dGVySGFuZGxlKSkpLHRoaXMuYmFzZUxldmVsLnRpdGxlPXQudGl0bGUsdC5kZXNjcmlwdGlvbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBMbygiZGVzY3JpcHRpb24iLHQuZGVzY3JpcHRpb24pKSx0LmNhbm9uaWNhbERvbWFpbiYmdGhpcy5iYXNlTGV2ZWwuYWRkVGFnKG5ldyBMbygiY2Fub25pY2FsIix0LmNhbm9uaWNhbERvbWFpbikpLCEwKXtjYXNlKHQubGRDb21wYW55JiYhdC5sZFByb2R1Y3QpOnRoaXMuYmFzZUxldmVsLmFkZENvbXBhbnlJbmZvKHQubGRDb21wYW55KTticmVhaztjYXNlISF0LmxkUHJvZHVjdDp0aGlzLmJhc2VMZXZlbC5hZGRQcm9kdWN0SW5mbyh0LmxkUHJvZHVjdCx0LmxkQ29tcGFueSk7YnJlYWt9YXdhaXQgdGhpcy5nbG9iYWxMZXZlbC5lbmFibGUoKSx0aGlzLmFjdGl2ZUxldmVsPXRoaXMuYmFzZUxldmVsLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCl9YXN5bmMgc2V0U3ViUGFnZUxldmVsKHQpe2xldCByPW5ldyBrcCh0aGlzLCJzdWJwYWdlIik7cmV0dXJuIHIudGl0bGU9dC50aXRsZSx0LmRlc2NyaXB0aW9uJiZyLmFkZFRhZyhuZXcgTG8oImRlc2NyaXB0aW9uIix0LmRlc2NyaXB0aW9uKSksYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5kaXNhYmxlKCksdGhpcy5hY3RpdmVMZXZlbD1yLGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZW5hYmxlKCkscn1hc3luYyByZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMuYWN0aXZlTGV2ZWwhPT10aGlzLmJhc2VMZXZlbCYmKGF3YWl0IHRoaXMuYWN0aXZlTGV2ZWwuZGlzYWJsZSgpLHRoaXMuYWN0aXZlTGV2ZWw9dGhpcy5iYXNlTGV2ZWwsYXdhaXQgdGhpcy5hY3RpdmVMZXZlbC5lbmFibGUoKSl9fX0pO3ZhciBvZyxqZXQ9cCgoKT0+e2xjKCk7R0woKTtuaWUoKTthaWUoKTtvZz1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLnRhZ01hbmFnZXI9bmV3IFhMLHRoaXMucmVhZHlEZWZlcnJlZD1NZC5kZWZlcigpLHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkPU1kLmRlZmVyKCksdGhpcy5yZWFkeVByb21pc2U9dGhpcy5yZWFkeURlZmVycmVkLnByb21pc2UsdGhpcy5yZWFkeUZvclNtYXJ0c3NyUHJvbWlzZT10aGlzLnJlYWR5Rm9yU21hcnRzc3JEZWZlcnJlZC5wcm9taXNlLHRoaXMub3B0aW9ucz10LHRoaXMuc2V0dXAoKS50aGVuKCgpPT57dGhpcy5yZWFkeURlZmVycmVkLnJlc29sdmUoKSx0aGlzLm9wdGlvbnMuc21hcnRzc3JXYWl0Rm9yUmVhZHlTaWduYWx8fHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnJlc29sdmUoKX0pfWFzeW5jIHNldHVwKHQpe3QmJih0aGlzLm9wdGlvbnM9dCksYXdhaXQgdGhpcy50YWdNYW5hZ2VyLnNldHVwKHRoaXMub3B0aW9ucy5tZXRhT2JqZWN0KX1yZXZlcnRUb0Jhc2VMZXZlbCgpe3RoaXMudGFnTWFuYWdlci5yZXZlcnRUb0Jhc2VMZXZlbCgpfWFzeW5jIHNldFN1YkxldmVsKHQpe3JldHVybiBhd2FpdCB0aGlzLnRhZ01hbmFnZXIuc2V0U3ViUGFnZUxldmVsKHQpfWZsYXNoVGl0bGUodCl7fWluZm9ybVJlYWR5Rm9yU21hcnRzc3IoKXt0aGlzLm9wdGlvbnMuc21hcnRzc3JXYWl0Rm9yUmVhZHlTaWduYWx8fGNvbnNvbGUuZXJyb3IoIllvdSBoYXZlIG5vdCBpbmRpY2F0ZWQgdGhhdCB5b3UgaW5mb3JtIHNtYXJ0c3NyIGJ5IGEgZGVkaWNhdGVkIHNpZ25hbCEgUGxlYXNlIGNvbnNpZGVyIGRvaW5nIHNvISIpLHRoaXMucmVhZHlGb3JTbWFydHNzckRlZmVycmVkLnJlc29sdmUoKX19fSk7dmFyIHNpZSxWZXQ9cCgoKT0+e2xjKCk7c2llPWNsYXNze319KTt2YXIgbGllPXt9O0ZlKGxpZSx7SnNvbkxkVGFnOigpPT5rZCxNZXRhVGFnOigpPT5MbyxPcGVuZ3JhcGhUYWc6KCk9PlhhLFRpdGxlOigpPT5zaWUsV2ViU2V0dXA6KCk9Pm9nfSk7dmFyIFFMPXAoKCk9PntqZXQoKTtvaWUoKTtaTCgpO1lMKCk7VmV0KCl9KTt2YXIgVWV0LEpMPXAoKCk9PntUcygpO2dRKCk7RWkoKTtoMigpO1JKKCk7VWV0PWVyKEhKKCksMSl9KTt2YXIgU3AsY2llPXAoKCk9PntKTCgpO1NwPWNsYXNzIGV7Y29uc3RydWN0b3IoKXt0aGlzLm1hcE9iamVjdD17fX1pc1VuaXF1ZUtleSh0KXtyZXR1cm4hdGhpcy5tYXBPYmplY3RbdF19YWRkVG9NYXAodCxyLGkpe3JldHVybiB0aGlzLmlzVW5pcXVlS2V5KHQpfHxpJiZpLmZvcmNlPyh0aGlzLm1hcE9iamVjdFt0XT1yLCEwKTohMX1nZXRCeUtleSh0KXtyZXR1cm4gdGhpcy5tYXBPYmplY3RbdF19cmVtb3ZlRnJvbU1hcCh0KXtsZXQgcj10aGlzLmdldEJ5S2V5KHQpO3JldHVybiBkZWxldGUgdGhpcy5tYXBPYmplY3RbdF0scn1nZXRLZXlzKCl7bGV0IHQ9W107Zm9yKGxldCByIGluIHRoaXMubWFwT2JqZWN0KXRoaXMubWFwT2JqZWN0W3JdJiZ0LnB1c2gocik7cmV0dXJuIHR9Y2xlYW4oKXt0aGlzLm1hcE9iamVjdD17fX1jb25jYXQodCl7bGV0IHI9bmV3IGU7Zm9yKGxldCBpIG9mIHRoaXMuZ2V0S2V5cygpKXIuYWRkVG9NYXAoaSx0aGlzLmdldEJ5S2V5KGkpKTtmb3IobGV0IGkgb2YgdC5nZXRLZXlzKCkpci5hZGRUb01hcChpLHQuZ2V0QnlLZXkoaSkse2ZvcmNlOiEwfSk7cmV0dXJuIHJ9YWRkQWxsRnJvbU90aGVyKHQpe2ZvcihsZXQgciBvZiB0LmdldEtleXMoKSl0aGlzLmFkZFRvTWFwKHIsdC5nZXRCeUtleShyKSx7Zm9yY2U6ITB9KX1hc3luYyBmaW5kKHQpe2ZvcihsZXQgciBvZiB0aGlzLmdldEtleXMoKSl7bGV0IGk9dGhpcy5nZXRCeUtleShyKTtpZihhd2FpdCB0KGkpKXJldHVybiBpfX19fSk7dmFyIGxVcixLTCxHZXQ9cCgoKT0+e0pMKCk7Y2llKCk7bFVyPShlPSJ1bmkiKT0+YCR7ZX14eHh4eHh4eHh4eGAucmVwbGFjZSgvW3h5XS9nLHQ9PntsZXQgcj1NYXRoLnJhbmRvbSgpKjE2fDA7cmV0dXJuKHQ9PT0ieCI/cjpyJjN8OCkudG9TdHJpbmcoMTYpfSksS0w9Y2xhc3MgZXtjb25zdHJ1Y3Rvcigpe3RoaXMuZmFzdE1hcD1uZXcgU3AsdGhpcy5ldmVudFN1YmplY3Q9bmV3IG5yLnJ4anMuU3ViamVjdH1hZGRNYXBwZWRVbmlxdWUodCxyKXt0aGlzLmZhc3RNYXAuYWRkVG9NYXAodCxyKX1nZXRNYXBwZWRVbmlxdWUodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRCeUtleSh0KX1yZW1vdmVNYXBwZWRVbmlxdWUodCl7bGV0IHI9dGhpcy5nZXRNYXBwZWRVbmlxdWUodCl9YWRkKHQpe2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHRoaXMuZmFzdE1hcC5nZXRCeUtleShpKT09PXQpcmV0dXJuIGk7bGV0IHI9bFVyKCJrZXkiKTtyZXR1cm4gdGhpcy5hZGRNYXBwZWRVbmlxdWUocix0KSx0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246ImFkZCIscGF5bG9hZDp0fSkscn1hZGRBcnJheSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZChyKX1jaGVja0Zvck9iamVjdCh0KXtyZXR1cm4hIXRoaXMuZ2V0S2V5Rm9yT2JqZWN0KHQpfWdldEtleUZvck9iamVjdCh0KXtsZXQgcj1udWxsO2ZvcihsZXQgaSBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKCFyJiZ0aGlzLmZhc3RNYXAuZ2V0QnlLZXkoaSk9PT10KXI9aTtlbHNlIGNvbnRpbnVlO3JldHVybiByfWFzeW5jIGZpbmQodCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5maW5kKHQpfWZpbmRTeW5jKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWlmKHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKSlyZXR1cm4gdGhpcy5nZXRNYXBwZWRVbmlxdWUocil9YXN5bmMgZmluZE9uZUFuZFJlbW92ZSh0KXtsZXQgcj1hd2FpdCB0aGlzLmZpbmQodCk7cmV0dXJuIHImJnRoaXMucmVtb3ZlKHIpLHJ9ZmluZE9uZUFuZFJlbW92ZVN5bmModCl7bGV0IHI9dGhpcy5maW5kU3luYyh0KTtyZXR1cm4gciYmdGhpcy5yZW1vdmUocikscn1hc3luYyBmb3JFYWNoKHQpe2ZvcihsZXQgciBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKWF3YWl0IHQodGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKX1nZXRPbmVBbmRSZW1vdmUoKXtsZXQgdD10aGlzLmZhc3RNYXAuZ2V0S2V5cygpO2lmKHQubGVuZ3RoPT09MClyZXR1cm4gbnVsbDt7bGV0IHI9dFswXSxpPXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHIpO3JldHVybiB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KHtvcGVyYXRpb246InJlbW92ZSIscGF5bG9hZDppfSksaX19Z2V0QXJyYXkoKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgdGhpcy5mYXN0TWFwLmdldEtleXMoKSl0LnB1c2godGhpcy5mYXN0TWFwLmdldEJ5S2V5KHIpKTtyZXR1cm4gdH1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuZmFzdE1hcC5nZXRLZXlzKCkubGVuZ3RoPT09MH1yZW1vdmUodCl7aWYodGhpcy5jaGVja0Zvck9iamVjdCh0KSl7bGV0IHI9dGhpcy5nZXRLZXlGb3JPYmplY3QodCksaT10aGlzLmZhc3RNYXAucmVtb3ZlRnJvbU1hcChyKTtyZXR1cm4gdGhpcy5ldmVudFN1YmplY3QubmV4dCh7b3BlcmF0aW9uOiJyZW1vdmUiLHBheWxvYWQ6aX0pLGl9cmV0dXJuIG51bGx9d2lwZSgpe2ZvcihsZXQgdCBvZiB0aGlzLmZhc3RNYXAuZ2V0S2V5cygpKXRoaXMuZmFzdE1hcC5yZW1vdmVGcm9tTWFwKHQpfWNvbmNhdCh0KXtsZXQgcj1uZXcgZTtyZXR1cm4gci5mYXN0TWFwLmFkZEFsbEZyb21PdGhlcih0aGlzLmZhc3RNYXApLHIuZmFzdE1hcC5hZGRBbGxGcm9tT3RoZXIodC5mYXN0TWFwKSxyfWFkZEFsbEZyb21PdGhlcih0KXt0aGlzLmZhc3RNYXAuYWRkQWxsRnJvbU90aGVyKHQuZmFzdE1hcCl9fX0pO3ZhciBlQSxZZXQ9cCgoKT0+e0pMKCk7ZUE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT1bXX1hZGRTdHJpbmcodCl7dGhpcy5fc3RyaW5nQXJyYXkucHVzaCh0KSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1hZGRTdHJpbmdBcnJheSh0KXtmb3IobGV0IHIgb2YgdCl0aGlzLmFkZFN0cmluZyhyKX1yZW1vdmVTdHJpbmcodCl7Zm9yKGxldCByIGluIHRoaXMuX3N0cmluZ0FycmF5KXRoaXMuX3N0cmluZ0FycmF5W3JdPT09dCYmdGhpcy5fc3RyaW5nQXJyYXkuc3BsaWNlKHBhcnNlSW50KHIpLDEpO3RoaXMubm90aWZ5VHJpZ2dlcigpfXdpcGUoKXt0aGlzLl9zdHJpbmdBcnJheT1bXSx0aGlzLm5vdGlmeVRyaWdnZXIoKX1jaGVja1N0cmluZyh0KXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkuaW5kZXhPZih0KSE9PS0xfWNoZWNrTWluaW1hdGNoKHQpe2xldCByPW5ldyBxbC5TbWFydE1hdGNoKHQpLGk9ITE7Zm9yKGxldCBhIG9mIHRoaXMuX3N0cmluZ0FycmF5KXIubWF0Y2goYSkmJihpPSEwKTtyZXR1cm4gaX1jaGVja0lzRW1wdHkoKXtyZXR1cm4gdGhpcy5fc3RyaW5nQXJyYXkubGVuZ3RoPT09MH1nZXRTdHJpbmdBcnJheSgpe2xldCB0PVtdO2ZvcihsZXQgciBvZiB0aGlzLl9zdHJpbmdBcnJheSl0LnB1c2gocik7cmV0dXJuIHR9cmVnaXN0ZXJVbnRpbFRydWUodCxyKXtsZXQgaT1YZS5kZWZlcigpO3JldHVybiB0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheS5wdXNoKCgpPT57bGV0IGE9dCh0aGlzLmdldFN0cmluZ0FycmF5KCkpO3JldHVybiBhPT09ITAmJihyJiZyKCksaS5yZXNvbHZlKCkpLGF9KSx0aGlzLm5vdGlmeVRyaWdnZXIoKSxpLnByb21pc2V9bm90aWZ5VHJpZ2dlcigpe2xldCB0PXRoaXMuX3RyaWdnZXJVbnRpbFRydWVGdW5jdGlvbkFycmF5LmZpbHRlcihyPT4hcigpKTt0aGlzLl90cmlnZ2VyVW50aWxUcnVlRnVuY3Rpb25BcnJheT10fX19KTtmdW5jdGlvbiBaZXQoZSx0LHIpe3JldHVybiBNYXRoLm1heChlLE1hdGgubWluKHQscikpfWZ1bmN0aW9uIGRVcihlLHQscil7cmV0dXJuKDEtcikqZStyKnR9ZnVuY3Rpb24gdVVyKGUsdCxyLGkpe3JldHVybiBkVXIoZSx0LDEtTWF0aC5leHAoLXIqaSkpfWZ1bmN0aW9uIHBVcihlLHQpe3JldHVybihlJXQrdCkldH1mdW5jdGlvbiBmVXIoZSx0KXtsZXQgcjtyZXR1cm4gZnVuY3Rpb24oLi4uaSl7bGV0IGE9dGhpcztjbGVhclRpbWVvdXQocikscj1zZXRUaW1lb3V0KCgpPT57cj12b2lkIDAsZS5hcHBseShhLGkpfSx0KX19dmFyIGNVcixoVXIsbVVyLFhldCxRZXQsazQsZ1VyLEpldCxzZyxLZXQ9cCgoKT0+e2NVcj0iMS4zLjE3IjtoVXI9Y2xhc3N7aXNSdW5uaW5nPSExO3ZhbHVlPTA7ZnJvbT0wO3RvPTA7Y3VycmVudFRpbWU9MDtsZXJwO2R1cmF0aW9uO2Vhc2luZztvblVwZGF0ZTthZHZhbmNlKGUpe2lmKCF0aGlzLmlzUnVubmluZylyZXR1cm47bGV0IHQ9ITE7aWYodGhpcy5kdXJhdGlvbiYmdGhpcy5lYXNpbmcpe3RoaXMuY3VycmVudFRpbWUrPWU7bGV0IHI9WmV0KDAsdGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uLDEpO3Q9cj49MTtsZXQgaT10PzE6dGhpcy5lYXNpbmcocik7dGhpcy52YWx1ZT10aGlzLmZyb20rKHRoaXMudG8tdGhpcy5mcm9tKSppfWVsc2UgdGhpcy5sZXJwPyh0aGlzLnZhbHVlPXVVcih0aGlzLnZhbHVlLHRoaXMudG8sdGhpcy5sZXJwKjYwLGUpLE1hdGgucm91bmQodGhpcy52YWx1ZSk9PT10aGlzLnRvJiYodGhpcy52YWx1ZT10aGlzLnRvLHQ9ITApKToodGhpcy52YWx1ZT10aGlzLnRvLHQ9ITApO3QmJnRoaXMuc3RvcCgpLHRoaXMub25VcGRhdGU/Lih0aGlzLnZhbHVlLHQpfXN0b3AoKXt0aGlzLmlzUnVubmluZz0hMX1mcm9tVG8oZSx0LHtsZXJwOnIsZHVyYXRpb246aSxlYXNpbmc6YSxvblN0YXJ0Om4sb25VcGRhdGU6b30pe3RoaXMuZnJvbT10aGlzLnZhbHVlPWUsdGhpcy50bz10LHRoaXMubGVycD1yLHRoaXMuZHVyYXRpb249aSx0aGlzLmVhc2luZz1hLHRoaXMuY3VycmVudFRpbWU9MCx0aGlzLmlzUnVubmluZz0hMCxuPy4oKSx0aGlzLm9uVXBkYXRlPW99fTttVXI9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHthdXRvUmVzaXplOnI9ITAsZGVib3VuY2U6aT0yNTB9PXt9KXt0aGlzLndyYXBwZXI9ZSx0aGlzLmNvbnRlbnQ9dCxyJiYodGhpcy5kZWJvdW5jZWRSZXNpemU9ZlVyKHRoaXMucmVzaXplLGkpLHRoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz93aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmRlYm91bmNlZFJlc2l6ZSwhMSk6KHRoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmRlYm91bmNlZFJlc2l6ZSksdGhpcy53cmFwcGVyUmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLndyYXBwZXIpKSx0aGlzLmNvbnRlbnRSZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5kZWJvdW5jZWRSZXNpemUpLHRoaXMuY29udGVudFJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5jb250ZW50KSksdGhpcy5yZXNpemUoKX13aWR0aD0wO2hlaWdodD0wO3Njcm9sbEhlaWdodD0wO3Njcm9sbFdpZHRoPTA7ZGVib3VuY2VkUmVzaXplO3dyYXBwZXJSZXNpemVPYnNlcnZlcjtjb250ZW50UmVzaXplT2JzZXJ2ZXI7ZGVzdHJveSgpe3RoaXMud3JhcHBlclJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5jb250ZW50UmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLndyYXBwZXI9PT13aW5kb3cmJnRoaXMuZGVib3VuY2VkUmVzaXplJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLmRlYm91bmNlZFJlc2l6ZSwhMSl9cmVzaXplPSgpPT57dGhpcy5vbldyYXBwZXJSZXNpemUoKSx0aGlzLm9uQ29udGVudFJlc2l6ZSgpfTtvbldyYXBwZXJSZXNpemU9KCk9Pnt0aGlzLndyYXBwZXIgaW5zdGFuY2VvZiBXaW5kb3c/KHRoaXMud2lkdGg9d2luZG93LmlubmVyV2lkdGgsdGhpcy5oZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KToodGhpcy53aWR0aD10aGlzLndyYXBwZXIuY2xpZW50V2lkdGgsdGhpcy5oZWlnaHQ9dGhpcy53cmFwcGVyLmNsaWVudEhlaWdodCl9O29uQ29udGVudFJlc2l6ZT0oKT0+e3RoaXMud3JhcHBlciBpbnN0YW5jZW9mIFdpbmRvdz8odGhpcy5zY3JvbGxIZWlnaHQ9dGhpcy5jb250ZW50LnNjcm9sbEhlaWdodCx0aGlzLnNjcm9sbFdpZHRoPXRoaXMuY29udGVudC5zY3JvbGxXaWR0aCk6KHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMud3JhcHBlci5zY3JvbGxIZWlnaHQsdGhpcy5zY3JvbGxXaWR0aD10aGlzLndyYXBwZXIuc2Nyb2xsV2lkdGgpfTtnZXQgbGltaXQoKXtyZXR1cm57eDp0aGlzLnNjcm9sbFdpZHRoLXRoaXMud2lkdGgseTp0aGlzLnNjcm9sbEhlaWdodC10aGlzLmhlaWdodH19fSxYZXQ9Y2xhc3N7ZXZlbnRzPXt9O2VtaXQoZSwuLi50KXtsZXQgcj10aGlzLmV2ZW50c1tlXXx8W107Zm9yKGxldCBpPTAsYT1yLmxlbmd0aDtpPGE7aSsrKXJbaV0/LiguLi50KX1vbihlLHQpe3JldHVybiB0aGlzLmV2ZW50c1tlXT8ucHVzaCh0KXx8KHRoaXMuZXZlbnRzW2VdPVt0XSksKCk9Pnt0aGlzLmV2ZW50c1tlXT10aGlzLmV2ZW50c1tlXT8uZmlsdGVyKHI9PnQhPT1yKX19b2ZmKGUsdCl7dGhpcy5ldmVudHNbZV09dGhpcy5ldmVudHNbZV0/LmZpbHRlcihyPT50IT09cil9ZGVzdHJveSgpe3RoaXMuZXZlbnRzPXt9fX0sUWV0PTEwMC82LGs0PXtwYXNzaXZlOiExfSxnVXI9Y2xhc3N7Y29uc3RydWN0b3IoZSx0PXt3aGVlbE11bHRpcGxpZXI6MSx0b3VjaE11bHRpcGxpZXI6MX0pe3RoaXMuZWxlbWVudD1lLHRoaXMub3B0aW9ucz10LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMub25XaW5kb3dSZXNpemUsITEpLHRoaXMub25XaW5kb3dSZXNpemUoKSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxrNCksdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LGs0KSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLGs0KSx0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxrNCl9dG91Y2hTdGFydD17eDowLHk6MH07bGFzdERlbHRhPXt4OjAseTowfTt3aW5kb3c9e3dpZHRoOjAsaGVpZ2h0OjB9O2VtaXR0ZXI9bmV3IFhldDtvbihlLHQpe3JldHVybiB0aGlzLmVtaXR0ZXIub24oZSx0KX1kZXN0cm95KCl7dGhpcy5lbWl0dGVyLmRlc3Ryb3koKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLm9uV2luZG93UmVzaXplLCExKSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMub25XaGVlbCxrNCksdGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMub25Ub3VjaFN0YXJ0LGs0KSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLm9uVG91Y2hNb3ZlLGs0KSx0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMub25Ub3VjaEVuZCxrNCl9b25Ub3VjaFN0YXJ0PWU9PntsZXR7Y2xpZW50WDp0LGNsaWVudFk6cn09ZS50YXJnZXRUb3VjaGVzP2UudGFyZ2V0VG91Y2hlc1swXTplO3RoaXMudG91Y2hTdGFydC54PXQsdGhpcy50b3VjaFN0YXJ0Lnk9cix0aGlzLmxhc3REZWx0YT17eDowLHk6MH0sdGhpcy5lbWl0dGVyLmVtaXQoInNjcm9sbCIse2RlbHRhWDowLGRlbHRhWTowLGV2ZW50OmV9KX07b25Ub3VjaE1vdmU9ZT0+e2xldHtjbGllbnRYOnQsY2xpZW50WTpyfT1lLnRhcmdldFRvdWNoZXM/ZS50YXJnZXRUb3VjaGVzWzBdOmUsaT0tKHQtdGhpcy50b3VjaFN0YXJ0LngpKnRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXIsYT0tKHItdGhpcy50b3VjaFN0YXJ0LnkpKnRoaXMub3B0aW9ucy50b3VjaE11bHRpcGxpZXI7dGhpcy50b3VjaFN0YXJ0Lng9dCx0aGlzLnRvdWNoU3RhcnQueT1yLHRoaXMubGFzdERlbHRhPXt4OmkseTphfSx0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOmksZGVsdGFZOmEsZXZlbnQ6ZX0pfTtvblRvdWNoRW5kPWU9Pnt0aGlzLmVtaXR0ZXIuZW1pdCgic2Nyb2xsIix7ZGVsdGFYOnRoaXMubGFzdERlbHRhLngsZGVsdGFZOnRoaXMubGFzdERlbHRhLnksZXZlbnQ6ZX0pfTtvbldoZWVsPWU9PntsZXR7ZGVsdGFYOnQsZGVsdGFZOnIsZGVsdGFNb2RlOml9PWUsYT1pPT09MT9RZXQ6aT09PTI/dGhpcy53aW5kb3cud2lkdGg6MSxuPWk9PT0xP1FldDppPT09Mj90aGlzLndpbmRvdy5oZWlnaHQ6MTt0Kj1hLHIqPW4sdCo9dGhpcy5vcHRpb25zLndoZWVsTXVsdGlwbGllcixyKj10aGlzLm9wdGlvbnMud2hlZWxNdWx0aXBsaWVyLHRoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHtkZWx0YVg6dCxkZWx0YVk6cixldmVudDplfSl9O29uV2luZG93UmVzaXplPSgpPT57dGhpcy53aW5kb3c9e3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGhlaWdodDp3aW5kb3cuaW5uZXJIZWlnaHR9fX0sSmV0PWU9Pk1hdGgubWluKDEsMS4wMDEtTWF0aC5wb3coMiwtMTAqZSkpLHNnPWNsYXNze19pc1Njcm9sbGluZz0hMTtfaXNTdG9wcGVkPSExO19pc0xvY2tlZD0hMTtfcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMTtfcmVzZXRWZWxvY2l0eVRpbWVvdXQ9bnVsbDtfcmFmSWQ9bnVsbDtpc1RvdWNoaW5nO3RpbWU9MDt1c2VyRGF0YT17fTtsYXN0VmVsb2NpdHk9MDt2ZWxvY2l0eT0wO2RpcmVjdGlvbj0wO29wdGlvbnM7dGFyZ2V0U2Nyb2xsO2FuaW1hdGVkU2Nyb2xsO2FuaW1hdGU9bmV3IGhVcjtlbWl0dGVyPW5ldyBYZXQ7ZGltZW5zaW9uczt2aXJ0dWFsU2Nyb2xsO2NvbnN0cnVjdG9yKHt3cmFwcGVyOmU9d2luZG93LGNvbnRlbnQ6dD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZXZlbnRzVGFyZ2V0OnI9ZSxzbW9vdGhXaGVlbDppPSEwLHN5bmNUb3VjaDphPSExLHN5bmNUb3VjaExlcnA6bj0uMDc1LHRvdWNoSW5lcnRpYUV4cG9uZW50Om89MS43LGR1cmF0aW9uOnMsZWFzaW5nOmwsbGVycDpjPS4xLGluZmluaXRlOnU9ITEsb3JpZW50YXRpb246ZD0idmVydGljYWwiLGdlc3R1cmVPcmllbnRhdGlvbjpoPWQ9PT0iaG9yaXpvbnRhbCI/ImJvdGgiOiJ2ZXJ0aWNhbCIsdG91Y2hNdWx0aXBsaWVyOmY9MSx3aGVlbE11bHRpcGxpZXI6eD0xLGF1dG9SZXNpemU6dj0hMCxwcmV2ZW50OmIsdmlydHVhbFNjcm9sbDp5LG92ZXJzY3JvbGw6dz0hMCxhdXRvUmFmOms9ITEsYW5jaG9yczpPPSExLGF1dG9Ub2dnbGU6ej0hMSxhbGxvd05lc3RlZFNjcm9sbDpNPSExLF9fZXhwZXJpbWVudGFsX19uYWl2ZURpbWVuc2lvbnM6Rj0hMSxuYWl2ZURpbWVuc2lvbnM6RD1GLHN0b3BJbmVydGlhT25OYXZpZ2F0ZTpOPSExfT17fSl7d2luZG93LmxlbmlzVmVyc2lvbj1jVXIsKCFlfHxlPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmKGU9d2luZG93KSx0eXBlb2Ygcz09Im51bWJlciImJnR5cGVvZiBsIT0iZnVuY3Rpb24iP2w9SmV0OnR5cGVvZiBsPT0iZnVuY3Rpb24iJiZ0eXBlb2YgcyE9Im51bWJlciImJihzPTEpLHRoaXMub3B0aW9ucz17d3JhcHBlcjplLGNvbnRlbnQ6dCxldmVudHNUYXJnZXQ6cixzbW9vdGhXaGVlbDppLHN5bmNUb3VjaDphLHN5bmNUb3VjaExlcnA6bix0b3VjaEluZXJ0aWFFeHBvbmVudDpvLGR1cmF0aW9uOnMsZWFzaW5nOmwsbGVycDpjLGluZmluaXRlOnUsZ2VzdHVyZU9yaWVudGF0aW9uOmgsb3JpZW50YXRpb246ZCx0b3VjaE11bHRpcGxpZXI6Zix3aGVlbE11bHRpcGxpZXI6eCxhdXRvUmVzaXplOnYscHJldmVudDpiLHZpcnR1YWxTY3JvbGw6eSxvdmVyc2Nyb2xsOncsYXV0b1JhZjprLGFuY2hvcnM6TyxhdXRvVG9nZ2xlOnosYWxsb3dOZXN0ZWRTY3JvbGw6TSxuYWl2ZURpbWVuc2lvbnM6RCxzdG9wSW5lcnRpYU9uTmF2aWdhdGU6Tn0sdGhpcy5kaW1lbnNpb25zPW5ldyBtVXIoZSx0LHthdXRvUmVzaXplOnZ9KSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpLHRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5vcHRpb25zLndyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSx0aGlzLnZpcnR1YWxTY3JvbGw9bmV3IGdVcihyLHt0b3VjaE11bHRpcGxpZXI6Zix3aGVlbE11bHRpcGxpZXI6eH0pLHRoaXMudmlydHVhbFNjcm9sbC5vbigic2Nyb2xsIix0aGlzLm9uVmlydHVhbFNjcm9sbCksdGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUmJih0aGlzLmNoZWNrT3ZlcmZsb3coKSx0aGlzLnJvb3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMub25UcmFuc2l0aW9uRW5kLHtwYXNzaXZlOiEwfSkpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9ZGVzdHJveSgpe3RoaXMuZW1pdHRlci5kZXN0cm95KCksdGhpcy5vcHRpb25zLndyYXBwZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLm9uTmF0aXZlU2Nyb2xsLCExKSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLHRoaXMub25TY3JvbGxFbmQse2NhcHR1cmU6ITB9KSx0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsdGhpcy5vblBvaW50ZXJEb3duLCExKSwodGhpcy5vcHRpb25zLmFuY2hvcnN8fHRoaXMub3B0aW9ucy5zdG9wSW5lcnRpYU9uTmF2aWdhdGUpJiZ0aGlzLm9wdGlvbnMud3JhcHBlci5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5vbkNsaWNrLCExKSx0aGlzLnZpcnR1YWxTY3JvbGwuZGVzdHJveSgpLHRoaXMuZGltZW5zaW9ucy5kZXN0cm95KCksdGhpcy5jbGVhblVwQ2xhc3NOYW1lKCksdGhpcy5fcmFmSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JhZklkKX1vbihlLHQpe3JldHVybiB0aGlzLmVtaXR0ZXIub24oZSx0KX1vZmYoZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9mZihlLHQpfW9uU2Nyb2xsRW5kPWU9PntlIGluc3RhbmNlb2YgQ3VzdG9tRXZlbnR8fCh0aGlzLmlzU2Nyb2xsaW5nPT09InNtb290aCJ8fHRoaXMuaXNTY3JvbGxpbmc9PT0hMSkmJmUuc3RvcFByb3BhZ2F0aW9uKCl9O2Rpc3BhdGNoU2Nyb2xsZW5kRXZlbnQ9KCk9Pnt0aGlzLm9wdGlvbnMud3JhcHBlci5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2Nyb2xsZW5kIix7YnViYmxlczp0aGlzLm9wdGlvbnMud3JhcHBlcj09PXdpbmRvdyxkZXRhaWw6e2xlbmlzU2Nyb2xsRW5kOiEwfX0pKX07Z2V0IG92ZXJmbG93KCl7bGV0IGU9dGhpcy5pc0hvcml6b250YWw/Im92ZXJmbG93LXgiOiJvdmVyZmxvdy15IjtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJvb3RFbGVtZW50KVtlXX1jaGVja092ZXJmbG93KCl7WyJoaWRkZW4iLCJjbGlwIl0uaW5jbHVkZXModGhpcy5vdmVyZmxvdyk/dGhpcy5pbnRlcm5hbFN0b3AoKTp0aGlzLmludGVybmFsU3RhcnQoKX1vblRyYW5zaXRpb25FbmQ9ZT0+e2UucHJvcGVydHlOYW1lLmluY2x1ZGVzKCJvdmVyZmxvdyIpJiZ0aGlzLmNoZWNrT3ZlcmZsb3coKX07c2V0U2Nyb2xsKGUpe3RoaXMuaXNIb3Jpem9udGFsP3RoaXMub3B0aW9ucy53cmFwcGVyLnNjcm9sbFRvKHtsZWZ0OmUsYmVoYXZpb3I6Imluc3RhbnQifSk6dGhpcy5vcHRpb25zLndyYXBwZXIuc2Nyb2xsVG8oe3RvcDplLGJlaGF2aW9yOiJpbnN0YW50In0pfW9uQ2xpY2s9ZT0+e2xldCByPWUuY29tcG9zZWRQYXRoKCkuZmlsdGVyKGk9PmkgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCYmaS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7aWYodGhpcy5vcHRpb25zLmFuY2hvcnMpe2xldCBpPXIuZmluZChhPT5hLmdldEF0dHJpYnV0ZSgiaHJlZiIpPy5pbmNsdWRlcygiIyIpKTtpZihpKXtsZXQgYT1pLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKGEpe2xldCBuPXR5cGVvZiB0aGlzLm9wdGlvbnMuYW5jaG9ycz09Im9iamVjdCImJnRoaXMub3B0aW9ucy5hbmNob3JzP3RoaXMub3B0aW9ucy5hbmNob3JzOnZvaWQgMCxvPWAjJHthLnNwbGl0KCIjIilbMV19YDt0aGlzLnNjcm9sbFRvKG8sbil9fX10aGlzLm9wdGlvbnMuc3RvcEluZXJ0aWFPbk5hdmlnYXRlJiZyLmZpbmQoYT0+YS5ob3N0PT09d2luZG93LmxvY2F0aW9uLmhvc3QpJiZ0aGlzLnJlc2V0KCl9O29uUG9pbnRlckRvd249ZT0+e2UuYnV0dG9uPT09MSYmdGhpcy5yZXNldCgpfTtvblZpcnR1YWxTY3JvbGw9ZT0+e2lmKHR5cGVvZiB0aGlzLm9wdGlvbnMudmlydHVhbFNjcm9sbD09ImZ1bmN0aW9uIiYmdGhpcy5vcHRpb25zLnZpcnR1YWxTY3JvbGwoZSk9PT0hMSlyZXR1cm47bGV0e2RlbHRhWDp0LGRlbHRhWTpyLGV2ZW50Oml9PWU7aWYodGhpcy5lbWl0dGVyLmVtaXQoInZpcnR1YWwtc2Nyb2xsIix7ZGVsdGFYOnQsZGVsdGFZOnIsZXZlbnQ6aX0pLGkuY3RybEtleXx8aS5sZW5pc1N0b3BQcm9wYWdhdGlvbilyZXR1cm47bGV0IGE9aS50eXBlLmluY2x1ZGVzKCJ0b3VjaCIpLG49aS50eXBlLmluY2x1ZGVzKCJ3aGVlbCIpO3RoaXMuaXNUb3VjaGluZz1pLnR5cGU9PT0idG91Y2hzdGFydCJ8fGkudHlwZT09PSJ0b3VjaG1vdmUiO2xldCBvPXQ9PT0wJiZyPT09MDtpZih0aGlzLm9wdGlvbnMuc3luY1RvdWNoJiZhJiZpLnR5cGU9PT0idG91Y2hzdGFydCImJm8mJiF0aGlzLmlzU3RvcHBlZCYmIXRoaXMuaXNMb2NrZWQpe3RoaXMucmVzZXQoKTtyZXR1cm59bGV0IGw9dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbj09PSJ2ZXJ0aWNhbCImJnI9PT0wfHx0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09Imhvcml6b250YWwiJiZ0PT09MDtpZihvfHxsKXJldHVybjtsZXQgYz1pLmNvbXBvc2VkUGF0aCgpO2M9Yy5zbGljZSgwLGMuaW5kZXhPZih0aGlzLnJvb3RFbGVtZW50KSk7bGV0IHU9dGhpcy5vcHRpb25zLnByZXZlbnQ7aWYoYy5maW5kKGI9PmIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmKHR5cGVvZiB1PT0iZnVuY3Rpb24iJiZ1Py4oYil8fGIuaGFzQXR0cmlidXRlPy4oImRhdGEtbGVuaXMtcHJldmVudCIpfHxhJiZiLmhhc0F0dHJpYnV0ZT8uKCJkYXRhLWxlbmlzLXByZXZlbnQtdG91Y2giKXx8biYmYi5oYXNBdHRyaWJ1dGU/LigiZGF0YS1sZW5pcy1wcmV2ZW50LXdoZWVsIil8fHRoaXMub3B0aW9ucy5hbGxvd05lc3RlZFNjcm9sbCYmdGhpcy5jaGVja05lc3RlZFNjcm9sbChiLHtkZWx0YVg6dCxkZWx0YVk6cn0pKSkpcmV0dXJuO2lmKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmlzTG9ja2VkKXtpLmNhbmNlbGFibGUmJmkucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoISh0aGlzLm9wdGlvbnMuc3luY1RvdWNoJiZhfHx0aGlzLm9wdGlvbnMuc21vb3RoV2hlZWwmJm4pKXt0aGlzLmlzU2Nyb2xsaW5nPSJuYXRpdmUiLHRoaXMuYW5pbWF0ZS5zdG9wKCksaS5sZW5pc1N0b3BQcm9wYWdhdGlvbj0hMDtyZXR1cm59bGV0IGg9cjt0aGlzLm9wdGlvbnMuZ2VzdHVyZU9yaWVudGF0aW9uPT09ImJvdGgiP2g9TWF0aC5hYnMocik+TWF0aC5hYnModCk/cjp0OnRoaXMub3B0aW9ucy5nZXN0dXJlT3JpZW50YXRpb249PT0iaG9yaXpvbnRhbCImJihoPXQpLCghdGhpcy5vcHRpb25zLm92ZXJzY3JvbGx8fHRoaXMub3B0aW9ucy5pbmZpbml0ZXx8dGhpcy5vcHRpb25zLndyYXBwZXIhPT13aW5kb3cmJnRoaXMubGltaXQ+MCYmKHRoaXMuYW5pbWF0ZWRTY3JvbGw+MCYmdGhpcy5hbmltYXRlZFNjcm9sbDx0aGlzLmxpbWl0fHx0aGlzLmFuaW1hdGVkU2Nyb2xsPT09MCYmcj4wfHx0aGlzLmFuaW1hdGVkU2Nyb2xsPT09dGhpcy5saW1pdCYmcjwwKSkmJihpLmxlbmlzU3RvcFByb3BhZ2F0aW9uPSEwKSxpLmNhbmNlbGFibGUmJmkucHJldmVudERlZmF1bHQoKTtsZXQgZj1hJiZ0aGlzLm9wdGlvbnMuc3luY1RvdWNoLHY9YSYmaS50eXBlPT09InRvdWNoZW5kIjt2JiYoaD1NYXRoLnNpZ24odGhpcy52ZWxvY2l0eSkqTWF0aC5wb3coTWF0aC5hYnModGhpcy52ZWxvY2l0eSksdGhpcy5vcHRpb25zLnRvdWNoSW5lcnRpYUV4cG9uZW50KSksdGhpcy5zY3JvbGxUbyh0aGlzLnRhcmdldFNjcm9sbCtoLHtwcm9ncmFtbWF0aWM6ITEsLi4uZj97bGVycDp2P3RoaXMub3B0aW9ucy5zeW5jVG91Y2hMZXJwOjF9OntsZXJwOnRoaXMub3B0aW9ucy5sZXJwLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5kdXJhdGlvbixlYXNpbmc6dGhpcy5vcHRpb25zLmVhc2luZ319KX07cmVzaXplKCl7dGhpcy5kaW1lbnNpb25zLnJlc2l6ZSgpLHRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5lbWl0KCl9ZW1pdCgpe3RoaXMuZW1pdHRlci5lbWl0KCJzY3JvbGwiLHRoaXMpfW9uTmF0aXZlU2Nyb2xsPSgpPT57aWYodGhpcy5fcmVzZXRWZWxvY2l0eVRpbWVvdXQhPT1udWxsJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0KSx0aGlzLl9yZXNldFZlbG9jaXR5VGltZW91dD1udWxsKSx0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KXt0aGlzLl9wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50PSExO3JldHVybn1pZih0aGlzLmlzU2Nyb2xsaW5nPT09ITF8fHRoaXMuaXNTY3JvbGxpbmc9PT0ibmF0aXZlIil7bGV0IGU9dGhpcy5hbmltYXRlZFNjcm9sbDt0aGlzLmFuaW1hdGVkU2Nyb2xsPXRoaXMudGFyZ2V0U2Nyb2xsPXRoaXMuYWN0dWFsU2Nyb2xsLHRoaXMubGFzdFZlbG9jaXR5PXRoaXMudmVsb2NpdHksdGhpcy52ZWxvY2l0eT10aGlzLmFuaW1hdGVkU2Nyb2xsLWUsdGhpcy5kaXJlY3Rpb249TWF0aC5zaWduKHRoaXMuYW5pbWF0ZWRTY3JvbGwtZSksdGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU2Nyb2xsaW5nPSJuYXRpdmUiKSx0aGlzLmVtaXQoKSx0aGlzLnZlbG9jaXR5IT09MCYmKHRoaXMuX3Jlc2V0VmVsb2NpdHlUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9MCx0aGlzLmlzU2Nyb2xsaW5nPSExLHRoaXMuZW1pdCgpfSw0MDApKX19O3Jlc2V0KCl7dGhpcy5pc0xvY2tlZD0hMSx0aGlzLmlzU2Nyb2xsaW5nPSExLHRoaXMuYW5pbWF0ZWRTY3JvbGw9dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hY3R1YWxTY3JvbGwsdGhpcy5sYXN0VmVsb2NpdHk9dGhpcy52ZWxvY2l0eT0wLHRoaXMuYW5pbWF0ZS5zdG9wKCl9c3RhcnQoKXtpZih0aGlzLmlzU3RvcHBlZCl7aWYodGhpcy5vcHRpb25zLmF1dG9Ub2dnbGUpe3RoaXMucm9vdEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoIm92ZXJmbG93Iik7cmV0dXJufXRoaXMuaW50ZXJuYWxTdGFydCgpfX1pbnRlcm5hbFN0YXJ0KCl7dGhpcy5pc1N0b3BwZWQmJih0aGlzLnJlc2V0KCksdGhpcy5pc1N0b3BwZWQ9ITEsdGhpcy5lbWl0KCkpfXN0b3AoKXtpZighdGhpcy5pc1N0b3BwZWQpe2lmKHRoaXMub3B0aW9ucy5hdXRvVG9nZ2xlKXt0aGlzLnJvb3RFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJvdmVyZmxvdyIsImNsaXAiKTtyZXR1cm59dGhpcy5pbnRlcm5hbFN0b3AoKX19aW50ZXJuYWxTdG9wKCl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLnJlc2V0KCksdGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5lbWl0KCkpfXJhZj1lPT57bGV0IHQ9ZS0odGhpcy50aW1lfHxlKTt0aGlzLnRpbWU9ZSx0aGlzLmFuaW1hdGUuYWR2YW5jZSh0Ki4wMDEpLHRoaXMub3B0aW9ucy5hdXRvUmFmJiYodGhpcy5fcmFmSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmKSl9O3Njcm9sbFRvKGUse29mZnNldDp0PTAsaW1tZWRpYXRlOnI9ITEsbG9jazppPSExLHByb2dyYW1tYXRpYzphPSEwLGxlcnA6bj1hP3RoaXMub3B0aW9ucy5sZXJwOnZvaWQgMCxkdXJhdGlvbjpvPWE/dGhpcy5vcHRpb25zLmR1cmF0aW9uOnZvaWQgMCxlYXNpbmc6cz1hP3RoaXMub3B0aW9ucy5lYXNpbmc6dm9pZCAwLG9uU3RhcnQ6bCxvbkNvbXBsZXRlOmMsZm9yY2U6dT0hMSx1c2VyRGF0YTpkfT17fSl7aWYoISgodGhpcy5pc1N0b3BwZWR8fHRoaXMuaXNMb2NrZWQpJiYhdSkpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIiYmWyJ0b3AiLCJsZWZ0Iiwic3RhcnQiLCIjIl0uaW5jbHVkZXMoZSkpZT0wO2Vsc2UgaWYodHlwZW9mIGU9PSJzdHJpbmciJiZbImJvdHRvbSIsInJpZ2h0IiwiZW5kIl0uaW5jbHVkZXMoZSkpZT10aGlzLmxpbWl0O2Vsc2V7bGV0IGg7aWYodHlwZW9mIGU9PSJzdHJpbmciPyhoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSksaHx8KGU9PT0iI3RvcCI/ZT0wOmNvbnNvbGUud2FybigiTGVuaXM6IFRhcmdldCBub3QgZm91bmQiLGUpKSk6ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZlPy5ub2RlVHlwZSYmKGg9ZSksaCl7aWYodGhpcy5vcHRpb25zLndyYXBwZXIhPT13aW5kb3cpe2xldCB4PXRoaXMucm9vdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dC09dGhpcy5pc0hvcml6b250YWw/eC5sZWZ0OngudG9wfWxldCBmPWguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZT0odGhpcy5pc0hvcml6b250YWw/Zi5sZWZ0OmYudG9wKSt0aGlzLmFuaW1hdGVkU2Nyb2xsfX1pZih0eXBlb2YgZT09Im51bWJlciIpe2lmKGUrPXQsZT1NYXRoLnJvdW5kKGUpLHRoaXMub3B0aW9ucy5pbmZpbml0ZSl7aWYoYSl7dGhpcy50YXJnZXRTY3JvbGw9dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnNjcm9sbDtsZXQgaD1lLXRoaXMuYW5pbWF0ZWRTY3JvbGw7aD50aGlzLmxpbWl0LzI/ZT1lLXRoaXMubGltaXQ6aDwtdGhpcy5saW1pdC8yJiYoZT1lK3RoaXMubGltaXQpfX1lbHNlIGU9WmV0KDAsZSx0aGlzLmxpbWl0KTtpZihlPT09dGhpcy50YXJnZXRTY3JvbGwpe2w/Lih0aGlzKSxjPy4odGhpcyk7cmV0dXJufWlmKHRoaXMudXNlckRhdGE9ZD8/e30scil7dGhpcy5hbmltYXRlZFNjcm9sbD10aGlzLnRhcmdldFNjcm9sbD1lLHRoaXMuc2V0U2Nyb2xsKHRoaXMuc2Nyb2xsKSx0aGlzLnJlc2V0KCksdGhpcy5wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KCksdGhpcy5lbWl0KCksYz8uKHRoaXMpLHRoaXMudXNlckRhdGE9e30scmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5kaXNwYXRjaFNjcm9sbGVuZEV2ZW50KCl9KTtyZXR1cm59YXx8KHRoaXMudGFyZ2V0U2Nyb2xsPWUpLHR5cGVvZiBvPT0ibnVtYmVyIiYmdHlwZW9mIHMhPSJmdW5jdGlvbiI/cz1KZXQ6dHlwZW9mIHM9PSJmdW5jdGlvbiImJnR5cGVvZiBvIT0ibnVtYmVyIiYmKG89MSksdGhpcy5hbmltYXRlLmZyb21Ubyh0aGlzLmFuaW1hdGVkU2Nyb2xsLGUse2R1cmF0aW9uOm8sZWFzaW5nOnMsbGVycDpuLG9uU3RhcnQ6KCk9PntpJiYodGhpcy5pc0xvY2tlZD0hMCksdGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIixsPy4odGhpcyl9LG9uVXBkYXRlOihoLGYpPT57dGhpcy5pc1Njcm9sbGluZz0ic21vb3RoIix0aGlzLmxhc3RWZWxvY2l0eT10aGlzLnZlbG9jaXR5LHRoaXMudmVsb2NpdHk9aC10aGlzLmFuaW1hdGVkU2Nyb2xsLHRoaXMuZGlyZWN0aW9uPU1hdGguc2lnbih0aGlzLnZlbG9jaXR5KSx0aGlzLmFuaW1hdGVkU2Nyb2xsPWgsdGhpcy5zZXRTY3JvbGwodGhpcy5zY3JvbGwpLGEmJih0aGlzLnRhcmdldFNjcm9sbD1oKSxmfHx0aGlzLmVtaXQoKSxmJiYodGhpcy5yZXNldCgpLHRoaXMuZW1pdCgpLGM/Lih0aGlzKSx0aGlzLnVzZXJEYXRhPXt9LHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuZGlzcGF0Y2hTY3JvbGxlbmRFdmVudCgpfSksdGhpcy5wcmV2ZW50TmV4dE5hdGl2ZVNjcm9sbEV2ZW50KCkpfX0pfX19cHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudCgpe3RoaXMuX3ByZXZlbnROZXh0TmF0aXZlU2Nyb2xsRXZlbnQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5fcHJldmVudE5leHROYXRpdmVTY3JvbGxFdmVudD0hMX0pfWNoZWNrTmVzdGVkU2Nyb2xsKGUse2RlbHRhWDp0LGRlbHRhWTpyfSl7bGV0IGk9RGF0ZS5ub3coKSxhPWUuX2xlbmlzPz89e30sbixvLHMsbCxjLHUsZCxoLGY9dGhpcy5vcHRpb25zLmdlc3R1cmVPcmllbnRhdGlvbjtpZihpLShhLnRpbWU/PzApPjJlMyl7YS50aW1lPURhdGUubm93KCk7bGV0IHo9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSk7YS5jb21wdXRlZFN0eWxlPXo7bGV0IE09ei5vdmVyZmxvd1gsRj16Lm92ZXJmbG93WTtpZihuPVsiYXV0byIsIm92ZXJsYXkiLCJzY3JvbGwiXS5pbmNsdWRlcyhNKSxvPVsiYXV0byIsIm92ZXJsYXkiLCJzY3JvbGwiXS5pbmNsdWRlcyhGKSxhLmhhc092ZXJmbG93WD1uLGEuaGFzT3ZlcmZsb3dZPW8sIW4mJiFvfHxmPT09InZlcnRpY2FsIiYmIW98fGY9PT0iaG9yaXpvbnRhbCImJiFuKXJldHVybiExO2M9ZS5zY3JvbGxXaWR0aCx1PWUuc2Nyb2xsSGVpZ2h0LGQ9ZS5jbGllbnRXaWR0aCxoPWUuY2xpZW50SGVpZ2h0LHM9Yz5kLGw9dT5oLGEuaXNTY3JvbGxhYmxlWD1zLGEuaXNTY3JvbGxhYmxlWT1sLGEuc2Nyb2xsV2lkdGg9YyxhLnNjcm9sbEhlaWdodD11LGEuY2xpZW50V2lkdGg9ZCxhLmNsaWVudEhlaWdodD1ofWVsc2Ugcz1hLmlzU2Nyb2xsYWJsZVgsbD1hLmlzU2Nyb2xsYWJsZVksbj1hLmhhc092ZXJmbG93WCxvPWEuaGFzT3ZlcmZsb3dZLGM9YS5zY3JvbGxXaWR0aCx1PWEuc2Nyb2xsSGVpZ2h0LGQ9YS5jbGllbnRXaWR0aCxoPWEuY2xpZW50SGVpZ2h0O2lmKCFuJiYhb3x8IXMmJiFsfHxmPT09InZlcnRpY2FsIiYmKCFvfHwhbCl8fGY9PT0iaG9yaXpvbnRhbCImJighbnx8IXMpKXJldHVybiExO2xldCB4O2lmKGY9PT0iaG9yaXpvbnRhbCIpeD0ieCI7ZWxzZSBpZihmPT09InZlcnRpY2FsIil4PSJ5IjtlbHNle2xldCB6PXQhPT0wLE09ciE9PTA7eiYmbiYmcyYmKHg9IngiKSxNJiZvJiZsJiYoeD0ieSIpfWlmKCF4KXJldHVybiExO2xldCB2LGIseSx3LGs7aWYoeD09PSJ4Iil2PWUuc2Nyb2xsTGVmdCxiPWMtZCx5PXQsdz1uLGs9cztlbHNlIGlmKHg9PT0ieSIpdj1lLnNjcm9sbFRvcCxiPXUtaCx5PXIsdz1vLGs9bDtlbHNlIHJldHVybiExO3JldHVybih5PjA/djxiOnY+MCkmJncmJmt9Z2V0IHJvb3RFbGVtZW50KCl7cmV0dXJuIHRoaXMub3B0aW9ucy53cmFwcGVyPT09d2luZG93P2RvY3VtZW50LmRvY3VtZW50RWxlbWVudDp0aGlzLm9wdGlvbnMud3JhcHBlcn1nZXQgbGltaXQoKXtyZXR1cm4gdGhpcy5vcHRpb25zLm5haXZlRGltZW5zaW9ucz90aGlzLmlzSG9yaXpvbnRhbD90aGlzLnJvb3RFbGVtZW50LnNjcm9sbFdpZHRoLXRoaXMucm9vdEVsZW1lbnQuY2xpZW50V2lkdGg6dGhpcy5yb290RWxlbWVudC5zY3JvbGxIZWlnaHQtdGhpcy5yb290RWxlbWVudC5jbGllbnRIZWlnaHQ6dGhpcy5kaW1lbnNpb25zLmxpbWl0W3RoaXMuaXNIb3Jpem9udGFsPyJ4IjoieSJdfWdldCBpc0hvcml6b250YWwoKXtyZXR1cm4gdGhpcy5vcHRpb25zLm9yaWVudGF0aW9uPT09Imhvcml6b250YWwifWdldCBhY3R1YWxTY3JvbGwoKXtsZXQgZT10aGlzLm9wdGlvbnMud3JhcHBlcjtyZXR1cm4gdGhpcy5pc0hvcml6b250YWw/ZS5zY3JvbGxYPz9lLnNjcm9sbExlZnQ6ZS5zY3JvbGxZPz9lLnNjcm9sbFRvcH1nZXQgc2Nyb2xsKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5pbmZpbml0ZT9wVXIodGhpcy5hbmltYXRlZFNjcm9sbCx0aGlzLmxpbWl0KTp0aGlzLmFuaW1hdGVkU2Nyb2xsfWdldCBwcm9ncmVzcygpe3JldHVybiB0aGlzLmxpbWl0PT09MD8xOnRoaXMuc2Nyb2xsL3RoaXMubGltaXR9Z2V0IGlzU2Nyb2xsaW5nKCl7cmV0dXJuIHRoaXMuX2lzU2Nyb2xsaW5nfXNldCBpc1Njcm9sbGluZyhlKXt0aGlzLl9pc1Njcm9sbGluZyE9PWUmJih0aGlzLl9pc1Njcm9sbGluZz1lLHRoaXMudXBkYXRlQ2xhc3NOYW1lKCkpfWdldCBpc1N0b3BwZWQoKXtyZXR1cm4gdGhpcy5faXNTdG9wcGVkfXNldCBpc1N0b3BwZWQoZSl7dGhpcy5faXNTdG9wcGVkIT09ZSYmKHRoaXMuX2lzU3RvcHBlZD1lLHRoaXMudXBkYXRlQ2xhc3NOYW1lKCkpfWdldCBpc0xvY2tlZCgpe3JldHVybiB0aGlzLl9pc0xvY2tlZH1zZXQgaXNMb2NrZWQoZSl7dGhpcy5faXNMb2NrZWQhPT1lJiYodGhpcy5faXNMb2NrZWQ9ZSx0aGlzLnVwZGF0ZUNsYXNzTmFtZSgpKX1nZXQgaXNTbW9vdGgoKXtyZXR1cm4gdGhpcy5pc1Njcm9sbGluZz09PSJzbW9vdGgifWdldCBjbGFzc05hbWUoKXtsZXQgZT0ibGVuaXMiO3JldHVybiB0aGlzLm9wdGlvbnMuYXV0b1RvZ2dsZSYmKGUrPSIgbGVuaXMtYXV0b1RvZ2dsZSIpLHRoaXMuaXNTdG9wcGVkJiYoZSs9IiBsZW5pcy1zdG9wcGVkIiksdGhpcy5pc0xvY2tlZCYmKGUrPSIgbGVuaXMtbG9ja2VkIiksdGhpcy5pc1Njcm9sbGluZyYmKGUrPSIgbGVuaXMtc2Nyb2xsaW5nIiksdGhpcy5pc1Njcm9sbGluZz09PSJzbW9vdGgiJiYoZSs9IiBsZW5pcy1zbW9vdGgiKSxlfXVwZGF0ZUNsYXNzTmFtZSgpe3RoaXMuY2xlYW5VcENsYXNzTmFtZSgpLHRoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lPWAke3RoaXMucm9vdEVsZW1lbnQuY2xhc3NOYW1lfSAke3RoaXMuY2xhc3NOYW1lfWAudHJpbSgpfWNsZWFuVXBDbGFzc05hbWUoKXt0aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZT10aGlzLnJvb3RFbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKC9sZW5pcygtXHcrKT8vZywiIikudHJpbSgpfX19KTt2YXIgcGllPWplKChkaWUsdWllKT0+eyhmdW5jdGlvbihlLHQpe3R5cGVvZiBkaWU9PSJvYmplY3QiJiZ0eXBlb2YgdWllPCJ1Ij91aWUuZXhwb3J0cz10KCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUodCk6KGU9ZXx8c2VsZixlLlN3ZWV0U2Nyb2xsPXQoKSl9KShkaWUsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihMKXtmb3IodmFyIFUsVj0xLFg9YXJndW1lbnRzLmxlbmd0aDtWPFg7VisrKXtVPWFyZ3VtZW50c1tWXTtmb3IodmFyIGRlIGluIFUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFUsZGUpJiYoTFtkZV09VVtkZV0pfXJldHVybiBMfSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdD0hISh0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmRvY3VtZW50JiZ3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCkscj10P3dpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5JiZ3aW5kb3cubG9jYXRpb24ucHJvdG9jb2whPT0iZmlsZToiOiExLGk9KGZ1bmN0aW9uKCl7dmFyIEE9ITE7aWYoIXQpcmV0dXJuIEE7dHJ5e3ZhciBMPXdpbmRvdyxVPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe0E9ITB9fSk7TC5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLFUpLEwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxVKX1jYXRjaHt9cmV0dXJuIEF9KSgpLGE9ZnVuY3Rpb24oQSl7cmV0dXJuIHR5cGVvZiBBPT0ic3RyaW5nIn0sbj1mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIEE9PSJmdW5jdGlvbiJ9LG89ZnVuY3Rpb24oQSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoQSl9LHM9ZnVuY3Rpb24oQSl7cmV0dXJuIW8oQSkmJkEtcGFyc2VGbG9hdChBKSsxPj0wfSxsPWZ1bmN0aW9uKEEsTCl7cmV0dXJuIEEmJkEuaGFzT3duUHJvcGVydHkoTCl9LGM9dD93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpudWxsLHU9dD93aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOm51bGwsZD1NYXRoLmNvcyxoPU1hdGguc2luLGY9TWF0aC5wb3cseD1NYXRoLnNxcnQsdj1NYXRoLlBJLGI9e2xpbmVhcjpmdW5jdGlvbihBKXtyZXR1cm4gQX0sZWFzZUluUXVhZDpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKihMLz1YKSpMK1V9LGVhc2VPdXRRdWFkOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKEwvPVgpKihMLTIpK1V9LGVhc2VJbk91dFF1YWQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxP1YvMipMKkwrVTotVi8yKigtLUwqKEwtMiktMSkrVX0sZWFzZUluQ3ViaWM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMK1V9LGVhc2VPdXRDdWJpYzpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKigoTD1ML1gtMSkqTCpMKzEpK1V9LGVhc2VJbk91dEN1YmljOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuKEwvPVgvMik8MT9WLzIqTCpMKkwrVTpWLzIqKChMLT0yKSpMKkwrMikrVX0sZWFzZUluUXVhcnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMKkwrVX0sZWFzZU91dFF1YXJ0OmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKChMPUwvWC0xKSpMKkwqTC0xKStVfSxlYXNlSW5PdXRRdWFydDpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybihMLz1YLzIpPDE/Vi8yKkwqTCpMKkwrVTotVi8yKigoTC09MikqTCpMKkwtMikrVX0sZWFzZUluUXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooTC89WCkqTCpMKkwqTCtVfSxlYXNlT3V0UXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gViooKEw9TC9YLTEpKkwqTCpMKkwrMSkrVX0sZWFzZUluT3V0UXVpbnQ6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxP1YvMipMKkwqTCpMKkwrVTpWLzIqKChMLT0yKSpMKkwqTCpMKzIpK1V9LGVhc2VJblNpbmU6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4tVipkKEwvWCoodi8yKSkrVitVfSxlYXNlT3V0U2luZTpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBWKmgoTC9YKih2LzIpKStVfSxlYXNlSW5PdXRTaW5lOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYvMiooZCh2KkwvWCktMSkrVX0sZWFzZUluRXhwbzpmdW5jdGlvbihBLEwsVSxWLFgpe3JldHVybiBMPT09MD9VOlYqZigyLDEwKihML1gtMSkpK1V9LGVhc2VPdXRFeHBvOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuIEw9PT1YP1UrVjpWKigtZigyLC0xMCpML1gpKzEpK1V9LGVhc2VJbk91dEV4cG86ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gTD09PTA/VTpMPT09WD9VK1Y6KEwvPVgvMik8MT9WLzIqZigyLDEwKihMLTEpKStVOlYvMiooLWYoMiwtMTAqLS1MKSsyKStVfSxlYXNlSW5DaXJjOmZ1bmN0aW9uKEEsTCxVLFYsWCl7cmV0dXJuLVYqKHgoMS0oTC89WCkqTCktMSkrVX0sZWFzZU91dENpcmM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4gVip4KDEtKEw9TC9YLTEpKkwpK1V9LGVhc2VJbk91dENpcmM6ZnVuY3Rpb24oQSxMLFUsVixYKXtyZXR1cm4oTC89WC8yKTwxPy1WLzIqKHgoMS1MKkwpLTEpK1U6Vi8yKih4KDEtKEwtPTIpKkwpKzEpK1V9fSx5PWZ1bmN0aW9uKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChBP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoQSk6W10pfSx3PWZ1bmN0aW9uKEEpe3JldHVybiB5KEEpLnNoaWZ0KCl8fG51bGx9LGs9ZnVuY3Rpb24oQSl7cmV0dXJuIEEgaW5zdGFuY2VvZiBFbGVtZW50fSxPPWZ1bmN0aW9uKEEpe3JldHVybiBBPT09d2luZG93fSx6PWZ1bmN0aW9uKEEpe3JldHVybiBBPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHxBPT09ZG9jdW1lbnQuYm9keX0sTT1mdW5jdGlvbihBLEwpe2lmKGsoTCkpcmV0dXJuIEE9PT1MO2Zvcih2YXIgVT15KEwpLFY9VS5sZW5ndGg7LS1WPj0wJiZVW1ZdIT09QTspO3JldHVybiBWPi0xfSxGPWZ1bmN0aW9uKEEpe3JldHVybiBNYXRoLm1heChBLnNjcm9sbEhlaWdodCxBLmNsaWVudEhlaWdodCxBLm9mZnNldEhlaWdodCl9LEQ9ZnVuY3Rpb24oQSl7cmV0dXJuIE1hdGgubWF4KEEuc2Nyb2xsV2lkdGgsQS5jbGllbnRXaWR0aCxBLm9mZnNldFdpZHRoKX0sTj1mdW5jdGlvbihBKXtyZXR1cm57d2lkdGg6RChBKSxoZWlnaHQ6RihBKX19LFI9ZnVuY3Rpb24oQSl7dmFyIEw9TyhBKXx8eihBKTtyZXR1cm57dmlld3BvcnQ6e3dpZHRoOkw/TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTpBLmNsaWVudFdpZHRoLGhlaWdodDpMP3dpbmRvdy5pbm5lckhlaWdodDpBLmNsaWVudEhlaWdodH0sc2l6ZTpMP3t3aWR0aDpNYXRoLm1heChEKGRvY3VtZW50LmJvZHkpLEQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSksaGVpZ2h0Ok1hdGgubWF4KEYoZG9jdW1lbnQuYm9keSksRihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX06TihBKX19LF89e3k6InNjcm9sbFRvcCIseDoic2Nyb2xsTGVmdCJ9LFM9e3k6InBhZ2VZT2Zmc2V0Iix4OiJwYWdlWE9mZnNldCJ9LCQ9ZnVuY3Rpb24oQSxMKXtyZXR1cm4gTyhBKT9BW1NbTF1dOkFbX1tMXV19LFQ9ZnVuY3Rpb24oQSxMLFUpe2lmKE8oQSkpe3ZhciBWPVU9PT0ieSI7QS5zY3JvbGxUbyhWP0EucGFnZVhPZmZzZXQ6TCxWP0w6QS5wYWdlWU9mZnNldCl9ZWxzZSBBW19bVV1dPUx9LEU9ZnVuY3Rpb24oQSxMKXt2YXIgVT1BLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFUud2lkdGh8fFUuaGVpZ2h0KXt2YXIgVj17dG9wOjAsbGVmdDowfSxYPXZvaWQgMDtpZihPKEwpfHx6KEwpKVg9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFYudG9wPXdpbmRvd1tTLnldLFYubGVmdD13aW5kb3dbUy54XTtlbHNle1g9TDt2YXIgZGU9WC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtWLnRvcD1kZS50b3AqLTErWFtfLnldLFYubGVmdD1kZS5sZWZ0Ki0xK1hbXy54XX1yZXR1cm57dG9wOlUudG9wK1YudG9wLVguY2xpZW50VG9wLGxlZnQ6VS5sZWZ0K1YubGVmdC1YLmNsaWVudExlZnR9fXJldHVybiBVfSxxPShmdW5jdGlvbigpe3JldHVybiB0PyJvbndoZWVsImluIGRvY3VtZW50PyJ3aGVlbCI6Im1vdXNld2hlZWwiOiJ3aGVlbCJ9KSgpLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT0id2hlZWwiP3E6QX0sRz1mdW5jdGlvbihBLEwsVSxWLFgpe1Uuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGRlKXtBW0xdKEIoZGUpLFYsaT97cGFzc2l2ZTpYfTohMSl9KX0sZWU9ZnVuY3Rpb24oQSxMLFUsVil7cmV0dXJuIEcoQSwiYWRkRXZlbnRMaXN0ZW5lciIsTCxVLFYpfSxQPWZ1bmN0aW9uKEEsTCxVLFYpe3JldHVybiBHKEEsInJlbW92ZUV2ZW50TGlzdGVuZXIiLEwsVSxWKX0sZ2U9L14oXCt8LSk9KFxkKyg/OlwuXGQrKT8pJC8sd2U9ZnVuY3Rpb24oQSxMKXt2YXIgVT17dG9wOjAsbGVmdDowLHJlbGF0aXZlOiExfTtpZihsKEEsInRvcCIpfHxsKEEsImxlZnQiKSlVPWUoe30sVSxBKTtlbHNlIGlmKG8oQSkpaWYoQS5sZW5ndGg+MSlVLnRvcD1BWzBdLFUubGVmdD1BWzFdO2Vsc2UgaWYoQS5sZW5ndGg9PT0xKVUudG9wPUw/QVswXTowLFUubGVmdD1MPzA6QVswXTtlbHNlIHJldHVybiBudWxsO2Vsc2UgaWYocyhBKSlMP1UudG9wPUE6VS5sZWZ0PUE7ZWxzZSBpZihhKEEpKXt2YXIgVj1BLnRyaW0oKS5tYXRjaChnZSk7aWYoIVYpcmV0dXJuIG51bGw7dmFyIFg9VlsxXSxkZT1wYXJzZUludChWWzJdLDEwKTtYPT09IisiPyhVLnRvcD1MP2RlOjAsVS5sZWZ0PUw/MDpkZSk6KFUudG9wPUw/LWRlOjAsVS5sZWZ0PUw/MDotZGUpLFUucmVsYXRpdmU9ITB9ZWxzZSByZXR1cm4gbnVsbDtyZXR1cm4gVX0sST17dHJpZ2dlcjoiW2RhdGEtc2Nyb2xsXSIsaGVhZGVyOiJbZGF0YS1zY3JvbGwtaGVhZGVyXSIsZHVyYXRpb246MWUzLGVhc2luZzoiZWFzZU91dFF1aW50IixvZmZzZXQ6MCx2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGNhbmNlbGxhYmxlOiEwLHVwZGF0ZVVSTDohMSxwcmV2ZW50RGVmYXVsdDohMCxzdG9wUHJvcGFnYXRpb246ITAsYmVmb3JlOm51bGwsYWZ0ZXI6bnVsbCxjYW5jZWw6bnVsbCxjb21wbGV0ZTpudWxsLHN0ZXA6bnVsbH0sbmU9ImNsaWNrIixrZT0id2hlZWwgdG91Y2hzdGFydCB0b3VjaG1vdmUiLFk9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShMLFUpe3ZhciBWPXRoaXM7dGhpcy4kZWw9bnVsbCx0aGlzLmN0eD17JHRyaWdnZXI6bnVsbCxvcHRzOm51bGwscHJvZ3Jlc3M6ITEscG9zOm51bGwsc3RhcnRQb3M6bnVsbCxlYXNpbmc6bnVsbCxzdGFydDowLGlkOjAsY2FuY2VsOiExLGhhc2g6bnVsbH0sdGhpcy5sb29wPWZ1bmN0aW9uKGRlKXt2YXIgdmU9VixMZT12ZS4kZWwsVz12ZS5jdHg7aWYoVy5zdGFydHx8KFcuc3RhcnQ9ZGUpLCFXLnByb2dyZXNzfHwhTGUpe1Yuc3RvcCgpO3JldHVybn12YXIgSD1XLm9wdHMsdGU9Vy5wb3MsYmU9Vy5zdGFydCx1ZT1XLnN0YXJ0UG9zLENlPVcuZWFzaW5nLGhlPUguZHVyYXRpb24saWU9e3RvcDoieSIsbGVmdDoieCJ9LFNlPWRlLWJlLEllPU1hdGgubWluKDEsTWF0aC5tYXgoU2UvaGUsMCkpO09iamVjdC5rZXlzKHRlKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXt2YXIgSz10ZVtaZV0sWj11ZVtaZV0sSj1LLVo7aWYoSiE9PTApe3ZhciBtZT1DZShJZSxoZSpJZSwwLDEsaGUpO1QoTGUsTWF0aC5yb3VuZChaK0oqbWUpLGllW1plXSl9fSksU2U8PWhlPyhWLmhvb2soSCwic3RlcCIsSWUpLFcuaWQ9QS5yYWYoVi5sb29wKSk6Vi5zdG9wKCEwKX0sdGhpcy5oYW5kbGVDbGljaz1mdW5jdGlvbihkZSl7Zm9yKHZhciB2ZT1WLm9wdHMsTGU9ZGUudGFyZ2V0O0xlJiZMZSE9PWRvY3VtZW50O0xlPUxlLnBhcmVudE5vZGUpaWYoTShMZSx2ZS50cmlnZ2VyKSl7dmFyIFc9SlNPTi5wYXJzZShMZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsLW9wdGlvbnMiKXx8Int9IiksSD1MZS5nZXRBdHRyaWJ1dGUoImRhdGEtc2Nyb2xsIiksdGU9SHx8TGUuZ2V0QXR0cmlidXRlKCJocmVmIiksYmU9ZSh7fSx2ZSxXKSx1ZT1iZS5wcmV2ZW50RGVmYXVsdCxDZT1iZS5zdG9wUHJvcGFnYXRpb24saGU9YmUudmVydGljYWwsaWU9YmUuaG9yaXpvbnRhbDt1ZSYmZGUucHJldmVudERlZmF1bHQoKSxDZSYmZGUuc3RvcFByb3BhZ2F0aW9uKCksVi5jdHguJHRyaWdnZXI9TGUsaWUmJmhlP1YudG8odGUsYmUpOmhlP1YudG9Ub3AodGUsYmUpOmllJiZWLnRvTGVmdCh0ZSxiZSk7YnJlYWt9fSx0aGlzLmhhbmRsZVN0b3A9ZnVuY3Rpb24oZGUpe3ZhciB2ZT1WLmN0eCxMZT12ZS5vcHRzO0xlJiZMZS5jYW5jZWxsYWJsZT8odmUuY2FuY2VsPSEwLFYuc3RvcCgpKTpkZS5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLm9wdHM9ZSh7fSxJLEx8fHt9KTt2YXIgWD1udWxsO3QmJih0eXBlb2YgVT09InN0cmluZyI/WD13KFUpOlUhPW51bGw/WD1VOlg9d2luZG93KSx0aGlzLiRlbD1YLFgmJnRoaXMuYmluZCghMCwhMSl9cmV0dXJuIEEuY3JlYXRlPWZ1bmN0aW9uKEwsVSl7cmV0dXJuIG5ldyBBKEwsVSl9LEEucHJvdG90eXBlLnRvPWZ1bmN0aW9uKEwsVSl7aWYodCl7dmFyIFY9dGhpcyxYPVYuJGVsLGRlPVYuY3R4LHZlPVYub3B0cyxMZT1kZS4kdHJpZ2dlcixXPWUoe30sdmUsVXx8e30pLEg9Vy5vZmZzZXQsdGU9Vy52ZXJ0aWNhbCxiZT1XLmhvcml6b250YWwsdWU9ayhXLmhlYWRlcik/Vy5oZWFkZXI6dyhXLmhlYWRlciksQ2U9L14jLyxoZT1hKEwpJiZDZS50ZXN0KEwpP0w6bnVsbDtpZihkZS5vcHRzPVcsZGUuY2FuY2VsPSExLGRlLmhhc2g9aGUsdGhpcy5zdG9wKCksISFYKXt2YXIgaWU9d2UoSCx0ZSksU2U9d2UoTCx0ZSksSWU9e3RvcDowLGxlZnQ6MH07aWYoU2UpaWYoU2UucmVsYXRpdmUpe3ZhciBaZT0kKFgsdGU/InkiOiJ4Iik7SWUudG9wPXRlP1plK1NlLnRvcDpTZS50b3AsSWUubGVmdD10ZT9TZS5sZWZ0OlplK1NlLmxlZnR9ZWxzZSBJZT1TZTtlbHNlIGlmKGEoTCkmJkwhPT0iIyIpe3ZhciBLPXcoTCk7aWYoIUspcmV0dXJuO0llPUUoSyxYKX1pZSYmKEllLnRvcCs9aWUudG9wLEllLmxlZnQrPWllLmxlZnQpLHVlJiYoSWUudG9wPU1hdGgubWF4KDAsSWUudG9wLU4odWUpLmhlaWdodCkpO3ZhciBaPVIoWCksSj1aLnZpZXdwb3J0LG1lPVouc2l6ZTtpZihJZS50b3A9dGU/TWF0aC5tYXgoMCxNYXRoLm1pbihtZS5oZWlnaHQtSi5oZWlnaHQsSWUudG9wKSk6JChYLCJ5IiksSWUubGVmdD1iZT9NYXRoLm1heCgwLE1hdGgubWluKG1lLndpZHRoLUoud2lkdGgsSWUubGVmdCkpOiQoWCwieCIpLHRoaXMuaG9vayhXLCJiZWZvcmUiLEllLExlKT09PSExKXtkZS5vcHRzPW51bGw7cmV0dXJufWRlLnBvcz1JZSx0aGlzLnN0YXJ0KFcpLHRoaXMuYmluZCghMSwhMCl9fX0sQS5wcm90b3R5cGUudG9Ub3A9ZnVuY3Rpb24oTCxVKXt0aGlzLnRvKEwsZSh7fSxVfHx7fSx7dmVydGljYWw6ITAsaG9yaXpvbnRhbDohMX0pKX0sQS5wcm90b3R5cGUudG9MZWZ0PWZ1bmN0aW9uKEwsVSl7dGhpcy50byhMLGUoe30sVXx8e30se3ZlcnRpY2FsOiExLGhvcml6b250YWw6ITB9KSl9LEEucHJvdG90eXBlLnRvRWxlbWVudD1mdW5jdGlvbihMLFUpe3ZhciBWPXRoaXMuJGVsOyF0fHwhVnx8dGhpcy50byhFKEwsViksVXx8e30pfSxBLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKEwpe0w9PT12b2lkIDAmJihMPSExKTt2YXIgVT10aGlzLFY9VS4kZWwsWD1VLmN0eCxkZT1YLnBvczshVnx8IVgucHJvZ3Jlc3N8fChBLmNhZihYLmlkKSxYLnByb2dyZXNzPSExLFguc3RhcnQ9MCxYLmlkPTAsTCYmZGUmJihUKFYsZGUubGVmdCwieCIpLFQoVixkZS50b3AsInkiKSksdGhpcy5jb21wbGV0ZSgpKX0sQS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEwpe2lmKHRoaXMuJGVsKXt2YXIgVT1lKHt9LHRoaXMub3B0cyxMKTt0aGlzLnN0b3AoKSx0aGlzLnVuYmluZCghMCwhMCksdGhpcy5vcHRzPVUsdGhpcy5iaW5kKCEwLCExKX19LEEucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLiRlbCYmKHRoaXMuc3RvcCgpLHRoaXMudW5iaW5kKCEwLCEwKSx0aGlzLiRlbD1udWxsKX0sQS5wcm90b3R5cGUub25CZWZvcmU9ZnVuY3Rpb24oTCxVKXtyZXR1cm4hMH0sQS5wcm90b3R5cGUub25TdGVwPWZ1bmN0aW9uKEwpe30sQS5wcm90b3R5cGUub25BZnRlcj1mdW5jdGlvbihMLFUpe30sQS5wcm90b3R5cGUub25DYW5jZWw9ZnVuY3Rpb24oKXt9LEEucHJvdG90eXBlLm9uQ29tcGxldGU9ZnVuY3Rpb24oTCl7fSxBLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihMKXt2YXIgVT10aGlzLmN0eDtVLm9wdHM9TCxVLnByb2dyZXNzPSEwLFUuZWFzaW5nPW4oTC5lYXNpbmcpP0wuZWFzaW5nOmJbTC5lYXNpbmddO3ZhciBWPXRoaXMuJGVsLFg9e3RvcDokKFYsInkiKSxsZWZ0OiQoViwieCIpfTtVLnN0YXJ0UG9zPVgsVS5pZD1BLnJhZih0aGlzLmxvb3ApfSxBLnByb3RvdHlwZS5jb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBMPXRoaXMsVT1MLiRlbCxWPUwuY3R4LFg9Vi5oYXNoLGRlPVYuY2FuY2VsLHZlPVYub3B0cyxMZT1WLnBvcyxXPVYuJHRyaWdnZXI7aWYoISghVXx8IXZlKSl7aWYoWCE9bnVsbCYmWCE9PXdpbmRvdy5sb2NhdGlvbi5oYXNoKXt2YXIgSD12ZS51cGRhdGVVUkw7dCYmciYmSCE9PSExJiZ3aW5kb3cuaGlzdG9yeVtIPT09InJlcGxhY2UiPyJyZXBsYWNlU3RhdGUiOiJwdXNoU3RhdGUiXShudWxsLCIiLFgpfXRoaXMudW5iaW5kKCExLCEwKSxWLm9wdHM9bnVsbCxWLiR0cmlnZ2VyPW51bGwsZGU/dGhpcy5ob29rKHZlLCJjYW5jZWwiKTp0aGlzLmhvb2sodmUsImFmdGVyIixMZSxXKSx0aGlzLmhvb2sodmUsImNvbXBsZXRlIixkZSl9fSxBLnByb3RvdHlwZS5ob29rPWZ1bmN0aW9uKEwsVSl7Zm9yKHZhciBWPVtdLFg9MjtYPGFyZ3VtZW50cy5sZW5ndGg7WCsrKVZbWC0yXT1hcmd1bWVudHNbWF07dmFyIGRlLHZlPUxbVV0sTGUsVztyZXR1cm4gbih2ZSkmJihMZT12ZS5hcHBseSh0aGlzLFYuY29uY2F0KFt0aGlzXSkpKSxXPShkZT10aGlzKVsib24iKyhVWzBdLnRvVXBwZXJDYXNlKCkrVS5zbGljZSgxKSldLmFwcGx5KGRlLFYpLExlIT09dm9pZCAwP0xlOld9LEEucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oTCxVKXt2YXIgVj10aGlzLFg9Vi4kZWwsZGU9Vi5jdHgub3B0cztYJiYoTCYmZWUoWCxuZSx0aGlzLmhhbmRsZUNsaWNrLCExKSxVJiZlZShYLGtlLHRoaXMuaGFuZGxlU3RvcCxkZT9kZS5jYW5jZWxsYWJsZTohMCkpfSxBLnByb3RvdHlwZS51bmJpbmQ9ZnVuY3Rpb24oTCxVKXt2YXIgVj10aGlzLFg9Vi4kZWwsZGU9Vi5jdHgub3B0cztYJiYoTCYmUChYLG5lLHRoaXMuaGFuZGxlQ2xpY2ssITEpLFUmJlAoWCxrZSx0aGlzLmhhbmRsZVN0b3AsZGU/ZGUuY2FuY2VsbGFibGU6ITApKX0sQS5yYWY9YyxBLmNhZj11LEF9KSgpO3JldHVybiBZfSl9KTt2YXIgdEEsbGcsenA9cCgoKT0+e25WZSgpO2I5KCk7VHMoKTtWOCgpO2YxZSgpO0VpKCk7TTFlKCk7aDIoKTtJMWUoKTtSOCgpO04xZSgpO2pLZSgpO1FMKCk7YzkoKTtHZXQoKTtZZXQoKTtjaWUoKTtLZXQoKTt0QT1lcihwaWUoKSwxKSxsZz17T2JqZWN0TWFwOktMLFN0cmluZ21hcDplQSxGYXN0TWFwOlNwfX0pO3ZhciBLcz17fTtGZShLcyx7Y3NzRm9yRGVza3RvcDooKT0+YlVyLGNzc0Zvck5vdGVib29rOigpPT52VXIsY3NzRm9yUGhhYmxldDooKT0+eVVyLGNzc0ZvclBob25lOigpPT53VXIsY3NzRm9yVGFibGV0OigpPT54VXIsZGVza3RvcDooKT0+aGllLG5vdGVib29rOigpPT5maWUscGhhYmxldDooKT0+Z2llLHBob25lOigpPT5iaWUsdGFibGV0OigpPT5taWV9KTt2YXIgaGllLGZpZSxtaWUsZ2llLGJpZSxiVXIsdlVyLHhVcix5VXIsd1VyLHZpZT1wKCgpPT57Q3AoKTtTcygpO2hpZT0xNjAwLGZpZT0xMjQwLG1pZT0xMDI0LGdpZT02MDAsYmllPTQwMCxiVXI9ZT0+a3IoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0IChtaW4td2lkdGg6ICR7aGllfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogICAgQG1lZGlhIChtaW4td2lkdGg6ICR7aGllfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLHZVcj1lPT5rcihgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtmaWV9cHgpIHsKICAgICAgJHtlLmNzc1RleHR9CiAgICB9CiAgICBAbWVkaWEgKG1heC13aWR0aDogJHtmaWV9cHgpIHsKICAgICAgJHtlLmNzc1RleHR9CiAgICB9CiAgYCkseFVyPWU9PmtyKGAKICAgIEBjb250YWluZXIgd2NjVG9vbHNWaWV3cG9ydCAobWF4LXdpZHRoOiAke21pZX1weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke21pZX1weCkgewogICAgICAke2UuY3NzVGV4dH0KICAgIH0KICBgKSx5VXI9ZT0+a3IoYAogICAgQGNvbnRhaW5lciB3Y2NUb29sc1ZpZXdwb3J0IChtYXgtd2lkdGg6ICR7Z2llfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogICAgQG1lZGlhIChtYXgtd2lkdGg6ICR7Z2llfXB4KSB7CiAgICAgICR7ZS5jc3NUZXh0fQogICAgfQogIGApLHdVcj1lPT5rcihgCiAgICBAY29udGFpbmVyIHdjY1Rvb2xzVmlld3BvcnQgKG1heC13aWR0aDogJHtiaWV9cHgpIHsKICAgICAgJHtlLmNzc1RleHR9CiAgICB9CiAgICBAbWVkaWEgKG1heC13aWR0aDogJHtiaWV9cHgpIHsKICAgICAgJHtlLmNzc1RleHR9CiAgICB9CiAgYCl9KTt2YXIgaUEsZXR0PXAoKCk9Pnt6cCgpO2lBPWNsYXNze2RvbXRvb2xzSW5zdGFuY2U7c2Nyb2xsQ2FsbGJhY2tzPVtdO2xlbmlzSW5zdGFuY2U9bnVsbDtoYW5kbGVOYXRpdmVTY3JvbGw9dD0+e3RoaXMuZXhlY3V0ZVNjcm9sbENhbGxiYWNrcygpfTtoYW5kbGVMZW5pc1Njcm9sbD10PT57dGhpcy5leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl9O2NvbnN0cnVjdG9yKHQpe3RoaXMuZG9tdG9vbHNJbnN0YW5jZT10LHRoaXMuYXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKX1zd2VldFNjcm9sbGVyPW5ldyB0QS5kZWZhdWx0KHt9KTthc3luYyB0b0VsZW1lbnQodCxyKXt0aGlzLnN3ZWV0U2Nyb2xsZXIudG9FbGVtZW50KHQsciksYXdhaXQgQ3QuZGVsYXlGb3Ioci5kdXJhdGlvbil9YXN5bmMgZGV0ZWN0TmF0aXZlU21vb3RoU2Nyb2xsKCl7bGV0IHQ9WGUuZGVmZXIoKSxyPTEwMCxpPTMsYT0uNzUsbj1bXTtmdW5jdGlvbiBvKGwpe24ucHVzaChsLmRlbHRhWSksbi5sZW5ndGg+PXImJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLG8pLHMoKSl9ZnVuY3Rpb24gcygpe2xldCBsPW4ubGVuZ3RoLTEsYz0wO2ZvcihsZXQgZD0wO2Q8bDtkKyspTWF0aC5hYnMobltkKzFdLW5bZF0pPD1pJiZjKys7Yy9sPj1hPyhjb25zb2xlLmxvZygiU21vb3RoIHNjcm9sbGluZyBkZXRlY3RlZC4iKSx0LnJlc29sdmUoITApKTooY29uc29sZS5sb2coIlNtb290aCBzY3JvbGxpbmcgTk9UIGRldGVjdGVkLiIpLHQucmVzb2x2ZSghMSkpfXJldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLG8pLHQucHJvbWlzZX1hc3luYyBlbmFibGVMZW5pc1Njcm9sbCh0KXtsZXQgcj1uZXcgc2coe2F1dG9SYWY6ITB9KTtpZih0Py5kaXNhYmxlT25OYXRpdmVTbW9vdGhTY3JvbGwmJmF3YWl0IHRoaXMuZGV0ZWN0TmF0aXZlU21vb3RoU2Nyb2xsKCkpe3IuZGVzdHJveSgpO3JldHVybn10aGlzLmxlbmlzSW5zdGFuY2U9cix0aGlzLmRldGFjaE5hdGl2ZVNjcm9sbExpc3RlbmVyKCksdGhpcy5hdHRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCk7bGV0IGk9ci5kZXN0cm95LmJpbmQocik7ci5kZXN0cm95PSgpPT57aSgpLHRoaXMuZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpLHRoaXMuYXR0YWNoTmF0aXZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLmxlbmlzSW5zdGFuY2U9bnVsbH19b25TY3JvbGwodCl7dGhpcy5zY3JvbGxDYWxsYmFja3MucHVzaCh0KX1leGVjdXRlU2Nyb2xsQ2FsbGJhY2tzKCl7dGhpcy5zY3JvbGxDYWxsYmFja3MuZm9yRWFjaCh0PT57dHJ5e3QoKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKCJFcnJvciBpbiBzY3JvbGwgY2FsbGJhY2s6IixyKX19KX1hdHRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKX1kZXRhY2hOYXRpdmVTY3JvbGxMaXN0ZW5lcigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuaGFuZGxlTmF0aXZlU2Nyb2xsKX1hdHRhY2hMZW5pc1Njcm9sbExpc3RlbmVyKCl7dGhpcy5sZW5pc0luc3RhbmNlJiZ0aGlzLmxlbmlzSW5zdGFuY2Uub24oInNjcm9sbCIsdGhpcy5oYW5kbGVMZW5pc1Njcm9sbCl9ZGV0YWNoTGVuaXNTY3JvbGxMaXN0ZW5lcigpe3RoaXMubGVuaXNJbnN0YW5jZSYmdGhpcy5sZW5pc0luc3RhbmNlLm9mZigic2Nyb2xsIix0aGlzLmhhbmRsZUxlbmlzU2Nyb2xsKX19fSk7dmFyIGFBLHR0dD1wKCgpPT57Q3AoKTt6cCgpO2FBPWNsYXNze2RvbXRvb2xzUmVmO2dvQnJpZ2h0Qm9vbGVhbj0hMTtwcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2g9d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIik7dGhlbWVPYnNlcnZhYmxlPW5ldyBuci5yeGpzLlJlcGxheVN1YmplY3QoMSk7Y29uc3RydWN0b3IodCl7dGhpcy5kb210b29sc1JlZj10LHRoaXMuZ29CcmlnaHRCb29sZWFuPXRoaXMucHJlZmVycmVkQ29sb3JTY2hlbWVNZWRpYU1hdGNoLm1hdGNoZXMsdGhpcy5wcmVmZXJyZWRDb2xvclNjaGVtZU1lZGlhTWF0Y2guYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixyPT57dGhpcy5nb0JyaWdodEJvb2xlYW49ci5tYXRjaGVzLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX0pLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX1hc3luYyBlbmFibGVBdXRvbWF0aWNHbG9iYWxUaGVtZUNoYW5nZSgpe2RvY3VtZW50LmJvZHkmJmRvY3VtZW50LmJvZHkuc3R5bGUmJnRoaXMudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSh7bmV4dDp0PT57ZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kPXQ/IiNmZmYiOiIjMDAwIn19KX1hc3luYyB1cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpe3RoaXMudGhlbWVPYnNlcnZhYmxlLm5leHQodGhpcy5nb0JyaWdodEJvb2xlYW4pfWdvQnJpZ2h0KCl7dGhpcy5nb0JyaWdodEJvb2xlYW49ITAsdGhpcy51cGRhdGVBbGxDb25uZWN0ZWRFbGVtZW50cygpfWdvRGFyaygpe3RoaXMuZ29CcmlnaHRCb29sZWFuPSExLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX10b2dnbGVEYXJrQnJpZ2h0KCl7dGhpcy5nb0JyaWdodEJvb2xlYW49IXRoaXMuZ29CcmlnaHRCb29sZWFuLHRoaXMudXBkYXRlQWxsQ29ubmVjdGVkRWxlbWVudHMoKX19fSk7dmFyIHhpZSxuQSxydHQ9cCgoKT0+e3pwKCk7KGZ1bmN0aW9uKGUpe2VbZS5CYWNrc3BhY2U9OF09IkJhY2tzcGFjZSIsZVtlLlRhYj05XT0iVGFiIixlW2UuRW50ZXI9MTNdPSJFbnRlciIsZVtlLlNoaWZ0PTE2XT0iU2hpZnQiLGVbZS5DdHJsPTE3XT0iQ3RybCIsZVtlLkFsdD0xOF09IkFsdCIsZVtlLlBhdXNlQnJlYWs9MTldPSJQYXVzZUJyZWFrIixlW2UuQ2Fwc0xvY2s9MjBdPSJDYXBzTG9jayIsZVtlLkVzY2FwZT0yN109IkVzY2FwZSIsZVtlLlNwYWNlPTMyXT0iU3BhY2UiLGVbZS5QYWdlVXA9MzNdPSJQYWdlVXAiLGVbZS5QYWdlRG93bj0zNF09IlBhZ2VEb3duIixlW2UuRW5kPTM1XT0iRW5kIixlW2UuSG9tZT0zNl09IkhvbWUiLGVbZS5MZWZ0QXJyb3c9MzddPSJMZWZ0QXJyb3ciLGVbZS5VcEFycm93PTM4XT0iVXBBcnJvdyIsZVtlLlJpZ2h0QXJyb3c9MzldPSJSaWdodEFycm93IixlW2UuRG93bkFycm93PTQwXT0iRG93bkFycm93IixlW2UuSW5zZXJ0PTQ1XT0iSW5zZXJ0IixlW2UuRGVsZXRlPTQ2XT0iRGVsZXRlIixlW2UuWmVybz00OF09Ilplcm8iLGVbZS5DbG9zZWRQYXJlbj00OF09IkNsb3NlZFBhcmVuIixlW2UuT25lPTQ5XT0iT25lIixlW2UuRXhjbGFtYXRpb25NYXJrPTQ5XT0iRXhjbGFtYXRpb25NYXJrIixlW2UuVHdvPTUwXT0iVHdvIixlW2UuQXRTaWduPTUwXT0iQXRTaWduIixlW2UuVGhyZWU9NTFdPSJUaHJlZSIsZVtlLlBvdW5kU2lnbj01MV09IlBvdW5kU2lnbiIsZVtlLkhhc2g9NTFdPSJIYXNoIixlW2UuRm91cj01Ml09IkZvdXIiLGVbZS5Eb2xsYXJTaWduPTUyXT0iRG9sbGFyU2lnbiIsZVtlLkZpdmU9NTNdPSJGaXZlIixlW2UuUGVyY2VudFNpZ249NTNdPSJQZXJjZW50U2lnbiIsZVtlLlNpeD01NF09IlNpeCIsZVtlLkNhcmV0PTU0XT0iQ2FyZXQiLGVbZS5IYXQ9NTRdPSJIYXQiLGVbZS5TZXZlbj01NV09IlNldmVuIixlW2UuQW1wZXJzYW5kPTU1XT0iQW1wZXJzYW5kIixlW2UuRWlnaHQ9NTZdPSJFaWdodCIsZVtlLlN0YXI9NTZdPSJTdGFyIixlW2UuQXN0ZXJpaz01Nl09IkFzdGVyaWsiLGVbZS5OaW5lPTU3XT0iTmluZSIsZVtlLk9wZW5QYXJlbj01N109Ik9wZW5QYXJlbiIsZVtlLkE9NjVdPSJBIixlW2UuQj02Nl09IkIiLGVbZS5DPTY3XT0iQyIsZVtlLkQ9NjhdPSJEIixlW2UuRT02OV09IkUiLGVbZS5GPTcwXT0iRiIsZVtlLkc9NzFdPSJHIixlW2UuSD03Ml09IkgiLGVbZS5JPTczXT0iSSIsZVtlLko9NzRdPSJKIixlW2UuSz03NV09IksiLGVbZS5MPTc2XT0iTCIsZVtlLk09NzddPSJNIixlW2UuTj03OF09Ik4iLGVbZS5PPTc5XT0iTyIsZVtlLlA9ODBdPSJQIixlW2UuUT04MV09IlEiLGVbZS5SPTgyXT0iUiIsZVtlLlM9ODNdPSJTIixlW2UuVD04NF09IlQiLGVbZS5VPTg1XT0iVSIsZVtlLlY9ODZdPSJWIixlW2UuVz04N109IlciLGVbZS5YPTg4XT0iWCIsZVtlLlk9ODldPSJZIixlW2UuWj05MF09IloiLGVbZS5MZWZ0V2luZG93S2V5PTkxXT0iTGVmdFdpbmRvd0tleSIsZVtlLlJpZ2h0V2luZG93S2V5PTkyXT0iUmlnaHRXaW5kb3dLZXkiLGVbZS5TZWxlY3RLZXk9OTNdPSJTZWxlY3RLZXkiLGVbZS5OdW1wYWQwPTk2XT0iTnVtcGFkMCIsZVtlLk51bXBhZDE9OTddPSJOdW1wYWQxIixlW2UuTnVtcGFkMj05OF09Ik51bXBhZDIiLGVbZS5OdW1wYWQzPTk5XT0iTnVtcGFkMyIsZVtlLk51bXBhZDQ9MTAwXT0iTnVtcGFkNCIsZVtlLk51bXBhZDU9MTAxXT0iTnVtcGFkNSIsZVtlLk51bXBhZDY9MTAyXT0iTnVtcGFkNiIsZVtlLk51bXBhZDc9MTAzXT0iTnVtcGFkNyIsZVtlLk51bXBhZDg9MTA0XT0iTnVtcGFkOCIsZVtlLk51bXBhZDk9MTA1XT0iTnVtcGFkOSIsZVtlLk11bHRpcGx5PTEwNl09Ik11bHRpcGx5IixlW2UuQWRkPTEwN109IkFkZCIsZVtlLlN1YnRyYWN0PTEwOV09IlN1YnRyYWN0IixlW2UuRGVjaW1hbFBvaW50PTExMF09IkRlY2ltYWxQb2ludCIsZVtlLkRpdmlkZT0xMTFdPSJEaXZpZGUiLGVbZS5GMT0xMTJdPSJGMSIsZVtlLkYyPTExM109IkYyIixlW2UuRjM9MTE0XT0iRjMiLGVbZS5GND0xMTVdPSJGNCIsZVtlLkY1PTExNl09IkY1IixlW2UuRjY9MTE3XT0iRjYiLGVbZS5GNz0xMThdPSJGNyIsZVtlLkY4PTExOV09IkY4IixlW2UuRjk9MTIwXT0iRjkiLGVbZS5GMTA9MTIxXT0iRjEwIixlW2UuRjExPTEyMl09IkYxMSIsZVtlLkYxMj0xMjNdPSJGMTIiLGVbZS5OdW1Mb2NrPTE0NF09Ik51bUxvY2siLGVbZS5TY3JvbGxMb2NrPTE0NV09IlNjcm9sbExvY2siLGVbZS5TZW1pQ29sb249MTg2XT0iU2VtaUNvbG9uIixlW2UuRXF1YWxzPTE4N109IkVxdWFscyIsZVtlLkNvbW1hPTE4OF09IkNvbW1hIixlW2UuRGFzaD0xODldPSJEYXNoIixlW2UuUGVyaW9kPTE5MF09IlBlcmlvZCIsZVtlLlVuZGVyU2NvcmU9MTg5XT0iVW5kZXJTY29yZSIsZVtlLlBsdXNTaWduPTE4N109IlBsdXNTaWduIixlW2UuRm9yd2FyZFNsYXNoPTE5MV09IkZvcndhcmRTbGFzaCIsZVtlLlRpbGRlPTE5Ml09IlRpbGRlIixlW2UuR3JhdmVBY2NlbnQ9MTkyXT0iR3JhdmVBY2NlbnQiLGVbZS5PcGVuQnJhY2tldD0yMTldPSJPcGVuQnJhY2tldCIsZVtlLkNsb3NlZEJyYWNrZXQ9MjIxXT0iQ2xvc2VkQnJhY2tldCIsZVtlLlF1b3RlPTIyMl09IlF1b3RlIn0pKHhpZXx8KHhpZT17fSkpO25BPWNsYXNze2RvbU5vZGU7bWFwQ29tYm9zVG9IYW5kbGVycz1uZXcgTWFwO3ByZXNzZWRLZXlzPW5ldyBTZXQ7Y29uc3RydWN0b3IodCl7dGhpcy5kb21Ob2RlPXQsdGhpcy5zdGFydExpc3RlbmluZygpfWtleUVudW09eGllO29uKHQpe2xldCByPW5ldyBuci5yeGpzLlN1YmplY3Q7cmV0dXJuIHRoaXMucmVnaXN0ZXJLZXlzKHQscikscn10cmlnZ2VyS2V5UHJlc3ModCl7Zm9yKGxldCByIG9mIHQpdGhpcy5wcmVzc2VkS2V5cy5hZGQocik7dGhpcy5jaGVja01hdGNoaW5nS2V5Ym9hcmRTdWJqZWN0cygpO2ZvcihsZXQgciBvZiB0KXRoaXMucHJlc3NlZEtleXMuZGVsZXRlKHIpfXN0YXJ0TGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1zdG9wTGlzdGVuaW5nKCl7dGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlS2V5RG93biksdGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmhhbmRsZUtleVVwKX1jbGVhcigpe3RoaXMuc3RvcExpc3RlbmluZygpLHRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5jbGVhcigpLHRoaXMucHJlc3NlZEtleXMuY2xlYXIoKX1oYW5kbGVLZXlEb3duPXQ9Pnt0aGlzLnByZXNzZWRLZXlzLmFkZCh0LmtleUNvZGUpLHRoaXMuY2hlY2tNYXRjaGluZ0tleWJvYXJkU3ViamVjdHModCl9O2NoZWNrTWF0Y2hpbmdLZXlib2FyZFN1YmplY3RzKHQpe3RoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5mb3JFYWNoKChyLGkpPT57dGhpcy5hcmVBbGxLZXlzUHJlc3NlZChpKSYmci5uZXh0KHQpfSl9aGFuZGxlS2V5VXA9dD0+e3RoaXMucHJlc3NlZEtleXMuZGVsZXRlKHQua2V5Q29kZSl9O2FyZUFsbEtleXNQcmVzc2VkKHQpe2xldCByPSEwO3JldHVybiB0LmZvckVhY2goaT0+e3RoaXMucHJlc3NlZEtleXMuaGFzKGkpfHwocj0hMSl9KSxyfXJlZ2lzdGVyS2V5cyh0LHIpe2lmKCF0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuaGFzKHQpKXRoaXMubWFwQ29tYm9zVG9IYW5kbGVycy5zZXQodCxyKTtlbHNlIHJldHVybiB0aGlzLm1hcENvbWJvc1RvSGFuZGxlcnMuZ2V0KHQpfX19KTt2YXIgRGEsQ3A9cCgoKT0+e3pwKCk7dmllKCk7ZXR0KCk7UUwoKTt0dHQoKTtydHQoKTtEYT1jbGFzcyBle3N0YXRpYyBpbml0aWFsaXphdGlvblByb21pc2U9bnVsbDtzdGF0aWMgYXN5bmMgc2V0dXBEb21Ub29scyh0PXt9KXtyZXR1cm4hdC5pZ25vcmVHbG9iYWwmJmUuaW5pdGlhbGl6YXRpb25Qcm9taXNlP2F3YWl0IGUuaW5pdGlhbGl6YXRpb25Qcm9taXNlOnQuaWdub3JlR2xvYmFsP25ldyBlKHQpOihlLmluaXRpYWxpemF0aW9uUHJvbWlzZT0oYXN5bmMoKT0+e2xldCByO2lmKGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzKXI9Z2xvYmFsVGhpcy5kZWVzRG9tVG9vbHM7ZWxzZXtnbG9iYWxUaGlzLmRlZXNEb21Ub29scz1uZXcgZSh0KSxyPWdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzO2xldCBpPSgpPT57KGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUifHxkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIikmJihyLmVsZW1lbnRzLmhlYWRFbGVtZW50PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImhlYWQiKSxyLmVsZW1lbnRzLmJvZHlFbGVtZW50PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKSxyLmtleWJvYXJkPW5ldyBuQShkb2N1bWVudC5ib2R5KSxyLmRvbVJlYWR5LnJlc29sdmUoKSl9O2RvY3VtZW50LnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUifHxkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIj9pKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsaSksci5kb21Ub29sc1JlYWR5LnJlc29sdmUoKX1yZXR1cm4gYXdhaXQgci5kb21Ub29sc1JlYWR5LnByb21pc2Uscn0pKCksYXdhaXQgZS5pbml0aWFsaXphdGlvblByb21pc2UpfXN0YXRpYyBnZXRHbG9iYWxEb21Ub29sc1N5bmMoKXtpZighZ2xvYmFsVGhpcy5kZWVzRG9tVG9vbHMpdGhyb3cgbmV3IEVycm9yKCJZb3UgdHJpZWQgdG8gYWNjZXNzIGRvbXRvb2xzIHN5bmNocm9ub3VzbHkgdG9vIGVhcmx5Iik7cmV0dXJuIGdsb2JhbFRoaXMuZGVlc0RvbVRvb2xzfWVsZW1lbnRzPXtoZWFkRWxlbWVudDpudWxsLGJvZHlFbGVtZW50Om51bGx9O3dlYnNldHVwPW5ldyBvZyh7bWV0YU9iamVjdDp7dGl0bGU6IiJ9fSk7c21hcnRzdGF0ZT1uZXcgeTQuU21hcnRzdGF0ZTtkb21Ub29sc1N0YXRlUGFydD10aGlzLnNtYXJ0c3RhdGUuZ2V0U3RhdGVQYXJ0KCJkb210b29scyIse3ZpcnR1YWxWaWV3cG9ydDoibmF0aXZlIixqd3Q6bnVsbH0pO3JvdXRlcj1uZXcgeDQuU21hcnRSb3V0ZXIoe2RlYnVnOiExfSk7Y29udmVuaWVuY2U9e3R5cGVkcmVxdWVzdDpaYSxzbWFydGRlbGF5OkN0LHNtYXJ0anNvbjp5MSxzbWFydHVybDp3NH07ZGVlc0NvbW1zPW5ldyB5OS5EZWVzQ29tbXM7c2Nyb2xsZXI9bmV3IGlBKHRoaXMpO3RoZW1lTWFuYWdlcj1uZXcgYUEodGhpcyk7a2V5Ym9hcmQ9bnVsbDtkb21Ub29sc1JlYWR5PVhlLmRlZmVyKCk7ZG9tUmVhZHk9WGUuZGVmZXIoKTtnbG9iYWxTdHlsZXNSZWFkeT1YZS5kZWZlcigpO2NvbnN0cnVjdG9yKHQpe31ydW5PbmNlVHJhY2tlclN0cmluZ01hcD1uZXcgbGcuU3RyaW5nbWFwO3J1bk9uY2VSZXN1bHRNYXA9bmV3IGxnLkZhc3RNYXA7cnVuT25jZUVycm9yTWFwPW5ldyBsZy5GYXN0TWFwO2FzeW5jIHJ1bk9uY2UodCxyKXtsZXQgaT1gJHt0fStydW5uaW5nQ2hlY2tgO2lmKCF0aGlzLnJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwLmNoZWNrU3RyaW5nKHQpKXt0aGlzLnJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwLmFkZFN0cmluZyh0KSx0aGlzLnJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwLmFkZFN0cmluZyhpKTt0cnl7bGV0IGE9YXdhaXQgcigpO3RoaXMucnVuT25jZVJlc3VsdE1hcC5hZGRUb01hcCh0LGEpfWNhdGNoKGEpe3RoaXMucnVuT25jZUVycm9yTWFwLmFkZFRvTWFwKHQsYSl9ZmluYWxseXt0aGlzLnJ1bk9uY2VUcmFja2VyU3RyaW5nTWFwLnJlbW92ZVN0cmluZyhpKX19cmV0dXJuIGF3YWl0IHRoaXMucnVuT25jZVRyYWNrZXJTdHJpbmdNYXAucmVnaXN0ZXJVbnRpbFRydWUoYT0+IWEuaW5jbHVkZXMoaSksKCk9PntsZXQgYT10aGlzLnJ1bk9uY2VFcnJvck1hcC5nZXRCeUtleSh0KTtpZihhKXRocm93IGE7cmV0dXJuIHRoaXMucnVuT25jZVJlc3VsdE1hcC5nZXRCeUtleSh0KX0pfWFzeW5jIHNldEdsb2JhbFN0eWxlcyh0KXthd2FpdCB0aGlzLmRvbVJlYWR5LnByb21pc2U7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyLnR5cGU9InRleHQvY3NzIixyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpKSx0aGlzLmVsZW1lbnRzLmhlYWRFbGVtZW50LmFwcGVuZENoaWxkKHIpfWFzeW5jIHNldEV4dGVybmFsU2NyaXB0KHQpe2F3YWl0IHRoaXMuZG9tUmVhZHkucHJvbWlzZTtsZXQgcj1YZS5kZWZlcigpLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aS5zcmM9dCxpLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7ci5yZXNvbHZlKCl9KSwoZG9jdW1lbnQuaGVhZHx8ZG9jdW1lbnQuYm9keSkuYXBwZW5kKGkpLGF3YWl0IHIucHJvbWlzZX1hc3luYyBzZXRFeHRlcm5hbENzcyh0KXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7ci5yZWw9InN0eWxlc2hlZXQiLHIuY3Jvc3NPcmlnaW49ImFub255bW91cyIsci5ocmVmPXQsZG9jdW1lbnQuaGVhZC5hcHBlbmQocil9YXN5bmMgc2V0V2Vic2l0ZUluZm8odCl7YXdhaXQgdGhpcy53ZWJzZXR1cC5zZXR1cCh0KSxhd2FpdCB0aGlzLndlYnNldHVwLnJlYWR5UHJvbWlzZX19fSk7dmFyIG9BLGl0dCxhdHQ9cCgoKT0+e0NwKCk7U3MoKTtvQT0oKCk9PntsZXQgZT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyBPUyBYIik9PT0tMT9vZWBgLmNzc1RleHQ6IiI7cmV0dXJuIG9lYAogICAgLyogd2lkdGggKi8KICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICB3aWR0aDogMHB4OwogICAgfQogICAgYm9keSB7CiAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsKICAgIH0KICBgLmNzc1RleHR9KSgpLGl0dD1vZWAKICAvKgogIEBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL21hdGVyaWFsaWNvbnMvdjQyL2ZsVWhScTZ0elpjbFFFSi1WZGctSXVpYURzTmNJaFE4dFEud29mZjIpCiAgICAgIGZvcm1hdCgnd29mZjInKTsKICB9ICovCgogIC8qIGdsb2JhbCBib2R5IHN0eWxlcyAqLwogIGJvZHkgewogICAgbWFyZ2luOiAwcHg7CiAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIC8qIHNjcm9sbCBiYXIgc3R5bGVzICovCiAgJHtrcihvQSl9CmAuY3NzVGV4dH0pO3ZhciBkMT17fTtGZShkMSx7c2V0dXA6KCk9PlNVcixzdGF0aWNTdHlsZXM6KCk9Pk1VcixzdHlsZXM6KCk9PmtVcn0pO3ZhciBNVXIsa1VyLFNVcixudHQ9cCgoKT0+e3pwKCk7Q3AoKTthdHQoKTtTcygpO01Vcj1vZWAKICAqIHsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xczsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQoKICA6aG9zdCB7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgc2Fucy1zZXJpZjsKICB9CgogICR7a3Iob0EpfQpgLGtVcj1DYAogIDxzdHlsZT4KICAgICogewogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXM7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB9CgogICAgOmhvc3QgewogICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgfQoKICAgICR7b0F9CiAgPC9zdHlsZT4KYCxTVXI9YXN5bmMoZSx0PXt9KT0+e2xldCByPWF3YWl0IERhLnNldHVwRG9tVG9vbHModCk7cmV0dXJuIHIucnVuT25jZSgiZWxlbWVudEJhc2ljU2V0dXAiLGFzeW5jKCk9PntyLnNldEdsb2JhbFN0eWxlcyhpdHQpfSkscn19KTt2YXIgc0E9e307RmUoc0Ese2Nzc0dyaWRDb2x1bW5zOigpPT56VXJ9KTt2YXIgelVyLG90dD1wKCgpPT57elVyPShlLHQpPT57bGV0IHI9IiI7Zm9yKGxldCBpPTA7aTxlO2krKylyKz1gIGNhbGMoKDEwMCUvJHtlfSkgLSAoJHt0KihlLTEpfXB4LyR7ZX0pKWA7cmV0dXJuIHJ9fSk7dmFyIGp0PXt9O0ZlKGp0LHtTd2VldFNjcm9sbDooKT0+eWllLmRlZmF1bHQsc21hcnRkZWxheTooKT0+Q3Qsc21hcnRtYXJrZG93bjooKT0+TXAsc21hcnRwcm9taXNlOigpPT5YZSxzbWFydHJvdXRlcjooKT0+eDQsc21hcnRyeDooKT0+bnIsc21hcnRzdGF0ZTooKT0+eTQsc21hcnRzdHJpbmc6KCk9PlFpLHNtYXJ0dXJsOigpPT53NCx0eXBlZHJlcXVlc3Q6KCk9PlphfSk7dmFyIHlpZSxzdHQ9cCgoKT0+e1RzKCk7ZjFlKCk7RWkoKTt5aWU9ZXIocGllKCksMSk7STFlKCk7TTFlKCk7aDIoKTtSOCgpO04xZSgpO2I5KCl9KTt2YXIga3Q9e307RmUoa3Qse0RvbVRvb2xzOigpPT5EYSxUeXBlZFJlcXVlc3Q6KCk9Pmc5LGJyZWFrcG9pbnRzOigpPT5Lcyxjc3M6KCk9PnNBLGVsZW1lbnRCYXNpYzooKT0+ZDEscGx1Z2luczooKT0+anR9KTt2YXIgS3Q9cCgoKT0+e3JJZSgpO250dCgpO3ZpZSgpO290dCgpO0NwKCk7YjkoKTtRTCgpO3N0dCgpfSk7dmFyIHdpZSxTNCxNaWU9cCgoKT0+e3dpZT1lcih5UygpLDEpO2gyKCk7U3MoKTt0SWUoKTtLdCgpO1M0PXtjc3M6b2UsdW5zYWZlQ1NTOmtyLExpdEVsZW1lbnQ6UmwscHJvcGVydHk6an19KTt2YXIgbEEsY3R0PXAoKCk9PntTcygpO01pZSgpO0t0KCk7bEE9Y2xhc3MgZXtzdGF0aWMgaW5zdGFuY2U9bnVsbDtzdGF0aWMgZ2V0U2luZ2xldG9uKCl7cmV0dXJuIGUuaW5zdGFuY2V8fChlLmluc3RhbmNlPW5ldyBlKSxlLmluc3RhbmNlfWRvbXRvb2xzUHJvbWlzZT1EYS5zZXR1cERvbVRvb2xzKCk7Z29CcmlnaHQ9ITE7YmRWYXJUcmlwbGV0U3RvcmU9W107Y29uc3RydWN0b3IoKXt0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGFzeW5jIHQ9Pnt0LnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGFzeW5jIHI9Pnt0aGlzLmdvQnJpZ2h0PXIsYXdhaXQgdC5kb21SZWFkeS5wcm9taXNlO2ZvcihsZXQgaSBvZiB0aGlzLmJkVmFyVHJpcGxldFN0b3JlKWRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoaS5jc3NWYXJOYW1lLHRoaXMuZ29CcmlnaHQ/aS5icmlnaHRWYWx1ZTppLmRhcmtWYWx1ZSl9KX0pfWdldCBkZWZhdWx0U3R5bGVzKCl7cmV0dXJuIGQxLnN0YXRpY1N0eWxlc31jc3NGb3JEZXNrdG9wKHQpe3JldHVybiBrcihLcy5jc3NGb3JEZXNrdG9wKHQpKX1jc3NGb3JOb3RlYm9vayh0KXtyZXR1cm4ga3IoS3MuY3NzRm9yTm90ZWJvb2sodCkpfWNzc0ZvclRhYmxldCh0KXtyZXR1cm4ga3IoS3MuY3NzRm9yVGFibGV0KHQpKX1jc3NGb3JQaGFibGV0KHQpe3JldHVybiBrcihLcy5jc3NGb3JQaGFibGV0KHQpKX1jc3NGb3JQaG9uZSh0KXtyZXR1cm4ga3IoS3MuY3NzRm9yUGhvbmUodCkpfWJkVGhlbWUodCxyKXtsZXQgaSxhO0RhLmdldEdsb2JhbERvbVRvb2xzU3luYygpP2E9RGEuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCkudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj90OnI6YT1yO2xldCBuPXRoaXMuYmRWYXJUcmlwbGV0U3RvcmUuZmluZChvPT5vLmRhcmtWYWx1ZT09PXImJm8uYnJpZ2h0VmFsdWU9PT10KTtpZihuKWk9bi5jc3NWYXJOYW1lO2Vsc2V7bGV0IG89e2Nzc1Zhck5hbWU6YC0tJHt3aWUudW5pKCl9YCxicmlnaHRWYWx1ZTp0LGRhcmtWYWx1ZTpyfTt0aGlzLmJkVmFyVHJpcGxldFN0b3JlLnB1c2gobyksdGhpcy5kb210b29sc1Byb21pc2UudGhlbihhc3luYyBzPT57YXdhaXQgcy5kb21SZWFkeS5wcm9taXNlLGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoby5jc3NWYXJOYW1lLGEpfSksaT1vLmNzc1Zhck5hbWV9cmV0dXJuIFM0LnVuc2FmZUNTUyhgdmFyKCR7aX0sICR7YX0pYCl9Y3NzR3JpZENvbHVtbnM9KHQscik9PntsZXQgaT0iIjtmb3IobGV0IGE9MDthPHQ7YSsrKWkrPWAgY2FsYygoMTAwJS8ke3R9KSAtICgke3IqKHQtMSl9cHgvJHt0fSkpYDtyZXR1cm4gUzQudW5zYWZlQ1NTKGkpfX19KTt2YXIga2llLENVcix1dHQsVFVyLGR0dCxjQSx6NCxfVXIsTFVyLHB0dD1wKCgpPT57YzIoKTtraWU9U3ltYm9sLmZvcigiIiksQ1VyPWU9PntpZihlPy5yPT09a2llKXJldHVybiBlPy5fJGxpdFN0YXRpYyR9LHV0dD1lPT4oe18kbGl0U3RhdGljJDplLHI6a2llfSksVFVyPShlLC4uLnQpPT4oe18kbGl0U3RhdGljJDp0LnJlZHVjZSgocixpLGEpPT5yKyhuPT57aWYobi5fJGxpdFN0YXRpYyQhPT12b2lkIDApcmV0dXJuIG4uXyRsaXRTdGF0aWMkO3Rocm93IEVycm9yKGBWYWx1ZSBwYXNzZWQgdG8gJ2xpdGVyYWwnIGZ1bmN0aW9uIG11c3QgYmUgYSAnbGl0ZXJhbCcgcmVzdWx0OiAke259LiBVc2UgJ3Vuc2FmZVN0YXRpYycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dAogICAgICAgICAgICB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuYCl9KShpKStlW2ErMV0sZVswXSkscjpraWV9KSxkdHQ9bmV3IE1hcCxjQT1lPT4odCwuLi5yKT0+e2xldCBpPXIubGVuZ3RoLGEsbixvPVtdLHM9W10sbCxjPTAsdT0hMTtmb3IoO2M8aTspe2ZvcihsPXRbY107YzxpJiYobj1yW2NdLChhPUNVcihuKSkhPT12b2lkIDApOylsKz1hK3RbKytjXSx1PSEwO2MhPT1pJiZzLnB1c2gobiksby5wdXNoKGwpLGMrK31pZihjPT09aSYmby5wdXNoKHRbaV0pLHUpe2xldCBkPW8uam9pbigiJCRsaXQkJCIpOyh0PWR0dC5nZXQoZCkpPT09dm9pZCAwJiYoby5yYXc9byxkdHQuc2V0KGQsdD1vKSkscj1zfXJldHVybiBlKHQsLi4ucil9LHo0PWNBKEMpLF9Vcj1jQShnWSksTFVyPWNBKGJZKX0pO3ZhciBodHQ9cCgoKT0+e3B0dCgpfSk7dmFyIGVsLG5pLEFvLGNjPXAoKCk9PntlbD17QVRUUklCVVRFOjEsQ0hJTEQ6MixQUk9QRVJUWTozLEJPT0xFQU5fQVRUUklCVVRFOjQsRVZFTlQ6NSxFTEVNRU5UOjZ9LG5pPWU9PiguLi50KT0+KHtfJGxpdERpcmVjdGl2ZSQ6ZSx2YWx1ZXM6dH0pLEFvPWNsYXNze2NvbnN0cnVjdG9yKHQpe31nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFUKHQscixpKXt0aGlzLl8kQ3Q9dCx0aGlzLl8kQU09cix0aGlzLl8kQ2k9aX1fJEFTKHQscil7cmV0dXJuIHRoaXMudXBkYXRlKHQscil9dXBkYXRlKHQscil7cmV0dXJuIHRoaXMucmVuZGVyKC4uLnIpfX19KTt2YXIgVHAsZEEsZnR0PXAoKCk9PntjMigpO2NjKCk7VHA9Y2xhc3MgZXh0ZW5kcyBBb3tjb25zdHJ1Y3Rvcih0KXtpZihzdXBlcih0KSx0aGlzLml0PXgxLHQudHlwZSE9PWVsLkNISUxEKXRocm93IEVycm9yKHRoaXMuY29uc3RydWN0b3IuZGlyZWN0aXZlTmFtZSsiKCkgY2FuIG9ubHkgYmUgdXNlZCBpbiBjaGlsZCBiaW5kaW5ncyIpfXJlbmRlcih0KXtpZih0PT09eDF8fHQ9PW51bGwpcmV0dXJuIHRoaXMuX3Q9dm9pZCAwLHRoaXMuaXQ9dDtpZih0PT09bDEpcmV0dXJuIHQ7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IEVycm9yKHRoaXMuY29uc3RydWN0b3IuZGlyZWN0aXZlTmFtZSsiKCkgY2FsbGVkIHdpdGggYSBub24tc3RyaW5nIHZhbHVlIik7aWYodD09PXRoaXMuaXQpcmV0dXJuIHRoaXMuX3Q7dGhpcy5pdD10O2xldCByPVt0XTtyZXR1cm4gci5yYXc9cix0aGlzLl90PXtfJGxpdFR5cGUkOnRoaXMuY29uc3RydWN0b3IucmVzdWx0VHlwZSxzdHJpbmdzOnIsdmFsdWVzOltdfX19O1RwLmRpcmVjdGl2ZU5hbWU9InVuc2FmZUhUTUwiLFRwLnJlc3VsdFR5cGU9MTtkQT1uaShUcCl9KTt2YXIgbXR0PXAoKCk9PntmdHQoKX0pO3ZhciB5ZSxTaWU9cCgoKT0+e3llPWU9Pih0LHIpPT57ciE9PXZvaWQgMD9yLmFkZEluaXRpYWxpemVyKCgpPT57Y3VzdG9tRWxlbWVudHMuZGVmaW5lKGUsdCl9KTpjdXN0b21FbGVtZW50cy5kZWZpbmUoZSx0KX19KTt2YXIgZ3R0PXAoKCk9PntTaWUoKX0pO2Z1bmN0aW9uIGZlKGUpe3JldHVybiBqKHsuLi5lLHN0YXRlOiEwLGF0dHJpYnV0ZTohMX0pfXZhciBidHQ9cCgoKT0+e216KCk7fSk7ZnVuY3Rpb24gQVVyKGUpe3JldHVybih0LHIpPT57bGV0IGk9dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDp0W3JdO09iamVjdC5hc3NpZ24oaSxlKX19dmFyIHZ0dD1wKCgpPT57fSk7dmFyIERvLF9wPXAoKCk9PntEbz0oZSx0LHIpPT4oci5jb25maWd1cmFibGU9ITAsci5lbnVtZXJhYmxlPSEwLFJlZmxlY3QuZGVjb3JhdGUmJnR5cGVvZiB0IT0ib2JqZWN0IiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxyKSxyKX0pO2Z1bmN0aW9uIHh0dChlLHQpe3JldHVybihyLGksYSk9PntsZXQgbj1vPT5vLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IoZSk/P251bGw7aWYodCl7bGV0e2dldDpvLHNldDpzfT10eXBlb2YgaT09Im9iamVjdCI/cjphPz8oKCk9PntsZXQgbD1TeW1ib2woKTtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbbF19LHNldChjKXt0aGlzW2xdPWN9fX0pKCk7cmV0dXJuIERvKHIsaSx7Z2V0KCl7bGV0IGw9by5jYWxsKHRoaXMpO3JldHVybiBsPT09dm9pZCAwJiYobD1uKHRoaXMpLChsIT09bnVsbHx8dGhpcy5oYXNVcGRhdGVkKSYmcy5jYWxsKHRoaXMsbCkpLGx9fSl9cmV0dXJuIERvKHIsaSx7Z2V0KCl7cmV0dXJuIG4odGhpcyl9fSl9fXZhciB5dHQ9cCgoKT0+e19wKCk7fSk7ZnVuY3Rpb24gd3R0KGUpe3JldHVybih0LHIpPT5Ebyh0LHIse2dldCgpe3JldHVybih0aGlzLnJlbmRlclJvb3Q/PyhEVXI/Pz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpKS5xdWVyeVNlbGVjdG9yQWxsKGUpfX0pfXZhciBEVXIsTXR0PXAoKCk9PntfcCgpO30pO2Z1bmN0aW9uIGt0dChlKXtyZXR1cm4odCxyKT0+RG8odCxyLHthc3luYyBnZXQoKXtyZXR1cm4gYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlbmRlclJvb3Q/LnF1ZXJ5U2VsZWN0b3IoZSk/P251bGx9fSl9dmFyIFN0dD1wKCgpPT57X3AoKTt9KTtmdW5jdGlvbiBFVXIoZSl7cmV0dXJuKHQscik9PntsZXR7c2xvdDppLHNlbGVjdG9yOmF9PWU/P3t9LG49InNsb3QiKyhpP2BbbmFtZT0ke2l9XWA6Ijpub3QoW25hbWVdKSIpO3JldHVybiBEbyh0LHIse2dldCgpe2xldCBvPXRoaXMucmVuZGVyUm9vdD8ucXVlcnlTZWxlY3RvcihuKSxzPW8/LmFzc2lnbmVkRWxlbWVudHMoZSk/P1tdO3JldHVybiBhPT09dm9pZCAwP3M6cy5maWx0ZXIobD0+bC5tYXRjaGVzKGEpKX19KX19dmFyIHp0dD1wKCgpPT57X3AoKTt9KTtmdW5jdGlvbiAkVXIoZSl7cmV0dXJuKHQscik9PntsZXR7c2xvdDppfT1lPz97fSxhPSJzbG90IisoaT9gW25hbWU9JHtpfV1gOiI6bm90KFtuYW1lXSkiKTtyZXR1cm4gRG8odCxyLHtnZXQoKXtyZXR1cm4gdGhpcy5yZW5kZXJSb290Py5xdWVyeVNlbGVjdG9yKGEpPy5hc3NpZ25lZE5vZGVzKGUpPz9bXX19KX19dmFyIEN0dD1wKCgpPT57X3AoKTt9KTt2YXIgVHR0PXAoKCk9PntTaWUoKTtteigpO2J0dCgpO3Z0dCgpO3l0dCgpO010dCgpO1N0dCgpO3p0dCgpO0N0dCgpfSk7dmFyIF90dCx1QSx6ZSxMdHQ9cCgoKT0+e01pZSgpO190dD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LHVBPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSx6ZT0oKCk9PntsZXQgZT1TNC5MaXRFbGVtZW50LHQscj1bXSxpPVtdLGEsbj1bXSxvPVtdO3JldHVybiBjbGFzcyBleHRlbmRzIGV7c3RhdGlje2xldCBsPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGVbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3Q9W1M0LnByb3BlcnR5KHt0eXBlOkJvb2xlYW59KV0sYT1bUzQucHJvcGVydHkoKV0sX3R0KHRoaXMsbnVsbCx0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZ29CcmlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmM9PiJnb0JyaWdodCJpbiBjLGdldDpjPT5jLmdvQnJpZ2h0LHNldDooYyx1KT0+e2MuZ29CcmlnaHQ9dX19LG1ldGFkYXRhOmx9LHIsaSksX3R0KHRoaXMsbnVsbCxhLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZG9tdG9vbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmM9PiJkb210b29scyJpbiBjLGdldDpjPT5jLmRvbXRvb2xzLHNldDooYyx1KT0+e2MuZG9tdG9vbHM9dX19LG1ldGFkYXRhOmx9LG4sbyksbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpsfSl9I2U9dUEodGhpcyxyLCExKTtnZXQgZ29CcmlnaHQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZ29CcmlnaHQobCl7dGhpcy4jZT1sfWRvbXRvb2xzUHJvbWlzZT11QSh0aGlzLGkpOyN0PXVBKHRoaXMsbix2b2lkIDApO2dldCBkb210b29scygpe3JldHVybiB0aGlzLiN0fXNldCBkb210b29scyhsKXt0aGlzLiN0PWx9cnhTdWJzY3JpcHRpb25zPSh1QSh0aGlzLG8pLFtdKTt0aGVtZVN1YnNjcmlwdGlvbjtlbGVtZW50RG9tUmVhZHlEZWZlcnJlZD1rdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpO2VsZW1lbnREb21SZWFkeT10aGlzLmVsZW1lbnREb21SZWFkeURlZmVycmVkLnByb21pc2U7Y29uc3RydWN0b3IobD17fSl7c3VwZXIoKSx0aGlzLmRvbXRvb2xzUHJvbWlzZT1rdC5lbGVtZW50QmFzaWMuc2V0dXAodGhpcyxsKSx0aGlzLmRvbXRvb2xzUHJvbWlzZS50aGVuKGM9Pnt0aGlzLmRvbXRvb2xzPWN9KX1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7bGV0IGw9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy50aGVtZVN1YnNjcmlwdGlvbj1sLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKGM9Pnt0aGlzLmdvQnJpZ2h0PWMsdGhpcy50aGVtZUNoYW5nZWQmJnRoaXMudGhlbWVDaGFuZ2VkKGMpfSksdGhpcy5yeFN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnRoZW1lU3Vic2NyaXB0aW9uKTtmb3IobGV0IGMgb2YgdGhpcy5zdGFydHVwRnVuY3Rpb25zKWF3YWl0IGMoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudENvbm5lY3RlZCIpKX1maXJzdFVwZGF0ZWQobCl7c3VwZXIuZmlyc3RVcGRhdGVkKGwpLHRoaXMuZWxlbWVudERvbVJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfXN0YXJ0dXBGdW5jdGlvbnM9W107cmVnaXN0ZXJTdGFydHVwRnVuY3Rpb24obCl7dGhpcy5zdGFydHVwRnVuY3Rpb25zLnB1c2gobCl9Z2FyYmFnZUZ1bmN0aW9ucz1bXTtyZWdpc3RlckdhcmJhZ2VGdW5jdGlvbihsKXt0aGlzLmdhcmJhZ2VGdW5jdGlvbnMucHVzaChsKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7Zm9yKGxldCBsIG9mIHRoaXMucnhTdWJzY3JpcHRpb25zKWwudW5zdWJzY3JpYmUoKTtmb3IobGV0IGwgb2YgdGhpcy5nYXJiYWdlRnVuY3Rpb25zKWF3YWl0IGwoKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJkZWVzRWxlbWVudERpc2Nvbm5lY3RlZCIpKX19fSkoKX0pO3ZhciBJVXIsQXR0LHppZSxQVXIsTlVyLEZVcixPVXIsUlVyLENpZSxEdHQsZGMseTIsQlVyLGNnLFRpZSxkZyxfaWUsTHA9cCgoKT0+e2MyKCk7KHtJOklVcn09dlkpLEF0dD1lPT5lLHppZT1lPT5lPT09bnVsbHx8dHlwZW9mIGUhPSJvYmplY3QiJiZ0eXBlb2YgZSE9ImZ1bmN0aW9uIixQVXI9e0hUTUw6MSxTVkc6MixNQVRITUw6M30sTlVyPShlLHQpPT50PT09dm9pZCAwP2U/Ll8kbGl0VHlwZSQhPT12b2lkIDA6ZT8uXyRsaXRUeXBlJD09PXQsRlVyPWU9PmU/Ll8kbGl0VHlwZSQ/LmghPW51bGwsT1VyPWU9PmU/Ll8kbGl0RGlyZWN0aXZlJCE9PXZvaWQgMCxSVXI9ZT0+ZT8uXyRsaXREaXJlY3RpdmUkLENpZT1lPT5lLnN0cmluZ3M9PT12b2lkIDAsRHR0PSgpPT5kb2N1bWVudC5jcmVhdGVDb21tZW50KCIiKSxkYz0oZSx0LHIpPT57bGV0IGk9ZS5fJEFBLnBhcmVudE5vZGUsYT10PT09dm9pZCAwP2UuXyRBQjp0Ll8kQUE7aWYocj09PXZvaWQgMCl7bGV0IG49aS5pbnNlcnRCZWZvcmUoRHR0KCksYSksbz1pLmluc2VydEJlZm9yZShEdHQoKSxhKTtyPW5ldyBJVXIobixvLGUsZS5vcHRpb25zKX1lbHNle2xldCBuPXIuXyRBQi5uZXh0U2libGluZyxvPXIuXyRBTSxzPW8hPT1lO2lmKHMpe2xldCBsO3IuXyRBUT8uKGUpLHIuXyRBTT1lLHIuXyRBUCE9PXZvaWQgMCYmKGw9ZS5fJEFVKSE9PW8uXyRBVSYmci5fJEFQKGwpfWlmKG4hPT1hfHxzKXtsZXQgbD1yLl8kQUE7Zm9yKDtsIT09bjspe2xldCBjPUF0dChsKS5uZXh0U2libGluZztBdHQoaSkuaW5zZXJ0QmVmb3JlKGwsYSksbD1jfX19cmV0dXJuIHJ9LHkyPShlLHQscj1lKT0+KGUuXyRBSSh0LHIpLGUpLEJVcj17fSxjZz0oZSx0PUJVcik9PmUuXyRBSD10LFRpZT1lPT5lLl8kQUgsZGc9ZT0+e2UuXyRBUigpLGUuXyRBQS5yZW1vdmUoKX0sX2llPWU9PntlLl8kQVIoKX19KTtmdW5jdGlvbiBIVXIoZSl7dGhpcy5fJEFOIT09dm9pZCAwPyhwQSh0aGlzKSx0aGlzLl8kQU09ZSxFdHQodGhpcykpOnRoaXMuXyRBTT1lfWZ1bmN0aW9uIHFVcihlLHQ9ITEscj0wKXtsZXQgaT10aGlzLl8kQUgsYT10aGlzLl8kQU47aWYoYSE9PXZvaWQgMCYmYS5zaXplIT09MClpZih0KWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBuPXI7bjxpLmxlbmd0aDtuKyspdWcoaVtuXSwhMSkscEEoaVtuXSk7ZWxzZSBpIT1udWxsJiYodWcoaSwhMSkscEEoaSkpO2Vsc2UgdWcodGhpcyxlKX12YXIgdWcscEEsRXR0LGpVcixHbixoQT1wKCgpPT57THAoKTtjYygpO2NjKCk7dWc9KGUsdCk9PntsZXQgcj1lLl8kQU47aWYocj09PXZvaWQgMClyZXR1cm4hMTtmb3IobGV0IGkgb2YgcilpLl8kQU8/Lih0LCExKSx1ZyhpLHQpO3JldHVybiEwfSxwQT1lPT57bGV0IHQscjtkb3tpZigodD1lLl8kQU0pPT09dm9pZCAwKWJyZWFrO3I9dC5fJEFOLHIuZGVsZXRlKGUpLGU9dH13aGlsZShyPy5zaXplPT09MCl9LEV0dD1lPT57Zm9yKGxldCB0O3Q9ZS5fJEFNO2U9dCl7bGV0IHI9dC5fJEFOO2lmKHI9PT12b2lkIDApdC5fJEFOPXI9bmV3IFNldDtlbHNlIGlmKHIuaGFzKGUpKWJyZWFrO3IuYWRkKGUpLGpVcih0KX19O2pVcj1lPT57ZS50eXBlPT1lbC5DSElMRCYmKGUuXyRBUD8/PXFVcixlLl8kQVE/Pz1IVXIpfSxHbj1jbGFzcyBleHRlbmRzIEFve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl8kQU49dm9pZCAwfV8kQVQodCxyLGkpe3N1cGVyLl8kQVQodCxyLGkpLEV0dCh0aGlzKSx0aGlzLmlzQ29ubmVjdGVkPXQuXyRBVX1fJEFPKHQscj0hMCl7dCE9PXRoaXMuaXNDb25uZWN0ZWQmJih0aGlzLmlzQ29ubmVjdGVkPXQsdD90aGlzLnJlY29ubmVjdGVkPy4oKTp0aGlzLmRpc2Nvbm5lY3RlZD8uKCkpLHImJih1Zyh0aGlzLHQpLHBBKHRoaXMpKX1zZXRWYWx1ZSh0KXtpZihDaWUodGhpcy5fJEN0KSl0aGlzLl8kQ3QuXyRBSSh0LHRoaXMpO2Vsc2V7bGV0IHI9Wy4uLnRoaXMuXyRDdC5fJEFIXTtyW3RoaXMuXyRDaV09dCx0aGlzLl8kQ3QuXyRBSShyLHRoaXMsMCl9fWRpc2Nvbm5lY3RlZCgpe31yZWNvbm5lY3RlZCgpe319fSk7dmFyIGZBPXAoKCk9PntoQSgpfSk7dmFyIExpZSwkdHQsVlVyLEl0dD1wKCgpPT57U3MoKTtmQSgpO0xpZT1jbGFzcyBleHRlbmRzIEdue3Byb21pc2U7aGFzUHJvbWlzZVNldHRsZWQ9ITE7cmVuZGVyKHQpe3JldHVybiB0aGlzLnByb21pc2UhPT10JiYodGhpcy5wcm9taXNlPXQsdGhpcy5pc0Nvbm5lY3RlZCYmdGhpcy5oYW5kbGVQcm9taXNlKHQpKSxsMX1oYW5kbGVQcm9taXNlKHQpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITEsdC50aGVuKHI9Pnt0aGlzLnByb21pc2U9PT10JiYhdGhpcy5oYXNQcm9taXNlU2V0dGxlZCYmKHRoaXMuc2V0VmFsdWUociksdGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMCl9KS5jYXRjaChyPT57dGhpcy5wcm9taXNlPT09dCYmIXRoaXMuaGFzUHJvbWlzZVNldHRsZWQmJih0aGlzLnNldFZhbHVlKHIpLHRoaXMuaGFzUHJvbWlzZVNldHRsZWQ9ITApfSl9ZGlzY29ubmVjdGVkKCl7dGhpcy5oYXNQcm9taXNlU2V0dGxlZD0hMH1yZWNvbm5lY3RlZCgpe3RoaXMuaGFzUHJvbWlzZVNldHRsZWR8fHRoaXMuaGFuZGxlUHJvbWlzZSh0aGlzLnByb21pc2UpfX0sJHR0PW5pKExpZSksVlVyPWU9PiR0dChlKCkpfSk7dmFyIEFpZSxVVXIsUHR0PXAoKCk9PntTcygpO2ZBKCk7aDIoKTtBaWU9Y2xhc3MgZXh0ZW5kcyBHbntvYnNlcnZhYmxlO3N1Yj1udWxsO3JlbmRlcih0KXtyZXR1cm4gdGhpcy5vYnNlcnZhYmxlIT09dCYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT10LHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3Vic2NyaWJlKHQpKSxsMX1zdWJzY3JpYmUodCl7dGhpcy5zdWI9dC5zdWJzY3JpYmUocj0+e3RoaXMuc2V0VmFsdWUocil9KX1kaXNjb25uZWN0ZWQoKXt0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKX1yZWNvbm5lY3RlZCgpe3RoaXMuc3Vic2NyaWJlKHRoaXMub2JzZXJ2YWJsZSl9fSxVVXI9bmkoQWllKX0pO3ZhciBEaWUsTnR0LEZ0dD1wKCgpPT57U3MoKTtmQSgpO2gyKCk7RGllPWNsYXNzIGV4dGVuZHMgR257b2JzZXJ2YWJsZTt0ZW1wbGF0ZUZuO3N1Yj1udWxsO3JlbmRlcih0LHIpe3JldHVybih0aGlzLm9ic2VydmFibGUhPT10fHx0aGlzLnRlbXBsYXRlRm4hPT1yKSYmKHRoaXMuc3ViPy51bnN1YnNjcmliZSgpLHRoaXMub2JzZXJ2YWJsZT10LHRoaXMudGVtcGxhdGVGbj1yLHRoaXMuaXNDb25uZWN0ZWQmJnRoaXMuc3RhcnRTdWJzY3JpcHRpb24oKSksbDF9c3RhcnRTdWJzY3JpcHRpb24oKXt0aGlzLnN1Yj10aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKHQ9PntsZXQgcj10aGlzLnRlbXBsYXRlRm4odCk7dGhpcy5zZXRWYWx1ZShyKX0pfWRpc2Nvbm5lY3RlZCgpe3RoaXMuc3ViPy51bnN1YnNjcmliZSgpfXJlY29ubmVjdGVkKCl7dGhpcy5zdGFydFN1YnNjcmlwdGlvbigpfX0sTnR0PW5pKERpZSl9KTt2YXIgRWllLFNkLHpkLCRpZT1wKCgpPT57RWllPWFzeW5jKGUsdCk9Pntmb3IgYXdhaXQobGV0IHIgb2YgZSlpZihhd2FpdCB0KHIpPT09ITEpcmV0dXJufSxTZD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLkc9dH1kaXNjb25uZWN0KCl7dGhpcy5HPXZvaWQgMH1yZWNvbm5lY3QodCl7dGhpcy5HPXR9ZGVyZWYoKXtyZXR1cm4gdGhpcy5HfX0semQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLlk9dm9pZCAwLHRoaXMuWj12b2lkIDB9Z2V0KCl7cmV0dXJuIHRoaXMuWX1wYXVzZSgpe3RoaXMuWT8/PW5ldyBQcm9taXNlKHQ9PnRoaXMuWj10KX1yZXN1bWUoKXt0aGlzLlo/LigpLHRoaXMuWT10aGlzLlo9dm9pZCAwfX19KTt2YXIgT3R0LFJ0dCxtQSxJaWUsQnR0PXAoKCk9PntjMigpO0xwKCk7aEEoKTskaWUoKTtjYygpO090dD1lPT4hemllKGUpJiZ0eXBlb2YgZS50aGVuPT0iZnVuY3Rpb24iLFJ0dD0xMDczNzQxODIzLG1BPWNsYXNzIGV4dGVuZHMgR257Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRDd3Q9UnR0LHRoaXMuXyRDYnQ9W10sdGhpcy5fJENLPW5ldyBTZCh0aGlzKSx0aGlzLl8kQ1g9bmV3IHpkfXJlbmRlciguLi50KXtyZXR1cm4gdC5maW5kKHI9PiFPdHQocikpPz9sMX11cGRhdGUodCxyKXtsZXQgaT10aGlzLl8kQ2J0LGE9aS5sZW5ndGg7dGhpcy5fJENidD1yO2xldCBuPXRoaXMuXyRDSyxvPXRoaXMuXyRDWDt0aGlzLmlzQ29ubmVjdGVkfHx0aGlzLmRpc2Nvbm5lY3RlZCgpO2ZvcihsZXQgcz0wO3M8ci5sZW5ndGgmJiEocz50aGlzLl8kQ3d0KTtzKyspe2xldCBsPXJbc107aWYoIU90dChsKSlyZXR1cm4gdGhpcy5fJEN3dD1zLGw7czxhJiZsPT09aVtzXXx8KHRoaXMuXyRDd3Q9UnR0LGE9MCxQcm9taXNlLnJlc29sdmUobCkudGhlbihhc3luYyBjPT57Zm9yKDtvLmdldCgpOylhd2FpdCBvLmdldCgpO2xldCB1PW4uZGVyZWYoKTtpZih1IT09dm9pZCAwKXtsZXQgZD11Ll8kQ2J0LmluZGV4T2YobCk7ZD4tMSYmZDx1Ll8kQ3d0JiYodS5fJEN3dD1kLHUuc2V0VmFsdWUoYykpfX0pKX1yZXR1cm4gbDF9ZGlzY29ubmVjdGVkKCl7dGhpcy5fJENLLmRpc2Nvbm5lY3QoKSx0aGlzLl8kQ1gucGF1c2UoKX1yZWNvbm5lY3RlZCgpe3RoaXMuXyRDSy5yZWNvbm5lY3QodGhpcyksdGhpcy5fJENYLnJlc3VtZSgpfX0sSWllPW5pKG1BKX0pO3ZhciBIdHQ9cCgoKT0+e0J0dCgpfSk7dmFyIEFwLFdVcixxdHQ9cCgoKT0+e2MyKCk7aEEoKTskaWUoKTtjYygpO0FwPWNsYXNzIGV4dGVuZHMgR257Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuXyRDSz1uZXcgU2QodGhpcyksdGhpcy5fJENYPW5ldyB6ZH1yZW5kZXIodCxyKXtyZXR1cm4gbDF9dXBkYXRlKHQsW3IsaV0pe2lmKHRoaXMuaXNDb25uZWN0ZWR8fHRoaXMuZGlzY29ubmVjdGVkKCkscj09PXRoaXMuXyRDSilyZXR1cm4gbDE7dGhpcy5fJENKPXI7bGV0IGE9MCx7XyRDSzpuLF8kQ1g6b309dGhpcztyZXR1cm4gRWllKHIsYXN5bmMgcz0+e2Zvcig7by5nZXQoKTspYXdhaXQgby5nZXQoKTtsZXQgbD1uLmRlcmVmKCk7aWYobCE9PXZvaWQgMCl7aWYobC5fJENKIT09cilyZXR1cm4hMTtpIT09dm9pZCAwJiYocz1pKHMsYSkpLGwuY29tbWl0VmFsdWUocyxhKSxhKyt9cmV0dXJuITB9KSxsMX1jb21taXRWYWx1ZSh0LHIpe3RoaXMuc2V0VmFsdWUodCl9ZGlzY29ubmVjdGVkKCl7dGhpcy5fJENLLmRpc2Nvbm5lY3QoKSx0aGlzLl8kQ1gucGF1c2UoKX1yZWNvbm5lY3RlZCgpe3RoaXMuXyRDSy5yZWNvbm5lY3QodGhpcyksdGhpcy5fJENYLnJlc3VtZSgpfX0sV1VyPW5pKEFwKX0pO3ZhciBQaWUsanR0PXAoKCk9PntjYygpO3F0dCgpO0xwKCk7UGllPW5pKGNsYXNzIGV4dGVuZHMgQXB7Y29uc3RydWN0b3IoZSl7aWYoc3VwZXIoZSksZS50eXBlIT09ZWwuQ0hJTEQpdGhyb3cgRXJyb3IoImFzeW5jQXBwZW5kIGNhbiBvbmx5IGJlIHVzZWQgaW4gY2hpbGQgZXhwcmVzc2lvbnMiKX11cGRhdGUoZSx0KXtyZXR1cm4gdGhpcy5fJEN0dD1lLHN1cGVyLnVwZGF0ZShlLHQpfWNvbW1pdFZhbHVlKGUsdCl7dD09PTAmJl9pZSh0aGlzLl8kQ3R0KTtsZXQgcj1kYyh0aGlzLl8kQ3R0KTt5MihyLGUpfX0pfSk7dmFyIFZ0dD1wKCgpPT57anR0KCl9KTt2YXIgTmllLFV0dD1wKCgpPT57YzIoKTtjYygpO0xwKCk7TmllPW5pKGNsYXNzIGV4dGVuZHMgQW97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMua2V5PXgxfXJlbmRlcihlLHQpe3JldHVybiB0aGlzLmtleT1lLHR9dXBkYXRlKGUsW3Qscl0pe3JldHVybiB0IT09dGhpcy5rZXkmJihjZyhlKSx0aGlzLmtleT10KSxyfX0pfSk7dmFyIFd0dD1wKCgpPT57VXR0KCl9KTt2YXIgR3R0LEZpZSxZdHQ9cCgoKT0+e2MyKCk7Y2MoKTtMcCgpO0d0dD0oZSx0LHIpPT57bGV0IGk9bmV3IE1hcDtmb3IobGV0IGE9dDthPD1yO2ErKylpLnNldChlW2FdLGEpO3JldHVybiBpfSxGaWU9bmkoY2xhc3MgZXh0ZW5kcyBBb3tjb25zdHJ1Y3RvcihlKXtpZihzdXBlcihlKSxlLnR5cGUhPT1lbC5DSElMRCl0aHJvdyBFcnJvcigicmVwZWF0KCkgY2FuIG9ubHkgYmUgdXNlZCBpbiB0ZXh0IGV4cHJlc3Npb25zIil9ZHQoZSx0LHIpe2xldCBpO3I9PT12b2lkIDA/cj10OnQhPT12b2lkIDAmJihpPXQpO2xldCBhPVtdLG49W10sbz0wO2ZvcihsZXQgcyBvZiBlKWFbb109aT9pKHMsbyk6byxuW29dPXIocyxvKSxvKys7cmV0dXJue3ZhbHVlczpuLGtleXM6YX19cmVuZGVyKGUsdCxyKXtyZXR1cm4gdGhpcy5kdChlLHQscikudmFsdWVzfXVwZGF0ZShlLFt0LHIsaV0pe2xldCBhPVRpZShlKSx7dmFsdWVzOm4sa2V5czpvfT10aGlzLmR0KHQscixpKTtpZighQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gdGhpcy51dD1vLG47bGV0IHM9dGhpcy51dD8/PVtdLGw9W10sYyx1LGQ9MCxoPWEubGVuZ3RoLTEsZj0wLHg9bi5sZW5ndGgtMTtmb3IoO2Q8PWgmJmY8PXg7KWlmKGFbZF09PT1udWxsKWQrKztlbHNlIGlmKGFbaF09PT1udWxsKWgtLTtlbHNlIGlmKHNbZF09PT1vW2ZdKWxbZl09eTIoYVtkXSxuW2ZdKSxkKyssZisrO2Vsc2UgaWYoc1toXT09PW9beF0pbFt4XT15MihhW2hdLG5beF0pLGgtLSx4LS07ZWxzZSBpZihzW2RdPT09b1t4XSlsW3hdPXkyKGFbZF0sblt4XSksZGMoZSxsW3grMV0sYVtkXSksZCsrLHgtLTtlbHNlIGlmKHNbaF09PT1vW2ZdKWxbZl09eTIoYVtoXSxuW2ZdKSxkYyhlLGFbZF0sYVtoXSksaC0tLGYrKztlbHNlIGlmKGM9PT12b2lkIDAmJihjPUd0dChvLGYseCksdT1HdHQocyxkLGgpKSxjLmhhcyhzW2RdKSlpZihjLmhhcyhzW2hdKSl7bGV0IHY9dS5nZXQob1tmXSksYj12IT09dm9pZCAwP2Fbdl06bnVsbDtpZihiPT09bnVsbCl7bGV0IHk9ZGMoZSxhW2RdKTt5Mih5LG5bZl0pLGxbZl09eX1lbHNlIGxbZl09eTIoYixuW2ZdKSxkYyhlLGFbZF0sYiksYVt2XT1udWxsO2YrK31lbHNlIGRnKGFbaF0pLGgtLTtlbHNlIGRnKGFbZF0pLGQrKztmb3IoO2Y8PXg7KXtsZXQgdj1kYyhlLGxbeCsxXSk7eTIodixuW2ZdKSxsW2YrK109dn1mb3IoO2Q8PWg7KXtsZXQgdj1hW2QrK107diE9PW51bGwmJmRnKHYpfXJldHVybiB0aGlzLnV0PW8sY2coZSxsKSxsMX19KX0pO3ZhciBadHQ9cCgoKT0+e1l0dCgpfSk7dmFyIEVvPXt9O0ZlKEVvLHthc3luY0FwcGVuZDooKT0+UGllLGtleWVkOigpPT5OaWUscmVwZWF0OigpPT5GaWUscmVzb2x2ZTooKT0+JHR0LHJlc29sdmVFeGVjOigpPT5WVXIsc3Vic2NyaWJlOigpPT5VVXIsc3Vic2NyaWJlV2l0aFRlbXBsYXRlOigpPT5OdHQsdW50aWw6KCk9PklpZX0pO3ZhciBYdHQ9cCgoKT0+e0l0dCgpO1B0dCgpO0Z0dCgpO0h0dCgpO1Z0dCgpO1d0dCgpO1p0dCgpfSk7dmFyIG0seGU9cCgoKT0+e2N0dCgpO1NzKCk7aHR0KCk7bXR0KCk7Z3R0KCk7VHR0KCk7S3QoKTtMdHQoKTtYdHQoKTttPWxBLmdldFNpbmdsZXRvbigpfSk7dmFyIEM0LERlLEplPXAoKCk9Pnt4ZSgpO0M0PXtjb2xvcnM6e2xpZ2h0OntiZ1ByaW1hcnk6IiNmZmZmZmYiLGJnU2Vjb25kYXJ5OiIjZmFmYWZhIixiZ1RlcnRpYXJ5OiIjZjRmNGY1Iix0ZXh0UHJpbWFyeToiIzA5MDkwYiIsdGV4dFNlY29uZGFyeToiIzM3NDE1MSIsdGV4dE11dGVkOiIjNzE3MTdhIixib3JkZXJEZWZhdWx0OiIjZTVlN2ViIixib3JkZXJTdWJ0bGU6IiNmNGY0ZjUiLGJvcmRlclN0cm9uZzoiI2QxZDVkYiIsYWNjZW50UHJpbWFyeToiIzNiODJmNiIsYWNjZW50U3VjY2VzczoiIzIyYzU1ZSIsYWNjZW50V2FybmluZzoiI2Y1OWUwYiIsYWNjZW50RXJyb3I6IiNlZjQ0NDQifSxkYXJrOntiZ1ByaW1hcnk6IiMwOTA5MGIiLGJnU2Vjb25kYXJ5OiIjMGEwYTBhIixiZ1RlcnRpYXJ5OiIjMTgxODFiIix0ZXh0UHJpbWFyeToiI2ZhZmFmYSIsdGV4dFNlY29uZGFyeToiI2Q0ZDRkOCIsdGV4dE11dGVkOiIjYTFhMWFhIixib3JkZXJEZWZhdWx0OiIjMjcyNzJhIixib3JkZXJTdWJ0bGU6IiMxYTFhMWEiLGJvcmRlclN0cm9uZzoiIzNmM2Y0NiIsYWNjZW50UHJpbWFyeToiIzNiODJmNiIsYWNjZW50U3VjY2VzczoiIzIyYzU1ZSIsYWNjZW50V2FybmluZzoiI2Y1OWUwYiIsYWNjZW50RXJyb3I6IiNlZjQ0NDQifX0sc3BhY2luZzp7eHM6IjRweCIsc206IjhweCIsbWQ6IjEycHgiLGxnOiIxNnB4Iix4bDoiMjRweCIsIjJ4bCI6IjMycHgiLCIzeGwiOiI0OHB4In0scmFkaXVzOnt4czoiMnB4IixzbToiNHB4IixtZDoiNnB4IixsZzoiOHB4Iix4bDoiMTJweCIsZnVsbDoiOTk5cHgifSxzaGFkb3dzOnt4czoiMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSkiLHNtOiIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpIixtZDoiMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLGxnOiIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkifSx0cmFuc2l0aW9uczp7ZmFzdDoiMC4xcyIsZGVmYXVsdDoiMC4xNXMiLHNsb3c6IjAuMnMiLHNsb3dlcjoiMC4zcyJ9LGNvbnRyb2xIZWlnaHRzOntzbToiMzJweCIsbWQ6IjM2cHgiLGxnOiI0MHB4Iix4bDoiNDhweCJ9fSxEZT1vZWAKICA6aG9zdCB7CiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTcGFjaW5nIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc3BhY2luZy14czogNHB4OwogICAgLS1kZWVzLXNwYWNpbmctc206IDhweDsKICAgIC0tZGVlcy1zcGFjaW5nLW1kOiAxMnB4OwogICAgLS1kZWVzLXNwYWNpbmctbGc6IDE2cHg7CiAgICAtLWRlZXMtc3BhY2luZy14bDogMjRweDsKICAgIC0tZGVlcy1zcGFjaW5nLTJ4bDogMzJweDsKICAgIC0tZGVlcy1zcGFjaW5nLTN4bDogNDhweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBCb3JkZXIgUmFkaXVzIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtcmFkaXVzLXhzOiAycHg7CiAgICAtLWRlZXMtcmFkaXVzLXNtOiA0cHg7CiAgICAtLWRlZXMtcmFkaXVzLW1kOiA2cHg7CiAgICAtLWRlZXMtcmFkaXVzLWxnOiA4cHg7CiAgICAtLWRlZXMtcmFkaXVzLXhsOiAxMnB4OwogICAgLS1kZWVzLXJhZGl1cy1mdWxsOiA5OTlweDsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBTaGFkb3cgRWxldmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtc2hhZG93LXhzOiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgIC0tZGVlcy1zaGFkb3ctc206IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAtLWRlZXMtc2hhZG93LW1kOiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgIC0tZGVlcy1zaGFkb3ctbGc6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKCiAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgKiBUcmFuc2l0aW9uIER1cmF0aW9uIFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtdHJhbnNpdGlvbi1mYXN0OiAwLjFzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDogMC4xNXM7CiAgICAtLWRlZXMtdHJhbnNpdGlvbi1zbG93OiAwLjJzOwogICAgLS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyOiAwLjNzOwoKICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAqIENvbnRyb2wgSGVpZ2h0IFNjYWxlCiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtc206IDMycHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbWQ6IDM2cHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQtbGc6IDQwcHg7CiAgICAtLWRlZXMtY29udHJvbC1oZWlnaHQteGw6IDQ4cHg7CiAgfQpgfSk7dmFyIFF0dD1wKCgpPT57fSk7dmFyIE9pZT1wKCgpPT57dzIoKTt3MigpfSk7dmFyIEp0dD1wKCgpPT57fSk7dmFyIEt0dD1wKCgpPT57fSk7dmFyIGVydD1wKCgpPT57fSk7dmFyIHRydD1wKCgpPT57fSk7dmFyIFJpZT17fTt2YXIgQmllPXAoKCk9PntKdHQoKTtLdHQoKTtlcnQoKTt0cnQoKX0pO3ZhciBycnQ9cCgoKT0+e0JpZSgpO2dBKCl9KTt2YXIgaXJ0PXAoKCk9Pnt3MigpfSk7dmFyIGFydD1wKCgpPT57fSk7dmFyIG5ydD1wKCgpPT57dzIoKX0pO3ZhciBvcnQ9cCgoKT0+e3cyKCl9KTt2YXIgc3J0PXAoKCk9Pnt9KTt2YXIgbHJ0PXAoKCk9Pnt9KTt2YXIgY3J0PXAoKCk9Pnt9KTt2YXIgSGllPXt9O3ZhciBiQT1wKCgpPT57aXJ0KCk7YXJ0KCk7bnJ0KCk7b3J0KCk7c3J0KCk7bHJ0KCk7Y3J0KCl9KTt2YXIgZHJ0PXAoKCk9PntiQSgpO09pZSgpfSk7dmFyIHVydD1wKCgpPT57Z0EoKTtiQSgpfSk7dmFyIHBydD1wKCgpPT57fSk7dmFyIGhydD1wKCgpPT57fSk7dmFyIHFpZT17fTt2YXIgZ0E9cCgoKT0+e1F0dCgpO09pZSgpO3JydCgpO2RydCgpO3VydCgpO3BydCgpO2hydCgpfSk7dmFyIGZydD1wKCgpPT57fSk7dmFyIG1ydD1wKCgpPT57fSk7dmFyIGppZT17fTt2YXIgZ3J0PXAoKCk9PntmcnQoKTttcnQoKX0pO3ZhciBicnQ9cCgoKT0+e30pO3ZhciB2cnQ9cCgoKT0+e30pO3ZhciBWaWU9e307dmFyIHhydD1wKCgpPT57YnJ0KCk7dnJ0KCl9KTt2YXIgVWllPXt9O3ZhciB5cnQ9cCgoKT0+e30pO3ZhciBXaWU9cCgoKT0+e3cyKCl9KTt2YXIgd3J0PXAoKCk9Pnt3MigpfSk7dmFyIE1ydD1wKCgpPT57V2llKCl9KTt2YXIgR2llPXt9O3ZhciBrcnQ9cCgoKT0+e1dpZSgpO3dydCgpO01ydCgpfSk7dmFyIFNydD1wKCgpPT57fSk7dmFyIHpydD1wKCgpPT57fSk7dmFyIFlpZT17fTt2YXIgQ3J0PXAoKCk9PntTcnQoKTt6cnQoKX0pO3ZhciBaaWU9cCgoKT0+e30pO3ZhciBYaWUsVHJ0PXAoKCk9PntaaWUoKTtYaWU9Y2xhc3N7fX0pO3ZhciBfcnQ9cCgoKT0+e30pO3ZhciBMcnQ9cCgoKT0+e30pO3ZhciBBcnQ9cCgoKT0+e30pO3ZhciBEcnQ9cCgoKT0+e30pO3ZhciBFcnQ9cCgoKT0+e30pO3ZhciAkcnQ9cCgoKT0+e30pO3ZhciBJcnQ9cCgoKT0+e30pO3ZhciBQcnQ9cCgoKT0+e30pO3ZhciBOcnQ9cCgoKT0+e30pO3ZhciBGcnQ9cCgoKT0+e30pO3ZhciB2QT17fTtGZSh2QSx7SUNuYW1lRGVzY3JpcHRvcjooKT0+WGllfSk7dmFyIE9ydD1wKCgpPT57WmllKCk7VHJ0KCk7X3J0KCk7THJ0KCk7QXJ0KCk7RHJ0KCk7RXJ0KCk7JHJ0KCk7SXJ0KCk7UHJ0KCk7TnJ0KCk7RnJ0KCl9KTt2YXIgUWllPXAoKCk9Pnt9KTt2YXIgUnJ0PXAoKCk9PntRaWUoKX0pO3ZhciBKaWU9e307dmFyIEJydD1wKCgpPT57UnJ0KCk7UWllKCl9KTt2YXIgS2llPXt9O3ZhciBIcnQ9cCgoKT0+e30pO3ZhciBxcnQ9cCgoKT0+e30pO3ZhciBqcnQ9cCgoKT0+e30pO3ZhciBWcnQ9cCgoKT0+e30pO3ZhciBlYWU9e307dmFyIFVydD1wKCgpPT57cXJ0KCk7anJ0KCk7VnJ0KCl9KTt2YXIgV3J0PXAoKCk9Pnt9KTt2YXIgdGFlPXt9O0ZlKHRhZSx7YnVzaW5lc3M6KCk9PnFpZSxjb2RlOigpPT5qaWUsY29udGFpbmVyOigpPT5WaWUsY29udGVudDooKT0+R2llLGRhdGFiYXNlOigpPT5SaWUsZGVzY3JpcHRvcnM6KCk9PlVpZSxmaW5hbmNlOigpPT5IaWUsZ2VuZXJhbDooKT0+WWllLG5ldHdvcms6KCk9PnZBLHNhYXM6KCk9PkppZSxzdG9yYWdlOigpPT5LaWUsd2Vic2l0ZTooKT0+ZWFlfSk7dmFyIHcyPXAoKCk9PntnQSgpO2dydCgpO3hydCgpO0JpZSgpO3lydCgpO2JBKCk7a3J0KCk7Q3J0KCk7T3J0KCk7QnJ0KCk7SHJ0KCk7VXJ0KCk7V3J0KCl9KTt2YXIgd2k9cCgoKT0+e0VpKCk7dzIoKX0pO3ZhciBHcnQsWXJ0PXAoKCk9Pnt4ZSgpO3dpKCk7TWkoKTtHcnQ9KCk9PkNgCjxzdHlsZT4KICAud2l0aE1hcmdpbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogMjBweDsKICB9CiAgLmRlbW8tY29udGFpbmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiAyMHB4OwogICAgcGFkZGluZzogMjBweDsKICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogIH0KICAuZGVtby1hcmVhIHsKICAgIHBhZGRpbmc6IDQwcHg7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjdXJzb3I6IGNvbnRleHQtbWVudTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsKICB9CiAgLmRlbW8tYXJlYTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDIpOwogIH0KPC9zdHlsZT4KPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkJhc2ljIENvbnRleHQgTWVudSB3aXRoIE5lc3RlZCBTdWJtZW51cyI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke2U9PntTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhlLFt7bmFtZToiRmlsZSIsaWNvbk5hbWU6ImZpbGVUZXh0IixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6Ik5ldyIsaWNvbk5hbWU6ImZpbGVQbHVzIixzaG9ydGN1dDoiQ21kK04iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiTmV3IGZpbGUiKX0se25hbWU6Ik9wZW4iLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK08iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBmaWxlIil9LHtuYW1lOiJTYXZlIixpY29uTmFtZToic2F2ZSIsc2hvcnRjdXQ6IkNtZCtTIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHBvcnQgYXMgUERGIixpY29uTmFtZToiZG93bmxvYWQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRXhwb3J0IFBERiIpfSx7bmFtZToiRXhwb3J0IGFzIEhUTUwiLGljb25OYW1lOiJjb2RlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkV4cG9ydCBIVE1MIil9XX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJlZGl0MyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpfSx7bmFtZToiQ29weSIsaWNvbk5hbWU6ImNvcHkiLHNob3J0Y3V0OiJDbWQrQyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5Iil9LHtuYW1lOiJQYXN0ZSIsaWNvbk5hbWU6ImNsaXBib2FyZCIsc2hvcnRjdXQ6IkNtZCtWIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRmluZCIsaWNvbk5hbWU6InNlYXJjaCIsc2hvcnRjdXQ6IkNtZCtGIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkZpbmQiKX0se25hbWU6IlJlcGxhY2UiLGljb25OYW1lOiJyZXBlYXQiLHNob3J0Y3V0OiJDbWQrSCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBsYWNlIil9XX0se25hbWU6IlZpZXciLGljb25OYW1lOiJleWUiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiWm9vbSBJbiIsaWNvbk5hbWU6Inpvb21JbiIsc2hvcnRjdXQ6IkNtZCsrIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKX0se25hbWU6Ilpvb20gT3V0IixpY29uTmFtZToiem9vbU91dCIsc2hvcnRjdXQ6IkNtZCstIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gb3V0Iil9LHtuYW1lOiJSZXNldCBab29tIixpY29uTmFtZToibWF4aW1pemUyIixzaG9ydGN1dDoiQ21kKzAiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVzZXQgem9vbSIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkZ1bGwgU2NyZWVuIixpY29uTmFtZToibWF4aW1pemUiLHNob3J0Y3V0OiJGMTEiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRnVsbCBzY3JlZW4iKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKX0se25hbWU6IkhlbHAiLGljb25OYW1lOiJoZWxwQ2lyY2xlIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNob3J0Y3V0cyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpfV19XSl9fT4KICAgICAgPGgzPlJpZ2h0LWNsaWNrIGFueXdoZXJlIGluIHRoaXMgYXJlYTwvaDM+CiAgICAgIDxwPkEgY29udGV4dCBtZW51IHdpdGggbmVzdGVkIHN1Ym1lbnVzIHdpbGwgYXBwZWFyPC9wPgogICAgPC9kaXY+CiAgPC9kZWVzLXBhbmVsPgogIDxkZWVzLXBhbmVsIGhlYWRpbmc9IkNvbXBvbmVudC1TcGVjaWZpYyBDb250ZXh0IE1lbnUiPgogICAgPGRlZXMtYnV0dG9uIHN0eWxlPSJtYXJnaW46IDIwcHg7IiBAY29udGV4dG1lbnU9JHtlPT57U3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoZSxbe25hbWU6IkJ1dHRvbiBBY3Rpb25zIixpY29uTmFtZToibW91c2VQb2ludGVyIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkNsaWNrIixpY29uTmFtZToibW91c2UiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ2xpY2sgYWN0aW9uIil9LHtuYW1lOiJEb3VibGUgQ2xpY2siLGljb25OYW1lOiJ6YXAiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRG91YmxlIGNsaWNrIil9LHtuYW1lOiJMb25nIFByZXNzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiTG9uZyBwcmVzcyIpfV19LHtuYW1lOiJCdXR0b24gU3RhdGUiLGljb25OYW1lOiJ0b2dnbGVMZWZ0IixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkVuYWJsZSIsaWNvbk5hbWU6ImNoZWNrQ2lyY2xlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkVuYWJsZSIpfSx7bmFtZToiRGlzYWJsZSIsaWNvbk5hbWU6InhDaXJjbGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRGlzYWJsZSIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNob3ciLGljb25OYW1lOiJleWUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2hvdyIpfSx7bmFtZToiSGlkZSIsaWNvbk5hbWU6ImV5ZU9mZiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJIaWRlIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJEaXNhYmxlZCBBY3Rpb24iLGljb25OYW1lOiJiYW4iLGRpc2FibGVkOiEwLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiVGhpcyBzaG91bGQgbm90IHJ1biIpfSx7bmFtZToiUHJvcGVydGllcyIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkJ1dHRvbiBwcm9wZXJ0aWVzIil9XSl9fT5SaWdodC1jbGljayBvbiB0aGlzIGJ1dHRvbjwvZGVlcy1idXR0b24+CiAgPC9kZWVzLXBhbmVsPgoKICA8ZGVlcy1wYW5lbCBoZWFkaW5nPSJBZHZhbmNlZCBDb250ZXh0IE1lbnUgRXhhbXBsZSI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLWFyZWEiIEBjb250ZXh0bWVudT0ke2U9PntTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhlLFt7bmFtZToiRm9ybWF0IixpY29uTmFtZToidHlwZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJCb2xkIixpY29uTmFtZToiYm9sZCIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkJvbGQiKX0se25hbWU6Ikl0YWxpYyIsaWNvbk5hbWU6Iml0YWxpYyIsc2hvcnRjdXQ6IkNtZCtJIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkl0YWxpYyIpfSx7bmFtZToiVW5kZXJsaW5lIixpY29uTmFtZToidW5kZXJsaW5lIixzaG9ydGN1dDoiQ21kK1UiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiVW5kZXJsaW5lIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiRm9udCBTaXplIixpY29uTmFtZToidHlwZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJGb250IHNpemUgbWVudSIpfSx7bmFtZToiRm9udCBDb2xvciIsaWNvbk5hbWU6InBhbGV0dGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRm9udCBjb2xvciBtZW51Iil9XX0se25hbWU6IlRyYW5zZm9ybSIsaWNvbk5hbWU6InNodWZmbGUiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiVG8gVXBwZXJjYXNlIixpY29uTmFtZToiYXJyb3dVcCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJVcHBlcmNhc2UiKX0se25hbWU6IlRvIExvd2VyY2FzZSIsaWNvbk5hbWU6ImFycm93RG93biIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJMb3dlcmNhc2UiKX0se25hbWU6IkNhcGl0YWxpemUiLGljb25OYW1lOiJ0eXBlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNhcGl0YWxpemUiKX1dfSx7ZGl2aWRlcjohMH0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6InRyYXNoMiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJEZWxldGUiKX1dKX19PgogICAgICA8aDM+QWR2YW5jZWQgTmVzdGVkIE1lbnUgRXhhbXBsZTwvaDM+CiAgICAgIDxwPlRoaXMgc2hvd3MgZGVlcGx5IG5lc3RlZCBzdWJtZW51cyBhbmQgdmFyaW91cyBmb3JtYXR0aW5nIG9wdGlvbnM8L3A+CiAgICA8L2Rpdj4KICA8L2RlZXMtcGFuZWw+CiAgCiAgPGRlZXMtcGFuZWwgaGVhZGluZz0iU3RhdGljIENvbnRleHQgTWVudSAoQWx3YXlzIFZpc2libGUpIj4KICAgIDxkZWVzLWNvbnRleHRtZW51CiAgICAgIGNsYXNzPSJ3aXRoTWFyZ2luIgogICAgICAubWVudUl0ZW1zPSR7W3tuYW1lOiJQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6Ik5ldyBQcm9qZWN0IixpY29uTmFtZToiZm9sZGVyUGx1cyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtOIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBwcm9qZWN0Iil9LHtuYW1lOiJPcGVuIFByb2plY3QiLGljb25OYW1lOiJmb2xkZXJPcGVuIixzaG9ydGN1dDoiQ21kK1NoaWZ0K08iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBwcm9qZWN0Iil9LHtkaXZpZGVyOiEwfSx7bmFtZToiUmVjZW50IFByb2plY3RzIixpY29uTmFtZToiY2xvY2siLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiUHJvamVjdCBBbHBoYSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIEFscGhhIil9LHtuYW1lOiJQcm9qZWN0IEJldGEiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBCZXRhIil9LHtuYW1lOiJQcm9qZWN0IEdhbW1hIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gR2FtbWEiKX1dfV19LHtuYW1lOiJUb29scyIsaWNvbk5hbWU6InRvb2wiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiVGVybWluYWwiLGljb25OYW1lOiJ0ZXJtaW5hbCIsc2hvcnRjdXQ6IkNtZCtUIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRlcm1pbmFsIil9LHtuYW1lOiJDb25zb2xlIixpY29uTmFtZToibW9uaXRvciIsc2hvcnRjdXQ6IkNtZCtLIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNvbnNvbGUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJFeHRlbnNpb25zIixpY29uTmFtZToicGFja2FnZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJFeHRlbnNpb25zIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJQcmVmZXJlbmNlcyIsaWNvbk5hbWU6InNsaWRlcnMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUHJlZmVyZW5jZXMiKX1dfQogICAgPjwvZGVlcy1jb250ZXh0bWVudT4KICA8L2RlZXMtcGFuZWw+CjwvZGl2PgpgfSk7dmFyIHBnLHVjLCRvLHBjPXAoKCk9Pnt4ZSgpO3hvKCk7cGc9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSx1Yz1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sJG89KCgpPT57bGV0IGU9W3llKCJkZWVzLXdpbmRvd2xheWVyIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB3PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ZlKCldLGw9W2ZlKCldLGQ9W2ZlKCldLHg9W2ooe3R5cGU6Qm9vbGVhbn0pXSxwZyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJvcHRpb25zImluIGssZ2V0Oms9Pmsub3B0aW9ucyxzZXQ6KGssTyk9PntrLm9wdGlvbnM9T319LG1ldGFkYXRhOnd9LG8scykscGcodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJiYWNrZHJvcFpJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImJhY2tkcm9wWkluZGV4ImluIGssZ2V0Oms9PmsuYmFja2Ryb3BaSW5kZXgsc2V0OihrLE8pPT57ay5iYWNrZHJvcFpJbmRleD1PfX0sbWV0YWRhdGE6d30sYyx1KSxwZyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnRaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJjb250ZW50WkluZGV4ImluIGssZ2V0Oms9PmsuY29udGVudFpJbmRleCxzZXQ6KGssTyk9PntrLmNvbnRlbnRaSW5kZXg9T319LG1ldGFkYXRhOnd9LGgsZikscGcodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idmlzaWJsZSJpbiBrLGdldDprPT5rLnZpc2libGUsc2V0OihrLE8pPT57ay52aXNpYmxlPU99fSxtZXRhZGF0YTp3fSx2LGIpLHBnKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnd9LG51bGwscikseT1pPXQudmFsdWUsdyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp3fSl9c3RhdGljIGRlbW89KCk9PkNgPGRlZXMtd2luZG93bGF5ZXI+PC9kZWVzLXdpbmRvd2xheWVyPmA7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3codyl7bGV0IGs9a3QuRG9tVG9vbHMuZ2V0R2xvYmFsRG9tVG9vbHNTeW5jKCksTz1uZXcgeTtyZXR1cm4gTy5vcHRpb25zPXsuLi5PLm9wdGlvbnMsLi4ud30sZG9jdW1lbnQuYm9keS5hcHBlbmQoTyksYXdhaXQgay5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLE8uc2hvdygpLE99I2U9dWModGhpcyxvLHtibHVyOiExfSk7Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgb3B0aW9ucyh3KXt0aGlzLiNlPXd9I3Q9KHVjKHRoaXMscyksdWModGhpcyxjLDFlMykpO2dldCBiYWNrZHJvcFpJbmRleCgpe3JldHVybiB0aGlzLiN0fXNldCBiYWNrZHJvcFpJbmRleCh3KXt0aGlzLiN0PXd9I3I9KHVjKHRoaXMsdSksdWModGhpcyxoLDEwMDEpKTtnZXQgY29udGVudFpJbmRleCgpe3JldHVybiB0aGlzLiNyfXNldCBjb250ZW50WkluZGV4KHcpe3RoaXMuI3I9d30jaT0odWModGhpcyxmKSx1Yyh0aGlzLHYsITEpKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCB2aXNpYmxlKHcpe3RoaXMuI2k9d31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdWModGhpcyxiKSxrdC5lbGVtZW50QmFzaWMuc2V0dXAoKX1yZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgJHtrdC5lbGVtZW50QmFzaWMuc3R5bGVzfQogICAgICA8c3R5bGU+CiAgICAgICAgLndpbmRvd092ZXJsYXkgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygxKSAke3RoaXMub3B0aW9ucy5ibHVyPyJibHVyKDBweCkiOiIifTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmJhY2tkcm9wWkluZGV4fTsKICAgICAgICB9CiAgICAgICAgLnNsb3RDb250ZW50IHsKICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgei1pbmRleDogJHt0aGlzLmNvbnRlbnRaSW5kZXh9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zbG90Q29udGVudCA+ICogewogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC52aXNpYmxlIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYnJpZ2h0bmVzcygwLjkpICR7dGhpcy5vcHRpb25zLmJsdXI/ImJsdXIoMnB4KSI6IiJ9OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgQGNsaWNrPSR7dGhpcy5kaXNwYXRjaENsaWNrZWR9IGNsYXNzPSJ3aW5kb3dPdmVybGF5ICR7dGhpcy52aXNpYmxlPyJ2aXNpYmxlIjpudWxsfSI+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGVudCI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7c2V0VGltZW91dCgoKT0+e3RoaXMudmlzaWJsZT0hMH0sMTAwKX1kaXNwYXRjaENsaWNrZWQoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGlja2VkIikpfXRvZ2dsZVZpc2liaWxpdHkoKXt0aGlzLnZpc2libGU9IXRoaXMudmlzaWJsZX1nZXRDb250ZW50WkluZGV4KCl7cmV0dXJuIHRoaXMuY29udGVudFpJbmRleH1hc3luYyBzaG93KCl7bGV0IHc9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5iYWNrZHJvcFpJbmRleD1Lci5nZXROZXh0WkluZGV4KCksdGhpcy5jb250ZW50WkluZGV4PUtyLmdldE5leHRaSW5kZXgoKSxLci5yZWdpc3Rlcih0aGlzLHRoaXMuYmFja2Ryb3BaSW5kZXgpLGF3YWl0IHcuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnZpc2libGU9ITB9YXN5bmMgaGlkZSgpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMudmlzaWJsZT0hMX1hc3luYyBkZXN0cm95KCl7bGV0IHc9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7YXdhaXQgdGhpcy5oaWRlKCksYXdhaXQgdy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksS3IudW5yZWdpc3Rlcih0aGlzKSx0aGlzLnJlbW92ZSgpfXN0YXRpY3t1YyhpLHIpfX07cmV0dXJuIHk9aX0pKCl9KTtmdW5jdGlvbiByYWUoZSx0KXsodD09bnVsbHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIHI9MCxpPUFycmF5KHQpO3I8dDtyKyspaVtyXT1lW3JdO3JldHVybiBpfWZ1bmN0aW9uIFlVcihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIFpVcihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiByYWUoZSl9ZnVuY3Rpb24gWFVyKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gWnJ0KGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBpPXRbcl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxRcnQoaS5rZXkpLGkpfX1mdW5jdGlvbiBRVXIoZSx0LHIpe3JldHVybiB0JiZacnQoZS5wcm90b3R5cGUsdCksciYmWnJ0KGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZX1mdW5jdGlvbiB4QShlLHQpe3ZhciByPXR5cGVvZiBTeW1ib2w8InUiJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighcil7aWYoQXJyYXkuaXNBcnJheShlKXx8KHI9aWFlKGUpKXx8dCYmZSYmdHlwZW9mIGUubGVuZ3RoPT0ibnVtYmVyIil7ciYmKGU9cik7dmFyIGk9MCxhPWZ1bmN0aW9uKCl7fTtyZXR1cm57czphLG46ZnVuY3Rpb24oKXtyZXR1cm4gaT49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbaSsrXX19LGU6ZnVuY3Rpb24obCl7dGhyb3cgbH0sZjphfX10aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX12YXIgbixvPSEwLHM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtyPXIuY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBsPXIubmV4dCgpO3JldHVybiBvPWwuZG9uZSxsfSxlOmZ1bmN0aW9uKGwpe3M9ITAsbj1sfSxmOmZ1bmN0aW9uKCl7dHJ5e298fHIucmV0dXJuPT1udWxsfHxyLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBufX19fWZ1bmN0aW9uICR0KGUsdCxyKXtyZXR1cm4odD1RcnQodCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1yLGV9ZnVuY3Rpb24gSlVyKGUsdCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiImJnQhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHQmJnlBKGUsdCl9ZnVuY3Rpb24gS1VyKGUpe2lmKHR5cGVvZiBTeW1ib2w8InUiJiZlW1N5bWJvbC5pdGVyYXRvcl0hPW51bGx8fGVbIkBAaXRlcmF0b3IiXSE9bnVsbClyZXR1cm4gQXJyYXkuZnJvbShlKX1mdW5jdGlvbiBlV3IoZSx0KXt2YXIgcj1lPT1udWxsP251bGw6dHlwZW9mIFN5bWJvbDwidSImJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKHIhPW51bGwpe3ZhciBpLGEsbixvLHM9W10sbD0hMCxjPSExO3RyeXtpZihuPShyPXIuY2FsbChlKSkubmV4dCx0PT09MCl7aWYoT2JqZWN0KHIpIT09cilyZXR1cm47bD0hMX1lbHNlIGZvcig7IShsPShpPW4uY2FsbChyKSkuZG9uZSkmJihzLnB1c2goaS52YWx1ZSkscy5sZW5ndGghPT10KTtsPSEwKTt9Y2F0Y2godSl7Yz0hMCxhPXV9ZmluYWxseXt0cnl7aWYoIWwmJnIucmV0dXJuIT1udWxsJiYobz1yLnJldHVybigpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgYX19cmV0dXJuIHN9fWZ1bmN0aW9uIHRXcigpe3Rocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiByV3IoKXt0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS4KSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLmApfWZ1bmN0aW9uIFhydChlLHQpe3ZhciByPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKGk9aS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxhKS5lbnVtZXJhYmxlfSkpLHIucHVzaC5hcHBseShyLGkpfXJldHVybiByfWZ1bmN0aW9uIFZlKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciByPWFyZ3VtZW50c1t0XSE9bnVsbD9hcmd1bWVudHNbdF06e307dCUyP1hydChPYmplY3QociksITApLmZvckVhY2goZnVuY3Rpb24oaSl7JHQoZSxpLHJbaV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6WHJ0KE9iamVjdChyKSkuZm9yRWFjaChmdW5jdGlvbihpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxpLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixpKSl9KX1yZXR1cm4gZX1mdW5jdGlvbiB5QShlLHQpe3JldHVybiB5QT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihyLGkpe3JldHVybiByLl9fcHJvdG9fXz1pLHJ9LHlBKGUsdCl9ZnVuY3Rpb24gd0EoZSx0KXtyZXR1cm4gWVVyKGUpfHxlV3IoZSx0KXx8aWFlKGUsdCl8fHRXcigpfWZ1bmN0aW9uIE0yKGUpe3JldHVybiBaVXIoZSl8fEtVcihlKXx8aWFlKGUpfHxyV3IoKX1mdW5jdGlvbiBpV3IoZSx0KXtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fCFlKXJldHVybiBlO3ZhciByPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZihyIT09dm9pZCAwKXt2YXIgaT1yLmNhbGwoZSx0fHwiZGVmYXVsdCIpO2lmKHR5cGVvZiBpIT0ib2JqZWN0IilyZXR1cm4gaTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybih0PT09InN0cmluZyI/U3RyaW5nOk51bWJlcikoZSl9ZnVuY3Rpb24gUXJ0KGUpe3ZhciB0PWlXcihlLCJzdHJpbmciKTtyZXR1cm4gdHlwZW9mIHQ9PSJzeW1ib2wiP3Q6dCsiIn1mdW5jdGlvbiBNQShlKXsiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2YiO3JldHVybiBNQT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0eXBlb2YgU3ltYm9sLml0ZXJhdG9yPT0ic3ltYm9sIj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sTUEoZSl9ZnVuY3Rpb24gaWFlKGUsdCl7aWYoZSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiByYWUoZSx0KTt2YXIgcj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiByPT09Ik9iamVjdCImJmUuY29uc3RydWN0b3ImJihyPWUuY29uc3RydWN0b3IubmFtZSkscj09PSJNYXAifHxyPT09IlNldCI/QXJyYXkuZnJvbShlKTpyPT09IkFyZ3VtZW50cyJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP3JhZShlLHQpOnZvaWQgMH19ZnVuY3Rpb24gRWEoKXtFYT1mdW5jdGlvbihhLG4pe3JldHVybiBuZXcgcihhLHZvaWQgMCxuKX07dmFyIGU9UmVnRXhwLnByb3RvdHlwZSx0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHIoYSxuLG8pe3ZhciBzPVJlZ0V4cChhLG4pO3JldHVybiB0LnNldChzLG98fHQuZ2V0KGEpKSx5QShzLHIucHJvdG90eXBlKX1mdW5jdGlvbiBpKGEsbil7dmFyIG89dC5nZXQobik7cmV0dXJuIE9iamVjdC5rZXlzKG8pLnJlZHVjZShmdW5jdGlvbihzLGwpe3ZhciBjPW9bbF07aWYodHlwZW9mIGM9PSJudW1iZXIiKXNbbF09YVtjXTtlbHNle2Zvcih2YXIgdT0wO2FbY1t1XV09PT12b2lkIDAmJnUrMTxjLmxlbmd0aDspdSsrO3NbbF09YVtjW3VdXX1yZXR1cm4gc30sT2JqZWN0LmNyZWF0ZShudWxsKSl9cmV0dXJuIEpVcihyLFJlZ0V4cCksci5wcm90b3R5cGUuZXhlYz1mdW5jdGlvbihhKXt2YXIgbj1lLmV4ZWMuY2FsbCh0aGlzLGEpO2lmKG4pe24uZ3JvdXBzPWkobix0aGlzKTt2YXIgbz1uLmluZGljZXM7byYmKG8uZ3JvdXBzPWkobyx0aGlzKSl9cmV0dXJuIG59LHIucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXT1mdW5jdGlvbihhLG4pe2lmKHR5cGVvZiBuPT0ic3RyaW5nIil7dmFyIG89dC5nZXQodGhpcyk7cmV0dXJuIGVbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxhLG4ucmVwbGFjZSgvXCQ8KFtePl0rKSg+fCQpL2csZnVuY3Rpb24obCxjLHUpe2lmKHU9PT0iIilyZXR1cm4gbDt2YXIgZD1vW2NdO3JldHVybiBBcnJheS5pc0FycmF5KGQpPyIkIitkLmpvaW4oIiQiKTp0eXBlb2YgZD09Im51bWJlciI/IiQiK2Q6IiJ9KSl9aWYodHlwZW9mIG49PSJmdW5jdGlvbiIpe3ZhciBzPXRoaXM7cmV0dXJuIGVbU3ltYm9sLnJlcGxhY2VdLmNhbGwodGhpcyxhLGZ1bmN0aW9uKCl7dmFyIGw9YXJndW1lbnRzO3JldHVybiB0eXBlb2YgbFtsLmxlbmd0aC0xXSE9Im9iamVjdCImJihsPVtdLnNsaWNlLmNhbGwobCkpLnB1c2goaShsLHMpKSxuLmFwcGx5KHRoaXMsbCl9KX1yZXR1cm4gZVtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLGEsbil9LEVhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBmZyhlKXtyZXR1cm4gbmV3IFByb3h5KGUse2dldDpmdW5jdGlvbihyLGkpe3JldHVybiBpIGluIHI/cltpXTpyW0ppXX19KX1mdW5jdGlvbiBVR3IoZSl7dmFyIHQ9dTEucXVlcnlTZWxlY3Rvcigic2NyaXB0WyIrZSsiXSIpO2lmKHQpcmV0dXJuIHQuZ2V0QXR0cmlidXRlKGUpfWZ1bmN0aW9uIFdHcihlKXtyZXR1cm4gZT09PSIiPyEwOmU9PT0iZmFsc2UiPyExOmU9PT0idHJ1ZSI/ITA6ZX1mdW5jdGlvbiBHR3IoZSl7cmV0dXJuIGdnLnB1c2goZSksZnVuY3Rpb24oKXtnZy5zcGxpY2UoZ2cuaW5kZXhPZihlKSwxKX19ZnVuY3Rpb24gWUdyKGUpe2lmKCEoIWV8fCFoYykpe3ZhciB0PXUxLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpLHQuaW5uZXJIVE1MPWU7Zm9yKHZhciByPXUxLmhlYWQuY2hpbGROb2RlcyxpPW51bGwsYT1yLmxlbmd0aC0xO2E+LTE7YS0tKXt2YXIgbj1yW2FdLG89KG4udGFnTmFtZXx8IiIpLnRvVXBwZXJDYXNlKCk7WyJTVFlMRSIsIkxJTksiXS5pbmRleE9mKG8pPi0xJiYoaT1uKX1yZXR1cm4gdTEuaGVhZC5pbnNlcnRCZWZvcmUodCxpKSxlfX1mdW5jdGlvbiBIMXQoKXtmb3IodmFyIGU9MTIsdD0iIjtlLS0gPjA7KXQrPVpHcltNYXRoLnJhbmRvbSgpKjYyfDBdO3JldHVybiB0fWZ1bmN0aW9uIEVwKGUpe2Zvcih2YXIgdD1bXSxyPShlfHxbXSkubGVuZ3RoPj4+MDtyLS07KXRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBiYWUoZSl7cmV0dXJuIGUuY2xhc3NMaXN0P0VwKGUuY2xhc3NMaXN0KTooZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKS5zcGxpdCgiICIpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pfWZ1bmN0aW9uIHExdChlKXtyZXR1cm4iIi5jb25jYXQoZSkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpfWZ1bmN0aW9uIFhHcihlKXtyZXR1cm4gT2JqZWN0LmtleXMoZXx8e30pLnJlZHVjZShmdW5jdGlvbih0LHIpe3JldHVybiB0KyIiLmNvbmNhdChyLCc9IicpLmNvbmNhdChxMXQoZVtyXSksJyIgJyl9LCIiKS50cmltKCl9ZnVuY3Rpb24gekEoZSl7cmV0dXJuIE9iamVjdC5rZXlzKGV8fHt9KS5yZWR1Y2UoZnVuY3Rpb24odCxyKXtyZXR1cm4gdCsiIi5jb25jYXQociwiOiAiKS5jb25jYXQoZVtyXS50cmltKCksIjsiKX0sIiIpfWZ1bmN0aW9uIHZhZShlKXtyZXR1cm4gZS5zaXplIT09dGwuc2l6ZXx8ZS54IT09dGwueHx8ZS55IT09dGwueXx8ZS5yb3RhdGUhPT10bC5yb3RhdGV8fGUuZmxpcFh8fGUuZmxpcFl9ZnVuY3Rpb24gUUdyKGUpe3ZhciB0PWUudHJhbnNmb3JtLHI9ZS5jb250YWluZXJXaWR0aCxpPWUuaWNvbldpZHRoLGE9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KHIvMiwiIDI1NikiKX0sbj0idHJhbnNsYXRlKCIuY29uY2F0KHQueCozMiwiLCAiKS5jb25jYXQodC55KjMyLCIpICIpLG89InNjYWxlKCIuY29uY2F0KHQuc2l6ZS8xNioodC5mbGlwWD8tMToxKSwiLCAiKS5jb25jYXQodC5zaXplLzE2Kih0LmZsaXBZPy0xOjEpLCIpICIpLHM9InJvdGF0ZSgiLmNvbmNhdCh0LnJvdGF0ZSwiIDAgMCkiKSxsPXt0cmFuc2Zvcm06IiIuY29uY2F0KG4sIiAiKS5jb25jYXQobywiICIpLmNvbmNhdChzKX0sYz17dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIi5jb25jYXQoaS8yKi0xLCIgLTI1NikiKX07cmV0dXJue291dGVyOmEsaW5uZXI6bCxwYXRoOmN9fWZ1bmN0aW9uIEpHcihlKXt2YXIgdD1lLnRyYW5zZm9ybSxyPWUud2lkdGgsaT1yPT09dm9pZCAwP2xhZTpyLGE9ZS5oZWlnaHQsbj1hPT09dm9pZCAwP2xhZTphLG89ZS5zdGFydENlbnRlcmVkLHM9bz09PXZvaWQgMD8hMTpvLGw9IiI7cmV0dXJuIHMmJm4xdD9sKz0idHJhbnNsYXRlKCIuY29uY2F0KHQueC9fNC1pLzIsImVtLCAiKS5jb25jYXQodC55L180LW4vMiwiZW0pICIpOnM/bCs9InRyYW5zbGF0ZShjYWxjKC01MCUgKyAiLmNvbmNhdCh0LngvXzQsImVtKSwgY2FsYygtNTAlICsgIikuY29uY2F0KHQueS9fNCwiZW0pKSAiKTpsKz0idHJhbnNsYXRlKCIuY29uY2F0KHQueC9fNCwiZW0sICIpLmNvbmNhdCh0LnkvXzQsImVtKSAiKSxsKz0ic2NhbGUoIi5jb25jYXQodC5zaXplL180Kih0LmZsaXBYPy0xOjEpLCIsICIpLmNvbmNhdCh0LnNpemUvXzQqKHQuZmxpcFk/LTE6MSksIikgIiksbCs9InJvdGF0ZSgiLmNvbmNhdCh0LnJvdGF0ZSwiZGVnKSAiKSxsfWZ1bmN0aW9uIGoxdCgpe3ZhciBlPUQxdCx0PUUxdCxyPXB0LmNzc1ByZWZpeCxpPXB0LnJlcGxhY2VtZW50Q2xhc3MsYT1LR3I7aWYociE9PWV8fGkhPT10KXt2YXIgbj1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdChlLCJcXC0iKSwiZyIpLG89bmV3IFJlZ0V4cCgiXFwtLSIuY29uY2F0KGUsIlxcLSIpLCJnIikscz1uZXcgUmVnRXhwKCJcXC4iLmNvbmNhdCh0KSwiZyIpO2E9YS5yZXBsYWNlKG4sIi4iLmNvbmNhdChyLCItIikpLnJlcGxhY2UobywiLS0iLmNvbmNhdChyLCItIikpLnJlcGxhY2UocywiLiIuY29uY2F0KGkpKX1yZXR1cm4gYX1mdW5jdGlvbiB4YWUoKXtwdC5hdXRvQWRkQ3NzJiYhVjF0JiYoWUdyKGoxdCgpKSxWMXQ9ITApfWZ1bmN0aW9uIHRZcihlKXtoYyYmKENBP3NldFRpbWVvdXQoZSwwKTpVMXQucHVzaChlKSl9ZnVuY3Rpb24gYmcoZSl7dmFyIHQ9ZS50YWcscj1lLmF0dHJpYnV0ZXMsaT1yPT09dm9pZCAwP3t9OnIsYT1lLmNoaWxkcmVuLG49YT09PXZvaWQgMD9bXTphO3JldHVybiB0eXBlb2YgZT09InN0cmluZyI/cTF0KGUpOiI8Ii5jb25jYXQodCwiICIpLmNvbmNhdChYR3IoaSksIj4iKS5jb25jYXQobi5tYXAoYmcpLmpvaW4oIiIpLCI8LyIpLmNvbmNhdCh0LCI+Iil9ZnVuY3Rpb24gRzF0KGUsdCxyKXtpZihlJiZlW3RdJiZlW3RdW3JdKXJldHVybntwcmVmaXg6dCxpY29uTmFtZTpyLGljb246ZVt0XVtyXX19ZnVuY3Rpb24gWTF0KGUpe3JldHVybiBNMihlKS5sZW5ndGghPT0xP251bGw6ZS5jb2RlUG9pbnRBdCgwKS50b1N0cmluZygxNil9ZnVuY3Rpb24gWjF0KGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5yZWR1Y2UoZnVuY3Rpb24odCxyKXt2YXIgaT1lW3JdLGE9ISFpLmljb247cmV0dXJuIGE/dFtpLmljb25OYW1lXT1pLmljb246dFtyXT1pLHR9LHt9KX1mdW5jdGlvbiB3YWUoZSx0KXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjImJmFyZ3VtZW50c1syXSE9PXZvaWQgMD9hcmd1bWVudHNbMl06e30saT1yLnNraXBIb29rcyxhPWk9PT12b2lkIDA/ITE6aSxuPVoxdCh0KTt0eXBlb2YgazIuaG9va3MuYWRkUGFjaz09ImZ1bmN0aW9uIiYmIWE/azIuaG9va3MuYWRkUGFjayhlLFoxdCh0KSk6azIuc3R5bGVzW2VdPVZlKFZlKHt9LGsyLnN0eWxlc1tlXXx8e30pLG4pLGU9PT0iZmFzIiYmd2FlKCJmYSIsdCl9ZnVuY3Rpb24gbllyKGUpe3JldHVybn5WR3IuaW5kZXhPZihlKX1mdW5jdGlvbiBvWXIoZSx0KXt2YXIgcj10LnNwbGl0KCItIiksaT1yWzBdLGE9ci5zbGljZSgxKS5qb2luKCItIik7cmV0dXJuIGk9PT1lJiZhIT09IiImJiFuWXIoYSk/YTpudWxsfWZ1bmN0aW9uIFNhZShlLHQpe3JldHVybihRMXRbZV18fHt9KVt0XX1mdW5jdGlvbiBzWXIoZSx0KXtyZXR1cm4oSjF0W2VdfHx7fSlbdF19ZnVuY3Rpb24gVGQoZSx0KXtyZXR1cm4odGl0W2VdfHx7fSlbdF19ZnVuY3Rpb24gaWl0KGUpe3JldHVybiBLMXRbZV18fHtwcmVmaXg6bnVsbCxpY29uTmFtZTpudWxsfX1mdW5jdGlvbiBsWXIoZSl7dmFyIHQ9ZWl0W2VdLHI9U2FlKCJmYXMiLGUpO3JldHVybiB0fHwocj97cHJlZml4OiJmYXMiLGljb25OYW1lOnJ9Om51bGwpfHx7cHJlZml4Om51bGwsaWNvbk5hbWU6bnVsbH19ZnVuY3Rpb24gTDQoKXtyZXR1cm4ga2FlfWZ1bmN0aW9uIGNZcihlKXt2YXIgdD1KaSxyPVgxdC5yZWR1Y2UoZnVuY3Rpb24oaSxhKXtyZXR1cm4gaVthXT0iIi5jb25jYXQocHQuY3NzUHJlZml4LCItIikuY29uY2F0KGEpLGl9LHt9KTtyZXR1cm4gejF0LmZvckVhY2goZnVuY3Rpb24oaSl7KGUuaW5jbHVkZXMocltpXSl8fGUuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYVlyW2ldLmluY2x1ZGVzKGEpfSkpJiYodD1pKX0pLHR9ZnVuY3Rpb24gVEEoZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHI9dC5mYW1pbHksaT1yPT09dm9pZCAwP0ppOnIsYT1SR3JbaV1bZV07aWYoaT09PWhnJiYhZSlyZXR1cm4iZmFkIjt2YXIgbj1GMXRbaV1bZV18fEYxdFtpXVthXSxvPWUgaW4gazIuc3R5bGVzP2U6bnVsbCxzPW58fG98fG51bGw7cmV0dXJuIHN9ZnVuY3Rpb24gZFlyKGUpe3ZhciB0PVtdLHI9bnVsbDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBhPW9ZcihwdC5jc3NQcmVmaXgsaSk7YT9yPWE6aSYmdC5wdXNoKGkpfSkse2ljb25OYW1lOnIscmVzdDp0fX1mdW5jdGlvbiBuaXQoZSl7cmV0dXJuIGUuc29ydCgpLmZpbHRlcihmdW5jdGlvbih0LHIsaSl7cmV0dXJuIGkuaW5kZXhPZih0KT09PXJ9KX1mdW5jdGlvbiBfQShlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj10LnNraXBMb29rdXBzLGk9cj09PXZvaWQgMD8hMTpyLGE9bnVsbCxuPW5pdChlLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gb2l0LmluY2x1ZGVzKGYpfSkpLG89bml0KGUuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiFvaXQuaW5jbHVkZXMoZil9KSkscz1uLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gYT1mLCFzMXQuaW5jbHVkZXMoZil9KSxsPXdBKHMsMSksYz1sWzBdLHU9Yz09PXZvaWQgMD9udWxsOmMsZD1jWXIobiksaD1WZShWZSh7fSxkWXIobykpLHt9LHtwcmVmaXg6VEEodSx7ZmFtaWx5OmR9KX0pO3JldHVybiBWZShWZShWZSh7fSxoKSxmWXIoe3ZhbHVlczplLGZhbWlseTpkLHN0eWxlczp2Zyxjb25maWc6cHQsY2Fub25pY2FsOmgsZ2l2ZW5QcmVmaXg6YX0pKSx1WXIoaSxhLGgpKX1mdW5jdGlvbiB1WXIoZSx0LHIpe3ZhciBpPXIucHJlZml4LGE9ci5pY29uTmFtZTtpZihlfHwhaXx8IWEpcmV0dXJue3ByZWZpeDppLGljb25OYW1lOmF9O3ZhciBuPXQ9PT0iZmEiP2lpdChhKTp7fSxvPVRkKGksYSk7cmV0dXJuIGE9bi5pY29uTmFtZXx8b3x8YSxpPW4ucHJlZml4fHxpLGk9PT0iZmFyIiYmIXZnLmZhciYmdmcuZmFzJiYhcHQuYXV0b0ZldGNoU3ZnJiYoaT0iZmFzIikse3ByZWZpeDppLGljb25OYW1lOmF9fWZ1bmN0aW9uIGZZcihlKXt2YXIgdD1lLnZhbHVlcyxyPWUuZmFtaWx5LGk9ZS5jYW5vbmljYWwsYT1lLmdpdmVuUHJlZml4LG49YT09PXZvaWQgMD8iIjphLG89ZS5zdHlsZXMscz1vPT09dm9pZCAwP3t9Om8sbD1lLmNvbmZpZyxjPWw9PT12b2lkIDA/e306bCx1PXI9PT1oZyxkPXQuaW5jbHVkZXMoImZhLWR1b3RvbmUiKXx8dC5pbmNsdWRlcygiZmFkIiksaD1jLmZhbWlseURlZmF1bHQ9PT0iZHVvdG9uZSIsZj1pLnByZWZpeD09PSJmYWQifHxpLnByZWZpeD09PSJmYS1kdW90b25lIjtpZighdSYmKGR8fGh8fGYpJiYoaS5wcmVmaXg9ImZhZCIpLCh0LmluY2x1ZGVzKCJmYS1icmFuZHMiKXx8dC5pbmNsdWRlcygiZmFiIikpJiYoaS5wcmVmaXg9ImZhYiIpLCFpLnByZWZpeCYmcFlyLmluY2x1ZGVzKHIpKXt2YXIgeD1PYmplY3Qua2V5cyhzKS5maW5kKGZ1bmN0aW9uKGIpe3JldHVybiBoWXIuaW5jbHVkZXMoYil9KTtpZih4fHxjLmF1dG9GZXRjaFN2Zyl7dmFyIHY9TFdyLmdldChyKS5kZWZhdWx0U2hvcnRQcmVmaXhJZDtpLnByZWZpeD12LGkuaWNvbk5hbWU9VGQoaS5wcmVmaXgsaS5pY29uTmFtZSl8fGkuaWNvbk5hbWV9fXJldHVybihpLnByZWZpeD09PSJmYSJ8fG49PT0iZmEiKSYmKGkucHJlZml4PUw0KCl8fCJmYXMiKSxpfWZ1bmN0aW9uIGJZcihlLHQpe3ZhciByPXQubWl4b3V0c1RvO3JldHVybiBzaXQ9ZSwkcD17fSxPYmplY3Qua2V5cyhJcCkuZm9yRWFjaChmdW5jdGlvbihpKXtnWXIuaW5kZXhPZihpKT09PS0xJiZkZWxldGUgSXBbaV19KSxzaXQuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYT1pLm1peG91dD9pLm1peG91dCgpOnt9O2lmKE9iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24obyl7dHlwZW9mIGFbb109PSJmdW5jdGlvbiImJihyW29dPWFbb10pLE1BKGFbb10pPT09Im9iamVjdCImJk9iamVjdC5rZXlzKGFbb10pLmZvckVhY2goZnVuY3Rpb24ocyl7cltvXXx8KHJbb109e30pLHJbb11bc109YVtvXVtzXX0pfSksaS5ob29rcyl7dmFyIG49aS5ob29rcygpO09iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24obyl7JHBbb118fCgkcFtvXT1bXSksJHBbb10ucHVzaChuW29dKX0pfWkucHJvdmlkZXMmJmkucHJvdmlkZXMoSXApfSkscn1mdW5jdGlvbiB6YWUoZSx0KXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxpPW5ldyBBcnJheShyPjI/ci0yOjApLGE9MjthPHI7YSsrKWlbYS0yXT1hcmd1bWVudHNbYV07dmFyIG49JHBbZV18fFtdO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24obyl7dD1vLmFwcGx5KG51bGwsW3RdLmNvbmNhdChpKSl9KSx0fWZ1bmN0aW9uIF9kKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KHQ+MT90LTE6MCksaT0xO2k8dDtpKyspcltpLTFdPWFyZ3VtZW50c1tpXTt2YXIgYT0kcFtlXXx8W107YS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uYXBwbHkobnVsbCxyKX0pfWZ1bmN0aW9uIEE0KCl7dmFyIGU9YXJndW1lbnRzWzBdLHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBJcFtlXT9JcFtlXS5hcHBseShudWxsLHQpOnZvaWQgMH1mdW5jdGlvbiBDYWUoZSl7ZS5wcmVmaXg9PT0iZmEiJiYoZS5wcmVmaXg9ImZhcyIpO3ZhciB0PWUuaWNvbk5hbWUscj1lLnByZWZpeHx8TDQoKTtpZih0KXJldHVybiB0PVRkKHIsdCl8fHQsRzF0KGxpdC5kZWZpbml0aW9ucyxyLHQpfHxHMXQoazIuc3R5bGVzLHIsdCl9ZnVuY3Rpb24gTEEoZSx0KXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImFic3RyYWN0Iix7Z2V0OnR9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiaHRtbCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlLmFic3RyYWN0Lm1hcChmdW5jdGlvbihpKXtyZXR1cm4gYmcoaSl9KX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibm9kZSIse2dldDpmdW5jdGlvbigpe2lmKGhjKXt2YXIgaT11MS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gaS5pbm5lckhUTUw9ZS5odG1sLGkuY2hpbGRyZW59fX0pLGV9ZnVuY3Rpb24gTVlyKGUpe3ZhciB0PWUuY2hpbGRyZW4scj1lLm1haW4saT1lLm1hc2ssYT1lLmF0dHJpYnV0ZXMsbj1lLnN0eWxlcyxvPWUudHJhbnNmb3JtO2lmKHZhZShvKSYmci5mb3VuZCYmIWkuZm91bmQpe3ZhciBzPXIud2lkdGgsbD1yLmhlaWdodCxjPXt4OnMvbC8yLHk6LjV9O2Euc3R5bGU9ekEoVmUoVmUoe30sbikse30seyJ0cmFuc2Zvcm0tb3JpZ2luIjoiIi5jb25jYXQoYy54K28ueC8xNiwiZW0gIikuY29uY2F0KGMueStvLnkvMTYsImVtIil9KSl9cmV0dXJuW3t0YWc6InN2ZyIsYXR0cmlidXRlczphLGNoaWxkcmVuOnR9XX1mdW5jdGlvbiBrWXIoZSl7dmFyIHQ9ZS5wcmVmaXgscj1lLmljb25OYW1lLGk9ZS5jaGlsZHJlbixhPWUuYXR0cmlidXRlcyxuPWUuc3ltYm9sLG89bj09PSEwPyIiLmNvbmNhdCh0LCItIikuY29uY2F0KHB0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChyKTpuO3JldHVyblt7dGFnOiJzdmciLGF0dHJpYnV0ZXM6e3N0eWxlOiJkaXNwbGF5OiBub25lOyJ9LGNoaWxkcmVuOlt7dGFnOiJzeW1ib2wiLGF0dHJpYnV0ZXM6VmUoVmUoe30sYSkse30se2lkOm99KSxjaGlsZHJlbjppfV19XX1mdW5jdGlvbiBTWXIoZSl7dmFyIHQ9WyJhcmlhLWxhYmVsIiwiYXJpYS1sYWJlbGxlZGJ5IiwidGl0bGUiLCJyb2xlIl07cmV0dXJuIHQuc29tZShmdW5jdGlvbihyKXtyZXR1cm4gciBpbiBlfSl9ZnVuY3Rpb24gVGFlKGUpe3ZhciB0PWUuaWNvbnMscj10Lm1haW4saT10Lm1hc2ssYT1lLnByZWZpeCxuPWUuaWNvbk5hbWUsbz1lLnRyYW5zZm9ybSxzPWUuc3ltYm9sLGw9ZS5tYXNrSWQsYz1lLmV4dHJhLHU9ZS53YXRjaGFibGUsZD11PT09dm9pZCAwPyExOnUsaD1pLmZvdW5kP2k6cixmPWgud2lkdGgseD1oLmhlaWdodCx2PVtwdC5yZXBsYWNlbWVudENsYXNzLG4/IiIuY29uY2F0KHB0LmNzc1ByZWZpeCwiLSIpLmNvbmNhdChuKToiIl0uZmlsdGVyKGZ1bmN0aW9uKHope3JldHVybiBjLmNsYXNzZXMuaW5kZXhPZih6KT09PS0xfSkuZmlsdGVyKGZ1bmN0aW9uKHope3JldHVybiB6IT09IiJ8fCEhen0pLmNvbmNhdChjLmNsYXNzZXMpLmpvaW4oIiAiKSxiPXtjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOlZlKFZlKHt9LGMuYXR0cmlidXRlcykse30seyJkYXRhLXByZWZpeCI6YSwiZGF0YS1pY29uIjpuLGNsYXNzOnYscm9sZTpjLmF0dHJpYnV0ZXMucm9sZXx8ImltZyIsdmlld0JveDoiMCAwICIuY29uY2F0KGYsIiAiKS5jb25jYXQoeCl9KX07IVNZcihjLmF0dHJpYnV0ZXMpJiYhYy5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdJiYoYi5hdHRyaWJ1dGVzWyJhcmlhLWhpZGRlbiJdPSJ0cnVlIiksZCYmKGIuYXR0cmlidXRlc1tDZF09IiIpO3ZhciB5PVZlKFZlKHt9LGIpLHt9LHtwcmVmaXg6YSxpY29uTmFtZTpuLG1haW46cixtYXNrOmksbWFza0lkOmwsdHJhbnNmb3JtOm8sc3ltYm9sOnMsc3R5bGVzOlZlKHt9LGMuc3R5bGVzKX0pLHc9aS5mb3VuZCYmci5mb3VuZD9BNCgiZ2VuZXJhdGVBYnN0cmFjdE1hc2siLHkpfHx7Y2hpbGRyZW46W10sYXR0cmlidXRlczp7fX06QTQoImdlbmVyYXRlQWJzdHJhY3RJY29uIix5KXx8e2NoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319LGs9dy5jaGlsZHJlbixPPXcuYXR0cmlidXRlcztyZXR1cm4geS5jaGlsZHJlbj1rLHkuYXR0cmlidXRlcz1PLHM/a1lyKHkpOk1Zcih5KX1mdW5jdGlvbiBjaXQoZSl7dmFyIHQ9ZS5jb250ZW50LHI9ZS53aWR0aCxpPWUuaGVpZ2h0LGE9ZS50cmFuc2Zvcm0sbj1lLmV4dHJhLG89ZS53YXRjaGFibGUscz1vPT09dm9pZCAwPyExOm8sbD1WZShWZSh7fSxuLmF0dHJpYnV0ZXMpLHt9LHtjbGFzczpuLmNsYXNzZXMuam9pbigiICIpfSk7cyYmKGxbQ2RdPSIiKTt2YXIgYz1WZSh7fSxuLnN0eWxlcyk7dmFlKGEpJiYoYy50cmFuc2Zvcm09SkdyKHt0cmFuc2Zvcm06YSxzdGFydENlbnRlcmVkOiEwLHdpZHRoOnIsaGVpZ2h0Oml9KSxjWyItd2Via2l0LXRyYW5zZm9ybSJdPWMudHJhbnNmb3JtKTt2YXIgdT16QShjKTt1Lmxlbmd0aD4wJiYobC5zdHlsZT11KTt2YXIgZD1bXTtyZXR1cm4gZC5wdXNoKHt0YWc6InNwYW4iLGF0dHJpYnV0ZXM6bCxjaGlsZHJlbjpbdF19KSxkfWZ1bmN0aW9uIHpZcihlKXt2YXIgdD1lLmNvbnRlbnQscj1lLmV4dHJhLGk9VmUoVmUoe30sci5hdHRyaWJ1dGVzKSx7fSx7Y2xhc3M6ci5jbGFzc2VzLmpvaW4oIiAiKX0pLGE9ekEoci5zdHlsZXMpO2EubGVuZ3RoPjAmJihpLnN0eWxlPWEpO3ZhciBuPVtdO3JldHVybiBuLnB1c2goe3RhZzoic3BhbiIsYXR0cmlidXRlczppLGNoaWxkcmVuOlt0XX0pLG59ZnVuY3Rpb24gTGFlKGUpe3ZhciB0PWVbMF0scj1lWzFdLGk9ZS5zbGljZSg0KSxhPXdBKGksMSksbj1hWzBdLG89bnVsbDtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9vPXt0YWc6ImciLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChwdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoZ2FlLkdST1VQKX0sY2hpbGRyZW46W3t0YWc6InBhdGgiLGF0dHJpYnV0ZXM6e2NsYXNzOiIiLmNvbmNhdChwdC5jc3NQcmVmaXgsIi0iKS5jb25jYXQoZ2FlLlNFQ09OREFSWSksZmlsbDoiY3VycmVudENvbG9yIixkOm5bMF19fSx7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOntjbGFzczoiIi5jb25jYXQocHQuY3NzUHJlZml4LCItIikuY29uY2F0KGdhZS5QUklNQVJZKSxmaWxsOiJjdXJyZW50Q29sb3IiLGQ6blsxXX19XX06bz17dGFnOiJwYXRoIixhdHRyaWJ1dGVzOntmaWxsOiJjdXJyZW50Q29sb3IiLGQ6bn19LHtmb3VuZDohMCx3aWR0aDp0LGhlaWdodDpyLGljb246b319ZnVuY3Rpb24gVFlyKGUsdCl7IVAxdCYmIXB0LnNob3dNaXNzaW5nSWNvbnMmJmUmJmNvbnNvbGUuZXJyb3IoJ0ljb24gd2l0aCBuYW1lICInLmNvbmNhdChlLCciIGFuZCBwcmVmaXggIicpLmNvbmNhdCh0LCciIGlzIG1pc3NpbmcuJykpfWZ1bmN0aW9uIEFhZShlLHQpe3ZhciByPXQ7cmV0dXJuIHQ9PT0iZmEiJiZwdC5zdHlsZURlZmF1bHQhPT1udWxsJiYodD1MNCgpKSxuZXcgUHJvbWlzZShmdW5jdGlvbihpLGEpe2lmKHI9PT0iZmEiKXt2YXIgbj1paXQoZSl8fHt9O2U9bi5pY29uTmFtZXx8ZSx0PW4ucHJlZml4fHx0fWlmKGUmJnQmJl9hZVt0XSYmX2FlW3RdW2VdKXt2YXIgbz1fYWVbdF1bZV07cmV0dXJuIGkoTGFlKG8pKX1UWXIoZSx0KSxpKFZlKFZlKHt9LENZcikse30se2ljb246cHQuc2hvd01pc3NpbmdJY29ucyYmZT9BNCgibWlzc2luZ0ljb25BYnN0cmFjdCIpfHx7fTp7fX0pKX0pfWZ1bmN0aW9uIHBpdChlKXt2YXIgdD1lLmdldEF0dHJpYnV0ZT9lLmdldEF0dHJpYnV0ZShDZCk6bnVsbDtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmcifWZ1bmN0aW9uIExZcihlKXt2YXIgdD1lLmdldEF0dHJpYnV0ZT9lLmdldEF0dHJpYnV0ZShkYWUpOm51bGwscj1lLmdldEF0dHJpYnV0ZT9lLmdldEF0dHJpYnV0ZSh1YWUpOm51bGw7cmV0dXJuIHQmJnJ9ZnVuY3Rpb24gQVlyKGUpe3JldHVybiBlJiZlLmNsYXNzTGlzdCYmZS5jbGFzc0xpc3QuY29udGFpbnMmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKHB0LnJlcGxhY2VtZW50Q2xhc3MpfWZ1bmN0aW9uIERZcigpe2lmKHB0LmF1dG9SZXBsYWNlU3ZnPT09ITApcmV0dXJuIERBLnJlcGxhY2U7dmFyIGU9REFbcHQuYXV0b1JlcGxhY2VTdmddO3JldHVybiBlfHxEQS5yZXBsYWNlfWZ1bmN0aW9uIEVZcihlKXtyZXR1cm4gdTEuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZSl9ZnVuY3Rpb24gJFlyKGUpe3JldHVybiB1MS5jcmVhdGVFbGVtZW50KGUpfWZ1bmN0aW9uIGhpdChlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30scj10LmNlRm4saT1yPT09dm9pZCAwP2UudGFnPT09InN2ZyI/RVlyOiRZcjpyO2lmKHR5cGVvZiBlPT0ic3RyaW5nIilyZXR1cm4gdTEuY3JlYXRlVGV4dE5vZGUoZSk7dmFyIGE9aShlLnRhZyk7T2JqZWN0LmtleXMoZS5hdHRyaWJ1dGVzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihvKXthLnNldEF0dHJpYnV0ZShvLGUuYXR0cmlidXRlc1tvXSl9KTt2YXIgbj1lLmNoaWxkcmVufHxbXTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKG8pe2EuYXBwZW5kQ2hpbGQoaGl0KG8se2NlRm46aX0pKX0pLGF9ZnVuY3Rpb24gSVlyKGUpe3ZhciB0PSIgIi5jb25jYXQoZS5vdXRlckhUTUwsIiAiKTtyZXR1cm4gdD0iIi5jb25jYXQodCwiRm9udCBBd2Vzb21lIGZvbnRhd2Vzb21lLmNvbSAiKSx0fWZ1bmN0aW9uIGZpdChlKXtlKCl9ZnVuY3Rpb24gbWl0KGUsdCl7dmFyIHI9dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpBQTtpZihlLmxlbmd0aD09PTApcigpO2Vsc2V7dmFyIGk9Zml0O3B0Lm11dGF0ZUFwcHJvYWNoPT09RkdyJiYoaT1UNC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGZpdCksaShmdW5jdGlvbigpe3ZhciBhPURZcigpLG49RWFlLmJlZ2luKCJtdXRhdGUiKTtlLm1hcChhKSxuKCkscigpfSl9fWZ1bmN0aW9uIGdpdCgpeyRhZT0hMH1mdW5jdGlvbiBJYWUoKXskYWU9ITF9ZnVuY3Rpb24gYml0KGUpe2lmKGExdCYmcHQub2JzZXJ2ZU11dGF0aW9ucyl7dmFyIHQ9ZS50cmVlQ2FsbGJhY2sscj10PT09dm9pZCAwP0FBOnQsaT1lLm5vZGVDYWxsYmFjayxhPWk9PT12b2lkIDA/QUE6aSxuPWUucHNldWRvRWxlbWVudHNDYWxsYmFjayxvPW49PT12b2lkIDA/QUE6bixzPWUub2JzZXJ2ZU11dGF0aW9uc1Jvb3QsbD1zPT09dm9pZCAwP3UxOnM7RUE9bmV3IGExdChmdW5jdGlvbihjKXtpZighJGFlKXt2YXIgdT1MNCgpO0VwKGMpLmZvckVhY2goZnVuY3Rpb24oZCl7aWYoZC50eXBlPT09ImNoaWxkTGlzdCImJmQuYWRkZWROb2Rlcy5sZW5ndGg+MCYmIXBpdChkLmFkZGVkTm9kZXNbMF0pJiYocHQuc2VhcmNoUHNldWRvRWxlbWVudHMmJm8oZC50YXJnZXQpLHIoZC50YXJnZXQpKSxkLnR5cGU9PT0iYXR0cmlidXRlcyImJmQudGFyZ2V0LnBhcmVudE5vZGUmJnB0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZvKFtkLnRhcmdldF0sITApLGQudHlwZT09PSJhdHRyaWJ1dGVzIiYmcGl0KGQudGFyZ2V0KSYmfmpHci5pbmRleE9mKGQuYXR0cmlidXRlTmFtZSkpaWYoZC5hdHRyaWJ1dGVOYW1lPT09ImNsYXNzIiYmTFlyKGQudGFyZ2V0KSl7dmFyIGg9X0EoYmFlKGQudGFyZ2V0KSksZj1oLnByZWZpeCx4PWguaWNvbk5hbWU7ZC50YXJnZXQuc2V0QXR0cmlidXRlKGRhZSxmfHx1KSx4JiZkLnRhcmdldC5zZXRBdHRyaWJ1dGUodWFlLHgpfWVsc2UgQVlyKGQudGFyZ2V0KSYmYShkLnRhcmdldCl9KX19KSxoYyYmRUEub2JzZXJ2ZShsLHtjaGlsZExpc3Q6ITAsYXR0cmlidXRlczohMCxjaGFyYWN0ZXJEYXRhOiEwLHN1YnRyZWU6ITB9KX19ZnVuY3Rpb24gUFlyKCl7RUEmJkVBLmRpc2Nvbm5lY3QoKX1mdW5jdGlvbiBOWXIoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoInN0eWxlIikscj1bXTtyZXR1cm4gdCYmKHI9dC5zcGxpdCgiOyIpLnJlZHVjZShmdW5jdGlvbihpLGEpe3ZhciBuPWEuc3BsaXQoIjoiKSxvPW5bMF0scz1uLnNsaWNlKDEpO3JldHVybiBvJiZzLmxlbmd0aD4wJiYoaVtvXT1zLmpvaW4oIjoiKS50cmltKCkpLGl9LHt9KSkscn1mdW5jdGlvbiBGWXIoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJlZml4Iikscj1lLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIiksaT1lLmlubmVyVGV4dCE9PXZvaWQgMD9lLmlubmVyVGV4dC50cmltKCk6IiIsYT1fQShiYWUoZSkpO3JldHVybiBhLnByZWZpeHx8KGEucHJlZml4PUw0KCkpLHQmJnImJihhLnByZWZpeD10LGEuaWNvbk5hbWU9ciksYS5pY29uTmFtZSYmYS5wcmVmaXh8fChhLnByZWZpeCYmaS5sZW5ndGg+MCYmKGEuaWNvbk5hbWU9c1lyKGEucHJlZml4LGUuaW5uZXJUZXh0KXx8U2FlKGEucHJlZml4LFkxdChlLmlubmVyVGV4dCkpKSwhYS5pY29uTmFtZSYmcHQuYXV0b0ZldGNoU3ZnJiZlLmZpcnN0Q2hpbGQmJmUuZmlyc3RDaGlsZC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiYoYS5pY29uTmFtZT1lLmZpcnN0Q2hpbGQuZGF0YSkpLGF9ZnVuY3Rpb24gT1lyKGUpe3ZhciB0PUVwKGUuYXR0cmlidXRlcykucmVkdWNlKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIHIubmFtZSE9PSJjbGFzcyImJnIubmFtZSE9PSJzdHlsZSImJihyW2kubmFtZV09aS52YWx1ZSkscn0se30pO3JldHVybiB0fWZ1bmN0aW9uIFJZcigpe3JldHVybntpY29uTmFtZTpudWxsLHByZWZpeDpudWxsLHRyYW5zZm9ybTp0bCxzeW1ib2w6ITEsbWFzazp7aWNvbk5hbWU6bnVsbCxwcmVmaXg6bnVsbCxyZXN0OltdfSxtYXNrSWQ6bnVsbCxleHRyYTp7Y2xhc3NlczpbXSxzdHlsZXM6e30sYXR0cmlidXRlczp7fX19fWZ1bmN0aW9uIHZpdChlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e3N0eWxlUGFyc2VyOiEwfSxyPUZZcihlKSxpPXIuaWNvbk5hbWUsYT1yLnByZWZpeCxuPXIucmVzdCxvPU9ZcihlKSxzPXphZSgicGFyc2VOb2RlQXR0cmlidXRlcyIse30sZSksbD10LnN0eWxlUGFyc2VyP05ZcihlKTpbXTtyZXR1cm4gVmUoe2ljb25OYW1lOmkscHJlZml4OmEsdHJhbnNmb3JtOnRsLG1hc2s6e2ljb25OYW1lOm51bGwscHJlZml4Om51bGwscmVzdDpbXX0sbWFza0lkOm51bGwsc3ltYm9sOiExLGV4dHJhOntjbGFzc2VzOm4sc3R5bGVzOmwsYXR0cmlidXRlczpvfX0scyl9ZnVuY3Rpb24geGl0KGUpe3ZhciB0PXB0LmF1dG9SZXBsYWNlU3ZnPT09Im5lc3QiP3ZpdChlLHtzdHlsZVBhcnNlcjohMX0pOnZpdChlKTtyZXR1cm5+dC5leHRyYS5jbGFzc2VzLmluZGV4T2YoTzF0KT9BNCgiZ2VuZXJhdGVMYXllcnNUZXh0IixlLHQpOkE0KCJnZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb24iLGUsdCl9ZnVuY3Rpb24gSFlyKCl7cmV0dXJuW10uY29uY2F0KE0yKEMxdCksTTIoTDF0KSl9ZnVuY3Rpb24geWl0KGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTpudWxsO2lmKCFoYylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHI9dTEuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdCxpPWZ1bmN0aW9uKGQpe3JldHVybiByLmFkZCgiIi5jb25jYXQoJDF0LCItIikuY29uY2F0KGQpKX0sYT1mdW5jdGlvbihkKXtyZXR1cm4gci5yZW1vdmUoIiIuY29uY2F0KCQxdCwiLSIpLmNvbmNhdChkKSl9LG49cHQuYXV0b0ZldGNoU3ZnP0hZcigpOnMxdC5jb25jYXQoT2JqZWN0LmtleXMoQllyKSk7bi5pbmNsdWRlcygiZmEiKXx8bi5wdXNoKCJmYSIpO3ZhciBvPVsiLiIuY29uY2F0KE8xdCwiOm5vdChbIikuY29uY2F0KENkLCJdKSIpXS5jb25jYXQobi5tYXAoZnVuY3Rpb24odSl7cmV0dXJuIi4iLmNvbmNhdCh1LCI6bm90KFsiKS5jb25jYXQoQ2QsIl0pIil9KSkuam9pbigiLCAiKTtpZihvLmxlbmd0aD09PTApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBzPVtdO3RyeXtzPUVwKGUucXVlcnlTZWxlY3RvckFsbChvKSl9Y2F0Y2h7fWlmKHMubGVuZ3RoPjApaSgicGVuZGluZyIpLGEoImNvbXBsZXRlIik7ZWxzZSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGw9RWFlLmJlZ2luKCJvblRyZWUiKSxjPXMucmVkdWNlKGZ1bmN0aW9uKHUsZCl7dHJ5e3ZhciBoPXhpdChkKTtoJiZ1LnB1c2goaCl9Y2F0Y2goZil7UDF0fHxmLm5hbWU9PT0iTWlzc2luZ0ljb24iJiZjb25zb2xlLmVycm9yKGYpfXJldHVybiB1fSxbXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHUsZCl7UHJvbWlzZS5hbGwoYykudGhlbihmdW5jdGlvbihoKXttaXQoaCxmdW5jdGlvbigpe2koImFjdGl2ZSIpLGkoImNvbXBsZXRlIiksYSgicGVuZGluZyIpLHR5cGVvZiB0PT0iZnVuY3Rpb24iJiZ0KCksbCgpLHUoKX0pfSkuY2F0Y2goZnVuY3Rpb24oaCl7bCgpLGQoaCl9KX0pfWZ1bmN0aW9uIHFZcihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06bnVsbDt4aXQoZSkudGhlbihmdW5jdGlvbihyKXtyJiZtaXQoW3JdLHQpfSl9ZnVuY3Rpb24gallyKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30saT0odHx8e30pLmljb24/dDpDYWUodHx8e30pLGE9ci5tYXNrO3JldHVybiBhJiYoYT0oYXx8e30pLmljb24/YTpDYWUoYXx8e30pKSxlKGksVmUoVmUoe30scikse30se21hc2s6YX0pKX19ZnVuY3Rpb24gWFlyKGUpe3ZhciB0PWUucmVwbGFjZSh3aXQsIiIpO3JldHVybiBZMXQoTTIodClbMF18fCIiKX1mdW5jdGlvbiBRWXIoZSl7dmFyIHQ9ZS5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LWZlYXR1cmUtc2V0dGluZ3MiKS5pbmNsdWRlcygic3MwMSIpLHI9ZS5nZXRQcm9wZXJ0eVZhbHVlKCJjb250ZW50IiksaT1yLnJlcGxhY2Uod2l0LCIiKSxhPWkuY29kZVBvaW50QXQoMCksbj1hPj1NaXRbMF0mJmE8PU1pdFsxXSxvPWkubGVuZ3RoPT09Mj9pWzBdPT09aVsxXTohMTtyZXR1cm4gbnx8b3x8dH1mdW5jdGlvbiBKWXIoZSx0KXt2YXIgcj1lLnJlcGxhY2UoL15bJyJdfFsnIl0kL2csIiIpLnRvTG93ZXJDYXNlKCksaT1wYXJzZUludCh0KSxhPWlzTmFOKGkpPyJub3JtYWwiOmk7cmV0dXJuKFBhZVtyXXx8e30pW2FdfHxaWXJbcl19ZnVuY3Rpb24gU2l0KGUsdCl7dmFyIHI9IiIuY29uY2F0KE5HcikuY29uY2F0KHQucmVwbGFjZSgiOiIsIi0iKSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGksYSl7aWYoZS5nZXRBdHRyaWJ1dGUocikhPT1udWxsKXJldHVybiBpKCk7dmFyIG49RXAoZS5jaGlsZHJlbiksbz1uLmZpbHRlcihmdW5jdGlvbihNKXtyZXR1cm4gTS5nZXRBdHRyaWJ1dGUoY2FlKT09PXR9KVswXSxzPVQ0LmdldENvbXB1dGVkU3R5bGUoZSx0KSxsPXMuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1mYW1pbHkiKSxjPWwubWF0Y2goSEdyKSx1PXMuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC13ZWlnaHQiKSxkPXMuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpO2lmKG8mJiFjKXJldHVybiBlLnJlbW92ZUNoaWxkKG8pLGkoKTtpZihjJiZkIT09Im5vbmUiJiZkIT09IiIpe3ZhciBoPXMuZ2V0UHJvcGVydHlWYWx1ZSgiY29udGVudCIpLGY9SllyKGwsdSkseD1YWXIoaCksdj1jWzBdLnN0YXJ0c1dpdGgoIkZvbnRBd2Vzb21lIiksYj1RWXIocykseT1TYWUoZix4KSx3PXk7aWYodil7dmFyIGs9bFlyKHgpO2suaWNvbk5hbWUmJmsucHJlZml4JiYoeT1rLmljb25OYW1lLGY9ay5wcmVmaXgpfWlmKHkmJiFiJiYoIW98fG8uZ2V0QXR0cmlidXRlKGRhZSkhPT1mfHxvLmdldEF0dHJpYnV0ZSh1YWUpIT09dykpe2Uuc2V0QXR0cmlidXRlKHIsdyksbyYmZS5yZW1vdmVDaGlsZChvKTt2YXIgTz1SWXIoKSx6PU8uZXh0cmE7ei5hdHRyaWJ1dGVzW2NhZV09dCxBYWUoeSxmKS50aGVuKGZ1bmN0aW9uKE0pe3ZhciBGPVRhZShWZShWZSh7fSxPKSx7fSx7aWNvbnM6e21haW46TSxtYXNrOmFpdCgpfSxwcmVmaXg6ZixpY29uTmFtZTp3LGV4dHJhOnosd2F0Y2hhYmxlOiEwfSkpLEQ9dTEuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpO3Q9PT0iOjpiZWZvcmUiP2UuaW5zZXJ0QmVmb3JlKEQsZS5maXJzdENoaWxkKTplLmFwcGVuZENoaWxkKEQpLEQub3V0ZXJIVE1MPUYubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBiZyhOKX0pLmpvaW4oYApgKSxlLnJlbW92ZUF0dHJpYnV0ZShyKSxpKCl9KS5jYXRjaChhKX1lbHNlIGkoKX1lbHNlIGkoKX0pfWZ1bmN0aW9uIEtZcihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoW1NpdChlLCI6OmJlZm9yZSIpLFNpdChlLCI6OmFmdGVyIildKX1mdW5jdGlvbiBlWnIoZSl7cmV0dXJuIGUucGFyZW50Tm9kZSE9PWRvY3VtZW50LmhlYWQmJiF+T0dyLmluZGV4T2YoZS50YWdOYW1lLnRvVXBwZXJDYXNlKCkpJiYhZS5nZXRBdHRyaWJ1dGUoY2FlKSYmKCFlLnBhcmVudE5vZGV8fGUucGFyZW50Tm9kZS50YWdOYW1lIT09InN2ZyIpfWZ1bmN0aW9uIHppdChlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06ITE7aWYoaGMpe3ZhciByO2lmKHQpcj1lO2Vsc2UgaWYocHQuc2VhcmNoUHNldWRvRWxlbWVudHNGdWxsU2NhbilyPWUucXVlcnlTZWxlY3RvckFsbCgiKiIpO2Vsc2V7dmFyIGk9bmV3IFNldCxhPXhBKGRvY3VtZW50LnN0eWxlU2hlZXRzKSxuO3RyeXtmb3IoYS5zKCk7IShuPWEubigpKS5kb25lOyl7dmFyIG89bi52YWx1ZTt0cnl7dmFyIHM9eEEoby5jc3NSdWxlcyksbDt0cnl7Zm9yKHMucygpOyEobD1zLm4oKSkuZG9uZTspe3ZhciBjPWwudmFsdWUsdT1yWnIoYy5zZWxlY3RvclRleHQpLGQ9eEEodSksaDt0cnl7Zm9yKGQucygpOyEoaD1kLm4oKSkuZG9uZTspe3ZhciBmPWgudmFsdWU7aS5hZGQoZil9fWNhdGNoKHYpe2QuZSh2KX1maW5hbGx5e2QuZigpfX19Y2F0Y2godil7cy5lKHYpfWZpbmFsbHl7cy5mKCl9fWNhdGNoKHYpe3B0LnNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MmJmNvbnNvbGUud2FybigiRm9udCBBd2Vzb21lOiBjYW5ub3QgcGFyc2Ugc3R5bGVzaGVldDogIi5jb25jYXQoby5ocmVmLCIgKCIpLmNvbmNhdCh2Lm1lc3NhZ2UsYCkKSWYgaXQgZGVjbGFyZXMgYW55IEZvbnQgQXdlc29tZSBDU1MgcHNldWRvLWVsZW1lbnRzLCB0aGV5IHdpbGwgbm90IGJlIHJlbmRlcmVkIGFzIFNWRyBpY29ucy4gQWRkIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHRvIHRoZSA8bGluaz4sIGVuYWJsZSBzZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuIGZvciBzbG93ZXIgYnV0IG1vcmUgdGhvcm91Z2ggRE9NIHBhcnNpbmcsIG9yIHN1cHByZXNzIHRoaXMgd2FybmluZyBieSBzZXR0aW5nIHNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MgdG8gZmFsc2UuYCkpfX19Y2F0Y2godil7YS5lKHYpfWZpbmFsbHl7YS5mKCl9aWYoIWkuc2l6ZSlyZXR1cm47dmFyIHg9QXJyYXkuZnJvbShpKS5qb2luKCIsICIpO3RyeXtyPWUucXVlcnlTZWxlY3RvckFsbCh4KX1jYXRjaHt9fXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih2LGIpe3ZhciB5PUVwKHIpLmZpbHRlcihlWnIpLm1hcChLWXIpLHc9RWFlLmJlZ2luKCJzZWFyY2hQc2V1ZG9FbGVtZW50cyIpO2dpdCgpLFByb21pc2UuYWxsKHkpLnRoZW4oZnVuY3Rpb24oKXt3KCksSWFlKCksdigpfSkuY2F0Y2goZnVuY3Rpb24oKXt3KCksSWFlKCksYigpfSl9KX19ZnVuY3Rpb24gX2l0KGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTohMDtyZXR1cm4gZS5hdHRyaWJ1dGVzJiYoZS5hdHRyaWJ1dGVzLmZpbGx8fHQpJiYoZS5hdHRyaWJ1dGVzLmZpbGw9ImJsYWNrIiksZX1mdW5jdGlvbiBvWnIoZSl7cmV0dXJuIGUudGFnPT09ImciP2UuY2hpbGRyZW46W2VdfXZhciBKcnQsYWFlLEtydCxlMXQsdDF0LGFXcixyMXQsaTF0LFQ0LHUxLGExdCxrQSxxZWEsaGMsbjF0LG5hZSxuV3Isb1dyLG8xdCxzV3IsczF0LEppLGhnLGwxdCxjMXQsZDF0LHUxdCxwMXQsaDF0LGYxdCxtMXQsZzF0LGIxdCx2MXQseDF0LHkxdCx3MXQsTTF0LGsxdCxTMXQsbFdyLGNXcixkV3IsdVdyLHBXcixoV3IsZldyLG1XcixnV3IsYldyLHZXcix4V3IseVdyLHdXcixNV3Isa1dyLFNXcix6V3IsQ1dyLHoxdCxqZWEsVFdyLF9XcixMV3IsQVdyLEMxdCxUMXQsRFdyLEVXciwkV3IsSVdyLFBXcixWZWEsTldyLEZXcixPV3IsXzF0LG9hZSxTQSxSV3IsQldyLEhXcixxV3IsaldyLFZXcixVV3IsV1dyLEdXcixZV3IsWldyLFhXcixRV3IsSldyLEtXcixlR3IsdEdyLHJHcixpR3IsYUdyLG5HcixvR3Isc0dyLGxHcixjR3IsZEdyLHVHcixwR3IsaEdyLGZHcixtR3IsZ0dyLGJHcix2R3IseEdyLHlHcix3R3IsTUdyLGtHcixVZWEsU0dyLHpHcixDR3IsVEdyLFdlYSxfR3IsTEdyLHNhZSxBR3IsTDF0LERHcixBMXQsRUdyLCRHcixJR3IsUEdyLGZjLGxhZSxEMXQsRTF0LENkLGNhZSxOR3IsZGFlLHVhZSwkMXQsRkdyLE9HcixJMXQsUDF0LE4xdCxSR3IscGFlLEYxdCxoYWUsZmFlLG1hZSxHZWEsQkdyLE8xdCxIR3IscUdyLFllYSxqR3IsZ2FlLFZHcixtZyxCMXQsRHAscHQsZ2csXzQsdGwsWkdyLEtHcixWMXQsZVlyLG1jLGsyLFUxdCxXMXQsQ0EscllyLHlhZSxNYWUsUzIsWmVhLFhlYSx2ZyxpWXIsWDF0LGFZcixrYWUsUTF0LEoxdCxLMXQsZWl0LHRpdCxyaXQsYWl0LG9pdCxwWXIsaFlyLG1ZcixzaXQsJHAsSXAsZ1lyLGxpdCx2WXIseFlyLHlZcixTbix3WXIsX2FlLENZcixkaXQsRGFlLHhnLF9Zcix1aXQsRWFlLEFBLERBLCRhZSxFQSxCWXIsVllyLFVZcixXWXIsR1lyLFlZcix3aXQsTWl0LGtpdCxQYWUsWllyLHRacixyWnIsaVpyLENpdCxhWnIsVGl0LG5acixOYWUsc1pyLGxacixjWnIsZFpyLHVacixwWnIsaFpyLGZacixtWnIsZ1pyLGJacixGYWUsdlpyLHhacix5WnIsUjF0LExpdD1wKCgpPT57SnJ0PWZ1bmN0aW9uKCl7fSxhYWU9e30sS3J0PXt9LGUxdD1udWxsLHQxdD17bWFyazpKcnQsbWVhc3VyZTpKcnR9O3RyeXt0eXBlb2Ygd2luZG93PCJ1IiYmKGFhZT13aW5kb3cpLHR5cGVvZiBkb2N1bWVudDwidSImJihLcnQ9ZG9jdW1lbnQpLHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyPCJ1IiYmKGUxdD1NdXRhdGlvbk9ic2VydmVyKSx0eXBlb2YgcGVyZm9ybWFuY2U8InUiJiYodDF0PXBlcmZvcm1hbmNlKX1jYXRjaHt9YVdyPWFhZS5uYXZpZ2F0b3J8fHt9LHIxdD1hV3IudXNlckFnZW50LGkxdD1yMXQ9PT12b2lkIDA/IiI6cjF0LFQ0PWFhZSx1MT1LcnQsYTF0PWUxdCxrQT10MXQscWVhPSEhVDQuZG9jdW1lbnQsaGM9ISF1MS5kb2N1bWVudEVsZW1lbnQmJiEhdTEuaGVhZCYmdHlwZW9mIHUxLmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiImJnR5cGVvZiB1MS5jcmVhdGVFbGVtZW50PT0iZnVuY3Rpb24iLG4xdD1+aTF0LmluZGV4T2YoIk1TSUUiKXx8fmkxdC5pbmRleE9mKCJUcmlkZW50LyIpLG5Xcj0vZmEoa3xrZHxzfHJ8bHx0fGR8ZHJ8ZGx8ZHR8YnxzbHJ8c2xwcnx3c2J8dGx8bnN8bmRzfGVzfGd0fGpyfGpmcnxqZHJ8dXNifHVmc2J8dWRzYnxjcnxzc3xzcnxzbHxzdHxzZHN8c2RyfHNkbHxzZHQpP1tcLVwgXS8sb1dyPS9Gb250ID9Bd2Vzb21lID8oWzU2NyBdKikoU29saWR8UmVndWxhcnxMaWdodHxUaGlufER1b3RvbmV8QnJhbmRzfEZyZWV8UHJvfFNoYXJwIER1b3RvbmV8U2hhcnB8S2l0fE5vdGRvZyBEdW98Tm90ZG9nfENoaXNlbHxFdGNofEdyYXBoaXRlfFRodW1icHJpbnR8SmVsbHkgRmlsbHxKZWxseSBEdW98SmVsbHl8VXRpbGl0eXxVdGlsaXR5IEZpbGx8VXRpbGl0eSBEdW98U2xhYiBQcmVzc3xTbGFifFdoaXRlYm9hcmQpPy4qL2ksbzF0PXtjbGFzc2ljOntmYToic29saWQiLGZhczoic29saWQiLCJmYS1zb2xpZCI6InNvbGlkIixmYXI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFsOiJsaWdodCIsImZhLWxpZ2h0IjoibGlnaHQiLGZhdDoidGhpbiIsImZhLXRoaW4iOiJ0aGluIixmYWI6ImJyYW5kcyIsImZhLWJyYW5kcyI6ImJyYW5kcyJ9LGR1b3RvbmU6e2ZhOiJzb2xpZCIsZmFkOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLCJmYS1kdW90b25lIjoic29saWQiLGZhZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFkbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYWR0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSxzaGFycDp7ZmE6InNvbGlkIixmYXNzOiJzb2xpZCIsImZhLXNvbGlkIjoic29saWQiLGZhc3I6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbDoibGlnaHQiLCJmYS1saWdodCI6ImxpZ2h0IixmYXN0OiJ0aGluIiwiZmEtdGhpbiI6InRoaW4ifSwic2hhcnAtZHVvdG9uZSI6e2ZhOiJzb2xpZCIsZmFzZHM6InNvbGlkIiwiZmEtc29saWQiOiJzb2xpZCIsZmFzZHI6InJlZ3VsYXIiLCJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzZGw6ImxpZ2h0IiwiZmEtbGlnaHQiOiJsaWdodCIsZmFzZHQ6InRoaW4iLCJmYS10aGluIjoidGhpbiJ9LHNsYWI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHI6InJlZ3VsYXIifSwic2xhYi1wcmVzcyI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFzbHByOiJyZWd1bGFyIn0sdGh1bWJwcmludDp7ImZhLWxpZ2h0IjoibGlnaHQiLGZhdGw6ImxpZ2h0In0sd2hpdGVib2FyZDp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhd3NiOiJzZW1pYm9sZCJ9LG5vdGRvZzp7ImZhLXNvbGlkIjoic29saWQiLGZhbnM6InNvbGlkIn0sIm5vdGRvZy1kdW8iOnsiZmEtc29saWQiOiJzb2xpZCIsZmFuZHM6InNvbGlkIn0sZXRjaDp7ImZhLXNvbGlkIjoic29saWQiLGZhZXM6InNvbGlkIn0sZ3JhcGhpdGU6eyJmYS10aGluIjoidGhpbiIsZmFndDoidGhpbiJ9LGplbGx5OnsiZmEtcmVndWxhciI6InJlZ3VsYXIiLGZhanI6InJlZ3VsYXIifSwiamVsbHktZmlsbCI6eyJmYS1yZWd1bGFyIjoicmVndWxhciIsZmFqZnI6InJlZ3VsYXIifSwiamVsbHktZHVvIjp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWpkcjoicmVndWxhciJ9LGNoaXNlbDp7ImZhLXJlZ3VsYXIiOiJyZWd1bGFyIixmYWNyOiJyZWd1bGFyIn0sdXRpbGl0eTp7ImZhLXNlbWlib2xkIjoic2VtaWJvbGQiLGZhdXNiOiJzZW1pYm9sZCJ9LCJ1dGlsaXR5LWR1byI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVkc2I6InNlbWlib2xkIn0sInV0aWxpdHktZmlsbCI6eyJmYS1zZW1pYm9sZCI6InNlbWlib2xkIixmYXVmc2I6InNlbWlib2xkIn19LHNXcj17R1JPVVA6ImR1b3RvbmUtZ3JvdXAiLFNXQVBfT1BBQ0lUWToic3dhcC1vcGFjaXR5IixQUklNQVJZOiJwcmltYXJ5IixTRUNPTkRBUlk6InNlY29uZGFyeSJ9LHMxdD1bImZhLWNsYXNzaWMiLCJmYS1kdW90b25lIiwiZmEtc2hhcnAiLCJmYS1zaGFycC1kdW90b25lIiwiZmEtdGh1bWJwcmludCIsImZhLXdoaXRlYm9hcmQiLCJmYS1ub3Rkb2ciLCJmYS1ub3Rkb2ctZHVvIiwiZmEtY2hpc2VsIiwiZmEtZXRjaCIsImZhLWdyYXBoaXRlIiwiZmEtamVsbHkiLCJmYS1qZWxseS1maWxsIiwiZmEtamVsbHktZHVvIiwiZmEtc2xhYiIsImZhLXNsYWItcHJlc3MiLCJmYS11dGlsaXR5IiwiZmEtdXRpbGl0eS1kdW8iLCJmYS11dGlsaXR5LWZpbGwiXSxKaT0iY2xhc3NpYyIsaGc9ImR1b3RvbmUiLGwxdD0ic2hhcnAiLGMxdD0ic2hhcnAtZHVvdG9uZSIsZDF0PSJjaGlzZWwiLHUxdD0iZXRjaCIscDF0PSJncmFwaGl0ZSIsaDF0PSJqZWxseSIsZjF0PSJqZWxseS1kdW8iLG0xdD0iamVsbHktZmlsbCIsZzF0PSJub3Rkb2ciLGIxdD0ibm90ZG9nLWR1byIsdjF0PSJzbGFiIix4MXQ9InNsYWItcHJlc3MiLHkxdD0idGh1bWJwcmludCIsdzF0PSJ1dGlsaXR5IixNMXQ9InV0aWxpdHktZHVvIixrMXQ9InV0aWxpdHktZmlsbCIsUzF0PSJ3aGl0ZWJvYXJkIixsV3I9IkNsYXNzaWMiLGNXcj0iRHVvdG9uZSIsZFdyPSJTaGFycCIsdVdyPSJTaGFycCBEdW90b25lIixwV3I9IkNoaXNlbCIsaFdyPSJFdGNoIixmV3I9IkdyYXBoaXRlIixtV3I9IkplbGx5IixnV3I9IkplbGx5IER1byIsYldyPSJKZWxseSBGaWxsIix2V3I9Ik5vdGRvZyIseFdyPSJOb3Rkb2cgRHVvIix5V3I9IlNsYWIiLHdXcj0iU2xhYiBQcmVzcyIsTVdyPSJUaHVtYnByaW50IixrV3I9IlV0aWxpdHkiLFNXcj0iVXRpbGl0eSBEdW8iLHpXcj0iVXRpbGl0eSBGaWxsIixDV3I9IldoaXRlYm9hcmQiLHoxdD1bSmksaGcsbDF0LGMxdCxkMXQsdTF0LHAxdCxoMXQsZjF0LG0xdCxnMXQsYjF0LHYxdCx4MXQseTF0LHcxdCxNMXQsazF0LFMxdF0samVhPShuYWU9e30sJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQobmFlLEppLGxXciksaGcsY1dyKSxsMXQsZFdyKSxjMXQsdVdyKSxkMXQscFdyKSx1MXQsaFdyKSxwMXQsZldyKSxoMXQsbVdyKSxmMXQsZ1dyKSxtMXQsYldyKSwkdCgkdCgkdCgkdCgkdCgkdCgkdCgkdCgkdChuYWUsZzF0LHZXciksYjF0LHhXciksdjF0LHlXcikseDF0LHdXcikseTF0LE1XciksdzF0LGtXciksTTF0LFNXciksazF0LHpXciksUzF0LENXcikpLFRXcj17Y2xhc3NpYzp7OTAwOiJmYXMiLDQwMDoiZmFyIixub3JtYWw6ImZhciIsMzAwOiJmYWwiLDEwMDoiZmF0In0sZHVvdG9uZTp7OTAwOiJmYWQiLDQwMDoiZmFkciIsMzAwOiJmYWRsIiwxMDA6ImZhZHQifSxzaGFycDp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLDMwMDoiZmFzbCIsMTAwOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOns5MDA6ImZhc2RzIiw0MDA6ImZhc2RyIiwzMDA6ImZhc2RsIiwxMDA6ImZhc2R0In0sc2xhYjp7NDAwOiJmYXNsciJ9LCJzbGFiLXByZXNzIjp7NDAwOiJmYXNscHIifSx3aGl0ZWJvYXJkOns2MDA6ImZhd3NiIn0sdGh1bWJwcmludDp7MzAwOiJmYXRsIn0sbm90ZG9nOns5MDA6ImZhbnMifSwibm90ZG9nLWR1byI6ezkwMDoiZmFuZHMifSxldGNoOns5MDA6ImZhZXMifSxncmFwaGl0ZTp7MTAwOiJmYWd0In0sY2hpc2VsOns0MDA6ImZhY3IifSxqZWxseTp7NDAwOiJmYWpyIn0sImplbGx5LWZpbGwiOns0MDA6ImZhamZyIn0sImplbGx5LWR1byI6ezQwMDoiZmFqZHIifSx1dGlsaXR5Ons2MDA6ImZhdXNiIn0sInV0aWxpdHktZHVvIjp7NjAwOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7NjAwOiJmYXVmc2IifX0sX1dyPXsiRm9udCBBd2Vzb21lIDcgRnJlZSI6ezkwMDoiZmFzIiw0MDA6ImZhciJ9LCJGb250IEF3ZXNvbWUgNyBQcm8iOns5MDA6ImZhcyIsNDAwOiJmYXIiLG5vcm1hbDoiZmFyIiwzMDA6ImZhbCIsMTAwOiJmYXQifSwiRm9udCBBd2Vzb21lIDcgQnJhbmRzIjp7NDAwOiJmYWIiLG5vcm1hbDoiZmFiIn0sIkZvbnQgQXdlc29tZSA3IER1b3RvbmUiOns5MDA6ImZhZCIsNDAwOiJmYWRyIixub3JtYWw6ImZhZHIiLDMwMDoiZmFkbCIsMTAwOiJmYWR0In0sIkZvbnQgQXdlc29tZSA3IFNoYXJwIjp7OTAwOiJmYXNzIiw0MDA6ImZhc3IiLG5vcm1hbDoiZmFzciIsMzAwOiJmYXNsIiwxMDA6ImZhc3QifSwiRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSI6ezkwMDoiZmFzZHMiLDQwMDoiZmFzZHIiLG5vcm1hbDoiZmFzZHIiLDMwMDoiZmFzZGwiLDEwMDoiZmFzZHQifSwiRm9udCBBd2Vzb21lIDcgSmVsbHkiOns0MDA6ImZhanIiLG5vcm1hbDoiZmFqciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBGaWxsIjp7NDAwOiJmYWpmciIsbm9ybWFsOiJmYWpmciJ9LCJGb250IEF3ZXNvbWUgNyBKZWxseSBEdW8iOns0MDA6ImZhamRyIixub3JtYWw6ImZhamRyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIiOns0MDA6ImZhc2xyIixub3JtYWw6ImZhc2xyIn0sIkZvbnQgQXdlc29tZSA3IFNsYWIgUHJlc3MiOns0MDA6ImZhc2xwciIsbm9ybWFsOiJmYXNscHIifSwiRm9udCBBd2Vzb21lIDcgVGh1bWJwcmludCI6ezMwMDoiZmF0bCIsbm9ybWFsOiJmYXRsIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyI6ezkwMDoiZmFucyIsbm9ybWFsOiJmYW5zIn0sIkZvbnQgQXdlc29tZSA3IE5vdGRvZyBEdW8iOns5MDA6ImZhbmRzIixub3JtYWw6ImZhbmRzIn0sIkZvbnQgQXdlc29tZSA3IEV0Y2giOns5MDA6ImZhZXMiLG5vcm1hbDoiZmFlcyJ9LCJGb250IEF3ZXNvbWUgNyBHcmFwaGl0ZSI6ezEwMDoiZmFndCIsbm9ybWFsOiJmYWd0In0sIkZvbnQgQXdlc29tZSA3IENoaXNlbCI6ezQwMDoiZmFjciIsbm9ybWFsOiJmYWNyIn0sIkZvbnQgQXdlc29tZSA3IFdoaXRlYm9hcmQiOns2MDA6ImZhd3NiIixub3JtYWw6ImZhd3NiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkiOns2MDA6ImZhdXNiIixub3JtYWw6ImZhdXNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRHVvIjp7NjAwOiJmYXVkc2IiLG5vcm1hbDoiZmF1ZHNiIn0sIkZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbCI6ezYwMDoiZmF1ZnNiIixub3JtYWw6ImZhdWZzYiJ9fSxMV3I9bmV3IE1hcChbWyJjbGFzc2ljIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhcyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiIsImJyYW5kcyJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZHVvdG9uZSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWQiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhc3MiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNoYXJwLWR1b3RvbmUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzZHMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCIsInJlZ3VsYXIiLCJsaWdodCIsInRoaW4iXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbImNoaXNlbCIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYWNyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJldGNoIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhZXMiLGRlZmF1bHRTdHlsZUlkOiJzb2xpZCIsc3R5bGVJZHM6WyJzb2xpZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjkwMH1dLFsiZ3JhcGhpdGUiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFndCIsZGVmYXVsdFN0eWxlSWQ6InRoaW4iLHN0eWxlSWRzOlsidGhpbiJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjEwMH1dLFsiamVsbHkiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFqciIsZGVmYXVsdFN0eWxlSWQ6InJlZ3VsYXIiLHN0eWxlSWRzOlsicmVndWxhciJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjQwMH1dLFsiamVsbHktZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamRyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJqZWxseS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhamZyIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJub3Rkb2ciLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFucyIsZGVmYXVsdFN0eWxlSWQ6InNvbGlkIixzdHlsZUlkczpbInNvbGlkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6OTAwfV0sWyJub3Rkb2ctZHVvIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhbmRzIixkZWZhdWx0U3R5bGVJZDoic29saWQiLHN0eWxlSWRzOlsic29saWQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo5MDB9XSxbInNsYWIiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHIiLGRlZmF1bHRTdHlsZUlkOiJyZWd1bGFyIixzdHlsZUlkczpbInJlZ3VsYXIiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo0MDB9XSxbInNsYWItcHJlc3MiLHtkZWZhdWx0U2hvcnRQcmVmaXhJZDoiZmFzbHByIixkZWZhdWx0U3R5bGVJZDoicmVndWxhciIsc3R5bGVJZHM6WyJyZWd1bGFyIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NDAwfV0sWyJ0aHVtYnByaW50Iix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdGwiLGRlZmF1bHRTdHlsZUlkOiJsaWdodCIsc3R5bGVJZHM6WyJsaWdodCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjMwMH1dLFsidXRpbGl0eSIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ1dGlsaXR5LWR1byIse2RlZmF1bHRTaG9ydFByZWZpeElkOiJmYXVkc2IiLGRlZmF1bHRTdHlsZUlkOiJzZW1pYm9sZCIsc3R5bGVJZHM6WyJzZW1pYm9sZCJdLGZ1dHVyZVN0eWxlSWRzOltdLGRlZmF1bHRGb250V2VpZ2h0OjYwMH1dLFsidXRpbGl0eS1maWxsIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhdWZzYiIsZGVmYXVsdFN0eWxlSWQ6InNlbWlib2xkIixzdHlsZUlkczpbInNlbWlib2xkIl0sZnV0dXJlU3R5bGVJZHM6W10sZGVmYXVsdEZvbnRXZWlnaHQ6NjAwfV0sWyJ3aGl0ZWJvYXJkIix7ZGVmYXVsdFNob3J0UHJlZml4SWQ6ImZhd3NiIixkZWZhdWx0U3R5bGVJZDoic2VtaWJvbGQiLHN0eWxlSWRzOlsic2VtaWJvbGQiXSxmdXR1cmVTdHlsZUlkczpbXSxkZWZhdWx0Rm9udFdlaWdodDo2MDB9XV0pLEFXcj17Y2hpc2VsOntyZWd1bGFyOiJmYWNyIn0sY2xhc3NpYzp7YnJhbmRzOiJmYWIiLGxpZ2h0OiJmYWwiLHJlZ3VsYXI6ImZhciIsc29saWQ6ImZhcyIsdGhpbjoiZmF0In0sZHVvdG9uZTp7bGlnaHQ6ImZhZGwiLHJlZ3VsYXI6ImZhZHIiLHNvbGlkOiJmYWQiLHRoaW46ImZhZHQifSxldGNoOntzb2xpZDoiZmFlcyJ9LGdyYXBoaXRlOnt0aGluOiJmYWd0In0samVsbHk6e3JlZ3VsYXI6ImZhanIifSwiamVsbHktZHVvIjp7cmVndWxhcjoiZmFqZHIifSwiamVsbHktZmlsbCI6e3JlZ3VsYXI6ImZhamZyIn0sbm90ZG9nOntzb2xpZDoiZmFucyJ9LCJub3Rkb2ctZHVvIjp7c29saWQ6ImZhbmRzIn0sc2hhcnA6e2xpZ2h0OiJmYXNsIixyZWd1bGFyOiJmYXNyIixzb2xpZDoiZmFzcyIsdGhpbjoiZmFzdCJ9LCJzaGFycC1kdW90b25lIjp7bGlnaHQ6ImZhc2RsIixyZWd1bGFyOiJmYXNkciIsc29saWQ6ImZhc2RzIix0aGluOiJmYXNkdCJ9LHNsYWI6e3JlZ3VsYXI6ImZhc2xyIn0sInNsYWItcHJlc3MiOntyZWd1bGFyOiJmYXNscHIifSx0aHVtYnByaW50OntsaWdodDoiZmF0bCJ9LHV0aWxpdHk6e3NlbWlib2xkOiJmYXVzYiJ9LCJ1dGlsaXR5LWR1byI6e3NlbWlib2xkOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7c2VtaWJvbGQ6ImZhdWZzYiJ9LHdoaXRlYm9hcmQ6e3NlbWlib2xkOiJmYXdzYiJ9fSxDMXQ9WyJmYWsiLCJmYS1raXQiLCJmYWtkIiwiZmEta2l0LWR1b3RvbmUiXSxUMXQ9e2tpdDp7ZmFrOiJraXQiLCJmYS1raXQiOiJraXQifSwia2l0LWR1b3RvbmUiOntmYWtkOiJraXQtZHVvdG9uZSIsImZhLWtpdC1kdW90b25lIjoia2l0LWR1b3RvbmUifX0sRFdyPVsia2l0Il0sRVdyPSJraXQiLCRXcj0ia2l0LWR1b3RvbmUiLElXcj0iS2l0IixQV3I9IktpdCBEdW90b25lIixWZWE9JHQoJHQoe30sRVdyLElXciksJFdyLFBXciksTldyPXtraXQ6eyJmYS1raXQiOiJmYWsifSwia2l0LWR1b3RvbmUiOnsiZmEta2l0LWR1b3RvbmUiOiJmYWtkIn19LEZXcj17IkZvbnQgQXdlc29tZSBLaXQiOns0MDA6ImZhayIsbm9ybWFsOiJmYWsifSwiRm9udCBBd2Vzb21lIEtpdCBEdW90b25lIjp7NDAwOiJmYWtkIixub3JtYWw6ImZha2QifX0sT1dyPXtraXQ6e2ZhazoiZmEta2l0In0sImtpdC1kdW90b25lIjp7ZmFrZDoiZmEta2l0LWR1b3RvbmUifX0sXzF0PXtraXQ6e2tpdDoiZmFrIn0sImtpdC1kdW90b25lIjp7ImtpdC1kdW90b25lIjoiZmFrZCJ9fSxTQT17R1JPVVA6ImR1b3RvbmUtZ3JvdXAiLFNXQVBfT1BBQ0lUWToic3dhcC1vcGFjaXR5IixQUklNQVJZOiJwcmltYXJ5IixTRUNPTkRBUlk6InNlY29uZGFyeSJ9LFJXcj1bImZhLWNsYXNzaWMiLCJmYS1kdW90b25lIiwiZmEtc2hhcnAiLCJmYS1zaGFycC1kdW90b25lIiwiZmEtdGh1bWJwcmludCIsImZhLXdoaXRlYm9hcmQiLCJmYS1ub3Rkb2ciLCJmYS1ub3Rkb2ctZHVvIiwiZmEtY2hpc2VsIiwiZmEtZXRjaCIsImZhLWdyYXBoaXRlIiwiZmEtamVsbHkiLCJmYS1qZWxseS1maWxsIiwiZmEtamVsbHktZHVvIiwiZmEtc2xhYiIsImZhLXNsYWItcHJlc3MiLCJmYS11dGlsaXR5IiwiZmEtdXRpbGl0eS1kdW8iLCJmYS11dGlsaXR5LWZpbGwiXSxCV3I9ImNsYXNzaWMiLEhXcj0iZHVvdG9uZSIscVdyPSJzaGFycCIsaldyPSJzaGFycC1kdW90b25lIixWV3I9ImNoaXNlbCIsVVdyPSJldGNoIixXV3I9ImdyYXBoaXRlIixHV3I9ImplbGx5IixZV3I9ImplbGx5LWR1byIsWldyPSJqZWxseS1maWxsIixYV3I9Im5vdGRvZyIsUVdyPSJub3Rkb2ctZHVvIixKV3I9InNsYWIiLEtXcj0ic2xhYi1wcmVzcyIsZUdyPSJ0aHVtYnByaW50Iix0R3I9InV0aWxpdHkiLHJHcj0idXRpbGl0eS1kdW8iLGlHcj0idXRpbGl0eS1maWxsIixhR3I9IndoaXRlYm9hcmQiLG5Hcj0iQ2xhc3NpYyIsb0dyPSJEdW90b25lIixzR3I9IlNoYXJwIixsR3I9IlNoYXJwIER1b3RvbmUiLGNHcj0iQ2hpc2VsIixkR3I9IkV0Y2giLHVHcj0iR3JhcGhpdGUiLHBHcj0iSmVsbHkiLGhHcj0iSmVsbHkgRHVvIixmR3I9IkplbGx5IEZpbGwiLG1Hcj0iTm90ZG9nIixnR3I9Ik5vdGRvZyBEdW8iLGJHcj0iU2xhYiIsdkdyPSJTbGFiIFByZXNzIix4R3I9IlRodW1icHJpbnQiLHlHcj0iVXRpbGl0eSIsd0dyPSJVdGlsaXR5IER1byIsTUdyPSJVdGlsaXR5IEZpbGwiLGtHcj0iV2hpdGVib2FyZCIsVWVhPShvYWU9e30sJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQoJHQob2FlLEJXcixuR3IpLEhXcixvR3IpLHFXcixzR3IpLGpXcixsR3IpLFZXcixjR3IpLFVXcixkR3IpLFdXcix1R3IpLEdXcixwR3IpLFlXcixoR3IpLFpXcixmR3IpLCR0KCR0KCR0KCR0KCR0KCR0KCR0KCR0KCR0KG9hZSxYV3IsbUdyKSxRV3IsZ0dyKSxKV3IsYkdyKSxLV3IsdkdyKSxlR3IseEdyKSx0R3IseUdyKSxyR3Isd0dyKSxpR3IsTUdyKSxhR3Isa0dyKSksU0dyPSJraXQiLHpHcj0ia2l0LWR1b3RvbmUiLENHcj0iS2l0IixUR3I9IktpdCBEdW90b25lIixXZWE9JHQoJHQoe30sU0dyLENHciksekdyLFRHciksX0dyPXtjbGFzc2ljOnsiZmEtYnJhbmRzIjoiZmFiIiwiZmEtZHVvdG9uZSI6ImZhZCIsImZhLWxpZ2h0IjoiZmFsIiwiZmEtcmVndWxhciI6ImZhciIsImZhLXNvbGlkIjoiZmFzIiwiZmEtdGhpbiI6ImZhdCJ9LGR1b3RvbmU6eyJmYS1yZWd1bGFyIjoiZmFkciIsImZhLWxpZ2h0IjoiZmFkbCIsImZhLXRoaW4iOiJmYWR0In0sc2hhcnA6eyJmYS1zb2xpZCI6ImZhc3MiLCJmYS1yZWd1bGFyIjoiZmFzciIsImZhLWxpZ2h0IjoiZmFzbCIsImZhLXRoaW4iOiJmYXN0In0sInNoYXJwLWR1b3RvbmUiOnsiZmEtc29saWQiOiJmYXNkcyIsImZhLXJlZ3VsYXIiOiJmYXNkciIsImZhLWxpZ2h0IjoiZmFzZGwiLCJmYS10aGluIjoiZmFzZHQifSxzbGFiOnsiZmEtcmVndWxhciI6ImZhc2xyIn0sInNsYWItcHJlc3MiOnsiZmEtcmVndWxhciI6ImZhc2xwciJ9LHdoaXRlYm9hcmQ6eyJmYS1zZW1pYm9sZCI6ImZhd3NiIn0sdGh1bWJwcmludDp7ImZhLWxpZ2h0IjoiZmF0bCJ9LG5vdGRvZzp7ImZhLXNvbGlkIjoiZmFucyJ9LCJub3Rkb2ctZHVvIjp7ImZhLXNvbGlkIjoiZmFuZHMifSxldGNoOnsiZmEtc29saWQiOiJmYWVzIn0sZ3JhcGhpdGU6eyJmYS10aGluIjoiZmFndCJ9LGplbGx5OnsiZmEtcmVndWxhciI6ImZhanIifSwiamVsbHktZmlsbCI6eyJmYS1yZWd1bGFyIjoiZmFqZnIifSwiamVsbHktZHVvIjp7ImZhLXJlZ3VsYXIiOiJmYWpkciJ9LGNoaXNlbDp7ImZhLXJlZ3VsYXIiOiJmYWNyIn0sdXRpbGl0eTp7ImZhLXNlbWlib2xkIjoiZmF1c2IifSwidXRpbGl0eS1kdW8iOnsiZmEtc2VtaWJvbGQiOiJmYXVkc2IifSwidXRpbGl0eS1maWxsIjp7ImZhLXNlbWlib2xkIjoiZmF1ZnNiIn19LExHcj17Y2xhc3NpYzpbImZhcyIsImZhciIsImZhbCIsImZhdCIsImZhZCJdLGR1b3RvbmU6WyJmYWRyIiwiZmFkbCIsImZhZHQiXSxzaGFycDpbImZhc3MiLCJmYXNyIiwiZmFzbCIsImZhc3QiXSwic2hhcnAtZHVvdG9uZSI6WyJmYXNkcyIsImZhc2RyIiwiZmFzZGwiLCJmYXNkdCJdLHNsYWI6WyJmYXNsciJdLCJzbGFiLXByZXNzIjpbImZhc2xwciJdLHdoaXRlYm9hcmQ6WyJmYXdzYiJdLHRodW1icHJpbnQ6WyJmYXRsIl0sbm90ZG9nOlsiZmFucyJdLCJub3Rkb2ctZHVvIjpbImZhbmRzIl0sZXRjaDpbImZhZXMiXSxncmFwaGl0ZTpbImZhZ3QiXSxqZWxseTpbImZhanIiXSwiamVsbHktZmlsbCI6WyJmYWpmciJdLCJqZWxseS1kdW8iOlsiZmFqZHIiXSxjaGlzZWw6WyJmYWNyIl0sdXRpbGl0eTpbImZhdXNiIl0sInV0aWxpdHktZHVvIjpbImZhdWRzYiJdLCJ1dGlsaXR5LWZpbGwiOlsiZmF1ZnNiIl19LHNhZT17Y2xhc3NpYzp7ZmFiOiJmYS1icmFuZHMiLGZhZDoiZmEtZHVvdG9uZSIsZmFsOiJmYS1saWdodCIsZmFyOiJmYS1yZWd1bGFyIixmYXM6ImZhLXNvbGlkIixmYXQ6ImZhLXRoaW4ifSxkdW90b25lOntmYWRyOiJmYS1yZWd1bGFyIixmYWRsOiJmYS1saWdodCIsZmFkdDoiZmEtdGhpbiJ9LHNoYXJwOntmYXNzOiJmYS1zb2xpZCIsZmFzcjoiZmEtcmVndWxhciIsZmFzbDoiZmEtbGlnaHQiLGZhc3Q6ImZhLXRoaW4ifSwic2hhcnAtZHVvdG9uZSI6e2Zhc2RzOiJmYS1zb2xpZCIsZmFzZHI6ImZhLXJlZ3VsYXIiLGZhc2RsOiJmYS1saWdodCIsZmFzZHQ6ImZhLXRoaW4ifSxzbGFiOntmYXNscjoiZmEtcmVndWxhciJ9LCJzbGFiLXByZXNzIjp7ZmFzbHByOiJmYS1yZWd1bGFyIn0sd2hpdGVib2FyZDp7ZmF3c2I6ImZhLXNlbWlib2xkIn0sdGh1bWJwcmludDp7ZmF0bDoiZmEtbGlnaHQifSxub3Rkb2c6e2ZhbnM6ImZhLXNvbGlkIn0sIm5vdGRvZy1kdW8iOntmYW5kczoiZmEtc29saWQifSxldGNoOntmYWVzOiJmYS1zb2xpZCJ9LGdyYXBoaXRlOntmYWd0OiJmYS10aGluIn0samVsbHk6e2ZhanI6ImZhLXJlZ3VsYXIifSwiamVsbHktZmlsbCI6e2ZhamZyOiJmYS1yZWd1bGFyIn0sImplbGx5LWR1byI6e2ZhamRyOiJmYS1yZWd1bGFyIn0sY2hpc2VsOntmYWNyOiJmYS1yZWd1bGFyIn0sdXRpbGl0eTp7ZmF1c2I6ImZhLXNlbWlib2xkIn0sInV0aWxpdHktZHVvIjp7ZmF1ZHNiOiJmYS1zZW1pYm9sZCJ9LCJ1dGlsaXR5LWZpbGwiOntmYXVmc2I6ImZhLXNlbWlib2xkIn19LEFHcj1bImZhLXNvbGlkIiwiZmEtcmVndWxhciIsImZhLWxpZ2h0IiwiZmEtdGhpbiIsImZhLWR1b3RvbmUiLCJmYS1icmFuZHMiLCJmYS1zZW1pYm9sZCJdLEwxdD1bImZhIiwiZmFzIiwiZmFyIiwiZmFsIiwiZmF0IiwiZmFkIiwiZmFkciIsImZhZGwiLCJmYWR0IiwiZmFiIiwiZmFzcyIsImZhc3IiLCJmYXNsIiwiZmFzdCIsImZhc2RzIiwiZmFzZHIiLCJmYXNkbCIsImZhc2R0IiwiZmFzbHIiLCJmYXNscHIiLCJmYXdzYiIsImZhdGwiLCJmYW5zIiwiZmFuZHMiLCJmYWVzIiwiZmFndCIsImZhanIiLCJmYWpmciIsImZhamRyIiwiZmFjciIsImZhdXNiIiwiZmF1ZHNiIiwiZmF1ZnNiIl0uY29uY2F0KFJXcixBR3IpLERHcj1bInNvbGlkIiwicmVndWxhciIsImxpZ2h0IiwidGhpbiIsImR1b3RvbmUiLCJicmFuZHMiLCJzZW1pYm9sZCJdLEExdD1bMSwyLDMsNCw1LDYsNyw4LDksMTBdLEVHcj1BMXQuY29uY2F0KFsxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMF0pLCRHcj1bImF3IiwiZnciLCJwdWxsLWxlZnQiLCJwdWxsLXJpZ2h0Il0sSUdyPVtdLmNvbmNhdChNMihPYmplY3Qua2V5cyhMR3IpKSxER3IsJEdyLFsiMnhzIiwieHMiLCJzbSIsImxnIiwieGwiLCIyeGwiLCJiZWF0IiwiYm9yZGVyIiwiZmFkZSIsImJlYXQtZmFkZSIsImJvdW5jZSIsImZsaXAtYm90aCIsImZsaXAtaG9yaXpvbnRhbCIsImZsaXAtdmVydGljYWwiLCJmbGlwIiwiaW52ZXJzZSIsImxheWVycyIsImxheWVycy1ib3R0b20tbGVmdCIsImxheWVycy1ib3R0b20tcmlnaHQiLCJsYXllcnMtY291bnRlciIsImxheWVycy10ZXh0IiwibGF5ZXJzLXRvcC1sZWZ0IiwibGF5ZXJzLXRvcC1yaWdodCIsImxpIiwicHVsbC1lbmQiLCJwdWxsLXN0YXJ0IiwicHVsc2UiLCJyb3RhdGUtMTgwIiwicm90YXRlLTI3MCIsInJvdGF0ZS05MCIsInJvdGF0ZS1ieSIsInNoYWtlIiwic3Bpbi1wdWxzZSIsInNwaW4tcmV2ZXJzZSIsInNwaW4iLCJzdGFjay0xeCIsInN0YWNrLTJ4Iiwic3RhY2siLCJ1bCIsIndpZHRoLWF1dG8iLCJ3aWR0aC1maXhlZCIsU0EuR1JPVVAsU0EuU1dBUF9PUEFDSVRZLFNBLlBSSU1BUlksU0EuU0VDT05EQVJZXSkuY29uY2F0KEExdC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIiIuY29uY2F0KGUsIngiKX0pKS5jb25jYXQoRUdyLm1hcChmdW5jdGlvbihlKXtyZXR1cm4idy0iLmNvbmNhdChlKX0pKSxQR3I9eyJGb250IEF3ZXNvbWUgNSBGcmVlIjp7OTAwOiJmYXMiLDQwMDoiZmFyIn0sIkZvbnQgQXdlc29tZSA1IFBybyI6ezkwMDoiZmFzIiw0MDA6ImZhciIsbm9ybWFsOiJmYXIiLDMwMDoiZmFsIn0sIkZvbnQgQXdlc29tZSA1IEJyYW5kcyI6ezQwMDoiZmFiIixub3JtYWw6ImZhYiJ9LCJGb250IEF3ZXNvbWUgNSBEdW90b25lIjp7OTAwOiJmYWQifX0sZmM9Il9fX0ZPTlRfQVdFU09NRV9fXyIsbGFlPTE2LEQxdD0iZmEiLEUxdD0ic3ZnLWlubGluZS0tZmEiLENkPSJkYXRhLWZhLWkyc3ZnIixjYWU9ImRhdGEtZmEtcHNldWRvLWVsZW1lbnQiLE5Hcj0iZGF0YS1mYS1wc2V1ZG8tZWxlbWVudC1wZW5kaW5nIixkYWU9ImRhdGEtcHJlZml4Iix1YWU9ImRhdGEtaWNvbiIsJDF0PSJmb250YXdlc29tZS1pMnN2ZyIsRkdyPSJhc3luYyIsT0dyPVsiSFRNTCIsIkhFQUQiLCJTVFlMRSIsIlNDUklQVCJdLEkxdD1bIjo6YmVmb3JlIiwiOjphZnRlciIsIjpiZWZvcmUiLCI6YWZ0ZXIiXSxQMXQ9KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiEwfWNhdGNoe3JldHVybiExfX0pKCk7TjF0PVZlKHt9LG8xdCk7TjF0W0ppXT1WZShWZShWZShWZSh7fSx7ImZhLWR1b3RvbmUiOiJkdW90b25lIn0pLG8xdFtKaV0pLFQxdC5raXQpLFQxdFsia2l0LWR1b3RvbmUiXSk7UkdyPWZnKE4xdCkscGFlPVZlKHt9LEFXcik7cGFlW0ppXT1WZShWZShWZShWZSh7fSx7ZHVvdG9uZToiZmFkIn0pLHBhZVtKaV0pLF8xdC5raXQpLF8xdFsia2l0LWR1b3RvbmUiXSk7RjF0PWZnKHBhZSksaGFlPVZlKHt9LHNhZSk7aGFlW0ppXT1WZShWZSh7fSxoYWVbSmldKSxPV3Iua2l0KTtmYWU9ZmcoaGFlKSxtYWU9VmUoe30sX0dyKTttYWVbSmldPVZlKFZlKHt9LG1hZVtKaV0pLE5Xci5raXQpO0dlYT1mZyhtYWUpLEJHcj1uV3IsTzF0PSJmYS1sYXllcnMtdGV4dCIsSEdyPW9XcixxR3I9VmUoe30sVFdyKSxZZWE9ZmcocUdyKSxqR3I9WyJjbGFzcyIsImRhdGEtcHJlZml4IiwiZGF0YS1pY29uIiwiZGF0YS1mYS10cmFuc2Zvcm0iLCJkYXRhLWZhLW1hc2siXSxnYWU9c1dyLFZHcj1bXS5jb25jYXQoTTIoRFdyKSxNMihJR3IpKSxtZz1UNC5Gb250QXdlc29tZUNvbmZpZ3x8e307dTEmJnR5cGVvZiB1MS5xdWVyeVNlbGVjdG9yPT0iZnVuY3Rpb24iJiYoUjF0PVtbImRhdGEtZmFtaWx5LXByZWZpeCIsImZhbWlseVByZWZpeCJdLFsiZGF0YS1jc3MtcHJlZml4IiwiY3NzUHJlZml4Il0sWyJkYXRhLWZhbWlseS1kZWZhdWx0IiwiZmFtaWx5RGVmYXVsdCJdLFsiZGF0YS1zdHlsZS1kZWZhdWx0Iiwic3R5bGVEZWZhdWx0Il0sWyJkYXRhLXJlcGxhY2VtZW50LWNsYXNzIiwicmVwbGFjZW1lbnRDbGFzcyJdLFsiZGF0YS1hdXRvLXJlcGxhY2Utc3ZnIiwiYXV0b1JlcGxhY2VTdmciXSxbImRhdGEtYXV0by1hZGQtY3NzIiwiYXV0b0FkZENzcyJdLFsiZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzIiwic2VhcmNoUHNldWRvRWxlbWVudHMiXSxbImRhdGEtc2VhcmNoLXBzZXVkby1lbGVtZW50cy13YXJuaW5ncyIsInNlYXJjaFBzZXVkb0VsZW1lbnRzV2FybmluZ3MiXSxbImRhdGEtc2VhcmNoLXBzZXVkby1lbGVtZW50cy1mdWxsLXNjYW4iLCJzZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuIl0sWyJkYXRhLW9ic2VydmUtbXV0YXRpb25zIiwib2JzZXJ2ZU11dGF0aW9ucyJdLFsiZGF0YS1tdXRhdGUtYXBwcm9hY2giLCJtdXRhdGVBcHByb2FjaCJdLFsiZGF0YS1rZWVwLW9yaWdpbmFsLXNvdXJjZSIsImtlZXBPcmlnaW5hbFNvdXJjZSJdLFsiZGF0YS1tZWFzdXJlLXBlcmZvcm1hbmNlIiwibWVhc3VyZVBlcmZvcm1hbmNlIl0sWyJkYXRhLXNob3ctbWlzc2luZy1pY29ucyIsInNob3dNaXNzaW5nSWNvbnMiXV0sUjF0LmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9d0EoZSwyKSxyPXRbMF0saT10WzFdLGE9V0dyKFVHcihyKSk7YSE9bnVsbCYmKG1nW2ldPWEpfSkpO0IxdD17c3R5bGVEZWZhdWx0OiJzb2xpZCIsZmFtaWx5RGVmYXVsdDpKaSxjc3NQcmVmaXg6RDF0LHJlcGxhY2VtZW50Q2xhc3M6RTF0LGF1dG9SZXBsYWNlU3ZnOiEwLGF1dG9BZGRDc3M6ITAsc2VhcmNoUHNldWRvRWxlbWVudHM6ITEsc2VhcmNoUHNldWRvRWxlbWVudHNXYXJuaW5nczohMCxzZWFyY2hQc2V1ZG9FbGVtZW50c0Z1bGxTY2FuOiExLG9ic2VydmVNdXRhdGlvbnM6ITAsbXV0YXRlQXBwcm9hY2g6ImFzeW5jIixrZWVwT3JpZ2luYWxTb3VyY2U6ITAsbWVhc3VyZVBlcmZvcm1hbmNlOiExLHNob3dNaXNzaW5nSWNvbnM6ITB9O21nLmZhbWlseVByZWZpeCYmKG1nLmNzc1ByZWZpeD1tZy5mYW1pbHlQcmVmaXgpO0RwPVZlKFZlKHt9LEIxdCksbWcpO0RwLmF1dG9SZXBsYWNlU3ZnfHwoRHAub2JzZXJ2ZU11dGF0aW9ucz0hMSk7cHQ9e307T2JqZWN0LmtleXMoQjF0KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShwdCxlLHtlbnVtZXJhYmxlOiEwLHNldDpmdW5jdGlvbihyKXtEcFtlXT1yLGdnLmZvckVhY2goZnVuY3Rpb24oaSl7cmV0dXJuIGkocHQpfSl9LGdldDpmdW5jdGlvbigpe3JldHVybiBEcFtlXX19KX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwdCwiZmFtaWx5UHJlZml4Iix7ZW51bWVyYWJsZTohMCxzZXQ6ZnVuY3Rpb24odCl7RHAuY3NzUHJlZml4PXQsZ2cuZm9yRWFjaChmdW5jdGlvbihyKXtyZXR1cm4gcihwdCl9KX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIERwLmNzc1ByZWZpeH19KSxUNC5Gb250QXdlc29tZUNvbmZpZz1wdDtnZz1bXTtfND1sYWUsdGw9e3NpemU6MTYseDowLHk6MCxyb3RhdGU6MCxmbGlwWDohMSxmbGlwWTohMX07WkdyPSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI7S0dyPWA6cm9vdCwgOmhvc3QgewogIC0tZmEtZm9udC1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRnJlZSc7CiAgLS1mYS1mb250LXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEZyZWUnOwogIC0tZmEtZm9udC1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgUHJvJzsKICAtLWZhLWZvbnQtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgUHJvJzsKICAtLWZhLWZvbnQtZHVvdG9uZTogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWR1b3RvbmUtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRHVvdG9uZSc7CiAgLS1mYS1mb250LWR1b3RvbmUtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IER1b3RvbmUnOwogIC0tZmEtZm9udC1kdW90b25lLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IER1b3RvbmUnOwogIC0tZmEtZm9udC1icmFuZHM6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEJyYW5kcyc7CiAgLS1mYS1mb250LXNoYXJwLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCc7CiAgLS1mYS1mb250LXNoYXJwLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtbGlnaHQ6IG5vcm1hbCAzMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFNoYXJwJzsKICAtLWZhLWZvbnQtc2hhcnAtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAnOwogIC0tZmEtZm9udC1zaGFycC1kdW90b25lLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1yZWd1bGFyOiBub3JtYWwgNDAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBTaGFycCBEdW90b25lJzsKICAtLWZhLWZvbnQtc2hhcnAtZHVvdG9uZS1saWdodDogbm9ybWFsIDMwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSc7CiAgLS1mYS1mb250LXNoYXJwLWR1b3RvbmUtdGhpbjogbm9ybWFsIDEwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2hhcnAgRHVvdG9uZSc7CiAgLS1mYS1mb250LXNsYWItcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2xhYic7CiAgLS1mYS1mb250LXNsYWItcHJlc3MtcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgU2xhYiBQcmVzcyc7CiAgLS1mYS1mb250LXdoaXRlYm9hcmQtc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFdoaXRlYm9hcmQnOwogIC0tZmEtZm9udC10aHVtYnByaW50LWxpZ2h0OiBub3JtYWwgMzAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBUaHVtYnByaW50JzsKICAtLWZhLWZvbnQtbm90ZG9nLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBOb3Rkb2cnOwogIC0tZmEtZm9udC1ub3Rkb2ctZHVvLXNvbGlkOiBub3JtYWwgOTAwIDFlbS8xICdGb250IEF3ZXNvbWUgNyBOb3Rkb2cgRHVvJzsKICAtLWZhLWZvbnQtZXRjaC1zb2xpZDogbm9ybWFsIDkwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgRXRjaCc7CiAgLS1mYS1mb250LWdyYXBoaXRlLXRoaW46IG5vcm1hbCAxMDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEdyYXBoaXRlJzsKICAtLWZhLWZvbnQtamVsbHktcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgSmVsbHknOwogIC0tZmEtZm9udC1qZWxseS1maWxsLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IEplbGx5IEZpbGwnOwogIC0tZmEtZm9udC1qZWxseS1kdW8tcmVndWxhcjogbm9ybWFsIDQwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgSmVsbHkgRHVvJzsKICAtLWZhLWZvbnQtY2hpc2VsLXJlZ3VsYXI6IG5vcm1hbCA0MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IENoaXNlbCc7CiAgLS1mYS1mb250LXV0aWxpdHktc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFV0aWxpdHknOwogIC0tZmEtZm9udC11dGlsaXR5LWR1by1zZW1pYm9sZDogbm9ybWFsIDYwMCAxZW0vMSAnRm9udCBBd2Vzb21lIDcgVXRpbGl0eSBEdW8nOwogIC0tZmEtZm9udC11dGlsaXR5LWZpbGwtc2VtaWJvbGQ6IG5vcm1hbCA2MDAgMWVtLzEgJ0ZvbnQgQXdlc29tZSA3IFV0aWxpdHkgRmlsbCc7Cn0KCi5zdmctaW5saW5lLS1mYSB7CiAgYm94LXNpemluZzogY29udGVudC1ib3g7CiAgZGlzcGxheTogdmFyKC0tZmEtZGlzcGxheSwgaW5saW5lLWJsb2NrKTsKICBoZWlnaHQ6IDFlbTsKICBvdmVyZmxvdzogdmlzaWJsZTsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoLCAxLjI1ZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS0yeHMgewogIHZlcnRpY2FsLWFsaWduOiAwLjFlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEteHMgewogIHZlcnRpY2FsLWFsaWduOiAwZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXNtIHsKICB2ZXJ0aWNhbC1hbGlnbjogLTAuMDcxNDI4NTcxNGVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1sZyB7CiAgdmVydGljYWwtYWxpZ246IC0wLjJlbTsKfQouc3ZnLWlubGluZS0tZmEuZmEteGwgewogIHZlcnRpY2FsLWFsaWduOiAtMC4yNWVtOwp9Ci5zdmctaW5saW5lLS1mYS5mYS0yeGwgewogIHZlcnRpY2FsLWFsaWduOiAtMC4zMTI1ZW07Cn0KLnN2Zy1pbmxpbmUtLWZhLmZhLXB1bGwtbGVmdCwKLnN2Zy1pbmxpbmUtLWZhIC5mYS1wdWxsLXN0YXJ0IHsKICBmbG9hdDogaW5saW5lLXN0YXJ0OwogIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1wdWxsLXJpZ2h0LAouc3ZnLWlubGluZS0tZmEgLmZhLXB1bGwtZW5kIHsKICBmbG9hdDogaW5saW5lLWVuZDsKICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1mYS1wdWxsLW1hcmdpbiwgMC4zZW0pOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1saSB7CiAgd2lkdGg6IHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pOwogIGluc2V0LWlubGluZS1zdGFydDogY2FsYygtMSAqIHZhcigtLWZhLWxpLXdpZHRoLCAyZW0pKTsKICBpbnNldC1ibG9jay1zdGFydDogMC4yNWVtOyAvKiBzeW5jaW5nIHZlcnRpY2FsIGFsaWdubWVudCB3aXRoIFdlYiBGb250IHJlbmRlcmluZyAqLwp9CgouZmEtbGF5ZXJzLWNvdW50ZXIsIC5mYS1sYXllcnMtdGV4dCB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5mYS1sYXllcnMgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBoZWlnaHQ6IDFlbTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgsIDEuMjVlbSk7Cn0KLmZhLWxheWVycyAuc3ZnLWlubGluZS0tZmEgewogIGluc2V0OiAwOwogIG1hcmdpbjogYXV0bzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKfQoKLmZhLWxheWVycy10ZXh0IHsKICBsZWZ0OiA1MCU7CiAgdG9wOiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsKfQoKLmZhLWxheWVycy1jb3VudGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mYS1jb3VudGVyLWJhY2tncm91bmQtY29sb3IsICNmZjI1M2EpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWZhLWNvdW50ZXItYm9yZGVyLXJhZGl1cywgMWVtKTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGNvbG9yOiB2YXIoLS1mYS1pbnZlcnNlLCAjZmZmKTsKICBsaW5lLWhlaWdodDogdmFyKC0tZmEtY291bnRlci1saW5lLWhlaWdodCwgMSk7CiAgbWF4LXdpZHRoOiB2YXIoLS1mYS1jb3VudGVyLW1heC13aWR0aCwgNWVtKTsKICBtaW4td2lkdGg6IHZhcigtLWZhLWNvdW50ZXItbWluLXdpZHRoLCAxLjVlbSk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBwYWRkaW5nOiB2YXIoLS1mYS1jb3VudGVyLXBhZGRpbmcsIDAuMjVlbSAwLjVlbSk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1jb3VudGVyLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLWJvdHRvbS1yaWdodCB7CiAgYm90dG9tOiB2YXIoLS1mYS1ib3R0b20sIDApOwogIHJpZ2h0OiB2YXIoLS1mYS1yaWdodCwgMCk7CiAgdG9wOiBhdXRvOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0Owp9CgouZmEtbGF5ZXJzLWJvdHRvbS1sZWZ0IHsKICBib3R0b206IHZhcigtLWZhLWJvdHRvbSwgMCk7CiAgbGVmdDogdmFyKC0tZmEtbGVmdCwgMCk7CiAgcmlnaHQ6IGF1dG87CiAgdG9wOiBhdXRvOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7Cn0KCi5mYS1sYXllcnMtdG9wLXJpZ2h0IHsKICB0b3A6IHZhcigtLWZhLXRvcCwgMCk7CiAgcmlnaHQ6IHZhcigtLWZhLXJpZ2h0LCAwKTsKICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWxheWVycy1zY2FsZSwgMC4yNSkpOwogIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDsKfQoKLmZhLWxheWVycy10b3AtbGVmdCB7CiAgbGVmdDogdmFyKC0tZmEtbGVmdCwgMCk7CiAgcmlnaHQ6IGF1dG87CiAgdG9wOiB2YXIoLS1mYS10b3AsIDApOwogIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtbGF5ZXJzLXNjYWxlLCAwLjI1KSk7CiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7Cn0KCi5mYS0xeCB7CiAgZm9udC1zaXplOiAxZW07Cn0KCi5mYS0yeCB7CiAgZm9udC1zaXplOiAyZW07Cn0KCi5mYS0zeCB7CiAgZm9udC1zaXplOiAzZW07Cn0KCi5mYS00eCB7CiAgZm9udC1zaXplOiA0ZW07Cn0KCi5mYS01eCB7CiAgZm9udC1zaXplOiA1ZW07Cn0KCi5mYS02eCB7CiAgZm9udC1zaXplOiA2ZW07Cn0KCi5mYS03eCB7CiAgZm9udC1zaXplOiA3ZW07Cn0KCi5mYS04eCB7CiAgZm9udC1zaXplOiA4ZW07Cn0KCi5mYS05eCB7CiAgZm9udC1zaXplOiA5ZW07Cn0KCi5mYS0xMHggewogIGZvbnQtc2l6ZTogMTBlbTsKfQoKLmZhLTJ4cyB7CiAgZm9udC1zaXplOiBjYWxjKDEwIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDEwcHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMTAgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDEwIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXhzIHsKICBmb250LXNpemU6IGNhbGMoMTIgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMTJweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAxMiAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMTIgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtc20gewogIGZvbnQtc2l6ZTogY2FsYygxNCAvIDE2ICogMWVtKTsgLyogY29udmVydHMgYSAxNHB4IHNpemUgaW50byBhbiBlbS1iYXNlZCB2YWx1ZSB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHNjYWxlJ3MgMTZweCBiYXNlICovCiAgbGluZS1oZWlnaHQ6IGNhbGMoMSAvIDE0ICogMWVtKTsgLyogc2V0cyB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIGljb24gYmFjayB0byB0aGF0IG9mIGl0J3MgcGFyZW50ICovCiAgdmVydGljYWwtYWxpZ246IGNhbGMoKDYgLyAxNCAtIDAuMzc1KSAqIDFlbSk7IC8qIHZlcnRpY2FsbHkgY2VudGVycyB0aGUgaWNvbiB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBzdXJyb3VuZGluZyB0ZXh0J3MgZGVzY2VuZGVyICovCn0KCi5mYS1sZyB7CiAgZm9udC1zaXplOiBjYWxjKDIwIC8gMTYgKiAxZW0pOyAvKiBjb252ZXJ0cyBhIDIwcHggc2l6ZSBpbnRvIGFuIGVtLWJhc2VkIHZhbHVlIHRoYXQncyByZWxhdGl2ZSB0byB0aGUgc2NhbGUncyAxNnB4IGJhc2UgKi8KICBsaW5lLWhlaWdodDogY2FsYygxIC8gMjAgKiAxZW0pOyAvKiBzZXRzIHRoZSBsaW5lLWhlaWdodCBvZiB0aGUgaWNvbiBiYWNrIHRvIHRoYXQgb2YgaXQncyBwYXJlbnQgKi8KICB2ZXJ0aWNhbC1hbGlnbjogY2FsYygoNiAvIDIwIC0gMC4zNzUpICogMWVtKTsgLyogdmVydGljYWxseSBjZW50ZXJzIHRoZSBpY29uIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHN1cnJvdW5kaW5nIHRleHQncyBkZXNjZW5kZXIgKi8KfQoKLmZhLXhsIHsKICBmb250LXNpemU6IGNhbGMoMjQgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMjRweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAyNCAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMjQgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtMnhsIHsKICBmb250LXNpemU6IGNhbGMoMzIgLyAxNiAqIDFlbSk7IC8qIGNvbnZlcnRzIGEgMzJweCBzaXplIGludG8gYW4gZW0tYmFzZWQgdmFsdWUgdGhhdCdzIHJlbGF0aXZlIHRvIHRoZSBzY2FsZSdzIDE2cHggYmFzZSAqLwogIGxpbmUtaGVpZ2h0OiBjYWxjKDEgLyAzMiAqIDFlbSk7IC8qIHNldHMgdGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBpY29uIGJhY2sgdG8gdGhhdCBvZiBpdCdzIHBhcmVudCAqLwogIHZlcnRpY2FsLWFsaWduOiBjYWxjKCg2IC8gMzIgLSAwLjM3NSkgKiAxZW0pOyAvKiB2ZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGljb24gdGFraW5nIGludG8gYWNjb3VudCB0aGUgc3Vycm91bmRpbmcgdGV4dCdzIGRlc2NlbmRlciAqLwp9CgouZmEtd2lkdGgtYXV0byB7CiAgLS1mYS13aWR0aDogYXV0bzsKfQoKLmZhLWZ3LAouZmEtd2lkdGgtZml4ZWQgewogIC0tZmEtd2lkdGg6IDEuMjVlbTsKfQoKLmZhLXVsIHsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtbGktbWFyZ2luLCAyLjVlbSk7CiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7Cn0KLmZhLXVsID4gbGkgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLmZhLWxpIHsKICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1mYS1saS13aWR0aCwgMmVtKSk7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICB3aWR0aDogdmFyKC0tZmEtbGktd2lkdGgsIDJlbSk7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7Cn0KCi8qIEhlYWRzIFVwOiBCb3JkZXJlZCBJY29ucyB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgaW4gdGhlIGZ1dHVyZSEKICAtIFRoaXMgZmVhdHVyZSB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZSBvZiBGb250IEF3ZXNvbWUgKHY4KSEKICAtIFlvdSBtYXkgY29udGludWUgdG8gdXNlIGl0IGluIHRoaXMgdmVyc2lvbiAqdjcpLCBidXQgaXQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIEZvbnQgQXdlc29tZSB2OC4KKi8KLyogTm90ZXM6CiogLS1Ae3YuJGNzcy1wcmVmaXh9LWJvcmRlci13aWR0aCA9IDEvMTYgYnkgZGVmYXVsdCAodG8gcmVuZGVyIGFzIH4xcHggYmFzZWQgb24gYSAxNnB4IGRlZmF1bHQgZm9udC1zaXplKQoqIC0tQHt2LiRjc3MtcHJlZml4fS1ib3JkZXItcGFkZGluZyA9CiAgKiogMy8xNiBmb3IgdmVydGljYWwgcGFkZGluZyAodG8gZ2l2ZSB+MnB4IG9mIHZlcnRpY2FsIHdoaXRlc3BhY2UgYXJvdW5kIGFuIGljb24gY29uc2lkZXJpbmcgaXQncyB2ZXJ0aWNhbCBhbGlnbm1lbnQpCiAgKiogNC8xNiBmb3IgaG9yaXpvbnRhbCBwYWRkaW5nICh0byBnaXZlIH40cHggb2YgaG9yaXpvbnRhbCB3aGl0ZXNwYWNlIGFyb3VuZCBhbiBpY29uKQoqLwouZmEtYm9yZGVyIHsKICBib3JkZXItY29sb3I6IHZhcigtLWZhLWJvcmRlci1jb2xvciwgI2VlZSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmEtYm9yZGVyLXJhZGl1cywgMC4xZW0pOwogIGJvcmRlci1zdHlsZTogdmFyKC0tZmEtYm9yZGVyLXN0eWxlLCBzb2xpZCk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1mYS1ib3JkZXItd2lkdGgsIDAuMDYyNWVtKTsKICBib3gtc2l6aW5nOiB2YXIoLS1mYS1ib3JkZXItYm94LXNpemluZywgY29udGVudC1ib3gpOwogIHBhZGRpbmc6IHZhcigtLWZhLWJvcmRlci1wYWRkaW5nLCAwLjE4NzVlbSAwLjI1ZW0pOwp9CgouZmEtcHVsbC1sZWZ0LAouZmEtcHVsbC1zdGFydCB7CiAgZmxvYXQ6IGlubGluZS1zdGFydDsKICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQoKLmZhLXB1bGwtcmlnaHQsCi5mYS1wdWxsLWVuZCB7CiAgZmxvYXQ6IGlubGluZS1lbmQ7CiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tZmEtcHVsbC1tYXJnaW4sIDAuM2VtKTsKfQoKLmZhLWJlYXQgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1iZWF0OwogIGFuaW1hdGlvbi1kZWxheTogdmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LCAwcyk7CiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbiwgbm9ybWFsKTsKICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpOwogIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IHZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTsKICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLCBlYXNlLWluLW91dCk7Cn0KCi5mYS1ib3VuY2UgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1ib3VuY2U7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjI4LCAwLjg0LCAwLjQyLCAxKSk7Cn0KCi5mYS1mYWRlIHsKICBhbmltYXRpb24tbmFtZTogZmEtZmFkZTsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDFzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSk7Cn0KCi5mYS1iZWF0LWZhZGUgewogIGFuaW1hdGlvbi1uYW1lOiBmYS1iZWF0LWZhZGU7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSkpOwp9CgouZmEtZmxpcCB7CiAgYW5pbWF0aW9uLW5hbWU6IGZhLWZsaXA7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGVhc2UtaW4tb3V0KTsKfQoKLmZhLXNoYWtlIHsKICBhbmltYXRpb24tbmFtZTogZmEtc2hha2U7CiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1mYS1hbmltYXRpb24tZGVsYXksIDBzKTsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIGxpbmVhcik7Cn0KCi5mYS1zcGluIHsKICBhbmltYXRpb24tbmFtZTogZmEtc3BpbjsKICBhbmltYXRpb24tZGVsYXk6IHZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwgMHMpOwogIGFuaW1hdGlvbi1kaXJlY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sIG5vcm1hbCk7CiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sIDJzKTsKICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiB2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7CiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZywgbGluZWFyKTsKfQoKLmZhLXNwaW4tcmV2ZXJzZSB7CiAgLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOwp9CgouZmEtcHVsc2UsCi5mYS1zcGluLXB1bHNlIHsKICBhbmltYXRpb24tbmFtZTogZmEtc3BpbjsKICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1mYS1hbmltYXRpb24tZGlyZWN0aW9uLCBub3JtYWwpOwogIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tZmEtYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7CiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogdmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpOwogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsIHN0ZXBzKDgpKTsKfQoKQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHsKICAuZmEtYmVhdCwKICAuZmEtYm91bmNlLAogIC5mYS1mYWRlLAogIC5mYS1iZWF0LWZhZGUsCiAgLmZhLWZsaXAsCiAgLmZhLXB1bHNlLAogIC5mYS1zaGFrZSwKICAuZmEtc3BpbiwKICAuZmEtc3Bpbi1wdWxzZSB7CiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICB9Cn0KQGtleWZyYW1lcyBmYS1iZWF0IHsKICAwJSwgOTAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgfQogIDQ1JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKHZhcigtLWZhLWJlYXQtc2NhbGUsIDEuMjUpKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1ib3VuY2UgewogIDAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSkgdHJhbnNsYXRlWSgwKTsKICB9CiAgMTAlIHsKICAgIHRyYW5zZm9ybTogc2NhbGUodmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXgsIDEuMSksIHZhcigtLWZhLWJvdW5jZS1zdGFydC1zY2FsZS15LCAwLjkpKSB0cmFuc2xhdGVZKDApOwogIH0KICAzMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2UtanVtcC1zY2FsZS14LCAwLjkpLCB2YXIoLS1mYS1ib3VuY2UtanVtcC1zY2FsZS15LCAxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWZhLWJvdW5jZS1oZWlnaHQsIC0wLjVlbSkpOwogIH0KICA1MCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS14LCAxLjA1KSwgdmFyKC0tZmEtYm91bmNlLWxhbmQtc2NhbGUteSwgMC45NSkpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDU3JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLXJlYm91bmQsIC0wLjEyNWVtKSk7CiAgfQogIDY0JSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpIHRyYW5zbGF0ZVkoMCk7CiAgfQogIDEwMCUgewogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKSB0cmFuc2xhdGVZKDApOwogIH0KfQpAa2V5ZnJhbWVzIGZhLWZhZGUgewogIDUwJSB7CiAgICBvcGFjaXR5OiB2YXIoLS1mYS1mYWRlLW9wYWNpdHksIDAuNCk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtYmVhdC1mYWRlIHsKICAwJSwgMTAwJSB7CiAgICBvcGFjaXR5OiB2YXIoLS1mYS1iZWF0LWZhZGUtb3BhY2l0eSwgMC40KTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgfQogIDUwJSB7CiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNmb3JtOiBzY2FsZSh2YXIoLS1mYS1iZWF0LWZhZGUtc2NhbGUsIDEuMTI1KSk7CiAgfQp9CkBrZXlmcmFtZXMgZmEtZmxpcCB7CiAgNTAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlM2QodmFyKC0tZmEtZmxpcC14LCAwKSwgdmFyKC0tZmEtZmxpcC15LCAxKSwgdmFyKC0tZmEtZmxpcC16LCAwKSwgdmFyKC0tZmEtZmxpcC1hbmdsZSwgLTE4MGRlZykpOwogIH0KfQpAa2V5ZnJhbWVzIGZhLXNoYWtlIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTVkZWcpOwogIH0KICA0JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7CiAgfQogIDglLCAyNCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4ZGVnKTsKICB9CiAgMTIlLCAyOCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMThkZWcpOwogIH0KICAxNiUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoLTIyZGVnKTsKICB9CiAgMjAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDIyZGVnKTsKICB9CiAgMzIlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMmRlZyk7CiAgfQogIDM2JSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMmRlZyk7CiAgfQogIDQwJSwgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9Cn0KQGtleWZyYW1lcyBmYS1zcGluIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CiAgMTAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogIH0KfQouZmEtcm90YXRlLTkwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7Cn0KCi5mYS1yb3RhdGUtMTgwIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOwp9CgouZmEtcm90YXRlLTI3MCB7CiAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsKfQoKLmZhLWZsaXAtaG9yaXpvbnRhbCB7CiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7Cn0KCi5mYS1mbGlwLXZlcnRpY2FsIHsKICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTsKfQoKLmZhLWZsaXAtYm90aCwKLmZhLWZsaXAtaG9yaXpvbnRhbC5mYS1mbGlwLXZlcnRpY2FsIHsKICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAtMSk7Cn0KCi5mYS1yb3RhdGUtYnkgewogIHRyYW5zZm9ybTogcm90YXRlKHZhcigtLWZhLXJvdGF0ZS1hbmdsZSwgMCkpOwp9Cgouc3ZnLWlubGluZS0tZmEgLmZhLXByaW1hcnkgewogIGZpbGw6IHZhcigtLWZhLXByaW1hcnktY29sb3IsIGN1cnJlbnRDb2xvcik7CiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTsKfQoKLnN2Zy1pbmxpbmUtLWZhIC5mYS1zZWNvbmRhcnkgewogIGZpbGw6IHZhcigtLWZhLXNlY29uZGFyeS1jb2xvciwgY3VycmVudENvbG9yKTsKICBvcGFjaXR5OiB2YXIoLS1mYS1zZWNvbmRhcnktb3BhY2l0eSwgMC40KTsKfQoKLnN2Zy1pbmxpbmUtLWZhLmZhLXN3YXAtb3BhY2l0eSAuZmEtcHJpbWFyeSB7CiAgb3BhY2l0eTogdmFyKC0tZmEtc2Vjb25kYXJ5LW9wYWNpdHksIDAuNCk7Cn0KCi5zdmctaW5saW5lLS1mYS5mYS1zd2FwLW9wYWNpdHkgLmZhLXNlY29uZGFyeSB7CiAgb3BhY2l0eTogdmFyKC0tZmEtcHJpbWFyeS1vcGFjaXR5LCAxKTsKfQoKLnN2Zy1pbmxpbmUtLWZhIG1hc2sgLmZhLXByaW1hcnksCi5zdmctaW5saW5lLS1mYSBtYXNrIC5mYS1zZWNvbmRhcnkgewogIGZpbGw6IGJsYWNrOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtaW52ZXJzZSB7CiAgZmlsbDogdmFyKC0tZmEtaW52ZXJzZSwgI2ZmZik7Cn0KCi5mYS1zdGFjayB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGhlaWdodDogMmVtOwogIGxpbmUtaGVpZ2h0OiAyZW07CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgd2lkdGg6IDIuNWVtOwp9CgouZmEtaW52ZXJzZSB7CiAgY29sb3I6IHZhcigtLWZhLWludmVyc2UsICNmZmYpOwp9Cgouc3ZnLWlubGluZS0tZmEuZmEtc3RhY2stMXggewogIC0tZmEtd2lkdGg6IDEuMjVlbTsKICBoZWlnaHQ6IDFlbTsKICB3aWR0aDogdmFyKC0tZmEtd2lkdGgpOwp9Ci5zdmctaW5saW5lLS1mYS5mYS1zdGFjay0yeCB7CiAgLS1mYS13aWR0aDogMi41ZW07CiAgaGVpZ2h0OiAyZW07CiAgd2lkdGg6IHZhcigtLWZhLXdpZHRoKTsKfQoKLmZhLXN0YWNrLTF4LAouZmEtc3RhY2stMnggewogIGluc2V0OiAwOwogIG1hcmdpbjogYXV0bzsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgei1pbmRleDogdmFyKC0tZmEtc3RhY2stei1pbmRleCwgYXV0byk7Cn1gO1YxdD0hMTtlWXI9e21peG91dDpmdW5jdGlvbigpe3JldHVybntkb206e2NzczpqMXQsaW5zZXJ0Q3NzOnhhZX19fSxob29rczpmdW5jdGlvbigpe3JldHVybntiZWZvcmVET01FbGVtZW50Q3JlYXRpb246ZnVuY3Rpb24oKXt4YWUoKX0sYmVmb3JlSTJzdmc6ZnVuY3Rpb24oKXt4YWUoKX19fX0sbWM9VDR8fHt9O21jW2ZjXXx8KG1jW2ZjXT17fSksbWNbZmNdLnN0eWxlc3x8KG1jW2ZjXS5zdHlsZXM9e30pLG1jW2ZjXS5ob29rc3x8KG1jW2ZjXS5ob29rcz17fSksbWNbZmNdLnNoaW1zfHwobWNbZmNdLnNoaW1zPVtdKTtrMj1tY1tmY10sVTF0PVtdLFcxdD1mdW5jdGlvbigpe3UxLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLFcxdCksQ0E9MSxVMXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0KCl9KX0sQ0E9ITE7aGMmJihDQT0odTEuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsPy9ebG9hZGVkfF5jLzovXmxvYWRlZHxeaXxeYy8pLnRlc3QodTEucmVhZHlTdGF0ZSksQ0F8fHUxLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLFcxdCkpO3JZcj1mdW5jdGlvbih0LHIpe3JldHVybiBmdW5jdGlvbihpLGEsbixvKXtyZXR1cm4gdC5jYWxsKHIsaSxhLG4sbyl9fSx5YWU9ZnVuY3Rpb24odCxyLGksYSl7dmFyIG49T2JqZWN0LmtleXModCksbz1uLmxlbmd0aCxzPWEhPT12b2lkIDA/cllyKHIsYSk6cixsLGMsdTtmb3IoaT09PXZvaWQgMD8obD0xLHU9dFtuWzBdXSk6KGw9MCx1PWkpO2w8bztsKyspYz1uW2xdLHU9cyh1LHRbY10sYyx0KTtyZXR1cm4gdX07TWFlPTEsUzI9MixaZWE9W1tTMixFYSgvcGF0aCBvcGFjaXR5PSIoW14iXSopIi4qZD0iKFteIl0qKSIuKnBhdGguKmQ9IihbXiJdKikiLyx7ZDI6MixkMTozfSldLFtTMixFYSgvcGF0aCBvcGFjaXR5PSIoW14iXSopIi4qZD0iKFteIl0qKSIvLHtkMjoyfSldLFtNYWUsRWEoL3BhdGggZmlsbD0iY3VycmVudENvbG9yIi4qZD0iKFteIl0rKSIvLHtkMToxfSldXSxYZWE9W1tTMixFYSgvcGF0aCBjbGFzcz0iKFteIl0qc2Vjb25kYXJ5W14iXSopIi4qZD0iKFteIl0rKSIuKnBhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIyOjEsZDI6MixhdHRyMTozLGQxOjR9KV0sW1MyLEVhKC9wYXRoIGNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi4qZD0iKFteIl0rKSIuKnBhdGggY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjE6MSxkMToyLGF0dHIyOjMsZDI6NH0pXSxbUzIsRWEoL3BhdGggY2xhc3M9IihbXiJdKnByaW1hcnlbXiJdKikiLipkPSIoW14iXSspIi8se2F0dHIxOjEsZDE6Mn0pXSxbUzIsRWEoL3BhdGggY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKmQ9IihbXiJdKykiLyx7YXR0cjI6MSxkMjoyfSldLFtTMixFYSgvcGF0aCBkPSIoW14iXSspIi4qY2xhc3M9IihbXiJdKnNlY29uZGFyeVteIl0qKSIuKnBhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi8se2QyOjEsYXR0cjI6MixkMTozLGF0dHIxOjR9KV0sW1MyLEVhKC9wYXRoIGQ9IihbXiJdKykiLipjbGFzcz0iKFteIl0qcHJpbWFyeVteIl0qKSIuKnBhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLyx7ZDE6MSxhdHRyMToyLGQyOjMsYXR0cjI6NH0pXSxbUzIsRWEoL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpwcmltYXJ5W14iXSopIi8se2QxOjEsYXR0cjE6Mn0pXSxbUzIsRWEoL3BhdGggZD0iKFteIl0rKSIuKmNsYXNzPSIoW14iXSpzZWNvbmRhcnlbXiJdKikiLyx7ZDI6MSxhdHRyMjoyfSldLFtTMixFYSgvcGF0aCBkPSIoW14iXSspIi4qcGF0aCBkPSIoW14iXSspIi8se2QxOjEsZDI6Mn0pXSxbTWFlLEVhKC9wYXRoIGQ9IihbXiJdKykiLyx7ZDE6MX0pXSxbTWFlLEVhKC9wYXRoIHN0eWxlPSIoW14iXSspIi4qZD0iKFteIl0rKSIvLHthdHRyMToxLGQxOjJ9KV1dLHZnPWsyLnN0eWxlcyxpWXI9azIuc2hpbXMsWDF0PU9iamVjdC5rZXlzKGZhZSksYVlyPVgxdC5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVt0XT1PYmplY3Qua2V5cyhmYWVbdF0pLGV9LHt9KSxrYWU9bnVsbCxRMXQ9e30sSjF0PXt9LEsxdD17fSxlaXQ9e30sdGl0PXt9O3JpdD1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKG4pe3JldHVybiB5YWUodmcsZnVuY3Rpb24obyxzLGwpe3JldHVybiBvW2xdPXlhZShzLG4se30pLG99LHt9KX07UTF0PXQoZnVuY3Rpb24oYSxuLG8pe2lmKG5bM10mJihhW25bM11dPW8pLG5bMl0pe3ZhciBzPW5bMl0uZmlsdGVyKGZ1bmN0aW9uKGwpe3JldHVybiB0eXBlb2YgbD09Im51bWJlciJ9KTtzLmZvckVhY2goZnVuY3Rpb24obCl7YVtsLnRvU3RyaW5nKDE2KV09b30pfXJldHVybiBhfSksSjF0PXQoZnVuY3Rpb24oYSxuLG8pe2lmKGFbb109byxuWzJdKXt2YXIgcz1uWzJdLmZpbHRlcihmdW5jdGlvbihsKXtyZXR1cm4gdHlwZW9mIGw9PSJzdHJpbmcifSk7cy5mb3JFYWNoKGZ1bmN0aW9uKGwpe2FbbF09b30pfXJldHVybiBhfSksdGl0PXQoZnVuY3Rpb24oYSxuLG8pe3ZhciBzPW5bMl07cmV0dXJuIGFbb109byxzLmZvckVhY2goZnVuY3Rpb24obCl7YVtsXT1vfSksYX0pO3ZhciByPSJmYXIiaW4gdmd8fHB0LmF1dG9GZXRjaFN2ZyxpPXlhZShpWXIsZnVuY3Rpb24oYSxuKXt2YXIgbz1uWzBdLHM9blsxXSxsPW5bMl07cmV0dXJuIHM9PT0iZmFyIiYmIXImJihzPSJmYXMiKSx0eXBlb2Ygbz09InN0cmluZyImJihhLm5hbWVzW29dPXtwcmVmaXg6cyxpY29uTmFtZTpsfSksdHlwZW9mIG89PSJudW1iZXIiJiYoYS51bmljb2Rlc1tvLnRvU3RyaW5nKDE2KV09e3ByZWZpeDpzLGljb25OYW1lOmx9KSxhfSx7bmFtZXM6e30sdW5pY29kZXM6e319KTtLMXQ9aS5uYW1lcyxlaXQ9aS51bmljb2RlcyxrYWU9VEEocHQuc3R5bGVEZWZhdWx0LHtmYW1pbHk6cHQuZmFtaWx5RGVmYXVsdH0pfTtHR3IoZnVuY3Rpb24oZSl7a2FlPVRBKGUuc3R5bGVEZWZhdWx0LHtmYW1pbHk6cHQuZmFtaWx5RGVmYXVsdH0pfSkscml0KCk7YWl0PWZ1bmN0aW9uKCl7cmV0dXJue3ByZWZpeDpudWxsLGljb25OYW1lOm51bGwscmVzdDpbXX19O29pdD1MMXQuY29uY2F0KEMxdCk7cFlyPXoxdC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT1KaXx8ZSE9PWhnfSksaFlyPU9iamVjdC5rZXlzKHNhZSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09Sml9KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5rZXlzKHNhZVtlXSl9KS5mbGF0KCk7bVlyPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtYVXIodGhpcyxlKSx0aGlzLmRlZmluaXRpb25zPXt9fXJldHVybiBRVXIoZSxbe2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgcj10aGlzLGk9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShpKSxuPTA7bjxpO24rKylhW25dPWFyZ3VtZW50c1tuXTt2YXIgbz1hLnJlZHVjZSh0aGlzLl9wdWxsRGVmaW5pdGlvbnMse30pO09iamVjdC5rZXlzKG8pLmZvckVhY2goZnVuY3Rpb24ocyl7ci5kZWZpbml0aW9uc1tzXT1WZShWZSh7fSxyLmRlZmluaXRpb25zW3NdfHx7fSksb1tzXSksd2FlKHMsb1tzXSk7dmFyIGw9ZmFlW0ppXVtzXTtsJiZ3YWUobCxvW3NdKSxyaXQoKX0pfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kZWZpbml0aW9ucz17fX19LHtrZXk6Il9wdWxsRGVmaW5pdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHIsaSl7dmFyIGE9aS5wcmVmaXgmJmkuaWNvbk5hbWUmJmkuaWNvbj97MDppfTppO3JldHVybiBPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24obil7dmFyIG89YVtuXSxzPW8ucHJlZml4LGw9by5pY29uTmFtZSxjPW8uaWNvbix1PWNbMl07cltzXXx8KHJbc109e30pLHUubGVuZ3RoPjAmJnUuZm9yRWFjaChmdW5jdGlvbihkKXt0eXBlb2YgZD09InN0cmluZyImJihyW3NdW2RdPWMpfSkscltzXVtsXT1jfSkscn19XSl9KSgpLHNpdD1bXSwkcD17fSxJcD17fSxnWXI9T2JqZWN0LmtleXMoSXApO2xpdD1uZXcgbVlyLHZZcj1mdW5jdGlvbigpe3B0LmF1dG9SZXBsYWNlU3ZnPSExLHB0Lm9ic2VydmVNdXRhdGlvbnM9ITEsX2QoIm5vQXV0byIpfSx4WXI9e2kyc3ZnOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9O3JldHVybiBoYz8oX2QoImJlZm9yZUkyc3ZnIix0KSxBNCgicHNldWRvRWxlbWVudHMyc3ZnIix0KSxBNCgiaTJzdmciLHQpKTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIk9wZXJhdGlvbiByZXF1aXJlcyBhIERPTSBvZiBzb21lIGtpbmQuIikpfSx3YXRjaDpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxyPXQuYXV0b1JlcGxhY2VTdmdSb290O3B0LmF1dG9SZXBsYWNlU3ZnPT09ITEmJihwdC5hdXRvUmVwbGFjZVN2Zz0hMCkscHQub2JzZXJ2ZU11dGF0aW9ucz0hMCx0WXIoZnVuY3Rpb24oKXt3WXIoe2F1dG9SZXBsYWNlU3ZnUm9vdDpyfSksX2QoIndhdGNoIix0KX0pfX0seVlyPXtpY29uOmZ1bmN0aW9uKHQpe2lmKHQ9PT1udWxsKXJldHVybiBudWxsO2lmKE1BKHQpPT09Im9iamVjdCImJnQucHJlZml4JiZ0Lmljb25OYW1lKXJldHVybntwcmVmaXg6dC5wcmVmaXgsaWNvbk5hbWU6VGQodC5wcmVmaXgsdC5pY29uTmFtZSl8fHQuaWNvbk5hbWV9O2lmKEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPT09Mil7dmFyIHI9dFsxXS5pbmRleE9mKCJmYS0iKT09PTA/dFsxXS5zbGljZSgzKTp0WzFdLGk9VEEodFswXSk7cmV0dXJue3ByZWZpeDppLGljb25OYW1lOlRkKGkscil8fHJ9fWlmKHR5cGVvZiB0PT0ic3RyaW5nIiYmKHQuaW5kZXhPZigiIi5jb25jYXQocHQuY3NzUHJlZml4LCItIikpPi0xfHx0Lm1hdGNoKEJHcikpKXt2YXIgYT1fQSh0LnNwbGl0KCIgIikse3NraXBMb29rdXBzOiEwfSk7cmV0dXJue3ByZWZpeDphLnByZWZpeHx8TDQoKSxpY29uTmFtZTpUZChhLnByZWZpeCxhLmljb25OYW1lKXx8YS5pY29uTmFtZX19aWYodHlwZW9mIHQ9PSJzdHJpbmciKXt2YXIgbj1MNCgpO3JldHVybntwcmVmaXg6bixpY29uTmFtZTpUZChuLHQpfHx0fX19fSxTbj17bm9BdXRvOnZZcixjb25maWc6cHQsZG9tOnhZcixwYXJzZTp5WXIsbGlicmFyeTpsaXQsZmluZEljb25EZWZpbml0aW9uOkNhZSx0b0h0bWw6Ymd9LHdZcj1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fSxyPXQuYXV0b1JlcGxhY2VTdmdSb290LGk9cj09PXZvaWQgMD91MTpyOyhPYmplY3Qua2V5cyhrMi5zdHlsZXMpLmxlbmd0aD4wfHxwdC5hdXRvRmV0Y2hTdmcpJiZoYyYmcHQuYXV0b1JlcGxhY2VTdmcmJlNuLmRvbS5pMnN2Zyh7bm9kZTppfSl9O19hZT1rMi5zdHlsZXM7Q1lyPXtmb3VuZDohMSx3aWR0aDo1MTIsaGVpZ2h0OjUxMn07ZGl0PWZ1bmN0aW9uKCl7fSxEYWU9cHQubWVhc3VyZVBlcmZvcm1hbmNlJiZrQSYma0EubWFyayYma0EubWVhc3VyZT9rQTp7bWFyazpkaXQsbWVhc3VyZTpkaXR9LHhnPSdGQSAiNy4yLjAiJyxfWXI9ZnVuY3Rpb24odCl7cmV0dXJuIERhZS5tYXJrKCIiLmNvbmNhdCh4ZywiICIpLmNvbmNhdCh0LCIgYmVnaW5zIikpLGZ1bmN0aW9uKCl7cmV0dXJuIHVpdCh0KX19LHVpdD1mdW5jdGlvbih0KXtEYWUubWFyaygiIi5jb25jYXQoeGcsIiAiKS5jb25jYXQodCwiIGVuZHMiKSksRGFlLm1lYXN1cmUoIiIuY29uY2F0KHhnLCIgIikuY29uY2F0KHQpLCIiLmNvbmNhdCh4ZywiICIpLmNvbmNhdCh0LCIgYmVnaW5zIiksIiIuY29uY2F0KHhnLCIgIikuY29uY2F0KHQsIiBlbmRzIikpfSxFYWU9e2JlZ2luOl9ZcixlbmQ6dWl0fSxBQT1mdW5jdGlvbigpe307REE9e3JlcGxhY2U6ZnVuY3Rpb24odCl7dmFyIHI9dFswXTtpZihyLnBhcmVudE5vZGUpaWYodFsxXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaGl0KGEpLHIpfSksci5nZXRBdHRyaWJ1dGUoQ2QpPT09bnVsbCYmcHQua2VlcE9yaWdpbmFsU291cmNlKXt2YXIgaT11MS5jcmVhdGVDb21tZW50KElZcihyKSk7ci5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChpLHIpfWVsc2Ugci5yZW1vdmUoKX0sbmVzdDpmdW5jdGlvbih0KXt2YXIgcj10WzBdLGk9dFsxXTtpZih+YmFlKHIpLmluZGV4T2YocHQucmVwbGFjZW1lbnRDbGFzcykpcmV0dXJuIERBLnJlcGxhY2UodCk7dmFyIGE9bmV3IFJlZ0V4cCgiIi5jb25jYXQocHQuY3NzUHJlZml4LCItLioiKSk7aWYoZGVsZXRlIGlbMF0uYXR0cmlidXRlcy5pZCxpWzBdLmF0dHJpYnV0ZXMuY2xhc3Mpe3ZhciBuPWlbMF0uYXR0cmlidXRlcy5jbGFzcy5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihzLGwpe3JldHVybiBsPT09cHQucmVwbGFjZW1lbnRDbGFzc3x8bC5tYXRjaChhKT9zLnRvU3ZnLnB1c2gobCk6cy50b05vZGUucHVzaChsKSxzfSx7dG9Ob2RlOltdLHRvU3ZnOltdfSk7aVswXS5hdHRyaWJ1dGVzLmNsYXNzPW4udG9Tdmcuam9pbigiICIpLG4udG9Ob2RlLmxlbmd0aD09PTA/ci5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIik6ci5zZXRBdHRyaWJ1dGUoImNsYXNzIixuLnRvTm9kZS5qb2luKCIgIikpfXZhciBvPWkubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBiZyhzKX0pLmpvaW4oYApgKTtyLnNldEF0dHJpYnV0ZShDZCwiIiksci5pbm5lckhUTUw9b319OyRhZT0hMTtFQT1udWxsO0JZcj1rMi5zdHlsZXM7VllyPWZ1bmN0aW9uKHQpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxpPXIudHJhbnNmb3JtLGE9aT09PXZvaWQgMD90bDppLG49ci5zeW1ib2wsbz1uPT09dm9pZCAwPyExOm4scz1yLm1hc2ssbD1zPT09dm9pZCAwP251bGw6cyxjPXIubWFza0lkLHU9Yz09PXZvaWQgMD9udWxsOmMsZD1yLmNsYXNzZXMsaD1kPT09dm9pZCAwP1tdOmQsZj1yLmF0dHJpYnV0ZXMseD1mPT09dm9pZCAwP3t9OmYsdj1yLnN0eWxlcyxiPXY9PT12b2lkIDA/e306djtpZih0KXt2YXIgeT10LnByZWZpeCx3PXQuaWNvbk5hbWUsaz10Lmljb247cmV0dXJuIExBKFZlKHt0eXBlOiJpY29uIn0sdCksZnVuY3Rpb24oKXtyZXR1cm4gX2QoImJlZm9yZURPTUVsZW1lbnRDcmVhdGlvbiIse2ljb25EZWZpbml0aW9uOnQscGFyYW1zOnJ9KSxUYWUoe2ljb25zOnttYWluOkxhZShrKSxtYXNrOmw/TGFlKGwuaWNvbik6e2ZvdW5kOiExLHdpZHRoOm51bGwsaGVpZ2h0Om51bGwsaWNvbjp7fX19LHByZWZpeDp5LGljb25OYW1lOncsdHJhbnNmb3JtOlZlKFZlKHt9LHRsKSxhKSxzeW1ib2w6byxtYXNrSWQ6dSxleHRyYTp7YXR0cmlidXRlczp4LHN0eWxlczpiLGNsYXNzZXM6aH19KX0pfX0sVVlyPXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57aWNvbjpqWXIoVllyKX19LGhvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue211dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3M6ZnVuY3Rpb24ocil7cmV0dXJuIHIudHJlZUNhbGxiYWNrPXlpdCxyLm5vZGVDYWxsYmFjaz1xWXIscn19fSxwcm92aWRlczpmdW5jdGlvbih0KXt0Lmkyc3ZnPWZ1bmN0aW9uKHIpe3ZhciBpPXIubm9kZSxhPWk9PT12b2lkIDA/dTE6aSxuPXIuY2FsbGJhY2ssbz1uPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTpuO3JldHVybiB5aXQoYSxvKX0sdC5nZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb249ZnVuY3Rpb24ocixpKXt2YXIgYT1pLmljb25OYW1lLG49aS5wcmVmaXgsbz1pLnRyYW5zZm9ybSxzPWkuc3ltYm9sLGw9aS5tYXNrLGM9aS5tYXNrSWQsdT1pLmV4dHJhO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGgpe1Byb21pc2UuYWxsKFtBYWUoYSxuKSxsLmljb25OYW1lP0FhZShsLmljb25OYW1lLGwucHJlZml4KTpQcm9taXNlLnJlc29sdmUoe2ZvdW5kOiExLHdpZHRoOjUxMixoZWlnaHQ6NTEyLGljb246e319KV0pLnRoZW4oZnVuY3Rpb24oZil7dmFyIHg9d0EoZiwyKSx2PXhbMF0sYj14WzFdO2QoW3IsVGFlKHtpY29uczp7bWFpbjp2LG1hc2s6Yn0scHJlZml4Om4saWNvbk5hbWU6YSx0cmFuc2Zvcm06byxzeW1ib2w6cyxtYXNrSWQ6YyxleHRyYTp1LHdhdGNoYWJsZTohMH0pXSl9KS5jYXRjaChoKX0pfSx0LmdlbmVyYXRlQWJzdHJhY3RJY29uPWZ1bmN0aW9uKHIpe3ZhciBpPXIuY2hpbGRyZW4sYT1yLmF0dHJpYnV0ZXMsbj1yLm1haW4sbz1yLnRyYW5zZm9ybSxzPXIuc3R5bGVzLGw9ekEocyk7bC5sZW5ndGg+MCYmKGEuc3R5bGU9bCk7dmFyIGM7cmV0dXJuIHZhZShvKSYmKGM9QTQoImdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZyIse21haW46bix0cmFuc2Zvcm06byxjb250YWluZXJXaWR0aDpuLndpZHRoLGljb25XaWR0aDpuLndpZHRofSkpLGkucHVzaChjfHxuLmljb24pLHtjaGlsZHJlbjppLGF0dHJpYnV0ZXM6YX19fX0sV1lyPXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57bGF5ZXI6ZnVuY3Rpb24ocil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LGE9aS5jbGFzc2VzLG49YT09PXZvaWQgMD9bXTphO3JldHVybiBMQSh7dHlwZToibGF5ZXIifSxmdW5jdGlvbigpe19kKCJiZWZvcmVET01FbGVtZW50Q3JlYXRpb24iLHthc3NlbWJsZXI6cixwYXJhbXM6aX0pO3ZhciBvPVtdO3JldHVybiByKGZ1bmN0aW9uKHMpe0FycmF5LmlzQXJyYXkocyk/cy5tYXAoZnVuY3Rpb24obCl7bz1vLmNvbmNhdChsLmFic3RyYWN0KX0pOm89by5jb25jYXQocy5hYnN0cmFjdCl9KSxbe3RhZzoic3BhbiIsYXR0cmlidXRlczp7Y2xhc3M6WyIiLmNvbmNhdChwdC5jc3NQcmVmaXgsIi1sYXllcnMiKV0uY29uY2F0KE0yKG4pKS5qb2luKCIgIil9LGNoaWxkcmVuOm99XX0pfX19fSxHWXI9e21peG91dDpmdW5jdGlvbigpe3JldHVybntjb3VudGVyOmZ1bmN0aW9uKHIpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dm9pZCAwP2FyZ3VtZW50c1sxXTp7fSxhPWkudGl0bGUsbj1hPT09dm9pZCAwP251bGw6YSxvPWkuY2xhc3NlcyxzPW89PT12b2lkIDA/W106byxsPWkuYXR0cmlidXRlcyxjPWw9PT12b2lkIDA/e306bCx1PWkuc3R5bGVzLGQ9dT09PXZvaWQgMD97fTp1O3JldHVybiBMQSh7dHlwZToiY291bnRlciIsY29udGVudDpyfSxmdW5jdGlvbigpe3JldHVybiBfZCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDpyLHBhcmFtczppfSksellyKHtjb250ZW50OnIudG9TdHJpbmcoKSx0aXRsZTpuLGV4dHJhOnthdHRyaWJ1dGVzOmMsc3R5bGVzOmQsY2xhc3NlczpbIiIuY29uY2F0KHB0LmNzc1ByZWZpeCwiLWxheWVycy1jb3VudGVyIildLmNvbmNhdChNMihzKSl9fSl9KX19fX0sWVlyPXttaXhvdXQ6ZnVuY3Rpb24oKXtyZXR1cm57dGV4dDpmdW5jdGlvbihyKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sYT1pLnRyYW5zZm9ybSxuPWE9PT12b2lkIDA/dGw6YSxvPWkuY2xhc3NlcyxzPW89PT12b2lkIDA/W106byxsPWkuYXR0cmlidXRlcyxjPWw9PT12b2lkIDA/e306bCx1PWkuc3R5bGVzLGQ9dT09PXZvaWQgMD97fTp1O3JldHVybiBMQSh7dHlwZToidGV4dCIsY29udGVudDpyfSxmdW5jdGlvbigpe3JldHVybiBfZCgiYmVmb3JlRE9NRWxlbWVudENyZWF0aW9uIix7Y29udGVudDpyLHBhcmFtczppfSksY2l0KHtjb250ZW50OnIsdHJhbnNmb3JtOlZlKFZlKHt9LHRsKSxuKSxleHRyYTp7YXR0cmlidXRlczpjLHN0eWxlczpkLGNsYXNzZXM6WyIiLmNvbmNhdChwdC5jc3NQcmVmaXgsIi1sYXllcnMtdGV4dCIpXS5jb25jYXQoTTIocykpfX0pfSl9fX0scHJvdmlkZXM6ZnVuY3Rpb24odCl7dC5nZW5lcmF0ZUxheWVyc1RleHQ9ZnVuY3Rpb24ocixpKXt2YXIgYT1pLnRyYW5zZm9ybSxuPWkuZXh0cmEsbz1udWxsLHM9bnVsbDtpZihuMXQpe3ZhciBsPXBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUocikuZm9udFNpemUsMTApLGM9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtvPWMud2lkdGgvbCxzPWMuaGVpZ2h0L2x9cmV0dXJuIFByb21pc2UucmVzb2x2ZShbcixjaXQoe2NvbnRlbnQ6ci5pbm5lckhUTUwsd2lkdGg6byxoZWlnaHQ6cyx0cmFuc2Zvcm06YSxleHRyYTpuLHdhdGNoYWJsZTohMH0pXSl9fX0sd2l0PW5ldyBSZWdFeHAoJyInLCJ1ZyIpLE1pdD1bMTEwNTkyMCwxMTEyMzE5XSxraXQ9VmUoVmUoVmUoVmUoe30se0ZvbnRBd2Vzb21lOntub3JtYWw6ImZhcyIsNDAwOiJmYXMifX0pLF9XciksUEdyKSxGV3IpLFBhZT1PYmplY3Qua2V5cyhraXQpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlW3QudG9Mb3dlckNhc2UoKV09a2l0W3RdLGV9LHt9KSxaWXI9T2JqZWN0LmtleXMoUGFlKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXt2YXIgcj1QYWVbdF07cmV0dXJuIGVbdF09cls5MDBdfHxNMihPYmplY3QuZW50cmllcyhyKSlbMF1bMV0sZX0se30pO3Racj1mdW5jdGlvbih0KXtyZXR1cm4hIXQmJkkxdC5zb21lKGZ1bmN0aW9uKHIpe3JldHVybiB0LmluY2x1ZGVzKHIpfSl9LHJacj1mdW5jdGlvbih0KXtpZighdClyZXR1cm5bXTt2YXIgcj1uZXcgU2V0LGk9dC5zcGxpdCgvLCg/IVteKCldKlwpKS8pLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gbC50cmltKCl9KTtpPWkuZmxhdE1hcChmdW5jdGlvbihsKXtyZXR1cm4gbC5pbmNsdWRlcygiKCIpP2w6bC5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy50cmltKCl9KX0pO3ZhciBhPXhBKGkpLG47dHJ5e2ZvcihhLnMoKTshKG49YS5uKCkpLmRvbmU7KXt2YXIgbz1uLnZhbHVlO2lmKHRacihvKSl7dmFyIHM9STF0LnJlZHVjZShmdW5jdGlvbihsLGMpe3JldHVybiBsLnJlcGxhY2UoYywiIil9LG8pO3MhPT0iIiYmcyE9PSIqIiYmci5hZGQocyl9fX1jYXRjaChsKXthLmUobCl9ZmluYWxseXthLmYoKX1yZXR1cm4gcn07aVpyPXtob29rczpmdW5jdGlvbigpe3JldHVybnttdXRhdGlvbk9ic2VydmVyQ2FsbGJhY2tzOmZ1bmN0aW9uKHIpe3JldHVybiByLnBzZXVkb0VsZW1lbnRzQ2FsbGJhY2s9eml0LHJ9fX0scHJvdmlkZXM6ZnVuY3Rpb24odCl7dC5wc2V1ZG9FbGVtZW50czJzdmc9ZnVuY3Rpb24ocil7dmFyIGk9ci5ub2RlLGE9aT09PXZvaWQgMD91MTppO3B0LnNlYXJjaFBzZXVkb0VsZW1lbnRzJiZ6aXQoYSl9fX0sQ2l0PSExLGFacj17bWl4b3V0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbTp7dW53YXRjaDpmdW5jdGlvbigpe2dpdCgpLENpdD0hMH19fX0saG9va3M6ZnVuY3Rpb24oKXtyZXR1cm57Ym9vdHN0cmFwOmZ1bmN0aW9uKCl7Yml0KHphZSgibXV0YXRpb25PYnNlcnZlckNhbGxiYWNrcyIse30pKX0sbm9BdXRvOmZ1bmN0aW9uKCl7UFlyKCl9LHdhdGNoOmZ1bmN0aW9uKHIpe3ZhciBpPXIub2JzZXJ2ZU11dGF0aW9uc1Jvb3Q7Q2l0P0lhZSgpOmJpdCh6YWUoIm11dGF0aW9uT2JzZXJ2ZXJDYWxsYmFja3MiLHtvYnNlcnZlTXV0YXRpb25zUm9vdDppfSkpfX19fSxUaXQ9ZnVuY3Rpb24odCl7dmFyIHI9e3NpemU6MTYseDowLHk6MCxmbGlwWDohMSxmbGlwWTohMSxyb3RhdGU6MH07cmV0dXJuIHQudG9Mb3dlckNhc2UoKS5zcGxpdCgiICIpLnJlZHVjZShmdW5jdGlvbihpLGEpe3ZhciBuPWEudG9Mb3dlckNhc2UoKS5zcGxpdCgiLSIpLG89blswXSxzPW4uc2xpY2UoMSkuam9pbigiLSIpO2lmKG8mJnM9PT0iaCIpcmV0dXJuIGkuZmxpcFg9ITAsaTtpZihvJiZzPT09InYiKXJldHVybiBpLmZsaXBZPSEwLGk7aWYocz1wYXJzZUZsb2F0KHMpLGlzTmFOKHMpKXJldHVybiBpO3N3aXRjaChvKXtjYXNlImdyb3ciOmkuc2l6ZT1pLnNpemUrczticmVhaztjYXNlInNocmluayI6aS5zaXplPWkuc2l6ZS1zO2JyZWFrO2Nhc2UibGVmdCI6aS54PWkueC1zO2JyZWFrO2Nhc2UicmlnaHQiOmkueD1pLngrczticmVhaztjYXNlInVwIjppLnk9aS55LXM7YnJlYWs7Y2FzZSJkb3duIjppLnk9aS55K3M7YnJlYWs7Y2FzZSJyb3RhdGUiOmkucm90YXRlPWkucm90YXRlK3M7YnJlYWt9cmV0dXJuIGl9LHIpfSxuWnI9e21peG91dDpmdW5jdGlvbigpe3JldHVybntwYXJzZTp7dHJhbnNmb3JtOmZ1bmN0aW9uKHIpe3JldHVybiBUaXQocil9fX19LGhvb2tzOmZ1bmN0aW9uKCl7cmV0dXJue3BhcnNlTm9kZUF0dHJpYnV0ZXM6ZnVuY3Rpb24ocixpKXt2YXIgYT1pLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS10cmFuc2Zvcm0iKTtyZXR1cm4gYSYmKHIudHJhbnNmb3JtPVRpdChhKSkscn19fSxwcm92aWRlczpmdW5jdGlvbih0KXt0LmdlbmVyYXRlQWJzdHJhY3RUcmFuc2Zvcm1Hcm91cGluZz1mdW5jdGlvbihyKXt2YXIgaT1yLm1haW4sYT1yLnRyYW5zZm9ybSxuPXIuY29udGFpbmVyV2lkdGgsbz1yLmljb25XaWR0aCxzPXt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiLmNvbmNhdChuLzIsIiAyNTYpIil9LGw9InRyYW5zbGF0ZSgiLmNvbmNhdChhLngqMzIsIiwgIikuY29uY2F0KGEueSozMiwiKSAiKSxjPSJzY2FsZSgiLmNvbmNhdChhLnNpemUvMTYqKGEuZmxpcFg/LTE6MSksIiwgIikuY29uY2F0KGEuc2l6ZS8xNiooYS5mbGlwWT8tMToxKSwiKSAiKSx1PSJyb3RhdGUoIi5jb25jYXQoYS5yb3RhdGUsIiAwIDApIiksZD17dHJhbnNmb3JtOiIiLmNvbmNhdChsLCIgIikuY29uY2F0KGMsIiAiKS5jb25jYXQodSl9LGg9e3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KG8vMiotMSwiIC0yNTYpIil9LGY9e291dGVyOnMsaW5uZXI6ZCxwYXRoOmh9O3JldHVybnt0YWc6ImciLGF0dHJpYnV0ZXM6VmUoe30sZi5vdXRlciksY2hpbGRyZW46W3t0YWc6ImciLGF0dHJpYnV0ZXM6VmUoe30sZi5pbm5lciksY2hpbGRyZW46W3t0YWc6aS5pY29uLnRhZyxjaGlsZHJlbjppLmljb24uY2hpbGRyZW4sYXR0cmlidXRlczpWZShWZSh7fSxpLmljb24uYXR0cmlidXRlcyksZi5wYXRoKX1dfV19fX19LE5hZT17eDowLHk6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn07c1pyPXtob29rczpmdW5jdGlvbigpe3JldHVybntwYXJzZU5vZGVBdHRyaWJ1dGVzOmZ1bmN0aW9uKHIsaSl7dmFyIGE9aS5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtbWFzayIpLG49YT9fQShhLnNwbGl0KCIgIikubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBvLnRyaW0oKX0pKTphaXQoKTtyZXR1cm4gbi5wcmVmaXh8fChuLnByZWZpeD1MNCgpKSxyLm1hc2s9bixyLm1hc2tJZD1pLmdldEF0dHJpYnV0ZSgiZGF0YS1mYS1tYXNrLWlkIikscn19fSxwcm92aWRlczpmdW5jdGlvbih0KXt0LmdlbmVyYXRlQWJzdHJhY3RNYXNrPWZ1bmN0aW9uKHIpe3ZhciBpPXIuY2hpbGRyZW4sYT1yLmF0dHJpYnV0ZXMsbj1yLm1haW4sbz1yLm1hc2sscz1yLm1hc2tJZCxsPXIudHJhbnNmb3JtLGM9bi53aWR0aCx1PW4uaWNvbixkPW8ud2lkdGgsaD1vLmljb24sZj1RR3Ioe3RyYW5zZm9ybTpsLGNvbnRhaW5lcldpZHRoOmQsaWNvbldpZHRoOmN9KSx4PXt0YWc6InJlY3QiLGF0dHJpYnV0ZXM6VmUoVmUoe30sTmFlKSx7fSx7ZmlsbDoid2hpdGUifSl9LHY9dS5jaGlsZHJlbj97Y2hpbGRyZW46dS5jaGlsZHJlbi5tYXAoX2l0KX06e30sYj17dGFnOiJnIixhdHRyaWJ1dGVzOlZlKHt9LGYuaW5uZXIpLGNoaWxkcmVuOltfaXQoVmUoe3RhZzp1LnRhZyxhdHRyaWJ1dGVzOlZlKFZlKHt9LHUuYXR0cmlidXRlcyksZi5wYXRoKX0sdikpXX0seT17dGFnOiJnIixhdHRyaWJ1dGVzOlZlKHt9LGYub3V0ZXIpLGNoaWxkcmVuOltiXX0sdz0ibWFzay0iLmNvbmNhdChzfHxIMXQoKSksaz0iY2xpcC0iLmNvbmNhdChzfHxIMXQoKSksTz17dGFnOiJtYXNrIixhdHRyaWJ1dGVzOlZlKFZlKHt9LE5hZSkse30se2lkOncsbWFza1VuaXRzOiJ1c2VyU3BhY2VPblVzZSIsbWFza0NvbnRlbnRVbml0czoidXNlclNwYWNlT25Vc2UifSksY2hpbGRyZW46W3gseV19LHo9e3RhZzoiZGVmcyIsY2hpbGRyZW46W3t0YWc6ImNsaXBQYXRoIixhdHRyaWJ1dGVzOntpZDprfSxjaGlsZHJlbjpvWnIoaCl9LE9dfTtyZXR1cm4gaS5wdXNoKHose3RhZzoicmVjdCIsYXR0cmlidXRlczpWZSh7ZmlsbDoiY3VycmVudENvbG9yIiwiY2xpcC1wYXRoIjoidXJsKCMiLmNvbmNhdChrLCIpIiksbWFzazoidXJsKCMiLmNvbmNhdCh3LCIpIil9LE5hZSl9KSx7Y2hpbGRyZW46aSxhdHRyaWJ1dGVzOmF9fX19LGxacj17cHJvdmlkZXM6ZnVuY3Rpb24odCl7dmFyIHI9ITE7VDQubWF0Y2hNZWRpYSYmKHI9VDQubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzKSx0Lm1pc3NpbmdJY29uQWJzdHJhY3Q9ZnVuY3Rpb24oKXt2YXIgaT1bXSxhPXtmaWxsOiJjdXJyZW50Q29sb3IifSxuPXthdHRyaWJ1dGVUeXBlOiJYTUwiLHJlcGVhdENvdW50OiJpbmRlZmluaXRlIixkdXI6IjJzIn07aS5wdXNoKHt0YWc6InBhdGgiLGF0dHJpYnV0ZXM6VmUoVmUoe30sYSkse30se2Q6Ik0xNTYuNSw0NDcuN2wtMTIuNiwyOS41Yy0xOC43LTkuNS0zNS45LTIxLjItNTEuNS0zNC45bDIyLjctMjIuN0MxMjcuNiw0MzAuNSwxNDEuNSw0NDAsMTU2LjUsNDQ3Ljd6IE00MC42LDI3Mkg4LjUgYzEuNCwyMS4yLDUuNCw0MS43LDExLjcsNjEuMUw1MCwzMjEuMkM0NS4xLDMwNS41LDQxLjgsMjg5LDQwLjYsMjcyeiBNNDAuNiwyNDBjMS40LTE4LjgsNS4yLTM3LDExLjEtNTQuMWwtMjkuNS0xMi42IEMxNC43LDE5NC4zLDEwLDIxNi43LDguNSwyNDBINDAuNnogTTY0LjMsMTU2LjVjNy44LTE0LjksMTcuMi0yOC44LDI4LjEtNDEuNUw2OS43LDkyLjNjLTEzLjcsMTUuNi0yNS41LDMyLjgtMzQuOSw1MS41IEw2NC4zLDE1Ni41eiBNMzk3LDQxOS42Yy0xMy45LDEyLTI5LjQsMjIuMy00Ni4xLDMwLjRsMTEuOSwyOS44YzIwLjctOS45LDM5LjgtMjIuNiw1Ni45LTM3LjZMMzk3LDQxOS42eiBNMTE1LDkyLjQgYzEzLjktMTIsMjkuNC0yMi4zLDQ2LjEtMzAuNGwtMTEuOS0yOS44Yy0yMC43LDkuOS0zOS44LDIyLjYtNTYuOCwzNy42TDExNSw5Mi40eiBNNDQ3LjcsMzU1LjVjLTcuOCwxNC45LTE3LjIsMjguOC0yOC4xLDQxLjUgbDIyLjcsMjIuN2MxMy43LTE1LjYsMjUuNS0zMi45LDM0LjktNTEuNUw0NDcuNywzNTUuNXogTTQ3MS40LDI3MmMtMS40LDE4LjgtNS4yLDM3LTExLjEsNTQuMWwyOS41LDEyLjYgYzcuNS0yMS4xLDEyLjItNDMuNSwxMy42LTY2LjhINDcxLjR6IE0zMjEuMiw0NjJjLTE1LjcsNS0zMi4yLDguMi00OS4yLDkuNHYzMi4xYzIxLjItMS40LDQxLjctNS40LDYxLjEtMTEuN0wzMjEuMiw0NjJ6IE0yNDAsNDcxLjRjLTE4LjgtMS40LTM3LTUuMi01NC4xLTExLjFsLTEyLjYsMjkuNWMyMS4xLDcuNSw0My41LDEyLjIsNjYuOCwxMy42VjQ3MS40eiBNNDYyLDE5MC44YzUsMTUuNyw4LjIsMzIuMiw5LjQsNDkuMmgzMi4xIGMtMS40LTIxLjItNS40LTQxLjctMTEuNy02MS4xTDQ2MiwxOTAuOHogTTkyLjQsMzk3Yy0xMi0xMy45LTIyLjMtMjkuNC0zMC40LTQ2LjFsLTI5LjgsMTEuOWM5LjksMjAuNywyMi42LDM5LjgsMzcuNiw1Ni45IEw5Mi40LDM5N3ogTTI3Miw0MC42YzE4LjgsMS40LDM2LjksNS4yLDU0LjEsMTEuMWwxMi42LTI5LjVDMzE3LjcsMTQuNywyOTUuMywxMCwyNzIsOC41VjQwLjZ6IE0xOTAuOCw1MCBjMTUuNy01LDMyLjItOC4yLDQ5LjItOS40VjguNWMtMjEuMiwxLjQtNDEuNyw1LjQtNjEuMSwxMS43TDE5MC44LDUweiBNNDQyLjMsOTIuM0w0MTkuNiwxMTVjMTIsMTMuOSwyMi4zLDI5LjQsMzAuNSw0Ni4xIGwyOS44LTExLjlDNDcwLDEyOC41LDQ1Ny4zLDEwOS40LDQ0Mi4zLDkyLjN6IE0zOTcsOTIuNGwyMi43LTIyLjdjLTE1LjYtMTMuNy0zMi44LTI1LjUtNTEuNS0zNC45bC0xMi42LDI5LjUgQzM3MC40LDcyLjEsMzg0LjQsODEuNSwzOTcsOTIuNHoifSl9KTt2YXIgbz1WZShWZSh7fSxuKSx7fSx7YXR0cmlidXRlTmFtZToib3BhY2l0eSJ9KSxzPXt0YWc6ImNpcmNsZSIsYXR0cmlidXRlczpWZShWZSh7fSxhKSx7fSx7Y3g6IjI1NiIsY3k6IjM2NCIscjoiMjgifSksY2hpbGRyZW46W119O3JldHVybiByfHxzLmNoaWxkcmVuLnB1c2goe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpWZShWZSh7fSxuKSx7fSx7YXR0cmlidXRlTmFtZToiciIsdmFsdWVzOiIyODsxNDsyODsyODsxNDsyODsifSl9LHt0YWc6ImFuaW1hdGUiLGF0dHJpYnV0ZXM6VmUoVmUoe30sbykse30se3ZhbHVlczoiMTswOzE7MTswOzE7In0pfSksaS5wdXNoKHMpLGkucHVzaCh7dGFnOiJwYXRoIixhdHRyaWJ1dGVzOlZlKFZlKHt9LGEpLHt9LHtvcGFjaXR5OiIxIixkOiJNMjYzLjcsMzEyaC0xNmMtNi42LDAtMTItNS40LTEyLTEyYzAtNzEsNzcuNC02My45LDc3LjQtMTA3LjhjMC0yMC0xNy44LTQwLjItNTcuNC00MC4yYy0yOS4xLDAtNDQuMyw5LjYtNTkuMiwyOC43IGMtMy45LDUtMTEuMSw2LTE2LjIsMi40bC0xMy4xLTkuMmMtNS42LTMuOS02LjktMTEuOC0yLjYtMTcuMmMyMS4yLTI3LjIsNDYuNC00NC43LDkxLjItNDQuN2M1Mi4zLDAsOTcuNCwyOS44LDk3LjQsODAuMiBjMCw2Ny42LTc3LjQsNjMuNS03Ny40LDEwNy44QzI3NS43LDMwNi42LDI3MC4zLDMxMiwyNjMuNywzMTJ6In0pLGNoaWxkcmVuOnI/W106W3t0YWc6ImFuaW1hdGUiLGF0dHJpYnV0ZXM6VmUoVmUoe30sbykse30se3ZhbHVlczoiMTswOzA7MDswOzE7In0pfV19KSxyfHxpLnB1c2goe3RhZzoicGF0aCIsYXR0cmlidXRlczpWZShWZSh7fSxhKSx7fSx7b3BhY2l0eToiMCIsZDoiTTIzMi41LDEzNC41bDcsMTY4YzAuMyw2LjQsNS42LDExLjUsMTIsMTEuNWg5YzYuNCwwLDExLjctNS4xLDEyLTExLjVsNy0xNjhjMC4zLTYuOC01LjItMTIuNS0xMi0xMi41aC0yMyBDMjM3LjcsMTIyLDIzMi4yLDEyNy43LDIzMi41LDEzNC41eiJ9KSxjaGlsZHJlbjpbe3RhZzoiYW5pbWF0ZSIsYXR0cmlidXRlczpWZShWZSh7fSxvKSx7fSx7dmFsdWVzOiIwOzA7MTsxOzA7MDsifSl9XX0pLHt0YWc6ImciLGF0dHJpYnV0ZXM6e2NsYXNzOiJtaXNzaW5nIn0sY2hpbGRyZW46aX19fX0sY1pyPXtob29rczpmdW5jdGlvbigpe3JldHVybntwYXJzZU5vZGVBdHRyaWJ1dGVzOmZ1bmN0aW9uKHIsaSl7dmFyIGE9aS5nZXRBdHRyaWJ1dGUoImRhdGEtZmEtc3ltYm9sIiksbj1hPT09bnVsbD8hMTphPT09IiI/ITA6YTtyZXR1cm4gci5zeW1ib2w9bixyfX19fSxkWnI9W2VZcixVWXIsV1lyLEdZcixZWXIsaVpyLGFacixuWnIsc1pyLGxacixjWnJdO2JZcihkWnIse21peG91dHNUbzpTbn0pO3Vacj1Tbi5ub0F1dG8scFpyPVNuLmNvbmZpZyxoWnI9U24ubGlicmFyeSxmWnI9U24uZG9tLG1acj1Tbi5wYXJzZSxnWnI9U24uZmluZEljb25EZWZpbml0aW9uLGJacj1Tbi50b0h0bWwsRmFlPVNuLmljb24sdlpyPVNuLmxheWVyLHhacj1Tbi50ZXh0LHlacj1Tbi5jb3VudGVyfSk7dmFyIHdacixPYWUsQWl0LERpdCxFaXQsJGl0LFJhZSxJaXQsUGl0LE5pdCxGaXQsT2l0LFJpdCxCaXQsSGl0LHFpdCxqaXQsVml0LFVpdCxXaXQsR2l0LFlpdCxaaXQsWGl0LFFpdCxKaXQsS2l0LGVhdCx0YXQsQmFlLHJhdCxpYXQsYWF0LG5hdCxvYXQsc2F0LGxhdCxjYXQsZGF0LHVhdCxwYXQsaGF0LGZhdCxtYXQsZ2F0LGJhdCx2YXQseGF0LHlhdCxIYWUsd2F0LE1hdCxrYXQsU2F0LHphdCxDYXQsVGF0LF9hdCxMYXQsQWF0LERhdCxFYXQsJGF0LElhdCxQYXQsTmF0LEZhdCxPYXQsUmF0LEJhdCxIYXQscWFlLHFhdCxqYXQsVmF0LFVhdCxXYXQsR2F0LFlhdCxaYXQsWGF0LFFhdCxKYXQsS2F0LGVudCx0bnQscm50LGludCxhbnQsbm50LG9udCxzbnQsbG50LGNudCxkbnQsdW50LHBudCxobnQsZm50LG1udCxnbnQsYm50LHZudCx4bnQseW50LHdudCxNbnQsa250LFNudCx6bnQsQ250LFRudCxfbnQsSUEsTG50LEFudCxqYWUsRG50LEVudCwkbnQsVmFlLEludCxQbnQsJEEsTm50LEZudCxVYWUsT250LFJudCxCbnQsSG50LHFudCxXYWUsam50LFZudCxVbnQsV250LEdudCxZbnQsWm50LFhudCxRbnQsSm50LEdhZSxLbnQsZW90LHRvdCxyb3QsaW90LGFvdCxub3Qsb290LHNvdCxZYWUsbG90LGNvdCxkb3QsdW90LHBvdCxob3QsZm90LG1vdCxaYWUsZ290LGJvdCx2b3QsWGFlLHhvdCx5b3Qsd290LE1vdCxrb3QsU290LHpvdCxDb3QsVG90LF9vdCxMb3QsQW90LERvdCxFb3QsJG90LElvdCxQb3QsTm90LEZvdCxPb3QsUm90LEJvdCxIb3QscW90LGpvdCxWb3QsVW90LFFhZSxXb3QsR290LFlvdCxab3QsWG90LFFvdCxKb3QsSmFlLEtvdCxlMnQsdDJ0LHIydCxpMnQsYTJ0LG4ydCxvMnQsczJ0LGwydCxjMnQsZDJ0LHUydCxwMnQsaDJ0LGYydCxtMnQsZzJ0LGIydCx2MnQseDJ0LHkydCx3MnQsTTJ0LGsydCxTMnQsejJ0LEMydCxUMnQsXzJ0LEwydCxBMnQsRDJ0LEUydCwkMnQsSTJ0LFAydCxOMnQsRjJ0LE8ydCxSMnQsQjJ0LFBBLEgydCxxMnQsajJ0LFYydCxVMnQsS2FlLFcydCxHMnQsWTJ0LE5BLFoydCxYMnQsUTJ0LEoydCxLMnQsZXN0LGVuZSx0c3QscnN0LGlzdCxhc3QsbnN0LG9zdCxzc3QsbHN0LGNzdCxkc3QsdXN0LHBzdCxoc3QsZnN0LG1zdCxnc3QseWcsYnN0LHZzdCx4c3QseXN0LHdzdCxNc3Qsa3N0LFNzdCx6c3QsQ3N0LFRzdCxfc3QsTHN0LEFzdCxEc3QsRXN0LCRzdCxJc3QsUHN0LE5zdCxGc3QsT3N0LFJzdCxCc3QsSHN0LHFzdCxqc3QsVnN0LFVzdCxXc3QsR3N0LFlzdCxac3QsWHN0LFFzdCxKc3QsS3N0LGVsdCx0bHQsdG5lLHJsdCxpbHQsYWx0LG5sdCxvbHQsc2x0LGxsdCxjbHQsZGx0LHVsdCxwbHQsaGx0LGZsdCxtbHQsZ2x0LHJuZSxibHQsdmx0LHhsdCx5bHQsd2x0LE1sdCxpbmUsa2x0LFNsdCx6bHQsQ2x0LFRsdCxfbHQsTGx0LEFsdCxEbHQsRWx0LCRsdCxJbHQsUGx0LE5sdCxGbHQsT2x0LFJsdCxCbHQsSGx0LHFsdCxqbHQsVmx0LFVsdCxXbHQsR2x0LFlsdCxabHQsWGx0LGFuZSxGQSxRbHQsSmx0LEtsdCxlY3QsdGN0LHJjdCxpY3QsYWN0LG5jdCxvY3Qsc2N0LGxjdCxubmUsY2N0LGRjdCx1Y3QscGN0LGhjdCxmY3QsbWN0LGdjdCxPQSxiY3QsdmN0LHhjdCx5Y3Qsd2N0LE1jdCxrY3QsU2N0LHpjdCxDY3QsVGN0LF9jdCxMY3Qsb25lLEFjdCxEY3QsRWN0LCRjdCxJY3QsUGN0LE5jdCxGY3QsT2N0LFJjdCxCY3QsSGN0LHFjdCxqY3QsVmN0LFVjdCxXY3Qsc25lLEdjdCxZY3QsWmN0LGxuZSxYY3QsUWN0LEpjdCxLY3QsUkEsZTB0LGNuZSx0MHQscjB0LGkwdCxhMHQsbjB0LG8wdCxkbmUsczB0LGwwdCxjMHQsZDB0LHUwdCxwMHQsaDB0LGYwdCxtMHQsZzB0LGIwdCx2MHQseDB0LHkwdCx3MHQsTTB0LGswdCxTMHQsejB0LEMwdCxUMHQsXzB0LEwwdCxBMHQsRDB0LHVuZSxFMHQsJDB0LEkwdCxQMHQsTjB0LEYwdCxPMHQsUjB0LHBuZSxCMHQsSDB0LHEwdCxqMHQsVjB0LFUwdCxXMHQsRzB0LFkwdCxaMHQsWDB0LFEwdCxKMHQsSzB0LGhuZSxlNHQsdDR0LHI0dCxpNHQsYTR0LG40dCxvNHQsczR0LGw0dCxjNHQsZDR0LHU0dCxwNHQsaDR0LGY0dCxmbmUsbTR0LGc0dCxiNHQsdjR0LHg0dCx5NHQsdzR0LE00dCxrNHQsUzR0LHo0dCxDNHQsVDR0LF80dCxCQSxMNHQsQTR0LEQ0dCxFNHQsJDR0LEk0dCxQNHQsTjR0LEY0dCxPNHQsbW5lLFI0dCxCNHQsSDR0LHE0dCxqNHQsVjR0LFU0dCxXNHQsRzR0LFk0dCxaNHQsWDR0LFE0dCxKNHQsSzR0LGUzdCx0M3QscjN0LGkzdCxhM3QsbjN0LG8zdCxzM3QsbDN0LGMzdCxkM3QsdTN0LHAzdCxoM3QsZjN0LG0zdCxnM3QsYjN0LHYzdCx4M3QseTN0LHczdCxNM3QsZ25lLGszdCxTM3QsejN0LEMzdCxUM3QsYm5lLF8zdCxMM3QsQTN0LEQzdCxFM3QsJDN0LE1acixJM3Q9cCgoKT0+e3dacj0iZmFiIixPYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdpdGh1YiIsaWNvbjpbNDQ4LDUxMixbImdpdGh1Yi1zcXVhcmUiXSwiZjA5MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjY1LjggNDA3LjdjMC0xLjggMC02IC4xLTExLjYgLjEtMTEuNCAuMS0yOC44IC4xLTQzLjcgMC0xNS42LTUuMi0yNS41LTExLjMtMzAuNyAzNy00LjEgNzYtOS4yIDc2LTczLjEgMC0xOC4yLTYuNS0yNy4zLTE3LjEtMzkgMS43LTQuMyA3LjQtMjItMS43LTQ1LTEzLjktNC4zLTQ1LjcgMTcuOS00NS43IDE3LjktMjYuNi03LjUtNTYuNi03LjUtODMuMiAwIDAgMC0zMS44LTIyLjItNDUuNy0xNy45LTkuMSAyMi45LTMuNSA0MC42LTEuNyA0NS0xMC42IDExLjctMTUuNiAyMC44LTE1LjYgMzkgMCA2My42IDM3LjMgNjkgNzQuMyA3My4xLTQuOCA0LjMtOS4xIDExLjctMTAuNiAyMi4zLTkuNSA0LjMtMzMuOCAxMS43LTQ4LjMtMTMuOS05LjEtMTUuOC0yNS41LTE3LjEtMjUuNS0xNy4xLTE2LjItLjItMS4xIDEwLjItMS4xIDEwLjIgMTAuOCA1IDE4LjQgMjQuMiAxOC40IDI0LjIgOS43IDI5LjcgNTYuMSAxOS43IDU2LjEgMTkuNyAwIDkgLjEgMjEuNyAuMSAzMC42IDAgNC44IC4xIDguNiAuMSAxMCAwIDQuMy0zIDkuNS0xMS41IDgtNjYtMjIuMS0xMTIuMi04NC45LTExMi4yLTE1OC4zIDAtOTEuOCA3MC4yLTE2MS41IDE2Mi0xNjEuNVMzODggMTY1LjYgMzg4IDI1Ny40Yy4xIDczLjQtNDQuNyAxMzYuMy0xMTAuNyAxNTguMy04LjQgMS41LTExLjUtMy43LTExLjUtOHptLTkwLjUtNTQuOGMtLjItMS41IDEuMS0yLjggMy0zLjIgMS45LS4yIDMuNyAuNiAzLjkgMS45IC4zIDEuMy0xIDIuNi0zIDMtMS45IC40LTMuNy0uNC0zLjktMS43em0tOS4xIDMuMmMtMi4yIC4yLTMuNy0uOS0zLjctMi40IDAtMS4zIDEuNS0yLjQgMy41LTIuNCAxLjktLjIgMy43IC45IDMuNyAyLjQgMCAxLjMtMS41IDIuNC0zLjUgMi40em0tMTQuMy0yLjJjLTEuOS0uNC0zLjItMS45LTIuOC0zLjJzMi40LTEuOSA0LjEtMS41YzIgLjYgMy4zIDIuMSAyLjggMy40LS40IDEuMy0yLjQgMS45LTQuMSAxLjN6bS0xMi41LTcuM2MtMS41LTEuMy0xLjktMy4yLS45LTQuMSAuOS0xLjEgMi44LS45IDQuMyAuNiAxLjMgMS4zIDEuOCAzLjMgLjkgNC4xLS45IDEuMS0yLjggLjktNC4zLS42em0tOC41LTEwYy0xLjEtMS41LTEuMS0zLjIgMC0zLjkgMS4xLS45IDIuOC0uMiAzLjcgMS4zIDEuMSAxLjUgMS4xIDMuMyAwIDQuMS0uOSAuNi0yLjYgMC0zLjctMS41em0tNi4zLTguOGMtMS4xLTEuMy0xLjMtMi44LS40LTMuNSAuOS0uOSAyLjQtLjQgMy41IC42IDEuMSAxLjMgMS4zIDIuOCAuNCAzLjUtLjkgLjktMi40IC40LTMuNS0uNnptLTYtNi40Yy0xLjMtLjYtMS45LTEuNy0xLjUtMi42IC40LS42IDEuNS0uOSAyLjgtLjQgMS4zIC43IDEuOSAxLjggMS41IDIuNi0uNCAuOS0xLjcgMS4xLTIuOCAuNHoiXX0sQWl0PU9hZSxEaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhpbmstcGVha3MiLGljb246WzU3Niw1MTIsW10sImY3MzEiLCJNNDY1LjQgNDA5LjRsODcuMS0xNTAuMi0zMi0uMy01NS4xIDk1LTIwNi4yLTM1My45LTIzNi4yIDQwNy40IDMyIC4zIDIwNC4yLTM1Mi4xIDIwNi4yIDM1My44ek0xMTAuMSAzNjUuM2wzMi4xIDAgMTE3LjQtMjAyLjUgMjAzLjQgMzQ5LjEgMzIuNSAuMS0yMzUuOC00MDQuNi0xNDkuNiAyNTcuOXoiXX0sRWl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1kcml2ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjNhYSIsIk0zMzkgMzE0LjlMMTc1LjQgMzIgMzM2LjYgMzIgNTAwLjIgMzE0LjkgMzM5IDMxNC45ek0yMDEuNSAzMzguNWwtODAuNiAxNDEuNSAzMTAuNSAwIDgwLjYtMTQxLjUtMzEwLjUgMHpNMTU0LjEgNjcuNEwwIDMzOC41IDgwLjYgNDgwIDIzNyAyMDguOCAxNTQuMSA2Ny40eiJdfSwkaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXV0b3ByZWZpeGVyIixpY29uOls2NDAsNTEyLFtdLCJmNDFjIiwiTTMxOC40IDE2bC0xNjEgNDgwIDc3LjUgMCAyNS40LTgxLjQgMTE5LjUgMCAyNS4yIDgxLjQgNzcuNSAwLTE2NC4xLTQ4MHpNMjc4LjEgMzU3LjlsNDEuMi0xMzAuNCAxLjUgMCA0MC45IDEzMC40LTgzLjYgMHpNNjQwIDQwNUw2MzAgMzczLjYgNDYyLjEgMzU4IDQ4MS41IDQxNC41IDY0MCA0MDV6TTE3Ny45IDM1OEwxMCAzNzMuNyAwIDQwNSAxNTguNSA0MTQuNCAxNzcuOSAzNTh6Il19LFJhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdmlhZGVvIixpY29uOls0NDgsNTEyLFsidmlhZGVvLXNxdWFyZSJdLCJmMmFhIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xMTguMyAzODEuMmMtNjgtNzMuNi0xOS44LTE5Ni4xIDgxLjItMTk2LjEgMTMuMyAwIDI2LjYgMi4xIDM5LjEgNi43LTQuMyA4LjQtNy4zIDE3LjYtOC40IDI3LjEtOS43LTQuMS0yMC4yLTYtMzAuNy02LTQ4LjggMC04NC42IDQxLjctODQuNiA4OC45IDAgNDMgMjguNSA3OC43IDY5LjUgODUuOSA2MS41LTI0IDcyLjktMTE3LjYgNzIuOS0xNzUgMC03LjMgMC0xNC44LS42LTIyLjEtMTEuMi0zMi45LTI2LjYtNjQuNi00NC4yLTk0LjUgMjcuMSAxOC4zIDQxLjkgNjIuNSA0NC4yIDk0LjFsMCAuNGM3LjcgMjIuNSAxMS44IDQ2LjIgMTEuOCA3MCAwIDU0LjEtMjEuOSA5OS02OC4zIDEyOC4ybC0yLjQgLjJjNTAgMSA4Ni4yLTM4LjYgODYuMi04Ny4yIDAtMTIuMi0yLjEtMjQuMy02LjktMzUuNyA5LjUtMS45IDE4LjUtNS42IDI2LjQtMTAuNSAxNS4zIDM2LjYgMTIuNiA4Ny4zLTIyLjggMTI1LjYtNDIuNCA0Ni4yLTEyMCA0Ni42LTE2Mi40IDB6TTI3NC42IDIxNy42YzIxLjktMTIgNDkuNi0zMC43IDYyLjMtNTMgMS41LTMgNC4xLTguNiA0LjUtMTItMTIuNSAyNy45LTQ0LjIgNDkuOC03My45IDU2LjctNC43LTcuMy03LjUtMTUuNS03LjUtMjQuMyAwLTEwLjMgNS4yLTI0LjEgMTIuOS0zMS42IDguMy03LjkgMTgtMTAuOSAyNy45LTE0LjEgMTYtNS4xIDMyLjUtMTAuMyA0NC41LTM1LjkgMzIuNSA0Ni4yIDEzLjEgMTMwLjMtMzYuMyAxMzAuMy0xMy4zIDAtMjUuMS03LjEtMzQuNC0xNi4xeiJdfSxJaXQ9UmFlLFBpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcGFuZWwiLGljb246WzY0MCw1MTIsW10sImYzODgiLCJNMjEwLjMgMjIwLjJjLTUuNi0yNC44LTI2LjktNDEuMi01MS00MS4ybC0zNyAwYy03LjEgMC0xMi41IDQuNS0xNC4zIDEwLjlMNzMuMSAzMjAgOTcuOCAzMTkuOWM2LjggMCAxMi4zLTQuNSAxNC4yLTEwLjdsMjUuOC05NS43IDE5LjggMGM4LjQgMCAxNi4yIDUuNiAxOC4zIDE0LjggMi41IDEwLjktNS45IDIyLjYtMTguMyAyMi42bC0xMC4zIDBjLTcgMC0xMi41IDQuNi0xNC4zIDEwLjhsLTYuNCAyMy44IDMyIDBjMzcuMiAwIDU4LjMtMzYuMiA1MS43LTY1LjN6bS0xNTYuNSAyOGwxOC42IDBjNi45IDAgMTIuNC00LjQgMTQuMy0xMC45bDYuMi0yMy42LTQwIDBDMzAgMjEzLjcgOSAyMjcuOCAxLjcgMjU0LjgtNyAyODguNiAxOC41IDMyMCA1MiAzMjBsMTIuNCAwIDcuMS0yNi4xYzEuMi00LjQtMi4yLTguMy02LjQtOC4zbC0xMS4zIDBjLTI0LjcgMC0yNC45LTM3LjQgMC0zNy40em0yNDcuNS0zNC44bC03Ny45IDAtMy41IDEzLjRjLTIuNCA5LjYgNC41IDE4LjUgMTQuMiAxOC41bDU3LjUgMGM0IDAgMi40IDQuMyAyLjEgNS4zbC04LjYgMzEuOGMtLjQgMS40LS45IDUuMy01LjUgNS4zbC0zNC45IDBjLTUuMyAwLTUuMy03LjkgMC03LjlsMjEuNiAwYzYuOCAwIDEyLjMtNC42IDE0LjItMTAuOGwzLjUtMTMuMi00OC40IDBjLTM5LjIgMC00My42IDYzLjgtLjcgNjMuOGw1Ny41IC4yYzExLjIgMCAyMC42LTcuMiAyMy40LTE3LjhsMTQtNTEuOGM0LjgtMTkuMi05LjctMzYuOC0yOC41LTM2Ljh6TTYzMy4xIDE3OWwtMTguOSAwYy00LjkgMC05LjIgMy4yLTEwLjQgNy45TDU2OC4yIDMyMGMyMC43IDAgMzkuOC0xMy44IDQ0LjktMzQuNWwyNi41LTk4LjJjMS4yLTQuMy0yLTguMy02LjUtOC4zek0zOTYuOCAyMTMuN2wwIC4xLTQ4LjMgMC0yNi4yIDk4Yy0xLjIgNC40IDIuMiA4LjMgNi40IDguM2wxOC45IDBjNC44IDAgOS4yLTMgMTAuNC03LjhsMTcuMi02NCAxOS44IDBjMTIuNSAwIDIxLjQgMTEuOCAxOC4xIDIzLjRsLTEwLjYgNDBjLTEuMiA0LjMgMS45IDguMyA2LjQgOC4zbDE5LjEgMGM0LjYgMCA5LjEtMi45IDEwLjMtNy44bDguOC0zMy4xYzktMzMuMS0xNS45LTY1LjQtNTAuMy02NS40em05OC4zIDc0LjZjLTMuNiAwLTYtMy40LTUuMS02LjdsOC0zMGMuOS0zLjkgMy43LTYgNy44LTZsMzIuOSAwYzIuNiAwIDQuNiAyLjQgMy45IDUuMWwtLjcgMi42Yy0uNiAyLTEuOSAzLTMuOSAzbC0yMS42IDBjLTcgMC0xMi42IDQuNi0xNC4yIDEwLjhsLTMuNSAxMyA1My40IDBjMTAuNSAwIDIwLjMtNi42IDIzLjItMTcuNmwzLjItMTJjNC45LTE5LjEtOS4zLTM2LjgtMjguMy0zNi44bC00Ny4zIDBjLTE3LjkgMC0zMy44IDEyLTM4LjYgMjkuNmwtMTAuOCA0MGMtNSAxNy43IDguMyAzNi43IDI4LjMgMzYuN2w2Ni43IDBjNi44IDAgMTIuMy00LjUgMTQuMi0xMC43bDUuNy0yMS03My4zIDB6Il19LE5pdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZW5kZWxleSIsaWNvbjpbNjQwLDUxMixbXSwiZjdiMyIsIk02MjQuNiAzMjUuMmMtMTIuMy0xMi40LTI5LjctMTkuMi00OC40LTE3LjItNDMuMy0xLTQ5LjctMzQuOS0zNy41LTk4LjggMjIuOC01Ny41LTE0LjktMTMxLjUtODcuNC0xMzAuOC03Ny40IC43LTgxLjcgODItMTMwLjkgODItNDguMSAwLTU0LTgxLjMtMTMwLjktODItNzIuOS0uOC0xMTAuMSA3My4zLTg3LjQgMTMwLjggMTIuMiA2My45IDUuOCA5Ny44LTM3LjUgOTguOC0yMS4yLTIuMy0zNyA2LjUtNTMgMjIuNS0xOS45IDE5LjctMTkuMyA5NC44IDQyLjYgMTAyLjYgNDcuMSA1LjkgODEuNi00Mi45IDYxLjItODcuOC00Ny4zLTEwMy43IDE4NS45LTEwNi4xIDE0Ni41LTguMi0uMSAuMS0uMiAuMi0uMyAuNC0yNi44IDQyLjggNi44IDk3LjQgNTguOCA5NS4yIDUyLjEgMi4xIDg1LjQtNTIuNiA1OC44LTk1LjItLjEtLjItLjItLjMtLjMtLjQtMzkuNC05Ny45IDE5My44LTk1LjUgMTQ2LjUgOC4yLTQuNiAxMC02LjcgMjEuMy01LjcgMzMgNC45IDUzLjQgNjguNyA3NC4xIDEwNC45IDM1LjIgMTcuOC0xNC44IDIzLjEtNjUuNiAwLTg4LjN6TTMyMC43IDMwNi4xbC0uNiAwYy00My40IDAtNjIuOC0zNy41LTYyLjgtNjIuOCAwLTM0LjcgMjguMi02Mi44IDYyLjgtNjIuOGwuNiAwYzM0LjcgMCA2Mi44IDI4LjEgNjIuOCA2Mi44IDAgMjUtMTkuMiA2Mi44LTYyLjggNjIuOHoiXX0sRml0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyYWZ0MmRpZ2l0YWwiLGljb246WzUxMiw1MTIsW10sImYzOTYiLCJNNDk2IDM5OC4xbC0xNDQtODIuMiAwIDY0LjctOTEuMyAwYzMwLjgtMzUgODEuOC05NS45IDExMS44LTE0OS4zIDM1LjItNjIuNiAxNi4xLTEyMy40LTEyLjgtMTUzLjMtNC40LTQuNi02Mi4yLTYyLjktMTY2LTQxLjItNTkuMSAxMi40LTg5LjQgNDMuNC0xMDQuMyA2Ny4zLTEzLjEgMjAuOS0xNyAzOS44LTE4LjIgNDcuNy01LjUgMzMgMTkuNCA2Ny4xIDU2LjcgNjcuMSAzMS43IDAgNTcuMy0yNS43IDU3LjMtNTcuNCAwLTI3LjEtMTkuNy01Mi4xLTQ4LTU2LjggMS44LTcuMyAxNy43LTIxLjEgMjYuMy0yNC43IDQxLjEtMTcuMyA3OCA1LjIgODMuMyAzMy41IDguMyA0NC4zLTM3LjEgOTAuNC02OS43IDEyNy42LTc2LjYgODctMTQyLjggMTU1LjctMTYxLjEgMTc0LjhsMzM2LS4xIDAgNjQuMiAxNDQtODEuOXpNMzg1LjkgMzcxbDQ3LjEgMjcuMi00Ny4xIDI3LjIgMC01NC40ek0xMDUuNCAxNjEuNGEyMi40IDIyLjQgMCAxIDEgNDQuOCAwIDIyLjQgMjIuNCAwIDEgMSAtNDQuOCAwek05OC41IDM4MC41YzI1LjYtMjcuNCA5Ny43LTEwNC43IDE1MC44LTE2OS45IDM1LjEtNDMuMSA0MC4zLTgyLjQgMjguNC0xMTIuNy03LjQtMTguOC0xNy41LTMwLjItMjQuMy0zNS43IDQ1LjMgMi4xIDY4IDIzLjQgODIuMiAzOC4zIDAgMCA0Mi40IDQ4LjIgNS44IDExMy4zLTM3IDY1LjktMTEwLjkgMTQ3LjUtMTI4LjUgMTY2LjdsLTExNC40IDB6Il19LE9pdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXBseWQiLGljb246WzQ0OCw1MTIsW10sImYzZTYiLCJNMzIwIDQ4MGwtMTkyIDBDNTcuNiA0ODAgMCA0MjIuNCAwIDM1MkwwIDE2MEMwIDg5LjYgNTcuNiAzMiAxMjggMzJsMTkyIDBjNzAuNCAwIDEyOCA1Ny42IDEyOCAxMjhsMCAxOTJjMCA3MC40LTU3LjYgMTI4LTEyOCAxMjh6TTE5My40IDI3My4yYy02LjEtMi0xMS42LTMuMS0xNi40LTMuMS03LjIgMC0xMy41IDEuOS0xOC45IDUuNnMtOS42IDktMTIuOCAxNS44bC0xLjEgMC00LjItMTguMy0yOCAwIDAgMTM4LjkgMzYuMSAwIDAtODkuN2MxLjUtNS40IDQuNC05LjggOC43LTEzLjJzOS44LTUuMSAxNi4yLTUuMWM0LjYgMCA5LjggMSAxNS42IDMuMWw0LjgtMzR6TTMwOC42IDM3Ni42Yy0zLjIgMi40LTcuNyA0LjgtMTMuNyA3LjFzLTEyLjggMy41LTIwLjQgMy41Yy0xMi4yIDAtMjEuMS0zLTI2LjUtOC45LTUuNS01LjktOC41LTE0LjctOS0yNi40bDgzLjMgMGMuOS00LjggMS42LTkuNCAyLjEtMTMuOSAuNS00LjQgLjctOC42IC43LTEyLjUgMC0xMC43LTEuNi0xOS43LTQuNy0yNi45LTMuMi03LjItNy4zLTEzLTEyLjUtMTcuMi01LjItNC4zLTExLjEtNy4zLTE3LjgtOS4yLTYuNy0xLjgtMTMuNS0yLjgtMjAuNi0yLjgtMjEuMSAwLTM3LjUgNi4xLTQ5LjIgMTguM3MtMTcuNSAzMC41LTE3LjUgNTVjMCAyMi44IDUuMiA0MC43IDE1LjYgNTMuNyAxMC40IDEzLjEgMjYuOCAxOS42IDQ5LjIgMTkuNiAxMC43IDAgMjAuOS0xLjUgMzAuNC00LjZzMTcuMS02LjggMjIuNi0xMS4ybC0xMi0yMy42em0tMjEuOC03MC4zYzMuOCA1LjQgNS4zIDEzLjEgNC42IDIzLjFsLTUxLjcgMGMuOS05LjQgMy43LTE3IDguMi0yMi42czExLjUtOC41IDIxLTguNWM4LjItLjEgMTQuMSAyLjYgMTcuOSA4em03OS45IDIuNWM0LjEgMy45IDkuNCA1LjggMTYuMSA1LjggNyAwIDEyLjYtMS45IDE2LjctNS44czYuMS05LjEgNi4xLTE1LjYtMi0xMS42LTYuMS0xNS40LTkuNi01LjctMTYuNy01LjdjLTYuNyAwLTEyIDEuOS0xNi4xIDUuN3MtNi4xIDguOS02LjEgMTUuNCAyIDExLjcgNi4xIDE1LjZ6bTAgMTAwLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNC05LjYtNS43LTE2LjctNS43Yy02LjcgMC0xMiAxLjktMTYuMSA1LjdzLTYuMSA4LjktNi4xIDE1LjRjMCA2LjYgMiAxMS43IDYuMSAxNS42eiJdfSxSaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW1waXJlIixpY29uOls1MTIsNTEyLFtdLCJmMWQxIiwiTTI5NS42IDU0LjJjLTEwLjgtMi4yLTIyLjEtMy4zLTMzLjUtMy42bDAtMTguMmM3OC4xIDIuMiAxNDYuMSA0NCAxODQuNiAxMDYuNmwtMTUuOCA5LjFjLTYuMS05LjctMTIuNy0xOC44LTIwLjItMjcuMWwtMTggMTUuNWMtMjYtMjkuNi02MS40LTUwLjctMTAxLjktNTguNGw0LjgtMjMuOXpNNjEuNCAzMjIuNGwyMy03LjdjLTYuNC0xOC4zLTEwLTM4LjItMTAtNTguN3MzLjMtNDAuNCA5LjctNTguN2wtMjIuNy03LjdjMy42LTEwLjggOC4zLTIxLjMgMTMuNi0zMWwtMTUuOC05LjFDNDIgMTgxIDMyLjEgMjE3LjUgMzIuMSAyNTZzMTAgNzUgMjcuMSAxMDYuNkw3NSAzNTMuNWMtNS4zLTEwLTkuNy0yMC4zLTEzLjYtMzEuMXpNMjIxLjEgNDM0Yy00MC40LTgtNzUuOC0yOS4xLTEwMS45LTU4LjdsLTE4IDE1LjhjLTcuNS04LjYtMTQuNC0xNy43LTIwLjItMjcuNGwtMTYgOS40YzM4LjUgNjIuMyAxMDYuOCAxMDQuMyAxODQuOSAxMDYuNmwwLTE4LjNjLTExLjMtLjMtMjIuNy0xLjctMzMuNS0zLjZsNC43LTIzLjh6TTEwMS4zIDEyMC45bDE4IDE1LjVjMjYtMjkuNiA2MS40LTUwLjcgMTAxLjktNTguNGwtNC43LTIzLjhjMTAuOC0yLjIgMjIuMS0zLjMgMzMuNS0zLjZsMC0xOC4yQzE3MS45IDM0LjYgMTAzLjkgNzYuNCA2NS40IDEzOWwxNS44IDkuMWM2LTkuNyAxMi42LTE4LjkgMjAuMS0yNy4yek00MTAuNyAzOTEuMWwtMTgtMTUuOGMtMjYgMjkuNi02MS40IDUwLjctMTAxLjkgNTguN2w0LjcgMjMuOGMtMTAuOCAxLjktMjIuMSAzLjMtMzMuNSAzLjZsMCAxOC4zYzc4LjEtMi4yIDE0Ni40LTQ0LjMgMTg0LjktMTA2LjZsLTE2LjEtOS40Yy01LjcgOS43LTEyLjYgMTguOC0yMC4xIDI3LjR6TTggMjU2YTI0OCAyNDggMCAxIDEgNDk2IDAgMjQ4IDI0OCAwIDEgMSAtNDk2IDB6bTQ4My44IDBhMjM1LjggMjM1LjggMCAxIDAgLTQ3MS42IDAgMjM1LjggMjM1LjggMCAxIDAgNDcxLjYgMHptLTM5LTEwNi42TDQzNyAxNTguNWM1LjMgOS43IDEwIDIwLjIgMTMuNiAzMWwtMjIuNyA3LjdjNi40IDE4LjMgOS43IDM4LjIgOS43IDU4LjdzLTMuNiA0MC40LTEwIDU4LjdsMjMgNy43Yy0zLjkgMTAuOC04LjMgMjEtMTMuNiAzMWwxNS44IDkuMUM0NzAgMzMxIDQ3OS45IDI5NC41IDQ3OS45IDI1NnMtOS45LTc1LTI3LjEtMTA2LjZ6bS0xODMgMTc3LjdjMTYuMy0zLjMgMzAuNC0xMS42IDQwLjctMjMuNWw1MS4yIDQ0LjhjMTEuOS0xMy42IDIxLjMtMjkuMyAyNy4xLTQ2LjhsLTY0LjItMjIuMWMyLjUtNy41IDMuOS0xNS4yIDMuOS0yMy41cy0xLjQtMTYuMS0zLjktMjMuNWw2NC41LTIyLjFjLTYuMS0xNy40LTE1LjUtMzMuMi0yNy40LTQ2LjhsLTUxLjIgNDQuOGMtMTAuMi0xMS45LTI0LjQtMjAuNS00MC43LTIzLjhsMTMuMy02Ni40Yy04LjYtMS45LTE3LjctMi44LTI3LjEtMi44cy0xOC41IC44LTI3LjEgMi44bDEzLjMgNjYuNGMtMTYuMyAzLjMtMzAuNCAxMS45LTQwLjcgMjMuOGwtNTEuMi00NC44Yy0xMS45IDEzLjYtMjEuMyAyOS4zLTI3LjQgNDYuOGw2NC41IDIyLjFjLTIuNSA3LjUtMy45IDE1LjItMy45IDIzLjVzMS40IDE2LjEgMy45IDIzLjVsLTY0LjIgMjIuMWM1LjggMTcuNCAxNS4yIDMzLjIgMjcuMSA0Ni44bDUxLjItNDQuOGMxMC4yIDExLjkgMjQuNCAyMC4yIDQwLjcgMjMuNWwtMTMuMyA2Ni43YzguNiAxLjcgMTcuNyAyLjggMjcuMSAyLjhzMTguNS0xLjEgMjcuMS0yLjhsLTEzLjMtNjYuN3oiXX0sQml0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFjY2Vzc2libGUtaWNvbiIsaWNvbjpbNDQ4LDUxMixbNjIxMDddLCJmMzY4IiwiTTQyMy45IDI1NS44TDQxMSA0MTMuMWMtMy4zIDQwLjctNjMuOSAzNS4xLTYwLjYtNC45bDEwLTEyMi41LTQxLjEgMi4zYzEwLjEgMjAuNyAxNS44IDQzLjkgMTUuOCA2OC41IDAgNDEuMi0xNi4xIDc4LjctNDIuMyAxMDYuNWwtMzkuMy0zOS4zYzU3LjktNjMuNyAxMy4xLTE2Ny4yLTc0LTE2Ny4yLTI1LjkgMC00OS41IDkuOS02Ny4yIDI2TDczIDI0My4yYzIyLTIwLjcgNTAuMS0zNS4xIDgxLjQtNDAuMmw3NS4zLTg1LjctNDIuNi0yNC44LTUxLjYgNDZDMTA1LjUgMTY1LjMgNjQuOSAxMjAgOTUgOTMuMWw2OC02MC43YzkuOC04LjggMjQuMS0xMC4yIDM1LjUtMy42IDAgMCAxMzkuMyA4MC45IDEzOS41IDgxLjEgMTYuMiAxMC4xIDIwLjcgMzYgNi4xIDUyLjZsLTU4LjQgNjYuNSAxMDYuMS01LjljMTguNS0xLjEgMzMuNiAxNC40IDMyLjEgMzIuN3pNMzU5IDEwMS44QTUwLjkgNTAuOSAwIDEgMCAzNTkgMCA1MC45IDUwLjkgMCAxIDAgMzU5IDEwMS44ek0xNzkuNiA0NTYuNWMtODAuNiAwLTEyNy40LTkwLjYtODIuNy0xNTYuMUw1Ny4yIDI2MC43QzM2LjQgMjg3IDI0IDMyMC4zIDI0IDM1Ni40IDI0IDQ4Ny4xIDE3NC43IDU1Ny44IDI3NS40IDQ3OC45bC0zOS43LTM5LjdjLTE2IDEwLjktMzUuMyAxNy4zLTU2LjEgMTcuM3oiXX0sSGl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InF1b3JhIixpY29uOls0NDgsNTEyLFtdLCJmMmM0IiwiTTQ0MC43IDM4Ni43bC0yOS4zIDBjLTEuNSAxMy41LTEwLjUgMzAuOC0zMyAzMC44LTIwLjUgMC0zNS4zLTE0LjItNDkuNS0zNS44IDQ0LjItMzQuMiA3NC43LTg3LjUgNzQuNy0xNTMgLjEtMTE3LjUtOTYuNi0xOTYuNy0xOTguNC0xOTYuNy05OS43IDAtMTk3LjcgNzkuNy0xOTcuNyAxOTYuNyAwIDEzNC4xIDEzMS4zIDIyMS42IDI0OSAxODkgMTkuNyAzMy42IDQ1LjcgNjIuMyA5NS4yIDYyLjMgODEuOCAwIDkwLjgtNzUuMyA4OS05My4zek0yOTcuMiAzMjkuMmMtMTkuNS0yOS4yLTQzLjctNTIuMi05MS41LTUyLjItMzAuNSAwLTU0LjMgMTAtNjkgMjIuOGwxMi4yIDI0LjNjNi4yLTMgMTMtNCAxOS44LTQgMzUuNSAwIDUzLjcgMzAuOCA2OS4yIDYxLjMtMTAgMy0yMC43IDQuMi0zMi43IDQuMi03NSAwLTEwNy41LTUzLTEwNy41LTE1Ni43IDAtMTA0LjQgMzIuNS0xNTcuOSAxMDcuNS0xNTcuOSA3Ni4yIDAgMTA4LjcgNTMuNSAxMDguNyAxNTcuNyAuMSA0MS44LTUuNCA3NS42LTE2LjcgMTAwLjV6Il19LHFpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1qY2IiLGljb246WzU3Niw1MTIsW10sImYyNGIiLCJNNDMxLjUgMjQ0LjNsMC0zMi4zYzQxLjIgMCAzOC41IC4yIDM4LjUgLjIgNy4zIDEuMyAxMy4zIDcuMyAxMy4zIDE2IDAgOC44LTYgMTQuNS0xMy4zIDE1LjgtMS4yIC40LTMuMyAuMy0zOC41IC4zem00Mi44IDIwLjJjLTIuOC0uNy0zLjMtLjUtNDIuOC0uNWwwIDM1YzM5LjYgMCA0MCAuMiA0Mi44LS41IDcuNS0xLjUgMTMuNS04IDEzLjUtMTcgMC04LjctNi0xNS41LTEzLjUtMTd6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE4MiAxOTIuM2wtNTcgMGMwIDY3LjEgMTAuNyAxMDkuNy0zNS44IDEwOS43LTE5LjUgMC0zOC44LTUuNy01Ny4yLTE0LjhsMCAyOGMzMCA4LjMgNjggOC4zIDY4IDguMyA5Ny45IDAgODItNDcuNyA4Mi0xMzEuMnptMTc4LjUgNC41Yy02My40LTE2LTE2NS0xNC45LTE2NSA1OS4zIDAgNzcuMSAxMDguMiA3My42IDE2NSA1OS4ybDAtMjguM0MzMTIuOSAzMTEuNyAyNTMgMzA5IDI1MyAyNTZzNTkuOC01NS42IDEwNy41LTMxLjJsMC0yOHpNNTQ0IDI4Ni41YzAtMTguNS0xNi41LTMwLjUtMzgtMzJsMC0uOGMxOS41LTIuNyAzMC4zLTE1LjUgMzAuMy0zMC4yIDAtMTktMTUuNy0zMC0zNy0zMSAwIDAgNi4zLS4zLTEyMC4zLS4zbDAgMTI3LjUgMTIyLjcgMGMyNC4zIC4xIDQyLjMtMTIuOSA0Mi4zLTMzLjJ6Il19LGppdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRvcmEiLGljb246WzQ0OCw1MTIsW10sImY3OTgiLCJNMCAyNTUuOEMuMSAxMzIuMiAxMDAuMyAzMiAyMjQgMzJTNDQ4IDEzMi4zIDQ0OCAyNTYgMzQ3LjggNDc5LjkgMjI0LjEgNDgwTDUwLjkgNDgwQzIyLjggNDgwIC4xIDQ1Ny4zIDAgNDI5LjJsMCAwIDAtMTczLjQgMCAwem0zNDIuNi02My4xYzAtMzkuNy0zNS42LTY4LjUtNzMuMi02OC41LTM0LjkgMC02NS44IDI2LjMtNzAuMSA1OS45LS4yIDMuOC0uNCA1LS40IDguNS0uMSAyMS4xIDAgNDIuOC0uOCA2NC40IC45IDI2LjEgMSA1Mi4xIDAgNzYuNiAwIDI3LjEtMTkuNCA0NS41LTQ0LjcgNDUuNXMtNDUuOC0yMC4yLTQ1LjgtNDUuNWMuNS0yNy43IDIyLjYtNDUuMyA0OC41LTQ2LjFsLjIgMCAyNi4zLS4yIDAtMzcuMy0yNi4zIC4yYy00Ny4xLS40LTg0LjYgMzYuNS04NS45IDgzLjQgMCA0NS42IDM3LjUgODIuOSA4MyA4Mi45IDQzIDAgNzguNy0zMy42IDgyLjYtNzUuNmwuMi01My41IDMyLjYtLjNjMjUuMyAuMiAyNS0zNy44LS4yLTM3LjNsLTMyLjQgLjNjMC02LjQgLjEtMTIuOCAuMS0xOS4yIC4xLTEyLjcgLjEtMjUuNC0uMS0zOC4yIC4xLTE2LjUgMTUuOC0zMS4yIDMzLjItMzEuMiAxNy41IDAgMzUuOSA4LjcgMzUuOSAzMS4yIDAgMy4yLS4xIDUuMS0uMyA2LjMtMS45IDEwLjUgNS4yIDIwLjQgMTUuNyAyMS45IDEwLjYgMS41IDIwLjItNi4xIDIxLjItMTYuNiAuNi00LjIgLjctNy45IC43LTExLjZ6Il19LFZpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkdW9saW5nbyIsaWNvbjpbNTc2LDUxMixbXSwiZTgxMiIsIk01MDQuMyAyMzAuNWMxMC40IDg4LjUtNDMuNCAxNzIuMS0xMjguMiAxOTlzLTE3Ni42LTEwLjMtMjE4LjktODguN2MtNzIgMy0xMzcuNC0zOS44LTE2My4yLTEwNS41LTIuNi02LjYtMS45LTE0IDEuOS0xOS45czEwLjItOS43IDE3LjItMTAuMWw5Ni4xLTYtMjMuOC03NS45Yy02LjMtMjAtMi4yLTQxLjkgMTEtNTguM3MzMy43LTI1IDU0LjUtMjNjNTIuMiA1IDg2LjggNC44IDEwNC0uNlMzMDAgMTYuNyAzMzktMTYuOWMxNS45LTEzLjcgMzcuNy0xOC41IDU3LjgtMTIuN3MzNi4xIDIxLjMgNDIuNCA0MS40TDQ2Mi44IDg3IDU0My42IDM3LjNjNi0zLjcgMTMuNC00LjMgMTkuOS0xLjZzMTEuMyA4LjMgMTIuOSAxNS4yYzE2LjIgNjguMi0xMi40IDE0MC4zLTcyLjEgMTc5LjV6TTI1OC41IDQ3NS45bDAgMGMxNS4xIDcuNSAyMS41IDI1LjggMTQuMiA0MXMtMjUuNCAyMS45LTQwLjcgMTQuOWwtNDMuOS0yMWMtMTUuMS03LjUtMjEuNS0yNS44LTE0LjItNDFzMjUuNC0yMS45IDQwLjctMTQuOWw0My44IDIxek01NjQuNiAzNDUuN2MxNC44IDguNCAyMCAyNy4zIDExLjYgNDIuMmwtMjMuOSA0Mi40Yy04LjcgMTQuMy0yNy4xIDE5LjItNDEuNiAxMC45cy0xOS45LTI2LjYtMTItNDEuNGwyMy45LTQyLjRjNC03LjEgMTAuNy0xMi40IDE4LjYtMTQuNnMxNi4zLTEuMiAyMy40IDIuOXoiXX0sVWl0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcnN0ZHJhZnQiLGljb246WzM4NCw1MTIsW10sImYzYTEiLCJNMzg0IDE5MmwtNjQgMCAwIDEyOC0xMjggMCAwIDEyOC0xOTIgMCAwLTI1LjYgMTY2LjQgMCAwLTEyOCAxMjggMCAwLTEyOCA4OS42IDAgMCAyNS42em0tMjUuNiAzOC40bDAgMTI4LTEyOCAwIDAgMTI4LTE2Ni40IDAgMCAyNS42IDE5MiAwIDAtMTI4IDEyOCAwIDAtMTUzLjYtMjUuNiAwem0yNS42IDE5MmwtODkuNiAwIDAgODkuNiAyNS42IDAgMC02NCA2NCAwIDAtMjUuNnpNMCAwbDAgMzg0IDEyOCAwIDAtMTI4IDEyOCAwIDAtMTI4IDEyOCAwIDAtMTI4LTM4NCAweiJdfSxXaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZnJlZWJzZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNhNCIsIk0zMDMuNyA5Ni4yYzExLjEtMTEuMSAxMTUuNS03NyAxMzkuMi01My4yIDIzLjcgMjMuNy00Mi4xIDEyOC4xLTUzLjIgMTM5LjJzLTM5LjQgLjktNjMuMS0yMi45Yy0yMy44LTIzLjctMzQuMS01Mi0yMi45LTYzLjF6TTEwOS45IDY4LjFDNzMuNiA0Ny41IDIyIDI0LjYgNS42IDQxLjEtMTEgNTcuNyAxMi43IDExMC41IDMzLjUgMTQ2LjggNTIgMTE0LjYgNzguMyA4Ny41IDEwOS45IDY4LjF6TTQwNi43IDE3NGMzLjMgMTEuMyAyLjcgMjAuNy0yLjcgMjYuMS0yMC4zIDIwLjMtODcuNS0yNy0xMDkuMy03MC4xLTE4LTMyLjMtMTEuMS01My40IDE0LjktNDguNyA1LjctMy42IDEyLjMtNy42IDE5LjYtMTEuNi0yOS44LTE1LjUtNjMuNi0yNC4zLTk5LjUtMjQuMy0xMTkuMSAwLTIxNS42IDk2LjUtMjE1LjYgMjE1LjYgMCAxMTkgOTYuNSAyMTUuNiAyMTUuNiAyMTUuNlM0NDUuMyAzODAuMSA0NDUuMyAyNjFjMC0zOC40LTEwLjEtNzQuNS0yNy43LTEwNS44LTMuOSA3LTcuNiAxMy4zLTEwLjkgMTguOHoiXX0sR2l0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9keXNlZSIsaWNvbjpbNTEyLDUxMixbXSwiZTVjNiIsIk00MDYuNyA0NjNjLTQyLjMgMzAuOC05NC40IDQ5LTE1MC43IDQ5LTExMS4xIDAtMjA1LjctNzAuOC0yNDEuMS0xNjkuOCAyLjQgMS43IDUuOSAzLjYgNy45IDQuNCAxNi4zIDcuNCA0MC4xLTUuNCA2Mi45LTI4LjcgNi45LTYuOSAxNC40LTEyLjQgMjIuOC0xNy4zIDE4LjMtMTEuOSAzNy42LTIwLjggNTguNC0yNy4yIDAgMCAyMi4zIDM0LjIgNDMuMSA3NC44cy0yMi4zIDU0LTI3LjIgNTRjLS4zIDAtLjggMC0xLjUtLjEtMTEtLjUtNzAtMy01NiA1MS4xIDE0LjkgNTcuNCA5Ny41IDM2LjYgMTM5LjYgOC45czMxLjctMTE4LjMgMzEuNy0xMTguM2M0MS4xLTYuNCA1NCAzNy4xIDU3LjkgNTkuNCAuOCA0LjYgMS4xIDkuOSAxLjQgMTUuNSAxLjEgMjEuMiAyLjMgNDUuNiAzNS4zIDQ2LjQgNS4zIDAgMTAuNi0uOCAxNS41LTJsMC0uMXptLTk1LjMtMjMuN2MtMi0uNS0zLjUtMi41LTMtNSAxLTIuNSAzLTMuNSA1LTNzMy41IDMgMyA1LTIuNSAzLjUtNSAzem0tMjA3LTk1LjZjMS41LS41IDMuNSAxIDQgMyAwIDItMSA0LTMgNC0xLjUgLjUtMy41LTEtNC0zLS41LTEuNSAxLTMuNSAzLTR6TTQ1MS44IDQyMWMzNy41LTQ0LjYgNjAuMi0xMDIuMiA2MC4yLTE2NSAwLTY3LjUtMjYuMS0xMjguOS02OC44LTE3NC43LS4xIDIzLjUtNi4xIDQ4LjItMTYuOCA2OS4yLTExLjkgMjAuMy00OSA1OC45LTY5LjggNzguNy0uNyAuMy0xLjEgLjktMS41IDEuNC0uMiAuMi0uMyAuNC0uNSAuNi01IDYuOS00IDE2LjggMyAyMS44IDIxLjMgMTUuOCA1Ni40IDQ1LjYgNTkuNCA3Mi44IDMuNSAzNC45IDI3LjkgNzUuNiAzNC4yIDg2LjIgLjggMS4zIDEuMyAyLjEgMS40IDIuNCAwIDIuMi0uNCA0LjMtLjggNi41bDAgLjF6TTM5MC43IDI1MWMtLjUgMyAxIDUuOSA0IDYuNHM1LjktMSA2LjQtNC0xLTUuOS00LTYuNGMtMy0xLTUuOSAxLTYuNCA0em02MS40LTYwLjlsLTExLjQgNS40LTMgMTIuOS01LjQtMTEuNC0xMi45LTMgMTEuNC01LjQgMy0xMi45IDUuNCAxMS40IDEyLjkgM3pNMzk1LjUgNDEuM2MtMTYuMiA4LjItMjIuMSAzMi44LTI5IDYxLjQtLjMgMS40LS43IDIuOC0xIDQuMi05LjUgMzguNS0zMC42IDM3LjYtNDEuNyAzNy4yLTEuMSAwLTItLjEtMi45LS4xLTUuMSAwLTYtNC04LjktMTcuMS0yLjYtMTIuMS02LjktMzItMTcuOS02My42LTIyLjctNjUuOC04Mi43LTQ5LjQtMTI4LjItMjIuMi01NS4zIDMzLjEtMzQuNCAxMDEuOS0xOS44IDE0OS40IC43IDIuMiAxLjQgNC40IDIgNi42LTQgNC0xMy44IDcuNS0yNiAxMS45LTEyLjEgNC4zLTI2LjYgOS41LTQwLjMgMTYuOS0zMy45IDE4LTcwLjMgNDktNzkuOCA2Mi42LTEuMy0xMC43LTItMjEuNS0yLTMyLjUgMC0xNDEuNCAxMTQuNi0yNTYgMjU2LTI1NiA1MS40IDAgOTkuNCAxNS4yIDEzOS41IDQxLjN6TTU4LjkgMTg5LjZjLTEuNS0yLTQuNS0zLTYuNC0xLjVzLTMgNC41LTEuNSA2LjQgNC41IDMgNi40IDEuNWMyLjUtMS41IDMtNC41IDEuNS02LjR6TTMyNy4zIDY0LjljMi0xLjUgNS0uNSA2LjQgMS41IDEuNSAyLjUgMSA1LjQtMS41IDYuNC0yIDEuNS01IC41LTYuNC0xLjVzLS41LTUgMS41LTYuNHpNOTUuMSAxMDVjLS41IDEuNSAuNSAzIDIgMyAxLjUgLjUgMy0uNSAzLTIgLjUtMS41LS41LTMtMi0zcy0zIC41LTMgMnptODQuNy0uNWMtMy41LTQzLjEgMzcuMS01NCAzNy4xLTU0IDQ0LjEtMTUuNCA1NiA1LjkgNjYuNCAzNy42czMgNDIuNi0zOC42IDU4LjktNjEuOS00LjUtNjQuOS00Mi42bDAgLjF6bTg5LjYgMTQuOWwxIDBjMi41IDAgNS0yIDUtNSAyLTYuOSAxLTE0LjQtMi0yMC44LTEuNS0yLTQtMy41LTYuNC0yLjUtMyAxLTQuNSA0LTMuNSA2LjkgMiA0LjUgMyA5LjkgMS41IDE0LjktLjUgMyAxLjUgNS45IDQuNSA2LjRsLS4xIC4xem0tOS45LTQxLjZjLTIgMC00LTEtNS0zcy0yLTMuNS0zLTVjLTItMi0yLTUuNCAwLTcuNHM1LjQtMiA3LjQgMGMyIDIuNSAzLjUgNSA1IDcuNHMuNSA1LjktMi41IDcuNGMtLjYgMC0xIC4yLTEuMyAuMy0uMiAuMS0uNCAuMi0uNiAuMmwwIC4xeiJdfSxZaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2ctY2lyY2xlIixpY29uOls1MTIsNTEyLFtdLCJmMjYxIiwiTTI1Ny41IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0yMDggMzgyLjhsLTEyNS43LTEyNS43IDEyNS43LTEyNS43IDM1LjIgMzUuNC0yNC4yIDI0LjItMTEuMS0xMS4xLTc3LjIgNzcuMiA3Ny4yIDc3LjIgMjYuNi0yNi42LTUzLjEtNTIuOSAyNC40LTI0LjQgNzcuMiA3Ny4yLTc1IDc1LjJ6bTk5LTIuMmwtMzUuMi0zNS4yIDI0LjEtMjQuNCAxMS4xIDExLjEgNzcuMi03Ny4yLTc3LjItNzcuMi0yNi41IDI2LjUgNTMuMSA1Mi45LTI0LjQgMjQuNC03Ny4yLTc3LjIgNzUtNzUgMTI1LjcgMTI1LjctMTI1LjcgMTI1LjZ6Il19LFppdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbG91ZGZsYXJlIixpY29uOls2NDAsNTEyLFtdLCJlMDdkIiwiTTQwNy45IDMxOS45TDE3Ny4xIDMxN2MtLjcgMC0xLjQtLjItMi0uNXMtMS4yLS44LTEuNi0xLjRjLS40LS42LS43LTEuMy0uNy0yczAtMS40IC4yLTIuMWMuNC0xLjEgMS4xLTIuMSAyLjEtMi44czIuMS0xLjIgMy4zLTEuMmwyMzIuOS0yLjljMjcuNi0xLjMgNTcuNS0yMy42IDY4LTUwLjhsMTMuMy0zNC41Yy40LS45IC41LTEuOSAuNS0yLjkgMC0uNS0uMS0xLjEtLjItMS42LTcuNC0zMi4yLTI1LTYxLjEtNTAuMy04Mi4zcy01Ni43LTMzLjctODkuNy0zNS41LTY1LjYgNy4zLTkzIDI1LjctNDggNDUuMy01OC44IDc2LjVjLTExLjMtOC41LTI0LjktMTMuMy0zOS0xMy43cy0yOCAzLjUtMzkuOCAxMS40LTIwLjggMTkuMS0yNS45IDMyLjMtNS45IDI3LjYtMi40IDQxLjNjLTUyLjMgMS41LTk0LjIgNDQuMS05NC4yIDk2LjUgMCA0LjcgLjMgOS4zIDEgMTQgLjIgMS4xIC43IDIuMSAxLjUgMi44czEuOSAxLjEgMi45IDEuMWw0MjYuMSAuMWMwIDAgLjEgMCAuMSAwIDEuMiAwIDIuMy0uNCAzLjMtMS4xczEuNi0xLjcgMi0yLjlsMy4zLTExLjNjMy45LTEzLjQgMi40LTI1LjgtNC4xLTM0LjktNi04LjQtMTYuMS0xMy4zLTI4LjItMTMuOXptMTA1LjktOTguOGMtMi4xIDAtNC4zIC4xLTYuNCAuMi0uOCAuMS0xLjUgLjMtMi4xIC44cy0xIDEuMS0xLjMgMS44bC05LjEgMzEuMmMtMy45IDEzLjQtMi40IDI1LjggNC4xIDM0LjkgNiA4LjQgMTYuMSAxMy4zIDI4LjIgMTMuOWw0OS4yIDIuOWMuNyAwIDEuNCAuMiAyIC41czEuMSAuOCAxLjUgMS40Yy40IC42IC43IDEuMyAuOCAyczAgMS41LS4yIDIuMWMtLjQgMS4xLTEuMSAyLjEtMi4xIDIuOHMtMi4xIDEuMi0zLjMgMS4ybC01MS4xIDIuOWMtMjcuOCAxLjMtNTcuNyAyMy42LTY4LjEgNTAuOGwtMy43IDkuNmMtLjIgLjQtLjIgLjgtLjIgMS4zcy4yIC44IC40IDEuMiAuNiAuNyAuOSAuOSAuOCAuMyAxLjIgLjNjMCAwIC4xIDAgLjEgMGwxNzUuOSAwYzEgMCAyLS4zIDIuOC0uOXMxLjQtMS41IDEuNy0yLjRjMy4xLTExLjEgNC43LTIyLjUgNC43LTM0IDAtNjkuMy01Ni41LTEyNS41LTEyNi4xLTEyNS41eiJdfSxYaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGFja2VycmFuayIsaWNvbjpbNTEyLDUxMixbXSwiZjVmNyIsIk00NzcuOSAxMjhDNDYzLjQgMTAzIDI4NS41IDAgMjU2LjUgMHMtMjA2LjkgMTAyLjgtMjIxLjMgMTI4LTE0LjUgMjMwLjggMCAyNTYgMTkyLjQgMTI4IDIyMS4zIDEyOCAyMDYuOC0xMDIuOSAyMjEuMy0xMjggMTQuNS0yMzEgMC0yNTZ6TTMxNi41IDQxNC4yYy00IDAtNDAuOS0zNS44LTM4LTM4LjcgLjktLjkgNi4zLTEuNSAxNy41LTEuOCAwLTI2LjIgLjYtNjguNiAuOS04Ni4zIDAtMi0uNC0zLjQtLjQtNS44bC03OS45IDBjMCA3LjEtLjUgMzYuMiAxLjQgNzIuOSAuMiA0LjUtMS42IDYtNS43IDUuOS0xMC4xIDAtMjAuMy0uMS0zMC40LS4xLTQuMSAwLTUuOS0xLjUtNS43LTYuMSAuOS0zMy40IDMtODQtLjItMjEyLjdsMC0zLjJjLTkuNy0uNC0xNi40LTEtMTcuMy0xLjgtMi45LTIuOSAzNC41LTM4LjcgMzguNS0zOC43czQxLjIgMzUuOCAzOC4zIDM4LjdjLS45IC45LTcuOSAxLjUtMTYuOCAxLjhsMCAzLjJjLTIuNCAyNS44LTIgNzkuNi0yLjYgMTA1LjRsODAuMyAwYzAtNC42IC40LTM0LjctMS4yLTgzLjYtLjEtMy40IDEtNS4yIDQuMi01LjIgMTEuMS0uMSAyMi4yLS4xIDMzLjItLjEgMy41IDAgNC42IDEuNyA0LjUgNS40LTMuNyAxOTEuMy0uNyAxNzcuOS0uNyAyMTAuMyA4LjkgLjQgMTYuOCAxIDE3LjcgMS44IDIuOSAyLjktMzMuNiAzOC43LTM3LjYgMzguN2wwIDB6Il19LFFpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza3lhdGxhcyIsaWNvbjpbNjQwLDUxMixbXSwiZjIxNiIsIk02NDAgMzI5LjNjMCA2NS45LTUyLjUgMTE0LjQtMTE3LjUgMTE0LjQtMTY1LjkgMC0xOTYuNi0yNDkuNy0zNTkuNy0yNDkuNy0xNDYuOSAwLTE0Ny4xIDIxMi4yIDUuNiAyMTIuMiA0Mi41IDAgOTAuOS0xNy44IDEyNS4zLTQyLjUgNS42LTQuMSAxNi45LTE2LjMgMjIuOC0xNi4zczEwLjkgNSAxMC45IDEwLjljMCA3LjgtMTMuMSAxOS4xLTE4LjcgMjQuMS00MC45IDM1LjYtMTAwLjMgNjEuMi0xNTQuNyA2MS4yLTgzLjQgLjEtMTU0LTU5LTE1NC0xNDQuOVM2Ny41IDE0OS42IDE1Mi44IDE0OS42YzE4NS4zIDAgMjIyLjUgMjQ1LjkgMzYxLjkgMjQ1LjkgOTkuOSAwIDk0LjgtMTM5LjcgMy40LTEzOS43LTE3LjUgMC0zNSAxMS42LTQ2LjkgMTEuNi04LjQgMC0xNS45LTcuMi0xNS45LTE1LjYgMC0xMS42IDUuMy0yMy43IDUuMy0zNi4zIDAtNjYuNi01MC45LTExNC43LTExNi45LTExNC43LTUzLjEgMC04MCAzNi45LTg4LjggMzYuOS02LjIgMC0xMS4yLTUtMTEuMi0xMS4yIDAtNS42IDQuMS0xMC4zIDcuOC0xNC40IDI1LjMtMjguOCA2NC43LTQzLjcgMTAyLjgtNDMuNyA3OS40IDAgMTM5LjEgNTguNCAxMzkuMSAxMzcuOCAwIDYuOS0uMyAxMy43LTEuMiAyMC42IDExLjktMy4xIDI0LjEtNC43IDM1LjktNC43IDYwLjcgMCAxMTEuOSA0NS4zIDExMS45IDEwNy4yeiJdfSxKaXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVza3BybyIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4ZiIsIk0xMjIgNDA2LjJsODQgMGMyMy4xIDAgNDMuOS0zLjUgNjIuNi0xMC43IDE4LjctNy4xIDM0LjctMTcuMSA0OC0zMC4xIDEzLjMtMTMuNCAyMy42LTI5LjIgMzAuNy00Ny41IDMuOS05LjYgNi44LTE5LjggOC42LTMwLjZsNzMuNyAwYy0yLjUgMjEuMy03LjcgNDEuMy0xNS41IDYwLTExLjEgMjcuMi0yNi45IDUwLjgtNDcuMyA3MC45LTIwIDE5LjYtNDQuMiAzNC44LTcyLjYgNDUuNHMtNjAgMTYtOTQuNyAxNmwtMTQ5LjggLjIgMC0xOTIuNCA3Mi4zLS4yIDAgMTE4Ljh6TTE5OS40IDMyYzM0LjcgMCA2Ni4yIDUuNCA5NC43IDE2IDI4LjUgMTAuNyA1Mi45IDI2LjEgNzMuMyA0Ni4yIDIwLjQgMTkuNiAzNi4yIDQzLjIgNDcuMyA3MC45IDcuNSAxOC4zIDEyLjQgMzguMSAxNC45IDU5LjNsLTczLjctLjFjLTEuOS0xMC41LTQuNy0yMC41LTguNi0yOS45LTcuMS0xOC43LTE3LjMtMzQuNS0zMC43LTQ3LjUtMTMuMy0xMy40LTI5LjMtMjMuNi00OC0zMC44LTE4LjYtNy4xLTM5LjUtMTAuNy02Mi43LTEwLjdsLTg0IDAgMCAxMTguOC03Mi4yIC4yIDAtMTkyLjMgMTQ5LjctLjF6Il19LEtpdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXNvbHZpbmciLGljb246WzUxMiw1MTIsW10sImYzZTciLCJNMjg5LjIgMjc4LjJjNDYtMTMuMyA0OS42LTIzLjUgNDQtNDMuNEwzMjIgMTk1LjVjLTYuMS0yMC45LTE4LjQtMjguMS03MS4xLTEyLjhsLTE4OC4yIDU0LjEgMjguNiA5OC42IDE5Ny45LTU3LjJ6TTI1Ni41IDhDMTM5LjQgOCA0MS4yIDg4LjcgMTUuMiAxOTcuNWwyMjEuOS02My45YzM0LjgtMTAuMiA1NC4yLTExLjcgNzkuMy04LjIgMzYuMyA2LjEgNTIuNyAyNSA2MS40IDU1LjJsMTAuNyAzNy44YzguMiAyOC4xIDEgNTAuNi0yMy41IDczLjYtMTkuNCAxNy40LTMxLjIgMjQuNS02MS40IDMzLjJsLTkyLjYgMjYuNiAyMjAuNCAyNy4xIDkuNyAzNC4yLTQ4LjEgMTMuMy0yODYuOC0zNy4zIDIzIDgwLjJDMTY2IDQ5MS4zIDIwOS41IDUwNCAyNTUuNSA1MDQgMzkyLjUgNTA0IDUwNCAzOTIuNiA1MDQgMjU1LjcgNTA1IDExOS40IDM5My41IDggMjU2LjUgOHpNNDYuMyAzODguNkw4IDI1Ni44YzAgNDguNSAxNC4zIDkzLjQgMzguMyAxMzEuOHoiXX0sZWF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsYWNrYmVycnkiLGljb246WzUxMiw1MTIsW10sImYzN2IiLCJNMTY2IDExNi45YzAgMjMuNC0xNi40IDQ5LjEtNzIuNSA0OS4xbC03MC4xIDAgMjEtODguOCA2Ny44IDBjNDIuMSAwIDUzLjggMjMuMyA1My44IDM5Ljd6TTI5Mi4yIDc3LjJsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzUzLjggMCA3MC4xLTI1LjcgNzAuMS00OS4xIC4xLTE2LjQtMTEuNi0zOS43LTUzLjctMzkuN3pNODguOCAyMDguMWwtNjcuOCAwLTIxIDg4LjggNzAuMSAwYzU2LjEgMCA3Mi41LTIzLjQgNzIuNS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuOC0zOS43em0xODAuMSAwbC02Ny44IDAtMTguNyA4OC44IDcwLjEgMGM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMSAwLTE2LjMtMTEuNy0zOS43LTUzLjctMzkuN3ptMTg5LjMtNTMuOGwtNjcuOCAwLTE4LjcgODguOCA3MC4xIDBjNTMuOCAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43em0tMjggMTM3LjlsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzU2LjEgMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43ek0yNDAuOCAzNDZsLTY3LjggMC0xOC43IDg4LjggNzAuMSAwYzU2LjEgMCA3MC4xLTI1LjcgNzAuMS00OS4xIC4xLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3oiXX0sdGF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0cmlwZS1zIixpY29uOlszODQsNTEyLFtdLCJmNDJhIiwiTTE1NS42IDE1NC42YzAtMjIuMyAxOC42LTMwLjkgNDguNC0zMC45IDQzLjQgMCA5OC41IDEzLjMgMTQxLjkgMzYuN2wwLTEzNC4zYy00Ny4zLTE4LjktOTQuNS0yNi4xLTE0MS44LTI2LjEtMTE1LjcgMC0xOTIuOCA2MC40LTE5Mi44IDE2MS40IDAgMTU3LjkgMjE2LjggMTMyLjMgMjE2LjggMjAwLjQgMCAyNi40LTIyLjkgMzQuOS01NC43IDM0LjktNDcuMiAwLTEwOC4yLTE5LjUtMTU2LjEtNDUuNWwwIDEyOC41YzQ5LjMgMjEuMyAxMDIuMyAzMi4zIDE1NiAzMi40IDExOC42IDAgMjAwLjMtNTEgMjAwLjMtMTUzLjYgMC0xNzAuMi0yMTgtMTM5LjctMjE4LTIwMy45eiJdfSxCYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWJlaGFuY2UiLGljb246WzQ0OCw1MTIsWyJiZWhhbmNlLXNxdWFyZSJdLCJmMWI1IiwiTTE1NS4zIDMxOC40YzE3LjIgMCAzMS4yLTYuMSAzMS4yLTI1LjQgMC0xOS43LTExLjctMjcuNC0zMC4zLTI3LjVsLTQ2IDAgMCA1Mi45IDQ1LjEgMHptLTUuNC0xMjkuNmwtMzkuNiAwIDAgNDQuOCA0Mi43IDBjMTUuMSAwIDI1LjgtNi42IDI1LjgtMjIuOSAwLTE3LjctMTMuNy0yMS45LTI4LjktMjEuOXptMTI5LjUgNzQuOGw2Mi4yIDBjLTEuNy0xOC41LTExLjMtMjkuNy0zMC41LTI5LjctMTguMyAwLTMwLjUgMTEuNC0zMS43IDI5Ljd6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0zNDkuNSAxODVsLTc3LjggMCAwLTE4LjkgNzcuOCAwIDAgMTguOXpNMTkzLjcgMjQzLjdjMjMuNiA2LjcgMzUgMjcuNSAzNSA1MS42IDAgMzktMzIuNyA1NS43LTY3LjYgNTUuOWwtOTMuMSAwIDAtMTkyIDkwLjUgMGMzMi45IDAgNjEuNCA5LjMgNjEuNCA0Ny41IDAgMTkuMy05IDI4LjgtMjYuMiAzN3ptMTE4LjctMzguNmM0My41IDAgNjcuNiAzNC4zIDY3LjYgNzUuNCAwIDEuNi0uMSAzLjMtLjIgNSAwIC44LS4xIDEuNS0uMSAyLjJsLTEwMC4yIDBjMCAyMi4yIDExLjcgMzUuMyAzNC4xIDM1LjMgMTEuNiAwIDI2LjUtNi4yIDMwLjItMTguMWwzMy43IDBjLTEwLjQgMzEuOS0zMS45IDQ2LjgtNjUuMSA0Ni44LTQzLjggMC03MS4xLTI5LjctNzEuMS03MyAwLTQxLjggMjguNy03My42IDcxLjEtNzMuNnoiXX0scmF0PUJhZSxpYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2VydmljZXN0YWNrIixpY29uOls1MTIsNTEyLFtdLCJmM2VjIiwiTTk2IDIxNmM4MS43IDEwLjIgMjczLjcgMTAyLjMgMzA0IDIzMkw4IDQ0OGM5OS41LTguMSAxODQuNS0xMzcgODgtMjMyek0xMjggNjRjMzIuMyAzNS42IDQ3LjcgODMuOSA0Ni40IDEzMy42IDgyLjkgMzMuNyAyMDcuMyAxMjMuNyAyMzMuNiAyNTAuNGw5NiAwQzQ2My4zIDIzMS45IDIzMC44IDc5LjUgMTI4IDY0eiJdfSxhYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicm9ja2V0Y2hhdCIsaWNvbjpbNTc2LDUxMixbXSwiZjNlOCIsIk0yODQuNSAyMjQuOGMtNi43IDAtMTMuMyAyLjEtMTguOSA1LjhzLTkuOSA5LjEtMTIuNSAxNS40LTMuMiAxMy4xLTEuOSAxOS43IDQuNiAxMi43IDkuNCAxNy40IDEwLjkgOCAxNy41IDkuMyAxMy41IC42IDE5LjctMiAxMS41LTcgMTUuMy0xMi42IDUuNy0xMi4yIDUuNy0xOC45YzAtOS4xLTMuNy0xNy44LTEwLjEtMjQuMnMtMTUuMS0xMC0yNC4yLTkuOXptLTExMC40IDBjLTYuNyAwLTEzLjMgMi4xLTE4LjkgNS44cy05LjkgOS4xLTEyLjUgMTUuNC0zLjIgMTMuMS0xLjkgMTkuNyA0LjYgMTIuNyA5LjQgMTcuNCAxMC45IDggMTcuNSA5LjMgMTMuNSAuNiAxOS43LTIgMTEuNS03IDE1LjMtMTIuNiA1LjctMTIuMiA1LjctMTguOWMwLTkuMS0zLjctMTcuOC0xMC4xLTI0LjJzLTE1LjEtMTAtMjQuMi0xMGwwIDB6bTIyMC45IDBhMzQuMSAzNC4xIDAgMSAwIC40IDY4LjIgMzQuMSAzNC4xIDAgMSAwIC0uNC02OC4yem0xNTMuOC01NS4zYy0xNS41LTI0LjItMzcuMy00NS42LTY0LjctNjMuNi01Mi45LTM0LjgtMTIyLjQtNTQtMTk1LjctNTQtMjQuMiAwLTQ4LjMgMi4xLTcyIDYuNC0xNC45LTE0LjMtMzEuNS0yNi42LTQ5LjUtMzYuNi02Ni44LTMzLjMtMTI1LjYtMjAuOS0xNTUuMy0xMC4yLTIuMyAuOC00LjMgMi4xLTUuOSAzLjlzLTIuNyAzLjktMy4zIDYuMi0uNSA0LjcgLjEgNy4xIDEuOCA0LjQgMy41IDYuMUMyNyA1Ni41IDYxLjYgOTkuMyA1My4xIDEzOC4zIDIwIDE3Mi4yIDIgMjEzIDIgMjU1LjYgMiAyOTkgMjAgMzM5LjggNTMuMSAzNzMuNyA2MS42IDQxMi43IDI3IDQ1NS42IDYgNDc3LjIgNC4zIDQ3OSAzLjIgNDgxLjEgMi41IDQ4My40cy0uNyA0LjctLjEgNyAxLjcgNC41IDMuMyA2LjIgMy42IDMuMSA1LjkgMy45YzI5LjcgMTAuNyA4OC41IDIzLjEgMTU1LjMtMTAuMiAxOC0xMCAzNC43LTIyLjMgNDkuNS0zNi42IDIzLjggNC4zIDQ3LjkgNi40IDcyIDYuNCA3My4zIDAgMTQyLjgtMTkuMiAxOTUuNy01NCAyNy40LTE4IDQ5LjEtMzkuNCA2NC43LTYzLjYgMTcuMy0yNi45IDI2LjEtNTUuOSAyNi4xLTg2LjEgMC0zMS04LjgtNjAtMjYuMS04Ni45bDAgMHpNMjg1LjQgNDA5LjljLTMwLjIgLjEtNjAuMy0zLjgtODkuNC0xMS41bC0yMC4xIDE5LjRjLTExLjIgMTAuNy0yMy42IDIwLTM3LjEgMjcuNi0xNi40IDguMi0zNC4yIDEzLjMtNTIuNSAxNC45IDEtMS44IDEuOS0zLjYgMi44LTUuNCAyMC4yLTM3LjEgMjUuNi03MC41IDE2LjMtMTAwLjEtMzMtMjYtNTIuOC01OS4yLTUyLjgtOTUuNCAwLTgzLjEgMTA0LjMtMTUwLjUgMjMyLjgtMTUwLjVzMjMyLjkgNjcuNCAyMzIuOSAxNTAuNWMwIDgzLjEtMTA0LjMgMTUwLjUtMjMyLjkgMTUwLjV6Il19LG5hdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWJlbCIsaWNvbjpbNTEyLDUxMixbXSwiZjFkMCIsIk0yNTYuOSA1MDRjLTEzOS4zIDAtMjQ3LjUtMTE2LjItMjQzLjMtMjU0LjEgMi44LTc5LjIgNDMuMi0xNTIuMiAxMTYuNS0yMDAuNCAuMyAwIDEuOS0uNiAxLjEgLjgtNS44IDUuNS0xMTEuMyAxMjkuOC0xNC4xIDIyNi40IDQ5LjggNDkuNSA5MCAyLjUgOTAgMi41IDM4LjUtNTAuMS0uNi0xMjUuOS0uNi0xMjUuOS0xMC0yNC45LTQ1LjctNDAuMS00NS43LTQwLjFsMjguOC0zMS44YzI0LjQgMTAuNSA0My4yIDM4LjcgNDMuMiAzOC43IC44LTI5LjYtMjEuOS02MS40LTIxLjktNjEuNEwyNTUuNSA4IDI5OS44IDU4LjFjLTIwLjUgMjguOC0yMS45IDYyLjYtMjEuOSA2Mi42IDEzLjgtMjMgNDMuNS0zOS4zIDQzLjUtMzkuM2wyOC41IDMxLjhjLTI3LjQgOC45LTQ1LjQgMzkuOS00NS40IDM5LjktMTUuOCAyOC41LTI3LjEgODkuNCAuNiAxMjcuMyAzMi40IDQ0LjYgODcuNy0yLjggODcuNy0yLjggMTAyLjctOTEuOS0xMC41LTIyNS0xMC41LTIyNS02LjEtNS41IC44LTIuOCAuOC0yLjggNTAuMSAzNi41IDExNC42IDg0LjQgMTE2LjIgMjA0LjggMiAxNDUuNi05OS45IDI0OS40LTI0Mi40IDI0OS40eiJdfSxvYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXdlYi1hd2Vzb21lIixpY29uOls0NDgsNTEyLFtdLCJlNjgzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIzNSAxNzcuNmw1MyA0Ni40IDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRjLTEyLjktLjQtMjMuMi0xMS0yMy4yLTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNCAyMTMuMSAxNzcuNmMtOC45LTQuMS0xNS0xMy4xLTE1LTIzLjYgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNmMwIDEwLjUtNi4yIDE5LjUtMTUuMSAyMy42eiJdfSxzYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGlua3RyZWUiLGljb246WzQ0OCw1MTIsW10sImU3ZDgiLCJNMTYgMTczLjRsMTI1LjggMC04OS40LTg1LjQgNDkuNS01MSA4NS4yIDg3LjggMC0xMjQuOCA3My45IDAgMCAxMjQuOCA4NS4yLTg3LjYgNDkuNCA1MC44LTg5LjQgODUuMiAxMjUuNyAwIDAgNzAuNS0xMjYuNCAwIDkwIDg3LjYtNDkuMyA0OS44LTEyMi4yLTEyMy0xMjIuMiAxMjMtNDkuNS00OS42IDkwLTg3LjYtMTI2LjQgMCAwLTcwLjV6TTE4Ni45IDM0NC44bDczLjkgMCAwIDE2Ny4yLTczLjkgMCAwLTE2Ny4yeiJdfSxsYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2ltcGx5YnVpbHQiLGljb246WzUxMiw1MTIsW10sImYyMTUiLCJNNDgxLjYgNjRsLTEwNiAwQzM2MS4xIDY0IDM0OSA3NS44IDM0OSA5MC4zbDAgMzkuNi0xODUuMyAwIDAtMzkuNmMwLTE0LjUtMTItMjYuMy0yNi42LTI2LjNsLTEwNiAwQzE2LjUgNjQgNC43IDc1LjggNC43IDkwLjNsMCAzMzEuNGMwIDE0LjUgMTEuOCAyNi4zIDI2LjYgMjYuM2w0NTAuNCAwYzE0LjggMCAyNi42LTExLjggMjYuNi0yNi4zbDAtMzMxLjRjLS4yLTE0LjUtMTItMjYuMy0yNi43LTI2LjN6TTE1MC41IDIyMi43YTY2LjUgNjYuNSAwIDEgMSAtLjMgMTMzLjEgNjYuNSA2Ni41IDAgMSAxIC4zLTEzMy4xem0yMTEuOSAuMWE2Ni41IDY2LjUgMCAxIDEgLjMgMTMyLjkgNjYuNSA2Ni41IDAgMSAxIC0uMy0xMzIuOXoiXX0sY2F0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dWJiZXIiLGljb246WzQ0OCw1MTIsW10sImU1YzciLCJNMTM2LjUgMjk0LjJsNTguOCAyMi45YzkuMS0zNi44IDI1LjQtNjEuMSA1NS02MS4xIDQ5LjQgMCA3MS40IDYzLjYgMTQyLjQgNjMuNiAxNS42IDAgMzUuOS0yLjggNTUuMy0xMy4zbDAgNjEuN2MwIDYxLjgtNTAuNCAxMTItMTEyLjMgMTEyTDAgNDgwIDQxLjggNDI0IDAgMzY4IDQxLjcgMzEyIDAgMjU2LjEgNDEuOCAyMDAuMSAwIDE0NC4xIDQxLjggODggMCAzMiAzMzUuNyAzMkMzOTcuNiAzMiA0NDggODIuMyA0NDggMTQ0LjFsMCA1MS4zYy05LjIgMzYuMy0yNS45IDYwLjYtNTUgNjAuNi00OS42IDAtNzEuNi02My41LTE0Mi40LTYzLjUtMzUuOSAwLTk1LjIgMTQuNi0xMTQuMSAxMDEuNmwwIC4xeiJdfSxkYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwZXIiLGljb246WzY0MCw1MTIsW10sImYzNzEiLCJNNDIuMSAyMzkuMWMyMi4yIDAgMjkgMi44IDMzLjUgMTQuNmwuOCAwIDAtMjIuOWMwLTExLjMtNC44LTE1LjQtMTcuOS0xNS40LTExLjMgMC0xNC40IDIuNS0xNS4xIDEyLjhsLTM4LjYgMGMuMy0xMy45IDEuNS0xOS4xIDUuOC0yNC40IDcuMy04LjggMTguOS0xMS44IDQ2LjEtMTEuOCAzMyAwIDQ3LjEgNSA1My45IDE4LjkgMiA0LjMgNCAxNS42IDQgMjMuN2wwIDc2LjMtMzguMyAwIDEuMy0xOS4xLTEgMGMtNS4zIDE1LjYtMTMuNiAyMC40LTM1LjUgMjAuNC0zMC4zIDAtNDEuMS0xMC4xLTQxLjEtMzcuMyAwLTI1LjIgMTIuMy0zNS44IDQyLjEtMzUuOHptMTcuMSA0OC4xYzEzLjEgMCAxNi45LTMgMTYuOS0xMy40IDAtOS4xLTQuMy0xMS42LTE5LjYtMTEuNi0xMy4xIDAtMTcuOSAzLTE3LjkgMTIuMS0uMSAxMC40IDMuNyAxMi45IDIwLjYgMTIuOXpNMTM3IDE5Mi4zbDM4LjMgMC0xLjUgMjAuNiAuOCAwYzkuMS0xNy4xIDE1LjktMjAuOSAzNy41LTIwLjkgMTQuNCAwIDI0LjcgMyAzMS41IDkuMSA5LjggOC42IDEyLjggMjAuNCAxMi44IDQ4LjEgMCAzMC0zIDQzLjEtMTIuMSA1Mi45LTYuOCA3LjMtMTYuNCAxMC4xLTMzLjIgMTAuMS0yMC40IDAtMjkuMi01LjUtMzMuOC0yMS4ybC0uOCAwIDAgNzAuMy0zOS41IDAgMC0xNjl6TTIxNy45IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTU3LjktNjAuN2wzOC4zIDAtMS41IDIwLjYgLjggMGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4zIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmwtLjggMCAwIDcwLjMtMzkuNSAwIDAtMTY5IC4xIDB6TTM1Ni43IDI1M2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTUzLjgtMy44YzAtMjUuNCAzLjMtMzcuOCAxMi4zLTQ1LjggOC44LTguMSAyMi4yLTExLjMgNDUuMS0xMS4zIDQyLjggMCA1NS43IDEyLjggNTUuNyA1NS43bDAgMTEuMS03NS4zIDBjLS4zIDItLjMgNC0uMyA0LjggMCAxNi45IDQuNSAyMS45IDIwLjEgMjEuOSAxMy45IDAgMTcuOS0zIDE3LjktMTMuOWwzNy41IDAgMCAyLjNjMCA5LjgtMi41IDE4LjktNi44IDI0LjctNy4zIDkuOC0xOS42IDEzLjYtNDQuMyAxMy42LTI3LjUgMC00MS42LTMuMy01MC42LTEyLjMtOC41LTguNS0xMS4zLTIxLjMtMTEuMy01MC44em03Ni40LTExLjZjLS4zLTEuOC0uMy0zLjMtLjMtMy44IDAtMTIuMy0zLjMtMTQuNi0xOS42LTE0LjYtMTQuNCAwLTE3LjEgMy0xOC4xIDE1LjFsLS4zIDMuMyAzOC4zIDB6bTU1LjYtNDUuM2wzOC4zIDAtMS44IDE5LjkgLjcgMGM2LjgtMTQuOSAxNC40LTIwLjIgMjkuNy0yMC4yIDEwLjggMCAxOS4xIDMuMyAyMy40IDkuMyA1LjMgNy4zIDYuOCAxNC40IDYuOCAzNCAwIDEuNSAwIDUgLjIgOS4zbC0zNSAwYy4zLTEuOCAuMy0zLjMgLjMtNCAwLTE1LjQtMi0xOS40LTEwLjMtMTkuNC02LjMgMC0xMC44IDMuMy0xMy4xIDkuMy0xIDMtMSA0LjMtMSAxMi4zbDAgNjgtMzguMyAwIDAtMTE4LjUgLjEgMHoiXX0sdWF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZS1zY2hvbGFyIixpY29uOls1MTIsNTEyLFtdLCJlNjNiIiwiTTM5MC45IDI5OC41czAgLjEgLjEgLjFjOS4yIDE5LjQgMTQuNCA0MS4xIDE0LjQgNjQtLjEgODIuNS02Ni45IDE0OS40LTE0OS40IDE0OS40UzEwNi43IDQ0NS4xIDEwNi43IDM2Mi43YzAtMjIuOSA1LjItNDQuNiAxNC40LTY0IDEuNy0zLjYgMy42LTcuMiA1LjYtMTAuNyA0LjQtNy42IDkuNC0xNC43IDE1LTIxLjMgMjcuNC0zMi42IDY4LjUtNTMuMyAxMTQuNC01My4zIDMzLjYgMCA2NC42IDExLjEgODkuNiAyOS45IDkuMSA2LjkgMTcuNCAxNC43IDI0LjggMjMuNSA1LjYgNi42IDEwLjYgMTMuOCAxNSAyMS4zIDIgMy40IDMuOCA3IDUuNSAxMC41bC0uMS0uMXptMjYuNC0xOC44Yy0zMC4xLTU4LjQtOTEtOTguNC0xNjEuMy05OC40cy0xMzEuMiA0MC0xNjEuMyA5OC40bC05NC43LTc3IDI1Ni0yMDIuNyAyNTYgMjAyLjctOTQuNyA3Ny4xIDAtLjF6Il19LHBhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YXJuIixpY29uOls1MTIsNTEyLFtdLCJmN2UzIiwiTTQwMS45IDM0NS4yYy0zOSA5LjMtNDguNCAzMi4xLTEwNCA0Ny40IDAgMC0yLjcgNC0xMC40IDUuOC0xMy40IDMuMy02My45IDYtNjguNSA2LjEtMTIuNCAuMS0xOS45LTMuMi0yMi04LjItNi40LTE1LjMgOS4yLTIyIDkuMi0yMi04LjEtNS05LTkuOS05LjgtOC4xLTIuNCA1LjgtMy42IDIwLjEtMTAuMSAyNi41LTguOCA4LjktMjUuNSA1LjktMzUuMyAuOC0xMC44LTUuNyAuOC0xOS4yIC44LTE5LjJzLTUuOCAzLjQtMTAuNS0zLjZjLTYtOS4zLTE3LjEtMzcuMyAxMS41LTYyLTEuMy0xMC4xLTQuNi01My43IDQwLjYtODUuNiAwIDAtMjAuNi0yMi44LTEyLjktNDMuMyA1LTEzLjQgNy0xMy4zIDguNi0xMy45IDUuNy0yLjIgMTEuMy00LjYgMTUuNC05LjEgMjAuNi0yMi4yIDQ2LjgtMTggNDYuOC0xOHMxMi40LTM3LjggMjMuOS0zMC40YzMuNSAyLjMgMTYuMyAzMC42IDE2LjMgMzAuNnMxMy42LTcuOSAxNS4xLTVjOC4yIDE2IDkuMiA0Ni41IDUuNiA2NS4xLTYuMSAzMC42LTIxLjQgNDcuMS0yNy42IDU3LjUtMS40IDIuNCAxNi41IDEwIDI3LjggNDEuMyAxMC40IDI4LjYgMS4xIDUyLjcgMi44IDU1LjMgLjggMS40IDEzLjcgLjggMzYuNC0xMy4yIDEyLjgtNy45IDI4LjEtMTYuOSA0NS40LTE3IDE2LjctLjUgMTcuNiAxOS4yIDQuOSAyMi4yek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00MTYuNyA3NS4yYy0xLjctMTMuNi0xMy4yLTIzLTI4LTIyLjgtMjIgLjMtNDAuNSAxMS43LTUyLjggMTkuMi00LjggMy04LjkgNS4yLTEyLjQgNi44IDMuMS00NC41LTIyLjUtNzMuMS0yOC43LTc5LjQgNy44LTExLjMgMTguNC0yNy44IDIzLjQtNTMuMiA0LjMtMjEuNyAzLTU1LjUtNi45LTc0LjUtMS42LTMuMS03LjQtMTEuMi0yMS03LjQtOS43LTIwLTEzLTIyLjEtMTUuNi0yMy44LTEuMS0uNy0yMy42LTE2LjQtNDEuNCAyOC0xMi4yIC45LTMxLjMgNS4zLTQ3LjUgMjIuOC0yIDIuMi01LjkgMy44LTEwLjEgNS40bC4xIDBjLTguNCAzLTEyLjMgOS45LTE2LjkgMjIuMy02LjUgMTcuNCAuMiAzNC42IDYuOCA0NS43LTE3LjggMTUuOS0zNyAzOS44LTM1LjcgODIuNS0zNCAzNi0xMS44IDczLTUuNiA3OS42LTEuNiAxMS4xIDMuNyAxOS40IDEyIDIzLjggMTIuNiA2LjcgMzAuMyA5LjYgNDMuOSAyLjggNC45IDUuMiAxMy44IDEwLjEgMzAgMTAuMSA2LjggMCA1OC0yLjkgNzIuNi02LjUgNi44LTEuNiAxMS41LTQuNSAxNC42LTcuMSA5LjgtMy4xIDM2LjgtMTIuMyA2Mi4yLTI4LjcgMTgtMTEuNyAyNC4yLTE0LjIgMzcuNi0xNy40IDEyLjktMy4yIDIxLTE1LjEgMTkuNC0yOC4yeiJdfSxoYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RhY2stb3ZlcmZsb3ciLGljb246WzM4NCw1MTIsW10sImYxNmMiLCJNMjkxIDMxMWwtMTk1LjctNDEuMy04LjIgMzkuMyAxOTUuNyA0MSA4LjItMzl6bTUxLTg3TDE4OC41IDk1LjcgMTYzIDEyNi41IDMxNi41IDI1NC44IDM0MiAyMjR6bS0zMS4yIDM5LjdMMTI5LjUgMTc5IDExMi44IDIxNS41IDI5NCAzMDAgMzEwLjggMjYzLjd6TTI2Mi4zIDMybC0zMiAyNCAxMTkuMyAxNjAuMyAzMi0yNC0xMTkuMy0xNjAuM3ptMjAuNSAzMjhsLTIwMCAwIDAgMzkuNyAyMDAgMCAwLTM5Ljd6bTM5LjcgODBsLTI3OS41IDAgMC0xMjAtNDAgMCAwIDE2MCAzNTkuNSAwIDAtMTYwLTQwIDAgMCAxMjB6Il19LGZhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVldG9vdGgiLGljb246WzM4NCw1MTIsW10sImYyOTMiLCJNMjYwLjYgMTcxLjFsLTQyLjkgNDIuOS0uMy04NiA0My4yIDQzLjF6TTIxNy40IDM5MC45bDQzLjEtNDMuMS00Mi45LTQyLjktLjIgODZ6TTM4NCAyNTkuNEMzODQgNDY1IDMxMi4xIDUxMiAxOTguOSA1MTJTMCA0NjUgMCAyNTkuNCA4My40IDAgMTk2LjYgMCAzODQgNTMuOSAzODQgMjU5LjR6bS0xNTguNSAwbDc5LjQtODguNi0xMjUuMS0xMzQuMyAwIDE3Ni45LTczLjgtNzMuOC0yNyAyNi45IDkyLjcgOTMtOTIuNyA5MyAyNi45IDI2LjkgNzMuOC03My44IDIuMyAxNzAgMTI3LjQtMTI3LjUtODMuOS04OC43eiJdfSxtYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYy1qcCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYSIsIk0yNTUuNyA4QzExMS42IDggOCAxMjQuOCA4IDI1NiA4IDM5Mi40IDExOS44IDUwNCAyNTUuNyA1MDQgMzg1LjkgNTA0IDUwNCA0MDMuMiA1MDQgMjU2IDUwNCAxMTcuMiAzOTYuNSA4IDI1NS43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjEuMSAzLTQxLjIgOS02MC4zbDEyNyA1Ni41LTI3LjkgMCAwIDM4LjYgNTguMSAwIDUuNyAxMS44IDAgMTguNy02My44IDAgMCAzOC43IDYzLjggMCAwIDU2IDYxLjcgMCAwLTU2IDY0LjIgMCAwLTM1LjcgODEgMzYuMWMtMS41IDIuMi01Ny4xIDk4LjMtMTc1LjIgOTguM3ptODcuNi0xMzcuM2wtNTcuNiAwIDAtMTguNyAyLjktNS42IDU0LjcgMjQuM3ptNi41LTUxLjRsMC0xNy44LTM4LjYgMCA2My0xMTYtNjUuOCAwLTQzLjQgOTYtMjMtMTAuMi0zOS42LTg1LjctNjUuOCAwIDI3LjMgNTEtODEuOS0zNi41YzI3LjgtNDQuMSA4Mi42LTk4LjEgMTczLjctOTguMSAxMTIuOCAwIDIwMyA5MCAyMDMgMjAzLjQgMCAyMS0yLjcgNDAuNi03LjkgNTlMMzUwLjQgMjcweiJdfSxnYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkZGl0IixpY29uOls1MTIsNTEyLFtdLCJmMWExIiwiTTAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NiAzOTcuNCA1MTIgMjU2IDUxMkwzNy4xIDUxMmMtMTMuNyAwLTIwLjUtMTYuNS0xMC45LTI2LjJMNzUgNDM3QzI4LjcgMzkwLjcgMCAzMjYuNyAwIDI1NnpNMzQ5LjYgMTUzLjZjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdzLTE5LjEtNDIuNy00Mi43LTQyLjdjLTIwLjYgMC0zNy44IDE0LjYtNDEuOCAzNC0zNC41IDMuNy02MS40IDMzLTYxLjQgNjguNGwwIC4yYy0zNy41IDEuNi03MS44IDEyLjMtOTkgMjkuMS0xMC4xLTcuOC0yMi44LTEyLjUtMzYuNS0xMi41LTMzIDAtNTkuOCAyNi44LTU5LjggNTkuOCAwIDI0IDE0LjEgNDQuNiAzNC40IDU0LjEgMiA2OS40IDc3LjYgMTI1LjIgMTcwLjYgMTI1LjJzMTY4LjctNTUuOSAxNzAuNi0xMjUuM2MyMC4yLTkuNiAzNC4xLTMwLjIgMzQuMS01NCAwLTMzLTI2LjgtNTkuOC01OS44LTU5LjgtMTMuNyAwLTI2LjMgNC42LTM2LjQgMTIuNC0yNy40LTE3LTYyLjEtMjcuNy0xMDAtMjkuMWwwLS4yYzAtMjUuNCAxOC45LTQ2LjUgNDMuNC00OS45IDQuNCAxOC44IDIxLjMgMzIuOCA0MS41IDMyLjhsLjEgLjJ6TTE3Ny4xIDI0Ni45YzE2LjcgMCAyOS41IDE3LjYgMjguNSAzOS4zcy0xMy41IDI5LjYtMzAuMyAyOS42LTMxLjQtOC44LTMwLjQtMzAuNSAxNS40LTM4LjMgMzIuMS0zOC4zbC4xLS4xem0xOTAuMSAzOC4zYzEgMjEuNy0xMy43IDMwLjUtMzAuNCAzMC41cy0yOS4zLTcuOS0zMC4zLTI5LjYgMTEuOC0zOS4zIDI4LjUtMzkuMyAzMS4yIDE2LjYgMzIuMSAzOC4zbC4xIC4xem0tNDguMSA1Ni43Yy0xMC4zIDI0LjYtMzQuNiA0MS45LTYzIDQxLjlzLTUyLjctMTcuMy02My00MS45Yy0xLjItMi45IC44LTYuMiAzLjktNi41IDE4LjQtMS45IDM4LjMtMi45IDU5LjEtMi45czQwLjcgMSA1OS4xIDIuOWMzLjEgLjMgNS4xIDMuNiAzLjkgNi41eiJdfSxiYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29ubmVjdGRldmVsb3AiLGljb246WzU3Niw1MTIsW10sImYyMGUiLCJNNTUwLjggMjQxbC01MC4xLTg2LjhjMS4xLTIuMSAxLjktNC42IDEuOS03LjIgMC04LTYuNy0xNC43LTE0LjctMTVMNDMyLjQgMzYuMWMuNS0xLjYgMS4xLTMuMiAxLjEtNC44IDAtOC42LTctMTUuMy0xNS4zLTE1LjMtNC44IDAtOC44IDIuMS0xMS44IDUuNmwtMTA2LjYgMGMtMi43LTMuNS02LjctNS42LTExLjUtNS42cy04LjggMi4xLTExLjUgNS42bC0xMDYuMSAwYy0yLjktMy41LTctNS42LTExLjgtNS42LTguMyAwLTE1LjMgNi43LTE1LjMgMTUuMyAwIDEuNiAuNSAzLjUgMS4xIDQuOGwtNTYgOTcuMmMtNS40IDIuNC05LjEgNy41LTkuMSAxMy43IDAgLjUgLjMgMS4xIC4zIDEuNkwyNi42IDI0MC43Yy03LjIgMS4zLTEyLjYgNy41LTEyLjYgMTUgMCA3LjIgNS4xIDEzLjQgMTIuMSAxNWw1NS4yIDk1LjRjLS41IDEuNi0uOCAyLjktLjggNC44IDAgNy4yIDUuMSAxMy40IDEyLjEgMTQuN2w1MS43IDg5LjdjLS41IDEuNi0xLjEgMy41LTEuMSA1LjQgMCA4LjYgNyAxNS4zIDE1LjMgMTUuMyA0LjggMCA4LjgtMi4xIDExLjUtNS40bDEwNi45IDBjMi43IDMuMiA3IDUuNCAxMS41IDUuNHM4LjgtMi4xIDExLjUtNS40bDEwNy4xIDBjMi43IDIuOSA2LjcgNC44IDExIDQuOCA4LjYgMCAxNS4zLTcgMTUuMy0xNS4zIDAtMS42LS4zLTIuOS0uOC00LjNsNTEuNy05MC4zYzctMS4zIDEyLjEtNy41IDEyLjEtMTQuNyAwLTEuNi0uMy0zLjItLjgtNC44bDU0LjktOTUuNGM3LTEuMyAxMi4zLTcuNSAxMi4zLTE1IDAtNy4yLTUuMS0xMy40LTExLjgtMTQuN3ptLTM5NyAyMDkuN2wtNDMuNy03NS44IDQzLjcgMCAwIDc1Ljh6bTAtODMuOGwtNDMuNyAwYy0uMy0xLjEtLjgtMi4xLTEuMy0zLjJsNDUtNDcuNCAwIDUwLjZ6bTAtNjIuNGwtNTAuNCA1My4zYy0xLjMtLjUtMi43LTEuMy00LTEuNkw0My43IDI1OS44Yy41LTEuMyAuNS0yLjcgLjUtNHMwLTIuNC0uMy0zLjVsNTItOTBjMi43LS4zIDUuNC0xLjEgNy44LTIuN2w1MC4xIDUyIDAgOTIuOXptMC0xMDIuM0wxMDggMTU0LjhjMS4zLTIuMSAyLjEtNC44IDIuMS03LjggMC0uMy0uMy0uOC0uMy0xLjFsNDMuOS0xNS44IDAgNzIuMXptMC04MC42bC00My43IDE1LjggNDMuNy03NS41IDAgNTkuN3ptMzI2LjUgMzkuMWwuOCAxLjMtMzUuNCAxNjcuMS02My44LTY3LjIgOTgtMTAxLjUgLjMgLjN6TTI5Mi4xIDM1NS4xbDExLjUgMTEuOC0yMi44IDAgMTEuMy0xMS44em0tLjMtMTEuM2wtODMuMy04NS40IDc5LjYtODQuNCA4MyA4Ny42LTc5LjMgODIuMnptNS40IDUuOWw3OS4zLTgyLjIgNjcuNSA3MS4zLTUuOSAyOC4xLTEyNCAwLTE2LjktMTcuMXpNNDEwLjcgNDQuNGMxLjEgLjUgMi4xIDEuMSAzLjUgMS4zbDU3LjkgMTAwLjcgMCAuNWMwIDIuOSAuOCA1LjYgMi4xIDcuOGwtOTcuNSAxMDEuMi04My04Ny42IDExNy4xLTEyNHptLTkuMS0yLjFsLTExMy42IDEyMC4zLTU3LjEtNjAuMyAxNjYuMy02MCA0LjMgMHptLTEyMy41IDBjMi43IDIuNyA2LjIgNC4zIDEwLjIgNC4zczcuNS0xLjYgMTAuMi00LjNsNzUgMC0xNDguNCA1My42LTUwLjktNTMuNiAxMDMuOSAwek0xNjEuOSA0Ny45bDEuMS0yLjFjLjktLjIgMS44LS41IDIuNy0uOGw1MS4yIDUzLjgtNTQuOSAxOS44IDAtNzAuN3ptMCA3OS4zbDYwLjgtMjIgNTkuNyA2My4yLTc5LjYgODQuMS00MS00Mi4xIDAtODMuM3ptMCA5Mi43bDM2LjQgMzcuOC0zNi40IDM4LjMgMC03Ni4xem0wIDg3LjlsNDIuMS00NC41IDgyLjggODYtMTcuMSAxNy43LTEwNy43IDAgMC01OS4yem03IDE2Mi4xYy0xLjYtMS42LTMuNS0yLjctNS45LTMuNWwtMS4xLTEuNiAwLTg5LjcgOTkuOSAwLTkxLjYgOTQuOC0xLjMgMHptMTI5LjkgMGMtMi43LTIuNC02LjQtNC4zLTEwLjQtNC4zcy03LjggMS45LTEwLjQgNC4zbC05Ni40IDAgOTEuNi05NC44IDM4LjMgMCA5MS42IDk0LjgtMTA0LjIgMHptMTIwLTExLjhsLTQuMyA3LjVjLTEuMyAuMy0yLjQgLjgtMy41IDEuM2wtODkuMi05MS45IDExNC40IDAtMTcuNCA4M3ptMTIuOS0yMi4ybDEyLjktNjAuOCAyMiAwLTM0LjggNjAuOHptMzQuOC02OC44bC0yMC40IDAgNC42LTIxLjIgMTcuMSAxOC4yYy0uNSAuOC0xLjEgMS45LTEuMyAyLjl6bTY2LjItMTA3LjRsLTU1LjQgOTYuN2MtMS4zIC41LTIuNyAxLjEtNCAxLjlsLTIwLjYtMjIgMzQuNi0xNjMuOSA0NS44IDc5LjNjLS4zIDEuMy0uOCAyLjctLjggNC4zIDAgMS4zIC4zIDIuNCAuNSAzLjd6Il19LHZhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZXNlYXJjaGdhdGUiLGljb246WzQ0OCw1MTIsW10sImY0ZjgiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjYyLjIgMzY2LjRjLTYuNiAzLTMzLjIgNi01MC0xNC4yLTkuMi0xMC42LTI1LjMtMzMuMy00Mi4yLTYzLjYtOC45IDAtMTQuNyAwLTIxLjQtLjZsMCA0Ni40YzAgMjMuNSA2IDIxLjIgMjUuOCAyMy45bDAgOC4xYy02LjktLjMtMjMuMS0uOC0zNS42LS44LTEzLjEgMC0yNi4xIC42LTMzLjYgLjhsMC04LjFjMTUuNS0yLjkgMjItMS4zIDIyLTIzLjlsMC0xMDkuNGMwLTIyLjYtNi40LTIxLTIyLTIzLjlsMC04LjFjMjUuOCAxIDUzLjEtLjYgNzAuOS0uNiAzMS43IDAgNTUuOSAxNC40IDU1LjkgNDUuNiAwIDIxLjEtMTYuNyA0Mi4yLTM5LjIgNDcuNSAxMy42IDI0LjIgMzAgNDUuNiA0Mi4yIDU4LjkgNy4yIDcuOCAxNy4yIDE0LjcgMjcuMiAxNC43bDAgNy4zem0yMi45LTEzNWMtMjMuMyAwLTMyLjItMTUuNy0zMi4yLTMyLjJsMC0zMi4yYzAtMTIuMiA4LjgtMzAuNCAzNC0zMC40czMwLjQgMTcuOSAzMC40IDE3LjlsLTEwLjcgNy4ycy01LjUtMTIuNS0xOS43LTEyLjVjLTcuOSAwLTE5LjcgNy4zLTE5LjcgMTkuN2wwIDI2LjhjMCAxMy40IDYuNiAyMy4zIDE3LjkgMjMuMyAxNC4xIDAgMjEuNS0xMC45IDIxLjUtMjYuOGwtMTcuOSAwIDAtMTAuNyAzMC40IDBjMCAyMC41IDQuNyA0OS45LTM0IDQ5Ljl6TTE2OC42IDI3Ni4xYy05LjQgMC0xMy42LS4zLTIwLS44bDAtNjkuN2M2LjQtLjYgMTUtLjYgMjIuNS0uNiAyMy4zIDAgMzcuMiAxMi4yIDM3LjIgMzQuNSAwIDIxLjktMTUgMzYuNi0zOS43IDM2LjZ6Il19LHhhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaWduYWwtbWVzc2VuZ2VyIixpY29uOls1MTIsNTEyLFtdLCJlNjYzIiwiTTI1NiAwYy0xMy4zIDAtMjYuMyAxLTM5LjEgM2wzLjcgMjMuN0MyMzIuMSAyNC45IDI0NCAyNCAyNTYgMjRzMjMuOSAuOSAzNS40IDIuN0wyOTUuMSAzQzI4Mi4zIDEgMjY5LjMgMCAyNTYgMHptNjAuOCA3LjNsLTUuNyAyMy4zYzIzLjQgNS43IDQ1LjQgMTQuOSA2NS40IDI3LjFsMTIuNS0yMC41Yy0yMi4xLTEzLjQtNDYuNC0yMy42LTcyLjItMjkuOXptNzYuNCA2MS42YzE5LjEgMTQgMzYgMzAuOSA1MC4xIDUwLjFsMTkuNC0xNC4yQzQ0NyA4My42IDQyOC40IDY1IDQwNy4zIDQ5LjVMMzkzLjEgNjguOHptODEuNyA1NC4ybC0yMC41IDEyLjVjMTIuMiAyMCAyMS40IDQyIDI3LjEgNjUuNGwyMy4zLTUuN2MtNi4zLTI1LjgtMTYuNS01MC4xLTI5LjktNzIuMnptMTAuNSA5Ny41YzEuOCAxMS41IDIuNyAyMy40IDIuNyAzNS40cy0uOSAyMy45LTIuNyAzNS40bDIzLjcgMy43YzEuOS0xMi43IDMtMjUuOCAzLTM5LjFzLTEtMjYuMy0zLTM5LjFsLTIzLjcgMy43em0tMzEgMTU1LjlsMjAuNSAxMi41YzEzLjQtMjIuMSAyMy42LTQ2LjQgMjkuOS03Mi4ybC0yMy4zLTUuN2MtNS43IDIzLjQtMTQuOSA0NS40LTI3LjEgNjUuNHptOC4yIDMwLjhsLTE5LjQtMTQuMmMtMTQgMTkuMS0zMC45IDM2LTUwLjEgNTAuMWwxNC4yIDE5LjRjMjEuMS0xNS41IDM5LjgtMzQuMSA1NS4yLTU1LjJ6bS04Ni4xIDQ3Yy0yMCAxMi4yLTQyIDIxLjQtNjUuNCAyNy4xbDUuNyAyMy4zYzI1LjgtNi4zIDUwLjEtMTYuNSA3Mi4yLTI5LjlsLTEyLjUtMjAuNXpNMjk1LjEgNTA5bC0zLjctMjMuN0MyNzkuOSA0ODcuMSAyNjggNDg4IDI1NiA0ODhzLTIzLjktLjktMzUuNC0yLjdMMjE2LjkgNTA5YzEyLjcgMS45IDI1LjggMyAzOS4xIDNzMjYuMy0xIDM5LjEtM3ptLTk0LjEtMjcuNmMtMTcuNi00LjMtMzQuNC0xMC42LTUwLjEtMTguNmwtNy44LTQtMzIuOCA3LjcgNS41IDIzLjQgMjQuMy01LjdjMTcuNCA4LjkgMzUuOSAxNS44IDU1LjMgMjAuNWw1LjctMjMuM3pNOTUuNCA0OTQuNkw5MCA0NzEuMyA0OC4zIDQ4MWMtMTAuNCAyLjQtMTkuNy02LjktMTcuMy0xNy4zbDkuNy00MS42LTIzLjQtNS41LTkuNyA0MS42QzEuMiA0ODYgMjYgNTEwLjggNTMuOCA1MDQuNGw0MS42LTkuN3ptLTUwLTkyLjlsNy43LTMyLjgtNC03LjhjLTgtMTUuNy0xNC4zLTMyLjUtMTguNi01MC4xTDcuMyAzMTYuN0MxMiAzMzYuMSAxOC45IDM1NC43IDI3LjcgMzcybC01LjcgMjQuMyAyMy40IDUuNXpNMyAyOTUuMWwyMy43LTMuN0MyNC45IDI3OS45IDI0IDI2OCAyNCAyNTZzLjktMjMuOSAyLjctMzUuNEwzIDIxNi45QzEgMjI5LjcgMCAyNDIuNyAwIDI1NnMxIDI2LjMgMyAzOS4xem0yNy42LTk0LjFjNS43LTIzLjQgMTQuOS00NS40IDI3LjEtNjUuNEwzNy4yIDEyMy4xYy0xMy40IDIyLjEtMjMuNiA0Ni40LTI5LjkgNzIuMmwyMy4zIDUuN3ptMTguOS05Ni4ybDE5LjQgMTQuMmMxNC0xOS4xIDMwLjktMzYgNTAuMS01MC4xTDEwNC43IDQ5LjVDODMuNiA2NSA2NSA4My42IDQ5LjUgMTA0Ljd6bTg2LjEtNDdjMjAtMTIuMiA0Mi0yMS40IDY1LjQtMjcuMUwxOTUuMiA3LjNjLTI1LjggNi4zLTUwLjEgMTYuNS03Mi4yIDI5LjlsMTIuNSAyMC41ek0yNTYgNDY0YzExNC45IDAgMjA4LTkzLjEgMjA4LTIwOFMzNzAuOSA0OCAyNTYgNDggNDggMTQxLjEgNDggMjU2YzAgMzYuNCA5LjQgNzAuNyAyNS44IDEwMC41IDEuNiAyLjkgMi4xIDYuMiAxLjQgOS40bC0yMS42IDkyLjUgOTIuNS0yMS42YzMuMi0uNyA2LjUtLjIgOS40IDEuNCAyOS44IDE2LjUgNjQgMjUuOCAxMDAuNSAyNS44eiJdfSx5YXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZjE2OCIsIk0xNjIuNyAyMTBjLTEuOCAzLjMtMjUuMiA0NC40LTcwLjEgMTIzLjUtNC45IDguMy0xMC44IDEyLjUtMTcuNyAxMi41TDkuOCAzNDZjLTcuNyAwLTEyLjEtNy41LTguNS0xNC40bDY5LTEyMS4zYy4yIDAgLjItLjEgMC0uM0wyNi40IDEzNC40Yy00LjMtNy44IC4zLTE0LjEgOC41LTE0LjFsNjUuMSAwYzcuMyAwIDEzLjMgNC4xIDE4IDEyLjJMMTYyLjcgMjEwek0zODIuNiA0Ni4xbC0xNDQgMjUzIDAgLjMgOTEuNiAxNjYuNmMzLjkgNy4xIC4yIDE0LjEtOC41IDE0LjFsLTY1LjIgMGMtNy42IDAtMTMuNi00LTE4LTEyLjJMMTQ2LjEgMjk5LjRjMy4zLTUuOCA1MS41LTkwLjggMTQ0LjgtMjU1LjIgNC42LTguMSAxMC40LTEyLjIgMTcuNS0xMi4ybDY1LjcgMGM4IDAgMTIuMyA2LjcgOC41IDE0LjF6Il19LEhhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtanMiLGljb246WzQ0OCw1MTIsWyJqcy1zcXVhcmUiXSwiZjNiOSIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMTgwLjkgNDQ0LjljLTMzLjcgMC01My4yLTE3LjQtNjMuMi0zOC41TDE1MiAzODUuN2M2LjYgMTEuNyAxMi42IDIxLjYgMjcuMSAyMS42IDEzLjggMCAyMi42LTUuNCAyMi42LTI2LjVsMC0xNDMuMSA0Mi4xIDAgMCAxNDMuN2MwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNXptODUuOC00M0wzMDEgMzgyLjFjOSAxNC43IDIwLjggMjUuNiA0MS41IDI1LjYgMTcuNCAwIDI4LjYtOC43IDI4LjYtMjAuOCAwLTE0LjQtMTEuNC0xOS41LTMwLjctMjhsLTEwLjUtNC41Yy0zMC40LTEyLjktNTAuNS0yOS4yLTUwLjUtNjMuNSAwLTMxLjYgMjQuMS01NS42IDYxLjYtNTUuNiAyNi44IDAgNDYgOS4zIDU5LjggMzMuN0wzNjggMjkwYy03LjItMTIuOS0xNS0xOC0yNy4xLTE4LTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4IDAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yIDAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42LTM5LjEgMC02NC40LTE4LjYtNzYuNy00M3oiXX0sd2F0PUhhZSxNYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9udGljb25zIixpY29uOls0NDgsNTEyLFtdLCJmMjgwIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTE4NyAxNzIuOWMtMTguNCAwLTE5IDkuOS0xOSAyNy40bDAgMjMuM2MwIDIuNC0zLjUgNC40LS42IDQuNGw2Ny40IDAtMTEuMSAzNy4zLTU1LjcgMCAwIDExMi45YzAgNS44LTIgNi43IDMuMiA3LjNsNDMuNSA0LjEgMCAyNS4xLTEzMC43IDAgMC0yNS43IDIxLjMtMmM1LjItLjYgNi43LTIuMyA2LjctNy45bDAtMTExLjRjMC0yLjMtMi45LTIuMy01LjgtMi4zbC0yMi4yIDAgMC0zNy40IDI4IDAgMC0yMWMwLTQ5LjYgMjYuNS03MCA3Ny4zLTcwIDM0LjEgMCA2NC43IDguMiA2NC43IDUyLjhsLTUwLjcgNi4xYy4zLTE4LjctNC40LTIzLTE2LjMtMjN6bTc0LjMgMjQxLjhsMC0yNS4xIDIwLjQtMi42YzUuMi0uNiA3LjYtMS43IDcuNi03LjNsMC0xMDcuOWMwLTQuMS0yLjktNi43LTYuNy03LjlsLTI0LjItNi40IDYuNy0yOS41IDgwLjIgMCAwIDE1MS43YzAgNS44LTIuNiA2LjQgMi45IDcuM2wxNS43IDIuNiAwIDI1LjEtMTAyLjYgMHptODAuOC0yNTUuNWw5IDMzLjItNy4zIDcuMy0zMS4yLTE2LjYtMzEuMiAxNi42LTcuMy03LjMgOS0zMy4yLTIxLjgtMjQuMiAzLjUtOS42IDI3LjcgMCAxNS41LTI4IDkuMyAwIDE1LjUgMjggMjcuNyAwIDMuNSA5LjYtMjEuOSAyNC4yeiJdfSxrYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXBzIixpY29uOlszODQsNTEyLFtdLCJmN2UwIiwiTTEwMy4yIDMwM2MtNS4yIDMuNi0zMi42IDEzLjEtMzIuNi0xOWwwLTEwNC0zMi43IDAgMCAxMDIuNmMwIDc0LjkgODAuMiA1MS4xIDk3LjkgMzlsMC0xNDEuNi0zMi42IDAgMCAxMjN6TTQgNzQuOEw0IDI5NS43YzAgMTAzLjcgNzQuOSAxMzUuMiAxODcuNyAxODQuMSAxMTIuNC00OC45IDE4Ny43LTgwLjIgMTg3LjctMTg0LjFsMC0yMjAuOUMyNjMuMSAxMy4yIDk3LjYgMjUuMiA0IDc0Ljh6TTM2Mi4xIDI5NS43YzAgODYuNi01My4yIDExMy42LTE3MC40IDE2NS4zLTExNy41LTUxLjgtMTcwLjUtNzguNy0xNzAuNS0xNjUuM2wwLTEyNi40YzEwMi4zLTkzLjggMjMxLjYtMTAwIDM0MC45LTg5LjhsMCAyMTYuMnpNMTUyLjUgMTg4LjNsMCAyMTIuOCAzMi43IDAgMC02OC43YzI0LjQgNy4zIDcxLjctMi42IDcxLjctNzguNSAwLTk3LjQtODAuNy04MC45LTEwNC40LTY1LjZ6bTMyLjcgMTE3LjNsMC0xMDAuM2M4LjQtNC4yIDM4LjQtMTIuNyAzOC40IDQ5LjMgMCA2Ny45LTM2LjQgNTEuOC0zOC40IDUxem03OS4xLTg2LjRjLjEgNDcuMyA1MS42IDQyLjUgNTIuMiA3MC40IC42IDIzLjUtMzAuNCAyMy01MC44IDQuOWwwIDMwLjFjMzYuMiAyMS41IDgxLjkgOC4xIDgzLjItMzMuNSAxLjctNTEuNS01NC4xLTQ2LjYtNTMuNC03My4yIC42LTIwLjMgMzAuNi0yMC41IDQ4LjUtMi4ybDAtMjguNGMtMjguNS0yMi03OS45LTkuMi03OS43IDMxLjl6Il19LFNhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbWF6b24tcGF5IixpY29uOls2NDAsNTEyLFtdLCJmNDJjIiwiTTE0IDMyNS4zYzIuMy00LjIgNS4yLTQuOSA5LjctMi41IDEwLjQgNS42IDIwLjYgMTEuNCAzMS4yIDE2LjcgNDAuNiAyMC4yIDgzLjMgMzUuOCAxMjcuNCA0Ni4zIDIwLjggNSA0MS45IDkgNjMuMiAxMS44IDMxLjUgNC4yIDYzLjIgNiA5NSA1LjIgMTcuNC0uNCAzNC44LTEuOCA1Mi4xLTMuOCA1Ni4yLTYuNiAxMTEuMS0yMSAxNjMuMy00Mi44IDIuOS0xLjIgNS45LTIgOS4xLTEuMiA2LjcgMS44IDkgOSA0LjEgMTMuOS0zIDIuNy02LjIgNS4yLTkuNiA3LjQtMzAuNyAyMS4xLTY0LjIgMzYuNC05OS42IDQ3LjktMjQuNSA3LjktNDkuNiAxMy44LTc1LjEgMTcuNi0xNy42IDIuNy0zNS40IDQuMy01My4yIDQuOC0uOCAwLTEuNyAuMi0yLjUgLjNsLTIxLjEgMGMtLjgtLjEtMS43LS4yLTIuNS0uMy0zLjYtLjItNy4yLS4zLTEwLjctLjQtMTYuOS0uOC0zMy43LTIuNS01MC40LTUuMy0yNy40LTQuNS01NC4zLTExLjUtODAuNC0yMC45LTUzLjctMTkuNC0xMDMuMS00OC45LTE0NS42LTg3LTEuOC0xLjYtMy0zLjgtNC40LTUuN2wwLTJ6TTE3MiA2NS4xbC00LjMgLjZjLTEzLjggMS43LTI2LjggNi45LTM4IDE1LjEtMi40IDEuNy00LjYgMy41LTcuMSA1LjQtLjItLjQtLjMtLjktLjQtMS40LS40LTIuNy0uOC01LjUtMS4zLTguMi0uNy00LjYtMy02LjYtNy42LTYuNmwtMTEuNSAwYy02LjkgMC04LjIgMS4zLTguMiA4LjJsMCAyMDkuM2MwIDEgMCAyIC4xIDMgLjIgMyAyIDQuOSA0LjkgNSA3IC4xIDE0LjEgLjEgMjEuMSAwIDIuOSAwIDQuNy0yIDUtNSAuMS0xIC4xLTIgLjEtM2wwLTcyLjRjMS4xIC45IDEuNyAxLjQgMi4yIDEuOSAxNy45IDE0LjkgMzguNSAxOS44IDYxIDE1LjQgMjAuNC00IDM0LjYtMTYuNSA0My44LTM0LjkgNy0xMy45IDkuOS0yOC43IDEwLjMtNDQuMSAuNS0xNy4xLTEuMi0zMy45LTguMS00OS44LTguNS0xOS42LTIyLjYtMzIuNS00My45LTM2LjktMy4yLS43LTYuNS0xLTkuOC0xLjUtMi44LS4xLTUuNS0uMS04LjMtLjF6TTEyNC42IDEwN2MtLjEtLjcgLjEtMS4zIC40LTEuOXMuOC0xLjEgMS4zLTEuNGMxMy43LTkuNSAyOC44LTE0LjUgNDUuNi0xMy4yIDE0LjkgMS4xIDI3LjEgOC40IDMzLjUgMjUuOSAzLjkgMTAuNyA0LjkgMjEuOCA0LjkgMzMgMCAxMC40LS44IDIwLjYtNCAzMC42LTYuOCAyMS4zLTIyLjQgMjkuNC00Mi42IDI4LjUtMTQtLjYtMjYuMi02LTM3LjQtMTMuOS0uNi0uMy0xLS44LTEuMy0xLjRzLS40LTEuMi0uNC0xLjljLjEtMTQuMSAwLTI4LjEgMC00Mi4ycy4xLTI4IDAtNDIuMXpNMzMwLjMgNjUuMWMtMSAuMS0yIC4zLTIuOSAuNC05LjcgLjQtMTkuNCAxLjgtMjguOSA0LjEtNi4xIDEuNi0xMiAzLjgtMTcuOSA1LjgtMy42IDEuMi01LjQgMy44LTUuMyA3LjcgLjEgMy4zLS4xIDYuNiAwIDkuOSAuMSA0LjggMi4xIDYuMSA2LjggNC45IDcuOC0yIDE1LjYtNC4yIDIzLjUtNS43IDEyLjMtMi4zIDI0LjctMy4zIDM3LjItMS40IDYuNSAxIDEyLjYgMi45IDE2LjggOC40IDMuNyA0LjggNS4xIDEwLjUgNS4zIDE2LjQgLjMgOC4zIC4yIDE2LjYgLjMgMjQuOSAwIC41LS4xIC45LS4yIDEuNC0uNS0uMS0uOSAwLTEuMy0uMS0xMC41LTIuNi0yMS4yLTQuMi0zMi00LjktMTEuMy0uNi0yMi41IC4xLTMzLjMgMy45LTEyLjkgNC41LTIzLjMgMTIuMy0yOS40IDI0LjktNC43IDkuOC01LjQgMjAuMi0zLjkgMzAuNyAyIDE0IDkgMjQuOCAyMS40IDMxLjcgMTEuOSA2LjYgMjQuOCA3LjQgMzcuOSA1LjQgMTUuMS0yLjMgMjguNS04LjcgNDAuMy0xOC40IC41LS40IDEtLjggMS42LTEuMSAuNiAzLjggMS4xIDcuNCAxLjggMTEgLjYgMy4xIDIuNSA1LjEgNS40IDUuMiA1LjQgLjEgMTAuOSAuMSAxNi4zIDAgMS4zIDAgMi41LS41IDMuNC0xLjRzMS40LTIuMSAxLjUtMy4zYy4xLS45IC4xLTEuOSAuMS0yLjhsMC0xMDZjMC00LjMtLjMtOC42LS45LTEyLjktMS45LTEyLjktNy40LTIzLjUtMTktMzAuNC02LjctNC0xNC4xLTYtMjEuOC03LjEtMy42LS41LTcuMi0uOC0xMC44LTEuMy0zLjkgLjEtNy45IC4xLTExLjkgLjF6bTM1IDEyNy43YzAgLjYtLjEgMS4yLS4zIDEuN3MtLjcgMS0xLjIgMS4zYy0xMS4yIDguMS0yMy41IDEzLjUtMzcuNCAxNC45LTUuNyAuNi0xMS40IC40LTE2LjgtMS44LTMtMS4xLTUuNi0yLjktNy44LTUuMnMtMy43LTUuMS00LjYtOC4xYy0yLTYuMy0yLTEzLjEtLjEtMTkuNCAyLjUtOC4zIDguNC0xMyAxNi40LTE1LjYgOC0yLjQgMTYuNS0zLjIgMjQuOC0yLjIgOC40IC43IDE2LjYgMi4zIDI1IDMuNCAxLjYgLjIgMi4xIDEgMi4xIDIuNi0uMSA0LjggMCA5LjUgMCAxNC4zcy0uMiA5LjQtLjEgMTQuMXpNNjI1LjIgMzIyLjJjLTEtNS00LjgtNi45LTkuMS04LjMtNi44LTIuMS0xMy45LTMuNS0yMS0zLjktMTMuMS0xLjEtMjYuMy0uNS0zOS4yIDEuOS0xNC4zIDIuNy0yNy45IDcuMy00MCAxNS42LTEuNCAuOS0yLjcgMi4xLTMuNyAzLjUtLjQgLjYtLjYgMS4zLS43IDEuOXMwIDEuNCAuMiAyLjFjLjQgMS41IDIuMSAxLjkgMy42IDEuOCAuNyAwIDEuNSAwIDIuMi0uMSA3LjgtLjggMTUuNS0xLjcgMjMuMy0yLjUgMTEuNC0xLjEgMjIuOS0xLjggMzQuMy0uOSA0LjkgLjQgOS43IDEuMyAxNC40IDIuNyA1LjEgMS40IDcuNCA1LjIgNy42IDEwLjQgLjQgOC0xLjQgMTUuNy0zLjUgMjMuMy00LjEgMTUuNC0xMCAzMC4zLTE1LjggNDUuMS0uNCAxLS44IDItMSAzLS41IDIuOSAxLjIgNC44IDQuMSA0LjEgMS44LS40IDMuNC0xLjMgNC44LTIuNSA0LjUtNC4yIDguOC04LjcgMTIuNy0xMy40IDEyLjgtMTYuNCAyMC4zLTM1LjMgMjQuNy01NS42IC44LTMuNiAxLjQtNy4zIDIuMS0xMC45bDAtMTcuM3pNNDkzLjEgMTk5Yy0xMi45LTM1LjctMjUuOC03MS40LTM4LjctMTA3LjItMi01LjctNC4yLTExLjMtNi4zLTE2LjktMS4xLTIuOS0zLjItNC44LTYuNC00LjgtNy42LS4xLTE1LjItLjItMjIuOS0uMS0yLjUgMC0zLjcgMi0zLjIgNC41IC41IDIuMSAxLjEgNC4xIDEuOSA2LjEgMTkuNiA0OC41IDM5LjMgOTcgNTkuMSAxNDUuNSAxLjcgNC4xIDIuMSA3LjYgLjIgMTEuOC0zLjMgNy4zLTUuOSAxNS05LjMgMjIuMy0zIDYuNS04IDExLjQtMTUuMiAxMy4zLTUgMS4zLTEwLjIgMS43LTE1LjQgMS4xLTIuNS0uMi01LS44LTcuNS0xLTMuNC0uMi01LjEgMS4zLTUuMiA0LjgtLjEgMy4zLS4xIDYuNiAwIDkuOSAuMSA1LjUgMiA4IDcuNCA4LjkgNS42IDEuMSAxMS4yIDEuOCAxNi45IDIgMTcuMSAuNCAzMC43LTYuNSAzOS41LTIxLjQgMy41LTUuOSA2LjYtMTIgOS4yLTE4LjQgMjMuNy01OS44IDQ3LjItMTE5LjcgNzAuNi0xNzkuNiAuNy0xLjggMS4zLTMuNiAxLjYtNS41IC40LTIuOC0uOS00LjQtMy43LTQuNC02LjYtLjEtMTMuMyAwLTE5LjkgMC0xLjctLjEtMy40IC4zLTQuNyAxLjNzLTIuNCAyLjMtMyAzLjljLS41IDEuNC0xLjEgMi43LTEuNiA0LjFsLTM0LjggMTAwYy0yLjUgNy4yLTUuMSAxNC41LTcuNyAyMi4yLS40LTEuMS0uNi0xLjctLjktMi40eiJdfSx6YXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFuZG9yYSIsaWNvbjpbMzg0LDUxMixbXSwiZTdkYSIsIk0yMDEuMyAzMkwwIDMyIDAgNDgwIDEyMC4yIDQ4MGMxMS4yIDAgMjAuMy05LjEgMjAuMy0yMC4zbDAtODYuMSAzMC4xIDBjMTQ3LjEgMCAyMDcuMy04Mi45IDIwNy4zLTE3OS45IDAtMTE5LjctOTAuOS0xNjEuOC0xNzYuNS0xNjEuOHoiXX0sQ2F0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9wZW5pZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjE5YiIsIk0yNzEuNSA0MzJsLTY4IDMyQzg4LjUgNDUzLjcgMCAzOTIuNSAwIDMxOC4yIDAgMjQ2LjcgODIuNSAxODcuMiAxOTEuNyAxNzMuOWwwIDQzYy03MS41IDEyLjUtMTI0IDUzLTEyNCAxMDEuMyAwIDUxIDU4LjUgOTMuMyAxMzUuNyAxMDNsMC0zNDAgNjgtMzMuMiAwIDM4NCAuMSAwek00NDggMjkxbC0xMzEuMy0yOC41IDM2LjgtMjAuN2MtMTkuNS0xMS41LTQzLjUtMjAtNzAtMjQuOGwwLTQzYzQ2LjIgNS41IDg3LjcgMTkuNSAxMjAuMyAzOS4zbDM1LTE5LjggOS4yIDk3LjV6Il19LFRhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2c2NvIixpY29uOls1MTIsNTEyLFtdLCJlN2RkIiwiTTM1Ny42IDI1NmMwLTI3LjEtMTAuNi01Mi41LTI5LjctNzEuN3MtNDQuNi0yOS43LTcxLjctMjkuN2wtLjEgMGMtMjcuMSAwLTUyLjYgMTAuNi03MS43IDI5LjdzLTI5LjcgNDQuNi0yOS43IDcxLjdjMCAyNy4xIDEwLjYgNTIuNSAyOS43IDcxLjcgMTkuMiAxOS4yIDQ0LjYgMjkuNyA3MS43IDI5LjdsLjEgMGMyNy4xIDAgNTIuNi0xMC42IDcxLjctMjkuNyAxOS4yLTE5LjIgMjkuNy00NC42IDI5LjctNzEuN3pNMTc2LjMgNDgyLjFjMjMgOC4xIDQ3IDEyLjYgNzEuNiAxMy40bDAtNTkuMWMtMTcuMS0uNy0zMy41LTMuOC00OS04LjlsLTIyLjYgNTQuNnptMTM3LTU0LjZjLTE1LjUgNS4xLTMyIDguMi00OSA4LjlsMCA1OS4xYzI0LjYtLjggNDguNi01LjMgNzEuNi0xMy40bC0yMi42LTU0LjZ6TTkyLjUgNDMxLjJjMjAuMiAxOC45IDQzLjMgMzQgNjguNyA0NWwyMi41LTU0LjVjLTE4LjMtNy45LTM1LjEtMTguOC00OS44LTMxLjlMOTIuNSA0MzEuMnptMjg1LjktNDEuNGMtMTQuNiAxMy4yLTMxLjQgMjQtNDkuOCAzMS45bDIyLjUgNTQuNWMyNS40LTExIDQ4LjQtMjYuMSA2OC43LTQ1bC00MS40LTQxLjR6TTE0NS40IDM3OC4yYzEzLjYgMTIuMSAyOSAyMS45IDQ1LjggMjkgMTggNy42IDM3LjEgMTIgNTYuNyAxMi45bDAtNDYuOGMtMjYuNC0xLjgtNTAuMy0xMi4zLTY5LjEtMjguNmwtMzMuNCAzMy40em0xODgtMzMuNGMtMTguOCAxNi4zLTQyLjcgMjYuOC02OS4xIDI4LjZsMCA0Ni44YzE5LjYtLjkgMzguNy01LjMgNTYuNy0xMi45IDE2LjgtNy4xIDMyLjItMTYuOSA0NS44LTI5bC0zMy40LTMzLjR6TTM4LjUgMzU2LjZjMTAuNyAyMy4yIDI1IDQ0LjMgNDIuNSA2My4xbDQxLjMtNDEuM2MtMTIuNC0xMy40LTIyLjktMjguNi0zMC45LTQ1LjJMMzguNSAzNTYuNnptMzgyLjQtMjMuNWMtOCAxNi42LTE4LjUgMzEuOS0zMC45IDQ1LjJsNDEuMyA0MS4zYzE3LjUtMTguNyAzMS44LTM5LjkgNDIuNS02My4xbC01Mi45LTIzLjV6bS0zMzEtNjljMS4xIDE4LjggNS40IDM3LjIgMTIuOCA1NC41IDcuNSAxNy44IDE4IDM0IDMxLjIgNDguMmwzMy41LTMzLjVjLTE2LjQtMTguOC0yNi45LTQyLjgtMjguNy02OS4ybC00OC44IDB6bTI4My43IDBjLTEuOCAyNi40LTEyLjMgNTAuNC0yOC43IDY5LjJsMzMuNSAzMy41YzEzLjEtMTQuMiAyMy42LTMwLjQgMzEuMi00OC4yIDcuMy0xNy40IDExLjYtMzUuNyAxMi43LTU0LjVsLTQ4LjcgMHptLTM1Ny4xIDBjLjkgMjYuNyA2LjEgNTIuNyAxNS42IDc3LjVMODUgMzE4LjJjLTYuNC0xNy0xMC4zLTM1LjEtMTEuMy01NGwtNTcuMSAwem00MjIuMSAwYy0xIDE4LjktNSAzNy4xLTExLjMgNTRsNTIuOCAyMy41YzkuNS0yNC44IDE0LjctNTAuOCAxNS42LTc3LjVsLTU3LjEgMHpNMzIuMSAxNzAuNGMtOS41IDI0LjgtMTQuNyA1MC44LTE1LjYgNzcuNWw1Ny4xIDBjMS0xOC45IDUtMzcuMSAxMS4zLTU0TDMyLjEgMTcwLjR6bTEwMS43LTI1LjJjLTEzLjEgMTQuMi0yMy42IDMwLjQtMzEuMiA0OC4yLTcuMyAxNy40LTExLjYgMzUuNy0xMi44IDU0LjVsNDguOCAwYzEuOC0yNi40IDEyLjMtNTAuNCAyOC43LTY5LjJsLTMzLjUtMzMuNXptMjExLjEgMzMuNWMxNi40IDE4LjggMjYuOSA0Mi44IDI4LjcgNjkuMmw0OC43IDBjLTEuMS0xOC44LTUuNC0zNy4yLTEyLjctNTQuNS03LjUtMTcuOC0xOC0zNC0zMS4yLTQ4LjJsLTMzLjUgMzMuNXptODIuNCAxNS4yYzYuNCAxNyAxMC4zIDM1LjEgMTEuMyA1NGw1Ny4xIDBjLS45LTI2LjctNi4xLTUyLjctMTUuNi03Ny41bC01Mi44IDIzLjV6TTgxIDkyLjNDNjMuNCAxMTEgNDkuMiAxMzIuMiAzOC41IDE1NS40bDUyLjkgMjMuNWM4LTE2LjYgMTguNS0zMS45IDMwLjktNDUuMkw4MSA5Mi4zem0zMDkgNDEuM2MxMi40IDEzLjQgMjIuOSAyOC42IDMwLjkgNDUuMmw1Mi45LTIzLjVjLTEwLjctMjMuMi0yNS00NC4zLTQyLjUtNjMuMUwzOTAgMTMzLjd6TTI0OCA5MS44Yy0xOS42IC45LTM4LjcgNS4zLTU2LjcgMTIuOS0xNi44IDcuMS0zMi4yIDE2LjktNDUuOCAyOWwzMy40IDMzLjRjMTguOC0xNi4zIDQyLjctMjYuOCA2OS4xLTI4LjZsMC00Ni43em0xNi4zIDQ2LjdjMjYuNCAxLjggNTAuMyAxMi4zIDY5LjEgMjguNmwzMy40LTMzLjRjLTEzLjYtMTIuMS0yOS0yMS45LTQ1LjgtMjktMTgtNy42LTM3LjEtMTItNTYuNy0xMi45bDAgNDYuN3pNMTYxLjIgMzUuOGMtMjUuNCAxMS00OC40IDI2LjEtNjguNyA0NWw0MS40IDQxLjRjMTQuNy0xMy4yIDMxLjQtMjQgNDkuOC0zMS45TDE2MS4yIDM1Ljh6TTMyOC42IDkwLjNjMTguMyA3LjkgMzUuMSAxOC44IDQ5LjggMzEuOWw0MS40LTQxLjRjLTIwLjItMTguOS00My4zLTM0LTY4LjctNDVMMzI4LjYgOTAuM3pNMjQ4IDE2LjRjLTI0LjYgLjgtNDguNiA1LjMtNzEuNiAxMy40bDIyLjYgNTQuNmMxNS41LTUuMSAzMi04LjIgNDktOC45bDAtNTkuMXptMTYuMyA1OS4xYzE3LjEgLjcgMzMuNSAzLjggNDkgOC45bDIyLjYtNTQuNmMtMjMtOC4xLTQ3LTEyLjYtNzEuNi0xMy40bDAgNTkuMXpNNTEyLjIgMjY0LjJsLS4yIDBDNTA3LjggMzk5IDM5OS4yIDUwNy43IDI2NC4zIDUxMS45bDAgLjEtMTYuMyAwIDAtLjFDMTEzLjEgNTA3LjcgNC41IDM5OSAuMiAyNjQuMWwtLjIgMCAwLTE2LjMgLjIgMEM0LjUgMTEzIDExMy4xIDQuMyAyNDggLjFsMC0uMSAxNi4zIDAgMCAuMUMzOTkuMiA0LjMgNTA3LjggMTEzIDUxMiAyNDcuOWwuMiAwIDAgMTYuM3oiXX0sX2F0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdsb2JhbGVha3MiLGljb246WzQ0OCw1MTIsW10sImU4NWQiLCJNNDExLjIgMzIuMmMyMC4yIDAgMzYuOCAxNi42IDM2LjggMzYuOWwwIDM3My44YzAgMjAuMi0xNi42IDM2LjktMzYuOCAzNi45bC05NC40IDAgMjgtNzkuNGMzLjEtOC44LTEuNi0xOC43LTEwLjQtMjEuOC0xLjYtLjUtMi42LTEtNC4yLTFzLTMuNiAwLTUuMiAuNWMtNS4yIDEtOS45IDUuMi0xMS45IDEwLjlsLTYuMiAxNi42IDAtNjcuNWMwLTEwLjktNy44LTE5LjctMTguMi0yMS44bC03LjIgMGMtLjUgMC0xIDAtMS42IC41LS41IDAtMSAuNS0xLjYgLjUtMi42IDEtNS4yIDIuNi03LjIgNC4xbDAtNC4xYzAtNS43LTIuNi0xMC40LTUuNy0xNGwtMS0xYy0xLTEtMi42LTIuMS00LjItMi42bDAtMjYuNWMwLTUuMi00LjEtOS4zLTkuMy05LjNsLTM5LjkgMGMtNi43IDAtMTEuNC03LjMtOC4zLTEzLjVMMjgzLjEgODQuMWMxNC41LTMxLjEgNDUuNi01MS40IDgwLjQtNTEuOWw0Ny43IDB6bS0xNjYgMGMxNy42IDAgMzAuMSAxNi4xIDI4IDMyLjItMi42IDMuNi00LjcgNy44LTYuMiAxMC45TDE4Ni42IDI0MS41Yy04LjggMTguNyA0LjIgNDAgMjQuNCA0MGwzMC42IDAgMCAxNi4xYy03LjggMy4xLTEzIDEwLjktMTMgMTkuN2wwIDMuNmMtMy42LTMuNi04LjgtNS43LTE0LjUtNS43LTExLjkgMC0yMS44IDkuOS0yMS44IDIxLjhsMCAxOS4yLTMuMSAwYy05LjMgMC0xNy4xIDcuOC0xNy4xIDE3LjFsMCAxMDUuOS05NS40IDBjLTQyIDAtNzIuNi00MC41LTYxLjItODEuNSAxLTMuMSA0LjItNS4yIDcuMy00LjdsMjEuMiAwYzI0LjQgMCA0NC42LTIwLjIgNDQuNi00NS4ybDAtNC4yYzAtMjQuOS0xOS43LTQ1LjItNDQuNi00NS4yLS41IDAtMS0uNS0xLTFsOC44LTMyLjdjMi4xLTYuMi0yLjYtMTEuOS04LjgtMTEuOWwtMzMuMiAwYy02LjcgMC0xMS40LTcuMy04LjMtMTMuNUw3Ni43IDg0LjdjMTYuMS0zMi4yIDQ4LjItNTIuNCA4NC01Mi40bDg0LjUgMHpNMTMzLjcgMTQ0LjRjLTEwLjQgMC0xOC43IDguMy0xOC43IDE4LjcgMCA5LjkgOC4zIDE4LjcgMTguNyAxOC43IDEwLjQgMCAxOC43LTguMyAxOC43LTE4LjdzLTguMy0xOC43LTE4LjctMTguN3ptMjAyLjggMGExOC42IDE4LjYgMCAxIDAgLS4yIDM3LjIgMTguNiAxOC42IDAgMSAwIC4yLTM3LjJ6Il19LExhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2ZW5tbyIsaWNvbjpbNjQwLDUxMixbXSwiZTg1YSIsIk02Ny44IDIwMi43YzIuNCA1IDMuOSAxMSAzLjkgMTkuOCAwIDE2LjItMTEuNSAzOS44LTIwLjcgNTQuOWwtOS45LTc5LjctNDEgMy45IDE4LjggMTEyIDQ2LjkgMGMyMC41LTI2LjkgNDUuOC02NS4zIDQ1LjgtOTQuOCAwLTkuMy0xLjktMTYuNi02LjMtMjMuN2wtMzcuNCA3LjV6bTExMy03LjFjLTQyLjggMC02My41IDM3LTYzLjUgNzEuOSAwIDI2LjkgMTIuOCA0OC41IDQ4LjQgNDguNSAxNCAwIDI4LjUtMyAzNy44LTcuNWw1LTMzLjZjLTEzLjIgNi43LTIzLjMgOS4zLTMzLjkgOS4zLTkuNyAwLTE3LjEtNS4yLTE3LjEtMTguMyAyMi0uMiA2MC05LjMgNjAtMzguOCAwLTE4LjMtMTMuMi0zMS41LTM2LjctMzEuNWwwIDB6bS0yMi41IDQ4LjljMS4xLTEyLjkgMTEtMjIgMTguNi0yMiA0LjMgMCA4IDIuNiA4IDcuNyAwIDEwLjgtMTkgMTQuMi0yNi42IDE0LjJsMCAwem0xNTAuMi00OC45Yy0xNS4zIDAtMjYuMSA1LjgtMzQuMyAxMS4ybC0uNC05LjMtMzQuOCAwLTE4LjQgMTE2LjEgNDAuMiAwIDEyLjctODEuNGMzLjUtMS43IDguNi00LjEgMTMuOC00LjEgMy45IDAgNy4xIDEuMyA3LjEgNi41IDAgMi4yLS43IDYtLjkgOGwtMTEuMiA3MS4xIDQwIDAgMTIuMy03Ny41Yy43LTQuMSAxLjMtMTAuMyAxLjMtMTQuNiAwLTE1LjUtNy4xLTI1LjktMjcuNC0yNS45em0xODMuMiAwYy0xNC45IDAtMjUuNyA0LjUtMzcuMiAxMi43LTQuMS03LjMtMTIuMy0xMi43LTI0LjgtMTIuNy0xNC41IDAtMjUuMyA1LjgtMzMuMyAxMS42bC0xLjEtOS43LTM0LjQgMC0xOC40IDExNi4xIDQwLjIgMCAxMi44LTgxLjRjMy41LTEuNyA4LjYtNC4xIDEzLjgtNC4xIDMuOSAwIDcuMSAxLjMgNy4xIDcuMSAwIDEuNS0uNCAzLjktLjYgNS44bC0xMS40IDcyLjYgNDAgMCAxMi43LTgxLjRjMy43LTEuOSA4LjYtNC4xIDEzLjYtNC4xIDMuOSAwIDcuMSAxLjMgNy4xIDcuMSAwIDEuNS0uNCAzLjktLjcgNS44bC0xMS40IDcyLjYgNDAgMCAxMi4zLTc3LjVjLjctNC4xIDEuMy0xMC4zIDEuMy0xNC42IDAtMTUuNS03LjEtMjUuOS0yNy43LTI1LjlsMCAwem0xMDIuMiAwYy00NC43IDAtNjQuMiAzNC4zLTY0LjIgNzAuOSAwIDI3LjggMTEuMiA1MCA0NS4xIDUwIDQ1LjggMCA2NS0zNy41IDY1LTczLjcgMC0yNy40LTEyLjMtNDcuMi00Ni00Ny4yem0tMTMuNCA5MGMtNy4xIDAtMTAuMS02LjctMTAuMS0xNy41IDAtMTQuMiAzLjItNDIgMTktNDIgNy4xIDAgOS41IDYuNSA5LjUgMTUuOSAwIDE0LjItMy41IDQzLjUtMTguNCA0My41eiJdfSxBYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWJ1bnR1IixpY29uOls1NzYsNTEyLFtdLCJmN2RmIiwiTTQ2OS4yIDc1YzAtMjAuMS04LTM5LjMtMjIuMi01My41cy0zMy40LTIyLjItNTMuNS0yMi4yLTM5LjMgOC01My41IDIyLjItMjIuMiAzMy40LTIyLjIgNTMuNWMwIDIwLjEgOCAzOS4zIDIyLjEgNTMuNXMzMy40IDIyLjEgNTMuNSAyMi4xIDM5LjMtOCA1My41LTIyLjEgMjIuMS0zMy40IDIyLjEtNTMuNWwuMSAwem0tMzE1IDE2NS43YTc1LjYgNzUuNiAwIDEgMCAtMTUxLjIgMCA3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNNTcgMzQ2YzE4LjYgNDYuOSA1MSA4NyA5MyAxMTUuMXM5MS41IDQyLjYgMTQyIDQxLjdjLTE0LjctMTguNi0yMi45LTQxLjUtMjMuMi02NS4yLTYuOC0uOS0xMy4zLTIuMS0xOS41LTMuNC0yNi44LTUuNy01MS45LTE3LjMtNzMuNi0zNHMtMzkuMy0zOC4xLTUxLjctNjIuNWMtMjAuOSA5LjktNDQuNSAxMi44LTY3LjEgOC4ybC4xIC4xem0zOTUuMSA4OS44YTc1LjYgNzUuNiAwIDEgMCAtMTUxLjIgMCA3NS42IDc1LjYgMCAxIDAgMTUxLjIgMHpNNDQ0IDM1MS42YzE4LjUgMTQuOCAzMS42IDM1LjIgMzcuMiA1OC4yIDMzLjMtNDEuMyA1Mi42LTkyLjIgNTQuOC0xNDUuMnMtMTIuNS0xMDUuNC00Mi4yLTE0OS40Yy04LjYgMjEuNS0yNCAzOS42LTQzLjggNTEuNiAxNS40IDI4LjYgMjIuOSA2MC44IDIxLjkgOTMuMnMtMTAuNyA2NC0yOCA5MS42bC4xIDB6TTEwMS4xIDEzNS40YzEyLjQgMi43IDI0LjMgNy41IDM1LjEgMTQuMyAxNi42LTI0LjIgMzguOS00NC4xIDY0LjgtNThTMjU1LjggNzAuNCAyODUuMiA3MGMuMi01LjkgLjktMTEuOSAyLTE3LjcgMy42LTE2LjcgMTEuMS0zMi4zIDIxLjgtNDUuNS00Ny43LTMuOC05NS40IDYtMTM3LjYgMjguNVM5NC4zIDkxLjcgNzAuOCAxMzMuNGMyLjctLjIgNS4zLS4zIDgtLjMgNy41IDAgMTUgLjggMjIuNCAyLjNsLS4xIDB6Il19LERhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aWFjb2luIixpY29uOlszODQsNTEyLFtdLCJmMjM3IiwiTTM4NCAzMmwtNjQgMC04MC43IDE5Mi05NC41IDAtODAuOC0xOTItNjQgMCA0OCAxMTItNDggMCAwIDQ4IDY4LjUgMCAxMy44IDMyLTgyLjMgMCAwIDQ4IDEwMi44IDAgODkuMiAyMDggODkuMi0yMDggMTAyLjggMCAwLTQ4LTgyLjMgMCAxMy44LTMyIDY4LjUgMCAwLTQ4LTQ4IDAgNDgtMTEyek0xOTIgMzM2bC0yNy02NCA1NCAwLTI3IDY0eiJdfSxFYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiemhpaHUiLGljb246WzY0MCw1MTIsW10sImY2M2YiLCJNMTcwLjUgMTQ4LjFsMCAyMTcuNSAyMy40IDAgNy43IDI2LjQgNDItMjYuNCA0OS41IDAgMC0yMTcuNS0xMjIuNyAwem05Ny44IDE5My45bC0yNy45IDAtMjcuOSAxNy41LTUuMS0xNy41LTExLjkgMCAwLTE3MC4zIDcyLjggMCAwIDE3MC4zek0xNDkuOCAyNDcuN2wtNTIuMyAwYzEuNy0yNy4xIDIuMi01MS42IDIuMi03My41bDUxLjIgMHMyLTIyLjYtOC42LTIyLjNsLTg4LjUgMGMzLjUtMTMuMSA3LjktMjYuNyAxMy4xLTQwLjcgMCAwLTI0LjEgMC0zMi4zIDIxLjYtMy40IDguOS0xMy4yIDQzLjEtMzAuNyA3OC4xIDUuOS0uNiAyNS40LTEuMiAzNi44LTIyLjIgMi4xLTUuOSAyLjUtNi43IDUuMS0xNC41bDI4LjkgMGMwIDEwLjUtMS4yIDY2LjktMS43IDczLjRsLTUyLjMgMGMtMTEuNyAwLTE1LjYgMjMuNi0xNS42IDIzLjZsNjUuNiAwYy00LjQgNDkuOS0yOCA5MS45LTcwLjggMTI1LjEgMjAuNSA1LjkgNDAuOS0uOSA1MS05LjkgMCAwIDIzLTIwLjkgMzUuNi02OS4zbDU0IDY0LjlzNy45LTI2LjktMS4yLTQwYy03LjYtOC45LTI4LjEtMzMuMS0zNi44LTQxLjhMODcuOSAzMTJjNC40LTE0IDctMjcuNiA3LjktNDAuN2w2MS42IDBzLS4xLTIzLjYtNy42LTIzLjZsMCAwem00MTItMS42YzIwLjgtMjUuNiA0NS01OC42IDQ1LTU4LjZzLTE4LjYtMTQuOC0yNy40LTQuMWMtNiA4LjItMzYuOCA0OC4yLTM2LjggNDguMmwxOS4yIDE0LjR6TTQxMS44IDE4N2MtOS04LjItMjUuOSAyLjEtMjUuOSAyLjFzMzkuNSA1NSA0MS4xIDU3LjRsMTkuNS0xMy43cy0yNS43LTM3LjYtMzQuNy00NS45bDAgMCAwIDB6TTY0MCAyNTguNGMtMTkuOCAwLTEzMC45IC45LTEzMS4xIC45bDAtMTAxYzQuOCAwIDEyLjQtLjQgMjIuOC0xLjIgNDAuOS0yLjQgNzAuMS00IDg3LjgtNC44IDAgMCAxMi4yLTI3LjItLjYtMzMuNC0zLjEtMS4yLTIzLjIgNC42LTIzLjIgNC42cy0xNjUuMiAxNi41LTIzMi40IDE4YzEuNiA4LjggNy42IDE3LjEgMTUuOCAxOS42IDEzLjMgMy41IDIyLjcgMS43IDQ5LjIgLjkgMjQuOC0xLjYgNDMuNy0yLjQgNTYuNS0yLjRsMCA5OS44LTEzMy41IDBzMi44IDIyLjMgMjUuNSAyMi45bDEwNy45IDAgMCA3MC45YzAgMTQtMTEuMiAyMi0yNC41IDIxLjEtMTQuMSAuMS0yNi4xLTEuMS00MS43LTEuOCAyIDQgNi4zIDE0LjQgMTkuMyAyMS44IDkuOSA0LjggMTYuMiA2LjYgMjYgNi42IDI5LjYgMCA0NS43LTE3LjMgNDQuOS00NS4zbDAtNzMuMyAxMjIuNCAwYzkuNyAwIDguNy0yMy44IDguNy0yMy44bDAgMHoiXX0sJGF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhbmRleCIsaWNvbjpbMjU2LDUxMixbXSwiZjQxMyIsIk0xNTMuMSAzMTUuOEw2NS43IDUxMiAyIDUxMiA5OCAzMDIuMkM1Mi45IDI3OS4zIDIyLjggMjM3LjggMjIuOCAxNjEuMSAyMi43IDUzLjcgOTAuOCAwIDE3MS43IDBsODIuMyAwIDAgNTEyLTU1LjEgMCAwLTE5Ni4yLTQ1LjggMHpNMTk4LjkgNDYuNWwtMjkuNCAwYy00NC40IDAtODcuNCAyOS40LTg3LjQgMTE0LjYgMCA4Mi4zIDM5LjQgMTA4LjggODcuNCAxMDguOGwyOS40IDAgMC0yMjMuNHoiXX0sSWF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpeGl2IixpY29uOls0NDgsNTEyLFtdLCJlNjQwIiwiTTk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMjU2YzAtNTMtNDMtOTYtOTYtOTZMOTYgMzJ6bTc3LjcgMjE3LjNhNjAuMSA2MC4xIDAgMSAwIDEyMC4zIDAgNjAuMSA2MC4xIDAgMSAwIC0xMjAuMyAwek0xMTkuMSAzODcuOGMtLjMtLjgtLjUtMS43LS41LTIuNmwwLTI0NC4zYzAtMS44IC43LTMuNiAyLTQuOXMzLTIgNC45LTJsMTYuOSAwYzEuMiAwIDIuMyAuMyAzLjMgLjhzMS45IDEuMyAyLjUgMi4zbDE0IDIxLjhjMTkuNy0xNS42IDQ0LjUtMjUgNzEuNi0yNSA2My42IDAgMTE1LjIgNTEuNiAxMTUuMiAxMTUuMlMyOTcuNSAzNjQuNSAyMzMuOCAzNjQuNWMtMjIgMC00Mi42LTYuMi02MC4xLTE2LjlsMCAzNy42YzAgLjktLjIgMS44LS41IDIuNnMtLjkgMS42LTEuNSAyLjItMS40IDEuMS0yLjIgMS41LTEuNyAuNS0yLjYgLjVsLTQxLjMgMGMtLjkgMC0xLjgtLjItMi42LS41cy0xLjYtLjktMi4yLTEuNS0xLjEtMS40LTEuNS0yLjJ6Il19LFBhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuYWkiLGljb246WzUxMiw1MTIsW10sImU3Y2YiLCJNMTk2LjQgMTg1LjhsMC00OC42YzAtNC4xIDEuNS03LjIgNS4xLTkuMmw5Ny44LTU2LjNjMTMuMy03LjcgMjkuMi0xMS4zIDQ1LjYtMTEuMyA2MS40IDAgMTAwLjQgNDcuNiAxMDAuNCA5OC4zIDAgMy42IDAgNy43LS41IDExLjhMMzQzLjMgMTExLjFjLTYuMS0zLjYtMTIuMy0zLjYtMTguNCAwTDE5Ni40IDE4NS44ek00MjQuNyAzNzUuMmwwLTExNi4yYzAtNy4yLTMuMS0xMi4zLTkuMi0xNS45TDI4NyAxNjguNCAzMjkgMTQ0LjNjMy42LTIgNi43LTIgMTAuMiAwTDQzNyAyMDAuN2MyOC4yIDE2LjQgNDcuMSA1MS4yIDQ3LjEgODUgMCAzOC45LTIzIDc0LjgtNTkuNCA4OS42bDAgMHpNMTY2LjIgMjcyLjhsLTQyLTI0LjZjLTMuNi0yLTUuMS01LjEtNS4xLTkuMmwwLTExMi42YzAtNTQuOCA0Mi05Ni4zIDk4LjgtOTYuMyAyMS41IDAgNDEuNSA3LjIgNTguNCAyMEwxNzUuNCAxMDguNWMtNi4xIDMuNi05LjIgOC43LTkuMiAxNS45bDAgMTQ4LjUgMCAwem05MC40IDUyLjJsLTYwLjItMzMuOCAwLTcxLjcgNjAuMi0zMy44IDYwLjIgMzMuOCAwIDcxLjctNjAuMiAzMy44em0zOC43IDE1NS43Yy0yMS41IDAtNDEuNS03LjItNTguNC0yMGwxMDAuOS01OC40YzYuMS0zLjYgOS4yLTguNyA5LjItMTUuOWwwLTE0OC41IDQyLjUgMjQuNmMzLjYgMiA1LjEgNS4xIDUuMSA5LjJsMCAxMTIuNmMwIDU0LjgtNDIuNSA5Ni4zLTk5LjMgOTYuM2wwIDB6TTE3My44IDM2Ni41TDc2LjEgMzEwLjJjLTI4LjItMTYuNC00Ny4xLTUxLjItNDcuMS04NSAwLTM5LjQgMjMuNi03NC44IDU5LjktODkuNmwwIDExNi43YzAgNy4yIDMuMSAxMi4zIDkuMiAxNS45bDEyOCA3NC4yLTQyIDI0LjFjLTMuNiAyLTYuNyAyLTEwLjIgMHptLTUuNiA4NGMtNTcuOSAwLTEwMC40LTQzLjUtMTAwLjQtOTcuMyAwLTQuMSAuNS04LjIgMS0xMi4zbDEwMC45IDU4LjRjNi4xIDMuNiAxMi4zIDMuNiAxOC40IDBsMTI4LjUtNzQuMiAwIDQ4LjZjMCA0LjEtMS41IDcuMi01LjEgOS4ybC05Ny44IDU2LjNjLTEzLjMgNy43LTI5LjIgMTEuMy00NS42IDExLjNsMCAwem0xMjcgNjAuOWM2MiAwIDExMy43LTQ0IDEyNS40LTEwMi40IDU3LjMtMTQuOSA5NC4yLTY4LjYgOTQuMi0xMjMuNCAwLTM1LjgtMTUuNC03MC43LTQzLTk1LjcgMi42LTEwLjggNC4xLTIxLjUgNC4xLTMyLjMgMC03My4yLTU5LjQtMTI4LTEyOC0xMjgtMTMuOCAwLTI3LjEgMi00MC40IDYuNy0yMy0yMi41LTU0LjgtMzYuOS04OS42LTM2LjktNjIgMC0xMTMuNyA0NC0xMjUuNCAxMDIuNC01Ny4zIDE0LjgtOTQuMiA2OC42LTk0LjIgMTIzLjQgMCAzNS44IDE1LjQgNzAuNyA0MyA5NS43LTIuNiAxMC44LTQuMSAyMS41LTQuMSAzMi4zIDAgNzMuMiA1OS40IDEyOCAxMjggMTI4IDEzLjggMCAyNy4xLTIgNDAuNC02LjcgMjMgMjIuNSA1NC44IDM2LjkgODkuNiAzNi45eiJdfSxOYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2l0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUxMiIsIk0wIDMybDY5LjcgMTE4LjgtNTguOS0xMS41IDY5LjggOTFjLTMgMTctMyAzNC40IDAgNTEuNGwtNjkuOCA5MSA1OC45LTExLjUtNjkuNyAxMTguOCAxMTguOC02OS43LTExLjUgNTguOSA5MS02OS44YzE3IDMgMzQuNSAzIDUxLjUgMGw5MSA2OS44LTExLjUtNTguOSAxMTguNyA2OS43LTY5LjctMTE4LjggNTguOSAxMS41LTY5LjgtOTFjMy0xNyAzLTM0LjQgMC01MS40bDY5LjgtOTEtNTguOSAxMS41IDY5LjctMTE4LjgtMTE4LjcgNjkuNyAxMS41LTU4LjktOTEuMSA2OS45Yy04LjUtMS41LTE3LjEtMi4zLTI1LjctMi4zcy0xNy4yIC44LTI1LjcgMi4zTDEwNy4yIDQyLjggMTE4LjggMTAxLjcgMCAzMnpNMjI0IDM4MC4yYTEyNC4yIDEyNC4yIDAgMSAxIDAtMjQ4LjQgMTI0LjIgMTI0LjIgMCAxIDEgMCAyNDguNHptMC0yMTEuOGE4Ny42IDg3LjYgMCAxIDAgMCAxNzUuMSA4Ny42IDg3LjYgMCAxIDAgMC0xNzUuMXoiXX0sRmF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imp1bGlhIixpY29uOls2NDAsNTEyLFtdLCJlODUyIiwiTTEyNCA0MDYuNWMwIDE2LjEtMS44IDI5LjEtNS40IDM5cy04LjggMTcuNi0xNS41IDIzLjEtMTQuNyA5LjEtMjQuMSAxMS0xOS44IDIuOC0zMS4yIDIuOGMtMTUuNSAwLTI3LjMtMi40LTM1LjUtNy4zUzAgNDY0LjUgMCA0NTcuN2MwLTUuNiAyLjMtMTAuNCA2LjktMTQuM3MxMC44LTUuOCAxOC41LTUuOGM1LjggMCAxMC40IDEuNiAxMy45IDQuN3M2LjMgNi4yIDguNiA5LjNjMi42IDMuNCA0LjggNS42IDYuNSA2LjhzMy40IDEuNyA0LjggMS43YzMuMSAwIDUuNC0xLjggNy01LjRzMi40LTEwLjcgMi40LTIxLjJsMC0xOTguNyA1NS40LTE1LjIgMCAxODYuOXptNzguOS0xODEuNmwwIDEyNy45YzAgMy42IC43IDYuOSAyLjEgMTBzMy4zIDUuOCA1LjcgOC4xIDUuMiA0LjEgOC41IDUuNCA2LjcgMi4xIDEwLjQgMi4xYzQuMiAwIDguOS0yLjMgMTQuNy02LjQgOS4yLTYuNCAxNC43LTEwLjkgMTQuNy0xNi4xbDAtMTMxIDU1LjEgMCAwIDE4MS42LTU1LjEgMCAwLTE2LjljLTcuMyA2LjEtMTUgMTEtMjMuMiAxNC43cy0xNi4yIDUuNi0yMy45IDUuNmMtOSAwLTE3LjQtMS41LTI1LjEtNC41cy0xNC41LTctMjAuMy0xMi4yLTEwLjQtMTEuMi0xMy43LTE4LjFjLTMuMy02LjktNS0xNC4zLTUtMjIuMmwwLTEyNy45IDU1LjEgMHpNMzkxLjQgNDA2LjVsLTU0LjkgMCAwLTI1NC42IDU0LjktMTUuMiAwIDI2OS44em0yMi45LTE3MS43bDU1LjEtMTUuMiAwIDE4Ni45LTU1LjEgMCAwLTE3MS43em0xNzAuMyA3Ny45Yy01LjMgMi4zLTEwLjcgNC45LTE2LjEgNy45cy0xMC4zIDYuMi0xNC43IDkuOC04IDcuMy0xMC44IDExLjQtNC4xIDguMi00LjEgMTIuNmMwIDMuNCAuNCA2LjYgMS4zIDkuOHMyLjEgNS44IDMuOCA4LjEgMy40IDQuMSA1LjMgNS40IDQgMi4xIDYuMyAyLjFjNC41IDAgOS4xLTEuNCAxMy43LTQuMXM5LjctNi4yIDE1LjQtMTAuNGwwLTUyLjV6TTY0MCA0MDYuNWwtNTUuNCAwIDAtMTQuNWMtMy4xIDIuNi02IDUtOC45IDcuMXMtNi4yIDQuMS05LjggNS43LTcuNyAyLjktMTIuMiAzLjhjLTQuNSAuOS05LjggMS4zLTE1LjkgMS4zLTguNCAwLTE1LjktMS4yLTIyLjYtMy42LTYuNy0yLjQtMTIuNC01LjctMTctOS45cy04LjMtOS4xLTEwLjgtMTQuOWMtMi41LTUuNy0zLjgtMTItMy44LTE4LjcgMC02LjkgMS4zLTEzLjIgNC0xOC45IDIuNy01LjYgNi4zLTEwLjcgMTAuOS0xNS4yIDQuNi00LjUgOS45LTguNSAxNi4xLTEyLjFzMTIuNy02LjggMTkuNy05LjggMTQuMy01LjcgMjEuOS04LjIgMTUuMS00LjkgMjIuNS03LjFsNi0xLjUgMC0xNy45YzAtMTEuNi0yLjItMTkuOC02LjYtMjQuN3MtMTAuNC03LjMtMTcuOC03LjNjLTguNyAwLTE0LjggMi4xLTE4LjEgNi4zcy01LjEgOS4zLTUuMSAxNS4yYzAgMy40LS40IDYuNy0xLjEgOS45LS43IDMuMi0yIDYtMy43IDguNXMtNC4zIDQuNC03LjYgNS44Yy0zLjMgMS41LTcuNSAyLjItMTIuNSAyLjItNy43IDAtMTQtMi4yLTE4LjktNi42LTQuOC00LjQtNy4zLTEwLTcuMy0xNi44IDAtNi4zIDIuMS0xMi4xIDYuNC0xNy41IDQuMy01LjQgMTAtMTAgMTcuMy0xMy45IDcuMy0zLjkgMTUuNi02LjkgMjUuMS05LjJzMTkuNi0zLjQgMzAuMi0zLjRjMTMuMSAwIDI0LjMgMS4yIDMzLjcgMy41czE3LjIgNS43IDIzLjMgMTAgMTAuNiA5LjYgMTMuNSAxNS43IDQuNCAxMyA0LjQgMjAuNmwwIDEzNi4xek02MCAxNzIuOWEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAwek00NTIuMiA5NWEzNy40IDM3LjQgMCAxIDEgNzQuOSAwIDM3LjQgMzcuNCAwIDEgMSAtNzQuOSAwem00NSA3Ny45YTM3LjQgMzcuNCAwIDEgMSA3NC45IDAgMzcuNCAzNy40IDAgMSAxIC03NC45IDB6bS04OS45IDBhMzcuNCAzNy40IDAgMSAxIDc0LjkgMCAzNy40IDM3LjQgMCAxIDEgLTc0LjkgMHoiXX0sT2F0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5mYy1kaXJlY3Rpb25hbCIsaWNvbjpbNTEyLDUxMixbXSwiZTUzMCIsIk0yMTEuOCA0ODguNmMxLjYgMi41IDIuMSA1LjYgMS40IDguNS0uNiAyLjktMi40IDUuNS00LjkgNy4xLTIuNiAxLjYtNS42IDIuMS04LjYgMS41LTYxLjQtMTMuOS0xMTUuNi00OS45LTE1Mi4yLTEwMS4yUy01LjQgMjkwLjMgMS42IDIyNy43YzctNjIuNyAzNi44LTEyMC41IDgzLjctMTYyLjUgNDYuOS00MiAxMDcuNy02NS4yIDE3MC43LTY1LjIgMS41IDAgMi4xIC4zIDQuMyAuOSAxLjQgLjYgMS44IDEuNCAzLjcgMi41IDEuMSAxLjEgMS45IDIuMyAyLjUgMy43IC41IDEuNCAuOCAyLjggLjggNC4zbDAgMTAxIDI0LjUtMjUuOWMxLTEuMSAyLjItMiAzLjYtMi42IDEuMy0uNiAyLjgtLjkgNC4zLTEgMS41LS4xIDIuOSAuMiA0LjMgLjdzMi43IDEuMyAzLjggMi40YzEgMSAxLjkgMi4yIDIuNSAzLjYgLjYgMS4zIDEgMi44IDEgNC4zcy0uMiAzLS43IDQuM2MtLjYgMS40LTEuNCAyLjYtMi40IDMuN2wtNDQgNDYuNmMtMS4xIDEuMS0yLjMgMi0zLjcgMi42LTEuNSAuNi0zIC45LTUuNCAuOS0uNiAwLTIuMi0uMy0zLjYtLjlzLTIuNy0xLjUtMy43LTIuNmwtNDQuMS00Ni42Yy0yLTIuMi0zLjEtNS4xLTMtOC4xIDAtMyAxLjMtNi43IDMuNS03LjkgMi4yLTIuMSA1LjEtMy4yIDguMS0zLjEgMyAuMSA1LjggMS4zIDcuOSAzLjVsMjQuNSAyNiAwLTg5LjVjLTU2LjQgMi44LTEwOS44IDI1LjgtMTUwLjUgNjUtNDAuNiAzOS4xLTY1LjcgOTEuNy03MC42IDE0Ny45UzM0LjQgMzQ4LjEgNjcuNyAzOTMuN2MzMi40IDQ1LjUgODIgNzcuNSAxMzcgODkuOSAyLjkgLjcgNS41IDIuNSA3LjEgNXpNMTcxLjQgMTI2LjFjLS44IDEuMy0xLjkgMi40LTMuMSAzLjItMjAuNSAxMy45LTM3LjIgMzIuNi00OC44IDU0LjVzLTE3LjcgNDYuMy0xNy43IDcxLjEgNi4xIDQ5LjIgMTcuNyA3MC4yYzExLjYgMjIuOCAyOC4zIDQxLjUgNDguOCA1NS40IDIuNSAxLjcgNC4yIDQuMyA0LjcgNy4zIC42IDIuOS0uOSA2LTEuNyA4LjQtMS43IDIuNS01LjIgNC4yLTcuMyAzLjktMi45IDEuNC02IC44LTguNC0uOS0yMy42LTE2LTQyLjgtMzcuNS01Ni4xLTYyLjctMTMuMy0yNS4xLTIwLjMtNTMuMS0yMC4zLTgxLjYgMC0yOC40IDctNTYuNSAyMC4zLTgxLjYgMTMuMy0yNS4yIDMyLjUtNDYuNyA1Ni4xLTYyLjcgMS4yLS44IDIuNi0xLjQgNC0xLjggMS41LS4zIDMtLjMgNC41IDAgMS40IC4yIDIuOCAuOCA0LjEgMS42czIuMyAxLjkgMy4yIDMuMWMuOCAxLjIgMS40IDIuNiAxLjcgNC4xcy4zIDMgMCA0LjRjLS4zIDEuNS0uOCAyLjktMS43IDQuMXpNMzQwLjkgMzgzLjVjLjgtMS4yIDEuOS0yLjMgMi4yLTMuMWwwLS4xYzIxLjMtMTQgMzgtMzIuNyA0OS42LTU0LjYgMTEuNS0yMS44IDE3LjUtNDYuMiAxNy41LTcwLjlzLTYtNDkuMS0xNy41LTcxYy0xMS42LTIyLjctMjguMy00MC41LTQ5LjYtNTQuNS0uMy0uOC0xLjQtMS45LTIuMi0zLjEtLjgtMS4zLTEuNC0yLjctMS42LTQuMS0xLjItMS41LS4zLTMgMC00LjQgLjMtMS41IC45LTIuOSAxLjctNC4xIC45LTEuMiAxLjEtMi4zIDMuMi0zLjEgMS4yLS44IDIuNi0xLjMgNC4xLTEuNnMyLjktLjMgNC40IDAgMi44IC45IDQuMSAxLjhjMjMuNCAxNiA0Mi43IDM3LjUgNTUuOSA2Mi42IDEzLjMgMjUuMSAxOS40IDUzLjEgMTkuNCA4MS41IDAgMjguNS02LjEgNTYuNS0xOS40IDgxLjYtMTMuMiAyNS4xLTMyLjUgNDYuNi01NS45IDYyLjYtMS4zIC45LTIuNiAxLjUtNC4xIDEuOHMtMi45IC4zLTQuNCAwLTIuOS0xLjctNC4xLTEuNmMtMi4xLS44LTIuMy0xLjktMy4yLTMuMS0uOC0xLjItMS40LTIuNi0xLjctNC4xLS4zLTEuNC0xLjItMi45IDAtNC40IC4yLTEuNCAuOC0yLjggMS42LTQuMXpNMzEyLjMgNi4zYzU2LjIgMTIuNyAxMDYuNCA0NCAxNDIuNyA4OC43IDMwLjQgMzcuNiA0OS42IDgzIDU1LjMgMTMxIDUuNiA0OC0yLjQgOTYuNy0yMy4yIDE0MC4zLTIwLjkgNDMuNi01My42IDgwLjUtOTQuNSAxMDYuMy00MC45IDI1LjctODguMiAzOS40LTEzNi42IDM5LjQtMS41IDAtMi45LS4zLTQuMy0uOS0xLjQtLjUtMi42LTEuNC0zLjctMi40LTEuOS0xLjEtMS45LTIuMy0yLjQtMy43LS42LTEuNC0uOS0yLjgtLjktNC4zbDAtOTkuMi0yNC41IDI2Yy0yLjEgMi4yLTQuOSAyLjYtNy45IDMuNi0zIC4xLTUuOS0xLjEtOC4xLTQtMi4yLTEuMi0zLjUtNC0zLjUtNy0uMS0zIDEtNS45IDMtOC4xbDQ0LjEtNDYuNmMxLjMtMi4yIDUuMS0zLjQgNy4zLTMuNCA0IDAgNi45IDEuMiA5LjEgMy40bDQ0IDQ2LjZjMi4xIDIuMiAzLjIgNS4xIDMuMSA4LjFzLTEuNCA1LjgtMy41IDdjLTIuMiAyLjktNS4xIDQuMS04LjEgNC0zLTEtNS45LTEuNC03LjktMy42bC0yNC41LTI1LjkgMCA4Ny41YzU2LjQtMi44IDEwOS44LTI1LjggMTUwLjUtNjUgNDAuNy00MCA2NS44LTkxLjcgNzAuNy0xNDcuOSA0LjgtNTcuMS0xMC44LTExMi4zLTQ0LjEtMTU3LjktMzMuMy00NS42LTgyLTc3LjUtMTM3LTg5LjktMS41LS4zLTIuOC0uOS00LjEtMS44LTEuMi0uOS0yLjItMS45LTMtMy4yLS44LTEuMi0yLjItMi42LTEuNi00LjEtLjItMS41LS4yLTMgLjEtNC40IC40LTEuNCAxLTIuOCAxLjgtNCAuOS0xLjIgMi0yLjIgMy4yLTMgMS4zLS44IDIuNy0xLjMgNC4xLTEuNiAxLjUtLjMgMy0uMiA0LjQgLjF6bTQwLjggMjQ5LjhjMCAzMS40LTE3LjUgNjEuMS00OS4zIDgzLjUtMi4xIDEuNS00LjggMi4zLTcuNCAyLTIuNy0uMi01LjItMS4zLTctMy4ybC03MC4xLTY5LjhjLTIuMi0yLjEtNC4yLTUtMy40LTggMC0zIDEuMi01LjkgMy4zLTggMi4yLTIuMSA1LTMuMyA4LTMuM3M1LjkgMS4yIDggMy4zbDYzLjEgNjIuOGMyMC44LTE3LjEgMzIuMi0zNy45IDMyLjItNTkuMyAwLTIzLjktMTQuMS00Ny0zOS43LTY1LjEtMi41LTEuNy00LjEtNC4zLTQuNi03LjMtLjUtMi45IC4xLTYgMS45LTguNCAxLjctMi41IDQuMy00LjEgNy4zLTQuNiAyLjktLjUgNiAuMSA4LjQgMS45IDMxLjggMjIuNCA0OS4zIDUyLjEgNDkuMyA4My41ek0yMTYuNyAzNDEuNWMtMyAuNS02LS4yLTguNS0xLjktMzEuNy0yMi40LTUwLjEtNTIuMS01MC4xLTgzLjVzMTguNC02MS4xIDUwLjEtODMuNWMyLjItMS42IDQuOS0yLjMgNy41LTIuMSAyLjcgLjMgNS4xIDEuNCA3IDMuM2w3MC4xIDY5LjhjMi4xIDIuMSAzLjMgNSAzLjMgOHMtMiA1LjgtMy4zIDhjLTIuMSAyLjEtNSAzLjMtNy45IDMuMy0zIDAtNi44LTEuMi04LTMuM2wtNjMuMS02Mi45Yy0yMC45IDE3LjMtMzIuMiAzOC0zMi4yIDU5LjQgMCAyMyAxNC4xIDQ3IDM5LjcgNjUgMi40IDEuOCA0LjEgNC40IDQuNiA3LjQgLjUgMi45LS4yIDUuOS0xLjkgOC40LTEuNyAyLjQtNC40IDQuMS03LjMgNC42eiJdfSxSYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1ieSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlNyIsIk0zMjIuOSAxOTQuNGwwIDEwMS40LTI4LjMgMCAwIDEyMC41LTc3LjEgMCAwLTEyMC40LTI4LjMgMCAwLTEwMS41YzAtNC40IDEuNi04LjIgNC42LTExLjMgMy4xLTMuMSA2LjktNC43IDExLjMtNC43bDEwMS45IDBjNC4xIDAgNy44IDEuNiAxMS4xIDQuNyAzLjEgMy4yIDQuOCA2LjkgNC44IDExLjN6bS0zMi41LTY0LjVhMzQuNSAzNC41IDAgMSAxIC02OSAuOCAzNC41IDM0LjUgMCAxIDEgNjktLjh6TTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3oiXX0sQmF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVtYnJhY28iLGljb246WzUxMiw1MTIsW10sImY4ZTgiLCJNMjU2LjMgOGEyNDggMjQ4IDAgMSAwIC0uNyA0OTYgMjQ4IDI0OCAwIDEgMCAuNy00OTZ6bTE0NSAyNjZjLS44IDI3LjEtNS40IDQ4LjgtMTQgNjVzLTIzLjEgMjcuOS00My41IDM1Yy0yMC40IDcuMS00OC45IDEwLjYtODUuNCAxMC41bC00LjYgMGMtMzYuNSAuMS02NS0zLjMtODUuNC0xMC41cy0zNC45LTE4LjgtNDMuNS0zNWMtOC42LTE2LjItMTMuMi0zNy45LTE0LTY1LS43LTEwLjItLjctMjAuNSAwLTMwLjcgLjQtMTQuNyAxLjYtMjkuMyAzLjYtNDMuOSAxLjktMTMuNCAzLjYtMjIuNiA1LjQtMzIgMS00LjkgMS4zLTYuNCAxLjgtOC40IC4zLTEuMSAuOS0yLjEgMS44LTIuOHMyLTEuMSAzLjEtMS4xbC43IDAgMzIgNWMxLjIgLjIgMi4yIC44IDMgMS43czEuMiAyLjEgMS4yIDMuM2MwIC4zIDAgLjUgMCAuOGwtMS43IDguOGMtMS42IDguOC0zLjIgMjAuMS00LjggMzMuNy0xLjcgMTQtMi41IDI4LjEtMi42IDQyLjItLjIgMjcgMi41IDQ2LjkgOC4xIDU5LjggMi44IDYuNCA3LjIgMTIgMTIuNiAxNi40czExLjkgNy40IDE4LjcgOC44YzE4LjggNCAzOC4xIDUuNyA1Ny4zIDUuMWwxMC4zIDBjMTkuMiAuNiAzOC41LTEuMiA1Ny4zLTUuMiA2LjgtMS40IDEzLjItNC41IDE4LjYtOC44czkuNy0xMCAxMi41LTE2LjRjNS43LTEyLjkgOC40LTMyLjkgOC4xLTU5LjgtLjEtMTQuMS0xLTI4LjItMi42LTQyLjEtMS43LTEzLjYtMy4zLTI0LjgtNC45LTMzLjdsLTEuNy04LjhjMC0uMyAwLS41IDAtLjggMC0xLjIgLjQtMi40IDEuMi0zLjNzMS44LTEuNSAzLTEuN2wzMi01IC44IDBjMS4xIDAgMi4yIC40IDMuMSAxLjFzMS41IDEuNyAxLjggMi44Yy42IDIgLjggMy42IDEuOCA4LjQgMS44IDkuNiAzLjUgMTguOCA1LjQgMzIgMiAxNC42IDMuMiAyOS4yIDMuNiA0My45IC43IDEwLjIgLjcgMjAuNSAwIDMwLjdsMCAweiJdfSxIYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG9vbGkiLGljb246WzY0MCw1MTIsW10sImY0MjciLCJNMTQ0LjUgMzUybDM4LjMgLjhjLTEzLjItNC42LTI2LTEwLjItMzguMy0xNi44bDAgMTZ6bTU3LjctNS4zbDAgNS4zLTE5LjQgLjhjMzYuNSAxMi41IDY5LjkgMTQuMiA5NC43IDcuMi0xOS45IC4yLTQ1LjgtMi42LTc1LjMtMTMuM3pNNjExLjEgMjMxLjVjMTUuOSAwIDI4LjktMTIuOSAyOC45LTI4LjlzLTEyLjktMjQuNS0yOC45LTI0LjVjLTE1LjkgMC0yOC45IDguNi0yOC45IDI0LjVzMTIuOSAyOC45IDI4LjkgMjguOXpNNTgyLjEgMzUybDU3LjkgMCAwLTExMC41LTU3LjkgMCAwIDExMC41em0tNzMuNyAwbDU3LjkgMCAwLTE5NS4zLTU3LjkgMjcuMyAwIDE2OHptLTMxLTExOS40Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMy0xLjEtNTAuNCAxNy4xYy0xOC4yIDE4LjItMTYuOCAzMy45LTE2LjggNTIuNnMtMS40IDM0LjMgMTYuOCA1Mi41IDUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi44LTMzLjggMTYuOC01Mi41LS4xLTE4LjggMS4zLTM0LjUtMTYuOC01Mi42em0tMzkuOCA3MS45YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41bDAtNDAuNGMwLTguNyA3LjMtMTAuOSAxMC43LTEwLjlzMTAuNyAyLjEgMTAuNyAxMC45bDAgNDAuNHpNMzMxLjQgMjMyLjZjLTE4LjItMTguMi01MC40LTE3LjEtNTAuNC0xNy4xcy0zMi4yLTEuMS01MC40IDE3LjFjLTEuOSAxLjktMy43IDMuOS01LjMgNi0zOC4yLTI5LjYtNzIuNS00Ni41LTEwMi4xLTYxLjFsMC0yMC43LTIyLjUgMTAuNmMtNTQuNC0yMi4xLTg5LTE4LjItOTcuMyAuMSAwIDAtMjQuOSAzMi44IDYxLjggMTEwLjhsMCA3My43IDU3LjkgMCAwLTI4LjZjLTYuNS00LjItMTMtOC43LTE5LjQtMTMuNi0xNC44LTExLjItMjcuNC0yMS42LTM4LjQtMzEuNGwwLTMxYzEzLjEgMTQuNyAzMC41IDMxLjQgNTMuNCA1MC4zbDQuNSAzLjYgMC0yOS44YzAtNi45IDEuNy0xOC4yIDEwLjgtMTguMnMxMC42IDYuOSAxMC42IDE1bDAgNDguN2MxOCAxMi4yIDM3LjMgMjIuMSA1Ny43IDI5LjZsMC05My45YzAtMTguNy0xMy40LTM3LjQtNDAuNi0zNy40LTE1LjgtLjEtMzAuNSA4LjItMzguNSAyMS45bDAtNTQuM2M0MS45IDIwLjkgODMuOSA0Ni41IDk5LjkgNTguMy0xMC4yIDE0LjYtOS4zIDI4LjEtOS4zIDQzLjcgMCAxOC43LTEuNCAzNC4zIDE2LjggNTIuNXM1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuNy0zMy44IDE2LjctNTIuNSAwLTE4LjUgMS41LTM0LjItMTYuNy01Mi4zek02NS4yIDE4NGwwIDYzLjNjLTQ4LjctNTQuNS0zOC45LTc2LTM1LjItNzkuMSAxMy41LTExLjQgMzcuNS04IDY0LjQgMi4xTDY1LjIgMTg0ek0yOTEuNyAzMDQuNWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNWwwLTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOWwwIDQwLjR6Il19LHFhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0IixpY29uOls0NDgsNTEyLFsiZ2l0LXNxdWFyZSJdLCJmMWQyIiwiTTEyMC44IDMzNS41Yy01LjktLjQtMTIuNi0uOC0yMC4yLTEuMy0zLjMgNC4xLTYuNiA4LjQtNi42IDEzLjUgMCAxOC41IDY1LjUgMTguNSA2NS41LTEuNSAwLTguMy03LjQtOC43LTM4LjgtMTAuN2wuMSAwem03LjgtMTE3LjljLTMyLjMgMC0zMy43IDQ0LjUtLjcgNDQuNSAzMi41IDAgMzEuNy00NC41IC43LTQ0LjV6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yNDMuOSAxNzIuMmMtMTQuNSAwLTIyLjktOC40LTIyLjktMjIuOXM4LjQtMjIuMyAyMi45LTIyLjNjMTQuNyAwIDIzLjEgNy44IDIzLjEgMjIuM3MtOC40IDIyLjktMjMuMSAyMi45ek0xNDkuNiAxOTVsNDkuNSAwIDAgMjEuNi0yMy40IDEuOGM0LjYgNS44IDkuNCAxNCA5LjQgMjUuNyAwIDQ4LjctNTcuMiA0Ny4yLTc0LjIgNDIuNGwtOC40IDEzLjRjNSAuMyA5LjggLjYgMTQuMyAuOCA1Ni4zIDMuMiA4MC41IDQuNiA4MC41IDM4LjUgMCAyOS4yLTI1LjcgNDUuNy02OS45IDQ1LjctNDYgMC02My41LTExLjYtNjMuNS0zMS43IDAtMTEuNCA1LjEtMTcuNSAxNC0yNS45LTguNC0zLjUtMTEuMi05LjktMTEuMi0xNi44IDAtOS42IDcuNC0xNi4zIDIzLTMwLjZsLjItLjJjLTEyLjQtNi4xLTIxLjgtMTkuMy0yMS44LTM4LjEgMC01MS42IDU2LjYtNTMuMyA4MS42LTQ2LjhsLS4xIC4yek0yNzAuNSAzMDMuMWwxMyAxLjggMCAyMC4xLTcyLjQgMCAwLTIwLjFjMi43LS40IDUtLjcgNi45LS45IDkuOS0xLjIgMTAuMS0xLjMgMTAuMS02bDAtNzQuN2MwLTQuNC0uOS00LjctMTAuMS03LjgtMS45LS43LTQuMi0xLjQtNi45LTIuNGwyLjgtMjAuNiA1Mi42IDAgMCAxMDUuNWMwIDQuMSAuMiA0LjYgNC4xIDUuMWwtLjEgMHptMTA2LjYtMTAuNEwzODQgMzE1Yy0xMC45IDUuNC0yNi45IDEwLjItNDEuNCAxMC4yLTMwLjIgMC00MS43LTEyLjItNDEuNy00MC45bDAtNjYuNmMwLS44IDAtMS40LS4yLTEuOC0uOC0xLjItNC4yLS43LTE5LjYtLjdsMC0yMi42YzIyLjMtMi41IDMxLjItMTMuNyAzNC00MS40bDI0LjIgMGMwIDMzLjMtLjYgMzggLjcgMzguNiAuMyAuMSAuNyAwIDEuMyAwbDM1LjggMCAwIDI1LjQtMzcuOCAwIDAgNjEuNmMtLjIgNi4zLS45IDMwLjQgMzcuOSAxNS45bC0uMSAweiJdfSxxYXQ9cWFlLGphdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvZG5va2xhc3NuaWtpIixpY29uOlszMjAsNTEyLFtdLCJmMjYzIiwiTTI3NS4xIDMzNGMtMjcuNCAxNy40LTY1LjEgMjQuMy05MCAyNi45bDIwLjkgMjAuNiA3Ni4zIDc2LjNjMjcuOSAyOC42LTE3LjUgNzMuMy00NS43IDQ1LjctMTkuMS0xOS40LTQ3LjEtNDcuNC03Ni4zLTc2LjZMODQgNTAzLjRjLTI4LjIgMjcuNS03My42LTE3LjYtNDUuNC00NS43IDE5LjQtMTkuNCA0Ny4xLTQ3LjQgNzYuMy03Ni4zbDIwLjYtMjAuNmMtMjQuNi0yLjYtNjIuOS05LjEtOTAuNi0yNi45LTMyLjYtMjEtNDYuOS0zMy4zLTM0LjMtNTkgNy40LTE0LjYgMjcuNy0yNi45IDU0LjYtNS43IDAgMCAzNi4zIDI4LjkgOTQuOSAyOC45UzI1NSAyNjkuMiAyNTUgMjY5LjJjMjYuOS0yMS4xIDQ3LjEtOC45IDU0LjYgNS43IDEyLjQgMjUuNy0xLjkgMzgtMzQuNSA1OS4xem0xNC42LTIwNC43YTEyOS43IDEyOS43IDAgMSAxIC0yNTkuNCAuNCAxMjkuNyAxMjkuNyAwIDEgMSAyNTkuNC0uNHptLTE5My40IC40YTYzLjcgNjMuNyAwIDEgMCAxMjcuNC0uNCA2My43IDYzLjcgMCAxIDAgLTEyNy40IC40eiJdfSxWYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZHJ1cGFsIixpY29uOlszODQsNTEyLFtdLCJmMWE5IiwiTTI3Mi4zIDEwOC4xQzIzNi41IDcyLjUgMjAyLjUgMzguNCAxOTIuNCAwIDE4Mi40IDM4LjQgMTQ4LjEgNzIuNSAxMTIuNCAxMDguMSA1OC44IDE2MS43LTEuOSAyMjIuNC0xLjkgMzEzLjQtNC4zIDQyMC43IDgwLjggNTA5LjYgMTg4LjEgNTEyczE5Ni4yLTgyLjggMTk4LjUtMTkwLjFjLjEtMi44IC4xLTUuNiAwLTguNSAwLTkxLjEtNjAuOC0xNTEuNy0xMTQuMy0yMDUuM3pNOTggMzMxLjFjLTUuOSA3LjUtMTEgMTUuNi0xNS4yIDI0LjItLjMgLjctLjggMS4zLTEuMyAxLjhzLTEuMiAuOC0yIDFsLTEuNyAwYy00LjMgMC05LjItOC41LTkuMi04LjUtMS4zLTItMi41LTQuMi0zLjctNi40bC0uOC0xLjhjLTExLjItMjUuNy0xLjUtNjIuMy0xLjUtNjIuMyA0LjgtMTcuOCAxMi43LTM0LjcgMjMuMi00OS45IDYuNC05LjYgMTMuNS0xOC45IDIxLTI3LjdsOS4yIDkuMiA0My41IDQ0LjRjLjggLjkgMS4zIDIuMSAxLjMgMy4zcy0uNSAyLjQtMS4zIDMuM0wxMTQuMSAzMTIuMyA5OCAzMzEuMXptOTYuNiAxMjcuM2MtMTIuOS0uMS0yNS42LTMuOS0zNi40LTExcy0xOS40LTE3LjEtMjQuNi0yOC45LTctMjQuOS01LTM3LjcgNy42LTI0LjcgMTYuMi0zNC40YzE0LjItMTYuOSAzMS41LTMzLjUgNTAuMy01NS4zIDIyLjMgMjMuOCAzNi45IDQwLjEgNTEuMiA1OCAxLjEgMS40IDIuMSAyLjkgMyA0LjQgNy44IDExLjEgMTIgMjQuNCAxMiAzOCAwIDguOC0xLjcgMTcuNC01IDI1LjVzLTguMiAxNS41LTE0LjQgMjEuNy0xMy41IDExLjEtMjEuNiAxNC41LTE2LjcgNS4xLTI1LjUgNS4xbC0uMiAwek0zMjAuNyAzNTEuNmMtLjQgMS40LTEuMiAyLjYtMi4zIDMuNnMtMi40IDEuNi0zLjggMS44bC0xLjMgMGMtMi42LS45LTQuOS0yLjctNi4zLTUuMS0xMS42LTE3LjUtMjQuOS0zMy45LTM5LjUtNDlsLTE3LjgtMTguNC01OS4xLTYxLjNjLTEyLjQtMTEuNS0yNC4yLTIzLjYtMzUuNC0zNi4zLS4zLS41LS42LS45LS45LTEuNC0yLTIuOC0zLjYtNS45LTQuNy05LjJsMC0xLjhjLS44LTUtLjQtMTAuMSAxLjItMTVzNC40LTkuMiA4LTEyLjdjMTEuNC0xMS40IDIzLTIzIDMzLjgtMzQuOSAxMiAxMy4zIDI0LjggMjYgMzcuNCAzOC42IDI1LjggMjQgNDkuMSA1MC41IDY5LjYgNzkuMSAxNy4zIDI0LjUgMjYuNyA1My44IDI3IDgzLjgtLjEgMTIuOS0yLjIgMjUuOC02IDM4LjJ6Il19LFVhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibG9nZ2VyLWIiLGljb246WzQ0OCw1MTIsW10sImYzN2QiLCJNNDQ2LjYgMjIyLjdjLTEuOC04LTYuOC0xNS40LTEyLjUtMTguNS0xLjgtMS0xMy0yLjItMjUtMi43LTIwLjEtLjktMjIuMy0xLjMtMjguNy01LTEwLjEtNS45LTEyLjgtMTIuMy0xMi45LTI5LjUtLjEtMzMtMTMuOC02My43LTQwLjktOTEuMy0xOS4zLTE5LjctNDAuOS0zMy02NS41LTQwLjUtNS45LTEuOC0xOS4xLTIuNC02My4zLTIuOS02OS40LS44LTg0LjggLjYtMTA4LjQgMTAtNDMuNSAxNy4yLTc0LjcgNTMuOC04Ni4xIDEwMC42LTIuMSA4LjgtMi42IDIyLjktMy4xIDEwMy45LS42IDEwMS41IC4xIDExNi40IDYuNCAxMzYuNSAxNS42IDQ5LjYgNTkuOSA4Ni4zIDEwNC40IDk0LjMgMTQuOCAyLjcgMTk3LjMgMy4zIDIxNiAuOCAzMi41LTQuNCA1OC0xNy41IDgxLjktNDEuOSAxNy4zLTE3LjcgMjguMS0zNi44IDM1LjItNjIuMSA0LjktMTcuNiA0LjUtMTQyLjggMi41LTE1MS43ek0xMjQuNSAxNTkuMWM3LjgtNy45IDEwLTguMiA1OC44LTguMiA0My45IDAgNDUuNCAuMSA1MS44IDMuNCA5LjMgNC43IDEzLjQgMTEuMyAxMy40IDIxLjkgMCA5LjUtMy44IDE2LjItMTIuMyAyMS42LTQuNiAyLjktNy4zIDMuMS01MC4zIDMuMy0yNi41IC4yLTQ3LjctLjQtNTAuOC0xLjItMTYuNi00LjctMjIuOC0yOC41LTEwLjYtNDAuOHpNMzE2LjMgMzU4LjlsLTE0LjkgMi40LTc3LjUgLjljLTY4LjEgLjgtODcuMy0uNC05MC45LTItNy4xLTMuMS0xMy44LTExLjctMTQuOS0xOS40LTEuMS03LjMgMi42LTE3LjMgOC4yLTIyLjQgNy4xLTYuNCAxMC4yLTYuNiA5Ny4zLTYuNyA4OS42LS4xIDg5LjEtLjEgOTcuNiA3LjggMTIuMSAxMS4zIDkuNSAzMS4yLTQuOSAzOS40eiJdfSxXYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW52aXNpb24iLGljb246WzQ0OCw1MTIsW10sImY3YjAiLCJNNDA3LjQgMzJMNDAuNiAzMkMxOC4yIDMyIDAgNTAuMiAwIDcyLjZMMCA0MzkuNEMwIDQ2MS44IDE4LjIgNDgwIDQwLjYgNDgwbDM2Ni44IDBjMjIuNCAwIDQwLjYtMTguMiA0MC42LTQwLjZsMC0zNjYuOEM0NDggNTAuMiA0MjkuOCAzMiA0MDcuNCAzMnpNMTc2LjEgMTQ1LjZjLjQgMjMuNC0yMi40IDI3LjMtMjYuNiAyNy40LTE0LjkgMC0yNy4xLTEyLTI3LjEtMjcgLjEtMzUuMiA1My4xLTM1LjUgNTMuNy0uNHpNMzMyLjggMzc3Yy02NS42IDAtMzQuMS03NC0yNS0xMDYuNiAxNC4xLTQ2LjQtNDUuMi01OS01OS45IC43bC0yNS44IDEwMy4zLTQ1LjEgMCA4LjEtMzIuNWMtMzEuNSA1MS44LTk0LjYgNDQuNC05NC42LTQuMyAuMS0xNC4zIC45LTE0IDIzLTEwNC4xbC0zMS44IDAgOS43LTM1LjYgNzYuNCAwYy0zMy42IDEzMy43LTMyLjYgMTI2LjktMzIuOSAxMzguMiAwIDIwLjkgNDAuOSAxMy41IDU3LjQtMjMuMmwxOS44LTc5LjQtMzIuMyAwIDkuNy0zNS42IDY4LjggMC04LjkgNDAuNWM0MC41LTc1LjUgMTI3LjktNDcuOCAxMDEuOCAzOC0xNC4yIDUxLjEtMTQuNiA1MC43LTE0LjkgNTguOCAwIDE1LjUgMTcuNSAyMi42IDMxLjgtMTYuOUwzODYgMzI1Yy0xMC41IDM2LjctMjkuNCA1Mi01My4yIDUyeiJdfSxHYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmFjZWJvb2stZiIsaWNvbjpbMzIwLDUxMixbXSwiZjM5ZSIsIk04MCAyOTkuM2wwIDIxMi43IDExNiAwIDAtMjEyLjcgODYuNSAwIDE4LTk3LjgtMTA0LjUgMCAwLTM0LjZjMC01MS43IDIwLjMtNzEuNSA3Mi43LTcxLjUgMTYuMyAwIDI5LjQgLjQgMzcgMS4ybDAtODguN0MyOTEuNCA0IDI1Ni40IDAgMjM2LjIgMCAxMjkuMyAwIDgwIDUwLjUgODAgMTU5LjRsMCA0Mi4xLTY2IDAgMCA5Ny44IDY2IDB6Il19LFlhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjZW50b3MiLGljb246WzQ0OCw1MTIsW10sImY3ODkiLCJNMjg5LjYgOTcuNWwzMS42IDMxLjctNzYuMyA3Ni41IDAtMTA4LjIgNDQuNyAwek0xMjcuMiAxMjkuMmw3Ni4zIDc2LjUgMC0xMDguMi00NC43IDAtMzEuNiAzMS43em00MS41LTQxLjZsNDQuNyAwIDAgMTI3LjkgMTAuOCAxMC44IDEwLjgtMTAuOCAwLTEyNy45IDQ0LjcgMC01NS41LTU1LjYtNTUuNSA1NS42em0yNi4yIDE2OC4xbC0xMC44LTEwLjgtMTI4LjYgMCAwLTQ0LjgtNTUuNSA1NS42IDU1LjUgNTUuNiAwLTQ0LjggMTI4LjYgMCAxMC44LTEwLjh6TTI3NC4yIDIzNWwxMDcuOSAwIDAtNDQuOC0zMS42LTMxLjctNzYuMyA3Ni41em0xNzMuMyAyMC43bC01NS41LTU1LjYgMCA0NC44LTEyNy43IDAtMTAuOCAxMC44IDEwLjggMTAuOCAxMjcuNyAwIDAgNDQuOCA1NS41LTU1LjZ6TTY1LjQgMTc2LjJsMzIuNS0zMS43IDkwLjMgOTAuNSAxNS4zIDAgMC0xNS4zLTkwLjMtOTAuNSAzMS42LTMxLjctNzkuNCAwIDAgNzguN3pNMzgyLjEgOTcuNWwtNzguNSAwIDMxLjYgMzEuNy05MC4zIDkwLjUgMCAxNS4zIDE1LjMgMCA5MC4zLTkwLjUgMzEuNiAzMS43IDAtNzguN3pNMjAzLjUgNDEzLjlsMC0xMDguMS03Ni4zIDc2LjUgMzEuNiAzMS43IDQ0LjcgMCAwLS4xek02NS40IDIzNWwxMDguOCAwLTc2LjMtNzYuNS0zMi41IDMxLjcgMCA0NC44ek0zODIuMSAzMzUuMmwtMzEuNiAzMS43LTkwLjMtOTAuNS0xNS4zIDAgMCAxNS4zIDkwLjMgOTAuNS0zMS42IDMxLjcgNzguNSAwIDAtNzguN3ptMC01OC44bC0xMDcuOSAwIDc2LjMgNzYuNSAzMS42LTMxLjcgMC00NC44ek0zMjEuMiAzODIuMmwtNzYuMy03Ni41IDAgMTA4LjEgNDQuNyAwIDMxLjYtMzEuNnpNOTcuOSAzNTIuOWw3Ni4zLTc2LjUtMTA4LjggMCAwIDQ0LjggMzIuNSAzMS43em0xODEuOCA3MC45bC00NC43IDAgMC0xMjcuOS0xMC44LTEwLjgtMTAuOCAxMC44IDAgMTI3LjktNDQuNyAwIDU1LjUgNTUuNiA1NS41LTU1LjZ6TTExMy4yIDM4Mi4ybDkwLjMtOTAuNSAwLTE1LjMtMTUuMyAwLTkwLjMgOTAuNS0zMi41LTMxLjcgMCA3OC43IDc5LjQgMC0zMS42LTMxLjd6Il19LFphdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY2FsZXdheSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg1OSIsIk0yNDMuNCAxMTcuM2wtODQuMyAwYy0xOC41IDIuMS0zMi43IDE3LjUtMzMuNCAzNmwwIDEyMS45YzAgOC4yIDMuMiAxNS4zIDguNSAyMC43czEyLjUgOC42IDIwLjYgOC42YzE2IDAgMjkuMi0xMy4yIDI5LjItMjkuMmwwLTc3LjRjMC0xMi4xIDEwLTIyLjEgMjIuMS0yMi4xbDM4LjEgMGM4LjIgMCAxNS4zLTMuMiAyMC42LTguNnM4LjUtMTIuOCA4LjUtMjFjMC0xNi0xMy45LTI4LjktMjkuOS0yOC45ek0yMDUuMyAzOTUuNGw4NC4zIDBjMTguNS0yLjEgMzIuNy0xNy41IDMzLjQtMzZsMC0xMjEuOWMwLTguMi0zLjItMTUuMy04LjUtMjAuN3MtMTIuNS04LjYtMjAuNi04LjZjLTE2IDAtMjkuMiAxMy4yLTI5LjIgMjkuMmwwIDc3LjRjMCAxMi4xLTEwIDIyLjEtMjIuMSAyMi4xbC0zOC4xIDBjLTguMiAwLTE1LjMgMy4yLTIwLjYgOC42cy04LjUgMTIuOC04LjUgMjFjLjQgMTYgMTMuOSAyOC45IDI5LjkgMjguOXpNMTA0LjMgMEwyNTcuNiAwYzEwMSAwIDE4Mi41IDgxLjYgMTgyLjEgMTgyLjlsMCAyNDIuOGMtNC42IDQ2LTQyIDgyLjQtODguMiA4Ni4zTDE5MCA1MTJDODkuMyA1MTIgNy41IDQzMCA3LjUgMzI5LjFMNy41IDk3YzAtNTMuNSA0My40LTk3IDk2LjgtOTd6TTM4MS43IDE4Mi45YzAtNjguNS01NS45LTEyNC40LTEyNC4yLTEyNC40bC0xNTMgMEM4My4zIDU4LjUgNjYuMiA3NS42IDY2LjIgOTdsMCAyMzIuMWMwIDY4LjggNTUuNSAxMjQuNCAxMjQuMiAxMjQuNGwxNTguNyAwYzE2LjctMi4xIDI5LjktMTUgMzIuNy0zMS40bDAtMjM5LjJ6Il19LFhhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1hbWF6b24tcGF5IixpY29uOls1NzYsNTEyLFtdLCJmNDJkIiwiTTEyNC43IDIwMS44Yy4xLTExLjggMC0yMy41IDAtMzUuM2wwLTM1LjNjMC0xLjMgLjQtMiAxLjQtMi43IDExLjUtOCAyNC4xLTEyLjEgMzguMi0xMS4xIDEyLjUgLjkgMjIuNyA3IDI4LjEgMjEuNyAzLjMgOC45IDQuMSAxOC4yIDQuMSAyNy43IDAgOC43LS43IDE3LjMtMy40IDI1LjYtNS43IDE3LjgtMTguNyAyNC43LTM1LjcgMjMuOS0xMS43LS41LTIxLjktNS0zMS40LTExLjctLjktLjgtMS40LTEuNi0xLjMtMi44em0xNTQuOSAxNC42YzQuNiAxLjggOS4zIDIgMTQuMSAxLjUgMTEuNi0xLjIgMjEuOS01LjcgMzEuMy0xMi41IC45LS42IDEuMy0xLjMgMS4zLTIuNS0uMS0zLjkgMC03LjkgMC0xMS44IDAtNC0uMS04IDAtMTIgMC0xLjQtLjQtMi0xLjgtMi4yLTctLjktMTMuOS0yLjItMjAuOS0yLjktNy0uNi0xNC0uMy0yMC44IDEuOS02LjcgMi4yLTExLjcgNi4yLTEzLjcgMTMuMS0xLjYgNS40LTEuNiAxMC44IC4xIDE2LjIgMS42IDUuNSA1LjIgOS4yIDEwLjQgMTEuMnpNNTc2IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzY4LjUgMTAzLjljLjQgMS43IC45IDMuNCAxLjYgNS4xIDE2LjUgNDAuNiAzMi45IDgxLjMgNDkuNSAxMjEuOSAxLjQgMy41IDEuNyA2LjQgLjIgOS45LTIuOCA2LjItNC45IDEyLjYtNy44IDE4LjctMi42IDUuNS02LjcgOS41LTEyLjcgMTEuMi00LjIgMS4xLTguNSAxLjMtMTIuOSAuOS0yLjEtLjItNC4yLS43LTYuMy0uOC0yLjgtLjItNC4yIDEuMS00LjMgNC0uMSAyLjgtLjEgNS42IDAgOC4zIC4xIDQuNiAxLjYgNi43IDYuMiA3LjUgNC43IC44IDkuNCAxLjYgMTQuMiAxLjcgMTQuMyAuMyAyNS43LTUuNCAzMy4xLTE3LjkgMi45LTQuOSA1LjYtMTAuMSA3LjctMTUuNCAxOS44LTUwLjEgMzkuNS0xMDAuMyA1OS4yLTE1MC41IC42LTEuNSAxLjEtMyAxLjMtNC42IC40LTIuNC0uNy0zLjYtMy4xLTMuNy01LjYtLjEtMTEuMSAwLTE2LjcgMC0zLjEgMC01LjMgMS40LTYuNCA0LjMtLjQgMS4xLS45IDIuMy0xLjMgMy40bC0yOS4xIDgzLjdjLTIuMSA2LjEtNC4yIDEyLjEtNi41IDE4LjYtLjQtLjktLjYtMS40LS44LTEuOS0xMC44LTI5LjktMjEuNi01OS45LTMyLjQtODkuOC0xLjctNC43LTMuNS05LjUtNS4zLTE0LjItLjktMi41LTIuNy00LTUuNC00LTYuNC0uMS0xMi44LS4yLTE5LjItLjEtMi4yIDAtMy4zIDEuNi0yLjggMy43ek0yNDIuNCAyMDZjMS43IDExLjcgNy42IDIwLjggMTggMjYuNiA5LjkgNS41IDIwLjcgNi4yIDMxLjcgNC42IDEyLjctMS45IDIzLjktNy4zIDMzLjgtMTUuNSAuNC0uMyAuOC0uNiAxLjQtMSAuNSAzLjIgLjkgNi4yIDEuNSA5LjIgLjUgMi42IDIuMSA0LjMgNC41IDQuNCA0LjYgLjEgOS4xIC4xIDEzLjcgMCAyLjMtLjEgMy44LTEuNiA0LTMuOSAuMS0uOCAuMS0xLjYgLjEtMi4zbDAtODguOGMwLTMuNi0uMi03LjItLjctMTAuOC0xLjYtMTAuOC02LjItMTkuNy0xNS45LTI1LjQtNS42LTMuMy0xMS44LTUtMTguMi01LjktMy0uNC02LS43LTkuMS0xLjFsLTEwIDBjLS44IC4xLTEuNiAuMy0yLjUgLjMtOC4yIC40LTE2LjMgMS40LTI0LjIgMy41LTUuMSAxLjMtMTAgMy4yLTE1IDQuOS0zIDEtNC41IDMuMi00LjQgNi41IC4xIDIuOC0uMSA1LjYgMCA4LjMgLjEgNC4xIDEuOCA1LjIgNS43IDQuMSA2LjUtMS43IDEzLjEtMy41IDE5LjctNC44IDEwLjMtMS45IDIwLjctMi43IDMxLjEtMS4yIDUuNCAuOCAxMC41IDIuNCAxNC4xIDcgMy4xIDQgNC4yIDguOCA0LjQgMTMuNyAuMyA2LjkgLjIgMTMuOSAuMyAyMC44IDAgLjQtLjEgLjctLjIgMS4yLS40IDAtLjggMC0xLjEtLjEtOC44LTIuMS0xNy43LTMuNi0yNi44LTQuMS05LjUtLjUtMTguOSAuMS0yNy45IDMuMi0xMC44IDMuOC0xOS41IDEwLjMtMjQuNiAyMC44LTQuMSA4LjMtNC42IDE3LTMuNCAyNS44ek05OC43IDEwNi45bDAgMTc1LjNjMCAuOCAwIDEuNyAuMSAyLjUgLjIgMi41IDEuNyA0LjEgNC4xIDQuMiA1LjkgLjEgMTEuOCAuMSAxNy43IDAgMi41IDAgNC0xLjcgNC4xLTQuMSAuMS0uOCAuMS0xLjcgLjEtMi41bDAtNjAuN2MuOSAuNyAxLjQgMS4yIDEuOSAxLjYgMTUgMTIuNSAzMi4yIDE2LjYgNTEuMSAxMi45IDE3LjEtMy40IDI4LjktMTMuOSAzNi43LTI5LjIgNS44LTExLjYgOC4zLTI0LjEgOC43LTM3IC41LTE0LjMtMS0yOC40LTYuOC00MS43LTcuMS0xNi40LTE4LjktMjcuMy0zNi43LTMwLjktMi43LS42LTUuNS0uOC04LjItMS4ybC03IDBjLTEuMiAuMi0yLjQgLjMtMy42IC41LTExLjcgMS40LTIyLjMgNS44LTMxLjggMTIuNy0yIDEuNC0zLjkgMy01LjkgNC41LS4xLS41LS4zLS44LS40LTEuMi0uNC0yLjMtLjctNC42LTEuMS02LjktLjYtMy45LTIuNS01LjUtNi40LTUuNmwtOS43IDBjLTUuOS0uMS02LjkgMS02LjkgNi44ek00OTMuNiAzMzljLTIuNy0uNy01LjEgMC03LjYgMS00My45IDE4LjQtODkuNSAzMC4yLTEzNi44IDM1LjgtMTQuNSAxLjctMjkuMSAyLjgtNDMuNyAzLjItMjYuNiAuNy01My4yLS44LTc5LjYtNC4zLTE3LjgtMi40LTM1LjUtNS43LTUzLTkuOS0zNy04LjktNzIuNy0yMS43LTEwNi43LTM4LjgtOC44LTQuNC0xNy40LTkuMy0yNi4xLTE0LTMuOC0yLjEtNi4yLTEuNS04LjIgMi4xbDAgMS43YzEuMiAxLjYgMi4yIDMuNCAzLjcgNC44IDM2IDMyLjIgNzYuNiA1Ni41IDEyMiA3Mi45IDIxLjkgNy45IDQ0LjQgMTMuNyA2Ny4zIDE3LjUgMTQgMi4zIDI4IDMuOCA0Mi4yIDQuNSAzIC4xIDYgLjIgOSAuNCAuNyAwIDEuNCAuMiAyLjEgLjNsMTcuNyAwYy43LS4xIDEuNC0uMyAyLjEtLjMgMTQuOS0uNCAyOS44LTEuOCA0NC42LTQgMjEuNC0zLjIgNDIuNC04LjEgNjIuOS0xNC43IDI5LjYtOS42IDU3LjctMjIuNCA4My40LTQwLjEgMi44LTEuOSA1LjctMy44IDgtNi4yIDQuMy00LjQgMi4zLTEwLjQtMy4zLTExLjl6TTU0NCAzMTEuM2MtLjgtNC4yLTQtNS44LTcuNi03LTUuNy0xLjktMTEuNi0yLjgtMTcuNi0zLjMtMTEtLjktMjItLjQtMzIuOCAxLjYtMTIgMi4yLTIzLjQgNi4xLTMzLjUgMTMuMS0xLjIgLjgtMi40IDEuOC0zLjEgMy0uNiAuOS0uNyAyLjMtLjUgMy40IC4zIDEuMyAxLjcgMS42IDMgMS41IC42IDAgMS4yIDAgMS44LS4xbDE5LjUtMi4xYzkuNi0uOSAxOS4yLTEuNSAyOC44LS44IDQuMSAuMyA4LjEgMS4yIDEyIDIuMiA0LjMgMS4xIDYuMiA0LjQgNi40IDguNyAuMyA2LjctMS4yIDEzLjEtMi45IDE5LjUtMy41IDEyLjktOC4zIDI1LjQtMTMuMyAzNy44LS4zIC44LS43IDEuNy0uOCAyLjUtLjQgMi41IDEgNCAzLjQgMy41IDEuNC0uMyAzLTEuMSA0LTIuMSAzLjctMy42IDcuNS03LjIgMTAuNi0xMS4yIDEwLjctMTMuOCAxNy0yOS42IDIwLjctNDYuNiAuNy0zIDEuMi02LjEgMS43LTkuMSAuMi00LjcgLjItOS42IC4yLTE0LjV6Il19LFFhdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlYmF5IixpY29uOls2NDAsNTEyLFtdLCJmNGY0IiwiTTYwNi41IDE4OS41bC01NC44IDEwOS45LTU0LjktMTA5LjktMzcuNSAwIDEwLjkgMjAuNmMtMTEuNS0xOS0zNS45LTI2LTYzLjMtMjYtMzEuOCAwLTY3LjkgOC43LTcxLjUgNDMuMWwzMy43IDBjMS40LTEzLjggMTUuNy0yMS44IDM1LTIxLjggMjYgMCA0MSA5LjYgNDEgMzNsMCAzLjRjLTEyLjcgMC0yOCAuMS00MS43IC40LTQyLjQgLjktNjkuNiAxMC03Ni43IDM0LjQgMS01LjIgMS41LTEwLjYgMS41LTE2LjIgMC01Mi4xLTM5LjctNzYuMi03NS40LTc2LjItMjEuMyAwLTQzIDUuNS01OC43IDI0LjJsMC04MC42LTMyLjEgMCAwIDE2OS41YzAgMTAuMy0uNiAyMi45LTEuMSAzMy4xbDMxLjUgMGMuNy02LjMgMS4xLTEyLjkgMS4xLTE5LjUgMTMuNiAxNi42IDM1LjQgMjQuOSA1OC43IDI0LjkgMzYuOSAwIDY0LjktMjEuOSA3My4zLTU0LjItLjUgMi44LS43IDUuOC0uNyA5IDAgMjQuMSAyMS4xIDQ1IDYwLjYgNDUgMjYuNiAwIDQ1LjgtNS43IDYxLjktMjUuNSAwIDYuNiAuMyAxMy4zIDEuMSAyMC4ybDI5LjggMGMtLjctOC4yLTEtMTcuNS0xLTI2LjhsMC02NS42YzAtOS4zLTEuNy0xNy4yLTQuOC0yMy44bDYxLjUgMTE2LjEtMjguNSA1NC4xIDM1LjkgMCA5OS4yLTE5NC44LTM0IDB6TTI0NC4yIDMxMy44Yy0yOS42IDAtNTAuMi0yMS41LTUwLjItNTMuOCAwLTMyLjQgMjAuNi01My44IDUwLjItNTMuOCAyOS44IDAgNTAuMiAyMS40IDUwLjIgNTMuOCAwIDMyLjMtMjAuNCA1My44LTUwLjIgNTMuOHptMjAwLjktNDcuM2MwIDMwLTE3LjkgNDguNC01MS42IDQ4LjQtMjUuMSAwLTM1LTEzLjQtMzUtMjUuOCAwLTE5LjEgMTguMS0yNC40IDQ3LjItMjUuMyAxMy4xLS41IDI3LjYtLjYgMzkuNC0uNmwwIDMuM3pNMzMuMiAyNjguMWwxMjguOCAwIDAtOC41YzAtNTEuNy0zMy4xLTc1LjQtNzguNC03NS40LTU2LjggMC04MyAzMC44LTgzIDc3LjYgMCA0Mi41IDI1LjMgNzQgODIuNSA3NCAzMS40IDAgNjgtMTEuNyA3NC40LTQ2LjFsLTMzLjEgMGMtMTIgMzUuOC04Ny43IDM2LjctOTEuMi0yMS42em05NS0yMS40bC05NC40IDBjNi45LTU2LjYgOTIuMS01NC43IDk0LjQgMHoiXX0sSmF0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvbnRhbyIsaWNvbjpbNTEyLDUxMixbXSwiZjI2ZCIsIk00NS40IDMwNWMxNC40IDY3LjEgMjYuNCAxMjkgNjguMiAxNzVMMzQgNDgwYy0xOC43IDAtMzQtMTUuMi0zNC0zNEwwIDY2QzAgNDcuMyAxNS4yIDMyIDM0IDMybDU3LjcgMGMtMTMuOCAxMi42LTI2LjEgMjcuMi0zNi45IDQzLjYtNDUuNCA3MC0yNyAxNDYuOC05LjQgMjI5LjR6TTQ3OCAzMmwtOTAuMiAwYzIxLjQgMjEuNCAzOS4yIDQ5LjUgNTIuNyA4NC4xTDMwMy40IDE0NS40Yy0xNC45LTI5LTM3LjgtNTMuMy04Mi42LTQzLjktMjQuNiA1LjMtNDEgMTkuMy00OC4zIDM0LjYtOC44IDE4LjctMTMuMiAzOS44IDguMiAxNDAuMyAyMS4xIDEwMC4yIDMzLjcgMTE3LjcgNDkuNSAxMzEuMiAxMi45IDExLjEgMzMuNCAxNyA1OC4zIDExLjcgNDQuNS05LjQgNTUuNy00MC43IDU3LjQtNzMuMmwxMzcuNC0yOS42YzMuMiA3MS41LTE4LjcgMTI1LjItNTcuNCAxNjMuNmw1Mi4xIDBjMTguNyAwIDM0LTE1LjIgMzQtMzRMNTEyIDY2YzAtMTguOC0xNS4yLTM0LTM0LTM0eiJdfSxLYXQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWxsbyIsaWNvbjpbNTEyLDUxMixbXSwiZjVmMSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM5OS44IDI5My4yQzM4My4zIDM1OC41IDMyMy44IDQwNC44IDI1NiA0MDQuOFMxMjguNyAzNTguNSAxMTIuMiAyOTMuMmMtMS42LTcuNCAyLjUtMTUuNyA5LjktMTcuNHMxNS43IDIuNSAxNy40IDkuOWMxNCA1Mi45IDYyIDkwLjEgMTE2LjYgOTAuMXMxMDIuNS0zNy4yIDExNi42LTkwLjFjMS43LTcuNCA5LjktMTIuNCAxNy40LTkuOSA3LjQgMS43IDEyLjQgOS45IDkuOSAxNy40eiJdfSxlbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2lzdHJpeCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlZSIsIk00NDggNDQ5TDMwMS4yIDMwMC4yYzIwLTI3LjkgMzEuOS02Mi4yIDMxLjktOTkuMiAwLTkzLjEtNzQuNy0xNjguOS0xNjYuNS0xNjguOS05MS45LS4xLTE2Ni42IDc1LjctMTY2LjYgMTY4LjhTNzQuNyAzNjkuOCAxNjYuNSAzNjkuOGMzOS44IDAgNzYuMy0xNC4yIDEwNS0zNy45TDQxNy41IDQ4MCA0NDggNDQ5ek0xNjYuNSAzMzAuOGMtNzAuNiAwLTEyOC4xLTU4LjMtMTI4LjEtMTI5LjlTOTUuOSA3MSAxNjYuNSA3MSAyOTQuNiAxMjkuMyAyOTQuNiAyMDAuOSAyMzcuMiAzMzAuOCAxNjYuNSAzMzAuOHoiXX0sdG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBlcmlzY29wZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkYSIsIk0zNzAgNjMuNmMtMzguNi00MS04OS41LTYzLjYtMTQzLjQtNjMuNi0xMTQuNyAwLTIwOC4xIDk2LjItMjA4LjEgMjE0LjQgMCA3NS4xIDU3LjggMTU5LjggODIuNyAxOTIuNyAzNi42IDQ4LjQgOTEuNCAxMDQuOSAxMjUuNCAxMDQuOSA0MS42IDAgMTEyLjktOTQuMiAxMjAuOS0xMDUgMjQuNi0zMy4xIDgyLTExOC4zIDgyLTE5Mi42IDAtNTYuNS0yMS4xLTExMC4xLTU5LjUtMTUwLjh6TTIyNi42IDQ5My45Yy00Mi41IDAtMTkwLTE2Ny4zLTE5MC0yNzkuNCAwLTEwNy40IDgzLjktMTk2LjMgMTkwLTE5Ni4zIDEwMC44IDAgMTg0LjcgODkgMTg0LjcgMTk2LjMgLjEgMTEyLjEtMTQ3LjQgMjc5LjQtMTg0LjcgMjc5LjR6TTMzOCAyMDYuOGMwIDU5LjEtNTEuMSAxMDkuNy0xMTAuOCAxMDkuNy0xMDAuNiAwLTE1MC43LTEwOC4yLTkyLjktMTgxLjhsMCAuNGMwIDI0LjUgMjAuMSA0NC40IDQ0LjggNDQuNHM0NC44LTE5LjkgNDQuOC00NC40YzAtMTguMi0xMS4xLTMzLjgtMjYuOS00MC43IDc2LjYtMTkuMiAxNDEgMzkuMyAxNDEgMTEyLjR6Il19LHJudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJleHBlZGl0ZWRzc2wiLGljb246WzUxMiw1MTIsW10sImYyM2UiLCJNMjU2IDQzLjRhMjEyLjYgMjEyLjYgMCAxIDAgMCA0MjUuMiAyMTIuNiAyMTIuNiAwIDEgMCAwLTQyNS4yek0xNTguNiAxNzYuM2MwLTUzLjcgNDMuNy05Ny40IDk3LjQtOTcuNHM5Ny40IDQzLjcgOTcuNCA5Ny40bDAgMjYuNmMwIDUtMy45IDguOS04LjkgOC45bC0xNy43IDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi42YzAtODIuMS0xMjQtODIuMS0xMjQgMGwwIDI2LjZjMCA1LTMuOSA4LjktOC45IDguOWwtMTcuNyAwYy01IDAtOC45LTMuOS04LjktOC45bDAtMjYuNiAuMiAwek0zOTcuNyAzODBjMCA5LjctOCAxNy43LTE3LjcgMTcuN2wtMjQ4IDBjLTkuNyAwLTE3LjctOC0xNy43LTE3LjdsMC0xNDEuN2MwLTkuNyA4LTE3LjcgMTcuNy0xNy43bDI0OCAwYzkuNyAwIDE3LjcgOCAxNy43IDE3LjdsMCAxNDEuN3ptLTI0OC0xMzcuM2wwIDEzMi45YzAgMi41LTEuOSA0LjQtNC40IDQuNGwtOC45IDBjLTIuNSAwLTQuNC0xLjktNC40LTQuNGwwLTEzMi45YzAtMi41IDEuOS00LjQgNC40LTQuNGw4LjkgMGMyLjUgMCA0LjQgMS45IDQuNCA0LjR6bTE0MS43IDQ4LjdjMCAxMy03LjIgMjQuNC0xNy43IDMwLjRsMCAzMS42YzAgNS0zLjkgOC45LTguOSA4LjlsLTE3LjcgMGMtNSAwLTguOS0zLjktOC45LTguOWwwLTMxLjZjLTEwLjUtNi4xLTE3LjctMTcuNC0xNy43LTMwLjQgMC0xOS43IDE1LjgtMzUuNCAzNS40LTM1LjRzMzUuNSAxNS44IDM1LjUgMzUuNHpNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em0wIDE3LjdhMjMwLjMgMjMwLjMgMCAxIDEgMCA0NjAuNiAyMzAuMyAyMzAuMyAwIDEgMSAwLTQ2MC42eiJdfSxpbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmFwc3RlciIsaWNvbjpbNTEyLDUxMixbXSwiZjNkMiIsIk0zMDYuMyAzNzMuNmMtMTQuMiAxMy42LTMxLjMgMjQuMS01MC40IDMwLjUtMTktNi40LTM2LjItMTYuOS01MC4zLTMwLjVsMTAwLjcgMHptNDQtMTk5LjZjMjAtMTYuOSA0My42LTI5LjIgNjkuNi0zNi4ybDAgMTYxLjJjMCAyMTkuNC0zMjggMjE3LjYtMzI4IC4zbDAtMTYxLjZjMjUuOSA2LjkgNDkuNiAxOS42IDY5LjUgMzYuNCA1Ni44LTQwIDEzMi41LTM5LjkgMTg4LjktLjF6TTE0MS41IDExNS41YzY0LjQtNjAgMTY0LjMtNjAuMSAyMjguOS0uMi03LjEgMy41LTEzLjkgNy4zLTIwLjYgMTEuNS01OC43LTMwLjUtMTI5LjItMzAuNC0xODcuOSAuMS02LjMtNC0xMy45LTguMi0yMC40LTExLjR6TTUxLjggOTMuMmwwIDY5LjNjLTU4LjQgMzYuNS01OC40IDEyMS4xIC4xIDE1OC4zIDI2LjQgMjQ1LjEgMzgxLjcgMjQwLjMgNDA3LjYgMS41bC4zLTEuN2M1OC43LTM2LjMgNTguOS0xMjEuNyAuMi0xNTguMmwwLTY5LjJjLTE3LjMgLjUtMzQgMy01MC4xIDcuNC04Mi05MS41LTIyNS41LTkxLjUtMzA3LjUgLjEtMTYuMy00LjQtMzMuMS03LTUwLjYtNy41ek0yNjcuMiAzNTJzMzYtLjMgNjEuMy0xLjVjMTAuMi0uNSAyMS4xLTQgMjUuNS02LjUgMjYuMy0xNS4xIDI1LjQtMzkuMiAyNi4yLTQ3LjQtNzkuNS0uNi05OS45LTMuOS0xMTMgNTUuNHpNMTMxLjcgMjk2LjdjLjggOC4yLS4xIDMyLjMgMjYuMiA0Ny40IDQuNCAyLjUgMTUuMiA2IDI1LjUgNi41IDI1LjMgMS4xIDYxLjMgMS41IDYxLjMgMS41LTEzLjItNTkuNC0zMy43LTU2LjEtMTEzLTU1LjR6TTMwMC44IDQyMC4xYy0zLjItNS4zLTYuOS03LjMtNi45LTcuMy0yNC44IDcuMy01Mi4yIDYuOS03NS45IDAgMCAwLTIuOSAxLjUtNi40IDYuNi0yLjggNC4xLTMuNyA5LjYtMy43IDkuNiAyOS4xIDE3LjYgNjcuMSAxNy42IDk2LjIgMC0uMS0uMS0uMy00LTMuMy04Ljl6Il19LGFudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZWxpY2lvdXMiLGljb246WzQ0OCw1MTIsW10sImYxYTUiLCJNNDQ2LjYgNjhjLS40LTEuNS0uOS0zLTEuNC00LjUtLjktMi41LTItNC44LTMuMy03LjEtMS40LTIuNC0zLTQuOC00LjctNi45LTIuMS0yLjUtNC40LTQuOC02LjktNi44LTEuMS0uOS0yLjItMS43LTMuMy0yLjUtMS4zLS45LTIuNi0xLjctNC0yLjQtMS44LTEtMy42LTEuOC01LjUtMi41LTEuNy0uNy0zLjUtMS4zLTUuNC0xLjctMy44LTEtNy45LTEuNS0xMi0xLjVsLTM1MiAwQzIxLjYgMzIgLjEgNTMuNSAuMSA4MGwwIDM1MmMwIDQuMSAuNSA4LjIgMS41IDEyIDIgNy43IDUuOCAxNC42IDExIDIwLjMgMSAxLjEgMi4xIDIuMiAzLjMgMy4zIDUuNyA1LjIgMTIuNiA5IDIwLjMgMTEgMy44IDEgNy45IDEuNSAxMiAxLjVsMzUyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zNTIuMWMtLjEtNC4xLS42LTguMi0xLjYtMTJ6TTQxNi4xIDQzMmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtMTkyLTE5MiAwIDAtMTc2YzAtOC44IDcuMi0xNiAxNi0xNmwxNzYgMCAwIDE5MiAxOTIgMCAwIDE3NnoiXX0sbm50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imd1aWxkZWQiLGljb246WzQ0OCw1MTIsW10sImUwN2UiLCJNNDQzLjkgNjRMNSA2NGMwIDEwMy4zIDIyLjIgMTgwLjEgNDMuNCAyMjIuNCA2NC4xIDEyNy44IDE3NiAxNjEuNiAxNzcuMyAxNjEuNiA1NS43LTIwLjUgMTA0LjUtNTYuMyAxNDAuNi0xMDMuNSAyNS45LTMzLjkgNTMuMS04Ny4yIDY1LjktMTQ1LjhsLTI1OS45IDBjNC4xIDM2LjQgMjIuMiA2Ny45IDQ1LjEgODYuOWw4OC42IDBjLTE3IDI4LjItNDguMiA1NC40LTgwLjUgNjkuNS0zMS4yLTEzLjMtNjkuMS00Ni41LTk2LjUtOTguNC0yNi43LTUzLjgtMjcuMS0xMDUuOS0yNy4xLTEwNS45bDMzNi4xIDBjNC0yOC44IDUuOS01Ny45IDUuOS04Ni45eiJdfSxvbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2JzaWRpYW4iLGljb246WzM4NCw1MTIsW10sImU4NzkiLCJNMTQyLjMgMzIwLjNjMzYuMS04LjIgNzAuMy0xMSAxMDEuMyAuNyAzMS44IDExLjkgNjEuNyAzOS42IDg2LjcgOTYtOC4xIDE3LjctMTIuNCAzNi45LTE0LjcgNTMuOC0zLjEgMjIuOS0yNS40IDQwLjctNDcuNyAzNC42LTMxLjctOC43LTY4LjMtMjIuMy0xMDEuMy0yNC45LTQuNC0uMy01MC42LTMuOC01MC42LTMuOC0xLjctLjEtMy40LS40LTUuMS0uOCAzMS41LTY0LjIgMzguMi0xMTUuMSAzMS4zLTE1NS40ek01NSAyMTkuNWMyMi4zIDE0LjggNDkuNSAzNy44IDY0LjEgNzMuNiAxNi4xIDM5LjQgMTcuOCA5NS43LTIxLjYgMTc2LjEtMS0uOC0yLjEtMS43LTMtMi43TDcuNCAzNzYuOGMtOS41LTkuOC0xMi4xLTI0LjQtNi41LTM2LjkgLjYtMS4zIDQ0LjYtOTguMyA1NC4xLTEyMC40em0yNjQuMy05MS4zYzQuOSA2LjIgNy40IDE0IDcuNCAyMS45IC4xIDIwLjggMS44IDYzLjYgMTMuMyA5MS4yIDExLjIgMjYuOCAzMS44IDU1LjggNDIuNSA3MCA0LjEgNS41IDQuOCAxMi45IDEuMyAxOC43LTcuNiAxMi44LTIyLjYgMzcuNS00My44IDY5LjItLjMgLjQtLjYgLjktLjggMS4zLTI1LjItNTIuMi01NS45LTgwLjctOTAuNC05My42LTkuNi0zLjYtMTkuNS02LTI5LjQtNy4zLTE3LjgtNDUuOC0yMy4yLTc5LjctMjItMTA2LjQgMS4yLTI3LjQgOS4yLTQ3LjggMTguMi02Ni4zIDguOS0xOC4xIDE5LjgtMzUuOSAyNC45LTU1LjcgMy4yLTEyLjUgNC4yLTI1LjggMS43LTQwLjlsNzcuMSA5OHpNMTg0LjIgMTQuMWMxMC4zLTkuMiAyNC42LTEwLjggMzYuMy01LjUgOS42IDI0LjYgOS43IDQyLjggNS42IDU4LjgtNC42IDE3LjgtMTQuMSAzMy0yMy45IDUyLjgtOS42IDE5LjUtMTguNCA0Mi0xOS43IDcyLjMtMS4yIDI3LjkgNC4xIDYxLjkgMjAuNCAxMDUuOC0yMS0uNi00Mi41IDIuNi02My43IDcuNC0xLjctNi40LTMuOC0xMi40LTYuMS0xOC4yLTE3LjMtNDIuMi00OS45LTY3LjktNzQuMS04My4zIDMuMS0xOC43IDguMi01NS40IDExLjYtNzcuNSAxLjItNy42IDQuOS0xNC42IDEwLjctMTkuOEwxODQuMiAxNC4xeiJdfSxzbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieGJveCIsaWNvbjpbNTEyLDUxMixbXSwiZjQxMiIsIk0zNjkuOSAzMTguMmM0NC4zIDU0LjMgNjQuNyA5OC44IDU0LjQgMTE4LjctNy45IDE1LjEtNTYuNyA0NC42LTkyLjYgNTUuOS0yOS42IDkuMy02OC40IDEzLjMtMTAwLjQgMTAuMi0zOC4yLTMuNy03Ni45LTE3LjQtMTEwLjEtMzktMjcuOS0xOC4yLTM0LjItMjUuNy0zNC4yLTQwLjYgMC0yOS45IDMyLjktODIuMyA4OS4yLTE0Mi4xIDMyLTMzLjkgNzYuNS03My43IDgxLjQtNzIuNiA5LjQgMi4xIDg0LjMgNzUuMSAxMTIuMyAxMDkuNXpNMTg4LjYgMTQzLjhjLTI5LjctMjYuOS01OC4xLTUzLjktODYuNC02My40LTE1LjItNS4xLTE2LjMtNC44LTI4LjcgOC4xLTI5LjIgMzAuNC01My41IDc5LjctNjAuMyAxMjIuNC01LjQgMzQuMi02LjEgNDMuOC00LjIgNjAuNSA1LjYgNTAuNSAxNy4zIDg1LjQgNDAuNSAxMjAuOSA5LjUgMTQuNiAxMi4xIDE3LjMgOS4zIDkuOS00LjItMTEtLjMtMzcuNSA5LjUtNjQgMTQuMy0zOSA1My45LTExMi45IDEyMC4zLTE5NC40em0zMTEuNiA2My41Yy0xNi45LTgwLTY3LjUtMTMwLjMtNzQuNi0xMzAuMy03LjMgMC0yNC4yIDYuNS0zNiAxMy45LTIzLjMgMTQuNS00MSAzMS40LTY0LjMgNTIuOCA0Mi40IDUzLjMgMTAyLjIgMTM5LjQgMTIyLjkgMjAyLjMgNi44IDIwLjcgOS43IDQxLjEgNy40IDUyLjMtMS43IDguNS0xLjcgOC41IDEuNCA0LjYgNi4xLTcuNyAxOS45LTMxLjMgMjUuNC00My41IDcuNC0xNi4yIDE1LTQwLjIgMTguNi01OC43IDQuMy0yMi41IDMuOS03MC44LS44LTkzLjR6TTE0MS4zIDQzYzQ3LjctMi41IDEwOS43IDM0LjUgMTE0LjMgMzUuNCAuNyAuMSAxMC40LTQuMiAyMS42LTkuNyA2My45LTMxLjEgOTQtMjUuOCAxMDcuNC0yNS4yLTYzLjktMzkuMy0xNTIuNy01MC0yMzMuOS0xMS43LTIzLjQgMTEuMS0yNCAxMS45LTkuNCAxMS4yeiJdfSxsbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW50YXBwZCIsaWNvbjpbNjQwLDUxMixbXSwiZjQwNSIsIk00MDEuNSA0OS45QzMyMS43IDIxMCAzMTYuOSAyMDIuNCAzMTMuNiAyMjMuMWwtNS4yIDMyLjhjLTEuOSAxMi02LjYgMjMuNS0xMy43IDMzLjRMMTQ1LjggNDk3LjFjLTcuNiAxMC42LTIwLjQgMTYuMi0zMy40IDE0LjYtNDAuMy01LTc3LjgtMzIuMi05NS4zLTY4LjUtNS43LTExLjgtNC41LTI1LjggMy4xLTM2LjRMMTY5LjEgMTk4LjljNy4xLTkuOSAxNi40LTE4IDI3LjItMjMuN2wyOS4zLTE1LjVjMTguNS05LjggOS43LTExLjkgMTM1LjYtMTM4LjkgMS00LjggMS03LjMgMy42LTggMy0uNyA2LjYtMSA2LjMtNC42bC0uNC00LjZjLS4yLTEuOSAxLjMtMy42IDMuMi0zLjYgNC41LS4xIDEzLjIgMS4yIDI1LjYgMTAgMTIuMyA4LjkgMTYuNCAxNi44IDE3LjcgMjEuMSAuNiAxLjgtLjYgMy43LTIuNCA0LjJsLTQuNSAxLjFjLTMuNCAuOS0yLjUgNC40LTIuMyA3LjQgLjEgMi44LTIuMyAzLjYtNi41IDYuMXpNMjMwLjMgMzYuNGMzLjQgLjkgMi41IDQuNCAyLjMgNy40LS4yIDIuNyAyLjEgMy41IDYuNCA2IDcuOSAxNS45IDE1LjMgMzAuNSAyMi4yIDQ0IC43IDEuMyAyLjMgMS41IDMuMyAuNSAxMS4yLTEyIDI0LjYtMjYuMiA0MC41LTQyLjYgMS4zLTEuNCAxLjQtMy41IC4xLTQuOS04LTguMi0xNi41LTE2LjktMjUuNi0yNi4xLTEtNC43LTEtNy4zLTMuNi04LTMtLjgtNi42LTEtNi4zLTQuNiAuMy0zLjMgMS40LTguMS0yLjgtOC4yLTQuNS0uMS0xMy4yIDEuMS0yNS42IDEwLTEyLjMgOC45LTE2LjQgMTYuOC0xNy43IDIxLjEtMS40IDQuMiAzLjYgNC42IDYuOCA1LjR6TTYyMC4yIDQwNi43TDQ3MS40IDE5OC44Yy0xMy4yLTE4LjUtMjYuNi0yMy40LTU2LjQtMzkuMS0xMS4yLTUuOS0xNC4yLTEwLjktMzAuNS0yOC45LTEtMS4xLTIuOS0uOS0zLjYgLjUtNDYuMyA4OC44LTQ3LjEgODIuOC00OSA5NC44LTEuNyAxMC43LTEuMyAyMCAuMyAyOS44IDEuOSAxMiA2LjYgMjMuNSAxMy43IDMzLjRMNDk0LjggNDk3LjJjNy42IDEwLjYgMjAuMiAxNi4yIDMzLjEgMTQuNyA0MC4zLTQuOSA3OC0zMiA5NS43LTY4LjYgNS40LTExLjkgNC4zLTI1LjktMy40LTM2LjZ6Il19LGNudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGx1cy1nIixpY29uOls2NDAsNTEyLFtdLCJmMGQ1IiwiTTM4Ni4zIDIyOC41YzEuOCA5LjcgMy4xIDE5LjQgMy4xIDMyIDAgMTA5LjgtNzMuNiAxODcuNS0xODQuNCAxODcuNS0xMDYuMSAwLTE5Mi04NS45LTE5Mi0xOTJTOTguOSA2NCAyMDUgNjRjNTEuOSAwIDk1LjEgMTguOSAxMjguNiA1MC4zbC01Mi4xIDUwYy0xNC4xLTEzLjYtMzktMjkuNi03Ni41LTI5LjYtNjUuNSAwLTExOC45IDU0LjItMTE4LjkgMTIxLjNTMTM5LjUgMzc3LjMgMjA1IDM3Ny4zYzc2IDAgMTA0LjUtNTQuNyAxMDktODIuOGwtMTA5IDAgMC02NiAxODEuMyAwIDAgMHptMTg1LjQgNi40bDAtNTUuNy01NiAwIDAgNTUuNy01NS43IDAgMCA1NiA1NS43IDAgMCA1NS43IDU2IDAgMC01NS43IDU1LjcgMCAwLTU2LTU1LjcgMHoiXX0sZG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGh1Yi1hbHQiLGljb246WzUxMiw1MTIsW10sImYxMTMiLCJNMjAyLjEgMzI4LjdjMCAyMC45LTEwLjkgNTUuMS0zNi43IDU1LjFzLTM2LjctMzQuMi0zNi43LTU1LjEgMTAuOS01NS4xIDM2LjctNTUuMSAzNi43IDM0LjIgMzYuNyA1NS4xek00OTYgMjc4LjJjMCAzMS45LTMuMiA2NS43LTE3LjUgOTUtMzcuOSA3Ni42LTE0Mi4xIDc0LjgtMjE2LjcgNzQuOC03NS44IDAtMTg2LjIgMi43LTIyNS42LTc0LjgtMTQuNi0yOS0yMC4yLTYzLjEtMjAuMi05NSAwLTQxLjkgMTMuOS04MS41IDQxLjUtMTEzLjYtNS4yLTE1LjgtNy43LTMyLjQtNy43LTQ4LjggMC0yMS41IDQuOS0zMi4zIDE0LjYtNTEuOCA0NS4zIDAgNzQuMyA5IDEwOC44IDM2IDI5LTYuOSA1OC44LTEwIDg4LjctMTAgMjcgMCA1NC4yIDIuOSA4MC40IDkuMiAzNC0yNi43IDYzLTM1LjIgMTA3LjgtMzUuMiA5LjggMTkuNSAxNC42IDMwLjMgMTQuNiA1MS44IDAgMTYuNC0yLjYgMzIuNy03LjcgNDguMiAyNy41IDMyLjQgMzkgNzIuMyAzOSAxMTQuMnptLTY0LjMgNTAuNWMwLTQzLjktMjYuNy04Mi42LTczLjUtODIuNi0xOC45IDAtMzcgMy40LTU2IDYtMTQuOSAyLjMtMjkuOCAzLjItNDUuMSAzLjItMTUuMiAwLTMwLjEtLjktNDUuMS0zLjItMTguNy0yLjYtMzctNi01Ni02LTQ2LjggMC03My41IDM4LjctNzMuNSA4Mi42IDAgODcuOCA4MC40IDEwMS4zIDE1MC40IDEwMS4zbDQ4LjIgMGM3MC4zIDAgMTUwLjYtMTMuNCAxNTAuNi0xMDEuM3ptLTgyLjYtNTUuMWMtMjUuOCAwLTM2LjcgMzQuMi0zNi43IDU1LjFzMTAuOSA1NS4xIDM2LjcgNTUuMSAzNi43LTM0LjIgMzYuNy01NS4xLTEwLjktNTUuMS0zNi43LTU1LjF6Il19LHVudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZXQtcG9ja2V0IixpY29uOls0NDgsNTEyLFtdLCJmMjY1IiwiTTQwNy42IDY0bC0zNjcgMEMxOC41IDY0IDAgODIuNSAwIDEwNC42TDAgMjM5LjhDMCAzNjQuNSA5OS43IDQ2NCAyMjQuMiA0NjQgMzQ4LjIgNDY0IDQ0OCAzNjQuNSA0NDggMjM5LjhsMC0xMzUuMkM0NDggODIuMiA0MzAuMyA2NCA0MDcuNiA2NHptLTE2MiAyNjguNWMtMTIuNCAxMS44LTMxLjQgMTEuMS00Mi40IDAtMTEzLjctMTA4LjktMTE0LjktMTA1LjEtMTE0LjktMTIzLjIgMC0xNi45IDEzLjgtMzAuNyAzMC43LTMwLjcgMTcgMCAxNi4xIDMuOCAxMDUuMiA4OS4zIDkwLjYtODYuOSA4OC42LTg5LjMgMTA1LjUtODkuM3MzMC43IDEzLjggMzAuNyAzMC43YzAgMTcuOC0yLjkgMTUuNy0xMTQuOCAxMjMuMnoiXX0scG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdsaWRlIixpY29uOls0NDgsNTEyLFtdLCJmMmE1IiwiTTI1Mi44IDE0OC42YzAgOC44LTEuNiAxNy43LTMuNCAyNi40LTUuOCAyNy44LTExLjYgNTUuOC0xNy4zIDgzLjYtMS40IDYuMy04LjMgNC45LTEzLjcgNC45LTIzLjggMC0zMC41LTI2LTMwLjUtNDUuNSAwLTI5LjMgMTEuMi02OC4xIDM4LjUtODMuMSA0LjMtMi41IDkuMi00LjIgMTQuMS00LjIgMTEuNCAwIDEyLjMgOC4zIDEyLjMgMTcuOXpNNDQ4IDgwbDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMzg0IDI2N2MwLTUuMS0yMC44LTM3LjctMjUuNS0zOS41LTIuMi0uOS03LjItMi4zLTkuNi0yLjMtMjMuMSAwLTM4LjcgMTAuNS01OC4yIDIxLjVsLS41LS41YzQuMy0yOS40IDE0LjYtNTcuMiAxNC42LTg3LjQgMC00NC42LTIzLjgtNjIuNy02Ny41LTYyLjctNzEuNyAwLTEwOCA3MC44LTEwOCAxMjMuNSAwIDU0LjcgMzIgODUgODYuMyA4NSA3LjUgMCA2LjktLjYgNi45IDIuMy0xMC41IDgwLjMtNTYuNSA4Mi45LTU2LjUgNTguOSAwLTI0LjQgMjgtMzYuNSAyOC4zLTM4LS4yLTcuNi0yOS4zLTE3LjItMzYuNy0xNy4yLTIxLjEgMC0zMi43IDMzLTMyLjcgNTAuNiAwIDMyLjMgMjAuNCA1NC43IDUzLjMgNTQuNyA0OC4yIDAgODMuNC00OS43IDk0LjMtOTEuNyA5LjQtMzcuNyA3LTM5LjQgMTIuMy00Mi4xIDIwLTEwLjEgMzUuOC0xNi44IDU4LjQtMTYuOCAxMS4xIDAgMTkgMi4zIDM2LjcgNS4yIDEuOCAuMSA0LjEtMS43IDQuMS0zLjV6Il19LGhudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaXR5IixpY29uOls1MTIsNTEyLFtdLCJmMzdhIiwiTTg2LjUgNjcuMmM5NS40LTg5LjIgMjQ2LjEtOTEuMiAzNDMuMSAzLjggMTQuMyAxNC4xLTYuNCAzNy4xLTIyLjQgMjEuNS04NC44LTgyLjQtMjE1LjgtODAuMy0yOTguOS0zLjItMTYuMyAxNS4xLTM2LjUtOC4zLTIxLjgtMjIuMXptOTguOSA0MTguNmMxOS4zIDUuNyAyOS4zLTIzLjYgNy45LTMwLTExMi4yLTMzLjktMTc1LjgtMTQ5LjctMTQ3LjUtMjYxIDUtMTkuNi0yNC45LTI4LjEtMzAuMi03LjEtMzIuMSAxMjcuNCA0MS4xIDI1OS44IDE2OS44IDI5OC4xem0xNDguMS0yYzEyMS45LTQwLjIgMTkyLjktMTY2LjkgMTY0LjQtMjkxLTQuNS0xOS43LTM0LjktMTMuOC0zMCA3LjkgMjQuMiAxMDcuNy0zNy4xIDIxNy45LTE0My4yIDI1My40LTIxLjIgNy0xMC40IDM2IDguOCAyOS43em0tNjIuOS03OWwuMi03MS44YzAtOC4yLTYuNi0xNC44LTE0LjgtMTQuOHMtMTQuOCA2LjctMTQuOCAxNC44bC0uMiA3MS44YzAgOC4yIDYuNiAxNC44IDE0LjggMTQuOHMxNC44LTYuNiAxNC44LTE0Ljh6bTcxLTI2OWMyLjEgOTAuOSA0LjcgMTMxLjktODUuNSAxMzIuNS05Mi41LS43LTg2LjktNDQuMy04NS41LTEzMi41IDAtMjEuOC0zMi41LTE5LjYtMzIuNSAwbDAgNzEuNmMwIDY5LjMgNjAuNyA5MC45IDExOCA5MC4xIDU3LjMgLjggMTE4LTIwLjggMTE4LTkwLjFsMC03MS42YzAtMTkuNi0zMi41LTIxLjgtMzIuNSAweiJdfSxmbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3BleHBsb3JlciIsaWNvbjpbNTEyLDUxMixbXSwiZjJkZSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem00ODAgMGEyMjQgMjI0IDAgMSAwIC00NDggMCAyMjQgMjI0IDAgMSAwIDQ0OCAwek0xNjAuOSAxMjQuNmw4Ni45IDM3LjEtMzcuMSA4Ni45LTg2LjktMzcuMSAzNy4xLTg2Ljl6bTExMCAxNjkuMWw0Ni42IDk0LTE0LjYgMC01MC0xMDAtNDguOSAxMDAtMTQgMCA1MS4xLTEwNi45LTIyLjMtOS40IDYtMTQgNjguNiAyOS4xLTYgMTQuMy0xNi41LTcuMXpNMjU5LjEgMTc3LjRsNjguNiAyOS40LTI5LjQgNjguMy02OC4zLTI5LjEgMjkuMS02OC42em04MC4zIDQyLjlsNTQuNiAyMy4xLTIzLjQgNTQuMy01NC4zLTIzLjEgMjMuMS01NC4zeiJdfSxtbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVnYXBvcnQiLGljb246WzUxMiw1MTIsW10sImY1YTMiLCJNMjIyLjUgMjA5LjZsMCA2Ni4yIDMzLjUgMzMuNSAzMy4zLTMzLjMgMC02Ni40LTMzLjQtMzMuNC0zMy40IDMzLjR6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDAxLjEgNDIyLjRsLTI2LjEgMTkuMi0yNi0xOS4yIDAtNjUuNS0zMy40LTMzLjQtMzMuNCAzMy40IDAgNjUuNS0yNi4yIDE5LjItMjYuMS0xOS4yIDAtNjUuNS0zMy40LTMzLjQtMzMuNSAzMy40IDAgNjUuNS0yNi4xIDE5LjItMjYuMS0xOS4yIDAtODcgNTkuNS01OS41IDAtODcuOSA1OS41LTU5LjUgMC03NS42IDI2LjEtMTkuMiAyNi4xIDE5LjIgMCA3NS42IDU5LjUgNTkuNSAwIDg3LjYgNTkuNyA1OS43IDAgODcuMS0uMSAweiJdfSxnbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGVldGNvZGUiLGljb246WzQ0OCw1MTIsW10sImU4NmEiLCJNMjM1LjQgOS4zQzI0Ni41LTIuNSAyNjUuMS0zLjIgMjc3IDcuOXMxMi41IDI5LjggMS40IDQxLjZsLTQzIDQ2YzIxLjUgMy4zIDQyLjEgMTEuOCA1OS4xIDI1LjZsNzQuNiA2MC4zYzEyLjYgMTAuMiAxNC42IDI4LjggNC40IDQxLjRzLTI4LjcgMTQuNi00MS40IDQuNGwtNzQuNi02MC4zYy0yNi4yLTIxLjEtNzEuOS0xOC4yLTk0LjUgNS45TDgxIDI2MWMtMjEuNSAyMy0xOS4xIDYwIDUuNiA4NC4ybDkxLjIgODkuNGMyNC45IDI0IDY1LjYgMjQgOTAuMS0uNGw1MS4xLTUxYzExLjUtMTEuNSAzMC4xLTExLjUgNDEuNiAuMXMxMS40IDMwLjItLjEgNDEuN2wtNTEuMSA1MWMtNDcuMSA0Ny4xLTEyNCA0Ny43LTE3MS45IDEuNmwtOTItOTAuMkMtMS40IDM0MS4zLTYgMjY3LjkgMzggMjIwLjdMMjM1LjQgOS4zek00MTEuNyAyNzMuMmMxNi4yIDAgMjkuNCAxMy4yIDI5LjQgMjkuNXMtMTMuMiAyOS41LTI5LjQgMjkuNWwtMjE2LjkgMGMtMTYuMiAwLTI5LjQtMTMuMi0yOS40LTI5LjVzMTMuMi0yOS41IDI5LjQtMjkuNWwyMTYuOSAweiJdfSxibnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWRiIixpY29uOls1NzYsNTEyLFtdLCJmOGNhIiwiTTE3LjQgMTYwLjRsLTEwLjQgMTkxLjYgNDMuOSAwIDUuNi03OS44IDI3LjkgNzkuOCA0NC43IDAgMjUuNS03Ny40IDQuOCA3Ny40IDQ1LjUgMC0xMi44LTE5MS42LTQ1LjUgMC00MC43IDExNy4zLTQyLjMtMTE3LjMtNDYuMyAwem0yODEgMGwtNDcuOSAwIDAgMTkxLjYgNDcuOSAwczk1IC44IDk0LjItOTUuOGMtLjgtOTQuMi05NC4yLTk1LjgtOTQuMi05NS44bDAgMHptLTEuMiAxNDYuNWwwLTEwMi4xczQ2IDQuMyA0Ni44IDUwLjYtNDYuOCA1MS41LTQ2LjggNTEuNWwwIDB6bTIzOC4zLTc0LjJjNy4yLTExLjQgMTAtMjUgOC0zOC4zLTUuMy0zNS44LTU1LjEtMzQuMy01NS4xLTM0LjNsLTUxLjkgMCAwIDE5MS42IDQ1LjUgMHM4NyA0LjggODctNjMuOGMwLTQzLjEtMzMuNS01NS4xLTMzLjUtNTUuMWwwIDB6bS01MS45LTMxLjlzMTMuNi0xLjYgMTYgOS42YzEuNCA2LjctNCAxMi00IDEybC0xMiAwIDAtMjEuNnptLS4xIDEwOS41bC4xLTI0LjkgMC0xOC4yIC4xIDBzNDEuNi00LjcgNDEuMiAyMi40Yy0uMyAyNS43LTQxLjMgMjAuNy00MS4zIDIwLjdsMCAweiJdfSx2bnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFnZTQiLGljb246WzUxMiw1MTIsW10sImYzZDciLCJNMjU2IDUwNEMxMTkgNTA0IDggMzkzIDggMjU2UzExOSA4IDI1NiA4YzIwLjkgMCA0MS4zIDIuNiA2MC43IDcuNUw1MC4zIDM5MiAyNTYgMzkyIDI1NiA1MDR6bTAtMTQzLjZsMC0yMTMuNi0xNDkuNCAyMTMuNiAxNDkuNCAwek0zNTIgMzkybDAgOTIuN2M0NS43LTE5LjIgODQuNS01MS43IDExMS40LTkyLjdMMzUyIDM5MnptNTcuNC0xMzguMmwtMjEuMiA4LjQgMjEuMiA4LjMgMC0xNi43em0tMjAuMyA1NC41Yy02LjcgMC04IDYuMy04IDEyLjlsMCA3LjcgMTYuMiAwIDAtMTBjMC01LjktMi4zLTEwLjYtOC4yLTEwLjZ6TTUwNCAyNTZjMCAzNy4zLTguMiA3Mi43LTIzIDEwNC40bC0xMjkgMCAwLTMzMy4xQzQ0MS4zIDY0LjggNTA0IDE1My4xIDUwNCAyNTZ6TTM2OC40IDE0My42bDY4LjIgMCAwLTQ3LjYtMTMuOSAwIDAgMzIuNi0xMy45IDAgMC0yOS42LTEzLjkgMCAwIDI5LjYtMTIuNyAwIDAtMzIuNi0xMy45IDAgMCA0Ny42IC4xIDB6bTY4LjEgMTg1LjNsLTI2LjUgMCAwLTExYzAtMTUuNC01LjYtMjUuMi0yMC45LTI1LjItMTUuNCAwLTIwLjcgMTAuNi0yMC43IDI1LjlsMCAyNS4zIDY4LjIgMCAwLTE1LS4xIDB6bTAtMTAzbC02OC4yIDI5LjcgMCAxMi40IDY4LjIgMjkuNSAwLTE2LjYtMTQuNC01LjcgMC0yNi41IDE0LjQtNS45IDAtMTYuOXptLTQuOC02OC41bC0zNS42IDAgMCAyNi42IDEzLjkgMCAwLTEyLjIgMTEgMGM4LjYgMTUuOCAxLjMgMzUuMy0xOC42IDM1LjMtMjIuNSAwLTI4LjMtMjUuMy0xNS41LTM3LjdsLTExLjYtMTAuNmMtMTYuMiAxNy41LTEyLjIgNjMuOSAyNy4xIDYzLjkgMzQgMCA0NC43LTM1LjkgMjkuMy02NS4zeiJdfSx4bnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhlLXJlZC15ZXRpIixpY29uOls1MTIsNTEyLFtdLCJmNjlkIiwiTTQ4OC43IDI0MS43bDIwLjcgNy4xYy05LjYtMjMuOS0yMy45LTM3LTMxLjctNDQuOGw3LjEtMTguMmMuMiAwIDEyLjMtMjcuOC0yLjUtMzAuNy0uNi0xMS4zLTYuNi0yNy0xOC40LTI3LTcuNi0xMC42LTE3LjctMTIuMy0zMC43LTUuOS05LjEgNC40LTE3LjYgMTAtMjUuMyAxNi41LTUuMy02LjQtMyAuNC0zLTI5LjgtMzcuMS0yNC4zLTQ1LjQtMTEuNy03NC44IDNsLjUgLjVjLTIyLTcuNy00NS4xLTEyLjItNjguNC0xMy4zLTUuNS04LjctMTguNi0xOS4xLTI1LjEtMjUuMWwyNC44IDcuMWMtNS41LTUuNS0yNi44LTEyLjktMzQuMi0xNS4yIDE4LjItNC4xIDI5LjgtMjAuOCA0Mi41LTMzLTM0LjktMTAuMS02Ny45LTUuOS05Ny45IDExLjhsMTItNDQuMi0xLjgtLjVjLTMxLjYgMjQuMi0zMyA0MS45LTMzLjcgNDUuNS0uOS0yLjQtNi4zLTE5LjYtMTUuMi0yNy0zLjMgOC4xLTMuNSAxNy4xLS41IDI1LjMgMyA4LjQgNS45IDE0LjggOC40IDE4LjktMTYtMy4zLTI4LjMtNC45LTQ5LjIgMGwtMy43IDAgMzMgMTQuM2MtMjAuMiAxOC45LTM2LjEgNDEuOS00Ni43IDY3LjRsLTEuNyA4LjQgMS43IDEuNyA3LjYtNC43Yy0zLjMgMTEuNi01LjMgMTkuNC02LjYgMjUuOC0xMC45IDEyLjItMjAuMiAyNS44LTI3LjggNDAuMy0xNSAxLTMxLjggMTAuOC00MC4zIDE0LjNsMyAzLjQgMjguOCAxYy0uNSAxLS43IDIuMi0xLjIgMy4yLTcuMyA2LjQtMzkuOCAzNy43LTMzIDgwLjdsMjAuMi0yMi40Yy41IDEuNyAuNyAzLjQgMS4yIDUuMiAwIDI1LjUgLjQgODkuNiA2NC45IDE1MC41IDQzLjYgNDAgOTYgNjAuMiAxNTcuNSA2MC4yIDEyMS43IDAgMjIzLTg3LjMgMjIzLTIxMS41IDYuOC05LjctMS4yIDMgMTYuNy0yNS4xbDEzIDE0LjMgMi41LS41Yy0xLjgtMTEuNy00LjgtMjMuMS04LjktMzQuMi0xLjUtNC44LTMuOC05LjMtNi44LTEzLjNsMCAwek0zOTguNSAxMTEuMmwtLjUgMjEuOWM1LjUgMTguMSAxNi45IDE3LjIgMjIuNCAxNy4ybC0zLjQtNC43IDIyLjQtNS40Yy05IC41LTE4IC41LTI3IDAgMTIuOC0yLjEgMzMuMy0yOSA0My0xMS4zIDMuNCA3LjYgNi40IDE3LjIgOS4zIDI3LjhsMS43LTUuOWMtMS4zLTUtMS44LTEwLjEtMS43LTE1LjIgNS40IC41IDguOCAzLjQgOS4zIDEwLjEgLjUgNi40IDEuNyAxNC44IDMuNCAyNS4zbDQuNy0xMS4zYzQuNiAwIDQuNS0zLjYtMi41IDIwLjctMjAuOS04LjctMzUuMS04LjQtNDYuNS04LjRsMTguMi0xNmMtMjUuMyA4LjItMzMgMTAuOC01NC44IDIwLjktMS4xLTUuNC01LTEzLjUtMTYtMTkuOS0zLjIgMy44LTIuOCAuOS0uNyAxNC44bC0yLjUgMGMtMS4yLTguMi00LjEtMTYtOC40LTIzLjFsNC4yLTMuNGM4LjQtNy4xIDExLjgtMTQuMyAxMC42LTIxLjktLjUtNi40LTUuNC0xMy41LTEzLjUtMjAuNyA1LjYtMy40IDE1LjItLjQgMjguMyA4LjV6bS0zOS42LTEwLjFjMi43IDEuOSAxMS40IDUuNCAxOC45IDE3LjIgNC4yIDguNCA0IDkuOCAzLjQgMTEuMS0uNSAyLjQtLjUgNC4zLTMgNy4xLTEuNyAyLjUtNS40IDQuNy0xMS44IDcuNi03LjYtMTMtMTYuNS0yMy42LTI3LjgtMzEuMmwyMC4zLTExLjh6bS0yNjcuNCA0MmwxLjItMS43YzEuMi0yLjkgNC4yLTcuNiA5LjMtMTUuMmwyLjUtMy40LTEzIDEyLjMgNS40LTQuNy0xMC4xIDkuMy00LjIgMS4yYzEyLjMtMjQuMSAyMy4xLTQxLjMgMzIuNS01MC4yIDkuMy05LjMgMTYtMTYgMjAuMi0xOS40bC02LjQgMS4yYy0xMS4zLTQuMi0xOS40LTcuMS0yNC44LTguNCAyLjUtLjUgMy43LS41IDMuMi0uNSAxMC4zIDAgMTcuNSAuNSAyMC45IDEuMiA1LjIgMS43IDEwLjYgMi41IDE2IDIuNWwuNS0xLjctOC40LTM1LjggMTMuNSAyOWMyLjgtNC40IDQuOC05LjIgNS45LTE0LjMgMS43LTYuNCA1LjQtMTMgMTAuMS0xOS40czcuNi0xMC42IDkuMy0xMS4zYy0yLjYgOC4zLTQuNyAxNi44LTYuNCAyNS4zbC0xLjcgNy4xLS41IDQuNyAyLjUgMi41YzIxLjktMTMuNSA0NS41LTE5LjQgNzEuMy0xOC45bDIxLjEgLjVjLTExLjggMTMuNS0yNy44IDIxLjktNDguNSAyNC44LTcuNyAxLjQtMTUuNiAyLjQtMjMuNCAyLjlsLS4yLS41LTIuNS0xLjJjLTQuOC0xLTkuNy0uMy0xNCAyLTIuNS0uMi00LjktLjUtNy4xLS43bC0yLjUgMS43IC41IDEuMmMyIC4yIDMuOSAuNSA2LjIgLjdsLTIgMy40IDMuNC0uNS0xMC42IDExLjNjLTQuMiAzLTUuNCA2LjQtNC4yIDkuM2w1LjQtMy40IDEuMiAwYzYuMS04LjIgMTUuMi0xMy42IDI1LjMtMTUuMmwwLTNjNi40IC41IDEzIDEgMTkuNCAxLjIgNi40IDAgOC40IC41IDUuNCAxLjIgNy4yIDQgMTQuMSA4LjYgMjAuNyAxMy41IDEzLjUgMTAuMSAyMy42IDIxLjkgMzAgMzUuNCA4LjggMTguMiAxMy41IDM3LjEgMTMuNSA1Ni42IDAgOS41LTEgMTktMyAyOC4zLTMuNSAxNS45LTguOSAzMS4zLTE2IDQ2bDIuNSAuNWMxOC4yLTE5LjcgNDEuOS0xNiA0OS4yLTE2bC02LjQgNS45IDIyLjQgMTcuNy0xLjcgMzAuN2MtNS40LTEyLjMtMTYuNS0yMS4xLTMzLTI3LjggMTYuNSAxNC44IDIzLjYgMjEuMSAyMS45IDIwLjItNC44LTIuOC0zLjUtMS45LTEwLjgtMy43IDQuMSA0LjEgMTcuNSAxOC44IDE4LjIgMjAuN2wuMiAuMi0uMiAuMmMwIDEuOCAxLjYtMS4yLTE0IDIyLjktNzUuMi0xNS4zLTEwNi4zLTQyLjctMTQxLjItNjMuMmwxMS44IDEuMmMtMTEuOC0xOC41LTE1LjYtMTcuNy0zOC40LTI2LjFsMTAuNi04LjRjLTguOC0zLTE4LjItMy0yOC4zIC41bDcuNi0xMC42LTEuMi0xLjdjLTE0LjkgNC4zLTE5LjggOS4yLTIyLjYgMTEuMy0xLjEtNS41LTIuOC0xMi40LTEyLjMtMjguOGwtMS4yIDI3LTEzLjItNWMxLjUtMjUuMiA1LjQtNTAuNSAxMy4yLTc0LjZ6TTM2OCA0NzMuMWMtNDkuOSAyNS01Ni4xIDIyLjQtNTkgMjMuOS0yOS44LTExLjgtNTAuOS0zMS43LTYzLjUtNTguOGwzMCAxNi41Yy05LjgtOS4zLTE4LjMtMTYuNS0zOC40LTQ0LjNsMTEuOCAyMy4xLTE3LjctNy42YzE0LjIgMjEuMSAyMy41IDUxLjcgNjYuNiA3My41LTEyMC44IDI0LjItMTk5LTcyLjEtMjAwLjktNzQuMyAxMS4xIDkuMiAyMi45IDE3LjUgMzUuNCAyNC44IDMuNCAxLjcgNy4xIDIuNSAxMC4xIDEuMmwtMTYtMjAuN2M5LjIgNC4yIDkuNSA0LjUgNjkuMSAyOS00Mi41LTIwLjctNzMuOC00MC44LTkzLjItNjAuMi0uNSA2LjQtMS4yIDEwLjEtMS4yIDEwLjEgOC43IDcuMyAxNS44IDE2LjQgMjAuNyAyNi42LTM5LTE4LjktNTcuNi00Ny42LTcxLjMtODIuNiA0OS45IDU1LjEgMTE4LjkgMzcuNSAxMjAuNSAzNy4xIDM0LjggMTYuNCA2OS45IDIzLjYgMTEzLjkgMTAuNiAzLjMgMCAyMC4zIDE3IDI1LjMgMzkuMWw0LjItMy0yLjUtMjMuNmM5IDkgMjQuOSAyMi42IDM0LjQgMTMtMTUuNi01LjMtMjMuNS05LjUtMjkuNS0zMS43IDQuNiA0LjIgNy42IDkgMjcuOCAxNWwxLjItMS4yLTEwLjUtMTQuMmMxMS43LTQuOC0zLjUgMSAzMi0xMC44IDQuMyAzNC4zIDkgNDkuMiAuNyA4OS41ek00ODMuMyAyNTguN2wtMi41IC41IDMgOS4zYy0zLjUgNS45LTIzLjcgNDQuMy03MS42IDc5LjctMzkuNSAyOS44LTc2LjYgMzkuMS04MC45IDQwLjNsLTcuNi03LjEtMS4yIDMgMTQuMyAxNi03LjEtNC43IDMuNCA0LjItMS4yIDAtMjEuOS0xMy41IDkuMyAyNi42LTE5LTI3LjktMS4yIDIuNSA3LjYgMjljLTYuMS04LjItMjEtMzIuNi01Ni44LTM5LjZsMzIuNSAyMS4yYy0zMS4yIDQuNy02MyAyLjUtOTMuMi02LjQtNC4yLTEuMi04LjktMi41LTEzLjUtNC4ybDEuMi0zLTQ0LjgtMjIuNCAyNi4xIDIyLjRjLTU3LjcgOS4xLTExMy0yNS40LTEyNi40LTgzLjRMMjkuMyAyODQuOCA3IDMwNy4xYzE5LjUtNTcuNSAyNS42LTU3LjkgNTEuNC03MC4xLTkuMS01LjMtMS42LTMuMy0zOC40LTkuMyAxNS44LTUuOCAzMy0xNS40IDczIDUuMiAxLjItLjcgMi40LTEuMyAzLjctMS43IC42LTMuMiAuNC0uOCAxLTExLjggMy45IDEwIDMuNiA4LjcgMyA5LjNsMS43IC41YzEyLjctNi41IDguOS00LjUgMTctOC45bC01LjQgMTMuNSAyMi4zLTUuOC04LjQgOC40IDIuNSAyLjVjNC41LTEuOCAzMC4zIDMuNCA0MC44IDE2bC0yMy42LTIuNWMzOS40IDIzIDUxLjUgNTQgNTUuOCA2OS42bDEuNy0xLjJjLTIuOC0yMi4zLTEyLjQtMzMuOS0xNi00MC4xIDQuMiA1IDM5LjIgMzQuNiAxMTAuNCA0Ni0xMS4zLS41LTIzLjEgNS40LTM0LjkgMTguOWw0Ni43LTIwLjItOS4zIDIxLjljNy42LTEwLjEgMTQuOC0yMy42IDIxLjItMzkuNmwwLS41IDEuMi0zLTEuMiAxNmMxMy41LTQxLjggMjUuMy03OC41IDM1LjQtMTA5LjdsMTMuNS0yNy44IDAtMi01LjQtNC4yIDEwLjEgMCA1LjkgNC4yIDIuNS0xLjItMy40LTE2IDEyLjMgMTguOSA0MS44LTIwLjItMTQuOCAxMyAuNSAyLjkgMTcuNy0uNWMxMS4xIC40IDIyLjEgMS44IDMzIDQuMmwtMjMuNiAyLjUtMS4yIDMgMjYuNiAyMy4xYzkuOSA5LjkgMTguOSAyMC42IDI3IDMyLTExLjItMy4zLTEwLjMtMy40LTIxLjItMy40bDEyLjMgMzIuNS04LjktMTIuOHptLTYuMS03MS4zbC0zLjkgMTMtMTQuMy0xMS44IDE4LjItMS4yem0tMjU0LjggNy4xYzEuNyAxMC42IDQuNyAxNy43IDguOCAyMS45LTkuMyA2LjYtMjcuNSAxMy45LTQ2LjUgMTZsLjUgMS4yYzguMyAxLjMgMTYuOSAuNCAyNC44LTIuNWwtNy4xIDEzYzQuMi0xLjcgMTAuMS03LjEgMTcuNy0xNC44IDExLjktNS41IDEyLjctNS4xIDIwLjItMTYtMTIuNy02LjQtMTUuNy0xMy43LTE4LjQtMTguOHptMy43LTEwMi4zYy02LjQtMy40LTEwLjYgMy0xMi4zIDE4LjlzMi41IDI5LjUgMTEuOCAzOS42IDE4LjIgMTAuNiAyNi4xIDMgMy40LTIzLjYtMTEuMy00Ny43Yy0zLjUtNS43LTguNC0xMC41LTE0LjMtMTMuOGwwIDB6bS00LjcgNDYuM2M1LjQgMi4yIDEwLjUgMS45IDEyLjMtMTAuNmwwLTQuNy0xLjIgLjVjLTQuMy0zLjEtMi41LTQuNS0xLjctNi4ybC41LS41Yy0uOS0xLjItNS04LjEtMTIuNSA0LjctLjUtMTMuNSAuNS0yMS45IDMtMjQuOCAxLjItMi41IDQuNy0xLjIgMTEuMyA0LjIgNi40IDUuNCAxMS4zIDE2IDE1LjIgMzIuNSA2LjUgMjgtMTkuOCAyNi4yLTI2LjkgNC45em0tNDUtNS41YzEuNiAuMyA5LjMtMS4xIDkuMy0xNC44bC0uNSAwYy01LjQtMS4xLTIuMi01LjUtLjctNS45LTEuNy0zLTMuNC00LjItNS40LTQuNy04LjEgMC0xMS42IDEyLjctOC4xIDIxLjIgLjUgMS4xIDEuMyAyIDIuMiAyLjhzMiAxLjIgMy4yIDEuNGwwIDB6bTQwLjEtNTAuMWwtMi41IC41IC41IDNjOS4xLS41IDE4LjEgMS41IDI2LjEgNS45LTIuNS01LjUtMTAtMTQuMy0yOC4zLTE0LjNsLjUgMi41IDMuNyAyLjR6bS03MS44IDQ5LjRjMjEuNyAxNi44IDE2LjUgMjEuNCA0Ni41IDIzLjZsLTIuOS00LjdjOC40LTcuMiAxMy43LTE3LjMgMTQuOC0yOC4zIDEuNy0xNi0xLjItMjkuNS04LjgtNDEuM2wxMy03LjZjMC0uMyAwLS42LS4xLS45cy0uMi0uNi0uNC0uOGMtMi4yLS45LTQuNi0xLjItNy0uOXMtNC42IDEuMi02LjUgMi42Yy0xMi43IDYuNy0yOCAyMC45LTI5IDIyLjQtMS43IDEuNy0zLjQgNS45LTUuNCAxMy41LTEuOSA3LjctMi45IDE1LjYtMi45IDIzLjYtNC43LTgtMTAuNS02LjQtMTkuOS01LjlsNy4xIDcuNmMtMTYuNSAwLTIzLjMgMTUuNC0yMy42IDE2IDYuOCAwIDQuNi03LjYgMzAtMTIuMy00LjMtNi4zLTMuMy01LTQuOS02LjZ6bTE4LjctMTguN2MxLjItNy42IDMuNC0xMyA2LjQtMTcuMiA1LjQtNi40IDEwLjYtMTAuMSAxNi0xMS44IDQuMi0xLjcgNy4xIDEuMiAxMC4xIDkuMyAyLjUgOC4yIDMuNSAxNi44IDMgMjUuMy0uNSA5LjMtMy40IDE3LjItOC40IDIzLjEtMi45IDMuNC01LjQgNS45LTYuNCA3LjYtMy44IC40LTcuNiAuMi0xMS4zLS41bC03LjEtMy40LTUuNC02LjRjLjgtMTAgMS4zLTE4LjggMy4xLTI2em00MiA1Ni4xYy0zNC44IDE0LjQtMzQuNyAxNC0zNi4xIDE0LjMtMjAuOCA0LjctMTktMjQuNC0xOC45LTI0LjhsNS45LTEuMi0uNS0yLjVjLTIwLjItMi42LTMxIDQuMi0zMi41IDQuOSAuNSAuNSAzIDMuNCA1LjkgOS4zIDQuMi02LjQgOC44LTEwLjEgMTUuMi0xMC42LTEuNyAxMS4yLTEuMiAyMi43IDEuNyAzMy43IC4xIC41IDIuNiAxNy40IDI3LjUgMjQuMSAxMS4zIDMgMjcgMS4yIDQ4LjktNS40bC05LjIgLjVjLTQuMi0xNC44LTYuNC0yNC44LTUuOS0yOS41IDExLjMtOC44IDIxLjktMTEuMyAzMC43LTcuNmwyLjUgMC0xMS44LTcuNi03LjEgLjVjLTUuOSAxLjItMTIuMyA0LjItMTkuNCA4LjRsMy4xLTYuNXoiXX0seW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImppcmEiLGljb246WzUxMiw1MTIsW10sImY3YjEiLCJNNDk4LjUgMjQxLjdjLTcyLjktNzIuNy0xNjkuNC0xNjkuOS0yNDEuNS0yNDEuNy0xNjUuNSAxNjQuOS0yNDIuNSAyNDEuNy0yNDIuNSAyNDEuNy03LjkgNy45LTcuOSAyMC43IDAgMjguNyAxMzIuOCAxMzIuMyA2MS44IDYxLjUgMjQyLjUgMjQxLjYgMzc5LjQtMzc4IDE1LjctMTYuNyAyNDEuNS0yNDEuNyA4LTcuOSA4LTIwLjcgMC0yOC42ek0yNTcgMzMxLjdsLTc2LTc1LjcgNzYtNzUuNyA3NiA3NS43LTc2IDc1Ljd6Il19LHdudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmZWRleCIsaWNvbjpbNjQwLDUxMixbXSwiZjc5NyIsIk01ODYgMjg0LjVsNTMuMy01OS45LTYyLjQgMC0yMS43IDI0LjgtMjIuNS0yNC44LTExOC43IDAgMC0xNiA1Ni4xIDAgMC00OC4xLTE1MS4yIDAgMCA3NS41LS41IDBjLTkuNi0xMS0yMS41LTE0LjgtMzUuNC0xNC44LTI4LjQgMC00OS44IDE5LjQtNTcuMyA0NC45LTE4LTU5LjQtOTcuNC01Ny42LTEyMS45LTE0bDAtMjQuMi01NC44IDAgMC0yNi4yIDYwIDAgMC00MS4xLTEwOSAwIDAgMTg0LjQgNDkgMCAwLTc3LjUgNDguOSAwYy0xLjUgNS43LTIuMyAxMS44LTIuMyAxOC4yIDAgNzMuMSAxMDIuNiA5MS40IDEzMC4yIDIzLjdsLTQyIDBjLTE0LjcgMjAuOS00NS44IDguOS00NS44LTE0LjZsODUuNSAwYzMuNyAzMC41IDI3LjQgNTYuOSA2MC4xIDU2LjkgMTQuMSAwIDI3LTYuOSAzNC45LTE4LjZsLjUgMCAwIDExLjkgMjEyLjIgMCAyMi4xLTI1IDIyLjMgMjUgNjQuNCAwLTU0LTYwLjV6TTEzOS4zIDI2Ny45YzYuMS0yNi4zIDQxLjctMjUuNiA0Ni41IDBsLTQ2LjUgMHptMTUzLjQgNDguOWMtMzQuNiAwLTM0LTYyLjggMC02Mi44IDMyLjYgMCAzNC41IDYyLjggMCA2Mi44em0xNjcuOCAxOS4xbC05NC40IDAgMC0xNjYuNSA5NSAwIDAgMzAuMi01Ni4xIDAgMCAzMy45IDU1LjUgMCAwIDI4LjEtNTYuMSAwIDAgNDQuNyA1Ni4xIDAgMCAyOS42em0tNDUuOS0zOS44bDAtMjQuNCA1Ni4xIDAgMC00NCA1MC43IDU3LTUwLjcgNTcgMC00NS42LTU2LjEgMHptMTM4LjYgMTAuM2wtMjYuMSAyOS41LTM4LjEgMCA0NS42LTUxLjItNDUuNi01MS4yIDM5LjcgMCAyNi42IDI5LjMgMjUuNi0yOS4zIDM4LjUgMC00NS40IDUxIDQ2IDUxLjQtNDAuNSAwLTI2LjMtMjkuNXoiXX0sTW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV2ZXJub3RlIixpY29uOlszODQsNTEyLFtdLCJmODM5IiwiTTEyMS4xIDEzMi4yYzEuNiAyMi4zLTE3LjYgMjEuNi0yMS42IDIxLjYtNjguOSAwLTczLjYtMS04My42IDMuMy0uNiAuMi0uNyAwLS40LS40TDEyNC4xIDQ2LjRjLjQtLjQgLjYtLjIgLjQgLjQtNC40IDEwLTMuNCAxNS4xLTMuNCA4NS40em03OSAzMDhjLTE0LjctMzcuMSAxMy03Ni45IDUyLjUtNzYuNiAxNy41IDAgMjIuNiAyMy4yIDcuOSAzMS40LTYuMiAzLjMtMjQuOSAxLjctMjUuMSAxOS4yIDAgMTcuMSAxOS43IDI1IDMxLjIgMjQuOSA2IDAgMTEuOS0xLjIgMTcuNS0zLjVzMTAuNi01LjcgMTQuOC05LjkgNy42LTkuMyA5LjktMTQuOCAzLjUtMTEuNSAzLjUtMTcuNWwwLS4xYzAtMTEuNi03LjgtNDcuMi00Ny41LTU1LjMtNy43LTEuNS02NS02LjMtNjguNC01MC41LTMuNyAxNi45LTE3LjQgNjMuNS00My4xIDY5LjEtOC43IDEuOS02OS43IDcuNi0xMTIuOS0zNi44IDAgMC0xOC42LTE1LjItMjguMi01OC0zLjQtMTUuNy05LjMtMzkuNy0xMS4xLTYyIDAtMTggMTEuMS0zMC40IDI1LjEtMzIuMiA4MSAwIDkwIDIuMyAxMDEtNy44IDkuOC05LjIgNy44LTE1LjUgNy44LTEwMi44IDEtOC4zIDcuOC0zMC44IDUzLjQtMjQuMSA2IC45IDMxLjkgNC4yIDM3LjUgMzAuNkwyOTAgNzQuOGMyMC40IDMuNyA3MC45IDcgODAuNiA1Ny45IDIyLjcgMTIxLjEgOC45IDIzOC41IDcuOCAyMzguNS0xNiAxMTQuNC0xMTEuMSAxMDguOS0xMTEuMSAxMDguOS0xOS0uMi01NC4yLTkuNC02Ny4zLTM5LjhsMCAwek0yODEgMjM1LjRjLTEgMS45LTIuMiA2IC45IDcgMTQuMSA0LjkgMzkuOCA2LjggNDUuOSA1LjUgMy4xLS4yIDMuMS00LjQgMi41LTYuNi0zLjUtMjEuOC00MC44LTI2LjUtNDkuMi01LjlsMCAweiJdfSxrbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXNiIixpY29uOls2NDAsNTEyLFtdLCJmMjg3IiwiTTYzMy41IDI1NmMwIDMuMS0xLjcgNi4xLTQuNSA3LjVMNTM5LjkgMzE3Yy0xLjQgLjgtMi44IDEuNC00LjUgMS40LTEuNCAwLTMuMS0uMy00LjUtMS4xLTIuOC0xLjctNC41LTQuNS00LjUtNy44bDAtMzUuNi0yMzAuNyAwYzI1LjMgMzkuNiA0MC41IDEwNi45IDY5LjYgMTA2LjlsMjYuNyAwIDAtMjYuOGMwLTUgMy45LTguOSA4LjktOC45bDg5LjEgMGM1IDAgOC45IDMuOSA4LjkgOC45bDAgODkuMWMwIDUtMy45IDguOS04LjkgOC45bC04OS4xIDBjLTUgMC04LjktMy45LTguOS04LjlsMC0yNi43LTI2LjcgMGMtNzUuNCAwLTgxLjEtMTQyLjUtMTI0LjctMTQyLjVsLTEwMC4zIDBjLTguMSAzMC42LTM1LjkgNTMuNS02OSA1My41LTM5LjMtLjEtNzEuMy0zMi4xLTcxLjMtNzEuNHMzMi03MS4zIDcxLjMtNzEuM2MzMy4xIDAgNjEgMjIuOCA2OSA1My41IDM5LjEgMCA0My45IDkuNSA3NC42LTYwLjQgNDAuMS04OS4xIDU4LjEtODIuMSAxMDguOS04Mi4xIDcuNS0yMC45IDI3LTM1LjYgNTAuNC0zNS42IDI5LjUgMCA1My41IDIzLjkgNTMuNSA1My41cy0yMy45IDUzLjUtNTMuNSA1My41Yy0yMy40IDAtNDIuOS0xNC44LTUwLjQtMzUuNmwtMjkuOCAwYy0yOS4xIDAtNDQuMyA2Ny40LTY5LjYgMTA2LjlsMzAyLjEgMCAwLTM1LjZjMC0zLjMgMS43LTYuMSA0LjUtNy44czYuNC0xLjQgOC45IC4zTDYyOSAyNDguOGMyLjggMS4xIDQuNSA0LjEgNC41IDcuMnoiXX0sU250PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ3J5Y3JlYXRpdmUiLGljb246WzY0MCw1MTIsW10sImYzNmUiLCJNNjQwIDIzOC4ybC0zLjIgMjguMi0zNC41IDIuMy0yIDE4LjEgMzQuNS0yLjMtMy4yIDI4LjItMzQuNCAyLjItMi4zIDIwLjEgMzQuNC0yLjItMyAyNi4xLTY0LjcgNC4xIDEyLjctMTEzLjItNDcuMyAxMTUuNC0zMS45IDItMjMuOC0xMTcuOCAzMC4zLTIgMTMuNiA3OS40IDMxLjctODIuNCA5My4xLTYuMnpNNDI2LjggMzcxLjVsMjguMy0xLjggMTIuOS0xMjAuMS0yOC40IDEuOS0xMi44IDEyMHpNMTYyIDM4OC4xbC0xOS40LTM2LTMuNSAzNy40LTI4LjIgMS43IDIuNy0yOS4xYy0xMSAxOC0zMiAzNC4zLTU2LjkgMzUuOC0zMi44IDItNTkuNy0yMC45LTU2LjQtNTguMiAyLjYtMjkuMyAyNi43LTYyLjggNjcuNS02NS40IDM3LjctMi40IDQ3LjYgMjMuMiA1MS4zIDI4LjhsMi44LTMwLjggMzguOS0yLjVjMjAuMS0xLjMgMzguNyAzLjcgNDIuNSAyMy43bDIuNi0yNi42IDY0LjgtNC4yLTIuNyAyNy45LTM2LjQgMi40LTEuNyAxNy45IDM2LjQtMi4zLTIuNyAyNy45LTM2LjQgMi4zLTEuOSAxOS45IDM2LjMtMi4zLTIuMSAyMC44IDU1LTExNy4yIDIzLjgtMS42IDMyLjEgMTEwLjYgOC45LTg1LjYtMjIuMyAxLjQgMi45LTI3LjkgNzUtNC45LTMgMjgtMjQuMyAxLjYtOS43IDkxLjktNTggMy43LTQuMy0xNS42LTM5LjQgMi41LTggMTYuMy0xMjYuMiA3Ljd6bS00NC4zLTcwLjJsLTI2LjQgMS43Yy02LjctMTIuNC0xNC40LTE2LjYtMjYuMy0xNS44LTE5IDEuMi0zMy4zIDE3LjUtMzQuNiAzMy4zLTEuNCAxNiA3LjMgMzIuNSAyOC43IDMxLjIgMTIuOC0uOCAyMS4zLTguNiAyOC45LTE4LjlsMjctMS43IDIuNy0yOS44em01Ni4xLTcuN2MxLjItMTIuOS03LjYtMTMuNi0yNi4xLTEyLjRMMTQ1IDMyNi4zYzE0LjItLjkgMjcuNS0yLjEgMjguOC0xNi4xek0xOTQuOSAzODFsNS44LTYwYy01IDEzLjUtMTQuNyAyMS4xLTI3LjkgMjYuNkwxOTQuOSAzODF6bTEzNS40LTQ1bC03LjktMzcuOC0xNS44IDM5LjMgMjMuNy0xLjV6TTE2MC4yIDI2MS40bC00LjMtMTcuNS0zOS42IDIuNi04LjEgMTguMi0zMS45IDIuMSA1Ny0xMjEuOSAyMy45LTEuNiAzMC43IDEwMiA5LjktMTA0LjcgMjctMS44IDM3LjggNjMuNiA2LjUtNjYuNiAyOC41LTEuOS00IDQxLjJjNy40LTEzLjUgMjIuOS00NC43IDYzLjYtNDcuNSA0MC41LTIuOCA1Mi40IDI5LjMgNTMuNCAzMC4zbDMuMy0zMiAzOS4zLTIuN2MxMi43LS45IDI3LjggLjMgMzYuMyA5LjdsLTQuNC0xMS45IDMyLjItMi4yIDEyLjkgNDMuMiAyMy00NS43IDMxLTIuMi00My42IDc4LjQtNC44IDQ0LjMtMjguNCAxLjkgNC44LTQ0LjMtMTUuOC00M2MxIDIyLjMtOS4yIDQwLjEtMzIgNDkuNmwyNS4yIDM4LjgtMzYuNCAyLjQtMTkuMi0zNi44LTQgMzguMy0yOC40IDEuOSAzLjMtMzEuNWMtNi43IDkuMy0xOS43IDM1LjQtNTkuNiAzOC0yNi4yIDEuNy00NS42LTEwLjMtNTUuNC0zOS4ybC00IDQwLjMtMjUgMS42LTM3LjYtNjMuMy02LjMgNjYuMi01Ni44IDMuN3ptMjc2LjYtODIuMWMxMC4yLS43IDE3LjUtMi4xIDIxLjYtNC4zIDQuNS0yLjQgNy02LjQgNy42LTEyLjEgLjYtNS4zLS42LTguOC0zLjQtMTAuNC0zLjYtMi4xLTEwLjYtMi44LTIyLjktMmwtMi45IDI4Ljh6TTMyNy43IDIxNGM1LjYgNS45IDEyLjcgOC41IDIxLjMgNy45IDQuNy0uMyA5LjEtMS44IDEzLjMtNC4xIDUuNS0zIDEwLjYtOCAxNS4xLTE0LjNsLTM0LjIgMi4zIDIuNC0yMy45IDYzLjEtNC4zIDEuMi0xMi0zMS4yIDIuMWMtNC4xLTMuNy03LjgtNi42LTExLjEtOC4xLTQtMS43LTguMS0yLjgtMTIuMi0yLjUtOCAuNS0xNS4zIDMuNi0yMiA5LjItNy43IDYuNC0xMiAxNC41LTEyLjkgMjQuNC0xLjEgOS42IDEuNCAxNy4zIDcuMiAyMy4zem0tMjAxLjMgOC4ybDIzLjgtMS42LTguMy0zNy42LTE1LjUgMzkuMnoiXX0sem50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1penVuaSIsaWNvbjpbNTEyLDUxMixbXSwiZjNjYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTE3NiAzNTkuOWMtMzEuNCAxMC42LTU4LjggMjcuMy04MCA0OC4yTDk2IDEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjIzLjl6TTI5NiAzNTBjLTEyLjktMi0yNi4yLTMuMS0zOS44LTMuMS0xMy44IDAtMjcuMiAxLjEtNDAuMiAzLjFsMC0yMTRjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDIxNHptMTIwIDU3LjdjLTIxLjItMjAuOC00OC42LTM3LjQtODAtNDhMMzM2IDEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMjcxLjd6Il19LENudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpdGNoLWlvIixpY29uOls1MTIsNTEyLFtdLCJmODNhIiwiTTcxLjkgMzQuOEM1MC4yIDQ3LjcgNy40IDk2LjggNyAxMDkuN2wwIDIxLjNjMCAyNy4xIDI1LjMgNTAuOCA0OC4yIDUwLjggMjcuNiAwIDUwLjUtMjIuOCA1MC41LTUwIDAgMjcuMSAyMi4yIDUwIDQ5LjggNTBzNDktMjIuOCA0OS01MGMwIDI3LjEgMjMuNiA1MCA1MS4yIDUwbC41IDBjMjcuNiAwIDUxLjItMjIuOCA1MS4yLTUwIDAgMjcuMSAyMS41IDUwIDQ5IDUwczQ5LjgtMjIuOCA0OS44LTUwYzAgMjcuMSAyMyA1MCA1MC41IDUwIDIzIDAgNDguMy0yMy44IDQ4LjMtNTAuOGwwLTIxLjNjLS40LTEyLjktNDMuMi02Mi4xLTY0LjktNzUtNjcuNC0yLjMtMTE0LjItMi43LTE4NC0yLjdTOTEuMSAzMy4xIDcxLjkgMzQuOHpNMjA0LjIgMTY5LjJjLTIyIDM4LjQtNzcuOSAzOC43LTk5LjggLjItMTMuMiAyMy4xLTQzLjIgMzIuMS01NiAyNy43LTMuOSA0MC4yLTEzLjcgMjM3LjEgMTcuNyAyNjkuMiA4MCAxOC43IDMwMi4xIDE4LjEgMzc5LjggMCAzMS42LTMyLjMgMjEuMy0yMzIgMTcuNy0yNjkuMi0xMi45IDQuNC00Mi45LTQuNi01Ni0yNy43LTIyIDM4LjUtNzcuOCAzOC4xLTk5LjgtLjItNy4xIDEyLjUtMjMgMjguOS01MS44IDI4LjktMTAuNCAuMy0yMC44LTIuMi0yOS45LTcuM3MtMTYuNy0xMi42LTIxLjktMjEuNmwwIDB6bS00MS42IDUzLjhjMTYuNSAwIDMxLjEgMCA0OS4yIDE5LjggMjkuMy0zIDU4LjktMyA4OC4yIDAgMTguMi0xOS43IDMyLjgtMTkuNyA0OS4yLTE5LjcgNTIuMyAwIDY1LjIgNzcuNSA4My45IDE0NC40IDE3LjMgNjIuMi01LjUgNjMuNy0zNCA2My43LTQyLjEtMS42LTY1LjUtMzIuMi02NS41LTYyLjgtMzkuMyA2LjQtMTAxLjkgOC44LTE1NS42IDAgMCAzMC42LTIzLjMgNjEuMi02NS41IDYyLjgtMjguNC0uMS01MS4yLTEuNi0zMy45LTYzLjcgMTguNy02NyAzMS42LTE0NC40IDgzLjktMTQ0LjRsMC0uMXpNMjU2IDI3MC44cy00NC40IDQwLjgtNTIuNCA1NS4ybDI5LTEuMiAwIDI1LjNjMCAxLjUgMjEuMyAuMiAyMy4zIC4yIDExLjYgLjUgMjMuMyAxIDIzLjMtLjJsMC0yNS4zIDI5IDEuMmMtOC0xNC41LTUyLjQtNTUuMi01Mi40LTU1LjJsLjEgMHoiXX0sVG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpbmRvd3MiLGljb246WzQ0OCw1MTIsW10sImYxN2EiLCJNMCA5My43bDE4My42LTI1LjMgMCAxNzcuNC0xODMuNiAwIDAtMTUyLjF6TTAgNDE4LjNsMTgzLjYgMjUuMyAwLTE3NS4yLTE4My42IDAgMCAxNDkuOXptMjAzLjggMjhsMjQ0LjIgMzMuNyAwLTIxMS42LTI0NC4yIDAgMCAxNzcuOXptMC0zODAuNmwwIDE4MC4xIDI0NC4yIDAgMC0yMTMuOC0yNDQuMiAzMy43eiJdfSxfbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3R1bWJsZXVwb24iLGljb246WzUxMiw1MTIsW10sImYxYTQiLCJNNTAyLjkgMjY2bDAgNjkuN2MwIDYyLjEtNTAuMyAxMTIuNC0xMTIuNCAxMTIuNC02MS44IDAtMTEyLjQtNDkuOC0xMTIuNC0xMTEuM2wwLTcwLjIgMzQuMyAxNiA1MS4xLTE1LjIgMCA3MC42YzAgMTQuNyAxMiAyNi41IDI2LjcgMjYuNVM0MTcgMzUyLjcgNDE3IDMzOGwwLTcyIDg1LjkgMHpNMjc4LjIgMjA3LjhsMzQuMyAxNiA1MS4xLTE1LjIgMC0zNS42YzAtNjAuNS01MS4xLTEwOS0xMTIuMS0xMDktNjAuOCAwLTExMi4xIDQ4LjItMTEyLjEgMTA4LjJsMCAxNjIuNGMwIDE0LjktMTIgMjYuNy0yNi43IDI2LjdTODYgMzQ5LjUgODYgMzM0LjZsMC02OC42LTg2IDAgMCA2OS43YzAgNjIgNTAuMyAxMTIuMyAxMTIuNCAxMTIuMyA2MS42IDAgMTEyLjQtNDkuNSAxMTIuNC0xMTAuOGwwLTE2MC4zYzAtMTQuNyAxMi0yNi43IDI2LjctMjYuN3MyNi43IDEyIDI2LjcgMjYuN2wwIDMwLjl6Il19LElBPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2dsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFhMCIsIk01MDAgMjYxLjhDNTAwIDQwMy4zIDQwMy4xIDUwNCAyNjAgNTA0IDEyMi44IDUwNCAxMiAzOTMuMiAxMiAyNTZTMTIyLjggOCAyNjAgOGM2Ni44IDAgMTIzIDI0LjUgMTY2LjMgNjQuOWwtNjcuNSA2NC45Yy04OC4zLTg1LjItMjUyLjUtMjEuMi0yNTIuNSAxMTguMiAwIDg2LjUgNjkuMSAxNTYuNiAxNTMuNyAxNTYuNiA5OC4yIDAgMTM1LTcwLjQgMTQwLjgtMTA2LjlsLTE0MC44IDAgMC04NS4zIDIzNi4xIDBjMi4zIDEyLjcgMy45IDI0LjkgMy45IDQxLjR6Il19LExudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaXNjb3JkIixpY29uOls1NzYsNTEyLFtdLCJmMzkyIiwiTTQ5Mi41IDY5LjhjLS4yLS4zLS40LS42LS44LS43LTM4LjEtMTcuNS03OC40LTMwLTExOS43LTM3LjEtLjQtLjEtLjggMC0xLjEgLjFzLS42IC40LS44IC44Yy01LjUgOS45LTEwLjUgMjAuMi0xNC45IDMwLjYtNDQuNi02LjgtODkuOS02LjgtMTM0LjQgMC00LjUtMTAuNS05LjUtMjAuNy0xNS4xLTMwLjYtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4yLTEuMS0uMmMtNDEuMyA3LjEtODEuNiAxOS42LTExOS43IDM3LjEtLjMgLjEtLjYgLjQtLjggLjctNzYuMiAxMTMuOC05Ny4xIDIyNC45LTg2LjkgMzM0LjUgMCAuMyAuMSAuNSAuMiAuOHMuMyAuNCAuNSAuNmM0NC40IDMyLjkgOTQgNTggMTQ2LjggNzQuMiAuNCAuMSAuOCAuMSAxLjEgMHMuNy0uNCAuOS0uN2MxMS4zLTE1LjQgMjEuNC0zMS44IDMwLTQ4LjggLjEtLjIgLjItLjUgLjItLjhzMC0uNS0uMS0uOC0uMi0uNS0uNC0uNi0uNC0uMy0uNy0uNGMtMTUuOC02LjEtMzEuMi0xMy40LTQ1LjktMjEuOS0uMy0uMi0uNS0uNC0uNy0uNnMtLjMtLjYtLjMtLjkgMC0uNiAuMi0uOSAuMy0uNSAuNi0uN2MzLjEtMi4zIDYuMi00LjcgOS4xLTcuMSAuMy0uMiAuNi0uNCAuOS0uNHMuNyAwIDEgLjFjOTYuMiA0My45IDIwMC40IDQzLjkgMjk1LjUgMCAuMy0uMSAuNy0uMiAxLS4ycy43IC4yIC45IC40YzIuOSAyLjQgNiA0LjkgOS4xIDcuMiAuMiAuMiAuNCAuNCAuNiAuN3MuMiAuNiAuMiAuOS0uMSAuNi0uMyAuOS0uNCAuNS0uNiAuNmMtMTQuNyA4LjYtMzAgMTUuOS00NS45IDIxLjgtLjIgLjEtLjUgLjItLjcgLjRzLS4zIC40LS40IC43LS4xIC41LS4xIC44IC4xIC41IC4yIC44YzguOCAxNyAxOC44IDMzLjMgMzAgNDguOCAuMiAuMyAuNiAuNiAuOSAuN3MuOCAuMSAxLjEgMGM1Mi45LTE2LjIgMTAyLjYtNDEuMyAxNDcuMS03NC4yIC4yLS4yIC40LS40IC41LS42cy4yLS41IC4yLS44YzEyLjMtMTI2LjgtMjAuNS0yMzYuOS04Ni45LTMzNC41em0tMzAyIDI2Ny43Yy0yOSAwLTUyLjgtMjYuNi01Mi44LTU5LjJzMjMuNC01OS4yIDUyLjgtNTkuMmMyOS43IDAgNTMuMyAyNi44IDUyLjggNTkuMiAwIDMyLjctMjMuNCA1OS4yLTUyLjggNTkuMnptMTk1LjQgMGMtMjkgMC01Mi44LTI2LjYtNTIuOC01OS4yczIzLjQtNTkuMiA1Mi44LTU5LjJjMjkuNyAwIDUzLjMgMjYuOCA1Mi44IDU5LjIgMCAzMi43LTIzLjIgNTkuMi01Mi44IDU5LjJ6Il19LEFudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoYWNrZXItbmV3cyIsaWNvbjpbNDQ4LDUxMixbXSwiZjFkNCIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0yMS4yIDIyOS4ybC0uMiAwYy4xLS4xIC4yLS4zIC4zLS40IDAgLjEgMCAuMy0uMSAuNHptMjE4IDUzLjlsMCAxMDAuOS0zMS40IDAgMC0xMDIuNy03OS44LTE1My4zIDM3LjMgMGM1Mi41IDk4LjMgNDkuMiAxMDEuMiA1OS4zIDEyNS42IDEyLjMtMjcgNS44LTI0LjQgNjAuNi0xMjUuNmwzNC44IDAtODAuOCAxNTUuMXoiXX0samFlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVsZXZlbnR5IixpY29uOls2NDAsNTEyLFsiMTF0eSJdLCJlN2Q2IiwiTTYxNS4zIDE2OC41YzIuMyAwIDQuNiAuNyA2LjYgMi4yIDEuOSAxLjQgMy4xIDMuMyAzLjggNSAxLjQgMy4zIDEuOCA3LjMgMS44IDExLjMgMCAyLjItLjMgNC45LS43IDcuNmwwIC40LTUwLjkgMjY0LjkgMCAwYy00IDIyLjEtOC41IDM5LjQtMTMuNiA1MS43LTUgMTIuMS0xMC45IDIxLjYtMTguNiAyN2wwIDBjLTcuNSA1LjMtMTYuOSA3LjctMjcuNiA4bC0zIDBjLTE2IDAtMjkuMy00LjItMzYuOS0xNC44LS4xLS4xLS4xLS4xLS4yLS4yLS4xLS4yLS4zLS40LS41LS42bDAgMGMtMS44LTIuNC0yLjUtNS4yLTIuOS03LjQtLjUtMi44LS43LTYuMS0uNy05LjggMC03LjMgLjYtMTMuNSAyLjEtMTguMiAxLjQtNC40IDQuOC0xMC40IDEyLjItMTAuNGwxLjMgLjFjLjIgMCAuNCAuMSAuNSAuMSAuMyAuMSAuNiAuMSAuOCAuMiAuNiAuMSAxLjMgLjMgMi4yIC42bDcuNiAyLjIgLjEgMCA3LjYgMi4xYy45IC4yIDEuNyAuNCAyLjIgLjUgLjQgLjEgLjYgLjEgLjcgLjEgMCAwIC4xIDAgLjItLjEgLjEtLjEgLjQtLjIgLjgtLjYgLjktLjkgMi4yLTIuNiAzLjYtNS43IDIuNi01LjggNC4yLTE0LjcgNC4yLTI3LjQgMC0uNy0uMy0zLjQtMS4zLTguOS0uOS01LjEtMi4zLTEyLjItNC4yLTIxLjFsLTU2LTIzMi45LS4xLS40IDAtLjNjLS40LTIuNy0uNy01LjMtLjctNy4zIDAtMy43IC40LTcuNSAxLjctMTAuNiAuNy0xLjYgMS44LTMuNCAzLjUtNC45IDEuOS0xLjUgNC4yLTIuMyA2LjUtMi4zbDM0LjYgMGM0LjYgMCA4LjcgMS43IDExLjkgNWwxLjMgMS41YzEuMiAxLjYgMiAzLjQgMi43IDUuMiAuOSAyLjQgMS41IDUuMSAyIDguMWwzMC40IDE2MS4yIDIzLjgtMTYwYy44LTUuOCAyLjItMTEuNCA1LjEtMTUuMSAzLTMuOCA3LjItNS44IDEyLTUuOGwyNCAwek0zNzUuMSAzNC42YzIuNiAwIDUuMSAuNyA3LjQgMi4zIDIuMiAxLjUgMy43IDMuNiA0LjcgNS43IDEuOSA0IDIuNSA5LjEgMi41IDE0LjVsMCAxMTEuMmMwIC4xIDAgLjIgMCAuM2wzMi40IDBjMi41IDAgNSAuNiA3LjIgMi4xIDIuMiAxLjQgMy43IDMuNCA0LjggNS41IDIgMy45IDIuNiA4LjggMi42IDEzLjlsMCAxNS40YzAgNS0uNiA5LjgtMi42IDEzLjctMS4xIDItMi42IDQtNC44IDUuNC0yLjIgMS40LTQuNyAyLTcuMSAybC0zMi41IDAgMCAxNDUuOGMwIDEwLjggLjcgMTkuNSAyIDI2LjIgMS40IDYuOSAzLjEgMTAuOSA0LjcgMTIuOSAxLjIgMS41IDIuMiAyLjUgMy4xIDMuMmwyLjIgMS40IC4xIC4xIDIuOSAuOGMxLjIgLjIgMi42IC4zIDQuMyAuM2wyMC4zIDBjNC41IDAgOC45IDEuNyAxMS44IDUuOCAyLjYgMy42IDMuMyA4LjEgMy4zIDEyLjJsMCAxNy4yYzAgNC41LS44IDkuMy0zLjQgMTMuMS0zIDQuMi03LjUgNi0xMi4zIDZsMCAwLTI5LjEgLjFjLTggMC0xNS0uNi0yMS4yLTEuNy02LjctMS4zLTEzLjQtNC4xLTIwLjEtOC4xLTcuMi00LjQtMTMtMTAuMy0xNy41LTE3LjgtNC41LTcuNS03LjktMTcuNS0xMC41LTI5LjUtMi42LTEyLjItMy45LTI2LjYtMy45LTQzbDAtMTQ0LjktMTMuNCAwYy0yLjQgMC00LjktLjYtNy4xLTItMi4yLTEuNC0zLjctMy40LTQuOC01LjQtMi0zLjktMi42LTguNy0yLjYtMTMuN2wwLTE1LjRjMC01LjEgLjYtMTAgMi42LTEzLjkgMS4xLTIuMSAyLjYtNCA0LjgtNS41IDIuMi0xLjUgNC43LTIuMSA3LjItMi4xbDEzLjQgMCAwLS42IDUuMi0xMTEuMiAwLS4xIC4zLTMuOWMuNS0zLjggMS4zLTcuNCAyLjctMTAuMyAyLjEtNC4yIDYtNy45IDExLjgtNy45bDI4LjYgMHptLTI2OCAxMS43YzEuOCAuMyAzLjYgLjkgNS4zIDIuMSAyLjEgMS41IDMuNSAzLjUgNC40IDUuNCAxLjcgMy43IDIuMyA4LjQgMi4zIDEzLjJsMCAzNzcuOGMwIDYuNy0uNiAxMi42LTIuNCAxNy4xLS45IDIuMy0yLjMgNC43LTQuNCA2LjUtMi4zIDItNS4xIDMtOC4xIDNsLTQzLjcgMGMtMyAwLTUuOC0xLjEtOC4xLTMuMS0yLjEtMS45LTMuNC00LjMtNC4yLTYuNS0xLjctNC41LTIuMy0xMC4zLTIuMy0xN2wwLTMxNS44Yy00LjggMS4yLTguNyAyLjItMTEuNSAyLjktMS45IC41LTMuNCAuOC00LjQgMS4xLS41IC4xLS45IC4yLTEuMiAuMy0uMSAwLS4zIC4xLS41IC4xLS4xIDAtLjIgMC0uMyAuMSAwIDAtLjIgMC0uMyAwIDAgMC0uMiAwLS40IDBsMCAwYy0uMSAwLS4zIDAtLjQgMC0uMSAwLS4yIDAtLjIgMC0yLjIgLjEtNC41LS40LTYuNi0xLjctMi4zLTEuNC0zLjgtMy40LTQuNy01LjMtMS44LTMuNy0yLjMtOC40LTIuMy0xM2wwLTI3LjRjMC00LjQgLjctOC44IDIuNi0xMi40IDIuMS0zLjkgNS41LTYuNiA5LjgtNy42bDc1LjUtMTkuNWMxLjQtLjQgMi45LS41IDQuNC0uNWwxLjggLjF6bTE0My44LS41YzEuOCAuMyAzLjYgLjkgNS4yIDIuMSAyLjEgMS41IDMuNSAzLjUgNC40IDUuNCAxLjcgMy43IDIuMiA4LjQgMi4yIDEzLjJsMCAzNzcuOGMwIDYuNy0uNiAxMi42LTIuNCAxNy4xLS45IDIuMy0yLjMgNC43LTQuNCA2LjUtMi4zIDItNS4xIDMtOC4xIDNsLTQzLjcgMGMtMyAwLTUuOC0xLjEtOC4xLTMuMS0yLjEtMS45LTMuNC00LjMtNC4yLTYuNS0xLjctNC41LTIuMy0xMC4zLTIuMy0xN2wwLTMxNS44Yy00LjggMS4yLTguNyAyLjItMTEuNSAyLjktMS45IC41LTMuNCAuOC00LjQgMS4xLS41IC4xLS45IC4yLTEuMiAuMy0uMSAwLS4zIC4xLS41IC4xLS4xIDAtLjIgMC0uMyAuMS0uMSAwLS4yIDAtLjMgMCAwIDAtLjIgMC0uNCAwbDAgMGMtLjEgMC0uMiAwLS4zIDAtLjEgMC0uMiAwLS4zIDAtMi4yIC4xLTQuNS0uNC02LjYtMS43LTIuMy0xLjQtMy44LTMuNC00LjctNS4zLTEuOC0zLjctMi4zLTguMy0yLjMtMTNsMC0yNy40YzAtNC40IC43LTguNyAyLjYtMTIuNCAyLjEtMy45IDUuNS02LjYgOS44LTcuNmw3NS40LTE5LjRjMS40LS40IDIuOS0uNSA0LjQtLjVsMS44IC4xeiJdfSxEbnQ9amFlLEVudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZWFtc3BlYWsiLGljb246WzU3Niw1MTIsW10sImY0ZjkiLCJNMTUyLjggMzcuMmMtMzIuMiAzOC4xLTU2LjEgODIuNi02OS45IDEzMC41IDAgLjItLjEgLjMtLjEgLjUtMzkuMyAxNi4yLTY2LjggNTQuOC02Ni44IDk5LjggMCA1OS42IDQ4LjQgMTA4IDEwOCAxMDhzMTA4LTQ4LjQgMTA4LTEwOGMwLTUzLjUtMzguOS05Ny45LTkwLTEwNi41IDE1LjctNDEuOCA0MC40LTc5LjYgNzIuMy0xMTAuNyAxLjgtMS42IDQtMi42IDYuMy0zLjEgMzcuMi0xMS41IDc2LjctMTMuMyAxMTQuOC01LjIgMTE5LjMgMjUuMSAxOTguNiAxMzguMiAxODEuNyAyNTguOC04LjQgNjIuNi0zOC42IDExMi43LTg3LjcgMTUxLjQtNTAuMSAzOS43LTEwNy41IDU0LjMtMTcwLjIgNTIuMmwtMjQtMWMxMi40IDIuOCAyNSA0LjkgMzcuNiA2LjMgNDAuNyA0LjIgODEuNCAyLjEgMTIwLjEtMTIuNSA5NC0zNS41IDE0OS4zLTEwMi4zIDE2Mi45LTIwMi41IDQuOC01Mi42LTUuOC0xMDUuNC0zMC44LTE1Mi03MC40LTEzMS45LTIzNC4yLTE4MS42LTM2Ni0xMTEuMi0yLjQgMS40LTQuNSAzLjEtNi4zIDUuMmwuMSAwek0zMDkuNCA0MzMuOWMtMi4xIDExLjUtNC4yIDIxLjktMTQuNiAzMS4zIDUzLjItMSAxMjMuMi0yOS4yIDE2MS44LTk3LjEgMzkuNy02OS45IDM3LjYtMTM5LjktNi4zLTIwNy44LTM2LjUtNTUuMy04OS44LTgyLjQtMTU2LjYtODYuNiAxLjUgMi4zIDMuMiA0LjQgNS4yIDYuM2w1LjIgNi4zYzI1LjEgMzEuMyAzNy42IDY3LjkgNDIuOCAxMDcuNSAyLjEgMTUuNy0xIDMwLjMtMTMuNiA0MS44LTQuMiAzLjEtNS4yIDYuMy00LjIgMTAuNGw3LjMgMTcuNyAyOS4zIDU0LjNjNS4yIDExLjUgNC4yIDE5LjgtNi4zIDI4LjItMy4yIDIuNS02LjcgNC42LTEwLjQgNi4zbC0xOC44IDguNCAzLjEgMTMuNmMzLjEgNi4zIDEgMTIuNS0zLjEgMTcuNy0yLjUgMi40LTMuOCA1LjktMy4xIDkuNCAyLjEgMTEuNS0yLjEgMTkuOC0xMi41IDI1LjEtMi4xIDEtNC4yIDUuMi01LjIgNy4zbDAtLjF6bS0xMzMuNi0zLjFjMTYuNyAxMS41IDM0LjUgMjAuOSA1My4yIDI2LjEgMjQgNS4yIDQxLjgtNi4zIDQ0LjktMzAuMyAxLTguNCA1LjItMTQuNiAxMi41LTE3LjcgNy4zLTQuMiA4LjQtNy4zIDIuMS0xMy42bC05LjQtOC40IDEzLjYtNC4yYzYuMy0yLjEgNy4zLTUuMiA1LjItMTEuNS0xLjQtMy0yLjQtNi4yLTMuMS05LjQtMy4xLTE0LjYtMi4xLTE1LjcgMTEuNS0xOC44IDguNC0zLjEgMTUuNy02LjMgMjEuOS0xMi41IDMuMS0yLjEgMy4xLTQuMiAxLTguNGwtMTYuNy0zMC4zYy0xLTEuOS0yLjEtMy44LTMuMS01LjctNi40LTExLjctMTMtMjMuNi0xNS43LTM3LjEtMi4xLTkuNC0xLTE3LjcgOC40LTI0IDUuMi00LjIgOC40LTkuNCA4LjQtMTYuNy0uNC0xMC4xLTEuNS0yMC4zLTMuMS0zMC4zLTYuMy0zNy42LTIzLTY4LjktNTEuMi05NS01LjItNC4yLTkuNC02LjMtMTYuNy00LjJsLTM1LjYgMTIuNyA2IDMuNmM2LjMgMy43IDEyLjIgNy4zIDE3IDEyLjEgMzAuMyAyNi4xIDQxLjggNjEuNiA0NS45IDEwMC4yIDEgOC40IDAgMTYuNy03LjMgMjEuOS04LjQgNS4yLTEwLjQgMTIuNS03LjMgMjAuOSA0LjkgMTMuMiAxMC40IDI2IDE2LjcgMzguNkwyOTEuNiAzMThjLTYuMyA4LjQtMTMuNiAxMS41LTIxLjkgMTQuNi0xMi41IDMuMS0xNC42IDcuMy0xMC40IDIwLjkgLjYgMS41IDEuNCAyLjggMi4xIDQuMiAyLjEgNS4yIDEgOC40LTQuMiAxMC40bC0xMi41IDMuMSA1LjIgNC4yIDQuMiA0LjJjNC4yIDUuMiA0LjIgOC40LTIuMSAxMC40LTcuMyA0LjItMTEuNSA5LjQtMTEuNSAxNy43IDAgMTIuNS03LjMgMTkuOC0xOC44IDI0LTMuOCAxLTcuNiAxLjUtMTEuNSAxbC0zNC41LTIuMSAuMSAuMnoiXX0sJG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN1cHBsZSIsaWNvbjpbNjQwLDUxMixbXSwiZjNmOSIsIk02NDAgMjYyLjVjMCA2NC4xLTEwOSAxMTYuMS0yNDMuNSAxMTYuMS0yNC44IDAtNDguNi0xLjgtNzEuMS01IDcuNyAuNCAxNS41IC42IDIzLjQgLjYgMTM0LjUgMCAyNDMuNS01Ni45IDI0My41LTEyNy4xIDAtMjkuNC0xOS4xLTU2LjQtNTEuMi03OCA2MCAyMS4xIDk4LjkgNTUuMSA5OC45IDkzLjR6TTQ3LjcgMjI3LjljLS4xLTcwLjIgMTA4LjgtMTI3LjMgMjQzLjMtMTI3LjYgNy45IDAgMTUuNiAuMiAyMy4zIC41LTIyLjUtMy4yLTQ2LjMtNC45LTcxLTQuOS0xMzQuNSAuNC0yNDMuNCA1Mi42LTI0My4zIDExNi43IC4xIDM4LjMgMzkuMSA3Mi4zIDk5LjMgOTMuMy0zMi4zLTIxLjUtNTEuNS00OC42LTUxLjYtNzh6bTYwLjIgMzkuOVMxMTguNCAyODEgMTM3LjIgMjgxYzE3LjkgMCAyOC40LTExLjUgMjguNC0yNS4xIDAtMjgtNDAuMi0yNS4xLTQwLjItMzkuNyAwLTUuNCA1LjMtOS4xIDEyLjUtOS4xIDUuNyAwIDExLjMgMi42IDExLjMgNi42bDAgMy45IDE0LjIgMCAwLTcuOWMwLTEyLjEtMTUuNC0xNi44LTI1LjQtMTYuOC0xNi41IDAtMjguNSAxMC4yLTI4LjUgMjQuMSAwIDI2LjYgNDAuMiAyNS40IDQwLjIgMzkuOSAwIDYuNi01LjggMTAuMS0xMi4zIDEwLjEtMTEuOSAwLTIwLjctMTAuMS0yMC43LTEwLjFsLTguOCAxMC45em0xMjAuOC03My42bDAgNTQuNGMwIDExLjMtNy4xIDE3LjgtMTcuOCAxNy44cy0xNy44LTYuNS0xNy44LTE3LjdsMC01NC41LTE1LjggMCAwIDU1YzAgMTguOSAxMy40IDMxLjkgMzMuNyAzMS45IDIwLjEgMCAzMy40LTEzIDMzLjQtMzEuOWwwLTU1LTE1LjcgMHptMzQuNCA4NS40bDE1LjggMCAwLTI5LjUgMTUuNSAwYzE2IDAgMjcuMi0xMS41IDI3LjItMjguMXMtMTEuMi0yNy44LTI3LjItMjcuOGwtMzkuMSAwIDAgMTMuNCA3LjggMCAwIDcyem0xNS44LTQzbDAtMjkuMSAxMi45IDBjOC43IDAgMTMuNyA1LjcgMTMuNyAxNC40IDAgOC45LTUuMSAxNC43LTE0IDE0LjdsLTEyLjYgMHptNTcgNDNsMTUuOCAwIDAtMjkuNSAxNS41IDBjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44bC0zOS4xIDAgMCAxMy40IDcuOCAwIDAgNzJ6bTE1LjctNDNsMC0yOS4xIDEyLjkgMGM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNSAxNC43LTE0IDE0LjdsLTEyLjYgMHptNTcuMSAzNC44YzAgNS44IDIuNCA4LjIgOC4yIDguMmwzNy42IDBjNS44IDAgOC4yLTIuNCA4LjItOC4ybDAtMTMtMTQuMyAwIDAgNS4yYzAgMS43LTEgMi42LTIuNiAyLjZsLTE4LjYgMGMtMS43IDAtMi42LTEtMi42LTIuNmwwLTYxLjJjMC01LjctMi40LTguMi04LjItOC4ybC0xNS40IDAgMCAxMy40IDUuMiAwYzEuNyAwIDIuNiAxIDIuNiAyLjZsMCA2MS4yLS4xIDB6bTYzLjQgMGMwIDUuOCAyLjQgOC4yIDguMiA4LjJsMzguNyAwYzUuNyAwIDguMi0yLjQgOC4yLTguMmwwLTEzLTE0LjMgMCAwIDUuMmMwIDEuNy0xIDIuNi0yLjYgMi42bC0xOS43IDBjLTEuNyAwLTIuNi0xLTIuNi0yLjZsMC0yMC4zIDI3LjcgMCAwLTEzLjQtMjcuNyAwIDAtMjIuNCAxOS4yIDBjMS43IDAgMi42IDEgMi42IDIuNmwwIDUuMiAxNC4yIDAgMC0xM2MwLTUuNy0yLjUtOC4yLTguMi04LjJsLTUxLjYgMCAwIDEzLjQgNy44IDAgMCA2My45IC4xIDB6bTU4LjktNzZsMCA1LjkgMS42IDAgMC01LjkgMi43IDAgMC0xLjItNyAwIDAgMS4yIDIuNyAwem01LjctMS4ybDAgNy4xIDEuNSAwIDAtNS43IDIuMyA1LjcgMS4zIDAgMi4zLTUuNyAwIDUuNyAxLjUgMCAwLTcuMS0yLjMgMC0yLjEgNS4xLTIuMS01LjEtMi40IDB6Il19LFZhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtdHdpdHRlciIsaWNvbjpbNDQ4LDUxMixbInR3aXR0ZXItc3F1YXJlIl0sImYwODEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzUxLjMgMTk5LjNjMCA4Ni43LTY2IDE4Ni42LTE4Ni42IDE4Ni42LTM3LjIgMC03MS43LTEwLjgtMTAwLjctMjkuNCA1LjMgLjYgMTAuNCAuOCAxNS44IC44IDMwLjcgMCA1OC45LTEwLjQgODEuNC0yOC0yOC44LS42LTUzLTE5LjUtNjEuMy00NS41IDEwLjEgMS41IDE5LjIgMS41IDI5LjYtMS4yLTMwLTYuMS01Mi41LTMyLjUtNTIuNS02NC40bDAtLjhjOC43IDQuOSAxOC45IDcuOSAyOS42IDguMy05LTYtMTYuNC0xNC4xLTIxLjUtMjMuNnMtNy44LTIwLjItNy43LTMxYzAtMTIuMiAzLjItMjMuNCA4LjktMzMuMSAzMi4zIDM5LjggODAuOCA2NS44IDEzNS4yIDY4LjYtOS4zLTQ0LjUgMjQtODAuNiA2NC04MC42IDE4LjkgMCAzNS45IDcuOSA0Ny45IDIwLjcgMTQuOC0yLjggMjktOC4zIDQxLjYtMTUuOC00LjkgMTUuMi0xNS4yIDI4LTI4LjggMzYuMSAxMy4yLTEuNCAyNi01LjEgMzcuOC0xMC4yLTguOSAxMy4xLTIwLjEgMjQuNy0zMi45IDM0IC4yIDIuOCAuMiA1LjcgLjIgOC41eiJdfSxJbnQ9VmFlLFBudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aW0iLGljb246WzUxMiw1MTIsW10sImU4OGEiLCJNMzAzLjMgNTQuNWwwLTEyLjMgNC0zLjcgNy45LTcuMiAzLjUtMy4yIDE2OCAwIDE1LjEgMTUuMSAwIDM4LjktMy41IDMuNi04MC45IDgyLjkgODYuOSA4Ni45LTkxLjIgOTEuMiA4LjkgMCA3LjYtOC4zIDEtLjljMS4xLS44IDIuNS0xLjIgMy45LTEuMmwyOC45IDAgMS41IC4yYzEuNSAuNCAyLjggMS4yIDMuOCAyLjVsNy42IDEwLjJjMS4zIDEuNyAxLjYgMy45IDEgNS45bC0yMi4zIDcyLjUgMS4yIDBjMi4yIDAgNC4yIDEuMSA1LjUgMi45czEuNSA0LjEgLjcgNi4xTDQ1OSA0NDVjLTEgMi42LTMuNCA0LjItNi4yIDQuMmwtNDAuNCAwYy0yLjEgMC00LjEtMS01LjMtMi43cy0xLjYtMy45LTEtNS45bDIwLTYzLjItMjIuMiAwLTE2LjIgNTAuN2MyLjEgLjEgNC4xIDEuMSA1LjMgMi45IDEuMiAxLjggMS40IDQuMiAuNiA2LjJsLTMuMyA3LjljLTEgMi41LTMuNSA0LjEtNi4xIDQuMWwtMzYuOCAwYy0yLjEgMC00LjEtMS01LjQtMi43cy0xLjYtMy45LTEtNS45bDEwLTMyLjEtMjMuOSAyMy44Yy4zIDEuMiAuMyAyLjUtLjEgMy44bC0yLjkgOC42Yy0uOSAyLjctMy40IDQuNS02LjMgNC41bC03LjQgMC01NC42IDU0LjYtODMuOC04My44LTMxLjYgMzIuNS0zLjYgMy43LTQ5LjIgMC0yLjgtMS43Yy04LjgtNS4xLTE0LjgtOC41LTE3LjktMTAuM2wwLTEyOS4zLTU4LjUtNTguNSAyLjYtMi42IDU1LjktNTYgMC05OS40LTEyLjYgMC0xMC44LTEwLjgtMy42LTMuNiAwLTQwLjcgMy4yLTMuNSA3LjktOC41IDMuNy0zLjkgMTY2LjYgMCA4IDggMjcuNC0yNy40IDQ2LjQgNDYuNHptLTI1MS01LjZsMCAzMC4zIDkuNCA3LjggMTguOSAwIDAgMzQ3LjkgMTEuNCAxMC4zIDM4LjIgMCA5MS05M2MwLS40IC4xLS44IC4yLTEuMWwyLjYtMTAuNWMuNy0yLjkgMy40LTUgNi40LTVsNy4xIDAgMTUuNS0xNS45LTItMmMtMS44LTEuOC0yLjQtNC41LTEuNS02LjlsNi45LTE5LjNjLjQtMS4xIDEuMS0yIDEuOS0yLjhsNi45LTUuOWMxLjItMSAyLjgtMS42IDQuMy0xLjZsMTkuNyAwIDEuMyAuMmMuMSAwIC4xIC4xIC4yIC4xbDE5OS4yLTIwMy41IDAtMjguNy04LjItNy40LTE1Ni4yIDAtNy44IDcuOCAwIDMwLjUgOC4yIDcuNCAyMSAwLTE0NyAxNDYuNCAwLTE0Ni42IDE2LjkgMCA4LjctOC43IDAtMjcuNy03LjQtOS45LTE1Ny42IDAtOCA4ek0yMjcuNiAzNTIuN2wxNC44IDAtMzEuOCA5MC45IDQ1LjMgMCAzLTkuNi0xMi41IDAgMzEuNS05MS45LTQ3LjYgMC0yLjYgMTAuNXptMTM2LjkgMWwtMTYuNCAwLTEwLjUtMTAuOC0zNS44IDAtMy4zIDkuOCAxMS44IDAtMzAuNSA4OS45IDM4LjEgMCAyLjktOC42LTguOCAwIDIwLTYzIDM3LjggMC0yMi4zIDcxLjYgMzYuOCAwIDMuMy03LjktOC44IDAgMjAuMy02NCAzNi4xIDAtMjIuNyA3MS45IDQwLjQgMCAzLjMtOC42LTEwLjIgMCAyNS04MS4xLTcuNS0xMC4yLTI4LjkgMC05LjUgMTAuNS0xNy40IDAtOS45LTEwLjgtMjMuMyAwLTkuOCAxMS4yek0yNjIuNSAyOTMuNmwtNi45IDE5LjMgNS4zIDUuMyAyMS4zIDAgNS42LTUuNiA1LjktMjAuMy00LjYtNC42LTE5LjcgMC02LjkgNS45eiJdfSwkQT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnoiXX0sTm50PSRBLEZudD0kQSxVYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2lyc2luZGhhbmR3ZXJrIixpY29uOls0NDgsNTEyLFsid3NoIl0sImUyZDAiLCJNMTguOSA0NzkuOGw4My40IDAgMC0xMTItODMuNCA0NyAwIDY1em0zMjkgMGw4Mi40IDAgMC02NS04Mi40LTQ3IDAgMTEyem0wLTQ0OGwwIDIxOS44LTEyMy42LTcyLjQtMTIxLjcgNzIuNCAwLTIxOS44LTgzLjcgMCAwIDM2MC44IDIwNS40LTEyMi4zIDIwNiAxMjIuMyAwLTM2MC44LTgyLjMgMHoiXX0sT250PVVhZSxSbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiem9vbSIsaWNvbjpbNjQwLDUxMixbXSwiZTg3YiIsIk0xMzQuMiAzMjYuNmwtMTE0LjQgMGMtOCAwLTE1LjItNC44LTE4LjMtMTIuMlMuMSAyOTguNiA1LjggMjkyLjlsNzkuMy03OS4zLTU2LjggMEMxMi43IDIxMy42IDAgMjAxIDAgMTg1LjRsMTA1LjUgMGM4IDAgMTUuMiA0LjggMTguMyAxMi4yczEuNCAxNS45LTQuMyAyMS42bC03OS4zIDc5LjMgNjUuNyAwYzE1LjYgMCAyOC4zIDEyLjYgMjguMyAyOC4zek02NDAgMjM4LjNjMC0zMC40LTI0LjctNTUuMS01NS4xLTU1LjEtMTYuMiAwLTMwLjkgNy4xLTQxIDE4LjMtMTAuMS0xMS4yLTI0LjctMTguMy00MS0xOC4zLTMwLjQgMC01NS4xIDI0LjctNTUuMSA1NS4xbDAgODguM2MxNS42IDAgMjguMy0xMi43IDI4LjMtMjguM2wwLTYwYzAtMTQuOCAxMi0yNi44IDI2LjgtMjYuOHMyNi44IDEyIDI2LjggMjYuOGwwIDYwYzAgMTUuNiAxMi42IDI4LjMgMjguMyAyOC4zbDAtODguM2MwLTE0LjggMTItMjYuOCAyNi44LTI2LjhzMjYuOCAxMiAyNi44IDI2LjhsMCA2MGMwIDE1LjYgMTIuNiAyOC4zIDI4LjMgMjguM2wwLTg4LjN6TTI4OC4yIDI1NmE3Mi44IDcyLjggMCAxIDEgMTQ1LjUgMCA3Mi44IDcyLjggMCAxIDEgLTE0NS41IDB6bTExNy4zIDBhNDQuNSA0NC41IDAgMSAwIC04OSAwIDQ0LjUgNDQuNSAwIDEgMCA4OSAwem0tMjc0LjEgMGE3Mi44IDcyLjggMCAxIDEgMTQ1LjUgMCA3Mi44IDcyLjggMCAxIDEgLTE0NS41IDB6bTExNy4zIDBhNDQuNSA0NC41IDAgMSAwIC04OSAwIDQ0LjUgNDQuNSAwIDEgMCA4OSAweiJdfSxCbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY29uZmx1ZW5jZSIsaWNvbjpbNTEyLDUxMixbXSwiZjc4ZCIsIk0yLjggNDEyLjJjLTQuNSA3LjYtMi4xIDE3LjUgNS41IDIyLjJsMTA1LjkgNjUuMmM3LjcgNC43IDE3LjcgMi40IDIyLjQtNS4zIDAtLjEgLjEtLjIgLjEtLjIgNjcuMS0xMTIuMiA4MC41LTk1LjkgMjgwLjktLjcgOC4xIDMuOSAxNy44IC40IDIxLjctNy43IC4xLS4xIC4xLS4zIC4yLS40bDUwLjQtMTE0LjFjMy42LTguMS0uMS0xNy42LTguMS0yMS4zLTIyLjItMTAuNC02Ni4yLTMxLjItMTA1LjktNTAuMy0yNDcuOS0xMjAuNi0zMzAuOCA0NS43LTM3My4xIDExMi42ek01MTAuMiAxMDAuMWM0LjUtNy42IDIuMS0xNy41LTUuNS0yMi4yTDM5OC45IDEyLjhjLTcuNS01LTE3LjYtMy4xLTIyLjYgNC40LS4yIC4zLS40IC42LS42IDEtNjcuMyAxMTIuNi04MS4xIDk1LjYtMjgwLjYgLjktOC4xLTMuOS0xNy44LS40LTIxLjcgNy43LS4xIC4xLS4xIC4zLS4yIC40TDIyLjcgMTQxLjNjLTMuNiA4LjEgLjEgMTcuNiA4LjEgMjEuMyAyMi4yIDEwLjQgNjYuMyAzMS4yIDEwNiA1MC40IDI0OCAxMjAgMzMwLjgtNDUuNCAzNzMuNC0xMTIuOXoiXX0sSG50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRpZ2ciLGljb246WzUxMiw1MTIsW10sImYxYTYiLCJNODEuNyAxNzIuM2wtODEuNyAwIDAgMTc0LjQgMTMyLjcgMCAwLTI1MC43LTUxIDAgMCA3Ni4zem0wIDEzMy40bC0zMC44IDAgMC05Mi4zIDMwLjggMCAwIDkyLjN6TTM3OC45IDE3Mi4zbDAgMTc0LjQgODEuOCAwIDAgMjguNS04MS44IDAgMCA0MC44IDEzMy4xIDAgMC0yNDMuNy0xMzMuMSAwem04MS44IDEzMy40bC0zMC44IDAgMC05Mi4zIDMwLjggMCAwIDkyLjN6bS0yMzUuNiA0MWw4Mi4xIDAgMCAyOC41LTgyLjEgMCAwIDQwLjggMTMzLjMgMCAwLTI0My43LTEzMy4zIDAgMCAxNzQuNHptNTEuMi0xMzMuM2wzMC44IDAgMCA5Mi4zLTMwLjggMCAwLTkyLjN6TTE1My4zIDk2bDUxLjMgMCAwIDUxLTUxLjMgMCAwLTUxem0wIDc2LjNsNTEuMyAwIDAgMTc0LjQtNTEuMyAwIDAtMTc0LjR6Il19LHFudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJlNjE4IiwiTTMzMS41IDIzNS43YzIuMiAuOSA0LjIgMS45IDYuMyAyLjggMjkuMiAxNC4xIDUwLjYgMzUuMiA2MS44IDYxLjQgMTUuNyAzNi41IDE3LjIgOTUuOC0zMC4zIDE0My4yLTM2LjIgMzYuMi04MC4zIDUyLjUtMTQyLjYgNTNsLS4zIDBjLTcwLjItLjUtMTI0LjEtMjQuMS0xNjAuNC03MC4yLTMyLjMtNDEtNDguOS05OC4xLTQ5LjUtMTY5LjZsMC0uNUMxNyAxODQuMyAzMy42IDEyNy4yIDY1LjkgODYuMiAxMDIuMiA0MC4xIDE1Ni4yIDE2LjUgMjI2LjQgMTZsLjMgMGM3MC4zIC41IDEyNC45IDI0IDE2Mi4zIDY5LjkgMTguNCAyMi43IDMyIDUwIDQwLjYgODEuN2wtNDAuNCAxMC44Yy03LjEtMjUuOC0xNy44LTQ3LjgtMzIuMi02NS40LTI5LjItMzUuOC03My01NC4yLTEzMC41LTU0LjYtNTcgLjUtMTAwLjEgMTguOC0xMjguMiA1NC40LTI2LjIgMzMuMy0zOS44IDgxLjUtNDAuMyAxNDMuMiAuNSA2MS43IDE0LjEgMTA5LjkgNDAuMyAxNDMuMyAyOCAzNS42IDcxLjIgNTMuOSAxMjguMiA1NC40IDUxLjQtLjQgODUuNC0xMi42IDExMy43LTQwLjkgMzIuMy0zMi4yIDMxLjctNzEuOCAyMS40LTk1LjktNi4xLTE0LjItMTcuMS0yNi0zMS45LTM0LjktMy43IDI2LjktMTEuOCA0OC4zLTI0LjcgNjQuOC0xNy4xIDIxLjgtNDEuNCAzMy42LTcyLjcgMzUuMy0yMy42IDEuMy00Ni4zLTQuNC02My45LTE2LTIwLjgtMTMuOC0zMy0zNC44LTM0LjMtNTkuMy0yLjUtNDguMyAzNS43LTgzIDk1LjItODYuNCAyMS4xLTEuMiA0MC45LS4zIDU5LjIgMi44LTIuNC0xNC44LTcuMy0yNi42LTE0LjYtMzUuMi0xMC0xMS43LTI1LjYtMTcuNy00Ni4yLTE3LjhsLS43IDBjLTE2LjYgMC0zOSA0LjYtNTMuMyAyNi4zbC0zNC40LTIzLjZjMTkuMi0yOS4xIDUwLjMtNDUuMSA4Ny44LTQ1LjFsLjggMGM2Mi42IC40IDk5LjkgMzkuNSAxMDMuNyAxMDcuN2wtLjIgLjIgLjEgMHptLTE1NiA2OC44YzEuMyAyNS4xIDI4LjQgMzYuOCA1NC42IDM1LjMgMjUuNi0xLjQgNTQuNi0xMS40IDU5LjUtNzMuMi0xMy4yLTIuOS0yNy44LTQuNC00My40LTQuNC00LjggMC05LjYgLjEtMTQuNCAuNC00Mi45IDIuNC01Ny4yIDIzLjItNTYuMiA0MS44bC0uMSAuMXoiXX0sV2FlPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndwcmVzc3IiLGljb246WzUxMiw1MTIsWyJyZW5kYWN0Il0sImYzZTQiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MjcuMyAxNjYuNmMtMTUuMiAzNC41LTMwLjQgNjktNDUuNiAxMDMuNS0yLjQgNS41LTYuOSA4LjItMTMgOC4yLTIzIDAtNDYgLjEtNjkgMC01LjEgMC04LjIgMS45LTEwLjMgNi43LTEwLjIgMjMuNi0yMC42IDQ3LTMxIDcwLjUtMS41IDMuNS00LjEgNS4zLTcuOSA1LjMtNDUuOSAwLTkxLjkgMC0xMzcuOCAwLTMuMSAwLTUuNi0xLjEtNy43LTMuNC0xMS4yLTEyLjMtMjIuNS0yNC42LTMzLjctMzYuOS0yLjctMy0yLjgtNi4yLTEuMi05LjcgOC43LTE5LjUgMTcuMy0zOS4xIDI1LjktNTguNyAxMi45LTI5LjQgMjUuOS01OC43IDM4LjctODguMSAxLjctMy45IDQuMy01LjcgOC41LTUuNyAxNC4yIC4xIDI4LjUgMCA0Mi43IDAgNi4yIDAgOS4yIDQuOCA2LjcgMTAuNi0xMy42IDMwLjgtMjcuMiA2MS42LTQwLjcgOTIuMy01LjcgMTMtMTEuNCAyNi0xNy4xIDM5LTMuOSA5IDcuMSAxMiAxMSA1LjYgLjItLjQtMS40IDQuMiAzMC02Ny43IDEuNC0zLjEgMy40LTQuNCA2LjgtNC40IDE1LjIgLjEgMzAuNCAwIDQ1LjYgMCA1LjYgMCA3LjkgMy42IDUuNyA4LjctOC4zIDE5LTE2LjcgMzcuOS0yNSA1Ni45LTUgMTEuNCA4LjEgMTIuNSAxMS4zIDUuMyAwLS4xIDI3LjktNjMuMyAzMi4yLTczLjIgMi00LjYgNS40LTYuNSAxMC4zLTYuNSAyNi40IC4xIDUyLjkgMCA3OS4zIDAgMTIuNCAwIDEzLjktMTMuNiAzLjktMTMuNi0yNS4zIDAtNTAuNSAwLTc1LjggMC02LjMgMC03LjgtMi41LTUuMy04LjMgNS44LTEzLjEgMTEuNi0yNi4xIDE3LjMtMzkuMiAxLjctNCA0LjUtNS44IDguOC01LjggMjMuMSAuMSAyNiAwIDEzMC44IDAgNi4xIDAgOCAyLjggNS42IDguM3oiXX0sam50PVdhZSxWbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToieW9hc3QiLGljb246WzQ0OCw1MTIsW10sImYyYjEiLCJNOTEuMyA3NmwxODYgMC03IDE4LjktMTc5IDBjLTM5LjcgMC03MS45IDMxLjYtNzEuOSA3MC4zbDAgMjA1LjRjMCAzNS40IDI0LjkgNzAuMyA4NCA3MC4zbDAgMTkuMS0xMi4xIDBDNDEuMiA0NjAgMCA0MTkuOCAwIDM3MC41TDAgMTY1LjJDMCAxMTUuOSA0MC43IDc2IDkxLjMgNzZ6TTMyMC40IDIwbDY2LjUgMGMtMTQzLjggMzc4LjEtMTQ1LjcgMzk4LjktMTg0LjcgNDM5LjMtMjAuOCAyMS42LTQ5LjMgMzEuNy03OC4zIDMyLjdsMC01MS4xYzQ5LjItNy43IDY0LjYtNDkuOSA2NC42LTc1LjMgMC0yMC4xIC42LTEyLjYtODIuMS0yMjMuMmw2MS40IDAgNTAuNCAxNTYuNiAxMDIuMi0yNzl6TTQ0OCAxNjEuNWwwIDI5OC41LTIxNCAwYzYuNi05LjYgMTAuNy0xNi4zIDEyLjEtMTkuNGwxODIuNSAwIDAtMjc5LjFjMC0zMi41LTE3LjEtNTEuOS00OC4yLTYyLjlMMzg3LjEgODFjNDEuNyAxMy42IDYwLjkgNDMuMSA2MC45IDgwLjV6Il19LFVudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuaW1ibHIiLGljb246WzM4NCw1MTIsW10sImY1YTgiLCJNMjQ2LjYgMzUzLjNhMjcgMjcgMCAxIDEgMC01NCAyNyAyNyAwIDEgMSAwIDU0em0tNzkuNC0yN2EyNy4xIDI3LjEgMCAxIDEgLTU0LjMgMCAyNy4xIDI3LjEgMCAxIDEgNTQuMyAwek0xOTEuOCAxNTlDMTU3IDE1OSA4OS40IDE3OC44IDU5LjIgMjI3TDE0IDAgMTQgMzM1LjVDMTQgNDMzLjEgOTMuNiA1MTIgMTkxLjggNTEyUzM2OS41IDQzMyAzNjkuNSAzMzUuNSAyOTAuMSAxNTkgMTkxLjggMTU5em0wIDMwOC4xYy03My4zIDAtMTMyLjUtNTguOS0xMzIuNS0xMzEuNnM1OS4yLTEzMS42IDEzMi41LTEzMS42IDEzMi41IDU4LjkgMTMyLjUgMTMxLjUtNTkuMyAxMzEuNi0xMzIuNSAxMzEuNmwwIC4xeiJdfSxXbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGl4ZWxmZWQiLGljb246WzUxMiw1MTIsW10sImU3ZGIiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyek0yMzUuNyAzMTEuOWw0NyAwYzQ0LjIgMCA4MC4xLTM0LjkgODAuMS03OHMtMzUuOS03OC04MC4xLTc4bC02Ny44IDBjLTI1LjUgMC00Ni4yIDIwLjEtNDYuMiA0NWwwIDE3NS4xIDY3LTY0LjF6Il19LEdudD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5YWhvbyIsaWNvbjpbNTEyLDUxMixbXSwiZjE5ZSIsIk0yMjMuOCAxNDEuMWwtNTYuNyAxNDMuMi01Ni0xNDMuMi05Ni4xIDAgMTA1LjggMjQ5LjEtMzguNiA4OS44IDk0LjIgMCAxNDAuOS0zMzguOS05My42IDB6TTMyOS4yIDI3Ni45YTU4LjIgNTguMiAwIDEgMCAwIDExNi40IDU4LjIgNTguMiAwIDEgMCAwLTExNi40ek0zOTQuNyAzMmwtOTMgMjIzLjUgMTA0LjggMCA5Mi42LTIyMy41LTEwNC40IDB6Il19LFludD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVlc2t5IixpY29uOls1NzYsNTEyLFtdLCJlNjcxIiwiTTQwNy44IDI5NC43Yy0zLjMtLjQtNi43LS44LTEwLTEuMyAzLjQgLjQgNi43IC45IDEwIDEuM3pNMjg4IDIyNy4xQzI2MS45IDE3Ni40IDE5MC45IDgxLjkgMTI0LjkgMzUuMyA2MS42LTkuNCAzNy41LTEuNyAyMS42IDUuNSAzLjMgMTMuOCAwIDQxLjkgMCA1OC40UzkuMSAxOTQgMTUgMjEzLjljMTkuNSA2NS43IDg5LjEgODcuOSAxNTMuMiA4MC43IDMuMy0uNSA2LjYtLjkgMTAtMS40LTMuMyAuNS02LjYgMS0xMCAxLjQtOTMuOSAxNC0xNzcuMyA0OC4yLTY3LjkgMTY5LjkgMTIwLjMgMTI0LjYgMTY0LjgtMjYuNyAxODcuNy0xMDMuNCAyMi45IDc2LjcgNDkuMiAyMjIuNSAxODUuNiAxMDMuNCAxMDIuNC0xMDMuNCAyOC4xLTE1Ni02NS44LTE2OS45LTMuMy0uNC02LjctLjgtMTAtMS4zIDMuNCAuNCA2LjcgLjkgMTAgMS4zIDY0LjEgNy4xIDEzMy42LTE1LjEgMTUzLjItODAuNyA1LjktMTkuOSAxNS0xMzguOSAxNS0xNTUuNXMtMy4zLTQ0LjctMjEuNi01Mi45Yy0xNS44LTcuMS00MC0xNC45LTEwMy4yIDI5LjgtNjYuMSA0Ni42LTEzNy4xIDE0MS4xLTE2My4yIDE5MS44eiJdfSxabnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2NyaWJkIixpY29uOlszODQsNTEyLFtdLCJmMjhhIiwiTTQyLjYgMjUyLjdjLTE2LjEtMTktMjQuNy00NS45LTI0LjgtNzkuOSAwLTEwMC40IDc1LjItMTUzLjEgMTY3LjItMTUzLjEgOTguNi0xLjYgMTU2LjggNDkgMTg0LjMgNzAuNmwtNTAuNSA3Mi4xLTM3LjMtMjQuNiAyNi45LTM4LjZjLTM2LjUtMjQtNzkuNC0zNi41LTEyMy0zNS44LTUwLjctLjgtMTExLjcgMjcuMi0xMTEuNyA3Ni4yIDAgMTguNyAxMS4yIDIwLjcgMjguNiAxNS42IDIzLjMtNS4zIDQxLjkgLjYgNTUuOCAxNCAyNi40IDI0LjMgMjMuMiA2Ny42LS43IDkxLjktMjkuMiAyOS41LTg1LjIgMjcuMy0xMTQuOC04LjR6bTMxNy43IDUuOWMtMTUuNS0xOC44LTM4LjktMjkuNC02My4yLTI4LjYtMzguMS0yLTcxLjEgMjgtNzAuNSA2Ny4yLS43IDE2LjggNiAzMyAxOC40IDQ0LjMgMTQuMSAxMy45IDMzIDE5LjcgNTYuMyAxNC40IDE3LjQtNS4xIDI4LjYtMy4xIDI4LjYgMTUuNiAwIDQuMy0uNSA4LjUtMS40IDEyLjctMTYuNyA0MC45LTU5LjUgNjQuNC0xMjEuNCA2NC40LTUxLjkgLjItMTAyLjQtMTYuNC0xNDQuMS00Ny4zbDMzLjctMzkuNC0zNS42LTI3LjQtNjAuOCA3MS44IDE1LjQgMTMuOGM1Mi41IDQ2LjggMTIwLjQgNzIuNSAxOTAuNyA3Mi4yIDUxLjQgMCA5NC40LTEwLjUgMTMzLjYtNDQuMSA1Ny4xLTUxLjQgNTQuMi0xNDkuMiAyMC4zLTE4OS42eiJdfSxYbnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1wZCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlYyIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgNDQ5LjVjLTEzOS4yIDAtMjM1LjgtMTM4LTE5MC4yLTI2Ny45bDc4LjggMzUuMWMtMi4xIDEwLjUtMy4zIDIxLjUtMy4zIDMyLjkgMCA5OSA3My45IDEyNi45IDEyMC40IDEyNi45IDIyLjkgMCA1My41LTYuNyA3OS40LTI5LjVMMzA1IDMxMS4xYy01LjUgNi4zLTE3LjYgMTYuNy0zNi4zIDE2LjctMzcuOCAwLTUzLjctMzkuOS01My45LTcxLjkgMjMwLjQgMTAyLjYgMjE2LjUgOTYuNSAyMTcuOSA5Ni44LTM0LjMgNjIuNC0xMDAuNiAxMDQuOC0xNzYuNyAxMDQuOHptMTk0LjItMTUwbC0yMjQtMTAwYzE4LjgtMzQgNTQuOS0zMC43IDc0LjctMTFsNDAuNC00MS42Yy0yNy4xLTIzLjMtNTgtMjcuNS03OC4xLTI3LjUtNDcuNCAwLTgwLjkgMjAuNS0xMDAuNyA1MS42TDg3LjYgMTQ1LjZjMzYuMS01NC45IDk4LjEtOTEuMiAxNjguNS05MS4yIDExMS4xIDAgMjAxLjUgOTAuNCAyMDEuNSAyMDEuNSAwIDE4LTIuNCAzNS40LTYuOCA1Mi0uMy0uMS0uNC0uMi0uNi0uNHoiXX0sUW50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVhcmx5YmlyZHMiLGljb246WzUxMiw1MTIsW10sImYzOWEiLCJNMzI5LjMgNDcuNWMxLjItMTMgMjEuMy0xNCAzNi42LTguNyAuOSAuMyAyNi4yIDkuNyAxOSAxNS4yLTI3LjktNy40LTU2LjQgMTguMi01NS42LTYuNXptLTIwMSA2LjljMzAuNy04LjEgNjIgMjAgNjEuMS03LjEtMS4zLTE0LjItMjMuNC0xNS4zLTQwLjItOS42LTEgLjMtMjguNyAxMC41LTIwLjkgMTYuN3pNMzM1LjUgMTYwYTE2IDE2IDAgMSAwIDAgMzIgMTYgMTYgMCAxIDAgMC0zMnptLTE1OS43IDBhMTYgMTYgMCAxIDAgMCAzMiAxNiAxNiAwIDEgMCAwLTMyek00OTQuMyAzMjMuMmMtOS45IDI0LTQwLjcgMTEtNjMuOS0xLjItMTMuNSA2OS4xLTU4LjEgMTExLjQtMTI2LjMgMTI0LjIgLjMgLjktMi0uMSAyNCAxIDMzLjYgMS40IDYzLjgtMy4xIDk3LjQtOC0xOS44LTEzLjgtMTEuNC0zNy4xLTkuOC0zOC4xIDEuNC0uOSAxNC43IDEuNyAyMS42IDExLjUgOC42LTEyLjUgMjguNC0xNC44IDMwLjItMTMuNiAxLjYgMS4xIDYuNiAyMC45LTYuOSAzNC42IDQuNy0uOSA4LjItMS42IDkuOC0yLjEgMi42LS44IDE3LjcgMTEuMyAzLjEgMTMuMy0xNC4zIDIuMy0yMi42IDUuMS00Ny4xIDEwLjgtNDUuOSAxMC43LTg1LjkgMTEuOC0xMTcuNyAxMi44bDEgMTEuNmMzLjggMTguMS0yMy40IDI0LjMtMjcuNiA2LjIgLjggMTcuOS0yNy4xIDIxLjgtMjguNC0xbC0uNSA1LjNjLS43IDE4LjQtMjguNCAxNy45LTI4LjMtLjYtNy41IDEzLjUtMjguMSA2LjgtMjYuNC04LjVsMS4yLTEyLjRjLTM2LjcgLjktNTkuNyAzLjEtNjEuOCAzLjEtMjAuOSAwLTIwLjktMzEuNiAwLTMxLjYgMi40IDAgMjcuNyAxLjMgNjMuMiAyLjgtNjEuMS0xNS41LTEwMy43LTU1LTExNC45LTExOC4yLTI1IDEyLjgtNTcuNSAyNi44LTY4LjIgLjgtMTAuNS0yNS40IDIxLjUtNDIuNiA2Ni44LTczLjQgLjctNi42IDEuNi0xMy4zIDIuNy0xOS44LTE0LjQtMTkuNi0xMS42LTM2LjMtMTYuMS02MC40LTE2LjggMi40LTIzLjItOS4xLTIzLjYtMjMuMSAuMy03LjMgMi4xLTE0LjkgMi40LTE1LjQgMS4xLTEuOCAxMC4xLTIgMTIuNy0yLjYgNi0zMS43IDUwLjYtMzMuMiA5MC45LTM0LjUgMTkuNy0yMS44IDQ1LjItNDEuNSA4MC45LTQ4LjMtMTUuMy0xOS40LTMuNC0zOS45LTIuNC00MC40IDEuNy0uOCAyMS4yIDQuMyAyNi4zIDIzLjIgNS4yLTguOCAxOC4zLTExLjQgMTkuNi0xMC43IDEuMSAuNiA2LjQgMTUtNC45IDI1LjkgNDAuMyAzLjUgNzIuMiAyNC43IDk2IDUwLjcgMzYuMSAxLjUgNzEuOCA1LjkgNzcuMSAzNCAyLjcgLjYgMTEuNiAuOCAxMi43IDIuNiAuMyAuNSAyLjEgOC4xIDIuNCAxNS40LS41IDEzLjktNi44IDI1LjQtMjMuNiAyMy4xLTMuMiAxNy4zLTIuNyAzMi45LTguNyA0Ny43IDIuNCAxMS43IDQgMjMuOCA0LjggMzYuNCAzNyAyNS40IDcwLjMgNDIuNSA2MC4zIDY2Ljl6TTIyMy41IDE1OS45Yy45LTQ0LTM3LjktNDIuMi03OC42LTQwLjMtMjEuNyAxLTM4LjkgMS45LTQ1LjUgMTMuOS0xMS40IDIwLjkgNS45IDkyLjkgMjMuMiAxMDEuMiA5LjggNC43IDczLjQgNy45IDg2LjMtNy4xIDguMi05LjQgMTUtNDkuNCAxNC42LTY3Ljd6bTUyIDU4LjNjLTQuMy0xMi40LTYtMzAuMS0xNS4zLTMyLjctMi0uNS05LS41LTExIDAtMTAgMi44LTEwLjggMjIuMS0xNyAzNy4yIDE1LjQgMCAxOS4zIDkuNyAyMy43IDkuNyA0LjMgMCA2LjMtMTEuMyAxOS42LTE0LjJ6bTEzNS43LTg0LjdjLTYuNi0xMi4xLTI0LjgtMTIuOS00Ni41LTEzLjktNDAuMi0xLjktNzguMi0zLjgtNzcuMyA0MC4zLS41IDE4LjMgNSA1OC4zIDEzLjIgNjcuOCAxMyAxNC45IDc2LjYgMTEuOCA4Ni4zIDcuMSAxNS44LTcuNiAzNi41LTc4LjkgMjQuMy0xMDEuM3oiXX0sSm50PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN5bWZvbnljYXN0cyIsaWNvbjpbNTc2LDUxMixbXSwiZThhYiIsIk0yOTMuOCAzNDIuNWMzLjQtMS41IDYuOC0xLjUgMTAuMiAwbDU0LjIgMjIuNmMyLjYgLjkgNC43IDIuNiA2LjIgNC44czIuMyA0LjggMi4zIDcuNmMwIDE5LjQtMy42IDM3LjItMTAuNyA1My40LTYuMiAxMy42LTE0LjUgMjUuNC0yNC44IDM1LjYtOC43IDguNS0xNy43IDE0LjYtMjcuMSAxOC40LTMuNCAxLjUtNi44IDEuNS0xMC4yIDAtMTAuNy00LjMtMjAuNi0xMS4zLTI5LjctMjAuOS0xMC0xMC40LTE3LjgtMjIuNS0yMy41LTM2LjQtNi40LTE1LjYtOS42LTMyLjMtOS42LTUwIDAtMi44IC43LTUuNCAyLjItNy42IDEuNS0yLjMgMy42LTMuOSA2LjItNC44bDU0LjItMjIuNnpNNDc5LjcgNDgzLjhhNzAuMSA3MC4xIDAgMSAxIDAtMTQwLjIgNzAuMSA3MC4xIDAgMSAxIDAgMTQwLjJ6TTI0NC42IDM3Ny42YzAgMTUuMyAyLjYgMjkuNyA3LjkgNDMuMiA0LjkgMTIuNCAxMS42IDIzLjMgMjAuMSAzMi41IDguMSA4LjkgMTYuOSAxNS4zIDI2LjMgMTkuMiA5LjItMy44IDE3LjgtMTAgMjUuNy0xOC43IDguNy05LjIgMTUuNC0xOS45IDIwLjMtMzIuMiA1LjUtMTMuNyA4LjItMjguNCA4LjItNDQuMWwtNTQuMi0yMi42LTU0LjIgMjIuNnptMjM1LjEtMjAuM2E1Ni41IDU2LjUgMCAxIDAgMCAxMTMgNTYuNSA1Ni41IDAgMSAwIDAtMTEzem0tMzUyLjggMi4zYzQuMSAwIDcuNiAxLjMgMTAuNCAzLjkgMi44IDIuNiA0LjIgNS45IDQuMiA5LjZsMCAxNi40IDMxLjEtMTkuMmMxLjUtMS4xIDMuMi0xLjcgNS4xLTEuNyAyLjQgMCA0LjYgLjggNi4zIDIuNXMyLjcgMy44IDIuNyA2LjJsMCA3Mi42YzAgMi42LS45IDQuOC0yLjcgNi41cy0zLjkgMi41LTYuMyAyLjVjLTEuOSAwLTMuNi0uNi01LjEtMS43bC0zMS4xLTE5LjIgMCAxNi40YzAgMy44LTEuNCA3LTQuMiA5LjZzLTYuMyA0LTEwLjQgNGwtODguMiAwYy00LjEgMC03LjYtMS4zLTEwLjUtNHMtNC4yLTUuOC00LjItOS42bDAtODEuM2MwLTMuOCAxLjQtNyA0LjItOS42czYuMy0zLjkgMTAuNS0zLjlsODguMiAwem0xNzIgOTcuOGMtMTEuMy03LTIwLjQtMTYuNC0yNy40LTI4LjMtNy41LTEyLjQtMTEuOS0yNi42LTEzLTQyLjRsNDAuNC0xNyAwIDg3LjZ6TTM3LjUgMzczLjRsMCA4MC44Yy4yIC4yIC42IC4zIDEuMiAuM2w4OC4yIDBjLjQgMCAuNy0uMSAxLjEtLjNsMC04MC44Yy0uMi0uMi0uNi0uMy0xLjItLjNsLTg4LjEgMGMtLjQgMC0uOCAuMS0xLjIgLjN6bTQxOC40IDUuMWMyLjMtMS4zIDQuNS0xLjMgNi44IDBsNDkuOCAzMC4yYzIuMyAxLjMgMy40IDMuMyAzLjQgNS45cy0xLjEgNC42LTMuNCA1LjlsLTQ5LjggMjguNmMtMi4zIDEuMy00LjUgMS4zLTYuOCAwcy0zLjQtMy4zLTMuNC01LjlsMC01OC44YzAtMi42IDEuMS00LjYgMy40LTUuOXpNMTQxLjUgNDA1LjVsMCAxNi40IDMxLjcgMTkuOCAwLTU2LTMxLjcgMTkuOHpNNDUxLjEgNS4yYzM1LjgtMS4yIDYyLjkgMTUuMSA2My44IDQwLjggLjQgMTAuOS01LjkgMzIuMi0yNy44IDMzLTE2LjMgLjYtMjcuNi05LjItMjguMS0yNC4xLS4yLTUuNCAxLjItMTAuMiA0LjktMTUuOCAzLjYtNy4xIDQuNC03LjkgNC4zLTExLS4zLTkuNC0xNC41LTkuNy0xOC4zLTkuNS01MyAxLjgtNjYuOSA3My4zLTc4LjIgMTMxLjVsLTUuNiAzMC43YzMwLjUgNC41IDUyLjItMSA2NC4yLTguOCAxNy0xMS00LjgtMjIuNC0yLTM1IDIuOC0xMi44IDE0LjQtMTkgMjMuNy0xOS4yIDEyLjktLjMgMjIuMiAxMy4xIDIxLjkgMjYuNy0uNSAyMi42LTMwLjQgNTMuNi05MC4yIDUyLjMtNy4zLS4yLTE0LS43LTIwLjItMS40bC0xMS4zIDYyLjNjLTMgMTQtNi4zIDI5LjUtMTAuNyA0NS44bDIwNCAwIC45IC4xYy4zIC4xIC42IC4xIC44IC4yIDIuMiAuNiA0IDIuNSA0LjUgNC44IC42IDIuOC0xIDYtMy43IDcuMi0uNSAuMi0xLjEgLjQtMS43IC41LS4zIDAtLjYgMC0uOSAuMWwtNTE1LjMgMGMtLjctLjEtLjkgMC0xLjctLjItMi41LS43LTQuNC0zLjEtNC42LTUuNy0uMi0yLjMgMS00LjYgMy01LjggLjctLjUgMS42LS44IDIuNC0uOSAuMyAwIC42IDAgLjgtLjFsNDguNCAwYy0xNy4yLTE2LjgtMjAtMzcuMi0xNi01MC41IDUuNC0xNy42IDE5LjQtMjAuOSAzMy0xNi43IDE0LjYgNC41IDIwLjMgMjIuMyAxNi4yIDM2LS41IDEuNS0xLjIgMy45LTIuOCA3LjItMS43IDMuOC00LjggNy4xLTYuMiAxMS41LTEuNSA0LjkgLjcgOS4xIDQuNSAxMi42bDU4LjkgMGM0LjItNCA3LjQtOSA5LjEtMTQuNiA1LjMtMTctNS41LTI4LjktMTAtMzMuNWwtMjEuNy0yMy4yYy05LjktMTEuMS0zMS43LTQxLjktMjEuMS03Ni41IDQuMS0xMy40IDEyLjgtMjcuNSAyNS4zLTM2LjkgMjYuNS0xOS43IDU1LjMtMjMgODIuNy0xNS4xIDM1LjUgMTAuMiA1Mi41IDMzLjcgNzQuNiA1MS44IDEyLjQtMzYuMyAyOS41LTcxLjkgNTUuMy0xMDEuOSAyMy4zLTI3LjMgNTQuNi00Ny4xIDkwLjQtNDguM3pNMjI5LjYgMTIxLjNjLTIyLjItNi0zNS43LS45LTQ1LjIgMTEuMi0xMS4zIDE0LjMtNy41IDMyLjggMy4zIDQzLjdsMTggMTkuOWMyMiAyNS41IDM0LjEgNDUuMyAyOS42IDcyLTIuMiAxMy4xLTguNSAyNS4yLTE3LjkgMzUuM2w1NC4yIDBjMS01LjEgMi0xMC40IDMuMS0xNS44bDMuNi0yMS45YzUuOS0yOS40IDEyLjQtNjIuMiAyMi4zLTk0LjgtMjQuMS0xOC4xLTM4LjUtNDAuNy03MC45LTQ5LjV6Il19LEdhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtb2Rub2tsYXNzbmlraSIsaWNvbjpbNDQ4LDUxMixbIm9kbm9rbGFzc25pa2ktc3F1YXJlIl0sImYyNjQiLCJNMjI0IDEzNy4xYy01LjQtLjMtMTAuOCAuNi0xNS45IDIuNHMtOS43IDQuOC0xMy42IDguNS03IDguMi05LjIgMTMuMi0zLjIgMTAuMy0zLjIgMTUuNyAxLjEgMTAuOCAzLjIgMTUuNyA1LjMgOS41IDkuMiAxMy4yIDguNiA2LjYgMTMuNiA4LjUgMTAuNSAyLjcgMTUuOSAyLjRjNS40IC4zIDEwLjgtLjYgMTUuOS0yLjRzOS43LTQuOCAxMy42LTguNSA3LTguMiA5LjItMTMuMiAzLjItMTAuMyAzLjItMTUuNy0xLjEtMTAuOC0zLjItMTUuNy01LjMtOS41LTkuMi0xMy4yLTguNi02LjYtMTMuNi04LjUtMTAuNS0yLjctMTUuOS0yLjR6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0yMjQgMjU4YTgxIDgxIDAgMSAxIDAtMTYyLjEgODEgODEgMCAxIDEgMCAxNjIuMXptNTkuMyA2LjJjMTYuOC0xMy4yIDI5LjUtNS41IDM0LjEgMy42IDcuOCAxNi0xLjEgMjMuNy0yMS41IDM3LTE3LjEgMTAuOS00MC43IDE1LjItNTYuMiAxNi44bDEzIDEyLjkgNDcuNyA0Ny43YzE3LjQgMTcuOS0xMSA0NS44LTI4LjYgMjguNi0xMi0xMi4yLTI5LjUtMjkuNy00Ny43LTQ3LjlsLTQ3LjcgNDcuOWMtMTcuNyAxNy4yLTQ2LTExLTI4LjQtMjguNiAzLjctMy43IDcuOS03LjkgMTIuNS0xMi41IDEwLjQtMTAuNCAyMi42LTIyLjcgMzUuMi0zNS4ybDEyLjktMTIuOWMtMTUuNC0xLjYtMzkuMy01LjctNTYuNi0xNi44LTIwLjMtMTMuMy0yOS4zLTIwLjktMjEuNC0zNyA0LjYtOS4xIDE3LjMtMTYuOCAzNC4xLTMuNiAwIDAgMjIuNyAxOCA1OS4zIDE4czU5LjMtMTggNTkuMy0xOHoiXX0sS250PUdhZSxlb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFya2Rvd24iLGljb246WzY0MCw1MTIsW10sImY2MGYiLCJNNTkzLjggNTkuMWwtNTQ3LjYgMEMyMC43IDU5LjEgMCA3OS44IDAgMTA1LjJMMCA0MDYuN2MwIDI1LjUgMjAuNyA0Ni4yIDQ2LjIgNDYuMmw1NDcuNyAwYzI1LjUgMCA0Ni4yLTIwLjcgNDYuMS00Ni4xbDAtMzAxLjZjMC0yNS40LTIwLjctNDYuMS00Ni4yLTQ2LjF6TTMzOC41IDM2MC42bC02MS41IDAgMC0xMjAtNjEuNSA3Ni45LTYxLjUtNzYuOSAwIDEyMC02MS43IDAgMC0yMDkuMiA2MS41IDAgNjEuNSA3Ni45IDYxLjUtNzYuOSA2MS41IDAgMCAyMDkuMiAuMiAwem0xMzUuMyAzLjFsLTkyLjMtMTA3LjcgNjEuNSAwIDAtMTA0LjYgNjEuNSAwIDAgMTA0LjYgNjEuNSAwLTkyLjIgMTA3Ljd6Il19LHRvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0eXBvMyIsaWNvbjpbNDQ4LDUxMixbXSwiZjQyYiIsIk0xNzguNyA3OC40YzAtMjQuNyA1LjQtMzIuNCAxMy45LTM5LjQtNjkuNSA4LjUtMTQ5LjMgMzQtMTc2LjMgNjYuNC01LjQgNy43LTkuMyAyMC44LTkuMyAzNy4xIDAgMTAzLjUgMTA2LjggMzM3LjUgMTg0LjEgMzM3LjUgMzYuMyAwIDk3LjMtNTkuNSAxNDYuNy0xMzktNyAyLjMtMTEuNiAyLjMtMTguNSAyLjMtNTcuMiAwLTE0MC42LTE5OC41LTE0MC42LTI2NC45ek0zMDEuNSAzMmMtMzAuMSAwLTQxLjcgNS40LTQxLjcgMzYuMyAwIDY2LjQgNTMuOCAxOTguNSAxMDEuNyAxOTguNSAyNi4zIDAgNzguOC05OS43IDc4LjgtMTgyLjMgMC00MC45LTY3LTUyLjUtMTM4LjgtNTIuNXoiXX0scm90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Impvb21sYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjFhYSIsIk0uNiA5Mi4xYzAtMzMuMyAyNi44LTYwLjEgNTkuOC02MC4xIDMwIDAgNTQuNSAyMS45IDU5LjIgNTAuMiAzMi42LTcuNiA2Ny4xIC42IDk2LjUgMzBsLTQ0LjMgNDQuM2MtMjAuNS0yMC41LTQyLjYtMTYuMy01NS40LTMuNS0xNC4zIDE0LjMtMTQuMyAzNy45IDAgNTIuMmw5OS41IDk5LjUtNDQgNDQuM2MtODcuNy04Ny4yLTQ5LjctNDkuNy05OS44LTk5LjctMjYuOC0yNi41LTM1LTY0LjgtMjQuOC05OC45LTI2LjktNS44LTQ2LjctMjkuNy00Ni43LTU4LjN6TTEzMC4xIDIwOC41bDQ0LjMgNDQuM2MxMC0xMCA4OS43LTg5LjcgOTkuNy05OS44IDE0LjMtMTQuMyAzNy42LTE0LjMgNTEuOSAwIDEyLjggMTIuOCAxNyAzNS0zLjUgNTUuNGw0NCA0NC4zYzMxLjItMzEuMiAzOC41LTY3LjYgMjguOS0xMDEuMiAyOS4yLTQuMSA1MS45LTI5LjIgNTEuOS01OS41IDAtMzMuMi0yNi44LTYwLjEtNTkuOC02MC4xLTMwLjMgMC01NS40IDIyLjUtNTkuNSA1MS42LTMzLjgtOS45LTcxLjctMS41LTk4LjMgMjUuMS0xOC4zIDE5LjEtNzEuMSA3MS41LTk5LjYgOTkuOXpNMzk2LjQgMzYwLjdjOC4yLTMyLjctLjktNjguNS0yNi4zLTkzLjktMTEuOC0xMi4yIDUgNC43LTk5LjUtOTkuN2wtNDQuMyA0NC4zIDk5LjcgOTkuN2MxNC4zIDE0LjMgMTQuMyAzNy42IDAgNTEuOS0xMi44IDEyLjgtMzUgMTctNTUuNC0zLjVsLTQ0IDQ0LjNjMjcuNiAzMC4yIDY4IDM4LjggMTAyLjcgMjggNS41IDI3LjQgMjkuNyA0OC4xIDU4LjkgNDguMSAzMyAwIDU5LjgtMjYuOCA1OS44LTYwLjEgMC0zMC4yLTIyLjUtNTUtNTEuNi01OS4xem0tODQuMy01My4xbC00NC00NC4zYy04NyA4Ni40LTUwLjQgNTAuNC05OS43IDk5LjgtMTQuMyAxNC4zLTM3LjYgMTQuMy01MS45IDAtMTMuMS0xMy40LTE2LjktMzUuMyAzLjItNTUuNGwtNDQtNDQuM2MtMzAuMiAzMC4yLTM4IDY1LjItMjkuNSA5OC4zLTI2LjcgNi00Ni4yIDI5LjktNDYuMiA1OC4yIDAgMzMuMyAyNi44IDYwLjEgNTkuOCA2MC4xIDI4LjYgMCA1Mi41LTE5LjggNTguNi00Ni43IDMyLjcgOC4yIDY4LjUtLjYgOTQuMi0yNiAzMi4xLTMyIDEyLjItMTIuNCA5OS41LTk5Ljd6Il19LGlvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3ZWl4aW4iLGljb246WzU3Niw1MTIsW10sImYxZDciLCJNMzg1LjIgMTY3LjZjNi40IDAgMTIuNiAuMyAxOC44IDEuMS0xNi42LTc4LjQtMTAwLjctMTM2LjctMTk2LjMtMTM2LjctMTA3LjIgMC0xOTQuNyA3Mi44LTE5NC43IDE2NS40IDAgNTMuNCAyOS4zIDk3LjUgNzcuOSAxMzEuNmwtMTkuMyA1OC42IDY4LTM0LjFjMjQuNCA0LjggNDMuOCA5LjcgNjguMiA5LjcgNi4yIDAgMTIuMS0uMyAxOC4zLS44LTQtMTIuOS02LjItMjYuNi02LjItNDAuOC0uMS04NC45IDcyLjktMTU0IDE2NS4zLTE1NHpNMjgwLjcgMTE0LjdjMTQuNSAwIDI0LjIgOS43IDI0LjIgMjQuNCAwIDE0LjUtOS43IDI0LjItMjQuMiAyNC4yLTE0LjggMC0yOS4zLTkuNy0yOS4zLTI0LjIgLjEtMTQuNyAxNC42LTI0LjQgMjkuMy0yNC40ek0xNDQuMyAxNjMuM2MtMTQuNSAwLTI5LjMtOS43LTI5LjMtMjQuMiAwLTE0LjggMTQuOC0yNC40IDI5LjMtMjQuNCAxNC44IDAgMjQuNCA5LjcgMjQuNCAyNC40IDAgMTQuNi05LjYgMjQuMi0yNC40IDI0LjJ6TTU2MyAzMTkuNGMwLTc3LjktNzcuOS0xNDEuMy0xNjUuNC0xNDEuMy05Mi43IDAtMTY1LjQgNjMuNC0xNjUuNCAxNDEuM1MzMDUgNDYwLjcgMzk3LjYgNDYwLjdjMTkuMyAwIDM4LjktNS4xIDU4LjYtOS45bDUzLjQgMjkuMy0xNC44LTQ4LjZDNTM0IDQwMi4xIDU2MyAzNjMuMiA1NjMgMzE5LjR6TTM0My45IDI5NC45Yy05LjcgMC0xOS4zLTkuNy0xOS4zLTE5LjYgMC05LjcgOS43LTE5LjMgMTkuMy0xOS4zIDE0LjggMCAyNC40IDkuNyAyNC40IDE5LjMgMCAxMC05LjcgMTkuNi0yNC40IDE5LjZ6bTEwNy4xIDBjLTkuNyAwLTE5LjMtOS43LTE5LjMtMTkuNiAwLTkuNyA5LjctMTkuMyAxOS4zLTE5LjMgMTQuNSAwIDI0LjQgOS43IDI0LjQgMTkuMyAuMSAxMC05LjkgMTkuNi0yNC40IDE5LjZ6Il19LGFvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJncnVudCIsaWNvbjpbMzg0LDUxMixbXSwiZjNhZCIsIk02MS42IDE4OS4zYy0xLjEgMTAgNS4yIDE5LjEgNS4yIDE5LjEgLjctNy41IDIuMi0xMi44IDQtMTYuNiAuNCAxMC4zIDMuMiAyMy41IDEyLjggMzQuMSA2LjkgNy42IDM1LjYgMjMuMyA1NC45IDYuMSAxIDIuNCAyLjEgNS4zIDMgOC41IDIuOSAxMC4zLTIuNyAyNS4zLTIuNyAyNS4zczE1LjEtMTcuMSAxMy45LTMyLjVjMTAuOC0uNSAyMS40LTguNCAyMS4xLTE5LjUgMCAwLTE4LjkgMTAuNC0zNS41LTguOC05LjctMTEuMi00MC45LTQyLTgzLjEtMzEuOCA0LjMgMSA4LjkgMi40IDEzLjUgNC4xbC0uMSAwYy00LjIgMi02LjUgNy4xLTcgMTJ6bTI4LjMtMS44YzE5LjUgMTEgMzcuNCAyNS43IDQ0LjkgMzctNS43IDMuMy0yMS43IDEwLjQtMzgtMS43LTEwLjMtNy42LTkuOC0yNi4yLTYuOS0zNS4zek0yMzIgMjMzLjNjLTEuMiAxNS41IDEzLjkgMzIuNSAxMy45IDMyLjVzLTUuNi0xNS0yLjctMjUuM2MuOS0zLjIgMi02IDMtOC41IDE5LjMgMTcuMyA0OCAxLjUgNTQuOC02LjEgOS42LTEwLjYgMTIuMy0yMy44IDEyLjgtMzQuMSAxLjggMy44IDMuNCA5LjEgNCAxNi42IDAgMCA2LjQtOS4xIDUuMi0xOS4xLS42LTUtMi45LTEwLTctMTEuOGwtLjEgMGM0LjYtMS44IDkuMi0zLjIgMTMuNS00LjEtNDIuMy0xMC4yLTczLjQgMjAuNi04My4xIDMxLjgtMTYuNyAxOS4yLTM1LjUgOC44LTM1LjUgOC44LS4yIDEwLjkgMTAuNCAxOC45IDIxLjIgMTkuM3ptNjIuNy00NS44YzMgOS4xIDMuNCAyNy43LTcgMzUuNC0xNi4zIDEyLjEtMzIuMiA1LTM3LjkgMS42IDcuNS0xMS40IDI1LjQtMjYgNDQuOS0zN3ptLTEzNC40IDIzMWwtMjkuNCAwYy01LjUgMC04LjIgMS42LTkuNSAyLjktMS45IDItMi4yIDQuNy0uOSA4LjEgMy41IDkuMSAxMS40IDE2LjUgMTMuNyAxOC42IDMuMSAyLjcgNy41IDQuMyAxMS44IDQuMyA0LjQgMCA4LjMtMS43IDExLTQuNiA3LjUtOC4yIDExLjktMTcuMSAxMy0xOS44IC42LTEuNSAxLjMtNC41LS45LTYuOC0xLjgtMS44LTQuNy0yLjctOC44LTIuN3pNMzQ5LjUgMzE3LjNjLTIuNCAxNy45LTEzIDMzLjgtMjQuNiA0My43LTMuMS0yMi43LTMuNy01NS41LTMuNy02Mi40IDAtMTQuNyA5LjUtMjQuNSAxMi4yLTI2LjEgMi41LTEuNSA1LjQtMyA4LjMtNC42IDE4LTkuNiA0MC40LTIxLjYgNDAuNC00My43IDAtMTYuMi05LjMtMjMuMi0xNS40LTI3LjgtLjgtLjYtMS41LTEuMS0yLjItMS43LTIuMS0xLjctMy43LTMtNC4zLTQuNC00LjQtOS44LTMuNi0zNC4yLTEuNy0zNy42IC42LS42IDE2LjctMjAuOSAxMS44LTM5LjItMi03LjQtNi45LTEzLjMtMTQuMS0xNy01LjMtMi43LTExLjktNC4yLTE5LjUtNC41LS4xLTItLjUtMy45LS45LTUuOS0uNi0yLjYtMS4xLTUuMy0uOS04LjEgLjQtNC43IC44LTkgMi4yLTExLjMgOC40LTEzLjMgMjguOC0xNy42IDI5LTE3LjZsMTIuMy0yLjQtOC4xLTkuNWMtLjEtLjItMTcuMy0xNy41LTQ2LjMtMTcuNS03LjkgMC0xNiAxLjMtMjQuMSAzLjktMjQuMiA3LjgtNDIuOSAzMC41LTQ5LjQgMzkuMy0zLjEtMS02LjMtMS45LTkuNi0yLjctNC4yLTE1LjggOS0zOC41IDktMzguNXMtMTMuNi0zLTMzLjcgMTUuMmMtMi42LTYuNS04LjEtMjAuNS0xLjgtMzcuMi0yOS41IDEwLjQtMzYuOSAyNi4zLTM5LjEgNDAuNy03LjYtNS40LTYuNy0yMy4xLTcuMi0yNy42LTcuNSAuOS0yOS4yIDIxLjktMjguMiA0OC4zLTIgLjUtMy45IDEuMS01LjkgMS43LTYuNS04LjgtMjUuMS0zMS41LTQ5LjQtMzkuMy03LjktMi4yLTE2LTMuNS0yMy45LTMuNS0yOSAwLTQ2LjEgMTcuMy00Ni4zIDE3LjVsLTguMSA5LjQgMTIuMyAyLjRjLjIgMCAyMC42IDQuMyAyOSAxNy42IDEuNCAyLjIgMS44IDYuNiAyLjIgMTEuMyAuMiAyLjgtLjQgNS41LS45IDguMS0uNCAxLjktLjggMy45LS45IDUuOS03LjcgLjMtMTQuMiAxLjgtMTkuNSA0LjUtNy4yIDMuNy0xMi4xIDkuNi0xNC4xIDE3LTUgMTguMiAxMS4yIDM4LjUgMTEuOCAzOS4yIDEuOSAzLjQgMi43IDI3LjgtMS43IDM3LjYtLjYgMS40LTIuMiAyLjctNC4zIDQuNC0uNyAuNS0xLjQgMS4xLTIuMiAxLjctNi4xIDQuNi0xNS40IDExLjctMTUuNCAyNy44IDAgMjIuMSAyMi40IDM0LjEgNDAuNCA0My43IDMgMS42IDUuOCAzLjEgOC4zIDQuNiAyLjcgMS42IDEyLjIgMTEuNCAxMi4yIDI2LjEgMCA2LjktLjYgMzkuNy0zLjcgNjIuNC0xMS42LTkuOS0yMi4yLTI1LjktMjQuNi00My44IDAgMC0yOS4yIDIyLjYtMjAuNiA3MC44IDUuMiAyOS41IDIzLjIgNDYuMSA0NyA1NC43IDguOCAxOS4xIDI5LjQgNDUuNyA2Ny4zIDQ5LjYgMTQuNCAxMS44IDM0LjQgMTkuNSA2My42IDE5LjVsLjIgMGMyOS4xIDAgNDkuMS03LjcgNjMuNi0xOS41IDM3LjktMy45IDU4LjUtMzAuNSA2Ny4zLTQ5LjYgMjMuOC04LjcgNDEuNy0yNS4yIDQ3LTU0LjcgOC4yLTQ4LjQtMjEuMS03MC45LTIxLjEtNzAuOXpNMzA2IDM3LjdjNS42LTEuOCAxMS42LTIuNyAxNy43LTIuNyAxMSAwIDE5LjkgMyAyNC43IDUtMy4xIDEuNC02LjQgMy4yLTkuNyA1LjMtMi40LS40LTUuNi0uOC05LjItLjgtMTAuNSAwLTIwLjUgMy4xLTI4LjcgOC45LTEyLjMgOC43LTE4IDE2LjktMjAuNyAyMi40LTIuMi0xLjMtNC41LTIuNS03LjEtMy43LTEuNi0uOC0zLjEtMS41LTQuNy0yLjIgNi4xLTkuMSAxOS45LTI2LjUgMzcuNy0zMi4yem0yMSAxOC4yYy0uOCAxLTEuNiAyLjEtMi4zIDMuMi0zLjMgNS4yLTMuOSAxMS42LTQuNCAxNy44LS41IDYuNC0xLjEgMTIuNS00LjQgMTctNC4yIC44LTguMSAxLjctMTEuNSAyLjctMi4zLTMuMS01LjYtNy0xMC41LTExLjIgMS40LTQuOCA1LjUtMTYuMSAxMy41LTIyLjUgNS42LTQuMyAxMi4yLTYuNyAxOS42LTd6TTQ1LjkgNDUuM2MtMy4zLTIuMi02LjYtNC05LjctNS4zIDQuOC0yIDEzLjctNSAyNC43LTUgNi4xIDAgMTIgLjkgMTcuNyAyLjcgMTcuOCA1LjggMzEuNiAyMy4yIDM3LjcgMzIuMS0xLjYgLjctMy4yIDEuNC00LjggMi4yLTIuNSAxLjItNC45IDIuNS03LjEgMy43LTIuNi01LjQtOC4zLTEzLjctMjAuNy0yMi40LTguMy01LjgtMTguMi04LjktMjguOC04LjktMy40IC4xLTYuNiAuNS05IC45ek05MC42IDg1LjRjLTQuOSA0LjItOC4zIDgtMTAuNSAxMS4yLTMuNC0uOS03LjMtMS45LTExLjUtMi43LTMuMy00LjQtMy44LTEwLjUtNC4zLTE2LjktLjUtNi4yLTEuMS0xMi42LTQuNC0xNy44LS43LTEuMS0xLjUtMi4yLTIuMy0zLjIgNy40IC4zIDE0IDIuNiAxOS41IDcgOCA2LjMgMTIuMSAxNy42IDEzLjUgMjIuNHpNNTguNCAyNTkuOWMtMi43LTEuNi01LjYtMy4xLTguNC00LjYtMTQuOS04LTMwLjItMTYuMy0zMC4yLTMwLjUgMC0xMS4xIDQuMy0xNC42IDguOS0xOC4ybC41LS40Yy43LS42IDEuNC0xLjIgMi4yLTEuOC0uOSA3LjItMS45IDEzLjMtMi43IDE0LjkgMCAwIDEyLjEtMTUgMTUuNy00NC4zIDEuNC0xMS41LTEuMS0zNC4zLTUuMS00MyAuMiA0LjkgMCA5LjgtLjMgMTQuNC0uNC0uOC0uOC0xLjYtMS4zLTIuMi0zLjItNC0xMS44LTE3LjUtOS40LTI2LjYgLjktMy41IDMuMS02IDYuNy03LjggMy44LTEuOSA4LjgtMi45IDE1LjEtMi45IDEyLjMgMCAyNS45IDMuNyAzMi45IDYgMjUuMSA4IDU1LjQgMzAuOSA2NC4xIDM3LjcgLjIgLjIgLjQgLjMgLjQgLjNsNS42IDMuOS0zLjUtNS44Yy0uMi0uMy0xOS4xLTMxLjQtNTMuMi00Ni41IDItMi45IDcuNC04LjEgMjEuNi0xNS4xIDIxLjQtMTAuNSA0Ni41LTE1LjggNzQuMy0xNS44IDI3LjkgMCA1Mi45IDUuMyA3NC4zIDE1LjggMTQuMiA2LjkgMTkuNiAxMi4yIDIxLjYgMTUuMS0zNCAxNS4xLTUyLjkgNDYuMi01My4xIDQ2LjVsLTMuNSA1LjggNS42LTMuOXMuMi0uMSAuNC0uM2M4LjctNi44IDM5LTI5LjggNjQuMS0zNy43IDctMi4yIDIwLjYtNiAzMi45LTYgNi4zIDAgMTEuMyAxIDE1LjEgMi45IDMuNSAxLjggNS43IDQuNCA2LjcgNy44IDIuNSA5LjEtNi4xIDIyLjYtOS40IDI2LjYtLjUgLjYtLjkgMS4zLTEuMyAyLjItLjMtNC42LS41LTkuNS0uMy0xNC40LTQgOC44LTYuNSAzMS41LTUuMSA0MyAzLjYgMjkuMyAxNS43IDQ0LjMgMTUuNyA0NC4zLS44LTEuNi0xLjgtNy43LTIuNy0xNC45IC43IC42IDEuNSAxLjIgMi4yIDEuOGwuNSAuNGM0LjYgMy43IDguOSA3LjEgOC45IDE4LjIgMCAxNC4yLTE1LjQgMjIuNS0zMC4yIDMwLjUtMi45IDEuNS01LjcgMy4xLTguNCA0LjYtOC43IDUtMTggMTYuNy0xOS4xIDM0LjItLjkgMTQuNiAuOSA0OS45IDMuNCA3NS45LTEyLjQgNC44LTI2LjcgNi40LTM5LjcgNi44LTItNC4xLTMuOS04LjUtNS41LTEzLjEtLjctMi0xOS42LTUxLjEtMjYuNC02Mi4yIDUuNSAzOSAxNy41IDczLjcgMjMuNSA4OS42LTMuNS0uNS03LjMtLjctMTEuNy0uN2wtMTE3IDBjLTQuNCAwLTguMyAuMy0xMS43IC43IDYtMTUuOSAxOC4xLTUwLjYgMjMuNS04OS42LTYuOCAxMS4yLTI1LjcgNjAuMy0yNi40IDYyLjItMS42IDQuNi0zLjUgOS01LjUgMTMuMS0xMy0uNC0yNy4yLTItMzkuNy02LjggMi41LTI2IDQuMy02MS4yIDMuNC03NS45LS45LTE3LjQtMTAuMy0yOS4yLTE5LTM0LjJ6TTM1LjEgNDA0LjZjLTEyLjEtMjAtOC43LTU0LjEtMy43LTU5LjEgMTAuOSAzNC40IDQ3LjIgNDQuMyA3NC40IDQ1LjQtMi43IDQuMi01LjIgNy42LTcgMTBsLTEuNCAxLjRjLTcuMiA3LjgtOC42IDE4LjUtNC4xIDMxLjgtMjIuNy0uMS00Ni4zLTkuOC01OC4yLTI5LjV6bTQ1LjcgNDMuNWM2IDEuMSAxMi4yIDEuOSAxOC42IDIuNCAzLjUgOCA3LjQgMTUuOSAxMi4zIDIzLjEtMTQuNC01LjktMjQuNC0xNi0zMC45LTI1LjV6bTExMS41IDUwLjFjLTYwLjYtLjEtNzguMy00NS44LTg0LjktNjQuNy0zLjctMTAuNS0zLjQtMTguMiAuOS0yMy4xIDIuOS0zLjMgOS41LTcuMiAyNC42LTcuMmwxMTguOCAwYzE1LjEgMCAyMS44IDMuOSAyNC42IDcuMiA0LjIgNC44IDQuNSAxMi42IC45IDIzLjEtNi42IDE4LjgtMjQuMyA2NC42LTg0LjkgNjQuN3ptODAuNi0yNC42YzQuOS03LjIgOC44LTE1LjEgMTIuMy0yMy4xIDYuNC0uNSAxMi42LTEuMyAxOC42LTIuNC02LjUgOS41LTE2LjUgMTkuNi0zMC45IDI1LjV6bTc2LjYtNjljLTEyIDE5LjctMzUuNiAyOS4zLTU4LjEgMjkuNyA0LjUtMTMuMyAzLjEtMjQuMS00LjEtMzEuOC0uNC0uNS0uOS0xLTEuNC0xLjUtMS44LTIuNC00LjMtNS44LTctMTAgMjcuMi0xLjIgNjMuNS0xMSA3NC40LTQ1LjQgNSA1IDguNCAzOS4xLTMuOCA1OXpNMTkyLjIgMTg3LjdsLjIgMGMxMi43LS4xIDI3LjItMTcuOCAyNy4yLTE3LjgtOS45IDYtMTguOCA4LjEtMjcuMyA4LjMtOC41LS4yLTE3LjQtMi4zLTI3LjMtOC4zIDAgMCAxNC41IDE3LjYgMjcuMiAxNy44em02MS43IDIzMC43bC0yOS40IDBjLTQuMiAwLTcuMiAuOS04LjkgMi43LTIuMiAyLjMtMS41IDUuMi0uOSA2LjcgMSAyLjYgNS41IDExLjMgMTMgMTkuMyAyLjcgMi45IDYuNiA0LjUgMTEgNC41czguNy0xLjYgMTEuOC00LjJjMi4zLTIgMTAuMi05LjIgMTMuNy0xOC4xIDEuMy0zLjMgMS02LS45LTcuOS0xLjMtMS4zLTQtMi45LTkuNC0zeiJdfSxub3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3VwcG9ydG5vdyIsaWNvbjpbNjQwLDUxMixbXSwiZTgzMyIsIk0wIDE5MS45bDIwMy45LS4xYzEuOC0uNiAyLjUtOS41IDMuMi0xMi4yIDMuMy0xMy41IDguNC0yNi40IDE0LjgtMzguN2wtMTYwLjIgMCAwLTQ4LjIgMjM0LjUgMCAwIDM5Yy01MS4yIDM2LjEtNTYuNCA5Mi42LTIzLjYgMTQzLjkgMzMuMSA1MS43IDkzLjQgODguMSAxNDkuNSAxMTAuNSA2Ny44LTI1LjIgMTY0LjktODkuOSAxNjkuNC0xNjkuNiAzLjEtNTUuMy00Mi4yLTEwMS44LTk4LjctOTEuOC00MS41IDcuNC02Mi4xIDQ2LjctNTQuOCA4Ni40bC00OC4yIDBjLTcuMy01Ni42IDIyLjgtMTEyLjYgNzguNC0xMzAuMyA3OC43LTI1LjEgMTU5LjUgMjggMTcwLjQgMTA4LjggMTUuMiAxMTIuMy05NS41IDE5OS45LTE4OC4xIDIzNy44LTQuNCAxLjgtMjQuNCAxMC4xLTI3LjUgMTAuMWwtMjgwLjMgMCAwLTQ4LjIgMTc4LjUgMC0zOC4xLTI4LjktMjMuMi0yMi4xLTE5OC4zIDAgMC00OC4yIDE2My4xIDBjLTcuMS0xMS42LTEyLjMtMjQuMy0xNi4xLTM3LjQtLjctMi41LTIuMS0xMi0zLjgtMTIuNmwtMjA0LjktLjEgMC00OC4yIDAgMHoiXX0sb290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJvY2tybXMiLGljb246WzUxMiw1MTIsW10sImYzZTkiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek00MTMuNCA0MjcuNWwtOTAgMC0xMTItMTMxLjNjLTE3LjktMjAuNC0zLjktNTYuMSAyNi42LTU2LjFsNzUuMyAwLTg0LjYtOTkuMy04NC4zIDk4LjktOTAgMCAxNDcuMS0xNzIuNWMxNC40LTE4LjQgNDEuMy0xNy4zIDU0LjUgMEw0MTMuNyAyNTIuM2MxOSAyMi44IDIgNTcuMi0yNy42IDU2LjEtLjYgMC03NC4yIC4yLTc0LjIgLjJMNDEzLjQgNDI3LjV6Il19LHNvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bnNwbGFzaCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA3YyIsIk00NDggMjMwLjJsMCAyNDkuOC00NDggMCAwLTI0OS44IDE0MS4xIDAgMCAxMjQuOSAxNjUuNyAwIDAtMTI0LjkgMTQxLjEgMHpNMzA2LjkgMzJsLTE2NS43IDAgMCAxMjQuOSAxNjUuNyAwIDAtMTI0Ljl6Il19LFlhZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtaW5zdGFncmFtIixpY29uOls0NDgsNTEyLFsiaW5zdGFncmFtLXNxdWFyZSJdLCJlMDU1IiwiTTE5NC40IDIxMS43YTUzLjMgNTMuMyAwIDEgMCA1OS4yIDg4LjYgNTMuMyA1My4zIDAgMSAwIC01OS4yLTg4LjZ6bTE0Mi4zLTY4LjRjLTUuMi01LjItMTEuNS05LjMtMTguNC0xMi0xOC4xLTcuMS01Ny42LTYuOC04My4xLTYuNS00LjEgMC03LjkgLjEtMTEuMiAuMXMtNy4yIDAtMTEuNC0uMWMtMjUuNS0uMy02NC44LS43LTgyLjkgNi41LTYuOSAyLjctMTMuMSA2LjgtMTguNCAxMnMtOS4zIDExLjUtMTIgMTguNGMtNy4xIDE4LjEtNi43IDU3LjctNi41IDgzLjIgMCA0LjEgLjEgNy45IC4xIDExLjFzMCA3LS4xIDExLjFjLS4yIDI1LjUtLjYgNjUuMSA2LjUgODMuMiAyLjcgNi45IDYuOCAxMy4xIDEyIDE4LjRzMTEuNSA5LjMgMTguNCAxMmMxOC4xIDcuMSA1Ny42IDYuOCA4My4xIDYuNSA0LjEgMCA3LjktLjEgMTEuMi0uMXM3LjIgMCAxMS40IC4xYzI1LjUgLjMgNjQuOCAuNyA4Mi45LTYuNSA2LjktMi43IDEzLjEtNi44IDE4LjQtMTJzOS4zLTExLjUgMTItMTguNGM3LjItMTggNi44LTU3LjQgNi41LTgzIDAtNC4yLS4xLTguMS0uMS0xMS40czAtNy4xIC4xLTExLjRjLjMtMjUuNSAuNy02NC45LTYuNS04My0yLjctNi45LTYuOC0xMy4xLTEyLTE4LjRsMCAuMnptLTY3LjEgNDQuNWMxOC4xIDEyLjEgMzAuNiAzMC45IDM0LjkgNTIuMnMtLjIgNDMuNS0xMi4zIDYxLjZjLTYgOS0xMy43IDE2LjYtMjIuNiAyMi42cy0xOSAxMC4xLTI5LjYgMTIuMmMtMjEuMyA0LjItNDMuNS0uMi02MS42LTEyLjNzLTMwLjYtMzAuOS0zNC45LTUyLjIgLjItNDMuNSAxMi4yLTYxLjYgMzAuOS0zMC42IDUyLjItMzQuOSA0My41IC4yIDYxLjYgMTIuMmwuMSAwem0yOS4yLTEuM2MtMy4xLTIuMS01LjYtNS4xLTcuMS04LjZzLTEuOC03LjMtMS4xLTExLjEgMi42LTcuMSA1LjItOS44IDYuMS00LjUgOS44LTUuMiA3LjYtLjQgMTEuMSAxLjEgNi41IDMuOSA4LjYgNyAzLjIgNi44IDMuMiAxMC42YzAgMi41LS41IDUtMS40IDcuM3MtMi40IDQuNC00LjEgNi4yLTMuOSAzLjItNi4yIDQuMi00LjggMS41LTcuMyAxLjVjLTMuOCAwLTcuNS0xLjEtMTAuNi0zLjJsLS4xIDB6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0zNTcgMzg5Yy0xOC43IDE4LjctNDEuNCAyNC42LTY3IDI1LjktMjYuNCAxLjUtMTA1LjYgMS41LTEzMiAwLTI1LjYtMS4zLTQ4LjMtNy4yLTY3LTI1LjlzLTI0LjYtNDEuNC0yNS44LTY3Yy0xLjUtMjYuNC0xLjUtMTA1LjYgMC0xMzIgMS4zLTI1LjYgNy4xLTQ4LjMgMjUuOC02N3M0MS41LTI0LjYgNjctMjUuOGMyNi40LTEuNSAxMDUuNi0xLjUgMTMyIDAgMjUuNiAxLjMgNDguMyA3LjEgNjcgMjUuOHMyNC42IDQxLjQgMjUuOCA2N2MxLjUgMjYuMyAxLjUgMTA1LjQgMCAxMzEuOS0xLjMgMjUuNi03LjEgNDguMy0yNS44IDY3bDAgLjF6Il19LGxvdD1ZYWUsY290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcnN0LW9yZGVyLWFsdCIsaWNvbjpbNTEyLDUxMixbXSwiZjUwYSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgNy44YTI0MC4yIDI0MC4yIDAgMSAxIDAgNDgwLjQgMjQwLjIgMjQwLjIgMCAxIDEgMC00ODAuNHptMCAyMC41YTIxOS43IDIxOS43IDAgMSAwIDAgNDM5LjQgMjE5LjcgMjE5LjcgMCAxIDAgMC00MzkuNHptMCA4LjJhMjExLjUgMjExLjUgMCAxIDEgMCA0MjMgMjExLjUgMjExLjUgMCAxIDEgMC00MjN6bTE4Ni4yIDI2MGMtNC40IDE3LjEtMTEuMiAzMy41LTIwLjEgNDguN2wtNzQuMS0zNS45IDYxLjUgNTQuOGMtMTAuNiAxNC4xLTIzLjIgMjYuNi0zNy4yIDM3LjNsLTU0LjgtNjEuNiAzNS45IDc0LjNjLTE1LjIgOS0zMS42IDE1LjgtNDguNiAyMC4ybC0yNy4zLTc4LjUgNC44IDgyLjljLTguNiAxLjItMTcuNCAxLjgtMjYuMyAxLjhzLTE3LjctLjYtMjYuMy0xLjhsNC44LTgyLjUtMjcuMiA3OGMtMTcuMS00LjUtMzMuNC0xMS4zLTQ4LjctMjAuMmwzNS45LTc0LjMtNTQuOSA2MS42Yy0xNC0xMC43LTI2LjYtMjMuMi0zNy4yLTM3LjNsNjEuNi01NC45LTc0LjMgMzUuOUM4MC43IDMzOCA3NCAzMjEuNyA2OS41IDMwNC42bDc3LjgtMjcuMS04Mi4yIDQuOGMtMS4yLTguNi0xLjgtMTcuMy0xLjgtMjYuMiAwLTkgLjYtMTcuOCAxLjgtMjYuNWw4Mi40IDQuOC03Ny45LTI3LjJjNC41LTE3LjEgMTEuMy0zMy41IDIwLjItNDguN2w3NC4yIDM1LjktNjEuNS01NC45YzEwLjctMTQgMjMuMi0yNi42IDM3LjMtMzcuMmw1NC44IDYxLjUtMzUuOC03NC4yYzE1LjItOC45IDMxLjYtMTUuNyA0OC42LTIwLjFsMjYuOSA3Ny4yLTQuNy04MS42YzguNi0xLjIgMTcuNC0xLjggMjYuMy0xLjhzMTcuNyAuNiAyNi4zIDEuOGwtNC43IDgyLjIgMjctNzcuOGMxNy4zIDQuNSAzMy42IDExLjQgNDguNiAyMC4ybC0zNS44IDc0LjEgNTQuNy02MS41YzE0LjEgMTAuNyAyNi42IDIzLjIgMzcuMiAzNy4ybC02MS40IDU0LjggNzQuMS0zNS45YzguOSAxNS4yIDE1LjcgMzEuNiAyMC4yIDQ4LjZsLTc3LjggMjcuMSA4Mi4yLTQuN2MxLjIgOC43IDEuOCAxNy41IDEuOCAyNi41IDAgOC45LS42IDE3LjYtMS44IDI2LjJsLTgyLjEtNC43IDc3LjcgMjcuMXoiXX0sZG90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZ1bGNydW0iLGljb246WzI1Niw1MTIsW10sImY1MGIiLCJNNjMuOCAxNjQuMUwyOC40IDIwNy43LTcgMTY0LjEgMjguNCAxMjAuNiA2My44IDE2NC4xek0xMTIuMiAwbC0yMC41IDE5OC4yLTUxIDU3LjggNTEgNTcuOCAyMC41IDE5OC4yIDAtMjExLjEtNDEuMS00NC45IDQxLjEtNDQuOSAwLTIxMS4xem03OS43IDE2NC4xbDM1LjQgNDMuNiAzNS40LTQzLjYtMzUuNC00My41LTM1LjQgNDMuNXptLTQ4LjUgNDdsNDEuMSA0NC45LTQxLjEgNDQuOSAwIDIxMS4xIDIwLjYtMTk4LjIgNTEtNTcuOC01MS01Ny44LTIwLjYtMTk4LjIgMCAyMTEuMXoiXX0sdW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFyY2gtbGludXgiLGljb246WzU3Niw1MTIsW10sImU4NjciLCJNMjg4LjctNy44Yy0yNC4xIDU5LTM4LjYgOTcuNy02NS40IDE1NSAxNi40IDE3LjQgMzYuNiAzNy42IDY5LjQgNjAuNS0zNS4yLTE0LjUtNTkuMi0yOC45LTc3LjItNDQtMzQuMyA3MS42LTg4LjEgMTczLjUtMTk3LjIgMzY5LjQgODUuNy00OS41IDE1Mi4yLTgwIDIxNC4xLTkxLjYtMi43LTExLjQtNC4xLTIzLjgtNC0zNi43bC4xLTIuN2MxLjQtNTQuOSAyOS45LTk3LjIgNjMuOC05NC40czYwLjIgNDkuOCA1OC44IDEwNC43Yy0uMyAxMC4zLTEuNCAyMC4yLTMuNCAyOS40IDYxLjIgMTIgMTI3IDQyLjQgMjExLjYgOTEuMi0xNi43LTMwLjctMzEuNi01OC4zLTQ1LjgtODQuNy0yMi40LTE3LjQtNDUuNy0zOS45LTkzLjMtNjQuNCAzMi43IDguNSA1Ni4zIDE4LjMgNzQuNSAyOS4zLTE0NC41LTI2OS4xLTE1Ni4yLTMwNC44LTIwNS44LTQyMS4xeiJdfSxwb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmVkaXZlcnNlIixpY29uOls1NzYsNTEyLFtdLCJlODY1IiwiTTM5NC44IDUyNi45YTU0IDU0IDAgMSAxIDUuOC0xMDcuOCA1NCA1NCAwIDEgMSAtNS44IDEwNy44em0tNTAuMS04MC42Yy01LjUgMTAuOS03LjQgMjMuMy01LjYgMzUuNEwxNjguNyA0NTQuNGM1LjUtMTAuOSA3LjUtMjMuMyA1LjctMzUuNGwxNzAuMyAyNy4zek0xMTIuNyA0ODEuNmE1NCA1NCAwIDEgMSA1LjktMTA3LjggNTQgNTQgMCAxIDEgLTUuOSAxMDcuOHptMjU3LjctNjEuNGMtMTAuOSA1LjYtMTkuNyAxNC40LTI1LjQgMjUuM2wtNzAuNi03MC45IDMzLjYtMTcgNjIuNCA2Mi43ek00ODYuMSAyNjFjOC43IDguNiAxOS44IDE0LjMgMzEuOSAxNi40TDQzOS40IDQzMC44Yy04LjctOC42LTE5LjgtMTQuMy0zMS45LTE2LjRMNDg2LjEgMjYxek0zNzYuNyAyMTkuM2wzMC41IDE5NS4xYy0xMi4xLTEuOS0yNC41LS4xLTM1LjQgNS4zbC0zMi4yLTIwNi4zIDM3LjIgNnpNMzUwLjQgMzI4LjlMMTc0LjIgNDE4LjJjLTItMTIuMS03LjYtMjMuMi0xNi4yLTMybDE4Ni42LTk0LjYgNS44IDM3LjJ6bS0xNTIuNy0yMmwtNDAuMyA3OC43Yy04LjctOC42LTE5LjgtMTQuMy0zMS45LTE2LjNsNDUuNi04OSAyNi42IDI2Ljd6TTEyNC43IDM2OWMtMTIuMS0xLjgtMjQuNCAuMi0zNS40IDUuNkw2Mi43IDIwNC4zYzEyLjEgMS44IDI0LjUtLjEgMzUuNC01LjZMMTI0LjcgMzY5em0xNDcuMS00Ny44bC0zMy42IDE3LTEzOS40LTEzOS45YzEwLjktNS42IDE5LjctMTQuNCAyNS40LTI1LjNMMjcxLjggMzIxLjJ6bTE5Ny41LTkyLjhjMiAxMi4xIDcuNiAyMy4yIDE2LjIgMzEuOWwtODkuMyA0NS4yLTUuOC0zNy4yIDc4LjktNDB6bTU1LjYgNDQuM2E1NCA1NCAwIDEgMSA1LjktMTA3LjggNTQgNTQgMCAxIDEgLTUuOSAxMDcuOHpNMjg0LjYgNTguN2M4LjcgOC42IDE5LjggMTQuMyAzMS44IDE2LjNsLTk1LjMgMTg2LjEtMjYuNi0yNi43IDkwLTE3NS44ek00NzQuOSAxOTIuMWMtNS41IDEwLjktNy41IDIzLjMtNS43IDM1LjNsLTIwNi40LTMzLjEgMTcuMi0zMy41IDE5NSAzMS4zek02OC43IDE5OS42QTU0IDU0IDAgMSAxIDc0LjYgOTEuOCA1NCA1NCAwIDEgMSA2OC43IDE5OS42em00MzItMzMuNGMtMTAuOSA1LjYtMTkuNyAxNC40LTI1LjQgMjUuM0wzNTMuNSA2OS4zYzEwLjktNS42IDE5LjctMTQuNCAyNS40LTI1LjNMNTAwLjYgMTY2LjJ6TTIyOS4zIDE1Mi42bC0xNy4yIDMzLjUtODcuNC0xNGM1LjQtMTAuOSA3LjQtMjMuMyA1LjUtMzUuNGw5OSAxNS45em0xMzkuNSAxNS45bC0zNy4yLTYtMTMuNi04Ny4yYzEyLjEgMS43IDI0LjUtLjMgMzUuMy01LjlsMTUuNSA5OS4xek0yNjcuOCAyNi4yYzIgMTIuMSA3LjYgMjMuMiAxNi4yIDMxLjlsLTE1My45IDc4Yy0yLTEyLjEtNy42LTIzLjItMTYuMi0zMS45bDE1My45LTc4em01NS42IDQ0LjNhNTQgNTQgMCAxIDEgNS44LTEwNy44IDU0IDU0IDAgMSAxIC01LjggMTA3Ljh6Il19LGhvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJicmF2ZS1yZXZlcnNlIixpY29uOls0NDgsNTEyLFtdLCJlNjNkIiwiTTI5OC41IDBjMyAwIDUuOCAxLjMgNy44IDMuNmwzOC4xIDQ0Yy41LS4xIDEtLjIgMS41LS4zIDkuMi0xLjYgMTguNi0yLjIgMjcuNy0xLjIgMTEuNiAxLjQgMjEuNSA1LjQgMjguOSAxMi45IDcuNyA3LjggMTUuNCAxNS44IDIyLjYgMjMuNiAyLjUgMi43IDQuOSA1LjIgNi45IDcuNCAuNyAuOCAxLjQgMS41IDEuOSAyIDMuNCAzLjcgNC4yIDguMSAyLjcgMTEuOWwtOS44IDI0LjYgMTMuMSAzOC4xYy43IDIgLjggNC4xIC4yIDYuMi0uMSAuNC0uMSAuNC0uNSAyLjFsLTEuNSA1LjhjLTEuNiA2LjMtMy41IDEzLjMtNS40IDIwLjktNS42IDIxLjYtMTEuMiA0My4yLTE2LjQgNjMuNC0xMi45IDQ5LjktMjEuNCA4Mi43LTIzLjQgOTAuOS0xMS4xIDQ0LjUtMTkuOSA2MC00OC4zIDgwLjMtMjQuOSAxNy44LTc2LjggNTMuNi04Ni44IDYwLTEgLjYtMiAxLjMtMy40IDIuMy0uNSAuNC0zLjIgMi4yLTMuOSAyLjctNC45IDMuMy04LjMgNS41LTEyLjEgNy4zLTQuNyAyLjItOS4zIDMuNS0xMy45IDMuNXMtOS4xLTEuMi0xMy45LTMuNWMtMy43LTEuOC03LjItMy45LTEyLjEtNy4zLS44LS41LTMuNC0yLjQtMy45LTIuNy0xLjQtMS0yLjUtMS43LTMuNC0yLjMtMTAtNi40LTYxLjktNDIuMS04Ni44LTYwLTI4LjQtMjAuNC0zNy4yLTM1LjgtNDguMy04MC4zLTItOC4yLTEwLjUtNDEtMjMuMy05MC41LTUuMy0yMC42LTEwLjktNDIuMi0xNi41LTYzLjgtMi03LjYtMy44LTE0LjYtNS40LTIwLjlsLTEuNS01LjgtLjUtMi4xYy0uNS0yLS40LTQuMiAuMi02LjJsMTMuMS0zOC4xLTkuOS0yNC41Yy0xLjUtMy44LS43LTguMiAyLTExLjIgMS4yLTEuMyAxLjgtMiAyLjYtMi44IDItMi4yIDQuNC00LjcgNi45LTcuNCA3LjMtNy43IDE1LTE1LjcgMjIuNy0yMy41IDcuNC03LjUgMTcuMy0xMS42IDI4LjktMTIuOSA5LjEtMS4xIDE4LjUtLjUgMjcuNyAxLjIgLjUgLjEgMSAuMiAxLjUgLjNsMzguMS00NGMyLTIuNCA0LjgtMy43IDcuOC0zLjdsMTQ4IDB6bS00LjcgMjEuMWwtMTM4LjYgMC0zOS4xIDQ1LjFjLTIuNiAzLTYuNyA0LjMtMTAuNiAzLjItLjItLjEtLjctLjItMS41LS40LTEuMy0uMy0yLjktLjYtNC41LS45LTcuNC0xLjMtMTQuOS0xLjgtMjEuNy0xLTcuMyAuOS0xMyAzLjItMTYuNiA2LjktNy42IDcuNy0xNS4yIDE1LjYtMjIuMyAyMy4zLTEuNyAxLjgtMy4zIDMuNS00LjggNS4xbDguOCAyMmMxIDIuNCAxIDUgLjIgNy41TDI5LjcgMTcwLjZjLjQgMS40IC41IDEuOSAxLjIgNC44IDEuNiA2LjMgMy41IDEzLjMgNS40IDIwLjkgNS42IDIxLjYgMTEuMiA0My4yIDE2LjQgNjMuNCAxMi45IDUwIDIxLjQgODIuOCAyMy40IDkxIDEwLjEgNDAuMSAxNi40IDUxLjMgNDAuMiA2OC4zIDI0LjYgMTcuNiA3Ni4zIDUzLjIgODUuOSA1OS4zIDEuMiAuOCAyLjUgMS42IDQgMi43IC42IC40IDMuMiAyLjIgMy45IDIuNyA0IDIuOCA2LjcgNC40IDkuMiA1LjYgMi4yIDEgMy45IDEuNSA1LjEgMS41czIuOS0uNSA1LjEtMS41YzIuNS0xLjIgNS4yLTIuOCA5LjItNS42IC43LS41IDMuMy0yLjMgMy45LTIuNyAxLjYtMS4xIDIuOC0xLjkgNC0yLjcgOS42LTYuMSA2MS4zLTQxLjcgODUuOS01OS4zIDIzLjgtMTcuMSAzMC4yLTI4LjIgNDAuMS02OC4zIDIuMS04LjMgMTAuNS00MS4xIDIzLjMtOTAuNyA1LjMtMjAuNiAxMC45LTQyLjIgMTYuNS02My44IDItNy42IDMuOC0xNC42IDUuNC0yMC45IC43LTIuOSAuOS0zLjQgMS4yLTQuOGwtMTMuMy0zOC44Yy0uOC0yLjQtLjgtNS4xIC4yLTcuNWw4LjgtMjJjLTEuNS0xLjYtMy4xLTMuMy00LjgtNS4xLTcuMi03LjYtMTQuNy0xNS41LTIyLjMtMjMuMy0zLjctMy43LTkuMy02LTE2LjYtNi45LTYuOC0uOC0xNC40LS4zLTIxLjcgMS0xLjcgLjMtMy4yIC42LTQuNSAuOS0uOCAuMi0xLjMgLjMtMS41IC40LTMuOCAxLjEtNy45LS4yLTEwLjYtMy4yTDI5My44IDIxLjF6TTIyNC41IDMxNmMyLjggMCAyMC45IDYuNSAzNS40IDE0LjFzMjUgMTMgMjguMyAxNS4yIDEuMyA2LjItMS43IDguNC00NC4xIDM0LjYtNDguMSAzOC4yLTkuOCA5LjUtMTMuOCA5LjUtOS44LTUuOS0xMy44LTkuNS00NS4xLTM2LTQ4LjEtMzguMi01LjEtNi4yLTEuNy04LjQgMTMuOS03LjUgMjguMy0xNS4yIDMyLjUtMTQuMSAzNS40LTE0LjFsLS4yIDB6bS4xLTIzMC43Yy43IDAgOC44IC4yIDIwLjUgNC4yIDEyLjMgNC4yIDI1LjcgOS40IDMxLjkgOS40czUxLjktOC45IDUxLjktOC45IDU0LjIgNjYuNyA1NC4yIDgxLTYuOCAxOC0xMy43IDI1LjQtMzYuOCAzOS44LTQwLjcgNDMuOS0xMS45IDEwLjUtNy4xIDIxLjggMTEuNyAyNS44IDMuOSA0MC40LTIxIDI0LjQtMjkuNCAyMi44LTI4LjQtMTIuMi0zNS43LTE3LjEtMzAuNS0yNC4zLTMwLjUtMzEuOCAyNC0yMC44IDI4LjQtMjMuOSAyNC43LTE0LjggMjUuMS0xOS40IC4zLTYtNS43LTE3LjQtMTYuNy0yNi43LTE0LjktMzYuOCAxOS4xLTE1LjQgMzEuNS0yMC4yIDM2LjItMTMuNyAzOS4yLTE1LjEgMi4yLTIuNy02LjgtMy42LTM0LjYtNC4zLTQ2LjEtMS4xLTMxLjIgOC4yLTMyLjggMTAuOS0zIDIuNy0xLjQgMTEuOCAxMC4xIDUyLjggMTAuOSA2MC42IDIuNCAxMi45LTUuOCAxNC44LTIyLjEgNS4yLTI2LjggNS4yLTE4LjYtMy4zLTI2LjgtNS4yLTYuNi03LTUuOC0xNC44IDkuMy01MS41IDEwLjktNjAuNiAuMi05LjItMS40LTExLjgtMjEuMy03LjYtMzIuOC0xMC45LTM3LjEgLjItNDYuMSAxLjEtOS44IDIuMi02LjggMy42IDI2LjggMTAuNCAzOS4yIDE1LjEgMjkuNyAxMCAzMS41IDIwLjItOSAyNS40LTE0LjkgMzYuOC02LjEgMTIuOC01LjcgMTcuNCAyMC42IDE2LjQgMjUuMSAxOS40IDI4LjQgMTYuNCAyOC40IDIzLjktMjMuMiAyNy0zMC41IDMxLjgtMjcuMiAxNS40LTM1LjcgMTcuMS0yMS43LTguMi0yOS40LTIyLjgtLjgtMjkuMSAzLjktNDAuNC0zLjMtMTcuNy03LjEtMjEuOC0zMy44LTM2LjUtNDAuNy00My45LTEzLjctMTEuMi0xMy43LTI1LjQgNTQuMi04MSA1NC4yLTgxIDQ1LjggOC45IDUxLjkgOC45IDE5LjUtNS4yIDMxLjktOS40IDIwLjYtNC4yIDIwLjYtNC4ybC0uMyAweiJdfSxmb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXZpYW5leCIsaWNvbjpbNTEyLDUxMixbXSwiZjM3NCIsIk00NTMuMiAzMmwtMzEyIDBDMTAyLjMgMzIgNjUgNjMuMiA1Ny45IDEwMS43TDEuMyA0MTAuM0MtNS44IDQ0OC44IDIwIDQ4MCA1OSA0ODBsMzEyIDBjMzguOSAwIDc2LjItMzEuMiA4My4zLTY5LjdMNTExIDEwMS44QzUxOCA2My4yIDQ5Mi4yIDMyIDQ1My4yIDMyek0zOTUgMzc5LjNsLTMyIDEzLjUtMTE1LjQtMTEwYy0xNC43IDEwLTI5LjIgMTkuNS00MS43IDI3LjFsMjIuMSA2NC4yLTE3LjkgMTIuNy00MC42LTYxLTUyLjQtNDguMSAxNS43LTE1LjQgNTggMzEuMWM5LjMtMTAuNSAyMC44LTIyLjYgMzIuOC0zNC45bC0yMC41LTI5LjYtNjguOC05OS44IDE4LjgtMjguOSA4LjktNC44IDEwMy4xIDExMi40IDQuOSA0LjVjMTkuNC0xOC44IDMzLjgtMzIuNCAzMy44LTMyLjQgNy43LTYuNSAyMS41LTIuOSAzMC43IDcuOSA5IDEwLjUgMTAuNiAyNC43IDIuNyAzMS4zLTEuOCAxLjMtMTUuNSAxMS40LTM1LjMgMjUuNmw0LjUgNy4zIDk0LjkgMTE5LjQtNi4zIDcuOXoiXX0sbW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5zOCIsaWNvbjpbNjQwLDUxMixbXSwiZjNkNSIsIk0xMDQuMyAyNjkuMmwyNi4xIDAgMC0yNi4yLTI2LjEgMCAwIDI2LjJ6TTE1Ni44IDI0M2wtLjEtMjYuMiAwLS45Yy0uMi0xMC40LTQuNC0yMC4zLTExLjktMjcuNnMtMTcuNS0xMS4zLTI3LjktMTEuMS0yMC4zIDQuNC0yNy42IDExLjgtMTEuMyAxNy41LTExLjIgMjcuOWwwIC4yIDI2LjQgMCAwLS4yYy4xLTMuNCAxLjUtNi42IDMuOS05czUuNy0zLjcgOS4xLTMuNyA2LjcgMS4zIDkuMSAzLjcgMy44IDUuNiAzLjkgOWwwIDI2LjIgMjYuMyAwem01Mi40IDI1LjhjMCAxMi0yLjQgMjMuOC02LjkgMzQuOXMtMTEuMyAyMS4xLTE5LjcgMjkuNi0xOC41IDE1LjItMjkuNiAxOS43LTIyLjkgNi45LTM0LjkgNi45bC0uNiAwYy0yNC4yIDAtNDcuMy05LjYtNjQuNC0yNi43UzI2LjMgMjkzIDI2LjMgMjY4LjhsLTI2LjMgMCAwIC4yYzAgMTUuNCAzLjEgMzAuNyA5IDQ0LjlzMTQuNiAyNy4yIDI1LjUgMzguMSAyMy45IDE5LjUgMzguMSAyNS40IDI5LjUgOC45IDQ0LjkgOC45bC44IDBjMTUuNCAwIDMwLjctMyA0NC45LTlzMjcuMi0xNC42IDM4LjEtMjUuNSAxOS41LTIzLjggMjUuNC0zOC4xIDguOS0yOS41IDguOS00NC45bDAtMjYtMjYuMyAwIDAgMjZ6bS0xNTcuMiAwYy4xIDE3LjMgNyAzMy45IDE5LjIgNDYuMXMyOC44IDE5LjEgNDYuMSAxOS4xIDMzLjktNi45IDQ2LjEtMTkuMSAxOS4yLTI4LjggMTkuMi00Ni4xbC0yNi4zIDBjLS4yIDEwLjItNC40IDIwLTExLjcgMjcuMnMtMTcuMSAxMS4yLTI3LjQgMTEuMi0yMC4xLTQtMjcuNC0xMS4yLTExLjUtMTYuOS0xMS43LTI3LjJsMC0yNi0yNi4zIDAgMC0yNi42Yy4zLTE3LjMgNy40LTMzLjggMTkuNy00NS44czI5LTE4LjggNDYuMy0xOC42IDMzLjggNy4yIDQ1LjkgMTkuNSAxOC45IDI4LjkgMTguOSA0Ni4ybDAgMjUuMyAyNi4zIDAgMC0yNS4zYzAtMjQuMy05LjctNDcuNy0yNi45LTY0LjlzLTQwLjUtMjYuOS02NC45LTI2LjktNDcuNyA5LjctNjQuOSAyNi45LTI2LjkgNDAuNS0yNi45IDY0LjlsMCAyNS40IDI2LjMgMCAwIDI2em00MTguNC03MS4yYzEzLjcgMCAyNC42IDYuNiAzMC4xIDE4LjNsLjcgMS41IDIzLjItMTEuNS0uNi0xLjRjLTgtMTkuMy0yOC41LTMxLjMtNTMuNC0zMS4zLTIzLjEgMC00My42IDExLjQtNTEgMjguNC0uMSAyNi45LS4yIDIzLjkgMCAyNC44IDQuNyAxMSAxNC42IDE5LjQgMjguNyAyNC4yIDYuNSAyIDEzLjEgMy4zIDE5LjggNCA1LjUgLjcgMTAuNiAxLjQgMTUuOCAzLjEgNi40IDIuMSAxMC41IDUuMyAxMi44IDkuOGwwIDkuOWMtMy43IDcuNS0xMy44IDEyLjMtMjUuOCAxMi4zLTE0LjMgMC0yNi02LjktMzEuOS0xOWwtLjctMS41LTIzIDExLjUgLjYgMS40YzcuOSAxOS40IDI5LjYgMzIgNTUuMyAzMiAyMy42IDAgNDQuNi0xMS40IDUyLjMtMjguNGwuMi0yNS45LS4yLS43Yy00LjktMTEtMTUuMi0xOS42LTI4LjktMjQuMi03LjctMi43LTE0LjMtMy42LTIwLjctNC40LTUtLjUtMTAtMS41LTE0LjgtMi45LTYuMy0xLjktMTAuNC01LjEtMTIuNi05LjZsMC04LjRjMy40LTcuNCAxMi45LTEyLjEgMjQuMi0xMi4xbDAgMHpNMjg3LjYgMzExLjNsMjYuMSAwIDAtNjguNC0yNi4xIDAgMCA2OC40ek02MzkuOCAyNThjLTIuOS02LjMtOC4zLTEyLTE1LjQtMTYuNyA1LjYtMy44IDEwLjEtOS4xIDEzLTE1LjNsLjItMjUuMy0uMi0uN2MtNy40LTE2LTI2LjctMjYuNy00OC4yLTI2LjdTNTQ4LjUgMTg0IDU0MS4xIDIwMGwtLjIgMjUuMyAuMiAuN2MyLjkgNi4xIDcuNCAxMS40IDEzIDE1LjMtNy4yIDQuNy0xMi41IDEwLjUtMTUuNCAxNi43bC0uMiAyOC45IC4yIC43YzcuNiAxNiAyNy45IDI2LjcgNTAuNiAyNi43czQzLjEtMTAuNyA1MC42LTI2LjdsLjItMjguOS0uMi0uN3ptLTczLjItNTAuOGMzLjYtNi4zIDEyLjYtMTAuNSAyMi42LTEwLjVzMTkgNC4yIDIyLjYgMTAuNWwwIDEzLjdjLTMuNSA2LjItMTIuNiAxMC4zLTIyLjYgMTAuM3MtMTkuMS00LjItMjIuNi0xMC4zbDAtMTMuN3ptNDcuMyA3Mi4yYy0zLjggNi42LTEzLjMgMTAuOS0yNC43IDEwLjktMTEuMSAwLTIxLTQuNC0yNC43LTEwLjlsMC0xNi4yYzMuNy02LjMgMTMuNS0xMC41IDI0LjctMTAuNSAxMS4zIDAgMjAuOSA0LjEgMjQuNyAxMC41bDAgMTYuMnpNMzc2LjQgMjY2bC01OS44LTg5LjctMjkgMCAwIDQwLjYgMjYuNSAwIDAgLjQgNjIuNSA5NC4xIDI1LjcgMCAwLTEzNS4xLTI1LjkgMCAwIDg5Ljd6Il19LFphZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtcGludGVyZXN0IixpY29uOls0NDgsNTEyLFsicGludGVyZXN0LXNxdWFyZSJdLCJmMGQzIiwiTTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDcyLjYgMC0yLjItLjhjLTUuNC00OC4xLTMuMS01Ny41IDE1LjctMTM0LjcgMy45LTE2IDguNS0zNSAxMy45LTU3LjkgMCAwLTcuMy0xNC44LTcuMy0zNi41IDAtNzAuNyA3NS41LTc4IDc1LjUtMjUgMCAxMy41LTUuNCAzMS4xLTExLjIgNDkuOC0zLjMgMTAuNi02LjYgMjEuNS05LjEgMzItNS43IDI0LjUgMTIuMyA0NC40IDM2LjQgNDQuNCA0My43IDAgNzcuMi00NiA3Ny4yLTExMi40IDAtNTguOC00Mi4zLTk5LjktMTAyLjYtOTkuOS02OS45IDAtMTEwLjkgNTIuNC0xMTAuOSAxMDYuNiAwIDIxLjEgOC4yIDQzLjcgMTguMyA1NiAyIDIuNCAyLjMgNC41IDEuNyA3LTEuMSA0LjctMy4xIDEyLjktNC43IDE5LjItMSA0LTEuOCA3LjMtMi4xIDguNi0xLjEgNC41LTMuNSA1LjUtOC4yIDMuMy0zMC42LTE0LjMtNDkuOC01OS4xLTQ5LjgtOTUuMSAwLTc3LjUgNTYuMi0xNDguNiAxNjIuMi0xNDguNiA4NS4yIDAgMTUxLjQgNjAuNyAxNTEuNCAxNDEuOCAwIDg0LjYtNTMuMyAxNTIuNy0xMjcuNCAxNTIuNy0yNC45IDAtNDguMy0xMi45LTU2LjMtMjguMiAwIDAtMTIuMyA0Ni45LTE1LjMgNTguNC01IDE5LjMtMTcuNiA0Mi45LTI3LjQgNTkuM0wzODQgNDgwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0eiJdfSxnb3Q9WmFlLGJvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibHVldG9vdGgtYiIsaWNvbjpbMjU2LDUxMixbXSwiZjI5NCIsIk0xNjQuOSAyNjBMMjU3LjUgMTU2LjcgMTExLjYgMCAxMTEuNiAyMDYuMyAyNS40IDEyMC4yLTYgMTUxLjYgMTAyLjEgMjYwLTYgMzY4LjQgMjUuNCAzOTkuOCAxMTEuNiAzMTMuNyAxMTQuMyA1MTIgMjYyLjggMzYzLjQgMTY0LjkgMjYwem00MC45LTEwM2wtNTAgNTAtLjMtMTAwLjMgNTAuMyA1MC4zem0tNTAgMTU2bDUwIDUwLTUwLjMgNTAuMyAuMy0xMDAuM3oiXX0sdm90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdyaXBmaXJlIixpY29uOlszMjAsNTEyLFtdLCJmM2FjIiwiTTgwLjUgMzAxLjRjMC03My44IDEwNS4xLTEyMi41IDEwNS4xLTIwMyAwLTQ3LjEtMzQtODgtMzkuMS05MC40IC40IDMuMyAuNiA2LjcgLjYgMTAgMCA5Mi4xLTE0Ny4xIDE1My45LTE0Ny4xIDI2OC42IDAgNDkuOCAzMi4yIDc5LjIgNjYuNSAxMDguMyA2NS4xIDQ2LjcgNzguMSA3MS40IDc4LjEgODYuNiAwIDEwLjEtNC44IDE3LTQuOCAyMi4zIDEzLjEtMTYuNyAxNy40LTMxLjkgMTcuNS00Ni40IDAtMjkuNi0yMS43LTU2LjMtNDQuMi04Ni41LTE2LTIyLjMtMzIuNi00Mi42LTMyLjYtNjkuNXptMjA1LjMtMzljLTEyLjEtNjYuOC03OC0xMjQuNC05NC43LTEzMC45bDQgNy4yYzIuNCA1LjEgMy40IDEwLjkgMy40IDE3LjEgMCA0NC43LTU0LjIgMTExLjItNTYuNiAxMTYuNy0yLjIgNS4xLTMuMiAxMC41LTMuMiAxNS44IDAgMjAuMSAxNS4yIDQyLjEgMTcuOSA0Mi4xIDIuNCAwIDU2LjYtNTUuNCA1OC4xLTg3LjcgNi40IDExLjcgOS4xIDIyLjYgOS4xIDMzLjQgMCA0MS4yLTQxLjggOTYuOS00MS44IDk2LjkgMCAxMS42IDMxLjkgNTMuMiAzNS41IDUzLjIgMSAwIDIuMi0xLjQgMy4yLTIuNCAzNy45LTM5LjMgNjcuMy04NSA2Ny4zLTEzNi44IDAtOC0uNy0xNi4yLTIuMi0yNC42eiJdfSxYYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWdvb2dsZS1wbHVzIixpY29uOls0NDgsNTEyLFsiZ29vZ2xlLXBsdXMtc3F1YXJlIl0sImYwZDQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTY0IDI1NmMwLTU1LjMgNDQuNy0xMDAgMTAwLTEwMCAyNyAwIDQ5LjUgOS44IDY3IDI2LjJsLTI3LjEgMjYuMWMtNy40LTcuMS0yMC4zLTE1LjQtMzkuOC0xNS40LTM0LjEgMC02MS45IDI4LjItNjEuOSA2My4yIDAgMzQuOSAyNy44IDYzLjIgNjEuOSA2My4yIDM5LjYgMCA1NC40LTI4LjUgNTYuOC00My4xbC01Ni45IDAgMC0zNC40IDk0LjQgMGMxIDUgMS42IDEwLjEgMS42IDE2LjYgMCA1Ny4xLTM4LjMgOTcuNi05NiA5Ny42LTU1LjMgMC0xMDAtNDQuNy0xMDAtMTAwem0yOTEgMTguMmwwIDI5LTI5LjIgMCAwLTI5LTI5IDAgMC0yOS4yIDI5IDAgMC0yOSAyOS4yIDAgMCAyOSAyOSAwIDAgMjkuMi0yOSAweiJdfSx4b3Q9WGFlLHlvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRlZSIsaWNvbjpbNTEyLDUxMixbXSwiZTg2MyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnpNMzg1LjYgMTEzLjhsMCAwLTE3NyAwYy01Mi40IDAtOTQuOCA0Mi40LTk0LjggOTQuOGwwIDE3N2MwIDcgNS43IDEyLjYgMTIuNiAxMi42bDE4Ni41IDBjNDcuMSAwIDg1LjMtMzguMiA4NS4zLTg1LjNsMC03Mi43YzAtNy01LjctMTIuNi0xMi42LTEyLjZsLTE0NS40IDBjLTcgMC0xMi42IDUuNy0xMi42IDEyLjZsMCAzMS42YzAgNi42IDUuMSAxMi4xIDExLjYgMTIuNmwxIDAgODguNSAwYzYuNiAwIDEyLjEgNS4xIDEyLjYgMTEuNmwwIDEgMCA2LjNjMCAyMC45LTE3IDM3LjktMzcuOSAzNy45bC0xMjAuMSAwYy03IDAtMTIuNi01LjctMTIuNi0xMi42bDAtMTIwLjFjMC0yMC40IDE2LjEtMzcuMSAzNi40LTM3LjlsMS42IDAgMTc3IDBjNyAwIDEyLjYtNS43IDEyLjYtMTIuNmwwLTMxLjZjMC03LTUuNi0xMi42LTEyLjYtMTIuNnoiXX0sd290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InhtcHAiLGljb246WzU3Niw1MTIsW10sImU4NjQiLCJNMCA0Ny4yYzMuNSAxMzcuMSAxMTcuMSAyNzguNiAyNTIuOSAzNTYuNy0zMS41IDI1LTY3LjIgNDQuMS0xMDYuMiA1My45bDAgNS40YzU2LjQtMi4zIDk4LjEtMjAuMSAxNDEuMy00MC43IDY1LjcgMzQuNiAxMjIuMiAzOS45IDE0MS40IDQwLjdsMC01LjRjLTM5LTkuOC03NC43LTI4LjgtMTA2LjItNTMuOCAxMzUuNy03OC4yIDI0OS4zLTIxOS44IDI1Mi44LTM1Ni44LTU4LjQgMjUuNy0xMTkuMSA0NC4yLTE4MC4xIDYyLjNsMCAwYzMuNCA1OS0yMC4yIDE3MC40LTEwNy45IDI2Mi4zLTg4LjQtOTIuMy0xMTEuMi0yMDQuMS0xMDcuOC0yNjIuM2wwIDBDMTE3LjcgOTIuNiA1OS4zIDcwLjIgMCA0Ny4yek05My45IDk3bDczLjYgMjEuOEMxNjUuNCAyMTYgMjI2LjggMzU4IDM0MS4zIDQzMi4yIDE5MC41IDM3Ni45IDg5LjkgMjE1LjcgOTMuOSA5N3ptMzg4LjMgMGMzLjMgOTktNjUuNiAyMjQuNy0xNzEuNyAyOTYuNC00LjctNC4xLTkuMy04LjQtMTMuOC0xMi43IDc3LTgwLjIgMTEzLjItMTg2LjMgMTExLjktMjYxLjlMNDgyLjEgOTd6TTI2NC41IDQxMC41YzMgMS42IDUuOSAzLjIgOC45IDQuNy0xMi41IDYuNC0yNS40IDEyLjEtMzguNiAxNyAxMC4zLTYuNyAyMC4yLTEzLjkgMjkuNy0yMS43eiJdfSxNb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwLXN0b3JlIixpY29uOls1MTIsNTEyLFtdLCJmMzZmIiwiTTI1NS45IDEyMC45bDkuMS0xNS43YzUuNi05LjggMTguMS0xMy4xIDI3LjktNy41czEzLjEgMTguMSA3LjUgMjcuOWwtODcuNSAxNTEuNSA2My4zIDBjMjAuNSAwIDMyIDI0LjEgMjMuMSA0MC44bC0xODUuNSAwYy0xMS4zIDAtMjAuNC05LjEtMjAuNC0yMC40czkuMS0yMC40IDIwLjQtMjAuNGw1MiAwIDY2LjYtMTE1LjQtMjAuOC0zNi4xYy01LjYtOS44LTIuMy0yMi4yIDcuNS0yNy45IDkuOC01LjYgMjIuMi0yLjMgMjcuOSA3LjVsOC45IDE1Ljd6bS03OC43IDIxOGwtMTkuNiAzNGMtNS42IDkuOC0xOC4xIDEzLjEtMjcuOSA3LjVzLTEzLjEtMTguMS03LjUtMjcuOWwxNC42LTI1LjJjMTYuNC01LjEgMjkuOC0xLjIgNDAuNCAxMS42em0xNjguOS02MS43bDUzLjEgMGMxMS4zIDAgMjAuNCA5LjEgMjAuNCAyMC40UzQxMC41IDMxOCAzOTkuMiAzMThsLTI5LjUgMCAxOS45IDM0LjVjNS42IDkuOCAyLjMgMjIuMi03LjUgMjcuOS05LjggNS42LTIyLjIgMi4zLTI3LjktNy41LTMzLjUtNTguMS01OC43LTEwMS42LTc1LjQtMTMwLjYtMTcuMS0yOS41LTQuOS01OS4xIDcuMi02OS4xIDEzLjQgMjMgMzMuNCA1Ny43IDYwLjEgMTA0ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQwIDI1NmEyMTYgMjE2IDAgMSAxIDQzMiAwIDIxNiAyMTYgMCAxIDEgLTQzMiAweiJdfSxrb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2l4IixpY29uOls2NDAsNTEyLFtdLCJmNWNmIiwiTTM5My40IDEzMS43YzAgMTMgMi4xIDMyLjctMjguNyA0My44LTkuNSAzLjQtMTYgOS43LTE2IDkuNyAwLTMxIDQuNy00Mi4yIDE3LjQtNDguOSA5LjgtNS4xIDI3LjItNC42IDI3LjItNC42ek0yNzcuNiAxNjcuMmwtMzQuMiAxMzIuNy0yOC41LTEwOC42Yy03LjctMzItMjAuOC00OC41LTQ4LjQtNDguNS0yNy40IDAtNDAuNyAxNi4yLTQ4LjQgNDguNUw4OS41IDI5OS45IDU1LjMgMTY3LjJDNDkuNyAxNDAuNSAyMy45IDEyOSAwIDEzMkw2NS42IDM3OS45czIxLjYgMS42IDMyLjUtNGMxNC4yLTcuMiAyMS0xMi44IDI5LjYtNDYuNiA3LjctMzAuMSAyOS4xLTExOC40IDMxLjEtMTI0LjcgNC44LTE0LjkgMTEuMS0xMy44IDE1LjQgMCAyIDYuMyAyMy41IDk0LjYgMzEuMSAxMjQuNyA4LjYgMzMuNyAxNS40IDM5LjMgMjkuNiA0Ni42IDEwLjggNS41IDMyLjUgNCAzMi41IDRMMzMyLjkgMTMyYy0yNC40LTMuMS00OS44IDguOS01NS4zIDM1LjN6bTExNS44IDUuMnMtNC4xIDYuMy0xMy41IDExLjZjLTYgMy40LTExLjggNS42LTE4IDguNi0xNS4xIDcuMy0xMy4yIDEzLjktMTMuMiAzNS4ybDAgMTUyLjFzMTYuNiAyLjEgMjcuNC0zLjRjMTMuOS03LjEgMTcuMS0xNCAxNy4zLTQ0LjhsMC0xNTAuMyAwIDAgMC05em0xNjMuNCA4NC4xTDY0MCAxMzIuOHMtMzUuMS02LTUyLjUgOS44Yy0xMy4zIDEyLjEtMjQuNCAyOS42LTU0LjIgNzIuNS0uNSAuNy02LjMgMTAuNS0xMy4xIDAtMjkuMy00Mi4yLTQwLjgtNjAuMy01NC4yLTcyLjUtMTcuNC0xNS44LTUyLjUtOS44LTUyLjUtOS44bDgzLjIgMTIzLjctODMgMTIzLjRzMzYuNiA0LjYgNTQtMTEuMmMxMS41LTEwLjUgMTcuNi0yMC40IDUyLjUtNzAuNyA2LjgtMTAuNSAxMi42LS44IDEzLjEgMCAyOS40IDQyLjQgMzkuMiA1OC4xIDUzLjEgNzAuNyAxNy40IDE1LjggNTMuMyAxMS4yIDUzLjMgMTEuMmwtODMtMTIzLjR6Il19LFNvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnRlcmNvbSIsaWNvbjpbNDQ4LDUxMixbXSwiZjdhZiIsIk0zOTIgMzJMNTYgMzJDMjUuMSAzMiAwIDU3LjEgMCA4OEwwIDQyNGMwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMzYgMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTMzNmMwLTMwLjktMjUuMS01Ni01Ni01NnpNMjgzLjcgMTE0LjFjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxOTkuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTE5OS41em0tNzQuNi03LjVjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAyMTYuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTIxNi41em0tNzQuNyA3LjVjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxOTkuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMGwwLTE5OS41ek01OS43IDE0NGMwLTE5LjggMjkuOS0xOS44IDI5LjkgMGwwIDEzNC4zYzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTM0LjN6TTM4My4xIDM3MS44Yy03Mi44IDYzLTI0MS43IDY1LjQtMzE4LjEgMC0xNS0xMi44IDQuNC0zNS41IDE5LjQtMjIuNyA2NS45IDU1LjMgMjE2LjEgNTMuOSAyNzkuMyAwIDE0LjktMTIuOSAzNC4zIDkuOCAxOS40IDIyLjd6bTUuMi05My41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwbDAtMTM0LjNjMC0xOS44IDI5LjktMTkuOCAyOS45IDBsMCAxMzQuM3oiXX0sem90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlYWN0ZXVyb3BlIixpY29uOls1NzYsNTEyLFtdLCJmNzVkIiwiTTI1MC43IDIxMS43bDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xLTIuMy02LjgtMi4zIDYuOC03LjIgLjEgNS43IDQuMy0yIDYuOHptNjMuNyAwbDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4yLS4xLTIuMy02LjgtMi4zIDYuOC03LjIgLjEgNS43IDQuMy0xLjkgNi44em0tOTEuMyA1MC41bC0zLjQgMGMtNC44IDAtMy44IDQtMy44IDEyLjEgMCA0LjctMi4zIDYuMS01LjggNi4xcy01LjgtMS40LTUuOC02LjFsMC0zNi42YzAtNC43IDIuMy02LjEgNS44LTYuMXM1LjggMS40IDUuOCA2LjFjMCA3LjItLjcgMTAuNSAzLjggMTAuNWwzLjQgMGM0LjctLjEgMy44LTMuOSAzLjgtMTIuMyAwLTkuOS02LjctMTQuMS0xNi44LTE0LjFsLS4yIDBjLTEwLjEgMC0xNi44IDQuMi0xNi44IDE0LjFsMCA0MC4xYzAgMTAuNCA2LjcgMTQuMSAxNi44IDE0LjFsLjIgMGMxMC4xIDAgMTYuOC0zLjggMTYuOC0xNC4xIDAtOS45IDEuMS0xMy44LTMuOC0xMy44em0tODAuNyAxNy40bC0xNC43IDAgMC0xOS4zIDExLjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44bC0xMS40IDAgMC0xOC4zIDE0LjQgMGMyLjUgMCAzLjgtMS4zIDMuOC0zLjhsMC0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44bC0yMS43IDBjLTIuNC0uMS0zLjcgMS4zLTMuNyAzLjhsMCA1OS4xYzAgMi41IDEuMyAzLjggMy44IDMuOGwyMS45IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOHptLTQyLTE4LjVjNC42LTIgNy4zLTYgNy4zLTEyLjRsMC0xMS45YzAtMTAuMS02LjctMTQuMS0xNi44LTE0LjFsLTEzLjQgMGMtMi41IDAtMy44IDEuMy0zLjggMy44bDAgNTkuMWMwIDIuNSAxLjMgMy44IDMuOCAzLjhsMy40IDBjMi41IDAgMy44LTEuMyAzLjgtMy44bDAtMjIuOSA1LjYgMCA3LjQgMjMuNWMuMiAxIC44IDEuOCAxLjYgMi40czEuOCAuOSAyLjcgLjhsMy4zIDBjMi44IDAgNC0xLjggMy4yLTQuNGwtOC4xLTIzLjl6bS0zLjgtMTRjMCA0LjgtMi41IDYuMS02LjEgNi4xbC01LjggMCAwLTIwLjkgNS44IDBjMy42IDAgNi4xIDEuMyA2LjEgNi4xbDAgOC43ek0xNzYuMSAyMjZjLS4xLS41LS4yLTEtLjQtMS40cy0uNi0uOC0xLTEuMS0uOC0uNi0xLjMtLjctMS0uMi0xLjUtLjFsLTYuOSAwYy0uNSAwLTEgMC0xLjQgLjJzLS45IC40LTEuMyAuNy0uNyAuNy0uOSAxLjEtLjQgLjktLjQgMS40bC0xMSA1OS4yYy0uNSAyLjcgLjkgNC4xIDMuNCA0LjFsMyAwYy41IC4xIDEgMCAxLjUtLjJzLjktLjQgMS4zLS43IC43LS43IC45LTEuMiAuNC0uOSAuNC0xLjRsMS44LTExLjMgMTIuMiAwIDEuOCAxMS4zYzAgLjUgLjIgMSAuNCAxLjRzLjUgLjkgLjkgMS4yIC44IC42IDEuMyAuNyAxIC4yIDEuNSAuMmwzLjUgMGMyLjYgMCAzLjktMS40IDMuNC00LjFMMTc2LjEgMjI2em0tMTIuMyAzOS4zbDQuNy0yOS43IDQuNyAyOS43LTkuNCAwem04OS4zIDIwLjJsMC01My4yIDcuNSAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwLTIuMWMwLTIuNS0xLjMtMy44LTMuOC0zLjhsLTI1LjggMGMtMi41IDAtMy44IDEuMy0zLjggMy44bDAgMi4xYzAgMi41IDEuMyAzLjggMy44IDMuOGw3LjMgMCAwIDUzLjJjMCAyLjUgMS4zIDMuOCAzLjggMy44bDMuNCAwYzIuNSAwIDMuOC0xLjMgMy44LTMuOGwwIDB6bTI0OC0uOGwtMTkuNCAwIDAtMjYuNyAxNi4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMTYuMSAwIDAtMjUuOCAxOS4xIDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS43IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwtMjIuMiAwYy0uMy0uMS0uNS0uMS0uOCAwcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNy0uMSAuNS0uMSAuOGwwIDYzYzAgLjMgMCAuNSAuMSAuOHMuMiAuNSAuNCAuNiAuNCAuMyAuNyAuNCAuNSAuMSAuOCAuMWwyMi41IDBjLjMgMCAuNSAwIC44LS4xcy41LS4yIC43LS40IC4zLS40IC40LS42IC4xLS41IC4xLS44bDAtLjhjMC0uMyAwLS41LS4xLS44cy0uMi0uNS0uNC0uNy0uNC0uMy0uNy0uNC0uNS0uMS0uOC0uMWwwIDB6TTQwOCAyMjEuOGwtLjggMGMtMTAuMSAwLTE1LjMgNC43LTE1LjMgMTQuMWwwIDQwLjFjMCA5LjMgNS4yIDE0LjEgMTUuMyAxNC4xbC44IDBjMTAuMSAwIDE1LjMtNC44IDE1LjMtMTQuMWwwLTQwLjFjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xbDAgMHptMTAuMiA1Mi40Yy0uMSA4LTMgMTEuMS0xMC41IDExLjFzLTEwLjUtMy4xLTEwLjUtMTEuMWwwLTM2LjZjMC03LjkgMy0xMS4xIDEwLjUtMTEuMXMxMC41IDMuMiAxMC41IDExLjFsMCAzNi42em0tNDYuNS0xNC41YzYuMS0xLjYgOS4yLTYuMSA5LjItMTMuM2wwLTkuN2MwLTkuNC01LjItMTQuMS0xNS4zLTE0LjFsLTEzLjcgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDYzYzAgLjMgMCAuNSAuMSAuOHMuMiAuNSAuNCAuNiAuNCAuMyAuNyAuNCAuNSAuMSAuOCAuMWwxLjIgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjYtLjQgLjMtLjQgLjQtLjYgLjEtLjUgLjEtLjhsMC0yNi45IDExLjYgMCAxMC40IDI3LjJjLjIgLjUgLjUgLjkgLjkgMS4xcy45IC40IDEuNCAuNGwxLjUgMGMxLjQgMCAyLTEgMS41LTIuM2wtMTAuNi0yNy4zem0tNi40LTMuOWwtMTAuMiAwIDAtMjguNSAxMC4yIDBjNy41IDAgMTAuNSAzLjEgMTAuNSAxMS4xbDAgNi40YzAgNy44LTMgMTEtMTAuNSAxMWwwIDB6bTg1LjktMzMuMWwtMTMuNyAwYy0uMy0uMS0uNS0uMS0uOCAwcy0uNSAuMi0uNyAuNC0uMyAuNC0uNCAuNy0uMSAuNS0uMSAuOGwwIDYzYzAgLjMgMCAuNSAuMSAuOHMuMiAuNSAuNCAuNiAuNCAuMyAuNyAuNCAuNSAuMSAuOCAuMWwxLjIgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjYtLjQgLjMtLjQgLjQtLjYgLjEtLjUgLjEtLjhsMC0yNi4xIDEwLjYgMGMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xbDAtMTAuNWMwLTkuNC01LjItMTQuMS0xNS4zLTE0LjF6bTEwLjIgMjIuOGMwIDcuOS0zIDExLjEtMTAuNSAxMS4xbC0xMC4yIDAgMC0yOS4yIDEwLjIgMGM3LjUtLjEgMTAuNSAzLjEgMTAuNSAxMWwwIDcuMXpNMjU5LjYgMzA4bC0yLjMtNi44LTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMXpNNDg3LjIgMTcxLjljLTExLjctNC40LTIzLjUtOC4xLTM1LjYtMTEuMyAxOS42LTc4IDExLjYtMTM0LjctMjIuMy0xNTMuOS0zNC41LTE5LjQtODUuOSA0LjMtMTM4LjIgNTUuMiAzLjQgMy4zIDYuOCA2LjcgMTAuMiAxMC4yIDgyLjUtODAgMTE5LjYtNTMuNSAxMjAuOS01Mi44IDIyLjQgMTIuNyAzNiA1NS44IDE1LjUgMTM3LjgtMjcuOC02LjQtNTYuMS0xMC43LTg0LjYtMTMtNzEuOS0xMDAuNS0xNDAuNi0xNDIuMS0xODIuMi0xNDIuMS0zMC44IDAtNDMuOCAyMS00Ny42IDI3LjctMTguMSAzMi0xMy4zIDg0LjIgLjEgMTMzLjgtNzAuNSAyMC4zLTEyMC43IDU0LjEtMTIwLjMgOTUgLjUgNTkuNiAxMDMuMiA4Ny44IDEyMi4xIDkyLjgtMjAuNSA4MS45LTEwLjEgMTM1LjYgMjIuMyAxNTMuOSAyOCAxNS44IDc1LjEgNiAxMzguMi01NS4yLTMuNC0zLjMtNi44LTYuNy0xMC4yLTEwLjItODIuNSA4MC0xMTkuNyA1My41LTEyMC45IDUyLjgtMjIuMy0xMi42LTM2LTU1LjYtMTUuNS0xMzcuOSAxMi40IDIuOSA0MS44IDkuNSA4NC42IDEzIDcxLjkgMTAwLjQgMTQwLjYgMTQyIDE4Mi4xIDE0MiAzMC44IDAgNDMuOC0yMSA0Ny42LTI3LjcgMTgtMzEuOSAxMy4zLTg0LjEtLjEtMTMzLjggMTUyLjMtNDMuOCAxNTYuMi0xMzAuMiAzMy45LTE3Ni4zbDAgMHpNMTM2IDM2LjhjMi45LTUuMSAxMS45LTIwLjMgMzQuOS0yMC4zIDM2LjggMCA5OC44IDM5LjYgMTYzLjMgMTI2LjItMzEuMy0xLjgtNjIuNy0xLjUtOTMuOSAuOSAxMy0xOC4zIDI3LjEtMzUuOCA0Mi4yLTUyLjQtMy40LTMuNS02LjgtNi45LTEwLjItMTAuMi0xOC4zIDIwLjItMzUuMyA0MS43LTUwLjcgNjQuMi0yOC41IDIuNy01Ni43IDcuNi04NC40IDE0LjYtLjItMS40LTI0LjMtODIuMi0xLjItMTIzbDAgMHpNNDQwLjggNDc1LjFjLTIuOSA1LjEtMTEuOCAyMC4zLTM0LjkgMjAuMy0zNi43IDAtOTguNy0zOS40LTE2My4zLTEyNi4yIDMxLjMgMS44IDYyLjcgMS41IDkzLjktLjktMTMgMTguMy0yNy4xIDM1LjgtNDIuMiA1Mi40IDMuNCAzLjUgNi44IDYuOSAxMC4yIDEwLjIgMTguNC0yMC4yIDM1LjMtNDEuNyA1MC43LTY0LjIgNDcuMy00LjcgODAuMy0xMy41IDg0LjQtMTQuNiAyMi43IDg0LjQgNC41IDExNyAxLjIgMTIzem05LjEtMTM4LjZjLTMuNi0xMS45LTcuNy0yNC4xLTEyLjQtMzYuNC0yLjEgMC00LjItLjUtNi4xLTEuNXMtMy41LTIuNC00LjYtNC4ybC0uMSAuMWMtMS42IDEuNS0zLjQgMi43LTUuNCAzLjYgNS43IDE0LjMgMTAuNiAyOC40IDE0LjcgNDIuMi0yMy43IDYtNDcuNyAxMC4zLTcyIDEzIDMuNS01LjMgMTcuMi0yNi4yIDMyLjItNTQuMi0yLjEtLjgtNC4yLTEuOS02LTMuMi0xLjEgMS4yLTMuNiA0LjItMTAuOSA0LjItNi4yIDExLjItMTcuNCAzMC45LTMzLjkgNTUuMi0zNy40IDMuMy03NSAzLjYtMTEyLjQgMS03LjktMTEuMi0yMS41LTMxLjEtMzYuOC01Ny44LTEtLjQtMi0uOS0zLTEuNS0xLjkgMS42LTMuOSAzLjItMTIuNiAzLjIgNi4zIDExLjIgMTcuNSAzMC43IDMzLjggNTQuNi0yNC4zLTIuMy00OC40LTYuMi03Mi4yLTExLjcgMy45LTE0IDguNi0yOC4zIDE0LjEtNDIuOS0zLjIgMC01LjQgLjItOC40LTEtMi4yIC44LTQuNiAxLjEtNi45IDEtNC45IDEzLjQtOS4xIDI2LjUtMTIuNyAzOS40LTE1OS45LTQyLjYtMTQwLjMtMTIzLjYtMS41LTE2NCAzLjYgMTEuOSA3LjcgMjQuMSAxMi40IDM2LjQgMTAuNCAwIDEyLjkgMy40IDE0LjQgNS4zIC43LS44IDEuNC0xLjYgMi4zLTIuMi01LjgtMTQuNy0xMC45LTI5LjItMTUuMi00My4zIDctMS44IDMyLjQtOC40IDcyLTEzLTE1LjkgMjQuMy0yNi43IDQzLjktMzIuOCA1NS4zIDMuMSAxLjggNS4zIDQuNiA2LjQgOCAyLjUtMy43IDYuMS02LjYgMTAuMi04LjQgNi41LTExLjcgMTcuOS0zMS45IDM0LjgtNTYuOSAzNy40LTMuMyA3NS0zLjYgMTEyLjQtMSAzMS41IDQ0LjYgMjguOSA0OC4xIDQyLjUgNjQuNSAyLjYtMy41IDYuMy02IDEwLjQtNy40LTYuNC0xMS40LTE3LjYtMzEtMzQuMy01NS41IDQwLjQgNC4xIDY1IDEwIDcyLjIgMTEuNy00IDE0LjQtOC45IDI5LjItMTQuNiA0NC4yIDIuNSAxIDQuOCAyLjQgNi44IDQuM2wuMSAuMWMxLTEuNSAyLjMtMi44IDMuOC0zLjhzMy4zLTEuNiA1LjEtMS44YzQuOS0xMy40IDkuMi0yNi42IDEyLjgtMzkuNSAxMS43IDMuMSAyMy4yIDYuOCAzNC41IDExIDEwNi4xIDM5LjkgNzQgODcuOSA3Mi42IDkwLjQtMTkuOCAzNS4xLTgwLjEgNTUuMi0xMDUuNyA2Mi41em0tMTE0LjQtMTE0bC0xLjIgMGMtLjMgMC0uNSAwLS44IC4xcy0uNSAuMi0uNiAuNC0uMyAuNC0uNCAuNi0uMSAuNS0uMSAuOGwwIDQ5LjhjMCA3LjktMi42IDExLjEtMTAuMSAxMS4xcy0xMC4xLTMuMS0xMC4xLTExLjFsMC00OS44YzAtLjMgMC0uNS0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjMtLjctLjQtLjUtLjEtLjgtLjFsLTEuMiAwYy0uMyAwLS41IDAtLjggLjFzLS41IC4yLS43IC40LS4zIC40LS40IC42LS4xIC41LS4xIC44bDAgNTEuNWMwIDkuNiA1IDE0LjEgMTUuMSAxNC4xbC40IDBjMTAuMSAwIDE1LjEtNC42IDE1LjEtMTQuMWwwLTUxLjVjMC0uMy0uMS0uNS0uMi0uOHMtLjMtLjUtLjUtLjYtLjQtLjMtLjctLjQtLjUtLjEtLjgtLjF6TTMyMS44IDMwOGwtMi4zLTYuOC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6bS0zMS4xIDcuNGwtMi4zLTYuOC0yLjMgNi44LTcuMSAuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjEtLjF6bTUuMS0zMC44bC0xOS40IDAgMC0yNi43IDE2LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0xNi4xIDAgMC0yNS44IDE5LjEgMGMuMyAwIC41IDAgLjgtLjFzLjUtLjIgLjctLjQgLjMtLjQgLjQtLjcgLjEtLjUgLjEtLjhsMC0uOGMwLS4zIDAtLjUtLjEtLjhzLS4yLS41LS40LS43LS40LS4zLS43LS40LS41LS4xLS44LS4xbC0yMi4yIDBjLS4zIDAtLjUgMC0uOCAuMXMtLjUgLjItLjcgLjQtLjMgLjQtLjQgLjYtLjEgLjUtLjEgLjhsMCA2M2MwIC4zIDAgLjUgLjEgLjhzLjIgLjUgLjQgLjYgLjQgLjMgLjcgLjQgLjUgLjEgLjggLjFsMjIuNSAwYy4zIDAgLjUgMCAuOC0uMXMuNS0uMiAuNy0uNCAuMy0uNCAuNC0uNyAuMS0uNSAuMS0uOGwwLS44YzAtLjMgMC0uNi0uMS0uOHMtLjItLjUtLjQtLjctLjQtLjQtLjctLjQtLjUtLjEtLjgtLjFsMCAwem0tNy40LTk5LjRsLTIuMyA2LjgtNy4xIC4xIDUuNyA0LjMtMi4xIDYuOCA1LjgtNC4xIDUuOCA0LjEtMi4xLTYuOCA1LjctNC4zLTcuMS0uMS0yLjMtNi44eiJdfSxDb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2F6ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZiIsIk01MDIuNiAyMDEuN2MxNC41IDg1LjktMzAuOSAxNjcuOS0xMTMuMiAyMDguMSAxMyAzNC4xLTEyLjQgNzAuMi00OC4zIDcwLjItMTMuMiAwLTI2LTUuMS0zNS42LTE0LjJzLTE1LjMtMjEuNi0xNi0zNC44Yy02LjQgLjItNjQuMiAwLTc2LjMtLjYtLjMgNi44LTEuOSAxMy41LTQuNyAxOS42cy02LjkgMTEuNy0xMS45IDE2LjMtMTAuOCA4LjItMTcuMiAxMC41LTEzLjIgMy40LTE5LjkgMy4xYy0zMy45LTEuNC01OC0zNC44LTQ3LTY3LjktMzcuMi0xMy4xLTcyLjUtMzQuOS05OS42LTcwLjgtMTMtMTcuMy0uNS00MS44IDIwLjgtNDEuOCA0Ni4zIDAgMzIuMi01NC4yIDQzLjItMTEwLjMgMTguNC05My45IDExNi44LTE1Ny4xIDIxMS43LTE1Ny4xIDEwMi41IDAgMTk3LjIgNzAuNyAyMTQuMSAxNjkuN3pNMzczLjkgMzg4LjNjNDItMTkuMiA4MS4zLTU2LjcgOTYuMy0xMDIuMSA0MC41LTEyMy4xLTY0LjItMjI4LTE4MS43LTIyOC04My40IDAtMTcwLjMgNTUuNC0xODYuMSAxMzYtOS41IDQ4LjkgNSAxMzEuNC02OC43IDEzMS40IDI0LjkgMzMuMSA1OC4zIDUyLjYgOTMuNyA2NCAyNC43LTIxLjggNjMuOS0xNS41IDc5LjggMTQuMyAxNC4yIDEgNzkuMiAxLjIgODcuOSAuOCAzLjUtNi45IDguNS0xMi45IDE0LjctMTcuNXMxMy4yLTcuOSAyMC44LTkuNSAxNS40LTEuNCAyMi45IC40IDE0LjUgNS4zIDIwLjUgMTAuMnpNMjA1LjUgMTg3LjFjMC0zNC43IDUwLjgtMzQuNyA1MC44IDBzLTUwLjggMzQuNy01MC44IDB6bTExNi42IDBjMC0zNC43IDUwLjktMzQuNyA1MC45IDBzLTUwLjkgMzQuOC01MC45IDB6TTE5OS41IDI1Ny44Yy0zLjQtMTYuOSAyMi4yLTIyLjIgMjUuNi01LjJsLjEgLjNjNC4xIDIxLjQgMjkuOCA0NCA2NC4xIDQzLjEgMzUuNy0uOSA1OS4zLTIyLjIgNjQuMS00Mi44IDQuNS0xNi4xIDI4LjYtMTAuNCAyNS41IDYtNS4yIDIyLjItMzEuMiA2Mi05MS41IDYyLjktNDIuNiAwLTgwLjktMjcuOC04Ny45LTY0LjJsMCAweiJdfSxUb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1yZW1peCIsaWNvbjpbNTEyLDUxMixbXSwiZjRlZSIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6TTQxOC4xIDI2MC40bDQuOSAyLjIgMCA3MGMtNy4yIDMuNi02My40IDI3LjUtNjcuMyAyOC44LTYuNS0xLjgtMTEzLjctNDYuOC0xMzcuMy01Ni4ybC02NC4yIDI2LjYtNjMuMy0yNy41IDAtNjMuOCA1OS4zLTI0LjhjLS43LS43LS40IDUtLjQtNzAuNGw2Ny4zLTI5LjcgMTUxLjkgNjIuOSAwIDYxLjYgNDkuMSAyMC4zem0tNzAuNCA4MS41bDAtNDMuOC0uNCAwIDAtMS44LTExMy44LTQ2LjUgMCA0NS4yIDExMy44IDQ2LjkgMC0uNCAuNCAuNHptNy41LTU3LjZsMzkuOS0xNi40LTM2LjgtMTUuNS0zOSAxNi40IDM1LjkgMTUuNXptNTIuMyAzOC4xbDAtNDMtNDQuMyAxOC42IDAgNDMuNCA0NC4zLTE5eiJdfSxfb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmFuZGNhbXAiLGljb246WzUxMiw1MTIsW10sImYyZDUiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2em00OC4yIDMyNi4xbC0xODEgMCA4NC43LTE1Ni4xIDE4MSAwLTg0LjcgMTU2LjF6Il19LExvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtd2ViLWF3ZXNvbWUtc3Ryb2tlIixpY29uOls0NDgsNTEyLFtdLCJlNjg0IiwiTTY0IDY0QzQ2LjMgNjQgMzIgNzguMyAzMiA5NmwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMkw2NCA2NHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIzNSA4MS42bDUzIDQ2LjQgNTIuMi0xMC40Yy0yLjYtMy45LTQuMi04LjUtNC4yLTEzLjYgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDEzLTEwLjMgMjMuNi0yMy4yIDI0TDMwNC41IDM0OS4xYy01LjIgMTEuNS0xNi42IDE4LjktMjkuMiAxOC45bC0xMDIuNiAwYy0xMi42IDAtMjQtNy40LTI5LjItMTguOUw4Ny4yIDIyNGMtMTIuOS0uNC0yMy4yLTExLTIzLjItMjQgMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGMwIDUtMS41IDkuNy00LjIgMTMuNkwxNjAgMjI0IDIxMy4xIDE3Ny42Yy04LjktNC4xLTE1LTEzLjEtMTUtMjMuNiAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2YzAgMTAuNS02LjIgMTkuNS0xNS4xIDIzLjZ6Il19LEFvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2aW1lby12IixpY29uOls0NDgsNTEyLFtdLCJmMjdkIiwiTTQ0Ny44IDE1My42Yy0yIDQzLjYtMzIuNCAxMDMuMy05MS40IDE3OS4xLTYwLjkgNzkuMi0xMTIuNCAxMTguOC0xNTQuNiAxMTguOC0yNi4xIDAtNDguMi0yNC4xLTY2LjMtNzIuMy0zNS4yLTEyOS4yLTUwLjItMjA0LjktNzkuMy0yMDQuOS0zLjQgMC0xNS4xIDcuMS0zNS4yIDIxLjFMMCAxNjguMmM1MS42LTQ1LjMgMTAwLjktOTUuNyAxMzEuOC05OC41IDM0LjktMy40IDU2LjMgMjAuNSA2NC40IDcxLjUgMjguNyAxODEuNSA0MS40IDIwOC45IDkzLjYgMTI2LjcgMTguNy0yOS42IDI4LjgtNTIuMSAzMC4yLTY3LjYgNC44LTQ1LjktMzUuOC00Mi44LTYzLjMtMzEgMjItNzIuMSA2NC4xLTEwNy4xIDEyNi4yLTEwNS4xIDQ1LjggMS4yIDY3LjUgMzEuMSA2NC45IDg5LjR6Il19LERvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHJhdmEiLGljb246WzM4NCw1MTIsW10sImY0MjgiLCJNMTU4LjQgMEw3IDI5MiA5Ni4yIDI5MiAxNTguNCAxNzUuOSAyMjAuMSAyOTIgMzA4LjYgMjkyIDE1OC40IDB6TTMwOC42IDI5MmwtNDMuOSA4OC4yLTQ0LjYtODguMi02Ny42IDAgMTEyLjIgMjIwIDExMS41LTIyMC02Ny42IDB6Il19LEVvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmlyZWdpc3RyeSIsaWNvbjpbMzg0LDUxMixbXSwiZjQwNCIsIk0xOTIgNDgwYzM5LjUgMCA3Ni4yLTExLjggMTA2LjgtMzIuMmwtMjEzLjUgMEMxMTUuOCA0NjguMiAxNTIuNSA0ODAgMTkyIDQ4MHpNMTAyLjkgMjg2LjlsMC0xMi40LTEwMi45IDAgMCAxMi40YzAgMi41IDAgNSAuMSA3LjRsMTAzLjEgMGMtLjItMi40LS4zLTQuOS0uMy03LjR6bTIwLjUgNTdsLTExNC45IDBjMi42IDguNSA1LjggMTYuOCA5LjYgMjQuOGwxMzguMyAwYy0xMi45LTUuNy0yNC4xLTE0LjItMzMtMjQuOHptLTE3LjctMzQuN2wtMTA0LjQgMGMuOSA3LjYgMi4yIDE1IDMuOSAyMi4zbDEwOS43IDBjLTQtNi45LTcuMi0xNC40LTkuMi0yMi4zem0tMi44LTY5LjNsLTEwMi45IDAgMCAxNy4zIDEwMi45IDAgMC0xNy4zem0wLTE3My4ybC0xMDIuOSAwIDAgNC45IDEwMi45IDAgMC00Ljl6bTAtMzQuN2wtMTAyLjkgMCAwIDIuNSAxMDIuOSAwIDAtMi41em0wIDY5LjNsLTEwMi45IDAgMCA3LjQgMTAyLjkgMCAwLTcuNHptMCAxMDRsLTEwMi45IDAgMCAxNC44IDEwMi45IDAgMC0xNC44em0wLTY5LjNsLTEwMi45IDAgMCA5LjkgMTAyLjkgMCAwLTkuOXptMCAzNC42bC0xMDIuOSAwIDAgMTIuNCAxMDIuOSAwIDAtMTIuNHpNMjY5LjEgMzMxLjVsMTA5LjcgMGMxLjgtNy4zIDMuMS0xNC43IDMuOS0yMi4zbC0xMDQuNCAwYy0yLjEgNy45LTUuMiAxNS40LTkuMiAyMi4zem0xMi0xODUuN2wxMDIuOSAwIDAtOS44LTEwMi45IDAgMCA5Ljh6bTAgMzcuMmwxMDIuOSAwIDAtMTIuNC0xMDIuOSAwIDAgMTIuNHptMC03NC4zbDEwMi45IDAgMC03LjQtMTAyLjkgMCAwIDcuNHptMC03Ni43bDAgMi41IDEwMi45IDAgMC0yLjUtMTAyLjkgMHpNNzguMSA0NDIuOWwyMjcuNyAwYzExLjgtOC43IDIyLjctMTguNiAzMi4yLTI5LjdsLTI5My4xIDBjOS42IDExIDIxLjQgMjEgMzMuMiAyOS43em0yMDMtMzcxLjNsMTAyLjkgMCAwLTQuOS0xMDIuOSAwIDAgNC45em0wIDE0OC41bDEwMi45IDAgMC0xNC44LTEwMi45IDAgMCAxNC44ek0zOC44IDQwNS43bDMwNS4zIDBjNi43LTguNSAxMi42LTE3LjYgMTcuOC0yNy4yTDIzIDM3OC41YzUuMiA5LjYgOS4yIDE4LjcgMTUuOCAyNy4yem0xODguOC0zNy4xbDEzOS40IDBjMy43LTggNS44LTE2LjIgOC41LTI0LjhsLTExNSAwYy04LjggMTAuNy0yMC4xIDE5LjItMzIuOSAyNC44em01My41LTgxLjdjMCAyLjUtLjEgNS0uNCA3LjRsMTAzLjEgMGMuMS0yLjUgLjItNC45IC4yLTcuNGwwLTEyLjQtMTAyLjkgMCAwIDEyLjR6bTAtMjkuN2wxMDIuOSAwIDAtMTcuMy0xMDIuOSAwIDAgMTcuM3oiXX0sJG90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWRpbmVycy1jbHViIixpY29uOls1NzYsNTEyLFtdLCJmMjRjIiwiTTIzOS43IDc5LjlhMTc1LjggMTc1LjggMCAxIDAgMCAzNTEuNiAxNzUuOCAxNzUuOCAwIDEgMCAwLTM1MS42ek0xOTkuOCAzNTkuNWMtNDEuNy0xNS45LTcxLjQtNTYuNC03MS40LTEwMy44czI5LjctODcuOSA3MS40LTEwNC4xbDAgMjA3Ljl6bTc5LjggLjNsMC0yMDguMmM0MS43IDE2LjIgNzEuNCA1Ni43IDcxLjQgMTA0LjFzLTI5LjcgODcuOS03MS40IDEwNC4xek01MjggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0ODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNMzI5LjcgNDQ4bC05MC4zIDBDMTMzLjIgNDQ4IDQ1LjYgMzYyLjUgNDUuNiAyNTcuOCA0NS42IDE0My4yIDEzMy4yIDY0IDIzOS40IDY0bDkwLjMgMGMxMDUgMCAyMDAuNyA3OS4yIDIwMC43IDE5My44IDAgMTA0LjctOTUuNyAxOTAuMi0yMDAuNyAxOTAuMnoiXX0sSW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imt1YmVybmV0ZXMiLGljb246WzUxMiw1MTIsW10sImU4NTciLCJNMjU2IDMxNi4xYzMuNS0uMSA3LjIgMiA4LjkgNS4xTDI5MyAzNzEuN2MtMy42IDEuMi03LjMgMi4zLTExLjIgMy4xLTIxLjQgNC45LTQyLjcgMy40LTYyLTMuMmwyNy45LTUwLjRjMS43LTMuMSA0LjktNSA4LjItNS4xem01MC41LTIzLjRsNTcuMiA5LjdjLTguNCAyMy41LTI0LjQgNDMuOS00NS44IDU3LjVsLTIyLjItNTMuNmMtMi00LjcgLjEtMTAuNCA0LjgtMTIuNiAxLjktLjkgNC4xLTEuMyA2LS45em0tODkuMSA3LjdjLjUgMi4xIC4zIDQuMi0uNSA2bC0yMS44IDUzLjNjLTIwLjUtMTMuMi0zNi45LTMyLjktNDUuNy01Ny4xbDU2LjctOS42YzUuMS0uOSAxMC4xIDIuNCAxMS4zIDcuNXptNTguOC00MWwtMy45IDE3LjEtMTUuOCA3LjYtMTUuOS03LjctNC0xNy4xIDExLTEzLjcgMTcuNyAwIDExIDEzLjd6bS03My43LTE2LjdjMy45IDMuNCA0LjQgOS41IDEuMiAxMy42LTEuMyAxLjctMy4xIDIuOC01IDMuM2wtNTUuMyAxNi4yYy0yLjgtMjUuNyAzLjMtNTAuNyAxNi4xLTcxLjZsNDMuMSAzOC42em0xNTAuNy0zOC41YzYuNCAxMC40IDExLjIgMjIgMTQuMSAzNC42IDIuOSAxMi40IDMuNiAyNC44IDIuNCAzNi44bC01NS42LTE2Yy01LTEuNC04LjEtNi43LTYuOS0xMS43IC41LTIuMSAxLjYtMy44IDMuMS01LjFsNDIuOS0zOC41em0tMTEzLjggNC40Yy0uMiA1LjItNC43IDkuNC05LjkgOS40LTIuMSAwLTQuMS0uNy01LjctMS44bC00Ny4zLTMzLjRjMTQuNS0xNC4zIDMzLjEtMjQuOCA1NC41LTI5LjcgMy45LS45IDcuOC0xLjYgMTEuNy0ybC0zLjMgNTcuNnptMzAuOC01Ny42YzI1IDMuMSA0OC4xIDE0LjQgNjUuOCAzMS43bC00Ny4xIDMzLjJjLTQuMiAzLTEwIDIuMy0xMy4zLTEuOC0xLjMtMS43LTItMy42LTIuMS01LjZsLTMuMy01Ny41ek0yNTQuNS0xLjNjNS45LS4zIDExLjcgLjkgMTcgMy40TDQ1NSA4OS43YzQuNyAyLjMgOC45IDUuNiAxMi4yIDkuN3M1LjYgOC44IDYuOCAxMy45bDQ1LjMgMTk2LjljMS4yIDUuMSAxLjIgMTAuNCAwIDE1LjVzLTMuNSA5LjktNi44IDEzLjlMMzg1LjYgNDk3LjZjLTMuMyA0LjEtNy41IDcuNC0xMi4yIDkuNnMtMTAgMy40LTE1LjIgMy40bC0yMDMuNiAwYy01LjMgMC0xMC41LTEuMi0xNS4yLTMuNHMtOC45LTUuNS0xMi4yLTkuNkwuMiAzMzkuN2MtLjctLjktMS40LTEuOC0yLTIuOC0yLjYtMy45LTQuMy04LjMtNS4xLTEyLjlzLS43LTkuMyAuMy0xMy44TDM4LjcgMTEzLjRjMS4yLTUuMSAzLjUtOS45IDYuOC0xMy45czcuNS03LjQgMTIuMi05LjdMMjQxLjEgMi4xYzQuMi0yIDguOC0zLjIgMTMuNC0zLjR6bTEuOCA2N2MtNi4xIDAtMTEgNS41LTExIDEyLjIgMCAuMSAwIC4yIDAgLjMgMCAuOS0uMSAyIDAgMi44IC4xIDMuOSAxIDYuOSAxLjUgMTAuNCAuOSA3LjcgMS43IDE0IDEuMiAxOS45LS41IDIuMi0yLjEgNC4zLTMuNiA1LjdsLS4yIDQuNmMtNi42IC41LTEzLjIgMS42LTE5LjggMy4xLTI4LjUgNi41LTUzLjEgMjEuMS03MS44IDQxLTEuMi0uOC0zLjMtMi4zLTQtMi44LTIgLjMtNCAuOS02LjUtLjYtNC45LTMuMy05LjQtNy45LTE0LjgtMTMuNC0yLjUtMi42LTQuMy01LjEtNy4yLTcuNy0uNy0uNi0xLjctMS40LTIuNC0yLTIuMy0xLjgtNS0yLjgtNy43LTIuOS0zLjQtLjEtNi42IDEuMi04LjggMy45LTMuOCA0LjctMi41IDEyIDIuNyAxNi4yIC4xIDAgLjEgLjEgLjIgLjEgLjcgLjYgMS42IDEuMyAyLjMgMS44IDMuMSAyLjMgNiAzLjUgOS4xIDUuMyA2LjYgNC4xIDEyIDcuNCAxNi4zIDExLjUgMS43IDEuOCAyIDQuOSAyLjIgNi4zbDMuNSAzLjJjLTE4LjggMjguNC0yNy42IDYzLjQtMjIuNCA5OS4xbC00LjYgMS4zYy0xLjIgMS42LTIuOSA0LTQuNyA0LjctNS42IDEuOC0xMiAyLjQtMTkuNyAzLjMtMy42IC4zLTYuNyAuMS0xMC41IC44LS44IC4yLTIgLjQtMi45IC43bC0uMSAwLS4yIC4xYy02LjUgMS42LTEwLjcgNy41LTkuMyAxMy40IDEuMyA1LjkgNy43IDkuNCAxNC4yIDhsLjIgMGMuMSAwIC4xLS4xIC4yLS4xIC45LS4yIDIuMS0uNCAyLjgtLjYgMy44LTEgNi41LTIuNSA5LjgtMy44IDcuMy0yLjYgMTMuMy00LjggMTkuMi01LjYgMi40LS4yIDUgMS41IDYuMyAyLjJsNC44LS44YzExIDM0LjEgMzQuMSA2MS43IDYzLjMgNzkuMWwtMiA0LjhjLjcgMS45IDEuNSA0LjQgMSA2LjItMi4xIDUuNS01LjggMTEuNC05LjkgMTcuOS0yIDMtNC4xIDUuMy01LjkgOC44LS40IC44LTEgMi4xLTEuNCAzLTIuOCA2LS44IDEzIDQuNyAxNS42IDUuNSAyLjYgMTIuMi0uMSAxNS4yLTYuMmwwIDBjLjQtLjkgMS0yIDEuNC0yLjggMS42LTMuNiAyLjEtNi42IDMuMi0xMC4xIDIuOS03LjMgNC41LTE0LjkgOC41LTE5LjcgMS4xLTEuMyAyLjktMS44IDQuOC0yLjNsMi41LTQuNWMyNS41IDkuOCA1NCAxMi40IDgyLjUgNS45IDYuNS0xLjUgMTIuOC0zLjQgMTguOC01LjcgLjcgMS4yIDIgMy42IDIuMyA0LjIgMS45IC42IDMuOSAuOSA1LjYgMy40IDMgNS4xIDUgMTEuMiA3LjUgMTguNSAxLjEgMy40IDEuNiA2LjUgMy4yIDEwLjEgLjQgLjggMSAyIDEuNCAyLjggMi45IDYuMSA5LjcgOC44IDE1LjIgNi4yIDUuNC0yLjYgNy41LTkuNiA0LjctMTUuNi0uNC0uOS0xLTIuMS0xLjQtMy0xLjgtMy40LTMuOS01LjctNS45LTguNy00LjItNi41LTcuNi0xMS45LTkuOC0xNy40LS45LTIuOCAuMi00LjYgLjgtNi41LS40LS41LTEuMy0zLjItMS44LTQuNCAzMC40LTE3LjkgNTIuOC00Ni42IDYzLjMtNzkuNiAxLjQgLjIgMy45IC43IDQuNyAuOCAxLjctMS4xIDMuMi0yLjUgNi4yLTIuMyA1LjkgLjggMTEuOSAzIDE5LjIgNS42IDMuNCAxLjMgNi4xIDIuOCA5LjggMy44IC44IC4yIDEuOSAuNCAyLjggLjYgLjEgMCAuMSAwIC4yIC4xbC4yIDBjNi41IDEuNCAxMi44LTIuMiAxNC4yLThzLTIuOC0xMS44LTkuMy0xMy40Yy0uOS0uMi0yLjMtLjYtMy4yLS43LTMuOC0uNy02LjktLjUtMTAuNS0uOC03LjctLjgtMTQtMS40LTE5LjctMy4yLTIuMy0uOS00LTMuNy00LjgtNC44bC00LjQtMS4zYzIuMy0xNi42IDEuNy0zMy45LTIuMy01MS4zLTQtMTcuNS0xMS4xLTMzLjUtMjAuNi00Ny42IDEuMS0xIDMuMy0yLjkgMy45LTMuNSAuMi0yIDAtNCAyLjEtNi4yIDQuMy00LjEgOS44LTcuNCAxNi4zLTExLjUgMy4xLTEuOCA2LTMgOS4xLTUuMyAuNy0uNSAxLjctMS4zIDIuNC0xLjkgNS4zLTQuMiA2LjUtMTEuNCAyLjctMTYuMnMtMTEuMS01LjItMTYuNC0xYy0uNyAuNi0xLjggMS40LTIuNCAyLTIuOSAyLjUtNC44IDUtNy4yIDcuNy01LjQgNS41LTkuOSAxMC4xLTE0LjggMTMuNC0yLjEgMS4yLTUuMyAuOC02LjcgLjdsLTQuMiAzYy0yMy44LTI1LTU2LjItNDEtOTEuMi00NC4xLS4xLTEuNS0uMi00LjEtLjItNC45LTEuNC0xLjQtMy4yLTIuNS0zLjYtNS41LS41LTUuOSAuMy0xMi4zIDEuMy0xOS45IC41LTMuNiAxLjQtNi42IDEuNS0xMC40IDAtLjkgMC0yLjIgMC0zLjEgMC02LjctNC45LTEyLjItMTEtMTIuMnoiXX0sUG90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBpbnRlcmVzdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBkMiIsIk01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OC0yNS42IDAtNTAuMi0zLjktNzMuNC0xMS4xIDEwLjEtMTYuNSAyNS4yLTQzLjUgMzAuOC02NSAzLTExLjYgMTUuNC01OSAxNS40LTU5IDguMSAxNS40IDMxLjcgMjguNSA1Ni44IDI4LjUgNzQuOCAwIDEyOC43LTY4LjggMTI4LjctMTU0LjMgMC04MS45LTY2LjktMTQzLjItMTUyLjktMTQzLjItMTA3IDAtMTYzLjkgNzEuOC0xNjMuOSAxNTAuMSAwIDM2LjQgMTkuNCA4MS43IDUwLjMgOTYuMSA0LjcgMi4yIDcuMiAxLjIgOC4zLTMuMyAuOC0zLjQgNS0yMC4zIDYuOS0yOC4xIC42LTIuNSAuMy00LjctMS43LTcuMS0xMC4xLTEyLjUtMTguMy0zNS4zLTE4LjMtNTYuNiAwLTU0LjcgNDEuNC0xMDcuNiAxMTItMTA3LjYgNjAuOSAwIDEwMy42IDQxLjUgMTAzLjYgMTAwLjkgMCA2Ny4xLTMzLjkgMTEzLjYtNzggMTEzLjYtMjQuMyAwLTQyLjYtMjAuMS0zNi43LTQ0LjggNy0yOS41IDIwLjUtNjEuMyAyMC41LTgyLjYgMC0xOS0xMC4yLTM0LjktMzEuNC0zNC45LTI0LjkgMC00NC45IDI1LjctNDQuOSA2MC4yIDAgMjIgNy40IDM2LjggNy40IDM2LjhzLTI0LjUgMTAzLjgtMjkgMTIzLjJDMTYxLjUgNDM3LjIgMTYzLjUgNDY3LjQgMTY1LjYgNDg3IDczLjQgNDUwLjkgOCAzNjEuMSA4IDI1NiA4IDExOSAxMTkgOCAyNTYgOFM1MDQgMTE5IDUwNCAyNTZ6Il19LE5vdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhbGdvbGlhIixpY29uOls1MTIsNTEyLFtdLCJmMzZjIiwiTTI1NiAwYy0xMzkuOSAwLTI1NCAxMTIuNy0yNTYgMjUyLjEtMiAxNDEuNSAxMTIuOSAyNTguNyAyNTQuNSAyNTkuNSA0My43IC4zIDg1LjktMTAuNCAxMjMuMy0zMC43IDMuNi0yIDQuMi03IDEuMS05LjdsLTI0LTIxLjJjLTQuOS00LjMtMTEuOC01LjUtMTcuOC0zLTI2LjEgMTEuMS01NC41IDE2LjgtODMuNyAxNi40LTExNC40LTEuNS0yMDYuOS05Ni42LTIwNS4xLTIxMSAxLjgtMTEyLjkgOTQuMy0yMDQuMiAyMDcuNy0yMDQuMmwyMDcuNyAwIDAgMzY5LTExNy44LTEwNC43Yy0zLjgtMy40LTkuNy0yLjctMTIuNyAxLjMtMTguOSAyNS00OS43IDQwLjYtODMuOSAzOC4yLTQ3LjUtMy4zLTg1LjktNDEuNS04OS41LTg4LjktNC4yLTU2LjYgNDAuNi0xMDMuOSA5Ni4zLTEwMy45IDUwLjQgMCA5MS45IDM4LjggOTYuMiA4OCAuNCA0LjQgMi40IDguNSA1LjcgMTEuNGwzMC43IDI3LjJjMy41IDMuMSA5IDEuMiA5LjktMy40IDIuMi0xMS44IDMtMjQuMiAyLjEtMzYuOC00LjktNzItNjMuMy0xMzAtMTM1LjQtMTM0LjQtODIuNy01LjEtMTUxLjggNTkuNS0xNTQgMTQwLjYtMi4xIDc4LjkgNjIuNiAxNDcgMTQxLjYgMTQ4LjcgMzMgLjcgNjMuNi05LjYgODguMy0yNy42TDQ5NSA1MDkuNGM2LjYgNS44IDE3IDEuMiAxNy03LjdsMC00OTJjMC01LjQtNC40LTkuNy05LjctOS43TDI1NiAweiJdfSxGb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RhY2twYXRoIixpY29uOls0NDgsNTEyLFtdLCJmODQyIiwiTTI0NC42IDIzMi40YzAgOC41LTQuMyAyMC41LTIxLjMgMjAuNWwtMTkuNiAwIDAtNDEuNSAxOS42IDBjMTcuMSAwIDIxLjMgMTIuNCAyMS4zIDIxek00NDggMzJsMCA0NDgtNDQ4IDAgMC00NDggNDQ4IDB6TTE1MS4zIDI4Ny44YzAtMjEuMi0xMi4xLTM0LjUtNDYuNy00NC44LTIwLjYtNy40LTI2LTEwLjktMjYtMTguNnM3LTE0LjYgMjAuNC0xNC42YzE0LjEgMCAyMC44IDguNCAyMC44IDE4LjRsMzAuNyAwIC4yLS42Yy41LTE5LjYtMTUuMS00MS42LTUxLjEtNDEuNi0yMy40IDAtNTIuNiAxMC44LTUyLjYgMzguMyAwIDE5LjQgOS4yIDMxLjMgNTAuNyA0NC40IDE3LjMgNi4yIDIxLjkgMTAuNCAyMS45IDE5LjUgMCAxNS4yLTE5LjEgMTQuMi0xOS41IDE0LjItMjAuNCAwLTI1LjctOS4xLTI1LjctMjEuOWwtMzAuOCAwLS4yIC42Yy0uNyAzMS4zIDI4LjQgNDUuMiA1Ni42IDQ1LjIgMzAgMCA1MS4xLTEzLjYgNTEuMS0zOC4zem0xMjUuNC01NS42YzAtMjUuMy0xOC40LTQ1LjUtNTMuNC00NS41bC01MS44IDAgMCAxMzguMiAzMi4yIDAgMC00Ny40IDE5LjYgMGMzMC4zIDAgNTMuNC0xNiA1My40LTQ1LjR6TTI5Ny45IDMyNWw0OS4xLTEzOC4yLTMxLjEgMC00Ny45IDEzOC4yIDI5LjkgMHpNNDA0LjUgMTg2LjhsLTMxLjEgMC00Ny45IDEzOC4yIDI5LjkgMCA0OS4xLTEzOC4yeiJdfSxPb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib2N0b3B1cy1kZXBsb3kiLGljb246WzUxMiw1MTIsW10sImUwODIiLCJNNDU1LjcgMzQ5LjJjLTQ1LjktMzkuMS0zNi43LTc3LjktMTYuMS0xMjguMSAzNS43LTg3LTIzLjUtMTg2LjktMTA5LjYtMjEyLjgtOTIuOS0yNy45LTE5NS43IDE2LTIzMC4zIDEwOC44LTguNyAyMy41LTEyLjUgNDguNS0xMSA3My41IDEuNyAyOS41IDE0LjcgNTMgMjQuMSA4MC4zIDE3LjIgNTAuMi0yOC4xIDkyLjctNjYuNyAxMTcuNi00Ni44IDMwLjItMzYuMyAzOS45LTguNCA0MS45IDIzLjQgMS43IDQ0LjUtNC41IDY1LjMtMTUgOS4yLTQuNiA0MC43LTE4LjkgNDUuMS0yOC42LTEyLjIgMjYuNi0zNyA3Mi43LTIxLjUgMTAyLjEgMTkuMSAzNi4yIDY3LjEtMzEuOCA3Ni43LTQ1LjggOC42LTEyLjYgNDMtODEuMyA2My42LTQ2LjkgMTguOSAzMS40IDguNiA3Ni40IDM1LjcgMTA0LjYgMzIuOSAzNC4yIDUxLjItMTguMyA1MS40LTQ0LjIgLjItMTYuNC02LjEtOTUuOSAyOS45LTU5LjkgMjEuNCAyMS40IDUyLjkgNzEuMiA4OC42IDY3IDM4LjctNC41LTIyLjEtNjgtMjguMy03OC43IDUuNCA0LjMgNTMuNyAzNC4xIDUzLjggOS41IC4xLTE4LjgtMzAuMS0zNC43LTQyLjUtNDUuM3oiXX0sUm90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhbW1lciIsaWNvbjpbNTEyLDUxMixbXSwiZjg0MCIsIk01MDAuNyAxNTkuNWMtLjQtMS44LTEuMi0zLjQtMi4zLTQuOHMtMi41LTIuNi00LjEtMy41Yy0zLjEtMS42LTYuNy0yLTEwLjEtMS4xbC0yNi40IDYuNiAwLS4yLTIyLjMgNS44LTEuMiAuMy0uNi0yLjJjLTE1LjUtNTguMy00NS0xMTEuOS04Ni4xLTE1Ni4yLTIuNi0yLjctNi4xLTQuMi05LjgtNC4zcy03LjMgMS4zLTEwIDMuOGwtMTAyLjkgMTAyLjctMTk5LjkgMGMtNi42IDAtMTIuOSAyLjYtMTcuNiA3LjNTMCAxMjQuOCAwIDEzMS40bDAgMjQ5QzAgMzg3IDIuNiAzOTMuMyA3LjMgMzk4czExIDcuMyAxNy42IDcuM0wyMjUgNDA1LjMgMzI4LjEgNTA4YzIuNiAyLjYgNiA0IDkuNyA0czcuMS0xLjQgOS43LTRjLjEtLjEgLjItLjMgLjQtLjQgMjkuMy0zMS41IDUyLjgtNjcuOCA2OS42LTEwNy40IDYuOS0xNi41IDEyLjctMzMuNSAxNy4zLTUwLjhsMCAwIDIwLjQgNS4zIDAtLjEgMjguMyA3LjNjLjkgLjIgMS43IC40IDIuNiAuNSAxLjQgLjIgMi44IC4yIDQuMS0uMSAyLjUtLjUgNC44LTEuNyA2LjctMy40czMuMi00IDMuOC02LjVjMTUuMi02My40IDE1LjItMTI5LjYgLjEtMTkzbDAgMHpNMzM3LjEgMjQuN2wwIDAgMCAwIDAgMHpNMjI2LjkgMTg5LjhsLTUyLjYgOTEuM2MtMSAxLjctMS41IDMuNy0xLjUgNS43bDAgNDYuMmMwIDUuOC0yLjMgMTEuNC02LjUgMTUuNnMtOS43IDYuNC0xNS42IDYuNGwtMy40IDBjLTUuOCAwLTExLjQtMi4zLTE1LjYtNi40cy02LjUtOS43LTYuNS0xNS42bDAtNDUuN2MwLTEuOS0uNS0zLjgtMS40LTUuNUw3Mi4zIDE4OS42Yy0xLjktMy40LTIuOC03LjEtMi44LTExczEuMS03LjYgMy0xMC45IDQuNy02LjEgOC4xLTggNy4xLTIuOSAxMS0yLjlsMy4zIDBjNCAwIDggMS4xIDExLjUgMy4yczYuMyA1LjEgOC4xIDguN2wzNi40IDcwLjMgMzcuNS03MC41YzEuOC0zLjUgNC42LTYuNCA3LjktOC40czcuMi0zLjIgMTEuMS0zLjIgNy44IC45IDExLjIgMi44IDYuMyA0LjcgOC4yIDguMWMyIDMuMyAzIDcuMSAzIDExcy0xIDcuNy0zIDExbDAgMHpNMzM3LjEgMjQuN2MzNS45IDQwLjYgNjEuOSA4OSA3NS44IDE0MS4zbC42IDItMTE0LjEgMjkuNiAwLTY2LjFjMC02LjYtMi43LTEyLjktNy4zLTE3LjZzLTExLTcuMy0xNy42LTcuM2wtMTkuNCAwIDgyLjEtODEuOHpNMzk3LjYgMzkybDAgMCAwIDBjLTE0LjcgMzQuOC0zNS4xIDY3LTYwLjIgOTUuMmwtODIuMi04MS45IDE5LjIgMGM2LjYgMCAxMi45LTIuNiAxNy42LTcuM3M3LjMtMTEgNy4zLTE3LjZsMC02Ni4yIDExNC42IDI5LjljLTQuNCAxNi4zLTkuOCAzMi4zLTE2LjMgNDcuOWwwIDB6bTg0LTUyLjRsMCAwLTUwLjYtMTMuMS0xMzEuNy0zNC4zIDAtNzIuNSAxMTkuNy0zMSA0LjUtMS4yYzI5LjktNy43IDQ5LjItMTIuOCA1OC4xLTE1LjEgMTIgNTUuMSAxMiAxMTIuMSAwIDE2Ny4yeiJdfSxCb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibW9keCIsaWNvbjpbNDQ4LDUxMixbXSwiZjI4NSIsIk0zNTYgMjQxLjhsMzYuNyAyMy43IDAgMjE0LjUtMTMzLTgzLjggOTYuMy0xNTQuNHpNNDQwIDc1bC0yMTMuNyAwLTIzIDM3LjggMTUzLjUgOTYuNSA4My4yLTEzNC4zek0zNTEgMjE3LjhsLTI5NS44LTE4NS44IDAgMjE0LjUgNDYgMjkgMjQ5LjgtNTcuN3pNOTcgMjk0LjJMOCA0MzcgMjIxLjcgNDM3IDM0Ni43IDIzNi41IDk3IDI5NC4yeiJdfSxIb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXRocmVhZHMiLGljb246WzQ0OCw1MTIsW10sImU2MTkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjk0LjIgMjQ0LjNjMTkuNSA5LjMgMzMuNyAyMy41IDQxLjIgNDAuOSAxMC40IDI0LjMgMTEuNCA2My45LTIwLjIgOTUuNC0yNC4yIDI0LjEtNTMuNSAzNS05NS4xIDM1LjNsLS4yIDBjLTQ2LjgtLjMtODIuOC0xNi4xLTEwNi45LTQ2LjgtMjEuNS0yNy4zLTMyLjYtNjUuNC0zMy0xMTMuMWwwLS4yYy40LTQ3LjcgMTEuNS04NS43IDMzLTExMy4xIDI0LjItMzAuNyA2MC4yLTQ2LjUgMTA2LjktNDYuOGwuMiAwYzQ2LjkgLjMgODMuMyAxNiAxMDguMiA0Ni42IDEyLjMgMTUuMSAyMS4zIDMzLjMgMjcgNTQuNGwtMjYuOSA3LjJjLTQuNy0xNy4yLTExLjktMzEuOS0yMS40LTQzLjYtMTkuNC0yMy45LTQ4LjctMzYuMS04Ny0zNi40LTM4IC4zLTY2LjggMTIuNS04NS41IDM2LjItMTcuNSAyMi4zLTI2LjYgNTQuNC0yNi45IDk1LjUgLjMgNDEuMSA5LjQgNzMuMyAyNi45IDk1LjUgMTguNyAyMy44IDQ3LjQgMzYgODUuNSAzNi4yIDM0LjMtLjMgNTYuOS04LjQgNzUuOC0yNy4zIDIxLjUtMjEuNSAyMS4xLTQ3LjkgMTQuMi02NC00LTkuNC0xMS40LTE3LjMtMjEuMy0yMy4zLTIuNCAxOC03LjkgMzIuMi0xNi41IDQzLjItMTEuNCAxNC41LTI3LjcgMjIuNC00OC40IDIzLjUtMTUuNyAuOS0zMC44LTIuOS00Mi42LTEwLjctMTMuOS05LjItMjItMjMuMi0yMi45LTM5LjUtMS43LTMyLjIgMjMuOC01NS4zIDYzLjUtNTcuNiAxNC4xLS44IDI3LjMtLjIgMzkuNSAxLjktMS42LTkuOS00LjktMTcuNy05LjgtMjMuNC02LjctNy44LTE3LjEtMTEuOC0zMC44LTExLjlsLS40IDBjLTExIDAtMjYgMy4xLTM1LjYgMTcuNmwtMjMtMTUuOGMxMi44LTE5LjQgMzMuNi0zMC4xIDU4LjUtMzAuMWwuNiAwYzQxLjggLjMgNjYuNiAyNi4zIDY5LjEgNzEuOCAxLjQgLjYgMi44IDEuMiA0LjIgMS45bC4xIC41em0tNzEuOCA2Ny41YzE3LS45IDM2LjQtNy42IDM5LjctNDguOC04LjgtMS45LTE4LjYtMi45LTI5LTIuOS0zLjIgMC02LjQgLjEtOS42IC4zLTI4LjYgMS42LTM4LjEgMTUuNS0zNy40IDI3LjkgLjkgMTYuNyAxOSAyNC41IDM2LjQgMjMuNmwtLjEtLjF6Il19LHFvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvbGQtcmVwdWJsaWMiLGljb246WzUxMiw1MTIsW10sImY1MTAiLCJNMjQzLjggMTAuMmM3LjUtLjMgMTUtLjMgMjIuNS0uMSAzLjYgLjEgNy4yIC40IDEwLjggLjcgNC45IC4zIDkuOCAxIDE0LjcgMS42IDIuOSAuNCA1LjggMSA4LjcgMS41IDcuOSAxLjMgMTUuNyAzLjMgMjMuNCA1LjQgMTIuMiAzLjUgMjQuMiA3LjkgMzUuOCAxMy4yIDI2LjYgMTIuMiA1MC45IDI5LjIgNzEuNiA0OS45IDIwIDIwLjEgMzYuNyA0My41IDQ4LjkgNjkuMiAxLjEgMi42IDIuNCA1LjEgMy41IDcuNyAyLjggNi40IDUuNCAxMyA3LjYgMTkuNiA0LjEgMTIuMyA3LjMgMjUgOS40IDM3LjggLjYgMy4xIDEgNi4zIDEuNCA5LjUgLjUgMy44IC45IDcuNyAxLjIgMTEuNiAuOCA4LjMgLjggMTYuNyAuOCAyNS4xLS4xIDUtLjMgOS45LS43IDE0LjktLjIgMy40LS41IDYuOC0xIDEwLjEtLjQgMi43LS42IDUuNS0xLjEgOC4yLS45IDUuMS0xLjcgMTAuMy0yLjkgMTUuNC00LjEgMTguNS0xMC4zIDM2LjYtMTguNSA1My42LTE1LjggMzIuOC0zOC44IDYyLjItNjcuMSA4NS4xLTE3LjMgMTQuMS0zNi40IDI1LjktNTYuOSAzNC45LTYuMiAyLjctMTIuNSA1LjMtMTguOSA3LjQtMy41IDEuMi03IDIuNC0xMC42IDMuNC02LjYgMS45LTEzLjMgMy42LTIwIDUtNC43IC45LTkuMyAxLjctMTQgMi41LTUuMyAuNy0xMC41IDEuNC0xNS44IDEuNy02LjcgLjctMTMuNCAuOC0yMC4xIC44LTYuOCAwLTEzLjYtLjEtMjAuNC0uOC0zLjMtLjItNi42LS41LTkuOC0xLTIuNy0uNC01LjUtLjYtOC4yLTEuMS00LjEtLjctOC4yLTEuNC0xMi40LTIuMi00LjItLjktOC41LTEuOS0xMi43LTMtOC42LTIuMi0xNy4xLTUtMjUuNC04LjEtMTAuNS00LjEtMjAuOC04LjctMzAuNi0xNC4yLTIuMS0xLjItNC4zLTIuMy02LjQtMy42LTExLjItNi42LTIxLjktMTQuMS0zMS45LTIyLjMtMzQuNy0yOC40LTYxLjQtNjYuNC03Ni40LTEwOC43LTMuMS04LjctNS43LTE3LjYtNy44LTI2LjctMS41LTYuMi0yLjUtMTIuNC0zLjYtMTguNy0uNC0yLjMtLjYtNC43LTEtNy4xLS42LTQtLjgtOC0xLjItMTEuOS0uOC05LjUtLjctMTktLjUtMjguNSAuMS0zLjUgLjMtNyAuNy0xMC41IC4zLTMuMiAuNS02LjQgLjktOS41IC40LTIuOCAuNy01LjYgMS4yLTguNCAuNy0zLjkgMS4zLTcuOSAyLjEtMTEuOCAzLjQtMTYuNSA4LjUtMzIuNyAxNS4zLTQ4LjIgMS4yLTIuOSAyLjYtNS43IDMuOS04LjYgOC4xLTE2LjcgMTcuOS0zMi42IDI5LjUtNDcuMSAyMC0yNS40IDQ1LjEtNDYuNyA3My4zLTYyLjUgNy41LTQuMiAxNS4yLTggMjMuMS0xMS40IDE1LjgtNi45IDMyLjQtMTIgNDkuMy0xNS40IDMuNS0uNyA3LTEuMiAxMC42LTEuOCAyLjYtLjUgNS4zLS43IDcuOS0xLjEgMy41LS41IDcuMS0uNyAxMC42LTEgMi41LS4yIDQuOS0uNCA3LjQtLjV6bTguNiAyNC40Yy05LjIgLjEtMTguNCAxLTI3LjYgMi4yLTcuMyAxLjEtMTQuNSAyLjYtMjEuNyA0LjMtMTMuOSAzLjUtMjcuNSA4LjMtNDAuNSAxNC40LTEwLjUgNS0yMC42IDEwLjctMzAuMiAxNy4yLTQuMiAyLjktOC40IDUuOC0xMi4zIDktNS4xIDQtMTAgOC4yLTE0LjcgMTIuNi0yLjUgMi4yLTQuOCA0LjctNy4yIDcuMS0yOC4yIDI4LjgtNDguNCA2NS40LTU3LjUgMTA0LjctMiA4LjQtMy41IDE3LTQuNCAyNS42LTEuMSA4LjktMS40IDE3LjktMS40IDI2LjggLjEgNy4xIC40IDE0LjMgMS4yIDIxLjQgLjYgNy4xIDEuOSAxNC4yIDMuMiAyMS4yIDEuMSA0LjYgMiA5LjMgMy4zIDEzLjkgNi4zIDIzLjQgMTYuNSA0NS43IDMwLjEgNjUuOCA4LjYgMTMgMTguOCAyNC45IDMwIDM1LjggMTYuMyAxNS44IDM1IDI5IDU1LjMgMzkuMiA3LjMgMy41IDE0LjcgNi45IDIyLjMgOS42IDUgMS44IDEwLjEgMy42IDE1LjIgNSAxMS4zIDMuMiAyMi44IDUuNiAzNC40IDcuMSAyLjkgLjMgNS44IC42IDguNyAuOSAxMy44IDEuMSAyNy43IDEgNDEuNS0uNCA0LjQtLjYgOC45LTEgMTMuMy0xLjggMy42LS43IDcuMy0xLjIgMTAuOS0yLjEgNC4xLTEgOC4zLTEuOSAxMi40LTMuMSAyNi41LTcuMyA1MS42LTE5LjcgNzMuNi0zNi4yIDE1LjgtMTEuOCAzMC0yNS44IDQyLjEtNDEuMyAzLjMtNCA2LjItOC4zIDkuMS0xMi42IDMuNC01LjEgNi42LTEwLjIgOS42LTE1LjUgMi40LTQuNCA0LjctOC45IDctMTMuNCA1LjctMTIuMSAxMC4zLTI0LjYgMTMuOC0zNy41IDIuNi0xMCA0LjctMjAuMiA1LjktMzAuNCAxLjgtMTMuNSAxLjktMjcuMSAxLjMtNDAuNy0uMy0zLjktLjctNy44LTEtMTEuNy0yLjItMTkuMS02LjgtMzcuOS0xMy44LTU1LjgtNi0xNS4xLTEzLjUtMjkuNi0yMi42LTQzLjEtMTIuNy0xOC44LTI4LjItMzUuNy00Ni00OS44LTI1LTIwLTU0LjUtMzQuNS04NS42LTQyLjEtNy44LTEuOS0xNS43LTMuMy0yMy42LTQuNC0zLjktLjYtNy44LS44LTExLjgtMS4yLTcuNC0uNi0xNC44LS43LTIyLjItLjZ6TTE0Ny4zIDgzLjVjMTMuMy04LjkgMjguMS0xNS40IDQzLjMtMjAuMi0zLjIgMS44LTYuNCAzLjQtOS41IDUuMy0xMS4yIDYuNy0yMS41IDE0LjktMzAuNCAyNC41LTYuOCA3LjQtMTIuOCAxNS43LTE3IDI0LjktMy4zIDYuOS01LjYgMTQuMi02LjkgMjEuNy0uOSA0LjgtMS4zIDkuOC0xLjIgMTQuOCAuMSAxMy43IDQuNCAyNy4xIDExLjMgMzguOCA1LjkgMTAuMiAxMy42IDE5LjMgMjIuNCAyNy4zIDQuOSA0LjQgMTAuMiA4LjEgMTUgMTIuNiAyLjMgMi4yIDQuNSA0LjQgNi40IDYuOSAyLjYgMy4zIDQuOSA3IDYgMTEuMSAuOSAzIC43IDYuMiAuNyA5LjMgMCA0LjEgMCA4LjIgMCAxMi4zIC4xIDMuNSAwIDcuMSAuMSAxMC42IC4xIDIuNCAwIDQuOCAuMSA3LjEgLjIgNS44IC4xIDExLjUgLjEgMTcuMyAuMSAyLjkgMCA1LjggLjEgOC43IDAgMS42IC4xIDMuMyAwIDQuOS0uOSAuMS0xLjggLjItMi43IC4yLTExIDAtMjEuOS0yLjYtMzItNi45LTYtMi43LTExLjgtNS45LTE3LjEtOS44LTUuOC00LjItMTEuMS05LTE1LjgtMTQuMy02LjUtNy4yLTEyLTE1LjQtMTYuNi0yMy45LTEuMS0yLTIuMi00LTMuMi02LjEtMS4yLTIuNi0yLjYtNS4xLTMuNy03LjgtNC05LjctNi42LTE5LjktOC4xLTMwLjMtLjUtNC40LTEuMS04LjktMS4yLTEzLjMtLjctMTUuNyAuOC0zMS42IDQuNy00Ni44IDIuMS04LjIgNC44LTE2LjIgOC4zLTIzLjggNi4zLTE0LjIgMTUuMy0yNy4yIDI2LjMtMzguMiA2LjMtNi4yIDEzLjEtMTEuOCAyMC41LTE2Ljd6TTMyMi43IDYzLjRjMi43IC43IDUuNCAxLjcgOC4xIDIuNyA2LjQgMi4zIDEyLjcgNC44IDE4LjcgOCAxMy4xIDYuNCAyNS4zIDE0LjggMzUuOCAyNSAxMC4yIDEwIDE4LjcgMjEuNiAyNS4xIDM0LjMgMS4zIDIuNyAyLjYgNS41IDMuOCA4LjMgNi4zIDE1LjEgMTAgMzEuMyAxMS4yIDQ3LjYgLjQgNC41IC40IDkuMSAuNSAxMy42IC4xIDExLjYtMS41IDIzLjMtNC4zIDM0LjUtMiA3LjMtNC4zIDE0LjUtNy45IDIxLjItMy4yIDYuNi02LjcgMTMuMi0xMC44IDE5LjItNi45IDEwLjUtMTUuNiAxOS45LTI1LjggMjcuMi0xMC41IDcuNi0yMi42IDEzLTM1LjQgMTUuNC0zLjUgLjctNy4xIDEuMS0xMC43IDEuMi0xLjggLjEtMy43IC4yLTUuNi0uMS0uMy0yLjEgMC00LjMgMC02LjUgMC0zLjcgLjEtNy40IC4xLTExLjIgLjItNyAwLTE0LjEgLjItMjEuMSAwLTIuNCAwLTQuOCAwLTcuMSAuMi01LjEgMC0xMC4xIC4xLTE1LjIgLjEtMy0uMi02IC41LTkgLjctMi41IDEuOC00LjkgMy4xLTcuMSA0LjUtNy4zIDExLjEtMTMgMTcuNy0xOC4zIDUuNC00LjIgMTAuNS04LjggMTUtMTMuOCA3LjctOC40IDE0LjItMTcuOSAxOC44LTI4LjMgMi41LTUuOSA0LjUtMTIuMSA1LjUtMTguNSAuOS00LjQgMS4xLTguOCAxLTEzLjMgMC03LjgtMS40LTE1LjYtMy42LTIzLjItMS44LTUuNy00LjMtMTEuMi03LjEtMTYuNC0zLjktNi45LTguNi0xMy4zLTE0LTE5LjItOS45LTEwLjgtMjEuOC0xOS45LTM0LjYtMjcuMS0xLjgtMS0zLjgtMS44LTUuNi0zek0yMjEuOSAxMjEuOWMxLTEuMiAyLTIuMyAzLjEtMy40LS42IC45LTEuMyAxLjgtMiAyLjctMy4xIDMuOS01LjUgOC4zLTcgMTMuMS0uOSAzLjMtMS43IDYuNi0xLjcgMTAtLjEgMi41LS4xIDUuMSAuMyA3LjYgMS4xIDcuNiA0LjMgMTQuOSA4LjggMjEuMSAyIDIuNyA0LjIgNS4zIDYuOSA3LjMgMS42IDEuMyAzLjUgMi4xIDUuMyAzIDMuMSAxLjcgNi4zIDMuMiA5LjEgNS41IDIuNyAyLjEgNC42IDUuMyA0LjQgOC44IDAgNzMuNyAwIDE0Ny4zIDAgMjIxIDAgMS40LS4xIDIuNyAwIDQgLjEgMS41IC44IDIuOCAxLjUgNC4xIC45IDEuNyAxLjggMy4zIDMuMiA0LjYgLjkgLjggMiAxLjQgMy4yIDEuMiAxLjUtLjIgMi43LTEuNCAzLjQtMi42IDEtMS41IDEuNy0zLjIgMi4zLTQuOSAuOC0yLjEgLjQtNC40IC41LTYuNiAuMS00IDAtOC4xIC4xLTEyLjEgMC01LjkgMC0xMS44IC4xLTE3LjcgLjEtMy42IDAtNy4yIC4xLTEwLjkgLjItNCAwLTguMSAuMS0xMi4xIDAtNiAwLTEyIC4xLTE4IC4xLTMuNiAwLTcuMiAuMS0xMC45IC4xLTMuOSAwLTcuOSAuMS0xMS44IDAtNiAwLTEyIC4xLTE4IC4yLTMuOSAwLTcuOSAuMi0xMS44IC4zIDEuNCAuMSAyLjkgLjIgNC40IC4yIDMuNiAuNCA3LjIgLjggMTAuOCAuMyAzLjQgLjQgNi45IC45IDEwLjMgLjQgMy4xIC41IDYuMiAxIDkuMyAuNiA0LjEgLjkgOC4yIDEuNSAxMi4zIDEuNSA5IDIuOCAxOC4xIDUuMSAyNyAxLjEgNC44IDIuNCA5LjYgNCAxNC4zIDIuNSA3LjkgNS43IDE1LjcgMTAuMyAyMi42IDEuNyAyLjYgMy45IDUgNi4xIDcuMiAuMyAuMiAuNiAuNSAuOSAuNyAuNiAuMyAxLjMtLjEgMS43LS42IC43LS45IDEuMi0xLjkgMS43LTIuOSA0LjEtNy44IDguMi0xNS42IDEyLjMtMjMuMyAuNy0xLjMgMS40LTIuNiAyLjYtMy42IDEuOC0xLjYgMy44LTIuNyA2LTMuNiAyLjktMS4yIDUuOS0yLjIgOS0yLjQgNi42LS42IDEzLjEgLjcgMTkuNiAxLjggMy43IC42IDcuNCAxLjIgMTEuMSAxLjQgMy43IC4xIDcuNSAuMSAxMS4yLS4zIDguNi0uOSAxNy0zIDI0LjktNi4yIDUuMy0yLjIgMTAuNS00LjggMTUuMy03LjkgMTEuNS03LjIgMjEuNS0xNi42IDMwLTI3IDEuMi0xLjQgMi4yLTIuOSAzLjUtNC4zLTEuMiAzLjItMi43IDYuNC00LjIgOS41LTEuMyAyLjktMi44IDUuNi00LjMgOC40LTUuMiA5LjYtMTEgMTguOS0xNy44IDI3LjUtNCA1LjItOC41IDEwLjEtMTMuMyAxNC42LTYuNiA2LjEtMTQuMSAxMS40LTIyLjQgMTQuOC04LjIgMy40LTE3LjMgNC42LTI2LjEgMy4zLTMuNi0uNi03LTEuNy0xMC40LTIuOS0yLjgtMS01LjQtMi40LTgtMy43LTMuNC0xLjctNi42LTMuOC05LjctNi4xIDIuNyAzLjEgNS43IDUuOSA4LjcgOC42IDQuMyAzLjggOC43IDcuMyAxMy42IDEwLjIgNCAyLjUgOC4zIDQuNCAxMi44IDUuNSAxLjUgLjQgMyAuNSA0LjUgLjYtMS4zIDEuMS0yLjYgMi00IDMtOS42IDYuNS0yMCAxMS45LTMwLjcgMTYuNC0yMC45IDguNy00My4yIDE0LTY1LjcgMTUuMy00LjcgLjItOS4zIC40LTE0IC40LTUtLjEtMTAtLjEtMTQuOS0uNy0xMS4yLS44LTIyLjMtMi43LTMzLjItNS40LTEwLjQtMi43LTIwLjYtNi4xLTMwLjMtMTAuNi04LjctMy45LTE3LjEtOC40LTI1LTEzLjgtMS44LTEuMy0zLjctMi41LTUuNC00LjEgNi42LTEuMiAxMy0zLjQgMTktNi41IDUuNy0yLjkgMTEtNi43IDE1LjYtMTEuMSAyLjItMi4yIDQuMy00LjYgNi4yLTcuMS0zLjQgMi4xLTYuOSA0LjItMTAuNiA1LjgtNC40IDIuMi05LjEgMy44LTEzLjggNS01LjcgMS41LTExLjcgMS43LTE3LjYgMS4xLTguMS0xLTE1LjktNC4zLTIyLjUtOS00LjMtMi45LTguMi02LjQtMTItMTAuMS05LjktMTAuMi0xOC4yLTIxLjgtMjUuNy0zMy45LTMuOS02LjMtNy41LTEyLjctMTEuMS0xOS4yLTEtMi0yLjEtNC4xLTMuMi02LjEgMi44IDIuOSA1LjYgNiA4LjQgOC45IDE5LjIgMTkuMiAzNy42IDMyLjMgNTMuNyAzNS41IDMuMSAuNyA2LjMgLjUgOS41IC44IDIuOCAuMyA1LjYgLjIgOC4zIC4zIDUgLjEgMTAuMSAwIDE1LjItLjIgMy42LS4yIDcuMy0uNyAxMC45LTEuMSAyLjEtLjIgNC4xLS43IDYuMS0xLjIgMy45LTEgOC4xLTEgMTEuOCAuNiA0LjggMS44IDguNCA1LjYgMTEuNCA5LjcgMi4yIDMgNC4xIDYuMiA1LjcgOS42IDEuMiAyLjQgMi41IDQuOCAzLjYgNy4zIDEgMi4yIDIuMiA0LjQgMy40IDYuNSAuNyAxIDEuNCAyLjIgMi42IDIuNiAxLjEtLjggMS43LTEuOSAyLjMtMyAyLjEtNC4yIDMuNC04LjYgNC45LTEzIDItNi42IDMuOC0xMy4zIDUuMi0yMCAyLjItOS4zIDMuMi0xOC43IDQuNS0yOC4xIC42LTQgLjgtOCAxLjMtMTIgLjktMTAuNiAxLjktMjEuMyAyLjItMzEuOSAuMS0xLjkgLjItMy43IC4zLTUuNiAwLTQuMyAuMi04LjcgLjItMTMgMC0yLjQgMC00LjggMC03LjEgMC01LjEtLjItMTAuMS0uMi0xNS4yLS4yLTYuNi0uNy0xMy4yLTEuMy0xOS44LS43LTUuOS0xLjUtMTEuOC0zLjEtMTcuNS0yLTcuNy01LjYtMTUtOS44LTIxLjgtMy4yLTUuMS02LjgtOS45LTExLjEtMTQtMy45LTMuOS04LjYtNy4xLTEzLjktOC40LTEuNS0uNC0zLjEtLjQtNC42LS42IC4xLTMgLjctNS45IDEuMy04LjggMS42LTcuNyAzLjgtMTUuMyA2LjgtMjIuNiAxLjUtNCAzLjQtNy45IDUuNC0xMS43IDMuNC02LjYgNy42LTEyLjggMTIuNS0xOC41em0zMS4zIDEuN2MuNC0uMSAuNy0uMSAxLjEtLjIgLjIgMS44IC4xIDMuNiAuMSA1LjRsMCAzOC4xYzAgMS43IC4xIDMuNS0uMiA1LjItLjQgMC0uNyAwLTEuMSAwLS45LTMuOC0xLjctNy42LTIuNi0xMS4zLS40LTEuNS0uNi0zLjEtMS4xLTQuNi0xLjctLjItMy40LS4yLTUuMi0uMi01LjEgMC0xMC4xIDAtMTUuMiAwLTEuNyAwLTMuMyAuMS01IDAgMC0uNC0uMy0uOSAuMi0xLjIgMS4zLS43IDIuNy0uOSA0LjEtMS40IDMuNC0xLjEgNi45LTIuMiAxMC4zLTMuMyAxLjQtLjUgMi45LS43IDQuMi0xLjUgMC0uNiAwLTEuMSAwLTEuNy0xLjItLjYtMi41LS45LTMuOC0xLjMtMy4xLTEtNi4zLTItOS40LTMtMS44LS42LTMuNy0xLTUuNC0xLjggMC0uNC0uMS0uNy0uMS0xLjEgNS4xLS4yIDEwLjIgLjEgMTUuMy0uMSAzLjQtLjEgNi43IC4xIDEwLjEtLjEgLjEtLjQgLjMtLjggLjQtMS4yIDEuMS00LjkgMi4zLTkuOCAzLjQtMTQuN3ptNi0uMmMuNCAwIC43IC4xIDEuMSAuMiAxIDMuOCAxLjcgNy44IDIuNyAxMS42IC40IDEuNCAuNiAyLjkgMSA0LjMgMi41IC4yIDUuMSAwIDcuNiAwIDUuMiAuMSAxMC4zIC4xIDE1LjUgLjEgLjggMCAxLjUgMCAyLjMgLjEgMCAuNC0uMSAuNy0uMSAxLjEtMS44IC44LTMuOCAxLjItNS43IDEuOS0zLjcgMS4yLTcuNSAyLjQtMTEuMiAzLjYtLjYgLjItMS4xIC40LTEuNyAuNi0uMiAuNi0uMiAxLjEtLjEgMS43IC45IC41IDEuOCAuOCAyLjggMS4xIDQuOSAxLjUgOS43IDMuMSAxNC42IDQuNiAuNCAuMSAuOCAuMyAxLjEgLjUgLjQgLjMgLjIgLjggLjIgMS4yLTEuNyAuMS0zLjMgMC01IDAtNS4yIDAtMTAuMyAwLTE1LjUgMC0xLjYgMC0zLjIgMC00LjggLjItLjUgMS43LS43IDMuNC0xLjIgNS4xLS45IDMuNi0xLjUgNy4yLTIuNSAxMC44LS40IDAtLjcgMC0xLjEgLjEtLjMtMS43LS4yLTMuNS0uMi01LjJsMC0zOC4xYzAtMS44LS4xLTMuNiAuMS01LjR6bS0xODYgNDVjMS4xLTIuMiAyLjEtNC40IDMuNC02LjUtMS44IDcuNi0yLjkgMTUuMy0zLjYgMjMtLjggNy43LS44IDE1LjUtLjUgMjMuMiAxLjEgMTkuOSA1LjUgMzkuOCAxNC4yIDU3LjkgMyA2IDYuNCAxMS44IDEwLjUgMTcuMSA2LjEgNy41IDEyLjUgMTQuOCAxOS44IDIxLjEgNC44IDQuMSAxMCA3LjggMTUuNSAxMC44IDMuMyAxLjcgNi41IDMuNCA5LjkgNC43IDUgMiAxMC4yIDMuNiAxNS40IDQuOSAzLjggMSA3LjggMS40IDExLjUgMi43IDUgMS42IDkuNSA0LjYgMTMgOC40IDQuOSA1LjIgOC4xIDExLjkgMTAuMiAxOC43IDEgMi45IDEuNiA1LjkgMi4yIDguOSAuMiAuOCAuMiAxLjUgLjIgMi4zLTYuNSAyLjgtMTMuMyA1LjEtMjAuMyA2LjItNC4xIC44LTguMyAxLTEyLjUgMS4xLTEwLjIgLjItMjAuNS0xLjgtMzAuMS01LjEtMy43LTEuNC03LjUtMi45LTExLTQuNy04LjEtMy44LTE1LjYtOC43LTIyLjUtMTQuNS0yLjktMi42LTUuOC01LjEtOC40LTgtOS4yLTkuOC0xNi4zLTIxLjQtMjEuOC0zMy43LTIuNC01LjUtNC42LTExLjItNi40LTE3LTEuMi0zLjktMi40LTcuOS0zLjMtMTEuOS0uNy0yLjktMS4yLTUuOS0xLjktOC45LS41LTIuMS0uNy00LjMtMS02LjUtLjgtNS40LTEuMy0xMC45LTEuMy0xNi40IC4xLTYuMiAuMi0xMi40IDEuMS0xOC41IC40LTIuOSAuNy01LjcgMS4yLTguNiAxLTUuNyAyLjEtMTEuNCAzLjctMTYuOSAzLjEtMTEuNiA3LjUtMjMgMTIuNy0zMy44em0zNjMuNy02LjRjMS4xIDEuNyAxLjkgMy41IDIuOCA1LjMgMi4xIDQuNSA0LjIgOC45IDYgMTMuNSA3LjYgMTguOCAxMi4zIDM4LjggMTMgNTkgMCAxLjggLjEgMy41IC4xIDUuMyAuMSA5LjYtMS4zIDE5LjEtMy4yIDI4LjUtLjcgMy42LTEuNSA3LjItMi42IDEwLjctNCAxNC43LTEwIDI5LTE4LjQgNDEuOC04LjIgMTIuNi0xOSAyMy41LTMxLjggMzEuNC01LjcgMy42LTExLjggNi42LTE4IDkuMi01LjggMi4yLTExLjcgNC0xNy44IDUuMS02LjQgMS0xMi45IDEuNS0xOS40IDEuMi03LjktLjUtMTUuOC0yLjEtMjMuMi00LjgtMS45LS44LTMuOS0xLjUtNS44LTIuMy0uMi0xLjUgLjItMyAuNS00LjUgMS4yLTUuNyAzLTExLjQgNS43LTE2LjYgMi40LTQuNSA1LjUtOC43IDkuNS0xMS45IDIuNC0yLjEgNS4yLTMuNiA4LjItNC44IDMuNi0xLjUgNy41LTIgMTEuMi0yLjggNy4yLTEuNyAxNC40LTMuOSAyMS4yLTcgMTAuMy00LjcgMTkuNy0xMS40IDI3LjYtMTkuNSAxLjYtMS42IDMuMi0zLjIgNC43LTQuOSAzLjQtMy44IDYuNy03LjYgOS44LTExLjUgNy41LTEwLjEgMTIuOC0yMS42IDE2LjctMzMuNSAxLjYtNS4zIDMuMi0xMC42IDQuMi0xNi4xIC42LTIuOSAxLTUuOCAxLjUtOC43IC45LTYuMSAxLjYtMTIuMiAxLjctMTguNCAuMS02LjYgLjEtMTMuMy0uNS0xOS45LS43LTgtMS45LTE2LTMuNy0yMy44eiJdfSxqb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3VzZSIsaWNvbjpbNjQwLDUxMixbXSwiZjdkNiIsIk02MDQuNSAyMTBhMTAuNCAxMC40IDAgMSAxIC0xMS40LTE3LjQgMTAuNCAxMC40IDAgMSAxIDExLjQgMTcuNHpNNjIxIDE4Ny4yYTM4LjUgMzguNSAwIDEgMSAtNzUgMTcuNiAzOC41IDM4LjUgMCAxIDEgNzUtMTcuNnpNNDMzLjcgMzM2LjdjMy4yIDQuNiA1LjggOSA3LjMgMTMuNCAxIDMuMSAyLjQgNy4zIDUuNSA4LjkgLjIgLjEgLjMgLjIgLjUgLjIgNS43IDIuMSAyMC4zIDEuNyAyMC4zIDEuN2wyNi44IDBjMi4zIDAgMjIuNCAwIDIxLjktMi4zLTIuNC0xMC44LTE0LjktMTIuNy0yNC40LTE4LjMtOC43LTUuMi0xNy0xMS4xLTIwLjgtMjEuMy0yLTUuMi0uOC0xNy40IDIuNi0yMS44IDIuNS0zLjIgNi4xLTUuMyAxMC02LjIgNC4zLS45IDguOC0uMSAxMy4xIC4zIDUuMyAuNSAxMC42IDEuNSAxNS45IDIuMiAxMC4zIDEuMyAyMC42IDEuOSAzMSAxLjYgMTcuMS0uNSAzNC4yLTMuMiA1MC40LTguNyAxMS4zLTMuOCAyMi40LTguOSAzMi0xNi4xIDEwLjktOC4xIDguMS03LjQtMy02LjItMTMuMyAxLjQtMjYuNiAxLjYtMzkuOSAuOC0xMi40LS43LTI0LjctMi4yLTM1LjktNy45LTguOC00LjYtMTYuNC05LjEtMjMuNC0xNi4yLTEtMS4xLTEuNy00LjIgLjItNi4yIDEuOS0xLjkgNS44LS44IDcgLjIgMTIuMiAxMC4yIDMwLjUgMTguNiA0OS4zIDE5LjUgMTAuMiAuNSAyMC4xIC43IDMwLjQgLjMgNS4xLS4yIDEyLjgtLjIgMTcuOS0uMyAyLjYgMCA5LjggLjcgMTEuMi0yLjEgLjQtLjggLjQtMS44IC4zLTIuNy0xLjUtNDAuOS00LjUtODYuOS00Ny4zLTEwNi41LTMxLjktMTQuNi03OS43LTM3LjItOTkuOS00Ni42LTQuNy0yLjItMTAuMiAxLjMtMTAuMiA2LjUgMCAxMy42IC43IDMzLjMgLjcgNTEuMS05LjctOS45LTI2LTE2LjEtMzguNC0yMS44LTE0LjEtNi41LTI4LjctMTItNDMuNS0xNi42LTI5LjgtOS4yLTYwLjctMTQuOS05MS43LTE4LTM1LjItMy41LTcxLTEuOC0xMDUuNyA1LjMtNTYuOSAxMi4yLTExMy4xIDM5LjctMTU1LjcgNzkuOC0yNi4xIDI0LjYtNDYuNiA1OS43LTQ4IDk1LjItMiA1MC4zIDEyLjEgNzcuMyAzOCAxMDUuMiA0MS4zIDQ0LjQgMTMwLjIgNTAuNiAxNjYuMi0yIDE2LjItMjMuNyAxOS43LTU1LjggOC04Mi0xMS44LTI2LjItMzguOC00NS4xLTY3LjQtNDYtMjIuMi0uNy00NS45IDEwLjYtNTQuNSAzMS4xLTYuNSAxNS43LTIuOCAzNS4xIDkgNDcuMyA0LjYgNC44IDEwLjkgOC43IDE3LjcgNy4xIDQtLjkgNy40LTMuOSA4LTggLjktNi00LjQtOS45LTcuNi0xNC41LTUuOC04LjMtNC43LTIwLjkgMi43LTI3LjkgNi4yLTYgMTUuMy03LjggMjMuOS03LjcgOCAwIDE2LjIgMS40IDIzLjEgNS41IDkuNyA1LjcgMTYuMiAxNi4yIDE4LjQgMjcuMiA2LjcgMzMtMjAuMiA1OS45LTU2LjYgNjItMTguNiAxLjEtMzcuNi0zLjgtNTIuMS0xNS41LTM2LjktMjkuOC00NS45LTkwLjMtMy44LTEyMi43IDQwLTMwLjcgOTAuNC0yMi44IDEyMC4yLTYuOCAyMy44IDEyLjggNDEuNSAzMy42IDU1IDU2LjcgNi43IDExLjYgMTIuNSAyMy43IDE3LjggMzYuMSA1LjEgMTEuOCA5LjkgMjMuOCAyMC4yIDMyLjUgNi44IDUuOCAxNS4yIDUuNiAyNC4xIDUuNmw1MC44IDBjNi45IDAgNS4yLTQuNiAyLjItNy43LTYuNy02LjktMTYuNC04LjQtMjUuNC0xMC45LTIwLjUtNS42LTE4LjQtMzIuOC0xMi43LTMyLjggMTguMyAwIDE4LjkgLjYgMzQuOSAuMyAyMy4yLS4zIDMwLjItMS43IDQ4LjMgNSA5LjcgMy42IDE5IDEzLjEgMjUuMSAyMS43eiJdfSxWb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwLXN0b3JlLWlvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3MCIsIk00MDAgMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTI3IDM4NC41Yy01LjUgOS42LTE3LjggMTIuOC0yNy4zIDcuMy05LjYtNS41LTEyLjgtMTcuOC03LjMtMjcuM2wxNC4zLTI0LjdjMTYuMS00LjkgMjkuMy0xLjEgMzkuNiAxMS40TDEyNyAzODQuNXptMTM4LjktNTMuOUw4NCAzMzAuNmMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTEgMCA2NS40LTExMy4yLTIwLjUtMzUuNGMtNS41LTkuNi0yLjItMjEuOCA3LjMtMjcuMyA5LjYtNS41IDIxLjgtMi4yIDI3LjMgNy4zbDguOSAxNS40IDguOS0xNS40YzUuNS05LjYgMTcuOC0xMi44IDI3LjMtNy4zIDkuNiA1LjUgMTIuOCAxNy44IDcuMyAyNy4zbC04NS44IDE0OC42IDYyLjEgMGMyMC4yIDAgMzEuNSAyMy43IDIyLjcgNDB6bTk4LjEgMGwtMjkgMCAxOS42IDMzLjljNS41IDkuNiAyLjIgMjEuOC03LjMgMjcuMy05LjYgNS41LTIxLjggMi4yLTI3LjMtNy4zLTMyLjktNTYuOS01Ny41LTk5LjctNzQtMTI4LjEtMTYuNy0yOS00LjgtNTggNy4xLTY3LjggMTMuMSAyMi43IDMyLjcgNTYuNyA1OC45IDEwMmw1MiAwYzExIDAgMjAgOSAyMCAyMCAwIDExLjEtOSAyMC0yMCAyMHoiXX0sVW90PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVsdHJhbHl0aWNzLXlvbG8iLGljb246WzUxMiw1MTIsW10sImU4NmYiLCJNMzgzLjUgMTAuOGM2MS44LS4yIDExMi4zIDUwLjYgMTEyLjMgMTEyLjktLjIgMi43IDAgMC0uMSAzLjNsLjMgLjNjLTEuNSA4OS45LTUzIDE2OC40LTEyNy40IDIwOC41bDAgNTIuOGMwIDYyLjYtNTEuMSAxMTMuNS0xMTMuNyAxMTIuOS02Mi0uNi0xMTEuNC01Mi4yLTExMS40LTExNC4zbDAtNTEuMmMtNDAuNy0yMS45LTc0LjUtNTUuMi05Ny05NS42IDIzLjIgMTYuNSA1MS43IDI2IDgyIDI1LjkgNzguNi0uMiAxNDIuMi02NCAxNDIuMy0xNDIuNSAuMS02Mi4zIDUwLjUtMTEyLjcgMTEyLjktMTEyLjl6bS0yNTUgMjI1LjhhMTEyLjkgMTEyLjkgMCAxIDEgMC0yMjUuOCAxMTIuOSAxMTIuOSAwIDEgMSAwIDIyNS44eiJdfSxRYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWRyaWJiYmxlIixpY29uOls0NDgsNTEyLFsiZHJpYmJibGUtc3F1YXJlIl0sImYzOTciLCJNMTY1LjkgMTMyLjVjLTM4LjMgMTgtNjYuOCA1My4zLTc1LjcgOTUuNyA2LjEgLjEgNjIuNCAuMyAxMjYuNC0xNi43LTIyLjctNDAuMi00Ny4xLTc0LjEtNTAuNy03OXptMjYuMS05LjFjMy44IDUuMSAyOC42IDM4LjkgNTEgODAgNDguNi0xOC4zIDY5LjEtNDUuOSA3MS42LTQ5LjQtMzMuNi0yOS44LTc5LjMtNDEuMS0xMjIuNi0zMC42ek0yNzcuNCAzODJjLTItMTItMTAtNTMuOC0yOS4yLTEwMy42LTU1LjEgMTguOC05My44IDU2LjQtMTA4LjEgODUuNiA0MC41IDMxLjYgOTMuMyAzNi43IDEzNy4zIDE4ek0yMjcuOCAyMzIuNkMxNTkuNiAyNTMgOTMuNCAyNTIuMiA4Ny40IDI1MmwwIDQuMmMwIDM1LjEgMTMuMyA2Ny4xIDM1LjEgOTEuNCAyMi4yLTM3LjkgNjcuMS03Ny45IDExNi41LTkxLjgtMy40LTcuOC03LjItMTUuNS0xMS4xLTIzLjJsLS4xIDB6bTcyLjUgMTM2LjljMzAuNy0yMC43IDUyLjUtNTMuNiA1OC42LTkxLjYtNC42LTEuNS00Mi4zLTEyLjctODUuMS01LjggMTcuOSA0OS4xIDI1LjEgODkuMSAyNi41IDk3LjR6bS0zNC44LTExOWM0NS41LTUuNyA5MC43IDMuNCA5NS4yIDQuNC0uMy0zMi4zLTExLjgtNjEuOS0zMC45LTg1LjEtMi45IDMuOS0yNS44IDMzLjItNzYuMyA1My45IDQuOCA5LjggOC4zIDE3LjggMTIgMjYuOHpNMzg0IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCA5NmExNjAgMTYwIDAgMSAxIDAgMzIwIDE2MCAxNjAgMCAxIDEgMC0zMjB6Il19LFdvdD1RYWUsR290PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVpa2l0IixpY29uOls0NDgsNTEyLFtdLCJmNDAzIiwiTTQ0My45IDEyOGwwIDI1Ni0yMjUuOSAxMjgtMjE4LTEyOCAwLTIxNC4zIDg3LjYgNDUuMSAwIDExNyAxMzMuNSA3NS41IDEzNS44LTc1LjUgMC0xNTEtMTAxLjEtNTcuNiA4Ny42LTUzLjEgMTAwLjUgNTcuOXpNMzA4LjYgNDkuMWwtODQuOC00OS4xLTg4LjYgNTQuOCA4NiA0Ny4zIDg3LjQtNTN6Il19LFlvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdXBlcnBvd2VycyIsaWNvbjpbNDQ4LDUxMixbXSwiZjJkZCIsIk00NDggMzJjLTgzLjMgMTEtMTY2LjggMjItMjUwIDMzLTkyIDEyLjUtMTYzLjMgODYuNy0xNjkgMTgwLTMuMyA1NS41IDE4IDEwOS41IDU3LjggMTQ4LjJMMCA0ODBjODMuMy0xMSAxNjYuNS0yMiAyNDkuOC0zMyA5MS44LTEyLjUgMTYzLjMtODYuOCAxNjguNy0xNzkuOCAzLjUtNTUuNS0xOC0xMDkuNS01Ny43LTE0OC4yTDQ0OCAzMnpNMzY4LjMgMjY0LjNjLTQuMiA3OS41LTc0IDEzOS4yLTE1Mi44IDEzNC41LTc5LjUtNC43LTE0MC43LTcxLTEzNi4zLTE1MSA0LjUtNzkuMiA3NC4zLTEzOS4zIDE1My0xMzQuNSA3OS4zIDQuNyAxNDAuNSA3MSAxMzYuMSAxNTF6Il19LFpvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5b3V0dWJlIixpY29uOls1NzYsNTEyLFs2MTgwMl0sImYxNjciLCJNNTQ5LjcgMTI0LjFDNTQzLjUgMTAwLjQgNTI0LjkgODEuOCA1MDEuNCA3NS41IDQ1OC45IDY0IDI4OC4xIDY0IDI4OC4xIDY0UzExNy4zIDY0IDc0LjcgNzUuNUM1MS4yIDgxLjggMzIuNyAxMDAuNCAyNi40IDEyNC4xIDE1IDE2NyAxNSAyNTYuNCAxNSAyNTYuNHMwIDg5LjQgMTEuNCAxMzIuM2M2LjMgMjMuNiAyNC44IDQxLjUgNDguMyA0Ny44IDQyLjYgMTEuNSAyMTMuNCAxMS41IDIxMy40IDExLjVzMTcwLjggMCAyMTMuNC0xMS41YzIzLjUtNi4zIDQyLTI0LjIgNDguMy00Ny44IDExLjQtNDIuOSAxMS40LTEzMi4zIDExLjQtMTMyLjNzMC04OS40LTExLjQtMTMyLjN6TTIzMi4yIDMzNy42bDAtMTYyLjQgMTQyLjcgODEuMi0xNDIuNyA4MS4yeiJdfSxYb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZW1iZXIiLGljb246WzY0MCw1MTIsW10sImY0MjMiLCJNNjM5LjkgMjU0LjZjLTEuMS0xMC43LTEwLjctNi44LTEwLjctNi44cy0xNS42IDEyLjEtMjkuMyAxMC43Yy0xMy43LTEuMy05LjQtMzItOS40LTMyczMtMjguMS01LjEtMzAuNGMtOC4xLTIuNC0xOCA3LjMtMTggNy4zcy0xMi40IDEzLjctMTguMyAzMS4ybC0xLjYgLjVzMS45LTMwLjYtLjMtMzcuNmMtMS42LTMuNS0xNi40LTMuMi0xOC44IDNzLTE0LjIgNDkuMi0xNSA2Ny4yYzAgMC0yMy4xIDE5LjYtNDMuMyAyMi44cy0yNS05LjQtMjUtOS40IDU0LjgtMTUuMyA1Mi45LTU5LjEtNDQuMi0yNy42LTQ5LTI0Yy00LjYgMy41LTI5LjQgMTguNC0zNi42IDU5LjctLjIgMS40LS43IDcuNS0uNyA3LjVzLTIxLjIgMTQuMi0zMyAxOGMwIDAgMzMtNTUuNi03LjMtODAuOS0xMS40LTYuOC0yMS4zLS41LTI3LjIgNS4zIDEzLjYtMTcuMyA0Ni40LTY0LjIgMzYuOS0xMDUuMi01LjgtMjQuNC0xOC0yNy4xLTI5LjItMjMuMS0xNyA2LjctMjMuNSAxNi43LTIzLjUgMTYuN3MtMjIgMzItMjcuMSA3OS41LTEyLjYgMTA1LjEtMTIuNiAxMDUuMS0xMC41IDEwLjItMjAuMiAxMC43LTUuNC0yOC43LTUuNC0yOC43IDcuNS00NC42IDctNTIuMS0xLjEtMTEuNi05LjktMTQuMmMtOC45LTIuNy0xOC41IDguNi0xOC41IDguNnMtMjUuNSAzOC43LTI3LjcgNDQuNmwtMS4zIDIuNC0xLjMtMS42czE4LTUyLjcgLjgtNTMuNS0yOC41IDE4LjgtMjguNSAxOC44LTE5LjYgMzIuOC0yMC40IDM2LjVsLTEuMy0xLjZzOC4xLTM4LjIgNi40LTQ3LjZjLTEuNi05LjQtMTAuNS03LjUtMTAuNS03LjVzLTExLjMtMS4zLTE0LjIgNS45LTEzLjcgNTUuMy0xNSA3MC43YzAgMC0yOC4yIDIwLjItNDYuOCAyMC40LTE4LjUgLjMtMTYuNy0xMS44LTE2LjctMTEuOHM2OC0yMy4zIDQ5LjQtNjkuMmMtOC4zLTExLjgtMTgtMTUuNS0zMS43LTE1LjMtMTMuNyAuMy0zMC4zIDguNi00MS4zIDMzLjMtNS4zIDExLjgtNi44IDIzLTcuOCAzMS41IDAgMC0xMi4zIDIuNC0xOC44LTIuOXMtMTAgMC0xMCAwLTExLjIgMTQtLjEgMTguMyAyOC4xIDYuMSAyOC4xIDYuMWMxLjYgNy41IDYuMiAxOS41IDE5LjYgMjkuNyAyMC4yIDE1LjMgNTguOC0xLjMgNTguOC0xLjNsMTUuOS04LjhzLjUgMTQuNiAxMi4xIDE2LjcgMTYuNCAxIDM2LjUtNDcuOWMxMS44LTI1IDEyLjYtMjMuNiAxMi42LTIzLjZsMS4zLS4zcy05LjEgNDYuOC01LjYgNTkuN0MxODcuNyAzMTkuNCAyMDMgMzE4IDIwMyAzMThzOC4zIDIuNCAxNS0yMS4yIDE5LjYtNDkuOSAxOS42LTQ5LjlsMS42IDBzLTUuNiA0OC4xIDMgNjMuNyAzMC45IDUuMyAzMC45IDUuMyAxNS42LTcuOCAxOC0xMC4yYzAgMCAxOC41IDE1LjggNDQuNiAxMi45IDU4LjMtMTEuNSA3OS4xLTI1LjkgNzkuMS0yNS45czEwIDI0LjQgNDEuMSAyNi43YzM1LjUgMi43IDU0LjgtMTguNiA1NC44LTE4LjZzLS4zIDEzLjUgMTIuMSAxOC42IDIwLjctMjIuOCAyMC43LTIyLjhsMjAuNy01Ny4yIDEuOSAwczEuMSAzNy4zIDIxLjUgNDMuMiA0Ny0xMy43IDQ3LTEzLjcgNi40LTMuNSA1LjMtMTQuM3ptLTU3OCA1LjNjLjgtMzIgMjEuOC00NS45IDI5LTM5IDcuMyA3IDQuNiAyMi05LjEgMzEuNC0xMy43IDkuNS0xOS45IDcuNi0xOS45IDcuNnpNMzM0LjcgMTM2LjFzMTkuMS00OS43IDIzLjYtMjUuNS00MCA5Ni4yLTQwIDk2LjJjLjUtMTYuMiAxNi40LTcwLjcgMTYuNC03MC43em0yMi44IDEzOC40Yy0xMi42IDMzLTQzLjMgMTkuNi00My4zIDE5LjZzLTMuNS0xMS44IDYuNC00NC45IDMzLjMtMjAuMiAzMy4zLTIwLjIgMTYuMiAxMi40IDMuNiA0NS41em04NC42LTE0LjZzLTMtMTAuNSA4LjEtMzAuNmMxMS0yMC4yIDE5LjYtOS4xIDE5LjYtOS4xczkuNCAxMC4yLTEuMyAyNS41LTI2LjQgMTQuMi0yNi40IDE0LjJ6Il19LFFvdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJib290c3RyYXAiLGljb246WzU3Niw1MTIsW10sImY4MzYiLCJNMzMzLjUgMjAxLjRjMC0yMi4xLTE1LjYtMzQuMy00My0zNC4zbC01MC40IDAgMCA3MS4yIDQyLjUgMGMzMi44LS4xIDUwLjktMTMuMyA1MC45LTM2Ljl6TTUxNyAxODguNmMtOS41LTMwLjktMTAuOS02OC44LTkuOC05OC4xIDEuMS0zMC41LTIyLjctNTguNS01NC43LTU4LjVMMTIzLjcgMzJjLTMyLjEgMC01NS44IDI4LjEtNTQuNyA1OC41IDEgMjkuMy0uMyA2Ny4yLTkuOCA5OC4xLTkuNiAzMS0yNS43IDUwLjYtNTIuMiA1My4xbDAgMjguNWMyNi40IDIuNSA0Mi42IDIyLjEgNTIuMiA1My4xIDkuNSAzMC45IDEwLjkgNjguOCA5LjggOTguMS0xLjEgMzAuNSAyMi43IDU4LjUgNTQuNyA1OC41bDMyOC43IDBjMzIuMSAwIDU1LjgtMjguMSA1NC43LTU4LjUtMS0yOS4zIC4zLTY3LjIgOS44LTk4LjEgOS42LTMxIDI1LjctNTAuNiA1Mi4xLTUzLjFsMC0yOC41Yy0yNi4zLTIuNS00Mi41LTIyLjEtNTItNTMuMXpNMzAwLjIgMzc1LjFsLTk3LjkgMCAwLTIzOC4zIDk3LjQgMGM0My4zIDAgNzEuNyAyMy40IDcxLjcgNTkuNCAwIDI1LjMtMTkuMSA0Ny45LTQzLjUgNTEuOGwwIDEuM2MzMy4yIDMuNiA1NS41IDI2LjYgNTUuNSA1OC4zIDAgNDIuMS0zMS4zIDY3LjUtODMuMiA2Ny41em0tMTAtMTA4LjdsLTUwLjEgMCAwIDc4LjQgNTIuMyAwYzM0LjIgMCA1Mi4zLTEzLjcgNTIuMy0zOS41IDAtMjUuNy0xOC42LTM4LjktNTQuNS0zOC45eiJdfSxKb3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaXR1bmVzIixpY29uOls0NDgsNTEyLFtdLCJmM2I0IiwiTTIyMy42IDgwLjNhMTcxLjMgMTcxLjMgMCAxIDAgLjIgMzQyLjUgMTcxLjMgMTcxLjMgMCAxIDAgLS4yLTM0Mi41em03OS40IDI0MGMtMy4yIDEzLjYtMTMuNSAyMS4yLTI3LjMgMjMuOC0xMi4xIDIuMi0yMi4yIDIuOC0zMS45LTUtMTEuOC0xMC0xMi0yNi40LTEuNC0zNi44IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgMy4yLTMuNiAyLjItMiAyLjItODAuOCAwLTUuNi0yLjctNy4xLTguNC02LjEtNCAuNy05MS45IDE3LjEtOTEuOSAxNy4xLTUgMS4xLTYuNyAyLjYtNi43IDguMyAwIDExNi4xIC41IDExMC44LTEuMiAxMTguNS0yLjEgOS03LjYgMTUuOC0xNC45IDE5LjYtOC4zIDQuNi0yMy40IDYuNi0zMS40IDUuMi0yMS40LTQtMjguOS0yOC43LTE0LjQtNDIuOSA4LjQtOCAyMC4zLTkuNiAzOC0xMi44IDMtLjUgNS42LTEuMiA3LjctMy43IDUtNS43IC45LTEyNyAyLjYtMTMzLjcgLjQtMi42IDEuNS00LjggMy41LTYuNCAyLjEtMS43IDUuOC0yLjcgNi43LTIuNyAxMDEtMTkgMTEzLjMtMjEuNCAxMTUuMS0yMS40IDUuNy0uNCA5IDMgOSA4LjctLjEgMTcwLjYgLjQgMTYxLjQtMSAxNjcuNnpNMzQ1LjIgMzJMMTAyLjggMzJDNDUuOSAzMiAwIDc3LjkgMCAxMzQuOEwwIDM3Ny4yQzAgNDM0LjEgNDUuOSA0ODAgMTAyLjggNDgwbDI0Mi40IDBjNTcgMCAxMDIuOC00NS45IDEwMi44LTEwMi44bDAtMjQyLjRDNDQ4IDc3LjkgNDAyLjEgMzIgMzQ1LjIgMzJ6TTIyMy42IDU5YTE5Mi41IDE5Mi41IDAgMSAxIDAgMzg1IDE5Mi41IDE5Mi41IDAgMSAxIDAtMzg1eiJdfSxKYWU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXhpbmciLGljb246WzQ0OCw1MTIsWyJ4aW5nLXNxdWFyZSJdLCJmMTY5IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek05My44IDMyMC4yYy01LjUgMC04LjctNS4zLTYtMTAuM2w0OS4zLTg2LjdjLjEgMCAuMS0uMSAwLS4ybC0zMS40LTU0Yy0zLTUuNiAuMi0xMC4xIDYtMTAuMWw0Ni42IDBjNS4yIDAgOS41IDIuOSAxMi45IDguN2wzMS45IDU1LjNjLTEuMyAyLjMtMTggMzEuNy01MC4xIDg4LjItMy41IDYuMi03LjcgOS4xLTEyLjYgOS4xbC00Ni42IDB6bTE2My41LTMzLjRsMCAuMiA2NS41IDExOWMyLjggNS4xIC4xIDEwLjEtNiAxMC4xbC00Ni42IDBjLTUuNSAwLTkuNy0yLjktMTIuOS04LjdsLTY2LTEyMC4zYzEuOC0zLjIgMjIuOS00MC40IDYzLjMtMTExLjYgMTEuNy0yMC43IDI1LjEtNDQuMyA0MC4xLTcwLjggMy4zLTUuOCA3LjQtOC43IDEyLjUtOC43bDQ2LjkgMGM1LjctLjEgOC44IDQuNyA2IDEwTDI1Ny4zIDI4Ni44eiJdfSxLb3Q9SmFlLGUydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MzLWFsdCIsaWNvbjpbMzg0LDUxMixbXSwiZjM4YiIsIk0wIDMyTDM0LjkgNDI3LjggMTkyIDQ4MCAzNDkuMSA0MjcuOCAzODQgMzIgMCAzMnptMzEzLjEgODBsLTQuOCA0Ny4zLTExNS4zIDQ5LjMtLjMgLjEgMTExLjUgMC0xMi44IDE0Ni42LTk4LjIgMjguNy05OC44LTI5LjItNi40LTczLjkgNDguOSAwIDMuMiAzOC4zIDUyLjYgMTMuMyA1NC43LTE1LjQgMy43LTYxLjYtMTY2LjMtLjUgMC0uMS0uMiAuMS0zLjYtNDYuMyAxMTIuMS00Ni43IDYuNS0yLjctMTIyLjkgMC01LjgtNDcuMyAyNDIuMiAweiJdfSx0MnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlc3BhY2UiLGljb246WzUxMiw1MTIsW10sImY1YmUiLCJNMTg2LjEgMzQzLjNjLTkuNyA5LjctOS43IDI1LjMgMCAzNC45czI1LjMgOS42IDM0LjkgMEwzNzguMyAyMjEuMWMxOS4zLTE5LjMgNTAuNi0xOS4zIDY5LjkgMHMxOS4zIDUwLjYgMCA2OS45TDI5NCA0NDUuMWMxOS4zIDE5LjMgNTAuNSAxOS4zIDY5LjggMGwwIDAgMTE5LjMtMTE5LjJjMzguNi0zOC42IDM4LjYtMTAxLjEgMC0xMzkuNy0zOC42LTM4LjYtMTAxLjItMzguNi0xMzkuNyAwTDE4Ni4xIDM0My4zek00MzAuNyAyMzguNWMtOS43LTkuNy0yNS4zLTkuNy0zNC45IDBMMjM4LjUgMzk1LjdjLTE5LjMgMTkuMy01MC41IDE5LjMtNjkuOCAwbDAgMGMtOS42LTkuNi0yNS4zLTkuNy0zNC45IDBsMCAwYy05LjcgOS42LTkuNyAyNS4zIDAgMzQuOWwwIDBjMzguNiAzOC42IDEwMS4xIDM4LjYgMTM5LjcgMEw0MzAuNyAyNzMuNWM5LjYtOS43IDkuNi0yNS4zIDAtMzQuOXptLTI2MiA4Ny4zTDMyNS45IDE2OC43YzkuNi05LjYgOS42LTI1LjMgMC0zNC45LTkuNi05LjYtMjUuMy05LjYtMzQuOSAwTDEzMy43IDI5MC45Yy0xOS4zIDE5LjMtNTAuNiAxOS4zLTY5LjkgMGwwIDBjLTE5LjMtMTkuMy0xOS4zLTUwLjUgMC02OS44bDAgMCAxNTQuMi0xNTQuMmMtMTkuMy0xOS4zLTUwLjUtMTkuMy02OS44IDBsMCAwLTExOS4yIDExOS4zYy0zOC42IDM4LjYtMzguNiAxMDEuMSAwIDEzOS43IDM4LjYgMzguNiAxMDEuMSAzOC42IDEzOS43IDB6TTgxLjMgMjczLjVjOS42IDkuNiAyNS4zIDkuNiAzNC45IDBMMjczLjUgMTE2LjNjMTkuMy0xOS4zIDUwLjYtMTkuMyA2OS44IDBsMCAwYzkuNyA5LjYgMjUuMyA5LjYgMzQuOSAwczkuNi0yNS4zIDAtMzQuOWMtMzguNi0zOC42LTEwMS4xLTM4LjYtMTM5LjcgMEw4MS4zIDIzOC41Yy05LjYgOS42LTkuNiAyNS4zIDAgMzQuOWwwIDB6Il19LHIydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0cmVsbG8iLGljb246WzQ0OCw1MTIsW10sImYxODEiLCJNMzkyLjMgMzJMNTYuMSAzMmMtMzEgMC01Ni4xIDI1LjEtNTYuMSA1Ni0uMSAwIDAtNCAwIDMzNiAwIDMwLjkgMjUuMSA1NiA1NiA1NmwzMzYuMiAwYzMwLjgtLjIgNTUuNy0yNS4yIDU1LjctNTZsMC0zMzZjLjEtMzAuOC0yNC44LTU1LjgtNTUuNi01NnpNMTk3IDM3MS4zYy0uMiAxNC43LTEyLjEgMjYuNi0yNi45IDI2LjZsLTgyLjcgMGMtMTQuOCAuMS0yNi45LTExLjgtMjctMjYuNmwwLTI1NC4yYzAtMTQuOCAxMi0yNi45IDI2LjktMjYuOWw4Mi45IDBjMTQuOCAwIDI2LjkgMTIgMjYuOSAyNi45bDAgMjU0LjItLjEgMHptMTkzLjEtMTEyYzAgMTQuOC0xMiAyNi45LTI2LjkgMjYuOWwtODEgMGMtMTQuOCAwLTI2LjktMTItMjYuOS0yNi45bDAtMTQyLjFjMC0xNC44IDEyLTI2LjkgMjYuOC0yNi45bDgxLjEgMGMxNC44IDAgMjYuOSAxMiAyNi45IDI2LjlsMCAxNDIuMXoiXX0saTJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpYWRlbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhOSIsIk0yNzYuNCAxNTAuNWwwIC43Yy0xNy45LTUyLjYtNDIuNi0xMDMuNC03MC44LTE1MS4yIDQzLjMgMjkuMiA2NyAxMDAgNzAuOCAxNTAuNXptMzIuNyAxMjEuN2M3LjYgMTguMiAxMSAzNy41IDExIDU3IDAgNzcuNy01Ny44IDE0MS0xMzcuOCAxMzkuNGwzLjgtLjNjNzQuMi00Ni43IDEwOS4zLTExOC42IDEwOS4zLTIwNS4xIDAtMzguMS02LjUtNzUuOS0xOC45LTExMiAxIDExLjcgMSAyMy43IDEgMzUuNCAwIDkxLjgtMTguMSAyNDEuNi0xMTYuNiAyODAtNjUuNy0xMS40LTExMS4zLTY4LjYtMTExLjMtMTM3LjQgMC03NS42IDU3LjQtMTQyLjMgMTM1LjQtMTQyLjMgMTYuOCAwIDMzLjcgMy4xIDQ5LjEgOS42IDEuNy0xNS4xIDYuNS0yOS45IDEzLjQtNDMuMy0xOS45LTcuMi00MS4yLTEwLjctNjIuNS0xMC43LTE2MS41IDAtMjM4LjcgMTk1LjktMTI5LjkgMzEzLjcgNjcuOSA3NC42IDE5MiA3My45IDI1OS44IDAgNTYuNi02MS4zIDYwLjktMTQyLjQgMzYuNC0yMDEtMTIuNyA4LTI3LjEgMTMuOS00Mi4yIDE3ek00MTguMyAxMS43Yy0zMSA2Ni41LTgxLjMgNDcuMi0xMTUuOCA4MC4xLTEyLjQgMTItMjAuNiAzNC0yMC42IDUwLjUgMCAxNC4xIDQuNSAyNy4xIDEyIDM4LjggNDcuNC0xMSA5OC4zLTQ2IDExOC4yLTkwLjctLjcgNS41LTQuOCAxNC40LTcuMiAxOS4yLTIwLjMgMzUuNy02NC42IDY1LjYtOTkuNyA4NC45IDE0LjggMTQuNCAzMy43IDI1LjggNTUgMjUuOCA3OSAwIDExMC4xLTEzNC42IDU4LjEtMjA4LjZ6Il19LGEydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZWFyY2hlbmdpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlYiIsIk0yMTQuNiAxMzAuM2wtNjcuMiAyOC4yIDAtMTE1LjMtNTQuNyAxOTAuMyA1NC43LTI0LjIgMCAxMzAuMyA2Ny4yLTIwOS4zek0xMzEuNCAzMy42bC0xLjMgNC43LTE1LjIgNTIuOUM3NC42IDEwNi43IDQ2IDE0NS44IDQ2IDE5MS41IDQ2IDI0My44IDgwLjMgMjg3LjQgMTI5LjQgMjk3bDAgNTMuNkM1MS41IDM0MC4xLTYgMjcyLjQtNiAxOTEuNi02IDExMS4xIDUzLjggNDQuNCAxMzEuNCAzMy42ek00NDIuOCA0ODAuOGMtMTEuMiAxMS4yLTIzLjEgMTIuMy0yOC42IDEwLjUtNS40LTEuOC0yNy4xLTE5LjktNjAuNC00NC40LTMzLjMtMjQuNi0zMy42LTM1LjctNDMtNTYuNy05LjQtMjAuOS0zMC40LTQyLjYtNTcuNS01Mi40bC05LjctMTQuN2MtMjQuNyAxNi45LTUzIDI2LjktODEuMyAyOC43bDIuMS02LjYgMTUuOS00OS41YzQ2LjUtMTEuOSA4MC45LTU0IDgwLjktMTA0LjIgMC01NC41LTM4LjQtMTAyLjEtOTYtMTA3LjFsMC01Mi4xYzgzLjIgNS4xIDE0OC44IDc0LjUgMTQ4LjggMTU5LjMgMCAzMy42LTExLjIgNjQuNy0yOSA5MC40bDE0LjYgOS42YzkuOCAyNy4xIDMxLjUgNDggNTIuNCA1Ny40czMyLjIgOS43IDU2LjggNDNjMjQuNiAzMy4yIDQyLjcgNTQuOSA0NC41IDYwLjNzLjcgMTcuMy0xMC41IDI4LjV6bS05LjktMTcuOWMwLTQuNC0zLjYtOC04LThzLTggMy42LTggOCAzLjYgOCA4IDggOC0zLjYgOC04eiJdfSxuMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5yZWFsLWVuZ2luZSIsaWNvbjpbNTEyLDUxMixbXSwiZTg1YyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNjUuNS0xMTMuN2wtMjUuMS0yOC4zLTQyLjQgNDIuNmMtMjQuMS0uMy00Ny45LTYuMi02OS4zLTE3LjJzLTQwLjEtMjYuOS01NC41LTQ2LjNjNC41IDEuNCA5LjIgMi4zIDEzLjkgMi42IDYuOSAuMSAxNC41LTIuNCAxNC41LTE0LjFsMC0xMTUuMWMuMS0zLS41LTUuOS0xLjctOC42cy0zLjEtNS01LjQtNi45LTUtMy4xLTcuOS0zLjctNS45LS41LTguOCAuMmMtMTkuNiA0LjUtMzUuMyA1My41LTM1LjMgNTMuNS0uMi0yMi42IDQuNS00NSAxMy44LTY1LjZzMjMtMzkgNDAuMS01My44YzIyLjUtMTkuNSA1MC4xLTMyLjIgNzkuNi0zNi43LTIxLjQgMTIuMi0zMy41IDMyLjEtMzMuNSA0OC45IDAgMjYuOSAxNi4yIDIzLjYgMjEgMTkuN2wwIDE1NS4zYy44IDEuOSAxLjkgMy44IDMuMiA1LjUgMi4xIDMgNSA1LjQgOC4yIDdzNi45IDIuNSAxMC41IDIuNWMxNi4yIDAgMzcuMy0xOC41IDM3LjMtMTguNWwwLTEyNS43YzAtMTIuOC05LjYtMjguMi0xOS4zLTMzLjUgMCAwIDE3LjktMy4yIDMxLjcgNy40IDIuNi0zLjIgNS4zLTYuMiA4LjItOS4xIDMyLjItMzEuNiA2Mi41LTQwLjYgODcuNy00NS4xIDAgMC00NS45IDM2LjEtNDUuOSA4NC41IDAgMzYgLjkgMTIzLjggLjkgMTIzLjggMTcgMTYuNCA0Mi40LTcuMyA2NS4yLTMwLjgtNC40IDIxLjMtMjQgNzUuOS04Ni42IDEwNS40eiJdfSxvMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGF5cGFsIixpY29uOlszODQsNTEyLFtdLCJmMWVkIiwiTTExMS45IDI5NS45Yy0zLjUgMTkuMi0xNy40IDEwOC43LTIxLjUgMTM0LS4zIDEuOC0xIDIuNS0zIDIuNWwtNzQuNiAwYy03LjYgMC0xMy4xLTYuNi0xMi4xLTEzLjlMNTkuMyA0Ni42YzEuNS05LjYgMTAuMS0xNi45IDIwLTE2LjkgMTUyLjMgMCAxNjUuMS0zLjcgMjA0IDExLjQgNjAuMSAyMy4zIDY1LjYgNzkuNSA0NCAxNDAuMy0yMS41IDYyLjYtNzIuNSA4OS41LTE0MC4xIDkwLjMtNDMuNCAuNy02OS41LTctNzUuMyAyNC4yek0zNTcuNiAxNTJjLTEuOC0xLjMtMi41LTEuOC0zIDEuMy0yIDExLjQtNS4xIDIyLjUtOC44IDMzLjYtMzkuOSAxMTMuOC0xNTAuNSAxMDMuOS0yMDQuNSAxMDMuOS02LjEgMC0xMC4xIDMuMy0xMC45IDkuNC0yMi42IDE0MC40LTI3LjEgMTY5LjctMjcuMSAxNjkuNy0xIDcuMSAzLjUgMTIuOSAxMC42IDEyLjlsNjMuNSAwYzguNiAwIDE1LjctNi4zIDE3LjQtMTQuOSAuNy01LjQtMS4xIDYuMSAxNC40LTkxLjMgNC42LTIyIDE0LjMtMTkuNyAyOS4zLTE5LjcgNzEgMCAxMjYuNC0yOC44IDE0Mi45LTExMi4zIDYuNS0zNC44IDQuNi03MS40LTIzLjgtOTIuNnoiXX0sczJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1ibHVlc2t5IixpY29uOls0NDgsNTEyLFtdLCJlNmEzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyNDcuNGMxNC41LTMwIDU0LTg1LjggOTAuNy0xMTMuMyAyNi41LTE5LjkgNjkuMy0zNS4yIDY5LjMgMTMuNyAwIDkuOC01LjYgODIuMS04LjkgOTMuOC0xMS40IDQwLjgtNTMgNTEuMi05MCA0NC45IDY0LjcgMTEgODEuMiA0Ny41IDQ1LjYgODQtNjcuNSA2OS4zLTk3LTE3LjQtMTA0LjYtMzkuNmwtLjMtLjljLS45LTIuNi0xLjQtNC4xLTEuOC00LjFzLS45IDEuNS0xLjggNC4xYy0uMSAuMy0uMiAuNi0uMyAuOS03LjYgMjIuMi0zNy4xIDEwOC44LTEwNC42IDM5LjYtMzUuNS0zNi41LTE5LjEtNzMgNDUuNi04NC0zNyA2LjMtNzguNi00LjEtOTAtNDQuOS0zLjMtMTEuNy04LjktODQtOC45LTkzLjggMC00OC45IDQyLjktMzMuNSA2OS4zLTEzLjcgMzYuNyAyNy41IDc2LjIgODMuNCA5MC43IDExMy4zeiJdfSxsMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZC1hbmQtZC1iZXlvbmQiLGljb246WzY0MCw1MTIsW10sImY2Y2EiLCJNMzEzLjggMjQxLjVjMTMuOCAwIDIxLTEwLjEgMjQuOC0xNy45LTEtMS4xLTUtNC4yLTcuNC02LjYtMi40IDQuMy04LjIgMTAuNy0xMy45IDEwLjctMTAuMiAwLTE1LjQtMTQuNy0zLjItMjYuNi0uNS0uMi00LjMtMS44LTggMi40IDAtMyAxLTUuMSAyLjEtNi42LTMuNSAxLjMtOS44IDUuNi0xMS40IDcuOSAuMi01LjggMS42LTcuNSAuNi05bC0uMi0uMnMtOC41IDUuNi05LjMgMTQuN2MwIDAgMS4xLTEuNiAyLjEtMS45IC42LS4zIDEuMyAwIC42IDEuOS0uMiAuNi01LjggMTUuNyA1LjEgMjYtLjYtMS42LTEuOS03LjYgMi40LTEuOS0uMyAuMSA1LjggNy4xIDE1LjcgNy4xem01Mi40LTIxLjFjMC00LTQuOS00LjQtNS42LTQuNSAyIDMuOSAuOSA3LjUgLjIgOSAyLjUtLjQgNS40LTEuNiA1LjQtNC41em0xMC4zIDUuMmMwLTYuNC02LjItMTEuNC0xMy41LTEwLjcgOCAxLjMgNS42IDEzLjgtNSAxMS40IDMuNy0yLjYgMy4yLTkuOS0xLjMtMTIuNSAxLjQgNC4yLTMgOC4yLTcuNCA0LjYtMi40LTEuOS04LTYuNi0xMC42LTguNi0yLjQtMi4xLTUuNS0xLTYuNi0xLjgtMS4zLTEuMS0uNS0zLjgtMi4yLTUtMS42LS44LTMtLjMtNC44LTEtMS42LS42LTIuNy0xLjktMi42LTMuNS0yLjUgNC40IDMuNCA2LjMgNC41IDguNSAxIDEuOS0uOCA0LjggNCA4LjUgMTQuOCAxMS42IDkuMSA4IDEwLjQgMTguMSAuNiA0LjMgNC4yIDYuNyA2LjQgNy40LTIuMS0xLjktMi45LTYuNCAwLTkuMyAwIDEzLjkgMTkuMiAxMy4zIDIzLjEgNi40LTIuNCAxLjEtNy0uMi05LTEuOSA3LjcgMSAxNC4yLTQuMSAxNC42LTEwLjZ6bS0zOS40LTE4LjRjMiAuOCAxLjYgLjcgNi40IDQuNSAxMC4yLTI0LjUgMjEuNy0xNS43IDIyLTE1LjUgMi4yLTEuOSA5LjgtMy44IDEzLjgtMi43LTIuNC0yLjctNy41LTYuMi0xMy4zLTYuMi00LjcgMC03LjQgMi4yLTggMS4zLS44LTEuNCAzLjItMy40IDMuMi0zLjQtNS40IC4yLTkuNiA2LjctMTEuMiA1LjktMS4xLS41IDEuNC0zLjcgMS40LTMuNy01LjEgMi45LTkuMyA5LjEtMTAuMiAxMyA0LjYtNS44IDEzLjgtOS44IDE5LjctOS0xMC41IC41LTE5LjUgOS43LTIzLjggMTUuOHptMjQyLjUgNTEuOWMtMjAuNyAwLTQwIDEuMy01MC4zIDIuMWw3LjQgOC4yIDAgNzcuMi03LjQgOC4yYzEwLjQgLjggMzAuOSAyLjEgNTEuNiAyLjEgNDIuMSAwIDU5LjEtMjAuNyA1OS4xLTQ4LjkgMC0yOS4zLTIzLjItNDguOS02MC40LTQ4Ljl6bS0xNS4xIDc1LjZsMC01My4zYzMwLjEtMy4zIDQ2LjggMy44IDQ2LjggMjYuMyAwIDI1LjYtMjEuNCAzMC4yLTQ2LjggMjd6TTMwMS42IDE4MWMtMS0zLjQtLjItNi45IDEuMS05LjQgMSAzIDIuNiA2LjQgNy41IDktLjUtMi40LS4yLTUuNiAuNS04LTEuNC01LjQgMi4xLTkuOSA2LjQtOS45IDYuOSAwIDguNSA4LjggNC43IDE0LjQgMi4xIDMuMiA1LjUgNS42IDcuNyA3LjggMy4yLTMuNyA1LjUtOS41IDUuNS0xMy44IDAtOC4yLTUuNS0xNS45LTE2LjctMTYuNS0yMC0uOS0yMC4yIDE2LjYtMjAgMTguOSAuNSA1LjIgMy40IDcuOCAzLjMgNy41em0tLjQgNmMtLjUgMS44LTcgMy43LTEwLjIgNi45IDQuOC0xIDctLjIgNy44IDEuOCAuNSAxLjQtLjIgMy40LS41IDUuNiAxLjYtMS44IDctNS41IDExLTYuMi0xLS4zLTMuNC0uOC00LjMtLjggMi45LTMuNCA5LjMtNC41IDEyLjgtMy43LTIuMi0uMi02LjcgMS4xLTguNSAyLjYgMS42IC4zIDMgLjYgNC4zIDEuMS0yLjEgLjgtNC44IDMuNC01LjggNi4xIDctNSAxMy4xIDUuMiA3IDguMiAuOCAuMiAyLjcgMCAzLjUtLjUtLjMgMS4xLTEuOSAzLTMgMy40IDIuOSAwIDctMS45IDguMi00LjYgMCAwLTEuOCAuNi0yLjYtLjJzLjMtNC4zIC4zLTQuM2MtMi4zIDIuOS0zLjQtMS4zLTEuMy00LjItMS0uMy0zLjUtLjYtNC42LS41IDMuMi0xLjEgMTAuNC0xLjggMTEuMi0uMyAuNiAxLjEtMSAzLjQtMSAzLjQgNC0uNSA4LjMgMS4xIDYuNyA1LjEgMi45LTEuNCA1LjUtNS45IDQuOC0xMC40LS4zIDEtMS42IDIuNC0yLjkgMi43IC4yLTEuNC0xLTIuMi0xLjktMi42IDEuNy05LjYtMTQuNi0xNC4yLTE0LjEtMjMuOS0xIDEuMy0xLjggNS0uOCA3LjEgMi43IDMuMiA4LjcgNi43IDEwLjEgMTIuMi0yLjYtNi40LTE1LjEtMTEuNC0xNC42LTIwLjItMS42IDEuNi0yLjYgNy44LTEuMyAxMSAyLjQgMS40IDQuNSAzLjggNC44IDYuMS0yLjItNS4xLTExLjQtNi4xLTEzLjktMTIuMi0uNiAyLjItLjMgNSAxIDYuNyAwIDAtMi4yLS44LTctLjYgMS43IC42IDUuMSAzLjUgNC44IDUuMnptMjUuOSA3LjRjLTIuNyAwLTMuNS0yLjEtNC4yLTQuMyAzLjMgMS4zIDQuMiA0LjMgNC4yIDQuM3ptMzguOSAzLjdsLTEtLjZjLTEuMS0xLTIuOS0xLjQtNC43LTEuNC0yLjkgMC01LjggMS4zLTcuNSAzLjQtLjggLjgtMS40IDEuOC0yLjEgMi42bDAgMTUuN2MzLjUgMi42IDcuMS0yLjkgMy03LjIgMS41IC4zIDQuNiAyLjcgNS4xIDMuMiAwIDAgMi42LS41IDUtLjUgMi4xIDAgMy45IC4zIDUuNiAxLjFsMC0xOC40Yy0xLjEgLjUtMi4yIDEtMi43IDEuNGwtLjcgLjd6TTc5LjkgMzA1LjljMTcuMi00LjYgMTYuMi0xOCAxNi4yLTE5LjkgMC0yMC42LTI0LjEtMjUtMzctMjVsLTU2LjEgMCA4LjMgOC42IDAgMjkuNS0xMS4zIDAgMTEuNCAxNC42IDAgMzIuMy04LjQgOC42YzYxLjcgMCA3My44IDEuNSA4Ni40LTUuOSA2LjctNCA5LjktOS44IDkuOS0xNy42IDAtNS4xIDIuNi0xOC44LTE5LjQtMjUuMnpNMzguNiAyNzguNGMyMCAwIDI5LjYtLjggMjkuNiA5LjFsMCAzYzAgMTIuMS0xOSA4LjgtMjkuNiA4LjhsMC0yMC45em0wIDU5LjJsMC0yMi42YzEyLjIgMCAzMi43LTIuMyAzMi43IDguOGwwIDQuNSAuMiAwYzAgMTEuMi0xMi41IDkuMy0zMi45IDkuM3ptMTAxLjItMTkuM2wyMy4xIC4yIDAtLjIgMTQuMS0yMS4yLTM3LjIgMCAwLTE0LjkgNTIuNCAwLTE0LjEtMjEgMC0uMi03My41IC4yIDcuNCA4LjIgMCA3Ny4xLTcuNCA4LjIgODEuMiAwIDE0LjEtMjEuMi02MC4xIC4yIDAtMTUuNHptMjE0LjctNjAuMWMtNzMuOSAwLTc3LjUgOTkuMy0uMyA5OS4zIDc3LjkgMCA3NC4xLTk5LjMgLjMtOTkuM3ptLS4zIDc3LjVjLTM3LjQgMC0zNi45LTU1LjMgLjItNTUuMyAzNi44IC4xIDM4LjggNTUuMy0uMiA1NS4zem0tOTEuMy04LjNsNDQuMS02Ni4yLTQxLjcgMCA2LjEgNy4yLTIwLjUgMzcuMi0uMyAwLTIxLTM3LjIgNi40LTcuMi00NC45IDAgNDQuMSA2NS44IC4yIDE5LjQtNy43IDguMiA0Mi42IDAtNy4yLTguMi0uMi0xOXpNMjM0LjUgMTc2LjFjMS42IDEuMyAyLjkgMi40IDIuOSA2LjZsMCAzOC44YzAgNC4yLS44IDUuMy0yLjcgNi40LS4xIC4xLTcuNSA0LjUtNy45IDQuNmwzNS4xIDBjMTAgMCAxNy40LTEuNSAyNi04LjYtLjYtNSAuMi05LjUgLjgtMTIgMC0uMi0xLjggMS40LTIuNyAzLjUgMC01LjcgMS42LTE1LjQgOS42LTIwLjUtLjEgMC0zLjctLjgtOSAxLjEgMi0zLjEgMTAtNy45IDEwLjQtNy45LTguMi0yNi0zOC0yMi45LTMyLjItMjIuOS0zMC45IDAtMzIuNiAuMy0zOS45LTQgLjEgLjggLjUgOC4yIDkuNiAxNC45em0yMS41IDUuNWM0LjYgMCAyMy4xLTMuMyAyMy4xIDE3LjMgMCAyMC43LTE4LjQgMTcuMy0yMy4xIDE3LjNsMC0zNC42em0yMjguOSA3OS42bDcgOC4zIDAgNDIuNS0uMyAwYy01LjQtMTQuNC00Mi4zLTQxLjUtNDUuMi01MC45bC0zMS42IDAgNy40IDguNSAwIDc2LjktNy4yIDguMyAzOSAwLTcuNC04LjIgMC00Ny40IC4zIDBjMy43IDEwLjYgNDQuNSA0Mi45IDQ4LjUgNTUuNmwyMS4zIDAgMC04NS4yIDcuNC04LjMtMzkuMi0uMXpNMzc4LjIgMTY1LjFjLTMyLjIgMC0zMi44IC4yLTM5LjktNCAuMSAuNyAuNSA4LjMgOS42IDE0LjkgMy4xIDIgMi45IDQuMyAyLjkgOS41IDEuOC0xLjEgMy44LTIuMiA2LjEtMy0xLjEgMS4xLTIuNyAyLjctMy41IDQuNSAxLTEuMSA3LjUtNS4xIDE0LjYtMy41LTEuNiAuMy00IDEuMS02LjEgMi45IC4xIDAgMi4xLTEuMSA3LjUtLjNsMC00LjNjNC43IDAgMjMuMS0zLjQgMjMuMSAxNy4zIDAgMjAuNS0xOC41IDE3LjMtMTkuNyAxNy4zIDUuNyA0LjQgNS44IDEyIDIuMiAxNi4zbC4zIDBjMzMuNCAwIDM2LjctMjcuMyAzNi43LTM0IDAtMy44LTEuMS0zMi0zMy44LTMzLjZ6Il19LGMydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtaWNyb3NvZnQiLGljb246WzQ0OCw1MTIsW10sImYzY2EiLCJNMCAzMmwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42em0yMzMuNCAwbDIxNC42IDAgMCAyMTQuNi0yMTQuNiAwIDAtMjE0LjZ6TTAgMjY1LjRsMjE0LjYgMCAwIDIxNC42LTIxNC42IDAgMC0yMTQuNnptMjMzLjQgMGwyMTQuNiAwIDAgMjE0LjYtMjE0LjYgMCAwLTIxNC42eiJdfSxkMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmx5IixpY29uOlszMjAsNTEyLFtdLCJmNDE3IiwiTTE2NS45IDQyNy44YzEyLjkgMTEuNyAzMy43IDMzLjMgMzMuMiA1MC43IDAgLjgtLjEgMS42LS4xIDIuNS0xLjggMTkuOC0xOC44IDMxLjEtMzkuMSAzMS0yNS0uMS0zOS45LTE2LjgtMzguNy0zNS44IDEtMTYuMiAyMC41LTM2LjcgMzIuNC00Ny42IDIuMy0yLjEgMi43LTIuNyA1LjYtMy42IDMuNCAwIDMuOSAuMyA2LjcgMi44ek0zMDAgNjcuM2MtMTYuMy0yNS43LTM4LjYtNDAuNi02My4zLTUyLjEtMjUuNS0xMC43LTU0LjYtMTUuNC03Ni42LTE1LjItNDQuMSAwLTcxLjIgMTMuMi04MS4xIDE3LjMtNTMuNiAyNy45LTg0LjQgNjkuOS04Mi45IDE0MS4zIDcuMSA4Mi4yIDk3IDE3NiAxNTUuOCAyMzMuOCAxLjcgMS42IDQuNSA0LjUgNi4yIDUuMWwzLjMgLjFjMi4xLS43IDEuOC0uNSAzLjUtMi4xIDUyLjMtNDkuMiAxNDAuNy0xNDUuOCAxNTUuOS0yMTUuNyA3LTM5LjIgMy4xLTcyLjUtMjAuOC0xMTIuNXpNMTU0LjkgMzUxLjljLTI4LTUxLjEtNjUuMi0xMzAuNy02OS4zLTE4OS0zLjQtNDcuNSAxMS40LTEzMS4yIDY5LjMtMTM2LjdsMCAzMjUuN3pNMjk2LjggMTgwYy0xNi40IDU2LjgtNzcuMyAxMjgtMTE4LjkgMTcwLjMgMjcuOC01MS45IDY1LjItMTMzLjMgNjcuMi0xOTEuOSAxLjYtNDUuOS05LjgtMTA1LjgtNDgtMTMxLjQgODguOCAxOC4zIDExNS41IDk4LjEgOTkuNyAxNTN6Il19LHUydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy1zdHJpcGUiLGljb246WzU3Niw1MTIsW10sImYxZjUiLCJNNDkyLjQgMjIwLjhjLTguOSAwLTE4LjcgNi43LTE4LjcgMjIuN2wzNi43IDBjMC0xNi05LjMtMjIuNy0xOC0yMi43ek0zNzUgMjIzLjRjLTguMiAwLTEzLjMgMi45LTE3IDdsLjIgNTIuOGMzLjUgMy43IDguNSA2LjcgMTYuOCA2LjcgMTMuMSAwIDIxLjktMTQuMyAyMS45LTMzLjQgMC0xOC42LTktMzMuMi0yMS45LTMzLjF6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xMjIuMiAyODEuMWMwIDI1LjYtMjAuMyA0MC4xLTQ5LjkgNDAuMy0xMi4yIDAtMjUuNi0yLjQtMzguOC04LjFsMC0zMy45YzEyIDYuNCAyNy4xIDExLjMgMzguOSAxMS4zIDcuOSAwIDEzLjYtMi4xIDEzLjYtOC43IDAtMTctNTQtMTAuNi01NC00OS45IDAtMjUuMiAxOS4yLTQwLjIgNDgtNDAuMiAxMS44IDAgMjMuNSAxLjggMzUuMyA2LjVsMCAzMy40Yy0xMC44LTUuOC0yNC41LTkuMS0zNS4zLTkuMS03LjUgMC0xMi4xIDIuMi0xMi4xIDcuNyAwIDE2IDU0LjMgOC40IDU0LjMgNTAuN3pNMTkxIDIyNC41bC0yNyAwIDAgNTAuNWMwIDIwLjkgMjIuNSAxNC40IDI3IDEyLjZsMCAyOC45Yy00LjcgMi42LTEzLjMgNC43LTI0LjkgNC43LTIxLjEgMC0zNi45LTE1LjUtMzYuOS0zNi41bC4yLTExMy45IDM0LjctNy40IDAgMzAuOCAyNi45IDAgMCAzMC4zem03NCAyLjRjLTQuNS0xLjUtMTguNy0zLjYtMjcuMSA3LjRsMCA4NC40LTM1LjUgMCAwLTEyNC41IDMwLjcgMCAyLjIgMTAuNWM4LjMtMTUuMyAyNC45LTEyLjIgMjkuNi0xMC41bC4xIDAgMCAzMi43em00NC4xIDkxLjhsLTM1LjcgMCAwLTEyNC41IDM1LjcgMCAwIDEyNC41em0wLTE0Mi45bC0zNS43IDcuNiAwLTI4LjkgMzUuNy03LjYgMCAyOC45em03NC4xIDE0NS41Yy0xMi40IDAtMjAtNS4zLTI1LjEtOWwtLjEgNDAuMi0zNS41IDcuNSAwLTE2NS44IDMxLjMgMCAxLjggOC44YzQuOS00LjUgMTMuOS0xMS4xIDI3LjgtMTEuMSAyNC45IDAgNDguNCAyMi41IDQ4LjQgNjMuOCAwIDQ1LjEtMjMuMiA2NS41LTQ4LjYgNjUuNnptMTYwLjQtNTEuNWwtNjkuNSAwYzEuNiAxNi42IDEzLjggMjEuNSAyNy42IDIxLjUgMTQuMSAwIDI1LjItMyAzNC45LTcuOWwwIDI4LjZjLTkuNyA1LjMtMjIuNCA5LjItMzkuNCA5LjItMzQuNiAwLTU4LjgtMjEuNy01OC44LTY0LjUgMC0zNi4yIDIwLjUtNjQuOSA1NC4zLTY0LjkgMzMuNyAwIDUxLjMgMjguNyA1MS4zIDY1LjEgMCAzLjUtLjMgMTAuOS0uNCAxMi45eiJdfSxwMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29yZHByZXNzLXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjQxMSIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTMzIDI1NmMwLTMyLjMgNi45LTYzIDE5LjMtOTAuN0wxNTguNyA0NTYuN0M4NC4zIDQyMC41IDMzIDM0NC4yIDMzIDI1NnpNMjU2IDQ3OWMtMjEuOSAwLTQzLTMuMi02My05LjFsNjYuOS0xOTQuNCA2OC41IDE4Ny44Yy41IDEuMSAxIDIuMSAxLjYgMy4xLTIzLjEgOC4xLTQ4IDEyLjYtNzQgMTIuNnptMzAuNy0zMjcuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTIxLjkgMC01OC43LTIuOC01OC43LTIuOC0xMi0uNy0xMy40IDE3LjctMS40IDE4LjQgMCAwIDExLjQgMS40IDIzLjQgMi4xbDM0LjcgOTUuMi00OC44IDE0Ni4zLTgxLjItMjQxLjVjMTMuNC0uNyAyNS41LTIuMSAyNS41LTIuMSAxMi0xLjQgMTAuNi0xOS4xLTEuNC0xOC40IDAgMC0zNi4xIDIuOC01OS40IDIuOC00LjIgMC05LjEtLjEtMTQuNC0uMyAzOS45LTYwLjUgMTA4LjQtMTAwLjUgMTg2LjMtMTAwLjUgNTggMCAxMTAuOSAyMi4yIDE1MC42IDU4LjUtMS0uMS0xLjktLjItMi45LS4yLTIxLjkgMC0zNy40IDE5LjEtMzcuNCAzOS42IDAgMTguNCAxMC42IDMzLjkgMjEuOSA1Mi4zIDguNSAxNC44IDE4LjQgMzMuOSAxOC40IDYxLjUgMCAxOS4xLTcuMyA0MS4yLTE3IDcyLjFsLTIyLjIgNzQuMy04MC43LTIzOS42em04MS40IDI5Ny4ybDY4LjEtMTk2LjljMTIuNy0zMS44IDE3LTU3LjIgMTctNzkuOSAwLTguMi0uNS0xNS44LTEuNS0yMi45IDE3LjQgMzEuOCAyNy4zIDY4LjIgMjcuMyAxMDcgMCA4Mi4zLTQ0LjYgMTU0LjEtMTEwLjkgMTkyLjd6Il19LGgydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzZWxsc3kiLGljb246WzY0MCw1MTIsW10sImYyMTMiLCJNNTQwIDIzNy4zYzMuMS0xMi4zIDQuMy0yNC44IDQuMy0zNy40IDAtOTIuNS03NS40LTE2Ny45LTE2Ny45LTE2Ny45LTc3LjIgMC0xNDQuNiA1My0xNjMgMTI3LjgtMTUuMy0xMy4yLTM0LjktMjAuNS01NS4yLTIwLjUtNDYuMyAwLTg0IDM3LjctODQgODQgMCA3LjQgLjkgMTUgMy4xIDIyLjQtNDIuOSAyMC4yLTcwLjggNjMuNy03MC44IDExMS4yIDAgNjggNTUuNSAxMjMuMiAxMjMuMiAxMjMuMmwzODEuMiAwYzY3LjcgMCAxMjMuMi01NS4yIDEyMy4yLTEyMy4yIDAtNTYuNC0zOC45LTEwNi05NC4xLTExOS41ek0yMDAuMiA0MDEuNmMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMC45IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xMTAuOWMwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMwLjkgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS4zbDAgMTEwLjl6bTg5LjUgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMC45IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0xMzEuNWMwLTguMyA3LTE1LjMgMTUuMy0xNS4zbDMwLjkgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS4zbDAgMTMxLjV6bTg5LjUgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0zMSAwYy04LjMgMC0xNS4zLTctMTUuMy0xNS4zbDAtMTYyLjdjMC04LjMgNy0xNS4zIDE1LjMtMTUuM2wzMSAwYzguMyAwIDE1LjMgNyAxNS4zIDE1LjNsMCAxNjIuN3ptODcgMGMwIDguMy03IDE1LjMtMTUuMyAxNS4zbC0yOC41IDBjLTguMyAwLTE1LjMtNy0xNS4zLTE1LjNsMC0yMjQuNmMwLTguNiA3LTE1LjYgMTUuMy0xNS42bDI4LjUgMGM4LjMgMCAxNS4zIDcgMTUuMyAxNS42bDAgMjI0LjZ6Il19LGYydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkYXNoY3ViZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjIxMCIsIk0zMjYuOSAxMDRsLTIxNi4yIDBjLTUxLjEgMC05MS4yIDQzLjMtOTEuMiA5My41bDAgMjI5LjVjMCA1MC41IDQwLjEgODUgOTEuMiA4NWwyMjcuMiAwYzUxLjEgMCA5MS4yLTM0LjUgOTEuMi04NWwwLTQyNy0xMDIuMiAxMDR6TTE1NC4yIDQxNi41Yy0xNy43IDAtMzIuNC0xNS4xLTMyLjQtMzIuOGwwLTE0Mi45YzAtMTcuNyAxNC43LTMyLjUgMzIuNC0zMi41bDE0MC43IDBjMTcuNyAwIDMyIDE0LjggMzIgMzIuNWwwIDEyMy41IDUxLjEgNTIuMy0yMjMuOCAwIDAtLjF6Il19LG0ydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXR0ZXIiLGljb246WzM4NCw1MTIsW10sImY0MjYiLCJNNjYuNCAzMjIuNWwtNTAuNCAwIDAtMzIyLjUgNTAuNCAwIDAgMzIyLjV6TTE2Ni45IDc2LjFsLTUwLjQgMCAwIDQzNS45IDUwLjQgMCAwLTQzNS45em0xMDAuNiAwbC01MC40IDAgMCA0MzUuOSA1MC40IDAgMC00MzUuOXpNMzY4IDc2bC01MC40IDAgMCAyNDcgNTAuNCAwIDAtMjQ3eiJdfSxnMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29sZi1wYWNrLWJhdHRhbGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjUxNCIsIk0yMzYuMiA0NzEuNWwxMC42IDE1LjggNS4zLTEyLjMgNS4zIDcgMCAyOS45YzIxLjEtNy45IDIxLjEtNjYuOSAyNS41LTk3LjIgNC42LTMxLjktLjktOTIuOCA4MS40LTE0OS4xLTguOS0yMy42LTEyLTQ5LjQtMi42LTgwIDI3LjkgMy40IDUzLjkgMTAuNiA2My4zIDU0LjFsLTMwLjMgOC40YzExLjEgMjMgMTcgNDYuOCAxMy4yIDcyLjFsLTI3LjMtNy02LjIgMzMuNC0xOC41LTctOC44IDMzLjQtMTkuNC03IDI2LjQgMjEuMSA4LjgtMjguMiAyNC42IDUuMiA3LTM1LjYgMjYuNCAxNC41Yy4yLTIwIDctNTguMS04LjgtODQuNWwyNi40IDUuM2M0LTIyLjEtMi40LTM5LjItNy45LTU2LjdsMjIuNCA5LjdjLS40LTI1LjEtMjkuOS01Ni44LTYxLjYtNTguNS0yMC4yLTEuMS01Ni43LTI1LjItNTQuMS01MS45IDItMTkuOSAxNy40LTQyLjYgNDMuMS00OS43LTQ0IDM2LjUtOS43IDY3LjMgNS4zIDczLjUgNC40LTExLjQgMTcuNS02OS4xIDAtMTMwLjItNDAuNCAyMi45LTg5LjcgNjUuMS05My4yIDE0Ny44bC01OCAzOC43LTMuNSA5My4yIDEwNy4zLTU5LjggNyA3LTE3LjYgMy41LTQ0IDM4LjctMTUuOC01LjMtMjguMSA0OS4zLTMuNSAxMTkuNiAyMS4xIDE1LjgtMzIuNSAxNS44LTMyLjYtMTUuOCAyMS4xLTE1LjgtMy41LTExOS42LTI4LjItNDkuMy0xNS44IDUuMy00NC0zOC43LTE3LjYtMy41IDctNyAxMDcuMyA1OS44LTMuNS05My4zLTU4LjEtMzguN2MtMy41LTgyLjgtNTIuNy0xMjUtOTMuMi0xNDcuOS0xNy41IDYxLjEtNC40IDExOC44IDAgMTMwLjIgMTUtNi4yIDQ5LjMtMzcgNS4zLTczLjUgMjUuNyA3LjEgNDEuMSAyOS44IDQzLjEgNDkuNyAyLjYgMjYuNy0zMy45IDUwLjgtNTQuMSA1MS45LTMxLjcgMS43LTYxLjIgMzMuNC02MS42IDU4LjVsMjIuNC05LjdDMTMuNCAyMjQuNyA3IDI0MS44IDExIDI2My45bDI2LjQtNS4zYy0xNS44IDI2LjQtOS4xIDY0LjQtOC44IDg0LjRsMjYuNC0xNC41IDcgMzUuNiAyNC42LTUuMyA4LjggMjguMiAyNi40LTIxLjEtMTkuNCA3LTguOC0zMy40LTE4LjUgNy02LjItMzMuNC0yNy4zIDdDMzggMjk0LjggNDMuOCAyNzEgNTUgMjQ4bC0zMC4zLTguNGM5LjQtNDMuNSAzNS41LTUwLjggNjMuMy01NC4xIDkuNCAzMC42IDYuMiA1Ni41LTIuNiA4MC4xIDgyLjMgNTYuMyA3Ni44IDExNy4yIDgxLjQgMTQ5LjEgNC40IDMwLjMgNC40IDg5LjMgMjUuNSA5Ny4ybDAtMjkuOCA1LjMtNyA1LjMgMTIuMyAxMC42LTE1LjggMTEuNCAyMS4xIDExLjQtMjEuMSAwIDB6bTc5LjItOTVMMjk5LjUgMzY2YzcuNS00LjQgMTMuOC04LjQgMTkuNC0xMi4zLS42IDcuMi0uMyAxMy44LTMuNSAyMi44bDAgMHptMjguMi00OS4zYy0uNCAxMC45LS45IDIxLjctMS44IDMxLjctNy44LTEuOS0xNS42LTMuOC0yMS4xLTcgOC4yLTcuOSAxNS42LTE2LjMgMjIuOS0yNC43bDAgMHptMjQuNiA1LjNjMC0xMy40LTIuMS0yNC4yLTUuMy0zMy40LTUuNSA5LjUtMTEuNyAxOC42LTE4LjUgMjcuM2wyMy44IDYuMnptMy41LTgwLjljMTkuNCAxMi44IDI3LjggMzMuNyAyOS45IDU2LjMtMTIuMy00LjUtMjQuNi05LjMtMzctMTAuNiA1LjEtMTIgNi42LTI4LjEgNy00NS43bDAgMHptLTEuOC00NS43Yy44IDE0LjMgMS44IDI4LjggMS44IDQyLjIgMTkuMi04LjEgMjkuOC05LjcgNDQtMTQuMS0xMC42LTE5LTI3LjItMjUuNS00NS44LTI4LjJsMCAwek0xMzQuMiAzNzYuNUwxNTAgMzY2Yy03LjUtNC40LTEzLjgtOC40LTE5LjQtMTIuMyAuNiA3LjMgLjMgMTMuOSAzLjUgMjIuOWwwIDB6TTEwNiAzMjcuM2MuNCAxMC45IC45IDIxLjcgMS44IDMxLjcgNy44LTEuOSAxNS42LTMuOCAyMS4xLTctOC4yLTcuOS0xNS42LTE2LjMtMjIuOS0yNC43em0tMjQuNiA1LjNjMC0xMy40IDItMjQuMiA1LjMtMzMuNCA1LjUgOS41IDExLjcgMTguNiAxOC41IDI3LjNsLTIzLjggNi4yem0tMy41LTgwLjljLTE5LjQgMTIuOC0yNy44IDMzLjctMjkuOSA1Ni4zIDEyLjMtNC41IDI0LjYtOS4zIDM3LTEwLjYtNS0xMi02LjYtMjguMS03LTQ1LjdsLS4xIDB6bTEuOC00NS43Yy0uOCAxNC4zLTEuOCAyOC44LTEuOCA0Mi4yLTE5LjItOC4xLTI5LjgtOS43LTQ0LTE0LjEgMTAuNi0xOSAyNy4yLTI1LjUgNDUuOC0yOC4xeiJdfSxiMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGFzdGZtIixpY29uOls1MTIsNTEyLFtdLCJmMjAyIiwiTTIyNS44IDM2Ny4xbC0xOC44LTUxcy0zMC41IDM0LTc2LjIgMzRjLTQwLjUgMC02OS4yLTM1LjItNjkuMi05MS41IDAtNzIuMSAzNi40LTk3LjkgNzIuMS05Ny45IDY2LjUgMCA3NC44IDUzLjMgMTAwLjkgMTM0LjkgMTguOCA1Ni45IDU0IDEwMi42IDE1NS40IDEwMi42IDcyLjcgMCAxMjItMjIuMyAxMjItODAuOSAwLTcyLjktNjIuNy04MC42LTExNS05Mi4xLTI1LjgtNS45LTMzLjQtMTYuNC0zMy40LTM0IDAtMTkuOSAxNS44LTMxLjcgNDEuNi0zMS43IDI4LjIgMCA0My40IDEwLjYgNDUuNyAzNS44bDU4LjYtN2MtNC43LTUyLjgtNDEuMS03NC41LTEwMC45LTc0LjUtNTIuOCAwLTEwNC40IDE5LjktMTA0LjQgODMuOSAwIDM5LjkgMTkuNCA2NS4xIDY4IDc2LjggNDQuOSAxMC42IDc5LjggMTMuOCA3OS44IDQ1LjcgMCAyMS43LTIxLjEgMzAuNS02MSAzMC41LTU5LjIgMC04My45LTMxLjEtOTcuOS03My45LTMyLTk2LjgtNDMuNi0xNjMtMTYxLjMtMTYzLTg2LjEgMC0xMzEuOCA1NC41LTEzMS44IDE0Ny4yIDAgODkuMSA0NS43IDEzNy4yIDEyNy45IDEzNy4yIDY2LjIgMCA5Ny45LTMxLjEgOTcuOS0zMS4xeiJdfSx2MnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hvcHdhcmUiLGljb246WzUxMiw1MTIsW10sImY1YjUiLCJNNDAzLjUgNDU1LjRjLTQyLjYgMzEuNy05NC40IDQ4LjctMTQ3LjUgNDguNi0xMzcuMiAwLTI0OC0xMTEtMjQ4LTI0OCAwLTEzNy4yIDExMS0yNDggMjQ4LTI0OCA2MS4yLS4xIDEyMC4yIDIyLjYgMTY1LjcgNjMuNSAuNiAuNSAuOSAxLjIgMS4xIDEuOXMuMSAxLjUtLjMgMi4yLS44IDEuMy0xLjUgMS42LTEuNCAuNS0yLjIgLjRjLTE4LjgtMi41LTM3LjctMy43LTU2LjctMy43LTEyOS40IDAtMjIyLjQgNTMuNS0yMjIuNCAxNTUuNCAwIDEwOSA5Mi4xIDE0NS45IDE3Ni44IDE3OC43IDMzLjYgMTMgNjUuNCAyNS40IDg3IDQxLjYgLjQgLjMgLjggLjggMS4xIDEuM3MuNCAxIC40IDEuNi0uMSAxLjEtLjQgMS42LS42IC45LTEuMSAxLjNsLS4xIDB6TTUwMyAyMzMuMWMtLjEtLjktLjUtMS44LTEuMy0yLjQtNTEuOC00My05My42LTYwLjUtMTQ0LjUtNjAuNS04NC4xIDAtODAuMyA1Mi4yLTgwLjMgNTMuNiAwIDQyLjYgNTIuMSA2MiAxMTIuMyA4NC41IDMxLjEgMTEuNiA2My4yIDIzLjYgOTIuNyAzOS45IC40IC4yIC45IC40IDEuNCAuNHMxIDAgMS41LS4yIC45LS40IDEuMy0uOCAuNi0uOCAuOC0xLjJjMTQuMS0zNiAxOS41LTc0LjggMTYtMTEzLjN6Il19LHgydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJibG9nZ2VyIixpY29uOls0NDgsNTEyLFtdLCJmMzdjIiwiTTE2Mi40IDE5NmM0LjgtNC45IDYuMi01LjEgMzYuNC01LjEgMjcuMiAwIDI4LjEgLjEgMzIuMSAyLjEgNS44IDIuOSA4LjMgNyA4LjMgMTMuNiAwIDUuOS0yLjQgMTAtNy42IDEzLjQtMi44IDEuOC00LjUgMS45LTMxLjEgMi4xLTE2LjQgLjEtMjkuNS0uMi0zMS41LS44LTEwLjMtMi45LTE0LjEtMTcuNy02LjYtMjUuM3ptNjEuNCA5NC41Yy01My45IDAtNTUuOCAuMi02MC4yIDQuMS0zLjUgMy4xLTUuNyA5LjQtNS4xIDEzLjkgLjcgNC43IDQuOCAxMC4xIDkuMiAxMiAyLjIgMSAxNC4xIDEuNyA1Ni4zIDEuMmw0Ny45LS42IDkuMi0xLjVjOS01LjEgMTAuNS0xNy40IDMuMS0yNC40LTUuMy00LjctNS00LjctNjAuNC00Ljd6TTQ0Ny4yIDQyMC42Yy0zLjUgMjguNC0yMyA1MC40LTUxLjEgNTcuNS03LjIgMS44LTkuNyAxLjktMTcyLjkgMS44LTE1Ny44IDAtMTY1LjktLjEtMTcyLTEuOC04LjQtMi4yLTE1LjYtNS41LTIyLjMtMTAtNS42LTMuOC0xMy45LTExLjgtMTctMTYuNC0zLjgtNS42LTguMi0xNS4zLTEwLTIyUzAgNDIwLjMgMCAyNTYuM2MwLTE2My4xIDAtMTY2LjYgMS44LTE3My43IDYuMy0yNC43IDI1LjktNDMuNiA1MS4yLTQ5LjIgNy4zLTEuNiAzMzIuMS0xLjkgMzQwLS4zIDIxLjIgNC4zIDM3LjkgMTcuMSA0Ny42IDM2LjQgNy43IDE1LjMgNy0xLjUgNy4zIDE4MC42IC4yIDExNS44IDAgMTY0LjUtLjcgMTcwLjV6TTM2MS44IDIzNS40Yy0xLjEtNS00LjItOS42LTcuNy0xMS41LTEuMS0uNi04LTEuMy0xNS41LTEuNy0xMi40LS42LTEzLjgtLjgtMTcuOC0zLjEtNi4yLTMuNi03LjktNy42LTgtMTguMyAwLTIwLjQtOC41LTM5LjQtMjUuMy01Ni41LTEyLTEyLjItMjUuMy0yMC41LTQwLjYtMjUuMS0zLjYtMS4xLTExLjgtMS41LTM5LjItMS44LTQyLjktLjUtNTIuNSAuNC02Ny4xIDYuMi0yNyAxMC43LTQ2LjMgMzMuNC01My40IDYyLjQtMS4zIDUuNC0xLjYgMTQuMi0xLjkgNjQuMy0uNCA2Mi44IDAgNzIuMSA0IDg0LjUgOS43IDMwLjcgMzcuMSA1My40IDY0LjYgNTguNCA5LjIgMS43IDEyMi4yIDIuMSAxMzMuNyAuNSAyMC4xLTIuNyAzNS45LTEwLjggNTAuNy0yNS45IDEwLjctMTAuOSAxNy40LTIyLjggMjEuOC0zOC41IDMuMi0xMC45IDIuOS04OC40IDEuNy05My45eiJdfSx5MnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZWRnZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4MiIsIk0xMjAuMSAzNy40YzQxLTI1LjIgODcuNi0zOC4yIDEzNC45LTM3LjQgMTY4IDAgMjU3IDEyMy44IDI1NyAyMTkuNS0uMSAzMi43LTEzIDYzLjktMzUuOSA4Ny4yLTIyLjkgMjMuMi01NCAzNi41LTg2LjcgMzctNzUuMiAwLTkxLjUtMjMuMS05MS41LTMyIDAtMy44IDEuMi02LjIgNC44LTkuNGwxLTEuMiAuNC0xLjZjMTAuNS0xMS41IDE1LjktMjYuMiAxNS45LTQxLjYgMC03OC43LTgyLjItMTQyLjctMTg0LTE0Mi43LTM3LjUtLjMtNzQuNSA4LjktMTA3LjUgMjYuOSAyNy01Ny41IDgyLjctOTcuNiA5MS4zLTEwMy44IC44LS42IC4zLS44IC4zLS44em0xNS42IDMxOC4xYy0xLjQgMzAgNC42IDYwIDE2LjQgODcuMiAxMy42IDI2LjQgMzIuNyA1MSA1Ni41IDY5LjMtNTkuNS0xMS41LTExMS41LTQzLjktMTQ5LjQtODkuMy0zOC4xLTQ2LjQtNTkuMi0xMDQuMy01OS4yLTE2NC44IDAtNTEuMiA2Mi40LTk0LjQgMTM2LTk0LjQgMzYuNi0uNiA3Mi40IDEwLjkgMTAxLjggMzIuN2wtMy42IDEuMmMtNTEuNSAxNy42LTk4LjUgOTAuNy05OC41IDE1OC4xek00NjkuOCA0MDBsLS43IC4xYy0xMS44IDE4LjgtMjUuOSAzNS4xLTQyLjIgNDkuNS0zMC44IDI4LTY4LjEgNDUuNS0xMDguOCA0OS45LTE4LjYgLjMtMzYuOC0zLjItNTMuOC0xMS40LTI1LjYtMTAuMy00Ny4xLTMwLTYxLjYtNTMtMTQuNC0yMy45LTIxLjEtNTEuNy0xOS03OS42LS42LTIwLjEgNS40LTQwLjMgMTUtNTguMiAxMy45IDMzLjEgMzcuNSA2MS4zIDY3LjYgODAuOHM2NS41IDI5LjUgMTAxLjQgMjguNmMzMSAuMyA2Mi4xLTYuNyA5MC4yLTIwLjVsMS45LS45YzMuOS0yLjMgNy43LTMuOSAxMS42IDAgNC41IDQuOSAxLjggOS4yLTEuMiAxNC0uMiAuMi0uMyAuNS0uNCAuN3oiXX0sdzJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImlveGhvc3QiLGljb246WzY0MCw1MTIsW10sImYyMDgiLCJNNjE2IDE2MGwtNjcuMyAwQzUxMS4yIDcwLjcgNDIyLjkgOCAzMjAgOCAxODMgOCA3MiAxMTkgNzIgMjU2IDcyIDI3Mi40IDczLjYgMjg4LjUgNzYuNyAzMDRMMjQgMzA0Yy0xMy4zIDAtMjQgMTAuOC0yNCAyNCAwIDEzLjMgMTAuNyAyNCAyNCAyNGw2Ny4zIDBjMzcuNSA4OS4zIDEyNS44IDE1MiAyMjguNyAxNTIgMTM3IDAgMjQ4LTExMSAyNDgtMjQ4IDAtMTYuNC0xLjYtMzIuNS00LjctNDhsNTIuNyAwYzEzLjMgMCAyNC0xMC44IDI0LTI0IDAtMTMuMy0xMC43LTI0LTI0LTI0em0tOTYgOTZjMCAxMTAuNS04OS41IDIwMC0yMDAgMjAwLTc1LjcgMC0xNDEuNi00Mi0xNzUuNS0xMDRMNDI0IDM1MmMxMy4zIDAgMjQtMTAuOCAyNC0yNCAwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMjk4LjIgMGMtMy44LTE1LjQtNS44LTMxLjQtNS44LTQ4IDAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMCA3NS43IDAgMTQxLjYgNDIgMTc1LjUgMTA0TDIxNiAxNjBjLTEzLjMgMC0yNCAxMC44LTI0IDI0IDAgMTMuMyAxMC43IDI0IDI0IDI0bDI5OC4yIDBjMy44IDE1LjQgNS44IDMxLjQgNS44IDQ4ek0yMTYgMjMybDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuMi0xMC43IDI0LTI0IDI0bC0yMDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMy4yIDEwLjctMjQgMjQtMjR6Il19LE0ydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzY2hsaXgiLGljb246WzQ0OCw1MTIsW10sImYzZWEiLCJNMzUwLjUgMTU3LjdsLTU0LjItNDYuMSA3My40LTM5IDc4LjMgNDQuMi05Ny41IDQwLjl6TTE5MiAxMjIuMWw0NS43LTI4LjIgMzQuNyAzNC42LTU1LjQgMjktMjUtMzUuNHptLTY1LjEgNi42bDMxLjktMjIuMSAxNy4yIDI4LjQtMzYuNyAyMi41LTEyLjQtMjguOHptLTIzLjMgODguMmwtOC44LTM0LjggMjkuNi0xOC4zIDEzLjEgMzUuMy0zMy45IDE3Ljh6TTgyLjQgMTMzLjJsMjMuOS0xOC4xIDguOSAyNC0yNi43IDE4LjMtNi4xLTI0LjJ6TTU5IDIwNi41bC0zLjYtMjguNCAyMi4zLTE1LjUgNi4xIDI4LjctMjQuOCAxNS4yek0yOC40IDIyMy4xbDIwLjgtMTIuOCAzLjMgMzMuNC0yMi45IDEyLTEuMi0zMi42ek0xLjQgMjY4TDIwLjYgMjU3LjggMjEgMjk2IDAgMzA0LjggMS40IDI2OHptNTkuMSA1OS4zbC0yOC4zIDguMy0xLjYtNDYuOCAyNS4xLTEwLjcgNC44IDQ5LjJ6TTk5IDI2My4ybC0zMS4xIDEzLTUuMi00MC44IDI3LjQtMTQuNCA4LjkgNDIuMnpNMTIzLjIgMzc3bC00MS42IDUuOS04LjEtNjMuNSAzNS4yLTEwLjggMTQuNSA2OC40em0yOC41LTEzOS45bDIxLjIgNTcuMS00Ni4yIDEzLjYtMTMuNy01NC4xIDM4LjctMTYuNnptODUuNyAyMzAuNWwtNzAuOS0zLjMtMjQuMy05NS44IDU1LjItOC42IDQwIDEwNy43ek0xNTIuNSAxODcuOWw0Mi4yLTIyLjQgMjggNDUuOS01MC44IDIxLjMtMTkuNC00NC44em00MSA5NC45bDYxLjMtMTguNyA1Mi44IDg2LjYtNzkuOCAxMS4zLTM0LjMtNzkuMnptNTEuNC04NS42bDY3LjMtMjguOCA2NS41IDY1LjQtODguNiAyNi4yLTQ0LjItNjIuOHoiXX0sazJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImQtYW5kLWQiLGljb246WzU3Niw1MTIsW10sImYzOGQiLCJNODIuOSA5OC45Yy0uNi0xNy4yIDItMzMuOCAxMi43LTQ4LjIgLjMgNy40IDEuMiAxNC41IDQuMiAyMS42IDUuOS0yNy41IDE5LjctNDkuMyA0Mi4zLTY1LjUtMS45IDUuOS0zLjUgMTEuOC0zIDE3LjcgOC43LTcuNCAxOC44LTE3LjggNDQuNC0yMi43IDE0LjctMi44IDI5LjctMiA0Mi4xIDEgMzguNSA5LjMgNjEgMzQuMyA2OS43IDcyLjMgNS4zIDIzLjEgLjcgNDUtOC4zIDY2LjQtNS4yIDEyLjQtMTIgMjQuNC0yMC43IDM1LjEtMi0xLjktMy45LTMuOC01LjgtNS42LTQyLjgtNDAuOC0yNi44LTI1LjItMzcuNC0zNy40LTEuMS0xLjItMS0yLjItLjEtMy42IDguMy0xMy41IDExLjgtMjguMiAxMC00NC0xLjEtOS44LTQuMy0xOC45LTExLjMtMjYuMi0xNC41LTE1LjMtMzkuMi0xNS01My41IC42LTExLjQgMTIuNS0xNC4xIDI3LjQtMTAuOSA0My42IC4yIDEuMyAuNCAyLjcgMCAzLjktMy40IDEzLjctNC42IDI3LjYtMi41IDQxLjYgLjEgLjUgLjEgMS4xIC4xIDEuNiAwIC4zLS4xIC41LS4yIDEuMS0yMS44LTExLTM2LTI4LjMtNDMuMi01Mi4yLTguMyAxNy44LTExLjEgMzUuNS02LjYgNTQuMS0xNS42LTE1LjItMjEuMy0zNC4zLTIyLTU1LjJ6TTU1Mi41IDIyMi4xYy0xMS42LTExLjYtMjUtMjAuNC00MC4xLTI2LjYtMTIuOC01LjItMjYtNy45LTM5LjktNy4xLTEwIC42LTE5LjYgMy4xLTI5IDYuNC0yLjUgLjktNS4xIDEuNi03LjcgMi4yLTQuOSAxLjItNy4zLTMuMS00LjctNi44IDMuMi00LjYgMy40LTQuMiAxNS0xMiAuNi0uNCAxLjItLjggMi4yLTEuNWwtMi41IDBjLS42IDAtMS4yIC4yLTEuOSAuMy0xOS4zIDMuMy0zMC43IDE1LjUtNDguOSAyOS42LTEwLjQgOC4xLTEzLjggMy44LTEyLS41IDEuNC0zLjUgMy4zLTYuNyA1LjEtMTAgMS0xLjggMi4zLTMuNCAzLjUtNS4xLS4yLS4yLS41LS4zLS43LS41LTI3IDE4LjMtNDYuNyA0Mi40LTU3LjcgNzMuMyAuMyAuMyAuNyAuNiAxIC45IC4zLS42IC41LTEuMiAuOS0xLjcgMTAuNC0xMi4xIDIyLjgtMjEuOCAzNi42LTI5LjggMTguMi0xMC42IDM3LjUtMTguMyA1OC43LTIwLjIgNC4zLS40IDguNy0uMSAxMy4xLS4xLTEuOCAuNy0zLjUgLjktNS4zIDEuMS0xOC41IDIuNC0zNS41IDktNTEuNSAxOC41LTMwLjIgMTcuOS01NC41IDQyLjItNzUuMSA3MC40LS4zIC40LS40IC45LS43IDEuMyAxNC41IDUuMyAyNCAxNy4zIDM2LjEgMjUuNiAuMi0uMSAuMy0uMiAuNC0uNGwxLjItMi43YzEyLjItMjYuOSAyNy01Mi4zIDQ2LjctNzQuNSAxNi43LTE4LjggMzgtMjUuMyA2Mi41LTIwIDUuOSAxLjMgMTEuNCA0LjQgMTcuMiA2LjggMi4zLTEuNCA1LjEtMy4yIDgtNC43IDguNC00LjMgMTcuNC03IDI2LjctOSAxNC43LTMuMSAyOS41LTQuOSA0NC41LTEuM2wwLS41Yy0uNS0uNC0xLjItLjgtMS43LTEuNHpNMzE3LjEgMzk3LjZjLTM5LjQtMzMtMjIuOC0xOS41LTQyLjctMzUuNi0uOCAuOSAwLS4yLTEuOSAzLTExLjIgMTkuMS0yNS41IDM1LjMtNDQgNDcuNi0xMC4zIDYuOC0yMS41IDExLjgtMzQuMSAxMS44LTIxLjYgMC0zOC4yLTkuNS00OS40LTI3LjgtMTItMTkuNS0xMy4zLTQwLjctOC4yLTYyLjYgNy44LTMzLjggMzAuMS01NS4yIDM4LjYtNjQuMy0xOC43LTYuMi0zMyAxLjctNDYuNCAxMy45IC44LTEzLjkgNC4zLTI2LjIgMTEuOC0zNy4zLTI0LjMgMTAuNi00NS45IDI1LTY0LjggNDMuOS0uMy01LjggNS40LTQzLjcgNS42LTQ0LjcgLjMtMi43LS42LTUuMy0zLTcuNC0yNC4yIDI0LjctNDQuNSA1MS44LTU2LjEgODQuNiA3LjQtNS45IDE0LjktMTEuNCAyMy42LTE2LjItOC4zIDIyLjMtMTkuNiA1Mi44LTcuOCAxMDEuMSA0LjYgMTkgMTEuOSAzNi44IDI0LjEgNTIuMyAyLjkgMy43IDYuMyA2LjkgOS41IDEwLjMgLjItLjIgLjQtLjMgLjYtLjUtMS40LTctMi4yLTE0LjEtMS41LTIxLjkgMi4yIDMuMiAzLjkgNiA1LjkgOC42IDEyLjYgMTYgMjguNyAyNy40IDQ3LjIgMzUuNiAyNSAxMS4zIDUxLjEgMTMuMyA3Ny45IDguNiA1NC45LTkuNyA5MC43LTQ4LjYgMTE2LTk4LjggMS0xLjggLjYtMi45LS45LTQuMnptMTcyLTQ2LjRjLTkuNS0zLjEtMjIuMi00LjItMjguNy0yLjkgOS45IDQgMTQuMSA2LjYgMTguOCAxMiAxMi42IDE0LjQgMTAuNCAzNC43LTUuNCA0NS42LTExLjcgOC4xLTI0LjkgMTAuNS0zOC45IDkuMS0xLjItLjEtMi4zLS40LTMtLjYgMi44LTMuNyA2LTcgOC4xLTEwLjggOS40LTE2LjggNS40LTQyLjEtOC43LTU2LjEtMi4xLTIuMS00LjYtMy45LTctNS45LS4zIDEuMy0uMSAyLjEgLjEgMi44IDQuMiAxNi42LTguMSAzMi40LTI0LjggMzEuOC03LjYtLjMtMTMuOS0zLjgtMTkuNi04LjUtMTkuNS0xNi4xLTM5LjEtMzIuMS01OC41LTQ4LjMtNS45LTQuOS0xMi41LTguMS0yMC4xLTguNy00LjYtLjQtOS4zLS42LTEzLjktLjktNS45LS40LTguOC0yLjgtMTAuNC04LjQtLjktMy40LTEuNS02LjgtMi4yLTEwLjItMS41LTguMS02LjItMTMtMTQuMy0xNC4yLTQuNC0uNy04LjktMS0xMy4zLTEuNS0xMy0xLjQtMTkuOC03LjQtMjIuNi0yMC4zLTUgMTEtMS42IDIyLjQgNy4zIDI5LjkgNC41IDMuOCA5LjMgNy4zIDEzLjggMTEuMiA0LjYgMy44IDcuNCA4LjcgNy45IDE0LjggLjQgNC43IC44IDkuNSAxLjggMTQuMSAyLjIgMTAuNiA4LjkgMTguNCAxNyAyNS4xIDE2LjUgMTMuNyAzMyAyNy4zIDQ5LjUgNDEuMSAxNy45IDE1IDEzLjkgMzIuOCAxMyA1Ni0uOSAyMi45IDEyLjIgNDIuOSAzMy41IDUxLjIgMSAuNCAyIC42IDMuNiAxLjEtMTUuNy0xOC4yLTEwLjEtNDQuMSAuNy01Mi4zIC4zIDIuMiAuNCA0LjMgLjkgNi40IDkuNCA0NC4xIDQ1LjQgNjQuMiA4NSA1Ni45IDE2LTIuOSAzMC42LTguOSA0Mi45LTE5LjggMi0xLjggMy43LTQuMSA1LjktNi41LTE5LjMgNC42LTM1LjggLjEtNTAuOS0xMC42IC43LS4zIDEuMy0uMyAxLjktLjMgMjEuMyAxLjggNDAuNi0zLjQgNTctMTcuNCAxOS41LTE2LjYgMjYuNi00Mi45IDE3LjQtNjYtOC4zLTIwLjEtMjMuNi0zMi4zLTQzLjgtMzguOXpNOTkuOCAxNzkuM2MtNS4zLTkuMi0xMy4yLTE1LjYtMjIuMS0yMS4zIDEzLjctLjUgMjYuNiAuMiAzOS42IDMuNy03LTEyLjItOC41LTI0LjctNS0zOC43IDUuMyAxMS45IDEzLjcgMjAuMSAyMy42IDI2LjggMTkuNyAxMy4yIDM1LjcgMTkuNiA0Ni43IDMwLjIgMy40IDMuMyA2LjMgNy4xIDkuNiAxMC45LS44LTIuMS0xLjQtNC4xLTIuMi02LTUtMTAuNi0xMy0xOC42LTIyLjYtMjUtMS44LTEuMi0yLjgtMi41LTMuNC00LjUtMy4zLTEyLjUtMy0yNS4xLS43LTM3LjYgMS01LjUgMi44LTEwLjkgNC41LTE2LjMgLjgtMi40IDIuMy00LjYgNC02LjYgLjYgNi45IDAgMjUuNSAxOS42IDQ2IDEwLjggMTEuMyAyMi40IDIxLjkgMzMuOSAzMi43IDkgOC41IDE4LjMgMTYuNyAyNS41IDI2LjggMS4xIDEuNiAyLjIgMy4zIDMuOCA0LjctNS0xMy0xNC4yLTI0LjEtMjQuMi0zMy44LTkuNi05LjMtMTkuNC0xOC40LTI5LjItMjcuNC0zLjMtMy00LjYtNi43LTUuMS0xMC45LTEuMi0xMC40IDAtMjAuNiA0LjMtMzAuMiAuNS0xIDEuMS0yIDEuOS0zLjMgLjUgNC4yIC42IDcuOSAxLjQgMTEuNiA0LjggMjMuMSAyMC40IDM2LjMgNDkuMyA2My41IDEwIDkuNCAxOS4zIDE5LjIgMjUuNiAzMS42IDQuOCA5LjMgNy4zIDE5IDUuNyAyOS42LS4xIC42IC41IDEuNyAxLjEgMiA2LjIgMi42IDEwIDYuOSA5LjcgMTQuMyA3LjctMi42IDEyLjUtOCAxNi40LTE0LjUgNC4yIDIwLjItOS4xIDUwLjMtMjcuMiA1OC43IC40LTQuNSA1LTIzLjQtMTYuNS0yNy43LTYuOC0xLjMtMTIuOC0xLjMtMjIuOS0yLjEgNC43LTkgMTAuNC0yMC42IC41LTIyLjQtMjQuOS00LjYtNTIuOCAxLjktNTcuOCA0LjYgOC4yIC40IDE2LjMgMSAyMy41IDMuMy0yIDYuNS00IDEyLjctNS44IDE4LjktMS45IDYuNSAyLjEgMTQuNiA5LjMgOS42IDEuMi0uOSAyLjMtMS45IDMuMy0yLjctMy4xIDE3LjktMi45IDE1LjktMi44IDE4LjMgLjMgMTAuMiA5LjUgNy44IDE1LjcgNy4zLTIuNSAxMS44LTI5LjUgMjcuMy00NS40IDI1LjggNy00LjcgMTIuNy0xMC4zIDE1LjktMTcuOS02LjUgLjgtMTIuOSAxLjYtMTkuMiAyLjRsLS4zLS45YzQuNy0zLjQgOC03LjggMTAuMi0xMy4xIDguNy0yMS4xLTMuNi0zOC0yNS0zOS45LTkuMS0uOC0xNy44IC44LTI1LjkgNS41IDYuMi0xNS42IDE3LjItMjYuNiAzMi42LTM0LjUtMTUuMi00LjMtOC45LTIuNy0yNC42LTYuMyAxNC42LTkuMyAzMC4yLTEzLjIgNDYuNS0xNC42LTUuMi0zLjItNDguMS0zLjYtNzAuMiAyMC45IDcuOSAxLjQgMTUuNSAyLjggMjMuMiA0LjItMjMuOCA3LTQ0IDE5LjctNjIuNCAzNS42IDEuMS00LjggMi43LTkuNSAzLjMtMTQuMyAuNi00LjUgLjgtOS4yIC4xLTEzLjYtMS41LTkuNC04LjktMTUuMS0xOS43LTE2LjMtNy45LS45LTE1LjYgLjEtMjMuMyAxLjMtLjkgLjEtMS43IC4zLTIuOSAwIDE1LjgtMTQuOCAzNi0yMS43IDUzLjEtMzMuNSA2LTQuNSA2LjgtOC4yIDMtMTQuOXptMTI4LjQgMjYuOGMzLjMgMTYgMTIuNiAyNS41IDIzLjggMjQuMy00LjYtMTEuMy0xMi4xLTE5LjUtMjMuOC0yNC4zeiJdfSxTMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidnVlanMiLGljb246WzQ0OCw1MTIsW10sImY0MWYiLCJNMzU2LjkgNjQuM2wtNzYuOSAwLTU2IDg4LjYtNDgtODguNi0xNzYgMCAyMjQgMzgzLjcgMjI0LTM4My43LTkxLjEgMHpNNTUuNyA5Ni4zbDUzLjggMCAxMTQuNSAxOTguMiAxMTQuNC0xOTguMiA1My44IDAtMTY4LjIgMjg4LjItMTY4LjMtMjg4LjJ6Il19LHoydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZXRhIixpY29uOls2NDAsNTEyLFtdLCJlNDliIiwiTTY0MCAzMTcuOWMwIDkxLjMtMzkuNCAxNDguNS0xMTAuMyAxNDguNS02Mi42IDAtOTUuOC0zNC42LTE1Ni45LTEzNi42bC0zMS40LTUyLjZjLTguMy0xMi41LTE0LjUtMjQuMi0yMS4yLTM1LTIwLjEgMzMuOC00Ny4xIDgzLTQ3LjEgODMtNjcgMTE2LjYtMTA0LjYgMTQxLjItMTU2LjkgMTQxLjItNzIuOCAwLTExNi4yLTU3LjMtMTE2LjItMTQ1LjkgMC0xNDMgNzkuOC0yNzguMSAxODMuOS0yNzguMSA1MC4yIDAgOTMuOCAyNC43IDE0NC44IDg5LjUgMzcuMS01MC4xIDc4LjEtODkuNSAxMzAuNi04OS41IDk5LjEgMCAxODAuNyAxMjUuNyAxODAuNyAyNzUuNXpNMjg3LjQgMTkyLjJjLTQyLjktNjIuMS03MC45LTgwLjUtMTA0LjQtODAuNS02MS45IDAtMTEzLjggMTA2LjEtMTEzLjggMjEwIDAgNDguNSAxOC41IDc1LjcgNDkuNiA3NS43IDMwLjIgMCA0OS0xOSAxMDMuMi0xMDMuOCAwIDAgMjQuNy0zOS4xIDY1LjQtMTAxLjR6TTUzMS4yIDM5Ny40YzMyLjIgMCA0Ni45LTI3LjUgNDYuOS03NC45IDAtMTI0LjItNTQuMy0yMjUuNC0xMjMuMi0yMjUuNC0zMy4yIDAtNjEuMSAyNS45LTk0LjkgNzggOS40IDEzLjggMTkuMSAyOSAyOS4zIDQ1LjRsMzcuNSA2Mi40YzU4LjcgOTQuMSA3My41IDExNC41IDEwNC40IDExNC41eiJdfSxDMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1zaGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMiIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwMSAxMzIuNGM3LjggMCAxMy43IDYuMSAxMy43IDEzLjdsMCAxODIuNWMwIDcuNy02LjEgMTMuNy0xMy43IDEzLjdsLTEzNS4xIDBjLTcuNyAwLTEzLjctNi0xMy43LTEzLjdsMC01NC01NCAwYy03LjggMC0xMy43LTYtMTMuNy0xMy43bDAtMTgyLjVjMC04LjIgNi42LTEyLjcgMTIuNC0xMy43bDEzNi40IDBjNy43IDAgMTMuNyA2IDEzLjcgMTMuN2wwIDU0IDU0IDB6TTE2Ny45IDMwMC4zbDQwLjcgMCAwLTEwMS40YzAtNy40IDUuOC0xMi42IDEyLTEzLjdsNTUuOCAwIDAtNDAuMy0xMDguNSAwIDAgMTU1LjR6bTE3Ni4yLTg4LjFsLTEwOC41IDAgMCAxNTUuNCAxMDguNSAwIDAtMTU1LjR6Il19LFQydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdHVkaW92aW5hcmkiLGljb246WzUxMiw1MTIsW10sImYzZjgiLCJNNDgwLjcgMTg3LjdsNC4yIDI4IDAgMjgtMjUuMSA0NC4xLTM5LjggNzguNC01Ni4xIDY3LjUtNzkuMSAzNy44LTE3LjcgMjQuNS03LjcgMTItOS42IDRzMTcuMy02My42IDE5LjQtNjMuNiAyMC4zIC43IDIwLjMgLjdsNjYuNy0zOC42LTkyLjUgMjYuMS01NS45IDM2LjgtMjIuOCAyOC02LjYgMS40IDIwLjgtNzMuNiA2LjktNS41IDIwLjcgMTIuOSA4OC4zLTQ1LjIgNTYuOC01MS41IDE0LjgtNjguNC0xMjUuNCAyMy4zIDE1LjItMTguMi0xNzMuNC01My4zIDgxLjktMTAuNS0xNjYtMTIyLjkgMTE0LjkgMTguMS0xMDEuMy0xMDggMjUyLjkgMTI2LjYtMzEuNS0zOCAxMjQuNCA3NC40LTE0My4zLTk5IDE4LjcgMzguNC00OS42LTE4LjEtNDUuNS04NC4zIDE5NC42IDEyMi00Mi45LTU1LjggMTA4IDk2LjQgMTItOC45LTIxLTE2LjQgNC4yLTM3LjggMzcuOC0xMC40IDI5LjIgMjQuNyAxMS41IDQuMi03IDYuMiA4LjUgMTItMTMuMSA3LjQtMTAuMyAyMC4yIDEwLjUgMjMuOXoiXX0sXzJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdGJ1Y2tldCIsaWNvbjpbNTEyLDUxMixbNjE4MTBdLCJmMTcxIiwiTTIyLjIgMzJjLTIuMSAwLTQuMiAuNC02LjEgMS4xcy0zLjcgMS45LTUuMiAzLjQtMi43IDMuMi0zLjUgNS4xLTEuMyA0LTEuMyA2LjFjMCAuOSAuMSAxLjkgLjIgMi44TDc0LjEgNDYyLjdjLjggNS4xIDMuNCA5LjcgNy4zIDEzczguOCA1LjIgMTQgNS4ybDMyNS43IDBjMy44IC4xIDcuNS0xLjMgMTAuNS0zLjdzNC45LTUuOSA1LjUtOS43TDUwNSA1MC43Yy43LTQuMi0uMy04LjQtMi44LTExLjlzLTYuMi01LjctMTAuNC02LjRjLS45LS4xLTEuOS0uMi0yLjgtLjJMMjIuMiAzMnpNMzA4LjEgMzI5LjhsLTEwNCAwLTI4LjEtMTQ3IDE1Ny4zIDAtMjUuMiAxNDd6Il19LEwydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2ayIsaWNvbjpbNDQ4LDUxMixbXSwiZjE4OSIsIk0zMS41IDYzLjVDMCA5NSAwIDE0NS43IDAgMjQ3TDAgMjY1QzAgMzY2LjMgMCA0MTcgMzEuNSA0NDguNVMxMTMuNyA0ODAgMjE1IDQ4MGwxNy45IDBjMTAxLjQgMCAxNTIuMSAwIDE4My41LTMxLjVTNDQ4IDM2Ni4zIDQ0OCAyNjVsMC0xNy45YzAtMTAxLjQgMC0xNTIuMS0zMS41LTE4My41UzMzNC4zIDMyIDIzMyAzMkwyMTUgMzJDMTEzLjcgMzIgNjMgMzIgMzEuNSA2My41ek03NS42IDE2OC4zbDUxLjEgMGMxLjcgODUuNSAzOS40IDEyMS43IDY5LjMgMTI5LjJsMC0xMjkuMiA0OC4yIDAgMCA3My43YzI5LjUtMy4yIDYwLjUtMzYuOCA3MC45LTczLjdsNDguMiAwYy0zLjkgMTkuMi0xMS44IDM3LjMtMjMuMSA1My4zcy0yNS43IDI5LjUtNDIuNSAzOS42YzE4LjcgOS4zIDM1LjIgMjIuNCA0OC40IDM4LjVzMjIuOSAzNC45IDI4LjMgNTVsLTUzIDBjLTQuOS0xNy41LTE0LjgtMzMuMS0yOC42LTQ1cy0zMC43LTE5LjQtNDguNy0yMS42bDAgNjYuNi01LjggMGMtMTAyLjEgMC0xNjAuMy03MC0xNjIuOC0xODYuNXoiXX0sQTJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGh1YiIsaWNvbjpbNTEyLDUxMixbXSwiZjA5YiIsIk0xNzMuOSAzOTcuNGMwIDItMi4zIDMuNi01LjIgMy42LTMuMyAuMy01LjYtMS4zLTUuNi0zLjYgMC0yIDIuMy0zLjYgNS4yLTMuNiAzLS4zIDUuNiAxLjMgNS42IDMuNnptLTMxLjEtNC41Yy0uNyAyIDEuMyA0LjMgNC4zIDQuOSAyLjYgMSA1LjYgMCA2LjItMnMtMS4zLTQuMy00LjMtNS4yYy0yLjYtLjctNS41IC4zLTYuMiAyLjN6bTQ0LjItMS43Yy0yLjkgLjctNC45IDIuNi00LjYgNC45IC4zIDIgMi45IDMuMyA1LjkgMi42IDIuOS0uNyA0LjktMi42IDQuNi00LjYtLjMtMS45LTMtMy4yLTUuOS0yLjl6TTI1Mi44IDhjLTEzOC43IDAtMjQ0LjggMTA1LjMtMjQ0LjggMjQ0IDAgMTEwLjkgNjkuOCAyMDUuOCAxNjkuNSAyMzkuMiAxMi44IDIuMyAxNy4zLTUuNiAxNy4zLTEyLjEgMC02LjItLjMtNDAuNC0uMy02MS40IDAgMC03MCAxNS04NC43LTI5LjggMCAwLTExLjQtMjkuMS0yNy44LTM2LjYgMCAwLTIyLjktMTUuNyAxLjYtMTUuNCAwIDAgMjQuOSAyIDM4LjYgMjUuOCAyMS45IDM4LjYgNTguNiAyNy41IDcyLjkgMjAuOSAyLjMtMTYgOC44LTI3LjEgMTYtMzMuNy01NS45LTYuMi0xMTIuMy0xNC4zLTExMi4zLTExMC41IDAtMjcuNSA3LjYtNDEuMyAyMy42LTU4LjktMi42LTYuNS0xMS4xLTMzLjMgMi42LTY3LjkgMjAuOS02LjUgNjkgMjcgNjkgMjcgMjAtNS42IDQxLjUtOC41IDYyLjgtOC41czQyLjggMi45IDYyLjggOC41YzAgMCA0OC4xLTMzLjYgNjktMjcgMTMuNyAzNC43IDUuMiA2MS40IDIuNiA2Ny45IDE2IDE3LjcgMjUuOCAzMS41IDI1LjggNTguOSAwIDk2LjUtNTguOSAxMDQuMi0xMTQuOCAxMTAuNSA5LjIgNy45IDE3IDIyLjkgMTcgNDYuNCAwIDMzLjctLjMgNzUuNC0uMyA4My42IDAgNi41IDQuNiAxNC40IDE3LjMgMTIuMSAxMDAtMzMuMiAxNjcuOC0xMjguMSAxNjcuOC0yMzkgMC0xMzguNy0xMTIuNS0yNDQtMjUxLjItMjQ0ek0xMDUuMiAzNTIuOWMtMS4zIDEtMSAzLjMgLjcgNS4yIDEuNiAxLjYgMy45IDIuMyA1LjIgMSAxLjMtMSAxLTMuMy0uNy01LjItMS42LTEuNi0zLjktMi4zLTUuMi0xem0tMTAuOC04LjFjLS43IDEuMyAuMyAyLjkgMi4zIDMuOSAxLjYgMSAzLjYgLjcgNC4zLS43IC43LTEuMy0uMy0yLjktMi4zLTMuOS0yLS42LTMuNi0uMy00LjMgLjd6bTMyLjQgMzUuNmMtMS42IDEuMy0xIDQuMyAxLjMgNi4yIDIuMyAyLjMgNS4yIDIuNiA2LjUgMSAxLjMtMS4zIC43LTQuMy0xLjMtNi4yLTIuMi0yLjMtNS4yLTIuNi02LjUtMXptLTExLjQtMTQuN2MtMS42IDEtMS42IDMuNiAwIDUuOXM0LjMgMy4zIDUuNiAyLjNjMS42LTEuMyAxLjYtMy45IDAtNi4yLTEuNC0yLjMtNC0zLjMtNS42LTJ6Il19LEQydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb2RpZXBpZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI4NCIsIk00NDIuNSAyMDIuOWMzMC43IDAgMzMuNSA1My4xLS4zIDUzLjFsLTEwLjggMCAwIDQ0LjMtMjYuNiAwIDAtOTcuNCAzNy43IDB6TTQ5MiAzNTIuNkM0NDkuOSA0NDQuNSAzNzAuNCA1MDQgMjY4IDUwNCAxMzEgNTA0IDIwIDM5MyAyMCAyNTZTMTMxIDggMjY4IDhjOTcuNCAwIDE3Mi44IDUzLjcgMjE4LjIgMTM4LjRMMzAwLjIgMjU1LjIgNDkyIDM1Mi42em0tMzguNSAxMi41bC02MC4zLTMwLjdjLTI3LjEgNDQuMy03MC40IDcxLjQtMTIyLjQgNzEuNC04Mi41IDAtMTQ5LjItNjYuNy0xNDkuMi0xNDguOSAwLTgyLjUgNjYuNy0xNDkuMiAxNDkuMi0xNDkuMiA0OC40IDAgODguOSAyMy41IDExNi45IDYzLjRsNTkuNS0zNC42QzQwNi41IDczLjkgMzQyLjUgMzYuNSAyNjggMzYuNSAxNDYuOCAzNi41IDQ4LjUgMTM0LjggNDguNSAyNTZTMTQ2LjggNDc1LjUgMjY4IDQ3NS41Yzc4LjYgMCAxNDYuNS00Mi4xIDE4NS41LTExMC40eiJdfSxFMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGllZC1waXBlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhZSIsIk00NDAuMiAyMy4yYy0yNi43IDYuOC02OC4xIDI4LjUtMTE0LjYgNjcuNS0zMC45LTE3LjUtNjUuOC0yNi43LTEwMS40LTI2LjctMTE0LjkgMC0yMDggOTMuMS0yMDggMjA4czkzLjEgMjA4IDIwOCAyMDggMjA4LTkzLjEgMjA4LTIwOGMuMS01NC4xLTIxLTEwNi4xLTU4LjctMTQ0LjgtNi42IDguNS0xMi4zIDE3LjctMTcgMjcuNCAyOC45IDMyLjMgNDQuOCA3NC4xIDQ0LjkgMTE3LjQgMCA5Ny43LTc5LjQgMTc3LjEtMTc3LjEgMTc3LjEtMzAuOCAwLTYxLTguMS04Ny42LTIzLjQgODIuOS0xMDcuMyAxNTAuOC0zNy44IDE4NC4zLTIyNi42IDUuOC0zMi42IDI4LTk0LjMgMTI2LjItMTYwLjIgOC4xLTUuNCAyLjQtMTguMS03LTE1Ljd6TTEwOS4zIDQwNi40Qzg5LjggMzg5LjggNzQuMiAzNjkuMiA2My41IDM0NnMtMTYuMy00OC41LTE2LjMtNzRjMC05Ny43IDc5LjQtMTc3LjEgMTc3LjEtMTc3LjEgMjYuNiAwIDUyLjggNi4xIDc2LjYgMTcuOC02NiA2Mi4xLTEyNi45IDE1Mi45LTE5MS42IDI5My44eiJdfSwkMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmFzcGJlcnJ5LXBpIixpY29uOls0NDgsNTEyLFtdLCJmN2JiIiwiTTM5Mi41IDIzMi41bC0zLjctNi41Yy4xLTQ2LjQtMjEuNC02NS4zLTQ2LjUtNzkuNyA3LjYtMiAxNS40LTMuNiAxNy42LTEzLjIgMTMuMS0zLjMgMTUuOC05LjQgMTcuMS0xNS44IDMuNC0yLjMgMTQuOC04LjcgMTMuNi0xOS43IDYuNC00LjQgMTAtMTAuMSA4LjEtMTguMSA2LjktNy41IDguNy0xMy43IDUuOC0xOS40IDguMy0xMC4zIDQuNi0xNS42IDEuMS0yMC45IDYuMi0xMS4yIC43LTIzLjItMTYuNi0yMS4yLTYuOS0xMC4xLTIxLjktNy44LTI0LjItNy44LTIuNi0zLjItNi02LTE2LjUtNC43LTYuOC02LjEtMTQuNC01LTIyLjMtMi4xLTkuMy03LjMtMTUuNS0xLjQtMjIuNiAuOC0xMS4zLTMuNi0xMy45IDEuMy0xOS40IDMuNC0xMi4zLTIuNi0xNi4xIDMtMjIgOC45bC02LjktLjFjLTE4LjYgMTAuOC0yNy44IDMyLjgtMzEuMSA0NC4xLTMuMy0xMS4zLTEyLjUtMzMuMy0zMS4xLTQ0LjFsLTYuOSAuMWMtNS45LTUuOS05LjctMTEuNS0yMi04LjktNS42LTItOC4xLTctMTkuNC0zLjQtNC42LTEuNC04LjktNC40LTEzLjktNC4zLTIuNiAuMS01LjUgMS04LjcgMy41LTcuOS0zLTE1LjUtNC0yMi4zIDIuMS0xMC41LTEuMy0xNCAxLjQtMTYuNSA0LjctMi4zIDAtMTcuMy0yLjMtMjQuMiA3LjgtMTcuMy0yLTIyLjcgMTAtMTYuNSAyMS4yLTMuNSA1LjQtNy4yIDEwLjcgMS4xIDIwLjktMi45IDUuNy0xLjEgMTEuOSA1LjggMTkuNC0xLjggOCAxLjggMTMuNyA4LjEgMTguMS0xLjIgMTEgMTAuMiAxNy40IDEzLjYgMTkuNyAxLjMgNi40IDQgMTIuNCAxNy4xIDE1LjggMi4yIDkuNSAxMCAxMS4yIDE3LjYgMTMuMi0yNS4xIDE0LjQtNDYuNiAzMy4zLTQ2LjUgNzkuN2wtMy43IDYuNWMtMjguOCAxNy4yLTU0LjcgNzIuNy0xNC4yIDExNy43IDIuNiAxNC4xIDcuMSAyNC4yIDExIDM1LjQgNS45IDQ1LjIgNDQuNSA2Ni4zIDU0LjYgNjguOCAxNC45IDExLjIgMzAuOCAyMS44IDUyLjIgMjkuMiAyMC4zIDIwLjYgNDIuMyAyOC40IDY0LjMgMjguNGwxIDBjMjIuMSAwIDQ0LTcuOCA2NC4yLTI4LjQgMjEuNS03LjQgMzcuMy0xOCA1Mi4yLTI5LjIgMTAuMi0yLjUgNDguNy0yMy42IDU0LjYtNjguOCAzLjktMTEuMiA4LjQtMjEuMyAxMS0zNS40IDQwLjYtNDUuMSAxNC43LTEwMC41LTE0LTExNy43em0tMjIuMi04Yy0xLjUgMTguNy05OC45LTY1LjEtODIuMS02Ny45IDQ1LjctNy41IDgzLjYgMTkuMiA4Mi4xIDY3Ljl6bS00MyA5My4xYy0yNC41IDE1LjgtNTkuOCA1LjYtNzguOC0yMi44cy0xNC42LTY0LjIgOS45LTgwIDU5LjgtNS42IDc4LjggMjIuOCAxNC42IDY0LjItOS45IDgwek0yNTkuNCAyOS4zYy44IDQuMiAxLjggNi44IDIuOSA3LjYgNS40LTUuOCA5LjgtMTEuNyAxNi44LTE3LjMgMCAzLjMtMS43IDYuOCAyLjUgOS40IDMuNy01IDguOC05LjUgMTUuNS0xMy4zLTMuMiA1LjYtLjYgNy4zIDEuMiA5LjYgNS4xLTQuNCAxMC04LjggMTkuNC0xMi4zLTIuNiAzLjEtNi4yIDYuMi0yLjQgOS44IDUuMy0zLjMgMTAuNi02LjYgMjMuMS04LjktMi44IDMuMS04LjcgNi4zLTUuMSA5LjQgNi42LTIuNSAxNC00LjQgMjIuMS01LjQtMy45IDMuMi03LjEgNi4zLTMuOSA4LjggNy4xLTIuMiAxNi45LTUuMSAyNi40LTIuNmwtNiA2LjFjLS43IC44IDE0LjEgLjYgMjMuOSAuOC0zLjYgNS03LjIgOS43LTkuMyAxOC4yIDEgMSA1LjggLjQgMTAuNCAwLTQuNyA5LjktMTIuOCAxMi4zLTE0LjcgMTYuNiAyLjkgMi4yIDYuOCAxLjYgMTEuMiAuMS0zLjQgNi45LTEwLjQgMTEuNy0xNiAxNy4zIDEuNCAxIDMuOSAxLjYgOS43IC45LTUuMiA1LjUtMTEuNCAxMC41LTE4LjggMTUgMS4zIDEuNSA1LjggMS41IDEwIDEuNi02LjcgNi41LTE1LjMgOS45LTIzLjQgMTQuMiA0IDIuNyA2LjkgMi4xIDEwIDIuMS01LjcgNC43LTE1LjQgNy4xLTI0LjQgMTAgMS43IDIuNyAzLjQgMy40IDcuMSA0LjEtOS41IDUuMy0yMy4yIDIuOS0yNyA1LjYgLjkgMi43IDMuNiA0LjQgNi43IDUuOC0xNS40IC45LTU3LjMtLjYtNjUuNC0zMi4zIDE1LjctMTcuMyA0NC40LTM3LjUgOTMuNy02Mi42LTM4LjQgMTIuOC03MyAzMC0xMDIgNTMuNS0zNC4zLTE1LjktMTAuOC01NS45IDUuOC03MS44ek0yMjUgMTQzLjljMjQuMi0uMyA1NC4xIDE3LjggNTQgMzQuNy0uMSAxNS0yMSAyNy4xLTUzLjggMjYuOS0zMi4xLS40LTUzLjctMTUuMi01My42LTI5LjggMC0xMS45IDI2LjItMzIuNSA1My40LTMxLjh6TTEwMiAxMzEuMWMzLjctLjcgNS40LTEuNSA3LjEtNC4xLTktMi44LTE4LjctNS4zLTI0LjQtMTAgMy4xIDAgNiAuNyAxMC0yLjEtOC4xLTQuMy0xNi43LTcuNy0yMy40LTE0LjIgNC4yLS4xIDguNyAwIDEwLTEuNi03LjQtNC41LTEzLjYtOS41LTE4LjgtMTUgNS44IC43IDguMyAuMSA5LjctLjktNS42LTUuNi0xMi43LTEwLjQtMTYtMTcuMyA0LjMgMS41IDguMyAyIDExLjItLjEtMS45LTQuMi0xMC02LjctMTQuNy0xNi42IDQuNiAuNCA5LjQgMSAxMC40IDAtMi4xLTguNS01LjgtMTMuMy05LjMtMTguMiA5LjgtLjEgMjQuNiAwIDIzLjktLjhsLTYtNi4xYzkuNS0yLjUgMTkuMyAuNCAyNi40IDIuNiAzLjItMi41LS4xLTUuNi0zLjktOC44IDguMSAxLjEgMTUuNCAyLjkgMjIuMSA1LjQgMy41LTMuMS0yLjMtNi4zLTUuMS05LjQgMTIuNSAyLjMgMTcuOCA1LjYgMjMuMSA4LjkgMy44LTMuNiAuMi02LjctMi40LTkuOCA5LjQgMy40IDE0LjMgNy45IDE5LjQgMTIuMyAxLjctMi4zIDQuNC00IDEuMi05LjYgNi43IDMuOCAxMS44IDguMyAxNS41IDEzLjMgNC4xLTIuNiAyLjUtNi4yIDIuNS05LjQgNyA1LjYgMTEuNCAxMS41IDE2LjggMTcuMyAxLjEtLjggMi0zLjQgMi45LTcuNiAxNi42IDE1LjkgNDAuMSA1NS45IDYgNzEuOC0yOS0yMy41LTYzLjYtNDAuNy0xMDItNTMuNSA0OS4zIDI1IDc4IDQ1LjMgOTMuNyA2Mi42LTggMzEuOC01MCAzMy4yLTY1LjQgMzIuMyAzLjEtMS40IDUuOC0zLjIgNi43LTUuOC00LTIuOC0xNy42LS40LTI3LjItNS42em02MC4xIDI0LjFjMTYuOCAyLjgtODAuNiA4Ni41LTgyLjEgNjcuOS0xLjUtNDguNyAzNi41LTc1LjUgODIuMS02Ny45ek01OC43IDM0MmMtMjMuNy0xOC44LTMxLjMtNzMuNyAxMi42LTk4LjMgMjYuNS03IDkgMTA3LjgtMTIuNiA5OC4zem05MSA5OC4yYy0xMy4zIDcuOS00NS44IDQuNy02OC44LTI3LjktMTUuNS0yNy40LTEzLjUtNTUuMi0yLjYtNjMuNCAxNi4zLTkuOCA0MS41IDMuNCA2MC45IDI1LjYgMTYuOSAyMCAyNC42IDU1LjMgMTAuNSA2NS43ek0xMjMuMyAzMjAuNWMtMjQuNS0xNS44LTI4LjktNTEuNi05LjktODBzNTQuMy0zOC42IDc4LjgtMjIuOCAyOC45IDUxLjYgOS45IDgwYy0xOS4xIDI4LjQtNTQuNCAzOC42LTc4LjggMjIuOHpNMjI1LjUgNDk2Yy0yOS40IDEuMi01OC4yLTIzLjctNTcuOC0zMi4zLS40LTEyLjcgMzUuOC0yMi42IDU5LjMtMjIgMjMuNy0xIDU1LjYgNy41IDU1LjcgMTguOSAuNSAxMS0yOC44IDM1LjktNTcuMiAzNS40em01OC45LTEyNC45Yy4yIDI5LjctMjYuMiA1My44LTU4LjggNTRzLTU5LjItMjMuOC01OS40LTUzLjRsMC0uNmMtLjItMjkuNyAyNi4yLTUzLjggNTguOC01NHM1OS4yIDIzLjggNTkuNCA1My40bDAgLjZ6bTgyLjIgNDIuN2MtMjUuMyAzNC42LTU5LjYgMzUuOS03Mi4zIDI2LjMtMTMuMy0xMi40LTMuMi01MC45IDE1LjEtNzIgMjAuOS0yMy4zIDQzLjMtMzguNSA1OC45LTI2LjYgMTAuNSAxMC4zIDE2LjcgNDkuMS0xLjcgNzIuM3ptMjIuOS03My4yYy0yMS41IDkuNC0zOS0xMDUuMy0xMi42LTk4LjMgNDMuOSAyNC43IDM2LjMgNzkuNiAxMi42IDk4LjN6Il19LEkydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MzIixpY29uOls1MTIsNTEyLFtdLCJmMTNjIiwiTTQ4MCAzMmwtNjQgMzY4LTIyMy4zIDgwLTE5Mi43LTgwIDE5LjYtOTQuOCA4MiAwLTggNDAuNiAxMTYuNCA0NC40IDEzNC4xLTQ0LjQgMTguOC05Ny4xLTMzMy40IDAgMTYtODIgMzMzLjcgMCAxMC41LTUyLjctMzMzLjQgMCAxNi4zLTgyIDQwNy40IDB6Il19LFAydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJodWJzcG90IixpY29uOls0NDgsNTEyLFtdLCJmM2IyIiwiTTIzNS44IDIxMS42Yy0yNS4xIDIzLjctNDAuOCA1Ny4zLTQwLjggOTQuNiAwIDI5LjMgOS43IDU2LjMgMjYgNzhMMTcxLjUgNDM0Yy00LjQtMS42LTkuMS0yLjUtMTQtMi41LTEwLjggMC0yMC45IDQuMi0yOC41IDExLjhzLTExLjggMTcuOC0xMS44IDI4LjYgNC4yIDIwLjkgMTEuOCAyOC41IDE3LjggMTEuNiAyOC41IDExLjZjMTAuOCAwIDIwLjktMy45IDI4LjYtMTEuNiA3LjYtNy42IDExLjgtMTcuOCAxMS44LTI4LjUgMC00LjItLjYtOC4yLTEuOS0xMi4xbDUwLTUwLjJjMjIgMTYuOSA0OS40IDI2LjkgNzkuMyAyNi45IDcxLjkgMCAxMzAtNTguMyAxMzAtMTMwLjIgMC02NS4yLTQ3LjctMTE5LjItMTEwLjItMTI4LjdsMC02MS42YzE3LjUtNy40IDI4LjItMjMuOCAyOC4yLTQyLjkgMC0yNi4xLTIwLjktNDcuOS00Ny00Ny45UzI3OS42IDQ3IDI3OS42IDczLjFjMCAxOS4xIDEwLjcgMzUuNSAyOC4yIDQyLjlsMCA2MS4yYy0xNS4yIDIuMS0yOS42IDYuNy00Mi43IDEzLjYtMjcuNi0yMC45LTExNy41LTg1LjctMTY4LjktMTI0LjggMS4yLTQuNCAyLTkgMi0xMy44IDAtMjguOC0yMy41LTUyLjItNTIuNC01Mi4yLTI4LjggMC01Mi4yIDIzLjQtNTIuMiA1Mi4yIDAgMjguOSAyMy40IDUyLjMgNTIuMiA1Mi4zIDkuOCAwIDE4LjktMi45IDI2LjgtNy42TDIzNS44IDIxMS42em04OS41IDI1LjZhNjkgNjkgMCAxIDEgMCAxMzggNjkgNjkgMCAxIDEgMC0xMzh6Il19LE4ydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbXBsaWQiLGljb246WzY0MCw1MTIsW10sImUzNjAiLCJNMjI2LjEgMzg4LjJjMC0uNy0uMi0xLjUtLjYtMi4xcy0xLTEuMS0xLjctMS40Yy0uNS0uMi0xLjEtLjQtMS42LS40bC0xNDkuNiAwYy0zLjEgMC02LjItLjgtOC45LTIuMnMtNS4xLTMuNS02LjktNi4xLTIuOS01LjUtMy4zLTguNiAwLTYuMiAxLjEtOS4xTDgxLjYgMjU1LjdjMi03LjIgNi4yLTEzLjUgMTItMTguMnMxMi45LTcuNCAyMC40LTcuOGwxNDguNiAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNmwxMC44LTQxLjFjLjQtMSAuMy0yLS4xLTIuOXMtMS4yLTEuNi0yLjEtMmMtLjQtLjItLjktLjMtMS40LS4zLS4xIDAtLjEgMC0uMiAwbC0xNDguNSAwYy0yMi4yIDEuMi00My40IDkuMi02MC44IDIzcy0zMCAzMi43LTM2LjIgNTQuMUwzLjUgMzU4LjhjLTMuMiA4LjctNC4yIDE4LTMgMjcuMXM0LjYgMTcuOSA5LjkgMjUuNSAxMi4zIDEzLjggMjAuNSAxOCAxNy4zIDYuNSAyNi41IDYuNmMxIDAgMS45IDAgMi45LS4xbDE0OC42IDBjMS41LS4xIDIuOS0uNyA0LTEuNnMyLTIuMiAyLjQtMy42bDEwLjctNDEuMWMuMi0uNSAuMy0uOSAuMy0xLjR6bTgwLjUtMzA3Yy4yLS40IC4zLS45IC4zLTEuNCAwLS41LS4xLTEtLjMtMS41cy0uNS0uOS0uOC0xLjItLjgtLjYtMS4yLS44LTEtLjMtMS41LS4zbC00MS4yIDBjLTEuNSAuMS0yLjkgLjYtNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTIxLjMgODAuOSA1MS4xIDAgMjEuNC04MC45em0tMTI2LjMgMjg3bDUxLjEgMCAzMi0xMjIuNi01MS4xIDAtMzIgMTIyLjZ6TTUxMS45IDc5LjdjMC0xLS41LTEuOS0xLjItMi42cy0xLjctMS4xLTIuNi0xLjFjLS4xIDAtLjEgMC0uMiAwbC00MSAwYy0xLjUgLjEtMi45IC42LTQuMSAxLjVzLTIgMi4yLTIuNSAzLjZMMzY4LjkgNDMwLjZjLS4yIC40LS4zIC45LS4zIDEuMyAwIDEgLjQgMiAxLjEgMi43czEuNyAxLjEgMi43IDEuMWw0MS4yIDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42TDUxMS41IDgxLjJjLjItLjUgLjMtMSAuMy0xLjV6TTMyNC42IDM4NC41bC00MSAwYy0xLjUgLjEtMi45IC43LTQgMS42cy0yIDIuMi0yLjQgMy42bC0xMC43IDQxLjFjLS4yIC40LS4zIC45LS4zIDEuNCAwIC41IC4xIDEgLjMgMS41cy41IC45IC44IDEuMiAuOCAuNiAxLjIgLjggMSAuMyAxLjUgLjNjLjEgMCAuMiAwIC4zIDBsNDAuOSAwYzEuNS0uMSAyLjktLjYgNC0xLjZzMi0yLjIgMi40LTMuNmwxMC44LTQxLjFjLjItLjYgLjMtMS4yIC4zLTEuOHMtLjMtMS4yLS42LTEuNy0uOC0uOS0xLjMtMS4yLTEuMi0uNC0xLjgtLjRjLS4xIDAtLjIgMC0uMyAwbDAgMHpNNjM2IDc2LjFsLTQxIDBjLTEuNSAuMS0yLjkgLjYtNCAxLjVzLTIgMi4yLTIuNCAzLjZMNDk3LjEgNDMwLjZjLS4yIC40LS4yIC45LS4yIDEuMyAwIDEgLjQgMiAxLjEgMi43czEuNyAxLjEgMi43IDEuMWw0MS4xIDBjMS41LS4xIDIuOS0uNiA0LTEuNnMyLTIuMiAyLjQtMy42TDYzOS43IDgxLjJjLjItLjUgLjMtMSAuMy0xLjUtLjEtMS0uNS0xLjktMS4yLTIuNXMtMS42LTEtMi42LTFjLS4xIDAtLjEgMC0uMiAwbDAtLjF6TTM3MS42IDIyNS4ybDEwLjgtNDEuMWMuMi0uNCAuMi0uOSAuMi0xLjQgMC0xLS40LTItMS4xLTIuN3MtMS43LTEuMS0yLjctMS4xbC00MS4zIDBjLTEuNSAuMS0yLjkgLjctNCAxLjZzLTIgMi4yLTIuNCAzLjZsLTEwLjggNDEuMWMtLjIgLjUtLjMgMS0uMyAxLjVsMCAuMmMuMSAxIC41IDEuOCAxLjIgMi41czEuNiAxIDIuNiAxYy4xIDAgLjIgMCAuMyAwbDQxLjEgMGMxLjUtLjEgMi45LS42IDQtMS42czItMi4yIDIuNC0zLjZ6Il19LEYydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkeWFsb2ciLGljb246WzQ0OCw1MTIsW10sImYzOTkiLCJNMTYgMzJsMCAxMTkuMiA2NCAwIDAtNTUuMiAxMDcuMiAwQzMwMC42IDk2IDM2OCAxNzYuMiAzNjggMjU1LjkgMzY4IDMzMiAzMDkuNCA0MTYgMTg3LjIgNDE2bC0xNzEuMiAwIDAgNjQgMTcxLjIgMEMzNDcuOSA0ODAgNDMyIDM2Ny4zIDQzMiAyNTUuOSA0MzIgMTk3LjIgNDA5LjkgMTQyLjUgMzY5LjcgMTAxLjYgMzI0LjkgNTYgMjYxLjcgMzIgMTg3LjIgMzJMMTYgMzJ6Il19LE8ydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJlbGVtZW50b3IiLGljb246WzUxMiw1MTIsW10sImY0MzAiLCJNLjUgMjU2YzAgMTQxIDExMy42IDI1NSAyNTQuNiAyNTUgMTQyIDAgMjU2LTExNCAyNTYtMjU1IDAtMTQwLTExNC0yNTMuOS0yNTYtMjUzLjktMTQxIDAtMjU0LjYgMTEzLjktMjU0LjYgMjUzLjl6TTE5Mi4xIDE1MGwwIDIxMy00MyAwIDAtMjEzIDQzIDB6bTQyIDBsMTI4IDAgMCA0My0xMjggMCAwLTQzem0xMjggODVsMCA0My0xMjggMCAwLTQzIDEyOCAwem0tMTI4IDg1bDEyOCAwIDAgNDMtMTI4IDAgMC00M3oiXX0sUjJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZpcnN0LW9yZGVyIixpY29uOls0NDgsNTEyLFtdLCJmMmIwIiwiTTEzLjMgMjI5LjJjLjEtLjEgLjItLjMgLjMtLjQgMCAuMSAwIC4zLS4xIC40bC0uMiAwek0yMjQuNCA5Ni42Yy03LjEgMC0xNC42IC42LTIxLjQgMS43bDMuNyA2Ny40LTIyLTY0Yy0xNC4zIDMuNy0yNy43IDkuNC00MCAxNi42bDI5LjQgNjEuNC00NS4xLTUwLjljLTExLjQgOC45LTIxLjcgMTkuMS0zMC42IDMwLjlsNTAuNiA0NS40LTYxLjEtMjkuN2MtNy4xIDEyLjMtMTIuOSAyNS43LTE2LjYgNDBsNjQuMyAyMi42LTY4LTRjLS45IDcuMS0xLjQgMTQuNi0xLjQgMjJzLjYgMTQuNiAxLjQgMjEuN2w2Ny43LTQtNjQgMjIuNmMzLjcgMTQuMyA5LjQgMjcuNyAxNi42IDQwLjNMMTQ5IDMwNi45IDk4LjEgMzUyYzguOSAxMS43IDE5LjEgMjIuMyAzMC45IDMwLjlsNDQuOS01MC45LTI5LjUgNjEuNGMxMi4zIDcuNCAyNS43IDEzLjEgNDAgMTYuOWwyMi4zLTY0LjYtNCA2OGM3LjEgMS4xIDE0LjYgMS43IDIxLjcgMS43IDcuNCAwIDE0LjYtLjYgMjEuNy0xLjdsLTQtNjguNiAyMi42IDY1LjFjMTQuMy00IDI3LjctOS40IDQwLTE2LjlsLTI5LjQtNjEuMyA0NC45IDUwLjljMTEuNy04LjkgMjItMTkuMSAzMC42LTMwLjlsLTUwLjYtNDUuMSA2MS4xIDI5LjRjNy4xLTEyLjMgMTIuOS0yNS43IDE2LjYtNDAuM2wtNjQtMjIuMyA2Ny40IDRjMS4xLTcuMSAxLjQtMTQuMyAxLjQtMjEuN3MtLjMtMTQuOS0xLjQtMjJsLTY3LjcgNCA2NC0yMi4zYy0zLjctMTQuMy05LjEtMjgtMTYuNi00MC4zbC02MC45IDI5LjcgNTAuNi00NS40Yy04LjktMTEuNy0xOS4xLTIyLTMwLjYtMzAuOWwtNDUuMSA1MC45IDI5LjQtNjEuMWMtMTIuMy03LjQtMjUuNy0xMy4xLTQwLTE2LjlsLTIyLjMgNjQuMyA0LTY3LjdjLTcuMS0xLjItMTQuMy0xLjctMjEuNy0xLjd6TTQ0My44IDEyOEw0NDMuOCAzODQgMjI0LjQgNTEyIDUgMzg0IDUgMTI4IDIyNC40IDAgNDQzLjggMTI4em0tMTcuMSAxMC4zbC0yMDIuMy0xMTcuNC0yMDIuMyAxMTcuNCAwIDIzNS4xIDIwMi4zIDExNy43IDIwMi4zLTExNy43IDAtMjM1LjF6TTIyNC40IDM3LjFsMTg3LjcgMTA5LjQgMCAyMTguOS0xODcuNyAxMDkuNS0xODcuNy0xMDkuNSAwLTIxOC44IDE4Ny43LTEwOS41em0wIDUwLjljLTkyLjMgMC0xNjYuOSA3NS4xLTE2Ni45IDE2OCAwIDkyLjYgNzQuNiAxNjcuNyAxNjYuOSAxNjcuNyA5MiAwIDE2Ni45LTc1LjEgMTY2LjktMTY3LjcgMC05Mi45LTc0LjktMTY4LTE2Ni45LTE2OHoiXX0sQjJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyaWJiYmxlIixpY29uOls1MTIsNTEyLFtdLCJmMTdkIiwiTTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNNDIwIDEyMi40YzI5LjUgMzYgNDcuNCA4MiA0Ny44IDEzMi03LTEuNS03Ny0xNS43LTE0Ny41LTYuOC01LjgtMTQtMTEuMi0yNi40LTE4LjYtNDEuNiA3OC4zLTMyIDExMy44LTc3LjUgMTE4LjMtODMuNXpNMzk2LjQgOTcuOWMtMy44IDUuNC0zNS43IDQ4LjMtMTExIDc2LjUtMzQuNy02My44LTczLjItMTE2LjItNzktMTI0IDY3LjItMTYuMiAxMzggMS4zIDE5MC4xIDQ3LjV6TTE2NS45IDY0LjZjNS42IDcuNyA0My40IDYwLjEgNzguNSAxMjIuNS05OS4xIDI2LjMtMTg2LjQgMjUuOS0xOTUuOCAyNS44IDEzLjctNjUuNyA1OC0xMjAuNCAxMTcuMy0xNDguM3pNNDQuMiAyNTYuM2MwLTIuMiAwLTQuMyAuMS02LjUgOS4zIC4yIDExMS45IDEuNSAyMTcuNy0zMC4xIDYuMSAxMS45IDExLjkgMjMuOSAxNy4yIDM1LjktNzYuNiAyMS42LTE0Ni4yIDgzLjUtMTgwLjUgMTQyLjMtMzMuOC0zNy42LTU0LjUtODcuMi01NC41LTE0MS42ek0xMjYgNDIzLjRjMjIuMS00NS4yIDgyLjItMTAzLjYgMTY3LjYtMTMyLjggMjkuNyA3Ny4zIDQyIDE0Mi4xIDQ1LjIgMTYwLjYtNjguMSAyOS0xNTAgMjEuMS0yMTIuOC0yNy45em0yNDguNCA4LjVjLTIuMi0xMi45LTEzLjQtNzQuOS00MS4yLTE1MSA2Ni40LTEwLjYgMTI0LjcgNi44IDEzMS45IDkuMS05LjQgNTguOS00My4zIDEwOS44LTkwLjggMTQyeiJdfSxQQT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5rZWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjA4YyIsIk00MTYgMzJMMzEuOSAzMkMxNC4zIDMyIDAgNDYuNSAwIDY0LjNMMCA0NDcuN0MwIDQ2NS41IDE0LjMgNDgwIDMxLjkgNDgwTDQxNiA0ODBjMTcuNiAwIDMyLTE0LjUgMzItMzIuM2wwLTM4My40QzQ0OCA0Ni41IDQzMy42IDMyIDQxNiAzMnpNMTM1LjQgNDE2bC02Ni40IDAgMC0yMTMuOCA2Ni41IDAgMCAyMTMuOC0uMSAwek0xMDIuMiA5NmEzOC41IDM4LjUgMCAxIDEgMCA3NyAzOC41IDM4LjUgMCAxIDEgMC03N3pNMzg0LjMgNDE2bC02Ni40IDAgMC0xMDRjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOWwwIDEwNS44LTY2LjQgMCAwLTIxMy44IDYzLjcgMCAwIDI5LjIgLjkgMGM4LjktMTYuOCAzMC42LTM0LjUgNjIuOS0zNC41IDY3LjIgMCA3OS43IDQ0LjMgNzkuNyAxMDEuOWwwIDExNy4yeiJdfSxIMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtcGF5cGFsIixpY29uOls1NzYsNTEyLFtdLCJmMWY0IiwiTTE4Ni4zIDI1OC4yYzAgMTIuMi05LjcgMjEuNS0yMiAyMS41LTkuMiAwLTE2LTUuMi0xNi0xNSAwLTEyLjIgOS41LTIyIDIxLjctMjIgOS4zIDAgMTYuMyA1LjcgMTYuMyAxNS41ek04MC41IDIwOS43bC00LjcgMGMtMS41IDAtMyAxLTMuMiAyLjdsLTQuMyAyNi43IDguMi0uM2MxMSAwIDE5LjUtMS41IDIxLjUtMTQuMiAyLjMtMTMuNC02LjItMTQuOS0xNy41LTE0Ljl6bTI4NCAwbC00LjUgMGMtMS44IDAtMyAxLTMuMiAyLjdsLTQuMiAyNi43IDgtLjNjMTMgMCAyMi0zIDIyLTE4LS4xLTEwLjYtOS42LTExLjEtMTguMS0xMS4xek01NzYgODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDQ4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xMjguMyAyMTUuNGMwLTIxLTE2LjItMjgtMzQuNy0yOGwtNDAgMGMtMi41IDAtNSAyLTUuMiA0LjdMMzIgMjk0LjJjLS4zIDIgMS4yIDQgMy4yIDRsMTkgMGMyLjcgMCA1LjItMi45IDUuNS01LjdsNC41LTI2LjZjMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjYgMCA0Ni4xLTE3IDQ2LjEtNDUuOHptODQuMiA4LjhsLTE5IDBjLTMuOCAwLTQgNS41LTQuMiA4LjItNS44LTguNS0xNC4yLTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOSAwIDIwLjItNC45IDI2LjUtMTEuOS0uNSAxLjUtMSA0LjctMSA2LjIgMCAyLjMgMSA0IDMuMiA0bDE3LjIgMGMyLjcgMCA1LTIuOSA1LjUtNS43bDEwLjItNjQuM2MuMy0xLjktMS4yLTMuOS0zLjItMy45ek0yNTMgMzIyLjFsNjMuNy05Mi42Yy41LS41IC41LTEgLjUtMS43IDAtMS43LTEuNS0zLjUtMy4yLTMuNWwtMTkuMiAwYy0xLjcgMC0zLjUgMS00LjUgMi41bC0yNi41IDM5LTExLTM3LjVjLS44LTIuMi0zLTQtNS41LTRsLTE4LjcgMGMtMS43IDAtMy4yIDEuOC0zLjIgMy41IDAgMS4yIDE5LjUgNTYuOCAyMS4yIDYyLjEtMi43IDMuOC0yMC41IDI4LjYtMjAuNSAzMS42IDAgMS44IDEuNSAzLjIgMy4yIDMuMmwxOS4yIDBjMS44LS4xIDMuNS0xLjEgNC41LTIuNnpNNDEyLjMgMjE1LjRjMC0yMS0xNi4yLTI4LTM0LjctMjhsLTM5LjcgMGMtMi43IDAtNS4yIDItNS41IDQuN2wtMTYuMiAxMDJjLS4yIDIgMS4zIDQgMy4yIDRsMjAuNSAwYzIgMCAzLjUtMS41IDQtMy4ybDQuNS0yOWMxLTcuMiAxMy4yLTQuNyAxOC00LjcgMjguNCAwIDQ1LjktMTcgNDUuOS00NS44em04NC4yIDguOGwtMTkgMGMtMy44IDAtNCA1LjUtNC4zIDguMi01LjUtOC41LTE0LTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOS4zIDAgMjAuNS00LjkgMjYuNS0xMS45LS4zIDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRsMTcuMyAwYzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6TTU0NCAxOTAuOWMwLTItMS41LTMuNS0zLjItMy41bC0xOC41IDBjLTEuNSAwLTMgMS4yLTMuMiAyLjdsLTE2LjIgMTA0LS4zIC41YzAgMS44IDEuNSAzLjUgMy41IDMuNWwxNi41IDBjMi41IDAgNS0yLjkgNS4yLTUuN2wxNi4yLTEwMS4yIDAtLjN6bS05MCA1MS44Yy0xMi4yIDAtMjEuNyA5LjctMjEuNyAyMiAwIDkuNyA3IDE1IDE2LjIgMTUgMTIgMCAyMS43LTkuMiAyMS43LTIxLjUgLjEtOS44LTYuOS0xNS41LTE2LjItMTUuNXoiXX0scTJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRobCIsaWNvbjpbNjQwLDUxMixbXSwiZjc5MCIsIk0yMzggMzAxLjJsNTguNyAwIDIyLjMtMzAuMi01OC43IDAtMjIuMyAzMC4yek0wIDI4Mi45bDAgNi40IDgxLjggMCA0LjctNi40LTg2LjUgMHpNMTcyLjkgMjcxYy04LjcgMC02LTMuNi00LjYtNS41IDIuOC0zLjggNy42LTEwLjQgMTAuNC0xNC4xczIuOC01LjktMi44LTUuOWwtNTEgMC00MS4xIDU1LjggMTAwLjEgMGMzMy4xIDAgNTEuNS0yMi41IDU3LjItMzAuM2wtNjguMiAwem0zMTcuNS02LjlsMzkuMy01My40LTYyLjIgMC0zOS4zIDUzLjQgNjIuMiAwek05NS4zIDI3MWwtOTUuMyAwIDAgNi40IDkwLjYgMCA0LjctNi40em0xMTEtMjYuNmMtMi44IDMuOC03LjUgMTAuNC0xMC4zIDE0LjItMS40IDItNC4xIDUuNSA0LjYgNS41bDQ1LjYgMHM3LjMtMTAgMTMuNS0xOC40YzguNC0xMS40IC43LTM1LTI5LjItMzVsLTExNy45IDAtMjAuNCAyNy44IDExMS40IDBjNS42IDAgNS41IDIuMiAyLjcgNS45ek0wIDMwMS4ybDczLjEgMCA0LjctNi40LTc3LjggMCAwIDYuNHptMzIzIDBsNTguNyAwIDIyLjMtMzAuMi01OC43IDBjLS4xIDAtMjIuMyAzMC4yLTIyLjMgMzAuMnptMjIyIC4xbDk1IDAgMC02LjQtOTAuMyAwLTQuNyA2LjR6TTU2Ny4zIDI3MWwtNC43IDYuNCA3Ny40IDAgMC02LjQtNzIuNyAwem0tMTMuNSAxOC4zbDg2LjIgMCAwLTYuNC04MS41IDAtNC43IDYuNHpNMzg5LjYgMjEwLjdsLTIyLjUgMzAuNi0yNi4yIDAgMjIuNS0zMC42LTU4LjcgMC0zOS4zIDUzLjQgMTQzLjYgMCAzOS4zLTUzLjQtNTguNyAwek00MjMuMSAyNzFzLTQuMyA1LjktNi40IDguN2MtNy40IDEwLS45IDIxLjYgMjMuMiAyMS42bDk0LjMgMCAyMi4zLTMwLjMtMTMzLjQgMHoiXX0sajJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRleCIsaWNvbjpbNjQwLDUxMixbXSwiZTdmZiIsIk02MjAuOCA5NS40Yy0zMC44IC40LTQyLjEgMTYuNi00Ny43IDI0LjVsLS4xIC4xLTU1LjcgODAuNSA4Mi44IDEyMS4xYzcuNSAxMC42IDExLjMgMTIuNSAzNS40IDEyLjVsMCA5LjFjLTkuMS0uNy0yOC0uNy0zNy43LS43LTEyLjQgMC0zMC44IDAtNDIuOSAuN2wwLTkuMWMxMy4yLS44IDE2LjYtNy4zIDE2LjYtMTAuMiAwLTEuMSAwLTIuMy0zLTYuNGwtNjUuNS05Ni4zLTYwLjIgODcuOWMtMS45IDIuNy0zLjggNS40LTMuOCAxMC4yIDAgNi4xIDMuNCAxMy42IDE1IDE0LjdsMCA5LjFjLTkuNC0uNy0yNy4xLS43LTM3LjItLjdsLTIuOCAwLTExLjcgODIuNi0xOTUuOSAwIDAtOS4xYzI2LjcgMCAzMC45IDAgMzAuOS0xNi45bDAtMjAzLjJjMC0xNi45LTQuMy0xNi45LTMwLjktMTYuOWwwLTEwLjMgMTkuOCAwYy00LjgtNjEuMS0xMC44LTcxLjctNjgtNzEuOGwtMjAuNyAwYy02LjggMS41LTYuOCA2LjEtNi44IDE0LjRsMCAyMDVjMCAxMy42IDEuMSAxNy44IDMyLjQgMTcuOGwxMC41IDAgMCA5LjEtLjQgMGMtMTcuOS0uMy0zNi43LS43LTU0LjktLjdzLTM2LjkgLjMtNTQuOCAuN2wtLjYgMCAwLTkuMSAxMC43IDBjMzEuNyAwIDMyLjgtNC4xIDMyLjgtMTcuOGwwLTIwNWMwLTguNyAwLTEzLjItNy4yLTE0LjNsLTIwLjggMGMtNTguNCAwLTYzLjcgMTAuOS02OC42IDczLjNsLTYuOCAwIDYuMy04My4zIDIxNy41IDAgNi4xIDgxLjggMTY0LjEgMCA5IDgzLjMtNi44IDBjLTUuMy00OS44LTEyLjEtNzMtNzAuMy03M2wtNTEuNSAwYy0xNSAwLTE1LjggMS45LTE1LjggMTQuNmwwIDkzLjMgMzUuNSAwYzM1LjUgMCAzOC45LTEyLjggMzguOS00NGw2IDAgMCA5Ny45LTYgMGMwLTMxLjgtMy40LTQ0LjgtMzguOS00NC44bC0zNS41IDAgMCAxMDUuMmMwIDEzIC43IDE0LjggMTUuOCAxNC44bDUyLjIgMGM2MS4xIDAgNjkuOS0yNS44IDc3LjQtNzMuNi03LjcgMC0xNi4zIC4yLTIyLjIgLjdsMC05LjFjNy4yIDAgMzEuNy0uNCA0Ny44LTIzLjhsNjUuNS05NS43LTcyLjctMTA2LjdjLTguMy0xMS43LTE1LjEtMTIuNS0zNS44LTEyLjVsMC05LjFjOS4xIC43IDI3LjkgLjcgMzcuNyAuNyAxMi40IDAgMzAuOCAwIDQyLjktLjdsMCA5LjFjLTEyLjUgLjQtMTYuNiA2LjgtMTYuNiAxMC4yIDAgMS4xIC40IDIuMyAzIDYuNGw1NS43IDgxLjYgNDkuNy03Mi4xYzIuNy0zLjcgNC41LTYuOCA0LjUtMTEuMyAwLTYuMS0zLTEzLjYtMTUtMTQuOGwwLTkuMWM5LjQgLjcgMjQuOCAuNyAzNy4yIC43IDkgMCAyMy4zIDAgMzItLjdsMCA5LjF6Il19LFYydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjbGF1ZGUiLGljb246WzUxMiw1MTIsW10sImU4NjEiLCJNMTAwLjQgMzQwLjVsMTAwLjctNTYuNSAxLjctNC45LTEuNy0yLjctNC45IDAtMTYuOC0xLTU3LjUtMS42LTQ5LjktMi4xLTQ4LjMtMi42LTEyLjItMi42LTExLjQtMTUgMS4yLTcuNSAxMC4yLTYuOSAxNC43IDEuM2MxOC45IDEuMyA0NS45IDMuMSA4MSA1LjZsMzUuMiAyLjEgNTIuMiA1LjQgOC4zIDAgMS4yLTMuNC0yLjgtMi4xLTIuMi0yLjEtNTAuMy0zNC4xLTU0LjQtMzYtMjguNS0yMC43LTE1LjQtMTAuNS03LjgtOS44LTMuNC0yMS41IDE0LTE1LjQgMTguOCAxLjMgNC44IDEuMyAxOSAxNC43IDQwLjcgMzEuNSA1My4xIDM5LjEgNy44IDYuNSAzLjEtMi4yIC40LTEuNi0zLjUtNS44LTI4LjktNTIuMi0zMC44LTUzLjEtMTMuNy0yMi0zLjYtMTMuMmMtMS4zLTUuNC0yLjItMTAtMi4yLTE1LjVsMTUuOS0yMS42IDguOC0yLjggMjEuMiAyLjggOC45IDcuOCAxMy4yIDMwLjIgMjEuNCA0Ny41IDMzLjIgNjQuNiA5LjcgMTkuMiA1LjIgMTcuOCAxLjkgNS40IDMuNCAwIDAtMy4xIDIuNy0zNi40IDUtNDQuNyA0LjktNTcuNSAxLjctMTYuMiA4LTE5LjQgMTUuOS0xMC41IDEyLjQgNS45IDEwLjIgMTQuNy0xLjQgOS41LTYuMSAzOS41LTExLjkgNjEuOS03LjggNDEuNSA0LjUgMCA1LjItNS4yIDIxLTI3LjggMzUuMi00NC4xIDE1LjUtMTcuNSAxOC4xLTE5LjMgMTEuNi05LjIgMjIgMCAxNi4yIDI0LjEtNy4zIDI0LjktMjIuNyAyOC43LTE4LjggMjQuNC0yNyAzNi4zLTE2LjggMjkgMS42IDIuMyA0LS40IDYwLjktMTMgMzIuOS01LjkgMzkuMy02LjcgMTcuOCA4LjMgMS45IDguNC03IDE3LjItNDIgMTAuNC00OS4yIDkuOC03My4zIDE3LjMtLjkgLjcgMSAxLjMgMzMgMy4xIDE0LjEgLjggMzQuNiAwIDY0LjQgNC44IDE2LjggMTEuMSAxMC4xIDEzLjYtMS43IDEwLjQtMjUuOSAxMy4yYy0xNS41LTMuNy01NC40LTEyLjktMTE2LjYtMjcuN2wtMjgtNy0zLjkgMCAwIDIuMyAyMy4zIDIyLjggNDIuNyAzOC42IDUzLjUgNDkuOCAyLjcgMTIuMy02LjkgOS43LTcuMy0xLTQ3LTM1LjQtMTguMS0xNS45LTQxLjEtMzQuNi0yLjcgMCAwIDMuNiA5LjUgMTMuOSA1MCA3NS4yIDIuNiAyMy0zLjYgNy41LTEzIDQuNS0xNC4yLTIuNi0yOS4zLTQxLjEtMzAuMi00Ni4zLTI0LjQtNDEuNS0zIDEuNy0xNC40IDE1NC44LTYuNyA3LjktMTUuNSA1LjktMTMtOS44LTYuOS0xNS45IDYuOS0zMS41IDguMy00MS4xIDYuNy0zMi43IDYuMS00MC42IDMuNi0xMy41LS4yLS45LTMgLjQtMzAuNiA0Mi00Ni41IDYyLjktMzYuOCAzOS40LTguOCAzLjUtMTUuMy03LjkgMS40LTE0LjEgOC41LTEyLjYgNTAuOS02NC44IDMwLjctNDAuMiAxOS44LTIzLjItLjEtMy40LTEuMiAwLTEzNS4zIDg3LjgtMjQuMSAzLjEtMTAuNC05LjcgMS4zLTE1LjkgNC45LTUuMiA0MC43LTI4LS4xIC4xIDAgLjF6Il19LFUydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaG9waWZ5IixpY29uOls0NDgsNTEyLFtdLCJlMDU3IiwiTTM4OC41IDEwNC4xYy0uMi0xLjEtLjctMi4xLTEuNS0yLjhzLTEuOC0xLjItMi45LTEuMmMtMiAwLTM3LjItLjgtMzcuMi0uOHMtMjEuNi0yMC44LTI5LjYtMjguOGwwIDQzMi43IDEyNS43LTMxLjJzLTU0LTM2NS41LTU0LjQtMzY3Ljl6TTI4OC45IDcwLjVjLTEuOS02LjEtNC4zLTExLjktNy4yLTE3LjYtMTAuNC0yMC0yNi0zMC45LTQ0LjQtMzAuOS0xLjMgMC0yLjcgLjEtNCAuNC0uNC0uOC0xLjItMS4yLTEuNi0yLTgtOC44LTE4LjQtMTIuOC0zMC44LTEyLjQtMjQgLjgtNDggMTgtNjcuMiA0OC44LTEzLjYgMjEuNi0yNCA0OC44LTI2LjggNzAuMS0yNy42IDguNC00Ni44IDE0LjQtNDcuMiAxNC44LTE0IDQuNC0xNC40IDQuOC0xNiAxOC0xLjIgMTAtMzggMjkxLjgtMzggMjkxLjhsMzAyLjYgNTIuNSAwLTQzOC4zYy0xLjUgLjEtMi45IC4yLTQuNCAuNCAwIDAtNS42IDEuNi0xNC44IDQuNHpNMjMzLjYgODcuN2MtMTYgNC44LTMzLjYgMTAuNC01MC44IDE1LjYgNC44LTE4LjggMTQuNC0zNy42IDI1LjYtNTAgNC40LTQuNCAxMC40LTkuNiAxNy4yLTEyLjggNi44IDE0LjQgOC40IDM0IDggNDcuMnpNMjAwLjggMjQuNGM1LS4yIDEwIDEuMSAxNC40IDMuNi02LjQgMy4yLTEyLjggOC40LTE4LjggMTQuNC0xNS4yIDE2LjQtMjYuOCA0Mi0zMS42IDY2LjUtMTQuNCA0LjQtMjguOCA4LjgtNDIgMTIuOCA4LjgtMzguNCA0MS4yLTk2LjQgNzgtOTcuMnpNMTU0LjQgMjQ0LjZjMS42IDI1LjYgNjkuMiAzMS4yIDczLjIgOTEuNyAyLjggNDcuNi0yNS4yIDgwLjEtNjUuNiA4Mi41LTQ4LjggMy4yLTc1LjYtMjUuNi03NS42LTI1LjZsMTAuNC00NHMyNi44IDIwLjQgNDguNCAxOC44YzE0LS44IDE5LjItMTIuNCAxOC44LTIwLjQtMi0zMy42LTU3LjItMzEuNi02MC44LTg2LjktMy4yLTQ2LjQgMjcuMi05My4zIDk0LjUtOTcuNyAyNi0xLjYgMzkuMiA0LjggMzkuMiA0LjhsLTE1LjIgNTcuNnMtMTcuMi04LTM3LjYtNi40Yy0yOS42IDItMzAgMjAuOC0yOS42IDI1LjZ6TTI0OS42IDgyLjljMC0xMi0xLjYtMjkuMi03LjItNDMuNiAxOC40IDMuNiAyNy4yIDI0IDMxLjIgMzYuNC03LjIgMi0xNS4yIDQuNC0yNCA3LjJ6Il19LEthZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtcmVkZGl0IixpY29uOls0NDgsNTEyLFsicmVkZGl0LXNxdWFyZSJdLCJmMWEyIiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnpNMzA1LjkgMTY2LjRjMjAuNiAwIDM3LjMtMTYuNyAzNy4zLTM3LjNzLTE2LjctMzcuMy0zNy4zLTM3LjNjLTE4IDAtMzMuMSAxMi44LTM2LjYgMjkuOC0zMC4yIDMuMi01My44IDI4LjgtNTMuOCA1OS45bDAgLjJjLTMyLjggMS40LTYyLjggMTAuNy04Ni42IDI1LjUtOC44LTYuOC0xOS45LTEwLjktMzItMTAuOS0yOC45IDAtNTIuMyAyMy40LTUyLjMgNTIuMyAwIDIxIDEyLjMgMzkgMzAuMSA0Ny40IDEuNyA2MC43IDY3LjkgMTA5LjYgMTQ5LjMgMTA5LjZzMTQ3LjYtNDguOSAxNDkuMy0xMDkuN2MxNy43LTguNCAyOS45LTI2LjQgMjkuOS00Ny4zIDAtMjguOS0yMy40LTUyLjMtNTIuMy01Mi4zLTEyIDAtMjMgNC0zMS45IDEwLjgtMjQtMTQuOS01NC4zLTI0LjItODcuNS0yNS40bDAtLjFjMC0yMi4yIDE2LjUtNDAuNyAzNy45LTQzLjcgMy45IDE2LjUgMTguNyAyOC43IDM2LjMgMjguN2wuMi0uMnpNMTU1IDI0OC4xYzE0LjYgMCAyNS44IDE1LjQgMjUgMzQuNHMtMTEuOCAyNS45LTI2LjUgMjUuOS0yNy41LTcuNy0yNi42LTI2LjcgMTMuNS0zMy41IDI4LjEtMzMuNWwwLS4xem0xNjYuNCAzMy41Yy45IDE5LTEyIDI2LjctMjYuNiAyNi43cy0yNS42LTYuOS0yNi41LTI1LjkgMTAuMy0zNC40IDI1LTM0LjQgMjcuMyAxNC42IDI4LjEgMzMuNWwwIC4xem0tNDIuMSA0OS42Yy05IDIxLjUtMzAuMyAzNi43LTU1LjEgMzYuN3MtNDYuMS0xNS4xLTU1LjEtMzYuN2MtMS4xLTIuNiAuNy01LjQgMy40LTUuNyAxNi4xLTEuNiAzMy41LTIuNSA1MS43LTIuNXMzNS42IC45IDUxLjcgMi41YzIuNyAuMyA0LjUgMy4xIDMuNCA1Ljd6Il19LFcydD1LYWUsRzJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtbmMiLGljb246WzUxMiw1MTIsW10sImY0ZTgiLCJNMjU1LjYgOEMzOTUuNCA4IDUwNCAxMTUuOSA1MDQgMjU2IDUwNCA0MDMuMiAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS4xIDUwNCA4IDM5My4yIDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4ek02My44IDE4OS4xYy03LjQgMjAuNC0xMS4xIDQyLjctMTEuMSA2Ni45IDAgMTEwLjkgOTIuMSAyMDIuNCAyMDMuNyAyMDIuNCAxMjIuNCAwIDE3Ny4yLTEwMS44IDE3OC41LTEwNC4xbC05My40LTQxLjZjLTcuNyAzNy4xLTQxLjIgNTMtNjguMiA1NS40bDAgMzguMS0yOC44IDAgMC0zOC4yYy0yNy41LS4zLTUyLjYtMTAuMi03NS4zLTI5LjdsMzQuMS0zNC41YzMxLjcgMjkuNCA4Ni40IDMxLjggODYuNC0yLjIgMC02LjItMi4yLTExLjItNi42LTE1LjEtMTQuMi02LTEuOC0uMS0yMTkuMy05Ny40ek0yNTYuNCA1Mi4zQzIxOCA1Mi4zIDE0NCA2MSA4NS45IDE0NS4zbDk0LjggNDIuNWMxMC0zMS4zIDQwLjQtNDIuOSA2My44LTQ0LjNsMC0zOC4xIDI4LjggMCAwIDM4LjFjMjIuNyAxLjIgNDMuNCA4LjkgNjIgMjNMMzAzIDE5OS43Yy00Mi43LTI5LjktODMuNS04LTcwIDExLjEgNTMuNCAyNC4xIDQzLjggMTkuOCA5MyA0MS42bDEyNy4xIDU2LjdjNC4xLTE3LjQgNi4yLTM1LjEgNi4yLTUzLjEgMC01Ny0xOS44LTEwNS01OS4zLTE0My45LTM5LjMtMzkuOS04Ny4yLTU5LjgtMTQzLjYtNTkuOHoiXX0sWTJ0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdhbGFjdGljLXJlcHVibGljIixpY29uOls1MTIsNTEyLFtdLCJmNTBjIiwiTTI1NiA4YTI0OCAyNDggMCAxIDEgMCA0OTYgMjQ4IDI0OCAwIDEgMSAwLTQ5NnptMCAxNi41YTIzMS41IDIzMS41IDAgMSAwIDAgNDYyLjkgMjMxLjUgMjMxLjUgMCAxIDAgMC00NjIuOXptMjcuNiAyMS44bDAgMjQuNmMzMC4zIDQuNSA1OSAxNi4zIDgzLjYgMzQuNWwxNy40LTE3LjRjLTI4LjctMjIuMS02My4zLTM2LjktMTAxLTQxLjh6bS01NS40IC4xYy0zNy42IDQuOS03Mi4yIDE5LjgtMTAwLjkgNDEuOWwxNy4zIDE3LjQgLjEgMGMyNC4xLTE3LjggNTIuNi0zMC4xIDgzLjUtMzQuN2wwLTI0LjV6bTEyLjIgNTAuMmwwIDgyLjljLTEwIDItMTkuNCA1LjktMjcuNyAxMS40bC01OC42LTU4LjYtMjEuOSAyMS45IDU4LjcgNTguN2MtNS41IDguMi05LjQgMTcuNi0xMS41IDI3LjZsLTgyLjkgMCAwIDMxIDgyLjkgMGMyIDEwIDYgMTkuMyAxMS41IDI3LjVsLTU4LjcgNTguNyAyMS45IDIxLjkgNTguNi01OC42YzguNCA1LjYgMTcuOCA5LjUgMjcuNyAxMS41bDAgODIuOSAzMSAwIDAtODIuOWMxMC0yIDE5LjQtNi4xIDI3LjYtMTEuNWw1OC43IDU4LjcgMjEuOS0yMS45LTU4LjctNTguN2M1LjUtOC4yIDkuNS0xNy41IDExLjUtMjcuNWw4Mi45IDAgMC0zMS04Mi45IDBjLTItMTAtNi0xOS40LTExLjUtMjcuNmw1OC43LTU4LjctMjEuOS0yMS45LTU4LjcgNTguN2MtOC4yLTUuNS0xNy42LTkuNS0yNy42LTExLjVsMC04Mi45LTMxIDB6bTE4My4yIDMwLjdsLTE3LjQgMTcuNGMxOC4zIDI0LjYgMzAuMiA1My40IDM0LjcgODMuN2wyNC42IDBjLTUtMzcuNy0xOS44LTcyLjMtNDEuOS0xMDF6bS0zMzUuNiAuMWMtMjIuMSAyOC43LTM2LjkgNjMuMy00MS44IDEwMC45bDI0LjYgMGM0LjYtMzEgMTYuOC01OS40IDM0LjYtODMuNUw4OC4yIDEyNy40ek00Ni4zIDI4My43YzQuOSAzNy42IDE5LjcgNzIuMiA0MS44IDEwMC45bDE3LjQtMTcuNEM4Ny43IDM0My4xIDc1LjYgMzE0LjYgNzEgMjgzLjdsLTI0LjYgMCAwIDB6bTM5NC43IDBjLTQuNiAzMS0xNi44IDU5LjUtMzQuNyA4My42bDE3LjQgMTcuNGMyMi4xLTI4LjcgMzctNjMuMyA0MS45LTEwMWwtMjQuNiAwek0xNDQuNyA0MDYuNGwtMTcuNCAxNy40YzI4LjcgMjIuMSA2My4zIDM3IDEwMSA0MS45bDAtMjQuNmMtMzEtNC42LTU5LjUtMTYuOC04My42LTM0LjZ6bTIyMi41IDBjLTI0LjEgMTcuOC01Mi42IDMwLjEtODMuNiAzNC43bDAgMjQuNmMzNy43LTQuOSA3Mi4yLTE5LjggMTAxLTQxLjhsLTE3LjMtMTcuNC0uMSAweiJdfSxOQT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYWNlYm9vayIsaWNvbjpbNTEyLDUxMixbNjJlM10sImYwOWEiLCJNNTEyIDI1NkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2QzAgMzc2IDgyLjcgNDc2LjggMTk0LjIgNTA0LjVsMC0xNzAuMy01Mi44IDAgMC03OC4yIDUyLjggMCAwLTMzLjdjMC04Ny4xIDM5LjQtMTI3LjUgMTI1LTEyNy41IDE2LjIgMCA0NC4yIDMuMiA1NS43IDYuNGwwIDcwLjhjLTYtLjYtMTYuNS0xLTI5LjYtMS00MiAwLTU4LjIgMTUuOS01OC4yIDU3LjJsMCAyNy44IDgzLjYgMC0xNC40IDc4LjItNjkuMyAwIDAgMTc1LjlDNDEzLjggNDk0LjggNTEyIDM4Ni45IDUxMiAyNTZ6Il19LFoydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXRsYWIiLGljb246WzUxMiw1MTIsW10sImYyOTYiLCJNNTA0IDIwNC42bC0uNy0xLjgtNjkuNy0xODEuOGMtMS40LTMuNi0zLjktNi42LTcuMi04LjYtMi40LTEuNi01LjEtMi41LTgtMi44cy01LjcgLjEtOC40IDEuMS01LjEgMi43LTcuMSA0LjhjLTEuOSAyLjEtMy4zIDQuNy00LjEgNy40bC00NyAxNDQtMTkwLjUgMC00Ny4xLTE0NGMtLjgtMi44LTIuMi01LjMtNC4xLTcuNC0yLTIuMS00LjQtMy43LTcuMS00LjgtMi42LTEtNS41LTEuNC04LjQtMS4xcy01LjYgMS4yLTggMi44Yy0zLjIgMi01LjggNS4xLTcuMiA4LjZMOS44IDIwMi44IDkgMjA0LjZjLTEwIDI2LjItMTEuMyA1NS0zLjUgODIgNy43IDI2LjkgMjQgNTAuNyA0Ni40IDY3LjZsLjMgLjIgLjYgLjQgMTA2IDc5LjVjMzguNSAyOS4xIDY2LjcgNTAuMyA4NC42IDYzLjkgMy43IDEuOSA4LjMgNC4zIDEzIDQuM3M5LjMtMi40IDEzLTQuM2MxNy45LTEzLjUgNDYuMS0zNC45IDg0LjYtNjMuOWwxMDYuNy03OS45IC4zLS4zYzIyLjQtMTYuOSAzOC43LTQwLjYgNDUuNi02Ny41IDguNi0yNyA3LjQtNTUuOC0yLjYtODJ6Il19LFgydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJxcSIsaWNvbjpbNDQ4LDUxMixbXSwiZjFkNiIsIk00MzQuMSA0MjAuNGMtMTEuNSAxLjQtNDQuOS01Mi43LTQ0LjktNTIuNyAwIDMxLjMtMTYuMSA3Mi4yLTUxIDEwMS44IDE2LjggNS4yIDU0LjggMTkuMiA0NS44IDM0LjQtNy4zIDEyLjMtMTI1LjUgNy45LTE1OS42IDQtMzQuMSAzLjgtMTUyLjMgOC4zLTE1OS42LTQtOS0xNS4yIDI4LjktMjkuMiA0NS44LTM0LjQtMzQuOS0yOS41LTUxLjEtNzAuNC01MS4xLTEwMS44IDAgMC0zMy4zIDU0LjEtNDQuOSA1Mi43LTUuNC0uNi0xMi40LTI5LjYgOS4zLTk5LjcgMTAuMy0zMyAyMi02MC41IDQwLjEtMTA1LjgtMy4xLTExNi45IDQ1LjItMjE1IDE2MC4zLTIxNSAxMTMuNyAwIDE2My4yIDk2LjEgMTYwLjMgMjE1IDE4LjEgNDUuMiAyOS45IDcyLjkgNDAuMSAxMDUuOCAyMS44IDcwLjEgMTQuNyA5OS4xIDkuMyA5OS43eiJdfSxRMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RyaXBlIixpY29uOls2NDAsNTEyLFtdLCJmNDI5IiwiTTE2NSAxNDQuN2wtNDMuMyA5LjItLjIgMTQyLjRjMCAyNi4zIDE5LjggNDMuMyA0Ni4xIDQzLjMgMTQuNiAwIDI1LjMtMi43IDMxLjItNS45bDAtMzMuOGMtNS43IDIuMy0zMy43IDEwLjUtMzMuNy0xNS43bDAtNjMuMiAzMy43IDAgMC0zNy44LTMzLjcgMC0uMS0zOC41em04OS4xIDUxLjZsLTIuNy0xMy4xLTM4LjQgMCAwIDE1My4yIDQ0LjMgMCAwLTEwMy4xYzEwLjUtMTMuOCAyOC4yLTExLjEgMzMuOS05LjNsMC00MC44Yy02LTIuMS0yNi43LTYtMzcuMSAxMy4xek0zNDYuNCAxMjRsLTQ0LjYgOS41IDAgMzYuMiA0NC42LTkuNSAwLTM2LjJ6TTQ0LjkgMjI4LjNjMC02LjkgNS44LTkuNiAxNS4xLTkuNyAxMy41IDAgMzAuNyA0LjEgNDQuMiAxMS40bDAtNDEuOGMtMTQuNy01LjgtMjkuNC04LjEtNDQuMS04LjEtMzYgMC02MCAxOC44LTYwIDUwLjIgMCA0OS4yIDY3LjUgNDEuMiA2Ny41IDYyLjQgMCA4LjItNy4xIDEwLjktMTcgMTAuOS0xNC43IDAtMzMuNy02LjEtNDguNi0xNC4ybDAgNDBjMTYuNSA3LjEgMzMuMiAxMC4xIDQ4LjUgMTAuMSAzNi45IDAgNjIuMy0xNS44IDYyLjMtNDcuOCAwLTUyLjktNjcuOS00My40LTY3LjktNjMuNHpNNjQwIDI2MS42YzAtNDUuNS0yMi04MS40LTY0LjItODEuNHMtNjcuOSAzNS45LTY3LjkgODEuMWMwIDUzLjUgMzAuMyA3OC4yIDczLjUgNzguMiAyMS4yIDAgMzcuMS00LjggNDkuMi0xMS41bDAtMzMuNGMtMTIuMSA2LjEtMjYgOS44LTQzLjYgOS44LTE3LjMgMC0zMi41LTYuMS0zNC41LTI2LjlsODYuOSAwYy4yLTIuMyAuNi0xMS42IC42LTE1Ljl6bS04Ny45LTE2LjhjMC0yMCAxMi4zLTI4LjQgMjMuNC0yOC40IDEwLjkgMCAyMi41IDguNCAyMi41IDI4LjRsLTQ1LjkgMHpNNDM5LjIgMTgwLjJjLTE3LjQgMC0yOC42IDguMi0zNC44IDEzLjlsLTIuMy0xMS0zOS4xIDAgMCAyMDQuOCA0NC40LTkuNCAuMS01MC4yYzYuNCA0LjcgMTUuOSAxMS4yIDMxLjQgMTEuMiAzMS44IDAgNjAuOC0yMy4yIDYwLjgtNzkuNiAuMS01MS42LTI5LjMtNzkuNy02MC41LTc5Ljd6TTQyOC42IDMwMi43Yy0xMC40IDAtMTYuNi0zLjgtMjAuOS04LjRsLS4zLTY2YzQuNi01LjEgMTEtOC44IDIxLjItOC44IDE2LjIgMCAyNy40IDE4LjIgMjcuNCA0MS40IC4xIDIzLjktMTAuOSA0MS44LTI3LjQgNDEuOHpNMzAxLjkgMzM2LjRsNDQuNiAwIDAtMTUzLjItNDQuNiAwIDAgMTUzLjJ6Il19LEoydD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkYWlseW1vdGlvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTA1MiIsIk0yOTguOSAyNjdjLTcuNC00LjItMTUuOC02LjMtMjQuNC02LjItMTMuMiAwLTI0LjQgNC40LTMzLjQgMTMuM3MtMTMuNiAyMC0xMy42IDMzLjRjMCAxNC4xIDQuNCAyNS42IDEzLjMgMzQuNnMyMCAxMy40IDMzLjQgMTMuNGMxMy43IDAgMjUtNC42IDM0LjEtMTMuOFMzMjIgMzIxLjEgMzIyIDMwNy41YzAtOC4yLTIuMS0xNi4zLTYuMS0yMy41LTQtNy4xLTkuOC0xMy0xNy0xN3pNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMzc0LjcgNDA1LjNsLTUzLjEgMCAwLTIzLjktLjcgMGMtMTAuNSAxNy41LTI5LjEgMjYuMi01NS44IDI2LjItMTguNCAwLTM0LjctNC40LTQ4LjktMTMuMS0xNC4xLTguNi0yNS41LTIxLTMyLjktMzUuOC03LjctMTUuMS0xMS42LTMyLjEtMTEuNi01MC45IDAtMTguNCAzLjktMzUuMSAxMS44LTUwLjIgNy41LTE0LjcgMTguOS0yNy4xIDMyLjktMzUuOCAxNC4xLTguNyAzMC0xMy4xIDQ3LjctMTMuMSAxMC4yLS4xIDIwLjIgMS42IDI5LjcgNS4yIDguOSAzLjUgMTcuMiA5LjEgMjUgMTdsMC03Ny45IDU1LjgtMTIuMSAwIDI2NC40eiJdfSxLMnQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RlYW0iLGljb246WzUxMiw1MTIsW10sImYxYjYiLCJNNTA0IDI1NmMwIDEzNy0xMTEuMiAyNDgtMjQ4LjQgMjQ4LTExMy44IDAtMjA5LjYtNzYuMy0yMzktMTgwLjRsOTUuMiAzOS4zYzYuNCAzMi4xIDM0LjkgNTYuNCA2OC45IDU2LjQgMzkuMiAwIDcxLjktMzIuNCA3MC4yLTczLjVsODQuNS02MC4yYzUyLjEgMS4zIDk1LjgtNDAuOSA5NS44LTkzLjUgMC01MS42LTQyLTkzLjUtOTMuNy05My41cy05My43IDQyLTkzLjcgOTMuNWwwIDEuMi01OS4yIDg1LjdjLTE1LjUtLjktMzAuNyAzLjQtNDMuNSAxMi4xTDggMjM2LjFDMTguMiAxMDguNCAxMjUuMSA4IDI1NS42IDggMzkyLjggOCA1MDQgMTE5IDUwNCAyNTZ6TTE2My43IDM4NC4zbC0zMC41LTEyLjZjNS42IDExLjYgMTUuMyAyMC44IDI3LjIgMjUuOCAyNi45IDExLjIgNTcuOC0xLjYgNjktMjguNCA1LjQtMTMgNS41LTI3LjMgLjEtNDAuM1MyMTQgMzA1LjYgMjAxIDMwMC4yYy0xMi45LTUuNC0yNi43LTUuMi0zOC45LS42bDMxLjUgMTNjMTkuOCA4LjIgMjkuMiAzMC45IDIwLjkgNTAuNy04LjMgMTkuOS0zMSAyOS4yLTUwLjggMjF6TTMzNy41IDEyOS44YTYyLjMgNjIuMyAwIDEgMSAwIDEyNC42IDYyLjMgNjIuMyAwIDEgMSAwLTEyNC42em0uMSAxMDlhNDYuOCA0Ni44IDAgMSAwIDAtOTMuNiA0Ni44IDQ2LjggMCAxIDAgMCA5My42eiJdfSxlc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmVubW8tdiIsaWNvbjpbNTEyLDUxMixbXSwiZTg1YiIsIk00NjYuNSAxNC44YzE3LjQgMjguNyAyNS4zIDU4LjIgMjUuMyA5NS41IDAgMTE5LTEwMS45IDI3My41LTE4NC43IDM4Mi4xbC0xODguOSAwLTc1LjgtNDUxLjUgMTY1LjQtMTUuNyA0MC4xIDMyMS4zYzM3LjQtNjAuOCA4My42LTE1Ni4zIDgzLjYtMjIxLjQgMC0zNS42LTYuMS01OS45LTE1LjctNzkuOUw0NjYuNSAxNC44eiJdfSxlbmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic25hcGNoYXQiLGljb246WzUxMiw1MTIsWzYyMTI0LCJzbmFwY2hhdC1naG9zdCJdLCJmMmFiIiwiTTQ5Ny4xIDM2Ni42Yy0zLjQtOS4yLTkuOC0xNC4xLTE3LjEtMTguMi0xLjQtLjgtMi42LTEuNS0zLjctMS45LTIuMi0xLjEtNC40LTIuMi02LjYtMy40LTIyLjgtMTIuMS00MC42LTI3LjMtNTMtNDUuNC0zLjUtNS4xLTYuNi0xMC41LTkuMS0xNi4xLTEuMS0zLTEtNC43LS4yLTYuMyAuOC0xLjIgMS43LTIuMiAyLjktMyAzLjktMi42IDgtNS4yIDEwLjctNyA0LjktMy4yIDguOC01LjcgMTEuMi03LjQgOS40LTYuNSAxNS45LTEzLjUgMjAtMjEuMyAyLjktNS40IDQuNS0xMS4zIDQuOS0xNy40cy0uNi0xMi4yLTIuOC0xNy44Yy02LjItMTYuMy0yMS42LTI2LjQtNDAuMy0yNi40LTMuOSAwLTcuOSAuNC0xMS43IDEuMi0xIC4yLTIuMSAuNS0zLjEgLjcgLjItMTEuMi0uMS0yMi45LTEuMS0zNC41LTMuNS00MC44LTE3LjgtNjIuMS0zMi43LTc5LjItOS41LTEwLjctMjAuNy0xOS43LTMzLjItMjYuNy0yMi42LTEyLjktNDguMi0xOS40LTc2LjEtMTkuNHMtNTMuNCA2LjUtNzYgMTkuNGMtMTIuNSA3LTIzLjcgMTYuMS0zMy4zIDI2LjgtMTQuOSAxNy0yOS4yIDM4LjQtMzIuNyA3OS4yLTEgMTEuNi0xLjIgMjMuNC0xLjEgMzQuNS0xLS4zLTItLjUtMy4xLS43LTMuOS0uOC03LjgtMS4yLTExLjctMS4yLTE4LjcgMC0zNC4xIDEwLjEtNDAuMyAyNi40LTIuMiA1LjctMy4yIDExLjgtMi44IDE3LjhzMiAxMiA0LjkgMTcuNGM0LjEgNy44IDEwLjcgMTQuNyAyMCAyMS4zIDIuNSAxLjcgNi40IDQuMiAxMS4yIDcuNCAyLjYgMS43IDYuNSA0LjIgMTAuMyA2LjcgMS4zIC45IDIuNCAyIDMuMyAzLjMgLjggMS42IC44IDMuNC0uNCA2LjYtMi41IDUuNS01LjUgMTAuOC04LjkgMTUuOC0xMi4xIDE3LjctMjkuNCAzMi42LTUxLjQgNDQuNi0xMS43IDYuMi0yMy45IDEwLjMtMjkgMjQuMy0zLjkgMTAuNS0xLjMgMjIuNSA4LjUgMzIuNiAzLjYgMy44IDcuOCA2LjkgMTIuNCA5LjQgOS42IDUuMyAxOS44IDkuMyAzMC4zIDEyLjEgMi4yIC42IDQuMyAxLjUgNi4xIDIuNyAzLjYgMy4xIDMuMSA3LjkgNy44IDE0LjggMi40IDMuNiA1LjQgNi43IDkgOS4xIDEwIDYuOSAyMS4zIDcuNCAzMy4yIDcuOCAxMC44IC40IDIzIC45IDM2LjkgNS41IDUuOCAxLjkgMTEuOCA1LjYgMTguNyA5LjkgMTYuNyAxMC4zIDM5LjYgMjQuMyA3Ny44IDI0LjNzNjEuMy0xNC4xIDc4LjEtMjQuNGM2LjktNC4yIDEyLjktNy45IDE4LjUtOS44IDEzLjktNC42IDI2LjItNS4xIDM2LjktNS41IDExLjktLjUgMjMuMi0uOSAzMy4yLTcuOCA0LjItMi45IDcuNy02LjcgMTAuMi0xMS4yIDMuNC01LjggMy40LTkuOSA2LjYtMTIuOCAxLjgtMS4yIDMuNy0yLjEgNS44LTIuNiAxMC43LTIuOCAyMS02LjkgMzAuOC0xMi4yIDQuOS0yLjYgOS4zLTYuMSAxMy0xMC4ybC4xLS4yYzkuMi05LjkgMTEuNS0yMS41IDcuOC0zMS44em0tMzQgMTguM2MtMjAuNyAxMS41LTM0LjUgMTAuMi00NS4zIDE3LjEtOS4xIDUuOS0zLjcgMTguNS0xMC4zIDIzLjEtOC4xIDUuNi0zMi4yLS40LTYzLjIgOS45LTI1LjYgOC41LTQyIDMyLjgtODggMzIuOHMtNjItMjQuMy04OC4xLTMyLjljLTMxLTEwLjMtNTUuMS00LjItNjMuMi05LjktNi42LTQuNi0xLjItMTcuMi0xMC4zLTIzLjEtMTAuNy02LjktMjQuNS01LjctNDUuMy0xNy4xLTEzLjItNy4zLTUuNy0xMS44LTEuMy0xMy45IDc1LjEtMzYuNCA4Ny4xLTkyLjYgODcuNy05Ni43IC42LTUgMS40LTktNC4yLTE0LjEtNS40LTUtMjkuMi0xOS43LTM1LjgtMjQuMy0xMC45LTcuNi0xNS43LTE1LjMtMTIuMi0yNC42IDIuNS02LjUgOC41LTguOSAxNC45LTguOSAyIDAgNCAuMiA2IC43IDEyIDIuNiAyMy43IDguNiAzMC40IDEwLjIgLjggLjIgMS42IC4zIDIuNSAuMyAzLjYgMCA0LjktMS44IDQuNi01LjktLjgtMTMuMS0yLjYtMzguNy0uNi02Mi42IDIuOC0zMi45IDEzLjQtNDkuMiAyNi02My42IDYuMS02LjkgMzQuNS0zNyA4OC45LTM3UzMzOSA3NC4yIDM0NSA4MS4xYzEyLjYgMTQuNCAyMy4yIDMwLjcgMjYgNjMuNiAyLjEgMjMuOSAuMyA0OS41LS42IDYyLjYtLjMgNC4zIDEgNS45IDQuNiA1LjkgLjggMCAxLjctLjEgMi41LS4zIDYuNy0xLjYgMTguNC03LjYgMzAuNC0xMC4yIDItLjQgNC0uNyA2LS43IDYuNCAwIDEyLjQgMi41IDE0LjkgOC45IDMuNSA5LjQtMS4yIDE3LTEyLjIgMjQuNi02LjYgNC42LTMwLjQgMTkuMy0zNS44IDI0LjMtNS42IDUuMS00LjggOS4xLTQuMiAxNC4yIC41IDQuMiAxMi41IDYwLjQgODcuNyA5Ni43IDQuNCAyLjIgMTEuOSA2LjctMS4zIDE0LjF6Il19LHRzdD1lbmUscnN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdhbGFjdGljLXNlbmF0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjUwZCIsIk0yNDkuOSAzMy41bDAgMjYuMWMtMTMuNiAyMC42LTIzLjkgMTA4LjYtMjQuNSAyMTUuMyAxMS43LTE1LjYgMTkuMS0zMy4zIDE5LjEtNDguMmwwLTE2LjljMC01LjMgLjgtMTAuNSAyLjItMTUuNiAuNi0yLjEgMS40LTQuMSAyLjYtNS44czMuNC0zLjggNi43LTMuOCA1LjQgMi4xIDYuNyAzLjhjMS4yIDEuOCAyIDMuNyAyLjYgNS44IDEuNCA1LjEgMi4yIDEwLjMgMi4yIDE1LjZsMCAxNi45YzAgMTQuOSA3LjQgMzIuNiAxOS4xIDQ4LjItLjYtMTA2LjgtMTAuOS0xOTQuNy0yNC41LTIxNS4zbDAtMjYuMS0xMi4zIDB6TTIyMy41IDE4MS4zYy05LjUgMi4xLTE4LjcgNS4yLTI3LjUgOS4xIDguOSAxNi4xIDkuOCAzMi42IDEuNyAzNy4zLTggNC42LTIxLjgtNC4yLTMxLjQtMTkuOC0xMS42IDguOC0yMS45IDE5LjMtMzAuNiAzMS4xIDE0LjcgOS42IDIyLjkgMjIuOSAxOC4zIDMwLjctNC41IDcuNy0yMCA3LjEtMzUuNS0xLTUuOCAxMy4yLTkuNyAyNy41LTExLjYgNDIuNCA5LjcgLjIgMTguNyAyLjQgMjYuMiA2IDE3LjgtLjMgMzIuOC0yIDQwLjUtNC4yIDUuNi0yNi40IDIzLTQ4LjIgNDYuMy01OS41IC43LTI1LjYgMS45LTQ5LjcgMy41LTcyLjF6bTY1IDBjMS42IDIyLjQgMi43IDQ2LjUgMy41IDcyLjEgMjMuMyAxMS4zIDQwLjggMzMuMiA0Ni4zIDU5LjUgNy43IDIuMyAyMi43IDMuOSA0MC41IDQuMiA3LjUtMy43IDE2LjUtNS44IDI2LjItNi0xLjktMTQuOS01LjktMjkuMi0xMS43LTQyLjQtMTUuNCA4LjEtMzAuOSA4LjctMzUuNSAxLTQuNi03LjcgMy42LTIxLjEgMTguMy0zMC43LTguNy0xMS44LTE5LTIyLjMtMzAuNi0zMS4xLTkuNSAxNS42LTIzLjQgMjQuNC0zMS40IDE5LjgtOC4xLTQuNi03LjItMjEuMiAxLjctMzcuMy04LjgtMy45LTE4LTctMjcuNC05LjF6TTI1NiAxODkuOWMtMy4yIDAtNS45IDguOC02LjEgMTkuOWwwIDAgMCAxNi45YzAgNDEuNC00OSA5NS05My41IDk1LTUyIDAtMTIyLjgtMS40LTE1Ni40IDI5LjJsMCAyLjVjOS40IDE3LjEgMjAuNiAzMy4yIDMzLjIgNDggMTIuNS0yMS4xIDUxLjYtNDEgMTA4LTQxLjQgNDUuNyAxIDc5IDIwLjMgOTAuOCA0MC45IDAgMCAwIDAgMCAuMSA3LjcgMi4xIDE1LjggMy4yIDI0IDMuMiA4LjIgMCAxNi40LTEuMSAyNC0zLjIgMCAwIDAgMCAwLS4xIDExLjctMjAuNSA0NS4xLTM5LjggOTAuOC00MC45IDU2LjQgLjQgOTUuNSAyMC4zIDEwOCA0MS40IDEyLjYtMTQuOCAyMy44LTMwLjkgMzMuMi00OGwwLTIuNWMtMzMuNi0zMC42LTEwNC40LTI5LjItMTU2LjQtMjkuMi00NC41IDAtOTMuNS01My42LTkzLjUtOTVsMC0xNi45LS4xIDBjLS4yLTExLjEtMi45LTE5LjktNi4xLTE5Ljl6bTAgMTc3LjlhNDAuNiA0MC42IDAgMSAxIDAtODEuMyA0MC42IDQwLjYgMCAxIDEgMCA4MS4zem0wLTczLjZhMzMgMzMgMCAxIDAgMCA2NS45IDMzIDMzIDAgMSAwIDAtNjUuOXptMCA1OS44YTI2LjggMjYuOCAwIDEgMSAwLTUzLjYgMjYuOCAyNi44IDAgMSAxIDAgNTMuNnptLTExNC44IDEzYy0xMC4yIC4xLTIxLjYgLjQtMzAuNSAxLjcgLjQgNC40IDEuNSAxOC42IDcuMSAyOS44IDkuMS0yLjYgMTguNC0zLjkgMjcuNi0zLjkgNDEuMyAuOSA3MS41IDM0LjQgNzguMyA3NC41bC4xIDQuN2MxMC40IDEuOSAyMS4yIDIuOSAzMi4yIDIuOSAxMSAwIDIxLjgtMSAzMi4yLTIuOWwuMS00LjdjNi44LTQwLjEgMzctNzMuNSA3OC4zLTc0LjUgOS4zIDAgMTguNSAxLjMgMjcuNiAzLjkgNS42LTExLjEgNi43LTI1LjMgNy4xLTI5LjgtOC45LTEuMy0yMC4zLTEuNi0zMC41LTEuNy0xOC44IC40LTM1LjIgNC4yLTQ4LjYgOS43LTEyLjUgMTYtMjkuMiAzMC00OS42IDMzLjEtLjEgMC0uMiAwLS4zIDAgMCAwLS4xIDAtLjIgLjEtNS4yIDEuMS0xMC42IDEuNi0xNi4yIDEuNi01LjUgMC0xMC45LS41LTE2LjItMS42LS4xIDAtLjEgMC0uMi0uMS0uMSAwLS4yIDAtLjMgMC0yMC40LTMtMzctMTctNDkuNi0zMy4xLTEzLjQtNS41LTI5LjktOS4yLTQ4LjYtOS43eiJdfSxpc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhvZW5peC1mcmFtZXdvcmsiLGljb246WzY0MCw1MTIsW10sImYzZGMiLCJNMjEyLjkgMzQ0LjNjMy44LS4xIDIyLjgtMS40IDI1LjYtMi4yLTIuNC0yLjYtNDMuNi0xLTY4LTQ5LjYtNC4zLTguNi03LjUtMTcuNi02LjQtMjcuNiAyLjktMjUuNSAzMi45LTMwIDUyLTE4LjUgMzYgMjEuNiA2My4zIDkxLjMgMTEzLjcgOTcuNSAzNyA0LjUgODQuNi0xNyAxMDguMi00NS40LS42LS4xLS44LS4yLTEtLjEtLjQgLjEtLjggLjItMS4xIC4zLTMzLjMgMTIuMS05NC4zIDkuNy0xMzQuNy0xNC44LTM3LjYtMjIuOC01My4xLTU4LjctNTEuOC03NC42IDEuOC0yMS4zIDIyLjktMjMuMiAzNS45LTE5LjYgMTQuNCAzLjkgMjQuNCAxNy42IDM4LjkgMjcuNCAxNS42IDEwLjQgMzIuOSAxMy43IDUxLjMgMTAuMyAxNC45LTIuNyAzNC40LTEyLjMgMzYuNS0xNC41LTEuMS0uMS0xLjgtLjEtMi41LS4yLTYuMi0uNi0xMi40LS44LTE4LjUtMS43LTExMS4yLTE2LjUtMTI4LjktMTYzLjYtMjUyLjUtMTczLjEtNDQuMy0zLjQtOTkuNCA4LjEtMTM2LjMgMzUtLjggLjYtMS41IDEuMi0yLjIgMS44IC4xIC4yIC4xIC4zIC4yIC41IC44IDAgMS42LS4xIDIuNC0uMiA2LjMtMSAxMi41LS44IDE4LjcgLjMgMjMuOCA0LjMgNDcuNyAyMy4xIDU1LjkgNzYuNSA1LjMgMzQuMy0uNyA1MC44IDggODYuMSAxOSA3Ny4xIDkxIDEwNy42IDEyNy43IDEwNi40ek03NS4zIDY0LjljLS45LTEtLjktMS4yLTEuMy0yIDEyLjEtMi42IDI0LjItNC4xIDM2LjYtNC44LTEuMSAxNC43LTIyLjIgMjEuMy0zNS4zIDYuOHpNMjcyLjIgNDE1LjRjLTQyLjggMS4yLTkyLTI2LjctMTIzLjUtNjEuNC00LjYtNS0xNi44LTIwLjItMTguNi0yMy40bC40LS40YzYuNiA0LjEgMjUuNyAxOC42IDU0LjggMjcgMjQuMiA3IDQ4LjEgNi4zIDcxLjYtMy4zIDIyLjctOS4zIDQxLS41IDQzLjEgMi45LTE4LjUgMy44LTIwLjEgNC40LTI0IDcuOS01LjEgNC40LTQuNiAxMS43IDcgMTcuMiAyNi4yIDEyLjQgNjMtMi44IDk3LjIgMjUuNCAyLjQgMiA4LjEgNy44IDEwLjEgMTAuNy0uMSAuMi0uMyAuMy0uNCAuNS00LjgtMS41LTE2LjQtNy41LTQwLjItOS4zLTI0LjctMi00Ni4zIDUuMy03Ny41IDYuMnpNNDQ3IDE2My40YzE2LjQtNS4yIDQxLjMtMTMuNCA2Ni41LTMuMyAxNi4xIDYuNSAyNi4yIDE4LjcgMzIuMSAzNC42IDMuNSA5LjQgNS4xIDE5LjcgNS4xIDI4LjctLjIgMC0uNCAwLS42IC4xLS4yLS40LS40LS45LS41LTEuMy01LTIyLTI5LjktNDMuOC02Ny42LTI5LjktNTAuMiAxOC42LTEzMC40IDkuNy0xNzYuOS00OC0uNy0uOS0yLjQtMS43LTEuMy0zLjIgLjEtLjIgMi4xIC42IDMgMS4zIDE4LjEgMTMuNCAzOC4zIDIxLjkgNjAuMyAyNi4yIDMwLjUgNi4xIDU0LjYgMi45IDc5LjktNS4yek01NDkuNyAyODAuOWMtMzIuNCAuMi0zMy44IDUwLjEtMTAzLjYgNjQuNC0xOC4yIDMuNy0zOC43IDQuNi00NC45IDQuMmwwLS40YzIuOC0xLjUgMTQuNy0yLjYgMjkuNy0xNi42IDcuOS03LjMgMTUuMy0xNS4xIDIyLjgtMjIuOSAxOS41LTIwLjIgNDEuNC00Mi4yIDgxLjktMzkgMjMuMSAxLjggMjkuMyA4LjIgMzYuMSAxMi43IC4zIC4yIC40IC41IC43IC45LS41IDAtLjcgLjEtLjkgMC03LTIuNy0xNC4zLTMuMy0yMS44LTMuM3ptLTEyLjMtMjQuMWMtLjEgLjItLjEgLjQtLjIgLjYtMjguOS00LjQtNDgtNy45LTY4LjUgNC0xNyA5LjktMzEuNCAyMC41LTYyIDI0LjQtMjcuMSAzLjQtNDUuMSAyLjQtNjYuMS04LS4zLS4yLS42LS40LTEtLjYgMC0uMiAuMS0uMyAuMS0uNSAyNC45IDMuOCAzNi40IDUuMSA1NS41LTUuOCAyMi4zLTEyLjkgNDAuMS0yNi42IDcxLjMtMzEgMjkuNi00LjEgNTEuMyAyLjUgNzAuOSAxNi45ek0yNjguNiA5Ny4zYy0uNi0uNi0xLjEtMS4yLTIuMS0yLjMgNy42IDAgMjkuNy0xLjIgNTMuNCA4LjQgMTkuNyA4IDMyLjIgMjEgNTAuMiAzMi45IDExLjEgNy4zIDIzLjQgOS4zIDM2LjQgOC4xIDQuMy0uNCA4LjUtMS4yIDEyLjgtMS43IC40LS4xIC45IDAgMS41IC4zLS42IC40LTEuMiAuOS0xLjggMS4yLTguMSA0LTE2LjcgNi4zLTI1LjYgNy4xLTI2LjEgMi42LTUwLjMtMy43LTczLjQtMTUuNC0xOS4zLTkuOS0zNi40LTIyLjktNTEuNC0zOC42ek02NDAgMzM1LjdjLTMuNSAzLjEtMjIuNyAxMS42LTQyLjcgNS4zLTEyLjMtMy45LTE5LjUtMTQuOS0zMS42LTI0LjEtMTAtNy42LTIwLjktNy45LTI4LjEtOC40IC42LS44IC45LTEuMiAxLjItMS40IDE0LjgtOS4yIDMwLjUtMTIuMiA0Ny4zLTYuNSAxMi41IDQuMiAxOS4yIDEzLjUgMzAuNCAyNC4yIDEwLjggMTAuNCAyMSA5LjkgMjMuMSAxMC41IC4xLS4xIC4yIDAgLjQgLjR6bS0yMTIuNSAxMzdjMi4yIDEuMiAxLjYgMS41IDEuNSAyLTE4LjUtMS40LTMzLjktNy42LTQ2LjgtMjIuMi0yMS44LTI0LjctNDEuNy0yNy45LTQ4LjYtMjkuNyAuNS0uMiAuOC0uNCAxLjEtLjQgMTMuMSAuMSAyNi4xIC43IDM4LjkgMy45IDI1LjMgNi40IDM1IDI1LjQgNDEuNiAzNS4zIDMuMiA0LjggNy4zIDguMyAxMi4zIDExLjF6Il19LGFzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXQiLGljb246WzUxMiw1MTIsW10sImYxZDMiLCJNMjE2LjMgMTU4LjRsLTc5LjMgMGMtNDAtMTAuNS0xMzAuNS03LjgtMTMwLjUgNzQuOCAwIDMwLjEgMTUgNTEuMiAzNSA2MS0yNS4xIDIzLTM3IDMzLjgtMzcgNDkuMiAwIDExIDQuNSAyMS4xIDE3LjkgMjYuOC0xNC4zIDEzLjQtMjIuNCAyMy4xLTIyLjQgNDEuNCAwIDMyLjEgMjggNTAuOCAxMDEuNiA1MC44IDcwLjggMCAxMTEuOC0yNi40IDExMS44LTczLjIgMC01OC43LTQ1LjItNTYuNS0xNTEuNi02M2wxMy40LTIxLjZjMjcuMyA3LjYgMTE4LjcgMTAgMTE4LjctNjcuOSAwLTE4LjctNy43LTMxLjctMTUtNDEuMWwzNy40LTIuOCAwLTM0LjV6TTE1Mi45IDQwMC4zYzAgMzIuMS0xMDQuOSAzMi4xLTEwNC45IDIuNCAwLTguMSA1LjMtMTUgMTAuNi0yMS41IDc3LjcgNS4zIDk0LjMgMy40IDk0LjMgMTkuMXpNMTAyLjEgMjY1LjdjLTUyLjggMC01MC41LTcxLjIgMS4yLTcxLjIgNDkuNSAwIDUwLjggNzEuMi0xLjIgNzEuMnpNMjM1LjQgMzY2LjJsMC0zMi4xYzI2LjctMy43IDI3LjItMiAyNy4yLTExbDAtMTE5LjVjMC04LjUtMi4xLTcuNC0yNy4yLTE2LjNsNC41LTMyLjkgODQuMiAwIDAgMTY4LjdjMCA2LjUgLjQgNy4zIDYuNSA4LjFsMjAuNyAyLjggMCAzMi4xLTExNS45IDB6bTUyLjUtMjQ0LjNjLTIzLjIgMC0zNi42LTEzLjQtMzYuNi0zNi42czEzLjQtMzUuOCAzNi42LTM1LjhjMjMuNiAwIDM3IDEyLjYgMzcgMzUuOHMtMTMuNCAzNi42LTM3IDM2LjZ6TTUxMiAzNTAuNWMtMTcuNSA4LjUtNDMuMSAxNi4zLTY2LjMgMTYuMy00OC40IDAtNjYuNy0xOS41LTY2LjctNjUuNWwwLTEwNi41YzAtNS40IDEtNC4xLTMxLjctNC4xbDAtMzYuMmMzNS44LTQuMSA1MC0yMiA1NC41LTY2LjNsMzguNiAwYzAgNjUuOC0xLjMgNjEuOCAzLjMgNjEuOGw1Ny4zIDAgMCA0MC42LTYwLjYgMCAwIDk3LjFjMCA2LjktNC45IDUxLjQgNjAuNiAyNi44bDExIDM1Ljh6Il19LG5zdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcHRpbi1tb25zdGVyIixpY29uOls1NzYsNTEyLFtdLCJmMjNjIiwiTTU3Mi44IDQyMS40YzUuNi05LjUgNC43LTE1LjItNS40LTExLjYtMy00LjktNy05LjUtMTEuMS0xMy44IDIuOS05LjctLjctMTQuMi0xMC44LTkuMi00LjYtMy4yLTEwLjMtNi41LTE1LjktOS4yIDAtMTUuMS0xMS42LTExLjYtMTcuNi01LjctMTAuNC0xLjUtMTguNy0uMy0yNi44IDUuNyAuMy02LjUgLjMtMTMgLjMtMTkuNyAxMi42IDAgNDAuMi0xMSA0NS45LTM2LjIgMS40LTYuOCAxLjYtMTMuOC0uMy0yMS45LTMtMTMuNS0xNC4zLTIxLjMtMjUuMS0yNS43LS44LTUuOS03LjYtMTQuMy0xNC45LTE1LjlzLTEyLjQgNC45LTE0LjEgMTAuM2MtOC41IDAtMTkuMiAyLjgtMjEuMSA4LjQtNS40LS41LTExLjEtMS40LTE2LjgtMS45IDIuNy0xLjkgNS40LTMuNSA4LjQtNC42IDUuNC05LjIgMTQuNi0xMS40IDI1LjctMTEuNmwwLTIuOGMxOS41LS41IDQzLTUuOSA1My44LTE4LjEgMTIuNy0xMy44IDE0LjYtMzcuMyAxMi40LTU1LjEtMi40LTE3LjMtOS43LTM3LjYtMjQuNi00OC4xLTguNC01LjktMjEuNi0uOC0yMi43IDkuNS0yLjIgMTkuNiAxLjIgMzAtMzguNiAyNS4xLTEwLjMtMjMuOC0yNC42LTQ0LjYtNDIuNy02MC02OS42LTU5LjctMTY3LjctNTMuOC0yNDQuMi0zNy42IDE5LjcgNC42IDQxLjEgOC42IDU5LjcgMTYuNS0yNi4yIDIuNC01Mi43IDExLjMtNzYuMiAyMy4yLTMyLjggMTctNDQgMjkuOS01Ni43IDQyLjQgMTQuOS0yLjIgMjguOS01LjEgNDMuOC0zLjgtOS43IDUuNC0xOC40IDEyLjItMjYuNSAyMC0yNS44IC45LTIzLjgtNS4zLTI2LjItMjUuOS0xLjEtMTAuNS0xNC4zLTE1LjQtMjIuNy05LjctMjguMSAxOS45LTMzLjUgNzkuOS0xMi4yIDEwMy41IDEwLjggMTIuMiAzNS4xIDE3LjMgNTQuOSAxNy44LS4zIDEuMS0uMyAxLjktLjMgMi43IDEwLjggLjUgMTkuNSAyLjcgMjQuNiAxMS42IDMgMS4xIDUuNyAyLjcgOC4xIDQuNi01LjQgLjUtMTEuMSAxLjQtMTYuNSAxLjktMy4zLTYuNi0xMy43LTguMS0yMS4xLTguMS0xLjYtNS43LTYuNS0xMi4yLTE0LjEtMTAuMy02LjggMS45LTE0LjEgMTAtMTQuOSAxNS45LTIyLjUgOS41LTMwLjEgMjYuOC0yNS4xIDQ3LjYgNS4zIDI0LjggMzMgMzYuMiA0NS45IDM2LjJsMCAxOS43Yy02LjYtNS0xNC4zLTcuNS0yNi44LTUuNy01LjUtNS41LTE3LjMtMTAuMS0xNy4zIDUuNy01LjkgMi43LTExLjQgNS45LTE1LjkgOS4yLTkuOC00LjktMTMuNi0xLjctMTEuMSA5LjItNC4xIDQuMy03LjggOC42LTExLjEgMTMuOC0xMC4yLTMuNy0xMSAyLjItNS40IDExLjYtMS4xIDMuNS0xLjYgNy0xLjkgMTAuOC0uNSAzMS42IDQ0LjYgNjQgNzMuNSA2NS4xIDE3LjMgLjUgMzQuNi04LjQgNDMtMjMuNSAxMTMuMiA0LjkgMjI2LjcgNC4xIDM0MC4yIDAgOC4xIDE1LjEgMjUuNCAyNC4zIDQyLjcgMjMuNSAyOS4yLTEuMSA3NC4zLTMzLjUgNzMuNS02NS4xIC4yLTMuNy0uNy03LjItMS43LTEwLjd6TTQ5OSAxNjcuNGMxLjEtMyAyLjQtOC40IDIuNC0xNC42IDAtNS45IDYuOC04LjEgMTQuMS0uOCAxMS4xIDExLjYgMTQuOSA0MC41IDEzLjggNTEuMS00LjEtMTMuNi0xMy0yOS0zMC4zLTM1Ljd6bS00LjYgNi43YzE5LjUgNi4yIDI4LjYgMjcuNiAyOS43IDQ4LjktMS4xIDIuNy0zIDUuNC00LjkgNy42LTUuNyA1LjktMTUuNCAxMC0yNi4yIDEyLjIgNC4zLTIxLjMgLjMtNDcuMy0xMi43LTYzIDQuOS0uOCAxMC45LTIuNCAxNC4xLTUuN3ptLTI0LjEgNi44YzEzLjggMTEuOSAyMCAzOS4yIDE0LjEgNjMuNS00LjEgLjUtOC4xIC44LTExLjYgLjgtMS45LTIxLjktNi44LTQ0LTE0LjMtNjQuNiAzLjcgLjMgOC4xIC4zIDExLjggLjN6TTQ3LjcgMjAzYy0xLjEtMTAuNSAyLjQtMzkuNSAxMy44LTUxLjEgNy03LjMgMTQuMS01LjEgMTQuMSAuOCAwIDYuMiAxLjQgMTEuNiAyLjQgMTQuNi0xNy4zIDYuOC0yNi4yIDIyLjItMzAuMyAzNS43em05LjcgMjcuNmMtMS45LTIuMi0zLjUtNC45LTQuOS03LjYgMS40LTIxLjMgMTAuMy00Mi43IDI5LjctNDguOSAzLjIgMy4yIDkuMiA0LjkgMTQuMSA1LjctMTMgMTUuNy0xNyA0MS42LTEyLjcgNjMtMTAuOC0yLjItMjAuNS02LTI2LjItMTIuMnptNDcuOSAxNC42Yy00LjEgMC04LjEtLjMtMTIuNy0uOC00LjYtMTguNi0xLjktMzguOSA1LjQtNTNsMCAuMyAxMi4yLTUuMWM0LjktMS45IDkuNy0zLjggMTQuOS00LjktMTAuNyAxOS43LTE3LjQgNDEuMy0xOS44IDYzLjV6bTE4NC0xMC41YTc2LjEgNzYuMSAwIDEgMSAwLTE1Mi4yIDc2LjEgNzYuMSAwIDEgMSAwIDE1Mi4yem0xMTUuNiAyMi4xYy0uMyAxNy44LTcgNDguOS0yMyA1Ny0xMy4yIDYuNi02LjUtNy41LTE2LjUtNTguMSAxMy4zIC4zIDI2LjYgLjMgMzkuNSAxLjF6bS01NC0xLjZjLjggNC45IDMuOCA0MC4zLTEuNiA0MS45LTExLjYgMy41LTQwIDQuMy01MS4xLTEuMS00LjEtMy00LjYtMzUuOS00LjMtNDEuMWwwIC4zYzE4LjktLjMgMzguMS0uMyA1NyAwek0yNzguNSAzMDljLTEzIDMuNS00MS42IDQuMS01NC42LTEuNi02LjUtMi43LTMuOC00Mi40LTEuOS01MS42IDE5LjItLjUgMzguNC0uNSA1Ny44LS44bDAgLjNjMS4xIDguMyAzLjMgNTEuMi0xLjMgNTMuN3pNMTcyIDI1Ny45YzEyLjItLjggMjQuNi0xLjQgMzYuOC0xLjYtMi40IDE1LjQtMyA0My41LTQuOSA1Mi4yLTEuMSA2LjgtNC4zIDYuOC05LjcgNC4zLTIxLjktOS44LTI3LjYtMzUuMi0yMi4yLTU0Ljl6bS0zNS40IDMxLjNjNy44LTEuMSAxNS43LTEuOSAyMy41LTIuNyAxLjYgNi4yIDMuOCAxMS45IDcgMTcuNiAxMCAxNyA0NCAzNS43IDQ1LjEgNyA2LjIgMTQuOSA0MC44IDEyLjIgNTQuOSAxMC44IDE1LjctMS40IDIzLjgtMS40IDI2LjgtMTQuMyAxMi40IDQuMyAzMC44IDQuMSA0NCAzIDExLjMtLjggMjAuOC0uNSAyNC42LTguOSAxLjEgNS4xIDEuOSAxMS42IDQuNiAxNi44IDEwLjggMjEuMyAzNy4zIDEuNCA0Ni44LTMxLjYgOC42IC44IDE3LjYgMS45IDI2LjUgMi43LS40IDEuMy0zLjggNy4zIDcuMyAxMS42LTQ3LjYgNDctOTUuNyA4Ny44LTE2My4yIDEwNy02My4yLTIwLjgtMTEyLjEtNTkuNS0xNTUuOS0xMDYuNSA5LjYtMy40IDEwLjQtOC44IDgtMTIuNXpNMTE1IDQ2MS43Yy0zLjggMTcuOC0yMS45IDI5LjctMzkuNyAyOC45LTE5LjItLjgtNDYuNS0xNy01OS4yLTM2LjUtMi43LTMxLjEgNDMuOC02MS4zIDY2LjItNTQuNiAxNC45IDQuMyAyNy44IDMwLjggMzMuNSA1NCAwIDMtLjMgNS43LS44IDguMnptLTguNy02NmMtLjUtMTMuNS0uNS0yNy0uMy00MC41bC4zIDBjMi43LTEuNiA1LjctMy44IDcuOC02LjUgNi41LTEuNiAxMy01LjEgMTUuMS05LjIgMy4zLTcuMS03LTcuNS01LjQtMTIuNCAyLjctMS4xIDUuNy0yLjIgNy44LTMuNSAyOS4yIDI5LjIgNTguNiA1Ni41IDk3LjMgNzctMzYuOCAxMS4zLTcyLjQgMjcuNi0xMDUuOSA0Ny0xLjItMTguNi03LjctMzUuOS0xNi43LTUxLjl6bTMzNy42IDY0LjZjLTEwMyAzLjUtMjA2LjIgNC4xLTMwOS40IDAgMCAuMyAwIC4zLS4zIC4zbDAtLjMgLjMgMGMzNS4xLTIxLjYgNzIuMi0zOS4yIDExMi40LTUwLjggMTEuNiA1LjEgMjMgOS41IDM0LjkgMTMuMiAyLjIgLjggMi4yIC44IDQuMyAwIDE0LjMtNC4xIDI4LjQtOS4yIDQyLjItMTUuNCA0MS41IDExLjcgNzguOCAzMS43IDExNS42IDUzem0xMC41LTEyLjRjLTM1LjktMTkuNS03My0zNS45LTExMS45LTQ3LjYgMzguMS0yMCA3MS45LTQ3LjMgMTAzLjUtNzYuNyAyLjIgMS40IDQuNiAyLjQgNy42IDMuMiAwIC44IC4zIDEuOSAuNSAyLjQtNC42IDIuNy03LjggNi4yLTUuOSAxMC4zIDIuMiAzLjggOC42IDcuNiAxNS4xIDguOSAyLjQgMi43IDUuMSA1LjEgOC4xIDYuOCAwIDEzLjgtLjMgMjcuNi0uOCA0MS4zbC4zLS4zYy05LjMgMTUuOS0xNS41IDM3LTE2LjUgNTEuN3ptMTA1LjkgNi4yYy0xMi43IDE5LjUtNDAgMzUuNy01OS4yIDM2LjUtMTkuMyAuOS00MC41LTEzLjItNDAuNS0zNyA1LjctMjMuMiAxOC45LTQ5LjcgMzMuNS01NCAyMi43LTYuOSA2OS4yIDIzLjQgNjYuMiA1NC41ek0zNzMuMSA3NS4yYy0zLjgtNzIuMS0xMDAuOC03OS43LTEyNi0yMy41IDQ0LjYtMjQuMyA5MC4zLTE1LjcgMTI2IDIzLjV6TTc1IDQwNy4xYy0xNS43IDEuNi00OS41IDI1LjQtNDkuNSA0My4yIDAgMTEuNiAxNS43IDE5LjUgMzIuMiAxNC45IDEyLjItMy4yIDMxLjEtMTcuNiAzNS45LTI3LjMgNi0xMS42LTMuNy0zMi43LTE4LjYtMzAuOHpNMjkwLjkgMjMwLjljMjguNiAwIDUxLjktMjEuNiA1MS45LTQ4LjQgMC0zNi4xLTQwLjUtNTguMS03Mi4yLTQ0LjMgOS41IDMgMTYuNSAxMS42IDE2LjUgMjEuNiAwIDIzLjMtMzMuMyAzMi00Ni41IDExLjMtNy4zIDM0LjEgMTkuNCA1OS44IDUwLjMgNTkuOHpNNjguMiA0NzQuMWMuNSA2LjUgMTIuMiAxMi43IDIxLjYgOS41IDYuOC0yLjcgMTQuNi0xMC41IDE3LjMtMTYuMiAzLTctMS4xLTIwLTkuNy0xOC40LTguOSAxLjYtMjkuNyAxNi43LTI5LjIgMjUuMXptNDMzLjItNjdjLTE0LjktMS45LTI0LjYgMTkuMi0xOC45IDMwLjggNC45IDkuNyAyNC4xIDI0LjEgMzYuMiAyNy4zIDE2LjUgNC42IDMyLjItMy4yIDMyLjItMTQuOSAwLTE3LjgtMzMuOC00MS42LTQ5LjUtNDMuMnpNNDc5IDQ0OWMtOC40LTEuNi0xMi40IDExLjMtOS41IDE4LjQgMi40IDUuNyAxMC4zIDEzLjUgMTcuMyAxNi4yIDkuMiAzLjIgMjEuMS0zIDIxLjMtOS41IC45LTguNC0yMC4yLTIzLjUtMjkuMS0yNS4xeiJdfSxvc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamVua2lucyIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiNiIsIk00NTUuNCA0MjVjLTEuNC0xMS4yLTE5LTIzLjEtMjguMi0zMS45LTUuMS01LTI5LTIzLjEtMzAuNC0yOS45LTEuNC02LjYgOS43LTIxLjUgMTMuMy0yOC45IDUuMS0xMC43IDguOC0yMy43IDExLjMtMzIuNiAxOC44LTY2LjEgMjAuNy0xNTYuOS02LjItMjExLjItMTAuMi0yMC42LTM4LjYtNDktNTYuNC02Mi41LTQyLTMxLjctMTE5LjYtMzUuMy0xNzAuMS0xNi42LTE0LjEgNS4yLTI3LjggOS44LTQwLjEgMTcuMS0zMy4xIDE5LjQtNjguMyAzMi41LTc4LjEgNzEuNi0yNC4yIDEwLjgtMzEuNSA0MS44LTMwLjMgNzcuOCAuMiA3IDQuMSAxNS44IDIuNyAyMi40LS43IDMuMy01LjIgNy42LTYuMSA5LjgtMTEuNiAyNy43LTIuMyA2NCAxMS4xIDgzLjcgOC4xIDExLjkgMjEuNSAyMi40IDM5LjIgMjUuMiAuNyAxMC42IDMuMyAxOS43IDguMiAzMC40IDMuMSA2LjggMTQuNyAxOSAxMC40IDI3LjctMi4yIDQuNC0yMSAxMy44LTI3LjMgMTcuNi0yMS4xIDEyLjUtMzYuNCAyMC4zLTU1LjkgMzQuMy0xMi42IDktMzIuMyAxMC4yLTI5LjIgMzEuMSAyLjEgMTQuMSAxMC4xIDMxLjYgMTQuNyA0NS44IC43IDIgMS40IDQuMSAyLjEgNmw0MjIgMGM0LjktMTUuMyA5LjctMzAuOSAxNC42LTQ3LjIgMy40LTExLjQgMTAuMi0yNy44IDguNy0zOS43ek0xNzQuMiAzMy43YzEuOC0uNSAzLjQgLjcgNC45IDIuNC0uMiA1LjItNS40IDUuMS04LjkgNi44LTUuNCA2LjctMTMuNCA5LjgtMjAgMTcuMi02LjggNy41LTE0LjQgMjcuNy0yMy40IDMwLTQuNSAxLjEtOS43LS44LTEzLjYtLjUtMTAuNCAuNy0xNy43IDYtMjguMyA3LjUgMTMuNi0yOS45IDU2LjEtNTQgODkuMy02My40ek02OS40IDEyNy4zYzEzLjUtMTQuOSAzMi4xLTI0LjEgNTQuOC0yNS45IDExLjcgMjkuNy04LjQgNjUtLjkgOTcuNiAyLjMgOS45IDEwLjIgMjUuNC0yLjQgMjUuNyAuMy0yOC4zLTM0LjgtNDYuMy02MS4zLTI5LjYtMS44LTIxLjUtNC45LTUxLjcgOS44LTY3Ljh6bTM2LjcgMjAwLjJjLTEtNC4xLTIuNy0xMi45LTIuMy0xNS4xIDEuNi04LjcgMTcuMS0xMi41IDExLTI0LjctMTEuMy0uMS0xMy44IDEwLjItMjQuMSAxMS4zLTI2LjcgMi42LTQ1LjYtMzUuNC00NC40LTU4LjQgMS0xOS41IDE3LjYtMzguMiA0MC4xLTM1LjggMTYgMS44IDIxLjQgMTkuMiAyNC41IDM0LjcgOS4yIC41IDIyLjUtLjQgMjYuOS03LjYtLjYtMTcuNS04LjgtMzEuNi04LjItNDcuNyAxLTMwLjMgMTcuNS01Ny42IDQuOC04Ny40IDEzLjYtMzAuOSA1My41LTU1LjMgODMuMS03MCAzNi42LTE4LjMgOTQuOS0zLjcgMTI5LjMgMTUuOCAxOS43IDExLjEgMzQuNCAzMi43IDQ4LjMgNTAuNy0xOS41LTUuOC0zNi4xIDQuMi0zMy4xIDIwLjMgMTYuMy0xNC45IDQ0LjItLjIgNTIuNSAxNi40IDcuOSAxNS44IDcuOCAzOS4zIDkgNjIuOCAyLjkgNTctMTAuNCAxMTUuOS0zOS4xIDE1Ny4xLTcuNyAxMS0xNC4xIDIzLTI0LjkgMzAuNi0yNiAxOC4yLTY1LjQgMzQuNy05OS4yIDIzLjQtNDQuNy0xNS02NS00NC44LTg5LjUtNzguOCAuNyAxOC43IDEzLjggMzQuMSAyNi44IDQ4LjQgMTEuMyAxMi41IDI1IDI2LjYgMzkuNyAzMi40LTEyLjMtMi45LTMxLjEtMy44LTM2LjIgNy4yLTI4LjYtMS45LTU1LjEtNC44LTY4LjctMjQuMi0xMC42LTE1LjQtMjEuNC00MS40LTI2LjMtNjEuNHptMjIyIDEyNC4xYzQuMS0zIDExLjEtMi45IDE3LjQtMy42LTUuNC0yLjctMTMtMy43LTE5LjMtMi4yLS4xLTQuMi0yLTYuOC0zLjItMTAuMiAxMC42LTMuOCAzNS41LTI4LjUgNDkuNi0yMC4zIDYuNyAzLjkgOS41IDI2LjIgMTAuMSAzNyAuNCA5LS44IDE4LTQuNSAyMi44LTE4LjgtLjYtMzUuOC0yLjgtNTAuNy03IC45LTYuMS0xLTEyLjEgLjYtMTYuNXptLTE3LjItMjBjLTE2LjggLjgtMjYtMS4yLTM4LjMtMTAuOCAuMi0uOCAxLjQtLjUgMS41LTEuNCAxOCA4IDQwLjgtMy4zIDU5LTQuOS03LjkgNS4xLTE0LjYgMTEuNi0yMi4yIDE3LjF6bS0xMi4xIDMzLjJjLTEuNi05LjQtMy41LTEyLTIuOC0yMC4yIDI1LTE2LjYgMjkuNyAyOC42IDIuOCAyMC4yek0xOTQuMyA0MzguNmMtMTEuNi0uNy00OC4xLTE0LTM4LjUtMjMuNyA5LjQgNi41IDI3LjUgNC45IDQxLjMgNy4zIC44IDQuNC0yLjggMTAuMi0yLjggMTYuNHpNMjYgNDk3LjFjLTQuMy0xMi43LTkuMi0yNS4xLTE0LjgtMzYuOSAzMC44LTIzLjggNjUuMy00OC45IDEwMi4yLTYzLjUgMi44LTEuMSAyMy4yIDI1LjQgMjYuMiAyNy42IDE2LjUgMTEuNyAzNyAyMSA1Ni4yIDMwLjIgMS4yIDguOCAzLjkgMjAuMiA4LjcgMzUuNSAuNyAyLjMgMS40IDQuNyAyLjIgNy4ybC0xODAuNyAwIDAtLjF6bTI0MC42IDUuN2wtLjggMGMuMy0uMiAuNS0uNCAuOC0uNWwwIC41em03LjUtNS43YzIuMS0xLjQgNC4zLTIuOCA2LjQtNC4zIDEuMSAxLjQgMi4yIDIuOCAzLjIgNC4zbC05LjYgMHptMTUuMS0yNC43Yy0xMC44IDcuMy0yMC42IDE4LjMtMzMuMyAyNS4yLTYgMy4zLTI3IDExLjctMzMuNCAxMC4yLTMuNi0uOC0zLjktNS4zLTUuNC05LjUtMy4xLTktMTAuMS0yMy40LTEwLjgtMzctLjgtMTcuMi0yLjUtNDYgMTYtNDIuNCAxNC45IDIuOSAzMi4zIDkuNyA0My45IDE2LjEgNy4xIDMuOSAxMS4xIDguNiAyMS45IDkuNS0uMSAxLjQtLjEgMi44LS4yIDQuMy01LjkgMy45LTE1LjMgMy44LTIxLjggNy4xIDkuNSAuNCAxNyAyLjcgMjMuNSA1LjktLjEgMy40LS4zIDctLjQgMTAuNnptNTMuNCAyNC43bC0xNCAwYy0uMS0zLjItMi44LTUuOC02LjEtNS44cy01LjkgMi42LTYuMSA1LjhsLTE3LjQgMGMtMi44LTQuNC01LjctOC42LTguOS0xMi41IDIuMS0yLjIgNC00LjcgNi02LjkgOSAzLjcgMTQuOC00LjkgMjEuNy00LjIgNy45IC44IDE0LjIgMTEuNyAyNS40IDExbC0uNiAxMi42em04LjcgMGMuMi00IC40LTcuOCAuNi0xMS41IDE1LjYtNy4zIDI5IDEuMyAzNS43IDExLjVsLTM2LjMgMHptODMuNC0zN2MtMi4zIDExLjItNS44IDI0LTkuOSAzNy4xLS4yLS4xLS40LS4xLS42LS4xbC0yNy45IDBjLjYtMS4xIDEuMi0yLjIgMS45LTMuMy0yLjYtNi4xLTktOC43LTEwLjktMTUuNSAxMi4xLTIyLjcgNi41LTkzLjQtMjQuMi03OC41IDQuMy02LjMgMTUuNi0xMS41IDIwLjgtMTkuMyAxMyAxMC40IDIwLjggMjAuMyAzMy4yIDMxLjQgNi44IDYgMjAgMTMuMyAyMS40IDIzLjEgLjggNS41LTIuNiAxOC45LTMuOCAyNS4xek0xOTAuNSAxMzAuNWM1LjQtMTQuOSAyNy4yLTM0LjcgNDUtMzIgNy43IDEuMiAxOCA4LjIgMTIuMiAxNy43LTMwLjItNy00NS4yIDEyLjYtNTQuNCAzMy4xLTguMS0yLTQuOS0xMy4xLTIuOC0xOC44em0xODQuMSA2My4xYzguMi0zLjYgMjIuNC0uNyAyOS42LTUuMy00LjItMTEuNS0xMC4zLTIxLjQtOS4zLTM3LjcgLjUgMCAxIDAgMS40IC4xIDYuOCAxNC4yIDEyLjcgMjkuMiAyMS40IDQxLjctNS43IDEzLjUtNDMuNiAyNS40LTQzLjEgMS4yem0tOTYuOCAyLjdjLTYuOC0xMC45LTE5LTMyLjUtMTQuNS00NS4zIDYuNSAxMS45IDguNiAyNC40IDE3LjggMzMuMyA0LjEgNCAxMi4yIDkgOC4yIDIwLjItLjkgMi43LTcuOCA4LjYtMTEuNyA5LjctMTQuNCA0LjMtNDcuOSAuOS0zNi42LTE3LjEgMTEuOSAuNyAyNy45IDcuOCAzNi44LS44em0yNy4zIDcwYzMuOCA2LjYgMS40IDE4LjcgMTIuMSAyMC42IDIwLjIgMy40IDQzLjYtMTIuMyA1OC4xLTE3LjggOS0xNS4yLS44LTIwLjctOC45LTMwLjUtMTYuNi0yMC0zOC44LTQ0LjgtMzgtNzQuNyA2LjctNC45IDcuMyA3LjQgOC4yIDkuNyA4LjcgMjAuMyAzMC40IDQ2LjIgNDYuMyA2My41IDMuOSA0LjMgMTAuMyA4LjQgMTEgMTEuMiAyLjEgOC4yLTUuNCAxOC00LjUgMjMuNS0yMS43IDEzLjktNDUuOCAyOS4xLTgxLjQgMjUuNi03LjQtNi43LTEwLjMtMjEuNC0yLjktMzEuMXptLTIwMS4zLTkuMmMtNi44LTMuOS04LjQtMjEtMTYuNC0yMS40LTExLjQtLjctOS4zIDIyLjItOS4zIDM1LjUtNy44LTcuMS05LjItMjkuMS0zLjUtNDAuMy02LjYtMy4yLTkuNSAzLjYtMTMuMSA1LjkgNC43LTM0LjEgNDkuOC0xNS44IDQyLjMgMjAuM3ptMjk5LjYgMjguOGMtMTAuMSAxOS4yLTI0LjQgNDAuNC01NCA0MS0uNi02LjItMS4xLTE1LjYgMC0xOS40IDIyLjctMi4yIDM2LjYtMTMuNyA1NC0yMS42ek0yNjEuNSAyOTguM2MxOC45IDkuOSA1My42IDExIDc5LjMgMTAuMiAxLjQgNS42IDEuMyAxMi42IDEuNCAxOS40LTMzIDEuOC03Mi02LjQtODAuNy0yOS42ek0zNTMuNyAzNDVjLTEuNyA0LjMtNS4zIDkuMy05LjggMTEuMS0xMi4xIDQuOS00NS42IDguNy02Mi40LS4zLTEwLjctNS43LTE3LjUtMTguNS0yMy40LTI2LTIuOC0zLjYtMTYuOS0xMi45LS4yLTEyLjkgMTMuMSAzMi43IDU4IDI5IDk1LjggMjguMXoiXX0sc3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNsaWRlc2hhcmUiLGljb246WzUxMiw1MTIsW10sImYxZTciLCJNMTg3LjkgMTUzLjdjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuN3M2MS43LTI2IDYxLjctNTcuN2MwLTMyLTI3LjctNTcuNy02MS43LTU3Ljd6bTE0My40IDBjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuNyAzNC4zIDAgNjEuNy0yNiA2MS43LTU3LjcgLjEtMzItMjcuNC01Ny43LTYxLjctNTcuN3ptMTU2LjYgOTBsLTYgNC4zIDAtMTk4LjNjMC0yNy40LTIwLjYtNDkuNy00Ni00OS43TDc2LjggMGMtMjUuNCAwLTQ2IDIyLjMtNDYgNDkuN2wwIDE5OC4zYy0yLTEuNC00LjMtMi45LTYuMy00LjMtMTUuMS0xMC42LTI1LjEgNC0xNiAxNy43IDE4LjMgMjIuNiA1My4xIDUwLjMgMTA2LjMgNzItNTYuMyAxOTEuNyAxMzcuNCAyMjIuMyAxMzQuMyAxMjQuMSAwLS43IC4zLTU2LjYgLjMtOTYuNiA1LjEgMS4xIDkuNCAyLjMgMTMuNyAzLjEgMCAzOS43IC4zIDkyLjggLjMgOTMuNS0zLjEgOTguMyAxOTAuNiA2Ny43IDEzNC4zLTEyNCA1My4xLTIxLjcgODgtNDkuNCAxMDYuMy03MiA5LjEtMTMuOC0uOS0yOC4zLTE2LjEtMTcuOHptLTMwLjUgMTkuMmMtNjguOSAzNy40LTEyOC4zIDMxLjEtMTYwLjYgMjkuNy0yMy43LS45LTMyLjYgOS4xLTMzLjcgMjQuOS0xMC4zLTcuNy0xOC42LTE1LjUtMjAuMy0xNy4xLTUuMS01LjQtMTMuNy04LTI3LjEtNy43LTMxLjcgMS4xLTg5LjcgNy40LTE1Ny40LTI4bDAtMTkyLjRjMC0zNC45IDguOS00NS43IDQwLjYtNDUuN2wzMTcuNyAwYzMwLjMgMCA0MC45IDEyLjkgNDAuOSA0NS43bDAgMTkwLjYtLjEgMHoiXX0sbHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InViZXIiLGljb246WzQ0OCw1MTIsW10sImY0MDIiLCJNNDE0LjEgMzJMMzMuOSAzMkMxNS4yIDMyIDAgNDcuMiAwIDY1LjlMMCA0NDZjMCAxOC44IDE1LjIgMzQgMzMuOSAzNEw0MTQgNDgwYzE4LjcgMCAzMy45LTE1LjIgMzMuOS0zMy45bDAtMzgwLjJDNDQ4IDQ3LjIgNDMyLjggMzIgNDE0LjEgMzJ6TTIzNy42IDM5MS4xQzE2MyAzOTguNiA5Ni40IDM0NC4yIDg4LjkgMjY5LjZsOTQuNCAwIDAgMjAuNGMwIDMuNyAzIDYuOCA2LjggNi44bDY3LjkgMGMzLjcgMCA2LjgtMyA2LjgtNi44bDAtNjcuOWMwLTMuNy0zLTYuOC02LjgtNi44bC02Ny45IDBjLTMuNyAwLTYuOCAzLTYuOCA2LjhsMCAyMC40LTk0LjQgMGM3LTY5LjQgNjUuNC0xMjIuMiAxMzUuMS0xMjIuMnMxMjguMSA1Mi44IDEzNS4xIDEyMi4yYzcuNSA3NC41LTQ2LjkgMTQxLjEtMTIxLjUgMTQ4LjZ6Il19LGNzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaWdpdGFsLW9jZWFuIixpY29uOls1MTIsNTEyLFtdLCJmMzkxIiwiTTg3IDQ4MS44bDczLjcgMCAwLTczLjYtNzMuNyAwIDAgNzMuNnpNMjUuNCAzNDYuNmwwIDYxLjYgNjEuNiAwIDAtNjEuNi02MS42IDB6TTQ5MS42IDE3Ni45QzQ2OC42IDEwMi43IDQwOS4yIDQzLjYgMzM1IDIwLjMgMTY0LjktMzIuOCA4IDkzLjcgOCAyNTUuOWw5NS44IDBjMC0xMDEuOCAxMDEtMTgwLjUgMjA4LjEtMTQxLjcgMzkuNyAxNC4zIDcxLjUgNDYuMSA4NS44IDg1LjcgMzkuMSAxMDctMzkuNyAyMDcuOC0xNDEuNCAyMDhsMCAuMy0uMyAwIDAgOTUuOGMxNjIuNiAwIDI4OC44LTE1Ni44IDIzNS42LTMyNy4xem0tMjM1LjMgMjMxbDAtOTUuMy05NS42IDAgMCA5NS42IDk1LjMgMCAwLS4zIC4zIDB6Il19LGRzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzb3VuZGNsb3VkIixpY29uOls2NDAsNTEyLFtdLCJmMWJlIiwiTTY0MC4yIDI5OC42Yy0xLjMgMjMuMS0xMS41IDQ0LjgtMjguNCA2MC41cy0zOS4yIDI0LjQtNjIuMyAyNC4xbC0yMTggMGMtNC44IDAtOS40LTItMTIuOC01LjRzLTUuMy04LTUuMy0xMi44bDAtMjM0LjhjLS4yLTQgLjktOCAzLjEtMTEuNHM1LjMtNi4xIDktNy43YzAgMCAyMC4xLTEzLjkgNjIuMy0xMy45IDI1LjggMCA1MS4xIDYuOSA3My4zIDIwLjEgMTcuMyAxMC4yIDMyLjMgMjMuOCA0NC4xIDQwLjFzMjAgMzQuOCAyNC4yIDU0LjRjNy41LTIuMSAxNS4zLTMuMiAyMy4xLTMuMiAxMS43LS4xIDIzLjMgMi4yIDM0LjIgNi43czIwLjUgMTEuMyAyOC43IDE5LjcgMTQuNiAxOC4zIDE4LjkgMjkuMyA2LjMgMjIuNiA1LjkgMzQuM3ptLTM1NC0xNTMuNWMuMS0xIDAtMi0uMy0yLjlzLS44LTEuOC0xLjUtMi42LTEuNS0xLjMtMi40LTEuN2MtMS44LS44LTQtLjgtNS44IDAtLjkgLjQtMS43IDEtMi40IDEuN3MtMS4yIDEuNi0xLjUgMi42LS40IDEuOS0uMyAyLjljLTYgNzguOS0xMC42IDE1Mi45IDAgMjMxLjYgLjIgMS43IDEgMy4zIDIuMyA0LjUgMi42IDIuNCA2LjggMi40IDkuNCAwIDEuMy0xLjIgMi4xLTIuOCAyLjMtNC41IDExLjMtNzkuNCA2LjYtMTUyIDAtMjMxLjZsLjIgMHptLTQ0IDI3LjNjLS4yLTEuOC0xLjEtMy41LTIuNC00LjdzLTMuMS0xLjktNS0xLjktMy42IC43LTUgMS45LTIuMiAyLjktMi40IDQuN2MtNy45IDY3LjktNy45IDEzNi41IDAgMjA0LjQgLjMgMS44IDEuMiAzLjQgMi41IDQuNXMzLjEgMS44IDQuOCAxLjggMy41LS42IDQuOC0xLjggMi4yLTIuOCAyLjUtNC41YzguOC02Ny44IDguOC0xMzYuNSAuMS0yMDQuNGwuMSAwem0tNDQuMy02LjljLS4yLTEuOC0xLTMuNC0yLjMtNC42cy0zLTEuOC00LjgtMS44LTMuNSAuNy00LjggMS44LTIuMSAyLjgtMi4zIDQuNmMtNi43IDcyLTEwLjIgMTM5LjMgMCAyMTEuMSAwIDEuOSAuNyAzLjcgMi4xIDVzMy4xIDIuMSA1IDIuMSAzLjctLjcgNS0yLjEgMi4xLTMuMSAyLjEtNWMxMC41LTcyLjggNy4zLTEzOC4yIC4xLTIxMS4xbC0uMSAwem0tNDQgMjAuNmMwLTEuOS0uOC0zLjgtMi4xLTUuMnMtMy4yLTIuMS01LjItMi4xLTMuOCAuOC01LjIgMi4xLTIuMSAzLjItMi4xIDUuMmMtOC4xIDYzLjMtOC4xIDEyNy41IDAgMTkwLjggLjIgMS44IDEgMy40IDIuNCA0LjZzMy4xIDEuOSA0LjggMS45IDMuNS0uNyA0LjgtMS45IDIuMi0yLjggMi40LTQuNmM4LjgtNjMuMyA4LjktMTI3LjUgLjMtMTkwLjhsLS4xIDB6bS00NC41IDQ3LjZjMC0xLjktLjgtMy44LTIuMS01LjFzLTMuMi0yLjEtNS4xLTIuMS0zLjggLjgtNS4xIDIuMS0yLjEgMy4yLTIuMSA1LjFjLTEwLjUgNDkuMi01LjUgOTMuOSAuNCAxNDMuNiAuMyAxLjYgMS4xIDMuMSAyLjMgNC4yczIuOCAxLjcgNC41IDEuNyAzLjItLjYgNC41LTEuNyAyLjEtMi41IDIuMy00LjJjNi42LTUwLjQgMTEuNi05NC4xIC40LTE0My42em0tNDQuMS03LjVjLS4yLTEuOC0xLjEtMy41LTIuNC00LjhzLTMuMi0xLjktNS0xLjktMy42IC43LTUgMS45LTIuMiAyLjktMi40IDQuOGMtOS4zIDUwLjItNi4yIDk0LjQgLjMgMTQ0LjUgLjcgNy42IDEzLjYgNy41IDE0LjQgMCA3LjItNTAuOSAxMC41LTkzLjggLjMtMTQ0LjVsLS4yIDB6TTIwLjcgMjUwLjhjLS4yLTEuOC0xLjEtMy41LTIuNC00LjhzLTMuMi0xLjktNS0xLjktMy42IC43LTUgMS45LTIuMyAyLjktMi40IDQuOGMtOC41IDMzLjctNS45IDYxLjYgLjYgOTUuNCAuMiAxLjcgMSAzLjMgMi4zIDQuNHMyLjkgMS44IDQuNyAxLjggMy40LS42IDQuNy0xLjggMi4xLTIuNyAyLjMtNC40YzcuNS0zNC41IDExLjItNjEuOCAuNC05NS40bC0uMiAweiJdfSx1c3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZpZ21hIixpY29uOls0NDgsNTEyLFtdLCJlN2U0IiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTE3My43IDk2Yy0zMyAwLTU5LjggMjYuOC01OS44IDU5LjggMCAyMSAxMC44IDM5LjQgMjcuMiA1MC4xLTE2LjQgMTAuNy0yNy4yIDI5LjEtMjcuMiA1MC4xczEwLjggMzkuNSAyNy4yIDUwLjFjLTE2LjQgMTAuNy0yNy4yIDI5LjEtMjcuMiA1MC4xIDAgMzMuMSAyNy4xIDU5LjggNjAuMSA1OS44IDMzLjIgMCA2MC42LTI2LjkgNjAuNi02MC4zbDAtNTUuN2MxMC42IDkuOCAyNC44IDE1LjggNDAuNCAxNS44bDEuMSAwYzMzIDAgNTkuOC0yNi44IDU5LjgtNTkuOCAwLTIxLTEwLjgtMzkuNS0yNy4yLTUwLjEgMTYuNC0xMC43IDI3LjItMjkuMSAyNy4yLTUwLjEgMC0zMy0yNi44LTU5LjgtNTkuOC01OS44TDE3My43IDk2em00MS42IDIxOS44bDAgMzkuOWMwIDIyLjYtMTguNiA0MS00MS4zIDQxLTIyLjQgMC00MC43LTE4LjItNDAuNy00MC41IDAtMjIuMyAxOC4xLTQwLjQgNDAuMy00MC40bDQxLjcgMHptMC0xMDAuM2wwIDgwLjktNDEuNyAwYy0yMi4zLS4xLTQwLjMtMTguMi00MC4zLTQwLjUgMC0yMi4zIDE4LjEtNDAuNSA0MC41LTQwLjVsNDEuNiAwem02MC44IDBjMjIuMyAwIDQwLjUgMTguMSA0MC41IDQwLjVzLTE4LjEgNDAuNS00MC41IDQwLjVsLTEuMSAwYy0yMi4zIDAtNDAuNC0xOC4xLTQwLjQtNDAuNXMxOC4xLTQwLjUgNDAuNC00MC41bDEuMSAwem0tNjAuOC0xOS4zbC00MS42IDBjLTIyLjMgMC00MC41LTE4LjEtNDAuNS00MC40czE4LjEtNDAuNSA0MC41LTQwLjVsNDEuNiAwIDAgODAuOXptNjAuOC04MC45YzIyLjMgMCA0MC41IDE4LjEgNDAuNSA0MC41cy0xOC4xIDQwLjQtNDAuNSA0MC40bC00MS41IDAgMC04MC45IDQxLjUgMHoiXX0scHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2EiLGljb246WzUxMiw1MTIsW10sImY0ZWYiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek0xNDUuNyAyMjFjMTMtODMuOSA4MC41LTk1LjcgMTA4LjktOTUuNyA5OS44IDAgMTI3LjUgODIuNSAxMjcuNSAxMzQuMiAwIDYzLjYtNDEgMTMyLjktMTI4LjkgMTMyLjktMzguOSAwLTk5LjEtMjAtMTA5LjQtOTdsNjIuNSAwYzEuNSAzMC4xIDE5LjYgNDUuMiA1NC41IDQ1LjIgMjMuMyAwIDU4LTE4LjIgNTgtODIuOCAwLTgyLjUtNDkuMS04MC42LTU2LjctODAuNi0zMy4xIDAtNTEuNyAxNC42LTU1LjggNDMuOGwxOC4yIDAtNDkuMiA0OS4yLTQ5LTQ5LjIgMTkuNCAweiJdfSxoc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2hyb21lIixpY29uOls1MTIsNTEyLFtdLCJmMjY4IiwiTTAgMjU2YzAtNDYuNiAxMi41LTkwLjQgMzQuMy0xMjguOUwxNDQuMSAzMTguM2MyMS45IDM5LjIgNjMuOCA2NS43IDExMS45IDY1LjcgMTQuMyAwIDI3LjEtMi4zIDQwLjgtNi42TDIyMC41IDUwOS42Qzk1LjkgNDkyLjMgMCAzODUuMyAwIDI1NnptMzY1LjEgNjUuNmMxMi4zLTE5LjIgMTguOS00Mi41IDE4LjktNjUuNiAwLTM4LjItMTYuOC03Mi41LTQzLjMtOTZsMTUyLjcgMGMxMiAyOS42IDE4LjYgNjIuMSAxOC42IDk2IDAgMTQxLjQtMTE0LjYgMjU1LjEtMjU2IDI1NkwzNjUuMSAzMjEuNnpNNDc3LjggMTI4TDI1NiAxMjhjLTYyLjkgMC0xMTMuNyA0NC4xLTEyNS41IDEwMi43TDU0LjIgOTguNUMxMDEgMzguNSAxNzQgMCAyNTYgMCAzNTAuOCAwIDQzMy41IDUxLjUgNDc3LjggMTI4ek0zNDQgMjU2YTg4IDg4IDAgMSAxIC0xNzYgMCA4OCA4OCAwIDEgMSAxNzYgMHoiXX0sZnN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRyYWRlLWZlZGVyYXRpb24iLGljb246WzUxMiw1MTIsW10sImY1MTMiLCJNMjU2IDguOGEyNDcuMiAyNDcuMiAwIDEgMCAwIDQ5NC40IDI0Ny4yIDI0Ny4yIDAgMSAwIDAtNDk0LjR6bTAgMTEuNmEyMzUuNiAyMzUuNiAwIDEgMSAwIDQ3MS4yIDIzNS42IDIzNS42IDAgMSAxIDAtNDcxLjJ6TTQxMS4xIDE2My4xbDAtNDYuOC0xOTMuOCAwIDAgODEuNy0xNTUuMSAwIDM2LjcgNDYgMTE3LjcgMCAwIDE5Ni44IDQ4LjggMCAwLTE5NS44IDgzLjMgMCAwLTQ3LTgzLjMgMCAwLTM0LjggMTQ1LjcgMCAwLS4xem0tNzMuMyA0NS4xbDAgMjMuOS04Mi45IDAgMCAxOTcuNC0yNi44IDAgMC0xOTcuNC0xMjMuOCAwLTIwLjEtMjMuOSAxNDMuOSAwIDAtODAuNiAxNzEuOCAwIDAgMjQuNC0xNDUgMCAwIDU2LjIgODIuOSAwem0tMTYxLjMtNjlsLTEyLjQtMjAuNyAyLjEgMjMuOC0yMy41IDUuNCAyMy4zIDUuNC0yLjEgMjQgMTIuMy0yMC41IDIyLjIgOS41LTE1LjctMTguMSAxNS44LTE4LjEtMjIgOS4zem0tMjkuNi0xOS43bDkuMy0xMS41LTEyLjcgNS45LTgtMTIuNCAxLjcgMTMuOS0xNC4zIDMuOCAxMy43IDIuNy0uOCAxNC43IDYuOC0xMi4yIDEzLjggNS4zLTkuNS0xMC4yek0zMTIuMyAyNjQuN2wtMTMuMSA1LjYtNy4zLTEyLjIgMS4zIDE0LjItMTMuOSAzLjIgMTMuOSAzLjItMS4yIDE0LjIgNy4zLTEyLjIgMTMuMSA1LjUtOS40LTEwLjcgOS4zLTEwLjh6bTEwNi45LTc3LjJsLTIwLjkgOS4xLTEyLTE5LjYgMi4yIDIyLjctMjIuMyA1LjQgMjIuMiA0LjktMS44IDIyLjkgMTEuNS0xOS42IDIxLjIgOC44LTE1LjEtMTcgMTUtMTcuNnpNMjU2IDI5LjlhMjI2LjEgMjI2LjEgMCAxIDAgMCA0NTIuMiAyMjYuMSAyMjYuMSAwIDEgMCAwLTQ1Mi4yek0zNTAuNiAxOTZsMCA1MS04My4zIDAgMCAxOTUuNy01Mi43IDAgMC0xOTYuOC0xMTYuNyAwLTQwLTQ5LjkgMTU3LjQgMCAwLTgxLjYgMTk3LjggMCAwIDUwLjctMTQ1LjcgMCAwIDMwLjkgODMuMiAwek0yNTYgNDMuMmM2MC4zIDAgMTE0LjggMjUgMTUzLjYgNjUuMmwtMTk5LjEgMCAwIDgxLjYtMTU3LjQgMEM4MS4xIDEwNC44IDE2MS40IDQzLjIgMjU2IDQzLjJ6bTAgNDI3LjFjLTExNy45IDAtMjEzLjYtOTUuNi0yMTMuNi0yMTMuNSAwLTIxLjIgMy4xLTQxLjggOC45LTYxLjFsNDMuOCA1Ni4zIDExNC43IDAgMCAxOTYuOCA2NC42IDAgMC0xOTUuOCA4My4zIDAgMC02Mi43LTgzLjIgMCAwLTE5LjIgMTQ1LjYgMCAwLTUwLjhjMzAuOCAzNyA0OS4zIDg0LjYgNDkuMyAxMzYuNSAuMSAxMTcuOS05NS41IDIxMy41LTIxMy40IDIxMy41ek0xODYuOCAyNzVsLTExLTIxLjQgMS43IDI0LjUtMjMuNyAzLjkgMjMuOCA1LjktMy43IDIzLjggMTMtMjAuOSAyMS41IDEwLjgtMTUuOC0xOC44IDE2LjktMTcuMS0yMi43IDkuM3oiXX0sbXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZhYWRpbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjQwOCIsIk0yMjQuNSAxNDAuN0MyMjYgMTIzLjEgMjI5LjQgODggMjc0LjMgODhsOTguNiAwYzIwLjcgMCAzMi4xLTcuOCAzMi4xLTIxLjZsMC0xMi4zYzAtMTIuMiA5LjMtMjIuMSAyMS41LTIyLjFTNDQ4IDQxLjkgNDQ4IDU0LjFsMCAzNi41YzAgNDIuOS0yMS41IDYyLTY2LjggNjJsLTEwMC41IDBjLTMwLjEgMC0zMyAxNC43LTMzIDI3LjEgMCAxLjMtLjEgMi41LS4yIDMuNy0uNyAxMi4zLTEwLjkgMjIuMi0yMy40IDIyLjJzLTIyLjctOS44LTIzLjQtMjIuMmMtLjEtMS4yLS4yLTIuNC0uMi0zLjcgMC0xMi4zLTMtMjcuMS0zMy0yNy4xbC0xMDAuNyAwQzIxLjUgMTUyLjYgMCAxMzMuNSAwIDkwLjZMMCA1NC4xQzAgNDEuOSA5LjQgMzIgMjEuNiAzMnMyMS41IDkuOSAyMS41IDIyLjFsMCAxMi4zQzQzLjEgODAuMiA1NC41IDg4IDc1LjIgODhsOTguNiAwYzQ0LjggMCA0OC4zIDM1LjEgNDkuOCA1Mi43bC45IDB6TTIyNCA0NTZjMTEuNSAwIDIxLjQtNyAyNS43LTE2LjMgMS4xLTEuOCA5Ny4xLTE2OS42IDk4LjItMTcxLjQgMTEuOS0xOS42LTMuMi00NC4zLTI3LjItNDQuMy0xMy45IDAtMjMuMyA2LjQtMjkuOCAyMC4zTDIyNCAzNjIgMTU3LjEgMjQ0LjNjLTYuNC0xMy45LTE1LjktMjAuMy0yOS44LTIwLjMtMjQgMC0zOS4xIDI0LjYtMjcuMiA0NC4zIDEuMSAxLjkgOTcuMSAxNjkuNiA5OC4yIDE3MS40IDQuMyA5LjMgMTQuMiAxNi4zIDI1LjcgMTYuM3oiXX0sZ3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRldmlhbnRhcnQiLGljb246WzMyMCw1MTIsW10sImYxYmQiLCJNMzIwIDkzLjJsLTk4LjIgMTc5LjEgNy40IDkuNSA5MC44IDAgMCAxMjcuNy0xNjAuOSAwLTEzLjUgOS4yLTQzLjcgODRjLS4zIDAtOC42IDguNi05LjIgOS4ybC05Mi43IDAgMC05My4yIDkzLjItMTc5LjQtNy40LTkuMi04NS44IDAgMC0xMjcuNiAxNTYgMCAxMy41LTkuMiA0My43LTg0Yy4zIDAgOC42LTguNiA5LjItOS4ybDk3LjYgMCAwIDkzLjF6Il19LHlnPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1lZGl1bSIsaWNvbjpbNDQ4LDUxMixbNjI0MDcsIm1lZGl1bS1tIl0sImYyM2EiLCJNMzY5LjQgMzJjNDMuNCAwIDc4LjYgMzUuMiA3OC42IDc4LjZsMCA4My44Yy0xLjktLjEtMy44LS4yLTUuNy0uMmwtLjQgMGMtMTAgMC0yMi4zIDIuNC0zMS4xIDYuOC0xMCA0LjYtMTguNyAxMS41LTI2IDIwLjYtMTEuOCAxNC42LTE4LjkgMzQuMy0yMC42IDU2LjQtLjEgLjctLjEgMS4zLS4yIDJzLS4xIDEuMi0uMSAxLjljLS4xIDEuMi0uMSAyLjQtLjEgMy42IDAgMS45LS4xIDMuOCAwIDUuOCAxLjIgNTAuMSAyOC4yIDkwLjIgNzYuMyA5MC4yIDIuNyAwIDUuMy0uMSA3LjktLjRsMCAyMC40YzAgNDMuNC0zNS4yIDc4LjYtNzguNiA3OC42TDc4LjYgNDgwQzM1LjIgNDgwIDAgNDQ0LjggMCA0MDEuNEwwIDExMC42QzAgNjcuMiAzNS4yIDMyIDc4LjYgMzJsMjkwLjggMHpNODIuMyAxMzguOWwuMyAuMWMxMy4yIDMgMTkuOCA3LjQgMTkuOCAyMy40bDAgMTg3LjJjMCAxNi02LjcgMjAuNC0xOS45IDIzLjRsLS4zIC4xIDAgMi44IDUyLjggMCAwLTIuOC0uMy0uMWMtMTMuMi0zLTE5LjktNy40LTE5LjktMjMuNGwwLTE3Ni4zIDg2LjEgMjAyLjUgNC45IDAgODguNi0yMDguMiAwIDE4Ni42Yy0xLjEgMTIuNi03LjggMTYuNS0xOS43IDE5LjJsLS4zIC4xIDAgMi43IDkxLjkgMCAwLTIuNy0uMy0uMWMtMTEuOS0yLjctMTguNy02LjYtMTkuOS0xOS4ybC0uMS0xOTEuOCAuMSAwYzAtMTYgNi43LTIwLjQgMTkuOS0yMy40bC4zLS4xIDAtMi43LTcyLjIgMC02NyAxNTcuNC02Ny0xNTcuNC03Ny44IDAgMCAyLjd6TTQ0OCAzNDAuM2MtMjUuMS03LjQtNDMtMzUuMS00MS4yLTY3LjhsMCAwIDQxLjEgMCAwIDY3Ljh6bS02LjQtMTM1LjZjMi4zIDAgNC40IC4zIDYuNCAuOWwwIDU3LjQtNDAuMiAwYzEuNS0zMy42IDEzLjYtNTcuOSAzMy44LTU4LjN6Il19LGJzdD15Zyx2c3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToib3BlbmNhcnQiLGljb246WzY0MCw1MTIsW10sImYyM2QiLCJNMzMxLjggNDQwLjRhNDUuOCA0NS44IDAgMSAxIDkxLjUgLjMgNDUuOCA0NS44IDAgMSAxIC05MS41LS4zek0xNjkuNCAzOTQuOWE0NS43IDQ1LjcgMCAxIDAgLjMgOTEuMyA0NS43IDQ1LjcgMCAxIDAgLS4zLTkxLjN6bTI5MS43LTI3MGMtMzAyLjIgMC0zNzkuMi0xMi44LTQ2MS4xLTk5LjIgMzQuNCA1MS43IDUzLjMgMTQ4LjkgMzczLjEgMTQ0LjIgMzMzLjMtNSAxMzAgODYuMSA3MC44IDE4OC45IDE4Ni43LTE2Ni43IDMxOS40LTIzMy45IDE3LjItMjMzLjl6Il19LHhzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5LWNvbWJpbmF0b3IiLGljb246WzQ0OCw1MTIsW10sImYyM2IiLCJNNDQ4IDMybDAgNDQ4LTQ0OCAwIDAtNDQ4IDQ0OCAwek0yMzYgMjg3LjVsNzcuNS0xNDUuNS0zMi43IDAtNDUuOCA5MWMtNC43IDkuMy05IDE4LjMtMTIuOCAyNi44bC0xMi4yLTI2LjgtNDUuMi05MS0zNSAwIDc2LjcgMTQzLjggMCA5NC41IDI5LjUgMCAwLTkyLjh6Il19LHlzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW5lIixpY29uOls1MTIsNTEyLFtdLCJmM2MwIiwiTTMxMSAxOTYuOGwwIDgxLjNjMCAyLjEtMS42IDMuNy0zLjcgMy43bC0xMyAwYy0xLjMgMC0yLjQtLjctMy0xLjVMMjU0IDIzMCAyNTQgMjc4LjJjMCAyLjEtMS42IDMuNy0zLjcgMy43bC0xMyAwYy0yLjEgMC0zLjctMS42LTMuNy0zLjdsMC04MS4zYzAtMi4xIDEuNi0zLjcgMy43LTMuN2wxMi45IDBjMS4xIDAgMi40IC42IDMgMS42bDM3LjMgNTAuMyAwLTQ4LjJjMC0yLjEgMS42LTMuNyAzLjctMy43bDEzIDBjMi4xLS4xIDMuOCAxLjYgMy44IDMuNWwwIC4xem0tOTMuNy0zLjdsLTEzIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAyLjEgMS42IDMuNyAzLjcgMy43bDEzIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtODEuM2MwLTEuOS0xLjYtMy43LTMuNy0zLjd6bS0zMS40IDY4LjFsLTM1LjYgMCAwLTY0LjRjMC0yLjEtMS42LTMuNy0zLjctMy43bC0xMyAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA4MS4zYzAgMSAuMyAxLjggMSAyLjUgLjcgLjYgMS41IDEgMi41IDFsNTIuMiAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzYzAtMS45LTEuNi0zLjctMy41LTMuN2wuMSAwem0xOTMuNy02OC4xbC01Mi4zIDBjLTEuOSAwLTMuNyAxLjYtMy43IDMuN2wwIDgxLjNjMCAxLjkgMS42IDMuNyAzLjcgMy43bDUyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC0xMy4xYzAtMi4xLTEuNi0zLjctMy43LTMuN2wtMzUuNSAwIDAtMTMuNiAzNS41IDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtMTMuMWMwLTIuMS0xLjYtMy43LTMuNy0zLjdsLTM1LjUgMCAwLTEzLjcgMzUuNSAwYzIuMSAwIDMuNy0xLjYgMy43LTMuN2wwLTEzYy0uMS0xLjktMS43LTMuNy0zLjctMy43bC4xIDB6TTUxMiA5My40bDAgMzI2Yy0uMSA1MS4yLTQyLjEgOTIuNy05My40IDkyLjZsLTMyNiAwQzQxLjQgNTExLjktLjEgNDY5LjggMCA0MTguNmwwLTMyNkMuMSA0MS40IDQyLjItLjEgOTMuNCAwbDMyNiAwYzUxLjIgLjEgOTIuNyA0Mi4xIDkyLjYgOTMuNHpNNDQxLjYgMjMzLjVjMC04My40LTgzLjctMTUxLjMtMTg2LjQtMTUxLjNTNjguOCAxNTAuMSA2OC44IDIzMy41YzAgNzQuNyA2Ni4zIDEzNy40IDE1NS45IDE0OS4zIDIxLjggNC43IDE5LjMgMTIuNyAxNC40IDQyLjEtLjggNC43LTMuOCAxOC40IDE2LjEgMTAuMXMxMDcuMy02My4yIDE0Ni41LTEwOC4yYzI3LTI5LjcgMzkuOS01OS44IDM5LjktOTMuMWwwLS4yeiJdfSx3c3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYW1pbGlhIixpY29uOls0NDgsNTEyLFtdLCJmMzZkIiwiTTI0MC4yIDMyYy02MS45IDAtMTMxLjUgMTYuOS0xODQuMiA1NS40LTUuMSAzLjEtOS4xIDkuMi03LjIgMTkuNCAxLjEgNS4xIDUuMSAyNy40IDEwLjIgMzkuNiA0LjEgMTAuMiAxNC4yIDEwLjIgMjAuMyA2LjEgMzIuNS0yMi4zIDk2LjUtNDcuNyAxNTIuMy00Ny43IDU3LjkgMCA1OC45IDI4LjQgNTguOSA3My4xbDAgMzguNUMyMDMuMSAyMjcuNyA3OC4zIDI1MSA0Ni44IDI2NC4yIDExLjMgMjgwLjUgMTYuNCAzNTcuNyAxNi40IDM3NlMzMS42IDQ4MCAxNDEuMyA0ODBjNDcuOCAwIDExMy43LTIwLjcgMTUzLjMtNDIuMWwwIDI1LjRjMCAzIDIuMSA4LjIgNi4xIDkuMSAzLjEgMSA1MC43IDIgNTkuOSAyczYyLjUgLjMgNjYuNS0uN2M0LjEtMSA1LjEtNi4xIDUuMS05LjFsMC0yOTYuNmMtLjEtODAuMy01Ny45LTEzNi0xOTItMTM2em01MC4yIDM0OGMtMjEuNCAxMy4yLTQ4LjcgMjQuNC03OS4xIDI0LjQtNTIuOCAwLTU4LjktMzMuNS01OS00NC43IDAtMTIuMi0zLTQyLjcgMTguMy01Mi45IDI0LjMtMTMuMiA3NS4xLTI5LjQgMTE5LjgtMzMuNWwwIDEwNi43eiJdfSxNc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXN5bW1ldHJpayIsaWNvbjpbNTc2LDUxMixbXSwiZjM3MiIsIk01MTcuNSAzMDkuMmMzOC44LTQwIDU4LjEtODAgNTguNS0xMTYuMSAuOC02NS41LTU5LjQtMTE4LjItMTY5LjQtMTM1LTEyOC43LTE5LjctMjg4LjUgMTUuNS00MDYuNiA4Mi40IDUyLTI2LjUgMTEwLjYtNDguMiAxNzAuNy01OC4yIDc0LjUtMjAuNSAxNTMtMjUuNCAyMjEuMy0xNC44IDE1Mi41IDIzLjggMTk2LjggMTI3LjUgOTguOCAyMzEuNy0xMC4yIDEwLjgtMjIgMjEuMS0zNSAzMC42TDMwNC45IDEwMy40IDExNC43IDM4OC45Yy02NS42LTI5LjQtNzYuNS05MC4yLTE5LjEtMTUxLjIgMjAuOC0yMi4yIDQ4LjMtNDEuOSA3OS41LTU4LjEgMjAtMTIuMiAzOS43LTIyLjYgNjItMzAuNy02NS4xIDIwLjMtMTIyLjcgNTIuOS0xNjEuNiA5Mi45LTI3LjcgMjguNi00MS40IDU3LjEtNDEuNyA4Mi45LS41IDM1LjEgMjMuNCA2NS4xIDY4LjQgODNsLTM0LjUgNTEuNyAxMDEuNiAwIDIyLTM0LjRjMjIuMiAxIDQ1LjMgMCA2OC42LTIuN2wtMjIuOCAzNy4xIDEzNS41IDAtMzIuNi01My4xYzE4LjYtNS4zIDM2LjktMTEuNSA1NC41LTE4LjdsNDUuOSA3MS44IDEwMS42IDAtNzMuNC0xMTAuNGMxOC41LTEyLjEgMzUtMjUuNSA0OC45LTM5Ljh6TTMyOS45IDM4OS43bC0yNS00MC42LTMyLjcgNTMuM2MtMjMuNCAzLjUtNDYuNyA1LjEtNjkuMiA0LjRsMTAxLjktMTU5LjMgNzguNyAxMjNjLTE3LjIgNy40LTM1LjMgMTMuOS01My43IDE5LjJ6Il19LGtzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaGFicmljYXRvciIsaWNvbjpbNTEyLDUxMixbXSwiZjNkYiIsIk0zMzEuMSAyNjIuMWwtLjEtMTNzMjEuNy0xOS44IDIxLjEtMjEuMmwtOS41LTIwYy0uNi0xLjQtMjkuNS0uNS0yOS41LS41bC05LjQtOS4zcy4yLTI4LjUtMS4yLTI5LjFsLTIwLjEtOS4yYy0xLjQtLjYtMjAuNyAyMS0yMC43IDIxbC0xMy4xLS4ycy0yMC41LTIxLjQtMjEuOS0yMC44bC0yMCA4LjNjLTEuNCAuNSAuMiAyOC45IC4yIDI4LjlsLTkuMSA5LjFzLTI5LjItLjktMjkuNyAuNEwxNjAgMjI2LjNjLS42IDEuNCAyMSAyMSAyMSAyMWwuMSAxMi45UzE1OS40IDI4MCAxNjAgMjgxLjRsOS41IDIwYy42IDEuNCAyOS41IC41IDI5LjUgLjVsOS40IDkuM3MtLjIgMzEuOCAxLjIgMzIuM2wyMC4xIDguM2MxLjQgLjYgMjAuNy0yMy41IDIwLjctMjMuNWwxMy4xIC4yczIwLjUgMjMuOCAyMS44IDIzLjNsMjAtNy41YzEuNC0uNi0uMi0zMi4xLS4yLTMyLjFsOS4xLTkuMXMyOS4yIC45IDI5LjctLjVsOC4xLTE5LjhjLjctMS4xLTIwLjktMjAuNy0yMC45LTIwLjd6bS00NC45LTguN2MuNyAxNy4xLTEyLjggMzEuNi0zMC4xIDMyLjRzLTMyLjEtMTIuNS0zMi44LTI5LjYgMTIuOC0zMS42IDMwLjEtMzIuM2MxNy4zLS44IDMyLjEgMTIuNSAzMi44IDI5LjV6bTIwMS4yLTM3LjlsLTk3LTk3LS4xIC4xYy03NS4xLTczLjMtMTk1LjQtNzIuOC0yNjkuOCAxLjYtNTAuOSA1MS0yNy44IDI3LjktOTUuNyA5NS4zLTIyLjMgMjIuMy0yMi4zIDU4LjcgMCA4MSA2OS45IDY5LjQgNDYuNCA0NiA5Ny40IDk3bC4xLS4xYzc1LjEgNzMuMyAxOTUuNCA3Mi45IDI2OS44LTEuNiA1MS01MC45IDI3LjktMjcuOSA5NS4zLTk1LjMgMjIuMy0yMi4zIDIyLjMtNTguNyAwLTgxek0zNjMuNSAxNDguMmExNTIuMyAxNTIuMyAwIDEgMSAtMjE1IDIxNS42IDE1Mi4zIDE1Mi4zIDAgMSAxIDIxNS0yMTUuNnoiXX0sU3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJvdHMiLGljb246WzY0MCw1MTIsW10sImUzNDAiLCJNODYuMyAxOTcuOGMtOC0uMS0xNS45IDEuNy0yMy4xIDUuMXMtMTMuNSA4LjYtMTguNCAxNC45bDAtNjEuOWMwLTIuMi0uOS00LjMtMi40LTUuOHMtMy42LTIuNC01LjgtMi40bC0yOC40IDBjLTIuMiAwLTQuMyAuOS01LjggMi40UzAgMTUzLjggMCAxNTZMMCAzMzMuNmMwIDEuMSAuMiAyLjEgLjYgMy4xczEgMS45IDEuOCAyLjcgMS43IDEuNCAyLjcgMS44IDIuMSAuNiAzLjEgLjZsMjguNCAwYzEuMSAwIDIuMS0uMiAzLjEtLjZzMS45LTEgMi43LTEuOCAxLjQtMS43IDEuOC0yLjcgLjYtMi4xIC42LTMuMWwwLTguMWMxMS42IDEzLjQgMjUuOSAxOS44IDQxLjYgMTkuOCAzNC42IDAgNjEuOS0yNi4yIDYxLjktNzMuOCAwLTQ1LjktMjctNzMuNi02MS45LTczLjZ6TTcxLjUgMzA1LjdjLTkuNiAwLTIxLjItNC45LTI2LjctMTIuNWwwLTQzYzUuNS03LjYgMTcuMi0xMi44IDI2LjctMTIuOCAxNy43IDAgMzEuMSAxMy4xIDMxLjEgMzQgMCAyMS4yLTEzLjQgMzQuMy0zMS4xIDM0LjN6bTE1Ni40LTU5YTE3LjQgMTcuNCAwIDEgMCAwIDM0LjggMTcuNCAxNy40IDAgMSAwIDAtMzQuOHptNDYuMS05MGwwLTQ0LjdjMi44LTEuMiA1LjItMy4zIDYuNi02czEuOS01LjggMS4zLTguOS0yLjItNS43LTQuNi03LjctNS40LTMtOC40LTMtNi4xIDEuMS04LjQgMy00IDQuNy00LjYgNy43LS4xIDYuMSAxLjMgOC45IDMuOCA0LjggNi42IDZsMCA0NC43Yy0yOCAxLjMtNTQuNCAxMy42LTczLjYgMzQuMXMtMjkuNSA0Ny43LTI4LjggNzUuOCAxMi4zIDU0LjcgMzIuNCA3NC4zIDQ3IDMwLjYgNzUuMSAzMC42IDU1LTExIDc1LjEtMzAuNiAzMS43LTQ2LjMgMzIuNC03NC4zLTkuNy01NS4zLTI4LjgtNzUuOC00NS41LTMyLjgtNzMuNi0zNC4xem04NiAxMDcuNGMwIDMwLjUtNDAuOCA1NS4zLTkxLjEgNTUuM3MtOTEuMS0yNC43LTkxLjEtNTUuMyA0MC44LTU1LjMgOTEuMS01NS4zIDkxLjEgMjQuNyA5MS4xIDU1LjNsMCAwem0tNTAuMiAxNy40YzMuNCAwIDYuOC0xIDkuNy0yLjlzNS4xLTQuNiA2LjQtNy44IDEuNy02LjcgMS0xMC4xLTIuMy02LjUtNC44LTguOS01LjUtNC4xLTguOS00LjgtNi45LS4zLTEwLjEgMS01LjkgMy41LTcuOCA2LjQtMi45IDYuMi0yLjkgOS43YzAgNC42IDEuOCA5IDUuMSAxMi4zczcuNyA1LjEgMTIuMyA1LjFsMCAwem0yNzAuOS0zMWMtMTQuOC0yLjYtMjIuNC0zLjgtMjIuNC05LjkgMC01LjUgNy4zLTkuOSAxNy43LTkuOSAxMi4yIC4xIDI0LjIgMy42IDM0LjUgMTAuMSAxLjggMS4yIDQgMS42IDYuMiAxLjFzNC0xLjcgNS4xLTMuNmMuMS0uMSAuMS0uMiAuMi0uM2w4LjYtMTQuOWMxLjEtMS45IDEuNC00LjEgLjgtNi4xcy0xLjktMy45LTMuNy01Yy0xNS43LTkuNC0zMy43LTE0LjMtNTItMTQuMS0zOSAwLTYwLjIgMjEuNS02MC4yIDQ2LjIgMCAzNi4zIDMzLjcgNDEuOSA1Ny42IDQ1LjYgMTMuNCAyLjMgMjQuMSA0LjQgMjQuMSAxMSAwIDYuNC01LjUgMTAuOC0xOC45IDEwLjgtMTMuNiAwLTMxLTYuMi00Mi42LTEzLjYtLjktLjYtMS45LTEtMy0xLjJzLTIuMS0uMi0zLjIgLjEtMi4xIC43LTIuOSAxLjMtMS42IDEuNC0yLjIgMi4zYzAgLjEtLjEgLjEtLjEgLjJsLTEwLjIgMTYuOWMtMS4xIDEuOC0xLjQgNC0xIDZzMS43IDMuOSAzLjUgNWMxNS4yIDEwLjMgMzcuNyAxNi43IDU5LjQgMTYuNyA0MC40IDAgNjQtMTkuOCA2NC00Ni41IDAtMzguMS0zNS41LTQzLjktNTkuMy00OC4zem0tOTUuOSA2MC44Yy0uNS0yLTEuOC0zLjctMy42LTQuOHMtMy45LTEuNS01LjktMS4xYy0xLjQgLjMtMi44IC40LTQuMiAuNC03LjggMC0xMi41LTYuMS0xMi41LTE0LjJsMC01MS4yIDIwLjMgMGMyLjIgMCA0LjItLjkgNS44LTIuNHMyLjQtMy42IDIuNC01LjhsMC0yMi43YzAtMi4yLS45LTQuMi0yLjQtNS44cy0zLjYtMi40LTUuOC0yLjRsLTIwLjMgMCAwLTMwLjJjMC0yLjItLjktNC4yLTIuNC01LjhzLTMuNi0yLjQtNS44LTIuNGwtMjguMiAwYy0yLjIgMC00LjIgLjktNS44IDIuNHMtMi40IDMuNi0yLjQgNS44bDAgMzAuMi0xNS4xIDBjLTEuMSAwLTIuMSAuMi0zLjEgLjZzLTEuOSAxLTIuNiAxLjgtMS40IDEuNy0xLjggMi42LS42IDItLjYgMy4xbDAgMjIuN2MwIDEuMSAuMiAyLjEgLjYgMy4xczEgMS45IDEuOCAyLjYgMS43IDEuNCAyLjYgMS44IDIgLjYgMy4xIC42bDE1LjEgMCAwIDYzLjdjMCAyNyAxNS40IDQxLjMgNDMuOSA0MS4zIDEyLjIgMCAyMS40LTIuMiAyNy42LTUuNCAxLjYtLjggMi45LTIuMiAzLjctMy45cy45LTMuNiAuNS01LjRsLTUtMTkuM3oiXX0senN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InZpbmUiLGljb246WzM4NCw1MTIsW10sImYxY2EiLCJNMzg0IDI1NC43bDAgNTIuMWMtMTguNCA0LjItMzYuOSA2LjEtNTIuMSA2LjEtMzYuOSA3Ny40LTEwMyAxNDMuOC0xMjUuMSAxNTYuMi0xNCA3LjktMjcuMSA4LjQtNDIuNy0uOC0yNy4xLTE2LjMtMTI5LjktMTAwLjYtMTY0LjEtMzY1LjZsNzQuNSAwYzE4LjcgMTU5LjEgNjQuNSAyNDAuNyAxMTQuOCAzMDEuOCAyNy45LTI3LjkgNTQuOC02NS4xIDc1LjYtMTA2LjktNDkuOC0yNS4zLTgwLjEtODAuOS04MC4xLTE0NS42IDAtNjUuNiAzNy43LTExNS4xIDEwMi4yLTExNS4xIDExNC45IDAgMTA2LjIgMTI3LjkgODEuNiAxODEuNSAwIDAtNDYuNCA5LjItNjMuNS0yMC41IDMuNC0xMS4zIDguMi0zMC44IDguMi00OC41IDAtMzEuMy0xMS4zLTQ2LjYtMjguNC00Ni42LTE4LjIgMC0zMC44IDE3LjEtMzAuOCA1MCAuMSA3OS4yIDU5LjQgMTE4LjcgMTI5LjkgMTAxLjl6Il19LENzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtZWRydCIsaWNvbjpbNTc2LDUxMixbXSwiZjNjOCIsIk0xMjkuNyAyNTZjMCAxMjEuOCA4My45IDIyMi44IDE5My41IDI0MS4xLTE4LjcgNC41LTM4LjIgNi45LTU4LjIgNi45LTEzNy42IDAtMjQ5LTExMS0yNDktMjQ4UzEyNy40IDggMjY0LjkgOGMyMC4xIDAgMzkuNiAyLjQgNTguMiA2LjktMTA5LjYgMTguMy0xOTMuNCAxMTkuMy0xOTMuNCAyNDEuMXpNNDI3LjEgMzU2LjNjLTc3LjcgNTUuNC0xNzkuNiA0Ny41LTI0MC40LTE0LjYgNS41IDE0LjEgMTIuNyAyNy43IDIxLjcgNDAuNSA2MS42IDg4LjIgMTgyLjQgMTA5LjMgMjY5LjcgNDdzMTA4LjEtMTg0LjMgNDYuNS0yNzIuNmMtOS0xMi45LTE5LjMtMjQuMy0zMC41LTM0LjIgMzcuNCA3OC44IDEwLjcgMTc4LjUtNjcgMjMzLjl6bS0yMTguOC0yNDRjLTEuNCAxLTIuNyAyLjEtNCAzLjEgNjQuMy0xNy44IDEzNS45IDQgMTc4LjkgNjAuNSAzNS43IDQ3IDQyLjkgMTA2LjYgMjQuNCAxNTggNTYuNy01Ni4yIDY3LjYtMTQyLjEgMjIuMy0yMDEuOC01MC02NS41LTE0OS4xLTc0LjQtMjIxLjYtMTkuOHpNMzEyIDIyNGMtNC40IDAtOC0zLjYtOC04bDAtNDBjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04IDMuNi04IDhsMCA0MGMwIDQuNC0zLjYgOC04IDhsLTQwIDBjLTQuNCAwLTggMy42LTggOGwwIDQ4YzAgNC40IDMuNiA4IDggOGw0MCAwYzQuNCAwIDggMy42IDggOGwwIDQwYzAgNC40IDMuNiA4IDggOGw0OCAwYzQuNCAwIDgtMy42IDgtOGwwLTQwYzAtNC40IDMuNi04IDgtOGw0MCAwYzQuNCAwIDgtMy42IDgtOGwwLTQ4YzAtNC40LTMuNi04LTgtOGwtNDAgMHoiXX0sVHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9zaSIsaWNvbjpbNTEyLDUxMixbXSwiZjQxYSIsIk04IDI2Ni40YzIuMy0xMzUuOCA5Ny40LTIzMi40IDIxMy44LTI0OC4xIDEzOC44LTE4LjYgMjU1LjYgNzUuOCAyNzggMjAxLjEgMjEuMyAxMTguOC00NCAyMzAtMTUxLjYgMjc0LTkuMyAzLjgtMTQuNCAxLjctMTgtNy43LTE3LjgtNDYuMy0zNS42LTkyLjYtNTMuNC0xMzktMy4xLTguMS0xLTEzLjIgNy0xNi44IDI0LjItMTEgMzkuMy0yOS40IDQzLjMtNTUuOCAxLjUtOS43IDEtMTkuNi0xLjUtMjkuMXMtNi45LTE4LjQtMTIuOS0yNi4xLTEzLjYtMTQuMS0yMi4yLTE4LjgtMTguMS03LjUtMjcuOS04LjNjLTM5LTMuNC03MS44IDIzLjctNzcuNSA1OS43LTUuMiAzMyAxMS4xIDYzLjcgNDEuOSA3Ny43IDkuNiA0LjQgMTEuNSA4LjYgNy44IDE4LjQtMTcuOSA0Ni42LTM1LjggOTMuMi01My43IDEzOS45LTIuNiA2LjktOC4zIDkuMy0xNS41IDYuNS01Mi42LTIwLjMtMTAxLjQtNjEtMTMwLjgtMTE5LTI0LjktNDkuMi0yNS4yLTg3LjctMjYuOC0xMDguN3ptMjAuOS0xLjljLjQgNi42IC42IDE0LjMgMS4zIDIyLjEgNi4zIDcxLjkgNDkuNiAxNDMuNSAxMzEgMTgzLjEgMy4yIDEuNSA0LjQgLjggNS42LTIuMyAxNC45LTM5LjEgMjkuOS03OC4yIDQ1LTExNy4zIDEuMy0zLjMgLjYtNC44LTIuNC02LjctMzEuNi0xOS45LTQ3LjMtNDguNS00NS42LTg2IDEtMjEuNiA5LjMtNDAuNSAyMy44LTU2LjMgMzAtMzIuNyA3Ny0zOS44IDExNS41LTE3LjYgMTUuNiA5IDI4LjIgMjIuMyAzNi4yIDM4LjRzMTEuMiAzNC4yIDkgNTJjLTMuNiAzMC42LTE5LjMgNTMuOS00NS43IDY5LjgtMi43IDEuNi0zLjUgMi45LTIuMyA2IDE1LjIgMzkuMiAzMC4zIDc4LjQgNDUuMiAxMTcuNyAxLjIgMy4xIDIuNCAzLjggNS42IDIuMyAzNS41LTE2LjYgNjUuMi00MC4zIDg4LjEtNzIgMzQuOC00OC4yIDQ5LjEtMTAxLjkgNDIuMy0xNjEtMTMuNy0xMTcuNS0xMTkuNC0yMTQuOC0yNTUuNS0xOTgtMTA2LjEgMTMtMTk1LjMgMTAyLjUtMTk3LjEgMjI1Ljh6Il19LF9zdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnZyIsaWNvbjpbNTEyLDUxMixbXSwiZjI2MCIsIk0xNzkuMiAyMzAuNGwxMDIuNCAxMDIuNC0xMDIuNCAxMDIuNC0xNzkuMi0xNzkuMiAxNzkuMi0xNzkuMiA0NC44IDQ0LjgtMjUuNiAyNS42LTE5LjItMTkuMi0xMjggMTI4IDEyOCAxMjggNTEuNS01MS41LTc3LjEtNzYuNSAyNS42LTI1LjZ6TTMzMi44IDc2LjhsLTEwMi40IDEwMi40IDEwMi40IDEwMi40IDI1LjYtMjUuNi03Ny4xLTc2LjUgNTEuNS01MS41IDEyOCAxMjgtMTI4IDEyOC0xOS4yLTE5LjItMjUuNiAyNS42IDQ0LjggNDQuOCAxNzkuMi0xNzkuMi0xNzkuMi0xNzkuMnoiXX0sTHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1eXNlbGxhZHMiLGljb246WzQ0OCw1MTIsW10sImYyMGQiLCJNMjI0IDE1MC43bDQyLjkgMTYwLjctODUuOCAwIDQyLjktMTYwLjd6TTQ0OCA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM4Mi43IDQwNS4zbC05NC41LTI5OC43LTEyOC40IDAtOTQuNSAyOTguNyA5MC43IDAgMTExLjctOTEuNiAyNC4yIDkxLjYgOTAuOCAweiJdfSxBc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBsdXMiLGljb246WzUxMiw1MTIsW10sImYyYjMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0xODUuMyAzODBjLTMyLjkgMC02NC40LTEzLjEtODcuNy0zNi4zcy0zNi4zLTU0LjgtMzYuMy04Ny43IDEzLjEtNjQuNCAzNi4zLTg3LjcgNTQuOC0zNi4zIDg3LjctMzYuM2MzMS4zIDAgNjAuMSAxMSA4MyAzMi4zbC0zMy42IDMyLjZjLTEzLjItMTIuOS0zMS4zLTE5LjEtNDkuNC0xOS4xLTQyLjkgMC03Ny4yIDM1LjUtNzcuMiA3OC4xUzE0Mi4zIDMzNCAxODUuMyAzMzRjMzIuNiAwIDY0LjktMTkuMSA3MC4xLTUzLjNsLTcwLjEgMCAwLTQyLjYgMTE2LjkgMGMxLjMgNi44IDEuOSAxMy44IDEuOSAyMC43IDAgNzAuOC00Ny41IDEyMS4yLTExOC44IDEyMS4yek00MTUuNSAyNzMuOGwwIDM1LjUtMzUuNSAwIDAtMzUuNS0zNS41IDAgMC0zNS41IDM1LjUgMCAwLTM1LjUgMzUuNSAwIDAgMzUuNSAzNS4yIDAgMCAzNS41LTM1LjIgMHoiXX0sRHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNjcmVlbnBhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3MCIsIk0yNzguNiAyMi41YTIyLjUgMjIuNSAwIDEgMSAtNDUgMCAyMi41IDIyLjUgMCAxIDEgNDUgMHpNMTk4LjcgMjU5YTU3LjQgNTcuNCAwIDEgMSAxMTQuOCAwIDU3LjQgNTcuNCAwIDEgMSAtMTE0LjggMHptMTM4LjYgOTFjMjIuMy0xOS45IDM2LjUtNDcuMyAzOS45LTc3bDExOS41IDBjLTMuNSA2MS40LTMwLjQgMTE5LjItNzUuMiAxNjEuNC00NC43IDQyLjItMTAzLjkgNjUuOC0xNjUuNCA2NS44UzEzNS40IDQ3Ni42IDkwLjcgNDM0LjRDNDUuOSAzOTIuMiAxOS4xIDMzNC40IDE1LjUgMjczbDExOS43IDBjMy40IDI5LjcgMTcuNiA1Ny4xIDM5LjkgNzdzNTEuMiAzMC45IDgxLjEgMzAuOWMyOSAwIDU4LjctMTEgODEuMS0zMC45ek0yOC4zIDE0MS43YTIyLjUgMjIuNSAwIDEgMSA0NS0xLjQgMjIuNSAyMi41IDAgMSAxIC00NSAxLjR6bTQ1NS42LS43YTIyLjQgMjIuNCAwIDEgMSAtNDQuOSAwIDIyLjQgMjIuNCAwIDEgMSA0NC45IDB6TTMxOCA5NS4zYy0xNy4zIDEzLjgtMzkuMiAyMi44LTYxLjkgMjIuOHMtNDQuNi05LTYxLjktMjIuOGMtMTcuMy0xNC43LTI4LjgtMzUuMS0zMi40LTU3LjUgMTUuMS02LjQgMzAuOC0xMS4zIDQ2LjktMTQuNSAwIDEyLjYgNSAyNC42IDEzLjkgMzMuNXMyMC45IDEzLjkgMzMuNSAxMy45IDI0LjYtNSAzMy41LTEzLjkgMTMuOS0yMC45IDEzLjktMzMuNWMxNi4xIDMuMiAzMS44IDguMSA0Ni45IDE0LjUtMy42IDIyLjQtMTUuMSA0Mi44LTMyLjQgNTcuNXpNODIuOSAyMzFjLTIxLjQgNy42LTQ0LjcgNy40LTY1LjktLjYgMi0xNi4zIDUuNi0zMi4zIDEwLjgtNDcuOSA1LjQgMy4xIDExLjMgNS4xIDE3LjUgNiA2LjIgLjggMTIuNCAuNCAxOC41LTEuMiA2LTEuNyAxMS42LTQuNCAxNi42LTguMnM5LjEtOC41IDEyLjItMTMuOSA1LjEtMTEuNCA2LTE3LjVjLjgtNi4yIC40LTEyLjUtMS4yLTE4LjVzLTQuNC0xMS42LTguMi0xNi42Yy0zLjgtNC45LTguNS05LjEtMTMuOS0xMi4yIDEwLjgtMTIuMyAyMi45LTIzLjUgMzYtMzMuMyAxNy42IDE0LjMgMjkuNSAzNC41IDMzLjYgNTYuOHMuMSA0NS40LTExLjIgNjVjLTExLjQgMTkuNi0yOS40IDM0LjUtNTAuNyA0Mi4xem0zNDYuNCAuMWMtMjEuMy03LjYtMzkuMy0yMi42LTUwLjctNDIuMi0xMS4zLTE5LjYtMTUuMi00Mi43LTExLjEtNjUgNC4xLTIyLjIgMTYtNDIuNCAzMy41LTU2LjcgMTMuMSA5LjggMjUuMiAyMSAzNiAzMy4zLTEwLjcgNi40LTE4LjQgMTYuNy0yMS41IDI4LjgtMy4yIDEyLTIuMyAyNC44IDQuOCAzNS42IDYuMiAxMC44IDE2LjQgMTguNyAyOC40IDIyczI0LjkgMS43IDM1LjctNC4zYzUuMyAxNS41IDguOSAzMS42IDEwLjkgNDcuOC0yMi4xIDguMS00NC42IDguMy02NiAuN3oiXX0sRXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpdGNvaW4iLGljb246WzUxMiw1MTIsW10sImYzNzkiLCJNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzU0LjMtMzUuM2M0LjktMzMtMjAuMi01MC43LTU0LjYtNjIuNmwxMS4xLTQ0LjctMjcuMi02LjgtMTAuOSA0My41Yy03LjItMS44LTE0LjUtMy41LTIxLjgtNS4xbDEwLjktNDMuOC0yNy4yLTYuOC0xMS4yIDQ0LjdjLTUuOS0xLjMtMTEuNy0yLjctMTcuNC00LjFsMC0uMS0zNy41LTkuNC03LjIgMjkuMXMyMC4yIDQuNiAxOS44IDQuOWMxMSAyLjggMTMgMTAgMTIuNyAxNS44bC0xMi43IDUwLjljLjggLjIgMS43IC41IDIuOCAuOS0uOS0uMi0xLjktLjUtMi45LS43bC0xNy44IDcxLjNjLTEuMyAzLjMtNC44IDguNC0xMi41IDYuNSAuMyAuNC0xOS44LTQuOS0xOS44LTQuOWwtMTMuNSAzMS4xIDM1LjQgOC44YzYuNiAxLjcgMTMgMy40IDE5LjQgNWwtMTEuMyA0NS4yIDI3LjIgNi44IDExLjItNDQuN2M3LjIgMiAxNC40IDMuOCAyMS43IDUuNmwtMTEuMSA0NC41IDI3LjIgNi44IDExLjMtNDUuMWM0Ni40IDguOCA4MS4zIDUuMiA5Ni0zNi43IDExLjgtMzMuOC0uNi01My4zLTI1LTY2IDE3LjgtNC4xIDMxLjItMTUuOCAzNC43LTM5Ljl6bS02Mi4yIDg3LjJjLTguNCAzMy44LTY1LjMgMTUuNS04My44IDEwLjlsMTQuOS01OS45YzE4LjQgNC42IDc3LjYgMTMuNyA2OC44IDQ5em04LjQtODcuN2MtNy43IDMwLjctNTUgMTUuMS03MC40IDExLjNsMTMuNS01NC4zYzE1LjQgMy44IDY0LjggMTEgNTYuOCA0M3oiXX0sJHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN3aWZ0IixpY29uOls0NDgsNTEyLFtdLCJmOGUxIiwiTTQ0OCAxNTYuMWMwLTQuNS0uMS05LS4yLTEzLjUtLjEtOS45LTEtMTkuNy0yLjYtMjkuNC0xLjctOS43LTQuOC0xOS4yLTkuMi0yOC05LTE3LjctMjMuNC0zMi4xLTQxLjItNDEuMS04LjgtNC41LTE4LjMtNy42LTI4LTkuMi05LjctMS42LTE5LjYtMi41LTI5LjQtMi42LTQuNS0uMS05LS4yLTEzLjUtLjJMMTI0LjEgMzJjLTQuNSAwLTkgLjEtMTMuNSAuMi0yLjQgLjEtNC45IC4yLTcuNCAuMy03LjQgLjMtMTQuOCAxLjEtMjIuMSAyLjMtNy4zIDEuMy0xNC40IDMuMy0yMS4yIDYuMS0yLjMgMS00LjYgMi02LjggMy4xLTYuNiAzLjQtMTIuOCA3LjUtMTguNCAxMi4zLTEuOSAxLjYtMy43IDMuMy01LjQgNS03IDctMTIuOSAxNS0xNy40IDIzLjgtNC40IDguOC03LjYgMTguMy05LjIgMjgtMS42IDkuNy0yLjQgMTkuNi0yLjUgMjkuNC0uMSA0LjUtLjIgOS0uMiAxMy41TDAgMzU1LjljMCA0LjUgLjEgOSAuMiAxMy41IC4xIDkuOSAxIDE5LjcgMi42IDI5LjQgMS43IDkuNyA0LjggMTkuMiA5LjIgMjggOSAxNy43IDIzLjQgMzIuMSA0MS4xIDQxLjEgOC44IDQuNCAxOC4zIDcuNSAyOCA5LjIgOS43IDEuNiAxOS42IDIuNSAyOS40IDIuNiA0LjUgLjEgOSAuMiAxMy41IC4ybDE5OS44IDBjNC41IDAgOS0uMSAxMy41LS4yIDkuOS0uMSAxOS43LTEgMjkuNC0yLjYgOS43LTEuNyAxOS4yLTQuOCAyOC05LjIgMTcuNy05IDMyLjEtMjMuNCA0MS4xLTQxLjIgNC40LTguOCA3LjYtMTguMyA5LjItMjggMS42LTkuNyAyLjUtMTkuNiAyLjYtMjkuNCAuMS00LjUgLjItOSAuMi0xMy41bDAtMTgzLjhjMC01LjQgMC0xMC43IDAtMTZ6bS02OS45IDI0MWMtMjAtMzguOS01Ny4yLTI5LjMtNzYuMy0xOS41LTEuNyAxLTMuNSAyLTUuMiAzbC0uNCAuMmMtMzkuNSAyMS05Mi41IDIyLjUtMTQ1LjgtLjQtNDMuNC0xOC44LTgwLjEtNTAuMy0xMDUuMy05MC40IDEyLjMgOS4xIDI1LjQgMTYuOSAzOS4yIDIzLjQgNTYuNCAyNi40IDExMyAyNC41IDE1MyAwLTU3LTQzLjgtMTA0LjYtMTAxLTE0MS4xLTE0Ny4yLTctOC4xLTEzLjItMTYuOC0xOC44LTI1LjkgNDMuNyA0MCAxMTIuNyA5MC4yIDEzNy41IDEwNC4xLTUyLjYtNTUuNS05OC45LTEyMy45LTk2LjctMTIxLjcgODIuOCA4My40IDE1OS4yIDEzMC42IDE1OS4yIDEzMC42IDIuOSAxLjYgNSAyLjggNi43IDQgMS42LTQuMSAzLTguMiA0LjItMTIuNSAxMy4yLTQ4LjMtMS43LTEwMy42LTM1LjMtMTQ5LjIgNzYuOCA0Ni4xIDEyMi4yIDEzMy43IDEwMy42IDIwNy44LS40IDEuNy0xIDMuNC0xLjQgNS4xIDM4LjUgNDcuNCAyOCA5OC4yIDIzLjEgODguNmwwIDB6Il19LElzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaWxlcy1waW53aGVlbCIsaWNvbjpbNTEyLDUxMixbXSwiZTY5ZiIsIk0yNTMuNSAyNDYuNEwxMzcuMiAxMzAuMmMtLjYtLjYtMS0xLjMtMS40LTJzLS41LTEuNi0uNS0yLjQgLjItMS42IC41LTIuNCAuOC0xLjQgMS40LTJMMjUzLjYgNS4xYy45LS45IDItMS41IDMuMi0xLjdzMi41LS4xIDMuNiAuMyAyLjEgMS4zIDIuOCAyLjMgMS4xIDIuMiAxLjEgMy41bDAgMjMyLjVjMCAxLjMtLjMgMi41LTEgMy42cy0xLjcgMS45LTIuOSAyLjQtMi41IC42LTMuNyAuMy0yLjQtLjktMy4yLTEuOXptNDAuMy00LjRsMC0xMzQuNGMwLS44IC4xLTEuNiAuNS0yLjRzLjgtMS41IDEuMy0yLjEgMS4zLTEuMSAyLTEuNCAxLjYtLjUgMi40LS41bDEzNC40IDBjMS4yIDAgMi41IC40IDMuNSAxLjFzMS44IDEuNyAyLjMgMi44IC42IDIuNCAuMyAzLjYtLjkgMi4zLTEuNyAzLjJMMzA0LjMgMjQ2LjRjLS45IC44LTIgMS40LTMuMiAxLjZzLTIuNCAuMS0zLjUtLjQtMi4xLTEuMy0yLjgtMi4zLTEuMS0yLjItMS4xLTMuNGwuMSAuMXptMzAuNiAzNWMtMS4yIDAtMi41LS4zLTMuNS0xcy0xLjktMS42LTIuNC0yLjgtLjYtMi40LS40LTMuNiAuOC0yLjMgMS43LTMuMkw0MDQgMTgyLjJjLjYtLjYgMS4zLTEgMi0xLjRzMS42LS41IDIuNC0uNSAxLjYgLjIgMi40IC41IDEuNCAuOCAyIDEuNGw4NC40IDg0LjJjLjkgLjkgMS41IDIgMS43IDMuMnMuMSAyLjUtLjMgMy42LTEuMyAyLjEtMi4zIDIuOC0yLjIgMS4xLTMuNSAxLjFsLTE2OC41IDAgLjEtLjF6bTkwLjcgMTMxbC05NS4zLTk1LjJjLS45LS45LTEuNS0yLTEuNy0zLjJzLS4xLTIuNSAuNC0zLjcgMS4zLTIuMSAyLjQtMi44IDIuMy0xIDMuNS0xbDk1LjIgMGMxLjcgMCAzLjIgLjcgNC40IDEuOHMxLjggMi44IDEuOCA0LjRsMCA5NS4zYzAgMS4yLS40IDIuNS0xLjEgMy41cy0xLjcgMS44LTIuOCAyLjMtMi40IC42LTMuNiAuMy0yLjMtLjktMy4yLTEuN3pNMTYuOCAzMDIuMWwyMTYuOSAwYzEuMiAwIDIuNSAuNCAzLjUgMS4xczEuOCAxLjcgMi4zIDIuOCAuNiAyLjQgLjMgMy42LS44IDIuMy0xLjcgMy4yTDEyOS43IDQyMS4yYy0uNiAuNi0xLjMgMS0yIDEuNHMtMS42IC41LTIuNCAuNS0xLjYtLjItMi40LS41LTEuNC0uOC0yLTEuNEwxMi4zIDMxMi44Yy0uOS0uOS0xLjUtMi0xLjctMy4ycy0uMS0yLjUgLjQtMy42IDEuMy0yLjEgMi4zLTIuOCAyLjMtMSAzLjUtMWwwLS4xek0yNjQuMyA0NjUuM2MwIC44LS4yIDEuNi0uNSAyLjRzLS44IDEuNS0xLjQgMi0xLjMgMS0yIDEuNC0xLjYgLjUtMi40IC41bC0xMjggMGMtMS4yIDAtMi41LS40LTMuNS0xLjFzLTEuOC0xLjctMi4zLTIuOC0uNi0yLjQtLjMtMy42IC44LTIuMyAxLjctMy4ybDEyOC0xMjhjLjktLjkgMi0xLjUgMy4yLTEuN3MyLjUtLjEgMy42IC4zIDIuMSAxLjMgMi44IDIuMyAxLjEgMi4yIDEuMSAzLjVsMCAxMjh6bTQwLTEzMi41bDgyLjggODIuN2MuNiAuNiAxIDEuMyAxLjQgMnMuNSAxLjYgLjUgMi40LS4yIDEuNi0uNSAyLjQtLjggMS40LTEuNCAyTDMwNC4zIDUwN2MtLjkgLjktMiAxLjUtMy4yIDEuN3MtMi41IC4xLTMuNi0uMy0yLjEtMS4zLTIuOC0yLjMtMS4xLTIuMi0xLjEtMy41bDAtMTY1LjRjMC0xLjIgLjQtMi41IDEuMS0zLjVzMS43LTEuOCAyLjgtMi4zIDIuNC0uNiAzLjYtLjMgMi4zIC44IDMuMiAxLjd6TTc5IDEyMi40YzAtMS4yIC4zLTIuNSAxLTMuNXMxLjctMS44IDIuOC0yLjMgMi40LS42IDMuNi0uNCAyLjMgLjggMy4yIDEuN0wyMzguMSAyNjYuNGMuOSAuOSAxLjUgMiAxLjcgMy4ycy4xIDIuNS0uMyAzLjYtMS4zIDIuMS0yLjMgMi44LTIuMiAxLjEtMy41IDEuMWwtMTQ4LjQgMGMtMS43IDAtMy4yLS43LTQuNC0xLjhzLTEuOC0yLjgtMS44LTQuNGwwLTE0OC40LS4xLS4xeiJdfSxQc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGFyYXZlbCIsaWNvbjpbNTEyLDUxMixbXSwiZjNiZCIsIk01MDQuNiAxMTUuOGMtLjEtLjItLjItLjUtLjMtLjctLjEtLjQtLjMtLjgtLjUtMS4yLS4yLS4yLS4zLS41LS41LS43LS4yLS4zLS41LS42LS43LS45LS4yLS4yLS41LS40LS44LS42LS4zLS4yLS42LS41LS45LS43TDQwNC42IDU1LjVjLTEuMi0uNy0yLjYtMS4xLTQtMS4xcy0yLjggLjQtNCAxLjFMMzAwLjMgMTExYy0uMyAuMi0uNiAuNC0uOSAuNy0uMyAuMi0uNSAuNC0uOCAuNi0uMyAuMy0uNSAuNi0uNyAuOS0uMiAuMi0uNCAuNC0uNSAuNy0uMiAuNC0uNCAuOC0uNSAxLjItLjEgLjItLjIgLjQtLjMgLjctLjIgLjctLjMgMS40LS4zIDIuMWwwIDEwNS4yLTgwLjIgNDYuMiAwLTIwNS45YzAtLjctLjEtMS40LS4zLTIuMS0uMS0uMi0uMi0uNC0uMy0uNy0uMS0uNC0uMy0uOC0uNS0xLjItLjEtLjMtLjQtLjUtLjUtLjctLjItLjMtLjUtLjYtLjctLjktLjItLjItLjUtLjQtLjgtLjYtLjMtLjItLjYtLjUtLjktLjdMMTE1LjggMS4xYy0xLjItLjctMi42LTEuMS00LTEuMXMtMi44IC40LTQgMS4xTDExLjUgNTYuNWMtLjMgLjItLjYgLjQtLjkgLjctLjMgLjItLjUgLjQtLjggLjYtLjMgLjMtLjUgLjYtLjcgLjktLjIgLjMtLjQgLjUtLjYgLjctLjIgLjQtLjQgLjgtLjUgMS4yLS4xIC4yLS4yIC40LS4zIC43LS4yIC43LS4zIDEuNC0uMyAyLjFsMCAzMjkuN2MwIDEuNCAuNCAyLjggMS4xIDRzMS43IDIuMiAyLjkgMi45TDIwNCA1MTAuOWMuNCAuMiAuOSAuNCAxLjMgLjUgLjIgLjEgLjQgLjIgLjYgLjMgMS4zIC40IDIuOCAuNCA0LjEgMCAuMi0uMSAuNC0uMiAuNi0uMiAuNS0uMiAxLS4zIDEuNC0uNkw0MDQuNiA0MDAuMWMxLjItLjcgMi4yLTEuNyAyLjktMi45czEuMS0yLjYgMS4xLTRsMC0xMDUuMyA5Mi4yLTUzLjFjMS4yLS43IDIuMi0xLjcgMi45LTNzMS4xLTIuNiAxLjEtNGwwLTEwOS44YzAtLjctLjEtMS40LS4yLTIuMXpNMTExLjggMTcuM2w4MC4yIDQ2LjEtODAuMiA0Ni4yLTgwLjItNDYuMiA4MC4yLTQ2LjJ6bTg4LjIgNjBsMCAyMDEuM2MtMzMuMiAxOS4xLTU5LjkgMzQuNS04MC4yIDQ2LjJsMC0yMDEuM0MxNTMgMTA0LjQgMTc5LjcgODkgMjAwIDc3LjN6bTAgNDEyLjhMMjMuNSAzODguNSAyMy41IDc3LjNjMjAuMyAxMS43IDQ3LjEgMjcuMSA4MC4yIDQ2LjJsMCAyMTUuMmMwIC4zIC4xIC42IC4xIC45IDAgLjQgLjEgLjggLjIgMS4yIC4xIC4zIC4yIC42IC40IC45IC4xIC4zIC4zIC43IC40IDEgLjIgLjMgLjQgLjUgLjYgLjggLjIgLjMgLjQgLjYgLjcgLjggLjIgLjIgLjUgLjQgLjggLjYgLjMgLjIgLjYgLjUgLjkgLjdsOTIuMiA1Mi4yIC4xIDkyLjR6bTgtMTA2LjJMMTI4IDMzOC42YzU0LjctMzEuNSAxMTMuNS02NS4zIDE3Ni4zLTEwMS41bDgwLjEgNDYuMUMzNTUgMzAwIDI5Ni4yIDMzMy41IDIwOCAzODMuOXptMTg0LjUgNC42bC0xNzYuNSAxMDEuNiAwLTkyLjNDMzE3LjQgMzQwIDM3Ni4yIDMwNi40IDM5Mi41IDI5N2wwIDkxLjR6bTAtMTE5LjFjLTIwLjMtMTEuNi00Ny4xLTI3LTgwLjItNDYuMWwwLTkxLjRjMjAuMyAxMS43IDQ3LjEgMjcuMSA4MC4yIDQ2LjJsMCA5MS4zem04LTEwNS4zbC04MC4yLTQ2LjIgODAuMi00Ni4yIDgwLjIgNDYuMS04MC4yIDQ2LjJ6bTggMTA1LjNsMC05MS4zYzMzLjItMTkuMSA2MC0zNC41IDgwLjMtNDYuMmwwIDkxLjQtODAuMyA0Ni4yeiJdfSxOc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid3Bmb3JtcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjI5OCIsIk00NDggNzUuMmwwIDM2MS43YzAgMjQuMy0xOSA0My4yLTQzLjIgNDMuMmwtMzYxLjYgMEMxOS4zIDQ4MCAwIDQ2MS40IDAgNDM2LjhMMCA3NS4yQzAgNTEuMSAxOC44IDMyIDQzLjIgMzJsMzYxLjcgMGMyNCAwIDQzLjEgMTguOCA0My4xIDQzLjJ6TTQxMC43IDQzNi44bDAtMzYxLjZjMC0zLTIuNi01LjgtNS44LTUuOGwtOS4zIDAtMTEwLjMgNzQuNi02MS4zLTQ5LjktNjEuMiA0OS45LTExMC4zLTc0LjctOS4zIDBjLTMuMiAwLTUuOCAyLjgtNS44IDUuOGwwIDM2MS43YzAgMyAyLjYgNS44IDUuOCA1LjhsMzYxLjcgMGMzLjIgLjEgNS44LTIuNyA1LjgtNS44ek0xNTAuMiAxODZsMCAzNy03My41IDAgMC0zNyA3My41IDB6bTAgNzQuNGwwIDM3LjMtNzMuNSAwIDAtMzcuMyA3My41IDB6bTExLjEtMTQ3LjNsNTQtNDMuNy0xMTguNSAwIDY0LjUgNDMuN3ptMjEwIDcyLjlsMCAzNy0xOTYgMCAwLTM3IDE5NiAwem0wIDc0LjRsMCAzNy4zLTE5NiAwIDAtMzcuMyAxOTYgMHpNMjg2LjcgMTEzLjFsNjQuNS00My43LTExOC40IDAgNTMuOSA0My43ek0zNzEuMyAzMzVsMCAzNy4zLTk5LjQgMCAwLTM3LjMgOTkuNCAweiJdfSxGc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BlYWtlci1kZWNrIixpY29uOls1MTIsNTEyLFtdLCJmODNjIiwiTTIxMy45IDI5NkwxMDAgMjk2Yy0yNi41IDAtNTItMTAuNS03MC43LTI5LjNTMCAyMjIuNSAwIDE5NiAxMC41IDE0NCAyOS4zIDEyNS4zIDczLjUgOTYgMTAwIDk2bDEzMi44IDBjMTAuNiAwIDIwLjggNC4yIDI4LjMgMTEuN3MxMS43IDE3LjcgMTEuNyAyOC4zLTQuMiAyMC44LTExLjcgMjguMy0xNy43IDExLjctMjguMyAxMS43TDk4IDE3NmMtMjYuNSAwLTI2LjQgNDAgMCA0MGwxMTMuOCAwYzI2LjUgMCA1MiAxMC41IDcwLjcgMjkuM3MyOS4zIDQ0LjIgMjkuMyA3MC43LTEwLjUgNTItMjkuMyA3MC43LTQ0LjIgMjkuMy03MC43IDI5LjNMNDAgNDE2Yy0xMC42IDAtMjAuOC00LjItMjguMy0xMS43UzAgMzg2LjYgMCAzNzYgNC4yIDM1NS4yIDExLjcgMzQ3LjcgMjkuNCAzMzYgNDAgMzM2bDE3My45IDBjMjYuNSAwIDI2LjUtNDAgMC00MHpNMjk4IDQxNmMxMy41LTkuMiAyNS0yMSAzMy44LTM0LjdzMTQuNy0yOS4yIDE3LjMtNDUuM2w2NC42IDBjMi42IDAgNS4yLS42IDcuNi0xLjZzNC42LTIuNSA2LjQtNC40IDMuMy00LjEgNC4yLTYuNSAxLjUtNSAxLjQtNy42bDAtMTIwYzAtMi42LS41LTUuMi0xLjQtNy42cy0yLjQtNC42LTQuMi02LjUtNC0zLjMtNi40LTQuNC01LTEuNi03LjYtMS42bC0xMTcuMiAwYzkuNy0xMS4xIDE1LTI1LjMgMTUtNDBzLTUuMy0yOC45LTE1LTQwbDEzNi45IDBjNDMuNCAwIDc4LjYgMzUuOCA3OC42IDgwbDAgMTYwYzAgNDQuMi0zNS4yIDgwLTc4LjYgODBMMjk4IDQxNnoiXX0sT3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZsaWNrciIsaWNvbjpbNDQ4LDUxMixbXSwiZjE2ZSIsIk00MDAgMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTQ0LjUgMTkyYTYzLjUgNjMuNSAwIDEgMSAwIDEyNyA2My41IDYzLjUgMCAxIDEgMC0xMjd6bTE1OSAwYTYzLjUgNjMuNSAwIDEgMSAwIDEyNyA2My41IDYzLjUgMCAxIDEgMC0xMjd6Il19LFJzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjYy12aXNhIixpY29uOls1NzYsNTEyLFtdLCJmMWYwIiwiTTQ3MC4xIDIzMS4zczcuNiAzNy4yIDkuMyA0NWwtMzMuNCAwYzMuMy04LjkgMTYtNDMuNSAxNi00My41LS4yIC4zIDMuMy05LjEgNS4zLTE0LjlsMi44IDEzLjR6TTU3NiA4MGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE1Mi41IDMzMS4ybDYzLjItMTU1LjItNDIuNSAwLTM5LjMgMTA2LTQuMy0yMS41LTE0LTcxLjRjLTIuMy05LjktOS40LTEyLjctMTguMi0xMy4xbC02NC43IDAtLjcgMy4xYzE1LjggNCAyOS45IDkuOCA0Mi4yIDE3LjFsMzUuOCAxMzUgNDIuNSAwem05NC40IC4ybDI1LjItMTU1LjQtNDAuMiAwLTI1LjEgMTU1LjQgNDAuMSAwem0xMzkuOS01MC44Yy4yLTE3LjctMTAuNi0zMS4yLTMzLjctNDIuMy0xNC4xLTcuMS0yMi43LTExLjktMjIuNy0xOS4yIC4yLTYuNiA3LjMtMTMuNCAyMy4xLTEzLjQgMTMuMS0uMyAyMi43IDIuOCAyOS45IDUuOWwzLjYgMS43IDUuNS0zMy42Yy03LjktMy4xLTIwLjUtNi42LTM2LTYuNi0zOS43IDAtNjcuNiAyMS4yLTY3LjggNTEuNC0uMyAyMi4zIDIwIDM0LjcgMzUuMiA0Mi4yIDE1LjUgNy42IDIwLjggMTIuNiAyMC44IDE5LjMtLjIgMTAuNC0xMi42IDE1LjItMjQuMSAxNS4yLTE2IDAtMjQuNi0yLjUtMzcuNy04LjNsLTUuMy0yLjUtNS42IDM0LjljOS40IDQuMyAyNi44IDguMSA0NC44IDguMyA0Mi4yIC4xIDY5LjctMjAuOCA3MC01M3pNNTI4IDMzMS40bC0zMi40LTE1NS40LTMxLjEgMGMtOS42IDAtMTYuOSAyLjgtMjEgMTIuOWwtNTkuNyAxNDIuNSA0Mi4yIDBzNi45LTE5LjIgOC40LTIzLjNsNTEuNiAwYzEuMiA1LjUgNC44IDIzLjMgNC44IDIzLjNsMzcuMiAweiJdfSxCc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidXB3b3JrIixpY29uOls2NDAsNTEyLFtdLCJlNjQxIiwiTTQ5My45IDI5NS42Yy01MC4zIDAtODMuNS0zOC45LTkyLjgtNTMuOSAxMS45LTk1LjMgNDYuOC0xMjUuNCA5Mi44LTEyNS40IDQ1LjUgMCA4MC45IDM2LjQgODAuOSA4OS43cy0zNS40IDg5LjctODAuOSA4OS43bDAtLjF6bTAtMjM3LjhjLTgxLjkgMC0xMjcuOCA1My40LTE0MSAxMDguNC0xNC45LTI4LTI1LjktNjUuNS0zNC41LTEwMC4zbC0xMTMuMiAwIDAgMTQxYzAgNTEuMS0yMy4zIDg5LTY4LjggODlzLTcxLjYtMzcuOC03MS42LTg5bC41LTE0MS02NS4zIDAgMCAxNDFjMCA0MS4xIDEzLjMgNzguNCAzNy42IDEwNS4xIDI1IDI3LjUgNTkuMiA0MS44IDk4LjggNDEuOCA3OC44IDAgMTMzLjgtNjAuNCAxMzMuOC0xNDYuOWwwLTk0LjhjOC4yIDMxLjIgMjcuOCA5MS4xIDY1LjMgMTQzLjZsLTM1IDE5OS40IDY2LjQgMCAyMy4xLTE0MS4zYzcuNiA2LjMgMTUuNyAxMiAyNC4yIDE3IDIyLjIgMTQgNDcuNyAyMS45IDczLjkgMjIuOCAwIDAgNCAuMiA2LjEgLjIgODEuMiAwIDE0NS45LTYyLjkgMTQ1LjktMTQ3LjhTNTc1LjMgNTcuOSA0OTQuMSA1Ny45bC0uMi0uMXoiXX0sSHN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imtha2FvLXRhbGsiLGljb246WzU3Niw1MTIsW10sImU3ZDciLCJNMjg4IDIuNWMxNTkuMSAwIDI4OCAxMDEuNyAyODggMjI3LjEgMCAxMjUuNC0xMjguOSAyMjcuMS0yODggMjI3LjEtMTcuNSAwLTM0LjYtMS4yLTUxLjItMy42LTE2LjYgMTEuNy0xMTIuNiA3OS4xLTEyMS43IDgwLjQgMCAwLTMuNyAxLjQtNi45LS40cy0yLjYtNi43LTIuNi02LjdDMTA2LjYgNTE5LjggMTMwLjYgNDM3LjIgMTM1IDQyMS45IDUzLjkgMzgxLjggMCAzMTAuNiAwIDIyOS41IDAgMTA0LjEgMTI4LjkgMi41IDI4OCAyLjV6TTg2LjIgMTYxLjdjLTkgMC0xNi4zIDcuMy0xNi4zIDE2LjNzNy4zIDE2LjMgMTYuMyAxNi4zbDI1LjkgMCAwIDk4LjdjMCA4LjggNy41IDE1LjkgMTYuNiAxNS45czE2LjYtNy4xIDE2LjYtMTUuOWwwLTk4LjcgMjUuOSAwYzkgMCAxNi4zLTcuMyAxNi4zLTE2LjNzLTcuMy0xNi4zLTE2LjMtMTYuM2wtODUuMSAwem0xNDAuOCAwYy0xMC44IC4yLTE5LjMgOC40LTIyLjEgMTYuNEwxNjUuMiAyODIuN2MtNSAxNS43LS42IDIxLjUgMy45IDIzLjYgMy4yIDEuNSA2LjkgMi4zIDEwLjYgMi4zIDYuOSAwIDEyLjItMi44IDEzLjgtNy4zbDguMi0yMS42IDUwLjcgMCA4LjIgMjEuNWMxLjYgNC41IDYuOSA3LjMgMTMuOCA3LjMgMy43IDAgNy4zLS44IDEwLjYtMi4zIDQuNi0yLjEgOS03LjkgMy45LTIzLjZMMjQ5LjIgMTc4LjFjLTIuOC04LTExLjMtMTYuMi0yMi4yLTE2LjR6bTE4MC45IDBjLTkuMiAwLTE2LjYgNy41LTE2LjYgMTYuNmwwIDExMy43YzAgOS4yIDcuNSAxNi42IDE2LjYgMTYuNnMxNi42LTcuNSAxNi42LTE2LjZsMC0zNi4yIDUuOC01LjggMzguOSA1MS42YzMuMiA0LjIgOCA2LjYgMTMuMyA2LjYgMy42IDAgNy4xLTEuMSAxMC0zLjMgMy41LTIuNyA1LjgtNi42IDYuNC0xMXMtLjUtOC44LTMuMi0xMi4zbC00MC45LTU0LjIgMzcuOS0zNy44YzIuNi0yLjYgMy45LTYuMiAzLjctMTAuMS0uMi0zLjktMi03LjYtNC45LTEwLjUtMy4xLTMuMS03LjMtNC45LTExLjQtNC45LTMuNiAwLTYuOCAxLjMtOS4yIDMuN2wtNDYuMyA0Ni40IDAtMzUuN2MwLTkuMi03LjUtMTYuNi0xNi42LTE2LjZ6bS05MS4zIDBjLTkuMyAwLTE2LjkgNy41LTE2LjkgMTYuNmwwIDExMi44YzAgOC40IDcuMSAxNS4yIDE1LjkgMTUuM2w1My4zIDBjOC44IDAgMTUuOS02LjkgMTUuOS0xNS4zcy03LjItMTUuMi0xNS45LTE1LjJsLTM1LjMgMCAwLTk3LjZjMC05LjItNy42LTE2LjYtMTctMTYuNnptLTczIDg4LjZsLTMzLjIgMCAxNi42LTQ3LjEgMTYuNiA0Ny4xeiJdfSxxc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmx1dHRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZTY5NCIsIk00MjkuNSAyMzYuM0wyOTEuNyAzNzQuMSA0MjkuNSA1MTIgMjcyIDUxMmMtMzYuMS0zNi4xLTgyLjEtODIuMS0xMzcuOS0xMzcuOWwxMzcuOS0xMzcuOCAxNTcuNSAwek0yNzIgMEwxNiAyNTYgOTQuOCAzMzQuOCA0MjkuNSAwIDI3MiAweiJdfSxqc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnVmZmVyIixpY29uOls0NDgsNTEyLFtdLCJmODM3IiwiTTQyOC4yIDM4MC43TDIzMS43IDQ3OC41Yy0yLjMgMS00LjggMS41LTcuMyAxLjVzLTUtLjUtNy4zLTEuNUwyMC41IDM4MC43Yy00LTItNC01LjMgMC03LjNMNjcuNiAzNTBjMi4zLTEgNC44LTEuNSA3LjMtMS41czUgLjUgNy4zIDEuNWwxMzQuOCA2N2MyLjMgMSA0LjggMS41IDcuMyAxLjVzNS0uNSA3LjMtMS41bDEzNC44LTY3YzIuMy0xIDQuOC0xLjUgNy4zLTEuNXM1IC41IDcuMyAxLjVsNDcuMSAyMy40YzQgMiA0IDUuMiAwIDcuMnptMC0xMzYuNWwtNDcuMS0yMy40Yy0yLjMtMS00LjgtMS41LTcuMy0xLjVzLTUgLjUtNy4zIDEuNUwyMzEuNyAyODcuOGMtMi4zIDEtNC44IDEuNS03LjMgMS41cy01LS41LTcuMy0xLjVMODIuMyAyMjAuN2MtMi4zLTEtNC44LTEuNS03LjMtMS41cy01IC41LTcuMyAxLjVMMjAuNSAyNDQuMWMtNCAyLTQgNS4zIDAgNy4zbDE5Ni41IDk3LjhjMi4zIDEgNC44IDEuNSA3LjMgMS41czUtLjUgNy4zLTEuNWwxOTYuNS05Ny44YzQtMiA0LTUuMyAwLTcuM3pNMjAuNSAxMzAuNEwyMTcgMjIwLjdjNC43IDEuOSAxMCAxLjkgMTQuNyAwbDE5Ni41LTkwLjNjNC0xLjkgNC00LjkgMC02LjdMMjMxLjcgMzMuNGMtNC43LTEuOS0xMC0xLjktMTQuNyAwTDIwLjUgMTIzLjdjLTQgMS44LTQgNC45IDAgNi43eiJdfSxWc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ3JhdGlwYXkiLGljb246WzUxMiw1MTIsW10sImYxODQiLCJNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0zNzQuMyAyMzMuN0wyNTcuNyAzOTEuMyAxNDEuMyAyMzMuN2MtOS0xMi4zLTE5LjctNTIgMTQtNzQuMyAyOS0xOC43IDU2LjQtNC4zIDcwLjcgMTIuMyAxNi40IDE4LjUgNDguMSAxNy40IDYzLjcgMCAxNC4zLTE2LjYgNDEuNy0zMSA3MC4zLTEyLjMgMzQgMjIuMyAyMy4zIDYxLjkgMTQuMiA3NC4zeiJdfSxVc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZ2xlLXBheSIsaWNvbjpbNjQwLDUxMixbXSwiZTA3OSIsIk0xMDUuNyAyMTVsMCA0MS4yIDU3LjEgMGMtMS4yIDYuNi0zLjYgMTIuOS03LjIgMTguNXMtOC40IDEwLjQtMTMuOSAxNC4xYy05LjUgNi42LTIxLjcgMTAuMy0zNiAxMC4zLTI3LjYgMC01MC45LTE4LjktNTkuMy00NC4yLTQuNC0xMy4zLTQuNC0yNy43IDAtNDEgOC40LTI1LjUgMzEuNy00NC40IDU5LjMtNDQuNCA3LjUtLjEgMTQuOSAxLjIgMjEuOSA0czEzLjMgNi45IDE4LjYgMTIuMUwxNzYuNSAxNTVjLTE5LjEtMTguMS00NC40LTI4LjEtNzAuNy0yNy44LTE5LjcgLjEtMzguOSA1LjctNTUuNiAxNi4xcy0zMC4xIDI1LjMtMzguOCA0M0MzLjkgMjAxLjIgMCAyMTcuNyAwIDIzNC40czMuOSAzMy4yIDExLjMgNDguMWwwIC4yYzguNyAxNy43IDIyLjEgMzIuNSAzOC44IDQzczM1LjkgMTYgNTUuNiAxNmMyOC41IDAgNTIuNS05LjUgNzAtMjUuOSAyMC0xOC42IDMxLjQtNDYuMiAzMS40LTc4LjkgMC03LjMtLjYtMTQuNi0xLjgtMjEuOGwtOTkuNyAwem0zODkuNC00Yy0xMC4xLTkuNC0yMy45LTE0LjEtNDEuNC0xNC4xLTIyLjUgMC0zOS4zIDguMy01MC41IDI0LjlMNDI0LjEgMjM1YzcuNi0xMS4zIDE4LjEtMTcgMzEuMy0xNyA4LjQgMCAxNi41IDMuMiAyMi43IDguOCAzIDIuNiA1LjUgNS45IDcuMSA5LjZzMi41IDcuNiAyLjUgMTEuN2wwIDUuNWMtOS4xLTUuMS0yMC42LTcuOC0zNC42LTcuOC0xNi40IDAtMjkuNiAzLjktMzkuNSAxMS44cy0xNC44IDE4LjMtMTQuOCAzMS42Yy0uMiA1LjkgMSAxMS44IDMuNCAxNy4yczYgMTAuMiAxMC41IDE0LjFjOS4yIDguMyAyMSAxMi41IDM0LjggMTIuNSAxNi4zIDAgMjkuMi03LjMgMzktMjEuOWwxIDAgMCAxNy43IDIyLjYgMCAwLTc4LjdjLjEtMTYuNi00LjktMjkuNy0xNS0zOXptLTE5LjIgODkuM2MtMy41IDMuNS03LjYgNi4zLTEyLjIgOC4ycy05LjUgMi45LTE0LjQgMi45Yy02LjcgLjEtMTMuMS0yLjEtMTguMy02LjItMi40LTEuOC00LjQtNC4yLTUuNy02LjlzLTItNS43LTItOC43YzAtNyAzLjItMTIuOCA5LjUtMTcuNHMxNC41LTcgMjQuMS03YzEzLjItLjIgMjMuNSAyLjggMzAuOCA4LjggMCAxMC4xLTQgMTguOS0xMS43IDI2LjR6bS05My43LTE0MmMtNS4zLTUuMy0xMS42LTkuNS0xOC42LTEyLjNzLTE0LjQtNC4yLTIxLjktNGwtNjIuNyAwIDAgMTg2LjcgMjMuNiAwIDAtNzUuNiAzOSAwYzE2IDAgMjkuNS01LjQgNDAuNS0xNS45IC45LS45IDEuOC0xLjggMi42LTIuNyA5LjYtMTAuNSAxNC44LTI0LjQgMTQuMy0zOC42cy02LjYtMjcuNy0xNi45LTM3LjZsMCAwem0tMTYuNiA2Mi4yYy0zIDMuMi02LjYgNS43LTEwLjYgNy40cy04LjQgMi41LTEyLjcgMi4zbC0zOS42IDAgMC02NS4yIDM5LjYgMGM4LjUgMCAxNi42IDMuMyAyMi42IDkuMiA2LjEgNi4xIDkuNiAxNC4zIDkuOCAyM3MtMy4xIDE3LTkgMjMuM2wwIDB6TTYxNC4zIDIwMWwtMzYuNSA5MS43LS41IDAtMzcuNC05MS43LTI1LjcgMCA1MS44IDExOS42LTI5LjQgNjQuMyAyNC4zIDAgNzktMTgzLjktMjUuNyAweiJdfSxXc3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXBwbGUiLGljb246WzM4NCw1MTIsW10sImYxNzkiLCJNMzE5LjEgMjY4LjdjLS4yLTM2LjcgMTYuNC02NC40IDUwLTg0LjgtMTguOC0yNi45LTQ3LjItNDEuNy04NC43LTQ0LjYtMzUuNS0yLjgtNzQuMyAyMC43LTg4LjUgMjAuNy0xNSAwLTQ5LjQtMTkuNy03Ni40LTE5LjctNTUuOCAuOS0xMTUuMSA0NC41LTExNS4xIDEzMy4yIDAgMjYuMiA0LjggNTMuMyAxNC40IDgxLjIgMTIuOCAzNi43IDU5IDEyNi43IDEwNy4yIDEyNS4yIDI1LjItLjYgNDMtMTcuOSA3NS44LTE3LjkgMzEuOCAwIDQ4LjMgMTcuOSA3Ni40IDE3LjkgNDguNi0uNyA5MC40LTgyLjUgMTAyLjYtMTE5LjMtNjUuMi0zMC43LTYxLjctOTAtNjEuNy05MS45ek0yNjIuNSAxMDQuNWMyNy4zLTMyLjQgMjQuOC02MS45IDI0LTcyLjUtMjQuMSAxLjQtNTIgMTYuNC02Ny45IDM0LjktMTcuNSAxOS44LTI3LjggNDQuMy0yNS42IDcxLjkgMjYuMSAyIDQ5LjktMTEuNCA2OS41LTM0LjN6Il19LEdzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0dW1ibHIiLGljb246WzMyMCw1MTIsW10sImYxNzMiLCJNMzA5LjkgNDgwLjNjLTEzLjYgMTQuNS01MCAzMS43LTk3LjQgMzEuNy0xMjAuOCAwLTE0Ny04OC44LTE0Ny0xNDAuNmwwLTE0NC00Ny41IDBjLTUuNSAwLTEwLTQuNS0xMC0xMGwwLTY4YzAtNy4yIDQuNS0xMy42IDExLjMtMTYgNjItMjEuOCA4MS41LTc2IDg0LjMtMTE3LjEgLjgtMTEgNi41LTE2LjMgMTYuMS0xNi4zbDcwLjkgMGM1LjUgMCAxMCA0LjUgMTAgMTBsMCAxMTUuMiA4MyAwYzUuNSAwIDEwIDQuNCAxMCA5LjlsMCA4MS43YzAgNS41LTQuNSAxMC0xMCAxMGwtODMuNCAwIDAgMTMzLjJjMCAzNC4yIDIzLjcgNTMuNiA2OCAzNS44IDQuOC0xLjkgOS0zLjIgMTIuNy0yLjIgMy41IC45IDUuOCAzLjQgNy40IDcuOWwyMiA2NC4zYzEuOCA1IDMuMyAxMC42LS40IDE0LjV6Il19LFlzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaG9lbml4LXNxdWFkcm9uIixpY29uOls1MTIsNTEyLFtdLCJmNTExIiwiTTk2IDYzLjRjNDYuNS0zNi4xIDEwNS42LTU2LjEgMTY0LjUtNTQuNiAyOS42LS40IDU5LjEgNS40IDg2LjkgMTUuMy0yNC4xLTQuNi00OS02LjMtNzMuNC0yLjUtNDIuOSA1LjMtODMgMjcuMi0xMTEuOCA1OS4yIDUuNy0xIDEwLjgtMy43IDE2LTUuOSAxOC4xLTcuOSAzNy41LTEzLjMgNTcuMi0xNC44IDE5LjctMi4xIDM5LjYtLjQgNTkuMyAxLjktMTQuNCAyLjgtMjkuMSA0LjYtNDMgOS42LTM0LjQgMTEuMS02NS4zIDMzLjItODYuMyA2Mi42LTEzLjggMTkuNy0yMy42IDQyLjktMjQuNyA2Ny4xLS40IDE2LjUgNS4yIDM0LjggMTkuOCA0NCAxMS4yIDYuOCAyNC42IDkuMiAzNy41IDYuNyAxNS40LTIuNSAzMC4xLTguNiA0My42LTE2LjMgMTEuNS02LjggMjIuNy0xNC42IDMyLTI0LjMgMy44LTMuMiAyLjUtOC40IDIuNi0xMi44LTIuMS0uMy00LjQtMS4xLTYuMyAuMy0xMS40IDYuMy0yMy40IDExLjQtMzUuOCAxNS40LTIwIDYuMi00Mi4yIDguNS02Mi4xIC44IDEyLjggMS43IDI2LjEgLjMgMzcuNy01LjQgMjAuMi05LjcgMzYuOC0yNS4yIDU0LjQtMzguOCAyNy43LTIxLjMgNTcuNS0zOS45IDg4LjktNTUuMyAyNS43LTEyIDUyLjktMjIuOCA4MS42LTI0LjEtMTUuNiAxMy43LTMyLjEgMjYuNS00Ni44IDQxLjQtMTQuNSAxNC0yNy41IDI5LjUtNDAuMSA0NS4yLTMuNSA0LjYtOSA2LjktMTMuNiAxMC4yLTIyLjQgMTUtNDAuMyAzNS44LTUxLjkgNjAuMS05LjMgMTkuNy0xNC41IDQxLjktMTEuOCA2My42IDEuOSAxMy43IDguNyAyNy42IDIwLjkgMzQuOSAxMi45IDggMjkgOC4xIDQzLjUgNS4xIDMyLjgtNy40IDYxLjQtMjguOSA4MS01NS44IDIwLjQtMjcuNSAzMC41LTYyLjIgMjkuMi05Ni4zLS41LTcuNS0xLjYtMTUtMS43LTIyLjUgOCAxOS41IDE0LjggMzkuNyAxNi42IDYwLjggMiAxNC4zIC43IDI4LjgtMS42IDQyLjktMS45IDExLTUuNyAyMS41LTcuOCAzMi40IDIwLjQtMjIuOSAzNC01MC45IDM5LjMtODEuMSA1LjYtMzUuNSAuNy03MS45LTE0LjItMTA0LjYgMjAuOCAzMiAzMi4zIDY5LjYgMzUuNyAxMDcuNSAuNSAxMi43IC41IDI1LjUgMCAzOC4yLTIuOCAzNC4zLTEyLjkgNjcuNi0yOS42IDk3LjgtMjYuMSA0Ny4zLTY4IDg1LjYtMTE3LjIgMTA4LTc4LjMgMzYuMi0xNzQuNyAzMS4zLTI0OC0xNC43LTM5LTIzLjgtNzAuNi01OC05MS40LTk4LjctMTQuNy0yOC45LTIzLjMtNjAuNS0yNS40LTkyLjlsMC0zMS4zQzMuOSAxNzIgNDAuOSAxMDUuOCA5NiA2My40em0yMjIgODAuM2M1LjUtLjkgMTAuOC0yLjQgMTYtNC41IDUtMS44IDkuMi01LjkgMTAuMy0xMS4yLTkgNS0xOCA5LjktMjYuMyAxNS43eiJdfSxac3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2VudGVyY29kZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM4MCIsIk0yMDEuOCAyNTQuOGE2NC4xIDY0LjEgMCAxIDEgMTI3LjQgMTMuOCA2NC4xIDY0LjEgMCAxIDEgLTEyNy40LTEzLjh6bTQxLjYgMjQ4LjlDOTYuNyA0OTYtOC4yIDM2NS41IDEwLjEgMjI0LjMgMjEuMyAxMzcuNyA3NS45IDY3LjQgMTQ5LjIgMzIuMyAzMTAuMi00NC44IDQ5OC45IDY5LjcgNTAzLjkgMjQ4LjkgNTA4IDM5NS45IDM4NS41IDUxMS4xIDI0My40IDUwMy43em0xNzkuOS0xODBjMjcuOS0xMTgtMTYwLjUtMjA1LjktMjM3LjItMjM0LjItNTcuNSA1Ni4zLTY5LjEgMTg4LjYtMzMuOCAzNDQuNCA2OC44IDE1LjggMTY5LjEtMjYuNCAyNzEtMTEwLjJ6Il19LFhzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkZWJpYW4iLGljb246WzQ0OCw1MTIsW10sImU2MGIiLCJNMzgwLjQgMjQ1LjZjMy03LjYgNS41LTE0IDUuMi0yNC40bC00LjMgOWM0LjQtMTMuMiA0LTI3LjEgMy42LTQwLjQtLjItNi0uMy0xMS44IDAtMTcuNGwtMS44LS41Yy0xLjUtNDUuMi00MC42LTkzLjEtNzUuMy0xMDkuNC0zMC0xMy44LTc2LjEtMTYuMi05Ny4zLTUuOCAxLjMtMS4xIDQuMi0yIDYuOC0yLjdsLjMtLjFjMy4zLTEgNi0xLjcgNC0yLjktMTkuMiAxLjktMjQuOSA1LjUtMzEuMSA5LjRsLS4xIDBjLTQuNiAyLjktOS41IDYtMjAuMyA4LjctMy41IDMuNCAxLjcgMiA1LjggLjlzNy4yLTEuOS0uMSAyLjRjLTMuNSAxLTYuNiAxLjMtOS42IDEuNmwtLjEgMGMtOC4zIC44LTE1LjggMS42LTMwLjcgMTcgLjggMS4zIDMuNC0uMiA1LjMtMS4zbC4xLS4xYzIuMy0xLjQgMy40LTItMS43IDQuNC0xOS4xLTIuNC02MC4zIDQzLjctNjkuMSA1OWw0LjYgLjhjLTMuMiA4LTYuOCAxNC44LTEwIDIwLjgtNC4zIDguMS03LjkgMTQuOS04LjcgMjEuMy0uMyA1LjEtMSAxMS0xLjcgMTcuMy0uMSAxLS4yIDItLjMgM2wtLjEgLjZjLTMgMjcuMy02LjcgNjAuOCAzLjkgNzNsLTEuMyAxM2MuNiAxLjIgMS4xIDIuMyAxLjYgMy41IC4yIC40IC40IC44IC41IDEuMSAxIDIuMSAyIDQuMiAzLjMgNi4ybC0zIC4yYzcgMjIuMSAxMC44IDIyLjUgMTUuMSAyMi45IDQuNCAuNCA5LjMgLjkgMTguNyAyNC4yLTIuNy0uOS01LjUtMS45LTkuNC03LjItLjUgNC4xIDUuOCAxNi4zIDEzLjEgMjUuOGwtMy4xIDMuNmMyLjEgMy43IDQuOCA2LjIgNy42IDguOCAxIC45IDIuMSAxLjkgMy4xIDIuOS0xMS45LTYuNSAzLjIgMTMuNyAxMS45IDI1LjIgLjggMS4xIDEuNSAyIDIuMiAyLjkgMS40IDEuOSAyLjUgMy40IDIuOSA0LjFsMi40LTQuMmMtLjMgNi4xIDQuMyAxMy45IDEzLjEgMjQuN2w3LjMtLjNjMyA2IDE0IDE2LjcgMjAuNyAxNy4ybC00LjQgNS44YzguMSAyLjYgMTAuMyA0LjMgMTIuNyA2LjIgMi42IDIuMSA1LjQgNC4zIDE2LjEgOC4xbC00LjItNy40YzMuNSAzIDYuMiA1LjkgOC44IDguN2wuMSAuMWM1LjIgNS42IDkuOSAxMC42IDE5LjcgMTUuMyAxMC43IDMuNyAxNi42IDQuNyAyMi43IDUuOCAuMyAwIC42IC4xIC45IC4xIDUuNCAuOCAxMS4yIDEuOCAyMC44IDQuNS0xLjEtLjEtMi4yLS4xLTMuMy0uMS0yLjMtLjEtNC43LS4xLTctLjEtMTQuNC0uMi0yOS4yLS40LTQyLjctNS4yLTk2LjYtMjUuNy0xODQuOS0xMzktMTc4LjQtMjU1LjYtLjYtOS45LS4zLTIwLjkgMC0zMC43IC40LTEzLjUgLjctMjQuOC0xLjYtMjguM2wxLTMuMWM1LjMtMTcuNCAxMS43LTM4LjIgMjMuOC02Mi44bC0uMS0uMiAwLS4xYy40IC40IDMuNCAzLjQgOC44LTUuOCAuOC0xLjggMS42LTMuNyAyLjQtNS42IC41LTEuMSAuOS0yLjIgMS40LTMuMiAyLjUtNi4xIDUuMS0xMi4zIDguNC0xNy45bDIuNi0uNmMxLjctMTAuMSAxNy0yMy44IDI5LjgtMzUuMmwxLjEtMWM1LjctNS4xIDEwLjctOS43IDEzLjYtMTMuMWwuNyA0LjRjMTctMTUuOSA0NC42LTI3LjUgNjUuNi0zNi40bC41LS4yYzQuOC0yIDkuMy0zLjkgMTMuMy01LjctMy40IDMuOCAyLjIgMi43IDEwIDEgNC44LTEgMTAuNC0yLjEgMTUuMy0yLjRsLTMuOSAyLjFjLTIuNyAxLjQtNS40IDIuOC04IDQuNiA4LjEtMiAxMS43LTEuNCAxNS43LS44bC4zIDBjMy41IC42IDcuMyAxLjIgMTQuNiAuMi01LjYgLjgtMTIuMyAzLTExLjIgMy44IDcuOSAuOSAxMi44LS4xIDE3LjItMWwuMiAwYzUuNS0xLjEgMTAuMy0yIDE5LjMgLjlsLTEtNC44YzcuMyAyLjYgMTIuNyA0LjMgMTcuNSA1LjhsLjUgLjFjMTAgMyAxNy42IDUuMyAzNC4yIDE0LjEgMy4yIC4yIDUuMy0uNSA3LjQtMS4ybC4xIDBjMy42LTEuMSA3LTIuMSAxNS4yIDEuMiAuMyAuNSAuNSAxIC43IDEuNCAuMSAuMiAuMiAuNSAuMyAuN2wwIC4xYzEgMi42IDEuOCA0LjYgMTQuNiAxMi4xIDEuNy0uNy0yLjctNC43LTYuNC04LjJsLS4xLS4xYy0uMi0uMS0uMy0uMy0uNS0uNCAzMi4yIDE3LjMgNjcuMyA1NC4xIDc4IDkzLjUtNi0xMS4xLTUuMi01LjUtNC4zIC41IC42IDQgMS4yIDguMS0uMiA3LjUgNC41IDEyLjEgOC4xIDI0LjUgMTAuNCAzNy40bC0uOC0yLjktLjEtLjNjLTMuMy0xMS45LTkuNi0zNC4zLTE5LjktNDkuMy0uNCA0LjMtMi44IDMuOS01LjIgMy41bC0uMSAwYy0zLjMtLjYtNi4yLTEuMS0xLjkgMTIuNiAyLjYgMy44IDMuMSAyLjQgMy41IDEuMSAuNS0xLjUgLjktMi43IDQuNyA1LjIgLjEgNC4xIDEgOC4yIDIuMSAxMi43bC4xIC42Yy4xIC4zIC4xIC41IC4yIC44bC4xIC42Yy42IDIuNiAxLjMgNS40IDEuOCA4LjQtMS4xLS4yLTIuMy0yLjItMy40LTQuMi0xLjQtMi40LTIuOC00LjctMy43LTMuMiAyLjQgMTEuNSA2LjUgMTcuNCA4IDE4LjMtLjMgLjYtLjYgLjctMS4xIC43LS44IDAtMS44IC4xLTEuOSA1LjMgLjcgMTMuNyAzLjMgMTIuNSA1LjMgMTEuNiAuNi0uMyAxLjItLjYgMS43LS40LS42IDIuNS0xLjYgNS4xLTIuNyA3LjktMi44IDcuMS02IDE1LjQtMy40IDI2LjEtLjgtMy0yLTYtMy4xLTguOWwtLjEtLjRjLS4yLS41LS40LTEtLjYtMS41LS4zLS44LS42LTEuNi0uOS0yLjMtLjYgNC40LS4zIDcuNy0uMSAxMC42bDAgLjdjLjQgNS4zIC43IDEwLTMgMTkuOSA0LjMtMTQuMiAzLjgtMjYuOS0uMi0yMC44IDEgMTAuOS0zLjcgMjAuNC04IDI4LjlsLS4xIC4yYy0zLjYgNy4xLTYuOCAxMy41LTUuOSAxOS4zbC01LjItNy4xYy03LjUgMTAuOS03IDEzLjMtNi41IDE1LjVsMCAuMWMuNSAxLjkgMSAzLjgtMy40IDEwLjggMS43LTIuOSAxLjMtMy42IDEtNC4yLS40LS44LS43LTEuNSAxLjctNS4xLTEuNiAuMS01LjUgMy45LTEwLjEgOC41LTMuOSAzLjktOC41IDguNC0xMi44IDExLjgtMzcuNSAzMC4xLTgyLjMgMzQtMTI1LjYgMTcuOCAuMi0xLS4yLTIuMS0zLjEtNC4xLTM2LjgtMjguMi01OC41LTUyLjEtNTAuOS0xMDcuNSAyLjEtMS42IDMuNi01LjggNS4zLTEwLjhsLjItLjQgLjEtLjMgMC0uMWMyLjktOC40IDYuNS0xOC44IDE0LjMtMjMuOCA3LjgtMTcuMyAzMS4zLTMzLjMgNTYuNC0zMy43IDI1LjYtMS40IDQ3LjIgMTMuNyA1OC4xIDI3LjktMTkuOC0xOC40LTUyLjEtMjQtNzkuNy0xMC40LTI4LjIgMTIuNy00NSA0My44LTQyLjUgNzQuNyAuMy0uNCAuNi0uNiAuOS0uOGwuMi0uMmMuNi0uNSAxLjEtLjkgMS40LTMuMy0uOSA2MC4yIDY0LjggMTA0LjMgMTEyLjEgODJsLjYgMS4zYzEyLjctMy41IDE1LjktNi41IDIwLjMtMTAuN2wuMS0uMWMyLjItMi4xIDQuNy00LjUgOC45LTcuMy0uMyAuNy0xLjMgMS43LTIuNCAyLjctMi4yIDIuMS00LjYgNC41LTEuNiA0LjYgNS0xLjMgMTguNS0xMy40IDI4LjUtMjIuMyAuNi0uNSAxLjItMSAxLjctMS41IDEuNS0xLjMgMi44LTIuNSA0LTMuNmwuMy0uM2MxLjktNC4yIDEuNi01LjYgMS4zLTdsMC0uMWMtLjQtMS42LS44LTMuMyAyLjQtOS42bDcuMy0zLjdjLjgtMi4xIDEuNS00LjEgMi4yLTYgLjItLjYgLjUtMS4yIC43LTEuOGwtLjQtLjItLjEtLjF6TTI0OCAzMzQuMWMtNi0zLTEzLjctOC45LTE0LjgtMTEuNGwtLjQgLjNjLS4zIC42LS41IDEuMy0uMiAyLjItMTIuMi01LjctMjMuNC0xNC4zLTMyLjYtMjQuOSA0LjkgNy4xIDEwLjEgMTQuMSAxNyAxOS41LTYuOS0yLjMtMTUuMS0xMS44LTIxLjYtMTkuM2wtLjEtLjFjLTQuMy01LTcuOS05LjEtOS43LTkuNSAxOS44IDM1LjUgODAuNSA2Mi4zIDExMi4zIDQ5LTE0LjcgLjUtMzMuNCAuMy00OS45LTUuOHptNzkuMy0xMTkuN2wtLjEtLjJjLS41LTEuNS0xLjEtMy4xLTEuNy0zLjQgMS40LTUuOCA1LjQtMTAuNyA0LjQgNC42LTEgMy44LTEuOCAxLjUtMi42LTF6bS00LjIgMjIuMmMtMS4zIDcuOS01IDE1LjUtMTAuMSAyMi41IC4yLTItMS4yLTIuNC0yLjYtMi44LTIuOS0uOC01LjktMS42IDUuNi0xNi4xLS41IDEuOS0yLjEgNC42LTMuNyA3LjNsLS4zIC40Yy0zLjYgNS45LTYuNyAxMSA0IDQuM2wxLTEuOGMyLjYtNC41IDUtOC44IDYtMTMuOGwuMSAwem0tNTUuNiAzMy45YzcuMSAuNiAxNC4xIC42IDIxLTEuMS0yLjUgMi40LTUuMiA0LjgtOC4zIDcuMi0xMS4xLTEuNy0yMS4yLTYtMTIuNy02LjF6bS05Mi42IDExLjZjMy42IDcuMSA2LjQgMTEuNSA5IDE1LjdsLjEgLjJjMi4zIDMuNyA0LjQgNy4xIDYuOCAxMS43LTUuMS00LjItOC43LTkuNS0xMi41LTE1bC0uMy0uNWMtMS40LTIuMS0yLjgtNC4yLTQuNC02LjJsMS4yLTUuOSAuMSAwem03LjUtOS42YzEuNiAzLjMgMy4yIDYuNCA1LjcgOS4xbDIuNiA3LjctMS4zLTIuMWMtMy4yLTUuMy02LjMtMTAuNi04LTE2LjdsMSAyem0yMzguOS00MS42Yy0yLjMgMTcuNC03LjcgMzQuNi0xNiA1MC4zIDcuNi0xNC45IDEyLjUtMzAuOSAxNC44LTQ3LjJsMS4yLTMuMXpNMzUuOCAxMTAuNmMuNCAuOCAxLjQgLjUgMi4zIC4zIDEuOS0uNSAzLjYtLjktLjEgNy42LS41IC4zLTEgLjctMS41IDEtMS40IC45LTIuOCAxLjktMy45IDMgMS45LTMuOCAzLjUtNy40IDMuMi0xMS45ek0yNS41IDE1Mi4zYy0uNyAzLjctMS41IDcuOS0zLjQgMTMuOSAuMi0xLjkgMC0zLjUtLjItNC45bDAtLjFjLS40LTMuNC0uNy02LjMgNC4zLTEyLjgtLjMgMS4yLS41IDIuNS0uNyAzLjhsMCAuMXoiXX0sUXN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hc3RvZG9uIixpY29uOls0NDgsNTEyLFtdLCJmNGY2IiwiTTQzMyAxNzkuMWMwLTk3LjItNjMuNy0xMjUuNy02My43LTEyNS43LTYyLjUtMjguNy0yMjguNi0yOC40LTI5MC41IDAgMCAwLTYzLjcgMjguNS02My43IDEyNS43IDAgMTE1LjctNi42IDI1OS40IDEwNS42IDI4OS4xIDQwLjUgMTAuNyA3NS4zIDEzIDEwMy4zIDExLjQgNTAuOC0yLjggNzkuMy0xOC4xIDc5LjMtMTguMWwtMS43LTM2LjlzLTM2LjMgMTEuNC03Ny4xIDEwLjFjLTQwLjQtMS40LTgzLTQuNC04OS42LTU0LS42LTQuNi0uOS05LjMtLjktMTMuOSA4NS42IDIwLjkgMTU4LjcgOS4xIDE3OC43IDYuNyA1Ni4xLTYuNyAxMDUtNDEuMyAxMTEuMi03Mi45IDkuOC00OS44IDktMTIxLjUgOS0xMjEuNXpNMzU3LjkgMzA0LjNsLTQ2LjYgMCAwLTExNC4yYzAtNDkuNy02NC01MS42LTY0IDYuOWwwIDYyLjUtNDYuMyAwIDAtNjIuNWMwLTU4LjUtNjQtNTYuNi02NC02LjlsMCAxMTQuMi00Ni43IDBjMC0xMjIuMS01LjItMTQ3LjkgMTguNC0xNzUgMjUuOS0yOC45IDc5LjgtMzAuOCAxMDMuOCA2LjFsMTEuNiAxOS41IDExLjYtMTkuNWMyNC4xLTM3LjEgNzguMS0zNC44IDEwMy44LTYuMSAyMy43IDI3LjMgMTguNCA1MyAxOC40IDE3NWwwIDB6Il19LEpzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza2V0Y2giLGljb246WzUxMiw1MTIsW10sImY3YzYiLCJNMjcuOCAxNjIuMmwtMTguNSAyNC45IDkwLjUgMCA2LjktMTMwLjctNzguOSAxMDUuOHpNMzk2LjYgNDUuN0wyNjggMzIgNDAzLjcgMTc5LjIgMzk2LjYgNDUuN3pNMTEyLjUgMjE4LjNsLTExLjItMjItOTEuMSAwIDIyNC45IDI2MS43LTEyMi42LTIzOS43em0yLTMxLjJsMjg0IDBDMzQwLjYgMTI0LjMgMjkzLjMgNzIuOSAyNTYuNiAzM0wxMTQuNSAxODcuMXptMjk3LjMgOS4xbC0xMzMuOSAyNjEuOCAyMjQuOC0yNjEuNy05MC45IDAgMC0uMXpNNDE1LjcgNjlsLTkuNC0xMi42IC45IDE3LjMgNi4xIDExMy40IDkwLjMgMC04Ny45LTExOC4xek0xMTMuOCA5My41TDEwOS4yIDE3OS4xIDI0NSAzMiAxMTYuNCA0NS43IDExMy44IDkzLjV6TTQwMS41IDE5Ni4ybC0yOTAgMGMxOC4yIDM1LjYgNjYuNiAxMzAuMiAxNDUuMSAyODMuOEw0MDEuNSAxOTYuMnoiXX0sS3N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlYi1hd2Vzb21lIixpY29uOls2NDAsNTEyLFtdLCJlNjgyIiwiTTM3Mi4yIDUyYzAgMjAuOS0xMi40IDM5LTMwLjIgNDcuMkw0NDggMTkyIDU1Mi40IDE3MS4xYy01LjMtNy43LTguNC0xNy4xLTguNC0yNy4xIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhjMCAyNi0yMC42IDQ3LjEtNDYuNCA0OEw0ODEgNDQyLjNjLTEwLjMgMjMtMzMuMiAzNy43LTU4LjQgMzcuN2wtMjA1LjIgMGMtMjUuMiAwLTQ4LTE0LjgtNTguNC0zNy43TDQ2LjQgMTkyQzIwLjYgMTkxLjEgMCAxNzAgMCAxNDQgMCAxMTcuNSAyMS41IDk2IDQ4IDk2czQ4IDIxLjUgNDggNDhjMCAxMC4xLTMuMSAxOS40LTguNCAyNy4xTDE5MiAxOTIgMjk4LjEgOTkuMWMtMTcuNy04LjMtMzAtMjYuMy0zMC00Ny4xIDAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJsLjEgMHoiXX0sZWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNhc3MiLGljb246WzY0MCw1MTIsW10sImY0MWUiLCJNMzAxLjggMzc4LjlsMCAwem0yNDkuMS04N2MtMjAuMSAwLTQwIDQuNi01OCAxMy41LTUuOS0xMS45LTEyLTIyLjMtMTMtMzAuMS0xLjItOS4xLTIuNS0xNC41LTEuMS0yNS4zczcuNy0yNi4xIDcuNi0yNy4yLTEuNC02LjYtMTQuMy02LjctMjQgMi41LTI1LjMgNS45Yy0yLjMgNi4yLTQuMSAxMi42LTUuMyAxOS4xLTIuMyAxMS43LTI1LjggNTMuNS0zOS4xIDc1LjMtNC40LTguNS04LjEtMTYtOC45LTIyLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4zLTYuNy0yNCAyLjUtMjUuMyA1LjktMi43IDExLjQtNS4zIDE5LjEtMzMuOSA3Ny4zLTQyLjEgOTUuNGMtNC4yIDkuMi03LjggMTYuNi0xMC40IDIxLjYtLjQgLjgtLjcgMS4zLS45IDEuNyAuMy0uNSAuNS0xIC41LS44LTIuMiA0LjMtMy41IDYuNy0zLjUgNi43bDAgLjFjLTEuNyAzLjItMy42IDYuMS00LjUgNi4xLS42IDAtMS45LTguNCAuMy0xOS45IDQuNy0yNC4yIDE1LjgtNjEuOCAxNS43LTYzLjEtLjEtLjcgMi4xLTcuMi03LjMtMTAuNy05LjEtMy4zLTEyLjQgMi4yLTEzLjIgMi4ycy0xLjQgMi0xLjQgMiAxMC4xLTQyLjQtMTkuNC00Mi40Yy0xOC40IDAtNDQgMjAuMi01Ni42IDM4LjUtNy45IDQuMy0yNSAxMy42LTQzIDIzLjUtNi45IDMuOC0xNCA3LjctMjAuNyAxMS40LS41LS41LS45LTEtMS40LTEuNS0zNS44LTM4LjItMTAxLjktNjUuMi05OS4xLTExNi41IDEtMTguNyA3LjUtNjcuOCAxMjcuMS0xMjcuNCA5OC00OC44IDE3Ni4zLTM1LjQgMTg5LjgtNS42IDE5LjQgNDIuNS00MS45IDEyMS42LTE0My43IDEzMy0zOC44IDQuMy01OS4yLTEwLjctNjQuMy0xNi4zLTUuMy01LjktNi4xLTYuMi04LjEtNS4xLTMuMyAxLjgtMS4yIDcgMCAxMC4xIDMgNy45IDE1LjUgMjEuOSAzNi44IDI4LjkgMTguNyA2LjEgNjQuMiA5LjUgMTE5LjItMTEuOCA2MS44LTIzLjggMTA5LjktOTAuMSA5NS44LTE0NS42LTE0LjQtNTYuNC0xMDcuOS03NC45LTE5Ni4zLTQzLjUtNTIuNyAxOC43LTEwOS43IDQ4LjEtMTUwLjcgODYuNC00OC43IDQ1LjYtNTYuNSA4NS4zLTUzLjMgMTAxLjkgMTEuNCA1OC45IDkyLjYgOTcuMyAxMjUuMSAxMjUuNy0xLjYgLjktMy4xIDEuNy00LjUgMi41LTE2LjMgOC4xLTc4LjIgNDAuNS05My43IDc0LjctMTcuNSAzOC44IDIuOSA2Ni42IDE2LjMgNzAuNCA0MS44IDExLjYgODQuNi05LjMgMTA3LjYtNDMuNnMyMC4yLTc5LjEgOS42LTk5LjVjLS4xLS4zLS4zLS41LS40LS44IDQuMi0yLjUgOC41LTUgMTIuOC03LjUgOC4zLTQuOSAxNi40LTkuNCAyMy41LTEzLjMtNCAxMC44LTYuOSAyMy44LTguNCA0Mi42LTEuOCAyMiA3LjMgNTAuNSAxOS4xIDYxLjcgNS4yIDQuOSAxMS41IDUgMTUuNCA1IDEzLjggMCAyMC0xMS40IDI2LjktMjUgOC41LTE2LjYgMTYtMzUuOSAxNi0zNS45cy05LjQgNTIuMiAxNi4zIDUyLjJjOS40IDAgMTguOC0xMi4xIDIzLTE4LjNsMCAuMXMuMi0uNCAuNy0xLjJjMS0xLjUgMS41LTIuNCAxLjUtMi40bDAtLjNjMy44LTYuNSAxMi4xLTIxLjQgMjQuNi00NiAxNi4yLTMxLjggMzEuNy03MS41IDMxLjctNzEuNSAxLjUgOC43IDMuNiAxNy4zIDYuMiAyNS44IDIuOCA5LjUgOC43IDE5LjkgMTMuNCAzMC0zLjggNS4yLTYuMSA4LjItNi4xIDguMiAwIC4xIDAgLjEgLjEgLjItMyA0LTYuNCA4LjMtOS45IDEyLjUtMTIuOCAxNS4yLTI4IDMyLjYtMzAgMzcuNi0yLjQgNS45LTEuOCAxMC4zIDIuOCAxMy43IDMuNCAyLjYgOS40IDMgMTUuNyAyLjUgMTEuNS0uOCAxOS42LTMuNiAyMy41LTUuNCA3LjItMi42IDE0LTYuMSAyMC4yLTEwLjYgMTIuNS05LjIgMjAuMS0yMi40IDE5LjQtMzkuOC0uNC05LjYtMy41LTE5LjItNy4zLTI4LjIgMS4xLTEuNiAyLjMtMy4zIDMuNC01IDE5LjgtMjguOSAzNS4xLTYwLjYgMzUuMS02MC42IDEuNSA4LjcgMy42IDE3LjMgNi4yIDI1LjggMi40IDguMSA3LjEgMTcgMTEuNCAyNS43LTE4LjYgMTUuMS0zMC4xIDMyLjYtMzQuMSA0NC4xLTcuNCAyMS4zLTEuNiAzMC45IDkuMyAzMy4xIDQuOSAxIDExLjktMS4zIDE3LjEtMy41IDcuNy0yLjYgMTUtNi4zIDIxLjYtMTEuMSAxMi41LTkuMiAyNC42LTIyLjEgMjMuOC0zOS42LS4zLTcuOS0yLjUtMTUuOC01LjQtMjMuNCAxNS43LTYuNiAzNi4xLTEwLjIgNjIuMS03LjIgNTUuNyA2LjUgNjYuNiA0MS4zIDY0LjUgNTUuOHMtMTMuOCAyMi42LTE3LjcgMjUtNS4xIDMuMy00LjggNS4xYy41IDIuNiAyLjMgMi41IDUuNiAxLjkgNC42LS44IDI5LjItMTEuOCAzMC4zLTM4LjcgMS42LTM0LTMxLjEtNzEuNC04OS03MS4xbDAgMHpNMTIxLjggNDM2LjZjLTE4LjQgMjAuMS00NC4yIDI3LjctNTUuMyAyMS4zLTExLjktNi45LTcuMi0zNi41IDE1LjUtNTcuOSAxMy44LTEzIDMxLjYtMjUgNDMuNC0zMi40IDIuNy0xLjYgNi42LTQgMTEuNC02LjkgLjgtLjUgMS4yLS43IDEuMi0uNyAuOS0uNiAxLjktMS4xIDIuOS0xLjcgOC4zIDMwLjQgLjMgNTcuMi0xOS4xIDc4LjNsMCAwem0xMzQuNC05MS40Yy02LjQgMTUuNy0xOS45IDU1LjctMjguMSA1My42LTctMS44LTExLjMtMzIuMy0xLjQtNjIuMyA1LTE1LjEgMTUuNi0zMy4xIDIxLjktNDAuMSAxMC4xLTExLjMgMjEuMi0xNC45IDIzLjgtMTAuNCAzLjUgNS45LTEyLjIgNDkuNC0xNi4yIDU5LjJ6bTExMSA1M2MtMi43IDEuNC01LjIgMi4zLTYuNCAxLjYtLjktLjUgMS4xLTIuNCAxLjEtMi40czEzLjktMTQuOSAxOS40LTIxLjdjMy4yLTQgNi45LTguNyAxMC45LTEzLjkgMCAuNSAuMSAxIC4xIDEuNi0uMSAxNy45LTE3LjMgMzAtMjUuMSAzNC44bDAgMHptODUuNi0xOS41Yy0yLTEuNC0xLjctNi4xIDUtMjAuNyAyLjYtNS43IDguNi0xNS4zIDE5LTI0LjUgMS4yIDMuNSAxLjggNy4xIDEuOSAxMC44LS4xIDIyLjUtMTYuMiAzMC45LTI1LjkgMzQuNGwwIDB6Il19LHRsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aHJlZW1hIixpY29uOlszODQsNTEyLFtdLCJlODVmIiwiTTg3LjQgNDQ1LjFjMTguNSAwIDMzLjUgMTUgMzMuNSAzMy40UzEwNS45IDUxMiA4Ny40IDUxMiA1NCA0OTcgNTQgNDc4LjUgNjkgNDQ1LjEgODcuNCA0NDUuMXptMTA5LjIgMGMxOC41IDAgMzMuNSAxNSAzMy41IDMzLjRzLTE1IDMzLjUtMzMuNSAzMy41LTMzLjQtMTUtMzMuNC0zMy41IDE1LTMzLjQgMzMuNC0zMy40em0xMDkuMyAwYzE4LjUgMCAzMy41IDE1IDMzLjUgMzMuNHMtMTUgMzMuNS0zMy41IDMzLjUtMzMuNS0xNS0zMy41LTMzLjUgMTUtMzMuNCAzMy41LTMzLjR6TTE5Mi4zIC4zYzEwOS44IDAgMTk5LjIgODkuMyAxOTkuMiAxOTkuMVMzMDIuMiAzOTguNSAxOTIuNCAzOTguNWMtNDAuNSAwLTc4LjEtMTIuMS0xMDkuNi0zMi45bC03Ni41IDI0LjUgMjQuOC03NEM3LjMgMjgzLjQtNi44IDI0My02LjggMTk5LjQtNi44IDg5LjcgODIuNSAuMyAxOTIuMyAuM3ptLjEgOTMuN2MtMzEuNiAwLTU3LjMgMjUuOC01Ny4zIDU3LjNsMCAyNi43LTEuOCAwYy0xMCAwLTE4IDgtMTggMThsMCA3Mi4zYzAgMTAgOCAxOCAxOCAxOGwxMTguMSAwYzEwIDAgMTgtOCAxOC0xOGwuMSAwIDAtNzIuM2MwLTEwLTguMS0xOC0xOC0xOGwtMS44IDAgMC0yNi43YzAtMzEuNi0yNS44LTU3LjMtNTcuMy01Ny4zem0tLjEgMjMuNWMxOC42IDAgMzMuOCAxNS4xIDMzLjggMzMuOGwwIDI2LjctNjcuNiAwIDAtMjYuN2MwLTE4LjYgMTUuMS0zMy44IDMzLjgtMzMuOHoiXX0sdG5lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS13aGF0c2FwcCIsaWNvbjpbNDQ4LDUxMixbIndoYXRzYXBwLXNxdWFyZSJdLCJmNDBjIiwiTTkyLjEgMjU0LjZjMCAyNC45IDcgNDkuMiAyMC4yIDcwLjFsMy4xIDUtMTMuMyA0OC42IDQ5LjktMTMuMSA0LjggMi45YzIwLjIgMTIgNDMuNCAxOC40IDY3LjEgMTguNGwuMSAwYzcyLjYgMCAxMzMuMy01OS4xIDEzMy4zLTEzMS44IDAtMzUuMi0xNS4yLTY4LjMtNDAuMS05My4yLTI1LTI1LTU4LTM4LjctOTMuMi0zOC43LTcyLjcgMC0xMzEuOCA1OS4xLTEzMS45IDEzMS44ek0yNzQuOCAzMzBjLTEyLjYgMS45LTIyLjQgLjktNDcuNS05LjktMzYuOC0xNS45LTYxLjgtNTEuNS02Ni45LTU4LjctLjQtLjYtLjctLjktLjgtMS4xLTItMi42LTE2LjItMjEuNS0xNi4yLTQxIDAtMTguNCA5LTI3LjkgMTMuMi0zMi4zIC4zLS4zIC41LS41IC43LS44IDMuNi00IDcuOS01IDEwLjYtNSAyLjYgMCA1LjMgMCA3LjYgLjFsLjggMGMyLjMgMCA1LjIgMCA4LjEgNi44IDEuMiAyLjkgMyA3LjMgNC45IDExLjggMy4zIDggNi43IDE2LjMgNy4zIDE3LjYgMSAyIDEuNyA0LjMgLjMgNi45LTMuNCA2LjgtNi45IDEwLjQtOS4zIDEzLTMuMSAzLjItNC41IDQuNy0yLjMgOC42IDE1LjMgMjYuMyAzMC42IDM1LjQgNTMuOSA0Ny4xIDQgMiA2LjMgMS43IDguNi0xIDIuMy0yLjYgOS45LTExLjYgMTIuNS0xNS41IDIuNi00IDUuMy0zLjMgOC45LTJzMjMuMSAxMC45IDI3LjEgMTIuOWMuOCAuNCAxLjUgLjcgMi4xIDEgMi44IDEuNCA0LjcgMi4zIDUuNSAzLjYgLjkgMS45IC45IDkuOS0yLjQgMTkuMS0zLjMgOS4zLTE5LjEgMTcuNy0yNi43IDE4Ljh6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0xNDguMSAzOTMuOUw2NCA0MTYgODYuNSAzMzMuOGMtMTMuOS0yNC0yMS4yLTUxLjMtMjEuMi03OS4zIC4xLTg3LjQgNzEuMi0xNTguNSAxNTguNi0xNTguNSA0Mi40IDAgODIuMiAxNi41IDExMi4yIDQ2LjUgMjkuOSAzMCA0Ny45IDY5LjggNDcuOSAxMTIuMiAwIDg3LjQtNzIuNyAxNTguNS0xNjAuMSAxNTguNS0yNi42IDAtNTIuNy02LjctNzUuOC0xOS4zeiJdfSxybHQ9dG5lLGlsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJza3lwZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3ZSIsIk00MjQuNyAyOTkuOGMyLjktMTQgNC43LTI4LjkgNC43LTQzLjggMC0xMTMuNS05MS45LTIwNS4zLTIwNS4zLTIwNS4zLTE0LjkgMC0yOS43IDEuNy00My44IDQuNy0xOS0xNC43LTQyLjYtMjMuNC02OC4zLTIzLjQtNjEuOCAwLTExMiA1MC4yLTExMiAxMTIgMCAyNS43IDguNyA0OS4zIDIzLjMgNjguMi0yLjkgMTQtNC43IDI4LjktNC43IDQzLjggMCAxMTMuNSA5MS45IDIwNS4zIDIwNS4zIDIwNS4zIDE0LjkgMCAyOS43LTEuNyA0My44LTQuNyAxOSAxNC42IDQyLjYgMjMuMyA2OC4yIDIzLjMgNjEuOCAwIDExMi01MC4yIDExMi0xMTIgLjEtMjUuNi04LjYtNDkuMi0yMy4yLTY4LjF6TTIzMC4xIDM5MS4zYy02NS42IDAtMTIwLjUtMjkuMi0xMjAuNS02NSAwLTE2IDktMzAuNiAyOS41LTMwLjYgMzEuMiAwIDM0LjEgNDQuOSA4OC4xIDQ0LjkgMjUuNyAwIDQyLjMtMTEuNCA0Mi4zLTI2LjMgMC0xOC43LTE2LTIxLjYtNDItMjgtNjIuNS0xNS40LTExNy44LTIyLTExNy44LTg3LjIgMC01OS4yIDU4LjYtODEuMSAxMDkuMS04MS4xIDU1LjEgMCAxMTAuOCAyMS45IDExMC44IDU1LjQgMCAxNi45LTExLjQgMzEuOC0zMC4zIDMxLjgtMjguMyAwLTI5LjItMzMuNS03NS0zMy41LTI1LjcgMC00MiA3LTQyIDIyLjUgMCAxOS44IDIwLjggMjEuOCA2OS4xIDMzIDQxLjQgOS4zIDkwLjcgMjYuOCA5MC43IDc3LjYgMCA1OS4xLTU3LjEgODYuNS0xMTIgODYuNXoiXX0sYWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ3VsYXIiLGljb246WzQ0OCw1MTIsW10sImY0MjAiLCJNMTg1LjcgMjY4LjFsNzYuMiAwLTM4LjEtOTEuNi0zOC4xIDkxLjZ6TTIyMy44IDMyTDE2IDEwNi40IDQ3LjggMzgyLjEgMjIzLjggNDgwIDM5OS44IDM4Mi4xIDQzMS42IDEwNi40IDIyMy44IDMyek0zNTQgMzczLjhsLTQ4LjYgMC0yNi4yLTY1LjQtMTEwLjYgMC0yNi4yIDY1LjQtNDguNyAwIDEzMC4xLTI5Mi4zIDEzMC4yIDI5Mi4zeiJdfSxubHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2lyY2xlLXp1bGlwIixpY29uOls1MTIsNTEyLFtdLCJlODUxIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMSAwLTUxMiAyNTYgMjU2IDAgMSAxIDAgNTEyek0yNDMuNSAyNDBjMS4yLTEuOS0uOS00LjItMi42LTIuOGwtODkgNzkuNWMtOS4yIDcuMi0xNS4yIDE5LjEtMTUuMiAzMi41IDAgMjEuOSAxNiAzOS44IDM1LjcgMzkuOGwxNjcuMyAwYzE5LjYgMCAzNS43LTE3LjkgMzUuNy0zOS44IDAtMjEuOS0xNi4xLTM5LjctMzUuNy0zOS44bC0xMjYuNiAwYy0xLjkgMC0zLTIuMy0yLjEtNC4xTDI0My41IDI0MHpNMTcyLjQgMTIzLjFjLTE5LjYgMC0zNS43IDE3LjktMzUuNyAzOS44czE2IDM5LjggMzUuNyAzOS44bDEyNi42IDBjMS45IDAgMy4xIDIuMiAyLjIgNC4xTDI2OC41IDI3MmMtMS4yIDEuOSAuOSA0LjIgMi42IDIuOGw4OS03OS41YzkuMi03LjIgMTUuMi0xOS4xIDE1LjItMzIuNSAwLTIxLjktMTYtMzkuNy0zNS43LTM5LjhsLTE2Ny4zIDB6Il19LG9sdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuc3VzZSIsaWNvbjpbNjQwLDUxMixbXSwiZTYyYiIsIk00NzEuMSAxMDIuN3MtLjMgMTguMy0uMyAyMC4zYy05LjEtMy03NC40LTI0LjEtMTM1LjctMjYuMy01MS45LTEuOC0xMjIuOC00LjMtMjIzIDU3LjMtMTkuNCAxMi40LTczLjkgNDYuMS05OS42IDEwOS43LTUuNSAxMy4zLTEyLjYgNDMuMy01LjUgNzEuNCAzLjMgMTIuOCA4LjkgMjQuOSAxNi41IDM1LjcgMTcuNCAyNSA0Ni42IDQxLjYgNzguMSA0NC40IDQ0LjQgMy45IDc4LjEtMTYgOTAtNTMuMyA4LjItMjUuOCAwLTYzLjYtMzEuNS04Mi45LTI1LjYtMTUuNy01My4zLTEyLjEtNjkuMi0xLjYtMTMuOSA5LjItMjEuOCAyMy41LTIxLjYgMzkuMiAuMyAyNy44IDI0LjMgNDIuNiA0MS41IDQyLjYgNS40IDAgMTAuNy0uOSAxNS44LTIuNyA2LjUtMS44IDEzLjMtNi41IDEzLjMtMTQuOSAwLTEyLjEtMTEuNi0xNC44LTE2LjgtMTMuOS0yLjkgLjUtNC41IDItMTEuOCAyLjQtMi0uMi0xMi0zLjEtMTItMTRsMC0uMWMuMi0xMi4zIDEzLjItMTggMjUuNS0xNi45IDMyLjMgMi44IDQ3LjcgNDAuNyAyOC41IDY1LjctMTguMyAyMy43LTc2LjYgMjMuMi05OS43LTIwLjQtMjYtNDkuMiAxMi43LTExMS4yIDg3LTk4LjQgMzMuMiA1LjcgODMuNiAzNS41IDEwMi40IDEwNC4zbDQ1LjkgMGMtNS43LTE3LjYtOC45LTY4LjMgNDIuNy02OC4zIDU2LjcgMCA2My45IDM5LjkgNzkuOCA2OC4zbDQ4LjYgMGMtMTIuOC0xOC4zLTIxLjctMzguNy0xOC45LTU1LjggNS42LTMzLjggMzkuNy0xOC40IDgyLjQtMTcuNCA2Ni41IC40IDEwMi4xLTI3IDEwMy4xLTI4IDMuNy0zLjEgNi41LTE1LjggNy0xNy43IDEuMy01LjEtMy4yLTIuNC0zLjItMi40LTguNyA1LjItMzAuNSAxNS4yLTUwLjkgMTUuNi0yNS4zIC41LTc2LjItMjUuNC04MS42LTI4LjItLjMtLjQgLjEgMS4yLTExLTI1LjUgODguNCA1OC4zIDExOC4zIDQwLjUgMTQ1LjIgMjEuNyAuOC0uNiA0LjMtMi45IDMuNi01LjctMTMuOC00OC4xLTIyLjQtNjIuNy0zNC41LTY5LjYtMzctMjEuNi0xMjUtMzQuNy0xMjkuMi0zNS4zIC4xLS4xLS45LS4zLS45IC43em02MC40IDcyLjhhMzcuNiAzNy42IDAgMSAxIDc1LjIgMi42IDM3LjYgMzcuNiAwIDEgMSAtNzUuMi0yLjZ6bTM4LjYtMjUuM2MtMy42LS4zLTcuMSAuMS0xMC41IDEuMnMtNi41IDIuOS05LjIgNS4zLTQuOCA1LjMtNi4zIDguNS0yLjQgNi43LTIuNSAxMC4zIC41IDcuMSAxLjggMTAuNCAzLjMgNi4zIDUuOCA4LjkgNS41IDQuNSA4LjggNS45IDYuOSAyIDEwLjQgMS45YzMuNiAuMyA3LjEtLjEgMTAuNS0xLjJzNi41LTIuOSA5LjItNS4zIDQuOC01LjMgNi4zLTguNSAyLjQtNi43IDIuNS0xMC4zLS41LTcuMS0xLjgtMTAuNC0zLjMtNi4zLTUuOC04LjktNS41LTQuNS04LjgtNS45LTYuOS0yLTEwLjQtMS45em00LjMgMjguOGMtMTUuNCAwLTE1LjQtMTUuNiAwLTE1LjZzMTUuNCAxNS42IDAgMTUuNnoiXX0sc2x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRyb3Bib3giLGljb246WzU3Niw1MTIsW10sImYxNmIiLCJNMjg4LjQgMTE2LjNsLTEzMiA4NC4zIDEzMiA4NC4zLTEzMiA4NC4zLTEzMi40LTg1LjEgMTMyLjMtODQuMy0xMzIuMy04My41IDEzMi4zLTg0LjMgMTMyLjEgODQuM3pNMTU1LjYgMzk1LjdsMTMyLTg0LjMgMTMyIDg0LjMtMTMyIDg0LjMtMTMyLTg0LjN6TTI4OC40IDI4NC4xbDEzMi04NC4zLTEzMi04My42IDEzMS4zLTg0LjIgMTMyLjMgODQuMy0xMzIuMyA4NC4zIDEzMi4zIDg0LjItMTMyLjMgODQuMy0xMzEuMy04NXoiXX0sbGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRlZXplciIsaWNvbjpbNTEyLDUxMixbXSwiZTA3NyIsIk0xNC44IDEwMS4xQzYuNiAxMDEuMSAwIDEyNy42IDAgMTYwLjNzNi42IDU5LjIgMTQuOCA1OS4yIDE0LjgtMjYuNSAxNC44LTU5LjItNi42LTU5LjItMTQuOC01OS4yek00NDguNyA0MC45Yy03LjcgMC0xNC41IDE3LjEtMTkuNCA0NC4xLTcuNy00Ni43LTIwLjItNzctMzQuMi03Ny0xNi44IDAtMzEuMSA0Mi45LTM4IDEwNS40LTYuNi00NS40LTE2LjgtNzQuMi0yOC4zLTc0LjItMTYuMSAwLTI5LjYgNTYuOS0zNC43IDEzNi4yLTkuNC00MC44LTIzLjItNjYuMy0zOC4zLTY2LjNzLTI4LjggMjUuNS0zOC4zIDY2LjNjLTUuMS03OS4zLTE4LjYtMTM2LjItMzQuNy0xMzYuMi0xMS41IDAtMjEuNyAyOC44LTI4LjMgNzQuMi02LjYtNjIuNS0yMS4yLTEwNS40LTM3LjgtMTA1LjQtMTQgMC0yNi41IDMwLjQtMzQuMiA3Ny00LjgtMjctMTEuNy00NC4xLTE5LjQtNDQuMS0xNC4zIDAtMjYgNTkuMi0yNiAxMzIuMVM0OSAzMDUuMiA2My4zIDMwNS4yYzUuOSAwIDExLjUtOS45IDE1LjgtMjYuOCA2LjkgNjEuNyAyMS4yIDEwNC4xIDM4IDEwNC4xIDEzIDAgMjQuNS0yNS41IDMyLjEtNjUuNiA1LjQgNzYuMyAxOC42IDEzMC40IDM0LjIgMTMwLjQgOS43IDAgMTguNi0yMS40IDI1LjMtNTYuNCA3LjkgNzIuMiAyNi4zIDEyMi43IDQ3LjcgMTIyLjdzMzkuNS01MC41IDQ3LjctMTIyLjdjNi42IDM1IDE1LjYgNTYuNCAyNS4zIDU2LjQgMTUuNiAwIDI4LjgtNTQuMSAzNC4yLTEzMC40IDcuNyA0MC4xIDE5LjQgNjUuNiAzMi4xIDY1LjYgMTYuNiAwIDMwLjktNDIuMyAzOC0xMDQuMSA0LjMgMTYuOCA5LjcgMjYuOCAxNS44IDI2LjggMTQuMyAwIDI2LTU5LjIgMjYtMTMyLjFTNDYzIDQwLjkgNDQ4LjcgNDAuOXptNDguNSA2MC4yYy04LjIgMC0xNC44IDI2LjUtMTQuOCA1OS4yczYuNiA1OS4yIDE0LjggNTkuMiAxNC44LTI2LjUgMTQuOC01OS4yLTYuNi01OS4yLTE0LjgtNTkuMnoiXX0sY2x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmciLGljb246WzUxMiw1MTIsW10sImY0ZjAiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0zLjYgNTMuMmMyLjgtLjMgMTEuNSAxIDExLjUgMTEuNWw2LjYgMTA3LjIgNC45LTU5LjNjMC02IDQuNy0xMC42IDEwLjYtMTAuNnMxMC42IDQuNyAxMC42IDEwLjZjMCAyLjUtLjUtNS43IDUuNyA4MS41bDUuOC02NC4yYy4zLTIuOSAyLjktOS4zIDEwLjItOS4zIDMuOCAwIDkuOSAyLjMgMTAuNiA4LjlsMTEuNSA5Ni41IDUuMy0xMi44YzEuOC00LjQgNS4yLTYuNiAxMC4yLTYuNmw1OCAwIDAgMjEuMy01MC45IDAtMTguMiA0NC4zYy0zLjkgOS45LTE5LjUgOS4xLTIwLjgtMy4xbC00LTMxLjktNy41IDkyLjZjLS4zIDMtMyA5LjMtMTAuMiA5LjMtMyAwLTkuOC0yLjEtMTAuNi05LjMgMC0xLjkgLjYgNS44LTYuMi03Ny45bC01LjMgNzIuMmMtMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTIuOSAwLTkuOC0yLTEwLjYtOS4zIDAtMS45IC41IDYuNy01LjgtODcuN0wyNTUgMzgzLjljMCA2LjMtMy42IDEyLjQtMTAuNiAxMi40LTUuMiAwLTEwLjYtNC4xLTEwLjYtMTJMMjI4IDI5Ni42Yy01LjggOTIuNS01LjMgODQtNS4zIDg1LjktMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtLjctLjQtMS4xLS40LTIuNmwtNi4yLTg4LjYtNC45IDU2LjdjLS43IDYuNS02LjcgOS4zLTEwLjYgOS4zLTUuOCAwLTkuNi00LjEtMTAuNi04LjlMMTU3LjcgMjcyYy0yIDQtMy41IDguNC0xMS4xIDguNGwtNTEuNCAwIDAtMjEuMyA0NC44IDAgMTMuNy0yNy45YzQuNC05LjkgMTguMi03LjIgMTkuOSAyLjdsMy4xIDIwLjQgOC40LTk3LjljMC02IDQuOC0xMC42IDEwLjYtMTAuNiAuNSAwIDEwLjYtLjIgMTAuNiAxMi40bDQuOSA2OS4xIDYuNi05Mi42YzAtMTAuMSA5LjUtMTAuNiAxMC4yLTEwLjYgLjYgMCAxMC42IC43IDEwLjYgMTAuNmw1LjMgODAuNiA2LjItOTcuOWMuMS0xLjEtLjYtMTAuMyA5LjktMTEuNXoiXX0sZGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImplZGktb3JkZXIiLGljb246WzQ0OCw1MTIsW10sImY1MGUiLCJNMzk4LjkgMzczLjZjOTUuOS0xMjIuMSAxNy4yLTIzMy4xIDE3LjItMjMzLjEgNDUuNCA4NS44LTQxLjQgMTcwLjUtNDEuNCAxNzAuNSAxMDUtMTcxLjUtNjAuNS0yNzEuNS02MC41LTI3MS41IDk2LjkgNzIuNy0xMC4xIDE5MC43LTEwLjEgMTkwLjcgODUuOCAxNTguNC02OC42IDIzMC4xLTY4LjYgMjMwLjFzLS40LTE2LjktMi4yLTg1LjdjNC4zIDQuNSAzNC41IDM2LjIgMzQuNSAzNi4ybC0yNC4yLTQ3LjQgNjIuNi05LjEtNjIuNi05LjEgMjAuMi01NS41LTMxLjQgNDUuOWMtMi4yLTg3LjctNy44LTMwNS4xLTcuOS0zMDYuOSAwIDEtNS42IDIxOS03LjkgMzA2LjlsLTMxLjQtNDUuOSAyMC4yIDU1LjUtNjIuNiA5LjEgNjIuNiA5LjEtMjQuMiA0Ny40IDM0LjUtMzYuMmMtMS44IDY4LjgtMi4yIDg1LjctMi4yIDg1LjdTNTkuMSAzODguNiAxNDQuOSAyMzAuMmMwIDAtMTA3LTExOC4xLTEwLjEtMTkwLjcgMCAwLTE2NS41IDk5LjktNjAuNSAyNzEuNSAwIDAtODYuOC04NC44LTQxLjQtMTcwLjUgMCAwLTc4LjcgMTExIDE3LjIgMjMzLjEgMCAwLTI2LjItMTYuMS00OS40LTc3LjcgMCAwIDE2LjkgMTgzLjMgMjIyIDE4NS43bDQuMSAwYzIwNS0yLjQgMjIyLTE4NS43IDIyMi0xODUuNy0yMy42IDYxLjUtNDkuOSA3Ny43LTQ5LjkgNzcuN3oiXX0sdWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InItcHJvamVjdCIsaWNvbjpbNTc2LDUxMixbXSwiZjRmNyIsIk01NzguNSAyMjYuNkM1NzguNSAxMTkuMSA0NDguNCAzMiAyODggMzJTLTIuNSAxMTkuMS0yLjUgMjI2LjZjMCA5NS44IDEwMy4zIDE3NS40IDIzOS40IDE5MS41bDAgNjEuOSA5OS4xIDAgMC02MS41YzI0LjMtMi43IDQ3LjYtNy40IDY5LjQtMTMuOWw0MC4xIDc1LjQgMTEyIDAtNjcuNC0xMTMuN2M1NC41LTM1LjQgODguNC04NC45IDg4LjQtMTM5Ljd6TTExMS43IDI0MS4xYzAtNzMuNSA5OC45LTEzMyAyMjAuOC0xMzNzMjExLjkgNDAuNyAyMTEuOSAxMzNjMCA1MC4xLTI2LjUgODUtNzAuMyAxMDYuNC0yLjQtMS42LTQuNy0yLjktNi40LTMuNy0xMC4yLTUuMi0yNy44LTEwLjUtMjcuOC0xMC41czg2LjYtNi40IDg2LjYtOTIuNy05MC42LTg3LjktOTAuNi04Ny45bC0xOTkgMCAwIDIwOC4zYy03NC4xLTIxLjUtMTI1LjItNjcuMS0xMjUuMi0xMTkuOXptMjI1LjEgMzguM2wwLTU1LjZjNTcuOCAwIDg3LjgtNi44IDg3LjggMjcuMyAwIDM2LjUtMzguMiAyOC4zLTg3LjggMjguM3ptLS45IDcyLjVsMjYuNiAwYzEwLjggMCAxOC45IDExLjcgMjQgMTkuMi0xNi4xIDEuOS0zMyAyLjgtNTAuNiAyLjlsMC0yMi4xeiJdfSxwbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaW5zdGFsb2QiLGljb246WzUxMiw1MTIsW10sImUwODEiLCJNMTUzLjYgNDgwbDIzMy43IDAgMTE1LjQtMjA0LjItMjk4LjMgNTcuNC01MC44IDE0Ni44ek01MDUgMjQwLjFMMzg3LjQgMzIgMTU1LjkgMzIgMzYwLjUgMjY3LjkgNTA1IDI0MC4xek0xMjQuNiA0OC44TDcuNSAyNTYgMTIzLjUgNDYxLjIgMjI1LjkgMTY1LjYgMTI0LjYgNDguOHoiXX0saGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNhbmFkaWFuLW1hcGxlLWxlYWYiLGljb246WzUxMiw1MTIsW10sImY3ODUiLCJNMzgzLjggMzUxLjdjMi41LTIuNSAxMDUuMi05Mi40IDEwNS4yLTkyLjRsLTE3LjUtNy41Yy0xMC00LjktNy40LTExLjUtNS0xNy40IDIuNC03LjYgMjAuMS02Ny4zIDIwLjEtNjcuM3MtNDcuNyAxMC01Ny43IDEyLjVjLTcuNSAyLjQtMTAtMi41LTEyLjUtNy41cy0xNS0zMi40LTE1LTMyLjQtNTIuNiA1OS45LTU1LjEgNjIuM2MtMTAgNy41LTIwLjEgMC0xNy42LTEwIDAtMTAgMjcuNi0xMjkuNiAyNy42LTEyOS42cy0zMC4xIDE3LjQtNDAuMSAyMi40Yy03LjUgNS0xMi42IDUtMTcuNi01LTUuMS03LjUtNDIuNy03OS44LTQyLjctNzkuOHMtMzcuNSA3Mi4zLTQyLjUgNzkuOGMtNSAxMC0xMCAxMC0xNy42IDUtMTAtNS00MC4xLTIyLjQtNDAuMS0yMi40UzE4My4zIDE4MiAxODMuMyAxOTJjMi41IDEwLTcuNSAxNy41LTE3LjYgMTAtMi41LTIuNS01NS4xLTYyLjMtNTUuMS02Mi4zcy0xMi41IDI3LjMtMTUgMzIuMy01IDkuOS0xMi41IDcuNUM3MyAxNzcgMjUuNCAxNjcgMjUuNCAxNjdTNDMgMjI2LjcgNDUuNSAyMzQuM2MyLjQgNiA1IDEyLjUtNSAxNy40TDIzIDI1OS4zczEwMi42IDg5LjkgMTA1LjIgOTIuNGM1LjEgNSAxMCA3LjUgNS4xIDIyLjUtNS4xIDE1LTEwLjEgMzUuMS0xMC4xIDM1LjFzOTUuMi0yMC4xIDEwNS4zLTIyLjZjOC43LS45IDE4LjMgMi41IDE4LjMgMTIuNVMyNDEgNTEyIDI0MSA1MTJsMzAgMHMtNS44LTEwMi43LTUuOC0xMTIuOCA5LjUtMTMuNCAxOC40LTEyLjVjMTAgMi41IDEwNS4yIDIyLjYgMTA1LjIgMjIuNnMtNS0yMC4xLTEwLTM1LjEgMC0xNy41IDUtMjIuNXoiXX0sZmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0aGVyZXVtIixpY29uOlszMjAsNTEyLFtdLCJmNDJlIiwiTTMxMS45IDI2MC44TDE2MCAzNTMuNiA4IDI2MC44IDE2MCAwIDMxMS45IDI2MC44ek0xNjAgMzgzLjRMOCAyOTAuNiAxNjAgNTEyIDMxMiAyOTAuNiAxNjAgMzgzLjR6Il19LG1sdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3V6eiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3YyIsIk0yNzYgMzMwLjdsLTEwNC42IDAgMCAxNDkuMy0xNTQuMyAwIDAtNDQ4IDEwOS41IDAgMCAxMDQuNSAzMDUuMSA4NS42IDAgMjU3LjktMTU1LjcgMCAwLTE0OS4zeiJdfSxnbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmliZXIiLGljb246WzUxMiw1MTIsW10sImY0MDkiLCJNNDQ0LjMgNDkuOWMtMTIuNy0xMS43LTY0LjEtNDktMTc4LjctNDkuNSAwIDAtMTM1LjEtOC4xLTIwMC45IDUyLjMtMzYuNiAzNi42LTQ5LjUgOTAuMy01MC45IDE1Ni44cy0zLjEgMTkxLjEgMTE3IDIyNC45bC4xIDAtLjEgNTEuNnMtLjggMjAuOSAxMyAyNS4xYzE2LjYgNS4yIDI2LjQtMTAuNyA0Mi4zLTI3LjggOC43LTkuNCAyMC43LTIzLjIgMjkuOC0zMy43IDgyLjIgNi45IDE0NS4zLTguOSAxNTIuNS0xMS4yIDE2LjYtNS40IDExMC41LTE3LjQgMTI1LjctMTQyIDE1LjgtMTI4LjYtNy42LTIwOS44LTQ5LjgtMjQ2LjV6TTQ1OC4yIDI4N2MtMTIuOSAxMDQtODkgMTEwLjYtMTAzIDExNS4xLTYgMS45LTYxLjUgMTUuNy0xMzEuMiAxMS4yIDAgMC01MiA2Mi43LTY4LjIgNzktNS4zIDUuMy0xMS4xIDQuOC0xMS01LjcgMC02LjkgLjQtODUuNyAuNC04NS43bDAgMEM0My40IDM3Mi43IDQ5LjQgMjY2LjYgNTAuNSAyMTEuMXMxMS42LTEwMSA0Mi42LTEzMS42YzU1LjctNTAuNSAxNzAuNC00MyAxNzAuNC00MyA5Ni45IC40IDE0My4zIDI5LjYgMTU0LjEgMzkuNCAzNS43IDMwLjYgNTMuOSAxMDMuOCA0MC42IDIxMS4xem0tMTM5LTgwLjhjLjQgOC42LTEyLjUgOS4yLTEyLjkgLjYtMS4xLTIyLTExLjQtMzIuNy0zMi42LTMzLjktOC42LS41LTcuOC0xMy40IC43LTEyLjkgMjcuOSAxLjUgNDMuNCAxNy41IDQ0LjggNDYuMnptMjAuMyAxMS4zYzEtNDIuNC0yNS41LTc1LjYtNzUuOC03OS4zLTguNS0uNi03LjYtMTMuNSAuOS0xMi45IDU4IDQuMiA4OC45IDQ0LjEgODcuOCA5Mi41LS4xIDguNi0xMy4xIDguMi0xMi45LS4zem00NyAxMy40Yy4xIDguNi0xMi45IDguNy0xMi45IC4xLS42LTgxLjUtNTQuOS0xMjUuOS0xMjAuOC0xMjYuNC04LjUtLjEtOC41LTEyLjkgMC0xMi45IDczLjcgLjUgMTMzIDUxLjQgMTMzLjcgMTM5LjJ6TTM3NS4yIDMyOWwwIC4yYy0xMC44IDE5LTMxIDQwLTUxLjggMzMuM2wtLjItLjNjLTIxLjEtNS45LTcwLjgtMzEuNS0xMDIuMi01Ni41LTE2LjItMTIuOC0zMS0yNy45LTQyLjQtNDIuNC0xMC4zLTEyLjktMjAuNy0yOC4yLTMwLjgtNDYuNi0yMS4zLTM4LjUtMjYtNTUuNy0yNi01NS43LTYuNy0yMC44IDE0LjItNDEgMzMuMy01MS44bC4yIDBjOS4yLTQuOCAxOC0zLjIgMjMuOSAzLjkgMCAwIDEyLjQgMTQuOCAxNy43IDIyLjEgNSA2LjggMTEuNyAxNy43IDE1LjIgMjMuOCA2LjEgMTAuOSAyLjMgMjItMy43IDI2LjZsLTEyIDkuNmMtNi4xIDQuOS01LjMgMTQtNS4zIDE0czE3LjggNjcuMyA4NC4zIDg0LjNjMCAwIDkuMSAuOCAxNC01LjNsOS42LTEyYzQuNi02IDE1LjctOS44IDI2LjYtMy43IDE0LjcgOC4zIDMzLjQgMjEuMiA0NS44IDMyLjkgNyA1LjcgOC42IDE0LjQgMy44IDIzLjZ6Il19LHJuZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJraWNrc3RhcnRlciIsaWNvbjpbNDQ4LDUxMixbInNxdWFyZS1raWNrc3RhcnRlciJdLCJmM2JiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTMyMC44IDIzM2wtMjMuMyAyMy4xIDIzLjMgMjIuOWMyNC4xIDIzLjkgMjQuMSA2MyAwIDg2LjlzLTYzLjQgMjMuOS04Ny42IDBsLTguNS04LjRjLTExLjMgMTYtMjkuNyAyNi41LTUwLjkgMjYuNS0zNC4xIDAtNjEuOS0yNy41LTYxLjktNjEuNGwwLTEzMy4yYzAtMzMuOCAyNy43LTYxLjQgNjEuOS02MS40IDIxLjEgMCAzOS42IDEwLjUgNTAuOSAyNi41bDguNS04LjRjMjQuMS0yMy45IDYzLjQtMjMuOSA4Ny42IDBzMjQuMSA2MyAwIDg2Ljl6Il19LGJsdD1ybmUsdmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNwb3RpZnkiLGljb246WzUxMiw1MTIsW10sImYxYmMiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zNTYuNyAzNzIuOWMtNC4yIDAtNi44LTEuMy0xMC43LTMuNi02Mi40LTM3LjYtMTM1LTM5LjItMjA2LjctMjQuNS0zLjkgMS05IDIuNi0xMS45IDIuNi05LjcgMC0xNS44LTcuNy0xNS44LTE1LjggMC0xMC4zIDYuMS0xNS4yIDEzLjYtMTYuOCA4MS45LTE4LjEgMTY1LjYtMTYuNSAyMzcgMjYuMiA2LjEgMy45IDkuNyA3LjQgOS43IDE2LjVzLTcuMSAxNS40LTE1LjIgMTUuNHptMjYuOS02NS42Yy01LjIgMC04LjctMi4zLTEyLjMtNC4yLTYyLjUtMzctMTU1LjctNTEuOS0yMzguNi0yOS40LTQuOCAxLjMtNy40IDIuNi0xMS45IDIuNi0xMC43IDAtMTkuNC04LjctMTkuNC0xOS40czUuMi0xNy44IDE1LjUtMjAuN2MyNy44LTcuOCA1Ni4yLTEzLjYgOTcuOC0xMy42IDY0LjkgMCAxMjcuNiAxNi4xIDE3NyA0NS41IDguMSA0LjggMTEuMyAxMSAxMS4zIDE5LjctLjEgMTAuOC04LjUgMTkuNS0xOS40IDE5LjV6bTMxLTc2LjJjLTUuMiAwLTguNC0xLjMtMTIuOS0zLjktNzEuMi00Mi41LTE5OC41LTUyLjctMjgwLjktMjkuNy0zLjYgMS04LjEgMi42LTEyLjkgMi42LTEzLjIgMC0yMy4zLTEwLjMtMjMuMy0yMy42IDAtMTMuNiA4LjQtMjEuMyAxNy40LTIzLjkgMzUuMi0xMC4zIDc0LjYtMTUuMiAxMTcuNS0xNS4yIDczIDAgMTQ5LjUgMTUuMiAyMDUuNCA0Ny44IDcuOCA0LjUgMTIuOSAxMC43IDEyLjkgMjIuNiAwIDEzLjYtMTEgMjMuMy0yMy4yIDIzLjN6Il19LHhsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZWFucHViIixpY29uOls1NzYsNTEyLFtdLCJmMjEyIiwiTTM4Ni42IDExMS41bDE1LjEgMjQ5LTExLS4zYy0zNi4yLS44LTcxLjYgOC44LTEwMi43IDI4LTMxLTE5LjItNjYuNC0yOC0xMDIuNy0yOC00NS42IDAtODIuMSAxMC43LTEyMy41IDI3LjdMOTMuMiAxMjkuNmMyOC41LTExLjggNjEuNS0xOC4xIDkyLjItMTguMSA0MS4yIDAgNzMuOCAxMy4yIDEwMi43IDQyLjUgMjcuNy0yOC4zIDU5LTQxLjcgOTguNS00Mi41ek01NjkuMiA0NDhjLTI1LjUgMC00Ny41LTUuMi03MC41LTE1LjYtMzQuMy0xNS42LTcwLTI1LTEwNy45LTI1LTM5IDAtNzQuOSAxMi45LTEwMi43IDQwLjYtMjcuNy0yNy43LTYzLjctNDAuNi0xMDIuNy00MC42LTM3LjkgMC03My42IDkuMy0xMDcuOSAyNS0yMi4yIDkuOS00NC43IDE1LjYtNjkuMiAxNS42TDcgNDQ4IDQ5LjYgOTguOWMzOS4zLTIyLjIgODctMzQuOSAxMzIuMy0zNC45IDM3LjEgMCA3NS4yIDcuNyAxMDYuMiAyOS4xIDMxLTIxLjQgNjkuMi0yOS4xIDEwNi4yLTI5LjEgNDUuMyAwIDkzIDEyLjYgMTMyLjMgMzQuOUw1NjkuMiA0NDh6bS00My40LTQ0LjdMNDkxLjggMTIzYy0zMC43LTE0LTY3LjItMjEuNC0xMDEtMjEuNC0zOC40IDAtNzQuNCAxMi4xLTEwMi43IDM4LjctMjguMy0yNi42LTY0LjItMzguNy0xMDIuNy0zOC43LTMzLjggMC03MC4zIDcuNC0xMDEgMjEuNGwtMzQgMjgwLjJjNDcuMi0xOS41IDgyLjktMzMuNSAxMzUtMzMuNSAzNy42IDAgNzAuOCA5LjYgMTAyLjcgMjkuNiAzMS44LTIwIDY1LjEtMjkuNiAxMDIuNy0yOS42IDUyLjIgMCA4Ny44IDE0IDEzNSAzMy41eiJdfSx5bHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiamF2YSIsaWNvbjpbMzg0LDUxMixbXSwiZjRlNCIsIk0yNzcuOCAzMTIuOWM5LjgtNi43IDIzLjQtMTIuNSAyMy40LTEyLjVzLTM4LjcgNy03Ny4yIDEwLjJjLTQ3LjEgMy45LTk3LjcgNC43LTEyMy4xIDEuMy02MC4xLTggMzMtMzAuMSAzMy0zMC4xcy0zNi4xLTIuNC04MC42IDE5Yy01Mi41IDI1LjQgMTMwIDM3IDIyNC41IDEyLjF6bS04NS40LTMyLjFjLTE5LTQyLjctODMuMS04MC4yIDAtMTQ1LjggMTAzLjctODEuOCA1MC41LTEzNSA1MC41LTEzNSAyMS41IDg0LjUtNzUuNiAxMTAuMS0xMTAuNyAxNjIuNi0yMy45IDM1LjkgMTEuNyA3NC40IDYwLjIgMTE4LjJ6TTMwNyAxMDQuNmMuMSAwLTE3NS4yIDQzLjgtOTEuNSAxNDAuMiAyNC43IDI4LjQtNi41IDU0LTYuNSA1NHM2Mi43LTMyLjQgMzMuOS03Mi45QzIxNiAxODguMSAxOTUuNCAxNjkuMyAzMDcgMTA0LjZ6bS02LjEgMjcwLjVjLS41IDEtMS4yIDEuOC0yIDIuNiAxMjguMy0zMy43IDgxLjEtMTE4LjkgMTkuOC05Ny4zLTMuMyAxLjItNi4yIDMuNC04LjIgNi4zIDMuNi0xLjMgNy4zLTIuMyAxMS0zIDMxLTYuNSA3NS41IDQxLjUtMjAuNiA5MS40ek0zNDggNDM3LjRzMTQuNSAxMS45LTE1LjkgMjEuMmMtNTcuOSAxNy41LTI0MC44IDIyLjgtMjkxLjYgLjctMTguMy03LjkgMTYtMTkgMjYuOC0yMS4zIDExLjItMi40IDE3LjctMiAxNy43LTItMjAuMy0xNC4zLTEzMS4zIDI4LjEtNTYuNCA0MC4yIDIwNC4yIDMzLjIgMzcyLjQtMTQuOSAzMTkuNC0zOC44ek0xMjQuNSAzOTZjLTc4LjcgMjIgNDcuOSA2Ny40IDE0OC4xIDI0LjUtOS44LTMuOC0xOS4yLTguNC0yOC4yLTEzLjgtNDQuNyA4LjUtNjUuNCA5LjEtMTA2IDQuNS0zMy41LTMuOC0xMy45LTE1LjItMTMuOS0xNS4yem0xNzkuOCA5Ny4yYy03OC43IDE0LjgtMTc1LjggMTMuMS0yMzMuMyAzLjYgMC0uMSAxMS44IDkuNyA3Mi40IDEzLjYgOTIuMiA1LjkgMjMzLjgtMy4zIDIzNy4xLTQ2LjkgMCAwLTYuNCAxNi41LTc2LjIgMjkuN3pNMjYwLjcgMzUzYy01OS4yIDExLjQtOTMuNSAxMS4xLTEzNi44IDYuNi0zMy41LTMuNS0xMS42LTE5LjctMTEuNi0xOS43LTg2LjggMjguOCA0OC4yIDYxLjQgMTY5LjUgMjUuOS03LjgtMi44LTE1LTcuMS0yMS4xLTEyLjh6Il19LHdsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJuZmMtc3ltYm9sIixpY29uOls1MTIsNTEyLFtdLCJlNTMxIiwiTTM2MC45IDMyLjRjNy43LTEuMyAxNS43IC41IDIxLjIgNSA4NC4xIDU4LjcgMTI5LjkgMTM2LjMgMTI5LjkgMjE3LjcgMCA4My4xLTQ1LjggMTYwLjgtMTI5LjkgMjE5LjUtNC44IDQtMTEuNyA1LjktMTguNiA1LjMtNy0uNi0xMy41LTMuNi0xOC40LTguNUwxNjEuNyAyODguN2MtNS42LTUuNS04LjctMTMtOS42LTIwLjkgMC03LjggNC0xNS4zIDkuNS0yMC45IDUuNi01LjUgMTMuMS04LjcgMjAuOS04LjcgNy45IDAgMTUuNCAzLjEgMjAuOSA4LjZMMzY4LjUgNDExLjJjNTQuNi00NC43IDg0LjMtOTkuMiA4NC4zLTE1Ni4xIDAtNjEuNi0zNi45LTEyMi4yLTEwMy45LTE2OS4zLTYuNC00LjUtMTAuOC0xMS40LTEyLjEtMTkuMS0xLjQtNy43IC40LTE1LjcgNS0yMi4xIDQuNS02LjQgMTEuNC0xMC44IDE5LjEtMTIuMXptLTIwNiA0NDcuMmMtNy43IDEuMy0xNS42LS41LTIyLjEtNS04My4xLTU4LjctMTI5LTEzNi40LTEyOS0yMTkuNSAwLTgxLjQgNDUuOC0xNTkgMTI5LTIxNy43IDUuNy00IDEyLjYtNS45IDE5LjYtNS4zIDYuOSAuNiAxMy40IDMuNiAxOC4zIDguNUwzNTQuMSAyMjMuM2M1LjYgNS41IDguNyAxMyA4LjcgMjAuOSAuMSA2LjktMyAxNS4zLTguNiAyMC45LTUuNSA1LjUtMTMgOC43LTIwLjkgOC43LTcuOCAwLTE2LjItMy4xLTIwLjktOC42TDE0Ny4zIDEwMC43Yy01NC42IDQ1LjItODQuMyA5OS4yLTg0LjMgMTU0LjQgMCA2My40IDM2LjkgMTI0IDEwMy4xIDE3MS4xIDcuMyA0LjYgMTEuNiAxMS40IDEzIDE5LjIgMS4zIDcuNy0uNSAxNS43LTUgMjIuMXMtMTEuNCAxMC43LTE5LjIgMTIuMXoiXX0sTWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndvZHUiLGljb246WzY0MCw1MTIsW10sImUwODgiLCJNMTc4LjQgMzM5LjdsLTM3LjMgMC0yOC45LTExNi4yLS41IDAtMjguNSAxMTYuMi0zOCAwLTQ1LjItMTcwLjggMzcuNSAwIDI3IDExNi4yIC41IDAgMjkuNy0xMTYuMiAzNS4yIDAgMjkuMiAxMTcuNyAuNSAwIDI4LTExNy43IDM2LjggMC00NS45IDE3MC44em05My0xMjdjMzkgMCA2NC4xIDI1LjggNjQuMSA2NS4zIDAgMzkuMi0yNS4xIDY1LTY0LjEgNjUtMzguNyAwLTYzLjktMjUuOC02My45LTY1IDAtMzkuNSAyNS4xLTY1LjMgNjMuOS02NS4zem0wIDEwNC44YzIzLjIgMCAzMC4xLTE5LjkgMzAuMS0zOS41IDAtMTkuOS02LjktMzkuNy0zMC4xLTM5LjctMjcuNyAwLTI5LjkgMTkuOS0yOS45IDM5LjcgMCAxOS42IDYuOSAzOS41IDI5LjkgMzkuNXptMTYzLjcgNi41bC0uNSAwYy03LjkgMTMuNC0yMS44IDE5LjEtMzcuNSAxOS4xLTM3LjMgMC01NS41LTMyLTU1LjUtNjYuMiAwLTMzLjIgMTguNC02NC4xIDU0LjgtNjQuMSAxNC42IDAgMjguOSA2LjIgMzYuOCAxOC40bC4yIDAgMC02Mi4yIDM0IDAgMCAxNzAuOC0zMi4zIDAgMC0xNS44em0tMjkuNy04NS42Yy0yMi4yIDAtMjkuOSAxOS4xLTI5LjkgMzkuNSAwIDE5LjQgOC44IDM5LjcgMjkuOSAzOS43IDIyLjUgMCAyOS4yLTE5LjYgMjkuMi0zOS45IDAtMjAuMS03LjItMzkuMi0yOS4yLTM5LjJ6TTU5MyAzMzkuN2wtMzIuMyAwIDAtMTcuMi0uNyAwYy04LjYgMTMuOS0yMy40IDIwLjYtMzcuOCAyMC42LTM2LjEgMC00NS4yLTIwLjMtNDUuMi01MC45bDAtNzYuMSAzNCAwIDAgNjkuOGMwIDIwLjMgNiAzMC40IDIxLjggMzAuNCAxOC40IDAgMjYuMy0xMC4zIDI2LjMtMzUuNGwwLTY0LjggMzQgMCAwIDEyMy42em05LjUtMzYuOGwzNy41IDAgMCAzNi44LTM3LjUgMCAwLTM2Ljh6Il19LGluZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtc3RlYW0iLGljb246WzQ0OCw1MTIsWyJzdGVhbS1zcXVhcmUiXSwiZjFiNyIsIk0xNjUuNiAzMDkuMWMxOC42IDcuNyAyNy4zIDI4LjkgMTkuNiA0Ny40cy0yOSAyNy4yLTQ3LjYgMTkuNGwtMjguNS0xMS44YzUgMTAuNiAxMy44IDE5LjQgMjUuNCAyNC4yIDI1LjIgMTAuNSA1NC4xLTEuNCA2NC42LTI2LjUgNS4xLTEyLjEgNS4xLTI1LjUgLjEtMzcuNy01LjEtMTIuMS0xNC41LTIxLjYtMjYuNy0yNi43LTEyLjEtNS0yNS00LjgtMzYuNC0uNWwyOS41IDEyLjJ6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2bDAgMTQ0LjcgMTE2LjYgNDguMWMxMi04LjIgMjYuMi0xMi4xIDQwLjctMTEuM2w1NS40LTgwLjIgMC0xLjFjMC00OC4yIDM5LjMtODcuNSA4Ny42LTg3LjVzODcuNiAzOS4zIDg3LjYgODcuNWMwIDQ5LjItNDAuOSA4OC43LTg5LjYgODcuNWwtNzkgNTYuM2MxLjYgMzguNS0yOS4xIDY4LjgtNjUuNyA2OC44LTMxLjggMC01OC41LTIyLjctNjQuNS01Mi43TDAgMzE5LjIgMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTI0MS45IDE5Ni4yYTU4LjQgNTguNCAwIDEgMCAxMTYuOCAwIDU4LjQgNTguNCAwIDEgMCAtMTE2LjggMHptMTAyLjQtLjFhNDMuOSA0My45IDAgMSAxIC04Ny44IDAgNDMuOSA0My45IDAgMSAxIDg3LjggMHoiXX0sa2x0PWluZSxTbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1uYy1ldSIsaWNvbjpbNTEyLDUxMixbXSwiZjRlOSIsIk0yNTUuNyA4QzExMS42IDggOCAxMjQuOCA4IDI1NiA4IDM5Mi4zIDExOS43IDUwNCAyNTUuNyA1MDQgMzg1LjkgNTA0IDUwNCA0MDMuMSA1MDQgMjU2IDUwNCAxMTcgMzk2LjQgOCAyNTUuNyA4em0uNiA0NTAuN2MtMTEyIDAtMjAzLjYtOTIuNS0yMDMuNi0yMDIuNyAwLTIzLjIgMy43LTQ1LjIgMTAuOS02Nmw2NS43IDI5LjEtNC43IDAgMCAyOS41IDIzLjMgMGMwIDYuMi0uNCAzLjItLjQgMTkuNWwtMjIuOCAwIDAgMjkuNSAyNyAwYzExLjQgNjcgNjcuMiAxMDEuMyAxMjQuNiAxMDEuMyAyNi42IDAgNTAuNi03LjkgNjQuOC0xNS44bC0xMC00Ni4xYy04LjcgNC42LTI4LjIgMTAuOC00Ny4zIDEwLjgtMjguMiAwLTU4LjEtMTAuOS02Ny4zLTUwLjJsOTAuMyAwIDEyOC4zIDU2LjhjLTEuNSAyLjEtNTYuMiAxMDQuMy0xNzguOCAxMDQuM3pNMjM5LjYgMjY4LjFsLS41LS40IC45IC40LS40IDB6bTc3LjItMTkuNWwzLjcgMCAwLTI5LjUtNzAuMyAwLTI4LjYtMTIuNmMyLjUtNS41IDUuNC0xMC41IDguOC0xNC4zIDEyLjktMTUuOCAzMS4xLTIyLjQgNTEuMS0yMi40IDE4LjMgMCAzNS4zIDUuNCA0Ni4xIDEwbDExLjYtNDcuM2MtMTUtNi42LTM3LTEyLjQtNjIuMy0xMi40LTM5IDAtNzIuMiAxNS44LTk1LjkgNDIuMy01LjMgNi4xLTkuOCAxMi45LTEzLjkgMjAuMUw4NS41IDE0Ni40YzY0LjYtOTYuOCAxNTcuNy05My42IDE3MC43LTkzLjYgMTEzIDAgMjAzIDkwLjIgMjAzIDIwMy40IDAgMTguNy0yLjEgMzYuMy02LjMgNTIuOUwzMTYuOCAyNDguNnoiXX0semx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5wbSIsaWNvbjpbNTc2LDUxMixbXSwiZjNkNCIsIk0yODggMjg4bC0zMiAwIDAtNjQgMzIgMCAwIDY0ek01NzYgMTYwbDAgMTkyLTI4OCAwIDAgMzItMTI4IDAgMC0zMi0xNjAgMCAwLTE5MiA1NzYgMHpNMTYwIDE5MmwtMTI4IDAgMCAxMjggNjQgMCAwLTk2IDMyIDAgMCA5NiAzMiAwIDAtMTI4em0xNjAgMGwtMTI4IDAgMCAxNjAgNjQgMCAwLTMyIDY0IDAgMC0xMjh6bTIyNCAwbC0xOTIgMCAwIDEyOCA2NCAwIDAtOTYgMzIgMCAwIDk2IDMyIDAgMC05NiAzMiAwIDAgOTYgMzIgMCAwLTEyOHoiXX0sQ2x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3Vkc2NhbGUiLGljb246WzQ0OCw1MTIsW10sImYzODMiLCJNMzE4LjEgMTU0bC05LjQgNy42Yy0yMi41LTE5LjMtNTEuNS0zMy42LTgzLjMtMzMuNi03MS42IDAtMTI5LjQgNjAuOC0xMjkuNCAxMzIuMyAwIDYuNiAuNCAxMy4xIDEuNCAxOS40LTItNTYgNDEuOC05Ny40IDkyLjYtOTcuNCAyNC4yIDAgNDYuMiA5LjQgNjIuNiAyNC43bC0yNS4yIDIwLjRjLTguMy0uOS0xNi44IDEuOC0yMy4xIDguMS0xMS4xIDExLTExLjEgMjguOSAwIDQwIDExLjEgMTEgMjguOSAxMSA0MCAwIDYuMy02LjMgOS0xNC45IDguMS0yMy4xbDc1LjItODguOGM2LjMtNi41LTMuMy0xNS45LTkuNS05LjZ6TTIxMy43IDI0Ni41YTE0IDE0IDAgMSAxIDIwLjYgMTkgMTQgMTQgMCAxIDEgLTIwLjYtMTl6TTIyNCAzMmEyMjQgMjI0IDAgMSAwIDAgNDQ4IDIyNCAyMjQgMCAxIDAgMC00NDh6bTAgNjRhMTYwIDE2MCAwIDEgMSAwIDMyMCAxNjAgMTYwIDAgMSAxIDAtMzIweiJdfSxUbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGhlbWVjbyIsaWNvbjpbNDQ4LDUxMixbXSwiZjVjNiIsIk0yMDIuOSA4LjRjOS45LTUuNyAyNi01LjggMzYtLjJMNDMwIDExNS45YzEwIDUuNiAxOCAxOS40IDE4IDMwLjlMNDQ4IDM2NGMwIDExLjQtOC4xIDI1LjMtMTggMzFMMjM4LjggNTAzLjdjLTkuOSA1LjctMjYgNS42LTM1LjgtLjJMMTcuOSAzOTUuMUM4IDM4OS4zIDAgMzc1LjQgMCAzNjRMMCAxNDYuN2MwLTExLjQgOC0yNS40IDE3LjktMzEuMUwyMDIuOSA4LjR6TTEyNS41IDIwOC4zYy0xNS45IDAtMzEuOSAuMS00Ny44IC4xbDAgMTAxLjQgMTkuMSAwIDAtMjkuOCAyOC43IDBjNDkuNyAwIDQ5LjYtNzEuNyAwLTcxLjd6TTI2NS42IDMwOC42bC0zMC43LTM0LjZjMzctNy41IDM0LjgtNjUuMi0xMC45LTY1LjUtMTYuMSAwLTMyLjItLjEtNDguMy0uMWwwIDEwMS42IDE5LjEgMCAwLTMzLjkgMTguNCAwIDI5LjYgMzMuOSAyMi44IDAgMC0xLjN6bS00MS42LTgyLjNjMjMuMyAwIDIzLjMgMzIuNSAwIDMyLjVsLTI5LjEgMCAwLTMyLjUgMjkuMSAwem0tOTUuNi0xLjZjMjEuMiAwIDIxLjEgMzguOSAwIDM4LjlsLTMyLjMgMCAwLTM4LjggMzIuMyAwem0xOTIuNi0xOC4yYy02OC41IDAtNzEgMTA1LjggMCAxMDUuOCA2OS41IDAgNjkuNC0xMDUuOCAwLTEwNS44em0wIDE3LjRjNDQuMSAwIDQ0LjggNzAuOSAwIDcwLjlzLTQ0LjQtNzAuOSAwLTcwLjl6Il19LF9sdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtcGxheSIsaWNvbjpbNDQ4LDUxMixbXSwiZjNhYiIsIk0yOTMuNiAyMzQuM0w3Mi45IDEzIDM1My43IDE3NC4yIDI5My42IDIzNC4zek0xNS4zIDBDMi4zIDYuOC02LjQgMTkuMi02LjQgMzUuM2wwIDQ0MS4zYzAgMTYuMSA4LjcgMjguNSAyMS43IDM1LjNMMjcxLjkgMjU1LjkgMTUuMyAwek00NDAuNSAyMjUuNmwtNTguOS0zNC4xLTY1LjcgNjQuNSA2NS43IDY0LjUgNjAuMS0zNC4xYzE4LTE0LjMgMTgtNDYuNS0xLjItNjAuOHpNNzIuOSA0OTlMMzUzLjcgMzM3LjggMjkzLjYgMjc3LjcgNzIuOSA0OTl6Il19LExsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJrb3J2dWUiLGljb246WzQ0OCw1MTIsW10sImY0MmYiLCJNMzg3LjYgMzRsLTMyNyAwQzI3LjkgMzQgMS4xIDYwLjggMS4xIDkzLjVsMCAzMjcuMWMwIDMyLjYgMjYuOCA1OS40IDU5LjUgNTkuNGwzMjcuMSAwYzMzIDAgNTkuNS0yNi44IDU5LjUtNTkuNWwwLTMyN0M0NDcuMSA2MC44IDQyMC4zIDM0IDM4Ny42IDM0ek04OC4yIDEyMC44bDk2IDAgMCAxMTYgNjEuOC0xMTYgMTEwLjkgMC04MS4yIDEzMi0xODcuNSAwIDAtMTMyek0yNTAgMzkyLjlsLTY1LjctMTEzLjYgMCAxMTMuNi05NiAwIDAtMTMwLjggMTkxLjUgMCA4OC42IDEzMC44LTExOC40IDB6Il19LEFsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3M2MiLGljb246WzY0MCw1MTIsW10sImU3ZGUiLCJNMTA1LjIgMzA1LjNsMzAuOS0xMDQuN2M3LjktMjYuNyA4LjYtNDAuNiAuMi02OC44bC0xMC4xLTMzLjkgNDQuMSAwIDYxIDIwNy40IDQ1LjctMTU1LjVjMTMuMy00NS4zIDIxLjEtNTEuOSA1OS40LTUxLjlsMTMyLjggMGMtMjQuMiA0Mi45LTQ5LjMgODUuMi03My45IDEyNy45IDIuNiAuOCA1LjIgMS44IDcuNyAyLjggMTcuMyA3LjEgMzIuMiAxOS40IDQyIDM1LjUgMTEuMiAxOC41IDE2LjggNDAuMiAxNi44IDY1LjIgMCAzMC44LTguMiA1Ni44LTI0LjYgNzcuOC0xNC41IDE4LjYtMzUgMjkuNS01OC4yIDMxLjIgMCAuMy01LjIgLjQtNS44IC40LTM5LjctLjEtNzAuOC0zMi4xLTgzLjEtNjguN2w0Mi45IDBjMy41IDUuMyA2LjggMTAuNyAxMS4yIDE1LjUgOC4xIDcuMyAxOC41IDEwLjkgMjkuMyAxMS4xIDEzLjEgMCAyMy4zLTkuMSAyOS45LTE5LjggOC4xLTEzLjIgMTIuMi0yOSAxMi4yLTQ3LjUgMC0xMy4xLTEuOC0yNC4zLTUuMy0zMy42LS45LTIuMy0xLjktNC41LTMtNi42LTEuNC0yLjYtMi45LTUuMS00LjctNy40LTEwLjEtMTMuMi0yOS4zLTE5LjctNDcuNS0xOS44bC0yOC4yIDAgNzAuMy0xMjItMzUuNiAwYy00My4xIDAtMzUuOS01LjQtNTAuNCA0My4zbC03NS43IDI1NS4zLTQuMiAwLTYzLjEtMjExLjEtNjMuMSAyMTEuMS00LjIgMC0xMDEtMzQwLjcgNDQuMiAwIDYxIDIwNy40ek00NjcgMzM1LjdjLjMgLjYgMTEuMyAyMC4zIDE4LjMgMzAuMyA3LjEgMTAuMSAxOS44IDIwLjkgMjQuOCAyNC42czE5LjEgMTIuNSAzNC4zIDEzLjljMTUuMiAxLjUgMjMuMyAuMiAzOC43LTYuNiAxNS40LTYuOCAyNy45LTIwLjQgMzQuOS0yOC4xIDYuOS03LjYgMTcuOS0yNy4zIDE4LjItMjcuN2wzLjMgMTYuOGMxLjcgOS0xIDIzLjctNC4xIDMwLTQuMyA4LjYtNy42IDEzLjUtMTQgMjAuMy02LjEgNi41LTE2LjcgMTMuNS0yMS4zIDE2LjQtNC42IDIuOS0yMy4xIDE1LjEtNTAuMSAxMC4zcy00NC43LTI1LjktNTMuOS0zOC4yYy05LjgtMTMuMi0xNi43LTI4LjMtMTktMzMuMi0zLjgtOC40LTkuOS0yOC4yLTEwLjEtMjguOHptMTY5LjctMjE4YzMuMyAyMC4zLS4xIDI4LjctOS4xIDQ2bC0xMi43IDI0LjJjLS4zLS42LTEwLTIwLjctMjUuOS0zMS45LTEzLjYtOS42LTIyLjUtMTEuNy0zNi4zLTguOC0xNy44IDMuNy0zOCAyNS00Ni44IDUxLjItMTAuNSAzMS40LTEwLjcgNDYuNi0xMSA2MC42LS42IDIyLjQgMi45IDM1LjYgMi45IDM1LjZzLTE1LjQtMjguNS0xNS4yLTcwLjFjLjEtMjkuNyA0LjgtNTYuNyAxOC41LTgzLjMgMTIuMS0yMy40IDMwLjEtMzcuNCA0Ni4xLTM5LjEgMTYuNS0xLjcgMjkuNiA2LjMgMzkuNyAxNC45IDEwLjYgOSAyMS4zIDI4LjggMjEuMyAyOC44bDI0LjktNDkuOCAzLjYgMjEuOHoiXX0sRGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdyYXYiLGljb246WzUxMiw1MTIsW10sImYyZDYiLCJNMzAyLjYgMjEwLjZjNC41IDQuNSA0LjUgMTIuMyAwIDE2LjhsLTEwIDEwYy00LjUgNC45LTEyLjMgNC45LTE3LjEgMGwtMTAuOC0xMC44Yy00LjUtNC45LTQuNS0xMi4zIDAtMTcuMWwxMC0xMGM0LjUtNC41IDEyLjMtNC41IDE3LjEgMGwxMC44IDExLjF6bS0zMS4yLTIwLjNhNy43IDcuNyAwIDEgMCAtMTAuNi0xMSA3LjcgNy43IDAgMSAwIDEwLjYgMTF6bS0yNi44IDUuNWE3LjUgNy41IDAgMSAwIDEwLjcgMTAuNSA3LjUgNy41IDAgMSAwIC0xMC43LTEwLjV6TTMxOS40IDE4MmMtMjAuNS0xNC45LTM0LjktNDQuNi0xMi4zLTcwLjMgMjIuMy0yNS43IDQyLTE3LjggNjEuNyAuOCAxMi4zIDExLjcgMzAuMiAyNS43IDE3LjggNDkuOC0xMi45IDI0LjMtNDYuNiAzNC4zLTY3LjIgMTkuN3ptNDkuMi00NS45Yy05LjItMTAuMy0yNC4xIDcuMS0xNiAxNi42IDcuNiA5LjMgMzMuMSAyLjUgMTYtMTYuNnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptNDQzLjcgNDRjMi42LTE2LjYtMjAuOS0xNy4xLTI2LTI2LjUtMTQtMjQuOS0yOC42LTM4LTU2LjMtMzEuNCAxMi04LjMgMjQuMy02LjMgMjQuMy02LjMgLjMtNi42IDAtMTMuNC05LjctMjUuNyA0LTEyLjkgLjMtMjMuMSAuMy0yMy4xIDE2LTguOSAyNy43LTI1LjIgMzAtNDQuNiAzLjctMzItMTkuNC02MS4xLTUxLjQtNjQuOC0yMi44LTIuNi00NS4xIDcuOS01Ni4xIDI2LjUtMjMuOSA0MS40IDEuNCA3My4yIDIzLjEgODQtMTQuOS0xLjQtMzUuNC0xMi4zLTQxLjQtMzUuNC02LjgtMjYuNSAyLjktNTEuNCA5LjItNjMuNCAwIDAtNC41LTYtOC4zLTkuMiAwIDAtMTQuMiAwLTI1LjQgNS41IDEyLjMtMTUuNyAyNi0xNC45IDI2LTE0LjkgMC02LjYtLjYtMTUuNC0zLjctMjIuMy01LjYtMTEuNC0yNC42LTEzLjMtMzIuNyAyLjkgLjEtLjIgLjMtLjQgLjQtLjUtNS4yIDEyLjMtMS4xIDU3LjcgMTcuNCA5MC0yLjYgMS40LTkuNCA2LjMtMTMuNCAxMC4zLTIyLjMgMTAtNTggNjIuMi01OCA2Mi4yLTI5LjEgMTEuMS03OS43IDUyLjUtNzIuOSA4Mi4zIC4zIDMuMSAxLjQgNS43IDMuMSA3LjctMi45IDIuMy01LjcgNS4yLTguNiA4LjYtMTIuMyAxNC4yLTUuNSAzNi4zIDE4LjMgMjUuMiAxNi4zLTcuNCAzMC42LTIwLjkgMzcuNS0zMS40IDAgMC01LjctNS4yLTE2LjgtNC41IDI4LjYtNi44IDM1LjQtOS43IDQ3LjctOS40IDguMyA0IDguMy0zNS40IDguMy0zNS40IDAtMTUuMi0yLjMtMzItMTEuNS00Mi44IDEyLjkgMTIuNiAzMCAzMy44IDI4LjkgNjIuNi0uOCAxOC45LTE1LjcgMjMuNy0xNS43IDIzLjctOS40IDE3LjEtNDQuNiA2OC0zMS40IDEwOS40IDAgMC0xMC0xNS40LTEwLjUtMjIuOC0xOCAyMC00OCA1NC0yNS40IDY2LjYgMjcuNSAxNS4yIDExMi4zLTkxLjUgMTMwLjMtMTQ2LjkgMzUuNy0yMS41IDU3LjItNDguOCA2Ni02Ny4xIDIyLjcgNDQuOSA5OC40IDk3LjUgMTA0LjQgNjAuOXoiXX0sRWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImF3cyIsaWNvbjpbNjQwLDUxMixbXSwiZjM3NSIsIk0xODAuNCAyMDNjLS43IDIyLjYgMTAuNiAzMi43IDEwLjkgMzktLjEgMS4zLS42IDIuNS0xLjMgMy42cy0xLjcgMi0yLjggMi42bC0xMi44IDljLTEuNyAxLjItMy42IDEuOC01LjYgMS45LS40IDAtOC4yIDEuOC0yMC41LTI1LjYtNy41IDkuNC0xNyAxNi45LTI3LjkgMjJzLTIyLjcgNy43LTM0LjcgNy41Yy0xNi4zIC45LTYwLjQtOS4yLTU4LjEtNTYuMi0xLjYtMzguMyAzNC4xLTYyLjEgNzAuOS02MCA3LjEgMCAyMS42IC40IDQ3IDYuM2wwLTE1LjZjMi43LTI2LjUtMTQuNy00Ny00NC44LTQzLjktMi40IDAtMTkuNC0uNS00NS44IDEwLjEtNy40IDMuNC04LjMgMi44LTEwLjggMi44LTcuNCAwLTQuNC0yMS41LTIuOS0yNC4yIDUuMi02LjQgMzUuOS0xOC40IDY1LjktMTguMiAyMC4xLTEuOCA0MC4xIDQuNCA1NS43IDE3LjMgNi4zIDcuMSAxMS4yIDE1LjQgMTQuMiAyNC40czQuMiAxOC41IDMuNSAyOGwwIDY5LjN6TTk0IDIzNS40YzMyLjQtLjUgNDYuMi0yMCA0OS4zLTMwLjUgMi41LTEwLjEgMi4xLTE2LjQgMi4xLTI3LjQtOS43LTIuMy0yMy42LTQuOS0zOS42LTQuOS0xNS4yLTEuMS00Mi44IDUuNi00MS43IDMyLjMtMS4yIDE2LjggMTEuMSAzMS40IDMwIDMwLjV6bTE3MC45IDIzLjFjLTcuOSAuNy0xMS41LTQuOS0xMi43LTEwLjRMMjAyLjQgODMuNGMtMS0yLjgtMS42LTUuNi0xLjktOC42LS4yLTEuMiAuMS0yLjQgLjgtMy40czEuOC0xLjYgMy0xLjhjLjIgMC0yLjEgMCAyMi4yIDAgOC44LS45IDExLjYgNiAxMi42IDEwLjRMMjc0LjkgMjIwLjggMzA4LjEgODBjLjUtMy4yIDIuOS0xMS4xIDEyLjgtMTAuMmwxNy4yIDBjMi4yLS4yIDExLjEtLjUgMTIuNyAxMC40TDM4NC4xIDIyMi43IDQyMSA4MC4xYy41LTIuMiAyLjctMTEuNCAxMi43LTEwLjRsMTkuNyAwYy45LS4xIDYuMi0uOCA1LjMgOC42LS40IDEuOCAzLjQtMTAuNy01Mi44IDE2OS45LTEuMSA1LjUtNC44IDExLjEtMTIuNyAxMC40bC0xOC43IDBjLTEwLjkgMS4yLTEyLjUtOS43LTEyLjctMTAuN2wtMzMuMi0xMzcuMS0zMi44IDEzN2MtLjIgMS4xLTEuNyAxMS45LTEyLjcgMTAuN2wtMTguMyAwIDAgMHptMjczLjUgNS42Yy01LjkgMC0zMy45LS4zLTU3LjQtMTIuMy0yLjMtMS00LjMtMi42LTUuNy00LjhzLTIuMS00LjYtMi4xLTcuMWwwLTEwLjdjMC04LjUgNi4yLTYuOSA4LjgtNS45IDEwIDQuMSAxNi41IDcuMSAyOC44IDkuNiAzNi43IDcuNSA1Mi44LTIuMyA1Ni43LTQuNSAxMy4yLTcuOCAxNC4yLTI1LjcgNS4zLTM0LjktMTAuNS04LjgtMTUuNS05LjEtNTMuMS0yMS00LjYtMS4zLTQzLjctMTMuNi00My44LTUyLjQtLjYtMjguMiAyNS01Ni4yIDY5LjUtNTYgMTIuNyAwIDQ2LjQgNC4xIDU1LjYgMTUuNiAxLjQgMi4xIDIgNC42IDEuOSA3bDAgMTAuMWMwIDQuNC0xLjYgNi43LTQuOSA2LjctNy43LS45LTIxLjQtMTEuMi00OS4yLTEwLjgtNi45LS40LTM5LjkgLjktMzguNCAyNS0uNCAxOSAyNi42IDI2LjEgMjkuNyAyNi45IDM2LjUgMTEgNDguNiAxMi44IDYzLjEgMjkuNiAxNy4xIDIyLjIgNy45IDQ4LjMgNC4zIDU1LjQtMTkuMSAzNy41LTY4LjQgMzQuNC02OS4zIDM0LjR6bTQwLjIgMTA0LjljLTcwIDUxLjctMTcxLjcgNzkuMi0yNTguNSA3OS4yLTExNy4xIC44LTIzMC4zLTQyLjMtMzE3LjMtMTIwLjctNi41LTUuOS0uOC0xNCA3LjItOS41IDk2LjUgNTUuMiAyMDUuNyA4NC4yIDMxNi45IDg0LjEgODMtLjQgMTY1LjEtMTcuMyAyNDEuNi00OS41IDExLjgtNSAyMS44IDcuOCAxMC4xIDE2LjR6bTI5LjItMzMuM2MtOS0xMS41LTU5LjMtNS40LTgxLjgtMi43LTYuOCAuOC03LjktNS4xLTEuOC05LjUgNDAuMS0yOC4yIDEwNS45LTIwLjEgMTEzLjQtMTAuNiA3LjUgOS41LTIuMSA3NS40LTM5LjYgMTA2LjktNS44IDQuOS0xMS4zIDIuMy04LjctNC4xIDguNC0yMS4zIDI3LjQtNjguNSAxOC40LTgweiJdfSwkbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ2xpZGUtZyIsaWNvbjpbNDQ4LDUxMixbXSwiZjJhNiIsIk00MDcuMSAyMTEuMmMtMy41LTEuNC0xMS42LTMuOC0xNS40LTMuOC0zNy4xIDAtNjIuMiAxNi44LTkzLjUgMzQuNWwtLjktLjljNy00Ny4zIDIzLjUtOTEuOSAyMy41LTE0MC40IDAtNzEuNS0zOC4yLTEwMC42LTEwOC40LTEwMC42LTExNS4xIDAtMTczLjQgMTEzLjctMTczLjQgMTk4LjQgMCA4Ny45IDUxLjMgMTM2LjYgMTM4LjYgMTM2LjYgMTIgMCAxMS0xIDExIDMuOC0xNi45IDEyOC45LTkwLjggMTMzLjEtOTAuOCA5NC42IDAtMzkuMiA0NS01OC42IDQ1LjUtNjEtLjMtMTIuMi00Ny0yNy42LTU4LjktMjcuNi0zMy45IC4xLTUyLjQgNTEuMi01Mi40IDc5LjMgMCA1MS45IDMyLjggODcuOSA4NS41IDg3LjkgNzcuNCAwIDEzNC03Ny44IDE1MS40LTE0NS40IDE1LjEtNjAuNSAxMS4yLTYzLjMgMTkuNy02Ny42IDMyLjItMTYuMiA1Ny41LTI3IDkzLjgtMjcgMTcuOCAwIDMwLjUgMy43IDU4LjkgOC40IDIuOSAwIDYuNy0yLjkgNi43LTUuOCAwLTgtMzMuNC02MC41LTQwLjktNjMuNHpNMjMxLjggMTI2LjhjLTkuMyA0NC43LTE4LjYgODkuNi0yNy44IDEzNC4zLTIuMyAxMC4yLTEzLjMgNy44LTIyIDcuOC0zOC4zIDAtNDktNDEuOC00OS03My4xIDAtNDcgMTgtMTA5LjMgNjEuOC0xMzMuNCA3LTQuMSAxNC44LTYuNyAyMi42LTYuNyAxOC42IDAgMjAgMTMuMyAyMCAyOC43LS4xIDE0LjMtMi43IDI4LjUtNS42IDQyLjR6Il19LElsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJqc2ZpZGRsZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFjYyIsIk01MTEuMSAyMzcuNWMtNC43LTIuNi01LjctNS43LTYuNC0xMC44LTIuNC0xNi41LTMuNS0zMy42LTkuMS00OS4xLTM1LjktMTAwLTE1NC0xNDMuNC0yNDYuOC05MS42LTI3LjQgMTUuMi00OSAzNi40LTY1LjUgNjMuOS0zLjItMS41LTUuNS0yLjctNy44LTMuNy0zMC4xLTEyLjQtNTktMTAuMS04NS4zIDkuMi0yNS41IDE4LjctMzYuNCA0NC41LTMyLjcgNzYuNCAuNCAzLTIgNy42LTQuNSA5LjUtMzkuNyAzMC01NiA3OC4xLTQxLjkgMTI0LjYgMTMuOCA0NS42IDU3LjUgNzkuOCAxMDUuNiA4MS40IDMwLjMgMSA2MC42IC41IDkxIC41IDg0IDAgMTY4LjEgLjUgMjUyLjEtLjUgNTIuNy0uNiA5Ni4xLTM2LjkgMTA4LjItODcuMyAxMS41LTQ4LjEtMTEuMS05Ny4zLTU2LjgtMTIyLjZ6bTIxLjEgMTU2LjljLTE4LjIgMjIuNC00Mi4zIDM1LjMtNzEuMyAzNS43LTU2LjkgLjgtMTEzLjggLjItMTcwLjcgLjIgMCAuNy0xNjMgLjItMTYzLjcgLjItNDMuOS0uMy03Ni43LTE5LjgtOTUuMi02MC0xOC45LTQxLjItNC05MC44IDM0LjItMTE2LjEgOS4yLTYuMSAxMi41LTExLjYgMTAuMS0yMy4xLTUuNS0yNi40IDQuNS00OCAyNi40LTYzIDIzLTE1LjcgNDcuNC0xNi4xIDcyLTMuMSAxMC4zIDUuNCAxNC42IDExLjYgMjIuMi0yLjUgMTQuMi0yNi40IDM0LjYtNDYuNyA2MC43LTYxLjMgOTcuNS01NC40IDIyOC40IDcuNiAyMzAuMiAxMzIuNyAuMSA4LjIgMi40IDEyLjQgOS44IDE1LjkgNTcuNiAyNi44IDc0LjUgOTYuMSAzNS4xIDE0NC41em0tODcuOC04MC41Yy01LjggMzEuMi0zNC42IDU1LjEtNjYuNyA1NS4xLTE3IDAtMzIuMS02LjUtNDQuMS0xNy43LTI3LjctMjUuNy03MS4xLTc1LTk1LjktOTMuNC0yMC4xLTE0LjktNDItMTIuMy02MC4zIDMuOC01MCA0NC4xIDE1LjkgMTIxLjggNjcuMSA3Ny4yIDQuNS00IDcuOC05LjUgMTIuNy0xMi44IDguMi01LjUgMjAuOC0uOSAxMy4yIDEwLjYtMTcuNCAyNi4zLTQ5LjMgMzguMi03OC45IDI5LjMtMjguOS04LjctNDguOC0zNi00OC42LTcwLjIgMS4yLTIyLjUgMTIuNC00My4xIDM1LjQtNTYgMjIuNi0xMi42IDQ2LjQtMTMuMSA2NyAyLjUgNTAuOCAzOC41IDc1LjYgODEuNyAxMDcuMyAxMDEuMiAyNC42IDE1LjEgNTQuMyA3LjQgNjguOC0xNy41IDI4LjgtNDkuMi0zNC42LTEwNS03OC45LTYzLjUtNCAzLjctNi45IDguOS0xMS40IDExLjctMTEgNi44LTE3LjMtNC4xLTEyLjgtMTAuNCAyMC43LTI4LjYgNTAuNS00MC40IDgzLjMtMjguMiAzMS40IDExLjcgNDkuMSA0NC40IDQyLjggNzguMnoiXX0sUGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtleWJhc2UiLGljb246WzQ0OCw1MTIsW10sImY0ZjUiLCJNMjg2LjIgNDE5YTE4IDE4IDAgMSAwIDAgMzYgMTggMTggMCAxIDAgMC0zNnpNMzk4LjEgMjcxLjRjLTkuNS0xNC42LTM5LjQtNTIuNC04Ny4zLTczLjctNi4xLTIuNy0xMi4yLTUuMS0xOC40LTcuMyA0LjEtOS45IDYtMjAuNiA1LjgtMzEuNHMtMi43LTIxLjMtNy4yLTMxLjEtMTAuOS0xOC41LTE4LjktMjUuNy0xNy40LTEyLjYtMjcuNi0xNmMtMTIuNC00LjEtMjMuMy02LTMyLjQtNS44LS42LTItMS45LTExIDkuNC0zNWwtMjIuOS0xMy41LTUuNSA3LjZjLTguNyAxMi4xLTE2LjkgMjMuNi0yNC4zIDM0LjktMi43LS42LTUuNS0xLjEtOC4zLTEuMi00MS41LTIuNC0zOS0yLjMtNDEuMS0yLjMtNTAuNiAwLTUwLjggNTIuMS01MC44IDQ1LjlsLTIuNCAzNi43Yy0xLjYgMjcgMTkuOCA1MC4yIDQ3LjYgNTEuOGw4LjkgLjVDMTA2IDIxNS41IDkwLjQgMjI3LjUgNzYuNiAyNDEuNCAxNCAzMDQuNyAxNCAzNzQgMTQgNDI5LjhsMCAzMy42IDIzLjMtMjkuOGMzLjEgMTMuMSA4IDI1LjggMTQuNiAzNy42IDUuOCAxMC4xIDE0LjkgOS40IDE5LjYgNy4zIDQuMi0xLjkgMTAtNi45IDMuOC0yMC4xLTgtMTYuOC0xMy4zLTM0LjctMTUuOC01My4xbDQ2LjgtNTkuOC0yNC43IDc0LjFjNTguMi00Mi40IDE1Ny40LTYxLjggMjM2LjItMzguNiAzNC4yIDEwLjEgNjcuNCAuNyA4NC43LTIzLjggLjctMSAxLjItMi4yIDEuOC0zLjIgMS44IDkuNCAyLjcgMTguOSAyLjggMjguNCAwIDIzLjMtMy43IDUyLjktMTQuOSA4MS42LTIuNSA2LjUgMS44IDE0LjUgOC42IDE1LjcgNy40IDEuNiAxNS4zLTMuMSAxOC40LTExLjEgOS42LTI1LjUgMTQuNi01NC42IDE0LjYtODYuMiAwLTM4LjYtMTMtNzcuNS0zNS45LTExMC45ek0xNDIuNCAxMjguNmwtMTUuNy0uOS0xLjQgMjEuOCAxMy4xIC44Yy0uNiA2LjUtLjUgMTMuMSAuMyAxOS42bC0yMi40LTEuM2MtMS42LS4xLTMuMi0uNS00LjctMS4xcy0yLjgtMS42LTMuOS0yLjgtMS45LTIuNi0yLjUtNC4xLS44LTMuMS0uNy00LjdMMTA3IDExOWMxLTEyLjIgMTMuOS0xMS4zIDEzLjMtMTEuM2wyOS4xIDEuN2MtMi44IDYuMi01LjEgMTIuNi03IDE5LjJ6TTI5MC44IDMwMC44Yy0yLjEgMS42LTQuOCAyLjQtNy41IDIuMnMtNS4xLTEuNS02LjktMy41bC05LjctMTEuNS0zNC40IDI3Yy0xLjYgMS4zLTMuNyAxLjktNS44IDEuN3MtNC0xLjItNS4zLTIuOGwtMTUuOC0xOC42Yy0xLjItMS42LTEuNy0zLjUtMS41LTUuNHMxLjMtMy43IDIuOC00LjlsMzQuNi0yNy4yLTE0LjEtMTYuNy0xNy4xIDEzLjVjLTEuNiAxLjItMy41IDEuOC01LjUgMS42cy0zLjgtMS4xLTUuMS0yLjZjMCAwLTMuNy00LjQtMy44LTQuNS0xLjItMS42LTEuNy0zLjUtMS41LTUuNXMxLjMtMy43IDIuOC00LjlMMjE0IDIyNS4ycy0xOC41LTIyLTE4LjYtMjIuMWMtLjgtMS0xLjMtMi4xLTEuNy0zLjNzLS40LTIuNS0uMy0zLjcgLjYtMi40IDEuMi0zLjUgMS41LTIgMi41LTIuOGMyLjEtMS43IDQuOC0yLjQgNy40LTIuMnM1LjEgMS41IDYuOSAzLjZsODEuMSA5Ni4zYy44IDEgMS4zIDIuMSAxLjcgMy4zcy40IDIuNSAuMyAzLjctLjYgMi41LTEuMiAzLjUtMS41IDIuMS0yLjUgMi44ek0xODcuNCA0MTlhMTggMTggMCAxIDAgMCAzNiAxOCAxOCAwIDEgMCAwLTM2eiJdfSxObHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibHVtb24tZHJvcCIsaWNvbjpbNTc2LDUxMixbXSwiZTdlMyIsIk00ODAgMzJjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2TDk2IDQ0OGMtNTMgMC05Ni00My05Ni05NkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDM4NCAwek0zMDIuNCAxMTQuN2MtOS44LTE2LjQtMjAuNS0xNi40LTI5LjYgMGwtNjguOSAxMTRjLTEwLjcgMTUuNi0xNi40IDMyLjgtMTYuNCA1Mi41IDAgNTAuOSA0NC4zIDk0LjMgMTAwLjEgOTQuMyA1NSAwIDEwMC45LTQzLjUgMTAwLjktOTQuMyAwLTE5LjctNi42LTM3LjgtMTcuMi01Mi41bC02OC45LTExNHoiXX0sRmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcmdlam8iLGljb246WzMyMCw1MTIsW10sImU4NjAiLCJNMjYxLjUgMS4yYzM0IDAgNjEuNiAyNy42IDYxLjYgNjEuNnMtMjcuNiA2MS42LTYxLjYgNjEuNmMtMjMgMC00My4xLTEyLjctNTMuNy0zMS40bC0yOC41IDBjLTI0IDAtNDcgOS41LTY0IDI2LjVzLTI2LjUgNDAtMjYuNSA2NGwwIDQzLjVjMjYtMTkuNSA1Ny43LTMwLjIgOTAuNi0zMC4ybDI4LjUgMGMxMC42LTE4LjcgMzAuNi0zMS40IDUzLjctMzEuNCAzNCAwIDYxLjYgMjcuNiA2MS42IDYxLjZzLTI3LjYgNjEuNi02MS42IDYxLjZjLTIzIDAtNDMuMS0xMi43LTUzLjctMzEuNGwtMjguNSAwYy0yNCAwLTQ3IDkuNS02NCAyNi41cy0yNi41IDQwLTI2LjUgNjRsMCA0Ny44YzE4LjcgMTAuNiAzMS40IDMwLjYgMzEuNCA1My42IDAgMzQtMjcuNiA2MS42LTYxLjYgNjEuNlMtMyA0ODMuMi0zIDQ0OS4yYzAtMjMgMTIuNy00My4xIDMxLjQtNTMuNmwwLTIxMmMwLTQwIDE1LjktNzguNCA0NC4yLTEwNi43czY2LjctNDQuMiAxMDYuNy00NC4ybDI4LjUgMGMxMC42LTE4LjcgMzAuNi0zMS40IDUzLjctMzEuNHpNNTguNiA0MjMuOWMtMTQgMC0yNS4zIDExLjMtMjUuMyAyNS4zczExLjMgMjUuNCAyNS4zIDI1LjQgMjUuNC0xMS40IDI1LjQtMjUuNC0xMS40LTI1LjMtMjUuNC0yNS4zek0yNjEuNSAyMDEuN2EyNS40IDI1LjQgMCAxIDAgMCA1MC43IDI1LjQgMjUuNCAwIDEgMCAwLTUwLjd6bTAtMTY0LjJhMjUuNCAyNS40IDAgMSAwIDAgNTAuNyAyNS40IDI1LjQgMCAxIDAgMC01MC43eiJdfSxPbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicG9zdGdyZXNxbCIsaWNvbjpbNTEyLDUxMixbXSwiZTg1OCIsIk0yMTkuOCAxNzEuM2MzLjkgLjUgMTMuMSAyLjcgMTIuMyA4LjUtLjggNS45LTkuMiA5LjEtMTQuMiA4LjQtNC43LS43LTEzLjItNi4xLTEyLjMtMTIuMWwuMy0yLjFjNC4yIDAgOC4zLTMuNSAxMy45LTIuN3ptMTY4LjEtMy40YzEwLjggMi42LTEuMSAxMy41LTYuOCAxNC4zLTQuMyAuNi0xMi4xLTIuMi0xMi44LTcuNC0xLTcuNCAxNS43LTcuOSAxOS43LTYuOXptLTIyLTE0MC44YzM1LjctLjMgODEuMyA5LjQgMTE0LjMgNTEuNyA3LjIgOS4yIDEwIDI0IDkuNyA0MC45LS44IDQ5LjYtMjYgMTI5LjQtNzAuNyAxOTcuNCA0LjUgMi45IDE3LjYgNy40IDUxLjEgLjUgNS42LTEuMiAxMi43LTIuMiAxNy42IDEuNiAxOC4yIDEzLjktMTkuNiAzNS4xLTI4LjQgMzkuMi0xMy4yIDYuMi0zNC44IDkuNS01MS4yIDguNy0yLjEtLjItNC4zLS4yLTYuMy0uNi01LjEtMS4xLTcuNC0xLTguMy0uNy0xLjEgLjMtMS40IDIuOS0xLjYgMy44LTIuOCAyNC45LTcuNyA2NC43LTEwLjcgODItMi44IDE2LjMtNy43IDI5LjMtMTcuMiAzOS4yLTkuNSA5LjktMjIuOCAxNS43LTQwLjYgMTkuNS0yMi4zIDQuOC0zNy45LS4xLTQ4LjctOS4xLTEwLjMtOC43LTE1LjItMjAuNC0xOC0yNy40LTEuOC00LjUtMy0xMS41LTQtMTkuOC0yLjMtMTkuOC0zLjMtNTAuNC0zLTgzLjMtMjQuNiAyMi4xLTU1IDE3LjItNjguMiAxMy45LTEwLjUtMi42LTMzLTE2LjEtMTcuNS0yOC43IDExLjktOS43IDMwLjMtNS41IDQyLjItMTUgMi40LTEuOSAxMS40LTEwLjYgMTEuNC0xMy41LTEwLS4zLTE5LjYtMi45LTI4LjEtNy41LTEzLjUgMTQuNS0yNi40IDI5LjUtMzkuMyA0NC42LTguMyA5LjktMTcuNCAxNS44LTI3LjQgMTYuMi05LjkgLjQtMTguNy00LjYtMjYuMS0xMS44LTcuMy03LjEtMTQuMS0xNy4yLTIwLjQtMjktMTktMzUuNS0zMy4yLTg2LjEtNDIuMy0xMjYuNC02LTI2LjctOS42LTQ5LjEtMTAuMS01OS0yLjItNDQuMyA4LTc0LjEgMjYtOTMuMiAxNy45LTE5IDQyLjQtMjYgNjYuMS0yNy40IDM1LjYtMiA3MSA4LjUgODYuNiAxMy44bDUgMS44YzE1LjktMTAuOCAzNi4xLTE3LjQgNjEuNy0xNyAxMy4yIC4yIDI1LjUgMi4yIDM2LjcgNC4yIDE4LjYtNy4xIDM5LjgtOS41IDU5LjQtOS43em0tOTYgMjAuNWMtMjQuNy0uNC00Mi45IDYuNS01Ni42IDE2LjgtLjggLjYtMS44IDEtMi44IDEuMi0xNC40IDExLjgtMjMuOSAyOC0zMC4zIDQ0LjgtNy4yIDE5LjEtMTAgMzguNS0xMS4xIDUxLjUgNy42LTQuMyAxNy45LTguNyAyOC43LTExLjIgMTAuNS0yLjQgMjIuNC0zLjIgMzIuNyAuOCAxMC45IDQuMiAxOSAxMy4zIDIyLjIgMjguMSA3LjUgMzQuNyA2LjcgNTguMiAyLjcgNzUuOS00LjggMjEtMTYuOCAzOS41LTIxLjkgNjAuNCAzLjUtLjkgNy4xLS42IDkuOCAuMWw3LjIgMi45YzcuNyA0LjQgMTIuOCAxMyAxNCAyMS43IDIgNiAuMSAxNC4zIDAgMjAuNiA2LjcgMTYuMyA3LjIgMzYuMSA2LjcgNTMuMy0uNyAyNS0xIDQwLjIgMy4yIDUxLjcgMi45IDcuOSA0LjcgMTYuNCAxMC40IDIyLjggMi42IDMgNi4xIDUuNSAxMC45IDYuOCAxOC41IDUuMSA0NC00LjcgNTYuNi0xOC4yIDcuNy04LjIgMTIuMy0xOS4zIDEzLjQtMzMuOSAxLjEtMTMuNiA0LjItMjcuNiA2LjMtNDEuMWwyLjktOC44YzEuNy0xNC44IDMuNC0yOS42IDUtNDQuNC0uNC05LjEgLjktMTYuMSAzLjktMjEuNSAzLjEtNS43IDcuNi04LjkgMTEuOC0xMC44IDEuOC0uOCAzLjktMS4yIDUuNi0yLTEuNi0yLjQtMy42LTQuNi01LjMtNi44LTguMi0xMC40LTEzLjMtMjIuMy0xOS43LTMzLjgtOC41LTE1LjItMjMuOC00Mi4yLTMwLjEtNjcuNS00LjEtMTYuNC00LjktMzQuNSA2LTQ3IDkuOC0xMS4yIDI2LjktMTUuNSA1MS45LTEzLTMuNC0xMC0xMS40LTI3LjUtMjQuOC00NC43LTE4LTIzLTQ1LjctNDUuOS04NS43LTUzLjEtNy4zLS45LTE1LjItMS41LTIzLjYtMS43em0tMzIuMiAyODJjLTggLjctMTUuNSAxOC4yLTIxLjcgMjMuMS02LjIgNC45LTE0LjUgNy42LTMwIDEwLjctNC41IC45LTcuNyAxLjktOS43IDIuOCAyMi4zIDE1LjggNTguMyAzLjIgNzIuNi0xNi44IDEuNy0yLjQgMi4xLTYgLjUtMTAuMi0xLjctNC41LTYuNC0xMC4xLTExLjktOS42ek0xMTcuNiA0OS4yYy0yMS42IDEuMi00MiA3LjUtNTYuNCAyMi44LTE0LjQgMTUuMi0yNC4yIDQwLjYtMjIuMSA4Mi41IC40IDguNSAzLjggMzAgOS44IDU2LjYgOC45IDM5LjggMjMuNyA5MC4zIDQwLjYgMTIyLjIgNiAxMS4xIDE3LjQgMzMgMzIuOCAzMi4zIDQuNC0uMiAxMC4xLTIuOCAxNy0xMSAxMi42LTE0LjggMjUuMi0yOS41IDM4LjUtNDMuNy0xNy45LTE1LjQtMjguNS00MC4zLTI0LjgtNjcuMiAzLjQtMjQuMyAuNS00OC4yIDEuMi03Mi41IC40LTExLjkgMi4zLTM4LjcgMTIuNi02NS44IDUuOS0xNS41IDE0LjUtMzEuMyAyNy40LTQ0LjItMTYuNC01LjQtNDcuMS0xMy41LTc2LjYtMTEuOXpNNDA1LjEgMzI4LjljLTMuOCAxLjEtNi43IDIuMi04LjcgNS44LTEuMyAyLjQtMi41IDYuNy0yLjIgMTQuMiA0LjggMy45IDE0LjEgMy4zIDE5LjggMy4yIDEzLjktLjIgMjkuOS0zLjEgMzkuMy03LjUgNy45LTMuNyAxNC43LTguMyAxOS0xMi4yLTM4LjIgNy43LTU1LjQgMi4xLTYzLjItNC44LTEuMyAuNC0yLjkgLjktMy45IDEuMnpNMjI1LjMgMTY0LjljLTE1LjQtNS45LTM1LjQgMS44LTQ4LjkgOS40LTMuNiAyLTYuNSA0LTcuOSA1LjIgLjQgOC44IDIuOCAzNi4xLTEuNCA2Ni4zLTUuMSAzNi42IDIxLjcgNjYuNiA1Mi41IDY2LjcgNS4xLTIwLjggMTctMzkuMiAyMS44LTYwLjEgMy41LTE1LjMgNC41LTM2LjYtMi43LTY5LjctMi4zLTEwLjUtNy40LTE1LjQtMTMuNC0xNy43ek0zNzAuMSA0Mi4yYy0xNS4yLS4yLTI4LjggMS43LTM5LjIgMy44IDI2IDExLjggNDUuNiAyOS43IDU5LjYgNDcuNiAxNy40IDIyLjIgMjYuMyA0NC4xIDI5IDU1IC43IDIuNyAxLjMgNS43IC41IDguNCAuNiAxOC45LTQgMzEuMy00LjYgNDkuMi0uNCAxMi45IDIuOSAyOC4xIDMuNyA0NC43IC44IDE1LjctMSAzMi41LTExLjIgNDkuNSAuOCAxIDEuNiAyLjEgMi40IDMuMSAyNi44LTQyLjIgNDYtODguNiA1Ni4zLTEyOC41IDUuNS0yMS40IDguNC00MC43IDguNy01Ni4xIC4yLTE1LjItMi0yNS40LTUuOC0zMC40LTI4LjMtMzYuMS02Ni44LTQ1LjgtOTkuMy00Ni4yem0zNS42IDExOS41Yy0yNS4zLTMuMi0zNy4zIDEuNS00Mi44IDcuNy02IDYuOC02LjggMTguNS0yLjkgMzQuMSA1LjcgMjIuNiAyMC4xIDQ4LjYgMjguNyA2NCAzLjYgNi40IDYuNCAxMy4xIDEwIDE5LjQgNS41LTExLjcgNi42LTIzLjUgNi0zNS41LS43LTE1LTQuMi0zMC4zLTMuNy00NS44bC40LTcuNGMxLjItMTQuMyA0LjEtMjQuNiA0LjItMzYuNXoiXX0sUmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlZWJseSIsaWNvbjpbNTEyLDUxMixbXSwiZjVjYyIsIk00MjUuMSA2NS44Yy0zOS45IDAtNzMuMyAyNS43LTgzLjcgNjQuMy0xOC4yLTU4LjEtNjUuNS02NC4zLTg1LTY0LjMtMTkuOCAwLTY2LjggNi4zLTg1LjMgNjQuMy0xMC40LTM4LjYtNDMuNC02NC4zLTgzLjctNjQuMy00OSAwLTg3LjUgMzMuOS04Ny41IDc3LjIgMCAyOSA0LjIgMzMuMyA3Ny4yIDIzMy41IDIyLjQgNjAuNiA2Ny44IDY5LjQgOTIuNyA2OS40IDM5LjIgMCA3MC0xOS41IDg1LjktNTQgMTUuOSAzNC44IDQ2LjcgNTQuMyA4NS45IDU0LjMgMjUgMCA3MC40LTkuMSA5Mi43LTY5LjcgNzYuNi0yMDguNiA3Ny41LTIwNS42IDc3LjUtMjI3LjIgLjYtNDguMy0zNi04My41LTg2LjktODMuNXptMjYuMyAxMTQuOEwzODUuOSAzNTcuMWMtNy45IDIxLjUtMjEuMiAzNy4yLTQ2LjIgMzcuMi0yMy40IDAtMzcuNC0xMi40LTQ0LTMzLjlsLTM5LjMtMTE3LjQtMSAwLTM5LjMgMTE3LjRjLTcgMjEuNS0yMC45IDMzLjYtNDQgMzMuNi0yNSAwLTM4LjMtMTUuNy00Ni4yLTM3LjJMNjAuOSAxODEuNmMtNS40LTE0LjgtNy45LTIzLjktNy45LTM0LjUgMC0xNi4zIDE1LjgtMjkuNCAzOC4zLTI5LjQgMTguNyAwIDMyIDExLjggMzYuMSAyOS4xbDQ0IDEzOS44IDEgMCA0NC43LTEzNi44YzYtMTkuNyAxNi41LTMyLjEgMzktMzIuMXMzMi45IDEyLjEgMzkgMzIuMWw0NC43IDEzNi44IDEgMCA0NC0xMzkuOGM0LjEtMTcuMiAxNy40LTI5LjEgMzYuMS0yOS4xIDIyLjIgMCAzOC4zIDEzLjMgMzguMyAzNS43LS4zIDcuOS00LjEgMTYtNy42IDI3LjJ6Il19LEJsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkb2NrZXIiLGljb246WzY0MCw1MTIsW10sImYzOTUiLCJNMzQ5LjkgMjM2LjNsLTY2LjEgMCAwLTU5LjQgNjYuMSAwIDAgNTkuNHptMC0yMDQuM2wtNjYuMSAwIDAgNjAuNyA2Ni4xIDAgMC02MC43em03OC4yIDE0NC44bC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6TTI3MS44IDEwNC43bC02Ni4xIDAgMCA2MC4xIDY2LjEgMCAwLTYwLjF6bTc4LjEgMGwtNjYuMSAwIDAgNjAuMSA2Ni4xIDAgMC02MC4xem0yNzYuOCAxMDBjLTE0LjQtOS43LTQ3LjYtMTMuMi03My4xLTguNC0zLjMtMjQtMTYuNy00NC45LTQxLjEtNjMuN2wtMTQtOS4zLTkuMyAxNGMtMTguNCAyNy44LTIzLjQgNzMuNi0zLjcgMTAzLjgtOC43IDQuNy0yNS44IDExLjEtNDguNCAxMC43bC00MzQuNyAwYy04LjcgNTAuOCA1LjggMTE2LjggNDQgMTYyLjEgMzcuMSA0My45IDkyLjcgNjYuMiAxNjUuNCA2Ni4yIDE1Ny40IDAgMjczLjktNzIuNSAzMjguNC0yMDQuMiAyMS40IC40IDY3LjYgLjEgOTEuMy00NS4yIDEuNS0yLjUgNi42LTEzLjIgOC41LTE3LjFsLTEzLjMtOC45ek0xMTUuNiAxNzYuOGwtNjYgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNC0uMSAwem03OC4xIDBsLTY2LjEgMCAwIDU5LjQgNjYuMSAwIDAtNTkuNHptNzguMSAwbC02Ni4xIDAgMCA1OS40IDY2LjEgMCAwLTU5LjR6bS03OC4xLTcyLjFsLTY2LjEgMCAwIDYwLjEgNjYuMSAwIDAtNjAuMXoiXX0sSGx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1hZ2VudG8iLGljb246WzQ0OCw1MTIsW10sImYzYzQiLCJNNDQ1LjkgMTI3LjlsMCAyNTYuMS02My40IDM2LjUgMC0yNTUuOC0xNTguNS05MS42LTE1OC42IDkxLjYgLjQgMjU1LjktNjMuMy0zNi42IDAtMjU1LjkgMjIxLjktMTI4LjEgMjIxLjUgMTI3Ljl6TTI1NS44IDQyMC41bC0zMS42IDE4LjQtMzEuOC0xOC4yIDAtMjU2LTYzLjMgMzYuNiAuMSAyNTUuOSA5NC45IDU0LjkgOTUuMS01NC45IDAtMjU2LTYzLjQtMzYuNiAwIDI1NS45eiJdfSxxbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidG9yLWJyb3dzZXIiLGljb246WzUxMiw1MTIsW10sImU4MzgiLCJNMjU2LjUgNDY1LjRsMC0zMWM5OC4zLS4zIDE3Ny45LTgwIDE3Ny45LTE3OC40UzM1NC44IDc3LjkgMjU2LjUgNzcuNmwwLTMxQzM3MiA0Ni44IDQ2NS40IDE0MC41IDQ2NS40IDI1NlMzNzIgNDY1LjIgMjU2LjUgNDY1LjR6bTAtMTA4LjZjNTUuNC0uMyAxMDAuMy00NS4zIDEwMC4zLTEwMC44UzMxMiAxNTUuNSAyNTYuNSAxNTUuMmwwLTMxYzcyLjYgLjMgMTMxLjQgNTkuMiAxMzEuNCAxMzEuOFMzMjkuMSAzODcuNiAyNTYuNSAzODcuOGwwLTMxem0wLTE1NS4xYzI5LjcgLjMgNTMuOCAyNC41IDUzLjggNTQuM3MtMjQgNTQtNTMuOCA1NC4zbDAtMTA4LjZ6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6Il19LGpsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnaXQtYWx0IixpY29uOls0NDgsNTEyLFtdLCJmODQxIiwiTTQzOS42IDIzNi4xTDI0NCA0MC41QzIzOC42IDM1IDIzMS4yIDMyIDIyMy42IDMycy0xNSAzLTIwLjQgOC40bC00MC43IDQwLjYgNTEuNSA1MS41YzI3LjEtOS4xIDUyLjcgMTYuOCA0My40IDQzLjdsNDkuNyA0OS43YzM0LjItMTEuOCA2MS4yIDMxIDM1LjUgNTYuNy0yNi41IDI2LjUtNzAuMi0yLjktNTYtMzcuM2wtNDYuMy00Ni4zIDAgMTIxLjljMjUuMyAxMi41IDIyLjMgNDEuOCA5LjEgNTUtNi40IDYuNC0xNS4yIDEwLjEtMjQuMyAxMC4xcy0xNy44LTMuNi0yNC4zLTEwLjFjLTE3LjYtMTcuNi0xMS4xLTQ2LjkgMTEuMi01NmwwLTEyM2MtMjAuOC04LjUtMjQuNi0zMC43LTE4LjYtNDVMMTQyLjYgMTAxIDguNSAyMzUuMUMzIDI0MC42IDAgMjQ3LjkgMCAyNTUuNXMzIDE1IDguNSAyMC40TDIwNC4xIDQ3MS42YzUuNCA1LjQgMTIuNyA4LjQgMjAuNCA4LjRzMTUtMyAyMC40LTguNEw0MzkuNiAyNzYuOWM1LjQtNS40IDguNC0xMi44IDguNC0yMC40cy0zLTE1LTguNC0yMC40eiJdfSxWbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlyZWZveC1icm93c2VyIixpY29uOls1MTIsNTEyLFtdLCJlMDA3IiwiTTEzMC4yIDEyNy41bDAgMHptMzUxLjQgNDUuNGMtMTAuNi0yNS41LTMyLjEtNTMtNDguOS02MS43IDEzLjcgMjYuOSAyMS43IDUzLjkgMjQuNyA3NCAwIC4xIDAgLjMgLjEgLjQtMjcuNi02OC44LTc0LjQtOTYuNS0xMTIuNi0xNTYuOC0xNS0yMy43LTEwLjktMjUuMi0xMy4xLTI0LjdsLS4xIC4xYy00Ni43IDI2LTc1LjMgNzguNC04Mi42IDEyMi43LTE2LjYgLjktMzIuOSA1LTQ3LjkgMTIuMS0xLjQgLjYtMi41IDEuNy0zLjEgM3MtLjkgMi44LS42IDQuM2MuMiAuOCAuNiAxLjYgMS4xIDIuM3MxLjIgMS4zIDEuOSAxLjcgMS42IC43IDIuNCAuOCAxLjcgMCAyLjUtLjNsLjUtLjJjMTUuNS03LjMgMzIuNC0xMS4yIDQ5LjUtMTEuMyA2Mi44LS42IDk3LjIgNDQgMTA3LjYgNjIuMy0xMy05LjItMzYuNC0xOC4yLTU4LjgtMTQuMyA4Ny43IDQzLjkgNjQuMiAxOTQuNS01Ny40IDE4OS4yLTU5LjUtMi42LTk3LjEtNTEtMTAwLjUtOTAuOCAwIDAgMTEuMi00MS45IDgwLjYtNDEuOSA3LjUgMCAyOC45LTIwLjkgMjkuMy0yNy0uMS0yLTQyLjUtMTguOS01OS4xLTM1LjItOC44LTguNy0xMy4xLTEyLjktMTYuOC0xNi4xLTItMS43LTQuMS0zLjMtNi4zLTQuOC01LjYtMTkuNS01LjgtNDAtLjctNTkuNi0yNS4xIDExLjQtNDQuNiAyOS40LTU4LjcgNDUuNGwtLjEgMGMtOS43LTEyLjItOS01Mi42LTguNC02MS4xLS4xLS41LTcuMiAzLjctOC4yIDQuMy04LjYgNi4xLTE2LjUgMTIuOS0yMy44IDIwLjQtMTYuMyAxNi42LTQ0LjEgNTAuMi01NS41IDEwMS4yLTQuNSAyMC40LTYuOCA0NC40LTYuOCA1Mi4zIDAgMTM0LjcgMTA5LjIgMjQzLjkgMjQzLjkgMjQzLjkgMTIwLjYgMCAyMjMtODcuMiAyNDAuNC0yMDIuNiAxMS42LTc2LjctMTQuNy0xMzEuMS0xNC43LTEzMnoiXX0sVWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3Vkc21pdGgiLGljb246WzUxMiw1MTIsW10sImYzODQiLCJNNTEyIDIyNy42TDUxMiAyODQuNSAyODQuNCA1MTIgMjI3LjYgNTEyIDAgMjg0LjQgMCAyMjcuNiAyMjcuNiAwIDI4NC41IDAgNTEyIDIyNy42em0tMjU2IDE2MmMxNy44IC41IDM1LjYtMi42IDUyLjItOS4xczMxLjgtMTYuMiA0NC42LTI4LjcgMjMtMjcuMyAyOS45LTQzLjggMTAuNS0zNC4xIDEwLjUtNTItMy42LTM1LjUtMTAuNS01Mi0xNy4xLTMxLjMtMjkuOS00My44LTI4LTIyLjItNDQuNi0yOC43LTM0LjQtOS42LTUyLjItOS4xYy0xNy44LS41LTM1LjYgMi42LTUyLjIgOS4xcy0zMS44IDE2LjMtNDQuNiAyOC43LTIzIDI3LjMtMjkuOSA0My44LTEwLjUgMzQuMS0xMC41IDUyIDMuNiAzNS41IDEwLjUgNTIgMTcuMSAzMS4zIDI5LjkgNDMuOCAyOCAyMi4yIDQ0LjYgMjguNyAzNC40IDkuNiA1Mi4yIDkuMXoiXX0sV2x0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndpemFyZHMtb2YtdGhlLWNvYXN0IixpY29uOls2NDAsNTEyLFtdLCJmNzMwIiwiTTIxOS4yIDM0NS43Yy0xLjkgMS40LTExLjEgOC40LS4zIDIzLjYgNC42IDYuNCAxNC4xIDEyLjggMjEuNyA2LjYgNi41LTQuOSA3LjQtMTIuOSAuMy0yMy01LjUtNy44LTE0LjMtMTIuOS0yMS43LTcuMXptMzM2LjggNzUuOWMtLjMgMS43LS42IDEuNyAuOCAwIDIuMS00LjIgNC4yLTEwLjIgNS0xOS45IDMuMS0zOC41LTQwLjMtNzEuNS0xMDEuMy03OC01NC43LTYtMTI0LjQgOS4yLTE4OC44IDYwLjVsLS4zIDEuNmMyLjYgNSA1IDEwLjcgMy40IDIxLjJsLjggLjNjNjMuOS01OC40IDEzMS4yLTc3LjIgMTg0LjQtNzMuOCA1OC40IDMuNyAxMDAgMzQgMTAwIDY4LjEgMCAxMC0yLjYgMTUuNy0zLjkgMjAuMnpNMzkyLjMgMjQwLjRjLjggNy4xIDQuMiAxMC4yIDkuMiAxMC41IDUuNSAuMyA5LjQtMi42IDEwLjUtNi42IC44LTMuNCAyLjEtMjkuOCAyLjEtMjkuOFM0MDIuOCAyMjEgMzk5LjEgMjI1Yy0zLjcgMy43LTcuMyA4LjQtNi44IDE1LjV6bS01MC0xNTEuMWMtMjA0LjUgMC0zMjkuMiAxMzcuNS0zNDEuNSAxNTEuOS0xIC41LTEuMyAuOCAuOCAxLjMgNjAuNSAxNi41IDE1NS44IDgxLjIgMTk2LjEgMjAyLjJsMSAuM2M1NS4yLTY5LjkgMTQwLjktMTI4LjEgMjM3LTEyOC4xIDgwLjkgMCAxMzAuMiA0Mi4yIDEzMC4yIDgwLjQgMCAxOC4zLTYuNiAzMy41LTIyLjMgNDYuMyAwIDEtLjIgLjggLjggLjggMTQuNy0xMC43IDI3LjUtMjguOCAyNy41LTQ4LjIgMC0yMi44LTEyLjEtMzguMi0xMi4xLTM4LjIgNy4xIDcuMSAxMC43IDE2LjIgMTAuNyAxNi4yIDUuOC00MC45IDI3LTYyLjMgMjctNjIuMy0yLjQtOS43LTYuOC0xNy44LTYuOC0xNy44IDcuNiA4LjEgMTQuNCAyNy41IDE0LjQgNDEuNCAwIDEwLjUtMy40IDIyLjgtMTIuNiAzMS45bC4zIC41YzguMS01IDE2LjUtMTYuOCAxNi41LTM4IDAtMTUuNy00LjctMjUuOS00LjctMjUuOSA1LjgtNS4yIDExLjMtOS4yIDE2LTExLjggLjggMy40IDIuMSA5LjcgMi40IDE0LjkgMCAxIC44IDEuOCAxIDAgLjgtNS44LS4zLTE2LjItLjMtMTYuNSA2LTMuMSA5LjctNC41IDkuNy00LjUtMTUuNy0xMTAuMy0xNDQtMTk2LjktMjkxLjItMTk2Ljl6TTI0MyAzNzguOWMtMTEuMSA5LTI0LjIgNC4xLTMwLjYtNC4yLTcuNC05LjYtNi44LTI0LjEgNC4yLTMyLjUgMTQuOC0xMS40IDI3LjEtLjUgMzEuMiA1LjUgLjMgLjQgMTIuMSAxNi42LTQuNyAzMS4yem0yLjEtMTM2LjRsOS40LTE3LjggMTEuOCA3MS0xMi42IDYtMjQuNi0yOC44IDE0LjEtMjYuNyAzLjcgNC40LTEuOC04LjF6bTE4LjYgMTE3LjZsLS4zLS4zYzItNC4xLTIuNS02LjYtMTcuNS0zMS43LTEuMy0yLjQtMy4xLTIuOS00LjQtMi42bC0uMy0uNWM3LjktNS44IDE1LjQtMTAuMiAyNS40LTE1LjdsLjUgLjNjMS4zIDEuOCAyLjEgMi45IDMuNCA0LjdsLS4zIC41Yy0xLS4zLTIuNC0uOC01LjIgLjMtMi4xIC44LTcuOSAzLjctMTIuMyA3LjZsMCAxLjNjMS42IDIuNCAzLjkgNi42IDUuOCA5LjdsLjMgMGMxMC02LjMgNy42LTQuNSAxMS41LTcuOWwuMyAwYy41IDEuOCAuNSAxLjggMS44IDUuNWwtLjMgLjNjLTMuMSAuNi00LjcgLjMtMTEuNSA1LjVsMCAuM2M5LjUgMTcgMTEgMTYuOCAxMi42IDE2bC4zIC4zYy0yLjMgMS42LTYuMyA0LjItOS43IDYuNnpNMzE5IDMyNy42Yy0zLjEgMS42LTYgMi45LTEwIDVsLS4zLS4zYzEuMy0yLjYgMS4yLTIuNy0xMS44LTMyLjVsLS4zLS4zYy0uMiAwLTguOSAzLjctMTAgNy4zbC0uNSAwLTEtNS44IC4zLS41YzcuMy00LjYgMjUuNS0xMS42IDI3LjgtMTIuNmwuNSAuMyAzLjEgNS0uMyAuNWMtMy41LTEuOC03LjQgLjgtMTIuMyAyLjZsMCAuM2MxMi4zIDMyIDEyLjcgMzAuNiAxNC43IDMwLjZsMCAuMnptNDQuOC0xNi41Yy00LjIgMS01LjIgMS4zLTkuNyAyLjlsLS4zLS4zIC41LTQuNWMtMS0zLjQtMy4xLTExLjUtMy43LTEzLjZsLS4zLS4zYy0zLjQgLjgtOC45IDIuNi0xMi44IDMuOWwtLjMgLjNjLjggMi42IDMuMSA5LjkgNC4yIDEzLjkgLjggMi40IDEuOCAyLjkgMi45IDMuMWwwIC41Yy0zLjcgMS03LjEgMi42LTEwLjIgMy45bC0uMy0uM2MxLTEuMyAxLTIuOSAuMy01LTEtMy4xLTguMS0yMy44LTkuMi0yNy4yLS41LTEuOC0xLjYtMy4xLTIuNi0zLjFsMC0uNWMzLjEtMSA2LTIuMSAxMC43LTMuNGwuMyAuMy0uMyA0LjdjMS4zIDMuOSAyLjQgNy42IDMuMSA5LjdsLjMgMGMzLjktMS4zIDkuNC0yLjkgMTIuOC0zLjlsLjMtLjMtMi42LTkuNGMtLjUtMS44LTEtMy40LTIuNi0zLjlsMC0uM2M0LjQtMSA3LjMtMS44IDEwLjctMi40bC4zIC4zYy0xIDEuMy0xIDIuOS0uNSA0LjQgMS42IDYuMyA0LjcgMjAuNCA2LjMgMjYuNSAuNSAyLjYgMS44IDMuNCAyLjYgMy45em0zMi4yLTYuOGwtLjMgLjNjLTQuNyAuNS0xNC4xIDIuNC0yMi41IDQuMmwtLjMtLjMgLjgtNC4yYy0xLjYtNy45LTMuNC0xOC42LTUtMjYuMi0uMy0xLjgtLjgtMi45LTIuNi0zLjdsLjgtLjVjOS4yLTEuNiAyMC4yLTIuNCAyNC45LTIuNmwuMyAuM2MuNSAyLjQgLjggMy4xIDEuNiA1LjVsLS4zIC4zYy0xLjEtMS4xLTMuMy0zLjItMTYuMi0uOGwtLjMgLjNjLjMgMS42IDEgNi42IDEuNiA5LjlsLjMgLjNjOS41LTEuNyA0LjgtLjEgMTAuNy0yLjRsLjMgMGMwIDEuNi0uMyAxLjgtLjMgNS4ybC0uMyAwYy00LjgtMS0yLjItLjktMTAuMiAwbC0uMyAuM2MuMyAyLjEgMS42IDkuNCAyLjEgMTIuNmwuMyAuM2MxLjIgLjQgMTQuMi0uNiAxNi4yLTQuN2wuMyAwYy0uNSAyLjQtMSA0LjItMS42IDZ6bTEwLjctNDQuNWMtNC41IDIuNC04LjEgMi45LTExIDIuOS0uMiAwLTExLjQgMS4xLTE3LjUtMTAtNi43LTEwLjgtMS0yNS4yIDUuNS0zMS43IDguOC04LjEgMjMuNC0xMC4xIDI4LjUtMTcgOC0xMC4zLTEzLTIyLjMtMjkuNi01LjhsLTIuNi0yLjkgNS4yLTE2LjJjMjUuNi0xLjYgNDUuMi0zIDUwIDE2LjIgLjggMy4xIDAgOS40LS4zIDEyLjEgMCAyLjYtMS44IDE4LjgtMi4xIDIzLS41IDQuMi0uOCAxOC4zLS44IDIwLjcgLjMgMi40IC41IDQuMiAxLjYgNS41IDEuNiAxLjggNS44IDEuOCA1LjggMS44bC0uOCA0LjdjLTExLjgtMS4xLTEwLjMtLjYtMjAuNC0xLTMuMi01LjEtMi4yLTMuMy00LjItNy45IDAgMC00LjIgMy45LTcuMyA1LjV6TTQ0My45IDI4MWMtNi40LTEwLjYtMTkuOC03LjItMjEuNyA1LjUtMi42IDE3LjEgMTQuMyAxOS44IDIwLjcgMTAuMmwuMyAuM2MtLjUgMS44LTEuOCA2LTEuOCA2LjNsLS41IC41Yy0xMC4zIDYuOS0yOC41LTIuNS0yNS43LTE4LjYgMS45LTEwLjkgMTQuNC0xOC45IDI4LjgtOS45bC4zIC41YzAgMS4xLS4zIDMuNC0uMyA1LjN6bTUuOC04Ny43bDAtNi42Yy43IDAgMTkuNiAzLjMgMjcuOCA3LjNsLTEuNiAxNy41czEwLjItOS40IDE1LjQtMTAuN2M1LjItMS42IDE0LjkgNy4zIDE0LjkgNy4zbC0xMS4zIDExLjNjLTEyLjEtNi40LTE5LjYtLjEtMjAuNyAuOC01LjMgMzguNy04LjYgNDIuMiA0LjQgNDYuMWwtLjUgNC43Yy0xNy42LTQuMy0xOC41LTQuNS0zNi45LTcuM2wuOC00LjdjNy4zIDAgNy41LTUuMyA3LjYtNi44IDAgMCA1LTUzLjIgNS01NS4zIDAtMi45LTUtMy43LTUtMy43em0xMSAxMTQuNGMtOC4xLTIuMS0xNC4xLTExLTEwLjctMjAuNyAzLjEtOS40IDEyLjMtMTIuMyAxOC45LTEwLjIgOS4yIDIuNiAxMi44IDExLjggMTAuNyAxOS40LTIuNiA4LjktOS40IDEzLjktMTguOSAxMS41em00Mi4yIDkuN2MtMi40LS41LTcuMS0yLjQtOC42LTIuOWwwLS4zIDEuNi0xLjhjLjYtOC4yIC42LTcuMyAuMy03LjYtNC44LTEuOC02LjctMi40LTcuMS0yLjQtMS4zIDEuOC0yLjkgNC41LTMuNyA1LjVsLS44IDMuNCAwIC4zYy0xLjMtLjMtMy45LTEuMy02LTEuNmwwLS4zIDIuNi0xLjhjMy40LTQuNyAxMC0xNC4xIDEzLjktMjAuMmwwLTIuMSAuNS0uM2MyLjEgLjggNS41IDIuMSA3LjYgMi45IC41IC41IC4yLTEuOS0xIDI1LjEtLjIgMS44IDAgMi42IC44IDMuOXptLTQuNy04OS44YzExLjMtMTguMyAzMC44LTE2LjIgMzQtMy40bDcuNi0yNi4yYzIuMy02LjItMi44LTkuOS00LjUtMTEuM2wxLjgtMy43YzEyLjIgMTAuNCAxNi40IDE0IDIyLjUgMjAuNC0yNS45IDczLjEtMzAuOCA4MC44LTI0LjYgODQuM2wtMS44IDQuNGMtNi40LTMuMy04LjktNC40LTE3LjgtOC42bDIuMS02LjhjLS4zLS4zLTMuOSAzLjktOS43IDMuNy0xOS4xLTEuMy0yMi45LTMxLjctOS43LTUyLjl6bTI5LjMgNzkuM2MwLTUuNy02LjMtNy45LTcuOS01LjItMS4zIDIuMSAxIDUgMi45IDguNCAxLjYgMi42IDIuNiA2LjMgMSA5LjQtMi42IDYuMy0xMi40IDUuMy0xNS40LS44IDAtLjctLjMgLjEgMS44LTQuN2wuOC0uM2MtLjYgNS43IDYuMSA5LjYgOC40IDUgMS0yLjEtLjUtNS41LTIuMS04LjQtMS42LTIuNi0zLjctNi4zLTEuOC05LjcgMi43LTUuMSAxMS4zLTQuNSAxNC43IDIuNGwwIC41LTIuNCAzLjR6bTIxLjIgMTMuNGMtMi0zLjMtLjktMi4xLTQuNS00LjdsLS4zIDBjLTIuNCA0LjItNS44IDEwLjUtOC42IDE2LjItMS4zIDIuNC0xIDMuNC0uOCAzLjlsLS4zIC4zLTUuOC00LjQgLjMtLjMgMi4xLTEuM2MzLjEtNS44IDYuNi0xMi4xIDkuMi0xN2wwLS4zYy0yLjYtMi0xLjItMS41LTYtMS44bDAtLjMgMy4xLTMuNCAuMyAwYzMuNyAyLjQgMTAgNi44IDEyLjMgOC45bC4zIC4zLTEuMyAzLjl6TTU3NS44IDI3NmwtMi45LTIuOWMuOC0yLjQgMS44LTUgMi4xLTcuNiAuNy05LjctMTEuNS0xMS44LTExLjUtNSAwIDUgNy45IDE5LjQgNy45IDI3LjggMCAxMC4yLTUuOCAxNS43LTEzLjkgMTYuNS04LjQgLjgtMjAuMi0xMC41LTIwLjItMTAuNWw1LTE0LjQgMi45IDIuMWMtMyAxNy44IDE3LjcgMjAuNCAxMy4zIDUuMi0xLjEtNC0xOC43LTM0LjIgMi4xLTM4LjIgMTMuNi0yLjQgMjMgMTYuNSAyMyAxNi41TDU3NS44IDI3NnptMzUuNi0xMC4yYy0xMS0zMC40LTYwLjUtMTI3LjUtMTkyLTEyOS42LTUzLjQtMS05NC4zIDE1LjQtMTMyLjggMzhsODUuNi05LjItOTEuNCAyMC43IDI1LjEgMTkuNi0zLjktMTYuNWM3LjUtMS43IDM5LjEtOC41IDY2LjgtOC45bC0yMi4zIDgwLjRjMTMuNi0uNyAxOS05IDE5LjYtMjIuOGw1LTEgLjMgMjYuN2MtMjIuNSAzLjItMzcuMyA2LjctNDkuNSA5LjlsMTMuMS00My4yLTYxLjUtMzYuNyAyLjQgOC4xIDEwLjIgNWM2LjMgMTguNiAxOS40IDU2LjYgMjAuNCA1OC43IDIgNC4zIDMuMiA1LjggMTIgNC41bDEuMSA1Yy0xNi4xIDQuOS0yMy43IDcuNi0zOSAxNC40bC0yLjQtNC43YzQuNC0yLjkgOC43LTMuOSA1LjUtMTIuOC0yMy43LTYyLjUtMjEuNS01OC4xLTIyLjgtNTkuNGwyLjQtNC40IDMzLjUgNjcuM2MtMy44LTExLjkgMS43IDEuNy0zMy03OC44bC00MS45IDg4LjUgNC43LTEzLjktMzUuOS00Mi4yIDI3LjggOTMuNS0xMS44IDguNGMtMTExLjktMTAxLjctMTA1LjgtOTguNC0xMTMuNy05OC43LTUuNS0uMy0xMy42IDUuNS0xMy42IDUuNWwtNS02YzMwLjYtMjMuNSAzMS42LTI0LjMgNTguNC00Mi43bDQuMiA3LjFzLTUuOCA0LjItNy45IDcuMWMtNS45IDkuMyAxLjcgMTMuMyA2MS44IDc1LjdsLTE4LjgtNTguOSAzOS44LTEwLjIgMjUuNyAzMC42IDQuNC0xMi4zLTUtMjQuNiAxMy4xLTMuNCAuNSAzLjEgMy43LTEwLjUtOTQuMyAyOS4zIDExLjMtNS0xMy42LTQyLjQgMTcuMy05LjIgMzAuMSAzNi4xIDI4LjUtMTMuMWMtMS40LTcuNS0yLjUtMTQuNS00LjctMTkuNmwxNy4zIDEzLjkgNC43LTIuMS01OS4yLTQyLjcgMjMuMSAxMS41YzE5LTYuMSAyNS4yLTcuNSAzMi4yLTkuN2wyLjYgMTFjLTEyLjYgMTIuNiAxLjQgMTYuOCA2LjUgMTkuNGwtMTMuNi02MSAxMiAyOC4zYzQuMi0xLjMgNy4zLTIuMSA3LjMtMi4xbDIuNiA4LjZzLTMuMSAxLTYuMyAyLjFsOC45IDIxIDMzLjgtNjUuNy0yMC43IDYxYzQyLjQtMjQuMSA4MS40LTM2LjcgMTMyLTM1LjkgNjcgMSAxNjcuMyA0MC44IDE5OS44IDEzOS44IC44IDIuMSAwIDIuNi0uOCAuM3ptLTQwOC0xMTMuNHMxLjgtLjUgNC4yLTEuM2w5LjQgNy42Yy0uNCAwLTMuNC0uMy0xMS4zIDIuNGwtMi40LTguNnptMTQzLjggMzguNWMtMS42LS42LTI2LjUtNC44LTMzLjMgMjAuN2wyMS43IDE3IDExLjUtMzcuN3pNMzE4LjQgNjcuMWMtNTguNCAwLTEwNi4xIDEyLTExNSAxNC40bDAgLjhjOC40IDIuMSAxNC40IDQuMiAyMS4yIDExLjhsMS42IC4zYzYuNi0xLjggNDktMTMuOSAxMTAuMi0xMy45IDE4MC4yIDAgMzAxLjcgMTE2LjggMzAxLjcgMjIzLjRsMCAxMGMwIDEuMyAuOCAyLjYgMS4xIC41IC41LTIuMSAuOC04LjYgLjgtMTkuNiAuMy04My44LTk2LjYtMjI3LjYtMzIxLjYtMjI3LjZ6TTUyOS41IDIzNi44YzEuMy01LjggMC0xMi4zLTcuMy0xMy4xLTkuNi0xLjEtMTYuMSAyMy44LTE3IDMzLjUtLjggNS41LTEuMyAxNC45IDYgMTQuOSA0LjcgMCA5LjctLjkgMTguMy0zNS40ek00NjggMjc5LjdjLTIuNi0uOC05LjQtLjgtMTIuNiAxMC41LTEuOCA2LjggLjUgMTMuNCA2IDE0LjcgMy43IDEuMSA4LjkgLjUgMTEuOC0xMC43IDIuNi05LjktMS44LTEzLjYtNS4yLTE0LjR6bTIzIDIxYzEuOCAuNSAzLjEgMSA1LjggMS44IDAtMS44IC41LTguNCAuOC0xMi4xLTEgMS4zLTUuNSA4LjEtNi42IDEwbDAgLjN6Il19LEdsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLW5kIixpY29uOls1MTIsNTEyLFtdLCJmNGViIiwiTTI1NS42IDhDMzk3LjQgOCA1MDQgMTE4LjEgNTA0IDI1NiA1MDQgNDAzLjEgMzg1LjUgNTA0IDI1NS42IDUwNCAxMjEuNiA1MDQgOCAzOTQuNSA4IDI1NiA4IDEyMy4xIDExMi43IDggMjU1LjYgOHptLjggNDQuN2MtMTE4LjIgMC0yMDMuNyA5Ny45LTIwMy43IDIwMy4zIDAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjggLjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptOTQgMTQ0LjNsMCA0Mi41LTE4MC4zIDAgMC00Mi41IDE4MC4zIDB6bTAgNzkuOGwwIDQyLjUtMTgwLjMgMCAwLTQyLjUgMTgwLjMgMHoiXX0sWWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVzcHMiLGljb246WzUxMiw1MTIsW10sImY3ZTEiLCJNNDI4LjMgMjQxLjdjMjUuOC00MS4zIDE1LjItNDguOC0xMS43LTQ4LjhsLTI3IDBjLS4xIDAtMS41LTEuNC0xMC45IDgtMTEuMiA1LjYtMzcuOSA2LjMtMzcuOSA4LjcgMCA0LjUgNzAuMy0zLjEgODguMSAwIDkuNSAxLjUtMS41IDIwLjQtNC40IDMyLS41IDQuNSAyLjQgMi4zIDMuOCAuMXpNMzE2LjIgMjY0LjNjNjQtMjEuMyA5Ny4zLTIzLjkgMTAyLTI2LjIgNC40LTIuOS00LjQtNi42LTI2LjItNS44LTUxLjcgMi4yLTEzNy42IDM3LjEtMTcyLjYgNTMuOWwtMzAuNy05My4zIDE5Ni42IDBjLTIuNy0yOC4yLTE1Mi45LTIyLjYtMzM3LjktMjIuNkwtNSA0MTUuOGMxOTYuNC05Ny4zIDI1OC45LTEzMC4zIDMyMS4yLTE1MS41ek02Mi43IDk2YzI1My4zIDUzLjcgMzMwIDY1LjcgMzMyLjEgODUuMiAzNi40IDAgNDUuOSAwIDUyLjQgNi42IDIxLjEgMTkuNy0xNC42IDY3LjctMTQuNiA2Ny43LTQuNCAyLjktNDA2LjQgMTYwLjItNDA2LjQgMTYwLjJMNDQ5LjMgNDE1LjcgNTE3IDk2IDYyLjcgOTZ6Il19LFpsdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtbGV0dGVyYm94ZCIsaWNvbjpbNDQ4LDUxMixbXSwiZTYyZSIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xMDUuMSAxODdDNjYuNCAxODcgMzUgMjE4LjMgMzUgMjU3czMxLjQgNzAgNzAuMSA3MGMyNC44IDAgNDYuNS0xMi44IDU5LTMyLjJsLjUtLjctLjQtLjZjLTYuNS0xMC42LTEwLjItMjMuMS0xMC4yLTM2LjUgMC0xMy42IDMuOS0yNi4zIDEwLjYtMzcuMS0xMi40LTE5LjgtMzQuNC0zMi45LTU5LjUtMzIuOXpNMjI0IDE4N2MtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41IDAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjEgMTIuNCAxOS43IDM0LjQgMzIuOSA1OS41IDMyLjkgMjQuOCAwIDQ2LjUtMTIuOCA1OS0zMi4ybC41LS43LS40LS42Yy02LjUtMTAuNi0xMC4yLTIzLjEtMTAuMi0zNi41IDAtMTMuNiAzLjktMjYuMyAxMC42LTM3LjEtMTIuNC0xOS43LTM0LjQtMzIuOS01OS41LTMyLjl6bTExOC45IDBjLTI0LjggMC00Ni41IDEyLjgtNTkgMzIuMmwtLjUgLjcgLjQgLjZjNi41IDEwLjYgMTAuMiAyMy4xIDEwLjIgMzYuNSAwIDEzLjYtMy45IDI2LjMtMTAuNiAzNy4xIDEyLjQgMTkuOCAzNC40IDMyLjkgNTkuNSAzMi45IDM4LjcgMCA3MC4xLTMxLjMgNzAuMS03MHMtMzEuNC03MC03MC4xLTcweiJdfSxYbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWFuZGFsb3JpYW4iLGljb246WzM4NCw1MTIsW10sImY1MGYiLCJNMjAwLjYgNTExLjljLTEtMy4zLTEuNy0xNS44LTEuNC0yNC42IC42LTE1LjkgMS0yNC43IDEuNC0yOC44IC42LTYuMiAyLjktMjAuNyAzLjMtMjEuNCAuNi0xIC40LTI3LjktLjItMzMuMS0uMy0yLjYtLjYtMTEuOS0uNy0yMC43LS4xLTE2LjUtLjUtMjAuMS0yLjctMjQuOC0xLjEtMi4zLTEuMi0zLjgtMS0xMS40IC4yLTQuMiAuMS04LjUtLjMtMTIuNy0yLTEzLTMuNS0yNy43LTMuMi0zMy45cy40LTcuMSAyLjEtOS43YzMuMS00LjcgNi41LTE0IDguNi0yMy4zIDIuMy05LjkgMy45LTE3LjIgNC42LTIwLjcgMS4xLTUuMSAyLjYtMTAuMSA0LjQtMTUuMSAyLjMtNi4yIDIuNS0xNS40IC40LTE1LjQtLjMgMC0xLjQgMS4yLTIuNCAyLjdzLTQuOCA0LjgtOC4zIDcuNGMtOC40IDYuMS0xMS43IDkuNC0xMi43IDEyLjZzLTEgNy4yLS4yIDcuOGMuMyAuMiAxLjMgMi40IDIuMSA0LjkgMS42IDUgMS45IDEwLjMgLjcgMTUuNC0uNCAxLjgtMSA1LjUtMS41IDguMnMtMSA2LjUtMS4zIDguMmMtLjIgMS41LS43IDMtMS41IDQuMy0xIDEtMS4xIC45LTIuMS0uNS0uNy0xLjUtMS4yLTMuMS0xLjQtNC43LS4yLTEuNy0xLjYtNy4xLTMuMS0xMS45LTMuMy0xMC45LTMuNS0xNi4yLTEtMjEgLjgtMS40IDEuNC0zIDEuNy00LjYgMC0yLjQtMi4yLTUuMy03LjQtOS45LTctNi4yLTguNi03LjktMTAuMi0xMS4zLTEuNy0zLjYtMy4xLTQuMS00LjUtMS41LTEuOCAzLTIuNiA5LjEtMyAyMmwtLjMgMTIuMiAyIDIuMmMzLjIgMy43IDEyLjEgMTYuNSAxMy44IDE5LjggMy40IDYuNyA0LjMgMTEuNyA0LjQgMjMuNnMxIDIyLjggMiAyNC43Yy40IC43IC41IDEuNCAuMyAxLjVzLjQgMi4xIDEuMyA0LjNjMSAyLjkgMS43IDUuOSAyLjEgOSAuNCAzLjUgLjkgNyAxLjcgMTAuNCAyLjIgOS42IDIuOCAxNC4xIDIuNCAyMC4xLS4yIDMuMy0uNSAxMS4xLS43IDE3LjMtMS4zIDQxLjgtMS44IDU4LTIgNjEuMi0uMSAyLS40IDExLjUtLjYgMjEuMS0uNCAxNi4zLTEuMyAyNy40LTIuNCAyOC42LS42IC43LTguMS00LjktMTIuNS05LjUtMy44LTMuOS00LTQuOC0yLjgtOS45IC43LTMgMi4zLTE4LjMgMy4zLTMyLjYgLjQtNC44IC44LTEwLjUgMS0xMi43IC44LTkuNCAxLjctMjAuMyAyLjYtMzQuOCAuNi04LjUgMS4zLTE2LjQgMS43LTE3LjdzLjktOS45IDEuMS0xOS4xbC40LTE2LjgtMi4zLTQuM2MtMS43LTMuMy00LjktNi45LTEzLjItMTUuMy02LTYuMS0xMS44LTEyLjMtMTIuOS0xMy44bC0yLTIuOCAuOC0xMC45YzEuMS0xNS43IDEuMS00OC42IDAtNTkuMWwtLjktOC43LTMuMy00LjVjLTUuOS04LjEtNS44LTcuNy02LjItMzMuMy0uMS02LjEtLjQtMTEuNS0uNi0xMi4xLS44LTEuOS0zLTIuNy04LjUtMy04LjktLjYtMTEtMS45LTIzLjgtMTQuNi02LjItNi0xMi4zLTEyLTEzLjgtMTMuMi0yLjgtMi40LTIuOC0yLS42LTkuNmwxLjQtNC42LTEuNy0zYy0uOC0xLjQtMS42LTIuOC0yLjYtNC4xLTEuMy0xLjUtNS41LTEwLjktNi0xMy41LS4yLS43LS4yLTEuNC0uMS0yLjFzLjUtMS4zIC45LTEuOGMyLjItMi45IDMuNC01LjcgNC41LTEwLjcgMi4zLTExLjIgNy43LTI2LjEgMTAuNi0yOS4yIDMuMi0zLjUgNy43LTEgOS40IDUgMS4zIDQuOCAxLjQgOS44IC4xIDE4LjYtLjUgMy43LS45IDcuNC0xIDExLjEgMCA0IC4yIDQuNyAyLjMgNy40IDMuMyA0LjQgNy43IDcuNCAxNS4yIDEwLjUgMS43IC43IDMuMyAxLjcgNC43IDIuOCAxMS4yIDEwLjcgMTguNiAxNi4yIDIyLjkgMTYuOSA1LjIgLjggOCA0LjUgMTAgMTMuNCAxLjMgNS43IDQgMTEuMSA1LjUgMTEuMSAxLjItLjIgMi4zLS43IDMuMy0xLjQgMi0xLjIgMi4yLTEuNyAyLjItNC4yLS4zLTYtLjktMTEuOS0yLTE3LjgtLjQtMS43LS44LTQuMS0uOS01LjRzLS42LTMuOC0xLTUuN2MtMi42LTExLjItMy42LTE1LjUtNC4xLTE2LTEuNi0yLTQuMS0xMC4yLTQuOS0xNS45LTEuNi0xMS4xLTQtMTQuMi0xMi45LTE3LjQtNC45LTEuOC05LjQtNC41LTEzLjMtNy45LTEuMi0xLTQtMy4yLTYuNC01LjFzLTQuNC0zLjUtNC42LTMuOGMtLjgtLjctMS43LTEuNC0yLjctMi02LjItNC4yLTguOC03LTExLjMtMTJsLTIuNC01Yy0uMS04LjctLjMtMTcuMy0uNC0yNmw2LjktNi42YzQtMy44IDguNS03LjQgMTAuNi04LjQgMy4zLTEuNyA0LjQtMS45IDExLjQtMiA4LjUtLjIgMTAuMSAwIDExLjcgMS42czEuNCA2LjQtLjMgOC41Yy0uNiAuNy0xLjEgMS41LTEuMyAyLjMgMCAuNi0yLjYgNC45LTUuNCA5LTEuMSAyLjItMS45IDQuNS0yLjQgNi44IDIwLjQgMTMuNCAyMS42IDMuOCAxNC4xIDI5bDExLjQgMi41YzMuMS04LjcgNi41LTE3LjMgOC42LTI2LjIgLjMtNy42LTEyLTQuMi0xNS40LTguNy0yLjMtNS45IDMuMS0xNC4yIDYuMS0xOS4yIDEuNi0yLjMgNi42LTQuNyA4LjgtNC4xIC45IC4yIDQuMi0uNCA3LjQtMS4zIDIuNS0uOCA1LTEuMyA3LjUtMS43IDItLjIgNC4xLS43IDYtMS4zIDMuNy0xLjEgNC41LTEuMiA2LjMtLjQgMS45IC42IDMuOCAxLjEgNS44IDEuNCAyLjEgLjMgNC4xIC45IDYgMS45IDEuNiAuOSAzLjMgMS43IDUgMi4yIDIuNSAuNyAzIC42IDctMS43TDIyNiA1LjQgMjM2LjcgNWMxMC40LS40IDEwLjgtLjUgMTUuMy0yLjdMMjU2LjUgMCAyNTkgMS40YzEuOCAxIDMuMSAyLjcgNC45IDYgMi40IDQuNSAyLjQgNC42IDEuNCA3LjQtLjkgMi40LS45IDMuMy0uMSA2LjQgLjUgMiAxLjIgNCAyLjEgNS45IC42IDEuMyAxLjEgMi42IDEuMyA0IC4zIDQuMyAwIDUuMy0yLjQgNi45LTIuMiAxLjUtNyA3LjktNyA5LjMtLjIgMS0uNiAyLTEuMSAzLTUgMTEuNS02LjggMTMuNi0xNC4zIDE3LTkuMiA0LjItMTIuMyA1LjItMTYuMiA1LjItMy4xIDAtNCAuMi00LjUgMS4zLTEuMiAxLjQtMi41IDIuNy00LjEgMy43LTEuOCAxLjItMy4zIDIuOS00LjQgNC44LS41IDEuMi0xLjQgMi4yLTIuNSAyLjktLjkgLjQtMS44IDEtMi41IDEuNy0yLjIgMS45LTQuNiAzLjctNyA1LjQtMy4zIDIuMy02LjkgNS03LjkgNi0uNyAuNy0xLjUgMS4zLTIuNCAxLjctLjggLjQtMS42IC45LTIuMSAxLjYtMS4zIDEuNC0xLjUgMi4xLTEuMSA0LjYgLjMgMiAuOCA0IDEuNCA1LjkgMS4zIDMuOCAxLjMgNy45IDAgMTAuNnMtLjkgNi43IDEuNCA5LjZjMiAyLjYgMi4yIDQuNiAuNyA4LjgtLjggMi45LTEuMSA1LjktMS4xIDguOSAwIDQuOSAuMiA2LjMgMS41IDguNHMxLjggMi41IDMuMiAyLjNjMi0uMiAyLjMtMS4xIDQuNy0xMi4xIDIuMi0xMCAzLjctMTEuOSAxMy44LTE3LjEgMi45LTEuNSA3LjUtNCAxMC01LjRzNi44LTMuNyA5LjQtNC45YzUuOS0yLjYgMTEuMi02LjYgMTUuMi0xMS43IDcuMS04LjggMTAtMTYuMiAxMi44LTMzLjMgLjQtMi44IDEuMy01LjQgMi45LTcuNyAxLjQtMi4yIDIuNC00LjcgMi45LTcuMyAxLTUuMyAyLjktOS4xIDUuNi0xMS41IDQuNy00LjIgNi0xLjEgNC42IDEwLjktLjUgMy45LTEuMSAxMC4zLTEuNCAxNC40bC0uNiA3LjRjMyAyLjcgNS45IDUuNSA4LjkgOC4ybC4xIDguNGMuMSA0LjYgLjUgOS41IC45IDEwLjlsLjggMi41LTYuNCA2LjNjLTguNSA4LjMtMTIuOSAxMy45LTE2LjggMjEuNi0xLjggMy41LTMuNyA3LjEtNC40IDgtMi4yIDMuMS02LjUgMTMtOC44IDIwLjNsLTIuMyA3LjItNyA2LjVjLTMuOCAzLjYtOCA3LjItOS4yIDguMi0zIDIuMy00LjMgNS4xLTQuMyAxMC0uMSAyLjUgLjQgNSAxLjYgNy4zIC44IDEuNiAxLjUgMy4yIDIuMSA0LjggLjMgMSAuOSAyIDEuNiAyLjkgMS40IDEuNiAxLjkgMTYuMSAuOCAyMy4yLS43IDQuNS0zLjYgMTItNC43IDEyLTEuOCAwLTQuMSA5LjMtNS4xIDIwLjctLjIgMi0uNiA1LjktMSA4LjdzLTEgMTAtMS40IDE2Yy0uOCAxMi4yLS4yIDE4LjggMiAyMy4yIDMuNCA2LjcgLjUgMTIuNy0xMSAyMi44bC00IDMuNSAuMSA1LjJjLjEgMyAuNCA2IDEuMSA4LjkgNC42IDE2IDQuNyAxNi45IDQuNCAzNy4xLS41IDI2LjQtLjMgNDAuMyAuNiA0NC4yIC41IDIuMyAuOSA0LjYgMS4xIDcgLjIgMiAuNyA1LjMgMS4xIDcuNCAuNSAyLjMgLjggMTEgLjggMjIuN2wwIDE5LjEtMS44IDIuNmMtMi43IDMuOS0xNS4xIDEzLjUtMTUuNSAxMi4zbC4xIDB6bTI5LjUtNDUuMWMtLjItLjMtLjMtNi45LS4zLTE0LjYgMC0xNC4xLS45LTI3LjUtMi4zLTM0LjQtLjQtMi0uOC05LjctLjktMTcuMS0uMi0xMS45LTEuNC0yNC40LTIuNi0yNi40LS43LTEuMS0zLTE3LjctMy0yMS4zIDAtNC4yIDEtNiA1LjMtOS4xczQuOS0zLjEgNS41LS43Yy4zIDEuMSAxLjQgNS42IDIuNiAxMCAzLjkgMTUuMSA0LjEgMTYuMyA0IDIxLjctLjEgNS44LS4xIDYuMS0xLjcgMTcuNy0xIDcuMS0xLjIgMTIuNC0xIDI4LjQgLjIgMTkuNC0uNiAzNS43LTIgNDEuMy0uNyAyLjgtMi44IDUuNS0zLjQgNC40bC0uMSAwem0tNzEtMzcuNmMtLjgtMy42LTEuMy03LjItMS43LTEwLjhzLTEtNy4yLTEuNy0xMC44Yy0uNS0yLjEtLjktNC4zLTEtNi41LS4zLTMuMi0uOS03LjUtMS4zLTkuNS0xLTQuOC0zLjMtMTkuNC0zLjQtMjEuMSAwLS43LS4zLTQtLjctNy40LS43LTYuMi0uOC0yNy43LS4yLTI4LjMgMS0xIDYuNiAyLjggMTEuMyA3LjRsNS4zIDUuMy0uNCA2LjVjLS4yIDMuNi0uNiAxMC4yLS44IDE0LjgtLjUgMTMuMy0uNyA4LjctMS42IDI4LjQtLjggMTcuNC0xLjkgMzEuMy0yLjYgMzItLjEgLjEtLjIgLjEtLjIgLjJzLS4yIDAtLjMgMC0uMiAwLS4zLS4xLS4xLS4xLS4yLS4ybDAgMHpNNzIgMTYyLjZjMjEuMSAxMi44IDE3LjggMTQuMiAyOC41IDE3LjcgMTMgNC4zIDE4LjkgNy4xIDIzLjIgMTYuOS00My43IDM2LjEtNjkgNTcuOS03Ni43IDcwLjktMzEgNTItNiAxMDEuNiA2Mi44IDg3LjItMTQuMiAyOS4yLTc4IDI4LjYtOTguNy00LjktMjQuNy00MC0yMi4xLTExOC4zIDYxLTE4Ny43bDAgMHptMjEwLjggMTc5YzU2LjcgNi45IDgyLjMtMzcuNyA0Ni41LTg5LjIgMCAwLTI2LjktMjkuMy02NC4zLTY4IDMtMTUuNSA5LjUtMzIuMSAzMC42LTUzLjggODkuMiA2My41IDkyIDE0MS42IDkyLjUgMTQ5LjQgNC4zIDcwLjYtNzguNyA5MS4yLTEwNS4zIDYxLjdsMCAweiJdfSxhbmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2xhY2siLGljb246WzQ0OCw1MTIsWzYyNDQ3LCJzbGFjay1oYXNoIl0sImYxOTgiLCJNOTQuMSAzMTUuMWMwIDI1LjktMjEuMiA0Ny4xLTQ3LjEgNDcuMVMwIDM0MSAwIDMxNS4xIDIxLjIgMjY4IDQ3LjEgMjY4bDQ3LjEgMCAwIDQ3LjF6bTIzLjcgMGMwLTI1LjkgMjEuMi00Ny4xIDQ3LjEtNDcuMVMyMTIgMjg5LjIgMjEyIDMxNS4xbDAgMTE3LjhjMCAyNS45LTIxLjIgNDcuMS00Ny4xIDQ3LjFzLTQ3LjEtMjEuMi00Ny4xLTQ3LjFsMC0xMTcuOHptNDcuMS0xODljLTI1LjkgMC00Ny4xLTIxLjItNDcuMS00Ny4xUzEzOSAzMiAxNjQuOSAzMiAyMTIgNTMuMiAyMTIgNzkuMWwwIDQ3LjEtNDcuMSAwem0wIDIzLjdjMjUuOSAwIDQ3LjEgMjEuMiA0Ny4xIDQ3LjFTMTkwLjggMjQ0IDE2NC45IDI0NEw0Ny4xIDI0NEMyMS4yIDI0NCAwIDIyMi44IDAgMTk2LjlzMjEuMi00Ny4xIDQ3LjEtNDcuMWwxMTcuOCAwem0xODkgNDcuMWMwLTI1LjkgMjEuMi00Ny4xIDQ3LjEtNDcuMVM0NDggMTcxIDQ0OCAxOTYuOSA0MjYuOCAyNDQgNDAwLjkgMjQ0bC00Ny4xIDAgMC00Ny4xem0tMjMuNyAwYzAgMjUuOS0yMS4yIDQ3LjEtNDcuMSA0Ny4xUzIzNiAyMjIuOCAyMzYgMTk2LjlsMC0xMTcuOEMyMzYgNTMuMiAyNTcuMiAzMiAyODMuMSAzMnM0Ny4xIDIxLjIgNDcuMSA0Ny4xbDAgMTE3Ljh6bS00Ny4xIDE4OWMyNS45IDAgNDcuMSAyMS4yIDQ3LjEgNDcuMVMzMDkgNDgwIDI4My4xIDQ4MCAyMzYgNDU4LjggMjM2IDQzMi45bDAtNDcuMSA0Ny4xIDB6bTAtMjMuN2MtMjUuOSAwLTQ3LjEtMjEuMi00Ny4xLTQ3LjFTMjU3LjIgMjY4IDI4My4xIDI2OGwxMTcuOCAwYzI1LjkgMCA0Ny4xIDIxLjIgNDcuMSA0Ny4xcy0yMS4yIDQ3LjEtNDcuMSA0Ny4xbC0xMTcuOCAweiJdfSxGQT1hbmUsUWx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZ2VsbGlzdCIsaWNvbjpbMzg0LDUxMixbXSwiZjIwOSIsIk0zMTUuNiAyMTUuNGMxMS43LTMyLjYgNDUuNC0xMjYuOSA0NS40LTE1Ny4xIDAtMjYuNi0xNS43LTQ4LjktNDMuNy00OC45LTQ0LjYgMC04NC42IDEzMS43LTk3LjEgMTYzLjEtOS43LTI4LjUtNTUuMS0xNzIuNS05NS4xLTE3Mi41LTMxLjEgMC00NS43IDIyLjktNDUuNyA1MS43IDAgMzUuMyAzNC4yIDEyNi44IDQ2LjYgMTYyLTYuMy0yLjMtMTMuMS00LjMtMjAtNC4zLTIzLjQgMC00OC4zIDI5LjEtNDguMyA1Mi42IDAgOC45IDQuOSAyMS40IDggMjkuNy0zNi45IDEwLTUxLjEgMzQuNi01MS4xIDcxLjctLjEgNzIuMiA2OC4zIDE0OC42IDE2NC41IDE0OC42IDExOCAwIDE5MS40LTg4LjYgMTkxLjQtMjAyLjkgMC00My4xLTYuOS04Mi01NC45LTkzLjd6TTI4MC4yIDEwOGM0LTEyLjMgMjEuMS02NC4zIDM3LjEtNjQuMyA4LjYgMCAxMC45IDguOSAxMC45IDE2IDAgMTkuMS0zOC42IDEyNC42LTQ3LjEgMTQ4bC0zNC02IDMzLjEtOTMuN3pNMTEwLjggNDguM2MwLTExLjkgMTQuNS00NS43IDQ2LjMgNDcuMWwzNC42IDEwMC4zYy0xNS42LTEuMy0yNy43LTMtMzUuNCAxLjQtMTAuOS0yOC44LTQ1LjUtMTE5LjctNDUuNS0xNDguOHpNMTA4LjUgMjQ0YzI5LjMgMCA2Ny4xIDk0LjYgNjcuMSAxMDcuNCAwIDUuMS00LjkgMTEuNC0xMC42IDExLjQtMjAuOSAwLTc2LjktNzYuOS03Ni45LTk3LjcgLjEtNy43IDEyLjctMjEuMSAyMC40LTIxLjF6TTI5Mi44IDQzMC4zYy0yOS4xIDMyLTY2LjMgNDguNi0xMDkuNyA0OC42LTU5LjQgMC0xMDYuMy0zMi42LTEyOC45LTg4LjMtMTcuMS00My40IDMuOC02OC4zIDIwLjYtNjguMyAxMS40IDAgNTQuMyA2MC4zIDU0LjMgNzMuMSAwIDQuOS03LjcgOC4zLTExLjcgOC4zLTE2LjEgMC0yMi40LTE1LjUtNTEuMS01MS40LTI5LjcgMjkuNyAyMC41IDg2LjkgNTguMyA4Ni45IDI2LjEgMCA0My4xLTI0LjIgMzgtNDIgMy43IDAgOC4zIC4zIDExLjctLjYgMS4xIDI3LjEgOS4xIDU5LjQgNDEuNyA2MS43IDAtLjkgMi03LjEgMi03LjQgMC0xNy40LTEwLjYtMzIuNi0xMC42LTUwLjMgMC0yOC4zIDIxLjctNTUuNyA0My43LTcxLjcgOC02IDE3LjctOS43IDI3LjEtMTMuMSA5LjctMy43IDIwLTggMjcuNC0xNS40LTEuMS0xMS4yLTUuNy0yMS4xLTE2LjktMjEuMS0yNy43IDAtMTIwLjYgNC0xMjAuNi0zOS43IDAtNi43IC4xLTEzLjEgMTcuNC0xMy4xIDMyLjMgMCAxMTQuMyA4IDEzOC4zIDI5LjEgMTguMSAxNi4xIDI0LjMgMTEzLjItMzEgMTc0Ljd6bS05OC42LTEyNmM5LjcgMy4xIDE5LjcgNCAyOS43IDYtNy40IDUuNC0xNCAxMi0yMC4zIDE5LjEtMi44LTguNS02LjItMTYuOC05LjQtMjUuMXoiXX0sSmx0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFuZHJvaWQiLGljb246WzU3Niw1MTIsW10sImYxN2IiLCJNNDIwLjUgMjUzLjlhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0tMjY1LjEgMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTI3My43LTk2LjVsNDcuOS04M2MuOC0xLjEgMS4zLTIuNCAxLjUtMy44cy4yLTIuNy0uMS00LjEtLjktMi42LTEuNy0zLjctMS44LTItMy0yLjctMi41LTEuMS0zLjktMS4zLTIuNyAwLTQgLjQtMi41IDEuMS0zLjYgMS45LTEuOSAyLTIuNSAzLjJsLTQ4LjUgODQuMWMtMzguOC0xNy40LTgwLjgtMjYuNC0xMjMuMy0yNi40cy04NC41IDktMTIzLjMgMjYuNEwxMTYuMiA2NC40Yy0uNi0xLjItMS41LTIuMy0yLjUtMy4ycy0yLjMtMS41LTMuNi0xLjktMi43LS41LTQtLjQtMi43IC42LTMuOSAxLjMtMi4yIDEuNi0zIDIuNy0xLjQgMi40LTEuNyAzLjctLjMgMi43LS4xIDQuMSAuOCAyLjYgMS41IDMuOGw0Ny45IDgzQzY0LjUgMjAyLjIgOC4yIDI4NS41IDAgMzg0bDU3NiAwYy04LjItOTguNS02NC41LTE4MS44LTE0Ni45LTIyNi42eiJdfSxLbHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVldHVwIixpY29uOls1NzYsNTEyLFtdLCJmMmUwIiwiTTEzMS4xIDQxNC4zYzEuMSA1LjctMi4zIDExLjEtOCAxMi4zLTUuNCAxLjEtMTAuOS0yLjMtMTItOC0xLjEtNS40IDIuMy0xMS4xIDcuNy0xMi4zczExLjEgMi4zIDEyLjMgOHptMTQzLjEgNzEuNGMtNi4zIDQuNi04IDEzLjQtMy43IDIwIDQuNiA2LjYgMTMuNCA4LjMgMjAgMy43IDYuMy00LjYgOC0xMy40IDMuNC0yMC00LjItNi41LTEzLjEtOC4zLTE5LjctMy43em0tODYtNDYyLjNhMTEuOCAxMS44IDAgMSAwIC00LjktMjMgMTEuOCAxMS44IDAgMSAwIDQuOSAyM3pNNjYuNSAyMjYuM2EyMi4yIDIyLjIgMCAxIDAgLTI0LjcgMzYuOSAyMi4yIDIyLjIgMCAxIDAgMjQuNy0zNi45em0yNzItMTcwLjlhMjIuMSAyMi4xIDAgMSAwIC0yMi40LTM4IDIyLjEgMjIuMSAwIDEgMCAyMi40IDM4em0tMTkxLjEgNThhMTYuOSAxNi45IDAgMSAwIC0xOC44LTI4IDE2LjkgMTYuOSAwIDEgMCAxOC44IDI4em0zNzIuMyAxNTZjLTcuNCAxLjctMTIuMyA5LjEtMTAuNiAxNi45IDEuNCA3LjQgOC45IDEyLjMgMTYuMyAxMC42IDcuNC0xLjQgMTIuMy04LjkgMTAuNi0xNi42LTEuNS03LjQtOC45LTEyLjMtMTYuMy0xMC45em0zOS43LTU2LjhhMTAuMSAxMC4xIDAgMSAwIC0xOS44IDQuMyAxMC4xIDEwLjEgMCAxIDAgMTkuOC00LjN6bS04MC4zLTczLjdhMTguOCAxOC44IDAgMSAwIDIwLjcgMzEuMyAxOC44IDE4LjggMCAxIDAgLTIwLjctMzEuM3ptLTYuMyAxMzkuNGMyNi4zIDQzLjEgMTUuMSAxMDAtMjYuMyAxMjkuMS0xNy40IDEyLjMtMzcuMSAxNy43LTU2LjkgMTcuMS0xMiA0Ny4xLTY5LjQgNjQuNi0xMDUuMSAzMi42LTEuMSAuOS0yLjYgMS43LTMuNyAyLjktMzkuMSAyNy4xLTkyLjMgMTcuNC0xMTkuNC0yMi4zLTkuNy0xNC4zLTE0LjYtMzAuNi0xNS4xLTQ2LjktNjUuNC0xMC45LTkwLTk0LTQxLjEtMTM5LjctMjguMy00Ni45IC42LTEwNy40IDUzLjQtMTE0LjkgMjUuMS02Ni4yIDEwNy42LTk3LjYgMTYzLjYtNTQuMiA2Ny40LTIyLjMgMTM2LjMgMjkuNCAxMzAuOSAxMDEuMSA0MS4xIDEyLjYgNTIuOCA2Ni45IDE5LjcgOTUuMnptLTcwIDc0LjNjLTMuMS0yMC42LTQwLjktNC42LTQzLjEtMjcuMS0zLjEtMzIgNDMuNy0xMDEuMSA0MC0xMjgtMy40LTI0LTE5LjQtMjkuMS0zMy40LTI5LjQtMTMuNC0uMy0xNi45IDItMjEuNCA0LjYtMi45IDEuNy02LjYgNC45LTExLjctLjMtNi4zLTYtMTEuMS0xMS43LTE5LjQtMTIuOS0xMi4zLTItMTcuNyAyLTI2LjYgOS43LTMuNCAyLjktMTIgMTIuOS0yMCA5LjEtMy40LTEuNy0xNS40LTcuNy0yNC0xMS40LTE2LjMtNy4xLTQwIDQuNi00OC42IDIwLTEyLjkgMjIuOS0zOCAxMTMuMS00MS43IDEyNS4xLTguNiAyNi42IDEwLjkgNDguNiAzNi45IDQ3LjEgMTEuMS0uNiAxOC4zLTQuNiAyNS40LTE3LjQgNC03LjQgNDEuNy0xMDcuNyA0NC42LTExMi42IDItMy40IDguOS04IDE0LjYtNS4xIDUuNyAzLjEgNi45IDkuNCA2IDE1LjEtMS4xIDkuNy0yOCA3MC45LTI4LjkgNzcuNy0zLjQgMjIuOSAyNi45IDI2LjYgMzguNiA0IDMuNy03LjEgNDUuNy05Mi42IDQ5LjQtOTguMyA0LjMtNi4zIDcuNC04LjMgMTEuNy04IDMuMSAwIDguMyAuOSA3LjEgMTAuOS0xLjQgOS40LTM1LjEgNzIuMy0zOC45IDg3LjctNC42IDIwLjYgNi42IDQxLjQgMjQuOSA1MC42IDExLjQgNS43IDYyLjUgMTUuNyA1OC41LTExLjF6bTUuNyA5Mi4zYTIzLjMgMjMuMyAwIDEgMCAyNi4yIDM4LjQgMjMuMyAyMy4zIDAgMSAwIC0yNi4yLTM4LjR6Il19LGVjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb250aWNvbnMtZmkiLGljb246WzM4NCw1MTIsW10sImYzYTIiLCJNMTE0LjQgMjI0bDkyLjQgMC0xNS4yIDUxLjItNzYuNCAwIDAgMTU3LjhjMCA4LTIuOCA5LjIgNC40IDEwbDU5LjYgNS42IDAgMzQuNC0xNzkuMiAwIDAtMzUuMiAyOS4yLTIuOGM3LjItLjggOS4yLTMuMiA5LjItMTAuOGwwLTE1NS44YzAtMy4yLTQtMy4yLTgtMy4ybC0zMC40IDAgMC01MS4yIDM4LjQgMCAwLTI4LjhjMC02OCAzNi40LTk2IDEwNi05NiA0Ni44IDAgODguOCAxMS4yIDg4LjggNzIuNEwxNjMuNiAxODBjLjQtMjUuNi02LTMxLjYtMjIuNC0zMS42LTI1LjIgMC0yNiAxMy42LTI2IDM3LjZsMCAzMmMwIDMuMi00LjggNi0uOCA2ek0zODQgNDgzbC0xNDAuOCAwIDAtMzQuNCAyOC0zLjZjNy4yLS44IDEwLjQtMi40IDEwLjQtMTBsMC0xNDhjMC01LjYtNC05LjItOS4yLTEwLjhsLTMzLjItOC44IDkuMi00MC40IDExMCAwIDAgMjA4YzAgOC0zLjYgOC44IDQgMTBsMjEuNiAzLjYgMCAzNC40ek0zNTQgMTM1LjhsMTIuNCA0NS42LTEwIDEwLTQyLjgtMjIuOC00Mi44IDIyLjgtMTAtMTAgMTIuNC00NS42LTMwLTM2LjQgNC44LTEwIDM4IDAgMjEuMi0zOC40IDEyLjggMCAyMS4yIDM4LjQgMzggMCA0LjggMTMuMi0zMCAzMy4yeiJdfSx0Y3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFsZmVkIixpY29uOls1NzYsNTEyLFtdLCJmM2Q4IiwiTTM4NC45IDE5My45YzAtNDcuNC01NS4yLTQ0LjItOTUuNC0yOS44LTEuMyAzOS40LTIuNSA4MC43LTMgMTE5LjggLjcgMi44IDIuNiA2LjIgMTUuMSA2LjIgMzYuOCAwIDgzLjQtNDIuOCA4My4zLTk2LjJ6TTE5MC40IDI2Ni4xYy4yIDAgNi41LTIuNyAxMS4yLTIuNyAyNi42IDAgMjAuNyA0NC4xLTE0LjQgNDQuMS0yMS41IDAtMzcuMS0xOC4xLTM3LjEtNDMgMC00MiA0Mi45LTk1LjYgMTAwLjctMTI2LjUgMS0xMi40IDMtMjIgMTAuNS0yOC4yIDExLjItOSAyNi42LTMuNSAyOS41IDExLjEgNzIuMi0yMi4yIDEzNS4yIDEgMTM1LjIgNzIgMCA3Ny45LTc5LjMgMTUyLjYtMTQwLjEgMTM4LjItLjEgMzkuNCAuOSA3NC40IDIuNyAxMDBsMCAuMmMuMiAzLjQgLjYgMTIuNS01LjMgMTkuMS05LjYgMTAuNi0zMy40IDEwLTM2LjQtMjIuMy00LjEtNDQuNCAuMi0yMDYuMSAxLjQtMjQyLjUtMjEuNSAxNS01OC41IDUwLjMtNTguNSA3NS45IC4yIDIuNSAuNCA0IC42IDQuNnpNOCAxODEuMXMtLjEgMzcuNCAzOC40IDM3LjRsMzAgMCAyMi40IDIxNy4yczAgNDQuMyA0NC43IDQ0LjNsMjg4LjkgMHM0NC43LS40IDQ0LjctNDQuM2wyMi40LTIxNy4yIDMwIDBzMzguNCAxLjIgMzguNC0zNy40YzAgMCAuMS0zNy40LTM4LjQtMzcuNGwtMzAuMSAwYy03LjMtMjUuNi0zMC4yLTc0LjMtMTE5LjQtNzQuM2wtMjggMCAwLTE5LjFzLTIuNy0xOC40LTIxLjEtMTguNGwtODUuOCAwUzIyNCAzMS45IDIyNCA1MC4zbDAgMTkuMS0yOC4xIDBzLTEwNSA0LjItMTIwLjUgNzQuM2wtMjkgMFM4IDE0Mi41IDggMTgxLjF6Il19LHJjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3cGJlZ2lubmVyIixpY29uOls1MTIsNTEyLFtdLCJmMjk3IiwiTTQ2My4yIDMyMi40YzU2LjIgNjQuMyA0LjIgMTU3LjYtOTEuOSAxNTcuNi0zOS42IDAtNzguOC0xNy43LTEwMC4xLTUwLTYuOSAuNC0yMi43IC40LTI5LjYgMC0yMS40IDMyLjQtNjAuNiA1MC0xMDAuMSA1MC05NS41IDAtMTQ4LjMtOTMtOTEuOS0xNTcuNi03OS4xLTEzMS45IDMxLjMtMjkwLjQgMjA2LjgtMjkwLjQgMTc1LjYgMCAyODUuOSAxNTguNiAyMDYuOCAyOTAuNHptLTMzOS42LTgzbDQxLjUgMCAwLTU4LjEtNDEuNSAwIDAgNTguMXptMjE3LjIgODYuMWwwLTIzLjhjLTYwLjUgMjAuOS0xMzIuNCA5LjItMTg3LjYtMzRsLjIgMjQuOWM1MS4xIDQ2LjQgMTMxLjcgNTcuOSAxODcuMyAzMi45ek0xOTAgMjM5LjRsMTY2LjEgMCAwLTU4LjEtMTY2LjEgMCAwIDU4LjF6Il19LGljdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaWFzcG9yYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc5MSIsIk0yMTkuNyAzNTQuNmMtMS40IDAtODggMTE5LjktODguNyAxMTkuOVM0NC40IDQxNCA0NCA0MTMuMyAxMzAuNiAyODcuNSAxMzAuNiAyODUuOGMwLTIuMi0xMjkuNi00NC0xMzcuNi00Ny4xLTEuMy0uNSAzMS40LTEwMS44IDMxLjctMTAyLjEgLjYtLjcgMTQ0LjQgNDcgMTQ1LjUgNDcgLjQgMCAuOS0uNiAxLTEuMyAuNC0yIDEtMTQ4LjYgMS43LTE0OS42IC44LTEuMiAxMDQuNS0uNyAxMDUuMS0uMyAxLjUgMSAzLjUgMTU2LjEgNi4xIDE1Ni4xIDEuNCAwIDEzOC43LTQ3IDEzOS4zLTQ2LjMgLjggLjkgMzEuOSAxMDIuMiAzMS41IDEwMi42LS45IC45LTE0MC4yIDQ3LjEtMTQwLjYgNDguOC0uMyAxLjQgODIuOCAxMjIuMSA4Mi41IDEyMi45cy04NS41IDYzLjUtODYuMyA2My41Yy0xLS4yLTg5LTEyNS41LTkwLjktMTI1LjVsMCAweiJdfSxhY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHJvZHVjdC1odW50IixpY29uOls1MTIsNTEyLFtdLCJmMjg4IiwiTTMyNi4zIDIxOC44YzAgMjAuNS0xNi43IDM3LjItMzcuMiAzNy4ybC03MC4zIDAgMC03NC40IDcwLjMgMGMyMC41IDAgMzcuMiAxNi43IDM3LjIgMzcuMnpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzY3LjktMzcuMmMwLTQ3LjktMzguOS04Ni44LTg2LjgtODYuOGwtMTE5LjkgMCAwIDI0OCA0OS42IDAgMC03NC40IDcwLjMgMGM0Ny45IDAgODYuOC0zOC45IDg2LjgtODYuOHoiXX0sbmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS11cHdvcmsiLGljb246WzQ0OCw1MTIsW10sImU2N2MiLCJNNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAzMzZjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNDgwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDg4QzAgNTcuMSAyNS4xIDMyIDU2IDMyek0yNzAuOSAyNzQuMmM2LjYtNTIuOSAyNS45LTY5LjUgNTEuNC02OS41IDI1LjMgMCA0NC45IDIwLjIgNDQuOSA0OS43cy0xOS43IDQ5LjctNDQuOSA0OS43Yy0yNy45IDAtNDYuMy0yMS41LTUxLjQtMjkuOXptLTI2LjctNDEuOGMtOC4yLTE1LjUtMTQuMy0zNi4zLTE5LjItNTUuNmwtNjIuOSAwIDAgNzguMWMwIDI4LjQtMTIuOSA0OS40LTM4LjIgNDkuNFM4NC4xIDI4My40IDg0LjEgMjU1bC4zLTc4LjEtMzYuMiAwIDAgNzguMWMwIDIyLjggNy40IDQzLjUgMjAuOSA1OC4yIDEzLjkgMTUuMiAzMi44IDIzLjIgNTQuOCAyMy4yIDQzLjcgMCA3NC4yLTMzLjUgNzQuMi04MS41bDAtNTIuNWM0LjYgMTcuMyAxNS40IDUwLjUgMzYuMiA3OS43bC0xOS4zIDExMC41IDM2LjggMCAxMi44LTc4LjRjNC4yIDMuNSA4LjcgNi42IDEzLjQgOS40IDEyLjMgNy44IDI2LjQgMTIuMiA0MC45IDEyLjZsMy40IDBjNDUuMSAwIDgwLjktMzQuOSA4MC45LTgxLjlzLTM1LjktODIuMi04MC45LTgyLjJjLTQ1LjQgMC03MC45IDI5LjctNzguMSA2MC4xbDAgLjJ6Il19LG9jdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjdXR0bGVmaXNoIixpY29uOls0NDgsNTEyLFtdLCJmMzhjIiwiTTM0OCAzMDUuNWMtMTcuNSAzMS42LTU3LjQgNTQuNS05NiA1NC41LTU2LjYgMC0xMDQtNDcuNC0xMDQtMTA0czQ3LjQtMTA0IDEwNC0xMDRjMzguNiAwIDc4LjUgMjIuOSA5NiA1NC41IDEzLjctNTAuOSA0MS43LTkzLjMgODctMTE3LjgtNDUuMy00OS42LTExMC41LTgwLjctMTgzLTgwLjctMTM3IDAtMjQ4IDExMS0yNDggMjQ4UzExNSA1MDQgMjUyIDUwNGM3Mi41IDAgMTM3LjctMzEuMSAxODMtODAuNy00NS4zLTI0LjUtNzMuMy02Ni45LTg3LTExNy44eiJdfSxzY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWVkYXBwcyIsaWNvbjpbMzIwLDUxMixbXSwiZjNjNiIsIk0xMTguMyAyMzguNGMzLjUtMTIuNSA2LjktMzMuNiAxMy4yLTMzLjYgOC4zIDEuOCA5LjYgMjMuNCAxOC42IDM2LjYgNC42LTIzLjUgNS4zLTg1LjEgMTQuMS04Ni43IDktLjcgMTkuNyA2Ni41IDIyIDc3LjUgOS45IDQuMSA0OC45IDYuNiA0OC45IDYuNiAxLjkgNy4zLTI0IDcuNi00MCA3LjgtNC42IDE0LjgtNS40IDI3LjctMTEuNCAyOC00LjcgLjItOC4yLTI4LjgtMTcuNS00OS42bC05LjQgNjUuNWMtNC40IDEzLTE1LjUtMjIuNS0yMS45LTM5LjMtMy4zLS4xLTYyLjQtMS42LTQ3LjYtNy44bDMxLTV6TTIyOCA0NDhjMjEuMiAwIDIxLjItMzIgMC0zMkw5MiA0MTZjLTIxLjIgMC0yMS4yIDMyIDAgMzJsMTM2IDB6bS0yNCA2NGMyMS4yIDAgMjEuMi0zMiAwLTMybC04OCAwYy0yMS4yIDAtMjEuMiAzMiAwIDMybDg4IDB6bTM0LjItMTQxLjVjMy4yLTE4LjkgNS4yLTM2LjQgMTEuOS00OC44IDcuOS0xNC43IDE2LjEtMjguMSAyNC00MSAyNC42LTQwLjQgNDUuOS03NS4yIDQ1LjktMTI1LjUgMC04NS42LTcxLjgtMTU1LjItMTYwLTE1NS4yUzAgNjkuNiAwIDE1NS4yYzAgNTAuMiAyMS4zIDg1LjEgNDUuOSAxMjUuNSA3LjkgMTIuOSAxNiAyNi4zIDI0IDQxIDYuNyAxMi41IDguNyAyOS44IDExLjkgNDguOSAzLjUgMjEgMzYuMSAxNS43IDMyLjYtNS4xLTMuNi0yMS43LTUuNi00MC43LTE1LjMtNTguNi0zMi42LTYwLjQtNjYuMS05NS42LTY2LjEtMTUxLjcgMC02Ny45IDU3LTEyMy4yIDEyNy0xMjMuMlMyODcgODcuMyAyODcgMTU1LjJjMCA1Ni4xLTMzLjUgOTEuMy02Ni4xIDE1MS42LTkuNyAxOC0xMS43IDM3LjQtMTUuMyA1OC42LTMuNCAyMC42IDI5IDI2LjQgMzIuNiA1LjF6Il19LGxjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaXgiLGljb246WzUxMiw1MTIsW10sImU0M2EiLCJNMjQyLjQgMjkyLjVjNS40LTUuNCAxNC43LTUuNCAyMC4xIDBsNzcgNzdjMTQuMiAxNC4yIDMzLjEgMjIgNTMuMSAyMmwxNS4xIDAtOTcuMSA5Ny4xYy0zMC4zIDI5LjUtNzkuNSAyOS41LTEwOS44IDBsLTk3LjUtOTcuNCA5LjMgMGMyMCAwIDM4LjktNy44IDUzLjEtMjJsNzYuNy03Ni43em0yMC4xLTczLjZjLTYuNCA1LjUtMTQuNiA1LjYtMjAuMSAwbC03Ni43LTc2LjdjLTE0LjItMTUuMS0zMy4xLTIyLTUzLjEtMjJsLTkuMyAwIDk3LjQtOTcuNGMzMC40LTMwLjMgNzkuNi0zMC4zIDEwOS45IDBsOTcuMiA5Ny4xLTE1LjIgMGMtMjAgMC0zOC45IDcuOC01My4xIDIybC03NyA3N3pNMTEyLjYgMTQyLjdjMTMuOCAwIDI2LjUgNS42IDM3LjEgMTUuNGw3Ni43IDc2LjdjNy4yIDYuMyAxNi42IDEwLjggMjYuMSAxMC44IDkuNCAwIDE4LjgtNC41IDI2LTEwLjhsNzctNzdjOS44LTkuNyAyMy4zLTE1LjMgMzcuMS0xNS4zbDM3LjcgMCA1OC4zIDU4LjNjMzAuMyAzMC4zIDMwLjMgNzkuNSAwIDEwOS44bC01OC4zIDU4LjMtMzcuNyAwYy0xMy44IDAtMjcuMy01LjYtMzcuMS0xNS40bC03Ny03N2MtMTMuOS0xMy45LTM4LjItMTMuOS01Mi4xIC4xbC03Ni43IDc2LjZjLTEwLjYgOS44LTIzLjMgMTUuNC0zNy4xIDE1LjRsLTMxLjggMC01OC01OGMtMzAuMy0zMC4zLTMwLjMtNzkuNSAwLTEwOS44bDU4LTU4LjEgMzEuOCAweiJdfSxubmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXR1bWJsciIsaWNvbjpbNDQ4LDUxMixbInR1bWJsci1zcXVhcmUiXSwiZjE3NCIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjU2LjggNDE2Yy03NS41IDAtOTEuOS01NS41LTkxLjktODcuOWwwLTkwLTI5LjcgMGMtMy40IDAtNi4yLTIuOC02LjItNi4ybDAtNDIuNWMwLTQuNSAyLjgtOC41IDcuMS0xMCAzOC44LTEzLjcgNTAuOS00Ny41IDUyLjctNzMuMiAuNS02LjkgNC4xLTEwLjIgMTAtMTAuMmw0NC4zIDBjMy40IDAgNi4yIDIuOCA2LjIgNi4ybDAgNzIgNTEuOSAwYzMuNCAwIDYuMiAyLjggNi4yIDYuMmwwIDUxLjFjMCAzLjQtMi44IDYuMi02LjIgNi4ybC01Mi4xIDAgMCA4My4zYzAgMjEuNCAxNC44IDMzLjUgNDIuNSAyMi40IDMtMS4yIDUuNi0yIDgtMS40IDIuMiAuNSAzLjYgMi4xIDQuNiA0LjlMMzE4IDM4Ny4xYzEgMy4yIDIgNi43LS4zIDkuMS04LjUgOS4xLTMxLjIgMTkuOC02MC45IDE5Ljh6Il19LGNjdD1ubmUsZGN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlYWN0IixpY29uOls1MTIsNTEyLFtdLCJmNDFiIiwiTTQxOC4yIDE3Ny4yYy01LjQtMS44LTEwLjgtMy41LTE2LjItNS4xIC45LTMuNyAxLjctNy40IDIuNS0xMS4xIDEyLjMtNTkuNiA0LjItMTA3LjUtMjMuMS0xMjMuMy0yNi4zLTE1LjEtNjkuMiAuNi0xMTIuNiAzOC40LTQuMyAzLjctOC41IDcuNi0xMi41IDExLjUtMi43LTIuNi01LjUtNS4yLTguMy03LjctNDUuNS00MC40LTkxLjEtNTcuNC0xMTguNC00MS41LTI2LjIgMTUuMi0zNCA2MC4zLTIzIDExNi43IDEuMSA1LjYgMi4zIDExLjEgMy43IDE2LjctNi40IDEuOC0xMi43IDMuOC0xOC42IDUuOS01My40IDE4LjUtOTEuNyA0Ny43LTkxLjcgNzcuOSAwIDMxLjIgNDAuOCA2Mi41IDk2LjMgODEuNSA0LjUgMS41IDkgMyAxMy42IDQuMy0xLjUgNi0yLjggMTEuOS00IDE4LTEwLjUgNTUuNS0yLjMgOTkuNSAyMy45IDExNC42IDI3IDE1LjYgNzIuNC0uNCAxMTYuNi0zOS4xIDMuNS0zLjEgNy02LjMgMTAuNS05LjcgNC40IDQuMyA5IDguNCAxMy42IDEyLjQgNDIuOCAzNi44IDg1LjEgNTEuNyAxMTEuMiAzNi42IDI3LTE1LjYgMzUuOC02Mi45IDI0LjQtMTIwLjUtLjktNC40LTEuOS04LjktMy0xMy41IDMuMi0uOSA2LjMtMS45IDkuNC0yLjkgNTcuNy0xOS4xIDk5LjUtNTAgOTkuNS04MS43IDAtMzAuMy0zOS40LTU5LjctOTMuOC03OC40ek0yODIuOSA5Mi4zYzM3LjItMzIuNCA3MS45LTQ1LjEgODcuNy0zNiAxNi45IDkuNyAyMy40IDQ4LjkgMTIuOCAxMDAuNC0uNyAzLjQtMS40IDYuNy0yLjMgMTAtMjIuMi01LTQ0LjctOC42LTY3LjMtMTAuNi0xMy0xOC42LTI3LjItMzYuNC00Mi42LTUzLjEgMy45LTMuNyA3LjctNy4yIDExLjctMTAuN3pNMTY3LjIgMzA3LjVjNS4xIDguNyAxMC4zIDE3LjQgMTUuOCAyNS45LTE1LjYtMS43LTMxLjEtNC4yLTQ2LjQtNy41IDQuNC0xNC40IDkuOS0yOS4zIDE2LjMtNDQuNSA0LjYgOC44IDkuMyAxNy41IDE0LjMgMjYuMXpNMTM2LjkgMTg3LjJjMTQuNC0zLjIgMjkuNy01LjggNDUuNi03LjgtNS4zIDguMy0xMC41IDE2LjgtMTUuNCAyNS40LTQuOSA4LjUtOS43IDE3LjItMTQuMiAyNi02LjMtMTQuOS0xMS42LTI5LjUtMTYtNDMuNnptMjcuNCA2OC45YzYuNi0xMy44IDEzLjgtMjcuMyAyMS40LTQwLjZzMTUuOC0yNi4yIDI0LjQtMzguOWMxNS0xLjEgMzAuMy0xLjcgNDUuOS0xLjdzMzEgLjYgNDUuOSAxLjdjOC41IDEyLjYgMTYuNiAyNS41IDI0LjMgMzguN3MxNC45IDI2LjcgMjEuNyA0MC40Yy02LjcgMTMuOC0xMy45IDI3LjQtMjEuNiA0MC44LTcuNiAxMy4zLTE1LjcgMjYuMi0yNC4yIDM5LTE0LjkgMS4xLTMwLjQgMS42LTQ2LjEgMS42cy0zMC45LS41LTQ1LjYtMS40Yy04LjctMTIuNy0xNi45LTI1LjctMjQuNi0zOXMtMTQuOC0yNi44LTIxLjUtNDAuNnptMTgwLjYgNTEuMmM1LjEtOC44IDkuOS0xNy43IDE0LjYtMjYuNyA2LjQgMTQuNSAxMiAyOS4yIDE2LjkgNDQuMy0xNS41IDMuNS0zMS4yIDYuMi00NyA4IDUuNC04LjQgMTAuNS0xNyAxNS41LTI1LjZ6bTE0LjQtNzYuNWMtNC43LTguOC05LjUtMTcuNi0xNC41LTI2LjItNC45LTguNS0xMC0xNi45LTE1LjMtMjUuMiAxNi4xIDIgMzEuNSA0LjcgNDUuOSA4LTQuNiAxNC44LTEwIDI5LjItMTYuMSA0My40ek0yNTYuMiAxMTguM2MxMC41IDExLjQgMjAuNCAyMy40IDI5LjYgMzUuOC0xOS44LS45LTM5LjctLjktNTkuNSAwIDkuOC0xMi45IDE5LjktMjQuOSAyOS45LTM1Ljh6TTE0MC4yIDU3YzE2LjgtOS44IDU0LjEgNC4yIDkzLjQgMzkgMi41IDIuMiA1IDQuNiA3LjYgNy0xNS41IDE2LjctMjkuOCAzNC41LTQyLjkgNTMuMS0yMi42IDItNDUgNS41LTY3LjIgMTAuNC0xLjMtNS4xLTIuNC0xMC4zLTMuNS0xNS41LTkuNC00OC40LTMuMi04NC45IDEyLjYtOTR6TTExNS43IDMyMC42Yy00LjItMS4yLTguMy0yLjUtMTIuNC0zLjktMjEuMy02LjctNDUuNS0xNy4zLTYzLTMxLjItMTAuMS03LTE2LjktMTcuOC0xOC44LTI5LjkgMC0xOC4zIDMxLjYtNDEuNyA3Ny4yLTU3LjYgNS43LTIgMTEuNS0zLjggMTcuMy01LjUgNi44IDIxLjcgMTUgNDMgMjQuNSA2My42LTkuNiAyMC45LTE3LjkgNDIuNS0yNC44IDY0LjV6bTExNi42IDk4Yy0xNi41IDE1LjEtMzUuNiAyNy4xLTU2LjQgMzUuMy0xMS4xIDUuMy0yMy45IDUuOC0zNS4zIDEuMy0xNS45LTkuMi0yMi41LTQ0LjUtMTMuNS05MiAxLjEtNS42IDIuMy0xMS4yIDMuNy0xNi43IDIyLjQgNC44IDQ1IDguMSA2Ny45IDkuOCAxMy4yIDE4LjcgMjcuNyAzNi42IDQzLjIgNTMuNC0zLjIgMy4xLTYuNCA2LjEtOS42IDguOXptMjQuNS0yNC4zYy0xMC4yLTExLTIwLjQtMjMuMi0zMC4zLTM2LjMgOS42IC40IDE5LjUgLjYgMjkuNSAuNiAxMC4zIDAgMjAuNC0uMiAzMC40LS43LTkuMiAxMi43LTE5LjEgMjQuOC0yOS42IDM2LjR6bTEzMC43IDMwYy0uOSAxMi4yLTYuOSAyMy42LTE2LjUgMzEuMy0xNS45IDkuMi00OS44LTIuOC04Ni40LTM0LjItNC4yLTMuNi04LjQtNy41LTEyLjctMTEuNSAxNS4zLTE2LjkgMjkuNC0zNC44IDQyLjItNTMuNiAyMi45LTEuOSA0NS43LTUuNCA2OC4yLTEwLjUgMSA0LjEgMS45IDguMiAyLjcgMTIuMiA0LjkgMjEuNiA1LjcgNDQuMSAyLjUgNjYuM3ptMTguMi0xMDcuNWMtMi44IC45LTUuNiAxLjgtOC41IDIuNi03LTIxLjgtMTUuNi00My4xLTI1LjUtNjMuOCA5LjYtMjAuNCAxNy43LTQxLjQgMjQuNS02Mi45IDUuMiAxLjUgMTAuMiAzLjEgMTUgNC43IDQ2LjYgMTYgNzkuMyAzOS44IDc5LjMgNTggMCAxOS42LTM0LjkgNDQuOS04NC44IDYxLjR6TTI1NiAzMDEuOGE0NS44IDQ1LjggMCAxIDAgMC05MS42IDQ1LjggNDUuOCAwIDEgMCAwIDkxLjZ6Il19LHVjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJodWdnaW5nLWZhY2UiLGljb246WzU3Niw1MTIsW10sImU4NjkiLCJNMjg2LjggOC4yYzEzMCAwIDIzNS40IDEwNS44IDIzNS40IDIzNi4zIDAgMTcuNy0xLjkgMzUtNS42IDUxLjctMS40IDYuNS0zLjEgMTIuOC01LjEgMTkuMSA2LjUtLjYgMTMgLjYgMTguNyAzLjUgMTIuNiA2LjUgMjAuMiAyMS43IDE4LjIgMzUuNy0uNyA0LjktMi40IDkuNC00LjggMTMuNSA1LjIgNC4yIDkgMTAuMSAxMC44IDE3LjEgMS40IDUuNSAyLjkgMTcuMS00LjggMjguOSA1LjggOS4yIDYuNiAyMC42IDIuMiAzMC42LTYuMiAxNC4xLTIxLjcgMjUuMy01MS43IDM3LjMtMzIuNSAxMy02Ny4xIDIxLjktMTAyLjMgMjEuOS0zMiAwLTU1LjktOC45LTcxLTI2LjQtMTMgMi4yLTI2LjMgMy40LTQwIDMuNC0xMi43IDAtMjUuMi0xLTM3LjMtMi45LTE1LjEgMTcuMi0zOC44IDI1LjktNzAuNiAyNS45LTM1LjEgMC03MC05LTEwMi40LTIxLjktMzAtMTItNDUuNS0yMy4xLTUxLjctMzcuMy00LjQtOS45LTMuNi0yMS40IDIuMi0zMC42LTcuNy0xMS45LTYuMy0yMy40LTQuOC0yOC45IDEuOC03IDUuNy0xMi45IDEwLjgtMTcuMS0yLjUtNC4xLTQuMS04LjYtNC44LTEzLjUtMS41LTEwLjQgMi0yMC43IDkuNy0yOS4yIDYuMS02LjcgMTUuMS0xMC4zIDI0LjItMTAuMi0xLjktNi4xLTMuNi0xMi40LTUtMTguNy0zLjctMTYuNy01LjctMzQtNS43LTUxLjggMC0xMzAuNSAxMDUuNC0yMzYuMyAyMzUuNC0yMzYuM3pNMTE3LjUgMzExYy0xMy04LjItMjIuMS0zLjYtMTkgMTMuNHM1Ny4yIDU4LjIgNTIgNjcuMmMtNS4yIDguOC0yMy41LTEwLjEtMjMuOC0xMC41IDAgMC01OC4yLTUzLjEtNzAuOC0zOS4zLTEyLjYgMTMuOCA5LjYgMjUuNCA0MS4zIDQ0LjdzMzQuMiAyNC40IDI5LjcgMzEuNy03NC41LTUyLTgxLjEtMjYuOGMtNi41IDI1LjEgNzEuNCAzMi40IDY2LjcgNDkuOC00LjggMTcuNC01NC45LTMyLjgtNjUuMi0xMy4zLTEwLjMgMTkuNiA3MC44IDQyLjYgNzEuNCA0Mi43IDI2LjIgNi44IDkyLjYgMjEuMyAxMTUuOS0xMi45IDE2LjctMjQuNiAxNS42LTQzLjEtNy40LTY2LjFzLTM2LjMtNTYuNy0zNi4zLTU2LjdjMC0uMi01LTE5LjUtMTYuMy0xNy44LTExLjQgMS44LTE5LjcgMzEgNC4xIDQ4LjkgMjMuOCAxNy45LTQuNyAzMC0xMy45IDEzLjMtOS4yLTE2LjgtMzQuMi01OS45LTQ3LjEtNjguMnptMzYwLjYgMTMuNGMzLjEtMTctNi4xLTIxLjYtMTktMTMuNC0xMyA4LjMtMzcuOSA1MS40LTQ3LjEgNjguMnMtMzcuNyA0LjYtMTMuOS0xMy4zIDE1LjQtNDcuMSA0LjEtNDguOS0xNi4zIDE3LjgtMTYuMyAxNy44Yy0uMSAuMi0xMy40IDMzLjctMzYuMyA1Ni43LTIyLjkgMjMtMjQuMSA0MS41LTcuNCA2Ni4xIDIzLjIgMzQuMiA4OS43IDE5LjcgMTE1LjkgMTIuOSAxLjUtLjQgODEuNi0yMy4zIDcxLjQtNDIuNy0xMC4zLTE5LjUtNjAuNCAzMC42LTY1LjMgMTMuMy00LjgtMTcuMyA3My4yLTI0LjYgNjYuNy00OS44LTYuNi0yNS4xLTc2LjYgMzQuMS04MS4xIDI2LjgtNC41LTcuMy0yLTEyLjQgMjkuNy0zMS43IDMxLjctMTkuMyA1NC0zMC45IDQxLjMtNDQuNy0xMi43LTEzLjgtNzAuOCAzOS4zLTcwLjggMzkuMy0uNCAuNC0xOC42IDE5LjMtMjMuOCAxMC41LTUuMy04LjkgNDguOS01MC4xIDUyLTY3LjJ6TTI4Ni44IDMyLjZjLTExNi42IDAtMjExLjEgOTQuOS0yMTEuMSAyMTEuOSAwIDE3LjEgMiAzMy44IDUuOCA0OS43IDAtLjEgLjEtLjEgLjItLjIgNi4xLTcuNCAxNC45LTExLjQgMjQuNy0xMS40IDE3LjcgMCAzMS4xIDExLjkgNDEuNSAyNC45IDYuOC05LjQgMTcuMS0xNSAyNy45LTE1IDIwLjcgMCAzMy4yIDE4LjEgMzcuOSAzNC4zIDIuMyA1LjUgMTMuNiAzMC41IDMwLjQgNDcuNCAyNS43IDI1LjggMzIuMiA1Mi40IDE5LjQgODAuOSAxNiAxLjggMzIuOCAxLjcgNDkuMi0uMy0xMi41LTI4LjQtNi01NC45IDE5LjYtODAuNiAxNi45LTE2LjkgMjguMS00MS45IDMwLjUtNDcuNCA0LjctMTYuMiAxNy4yLTM0LjMgMzcuOS0zNC4zIDEwLjkgMCAyMS4yIDUuNiAyNy45IDE1IDEwLjQtMTMgMjMuOC0yNC45IDQxLjUtMjQuOSA4LjcgMCAxNi42IDMuMSAyMi41IDguOSA1LTIyIDYuNC00NS44IDQuMS02OC43LTEwLjgtMTA2LjktMTAwLjctMTkwLjMtMjEwLTE5MC4zem0xLjUgMjM0LjJjNDMuNiAwIDc5LTQyIDc5LTE0LjUgMCAyNy40LTE5LjIgODAuOS03OC44IDgwLjktMTkuMiAwLTM0LjItNS41LTQ1LjgtMTMuOS0yMy4yLTE5LjQtMzMuNC00OC4yLTMzLjQtNjYuOSAwLTI3LjQgMzUuNCAxNC41IDc5IDE0LjV6bS0xMy4zIDI1Yy04LjIgMi40LTE1LjUgNi44LTIxLjUgMTIuNiAyMiAxMi44IDUwLjQgMTIuOSA3MS43LTEuMy01LjUtNC45LTEyLTguNy0xOS4xLTExLTUuMS0xLjYtMTAuNCAxNS44LTE2IDE1LjgtNS4yIDAtMTAuMy0xNy42LTE1LjEtMTYuMnpNMTQ3LjEgMjE1LjVhMTkuOCAxOS44IDAgMSAxIDAtMzkuNiAxOS44IDE5LjggMCAxIDEgMCAzOS42em0yODIuNCAwYTE5LjggMTkuOCAwIDEgMSAwLTM5LjYgMTkuOCAxOS44IDAgMSAxIDAgMzkuNnptLTI0NC01NS40YzcuOS0xNC45IDI2LjMtMjAuNSA0MS4xLTEyLjZzMjAuNCAyNi40IDEyLjYgNDEuMmMtMy43IDctMTUuNS00LjQtMjIuNC0xLjktNy43IDIuNy0xMC44IDE4LjctMTguNiAxNC42LTE0LjgtNy45LTIwLjQtMjYuNC0xMi42LTQxLjJ6bTE2NC40LTEyLjZjMTQuOC03LjkgMzMuMi0yLjMgNDEuMSAxMi42czIuMiAzMy4zLTEyLjYgNDEuMmMtNy44IDQuMi0xMC45LTExLjgtMTguNy0xNC42LTYuOS0yLjQtMTguNyA5LTIyLjQgMS45LTcuOS0xNC45LTIuMi0zMy4zIDEyLjYtNDEuMnoiXX0scGN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imp4bCIsaWNvbjpbNDQ4LDUxMixbXSwiZTY3YiIsIk00MTIuMiAzMkwzNS44IDMyQzE2IDMyIDAgNDggMCA2Ny44TDAgNDQ0LjJDMCA0NjQgMTYgNDgwIDM1LjggNDgwbDM3Ni40IDBjMTkuOCAwIDM1LjgtMTYgMzUuOC0zNS44bDAtMzc2LjRDNDQ4IDQ4IDQzMiAzMiA0MTIuMiAzMnpNMzc4LjYgMzMzLjdjMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhsLTIzNS42IDBjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhsMjM1LjYgMHptMC0xMTMuOWMwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOGwtMjM1LjYgMGMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOGwyMzUuNiAwem0wLTExMy45YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44bC0yMzUuNiAwYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44bDIzNS42IDB6Il19LGhjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtbGlua2VkaW4iLGljb246WzQ0OCw1MTIsW10sImU3ZDAiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNSAxNzAuMmw2Ni41IDAgMCAyMTMuOC02Ni41IDAgMC0yMTMuOHptNzEuNy02Ny43YTM4LjUgMzguNSAwIDEgMSAtNzcgMCAzOC41IDM4LjUgMCAxIDEgNzcgMHpNMzE3LjkgNDE2bDAtMTA0YzAtMjQuOC0uNS01Ni43LTM0LjUtNTYuNy0zNC42IDAtMzkuOSAyNy0zOS45IDU0LjlsMCAxMDUuOC02Ni40IDAgMC0yMTMuOCA2My43IDAgMCAyOS4yIC45IDBjOC45LTE2LjggMzAuNi0zNC41IDYyLjktMzQuNSA2Ny4yIDAgNzkuNyA0NC4zIDc5LjcgMTAxLjlsMCAxMTcuMi02Ni40IDB6Il19LGZjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjc3MiLGljb246WzQ0OCw1MTIsW10sImU2YTIiLCJNMzc2LjMgMzJMMCAzMiAwIDQwOC4zYzAgMTkgNy42IDM3LjIgMjEgNTAuN3MzMS43IDIxIDUwLjcgMjFsMzA0LjYgMGMxOSAwIDM3LjItNy42IDUwLjctMjFzMjEtMzEuNyAyMS01MC43bDAtMzA0LjZjMC0xOS03LjYtMzcuMi0yMS01MC43cy0zMS43LTIxLTUwLjctMjF6TTMzMi40IDQzMS40Yy03LjctOC41LTExLjctMjAuNy0xMi0zNi42bDMxLjMgMGMuMiAxNC4xIDUuMSAyMS4xIDE0LjggMjEuMWM0LjkgMCA4LjQtMS42IDEwLjUtNC43YzItMy4xIDMtOCAzLTE0LjhjMC01LjQtMS4zLTkuOS00LTEzLjRjLTMuNS00LjItOC4xLTcuNS0xMy4yLTkuNUwzNTEuMiAzNjhjLTEwLjMtNC45LTE3LjgtMTAuOC0yMi41LTE3LjZjLTQuNS02LjgtNi43LTE2LjMtNi43LTI4LjRjMC0xMy42IDQtMjQuNiAxMS44LTMzLjFjOC4xLTguNSAxOS4xLTEyLjcgMzMuMi0xMi43YzEzLjYgMCAyNC4xIDQuMiAzMS41IDEyLjVjNy41IDguNCAxMS41IDIwLjMgMTEuOCAzNS45bC0zMC4xIDBjLjItNS4xLS45LTEwLjItMy0xNC44Yy0xLjctMy40LTUtNS4xLTEwLTUuMWMtOC44IDAtMTMuMiA1LjItMTMuMiAxNS43YzAgNS4zIDEuMSA5LjQgMy4yIDEyLjZjMy4xIDMuNSA3IDYuMiAxMS40IDcuOGwxMS4xIDQuOWMxMS41IDUuMyAxOS43IDExLjcgMjQuOCAxOS40YzUuMSA3LjcgNy42IDE4IDcuNiAzMWMwIDE1LjUtNCAyNy40LTEyLjMgMzUuN2MtOC4yIDguMy0xOS41IDEyLjUtMzQuMSAxMi41cy0yNS42LTQuMi0zMy40LTEyLjd6bS0xMDEgMGMtNy43LTguNS0xMS43LTIwLjctMTItMzYuNmwzMS4zIDBjLjIgMTQuMSA1LjEgMjEuMSAxNC44IDIxLjFjNC45IDAgOC40LTEuNiAxMC40LTQuN2MyLTMuMSAzLTggMy0xNC44YzAtNS40LTEuMy05LjktMy45LTEzLjRjLTMuNS00LjItOC4xLTcuNS0xMy4yLTkuNUwyNTAuMiAzNjhjLTEwLjMtNC45LTE3LjgtMTAuOC0yMi41LTE3LjZjLTQuNS02LjgtNi43LTE2LjMtNi43LTI4LjRjMC0xMy42IDQtMjQuNiAxMS44LTMzLjFjOC4xLTguNSAxOS4xLTEyLjcgMzMuMi0xMi43YzEzLjYgMCAyNC4xIDQuMiAzMS40IDEyLjVjNy42IDguNCAxMS41IDIwLjMgMTEuOSAzNS45bC0zMC4xIDBjLjItNS4xLS45LTEwLjItMy0xNC44Yy0xLjctMy40LTUtNS4xLTEwLTUuMWMtOC44IDAtMTMuMiA1LjItMTMuMiAxNS43YzAgNS4zIDEuMSA5LjQgMy4yIDEyLjZjMy4xIDMuNSA3IDYuMiAxMS40IDcuOGwxMS4xIDQuOWMxMS41IDUuMyAxOS43IDExLjcgMjQuOCAxOS40YzUuMSA3LjcgNy42IDE4IDcuNiAzMWMwIDE1LjUtNC4xIDI3LjQtMTIuMyAzNS43cy0xOS41IDEyLjUtMzQuMSAxMi41cy0yNS42LTQuMi0zMy40LTEyLjd6bS0xMDUuNiAxLjFjLTguNC03LjctMTIuNS0xOS4yLTEyLjUtMzQuNWwwLTc1LjRjMC0xNS4yIDQuNC0yNi43IDEzLjItMzQuNmM4LjktNy44IDIwLjctMTEuOCAzNS4yLTExLjhjMTQuMSAwIDI1LjIgNCAzMy40IDEyYzguMyA4IDEyLjUgMjAgMTIuNSAzNS45bDAgNi0zMy4xIDAgMC01LjhjMC02LjEtMS4zLTEwLjctNC0xMy42Yy0xLjEtMS41LTIuNi0yLjctNC4zLTMuNXMtMy41LTEuMi01LjQtMS4xYy01LjQgMC05LjIgMS44LTExLjQgNS42Yy0yLjMgNS4yLTMuMyAxMC44LTMgMTYuNGwwIDY1LjVjMCAxMy43IDQuOCAyMC42IDE0LjQgMjAuOGM0LjUgMCA3LjktMS42IDEwLjItNC44YzIuNS00LjEgMy43LTguOCAzLjUtMTMuNmwwLTQuOSAzMy4xIDAgMCA1LjFjMCAxMC42LTIuMSAxOS41LTYuMiAyNi42Yy00IDYuOS05LjkgMTIuNS0xNy4xIDE2Yy03LjcgMy43LTE2LjEgNS41LTI0LjYgNS4zYy0xNC4yIDAtMjUuNS0zLjktMzMuOC0xMS42eiJdfSxtY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGFzaG5vZGUiLGljb246WzUxMiw1MTIsW10sImU0OTkiLCJNMzUuNyAxNzEuMWMtNDYuOSA0Ni00Ni45IDEyMi45IDAgMTY5LjhMMTcxLjYgNDc2LjhjNDYgNDYuOSAxMjIuOSA0Ni45IDE2OS44IDBMNDc3LjMgMzQwLjljNDYuOS00Ni45IDQ2LjktMTIzLjggMC0xNjkuOEwzNDEuNCAzNS4yYy00Ni45LTQ2LjktMTIzLjgtNDYuOS0xNjkuOCAwTDM1LjcgMTcxLjF6TTE5NiAxOTYuNWE4NC41IDg0LjUgMCAxIDEgMTIwIDExOSA4NC41IDg0LjUgMCAxIDEgLTEyMC0xMTl6Il19LGdjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJyZWRkaXQtYWxpZW4iLGljb246WzUxMiw1MTIsW10sImYyODEiLCJNMzczIDEzOC42Yy0yNS4yIDAtNDYuMy0xNy41LTUxLjktNDEtMzAuNiA0LjMtNTQuMiAzMC43LTU0LjIgNjIuNGwwIC4yYzQ3LjQgMS44IDkwLjYgMTUuMSAxMjQuOSAzNi4zIDEyLjYtOS43IDI4LjQtMTUuNSA0NS41LTE1LjUgNDEuMyAwIDc0LjcgMzMuNCA3NC43IDc0LjcgMCAyOS44LTE3LjQgNTUuNS00Mi43IDY3LjUtMi40IDg2LjgtOTcgMTU2LjYtMjEzLjIgMTU2LjZTNDUuNSA0MTAuMSA0MyAzMjMuNGMtMjUuNC0xMS45LTQzLTM3LjctNDMtNjcuNyAwLTQxLjMgMzMuNC03NC43IDc0LjctNzQuNyAxNy4yIDAgMzMgNS44IDQ1LjcgMTUuNiAzNC0yMS4xIDc2LjgtMzQuNCAxMjMuNy0zNi40bDAtLjNjMC00NC4zIDMzLjctODAuOSA3Ni44LTg1LjUgNC45LTI0LjIgMjYuMy00Mi40IDUyLjEtNDIuNCAyOS40IDAgNTMuMyAyMy45IDUzLjMgNTMuM3MtMjMuOSA1My4zLTUzLjMgNTMuM3pNMTU3LjUgMjU1LjNjLTIwLjkgMC0zOC45IDIwLjgtNDAuMiA0Ny45czE3LjEgMzguMSAzOCAzOC4xIDM2LjYtOS44IDM3LjgtMzYuOS0xNC43LTQ5LjEtMzUuNy00OS4xbC4xIDB6TTM5NSAzMDMuMWMtMS4yLTI3LjEtMTkuMi00Ny45LTQwLjItNDcuOXMtMzYuOSAyMi0zNS43IDQ5LjEgMTYuOSAzNi45IDM3LjggMzYuOSAzOS4zLTExIDM4LTM4LjFsLjEgMHptLTYwLjEgNzAuOGMxLjUtMy42LTEtNy43LTQuOS04LjEtMjMtMi4zLTQ3LjktMy42LTczLjgtMy42cy01MC44IDEuMy03My44IDMuNmMtMy45IC40LTYuNCA0LjUtNC45IDguMSAxMi45IDMwLjggNDMuMyA1Mi40IDc4LjcgNTIuNHM2NS44LTIxLjYgNzguNy01Mi40eiJdfSxPQT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWt0b2siLGljb246WzQ0OCw1MTIsW10sImUwN2IiLCJNNDQ4LjUgMjA5LjljLTQ0IC4xLTg3LTEzLjYtMTIyLjgtMzkuMmwwIDE3OC43YzAgMzMuMS0xMC4xIDY1LjQtMjkgOTIuNnMtNDUuNiA0OC03Ni42IDU5LjYtNjQuOCAxMy41LTk2LjkgNS4zLTYwLjktMjUuOS04Mi43LTUwLjgtMzUuMy01Ni0zOS04OC45IDIuOS02Ni4xIDE4LjYtOTUuMiA0MC01Mi43IDY5LjYtNjcuNyA2Mi45LTIwLjUgOTUuNy0xNmwwIDg5LjljLTE1LTQuNy0zMS4xLTQuNi00NiAuNHMtMjcuOSAxNC42LTM3IDI3LjMtMTQgMjguMS0xMy45IDQzLjkgNS4yIDMxIDE0LjUgNDMuNyAyMi40IDIyLjEgMzcuNCAyNi45IDMxLjEgNC44IDQ2LS4xIDI4LTE0LjQgMzcuMi0yNy4xIDE0LjItMjguMSAxNC4yLTQzLjhsMC0zNDkuNCA4OCAwYy0uMSA3LjQgLjYgMTQuOSAxLjkgMjIuMiAzLjEgMTYuMyA5LjQgMzEuOSAxOC43IDQ1LjdzMjEuMyAyNS42IDM1LjIgMzQuNmMxOS45IDEzLjEgNDMuMiAyMC4xIDY3IDIwLjFsMCA4Ny40eiJdfSxiY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid29yZHByZXNzIixpY29uOls1MTIsNTEyLFtdLCJmMTlhIiwiTTYxLjcgMTY5LjRsMTAxLjUgMjc4Yy03MS0zNC40LTExOS45LTEwNy4yLTExOS45LTE5MS40IDAtMzAuOSA2LjYtNjAuMSAxOC40LTg2LjZ6bTMzNy45IDc1LjljMC0yNi4zLTkuNC00NC41LTE3LjUtNTguNy0xMC44LTE3LjUtMjAuOS0zMi40LTIwLjktNDkuOSAwLTE5LjYgMTQuOC0zNy44IDM1LjctMzcuOCAuOSAwIDEuOCAuMSAyLjggLjItMzcuOS0zNC43LTg4LjMtNTUuOS0xNDMuNy01NS45LTc0LjMgMC0xMzkuNyAzOC4xLTE3Ny44IDk1LjkgNSAuMiA5LjcgLjMgMTMuNyAuMyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ny41IDIzMC40IDQ2LjYtMTM5LjYtMzMuMS05MC44Yy0xMS41LS43LTIyLjMtMi0yMi4zLTItMTEuNS0uNy0xMC4xLTE4LjIgMS4zLTE3LjUgMCAwIDM1LjEgMi43IDU2IDIuNyAyMi4yIDAgNTYuNy0yLjcgNTYuNy0yLjcgMTEuNS0uNyAxMi44IDE2LjIgMS40IDE3LjUgMCAwLTExLjUgMS4zLTI0LjMgMmw3Ni45IDIyOC43IDIxLjItNzAuOWM5LTI5LjQgMTYtNTAuNSAxNi02OC43ek0yNTkuNyAyNzQuNkwxOTUuOSA0NjAuMWMxOS4xIDUuNiAzOS4yIDguNyA2MC4xIDguNyAyNC44IDAgNDguNS00LjMgNzAuNi0xMi4xLS42LS45LTEuMS0xLjktMS41LTIuOUwyNTkuNyAyNzQuNnptMTgzLTEyMC43Yy45IDYuOCAxLjQgMTQgMS40IDIxLjkgMCAyMS42LTQgNDUuOC0xNi4yIDc2LjJsLTY1IDE4Ny45YzYzLjMtMzYuOSAxMDUuOC0xMDUuNCAxMDUuOC0xODMuOSAwLTM3LTkuNC03MS44LTI2LTEwMi4xek04IDI1NmEyNDggMjQ4IDAgMSAxIDQ5NiAwIDI0OCAyNDggMCAxIDEgLTQ5NiAwem00ODQuNiAwYTIzNi42IDIzNi42IDAgMSAwIC00NzMuMiAwIDIzNi42IDIzNi42IDAgMSAwIDQ3My4yIDB6Il19LHZjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpZGVhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTAxMyIsIk05My44IDE2NS41YTQ5LjEgNDkuMSAwIDEgMCAwIDk4LjEgNDkuMSA0OS4xIDAgMSAwIDAtOTguMXpNNTQuMyA0MjUuOGw3OC45IDAgMC0xNDAuNS03OC45IDAgMCAxNDAuNXpNMjA1LjggMjE0LjJjMC0yMC0xMC0yMi41LTE4LjctMjIuNWwtMTQgMCAwIDQ1LjggMTQgMGM5LjcgMCAxOC43LTIuOCAxOC43LTIzLjN6bTIwMS43IDQ2bDAtOTEuMyAyMi44IDAgMCA2OC42IDMzLjcgMEM0NTQuNiAxMTMuMSAzNTYuOCA4Ni4yIDI2Ny44IDg2LjJsLTk0LjggMCAwIDgyLjggMTQgMGMyNS42IDAgNDEuNSAxNy40IDQxLjUgNDUuMyAwIDI4LjgtMTUuNSA0Ni00MS41IDQ2bC0xNCAwIDAgMTY1LjYgOTQuOCAwYzE0NC42IDAgMTk0LjktNjcuMiAxOTYuNy0xNjUuNmwtNTcuMSAwem0tMTA5LjggMGwtNTYuMiAwIDAtOTEuMiA1NC40IDAgMCAyMi43LTMxLjcgMCAwIDEwLjYgMzAgMCAwIDIyLjctMzAgMCAwIDEyLjUgMzMuNSAwIDAgMjIuN3ptNzQuNyAwbC01LjItMTcuNy0yOS43IDAtNS4yIDE3LjctMjMuNyAwIDI3LjUtOTEuMyAzMi4zIDAgMjcuNSA5MS4zLTIzLjcgMHpNMjY3LjggMzJMLjEgMzIgLjEgNDgwIDI2Ny44IDQ4MGMxNjEuOCAwIDI1MS03OS43IDI1MS0yMjQuNSAwLTgzLjUtMzIuNi0yMjMuNS0yNTEtMjIzLjV6bTAgNDI2LjlsLTI0Ni42IDAgMC00MDUuOSAyNDYuNiAwYzE0Mi4xIDAgMjI5LjkgNjQuNiAyMjkuOSAyMDIuNCAwIDEzNC4xLTgxIDIwMy40LTIyOS45IDIwMy40em04My45LTI2NC45bC03LjUgMjUuOCAxNi40IDAtNy41LTI1LjgtMS40IDB6Il19LHhjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLXBwIixpY29uOls0NDgsNTEyLFtdLCJmMWE3IiwiTTIwNS4zIDE3NC42YzAgMjEuMS0xNC4yIDM4LjEtMzEuNyAzOC4xLTcuMSAwLTEyLjgtMS4yLTE3LjItMy43bDAtNjhjNC40LTIuNyAxMC4xLTQuMiAxNy4yLTQuMiAxNy41IDAgMzEuNyAxNi45IDMxLjcgMzcuOHptNTIuNiA2N2MtNy4xIDAtMTIuOCAxLjUtMTcuMiA0LjJsMCA2OGM0LjQgMi41IDEwLjEgMy43IDE3LjIgMy43IDE3LjQgMCAzMS43LTE2LjkgMzEuNy0zNy44IDAtMjEuMS0xNC4zLTM4LjEtMzEuNy0zOC4xek00NDggODBsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwQzAgNTMuNSAyMS41IDMyIDQ4IDMybDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODUgMjU1LjFjNDEgMCA3NC4yLTM1LjYgNzQuMi03OS42UzIyNiA5NS45IDE4NSA5NS45Yy0xMiAwLTI0LjEgMy4yLTM0LjYgOC44bC00NS43IDAgMCAyMDYuMyA1MS44LTEwLjEgMC01MC42YzguNiAzLjEgMTguMSA0LjggMjguNSA0Ljh6bTE1OC40IDI1LjNjMC00NC0zMy4yLTc5LjYtNzMuOS03OS42LTMuMiAwLTYuNCAuMi05LjYgLjctMy43IDEyLjUtMTAuMSAyMy44LTE5LjIgMzMuNC0xMy44IDE1LTMyLjIgMjMuOC01MS44IDI0LjhsMCAxNTYuMyA1MS44LTEwLjEgMC01MC42YzguNiAzLjIgMTguMiA0LjcgMjguNyA0LjcgNDAuOCAwIDc0LTM1LjYgNzQtNzkuNnoiXX0seWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InVzc3VubmFoIixpY29uOls1MTIsNTEyLFtdLCJmNDA3IiwiTTQ5Ni45IDI2OC4xYzAgNjMuOS0yNS40IDEyNS4yLTcwLjYgMTcwLjNTMzE5LjkgNTA5IDI1NiA1MDkgMTMwLjggNDgzLjUgODUuNyA0MzguNCAxNS4xIDMzMS45IDE1LjEgMjY4YzAtNjMuOSAyNS40LTEyNS4yIDcwLjYtMTcwLjRTMTkyLjIgMjcuMSAyNTYuMSAyNy4xIDM4MS4zIDUyLjQgNDI2LjUgOTcuNiA0OTcgMjA0LjEgNDk3IDI2OGwtLjEgLjF6TTM5LjUgMjY4Yy0uNiAyOC44IDQuNSA1Ny41IDE1LjEgODQuM3MyNi40IDUxLjIgNDYuNiA3MS44IDQ0LjIgMzcgNzAuOCA0OC4xIDU1LjEgMTYuOSA4My45IDE2LjkgNTcuNC01LjggODMuOS0xNi45IDUwLjYtMjcuNSA3MC44LTQ4LjEgMzYtNDUgNDYuNi03MS44IDE1LjctNTUuNSAxNS4xLTg0LjNjLjYtMjguOC00LjUtNTcuNS0xNS4xLTg0LjNzLTI2LjQtNTEuMi00Ni42LTcxLjgtNDQuMi0zNy03MC44LTQ4LjEtNTUuMS0xNi45LTgzLjktMTYuOS01Ny40IDUuOC04My45IDE2LjktNTAuNiAyNy41LTcwLjggNDguMS0zNiA0NS00Ni42IDcxLjgtMTUuNyA1NS41LTE1LjEgODQuM3ptMzg1LjkgNjMuM2MtMTIuNyAwLTIxLjYtMS45LTI2LjctNS45LTUuNS00LjMtOC4yLTEyLjMtOC4yLTIzLjhsMC05Ni41YzAtNi41LTUuMi0yMC4yLTE1LjctNDEuMiA3IDAgMTctOS4xIDMwLTI3LjJsMCAxNDcuOGMwIDExIDIuNCAxOS40IDcgMjUuMyAzLjcgNC43IDEwLjEgOC45IDE5IDEyLjYgMS4yIC40IDIuNiAuOSA0LjEgMS40IDIuOSAuOSA2LjMgMi4xIDEwLjMgMy41LTEuOCAyLjctOC4zIDQtMTkuOSA0bC4xIDB6bS0yMTkgMGMtMS4zIDIuNC0zLjYgNS41LTYuOCA5LjRsLTE4LjUgMjIuNWMtMS02LjEtNC0xMy05LjMtMjAuNnMtOS43LTExLjQtMTMuNC0xMS40bC04OS44IDBjMy4zLTUuMyA0LjktOC44IDQuOS0xMC44cy0uOC01LjMtMi40LTkuN2MtMS41LTQuNC0yLjQtOC41LTIuNC0xMi40IDAtNy40IDIuMS0xMy45IDYuMy0xOS4zbDIwLTI1LjYtNy4xLTE3LjcgMTYuMS0xOS44IDYuNyAxNi44IDgtMTAuM2MtMS44IDYuNC0yLjYgMTIuMy0yLjYgMTcuNyAwIDQuMiAyLjggMTMuMyA4LjMgMjcuM2wxNi4yIDQwLjcgMTcuNyAwYzIuOCAuNCA3LjcgNSAxNC42IDEzLjkgMS44IDIuNCA0LjMgNS44IDcuNyAxMC4yIDEuNCAxLjkgMi45IDMuOSA0LjYgNi4xIDEuMy0yLjMgMi00LjYgMi03LjEgMC0yLTEuMy02LjYtNC0xMy40TDE3OCAzMDQuMWMtNC0xMC42LTYuMS0xNy43LTYuMS0yMS4zIDAtNi4zIDEuOS0xMi4zIDUuOC0xNy45IC41LS42IDEtMS4zIDEuNS0xLjkgNC40LTUuNiA4LjgtMTEuMSAxMy4zLTE2LjUtMS4xIDQuNi0xLjcgOC43LTEuNyAxMiAwIDMuNyAxLjcgOS45IDUuMSAxOC44bDcuOSAyMC40YzEuOSA0LjcgMyA4LjIgMy43IDEwLjNsMjUuOSAwLS45LTIuNmMtMS40LTMuOS00LTctNy43LTkuM2wxNS42LTIwLjEgMTIuMyAzMiAxMy40IDAtNi4xLTE1LjhjLTEuNS0zLjktNC03LTcuNy05LjNsMTUuNy0yMC4xIDE3LjMgNDUuMiAxMy40IDAtMTEuNC0yOS40Yy0xLjUtMy45LTQtNy03LjctOS4zbDE1LjYtMjAgMjIuNCA1OC43IDI2LjIgMGMxLjUgMCAzLTEuMSA0LjUtMy4xczIuMi00LjEgMi4yLTYuM2wwLTkzLjVjMC02LjUtNC41LTIwLjMtMTMuNy00MS4yIDUuNCAwIDE0LjEtOS4xIDI2LjItMjcuMmwwIDE2My41YzAgNy4yIC42IDEyIDEuNyAxNC42IDEuNiAzLjQgNS4zIDYuMiAxMS4xIDguMi0zLjkgNS42LTguNyA4LjUtMTQuNSA4LjVsLTE1NC44IDAtLjEtLjJ6bS05OC00NGMtMi43LTYuNy00LTExLjctNC0xNS0uNiAxLjItMi40IDMuNy01LjQgNy42LTEuNCAxLjktMi4yIDMuNy0yLjIgNS4zIDAgMi42IC44IDUuNyAyLjIgOS4zbDUuNiAxMy45YzUgMCA5IDAgMTEuOS0uMWwtOC4yLTIwLjkgLjEtLjF6bTEzLjUtNzIuNGMtMy01LjItNy05LjMtMTEuOS0xMS45LTMuNS0xLjktNS4zLTQuMy01LjMtNy40IDAtMi40IDQuNi04LjYgMTQtMTguMyAuMiAzLjggMS45IDcuNiA0LjkgMTEuMiAzLjEgMy42IDQuNiA3IDQuNiAxMC4xIDAgMi42LTIuMSA4LTYuMiAxNi4zbC0uMSAwem0tMjcuNiAwYy0zLTUuMi03LTkuMy0xMS45LTExLjktMy41LTEuOS01LjMtNC4zLTUuMy03LjQgMC0yLjQgNC42LTguNiAxNC0xOC4zIC4yIDMuOCAxLjkgNy42IDQuOSAxMS4yIDMuMSAzLjYgNC42IDcgNC42IDEwLjEgMCAyLjYtMi4xIDgtNi4yIDE2LjNsLS4xIDB6bTg3IDI3LjVjLTMtNS4yLTctOS4zLTExLjktMTEuOS0zLjUtMS45LTUuMy00LjMtNS4zLTcuNCAwLTIuNCA0LjYtOC42IDE0LTE4LjMgLjIgMy44IDEuOSA3LjYgNC45IDExLjIgMy4xIDMuNiA0LjYgNyA0LjYgMTAuMSAwIDIuNi0yLjEgOC02LjIgMTYuM2wtLjEgMHoiXX0sd2N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImZvcnQtYXdlc29tZS1hbHQiLGljb246WzUxMiw1MTIsW10sImYzYTMiLCJNMjA4IDIzNy40bC0yMi4yIDBjLTIuMSAwLTMuNyAxLjYtMy43IDMuN2wwIDUxLjdjMCAyLjEgMS42IDMuNyAzLjcgMy43bDIyLjIgMGMyLjEgMCAzLjctMS42IDMuNy0zLjdsMC01MS43YzAtMi4xLTEuNi0zLjctMy43LTMuN3ptMTE4LjIgMGwtMjIuMiAwYy0yLjEgMC0zLjcgMS42LTMuNyAzLjdsMCA1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN2wyMi4yIDBjMi4xIDAgMy43LTEuNiAzLjctMy43bDAtNTEuN2MtLjEtMi4xLTEuNy0zLjctMy43LTMuN3ptMTMyLTEyNS4xYy0yLjMtMy4yLTQuNi02LjQtNy4xLTkuNS05LjgtMTIuNS0yMC44LTI0LTMyLjgtMzQuNC00LjUtMy45LTkuMS03LjYtMTMuOS0xMS4yLTEuNi0xLjItMy4yLTIuMy00LjgtMy41LTI3LjYtMTkuNi01OS4zLTMzLjctOTMuNi00MC43LTE2LjItMy4zLTMyLjktNS01MC01cy0zMy45IDEuNy01MCA1Yy0zNC4zIDcuMS02NiAyMS4yLTkzLjMgNDAuOC0xLjYgMS4xLTMuMiAyLjMtNC44IDMuNS00LjggMy42LTkuNCA3LjMtMTMuOSAxMS4yLTMgMi42LTUuOSA1LjMtOC44IDhzLTUuNyA1LjUtOC40IDguNGMtNS41IDUuNy0xMC43IDExLjgtMTUuNiAxOC0yLjQgMy4xLTQuOCA2LjMtNy4xIDkuNS0yOC45IDQwLjYtNDUuOCA5MC4xLTQ1LjggMTQzLjYgMCAyIC4xIDQgLjEgNiAuMSAuNyAuMSAxLjMgLjEgMiAuMSAxLjMgLjEgMi43IC4yIDQgMCAuOCAuMSAxLjUgLjEgMi4zIDAgMS4zIC4xIDIuNSAuMiAzLjcgLjEgLjggLjEgMS42IC4yIDIuNCAuMSAxLjEgLjIgMi4zIC4zIDMuNSAwIC44IC4xIDEuNiAuMiAyLjQgLjEgMS4yIC4zIDIuNCAuNCAzLjYgLjEgLjggLjIgMS41IC4zIDIuMyAuMSAxLjMgLjMgMi42IC41IDMuOSAuMSAuNiAuMiAxLjMgLjMgMS45bC45IDUuN2MuMSAuNiAuMiAxLjEgLjMgMS43IC4zIDEuMyAuNSAyLjcgLjggNCAuMiAuOCAuMyAxLjYgLjUgMi40IC4yIDEgLjUgMi4xIC43IDMuMiAuMiAuOSAuNCAxLjcgLjYgMi42IC4yIDEgLjQgMiAuNyAzIC4yIC45IC41IDEuOCAuNyAyLjcgLjMgMSAuNSAxLjkgLjggMi45IC4zIC45IC41IDEuOCAuOCAyLjcgLjIgLjkgLjUgMS45IC44IDIuOHMuNSAxLjggLjggMi43Yy4zIDEgLjYgMS45IC45IDIuOCAuNiAxLjYgMS4xIDMuMyAxLjcgNC45IC40IDEgLjcgMS45IDEgMi44IC4zIDEgLjcgMiAxLjEgMyAuMyAuOCAuNiAxLjUgLjkgMi4zbDEuMiAzYy4zIC43IC42IDEuNSAuOSAyLjIgLjQgMSAuOSAyIDEuMyAzbC45IDIuMWMuNSAxIC45IDIgMS40IDMgLjMgLjcgLjYgMS4zIC45IDIgLjUgMSAxIDIuMSAxLjUgMy4xIC4yIC42IC41IDEuMSAuOCAxLjcgLjYgMS4xIDEuMSAyLjIgMS43IDMuMyAuMSAuMiAuMiAuMyAuMyAuNSAyLjIgNC4xIDQuNCA4LjIgNi44IDEyLjIgLjIgLjQgLjUgLjggLjcgMS4yIC43IDEuMSAxLjMgMi4yIDIgMy4zIC4zIC41IC42IC45IC45IDEuNCAuNiAxLjEgMS4zIDIuMSAyIDMuMiAuMyAuNSAuNiAuOSAuOSAxLjQgLjcgMS4xIDEuNCAyLjEgMi4xIDMuMiAuMiAuNCAuNSAuOCAuOCAxLjIgLjcgMS4xIDEuNSAyLjIgMi4zIDMuMyAuMiAuMiAuMyAuNSAuNSAuNyAzNy41IDUxLjcgOTQuNCA4OC41IDE2MCA5OS40IC45IC4xIDEuNyAuMyAyLjYgLjQgMSAuMiAyLjEgLjQgMy4xIC41czEuOSAuMyAyLjggLjRjMSAuMiAyIC4zIDMgLjQgLjkgLjEgMS45IC4yIDIuOSAuM3MxLjkgLjIgMi45IC4zIDIuMSAuMiAzLjEgLjNjLjkgLjEgMS44IC4xIDIuNyAuMiAxLjEgLjEgMi4zIC4xIDMuNCAuMiAuOCAwIDEuNyAuMSAyLjUgLjEgMS4zIDAgMi42IC4xIDMuOSAuMSAuNyAuMSAxLjQgLjEgMi4xIC4xIDIgLjEgNCAuMSA2IC4xczQtLjEgNi0uMWMuNyAwIDEuNC0uMSAyLjEtLjEgMS4zIDAgMi42IDAgMy45LS4xIC44IDAgMS43LS4xIDIuNS0uMSAxLjEtLjEgMi4zLS4xIDMuNC0uMiAuOSAwIDEuOC0uMSAyLjctLjIgMS0uMSAyLjEtLjIgMy4xLS4zczEuOS0uMiAyLjktLjNjLjktLjEgMS45LS4yIDIuOS0uM3MyLS4zIDMtLjQgMS45LS4zIDIuOC0uNGMxLS4yIDIuMS0uMyAzLjEtLjUgLjktLjEgMS43LS4zIDIuNi0uNCA2NS42LTExIDEyMi41LTQ3LjcgMTYwLjEtMTAyLjQgLjItLjIgLjMtLjUgLjUtLjcgLjgtMS4xIDEuNS0yLjIgMi4zLTMuMyAuMi0uNCAuNS0uOCAuOC0xLjIgLjctMS4xIDEuNC0yLjEgMi4xLTMuMiAuMy0uNSAuNi0uOSAuOS0xLjQgLjYtMS4xIDEuMy0yLjEgMi0zLjIgLjMtLjUgLjYtLjkgLjktMS40IC43LTEuMSAxLjMtMi4yIDItMy4zIC4yLS40IC41LS44IC43LTEuMiAyLjQtNCA0LjYtOC4xIDYuOC0xMi4yIC4xLS4yIC4yLS4zIC4zLS41IC42LTEuMSAxLjEtMi4yIDEuNy0zLjMgLjItLjYgLjUtMS4xIC44LTEuNyAuNS0xIDEtMi4xIDEuNS0zLjEgLjMtLjcgLjYtMS4zIC45LTIgLjUtMSAxLTIgMS40LTNsLjktMi4xYy41LTEgLjktMiAxLjMtMyAuMy0uNyAuNi0xLjUgLjktMi4ybDEuMi0zYy4zLS44IC42LTEuNSAuOS0yLjMgLjQtMSAuNy0yIDEuMS0zcy43LTEuOSAxLTIuOGMuNi0xLjYgMS4yLTMuMyAxLjctNC45IC4zLTEgLjYtMS45IC45LTIuOHMuNS0xLjggLjgtMi43Yy4yLS45IC41LTEuOSAuOC0yLjhzLjYtMS44IC44LTIuN2MuMy0xIC41LTEuOSAuOC0yLjkgLjItLjkgLjUtMS44IC43LTIuNyAuMi0xIC41LTIgLjctMyAuMi0uOSAuNC0xLjcgLjYtMi42IC4yLTEgLjUtMi4xIC43LTMuMiAuMi0uOCAuMy0xLjYgLjUtMi40IC4zLTEuMyAuNi0yLjcgLjgtNCAuMS0uNiAuMi0xLjEgLjMtMS43bC45LTUuN2MuMS0uNiAuMi0xLjMgLjMtMS45IC4xLTEuMyAuMy0yLjYgLjUtMy45IC4xLS44IC4yLTEuNSAuMy0yLjMgLjEtMS4yIC4zLTIuNCAuNC0zLjYgMC0uOCAuMS0xLjYgLjItMi40IC4xLTEuMSAuMi0yLjMgLjMtMy41IC4xLS44IC4xLTEuNiAuMi0yLjQgLjEgMS43IC4xIC41IC4yLS43IDAtLjggLjEtMS41IC4xLTIuMyAuMS0xLjMgLjItMi43IC4yLTQgLjEtLjcgLjEtMS4zIC4xLTIgLjEtMiAuMS00IC4xLTYgMC01My41LTE2LjktMTAzLTQ1LjgtMTQzLjd6TTQ0OCAzNzEuNWMtOS40IDE1LjUtMjAuNiAyOS45LTMzLjYgNDIuOS0yMC42IDIwLjYtNDQuNSAzNi43LTcxLjIgNDgtMTMuOSA1LjgtMjguMiAxMC4zLTQyLjkgMTMuMmwwLTc1LjhjMC01OC42LTg4LjYtNTguNi04OC42IDBsMCA3NS44Yy0xNC43LTIuOS0yOS03LjMtNDIuOS0xMy4yLTI2LjctMTEuMy01MC42LTI3LjQtNzEuMi00OC0xMy0xMy0yNC4yLTI3LjQtMzMuNi00Mi45bDAtNzEuM2MwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjggMjkuNiAwIDAtMTQ0YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4xIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgMjUuOSAyOS41IDAgMC0yNS45YzAtNC44IDYuNS0zLjcgOS41LTMuN2wwLTkwLjJjLTQuNC0yLTcuNC02LjctNy40LTExLjUgMC0xNi44IDI1LjQtMTYuOCAyNS40IDAgMCA0LjgtMyA5LjQtNy40IDExLjVsMCAzLjljNi4zLTEuNCAxMi43LTIuMyAxOS4yLTIuMyA5LjQgMCAxOC40IDMuNSAyNi4zIDMuNSA3LjIgMCAxNS4yLTMuNSAxOS40LTMuNSAyLjEgMCAzLjcgMS42IDMuNyAzLjdsMCA0OC40YzAgNS42LTE4LjcgNi41LTIyLjQgNi41LTguNiAwLTE2LjYtMy41LTI1LjQtMy41LTcgMC0xNC4xIDEuMi0yMC44IDIuOGwwIDMwLjdjMyAwIDkuNS0xLjEgOS41IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMiAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDI1LjkgMjkuNSAwIDAtMjUuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdsMjIuMSAwYzIuMSAwIDMuNyAxLjYgMy43IDMuN2wwIDE0NCAyOS41IDAgMC0yNS44YzAtMi4xIDEuNi0zLjcgMy43LTMuN2wyMi4yIDBjMi4xIDAgMy43IDEuNiAzLjcgMy43bDAgNzEuM3oiXX0sTWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJ1cm9tb2JlbGV4cGVydGUiLGljb246WzQ0OCw1MTIsW10sImYzN2YiLCJNMCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMTIwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTE2MCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNMjgwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTMyMCAzMmwwIDEyOCAxMjggMCAwLTEyOC0xMjggMHpNNDQwIDE1MmwtMTEyIDAgMC0xMTIgMTEyIDAgMCAxMTJ6TTAgMTkybDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0xMjAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek0yODAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnptNDAtMTIwbDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwek00NDAgMzEybC0xMTIgMCAwLTExMiAxMTIgMCAwIDExMnpNMCAzNTJsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTEyMCA0NzJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6TTI4MCA0NzJsLTExMiAwIDAtMTEyIDExMiAwIDAgMTEyem00MC0xMjBsMCAxMjggMTI4IDAgMC0xMjgtMTI4IDB6Il19LGtjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJiaWxpYmlsaSIsaWNvbjpbNTEyLDUxMixbXSwiZTNkOSIsIk00ODguNiAxMDQuMWMxNi43IDE4LjEgMjQuNCAzOS43IDIzLjMgNjUuN2wwIDIwMi40Yy0uNCAyNi40LTkuMiA0OC4xLTI2LjUgNjUuMS0xNy4yIDE3LTM5LjEgMjUuOS02NS41IDI2LjdMOTIgNDY0Yy0yNi40LS44LTQ4LjItOS44LTY1LjMtMjcuMi0xNy4xLTE3LjQtMjYtNDAuMy0yNi43LTY4LjZMMCAxNjkuOGMuOC0yNiA5LjctNDcuNiAyNi43LTY1LjcgMTcuMS0xNi4zIDM4LjgtMjUuMyA2NS4zLTI2LjFsMjkuNCAwLTI1LjQtMjUuOGMtNS43LTUuNy04LjYtMTMtOC42LTIxLjhzMi45LTE2LjEgOC42LTIxLjggMTMtOC42IDIxLjktOC42IDE2LjEgMi45IDIxLjkgOC42bDczLjMgNjkuNCA4OCAwIDc0LjUtNjkuNEMzODEuNyAyLjkgMzg5LjIgMCAzOTggMHMxNi4xIDIuOSAyMS45IDguNmM1LjcgNS43IDguNiAxMyA4LjYgMjEuOHMtMi45IDE2LjEtOC42IDIxLjhMMzk0LjYgNzggNDIzLjkgNzhjMjYuNCAuOCA0OCA5LjggNjQuNyAyNi4xem0tMzguOCA2OS43Yy0uNC05LjYtMy43LTE3LjQtMTAuNy0yMy41LTUuMi02LjEtMTQtOS40LTIyLjctOS44bC0zMjAuNCAwYy05LjYgLjQtMTcuNCAzLjctMjMuNiA5LjgtNi4xIDYuMS05LjQgMTMuOS05LjggMjMuNWwwIDE5NC40YzAgOS4yIDMuMyAxNyA5LjggMjMuNXMxNC40IDkuOCAyMy42IDkuOGwzMjAuNCAwYzkuMiAwIDE3LTMuMyAyMy4zLTkuOHM5LjctMTQuMyAxMC4xLTIzLjVsMC0xOTQuNHpNMTg1LjUgMjE2LjVjNi4zIDYuMyA5LjcgMTQuMSAxMC4xIDIzLjJsMCAzMy4zYy0uNCA5LjItMy43IDE2LjktOS44IDIzLjItNi4yIDYuMy0xNCA5LjUtMjMuNiA5LjVzLTE3LjUtMy4yLTIzLjYtOS41LTkuNC0xNC05LjgtMjMuMmwwLTMzLjNjLjQtOS4xIDMuOC0xNi45IDEwLjEtMjMuMnMxMy4yLTkuNiAyMy4zLTEwYzkuMiAuNCAxNyAzLjcgMjMuMyAxMHptMTkxLjUgMGM2LjMgNi4zIDkuNyAxNC4xIDEwLjEgMjMuMmwwIDMzLjNjLS40IDkuMi0zLjcgMTYuOS05LjggMjMuMnMtMTQgOS41LTIzLjYgOS41LTE3LjQtMy4yLTIzLjYtOS41Yy03LTYuMy05LjQtMTQtOS43LTIzLjJsMC0zMy4zYy4zLTkuMSAzLjctMTYuOSAxMC0yMy4yczE0LjEtOS42IDIzLjMtMTBjOS4yIC40IDE3IDMuNyAyMy4zIDEweiJdfSxTY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibmVvcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjYxMiIsIk0zODMuOCA1MTJsLTk1LjEgMC0xMDguMi0xNTQuNSAwIDkxLjEtODYuNCA2My40LTk3LjcgMCAwLTQ4Mi4yIDQwLjUtMjkuOCAxMDggMCAxMjMuNyAxNzYuMSAwLTExMi43IDg2LjQtNjMuNCA5Ny43IDAgMCA0NjEuNS02OC45IDUwLjV6TTcuMiAzNS4zbDAgNDYwLjcgNzItNTIuOSAwLTI0OS4xIDIxNS41IDMwNy42IDg0LjggMCA1Mi40LTM4LjItNzguMyAwLTMxNi4xLTQ1MC41LTMwLjIgMjIuM3pNODkuNyA1MDEuOWw4MC01OC44IDAtMTAxLTc5LjgtMTE0LjQgMCAyMjAuOS03Mi42IDUzLjMgNzIuMyAwIDAgMHpNNDkgMTAuOGwzMTAuNiA0NDIuNiA4Mi40IDAgMC00NDIuNi03OS44IDAgMCAzMTcuNi0yMjIuOS0zMTcuNi05MC4zIDB6TTI3OS40IDE5MS42bDcyIDEwMi44IDAtMjc4LjUtNzIgNTMgMCAxMjIuN3oiXX0semN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImRldiIsaWNvbjpbNDQ4LDUxMixbXSwiZjZjYyIsIk0xMjAuMSAyMDguM2MtMy45LTIuOS03LjgtNC4zLTExLjYtNC4zbC0xNy40IDAgMCAxMDQuNSAxNy40IDBjMy45IDAgNy44LTEuNCAxMS42LTQuM3M1LjgtNy4zIDUuOC0xMy4xbDAtNjkuN2MwLTUuOC0yLTEwLjItNS44LTEzLjF6TTQwNC4xIDMyTDQzLjkgMzJDMTkuNyAzMiAuMSA1MS42IDAgNzUuOEwwIDQzNi4yQy4xIDQ2MC40IDE5LjcgNDgwIDQzLjkgNDgwbDM2MC4yIDBjMjQuMiAwIDQzLjgtMTkuNiA0My45LTQzLjhsMC0zNjAuNEM0NDcuOSA1MS42IDQyOC4zIDMyIDQwNC4xIDMyek0xNTQuMiAyOTEuMmMwIDE4LjgtMTEuNiA0Ny4zLTQ4LjQgNDcuM2wtNDYuNCAwIDAtMTY1LjUgNDcuNCAwYzM1LjQgMCA0Ny40IDI4LjUgNDcuNCA0Ny4zbDAgNzAuOXptMTAwLjctODguN2wtNTMuMyAwIDAgMzguNCAzMi42IDAgMCAyOS42LTMyLjYgMCAwIDM4LjQgNTMuMyAwIDAgMjkuNi02Mi4yIDBjLTExLjIgLjMtMjAuNC04LjUtMjAuNy0xOS43bDAtMTI1LjFjLS4zLTExLjEgOC42LTIwLjQgMTkuNy0yMC43bDYzLjIgMCAwIDI5LjV6TTM1OC41IDMxNy44Yy0xMy4yIDMwLjctMzYuOCAyNC42LTQ3LjQgMGwtMzguNS0xNDQuOCAzMi42IDAgMjkuNyAxMTMuNyAyOS42LTExMy43IDMyLjYgMC0zOC41IDE0NC44eiJdfSxDY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaG90amFyIixpY29uOls1MTIsNTEyLFtdLCJmM2IxIiwiTTM2MS44IDBjMCAxMzEuNi04MC43IDE3Ni44LTE0MC4yIDIwOS40LS42IC4zLTEuMSAuNi0xLjYgLjktNTMuOCAzMC4yLTg4LjcgNDkuOC04OS42IDEyMmwtOTguMSAwYzAtMTMxLjUgODAuNy0xNzYuNyAxNDAuMi0yMDkuMyA1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OSAwek0zMDEuMyAzMDIuNmM1NC44LTI5LjggOTAuMy01MCA5MC4zLTEyM2w5OCAwYzAgMTMxLjYtODAuNyAxNzYuNy0xNDAuMiAyMDkuNC01NC44IDI5LjgtOTAuMyA1MC05MC4zIDEyM2wtOTggMGMwLTEzMS42IDgwLjctMTc2LjggMTQwLjItMjA5LjR6Il19LFRjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkb2NodWIiLGljb246WzQ0OCw1MTIsW10sImYzOTQiLCJNNDEzLjkgMTYwTDI3MiAxNjAgMjcyIDE5LjYgNDEzLjkgMTYwek0zMjAgMTkybDAgMTMwYzAgNjYuOC0zNi41IDEwMC4xLTExMy4zIDEwMC4xbC05NC43IDAgMC0zMzcuMyA5NC43IDBjMTIgMCAyMy4xIC44IDMzLjEgMi41bDAtODRDMjI4LjkgMS4xIDIxNy40IDAgMjA1LjIgMEwxNiAwIDE2IDUxMiAyMDUuMiA1MTJDMzQ1LjcgNTEyIDQxNiA0NDcuNCA0MTYgMzE4LjFsMC0xMjYuMS05NiAweiJdfSxfY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidmltZW8iLGljb246WzQ0OCw1MTIsW10sImY0MGEiLCJNNDAzLjIgMzJMNDQuOCAzMkMyMC4xIDMyIDAgNTIuMSAwIDc2LjhMMCA0MzUuMkMwIDQ1OS45IDIwLjEgNDgwIDQ0LjggNDgwbDM1OC40IDBjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0LjhsMC0zNTguNEM0NDggNTIuMSA0MjcuOSAzMiA0MDMuMiAzMnpNMzc3IDE4MC44Yy0xLjQgMzEuNS0yMy40IDc0LjctNjYgMTI5LjQtNDQgNTcuMi04MS4zIDg1LjgtMTExLjcgODUuOC0xOC45IDAtMzQuOC0xNy40LTQ3LjktNTIuMy0yNS41LTkzLjMtMzYuNC0xNDgtNTcuNC0xNDgtMi40IDAtMTAuOSA1LjEtMjUuNCAxNS4yTDUzLjQgMTkxLjNjMzcuMy0zMi44IDcyLjktNjkuMiA5NS4yLTcxLjIgMjUuMi0yLjQgNDAuNyAxNC44IDQ2LjUgNTEuNyAyMC43IDEzMS4yIDI5LjkgMTUxIDY3LjYgOTEuNiAxMy41LTIxLjQgMjAuOC0zNy43IDIxLjgtNDguOSAzLjUtMzMuMi0yNS45LTMwLjktNDUuOC0yMi40IDE1LjktNTIuMSA0Ni4zLTc3LjQgOTEuMi03NiAzMy4zIC45IDQ5IDIyLjUgNDcuMSA2NC43eiJdfSxMY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWF4Y2RuIixpY29uOls1MTIsNTEyLFtdLCJmMTM2IiwiTTQ2MS4xIDQ0Mi43bC05Ny40IDAgNTEuOS0yNDIuN2MyLjMtMTAuMiAuOS0xOS41LTQuNC0yNS43LTUtNi4xLTEzLjctOS42LTI0LjItOS42bC00OS4zIDAtNTkuNSAyNzgtOTcuNCAwIDU5LjUtMjc4LTgzLjQgMC01OS41IDI3OC05Ny40IDAgNTkuNS0yNzgtNDQuNi05NS40IDM3Mi4xIDBjMzkuNCAwIDc1LjMgMTYuMyA5OC4zIDQ0LjkgMjMuMyAyOC42IDMxLjggNjcuNCAyMy42IDEwNS45TDQ2MS4xIDQ0Mi43eiJdfSxvbmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZS1zdHJva2UiLGljb246WzQ0OCw1MTIsWyJmb250LWF3ZXNvbWUtYWx0Il0sImYzNWMiLCJNNjQgNjRDNDYuMyA2NCAzMiA3OC4zIDMyIDk2bDAgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDY0IDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTU0IDU4YzAgOS4zLTQuOCAxNy40LTEyLjEgMjJsMTg4LjkgMGM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCAxLjgtLjQgMy43LTEuMSA1LjRMMzEyIDI2NCAzNDIuOSAzMzMuNGMuOCAxLjcgMS4xIDMuNSAxLjEgNS40IDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMmwtMTg2LjggMCAwIDMyLTMyIDAgMC0yMDkuNWMtNi4xLTQuOC0xMC0xMi4yLTEwLTIwLjUgMC0xNC40IDExLjYtMjYgMjYtMjZzMjYgMTEuNiAyNiAyNnoiXX0sQWN0PW9uZSxEY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3BlYWthcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmMyIsIk02NC40IDM5MS44Qy0xNSAzMDMuNi03LjYgMTY3LjQgODEuMSA4Ny42czIyNC44LTczIDMwNC4yIDE1LjIgNzIgMjI0LjQtMTYuNiAzMDQuMWMtMTguNyAxNi45IDY0IDQzLjEgNDIgNTIuMy04Mi4xIDM0LjItMjUzLjkgMzUtMzQ2LjItNjcuNWwwIDB6TTI3Ny43IDE4MC4ybDM4LjUtNDAuOWMtOS42LTguOS0zMi0yNi44LTc2LjItMjcuNi01Mi4zLS45LTk1LjkgMjguMy05Ni44IDgwLS4yIDExLjMgLjMgMzYuNyAyOS40IDU0LjggMzQuNSAyMS40IDg2LjUgMjEuNSA4NiA1Mi4zLS40IDIxLjMtMjYuNCAyNS44LTM4LjYgMjUuNi0zIDAtMzAuMi0uNS00Ny42LTI0LjZsLTQwIDQyLjZjMjguMiAyNyA1OSAzMi42IDgzLjUgMzMgMTAuMiAuMiA5Ni40IC4zIDk3LjgtODEgLjMtMTUuOC0yLjEtMzkuNy0yOC45LTU2LjYtMzQuNC0yMS42LTg1LTE5LjQtODQuNC00OS43IC40LTIzLjMgMzEtMjUuNCAzNy41LTI1LjMgLjQgMCAyNi42IC4zIDM5LjYgMTcuNGwwIDB6Il19LEVjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmYW50YXN5LWZsaWdodC1nYW1lcyIsaWNvbjpbNTEyLDUxMixbXSwiZjZkYyIsIk0yNTYgMzIuOUwzMi45IDI1NiAyNTYgNDc5LjEgNDc5LjEgMjU2IDI1NiAzMi45ek04OC4zIDI1NS44YzItMiAxMS45LTEyLjMgOTYuNS05Ny41IDQxLjQtNDEuOCA4Ni4yLTQzLjggMTE5LjgtMTguNyAyNC42IDE4LjQgNjIuMSA1OC45IDYyLjEgNTkgLjcgLjcgMS4xIDIuOSAuNiAzLjQtMTEuMyAxMS44LTIyLjcgMjMuNS0zMy41IDM0LjctMzQuMi0zMi4zLTQwLjUtMzguMi00OC41LTQ0LTE3LjgtMTIuNy00MS40LTEwLjEtNTcgNS4xLTIuMiAyLjEtMS44IDMuNCAuMSA1LjQgMi45IDIuOSAyOC4xIDI4LjMgMzUuMSAzNS44LTExLjkgMTEuNi0yMy43IDIzLTM1LjcgMzQuNy0xMi0xMi41LTI0LjUtMjUuNS0zNi41LTM4LjEtMjEuNCAyMS4xLTQxLjcgNDEuMS02MS44IDYxTDg4LjMgMjU1Ljh6TTMyMy4yIDM1Ny40Yy0zNS41IDM1LjQtNzguMSAzOC4xLTEwNyAyMC41LTIyLjEtMTMuNS0zOS40LTMyLjEtNzIuOS02Ni44IDEyLTEyLjQgMjMuOC0yNC40IDM1LjQtMzYuMyAzMyAzMS45IDM3LjEgMzYgNDQuNyA0Mi4xIDE4LjUgMTQuNyA0Mi41IDEzLjcgNTkuMy0xLjggMy43LTMuNCAzLjctMy42IC4xLTcuMi0xMC42LTEwLjctMjEuMi0yMS40LTMxLjgtMzIuMi0xLjMtMS4zLTMtMi41LS44LTQuNyAxMC44LTEwLjcgMjEuNS0yMS41IDMyLjItMzIuMyAuMy0uMyAuNi0uNCAxLjktMS4xIDEyLjQgMTIuOSAyNC45IDI1LjkgMzcuMiAzOC44IDIxLTIwLjcgNDEuMi00MC43IDYxLjMtNjAuNCAxMy43IDEzLjQgMjcuMSAyNi42IDQwLjkgNDAtMjAuMiAyMC45LTgxLjcgODIuNy0xMDAuNSAxMDEuNXpNMjU2IDBMMCAyNTYgMjU2IDUxMiA1MTIgMjU2IDI1NiAwek0xNiAyNTZMMjU2IDE2IDQ5NiAyNTYgMjU2IDQ5NiAxNiAyNTZ6Il19LCRjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsaW51eCIsaWNvbjpbNDQ4LDUxMixbXSwiZjE3YyIsIk0yMjAuOSAxMjMuM2MxIC41IDEuOCAxLjcgMyAxLjcgMS4xIDAgMi44LS40IDIuOS0xLjUgLjItMS40LTEuOS0yLjMtMy4yLTIuOS0xLjctLjctMy45LTEtNS41LS4xLS40IC4yLS44IC43LS42IDEuMSAuMyAxLjMgMi4zIDEuMSAzLjQgMS43ek0xOTkgMTI1YzEuMiAwIDItMS4yIDMtMS43IDEuMS0uNiAzLjEtLjQgMy41LTEuNiAuMi0uNC0uMi0uOS0uNi0xLjEtMS42LS45LTMuOC0uNi01LjUgLjEtMS4zIC42LTMuNCAxLjUtMy4yIDIuOSAuMSAxIDEuOCAxLjUgMi44IDEuNHpNNDIwIDQwMy44Yy0zLjYtNC01LjMtMTEuNi03LjItMTkuNy0xLjgtOC4xLTMuOS0xNi44LTEwLjUtMjIuNC0xLjMtMS4xLTIuNi0yLjEtNC0yLjktMS4zLS44LTIuNy0xLjUtNC4xLTIgOS4yLTI3LjMgNS42LTU0LjUtMy43LTc5LjEtMTEuNC0zMC4xLTMxLjMtNTYuNC00Ni41LTc0LjQtMTcuMS0yMS41LTMzLjctNDEuOS0zMy40LTcyIC41LTQ1LjkgNS4xLTEzMS4yLTc1LjgtMTMxLjMtMTAyLjQtLjItNzYuOCAxMDMuNC03Ny45IDEzNS4yLTEuNyAyMy40LTYuNCA0MS44LTIyLjUgNjQuNy0xOC45IDIyLjUtNDUuNSA1OC44LTU4LjEgOTYuNy02IDE3LjktOC44IDM2LjEtNi4yIDUzLjMtNi41IDUuOC0xMS40IDE0LjctMTYuNiAyMC4yLTQuMiA0LjMtMTAuMyA1LjktMTcgOC4zcy0xNCA2LTE4LjUgMTQuNWMtMi4xIDMuOS0yLjggOC4xLTIuOCAxMi40IDAgMy45IC42IDcuOSAxLjIgMTEuOCAxLjIgOC4xIDIuNSAxNS43IC44IDIwLjgtNS4yIDE0LjQtNS45IDI0LjQtMi4yIDMxLjcgMy44IDcuMyAxMS40IDEwLjUgMjAuMSAxMi4zIDE3LjMgMy42IDQwLjggMi43IDU5LjMgMTIuNSAxOS44IDEwLjQgMzkuOSAxNC4xIDU1LjkgMTAuNCAxMS42LTIuNiAyMS4xLTkuNiAyNS45LTIwLjIgMTIuNS0uMSAyNi4zLTUuNCA0OC4zLTYuNiAxNC45LTEuMiAzMy42IDUuMyA1NS4xIDQuMSAuNiAyLjMgMS40IDQuNiAyLjUgNi43bDAgLjFjOC4zIDE2LjcgMjMuOCAyNC4zIDQwLjMgMjMgMTYuNi0xLjMgMzQuMS0xMSA0OC4zLTI3LjkgMTMuNi0xNi40IDM2LTIzLjIgNTAuOS0zMi4yIDcuNC00LjUgMTMuNC0xMC4xIDEzLjktMTguMyAuNC04LjItNC40LTE3LjMtMTUuNS0yOS43ek0yMjMuOCA4Ny4zYzkuOC0yMi4yIDM0LjItMjEuOCA0NC0uNCA2LjUgMTQuMiAzLjYgMzAuOS00LjMgNDAuNC0xLjYtLjgtNS45LTIuNi0xMi42LTQuOSAxLjEtMS4yIDMuMS0yLjcgMy45LTQuNiA0LjgtMTEuOC0uMi0yNy05LjEtMjcuMy03LjMtLjUtMTMuOSAxMC44LTExLjggMjMtNC4xLTItOS40LTMuNS0xMy00LjQtMS02LjktLjMtMTQuNiAyLjktMjEuOHpNMTgzLjEgNzUuOGMxMC4xIDAgMjAuOCAxNC4yIDE5LjEgMzMuNS0zLjUgMS03LjEgMi41LTEwLjIgNC42IDEuMi04LjktMy4zLTIwLjEtOS42LTE5LjYtOC40IC43LTkuOCAyMS4yLTEuOCAyOC4xIDEgLjggMS45LS4yLTUuOSA1LjUtMTUuNi0xNC42LTEwLjUtNTIuMSA4LjQtNTIuMXptLTEzLjYgNjAuN2M2LjItNC42IDEzLjYtMTAgMTQuMS0xMC41IDQuNy00LjQgMTMuNS0xNC4yIDI3LjktMTQuMiA3LjEgMCAxNS42IDIuMyAyNS45IDguOSA2LjMgNC4xIDExLjMgNC40IDIyLjYgOS4zIDguNCAzLjUgMTMuNyA5LjcgMTAuNSAxOC4yLTIuNiA3LjEtMTEgMTQuNC0yMi43IDE4LjEtMTEuMSAzLjYtMTkuOCAxNi0zOC4yIDE0LjktMy45LS4yLTctMS05LjYtMi4xLTgtMy41LTEyLjItMTAuNC0yMC0xNS04LjYtNC44LTEzLjItMTAuNC0xNC43LTE1LjMtMS40LTQuOSAwLTkgNC4yLTEyLjN6bTMuMyAzMzRjLTIuNyAzNS4xLTQzLjkgMzQuNC03NS4zIDE4LTI5LjktMTUuOC02OC42LTYuNS03Ni41LTIxLjktMi40LTQuNy0yLjQtMTIuNyAyLjYtMjYuNGwwLS4yYzIuNC03LjYgLjYtMTYtLjYtMjMuOS0xLjItNy44LTEuOC0xNSAuOS0yMCAzLjUtNi43IDguNS05LjEgMTQuOC0xMS4zIDEwLjMtMy43IDExLjgtMy40IDE5LjYtOS45IDUuNS01LjcgOS41LTEyLjkgMTQuMy0xOCA1LjEtNS41IDEwLTguMSAxNy43LTYuOSA4LjEgMS4yIDE1LjEgNi44IDIxLjkgMTZsMTkuNiAzNS42YzkuNSAxOS45IDQzLjEgNDguNCA0MSA2OC45em0tMS40LTI1LjljLTQuMS02LjYtOS42LTEzLjYtMTQuNC0xOS42IDcuMSAwIDE0LjItMi4yIDE2LjctOC45IDIuMy02LjIgMC0xNC45LTcuNC0yNC45LTEzLjUtMTguMi0zOC4zLTMyLjUtMzguMy0zMi41LTEzLjUtOC40LTIxLjEtMTguNy0yNC42LTI5LjlzLTMtMjMuMy0uMy0zNS4yYzUuMi0yMi45IDE4LjYtNDUuMiAyNy4yLTU5LjIgMi4zLTEuNyAuOCAzLjItOC43IDIwLjgtOC41IDE2LjEtMjQuNCA1My4zLTIuNiA4Mi40IC42LTIwLjcgNS41LTQxLjggMTMuOC02MS41IDEyLTI3LjQgMzcuMy03NC45IDM5LjMtMTEyLjcgMS4xIC44IDQuNiAzLjIgNi4yIDQuMSA0LjYgMi43IDguMSA2LjcgMTIuNiAxMC4zIDEyLjQgMTAgMjguNSA5LjIgNDIuNCAxLjIgNi4yLTMuNSAxMS4yLTcuNSAxNS45LTkgOS45LTMuMSAxNy44LTguNiAyMi4zLTE1IDcuNyAzMC40IDI1LjcgNzQuMyAzNy4yIDk1LjcgNi4xIDExLjQgMTguMyAzNS41IDIzLjYgNjQuNiAzLjMtLjEgNyAuNCAxMC45IDEuNCAxMy44LTM1LjctMTEuNy03NC4yLTIzLjMtODQuOS00LjctNC42LTQuOS02LjYtMi42LTYuNSAxMi42IDExLjIgMjkuMiAzMy43IDM1LjIgNTkgMi44IDExLjYgMy4zIDIzLjcgLjQgMzUuNyAxNi40IDYuOCAzNS45IDE3LjkgMzAuNyAzNC44LTIuMi0uMS0zLjIgMC00LjIgMCAzLjItMTAuMS0zLjktMTcuNi0yMi44LTI2LjEtMTkuNi04LjYtMzYtOC42LTM4LjMgMTIuNS0xMi4xIDQuMi0xOC4zIDE0LjctMjEuNCAyNy4zLTIuOCAxMS4yLTMuNiAyNC43LTQuNCAzOS45LS41IDcuNy0zLjYgMTgtNi44IDI5LTMyLjEgMjIuOS03Ni43IDMyLjktMTE0LjMgNy4yem0yNTcuNC0xMS41Yy0uOSAxNi44LTQxLjIgMTkuOS02My4yIDQ2LjUtMTMuMiAxNS43LTI5LjQgMjQuNC00My42IDI1LjVzLTI2LjUtNC44LTMzLjctMTkuM2MtNC43LTExLjEtMi40LTIzLjEgMS4xLTM2LjMgMy43LTE0LjIgOS4yLTI4LjggOS45LTQwLjYgLjgtMTUuMiAxLjctMjguNSA0LjItMzguNyAyLjYtMTAuMyA2LjYtMTcuMiAxMy43LTIxLjEgLjMtLjIgLjctLjMgMS0uNSAuOCAxMy4yIDcuMyAyNi42IDE4LjggMjkuNSAxMi42IDMuMyAzMC43LTcuNSAzOC40LTE2LjMgOS0uMyAxNS43LS45IDIyLjYgNS4xIDkuOSA4LjUgNy4xIDMwLjMgMTcuMSA0MS42IDEwLjYgMTEuNiAxNCAxOS41IDEzLjcgMjQuNnpNMTczLjQgMTQ4LjdjMiAxLjkgNC43IDQuNSA4IDcuMSA2LjYgNS4yIDE1LjggMTAuNiAyNy4zIDEwLjYgMTEuNiAwIDIyLjUtNS45IDMxLjgtMTAuOCA0LjktMi42IDEwLjktNyAxNC44LTEwLjRzNS45LTYuMyAzLjEtNi42LTIuNiAyLjYtNiA1LjFjLTQuNCAzLjItOS43IDcuNC0xMy45IDkuOC03LjQgNC4yLTE5LjUgMTAuMi0yOS45IDEwLjJzLTE4LjctNC44LTI0LjktOS43Yy0zLjEtMi41LTUuNy01LTcuNy02LjktMS41LTEuNC0xLjktNC42LTQuMy00LjktMS40LS4xLTEuOCAzLjcgMS43IDYuNXoiXX0sSWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNvdHRvbi1idXJlYXUiLGljb246WzUxMiw1MTIsW10sImY4OWUiLCJNNDc0LjMgMzMwLjRDNDUwLjYgNDIyLjMgMzgwLjEgNDc1IDI3Mi40IDQ3OC44bDAtNDkuMmMwLTQ4IDI2LjQtNzQuNCA3NC40LTc0LjQgNjIgMCA5OS4yLTM3LjIgOTkuMi05OS4yIDAtNjEuNC0zNi41LTk4LjMtOTcuNC05OS4xLTMzLTY5LjMtMTQ2LjUtNjQuNy0xNzcuMiAwLTYwLjkgLjgtOTcuNCAzNy43LTk3LjQgOTkuMSAwIDYyLjEgMzcuMyA5OS40IDk5LjQgOTkuNCA0OCAwIDc0LjYgMjYuMiA3NC42IDc0LjRsMCA0OS4yYy0xMzQuNC01LTIxMS4xLTg1LjEtMjExLjEtMjIzIDAtMTQxLjggODEuNC0yMjMuMiAyMjMuMi0yMjMuMiAxMTQuOCAwIDE4OS44IDUzLjIgMjE0LjcgMTQ4LjhsMjUuMyAwQzQ3My45IDcxLjUgMzg4LjIgOCAyNTkuOCA4IDEwNSA4IDEyIDEwMS4yIDEyIDI1NS44IDEyIDQxMS4xIDEwNS4yIDUwNC4zIDI1OS44IDUwNCAzODguMSA1MDQgNDczLjcgNDQwLjIgNDk5LjUgMzMwLjRsLTI1LjIgMHpNMzU3IDE4Mi4zYzQxLjQgMy40IDY0LjIgMjkgNjQuMiA3My43IDAgNDgtMjYuNCA3NC40LTc0LjQgNzQuNC0yOC42IDAtNDkuMy05LjYtNjEuNi0yNy4zIDgzLjEtMTYuNSA3NS42LTk5LjcgNzEuOC0xMjAuN3ptLTgxLjcgOTcuNGMtMi41LTEwLjMtMTYuMy04NyA1Ni4yLTk3IDIuMyAxMC4xIDE2LjUgODcuMS01Ni4zIDk3bDAgMHpNMjYwIDEzMmMyOC42IDAgNDkgOS43IDYxLjQgMjcuNi0yOC40IDUuNS00OS40IDIwLjYtNjEuNiA0My40LTEyLjItMjIuOS0zMy4yLTM4LTYxLjYtNDMuNCAxMi40LTE3LjcgMzMuMy0yNy40IDYxLjYtMjcuNGwuMi0uM3ptLTcxLjUgNTAuN2M3My4yIDEwLjYgNTguOSA4Ni44IDU2LjUgOTctNzIuNC05LjgtNTktODctNTYuMi05N2wtLjIgMHpNMTczLjIgMzMwLjRjLTQ4IDAtNzQuNC0yNi40LTc0LjQtNzQuNCAwLTQ0LjQgMjIuOS03MCA2NC4yLTczLjctNi44IDM3LjItMS40IDEwNi41IDcxLjYgMTIwLjctMTIuMSAxNy42LTMyLjggMjcuMy02MS4xIDI3LjNsLS4zIDB6bTUzLjIgMTIuNGMxNC4zLTcuNiAyNi0xOS4zIDMzLjYtMzMuNSA3LjggMTQuNSAxOS4zIDI1LjUgMzMuOCAzMy41LTE0LjQgNy42LTI2LjEgMTkuNC0zMy42IDMzLjgtOC0xNC41LTE5LjEtMjYuMi0zMy42LTMzLjhsLS4zIDB6Il19LFBjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJnb29nbGUtd2FsbGV0IixpY29uOls0NDgsNTEyLFtdLCJmMWVlIiwiTTE1Ni44IDEyNi44YzM3LjYgNjAuNiA2NC4yIDExMy4xIDg0LjMgMTYyLjUtOC4zIDMzLjgtMTguOCA2Ni41LTMxLjMgOTguMy0xMy4yLTUyLjMtMjYuNS0xMDEuMy01Ni0xNDguNSA2LjUtMzYuNCAyLjMtNzMuNiAzLTExMi4zek0xMDkuMyAyMDBsLTkzLjIgMGMtNi41IDAtMTAuNSA3LjUtNi41IDEyLjcgNDIuMiA1NC4zIDcxLjcgMTE3LjggOTEuNyAxODcuM2wxMDMuNSAwYy0xNi4yLTY5LjctMzguNy0xMzMuNy04Mi41LTE5My41LTMtNC04LTYuNS0xMy02LjV6bTQ3LjgtODhjNjguNSAxMDggMTMwIDIzNC41IDEzOC4yIDM2OEw0MDkgNDgwYy0xMi0xMzgtNjguNC0yNjUtMTQzLjItMzY4bC0xMDguNyAwek00MDguOSA0My41Yy0xLjgtNi44LTguMi0xMS41LTE1LjItMTEuNWwtODguMyAwYy01LjMgMC05IDUtNy44IDEwLjMgMTMuMiA0Ni41IDIyLjMgOTUuNSAyNi41IDE0NiA0OC4yIDg2LjIgNzkuNyAxNzguMyA5MC42IDI3MC44IDE1LjgtNjAuNSAyNS4zLTEzMy41IDI1LjMtMjAzIDAtNzMuNi0xMi4xLTE0NS4xLTMxLjEtMjEyLjZ6Il19LE5jdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmb3Vyc3F1YXJlIixpY29uOlszODQsNTEyLFtdLCJmMTgwIiwiTTMzMS4xIDNMNTcuOSAzQzIwLjQgMyA4IDMxLjMgOCA0OS4xTDggNDgyLjljMCAyMC4zIDEyLjEgMjcuNyAxOC4yIDMwLjEgNi4yIDIuNSAyMi44IDQuNiAzMi45LTcuMSAxMjguOS0xNDkuNCAxMzEuMS0xNTEuOSAxMzEuMS0xNTEuOSAzLjEtMy40IDMuNC0zLjEgNi44LTMuMWw4My40IDBjMzUuMSAwIDQwLjYtMjUuMiA0NC4zLTM5LjdsNDguNi0yNDNDMzgxLjggMjUuOCAzNzEuMSAzIDMzMS4xIDN6TTMxNC44IDc2LjhsLTExLjQgNTkuN2MtMS4yIDYuNS05LjUgMTMuMi0xNi45IDEzLjJsLTEwNi40IDBjLTEyIDAtMjAuNiA4LjMtMjAuNiAyMC4zbDAgMTNjMCAxMiA4LjYgMjAuNiAyMC42IDIwLjZsOTAuNCAwYzguMyAwIDE2LjYgOS4yIDE0LjggMTguMi0xLjggOC45LTEwLjUgNTMuOC0xMS40IDU4LjgtLjkgNC45LTYuOCAxMy41LTE2LjkgMTMuNWwtNzMuNSAwYy0xMy41IDAtMTcuMiAxLjgtMjYuNSAxMi42IDAgMC04LjkgMTEuNC04OS41IDEwOC4zLS45IC45LTEuOCAuNi0xLjgtLjNsMC0zMzguOGMwLTcuNyA2LjgtMTYuNiAxNi42LTE2LjZsMjE5IDBjOC4yIDAgMTUuNiA3LjcgMTMuNSAxNy41eiJdfSxGY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic2hpcnRzaW5idWxrIixpY29uOls0NDgsNTEyLFtdLCJmMjE0IiwiTTEwMCA0MTAuM2wzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjQtNC40IDkuOXptMzkuNCAxNy41bDMwLjYgMTMuNCA0LjQtOS45LTMwLjYtMTMuNC00LjQgOS45em0xNzIuMS0xNGw0LjQgOS45IDMwLjYtMTMuNC00LjQtOS45LTMwLjYgMTMuNHpNMTc5LjEgNDQ1bDMwLjMgMTMuNyA0LjQtOS45LTMwLjMtMTMuNC00LjQgOS42ek02MC40IDM5Mi44bDMwLjYgMTMuNCA0LjQtOS42LTMwLjYtMTMuNy00LjQgOS45em0yMTEuNCAzOC41bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy40em0tMzkuMyAxNy41bDQuNCA5LjkgMzAuNi0xMy43LTQuNC05LjYtMzAuNiAxMy40em0xMTguNC01Mi4ybDQuNCA5LjYgMzAuNi0xMy40LTQuNC05LjktMzAuNiAxMy43ek0xNzAgNDYuNmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em0tNDcuMiAwbC0zMy42IDAgMCAxMC41IDMzLjUgMCAuMS0xMC41em0tNDcuMyAwbC0zMy4yIDAgMCAxMC41IDMzLjMgMC0uMS0xMC41em0xNDEuNSAwbC0zMy4yIDAgMCAxMC41IDMzLjIgMCAwLTEwLjV6bTk0LjUgMGwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptLTk0LjYgMGwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em0xNDEuNSAwbC0zMy4zIDAgMCAxMC41IDMzLjMgMCAwLTEwLjV6TTUyLjggMzUxLjFsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptNzAtMjE1LjlsLTMzLjYgMCAwIDEwLjUgMzMuNSAwIC4xLTEwLjV6bS03MCAxMC42bDIyLjggMCAwLTEwLjUtMzMuNiAwIDAgMzMuNSAxMC44IDAgMC0yM3pNMjIxLjcgMzc0LjRhOTEuMyA5MS4zIDAgMSAwIDAtMTgyLjYgOTEuMyA5MS4zIDAgMSAwIDAgMTgyLjZ6TTE3My41IDI2My4zYzAtMjUuNCAyOS41LTMxLjggNDkuNi0zMS44IDE2LjkgMCAyOS4yIDUuOCA0NC4zIDEybC04LjggMTYuOS0uOSAwYy02LjQtOS45LTI0LjgtMTMuMS0zNS42LTEzLjEtOSAwLTI5LjggMS44LTI5LjggMTQuOSAwIDIxLjYgNzguNS0xMC4yIDc4LjUgMzcuOSAwIDI1LjQtMzEuNSAzMS4yLTUxIDMxLjItMTguMSAwLTMyLjQtMi45LTQ3LjItMTIuMmw5LTE4LjQgLjkgMGM2LjEgMTIuMiAyMy42IDE0LjkgMzUuOSAxNC45IDguNyAwIDMyLjctMS4yIDMyLjctMTQuMyAwLTI2LjEtNzcuNiA2LjMtNzcuNi0zOHpNNTIuOCAxNzguNGwtMTAuOCAwIDAgMzMuNiAxMC44IDAgMC0zMy42ek0zOTUuMiAzODQuNmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTUyLjggMzA3LjlsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXpNMCAzLjdsMCA0MDYgMjIxLjcgOTguNiAyMjYuMy05OC42IDAtNDA2LTQ0OCAwek00MTguOCAzOTAuOGwtMTk2LjggODUuNy0xOTIuOC04NS43IDAtMjcwLjEgMzg5LjcgMCAwIDI3MC4xLS4xIDB6bTAtMjk5LjNsLTM4OS42IDAgMC01OC42IDM4OS43IDAgMCA1OC42LS4xIDB6TTUyLjggMjIxLjZsLTEwLjggMCAwIDMzLjUgMTAuOCAwIDAtMzMuNXptMCA0My4ybC0xMC44IDAgMCAzMy41IDEwLjggMCAwLTMzLjV6TTE3MCAxMzUuMmwtMzMuNSAwIDAgMTAuNSAzMy41IDAgMC0xMC41ek0zOTUuMiAyOTguM2wxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6bTAtNDMuMmwxMC44IDAgMC0zMy41LTEwLjggMCAwIDMzLjV6TTIxNyAxMzUuMmwtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41ek0zOTUuMiAyMTJsMTAuOCAwIDAtMzMuNS0xMC44IDAgMCAzMy41em0wIDEyOS41bDEwLjggMCAwLTMzLjUtMTAuOCAwIDAgMzMuNXptLTEzMS0yMDYuM2wtMzMuMiAwIDAgMTAuNSAzMy4yIDAgMC0xMC41em00Ny4zIDBsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXptODMuNyAzMy42bDEwLjggMCAwLTMzLjUtMzMuNSAwIDAgMTAuNSAyMi44IDAtLjEgMjN6bS0zNi40LTMzLjZsLTMzLjUgMCAwIDEwLjUgMzMuNSAwIDAtMTAuNXoiXX0sT2N0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1pbnRiaXQiLGljb246WzUxMiw1MTIsW10sImU2MmYiLCJNNzMuMiA1MTJsMC03My4xIDI5Mi41IDAgMC03My4yIDczLjIgMCAwLTE0Ni4zIDczLjEgMCAwLTIxOS40LTIxOS40IDAgMCA3My4xLTE0Ni4zIDAgMCA3My4yLTczLjEgMCAwIDI5Mi42LTczLjIgMCAwIDczLjEgNzMuMiAwem03My4xLTIxOS40bDczLjIgMCAwIDczLjEtNzMuMiAwIDAtNzMuMXptNzMuMi03My4xbDczLjEgMCAwIDczLjEtNzMuMiAwIDAtNzMuMiAuMSAuMXptNzMuMSAwbDAtNzMuMiA3My4yIDAgMCA3My4xLTczLjIgMCAwIC4xek0zNjUuNyA3My4xbDczLjIgMCAwIDczLjItNzMuMiAwIDAtNzMuMnoiXX0sUmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Inp1bGlwIixpY29uOls0NDgsNTEyLFtdLCJlODUzIiwiTTQyNCA5OWMwIDIyLjYtMTAuMSA0Mi42LTI1LjUgNTQuOEwyNDkuMyAyODcuN2MtMi44IDIuNC02LjQtMS41LTQuNC00LjdsNTQuNy0xMTAuMWMxLjUtMy4xLS41LTYuOS0zLjYtNi45TDgzLjggMTY2QzUwLjkgMTY2IDI0IDEzNS45IDI0IDk5IDI0IDYyLjEgNTAuOSAzMiA4My44IDMybDI4MC40IDBDMzk3LjEgMzIgNDI0IDYyLjEgNDI0IDk5ek04My44IDQ4MGwyODAuNCAwYzMyLjkgMCA1OS44LTMwLjIgNTkuOC02N3MtMjYuOS02Ny01OS44LTY3bC0yMTIuMyAwYy0zLjEgMC01LjEtMy44LTMuNi02LjlMMjAzLjEgMjI5YzItMy4yLTEuNi03LjEtNC40LTQuN0w0OS41IDM1OC4yQzM0LjEgMzcwLjQgMjQgMzkwLjQgMjQgNDEzIDI0IDQ0OS44IDUwLjkgNDgwIDgzLjggNDgweiJdfSxCY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RheWxpbmtlZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNmNSIsIk0zODYuNyAyOTIuNWwyLjcgMi43LTE3MC0xNjcuM2MtMy41LTMuNS05LjctMy43LTEzLjgtLjVMMTQ4LjMgMTcxYy00LjIgMy4yLTQuNiA4LjctMS4xIDEyLjJsNjguMSA2NC4zYzMuNiAzLjUgOS45IDMuNyAxNCAuNWwuMS0uMWM0LjEtMy4yIDEwLjQtMyAxNCAuNWw4NCA4MS4zYzMuNiAzLjUgMy4yIDktLjkgMTIuMmwtOTMuMiA3NGMtNC4yIDMuMy0xMC41IDMuMS0xNC4yLS40TDY3LjIgMjY4Yy0zLjUtMy41LTkuNy0zLjctMTMuOS0uNUw3LjUgMzAyLjRjLTQuMiAzLjItNC43IDguNy0xLjIgMTIuMkwyMTUgNTEwLjdzNy40IDYuOCAxNy4zLS44TDQzMC4zIDM0NmM0LTMuMiA0LjQtOC43IC43LTEyLjJsLTQ0LjMtNDEuM3ptNTQuNS04My40TDIzMC43IDIuNWMtMS41LTEuMi04LTUuNS0xNi4zIDEuMUw3LjYgMTY1LjdjLTQuMiAzLjItNC44IDguNy0xLjIgMTIuMmw0Mi4zIDQxLjcgMTcxLjcgMTY1LjFjMy43IDMuNSAxMC4xIDMuNyAxNC4zIC40bDUwLjItMzguOC0uMy0uMyA3LjctNmM0LjItMy4yIDQuNi04LjcgLjktMTIuMmwtNTcuMS01NC40Yy0zLjYtMy41LTEwLTMuNy0xNC4yLS41bC0uMSAuMWMtNC4yIDMuMi0xMC41IDMuMS0xNC4yLS40TDExMyAxODAuOGMtMy42LTMuNS0zLjEtOC45IDEuMS0xMi4ybDkyLjItNzEuNWM0LjEtMy4yIDEwLjMtMyAxMy45IC41bDE2MC40IDE1OWMzLjcgMy41IDEwIDMuNyAxNC4xIC41bDQ1LjgtMzUuOGM0LjEtMy4yIDQuNC04LjcgLjctMTIuMnoiXX0sSGN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IndlYmZsb3ciLGljb246WzY0MCw1MTIsW10sImU2NWMiLCJNNjQwIDY0bC0yMDQuMiAzOTkuMi0xOTEuOCAwIDg1LjUtMTY1LjUtMy44IDBDMjU1LjEgMzg5LjMgMTQ5LjkgNDQ5LjUgMCA0NjMuMkwwIDMwMC4xczk1LjktNS43IDE1Mi4zLTY0LjlsLTE1Mi4zIDAgMC0xNzEuMiAxNzEuMSAwIDAgMTQwLjggMy44IDAgNzAtMTQwLjggMTI5LjQgMCAwIDEzOS45IDMuOCAwIDcyLjYtMTM5LjkgMTg5LjMgMHoiXX0scWN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlbnJlbiIsaWNvbjpbNTEyLDUxMixbXSwiZjE4YiIsIk0yMTQgMTY5LjFDMjE0IDI3OS41IDE1MyAzNzQuNSA2Ni40IDQxNi41IDMwIDM3My4yIDggMzE3LjcgOCAyNTYuNiA4IDEzMy45IDk3LjEgMzIuMiAyMTQgMTIuNWwwIDE1Ni42ek0yNTUgNTA0Yy00Mi45IDAtODMuMy0xMS0xMTguNS0zMC40IDU3LjItMzYuMSAxMDMuNC05MC43IDExOC41LTE1NC42IDE1LjUgNjMuOSA2MS43IDExOC41IDExOC44IDE1NC43LTM1LjEgMTkuMy03NS41IDMwLjMtMTE4LjggMzAuM3ptMTkwLjYtODcuNUMzNTkgMzc0LjUgMjk4IDI3OS42IDI5OCAxNjkuMWwwLTE1Ni42YzExNi45IDE5LjcgMjA2IDEyMS40IDIwNiAyNDQuMSAwIDYxLjEtMjIgMTE2LjYtNTguNCAxNTkuOXoiXX0samN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImtvLWZpIixpY29uOls1MTIsNTEyLFtdLCJlODU2IiwiTTI0OS44IDc1Yzg5LjggMCAxMTMgMS4xIDE0Ni4zIDQuNCA3OC4xIDcuOCAxMjMuNiA1NiAxMjMuNiAxMjUuMmwwIDguOWMwIDY0LjMtNDcuMSAxMTYuOS0xMTAuOCAxMjIuNC01IDE2LjYtMTIuOCAzMy4yLTIzLjMgNDkuOS0yNC40IDM3LjctNzMuMSA4NS4zLTE2Mi45IDg1LjNsLTE3LjcgMGMtNzMuMSAwLTEyOS43LTMxLjYtMTYzLjUtODkuMi0yOS45LTUwLjQtMzMuOC0xMDYuNC0zMy44LTE4MS4yIDAtNzMuNyA0NC40LTExMy42IDk2LjQtMTIwLjIgMzkuMy01IDg4LjEtNS41IDE0NS43LTUuNXptMCA0MS42Yy02MC40IDAtMTAzLjYgLjUtMTM2LjMgNS41LTQ2IDYuNy02NC4zIDMyLjctNjQuMyA3OS4ybC4yIDI1LjdjMS4yIDU3LjMgNy4xIDk3LjEgMjcuNSAxMzQuNSAyNi42IDQ5LjMgNzQuOCA2OC4yIDEyOS43IDY4LjJsMTcuMiAwYzcyIDAgMTA3LTM0LjkgMTI2LjMtNjUuNCA5LjQtMTUuNSAxNy43LTMyLjcgMjIuMi01NC4zbDMuMy0xMy44IDE5LjkgMGM0NC4zIDAgODIuNi0zNiA4Mi42LTgybDAtOC4zYzAtNTEuNS0zMi4yLTc4LjctODguMS04NS4zLTMxLjYtMi44LTUwLjQtMy45LTE0MC4yLTMuOXpNMjY3IDE2OS4yYzM4LjIgMCA2NC44IDMxLjYgNjQuOCA2NyAwIDMyLjctMTguMyA2MS00Mi4xIDgzLjEtMTUgMTUtMzkuMyAzMC41LTU1LjkgNDAuNS00LjQgMi44LTEwIDQuNC0xNi43IDQuNC01LjUgMC0xMC41LTEuNy0xNS41LTQuNC0xNi42LTEwLTQxLTI1LjUtNTYuNS00MC41LTIxLjgtMjAuOC0zOS4yLTQ2LjktNDEuMy03N2wtLjItNi4xYzAtMzUuNSAyNS41LTY3IDY0LjMtNjcgMjIuNyAwIDM4LjggMTEuNiA0OS4zIDI3LjcgMTEuNi0xNi4xIDI3LjItMjcuNyA0OS45LTI3Ljd6bTEyMi41LTMuOWMyOC4zIDAgNDMuOCAxNi42IDQzLjggNDMuMnMtMTUuNSA0Mi43LTQzLjggNDIuN2MtOC45IDAtMTMuOC01LTEzLjgtMTEuN2wwLTYyLjZjMC02LjcgNS0xMS42IDEzLjgtMTEuNnoiXX0sVmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJldiIsaWNvbjpbNDQ4LDUxMixbXSwiZjViMiIsIk0xNTguNyAyNzQuOWE2NS42IDY1LjYgMCAxIDEgMTMxLjIgMCA2NS42IDY1LjYgMCAxIDEgLTEzMS4yIDB6bTI3MC43LTUuMWwtLjEgMGMtLjctMjkuMy03LjctNTguMi0yMC41LTg0LjZzLTMxLjItNDkuNy01My44LTY4LjRMMzA5LjYgMTQzYzIyIDE0LjIgNDAuMSAzMy44IDUyLjcgNTYuOHMxOS4xIDQ4LjggMTkuMSA3NS4xYzAgODYuNi03MC41IDE1Ny4xLTE1Ny4xIDE1Ny4xUzY3LjIgMzYxLjUgNjcuMiAyNzQuOWMwLTgxLjkgNjMtMTQ5LjMgMTQzLTE1Ni40bDAgMzkuMSAxMDguOC02Mi44LTEwOC44LTYyLjggMCAzOC4zYy0xMDYuNyA3LjItMTkxIDk2LTE5MSAyMDQuNiAwIDExMS42IDg5LjEgMjAyLjMgMjAwLjEgMjA1bDAgLjEgMjEwLjIgMCAwLTIxMC4yeiJdfSxVY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2V5Y2RuIixpY29uOls1MTIsNTEyLFtdLCJmM2JhIiwiTTYzLjggNDA5LjNsNjAuNS01OWMzMi4xIDQyLjggNzEuMSA2NiAxMjYuNiA2Ny40IDMwLjUgLjcgNjAuMy03IDg2LjQtMjIuNCA1LjEgNS4zIDE4LjUgMTkuNSAyMC45IDIyLTMyLjIgMjAuNy02OS42IDMxLjEtMTA4LjEgMzAuMi00My4zLTEuMS04NC42LTE2LjctMTE3LjctNDQuNCAuMy0uNi0zOC4yIDM3LjUtMzguNiAzNy45IDkuNSAyOS44LTEzLjEgNjIuNC00Ni4zIDYyLjQtMjYuOC0uMS00Ny41LTIxLjctNDcuNS00OC41IDAtMzQuMyAzMy4xLTU2LjYgNjMuOC00NS42ek00MTguNyAxNTYuOWMxOS4xIDMxLjMgMjkuNiA2Ny40IDI4LjcgMTA0LTEuMSA0NC44LTE5IDg3LjUtNDguNiAxMjEgLjMgLjMgMjMuOCAyNS4yIDI0LjEgMjUuNSA5LjYtMS4zIDE5LjIgMiAyNS45IDkuMSAxMS4zIDEyIDEwLjkgMzAuOS0xLjEgNDIuNC0xMiAxMS4zLTMwLjkgMTAuOS00Mi40LTEuMS02LjctNy05LjQtMTYuOC03LjYtMjYuMy0yNC45LTI2LjYtNDQuNC00Ny4yLTQ0LjQtNDcuMiA0Mi43LTM0LjEgNjMuMy03OS42IDY0LjQtMTI0LjIgLjctMjguOS03LjItNTcuMi0yMS4xLTgyLjJsMjIuMS0yMXpNMTA0IDUzLjFjNi43IDcgOS40IDE2LjggNy42IDI2LjNsNDUuOSA0OC4xYy00LjcgMy44LTEzLjMgMTAuNC0yMi44IDIxLjMtMjUuNCAyOC41LTM5LjYgNjQuOC00MC43IDEwMi45LS43IDI4LjkgNi4xIDU3LjIgMjAgODIuNEw5MiAzNTUuNmMtMTkuMy0zMS42LTI4LjktNjcuNy0yNy44LTEwNC43IDEtNDQuNiAxOC4zLTg3LjYgNDcuNS0xMjEuMUw4Ni40IDEwMy40Yy05LjYgMS4zLTE5LjItMi0yNS45LTkuMS0xMS4zLTEyLTEwLjktMzAuOSAxLjEtNDIuNCAxMS45LTExLjIgMzAuNi0xMC45IDQyLjQgMS4yek00NjQuOSA4YzI2IDAgNDcuMSAyMi40IDQ3LjEgNDguM1M0OTAuOSAxMDQgNDY0LjkgMTA0Yy02LjMgLjEtMTQtMS4xLTE1LjktMS44bC02Mi45IDU5LjdjLTMyLjctNDMuNi03Ni43LTY1LjktMTI2LjktNjcuMi0zMC41LS43LTYwLjMgNi44LTg2LjIgMjIuNGwtMjEuMS0yMkMxODQuMSA3NC4zIDIyMS41IDY0IDI2MCA2NC45IDMwMy4zIDY2IDM0NC42IDgxLjYgMzc3LjcgMTA5LjVsNDEuMS0zOC42Yy0xLjUtNC43LTIuMi05LjYtMi4yLTE0LjUtLjEtMjYuNyAyMi4zLTQ4LjQgNDguMy00OC40ek0yNTYuNyAxMTMuNGM1LjUgMCAxMC45IC40IDE2LjQgMS4xIDc4LjEgOS44IDEzMy40IDgxLjEgMTIzLjggMTU5LjEtOS44IDc4LjEtODEuMSAxMzMuNC0xNTkuMSAxMjMuOC03OC4xLTkuOC0xMzMuNC04MS4xLTEyMy44LTE1OS4yIDkuMy03Mi40IDcwLjEtMTI0LjYgMTQyLjctMTI0Ljh6bS01OSAxMTkuNGMuNiAyMi43IDEyLjIgNDEuOCAzMi40IDUyLjJsLTExIDUxLjcgNzMuNyAwLTExLTUxLjdjMjAuMS0xMC45IDMyLjEtMjkgMzIuNC01Mi4yLS40LTMyLjgtMjUuOC01Ny41LTU4LjMtNTguMy0zMi4xIC44LTU3LjMgMjQuOC01OC4yIDU4LjN6Il19LFdjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJoaXJlLWEtaGVscGVyIixpY29uOls1MTIsNTEyLFtdLCJmM2IwIiwiTTQ0My4xIDBMNzEuOSAwQzY3LjkgMzcuMyAzNy40IDY3LjggMCA3MS43TDAgNDQzLjJjMzcuNCA0LjkgNjYgMzIuNCA3MS45IDY4LjhsMzcyLjIgMGMzLTM2LjQgMzIuNS02NS44IDY3LjktNjkuOGwwLTM3MC41QzQ3NS42IDY1LjggNDQ3IDM2LjQgNDQzLjEgMHptLTM3IDQwNC45Yy0zNi4zIDAtMTguOC0yLTU1LjEtMi0zNS44IDAtMjEgMi01Ni4xIDItNS45IDAtNC45LTguMiAwLTkuOCAyMi44LTcuNiAyMi45LTEwLjIgMjQuNi0xMi44IDEwLjQtMTUuNiA1LjktODMgNS45LTExMyAwLTUuMy02LjQtMTIuOC0xMy44LTEyLjhsLTExMS4yIDBjLTcuNCAwLTEzLjggNy41LTEzLjggMTIuOCAwIDMwLTQuNSA5Ny40IDUuOSAxMTMgMS43IDIuNSAxLjggNS4yIDI0LjYgMTIuOCA0LjkgMS42IDYgOS44IDAgOS44LTM1LjEgMC0yMC4zLTItNTYuMS0yLTM2LjMgMC0xOC44IDItNTUuMSAyLTcuOSAwLTUuOC0xMC44IDAtMTAuOCAxMC4yLTMuNCAxMy41LTMuNSAyMS43LTEzLjggNy43LTEyLjkgNy45LTQ0LjQgNy45LTEyNy44bDAtMTAxLjJjMC0yMi4yLTEyLjItMjguMy0yOC42LTMyLjQtOC44LTIuMi00LTExLjggMS0xMS44IDM2LjUgMCAyMC42IDIgNTcuMSAyIDMyLjcgMCAxNi41LTIgNDkuMi0yIDMuMyAwIDguNSA4LjMgMSAxMC44LTQuOSAxLjYtMjcuNiAzLjctMjcuNiAzOS4zIDAgNDUuNi0uMiA1NS44IDEgNjguOCAwIDEuMyAyLjMgMTIuOCAxMi44IDEyLjhsMTA5LjIgMGMxMC41IDAgMTIuOC0xMS41IDEyLjgtMTIuOCAxLjItMTMgMS0yMy4yIDEtNjguOCAwLTM1LjYtMjIuNy0zNy43LTI3LjYtMzkuMy03LjUtMi41LTIuMy0xMC44IDEtMTAuOCAzMi43IDAgMTYuNSAyIDQ5LjIgMiAzNi41IDAgMjAuNi0yIDU3LjEtMiA0LjkgMCA5LjkgOS42IDEgMTEuOC0xNi40IDQuMS0yOC42IDEwLjMtMjguNiAzMi40bDAgMTAxLjJjMCA4My40IC4xIDExNC45IDcuOSAxMjcuOCA4LjIgMTAuMiAxMS40IDEwLjQgMjEuNyAxMy44IDUuOCAwIDcuOCAxMC44IDAgMTAuOHoiXX0sc25lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1oYWNrZXItbmV3cyIsaWNvbjpbNDQ4LDUxMixbImhhY2tlci1uZXdzLXNxdWFyZSJdLCJmM2FmIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yMSAyMjkuMnMuMS0uMSAuMS0uMiAuMS0uMiAuMi0uMmMwIC4xIDAgLjMtLjEgLjRsLS4yIDB6TTIzOS4yIDM4NGwtMzEuNCAwIDAtMTAyLjctNzkuOC0xNTMuMyAzNy4zIDBjNDEuNSA3Ny43IDQ4LjEgOTUuOCA1NC4xIDExMiAxLjYgNC4zIDMuMSA4LjUgNS4yIDEzLjYgMy4yLTcgNS4xLTExLjkgNy4xLTE3LjMgNS45LTE1LjMgMTIuOC0zMy4yIDUzLjUtMTA4LjNsMzQuOCAwLTgwLjggMTU1LjEgMCAxMDAuOXoiXX0sR2N0PXNuZSxZY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucy1wZC1hbHQiLGljb246WzUxMiw1MTIsW10sImY0ZWQiLCJNMjU1LjYgOEMxMTIuNyA4IDggMTIzLjEgOCAyNTYgOCAzOTQuNSAxMjEuNiA1MDQgMjU1LjYgNTA0IDM4NS41IDUwNCA1MDQgNDAzLjEgNTA0IDI1NiA1MDQgMTE4LjEgMzk3LjQgOCAyNTUuNiA4em0uOCA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjUtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjYgMCAyMDIuOSA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNiAyMDIuOC0yMDIuOCAyMDIuOHpNMzI0LjcgMTg2bC01My4yIDAgMCAxMzcuMiA1My4yIDBjMjEuNCAwIDcwLTUuMSA3MC02OC42IDAtNjMuNC00OC42LTY4LjYtNzAtNjguNnptLjggMTA4LjVsLTE5LjkgMCAwLTc5LjcgMTkuNC0uMWMzLjggMCAzNS0yLjEgMzUgMzkuOSAwIDI0LjYtMTAuNSAzOS45LTM0LjUgMzkuOXpNMjExLjcgMTg2bC02OC4yIDAgMCAxMzcuMyAzNC42IDAgMC00NC4zIDI3IDBjNTQuMSAwIDU3LjEtMzcuNSA1Ny4xLTQ2LjUgMC0zMS0xNi44LTQ2LjUtNTAuNS00Ni41em0tNC45IDY3LjNsLTI5LjIgMCAwLTQxLjYgMjguMyAwYzMwLjkgMCAyOC44IDQxLjYgLjkgNDEuNnoiXX0sWmN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im9yY2lkIixpY29uOls1MTIsNTEyLFtdLCJmOGQyIiwiTTI5NC43IDE4OC4ybC00NS45IDAgMCAxNTMuOCA0Ny41IDBjNjcuNiAwIDgzLjEtNTEuMyA4My4xLTc2LjkgMC00MS42LTI2LjUtNzYuOS04NC43LTc2Ljl6TTI1NiA4YTI0OCAyNDggMCAxIDAgMCA0OTYgMjQ4IDI0OCAwIDEgMCAwLTQ5NnpNMTc1LjIgMzY4LjhsLTI5LjggMCAwLTIwNy41IDI5LjggMCAwIDIwNy41ek0xNjAuMyA5OC41YTE5LjYgMTkuNiAwIDEgMSAwIDM5LjIgMTkuNiAxOS42IDAgMSAxIDAtMzkuMnpNMzAwIDM2OWwtODEgMCAwLTIwNy43IDgwLjYgMGM3Ni43IDAgMTEwLjQgNTQuOCAxMTAuNCAxMDMuOSAwIDUzLjMtNDEuNyAxMDMuOS0xMTAgMTAzLjl6Il19LGxuZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJib2FyZC1nYW1lLWdlZWsiLGljb246WzY0MCw1MTIsWyJiZ2ciXSwiZTg1NSIsIk0xNjguOCAxNjguM2wzMC4xLTguMi0xMi4zIDk4LjggMTYuNyAxNi4xLTM4LjkgOTEuMi0xMTEuOCA0MS4yLTUyLjYtMTMxLjggMTcuNy0xNy0xMC41LTg0LjMgMTkxLjItNzAuMy0yOS41IDY0LjN6bTE4MC42IDE2LjVjMTEuNiAwIDE5IDcuNCAxOSAxNy45bDAgMzEuNWMwIDkuNy02LjMgMTguOS0xOS41IDIyLjEgMTMuMSAzLjEgMjAuNSAxMiAyMC41IDIxLjRsMCAzMC45YzAgMTEuMS03LjQgMTguMS0xOSAxOC4xbC04OS4xIDAgMC0xNDEuOCA4OCAwek0yOTggMjk5LjhsMzMgMGMxLjUgMCAyLjEtMSAyLjEtMi4xbDAtMjYuOWMwLTEtLjYtMi4zLTIuMS0yLjNsLTMzIDAgMCAzMS4zem0wLTU3LjNsMzMgMGMxLjUgMCAyLjEtMS4xIDIuMS0yLjNsMC0yNC44YzAtMS0uNi0yLjMtMi4xLTIuM2wtMzMgMCAwIDI5LjR6bTIwNC4xLTI3LjJsLTY1LjYgMGMtMSAwLTIuMSAxLjEtMi4xIDIuM2wwIDc2LjFjMCAxLjMgMSAyLjEgMi4xIDIuMWwyOS43IDBjMS41IDAgMi4zLS44IDIuMy0yLjFsMC0yNC0xOS4zIDAgMTIuOC0zMCA0MC4xIDAgMCA3MC44YzAgOS4yLTcuMiAxNi4yLTE2LjMgMTYuMmwtNzEuNSAwYy05LjEgMC0xNi41LTctMTYuNS0xNi4ybDAtMTA5LjdjMC04LjYgNy40LTE2IDE2LjUtMTZsODcuOCAwIDAgMzAuNXptMTMyLjYgMGwtNjUuNiAwYy0xLjEgMC0yLjEgMS4xLTIuMSAyLjNsMCA3Ni4xYzAgMS4zIDEgMi4xIDIuMSAyLjFsMjkuNiAwYzEuNSAwIDIuMy0uOCAyLjMtMi4xbDAtMjQtMTkuMiAwIDEyLjgtMzAgNDAuMSAwIDAgNzAuOGMwIDkuMi03LjIgMTYuMi0xNi4zIDE2LjJsLTcxLjUgMGMtOS4xIDAtMTYuNS02LjktMTYuNS0xNi4ybDAtMTA5LjdjMC04LjYgNy40LTE2IDE2LjUtMTZsODcuOCAwIDAgMzAuNXoiXX0sWGN0PWxuZSxRY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmVoYW5jZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFiNCIsIk0yMzIgMjM3LjJjMzEuOC0xNS4yIDQ4LjQtMzguMiA0OC40LTc0IDAtNzAuNi01Mi42LTg3LjgtMTEzLjMtODcuOGwtMTY3LjEgMCAwIDM1NC40IDE3MS44IDBjNjQuNCAwIDEyNC45LTMwLjkgMTI0LjktMTAyLjkgMC00NC41LTIxLjEtNzcuNC02NC43LTg5Ljd6TTc3LjkgMTM1LjlsNzMuMSAwYzI4LjEgMCA1My40IDcuOSA1My40IDQwLjUgMCAzMC4xLTE5LjcgNDIuMi00Ny41IDQyLjJsLTc5IDAgMC04Mi43em04My4zIDIzMy43bC04My4zIDAgMC05Ny42IDg0LjkgMGMzNC4zIDAgNTYgMTQuMyA1NiA1MC42IDAgMzUuOC0yNS45IDQ3LTU3LjYgNDd6TTUxOS43IDEyOC45bC0xNDMuNyAwIDAtMzQuOSAxNDMuNyAwIDAgMzQuOXpNNTc2IDMwNS4yYzAtNzUuOS00NC40LTEzOS4yLTEyNC45LTEzOS4yLTc4LjIgMC0xMzEuMyA1OC44LTEzMS4zIDEzNS44IDAgNzkuOSA1MC4zIDEzNC43IDEzMS4zIDEzNC43IDYxLjMgMCAxMDEtMjcuNiAxMjAuMS04Ni4zbC02Mi4yIDBjLTYuNyAyMS45LTM0LjMgMzMuNS01NS43IDMzLjUtNDEuMyAwLTYzLTI0LjItNjMtNjUuM2wxODUuMSAwYy4zLTQuMiAuNi04LjcgLjYtMTMuMnpNMzkwLjQgMjc0YzIuMy0zMy43IDI0LjctNTQuOCA1OC41LTU0LjggMzUuNCAwIDUzLjIgMjAuOCA1Ni4yIDU0LjhsLTExNC43IDB6Il19LEpjdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJtb25lcm8iLGljb246WzUxMiw1MTIsW10sImYzZDAiLCJNMzYwIDM4NGwxMDguNCAwQzQyNSA0NTUuOSAzNDYuMSA1MDQgMjU2IDUwNFM4NyA0NTUuOSA0My42IDM4NGwxMDguNCAwIDAtMTI3LjggMTA0IDEwNC44IDEwNC0xMDUgMCAxMjh6TTk2IDMzNmwwLTIwOCAxNTkuNCAxNTkuNCAxNjAuNi0xNTkuNCAwIDIwOCA3NC44IDBjOC41LTI1LjEgMTMuMi01MiAxMy4yLTgwIDAtMTM3LTExMS0yNDgtMjQ4LTI0OFM4IDExOSA4IDI1NmMwIDI4IDQuNiA1NC45IDEzLjIgODBMOTYgMzM2eiJdfSxLY3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmlnbWEiLGljb246WzM4NCw1MTIsW10sImY3OTkiLCJNMTQgOTUuOEMxNCA0Mi45IDU2LjkgMCAxMDkuOCAwTDI3NC4yIDBjNTIuOSAwIDk1LjggNDIuOSA5NS44IDk1LjggMCAzMy41LTE3LjIgNjMtNDMuMiA4MC4xIDI2IDE3LjEgNDMuMiA0Ni42IDQzLjIgODAuMSAwIDUyLjktNDIuOSA5NS44LTk1LjggOTUuOGwtMi4xIDBjLTI0LjggMC00Ny40LTkuNC02NC40LTI0LjlsMCA4OC4zYzAgNTMuNi00NCA5Ni44LTk3LjQgOTYuOC01Mi44IDAtOTYuMy00Mi44LTk2LjMtOTUuOCAwLTMzLjUgMTcuMi02MyA0My4yLTgwLjEtMjYtMTcuMS00My4yLTQ2LjYtNDMuMi04MC4xczE3LjItNjMgNDMuMi04MC4xQzMxLjIgMTU4LjggMTQgMTI5LjMgMTQgOTUuOHptMTYyLjMgOTUuOGwtNjYuNSAwYy0zNS42IDAtNjQuNCAyOC44LTY0LjQgNjQuNCAwIDM1LjQgMjguNiA2NC4yIDY0IDY0LjRsNjYuOSAwIDAtMTI4Ljh6TTIwNy43IDI1NmMwIDM1LjYgMjguOCA2NC40IDY0LjQgNjQuNGwyLjEgMGMzNS42IDAgNjQuNC0yOC44IDY0LjQtNjQuNHMtMjguOC02NC40LTY0LjQtNjQuNGwtMi4xIDBjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40em0tOTcuOSA5NS44bC0uNCAwYy0zNS40IC4yLTY0IDI5LTY0IDY0LjRzMjkuMiA2NC40IDY0LjkgNjQuNGMzNi4zIDAgNjYtMjkuNCA2Ni02NS41bDAtNjMuNC02Ni41IDB6bTAtMzIwLjRjLTM1LjYgMC02NC40IDI4LjgtNjQuNCA2NC40czI4LjggNjQuNCA2NC40IDY0LjRsNjYuNSAwIDAtMTI4LjgtNjYuNSAwem05Ny45IDEyOC44bDY2LjUgMGMzNS42IDAgNjQuNC0yOC44IDY0LjQtNjQuNHMtMjguOC02NC40LTY0LjQtNjQuNGwtNjYuNSAwIDAgMTI4Ljh6Il19LFJBPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imluc3RhZ3JhbSIsaWNvbjpbNDQ4LDUxMixbXSwiZjE2ZCIsIk0yMjQuMyAxNDFhMTE1IDExNSAwIDEgMCAtLjYgMjMwIDExNSAxMTUgMCAxIDAgLjYtMjMwem0tLjYgNDAuNGE3NC42IDc0LjYgMCAxIDEgLjYgMTQ5LjIgNzQuNiA3NC42IDAgMSAxIC0uNi0xNDkuMnptOTMuNC00NS4xYTI2LjggMjYuOCAwIDEgMSA1My42IDAgMjYuOCAyNi44IDAgMSAxIC01My42IDB6bTEyOS43IDI3LjJjLTEuNy0zNS45LTkuOS02Ny43LTM2LjItOTMuOS0yNi4yLTI2LjItNTgtMzQuNC05My45LTM2LjItMzctMi4xLTE0Ny45LTIuMS0xODQuOSAwLTM1LjggMS43LTY3LjYgOS45LTkzLjkgMzYuMXMtMzQuNCA1OC0zNi4yIDkzLjljLTIuMSAzNy0yLjEgMTQ3LjkgMCAxODQuOSAxLjcgMzUuOSA5LjkgNjcuNyAzNi4yIDkzLjlzNTggMzQuNCA5My45IDM2LjJjMzcgMi4xIDE0Ny45IDIuMSAxODQuOSAwIDM1LjktMS43IDY3LjctOS45IDkzLjktMzYuMiAyNi4yLTI2LjIgMzQuNC01OCAzNi4yLTkzLjkgMi4xLTM3IDIuMS0xNDcuOCAwLTE4NC44ek0zOTkgMzg4Yy03LjggMTkuNi0yMi45IDM0LjctNDIuNiA0Mi42LTI5LjUgMTEuNy05OS41IDktMTMyLjEgOXMtMTAyLjcgMi42LTEzMi4xLTljLTE5LjYtNy44LTM0LjctMjIuOS00Mi42LTQyLjYtMTEuNy0yOS41LTktOTkuNS05LTEzMi4xcy0yLjYtMTAyLjcgOS0xMzIuMWM3LjgtMTkuNiAyMi45LTM0LjcgNDIuNi00Mi42IDI5LjUtMTEuNyA5OS41LTkgMTMyLjEtOXMxMDIuNy0yLjYgMTMyLjEgOWMxOS42IDcuOCAzNC43IDIyLjkgNDIuNiA0Mi42IDExLjcgMjkuNSA5IDk5LjUgOSAxMzIuMXMyLjcgMTAyLjctOSAxMzIuMXoiXX0sZTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBlcmJ5dGUiLGljb246WzQ0OCw1MTIsW10sImUwODMiLCJNMzA1LjMgMjg0LjZsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41ek0xNDkuNCAxMjguN2wtNTguNyAwIDAgOTguNyA1OC43IDBjMTYuMyAwIDI5LTQuNiAzOC4yLTEzLjhzMTMuOC0yMS4yIDEzLjgtMzYuMWMwLTE0LjYtNC43LTI2LjMtMTQtMzUuM3MtMjItMTMuNS0zNy45LTEzLjV6TTM2Ni42IDMyTDgxLjQgMzJjLTIxLjYgMC00Mi4yIDguNi01Ny41IDIzLjlTMCA5MS44IDAgMTEzLjRMMCAzOTguNmMwIDIxLjYgOC42IDQyLjIgMjMuOSA1Ny41UzU5LjggNDgwIDgxLjQgNDgwbDI4NS4zIDBjMjEuNiAwIDQyLjItOC42IDU3LjUtMjMuOVM0NDggNDIwLjIgNDQ4IDM5OC42bDAtMjg1LjNjMC0yMS42LTguNi00Mi4yLTIzLjktNTcuNVMzODguMiAzMiAzNjYuNiAzMnptNjMuNiAzNjYuNmMwIDE2LjktNi43IDMzLTE4LjcgNDVzLTI4LjEgMTguNi00NSAxOC43bC0yODUuMyAwYy0xNi45IDAtMzMtNi43LTQ1LTE4LjdzLTE4LjYtMjguMS0xOC43LTQ1bDAtMjg1LjNjMC0xNi45IDYuNy0zMyAxOC43LTQ1czI4LjEtMTguNiA0NS0xOC43bDI4NS4zIDBjMTYuOSAwIDMzIDYuNyA0NSAxOC43czE4LjYgMjguMSAxOC43IDQ1bDAgMjg1LjN6bS0xMjUtMjY5LjlsLTU4LjcgMCAwIDk4LjcgNTguNyAwYzE2LjMgMCAyOS00LjYgMzguMi0xMy44czEzLjgtMjEuMiAxMy44LTM2LjFjMC0xNC42LTQuNy0yNi4zLTE0LTM1LjNzLTIyLTEzLjUtMzcuOS0xMy41eiJdfSxjbmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXZpbWVvIixpY29uOls0NDgsNTEyLFsidmltZW8tc3F1YXJlIl0sImYxOTQiLCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMxOC41IDMwOS41Yy00My41IDU2LjUtODAuMyA4NC44LTExMC40IDg0LjgtMTguNyAwLTM0LjQtMTcuMi00Ny4zLTUxLjYtMy44LTEzLjktNy4zLTI2LjktMTAuNS0zOS0xOC4yLTY4LjMtMjguNi0xMDcuNC00Ni4yLTEwNy40LTIuNCAwLTEwLjggNS0yNS4xIDE1LjFMNjQgMTkyYzctNi4xIDEzLjktMTIuNCAyMC42LTE4LjUgMjkuMS0yNi4zIDU1LjYtNTAuMyA3My41LTUxLjkgMjQuOS0yLjQgNDAuMiAxNC42IDQ2IDUxLjEgMjAuNSAxMjkuNiAyOS42IDE0OS4yIDY2LjggOTAuNSAxMy40LTIxLjIgMjAuNi0zNy4yIDIxLjUtNDguMyAzLjQtMzIuOC0yNS42LTMwLjYtNDUuMi0yMi4yIDE1LjctNTEuNSA0NS44LTc2LjUgOTAuMS03NS4xIDMyLjkgMSA0OC40IDIyLjQgNDYuNSA2NC0xLjQgMzEuMS0yMy4yIDczLjgtNjUuMyAxMjcuOXoiXX0sdDB0PWNuZSxyMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHVzaGVkIixpY29uOls0NDgsNTEyLFtdLCJmM2UxIiwiTTQxNS4xIDExMS45bC05OC41LTkgMTQtMzMuNGMxMC40LTIzLjUtMTAuOC00MC40LTI4LjctMzdMMzAuNiA3Ni45Yy0xNS4xIDIuNy0yNiAxOC4zLTIxLjQgMzYuNkwxMTQuMyA0NjEuOGM2LjUgMjEuMyAzNi43IDI0LjIgNDcuNyA3TDE5Ny4zIDM4OCA0MzIuNSAxNTYuN2MxNi40LTE2LjggNC4zLTQyLjktMTcuNC00NC44ek0zMDUuNyA1My42YzUuMS0uNyA3LjUgMi41IDUuMiA3LjRsLTE2LjggMzkuOS0xNzcuNC0xNi4zIDE4OS0zMXpNMzAuOCAxMDcuOWMtMy4xLTUuMSAxLTEwIDYuMS05LjFsMjQ4LjcgMjIuNy05Ni45IDIzMC43LTE1Ny45LTI0NC4zek0xNDQuMSA0NTYuNGMtMi42IDQtNy45IDMuMS05LjQtMS4yTDUxLjYgMTc5LjcgMTc5LjMgMzc3LjNjLTcgMTUtMzUuMiA3OS4xLTM1LjIgNzkuMXpNNDE2LjkgMTQxLjlsLTE5OC43IDE5NS40IDg5LjctMjEzLjcgMTA2LjQgOS43YzQgMS4xIDUuNyA1LjMgMi42IDguNnoiXX0saTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1peGNsb3VkIixpY29uOls2NDAsNTEyLFtdLCJmMjg5IiwiTTIxMyAzNDYuNmwtMzMuMiAwIDAtMTUxLjUgNi4yLTIxLjYtMTAuNyAwLTM4LjEgMTczLjEtNjEgMC0zOC40LTE3My4xLTEwLjUgMCA1LjkgMjEuNiAwIDE1MS41LTMzLjIgMCAwLTE4MS42IDY1LjcgMCAzNi42IDE3My4xIDguNSAwIDM2LjYtMTczLjEgNjUuNyAwIDAgMTgxLjZ6bTMzMS41LTYzbC04NiA2Mi4xIDAtMzguMSA3Mi45LTUxLjgtNzIuOS01MS44IDAtMzguMSA4NiA2Mi4zIDkuMyAwIDg2LjMtNjIuMyAwIDM4LjEtNzMuMSA1MS44IDczLjEgNTEuOCAwIDM4LjEtODYuMy02Mi4xLTkuMyAwek00MzAuMiAyNzIuM2wtMTgyIDAgMC0zMy4xIDE4MiAwIDAgMzMuMXoiXX0sYTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InlhbmRleC1pbnRlcm5hdGlvbmFsIixpY29uOlszMjAsNTEyLFtdLCJmNDE0IiwiTTEyOS41IDUxMmwwLTE2Ni4xLTExMS0yOTcuOSA1NS44IDAgODEuOCAyMjkuNyA5NC4xLTI3Ny43IDUxLjMgMC0xMjAuNyAzNDcuOCAwIDE2NC4yLTUxLjMgMHoiXX0sbjB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImhpdmUiLGljb246WzUxMiw1MTIsW10sImUwN2YiLCJNMjYwLjQgMjU0LjlMMTMxLjUgMzMuMWMtLjItLjMtLjUtLjYtLjgtLjhzLS43LS4zLTEuMS0uMy0uOCAuMS0xLjEgLjMtLjYgLjUtLjggLjhMLjMgMjU0LjljLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjFMMTI5LjEgNDc4LjljLjIgLjMgLjUgLjYgLjggLjhzLjcgLjMgMS4xIC4zIC44LS4xIDEuMS0uMyAuNi0uNSAuOC0uOEwyNjAuNCAyNTcuMWMuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMXptMzkuMS0yNS43Yy4yIC4zIC41IC42IC44IC44cy43IC4zIDEuMSAuM2w2Ni41IDBjLjQgMCAuOC0uMSAxLjEtLjNzLjYtLjUgLjgtLjggLjMtLjcgLjMtMS4xLS4xLS44LS4zLTEuMUwyNTkuMSAzMy4xYy0uMi0uMy0uNS0uNi0uOC0uOHMtLjctLjMtMS4xLS4zbC02Ni41IDBjLS40IDAtLjggLjEtMS4xIC4zcy0uNiAuNS0uOCAuOC0uMyAuNy0uMyAxLjEgLjEgLjggLjMgMS4xTDI5OS40IDIyOS4yem0yMTIuMyAyNS43TDM4NC45IDMzLjFjLS4yLS4zLS41LS42LS44LS44cy0uNy0uMy0xLjEtLjNsLTY2LjYgMGMtLjQgMC0uOCAuMS0xLjEgLjNzLS42IC41LS44IC44LS4zIC43LS4zIDEuMSAuMSAuOCAuMyAxLjFMNDQwLjcgMjU2IDMxNC41IDQ3Ni43Yy0uMiAuMy0uMyAuNy0uMyAxLjFzLjEgLjggLjMgMS4xIC41IC42IC44IC44IC43IC4zIDEuMSAuM2w2Ni42IDBjLjQgMCAuOC0uMSAxLjEtLjNzLjYtLjUgLjgtLjhMNTExLjcgMjU3LjFjLjItLjMgLjMtLjcgLjMtMS4xcy0uMS0uOC0uMy0xLjF6TTM2NiAyODQuOWwtNjYuNSAwYy0uNCAwLS44IC4xLTEuMSAuM3MtLjYgLjUtLjggLjhMMTg4LjggNDc2LjdjLS4yIC4zLS4zIC43LS4zIDEuMXMuMSAuOCAuMyAxLjEgLjUgLjYgLjggLjggLjcgLjMgMS4xIC4zbDY2LjUgMGMuNCAwIC44LS4xIDEuMS0uM3MuNi0uNSAuOC0uOEwzNjcuOSAyODguM2MuMi0uMyAuMy0uNyAuMy0xLjFzLS4xLS44LS4zLTEuMS0uNS0uNi0uOC0uOC0uNy0uMy0xLjEtLjN6Il19LG8wdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcmVhdGl2ZS1jb21tb25zLXplcm8iLGljb246WzUxMiw1MTIsW10sImY0ZjMiLCJNMjU1LjYgOEMzOTcuNCA4IDUwNCAxMTguMSA1MDQgMjU2IDUwNCA0MDMuMSAzODUuNSA1MDQgMjU1LjYgNTA0IDEyMS42IDUwNCA4IDM5NC41IDggMjU2IDggMTIzLjEgMTEyLjcgOCAyNTUuNiA4em0uOCA0NC43Yy0xMTguMiAwLTIwMy43IDk3LjktMjAzLjcgMjAzLjMgMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOCAuMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0tLjQgNjAuNWMtODEuOSAwLTEwMi41IDc3LjMtMTAyLjUgMTQyLjhTMTc0LjEgMzk4LjggMjU2IDM5OC44IDM1OC41IDMyMS41IDM1OC41IDI1NiAzMzcuOSAxMTMuMiAyNTYgMTEzLjJ6bTAgNTMuOWMzLjMgMCA2LjQgLjUgOS4yIDEuMiA1LjkgNS4xIDguOCAxMi4xIDMuMSAyMS45TDIxMy44IDI5MC40Yy0xLjctMTIuNy0xLjktMjUuMS0xLjktMzQuNCAwLTI4LjggMi04OC45IDQ0LjEtODguOXptNDAuOCA0Ni4yYzIuOSAxNS40IDMuMyAzMS40IDMuMyA0Mi43IDAgMjguOS0yIDg4LjktNDQuMSA4OC45LTEzLjUgMC0zMi42LTcuNy0yMC4xLTI2LjRsNjAuOS0xMDUuMnoiXX0sZG5lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1zbmFwY2hhdCIsaWNvbjpbNDQ4LDUxMixbInNuYXBjaGF0LXNxdWFyZSJdLCJmMmFkIiwiTTM4NCAzMkw2NCAzMmMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdTMCA3OSAwIDk2TDAgNDE2YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zUzQ3IDQ4MCA2NCA0ODBsMzIwIDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdTNDQ4IDQzMyA0NDggNDE2bDAtMzIwYzAtMTctNi43LTMzLjMtMTguNy00NS4zUzQwMSAzMiAzODQgMzJ6bS0zLjkgMzE5LjNsLS4xIC4xYy0yLjUgMi44LTUuNCA1LjEtOC43IDYuOC02LjUgMy42LTEzLjQgNi4zLTIwLjYgOC4yLTEuNCAuNC0yLjcgMS0zLjkgMS44LTIuMiAxLjktMi4xIDQuNi00LjQgOC42LTEuNyAzLTQgNS41LTYuOCA3LjUtNi43IDQuNi0xNC4yIDQuOS0yMi4yIDUuMi03LjIgLjMtMTUuNCAuNi0yNC43IDMuNy0zLjggMS4yLTcuOCAzLjctMTIuNCA2LjUtMTEuMyA2LjktMjYuNyAxNi40LTUyLjMgMTYuNHMtNDAuOS05LjQtNTIuMS0xNi4zYy00LjctMi45LTguNy01LjQtMTIuNS02LjYtOS4zLTMuMS0xNy41LTMuNC0yNC43LTMuNy04LS4zLTE1LjUtLjYtMjIuMi01LjItMi40LTEuNi00LjQtMy43LTYtNi4xLTMuMi00LjYtMi45LTcuOC01LjMtOS45LTEuMy0uOC0yLjYtMS41LTQuMS0xLjgtNy4xLTEuOS0xMy45LTQuNi0yMC4zLTguMS0zLjEtMS42LTUuOS0zLjgtOC4zLTYuMy02LjYtNi44LTguMy0xNC44LTUuNy0yMS44IDMuNC05LjMgMTEuNi0xMi4xIDE5LjQtMTYuMyAxNC44LTggMjYuMy0xOC4xIDM0LjQtMjkuOSAyLjMtMy4zIDQuMy02LjkgNi0xMC42IC44LTIuMiAuOC0zLjMgLjItNC40LS42LS45LTEuMy0xLjYtMi4yLTIuMi0yLjUtMS43LTUuMS0zLjQtNi45LTQuNS0zLjMtMi4xLTUuOS0zLjgtNy41LTUtNi4zLTQuNC0xMC42LTktMTMuNC0xNC4yLTEuOS0zLjYtMy03LjYtMy4zLTExLjZzLjQtOC4xIDEuOS0xMS45YzQuMS0xMC45IDE0LjUtMTcuNyAyNy0xNy43IDIuNiAwIDUuMyAuMyA3LjggLjggLjcgLjIgMS40IC4zIDIgLjUtLjEtNy40IC4xLTE1LjQgLjctMjMuMSAyLjQtMjcuMyAxMS45LTQxLjYgMjEuOS01MyA2LjQtNy4yIDEzLjktMTMuMiAyMi4zLTE3LjkgMTUuMS04LjYgMzIuMi0xMyA1MC45LTEzczM1LjggNC40IDUwLjkgMTNjOC4zIDQuNyAxNS45IDEwLjggMjIuMiAxNy45IDEwIDExLjQgMTkuNSAyNS43IDIxLjkgNTMgLjYgNy43IC45IDE1LjQgLjcgMjMuMSAuNy0uMiAxLjQtLjMgMi4xLS41IDIuNi0uNiA1LjItLjggNy44LS44IDEyLjUgMCAyMi44IDYuOCAyNyAxNy43IDEuNSAzLjggMi4xIDcuOSAxLjkgMTEuOXMtMS40IDgtMy4zIDExLjZjLTIuNyA1LjItNy4xIDkuOS0xMy40IDE0LjItMS43IDEuMi00LjMgMi45LTcuNSA1LTEuOCAxLjItNC41IDIuOS03LjIgNC43LS44IC41LTEuNCAxLjItMS45IDItLjUgMS0uNSAyLjIgLjIgNC4yIDEuNyAzLjggMy43IDcuNCA2LjEgMTAuOCA4LjMgMTIuMSAyMC4yIDIyLjMgMzUuNSAzMC40IDEuNSAuOCAzIDEuNSA0LjQgMi4zIC43IC4zIDEuNiAuOCAyLjUgMS4zIDQuOSAyLjcgOS4yIDYgMTEuNSAxMi4yIDIuNSA2LjkgMSAxNC43LTUuMiAyMS4zem0tMTYuNy0xOC41Yy01MC4zLTI0LjMtNTguMy02MS45LTU4LjctNjQuNy0uNC0zLjQtLjktNiAyLjgtOS41IDMuNi0zLjMgMTkuNS0xMy4yIDI0LTE2LjMgNy4zLTUuMSAxMC41LTEwLjIgOC4yLTE2LjUtMS43LTQuMy01LjctNi0xMC02LTEuMyAwLTIuNyAuMi00IC40LTggMS43LTE1LjggNS44LTIwLjQgNi45LS41IC4xLTEuMSAuMi0xLjcgLjItMi40IDAtMy4zLTEuMS0zLjEtNCAuNi04LjggMS44LTI1LjkgLjQtNDEuOS0xLjktMjItOS0zMi45LTE3LjQtNDIuNi00LjEtNC42LTIzLjEtMjQuNy01OS41LTI0LjdzLTU1LjQgMjAuMS01OS41IDI0LjhjLTguNCA5LjctMTUuNSAyMC42LTE3LjQgNDIuNi0xLjQgMTYtLjEgMzMuMSAuNCA0MS45IC4yIDIuOC0uNyA0LTMuMSA0LS42IDAtMS4xLS4xLTEuNy0uMi00LjUtMS4xLTEyLjMtNS4xLTIwLjMtNi45LTEuMy0uMy0yLjYtLjQtNC0uNC00LjMgMC04LjMgMS42LTEwIDYtMi40IDYuMyAuOCAxMS40IDguMiAxNi41IDQuNCAzLjEgMjAuNCAxMyAyNCAxNi4zIDMuNyAzLjQgMy4yIDYuMSAyLjggOS41LS40IDIuOC04LjQgNDAuNC01OC43IDY0LjctMi45IDEuNC04IDQuNCAuOSA5LjMgMTMuOSA3LjYgMjMuMSA2LjggMzAuMyAxMS40IDYuMSAzLjkgMi41IDEyLjQgNi45IDE1LjQgNS41IDMuOCAyMS42LS4zIDQyLjMgNi42IDE3LjQgNS43IDI4LjEgMjIgNTkgMjJzNDEuOC0xNi4zIDU4LjktMjJjMjAuOC02LjkgMzYuOS0yLjggNDIuMy02LjYgNC40LTMuMSAuOC0xMS41IDYuOS0xNS40IDcuMi00LjYgMTYuNC0zLjggMzAuMy0xMS41IDguOC00LjkgMy44LTcuOSAuOS05LjR6Il19LHMwdD1kbmUsbDB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InRoZW1laXNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjJiMiIsIk0yMDggODguM2MwLTEwIDYuMy0yMS43IDE3LjctMjEuNyAxMS4xIDAgMTcuNyAxMS43IDE3LjcgMjEuNyAwIDEwLjMtNi42IDIxLjctMTcuNyAyMS43LTExLjQgMC0xNy43LTExLjQtMTcuNy0yMS43em0zMDQgMTYwYzAgMzYtMTEuNCAxMDIuMy0zNi4zIDEyOS43LTIyLjkgMjQuOS04Ny40IDYxLjEtMTIwLjkgNzAuNmwtMS4xIC4zIDAgMzIuNmMwIDE2LjMtMTIuNiAzMC42LTI5LjEgMzAuNi0xMCAwLTE5LjQtNS43LTI0LjYtMTQuMy01LjQgOC42LTE0LjkgMTQuMy0yNC45IDE0LjNzLTE5LjQtNS43LTI0LjktMTQuM2MtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTEwLjMgMC0xOS40LTUuNy0yNC45LTE0LjMtNS4xIDguNi0xNC42IDE0LjMtMjQuNiAxNC4zLTE4LjkgMC0yOS40LTE1LjctMjkuNC0zMi45LTE2LjMgMTIuMy0zNS43IDE5LjQtNTYuNiAxOS40LTIyIDAtNDMuNC04LjMtNjAuMy0yMi45IDEwLjMtLjMgMjAuNi0yLjMgMzAuMy01LjctMjAuOS01LjctMzkuNC0xOC45LTUyLTM2LjMgMjEuNCA0LjYgNDYuMiAxLjcgNjcuMS0xMS4xLTIyLTIyLTU2LjYtNTguOS02OC42LTg3LjQtNS43LTEzLjQtNi45LTMxLjQtNi45LTQ1LjcgMC00OS43IDIwLjMtMTYwIDg2LjMtMTYwIDEwLjYgMCAxOC45IDQuOSAyMy4xIDE0LjkgMy43LTUuNCA3LjctMTAuNSAxMi0xNS40IDItMi42IDUuNy01LjQgNy4xLTguMyA4LTEyLjYgMTEuNy0yMS4xIDIxLjctMzQgMzIuMy00MS4xIDgxLjctNjkuNCAxMzQuOS02OS40IDYgMCAxMiAuMyAxNy43IDEuMSAxMC45LTExLjcgMjYtMTguMyA0MS43LTE4LjMgMTQuNiAwIDI5LjcgNiA0MCAxNi4zIC45IC45IDEuNCAyLjMgMS40IDMuNCAwIDMuNy0xMC4zIDEzLjQtMTIuOSAxNi4zIDQuMyAxLjQgMTUuNyA2LjkgMTUuNyAxMiAwIDIuOS0yLjkgNS4xLTQuNiA3LjEgMzEuNCAyNy43IDQ5LjQgNjcuMSA1Ni4zIDEwOCA0LjMtNS4xIDEwLjMtOC42IDE3LjEtOC42IDEwLjYgMCAyMC45IDcuMSAyOC42IDE0IDIwLjkgMTguNiAyNS43IDUzLjEgMjUuNyA3OS43ek0xODggODkuNGMwIDE4LjMgMTIuNiAzNy4xIDMyLjMgMzcuMXMzMi4zLTE4LjkgMzIuMy0zNy4xYzAtMTgtMTIuNi0zNi45LTMyLjMtMzYuOVMxODggNzEuNCAxODggODkuNHpNMjM3LjcgMTk0YzAtMTkuNyAzLjctMzkuMSA4LjYtNTguMy01MiA3OS41LTEzLjUgMTg0LjYgNjguOSAxODQuNiAyMS40IDAgNDIuNi03LjcgNjAtMjAgMi03LjQgMy43LTE0LjkgMy43LTIyLjYgMC0xNC4zLTYuMy0yMS40LTIwLjYtMjEuNC00LjYgMC05LjEgLjktMTMuNCAxLjctNjMuMyAxMi43LTEwNy4xIDMuNy0xMDcuMS02NHpNMTk2LjYgNDQ4LjljMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAgOS43LTIwIDIwLjlsMCAzMi42YzAgMTEuMSA4LjYgMjEuMSAyMCAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjEgMGMwLTExLjEtOC42LTIwLjktMjAtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLTEwIDIwLTIxLjFsMC0zMi42em00OS43IDBjMC0xMS4xLTguOS0yMC45LTIwLjMtMjAuOXMtMjAuMyA5LjctMjAuMyAyMC45bDAgMzIuNmMwIDExLjEgOC45IDIxLjEgMjAuMyAyMS4xczIwLjMtOS43IDIwLjMtMjEuMWwwLTMyLjZ6bTQ5LjcgMGMwLTExLjEtOC45LTIwLjktMjAuMy0yMC45cy0yMC4zIDkuNy0yMC4zIDIwLjlsMCAzMi42YzAgMTEuMSA4LjkgMjEuMSAyMC4zIDIxLjFzMjAuMy0xMCAyMC4zLTIxLjFsMC0zMi42ek00MjEuNyAyODZjLTMwLjkgNTkuMS05MC4zIDEwMi42LTE1OC42IDEwMi42LTk2LjYgMC0xNjAuNi04NC42LTE2MC42LTE3Ni42IDAtMTYuOSAyLTMzLjQgNi00OS43LTIwIDMzLjctMjkuNyA3Mi42LTI5LjcgMTExLjQgMCA2MC4zIDI0LjkgMTIxLjcgNzEuNCAxNjAuOSA1LjEtOS43IDE0LjktMTYuMyAyNi0xNi4zIDEwIDAgMTkuNCA1LjcgMjQuNiAxNC4zIDUuNC04LjYgMTQuNi0xNC4zIDI0LjktMTQuMyAxMCAwIDE5LjQgNS43IDI0LjYgMTQuMyA1LjQtOC42IDE0LjktMTQuMyAyNC45LTE0LjNzMTkuNCA1LjcgMjQuOSAxNC4zYzUuMS04LjYgMTQuNi0xNC4zIDI0LjYtMTQuMyAxMC45IDAgMjAuOSA2LjYgMjUuNyAxNiA0My40LTM2LjMgNjguNi05MiA3MS40LTE0OC4zem0xMC42LTk5LjdjMC01My43LTM0LjYtMTA1LjctOTIuNi0xMDUuNy0zMC4zIDAtNTguNiAxNS4xLTc4LjkgMzYuOS0yMCA2Ni40LTI3LjQgMTM2LjYgNDEuNCAxMzYuNiAyOC44IDAgOTcuNC0yOC41IDg0LjMgMzYuOSAyOC45LTI2IDQ1LjctNjUuNyA0NS43LTEwNC42eiJdfSxjMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGFydC1sYW5nIixpY29uOls1MTIsNTEyLFtdLCJlNjkzIiwiTTM3OC42IDc4LjljLTIuOC0uMS01LjYtLjItOC41LS4ybC0yNjQuMSAwIDE0My4yLTcyYzcuNC00LjQgMTguOC02LjcgMzAuNC02LjcgMTMuNSAwIDI5LjQgOS4yIDM3IDE2LjhsNjIgNjIgMCAuMXpNMTA3LjMgOTYuNWwyNjIuOCAwYzE2IDAgMjUuNCAxLjQgMzUuNCA5LjNsMTA2LjUgMTA2LjQgMCAyMDguOC03OS4zIC43LTMyNS40LTMyNS4yek05Ni41IDM3M2wwLTI2Mi4yIDMyMy44IDMyMy44IC43IDc3LjQtMjEyLjIgMC05OC4xLTk4LjJDOTkuNCA0MDIuNSA5Ni41IDM5OC41IDk2LjUgMzczek03OC43IDEwNS4zbDAgMjY3LjdjMCAzLjMgLjEgNi4zIC4yIDkuMWwtNjItNjJDNi41IDMwOS4zIDAgMjk0LjMgMCAyNzkuNiAwIDI3Mi44IDMuOSAyNjIuMSA2LjcgMjU2bDcyLTE1MC43eiJdfSxkMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGVwbG95ZG9nIixpY29uOls1MTIsNTEyLFtdLCJmMzhlIiwiTTM4Mi4yIDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTMxNy41IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTE4OC41IDEzNmw1MS43IDAgMCAyMzkuNi01MS43IDAgMC0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45bDAtMTAzLjl6TTEyMy44IDI5Ny44YTMzLjIgMzMuMiAwIDEgMCA2Ni40IDEgMzMuMiAzMy4yIDAgMSAwIC02Ni40LTF6TTQ0OCA5NmMxNy41IDAgMzIgMTQuNCAzMiAzMmwwIDI1NmMwIDE3LjUtMTQuNCAzMi0zMiAzMkw2NCA0MTZjLTE3LjUgMC0zMi0xNC40LTMyLTMybDAtMjU2YzAtMTcuNSAxNC40LTMyIDMyLTMybDM4NCAwem0wLTMyTDY0IDY0QzI4LjggNjQgMCA5Mi44IDAgMTI4TDAgMzg0YzAgMzUuMiAyOC44IDY0IDY0IDY0bDM4NCAwYzM1LjIgMCA2NC0yOC44IDY0LTY0bDAtMjU2YzAtMzUuMi0yOC44LTY0LTY0LTY0eiJdfSx1MHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmxpcGJvYXJkIixpY29uOls0NDgsNTEyLFtdLCJmNDRkIiwiTTAgMzJsMCA0NDggNDQ4IDAgMC00NDgtNDQ4IDB6TTM1OC40IDIxMS4ybC04OS42IDAgMCA4OS42LTg5LjYgMCAwIDg5LjYtODkuNiAwIDAtMjY4LjggMjY4LjggMCAwIDg5LjZ6Il19LHAwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJidXktbi1sYXJnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjhhNiIsIk0yODguMiAzMkMxMzMuNSAzMiA4IDEzMi4zIDggMjU2UzEzMy41IDQ4MCAyODguMiA0ODAgNTY4LjQgMzc5LjcgNTY4LjQgMjU2IDQ0Mi45IDMyIDI4OC4yIDMyek0yMDIuOCAzODkuMmwtMTM4LjUgMS40IDc3LjItMjkwLjcgMTMzLjQgMGM2My4yIDAgODQuOSAyOC42IDc4IDcyLjgtLjQgMi4zLS45IDQuNi0xLjUgNi45LTUuNi0xLjMtMTEuNC0xLjktMTcuMi0xLjktNDIuMyAwLTc2LjcgMzMuOS03Ni43IDc1LjcgMCAzNy4xIDI3LjEgNjggNjIuOSA3NC41LTE4LjIgMzcuMi01Ni4yIDYwLjktMTE3LjcgNjEuNXpNMzU4LjIgMjA3LjFsMzIgMC0yMi4yIDkwLjMtMzUuNCAwLTExLjItMzUuNi03LjggMzUuNi0zNy44IDAgMjYuNi05MC4zIDMxLjMgMCAxNSAzNi44IDkuNC0zNi44ek01MDQuMSAzODkuMmwtMTk3LjEgMCAxNS44LTYxLjJjMy44IC42IDcuNiAuOCAxMS41IC44IDQyLjMgMCA3Ni43LTMzLjkgNzYuNy03NS42IDAtMzIuNi0yMS02MC41LTUwLjQtNzEuMWwyMS4zLTgyLjQgOTIuNSAwLTUzIDIwNS40IDEwMy45IDAtMjEuMiA4NC4xek0yMTEuOSAyNjkuNGwtMjQuNyAwLTEzLjggNTYuNSAyNC43IDBjMTYuMSAwIDMyLjEtMy4yIDM3LjktMjYuNiA1LjYtMjIuMy04LTI5LjgtMjQuMS0yOS44ek0yMzMuMiAxNzBsLTIxLjMgMC0xMS43IDQ3LjcgMjEuNCAwYzE4IDAgMzUuNC0xNC42IDM5LjItMzAuMSA0LjYtMTguOS05LjUtMTcuNi0yNy42LTE3LjZ6Il19LGgwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3YXRjaG1hbi1tb25pdG9yaW5nIixpY29uOls1MTIsNTEyLFtdLCJlMDg3IiwiTTI1NiAxNmEyNDAgMjQwIDAgMSAwIDAgNDgwIDI0MCAyNDAgMCAxIDAgMC00ODB6TTEyMS43IDQyOS4xYy01MS42LTQwLjItODQuOS0xMDIuOC04NC45LTE3My4xIDAtMjEuNyAzLjItNDMuMyA5LjYtNjQuMWwxMDIuOS0xNy45LS4xIDExLTEzLjkgMnMtLjEgMTIuNS0uMSAxOS41YzAgMiAuNCA0IDEuMiA1LjhzMi4xIDMuNCAzLjcgNC42bDkuNSA3LjQtMjcuNyAyMDQuOXpNMjI3LjQgMTQ1LjlsOC41LTcuNnM2LjktNS40LS4xLTkuM2MtNy4yLTQtMzkuNS0zNC41LTM5LjUtMzQuNS01LjMtNS41LTguMy03LjMtMTUuNSAwIDAgMC0zMi4zIDMwLjUtMzkuNSAzNC41LTcuMSA0LS4xIDkuMy0uMSA5LjNsOC41IDcuNiAwIDQuNC03My41LTE5LjJjMzkuNi01Ni45IDEwNS41LTk0LjMgMTgwLTk0LjMgMzEuMyAwIDYyLjIgNi43IDkwLjYgMTkuNnM1My44IDMxLjggNzQuMyA1NS40bC0xOTMuNSAzNy43IDAtMy42em0zNC4xIDMyOS4zbC0zMy45LTI1MC45IDkuNS03LjRjMS42LTEuMiAyLjgtMi44IDMuNy00LjZzMS4zLTMuOCAxLjItNS44YzAtNy0uMS0xOS41LS4xLTE5LjVsLTEzLjktMi0uMS0xMC41IDI0MS43IDMxLjRjMy45IDE2LjQgNS44IDMzLjMgNS44IDUwLjEgMCAxMTkuMS05NS40IDIxNi4yLTIxMy44IDIxOS4xeiJdfSxmMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaGlwcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQ1MiIsIk0yNTEuNiAxNTcuNmMwLTEuOS0uOS0yLjgtMi44LTIuOGwtNDAuOSAwYy0xLjYgMC0yLjcgMS40LTIuNyAyLjhsMCAyMDEuOGMwIDEuNCAxLjEgMi44IDIuNyAyLjhsNDAuOSAwYzEuOSAwIDIuOC0uOSAyLjgtMi44bDAtMjAxLjh6TTE1Ni41IDE2OGMtMTYuMS0xMS44LTM2LjMtMTcuOS02MC4zLTE4LTE4LjEtLjEtMzQuNiAzLjctNDkuOCAxMS40bDAtODEuMmMwLTEuOC0uOS0yLjctMi44LTIuN2wtNDAuOSAwQy45IDc3LjUgMCA3OC40IDAgODAuMkwwIDM1OS40YzAgMS45IC45IDIuOCAyLjcgMi44bDQxIDBjMS45IDAgMi44LS45IDIuOC0yLjhsMC0xMzYuMWMwLS44LTIuOC0yNyA0NS44LTI3IDQ4LjUgMCA0NS44IDI2LjEgNDUuOCAyN2wwIDEyMi42YzAgOSA3LjMgMTYuMyAxNi40IDE2LjNsMjcuMyAwYzEuOCAwIDIuNy0uOSAyLjctMi44bDAtMTM2LjFjMC0yMy40LTkuMy00MS44LTI4LTU1LjN6TTYzNC45IDI3OC4xYy02LjgtMTUuNy0xOC40LTI3LTM0LjktMzQuMWwtNTcuNi0yNS4zYy04LjYtMy42LTkuMi0xMS4yLTIuNi0xNi4xIDcuNC01LjUgNDQuMy0xMy45IDg0IDYuOCAxLjcgMSA0LS4zIDQtMi40bDAtNDQuN2MwLTEuMy0uNi0yLjEtMS45LTIuNi0xNy43LTYuNi0zNi4xLTkuOS01NS4xLTkuOS0yNi41IDAtNDUuMyA1LjgtNTguNSAxNS40LS41IC40LTI4LjQgMjAtMjIuNyA1My43IDMuNCAxOS42IDE1LjggMzQuMiAzNy4yIDQzLjZMNTgwLjQgMjg2YzExLjYgNS4xIDE1LjIgMTMuMyAxMi4yIDIxLjItMy43IDkuMS0xMy4yIDEzLjYtMzYuNSAxMy42LTI0LjMgMC00NC43LTguOS01OC40LTE5LjEtMi4xLTEuNC00LjQgLjItNC40IDIuM2wwIDM0LjRjMCAxMC40IDQuOSAxNy4zIDE0LjYgMjAuNyAxNS42IDUuNSAzMS42IDguMiA0OC4yIDguMiAxMi43IDAgMjUuOC0xLjIgMzYuMy00LjMgLjctLjMgMzYtOC45IDQ1LjYtNDUuOCAzLjUtMTMuNSAyLjQtMjYuNS0zLjEtMzkuMXpNMzc2LjIgMTQ5LjhjLTMxLjcgMC0xMDQuMiAyMC4xLTEwNC4yIDEwMy41bDAgMTgzLjVjMCAuOCAuNiAyLjcgMi43IDIuN2w0MC45IDBjMS45IDAgMi44LS45IDIuOC0yLjdsMC04OC44YzE2LjUgMTIuNyAzNS44IDE5LjEgNTcuNyAxOS4xIDYwLjUgMCAxMDguNy00OC41IDEwOC43LTEwOC43IC4xLTYwLjMtNDguMi0xMDguNi0xMDguNi0xMDguNnptMCA0Ni42YTYyLjIgNjIuMiAwIDEgMSAwIDEyNC4zIDYyLjIgNjIuMiAwIDEgMSAwLTEyNC4zek0yMjguMyA3Mi41Yy0xNS45IDAtMjguOCAxMi45LTI4LjkgMjguOSAwIDE1LjYgMTIuNyAyOC45IDI4LjkgMjguOXMyOC45LTEzLjEgMjguOS0yOC45YzAtMTYuMi0xMy0yOC45LTI4LjktMjguOXoiXX0sbTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNsb3VkdmVyc2lmeSIsaWNvbjpbNjQwLDUxMixbXSwiZjM4NSIsIk0xNjAuNiAzMDRjOC4yIDY4LjUgNjcuNCAxMTUuNSAxNDYgMTExLjMgNTEuMiA0My4zIDEzNi44IDQ1LjggMTg2LjQtNS42IDY5LjIgMS4xIDExOC41LTQ0LjYgMTMxLjUtOTkuNSAxNC44LTYyLjUtMTguMi0xMzIuNS05Mi4xLTE1NS4xLTMzLTg4LjEtMTMxLjQtMTAxLjUtMTg2LjUtODUtNTcuMyAxNy4zLTg0LjMgNTMuMi05OS4zIDEwOS43LTcuOCAyLjctMjYuNSA4LjktNDUgMjQuMSAxMS43IDAgMTUuMiA4LjkgMTUuMiAxOS41bDAgMjAuNGMwIDEwLjctOC43IDE5LjUtMTkuNSAxOS41bC0yMC4yIDBjLTEwLjcgMC0xOS41LTYtMTkuNS0xNi43bDAtNi42LTQ2LjggMGMtMy44IDAtMTAuOCA0LjMtMTAuOCAxMS45bDAgNDAuNGMwIDYuNCA1LjMgMTEuOCAxMS43IDExLjhsNDguOSAwIDAtLjF6TTM4OCAzMTJjLTEwLjcgNDYuMyAyMS43IDcyLjQgNTUuMyA4Ni44LTEwNy4yIDMzLjgtMTcxLjYtNTAuOC0xMzUuMy0xMTAuOC0zMy4yIDIxLjYtMzMuNyA3MS4yLTI5LjIgOTIuOS0xNy45LTEyLjQtNTMuOC0zMi40LTU3LjQtNzkuOC0zLTM5LjkgMjEuNS03NS43IDU3LTkzLjkgMzAuNi0xNS44IDEwMy41LTguNSAxMzMuNiA0MC44LTE0LjEtNDgtNTMuOC03MC4xLTEwMS44LTc0LjggMzAuOS0zMC43IDY0LjQtNTAuMyAxMTQuMi00My43IDY5LjggOS4zIDEzMy4yIDgyLjggNjcuNyAxNTAuNSAzNS0xNi4zIDQ4LjctNTQuNCA0Ny41LTc2LjlsMTAuNSAxOS42YzExLjggMjIgMTUuMiA0Ny42IDkuNCA3Mi05LjIgMzktNDAuNiA2OC44LTc5LjcgNzYuNS0zMi4xIDYuMy04My4xLTUuMS05MS44LTU5LjJ6TTE0MCAyMDhsLTM5LjggMGMtOC45IDAtMTYuMi03LjMtMTYuMi0xNi4ybDAtMzkuNmMwLTguOSA3LjMtMTYuMiAxNi4yLTE2LjJsMzkuOCAwYzguOSAwIDE2LjIgNy4zIDE2LjIgMTYuMmwwIDM5LjZjMCA4LjktNy4zIDE2LjItMTYuMiAxNi4yek0yMi4xIDE2OGMtNS42IDAtMTAuMS00LjUtMTAuMS0xMC4xbDAtMjcuOGMwLTUuNiA0LjUtMTAuMSAxMC4xLTEwLjFsMjcuNyAwYzUuNSAwIDEwLjEgNC41IDEwLjEgMTAuMWwwIDI3LjhjMCA1LjYtNC41IDEwLjEtMTAuMSAxMC4xbC0yNy43IDB6TTE4MCAxNDIuN2wwLTIxLjRjMC01LjEgNC4yLTkuMyA5LjMtOS4zbDIxLjQgMGM1LjEgMCA5LjMgNC4yIDkuMyA5LjNsMCAyMS40YzAgNS4xLTQuMiA5LjMtOS4zIDkuM2wtMjEuNCAwYy01LjEgMC05LjMtNC4yLTkuMy05LjN6TTY4IDIzNS41bDAgMjVjMCA2LjMtNS4xIDExLjUtMTEuNCAxMS41bC0yNS4yIDBjLTYuMyAwLTExLjQtNS4yLTExLjQtMTEuNWwwLTI1YzAtNi4zIDUuMS0xMS41IDExLjQtMTEuNWwyNS4xIDBjNi40IDAgMTEuNSA1LjIgMTEuNSAxMS41eiJdfSxnMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZ29vZHJlYWRzIixpY29uOls0NDgsNTEyLFtdLCJmM2E4IiwiTTI5OS45IDE5MS4yYzUuMSAzNy4zLTQuNyA3OS0zNS45IDEwMC43LTIyLjMgMTUuNS01Mi44IDE0LjEtNzAuOCA1LjctMzcuMS0xNy4zLTQ5LjUtNTguNi00Ni44LTk3LjIgNC4zLTYwLjkgNDAuOS04Ny45IDc1LjMtODcuNSA0Ni45LS4yIDcxLjggMzEuOCA3OC4yIDc4LjN6TTQ0OCA4OGwwIDMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkw1NiA0ODBjLTMwLjkgMC01Ni0yNS4xLTU2LTU2TDAgODhDMCA1Ny4xIDI1LjEgMzIgNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZ6TTMzMCAzMTMuMnMtLjEtMzQtLjEtMjE3LjNsLTI5IDAgMCA0MC4zYy0uOCAuMy0xLjItLjUtMS42LTEuMi05LjYtMjAuNy0zNS45LTQ2LjMtNzYtNDYtNTEuOSAuNC04Ny4yIDMxLjItMTAwLjYgNzcuOC00LjMgMTQuOS01LjggMzAuMS01LjUgNDUuNiAxLjcgNzcuOSA0NS4xIDExNy44IDExMi40IDExNS4yIDI4LjktMS4xIDU0LjUtMTcgNjktNDUuMiAuNS0xIDEuMS0xLjkgMS43LTIuOSAuMiAuMSAuNCAuMSAuNiAuMiAuMyAzLjggLjIgMzAuNyAuMSAzNC41LS4yIDE0LjgtMiAyOS41LTcuMiA0My41LTcuOCAyMS0yMi4zIDM0LjctNDQuNSAzOS41LTE3LjggMy45LTM1LjYgMy44LTUzLjItMS4yLTIxLjUtNi4xLTM2LjUtMTktNDEuMS00MS44LS4zLTEuNi0xLjMtMS4zLTIuMy0xLjNsLTI2LjggMGMuOCAxMC42IDMuMiAyMC4zIDguNSAyOS4yIDI0LjIgNDAuNSA4Mi43IDQ4LjUgMTI4LjIgMzcuNCA0OS45LTEyLjMgNjcuMy01NC45IDY3LjQtMTA2LjN6Il19LGIwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0aWRhbCIsaWNvbjpbNjQwLDUxMixbXSwiZTdkYyIsIk0xMDcuMiA0OGwtMS4zIDBjLTMyLjMgMzMuMS02NS40IDY1LjUtOTggOTguNS0yLjYgMi44LTYuMSA1LjEtNy45IDguNiAzNS42IDM1LjQgNzEgNzEgMTA2LjYgMTA2LjQgMzUuNC0zNS4zIDcwLjctNzAuOCAxMDYuMS0xMDYuMWwwLTEuMy03My4yLTczLjJDMTI4LjggNjkuOCAxMTcuMyA1OS42IDEwNy4yIDQ4em0yMTMuNSAwbC0xLjMgMGMtMzQuOSAzNi4xLTcxLjUgNzEtMTA2LjMgMTA3LjIgMzUuOSAzNS4xIDcxIDcxIDEwNi43IDEwNi4zIDM0LjMtMzQuMSA2OC40LTY4LjQgMTAyLjYtMTAyLjQgMS41LTEuNSAzLjMtMi44IDQuMS00LjgtMzQuNi0zMy44LTY4LjQtNjguMi0xMDIuNi0xMDIuMS0xLjMtMS4zLTIuMy0yLjYtMy4zLTQuMXptMjEzLjUgMGwtMS4zIDBjLTE3LjIgMTgtMzUuMSAzNS4zLTUyLjYgNTMtMTcuOSAxNy43LTM1LjQgMzUuNy01My41IDUzLjMgLjggMi4zIDMgMy42IDQuNiA1LjVMNTMzLjMgMjYxLjVjMzYuMS0zNC45IDcwLjgtNzEuMiAxMDYuNy0xMDYuMS0uNS0yLjItMi42LTMuNS00LTVMNTU1LjggNzAuMmMtNy4xLTcuNC0xNC45LTE0LjItMjEuNS0yMi4yek0zMTkuNiAyNjEuN2MtMzQuOSAzNS4xLTcwIDcwLTEwNC45IDEwNC45LS4zIC43LS43IDEuNy0xIDIuMyAyNCAyMy43IDQ3LjcgNDcuNSA3MS41IDcxLjMgMTEuOCAxMS4zIDIyLjggMjMuNSAzNC45IDM0LjQgOC40LTcuNCAxNi40LTE2LjQgMjQuNy0yNC4zIDI1LjUtMjUuMyA1MS01MSA3Ni41LTc2LjMgMS44LTIuMiA0LjMtMy42IDUuNS02LjMtMzUuNC0zNC45LTcwLjUtNzAuMi0xMDUuNi0xMDUuNGwtMS41LS43eiJdfSx2MHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pdHkiLGljb246WzQ0OCw1MTIsW10sImUwNDkiLCJNMjQzLjYgOTEuNmw4MC4xIDQ2LjhjMi45IDEuNiAzIDYuMiAwIDcuOGwtOTUuMiA1NS42Yy0yLjkgMS43LTYuMyAxLjYtOSAwbC05NS4yLTU1LjZjLTIuOS0xLjYtMy02LjMgMC03LjhsODAuMS00Ni44IDAtOTEuNi0yMDQuNCAxMTkuNCAwIDIzOC44IDc4LjQtNDUuOCAwLTkzLjZjLS4xLTMuMyAzLjgtNS43IDYuNy0zLjlsOTUuMiA1NS42YzIuOSAxLjcgNC41IDQuNyA0LjUgNy44bDAgMTExLjJjLjEgMy4zLTMuOCA1LjctNi43IDMuOUw5OCAzNDYuOCAxOS42IDM5Mi42IDIyNCA1MTIgNDI4LjQgMzkyLjYgMzUwIDM0Ni44IDI2OS45IDM5My42Yy0yLjggMS43LTYuOC0uNS02LjctMy45bDAtMTExLjJjMC0zLjMgMS44LTYuMyA0LjUtNy44TDM2Mi45IDIxNWMyLjgtMS43IDYuOCAuNSA2LjcgMy45bDAgOTMuNiA3OC40IDQ1LjggMC0yMzguOC0yMDQuNC0xMTkuNCAwIDkxLjZ6Il19LHgwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZW5jZW50LXdlaWJvIixpY29uOlszMjAsNTEyLFtdLCJmMWQ1IiwiTTQwLjUgNDk1LjhjMS40IDE5LjktMjcuNiAyMi4yLTI5LjcgMi45LTExLjYtMTI5LjkgMzEuMS0yMzkuNSAxMDEuNC0zMTMuMi0xNS42LTM0IDkuMi03Ny4xIDUwLjYtNzcuMSAzMC4zIDAgNTUuMSAyNC42IDU1LjEgNTUuMSAwIDQ0LTQ5LjUgNzAuOC04Ni45IDQ1LjEtNjUuNyA3MS4zLTEwMS40IDE2OS44LTkwLjUgMjg3LjJ6TTE2MC4yIC4xYy0xMjUuOSAwLTIwNC4zIDEzNC4yLTE0OC4zIDI0Mi4zIDguNyAxNy40IDM1LjMgNC41IDI2LjMtMTMuNC00Ni4zLTkyLjYgMjEtMTk5LjIgMTIyLTE5OS4yIDc1LjQgMCAxMzYuOSA2MS40IDEzNi45IDEzNi45IDAgOTAuOC04Ni45IDE1My45LTE2Ny43IDEzMy4xLTE5LjEtNC4xLTI1LjYgMjQuNC02LjYgMjkuMSAxMTAuNyAyMy4yIDIwNC02MCAyMDQtMTYyLjMgMC05MS45LTc0LjYtMTY2LjUtMTY2LjYtMTY2LjV6Il19LHkwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmcmVlLWNvZGUtY2FtcCIsaWNvbjpbNTc2LDUxMixbXSwiZjJjNSIsIk05Ny40IDk2LjJjMTAuNC0xMC42IDE2LTE3LjEgMTYtMjEuOSAwLTIuOC0xLjktNS41LTMuOC03LjQtMi40LTEuOC01LjQtMi44LTguNC0yLjgtOC41IDAtMjAuOSA4LjgtMzUuOCAyNS43LTQxLjUgNDcuMy02Mi43IDkzLjEtNjEuOCAxNjAuNlMyMSAzNjcuMyA1Ny42IDQxMi4yYzE4LjggMjMuNiAzMy4yIDM1LjggNDMuNSAzNS44IDMuMi0uMyA2LjEtMS42IDguNC0zLjggMS45LTIuOCAzLjgtNS42IDMuOC04LjQgMC01LjYtMy45LTEyLjItMTMuMi0yMC42LTQ0LjUtNDIuMy02Ny4zLTk3LTY3LjUtMTY1LS4yLTYxLjQgMjEuNi0xMTIuNCA2NC44LTE1NHpNMjM5LjYgNDIwLjFjLjYgLjQgLjkgLjYgLjkgLjZsLS45LS42em05My44IC42bC4yLS4xYy0uMiAuMS0uMyAuMi0uMiAuMXptMy4xLTE1OC4yYy0xNi4yLTQuMiA1MC40LTgyLjktNjguMS0xNzcuMiAwIDAgMTUuNSA0OS40LTYyLjggMTU5LjYtNzQuMyAxMDQuNCAyMy41IDE2OC43IDM0IDE3NS4yLTYuNy00LjMtNDcuNC0zNS43IDkuNi0xMjguNiAxMS0xOC4zIDI1LjUtMzQuOSA0My41LTcyLjIgMCAwIDE1LjkgMjIuNCA3LjYgNzEuMS0xMi41IDczLjYgNTMuOCA1Mi41IDU0LjggNTMuNSAyMi44IDI2LjgtMTcuNyA3My41LTIxLjYgNzYuNiA1LjUtMy43IDExNy43LTc4IDMzLTE4OC4xLTYgNi0xMy44IDM0LjItMzAgMzAuMXpNNTExIDg5LjdjLTE0LjktMTYuOS0yNy40LTI1LjctMzUuOS0yNS43LTMgLjEtNS45IDEuMS04LjQgMi44LTEuOSAxLjktMy44IDQuNy0zLjggNy40IDAgNC44IDUuNiAxMS4zIDE2IDIxLjkgNDMuMiA0MS42IDY1IDkyLjYgNjQuOCAxNTQuMS0uMiA2OC0yMyAxMjIuNi02Ny41IDE2NS05LjMgOC40LTEzLjIgMTQuOS0xMy4yIDIwLjYgMCAyLjcgMS45IDUuNiAzLjggOC40IDIuMyAyLjIgNS4yIDMuNiA4LjQgMy44IDEwLjMgMCAyNC43LTEyLjEgNDMuNS0zNS44IDM2LjYtNDQuOSA1My4xLTk0LjQgNTQuMS0xNjEuOVM1NTIuNSAxMzcgNTExIDg5Ljd6Il19LHcwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ4LXR3aXR0ZXIiLGljb246WzQ0OCw1MTIsW10sImU2MWIiLCJNMzU3LjIgNDhMNDI3LjggNDggMjczLjYgMjI0LjIgNDU1IDQ2NCAzMTMgNDY0IDIwMS43IDMxOC42IDc0LjUgNDY0IDMuOCA0NjQgMTY4LjcgMjc1LjUtNS4yIDQ4IDE0MC40IDQ4IDI0MC45IDE4MC45IDM1Ny4yIDQ4ek0zMzIuNCA0MjEuOGwzOS4xIDAtMjUyLjQtMzMzLjgtNDIgMCAyNTUuMyAzMzMuOHoiXX0sTTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0aWNrZXItbXVsZSIsaWNvbjpbNTc2LDUxMixbXSwiZjNmNyIsIk01NjEuNyAxOTkuNmwwIDB6bS02LjItNzcuNGMtNy43LTIyLjMtNS4xLTcuMi0xMy40LTM2LjktMS42LTYuNS0zLjYtMTQuNS02LjItMjAtNC40LTguNy00LjYtNy41LTQuNi05LjUgMC01LjMgMzAuNy00NS4zIDE5LTQ2LjktNS43LS42LTEyLjIgMTEuNi0yMC42IDE3LTguNiA0LjItOCA1LTEwLjMgNS0yLjYgMC01LjctMy02LjItNS0yLTUuNyAxLjktMjUuOS0zLjYtMjUuOS0zLjYgMC0xMi4zIDI0LjgtMTcgMjUuOC01LjIgMS4zLTI3LjktMTEuNC03NS4xIDE4LTI1LjMgMTMuMi04Ni45IDY1LjItODcgNjUuMy02LjcgNC43LTIwIDQuNy0zNS41IDE2LTQ0LjQgMzAuMS0xMDkuNiA5LjQtMTEwLjcgOS0xMTAuNi0yNi44LTEyOC0xNS4yLTE1OSAxMS41LTIwLjggMTcuOS0yMy43IDM2LjUtMjQuMiAzOC45LTQuMiAyMC40IDUuMiA0OC4zIDYuNyA2NC4zIDEuOCAxOS4zLTIuNyAxNy43IDcuNyA5OC4zIC41IDEgNC4xIDAgNS4xIDEuNSAwIDguNC0zLjggMTIuMS00LjEgMTMtMS41IDQuNS0xLjUgMTAuNSAwIDE2IDIuMyA4LjIgOC4yIDM3LjIgOC4yIDQ2LjkgMCA0MS44IC40IDQ0IDIuNiA0OS40IDMuOSAxMCAxMi41IDkuMSAxNyAxMiAzLjEgMy41LS41IDguNSAxIDEyLjUgLjUgMiAzLjYgNCA2LjIgNSA5LjIgMy42IDI3IC4zIDI5LjktMi41IDEuNi0xLjUgLjUtNC41IDMuMS01IDUuMSAwIDEwLjgtLjUgMTQuNC0yLjUgNS4xLTIuNSA0LjEtNiAxLjUtMTAuNS0uNC0uOC03LTEzLjMtOS44LTE2LTIuMS0yLTUuMS0zLTcuMi00LjUtNS44LTQuOS0xMC4zLTE5LjQtMTAuMy0xOS41LTQuNi0xOS40LTEwLjMtNDYuMy00LjEtNjYuOCA0LjYtMTcuMiAzOS41LTg3LjcgMzkuNi04Ny44IDQuMS02LjUgMTctMTEuNSAyNy4zLTcgNiAxLjkgMTkuMyAyMiA2NS40IDMwLjkgNDcuOSA4LjcgOTcuNC0yIDExMi4yLTIgMi44IDItMS45IDEzLS41IDM4LjkgMCAyNi40LS40IDEzLjctNC4xIDI5LjktMi4yIDkuNyAzLjQgMjMuMi0xLjUgNDYuOS0xLjQgOS44LTkuOSAzMi43LTguMiA0My40IC41IDEgMSAyIDEuNSAzLjUgLjUgNC41IDEuNSA4LjUgNC42IDEwIDcuMyAzLjYgMTItMy41IDkuOCAxMS41LS43IDMuMS0yLjYgMTIgMS41IDE1IDQuNCAzLjcgMzAuNiAzLjQgMzYuNSAuNSAyLjYtMS41IDEuNi00LjUgNi40LTcuNCAxLjktLjkgMTEuMy0uNCAxMS4zLTYuNSAuMy0xLjgtOS4yLTE5LjktOS4zLTIwLTIuNi0zLjUtOS4yLTQuNS0xMS4zLTgtNi45LTEwLjEtMS43LTUyLjYgLjUtNTkuNCAzLTExIDUuNi0yMi40IDguNy0zMi40IDExLTQyLjUgMTAuMy01MC42IDE2LjUtNjguMyAuOC0xLjggNi40LTIzLjEgMTAuMy0yOS45IDkuMy0xNyAyMS43LTMyLjQgMzMuNS00Ny40IDE4LTIyLjkgMzQtNDYuOSA1Mi02OS44IDYuMS03IDguMi0xMy43IDE4LTggMTAuOCA1LjcgMjEuNiA3IDMxLjkgMTcgMTQuNiAxMi44IDEwLjIgMTguMiAxMS44IDIyLjkgMS41IDUgNy43IDEwLjUgMTQuOSA5LjUgMTAuNC0yIDEzLTIuNSAxMy40LTIuNSAyLjYtLjUgNS43LTUgNy4yLTggMy4xLTUuNSA3LjItOSA3LjItMTYuNSAwLTcuNy0uNC0yLjgtMjAuNi01Mi45eiJdfSxrMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHdpdGNoIixpY29uOls0NDgsNTEyLFtdLCJmMWU4IiwiTTM1OS40IDEwMy41bC0zOC42IDAgMCAxMDkuNyAzOC42IDAgMC0xMDkuN3pNMjUzLjIgMTAzbC0zOC42IDAgMCAxMDkuOCAzOC42IDAgMC0xMDkuOHpNODkgMGwtOTYuNSA5MS40IDAgMzI5LjIgMTE1LjggMCAwIDkxLjQgOTYuNS05MS40IDc3LjMgMCAxNzMuOC0xNjQuNiAwLTI1Ni0zNjYuOSAwek00MTcuMyAyMzcuOGwtNzcuMiA3My4xLTc3LjIgMC02Ny42IDY0IDAtNjQtODYuOSAwIDAtMjc0LjMgMzA4LjkgMCAwIDIwMS4yeiJdfSxTMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToia2lja3N0YXJ0ZXItayIsaWNvbjpbNDQ4LDUxMixbXSwiZjNiYyIsIk0zNTYuNyAyNTYuMmw0MC44LTQwLjVjNDIuMi00MS45IDQyLjItMTEwLjMgMC0xNTIuMXMtMTExLTQxLjktMTUzLjIgMEwyMjkuMyA3OC40QzIwOS42IDUwLjMgMTc3LjEgMzIgMTQwLjIgMzIgODAuNSAzMiAzMiA4MC4yIDMyIDEzOS41bDAgMjMzYzAgNTkuNCA0OC41IDEwNy41IDEwOC4yIDEwNy41IDM3LjEgMCA2OS4zLTE4LjMgODktNDYuNGwxNC45IDE0LjdjNDIuMiA0MS45IDExMSA0MS45IDE1My4yIDBzNDIuMi0xMTAuMyAwLTE1Mi4xbC00MC44LTQwIC4xIDB6Il19LHowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjcml0aWNhbC1yb2xlIixpY29uOls0NDgsNTEyLFtdLCJmNmM5IiwiTTIyNS44IDBjLjMgLjIgMjE2LjYgMTI0LjUgMjE3LjEgMTI0LjcgMyAxLjIgMy43IDMuNSAzLjcgNi42LS4xIDgzLjQtLjEgMTY2LjkgMCAyNTAuNCAuMSAxLjItLjIgMi40LS44IDMuNHMtMS41IDEuOS0yLjYgMi40Yy0yMS40IDEyLTIwNy45IDExOC4zLTIxOC45IDEyNC42bC0zIDBjLTc5LjMtNDUuNy0yMTguMy0xMjUuNC0yMTguNC0xMjUuNS0uNi0uMy0xLjEtLjctMS40LTEuM3MtLjUtMS4yLS40LTEuOWMwLS45IDAtMjI1LjktLjEtMjUzLjEtLjEtMSAuMi0yIC43LTIuOXMxLjMtMS42IDIuMi0yQzI3LjIgMTEyLjEgMjEzLjIgNiAyMjQuMSAwbDEuOCAwek0yMTUuNCAyMC40bC0uMi0uMmMtNjQuNyAzNi45LTEyOS41IDczLjctMTk0LjIgMTEwLjYgMCAuMSAuMSAuMiAuMSAuNEw1MiAxNDIuOWMtNy43IDYtOC4zIDYtMTAuNiA1LjEtLjEgMC0yNC4yLTkuMy0yNi44LTEwbDAgMjMwLjRjLjktMS40IDY0LjEtMTEwLjkgNjQuMS0xMTEgMS42LTIuOCAzLTEuOSA5LjEtMS41IDEuNCAuMSAxLjUgLjIgLjggMS40LTQxLjIgNzEuMy0zNi40IDYzLTY3LjUgMTE2LjktLjggMS40LS42IDEuMSAxLjIgMS4xbDE4Ni41IDBjMS40IDAgMS43LS4yIDEuNy0xLjZsMC04LjljMC0xLjMgMi40LS44LTE4LjQtMS03LjUtLjEtMTQuMS0zLjItMjEuNC0xMi43LTcuNC05LjctMTQuNi0xOS40LTIxLjgtMjkuMi0yLjMtMy4xLTMuNC0yLjQtMTYuOC0yLjQtMS44IDAtMS44IDAtMS44IDEuOCAuMyAyNi4yIC4yIDI1LjMgMSAzMi43IC41IDQuNCAyLjIgNC4yIDkuNyA0LjggMy4xIC4zIDMuOSA0LjEgLjUgNC45LTEuNiAuNC0zMS42IC41LTMzLjctLjEtLjUtLjEtMS0uNS0xLjMtLjlzLS41LTEtLjQtMS42IC4zLTEuMSAuNi0xLjUgLjktLjcgMS40LS44YzMuMy0uOCA2LjIgLjggNi43LTQuNCAxLjMtMTMuNyAxLjItOSAxLjEtNzkuNCAwLTEwLjgtLjQtMTIuNi01LjQtMTMuNi0xLjItLjItMy41LS4yLTQuNy0uNi0yLjktMS0yLTQuOCAxLjgtNC44IDMzLjcgMCA0Ni4xLTEuMSA1Ni4xIDQuOSA3LjcgNC42IDEyIDExLjUgMTIuNSAyMC40IC45IDE0LjYtNi41IDIyLjMtMTUgMzIuNi0uMiAuMS0uMyAuMy0uNCAuNXMtLjEgLjQtLjEgLjYgMCAuNCAuMSAuNiAuMiAuNCAuNCAuNWMyLjYgMy4yIDUgNi42IDcuNyA5LjggMjcuNiAzMy4yIDI0LjEgMzAuNSA0MS4zIDMzLjEgLjkgLjEgMS0uNCAxLTEuMmwwLTExYzAtMSAuMy0xLjQgMS40LTEuMyA3LjggMS4yIDE1LjggMS4xIDIzLjYtLjMgMS4xLS4xIDEuNSAuMiAxLjUgMS4zIDAgLjEgLjkgMjYuNyAuOSAyNi44IDAgMS41IC43IDEuNiAxLjkgMS42bDE4Ni43IDBjLTI3LjItNDctNTQuMi05NC04MS4yLTE0MC44IDIuMy0uNy0uNCAwIDYuNy0xLjQgMi0uNCAyLjEtLjQgMy4xIDEuNCA3LjMgMTIuNiA3Ny4zIDEzNCA3Ny40IDEzNC4xbDAtMjMwLjRjLTEuNyAuNS0xMDMuMyAzOC43LTEwNS44IDM5LjctMS4xIC40LTEuNSAuMi0xLjktLjktLjYtMS45LTEuMy0zLjgtMi4xLTUuNi0uMy0uOC0uMS0xLjEgLjYtMS40IC4xIDAgOTUuNS0zNS44IDEwMy0zOC44LTY1LjQtMzcuNi0xMzAuNi03NS0xOTYtMTEyLjZsODYuOCAxNTAuNC0uMyAuM2MtOS42LS45LTEwLjUtMS42LTExLjgtMy45LTEtMS43LTczLjUtMTI3LjctODItMTQyLjItOS4xIDE0LjctODMuNiAxNDYuMi04NS40IDE0Ni4zLTIuOSAuMi01LjkgLjEtOS4yIC4xIDI4LjgtNDkuOCA1Ny42LTk5LjUgODYuMi0xNDlsMCAwem01MS45IDEyOS45YzEuOS0uMSAzLjctLjQgNS41LS44IDEuNy0uMyAyLjUgLjIgMi42IDEuOSAwIC4xIC4xIDE5LjEtLjkgMjAuNXMtMS45IDEuMi0yLjYtLjJjLTUtOS43IDYuMi05LjctMzkuMS0xMi0uNyAwLTEgLjItMSAuOSAwIC4xIDMuNyAxMjIgMy43IDEyMi4xIDAgLjkgLjUgMS4yIDEuMiAxLjUgMyAxLjIgNS45IDIuNSA4LjcgNCA3LjMgNC4zIDExLjQgMTAuOCAxMi40IDE5LjMgMS40IDExLjgtMi44IDM1LjgtMzIuMiAzNy4xLTIuOCAuMS0yOC4zIDEuMS0zNC4xLTIzLjMtNC43LTE5LjMgOC4zLTMyLjcgMTkuOS0zNi40IC42LS4xIDEuMi0uNCAxLjUtLjlzLjUtMS4xIC41LTEuN2MuMS01LjYgMy0xMDcuMSAzLjctMTIxLjMgMC0xLjEtLjYtMS4yLTEuNC0xLjEtMzIuMyAuNS0zNi43LS4zLTQwLjIgOC41LTIuNCA2LjItNC4xIDEuMy00IC4yIDEuMS02IDIuMi0xMiAzLjMtMTggLjQtMi4xIDEuNC0yLjYgMy40LTEuOSA1LjYgMi4xIDYuNyAxLjcgMzcuMiAxLjkgMS43IDAgMS44LS4xIDEuOC0xLjggLjctMjcuNSAuNi0yMi42IDEtMjkuNiAuMS0uNi0uMS0xLjItLjMtMS43cy0uNy0uOS0xLjMtMS4xYy01LjYtMi45LTguOC03LjYtOC45LTEzLjktLjQtMTQuOCAxNy43LTIxLjcgMjcuNC0xMS41IDYuOCA3LjIgNS44IDE4LjktMi41IDI0LjItLjggLjQtMS40IDEuMS0xLjggMS44cy0uNiAxLjYtLjQgMi41YzAgLjYtLjEtNC4zIDEgMzAgMCAuOSAuNCAxLjEgMS4yIDEuMSAuMSAwIDIzLS4xIDM0LjUtLjRsMC0uMXpNNjguMyAxNDEuN2MxOS44LTQuNSAzMi43LS42IDUyLjUgMS43IDIuOCAuMyAzLjcgMS4yIDMuNiA0LS4yIDUtMS4yIDIyLjMtMS4yIDIzLjEgMCAuNS0uMiAxLS41IDEuNHMtLjcgLjctMS4yIC45Yy00LjEgMS43LTMuNi00LjQtNC03LjMtMy4xLTIyLjQtNzMuOS0zMi43LTc0LjYgMjUuNC0uMyAyMy45IDE3IDUzLjYgNTQuMSA1MC45IDI3LjItMiAxOS0yMC4yIDI0LjgtMjAuNSAuNC0uMSAuOSAwIDEuMyAuMXMuOCAuNCAxLjEgLjcgLjUgLjcgLjYgMS4yIC4xIC45IDAgMS4zYy0xLjggMTAuOC0zLjQgMTktMy40IDE5LjItMS41IDkuMi04Ni43IDIyLjEtOTMuNC00Mi4xLTIuNy0yNS44IDEwLjQtNTMuNCA0MC4zLTYwLjJ6bTgwIDg3LjdsLTE5LjUgMGMtLjYgMC0xLjItLjEtMS42LS40cy0uOC0uOC0xLTEuNGMyLjQtMy44IDUuOSAuOSA1LjktNi4xLS4xLTI1LjggLjItMzggLjItNDAuMSAwLTMuNC0uNS00LjYtMy4zLTQuOS03LS43LTMuMS0zLjQtMS4xLTMuNCAxMS44LS4xIDIyLjYtLjIgMzAgLjcgOC44IDEuMSAxNi43IDEyLjYgNy45IDIyLjYtMiAyLjItNCA0LjQtNi4xIDYuNyAxIDEuMiA2LjkgOC44IDE3LjMgMTkuNyAyLjcgMi44IDYuMiAzLjUgOS45IDMuMSAuNiAwIDEuMS0uMiAxLjUtLjZzLjctLjkgLjctMS41Yy4zLTMuNCAuMyA0LjcgLjQtNDAuNiAwLTUuNi0uMy02LjYtMy4yLTYuOC00LS40LTQtMi4zLS43LTMuNGwxOS4xLS4xYy4zIDAgNC41IC41IDEgMy40IDAgMC0uMiAwLS4yIDAtMy42IC4zLTMuOSAxLTQgNC42LS4zIDQzLjkgLjEgNDAuMiAuNCA0Mi44IC4xIC44IC4zIDIuMiA1LjEgMi4xIDIuNSAwIDMuOSAzLjQgMCAzLjQtMTAuNCAuMS0yMC43IDAtMzEuMSAuMS0xMC43IDAtMTMuNS02LjItMjQuMi0yMC44LTEuNi0yLjItOC4zLTIuNC04LjItLjQgLjkgMTYuNSAwIDE3LjggNCAxNy43IDQuOC0uMSA0LjcgMy42IC44IDMuNWwuMSAwem0yNzUtMTAuMWMtMS4yIDcuMSAuMiAxMC40LTUuMyAxMC4zLTYxLjUtLjQtNDcuOC0uMi01MC43LS4zLTEuMi0uMS0yLjQtLjQtMy42LS43LTIuNS0uNiAxLjUtMS4yLS40LTUuNi0xLjQtMy40LTIuOC02LjgtNC4xLTEwLjItLjEtLjQtLjQtLjgtLjctMS4xcy0uOC0uNC0xLjMtLjRjLTQuOS0uMi05LjctLjItMTQuNiAuMS0uMyAwLS42IC4yLS45IC4zcy0uNSAuNC0uNyAuN2MtMS42IDMuNi0zLjEgNy4zLTQuNSAxMS0xLjMgMy4yIDcuOSAxLjMgMTIuMiAyLjIgMyAuNiA0LjUgMy43IC43IDMuN2wtMjYuNCAwYy0yLjkgMC0zLjEtMy4yLS43LTMuMiAxLjIgLjEgMi40LS4yIDMuNS0uOXMxLjktMS41IDIuNC0yLjZjMS41LTMgMi44LTYgNC4xLTkuMSAxOC4yLTQyLjEgMTcuMS00MC4yIDE4LjQtNDEuNiAuMi0uMiAuNC0uNCAuNy0uNnMuNi0uMiAuOC0uMiAuNiAuMSAuOCAuMiAuNSAuMyAuNyAuNmMyLjkgMy4zIDE4LjQgNDQuNyAyMy42IDUxLjkgMiAyLjcgNS43IDIgNi40IDIgMy42IC4xIDQtMS4xIDQuMS00LjMgLjEtMS45IC4xIDEuMiAuMS00MS4yIDAtNC41LTIuNC0zLjctNS42LTQuMy0uMyAwLTIuNi0uNi0uMS0zLjEgLjItLjItLjktLjIgMjEuNy0uMiAyLjMgMCA1LjMgMi44LTEuMiAzLjQtLjQgMC0uNyAwLTEuMSAuMnMtLjYgLjMtLjkgLjYtLjQgLjYtLjYgLjktLjIgLjctLjEgMS4xYy0uMSAxLjYtLjIgMzguOSAuMyA0MS4yIC4yIC43IC42IDEuNCAxLjIgMS44czEuMyAuNyAyLjEgLjZjMTMuMyAuNCAxNC45IC40IDE2LTMuNCAxLjctNS44IDQuMS0yLjUgMy43LS4ybDAgLjF6TTMxOC42IDI4My42Yy00LjIgMC00LjQtMy40LS42LTMuNCAzNS45LS4yIDI4LjEgLjQgMzcuMi0uNiAxLjctLjIgMi40IC4yIDIuMyAxLjktLjMgMy40LS42IDYuOC0xIDEwLjItLjIgMi4yLTMuMiAyLjYtMy40LS4yLS40LTUuMy0yLjItNC41LTE1LjYtNS4xLTEuNi0uMS0xLjYgMC0xLjYgMS41bDAgMTYuMWMwIDEuNyAwIDEuNiAxLjYgMS41IDMuMS0uMiAxMC4zIC4zIDE1LjctMS41IC41LS4yIDMuMy0xLjggMy4xIDEuOCAwIC4yLS44IDEwLjQtMS4yIDExLjQtLjUgMS4zLTEuOSAxLjUtMi42IC4zLTEuMi0yIDAtNS4xLTMuNy01LjMtMTUuNC0uOS0xMi45LTIuNS0xMi45IDYgMCAxMi4zLS44IDE2LjEgMy45IDE2LjIgMTYuNiAuNSAxNC40IDAgMTYuNC01LjcgLjgtMi40IDMuNS0xLjggMy4yIC42LS40IDMuMi0uOCA2LjQtMS4yIDkuNiAwIC40LS4yIDIuNC00LjcgMi40LTM3LjItLjEtMzQuNS0uMi0zNS4yLS4zLTIuNy0uNS0yLjItMyAuMi0zLjQgMS4xLS4yIDQgLjUgNC4yLTIuNiAyLjQtNTYuMi0uMS01MS4zLTMuOS01MS4zbDAgMHptLS40LTEwOS41YzIuNSAuNiAzLjEgMS44IDMgNC42LS4zIDUuMy0uMyA5LS42IDkuNy0uNyAyLjItMy4xIDIuMS0zLjMtLjMtLjQtNC44LTMtNy44LTcuNi05LjEtMjYuMy03LjctMzIuOCAxNS41LTI3LjIgMzAuMiA1LjkgMTUuNCAyMiAxNS45IDI4LjkgMTMuOCA1LjktMS45IDUuOS02LjUgNi45LTcuNiAxLjItMS4zIDIuMi0xLjggMy4xIDEuMSAwIC4xIC42IDExLjktNiAxMi43LTEuNiAuMi0xOS40IDMuNy0zMi43LTMuNC0yMS0xMS4yLTE2LjctMzUuNS02LjktNDUuMyAxNC0xNC4xIDM5LjktNy4xIDQyLjMtNi41bDAgMHpNMjg5LjggMjgwLjFjMy4zIDAgMy43IDMgLjIgMy40LTIuNiAuMy01LS40LTUgNS41IDAgMi0uMiAyOSAuNCA0MS40IC4xIDIuMyAxLjIgMy41IDMuNCAzLjcgMjIgMS4yIDE1LTEuNyAxOC44LTYuMyAxLjgtMi4yIDIuOCAuOCAyLjggMS4xIC4zIDEzLjYtNCAxMi40LTUuMiAxMi40bC0zOC4yLS4yYy0xLjktLjItMi4xLTMtLjQtMy40IDItLjUgNC45IC40IDUuMS0yLjggMS0xNS45IC42LTQ0LjYgLjMtNDcuOC0uMy0zLjgtMi44LTMuMy01LjctMy43LTIuNS0uNC0yLTMuMiAuMy0zLjIgMS40IDAgMTggMCAyMy4xIDB6bS0zMS42LTU3LjhjLjEgNC4xIDIuOSAzLjUgNiAzLjYgMi42IC4xIDIuNSAzLjQtLjEgMy40LTYuNSAwLTEzLjcgMC0yMS42LS4xLTMuOCAwLTMuNC0zLjQgMC0zLjQgNC41IDAgMy4yIDEuNiAzLjQtNDUuNSAwLTUuMS0zLjMtMy41LTQuNy00LjItMi42LTEuMi0xLjQtMy4xIC40LTMuMiAxLjMgMCAyMC4yLS40IDIxLjIgLjJzMS45IDEuNi0uNCAyLjljLTEgLjUtMy45LS4zLTQuMiAyLjUgMCAuMi0uOCAxLjYtLjEgNDMuOGwwIDB6TTIyMS4zIDQ5Ni42Yy41IC4zIDEgLjUgMS42IC41czEuMS0uMiAxLjYtLjVjMTctOS44IDE4Mi0xMDMuNiAxOTcuNC0xMTIuNS0uMS0uNCAxMS4zLS4yLTE4MS41LS4zLTEuMiAwLTEuNiAuNC0xLjUgMS42IDAgLjEgMS4zIDQ0LjUgMS4yIDUwLjQtLjEgMi42LS42IDUuMi0xLjQgNy43LS42IDEuOCAuNC0uNS0xMy41IDMyLjItLjcgMS43LTEgMi4yLTItLjEtNC4yLTEwLjMtOC4zLTIwLjctMTIuNi0zMS0xLjUtMy40LTIuMi03LjEtMi0xMC44IC4yLTIuNSAuOC0xNi4xIDEuNS00OCAwLTEuOSAwLTItMi0ybC0xODMgMGMyLjYgMS42IDE3OC4zIDEwMi42IDE5NiAxMTIuOGwuMSAwek0xMzAuNCAzMDcuOWMwIDIuNCAuNCAyLjggMi44IDMgMTEuNSAxLjIgMjEgMy43IDI1LjYtNy4zIDYtMTQuNSAyLjctMzQuNC0xMi41LTM4LjgtMi0uNi0xNi0yLjgtMTUuOSAxLjUgMCA4IDAgMTEuNiAwIDQxLjZ6bTEwNS44LTE1YzAgMi4xIDEuMSAzOC43IDEuMSAzOS4xIC4zIDkuOS0yNS42IDUuOC0yNS4yLTIuNiAuMS0yIDEuNC0zNy40IDEuMS0zOS40LTE0LjEgNy40LTE0LjQgNDAuMiA2LjQgNDguOCA0IDEuNyA4LjQgMS45IDEyLjUgLjZzNy42LTQgOS45LTcuN2M0LjktNy44IDYuOC0yOS41LTUuNC0zOS0uMSAuMS0uMiAuMS0uNCAuMWwwIDB6bS0xMi4zLTE5OGMtOS44IDAtOS43IDE0LjgtLjEgMTQuOXMxMC4xLTE0LjkgLjEtMTQuOWwwIDB6TTE0My43IDE5OC42YzAgMS44IC40IDIuNCAyLjIgMi42IDEzLjYgMS40IDEyLjUtMTEgMTIuMi0xMy40LTEuNy0xMS4yLTE0LjQtMTAuMi0xNC40LTcuOCAwIDQuNSAwIDEzLjcgMCAxOC42ek0zNTYgMjA1bC02LjEtMTUuOGMtMi4yIDUuNS00LjIgMTAuNi02LjIgMTUuOGwxMi4zIDB6Il19LEMwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzdGVhbS1zeW1ib2wiLGljb246WzQ0OCw1MTIsW10sImYzZjYiLCJNMjczLjUgMTc3LjVhNjEgNjEgMCAxIDEgMTIyIDAgNjEgNjEgMCAxIDEgLTEyMiAwem0xNzQuNSAuMmMwIDYzLTUxIDExMy44LTExMy43IDExMy44TDIyNSAzNzEuM2MtNCA0My00MC41IDc2LjgtODQuNSA3Ni44LTQwLjUgMC03NC43LTI4LjgtODMtNjdMMCAzNTggMCAyNTAuNyA5Ny4yIDI5MGMxNS4xLTkuMiAzMi4yLTEzLjMgNTItMTEuNWw3MS0xMDEuN0MyMjAuNyAxMTQuNSAyNzEuNyA2NCAzMzQuMiA2NCAzOTcgNjQgNDQ4IDExNSA0NDggMTc3Ljd6TTIwMyAzNjNjMC0zNC43LTI3LjgtNjIuNS02Mi41LTYyLjUtNC41IDAtOSAuNS0xMy41IDEuNWwyNiAxMC41YzI1LjUgMTAuMiAzOCAzOSAyNy43IDY0LjUtMTAuMiAyNS41LTM5LjIgMzgtNjQuNyAyNy41LTEwLjItNC0yMC41LTguMy0zMC43LTEyLjIgMTAuNSAxOS43IDMxLjIgMzMuMiA1NS4yIDMzLjIgMzQuNyAwIDYyLjUtMjcuOCA2Mi41LTYyLjV6TTQxMC41IDE3Ny43YTc2LjQgNzYuNCAwIDEgMCAtMTUyLjggMCA3Ni40IDc2LjQgMCAxIDAgMTUyLjggMHoiXX0sVDB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im1haWxjaGltcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjU5ZSIsIk0zMzEgMjQzLjVjMy4xLS40IDYuMi0uNCA5LjMgMCAxLjctMy44IDItMTAuNCAuNS0xNy42LTIuMi0xMC43LTUuMy0xNy4xLTExLjUtMTYuMXMtNi41IDguNy00LjIgMTkuNGMxLjMgNiAzLjUgMTEuMSA2IDE0LjNsMCAwek0yNzcuNCAyNTJjNC41IDIgNy4yIDMuMyA4LjMgMi4xIDEuOS0xLjktMy41LTkuNC0xMi4xLTEzLjEtNS0yLjEtMTAuNC0yLjgtMTUuOC0yLjJzLTEwLjUgMi43LTE0LjggNS44Yy0zIDIuMi01LjggNS4yLTUuNCA3LjEgLjkgMy43IDEwLTIuNyAyMi42LTMuNSA3LS40IDEyLjggMS44IDE3LjMgMy43bDAgMHptLTkgNS4xYy05LjEgMS40LTE1IDYuNS0xMy41IDEwLjEgLjkgLjMgMS4yIC44IDUuMi0uOCA2LTIuMyAxMi40LTIuOSAxOC43LTEuOSAyLjkgLjMgNC4zIC41IDQuOS0uNSAxLjUtMi4yLTUuNy04LTE1LjQtNi45bDAgMHptNTQuMiAxNy4xYzMuNC02LjktMTAuOS0xMy45LTE0LjMtN3MxMC45IDEzLjkgMTQuMyA3bDAgMHptMTUuNy0yMC41Yy03LjctLjEtOCAxNS44LS4zIDE1LjlzOC0xNS44IC4zLTE2bDAgMHpNMTE5LjUgMzMyLjdjLTEuMyAuMy02IDEuNS04LjUtMi4zLTUuMi04IDExLjEtMjAuNCAzLTM1LjgtOS4xLTE3LjUtMjcuOC0xMy41LTM1LTUuNS04LjcgOS42LTguNyAyMy41LTUgMjQuMSA0LjMgLjYgNC4xLTYuNSA3LjQtMTEuNiAuOS0xLjQgMi4xLTIuNiAzLjUtMy42czMtMS42IDQuNi0yIDMuNC0uNCA1IDAgMy4zIDEgNC43IDEuOWMxMS42IDcuNiAxLjQgMTcuOCAyLjMgMjguNiAxLjQgMTYuNyAxOC40IDE2LjQgMjEuNiA5IC4yLS40IC4zLS44IC4zLTEuMnMtLjItLjgtLjUtMS4xYzAgLjkgLjctMS4zLTMuNC0uNGwwIDB6bTI5OS43LTE3LjFjLTMuMy0xMS43LTIuNi05LjItNi44LTIwLjUgMi40LTMuNyAxNS4zLTI0LTMuMS00My4zLTEwLjQtMTAuOS0zMy45LTE2LjUtNDEuMS0xOC41LTEuNS0xMS40IDQuNi01OC43LTIxLjUtODMgMjAuOC0yMS42IDMzLjgtNDUuMyAzMy43LTY1LjctLjEtMzkuMi00OC4yLTUxLTEwNy40LTI2LjVsLTEyLjUgNS4zYy0uMSAwLTIyLjctMjIuMy0yMy4xLTIyLjYtNjcuNS01OC45LTI3OC44IDE3NS45LTIxMS4zIDIzMi45bDE0LjggMTIuNWMtNCAxMC43LTUuNCAyMi4yLTQuMSAzMy41IDMuNCAzMy40IDM2IDYwLjQgNjcuNSA2MC40IDU3LjcgMTMzLjEgMjY3LjkgMTMzLjMgMzIyLjMgMyAxLjctNC41IDkuMS0yNC42IDkuMS00Mi40cy0xMC4xLTI1LjMtMTYuNS0yNS4zbDAgMHptLTMxNiA0OC4yYy0yMi44LS42LTQ3LjUtMjEuMS00OS45LTQ1LjUtNi4yLTYxLjMgNzQuMy03NS4zIDg0LTEyLjMgNC41IDI5LjYtNC43IDU4LjUtMzQuMSA1Ny44bDAgMHpNODQuNyAyNDkuNmMtMTUuMiAzLTI4LjUgMTEuNS0zNi43IDIzLjUtNC45LTQuMS0xNC0xMi0xNS42LTE1LTEzLTI0LjggMTQuMi03MyAzMy4zLTEwMC4yIDQ3LjEtNjcuMiAxMjAuOS0xMTguMSAxNTUtMTA4LjkgNS41IDEuNiAyMy45IDIyLjkgMjMuOSAyMi45cy0zNC4xIDE4LjktNjUuOCA0NS4zQzEzNi4yIDE1MCAxMDQgMTk3LjcgODQuNyAyNDkuNnpNMzIzLjYgMzUwLjdzLTM1LjcgNS4zLTY5LjUtNy4xYzYuMi0yMC4yIDI3IDYuMSA5Ni40LTEzLjggMTUuMy00LjQgMzUuNC0xMyA1MS0yNS40IDMuNCA3LjggNS44IDE1LjkgNy4xIDI0LjMgMy43LS43IDE0LjItLjUgMTEuNCAxOC4xLTMuMyAxOS45LTExLjcgMzYtMjUuOSA1MC44LTguOSA5LjYtMTkuNCAxNy41LTMxLjIgMjMuMy02LjUgMy40LTEzLjMgNi4zLTIwLjMgOC42LTUzLjUgMTcuNS0xMDguMy0xLjctMTI2LTQzLTEuNC0zLjEtMi42LTYuNC0zLjYtOS43LTcuNS0yNy4yLTEuMS01OS44IDE4LjgtODAuNCAxLjItMS4zIDIuNS0yLjkgMi41LTQuOC0uMi0xLjctLjgtMy4zLTEuOS00LjUtNy0xMC4xLTMxLjItMjcuNC0yNi4zLTYwLjggMy41LTI0IDI0LjUtNDAuOSA0NC4xLTM5LjlsNSAuM2M4LjUgLjUgMTUuOSAxLjYgMjIuOSAxLjkgMTEuNyAuNSAyMi4yLTEuMiAzNC42LTExLjYgNC4yLTMuNSA3LjYtNi41IDEzLjMtNy41IDIuMy0uNiA0LjctLjcgNy0uM3M0LjYgMS4yIDYuNiAyLjVjMTAgNi42IDExLjQgMjIuNyAxMS45IDM0LjUgLjMgNi43IDEuMSAyMyAxLjQgMjcuNiAuNiAxMC43IDMuNCAxMi4yIDkuMSAxNCAzLjIgMSA2LjIgMS44IDEwLjUgMy4xIDEzLjIgMy43IDIxIDcuNSAyNiAxMi4zIDIuNSAyLjUgNC4yIDUuOCA0LjcgOS4zIDEuNiAxMS40LTguOCAyNS40LTM2LjMgMzguMi00Ni43IDIxLjctOTMuNyAxNC40LTEwMC41IDEzLjctMjAuMi0yLjctMzEuNiAyMy4zLTE5LjUgNDEuMSAyMi42IDMzLjQgMTIyLjQgMjAgMTUxLjQtMjEuNCAuNy0xIC4xLTEuNi0uNy0xLTQxLjggMjguNi05Ny4xIDM4LjItMTI4LjUgMjYtNC44LTEuOC0xNC43LTYuNC0xNS45LTE2LjcgNDMuNiAxMy41IDcxIC43IDcxIC43czItMi44LS42LTIuNXpNMTcxLjcgMTU3LjVjMTYuNy0xOS40IDM3LjQtMzYuMiA1NS44LTQ1LjYgLjEtLjEgLjMtLjEgLjUtLjFzLjMgLjEgLjQgLjIgLjIgLjMgLjIgLjQgMCAuMy0uMSAuNWMtMS41IDIuNy00LjMgOC4zLTUuMiAxMi43IDAgLjEgMCAuMyAwIC40cy4yIC4zIC4zIC40IC4zIC4xIC40IC4xIC4zIDAgLjQtLjFjMTEuNS03LjggMzEuNS0xNi4yIDQ5LTE3LjMgLjIgMCAuMyAwIC41IC4xcy4yIC4yIC4zIC40IC4xIC4zIDAgLjUtLjEgLjMtLjMgLjRjLTIuOSAyLjItNS41IDQuOC03LjcgNy43LS4xIC4xLS4xIC4yLS4xIC40czAgLjMgLjEgLjQgLjIgLjIgLjMgLjMgLjIgLjEgLjQgLjFjMTIuMyAuMSAyOS43IDQuNCA0MSAxMC43IC44IC40IC4yIDEuOS0uNiAxLjctNjkuNS0xNS45LTEyMy4xIDE4LjUtMTM0LjUgMjYuOC0uMiAuMS0uMyAuMS0uNSAuMXMtLjMtLjEtLjUtLjItLjItLjMtLjItLjUgLjEtLjQgLjItLjVsLS4xIDB6Il19LF8wdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsdW1vbiIsaWNvbjpbNjQwLDUxMixbXSwiZTdlMiIsIk00NTIuNSAyMjMuNWM5LjggMCAxNi41IDYuMyAxNi41IDE2LjZsMCAzMS44YzAgMTAuMy02LjYgMTYuNi0xNi42IDE2LjZsLTU2LjIgMGMtOS44IDAtMTYuNS02LjMtMTYuNS0xNi42bDAtMzEuOGMwLTEwLjMgNi43LTE2LjYgMTYuNS0xNi42bDU2LjMgMHptLTI1LjcgMTMuMWMtMS41LTIuNi0zLjItMi42LTQuNiAwbC0xMC43IDE3LjZjLTEuNyAyLjQtMi42IDUuMS0yLjYgOC4yIDAgNy45IDYuOSAxNC42IDE1LjYgMTQuNiA4LjUgMCAxNS42LTYuNyAxNS42LTE0LjYgMC0zLTEtNS44LTIuNy04LjJsLTEwLjctMTcuNnpNODUuOCAyMjMuOGMxIDAgMS41IC42IDEuNSAxLjVsMCA1MC4zIDY0LjYgMGMxIDAgMS42IC42IDEuNiAxLjVsMCA5LjdjMCAuOS0uNiAxLjUtMS42IDEuNWwtNzguNCAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTIuMyAwem04OC4zIDBjMSAwIDEuNSAuNiAxLjUgMS41bDAgNDVjMCA0IDIgNS4yIDUuNyA1LjJsNDYuOSAwYzMuOCAwIDUuNy0xLjMgNS43LTUuMmwwLTQ1YzAtLjkgLjUtMS41IDEuNS0xLjVsMTIuMyAwYzEgMCAxLjYgLjYgMS42IDEuNWwwIDQ2YzAgMTAuNS01LjMgMTYuOC0xNy42IDE2LjhsLTU0IDBjLTEyLjMgMC0xNy42LTYuMy0xNy42LTE2LjhsMC00NmMwLS45IC42LTEuNSAxLjYtMS41bDEyLjMgMHptMTA4LjIgMGMxIDAgMS42IC41IDIuMiAxLjRsMzAuNSA0Ni40IDEuNCAwIDMwLjUtNDYuNGMuNi0uOSAxLjItMS40IDIuMi0xLjRsMTggMGMxIDAgMS41IC42IDEuNSAxLjVsMCA2MS40YzAgLjktLjUgMS41LTEuNSAxLjVsLTEyLjMgMGMtMSAwLTEuNi0uNi0xLjYtMS41bDAtNDMuOC0xLjEgMC0yOC43IDQzLjhjLS42IC45LTEuMyAxLjUtMi40IDEuNWwtMTAuNyAwYy0xIDAtMS43LS42LTIuMy0xLjVsLTI4LjctNDMuOC0xLjEgMCAwIDQzLjhjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTcuOSAwem0yMTQuNCAwYy45IDAgMS4zIC40IDIuMiAxLjFsNTIuNyA0Ni4zIDEuMyAwIDAtNDZjMC0uOSAuNi0xLjUgMS42LTEuNWwxMi4zIDBjMSAwIDEuNiAuNiAxLjYgMS41bDAgNjEuNGMwIC45LS42IDEuNS0xLjYgMS41bC0xNC40IDBjLTEgMC0xLjQtLjQtMi4zLTEuMWwtNTIuNi00Ni4zLTEuNCAwIDAgNDZjMCAuOS0uNSAxLjUtMS41IDEuNWwtMTIuMyAwYy0xIDAtMS42LS42LTEuNi0xLjVsMC02MS40YzAtLjkgLjYtMS41IDEuNi0xLjVsMTQuNCAwek0zMjAgMTE0LjFjODcuOSAwIDE2Ny43IDE1LjcgMjI1LjUgNDFsMi43IDEuMkM1ODcuMSAxNzMuOCA2NDAgMjA2LjUgNjQwIDI1NnMtNTIuOSA4Mi4yLTkxLjggOTkuNmwtMi43IDEuMmMtNTcuOCAyNS40LTEzNy42IDQxLTIyNS41IDQxLTc2LjIgMC0xNTUuMS0xMC41LTIyNS41LTQxLTM5LjYtMTcuNC05NC41LTUwLjMtOTQuNS0xMDAuOHM1NC45LTgzLjUgOTQuNS0xMDAuOGM3MC40LTMwLjUgMTQ5LjMtNDEgMjI1LjUtNDF6bS04OC45IDIyOWMyMC4zIDI5IDUyLjggNDkuNiA4OC45IDQ5LjYgMzYuMiAwIDY4LjctMjAuNiA4OS00OS43bC0xNzcuOSAuMXptLTk2LjEgMGM0My4zIDI5LjcgOTYuNyA0My41IDE0OC40IDQ4LTI0LjItOS4xLTQ0LjQtMjYuNy01OC42LTQ4LjFsLTg5LjkgMHptMjgwLjMtLjFjLTE0LjIgMjEuNC0zNC40IDM5LjEtNTguNiA0OC4xIDUxLjgtNC41IDEwNS4zLTE4LjMgMTQ4LjYtNDguMmwtOTAgMHptLTMzNy40IC4xYzQ0LjEgMjMuMSA5My43IDM1LjQgMTQyLjcgNDIuNi0zMy40LTguNi02Ni41LTIxLjktOTQuNC00Mi42bC00OC4zIDB6bTQzNi4yLS4yYy0yNy45IDIwLjgtNjEuMSAzNC4yLTk0LjYgNDIuOCA0Ny4zLTYuOSA4OS42LTE4LjUgMTIzLjktMzMuNmwxLjctLjhjNi4xLTIuNyAxMS45LTUuNSAxNy40LTguNGwtNDguNSAwek01MjAgMTczLjZjMTAuNyA4LjcgMTkuOCAxOC4xIDI3IDI4LjIgLjQgLjYgLjUgMS4zIC4xIDJzLTEgMS0xLjcgMWwtMS42IDBjLS42IDAtMS4yLS4zLTEuNS0uOC03LjktMTAuOS0xOC4yLTIxLjEtMzAuNi0zMC40bC05My41IDBjNS40IDguOCA5LjkgMTguNSAxMy40IDI4LjYgLjIgLjYgLjEgMS4yLS4yIDEuN3MtLjkgLjgtMS42IC44bC0xLjQgMGMtLjggMC0xLjUtLjUtMS44LTEuMy0zLjgtMTAuNy04LjctMjAuOC0xNC41LTI5LjlsLTE4NC4zIC4xYy01LjggOS4xLTEwLjcgMTkuMS0xNC40IDI5LjgtLjMgLjgtMSAxLjMtMS44IDEuM2wtMS40IDBjLS42IDAtMS4yLS4zLTEuNi0uOHMtLjUtMS4xLS4yLTEuN2MzLjUtMTAuMiA4LTE5LjcgMTMuNC0yOC42bC05My42IDBjLTEyLjMgOS4zLTIyLjYgMTkuNC0zMC40IDMwLjMtLjQgLjUtLjkgLjgtMS41IC44bC0xLjYgMGMtLjcgMC0xLjQtLjQtMS43LTFzLS4zLTEuNCAuMS0yYzcuNi0xMC41IDE2LjctMTkuOSAyNi44LTI4bC01MSAwYy0yOC45IDE2LjYtNjIgNDMuMy02My41IDc5LjdsNDQuNyAwYy41IDAgMSAuMiAxLjMgLjZzLjYgLjggLjYgMS4zbDAgMS4zYzAgMS4xLS45IDEuOS0xLjkgMS45bC00NC43IDBDNi44IDI5NSA0MCAzMjEuNyA2OSAzMzguM2w1MC45IDBjLTEwLjMtOC40LTE5LjEtMTcuNC0yNi4xLTI3bC0uOC0xLjFjLS40LS42LS41LTEuMy0uMS0yczEtMSAxLjctMWwxLjYgMCAuMiAwYy41IC4xIDEgLjMgMS4zIC44IDcuOSAxMC45IDE4LjEgMjEgMzAuNSAzMC4zbDkzLjYgMGMtNS4zLTguOC05LjgtMTguNC0xMy40LTI4LjUtLjItLjYtLjEtMS4yIC4yLTEuN3MuOS0uOCAxLjYtLjhsMS40IDAgLjIgMGMuNyAuMSAxLjQgLjYgMS43IDEuMyAzLjggMTAuNyA4LjYgMjAuNyAxNC40IDI5LjhsMTg0LjUtLjFjNS44LTkuMSAxMC42LTE5LjEgMTQuNC0yOS43bC4xLS4xYy4zLS43IDEtMS4xIDEuNy0xLjFsMS40IDBjLjYgMCAxLjIgLjMgMS42IC44cy41IDEuMiAuMiAxLjdjLTMuNSAxMC4xLTggMTkuNy0xMy4zIDI4LjVsOTMuNyAwYzEyLjMtOS4zIDIyLjUtMTkuNCAzMC4zLTMwLjJsLjEtLjJjLjQtLjQgLjktLjYgMS40LS42bDEuNiAwYy43IDAgMS40IC40IDEuNyAxcy4zIDEuNC0uMSAyYy03LjEgMTAtMTYuMSAxOS4zLTI2LjcgMjcuOWw1MS4xIDBjMjguOC0xNi42IDYxLjgtNDMuMyA2My40LTc5LjZsLTQ0LjcgMGMtMSAwLTEuOS0uOS0xLjktMS45bDAtMS4zYzAtMS4xIC45LTEuOSAxLjktMS45bDQ0LjcgMGMtMS42LTM2LjUtMzQuOS02My4zLTYzLjktNzkuOWwtNTAuOSAwek0yMjAuNSAxMjYuMmMtNDkuMSA3LjEtOTguNyAxOS41LTE0MyA0Mi43bDQ4LjQgMGMyNy45LTIwLjggNjEtMzQuMSA5NC41LTQyLjd6bTYyLjgtNS40Yy01MS44IDQuNS0xMDUuMiAxOC4zLTE0OC42IDQ4LjFsOTAgMGMxNC4yLTIxLjQgMzQuNC0zOSA1OC42LTQ4LjF6bTM2LjYtMS42Yy0zNi4yIDAtNjguNyAyMC42LTg5IDQ5LjdsMTc3LjktLjFjLTIwLjMtMjkuMS01Mi43LTQ5LjYtODguOS00OS42em0zNi42IDEuNmMyNC4yIDkuMSA0NC40IDI2LjYgNTguNSA0OGw4OS44IDBjLTQzLjMtMjkuNy05Ni42LTQzLjUtMTQ4LjMtNDh6bTYyLjggNS40YzMzLjQgOC41IDY2LjQgMjEuOSA5NC4zIDQyLjVsNDguMyAwYy00NC4xLTIzLjEtOTMuNi0zNS40LTE0Mi42LTQyLjV6Il19LEwwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJudXRyaXRpb25peCIsaWNvbjpbNDQ4LDUxMixbXSwiZjNkNiIsIk0xMTIgOC4xUzI0NS40LS4xIDIzMyAxMTIuNWMwIDAgMTkuMS03NC45IDEwMy00MC42IDAgMC0xNy43IDc0LTg4IDU2IDAgMCAxNC42LTU0LjYgNjYuMS01Ni42IDAgMC0zOS45LTEwLjMtODIuMSA0OC44IDAgMC0xOS44LTk0LjUtOTMuNi05OS43IDAgMCA3NS4yIDE5LjQgNzcuNiAxMDcuNSAwIC4xLTEwNi40IDctMTA0LTExOS44ek00MjQgMzIzLjdjMCA0OC41LTkuNyA5NS4zLTMyIDEzMi4zLTQyLjIgMzAuOS0xMDUgNDgtMTY4IDQ4LTYyLjkgMC0xMjUuOC0xNy4xLTE2OC00OC0yMi4zLTM3LTMyLTgzLjgtMzItMTMyLjMgMC00OC40IDE3LjctOTQuNyA0MC0xMzEuNyA0Mi4yLTMwLjkgOTcuMS00OC42IDE2MC00OC42IDYzIDAgMTE3LjggMTcuNiAxNjAgNDguNiAyMi4zIDM3IDQwIDgzLjMgNDAgMTMxLjd6TTE0NCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0yMTYgNDI4YTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHpNMjg4IDQyOGEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwem0wLTY2LjJhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTM2MCA0MjhhMjggMjggMCAxIDAgLTU2IDAgMjggMjggMCAxIDAgNTYgMHptMC02Ni4yYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6bTAtNjYuMmEyOCAyOCAwIDEgMCAtNTYgMCAyOCAyOCAwIDEgMCA1NiAwek0zODQgMjU2Yy00LjgtMjIuMy03LjQtMzYuOS0xNi01Ni0zOC44LTE5LjktOTAuNS0zMi0xNDQtMzJTMTE4LjggMTgwLjEgODAgMjAwYy04LjggMTkuNS0xMS4yIDMzLjktMTYgNTYgNDIuMi03LjkgOTguNy0xNC44IDE2MC0xNC44czExNy44IDYuOSAxNjAgMTQuOHoiXX0sQTB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjRmMSIsIk0yNTUuNiA4QzM5Ny40IDggNTA0IDExOC4xIDUwNCAyNTYgNTA0IDQwMy4xIDM4NS41IDUwNCAyNTUuNiA1MDQgMTIxLjYgNTA0IDggMzk0LjUgOCAyNTYgOCAxMjMuMSAxMTIuNyA4IDI1NS42IDh6bS44IDQ0LjdjLTExOC4yIDAtMjAzLjcgOTcuOS0yMDMuNyAyMDMuMyAwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44IC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwNyAyMDUuNmMtNC43IDAtOSAyLjgtMTAuNyA3LjJsLTQgOS41LTExLTkyLjhjLTEuNy0xMy45LTIyLTEzLjQtMjMuMSAuNGwtNC4zIDUxLjQtNS4yLTY4LjhjLTEuMS0xNC4zLTIyLjEtMTQuMi0yMy4yIDBsLTMuNSA0NC45LTUuOS05NC4zYy0uOS0xNC41LTIyLjMtMTQuNC0yMy4yIDBsLTUuMSA4My43LTQuMy02Ni4zYy0uOS0xNC40LTIyLjItMTQuNC0yMy4yIDBsLTUuMyA4MC4yLTQuMS01N2MtMS4xLTE0LjMtMjItMTQuMy0yMy4yLS4ybC03LjcgODkuOC0xLjgtMTIuMmMtMS43LTExLjQtMTcuMS0xMy42LTIyLTMuM2wtMTMuMiAyNy43LTQzLjkgMCAwIDIzLjIgNTEuMyAwYzQuNCAwIDguNC0yLjUgMTAuNC02LjRsMTAuNyA3My4xYzIgMTMuNSAyMS45IDEzIDIzLjEtLjdsMy44LTQzLjYgNS43IDc4LjNjMS4xIDE0LjQgMjIuMyAxNC4yIDIzLjItLjFsNC42LTcwLjQgNC44IDczLjNjLjkgMTQuNCAyMi4zIDE0LjQgMjMuMi0uMWw0LjktODAuNSA0LjUgNzEuOGMuOSAxNC4zIDIyLjEgMTQuNSAyMy4yIC4ybDQuNi01OC42IDQuOSA2NC40YzEuMSAxNC4zIDIyIDE0LjIgMjMuMSAuMWw2LjgtODMgMi43IDIyLjNjMS40IDExLjggMTcuNyAxNC4xIDIyLjMgMy4xbDE4LTQzLjQgNTAuNSAwIDAtMjMuMi01OC40IC4zem0tNzggNS4ybC0yMS45IDAgMCAyMS45YzAgNC4xLTMuMyA3LjUtNy41IDcuNS00LjEgMC03LjUtMy4zLTcuNS03LjVsMC0yMS45LTIxLjkgMGMtNC4xIDAtNy41LTMuMy03LjUtNy41IDAtNC4xIDMuNC03LjUgNy41LTcuNWwyMS45IDAgMC0yMS45YzAtNC4xIDMuNC03LjUgNy41LTcuNXM3LjUgMy4zIDcuNSA3LjVsMCAyMS45IDIxLjkgMGM0LjEgMCA3LjUgMy4zIDcuNSA3LjUgMCA0LjEtMy40IDcuNS03LjUgNy41eiJdfSxEMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVkaGF0IixpY29uOls1MTIsNTEyLFtdLCJmN2JjIiwiTTM0MS41IDI4NS42YzMzLjcgMCA4Mi4zLTYuOSA4Mi4zLTQ3IC4yLTYuNyAuOS0xLjgtMjAuOS05Ni4yLTQuNi0xOS4xLTguNy0yNy44LTQyLjMtNDQuNi0yNi4xLTEzLjMtODIuOS0zNS40LTk5LjctMzUuNC0xNS43IDAtMjAuMiAyMC4yLTM4LjkgMjAuMi0xOCAwLTMxLjMtMTUuMS00OC4xLTE1LjEtMTYuMSAwLTI2LjcgMTEtMzQuOCAzMy42LTI3LjUgNzcuNi0yNi4zIDc0LjMtMjYuMSA3OC4zIDAgMjQuOCA5Ny42IDEwNi4xIDIyOC41IDEwNi4xek00MjkgMjU0LjhjNC43IDIyIDQuNyAyNC4zIDQuNyAyNy4yIDAgMzcuNy00Mi4zIDU4LjYtOTggNTguNi0xMjUuNyAuMS0yMzUuOS03My42LTIzNS45LTEyMi4zIDAtNi44IDEuNC0xMy41IDQuMS0xOS43LTQ1LjIgMi4zLTEwMy44IDEwLjMtMTAzLjggNjIgMCA4NC43IDIwMC42IDE4OSAzNTkuNSAxODkgMTIxLjggMCAxNTIuNS01NS4xIDE1Mi41LTk4LjYgMC0zNC4yLTI5LjYtNzMtODIuOS05Ni4yeiJdfSx1bmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLXBpZWQtcGlwZXIiLGljb246WzQ0OCw1MTIsWyJwaWVkLXBpcGVyLXNxdWFyZSJdLCJlMDFlIiwiTTMyLjEgNDE5bC0zMiA2MC4yIC44LTMyOEMuOSA4NS4zIDU0LjEgMzIgMTIwLjEgMzJsMzI3LjIgMEMzNTQuMyA2MC45IDI1Ny40IDEyNi4yIDE5My40IDIwMC42IDEyMi44IDI4MiA4Mi43IDMzOCAzMi4xIDQxOXptNDE2LTM4N1MzMDUuMyA5OC44IDI2MS43IDE5OS4xYy0yMy4yIDUzLjYtMjguOSAxMTguMS03MSAxNTguNi0yOC45IDI3LjgtNjkuOCAzOC4yLTEwNS4zIDU2LjMtMjMuMiAxMi02Ni40IDQwLjUtODQuOSA2NmwzMjguNCAwYzY2IDAgMTE5LjMtNTMuMyAxMTkuMy0xMTkuMi0uMSAwLS4xLTMyOC44LS4xLTMyOC44eiJdfSxFMHQ9dW5lLCQwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aGF0c2FwcCIsaWNvbjpbNDQ4LDUxMixbXSwiZjIzMiIsIk0zODAuOSA5Ny4xYy00MS45LTQyLTk3LjctNjUuMS0xNTctNjUuMS0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MCAxMTcuNyA0NDkuMWMzMi40IDE3LjcgNjguOSAyNyAxMDYuMSAyN2wuMSAwYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zIDE4LjYtNjguMS00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMXM1Ni4yIDgxLjIgNTYuMSAxMzAuNWMwIDEwMS44LTg0LjkgMTg0LjYtMTg2LjYgMTg0LjZ6TTMyNS4xIDMwMC41Yy01LjUtMi44LTMyLjgtMTYuMi0zNy45LTE4LTUuMS0xLjktOC44LTIuOC0xMi41IDIuOHMtMTQuMyAxOC0xNy42IDIxLjhjLTMuMiAzLjctNi41IDQuMi0xMiAxLjQtMzIuNi0xNi4zLTU0LTI5LjEtNzUuNS02Ni01LjctOS44IDUuNy05LjEgMTYuMy0zMC4zIDEuOC0zLjcgLjktNi45LS41LTkuN3MtMTIuNS0zMC4xLTE3LjEtNDEuMmMtNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjJzLTkuNyAxLjQtMTQuOCA2LjljLTUuMSA1LjYtMTkuNCAxOS0xOS40IDQ2LjNzMTkuOSA1My43IDIyLjYgNTcuNGMyLjggMy43IDM5LjEgNTkuNyA5NC44IDgzLjggMzUuMiAxNS4yIDQ5IDE2LjUgNjYuNiAxMy45IDEwLjctMS42IDMyLjgtMTMuNCAzNy40LTI2LjRzNC42LTI0LjEgMy4yLTI2LjRjLTEuMy0yLjUtNS0zLjktMTAuNS02LjZ6Il19LEkwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbWRiIixpY29uOls0NDgsNTEyLFtdLCJmMmQ4IiwiTTg5LjUgMzIzLjZsLTM1LjYgMCAwLTEzNy40IDM1LjYgMCAwIDEzNy40em02Ni42LTczLjFsOS4xLTY0LjMgNDYuMyAwIDAgMTM3LjQtMzEgMCAwLTkyLjctMTMuNCA5Mi43LTIxLjMgMC0xMy05MC43LS4xIDkwLjctMzEuMiAwIDAtMTM3LjQgNDYuMSAwYy41IDguMyAyLjggMTguMSA0LjMgMjkuNGw0LjIgMzQuOXptNjcuNiA3My4xbDAtMTM3LjQgMjYuNiAwYzE3IDAgMjcgLjkgMzMgMi40IDYuMSAxLjcgMTAuNyA0LjIgMTMuOSA3LjkgMy4xIDMuMyA1LjEgNi42IDUuOCAxMiAuOSA0LjQgMS40IDEzLjEgMS40IDI2LjJsMCA0OC4yYzAgMTIuMy0uNyAyMC41LTEuOSAyNC43LTEuMSA0LjEtMy4xIDcuNC02IDkuNy0yLjggMi40LTYuNCA0LjEtMTAuNyA1LTQuMiAuOC0xMC42IDEuMy0xOS4xIDEuM2wtNDMgMHptMzUuNS0xMTMuOWwwIDg5LjRjNS4xIDAgOC4zLTEgOS40LTIuMyAxLjEtMiAxLjgtNy42IDEuOC0xNi43bDAtNTMuM2MwLTYuMi0uMS0xMC4yLS43LTEyLS4zLTEuOC0xLjItMy0yLjYtNC43LTEuNCAwLTQuMS0uNC03LjktLjR6bTU3LjMgMTEzLjlsMC0xMzcuNCAzNC4xIDAgMCA0My45YzIuOS0yLjQgNi4xLTQuOSA5LjUtNi42IDMuNi0xLjUgOC44LTIuNCAxMi44LTIuNCA0LjggMCA4LjkgLjggMTIuMyAyLjIgMy40IDEuNSA2IDMuNSA4IDYuMiAxLjcgMi42IDIuNyA1LjMgMy4xIDcuOCAuNCAyLjYtLjIgOC0uMiAxNi4ybDAgMzguNmMwIDguMiAuMiAxNC4zLS44IDE4LjQtMS4xIDQtMy44IDcuNi03LjggOS42LTQuMSAzLjktOC45IDUuMy0xNC42IDUuMy00IDAtOS4yLS45LTEyLjctMi41LTMuNS0xLjgtNi43LTQuNS05LjYtOGwtMi4xIDguNy0zMiAwem00NS4xLTIwLjdjLjctMS44IDEtNiAxLTEyLjVsMC0zNS40YzAtNS42LS4zLTkuNS0xLjEtMTEuMi0uNy0xLjktMy43LTIuNy01LjgtMi43LTIgMC0zLjQgLjgtNC4xIDIuMy0uNiAxLjUtMSA1LjQtMSAxMS42bDAgMzYuNGMwIDYuMSAuNCAxMCAxLjIgMTEuNiAuNiAxLjcgMi4xIDIuNSA0LjEgMi41IDIuMiAwIDQuMi0uOCA1LjctMi42ek00MTguNCAzMmMxNS43IDEuMiAyOC43IDE1LjIgMjguNyAzMS45bDAgMzg0LjJjMCAxNi40LTExLjkgMzAuNC0yOC4yIDMxLS4zIDAtLjUgLjktLjggLjlMMjkuOSA0ODBjLS4zIDAtLjYtLjktLjgtLjEtMTUuNy0xLjQtMjcuOS0xMy44LTI5LTMwLjJMMCA2MS44QzEuMSA0NS45IDEzLjggMzMuMSAzMC4zIDMxLjFsMzg3LjQgMGMuMiAwIC41IC45IC43IC45ek0zMC4zIDQxLjNDMTkgNDIgMTAgNTEgOS4zIDYyLjRsMCAzODcuM2MuNCA1LjQgMi43IDEwLjUgNi40IDE0LjMgMy44IDMuOSA4LjggNi4zIDE0LjIgNi43bDM4OC4yIDBjMTEuNS0xIDIwLjYtMTEuNiAyMC42LTIyLjZsMC0zODQuMmMwLTUuNy0yLjEtMTEuMy02LTE1LjVzLTkuMy02LjgtMTUtNy4ybC0zODcuNCAweiJdfSxQMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicHl0aG9uIixpY29uOls0NDgsNTEyLFtdLCJmM2UyIiwiTTQzOS44IDIwMC41Yy03LjctMzAuOS0yMi4zLTU0LjItNTMuNC01NC4ybC00MC4xIDAgMCA0Ny40YzAgMzYuOC0zMS4yIDY3LjgtNjYuOCA2Ny44bC0xMDYuOCAwYy0yOS4yIDAtNTMuNCAyNS01My40IDU0LjNsMCAxMDEuOGMwIDI5IDI1LjIgNDYgNTMuNCA1NC4zIDMzLjggOS45IDY2LjMgMTEuNyAxMDYuOCAwIDI2LjktNy44IDUzLjQtMjMuNSA1My40LTU0LjNsMC00MC43LTEwNi43IDAgMC0xMy42IDE2MC4yIDBjMzEuMSAwIDQyLjYtMjEuNyA1My40LTU0LjIgMTEuMi0zMy41IDEwLjctNjUuNyAwLTEwOC42ek0yODYuMiA0NDQuN2EyMC40IDIwLjQgMCAxIDEgMC00MC43IDIwLjQgMjAuNCAwIDEgMSAwIDQwLjd6TTE2Ny44IDI0OC4xbDEwNi44IDBjMjkuNyAwIDUzLjQtMjQuNSA1My40LTU0LjNsMC0xMDEuOWMwLTI5LTI0LjQtNTAuNy01My40LTU1LjYtMzUuOC01LjktNzQuNy01LjYtMTA2LjggLjEtNDUuMiA4LTUzLjQgMjQuNy01My40IDU1LjZsMCA0MC43IDEwNi45IDAgMCAxMy42LTE0NyAwYy0zMS4xIDAtNTguMyAxOC43LTY2LjggNTQuMi05LjggNDAuNy0xMC4yIDY2LjEgMCAxMDguNiA3LjYgMzEuNiAyNS43IDU0LjIgNTYuOCA1NC4ybDM2LjcgMCAwLTQ4LjhjMC0zNS4zIDMwLjUtNjYuNCA2Ni44LTY2LjR6TTE2MS4yIDY0LjdhMjAuNCAyMC40IDAgMSAxIDAgNDAuOCAyMC40IDIwLjQgMCAxIDEgMC00MC44eiJdfSxOMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2FzaC1hcHAiLGljb246WzQ0OCw1MTIsW10sImU3ZDQiLCJNNDQwLjMgOTYuOWMtOS40LTI2LjUtMzAuMy00Ny40LTU2LjgtNTctMjQuMS03LjktNDYuMy03LjktOTEuNi03LjlMMTU2IDMyYy00NC44IDAtNjcuMiAwLTkxLjMgNy41LTI2LjUgOS42LTQ3LjQgMzAuNS01NyA1Ny03LjcgMjQuMy03LjcgNDYuNy03LjcgOTEuN0wwIDMyMy44YzAgNDUuMiAwIDY3LjQgNy41IDkxLjUgOS42IDI2LjUgMzAuNSA0Ny40IDU3IDU3IDI0LjMgNy43IDQ2LjcgNy43IDkxLjYgNy43bDEzNS43IDBjNDUgMCA2Ny40IDAgOTEuNi03LjcgMjYuNS05LjYgNDcuNC0zMC41IDU3LTU3IDcuNy0yNC4zIDcuNy00Ni43IDcuNy05MS41bDAtMTM1LjVjMC00NSAwLTY3LjQtNy43LTkxLjV6TTMyMy4xIDE4NS40bC0yNS44IDIxLjFjLTIuMyAxLjktNS41IDEuNS03LjMtLjktMTMuMi0xNi4yLTMzLjctMjUuNC01Ni4xLTI1LjQtMjUgMC00MC42IDEwLjktNDAuNiAyNi4yLS40IDEyLjggMTEuNyAxOS42IDQ5LjEgMjcuNyA0Ny4yIDEwIDY4LjcgMjkuNyA2OC43IDYyLjcgMCA0MS40LTMzLjcgNzEuOS04Ni40IDc1LjNsLTUuMSAyNC41Yy0uNCAyLjMtMi42IDQuMS01LjEgNC4xbC00MC42IDBjLTMuNCAwLTUuOC0zLjItNS4xLTYuNGw2LjQtMjcuM2MtMjYtNy41LTQ3LjItMjItNTkuMy0zOS43LTEuNS0yLjMtMS4xLTUuMyAxLjEtN2wyOC4yLTIyYzIuMy0xLjkgNS44LTEuMyA3LjUgMS4xIDE0LjkgMjAuOSAzOCAzMy4zIDY1LjcgMzMuMyAyNSAwIDQzLjgtMTIuMiA0My44LTI5LjcgMC0xMy40LTkuNC0xOS42LTQxLjItMjYuMi01NC4yLTExLjctNzUuOC0zMS44LTc1LjgtNjQuOSAwLTM4LjQgMzIuMi02Ny4yIDgwLjktNzFsNS4zLTI1LjRjLjQtMi4zIDIuNi00LjEgNS4xLTQuMWwzOS45IDBjMy4yIDAgNS44IDMgNS4xIDYuMmwtNi4yIDI4LjRjMjAuOSA2LjQgMzggMTcuOSA0OC43IDMyLjIgMS43IDIuMSAxLjMgNS4zLS45IDd6Il19LEYwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaW50ZXJlc3QtcCIsaWNvbjpbMzg0LDUxMixbXSwiZjIzMSIsIk0yMDQgNi41Yy0xMDIuNiAwLTIwNCA2OC40LTIwNCAxNzkuMSAwIDcwLjQgMzkuNiAxMTAuNCA2My42IDExMC40IDkuOSAwIDE1LjYtMjcuNiAxNS42LTM1LjQgMC05LjMtMjMuNy0yOS4xLTIzLjctNjcuOCAwLTgwLjQgNjEuMi0xMzcuNCAxNDAuNC0xMzcuNCA2OC4xIDAgMTE4LjUgMzguNyAxMTguNSAxMDkuOCAwIDUzLjEtMjEuMyAxNTIuNy05MC4zIDE1Mi43LTI0LjkgMC00Ni4yLTE4LTQ2LjItNDMuOCAwLTM3LjggMjYuNC03NC40IDI2LjQtMTEzLjQgMC02Ni4yLTkzLjktNTQuMi05My45IDI1LjggMCAxNi44IDIuMSAzNS40IDkuNiA1MC43LTEzLjggNTkuNC00MiAxNDcuOS00MiAyMDkuMSAwIDE4LjkgMi43IDM3LjUgNC41IDU2LjQgMy40IDMuOCAxLjcgMy40IDYuOSAxLjUgNTAuNC02OSA0OC42LTgyLjUgNzEuNC0xNzIuOCAxMi4zIDIzLjQgNDQuMSAzNiA2OS4zIDM2IDEwNi4yIDAgMTUzLjktMTAzLjUgMTUzLjktMTk2LjggMC05OS4zLTg1LjgtMTY0LjEtMTgwLTE2NC4xeiJdfSxPMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2htY3MiLGljb246WzQ0OCw1MTIsW10sImY0MGQiLCJNNDQ4IDE2MWwwLTIxLjMtMjguNS04LjgtMi4yLTEwLjQgMjAuMS0yMC43LTEwLjQtMTkuNC0yOSA3LjUtNy4yLTcuNSA3LjUtMjguMi0xOS4xLTExLjYtMjEuMyAyMS0xMC43LTMuMi03LTI2LjQtMjIuNiAwLTYuMiAyNi40LTEyLjEgMy4yLTE5LjctMjEtMTkuNCAxMSA4LjEgMjcuNy04LjEgOC40LTI4LjUtNy41LTExIDE5LjEgMjAuNyAyMS0yLjkgMTAuNC0yOC41IDcuOC0uMyAyMS43IDI4LjggNy41IDIuNCAxMi4xLTIwLjEgMTkuOSAxMC40IDE4LjUgMjkuNi03LjUgNy4yIDguNi04LjEgMjYuOSAxOS45IDExLjYgMTkuNC0yMC40IDExLjYgMi45IDYuNyAyOC41IDIyLjYgLjMgNi43LTI4LjggMTEuNi0zLjUgMjAuNyAyMS42IDIwLjQtMTIuMS04LjgtMjggNy44LTguMSAyOC44IDguOCAxMC4zLTIwLjEtMjAuOS0xOC44IDIuMi0xMi4xIDI5LjEtN3pNMzI4LjggOTIuNmE1Ni44IDU2LjggMCAxIDEgMCAxMTMuNiA1Ni44IDU2LjggMCAxIDEgMC0xMTMuNnptNzIuMyAxMzBsNDYuOSAxNC41IDAgMzkuOS01NS4xIDEzLjQtNC4xIDIyLjcgMzguOSAzNS4zLTE5LjIgMzcuOS01NC0xNi43LTE0LjYgMTUuMiAxNi43IDUyLjUtMzguMyAyMi43LTM4LjktNDAuNS0yMS43IDYuNi0xMi42IDU0LTQyLjQtLjUtMTIuNi01My42LTIxLjctNS42LTM2LjQgMzguNC0zNy40LTIxLjcgMTUuMi01MC41LTEzLjctMTYuMS01NS41IDE0LjEtMTkuNy0zNC44IDM3LjktMzcuNC00LjgtMjIuOC01NC0xNC4xIC41LTQwLjkgNTMuNS0xNC43IDUuNy0xOS43LTM4LjktMzkuNCAyMC43LTM1LjggNTMuNiAxNC4xIDE1LjItMTUuNy0xNS4yLTUyIDM2LjQtMjAuNyAzNi44IDM5LjQgMjIuNy02LjEgMTEuNi01MiA0Mi40IDAgMTEuNiA0NS45LTIyLjYtNS45LTYuMy0xLjctMy4zIDUuNy0xMSAxOS4xLTMuMyA1LjYgNC42IDQuNiAxNy4yIDE3LjQtLjMgMS0yMy44IDYuNS02LjIgMS43YzAgMy4yLS4xIDkuNi0uMyAxOS4zLTQ3LjUgMTAuNC04My4zIDUyLjgtODMuMyAxMDMuNSAwIDU4LjMgNDcuMyAxMDUuNyAxMDUuNyAxMDUuNyA1MC41IDAgOTIuNy0zNS40IDEwMy4yLTgyLjggOS45IC4xIDE2LjYgLjIgMjAuMSAuM2wxLjYtNi43IDUuNi0yNCAxLjktLjYgMTcuMSAxNy44IDQuNyA0LjkgNS44LTMuNCAyMC40LTEyLjEgNS44LTMuNS0yLTYuNS02LjgtMjEuMnoiXX0sUjB0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImpvZ2V0IixpY29uOls1MTIsNTEyLFtdLCJmM2I3IiwiTTM4Ni4xIDQ1QzM0NS42IDE5LjkgMzAwLjYgOCAyNTYuMiA4IDE3MyA4IDkxLjggNDkuOSA0NC45IDEyNS45LTI3IDI0Mi41IDkuMyAzOTUuMiAxMjUuOSA0NjcuMXMyNjkuMyAzNS42IDM0MS4yLTgwLjlDNTM5IDI2OS42IDUwMi43IDExNi44IDM4Ni4xIDQ1em01MS44IDMyMy4yYy00MC40IDY1LjUtMTEwLjQgMTAxLjUtMTgyIDEwMS41LTYuOCAwLTEzLjYtLjQtMjAuNC0xLTktMTMuNi0xOS45LTMzLjMtMjMuNy00Mi40LTUuNy0xMy43LTI3LjItNDUuNiAzMS4yLTY3LjEgNTEuNy0xOS4xIDE3Ni43LTE2LjUgMjA4LjgtMTcuNi00IDktOC42IDE3LjktMTMuOSAyNi42ek0yMzcuMSAyODEuOWMtNTUuNS0xLjQtODEuNy0yMC44LTU4LjUtNDguMnM1MS4xLTQwLjcgNjguOS01MS4yYzE3LjktMTAuNSAyNy4zLTMzLjctMjMuNi0yOS43LTEyOC42IDguNy0xNjcuMyA5OS4zLTE3OC4zIDE0MC4yLTguOC00OS43LS4xLTEwMi43IDI4LjUtMTQ5LjEgNjEuOS0xMDAuNSAxOTMuNS0xMzEuNyAyOTQtNjkuOCA3NC44IDQ2LjEgMTExLjIgMTMwLjkgOTkuMyAyMTIuNy0yNC45LS41LTE3OS4zLTMuNi0yMzAuMy00Ljl6bTE4My44LTU0LjhjLTIyLjctNi01NyAxMS4zLTg2LjcgMjcuMi0yOS43IDE1LjgtMzEuMSA4LjItMzEuMSA4LjJzNDAuMi0yOC4xIDUwLjctMzQuNSAzMS45LTE0IDEzLjQtMjQuNmMtMy4yLTEuOC02LjctMi43LTEwLjQtMi43LTE3LjggMC00MS41IDE4LjctNjcuNSAzNS42LTMxLjUgMjAuNS02NS4zIDMxLjMtNjUuMyAzMS4zTDM5My41IDI2NiA0NDAgMjQyLjZzMy42LTkuNS0xOS4xLTE1LjV6Il19LHBuZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteW91dHViZSIsaWNvbjpbNDQ4LDUxMixbNjE3OTgsInlvdXR1YmUtc3F1YXJlIl0sImY0MzEiLCJNMjgyIDI1Ni4ybC05NS4yLTU0LjEgMCAxMDguMiA5NS4yLTU0LjF6TTM4NCAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0em0xNC40IDEzNi4xYzcuNiAyOC42IDcuNiA4OC4yIDcuNiA4OC4yczAgNTkuNi03LjYgODguMWMtNC4yIDE1LjgtMTYuNSAyNy43LTMyLjIgMzEuOS0yOC4zIDcuNy0xNDIuMiA3LjctMTQyLjIgNy43cy0xMTMuOSAwLTE0Mi4yLTcuNmMtMTUuNy00LjItMjgtMTYuMS0zMi4yLTMxLjktNy42LTI4LjYtNy42LTg4LjItNy42LTg4LjJzMC01OS43IDcuNi04OC4yYzQuMi0xNS44IDE2LjUtMjguMiAzMi4yLTMyLjQgMjguMy03LjcgMTQyLjItNy43IDE0Mi4yLTcuN3MxMTMuOSAwIDE0Mi4yIDcuN2MxNS43IDQuMiAyOCAxNi42IDMyLjIgMzIuNHoiXX0sQjB0PXBuZSxIMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXRsYXNzaWFuIixpY29uOls1MTIsNTEyLFtdLCJmNzdiIiwiTTE1Mi4yIDIzNi40Yy03LjctOC4yLTE5LjctNy43LTI0LjggMi44TDEuNiA0OTAuMmMtNSAxMCAyLjQgMjEuNyAxMy40IDIxLjdsMTc1IDBjNS44IC4xIDExLTMuMiAxMy40LTguNCAzNy45LTc3LjggMTUuMS0xOTYuMy01MS4yLTI2Ny4xek0yNDQuNCA4LjFjLTEyMi4zIDE5My40LTguNSAzNDguNiA2NSA0OTUuNSAyLjUgNS4xIDcuNyA4LjQgMTMuNCA4LjRMNDk3IDUxMmMxMS4yIDAgMTguNC0xMS44IDEzLjQtMjEuNyAwIDAtMjM0LjUtNDcwLjYtMjQwLjQtNDgyLjMtNS4zLTEwLjYtMTguOC0xMC44LTI1LjYgLjF6Il19LHEwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwaWVkLXBpcGVyLWhhdCIsaWNvbjpbNjQwLDUxMixbXSwiZjRlNSIsIk02NDAgMjQuOWMtODAuOCA1My42LTg5LjQgOTIuNS05Ni40IDEwNC40LTYuNyAxMi4yLTExLjcgNjAuMy0yMy4zIDgzLjYtMTEuNyAyMy42LTU0LjIgNDIuMi02Ni4xIDUwLTExLjcgNy44LTI4LjMgMzguMS00MS45IDY0LjItMTA4LjEtNC40LTE2Ny40IDM4LjgtMjU5LjIgOTMuNiAyOS40LTkuNyA0My4zLTE2LjcgNDMuMy0xNi43IDk0LjItMzYgMTM5LjMtNjguMyAyODEuMS00OS4yIDEuMSAwIDEuOSAuNiAyLjggLjggMy45IDIuMiA1LjMgNi45IDMuMSAxMC44bC01My45IDk1LjhjLTIuNSA0LjctNy44IDcuMi0xMy4xIDYuMS0xMjYuOC0yMy44LTIyNi45IDE3LjMtMzE4LjkgMTguNi03My40IDEuMS05Ny41LTMzLjUtOTcuNS0zNS4xIDAtMS4xIC42LTEuNyAxLjctMS43IDAgMCAzOC4zIDAgMTAzLjEtMTUuMyA3My42LTE0MC4zIDEzOS4yLTE4OS40IDIxMC42LTE4OS40IDAgMCA3MS43IDAgOTAuNiA2MS45IDIyLjgtMzkuNyAyOC4zLTQ5LjIgMjguMy00OS4yIDUuMy05LjQgMzUtNzcuMiA4Ni40LTE0MS40IDUxLjUtNjQgOTAuNC03OS45IDExOS4zLTkxLjh6Il19LGowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJpbnRlcm5ldC1leHBsb3JlciIsaWNvbjpbNTEyLDUxMixbXSwiZjI2YiIsIk00ODMuMSAxNTkuN2MxMC45LTI0LjYgMjEuNC02MC40IDIxLjQtODcuOSAwLTcyLjctNzkuNi05OC40LTIwOS43LTM4LjYtMTA3LjYtNy4yLTIxMS4yIDczLjctMjM3LjEgMTg2LjUgMzAuOS0zNC45IDc4LjMtODIuMyAxMjItMTAxLjItNTQuMyA0OC4zLTEwMC42IDEwOS40LTEzNS43IDE3My4yLTIwLjcgMzcuOS00NCA5OS4yLTQ0IDE0NSAwIDk4LjYgOTIuOSA4Ni41IDE4MC4zIDQyIDMxLjQgMTUuNCA2Ni42IDE1LjYgMTAxLjcgMTUuNiA5Ny4xIDAgMTg0LjItNTQuMyAyMTYuOC0xNDZsLTEyMC44IDBjLTUyLjUgODguNi0xOTYuOCA1My0xOTYuOC00Ny40bDMyOC44IDBjNi40LTQzLjYtMS43LTk1LjctMjYuOS0xNDEuMnpNNjQuNiAzNDYuOUM4Mi4zIDM5OCAxMTguMyA0NDIuNyAxNjQuOCA0NzAuMiA3Ni4xIDUxOS4xLTguNCA0OTkuMyA2NC42IDM0Ni45ek0xODAuNSAyMzhjMi01NS4yIDUwLjMtOTQuOSAxMDQtOTQuOSA1My40IDAgMTAyIDM5LjcgMTA0IDk0LjlsLTIwOCAwek0zNjUuMSA1MC40YzIxLjQtMTAuMyA0OC42LTIyIDcyLjYtMjIgMzEuNCAwIDU0LjMgMjEuNyA1NC4zIDUzLjcgMCAyMC03LjQgNDktMTQuNiA2Ny45LTI2LjMtNDIuMy02Ni04MS42LTExMi4zLTk5LjZ6Il19LFYwdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhaXJibmIiLGljb246WzQ0OCw1MTIsW10sImY4MzQiLCJNMjI0LjUgMzczLjFjLTI1LjItMzEuNy00MC4xLTU5LjQtNDUtODMuMi0yMi41LTg4IDExMi42LTg4IDkwLjEgMC01LjQgMjQuMi0yMC4zIDUyLTQ1IDgzLjJsLS4xIDB6bTEzOC4yIDczLjJjLTQyLjEgMTguMy04My43LTEwLjktMTE5LjMtNTAuNSAxMDMuOS0xMzAuMSA0Ni4xLTIwMC0xOC44LTIwMC01NC45IDAtODUuMiA0Ni41LTczLjMgMTAwLjUgNi45IDI5LjIgMjUuMiA2Mi40IDU0LjQgOTkuNS0zMi41IDM2LTYwLjUgNTIuNy04NS4yIDU0LjktNTAgNy40LTg5LjEtNDEuMS03MS4zLTkxLjEgMTUuMS0zOS4yIDExMS43LTIzMS4yIDExNS45LTI0MS42IDE1LjgtMzAuMSAyNS42LTU3LjQgNTkuNC01Ny40IDMyLjMgMCA0My40IDI1LjkgNjAuNCA1OS45IDM2IDcwLjYgODkuNCAxNzcuNSAxMTQuOCAyMzkuMSAxMy4yIDMzLjEtMS40IDcxLjMtMzcgODYuNnptNDctMTM2LjFjLTEyOC45LTI3NC4zLTEzNi0yNzguMi0xODUuMS0yNzguMi00NS41IDAtNjQuOSAzMS43LTg0LjcgNzIuOC0xMDYuMiAyMTIuMy0xMTYuNCAyNDIuNC0xMTcuMyAyNDUtMjUuMiA2OS4zIDI2LjcgMTMwLjIgODkuNiAxMzAuMiAyMS43IDAgNjAuNi02LjEgMTEyLjQtNjIuNCA1OC43IDYzLjggMTAxLjMgNjIuNCAxMTIuNCA2Mi40IDYyLjkgLjEgMTE0LjktNjAuOSA4OS42LTEzMC4yIDAtMy45LTE2LjgtMzguOS0xNi44LTM5LjZsMCAweiJdfSxVMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToianMiLGljb246WzQ0OCw1MTIsW10sImYzYjgiLCJNMCAzMmwwIDQ0OCA0NDggMCAwLTQ0OC00NDggMHpNMjQzLjggMzgxLjRjMCA0My42LTI1LjYgNjMuNS02Mi45IDYzLjUtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVMMTUyIDM4NS43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjYgMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNWwwLTE0My4xIDQyLjEgMCAwIDE0My43em05OS42IDYzLjVjLTM5LjEgMC02NC40LTE4LjYtNzYuNy00M0wzMDEgMzgyLjFjOSAxNC43IDIwLjggMjUuNiA0MS41IDI1LjYgMTcuNCAwIDI4LjYtOC43IDI4LjYtMjAuOCAwLTE0LjQtMTEuNC0xOS41LTMwLjctMjhsLTEwLjUtNC41Yy0zMC40LTEyLjktNTAuNS0yOS4yLTUwLjUtNjMuNSAwLTMxLjYgMjQuMS01NS42IDYxLjYtNTUuNiAyNi44IDAgNDYgOS4zIDU5LjggMzMuN0wzNjggMjkwYy03LjItMTIuOS0xNS0xOC0yNy4xLTE4LTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4IDAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yIDAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42eiJdfSxXMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicXVpbnNjYXBlIixpY29uOls1MTIsNTEyLFtdLCJmNDU5IiwiTTMxMy43IDQ3NC42bC0xIDBjLTQxLjkgMC04Mi4xLTE2LjctMTExLjgtNDYuM3MtNDYuMy02OS45LTQ2LjMtMTExLjggMTYuNy04Mi4xIDQ2LjMtMTExLjggNjkuOS00Ni4zIDExMS44LTQ2LjNjOTQuOSAwIDE2OC4yIDgzLjEgMTU3IDE3Ni42IDQgNS4xIDguMiA5LjYgMTEuMiAxNS4zIDEzLjQtMzAuMyAyMC4zLTYyLjQgMjAuMy05Ny43IDAtMTM1LjEtMTA5LjUtMjQ0LjYtMjQ0LjYtMjQ0LjZTMTIuMSAxMTcuNSAxMi4xIDI1Mi42IDEyMS42IDQ5Ny4yIDI1Ni42IDQ5Ny4yYzIzLjggLjIgNDcuNi0zLjIgNzAuNC0xMC4xLTUuMi0zLjUtOC45LTguMS0xMy4zLTEyLjV6bTc4LjMtMTY5YTk5LjIgOTkuMiAwIDEgMCAwIDE5OC40IDk5LjIgOTkuMiAwIDEgMCAwLTE5OC40eiJdfSxHMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWR2ZXJzYWwiLGljb246WzUxMiw1MTIsW10sImYzNmEiLCJNNDgyLjEgMzJMMjguNyAzMkM1LjggMzIgMCAzNy45IDAgNjAuOUwwIDQ1MS4xQzAgNDc0LjQgNS44IDQ4MCAyOC43IDQ4MGw0NTMuNCAwYzI0LjQgMCAyOS45LTUuMiAyOS45LTI5LjdsMC0zODguMWMwLTI0LjYtNS40LTMwLjItMjkuOS0zMC4yek0xNzguNCAyMjAuM2MtMjcuNS0yMC4yLTcyLjEtOC43LTg0LjIgMjMuNC00LjMgMTEuMS05LjMgOS41LTE3LjUgOC4zLTkuNy0xLjUtMTcuMi0zLjItMjIuNS01LjUtMjguOC0xMS40IDguNi01NS4zIDI0LjktNjQuMyA0MS4xLTIxLjQgODMuNC0yMi4yIDEyNS4zLTQuOCA0MC45IDE2LjggMzQuNSA1OS4yIDM0LjUgMTI4LjUgMi43IDI1LjgtNC4zIDU4LjMgOS4zIDg4LjggMS45IDQuNCAuNCA3LjktMi43IDEwLjctOC40IDYuNy0zOS4zIDIuMi00Ni42LTcuNC0xLjktMi4yLTEuOC0zLjYtMy45LTYuMi0zLjYtMy45LTcuMy0yLjItMTEuOSAxLTU3LjQgMzYuNC0xNDAuMyAyMS40LTE0Ny00My4zLTMuMS0yOS4zIDEyLjQtNTcuMSAzOS42LTcxIDM4LjItMTkuNSAxMTIuMi0xMS44IDExNC0zMC45IDEuMS0xMC4yLTEuOS0yMC4xLTExLjMtMjcuM3ptMjg2LjcgMjIyYzAgMTUuMS0xMS4xIDkuOS0xNy44IDkuOWwtMzk0LjkgMGMtNy40IDAtMTguMiA0LjgtMTcuOC0xMC43IC40LTEzLjkgMTAuNS05LjEgMTcuMS05LjEgMTMyLjMtLjQgMjY0LjUtLjQgMzk2LjggMCA2LjggMCAxNi42LTQuNCAxNi42IDkuOXptMy44LTM0MC41bDAgMjkxYzAgNS43LS43IDEzLjktOC4xIDEzLjktMTIuNC0uNC0yNy41IDcuMS0zNi4xLTUuNi01LjgtOC43LTcuOC00LTEyLjQtMS4yLTUzLjQgMjkuNy0xMjguMSA3LjEtMTQ0LjQtODUuMi02LjEtMzMuNC0uNy02Ny4xIDE1LjctMTAwIDExLjgtMjMuOSA1Ni45LTc2LjEgMTM2LjEtMzAuNWwwLTcxYzAtMjYuMi0uMS0yNi4yIDI2LTI2LjIgMy4xIDAgNi42IC40IDkuNyAwIDEwLjEtLjggMTMuNiA0LjQgMTMuNiAxNC4zLS4xIC4yLS4xIC4zLS4xIC41ek00MTcuNCAzMzQuMWMtMTkuNSA0Ny42LTcyLjkgNDMuMy05MCA1LjItMTUuMS0zMy4zLTE1LjUtNjguMiAuNC0xMDEuNSAxNi4zLTM0LjEgNTkuNy0zNS43IDgxLjUtNC44IDIwLjYgMjguOCAxNC45IDg0LjYgOC4xIDEwMS4xek0xMjIuNiAzNjkuNGMtNy41LTEuMy0zMy0zLjMtMzMuNy0yNy44LS40LTEzLjkgNy44LTIzIDE5LjgtMjUuOCAyNC40LTUuOSA0OS4zLTkuOSA3My43LTE0LjcgOC45LTIgNy40IDQuNCA3LjggOS41IDEuNCAzMy0yNi4xIDU5LjItNjcuNiA1OC44eiJdfSxZMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY3JlYXRpdmUtY29tbW9ucyIsaWNvbjpbNTEyLDUxMixbXSwiZjI1ZSIsIk0yNTMuOCAyMTQuOWwtMzMuMiAxNy4zYy05LjQtMTkuNi0yNS4yLTE5LjktMjcuNS0xOS45LTIyLjEgMC0zMy4yIDE0LjYtMzMuMiA0My44IDAgMjMuNiA5LjIgNDMuOCAzMy4yIDQzLjggMTQuNSAwIDI0LjYtNy4xIDMwLjYtMjEuM2wzMC42IDE1LjVjLTYuMiAxMS41LTI1LjcgMzktNjUuMSAzOS0yMi42IDAtNzQtMTAuMy03NC03NyAwLTU4LjcgNDMtNzcuMSA3Mi42LTc3LjEgMzAuNyAwIDUyLjcgMTEuOSA2NiAzNS45em0xNDMgMGwtMzIuOCAxNy4zYy05LjUtMTkuOC0yNS43LTE5LjktMjcuOS0xOS45LTIyLjEgMC0zMy4yIDE0LjYtMzMuMiA0My44IDAgMjMuNSA5LjIgNDMuOCAzMy4yIDQzLjggMTQuNCAwIDI0LjYtNy4xIDMwLjUtMjEuM2wzMSAxNS41Yy0yLjEgMy44LTIxLjQgMzktNjUuMSAzOS0yMi43IDAtNzQtOS45LTc0LTc3IDAtNTguNyA0My03Ny4xIDcyLjYtNzcuMSAzMC43IDAgNTIuNiAxMS45IDY1LjYgMzUuOXpNMjU1LjYgOEMxMTIuNyA4IDggMTIzLjEgOCAyNTYuMSA4IDM5NC41IDEyMS42IDUwNC4xIDI1NS42IDUwNC4xIDM4NS41IDUwNC4xIDUwNCA0MDMuMiA1MDQgMjU2LjEgNTA0IDExOC4yIDM5Ny40IDggMjU1LjYgOHptLjkgNDUwLjhjLTExMi41IDAtMjAzLjctOTMtMjAzLjctMjAyLjggMC0xMDUuNCA4NS40LTIwMy4zIDIwMy43LTIwMy4zIDExMi41IDAgMjAyLjggODkuNSAyMDIuOCAyMDMuMyAwIDEyMS43LTk5LjcgMjAyLjgtMjAyLjggMjAyLjh6Il19LFowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJub3Rpb24iLGljb246WzUxMiw1MTIsW10sImU3ZDkiLCJNOTQuOSAxMDAuMmMxNC45IDEyLjEgMjAuNSAxMS4yIDQ4LjYgOS4zTDQwNy44IDkzLjZjNS42IDAgLjktNS42LS45LTYuNUwzNjIuOSA1NS40Yy04LjQtNi41LTE5LjYtMTQtNDEuMS0xMi4xTDY1LjkgNjEuOWMtOS4zIC45LTExLjIgNS42LTcuNSA5LjNsMzYuNCAyOC45em0xNS45IDYxLjZsMCAyNzguMWMwIDE0LjkgNy41IDIwLjUgMjQuMyAxOS42bDI5MC41LTE2LjhjMTYuOC0uOSAxOC43LTExLjIgMTguNy0yMy4zbDAtMjc2LjJjMC0xMi4xLTQuNy0xOC43LTE1LTE3LjdMMTI1LjcgMTQzLjFjLTExLjIgLjktMTQuOSA2LjUtMTQuOSAxOC43em0yODYuNyAxNC45YzEuOSA4LjQgMCAxNi44LTguNCAxNy44bC0xNCAyLjggMCAyMDUuM2MtMTIuMiA2LjUtMjMuNCAxMC4zLTMyLjcgMTAuMy0xNSAwLTE4LjctNC43LTI5LjktMTguN2wtOTEuNS0xNDMuNyAwIDEzOSAyOSA2LjVzMCAxNi44LTIzLjQgMTYuOGwtNjQuNCAzLjdjLTEuOS0zLjcgMC0xMy4xIDYuNS0xNC45bDE2LjgtNC43IDAtMTgzLjgtMjMuMy0xLjljLTEuOS04LjQgMi44LTIwLjUgMTUuOS0yMS41bDY5LjEtNC43IDk1LjMgMTQ1LjYgMC0xMjguOC0yNC4zLTIuOGMtMS45LTEwLjMgNS42LTE3LjcgMTQuOS0xOC43bDY0LjUtMy44ek00NC40IDM2LjdMMzEwLjYgMTcuMWMzMi43LTIuOCA0MS4xLS45IDYxLjYgMTRsODUgNTkuN2MxNCAxMC4zIDE4LjcgMTMuMSAxOC43IDI0LjNsMCAzMjcuNmMwIDIwLjUtNy41IDMyLjctMzMuNiAzNC41TDEzMy4yIDQ5NS44Yy0xOS42IC45LTI5LTEuOS0zOS4yLTE0LjlMMzEuNCAzOTkuN2MtMTEuMi0xNC45LTE1LjktMjYuMS0xNS45LTM5LjJsMC0yOTEuMmMwLTE2LjggNy41LTMwLjggMjguOS0zMi43eiJdfSxYMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2hyb21lY2FzdCIsaWNvbjpbNTEyLDUxMixbXSwiZjgzOCIsIk00NDggNjRMNjQuMiA2NGMtMjMuNiAwLTQyLjcgMTkuMS00Mi43IDQyLjdsMCA2My45IDQyLjcgMCAwLTYzLjkgMzgzLjggMCAwIDI5OC42LTE0OS4yIDAgMCA0Mi43IDE0OS40IDBjMjMuNiAwIDQyLjctMTkuMSA0Mi43LTQyLjdsMC0yOTguNkM0OTAuOSA4My4xIDQ3MS42IDY0IDQ0OCA2NHpNMjEuNSAzODMuNmwwIDYzLjkgNjMuOSAwYzAtMzUuMy0yOC42LTYzLjktNjMuOS02My45em0wLTg1bDAgNDIuNGM1OC45IDAgMTA2LjYgNDguMSAxMDYuNiAxMDdsNDIuNyAwYy4xLTgyLjQtNjYuOS0xNDkuMy0xNDkuMy0xNDkuNHpNMjEzLjYgNDQ4bDQyLjcgMEMyNTUuOCAzMTguNSAxNTEgMjEzLjcgMjEuNSAyMTMuNGwwIDQyLjRjMTA2LS4yIDE5MiA4Ni4yIDE5Mi4xIDE5Mi4yeiJdfSxRMHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidWx0cmFseXRpY3MtaHViIixpY29uOls1MTIsNTEyLFtdLCJlODZlIiwiTTEzMC40IDE2YzYwLjkgMCAxMTAuNCA0OS41IDExMC40IDExMC40bDAgMjQuOWM0LjgtLjcgOS43LTEgMTQuNi0xIDg4LjEtLjIgMTY1LjEgNDkgMjA1LjQgMTIxLjItMjIuOC0xNi4yLTUwLjctMjUuNC04MC40LTI1LjMtNzcuMSAuMi0xMzkuNSA2Mi42LTEzOS42IDEzOS40LS4xIDYwLjktNDkuNSAxMTAuMy0xMTAuNyAxMTAuNS02MC42IC4yLTExMC4yLTQ5LjUtMTEwLjItMTEwLjUgLjItMi42IDAgMCAuMS0zLjJsMC0yNTZDMjAuMSA2NS41IDY5LjUgMTYgMTMwLjQgMTZ6TTM4MC4zIDQ5NmExMTAuNCAxMTAuNCAwIDEgMSAwLTIyMC45IDExMC40IDExMC40IDAgMSAxIDAgMjIwLjl6Il19LEowdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ3aWtpcGVkaWEtdyIsaWNvbjpbNjQwLDUxMixbXSwiZjI2NiIsIk02NDAgNTEuMmwtLjMgMTIuMmMtMjguMSAuOC00NSAxNS44LTU1LjggNDAuMy0yNSA1Ny44LTEwMy4zIDI0MC0xNTUuMyAzNTguNmwtMTMuNiAwLTgxLjktMTkzLjFjLTMyLjUgNjMuNi02OC4zIDEzMC05OS4yIDE5My4xLS4zIC4zLTE1IDAtMTUtLjMtNDYuOS0xMDkuNy05Ni4xLTIxOC42LTE0My4xLTMyOC42LTExLjQtMjYuNy00OS40LTcwLTc1LjYtNjkuNyAwLTMuMS0uMy0xMC0uMy0xNC4ybDE2MS45IDAgMCAxMy45Yy0xOS4yIDEuMS01Mi44IDEzLjMtNDMuMyAzNC4yIDIxLjkgNDkuNyAxMDMuNiAyNDAuMyAxMjUuNiAyODguNiAxNS0yOS43IDU3LjgtMTA5LjIgNzUuMy0xNDIuOC0xMy45LTI4LjMtNTguNi0xMzMuOS03Mi44LTE2MC05LjctMTcuOC0zNi4xLTE5LjQtNTUuOC0xOS43bDAtMTMuOSAxNDIuNSAuMyAwIDEzLjFjLTE5LjQgLjYtMzguMSA3LjgtMjkuNCAyNi4xIDE4LjkgNDAgMzAuNiA2OC4xIDQ4LjEgMTA0LjcgNS42LTEwLjggMzQuNy02OS40IDQ4LjEtMTAwLjggOC45LTIwLjYtMy45LTI4LjYtMzguNi0yOS40IC4zLTMuNiAwLTEwLjMgLjMtMTMuNiA0NC40LS4zIDExMS4xLS4zIDEyMy4xLS42bDAgMTMuNkM0NjIuNCA2NCA0MzkuMSA3NiA0MjYuOCA5NC45TDM2Ny42IDIxNy43YzYuNCAxNi4xIDYzLjMgMTQyLjggNjkuMiAxNTYuN0w1NTkuMiA5MS44Yy04LjYtMjMuMS0zNi40LTI4LjEtNDcuMi0yOC4zbDAtMTMuOSAxMjcuOCAxLjEgLjIgLjV6Il19LEswdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzaXRyb3giLGljb246WzQ0OCw1MTIsW10sImU0NGEiLCJNMjEyLjQgMGwwIDAgMjM1LjYgMCAwIDEyOC0zODQgMEM2NCA1Ny42IDE0MS44IC41IDIxMi40IDB6bTI0LjggMTkybDAgMGM2OS45IC41IDE0Ni43IDU3LjYgMTQ2LjcgMTI4bC0xNzMuMiAwIDAgMEMxNDAuOSAzMTkuNiA2NCAyNjIuNCA2NCAxOTJsMTczLjMgMHptLTEuNyAzMjBjNzAuNy0uNSAxNDguNC01Ny42IDE0OC40LTEyOGwtMzg0IDAgMCAxMjggMjM1LjYgMCAwIDB6Il19LGhuZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZ2l0bGFiIixpY29uOls0NDgsNTEyLFsiZ2l0bGFiLXNxdWFyZSJdLCJlNWFlIiwiTTAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NnptMzM3LjUgMTIuNWw0NC42IDExNi40IC40IDEuMmM1LjYgMTYuOCA3LjIgMzUuMiAyLjMgNTIuNS01IDE3LjItMTUuNCAzMi40LTI5LjggNDMuM2wtLjIgLjEtNjguNCA1MS4yLTU0LjEgNDAuOWMtLjUgLjItMS4xIC41LTEuNyAuOC0yIDEtNC40IDItNi43IDItMyAwLTYuOC0xLjgtOC4zLTIuOGwtNTQuMi00MC45LTY3LjktNTAuOS0uNC0uMy0uMi0uMWMtMTQuMy0xMC44LTI0LjgtMjYtMjkuNy00My4zcy00LjItMzUuNyAyLjItNTIuNWwuNS0xLjIgNDQuNy0xMTYuNGMuOS0yLjMgMi41LTQuMyA0LjUtNS42IDEuNi0xIDMuNC0xLjYgNS4yLTEuOCAxLjMtLjcgMi4xLS40IDMuNCAuMSAuNiAuMiAxLjIgLjUgMiAuNyAxIC40IDEuNiAuOSAyLjQgMS41IC42IC40IDEuMiAxIDIuMSAxLjUgMS4yIDEuNCAyLjIgMyAyLjcgNC44bDI5LjIgOTIuMiAxMjIuOSAwIDMwLjItOTIuMmMuNS0xLjggMS40LTMuNCAyLjYtNC44czIuOC0yLjQgNC41LTMuMWMxLjctLjYgMy42LS45IDUuNC0uN3MzLjYgLjggNS4yIDEuOGMyIDEuMyAzLjcgMy4zIDQuNiA1LjZ6Il19LGU0dD1obmUsdDR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNob2VsYWNlIixpY29uOls1MTIsNTEyLFtdLCJlNjBjIiwiTTQwNS4yIDMzMWMyLjItMS4xIDQuNC0yLjMgNi41LTMuN2w4LjMtNC44YzEuNS0xLjEgNC40LTMuNCA4LjctNi43bC41LS41YzMuNC0zLjQgNy4yLTUgMTEuMy00LjkgMS44IDAgMy45IC41IDYuNCAxLjVsMzEtMjcuNWMuOS0uNyAxLjctMS4zIDIuNi0xLjhsLjIgMGMzLjMtMS45IDYtMS44IDguMiAuNCAzLjkgMi4xIDQuMiA1LjYgLjkgMTAuNkw0NTcuMiAzMjJjLjIgLjUgLjQgMSAuNCAxLjUgLjUgMi4yIC4zIDQuNC0uNSA2LjYtLjcgMS41LTEuOCAyLjktMy4xIDQuMi0xLjQgMS40LTIuNyAyLjgtNC4yIDQuMkw0MzEgMzUyLjJjLTEuNyAxLjItMy40IDIuMy01LjEgMy4zLTIuMSAxLjMtNC4zIDIuNS02LjYgMy42LTEgLjQtMS45IC45LTIuOSAxLjMtNS45IDIuNS0xMS45IDQuMi0xOC4yIDUtMi45IDI0LjUtMTEuMyA0Ny4xLTI1LjEgNjcuOC0xNy41IDI1LjctNDEuNCA0NS40LTcxLjggNTguOC0zMC4yIDEzLjUtNjMgMjAuMi05OC4yIDIwLjItNDguNi0uNS04OC0xMS40LTExOC4yLTMyLjgtMzUuMS0yNS01Mi42LTU3LjktNTIuNi05OS4xbDAtNS42YzEuMi0yOC4xIDkuNS01NC42IDI0LjgtNzkuOCAxNS4xLTI0LjkgMzcuMS00MS43IDY2LjEtNTAuNSAxNC45LTQuNCAyOS45LTYuNiA0NS02LjYgMTUuNSAwIDMxLjYgMi45IDQ4LjEgOC42czM1LjIgMTUuNSA1NS45IDI5LjVsNTQuMSAzNi4zYzE1LjEgOS44IDI4LjggMTYuNSA0MS4yIDIwLTIuNi0yNS4xLTExLjctNDYuNi0yNy4zLTY0LjUtMTUuNy0xOC4xLTM1LjYtMzEuMy01OS45LTM5LjdMMjU3IDIyMGMtMjEuNC03LjUtMzcuMy0xNC45LTQ3LjctMjIuMi0yOC4yLTE5LjEtNDMuOC00NS4yLTQ3LTc4LjVsLS41LTkuOGMwLTMyLjEgMTMtNTguOSAzOS04MC41IDIzLTE5LjMgNTAuNi0yOSA4Mi41LTI5IDI0IDAgNDUuNiA2LjkgNjQuNyAyMC44IDE5LjIgMTQgMzAuMSAzMy44IDMyLjYgNTkuNGwuNSAxMGMwIDE4LjYtNC44IDM0LjUtMTQuNCA0Ny43LTkuOCAxMy4yLTE4LjUgMTkuOS0yNiAxOS45LTEuNi0uMS0zLjEtLjMtNC41LS42bC0zNCAzMmMtNS41IDMtOS4yIDIuNS0xMS4xLTEuNi0xLjktMi4yLTEuOC00LjkgLjUtOC4ybC4yLS4yYy41LS43IDEuMi0xLjUgMi0yLjRsMzEuNi0zMGMtLjQtMS41LS42LTMuMS0uNi00LjggMC00LjEgMS42LTcuNiA0LjktMTAuNCAxMy44LTEyLjQgMjAuOC0yNi43IDIwLjgtNDIuOCAwLTE2LTYuMS0yOS41LTE4LjItNDAuNHMtMjguNy0xNi41LTQ5LjctMTYuOGMtMjYuMiAwLTQ3LjggNy45LTY0LjcgMjMuN1MxOTIuNiA4OS45IDE5Mi42IDExMmMwIDE3LjggNi45IDMzLjkgMjAuNiA0OC4zIDEzLjYgMTQuMiAzNC42IDI1LjQgNjMgMzMuNSAzOS44IDExLjUgNzAuMiAzMSA5MS4zIDU4LjMgMTguNyAyNC4yIDI5LjEgNTEuMyAzMS4zIDgxLjQgMi4yLS43IDQuMy0xLjUgNi41LTIuNmwtLjEgLjF6TTI5NC40IDE3OC43YzAgMS4xIC42IDEuNiAxLjggMS42IC4xIDAgOS43LTguOSAyOC44LTI2LjYgMC0yLjQtNS4xIC45LTE1LjMgMTAtMTAuMiA5LjItMTUuMyAxNC4yLTE1LjMgMTQuOWwwIC4xem04IDYuNGMwLTEtLjUtMS41LTEuNS0xLjUtMS4xIDAtMi4xIC41LTIuOSAxLjYtMS45LS4xLTMuMyAuMS00LjIgLjctLjQgLjItLjUgLjUtLjUgLjcgMCAuNyAuNSAxLjMgMS41IDEuNmwzLjMgMGMyLjktMS4xIDQuNC0yLjIgNC40LTMuM2wtLjEgLjJ6TTMyNSAxNjUuMmMwLTIuOC0xLjYtMi44LTQuOSAwLTEuNiAxLjUtMy42IDMuNS02IDYuMi0uOCAuNi0yLjYgMi4yLTUuMyA0LjktMi44IDIuOS00LjIgNC43LTQuMiA1LjNsLjIgMS4zYy43IC4yIDEuMiAuNCAxLjUgLjQgLjEgMCAzLjMtMi45IDkuNS04LjdzOS4zLTguOSA5LjMtOS4zbC0uMS0uMXptMTU5LjcgMTIwbC0zMC42IDI3YzEuOCAxIDMuMiAyLjQgNCA0LjJsMzAuMi0yN2MuMi0xLjIgLjEtMi4yLS41LTIuOS0uNi0uNS0xLjYtLjktMy4xLTEuM3ptLTEuNi0uOWwtLjctLjctMjcgMjEuOSAxLjYgMiAyNi0yMy4xIC4xLS4xek0zNjYuOSAzNjMuOWMtOC0yLjEtMTUuNC00LjYtMjIuMi03LjUtMTUuMy02LjItMzQuMy0xNy01Ny0zMi40bC0zNy40LTI1LjNjLTE1LjgtMTAuMS0zMC4yLTE3LjYtNDMuMi0yMi42LTEzLjEtNC45LTI2LTcuMy0zOC42LTcuM2wtNS41IDBjLTMyLjIgMS43LTU3LjIgMTMuOC03NSAzNi4yLTE2LjYgMjAuOC0yNSA0NS4zLTI1IDczLjYgMCAzMS44IDEyLjggNTYuNyAzOC4yIDc0LjcgMjUuNCAxOC4xIDYwLjIgMjcuMSAxMDQuNCAyNy4xIDM0LjcgMCA2NC02LjIgODcuOC0xOC42IDIzLjctMTIuNCA0Mi4xLTI4LjggNTUuMi00OS4yIDkuOC0xNS41IDE1LjktMzEuOCAxOC4yLTQ4LjhsLjEgLjF6Il19LHI0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVuc3RyZWV0bWFwIixpY29uOls1MTIsNTEyLFtdLCJlODZiIiwiTTYxIDQ5OC43Yy03LjEtMS44LTEwLjgtNC43LTI5LjYtMjMuNi0yMi41LTIyLjQtMjMuOS0yNC42LTIzLjktMzYuMyAwLTEzLTMuOS04LjQgNjcuOS04MC4zIDcyLjUtNzIuNyA2OC43LTY5LjUgODEuOS02OS41IDYuMSAwIDcuNiAuNCAxMi41IDIuOGw1LjYgMi44YzExLjctMTEuNyAyMy40LTIzLjQgMzUuMS0zNS4xbC00LjQtNi45Yy04LjYtMTMuMy0xNi42LTMyLjgtMjAuMy00OC45LTEwLjItNDUuNCAuOC05My4zIDI5LjgtMTI5LjcgNTAuMS02Mi44IDE0MC4xLTc2LjcgMjA2LjYtMzIgMzYuNSAyNC41IDYwLjMgNjIuNSA2NyAxMDcgMS40IDkuNCAxLjQgMzEuOCAwIDQxLjgtNC45IDM0LjYtMTkuNyA2NC00NC40IDg4LjctMTIuNyAxMi43LTIzIDIwLjEtMzkuMiAyOC4yLTE5LjMgOS43LTM1LjcgMTQuMy01OCAxNi4xLTMxLjcgMi42LTY2LjktNi4xLTkzLjgtMjMuNGwtNi45LTQuNGMtMTEuNyAxMS43LTIzLjQgMjMuNC0zNS4xIDM1LjFsMi44IDUuNmMyLjUgNC45IDIuOCA2LjQgMi44IDEyLjUgMCAxMy4xIDMuMSA5LjQtNjkgODEuNS01NS42IDU1LjUtNjQuMSA2My43LTY4LjQgNjUuNy01LjUgMi41LTEzLjkgMy40LTE5IDIuMXpNMzU5LjQgMjk2LjljNDAuMS03LjMgNzUuMS0zNCA5Mi43LTcwLjcgMjgtNTguNCA5LjItMTI3LTQ0LjgtMTYzLjMtMTIuOS04LjctMzAuOC0xNi00Ny43LTE5LjQtMTEuNy0yLjQtMzYuNC0yLjEtNDguNiAuNS0xOC4yIDMuOS0zNC45IDExLjEtNDkuNCAyMS40LTguOSA2LjQtMjMuNyAyMS4xLTI5LjkgMjkuOS0zNC42IDQ5LTMxLjUgMTE0LjEgNy43IDE1OS4zIDIwLjEgMjMuMiA0Ny44IDM4LjQgNzguNiA0MyAxMC4yIDEuNSAzMSAxLjIgNDEuNS0uOHptLTM1LjUtMTcuNGMtMTMuOC0yLjItMjUuNi01LjctMzUuMS0xMC41bC01LjQtMi43IDAtNDkuOS05LjUgMGMtOC4yIDAtMTkuNSAxLjYtMjcuNyA0LTEuMSAuMy0xLjUgMS42LTEuNyA0LjhsLS4zIDQuNC00LjEtNy44Yy05LTE3LjItMTIuMi0zMC43LTEyLjItNTEuNCAwLTE2IDEuMS0yMy40IDUuNi0zNi4zIDIuNC02LjggOC4yLTE4LjkgMTAuOC0yMi4zIDEuMS0xLjUgMS4yLTEuMSAxLjMgMy4zbDAgNWMxOC44LS4yIDM3LjYtLjMgNTYuNC0uNSAuMi00LjcgLjMtOS41IC41LTE0LjJsLTE5IDAgMC0zMSAzLjQtMS43YzUuNi0yLjggMTUuOS02LjcgMjEuNy04LjIgMy0uOCA2LjEtMS42IDYuOS0xLjggMS4yLS40IDEuMyAuMSAuNyAzLjMtMS4yIDYuMS0uOSAyMyAuNSAyOSAyLjggMTEuOSA5LjggMjAuNyAxOS4yIDI0LjMgNS42IDIuMSAxNi4zIDIuNiAyMi41IC45IDUuOS0xLjYgMTIuNS02LjQgMTUuOS0xMS41IDUtNy41IDYuNy0xNC4xIDcuMi0yNy4xbC40LTExLjQgNyAzLjZjOCA0LjIgMTcuOCAxMS4yIDI0LjkgMTggNC44IDQuNiA1IDQuOCA1IDkuMmwwIDQuNS0xOC45IDAgMCAxNC42IDM1IDBjMS4zIDIuNiAyLjUgNS4yIDMuOCA3LjdsLTkuNyAwYy02LjcgMC0xMi43IC42LTE5LjQgMS45bC05LjcgMS45IDAgNy4xYzAgMy45IC4yIDcuMSAuMyA3LjFzNC4xLS44IDguNy0xLjcgOC43LTEuNyA5LjEtMS43Yy40IDAgLjggMTEuMyAuOCAyNS44bDAgMjUuOGMtNi4yIC4yLTEyLjMgLjMtMTguNSAuNS0uMiA0LjctLjMgOS40LS41IDE0LjIgMTMuNSAuMiAyNyAuMyA0MC40IC41LTEgMi4zLTIgNC41LTMgNi44bC0xMC43IC4xYy05LjkgLjEtMTEuMSAuMi0xNS42IDIuNS0xMS44IDUuOC0xOC4xIDE4LjktMTguMyAzNy45bC0uMSA5LjMtNS44IDNjLTUgMi42LTIyLjYgOS0yNC45IDktLjUgMC0uOC0xMi0uOC0zMC42bDAtMzAuNi05LjQgMGMtNiAwLTEyLjQgLjYtMTcuOSAxLjctMTIuNiAyLjYtMTEuNSAxLjctMTEuNSA5LjUgMCA1IC4zIDYuOCAxLjEgNi44IC42IDAgNC42LS44IDguOC0xLjdzOC0xLjcgOC4zLTEuNyAuNiAxMSAuNiAyNC41bDAgMjQuNS03LjUtLjFjLTQuMS0uMS04LjUtLjMtOS43LS41em0tMzkuNC03MS42YzguOS0zLjkgMTUuNi0xMi45IDE4LjMtMjQuNCAxLjYtNi45IDEuNy0yMi42IDAtMzAuMi0yLjUtMTItOS42LTIxLjEtMTkuMy0yNC44LTYuOS0yLjYtMTguNC0yLjYtMjUuMyAwLTkuNyAzLjctMTYuNCAxMi44LTE5LjIgMjUuNi0xLjYgNy41LTEuNiAyMS40IDAgMjguOSAyLjYgMTIuNSAxMC41IDIyLjMgMjAuNiAyNS42IDcgMi4zIDE4LjkgMiAyNC45LS43em0tMTkuOS0xNC41Yy0zLjUtMy01LjItOC45LTUuOC0yMC42LS42LTEwLjUgLjYtMjEuMyAyLjktMjYgMi00LjMgNS44LTYuNCAxMC40LTYgNy40IC44IDEwLjMgNi41IDExLjEgMjIuNSAuOSAxNi43LTEuOSAyOC45LTcgMzEuMy0zLjkgMS44LTguNiAxLjMtMTEuNi0xLjJ6bTk0LjkgMTUuMWMxNS00LjYgMjIuOC0yMC4xIDIxLjktNDMuNS0uOC0xOS45LTcuOS0zMi4xLTIxLjUtMzcuMi01LjctMi4xLTE4LTEuOC0yNCAuNS05LjYgMy43LTE2LjQgMTIuNC0xOS4zIDI0LjctMiA4LjYtMS4zIDI4IDEuMyAzNS4yIDQgMTEuMyAxMS42IDE4LjcgMjEuNCAyMSA1LjggMS40IDE0LjQgMSAyMC4zLS44em0tMTYuNy0xNC4yYy01LTIuNy03LjMtMTMuMi02LjUtMzAuMSAuNi0xMi44IDEuNS0xNi43IDQuOC0yMC40IDQuNy01LjMgMTMuNi0zLjggMTYuNyAyLjggMy40IDcuMyA0IDMwLjEgMSA0MC4yLTEuNyA1LjctNS4yIDguOC0xMC4xIDguNy0yIDAtNC42LS42LTUuOC0xLjN6bS04NS4yIDUxLjVjLTcuMy03LjYtOS45LTExLjQtOC40LTExLjkgMi45LS45IDEzLjktMy4xIDE0LjItMi44IC4yIC4yIC4yIDQuOSAuMSAxMC40bC0uMiAxMC4xLTUuNi01Ljl6bTE1Ni40LTEuMmMuNy02IDMuMS0xMS41IDUuNy0xMy4yIDIuOS0xLjggNi40LTIuNiA4LTEuNyAxLjIgLjcgLjkgMS41LTIuNCA1LjktMi4xIDIuOC01LjYgNy03LjggOS40bC00IDQuMyAuNS00Ljd6TTQzOC40IDE2MWwuMS0zMi45IDIuNiA3LjdjNS4xIDE1LjMgNi45IDMxLjggNS4xIDQ2LjYtMS40IDExLjYtMS40IDExLjUtNC45IDExLjVsLTMgMCAuMS0zMi45ek0zNDQgMTA2LjJjLTIuNi0xLTUuMy00LjgtNi41LTktMS4yLTQtMS41LTI4LjUtLjQtMzMuNSAuNi0zIC45LTMuMiAzLjgtMy4yIDYuMiAwIDE4LjMgMiAxOC43IDMuMSAuMiAuNiAuNyA0LjkgMSA5LjUgLjcgOS43LS43IDIzLjItMi44IDI3LjYtMi40IDUuMS04LjUgNy41LTEzLjcgNS4zem0tOTQuMy0yLjRjLjQtLjggMy43LTQuNiA3LjMtOC40bDYuNS02LjljMCA1LjYgMCAxMS4yIC4xIDE2LjhsLTcuMyAwYy02LjcgMC03LjMtLjEtNi41LTEuNXptMzQuNCAzNDEuN2MtMjQtNi45LTQzLjktMTIuOS00NC4yLTEzLjEtLjUtLjYgMjQuMy04OC41IDI1LjMtODkuNiAuNS0uNSA4NS40IDIzLjMgODguOSAyNC45IDEuMiAuNi0uMSA1LjgtMTAuNiA0Mi40LTYuNiAyMy0xMi40IDQzLjItMTIuOCA0NXMtMS40IDMuMi0xLjkgMy4xLTIwLjctNS44LTQ0LjctMTIuN3pNMzQyLjggNDU2YzAtMS4xIDI0LjctODcuMyAyNS4xLTg3LjYgLjktLjcgODcuMS0yNC43IDg3LjQtMjQuNCAuNCAuNC0yNC4xIDg3LjMtMjQuNyA4Ny45LS40IC4zLTgzLjIgMjQtODUuOCAyNC41LTEuMSAuMi0xLjkgLjEtMS45LS40ek0xOTkuNiA0MTcuNWMxNy0xNy4xIDMyLjItMzIuNyAzMy43LTM0LjcgMy40LTQuNSA4LjItMTQuOCA5LjUtMjAuNSAuNS0yLjQgMS4xLTcuMSAxLjItMTAuNWwuMi02LjIgMy43LTFjMi0uNiAzLjgtLjkgNC0uNyAuNSAuNS0yNC4zIDg3LTI1LjEgODcuOC0uNCAuMy0xMy42IDQuMy0yOS40IDguOGwtMjguNyA4LjIgMzEtMzEuMXptMTY2LjktNjEuNmMtLjItLjMtLjctMi0xLjItMy43bC0uOS0zLjIgMy4yLS41YzI3LTQuNiA1NS45LTE3LjMgNzguNy0zNC41IDMuMy0yLjUgNS4xLTMuNCA1LjMtMi43IDEuMSAzLjMgNS41IDE5LjEgNS40IDE5LjMtLjcgLjctOTAuMiAyNS44LTkwLjUgMjUuNHpNNjIuOSAzMjkuOGMtMS0uOC0yMy44LTc3LjktMjUuNS04Ni40LS4zLTEuNyAzLS45IDQzLjggMTAuOCA0Mi43IDEyLjIgNDQuMiAxMi43IDQ0LjggMTQuOSAuNSAyIC4yIDIuNi0yLjUgNC41LTEuNyAxLjItMTUuNSAxNC42LTMwLjcgMjkuOHMtMjcuOCAyNy42LTI4IDI3LjYtMS4xLS41LTEuOC0xLjF6bTE2LjUtODguMmMtMjMuOS02LjktNDMuNS0xMi42LTQzLjYtMTIuNi0uMy0uMiAyNS4zLTg5LjMgMjUuOS04OS44IC40LS40IDg5LjEgMjQuNCA5MCAyNS4yIC4yIC4yLTUuNCAyMC41LTEyLjQgNDUuMS0xMS42IDQwLjctMTIuOSA0NC44LTE0LjUgNDQuNy0xIDAtMjEuMy01LjctNDUuMi0xMi42em01OS42IDEwLjhjLjItLjYgNC4zLTE0LjUgOC45LTMwLjlsOC41LTI5LjcgMS4xIDYuNWMxLjkgMTEuMiA1LjMgMjMuOSA5LjMgMzUuMSAyLjEgNS45IDMuOCAxMC45IDMuNiAxMXMtNi43IDItMTQuNSA0LjMtMTQuOSA0LjItMTUuOCA0LjVjLTEuMSAuMy0xLjUgLjEtMS4yLS43ek0xMDYgMTM5LjFjLTIzLjktNi45LTQzLjctMTIuOC00My45LTEzLjItLjgtMS4zLTI1LjEtODctMjQuNy04Ny40IC41LS41IDg2LjggMjQuMyA4Ny42IDI1LjEgLjkgMSAyNS44IDg4LjIgMjUuMSA4OC0uMyAwLTIwLjEtNS43LTQ0LTEyLjZ6bTQzLjItMzQuNUMxMzYuNSA2MCAxMzkgNjguOCAxMzcuMiA2Mi41bDM0LjEtOS43YzE4LjgtNS40IDM0LjctOS45IDM1LjQtMTAuMnMtMS42IDIuOC01LjIgNi44Yy0xOS4xIDIxLjMtMzEuNSA0NC0zOS40IDcxLjktMS41IDUuMi0yLjcgMTAuMy0yLjcgMTEuMyAwIDUuOS0yLjMtLjUtMTAuMi0yOHoiXX0saTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNlbGxjYXN0IixpY29uOls0NDgsNTEyLFtdLCJmMmRhIiwiTTM1My41IDMyTDk0LjggMzJDNDIuNyAzMiAuMSA3NC42IC4xIDEyNi42bDAgMjU4LjdDLjEgNDM3LjQgNDIuNyA0ODAgOTQuOCA0ODBsMjU4LjcgMGM1Mi4xIDAgOTQuNy00Mi42IDk0LjctOTQuNmwwLTI1OC44YzAtNTItNDIuNi05NC42LTk0LjctOTQuNnptLTUwIDMxNi40Yy0yNy45IDQ4LjItODkuOSA2NC45LTEzOC4yIDM3LjItMjIuOSAzOS44LTU0LjkgOC42LTQyLjMtMTMuMmwxNS43LTI3LjJjNS45LTEwLjMgMTkuMi0xMy45IDI5LjUtNy45IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgMjcuNiAxNS45IDYzLjQgNi4zIDc5LjQtMjEuMyAxNS45LTI3LjYgNi4zLTYzLjQtMjEuMy03OS40LTE3LjgtMTAuMi0uNi0uNC0xOC42LTEwLjYtMjQuNi0xNC4yLTMuNC01MS45IDIxLjYtMzcuNSAxOC42IDEwLjgtLjEtLjEgMTguNSAxMC43IDQ4LjQgMjggNjUuMSA5MC4zIDM3LjIgMTM4LjV6bTIxLjgtMjA4LjhjLTE3IDI5LjUtMTYuMyAyOC44LTE5IDMxLjUtNi41IDYuNS0xNi4zIDguNy0yNi41IDMuNi0xOC42LTEwLjggLjEgLjEtMTguNS0xMC43LTI3LjYtMTUuOS02My40LTYuMy03OS40IDIxLjNzLTYuMyA2My40IDIxLjMgNzkuNGMwIDAgMTguNSAxMC42IDE4LjYgMTAuNiAyNC42IDE0LjIgMy40IDUxLjktMjEuNiAzNy41LTE4LjYtMTAuOCAuMSAuMS0xOC41LTEwLjctNDguMi0yNy44LTY0LjktOTAuMS0zNy4xLTEzOC40IDI3LjktNDguMiA4OS45LTY0LjkgMTM4LjItMzcuMmw0LjgtOC40YzE0LjMtMjQuOSA1Mi0zLjMgMzcuNyAyMS41eiJdfSxhNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4IixpY29uOls0NDgsNTEyLFtdLCJmM2NiIiwiTTAgNjRMMCA0MTIuOWMwIDU2LjIgODggNTguMSA4OCAwbDAtMjM4LjZjNy45LTUyLjkgODgtNTAuNCA4OCA2LjVsMCAxNzUuM2MwIDU3LjkgOTYgNTggOTYgMEwyNzIgMjQwYzUuMy01NC43IDg4LTUyLjUgODggNC4zbDAgMjMuOGMwIDU5LjkgODggNTYuNiA4OCAwTDQ0OCA2NCAwIDY0eiJdfSxuNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtYXBwbGUtcGF5IixpY29uOls1NzYsNTEyLFtdLCJmNDE2IiwiTTMwMi4yIDIxOC40YzAgMTcuMi0xMC41IDI3LjEtMjkgMjcuMWwtMjQuMyAwIDAtNTQuMiAyNC40IDBjMTguNCAwIDI4LjkgOS44IDI4LjkgMjcuMXpNMzQ5LjcgMjgxYzAgOC4zIDcuMiAxMy43IDE4LjUgMTMuNyAxNC40IDAgMjUuMi05LjEgMjUuMi0yMS45bDAtNy43LTIzLjUgMS41Yy0xMy4zIC45LTIwLjIgNS44LTIwLjIgMTQuNHpNNTc2IDc5bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDQ3OWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA3OUMwIDUyLjUgMjEuNSAzMSA0OCAzMWw0ODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI3LjggMTk3LjJjOC40IC43IDE2LjgtNC4yIDIyLjEtMTAuNCA1LjItNi40IDguNi0xNSA3LjctMjMuNy03LjQgLjMtMTYuNiA0LjktMjEuOSAxMS4zLTQuOCA1LjUtOC45IDE0LjQtNy45IDIyLjh6bTYwLjYgNzQuNWMtLjItLjItMTkuNi03LjYtMTkuOC0zMC0uMi0xOC43IDE1LjMtMjcuNyAxNi0yOC4yLTguOC0xMy0yMi40LTE0LjQtMjcuMS0xNC43LTEyLjItLjctMjIuNiA2LjktMjguNCA2LjktNS45IDAtMTQuNy02LjYtMjQuMy02LjQtMTIuNSAuMi0yNC4yIDcuMy0zMC41IDE4LjYtMTMuMSAyMi42LTMuNCA1NiA5LjMgNzQuNCA2LjIgOS4xIDEzLjcgMTkuMSAyMy41IDE4LjcgOS4zLS40IDEzLTYgMjQuMi02IDExLjMgMCAxNC41IDYgMjQuMyA1LjkgMTAuMi0uMiAxNi41LTkuMSAyMi44LTE4LjIgNi45LTEwLjQgOS44LTIwLjQgMTAtMjF6bTEzNS40LTUzLjRjMC0yNi42LTE4LjUtNDQuOC00NC45LTQ0LjhsLTUxLjIgMCAwIDEzNi40IDIxLjIgMCAwLTQ2LjYgMjkuMyAwYzI2LjggMCA0NS42LTE4LjQgNDUuNi00NXptOTAgMjMuN2MwLTE5LjctMTUuOC0zMi40LTQwLTMyLjQtMjIuNSAwLTM5LjEgMTIuOS0zOS43IDMwLjVsMTkuMSAwYzEuNi04LjQgOS40LTEzLjkgMjAtMTMuOSAxMyAwIDIwLjIgNiAyMC4yIDE3LjJsMCA3LjUtMjYuNCAxLjZjLTI0LjYgMS41LTM3LjkgMTEuNi0zNy45IDI5LjEgMCAxNy43IDEzLjcgMjkuNCAzMy40IDI5LjQgMTMuMyAwIDI1LjYtNi43IDMxLjItMTcuNGwuNCAwIDAgMTYuNCAxOS42IDAgMC02OCAuMSAwek01MTYgMjEwLjlsLTIxLjUgMC0yNC45IDgwLjYtLjQgMC0yNC45LTgwLjYtMjIuMyAwIDM1LjkgOTkuMy0xLjkgNmMtMy4yIDEwLjItOC41IDE0LjItMTcuOSAxNC4yLTEuNyAwLTQuOS0uMi02LjItLjNsMCAxNi40YzEuMiAuNCA2LjUgLjUgOC4xIC41IDIwLjcgMCAzMC40LTcuOSAzOC45LTMxLjhMNTE2IDIxMC45eiJdfSxvNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic29sYW5hIixpY29uOls1MTIsNTEyLFtdLCJlODVlIiwiTTUxMC41IDM4NS4ybC04NC45IDg4LjdjLTEuOCAxLjktNC4xIDMuNS02LjYgNC41cy01LjIgMS42LTcuOSAxLjZMOC45IDQ4MGMtMS45IDAtMy44LS41LTUuNC0xLjZzLTIuOS0yLjUtMy42LTQuMi0xLTMuNi0uNy01LjUgMS4yLTMuNiAyLjUtNC45bDg0LjktODguN2MxLjgtMS45IDQuMS0zLjUgNi41LTQuNXM1LjEtMS42IDcuOC0xLjZsNDAyLjQgMGMxLjkgMCAzLjggLjUgNS40IDEuNnMyLjkgMi41IDMuNiA0LjIgMSAzLjYgLjcgNS41LTEuMiAzLjYtMi41IDQuOXpNNDI1LjcgMjA2LjZjLTEuOC0xLjktNC4xLTMuNS02LjYtNC41cy01LjItMS42LTcuOS0xLjZsLTQwMi40IDBjLTEuOSAwLTMuOCAuNS01LjQgMS42cy0yLjkgMi41LTMuNiA0LjItMSAzLjYtLjcgNS41IDEuMiAzLjYgMi41IDQuOWw4NC45IDg4LjdjMS44IDEuOSA0LjEgMy41IDYuNSA0LjVzNS4xIDEuNiA3LjggMS42bDQwMi40IDBjMS45IDAgMy44LS41IDUuNC0xLjZzMi45LTIuNSAzLjYtNC4yIDEtMy42IC43LTUuNS0xLjItMy42LTIuNS00LjlsLTg0LjktODguN3pNOC45IDE0Mi45bDQwMi40IDBjMi43IDAgNS40LS41IDcuOS0xLjZzNC43LTIuNiA2LjYtNC41bDg0LjktODguN2MxLjMtMS40IDIuMi0zLjEgMi41LTQuOXMuMS0zLjctLjctNS41LTItMy4yLTMuNi00LjItMy41LTEuNi01LjQtMS42TDEwMSAzMmMtMi43IDAtNS40IC41LTcuOCAxLjZzLTQuNyAyLjYtNi41IDQuNUwxLjcgMTI2LjhjLTEuMyAxLjQtMi4yIDMuMS0yLjUgNC45cy0uMSAzLjcgLjcgNS41IDIgMy4yIDMuNiA0LjIgMy41IDEuNiA1LjQgMS42eiJdfSxzNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidHlwZXNjcmlwdCIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0MCIsIk0xNi44IDMybDQxNC40IDBjOS4zIDAgMTYuOCA3LjUgMTYuOCAxNi44bDAgNDE0LjRjMCA5LjMtNy41IDE2LjgtMTYuOCAxNi44TDE2LjggNDgwQzcuNSA0ODAgMCA0NzIuNSAwIDQ2My4yTDAgNDguOEMwIDM5LjUgNy41IDMyIDE2LjggMzJ6TTI0OSAyNzAuM2wwLTM2LjctMTU5LjQgMCAwIDM2LjcgNTYuOSAwIDAgMTYzLjYgNDUuMyAwIDAtMTYzLjYgNTcuMiAwem0xOC4xIDE1OS4zYzcuMyAzLjcgMTUuOSA2LjUgMjUuOSA4LjRzMjAuNSAyLjggMzEuNSAyLjhjMTAuOCAwIDIxLTEgMzAuNy0zLjFzMTguMi01LjQgMjUuNS0xMC4xIDEzLjEtMTAuOSAxNy40LTE4LjQgNi40LTE3IDYuNC0yOC4yYzAtOC4xLTEuMi0xNS4yLTMuNy0yMS4zcy01LjktMTEuNS0xMC41LTE2LjMtMTAuMS05LTE2LjUtMTIuOC0xMy43LTcuMy0yMS43LTEwLjdjLTUuOS0yLjQtMTEuMi00LjgtMTUuOS03LjFzLTguNy00LjYtMTEuOS03LTUuOC00LjktNy42LTcuNS0yLjctNS43LTIuNy05YzAtMy4xIC44LTUuOCAyLjQtOC4zczMuOC00LjYgNi43LTYuNCA2LjUtMy4xIDEwLjctNC4xIDguOS0xLjUgMTQuMS0xLjVjMy43IDAgNy43IC4zIDExLjkgLjhzOC40IDEuNCAxMi42IDIuNiA4LjMgMi42IDEyLjMgNC40IDcuNyAzLjggMTEgNi4xbDAtNDEuOGMtNi44LTIuNi0xNC4zLTQuNS0yMi40LTUuOHMtMTcuNC0xLjktMjcuOS0xLjljLTEwLjcgMC0yMC44IDEuMS0zMC40IDMuNHMtMTggNS44LTI1LjIgMTAuNy0xMyAxMS0xNy4yIDE4LjUtNi4zIDE2LjUtNi4zIDI2LjljMCAxMy4zIDMuOSAyNC43IDExLjYgMzQuMXMxOS41IDE3LjQgMzUuMiAyMy45YzYuMiAyLjUgMTEuOSA1IDE3LjMgNy40czEwIDQuOSAxMy44IDcuNSA3IDUuNCA5LjIgOC41IDMuNCA2LjYgMy40IDEwLjVjMCAyLjktLjcgNS42LTIuMSA4cy0zLjUgNC42LTYuNCA2LjQtNi40IDMuMi0xMC43IDQuMy05LjMgMS41LTE1IDEuNWMtOS43IDAtMTkuNC0xLjctMjguOS01LjFzLTE4LjQtOC41LTI2LjYtMTUuM2wwIDQ0Ljd6Il19LGw0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJicmF2ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTYzYyIsIk0xNDUuNiAwbDE1NyAwIDQ0LjcgNTAuOHMzOS4zLTEwLjkgNTcuOCA3LjYgMzMuOCAzNC45IDMzLjggMzQuOWwtMTIgMjkuNSAxNS4zIDQzLjdzLTQ0LjkgMTcwLjItNTAuMSAxOTFjLTEwLjQgNDAuOS0xNy40IDU2LjgtNDYuOSA3Ny41cy04Mi45IDU2LjgtOTEuNiA2Mi4yYy0xLjkgMS4yLTMuOSAyLjUtNS45IDMuOS03LjUgNS4xLTE1LjggMTAuOC0yMy41IDEwLjhzLTE2LjEtNS43LTIzLjUtMTAuOGMtMi0xLjQtNC0yLjgtNS45LTMuOS04LjctNS41LTYyLjEtNDEuNS05MS42LTYyLjJzLTM2LjUtMzYuNi00Ni45LTc3LjVjLTUuMy0yMC44LTUwLjEtMTkxLTUwLjEtMTkxTDIxLjUgMTIyLjggOS4zIDkzLjNzMTUuMy0xNi40IDMzLjgtMzQuOSA1Ny44LTcuNiA1Ny44LTcuNkwxNDUuNiAwem03OC41IDQwNy42YzMuNyAwIDguOS00LjcgMTMtOC40IC42LS41IDEuMi0xLjEgMS43LTEuNSA0LjItMy43IDQ3LjgtMzcuNSA1MS0zOS44czUuNC02LjUgMS45LTguN2MtMi44LTEuNy0xMC01LjUtMjAuMy0xMC44LTMtMS42LTYuMy0zLjItOS43LTUtMTUuNC04LTM0LjUtMTQuNy0zNy41LTE0LjdzLTIyLjEgNi44LTM3LjUgMTQuN2MtMy41IDEuOC02LjcgMy41LTkuNyA1LTEwLjMgNS4zLTE3LjYgOS4xLTIwLjMgMTAuOC0zLjYgMi4yLTEuNCA2LjQgMS45IDguN3M0Ni44IDM2LjEgNTEgMzkuOGMuNSAuNSAxLjEgMSAxLjcgMS41IDQuMSAzLjcgOS4zIDguNCAxMyA4LjRsLS4yIDB6bTAtMTY1LjdjNC43IDAgMTcuNi0zIDI2LjQtNWwyLS41YzcuOC0xLjggNy4zLTYuMyA2LjQtMTMtLjEtLjgtLjItMS42LS4zLTIuNC0uNi02LjEtNS44LTMzLjEtOS4xLTUwLjMtMS4xLTUuOC0yLTEwLjUtMi40LTEyLjktMS41LTguMS0uNi05LjQgLjctMTEuMyAuMi0uMyAuNS0uNyAuNy0xLjEgMS40LTIuMyAxNi02LjIgMjcuOS05LjUgMi41LS43IDQuOC0xLjMgNi45LTEuOSAxMC42LTMgMzIuNC0uNiA0NC4yIC42IDEuOCAuMiAzLjQgLjQgNC43IC41IDkuNiAuOSAxMC40IDIuMyA3LjIgMy44LTIuMyAxLjEtMTYuMiA2LjMtMjguNyAxMC45LTQuNyAxLjgtOS4yIDMuNS0xMi44IDQuOC0xLjUgLjUtMyAxLjEtNC41IDEuNy0xMi41IDQuNi0yNy4yIDEwLTI4LjkgMTkuNC0xLjUgOC4zIDUuMiAxOS45IDExLjMgMzAuMyAxLjYgMi44IDMuMiA1LjUgNC42IDguMSA2LjMgMTEuOSA2LjUgMTMuMyA2LjEgMTguMS0uNCAzLjktMTQuNSAxMi43LTIyLjQgMTcuNi0xLjggMS4xLTMuMyAyLjEtNC4yIDIuNy0uOCAuNS0yLjEgMS40LTMuOCAyLjQtOC42IDUuMi0yNi4zIDE2LTI2LjMgMjIuNSAwIDcuOCAyNC42IDI4LjEgMzIuNCAzMy4yczI4LjkgMTYuMSAzNy45IDE3LjggMjMtOC41IDMxLjItMjMuOGM3LjctMTQuNCAxLjctMjguNS0zLjItNDBsLS45LTIuMmMtNC41LTEwLjYgMS45LTE3IDYuMi0yMS4zIC41LS41IDEtMSAxLjQtMS40bDQzLTQ1LjdjMS4zLTEuMyAyLjUtMi42IDMuNy0zLjggNS44LTUuNyAxMC44LTEwLjUgMTAuOC0yMi44IDAtMTQuOS01Ny41LTg0LjUtNTcuNS04NC41cy00OC41IDkuMy01NS4xIDkuM2MtNS4yIDAtMTUuMy0zLjUtMjUuOC03LjEtMi43LS45LTUuNC0xLjktOC0yLjctMTMtNC4zLTIxLjgtNC40LTIxLjgtNC40cy04LjcgMC0yMS44IDQuNGMtMi43IC45LTUuNCAxLjgtOCAyLjctMTAuNSAzLjYtMjAuNiA3LjEtMjUuOCA3LjEtNi41IDAtNTUuMS05LjMtNTUuMS05LjNzLTU3LjUgNjkuNi01Ny41IDg0LjVjMCAxMi4zIDQuOSAxNy4xIDEwLjggMjIuOCAxLjIgMS4yIDIuNSAyLjQgMy43IDMuOGw0My4xIDQ1LjhjLjQgLjUgLjkgLjkgMS40IDEuNCA0LjMgNC4zIDEwLjYgMTAuNyA2LjIgMjEuM2wtLjkgMi4yYy00LjkgMTEuNS0xMSAyNS42LTMuMiA0MCA4LjIgMTUuMyAyMi4yIDI1LjUgMzEuMiAyMy44czMwLjEtMTIuNyAzNy45LTE3LjggMzIuNC0yNS40IDMyLjQtMzMuMmMwLTYuNS0xNy43LTE3LjMtMjYuMy0yMi41LTEuNy0xLTMuMS0xLjktMy44LTIuNC0uOS0uNi0yLjQtMS41LTQuMi0yLjctNy45LTQuOS0yMi0xMy43LTIyLjQtMTcuNi0uNC00LjgtLjMtNi4yIDYuMS0xOC4xIDEuMy0yLjUgMi45LTUuMyA0LjYtOC4xIDYtMTAuNCAxMi44LTIyIDExLjMtMzAuMy0xLjctOS40LTE2LjQtMTQuOC0yOC45LTE5LjQtMS42LS42LTMuMS0xLjEtNC41LTEuNy0zLjYtMS40LTguMS0zLjEtMTIuOC00LjhsLS4xIDBjLTEyLjUtNC43LTI2LjQtOS45LTI4LjctMTAuOS0zLjItMS41LTIuMy0yLjggNy4yLTMuOCAxLjMtLjEgMi45LS4zIDQuNy0uNSAxMS44LTEuMyAzMy42LTMuNiA0NC4yLS42IDIuMSAuNiA0LjQgMS4yIDYuOSAxLjkgMTEuOSAzLjIgMjYuNSA3LjIgMjcuOSA5LjUgLjIgLjQgLjUgLjcgLjcgMS4xIDEuMyAxLjkgMi4yIDMuMiAuNyAxMS4zLS40IDIuNC0xLjMgNy4xLTIuNCAxMi45LTMuMyAxNy4yLTguNSA0NC4yLTkuMSA1MC4zLS4xIC44LS4yIDEuNy0uMyAyLjQtLjggNi43LTEuNCAxMS4yIDYuNCAxM2wyIC41YzguOCAyIDIxLjggNSAyNi40IDVsMC0uMXoiXX0sYzR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImV0c3kiLGljb246WzM4NCw1MTIsW10sImYyZDciLCJNMzg0IDM0OGMtMS44IDEwLjctMTMuOCAxMTAtMTUuNSAxMzItMTE3LjktNC4zLTIxOS45LTQuNy0zNjguNSAwbDAtMjUuNWM0NS41LTguOSA2MC42LTggNjEtMzUuMiAxLjgtNzIuMyAzLjUtMjQ0LjEgMC0zMjItMS0yOC41LTEyLjEtMjYuOC02MS0zNkwwIDM1LjhjNzMuOSAyLjQgMjU1LjkgOC42IDM2My0zLjgtMy41IDM4LjItNy44IDEyNi41LTcuOCAxMjYuNWwtMjMuMiAwQzMyMC45IDExNS43IDMxMy4yIDY4IDI3Ny4zIDY4bC0xMzcgMGMtMTAuMiAwLTEwLjcgMy41LTEwLjcgOS44bDAgMTYzLjhjNTggLjUgODguNS0yLjUgODguNS0yLjUgMjkuOC0xIDI3LjYtOC41IDQwLjctNjUuM2wyNS44IDBjLTQuNCAxMDEuNC0zLjkgNjEuOC0xLjggMTYwLjNMMjU3IDMzNGMtOS4yLTQwLjEtOS4xLTYxLTM5LjUtNjEuNSAwIDAtMjEuNS0yLTg4LTJsMCAxMzljMCAyNiAxNC4zIDM4LjMgNDQuMyAzOC4zbDg5LjMgMGM2My42IDAgNjYuNi0yNSA5OC43LTk5LjhsMjIuMiAweiJdfSxkNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYnRjIixpY29uOlszODQsNTEyLFtdLCJmMTVhIiwiTTMxMC40IDI0Mi42YzI3LjctMTQuMiA0NS40LTM5LjQgNDEuMy04MS4zLTUuNC01Ny40LTUyLjUtNzYuNi0xMTQuOC04MS45bDAtNzkuNC00OC41IDAgMCA3Ny4yYy0xMi42IDAtMjUuNSAuMy0zOC40IC42bDAtNzcuOC00OC41IDAgMCA3OS40Yy0xNy44IC41LTM4LjYgLjMtOTcuNCAwbDAgNTEuN2MzOC4zLS43IDU4LjQtMy4xIDYzIDIxLjRsMCAyMTcuNGMtMi45IDE5LjUtMTguNSAxNi43LTUzLjMgMTYuMUw0IDQ0My43Yzg4LjUgMCA5Ny40IC4zIDk3LjQgLjNsMCA2OCA0OC41IDAgMC02Ny4xYzEzLjIgLjMgMjYuMiAuMyAzOC40IC4zbDAgNjYuNyA0OC41IDAgMC02OGM4MS4zLTQuNCAxMzUuNi0yNC45IDE0Mi45LTEwMS41IDUuNy02MS40LTIzLjMtODguOS02OS4zLTk5Ljl6TTE1MC44IDEzNC42YzI3LjQgMCAxMTMuMS04LjUgMTEzLjEgNDguNSAwIDU0LjUtODUuNyA0OC4yLTExMy4xIDQ4LjJsMC05Ni43em0wIDI1MS44bDAtMTA2LjVjMzIuOCAwIDEzMy4xLTkuMSAxMzMuMSA1My4zIDAgNjAuMi0xMDAuNCA1My4zLTEzMy4xIDUzLjN6Il19LHU0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZG4iLGljb246WzUxMiw1MTIsW10sImYxNzAiLCJNMjU2IDE2Ny41bDY0LjkgOTguOC0xMjkuOCAwIDY0LjktOTguOHpNOCAyNTZhMjQ4IDI0OCAwIDEgMSA0OTYgMCAyNDggMjQ4IDAgMSAxIC00OTYgMHptMzk2LjIgODIuN2wtMTQ4LjItMjIzLjItMTQ4LjIgMjIzLjIgMzAuNCAwIDMzLjYtNTEuNyAxNjguNiAwIDMzLjYgNTEuNyAzMC4yIDB6Il19LHA0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUteC10d2l0dGVyIixpY29uOls0NDgsNTEyLFtdLCJlNjFhIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTI5Ny4xIDg0bC0xMDMuOCAxMTguNiAxMjIuMSAxNjEuNC05NS42IDAtNzQuOC05Ny45LTg1LjcgOTcuOS00Ny41IDAgMTExLTEyNi45LTExNy4xLTE1My4xIDk4IDAgNjcuNyA4OS41IDc4LjItODkuNSA0Ny41IDB6TTMyMy4zIDM2Ny42bC0xNjkuOS0yMjQuNy0yOC4zIDAgMTcxLjggMjI0LjcgMjYuNCAweiJdfSxoNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWZvbnQtYXdlc29tZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTVhZCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem05MCAxMjJjMCA5LjMtNC44IDE3LjQtMTIuMSAyMmwxODguOSAwYzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDEuOC0uNCAzLjctMS4xIDUuNEwzMTIgMjY0IDM0Mi45IDMzMy40Yy43IDEuNyAxLjEgMy41IDEuMSA1LjQgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ybC0xODYuOCAwIDAgMzItMzIgMCAwLTIwOS41Yy02LjEtNC44LTEwLTEyLjItMTAtMjAuNSAwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2eiJdfSxmNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydW1iZWUiLGljb246WzQ0OCw1MTIsW10sImYyMTEiLCJNNS44IDMwOS43QzIgMjkyLjcgMCAyNzUuNSAwIDI1OC4zIDAgMTM1IDk5LjggMzUgMjIzLjEgMzUgMjM5LjcgMzUgMjU2LjQgMzcgMjcyLjQgNDAuNSAxNDkgODcuNSA1MS45IDE4NiA1LjggMzA5Ljd6TTM5OC43IDEyMC41Yy0xMy43LTE3LjUtMjkuNy0zMi43LTQ3LjgtNDUuMy0xNDkuNiA0NC4zLTI2Ni4zIDE2Mi4xLTMwOS43IDMxMiAxMi41IDE4LjEgMjggMzUuNiA0NS4yIDQ5IDQzLjEtMTUxLjMgMTYxLjItMjcxLjcgMzEyLjMtMzE1Ljd6bTE1LjggMjUyLjdjMTUuMi0yNS4xIDI1LjQtNTMuNyAyOS41LTgyLjgtNzkuNCA0Mi45LTE0NSAxMTAuNi0xODcuNiAxOTAuMyAzMC00LjQgNTguOS0xNS4zIDg0LjYtMzEuMyAzNSAxMy4xIDcwLjkgMjQuMyAxMDcgMzMuNi05LjMtMzYuNS0yMC40LTc0LjUtMzMuNS0xMDkuOHptMjkuNy0xNDUuNWMtMi42LTE5LjUtNy45LTM4LjctMTUuOC01Ni44LTEzNy45IDQ1LjgtMjQ2LjQgMTU2LjYtMjkxLjMgMjk1LjEgMTguMSA3LjYgMzcgMTIuNSA1Ni42IDE1LjIgNDYuMy0xMTQuMSAxMzYuOC0yMDYuOCAyNTAuNS0yNTMuNXoiXX0sZm5lPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6IjQyLWdyb3VwIixpY29uOls2NDAsNTEyLFsiaW5ub3NvZnQiXSwiZTA4MCIsIk0zMjAgOTZsMCAzMjBjMjEgMCA0MS44LTQuMSA2MS4yLTEyLjJzMzctMTkuOCA1MS45LTM0LjcgMjYuNi0zMi41IDM0LjctNTEuOSAxMi4yLTQwLjIgMTIuMi02MS4yLTQuMS00MS44LTEyLjItNjEuMi0xOS44LTM3LjEtMzQuNy01MS45LTMyLjUtMjYuNi01MS45LTM0LjctNDAuMi0xMi4yLTYxLjItMTIuMnpNMCAyNTZMMTYwIDQxNiAzMjAgMjU2IDE2MCA5NiAwIDI1NnptNDgwIDBjMCAyMSA0LjEgNDEuOCAxMi4yIDYxLjJzMTkuOCAzNyAzNC43IDUxLjkgMzIuNSAyNi42IDUxLjkgMzQuNyA0MC4yIDEyLjIgNjEuMiAxMi4ybDAtMzIwYy00Mi40IDAtODMuMSAxNi45LTExMy4xIDQ2LjlTNDgwIDIxMy42IDQ4MCAyNTZ6Il19LG00dD1mbmUsZzR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN0dW1ibGV1cG9uLWNpcmNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZjFhMyIsIk0yNjQgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6bTAgMTc3LjVjLTkuOCAwLTE3LjggOC0xNy44IDE3LjhsMCAxMDYuOWMwIDQwLjktMzMuOSA3My45LTc0LjkgNzMuOS00MS40IDAtNzQuOS0zMy41LTc0LjktNzQuOWwwLTQ2LjUgNTcuMyAwIDAgNDUuOGMwIDEwIDggMTcuOCAxNy44IDE3LjhzMTcuOC03LjkgMTcuOC0xNy44bDAtMTA4LjRjMC00MCAzNC4yLTcyLjEgNzQuNy03Mi4xIDQwLjcgMCA3NC43IDMyLjMgNzQuNyA3Mi42bDAgMjMuNy0zNC4xIDEwLjEtMjIuOS0xMC43IDAtMjAuNmMuMS05LjYtNy45LTE3LjYtMTcuNy0xNy42ek00MzEuNiAzMDkuMWMwIDQxLjQtMzMuNSA3NC45LTc0LjkgNzQuOS00MS4yIDAtNzQuOS0zMy4yLTc0LjktNzQuMmwwLTQ2LjggMjIuOSAxMC43IDM0LjEtMTAuMSAwIDQ3LjFjMCA5LjggOCAxNy42IDE3LjggMTcuNnMxNy44LTcuOSAxNy44LTE3LjZsMC00OCA1Ny4zIDBjLS4xIDQ1LjktLjEgNDYuNC0uMSA0Ni40eiJdfSxiNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3ltZm9ueSIsaWNvbjpbNTEyLDUxMixbXSwiZjgzZCIsIk0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTM4OS43IDE1MS41Yy0xMS41IC40LTE5LjQtNi40LTE5LjgtMTYuOS0uMy05LjIgNi43LTEzLjQgNi41LTE4LjktLjItNi41LTEwLjItNi44LTEyLjktNi43LTM5LjggMS4zLTQ4LjYgNTctNTguOSAxMTMuOCAyMS40IDMuMiAzNi42LS43IDQ1LjEtNi4yIDEyLTcuNy0zLjMtMTUuNy0xLjQtMjQuNiA0LTE4LjIgMzIuNi0xOSAzMiA1LjMtLjQgMTcuOS0yNS45IDQxLjgtNzcuNiAzNS43LTEwLjggNTkuNS0xOC40IDExNS01OC4yIDE2MS43LTI5IDM0LjUtNTguNCAzOS44LTcxLjYgNDAuMy0yNC42IC45LTQxLTEyLjMtNDEuNi0yOS44LS42LTE3IDE0LjQtMjYuMyAyNC4zLTI2LjYgMjEuOS0uOCAzMC4xIDI1LjcgMTQuOSAzNC0xMi4xIDkuNyAuMSAxMi42IDIuMSAxMi42IDEwLjQtLjQgMTcuMy01LjUgMjIuMi05IDI0LTIwIDMzLjItNTQuOSA0NS40LTExOC4zIDguMi00OS43IDE3LTc4IDE4LjItODItMTYuOS0xMi43LTI3LjEtMjguNi00OS44LTM0LjctMTUuNi00LjItMjUuMS0uNi0zMS44IDcuOC03LjkgMTAtNS4zIDIzIDIuNCAzMC43bDEyLjYgMTRjMTUuNSAxNy45IDI0IDMxLjkgMjAuOCA1MC42LTUuMSAyOS45LTQwLjcgNTIuOS04Mi45IDM5LjktMzYtMTEuMS00Mi43LTM2LjYtMzguNC01MC42IDcuNS0yNC4yIDQyLjQtMTEuNyAzNC42IDEzLjYtMi44IDguNi00LjkgOC43LTYuMyAxMy4xLTQuNiAxNC44IDQxLjggMjguNCA1MS0xLjQgNC41LTE0LjUtNS4zLTIxLjctMjIuMi0zOS45LTI4LjUtMzEuNy0xNi02NS41IDIuOS03OS43IDUyLjgtMzkuNCAxMDAuNSAxNy41IDExMC42IDI1LjggMzcuMi0xMDkgMTAwLjUtMTA1LjUgMTAyLjQtMTA1LjUgMjUuMi0uOCA0NC4yIDEwLjYgNDQuOCAyOC42IC4yIDcuNy00LjIgMjIuNi0xOS41IDIzLjF6Il19LHY0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzYWxlc2ZvcmNlIixpY29uOls2NDAsNTEyLFtdLCJmODNiIiwiTTI0OS40IDI0NS42bC0yNi40IDBjLjctNS4yIDMuMy0xNC4xIDEzLjYtMTQuMSA2LjggMCAxMiAzLjggMTIuNyAxNC4xek0zODYgMjMxLjhjLS41IDAtMTQuMS0xLjgtMTQuMSAyMHMxMy42IDIwIDE0LjEgMjBjMTMgMCAxNC4xLTEzLjUgMTQuMS0yMCAwLTIxLjgtMTMuNy0yMC0xNC4xLTIwek0xNDIuOCAyNTUuNWMtMS4xIC45LTIgMi0yLjUgMy4ycy0uOCAyLjctLjcgNGMwIDQuOCAyLjEgNi4xIDMuMyA3IDQuNyAzLjcgMTUuMSAyLjEgMjAuOSAxbDAtMTYuOWMtNS4zLTEuMS0xNi43LTItMjAuOSAxLjZ6TTY0MC41IDIzMmMwIDg3LjYtODAgMTU0LjQtMTY1LjQgMTM2LjQtMTguNCAzMy03MC43IDcwLjgtMTMyLjIgNDEuNi00MS4yIDk2LTE3Ny45IDkyLjItMjEzLjgtNS4yLTExOS43IDIzLjktMTc4LjgtMTM4LjQtNzUuMy0xOTkuMy0zNC44LTc5LjQgMjIuNi0xNzMuNiAxMTQuMy0xNzMuNiAxOS4xIDAgMzcuOSA0LjQgNTUgMTIuOXMzMiAyMC43IDQzLjYgMzUuOGMyMC43LTIxLjQgNDkuNC0zNC44IDgxLjEtMzQuOCA0Mi4zIDAgNzkgMjMuNSA5OC44IDU4LjYgOTIuOC00MC43IDE5My44IDI4LjIgMTkzLjggMTI3LjV6TTEyMC45IDI2My44YzAtMTEuOC0xMS43LTE1LjItMTcuOS0xNy4yLTUuMy0yLjEtMTMuNC0zLjUtMTMuNC04LjkgMC05LjUgMTctNi43IDI1LjItMi4xIDAgMCAxLjIgLjcgMS42LS41IC4yLS43IDIuNC02LjYgMi42LTcuMyAuMS0uMyAuMS0uNi0uMS0uOHMtLjQtLjUtLjYtLjZjLTEyLjMtNy42LTQwLjctOC41LTQwLjcgMTIuNyAwIDEyLjUgMTEuNSAxNS40IDE3LjkgMTcuMiA0LjcgMS42IDEzLjIgMyAxMy4yIDguNyAwIDQtMy41IDcuMS05LjIgNy4xLTYuOSAwLTEzLjUtMi4yLTE5LTYuMy0uNS0uMi0xLjQtLjctMS42IC43bC0yLjQgNy41Yy0uNSAuOSAuMiAxLjIgLjIgMS40IDEuOCAxLjQgMTAuMyA2LjYgMjIuOCA2LjYgMTMuMiAwIDIxLjQtNy4xIDIxLjQtMTguMWwwIDB6bTMyLTQyLjZjLTEwLjEgMC0xOC43IDMuMi0yMS40IDUuMi0uMSAuMS0uMiAuMi0uMyAuM3MtLjEgLjItLjEgLjQgMCAuMyAwIC40IC4xIC4zIC4yIC40bDIuNiA3LjFjLjEgLjIgLjIgLjUgLjUgLjZzLjUgLjIgLjcgLjFjLjYgMCA2LjgtNCAxNi45LTQgNCAwIDcuMSAuNyA5LjIgMi40IDMuNiAyLjggMy4xIDguMyAzLjEgMTAuNi00LjgtLjMtMTkuMS0zLjQtMjkuNCAzLjgtMi4zIDEuNi00LjMgMy44LTUuNSA2LjNzLTEuOSA1LjQtMS44IDguMmMwIDUuOSAxLjUgMTAuNCA2LjYgMTQuNCAxMi4yIDguMiAzNi4zIDIgMzguMSAxLjQgMS42LS4zIDMuNS0uNyAzLjUtMS45bDAtMzMuOWMwLTQuNiAuMy0yMS42LTIyLjgtMjEuNmwwIC4xem00Ni42LTIxYzAtLjIgMC0uMy0uMS0uNXMtLjEtLjMtLjMtLjQtLjItLjItLjQtLjMtLjMtLjEtLjUtLjFsLTkuOCAwYy0uMiAwLS4zIDAtLjUgLjFzLS4zIC4xLS40IC4zLS4yIC4yLS4zIC40LS4xIC4zLS4xIC41bDAgNzljMCAuMiAwIC4zIC4xIC41cy4xIC4zIC4zIC40IC4yIC4yIC40IC4zIC4zIC4xIC41IC4xbDkuOSAwYy4yIDAgLjMgMCAuNS0uMXMuMy0uMSAuNC0uMyAuMi0uMiAuMy0uNCAuMS0uMyAuMS0uNWwtLjEtNzl6bTU1LjcgMjguOWMtMi4xLTIuMy02LjgtNy41LTE3LjYtNy41LTMuNSAwLTE0LjIgLjItMjAuNyA4LjktNi40IDcuNi02LjYgMTguMS02LjYgMjEuNCAwIDMuMSAuMiAxNC4zIDcuMSAyMS4yIDIuNiAyLjkgOS4xIDguMiAyMi44IDguMiAxMC44IDAgMTYuNS0yLjMgMTguNi0zLjggLjUtLjIgLjctLjcgLjItMS45bC0yLjMtNi44Yy0uMS0uMy0uMy0uNS0uNi0uNnMtLjUtLjItLjgtLjFjLTIuNiAuOS02LjMgMi44LTE1LjMgMi44LTE3LjQgMC0xNi44LTE0LjctMTYuOS0xNi43bDM3LjIgMGMuMyAwIC41LS4xIC43LS4zcy40LS40IC40LS43Yy0uMyAwIDIuMS0xNC43LTYuMS0yNC4ybDAgMHptMzYuNyA1Mi43YzEzLjIgMCAyMS40LTcuMSAyMS40LTE4LjEgMC0xMS44LTExLjctMTUuMi0xNy45LTE3LjItNC4xLTEuNy0xMy40LTMuNC0xMy40LTguOSAwLTMuOCAzLjMtNi40IDguNS02LjQgNS44IC4xIDExLjUgMS42IDE2LjcgNC4yIDAgMCAxLjIgLjcgMS42LS41IC4yLS43IDIuNC02LjYgMi42LTcuMyAuMS0uMyAuMS0uNi0uMS0uOHMtLjQtLjUtLjYtLjZjLTcuOS00LjktMTYuNy00LjktMjAuMi00LjktMTIgMC0yMC41IDcuMy0yMC41IDE3LjYgMCAxMi41IDExLjUgMTUuNCAxNy45IDE3LjIgNi4xIDIgMTMuMiAzLjMgMTMuMiA4LjcgMCA0LTMuNSA3LjEtOS4yIDcuMS02LjkgMC0xMy41LTIuMi0xOS02LjQtLjEtLjEtLjMtLjItLjUtLjJzLS40IDAtLjUgLjEtLjMgLjItLjQgLjMtLjIgLjMtLjIgLjVsLTIuMyA3LjVjLS41IC45IC4yIDEuMiAuMiAxLjQgMS43IDEuNCAxMC4zIDYuNiAyMi44IDYuNmwwIDB6TTM1Ny42IDIyNGMwLS43LS4yLTEuMi0xLjItMS4ybC0xMS44IDBjMC0uMSAuOS04LjkgNC41LTEyLjUgNC4yLTQuMiAxMS44LTEuNiAxMi0xLjYgMS4yIC41IDEuNCAwIDEuNi0uNWwyLjgtNy44Yy43LS45IDAtMS4yLS4yLTEuNC01LjEtMi0xNy40LTIuOS0yNC41IDQuMi01LjUgNS41LTcgMTMuOS04IDE5LjVsLTguNSAwYy0uMyAwLS42IC4yLS44IC40cy0uMyAuNS0uNCAuOGwtMS40IDcuOGMwIC43IC4yIDEuMiAxLjIgMS4ybDguMiAwYy04LjUgNDcuOS04LjcgNTAuMi0xMC4zIDU1LjUtMS4xIDMuNi0zLjMgNi45LTUuOSA3LjgtLjEgMC0zLjkgMS43LTkuNi0uMiAwIDAtLjktLjUtMS40IC43LS4yIC43LTIuNiA2LjgtMi44IDcuNXMwIDEuNCAuNSAxLjRjNS4xIDIgMTMgMS44IDE3LjkgMCA2LjMtMi4zIDkuNy03LjkgMTEuNS0xMi45IDIuOC03LjcgMi44LTkuOCAxMS44LTU5LjdsMTIuMiAwYy4zIDAgLjYtLjIgLjgtLjRzLjMtLjUgLjQtLjhsMS40LTcuOHpNNDExIDI0MGMtLjYtMS43LTUuMS0xOC4xLTI1LjItMTguMS0xNS4yIDAtMjMgMTAtMjUuMiAxOC4xLTEgMy0zLjIgMTQgMCAyMy41IC4xIC4zIDQuNCAxOC4xIDI1LjIgMTguMSAxNSAwIDIyLjktOS42IDI1LjItMTguMSAzLjItOS42IDEtMjAuNSAwLTIzLjV6bTQ1LjQtMTYuN2MtNS0xLjctMTYuNi0xLjktMjIuMSA1LjRsMC00LjVjMC0uMiAwLS4zLS4xLS41cy0uMS0uMy0uMy0uNC0uMi0uMi0uNC0uMy0uMy0uMS0uNS0uMWwtOS40IDBjLS4yIDAtLjMgMC0uNSAuMXMtLjMgLjEtLjQgLjMtLjIgLjItLjMgLjQtLjEgLjMtLjEgLjVsMCA1NS4zYzAgLjIgMCAuMyAuMSAuNXMuMSAuMyAuMyAuNCAuMiAuMiAuNCAuMyAuMyAuMSAuNSAuMWw5LjYgMGMuMiAwIC4zIDAgLjUtLjFzLjMtLjEgLjQtLjMgLjItLjIgLjMtLjQgLjEtLjMgLjEtLjVsMC0yNy44YzAtMi45IC4xLTExLjQgNC41LTE1LjEgNC45LTQuOSAxMi0zLjQgMTMuNC0zLjEgLjMgMCAuNi0uMSAuOC0uM3MuNC0uNCAuNi0uN2MxLjItMi42IDIuMi01LjMgMy4xLTggLjEtLjMgLjEtLjUgMC0uOHMtLjMtLjUtLjUtLjZsMCAwem00Ni44IDU0LjFsLTIuMS03LjNjLS41LTEuMi0xLjQtLjctMS40LS43LTQuMiAxLjgtMTAuMSAxLjktMTEuMyAxLjktNC42IDAtMTcuMi0xLjEtMTcuMi0xOS44IDAtNi4yIDEuOC0xOS44IDE2LjUtMTkuOCAzLjktLjEgNy44IC41IDExLjUgMS42IDAgMCAuOSAuNSAxLjItLjcgLjktMi42IDEuNi00LjUgMi42LTcuNSAuMi0uOS0uNS0xLjItLjctMS4yLTExLjYtMy45LTIyLjMtMi41LTI3LjggMC0xLjYgLjctMTYuMiA2LjUtMTYuMiAyNy41IDAgMi45LS42IDMwLjEgMjguOSAzMC4xIDUuMyAwIDEwLjYtMSAxNS41LTIuOCAuMi0uMiAuNC0uNCAuNS0uNnMuMS0uNSAwLS44bDAgMHptNTMuOS0zOS41Yy0uOC0zLTUuNC0xNi4yLTIyLjMtMTYuMi0xNiAwLTIzLjUgMTAuMS0yNS42IDE4LjYtMS4yIDMuOC0xLjcgNy44LTEuNyAxMS44IDAgMjUuOSAxOC44IDI5LjQgMjkuOSAyOS40IDEwLjggMCAxNi41LTIuMyAxOC42LTMuOCAuNS0uMiAuNy0uNyAuMi0xLjlsLTIuNC02LjhjLS4xLS4zLS4zLS41LS42LS42cy0uNi0uMi0uOC0uMWMtMi42IC45LTYuMyAyLjgtMTUuMyAyLjgtMTcuNCAwLTE2LjktMTQuNy0xNi45LTE2LjdsMzcuMiAwYy4zIDAgLjUtLjEgLjctLjNzLjQtLjQgLjQtLjdjLS4yIDAgLjktNy4xLTEuNC0xNS41bDAgMHptLTIzLjMtNi40Yy0xMC4zIDAtMTMgOS0xMy42IDE0LjFsMjYuNCAwYy0uOS0xMS45LTcuNi0xNC4xLTEyLjctMTQuMWwwIDB6Il19LHg0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzb3VyY2V0cmVlIixpY29uOls0NDgsNTEyLFtdLCJmN2QzIiwiTTQyNy40IDIwM2MwLTExMi4xLTkwLjktMjAzLTIwMy0yMDMtMTEyLjEtLjItMjAzIDkwLjYtMjAzLjIgMjAyLjYtLjEgNDMgMTMuNSA4NC44IDM4LjcgMTE5LjZzNjAuOSA2MC42IDEwMS44IDczLjhsMCAxMDEuN2MwIDMuOCAxLjUgNy40IDQuMiAxMC4xczYuMyA0LjIgMTAuMSA0LjJsOTYuNCAwYzMuOCAwIDcuNC0xLjUgMTAuMS00LjJzNC4yLTYuMyA0LjItMTAuMWwwLTEwMS42YzQwLjgtMTMuMiA3Ni41LTM5IDEwMS43LTczLjdzMzguOS03Ni41IDM5LTExOS40em0tMjcxLjYgMGMwLTkwLjggMTM3LjMtOTAuOCAxMzcuMyAwLS4xIDg5LjktMTM3LjMgOTEtMTM3LjMgMHoiXX0seTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImxpbmtlZGluLWluIixpY29uOls0NDgsNTEyLFtdLCJmMGUxIiwiTTEwMC4zIDQ0OGwtOTIuOSAwIDAtMjk5LjEgOTIuOSAwIDAgMjk5LjF6TTUzLjggMTA4LjFDMjQuMSAxMDguMSAwIDgzLjUgMCA1My44IDAgMzkuNSA1LjcgMjUuOSAxNS44IDE1LjhzMjMuOC0xNS44IDM4LTE1LjggMjcuOSA1LjcgMzggMTUuOCAxNS44IDIzLjggMTUuOCAzOGMwIDI5LjctMjQuMSA1NC4zLTUzLjggNTQuM3pNNDQ3LjkgNDQ4bC05Mi43IDAgMC0xNDUuNmMwLTM0LjctLjctNzkuMi00OC4zLTc5LjItNDguMyAwLTU1LjcgMzcuNy01NS43IDc2LjdsMCAxNDguMS05Mi44IDAgMC0yOTkuMSA4OS4xIDAgMCA0MC44IDEuMyAwYzEyLjQtMjMuNSA0Mi43LTQ4LjMgODcuOS00OC4zIDk0IDAgMTExLjMgNjEuOSAxMTEuMyAxNDIuM2wwIDE2NC4zLS4xIDB6Il19LHc0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJodG1sNSIsaWNvbjpbMzg0LDUxMixbXSwiZjEzYiIsIk0wIDMyTDM0LjkgNDI3LjggMTkxLjUgNDgwIDM0OS4xIDQyNy44IDM4NCAzMiAwIDMyek0zMDguMiAxNTkuOWwtMTgzLjggMCA0LjEgNDkuNCAxNzUuNiAwLTEzLjYgMTQ4LjQtOTcuOSAyNyAwIC4zLTEuMSAwLTk4LjctMjcuMy02LTc1LjggNDcuNyAwIDMuNSAzOC4xIDUzLjUgMTQuNSA1My43LTE0LjUgNi02Mi4yLTE2Ni45IDAtMTIuOC0xNDUuNiAyNDEuMSAwLTQuNCA0Ny43eiJdfSxNNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicnVzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTA3YSIsIk01MDguNSAyNDkuOGwtMjEuOC0xMy41Yy0uMi0yLS4zLTMuOS0uNS01LjlsMTguNy0xNy41Yy45LS45IDEuNi0xLjkgMi0zLjFzLjUtMi41IC4yLTMuNy0uOC0yLjQtMS42LTMuMy0xLjgtMS43LTMtMi4xbC0yNC05Yy0uNS0xLjktMS4xLTMuOC0xLjctNS42bDE1LTIwLjhjLjctMSAxLjItMi4yIDEuMy0zLjRzMC0yLjUtLjUtMy43LTEuMi0yLjItMi4yLTIuOS0yLjEtMS4zLTMuNC0xLjVsLTI1LjQtNC4yYy0uOS0xLjctMS44LTMuNC0yLjctNS4ybDEwLjctMjMuNGMuNS0xLjEgLjctMi40IC42LTMuNnMtLjUtMi40LTEuMi0zLjUtMS42LTEuOS0yLjgtMi41LTIuNC0uOC0zLjYtLjhsLTI1LjggLjljLTEuMi0xLjUtMi40LTIuOS0zLjYtNC40TDQzOSA4MS44Yy4zLTEuMiAuMy0yLjUtLjEtMy43cy0xLTIuMy0xLjktMy4yLTItMS41LTMuMi0xLjktMi41LS40LTMuNy0uMUw0MDUgNzguOWMtMS40LTEuMi0yLjktMi40LTQuNC0zLjZsLjktMjUuOGMuMS0xLjMtLjItMi41LS44LTMuNnMtMS40LTIuMS0yLjUtMi44LTIuMi0xLjEtMy41LTEuMi0yLjUgLjEtMy43IC42TDM2Ny43IDUzLjJjLTEuNy0uOS0zLjQtMS44LTUuMS0yLjdsLTQuMi0yNS40Yy0uMi0xLjItLjctMi40LTEuNS0zLjRzLTEuOC0xLjctMi45LTIuMi0yLjQtLjctMy43LS41LTIuNCAuNi0zLjQgMS4zTDMyNiAzNS4zYy0xLjktLjYtMy44LTEuMS01LjYtMS43bC05LTI0Yy0uNC0xLjItMS4yLTIuMi0yLjEtM3MtMi4xLTEuNC0zLjMtMS42LTIuNS0uMi0zLjcgLjItMi4zIDEuMS0zLjEgMkwyODEuNiAyNS45Yy0yLS4yLTMuOS0uNC01LjktLjVMMjYyLjMgMy41Yy0uNy0xLjEtMS42LTEuOS0yLjctMi42cy0yLjMtLjktMy42LS45LTIuNSAuMy0zLjYgLjktMiAxLjUtMi43IDIuNkwyMzYuMiAyNS4zYy0yIC4yLTMuOSAuMy01LjkgLjZMMjEyLjkgNy4xYy0uOS0uOS0xLjktMS42LTMuMS0ycy0yLjUtLjUtMy43LS4yLTIuNCAuOC0zLjMgMS42LTEuNyAxLjgtMi4xIDNsLTkgMjRjLTEuOSAuNi0zLjggMS4xLTUuNyAxLjdsLTIwLjgtMTVjLTEtLjctMi4yLTEuMi0zLjQtMS4zcy0yLjUgMC0zLjcgLjUtMi4yIDEuMi0yLjkgMi4yLTEuMyAyLjEtMS41IDMuNGwtNC4yIDI1LjRjLTEuNyAuOS0zLjQgMS44LTUuMiAyLjdMMTIwLjkgNDIuNmMtMS4xLS41LTIuNC0uNy0zLjctLjZzLTIuNSAuNS0zLjUgMS4yLTEuOSAxLjctMi41IDIuOC0uOCAyLjQtLjggMy42bC45IDI1LjhjLTEuNSAxLjItMyAyLjQtNC40IDMuNkw4MS44IDczYy0xLjItLjMtMi41LS4zLTMuNyAuMXMtMi4zIDEtMy4yIDEuOS0xLjUgMi0xLjkgMy4yLS40IDIuNS0uMSAzLjdMNzguOSAxMDdjLTEuMiAxLjQtMi40IDIuOS0zLjYgNC40bC0yNS44LS45Yy0xLjMgMC0yLjUgLjItMy42IC44cy0yLjEgMS40LTIuOCAyLjQtMS4xIDIuMi0xLjIgMy41IC4xIDIuNSAuNiAzLjZsMTAuNyAyMy40Yy0uOSAxLjctMS44IDMuNC0yLjcgNS4ybC0yNS40IDQuMWMtMS4yIC4yLTIuNCAuNy0zLjQgMS41cy0xLjcgMS44LTIuMiAyLjktLjcgMi40LS41IDMuNyAuNiAyLjQgMS4zIDMuNGwxNSAyMC44Yy0uNiAxLjktMS4xIDMuOC0xLjcgNS43bC0yNCA5Yy0xLjIgLjQtMi4yIDEuMi0zIDIuMXMtMS40IDIuMS0xLjYgMy4zLS4yIDIuNSAuMiAzLjcgMS4xIDIuMyAyIDMuMWwxOC43IDE3LjVjLS4yIDItLjQgMy45LS42IDUuOUwzLjUgMjQ5LjhjLTEuMSAuNy0xLjkgMS42LTIuNiAyLjdzLS45IDIuMy0uOSAzLjYgLjMgMi41IC45IDMuNiAxLjUgMiAyLjYgMi43bDIxLjggMTMuNWMuMiAyIC4zIDMuOSAuNiA1LjlMNy4xIDI5OS4xYy0uOSAuOS0xLjYgMS45LTIgMy4xcy0uNSAyLjUtLjIgMy43IC44IDIuNCAxLjYgMy4zIDEuOCAxLjcgMyAyLjFsMjQgOWMuNiAxLjkgMS4xIDMuOCAxLjcgNS42bC0xNSAyMC44Yy0uNyAxLTEuMiAyLjItMS4zIDMuNHMwIDIuNSAuNSAzLjcgMS4yIDIuMiAyLjIgMi45IDIuMSAxLjMgMy40IDEuNWwyNS40IDQuMmMuOSAxLjcgMS44IDMuNCAyLjcgNS4xTDQyLjYgMzkxLjFjLS41IDEuMS0uNyAyLjQtLjYgMy42cy41IDIuNSAxLjIgMy41Yy43IDEuMSAxLjYgMS45IDIuNyAyLjVzMi40IC44IDMuNiAuOGwyNS44LS45YzEuMiAxLjUgMi40IDIuOSAzLjYgNC40TDczIDQzMC4yYy0uMyAxLjItLjMgMi41IC4xIDMuN3MxIDIuMyAxLjkgMy4yIDIgMS41IDMuMiAxLjkgMi41IC40IDMuNyAuMWwyNS4yLTUuOWMxLjUgMS4yIDIuOSAyLjQgNC40IDMuNmwtLjkgMjUuOGMwIDEuMyAuMiAyLjUgLjggMy42czEuNCAyLjEgMi41IDIuOCAyLjIgMS4xIDMuNSAxLjIgMi41LS4xIDMuNi0uNmwyMy40LTEwLjdjMS43IC45IDMuNCAxLjggNS4xIDIuN2w0LjIgMjUuNGMuMiAxLjIgLjcgMi40IDEuNSAzLjRzMS44IDEuOCAyLjkgMi4yIDIuNCAuNyAzLjcgLjUgMi40LS42IDMuNC0xLjNsMjAuOC0xNWMxLjkgLjYgMy44IDEuMSA1LjYgMS43bDkgMjRjLjQgMS4yIDEuMiAyLjIgMi4xIDNzMi4xIDEuNCAzLjMgMS42IDIuNSAuMiAzLjctLjIgMi4zLTEuMSAzLjEtMmwxNy41LTE4LjdjMiAuMiAzLjkgLjQgNS45IC42bDEzLjUgMjEuOGMuNyAxLjEgMS42IDEuOSAyLjcgMi42czIuMyAuOSAzLjYgLjkgMi41LS4zIDMuNi0uOSAyLTEuNSAyLjctMi42bDEzLjUtMjEuOGMyLS4yIDMuOS0uMyA1LjktLjZsMTcuNSAxOC43Yy45IC45IDEuOSAxLjYgMy4xIDJzMi41IC41IDMuNyAuMiAyLjQtLjggMy4zLTEuNiAxLjctMS44IDIuMS0zbDktMjRjMS45LS42IDMuOC0xLjEgNS42LTEuN2wyMC44IDE1YzEgLjcgMi4yIDEuMiAzLjQgMS4zczIuNSAwIDMuNy0uNSAyLjItMS4yIDIuOS0yLjIgMS4zLTIuMSAxLjUtMy40bDQuMi0yNS40YzEuNy0uOSAzLjQtMS44IDUuMS0yLjdsMjMuNCAxMC43YzEuMSAuNSAyLjQgLjcgMy42IC42czIuNC0uNSAzLjUtMS4yIDEuOS0xLjYgMi41LTIuOCAuOC0yLjQgLjgtMy42bC0uOS0yNS44YzEuNS0xLjIgMi45LTIuNCA0LjQtMy42bDI1LjIgNS45YzEuMiAuMyAyLjUgLjMgMy43LS4xczIuMy0xIDMuMi0xLjkgMS41LTIgMS45LTMuMiAuNC0yLjUgLjEtMy43TDQzMy4xIDQwNWMxLjItMS40IDIuNC0yLjkgMy42LTQuNGwyNS44IC45YzEuMyAuMSAyLjUtLjIgMy42LS44czIuMS0xLjQgMi44LTIuNWMuNy0xIDEuMS0yLjIgMS4yLTMuNXMtLjEtMi41LS42LTMuNmwtMTAuNy0yMy40Yy45LTEuNyAxLjgtMy40IDIuNy01LjFsMjUuNC00LjJjMS4yLS4yIDIuNC0uNyAzLjQtMS41czEuOC0xLjggMi4yLTIuOSAuNy0yLjQgLjUtMy43LS42LTIuNC0xLjMtMy40bC0xNS0yMC44Yy42LTEuOSAxLjEtMy44IDEuNy01LjZsMjQtOWMxLjItLjQgMi4yLTEuMiAzLTIuMXMxLjQtMi4xIDEuNi0zLjMgLjItMi41LS4yLTMuNy0xLjEtMi4zLTItMy4xbC0xOC43LTE3LjVjLjItMS45IC40LTMuOSAuNi01LjlsMjEuOC0xMy41YzEuMS0uNyAxLjktMS42IDIuNi0yLjdzLjktMi4zIC45LTMuNi0uMy0yLjUtLjktMy42LTEuNS0yLTIuNi0yLjdsMCAwem0tMTUxIDEyOS4xYy0zLjYtLjgtNy40LS4xLTEwLjUgMS45cy01LjMgNS4yLTYgOC44bC03LjYgMzUuN2MtMjQuNiAxMS4xLTUxLjMgMTYuOC03OC4zIDE2LjdzLTUzLjYtNi4xLTc4LjEtMTcuNGwtNy42LTM1LjdjLS40LTEuOC0xLjEtMy41LTIuMS01cy0yLjQtMi44LTMuOS0zLjgtMy4yLTEuNy01LTItMy42LS4zLTUuNCAuMWwtMzEuNSA2LjhjLTUuOC02LTExLjMtMTIuNS0xNi4zLTE5LjJsMTUzLjIgMGMxLjcgMCAyLjktLjMgMi45LTEuOWwwLTU0LjJjMC0xLjYtMS4yLTEuOS0yLjktMS45bC00NC44IDAgMC0zNC40IDQ4LjUgMGM0LjQgMCAyMy43IDEuMyAyOS44IDI1LjkgMS45IDcuNSA2LjIgMzIuMSA5LjEgNDAgMi45IDguOCAxNC42IDI2LjUgMjcuMSAyNi41bDc5IDBjLTUuMyA3LjEtMTEuMSAxMy44LTE3LjMgMjAuMWwtMzIuMS02Ljl6bTI1LjggMzQuNWMwIDMtLjkgNi0yLjYgOC41cy00IDQuNS02LjggNS42LTUuOCAxLjUtOC44IC45LTUuNy0yLTcuOC00LjItMy42LTQuOC00LjItNy44LS4zLTYgLjgtOC44IDMuMS01LjIgNS42LTYuOSA1LjQtMi42IDguNS0yLjZsLjQgMGM0IC4xIDcuNyAxLjggMTAuNSA0LjZzNC4zIDYuNyA0LjMgMTAuNmwuMSAwem0tMjI1LjYtLjdjMCAzLS45IDYtMi42IDguNXMtNC4xIDQuNS02LjggNS42LTUuOCAxLjUtOC44IC45LTUuNy0yLTcuOC00LjItMy42LTQuOC00LjItNy44LS4zLTYgLjktOC44IDMuMS01LjIgNS42LTYuOCA1LjQtMi42IDguNS0yLjZsLjUgMGM0IC4xIDcuNyAxLjggMTAuNSA0LjZzNC4zIDYuNyA0LjMgMTAuNmwuMSAwek02OS42IDIzNC4ybDMyLjgtMTQuNmMxLjctLjcgMy4yLTEuOCA0LjQtMy4xczIuMi0yLjkgMi45LTQuNiAxLTMuNSAuOS01LjMtLjUtMy42LTEuMi01LjNsLTYuOC0xNS4yIDI2LjYgMCAwIDExOS43LTUzLjYgMGMtNi42LTIzLjItOC43LTQ3LjYtNi4xLTcxLjZ6TTU4LjMgMTk4LjFjMC0yIC40LTQgMS4yLTUuOHMxLjktMy41IDMuMy00LjkgMy4xLTIuNSA0LjktMy4zIDMuOC0xLjIgNS44LTEuMmwuNSAwYzMgLjEgNS45IDEgOC4zIDIuOHM0LjMgNC4xIDUuNCA2LjkgMS4zIDUuOCAuNyA4LjgtMi4xIDUuNi00LjMgNy43LTQuOSAzLjUtNy44IDQuMS02IC4yLTguNy0uOS01LjEtMy4xLTYuOC01LjYtMi41LTUuNC0yLjUtOC40bDAgMHptMTU1LjIgMjQuNWwwLTM1LjMgNjMuMyAwYzMuMyAwIDIzLjEgMy44IDIzLjEgMTguNiAwIDEyLjMtMTUuMiAxNi43LTI3LjcgMTYuN2wtNTguNyAwek0zOTkgMzA2LjdjLTkuOCAxLjEtMjAuNi00LjEtMjItMTAuMS01LjgtMzIuNS0xNS40LTM5LjQtMzAuNi01MS40IDE4LjktMTIgMzguNS0yOS42IDM4LjUtNTMuMyAwLTI1LjUtMTcuNS00MS42LTI5LjQtNDkuNS0xNi44LTExLTM1LjMtMTMuMi00MC4zLTEzLjJsLTE5OC45IDBjMjcuNS0zMC43IDY0LjQtNTEuNSAxMDQuOS01OS4ybDIzLjUgMjQuNmMxLjMgMS4zIDIuOCAyLjQgNC40IDMuMXMzLjUgMS4xIDUuMyAxLjIgMy42LS4zIDUuMy0uOSAzLjItMS43IDQuNi0yLjlsMjYuMy0yNWMyNi44IDUgNTIuMSAxNS44IDc0LjMgMzEuNnM0MC42IDM2LjIgNTQuMSA1OS45bC0xOCA0MC42Yy0xLjUgMy40LTEuNSA3LjItLjIgMTAuNnMzLjkgNi4yIDcuMyA3LjdsMzQuNiAxNS4zYzEuMSAxMC44IDEuMiAyMS43IC40IDMyLjVsLTE5LjMgMGMtMS45IDAtMi43IDEuMy0yLjcgMy4xbDAgOC44YzAgMjAuOC0xMS43IDI1LjMtMjIgMjYuNXpNMjQwIDYwLjJjMC00IDEuNi03LjkgNC41LTEwLjdzNi43LTQuNSAxMC43LTQuNWwuNCAwYzMgLjEgNS45IDEgOC40IDIuOHM0LjMgNC4xIDUuNCA2LjkgMS4zIDUuOCAuNyA4LjgtMi4xIDUuNi00LjMgNy43LTQuOSAzLjUtNy44IDQtNiAuMi04LjctLjktNS4xLTMuMS02LjgtNS42LTIuNS01LjQtMi41LTguNHpNNDM2LjggMjE0Yy0yIDAtNC0uNC01LjgtMS4ycy0zLjUtMS45LTQuOS0zLjMtMi41LTMuMS0zLjMtNC45LTEuMi0zLjgtMS4yLTUuOCAuNC00IDEuMi01LjggMS45LTMuNSAzLjMtNC45IDMuMS0yLjUgNC45LTMuMyAzLjgtMS4yIDUuOC0xLjJsLjQgMGM0IC4xIDcuOSAxLjcgMTAuNyA0LjZzNC40IDYuOCA0LjMgMTAuOC0xLjcgNy45LTQuNiAxMC43LTYuOCA0LjQtMTAuOCA0LjN6Il19LGs0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJob3JuYmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjU5MiIsIk03Ni44IDM3MC4zYzEgNy44LS40IDE1LjgtNC4xIDIyLjhzLTkuNiAxMi42LTE2LjcgMTYuMS0xNS4xIDQuNy0yMi45IDMuMy0xNS01LjEtMjAuNi0xMC43LTkuMi0xMi45LTEwLjUtMjAuNyAwLTE1LjggMy42LTIyLjkgOS4zLTEyLjggMTYuMy0xNi41IDE1LTUgMjIuOS0zLjljLTc4LjMtMTExLjMgNTItMTkwLjUgNTItMTkwLjUtNS45IDQzLTguMiA5MS4yLTguMiA5MS4yLTY3LjMgNDEuNSAuOSA2NC4xIDM5LjggNzIuOSA5LjkgMjcgMjcuOCA1MC4yIDUxLjQgNjYuN3M1MS42IDI1LjMgODAuMyAyNS4zYzEuOSAwIDMuOC0uMiA1LjctLjNsLjEgMTguOWMtOTkuMiAxLjQtMTU4LjctMjkuMS0xODguOS01MS42em0xMDgtMzI3LjdjLjktNy4yLS4yLTE0LjYtMy40LTIxLjItMy02LjItNy42LTExLjUtMTMuNC0xNS4zcy0xMi41LTUuOS0xOS40LTYuMi0xMy44IDEuNC0xOS44IDQuNy0xMS4xIDguMy0xNC41IDE0LjMtNS4yIDEyLjgtNSAxOS43IDIuMiAxMy43IDUuOSAxOS41IDguOSAxMC42IDE1LjEgMTMuNiAxMy4xIDQuNCAyMCAzLjljLTIyLjYgMjkuOS01My44IDg5LjYtNTIuNCAxOTBsMjEuOC0uMmMwLS45LS4xLTEuOC0uMS0yLjcgMC0yOCA4LjQtNTUuMyAyNC4xLTc4LjVzMzcuOS00MS4yIDYzLjgtNTEuNmM4LTM3LjcgMzAuNy0xMTQuMyA3My44LTQ0LjMgMCAwIDQ4LjEgMi40IDkxLjIgOC4yIDAgMC03Ny44LTEyOC0xODcuNi01NC4xbDAgMHpNNDg5IDE3Ni44YzYuMy0zIDExLjctNy43IDE1LjUtMTMuNnM1LjktMTIuNyA2LjEtMTkuOC0xLjYtMTQtNS4yLTIwLTguNy0xMS0xNC45LTE0LjMtMTMuMi00LjgtMjAuMi00LjQtMTMuOCAyLjgtMTkuNSA2LjktMTAuMiA5LjYtMTMgMTYuMS0zLjcgMTMuNi0yLjcgMjAuNWMtMzEuNy0yMS45LTg5LjgtNDkuMS0xODMuNC00Ny43bC4xIDIyLjVjMi43LS4yIDUuNC0uNCA4LjEtLjQgMjguMSAwIDU1LjYgOC41IDc4LjkgMjQuM3M0MS4yIDM4LjMgNTEuNiA2NC41YzM5LjEgOSAxMDUuMSAzMS42IDM4LjUgNzIuNSAwIDAtMi4zIDQ4LjEtOC4yIDkxLjIgMCAwIDEzMy40LTgxLjIgNDktMTk0LjYgNi42IC42IDEzLjMtLjYgMTkuMy0zLjVsMCAwek0zNzQuNCA0MzYuMmMyMS40LTMyLjUgNDYuNC04OS43IDQ1LjEtMTc5LjdsLTE5LjUgLjFjLjEgMi4xIC4zIDQuMSAuMyA2LjIgMCAyOC42LTguOCA1Ni41LTI1LjEgODBzLTM5LjUgNDEuNC02Ni4zIDUxLjRjLTguOSAzOS0zMS40IDEwNi43LTcyLjggMzkuNSAwIDAtNDguMS0yLjMtOTEuMi04LjIgMCAwIDc5LjkgMTMxLjMgMTkxLjkgNTEgLjMgNC45IDEuNSA5LjYgMy42IDE0IDIuOSA2LjEgNy41IDExLjQgMTMuMSAxNS4xczEyLjIgNiAxOSA2LjQgMTMuNi0xLjEgMTkuNi00LjIgMTEuMS03LjggMTQuNy0xMy42IDUuNi0xMi40IDUuNy0xOS4yLTEuNS0xMy41LTQuOC0xOS40LTguMi0xMC45LTE0LjEtMTQuMy0xMi42LTUuMi0xOS40LTUuMWwwLS4xeiJdfSxTNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGhwIixpY29uOls2NDAsNTEyLFtdLCJmNDU3IiwiTTMyMCAxMDQuNWMxNzEuNCAwIDMwMy4yIDcyLjIgMzAzLjIgMTUxLjVTNDkxLjMgNDA3LjUgMzIwIDQwNy41QzE0OC42IDQwNy41IDE2LjggMzM1LjMgMTYuOCAyNTZTMTQ4LjcgMTA0LjUgMzIwIDEwNC41em0wLTE2LjhDMTQzLjMgODcuNyAwIDE2MyAwIDI1NlMxNDMuMyA0MjQuMyAzMjAgNDI0LjMgNjQwIDM0OSA2NDAgMjU2IDQ5Ni43IDg3LjcgMzIwIDg3Ljd6TTIxOC4yIDI0Mi41Yy03LjkgNDAuNS0zNS44IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOCAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNOTcuNCAzNTAuM2wzNi43IDAgOC43LTQ0LjhjNDEuMSAwIDY2LjYgMyA5MC4yLTE5LjEgMjYuMS0yNCAzMi45LTY2LjcgMTQuMy04OC4xLTkuNy0xMS4yLTI1LjMtMTYuNy00Ni41LTE2LjdsLTcwLjcgMC0zMi43IDE2OC43ek0yODMuMSAxMzYuN2wzNi41IDAtOC43IDQ0LjhjMzEuNSAwIDYwLjctMi4zIDc0LjggMTAuNyAxNC44IDEzLjYgNy43IDMxLTguMyAxMTMuMWwtMzcgMGMxNS40LTc5LjQgMTguMy04NiAxMi43LTkyLTUuNC01LjgtMTcuNy00LjYtNDcuNC00LjZsLTE4LjggOTYuNi0zNi41IDAgMzIuNy0xNjguNnpNNTA1IDI0Mi41Yy04IDQxLjEtMzYuNyAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzguMiAwIDYzLjgtNC4xIDU2LjQgMzQuM3pNMzg0LjIgMzUwLjNsMzYuOCAwIDguNy00NC44YzQzLjIgMCA2Ny4xIDIuNSA5MC4yLTE5LjEgMjYuMS0yNCAzMi45LTY2LjcgMTQuMy04OC4xLTkuNy0xMS4yLTI1LjMtMTYuNy00Ni41LTE2LjdsLTcwLjcgMC0zMi44IDE2OC43eiJdfSx6NHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZGlzcXVzIixpY29uOls1NzYsNTEyLFtdLCJlN2Q1IiwiTTI5MC4yIDUxMmMtNjIuNiAwLTExOS45LTIyLjktMTY0LjItNjAuOEwxNyA0NjYuMSA1OS4xIDM2Mi4yYy0xNC43LTMyLjQtMjIuOS02OC4zLTIyLjktMTA2LjIgMC0xNDEuNCAxMTMuNy0yNTYgMjU0LTI1NiAxNDAuMyAwIDI1NCAxMTQuNiAyNTQgMjU2IDAgMTQxLjQtMTEzLjcgMjU2LTI1NCAyNTZ6TTQyOC45IDI1NS4zbDAtLjdDNDI4LjkgMTgwLjcgMzc2LjggMTI4IDI4NyAxMjhsLTk3IDAgMCAyNTYgOTUuNiAwYzkwLjUgMCAxNDMuNC01NC45IDE0My40LTEyOC43ek0yODggMzIxLjFsLTI4LjQgMCAwLTEzMC4yIDI4LjQgMGM0MS43IDAgNjkuMyAyMy44IDY5LjMgNjQuN2wwIC43YzAgNDEuMy0yNy43IDY0LjctNjkuMyA2NC43eiJdfSxDNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiNTAwcHgiLGljb246WzM4NCw1MTIsW10sImYyNmUiLCJNNzEuOCAzNDQuM2MtNi41LTE0LjItNi45LTE4LjMgNy40LTIzLjEgMjUuNi04IDggOS4yIDQzLjIgNDkuMmwuMyAwIDAtOTMuOWMxLjItNTAuMiA0NC05Mi4yIDk3LjctOTIuMiA1My45IDAgOTcuNyA0My41IDk3LjcgOTYuOCAwIDYzLjQtNjAuOCAxMTMuMi0xMjguNSA5My4zLTEwLjUtNC4yLTIuMS0zMS43IDguNS0yOC42IDUzIDAgODkuNC0xMC4xIDg5LjQtNjQuNCAwLTYxLTc3LjEtODkuNi0xMTYuOS00NC42LTIzLjUgMjYuNC0xNy42IDQyLjEtMTcuNiAxNTcuNiA1MC43IDMxIDExOC4zIDIyIDE2MC40LTIwLjEgMjQuOC0yNC44IDM4LjUtNTggMzguNS05MyAwLTM1LjItMTMuOC02OC4yLTM4LjgtOTMuMy0yNC44LTI0LjgtNTcuOC0zOC41LTkzLjMtMzguNVMxNTEgMTYzLjMgMTI2LjMgMTg4Yy0uMyAuMy0xNiAxNi41LTIxLjIgMjMuOWwtLjUgLjZjLTMuMyA0LjctNi4zIDkuMS0yMC4xIDYuMS02LjktMS43LTE0LjMtNS44LTE0LjMtMTEuOEw3MC4yIDIwYzAtNSAzLjktMTAuNSAxMC41LTEwLjVMMzIyIDkuNWM4LjMgMCA4LjMgMTEuNiA4LjMgMTUuMSAwIDMuOSAwIDE1LjEtOC4zIDE1LjFsLTIyMy4yIDAgMCAxMzIuOSAuMyAwYzEwNC4yLTEwOS44IDI4Mi44LTM2IDI4Mi44IDEwOC45IDAgMTc4LjEtMjQ0LjggMjIwLjMtMzEwLjEgNjIuOHpNMTM1LjEgODMuNWMtLjUgNC4yIDQuNiAyNC41IDE0LjYgMjAuNiAxMjQuOC00Ny41IDIwMi44IDQwLjQgMjA5LjQgNDAuNCA0LjggMCAyMi44LTE1LjMgMTQuMy0yMi44LTkzLjItODktMjM0LjUtNTctMjM4LjMtMzguMnpNMzYxLjUgNDE0LjdjLTExMCAxMDkuOS0yOTkgNjAuOC0zMzItMTA0LjIgMC0xMi4yLTMwLjQtNy40LTI4LjkgMy4zIDI0IDE3My40IDI0NiAyNTYuOSAzODEuNiAxMjEuMyA2LjktNy44LTEyLjYtMjguNC0yMC43LTIwLjR6TTE4Mi4xIDMwNi42YzAgNCA0LjMgNy4zIDUuNSA4LjUgMyAzIDYuMSA0LjQgOC41IDQuNCAzLjggMCAyLjYgLjIgMjIuMy0xOS41IDE5LjYgMTkuMyAxOS4xIDE5LjUgMjIuMyAxOS41IDUuNCAwIDE4LjUtMTAuNCAxMC43LTE4LjJsLTE3LjMtMTcuMyAxOC4yLTE4LjJjNi4zLTYuOC0xMC4xLTIxLjgtMTYuMi0xNS43TDIxOC4yIDI2OGMtMTguNi0xOC44LTE4LjQtMTkuNS0yMS41LTE5LjUtNSAwLTE4IDExLjctMTIuNCAxNy4zTDIwMi41IDI4NGMtMTguMSAxNy45LTIwLjQgMTkuMi0yMC40IDIyLjZ6Il19LFQ0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhZmZpbGlhdGV0aGVtZSIsaWNvbjpbNTEyLDUxMixbXSwiZjM2YiIsIk0xNTkuNyAyMzcuNEMxMDguNCAzMDguMyA0My4xIDM0OC4yIDE0IDMyNi42LTE1LjIgMzA0LjkgMi44IDIzMCA1NC4yIDE1OS4xIDEwNS41IDg4LjIgMTcwLjggNDguMyAxOTkuOSA2OS45czExLjEgOTYuNi00MC4yIDE2Ny41em0zNTEuMi01Ny4zYy03My44IDEyMy40LTE5MS45IDE4Ny43LTI2NC41IDE0My42LTI1LTE1LjItNDEuMy00MS4yLTQ5LTczLjgtMzMuNiA2NC44LTkyLjggMTEzLjgtMTY0LjEgMTMzLjIgNDkuOCA1OS4zIDEyNC4xIDk2LjkgMjA3IDk2LjkgMTUwIDAgMjcxLjYtMTIzLjEgMjcxLjYtMjc0LjkgLjEtOC41LS4zLTE2LjgtMS0yNXoiXX0sXzR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InJlZC1yaXZlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjNlMyIsIk0zNTMuMiAzMkw5NC44IDMyQzQyLjQgMzIgMCA3NC40IDAgMTI2LjhMMCAzODUuMkMwIDQzNy42IDQyLjQgNDgwIDk0LjggNDgwbDI1OC40IDBjNTIuNCAwIDk0LjgtNDIuNCA5NC44LTk0LjhsMC0yNTguNEM0NDggNzQuNCA0MDUuNiAzMiAzNTMuMiAzMnpNMTQ0LjkgMjAwLjlsMCA1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOWwwLTE1NC4yYzAtMTMuMiAxMC43LTIzLjkgMjMuOS0yMy45bDE1NC4yIDBjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bC01Ni4zIDBjLTEyLjMtLjYtMjQuNiAxMS42LTI0IDI0em0xNzYuMyA3MmwtNTYuMyAwYy0xMi4zLS42LTI0LjYgMTEuNi0yNCAyNGwwIDU2LjNjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45bDAtMTU0LjJjMC0xMy4yIDEwLjctMjMuOSAyMy45LTIzLjlsMTU0LjIgMGMwIDI3LTIxLjkgNDguOS00OC45IDQ4Ljl6Il19LEJBPXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InR3aXR0ZXIiLGljb246WzUxMiw1MTIsW10sImYwOTkiLCJNNDU5LjQgMTUxLjdjLjMgNC41IC4zIDkuMSAuMyAxMy42IDAgMTM4LjctMTA1LjYgMjk4LjYtMjk4LjYgMjk4LjYtNTkuNSAwLTExNC43LTE3LjItMTYxLjEtNDcuMSA4LjQgMSAxNi42IDEuMyAyNS4zIDEuMyA0OS4xIDAgOTQuMi0xNi42IDEzMC4zLTQ0LjgtNDYuMS0xLTg0LjgtMzEuMi05OC4xLTcyLjggNi41IDEgMTMgMS42IDE5LjggMS42IDkuNCAwIDE4LjgtMS4zIDI3LjYtMy42LTQ4LjEtOS43LTg0LjEtNTItODQuMS0xMDNsMC0xLjNjMTQgNy44IDMwLjIgMTIuNyA0Ny40IDEzLjMtMjguMy0xOC44LTQ2LjgtNTEtNDYuOC04Ny40IDAtMTkuNSA1LjItMzcuNCAxNC4zLTUzIDUxLjcgNjMuNyAxMjkuMyAxMDUuMyAyMTYuNCAxMDkuOC0xLjYtNy44LTIuNi0xNS45LTIuNi0yNCAwLTU3LjggNDYuOC0xMDQuOSAxMDQuOS0xMDQuOSAzMC4yIDAgNTcuNSAxMi43IDc2LjcgMzMuMSAyMy43LTQuNSA0Ni41LTEzLjMgNjYuNi0yNS4zLTcuOCAyNC40LTI0LjQgNDQuOC00Ni4xIDU3LjggMjEuMS0yLjMgNDEuNi04LjEgNjAuNC0xNi4yLTE0LjMgMjAuOC0zMi4yIDM5LjMtNTIuNiA1NC4zeiJdfSxMNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZm9ydC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFtdLCJmMjg2IiwiTTQ4OS41IDI4Ny45bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi42IDAgMC0xNzguM2MwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTIuNi0yLTQuNi00LjYtNC42bC0yNy40IDBjLTIuNiAwLTQuNiAyLTQuNiA0LjZsMCAzMi0zNi42IDAgMC0zMmMwLTYtOC00LjYtMTEuNy00LjZsMC0zOGM4LjMtMiAxNy4xLTMuNCAyNS43LTMuNCAxMC45IDAgMjAuOSA0LjMgMzEuNCA0LjMgNC42IDAgMjcuNy0xLjEgMjcuNy04bDAtNjBjMC0yLjYtMi00LjYtNC42LTQuNi01LjEgMC0xNS4xIDQuMy0yNCA0LjMtOS43IDAtMjAuOS00LjMtMzIuNi00LjMtOCAwLTE2IDEuMS0yMy43IDIuOWwwLTQuOWM1LjQtMi42IDkuMS04LjMgOS4xLTE0LjMgMC0yMC43LTMxLjQtMjAuOC0zMS40IDAgMCA2IDMuNyAxMS43IDkuMSAxNC4zbDAgMTExLjdjLTMuNyAwLTExLjctMS40LTExLjcgNC42bDAgMzItMzYuNiAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMzItMzYuMyAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMTc4LjMtMzYuNiAwIDAtMzJjMC0yLjYtMi00LjYtNC42LTQuNmwtMjcuNCAwYy0yLjYgMC00LjYgMi00LjYgNC42bDAgMjE5LjUgMTgyLjkgMCAwLTk2YzAtNzIuNiAxMDkuNy03Mi42IDEwOS43IDBsMCA5NiAxODIuOSAwIDAtMjE5LjVjLjEtMi42LTEuOS00LjYtNC41LTQuNnptLTI4OC4xLTQuNWMwIDIuNi0yIDQuNi00LjYgNC42bC0yNy40IDBjLTIuNiAwLTQuNi0yLTQuNi00LjZsMC02NGMwLTIuNiAyLTQuNiA0LjYtNC42bDI3LjQgMGMyLjYgMCA0LjYgMiA0LjYgNC42bDAgNjR6bTE0Ni40IDBjMCAyLjYtMiA0LjYtNC42IDQuNmwtMjcuNCAwYy0yLjYgMC00LjYtMi00LjYtNC42bDAtNjRjMC0yLjYgMi00LjYgNC42LTQuNmwyNy40IDBjMi42IDAgNC42IDIgNC42IDQuNmwwIDY0eiJdfSxBNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWl4ZXIiLGljb246WzQ0OCw1MTIsW10sImUwNTYiLCJNODIuNiA3Ni4xYy0zLjgtNS4xLTguNy05LjQtMTQuMi0xMi41cy0xMS43LTUuMS0xOC4xLTUuNy0xMi44IC4xLTE4LjggMi4yLTExLjYgNS4zLTE2LjMgOS42Yy0xNy42IDE2LjItMTkgNDMuNS00LjggNjIuOGw5MS44IDEyMy05Mi4zIDEyNC4xYy0xNC4yIDE5LjMtMTMuMSA0Ni42IDQuNyA2Mi44IDQuNyA0LjMgMTAuMyA3LjYgMTYuMyA5LjZzMTIuNSAyLjggMTguOCAyLjIgMTIuNS0yLjUgMTguMS01LjcgMTAuNC03LjQgMTQuMi0xMi41TDIxMC45IDI2Mi43YzEuNS0yLjEgMi4zLTQuNiAyLjMtNy4xcy0uOC01LTIuMy03LjFMODIuNiA3Ni4xek00MzguMiAzNzkuNmwtOTIuMy0xMjQuMSA5MS44LTEyM2MxNC4yLTE5LjIgMTIuOC00Ni42LTQuNy02Mi44LTQuNy00LjMtMTAuMy03LjYtMTYuMy05LjZzLTEyLjUtMi44LTE4LjgtMi4yLTEyLjUgMi41LTE4LjEgNS43LTEwLjQgNy40LTE0LjIgMTIuNWwtMTI4IDE3Mi4xYy0xLjUgMi4xLTIuMyA0LjYtMi4zIDcuMXMuOCA1IDIuMyA3LjFMMzY2IDQzNS45YzMuOCA1LjEgOC43IDkuNCAxNC4yIDEyLjVzMTEuNyA1LjEgMTguMSA1LjcgMTIuOC0uMSAxOC44LTIuMiAxMS42LTUuMyAxNi4zLTkuNmMxNy44LTE2LjIgMTktNDMuNSA0LjctNjIuOHoiXX0sRDR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imx5ZnQiLGljb246WzUxMiw1MTIsW10sImYzYzMiLCJNMCA4MS4xbDc3LjggMCAwIDIwOC43YzAgMzMuMSAxNSA1Mi44IDI3LjIgNjEtMTIuNyAxMS4xLTUxLjIgMjAuOS04MC4yLTIuOC0xNy0xNC0yNC44LTM3LjMtMjQuOC01OUwwIDgxLjF6TTQ4NS45IDI1NC42bDAtMjIgMjMuOCAwIDAtNzYuOC0yNi4xIDBjLTEwLjEtNDYuMy01MS4yLTgwLjctMTAwLjMtODAuNy01Ni42IDAtMTAyLjcgNDYtMTAyLjcgMTAyLjdsMCAxNzkuMmMxNiAyLjMgMzUuNC0uMyA1MS43LTE0IDE3LjEtMTQgMjQuOC0zNy4yIDI0LjgtNTlsMC02LjcgMzguOCAwIDAtNzYuOC0zOC44IDAgMC0yMy4zYzAtMzQuNiA1Mi4yLTM0LjYgNTIuMiAwbDAgNzcuMWMwIDU2LjYgNDYgMTAyLjcgMTAyLjcgMTAyLjdsMC03Ni41Yy0xNC41IDAtMjYuMS0xMS43LTI2LjEtMjUuOXptLTI5NC4zLTk5bDAgMTEzYzAgMTUuNC0yMy44IDE1LjQtMjMuOCAwbDAtMTEzLTc2LjggMCAwIDEzMi43YzAgMjMuOCA4IDU0IDQ1IDYzLjkgMzcgOS44IDU4LjItMTAuNiA1OC4yLTEwLjYtMi4xIDEzLjQtMTQuNSAyMy4zLTM0LjkgMjUuMy0xNS41IDEuNi0zNS4yLTMuNi00NS03LjhsMCA3MC4zYzI1LjEgNy41IDUxLjUgOS44IDc3LjYgNC43IDQ3LjEtOS4xIDc2LjgtNDguNCA3Ni44LTEwMC44bDAtMTc4LjItNzcuMSAwIDAgLjV6Il19LEU0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhcHBsZS1wYXkiLGljb246WzY0MCw1MTIsW10sImY0MTUiLCJNMTE2LjkgMTU4LjVjLTcuNSA4LjktMTkuNSAxNS45LTMxLjUgMTQuOS0xLjUtMTIgNC40LTI0LjggMTEuMy0zMi42IDcuNS05LjEgMjAuNi0xNS42IDMxLjMtMTYuMSAxLjIgMTIuNC0zLjcgMjQuNy0xMS4xIDMzLjh6bTEwLjkgMTcuMmMtMTcuNC0xLTMyLjMgOS45LTQwLjUgOS45LTguNCAwLTIxLTkuNC0zNC44LTkuMS0xNy45IC4zLTM0LjUgMTAuNC00My42IDI2LjUtMTguOCAzMi4zLTQuOSA4MCAxMy4zIDEwNi4zIDguOSAxMyAxOS41IDI3LjMgMzMuNSAyNi44IDEzLjMtLjUgMTguNS04LjYgMzQuNS04LjYgMTYuMSAwIDIwLjggOC42IDM0LjggOC40IDE0LjUtLjMgMjMuNi0xMyAzMi41LTI2IDEwLjEtMTQuOCAxNC4zLTI5LjEgMTQuNS0yOS45LS4zLS4zLTI4LTEwLjktMjguMy00Mi45LS4zLTI2LjggMjEuOS0zOS41IDIyLjktNDAuMy0xMi41LTE4LjYtMzItMjAuNi0zOC44LTIxLjF6bTEwMC40LTM2LjJsMCAxOTQuOSAzMC4zIDAgMC02Ni42IDQxLjkgMGMzOC4zIDAgNjUuMS0yNi4zIDY1LjEtNjQuM3MtMjYuNC02NC02NC4xLTY0bC03My4yIDB6TTI1OC41IDE2NWwzNC45IDBjMjYuMyAwIDQxLjMgMTQgNDEuMyAzOC42cy0xNSAzOC44LTQxLjQgMzguOGwtMzQuOCAwIDAtNzcuNHpNNDIwLjcgMzM1LjljMTkgMCAzNi42LTkuNiA0NC42LTI0LjlsLjYgMCAwIDIzLjQgMjggMCAwLTk3YzAtMjguMS0yMi41LTQ2LjMtNTcuMS00Ni4zLTMyLjEgMC01NS45IDE4LjQtNTYuOCA0My42bDI3LjMgMGMyLjMtMTIgMTMuNC0xOS45IDI4LjYtMTkuOSAxOC41IDAgMjguOSA4LjYgMjguOSAyNC41bDAgMTAuOC0zNy44IDIuM2MtMzUuMSAyLjEtNTQuMSAxNi41LTU0LjEgNDEuNSAuMSAyNS4yIDE5LjcgNDIgNDcuOCA0MnptOC4yLTIzLjFjLTE2LjEgMC0yNi40LTcuOC0yNi40LTE5LjYgMC0xMi4zIDkuOS0xOS40IDI4LjgtMjAuNWwzMy42LTIuMSAwIDExYzAgMTguMi0xNS41IDMxLjItMzYgMzEuMnptMTAyLjUgNzQuNmMyOS41IDAgNDMuNC0xMS4zIDU1LjUtNDUuNGw1My4xLTE0OS0zMC44IDAtMzUuNiAxMTUuMS0uNiAwLTM1LjYtMTE1LjEtMzEuNiAwIDUxLjIgMTQxLjktMi44IDguNmMtNC42IDE0LjYtMTIuMSAyMC4zLTI1LjUgMjAuMy0yLjQgMC03LS4zLTguOS0uNWwwIDIzLjRjMS44IC40IDkuMyAuNyAxMS42IC43eiJdfSwkNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXJ0c3RhdGlvbiIsaWNvbjpbNTEyLDUxMixbXSwiZjc3YSIsIk0yLjEgMzc3LjRsNDMgNzQuM2M0LjMgOC41IDEwLjggMTUuNyAxOC45IDIwLjdzMTcuNCA3LjYgMjcgNy42bDI4NS40IDAtNTkuMi0xMDIuNi0zMTUuMSAwek01MDEuOSAzNTBMMzM1LjcgNTkuM2MtNC40LTguMi0xMC45LTE1LjEtMTguOS0yMFMyOTkuNyAzMiAyOTAuNCAzMmwtODguNCAwIDI1Ny4zIDQ0Ny42IDQwLjctNzAuNWMxLjktMy4yIDIxLTI5LjcgMi01OS4xek0yNzUuMiAzMDQuNWwtMTE1LjUtMjAwLTExNS41IDIwMCAyMzEgMHoiXX0sSTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5vZGUtanMiLGljb246WzQ0OCw1MTIsW10sImYzZDMiLCJNMjI0LjUgNTA4Yy02LjcgMC0xMy41LTEuOC0xOS40LTUuMmwtNjEuNy0zNi41Yy05LjItNS4yLTQuNy03LTEuNy04IDEyLjMtNC4zIDE0LjgtNS4yIDI3LjktMTIuNyAxLjQtLjggMy4yLS41IDQuNiAuNGw0Ny40IDI4LjFjMS43IDEgNC4xIDEgNS43IDBMNDEyIDM2Ny41YzEuNy0xIDIuOC0zIDIuOC01bDAtMjEzLjJjMC0yLjEtMS4xLTQtMi45LTUuMUwyMjcuMyAzNy43Yy0xLjctMS00LTEtNS43IDBMMzcuMSAxNDQuM2MtMS44IDEtMi45IDMtMi45IDUuMWwwIDIxMy4xYzAgMiAxLjEgNCAyLjkgNC45bDUwLjYgMjkuMmMyNy41IDEzLjcgNDQuMy0yLjQgNDQuMy0xOC43bDAtMjEwLjRjMC0zIDIuNC01LjMgNS40LTUuM2wyMy40IDBjMi45IDAgNS40IDIuMyA1LjQgNS4zbDAgMjEwLjVjMCAzNi42LTIwIDU3LjYtNTQuNyA1Ny42LTEwLjcgMC0xOS4xIDAtNDIuNS0xMS42TDIwLjYgMzk2LjFjLTEyLTYuOS0xOS40LTE5LjgtMTkuNC0zMy43bDAtMjEzLjFjMC0xMy44IDcuNC0yNi44IDE5LjQtMzMuN0wyMDUuMSA5YzExLjctNi42IDI3LjItNi42IDM4LjggMEw0MjguNiAxMTUuN2MxMiA2LjkgMTkuNCAxOS44IDE5LjQgMzMuN2wwIDIxMy4xYzAgMTMuOC03LjQgMjYuNy0xOS40IDMzLjdMMjQzLjkgNTAyLjhjLTUuOSAzLjQtMTIuNiA1LjItMTkuNCA1LjJ6TTM3My42IDI5Ny45YzAtMzkuOS0yNy01MC41LTgzLjctNTgtNTcuNC03LjYtNjMuMi0xMS41LTYzLjItMjQuOSAwLTExLjEgNC45LTI1LjkgNDcuNC0yNS45IDM3LjkgMCA1MS45IDguMiA1Ny43IDMzLjggLjUgMi40IDIuNyA0LjIgNS4yIDQuMmwyNCAwYzEuNSAwIDIuOS0uNiAzLjktMS43czEuNS0yLjYgMS40LTQuMWMtMy43LTQ0LjEtMzMtNjQuNi05Mi4yLTY0LjYtNTIuNyAwLTg0LjEgMjIuMi04NC4xIDU5LjUgMCA0MC40IDMxLjMgNTEuNiA4MS44IDU2LjYgNjAuNSA1LjkgNjUuMiAxNC44IDY1LjIgMjYuNyAwIDIwLjYtMTYuNiAyOS40LTU1LjUgMjkuNC00OC45IDAtNTkuNi0xMi4zLTYzLjItMzYuNi0uNC0yLjYtMi42LTQuNS01LjMtNC41bC0yMy45IDBjLTMgMC01LjMgMi40LTUuMyA1LjMgMCAzMS4xIDE2LjkgNjguMiA5Ny44IDY4LjIgNTguNC0uMSA5Mi0yMy4yIDkyLTYzLjR6Il19LFA0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bmNoYXJ0ZWQiLGljb246WzQ0OCw1MTIsW10sImUwODQiLCJNMTcxLjggMjMyLjhjMS4xIDAgMi4xLS4zIDMtLjlzMS42LTEuNCAyLTIuNGMyLjItOS44IDcuNC0xOC42IDE0LjktMjUuMyAxLjItLjggMS43LTIuNSAxLjctNC4xLS4xLS43LS4zLTEuMy0uNi0xLjlzLS45LTEuMS0xLjQtMS40TDc0LjUgMTI4LjUgMTQ5LjEgODVjMS41LS44IDIuNy0yIDMuNi0zLjVzMS40LTMuMSAxLjQtNC44YzAtMS43LS40LTMuNC0xLjMtNC45cy0yLjItMi43LTMuNy0zLjRMMTI2LjcgNTUuNmMtMS41LS44LTMuMS0xLjItNC44LTEuMnMtMy4zIC40LTQuOCAxLjJMMTcgMTEzLjZjLTEuNSAuOC0yLjcgMi0zLjYgMy41cy0xLjQgMy4xLTEuNCA0LjhMMTIgMjM3YzAgMS43IC40IDMuNCAxLjMgNC45czIuMiAyLjcgMy43IDMuNGwyMi40IDEyLjhjMS41IC45IDMuMiAxLjMgNSAxLjIgMi40IC4xIDQuOC0uOCA2LjYtMi41IDEuOC0xLjkgMi44LTQuNCAyLjktN2wwLTg1LjMgMTE1LjkgNjcuOWMuNiAuMyAxLjQgLjQgMi4xIC40ek0zMjMuNCAzNzcuN2MtMS43IC4xLTMuNCAuNS01IDEuMmwtNzQuNSA0My4xIDAtMTM0LjJjMC0yLjktMi45LTUuOC02LjItNC42LTkuNCAyLjgtMTkuNSAzLTI5IC40LS43LS4yLTEuNS0uMi0yLjItLjFzLTEuNCAuNC0yIC45LTEuMSAxLTEuNCAxLjctLjUgMS40LS41IDIuMWwwIDEzMy4zLTc0LjUtNDMuMWMtMS41LS45LTMuMi0xLjMtNS0xLjItMi41IDAtNC45IDEtNi43IDIuOHMtMi44IDQuMi0yLjggNi43bDAgMjYuMWMwIDEuNyAuNCAzLjQgMS4zIDQuOXMyLjIgMi43IDMuNyAzLjRsMTAwLjIgNTcuNmMxLjUgLjkgMy4yIDEuMyA1IDEuMiAxLjcgMCAzLjQtLjQgNS0xLjJsMTAwLjItNTcuNmMxLjUtLjggMi43LTIgMy42LTMuNXMxLjQtMy4xIDEuNC00LjhsMC0yNi4xYy0uOC00LjYtNS40LTkuMS0xMC40LTkuMXpNMjg2LjEgNzhhMjMgMjMgMCAxIDAgMC00NiAyMyAyMyAwIDEgMCAwIDQ2em02My42LTEwLjFhMjMgMjMgMCAxIDAgMCA0NiAyMyAyMyAwIDEgMCAwLTQ2em02My4yIDgzLjdhMjMgMjMgMCAxIDAgMC00NiAyMyAyMyAwIDEgMCAwIDQ2em0tNjMuMi05LjJhMjMgMjMgMCAxIDAgMCA0NiAyMyAyMyAwIDEgMCAwLTQ2em0tNjMuNiA4My4yYzQuNSAwIDktMS4zIDEyLjgtMy45czYuNy02LjEgOC41LTEwLjMgMi4yLTguOCAxLjMtMTMuMy0zLjEtOC42LTYuMy0xMS44LTcuMy01LjQtMTEuOC02LjMtOS4xLS40LTEzLjMgMS4zLTcuOCA0LjctMTAuMyA4LjUtMy45IDguMi0zLjkgMTIuOGMwIDMgLjYgNiAxLjggOC44czIuOSA1LjMgNSA3LjUgNC43IDMuOCA3LjUgNSA1LjggMS44IDguOCAxLjhsMCAwek0yMjQgMjYyYzQuNSAwIDktMS40IDEyLjgtMy45czYuNy02LjEgOC41LTEwLjMgMi4yLTguOCAxLjMtMTMuMy0zLjEtOC42LTYuMy0xMS44LTcuMy01LjQtMTEuOC02LjMtOS4xLS40LTEzLjMgMS4zLTcuOCA0LjctMTAuMyA4LjUtMy45IDguMi0zLjkgMTIuOGMwIDMgLjYgNiAxLjcgOC44czIuOCA1LjMgNSA3LjUgNC43IDMuOCA3LjUgNSA1LjggMS44IDguOCAxLjhsMCAwem0xODguOS04Mi40Yy00LjYgMC05IDEuMy0xMi44IDMuOXMtNi43IDYuMS04LjUgMTAuMy0yLjIgOC44LTEuMyAxMy4zIDMuMSA4LjYgNi4zIDExLjggNy4zIDUuNCAxMS44IDYuMyA5LjEgLjQgMTMuMy0xLjMgNy44LTQuNyAxMC4zLTguNSAzLjktOC4yIDMuOS0xMi44YzAtNi4xLTIuNC0xMS45LTYuNy0xNi4zcy0xMC4yLTYuNy0xNi4zLTYuN2wwIDB6bTAgNzIuM2MtNC42IDAtOSAxLjMtMTIuOCAzLjlzLTYuNyA2LjEtOC41IDEwLjMtMi4yIDguOC0xLjMgMTMuMyAzLjEgOC42IDYuMyAxMS44IDcuMyA1LjQgMTEuOCA2LjMgOS4xIC40IDEzLjMtMS4zIDcuOC00LjcgMTAuMy04LjUgMy45LTguMiAzLjktMTIuOGMwLTYuMS0yLjQtMTEuOS02LjctMTYuM3MtMTAuMi02LjctMTYuMy02LjdsMCAweiJdfSxONHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGxheXN0YXRpb24iLGljb246WzU3Niw1MTIsW10sImYzZGYiLCJNNTcxIDM3Mi4zYy0xMS4zIDE0LjItMzguOCAyNC4zLTM4LjggMjQuM2wtMjA1LjEgNzMuNiAwLTU0LjMgMTUwLjktNTMuOGMxNy4xLTYuMSAxOS44LTE0LjggNS44LTE5LjQtMTMuOS00LjYtMzkuMS0zLjMtNTYuMiAyLjlsLTEwMC41IDM1LjUgMC01Ni40YzIzLjItNy44IDQ3LjEtMTMuNiA3NS43LTE2LjggNDAuOS00LjUgOTAuOSAuNiAxMzAuMiAxNS41IDQ0LjIgMTQgNDkuMiAzNC43IDM4IDQ4Ljl6TTM0Ni42IDI3OS44bDAtMTM5YzAtMTYuMy0zLTMxLjMtMTguMy0zNS42LTExLjctMy44LTE5IDcuMS0xOSAyMy40bDAgMzQ3LjktOTMuOC0yOS44IDAtNDE0LjdjMzkuOSA3LjQgOTggMjQuOSAxMjkuMiAzNS40IDc5LjUgMjcuMyAxMDYuNCA2MS4zIDEwNi40IDEzNy44IDAgNzQuNS00NiAxMDIuOC0xMDQuNSA3NC42ek00My4zIDQxMC4yYy00NS40LTEyLjgtNTMtMzkuNS0zMi4zLTU0LjggMTkuMS0xNC4yIDUxLjctMjQuOSA1MS43LTI0LjlsMTM0LjUtNDcuOCAwIDU0LjUtOTYuOCAzNC42Yy0xNy4xIDYuMS0xOS43IDE0LjgtNS44IDE5LjRzMzkuMSAzLjMgNTYuMi0yLjlsNDYuNC0xNi45IDAgNDguOGMtNTEuNiA5LjMtMTAxLjQgNy4zLTE1My45LTEweiJdfSxGNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibWljcm9ibG9nIixpY29uOls0NDgsNTEyLFtdLCJlMDFhIiwiTTM5OS44IDM2Mi4yYzI5LjUtMzQuNyA0Ny4xLTc4LjMgNDcuMS0xMjUuOCAwLTExMy05OS42LTIwNC40LTIyMi41LTIwNC40UzIgMTIzLjUgMiAyMzYuNCAxMDEuNiA0NDAuOSAyMjQuNSA0NDAuOWMyNyAwIDUzLjktNC41IDc5LjQtMTMuNCAxLjQtLjUgMy0uNSA0LjUtLjFzMi43IDEuNCAzLjYgMi42YzE4LjYgMjUuMSA0Ny42IDQyLjcgNzkuOSA0OS45IDEuMSAuMiAyLjMgMCAzLjMtLjZzMS43LTEuNiAxLjktMi44Yy4xLS42IC4xLTEuMyAwLTEuOXMtLjQtMS4yLS44LTEuN2MtMTIuMy0xNi0xOC43LTM1LjgtMTgtNTZzOC40LTM5LjUgMjEuNy01NC43bC0uMiAuMXpNMzMwIDIxMi40bC01Ny4zIDQzLjUgMjAuOCA2OC45Yy40IDEuMyAuNCAyLjctLjEgNHMtMS4yIDIuNC0yLjMgMy4yLTIuNCAxLjItMy44IDEuMi0yLjctLjQtMy44LTEuMmwtNTkuMS00MS01OS4xIDQxLjFjLTEuMSAuOC0yLjQgMS4yLTMuOCAxLjJzLTIuNy0uNC0zLjgtMS4yLTEuOS0xLjktMi4zLTMuMi0uNS0yLjctLjEtNGwyMC44LTY4LjktNTcuMy00My41Yy0xLjEtLjgtMS45LTEuOS0yLjMtMy4ycy0uNC0yLjcgMC00IDEuMi0yLjQgMi4zLTMuMiAyLjQtMS4zIDMuNy0xLjNsNzEuOS0xLjUgMjMuNy02Ny45Yy40LTEuMyAxLjMtMi40IDIuNC0zLjJzMi40LTEuMiAzLjgtMS4yIDIuNyAuNCAzLjggMS4yIDEuOSAxLjkgMi40IDMuMmwyMy43IDY3LjkgNzEuOSAxLjVjMS40IDAgMi43IC40IDMuOCAxLjJzMS45IDEuOSAyLjMgMy4yIC40IDIuNyAwIDQtMS4yIDIuNC0yLjMgMy4zbDAgMHoiXX0sTzR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdpdGtyYWtlbiIsaWNvbjpbNTc2LDUxMixbXSwiZjNhNiIsIk01NTcuNyAxMTguMWMtMi4zLTYuMS05LjMtOS4yLTE1LjMtNi42LTUuNyAyLjQtOC41IDguOS02LjMgMTQuNiAxMC45IDI5IDE2LjkgNjAuNSAxNi45IDkzLjMgMCAxMzQuNi0xMDAuMyAyNDUuNy0yMzAuMiAyNjIuN2wwLTEyMy43YzcuOS0xLjUgMTUuNS0zLjYgMjMtNi4ybDAgMTA0YzEwNi43LTI1LjkgMTg1LjktMTIyLjEgMTg1LjktMjM2LjggMC05MS44LTUwLjgtMTcxLjgtMTI1LjgtMjEzLjMtNS43LTMuMi0xMy0uOS0xNS45IDUtMi43IDUuNS0uNiAxMi4yIDQuNyAxNS4xIDY3LjkgMzcuNiAxMTMuOSAxMTAgMTEzLjkgMTkzLjIgMCA5My4zLTU3LjkgMTczLjEtMTM5LjggMjA1LjRsMC05Mi4yYzE0LjItNC41IDI0LjktMTcuNyAyNC45LTMzLjUgMC0xMy4xLTYuOC0yNC40LTE3LjMtMzAuNSA4LjMtNzkuNSA0NC41LTU4LjYgNDQuNS04My45bDAtMTQuN2MwLTM4LTg3LjktMTYxLjgtMTI5LTE2NC43LTIuNS0uMi01LS4yLTcuNiAwLTQxLjIgMy0xMjkuMSAxMjYuNy0xMjkuMSAxNjQuN2wwIDE0LjhjMCAyNS4zIDM2LjMgNC4zIDQ0LjUgODMuOS0xMC42IDYuMS0xNy4zIDE3LjQtMTcuMyAzMC41IDAgMTUuOCAxMC42IDI5IDI0LjggMzMuNWwwIDkyLjJjLTgxLjktMzIuMi0xMzkuOC0xMTItMTM5LjgtMjA1LjQgMC04My4xIDQ2LTE1NS41IDExMy45LTE5My4yIDUuNC0zIDcuNC05LjYgNC43LTE1LjEtMi45LTUuOS0xMC4xLTguMi0xNS45LTUtNzUgNDEuNS0xMjUuOCAxMjEuNS0xMjUuOCAyMTMuMyAwIDExNC43IDc5LjIgMjEwLjggMTg1LjkgMjM2LjhsMC0xMDRjNy42IDIuNSAxNS4xIDQuNiAyMyA2LjJsMCAxMjMuN2MtMTI5LjgtMTctMjMwLjItMTI4LjEtMjMwLjItMjYyLjcgMC0zMi44IDYtNjQuMyAxNi45LTkzLjMgMi4yLTUuOC0uNi0xMi4yLTYuMy0xNC42LTYtMi42LTEzIC40LTE1LjMgNi42LTExLjggMzEuNS0xOC4zIDY1LjYtMTguMyAxMDEuMyAwIDE1NS4xIDEyMi42IDI4MS42IDI3Ni4zIDI4Ny44bDAtMTQ1LjljNi44IC40IDE1IC41IDIzLjQgMGwwIDE0NS44YzE1My43LTYuMSAyNzYuMy0xMzIuNiAyNzYuMy0yODcuNyAwLTM1LjctNi41LTY5LjgtMTguMy0xMDEuNHpNMzU3LjkgMzIyLjlhMjMuNyAyMy43IDAgMSAxIDAtNDcuNCAyMy43IDIzLjcgMCAxIDEgMCA0Ny40ek0yMTguMSAyNzUuNGEyMy43IDIzLjcgMCAxIDEgMCA0Ny40IDIzLjcgMjMuNyAwIDEgMSAwLTQ3LjR6Il19LG1uZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ0ZWxlZ3JhbSIsaWNvbjpbNTEyLDUxMixbNjI0NjIsInRlbGVncmFtLXBsYW5lIl0sImYyYzYiLCJNMjU2IDhhMjQ4IDI0OCAwIDEgMCAwIDQ5NiAyNDggMjQ4IDAgMSAwIDAtNDk2ek0zNzEgMTc2LjdjLTMuNyAzOS4yLTE5LjkgMTM0LjQtMjguMSAxNzguMy0zLjUgMTguNi0xMC4zIDI0LjgtMTYuOSAyNS40LTE0LjQgMS4zLTI1LjMtOS41LTM5LjMtMTguNy0yMS44LTE0LjMtMzQuMi0yMy4yLTU1LjMtMzcuMi0yNC41LTE2LjEtOC42LTI1IDUuMy0zOS41IDMuNy0zLjggNjcuMS02MS41IDY4LjMtNjYuNyAuMi0uNyAuMy0zLjEtMS4yLTQuNHMtMy42LS44LTUuMS0uNWMtMi4yIC41LTM3LjEgMjMuNS0xMDQuNiA2OS4xLTkuOSA2LjgtMTguOSAxMC4xLTI2LjkgOS45LTguOS0uMi0yNS45LTUtMzguNi05LjEtMTUuNS01LTI3LjktNy43LTI2LjgtMTYuMyAuNi00LjUgNi43LTkgMTguNC0xMy43IDcyLjMtMzEuNSAxMjAuNS01Mi4zIDE0NC42LTYyLjMgNjguOS0yOC42IDgzLjItMzMuNiA5Mi41LTMzLjggMi4xIDAgNi42IC41IDkuNiAyLjkgMiAxLjcgMy4yIDQuMSAzLjUgNi43IC41IDMuMiAuNiA2LjUgLjQgOS44eiJdfSxSNHQ9bW5lLEI0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ1bHRyYWx5dGljcyIsaWNvbjpbNTEyLDUxMixbXSwiZTg2ZCIsIk0zOTEuNCAzOS43YzY1LjgtLjIgMTE4LjYgNTEuOCAxMjAuNCAxMTYuNiAuNyAyNi40LTEuNSA1NC4xLTMuOCA3NC4xLTE3LjIgMTQ4LjYtMTIyLjQgMjQyLTI1Mi40IDI0Mi05NS40LS4xLTE3OS40LTUyLjctMjIzLjItMTMwLjYgMjQuNCAxNy40IDU0LjUgMjcuNCA4Ny42IDI3LjQgODMuMiAuMSAxNTEuNC02Ny40IDE1MS4yLTE1MGwuMS02MC42Yy0uMi02NS43IDUzLjktMTE5IDEyMC4xLTExOC45ek0xMTkuOSAxMDAuMmM2Ni4yIDAgMTE5LjkgNTMuMyAxMTkuOSAxMTlTMTg2LjEgMzM4LjMgMTE5LjkgMzM4LjMgMCAyODUgMCAyMTkuM2MwLTY1LjcgNTMuNy0xMTkgMTE5LjktMTE5eiJdfSxINHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiaXR1bmVzLW5vdGUiLGljb246WzM4NCw1MTIsW10sImYzYjUiLCJNMzgxLjkgMzg4LjJjLTYuNCAyNy40LTI3LjIgNDIuOC01NS4xIDQ4LTI0LjUgNC41LTQ0LjkgNS42LTY0LjUtMTAuMi0yMy45LTIwLjEtMjQuMi01My40LTIuNy03NC40IDE3LTE2LjIgNDAuOS0xOS41IDc2LjgtMjUuOCA2LTEuMSAxMS4yLTIuNSAxNS42LTcuNCA2LjQtNy4yIDQuNC00LjEgNC40LTE2My4yIDAtMTEuMi01LjUtMTQuMy0xNy0xMi4zLTguMiAxLjQtMTg1LjcgMzQuNi0xODUuNyAzNC42LTEwLjIgMi4yLTEzLjQgNS4yLTEzLjQgMTYuNyAwIDIzNC43IDEuMSAyMjMuOS0yLjUgMjM5LjUtNC4yIDE4LjItMTUuNCAzMS45LTMwLjIgMzkuNS0xNi44IDkuMy00Ny4yIDEzLjQtNjMuNCAxMC40LTQzLjItOC4xLTU4LjQtNTgtMjkuMS04Ni42IDE3LTE2LjIgNDAuOS0xOS41IDc2LjgtMjUuOCA2LTEuMSAxMS4yLTIuNSAxNS42LTcuNCAxMC4xLTExLjUgMS44LTI1Ni42IDUuMi0yNzAuMiAuOC01LjIgMy05LjYgNy4xLTEyLjkgNC4yLTMuNSAxMS44LTUuNSAxMy40LTUuNSAyMDQtMzguMiAyMjguOS00My4xIDIzMi40LTQzLjEgMTEuNS0uOCAxOC4xIDYgMTguMSAxNy42IC4yIDM0NC41IDEuMSAzMjYtMS44IDMzOC41eiJdfSxxNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGVzcyIsaWNvbjpbNjQwLDUxMixbXSwiZjQxZCIsIk02MTMuMiAyMTljMC0yMC41IDMuMi0zMi42IDMuMi01NC42IDAtMzQuMi0xMi42LTQ1LjItNDAuNS00NS4ybC0yMC41IDAgMCAyNC4yIDYuMyAwYzE0LjIgMCAxNy4zIDQuNyAxNy4zIDIyLjEgMCAxNi4zLTEuNiAzMi42LTEuNiA1MS41IDAgMjQuMiA3LjkgMzMuNiAyMy42IDM3LjNsMCAxLjZjLTE1LjggMy43LTIzLjYgMTMuMS0yMy42IDM3LjMgMCAxOC45IDEuNiAzNC4yIDEuNiA1MS41IDAgMTcuOS0zLjcgMjIuNi0xNy4zIDIyLjZsMCAuNS02LjMgMCAwIDI1LjIgMjAuNSAwYzI3LjggMCA0MC41LTExIDQwLjUtNDUuMiAwLTIyLjYtMy4yLTM0LjItMy4yLTU0LjYgMC0xMSA2LjgtMjIuNiAyNy4zLTIzLjZsMC0yNy4zYy0yMC41LS43LTI3LjMtMTIuMy0yNy4zLTIzLjN6TTUwNy42IDI1MWMtMTUuOC02LjMtMzAuNS0xMC0zMC41LTIwLjUgMC03LjkgNi4zLTEyLjYgMTcuOS0xMi42czIyLjEgNC43IDMzLjYgMTMuMWwyMS0yNy44Yy0xMy4xLTEwLTMxLTIwLjUtNTUuMi0yMC41LTM1LjcgMC01OS45IDIwLjUtNTkuOSA0OS40IDAgMjUuNyAyMi42IDM4LjkgNDEuNSA0Ni4yIDE2LjMgNi4zIDMyLjEgMTEuNiAzMi4xIDIyLjEgMCA3LjktNi4zIDEzLjEtMjAuNSAxMy4xLTEzLjEgMC0yNi4zLTUuMy00MC41LTE2LjNsLTIxIDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MXMtMjIuNS00MS00My00Ny44ek0xNDguNyAzMTAuNGMtMy43IDAtOC40LTMuMi04LjQtMTMuMWwwLTE3OC4yLTc0LjYgMGMtMjguNCAwLTQxIDExLTQxIDQ1LjIgMCAyMi42IDMuMiAzNS4yIDMuMiA1NC42IDAgMTEtNi44IDIyLjYtMjcuMyAyMy42bDAgMjcuM2MyMC41IC41IDI3LjMgMTIuMSAyNy4zIDIzLjEgMCAxOS40LTMuMiAzMS0zLjIgNTMuNiAwIDM0LjIgMTIuNiA0NS4yIDQwLjUgNDUuMmwyMC41IDAgMC0yNC4yLTYuMyAwYy0xMy4xIDAtMTcuMy01LjMtMTcuMy0yMi42czEuNi0zMi4xIDEuNi01MS41YzAtMjQuMi03LjktMzMuNi0yMy42LTM3LjNsMC0xLjZjMTUuOC0zLjcgMjMuNi0xMy4xIDIzLjYtMzcuMyAwLTE4LjktMS42LTM0LjItMS42LTUxLjVzMy43LTIyLjEgMTcuMy0yMi4xbDE0LjEgMCAwIDE1MC44YzAgMzIuMSAxMSA1My4xIDQzLjEgNTMuMSAxMCAwIDE3LjktMS42IDIzLjYtMy43bC01LjMtMzQuMmMtMy4xIC44LTQuNiAuOC02LjIgLjh6TTM4MC40IDI1MWMtMTYuMy02LjMtMzEtMTAtMzEtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjZzMjIuMSA0LjcgMzMuNiAxMy4xbDIxLTI3LjhjLTEzLjEtMTAtMzEtMjAuNS01NS4yLTIwLjUtMzUuNyAwLTU5LjkgMjAuNS01OS45IDQ5LjQgMCAyNS43IDIyLjYgMzguOSA0MS41IDQ2LjIgMTYuMyA2LjMgMzIuMSAxMS42IDMyLjEgMjIuMSAwIDcuOS02LjMgMTMuMS0yMC41IDEzLjEtMTMuMSAwLTI2LjMtNS4zLTQwLjUtMTYuM2wtMjAuNSAzMC41YzE1LjggMTMuMSAzOS45IDIyLjEgNTkuOSAyMi4xIDQyIDAgNjQuNi0yMi4xIDY0LjYtNTEgLjEtMjguOS0yMi41LTQxLTQzLTQ3Ljh6bS0xNTUtNjguOGMtMzguNCAwLTc1LjEgMzIuMS03NC4xIDgyLjUgMCA1MiAzNC4yIDgyLjUgNzkuMyA4Mi41IDE4LjkgMCAzOS45LTYuOCA1Ni4yLTE3LjlMMjcxIDMwMS41Yy0xMS42IDYuOC0yMi42IDEwLTM0LjIgMTAtMjEgMC0zNy4zLTEwLTQxLjUtMzQuMmw5NS4yIDBjLjUtMy43IDEuNi0xMSAxLjYtMTkuNCAuNi00Mi42LTIyLjYtNzUuNy02Ni43LTc1Ljd6bS0zMCA2Ni4yYzMuMi0yMSAxNS44LTMxIDMwLjUtMzEgMTguOSAwIDI2LjMgMTMuMSAyNi4zIDMxbC01Ni44IDB6Il19LGo0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJmaXJlZm94IixpY29uOls1MTIsNTEyLFtdLCJmMjY5IiwiTTUwMy41IDI0MS41Yy0uMS0xLjYtLjItMy4xLS4yLTQuN2wwLS4xLS40LTQuNyAwLS4xYy0xLjMtMTMuOS0zLjctMjcuNy03LjMtNDEuMiAwLS4xIDAtLjEtLjEtLjJsLTEuMS00Yy0uMS0uMi0uMS0uNS0uMi0uNi0uNC0xLjItLjctMi41LTEuMS0zLjctLjEtLjItLjEtLjYtLjItLjgtLjQtMS4yLS43LTIuNC0xLjEtMy41LS4xLS40LS4yLS42LS40LTEtLjQtMS4yLS43LTIuMy0xLjItMy41bC0uNC0xLjFjLS40LTEuMS0uOC0yLjMtMS4yLTMuNC0uMS0uMy0uMi0uNy0uNC0xLS41LTEuMS0uOC0yLjMtMS4zLTMuNC0uMS0uMi0uMi0uNi0uNC0uOC0uNS0xLjItMS0yLjMtMS40LTMuNSAwLS4xLS4xLS4yLS4xLS40LTEuNi0zLjgtMy4yLTcuNy01LTExLjRsLS40LS43Yy0uNS0xLS44LTEuOC0xLjMtMi42LS4yLS41LS41LTEuMS0uNy0xLjYtLjQtLjgtLjgtMS42LTEuMi0yLjQtLjQtLjYtLjYtMS4yLTEtMS44cy0uOC0xLjQtMS4yLTIuM2MtLjQtLjYtLjctMS4zLTEuMS0xLjlzLS44LTEuNC0xLjItMi4yYy0uNC0uNy0uOC0xLjQtMS4yLTItLjQtLjctLjgtMS4zLTEuMi0ycy0uOC0xLjMtMS4yLTItLjgtMS4zLTEuMi0xLjktLjgtMS40LTEuMy0yLjJjLS40LS42LS44LTEuMi0xLjItMS44bC0xLjQtMi4xYy0uNC0uNi0uOC0xLjItMS4yLTEuOC0uNS0uNy0xLjEtMS42LTEuNi0yLjMtLjQtLjUtLjctMS4xLTEuMS0xLjZsLTEuOC0yLjVjLS40LS41LS42LS44LTEtMS4zLTEtMS4zLTEuOC0yLjUtMi44LTMuNy03LjItOS40LTE1LTE4LjMtMjMuNS0yNi42LTUuNy02LTExLjgtMTEuNS0xOC4zLTE2LjctNC0zLjUtOC4yLTYuNy0xMi41LTkuOC03LjctNS44LTE2LTEwLjgtMjQuNi0xNS4xLTIuNC0xLjMtNC44LTIuNS03LjItMy43LTE3LjctOC42LTM2LjMtMTUuMi01NS40LTE5LjYtMS45LS40LTMuOC0uOC01LjYtMS4ybC0uMSAwYy0xLS4xLTEuOC0uNC0yLjgtLjUtMTIuNS0yLjQtMjUuMi0zLjctMzgtNGwtMTAuNiAwYy0xNS4zIC4yLTMwLjUgMS45LTQ1LjUgNS0zMy42IDcuMS02My4yIDIxLjItODIuOSAzOS0xLjEgMS0xLjkgMS43LTIuNCAyLjJsLS41IC41IC4xIDBjMCAwIC4xIDAgLjEgMHMwLS4xIDAtLjFsLS4xIC4xYy4xLS4xIC4xLS4xIC4yLS4xIDE0LjYtOC44IDM0LjktMTYgNDkuNC0xOS42bDUuOS0xLjRjLjQtLjEgLjgtLjEgMS4yLS4yIDEuNy0uNCAzLjQtLjcgNS4yLTEuMSAuMiAwIC42LS4xIC44LS4xIDY0LjItMTEuNyAxMzIuNiA3LjUgMTgwLjIgNTMgMTAuMyA5LjggMTkuMyAyMC44IDI2LjkgMzIuOCAzMC40IDQ5LjIgMjcuNSAxMTEuMSAzLjggMTQ3LjYtMzQuNCA1My0xMTEuNCA3MS4zLTE1OSAyNC44LTE2LTE1LjUtMjUuMi0zNi43LTI1LjYtNTktLjItMTAuNyAyLTIxLjIgNi4yLTMxIDEuNy0zLjggMTMuMS0yNS43IDE4LjItMjQuNi0xMy4xLTIuOC0zNy41IDIuNi01NC43IDI4LjItMTUuNCAyMi45LTE0LjUgNTguMi01IDgzLjMtNi0xMi40LTEwLjEtMjUuNi0xMi4xLTM5LjItMTIuMi04Mi42IDQzLjMtMTUzIDk0LjMtMTcwLjUtMjcuNS0yNC05Ni41LTIyLjMtMTQ3LjcgMTUuNC0yOS45IDIyLTUxLjIgNTMuMi02Mi41IDkwLjQgMS43LTIwLjkgOS42LTUyLjEgMjUuOC04My45LTE3LjIgOC45LTM5IDM3LTQ5LjggNjIuOS0xNS42IDM3LjQtMjEgODIuMi0xNi4xIDEyNC44IC40IDMuMiAuNyA2LjQgMS4xIDkuNiAxOS45IDExNy4xIDEyMiAyMDYuNCAyNDQuOCAyMDYuNCAxMzcuMSAwIDI0OC4zLTExMS4yIDI0OC4zLTI0OC40LS4xLTQuNS0uMi05LjEtLjUtMTMuNXoiXX0sVjR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImthZ2dsZSIsaWNvbjpbMzIwLDUxMixbXSwiZjVmYSIsIk0zMDQuMiA1MDEuNUwxNTguNCAzMjAuMyAyOTguMiAxODVjMi42LTIuNyAxLjctMTAuNS01LjMtMTAuNWwtNjkuMiAwYy0zLjUgMC03IDEuOC0xMC41IDUuM2wtMTMyLjMgMTMzLjcgMC0zMDZjMC01LTIuNS03LjUtNy41LTcuNUwyMS41IDBDMTYuNSAwIDE0IDIuNSAxNCA3LjVsMCA0OTdjMCA1IDIuNSA3LjUgNy41IDcuNWw1MS45IDBjNSAwIDcuNS0yLjUgNy41LTcuNWwwLTEwOSAzMC44LTI5LjMgMTEwLjUgMTQwLjZjMyAzLjUgNi41IDUuMyAxMC41IDUuM2w2Ni45IDBjMy41IDAgNS41LTEgNi0zbC0xLjQtNy42eiJdfSxVNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiZmFjZWJvb2stbWVzc2VuZ2VyIixpY29uOls1MTIsNTEyLFtdLCJmMzlmIiwiTTI1Ni42IDhjLTE0MCAwLTI0OC42IDEwMi4zLTI0OC42IDI0MC42IDAgNzIuMyAyOS43IDEzNC44IDc4LjEgMTc3LjkgOC4zIDcuNSA2LjYgMTEuOSA4IDU4LjIgLjEgMy4yIDEgNi40IDIuNiA5LjJzMy45IDUuMiA2LjcgNi45IDUuOSAyLjggOS4xIDMgNi41LS4zIDkuNS0xLjZDMTc0LjkgNDc5IDE3NS42IDQ3Ny4yIDE4NC42IDQ3OS42IDMzNy44IDUyMS44IDUwNCA0MjMuNyA1MDQgMjQ4LjYgNTA0IDExMC4zIDM5Ni42IDggMjU2LjYgOHpNNDA1LjggMTkzLjFsLTczIDExNS42Yy0yLjggNC4zLTYuNCA4LjEtMTAuNiAxMXMtOS4xIDQuOC0xNC4xIDUuOC0xMC4zIC44LTE1LjMtLjQtOS43LTMuNC0xMy44LTYuNGwtNTguMS00My41Yy0yLjYtMS45LTUuOC0zLTktM3MtNi40IDEuMS05IDNsLTc4LjQgNTkuNGMtMTAuNSA3LjktMjQuMi00LjYtMTcuMS0xNS43bDczLTExNS42YzIuOC00LjMgNi40LTguMSAxMC42LTExczkuMS00LjggMTQuMS01LjggMTAuMy0uOCAxNS4zIC40IDkuNyAzLjQgMTMuOSA2LjRsNTguMSA0My41YzIuNiAxLjkgNS44IDMgOSAzczYuNC0xLjEgOS0zbDc4LjQtNTkuNGMxMC40LTggMjQuMSA0LjUgMTcuMSAxNS42eiJdfSxXNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYXVkaWJsZSIsaWNvbjpbNjQwLDUxMixbXSwiZjM3MyIsIk02NDAgMTk5LjlsMCA1NC0zMjAgMjAwLTMyMC0xOTkuOSAwLTU0IDMyMCAyMDAgMzIwLTIwMC4xem0tMTk0LjUgNzJsNDcuMS0yOS40Yy0zNy4yLTU1LjgtMTAwLjctOTIuNi0xNzIuNy05Mi42cy0xMzUuNSAzNi43LTE3Mi42IDkyLjRsLjMgMGMyLjUtMi4zIDUuMS00LjUgNy43LTYuNyA4OS43LTc0LjQgMjE5LjQtNTguMSAyOTAuMiAzNi4zek0yMjUuNCAyOTAuN2MxNi45LTExLjkgMzYuNS0xOC43IDU3LjQtMTguNyAzNC40IDAgNjUuMiAxOC40IDg2LjQgNDcuNmw0NS40LTI4LjRjLTIwLjktMjkuOS01NS42LTQ5LjUtOTQuOC00OS41LTM4LjkgMC03My40IDE5LjQtOTQuNCA0OXpNMTAzLjYgMTYxLjFDMjM1LjQgNTYuOCA0MjEuOCA4NC43IDUyMS4xIDIyMy4ybC43IDEgNDguOC0zMC40Yy01My41LTgxLjctMTQ1LjgtMTM1LjctMjUwLjctMTM1LjctMTAzLjUgMC0xOTYuNiA1My41LTI1MC41IDEzNS42IDkuOS0xMC41IDIyLjctMjMuNSAzNC4yLTMyLjZ6Il19LEc0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJwYXRyZW9uIixpY29uOls1MTIsNTEyLFtdLCJmM2Q5IiwiTTQ5MCAxNTMuOGMtLjEtNjUuNC01MS0xMTktMTEwLjctMTM4LjMtNzQuMi0yNC0xNzItMjAuNS0yNDIuOSAxMi45LTg1LjggNDAuNS0xMTIuOCAxMjkuMy0xMTMuOCAyMTcuOC0uOCA3Mi44IDYuNCAyNjQuNCAxMTQuNiAyNjUuOCA4MC4zIDEgOTIuMy0xMDIuNSAxMjkuNS0xNTIuMyAyNi40LTM1LjUgNjAuNS00NS41IDEwMi40LTU1LjkgNzItMTcuOCAxMjEuMS03NC43IDEyMS0xNTBsLS4xIDB6Il19LFk0dD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ2bnYiLGljb246WzY0MCw1MTIsW10sImY0MGIiLCJNMTA0LjkgMzUyYy0zNC4xIDAtNDYuNC0zMC40LTQ2LjQtMzAuNEwyLjYgMjEwLjFTLTcuOCAxOTIgMTMgMTkybDMyLjggMGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi43LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFsMzIuOCAwYzIwLjggMCAxMC40IDE4LjEgMTAuNCAxOC4xTDE4Ni40IDMyMS42UzE3NC4yIDM1MiAxNDAgMzUybC0zNS4xIDB6bTM5NSAwYy0zNC4xIDAtNDYuNC0zMC40LTQ2LjQtMzAuNEwzOTcuNiAyMTAuMVMzODcuMiAxOTIgNDA4IDE5MmwzMi44IDBjMTAuNCAwIDEzLjIgOC43IDE4LjggMTguMWwzNi43IDc0LjVzNS4yIDEzLjEgMjEuMSAxMy4xIDIxLjEtMTMuMSAyMS4xLTEzLjFsMzYuOC03NC41YzUuNi05LjUgOC40LTE4LjEgMTguOC0xOC4xbDMyLjkgMGMyMC44IDAgMTAuNCAxOC4xIDEwLjQgMTguMUw1ODEuNSAzMjEuNlM1NjkuMyAzNTIgNTM1LjEgMzUybC0zNS4yIDB6TTMzNy42IDE5MmMzNC4xIDAgNDYuNCAzMC40IDQ2LjQgMzAuNGw1NS45IDExMS41UzQ1MC4zIDM1MiA0MjkuNSAzNTJsLTMyLjggMGMtMTAuNCAwLTEzLjItOC43LTE4LjgtMTguMWwtMzYuNy03NC41cy01LjItMTMuMS0yMS4xLTEzLjEtMjEuMSAxMy4xLTIxLjEgMTMuMWwtMzYuNyA3NC41Yy01LjYgOS40LTguNCAxOC4xLTE4LjggMTguMWwtMzIuOSAwYy0yMC44IDAtMTAuNC0xOC4xLTEwLjQtMTguMWw1NS45LTExMS41UzI2OC4zIDE5MiAzMDIuNSAxOTJsMzUuMSAweiJdfSxaNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGFnZWxpbmVzIixpY29uOlszODQsNTEyLFtdLCJmMThjIiwiTTM4NC4xIDMxMi43Yy01NS4xIDEzNi43LTE4Ny4xIDU0LTE4Ny4xIDU0LTQwLjUgODEuOC0xMDcuNCAxMzQuNC0xODQuNiAxMzQuNy0xNi4xIDAtMTYuNi0yNC40IDAtMjQuNCA2NC40LS4zIDEyMC41LTQyLjcgMTU3LjItMTEwLjEtNDEuMSAxNS45LTExOC42IDI3LjktMTYxLjYtODIuMiAxMDktNDQuOSAxNTkuMSAxMS4yIDE3OC4zIDQ1LjUgOS45LTI0LjQgMTctNTAuOSAyMS42LTc5LjcgMCAwLTEzOS43IDIxLjktMTQ5LjUtOTguMSAxMTkuMS00Ny45IDE1Mi42IDc2LjcgMTUyLjYgNzYuNyAxLjYtMTYuNyAzLjMtNTIuNiAzLjMtNTMuNCAwIDAtMTA2LjMtNzMuNy0zOC4xLTE2NS4yIDEyNC42IDQzIDYxLjQgMTYyLjQgNjEuNCAxNjIuNCAuNSAxLjYgLjUgMjMuOCAwIDMzLjQgMCAwIDQ1LjItODkgMTM2LjQtNTcuNS00LjIgMTM0LTE0MS45IDEwNi40LTE0MS45IDEwNi40LTQuNCAyNy40LTExLjIgNTMuNC0yMCA3Ny41IDAgMCA4My05MS44IDE3Mi0yMHoiXX0sWDR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImFtYXpvbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3MCIsIk0yNTcuNyAxNjIuN2MtNDguNyAxLjgtMTY5LjUgMTUuNS0xNjkuNSAxMTcuNSAwIDEwOS41IDEzOC4zIDExNCAxODMuNSA0My4yIDYuNSAxMC4yIDM1LjQgMzcuNSA0NS4zIDQ2LjhsNTYuOC01NnMtMzIuMy0yNS4zLTMyLjMtNTIuOGwwLTE0Ny4xQzM0MS41IDg5IDMxNyAzMiAyMjkuMiAzMiAxNDEuMiAzMiA5NC41IDg3IDk0LjUgMTM2LjNsNzMuNSA2LjhjMTYuMy00OS41IDU0LjItNDkuNSA1NC4yLTQ5LjUgNDAuNy0uMSAzNS41IDI5LjggMzUuNSA2OS4xem0wIDg2LjhjMCA4MC04NC4yIDY4LTg0LjIgMTcuMiAwLTQ3LjIgNTAuNS01Ni43IDg0LjItNTcuOGwwIDQwLjZ6TTM5My43IDQxM2MtNy43IDEwLTcwIDY3LTE3NC41IDY3UzM0LjcgNDA4LjUgMTAuMiAzNzljLTYuOC03LjcgMS0xMS4zIDUuNS04LjMgNzMuMyA0NC41IDE4Ny44IDExNy44IDM3Mi41IDMwLjMgNy41LTMuNyAxMy4zIDIgNS41IDEyem0zOS44IDIuMmMtNi41IDE1LjgtMTYgMjYuOC0yMS4yIDMxLTUuNSA0LjUtOS41IDIuNy02LjUtMy44czE5LjMtNDYuNSAxMi43LTU1Yy02LjUtOC4zLTM3LTQuMy00OC0zLjItMTAuOCAxLTEzIDItMTQtLjMtMi4zLTUuNyAyMS43LTE1LjUgMzcuNS0xNy41IDE1LjctMS44IDQxLS44IDQ2IDUuNyAzLjcgNS4xIDAgMjcuMS02LjUgNDMuMXoiXX0sUTR0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVudmlyYSIsaWNvbjpbNDQ4LDUxMixbXSwiZjI5OSIsIk0wIDMyYzQ3Ny42IDAgMzY2LjYgMzE3LjMgMzY3LjEgMzY2LjNsODAuOSA4MS43LTI2IDAtNzAuNC03MS4yQzMxMi42IDQxMyAyMjcuMiA0NDMuMyAxMzcuMiAzNzEuOCA0NyAzMDAuMyA1MiAyMTQuNyAwIDMyek03OS43IDc4Yy00OS43LTIzLjUtNS4yIDkuMi01LjIgOS4yIDQ1LjIgMzEuMiA2NiA3My43IDkwLjIgMTE5LjkgMzEuNSA2MC4yIDc5IDEzOS43IDE0NC4yIDE2Ny43IDY1IDI4IDM0LjIgMTIuNSA2LTguNS0yOC4yLTIxLjItNjguMi04Ny05MS0xMzAuMi0zMS43LTYwLTYxLTExOC42LTE0NC4yLTE1OC4xeiJdfSxKNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToibGlub2RlIixpY29uOls0NDgsNTEyLFtdLCJmMmI4IiwiTTM2Ni4zIDE4Ni45bC01OS41IDM2LjktLjggMzYuOS0yOS4zLTE5LjMtMzkuNCAyNC4zYzIuMiA1NS4yIDIuNSA1OS4zIDIuNSA1OS41bC05Ny4yIDY1LjQtMTUuMS0xMDQuNyAxMDguMS02Mi00MC4yLTI2LTc1LjQgMzguNS0yMS0xNDMuMyAxMjktNDkuNC05MS4zLTQzLjYtMTI1LjcgMzkuNCAyNy43IDEzNC45IDQxLjkgMzIuNy0zMS44IDE1LjEgMjAuOSAxMDEuNCAyOS4zIDI3LjctMjAuOSAxMi42IDE2LjggNzguOCA2Ni4yIDY5LjZjLTEwLjgtNzQuOC0xMS43LTc4LjYtMTEuNy03OC44bDc3LjktNTUuM0MyNDQgMzY1LjQgMjQyLjMgMzY3IDI0Mi4zIDM2N2wuOCAyNC4zIDMzLjUgMjguNS0uOC03Ny4xIDQ2LjktMzMuNSAyNi44LTE4LjQtMi41IDM2IDI1LjEgMTcuNiA2LjctNzQuNiA1OC43LTQzLjYtNzEuMi0zOS40eiJdfSxLNHQ9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWNjdXNvZnQiLGljb246WzY0MCw1MTIsW10sImYzNjkiLCJNMzIyLjEgMjUybDAtMS01MS4yLTY1LjhzLTEyIDEuNi0yNSAxNS4xYy05IDkuMy0yNDIuMSAyMzkuMS0yNDMuNCAyNDAuOS03IDEwIDEuNiA2LjggMTUuNyAxLjcgLjggMCAxMTQuNS0zNi42IDExNC41LTM2LjYgLjUtLjYtLjEtLjEgLjYtLjYtLjQtNS4xLS44LTI2LjItMS0yNy43LS42LTUuMiAyLjItNi45IDctOC45bDkyLjYtMzMuOGMuNi0uOCA4OC41LTgxLjcgOTAuMi04My4zek00ODIuMiAzNzIuMWMxMy4zIDE2LjEgMjAuNyAxMy4zIDMwLjggOS4zIDMuMi0xLjIgMTE1LjQtNDcuNiAxMTcuOC00OC45IDgtNC4zLTEuNy0xNi43LTcuMi0yMy40LTIuMS0yLjUtMjA1LjEtMjQ1LjYtMjA3LjItMjQ4LjMtOS43LTEyLjItMTQuMy0xMi45LTM4LjQtMTIuOC0xMC4yIDAtMTA2LjggLjUtMTE2LjUgLjYtMTkuMiAuMS0zMi45LS4zLTE5LjIgMTYuOSA3LjcgOS41IDIzNC4yIDI5OS43IDIzOS45IDMwNi42em0xNTIuNyAxLjZjLTIuMy0uMy0yNC42LTQuNy0zOC03LjIgMCAwLTExNSA1MC40LTExNy41IDUxLjYtMTYgNy4zLTI2LjktMy4yLTM2LjctMTQuNmwtNTcuMS03NGMtNS40LS45LTYwLjQtOS42LTY1LjMtOS4zLTMuMSAuMi05LjYgLjgtMTQuNCAyLjktNC45IDIuMS0xNDUuMiA1Mi44LTE1MC4yIDU0LjctNS4xIDItMTEuNCAzLjYtMTEuMSA3LjYgLjIgMi41IDIgMi42IDQuNiAzLjUgMi43IC44IDMwMC45IDY3LjYgMzA4IDY5LjEgMTUuNiAzLjMgMzguNSAxMC41IDUzLjYgMS43IDIuMS0xLjIgMTIzLjgtNzYuNCAxMjUuOC03Ny44IDUuNC00IDQuMy02LjgtMS43LTguMnoiXX0sZTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVybGFuZyIsaWNvbjpbNjQwLDUxMixbXSwiZjM5ZCIsIk04Ny4yIDUzLjVsLTg3LjIgMCAwIDQwNSAxMDAuNCAwYy00OS43LTUyLjYtNzguOC0xMjUuMy03OC43LTIxMi4xLS4xLTc2LjcgMjQtMTQyLjcgNjUuNS0xOTIuOXptMjM4LjIgOS43Yy00NS45IC4xLTg1LjEgMzMuNS04OS4yIDgzLjJsMTY5LjkgMGMtMS4xLTQ5LjctMzQuNS04My4xLTgwLjctODMuMnptMjMwLjctOS42bC4zIDAtLjEtLjEtLjIgLjF6bS4zIDBjMzEuNCA0Mi43IDQ4LjcgOTcuNSA0Ni4yIDE2Mi43IC41IDYgLjUgMTEuNyAwIDI0LjFsLTM3Mi40IDBjLS4yIDEwOS43IDM4LjkgMTk0LjkgMTM4LjYgMTk1LjMgNjguNS0uMyAxMTgtNTEgMTUxLjktMTA2LjFsOTYuNCA0OC4yYy0xNy40IDMwLjktMzYuNSA1Ny44LTU3LjkgODAuOGw4MC44IDAgMC00MDUtODMuNiAweiJdfSx0M3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidW5pc29uIixpY29uOls1MTIsNTEyLFtdLCJlODU0IiwiTTQzNS4xIDE2MS43YTEzLjkgMTMuOSAwIDEgMSAxOS42LTE5LjcgMTMuOSAxMy45IDAgMSAxIC0xOS42IDE5Ljd6TTM2OS43IDk3LjhjMTAuNCAyLjEgMjAuNiA1LjIgMzAuNCA5LjIgNi44IDIuOCAxMC4xIDEwLjggNy4zIDE3LjctMi44IDYuNy0xMC45IDEwLjEtMTcuNiA3LjMtOC4zLTMuNC0xNi44LTUuOC0yNS43LTcuOC04LjYtMS43LTE3LjMtMi41LTI2LTIuNS0xOS4zIDAtMzcuMS0xMC4zLTQ2LjctMjctOC43LTE1LjEtMjAuNi0yOC45LTM0LjctMzkuNy01OS4xLTQ1LjUtMTQzLjgtMzQuMy0xODkuMiAyNS0yLjYgMy4zLTYuNSA1LjMtMTAuNyA1LjMtNy40IDAtMTMuNS02LjEtMTMuNS0xMy41IDAtMy4yIDEuMi02LjMgMy4yLTguOCAxMi45LTE2LjcgMjguOS0zMC43IDQ3LjEtNDEuMiA3Ny40LTQ0LjggMTc2LjQtMTguMiAyMjEuMSA1OS40IDQuMyA4LjIgMTMuNyAxMy4zIDIyLjggMTMuNSAxMC44IDAgMjEuNiAxIDMyLjIgMy4xek0zNSAyNzBjNC42LTguMiA0LjYtMTguMiAwLTI2LjQtMjEuOS0zNi41LTI3LjMtODIuMy0xNi4zLTEyMy4yIDEuNi01LjkgNi45LTEwIDEzLTEwIDguNyAwIDE1LjMgOC43IDEzIDE3LTkuNSAzNS40LTMuNCA3MSAxMy43IDEwMi45IDkuMyAxNi41IDkuMyAzNi43IDAgNTMuMS04LjcgMTUuNy0xNC44IDMyLjQtMTcuMiA1MC4zLTkuNyA3My45IDQyLjMgMTQxLjcgMTE2LjIgMTUxLjQgNy4zIDEgMTIuNiA3LjkgMTEuNiAxNS4yLTEgNy4zLTcuOCAxMi42LTE1LjEgMTEuNi0yMS4xLTIuOC00MS40LTkuNy01OS44LTIwLjMtNzUuNi00My42LTEwNC45LTE0NS44LTU5LjItMjIxLjV6TTIxNi45IDUwOWMtNy40IDItMTUuMS0yLjQtMTcuMS05LjhzMi41LTE1IDkuOS0xNi45YzguNS0yLjIgMTcuNCA0LjUgMTcuNCAxMy40IDAgNi4yLTQuMiAxMS42LTEwLjIgMTMuM3ptMTIyLjMtOTFjLTkuNSAwLTE4LjQgNS0yMy4yIDEzLjItNC45IDkuNC0xMS43IDE4LjItMTguNyAyNi4ybDAgMGMtNy4xIDgtMTQuOCAxNS4yLTIzLjIgMjEuNy01LjkgNC41LTE0LjQgMy40LTE5LTIuNXMtMy40LTE0LjQgMi41LTE4LjljNy01LjQgMTMuNS0xMS41IDE5LjQtMTguMWwwIDBjNS45LTYuNiAxMS4xLTEzLjggMTUuNS0yMS42IDkuNy0xNi43IDI3LjUtMjcgNDYuOC0yNyAxNy44IDAgMzUuNC0zLjUgNTEuOC0xMC4zIDY4LjMtMjguMyAxMDEuMS0xMDguMyA3My4yLTE3Ni41LS42LTEuNi0xLTMuMy0xLTUgMC03LjQgNi4xLTEzLjUgMTMuNS0xMy41IDUuNCAwIDEwLjMgMy4yIDEyLjQgOC4yIDguMiAxOS43IDEyLjQgNDAuOCAxMi40IDYyLjEgMCA4OS41LTcyLjcgMTYyLjEtMTYyLjQgMTYyLjFsMCAwem0tMTMuMS0yNjhjMy45LS40IDcuOS0uNiAxMS45LS42IDU5LjMgMCAxMDguMiA0OC43IDEwOC4yIDEwNy44UzM5Ny4zIDM2NSAzMzggMzY1Yy00IDAtNy45LS4yLTExLjgtLjYtMjIuMi0xLjctNDMuMyAxMC40LTUyLjkgMzAuNC0xNy4yIDM5LjEtNTYuMiA2NC41LTk5LjEgNjQuNS01OS4zIDAtMTA4LjItNDguNy0xMDguMi0xMDcuOCAwLTIzLjIgNy41LTQ1LjcgMjEuNC02NC4zIDEyLjItMTguMyAxMi4xLTQyLjMtLjQtNjAuNS0xMy42LTE4LjUtMjAuOS00MC44LTIwLjktNjMuNyAwLTU5LjEgNDguOC0xMDcuOCAxMDguMi0xMDcuOCA0Mi44IDAgODEuOCAyNS40IDk5IDY0LjQgOS42IDIwIDMwLjcgMzIuMSA1Mi45IDMwLjR6TTEwNi44IDM5My40YzE0LjQgMjUuMiA0MS4xIDQwLjggNjkuOCA0MC44IDQ0LjIgMCA4MC42LTM2LjggODAuNi04MS42cy0zNi40LTgxLjYtODAuNi04MS42Yy0xNC4yIDAtMjguMSAzLjgtNDAuMyAxMC45LTM4LjMgMjIuNC01MS42IDcyLjctMjkuNSAxMTEuNHpNMjY4IDI5OGMxNC40IDI1LjIgNDEuMSA0MC44IDY5LjggNDAuOCA0NC4yIDAgODAuNi0zNi44IDgwLjYtODEuNnMtMzYuNC04MS42LTgwLjYtODEuNmMtMTQuMiAwLTI4LjEgMy44LTQwLjMgMTAuOS0zOC4zIDIyLjQtNTEuNiA3Mi43LTI5LjUgMTExLjR6bS05MS4yLTU0LjZjNDQuMiAwIDgwLjUtMzYuOCA4MC41LTgxLjZzLTM2LjQtODEuNi04MC42LTgxLjYtODAuNiAzNi44LTgwLjYgODEuNmMwIDQ0LjcgMzYuNCA4MS42IDgwLjYgODEuNnoiXX0scjN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLWRpc2NvdmVyIixpY29uOls1NzYsNTEyLFtdLCJmMWYyIiwiTTUyMC40IDE5Ni4xYzAtNy45LTUuNS0xMi4xLTE1LjYtMTIuMWwtNC45IDAgMCAyNC45IDQuNyAwYzEwLjMgMCAxNS44LTQuNCAxNS44LTEyLjh6TTUyOCAzMkw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQ4MCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00ODMuOSAxNzAuOWMyMi42IDAgNTIuOS00LjEgNTIuOSAyNC40IDAgMTIuNi02LjYgMjAuNy0xOC43IDIzLjJsMjUuOCAzNC40LTE5LjYgMC0yMi4yLTMyLjgtMi4yIDAgMCAzMi44LTE2IDAgMC04MnpNNDI4IDE3MWw0NS4zIDAgMCAxNC0yOS4zIDAgMCAxOC4yIDI4LjMgMCAwIDEzLjgtMjguMyAwIDAgMjIuMiAyOS4zIDAgMCAxMy44LTQ1LjMgMCAwLTgyem0tNjguNyAwbDIxLjkgNTUuMiAyMi4yLTU1LjIgMTcuNSAwLTM1LjUgODQuMi04LjYgMC0zNS04NC4yIDE3LjUgMHptLTU1LjkgODYuMmE0NC42IDQ0LjYgMCAxIDEgMC04OS4yIDQ0LjYgNDQuNiAwIDEgMSAwIDg5LjJ6bS00OS4zLTgzLjFsMCAxOWMtMjAuMS0yMC4xLTQ2LjgtNC43LTQ2LjggMTkgMCAyNSAyNy41IDM4LjUgNDYuOCAxOS4ybDAgMTljLTI5LjcgMTQuMy02My4zLTUuNy02My4zLTM4LjIgMC0zMS4yIDMzLjEtNTMgNjMuMy0zOHptLTk3LjIgNjYuM2MxMS40IDAgMjIuNC0xNS4zLTMuMy0yNC40LTE1LTUuNS0yMC4yLTExLjQtMjAuMi0yMi43IDAtMjMuMiAzMC42LTMxLjQgNDkuNy0xNC4zbC04LjQgMTAuOGMtMTAuNC0xMS42LTI0LjktNi4yLTI0LjkgMi41IDAgNC40IDIuNyA2LjkgMTIuMyAxMC4zIDE4LjIgNi42IDIzLjYgMTIuNSAyMy42IDI1LjYgMCAyOS41LTM4LjggMzcuNC01Ni42IDExLjNsMTAuMy05LjljMy43IDcuMSA5LjkgMTAuOCAxNy41IDEwLjh6TTU1LjQgMjUzbC0yMy40IDAgMC04MiAyMy40IDBjMjYuMSAwIDQ0LjEgMTcgNDQuMSA0MS4xIDAgMTguNS0xMy4yIDQwLjktNDQuMSA0MC45em02Ny41IDBsLTE2IDAgMC04MiAxNiAwIDAgODJ6TTU0NCA0MzNjMCA4LjItNi44IDE1LTE1IDE1bC00MDEgMGMxODkuNi0zNS42IDM4Mi43LTEzOS4yIDQxNi0xNjBsMCAxNDV6TTc0LjEgMTkxLjZjLTUuMi00LjktMTEuNi02LjYtMjEuOS02LjZsLTQuMiAwIDAgNTQuMiA0LjIgMGMxMC4zIDAgMTctMiAyMS45LTYuNCA1LjctNS4yIDguOS0xMi44IDguOS0yMC43cy0zLjItMTUuNS04LjktMjAuNXoiXX0saTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNhZmFyaSIsaWNvbjpbNTEyLDUxMixbXSwiZjI2NyIsIk0yNzQuNyAyNzQuN0wyMzcuMyAyMzcuMyAxNjYgMzQ2IDI3NC43IDI3NC43ek0yNTYgOGEyNDggMjQ4IDAgMSAwIDAgNDk2IDI0OCAyNDggMCAxIDAgMC00OTZ6TTQxMS44IDE4Mi44bDE0LjgtNi4xYzEtLjQgMi0uNiAzLjEtLjZzMi4xIC4yIDMuMSAuNiAxLjggMSAyLjYgMS43IDEuMyAxLjYgMS43IDIuNiAuNiAyIC42IDMuMS0uMiAyLjEtLjYgMy4xLTEgMS45LTEuNyAyLjYtMS42IDEuMy0yLjYgMS43TDQxOCAxOTcuNmMtMiAuOC00LjIgLjgtNi4xIDBzLTMuNS0yLjQtNC4zLTQuMy0uOC00LjIgMC02LjEgMi40LTMuNSA0LjMtNC4zek0zMTQuNCA5NGw2LjEtMTQuOGMuOC0yIDIuNC0zLjUgNC4zLTQuM3M0LjItLjggNi4xIDAgMy41IDIuNCA0LjMgNC4zIC44IDQuMiAwIDYuMWwtNi4xIDE0LjhjLS44IDItMi40IDMuNS00LjMgNC4zcy00LjIgLjgtNi4xIDBjLTEtLjQtMS45LTEtMi42LTEuN3MtMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjF6TTI1NiA2MGMyLjEgMCA0LjIgLjggNS43IDIuM1MyNjQgNjUuOSAyNjQgNjhsMCAxNmMwIDIuMS0uOCA0LjItMi4zIDUuN3MtMy41IDIuMy01LjcgMi4zLTQuMi0uOC01LjctMi4zLTIuMy0zLjUtMi4zLTUuN2wwLTE2YzAtMi4xIC44LTQuMiAyLjMtNS43UzI1My45IDYwIDI1NiA2MHpNMTgxIDc0LjljMS0uNCAyLS42IDMuMS0uNnMyLjEgLjIgMy4xIC42IDEuOSAxIDIuNiAxLjcgMS4zIDEuNiAxLjcgMi42TDE5Ny42IDk0Yy40IDEgLjcgMiAuNyAzLjFzLS4yIDIuMS0uNiAzLjEtMSAxLjktMS43IDIuNi0xLjYgMS40LTIuNiAxLjgtMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS44LTEuMy0xLjctMS43LTIuN2wtNi4xLTE0LjhjLS44LTItLjgtNC4yIDAtNi4xczIuNC0zLjUgNC4zLTQuM3ptLTYzLjYgNDIuNWMxLjUtMS41IDMuNS0yLjMgNS43LTIuM3M0LjIgLjggNS43IDIuM0wxNDAgMTI4LjdjMS41IDEuNSAyLjMgMy41IDIuMyA1LjZzLS44IDQuMS0yLjMgNS42Yy0xLjUgMS41LTMuNSAyLjMtNS43IDIuM3MtNC4yLS44LTUuNy0yLjNsLTExLjMtMTEuM2MtMS41LTEuNS0yLjMtMy41LTIuMy01LjZzLjgtNC4xIDIuMy01LjZsMCAwek02MCAyNTZjMC0yLjEgLjgtNC4yIDIuMy01LjdTNjUuOSAyNDggNjggMjQ4bDE2IDBjMi4xIDAgNC4yIC44IDUuNyAyLjNzMi4zIDMuNSAyLjMgNS43LS44IDQuMi0yLjMgNS43LTMuNSAyLjMtNS43IDIuM2wtMTYgMGMtMi4xIDAtNC4yLS44LTUuNy0yLjNTNjAgMjU4LjEgNjAgMjU2em00MC4yIDczLjJsLTE0LjggNi4xYy0xIC40LTIgLjYtMy4xIC42cy0yLjEtLjItMy4xLS42LTEuOS0xLTIuNi0xLjctMS4zLTEuNi0xLjctMi42LS42LTItLjYtMy4xIC4yLTIuMSAuNi0zLjEgMS0xLjkgMS43LTIuNiAxLjYtMS4zIDIuNi0xLjdMOTQgMzE0LjRjMi0uOCA0LjItLjggNi4xIDBzMy41IDIuNCA0LjMgNC4zIC44IDQuMiAwIDYuMS0yLjQgMy41LTQuMyA0LjN6bTQuMy0xMzZjLS40IDEtMSAxLjktMS43IDIuNnMtMS42IDEuMy0yLjYgMS43LTIgLjYtMy4xIC42LTIuMS0uMi0zLjEtLjZsLTE0LjgtNi4xYy0yLS44LTMuNS0yLjQtNC4zLTQuM3MtLjgtNC4yIDAtNi4xIDIuNC0zLjUgNC4zLTQuMyA0LjItLjggNi4xIDBsMTQuOCA2LjFjMiAuOCAzLjUgMi40IDQuMyA0LjNzLjggNC4yIDAgNi4xbDAgMHpNMTk3LjYgNDE4bC02LjEgMTQuOGMtLjQgMS0xIDEuOS0xLjcgMi42cy0xLjYgMS4zLTIuNiAxLjctMiAuNi0zLjEgLjYtMi4xLS4yLTMuMS0uNi0xLjktMS0yLjYtMS43LTEuMy0xLjYtMS43LTIuNi0uNi0yLS42LTMuMSAuMi0yLjEgLjYtMy4xbDYuMS0xNC44Yy40LTEgMS0xLjkgMS43LTIuN3MxLjYtMS40IDIuNi0xLjggMi0uNiAzLjEtLjYgMi4xIC4yIDMuMSAuNiAxLjkgMSAyLjYgMS44IDEuMyAxLjcgMS43IDIuNiAuNiAyIC42IDMuMS0uMiAyLjEtLjcgMy4xek0yNjQgNDQ0YzAgMi4xLS44IDQuMi0yLjMgNS43cy0zLjUgMi4zLTUuNyAyLjMtNC4yLS44LTUuNy0yLjMtMi4zLTMuNS0yLjMtNS43bDAtMTZjMC0yLjEgLjgtNC4yIDIuMy01LjdzMy41LTIuMyA1LjctMi4zIDQuMiAuOCA1LjcgMi4zIDIuMyAzLjUgMi4zIDUuN2wwIDE2em02Ny02LjljLTEgLjQtMiAuNi0zLjEgLjZzLTIuMS0uMi0zLjEtLjYtMS45LTEtMi42LTEuNy0xLjMtMS42LTEuNy0yLjZMMzE0LjQgNDE4Yy0uOC0yLS44LTQuMiAwLTYuMXMyLjQtMy41IDQuMy00LjMgNC4yLS44IDYuMSAwIDMuNSAyLjQgNC4zIDQuM2w2LjEgMTQuOGMuOCAyIC44IDQuMiAwIDYuMXMtMi40IDMuNS00LjMgNC4zem02My42LTQyLjVjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zcy00LjItLjgtNS43LTIuM0wzNzIgMzgzLjNjLTEuNS0xLjUtMi4zLTMuNS0yLjMtNS42cy44LTQuMSAyLjMtNS42IDMuNS0yLjMgNS43LTIuMyA0LjIgLjggNS43IDIuM2wxMS4zIDExLjNjMS41IDEuNSAyLjMgMy41IDIuMyA1LjZzLS44IDQuMS0yLjMgNS42bDAgMHpNMjg2LjIgMjg2LjJMMTEwLjMgNDAxLjcgMjI1LjggMjI1LjggNDAxLjcgMTEwLjMgMjg2LjIgMjg2LjJ6TTQzNy4xIDMzMWMtLjggMi0yLjQgMy41LTQuMyA0LjNzLTQuMiAuOC02LjEgMGwtMTQuOC02LjFjLTItLjgtMy41LTIuNC00LjMtNC4zcy0uOC00LjIgMC02LjFjLjQtMSAxLTEuOSAxLjctMi42czEuNi0xLjMgMi42LTEuNyAyLS42IDMuMS0uNiAyLjEgLjIgMy4xIC42bDE0LjggNi4xYzIgLjggMy41IDIuNCA0LjMgNC4zcy44IDQuMiAwIDYuMXptNi45LTY3bC0xNiAwYy0yLjEgMC00LjItLjgtNS43LTIuM3MtMi4zLTMuNS0yLjMtNS43IC44LTQuMiAyLjMtNS43IDMuNS0yLjMgNS43LTIuM2wxNiAwYzIuMSAwIDQuMiAuOCA1LjcgMi4zczIuMyAzLjUgMi4zIDUuNy0uOCA0LjItMi4zIDUuNy0zLjUgMi4zLTUuNyAyLjN6Il19LGEzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcGFjZS1hd2Vzb21lIixpY29uOls1MTIsNTEyLFtdLCJlNWFjIiwiTTk2IDI1NmwzMiAwIDAgMjU2LTEyOCAwIDAtMTYwIDMyIDAgMC0zMiAzMiAwIDAtMzIgMzIgMCAwLTMyem00MTYgOTZsMCAxNjAtMTI4IDAgMC0yNTYgMzIgMCAwIDMyIDMyIDAgMCAzMiAzMiAwIDAgMzIgMzIgMHpNMzIwIDY0bDMyIDAgMCAzODQtMzIgMCAwLTMyLTEyOCAwIDAgMzItMzIgMCAwLTM4NCAzMiAwIDAtMzIgMzIgMCAwLTMyIDY0IDAgMCAzMiAzMiAwIDAgMzJ6bS0zMiA2NGwtNjQgMCAwIDY0IDY0IDAgMC02NHoiXX0sbjN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Im5vZGUiLGljb246WzY0MCw1MTIsW10sImY0MTkiLCJNMzE2LjMgNDUyYy0yLjEgMC00LjItLjYtNi4xLTEuNkwyOTEgNDM5Yy0yLjktMS42LTEuNS0yLjItLjUtMi41IDMuOC0xLjMgNC42LTEuNiA4LjctNCAuNC0uMiAxLS4xIDEuNCAuMWwxNC44IDguOGMuNSAuMyAxLjMgLjMgMS44IDBMMzc1IDQwOGMuNS0uMyAuOS0uOSAuOS0xLjZsMC02Ni43YzAtLjctLjMtMS4zLS45LTEuNmwtNTcuOC0zMy4zYy0uNS0uMy0xLjItLjMtMS44IDBsLTU3LjggMzMuM2MtLjYgLjMtLjkgMS0uOSAxLjZsMCA2Ni43YzAgLjYgLjQgMS4yIC45IDEuNWwxNS44IDkuMWM4LjYgNC4zIDEzLjktLjggMTMuOS01LjhsMC02NS45YzAtLjkgLjctMS43IDEuNy0xLjdsNy4zIDBjLjkgMCAxLjcgLjcgMS43IDEuN2wwIDY1LjljMCAxMS41LTYuMiAxOC0xNy4xIDE4LTMuMyAwLTYgMC0xMy4zLTMuNmwtMTUuMi04LjdjLTMuNy0yLjItNi4xLTYuMi02LjEtMTAuNWwwLTY2LjdjMC00LjMgMi4zLTguNCA2LjEtMTAuNWw1Ny44LTMzLjRjMy43LTIuMSA4LjUtMi4xIDEyLjEgMGw1Ny44IDMzLjRjMy43IDIuMiA2LjEgNi4yIDYuMSAxMC41bDAgNjYuN2MwIDQuMy0yLjMgOC40LTYuMSAxMC41bC01Ny44IDMzLjRjLTEuNyAxLjEtMy44IDEuNy02IDEuN3pNMzYzIDM4Ni4yYzAtMTIuNS04LjQtMTUuOC0yNi4yLTE4LjItMTgtMi40LTE5LjgtMy42LTE5LjgtNy44IDAtMy41IDEuNS04LjEgMTQuOC04LjEgMTEuOSAwIDE2LjMgMi42IDE4LjEgMTAuNiAuMiAuOCAuOCAxLjMgMS42IDEuM2w3LjUgMGMuNSAwIC45LS4yIDEuMi0uNSAuMy0uNCAuNS0uOCAuNC0xLjMtMS4yLTEzLjgtMTAuMy0yMC4yLTI4LjgtMjAuMi0xNi41IDAtMjYuMyA3LTI2LjMgMTguNiAwIDEyLjcgOS44IDE2LjEgMjUuNiAxNy43IDE4LjkgMS45IDIwLjQgNC42IDIwLjQgOC4zIDAgNi41LTUuMiA5LjItMTcuNCA5LjItMTUuMyAwLTE4LjctMy44LTE5LjgtMTEuNC0uMS0uOC0uOC0xLjQtMS43LTEuNGwtNy41IDBjLS45IDAtMS43IC43LTEuNyAxLjcgMCA5LjcgNS4zIDIxLjMgMzAuNiAyMS4zIDE4LjUgMCAyOS03LjIgMjktMTkuOHptNTQuNS01MC4xYzAgNi4xLTUgMTEuMS0xMS4xIDExLjFzLTExLjEtNS0xMS4xLTExLjFjMC02LjMgNS4yLTExLjEgMTEuMS0xMS4xIDYtLjEgMTEuMSA0LjggMTEuMSAxMS4xem0tMS44IDBjMC01LjItNC4yLTkuMy05LjQtOS4zLTUuMSAwLTkuMyA0LjEtOS4zIDkuM3M0LjIgOS40IDkuMyA5LjRjNS4yLS4xIDkuNC00LjMgOS40LTkuNHptLTQuNSA2LjJsLTIuNiAwYy0uMS0uNi0uNS0zLjgtLjUtMy45LS4yLS43LS40LTEuMS0xLjMtMS4xbC0yLjIgMCAwIDUtMi40IDAgMC0xMi41IDQuMyAwYzEuNSAwIDQuNCAwIDQuNCAzLjMgMCAyLjMtMS41IDIuOC0yLjQgMy4xIDEuNyAuMSAxLjggMS4yIDIuMSAyLjggLjEgMSAuMyAyLjcgLjYgMy4zem0tMi44LTguOGMwLTEuNy0xLjItMS43LTEuOC0xLjdsLTIgMCAwIDMuNSAxLjkgMGMxLjYgMCAxLjktMS4xIDEuOS0xLjh6TTEzNy4zIDE5MWMwLTIuNy0xLjQtNS4xLTMuNy02LjRMNzIuMyAxNDkuM2MtMS0uNi0yLjItLjktMy40LTFsLS42IDBjLTEuMiAwLTIuMyAuNC0zLjQgMUwzLjcgMTg0LjZDMS40IDE4NS45IDAgMTg4LjQgMCAxOTFsLjEgOTVjMCAxLjMgLjcgMi41IDEuOCAzLjJzMi41IC43IDMuNyAwTDQyIDI2OC4zYzIuMy0xLjQgMy43LTMuOCAzLjctNi40bDAtNDQuNGMwLTIuNiAxLjQtNS4xIDMuNy02LjRsMTUuNS04LjljMS4yLS43IDIuNC0xIDMuNy0xczIuNiAuMyAzLjcgMWwxNS41IDguOWMyLjMgMS4zIDMuNyAzLjggMy43IDYuNGwwIDQ0LjRjMCAyLjYgMS40IDUuMSAzLjcgNi40bDM2LjQgMjAuOWMxLjEgLjcgMi42IC43IDMuNyAwIDEuMS0uNiAxLjgtMS45IDEuOC0zLjJsLjItOTV6TTQ3Mi41IDg3LjNsMCAxNzYuNGMwIDIuNi0xLjQgNS4xLTMuNyA2LjRsLTYxLjMgMzUuNGMtMi4zIDEuMy01LjEgMS4zLTcuNCAwbC02MS4zLTM1LjRjLTIuMy0xLjMtMy43LTMuOC0zLjctNi40bDAtNzAuOGMwLTIuNiAxLjQtNS4xIDMuNy02LjRsNjEuMy0zNS40YzIuMy0xLjMgNS4xLTEuMyA3LjQgMGwxNS4zIDguOGMxLjcgMSAzLjktLjMgMy45LTIuMmwwLTk0YzAtMi44IDMtNC42IDUuNS0zLjJsMzYuNSAyMC40YzIuMyAxLjIgMy44IDMuNyAzLjggNi40em0tNDYgMTI4LjljMC0uNy0uNC0xLjMtLjktMS42bC0yMS0xMi4yYy0uNi0uMy0xLjMtLjMtMS45IDBsLTIxIDEyLjJjLS42IC4zLS45IC45LS45IDEuNmwwIDI0LjNjMCAuNyAuNCAxLjMgLjkgMS42bDIxIDEyLjFjLjYgLjMgMS4zIC4zIDEuOCAwbDIxLTEyLjFjLjYtLjMgLjktLjkgLjktMS42bDAtMjQuMyAuMSAwem0yMDkuOC0uN2MyLjMtMS4zIDMuNy0zLjggMy43LTYuNGwwLTE3LjFjMC0yLjYtMS40LTUuMS0zLjctNi40bC02MC45LTM1LjRjLTIuMy0xLjMtNS4xLTEuMy03LjQgMGwtNjEuMyAzNS40Yy0yLjMgMS4zLTMuNyAzLjgtMy43IDYuNGwwIDcwLjhjMCAyLjcgMS40IDUuMSAzLjcgNi40bDYwLjkgMzQuN2MyLjIgMS4zIDUgMS4zIDcuMyAwbDM2LjgtMjAuNWMyLjUtMS40IDIuNS01IDAtNi40TDU1MCAyNDEuNmMtMS4yLS43LTEuOS0xLjktMS45LTMuMmwwLTIyLjJjMC0xLjMgLjctMi41IDEuOS0zLjJsMTkuMi0xMS4xYzEuMS0uNyAyLjYtLjcgMy43IDBMNTkyLjEgMjEzYzEuMSAuNyAxLjkgMS45IDEuOSAzLjJsMCAxNy40YzAgMi44IDMuMSA0LjYgNS42IDMuMmwzNi43LTIxLjN6TTU1OSAyMTljLS40IC4zLS43IC43LS43IDEuMmwwIDEzLjZjMCAuNSAuMyAxIC43IDEuMmwxMS44IDYuOGMuNCAuMyAxIC4zIDEuNCAwTDU4NCAyMzVjLjQtLjMgLjctLjcgLjctMS4ybDAtMTMuNmMwLS41LS4zLTEtLjctMS4ybC0xMS44LTYuOGMtLjQtLjMtMS0uMy0xLjQgMEw1NTkgMjE5ek0zMDQuOCAyNjIuNWwwLTcwLjRjMC0yLjYtMS42LTUuMS0zLjktNi40bC02MS4xLTM1LjJjLTIuMS0xLjItNS0xLjQtNy40IDBsLTYxLjEgMzUuMmMtMi4zIDEuMy0zLjkgMy43LTMuOSA2LjRsMCA3MC40YzAgMi44IDEuOSA1LjIgNCA2LjRsNjEuMiAzNS4yYzIuNCAxLjQgNS4yIDEuMyA3LjQgMGw2MS0zNS4yYzEuOC0xIDMuMS0yLjcgMy42LTQuNyAuMS0uNSAuMi0xLjEgLjItMS43ek0yMzAuNSAxMzcuNmwtLjggLjUgMS4xIDAtLjMtLjV6bTc2LjIgMTMwLjJsLS40LS43IDAgLjkgLjQtLjJ6Il19LG8zdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJjb2RlcGVuIixpY29uOls1MTIsNTEyLFtdLCJmMWNiIiwiTTUwMi4zIDE1OS43bC0yMzQtMTU2Yy04LTQuOS0xNi41LTUtMjQuNiAwbC0yMzQgMTU2Yy02IDQtOS43IDExLjEtOS43IDE4LjNMMCAzMzRjMCA3LjEgMy43IDE0LjMgOS43IDE4LjNsMjM0IDE1NmM4IDQuOSAxNi41IDUgMjQuNiAwbDIzNC0xNTZjNi00IDkuNy0xMS4xIDkuNy0xOC4zbDAtMTU2YzAtNy4xLTMuNy0xNC4zLTkuNy0xOC4zek0yNzggNjMuMWwxNzIuMyAxMTQuOS03Ni45IDUxLjQtOTUuNC02My43IDAtMTAyLjZ6bS00NCAwTDIzNCAxNjUuNyAxMzguNiAyMjkuNCA2MS43IDE3OCAyMzQgNjMuMXpNNDQgMjE5LjFMOTkuMSAyNTYgNDQgMjkyLjggNDQgMjE5LjF6TTIzNCA0NDguOEw2MS43IDMzNCAxMzguNiAyODIuNiAyMzQgMzQ2LjMgMjM0IDQ0OC44ek0yNTYgMzA4bC03Ny43LTUyIDc3LjctNTIgNzcuNyA1Mi03Ny43IDUyem0yMiAxNDAuOWwwLTEwMi42IDk1LjQtNjMuNyA3Ni45IDUxLjQtMTcyLjMgMTE0Ljl6bTE5MC0xNTZsLTU1LjEtMzYuOSA1NS4xLTM2LjkgMCA3My43eiJdfSxzM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmF2ZWxyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjJkOSIsIk00OTguNiAyMzQuMmMtMS4yLTEwLjMtMS43LTIwLjgtMy43LTMxLTIuNS0xMi40LTUuNy0yNC42LTkuNi0zNi42LTYuOC0yMC45LTE3LjItNDAuMy0zMC45LTU3LjUtNS45LTcuNi0xMi4xLTE0LjgtMTguOC0yMS43LTE0LjEtMTQtMzAtMjYuMS00Ny4xLTM2LjEtMTcuOC0xMC42LTM2LjgtMTguOS01Ni43LTI0LjctMTEtMy4xLTIyLjMtNS40LTMzLjUtNy42LTYuOC0xLjMtMTMuNy0xLjctMjAuNi0yLjUtLjMgMC0uNi0uNC0uOS0uNi0xMC44IDAtMjEuNSAwLTMyLjMgMC0yLjQgLjQtNC44IC45LTcuMiAxLjItMTEuNiAxLjItMjMuMSAzLjYtMzQuMyA3LjEtMTMuOCA0LjEtMjcuMSA5LjYtMzkuOCAxNi40LTEzLjMgNy0yNi4xIDE1LjEtMzguMSAyNC4yLTYuMiA0LjYtMTIuMyA5LjQtMTggMTQuNS0xMC4yIDkuMi0yMC40IDE4LjQtMjkuOSAyOC4zLTEyLjggMTMuMy0yNC4xIDI4LjEtMzMuNiA0NC04LjYgMTQtMTUuNSAyOS0yMC41IDQ0LjYtNy4yIDIyLjctMTAuMyA0Ni42LTkuMiA3MC4zIC42IDEzLjUgMiAyNi45IDQuNCA0MC4yIDMuNCAxOC40IDkgMzYuMyAxNi43IDUzLjMgMTMuNiAyOS4yIDMyLjEgNTEuNSA1MC40IDY3LjkgMTIuOCAxMS42IDI2LjggMjEuOSA0MS44IDMwLjYgMTcuNyAxMC40IDM2LjQgMTguOSA1NS45IDI1LjMgMTMuMyA0LjMgMjYuOSA3LjYgNDAuNiA5LjggNi4xIDEgMTIuMyAxLjMgMTguNCAxLjkgLjQgLjEgLjggLjMgMS4yIC42bDMyLjMgMGMyLjUtLjQgNS0uOSA3LjUtMS4xIDE2LjMtMS4zIDMyLjEtNS4zIDQ3LjUtMTAuNyAxNy4yLTUuOSAzMy43LTEzLjkgNDktMjMuOCA5LjctNi40IDE5LjQtMTMuMSAyOC43LTIwLjEgNS44LTQuMyAxMS05LjUgMTYuMy0xNC41IDQtMy43IDcuOC03LjYgMTEuNS0xMS41IDEyLTEyLjcgMjIuNi0yNi42IDMxLjQtNDEuNiA5LjUtMTYgMTcuNC0zMi45IDIyLjMtNTAuOSAyLjktMTAuNCA0LjktMjEgNy0zMS43IDEtNS4zIDEuMy0xMC43IDEuOS0xNi4xIDAtLjMgLjQtLjYgLjYtLjlsMC0zNy4xYy0uMi0uNi0uNC0xLjItLjYtMS44em0tMTYxLjEtMS4ycy0xNi42LTMtMjguNS0zYy0yNy4yIDAtMzMuNiAxNC45LTMzLjYgMzdsMCA5My43LTczLjUgMCAwLTE5MC43IDczLjUgMCAwIDMxLjljOC45LTI2LjggMjYuOC0zNi4yIDYyLTM2LjJsMCA2Ny4zeiJdfSxsM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYWxpcGF5IixpY29uOls0NDgsNTEyLFtdLCJmNjQyIiwiTTM3Ny43IDMyTDcwLjMgMzJDMzEuNCAzMiAwIDYzLjQgMCAxMDIuM0wwIDQwOS43QzAgNDQ4LjYgMzEuNCA0ODAgNzAuMyA0ODBsMzA3LjUgMGMzOC41IDAgNjkuOC0zMS4xIDcwLjMtNjkuNi00Ni0yNS42LTExMC42LTYwLjMtMTcxLjYtODguNC0zMi4xIDQ0LTg0LjEgODEtMTQ4LjYgODEtNzAuNiAwLTkzLjctNDUuMy05Ny03Ni40LTQtMzkgMTQuOS04MS41IDk5LjUtODEuNSAzNS40IDAgNzkuNCAxMC4yIDEyNy4xIDI1IDE2LjUtMzAuMSAyNi41LTYwLjMgMjYuNS02MC4zbC0xNzguMiAwIDAtMTYuNyA5Mi4xIDAgMC0zMS4yLTEwOS40IDAgMC0xOSAxMDkuNCAwIDAtNTAuNCA1MC45IDAgMCA1MC40IDEwOS40IDAgMCAxOS0xMDkuNCAwIDAgMzEuMiA4OC44IDBzLTE1LjIgNDYuNi0zOC4zIDkwLjljNDguOSAxNi43IDEwMCAzNiAxNDguNiA1Mi43bDAtMjM0LjRjLjItMzguNy0zMS4yLTcwLjMtNjkuOS03MC4zek00Ny4zIDMyM2MxIDIwLjIgMTAuMiA1My43IDY5LjkgNTMuNyA1Mi4xIDAgOTIuNi0zOS43IDExNy45LTcyLjktNDQuNi0xOC43LTg0LjUtMzEuNC0xMDkuNC0zMS40LTY3LjQgMC03OS40IDMzLjEtNzguNCA1MC42eiJdfSxjM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiY2MtYW1leCIsaWNvbjpbNTc2LDUxMixbXSwiZjFmMyIsIk0wIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw0ODAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEuMS02MS43IDAtMzEuOS0zNS4xLTMxLjkgMzUuMS0yMDMuNyAwIDAtMTYzLjgtNjUuOCAwIDgxLjctMTg0LjcgNzguNiAwIDI4LjEgNjMuMiAwLTYzLjIgOTcuMiAwIDE2LjkgNDcuNiAxNy00Ny42IDc1LjUgMCAwLTIuNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyem00NDAuNC0yMS43bDQyLjItNDYuMyA0MiA0Ni4zIDUxLjQgMC02OC03Mi4xIDY4LTcyLjEtNTAuNiAwLTQyIDQ2LjctNDEuNS00Ni43LTUxLjQgMCA2Ny41IDcyLjUtNjcuNCA3MS42IDAtMzMuMS04MyAwIDAtMjIuMiA4MC45IDAgMC0zMi4zLTgwLjkgMCAwLTIyLjQgODMgMCAwLTMzLjEtMTIyIDAgMCAxNDMuMiAxNzEuOCAwem05Ni4zLTcybDM5LjMgNDEuOSAwLTgzLjMtMzkuMyA0MS40em0tMzYuMy05MmwzNi45LTEwMC42IDAgMTAwLjYgMzguNyAwIDAtMTQzLjMtNjAuMiAwLTMyLjIgODkuMy0zMS45LTg5LjMtNjEuMiAwIDAgMTQzLjEtNjMuMi0xNDMuMS01MS4yIDAtNjIuNCAxNDMuMyA0MyAwIDExLjktMjguNyA2NS45IDAgMTIgMjguNyA4Mi43IDAgMC0xMDAuMyAzNi44IDEwMC4zIDM0LjQgMHpNMjgyIDE4NS40bDE5LjUtNDYuOSAxOS40IDQ2LjktMzguOSAweiJdfSxkM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicGllZC1waXBlci1hbHQiLGljb246WzU3Niw1MTIsW10sImYxYTgiLCJNMjQ0IDI0NmMtMy4yLTItNi4zLTIuOS0xMC4xLTIuOS02LjYgMC0xMi42IDMuMi0xOS4zIDMuN2wxLjcgNC45IDI3LjctNS43ek0zNzkuOSA0NDMuOWMtMTkgMC02NC4xIDkuNS03OS45IDE5LjhsNi45IDQ1LjFjMzUuNyA2LjEgNzAuMSAzLjYgMTA2LTkuOC00LjgtMTAtMjMuNS01NS4xLTMzLTU1LjF6TTM0MC44IDE3N2M2LjYgMi44IDExLjUgOS4yIDIyLjcgMjIuMSAyLTEuNCA3LjUtNS4yIDcuNS04LjYgMC00LjktMTEuOC0xMy4yLTEzLjItMjMgMTEuMi01LjcgMjUuMi02IDM3LjYtOC45IDY4LjEtMTYuNCAxMTYuMy01Mi45IDE0Ni44LTExNi43IDYuMS0xMi42IDExLjgtMjUuOCAxMi40LTM5LjlsLTIgMi42Yy0yOC40IDUwLTMzIDYzLjItODEuMyAxMDAtMzEuOSAyNC40LTY5LjIgNDAuMi0xMDYuNiA1NC42bC02LjMtLjMgMC0yMS44Yy0xOS42IDEuNi0xOS43LTE0LjYtMzEuNi0yMy0xOC43IDIwLjYtMzEuNiA0MC44LTU4LjkgNTEuMS0xMi43IDQuOC0xOS42IDEwLTI1LjkgMjEuOCAzNC45LTE2LjQgOTEuMi0xMy41IDk4LjgtMTB6TTU1NS41IDBsLS42IDEuMS0uMyAuOSAuNi0uNiAuMy0xLjR6TTQ5Ni4zIDM4Mi4xYy0zMy45LTU2LjktNzUuMy0xMTguNC0xNTAtMTE1LjVsLS4zLTZjLTEuMS0xMy41IDMyLjggMy4yIDM1LjEtMzFsLTE0LjQgNy4yYy0xOS44LTQ1LjctOC42LTU0LjMtNjUuNS01NC4zLTE0LjcgMC0yNi43IDEuNy00MS40IDQuNiAyLjkgMTguNiAyLjIgMzYuNy0xMC45IDUwLjNsMTkuNSA1LjVjLTEuNyAzLjItMi45IDYuMy0yLjkgOS44IDAgMjEgNDIuOCAyLjkgNDIuOCAzMy42IDAgMTguNC0zNi44IDYwLjEtNTQuOSA2MC4xLTggMC01My43LTUwLTUzLjQtNjAuMWwuMy00LjYgNTIuMy0xMS41YzEzLTIuNiAxMi4zLTIyLjctMi45LTIyLjctMy43IDAtNDMuMSA5LjItNDkuNCAxMC42LTItNS4yLTcuNS0xNC4xLTEzLjgtMTQuMS0zLjIgMC02LjMgMy4yLTkuNSA0LTkuMiAyLjYtMzEgMi45LTIxLjUgMjAuMUwxNS45IDI5OC41Yy01LjUgMS4xLTguOSA2LjMtOC45IDExLjggMCA2IDUuNSAxMC45IDExLjUgMTAuOSA4IDAgMTMxLjMtMjguNCAxNDcuNC0zMi4yIDIuNiAzLjIgNC42IDYuMyA3LjggOC42IDIwLjEgMTQuNCA1OS44IDg1LjkgNzYuNCA4NS45IDI0LjEgMCA1OC0yMi40IDcxLjMtNDEuOSAzLjItNC4zIDYuOS03LjUgMTIuNC02LjkgLjYgMTMuOC0zMS42IDM0LjItMzMgNDMuNy0xLjQgMTAuMi0xIDM1LjItLjMgNDEuMSAyNi43IDguMSA1Mi0zLjYgNzcuOS0yLjkgNC4zLTIxIDEwLjYtNDEuOSA5LjgtNjMuNWwtLjMtOS41Yy0xLjQtMzQuMi0xMC45LTM4LjUtMzQuOC01OC42LTEuMS0xLjEtMi42LTIuNi0zLjctNCAyLjItMS40IDEuMS0xIDQuNi0xLjcgODguNSAwIDU2LjMgMTgzLjYgMTExLjUgMjI5LjkgMzMuMS0xNSA3Mi41LTI3LjkgMTAzLjUtNDcuMi0yOS0yNS42LTUyLjYtNDUuNy03Mi43LTc5Ljl6TTMwMC4xIDQyOC4ybDAgMjcuMiAxMS44LTMuNC0yLjktMjMuOC04LjkgMHpNMjMxLjQgMjc3LjhsMjQuMSA2MS4yIDIxLTEzLjgtMzEuMy01MC45LTEzLjggMy41em04NC40IDE1NC45bDIgMTIuNGM5LTEuNSA1OC40LTYuNiA1OC40LTE0LjEgMC0xLjQtLjYtMy4yLS45LTQuNi0yNi44IDAtMzYuOSAzLjgtNTkuNSA2LjN6Il19LHUzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJsZXR0ZXJib3hkIixpY29uOls2NDAsNTEyLFtdLCJlNjJkIiwiTTUyMS4zIDEyOEM1ODYuOSAxMjggNjQwIDE4MS4xIDY0MCAyNDYuNlM1ODYuOSAzNjUuMiA1MjEuMyAzNjUuMmMtNDIuNSAwLTc5LjctMjIuMy0xMDAuNy01NS44IDExLjQtMTguMiAxOC0zOS43IDE4LTYyLjhzLTYuNi00NC42LTE4LTYyLjhsLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHpNMzIwIDEyOGM0Mi41IDAgNzkuNyAyMi4zIDEwMC43IDU1LjgtMTEuNCAxOC4yLTE4IDM5LjctMTggNjIuOHM2LjYgNDQuNiAxOCA2Mi44bC0uOCAxLjJjLTIwLjggMzIuMy01Ni44IDUzLjktOTcuOSA1NC42bC0yIDBjLTQyLjUgMC03OS43LTIyLjMtMTAwLjctNTUuOCAxMS40LTE4LjIgMTgtMzkuNyAxOC02Mi44cy02LjYtNDQuNi0xOC02Mi44bC44LTEuMmMyMC44LTMyLjMgNTYuOC01My45IDk3LjktNTQuNmwyIDB6bS0yMDEuMyAwYzQyLjUgMCA3OS43IDIyLjMgMTAwLjcgNTUuOC0xMS40IDE4LjItMTggMzkuNy0xOCA2Mi44czYuNiA0NC42IDE4IDYyLjhsLS44IDEuMmMtMjAuOCAzMi4zLTU2LjggNTMuOS05Ny45IDU0LjZsLTIgMEM1My4xIDM2NS4xIDAgMzEyLjEgMCAyNDYuNlM1My4xIDEyOCAxMTguNyAxMjh6Il19LHAzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJvcGVyYSIsaWNvbjpbNTEyLDUxMixbXSwiZjI2YSIsIk0zMjEuOSAzMi43Yy0xNzAuMiAwLTI1Mi42IDIyMy44LTE0Ny41IDM1NS4xIDM2LjUgNDUuNCA4OC42IDc1LjYgMTQ3LjUgNzUuNiAzNi4zIDAgNzAuMy0xMS4xIDk5LjQtMzAuNC00My44IDM5LjItMTAxLjkgNjMtMTY1LjMgNjMtMy45IDAtOCAwLTExLjktLjMtMTMxLjUtNi4xLTIzNi4xLTExNC42LTIzNi4xLTI0Ny43IDAtMTM3IDExMS0yNDggMjQ4LTI0OGwuOCAwYzYzLjEgLjMgMTIwLjcgMjQuMSAxNjQuNCA2My4xLTI5LTE5LjQtNjMuMS0zMC40LTk5LjMtMzAuNHpNNDIzLjcgNDMwLjRjLTQwLjkgMjQuNy05MC43IDIzLjYtMTMyLTUuOCA1Ni4yLTIwLjUgOTcuNy05MS42IDk3LjctMTc2LjYgMC04NC43LTQxLjItMTU1LjgtOTcuNC0xNzYuNiA0MS44LTI5LjIgOTEuMi0zMC4zIDEzMi45LTUgMTA1LjkgOTguNyAxMDUuNSAyNjUuNy0xLjIgMzY0eiJdfSxoM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToid2VpYm8iLGljb246WzUxMiw1MTIsW10sImYxOGEiLCJNNDA3IDE3Ny42YzcuNi0yNC0xMy40LTQ2LjgtMzcuNC00MS43LTIyIDQuOC0yOC44LTI4LjEtNy4xLTMyLjggNTAuMS0xMC45IDkyLjMgMzcuMSA3Ni41IDg0LjgtNi44IDIxLjItMzguOCAxMC44LTMyLTEwLjN6TTIxNC44IDQ0Ni43Yy0xMDYuMyAwLTIxNC44LTUxLjQtMjE0LjgtMTM2LjMgMC00NC4zIDI4LTk1LjQgNzYuMy0xNDMuNyA5OS43LTk5LjcgMjAzLjItMTAwLjkgMTczLjYtNS43LTQgMTMuMSAxMi4zIDUuNyAxMi4zIDYgNzkuNS0zMy42IDE0MC41LTE2LjggMTE0IDUxLjQtMy43IDkuNCAxLjEgMTAuOSA4LjMgMTMuMSAxMzUuNyA0Mi4zIDM0LjggMjE1LjItMTY5LjcgMjE1LjJ6TTM1OC41IDMwMC40Yy01LjQtNTUuNy03OC41LTk0LTE2My40LTg1LjctODQuOCA4LjYtMTQ4LjggNjAuMy0xNDMuNCAxMTZzNzguNSA5NCAxNjMuNCA4NS43Yzg0LjgtOC42IDE0OC44LTYwLjMgMTQzLjQtMTE2ek0zNDcuOSAzNS4xYy0yNS45IDUuNi0xNi44IDQzLjcgOC4zIDM4LjMgNzIuMy0xNS4yIDEzNC44IDUyLjggMTExLjcgMTI0LTcuNCAyNC4yIDI5LjEgMzcgMzcuNCAxMiAzMS45LTk5LjgtNTUuMS0xOTUuOS0xNTcuNC0xNzQuM3ptLTc4LjUgMzExYy0xNy4xIDM4LjgtNjYuOCA2MC0xMDkuMSA0Ni4zLTQwLjgtMTMuMS01OC01My40LTQwLjMtODkuNyAxNy43LTM1LjQgNjMuMS01NS40IDEwMy40LTQ1LjEgNDIgMTAuOCA2My4xIDUwLjIgNDYgODguNXptLTg2LjMtMzBjLTEyLjktNS40LTMwIC4zLTM4IDEyLjktOC4zIDEyLjktNC4zIDI4IDguNiAzNCAxMy4xIDYgMzAuOCAuMyAzOS4xLTEyLjkgOC0xMy4xIDMuNy0yOC4zLTkuNy0zNHptMzIuNi0xMy40Yy01LjEtMS43LTExLjQgLjYtMTQuMyA1LjQtMi45IDUuMS0xLjQgMTAuNiAzLjcgMTIuOSA1LjEgMiAxMS43LS4zIDE0LjYtNS40IDIuOC01LjIgMS4xLTEwLjktNC0xMi45eiJdfSxmM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToicmVhZG1lIixpY29uOls1NzYsNTEyLFtdLCJmNGQ1IiwiTTUyOC4zIDQ2LjVsLTEzOS44IDBjLTQ4LjEgMC04OS45IDMzLjMtMTAwLjQgODAuMy0xMC42LTQ3LTUyLjMtODAuMy0xMDAuNC04MC4zTDQ4IDQ2LjVDMjEuNSA0Ni41IDAgNjggMCA5NC41TDAgMzQwLjNjMCAyNi41IDIxLjUgNDggNDggNDhsODkuNyAwYzEwMi4yIDAgMTMyLjcgMjQuNCAxNDcuMyA3NSAuNyAyLjggNS4yIDIuOCA2IDAgMTQuNy01MC42IDQ1LjItNzUgMTQ3LjMtNzVsODkuNyAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjQ1LjdjMC0yNi40LTIxLjMtNDcuOS00Ny43LTQ4LjF6TTI0MiAzMTEuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjktLjEgMHptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6TTUwMS4zIDMxMS44YzAgMS45LTEuNSAzLjUtMy41IDMuNWwtMTYwLjMgMGMtMS45IDAtMy41LTEuNS0zLjUtMy41bDAtMjIuOWMwLTEuOSAxLjUtMy41IDMuNS0zLjVsMTYwLjQgMGMxLjkgMCAzLjUgMS41IDMuNSAzLjVsMCAyMi45LS4xIDB6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVsLTE2MC4zIDBjLTEuOSAwLTMuNS0xLjUtMy41LTMuNWwwLTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41bDE2MC40IDBjMS45IDAgMy41IDEuNSAzLjUgMy41bDAgMjIuOS0uMSAwem0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41bC0xNjAuMyAwYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVsMC0yMi44YzAtMS45IDEuNS0zLjUgMy41LTMuNWwxNjAuNCAwYzEuOSAwIDMuNSAxLjUgMy41IDMuNWwwIDIyLjgtLjEgMHoiXX0sbTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdvbGFuZyIsaWNvbjpbNjQwLDUxMixbXSwiZTQwZiIsIk00MDAuMSAxOTQuOGMtMTAuOSAyLjgtMTkuOSA0LjMtMjkuMSA3LjYtNy4zIDEuOS0xNC43IDMuOS0yMy4yIDYuMWwtLjYgLjFjLTQuMiAxLjItNC42IDEuMy04LjUtMy4yLTQuNy01LjMtOC4xLTguNy0xNC42LTExLjktMTkuNy05LjYtMzguNy02LjgtNTYuNCA0LjctMjEuMiAxMy43LTMyLjEgMzQtMzEuOCA1OS4yIC4zIDI1IDE3LjQgNDUuNSA0MS4yIDQ4LjkgMjIgMi44IDM5LjgtNC42IDUzLjgtMjAuNSAyLjEtMi42IDQtNS4zIDYuMS04LjMgLjgtMSAxLjUtMi4xIDIuMy0zLjNsLTYwLjEgMGMtNi41IDAtOC4xLTQtNS45LTkuMyA0LTkuNyAxMS41LTI1LjkgMTUuOS0zNCAuOS0xLjggMy4xLTUuOCA2LjktNS44bDEwMS4xIDBjNC41LTEzLjQgMTEuOC0yNi45IDIxLjYtMzkuNyAyMi43LTI5LjkgNDkuMy00NS41IDg3LjItNTIgMzEuOC01LjYgNjEuNy0yLjUgODguOSAxNS45IDI0LjYgMTYuOCAzOS44IDM5LjYgNDMuOSA2OS41IDUuMyA0Mi4xLTYuOSA3Ni4zLTM2LjcgMTA1LjYtMTkuNyAyMC45LTQ0LjkgMzQtNzMuOSAzOS45LTUuNiAxLTExLjEgMS41LTE2LjUgMi0yLjkgLjItNS43IC41LTguNSAuOC0yOC4zLS42LTU0LjItOC43LTc2LTI3LjQtMTUuMy0xMy4zLTI1LjktMjkuNi0zMS4xLTQ4LjUtMy43IDcuMy04IDE0LjQtMTQgMjEuMS0yMS42IDI5LjYtNTAuOSA0OC04Ny45IDUyLjktMzAuNiA0LjEtNTguOS0xLjgtODMuOS0yMC41LTIzLTE3LjUtMzYuMS00MC41LTM5LjUtNjkuMi00LjEtMzQgNS45LTY1LjQgMjYuNC05MS4zIDIyLjItMjkgNTEuNS00Ny40IDg3LjMtNTMuOSAyOS4zLTYuMiA1Ny4zLTEuOSA4Mi42IDE1LjMgMTYuNSAxMC45IDI4LjMgMjUuOCAzNi4xIDQzLjkgMS45IDIuOCAuNiA0LjQtMy4xIDUuM3pNNDguMyAyMDAuNGMtMS4zIDAtMS42LS42LS45LTEuNmw2LjYtOC40Yy42LS45IDIuMi0xLjUgMy40LTEuNWwxMTEuMyAwYzEuMiAwIDEuNSAuOSAuOSAxLjhsLTUuMyA4LjFjLS42IDEtMi4yIDEuOS0zLjEgMS45bC0xMTIuOC0uM3pNMS4yIDIyOS4xYy0xLjIgMC0xLjYtLjctLjktMS42bDYuNS04LjRjLjYtLjkgMi4yLTEuNiAzLjQtMS42bDE0Mi4xIDBjMS4yIDAgMS44IDEgMS41IDEuOWwtMi41IDcuNWMtLjMgMS4yLTEuNSAxLjktMi44IDEuOUwxLjIgMjI5LjF6bTc0LjUgMjYuOGMtLjYgLjktLjMgMS44IC45IDEuOGw2OCAuM2MuOSAwIDIuMi0uOSAyLjItMi4xbC42LTcuNWMwLTEuMy0uNi0yLjItMS45LTIuMmwtNjIuMyAwYy0xLjIgMC0yLjUgLjktMy4xIDEuOWwtNC40IDcuOHptNTAxLjUtMThjLS4yLTIuNi0uMy00LjgtLjctNy01LjYtMzAuOC0zNC00OC4zLTYzLjYtNDEuNC0yOSA2LjUtNDcuNyAyNC45LTU0LjUgNTQuMi01LjYgMjQuMyA2LjIgNDguOSAyOC42IDU4LjkgMTcuMiA3LjUgMzQuMyA2LjYgNTAuOC0xLjkgMjQuNi0xMy42IDM4LTMyLjcgMzkuNi01OS41LS4xLTEuMi0uMS0yLjMtLjItMy4zeiJdfSxnM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3RhY2stZXhjaGFuZ2UiLGljb246WzQ0OCw1MTIsW10sImYxOGQiLCJNMTguMSAzMzIuM2w0MTIuNyAwIDAgMjJjMCAzNy43LTI5LjMgNjgtNjUuMyA2OGwtMTkgMC04Ni44IDg5LjcgMC04OS43LTE3Ni4zIDBjLTM2IDAtNjUuMy0zMC4zLTY1LjMtNjhsMC0yMnptMC0yMy42bDQxMi43IDAgMC04NS00MTIuNyAwIDAgODV6bTAtMTA5LjRsNDEyLjcgMCAwLTg1LTQxMi43IDAgMCA4NXpNMzY1LjQgMEw4My40IDBjLTM2IDAtNjUuMyAzMC4zLTY1LjMgNjcuN2wwIDIyLjMgNDEyLjcgMCAwLTIyLjNDNDMwLjcgMzAuMyA0MDEuNCAwIDM2NS40IDB6Il19LGIzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJndWxwIixpY29uOlsyNTYsNTEyLFtdLCJmM2FlIiwiTTIxMCAzOTEuMWwtMTQuMSAyNC42LTQuNiA4MC4yYzAgOC45LTI4LjMgMTYuMS02My4xIDE2LjFzLTYzLjEtNy4yLTYzLjEtMTYuMWwtNS44LTc5LjQtMTQuOS0yNS40YzQxLjIgMTcuMyAxMjYgMTYuNyAxNjUuNiAwek0xNCAxMzcuOEwyNy42IDI2My4zYzUuOS0yMCAyMC44LTQ3IDQwLTU1LjIgNi4zLTIuNyAxMi43LTIuNyAxOC43IC45IDUuMiAzIDkuNiA5LjMgMTAuMSAxMS44IDEuMiA2LjUtMiA5LjEtNC41IDkuMS0zIDAtNS4zLTQuNi02LjgtNy4zLTQuMS03LjMtMTAuMy03LjYtMTYuOS0yLjgtNi45IDUtMTIuOSAxMy40LTE3LjEgMjAuNy01LjEgOC44LTkuNCAxOC41LTEyIDI4LjItMS41IDUuNi0yLjkgMTQuNi0uNiAxOS45IDEgMi4yIDIuNSAzLjYgNC45IDMuNiA1IDAgMTIuMy02LjYgMTUuOC0xMC4xIDQuNS00LjUgMTAuMy0xMS41IDEyLjUtMTZsNS4yLTE1LjVjMi42LTYuOCA5LjktNS42IDkuOSAwIDAgMTAuMi0zLjcgMTMuNi0xMCAzNC43LTUuOCAxOS41LTcuNiAyNS44LTcuNiAyNS44LS43IDIuOC0zLjQgNy41LTYuMyA3LjUtMS4yIDAtMi4xLS40LTIuNi0xLjItMS0xLjQtLjktNS4zLS44LTYuMyAuMi0zLjIgNi4zLTIyLjIgNy4zLTI1LjItMiAyLjItNC4xIDQuNC02LjQgNi42LTUuNCA1LjEtMTQuMSAxMS44LTIxLjUgMTEuOC0zLjQgMC01LjYtLjktNy43LTIuNGw3LjYgNzkuNmMyIDUgMzkuMiAxNy4xIDg4LjIgMTcuMSA0OS4xIDAgODYuMy0xMi4yIDg4LjItMTcuMWwxMC45LTk0LjZjLTUuNyA1LjItMTIuMyAxMS42LTE5LjYgMTQuOC01LjQgMi4zLTE3LjQgMy44LTE3LjQtNS43IDAtNS4yIDkuMS0xNC44IDE0LjQtMjEuNSAxLjQtMS43IDQuNy01LjkgNC43LTguMSAwLTIuOS02LTIuMi0xMS43IDIuNS0zLjIgMi43LTYuMiA2LjMtOC43IDkuNy00LjMgNi02LjYgMTEuMi04LjUgMTUuNS02LjIgMTQuMi00LjEgOC42LTkuMSAyMi01IDEzLjMtNC4yIDExLjgtNS4yIDE0LS45IDEuOS0yLjIgMy41LTQgNC41LTEuOSAxLTQuNSAuOS02LjEtLjMtLjktLjYtMS4zLTEuOS0xLjMtMy43IDAtLjkgLjEtMS44IC4zLTIuNyAxLjUtNi4xIDcuOC0xOC4xIDE1LTM0LjMgMS42LTMuNyAxLTIuNiAuOC0yLjMtNi4yIDYtMTAuOSA4LjktMTQuNCAxMC41LTUuOCAyLjYtMTMgMi42LTE0LjUtNC4xLS4xLS40LS4xLS44LS4yLTEuMi0xMS44IDkuMi0yNC4zIDExLjctMjAtOC4xLTQuNiA4LjItMTIuNiAxNC45LTIyLjQgMTQuOS00LjEgMC03LjEtMS40LTguNi01LjEtMi4zLTUuNSAxLjMtMTQuOSA0LjYtMjMuOCAxLjctNC41IDQtOS45IDcuMS0xNi4yIDEuNi0zLjQgNC4yLTUuNCA3LjYtNC41IC42IC4yIDEuMSAuNCAxLjYgLjcgMi42IDEuOCAxLjYgNC41IC4zIDcuMi0zLjggNy41LTcuMSAxMy05LjMgMjAuOC0uOSAzLjMtMiA5IDEuNSA5IDIuNCAwIDQuNy0uOCA2LjktMi40IDQuNi0zLjQgOC4zLTguNSAxMS4xLTEzLjUgMi0zLjYgNC40LTguMyA1LjYtMTIuMyAuNS0xLjcgMS4xLTMuMyAxLjgtNC44IDEuMS0yLjUgMi42LTUuMSA1LjItNS4xIDEuMyAwIDIuNCAuNSAzLjIgMS41IDEuNyAyLjIgMS4zIDQuNSAuNCA2LjktMiA1LjYtNC43IDEwLjYtNi45IDE2LjctMS4zIDMuNS0yLjcgOC0yLjcgMTEuNyAwIDMuNCAzLjcgMi42IDYuOCAxLjIgMi40LTEuMSA0LjgtMi44IDYuOC00LjUgMS4yLTQuOSAuOS0zLjggMjYuNC02OC4yIDEuMy0zLjMgMy43LTQuNyA2LjEtNC43IDEuMiAwIDIuMiAuNCAzLjIgMS4xIDEuNyAxLjMgMS43IDQuMSAxIDYuMi0uNyAxLjktLjYgMS4zLTQuNSAxMC41LTUuMiAxMi4xLTguNiAyMC44LTEzLjIgMzEuOS0xLjkgNC42LTcuNyAxOC45LTguNyAyMi4zLS42IDIuMi0xLjMgNS44IDEgNS44IDUuNCAwIDE5LjMtMTMuMSAyMy4xLTE3IC4yLS4zIC41LS40IC45LS42IC42LTEuOSAxLjItMy43IDEuNy01LjUgMS40LTMuOCAyLjctOC4yIDUuMy0xMS4zIC44LTEgMS43LTEuNiAyLjctMS42IDIuOCAwIDQuMiAxLjIgNC4yIDQgMCAxLjEtLjcgNS4xLTEuMSA2LjIgMS40LTEuNSAyLjktMyA0LjUtNC41IDE1LTEzLjkgMjUuNy02LjggMjUuNyAuMiAwIDcuNC04LjkgMTcuNy0xMy44IDIzLjQtMS42IDEuOS00LjkgNS40LTUgNi40IDAgMS4zIC45IDEuOCAyLjIgMS44IDIgMCA2LjQtMy41IDgtNC43IDUtMy45IDExLjgtOS45IDE2LjYtMTQuMWwxNC44LTEzNi44Yy0zMC41IDE3LjEtMTk3LjYgMTcuMi0yMjguMyAuMnptMjI5LjctOC41YzAgMjEtMjMxLjIgMjEtMjMxLjIgMCAwLTguOCA1MS44LTE1LjkgMTE1LjYtMTUuOSA5IDAgMTcuOCAuMSAyNi4zIC40TDE2NyA2NS4xIDIyOC4zIC42YzEuNC0xLjQgNS44LS4yIDkuOSAzLjVzNi42IDcuOSA1LjMgOS4zbC0uMSAuMS01Ny4zIDYwLjUtMTAgNDAuN2MzOS45IDIuNiA2Ny42IDguMSA2Ny42IDE0LjZ6bS02OS40IDQuNmMwLS44LS45LTEuNS0yLjUtMi4xbC0uMiAuOGMwIDEuMy01IDIuNC0xMS4xIDIuNHMtMTEuMS0xLjEtMTEuMS0yLjRjMC0uMSAwLS4yIC4xLS4zbC4yLS43Yy0xLjggLjYtMyAxLjQtMyAyLjMgMCAyLjEgNi4yIDMuNyAxMy43IDMuNyA3LjcgLjEgMTMuOS0xLjYgMTMuOS0zLjd6Il19LHYzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJ5ZWxwIixpY29uOlszODQsNTEyLFtdLCJmMWU5IiwiTTQyLjkgMjQwLjNsOTkuNiA0OC42YzE5LjIgOS40IDE2LjIgMzcuNS00LjUgNDIuN0wzMC41IDM1OC41Yy0zLjIgLjgtNi40IC45LTkuNiAuM3MtNi4yLTEuOC04LjktMy43LTQuOS00LjMtNi42LTcuMS0yLjctNS45LTMuMS05LjJjLTMuMy0yOC44LS4yLTU3LjkgOS04NS4zIDEtMy4xIDIuNy01LjkgNC45LTguM3M0LjktNC4yIDcuOS01LjUgNi4yLTEuOCA5LjUtMS44IDYuNCAuOSA5LjMgMi4zem00NCAyMzkuM2MyMy44IDE2LjMgNTAuOSAyNy4zIDc5LjQgMzIuMSAzLjIgLjYgNi41IC40IDkuNi0uNHM2LjEtMi4zIDguNi00LjQgNC42LTQuNiA2LTcuNSAyLjMtNi4xIDIuNC05LjRsMy45LTExMC44Yy43LTIxLjMtMjUuNS0zMS45LTM5LjgtMTYuMUw4Mi44IDQ0NS41Yy0yLjIgMi40LTMuOCA1LjMtNC44IDguNHMtMS4zIDYuNC0uOSA5LjYgMS41IDYuMyAzLjEgOS4xIDMuOSA1LjIgNi42IDdsMCAwek0yMzIuMiAzNjkuN2w1OC44IDk0YzEuNyAyLjggNCA1LjEgNi44IDYuOXM1LjggMyA5IDMuNSA2LjUgLjMgOS43LS41IDYuMS0yLjQgOC42LTQuNGMyMi4zLTE4LjQgNDAuMy00MS41IDUyLjctNjcuNiAxLjQtMi45IDIuMS02LjEgMi4yLTkuNHMtLjYtNi41LTEuOS05LjQtMy4yLTUuNy01LjYtNy44LTUuMi0zLjktOC4zLTQuOUwyNTguNyAzMzUuN2MtMjAuMy02LjUtMzcuOCAxNS44LTI2LjUgMzMuOXpNMzgwLjYgMjM3LjRjLTExLjUtMjYuNS0yOC43LTUwLjItNTAuNC02OS4zLTIuNC0yLjEtNS4zLTMuNy04LjQtNC43cy02LjQtMS4yLTkuNi0uOC02LjMgMS41LTkuMSAzLjItNS4xIDQtNi45IDYuN2wtNjIgOTEuOWMtMTEuOSAxNy43IDQuNyA0MC42IDI1LjIgMzQuN0wzNjYgMjY4LjZjMy4xLS45IDYtMi41IDguNS00LjZzNC41LTQuNyA1LjgtNy43IDIuMS02LjIgMi4yLTkuNC0uNi02LjUtMS45LTkuNWwwIDB6TTYyLjEgMzAuMmMtMi44IDEuNC01LjQgMy4zLTcuNCA1LjdzLTMuNiA1LjItNC41IDguMi0xLjIgNi4yLS45IDkuMyAxLjMgNi4xIDIuOSA4LjlMMTU2LjMgMjQyLjZjMTEuNyAyMC4yIDQyLjYgMTEuOSA0Mi42LTExLjRsMC0yMDguM2MwLTMuMS0uNi02LjMtMS44LTkuMnMtMy4xLTUuNS01LjQtNy42LTUtMy44LTgtNC44LTYuMS0xLjQtOS4zLTEuMmMtMzkgMy4xLTc3IDEzLjMtMTEyLjMgMzAuMXoiXX0seDN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImdvZm9yZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjNhNyIsIk0zNDggMzE5LjhsLTEzLjIgMCAwIDM0LjdjLTI0LjUgMjMuMS01Ni4zIDM1LjgtODkuOSAzNS44LTczLjIgMC0xMzIuNC02MC4yLTEzMi40LTEzNC40IDAtNzQuMSA1OS4yLTEzNC40IDEzMi40LTEzNC40IDM1LjMgMCA2OC42IDE0IDkzLjYgMzkuNGw2Mi4zLTYzLjNjLTQxLjgtNDIuMy05Ny4xLTY1LjYtMTU2LjEtNjUuNi0xMjIuNyAwLTIyMC43IDEwMC42LTIyMC43IDIyNCAwIDEyMi41IDk3IDIyNCAyMjAuNyAyMjQgNjMuMiAwIDEyNC41LTI2LjIgMTcxLTgyLjUtMi0yNy42LTEzLjQtNzcuNy02Ny43LTc3Ljd6TTMzNS45IDIwNy4zbC0xMDYuMyAwIDAgODkgMTE4LjQgMGMzMy41IDAgNjAuNSAxNS4xIDc2IDQxLjhsMC0zMC42YzAtNjUuMi00MC40LTEwMC4yLTg4LjEtMTAwLjJ6Il19LHkzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJhdmlhdG8iLGljb246WzY0MCw1MTIsW10sImY0MjEiLCJNMTA3LjIgMjgzLjVsLTE5LTQxLjgtNTIuMSAwLTE5IDQxLjgtMTcuMSAwIDYyLjItMTMxLjQgNjIuMiAxMzEuNC0xNy4yIDB6bS00NS05OC4xbC0xOS42IDQyLjUgMzkuMiAwLTE5LjYtNDIuNXpNMTc0LjkgMjg3LjhsLTYyLjItMTMxLjQgMTcuMSAwIDQ1LjEgOTYgNDUuMS05NiAxNyAwLTYyLjEgMTMxLjR6bTgwLjYtNC4zbDAtMTI3LjEgMTUuNSAwIDAgMTI3LjEtMTUuNSAwek00NjQuNiAxNjcuOWwwIDExNS42LTE3LjMgMCAwLTExNS42LTQxLjIgMCAwLTExLjUgOTkuNiAwIDAgMTEuNS00MS4xIDB6TTY0MCAyMTguOGMwIDkuMi0xLjcgMTcuOC01LjEgMjUuOHMtOC4yIDE1LjEtMTQuMiAyMS4xLTEzLjEgMTAuOC0yMS4xIDE0LjItMTYuNiA1LjEtMjUuOCA1LjEtMTcuOC0xLjctMjUuOC01LjEtMTUuMS04LjItMjEuMS0xNC4yLTEwLjgtMTMtMTQuMi0yMS4xYy0zLjQtOC01LjEtMTYuNi01LjEtMjUuOHMxLjctMTcuOCA1LjEtMjUuOCA4LjItMTUuMSAxNC4yLTIxLjEgMTMtOC40IDIxLjEtMTEuOWM4LTMuNCAxNi42LTUuMSAyNS44LTUuMXMxNy44IDEuNyAyNS44IDUuMSAxNS4xIDUuOCAyMS4xIDExLjljNiA2IDEwLjcgMTMuMSAxNC4yIDIxLjEgMy40IDggNS4xIDE2LjYgNS4xIDI1Ljh6bS0xNS41IDBjMC03LjMtMS4zLTE0LTMuOS0yMC4zcy02LjItMTEuNy0xMC44LTE2LjMtMTAtOC4yLTE2LjItMTAuOS0xMi44LTQtMTkuOC00LTEzLjYgMS4zLTE5LjggNC0xMS42IDYuMy0xNi4yIDEwLjktOC4yIDEwLTEwLjggMTYuMy0zLjkgMTMuMS0zLjkgMjAuM2MwIDcuMyAxLjMgMTQgMy45IDIwLjNzNi4yIDExLjcgMTAuOCAxNi4zIDEwIDguMiAxNi4yIDEwLjkgMTIuOCA0IDE5LjggNCAxMy42LTEuMyAxOS44LTQgMTEuNi02LjMgMTYuMi0xMC45IDguMi0xMCAxMC44LTE2LjMgMy45LTEzLjEgMy45LTIwLjN6bS05NC44IDk2LjdsMC02LjMgODguOS0xMC0yNDIuOSAxMy40Yy42LTIuMiAxLjEtNC42IDEuNC03LjIgLjMtMiAuNS00LjIgLjYtNi41bDY0LjgtOC4xLTY0LjkgMS45YzAtLjQtLjEtLjctLjEtMS4xLTIuOC0xNy4yLTI1LjUtMjMuNy0yNS41LTIzLjdsLTEuMS0yNi4zIDIzLjggMCAxOSA0MS44IDE3LjEgMC02Mi4yLTEzMS40LTYyLjIgMTMxLjQgMTcuMSAwIDE5LTQxLjggMjMuNiAwLTEuMSAyNi40cy0yMi43IDYuNS0yNS41IDIzLjdjLS4xIC4zLS4xIC43LS4xIDEuMWwtNjQuOS0xLjkgNjQuOCA4LjFjLjEgMi4zIC4zIDQuNCAuNiA2LjUgLjMgMi42IC44IDUgMS40IDcuMmwtMjQyLjktMTMuNSA4OC45IDEwIDAgNi4zYy01LjkgLjktMTAuNSA2LTEwLjUgMTIuMiAwIDYuOCA1LjYgMTIuNCAxMi40IDEyLjRzMTIuNC01LjYgMTIuNC0xMi40YzAtNi4yLTQuNi0xMS4zLTEwLjUtMTIuMmwwLTUuOCA4MC4zIDkgMCA1LjRjLTUuNyAxLjEtOS45IDYuMi05LjkgMTIuMSAwIDYuOCA1LjYgMTAuMiAxMi40IDEwLjJzMTIuNC0zLjQgMTIuNC0xMC4yYzAtNi00LjMtMTEtOS45LTEyLjFsMC00LjkgMjguNCAzLjIgMCAyMy43LTUuOSAwIDAgMTMuOSA1LjkgMCAwLTYuNiA1IDAgMCA2LjYgNS45IDAgMC0xMy44LTUuOSAwIDAtMjMuMiAzOC4zIDQuM2M4LjEgMTEuNCAxOSAxMy42IDE5IDEzLjZsLS4xIDYuNy01LjEgLjItLjEgMTIuMSA0LjEgMCAuMS01IDUuMiAwIC4xIDUgNC4xIDAtLjEtMTIuMS01LjEtLjItLjEtNi43czEwLjktMi4xIDE5LTEzLjZsMzguMy00LjMgMCAyMy4yLTUuOSAwIDAgMTMuOCA1LjkgMCAwLTYuNiA1IDAgMCA2LjYgNS45IDAgMC0xMy44LTUuOSAwIDAtMjMuNyAyOC40LTMuMiAwIDQuOWMtNS43IDEuMS05LjkgNi4yLTkuOSAxMi4xIDAgNi44IDUuNiAxMC4yIDEyLjQgMTAuMnMxMi40LTMuNCAxMi40LTEwLjJjMC02LTQuMy0xMS05LjktMTIuMWwwLTUuNCA4MC4zLTkgMCA1LjhjLTUuOSAuOS0xMC41IDYtMTAuNSAxMi4yIDAgNi44IDUuNiAxMi40IDEyLjQgMTIuNHMxMi40LTUuNiAxMi40LTEyLjRjLS4yLTYuMy00LjctMTEuNC0xMC43LTEyLjN6TTMyOC45IDIyNy45bDE5LjYtNDIuNSAxOS42IDQyLjUtMTcuOSAwLTEuNy00MC4zLTEuNyA0MC4zLTE3LjkgMHoiXX0sdzN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InBhZGxldCIsaWNvbjpbNjQwLDUxMixbXSwiZTRhMCIsIk0yOTcuOSAwbC4xIDBjNy42IC4xIDE0LjQgNC43IDE3LjUgMTEuOGwxMzIgMzA4LjUgLjMtLjEgLjIgLjQtMi44IDEwLTQyLjkgMTU4Yy0zLjcgMTYuMi0xOS43IDI2LjMtMzUuOCAyMi42bC02OC40LTE1LjYtNjguNSAxNS42Yy0xNi4xIDMuNy0zMi4xLTYuNC0zNS44LTIyLjZsLTQyLjktMTU4LTIuNy0xMCAuMS0uNCAxMzIuMS0zMDguNGMzLTcgOS45LTExLjYgMTcuNS0xMS44ek0xNjAuMSAzMjIuMWwxMzEgMzkuMSA2LjkgMTIyLjUgNy45LTEyMS41IDEzMC42LTM5LjMgLjItLjEtMTMxIDI1LjEtOC42LTMyMC4yLTUuMiAzMjAuMi0xMzEuOC0yNS44ek00MjYgMjIyLjZsOTQuNC00MSA3My44IDAtMTU3IDI0Ny42IDMxLjYtMTA5LTQyLjgtOTcuNnptMTcxLjUtNDEuMmw0MS40IDc2LjJjNCA3LjUtMy45IDE1LjktMTEuNiAxMi4ybC00Ny42LTIyLjcgMTcuOC02NS43ek0xMjcuMyAzMTguNUwxNTguNyA0MzAgMS42IDE1NC41Yy01LjktMTAuNCA1LjUtMjIgMTUuOS0xNi4ybDE1MS44IDg0LjItNDIuMSA5NnoiXX0sTTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImVkZ2UtbGVnYWN5IixpY29uOls0NDgsNTEyLFtdLCJlMDc4IiwiTS02IDIyOC4ybC40LS41YzAgLjIgMCAuMy0uMSAuNWwtLjMgMHptNDYwLjYgMTUuNWMwLTQ0LTcuOC04NC41LTI4LjgtMTIyLjQtNDEtNzMuNC0xMTMuNi0xMTMuMy0xOTguNi0xMTMuMy0xMzkuOS0uMy0yMTguMyAxMDUuMi0yMzIuOCAyMTkuNyA0Mi40LTYxLjMgMTE3LjEtMTIxLjQgMjIwLjQtMTI1IDAgMCAxMDkuNyAwIDk5LjQgMTA1bC0xNzUuOCAwYzYuNC0zNy40IDE4LjUtNTkgMzQuMy03OC45LTc1IDM0LjktMTIxLjggOTYuMS0xMjAuOCAxODguMyAuOCA3MS41IDUwLjEgMTQ0LjggMTIwLjggMTcyIDgzLjQgMzEuOCAxOTIuOCA3LjIgMjQwLjEtMjEuM2wwLTEwNC40Yy04MC45IDU2LjUtMjcwLjkgNjAuOS0yNzIuMy02Ny42bDMxNC4xIDAgMC01Mi4xeiJdfSxnbmU9e3ByZWZpeDoiZmFiIixpY29uTmFtZToic3F1YXJlLWxhc3RmbSIsaWNvbjpbNDQ4LDUxMixbImxhc3RmbS1zcXVhcmUiXSwiZjIwMyIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMjEwLjcgMjgwLjhjLTEuOC01LjUtMy40LTEwLjgtNS0xNS45LTEyLjktNDEuOS0yMS02OC40LTU4LTY4LjQtMjIuNCAwLTQ1LjEgMTYuMS00NS4xIDYxLjIgMCAzNS4yIDE4IDU3LjIgNDMuMyA1Ny4yIDI4LjYgMCA0Ny42LTIxLjMgNDcuNi0yMS4zbDExLjcgMzEuOXMtMTkuOCAxOS40LTYxLjIgMTkuNGMtNTEuMyAwLTc5LjktMzAuMS03OS45LTg1LjggMC01Ny45IDI4LjYtOTIgODIuNS05MiA2Ny45IDAgNzkuMyAzNS4zIDk2LjQgODguNCAxLjQgNC40IDIuOSA4LjkgNC40IDEzLjUgOC44IDI2LjggMjQuMiA0Ni4yIDYxLjIgNDYuMiAyNC45IDAgMzguMS01LjUgMzguMS0xOS4xIDAtMTcuNS0xNi45LTIxLjItNDAtMjYuNC0zLjItLjctNi41LTEuNC05LjktMi4yLTMwLjQtNy4zLTQyLjUtMjMuMS00Mi41LTQ4IDAtNDAgMzIuMy01Mi40IDY1LjItNTIuNCAzNy40IDAgNjAuMSAxMy42IDYzIDQ2LjZsLTM2LjcgNC40Yy0xLjUtMTUuOC0xMS0yMi40LTI4LjYtMjIuNC0xNi4xIDAtMjYgNy4zLTI2IDE5LjggMCAxMSA0LjggMTcuNiAyMC45IDIxLjMgMi4yIC41IDQuNSAxIDYuNyAxLjQgMzEuMSA2LjUgNjUuMSAxMy43IDY1LjEgNTYuMSAuMSAzNi43LTMwLjcgNTAuNi03Ni4xIDUwLjYtNjMuNCAwLTg1LjQtMjguNi05Ny4xLTY0LjF6Il19LGszdD1nbmUsUzN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6Imdvb2RyZWFkcy1nIixpY29uOlszMjAsNTEyLFtdLCJmM2E5IiwiTTEwLjggNDAzLjNsMi44IDBjMTIuNyAwIDI1LjUgMCAzOC4yIC4xIDEuNiAwIDMuMS0uNCAzLjYgMi4xIDcuMSAzNC45IDMwIDU0LjYgNjIuOSA2My45IDI2LjkgNy42IDU0LjEgNy44IDgxLjMgMS44IDMzLjgtNy40IDU2LTI4LjMgNjgtNjAuNCA4LTIxLjUgMTAuNy00My44IDExLTY2LjUgLjEtNS44IC4zLTQ3LS4yLTUyLjhsLS45LS4zYy0uOCAxLjUtMS43IDIuOS0yLjUgNC40LTIyLjEgNDMuMS02MS4zIDY3LjQtMTA1LjQgNjkuMS0xMDMgNC0xNjkuNC01Ny0xNzItMTc2LjItLjUtMjMuNyAxLjgtNDYuOSA4LjMtNjkuNyAyMC42LTcxLjEgNzQuNi0xMTguMiAxNTMuOS0xMTguOCA2MS4zLS40IDEwMS41IDM4LjcgMTE2LjIgNzAuMyAuNSAxLjEgMS4zIDIuMyAyLjQgMS45bDAtNjEuNiA0NC4zIDBjMCAyODAuMyAuMSAzMzIuMiAuMSAzMzIuMi0uMSA3OC41LTI2LjcgMTQzLjctMTAzIDE2Mi4yLTY5LjUgMTYuOS0xNTkgNC44LTE5Ni01Ny4yLTgtMTMuNS0xMS44LTI4LjMtMTMtNDQuNXpNMTU3LjEgMzYuNWMtNTIuNS0uNS0xMDguNSA0MC43LTExNSAxMzMuOC00LjEgNTkgMTQuOCAxMjIuMiA3MS41IDE0OC42IDI3LjYgMTIuOSA3NC4zIDE1IDEwOC4zLTguNyA0Ny42LTMzLjIgNjIuNy05NyA1NC44LTE1NC05LjctNzEuMS00Ny44LTEyMC0xMTkuNi0xMTkuN3oiXX0sejN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImNjLW1hc3RlcmNhcmQiLGljb246WzU3Niw1MTIsW10sImYxZjEiLCJNNDgyLjkgNDEwLjNjMCA2LjgtNC42IDExLjctMTEuMiAxMS43LTYuOCAwLTExLjItNS4yLTExLjItMTEuN3M0LjQtMTEuNyAxMS4yLTExLjdjNi42IDAgMTEuMiA1LjIgMTEuMiAxMS43ek0xNzIuMSAzOTguNmMtNy4xIDAtMTEuMiA1LjItMTEuMiAxMS43UzE2NSA0MjIgMTcyLjEgNDIyYzYuNSAwIDEwLjktNC45IDEwLjktMTEuNy0uMS02LjUtNC40LTExLjctMTAuOS0xMS43em0xMTcuNS0uM2MtNS40IDAtOC43IDMuNS05LjUgOC43bDE5LjEgMGMtLjktNS43LTQuNC04LjctOS42LTguN3ptMTA3LjggLjNjLTYuOCAwLTEwLjkgNS4yLTEwLjkgMTEuN3M0LjEgMTEuNyAxMC45IDExLjcgMTEuMi00LjkgMTEuMi0xMS43YzAtNi41LTQuNC0xMS43LTExLjItMTEuN3ptMTA1LjkgMjYuMWMwIC4zIC4zIC41IC4zIDEuMSAwIC4zLS4zIC41LS4zIDEuMS0uMyAuMy0uMyAuNS0uNSAuOC0uMyAuMy0uNSAuNS0xLjEgLjUtLjMgLjMtLjUgLjMtMS4xIC4zLS4zIDAtLjUgMC0xLjEtLjMtLjMgMC0uNS0uMy0uOC0uNS0uMy0uMy0uNS0uNS0uNS0uOC0uMy0uNS0uMy0uOC0uMy0xLjEgMC0uNSAwLS44IC4zLTEuMSAwLS41IC4zLS44IC41LTEuMSAuMy0uMyAuNS0uMyAuOC0uNSAuNS0uMyAuOC0uMyAxLjEtLjMgLjUgMCAuOCAwIDEuMSAuMyAuNSAuMyAuOCAuMyAxLjEgLjVzLjIgLjYgLjUgMS4xem0tMi4yIDEuNGMuNSAwIC41LS4zIC44LS4zIC4zLS4zIC4zLS41IC4zLS44czAtLjUtLjMtLjhjLS4zIDAtLjUtLjMtMS4xLS4zbC0xLjYgMCAwIDMuNSAuOCAwIDAtMS40IC4zIDAgMS4xIDEuNCAuOCAwLTEuMS0xLjN6TTU3NiA4MWwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODFjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgODFDMCA1NC41IDIxLjUgMzMgNDggMzNsNDgwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTY0IDIyMC42YzAgNzYuNSA2Mi4xIDEzOC41IDEzOC41IDEzOC41IDI3LjIgMCA1My45LTguMiA3Ni41LTIzLjEtNzIuOS01OS4zLTcyLjQtMTcxLjIgMC0yMzAuNS0yMi42LTE1LTQ5LjMtMjMuMS03Ni41LTIzLjEtNzYuNC0uMS0xMzguNSA2Mi0xMzguNSAxMzguMnpNMjg4IDMyOS40YzcwLjUtNTUgNzAuMi0xNjIuMiAwLTIxNy41LTcwLjIgNTUuMy03MC41IDE2Mi42IDAgMjE3LjV6TTE0NS43IDQwNS43YzAtOC43LTUuNy0xNC40LTE0LjctMTQuNy00LjYgMC05LjUgMS40LTEyLjggNi41LTIuNC00LjEtNi41LTYuNS0xMi4yLTYuNS0zLjggMC03LjYgMS40LTEwLjYgNS40bDAtNC40LTguMiAwIDAgMzYuNyA4LjIgMGMwLTE4LjktMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAuMiA4LjIgMzAuMmw3LjkgMGMwLTE4LjMtMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAgOC4yIDMwLjJsOC4yIDAgMC0yMy0uMiAwek0xOTAuNiAzOTJsLTcuOSAwIDAgNC40Yy0yLjctMy4zLTYuNS01LjQtMTEuNy01LjQtMTAuMyAwLTE4LjIgOC4yLTE4LjIgMTkuMyAwIDExLjIgNy45IDE5LjMgMTguMiAxOS4zIDUuMiAwIDktMS45IDExLjctNS40bDAgNC42IDcuOSAwIDAtMzYuOHptNDAuNSAyNS42YzAtMTUtMjIuOS04LjItMjIuOS0xNS4yIDAtNS43IDExLjktNC44IDE4LjUtMS4xbDMuMy02LjVjLTkuNC02LjEtMzAuMi02LTMwLjIgOC4yIDAgMTQuMyAyMi45IDguMyAyMi45IDE1IDAgNi4zLTEzLjUgNS44LTIwLjcgLjhsLTMuNSA2LjNjMTEuMiA3LjYgMzIuNiA2IDMyLjYtNy41em0zNS40IDkuM2wtMi4yLTYuOGMtMy44IDIuMS0xMi4yIDQuNC0xMi4yLTQuMWwwLTE2LjYgMTMuMSAwIDAtNy40LTEzLjEgMCAwLTExLjItOC4yIDAgMCAxMS4yLTcuNiAwIDAgNy4zIDcuNiAwIDAgMTYuN2MwIDE3LjYgMTcuMyAxNC40IDIyLjYgMTAuOXptMTMuMy0xMy40bDI3LjUgMGMwLTE2LjItNy40LTIyLjYtMTcuNC0yMi42LTEwLjYgMC0xOC4yIDcuOS0xOC4yIDE5LjMgMCAyMC41IDIyLjYgMjMuOSAzMy44IDE0LjJsLTMuOC02Yy03LjggNi40LTE5LjYgNS44LTIxLjktNC45ek0zMzguOSAzOTJjLTQuNi0yLTExLjYtMS44LTE1LjIgNC40bDAtNC40LTguMiAwIDAgMzYuNyA4LjIgMCAwLTIwLjdjMC0xMS42IDkuNS0xMC4xIDEyLjgtOC40bDIuNC03LjZ6bTEwLjYgMTguM2MwLTExLjQgMTEuNi0xNS4xIDIwLjctOC40bDMuOC02LjVjLTExLjYtOS4xLTMyLjctNC4xLTMyLjcgMTUgMCAxOS44IDIyLjQgMjMuOCAzMi43IDE1bC0zLjgtNi41Yy05LjIgNi41LTIwLjcgMi42LTIwLjctOC42ek00MTYuMiAzOTJsLTguMiAwIDAgNC40Yy04LjMtMTEtMjkuOS00LjgtMjkuOSAxMy45IDAgMTkuMiAyMi40IDI0LjcgMjkuOSAxMy45bDAgNC42IDguMiAwIDAtMzYuOHptMzMuNyAwYy0yLjQtMS4yLTExLTIuOS0xNS4yIDQuNGwwLTQuNC03LjkgMCAwIDM2LjcgNy45IDAgMC0yMC43YzAtMTEgOS0xMC4zIDEyLjgtOC40bDIuNC03LjZ6bTQwLjMtMTQuOWwtNy45IDAgMCAxOS4zYy04LjItMTAuOS0yOS45LTUuMS0yOS45IDEzLjkgMCAxOS40IDIyLjUgMjQuNiAyOS45IDEzLjlsMCA0LjYgNy45IDAgMC01MS43em03LjYtNzUuMWwwIDQuNiAuOCAwIDAtNC42IDEuOSAwIDAtLjgtNC42IDAgMCAuOCAxLjkgMHptNi42IDEyMy44YzAtLjUgMC0xLjEtLjMtMS42LS4zLS4zLS41LS44LS44LTEuMXMtLjgtLjUtMS4xLS44Yy0uNSAwLTEuMS0uMy0xLjYtLjMtLjMgMC0uOCAuMy0xLjQgLjMtLjUgLjMtLjggLjUtMS4xIC44LS41IC4zLS44IC44LS44IDEuMS0uMyAuNS0uMyAxLjEtLjMgMS42IDAgLjMgMCAuOCAuMyAxLjQgMCAuMyAuMyAuOCAuOCAxLjEgLjMgLjMgLjUgLjUgMS4xIC44IC41IC4zIDEuMSAuMyAxLjQgLjMgLjUgMCAxLjEgMCAxLjYtLjMgLjMtLjMgLjgtLjUgMS4xLS44cy41LS44IC44LTEuMWMuMy0uNiAuMy0xLjEgLjMtMS40em0zLjItMTI0LjdsLTEuNCAwLTEuNiAzLjUtMS42LTMuNS0xLjQgMCAwIDUuNCAuOCAwIDAtNC4xIDEuNiAzLjUgMS4xIDAgMS40LTMuNSAwIDQuMSAxLjEgMCAwLTUuNHptNC40LTgwLjVjMC03Ni4yLTYyLjEtMTM4LjMtMTM4LjUtMTM4LjMtMjcuMiAwLTUzLjkgOC4yLTc2LjUgMjMuMSA3Mi4xIDU5LjMgNzMuMiAxNzEuNSAwIDIzMC41IDIyLjYgMTUgNDkuNSAyMy4xIDc2LjUgMjMuMSA3Ni40IC4xIDEzOC41LTYxLjkgMTM4LjUtMTM4LjR6Il19LEMzdD17cHJlZml4OiJmYWIiLGljb25OYW1lOiJkaXNjb3Vyc2UiLGljb246WzQ0OCw1MTIsW10sImYzOTMiLCJNMjI1LjkgMzJDMTAzLjMgMzIgMCAxMzAuNSAwIDI1Mi4xIDAgMjU2IC4xIDQ4MCAuMSA0ODBsMjI1LjgtLjJDMzQ4LjYgNDc5LjggNDQ4IDM3Ny41IDQ0OCAyNTUuOVMzNDguNiAzMiAyMjUuOSAzMnpNMjI0IDM4NGMtMTkuNCAwLTM3LjktNC4zLTU0LjQtMTIuMUw4OC41IDM5MiAxMTEuNCAzMTdjLTkuOC0xOC4xLTE1LjQtMzguOS0xNS40LTYxIDAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjgtNTcuMyAxMjgtMTI4IDEyOHoiXX0sVDN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJsYWNrLXRpZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3ZSIsIk0wIDMybDAgNDQ4IDQ0OCAwIDAtNDQ4LTQ0OCAwek0zMTYuNSAzNTcuMmwtOTIuNSA4OC43LTkyLjUtODguNyA2NC41LTE4NC02NC41LTg2LjYgMTg0LjkgMC02NC40IDg2LjYgNjQuNSAxODR6Il19LGJuZT17cHJlZml4OiJmYWIiLGljb25OYW1lOiJzcXVhcmUtZmFjZWJvb2siLGljb246WzQ0OCw1MTIsWyJmYWNlYm9vay1zcXVhcmUiXSwiZjA4MiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDk4LjIgMCAwLTE0NS44LTUyLjggMCAwLTc4LjIgNTIuOCAwIDAtMzMuN2MwLTg3LjEgMzkuNC0xMjcuNSAxMjUtMTI3LjUgMTYuMiAwIDQ0LjIgMy4yIDU1LjcgNi40bDAgNzAuOGMtNi0uNi0xNi41LTEtMjkuNi0xLTQyIDAtNTguMiAxNS45LTU4LjIgNTcuMmwwIDI3LjggODMuNiAwLTE0LjQgNzguMi02OS4zIDAgMCAxNDUuOCAxMjkgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sXzN0PWJuZSxMM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToiYmF0dGxlLW5ldCIsaWNvbjpbNTEyLDUxMixbXSwiZjgzNSIsIk00NDguOCAyMjUuNmMyNi45IC4yIDM1LjYtNy40IDM4LjktMTIuNCAxMi41LTE2LjMtNy4xLTQ3LjYtNTIuOC03MS4zIDE3LjgtMzMuNiAzMC4xLTYzLjcgMzYuMy04NS4zIDMuNC0xMS44IDEuMS0xOSAuNS0yMC4zLTEuNyAxMC41LTE1LjggNDguNS00OC4yIDEwMC0yNS0xMS4yLTU2LjUtMjAuMS05My44LTIzLjgtOC45LTE2LjktMzQuOS02My45LTYwLjUtODguOS0xNi44LTE2LjUtMzAuMy0yMi42LTQwLjgtMjMuNWwwIDBjLTEzLjgtMS42LTIyLjcgNS44LTI3LjQgMTEtMTcuMiAxOC41LTI0LjMgNDguOS0yNSA4NC4xLTcuMi0xMi4zLTE3LjItMjQuNi0yOC41LTI1LjlsLS4yIDBjLTIwLjctMy41LTM4LjQgMjkuMi0zNiA4MS4zLTM4LjQgMS40LTcxIDUuOC05MyAxMS4yLTkuOSAyLjQtMTYuMiA3LjMtMTcuOCA5LjcgMS0uNCAyMi40LTkuMiAxMTEuNi05LjIgNS4yIDUzIDI5LjggMTAxLjggMjYgOTMuMi05LjcgMTUuNC0zOC4yIDYyLjQtNDcuMyA5Ny43LTUuOSAyMi45LTQuNCAzNy42IC4yIDQ3LjEgNS42IDEyLjggMTYuNCAxNi43IDIzLjIgMTguMyAyNSA1LjcgNTUuNC0zLjYgODYuNy0yMS4xLTcuNSAxMi44LTEzLjkgMjguNS05LjEgMzkuMyA3LjMgMTkuNiA0NC41IDE4LjcgODguNC05LjQgMjAuMiAzMi4yIDQwLjEgNTcuOSA1NS43IDc0LjEgMi42IDIuOCA1LjUgNS4yIDguOCA3LjEgNS4xIDMuMiA4LjYgMy40IDguNiAzLjQtOC4yLTYuNy0zNC0zOC02Mi41LTkxLjggMjIuMi0xNiA0NS43LTM4LjkgNjcuNS02OS4zIDEyMi44IDQuNiAxNDMuMy0yNC44IDE0OC0zMS42IDE0LjctMTkuOSAzLjQtNTcuNC01Ny4zLTkzLjd6TTM3MSAzMzEuOGMyMy44LTM3LjcgMzAuMy02Ny44IDI5LjQtOTIuMyAyNy45IDE3LjYgNDcuMiAzNy42IDQ5LjEgNTguOCAxLjEgMTIuOS04LjEgMjkuMS03OC41IDMzLjV6TTIxNy4xIDM4Ny43YzkuOC02LjIgMTkuNS0xMy4xIDI5LjItMjAuNSA2LjcgMTMuMyAxMy42IDI2LjEgMjAuNiAzOC4yLTQwLjYgMjEuOS02OC44IDEyLjgtNDkuOC0xNy43em0yMTUtMTcxLjNjLTEwLjMtNS4zLTIxLjItMTAuMy0zMi40LTE1IDcuOS0xMi4xIDE1LjUtMjQuNCAyMi43LTM2LjkgMzkuMSAyNC4xIDQ1LjkgNTMuMiA5LjYgNTEuOXpNMjc5LjQgMzk4Yy01LjUtMTEuNC0xMS0yMy41LTE2LjUtMzYuNCA0My4yIDEuMyA2Mi40LTE4LjcgNjMuMy0yMC40IDAgLjEtMjUgMTUuNi02Mi41IDEyLjIgMzAuNi0yNS42IDU5LjEtNTMuNyA4NS4xLTg0IDguNy0xMC4yIDE3LTIwLjYgMjQuOS0zMS4xLS40LS4zLTEuNS0zLTE2LjUtMTItNTEuNyA2MC4zLTEwMi4zIDk4LTEzMi44IDExNS45LTIwLjYtMTEuMi00MC44LTMxLjgtNTUuNy02MS41LTIwLTM5LjktMzAtODIuNC0zMS42LTExNi4xIDEyLjMgLjkgMjUuMyAyLjIgMzguOCAzLjktMjIuMyAzNi44LTE0LjQgNjMtMTMuNSA2NC4yIDAtLjEtMS0yOS4yIDIwLjEtNTkuNiA5IDUyLjUgMjQgMTAzLjggNDQuNyAxNTIuOCAuOS0uNCAxLjggLjkgMTguNy04LjItMjYuMy03NC41LTMzLjgtMTM4LjItMzQtMTczLjQgMjAtMTIuNCA0OC4yLTE5LjggODEuNi0xNy44IDQ0LjYgMi43IDg2LjQgMTUuMiAxMTYuMyAzMC43LTcuMSAxMC40LTE0LjkgMjEuMy0yMy4zIDMyLjUtMjAuNy0zNy43LTQ3LjMtNDMuOS00OC45LTQzLjcgLjEgMCAyNS45IDE0LjEgNDEuNSA0Ny4yLTM3LjUtMTMuOC03Ni4xLTI0LjQtMTE1LjMtMzEuNy0xMy4xLTIuNC0yNi4yLTQuNC0zOS40LTYtLjEgLjQtMS44IDEuOC0yLjIgMjAuMyA3Ny45IDE0LjUgMTM2LjYgMzkuOSAxNjcuMiA1Ny4yIC43IDIzLjYtNyA1MS42LTI1LjQgNzkuNi0yNC42IDM3LjMtNTYuNCA2Ny4yLTg0LjggODUuNHptMjcuNC0yODdjLTQ0LjYtMS43LTczLjYgNy40LTk0LjcgMjAuNyAyLTUyLjMgMjEuMy03Ni40IDM4LjItNzUuMyAxNi45LTQuMiA1NC45IDUyLjIgNTYuNSA1NC42em0tMTMwLjcgMy4xYy41IDEyLjEgMS42IDI0LjYgMy4yIDM3LjMtMTQuNi0uOS0yOC43LTEuMy00Mi40LTEuMy0uMSAzLjItLjEtNTEgMjQuNy00OS42bC4xIDBjNS44IDEuMSAxMC42IDYuOSAxNC40IDEzLjZ6bS0yOC4xIDE2MmMyMC44IDM5LjcgNDMuMyA2MC42IDY1LjMgNzIuMy00Ni44IDI0LjgtNzcuNSAyMC04NC45IDQuNS0uMi0uMi0xMS4xLTE1LjMgMTkuNy03Ni44bDAgMHoiXX0sQTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6ImJpbW9iamVjdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjM3OCIsIk00MTYgMzJMMzIgMzJDMTQuNCAzMiAwIDQ2LjQgMCA2NEwwIDQ0OGMwIDE3LjYgMTQuNCAzMiAzMiAzMmwzODQgMGMxNy42IDAgMzItMTQuNCAzMi0zMmwwLTM4NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnpNMzUyIDI4OS40YzAgNDkuNC0xMS40IDgyLjYtMTAzLjggODIuNmwtMTYuOSAwYy00NC4xIDAtNjIuNC0xNC45LTcwLjQtMzguOGwtLjkgMCAwIDM0LjgtNjQgMCAwLTIzMiA2NCAwIDAgNzQuNyAxLjEgMGM0LjYtMzAuNSAzOS43LTM4LjggNjkuNy0zOC44bDE3LjMgMGM5Mi40IDAgMTAzLjggMzMuMSAxMDMuOCA4Mi41bDAgMzUgLjEgMHptLTY0LTI4LjlsMCAyMi45YzAgMjEuNy0zLjQgMzMuOC0zOC40IDMzLjhsLTQ1LjMgMGMtMjguOSAwLTQ0LjEtNi41LTQ0LjEtMzUuN2wwLTE5YzAtMjkuMyAxNS4yLTM1LjcgNDQuMS0zNS43bDQ1LjMgMGMzNS0uMiAzOC40IDEyIDM4LjQgMzMuN3oiXX0sRDN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InN2ZWx0ZSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg2OCIsIk0yMDIuMSAyNi40YzY2LjgtNDIuNiAxNTkuMy0yMi43IDIwNi4xIDQ0LjMgMTEuMSAxNS41IDE5IDMzLjEgMjMuMiA1MS44czQuNyAzNy45IDEuMyA1Ni43Yy0zLjIgMTgtMTAuMSAzNS4xLTIwLjEgNTAuMyAxNC42IDI3LjkgMTkuNiA2MCAxNCA5MS0zLjMgMTguNC0xMC40IDM2LTIwLjkgNTEuNXMtMjQuMSAyOC43LTM5LjkgMzguN0wyNDguMyA0ODUuNmMtNjYuOCA0Mi42LTE1OS4zIDIyLjctMjA2LjEtNDQuMi0xMS4xLTE1LjUtMTktMzMuMi0yMy4yLTUxLjhzLTQuNy0zNy45LTEuMy01Ni43YzMuMi0xOCAxMC4xLTM1LjEgMjAuMS01MC4zLTE0LjctMjcuOS0xOS42LTYwLTE0LTkxLjEgMy4zLTE4LjQgMTAuNC0zNiAyMC45LTUxLjVzMjQuMS0yOC43IDM5LjktMzguN0wyMDIuMSAyNi40ek0zMTUuNiA2Ny4yYy0xNy45LTYuNi0zNy40LTcuNi01NS45LTIuOC04LjQgMi4zLTE2LjUgNS44LTIzLjggMTAuNUwxMTguNSAxNDkuN2MtOS41IDYtMTcuNyAxMy45LTI0IDIzLjNTODQgMTkyLjggODIgMjAzLjljLTIgMTEuMy0xLjcgMjIuOSAuOCAzNC4xczcuMyAyMS44IDEzLjkgMzEuMmMxMC45IDE1LjcgMjYuMyAyNy42IDQ0LjIgMzQuM3MzNy40IDcuNiA1NS45IDIuOGM4LjQtMi4zIDE2LjUtNS44IDIzLjgtMTAuNWw0NC44LTI4LjZjMi4yLTEuNCA0LjctMi41IDcuMi0zLjIgNS42LTEuNCAxMS40LTEuMiAxNi44IC44czEwIDUuNiAxMy4zIDEwLjNjMiAyLjggMy41IDYgNC4yIDkuNHMuOSA2LjkgLjMgMTAuM2MtLjYgMy4zLTEuOSA2LjUtMy44IDkuMy0xLjkgMi44LTQuNCA1LjItNy4yIDdMMTc4LjggMzg2LjFjLTIuMiAxLjQtNC43IDIuNS03LjIgMy4yLTUuNiAxLjQtMTEuNCAxLjItMTYuOC0uOHMtMTAtNS42LTEzLjMtMTAuM2MtMy42LTUuMS01LjMtMTEuMi00LjctMTcuNGwuNC00LjQtNC4zLTEuM2MtMTYuNS01LTMyLjEtMTIuNy00NS45LTIyLjlsLTYtNC40LTIuMiA2LjdjLTEuMiAzLjYtMi4xIDcuMy0yLjggMTEtMiAxMS4zLTEuNyAyMi45IC44IDM0LjFzNy4zIDIxLjggMTMuOSAzMS4xYzEwLjkgMTUuNyAyNi4zIDI3LjYgNDQuMiAzNC4zczM3LjQgNy42IDU1LjggMi44YzguNC0yLjMgMTYuNS01LjggMjMuOS0xMC41bDExNy4zLTc0LjhjOS41LTYgMTcuNy0xMy45IDI0LTIzLjNzMTAuNi0xOS45IDEyLjYtMzFjMi0xMS4zIDEuOC0yMi45LS44LTM0LjFzLTcuMy0yMS44LTE0LTMxLjFjLTEwLjktMTUuNy0yNi4zLTI3LjYtNDQuMi0zNC4zcy0zNy40LTcuNi01NS45LTIuOGMtOC40IDIuMy0xNi41IDUuOC0yMy44IDEwLjVMMTg1IDI0NC44Yy0yLjIgMS40LTQuNiAyLjUtNy4yIDMuMi01LjYgMS40LTExLjUgMS4yLTE2LjgtLjhzLTEwLTUuNi0xMy4zLTEwLjNjLTItMi44LTMuNC02LTQuMi05LjRzLS45LTYuOS0uMi0xMC4zYy42LTMuMyAxLjktNi41IDMuOC05LjNzNC40LTUuMiA3LjItN2wxMTcuNC03NC44YzIuMi0xLjQgNC43LTIuNSA3LjItMy4yIDUuNi0xLjQgMTEuNC0xLjEgMTYuOCAuOXMxMCA1LjYgMTMuMyAxMC4zYzMuNiA1LjEgNS4yIDExLjMgNC43IDE3LjRsLS40IDQuNCA0LjQgMS4zYzE2LjUgNSAzMiAxMi44IDQ1LjkgMjNsNiA0LjQgMi4yLTYuOGMxLjItMy42IDIuMS03LjMgMi44LTExIDItMTEuMyAxLjgtMjIuOS0uOC0zNC4xcy03LjMtMjEuOC0xNC0zMS4xYy0xMC45LTE1LjctMjYuMy0yNy42LTQ0LjItMzQuM3oiXX0sRTN0PXtwcmVmaXg6ImZhYiIsaWNvbk5hbWU6InNxdWFyZS1kZXNrcHJvIixpY29uOls0NDgsNTEyLFtdLCJlODQ0IiwiTTQwOC44IDMyQzQzMC40IDMyIDQ0OCA0OS42IDQ0OCA3MS4ybDAgMzY5LjZjMCAyMS42LTE3LjYgMzkuMi0zOS4yIDM5LjJMMzkuMiA0ODBDMTcuNiA0ODAgMCA0NjIuNCAwIDQ0MC44TDAgNzEuMkMwIDQ5LjYgMTcuNiAzMiAzOS4yIDMybDM2OS42IDB6TTExMC45IDI3NC4xbDAgMTE0LjQgODkuMS0uMWMyMC42IDAgMzkuNC0zLjIgNTYuMy05LjVzMzEuMy0xNS40IDQzLjItMjdjMTIuMi0xMS45IDIxLjYtMjYgMjguMi00Mi4xIDQuNi0xMS4xIDcuNy0yMyA5LjItMzUuN2wtNDMuOCAwYy0xLjEgNi40LTIuOCAxMi40LTUuMSAxOC4yLTQuMiAxMC45LTEwLjMgMjAuMy0xOC4yIDI4LjItNy45IDcuNy0xNy40IDEzLjctMjguNiAxNy45LTExLjEgNC4zLTIzLjUgNi40LTM3LjMgNi40bC01MCAwIDAtNzAuNi00MyAuMXptMC0xNTEuNGwwIDExNC40IDQzLS4xIDAtNzAuNyA1MCAwYzEzLjcgMCAyNi4yIDIuMSAzNy4zIDYuNCAxMS4xIDQuMyAyMC42IDEwLjMgMjguNiAxOC4zIDcuOSA3LjcgMTQgMTcuMSAxOC4yIDI4LjIgMi4zIDUuNiA0IDExLjUgNS4xIDE3LjhsNDMuOSAuMWMtMS40LTEyLjYtNC40LTI0LjQtOC45LTM1LjMtNi42LTE2LjQtMTYtMzAuNS0yOC4xLTQyLjItMTIuMS0xMS45LTI2LjctMjEuMS00My42LTI3LjUtMTYuOS02LjQtMzUuNy05LjUtNTYuMy05LjVsLTg5IC4xeiJdfSwkM3Q9e3ByZWZpeDoiZmFiIixpY29uTmFtZToidGFpbHdpbmQtY3NzIixpY29uOls2NDAsNTEyLFtdLCJlODY2IiwiTTMyMCA2NGMtODUuMyAwLTEzOC43IDQyLjctMTYwIDEyOCAzMi00Mi43IDY5LjMtNTguNyAxMTItNDggMjQuMyA2LjEgNDEuNyAyMy44IDYxIDQzLjMgMzEuNCAzMS44IDY3LjcgNjguNyAxNDcgNjguNyA4NS4zIDAgMTM4LjctNDIuNyAxNjAtMTI4LTMyIDQyLjctNjkuMyA1OC43LTExMiA0OC0yNC4zLTYuMS00MS43LTIzLjgtNjEtNDMuMy0zMS40LTMxLjgtNjcuNy02OC43LTE0Ny02OC43ek0xNjAgMjU2Yy04NS4zIDAtMTM4LjcgNDIuNy0xNjAgMTI4IDMyLTQyLjcgNjkuMy01OC43IDExMi00OCAyNC4zIDYuMSA0MS43IDIzLjggNjEgNDMuMyAzMS40IDMxLjggNjcuNyA2OC43IDE0NyA2OC43IDg1LjMgMCAxMzguNy00Mi43IDE2MC0xMjgtMzIgNDIuNy02OS4zIDU4LjctMTEyIDQ4LTI0LjMtNi4xLTQxLjctMjMuOC02MS00My4zLTMxLjQtMzEuOC02Ny43LTY4LjctMTQ3LTY4Ljd6Il19LE1acj17ZmFTcXVhcmVHaXRodWI6T2FlLGZhR2l0aHViU3F1YXJlOkFpdCxmYVRoaW5rUGVha3M6RGl0LGZhR29vZ2xlRHJpdmU6RWl0LGZhQXV0b3ByZWZpeGVyOiRpdCxmYVNxdWFyZVZpYWRlbzpSYWUsZmFWaWFkZW9TcXVhcmU6SWl0LGZhQ3BhbmVsOlBpdCxmYU1lbmRlbGV5Ok5pdCxmYURyYWZ0MmRpZ2l0YWw6Rml0LGZhUmVwbHlkOk9pdCxmYUVtcGlyZTpSaXQsZmFBY2Nlc3NpYmxlSWNvbjpCaXQsZmFRdW9yYTpIaXQsZmFDY0pjYjpxaXQsZmFGZWRvcmE6aml0LGZhRHVvbGluZ286Vml0LGZhRmlyc3RkcmFmdDpVaXQsZmFGcmVlYnNkOldpdCxmYU9keXNlZTpHaXQsZmFHZ0NpcmNsZTpZaXQsZmFDbG91ZGZsYXJlOlppdCxmYUhhY2tlcnJhbms6WGl0LGZhU2t5YXRsYXM6UWl0LGZhRGVza3BybzpKaXQsZmFSZXNvbHZpbmc6S2l0LGZhQmxhY2tiZXJyeTplYXQsZmFTdHJpcGVTOnRhdCxmYVNxdWFyZUJlaGFuY2U6QmFlLGZhQmVoYW5jZVNxdWFyZTpyYXQsZmFTZXJ2aWNlc3RhY2s6aWF0LGZhUm9ja2V0Y2hhdDphYXQsZmFSZWJlbDpuYXQsZmFTcXVhcmVXZWJBd2Vzb21lOm9hdCxmYUxpbmt0cmVlOnNhdCxmYVNpbXBseWJ1aWx0OmxhdCxmYVN0dWJiZXI6Y2F0LGZhQXBwZXI6ZGF0LGZhR29vZ2xlU2Nob2xhcjp1YXQsZmFZYXJuOnBhdCxmYVN0YWNrT3ZlcmZsb3c6aGF0LGZhQmx1ZXRvb3RoOmZhdCxmYUNyZWF0aXZlQ29tbW9uc05jSnA6bWF0LGZhUmVkZGl0OmdhdCxmYUNvbm5lY3RkZXZlbG9wOmJhdCxmYVJlc2VhcmNoZ2F0ZTp2YXQsZmFTaWduYWxNZXNzZW5nZXI6eGF0LGZhWGluZzp5YXQsZmFTcXVhcmVKczpIYWUsZmFKc1NxdWFyZTp3YXQsZmFGb250aWNvbnM6TWF0LGZhVXBzOmthdCxmYUFtYXpvblBheTpTYXQsZmFQYW5kb3JhOnphdCxmYU9wZW5pZDpDYXQsZmFWc2NvOlRhdCxmYUdsb2JhbGVha3M6X2F0LGZhVmVubW86TGF0LGZhVWJ1bnR1OkFhdCxmYVZpYWNvaW46RGF0LGZhWmhpaHU6RWF0LGZhWWFuZGV4OiRhdCxmYVBpeGl2OklhdCxmYU9wZW5haTpQYXQsZmFTaXRoOk5hdCxmYUp1bGlhOkZhdCxmYU5mY0RpcmVjdGlvbmFsOk9hdCxmYUNyZWF0aXZlQ29tbW9uc0J5OlJhdCxmYVVtYnJhY286QmF0LGZhSG9vbGk6SGF0LGZhU3F1YXJlR2l0OnFhZSxmYUdpdFNxdWFyZTpxYXQsZmFPZG5va2xhc3NuaWtpOmphdCxmYURydXBhbDpWYXQsZmFCbG9nZ2VyQjpVYXQsZmFJbnZpc2lvbjpXYXQsZmFGYWNlYm9va0Y6R2F0LGZhQ2VudG9zOllhdCxmYVNjYWxld2F5OlphdCxmYUNjQW1hem9uUGF5OlhhdCxmYUViYXk6UWF0LGZhQ29udGFvOkphdCxmYUVsbG86S2F0LGZhU2lzdHJpeDplbnQsZmFQZXJpc2NvcGU6dG50LGZhRXhwZWRpdGVkc3NsOnJudCxmYU5hcHN0ZXI6aW50LGZhRGVsaWNpb3VzOmFudCxmYUd1aWxkZWQ6bm50LGZhT2JzaWRpYW46b250LGZhWGJveDpzbnQsZmFVbnRhcHBkOmxudCxmYUdvb2dsZVBsdXNHOmNudCxmYUdpdGh1YkFsdDpkbnQsZmFHZXRQb2NrZXQ6dW50LGZhR2xpZGU6cG50LGZhQml0eTpobnQsZmFXcGV4cGxvcmVyOmZudCxmYU1lZ2Fwb3J0Om1udCxmYUxlZXRjb2RlOmdudCxmYU1kYjpibnQsZmFQYWdlNDp2bnQsZmFUaGVSZWRZZXRpOnhudCxmYUppcmE6eW50LGZhRmVkZXg6d250LGZhRXZlcm5vdGU6TW50LGZhVXNiOmtudCxmYUFuZ3J5Y3JlYXRpdmU6U250LGZhTWl6dW5pOnpudCxmYUl0Y2hJbzpDbnQsZmFXaW5kb3dzOlRudCxmYVN0dW1ibGV1cG9uOl9udCxmYUdvb2dsZTpJQSxmYURpc2NvcmQ6TG50LGZhSGFja2VyTmV3czpBbnQsZmFFbGV2ZW50eTpqYWUsZmExMXR5OkRudCxmYVRlYW1zcGVhazpFbnQsZmFTdXBwbGU6JG50LGZhU3F1YXJlVHdpdHRlcjpWYWUsZmFUd2l0dGVyU3F1YXJlOkludCxmYVZpbTpQbnQsZmFGb250QXdlc29tZTokQSxmYUZvbnRBd2Vzb21lRmxhZzpObnQsZmFGb250QXdlc29tZUxvZ29GdWxsOkZudCxmYVdpcnNpbmRoYW5kd2VyazpVYWUsZmFXc2g6T250LGZhWm9vbTpSbnQsZmFDb25mbHVlbmNlOkJudCxmYURpZ2c6SG50LGZhVGhyZWFkczpxbnQsZmFXcHJlc3NyOldhZSxmYVJlbmRhY3Q6am50LGZhWW9hc3Q6Vm50LGZhTmltYmxyOlVudCxmYVBpeGVsZmVkOldudCxmYVlhaG9vOkdudCxmYUJsdWVza3k6WW50LGZhU2NyaWJkOlpudCxmYUNyZWF0aXZlQ29tbW9uc1BkOlhudCxmYUVhcmx5YmlyZHM6UW50LGZhU3ltZm9ueWNhc3RzOkpudCxmYVNxdWFyZU9kbm9rbGFzc25pa2k6R2FlLGZhT2Rub2tsYXNzbmlraVNxdWFyZTpLbnQsZmFNYXJrZG93bjplb3QsZmFUeXBvMzp0b3QsZmFKb29tbGE6cm90LGZhV2VpeGluOmlvdCxmYUdydW50OmFvdCxmYVN1cHBvcnRub3c6bm90LGZhUm9ja3Jtczpvb3QsZmFVbnNwbGFzaDpzb3QsZmFTcXVhcmVJbnN0YWdyYW06WWFlLGZhSW5zdGFncmFtU3F1YXJlOmxvdCxmYUZpcnN0T3JkZXJBbHQ6Y290LGZhRnVsY3J1bTpkb3QsZmFBcmNoTGludXg6dW90LGZhRmVkaXZlcnNlOnBvdCxmYUJyYXZlUmV2ZXJzZTpob3QsZmFBdmlhbmV4OmZvdCxmYU5zODptb3QsZmFTcXVhcmVQaW50ZXJlc3Q6WmFlLGZhUGludGVyZXN0U3F1YXJlOmdvdCxmYUJsdWV0b290aEI6Ym90LGZhR3JpcGZpcmU6dm90LGZhU3F1YXJlR29vZ2xlUGx1czpYYWUsZmFHb29nbGVQbHVzU3F1YXJlOnhvdCxmYUdpdGVlOnlvdCxmYVhtcHA6d290LGZhQXBwU3RvcmU6TW90LGZhV2l4OmtvdCxmYUludGVyY29tOlNvdCxmYVJlYWN0ZXVyb3BlOnpvdCxmYVdhemU6Q290LGZhQ3JlYXRpdmVDb21tb25zUmVtaXg6VG90LGZhQmFuZGNhbXA6X290LGZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZTpMb3QsZmFWaW1lb1Y6QW90LGZhU3RyYXZhOkRvdCxmYVVuaXJlZ2lzdHJ5OkVvdCxmYUNjRGluZXJzQ2x1Yjokb3QsZmFLdWJlcm5ldGVzOklvdCxmYVBpbnRlcmVzdDpQb3QsZmFBbGdvbGlhOk5vdCxmYVN0YWNrcGF0aDpGb3QsZmFPY3RvcHVzRGVwbG95Ok9vdCxmYVlhbW1lcjpSb3QsZmFNb2R4OkJvdCxmYVNxdWFyZVRocmVhZHM6SG90LGZhT2xkUmVwdWJsaWM6cW90LGZhU3VzZTpqb3QsZmFBcHBTdG9yZUlvczpWb3QsZmFVbHRyYWx5dGljc1lvbG86VW90LGZhU3F1YXJlRHJpYmJibGU6UWFlLGZhRHJpYmJibGVTcXVhcmU6V290LGZhVWlraXQ6R290LGZhU3VwZXJwb3dlcnM6WW90LGZhWW91dHViZTpab3QsZmFFbWJlcjpYb3QsZmFCb290c3RyYXA6UW90LGZhSXR1bmVzOkpvdCxmYVNxdWFyZVhpbmc6SmFlLGZhWGluZ1NxdWFyZTpLb3QsZmFDc3MzQWx0OmUydCxmYVNxdWFyZXNwYWNlOnQydCxmYVRyZWxsbzpyMnQsZmFWaWFkZW86aTJ0LGZhU2VhcmNoZW5naW46YTJ0LGZhVW5yZWFsRW5naW5lOm4ydCxmYVBheXBhbDpvMnQsZmFTcXVhcmVCbHVlc2t5OnMydCxmYURBbmREQmV5b25kOmwydCxmYU1pY3Jvc29mdDpjMnQsZmFGbHk6ZDJ0LGZhQ2NTdHJpcGU6dTJ0LGZhV29yZHByZXNzU2ltcGxlOnAydCxmYVNlbGxzeTpoMnQsZmFEYXNoY3ViZTpmMnQsZmFHaXR0ZXI6bTJ0LGZhV29sZlBhY2tCYXR0YWxpb246ZzJ0LGZhTGFzdGZtOmIydCxmYVNob3B3YXJlOnYydCxmYUJsb2dnZXI6eDJ0LGZhRWRnZTp5MnQsZmFJb3hob3N0OncydCxmYVNjaGxpeDpNMnQsZmFEQW5kRDprMnQsZmFWdWVqczpTMnQsZmFNZXRhOnoydCxmYUNyZWF0aXZlQ29tbW9uc1NoYXJlOkMydCxmYVN0dWRpb3ZpbmFyaTpUMnQsZmFCaXRidWNrZXQ6XzJ0LGZhVms6TDJ0LGZhR2l0aHViOkEydCxmYUNvZGllcGllOkQydCxmYVBpZWRQaXBlcjpFMnQsZmFSYXNwYmVycnlQaTokMnQsZmFDc3MzOkkydCxmYUh1YnNwb3Q6UDJ0LGZhQ21wbGlkOk4ydCxmYUR5YWxvZzpGMnQsZmFFbGVtZW50b3I6TzJ0LGZhRmlyc3RPcmRlcjpSMnQsZmFEcmliYmJsZTpCMnQsZmFMaW5rZWRpbjpQQSxmYUNjUGF5cGFsOkgydCxmYURobDpxMnQsZmFUZXg6ajJ0LGZhQ2xhdWRlOlYydCxmYVNob3BpZnk6VTJ0LGZhU3F1YXJlUmVkZGl0OkthZSxmYVJlZGRpdFNxdWFyZTpXMnQsZmFDcmVhdGl2ZUNvbW1vbnNOYzpHMnQsZmFHYWxhY3RpY1JlcHVibGljOlkydCxmYUZhY2Vib29rOk5BLGZhR2l0bGFiOloydCxmYVFxOlgydCxmYVN0cmlwZTpRMnQsZmFEYWlseW1vdGlvbjpKMnQsZmFTdGVhbTpLMnQsZmFWZW5tb1Y6ZXN0LGZhU25hcGNoYXQ6ZW5lLGZhU25hcGNoYXRHaG9zdDp0c3QsZmFHYWxhY3RpY1NlbmF0ZTpyc3QsZmFQaG9lbml4RnJhbWV3b3JrOmlzdCxmYUdpdDphc3QsZmFPcHRpbk1vbnN0ZXI6bnN0LGZhSmVua2luczpvc3QsZmFTbGlkZXNoYXJlOnNzdCxmYVViZXI6bHN0LGZhRGlnaXRhbE9jZWFuOmNzdCxmYVNvdW5kY2xvdWQ6ZHN0LGZhU3F1YXJlRmlnbWE6dXN0LGZhQ3JlYXRpdmVDb21tb25zU2E6cHN0LGZhQ2hyb21lOmhzdCxmYVRyYWRlRmVkZXJhdGlvbjpmc3QsZmFWYWFkaW46bXN0LGZhRGV2aWFudGFydDpnc3QsZmFNZWRpdW06eWcsZmFNZWRpdW1NOmJzdCxmYU9wZW5jYXJ0OnZzdCxmYVlDb21iaW5hdG9yOnhzdCxmYUxpbmU6eXN0LGZhQW1pbGlhOndzdCxmYUFzeW1tZXRyaWs6TXN0LGZhUGhhYnJpY2F0b3I6a3N0LGZhQm90czpTc3QsZmFWaW5lOnpzdCxmYU1lZHJ0OkNzdCxmYU9zaTpUc3QsZmFHZzpfc3QsZmFCdXlzZWxsYWRzOkxzdCxmYUdvb2dsZVBsdXM6QXN0LGZhU2NyZWVucGFsOkRzdCxmYUJpdGNvaW46RXN0LGZhU3dpZnQ6JHN0LGZhRmlsZXNQaW53aGVlbDpJc3QsZmFMYXJhdmVsOlBzdCxmYVdwZm9ybXM6TnN0LGZhU3BlYWtlckRlY2s6RnN0LGZhRmxpY2tyOk9zdCxmYUNjVmlzYTpSc3QsZmFVcHdvcms6QnN0LGZhS2FrYW9UYWxrOkhzdCxmYUZsdXR0ZXI6cXN0LGZhQnVmZmVyOmpzdCxmYUdyYXRpcGF5OlZzdCxmYUdvb2dsZVBheTpVc3QsZmFBcHBsZTpXc3QsZmFUdW1ibHI6R3N0LGZhUGhvZW5peFNxdWFkcm9uOllzdCxmYUNlbnRlcmNvZGU6WnN0LGZhRGViaWFuOlhzdCxmYU1hc3RvZG9uOlFzdCxmYVNrZXRjaDpKc3QsZmFXZWJBd2Vzb21lOktzdCxmYVNhc3M6ZWx0LGZhVGhyZWVtYTp0bHQsZmFTcXVhcmVXaGF0c2FwcDp0bmUsZmFXaGF0c2FwcFNxdWFyZTpybHQsZmFTa3lwZTppbHQsZmFBbmd1bGFyOmFsdCxmYUNpcmNsZVp1bGlwOm5sdCxmYU9wZW5zdXNlOm9sdCxmYURyb3Bib3g6c2x0LGZhRGVlemVyOmxsdCxmYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nOmNsdCxmYUplZGlPcmRlcjpkbHQsZmFSUHJvamVjdDp1bHQsZmFJbnN0YWxvZDpwbHQsZmFDYW5hZGlhbk1hcGxlTGVhZjpobHQsZmFFdGhlcmV1bTpmbHQsZmFIb3V6ejptbHQsZmFWaWJlcjpnbHQsZmFLaWNrc3RhcnRlcjpybmUsZmFTcXVhcmVLaWNrc3RhcnRlcjpibHQsZmFTcG90aWZ5OnZsdCxmYUxlYW5wdWI6eGx0LGZhSmF2YTp5bHQsZmFOZmNTeW1ib2w6d2x0LGZhV29kdTpNbHQsZmFTcXVhcmVTdGVhbTppbmUsZmFTdGVhbVNxdWFyZTprbHQsZmFDcmVhdGl2ZUNvbW1vbnNOY0V1OlNsdCxmYU5wbTp6bHQsZmFDbG91ZHNjYWxlOkNsdCxmYVRoZW1lY286VGx0LGZhR29vZ2xlUGxheTpfbHQsZmFLb3J2dWU6TGx0LGZhVzNjOkFsdCxmYUdyYXY6RGx0LGZhQXdzOkVsdCxmYUdsaWRlRzokbHQsZmFKc2ZpZGRsZTpJbHQsZmFLZXliYXNlOlBsdCxmYUx1bW9uRHJvcDpObHQsZmFGb3JnZWpvOkZsdCxmYVBvc3RncmVzcWw6T2x0LGZhV2VlYmx5OlJsdCxmYURvY2tlcjpCbHQsZmFNYWdlbnRvOkhsdCxmYVRvckJyb3dzZXI6cWx0LGZhR2l0QWx0OmpsdCxmYUZpcmVmb3hCcm93c2VyOlZsdCxmYUNsb3Vkc21pdGg6VWx0LGZhV2l6YXJkc09mVGhlQ29hc3Q6V2x0LGZhQ3JlYXRpdmVDb21tb25zTmQ6R2x0LGZhVXNwczpZbHQsZmFTcXVhcmVMZXR0ZXJib3hkOlpsdCxmYU1hbmRhbG9yaWFuOlhsdCxmYVNsYWNrOmFuZSxmYVNsYWNrSGFzaDpGQSxmYUFuZ2VsbGlzdDpRbHQsZmFBbmRyb2lkOkpsdCxmYU1lZXR1cDpLbHQsZmFGb250aWNvbnNGaTplY3QsZmFQYWxmZWQ6dGN0LGZhV3BiZWdpbm5lcjpyY3QsZmFEaWFzcG9yYTppY3QsZmFQcm9kdWN0SHVudDphY3QsZmFTcXVhcmVVcHdvcms6bmN0LGZhQ3V0dGxlZmlzaDpvY3QsZmFNZWRhcHBzOnNjdCxmYVBpeDpsY3QsZmFTcXVhcmVUdW1ibHI6bm5lLGZhVHVtYmxyU3F1YXJlOmNjdCxmYVJlYWN0OmRjdCxmYUh1Z2dpbmdGYWNlOnVjdCxmYUp4bDpwY3QsZmFTcXVhcmVMaW5rZWRpbjpoY3QsZmFDc3M6ZmN0LGZhSGFzaG5vZGU6bWN0LGZhUmVkZGl0QWxpZW46Z2N0LGZhVGlrdG9rOk9BLGZhV29yZHByZXNzOmJjdCxmYUlkZWFsOnZjdCxmYVBpZWRQaXBlclBwOnhjdCxmYVVzc3VubmFoOnljdCxmYUZvcnRBd2Vzb21lQWx0OndjdCxmYUJ1cm9tb2JlbGV4cGVydGU6TWN0LGZhQmlsaWJpbGk6a2N0LGZhTmVvczpTY3QsZmFEZXY6emN0LGZhSG90amFyOkNjdCxmYURvY2h1YjpUY3QsZmFWaW1lbzpfY3QsZmFNYXhjZG46TGN0LGZhU3F1YXJlRm9udEF3ZXNvbWVTdHJva2U6b25lLGZhRm9udEF3ZXNvbWVBbHQ6QWN0LGZhU3BlYWthcDpEY3QsZmFGYW50YXN5RmxpZ2h0R2FtZXM6RWN0LGZhTGludXg6JGN0LGZhQ290dG9uQnVyZWF1OkljdCxmYUdvb2dsZVdhbGxldDpQY3QsZmFGb3Vyc3F1YXJlOk5jdCxmYVNoaXJ0c2luYnVsazpGY3QsZmFNaW50Yml0Ok9jdCxmYVp1bGlwOlJjdCxmYVN0YXlsaW5rZWQ6QmN0LGZhV2ViZmxvdzpIY3QsZmFSZW5yZW46cWN0LGZhS29GaTpqY3QsZmFSZXY6VmN0LGZhS2V5Y2RuOlVjdCxmYUhpcmVBSGVscGVyOldjdCxmYVNxdWFyZUhhY2tlck5ld3M6c25lLGZhSGFja2VyTmV3c1NxdWFyZTpHY3QsZmFDcmVhdGl2ZUNvbW1vbnNQZEFsdDpZY3QsZmFPcmNpZDpaY3QsZmFCb2FyZEdhbWVHZWVrOmxuZSxmYUJnZzpYY3QsZmFCZWhhbmNlOlFjdCxmYU1vbmVybzpKY3QsZmFGaWdtYTpLY3QsZmFJbnN0YWdyYW06UkEsZmFQZXJieXRlOmUwdCxmYVNxdWFyZVZpbWVvOmNuZSxmYVZpbWVvU3F1YXJlOnQwdCxmYVB1c2hlZDpyMHQsZmFNaXhjbG91ZDppMHQsZmFZYW5kZXhJbnRlcm5hdGlvbmFsOmEwdCxmYUhpdmU6bjB0LGZhQ3JlYXRpdmVDb21tb25zWmVybzpvMHQsZmFTcXVhcmVTbmFwY2hhdDpkbmUsZmFTbmFwY2hhdFNxdWFyZTpzMHQsZmFUaGVtZWlzbGU6bDB0LGZhRGFydExhbmc6YzB0LGZhRGVwbG95ZG9nOmQwdCxmYUZsaXBib2FyZDp1MHQsZmFCdXlOTGFyZ2U6cDB0LGZhV2F0Y2htYW5Nb25pdG9yaW5nOmgwdCxmYUhpcHM6ZjB0LGZhQ2xvdWR2ZXJzaWZ5Om0wdCxmYUdvb2RyZWFkczpnMHQsZmFUaWRhbDpiMHQsZmFVbml0eTp2MHQsZmFUZW5jZW50V2VpYm86eDB0LGZhRnJlZUNvZGVDYW1wOnkwdCxmYVhUd2l0dGVyOncwdCxmYVN0aWNrZXJNdWxlOk0wdCxmYVR3aXRjaDprMHQsZmFLaWNrc3RhcnRlcks6UzB0LGZhQ3JpdGljYWxSb2xlOnowdCxmYVN0ZWFtU3ltYm9sOkMwdCxmYU1haWxjaGltcDpUMHQsZmFMdW1vbjpfMHQsZmFOdXRyaXRpb25peDpMMHQsZmFDcmVhdGl2ZUNvbW1vbnNTYW1wbGluZ1BsdXM6QTB0LGZhUmVkaGF0OkQwdCxmYVNxdWFyZVBpZWRQaXBlcjp1bmUsZmFQaWVkUGlwZXJTcXVhcmU6RTB0LGZhV2hhdHNhcHA6JDB0LGZhSW1kYjpJMHQsZmFQeXRob246UDB0LGZhQ2FzaEFwcDpOMHQsZmFQaW50ZXJlc3RQOkYwdCxmYVdobWNzOk8wdCxmYUpvZ2V0OlIwdCxmYVNxdWFyZVlvdXR1YmU6cG5lLGZhWW91dHViZVNxdWFyZTpCMHQsZmFBdGxhc3NpYW46SDB0LGZhUGllZFBpcGVySGF0OnEwdCxmYUludGVybmV0RXhwbG9yZXI6ajB0LGZhQWlyYm5iOlYwdCxmYUpzOlUwdCxmYVF1aW5zY2FwZTpXMHQsZmFBZHZlcnNhbDpHMHQsZmFDcmVhdGl2ZUNvbW1vbnM6WTB0LGZhTm90aW9uOlowdCxmYUNocm9tZWNhc3Q6WDB0LGZhVWx0cmFseXRpY3NIdWI6UTB0LGZhV2lraXBlZGlhVzpKMHQsZmFTaXRyb3g6SzB0LGZhU3F1YXJlR2l0bGFiOmhuZSxmYUdpdGxhYlNxdWFyZTplNHQsZmFTaG9lbGFjZTp0NHQsZmFPcGVuc3RyZWV0bWFwOnI0dCxmYVNlbGxjYXN0Omk0dCxmYU1peDphNHQsZmFDY0FwcGxlUGF5Om40dCxmYVNvbGFuYTpvNHQsZmFUeXBlc2NyaXB0OnM0dCxmYUJyYXZlOmw0dCxmYUV0c3k6YzR0LGZhQnRjOmQ0dCxmYUFkbjp1NHQsZmFTcXVhcmVYVHdpdHRlcjpwNHQsZmFTcXVhcmVGb250QXdlc29tZTpoNHQsZmFGb3J1bWJlZTpmNHQsZmE0Mkdyb3VwOmZuZSxmYUlubm9zb2Z0Om00dCxmYVN0dW1ibGV1cG9uQ2lyY2xlOmc0dCxmYVN5bWZvbnk6YjR0LGZhU2FsZXNmb3JjZTp2NHQsZmFTb3VyY2V0cmVlOng0dCxmYUxpbmtlZGluSW46eTR0LGZhSHRtbDU6dzR0LGZhUnVzdDpNNHQsZmFIb3JuYmlsbDprNHQsZmFQaHA6UzR0LGZhRGlzcXVzOno0dCxmYTUwMHB4OkM0dCxmYUFmZmlsaWF0ZXRoZW1lOlQ0dCxmYVJlZFJpdmVyOl80dCxmYVR3aXR0ZXI6QkEsZmFGb3J0QXdlc29tZTpMNHQsZmFNaXhlcjpBNHQsZmFMeWZ0OkQ0dCxmYUFwcGxlUGF5OkU0dCxmYUFydHN0YXRpb246JDR0LGZhTm9kZUpzOkk0dCxmYVVuY2hhcnRlZDpQNHQsZmFQbGF5c3RhdGlvbjpONHQsZmFNaWNyb2Jsb2c6RjR0LGZhR2l0a3Jha2VuOk80dCxmYVRlbGVncmFtOm1uZSxmYVRlbGVncmFtUGxhbmU6UjR0LGZhVWx0cmFseXRpY3M6QjR0LGZhSXR1bmVzTm90ZTpINHQsZmFMZXNzOnE0dCxmYUZpcmVmb3g6ajR0LGZhS2FnZ2xlOlY0dCxmYUZhY2Vib29rTWVzc2VuZ2VyOlU0dCxmYUF1ZGlibGU6VzR0LGZhUGF0cmVvbjpHNHQsZmFWbnY6WTR0LGZhUGFnZWxpbmVzOlo0dCxmYUFtYXpvbjpYNHQsZmFFbnZpcmE6UTR0LGZhTGlub2RlOko0dCxmYUFjY3Vzb2Z0Oks0dCxmYUVybGFuZzplM3QsZmFVbmlzb246dDN0LGZhQ2NEaXNjb3ZlcjpyM3QsZmFTYWZhcmk6aTN0LGZhU3BhY2VBd2Vzb21lOmEzdCxmYU5vZGU6bjN0LGZhQ29kZXBlbjpvM3QsZmFSYXZlbHJ5OnMzdCxmYUFsaXBheTpsM3QsZmFDY0FtZXg6YzN0LGZhUGllZFBpcGVyQWx0OmQzdCxmYUxldHRlcmJveGQ6dTN0LGZhT3BlcmE6cDN0LGZhV2VpYm86aDN0LGZhUmVhZG1lOmYzdCxmYUdvbGFuZzptM3QsZmFTdGFja0V4Y2hhbmdlOmczdCxmYUd1bHA6YjN0LGZhWWVscDp2M3QsZmFHb2ZvcmU6eDN0LGZhQXZpYXRvOnkzdCxmYVBhZGxldDp3M3QsZmFFZGdlTGVnYWN5Ok0zdCxmYVNxdWFyZUxhc3RmbTpnbmUsZmFMYXN0Zm1TcXVhcmU6azN0LGZhR29vZHJlYWRzRzpTM3QsZmFDY01hc3RlcmNhcmQ6ejN0LGZhRGlzY291cnNlOkMzdCxmYUJsYWNrVGllOlQzdCxmYVNxdWFyZUZhY2Vib29rOmJuZSxmYUZhY2Vib29rU3F1YXJlOl8zdCxmYUJhdHRsZU5ldDpMM3QsZmFCaW1vYmplY3Q6QTN0LGZhU3ZlbHRlOkQzdCxmYVNxdWFyZURlc2twcm86RTN0LGZhVGFpbHdpbmRDc3M6JDN0fX0pO3ZhciBrWnIsdm5lLFAzdCxOM3QseG5lLEYzdCxrZyxPM3QsUjN0LEIzdCxIM3QseW5lLHEzdCxqM3QsVjN0LFNnLFUzdCx3bmUsVzN0LE1uZSxHM3QsWTN0LFozdCxYM3Qsa25lLFEzdCxTbmUsSjN0LHpuZSxLM3QsQ25lLGU2dCxUbmUsdDZ0LF9uZSxyNnQsTG5lLGk2dCxhNnQsQW5lLG42dCxEbmUsbzZ0LEVuZSxzNnQsJG5lLGw2dCxjNnQsSW5lLGQ2dCxQbmUsdTZ0LE5uZSxwNnQsRm5lLGg2dCxPbmUsZjZ0LG02dCxnNnQsSEEsYjZ0LHY2dCx4NnQseTZ0LHc2dCxNNnQsazZ0LFM2dCxxQSx6NnQsQzZ0LFJuZSxUNnQsXzZ0LEw2dCxBNnQsRDZ0LEU2dCwkNnQsSTZ0LEJuZSxQNnQsTjZ0LEY2dCxQcCxPNnQsUjZ0LEhuZSxCNnQsSDZ0LHFuZSxxNnQsWkEsajZ0LFY2dCxqQSxVNnQsVzZ0LGpuZSxHNnQsWTZ0LFo2dCxWbmUsWDZ0LFVuZSxRNnQsVkEsSjZ0LEs2dCxXbmUsZWR0LEduZSx0ZHQscmR0LGlkdCxZbmUsYWR0LFpuZSxuZHQsWG5lLG9kdCxRbmUsc2R0LGxkdCxjZHQsZGR0LEpuZSx1ZHQscGR0LEtuZSxoZHQsZmR0LGVvZSxtZHQsZ2R0LHRvZSxiZHQsdmR0LHhkdCx3Zyx5ZHQsd2R0LE1kdCx6ZyxrZHQsU2R0LHpkdCxyb2UsQ2R0LFRkdCxpb2UsX2R0LGFvZSxMZHQsTWcsQWR0LERkdCxFZHQsbm9lLCRkdCxVQSxJZHQsUGR0LE5kdCxGZHQsb29lLE9kdCxXQSxSZHQsQmR0LHNvZSxIZHQsbG9lLHFkdCxqZHQsY29lLFZkdCxkb2UsVWR0LEdBLFdkdCxHZHQsWWR0LENnLFpkdCxYZHQsUWR0LEpkdCx1b2UsS2R0LHBvZSxlNXQsaG9lLHQ1dCxmb2UscjV0LG1vZSxpNXQsZ29lLGE1dCxZQSxuNXQsbzV0LHM1dCxsNXQsYm9lLGM1dCx2b2UsZDV0LHhvZSx1NXQseW9lLHA1dCxoNXQsZjV0LG01dCxnNXQsYjV0LHY1dCx3b2UseDV0LE1vZSx5NXQsdzV0LGtvZSxNNXQsU29lLGs1dCx6b2UsUzV0LFhBLHo1dCxDb2UsQzV0LFQ1dCxUb2UsXzV0LF9vZSxMNXQsQTV0LEQ1dCxMb2UsRTV0LCQ1dCxBb2UsSTV0LFA1dCxONXQsRjV0LERvZSxPNXQsRW9lLFI1dCwkb2UsQjV0LEg1dCxxNXQsSW9lLGo1dCxQb2UsVjV0LE5vZSxVNXQsVzV0LEZvZSxHNXQsT29lLFk1dCxaNXQsUm9lLFg1dCxRNXQsSjV0LFNacixLNXQ9cCgoKT0+e2tacj0iZmFyIix2bmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLW1pbnVzIixpY29uOls0NDgsNTEyLFs2MTc2NywibWludXMtc3F1YXJlIl0sImYxNDYiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTEzNiAyMzJsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxQM3Q9dm5lLE4zdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci1jaGVjayIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3NCIsIk0zMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDE2MCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDExMnptMjMwLjcgNjUuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDIxMS40IDM3NC4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0seG5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Uta2lzcyIsaWNvbjpbNTEyLDUxMixbMTI4NTM1LCJraXNzIl0sImY1OTYiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNDAgMGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0tOTYtNDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sRjN0PXhuZSxrZz17cHJlZml4OiJmYXIiLGljb25OYW1lOiJwYXN0ZSIsaWNvbjpbNTEyLDUxMixbImZpbGUtY2xpcGJvYXJkIl0sImYwZWEiLCJNNjQgNDhsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggNDggMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDExMiAwIDAtNDgtMTEyIDBjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6bTE3NiA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNEwxMDQgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA1LjYgMGM4LjgtOC42IDE5LTE1LjggMzAuMi0yMS4xIC4xLS45IC4yLTEuOSAuMi0yLjl6TTQ0OCA0NjRsLTE2MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDEwMS41IDBjNC4yIDAgOC4zIDEuNyAxMS4zIDQuN2w1OC41IDU4LjVjMyAzIDQuNyA3LjEgNC43IDExLjNMNDY0IDQ0OGMwIDguOC03LjIgMTYtMTYgMTZ6TTIyNCAyMjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNjUuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM2wtNTguNS01OC41Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDI4OCAxNjBjLTM1LjMgMC02NCAyOC43LTY0IDY0eiJdfSxPM3Q9a2csUjN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtbGVmdCIsaWNvbjpbNTEyLDUxMixbXSwiZjBhNSIsIk02NCAxMjhsMTc3LjYgMGMtMSA1LjItMS42IDEwLjUtMS42IDE2bDAgMTYtMTc2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTIyNCAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNCAwYzY2LjMgMCAxMjAgNTMuNyAxMjAgMTIwbDAgNDhjMCA1Mi41LTMzLjcgOTcuMS04MC43IDExMy40IC41LTMuMSAuNy02LjIgLjctOS40IDAtMjAtOS4yLTM3LjktMjMuNi00OS43IDQuOS05IDcuNi0xOS40IDcuNi0zMC4zIDAtMTUuMS01LjMtMjktMTQtNDAgOC44LTExIDE0LTI0LjkgMTQtNDBsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODB6bTMyLTgwbDAgMGMtMTggMC0zNC42IDYtNDggMTZMNjQgODBDMjguNyA4MCAwIDEwOC43IDAgMTQ0czI4LjcgNjQgNjQgNjRsODIgMGMtMS4zIDUuMS0yIDEwLjUtMiAxNiAwIDI1LjMgMTQuNyA0Ny4yIDM2IDU3LjYtMi42IDctNCAxNC41LTQgMjIuNCAwIDIwIDkuMiAzNy45IDIzLjYgNDkuNy00LjkgOS03LjYgMTkuNC03LjYgMzAuMyAwIDM1LjMgMjguNyA2NCA2NCA2NGw4OCAwYzkyLjggMCAxNjgtNzUuMiAxNjgtMTY4bDAtNDhjMC05Mi44LTc1LjItMTY4LTE2OC0xNjhsLTI0IDB6TTI1NiA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMHpNMjQwIDIyNGMwIDUuNSAuNyAxMC45IDIgMTZsLTM0IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMzIgMCAwIDE2em0yNCA2NGw0MCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDI0IDB6Il19LEIzdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLWV4Y2VsIixpY29uOlszODQsNTEyLFtdLCJmMWMzIiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTk5LjIgMjY1LjZjLTgtMTAuNi0yMy0xMi44LTMzLjYtNC44cy0xMi44IDIzLTQuOCAzMy42TDE2MiAzNDQgMTI0LjggMzkzLjZjLTggMTAuNi01LjggMjUuNiA0LjggMzMuNnMyNS42IDUuOCAzMy42LTQuOEwxOTIgMzg0IDIyMC44IDQyMi40YzggMTAuNiAyMyAxMi44IDMzLjYgNC44czEyLjgtMjMgNC44LTMzLjZMMjIyIDM0NCAyNTkuMiAyOTQuNGM4LTEwLjYgNS44LTI1LjYtNC44LTMzLjZzLTI1LjYtNS44LTMzLjYgNC44TDE5MiAzMDQgMTYzLjIgMjY1LjZ6Il19LEgzdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJlbnZlbG9wZSIsaWNvbjpbNTEyLDUxMixbMTI4Mzg2LDk5OTMsNjE0NDNdLCJmMGUwIiwiTTYxLjQgNjRDMjcuNSA2NCAwIDkxLjUgMCAxMjUuNCAwIDEyNi4zIDAgMTI3LjEgLjEgMTI4TDAgMTI4IDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2LS4xIDBjMC0uOSAuMS0xLjcgLjEtMi42IDAtMzMuOS0yNy41LTYxLjQtNjEuNC02MS40TDYxLjQgNjR6TTQ2NCAxOTIuM0w0NjQgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE5MS43IDE1NC44IDExNy40YzMxLjQgMjMuOSA3NC45IDIzLjkgMTA2LjQgMEw0NjQgMTkyLjN6TTQ4IDEyNS40QzQ4IDExOCA1NCAxMTIgNjEuNCAxMTJsMzg5LjIgMGM3LjQgMCAxMy40IDYgMTMuNCAxMy40IDAgNC4yLTIgOC4yLTUuMyAxMC43TDI4MC4yIDI3MS41Yy0xNC4zIDEwLjgtMzQuMSAxMC44LTQ4LjQgMEw1My4zIDEzNi4xYy0zLjMtMi41LTUuMy02LjUtNS4zLTEwLjd6Il19LHluZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtZG93biIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS1kb3duIl0sImYxNTAiLCJNMzg0IDQzMmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwem02NC0xNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlTMTEwLjUgMTkyIDEyMCAxOTJsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3oiXX0scTN0PXluZSxqM3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidHJ1Y2siLGljb246WzU3Niw1MTIsWzEyODY2Niw5OTUxXSwiZjBkMSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzLjMgMGMxMC40LTM2LjkgNDQuNC02NCA4NC43LTY0czc0LjIgMjcuMSA4NC43IDY0bDEwMi42IDBjNC45LTE3LjQgMTUuMS0zMi43IDI4LjctNDMuOUwzNjggOTZjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwem0zLjMgMzY4TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyIDU1LjQgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2w0MC42IDQwLjZjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0w1NzYgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zLjMgMGMtMTAuNCAzNi45LTQ0LjQgNjQtODQuNyA2NHMtNzQuMi0yNy4xLTg0LjctNjRsLTEwMi42IDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0ek00MTYgMjU2bDExMiAwIDAtMjMuNGMwLTQuMi0xLjctOC4zLTQuNy0xMS4zbC00MC42LTQwLjZjLTMtMy03LjEtNC43LTExLjMtNC43bC01NS40IDAgMCA4MHptMCA0OGwwIDMyLjRjMi42LS4yIDUuMy0uNCA4LS40IDQwLjMgMCA3NC4yIDI3LjEgODQuNyA2NGwzLjMgMGM4LjggMCAxNi03LjIgMTYtMTZsMC04MC0xMTIgMHpNMTUyIDQ2NGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bTI3MiAwYTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sVjN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJlbGwiLGljb246WzQ0OCw1MTIsWzEyODI3Niw2MTYwMl0sImYwZjMiLCJNMjI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOS43QzExOC42IDQ1LjMgNTYgMTE1LjQgNTYgMjAwbDAgMTQuNWMwIDM3LjctMTAgNzQuNy0yOSAxMDcuM0w1LjEgMzU5LjJDMS44IDM2NSAwIDM3MS41IDAgMzc4LjIgMCAzOTkuMSAxNi45IDQxNiAzNy44IDQxNmwzNzIuNCAwYzIwLjkgMCAzNy44LTE2LjkgMzcuOC0zNy44IDAtNi43LTEuOC0xMy4zLTUuMS0xOUw0MjEgMzIxLjdjLTE5LTMyLjYtMjktNjkuNi0yOS0xMDcuM2wwLTE0LjVjMC04NC42LTYyLjYtMTU0LjctMTQ0LTE2Ni4zbDAtOS43YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0zOTIuNCAzNjhsLTMzNi45IDAgMTIuOS0yMi4xQzkxLjcgMzA2IDEwNCAyNjAuNiAxMDQgMjE0LjVsMC0xNC41YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwczEyMCA1My43IDEyMCAxMjBsMCAxNC41YzAgNDYuMiAxMi4zIDkxLjUgMzUuNSAxMzEuNEwzOTIuNCAzNjh6TTE1Ni4xIDQ2NGM5LjkgMjggMzYuNiA0OCA2Ny45IDQ4czU4LTIwIDY3LjktNDhsLTEzNS44IDB6Il19LFNnPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im1lc3NhZ2UiLGljb246WzUxMiw1MTIsWyJjb21tZW50LWFsdCJdLCJmMjdhIiwiTTIwMy43IDUxMi45czAgMCAwIDBsLTM3LjggMjYuN2MtNy4zIDUuMi0xNi45IDUuOC0yNC45IDEuN1MxMjggNTI5IDEyOCA1MjBsMC03Mi0zMiAwYy01MyAwLTk2LTQzLTk2LTk2TDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzIwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2bC0xMjAuNCAwLTkxLjkgNjQuOXptNjQuMy0xMDQuMWM4LjEtNS43IDE3LjgtOC44IDI3LjctOC44TDQxNiA0MDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMjRjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgODBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMjI0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDU2IDBjMTAuNCAwIDE5LjMgNi42IDIyLjYgMTUuOSAuOSAyLjUgMS40IDUuMiAxLjQgOC4xbDAgNDkuN2MzMi43LTIzLjEgNjMuMy00NC43IDkxLjktNjQuOXoiXX0sVTN0PVNnLHduZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWRpenp5IixpY29uOls1MTIsNTEyLFsiZGl6enkiXSwiZjU2NyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTEzNC4xIDE1My45bDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwem0xOTIgMGwyNS45IDI1LjkgMjUuOS0yNS45YzcuOC03LjggMjAuNS03LjggMjguMyAwczcuOCAyMC41IDAgMjguM2wtMjUuOSAyNS45IDI1LjkgMjUuOWM3LjggNy44IDcuOCAyMC41IDAgMjguM3MtMjAuNSA3LjgtMjguMyAwbC0yNS45LTI1LjktMjUuOSAyNS45Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMHMtNy44LTIwLjUgMC0yOC4zbDI1LjktMjUuOS0yNS45LTI1LjljLTcuOC03LjgtNy44LTIwLjUgMC0yOC4zczIwLjUtNy44IDI4LjMgMHpNMjU2IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sVzN0PXduZSxNbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItZGF5cyIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLWFsdCJdLCJmMDczIiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMzg0IDQzMmM4LjggMCAxNi03LjIgMTYtMTZsMC02NC04OCAwIDAgODAgNzIgMHptMTYtMTI4bDAtODAtODggMCAwIDgwIDg4IDB6bS0xMzYgMGwwLTgwLTgwIDAgMCA4MCA4MCAwem0tMTI4IDBsMC04MC04OCAwIDAgODAgODggMHpNNDggMzUybDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDcyIDAgMC04MC04OCAwem0xMzYgMGwwIDgwIDgwIDAgMC04MC04MCAwek0xMjAgMTEybC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA0OCAzNTIgMCAwLTQ4YzAtOC44LTcuMi0xNi0xNi0xNmwtMjY0IDB6Il19LEczdD1NbmUsWTN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtdXAiLGljb246WzM4NCw1MTIsWzk3NTddLCJmMGE2IiwiTTY0IDY0bDAgMTc3LjZjNS4yLTEgMTAuNS0xLjYgMTYtMS42bDE2IDAgMC0xNzZjMC04LjgtNy4yLTE2LTE2LTE2UzY0IDU1LjIgNjQgNjR6TTgwIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyNGMwIDY2LjMgNTMuNyAxMjAgMTIwIDEyMGw0OCAwYzUyLjUgMCA5Ny4xLTMzLjcgMTEzLjQtODAuNy0zLjEgLjUtNi4yIC43LTkuNCAuNy0yMCAwLTM3LjktOS4yLTQ5LjctMjMuNi05IDQuOS0xOS40IDcuNi0zMC4zIDcuNi0xNS4xIDAtMjktNS4zLTQwLTE0LTExIDguOC0yNC45IDE0LTQwIDE0bC00MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQwIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTgwIDB6TTAgMzIwbDAgMGMwLTE4IDYtMzQuNiAxNi00OEwxNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwczY0IDI4LjcgNjQgNjRsMCA4MmM1LjEtMS4zIDEwLjUtMiAxNi0yIDI1LjMgMCA0Ny4yIDE0LjcgNTcuNiAzNiA3LTIuNiAxNC41LTQgMjIuNC00IDIwIDAgMzcuOSA5LjIgNDkuNyAyMy42IDktNC45IDE5LjQtNy42IDMwLjMtNy42IDM1LjMgMCA2NCAyOC43IDY0IDY0bDAgODhjMCA5Mi44LTc1LjIgMTY4LTE2OCAxNjhsLTQ4IDBDNzUuMiA1MTIgMCA0MzYuOCAwIDM0NGwwLTI0em0zMzYtNjRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6TTE2MCAyNDBjNS41IDAgMTAuOSAuNyAxNiAybDAtMzRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAzMiAxNiAwem02NCAyNGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDI0eiJdfSxaM3Q9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1saXphcmQiLGljb246WzUxMiw1MTIsW10sImYyNTgiLCJNNzIgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE2OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNTIgMGM0LjUgMCA4LjkgMS4zIDEyLjcgMy42bDY0IDQwYzcgNC40IDExLjMgMTIuMSAxMS4zIDIwLjRsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwLjctNDYuOS0yOS4zLTE0NS4xIDBjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzJsMTA0IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMNzIgMjA4Yy0zOS44IDAtNzItMzIuMi03Mi03MlMzMi4yIDY0IDcyIDY0bDIwOS42IDBjNDYuNyAwIDkwLjkgMjEuNSAxMTkuNyA1OC4zbDc4LjQgMTAwLjFjMjAuOSAyNi43IDMyLjMgNTkuNyAzMi4zIDkzLjdMNTEyIDQyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwNy45YzAtMjMuMi03LjgtNDUuOC0yMi4xLTY0LjFMMzYzLjUgMTUxLjljLTE5LjctMjUuMi00OS45LTM5LjktODEuOS0zOS45TDcyIDExMnoiXX0sWDN0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1mdWxsIixpY29uOls1MTIsNTEyLFsxMjg5OTcsMTI4OTk4LDEyODk5OSwxMjllMywxMjkwMDEsMTI5MDAyLDEyOTAwMywxMTAzNSwxMTAzNl0sImY0NWMiLCJNNDQ4IDQ4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDM4NGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2bDM4NCAwek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAweiJdfSxrbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXBhdXNlIixpY29uOls1MTIsNTEyLFs2MjA5MiwicGF1c2UtY2lyY2xlIl0sImYyOGIiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMjQgMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDR6bTExMiAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDR6Il19LFEzdD1rbmUsU25lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhcmQtZHJpdmUiLGljb246WzQ0OCw1MTIsWzEyODQzNiwiaGRkIl0sImYwYTAiLCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2MmM1LjEtMS4zIDEwLjUtMiAxNi0ybDMyMCAwYzUuNSAwIDEwLjkgLjcgMTYgMmwwLTE2MmMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTQ4IDMyMGwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMzA0Yy04LjggMC0xNiA3LjItMTYgMTZ6TTAgMzIwTDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTk2em0yMTYgNDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sSjN0PVNuZSx6bmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS16aXBwZXIiLGljb246WzM4NCw1MTIsWyJmaWxlLWFyY2hpdmUiXSwiZjFjNiIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwek04MCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTY0IDU2bC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTE2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnoiXX0sSzN0PXpuZSxDbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmxvcHB5LWRpc2siLGljb246WzQ0OCw1MTIsWzEyODE5MCwxMjg0MjYsInNhdmUiXSwiZjBjNyIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDIuN2MwLTQuMi0xLjctOC4zLTQuNy0xMS4zTDMyMCA4Ni42IDMyMCAxNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTMyIDB6bTgwIDBsMCA4MCAxMjggMCAwLTgwLTEyOCAwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI0Mi43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNDI5LjMgMTI4YzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNDQ4IDQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTE2MCAzMjBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAweiJdfSxlNnQ9Q25lLFRuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tdG9uZ3VlLXNxdWludCIsaWNvbjpbNTEyLDUxMixbMTI4NTQxLCJncmluLXRvbmd1ZS1zcXVpbnQiXSwiZjU4YSIsIk00NjQgMjU2YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOFM0OCAxNDEuMSA0OCAyNTZjMCA3NS45IDQwLjcgMTQyLjQgMTAxLjUgMTc4LjctMy42LTEwLjktNS41LTIyLjYtNS41LTM0LjdsMC0zNy41Yy0xMC4yLTEyLjYtMTguMy0yNi45LTIzLjgtNDIuNC00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjYgMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTUuNSAxNS42LTEzLjYgMjkuOS0yMy44IDQyLjVsMCAzNy41YzAgMTIuMS0xLjkgMjMuOC01LjUgMzQuNyA2MC44LTM2LjMgMTAxLjUtMTAyLjcgMTAxLjUtMTc4Ljd6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTEyNS44LTc1LjdjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjFzMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zem0yNjMuNi0yMS4xYzQuNSA2LjggMy4xIDE1LjktMy4xIDIxLjFMMzUzIDIwOCAzODYuMiAyMzUuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXpNMzIwIDQxNmwwLTM3LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCAzNy40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LHQ2dD1UbmUsX25lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbWVyYSIsaWNvbjpbNTEyLDUxMixbNjIyNTgsImNhbWVyYS1hbHQiXSwiZjAzMCIsIk0xOTMuMSAzMmMtMTguNyAwLTM2LjIgOS40LTQ2LjYgMjQuOUwxMjAuNSA5NiA2NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTU2LjUgMC0yNi0zOS4xQzM1NS4xIDQxLjQgMzM3LjYgMzIgMzE4LjkgMzJMMTkzLjEgMzJ6bS02LjcgNTEuNmMxLjUtMi4yIDQtMy42IDYuNy0zLjZsMTI1LjcgMGMyLjcgMCA1LjIgMS4zIDYuNyAzLjZsMzMuMiA0OS44YzQuNSA2LjcgMTEuOSAxMC43IDIwIDEwLjdsNjkuMyAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI1NmMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDY5LjMgMGM4IDAgMTUuNS00IDIwLTEwLjdsMzMuMi00OS44ek0yNTYgMzg0YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHpNMTkyIDI3MmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LHI2dD1fbmUsTG5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1zdGFycyIsaWNvbjpbNTEyLDUxMixbMTI5MzIxLCJncmluLXN0YXJzIl0sImY1ODciLCJNMCAyNTZjMC0yOS42IDUtNTcuOSAxNC4yLTg0LjRsMTcuMyAxNi45LTQuNiAyN2MtNC4yIDI0LjQgNS42IDQ2LjIgMjIgNTkuOSA5LjggMTA1LjggOTguOCAxODguNyAyMDcuMSAxODguN3MxOTcuNC04Mi44IDIwNy4xLTE4OC42YzE2LjQtMTMuNyAyNi4xLTM1LjQgMjItNTkuOWwtNC42LTI3IDE3LjMtMTYuOWM5LjIgMjYuNCAxNC4yIDU0LjggMTQuMiA4NC40IDAgMTQxLjQtMTE0LjYgMjU2LTI1NiAyNTZTMCAzOTcuNCAwIDI1NnpNMjU2IDQ4Yy0xNS4yIDAtMzAgMS42LTQ0LjMgNC43TDIwMS40IDMxLjhDMTk3IDIzIDE5MS4xIDE1LjggMTg0LjIgMTAuMiAyMDcgMy42IDIzMS4xIDAgMjU2IDBzNDkgMy42IDcxLjggMTAuMkMzMjAuOSAxNS44IDMxNSAyMyAzMTAuNiAzMS44TDMwMC4zIDUyLjdDMjg2IDQ5LjYgMjcxLjIgNDggMjU2IDQ4ek0zNzIuMiAzMDIuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMzUzLjcgNTMuMWM1LjktMTEuOSAyMi44LTExLjkgMjguNyAwbDIzLjMgNDcuMiA1MiA3LjZjMTMuMSAxLjkgMTguNCAxOCA4LjkgMjcuM2wtMzcuNyAzNi43IDguOSA1MS44YzIuMiAxMy4xLTExLjUgMjMtMjMuMiAxNi45TDM2OCAyMTYgMzIxLjUgMjQwLjVjLTExLjcgNi4yLTI1LjUtMy44LTIzLjItMTYuOWw4LjktNTEuOC0zNy43LTM2LjdjLTkuNS05LjMtNC4zLTI1LjQgOC45LTI3LjNsNTItNy42IDIzLjMtNDcuMnptLTE5NS4zIDBsMjMuMyA0Ny4yIDUyIDcuNmMxMy4xIDEuOSAxOC40IDE4IDguOSAyNy4zbC0zNy43IDM2LjcgOC45IDUxLjhjMi4yIDEzLjEtMTEuNSAyMy0yMy4yIDE2LjlMMTQ0IDIxNiA5Ny41IDI0MC41Yy0xMS43IDYuMi0yNS41LTMuOC0yMy4yLTE2LjlsOC45LTUxLjgtMzcuNy0zNi43Yy05LjUtOS4zLTQuMy0yNS40IDguOS0yNy4zbDUyLTcuNiAyMy4zLTQ3LjJjNS45LTExLjkgMjIuOC0xMS45IDI4LjcgMHoiXX0saTZ0PUxuZSxhNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZXllIixpY29uOls1NzYsNTEyLFsxMjgwNjVdLCJmMDZlIiwiTTI4OCA4MEMyMjIuOCA4MCAxNjkuMiAxMDkuNiAxMjguMSAxNDcuNyA4OS42IDE4My41IDYzIDIyNiA0OS40IDI1NiA2MyAyODYgODkuNiAzMjguNSAxMjguMSAzNjQuMyAxNjkuMiA0MDIuNCAyMjIuOCA0MzIgMjg4IDQzMnMxMTguOC0yOS42IDE1OS45LTY3LjdDNDg2LjQgMzI4LjUgNTEzIDI4NiA1MjYuNiAyNTYgNTEzIDIyNiA0ODYuNCAxODMuNSA0NDcuOSAxNDcuNyA0MDYuOCAxMDkuNiAzNTMuMiA4MCAyODggODB6TTk1LjQgMTEyLjZDMTQyLjUgNjguOCAyMDcuMiAzMiAyODggMzJzMTQ1LjUgMzYuOCAxOTIuNiA4MC42YzQ2LjggNDMuNSA3OC4xIDk1LjQgOTMgMTMxLjEgMy4zIDcuOSAzLjMgMTYuNyAwIDI0LjYtMTQuOSAzNS43LTQ2LjIgODcuNy05MyAxMzEuMS00Ny4xIDQzLjctMTExLjggODAuNi0xOTIuNiA4MC42UzE0Mi41IDQ0My4yIDk1LjQgMzk5LjRjLTQ2LjgtNDMuNS03OC4xLTk1LjQtOTMtMTMxLjEtMy4zLTcuOS0zLjMtMTYuNyAwLTI0LjYgMTQuOS0zNS43IDQ2LjItODcuNyA5My0xMzEuMXpNMjg4IDMzNmM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTI5LjYtMTYuMS01NS41LTQwLTY5LjMtMS40IDU5LjctNDkuNiAxMDcuOS0xMDkuMyAxMDkuMyAxMy44IDIzLjkgMzkuNyA0MCA2OS4zIDQwem0tNzkuNi04OC40YzIuNSAuMyA1IC40IDcuNiAuNCAzNS4zIDAgNjQtMjguNyA2NC02NCAwLTIuNi0uMi01LjEtLjQtNy42LTM3LjQgMy45LTY3LjIgMzMuNy03MS4xIDcxLjF6bTQ1LjYtMTE1YzEwLjgtMyAyMi4yLTQuNSAzMy45LTQuNSA4LjggMCAxNy41IC45IDI1LjggMi42IC4zIC4xIC41IC4xIC44IC4yIDU3LjkgMTIuMiAxMDEuNCA2My43IDEwMS40IDEyNS4yIDAgNzAuNy01Ny4zIDEyOC0xMjggMTI4LTYxLjYgMC0xMTMtNDMuNS0xMjUuMi0xMDEuNC0xLjgtOC42LTIuOC0xNy41LTIuOC0yNi42IDAtMTEgMS40LTIxLjggNC0zMiAuMi0uNyAuMy0xLjMgLjUtMS45IDExLjktNDMuNCA0Ni4xLTc3LjYgODkuNS04OS41eiJdfSxBbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zYWQtdGVhciIsaWNvbjpbNTEyLDUxMixbMTI4NTQ2LCJzYWQtdGVhciJdLCJmNWI0IiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDQxLjggMTIuMyA4MC43IDMzLjYgMTEzLjMgOC4yIDQ0LjcgNDcuMyA3OC42IDk0LjMgNzguNyAyNC43IDEwLjMgNTEuNyAxNiA4MC4xIDE2IDExNC45IDAgMjA4LTkzLjEgMjA4LTIwOHpNMjg4IDM1MmMtNS41IDAtMTAuOSAuNi0xNiAxLjggMC0uNiAwLTEuMiAwLTEuOCAwLTE2LjItNC0zMS41LTExLjEtNDQuOSA4LjctMiAxNy44LTMuMSAyNy4xLTMuMSA0MC4yIDAgNzUuNyAxOS44IDk3LjUgNTAgNy43IDEwLjggNS4zIDI1LjgtNS41IDMzLjVzLTI1LjggNS4zLTMzLjUtNS41Yy0xMy4xLTE4LjItMzQuNC0zMC01OC41LTMwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTg1LjQgMjc2LjhjNi41IDcuOCAxMi42IDE2LjEgMTguMyAyNC42IDkgMTMuNCAyMC4zIDMwLjIgMjAuMyA0Ny40IDAgMjguMy0yMS41IDUxLjItNDggNTEuMnMtNDgtMjIuOS00OC01MS4yYzAtMTcuMiAxMS4yLTM0IDIwLjMtNDcuNCA1LjctOC41IDExLjktMTYuNyAxOC4zLTI0LjYgMi40LTIuOSA1LjctNC44IDkuNC00LjhzNyAxLjkgOS40IDQuOHoiXX0sbjZ0PUFuZSxEbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic2hhcmUtZnJvbS1zcXVhcmUiLGljb246WzU3Niw1MTIsWzYxNTA5LCJzaGFyZS1zcXVhcmUiXSwiZjE0ZCIsIk00MjUuNSA3Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzM4NC41IDE0LjMgMzg0LjUgMjRsMCA1Ni00OCAwYy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MCAwIDQ2LjcgMjAuNyA4MC40IDQzLjYgMTAzLjQgOC4xIDguMiAxNi41IDE0LjkgMjQuMyAyMC40IDkuMiA2LjUgMjEuNyA1LjcgMzAuMS0xLjlzMTAuMi0yMCA0LjUtMjkuOGMtMy42LTYuMy02LjUtMTQuOS02LjUtMjYuNyAwLTM2LjIgMjkuMy02NS41IDY1LjUtNjUuNWw0Ni41IDAgMCA1NmMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJsMTM2LTEzNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0MjUuNSA3em03IDk3bDAtMjIuMSA3OC4xIDc4LjEtNzguMSA3OC4xIDAtMjIuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNEwzMzggMTkyYy01MC45IDAtOTMuOSAzMy41LTEwOC4zIDc5LjYtMy4zLTkuNC01LjItMTkuOC01LjItMzEuNiAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMmw3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0em0tMzIwLThjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjU2YzAgNDQuMiAzNS44IDgwIDgwIDgwbDI1NiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0IDB6Il19LG82dD1EbmUsRW5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6Im5vdGUtc3RpY2t5IixpY29uOls0NDgsNTEyLFs2MjAyNiwic3RpY2t5LW5vdGUiXSwiZjI0OSIsIk0yNDAgNDMyTDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNzYtODggMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA4OHpNMzgwLjEgMzIwTDI4OCA0MTIuMSAyODggMzQ0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDY4LjEgMHpNMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTk3LjUgMGMxNyAwIDMzLjMtNi43IDQ1LjMtMTguN0w0MjkuMyAzMzguN2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2eiJdfSxzNnQ9RW5lLCRuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLWJhY2stZmlzdCIsaWNvbjpbMzg0LDUxMixbImhhbmQtcm9jayJdLCJmMjU1IiwiTTk2IDQwMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDQwMHpNNzMuMiAzNTJsNjQuNiAwLTc5LjUtODguM0M1MS43IDI1Ni4zIDQ4IDI0Ni44IDQ4IDIzNi45TDQ4IDIwNGMwLTE2LjEgMTEuOS0yOS41IDI3LjQtMzEuNyAxMS44LTEuNyAyMC42LTExLjggMjAuNi0yMy44TDk2IDcyYzAtMTMuMyAxMC43LTI0IDI0LTI0IDcuMiAwIDEzLjYgMy4xIDE4IDguMSA0LjYgNS4yIDExLjEgOC4xIDE4IDguMXMxMy40LTMgMTgtOC4xYzQuNC01IDEwLjgtOC4xIDE4LTguMSA4LjUgMCAxNS45IDQuNCAyMC4yIDExLjEgNi45IDEwLjcgMjAuOSAxNC4yIDMyIDggMy41LTEuOSA3LjQtMy4xIDExLjgtMy4xIDEwLjYgMCAxOS43IDYuOSAyMi44IDE2LjYgMy44IDExLjcgMTUuOSAxOC43IDI4IDE2IDEuNy0uNCAzLjQtLjYgNS4yLS42IDEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOTIuMmMwIDE0LjQtMy41IDI4LjUtMTAuMiA0MS4ybC01Mi4yIDk4LjYgNTQuMyAwIDQwLjMtNzYuMmMxMC40LTE5LjYgMTUuOC00MS41IDE1LjgtNjMuNmwwLTkyLjJjMC0zOC40LTMwLjEtNjkuOC02OC4xLTcxLjktMTIuOS0xOS4zLTM0LjktMzIuMS01OS45LTMyLjEtNS43IDAtMTEuMiAuNy0xNi41IDEuOS0xMi43LTExLjEtMjkuMy0xNy45LTQ3LjUtMTcuOS0xMy4xIDAtMjUuNCAzLjUtMzYgOS42LTEwLjYtNi4xLTIyLjktOS42LTM2LTkuNi0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDU4LjdDMTkuNyAxNDMgMCAxNzEuMiAwIDIwNGwwIDMyLjljMCAyMS43IDggNDIuNyAyMi42IDU4LjlMNzMuMiAzNTJ6Il19LGw2dD0kbmUsYzZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLXF1ZWVuIixpY29uOls1MTIsNTEyLFs5ODE5XSwiZjQ0NSIsIk0zMjUuMyA5MC44YzkuMS00LjggMjAuNi0zLjMgMjguMiA0LjNsMzkuOCAzOS44IDMuNyAzLjNjOS4xIDcuMSAyMC45IDEwIDMyLjQgNy43bDQ2LjQtOS4zIDMuNS0uNGM4LS40IDE1LjggMy4yIDIwLjYgOS44IDUuNSA3LjYgNi4xIDE3LjYgMS42IDI1LjhsLTExMi42IDIwMi42IDUxLjUgNzAuOSAxLjggMi43YzQgNi42IDYuMiAxNC4yIDYuMiAyMiAwIDIzLjMtMTguOSA0Mi4xLTQyLjEgNDIuMWwtMjk5LjggMGMtMjEuOCAwLTM5LjgtMTYuNi00MS45LTM3LjhsLS4yLTQuMyAuMS0zLjNjLjYtNy43IDMuNC0xNS4xIDcuOS0yMS40bDUxLjUtNzAuOS0xMTIuNS0yMDIuNmMtNC41LTguMi0zLjktMTguMyAxLjYtMjUuOHMxNC45LTExLjIgMjQuMS05LjRsNDYuNCA5LjNjMTMuMSAyLjYgMjYuNy0xLjUgMzYuMS0xMC45TDE1OS41IDk1IDE2MyA5Mi4yYzguNi01LjggMjAuMS01LjYgMjguNSAxLjFsNDAgMzIgMi44IDIuMWMxNC40IDkuNiAzMy41IDguOSA0Ny4yLTIuMWw0MC0zMiAzLjgtMi41ek0xNjQuNyA0MDBsLTQ2LjYgNjQgMjc2LjcgMC00Ni42LTY0LTE4My42IDB6TTMxMS41IDE2Mi44Yy0zMC4xIDI0LjEtNzIuMSAyNS42LTEwMy44IDQuNWwtNi4yLTQuNS0yMy4zLTE4LjYtMjQuNiAyNC42Yy0xOS44IDE5LjgtNDcuNyAyOC45LTc1LjEgMjQuOGw4OC4xIDE1OC41IDE3OS44IDAgODgtMTU4LjVjLTI1LjcgMy44LTUxLjctMy45LTcxLjEtMjFsLTQtMy43LTI0LjYtMjQuNi0yMy4yIDE4LjZ6TTI1Ni41IDcyYTQwIDQwIDAgMSAxIDAtODAgNDAgNDAgMCAxIDEgMCA4MHoiXX0sSW5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10ZWFycyIsaWNvbjpbNjQwLDUxMixbMTI4NTE0LCJncmluLXRlYXJzIl0sImY1ODgiLCJNNTA0LjEgMzUzQzUxMi45IDM2Ny4yIDUyNS4zIDM3OSA1MzkuOCAzODcuMiA0OTUuMSA0NjIgNDEzLjQgNTEyIDMyMCA1MTJTMTQ0LjkgNDYyIDEwMC4yIDM4Ny4yYzE0LjYtOC4yIDI2LjktMjAgMzUuOC0zNC4zIDM0LjkgNjYgMTA0LjIgMTExIDE4NC4xIDExMXMxNDkuMi00NSAxODQuMS0xMTF6bTE2LjQtMTUyLjVDNDk2LjIgMTEyLjYgNDE1LjcgNDggMzIwIDQ4UzE0My44IDExMi42IDExOS41IDIwMC41Yy0xMC42LTQuOC0yMi43LTYuOC0zNS40LTVsLTEzLjQgMS45Qzk3LjIgODQuMyAxOTguOCAwIDMyMCAwUzU0Mi44IDg0LjMgNTY5LjMgMTk3LjRsLTEzLjQtMS45Yy0xMi43LTEuOC0yNC44IC4yLTM1LjQgNXpNNDU1LjggMzIwYy0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42IDExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOHpNMjEyIDIwOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4em0xODgtMjhjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6TTY0MCAzMDAuNmMwIDI4LjQtMjMgNTEuNC01MS40IDUxLjQtMjUuNiAwLTQ3LjMtMTguOC01MC45LTQ0LjFMNTMxIDI2MS4xYy0xLjUtMTAuNiA3LjUtMTkuNiAxOC4xLTE4LjFsNDYuNyA2LjdjMjUuMyAzLjYgNDQuMSAyNS4zIDQ0LjEgNTAuOXptLTY0MCAwYzAtMjUuNiAxOC44LTQ3LjMgNDQuMS01MC45TDkwLjkgMjQzYzEwLjYtMS41IDE5LjYgNy41IDE4LjEgMTguMWwtNi43IDQ2LjdDOTguNyAzMzMuMiA3NyAzNTIgNTEuNCAzNTIgMjMgMzUyIDAgMzI5IDAgMzAwLjZ6Il19LGQ2dD1JbmUsUG5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InBlbi10by1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJlZGl0Il0sImYwNDQiLCJNNDQxIDU4LjlMNDUzLjEgNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNDI0IDEzNC4xIDM3Ny45IDg4IDQwNyA1OC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwek0yMDkuOCAyNTYuMkwzNDQgMTIxLjkgMzkwLjEgMTY4IDI1NS44IDMwMi4yYy0yLjkgMi45LTYuNSA1LTEwLjQgNi4xbC01OC41IDE2LjcgMTYuNy01OC41YzEuMS0zLjkgMy4yLTcuNSA2LjEtMTAuNHpNMzczLjEgMjVMMTc1LjggMjIyLjJjLTguNyA4LjctMTUgMTkuNC0xOC4zIDMxLjFsLTI4LjYgMTAwYy0yLjQgOC40LS4xIDE3LjQgNi4xIDIzLjZzMTUuMiA4LjUgMjMuNiA2LjFsMTAwLTI4LjZjMTEuOC0zLjQgMjIuNS05LjcgMzEuMS0xOC4zTDQ4NyAxMzguOWMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjhMNDc0LjkgMjVDNDQ2LjgtMy4xIDQwMS4yLTMuMSAzNzMuMSAyNXpNODggNjRDMzkuNCA2NCAwIDEwMy40IDAgMTUyTDAgNDI0YzAgNDguNiAzOS40IDg4IDg4IDg4bDI3MiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMjIuMS0xNy45IDQwLTQwIDQwTDg4IDQ2NGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC0yNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6Il19LHU2dD1QbmUsTm5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1iZWFtLXN3ZWF0IixpY29uOls1NzYsNTEyLFsxMjg1MTcsImdyaW4tYmVhbS1zd2VhdCJdLCJmNTgzIiwiTTUzMC4yIDE1LjljLTguOC0xMC43LTE4LjUtMjAuOS0yOS0zMC0zLTIuNi03LjQtMi42LTEwLjQgMC0xMC41IDkuMS0yMC4xIDE5LjMtMjkgMzAtMTQuNyAxNy44LTI5LjggNDAuMS0yOS44IDY0LjEgMCAzNi40IDI3LjYgNjQgNjQgNjRzNjQtMjcuNiA2NC02NGMwLTI0LTE1LjItNDYuMy0yOS44LTY0LjF6bS0xMzIgOC45QzM2NC44IDguOSAzMjcuNCAwIDI4OCAwIDE0Ni42IDAgMzIgMTE0LjYgMzIgMjU2UzE0Ni42IDUxMiAyODggNTEyIDU0NCAzOTcuNCA1NDQgMjU2YzAtMjQuNC0zLjQtNDgtOS44LTcwLjQtMTEuOSA0LjItMjQuNyA2LjQtMzguMiA2LjQtMy40IDAtNi44LS4xLTEwLjItLjQgNi42IDIwLjMgMTAuMiA0MS45IDEwLjIgNjQuNCAwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTODAgMzcwLjkgODAgMjU2IDE3My4xIDQ4IDI4OCA0OGMzNC44IDAgNjcuNSA4LjUgOTYuMyAyMy42IDEuNC0xNy40IDYuOS0zMy4xIDEzLjgtNDYuOHpNNDIzLjggMzIwYzQuMS0xMS42LTcuOC0yMS40LTE5LjYtMTcuOC0zNC44IDEwLjYtNzQuMyAxNi42LTExNi4zIDE2LjYtNDEuOSAwLTgxLjQtNi0xMTYuMS0xNi41LTExLjgtMy42LTIzLjcgNi4xLTE5LjYgMTcuOCAxOS44IDU1LjkgNzMuMSA5NS45IDEzNS44IDk1LjkgNjIuNyAwIDExNi00MC4xIDEzNS44LTk2ek0xODAgMjA4YzAtMTUuNSAxMi41LTI4IDI4LTI4czI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04em0xODgtMjhjMTUuNSAwIDI4IDEyLjUgMjggMjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOGMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMTUuNSAxMi41LTI4IDI4LTI4eiJdfSxwNnQ9Tm5lLEZuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbG9jayIsaWNvbjpbNTEyLDUxMixbMTI4MzM5LCJjbG9jay1mb3VyIl0sImYwMTciLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAxIC00MTYgMCAyMDggMjA4IDAgMSAxIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwIDI1NiAyNTYgMCAxIDAgLTUxMiAwek0yMzIgMTIwbDAgMTM2YzAgOCA0IDE1LjUgMTAuNyAyMGw5NiA2NGMxMSA3LjQgMjUuOSA0LjQgMzMuMy02LjdzNC40LTI1LjktNi43LTMzLjNMMjgwIDI0My4yIDI4MCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LGg2dD1GbmUsT25lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtd2luayIsaWNvbjpbNTEyLDUxMixbImxhdWdoLXdpbmsiXSwiZjU5YyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTExOC4zIDU4LjJjLTQuMi0xMy43IDcuMS0yNi4yIDIxLjQtMjYuMmwyMzIuNiAwYzE0LjMgMCAyNS42IDEyLjUgMjEuNCAyNi4yLTE4IDU4LjktNzIuOSAxMDEuOC0xMzcuNyAxMDEuOFMxMzYuMyAzNzMuMSAxMTguMyAzMTQuMnpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxmNnQ9T25lLG02dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJwYXBlci1wbGFuZSIsaWNvbjpbNTc2LDUxMixbNjE5MTNdLCJmMWQ4IiwiTTI5MC41IDI4Ny43TDQ5MS40IDg2LjkgMzU5IDQ1Ni4zIDI5MC41IDI4Ny43ek00NTcuNCA1M0wyNTYuNiAyNTMuOCA4OCAxODUuMyA0NTcuNCA1M3pNMzguMSAyMTYuOGwyMDUuOCA4My42IDgzLjYgMjA1LjhjNS4zIDEzLjEgMTguMSAyMS43IDMyLjMgMjEuNyAxNC43IDAgMjcuOC05LjIgMzIuOC0yMy4xTDU3MC42IDhjMy41LTkuOCAxLTIwLjYtNi4zLTI4cy0xOC4yLTkuOC0yOC02LjNMMzkuNCAxNTEuN2MtMTMuOSA1LTIzLjEgMTguMS0yMy4xIDMyLjggMCAxNC4yIDguNiAyNyAyMS43IDMyLjN6Il19LGc2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoZWFydCIsaWNvbjpbNTEyLDUxMixbMTI4MTUzLDEyODE1NCwxMjgxNTUsMTI4MTU2LDEyODQyMCwxMjkyOTMsMTI5Mjk0LDEyOTUwNSw5ODI5LDEwMDg0LDYxNTc4XSwiZjAwNCIsIk0zNzguOSA4MGMtMjcuMyAwLTUzIDEzLjEtNjkgMzUuMmwtMzQuNCA0Ny42Yy00LjUgNi4yLTExLjcgOS45LTE5LjQgOS45cy0xNC45LTMuNy0xOS40LTkuOWwtMzQuNC00Ny42Yy0xNi0yMi4xLTQxLjctMzUuMi02OS0zNS4yLTQ3IDAtODUuMSAzOC4xLTg1LjEgODUuMSAwIDQ5LjkgMzIgOTguNCA2OC4xIDE0Mi4zIDQxLjEgNTAgOTEuNCA5NCAxMjUuOSAxMjAuMyAzLjIgMi40IDcuOSA0LjIgMTQgNC4yczEwLjgtMS44IDE0LTQuMmMzNC41LTI2LjMgODQuOC03MC40IDEyNS45LTEyMC4zIDM2LjItNDMuOSA2OC4xLTkyLjQgNjguMS0xNDIuMyAwLTQ3LTM4LjEtODUuMS04NS4xLTg1LjF6TTI3MSA4Ny4xYzI1LTM0LjYgNjUuMi01NS4xIDEwNy45LTU1LjEgNzMuNSAwIDEzMy4xIDU5LjYgMTMzLjEgMTMzLjEgMCA2OC42LTQyLjkgMTI4LjktNzkuMSAxNzIuOC00NC4xIDUzLjYtOTcuMyAxMDAuMS0xMzMuOCAxMjcuOS0xMi4zIDkuNC0yNy41IDE0LjEtNDMuMSAxNC4xcy0zMC44LTQuNy00My4xLTE0LjFDMTc2LjQgNDM4IDEyMy4yIDM5MS41IDc5LjEgMzM4IDQyLjkgMjk0LjEgMCAyMzMuNyAwIDE2NS4xIDAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN3oiXX0sSEE9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZm9udC1hd2Vzb21lIixpY29uOls1MTIsNTEyLFs2MjUwMSw2MjY5NCwiZm9udC1hd2Vzb21lLWZsYWciLCJmb250LWF3ZXNvbWUtbG9nby1mdWxsIl0sImYyYjQiLCJNOTEuNyA5NkMxMDYuMyA4Ni44IDExNiA3MC41IDExNiA1MiAxMTYgMjMuMyA5Mi43IDAgNjQgMFMxMiAyMy4zIDEyIDUyYzAgMTYuNyA3LjggMzEuNSAyMCA0MWwwIDQxOSA0OCAwIDAtNjQgMzg5LjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNCAwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3MiA0OTMuNyAxMzMuMWMxLjUtMy40IDIuMy03IDIuMy0xMC43IDAtMTQuNi0xMS44LTI2LjQtMjYuNC0yNi40TDkxLjcgOTZ6TTgwIDQwMGwwLTI1NiAzNTYuNCAwLTQ4LjIgMTA4LjVjLTUuNSAxMi40LTUuNSAyNi42IDAgMzlMNDM2LjQgNDAwIDgwIDQwMHoiXX0sYjZ0PUhBLHY2dD1IQSx4NnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvbmUiLGljb246WzUxMiw1MTIsW10sImYyNGQiLCJNMjg4IDQ2NEw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDggMCAwLTQ4LTQ4IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDgtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnpNMjI0IDMwNGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMHptLTY0LTE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDIyNCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNHoiXX0seTZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlci1vcGVuIixpY29uOls1NzYsNTEyLFsxMjgxOTQsMTI4NDQ5LDYxNzE3XSwiZjA3YyIsIk05Ny41IDQwMGw1MC0xNjAgMzc5LjQgMC01MCAxNjAtMzc5LjQgMHptMTkwLjcgNDhMNDc3IDQ0OGMyMSAwIDM5LjYtMTMuNiA0NS44LTMzLjdsNTAtMTYwYzkuNy0zMC45LTEzLjQtNjIuMy00NS44LTYyLjNsLTM3OS40IDBjLTIxIDAtMzkuNiAxMy42LTQ1LjggMzMuN0w4MC4yIDI5NC40IDgwLjIgOTZjMC04LjggNy4yLTE2IDE2LTE2bDEzOC43IDBjMy41IDAgNi44IDEuMSA5LjYgMy4yTDI4Mi45IDExMmMxMy44IDEwLjQgMzAuNyAxNiA0OCAxNmwxMTcuMyAwYzguOCAwIDE2IDcuMiAxNiAxNmw0OCAwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDMzMC45IDgwYy02LjkgMC0xMy43LTIuMi0xOS4yLTYuNEwyNzMuMyA0NC44QzI2Mi4yIDM2LjUgMjQ4LjggMzIgMjM0LjkgMzJMOTYuMiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDB6Il19LHc2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ3aW5kb3ctbWluaW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ2OV0sImYyZDEiLCJNMCA0MjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNDQ4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sTTZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXItaGFsZiIsaWNvbjpbNTc2LDUxMixbNjE3MzFdLCJmMDg5IiwiTTI4NS43LTE1LjhjMTAuOCAyLjYgMTguNCAxMi4yIDE4LjQgMjMuM2wwIDM4Ny4xYzAgOS01LjEgMTcuMy0xMy4xIDIxLjRMMTQzLjggNDkxYy04IDQuMS0xNy43IDMuMy0yNS0ycy0xMS0xNC4yLTkuNi0yMy4yTDEzNC40IDMwNS45IDIwIDE5MS40Yy02LjQtNi40LTguNi0xNS44LTUuOC0yNC40czEwLjEtMTQuOSAxOS4xLTE2LjNMMTkzLjEgMTI1LjMgMjU4LjgtMy4zYzUtOS45IDE2LjItMTUgMjctMTIuNHpNMjU2LjEgMTA3LjRMMjMwLjMgMTU4Yy0zLjUgNi44LTEwIDExLjYtMTcuNiAxMi44bC0xMjUuNSAyMCA4OS44IDg5LjljNS40IDUuNCA3LjkgMTMuMSA2LjcgMjAuN2wtMTkuOCAxMjUuNSA5Mi4yLTQ2LjkgMC0yNzIuNnoiXX0sazZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImFsYXJtLWNsb2NrIixpY29uOls1MTIsNTEyLFs5MjAwXSwiZjM0ZSIsIk00MDIuNiA1MC4yYy01LjQgMS43LTExLjMgMS44LTE2LjItLjktNS44LTMuMi0xMS44LTYuMi0xNy44LTguOS0xMC40LTQuNy0xMy43LTE4LjMtNC4xLTI0LjYgMTUtOS45IDMzLTE1LjcgNTIuMy0xNS43IDUyLjYgMCA5NS4yIDQyLjYgOTUuMiA5NS4yIDAgMTMuMi0yLjcgMjUuOC03LjYgMzcuMy00LjUgMTAuNS0xOC40IDkuOC0yNC45IC40LTMuOC01LjUtNy44LTEwLjgtMTItMTYtMy41LTQuNC00LjUtMTAuMi0zLjgtMTUuOCAuMi0xLjkgLjQtMy45IC40LTUuOSAwLTI2LjEtMjEuMi00Ny4yLTQ3LjItNDcuMi00LjkgMC05LjcgLjgtMTQuMiAyLjJ6TTMyLjUgMTMyLjljLTYuNSA5LjQtMjAuNSAxMC4xLTI0LjktLjQtNC45LTExLjUtNy42LTI0LjEtNy42LTM3LjMgMC01Mi42IDQyLjYtOTUuMiA5NS4yLTk1LjIgMTkuMyAwIDM3LjMgNS44IDUyLjMgMTUuNyA5LjYgNi4zIDYuMyAxOS45LTQuMSAyNC42LTYuMSAyLjgtMTIgNS43LTE3LjggOC45LTQuOSAyLjctMTAuOSAyLjYtMTYuMiAuOS00LjUtMS40LTkuMi0yLjItMTQuMi0yLjItMjYuMSAwLTQ3LjIgMjEuMi00Ny4yIDQ3LjIgMCAyIC4xIDQgLjQgNS45IC43IDUuNi0uMyAxMS40LTMuOCAxNS44LTQuMiA1LjItOC4yIDEwLjUtMTIgMTZ6TTQzMiAyODhhMTc2IDE3NiAwIDEgMCAtMzUyIDAgMTc2IDE3NiAwIDEgMCAzNTIgMHpNMzk2LjUgNDYyLjVDMzU4LjEgNDkzLjQgMzA5LjIgNTEyIDI1NiA1MTJzLTEwMi4xLTE4LjYtMTQwLjUtNDkuNUw3MyA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDIuNS00Mi41QzUwLjYgMzkwLjEgMzIgMzQxLjIgMzIgMjg4IDMyIDE2NC4zIDEzMi4zIDY0IDI1NiA2NFM0ODAgMTY0LjMgNDgwIDI4OGMwIDUzLjItMTguNiAxMDIuMS00OS41IDE0MC41TDQ3MyA0NzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDIuNS00Mi41ek0yODAgMTg0bDAgOTQuMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00OC00OGMtNC41LTQuNS03LTEwLjYtNy0xN2wwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxTNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibmV3c3BhcGVyIixpY29uOls1MTIsNTEyLFsxMjgyNDBdLCJmMWVhIiwiTTE2OCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMDRjMCA4LjQtMS40IDE2LjUtNC4xIDI0TDQ0MCA0MzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0zMDRjMC0xMy4zLTEwLjctMjQtMjQtMjRMMTY4IDgwek03MiA0ODBjLTM5LjggMC03Mi0zMi4yLTcyLTcyTDAgMTEyQzAgOTguNyAxMC43IDg4IDI0IDg4czI0IDEwLjcgMjQgMjRsMCAyOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMwNGMwLTM5LjggMzIuMi03MiA3Mi03MmwyNzIgMGMzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDMwNGMwIDM5LjgtMzIuMiA3Mi03MiA3Mkw3MiA0ODB6TTE5MiAxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4em0xNTIgMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjE2IDI1NmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgODBsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxxQT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJob3NwaXRhbCIsaWNvbjpbNTc2LDUxMixbMTI3OTczLDYyNTg5LCJob3NwaXRhbC1hbHQiLCJob3NwaXRhbC13aWRlIl0sImYwZjgiLCJNMTc2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgNDgtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NEwxNzYgMHpNMTYwIDY0YzAtOC44IDcuMi0xNiAxNi0xNmwyMjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw3MiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDI3MmMwIDguOC03LjIgMTYtMTYgMTZsLTE3NiAwIDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAtMTc2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI3MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTcyek0xMTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTk2IDMzNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMjAgMGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNi0xMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjY0IDEwNGwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sejZ0PXFBLEM2dD1xQSxSbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXN0b3AiLGljb246WzUxMiw1MTIsWzYyMDk0LCJzdG9wLWNpcmNsZSJdLCJmMjhkIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTYwIDE5MmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem00OCAxMTJsMC05NiA5NiAwIDAgOTYtOTYgMHoiXX0sVDZ0PVJuZSxfNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToib2JqZWN0LXVuZ3JvdXAiLGljb246WzY0MCw1MTIsW10sImYyNDgiLCJNNDguMiA2Ni44Yy0uMS0uOC0uMi0xLjctLjItMi41bDAtLjJjMC04LjggNy4yLTE2IDE2LTE2IC45IDAgMS45IC4xIDIuOCAuMiA3LjUgMS4zIDEzLjIgNy45IDEzLjIgMTUuOCAwIDguOC03LjIgMTYtMTYgMTYtNy45IDAtMTQuNS01LjctMTUuOC0xMy4yek0wIDY0YzAgMjYuOSAxNi41IDQ5LjkgNDAgNTkuM2wwIDEwNS4zYy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDIwMS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTEwNS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NC0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBMMTIzLjMgNDBDMTEzLjkgMTYuNSA5MC45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjR6bTM2OCAwYTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTMyNC43IDg4YzYuNSAxNiAxOS4zIDI4LjkgMzUuMyAzNS4zbDAgMTA1LjNjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zbC0yMDEuMyAwYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM2wwLTEwNS4zYzE2LTYuNSAyOC45LTE5LjMgMzUuMy0zNS4zbDIwMS4zIDB6TTM4NCAyNzJhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyek04MCAyODhjMCA3LjktNS43IDE0LjUtMTMuMiAxNS44LS44IC4xLTEuNyAuMi0yLjUgLjJsLS4yIDBjLTguOCAwLTE2LTcuMi0xNi0xNiAwLS45IC4xLTEuOSAuMi0yLjggMS4zLTcuNSA3LjktMTMuMiAxNS44LTEzLjIgOC44IDAgMTYgNy4yIDE2IDE2em00MzYuNy00MGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDEwNS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMjAxLjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0yMC43LTQ4IDAgMCAyMC43Yy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDIwMS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTEwNS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NC0yNi45IDAtNDkuOSAxNi41LTU5LjMgNDBsLTUyLjcgMCAwIDkuNmMxMC43IDEwLjkgMTkuMSAyMy45IDI0LjYgMzguNGwyOCAwem01OS4zLThhMTYgMTYgMCAxIDEgMC0zMiAxNiAxNiAwIDEgMSAwIDMyek0yNzEuOCA0NTAuN2ExNiAxNiAwIDEgMSAtMzEuNS01LjUgMTYgMTYgMCAxIDEgMzEuNSA1LjV6bTMwMS41IDEzYy03LjUtMS4zLTEzLjItNy45LTEzLjItMTUuOCAwLTguOCA3LjItMTYgMTYtMTYgNy45IDAgMTQuNSA1LjcgMTUuOCAxMy4ybDAgLjFjLjEgLjkgLjIgMS44IC4yIDIuNyAwIDguOC03LjIgMTYtMTYgMTYtLjkgMC0xLjktLjEtMi44LS4yeiJdfSxMNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tbWVudCIsaWNvbjpbNTEyLDUxMixbMTI4NDg5LDYxNjY5XSwiZjA3NSIsIk01MS45IDM4NC45QzE5LjMgMzQ0LjYgMCAyOTQuNCAwIDI0MCAwIDEwNy41IDExNC42IDAgMjU2IDBTNTEyIDEwNy41IDUxMiAyNDAgMzk3LjQgNDgwIDI1NiA0ODBjLTM2LjUgMC03MS4yLTcuMi0xMDIuNi0yMEwzNyA1MDkuOWMtMy43IDEuNi03LjUgMi4xLTExLjUgMi4xLTE0LjEgMC0yNS41LTExLjQtMjUuNS0yNS41IDAtNC4zIDEuMS04LjUgMy4xLTEyLjJsNDguOC04OS40em0zNy4zLTMwLjJjMTIuMiAxNS4xIDE0LjEgMzYuMSA0LjggNTMuMmwtMTggMzMuMSA1OC41LTI1LjFjMTEuOC01LjEgMjUuMi01LjIgMzcuMS0uMyAyNS43IDEwLjUgNTQuMiAxNi40IDg0LjMgMTYuNCAxMTcuOCAwIDIwOC04OC44IDIwOC0xOTJTMzczLjggNDggMjU2IDQ4IDQ4IDEzNi44IDQ4IDI0MGMwIDQyLjggMTUuMSA4Mi40IDQxLjIgMTE0Ljd6Il19LEE2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1wYXduIixpY29uOlszODQsNTEyLFs5ODIzXSwiZjQ0MyIsIk0xOTItMzJjNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAyNy42LTkuMyA1Mi45LTI0LjkgNzMuMiA5LjggMyAxNi45IDEyLjEgMTYuOSAyMi44IDAgMTMuMy0xMC43IDI0LTI0IDI0bC0uNiAwIDI0LjYgMTYwIDUzLjYgNjdjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDYzLjQgNTEyYy0yNi4yIDAtNDcuNC0yMS4yLTQ3LjQtNDcuNCAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42bDUzLjYtNjcgMjQuNi0xNjAtLjYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMC44IDcuMS0xOS44IDE2LjktMjIuOC0xNS42LTIwLjMtMjQuOS00NS42LTI0LjktNzMuMiAwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHpNMTE1LjkgNDAwbC01MS4yIDY0IDI1NC43IDAtNTEuMi02NC0xNTIuMiAwem0zNi4yLTE4NC43bC0yMSAxMzYuNyAxMjEuOSAwLTIxLTEzNi43LTEuMS03LjMtNzcuNiAwLTEuMSA3LjN6TTE5MiAxNmE3MiA3MiAwIDEgMCAwIDE0NCA3MiA3MiAwIDEgMCAwLTE0NHoiXX0sRDZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNhbGVuZGFyLXBsdXMiLGljb246WzQ0OCw1MTIsW10sImYyNzEiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMTA0IDY0YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDggNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMCAwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDgtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LEU2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjbGlwYm9hcmQiLGljb246WzM4NCw1MTIsWzEyODIwM10sImYzMjgiLCJNMjMyIDk2bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6bTAgNDhjMzcuMSAwIDY3LjYtMjggNzEuNi02NEwzMjAgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzUyYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsMTYuNCAwYzQgMzYgMzQuNSA2NCA3MS42IDY0bDgwIDB6TTI5MS45IDMyQzI3OSAxMi43IDI1NyAwIDIzMiAwTDE1MiAwYy0yNSAwLTQ3IDEyLjctNTkuOSAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC0yOC4xIDB6Il19LCQ2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ0aHVtYnMtZG93biIsaWNvbjpbNTEyLDUxMixbMTI4MDc4LDYxNTc2XSwiZjE2NSIsIk0zNjAgMzJsNy40IC40YzM1IDMuNiA2Mi41IDMyLjIgNjQuNCA2Ny43IDE3LjggMTEuOCAzMC4xIDMxLjQgMzIgNTMuOWwuMiA2YzAgNS43LS43IDExLjItMiAxNi41IDEwLjIgMTEuNSAxNi44IDI2LjMgMTcuOCA0Mi43bC4yIDQuOGMwIDEzLjItMy42IDI1LjQtOS44IDM2IDQuOSA4LjQgOC4yIDE3LjkgOS4zIDI4bC40IDhjMCAzNy4zLTI4LjMgNjcuOS02NC42IDcxLjZsLTcuNCAuNC0xMDkuNyAwIDE0LjEgMzAgMy4xIDcuNmMxMi41IDM1LjctMS44IDc1LjUtMzQuMiA5NWwtNy4yIDMuOWMtMzcuNSAxNy42LTgxLjcgMy42LTEwMi42LTMxLjJsLS42LS45LTIuNy01LS42LTEuMi0zMC4xLTY0Yy05LjQgMTcuOC0yOCAyOS45LTQ5LjUgMjkuOWwtMzIgMGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZMMCAxNTJjMC0zMC45IDI1LjEtNTYgNTYtNTZsMzIgMGMxMi40IDAgMjMuOSA0LjEgMzMuMiAxMSAxMy4yLTIxLjQgMzItMzkuNCA1NS01MS42bDEyLjItNi41IC43LS4zIDYuNi0zLjIgLjctLjMgNy4xLTNjMTYuNy02LjYgMzQuNS05LjkgNTIuNi05LjlMMzYwIDMyek0yNTUuOSA4MGMtMTIgMC0yMy45IDIuMy0zNS4xIDYuNmwtNC43IDItNS4zIDIuNiAwIDAtMTIuMiA2LjVjLTI5LjIgMTUuNS00OC4zIDQ0LjktNTAuNyA3Ny42bC0uMiA4IDAgMTEyLjkgLjEgNC4xYy41IDguMiAyLjUgMTYuMiA2IDIzLjdsNTYuOCAxMjAuOSAyLjEgMy44YzguNCAxMy43IDI2IDE5LjEgNDAuOCAxMi4ybDIuOS0xLjZjMTMtNy44IDE4LjctMjMuNyAxMy43LTM4bC0xLjItMy0zMC4yLTY0LjJjLTMuNS03LjQtMi45LTE2LjEgMS41LTIzLjFzMTItMTEuMSAyMC4yLTExLjFsMTQ3LjUgMCAyLjQtLjFjMTEuMy0xLjEgMjAuMy0xMC4xIDIxLjQtMjEuNGwuMS0yLjVjMC03LjEtMy4xLTEzLjUtOC4yLTE4LTUuMi00LjYtOC4yLTExLjEtOC4yLTE4czMtMTMuNCA4LjItMThjNC40LTMuOSA3LjQtOS4zIDgtMTUuM2wuMi0yLjdjMC04LjQtNC40LTE1LjktMTEuMi0yMC4yLTEwLjctNi45LTE0LjItMjAuOS04LTMyIDEuNS0yLjYgMi41LTUuNiAyLjktOC42bC4yLTMuMmMwLTEwLjYtNi45LTE5LjYtMTYuNi0yMi44LTExLjctMy44LTE4LjctMTUuOS0xNi0yOCAuMi0uOSAuMy0xLjggLjQtMi42bC4yLTIuNmMwLTEyLjQtOS41LTIyLjYtMjEuNi0yMy44TDM2MCA4MCAyNTUuOSA4MHpNNTYgMTQ0Yy00LjQgMC04IDMuNi04IDhsMCAyMjRjMCA0LjQgMy42IDggOCA4bDMyIDBjNC40IDAgOC0zLjYgOC04bDAtMjI0YzAtNC40LTMuNi04LTgtOGwtMzIgMHoiXX0sSTZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImlkLWJhZGdlIixpY29uOlszODQsNTEyLFtdLCJmMmMxIiwiTTI1NiA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2LTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzg0YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek0xNjAgMzIwbDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDk2IDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAweiJdfSxCbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNoZWNrIixpY29uOls0NDgsNTEyLFs5NzQ1LDk5ODksNjE1MTAsImNoZWNrLXNxdWFyZSJdLCJmMTRhIiwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6bTIzMC43IDg5LjljNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zIDEwLjcgNy44IDEzLjEgMjIuOCA1LjMgMzMuNUwyMTEuNCAzNjYuMWMtNC4xIDUuNy0xMC41IDkuMy0xNy41IDkuOC03IC41LTEzLjktMi0xOC44LTYuOWwtNTUuOS01NS45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzYgMzYgMTA1LjYtMTQ1LjJ6Il19LFA2dD1CbmUsTjZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLWJpc2hvcCIsaWNvbjpbMzIwLDUxMixbOTgyMV0sImY0M2EiLCJNMjE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgODEuOCA5OC4xYzI0LjcgMjkuNiAzOC4yIDY3IDM4LjIgMTA1LjYgMCA0My43LTE3LjQgODUuNy00OC4zIDExNi42bC04LjYgOC42IDQ2LjUgNTguMmM2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjYgMCAyNi4yLTIxLjIgNDcuNC00Ny40IDQ3LjRMNDcuNCA1MTJDMjEuMiA1MTIgMCA0OTAuOCAwIDQ2NC42IDAgNDUzLjkgMy43IDQ0My40IDEwLjQgNDM1bDQ2LjUtNTguMi04LjYtOC42QzE3LjQgMzM3LjQgMCAyOTUuNCAwIDI1MS43IDAgMjEzLjEgMTMuNSAxNzUuOCAzOC4yIDE0Ni4xTDEyMCA0OCAxMDQgNDhDOTAuNyA0OCA4MCAzNy4zIDgwIDI0UzkwLjcgMCAxMDQgMEwyMTYgMHpNOTQuNCA0MDYuOGwtNDUuNyA1Ny4yIDIyMi43IDAtNDUuNy01Ny4xLTUuNS02LjktMTIwLjMgMC01LjUgNi44ek0xNTYuOSA3OC43TDc1LjEgMTc2LjhjLTE1LjMgMTguNC0yNC42IDQxLTI2LjcgNjQuN0w0OCAyNTEuN2MwIDMxIDEyLjMgNjAuNyAzNC4yIDgyLjdsMTcuNyAxNy43IDEyMC4yIDBjNi4yLTYuMiAxMi4xLTEyLjEgMTcuOC0xNy43IDIxLjktMjEuOSAzNC4yLTUxLjYgMzQuMi04Mi42bC0uNC0xMC4yYy0xLjUtMTctNi43LTMzLjMtMTUuMi00OEwyMDkgMjQxYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDUxLjgtNTEuOC02My43LTc2LjUtMy4xLTMuOC0zLjEgMy44eiJdfSxGNnQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZW52ZWxvcGUtb3BlbiIsaWNvbjpbNTEyLDUxMixbNjIxMzVdLCJmMmI2IiwiTTUxMiA0MTZjMCAzNS4zLTI4LjUgNjQtNjMuOSA2NEw2NCA0ODBjLTM1LjQgMC02NC0yOC43LTY0LTY0TDAgMTY0Yy4xLTE1LjUgNy44LTMwIDIwLjUtMzguOEwyMDYtMi43YzMwLjEtMjAuNyA2OS44LTIwLjcgOTkuOSAwTDQ5MS41IDEyNS4yYzEyLjggOC44IDIwLjQgMjMuMyAyMC41IDM4LjhsMCAyNTJ6TTY0IDQzMmwzODQuMSAwYzguOCAwIDE1LjktNy4xIDE1LjktMTZsMC0xOTEuNy0xNTQuOCAxMTcuNGMtMzEuNCAyMy45LTc0LjkgMjMuOS0xMDYuNCAwTDQ4IDIyNC4zIDQ4IDQxNmMwIDguOSA3LjIgMTYgMTYgMTZ6TTQ2My42IDE2NC40TDI3OC43IDM2LjhjLTEzLjctOS40LTMxLjctOS40LTQ1LjQgMEw0OC40IDE2NC40IDIzMS44IDMwMy41YzE0LjMgMTAuOCAzNC4xIDEwLjggNDguNCAwTDQ2My42IDE2NC40eiJdfSxQcD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYxNTMyLCJ0aW1lcy1jaXJjbGUiLCJ4bWFyay1jaXJjbGUiXSwiZjA1NyIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NyAxNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6Il19LE82dD1QcCxSNnQ9UHAsSG5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC11cCIsaWNvbjpbNDQ4LDUxMixbImNhcmV0LXNxdWFyZS11cCJdLCJmMTUxIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMjQgNjRjNi43IDAgMTMgMi44IDE3LjYgNy43bDEwNCAxMTJjNi41IDcgOC4yIDE3LjIgNC40IDI1LjlTMzM3LjUgMzIwIDMyOCAzMjBsLTIwOCAwYy05LjUgMC0xOC4yLTUuNy0yMi0xNC40cy0yLjEtMTguOSA0LjQtMjUuOWwxMDQtMTEyYzQuNS00LjkgMTAuOS03LjcgMTcuNi03Ljd6Il19LEI2dD1IbmUsSDZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtaW1hZ2UiLGljb246WzM4NCw1MTIsWzEyODQ0M10sImYxYzUiLCJNMTc2IDQ4TDY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDI1NiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0MC04OCAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTg4ek0zMTYuMSAxNjBMMjI0IDY3LjkgMjI0IDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2OC4xIDB6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDE5Ny41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTQxLjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNMjU5LjQgNDMybC0xMzQuOCAwYy0xNS44IDAtMjguNi0xMi44LTI4LjYtMjguNiAwLTYuNCAyLjEtMTIuNSA2LTE3LjZsNjcuNi04Ni45QzE3NSAyOTIgMTgzLjMgMjg4IDE5MiAyODhzMTcgNCAyMi40IDEwLjlMMjgyIDM4NS45YzMuOSA1IDYgMTEuMiA2IDE3LjYgMCAxNS44LTEyLjggMjguNi0yOC42IDI4LjZ6TTExMiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxxbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LXJpZ2h0IixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLXJpZ2h0Il0sImYxNTIiLCJNNDAwIDk2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjB6TTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNFMxNjAgMzY5LjUgMTYwIDM2MGwwLTIwOGMwLTkuNSA1LjctMTguMiAxNC40LTIyczE4LjktMi4xIDI1LjkgNC40bDExMiAxMDRjNC45IDQuNSA3LjcgMTAuOSA3LjcgMTcuNnoiXX0scTZ0PXFuZSxaQT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJzdW4iLGljb246WzU3Niw1MTIsWzk3MjhdLCJmMTg1IiwiTTI4OC0zMmM4IDAgMTUuNCA0IDE5LjkgMTAuNmw1OC44IDg3LjQgMTAzLjQtMjAuMmM3LjgtMS41IDE1LjkgLjkgMjEuNiA2LjZzOC4xIDEzLjggNi42IDIxLjZMNDc4IDE3Ny4zIDU2NS40IDIzNi4xQzU3MiAyNDAuNSA1NzYgMjQ4IDU3NiAyNTZzLTQgMTUuNC0xMC42IDE5LjlMNDc4IDMzNC43IDQ5OC4yIDQzOGMxLjUgNy44LS45IDE1LjktNi42IDIxLjZzLTEzLjggOC4xLTIxLjYgNi42TDM2Ni43IDQ0NiAzMDcuOSA1MzMuNEMzMDMuNCA1NDAgMjk2IDU0NCAyODggNTQ0cy0xNS40LTQtMTkuOS0xMC42TDIwOS4zIDQ0NiAxMDUuOSA0NjYuMmMtNy44IDEuNS0xNS45LS45LTIxLjYtNi42cy04LjEtMTMuOC02LjYtMjEuNkw5OCAzMzQuNyAxMC42IDI3NS45QzQgMjcxLjQgMCAyNjQgMCAyNTZzNC0xNS40IDEwLjYtMTkuOUw5OCAxNzcuMyA3Ny44IDczLjljLTEuNS03LjggLjktMTUuOSA2LjYtMjEuNnMxMy44LTguMSAyMS42LTYuNmwxMDMuMyAyMC4yIDU4LjgtODcuNCAxLjgtMi4zQzI3NC40LTI5IDI4MS0zMiAyODgtMzJ6bS00Ny44IDEzOGMtNS40IDgtMTUgMTItMjQuNSAxMC4ybC04NC0xNi40IDE2LjQgODRjMS44IDkuNS0yLjIgMTkuMS0xMC4yIDI0LjVMNjcgMjU2IDEzOCAzMDMuOGM4IDUuNCAxMiAxNSAxMC4yIDI0LjVsLTE2LjQgODQgODQtMTYuNCAzLjUtLjRjOC4zLS40IDE2LjMgMy42IDIxIDEwLjZsNDcuOCA3MSA0Ny44LTcxIDIuMi0yLjhjNS42LTYuMSAxNC05IDIyLjMtNy4zbDg0IDE2LjQtMTYuNC04NGMtMS44LTkuNSAyLjItMTkuMSAxMC4yLTI0LjVsNzEtNDcuOC03MS00Ny44Yy04LTUuNC0xMi0xNS0xMC4yLTI0LjVsMTYuNC04NC04NCAxNi40Yy05LjUgMS44LTE5LjEtMi4yLTI0LjUtMTAuMmwtNDcuOC03MS00Ny44IDcxek0yODggMzc2YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHptMC0xOTJhNzIgNzIgMCAxIDAgMCAxNDQgNzIgNzIgMCAxIDAgMC0xNDR6Il19LGo2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJpbWFnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzZSIsIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjBjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDgwek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTI4IDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTM2IDcyYzguNSAwIDE2LjQgNC41IDIwLjcgMTEuOGw4MCAxMzZjNC40IDcuNCA0LjQgMTYuNiAuMSAyNC4xUzM1Mi42IDM4NCAzNDQgMzg0bC0yNDAgMGMtOC45IDAtMTcuMi01LTIxLjMtMTIuOXMtMy41LTE3LjUgMS42LTI0LjhsNTYtODBjNC41LTYuNCAxMS44LTEwLjIgMTkuNy0xMC4yczE1LjIgMy44IDE5LjcgMTAuMmwxNy4yIDI0LjYgNDYuNS03OWM0LjMtNy4zIDEyLjItMTEuOCAyMC43LTExLjh6Il19LFY2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsaWdodGJ1bGIiLGljb246WzM4NCw1MTIsWzEyODE2MV0sImYwZWIiLCJNMjk2LjUgMjkxLjFDMzIxIDI2NS4yIDMzNiAyMzAuNCAzMzYgMTkyIDMzNiAxMTIuNSAyNzEuNSA0OCAxOTIgNDhTNDggMTEyLjUgNDggMTkyYzAgMzguNCAxNSA3My4yIDM5LjUgOTkuMSAyMS4zIDIyLjQgNDQuOSA1NCA1My4zIDkyLjlsMTAyLjQgMGM4LjQtMzkgMzItNzAuNSA1My4zLTkyLjl6bTM0LjggMzNDMzA3LjcgMzQ5IDI4OCAzNzkuNCAyODggNDEzLjdsMCAxOC4zYzAgNDQuMi0zNS44IDgwLTgwIDgwbC0zMiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTE4LjNDOTYgMzc5LjQgNzYuMyAzNDkgNTIuNyAzMjQuMSAyMCAyODkuNyAwIDI0My4yIDAgMTkyIDAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MmMwIDUxLjItMjAgOTcuNy01Mi43IDEzMi4xek0xNDQgMTg0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNiAzOS40LTg4IDg4LTg4IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHoiXX0sakE9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYWRkcmVzcy1jYXJkIixpY29uOls1NzYsNTEyLFs2MjE0MCwiY29udGFjdC1jYXJkIiwidmNhcmQiXSwiZjJiYiIsIk01MTIgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzIwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0MzJjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA5NmMwLTguOCA3LjItMTYgMTYtMTZsNDQ4IDB6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIwOCAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bS0zMiA0MGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMHpNMzc2IDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LFU2dD1qQSxXNnQ9akEsam5lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbWVoIixpY29uOls1MTIsNTEyLFsxMjg1MjgsIm1laCJdLCJmMTFhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0xNzYgMjQwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTkyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTE4NCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxHNnQ9am5lLFk2dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtYXAiLGljb246WzUxMiw1MTIsWzEyODUwNiw2MjA3Ml0sImYyNzkiLCJNNTEyIDQ4YzAtOC4zLTQuMy0xNi0xMS4zLTIwLjRzLTE1LjktNC44LTIzLjMtMS4xTDM1Mi41IDg4LjEgMTgwIDI5LjRjLTEzLjctNC43LTI4LjctMy44LTQxLjkgMi4zTDEzLjggOTAuM0M1LjQgOTQuMiAwIDEwMi43IDAgMTEyTDAgNDY0YzAgOC4yIDQuMiAxNS45IDExLjEgMjAuM3MxNS42IDQuOSAyMy4xIDEuNGwxMjcuMy01OS45IDE3MC43IDU2LjljMTMuNyA0LjYgMjguNSAzLjcgNDEuNi0yLjVsMTI0LjQtNTguNWM4LjQtNCAxMy44LTEyLjQgMTMuOC0yMS43bDAtMzUyek0xNDQgODIuMWwwIDI5OS05NiA0NS4yIDAtMjk5IDk2LTQ1LjJ6bTQ4IDMwMy4zbDAtMzAxLjEgMTI4IDQzLjUgMCAzMDAuMy0xMjgtNDIuN3pNMzY4IDEzNGw5Ni00Ny40IDAgMjk4LjItOTYgNDUuMiAwLTI5NnoiXX0sWjZ0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtZG93biIsaWNvbjpbMzg0LDUxMixbXSwiZjBhNyIsIk02NCA0NDhsMC0xNzcuNmM1LjIgMSAxMC41IDEuNiAxNiAxLjZsMTYgMCAwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNnpNODAgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI0YzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDQ4IDBjNTIuNSAwIDk3LjEgMzMuNyAxMTMuNCA4MC43LTMuMS0uNS02LjItLjctOS40LS43LTIwIDAtMzcuOSA5LjItNDkuNyAyMy42LTktNC45LTE5LjQtNy42LTMwLjMtNy42LTE1LjEgMC0yOSA1LjMtNDAgMTQtMTEtOC44LTI0LjktMTQtNDAtMTRsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtODAgMHpNMCAxOTJsMCAwYzAgMTggNiAzNC42IDE2IDQ4bDAgMjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC04MmM1LjEgMS4zIDEwLjUgMiAxNiAyIDI1LjMgMCA0Ny4yLTE0LjcgNTcuNi0zNiA3IDIuNiAxNC41IDQgMjIuNCA0IDIwIDAgMzcuOS05LjIgNDkuNy0yMy42IDkgNC45IDE5LjQgNy42IDMwLjMgNy42IDM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODhDMzg0IDc1LjIgMzA4LjggMCAyMTYgMEwxNjggMEM3NS4yIDAgMCA3NS4yIDAgMTY4bDAgMjR6bTMzNiA2NGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NHpNMTYwIDI3MmM1LjUgMCAxMC45LS43IDE2LTJsMCAzNGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyIDE2IDB6bTY0LTI0bDAtNDBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMjR6Il19LFZuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLW1laC1ibGFuayIsaWNvbjpbNTEyLDUxMixbMTI4NTY2LCJtZWgtYmxhbmsiXSwiZjVhNCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2ek01MTIgMjU2YTI1NiAyNTYgMCAxIDEgLTUxMiAwIDI1NiAyNTYgMCAxIDEgNTEyIDB6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sWDZ0PVZuZSxVbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZSIsaWNvbjpbNTEyLDUxMixbMTI4NTM5LCJncmluLXRvbmd1ZSJdLCJmNTg5IiwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDc0LjEgMzguOCAxMzkuMiA5Ny4xIDE3Ni0uNy01LjItMS4xLTEwLjYtMS4xLTE2bDAtNTMuNWMtMTAuMi0xMi42LTE4LjMtMjYuOS0yMy44LTQyLjQtNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42IDExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC01LjUgMTUuNi0xMy42IDI5LjktMjMuOCA0Mi41bDAgNTMuNWMwIDUuNC0uNCAxMC44LTEuMSAxNiA1OC40LTM2LjggOTcuMS0xMDEuOSA5Ny4xLTE3NnptNDggMGMwIDExNi4zLTc3LjYgMjE0LjYtMTgzLjkgMjQ1LjctMTkuNSAxNi40LTQ0LjYgMjYuMy03Mi4xIDI2LjNzLTUyLjYtOS45LTcyLjEtMjYuM0M3Ny42IDQ3MC42IDAgMzcyLjMgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2ek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2IDIwOGwwLTM3LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCAzNy40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LFE2dD1VbmUsVkE9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZnV0Ym9sIixpY29uOls1MTIsNTEyLFs5OTE3LCJmdXRib2wtYmFsbCIsInNvY2Nlci1iYWxsIl0sImYxZTMiLCJNMzg3IDIyOC4zYy00LjQtMi44LTcuNi03LTkuMi0xMS45cy0xLjQtMTAuMiAuNS0xNUw0MTEuNiAxMThjLTE5LjktMjIuNC00NC42LTQwLjUtNzIuNC01Mi43bC02OS4xIDU3LjZjLTQgMy4zLTkgNS4xLTE0LjEgNS4xcy0xMC4yLTEuOC0xNC4xLTUuMUwxNzIuOCA2NS4zYy0yNy44IDEyLjItNTIuNSAzMC4zLTcyLjQgNTIuN2wzMy40IDgzLjRjMS45IDQuOCAyLjEgMTAuMSAuNSAxNXMtNC45IDkuMS05LjIgMTEuOUw0OSAyNzYuMmMzIDMwLjkgMTIuNyA1OS43IDI3LjYgODUuMmw4OS43LTZjNS4yLS4zIDEwLjMgMS4xIDE0LjUgNC4yczcuMiA3LjQgOC40IDEyLjVsMjIgODcuMmMxNC40IDMuMiAyOS40IDQuOCA0NC44IDQuOHMzMC4zLTEuNyA0NC44LTQuOGwyMi04Ny4yYzEuMy01IDQuMi05LjQgOC40LTEyLjVzOS4zLTQuNSAxNC41LTQuMmw4OS43IDZjMTUtMjUuNCAyNC43LTU0LjMgMjcuNi04NS4xTDM4NyAyMjguM3pNMjU2IDBhMjU2IDI1NiAwIDEgMSAwIDUxMiAyNTYgMjU2IDAgMSAxIDAtNTEyem02MiAyMjFjOC40IDYuMSAxMS45IDE2LjkgOC43IDI2LjhsLTE4LjMgNTYuM2MtMy4yIDkuOS0xMi40IDE2LjYtMjIuOCAxNi42bC01OS4yIDBjLTEwLjQgMC0xOS42LTYuNy0yMi44LTE2LjZsLTE4LjMtNTYuM2MtMy4yLTkuOSAuMy0yMC43IDguNy0yNi44bDQ3LjktMzQuOGM4LjQtNi4xIDE5LjgtNi4xIDI4LjIgMEwzMTggMjIxeiJdfSxKNnQ9VkEsSzZ0PVZBLFduZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXN1cnByaXNlIixpY29uOls1MTIsNTEyLFsxMjg1NTgsInN1cnByaXNlIl0sImY1YzIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTQ4IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxlZHQ9V25lLEduZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmb2xkZXIiLGljb246WzUxMiw1MTIsWzEyODE5MywxMjg0NDcsNjE3MTYsImZvbGRlci1ibGFuayJdLCJmMDdiIiwiTTY0IDQwMGwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0xNDkuMyAwYy0xNy4zIDAtMzQuMi01LjYtNDgtMTZMMjEyLjMgODMuMmMtMi44LTIuMS02LjEtMy4yLTkuNi0zLjJMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI4OGMwIDguOCA3LjIgMTYgMTYgMTZ6bTM4NCA0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMTM4LjcgMGMxMy44IDAgMjcuMyA0LjUgMzguNCAxMi44bDM4LjQgMjguOGM1LjUgNC4yIDEyLjMgNi40IDE5LjIgNi40TDQ0OCA4MGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sdGR0PUduZSxyZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvdWQiLGljb246WzU3Niw1MTIsWzk3MjldLCJmMGMyIiwiTTgwIDE5MmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCA0Ny4xIDAgODkuNCAyMC40IDExOC43IDUyLjcgMTAuNi0zLjEgMjEuOC00LjcgMzMuMy00LjcgNjYuMyAwIDEyMCA1My43IDEyMCAxMjAgMCAxMy4yLTIuMSAyNS45LTYuMSAzNy44IDQxLjYgMjEuMSA3MC4xIDY0LjMgNzAuMSAxMTQuMiAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDBjLTc5LjUgMC0xNDQtNjQuNS0xNDQtMTQ0IDAtNTYuOCAzMi45LTEwNS45IDgwLjctMTI5LjQtLjQtNC44LS43LTkuNy0uNy0xNC42ek0yNDAgODBjLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgOC40IC45IDE2LjYgMi43IDI0LjUgMi43IDEyLjEtNC4zIDI0LjMtMTYuMSAyOC4xLTM4LjcgMTIuNC02Ni42IDQ4LjctNjYuNiA5MS40IDAgNTMgNDMgOTYgOTYgOTZsMzA0IDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zNy40LTI1LjctNjguOS02MC41LTc3LjYtNy41LTEuOS0xMy42LTcuMi0xNi41LTE0LjNzLTIuMS0xNS4yIDItMjEuN2M3LTExLjEgMTEtMjQuMiAxMS0zOC4zIDAtMzkuOC0zMi4yLTcyLTcyLTcyLTExLjEgMC0yMS41IDIuNS0zMC44IDYuOS0xMC41IDUtMjMuMSAxLjctMjkuOC03LjgtMjAuMy0yOC42LTUzLjctNDcuMS05MS4zLTQ3LjF6Il19LGlkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUiLGljb246WzUxMiw1MTIsWzEyODMwOCwxMjgzMDksMTI4OTkyLDEyODk5MywxMjg5OTQsMTI4OTk1LDEyODk5Niw5Njc5LDk4OTgsOTg5OSwxMTA0NCw2MTcwOCw2MTkxNV0sImYxMTEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxZbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludCIsaWNvbjpbNTEyLDUxMixbMTI4NTE4LCJncmluLXNxdWludCJdLCJmNTg1IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnptLTI0OS42LTE0M2M0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDIwOCAxMjUuOCAxODAuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMjA4IDM4Ni4yIDIzNS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxhZHQ9WW5lLFpuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtdXNlciIsaWNvbjpbNTEyLDUxMixbNjIxNDIsInVzZXItY2lyY2xlIl0sImYyYmQiLCJNNDA2LjUgMzk5LjZDMzg3LjQgMzUyLjkgMzQxLjUgMzIwIDI4OCAzMjBsLTY0IDBjLTUzLjUgMC05OS40IDMyLjktMTE4LjUgNzkuNi0zNS42LTM3LjMtNTcuNS04Ny45LTU3LjUtMTQzLjYgMC0xMTQuOSA5My4xLTIwOCAyMDgtMjA4czIwOCA5My4xIDIwOCAyMDhjMCA1NS43LTIxLjkgMTA2LjItNTcuNSAxNDMuNnptLTQwLjEgMzIuN0MzMzQuNCA0NTIuNCAyOTYuNiA0NjQgMjU2IDQ2NHMtNzguNC0xMS42LTExMC41LTMxLjdjNy4zLTM2LjcgMzkuNy02NC4zIDc4LjUtNjQuM2w2NCAwYzM4LjggMCA3MS4yIDI3LjYgNzguNSA2NC4zek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0yNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgwem0tODgtNDBhODggODggMCAxIDAgMTc2IDAgODggODggMCAxIDAgLTE3NiAweiJdfSxuZHQ9Wm5lLFhuZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJyZWN0YW5nbGUtbGlzdCIsaWNvbjpbNTEyLDUxMixbImxpc3QtYWx0Il0sImYwMjIiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNjAgMzIwYTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTEwNC01NmwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNjAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sb2R0PVhuZSxRbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZCIsaWNvbjpbNTEyLDUxMixbMTI5MzA2LDk5OTUsImhhbmQtcGFwZXIiXSwiZjI1NiIsIk0yNTYuNSAwYy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzYtNy0yLjYtMTQuNS00LTIyLjQtNC0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDE2NS41LTIuNy0yLjdjLTI1LTI1LTY1LjUtMjUtOTAuNSAwcy0yNSA2NS41IDAgOTAuNUwxMDcgNDM3YzQ4IDQ4IDExMy4xIDc1IDE4MSA3NWwxNi41IDBjMS41IDAgMy0uMSA0LjUtLjQgOTEuNy02LjIgMTY1LTc5LjQgMTcxLjEtMTcxLjEgLjMtMS41IC40LTMgLjQtNC41bDAtMTc2YzAtMzUuMy0yOC43LTY0LTY0LTY0LTUuNSAwLTEwLjkgLjctMTYgMmwwLTJjMC0zNS4zLTI4LjctNjQtNjQtNjQtNy45IDAtMTUuNCAxLjQtMjIuNCA0LTEwLjQtMjEuMy0zMi4zLTM2LTU3LjYtMzZ6bS0xNiA5Ni4xbDAtLjEgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMzZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE3Mi45Yy0uMSAuNi0uMSAxLjMtLjIgMS45LTMuNCA2OS43LTU5LjMgMTI1LjYtMTI5IDEyOS0uNiAwLTEuMyAuMS0xLjkgLjJMMjg4IDQ2NEMyMzIuOSA0NjQgMTgwIDQ0Mi4xIDE0MSA0MDMuMUw1My4yIDMxNS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsNDMuNyA0My43YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMmwwLTIyMy40YzAtOC44IDcuMi0xNiAxNi0xNiA4LjggMCAxNiA3LjEgMTYgMTUuOWwwIDEzNi4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMzUuOXoiXX0sc2R0PVFuZSxsZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToidGh1bWJzLXVwIixpY29uOls1MTIsNTEyLFsxMjgwNzcsNjE1NzVdLCJmMTY0IiwiTTE3MS41IDM4LjhDMTkyLjMgNCAyMzYuNS0xMCAyNzQgNy42bDcuMiAzLjhDMzE2IDMyLjMgMzMwIDc2LjUgMzEyLjQgMTE0bDAgMC0xNC4xIDMwIDEwOS43IDAgNy40IC40YzM2LjMgMy43IDY0LjYgMzQuNCA2NC42IDcxLjYgMCAxMy4yLTMuNiAyNS40LTkuOCAzNiA2LjEgMTAuNiA5LjcgMjIuOCA5LjggMzYgMCAxOC4zLTYuOSAzNC44LTE4IDQ3LjUgMS4zIDUuMyAyIDEwLjggMiAxNi41IDAgMjUuMS0xMi45IDQ3LTMyLjIgNTkuOS0xLjkgMzUuNS0yOS40IDY0LjItNjQuNCA2Ny43bC03LjQgLjQtMTA0LjEgMGMtMTggMC0zNS45LTMuNC01Mi42LTkuOWwtNy4xLTMtLjctLjMtNi42LTMuMi0uNy0uMy0xMi4yLTYuNWMtMTIuMy02LjUtMjMuMy0xNC43LTMyLjktMjQuMS00LjEgMjYuOS0yNy4zIDQ3LjQtNTUuMyA0Ny40bC0zMiAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDIwMGMwLTMwLjkgMjUuMS01NiA1Ni01NmwzMiAwYzEwLjggMCAyMC45IDMuMSAyOS41IDguNWw1MC4xLTEwNi41IC42LTEuMiAyLjctNSAuNi0uOXpNNTYgMTkyYy00LjQgMC04IDMuNi04IDhsMCAyMjRjMCA0LjQgMy42IDggOCA4bDMyIDBjNC40IDAgOC0zLjYgOC04bDAtMjI0YzAtNC40LTMuNi04LTgtOGwtMzIgMHpNMjUzLjYgNTFjLTE0LjgtNi45LTMyLjMtMS42LTQwLjcgMTJsLTIuMiA0LTU2LjggMTIwLjljLTMuNSA3LjUtNS41IDE1LjUtNiAyMy43bC0uMSA0LjIgMCAxMTIuOSAuMiA3LjljMi40IDMyLjcgMjEuNCA2Mi4xIDUwLjcgNzcuN2wxMS41IDYuMSA2LjMgMy4xYzEyLjQgNS42IDI1LjggOC41IDM5LjQgOC41bDEwNC4xIDAgMi40LS4xYzEyLjEtMS4yIDIxLjYtMTEuNSAyMS42LTIzLjlsLS4yLTIuNmMtLjEtLjktLjItMS43LS40LTIuNi0yLjctMTIuMSA0LjMtMjQuMiAxNi0yOCA5LjctMy4xIDE2LjYtMTIuMiAxNi42LTIyLjggMC00LjMtMS4xLTguMi0zLjEtMTEuOC02LjMtMTEuMS0yLjgtMjUuMiA4LTMyIDYuOC00LjMgMTEuMi0xMS44IDExLjItMjAuMiAwLTcuMS0zLjEtMTMuNS04LjItMTgtNS4yLTQuNi04LjItMTEuMS04LjItMThzMy0xMy40IDguMi0xOGM1LjEtNC41IDguMi0xMC45IDguMi0xOGwtLjEtMi40Yy0xLjEtMTEuMy0xMC4xLTIwLjMtMjEuNC0yMS40bC0yLjQtLjEtMTQ3LjUgMGMtOC4yIDAtMTUuOC00LjItMjAuMi0xMS4xLTQuNC02LjktNS0xNS43LTEuNS0yMy4xTDI2OSA5My42YzctMTUgMS40LTMyLjctMTIuNS00MUwyNTMuNiA1MXoiXX0sY2R0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODRjMCA4LjggNy4yIDE2IDE2IDE2bDgwIDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAgODAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zODRjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDQ4ek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTk2IDQ4YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LGRkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1yb29rIixpY29uOlszODQsNTEyLFs5ODIwXSwiZjQ0NyIsIk0zNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEzOC43YzAgMTMuOC00LjUgMjcuMy0xMi44IDM4LjRsLTM1LjIgNDYuOSAwIDExMiA0MC44IDY4LjFjNC43IDcuOCA3LjIgMTYuNyA3LjIgMjUuOCAwIDI3LjctMjIuNCA1MC4xLTUwLjEgNTAuMUw1MC4xIDUxMmMtMjcuNyAwLTUwLjEtMjIuNC01MC4xLTUwLjEgMC05LjEgMi41LTE4IDcuMi0yNS44TDQ4IDM2OCA0OCAyNTYgMTIuOCAyMDkuMUM0LjUgMTk4IDAgMTg0LjUgMCAxNzAuN0wwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMHpNNDguMyA0NjAuOGwtLjMgMS4xYzAgMS4yIDEgMi4xIDIuMSAyLjFsMjgzLjggMGMxLjIgMCAyLjEtMSAyLjEtMi4xbC0uMy0xLjEtMzYuNS02MC44LTIxNC40IDAtMzYuNSA2MC44ek00OCAxNzAuN2MwIDIuNiAuNiA1LjEgMS44IDcuNGwxLjQgMi4yIDAgMCAzNS4yIDQ2LjkgOS42IDEyLjggMCAxMTIgMTkyIDAgMC0xMTIgOS42LTEyLjggMzUuMi00Ni45IDAgMCAxLjQtMi4yYzEuMi0yLjMgMS44LTQuOCAxLjgtNy40bDAtMTIyLjctNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjQtNjQgMCAwIDEyMi43eiJdfSxKbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1MTIsNTEyLFs2MjEwOCwicXVlc3Rpb24tY2lyY2xlIl0sImYwNTkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYtODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCA0Ny4yLTM2IDY3LjItNTYgNzQuNWwwIDMuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTguMWMwLTIwLjUgMTQuOC0zNS4yIDMwLjEtNDAuMiA2LjQtMi4xIDEzLjItNS41IDE4LjItMTAuMyA0LjMtNC4yIDcuNy0xMCA3LjctMTkuNiAwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDM2OGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSx1ZHQ9Sm5lLHBkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlIixpY29uOlszODQsNTEyLFsxMjgxOTYsMTI4NDU5LDYxNDYyXSwiZjE1YiIsIk0xNzYgNDhMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQwLTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTMxNi4xIDE2MEwyMjQgNjcuOSAyMjQgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMTk3LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxNDEuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxLbmU9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk00MDAgNDA2LjFMNDAwIDI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE1Mi42Yy0yOC43IDE1LTYxLjQgMjMuNC05NiAyMy40cy02Ny4zLTguNS05Ni0yMy40TDE2MCAyODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTguMUM3Mi42IDM2OC4yIDQ4IDMxNSA0OCAyNTYgNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4czIwOCA5My4xIDIwOCAyMDhjMCA1OS0yNC42IDExMi4yLTY0IDE1MC4xek0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTUyIDE5NmwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwIDktMjAgMjAtMjB6bTE3MiAyMGMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHpNMjA4IDMzNmwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHoiXX0saGR0PUtuZSxmZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXItbWludXMiLGljb246WzQ0OCw1MTIsW10sImYyNzIiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMzIgMTM2bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sZW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtdGlyZWQiLGljb246WzUxMiw1MTIsWzEyODU1NSwidGlyZWQiXSwiZjVjOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ni41IDY0LjNDMTk2LjEgMzAyLjEgMjIzLjggMjg4IDI1NiAyODhzNTkuOSAxNC4xIDc5LjUgMzIuM2MxOSAxNy44IDMyLjUgNDEuNyAzMi41IDYzLjcgMCA1LjQtMi43IDEwLjQtNy4yIDEzLjRzLTEwLjIgMy40LTE1LjIgMS4zbC0xNy4yLTcuNWMtMjIuOC0xMC00Ny41LTE1LjEtNzIuNC0xNS4xcy00OS42IDUuMi03Mi40IDE1LjFsLTE3LjIgNy41Yy00LjkgMi4yLTEwLjcgMS43LTE1LjItMS4zcy03LjItOC03LjItMTMuNGMwLTIyIDEzLjUtNDUuOSAzMi41LTYzLjd6TTEyMi42IDE1OS4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LG1kdD1lb2UsZ2R0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImYwYTQiLCJNNDQ4IDEyOGwtMTc3LjYgMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTZsMCAxNiAxNzYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNnpNMjI0IDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjQgMGMtNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsMCA0OGMwIDUyLjUgMzMuNyA5Ny4xIDgwLjcgMTEzLjQtLjUtMy4xLS43LTYuMi0uNy05LjQgMC0yMCA5LjItMzcuOSAyMy42LTQ5LjctNC45LTktNy42LTE5LjQtNy42LTMwLjMgMC0xNS4xIDUuMy0yOSAxNC00MC04LjgtMTEtMTQtMjQuOS0xNC00MGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODB6TTE5MiA2NGwwIDBjMTggMCAzNC42IDYgNDggMTZsMjA4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTgyIDBjMS4zIDUuMSAyIDEwLjUgMiAxNiAwIDI1LjMtMTQuNyA0Ny4yLTM2IDU3LjYgMi42IDcgNCAxNC41IDQgMjIuNCAwIDIwLTkuMiAzNy45LTIzLjYgNDkuNyA0LjkgOSA3LjYgMTkuNCA3LjYgMzAuMyAwIDM1LjMtMjguNyA2NC02NCA2NGwtODggMEM3NS4yIDQ0OCAwIDM3Mi44IDAgMjgwbDAtNDhDMCAxMzkuMiA3NS4yIDY0IDE2OCA2NGwyNCAwem02NCAzMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNjQgMHptMTYtMTc2YzAgNS41LS43IDEwLjktMiAxNmwzNCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0zMiAwIDAgMTZ6bS0yNCA2NGwtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmw2NCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0yNCAweiJdfSx0b2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLXVwIixpY29uOls1MTIsNTEyLFs2MTQ2NywiYXJyb3ctYWx0LWNpcmNsZS11cCJdLCJmMzViIiwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0YTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTEuMy0zODcuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTEwNCAxMDRjLTQuNiA0LjYtNS45IDExLjUtMy41IDE3LjRzOC4zIDkuOSAxNC44IDkuOWw3MiAwIDAgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMDQgNzIgMGM2LjUgMCAxMi4zLTMuOSAxNC44LTkuOXMxLjEtMTIuOS0zLjUtMTcuNGwtMTA0LTEwNHoiXX0sYmR0PXRvZSx2ZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1zY2lzc29ycyIsaWNvbjpbNTEyLDUxMixbXSwiZjI1NyIsIk0uMiAyNzYuM2MtMS4yLTM1LjMgMjYuNC02NSA2MS43LTY2LjJsMy4zLS4xLTguMi0xLjhDMjIuNSAyMDAuNSAuNyAxNjYuMyA4LjMgMTMxLjhTNTAuMiA3NS41IDg0LjcgODMuMmwxNzMgMzguM2MyLjMtMi45IDQuNi01LjcgNy4xLTguNWwxOC40LTIwLjNDMjk5LjkgNzQuNSAzMjMuNSA2NCAzNDguMyA2NGwxMC4yIDBjNTQuMSAwIDEwNC4xIDI4LjcgMTMxLjMgNzUuNGwxLjUgMi42YzEzLjYgMjMuMiAyMC43IDQ5LjcgMjAuNyA3Ni42TDUxMiAzNDRjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTEwNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIuOCAuMi01LjYgLjUtOC4zLTE5LjQtMTEtMzIuNS0zMS44LTMyLjUtNTUuNyAwLS44IDAtMS42IDAtMi40TDY2LjQgMzM4Yy0zNS4zIDEuMi02NS0yNi40LTY2LjItNjEuN3ptNjMuNC0xOC4yYy04LjggLjMtMTUuNyA3LjctMTUuNCAxNi42czcuNyAxNS43IDE2LjUgMTUuNGwxNjEuNS01LjZjOS44LS4zIDE4LjcgNS4zIDIyLjcgMTQuMnMyLjIgMTkuMy00LjUgMjYuNGMtMi44IDIuOS00LjQgNi43LTQuNCAxMSAwIDguOCA3LjIgMTYgMTYgMTYgOS4xIDAgMTcuNCA1LjEgMjEuNSAxMy4zczMuMiAxNy45LTIuMyAyNS4xYy0yIDIuNy0zLjIgNi0zLjIgOS42IDAgOC44IDcuMiAxNiAxNiAxNmwxMDQgMGMzOS44IDAgNzItMzIuMiA3Mi03MmwwLTEyNS40YzAtMTguNC00LjktMzYuNS0xNC4yLTUyLjRsLTEuNS0yLjZjLTE4LjYtMzItNTIuOC01MS42LTg5LjgtNTEuNmwtMTAuMiAwYy0xMS4zIDAtMjIgNC44LTI5LjYgMTMuMWwwIDAtMTguNCAyMC4zYy0uNiAuNi0xLjEgMS4zLTEuNyAxLjlsNTcgMTMuMmM4LjYgMiAxNCAxMC42IDEyIDE5LjJzLTEwLjYgMTQtMTkuMiAxMkwyNjIuOCAxNzEuOCA3NC4zIDEzMGMtOC42LTEuOS0xNy4yIDMuNS0xOS4xIDEyLjJzMy41IDE3LjIgMTIuMiAxOS4xbDE4Ny41IDQxLjZjMTAuMiAyLjMgMTcuOCAxMC45IDE4LjcgMjEuNGwuMSAxYy42IDYuNi0xLjUgMTMuMS01LjggMTguMXMtMTAuNiA3LjktMTcuMiA4LjJMNjMuNiAyNTguMXoiXX0seGR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImdlbSIsaWNvbjpbNTEyLDUxMixbMTI4MTQyXSwiZjNhNSIsIk0xNjguNSA3Mmw4Ny41IDkzIDg3LjUtOTMtMTc1IDB6TTM4My45IDk5LjFsLTcyLjMgNzYuOSAxMjkgMC01Ni42LTc2Ljl6bTUwIDEyNC45TDc4LjEgMjI0IDI1NiA0MjAuMyA0MzMuOSAyMjR6TTcxLjUgMTc2bDEyOSAwLTcyLjMtNzYuOS01Ni42IDc2Ljl6bTQzNC4zIDQwLjFsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MmM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44bDI0MCAwYzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNHoiXX0sd2c9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicmVjdGFuZ2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MjE2NCwicmVjdGFuZ2xlLXRpbWVzIiwidGltZXMtcmVjdGFuZ2xlIiwid2luZG93LWNsb3NlIl0sImY0MTAiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDM4NCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em0zMzQuMSA0OS45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00NC4xIDQ0LjEgNDQuMSA0NC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ0LjEtNDQuMS00NC4xIDQ0LjFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDQuMS00NC4xLTQ0LjEtNDQuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ0LjEgNDQuMSA0NC4xLTQ0LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDB6Il19LHlkdD13Zyx3ZHQ9d2csTWR0PXdnLHpnPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InRyYXNoLWNhbiIsaWNvbjpbNDQ4LDUxMixbNjE0NjAsInRyYXNoLWFsdCJdLCJmMmVkIiwiTTE2Ni4yLTE2Yy0xMy4zIDAtMjUuMyA4LjMtMzAgMjAuOEwxMjAgNDggMjQgNDhDMTAuNyA0OCAwIDU4LjcgMCA3MlMxMC43IDk2IDI0IDk2bDQwMCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwLTE2LjItNDMuMkMzMDcuMS03LjcgMjk1LjItMTYgMjgxLjgtMTZMMTY2LjItMTZ6TTMyIDE0NGwwIDMwNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMwNC00OCAwIDAgMzA0YzAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMwNC00OCAwem0xNjAgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NnptMTEyIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NnoiXX0sa2R0PXpnLFNkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsaWZlLXJpbmciLGljb246WzUxMiw1MTIsW10sImYxY2QiLCJNMzg1LjEgNDE5LjFDMzQ5LjcgNDQ3LjIgMzA0LjggNDY0IDI1NiA0NjRzLTkzLjctMTYuOC0xMjkuMS00NC45bDgwLjQtODAuNGMxNC4zIDguNCAzMSAxMy4zIDQ4LjggMTMuM3MzNC41LTQuOCA0OC44LTEzLjNsODAuNCA4MC40em02OC4xIC4yQzQ4OS45IDM3NC45IDUxMiAzMTguMSA1MTIgMjU2UzQ4OS45IDEzNy4xIDQ1My4yIDkyLjdMNDY1IDgxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMNDE5LjMgNTguOEMzNzQuOSAyMi4xIDMxOC4xIDAgMjU2IDBTMTM3LjEgMjIuMSA5Mi43IDU4LjhMODEgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUzM3LjcgNzEuNiA0NyA4MUw1OC44IDkyLjdDMjIuMSAxMzcuMSAwIDE5My45IDAgMjU2UzIyLjEgMzc0LjkgNTguOCA0MTkuM0w0NyA0MzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMS44LTExLjhDMTM3LjEgNDg5LjkgMTkzLjkgNTEyIDI1NiA1MTJzMTE4LjktMjIuMSAxNjMuMy01OC44TDQzMSA0NjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMS44LTExLjh6bS0zNC4xLTM0LjFsLTgwLjQtODAuNGM4LjQtMTQuMyAxMy4zLTMxIDEzLjMtNDguOHMtNC44LTM0LjUtMTMuMy00OC44bDgwLjQtODAuNEM0NDcuMiAxNjIuMyA0NjQgMjA3LjIgNDY0IDI1NnMtMTYuOCA5My43LTQ0LjkgMTI5LjF6TTM4NS4xIDkyLjlsLTgwLjQgODAuNGMtMTQuMy04LjQtMzEtMTMuMy00OC44LTEzLjNzLTM0LjUgNC44LTQ4LjggMTMuM0wxMjYuOSA5Mi45QzE2Mi4zIDY0LjggMjA3LjIgNDggMjU2IDQ4czkzLjcgMTYuOCAxMjkuMSA0NC45ek0xNzMuMyAzMDQuOEw5Mi45IDM4NS4xQzY0LjggMzQ5LjcgNDggMzA0LjggNDggMjU2czE2LjgtOTMuNyA0NC45LTEyOS4xbDgwLjQgODAuNGMtOC40IDE0LjMtMTMuMyAzMS0xMy4zIDQ4LjhzNC44IDM0LjUgMTMuMyA0OC44ek0yMDggMjU2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6Il19LHpkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb3B5cmlnaHQiLGljb246WzUxMiw1MTIsWzE2OV0sImYxZjkiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDUuMSAzMDYuOWMtMjguMS0yOC4xLTI4LjEtNzMuNyAwLTEwMS44czczLjctMjguMSAxMDEuOCAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtNDYuOS00Ni45LTEyMi44LTQ2LjktMTY5LjcgMHMtNDYuOSAxMjIuOCAwIDE2OS43IDEyMi44IDQ2LjkgMTY5LjcgMGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwYy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDB6Il19LHJvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtbGVmdCIsaWNvbjpbNTEyLDUxMixbNjE4NDAsImFycm93LWFsdC1jaXJjbGUtbGVmdCJdLCJmMzU5IiwiTTQ4IDI1NmEyMDggMjA4IDAgMSAxIDQxNiAwIDIwOCAyMDggMCAxIDEgLTQxNiAwem00NjQgMGEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMTA0IDEwNGM0LjYgNC42IDExLjUgNS45IDE3LjQgMy41czkuOS04LjMgOS45LTE0LjhsMC03MiAxMDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMDQgMCAwLTcyYzAtNi41LTMuOS0xMi4zLTkuOS0xNC44cy0xMi45LTEuMS0xNy40IDMuNWwtMTA0IDEwNHoiXX0sQ2R0PXJvZSxUZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2FsZW5kYXIiLGljb246WzQ0OCw1MTIsWzEyODE5NywxMjgxOThdLCJmMTMzIiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDAgMTYwIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHptMCAxMTJsLTU2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4IDM1MiAwIDAtNDhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHpNNDggMjI0bDAgMTkyYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xOTItMzUyIDB6Il19LGlvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZyb3duLW9wZW4iLGljb246WzUxMiw1MTIsWzEyODU1MCwiZnJvd24tb3BlbiJdLCJmNTdhIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTgyLjQgMzgyLjVjLTEyLjQgNS4yLTI2LjUtNC4xLTIxLjEtMTYuNCAxNi0zNi42IDUyLjQtNjIuMSA5NC44LTYyLjFzNzguOCAyNS42IDk0LjggNjIuMWM1LjQgMTIuMy04LjcgMjEuNi0yMS4xIDE2LjQtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LF9kdD1pb2UsYW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoYXJ0LWJhciIsaWNvbjpbNTEyLDUxMixbImJhci1jaGFydCJdLCJmMDgwIiwiTTQ4IDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgNDIuNyAwIDU2TDAgNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwbDQwOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDgwIDQzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMNDggNTZ6bTEwNCA3MmwyMDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxNTIgODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6bTAgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjcyIDB6Il19LExkdD1hb2UsTWc9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91c2UiLGljb246WzUxMiw1MTIsWzEyNzk2OCw2MzQ5OCw2MzUwMCwiaG9tZSIsImhvbWUtYWx0IiwiaG9tZS1sZy1hbHQiXSwiZjAxNSIsIk0yNDAgNi4xYzkuMS04LjIgMjIuOS04LjIgMzIgMGwyMzIgMjA4YzkuOSA4LjggMTAuNyAyNCAxLjggMzMuOXMtMjQgMTAuNy0zMy45IDEuOGwtOC03LjIgMCAyMDUuM2MwIDM1LjMtMjguNyA2NC02NCA2NGwtMjg4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjA1LjMtOCA3LjJjLTkuOSA4LjgtMjUgOC0zMy45LTEuOHMtOC0yNSAxLjgtMzMuOUwyNDAgNi4xem0xNiA1MC4xTDk2IDE5OS43IDk2IDQ0OGMwIDguOCA3LjIgMTYgMTYgMTZsNDggMCAwLTEwNGMwLTM5LjggMzIuMi03MiA3Mi03Mmw0OCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMTA0IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQ4LjMtMTYwLTE0My40ek0yMDggNDY0bDk2IDAgMC0xMDRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTA0eiJdfSxBZHQ9TWcsRGR0PU1nLEVkdD1NZyxub2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1mcm93biIsaWNvbjpbNTEyLDUxMixbOTc4NSwiZnJvd24iXSwiZjExOSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMzNC43IDM4NC42QzMxOS43IDM2OSAyOTMuNiAzNTIgMjU2IDM1MnMtNjMuNyAxNy03OC43IDMyLjZjLTkuMiA5LjYtMjQuNCA5LjktMzMuOSAuN3MtOS45LTI0LjQtLjctMzMuOWMyMi4xLTIzIDYwLTQ3LjQgMTEzLjMtNDcuNHM5MS4yIDI0LjQgMTEzLjMgNDcuNGM5LjIgOS42IDguOSAyNC44LS43IDMzLjlzLTI0LjggOC45LTMzLjktLjd6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sJGR0PW5vZSxVQT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ1c2VyIixpY29uOls0NDgsNTEyLFsxMjgxMDAsNjIxNDQsNjI0NzAsInVzZXItYWx0IiwidXNlci1sYXJnZSJdLCJmMDA3IiwiTTE0NCAxMjhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwem0yMDggMGExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwek00OCA0ODBjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsOTYgMGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLThjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZsLTk2IDBDNzguOCAzMDQgMCAzODIuOCAwIDQ4MGwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTh6Il19LElkdD1VQSxQZHQ9VUEsTmR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNub3dmbGFrZSIsaWNvbjpbNTEyLDUxMixbMTAwNTIsMTAwNTRdLCJmMmRjIiwiTTI4MC4xLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA3OC4xLTIzLTIzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU3IDU3IDAgNzYuNS02Ni4yLTM4LjItMjAuOS03Ny44Yy0zLjQtMTIuOC0xNi42LTIwLjQtMjkuNC0xN1M5NS4yIDk4IDk4LjcgMTEwLjhsOC40IDMxLjUtNjcuNi0zOUMyOCA5Ni42IDEzLjMgMTAwLjUgNi43IDExMlM0IDEzOC4yIDE1LjUgMTQ0LjhsNjcuNiAzOS0zMS41IDguNGMtMTIuOCAzLjQtMjAuNCAxNi42LTE3IDI5LjRzMTYuNiAyMC40IDI5LjQgMTdsNzcuOC0yMC45IDY2LjIgMzguMi02Ni4yIDM4LjItNzcuOC0yMC45Yy0xMi44LTMuNC0yNiA0LjItMjkuNCAxN3M0LjIgMjYgMTcgMjkuNGwzMS41IDguNC02Ny42IDM5QzQgMzczLjggLjEgMzg4LjUgNi43IDQwMHMyMS4zIDE1LjQgMzIuOCA4LjhsNjcuNi0zOS04LjQgMzEuNWMtMy40IDEyLjggNC4yIDI2IDE3IDI5LjRzMjYtNC4yIDI5LjQtMTdsMjAuOS03Ny44IDY2LjItMzguMiAwIDc2LjUtNTcgNTdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwyMy0yMyAwIDc4LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTc4LjEgMjMgMjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01Ny01NyAwLTc2LjUgNjYuMiAzOC4yIDIwLjkgNzcuOGMzLjQgMTIuOCAxNi42IDIwLjQgMjkuNCAxN3MyMC40LTE2LjYgMTctMjkuNGwtOC40LTMxLjUgNjcuNiAzOWMxMS41IDYuNiAyNi4yIDIuNyAzMi44LTguOHMyLjctMjYuMi04LjgtMzIuOGwtNjcuNi0zOSAzMS41LTguNGMxMi44LTMuNCAyMC40LTE2LjYgMTctMjkuNHMtMTYuNi0yMC40LTI5LjQtMTdsLTc3LjggMjAuOS02Ni4yLTM4LjIgNjYuMi0zOC4yIDc3LjggMjAuOWMxMi44IDMuNCAyNi00LjIgMjkuNC0xN3MtNC4yLTI2LTE3LTI5LjRsLTMxLjUtOC40IDY3LjYtMzljMTEuNS02LjYgMTUuNC0yMS4zIDguOC0zMi44cy0yMS4zLTE1LjQtMzIuOC04LjhsLTY3LjYgMzkgOC40LTMxLjVjMy40LTEyLjgtNC4yLTI2LTE3LTI5LjRzLTI2IDQuMi0yOS40IDE3bC0yMC45IDc3LjgtNjYuMiAzOC4yIDAtNzYuNSA1Ny01N2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0yMyAyMyAwLTc4LjF6Il19LEZkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJib29rbWFyayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc4LDYxNTkxXSwiZjAyZSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDQxNy4xYzAgMjUuNi0yOC41IDQwLjgtNDkuOCAyNi42TDE5MiA0MTIuOCA0OS44IDUwNy43QzI4LjUgNTIxLjkgMCA1MDYuNiAwIDQ4MS4xTDAgNjR6TTY0IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzODcuMiAxMTcuNC03OC4yYzE2LjEtMTAuNyAzNy4xLTEwLjcgNTMuMiAwTDMzNiA0NTEuMiAzMzYgNjRjMC04LjgtNy4yLTE2LTE2LTE2TDY0IDQ4eiJdfSxvb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLWNhcmV0LWxlZnQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtbGVmdCJdLCJmMTkxIiwiTTQ4IDQxNmMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwem0xNiA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODB6bTY0LTIyNGMwLTYuNyAyLjgtMTMgNy43LTE3LjZsMTEyLTEwNGM3LTYuNSAxNy4yLTguMiAyNS45LTQuNFMyODggMTQyLjUgMjg4IDE1MmwwIDIwOGMwIDkuNS01LjcgMTguMi0xNC40IDIycy0xOC45IDIuMS0yNS45LTQuNGwtMTEyLTEwNGMtNC45LTQuNS03LjctMTAuOS03LjctMTcuNnoiXX0sT2R0PW9vZSxXQT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kc2hha2UiLGljb246WzY0MCw1MTIsWzEyOTMwOSw2MjY2MiwiaGFuZHNoYWtlLWFsdCIsImhhbmRzaGFrZS1zaW1wbGUiXSwiZjJiNSIsIk01OTguMSA3NS40YzEwLjctNy44IDEzLjEtMjIuOCA1LjMtMzMuNXMtMjIuOC0xMy4xLTMzLjUtNS4zbC03NC41IDU0LjItOS45LTYuNkM0NjUuOCA3MSA0NDIuNiA2NCA0MTguOSA2NGwtNTkuMiAwLS40IDAtMTQzLjYgMGMtMjYuNyAwLTUyLjUgOC45LTczLjQgMjUuMUw3MC4xIDM2LjZjLTEwLjctNy44LTI1LjctNS40LTMzLjUgNS4zcy01LjQgMjUuNyA1LjMgMzMuNWw4OCA2NGM5LjYgNi45IDIyLjcgNS45IDMxLjEtMi40bDMuOS0zLjljMTMuNS0xMy41IDMxLjgtMjEuMSA1MC45LTIxLjFsNDYuMyAwLTkxLjcgOTEuN2MtMTUuNiAxNS42LTE1LjYgNDAuOSAwIDU2LjZsLjggLjhDMjE4IDMwOCAyOTQgMzA4IDM0MC45IDI2MS4xbDI3LjEtMjcuMSA5Ny44IDk3LjhjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTkuOCA5LjgtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMjggMjhjLTE3LjUgMTAuNC0zNy4yIDE2LjctNTcuNiAxOC41TDMxMyAzOTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTUgMTUtMy44IDBjLTM2LjEgMC03MC43LTE0LjMtOTYuMi0zOS44TDY1IDI3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwxNjAuMiA0NDIuMWMzNC41IDM0LjUgODEuMyA1My45IDEzMC4xIDUzLjlsNTEuOCAwIDEgMSAxLTEgNS43IDBjNDguOCAwIDk1LjYtMTkuNCAxMzAuMS01My45bDE5LjktMTkuOWMxLjItMS4yIDIuMy0yLjMgMy40LTMuNSAuNy0uNSAxLjMtMS4xIDEuOS0xLjdMNjA5IDMxM2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01My44IDUzLjhjLTQuMi0xMi44LTExLjMtMjQuOS0yMS41LTM1LjFMMzg1IDE4M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTQ0LjEgNDQuMWMtMjYuNSAyNi41LTY4LjUgMjgtOTYuNyA0LjZsOTguNy05OC43YzEzLjQtMTMuNCAzMS42LTIxIDUwLjYtMjEuMWw4LjUgMCAuMiAwIDUwLjggMGMxNC4yIDAgMjguMSA0LjIgMzkuOSAxMi4xTDQ4Mi43IDE0MGM4LjQgNS42IDE5LjMgNS4zIDI3LjQtLjZsODgtNjR6Il19LFJkdD1XQSxCZHQ9V0Esc29lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUtd2luayIsaWNvbjpbNTEyLDUxMixbMTI4NTIxLCJzbWlsZS13aW5rIl0sImY0ZGEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjQgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBjMC0zMy4xIDI2LjktNjAgNjAtNjBsMTYgMGMzMy4xIDAgNjAgMjYuOSA2MCA2MCAwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjAtOS0yMC0yMC0yMGwtMTYgMGMtMTEgMC0yMCA5LTIwIDIweiJdfSxIZHQ9c29lLGxvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50LXRlYXJzIixpY29uOls1MTIsNTEyLFsxMjkzMTUsImdyaW4tc3F1aW50LXRlYXJzIl0sImY1ODYiLCJNNDAzLjEgNDAzLjFjNjcuMi02Ny4yIDc4LjgtMTY4LjkgMzQuOS0yNDhsMzYuNy01LjJjNC41LS42IDguOC0xLjYgMTMuMS0yLjggNDQuNiA5NC45IDI3LjcgMjExLjUtNTAuNyAyOTBzLTE5NS4xIDk1LjMtMjkwIDUwLjdjMS4yLTQuMiAyLjEtOC42IDIuOC0xMy4xbDUuMi0zNi43Yzc5LjEgNDMuOSAxODAuOCAzMi4zIDI0OC0zNC45ek03NSA3NWM3OC40LTc4LjQgMTk1LjEtOTUuMyAyOTAtNTAuNy0xLjIgNC4yLTIuMSA4LjYtMi44IDEzLjFsLTUuMiAzNi43Yy03OS4xLTQzLjktMTgwLjgtMzIuMy0yNDggMzQuOXMtNzguOCAxNjguOS0zNC45IDI0OGwtMzYuNyA1LjJjLTQuNSAuNi04LjggMS42LTEzLjEgMi44LTQ0LjYtOTQuOS0yNy43LTIxMS41IDUwLjctMjkwek0zNzAuOSAyMDYuNWM1LjgtMTAuOSAyMS4xLTEyLjQgMjYuNC0xLjMgMjUuNiA1My41IDE2LjIgMTE5LjYtMjguMiAxNjMuOS00NC4zIDQ0LjMtMTEwLjMgNTMuNy0xNjMuOCAyOC4yLTExLjEtNS4zLTkuNi0yMC42IDEuMy0yNi40IDMyLTE3LjEgNjQuMi00MC44IDkzLjgtNzAuNCAyOS43LTI5LjcgNTMuNC02MS45IDcwLjUtOTR6TTkzLjMgMjgxLjljLTEuNy04IDIuOS0xNS45IDEwLjYtMTguNGw4NC42LTI4YzUuNy0xLjkgMTIuMS0uNCAxNi4zIDMuOXM1LjggMTAuNiAzLjkgMTYuM2wtMjggODQuNmMtMi42IDcuNy0xMC41IDEyLjMtMTguNCAxMC42cy0xMy40LTktMTIuNy0xNy4xbDMuOS00My4xLTQzLjEgMy45Yy04LjEgLjctMTUuNS00LjctMTcuMS0xMi43ek0yOTQuNiAxMTAuNGwtMy45IDQzLjEgNDMuMS0zLjljOC4xLS43IDE1LjUgNC43IDE3LjEgMTIuN3MtMi45IDE1LjktMTAuNiAxOC40bC04NC42IDI4Yy01LjcgMS45LTEyLjEgLjQtMTYuMy0zLjlzLTUuOC0xMC42LTMuOS0xNi4zbDI4LTg0LjZjMi42LTcuNyAxMC41LTEyLjMgMTguNC0xMC42czEzLjQgOSAxMi43IDE3LjF6TTUxMiA1MS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQyMS4xIDEwOWMtMTAuNiAxLjUtMTkuNi03LjUtMTguMS0xOC4xbDYuNy00Ni43QzQxMy4zIDE4LjggNDM1IDAgNDYwLjYgMCA0ODkgMCA1MTIgMjMgNTEyIDUxLjR6TTQ0LjEgNDA5LjdMOTAuOSA0MDNjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0M5OC43IDQ5My4yIDc3IDUxMiA1MS40IDUxMiAyMyA1MTIgMCA0ODkgMCA0NjAuNiAwIDQzNSAxOC44IDQxMy4zIDQ0LjEgNDA5Ljd6Il19LHFkdD1sb2UsamR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtYXVkaW8iLGljb246WzM4NCw1MTIsW10sImYxYzciLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNMjIxLjkgMjY3LjZjLTQuNyAxMC0uMyAyMS45IDkuNyAyNi42IDE5LjIgOC45IDMyLjQgMjguMyAzMi40IDUwLjhzLTEzLjIgNDEuOS0zMi40IDUwLjhjLTEwIDQuNy0xNC40IDE2LjYtOS43IDI2LjZzMTYuNiAxNC40IDI2LjYgOS43QzI4MS4yIDQxNi44IDMwNCAzODMuNiAzMDQgMzQ1cy0yMi44LTcxLjktNTUuNi04Ny4xYy0xMC00LjctMjEuOS0uMy0yNi42IDkuN3pNMTA0IDMwNWMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNiAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMTYgMHpNMjIzLjMgMzczYzkuOS01LjQgMTYuNy0xNiAxNi43LTI4LjFzLTYuNy0yMi43LTE2LjctMjguMWMtNy44LTQuMi0xNS4zIDMuMy0xNS4zIDEyLjFsMCAzMmMwIDguOCA3LjYgMTYuMyAxNS4zIDEyLjF6Il19LGNvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjYWxlbmRhci14bWFyayIsaWNvbjpbNDQ4LDUxMixbImNhbGVuZGFyLXRpbWVzIl0sImYyNzMiLCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCAxNjAgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0em0wIDExMmwtNTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yODhjMC04LjgtNy4yLTE2LTE2LTE2bC0yNjQgMHptMTcxLjkgOTIuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMzMuOSAzMy45IDMzLjkgMzMuOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zMy45LTMzLjktMzMuOSAzMy45Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOS0zMy45LTMzLjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMy45IDMzLjkgMzMuOS0zMy45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxWZHQ9Y29lLGRvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtZG93biIsaWNvbjpbNTEyLDUxMixbNjE0NjYsImFycm93LWFsdC1jaXJjbGUtZG93biJdLCJmMzU4IiwiTTI1NiA0NjRhMjA4IDIwOCAwIDEgMSAwLTQxNiAyMDggMjA4IDAgMSAxIDAgNDE2ek0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTI0NC43IDM4Ny4zYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDEwNC0xMDRjNC42LTQuNiA1LjktMTEuNSAzLjUtMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNzIgMCAwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDQtNzIgMGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDEwNCAxMDR6Il19LFVkdD1kb2UsR0E9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1saW5lcyIsaWNvbjpbMzg0LDUxMixbMTI4NDQxLDEyODQ2Miw2MTY4NiwiZmlsZS1hbHQiLCJmaWxlLXRleHQiXSwiZjE1YyIsIk02NCA0OGwxMTIgMCAwIDg4YzAgMzkuOCAzMi4yIDcyIDcyIDcybDg4IDAgMCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDY0YzAtOC44IDcuMi0xNiAxNi0xNnpNMjI0IDY3LjlsOTIuMSA5Mi4xLTY4LjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC02OC4xek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI2MS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI0Mi43IDE4LjdDMjMwLjcgNi43IDIxNC41IDAgMTk3LjUgMEw2NCAwem01NiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sV2R0PUdBLEdkdD1HQSxZZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY29tbWVudHMiLGljb246WzU3Niw1MTIsWzEyODQ5MCw2MTY3MF0sImYwODYiLCJNNzYuMiAyNTguN2M2LjEtMTUuMiA0LTMyLjYtNS42LTQ1LjktMTQuNS0yMC4xLTIyLjYtNDMuNy0yMi42LTY4LjggMC02Ni44IDYwLjUtMTI4IDE0NC0xMjhzMTQ0IDYxLjIgMTQ0IDEyOC02MC41IDEyOC0xNDQgMTI4Yy0xNS45IDAtMzEuMS0yLjMtNDUuMy02LjUtMTAuMy0zLjEtMjEuNC0yLjUtMzEuNCAxLjVsLTUwLjQgMjAuMiAxMS40LTI4LjV6TTAgMTQ0YzAgMzUuOCAxMS42IDY5LjEgMzEuNyA5Ni44TDEuOSAzMTUuMmMtMS4zIDMuMi0xLjkgNi42LTEuOSAxMCAwIDE0LjggMTIgMjYuOCAyNi44IDI2LjggMy40IDAgNi44LS43IDEwLTEuOWw5Ni4zLTM4LjVjMTguNiA1LjUgMzguNCA4LjQgNTguOSA4LjQgMTA2IDAgMTkyLTc4LjggMTkyLTE3NlMyOTgtMzIgMTkyLTMyIDAgNDYuOCAwIDE0NHpNMzg0IDUxMmMyMC42IDAgNDAuMy0zIDU4LjktOC40bDk2LjMgMzguNWMzLjIgMS4zIDYuNiAxLjkgMTAgMS45IDE0LjggMCAyNi44LTEyIDI2LjgtMjYuOCAwLTMuNC0uNy02LjgtMS45LTEwbC0yOS43LTc0LjRjMjAtMjcuOCAzMS43LTYxLjEgMzEuNy05Ni44IDAtODIuNC02MS43LTE1MS41LTE0NS0xNzAuNy0xLjYgMTYuMy01LjEgMzEuOS0xMC4xIDQ2LjkgNjMuOSAxNC44IDEwNy4yIDY3LjMgMTA3LjIgMTIzLjkgMCAyNS4xLTguMSA0OC43LTIyLjYgNjguOC05LjYgMTMuMy0xMS43IDMwLjYtNS42IDQ1LjlsMTEuNCAyOC41LTUwLjQtMjAuMmMtMTAtNC0yMS4xLTQuNS0zMS40LTEuNS0xNC4yIDQuMi0yOS40IDYuNS00NS4zIDYuNS03Mi4yIDAtMTI3LjEtNDUuNy0xNDAuNy0xMDEuMi0xNS42IDMuMi0zMS43IDUtNDguMSA1LjIgMTYuNCA4MS45IDk0LjcgMTQ0IDE4OC44IDE0NHoiXX0sQ2c9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFs2MTUzMywiY2hlY2stY2lyY2xlIl0sImYwNTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtNDY0YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnptNzAuNyAxMjEuOWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjMgMTAuNyA3LjggMTMuMSAyMi44IDUuMyAzMy41TDI0My40IDM2Ni4xYy00LjEgNS43LTEwLjUgOS4zLTE3LjUgOS44LTcgLjUtMTMuOS0yLTE4LjgtNi45bC01NS45LTU1LjljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzNiAzNiAxMDUuNi0xNDUuMnoiXX0sWmR0PUNnLFhkdD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJtb29uIixpY29uOls1MTIsNTEyLFsxMjc3NjksOTIxNF0sImYxODYiLCJNMjM5LjMgNDguN2MtMTA3LjEgOC41LTE5MS4zIDk4LjEtMTkxLjMgMjA3LjMgMCAxMTQuOSA5My4xIDIwOCAyMDggMjA4IDMzLjMgMCA2NC43LTcuOCA5Mi42LTIxLjctMTAzLjQtMjMuNC0xODAuNi0xMTUuOC0xODAuNi0yMjYuMyAwLTY1LjggMjcuNC0xMjUuMSA3MS4zLTE2Ny4zek0wIDI1NmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2IDE5LjQgMCAzOC40IDIuMiA1Ni43IDYuMyA5LjkgMi4yIDE3LjMgMTAuNSAxOC41IDIwLjVzLTQgMTkuOC0xMy4xIDI0LjRjLTYwLjYgMzAuMi0xMDIuMSA5Mi43LTEwMi4xIDE2NC44IDAgMTAxLjYgODIuNCAxODQgMTg0IDE4NCA1IDAgOS45LS4yIDE0LjgtLjYgMTAuMS0uOCAxOS42IDQuOCAyMy44IDE0LjFzMiAyMC4xLTUuMyAyNy4xQzM4Ny4zIDQ4NC44IDMyNC44IDUxMiAyNTYgNTEyIDExNC42IDUxMiAwIDM5Ny40IDAgMjU2eiJdfSxRZHQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiY2xvc2VkLWNhcHRpb25pbmciLGljb246WzUxMiw1MTIsW10sImYyMGEiLCJNNDQ4IDExMmM4LjggMCAxNiA3LjIgMTYgMTZsMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjU2YzAtOC44IDcuMi0xNiAxNi0xNmwzODQgMHpNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTg4IDE0NGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MGMwLTQuNCAzLjYtOCA4LTh6bTE2OCA4YzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MHoiXX0sSmR0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImltYWdlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjMwMiIsIk00ODAgODBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjU2YzAgOC44LTcuMiAxNi0xNiAxNmwtMzIwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMzIwIDB6TTE2MCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTYwIDMyem04MCAxMTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMTQwLjcgMy44Yy00LjMtNy4zLTEyLjItMTEuOC0yMC43LTExLjhzLTE2LjQgNC41LTIwLjcgMTEuOGwtNDYuNSA3OS0xNy4yLTI0LjZjLTQuNS02LjQtMTEuOC0xMC4yLTE5LjctMTAuMnMtMTUuMiAzLjgtMTkuNyAxMC4ybC01NiA4MGMtNS4xIDcuMy01LjggMTYuOS0xLjYgMjQuOFMxOTEuMSAzMjAgMjAwIDMyMGwyNDAgMGM4LjYgMCAxNi42LTQuNiAyMC44LTEyLjFzNC4yLTE2LjctLjEtMjQuMWwtODAtMTM2ek00OCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMzguNyAwIDE1MkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNjAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI5NnoiXX0sdW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1yaWdodCIsaWNvbjpbNTEyLDUxMixbNjE4MzgsImFycm93LWFsdC1jaXJjbGUtcmlnaHQiXSwiZjM1YSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDEgLTQxNiAwIDIwOCAyMDggMCAxIDEgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6bTM4Ny4zIDExLjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTEwNC0xMDRjLTQuNi00LjYtMTEuNS01LjktMTcuNC0zLjVTMjU2IDE0NS41IDI1NiAxNTJsMCA3Mi0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDcyYzAgNi41IDMuOSAxMi4zIDkuOSAxNC44czEyLjkgMS4xIDE3LjQtMy41bDEwNC0xMDR6Il19LEtkdD11b2UscG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImlkLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQ3LCJkcml2ZXJzLWxpY2Vuc2UiXSwiZjJjMiIsIk00OCA0MTZsMC0yNTYgNDgwIDAgMCAyNTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xOTIgMGMwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjA4IDMxMmE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMzc2IDIwOGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDB6Il19LGU1dD1wb2UsaG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNpcmNsZS1wbGF5IixpY29uOls1MTIsNTEyLFs2MTQ2OSwicGxheS1jaXJjbGUiXSwiZjE0NCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIxMi41IDE0Ny41Yy03LjQtNC41LTE2LjctNC43LTI0LjMtLjVTMTc2IDE1OS4zIDE3NiAxNjhsMCAxNzZjMCA4LjcgNC43IDE2LjcgMTIuMyAyMC45czE2LjggNC4xIDI0LjMtLjVsMTQ0LTg4YzcuMS00LjQgMTEuNS0xMi4xIDExLjUtMjAuNXMtNC40LTE2LjEtMTEuNS0yMC41bC0xNDQtODh6TTI5OCAyNTZsLTc0IDQ1LjIgMC05MC40IDc0IDQ1LjJ6Il19LHQ1dD1ob2UsZm9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxyNXQ9Zm9lLG1vZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJhZGRyZXNzLWJvb2siLGljb246WzUxMiw1MTIsWzYyMTM4LCJjb250YWN0LWJvb2siXSwiZjJiOSIsIk0zODQgNDhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzg0YzAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw4MCA2NGMwLTguOCA3LjItMTYgMTYtMTZsMjg4IDB6TTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHpNMjQwIDI0OGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptLTMyIDQwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTkyIDBjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC02NCAwek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6TTQ5NiAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6bTE2IDE0NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHoiXX0saTV0PW1vZSxnb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaG91cmdsYXNzIixpY29uOlszODQsNTEyLFs5MjAzLDYyMDMyLCJob3VyZ2xhc3MtZW1wdHkiXSwiZjI1NCIsIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE5YzAgNDAuMyAxNiA3OSA0NC41IDEwNy41bDgxLjUgODEuNS04MS41IDgxLjVDNDggMzY2IDMyIDQwNC43IDMyIDQ0NWwwIDE5LTggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOCAwIDAtMTljMC00MC4zLTE2LTc5LTQ0LjUtMTA3LjVsLTgxLjUtODEuNSA4MS41LTgxLjVDMzM2IDE0NiAzNTIgMTA3LjMgMzUyIDY3bDAtMTkgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzM3My4zIDAgMzYwIDBMMjQgMHpNMTkyIDI4OS45bDgxLjUgODEuNUMyOTMgMzkxIDMwNCA0MTcuNCAzMDQgNDQ1bDAgMTktMjI0IDAgMC0xOWMwLTI3LjYgMTEtNTQgMzAuNS03My41TDE5MiAyODkuOXptMC02Ny45bC04MS41LTgxLjVDOTEgMTIxIDgwIDk0LjYgODAgNjdsMC0xOSAyMjQgMCAwIDE5YzAgMjcuNi0xMSA1NC0zMC41IDczLjVMMTkyIDIyMi4xeiJdfSxhNXQ9Z29lLFlBPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhlYWRwaG9uZXMiLGljb246WzQ0OCw1MTIsWzEyNzkxMSw2Mjg2MywiaGVhZHBob25lcy1hbHQiLCJoZWFkcGhvbmVzLXNpbXBsZSJdLCJmMDI1IiwiTTQ4IDIyNGMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnMxNzYgNzguOCAxNzYgMTc2bDAgNDQuOGMtMTQuMS04LjItMzAuNS0xMi44LTQ4LTEyLjhsLTE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDE2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTE2MEM0NDggMTAwLjMgMzQ3LjcgMCAyMjQgMFMwIDEwMC4zIDAgMjI0TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsMTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMGMtMTcuNSAwLTMzLjkgNC43LTQ4IDEyLjhMNDggMjI0em0wIDEyOGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNiAwIDAgMTI4LTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzJ6bTM1MiAwbDAgMzJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE2IDAgMC0xMjggMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OHoiXX0sbjV0PVlBLG81dD1ZQSxzNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1wb3dlcnBvaW50IixpY29uOlszODQsNTEyLFtdLCJmMWM0IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6bTg4IDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDI4IDBjMzcuNiAwIDY4LTMwLjQgNjgtNjhzLTMwLjQtNjgtNjgtNjhsLTUyIDB6bTUyIDg4bC0yOCAwIDAtNDAgMjggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjB6Il19LGw1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJ3aW5kb3ctbWF4aW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ3MF0sImYyZDAiLCJNNDggMjI0bDAgMTYwYzAgOC44IDcuMiAxNiAxNiAxNmwzODQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNjAtNDE2IDB6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6Il19LGJvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb21tZW50LWRvdHMiLGljb246WzUxMiw1MTIsWzEyODE3Miw2MjA3NSwiY29tbWVudGluZyJdLCJmNGFkIiwiTTAgMjQwYzAgNTQuNCAxOS4zIDEwNC42IDUxLjkgMTQ0LjlMMy4xIDQ3NC4zYy0yIDMuNy0zLjEgNy45LTMuMSAxMi4yIDAgMTQuMSAxMS40IDI1LjUgMjUuNSAyNS41IDQgMCA3LjgtLjYgMTEuNS0yLjFMMTUzLjQgNDYwYzMxLjQgMTIuOSA2Ni4xIDIwIDEwMi42IDIwIDE0MS40IDAgMjU2LTEwNy41IDI1Ni0yNDBTMzk3LjQgMCAyNTYgMCAwIDEwNy41IDAgMjQwek05NCA0MDcuOWM5LjMtMTcuMSA3LjQtMzguMS00LjgtNTMuMi0yNi4xLTMyLjMtNDEuMi03MS45LTQxLjItMTE0LjcgMC0xMDMuMiA5MC4yLTE5MiAyMDgtMTkyczIwOCA4OC44IDIwOCAxOTItOTAuMiAxOTItMjA4IDE5MmMtMzAuMiAwLTU4LjctNS45LTg0LjMtMTYuNC0xMS45LTQuOS0yNS4zLTQuOC0zNy4xIC4zTDc2IDQ0MC45IDk0IDQwNy45ek0xNDQgMjcyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTQ0LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTgwIDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYzV0PWJvZSx2b2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1NDAsImdyaW4tdG9uZ3VlLXdpbmsiXSwiZjU4YiIsIk0zNjYuOSA0MzJjLjgtNS4yIDEuMS0xMC42IDEuMS0xNmwwLTUzLjVjMTAuMi0xMi42IDE4LjMtMjYuOSAyMy44LTQyLjUgNC4xLTExLjYtNy44LTIxLjQtMTkuNi0xNy44LTM0LjggMTAuNi03NC4zIDE2LjYtMTE2LjMgMTYuNi00MS45IDAtODEuNC02LTExNi4xLTE2LjUtMTEuOC0zLjYtMjMuNyA2LjEtMTkuNiAxNy44IDUuNSAxNS41IDEzLjYgMjkuOSAyMy44IDQyLjRsMCA1My41YzAgNS40IC40IDEwLjggMS4xIDE2LTU4LjQtMzYuOC05Ny4xLTEwMS45LTk3LjEtMTc2IDAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOHMyMDggOTMuMSAyMDggMjA4YzAgNzQuMS0zOC44IDEzOS4yLTk3LjEgMTc2em0tMzguOCA2OS43QzQzNC40IDQ3MC42IDUxMiAzNzIuMyA1MTIgMjU2IDUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwUzAgMTE0LjYgMCAyNTZDMCAzNzIuMyA3Ny42IDQ3MC42IDE4My45IDUwMS43IDIwMy40IDUxOC4xIDIyOC41IDUyOCAyNTYgNTI4czUyLjYtOS45IDcyLjEtMjYuM3pNMzIwIDM3OC42bDAgMzcuNGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGwwLTM3LjRjMC0xNC43IDExLjktMjYuNiAyNi42LTI2LjZsMiAwYzExLjMgMCAyMS4xIDcuOSAyMy42IDE4LjkgMi44IDEyLjYgMjAuOCAxMi42IDIzLjYgMCAyLjUtMTEuMSAxMi4zLTE4LjkgMjMuNi0xOC45bDIgMGMxNC43IDAgMjYuNiAxMS45IDI2LjYgMjYuNnpNMTMyIDIzMmMwLTExIDktMjAgMjAtMjBsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMHptMjI4LjQtMjRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMjg4IDIwOGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0xMjggMGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6Il19LGQ1dD12b2UseG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhvdXJnbGFzcy1oYWxmIixpY29uOlszODQsNTEyLFsiaG91cmdsYXNzLTIiXSwiZjI1MiIsIk0wIDI0QzAgMTAuNyAxMC43IDAgMjQgMEwzNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMTljMCA0MC4zLTE2IDc5LTQ0LjUgMTA3LjVsLTgxLjUgODEuNSA4MS41IDgxLjVDMzM2IDM2NiAzNTIgNDA0LjcgMzUyIDQ0NWwwIDE5IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMTljMC00MC4zIDE2LTc5IDQ0LjUtMTA3LjVsODEuNS04MS41LTgxLjUtODEuNUM0OCAxNDYgMzIgMTA3LjMgMzIgNjdsMC0xOS04IDBDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMTEwLjUgMzcxLjVjLTMuOSAzLjktNy41IDguMS0xMC43IDEyLjVsMTg0LjQgMGMtMy4yLTQuNC02LjgtOC42LTEwLjctMTIuNWwtODEuNS04MS41LTgxLjUgODEuNXpNODAuOCA0MzJjLS41IDQuMy0uOCA4LjYtLjggMTNsMCAxOSAyMjQgMCAwLTE5YzAtNC40LS4zLTguNy0uOC0xM0w4MC44IDQzMnpNMjU0LjEgMTYwbC0xMjQuMSAwIDYyLjEgNjIuMSA2Mi4xLTYyLjF6bTM5LjctNDhDMzAwLjQgOTguMSAzMDQgODIuNyAzMDQgNjdsMC0xOS0yMjQgMCAwIDE5YzAgMTUuNyAzLjYgMzEuMSAxMC4yIDQ1bDIwMy41IDB6Il19LHU1dD14b2UseW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTQ0OCAxMTJjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzItNDE2IDAgMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzg0IDB6bTE2IDExMmwwIDE2MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNjAgNDE2IDB6TTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDY0ek04MCAzNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTE0NCAwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxwNXQ9eW9lLGg1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJoYW5kLXNwb2NrIixpY29uOls1MTIsNTEyLFsxMjg0MDZdLCJmMjU5IiwiTTEzOC4zIDgwLjhjLTkuMi0zMy44IDEwLjUtNjguOCA0NC4zLTc4LjQgMzQtOS42IDY5LjQgMTAuMiA3OSA0NC4yTDI5MS45IDE1My43IDMwNS4xIDg0YzYuNi0zNC43IDQwLjEtNTcuNSA3NC44LTUwLjkgMzEuNCA2IDUzIDMzLjkgNTIgNjQuOSAxMC0yLjYgMjAuOC0yLjggMzEuNS0uMSAzNC4zIDguNiA1NS4xIDQzLjMgNDYuNiA3Ny42TDQ1NC43IDM5Ny4yQzQzNy44IDQ2NC43IDM3Ny4yIDUxMiAzMDcuNiA1MTJsLTMzLjcgMGMtNTYuOSAwLTExMi4yLTE5LTE1Ny4yLTUzLjlsLTkyLTcxLjZjLTI3LjktMjEuNy0zMi45LTYxLjktMTEuMi04OS44czYxLjktMzIuOSA4OS44LTExLjJsMTcgMTMuMi01MS44LTEzMS4yYy0xMy0zMi45IDMuMi03MC4xIDM2LTgzIDExLjEtNC40IDIyLjctNS40IDMzLjctMy43em03Ny4xLTIxLjJjLTIuNC04LjUtMTEuMi0xMy40LTE5LjctMTFzLTEzLjQgMTEuMi0xMSAxOS43bDU0LjggMTgyLjRjMy41IDEyLjMtMy4zIDI1LjItMTUuNCAyOS4zcy0yNS4zLTItMzAtMTMuOUwxNDIuOSAxMzguMWMtMy4yLTguMi0xMi41LTEyLjMtMjAuOC05cy0xMi4zIDEyLjUtOSAyMC44bDczLjMgMTg1LjZjMTIgMzAuMy0yMy43IDU3LTQ5LjQgMzdMNzMuOCAzMjMuNGMtNy01LjQtMTctNC4yLTIyLjUgMi44cy00LjIgMTcgMi44IDIyLjVsOTIgNzEuNmMzNi41IDI4LjQgODEuNCA0My44IDEyNy43IDQzLjhsMzMuNyAwYzQ3LjUgMCA4OS0zMi40IDEwMC41LTc4LjVsNTUuNC0yMjEuNmMyLjEtOC42LTMuMS0xNy4zLTExLjYtMTkuNHMtMTcuMyAzLjEtMTkuNCAxMS42bC0yNiAxMDRjLTIuOSAxMS43LTEzLjQgMTkuOS0yNS41IDE5LjktMTYuNSAwLTI4LjktMTUtMjUuOC0zMS4yTDM4My43IDk5YzEuNy04LjctNC0xNy4xLTEyLjctMTguN1MzNTQgODQuMyAzNTIuMyA5M0wzMjAuNSAyNjBjLTIuMiAxMS42LTEyLjQgMjAtMjQuMiAyMC0xMSAwLTIwLjctNy4zLTIzLjctMTcuOUwyMTUuNCA1OS42eiJdfSxmNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiYmVsbC1zbGFzaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjc3LDYxOTQzXSwiZjFmNiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04Ny44LTg3LjhjMTcuNS0zLjMgMzAuOC0xOC43IDMwLjgtMzcuMSAwLTYuNy0xLjgtMTMuMy01LjEtMTlMNDg1IDMyMS43Yy0xOS0zMi42LTI5LTY5LjYtMjktMTA3LjNsMC0xNC41YzAtODQuNi02Mi42LTE1NC43LTE0NC0xNjYuM2wwLTkuN2MwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDkuN2MtNDIuMiA2LTc5LjQgMjcuOC0xMDUuNCA1OS4xTDQxLTI0Ljl6TTE5Mi44IDEyNi45QzIxNC43IDk4LjQgMjQ5LjIgODAgMjg4IDgwIDM1NC4zIDgwIDQwOCAxMzMuNyA0MDggMjAwbDAgMTQuNWMwIDQ2LjIgMTIuMyA5MS41IDM1LjUgMTMxLjRsMTIuOSAyMi4xLTIyLjYgMC0yNDEuMS0yNDEuMXpNMTMyLjUgMzQ1LjljMTkuNS0zMy40IDMxLjMtNzAuNyAzNC42LTEwOWwtNDYuNy00Ni43Yy0uMiAzLjMtLjMgNi42LS4zIDkuOWwwIDE0LjVjMCAzNy43LTEwIDc0LjctMjkgMTA3LjNMNjkuMSAzNTkuMmMtMy40IDUuOC01LjEgMTIuMy01LjEgMTkgMCAyMC45IDE2LjkgMzcuOCAzNy44IDM3LjhsMjQ0LjQgMC00OC00OC0xNzguNiAwIDEyLjktMjIuMXpNMjIwLjEgNDY0YzkuOSAyOCAzNi42IDQ4IDY3LjkgNDhzNTgtMjAgNjcuOS00OGwtMTM1LjggMHoiXX0sbTV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXIiLGljb246WzU3Niw1MTIsWzExMDg4LDYxNDQ2XSwiZjAwNSIsIk0yODguMS0zMmM5IDAgMTcuMyA1LjEgMjEuNCAxMy4xTDM4MyAxMjUuMyA1NDIuOSAxNTAuN2M4LjkgMS40IDE2LjMgNy43IDE5LjEgMTYuM3MuNSAxOC01LjggMjQuNEw0NDEuNyAzMDUuOSA0NjcgNDY1LjhjMS40IDguOS0yLjMgMTcuOS05LjYgMjMuMnMtMTcgNi4xLTI1IDJMMjg4LjEgNDE3LjYgMTQzLjggNDkxYy04IDQuMS0xNy43IDMuMy0yNS0ycy0xMS0xNC4yLTkuNi0yMy4yTDEzNC40IDMwNS45IDIwIDE5MS40Yy02LjQtNi40LTguNi0xNS44LTUuOC0yNC40czEwLjEtMTQuOSAxOS4xLTE2LjNsMTU5LjktMjUuNCA3My42LTE0NC4yYzQuMS04IDEyLjQtMTMuMSAyMS40LTEzLjF6bTAgNzYuOEwyMzAuMyAxNThjLTMuNSA2LjgtMTAgMTEuNi0xNy42IDEyLjhsLTEyNS41IDIwIDg5LjggODkuOWM1LjQgNS40IDcuOSAxMy4xIDYuNyAyMC43bC0xOS44IDEyNS41IDExMy4zLTU3LjZjNi44LTMuNSAxNC45LTMuNSAyMS44IDBsMTEzLjMgNTcuNi0xOS44LTEyNS41Yy0xLjItNy42IDEuMy0xNS4zIDYuNy0yMC43bDg5LjgtODkuOS0xMjUuNS0yMGMtNy42LTEuMi0xNC4xLTYtMTcuNi0xMi44TDI4OC4xIDQ0Ljh6Il19LGc1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmbGFnIixpY29uOls0NDgsNTEyLFsxMjc5ODgsNjE3MjVdLCJmMDI0IiwiTTQ4IDI0QzQ4IDEwLjcgMzcuMyAwIDI0IDBTMCAxMC43IDAgMjRMMCA0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMCA4MC4zLTIwLjFjNDEuMS0xMC4zIDg0LjYtNS41IDEyMi41IDEzLjQgNDQuMiAyMi4xIDk1LjUgMjQuOCAxNDEuNyA3LjRsMzQuNy0xM2MxMi41LTQuNyAyMC44LTE2LjYgMjAuOC0zMGwwLTI3OS43YzAtMjMtMjQuMi0zOC00NC44LTI3LjdsLTkuNiA0LjhjLTQ2LjMgMjMuMi0xMDAuOCAyMy4yLTE0Ny4xIDAtMzUuMS0xNy42LTc1LjQtMjItMTEzLjUtMTIuNUw0OCA1MiA0OCAyNHptMCA3Ny41bDk2LjYtMjQuMmMyNy02LjcgNTUuNS0zLjYgODAuNCA4LjggNTQuOSAyNy40IDExOC43IDI5LjcgMTc1IDYuOGwwIDI0MS44LTI0LjQgOS4xYy0zMy43IDEyLjYtNzEuMiAxMC43LTEwMy40LTUuNC00OC4yLTI0LjEtMTAzLjMtMzAuMS0xNTUuNi0xNy4xbC02OC42IDE3LjIgMC0yMzd6Il19LGI1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJsZW1vbiIsaWNvbjpbNDQ4LDUxMixbMTI3ODE5XSwiZjA5NCIsIk0zNjggODBjLTMuMiAwLTYuMiAuNC04LjkgMS4zLTE5LjEgNS41LTQ2LjEgMTAuNy03NC4zIDMuMy01Ny40LTE0LjktMTI0LjYgNy40LTE3NC43IDU3LjVTMzcuNyAyNTkuNCA1Mi42IDMxNi44YzcuMyAyOC4yIDIuMiA1NS4yLTMuMyA3NC4zLS44IDIuOC0xLjMgNS44LTEuMyA4LjkgMCAxNy43IDE0LjMgMzIgMzIgMzIgMy4yIDAgNi4yLS40IDguOS0xLjMgMTkuMS01LjUgNDYuMS0xMC43IDc0LjMtMy4zIDU3LjQgMTQuOSAxMjQuNi03LjQgMTc0LjctNTcuNXM3Mi40LTExNy4zIDU3LjUtMTc0LjdjLTcuMy0yOC4yLTIuMi01NS4yIDMuMy03NC4zIC44LTIuOCAxLjMtNS44IDEuMy04LjkgMC0xNy43LTE0LjMtMzItMzItMzJ6bTAtNDhjNDQuMiAwIDgwIDM1LjggODAgODAgMCA3LjctMS4xIDE1LjItMy4xIDIyLjMtNC42IDE1LjgtNy4xIDMyLjktMyA0OC45IDIwLjEgNzcuNi0xMC45IDE2MS41LTcwIDIyMC43cy0xNDMuMSA5MC4yLTIyMC43IDcwYy0xNi00LjEtMzMtMS42LTQ4LjkgMy03LjEgMi0xNC42IDMuMS0yMi4zIDMuMS00NC4yIDAtODAtMzUuOC04MC04MCAwLTcuNyAxLjEtMTUuMiAzLjEtMjIuMyA0LjYtMTUuOCA3LjEtMzIuOSAzLTQ4LjktMjAuMS03Ny42IDEwLjktMTYxLjUgNzAtMjIwLjdTMjE5LjMgMTggMjk2LjggMzguMWMxNiA0LjEgMzMgMS42IDQ4LjktMyA3LjEtMiAxNC42LTMuMSAyMi4zLTMuMXpNMjQ2LjcgMTY3Yy01MiAxNS4yLTk2LjUgNTkuNy0xMTEuNyAxMTEuNy0zLjcgMTIuNy0xNy4xIDIwLTI5LjggMTYuM1M4NS4yIDI3OCA4OSAyNjUuM2MxOS44LTY3LjcgNzYuNi0xMjQuNSAxNDQuMy0xNDQuMyAxMi43LTMuNyAyNi4xIDMuNiAyOS44IDE2LjNzLTMuNiAyNi4xLTE2LjMgMjkuOHoiXX0sdjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6IndpbmRvdy1yZXN0b3JlIixpY29uOls1NzYsNTEyLFtdLCJmMmQyIiwiTTUxMiA4MEwyMjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2LTQ4IDAgMC0xNmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDggMCAwLTQ4IDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTkyYzAtOC44LTcuMi0xNi0xNi0xNnpNMzY4IDI4OGwtMzIwIDAgMCAxMjhjMCA4LjggNy4yIDE2IDE2IDE2bDI4OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEyOHpNNjQgMTYwbDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LHdvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWdyaW4taGVhcnRzIixpY29uOls1MTIsNTEyLFsxMjg1MjUsImdyaW4taGVhcnRzIl0sImY1ODQiLCJNNDY0IDI1NmMwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTNDggMzcwLjkgNDggMjU2YzAtMy41IC4xLTcuMSAuMy0xMC42LTE0LTEzLjktMjkuNy0zMy4xLTM5LjMtNTYuNy01LjggMjEuNC04LjkgNDQtOC45IDY3LjMgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NlM1MTIgMzk3LjQgNTEyIDI1NmMwLTIzLjMtMy4xLTQ1LjktOC45LTY3LjMtOS42IDIzLjctMjUuNCA0Mi44LTM5LjMgNTYuNyAuMiAzLjUgLjMgNyAuMyAxMC42ek0zNjggNTguOWMxMS43LTYgMjQuNS05LjYgMzcuNy0xMC42LTQyLjEtMzAuNC05My44LTQ4LjMtMTQ5LjctNDguM1MxNDguNCAxNy45IDEwNi4zIDQ4LjNjMTMuMiAxIDI2IDQuNiAzNy43IDEwLjYgMTMuOC03LjEgMjkuMy0xMC45IDQ1LjEtMTAuOWwyLjkgMGM4LjkgMCAxNy42IDEuMiAyNS44IDMuNSAxMi40LTIuMyAyNS4yLTMuNSAzOC4yLTMuNXMyNS44IDEuMiAzOC4yIDMuNWM4LjItMi4zIDE2LjktMy41IDI1LjgtMy41bDIuOSAwYzE1LjggMCAzMS4zIDMuOCA0NS4xIDEwLjl6bTQuMiAyNDMuNGMtMzQuOCAxMC42LTc0LjMgMTYuNi0xMTYuMyAxNi42LTQxLjkgMC04MS40LTYtMTE2LjEtMTYuNS0xMS44LTMuNi0yMy43IDYuMS0xOS42IDE3LjggMTkuOCA1NS45IDczLjEgOTUuOSAxMzUuOCA5NS45IDYyLjcgMCAxMTYtNDAuMSAxMzUuOC05NiA0LjEtMTEuNi03LjgtMjEuNC0xOS42LTE3Ljh6TTMyMi45IDk2TDMyMCA5NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA1My40IDY2LjkgOTUuNyA4OSAxMDguMiA0LjQgMi41IDkuNiAyLjUgMTQgMCAyMi4xLTEyLjUgODktNTQuOCA4OS0xMDguMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMi45IDBjLTEzLjUgMC0yNi41IDUuNC0zNiAxNC45bC05LjEgOS4xLTkuMS05LjFjLTkuNS05LjUtMjIuNS0xNC45LTM2LTE0Ljl6bS0xODggMTQuOWMtOS41LTkuNS0yMi41LTE0LjktMzYtMTQuOUw5NiA5NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCA1My40IDY2LjkgOTUuNyA4OSAxMDguMiA0LjQgMi41IDkuNiAyLjUgMTQgMCAyMi4xLTEyLjUgODktNTQuOCA4OS0xMDguMiAwLTI2LjUtMjEuNS00OC00OC00OGwtMi45IDBjLTEzLjUgMC0yNi41IDUuNC0zNiAxNC45bC05LjEgOS4xLTkuMS05LjF6Il19LHg1dD13b2UsTW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Uta2lzcy1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MzcsImtpc3MtYmVhbSJdLCJmNTk3IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjQwIDE2bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxMi4zLTQuNiAyMy41LTEyLjIgMzIgNy42IDguNSAxMi4yIDE5LjcgMTIuMiAzMiAwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS02NC05MmMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LHk1dD1Nb2UsdzV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtcGRmIixpY29uOls1NzYsNTEyLFtdLCJmMWMxIiwiTTIwOCA0OEw5NiA0OGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzg0YzAgOC44IDcuMiAxNiAxNiAxNmw4MCAwIDAgNDgtODAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwyMjkuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM5Ny4zIDE0MS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCAxNDkuNS00OCAwIDAtMTI4LTg4IDBjLTM5LjggMC03Mi0zMi4yLTcyLTcybDAtODh6TTM0OC4xIDE2MEwyNTYgNjcuOSAyNTYgMTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDY4LjEgMHpNMjQwIDM4MGwzMiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwcy0yNi45IDYwLTYwIDYwbC0xMiAwIDAgMjhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTI4YzAtMTEgOS0yMCAyMC0yMHptMzIgODBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC0xMiAwIDAgNDAgMTIgMHptOTYtODBsMzIgMGMyOC43IDAgNTIgMjMuMyA1MiA1MmwwIDY0YzAgMjguNy0yMy4zIDUyLTUyIDUybC0zMiAwYy0xMSAwLTIwLTktMjAtMjBsMC0xMjhjMC0xMSA5LTIwIDIwLTIwem0zMiAxMjhjNi42IDAgMTItNS40IDEyLTEybDAtNjRjMC02LjYtNS40LTEyLTEyLTEybC0xMiAwIDAgODggMTIgMHptNzYtMTA4YzAtMTEgOS0yMCAyMC0yMGw0OCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtMjggMCAwIDI0IDI4IDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwbC0yOCAwIDAgNDRjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMTI4eiJdfSxrb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXdpZGUiLGljb246WzUxMiw1MTIsWzEyODUxNSwiZ3Jpbi1hbHQiXSwiZjU4MSIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTIyNCAxOTJjMCAzNS4zLTE0LjMgNjQtMzIgNjRzLTMyLTI4LjctMzItNjQgMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0em05NiA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LE01dD1rb2UsU29lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtc3F1aW50IixpY29uOls1MTIsNTEyLFsibGF1Z2gtc3F1aW50Il0sImY1OWIiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMjUuMiA3Ni40Yy02LjUtMTQgNS0yOC40IDIwLjQtMjguNGwyMjAuOCAwYzE1LjQgMCAyNi44IDE0LjQgMjAuNCAyOC40LTIyLjggNDkuNC03Mi44IDgzLjYtMTMwLjggODMuNnMtMTA3LjktMzQuMi0xMzAuOC04My42em0tMi42LTE3My4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LGs1dD1Tb2Usem9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Uta2lzcy13aW5rLWhlYXJ0IixpY29uOls2NDAsNTEyLFsxMjg1MzYsImtpc3Mtd2luay1oZWFydCJdLCJmNTk4IiwiTTM4NiA0MzkuNWMtMjkuMiAxNS42LTYyLjUgMjQuNS05OCAyNC41LTExNC45IDAtMjA4LTkzLjEtMjA4LTIwOFMxNzMuMiA0OCAyODggNDhjMTEzLjIgMCAyMDUuMiA5MC40IDIwNy45IDIwMi45IDE0LjMgMS41IDI4LjYgNiA0MS45IDEzLjcgMiAxLjIgNCAyLjQgNS45IDMuNyAuMi00LjEgLjMtOC4yIC4zLTEyLjMgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMzMiAxMTQuNiAzMiAyNTYgMTQ2LjYgNTEyIDI4OCA1MTJjNDEuNCAwIDgwLjUtOS44IDExNS4xLTI3LjMtNS44LTEyLjktMTItMjguNS0xNy4yLTQ1LjJ6TTI1NiAyODhjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTE2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtMTIuMy00LjYtMjMuNS0xMi4yLTMyIDcuNi04LjUgMTIuMi0xOS43IDEyLjItMzIgMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptLTQ4LTQ4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTUyLTQ0bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHpNNTQyLjggMzUwYy0yLjItMTguMy0xMi45LTM0LjYtMjguOS00My44LTI4LjEtMTYuMi02My45LTYuNi04MC4xIDIxLjVsLTIuNyA0LjZjLTI0LjUgNDIuNSA3LjkgMTE3LjkgMjQuNCAxNTAuOCA1LjEgMTAuMSAxNS41IDE2LjEgMjYuOCAxNS41IDM2LjctMi4yIDExOC4yLTExLjcgMTQyLjgtNTQuMmwyLjctNC42YzE2LjItMjguMSA2LjYtNjMuOS0yMS41LTgwLjEtMTYtOS4yLTM1LjQtMTAuNC01Mi40LTMuMWwtOS44IDQuMi0xLjMtMTAuNnoiXX0sUzV0PXpvZSxYQT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjb3B5IixpY29uOls0NDgsNTEyLFtdLCJmMGM1IiwiTTM4NCAzMzZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDEzMy41IDBjNC4yIDAgOC4zIDEuNyAxMS4zIDQuN2w1OC41IDU4LjVjMyAzIDQuNyA3LjEgNC43IDExLjNMNDAwIDMyMGMwIDguOC03LjIgMTYtMTYgMTZ6TTE5MiAzODRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTcuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNzAuNyAxOC43QzM1OC43IDYuNyAzNDIuNSAwIDMyNS41IDBMMTkyIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0ek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTYtNDggMCAwIDE2YzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMCAwLTQ4LTE2IDB6Il19LHo1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaGVzcy1raW5nIixpY29uOls0NDgsNTEyLFs5ODE4XSwiZjQzZiIsIk0yMjQtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgODAgMTYxLjggMGMyMS4xIDAgMzguMiAxNy4xIDM4LjIgMzguMiAwIDYuNC0xLjYgMTIuNy00LjcgMTguM0wzNTcuMiAzNzQuNSA0MDUuNiA0MzVjNi43IDguNCAxMC40IDE4LjggMTAuNCAyOS42IDAgMjYuMi0yMS4yIDQ3LjQtNDcuNCA0Ny40TDc5LjQgNTEyYy0yNi4yIDAtNDcuNC0yMS4yLTQ3LjQtNDcuNCAwLTEwLjggMy43LTIxLjIgMTAuNC0yOS42TDkwLjggMzc0LjUgNC43IDIxNi42QzEuNiAyMTAuOSAwIDIwNC42IDAgMTk4LjIgMCAxNzcuMSAxNy4xIDE2MCAzOC4yIDE2MGwxNjEuOCAwIDAtODAtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTEzMS44IDQwMGwtMy42IDQuNC00Ny42IDU5LjYgMjg2LjYgMC00Ny42LTU5LjYtMy42LTQuNC0xODQuMyAwem0xLjEtNDguNWwuMyAuNSAxODEuNiAwIC4zLS41IDc4LjMtMTQzLjUtMzM4LjcgMCA3OC4zIDE0My41eiJdfSxDb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToic3F1YXJlLXBsdXMiLGljb246WzQ0OCw1MTIsWzYxODQ2LCJwbHVzLXNxdWFyZSJdLCJmMGZlIiwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMjBjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODB6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0yMDAgMzQ0bDAtNjQtNjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw2NCAwIDAtNjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTY0IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHoiXX0sQzV0PUNvZSxUNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmlsZS1jb2RlIixpY29uOlszODQsNTEyLFtdLCJmMWM5IiwiTTY0IDQ4bDExMiAwIDAgODhjMCAzOS44IDMyLjIgNzIgNzIgNzJsODggMCAwIDI0MGMwIDguOC03LjIgMTYtMTYgMTZMNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZMNDggNjRjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgNjcuOWw5Mi4xIDkyLjEtNjguMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTY4LjF6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjYxLjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjQyLjcgMTguN0MyMzAuNyA2LjcgMjE0LjUgMCAxOTcuNSAwTDY0IDB6TTE3MC4yIDI5NS42YzguNi0xMC4xIDcuNS0yNS4yLTIuNi0zMy44cy0yNS4yLTcuNS0zMy44IDIuNmwtNDggNTZjLTcuNyA5LTcuNyAyMi4yIDAgMzEuMmw0OCA1NmM4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44bC0zNC42LTQwLjQgMzQuNi00MC40em04MC0zMS4yYy04LjYtMTAuMS0yMy44LTExLjItMzMuOC0yLjZzLTExLjIgMjMuOC0yLjYgMzMuOGwzNC42IDQwLjQtMzQuNiA0MC40Yy04LjYgMTAuMS03LjUgMjUuMiAyLjYgMzMuOHMyNS4yIDcuNSAzMy44LTIuNmw0OC01NmM3LjctOSA3LjctMjIuMiAwLTMxLjJsLTQ4LTU2eiJdfSxUb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1ncmluLXdpbmsiLGljb246WzUxMiw1MTIsWyJncmluLXdpbmsiXSwiZjU4YyIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTM3Mi4yIDQ2LjNjMTEuOC0zLjYgMjMuNyA2LjEgMTkuNiAxNy44LTE5LjggNTUuOS03My4xIDk2LTEzNS44IDk2LTYyLjcgMC0xMTYtNDAtMTM1LjgtOTUuOS00LjEtMTEuNiA3LjgtMjEuNCAxOS42LTE3LjggMzQuNyAxMC42IDc0LjIgMTYuNSAxMTYuMSAxNi41IDQyIDAgODEuNS02IDExNi4zLTE2LjZ6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sXzV0PVRvZSxfb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToibW9uZXktYmlsbC0xIixpY29uOls1MTIsNTEyLFsibW9uZXktYmlsbC1hbHQiXSwiZjNkMSIsIk0xMTIgMTEyYzAgMzUuMy0yOC43IDY0LTY0IDY0bDAgMTYwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDI4OCAwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDAtMTYwYy0zNS4zIDAtNjQtMjguNy02NC02NGwtMjg4IDB6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTI1NiAxNmExMTIgMTEyIDAgMSAxIDAgMjI0IDExMiAxMTIgMCAxIDEgMC0yMjR6bS0xNiA0NGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA0OC40LTQgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsNDggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQgMCAwLTY4YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHoiXX0sTDV0PV9vZSxBNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZXllLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMDcwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMTc2LjkgMTExLjFjMzIuMS0xOC45IDY5LjItMzEuMSAxMTEuMS0zMS4xIDY1LjIgMCAxMTguOCAyOS42IDE1OS45IDY3LjcgMzguNSAzNS43IDY1LjEgNzguMyA3OC42IDEwOC4zLTEzLjYgMzAtNDAuMiA3Mi41LTc4LjYgMTA4LjMtMy4xIDIuOC02LjIgNS42LTkuNCA4LjRMMzkzLjggMzI4YzE0LTIwLjUgMjIuMi00NS4zIDIyLjItNzIgMC03MC43LTU3LjMtMTI4LTEyOC0xMjgtMjYuNyAwLTUxLjUgOC4yLTcyIDIyLjJsLTM5LjEtMzkuMXptMTgyIDE4MmwtMTA4LTEwOGMxMS4xLTUuOCAyMy43LTkuMSAzNy4xLTkuMSA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDEzLjQtMy4zIDI2LTkuMSAzNy4xek0xMDMuNCAxNzMuMmwtMzQtMzRjLTMyLjYgMzYuOC01NSA3NS44LTY2LjkgMTA0LjUtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42IDM3LjMgMCA3MS4yLTcuOSAxMDEuNS0yMC42TDM1Mi4yIDQyMmMtMjAgNi40LTQxLjQgMTAtNjQuMiAxMC02NS4yIDAtMTE4LjgtMjkuNi0xNTkuOS02Ny43LTM4LjUtMzUuNy02NS4xLTc4LjMtNzguNi0xMDguMyAxMC40LTIzLjEgMjguNi01My42IDU0LTgyLjh6Il19LEQ1dD17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmaWxlLXdvcmQiLGljb246WzM4NCw1MTIsW10sImYxYzIiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHptNzEuMyAyNzQuMmMtMy4yLTEyLjktMTYuMi0yMC43LTI5LjEtMTcuNVM4NS41IDI3MyA4OC43IDI4NS44bDMyIDEyOGMyLjUgMTAuMiAxMS40IDE3LjUgMjEuOSAxOC4xczIwLjEtNS43IDIzLjgtMTUuNWwyNS41LTY4LjEgMjUuNSA2OC4xYzMuNyA5LjggMTMuMyAxNi4xIDIzLjggMTUuNXMxOS40LTcuOSAyMS45LTE4LjFsMzItMTI4YzMuMi0xMi45LTQuNi0yNS45LTE3LjUtMjkuMXMtMjUuOSA0LjYtMjkuMSAxNy41bC0xMy4zIDUzLjItMjAuOS01NS44QzIxMSAyNjIuMiAyMDIgMjU2IDE5MiAyNTZzLTE5IDYuMi0yMi41IDE1LjZsLTIwLjkgNTUuOC0xMy4zLTUzLjJ6Il19LExvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWFuZ3J5IixpY29uOls1MTIsNTEyLFsxMjg1NDQsImFuZ3J5Il0sImY1NTYiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTE0NGMyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MHMtNzUuNyAxOS44LTk3LjUgNTBjLTcuNyAxMC44LTUuMyAyNS44IDUuNSAzMy41czI1LjggNS4zIDMzLjUtNS41YzEzLjEtMTguMiAzNC40LTMwIDU4LjUtMzB6bS04MC05NmMxNy43IDAgMzItMTQuMyAzMi0zMmwwLS4zIDkuNyAzLjJjMTAuNSAzLjUgMjEuOC0yLjIgMjUuMy0xMi42cy0yLjItMjEuOC0xMi42LTI1LjNsLTk2LTMyYy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zbDI4LjkgOS42Yy00LjEgNS40LTYuNiAxMi4xLTYuNiAxOS40IDAgMTcuNyAxNC4zIDMyIDMyIDMyem0xOTItMzJjMC03LjMtMi40LTE0LTYuNi0xOS40bDI4LjktOS42YzEwLjUtMy41IDE2LjEtMTQuOCAxMi42LTI1LjNzLTE0LjgtMTYuMS0yNS4zLTEyLjZsLTk2IDMyYy0xMC41IDMuNS0xNi4xIDE0LjgtMTIuNiAyNS4zczE0LjggMTYuMSAyNS4zIDEyLjZsOS43LTMuMiAwIC4zYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LEU1dD1Mb2UsJDV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNoZXNzLWtuaWdodCIsaWNvbjpbNDQ4LDUxMixbOTgyMl0sImY0NDEiLCJNMjMyLTMyYzExMC41IDAgMjAwIDg5LjUgMjAwIDIwMGwwIDEyNy43YzAgMTguOS02LjEgMzcuMS0xNy4yIDUyLjJsLTUuMSA2LjItMzYuMyA0MC43IDMyLjEgNDAuMmM2LjcgOC40IDEwLjQgMTguOCAxMC40IDI5LjZsLS4yIDQuOGMtMi40IDIzLjktMjIuNiA0Mi41LTQ3LjEgNDIuNWwtMjg5LjIgMC00LjgtLjJjLTIzLjktMi40LTQyLjUtMjIuNi00Mi41LTQ3LjEgMC0xMC44IDMuNy0yMS4yIDEwLjQtMjkuNmwzNy42LTQ3IDAtMjQuM2MwLTI0LjMgMTAuMS00Ny42IDI3LjgtNjQuMmw2My41LTU5LjUtMTcuNCAwLS4yIC4yYy0yMC4zIDIwLjMtNDkuNiAyOC4yLTc3LjEgMjEuMWwtNS41LTEuNmMtMzAuOS0xMC4zLTUyLjMtMzgtNTQuOS03MC4xbC0uMi02LjQgMC0xLjRjMC0xOS43IDcuMS0zOC44IDE5LjktNTMuOGw3Ni4xLTg4LjggMC00Ny4xIC4xLTIuNUMxMTMuNC0yMi42IDEyMy42LTMyIDEzNi0zMmw5NiAwek04MC43IDQ2NGwyODYuNiAwLTM4LjQtNDgtMjA5LjkgMC0zOC40IDQ4ek0xNjAgNDhjMCA1LjctMi4xIDExLjMtNS44IDE1LjZMNzIuMyAxNTkuMUM2NyAxNjUuNCA2NCAxNzMuNCA2NCAxODEuN2wwIDEuNCAuNCA1LjJjMS45IDExLjkgMTAuMyAyMS45IDIxLjkgMjUuOGw0LjUgMS4xYzEwLjUgMS45IDIxLjMtMS40IDI5LTlsNy4yLTcuMiAzLjctM2MzLjktMi42IDguNS00IDEzLjMtNGw4OCAwYzkuOCAwIDE4LjcgNiAyMi4zIDE1LjJzMS4zIDE5LjYtNS45IDI2LjNsLTEwNy44IDEwMWMtOC4xIDcuNi0xMi43IDE4LjEtMTIuNyAyOS4ybDAgNC4zIDIwNS4yIDAgNDAuNy00NS44IDIuMy0yLjhjNS4xLTYuOCA3LjgtMTUuMiA3LjgtMjMuN0wzODQgMTY4YzAtODMuOS02OC4xLTE1Mi0xNTItMTUybC03MiAwIDAgMzJ6bTMyIDcyYTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHoiXX0sQW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi1iZWFtIixpY29uOls1MTIsNTEyLFsxMjg1MTYsImdyaW4tYmVhbSJdLCJmNTgyIiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMCAtNDE2IDAgMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzcyLjIgNDYuM2MxMS44LTMuNiAyMy43IDYuMSAxOS42IDE3LjgtMTkuOCA1NS45LTczLjEgOTYtMTM1LjggOTYtNjIuNyAwLTExNi00MC0xMzUuOC05NS45LTQuMS0xMS42IDcuOC0yMS40IDE5LjYtMTcuOCAzNC43IDEwLjYgNzQuMiAxNi41IDExNi4xIDE2LjUgNDIgMCA4MS41LTYgMTE2LjMtMTYuNnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LEk1dD1Bb2UsUDV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTIxOSAxLjRjLTM1LjItMy43LTY2LjYgMjEuOC03MC4zIDU3bC02LjQgNjAuNi0xNy40LTQ5LjRDMTEzLjIgMzYuMyA3Ni42IDE4LjggNDMuMyAzMC41Uy03LjYgNzguOCA0LjEgMTEyLjFMNTYuOSAyNjIuMkM0MS43IDI3Ni43IDMyLjIgMjk3LjMgMzIuMiAzMjBsMCAyNGMwIDkyLjggNzUuMiAxNjggMTY4IDE2OGw0OCAwYzkyLjggMCAxNjgtNzUuMiAxNjgtMTY4bDAtMTIwYzAtMzUuMy0yOC43LTY0LTY0LTY0LTcuOSAwLTE1LjQgMS40LTIyLjQgNC0xMC40LTIxLjMtMzIuMy0zNi01Ny42LTM2LS43IDAtMS41IDAtMi4yIDBsNS45LTU2LjNjMy43LTM1LjItMjEuOC02Ni42LTU3LTcwLjN6bS0uMiAxNTUuNGMtNi42IDEwLjEtMTAuNSAyMi4yLTEwLjUgMzUuMmwwIDQ4YzAgLjcgMCAxLjQgMCAyLTUuMS0xLjMtMTAuNS0yLTE2LTJsLTcuNCAwLTUuNC0xNS4zIDE3LTE2MS4zYy45LTguOCA4LjgtMTUuMiAxNy42LTE0LjJzMTUuMiA4LjggMTQuMiAxNy42bC05LjUgOTAuMXpNNzkuNiA4NS42bDU0LjMgMTU0LjQtMjEuNyAwYy00IDAtOCAuMy0xMS45IC45TDQ5LjQgOTYuMmMtMi45LTguMyAxLjUtMTcuNSA5LjgtMjAuNHMxNy41IDEuNSAyMC40IDkuOHpNMjU2LjIgMTkyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4em0zOC40IDEwOGMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2IDUuNSAwIDEwLjktLjcgMTYtMmwwIDEwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC00OCAwYy02Ni4zIDAtMTIwLTUzLjctMTIwLTEyMGwwLTI0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDgwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMGMzNS4zIDAgNjQtMjguNyA2NC02NCAwLS43IDAtMS40IDAtMiA1LjEgMS4zIDEwLjUgMiAxNiAyIDcuOSAwIDE1LjQtMS40IDIyLjQtNHptNzMuNi0yOGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OHoiXX0sTjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImNvbXBhc3MiLGljb246WzUxMiw1MTIsWzEyOTUxN10sImYxNGUiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMDYuNyA2OS4xTDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4zIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sRjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InNxdWFyZSIsaWNvbjpbNDQ4LDUxMixbOTYzMiw5NzIzLDk3MjQsNjE1OTBdLCJmMGM4IiwiTTM4NCA4MGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMjBjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2TDQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwzMjAgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sRG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3JpbiIsaWNvbjpbNTEyLDUxMixbMTI4NTEyLCJncmluIl0sImY1ODAiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zNzIuMiA0Ni4zYzExLjgtMy42IDIzLjcgNi4xIDE5LjYgMTcuOC0xOS44IDU1LjktNzMuMSA5Ni0xMzUuOCA5Ni02Mi43IDAtMTE2LTQwLTEzNS44LTk1LjktNC4xLTExLjYgNy44LTIxLjQgMTkuNi0xNy44IDM0LjcgMTAuNiA3NC4yIDE2LjUgMTE2LjEgMTYuNSA0MiAwIDgxLjUtNiAxMTYuMy0xNi42ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LE81dD1Eb2UsRW9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUiLGljb246WzUxMiw1MTIsWzEyODU3OCwic21pbGUiXSwiZjExOCIsIk00NjQgMjU2YTIwOCAyMDggMCAxIDAgLTQxNiAwIDIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE3Ny4zIDYzLjRDMTkyLjMgMzM1IDIxOC40IDM1MiAyNTYgMzUyczYzLjctMTcgNzguNy0zMi42YzkuMi05LjYgMjQuNC05LjkgMzMuOS0uN3M5LjkgMjQuNCAuNyAzMy45Yy0yMi4xIDIzLTYwIDQ3LjQtMTEzLjMgNDcuNHMtOTEuMi0yNC40LTExMy4zLTQ3LjRjLTkuMi05LjYtOC45LTI0LjggLjctMzMuOXMyNC44LTguOSAzMy45IC43ek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFI1dD1Fb2UsJG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2Utc21pbGUtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTIyLCJzbWlsZS1iZWFtIl0sImY1YjgiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xNzcuMyA2My40QzE5Mi4zIDMzNSAyMTguNCAzNTIgMjU2IDM1MnM2My43LTE3IDc4LjctMzIuNmM5LjItOS42IDI0LjQtOS45IDMzLjktLjdzOS45IDI0LjQgLjcgMzMuOWMtMjIuMSAyMy02MCA0Ny40LTExMy4zIDQ3LjRzLTkxLjItMjQuNC0xMTMuMy00Ny40Yy05LjItOS42LTguOS0yNC44IC43LTMzLjlzMjQuOC04LjkgMzMuOSAuN3pNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LEI1dD0kb2UsSDV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQwMEw2NCA0MDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE0NCA0MTYgMCAwIDE0NGMwIDguOC03LjIgMTYtMTYgMTZ6bTE2LTIwOGwtNDE2IDAgMC05NmMwLTguOCA3LjItMTYgMTYtMTZsMTM4LjcgMGMzLjUgMCA2LjggMS4xIDkuNiAzLjJMMjUwLjcgMTEyYzEzLjggMTAuNCAzMC43IDE2IDQ4IDE2TDQ0OCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDh6TTY0IDQ0OGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0MGMwLTM1LjMtMjguNy02NC02NC02NEwyOTguNyA4MGMtNi45IDAtMTMuNy0yLjItMTkuMi02LjRMMjQxLjEgNDQuOEMyMzAgMzYuNSAyMTYuNSAzMiAyMDIuNyAzMkw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0eiJdfSxxNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgMTEyYy04LjggMC0xNiA3LjItMTYgMTZsMCAyNTZjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI1NmMwLTguOC03LjItMTYtMTYtMTZMNjQgMTEyek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek0xNzYgMzIwbDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMjI0IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptLTcyLTcyYzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZ6bTE2LTk2bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LElvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLXJvbGxpbmctZXllcyIsaWNvbjpbNTEyLDUxMixbMTI4NTgwLCJtZWgtcm9sbGluZy1leWVzIl0sImY1YTUiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzYgMzc2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTE2MCAyNjRjLTIyLjEgMC00MC0xNy45LTQwLTQwIDAtOS41IDMuMy0xOC4xIDguOC0yNSAzLjIgMTQuMyAxNiAyNSAzMS4yIDI1czI4LTEwLjcgMzEuMi0yNWM1LjUgNi44IDguOCAxNS41IDguOCAyNSAwIDIyLjEtMTcuOSA0MC00MCA0MHptMCA0MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTkyLTQwYy0yMi4xIDAtNDAtMTcuOS00MC00MCAwLTkuNSAzLjMtMTguMSA4LjgtMjUgMy4yIDE0LjMgMTYgMjUgMzEuMiAyNXMyOC0xMC43IDMxLjItMjVjNS41IDYuOCA4LjggMTUuNSA4LjggMjUgMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTAgNDBhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6Il19LGo1dD1Jb2UsUG9lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZhY2UtZ3JpbWFjZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU2LCJncmltYWNlIl0sImY1N2YiLCJNMjU2IDQ4YTIwOCAyMDggMCAxIDAgMCA0MTYgMjA4IDIwOCAwIDEgMCAwLTQxNnpNNTEyIDI1NmEyNTYgMjU2IDAgMSAxIC01MTIgMCAyNTYgMjU2IDAgMSAxIDUxMiAwek0xNTIgMzUyYzAgMTEuOSA4LjYgMjEuOCAyMCAyMy43bDAtNDcuM2MtMTEuNCAxLjktMjAgMTEuOC0yMCAyMy43em04NCAyNGwwLTQ4LTI0IDAgMCA0OCAyNCAwem02NCAwbDAtNDgtMjQgMCAwIDQ4IDI0IDB6bTQwLS4zYzExLjQtMS45IDIwLTExLjggMjAtMjMuN3MtOC42LTIxLjgtMjAtMjMuN2wwIDQ3LjN6TTE3NiAyODhsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTE2MCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0em0wLTExMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxWNXQ9UG9lLE5vZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJjaXJjbGUtZG90IixpY29uOls1MTIsNTEyLFsxMjgyODAsImRvdC1jaXJjbGUiXSwiZjE5MiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDEgMC01MTIgMjU2IDI1NiAwIDEgMSAwIDUxMnptMC00NjRhMjA4IDIwOCAwIDEgMCAwIDQxNiAyMDggMjA4IDAgMSAwIDAtNDE2em0wIDMwNGE5NiA5NiAwIDEgMSAwLTE5MiA5NiA5NiAwIDEgMSAwIDE5MnoiXX0sVTV0PU5vZSxXNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToib2JqZWN0LWdyb3VwIixpY29uOls1NzYsNTEyLFtdLCJmMjQ3IiwiTTQwIDY0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTQ4IDU5LjNjMTYtNi41IDI4LjktMTkuMyAzNS4zLTM1LjNsMzI5LjMgMGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM2wwIDI2NS4zYy0xNiA2LjUtMjguOSAxOS4zLTM1LjMgMzUuM2wtMzI5LjMgMGMtNi41LTE2LTE5LjMtMjguOS0zNS4zLTM1LjNsMC0yNjUuM3pNNTEyIDBjLTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEwxMjMuMyA0MEMxMTMuOSAxNi41IDkwLjkgMCA2NCAwIDI4LjcgMCAwIDI4LjcgMCA2NCAwIDkwLjkgMTYuNSAxMTMuOSA0MCAxMjMuM2wwIDI2NS4zYy0yMy41IDkuNS00MCAzMi41LTQwIDU5LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjQgMjYuOSAwIDQ5LjktMTYuNSA1OS4zLTQwbDMyOS4zIDBjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwIDM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTI2NS4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuMyAwLTM1LjMtMjguNy02NC02NC02NHpNNDg4IDY0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTY0IDQyNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQyNCAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0xOTIgMTc2bDg4IDAgMCA1Ni04OCAwIDAtNTZ6bS04LTQwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDcyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwem03MiAxODRsMCAyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTcyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNCAwYzAgMTQuNi0zLjkgMjguMi0xMC43IDQwbDI2LjcgMCAwIDU2LTg4IDAgMC0xNi40Yy0yLjYgLjMtNS4zIC40LTggLjRsLTMyIDB6Il19LEZvZT17cHJlZml4OiJmYXIiLGljb25OYW1lOiJmYWNlLWZsdXNoZWQiLGljb246WzUxMiw1MTIsWzEyODU2MywiZmx1c2hlZCJdLCJmNTc5IiwiTTQ2NCAyNTZhMjA4IDIwOCAwIDEgMSAtNDE2IDAgMjA4IDIwOCAwIDEgMSA0MTYgMHpNMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMiAyNTYgMjU2IDAgMSAwIDAtNTEyek0xNjAgMjQ4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTE5MiAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTI4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTEyOCAwek0xNjAgMTc2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnptMCAxMjhhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTE0NC04MGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0xMjggMGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6Il19LEc1dD1Gb2UsT29lPXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMzA5LjUtMTguOWMtNC4xLTgtMTIuNC0xMy4xLTIxLjQtMTMuMXMtMTcuMyA1LjEtMjEuNCAxMy4xTDE5My4xIDEyNS4zIDMzLjIgMTUwLjdjLTguOSAxLjQtMTYuMyA3LjctMTkuMSAxNi4zcy0uNSAxOCA1LjggMjQuNGwxMTQuNCAxMTQuNS0yNS4yIDE1OS45Yy0xLjQgOC45IDIuMyAxNy45IDkuNiAyMy4yczE2LjkgNi4xIDI1IDJMMjg4LjEgNDE3LjYgNDMyLjQgNDkxYzggNC4xIDE3LjcgMy4zIDI1LTJzMTEtMTQuMiA5LjYtMjMuMkw0NDEuNyAzMDUuOSA1NTYuMSAxOTEuNGM2LjQtNi40IDguNi0xNS44IDUuOC0yNC40cy0xMC4xLTE0LjktMTkuMS0xNi4zTDM4MyAxMjUuMyAzMDkuNS0xOC45ek0yNjQuMSA5MS44bDAgMjg0LjEtMTAwLjEgNTAuOSAxOS44LTEyNS41YzEuMi03LjYtMS4zLTE1LjMtNi43LTIwLjdsLTg5LjgtODkuOSAxMjUuNS0yMGM3LjYtMS4yIDE0LjEtNiAxNy42LTEyLjhsMzMuOC02Ni4yem00OCAyODQuMWwwLTI4NC4xIDMzLjggNjYuMmMzLjUgNi44IDEwIDExLjYgMTcuNiAxMi44bDEyNS41IDIwLTg5LjggODkuOWMtNS40IDUuNC03LjkgMTMuMS02LjcgMjAuN2wxOS44IDEyNS41LTEwMC4xLTUwLjl6Il19LFk1dD1Pb2UsWjV0PXtwcmVmaXg6ImZhciIsaWNvbk5hbWU6ImZpbGUtdmlkZW8iLGljb246WzM4NCw1MTIsW10sImYxYzgiLCJNNjQgNDhsMTEyIDAgMCA4OGMwIDM5LjggMzIuMiA3MiA3MiA3Mmw4OCAwIDAgMjQwYzAgOC44LTcuMiAxNi0xNiAxNkw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNkw0OCA2NGMwLTguOCA3LjItMTYgMTYtMTZ6TTIyNCA2Ny45bDkyLjEgOTIuMS02OC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNjguMXpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNjEuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNDIuNyAxOC43QzIzMC43IDYuNyAyMTQuNSAwIDE5Ny41IDBMNjQgMHpNODAgMjg4bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI0IDM1IDM1YzMuMiAzLjIgNy41IDUgMTIgNSA5LjQgMCAxNy03LjYgMTctMTdsMC05NC4xYzAtOS40LTcuNi0xNy0xNy0xNy00LjUgMC04LjggMS44LTEyIDVsLTM1IDM1IDAtMjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxSb2U9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiZmFjZS1sYXVnaCIsaWNvbjpbNTEyLDUxMixbImxhdWdoIl0sImY1OTkiLCJNNDY0IDI1NmEyMDggMjA4IDAgMSAwIC00MTYgMCAyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0xMTguMyA1OC4yYy00LjItMTMuNyA3LjEtMjYuMiAyMS40LTI2LjJsMjMyLjYgMGMxNC4zIDAgMjUuNiAxMi41IDIxLjQgMjYuMi0xOCA1OC45LTcyLjkgMTAxLjgtMTM3LjcgMTAxLjhTMTM2LjMgMzczLjEgMTE4LjMgMzE0LjJ6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sWDV0PVJvZSxRNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToiaGFuZC1wb2ludGVyIixpY29uOls0NDgsNTEyLFtdLCJmMjVhIiwiTTE2MCA2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTM2YzAgMTAuMyA2LjYgMTkuNSAxNi40IDIyLjhzMjAuNi0uMSAyNi44LTguM2MzLTMuOSA3LjYtNi40IDEyLjgtNi40IDguOCAwIDE2IDcuMiAxNiAxNiAwIDEwLjMgNi42IDE5LjUgMTYuNCAyMi44czIwLjYtLjEgMjYuOC04LjNjMy0zLjkgNy42LTYuNCAxMi44LTYuNCA3LjggMCAxNC4zIDUuNiAxNS43IDEzIDEuNiA4LjIgNy4zIDE1LjEgMTUuMSAxOHMxNi43IDEuNiAyMy4zLTMuNmMyLjctMi4xIDYuMS0zLjQgOS45LTMuNCA4LjggMCAxNiA3LjIgMTYgMTZsMCAxMjBjMCAzOS44LTMyLjIgNzItNzIgNzJsLTExNi42IDBjLTM3LjQgMC03Mi40LTE4LjctOTMuMi00OS45TDUwLjcgMzEyLjljLTQuOS03LjQtMi45LTE3LjMgNC40LTIyLjJzMTcuMy0yLjkgMjIuMiA0LjRMMTE2IDM1My4yYzUuOSA4LjggMTYuOCAxMi43IDI2LjkgOS43czE3LTEyLjQgMTctMjNMMTYwIDY0ek0xNzYgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAxOTcuN0M5MS4yIDIzOCA1NS41IDIzMi44IDI4LjUgMjUwLjctLjkgMjcwLjQtOC45IDMxMC4xIDEwLjggMzM5LjVMNzguMyA0NDAuOGMyOS43IDQ0LjUgNzkuNiA3MS4yIDEzMy4xIDcxLjJMMzI4IDUxMmM2Ni4zIDAgMTIwLTUzLjcgMTIwLTEyMGwwLTEyMGMwLTM1LjMtMjguNy02NC02NC02NC00LjUgMC04LjggLjUtMTMgMS4zLTExLjctMTUuNC0zMC4yLTI1LjMtNTEtMjUuMy02LjkgMC0xMy41IDEuMS0xOS43IDMuMS0xMS42LTE2LjQtMzAuNy0yNy4xLTUyLjMtMjcuMS0yLjcgMC01LjQgLjItOCAuNUwyNDAgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjR6bTQ4IDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2eiJdfSxKNXQ9e3ByZWZpeDoiZmFyIixpY29uTmFtZToicmVnaXN0ZXJlZCIsaWNvbjpbNTEyLDUxMixbMTc0XSwiZjI1ZCIsIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NGEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwMCAxNDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NiAzNC40IDAgNDEgNjguM2M2LjggMTEuNCAyMS42IDE1IDMyLjkgOC4yczE1LTIxLjYgOC4yLTMyLjlsLTMwLjItNTAuM2MyNC42LTExLjUgNDEuNi0zNi40IDQxLjYtNjUuMyAwLTM5LjgtMzIuMi03Mi03Mi03MmwtODAgMHptNzIgOTZsLTQ4IDAgMC00OCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDB6Il19LFNacj17ZmFTcXVhcmVNaW51czp2bmUsZmFNaW51c1NxdWFyZTpQM3QsZmFDYWxlbmRhckNoZWNrOk4zdCxmYUZhY2VLaXNzOnhuZSxmYUtpc3M6RjN0LGZhUGFzdGU6a2csZmFGaWxlQ2xpcGJvYXJkOk8zdCxmYUhhbmRQb2ludExlZnQ6UjN0LGZhRmlsZUV4Y2VsOkIzdCxmYUVudmVsb3BlOkgzdCxmYVNxdWFyZUNhcmV0RG93bjp5bmUsZmFDYXJldFNxdWFyZURvd246cTN0LGZhVHJ1Y2s6ajN0LGZhQmVsbDpWM3QsZmFNZXNzYWdlOlNnLGZhQ29tbWVudEFsdDpVM3QsZmFGYWNlRGl6enk6d25lLGZhRGl6enk6VzN0LGZhQ2FsZW5kYXJEYXlzOk1uZSxmYUNhbGVuZGFyQWx0OkczdCxmYUhhbmRQb2ludFVwOlkzdCxmYUhhbmRMaXphcmQ6WjN0LGZhU3F1YXJlRnVsbDpYM3QsZmFDaXJjbGVQYXVzZTprbmUsZmFQYXVzZUNpcmNsZTpRM3QsZmFIYXJkRHJpdmU6U25lLGZhSGRkOkozdCxmYUZpbGVaaXBwZXI6em5lLGZhRmlsZUFyY2hpdmU6SzN0LGZhRmxvcHB5RGlzazpDbmUsZmFTYXZlOmU2dCxmYUZhY2VHcmluVG9uZ3VlU3F1aW50OlRuZSxmYUdyaW5Ub25ndWVTcXVpbnQ6dDZ0LGZhQ2FtZXJhOl9uZSxmYUNhbWVyYUFsdDpyNnQsZmFGYWNlR3JpblN0YXJzOkxuZSxmYUdyaW5TdGFyczppNnQsZmFFeWU6YTZ0LGZhRmFjZVNhZFRlYXI6QW5lLGZhU2FkVGVhcjpuNnQsZmFTaGFyZUZyb21TcXVhcmU6RG5lLGZhU2hhcmVTcXVhcmU6bzZ0LGZhTm90ZVN0aWNreTpFbmUsZmFTdGlja3lOb3RlOnM2dCxmYUhhbmRCYWNrRmlzdDokbmUsZmFIYW5kUm9jazpsNnQsZmFDaGVzc1F1ZWVuOmM2dCxmYUZhY2VHcmluVGVhcnM6SW5lLGZhR3JpblRlYXJzOmQ2dCxmYVBlblRvU3F1YXJlOlBuZSxmYUVkaXQ6dTZ0LGZhRmFjZUdyaW5CZWFtU3dlYXQ6Tm5lLGZhR3JpbkJlYW1Td2VhdDpwNnQsZmFDbG9jazpGbmUsZmFDbG9ja0ZvdXI6aDZ0LGZhRmFjZUxhdWdoV2luazpPbmUsZmFMYXVnaFdpbms6ZjZ0LGZhUGFwZXJQbGFuZTptNnQsZmFIZWFydDpnNnQsZmFGb250QXdlc29tZTpIQSxmYUZvbnRBd2Vzb21lRmxhZzpiNnQsZmFGb250QXdlc29tZUxvZ29GdWxsOnY2dCxmYUNsb25lOng2dCxmYUZvbGRlck9wZW46eTZ0LGZhV2luZG93TWluaW1pemU6dzZ0LGZhU3RhckhhbGY6TTZ0LGZhQWxhcm1DbG9jazprNnQsZmFOZXdzcGFwZXI6UzZ0LGZhSG9zcGl0YWw6cUEsZmFIb3NwaXRhbEFsdDp6NnQsZmFIb3NwaXRhbFdpZGU6QzZ0LGZhQ2lyY2xlU3RvcDpSbmUsZmFTdG9wQ2lyY2xlOlQ2dCxmYU9iamVjdFVuZ3JvdXA6XzZ0LGZhQ29tbWVudDpMNnQsZmFDaGVzc1Bhd246QTZ0LGZhQ2FsZW5kYXJQbHVzOkQ2dCxmYUNsaXBib2FyZDpFNnQsZmFUaHVtYnNEb3duOiQ2dCxmYUlkQmFkZ2U6STZ0LGZhU3F1YXJlQ2hlY2s6Qm5lLGZhQ2hlY2tTcXVhcmU6UDZ0LGZhQ2hlc3NCaXNob3A6TjZ0LGZhRW52ZWxvcGVPcGVuOkY2dCxmYUNpcmNsZVhtYXJrOlBwLGZhVGltZXNDaXJjbGU6TzZ0LGZhWG1hcmtDaXJjbGU6UjZ0LGZhU3F1YXJlQ2FyZXRVcDpIbmUsZmFDYXJldFNxdWFyZVVwOkI2dCxmYUZpbGVJbWFnZTpINnQsZmFTcXVhcmVDYXJldFJpZ2h0OnFuZSxmYUNhcmV0U3F1YXJlUmlnaHQ6cTZ0LGZhU3VuOlpBLGZhSW1hZ2U6ajZ0LGZhTGlnaHRidWxiOlY2dCxmYUFkZHJlc3NDYXJkOmpBLGZhQ29udGFjdENhcmQ6VTZ0LGZhVmNhcmQ6VzZ0LGZhRmFjZU1laDpqbmUsZmFNZWg6RzZ0LGZhTWFwOlk2dCxmYUhhbmRQb2ludERvd246WjZ0LGZhRmFjZU1laEJsYW5rOlZuZSxmYU1laEJsYW5rOlg2dCxmYUZhY2VHcmluVG9uZ3VlOlVuZSxmYUdyaW5Ub25ndWU6UTZ0LGZhRnV0Ym9sOlZBLGZhRnV0Ym9sQmFsbDpKNnQsZmFTb2NjZXJCYWxsOks2dCxmYUZhY2VTdXJwcmlzZTpXbmUsZmFTdXJwcmlzZTplZHQsZmFGb2xkZXI6R25lLGZhRm9sZGVyQmxhbms6dGR0LGZhQ2xvdWQ6cmR0LGZhQ2lyY2xlOmlkdCxmYUZhY2VHcmluU3F1aW50OlluZSxmYUdyaW5TcXVpbnQ6YWR0LGZhQ2lyY2xlVXNlcjpabmUsZmFVc2VyQ2lyY2xlOm5kdCxmYVJlY3RhbmdsZUxpc3Q6WG5lLGZhTGlzdEFsdDpvZHQsZmFIYW5kOlFuZSxmYUhhbmRQYXBlcjpzZHQsZmFUaHVtYnNVcDpsZHQsZmFCdWlsZGluZzpjZHQsZmFDaGVzc1Jvb2s6ZGR0LGZhQ2lyY2xlUXVlc3Rpb246Sm5lLGZhUXVlc3Rpb25DaXJjbGU6dWR0LGZhRmlsZTpwZHQsZmFGYWNlU2FkQ3J5OktuZSxmYVNhZENyeTpoZHQsZmFDYWxlbmRhck1pbnVzOmZkdCxmYUZhY2VUaXJlZDplb2UsZmFUaXJlZDptZHQsZmFIYW5kUG9pbnRSaWdodDpnZHQsZmFDaXJjbGVVcDp0b2UsZmFBcnJvd0FsdENpcmNsZVVwOmJkdCxmYUhhbmRTY2lzc29yczp2ZHQsZmFHZW06eGR0LGZhUmVjdGFuZ2xlWG1hcms6d2csZmFSZWN0YW5nbGVUaW1lczp5ZHQsZmFUaW1lc1JlY3RhbmdsZTp3ZHQsZmFXaW5kb3dDbG9zZTpNZHQsZmFUcmFzaENhbjp6ZyxmYVRyYXNoQWx0OmtkdCxmYUxpZmVSaW5nOlNkdCxmYUNvcHlyaWdodDp6ZHQsZmFDaXJjbGVMZWZ0OnJvZSxmYUFycm93QWx0Q2lyY2xlTGVmdDpDZHQsZmFDYWxlbmRhcjpUZHQsZmFGYWNlRnJvd25PcGVuOmlvZSxmYUZyb3duT3BlbjpfZHQsZmFDaGFydEJhcjphb2UsZmFCYXJDaGFydDpMZHQsZmFIb3VzZTpNZyxmYUhvbWU6QWR0LGZhSG9tZUFsdDpEZHQsZmFIb21lTGdBbHQ6RWR0LGZhRmFjZUZyb3duOm5vZSxmYUZyb3duOiRkdCxmYVVzZXI6VUEsZmFVc2VyQWx0OklkdCxmYVVzZXJMYXJnZTpQZHQsZmFTbm93Zmxha2U6TmR0LGZhQm9va21hcms6RmR0LGZhU3F1YXJlQ2FyZXRMZWZ0Om9vZSxmYUNhcmV0U3F1YXJlTGVmdDpPZHQsZmFIYW5kc2hha2U6V0EsZmFIYW5kc2hha2VBbHQ6UmR0LGZhSGFuZHNoYWtlU2ltcGxlOkJkdCxmYUZhY2VTbWlsZVdpbms6c29lLGZhU21pbGVXaW5rOkhkdCxmYUZhY2VHcmluU3F1aW50VGVhcnM6bG9lLGZhR3JpblNxdWludFRlYXJzOnFkdCxmYUZpbGVBdWRpbzpqZHQsZmFDYWxlbmRhclhtYXJrOmNvZSxmYUNhbGVuZGFyVGltZXM6VmR0LGZhQ2lyY2xlRG93bjpkb2UsZmFBcnJvd0FsdENpcmNsZURvd246VWR0LGZhRmlsZUxpbmVzOkdBLGZhRmlsZUFsdDpXZHQsZmFGaWxlVGV4dDpHZHQsZmFDb21tZW50czpZZHQsZmFDaXJjbGVDaGVjazpDZyxmYUNoZWNrQ2lyY2xlOlpkdCxmYU1vb246WGR0LGZhQ2xvc2VkQ2FwdGlvbmluZzpRZHQsZmFJbWFnZXM6SmR0LGZhQ2lyY2xlUmlnaHQ6dW9lLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpLZHQsZmFJZENhcmQ6cG9lLGZhRHJpdmVyc0xpY2Vuc2U6ZTV0LGZhQ2lyY2xlUGxheTpob2UsZmFQbGF5Q2lyY2xlOnQ1dCxmYUZhY2VMYXVnaEJlYW06Zm9lLGZhTGF1Z2hCZWFtOnI1dCxmYUFkZHJlc3NCb29rOm1vZSxmYUNvbnRhY3RCb29rOmk1dCxmYUhvdXJnbGFzczpnb2UsZmFIb3VyZ2xhc3NFbXB0eTphNXQsZmFIZWFkcGhvbmVzOllBLGZhSGVhZHBob25lc0FsdDpuNXQsZmFIZWFkcGhvbmVzU2ltcGxlOm81dCxmYUZpbGVQb3dlcnBvaW50OnM1dCxmYVdpbmRvd01heGltaXplOmw1dCxmYUNvbW1lbnREb3RzOmJvZSxmYUNvbW1lbnRpbmc6YzV0LGZhRmFjZUdyaW5Ub25ndWVXaW5rOnZvZSxmYUdyaW5Ub25ndWVXaW5rOmQ1dCxmYUhvdXJnbGFzc0hhbGY6eG9lLGZhSG91cmdsYXNzMjp1NXQsZmFDcmVkaXRDYXJkOnlvZSxmYUNyZWRpdENhcmRBbHQ6cDV0LGZhSGFuZFNwb2NrOmg1dCxmYUJlbGxTbGFzaDpmNXQsZmFTdGFyOm01dCxmYUZsYWc6ZzV0LGZhTGVtb246YjV0LGZhV2luZG93UmVzdG9yZTp2NXQsZmFGYWNlR3JpbkhlYXJ0czp3b2UsZmFHcmluSGVhcnRzOng1dCxmYUZhY2VLaXNzQmVhbTpNb2UsZmFLaXNzQmVhbTp5NXQsZmFGaWxlUGRmOnc1dCxmYUZhY2VHcmluV2lkZTprb2UsZmFHcmluQWx0Ok01dCxmYUZhY2VMYXVnaFNxdWludDpTb2UsZmFMYXVnaFNxdWludDprNXQsZmFGYWNlS2lzc1dpbmtIZWFydDp6b2UsZmFLaXNzV2lua0hlYXJ0OlM1dCxmYUNvcHk6WEEsZmFDaGVzc0tpbmc6ejV0LGZhU3F1YXJlUGx1czpDb2UsZmFQbHVzU3F1YXJlOkM1dCxmYUZpbGVDb2RlOlQ1dCxmYUZhY2VHcmluV2luazpUb2UsZmFHcmluV2luazpfNXQsZmFNb25leUJpbGwxOl9vZSxmYU1vbmV5QmlsbEFsdDpMNXQsZmFFeWVTbGFzaDpBNXQsZmFGaWxlV29yZDpENXQsZmFGYWNlQW5ncnk6TG9lLGZhQW5ncnk6RTV0LGZhQ2hlc3NLbmlnaHQ6JDV0LGZhRmFjZUdyaW5CZWFtOkFvZSxmYUdyaW5CZWFtOkk1dCxmYUhhbmRQZWFjZTpQNXQsZmFDb21wYXNzOk41dCxmYVNxdWFyZTpGNXQsZmFGYWNlR3JpbjpEb2UsZmFHcmluOk81dCxmYUZhY2VTbWlsZTpFb2UsZmFTbWlsZTpSNXQsZmFGYWNlU21pbGVCZWFtOiRvZSxmYVNtaWxlQmVhbTpCNXQsZmFGb2xkZXJDbG9zZWQ6SDV0LGZhS2V5Ym9hcmQ6cTV0LGZhRmFjZVJvbGxpbmdFeWVzOklvZSxmYU1laFJvbGxpbmdFeWVzOmo1dCxmYUZhY2VHcmltYWNlOlBvZSxmYUdyaW1hY2U6VjV0LGZhQ2lyY2xlRG90Ok5vZSxmYURvdENpcmNsZTpVNXQsZmFPYmplY3RHcm91cDpXNXQsZmFGYWNlRmx1c2hlZDpGb2UsZmFGbHVzaGVkOkc1dCxmYVN0YXJIYWxmU3Ryb2tlOk9vZSxmYVN0YXJIYWxmQWx0Olk1dCxmYUZpbGVWaWRlbzpaNXQsZmFGYWNlTGF1Z2g6Um9lLGZhTGF1Z2g6WDV0LGZhSGFuZFBvaW50ZXI6UTV0LGZhUmVnaXN0ZXJlZDpKNXR9fSk7dmFyIHpacixldXQsdHV0LHJ1dCxpdXQsYXV0LG51dCxvdXQsc3V0LGx1dCxjdXQsUUEsZHV0LHV1dCxwdXQsaHV0LEJvZSxmdXQsSG9lLG11dCxndXQsYnV0LHFvZSx2dXQseHV0LHl1dCx3dXQsamcsTXV0LGt1dCxqb2UsU3V0LHp1dCxDdXQsVHV0LF91dCxMdXQsQXV0LER1dCxWb2UsRXV0LCR1dCxJdXQsVW9lLFB1dCxOdXQsRnV0LE91dCxSdXQsVmcsQnV0LFdvZSxIdXQscXV0LEpBLGp1dCxWdXQsR29lLFV1dCxZb2UsV3V0LEd1dCxab2UsWXV0LFhvZSxadXQsUW9lLFh1dCxRdXQsSnV0LEt1dCxlOHQsdDh0LHI4dCxKb2UsaTh0LGE4dCxuOHQsbzh0LEtvZSxzOHQsbDh0LGM4dCxkOHQsdTh0LHA4dCxLQSxoOHQsZjh0LG04dCxlRCxnOHQsYjh0LHY4dCxlMmUseDh0LHk4dCx3OHQsTTh0LHQyZSxrOHQsWUQsUzh0LFpELHo4dCxDOHQscjJlLFQ4dCxpMmUsXzh0LEw4dCx0RCxBOHQsRDh0LEU4dCwkOHQsSTh0LFA4dCxOOHQsRjh0LFhELFVnLE84dCxSOHQsYTJlLEI4dCxIOHQsVGcscTh0LGo4dCxWOHQsbjJlLFU4dCxXOHQsRzh0LG8yZSxZOHQsczJlLFo4dCxYOHQsUTh0LEo4dCxsMmUsSzh0LGVwdCx0cHQsYzJlLHJwdCxkMmUsaXB0LGFwdCxucHQsb3B0LHJELHNwdCxscHQsY3B0LGRwdCx1cHQscHB0LGhwdCx1MmUsZnB0LG1wdCxncHQsYnB0LHZwdCxwMmUseHB0LHlwdCxfZyx3cHQsTXB0LGtwdCxTcHQsenB0LENwdCxpRCxUcHQsX3B0LExwdCxBcHQsRHB0LGgyZSxFcHQsJHB0LElwdCxQcHQsTnB0LEZwdCxmMmUsT3B0LFJwdCxCcHQsSHB0LG0yZSxxcHQsanB0LFZwdCxnMmUsVXB0LFdwdCxiMmUsR3B0LHYyZSxZcHQsWnB0LHgyZSxYcHQsUXB0LHkyZSxKcHQsdzJlLEtwdCxlaHQsV2csdGh0LEdnLHJodCxpaHQsYUQsYWh0LG5odCxvaHQsTTJlLHNodCxsaHQsazJlLGNodCxkaHQsdWh0LHBodCxTMmUsaGh0LGZodCxtaHQsZ2h0LGJodCx6MmUsdmh0LHhodCx5aHQsd2h0LEMyZSxNaHQsVDJlLGtodCxTaHQsemh0LENodCxUaHQsXzJlLF9odCxMaHQsQWh0LERodCxMMmUsRWh0LCRodCxBMmUsSWh0LEQyZSxQaHQsTmh0LEZodCxPaHQsUmh0LEJodCxFMmUsSGh0LHFodCxqaHQsVmh0LFVodCwkMmUsV2h0LEdodCxZaHQsWmh0LEkyZSxYaHQsUDJlLFFodCxRRCxKRCxOMmUsSmh0LEYyZSxLaHQsZWZ0LHRmdCxuYixPMmUscmZ0LGlmdCxhZnQsbmZ0LG9mdCxzZnQsUjJlLGxmdCxLRCxjZnQsZGZ0LHVmdCxwZnQsaGZ0LEIyZSxmZnQsSDJlLG1mdCxnZnQsYmZ0LHZmdCxxMmUseGZ0LG5ELHlmdCx3ZnQsTWZ0LGoyZSxrZnQsU2Z0LHpmdCxDZnQsVjJlLFRmdCxfZnQsTGZ0LEFmdCxVMmUsRGZ0LEVmdCwkZnQsSWZ0LFBmdCxOZnQsRmZ0LE9mdCxSZnQsQmZ0LEhmdCxxZnQsamZ0LFcyZSxWZnQsVWZ0LFdmdCxHZnQsWWZ0LFpmdCxYZnQsRzJlLFFmdCxKZnQsS2Z0LE5wLGU3dCx0N3Qscjd0LGk3dCxhN3QsWTJlLG43dCxaMmUsbzd0LFgyZSxzN3QsUTJlLGw3dCxKMmUsYzd0LFlnLGQ3dCxLMmUsdTd0LGVzZSxwN3QsdHNlLGg3dCxmN3QsbTd0LGc3dCxyc2UsYjd0LHY3dCxpc2UseDd0LHk3dCxhc2Usdzd0LE03dCxrN3QsUzd0LG5zZSx6N3QsQzd0LFQ3dCxvc2UsXzd0LEw3dCxMZyxBN3QsRDd0LEU3dCwkN3QsSTd0LFA3dCxzc2UsTjd0LGxzZSxGN3QsTzd0LFI3dCxjc2UsQjd0LEg3dCxxN3QsZHNlLGo3dCx1c2UsVjd0LG9ELFU3dCxXN3QsRzd0LFk3dCxaN3QsWDd0LFE3dCxKN3QsSzd0LGVtdCx0bXQscm10LGltdCxhbXQsQWcsbm10LG9tdCxzbXQsbG10LGNtdCxkbXQsdW10LHBtdCxwc2UsaG10LGZtdCxtbXQsZ210LGJtdCx2bXQseG10LHltdCx3bXQsTW10LGhzZSxrbXQsU210LHptdCxDbXQsVG10LF9tdCxMbXQsZnNlLEFtdCxtc2UsRG10LEVtdCxnc2UsJG10LEltdCxQbXQsTm10LGJzZSxGbXQsT210LFJtdCx2c2UsQm10LHhzZSxIbXQscW10LHlzZSxqbXQsVm10LFVtdCxXbXQsd3NlLEdtdCxZbXQsWm10LGVFLFhtdCxRbXQsSm10LE1zZSxLbXQsZTl0LHQ5dCxyOXQsaTl0LGtzZSxhOXQsbjl0LG85dCxzOXQsbDl0LFNzZSxjOXQsZDl0LHU5dCx6c2UscDl0LGg5dCxzRCxmOXQsbTl0LGc5dCxiOXQsQ3NlLHY5dCx4OXQseTl0LFRzZSx3OXQsX3NlLE05dCxrOXQsUzl0LHo5dCxaZyxDOXQsTHNlLFQ5dCxfOXQsTDl0LEE5dCxEOXQsQXNlLEU5dCxEc2UsJDl0LEVzZSxJOXQsUDl0LGxELE45dCxGOXQsJHNlLE85dCxjRCxSOXQsQjl0LEg5dCxxOXQsajl0LFY5dCxVOXQsVzl0LElzZSxHOXQsWTl0LFo5dCxYOXQsUTl0LFBzZSxKOXQsSzl0LGVndCxOc2UsdGd0LEZzZSxyZ3QsT3NlLGlndCxhZ3Qsbmd0LG9ndCxzZ3QsbGd0LGNndCxSc2UsZGd0LHVndCxwZ3QsaGd0LEJzZSxmZ3QsbWd0LGdndCxiZ3Qsdmd0LHhndCxIc2UseWd0LHdndCxxc2UsTWd0LGtndCxqc2UsU2d0LHpndCxDZ3QsVGd0LFZzZSxfZ3QsTGd0LEFndCxVc2UsRGd0LFdzZSxFZ3QsJGd0LElndCxQZ3QsR3NlLE5ndCxGZ3QsT2d0LFJndCxCZ3QsWXNlLEhndCxac2UscWd0LFhzZSxqZ3QsVmd0LFFzZSxVZ3QsSnNlLFdndCxHZ3QsWWd0LFpndCxYZ3QsUWd0LEpndCxLZ3QsZWJ0LHRidCxyYnQsZEQsaWJ0LGFidCxCcCxuYnQsb2J0LHNidCx1RCxsYnQsY2J0LGRidCx1YnQscGJ0LGhidCxmYnQsS3NlLG1idCxlbGUsZ2J0LGJidCx2YnQsdGxlLHhidCxybGUseWJ0LHdidCxwRCxNYnQsa2J0LFNidCx6YnQsRnAsQ2J0LFRidCxfYnQsTGJ0LEFidCxEYnQsRWJ0LGlsZSwkYnQsSWJ0LFBidCxOYnQsYWxlLEZidCxPYnQsUmJ0LEJidCxIYnQscWJ0LGpidCxubGUsVmJ0LFVidCxXYnQsR2J0LFlidCxaYnQsb2xlLFhidCx0RSxzbGUsUWJ0LEpidCxLYnQsbGxlLGV2dCxjbGUsdHZ0LHJ2dCxpdnQsZGxlLGF2dCxudnQsdWxlLG92dCxzdnQsbHZ0LGN2dCxwbGUsZHZ0LHV2dCxwdnQsaHZ0LGZ2dCxtdnQsaGxlLGd2dCxidnQsckUsdnZ0LHh2dCxmbGUseXZ0LHd2dCxNdnQsRGcsa3Z0LFN2dCx6dnQsQ3Z0LEVnLFR2dCxfdnQsTHZ0LEF2dCxEdnQsRXZ0LG1sZSwkdnQsaEQsSXZ0LFB2dCxOdnQsZ2xlLEZ2dCxPdnQsUnZ0LEJ2dCxIdnQscXZ0LGp2dCxibGUsVnZ0LGlFLFV2dCxXdnQsR3Z0LHZsZSxZdnQseGxlLFp2dCxYdnQseWxlLFF2dCwkZyxKdnQsS3Z0LGV4dCx0eHQscnh0LGl4dCxheHQsbnh0LG94dCx3bGUsc3h0LGx4dCxjeHQsZHh0LGZELHV4dCxweHQsTWxlLGh4dCxmeHQsbXh0LGtsZSxneHQsYnh0LHZ4dCxTbGUseHh0LHl4dCx3eHQsTXh0LGt4dCxTeHQsenh0LEN4dCxUeHQsemxlLF94dCxDbGUsTHh0LEF4dCxEeHQsRXh0LCR4dCxJeHQsUHh0LFRsZSxOeHQsRnh0LE94dCxfbGUsUnh0LEJ4dCxMbGUsSHh0LEFsZSxxeHQsRGxlLGp4dCxWeHQsVXh0LEVsZSxXeHQsJGxlLEd4dCxJbGUsWXh0LFp4dCxQbGUsWHh0LE5sZSxReHQsRmxlLEp4dCxLeHQsT2xlLGV5dCx0eXQscnl0LGl5dCxheXQsbnl0LG95dCxzeXQsbHl0LGN5dCxSbGUsZHl0LEJsZSx1eXQsSGxlLHB5dCxoeXQsYUUsZnl0LHFsZSxteXQsZ3l0LGJ5dCxqbGUsdnl0LHh5dCxWbGUseXl0LFhnLHd5dCxNeXQsa3l0LFVsZSxTeXQsV2xlLHp5dCxDeXQsR2xlLFR5dCxZbGUsX3l0LFpsZSxMeXQsQXl0LER5dCxFeXQsJHl0LFhsZSxJeXQsUWxlLFB5dCxOeXQsRnl0LE95dCxKbGUsUnl0LEJ5dCxIeXQsS2xlLHF5dCxqeXQsVnl0LGVjZSxVeXQsV3l0LEd5dCxZeXQsdGNlLFp5dCxYeXQscmNlLFF5dCxKeXQsS3l0LGljZSxld3QsdHd0LHJ3dCxhY2UsaXd0LG5jZSxhd3QsbUQsbnd0LG93dCxzd3Qsb2NlLGx3dCxjd3QsZHd0LHNjZSx1d3QscHd0LGh3dCxsY2UsZnd0LG13dCxnd3QsYnd0LHZ3dCx4d3QseXd0LHd3dCxNd3Qsa3d0LFN3dCx6d3QsY2NlLEN3dCxuRSxUd3QsZGNlLF93dCxMd3QsQXd0LER3dCx1Y2UsRXd0LCR3dCxJd3QsUHd0LE53dCxGd3QsT3d0LElnLFJ3dCxCd3QsSHd0LHF3dCxRZyxqd3QscGNlLFZ3dCxVd3QsV3d0LGhjZSxHd3QsWXd0LGZjZSxad3QsWHd0LFF3dCxKd3QsS3d0LG1jZSxlTXQsZ2NlLHRNdCxyTXQsaU10LGJjZSxhTXQsbk10LG9NdCx2Y2Usc010LGxNdCxjTXQsZE10LHVNdCxwTXQsaE10LHhjZSxmTXQsb0UsbU10LGdNdCxiTXQseWNlLHZNdCx4TXQsd2NlLHlNdCxNY2Usd010LE1NdCxrTXQsa2NlLFNNdCxTY2Usek10LHpjZSxDTXQsVE10LENjZSxfTXQsTE10LEFNdCxETXQsVGNlLEVNdCxQZywkTXQsSU10LFBNdCxOTXQsX2NlLEZNdCxMY2UsT010LFJNdCxCTXQsSE10LEFjZSxxTXQsTmcsak10LFZNdCxVTXQsRGNlLFdNdCxHTXQsWU10LFpNdCxFY2UsWE10LCRjZSxRTXQsSk10LEtNdCxJY2UsZWt0LFBjZSx0a3Qscmt0LE5jZSxpa3QsRmNlLGFrdCxPY2Usbmt0LFJjZSxva3Qsc2t0LGxrdCxja3QsQmNlLGRrdCx1a3QscGt0LGhrdCxma3QsbWt0LGdrdCxia3QsSGNlLHZrdCxxY2UseGt0LHlrdCx3a3QsTWt0LGpjZSxra3QsU2t0LGdELHprdCxDa3QsVGt0LF9rdCxMa3QsQWt0LERrdCxGZyxFa3QsJGt0LElrdCxQa3QsTmt0LEZrdCxPa3QsUmt0LEJrdCxIa3QscWt0LGprdCxWa3QsYkQsVWt0LFdrdCxHa3QsWWt0LFprdCxYa3QsVmNlLFFrdCxVY2UsSmt0LEtrdCxlU3QsdkQsdFN0LHJTdCxpU3QsV2NlLGFTdCx4RCxuU3Qsb1N0LHNTdCxsU3Qsc0UseUQsY1N0LGRTdCxHY2UsdVN0LHBTdCxoU3QsZlN0LFljZSxtU3QsZ1N0LFpjZSxiU3QsdlN0LFhjZSx4U3QseVN0LHdTdCxNU3Qsa1N0LFNTdCx3RCx6U3QsQ1N0LFFjZSxUU3QsX1N0LExTdCxBU3QsRFN0LEVTdCwkU3QsSVN0LEpjZSxQU3QsTlN0LEtjZSxGU3QsZTBlLE9TdCxSU3QsRDQsQlN0LEhTdCxxU3QsalN0LHQwZSxWU3QsVVN0LFdTdCxHU3QscjBlLFlTdCxpMGUsWlN0LE1ELFhTdCxRU3QsSlN0LGEwZSxLU3QsbEUsZXp0LHR6dCxuMGUscnp0LGtELGl6dCxhenQsbnp0LG96dCxzenQsbHp0LEpnLGN6dCxkenQsbzBlLHV6dCxwenQsaHp0LHMwZSxmenQsbDBlLG16dCxPZyxnenQsYnp0LHZ6dCx4enQseXp0LHd6dCxNenQsYzBlLGt6dCxTenQsZDBlLHp6dCx1MGUsQ3p0LHAwZSxUenQsX3p0LEx6dCxBenQsRHp0LEV6dCxoMGUsJHp0LEl6dCxQenQsTnp0LEZ6dCxmMGUsT3p0LG0wZSxSenQsZzBlLEJ6dCxIenQscXp0LFNELGp6dCxWenQsVXp0LFd6dCxHenQsYjBlLFl6dCx2MGUsWnp0LFh6dCxRenQsSnp0LHgwZSxLenQseTBlLGVDdCx0Q3QsekQsckN0LGlDdCxhQ3QsbkN0LG9DdCx3MGUsc0N0LGxDdCxNMGUsY0N0LGswZSxkQ3QsdUN0LHBDdCxoQ3QsZkN0LG1DdCxnQ3QsYkN0LHZDdCx4Q3QsUzBlLHlDdCx3Q3QsTUN0LGtDdCxDRCxTQ3QsekN0LENDdCxUQ3QsejBlLF9DdCxMQ3QsQzBlLEFDdCxEQ3QsRUN0LCRDdCxUMGUsSUN0LFBDdCxOQ3QsS2csRkN0LE9DdCxURCxSQ3QsQkN0LF8wZSxIQ3QscUN0LGpDdCxWQ3QsVUN0LEwwZSxXQ3QsR0N0LEEwZSxZQ3QsRDBlLFpDdCxYQ3QsUUN0LEpDdCxLQ3QsRTBlLGVUdCwkMGUsdFR0LEkwZSxyVHQsaVR0LGFUdCxuVHQsUDBlLG9UdCxzVHQsTjBlLGxUdCxjVHQsZFR0LEYwZSx1VHQscFR0LF9ELGhUdCxmVHQsTzBlLG1UdCxSMGUsZ1R0LEIwZSxiVHQsY0UsSDBlLHZUdCxxMGUseFR0LHlUdCx3VHQsTVR0LGtUdCxTVHQsTEQselR0LENUdCxUVHQsajBlLF9UdCxMVHQsQVR0LEFELERUdCxFVHQsJFR0LElUdCxERCxQVHQsTlR0LEZUdCxPVHQsVjBlLFJUdCxVMGUsQlR0LEhUdCxxVHQsalR0LFZUdCxFRCxVVHQsV1R0LEdUdCxZVHQsWlR0LFhUdCwkRCxRVHQsSlR0LEtUdCxXMGUsZV90LHRfdCxyX3QsaV90LEcwZSxhX3Qsbl90LG9fdCxzX3QsbF90LGNfdCxZMGUsZF90LHVfdCxwX3QsaF90LFowZSxmX3QsbV90LFJnLGdfdCxiX3Qsdl90LFgwZSx4X3QseV90LHdfdCxNX3Qsa190LFNfdCx6X3QsQ190LFRfdCxRMGUsX190LExfdCxKMGUsQV90LERfdCxFX3QsSzBlLCRfdCxJX3QsUF90LE5fdCxGX3QsZTRlLE9fdCxkRSx0NGUsUl90LEJfdCxIX3QscV90LGpfdCxyNGUsVl90LFVfdCxXX3QsR190LFlfdCxpNGUsWl90LFhfdCxRX3QsSl90LEtfdCxJRCxlTHQsdEx0LHJMdCxpTHQsYUx0LGE0ZSxuTHQsbjRlLG9MdCxzTHQsbEx0LFBELGNMdCxkTHQsdUx0LG80ZSxwTHQsczRlLGhMdCxmTHQsbUx0LGdMdCxiTHQsdkx0LGw0ZSx4THQseUx0LGM0ZSx3THQsZDRlLE1MdCx1NGUsa0x0LFNMdCxwNGUsekx0LGg0ZSxDTHQsVEx0LF9MdCxMTHQsQUx0LERMdCxFTHQsJEx0LElMdCxmNGUsUEx0LE5MdCxORCxGTHQsT0x0LG00ZSxSTHQsQkx0LEhMdCxnNGUscUx0LGpMdCxWTHQsVUx0LGI0ZSxXTHQsR0x0LFlMdCxaTHQsWEx0LHY0ZSxRTHQsSkx0LEtMdCxGRCxlQXQsdEF0LHJBdCxpQXQsYUF0LG5BdCxPRCxvQXQsc0F0LGxBdCx4NGUsY0F0LHk0ZSxkQXQsdUF0LHBBdCxoQXQsdzRlLGZBdCxNNGUsbUF0LGdBdCxrNGUsYkF0LHZBdCxTNGUseEF0LHlBdCx3QXQsTUF0LHo0ZSxrQXQsU0F0LHpBdCxDQXQsZWIsVEF0LHVFLF9BdCxMQXQsQUF0LERBdCxDNGUsRUF0LFQ0ZSwkQXQsSUF0LFBBdCxOQXQsQmcsRkF0LE9BdCxSQXQsSGcsQkF0LEhBdCxxQXQsXzRlLGpBdCxWQXQsUkQsVUF0LFdBdCxHQXQsWUF0LEw0ZSxaQXQsWEF0LFFBdCxBNGUsSkF0LEtBdCxlRHQsdER0LHJEdCxENGUsaUR0LEJELGFEdCxuRHQsb0R0LHNEdCxsRHQsY0R0LEU0ZSxkRHQsJDRlLHVEdCxJNGUscER0LGhEdCxQNGUsZkR0LHBFLE40ZSxtRHQsZ0R0LGJEdCxGNGUsdkR0LHhEdCxoRSxPNGUseUR0LHdEdCxNRHQsa0R0LE9wLFNEdCx6RHQsQ0R0LFREdCxSNGUsX0R0LExEdCxBRHQsQjRlLEREdCxFRHQsJER0LElEdCxINGUsUER0LE5EdCxGRHQsT0R0LFJEdCxIRCxCRHQsSER0LHRiLHFEdCxxNGUsakR0LGo0ZSxWRHQsVUR0LFdEdCxHRHQsVjRlLFlEdCxaRHQsWER0LFFEdCxVNGUsSkR0LEtEdCxlRXQsVzRlLHRFdCxyRXQsaUV0LGFFdCxHNGUsbkV0LG9FdCxzRXQsWTRlLGxFdCxjRXQsZEV0LHJiLHVFdCxwRXQsWjRlLGhFdCxYNGUsZkV0LFE0ZSxtRXQsSjRlLGdFdCxiRXQsSzRlLHZFdCx4RXQseUV0LHdFdCxNRXQsa0V0LGUzZSxTRXQsekV0LHQzZSxDRXQsVEV0LHIzZSxfRXQsTEV0LEFFdCxpM2UsREV0LEVFdCwkRXQsSUV0LFBFdCxScCxORXQsRkV0LE9FdCxSRXQsQkV0LEhFdCxxRXQsakV0LFZFdCxVRXQsV0V0LEdFdCxZRXQsWkV0LFhFdCxRRXQsSkV0LGEzZSxLRXQsZSR0LHQkdCxyJHQsbjNlLGkkdCxhJHQsbiR0LHFnLG8kdCxzJHQsbCR0LGMkdCxkJHQsbzNlLHUkdCxpYixwJHQsaCR0LGYkdCxzM2UsbSR0LGckdCxiJHQsdiR0LGwzZSx4JHQseSR0LGMzZSx3JHQsTSR0LGskdCxkM2UsUyR0LHokdCx1M2UsQyR0LHAzZSxUJHQsXyR0LEwkdCxBJHQsRCR0LGgzZSxFJHQsJCR0LEkkdCxmM2UsUCR0LE4kdCxGJHQsTyR0LFIkdCxCJHQsSCR0LG0zZSxxJHQsZzNlLGokdCxiM2UsViR0LHFELFUkdCxXJHQsdjNlLEckdCx4M2UsWSR0LHkzZSxaJHQsWCR0LFEkdCxKJHQsSyR0LGVJdCx3M2UsdEl0LE0zZSxySXQsaUl0LGFJdCxuSXQsb0l0LGszZSxzSXQsUzNlLGxJdCx6M2UsY0l0LEMzZSxkSXQsdUl0LHBJdCxoSXQsVDNlLGZJdCxtSXQsakQsZ0l0LGJJdCxfM2Usdkl0LHhJdCx5SXQsd0l0LEwzZSxNSXQsa0l0LFNJdCx6SXQsQTNlLENJdCxIcCxUSXQsX0l0LEQzZSxMSXQsRTNlLEFJdCxESXQsRUl0LFZELCRJdCxJSXQsUEl0LCQzZSxOSXQsSTNlLEZJdCxQM2UsT0l0LE4zZSxSSXQsQkl0LEhJdCxxSXQsakl0LFZJdCxVSXQsVUQsV0l0LEdJdCxZSXQsWkl0LFhJdCxGM2UsUUl0LEpJdCxLSXQsZVB0LHRQdCxyUHQsTzNlLGlQdCxhUHQsUjNlLG5QdCxvUHQsV0Qsc1B0LGxQdCxjUHQsYWIsZFB0LHVQdCxwUHQsQjNlLGhQdCxIM2UsZlB0LG1QdCxnUHQsYlB0LHZQdCxxM2UseFB0LHlQdCx3UHQsTVB0LGtQdCxHRCxTUHQselB0LENQdCxUUHQsX1B0LGozZSxMUHQsVjNlLEFQdCxEUHQsVTNlLEVQdCxXM2UsJFB0LEczZSxJUHQsWTNlLFBQdCxOUHQsWjNlLEZQdCxPUHQsUlB0LEJQdCxIUHQscVB0LENacixqUHQ9cCgoKT0+e3pacj0iZmFzIixldXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMCIsaWNvbjpbMzIwLDUxMixbXSwiMzAiLCJNMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMnMxNjAgNzEuNiAxNjAgMTYwbDAgMTI4YzAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDA4LjQgMCAzMjBMMCAxOTJ6TTE2MCA5NmMtNTMgMC05NiA0My05NiA5NmwwIDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZ6Il19LHR1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiIxIixpY29uOlsyNTYsNTEyLFtdLCIzMSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNjQgMCAwIDMyMC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxydXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiMiIsaWNvbjpbMzg0LDUxMixbXSwiMzIiLCJNNDggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTcxIDBjNjAuMiAwIDEwOSA0OC44IDEwOSAxMDkgMCA0My44LTI2LjIgODMuMy02Ni40IDEwMC40bC0xMzkuMSA1OUMxMTkgMzE1LjQgOTYgMzUwLjIgOTYgMzg4LjdsMCAyNy4zIDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC01OS4zYzAtNjQuMiAzOC40LTEyMi4yIDk3LjUtMTQ3LjNsMTM5LjEtNTljMTYuNi03LjEgMjcuNC0yMy40IDI3LjQtNDEuNCAwLTI0LjktMjAuMi00NS00NS00NUw4MCA5NkM2Mi4zIDk2IDQ4IDgxLjcgNDggNjR6Il19LGl1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiIzIixpY29uOlszMjAsNTEyLFtdLCIzMyIsIk04MCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTEyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDE2MCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4IDAgMzguMi0xNi44IDcyLjUtNDMuMyA5NiAyNi42IDIzLjUgNDMuMyA1Ny44IDQzLjMgOTYgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0TDgwIDI4OHoiXX0sYXV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjQiLGljb246WzM4NCw1MTIsW10sIjM0IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC0yMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMjQtMTkyIDAgMC0yMjR6Il19LG51dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiI1IixpY29uOlszMjAsNTEyLFtdLCIzNSIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMCAwIDExMiAxMjAgMGM3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNlMyNTkuMSA0ODAgMTg0IDQ4MEwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTUyIDBjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJMMzIgMjcyYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0eiJdfSxvdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiNiIsaWNvbjpbMzg0LDUxMixbXSwiMzYiLCJNMjU2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04OCAwYy00OC42IDAtODggMzkuNC04OCA4OGwwIDMyLjJjMjIuOS0xNS4zIDUwLjQtMjQuMiA4MC0yNC4ybDQ4IDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRTMjg3LjUgNDgwIDIwOCA0ODBsLTQ4IDBDODAuNSA0ODAgMTYgNDE1LjUgMTYgMzM2bDAtMTUyQzE2IDEwMC4xIDg0LjEgMzIgMTY4IDMybDg4IDB6TTgwIDMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwYy00NC4yIDAtODAgMzUuOC04MCA4MHoiXX0sc3V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IjciLGljb246WzMyMCw1MTIsW10sIjM3IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMjU2IDBjMTEuNSAwIDIyIDYuMSAyNy43IDE2LjFzNS43IDIyLjItLjEgMzIuMWwtMjI0IDM4NGMtOC45IDE1LjMtMjguNSAyMC40LTQzLjggMTEuNXMtMjAuNC0yOC41LTExLjUtNDMuOEwyMzIuMyA5NiAzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0eiJdfSxsdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiOCIsaWNvbjpbMzIwLDUxMixbXSwiMzgiLCJNMzA0IDE2MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtMzIgMGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjggMCAzNC42IDEzLjcgNjYgMzYgODktMzEuNSAyMy4zLTUyIDYwLjgtNTIgMTAzIDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDY0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC00Mi4yLTIwLjUtNzkuNy01Mi0xMDMgMjIuMy0yMyAzNi01NC40IDM2LTg5ek0xNzYuMSAyODhsMTUuOSAwYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0bDQ4LjEgMHptMC02NEwxNDQgMjI0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTM1LjMgMjguNy02NCA2NC02NGwzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMzUuMy0yOC42IDY0LTY0IDY0eiJdfSxjdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiOSIsaWNvbjpbMzg0LDUxMixbXSwiMzkiLCJNMjA4IDMyMGMyOS42IDAgNTcuMS04LjkgODAtMjQuMmwwIDMyLjJjMCA0OC42LTM5LjQgODgtODggODhMOTYgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEwNCAwYzgzLjkgMCAxNTItNjguMSAxNTItMTUybDAtMTUyLjFDMzUxLjkgOTYuNCAyODcuNSAzMiAyMDggMzJsLTQ4IDBDODAuNSAzMiAxNiA5Ni41IDE2IDE3NlM4MC41IDMyMCAxNjAgMzIwbDQ4IDB6bTgwLTE0NGMwIDQ0LjItMzUuOCA4MC04MCA4MGwtNDggMGMtNDQuMiAwLTgwLTM1LjgtODAtODBzMzUuOC04MCA4MC04MGw0OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgweiJdfSxRQT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb2xsYXItc2lnbiIsaWNvbjpbMzIwLDUxMixbMTI4MTc4LDYxNzgxLCJkb2xsYXIiLCJ1c2QiXSwiMjQiLCJNMTM2IDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCA1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xMTQuOSAwYy0yNC45IDAtNDUuMSAyMC4yLTQ1LjEgNDUuMSAwIDIyLjUgMTYuNSA0MS41IDM4LjcgNDQuN2w5MS42IDEzLjFjNTMuOCA3LjcgOTMuNyA1My43IDkzLjcgMTA4IDAgNjAuMy00OC45IDEwOS4xLTEwOS4xIDEwOS4xbC0xMC45IDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTcyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTMwLjkgMGMyNC45IDAgNDUuMS0yMC4yIDQ1LjEtNDUuMSAwLTIyLjUtMTYuNS00MS41LTM4LjctNDQuN2wtOTEuNi0xMy4xQzU1LjkgMjczLjUgMTYgMjI3LjQgMTYgMTczLjEgMTYgMTEyLjkgNjQuOSA2NCAxMjUuMSA2NGwxMC45IDAgMC00MHoiXX0sZHV0PVFBLHV1dD1RQSxwdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG9nIixpY29uOls1NzYsNTEyLFsxMjgwMjFdLCJmNmQzIiwiTTMyIDExMmMxNi42IDAgMzAuMiAxMi42IDMxLjggMjguN2wuMyA2LjZDNjUuOCAxNjMuNCA3OS40IDE3NiA5NiAxNzZsMTc5LjEgMCAxNDAuOSA2MC40IDAgMjQzLjZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTMxLjNDMjk2IDM2MSAyNjguOCAzNjggMjQwIDM2OHMtNTYtNy04MC0xOS4zTDE2MCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjQ1LjZjLTM3LjMtMTMuMi02NC00OC42LTY0LTkwLjQgMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1NS44LTMyYzcuNyAwIDE0LjkgMy42IDE5LjYgOS44TDM5MiAwIDQ0NC4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMUw0OTYgMzIgNTUyIDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjRjMCA0NC4yLTM1LjggODAtODAgODBsLTY0IDAtNyAyOC0xMjQuNy01My40IDMxLjYtMTQ3LjJDMzM0LjMtMjMuOSAzNDQuMi0zMiAzNTUuOC0zMnpNNDQ4IDQ0YTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHoiXX0saHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1vdmluZyIsaWNvbjpbNjQwLDUxMixbXSwiZjRkZiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDI0YzAgNDguNiAzOS40IDg4IDg4IDg4IDI1LjIgMCA0OC0xMC42IDY0LTI3LjYgMTYgMTcgMzguOCAyNy42IDY0IDI3LjYgNDAuMyAwIDc0LjItMjcuMSA4NC43LTY0bDEzNC42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NCA0MyAwIDc4LjktMzAuOSA4Ni41LTcxLjcgMjAtMTAuOCAzMy41LTMyIDMzLjUtNTYuM2wwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDU3NiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTQ4MCAxOTJsNTAuNyAwIDQ1LjMgNDUuMyAwIDUwLjctOTYgMCAwLTk2ek04OCAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0zOTIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjE2IDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LEJvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3RhdGUiLGljb246WzUxMiw1MTIsWzEyODI2MCwic3luYy1hbHQiXSwiZjJmMSIsIk00ODAuMSAxOTJsNy45IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xNDRjMC05LjctNS44LTE4LjUtMTQuOC0yMi4yUzQ3Ny45IC4yIDQ3MSA3TDQxOS4zIDU4LjhDMzc1IDIyLjEgMzE4IDAgMjU2IDAgMTI3IDAgMjAuMyA5NS40IDIuNiAyMTkuNSAuMSAyMzcgMTIuMiAyNTMuMiAyOS43IDI1NS43czMzLjctOS43IDM2LjItMjcuMUM3OS4yIDEzNS41IDE1OS4zIDY0IDI1NiA2NCAzMDAuNCA2NCAzNDEuMiA3OSAzNzMuNyAxMDQuM0wzMjcgMTUxYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yUzMzNC4zIDE5MiAzNDQgMTkybDEzNi4xIDB6bTI5LjQgMTAwLjVjMi41LTE3LjUtOS43LTMzLjctMjcuMS0zNi4ycy0zMy43IDkuNy0zNi4yIDI3LjFjLTEzLjMgOTMtOTMuNCAxNjQuNS0xOTAuMSAxNjQuNS00NC40IDAtODUuMi0xNS0xMTcuNy00MC4zTDE4NSAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNzcuNyAzMjAgMTY4IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDg4YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDUxMS44IDQxIDUwNWw1MS44LTUxLjhDMTM3IDQ4OS45IDE5NCA1MTIgMjU2IDUxMiAzODUgNTEyIDQ5MS43IDQxNi42IDUwOS40IDI5Mi41eiJdfSxmdXQ9Qm9lLEhvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtbWludXMiLGljb246WzQ0OCw1MTIsWzYxNzY3LCJtaW51cy1zcXVhcmUiXSwiZjE0NiIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03MiAyMDBsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxtdXQ9SG9lLGd1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1qdXN0aWZ5IixpY29uOls0NDgsNTEyLFtdLCJmMDM5IiwiTTQ0OCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTAgMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDQ4IDQ0OGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6Il19LGJ1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1jaGVjayIsaWNvbjpbNDQ4LDUxMixbXSwiZjI3NCIsIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTIyIDE2MS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wxODkuMSAzMzEuMiAxMzcgMjc5LjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjkgNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNDcuMyAxOTUuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0scW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Uta2lzcyIsaWNvbjpbNTEyLDUxMixbMTI4NTM1LCJraXNzIl0sImY1OTYiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCAyODhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptLTk2LTgwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHZ1dD1xb2UseHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpdGNoZW4tc2V0IixpY29uOls1NzYsNTEyLFtdLCJlNTFhIiwiTTI0MCAxNDRhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwem00NC40IDMyQzI2OS45IDI0MC4xIDIxMi41IDI4OCAxNDQgMjg4IDY0LjUgMjg4IDAgMjIzLjUgMCAxNDRTNjQuNSAwIDE0NCAwYzY4LjUgMCAxMjUuOSA0Ny45IDE0MC40IDExMmw3MS44IDBjOC44LTkuOCAyMS42LTE2IDM1LjgtMTZsMTA0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTEwNCAwYy0xNC4yIDAtMjctNi4yLTM1LjgtMTZsLTcxLjggMHpNMTQ0IDgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00MDAgMjQwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOCA5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5NiAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjg4IDQ2NGwwLTExMiAyMjQgMCAwIDExMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4ek00OCAzMjBsMTI4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE2IDBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjMC04LjggNy4yLTE2IDE2LTE2em0xMjggNjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDAgMCAzMiAxNiAwek0yNCA0NjRsMTc2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSx5dXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG5hIixpY29uOlszODQsNTEyLFsxMjk1MTZdLCJmNDcxIiwiTTM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgNTcuOC0yNC40IDEwNC44LTU3LjQgMTQ0LjUtMjQuMSAyOC45LTUzLjggNTUuMS04My42IDc5LjUgMjkuOCAyNC41IDU5LjUgNTAuNiA4My42IDc5LjUgMzMgMzkuNiA1Ny40IDg2LjcgNTcuNCAxNDQuNSAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkw2NCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0OTcuNyAwIDQ4MEMwIDQyMi4yIDI0LjQgMzc1LjIgNTcuNCAzMzUuNSA4MS41IDMwNi42IDExMS4yIDI4MC41IDE0MSAyNTYgMTExLjIgMjMxLjUgODEuNSAyMDUuNCA1Ny40IDE3Ni41IDI0LjQgMTM2LjggMCA4OS44IDAgMzIgMCAxNC4zIDE0LjMgMCAzMiAwUzY0IDE0LjMgNjQgMzJsMjU2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI4My41IDM4NGwtMTgyLjkgMGMtOC4yIDEwLjUtMTUuMSAyMS4xLTIwLjYgMzJsMjI0LjIgMGMtNS42LTEwLjktMTIuNS0yMS41LTIwLjYtMzJ6TTIzOCAzMzZjLTE0LjMtMTMtMjkuOC0yNS44LTQ2LTM5LTE2LjIgMTMuMS0zMS43IDI2LTQ2IDM5bDkyIDB6TTEwMC41IDEyOGwxODIuOSAwYzguMi0xMC41IDE1LjEtMjEuMSAyMC42LTMyTDc5LjkgOTZjNS42IDEwLjkgMTIuNSAyMS41IDIwLjYgMzJ6TTE0NiAxNzZjMTQuMyAxMyAyOS44IDI1LjggNDYgMzkgMTYuMi0xMy4xIDMxLjctMjYgNDYtMzlsLTkyIDB6Il19LHd1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1yZWFjaGluZyIsaWNvbjpbMzg0LDUxMixbXSwiZTU5ZCIsIk0yNTYgNjRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek0xNTIuOSAxNjkuM2MtMjMuNy04LjQtNDQuNS0yNC4zLTU4LjgtNDUuOEw3NC42IDk0LjJDNjQuOCA3OS41IDQ1IDc1LjYgMzAuMyA4NS40UzExLjYgMTE1IDIxLjQgMTI5LjhMNDAuOSAxNTljMTguMSAyNy4xIDQyLjggNDguNCA3MS4xIDYyLjRMMTEyIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMzIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTguNGMyOS4xLTE0LjIgNTQuNC0zNi4yIDcyLjctNjQuMmwxOC4yLTI3LjljOS42LTE0LjggNS40LTM0LjYtOS40LTQ0LjNzLTM0LjYtNS41LTQ0LjMgOS40TDI5MSAxMjIuNGMtMjEuOCAzMy40LTU4LjkgNTMuNi05OC44IDUzLjYtMTIuNiAwLTI0LjktMi0zNi42LTUuOC0uOS0uMy0xLjgtLjctMi43LS45eiJdfSxqZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXN0ZSIsaWNvbjpbNTEyLDUxMixbImZpbGUtY2xpcGJvYXJkIl0sImYwZWEiLCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTEyIDAgMC0yMjRjMC02MS45IDUwLjEtMTEyIDExMi0xMTJsNjQgMCAwLTQ4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTI0OCAxMTJsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0em00MCA0OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNjUuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM2wtNTguNS01OC41Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43TDI4OCAxNjB6Il19LE11dD1qZyxrdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWV0ZW9yIixpY29uOls1MTIsNTEyLFs5NzMyXSwiZjc1MyIsIk00OTMuNyAuOWwtMTk0LjIgNzQuNyAyLjMtMjkuM2MxLTEyLjgtMTIuOC0yMS41LTI0LTE1LjFMMTAxLjMgMTMzLjRDMzguNiAxNjkuNyAwIDIzNi42IDAgMzA5IDAgNDIxLjEgOTAuOSA1MTIgMjAzIDUxMiAyNzUuNCA1MTIgMzQyLjMgNDczLjQgMzc4LjYgNDEwLjdMNDgwLjggMjM0LjNjNi41LTExLjEtMi4yLTI1LTE1LjEtMjRsLTI5LjMgMi4zIDc0LjctMTk0LjJjLjYtMS41IC45LTMuMiAuOS00LjggMC03LjUtNi0xMy41LTEzLjUtMTMuNS0xLjcgMC0zLjMgLjMtNC44IC45ek0xOTIgMTkyYTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnptMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNiA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6Il19LGpvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZWFycyIsaWNvbjpbNjQwLDUxMixbImNvZ3MiXSwiZjA4NSIsIk00MTUuOSAyMTAuNWMxMi4yLTMuMyAyNSAyLjUgMzAuNSAxMy44TDQ2NSAyNjEuOWMxMC4zIDEuNCAyMC40IDQuMiAyOS45IDguMWwzNS0yMy4zYzEwLjUtNyAyNC40LTUuNiAzMy4zIDMuM2wxOS4yIDE5LjJjOC45IDguOSAxMC4zIDIyLjkgMy4zIDMzLjNsLTIzLjMgMzQuOWMxLjkgNC43IDMuNiA5LjYgNSAxNC43IDEuNCA1LjEgMi4zIDEwLjEgMyAxNS4ybDM3LjcgMTguNmMxMS4zIDUuNiAxNy4xIDE4LjQgMTMuOCAzMC41bC03IDI2LjJjLTMuMyAxMi4xLTE0LjYgMjAuMy0yNy4yIDE5LjVsLTQyLTIuN2MtNi4zIDguMS0xMy42IDE1LjYtMjEuOSAyMmwyLjcgNDEuOWMuOCAxMi42LTcuNCAyNC0xOS41IDI3LjJsLTI2LjIgN2MtMTIuMiAzLjMtMjQuOS0yLjUtMzAuNS0xMy44bC0xOC42LTM3LjZjLTEwLjMtMS40LTIwLjQtNC4yLTI5LjktOC4xbC0zNSAyMy4zYy0xMC41IDctMjQuNCA1LjYtMzMuMy0zLjNsLTE5LjItMTkuMmMtOC45LTguOS0xMC4zLTIyLjgtMy4zLTMzLjNsMjMuMy0zNWMtMS45LTQuNy0zLjYtOS42LTUtMTQuN3MtMi4zLTEwLjItMy0xNS4ybC0zNy43LTE4LjZjLTExLjMtNS42LTE3LTE4LjQtMTMuOC0zMC41bDctMjYuMmMzLjMtMTIuMSAxNC42LTIwLjMgMjcuMi0xOS41bDQxLjkgMi43YzYuMy04LjEgMTMuNi0xNS42IDIxLjktMjJsLTIuNy00MS44Yy0uOC0xMi42IDcuNC0yNCAxOS41LTI3LjJsMjYuMi03ek00NDguNCAzNDBhNDQgNDQgMCAxIDAgLjEgODggNDQgNDQgMCAxIDAgLS4xLTg4ek0yMjQuOS00NS41bDI2LjIgN2MxMi4xIDMuMyAyMC4zIDE0LjcgMTkuNSAyNy4ybC0yLjcgNDEuOGM4LjMgNi40IDE1LjYgMTMuOCAyMS45IDIybDQyLTIuN2MxMi41LS44IDIzLjkgNy40IDI3LjIgMTkuNWw3IDI2LjJjMy4yIDEyLjEtMi41IDI0LjktMTMuOCAzMC41bC0zNy43IDE4LjZjLS43IDUuMS0xLjcgMTAuMi0zIDE1LjJzLTMuMSAxMC01IDE0LjdsMjMuMyAzNWM3IDEwLjUgNS42IDI0LjQtMy4zIDMzLjNMMzA3LjMgMjYyYy04LjkgOC45LTIyLjggMTAuMy0zMy4zIDMuM0wyMzkgMjQyYy05LjUgMy45LTE5LjYgNi43LTI5LjkgOC4xbC0xOC42IDM3LjZjLTUuNiAxMS4zLTE4LjQgMTctMzAuNSAxMy44bC0yNi4yLTdjLTEyLjItMy4zLTIwLjMtMTQuNy0xOS41LTI3LjJsMi43LTQxLjljLTguMy02LjQtMTUuNi0xMy44LTIxLjktMjJsLTQyIDIuN2MtMTIuNSAuOC0yMy45LTcuNC0yNy4yLTE5LjVsLTctMjYuMmMtMy4yLTEyLjEgMi41LTI0LjkgMTMuOC0zMC41bDM3LjctMTguNmMuNy01LjEgMS43LTEwLjEgMy0xNS4yIDEuNC01LjEgMy0xMCA1LTE0LjdMNTUuMSA0Ni41Yy03LTEwLjUtNS42LTI0LjQgMy4zLTMzLjNMNzcuNi02YzguOS04LjkgMjIuOC0xMC4zIDMzLjMtMy4zbDM1IDIzLjNjOS41LTMuOSAxOS42LTYuNyAyOS45LTguMWwxOC42LTM3LjZjNS42LTExLjMgMTguMy0xNyAzMC41LTEzLjh6TTE5Mi40IDg0YTQ0IDQ0IDAgMSAwIDAgODggNDQgNDQgMCAxIDAgMC04OHoiXX0sU3V0PWpvZSx6dXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUtcGx1cyIsaWNvbjpbNTc2LDUxMixbNTg2MDZdLCJlNDk0IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTE2LTIwOGwwIDQ4IDQ4IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNDggMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LEN1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpY2ljbGVzIixpY29uOls1MTIsNTEyLFtdLCJmN2FkIiwiTTc1LjggMzA0LjhMMSAzNS43Qy4zIDMzLjIgMCAzMC43IDAgMjguMiAwIDEyLjYgMTIuNiAwIDI4LjIgMEw0ODIuNCAwYzE2LjMgMCAyOS42IDEzLjIgMjkuNiAyOS42IDAgMS42LS4xIDMuMy0uNCA0LjlMNDM0LjYgNDk2LjFjLTEuNSA5LjItOS41IDE1LjktMTguOCAxNS45LTkuMiAwLTE3LjEtNi42LTE4LjctMTUuNkwzMzYgMTYwIDMwNy4yIDMwMy45Yy0xLjkgOS4zLTEwLjEgMTYuMS0xOS42IDE2LjEtOS4yIDAtMTcuMi02LjItMTkuNC0xNS4xTDI0MCAxOTIgMjEwLjYgMzY4LjJjLTEuNSA5LjEtOS40IDE1LjgtMTguNiAxNS44cy0xNy4xLTYuNy0xOC42LTE1LjhMMTQ0IDE5MiAxMTUuOSAzMDQuM2MtMi4zIDkuMi0xMC42IDE1LjctMjAuMSAxNS43LTkuMyAwLTE3LjUtNi4yLTIwLTE1LjJ6Il19LFR1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10cmVuZC11cCIsaWNvbjpbNTc2LDUxMixbXSwiZTA5OCIsIk0zODQgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODIuNy0xNjkuNCAxNjkuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMMTkyIDI2OS4zIDU0LjYgNDA2LjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBMMzIwIDMwNi43IDQ2Ni43IDE2MCAzODQgMTYweiJdfSxfdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGV4YWdvbi1ub2Rlcy1ib2x0IixpY29uOls1NzYsNTEyLFtdLCJlNjlhIiwiTTI0OCAxMDYuNmMxOC45LTkgMzItMjguMyAzMi01MC42YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2YzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTIuOCAxLjMtNS41IDIuOS04IDQuN2wtODAuMS00NS44YzEuNi0yMC44LTguNi00MS42LTI3LjktNTIuOEM1Ny4yIDk2IDIzIDEwNS4yIDcuNSAxMzJTMS4yIDE5MyAyOCAyMDguNWMxLjMgLjggMi42IDEuNSA0IDIuMWwwIDkwLjhjLTEuMyAuNi0yLjcgMS4zLTQgMi4xQzEuMiAzMTktOCAzNTMuMiA3LjUgMzgwUzU3LjIgNDE2IDg0IDQwMC41YzE5LjMtMTEuMSAyOS40LTMyIDI3LjgtNTIuOGw1MC41LTI4LjljLTExLjUtMTEuMi0xOS45LTI1LjYtMjMuOC00MS43TDg4IDMwNi4xYy0yLjYtMS44LTUuMi0zLjMtOC00LjdsMC05MC44YzIuOC0xLjMgNS41LTIuOSA4LTQuN2w4MC4xIDQ1LjhjLS4xIDEuNC0uMiAyLjgtLjIgNC4zYzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTE4LjkgOS0zMiAyOC4zLTMyIDUwLjZjMCAzMC45IDI1LjEgNTYgNTYgNTZjMzAuNyAwIDU1LjYtMjQuNyA1Ni01NS4yYy03LjUtMTIuOS0xMy41LTI2LjgtMTcuNi00MS41Yy00LjItNC05LjEtNy4zLTE0LjQtOS45bDAtOTguOGMyLjgtMS4zIDUuNS0yLjkgOC00LjdsMTAuNSA2YzUuNS0xNS4zIDEzLjEtMjkuNSAyMi40LTQyLjVsLTkuMS01LjJjLjEtMS40IC4yLTIuOCAuMi00LjNjMC0yMi4zLTEzLjEtNDEuNi0zMi01MC42bDAtOTguOHpNNDQwLjUgMTMyQzQyNSAxMDUuMiAzOTAuOCA5NiAzNjQgMTExLjVjLTE5LjMgMTEuMS0yOS40IDMyLTI3LjggNTIuOGwtNTAuNiAyOC45YzExLjUgMTEuMiAxOS45IDI1LjYgMjMuOCA0MS43TDM2MCAyMDUuOWMuNCAuMyAuOCAuNiAxLjMgLjljMjEuNy05LjUgNDUuNi0xNC44IDcwLjgtMTQuOGMyIDAgNCAwIDUuOSAuMWMxMi4xLTE3LjMgMTMuOC00MC42IDIuNi02MC4xek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNDcuOS0yMjVjNC4zIDMuNyA1LjQgOS45IDIuNiAxNC45TDQ1Mi40IDM1NmwzNS42IDBjNS4yIDAgOS44IDMuMyAxMS40IDguMnMtLjEgMTAuMy00LjIgMTMuNGwtOTYgNzJjLTQuNSAzLjQtMTAuOCAzLjItMTUuMS0uNnMtNS40LTkuOS0yLjYtMTQuOUw0MTEuNiAzODAgMzc2IDM4MGMtNS4yIDAtOS44LTMuMy0xMS40LTguMnMuMS0xMC4zIDQuMi0xMy40bDk2LTcyYzQuNS0zLjQgMTAuOC0zLjIgMTUuMSAuNnoiXX0sTHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InF1ZXN0aW9uIixpY29uOlszMjAsNTEyLFsxMDA2NywxMDA2OCw2MTczNl0sIjNmIiwiTTY0IDE2MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgNDIuNy0yNy45IDc4LjktNjYuNSA5MS40LTI4LjQgOS4yLTYxLjUgMzUuMy02MS41IDc2LjZsMCAyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjRjMC0xLjcgLjYtNC4xIDMuNS03LjMgMy0zLjMgNy45LTYuNSAxMy43LTguNCA2NC4zLTIwLjcgMTEwLjgtODEgMTEwLjgtMTUyLjMgMC04OC40LTcxLjYtMTYwLTE2MC0xNjBTMCA3MS42IDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6bTk2IDM1MmMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MC00MCAxNy45LTQwIDQwIDE3LjkgNDAgNDAgNDB6Il19LEF1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ib3VuZCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmOSIsIk02NCAzMkM2NCAxNC4zIDQ5LjcgMCAzMiAwUzAgMTQuMyAwIDMyTDAgMjEzLjljMCAxNC4yIDUuMSAyNy45IDE0LjMgMzguN0w5OS42IDM1MiA5NiAzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMuNiAwIDg1LjMtOTkuNWM5LjItMTAuOCAxNC4zLTI0LjUgMTQuMy0zOC43TDU3NiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMi44LTY5LjMgOTIuNGMtNS43IDcuNi0xNi4xIDkuNi0yNC4yIDQuOC05LjctNS43LTEyLjEtMTguNy01LjEtMjcuNUw0NDEgMTgwYzEwLjgtMTMuNSA4LjktMzMuMy00LjQtNDQuNXMtMzMtOS44LTQ0LjUgMy4ybC00Ni43IDUyLjVDMzI5IDIwOS43IDMyMCAyMzMuNCAzMjAgMjU4LjFsMCA5My45LTY0IDAgMC05My45YzAtMjQuNi05LTQ4LjQtMjUuNC02Ni44bC00Ni43LTUyLjVjLTExLjUtMTMtMzEuMy0xNC40LTQ0LjUtMy4yUzEyNC4yIDE2Ni40IDEzNSAxODBsMjcuNiAzNC41YzcgOC44IDQuNyAyMS44LTUuMSAyNy41LTguMSA0LjgtMTguNiAyLjctMjQuMi00LjhMNjQgMTQ0LjggNjQgMzJ6bTY0IDQ0OGwwIDMyIDEyOCAwIDAtMzIgNjQgMCAwIDMyIDEyOCAwIDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw5NiA0MzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMHoiXX0sRHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWx1Z2dhZ2UiLGljb246WzUxMiw1MTIsW10sImU1NTQiLCJNMjY0LjMgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0tOCAxODEuM2wtMjIuNiAyMi42Yy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCAzNy41YzAgMTIuMy03IDIzLTE3LjIgMjguNC0uOSA0LjItMi40IDguNC00LjMgMTIuM2wtNjkgMTM4LjEtLjgtLjQtMjcuNyA1NS4zYy05LjkgMTkuOC0zMy45IDI3LjgtNTMuNyAxNy45TDE0LjYgNTIxYy0xOS44LTkuOS0yNy44LTMzLjktMTcuOS01My43TDQ3LjMgMzY2LjNjOS45LTE5LjggMzMuOS0yNy44IDUzLjctMTcuOWwzMC43IDE1LjMgMjguMy01Ni42Yy4zLS42IC40LTEuMiAuNC0xLjhsMC0xNi45YzAtLjIgMC0uMyAwLS41bDAtMzcuNWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWwzNS4xLTM1LjFjMjIuOC0yMi44IDUzLjYtMzUuNiA4NS44LTM1LjYgMzYuOSAwIDcxLjggMTYuOCA5NC44IDQ1LjZMNDIyLjEgMTgwYzYuMSA3LjYgMTUuMyAxMiAyNSAxMmwzMy4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMzLjIgMGMtMjkuMiAwLTU2LjctMTMuMy03NS0zNmwtMy44LTQuNyAwIDExNS4yIDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM0w0NDggNTA3LjVjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJMMzcyIDQyOC40Yy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC02OS4zem0uMSAxNjUuOGMyLjQgMi4zIDQuOCA0LjYgNy40IDYuOGw0NiAzOS40LTIuMiA3LjZjLTQuNSAxNS43LTEyLjkgMzAtMjQuNCA0MS41bC02OC4zIDY4LjNjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDIzOCA0MjEuMWMzLjgtMy44IDYuNi04LjYgOC4xLTEzLjhMMjU2LjQgMzcxeiJdfSxWb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1hcnJvdy1kb3duIixpY29uOlszODQsNTEyLFsiZmlsZS1kb3dubG9hZCJdLCJmNTZkIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNzUgNDQxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDY0LTY0YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzIDAtODYuMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDg2LjEtMjMtMjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjR6Il19LEV1dD1Wb2UsJHV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1ib290aCIsaWNvbjpbNTc2LDUxMixbXSwiZjc1NiIsIk00MCAyNEE1NiA1NiAwIDEgMSAxNTIgMjQgNTYgNTYgMCAxIDEgNDAgMjR6bTUxLjEgODhjMjMuNSAwIDQ1LjUgMTEuMyA1OS4xIDMwLjRsNDguNyA2OC4yYzYgOC40IDE1LjcgMTMuNCAyNiAxMy40bDMxLjEgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzEuMSAwYy0zMSAwLTYwLjEtMTUtNzguMS00MC4ybC0yLjgtMy45IDAgODAuMSA0MS42IDMxLjJDMjA5LjggMzczLjMgMjI0IDQwMS44IDIyNCA0MzJsMCA4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTgwYzAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMNzAuNCAzNDguOEM0Ni4yIDMzMC43IDMyIDMwMi4yIDMyIDI3MmwwLTEwMC45QzMyIDEzOC41IDU4LjUgMTEyIDkxLjEgMTEyek0zMiA1MTJsMC0xMzIuN2MzLjEgMi43IDYuMyA1LjQgOS42IDcuOUw5NiA0MjggOTYgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyem01NDQtODhsMCA5NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTcyLTE2OCAwYy03LjEgMC0xMy44LTMuMS0xOC40LTguNnMtNi41LTEyLjYtNS4zLTE5LjZsMzAuNy0xNzYuNy02My4xLTEzNy42IDAgNzJjLTUuMi0xLTEwLjUtMS42LTE2LTEuNmwtMzIgMCAwLTEyMGMwLTMwLjkgMjUuMS01NiA1Ni01Nkw1MjAgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDM2OHpNMjg4IDMzNmM1LjUgMCAxMC44LS42IDE2LTEuNkwzMDQgNTIwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTg0IDMyIDB6Il19LEl1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2N1c3QiLGljb246WzU3Niw1MTIsW10sImU1MjAiLCJNMzI4IDMyYzEzNyAwIDI0OCAxMTEgMjQ4IDI0OGwwIDQwLS40IDguMkM1NzEuNSAzNjguNSA1MzcuNCA0MDAgNDk2IDQwMGwtMTIuMyAwIDI1LjIgNDQuMWM2LjYgMTEuNSAyLjYgMjYuMi04LjkgMzIuOHMtMjYuMiAyLjYtMzIuNy04LjlsLTM4LjgtNjcuOS04MC40IDAtNDguMiA2OS43Yy03LjUgMTAuOS0yMi41IDEzLjYtMzMuNCA2LjFzLTEzLjYtMjIuNS02LjEtMzMuNGwyOS4zLTQyLjMtNzQuNSAwLTUxLjcgNzAuMmMtNy45IDEwLjctMjIuOSAxMi45LTMzLjYgNS4xcy0xMi45LTIyLjktNS4xLTMzLjZsNDAuNS01NS00My0xNi40LTc5LjMgMTAwLjVjLTguMiAxMC40LTIzLjMgMTIuMi0zMy43IDRzLTEyLjItMjMuMy00LTMzLjdsMjQwLTMwNCAyLjEtMi4zYzUuMi01LjEgMTIuNS03LjUgMTkuOS02LjYgOC40IDEuMSAxNS42IDYuNSAxOC45IDE0LjNsMjEuNyA1MC43IDQwLjktNTUuNSAyLjEtMi40YzUuMS01LjMgMTIuNS04IDIwLTcuMiA4LjUgMSAxNS45IDYuNSAxOS4zIDE0LjRsNDEuOCA5Ny41IDY0LjIgMGMxMC4yIDAgMjAgMiAyOSA1LjUtMTYuNC05NC05OC4zLTE2NS41LTE5Ny0xNjUuNWwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNiAwek00ODggMjk2YTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpNNDMuNSAzMzEuMUMzNi4yIDMyMS40IDMyIDMwOS41IDMyIDI5Ni44IDMyIDI2NS41IDU3LjUgMjQwIDg4LjkgMjQwbDI3LjYgMC03Mi45IDkxLjF6TTIyNS4xIDI0MGw0OC4yIDAgMS40LTEuOS0xNi45LTM5LjUtMzIuNyA0MS41em0xMDcuOCAwbDQ2LjcgMC0xNy4yLTQwLTI5LjUgNDB6Il19LFVvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1hbHQtcmlnaHQiXSwiZjMwYiIsIk01NjYuNiAyMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTI4IDEyOGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDM5Ni45IDM4NCAzODRsMC02NC0zMzYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zMmMwLTI2LjUgMjEuNS00OCA0OC00OGwzMzYgMCAwLTY0YzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsMTI4IDEyOHoiXX0sUHV0PVVvZSxOdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZHJvcGxldCIsaWNvbjpbNTc2LDUxMixbXSwiZTU4YyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMuMyAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMTAyLjYgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDMuMyAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTQ2LjdjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDE0Ni43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43bC01MC43IDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNNTEyIDIzNy4zbDAgNTAuNy05NiAwIDAtOTYgNTAuNyAwIDQ1LjMgNDUuM3pNMTUyIDM4NGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTIzMiA0MGE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwek0yMDggMzA0Yy0zOS44IDAtNzItMzIuMi03Mi03MiAwLTMzLjIgMzQuNS03OCA1NS44LTEwMi40IDguNy0xMCAyMy44LTEwIDMyLjUgMCAyMS4yIDI0LjQgNTUuOCA2OS4xIDU1LjggMTAyLjQgMCA0OC0zMi4yIDcyLTcyIDcyeiJdfSxGdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1ob2xkaW5nLW1lZGljYWwiLGljb246WzU3Niw1MTIsW10sImUwNWMiLCJNMjQwIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA1NiA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTU2IDAgMCA1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC01Ni01NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDU2IDAgMC01NnpNNjYuNyAzODRsNDIuNS00Mi41YzI0LTI0IDU2LjYtMzcuNSA5MC41LTM3LjVMMzUyIDMwNGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIuNiAwIDExOS43LTg4LjJjMTcuOC0xMy4xIDQyLjgtOS4zIDU1LjkgOC41czkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMzQuNyAweiJdfSxPdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1wb2ludC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJmMGE1IiwiTTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOHMxNC4zIDMyIDMyIDMybDIwOCAwIDAtNjQtMjA4IDB6TTE5MiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHptLTY0LTY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05NiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHptODgtOTZsLS42IDBjNS40IDkuNCA4LjYgMjAuMyA4LjYgMzIgMCAxMy4yLTQgMjUuNC0xMC44IDM1LjYgMjQuOSA4LjcgNDIuOCAzMi41IDQyLjggNjAuNCAwIDExLjctMy4xIDIyLjYtOC42IDMybDguNiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwbDAtNjEuN2MwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTExLjYtMTEuNkM0MjkuNSA3Ny41IDM5Ni45IDY0IDM2MyA2NGwtMjcgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4OGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtNTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDU2YzAgMzkuOC0zMi4yIDcyLTcyIDcyeiJdfSxSdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsY3VsYXRvciIsaWNvbjpbMzg0LDUxMixbMTI4NDI1XSwiZjFlYyIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek05NiA2NGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTYgMTY4YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6bTgwIDI0YTI0IDI0IDAgMSAxIDAtNDggMjQgMjQgMCAxIDEgMCA0OHptMTI4LTI0YTI0IDI0IDAgMSAxIC00OCAwIDI0IDI0IDAgMSAxIDQ4IDB6TTg4IDM1MmEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTEyOC0yNGEyNCAyNCAwIDEgMSAtNDggMCAyNCAyNCAwIDEgMSA0OCAwem04MCAyNGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTY0IDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0yMzItMjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0eiJdfSxWZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaW51cyIsaWNvbjpbNDQ4LDUxMixbODIxMSw4NzIyLDEwMTM0LCJzdWJ0cmFjdCJdLCJmMDY4IiwiTTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LEJ1dD1WZyxXb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtei1hIixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS11cC1hbHQiXSwiZjg4MiIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyAyNS40IDI1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtODAtODB6TTI4OCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1MC43IDAtNzMuNCA3My40Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMzMDcuMSAyMjQgMzIwIDIyNGwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTAuNyAwIDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0NjEgMzIgNDQ4IDMyTDMyMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQxMi42IDI3My43QzQwNy4yIDI2Mi44IDM5Ni4xIDI1NiAzODQgMjU2cy0yMy4yIDYuOC0yOC42IDE3LjdsLTgwIDE2MGMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zIDg4LjQgMCA3LjIgMTQuM2M3LjkgMTUuOCAyNy4xIDIyLjIgNDIuOSAxNC4zczIyLjItMjcuMSAxNC4zLTQyLjlsLTgwLTE2MHpNMzg0IDM1OS42bDIwLjIgNDAuNC00MC40IDAgMjAuMi00MC40eiJdfSxIdXQ9V29lLHF1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMTMxIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDI0LjcgMzU4LjhDNDU4LjkgMzI0LjIgNDgwIDI3Ni42IDQ4MCAyMjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgMzkuMy0xNS43IDc0LjktNDEuMyAxMDAuOUwzNTYuOCAyOTFDMzczLjYgMjczLjcgMzg0IDI1MCAzODQgMjI0bDAtMTI4YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzAuMi0xNTEtMTUxem0yOTguMyA0MzRsLTQxLjQtNDEuNGMtMy4zIC4yLTYuNSAuMy05LjggLjMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRsMC0xMC4yLTQzLjYtNDMuNmMtMi44IDMuOS00LjQgOC43LTQuNCAxMy44bDAgNDBjMCA5Ny45IDczLjMgMTc4LjcgMTY4IDE5MC41bDAgNDkuNS00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDkuNWM5LjMtMS4yIDE4LjQtMyAyNy4zLTUuNHoiXX0sSkE9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBlbiIsaWNvbjpbNDQ4LDUxMixbInBlbi1zcXVhcmUiLCJwZW5jaWwtc3F1YXJlIl0sImYxNGIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMzI1LjggMTM5LjdsMTQuNCAxNC40YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC0yMy44IDIzLjgtNzEtNzEgMjMuOC0yMy44YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwek0xMTkuOSAyODlsOTEuNS05MS42IDcxIDcxLTkxLjYgOTEuNWMtNC4xIDQuMS05LjIgNy0xNC45IDguNGwtNjAuMSAxNWMtNS41IDEuNC0xMS4yLS4yLTE1LjItNC4ycy01LjYtOS43LTQuMi0xNS4ybDE1LTYwLjFjMS40LTUuNiA0LjMtMTAuOCA4LjQtMTQuOXoiXX0sanV0PUpBLFZ1dD1KQSxHb2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZC1maXN0IixpY29uOlszODQsNTEyLFs5OTk0LCJmaXN0LXJhaXNlZCJdLCJmNmRlIiwiTTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyLTY0IDAgMC0xMTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyUzk2IDQ2LjMgOTYgNjRsMCA4MC02NCAwIDAtODB6bTE5MiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2em05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptLTk2IDg4bDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjYgMTMuMiAwIDI1LjQtNCAzNS42LTEwLjggOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOCAxMS43IDAgMjIuNi0zLjEgMzItOC42bDAgOC42YzAgNTIuMy0yNS4xIDk4LjgtNjQgMTI4bDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTc4LjRjLTE3LjMtNy45LTMzLjItMTguOC00Ni45LTMyLjVMMzcuNSAzNTcuNUMxMy41IDMzMy41IDAgMzAwLjkgMCAyNjdsMC0yN2MwLTM1LjMgMjguNy02NCA2NC02NGw4OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJ6Il19LFV1dD1Hb2UsWW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtc21zIixpY29uOls1MTIsNTEyLFsic21zIl0sImY3Y2QiLCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6TTE0MC44IDE3Mi44bDE5LjIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTkuMiAwYy01LjMgMC05LjYgNC4zLTkuNiA5LjZzNC4zIDkuNiA5LjYgOS42YzIzIDAgNDEuNiAxOC42IDQxLjYgNDEuNnMtMTguNiA0MS42LTQxLjYgNDEuNmwtMjUuNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDI1LjYgMGM1LjMgMCA5LjYtNC4zIDkuNi05LjZzLTQuMy05LjYtOS42LTkuNmMtMjMgMC00MS42LTE4LjYtNDEuNi00MS42czE4LjYtNDEuNiA0MS42LTQxLjZ6bTE4OC44IDQxLjZjMC0yMyAxOC42LTQxLjYgNDEuNi00MS42bDE5LjIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMTkuMiAwYy01LjMgMC05LjYgNC4zLTkuNiA5LjZzNC4zIDkuNiA5LjYgOS42YzIzIDAgNDEuNiAxOC42IDQxLjYgNDEuNnMtMTguNiA0MS42LTQxLjYgNDEuNmwtMjUuNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDI1LjYgMGM1LjMgMCA5LjYtNC4zIDkuNi05LjZzLTQuMy05LjYtOS42LTkuNmMtMjMgMC00MS42LTE4LjYtNDEuNi00MS42em0tOTguMy0zMy44bDI0LjcgNDEuMSAyNC43LTQxLjFjMy43LTYuMiAxMS4xLTkuMSAxOC03LjJzMTEuNyA4LjIgMTEuNyAxNS40bDAgMTAyLjRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC00NC42LTguNyAxNC41Yy0yLjkgNC44LTguMSA3LjgtMTMuNyA3LjhzLTEwLjgtMy0xMy43LTcuOGwtOC43LTE0LjUgMCA0NC42YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMTAyLjRjMC03LjIgNC44LTEzLjUgMTEuNy0xNS40czE0LjMgMSAxOCA3LjJ6Il19LFd1dD1Zb2UsR3V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpbS1jYXJkIixpY29uOlszODQsNTEyLFtdLCJmN2M0IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDI1OC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgODBjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNOTYgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQwIDEyOCAwIDAtNzItOTYgMHpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDAgMC03Mi04MCAwIDAgNDB6bTI1NiAwbDAtNDAtMTI4IDAgMCA3MiA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem0wLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMCAwIDcyIDgwIDAgMC00MHoiXX0sWm9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjYWxlLWJhbGFuY2VkIixpY29uOls2NDAsNTEyLFs5ODc4LCJiYWxhbmNlLXNjYWxlIl0sImYyNGUiLCJNMzg0IDMybDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDM5OC40IDk2Yy01LjIgMjUuOC0yMi45IDQ3LjEtNDYuNCA1Ny4zbDAgMjk0LjcgMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM4NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2MCAwIDAtMjk0LjdjLTIzLjUtMTAuMy00MS4yLTMxLjYtNDYuNC01Ny4zTDEyOCA5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMjggMGMxNC42LTE5LjQgMzcuOC0zMiA2NC0zMnM0OS40IDEyLjYgNjQgMzJ6bTU1LjYgMjg4TDU4NC40IDMyMCA1MTIgMTk1LjggNDM5LjYgMzIwek01MTIgNDE2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45ek0xMjYuOCAxOTUuOEw1NC40IDMyMCAxOTkuMyAzMjAgMTI2LjggMTk1Ljh6TS45IDMzNy4xYy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xLTEwLjggNDQuOC02My4xIDc4LjktMTI2IDc4LjlTMTEuNyAzODIgLjkgMzM3LjF6Il19LFl1dD1ab2UsWG9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhciIsaWNvbjpbNTEyLDUxMixbMTI4NjY0LCJhdXRvbW9iaWxlIl0sImYxYjkiLCJNMTM1LjIgMTE3LjRsLTI2LjEgNzQuNiAyOTMuOCAwLTI2LjEtNzQuNkMzNzIuMyAxMDQuNiAzNjAuMiA5NiAzNDYuNiA5NkwxNjUuNCA5NmMtMTMuNiAwLTI1LjcgOC42LTMwLjIgMjEuNHpNMzkuNiAxOTYuOEw3NC44IDk2LjNDODguMyA1Ny44IDEyNC42IDMyIDE2NS40IDMybDE4MS4yIDBjNDAuOCAwIDc3LjEgMjUuOCA5MC42IDY0LjNsMzUuMiAxMDAuNWMyMy4yIDkuNiAzOS42IDMyLjUgMzkuNiA1OS4ybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyLTMyMCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDAgMjU2YzAtMjYuNyAxNi40LTQ5LjYgMzkuNi01OS4yek0xMjggMzA0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFp1dD1Yb2UsUW9lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3Atc2ltcGxlIixpY29uOls1MTIsNTEyLFsiY3JvcC1hbHQiXSwiZjU2NSIsIk0xMjggMzJjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgMTQuMyA2NCAzMmwwIDMyLTMyIDBDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMybDMyIDAgMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjA4IDAgMC02NC0yMDggMCAwLTM1MnpNMzg0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMjA4IDAgMCA2NCAyMDggMCAwIDM1MnoiXX0sWHV0PVFvZSxRdXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWVkYWwiLGljb246WzQ0OCw1MTIsWzEyNzk0MV0sImY1YTIiLCJNMjI0LjMgMTI4TDEzOS43LTEyLjljLTYuNS0xMC44LTIwLjEtMTQuNy0zMS4zLTkuMUwyMS44IDIxLjNDOS45IDI3LjIgNS4xIDQxLjYgMTEgNTMuNUw4MC42IDE5Mi42Yy0zMC4xIDMzLjktNDguMyA3OC41LTQ4LjMgMTI3LjQgMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC00OC45LTE4LjMtOTMuNS00OC4zLTEyNy40TDQzNy42IDUzLjVjNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4yTDM0MC4yLTIyLjFjLTExLjItNS42LTI0LjktMS42LTMxLjMgOS4xTDIyNC4zIDEyOHptMzAuOCAxNDIuNWMxLjQgMi44IDQgNC43IDcgNS4xbDUwLjEgNy4zYzcuNyAxLjEgMTAuNyAxMC41IDUuMiAxNmwtMzYuMyAzNS40Yy0yLjIgMi4yLTMuMiA1LjItMi43IDguM2w4LjYgNDkuOWMxLjMgNy42LTYuNyAxMy41LTEzLjYgOS45bC00NC44LTIzLjZjLTIuNy0xLjQtNi0xLjQtOC43IDBsLTQ0LjggMjMuNmMtNi45IDMuNi0xNC45LTIuMi0xMy42LTkuOWw4LjYtNDkuOWMuNS0zLS41LTYuMS0yLjctOC4zbC0zNi4zLTM1LjRjLTUuNi01LjQtMi41LTE0LjggNS4yLTE2bDUwLjEtNy4zYzMtLjQgNS43LTIuNCA3LTUuMWwyMi40LTQ1LjRjMy40LTcgMTMuMy03IDE2LjggMGwyMi40IDQ1LjR6Il19LEp1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY3JvbGwiLGljb246WzU3Niw1MTIsWzEyODIyMF0sImY3MGUiLCJNMCAxMTJDMCA3MC41IDMxLjYgMzYuNCA3MiAzMi40bDAtLjQgMjgwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDE3Ni0xNzYgMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJsMCA2MGMwIDI0LjMtMTkuNyA0NC00NCA0NHMtNDQtMTkuNy00NC00NGwwLTIyOC02NCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTQ4ek0yMzYuOCA0ODBjNy4xLTEzLjEgMTEuMi0yOC4xIDExLjItNDRsMC02MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0yMjcuMiAwek04MCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEt1dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWV4Y2VsIixpY29uOlszODQsNTEyLFtdLCJmMWMzIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNjQgMjY2LjdjLTcuNC0xMS0yMi4zLTE0LTMzLjMtNi43cy0xNCAyMi4zLTYuNyAzMy4zTDE2My4yIDM1MiAxMjQgNDEwLjdjLTcuNCAxMS00LjQgMjUuOSA2LjcgMzMuM3MyNS45IDQuNCAzMy4zLTYuN2wyOC00MiAyOCA0MmM3LjQgMTEgMjIuMyAxNCAzMy4zIDYuN3MxNC0yMi4zIDYuNy0zMy4zTDIyMC44IDM1MiAyNjAgMjkzLjNjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zcy0yNS45LTQuNC0zMy4zIDYuN2wtMjggNDItMjgtNDJ6Il19LGU4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWx0ZXIiLGljb246WzUxMiw1MTIsW10sImYwYjAiLCJNMzIgNjRDMTkuMSA2NCA3LjQgNzEuOCAyLjQgODMuOFMuMiAxMDkuNSA5LjQgMTE4LjZMMTkyIDMwMS4zIDE5MiA0MTZjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlTMzIwIDQ5Mi45IDMyMCA0ODBsMC0xNzguNyAxODIuNi0xODIuNmM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSA2NCA0ODAgNjRMMzIgNjR6Il19LHQ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcnVtIixpY29uOls1MTIsNTEyLFsxMjkzNDVdLCJmNTY5IiwiTTUwMS4yIDc2LjFjMTEuMS03LjMgMTQuMi0yMi4xIDYuOS0zMy4ycy0yMi4xLTE0LjItMzMuMi02LjlMMzcwLjIgMTA0LjVDMzM1LjggOTguNyAyOTcgOTYgMjU2IDk2IDExNC42IDk2IDAgMTI4IDAgMjA4TDAgMzY4YzAgMzEuMyAyNy40IDU4LjggNzIgNzguN0w3MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDExOS40YzMzIDguOSA3MS4xIDE0LjUgMTEyIDE2LjFMMjMyIDM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTAzLjVjNDAuOS0xLjYgNzktNy4yIDExMi0xNi4xTDM5MiAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwMi43YzQ0LjYtMTkuOSA3Mi00Ny40IDcyLTc4LjdsMC0xNjBjMC00MS4xLTMwLjItNjkuNS03OC44LTg3LjRsNjcuOS00NC41ek0zMDcuNCAxNDUuNmwtNjQuNiA0Mi4zYy0xMS4xIDcuMy0xNC4yIDIyLjEtNi45IDMzLjJzMjIuMSAxNC4yIDMzLjIgNi45bDExMS4xLTcyLjhjMTQuNyAzLjIgMjcuOSA3IDM5LjQgMTEuNSAzOC44IDE1LjEgNDQuNCAzMC42IDQ0LjQgNDEuMyAwIC44LTIuNyAxNy4yLTQ2IDM1LjktMzguOSAxNi44LTk2IDI4LjEtMTYyIDI4LjFTMTMyLjkgMjYwLjcgOTQgMjQzLjljLTQzLjMtMTguNy00Ni0zNS4xLTQ2LTM1LjkgMC0xMC42IDUuNi0yNi4yIDQ0LjQtNDEuMyAzOC4zLTE0LjkgOTUuNC0yMi43IDE2My42LTIyLjcgMTggMCAzNS4xIC41IDUxLjQgMS42eiJdfSxyOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFwLXBpbiIsaWNvbjpbMzIwLDUxMixbMTI4MjA1XSwiZjI3NiIsIk0xOTIgMjg0LjRDMjU2LjEgMjY5LjkgMzA0IDIxMi41IDMwNCAxNDQgMzA0IDY0LjUgMjM5LjUgMCAxNjAgMFMxNiA2NC41IDE2IDE0NGMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRMMTI4IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTk1LjZ6TTE2OCA5NmMtMzAuOSAwLTU2IDI1LjEtNTYgNTYgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC01Ny40IDQ2LjYtMTA0IDEwNC0xMDQgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LEpvZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS11bmJhbGFuY2VkLWZsaXAiLGljb246WzY0MCw1MTIsWyJiYWxhbmNlLXNjYWxlLXJpZ2h0Il0sImY1MTYiLCJNMTE4LjIgNjIuNEMxMDEuNSA1Ni44IDkyLjQgMzguNiA5OCAyMS45UzEyMS43LTMuOSAxMzguNSAxLjZsMTEzIDM3LjdjMTMuOS0yMy41IDM5LjYtMzkuMyA2OC45LTM5LjMgNDQuMiAwIDgwIDM1LjggODAgODAgMCAzLS4yIDUuOS0uNSA4LjhsMTIyLjYgNDAuOWMxNi44IDUuNiAyNS44IDIzLjcgMjAuMiA0MC41cy0yMy43IDI1LjgtNDAuNSAyMC4yTDM2Ni43IDE0NS4yYy00LjUgMy4yLTkuMyA1LjktMTQuNCA4LjJsMCAzMjYuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDAgMC0yOTQuN2MtMjEtOS4yLTM3LjItMjctNDQuMi00OWwtMTI1LjktNDJ6TTIwMC44IDI4OEwxMjguMyAxNjMuOCA1NS45IDI4OCAyMDAuOCAyODh6bS03Mi40IDk2Yy02Mi45IDAtMTE1LjItMzQtMTI2LTc4LjktMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMS0xMC44IDQ0LjgtNjMuMSA3OC45LTEyNiA3OC45em0zODIuOC05Mi4ybC03Mi40IDEyNC4yIDE0NC45IDAtNzIuNC0xMjQuMnptMTI2IDE0MS4zQzYyNi40IDQ3OCA1NzQuMSA1MTIgNTExLjIgNTEycy0xMTUuMi0zNC0xMjYtNzguOWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMXoiXX0saTh0PUpvZSxhOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXRvLWNpcmNsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRiZCIsIk05LjQgOS40QzIxLjktMy4xIDQyLjEtMy4xIDU0LjYgOS40TDEyOCA4Mi43IDEyOCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguNyAwLTczLjQtNzMuNEMtMy4xIDQyLjEtMy4xIDIxLjkgOS40IDkuNHpNMjAwIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTUwMi42IDU0LjZMNDI5LjMgMTI4IDQ0OCAxMjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE4LjcgNzMuNC03My40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bS00NS4zIDQ0OEwzODQgNDI5LjMgMzg0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjcgMCA3My40IDczLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDB6TTkuNCA0NTcuNEw4Mi43IDM4NCA2NCAzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguNy03My40IDczLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zeiJdfSxuOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUiLGljb246WzUxMiw1MTIsWzEyODM4Niw5OTkzLDYxNDQzXSwiZjBlMCIsIk00OCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDggMCAxNS4xIDcuMSAyOS4zIDE5LjIgMzguNGwyMDggMTU2YzE3LjEgMTIuOCA0MC41IDEyLjggNTcuNiAwbDIwOC0xNTZjMTIuMS05LjEgMTkuMi0yMy4zIDE5LjItMzguNCAwLTI2LjUtMjEuNS00OC00OC00OEw0OCA2NHpNMCAxOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xODgtMTk4LjQgMTQ4LjhjLTM0LjEgMjUuNi04MS4xIDI1LjYtMTE1LjIgMEwwIDE5NnoiXX0sbzh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhYnkiLGljb246WzM4NCw1MTIsW10sImY3N2MiLCJNMTIwIDg4YTcyIDcyIDAgMSAxIDE0NCAwIDcyIDcyIDAgMSAxIC0xNDQgMHpNNy43IDE0NC41YzEzLTE3LjkgMzgtMjEuOCA1NS45LTguOEw5OS44IDE2MmMyNi44IDE5LjUgNTkuMSAzMCA5Mi4yIDMwczY1LjQtMTAuNSA5Mi4yLTMwbDM2LjItMjYuNGMxNy45LTEzIDQyLjktOSA1NS45IDguOHM5IDQyLjktOC44IDU1LjlsLTM2LjIgMjYuNGMtMTMuNiA5LjktMjguMSAxOC4yLTQzLjMgMjVsMCAzNi4zLTE5MiAwIDAtMzYuM2MtMTUuMi02LjctMjkuNy0xNS4xLTQzLjMtMjVMMTYuNSAyMDAuM2MtMTcuOS0xMy0yMS44LTM4LTguOC01NS45ek05Ny41IDMyOS4zbDYwLjYgNTMtMjYgMzcuMiAyNC4zIDI0LjNjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTQ4LTQ4QzM4IDQzOC42IDM2LjEgNDE3IDQ3LjIgNDAxLjFsNTAuMi03MS44em0xMjguNSA1M2w2MC42LTUzIDUwLjIgNzEuOGMxMS4xIDE1LjkgOS4yIDM3LjUtNC41IDUxLjJsLTQ4IDQ4Yy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMHMtMTUuNi00MC45IDAtNTYuNmwyNC4zLTI0LjMtMjYtMzcuMnoiXX0sS29lPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1jYXJldC1kb3duIixpY29uOls0NDgsNTEyLFsiY2FyZXQtc3F1YXJlLWRvd24iXSwiZjE1MCIsIk0zODQgNDgwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlTMTEwLjUgMTkyIDEyMCAxOTJsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3oiXX0sczh0PUtvZSxsOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3ZCIsIk0yNi45IDIwNi45TDMuNyA0NDQuOUMxLjggNDYzLjcgMTYuNiA0ODAgMzUuNSA0ODBsMTcyLjcgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEyOWMwLTguMyA2LjctMTUgMTUtMTUgNS41IDAgMTAuNiAzIDEzLjIgNy45bDg2LjEgMTU5YzguNCAxNS41IDI0LjYgMjUuMSA0Mi4yIDI1LjFsNjQuMSAwYzE4LjkgMCAzMy43LTE2LjMgMzEuOC0zNS4xTDQ4NS42IDIwNy4xYy0xLjktMTkuNi0xMi44LTM3LjMtMjkuNS00Ny44TDI4MC45IDQ4LjNjLTE1LjctMTAtMzUuOC05LjktNTEuNSAuMUw1Ni4xIDE1OS4yYy0xNi41IDEwLjYtMjcuMyAyOC4yLTI5LjIgNDcuN3oiXX0sYzh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImEiLGljb246WzM4NCw1MTIsWzk3XSwiNDEiLCJNMjIxLjUgNTEuN0MyMTYuNiAzOS44IDIwNC45IDMyIDE5MiAzMnMtMjQuNiA3LjgtMjkuNSAxOS43Yy05My4zIDIyNC0xNDYuNyAzNTItMTYwIDM4NC02LjggMTYuMyAuOSAzNSAxNy4yIDQxLjhzMzUtLjkgNDEuOC0xNy4ybDMxLjgtNzYuMyAxOTcuMyAwIDMxLjggNzYuM2M2LjggMTYuMyAyNS41IDI0IDQxLjggMTcuMnMyNC0yNS41IDE3LjItNDEuOGMtMTMuMy0zMi02Ni43LTE2MC0xNjAtMzg0ek0yNjQgMzIwbC0xNDQgMCA3Mi0xNzIuOCA3MiAxNzIuOHoiXX0sZDh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhcmFjaHV0ZS1ib3giLGljb246WzUxMiw1MTIsW10sImY0Y2QiLCJNMTI4IDIyNEMxMjggMTUyLjIgMTQ0LjMgODguNCAxNjkuNSA0My40IDE5NS4xLTIuNCAyMjYuNi0yNCAyNTYtMjRzNjAuOSAyMS42IDg2LjUgNjcuNEMzNjcuNyA4OC40IDM4NCAxNTIuMiAzODQgMjI0bC0xMDQgMCAwIDk2IDggMGM5LjMgMCAxOC4xIDIgMjYgNS41bDExOC40LTEwMS41LS41IDBjMC03OC40LTE3LjctMTUwLjYtNDcuNi0yMDQtNi4xLTExLTEyLjktMjEuMy0yMC4zLTMwLjkgODYuNSAzNS45IDE0Ny44IDExNS4xIDE0Ny44IDIxOC45IDAgNy0zLjEgMTMuNy04LjQgMTguMkwzNDcuNCAzNjAuMWMzIDcuNCA0LjYgMTUuNCA0LjYgMjMuOWwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0YzAtOC40IDEuNi0xNi41IDQuNi0yMy45TDguNCAyMjYuMkMzLjEgMjIxLjcgMCAyMTUgMCAyMDggMCAxMDQuMiA2MS4zIDI0LjkgMTQ3LjgtMTAuOSAxNDAuNS0xLjQgMTMzLjcgOSAxMjcuNiAyMCA5Ny43IDczLjQgODAgMTQ1LjYgODAgMjI0bC0uNSAwIDExOC40IDEwMS41YzgtMy41IDE2LjgtNS41IDI2LTUuNWw4IDAgMC05Ni0xMDQgMHoiXX0sdTh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtYXJyb3ctZG93biIsaWNvbjpbNjQwLDUxMixbXSwiZjIxOCIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmw0NS4zIDBjMjcuMSAwIDUwLjMgMTkuNCA1NS4xIDQ2bC40IDIgMTg3LjIgMCAwIDEwMi4xLTMxLTMxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjEgMTc3LjQgMGMyMCAwIDM1LjEgMTguMiAzMS40IDM3LjlMNTM3LjggMjM1LjhjLTUuNyAzMC4zLTMyLjEgNTIuMi02Mi45IDUyLjJsLTMwMy42IDAgNS4xIDI4LjNjMi4xIDExLjQgMTIgMTkuNyAyMy42IDE5LjdMNDU2IDMzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjU1LjkgMGMtMzQuOCAwLTY0LjYtMjQuOS03MC44LTU5LjFMNzcuMiAzOC42Yy0uNy0zLjgtNC02LjYtNy45LTYuNkwyNCAzMkMxMC43IDMyIDAgMjEuMyAwIDh6TTE2MCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMjI0IDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0scDh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzU3Niw1MTIsW10sImU0Y2EiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDggMCAwIDY0LTQwIDAgMCAxMTJjMzcuNiA5LjQgNjQgNDMuMiA2NCA4MmwwIDk0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTUzIDQzLTk2IDk2LTk2IDYuNCAwIDEyLjcgLjYgMTguNyAxLjggMzQuNy00OS41IDkyLjItODEuOCAxNTcuMy04MS44IDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtNjUuNC00MCAwIDAtNjQgOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyek00MjQgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNMjk2IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTg4IDk2bDgwIDAgMCA2NC04MCAwIDAtNjR6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTQwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxLQT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1hcnJvdy11cCIsaWNvbjpbNTc2LDUxMixbNjIzMzgsImNsb3VkLXVwbG9hZCIsImNsb3VkLXVwbG9hZC1hbHQiXSwiZjBlZSIsIk0xNDQgNDgwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NCAwLTYzLjQgNDEtMTE3LjIgOTcuOS0xMzYuNS0xLjMtNy43LTEuOS0xNS41LTEuOS0yMy41IDAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDU1LjQgMCAxMDMuNSAzMS4zIDEyNy42IDc3LjEgMTQuMi04LjMgMzAuOC0xMy4xIDQ4LjQtMTMuMSA1MyAwIDk2IDQzIDk2IDk2IDAgMTUuNy0zLjggMzAuNi0xMC41IDQzLjcgNDQgMjAuMyA3NC41IDY0LjcgNzQuNSAxMTYuMyAwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMzA0IDB6TTMwNSAxOTFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC03MiA3MmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMxLTMxIDAgMTAyLjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwMi4xIDMxIDMxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzItNzJ6Il19LGg4dD1LQSxmOHQ9S0EsbTh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF0IixpY29uOls1MTIsNTEyLFs2MTk0Nl0sIjQwIiwiTTI1NiA2NEMxNTAgNjQgNjQgMTUwIDY0IDI1NnM4NiAxOTIgMTkyIDE5MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NlMxMTQuNiAwIDI1NiAwIDUxMiAxMTQuNiA1MTIgMjU2bDAgMzJjMCA1My00MyA5Ni05NiA5Ni0yOS4zIDAtNTUuNi0xMy4yLTczLjItMzMuOS0yMi44IDIxLTUzLjMgMzMuOS04Ni44IDMzLjktNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGMyNy45IDAgNTMuNyA4LjkgNzQuNyAyNC4xIDUuNy01IDEzLjEtOC4xIDIxLjMtOC4xIDE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMmMwLTEwNi04Ni0xOTItMTkyLTE5MnptNjQgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHoiXX0sZUQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kaWFuLXJ1cGVlLXNpZ24iLGljb246WzMyMCw1MTIsWyJpbmRpYW4tcnVwZWUiLCJpbnIiXSwiZTFiYyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDI2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC03Ni43IDBjMTcuNyAxOS44IDMwLjEgNDQuNiAzNC43IDcybDQyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQyIDBjLTEwLjQgNjIuMi02MC44IDExMC45LTEyMy44IDExOC45TDI3NC42IDQyMmMxNC40IDEwLjMgMTcuNyAzMC4zIDcuNCA0NC42cy0zMC4zIDE3LjctNDQuNiA3LjRMMTMuNCAzMTRDMi4xIDMwNi0yLjcgMjkxLjUgMS41IDI3OC4yUzE4LjEgMjU2IDMyIDI1Nmw4MCAwYzM1LjggMCA2Ni4xLTIzLjUgNzYuMy01NkwyNCAyMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTY0LjMgMGMtMTAuMi0zMi41LTQwLjUtNTYtNzYuMy01NkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0eiJdfSxnOHQ9ZUQsYjh0PWVELHY4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjayIsaWNvbjpbNTc2LDUxMixbMTI4NjY2LDk5NTFdLCJmMGQxIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNTU3LjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNTc2IDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMy4zIDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0xMDIuNiAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTUxMiAyODhsMC01MC43LTQ1LjMtNDUuMy01MC43IDAgMCA5NiA5NiAwek0xOTIgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTIzMiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LGUyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFsa2JvYXJkLXVzZXIiLGljb246WzY0MCw1MTIsWyJjaGFsa2JvYXJkLXRlYWNoZXIiXSwiZjUxYyIsIk0xOTIgMzg0YzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMiAwLTUzIDQzLTk2IDk2LTk2bDk2IDB6TTU0NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDMzLjEtMjUuMiA2MC40LTU3LjUgNjMuN2wtNi41IC4zLTIxMS4xIDBjLTUuMS0yNC4yLTE2LjMtNDYuMS0zMi4xLTY0bDUxLjIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwIDAtMjg4LTM1MiAwIDAgNTcuM2MtMTQuOC02LTMxLTkuMy00OC05LjMtNS40IDAtMTAuOCAuMy0xNiAxbDAtNDljMC0zNS4zIDI4LjctNjQgNjQtNjRsMzUyIDB6TTE0NCAzNTJhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6Il19LHg4dD1lMmUseTh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItY2hlY2siLGljb246WzY0MCw1MTIsW10sImY0ZmMiLCJNMjg2IDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3OCA1MTJjLTE2LjQgMC0yOS43LTEzLjMtMjkuNy0yOS43IDAtOTguNSA3OS44LTE3OC4zIDE3OC4zLTE3OC4zbDU5LjQgMHpNNTg1LjcgMTA1LjljNy44LTEwLjcgMjIuOC0xMy4xIDMzLjUtNS4zczEzLjEgMjIuOCA1LjMgMzMuNUw1MjIuMSAyNzQuOWMtNC4yIDUuNy0xMC43IDkuNC0xNy43IDkuOHMtMTQtMi4yLTE4LjktNy4zbC00Ni40LTQ4Yy05LjItOS41LTktMjQuNyAuNi0zMy45IDkuNS05LjIgMjQuNy04LjkgMzMuOSAuNmwyNi41IDI3LjQgODUuNi0xMTcuN3pNMjU2LjMgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHoiXX0sdzh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbmluamEiLGljb246WzQ0OCw1MTIsWzEyOTM5OV0sImY1MDQiLCJNMzUyIDEyOGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOC01Ny4yIDAtMTA1LjYtMzcuNS0xMjItODkuMy0xLjEgMS4zLTIuMiAyLjYtMy41IDMuOC0xNS44IDE1LjgtMzguOCAyMC43LTUzLjYgMjIuMS04LjEgLjgtMTQuNi01LjctMTMuOC0xMy44IDEuNC0xNC43IDYuMy0zNy44IDIyLjEtNTMuNiA1LjgtNS44IDEyLjYtMTAuMSAxOS42LTEzLjQtNy0zLjItMTMuOC03LjYtMTkuNi0xMy40LTE1LjgtMTUuOC0yMC43LTM4LjgtMjIuMS01My42LS44LTguMSA1LjctMTQuNiAxMy44LTEzLjggMTQuNyAxLjQgMzcuOCA2LjMgNTMuNiAyMi4xIDQuOCA0LjggOC43IDEwLjQgMTEuNyAxNi4xIDIxLjMtNDEuMiA2NC4zLTY5LjQgMTEzLjgtNjkuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHpNMTQ0IDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZMMTYwIDk2Yy04LjggMC0xNiA3LjItMTYgMTZ6bS0xLjQgMjExbDY3IDUwLjJjOC41IDYuNCAyMC4zIDYuNCAyOC44IDBsNjctNTAuMmM2LjUtNC45IDE1LjItNi4yIDIyLjYtMi44IDYxLjQgMjguMiAxMDQuMSA5MC4yIDEwNC4xIDE2Mi4xIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDQ1LjcgNTEyYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTcyIDQyLjctMTM0IDEwNC4xLTE2Mi4xIDcuNC0zLjQgMTYuMS0yLjEgMjIuNiAyLjh6Il19LE04dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFudC13aWx0IixpY29uOls1MTIsNTEyLFtdLCJlNWFhIiwiTTM0NC0zMmM2Ni4zIDAgMTIwIDUzLjcgMTIwIDEyMGwwIDYuMmMyOS4zIDEyLjIgNDggNDEuMyA0OCA3Ni45IDAgMjcuOS0yNS4zIDc0LjgtNjYgMTExLjctMy44IDMuNS04LjggNS4zLTE0IDUuM3MtMTAuMi0xLjgtMTQtNS4zYy00MC43LTM2LjgtNjYtODMuNy02Ni0xMTEuNyAwLTM1LjYgMTguNy02NC43IDQ4LTc2LjlsMC02LjJjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCA0MjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yOTZjMC0zMC45LTI1LjEtNTYtNTYtNTZzLTU2IDI1LjEtNTYgNTZsMCAzOC4yYzI5LjMgMTIuMiA0OCA0MS4zIDQ4IDc2LjkgMCAyNy45LTI1LjMgNzQuOC02NiAxMTEuNy0zLjggMy41LTguOCA1LjMtMTQgNS4zcy0xMC4yLTEuOC0xNC01LjNDMjUuMyA0MDUuOSAwIDM1OSAwIDMzMS4xIDAgMjk1LjQgMTguNyAyNjYuNCA0OCAyNTQuMkw0OCAyMTZjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjAgMjAuMiAwIDM5LjMgNSA1NiAxMy44TDIyNCA4OGMwLTY2LjMgNTMuNy0xMjAgMTIwLTEyMHoiXX0sdDJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1zY2FsZSIsaWNvbjpbNDQ4LDUxMixbIndlaWdodCJdLCJmNDk2IiwiTTExNi42IDE5MmMtMy0xMC4xLTQuNi0yMC45LTQuNi0zMiAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMlMzMzYgOTguMSAzMzYgMTYwYzAgMTEuMS0xLjYgMjEuOS00LjYgMzJsLTcxIDAgMjQuNi00NC4zYzYuNC0xMS42IDIuMy0yNi4yLTkuMy0zMi42cy0yNi4yLTIuMy0zMi42IDkuM2wtMzcuNiA2Ny43LTg4LjggMHpNMTI4IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBDMjkzLjMgMTEuOSAyNjAgMCAyMjQgMHMtNjkuMyAxMS45LTk2IDMyeiJdfSxrOHQ9dDJlLFlEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LXJpZ2h0IixpY29uOlsyNTYsNTEyLFtdLCJmMGRhIiwiTTI0OS4zIDIzNS44YzEwLjIgMTIuNiA5LjUgMzEuMS0yLjIgNDIuOGwtMTI4IDEyOGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTNjQuNSAzOTYuOSA2NC41IDM4NGwwLTI1NmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDEyOCAxMjggMi4yIDIuNHoiXX0sUzh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsb3Jpbi1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMTg0IiwiTTMxNC43IDMyYy0zOC44IDAtNzMuNyAyMy4zLTg4LjYgNTkuMUwxNzAuNyAyMjQgNjQgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDgwIDAtNDUuMSAxMDguM2MtNSAxMS45LTE2LjYgMTkuNy0yOS41IDE5LjdMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM3LjMgMGMzOC44IDAgNzMuNy0yMy4zIDg4LjYtNTkuMUwyMTMuMyAyODggMzIwIDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODAgMCA0NS4xLTEwOC4zYzUtMTEuOSAxNi42LTE5LjcgMjkuNS0xOS43TDM1MiA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzcuMyAweiJdfSxaRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWxsIixpY29uOls0NDgsNTEyLFsxMjgyNzYsNjE2MDJdLCJmMGYzIiwiTTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMuMkMxMTkgNTAgNjQgMTE0LjYgNjQgMTkybDAgMjEuN2MwIDQ4LjEtMTYuNCA5NC44LTQ2LjQgMTMyLjRMNy44IDM1OC4zQzIuNyAzNjQuNiAwIDM3Mi40IDAgMzgwLjUgMCA0MDAuMSAxNS45IDQxNiAzNS41IDQxNmwzNzYuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4ybC05LjgtMTIuMkM0MDAuNCAzMDguNSAzODQgMjYxLjggMzg0IDIxMy43bDAtMjEuN2MwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOGwwLTMuMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTYyIDQ2NGM3LjEgMjcuNiAzMi4yIDQ4IDYyIDQ4czU0LjktMjAuNCA2Mi00OGwtMTI0IDB6Il19LHo4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYXJpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxYzgiLCJNMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MS41YzcuOS0xIDE1LjktMS41IDI0LTEuNXMxNi4xIC41IDI0IDEuNUwyMTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDU0YzU4LjkgMjMuOCAxMDMuMiA3NiAxMTYuMiAxMzkuNyAzLjUgMTcuMy03LjcgMzQuMi0yNSAzNy43cy0zNC4yLTcuNy0zNy43LTI1Yy02LjctMzMuMi0yNi40LTYxLjgtNTMuNC04MC4ybDAgODEuOGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTEwMS44Yy03LjgtMS41LTE1LjgtMi4yLTI0LTIuMnMtMTYuMiAuOC0yNCAyLjJMMTY4IDIzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgxLjhjLTMzLjggMjMtNTYgNjEuOS01NiAxMDUuOCAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYuOSAwQzE4LjUgMzUwIDAgMzA1LjIgMCAyNTYgMCAxNzUuNCA0OS42IDEwNi40IDEyMCA3OGwwLTU0YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxDOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWlsbC1zaWduIixpY29uOlszODQsNTEyLFtdLCJlMWVkIiwiTTI5Ny0yMi4yYzEyLjMgNSAxOC4yIDE5IDEzLjIgMzEuM2wtMjkgNzEuM0MzMzguOCA4NS4xIDM4NCAxMzMuMyAzODQgMTkybDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4LTYuNCAwLTEyLjUgMS4yLTE4IDMuNWwtMzAgNzMuOCAwIDE3OC43YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjEuMi01Ny44IDE0Mi4yYy01IDEyLjMtMTkgMTguMi0zMS4zIDEzLjJzLTE4LjItMTktMTMuMi0zMS4zTDE2MCAyNTEuMyAxNjAgMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMjA4YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDE3LjcgMCA0MDBMMCAxMTJjMC0xNy43IDE0LjMtMzIgMzItMzIgMTAuOSAwIDIwLjUgNS40IDI2LjMgMTMuNyAxNi04LjcgMzQuMy0xMy43IDUzLjctMTMuNyAzMS4zIDAgNTkuNyAxMi45IDgwIDMzLjYgOS42LTkuOCAyMC45LTE3LjggMzMuNS0yMy41TDI2NS44LTljNS0xMi4zIDE5LTE4LjIgMzEuMy0xMy4yeiJdfSxyMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNub3dib2FyZGluZyIsaWNvbjpbNTc2LDUxMixbMTI3OTM4LCJzbm93Ym9hcmRpbmciXSwiZjdjZSIsIk00MjQuNSAxNmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTY2LjQgNDUuNWMxMC4yLTE0LjQgMzAuMi0xNy45IDQ0LjYtNy43bDI3MiAxOTJjMTQuNCAxMC4yIDE3LjkgMzAuMiA3LjcgNDQuNnMtMzAuMiAxNy45LTQ0LjYgNy43bC05Mi4yLTY1LjEtNjIuMiA1My4zIDMyLjEgMjYuN2MxOC4yIDE1LjIgMjguOCAzNy43IDI4LjggNjEuNWwwIDg3LjggNzcuNSAxNS4yYzYuMiAxLjIgMTIuNiAuOSAxOC43LS44bDQxLjItMTEuOGMxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC00MS4yIDExLjhjLTEzLjQgMy44LTI3LjQgNC40LTQxLjEgMS44TDg3LjEgNDQzLjNjLTE3LjItMy40LTMzLTExLjgtNDUuMy0yNC4xTDE1LjUgMzkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjYuMiAyNi4yYzUuNiA1LjYgMTIuOCA5LjQgMjAuNiAxMWw2NC4yIDEyLjYgMC0xMjMuN2MwLTI3LjcgMTItNTQgMzIuOC03Mi4ybDY5LTYwLjQtODguMi02Mi4zQzE1OS42IDgwIDE1Ni4yIDYwIDE2Ni40IDQ1LjV6bTU4LjEgMzc1LjdsNjQgMTIuNSAwLTc1LjNjMC00LjctMi4xLTkuMy01LjgtMTIuM2wtNTguMi00OC41IDAgMTIzLjZ6Il19LFQ4dD1yMmUsaTJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR0eSIsaWNvbjpbNTEyLDUxMixbInRlbGV0eXBlIl0sImYxZTQiLCJNNDUwLjIgMjY2LjhjMTUuOCA2LjUgMzQuMSAuMyA0Mi42LTE0LjZsMi40LTQuMmMyNy45LTQ4LjkgMjMuNi0xMTguOC0zMS4zLTE1NC41LTEyNi04Mi0yODkuNi04Mi00MTUuNiAwLTU0LjkgMzUuNy01OS4zIDEwNS43LTMxLjMgMTU0LjVsMi40IDQuMmM4LjUgMTQuOSAyNi43IDIxLjEgNDIuNiAxNC42bDgxLjktMzMuN2MxMy45LTUuNyAyMi40LTE5LjkgMjAuOS0zNC45bC01LjEtNTFjNjIuNS0yMSAxMzAuOC0xOS45IDE5Mi42IDMuM2wtNC44IDQ3LjdjLTEuNSAxNSA3IDI5LjIgMjAuOSAzNC45bDgxLjkgMzMuN3pNMzIgMzUyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTk2IDBhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMCAtNjQgMHpNNjQgNDE2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMzUyIDMyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6TTI1NiAzMjBhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0em02NCAzMmEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwIC02NCAwem0xMjgtMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0xMjggNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6Il19LF84dD1pMmUsTDh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLXJlY3RhbmdsZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0yMjQgNzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTAgMTUyYzUzIDAgOTYgNDMgOTYgOTZsMCAyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjRjMC01MyA0My05NiA5Ni05NnptOTYtNjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTY4IDI3Mi4zYy0xNS4yIDIyLjgtMjQgNTAuMi0yNCA3OS43bDAgMjRjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC00Ni44IDBDODkuNiA0MDAgODAgMzkwLjQgODAgMzc4LjdMODAgMzY4YzAtNTAuMyAzOC43LTkxLjYgODgtOTUuN3pNNDI3LjkgNDAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0bDAtMjRjMC0yOS41LTguOC01Ni45LTI0LTc5LjcgNDkuMyA0LjEgODggNDUuMyA4OCA5NS43bDAgMTAuN2MwIDExLjgtOS42IDIxLjMtMjEuMyAyMS4zbC00Ni44IDB6TTk2IDE5MmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSx0RD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUiLGljb246WzM4NCw1MTIsWzEyODI0MSwibW9iaWxlLWFuZHJvaWQiLCJtb2JpbGUtcGhvbmUiXSwiZjNjZSIsIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6bTcyIDQxNmw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxBOHQ9dEQsRDh0PXRELEU4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdHVybi10by1kb3RzIixpY29uOls0NDgsNTEyLFtdLCJlNGMxIiwiTTI2NS40LTYuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDI4NS4zIDY0IDM1MiA2NGM1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjYuNyAwIDI1LjQgMjUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDgwLTgwem0tODIuNyAyNzJsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNjIuNyA0MDAgOTYgNDAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDgxLjcgMCA0NjRsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDY2LjcgMC0yNS40LTI1LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDB6TTMyMCAzNjhhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek02NCAxNjBhNjQgNjQgMCAxIDEgMC0xMjggNjQgNjQgMCAxIDEgMCAxMjh6Il19LCQ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJleGNsYW1hdGlvbiIsaWNvbjpbMTI4LDUxMixbMTAwNjksMTAwNzEsNjE3MzhdLCIyMSIsIk02NCA0MzJjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MGMwLTIyLjEgMTcuOS00MCA0MC00MHpNNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIC42IDAgMS4xIDAgMS43bC0xNiAzMDRjLS45IDE3LTE1IDMwLjMtMzIgMzAuM1MzMyAzNzAuNyAzMiAzNTMuN0wxNiA0OS43YzAtLjYgMC0xLjEgMC0xLjcgMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LEk4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaHVyY2giLGljb246WzUxMiw1MTIsWzk5NjJdLCJmNTFkIiwiTTI4MC04YzAtMTMuMy0xMC43LTI0LTI0LTI0UzIzMi0yMS4zIDIzMi04bDAgMjQtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgNDgtOTguNiA2NS44QzEyMCAxODYuNyAxMTIgMjAxLjYgMTEyIDIxNy43bDAgMzguMy03OS44IDQ1LjZDMTIuMyAzMTMgMCAzMzQuMiAwIDM1Ny4xTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDc0LjcgMCA4NS40IDAgMzIwIDBsNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTkwLjljMC0yMy0xMi4zLTQ0LjItMzIuMi01NS42TDQwMCAyNTYgNDAwIDIxNy43YzAtMTYtOC0zMS0yMS40LTM5LjlsLTk4LjYtNjUuOCAwLTQ4IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0yNHpNMjU2IDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDgwLTEyOCAwIDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjR6Il19LFA4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2dnbGUtb2ZmIixpY29uOls1NzYsNTEyLFtdLCJmMjA0IiwiTTM4NCAxMjhjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTNDU0LjcgMzg0IDM4NCAzODRsLTE5MiAwYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4bDE5MiAwek01NzYgMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyTDE5MiA2NEM4NiA2NCAwIDE1MCAwIDI1NlM4NiA0NDggMTkyIDQ0OGwxOTIgMGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMTkyIDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHoiXX0sTjh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob2UtcHJpbnRzIixpY29uOls1NzYsNTEyLFtdLCJmNTRiIiwiTTI5NiAxOTJjLTIxLjEtMTIuMS00Mi4zLTI0LjItNzItMjkuM2wwLTE0MC4zQzI1Ny43IDEzIDMxMS40IDAgMzUyIDAgNDQ4IDAgNTc2IDQ4IDU3NiAxMjhzLTExOS42IDk2LTE3NiA5NmMtNDggMC03Ni0xNi0xMDQtMzJ6TTEyOCAzMmw0OCAwIDAgMTI4LTQ4IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjR6TTIzMiAzMjBjMjgtMTYgNTYtMzIgMTA0LTMyIDU2LjQgMCAxNzYgMTYgMTc2IDk2UzM4NCA1MTIgMjg4IDUxMmMtNDAuNSAwLTk0LjMtMTMtMTI4LTIyLjRsMC0xNDAuM2MyOS43LTUuMiA1MC45LTE3LjMgNzItMjkuNHpNNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0bDQ4IDAgMCAxMjgtNDggMHoiXX0sRjh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGViIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFhEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbGxldCIsaWNvbjpbNTEyLDUxMixbXSwiZjU1NSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDcyIDEyOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNTguNyA4MCA3MiA4MGwzODQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCAzMnpNNDE2IDI1NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFVnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lc3NhZ2UiLGljb246WzUxMiw1MTIsWyJjb21tZW50LWFsdCJdLCJmMjdhIiwiTTAgMzUyTDAgMTI4QzAgNzUgNDMgMzIgOTYgMzJsMzIwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDIyNGMwIDUzLTQzIDk2LTk2IDk2bC0xMjAgMGMtNS4yIDAtMTAuMiAxLjctMTQuNCA0LjhMMTY2LjQgNTM5LjJjLTQuMiAzLjEtOS4yIDQuOC0xNC40IDQuOC0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTcyLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZ6Il19LE84dD1VZyxSOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvcGh5IixpY29uOls1MTIsNTEyLFsxMjc5NDJdLCJmMDkxIiwiTTE0NC4zIDBsMjI0IDBjMjYuNSAwIDQ4LjEgMjEuOCA0Ny4xIDQ4LjItLjIgNS4zLS40IDEwLjYtLjcgMTUuOGw0OS42IDBjMjYuMSAwIDQ5LjEgMjEuNiA0Ny4xIDQ5LjgtNy41IDEwMy43LTYwLjUgMTYwLjctMTE4IDE5MC41LTE1LjggOC4yLTMxLjkgMTQuMy00Ny4yIDE4LjgtMjAuMiAyOC42LTQxLjIgNDMuNy01Ny45IDUxLjhsMCA3My4xIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC03My4xYy0xNi03LjctMzUuOS0yMi01NS4zLTQ4LjMtMTguNC00LjgtMzguNC0xMi4xLTU3LjktMjMuMS01NC4xLTMwLjMtMTAyLjktODcuNC0xMDkuOS0xODkuOS0xLjktMjguMSAyMS00OS43IDQ3LjEtNDkuN2w0OS42IDBjLS4zLTUuMi0uNS0xMC40LS43LTE1LjgtMS0yNi41IDIwLjYtNDguMiA0Ny4xLTQ4LjJ6TTEwMS41IDExMmwtNTIuNCAwYzYuMiA4NC43IDQ1LjEgMTI3LjEgODUuMiAxNDkuNi0xNC40LTM3LjMtMjYuMy04Ni0zMi44LTE0OS42ek0zODAgMjU2LjhjNDAuNS0yMy44IDc3LjEtNjYuMSA4My4zLTE0NC44TDQxMSAxMTJjLTYuMiA2MC45LTE3LjQgMTA4LjItMzEgMTQ0Ljh6Il19LGEyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWRpenp5IixpY29uOls1MTIsNTEyLFsiZGl6enkiXSwiZjU2NyIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTM0LjEgMTUzLjlsMjUuOSAyNS45IDI1LjktMjUuOWM3LjgtNy44IDIwLjUtNy44IDI4LjMgMHM3LjggMjAuNSAwIDI4LjNsLTI1LjkgMjUuOSAyNS45IDI1LjljNy44IDcuOCA3LjggMjAuNSAwIDI4LjNzLTIwLjUgNy44LTI4LjMgMGwtMjUuOS0yNS45LTI1LjkgMjUuOWMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBzLTcuOC0yMC41IDAtMjguM2wyNS45LTI1LjktMjUuOS0yNS45Yy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDB6bTE5MiAwbDI1LjkgMjUuOSAyNS45LTI1LjljNy44LTcuOCAyMC41LTcuOCAyOC4zIDBzNy44IDIwLjUgMCAyOC4zbC0yNS45IDI1LjkgMjUuOSAyNS45YzcuOCA3LjggNy44IDIwLjUgMCAyOC4zcy0yMC41IDcuOC0yOC4zIDBsLTI1LjktMjUuOS0yNS45IDI1LjljLTcuOCA3LjgtMjAuNSA3LjgtMjguMyAwcy03LjgtMjAuNSAwLTI4LjNsMjUuOS0yNS45LTI1LjktMjUuOWMtNy44LTcuOC03LjgtMjAuNSAwLTI4LjNzMjAuNS03LjggMjguMyAwek0yNTYgMzA0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxCOHQ9YTJlLEg4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWN0ZXJpYSIsaWNvbjpbNjQwLDUxMixbXSwiZTA1OSIsIk0yNTYtMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxMWM4LjYgMi4yIDE2LjkgNS42IDI0LjggMTAuM0wzMTEgN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTYuMyA2LjNjNC42IDcuOCA4IDE2LjIgMTAuMyAyNC44bDExIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExIDBjLTIuMiA4LjYtNS42IDE2LjktMTAuMyAyNC44TDM0NSAxNTFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNC4xLTQuMS0zMC4xIDMwLjEgNC4xIDQuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xYy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMjE3IDI3OWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC02LjMtNi4zYy03LjggNC42LTE2LjIgOC0yNC44IDEwLjNsMCAxMWMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExYy04LjYtMi4yLTE2LjktNS42LTI0LjgtMTAuM0w3MyAzMTNjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNi4zLTYuM2MtNC42LTcuOC04LTE2LjItMTAuMy0yNC44bC0xMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExIDBjMi4yLTguNiA1LjYtMTYuOSAxMC4zLTI0LjhMMzkgMTY5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNC4xIDQuMWMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMTAzIDEwNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjEgMzAuMS0zMC4xLTQuMS00LjFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45UzE5MS42LTIuMyAyMDEgN2w2LjMgNi4zYzcuOC00LjYgMTYuMi04IDI0LjgtMTAuM2wwLTExYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xMjggMjU2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjQwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yOTYgNDBsMCAxMWM4LjYgMi4yIDE2LjkgNS42IDI0LjggMTAuM0w1NjcgMTk5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNi4zIDYuM2M0LjYgNy44IDggMTYuMiAxMC4zIDI0LjhsMTEgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEgMGMtMi4yIDguNi01LjYgMTYuOS0xMC4zIDI0LjhMNjAxIDM0M2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00LjEtNC4xLTMwLjEgMzAuMSA0LjEgNC4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQuMS00LjFjLTEwIDEwLTIwIDIwLTMwLjEgMzAuMUw0NzMgNDcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTYuMy02LjNjLTcuOCA0LjYtMTYuMiA4LTI0LjggMTAuM2wwIDExYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTFjLTguNi0yLjItMTYuOS01LjYtMjQuOC0xMC4zTDMyOSA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNi4zLTYuM2MtNC42LTcuOC04LTE2LjItMTAuMy0yNC44bC0xMSAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDExIDBjMi4yLTguNiA1LjYtMTYuOSAxMC4zLTI0LjhMMjk1IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQuMSA0LjFjMTAtMTAgMjAtMjAgMzAuMS0zMC4xTDM1OSAyOTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0LjEgNC4xIDMwLjEtMzAuMS00LjEtNC4xYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNi4zIDYuM2M3LjgtNC42IDE2LjItOCAyNC44LTEwLjNsMC0xMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek00NDggMzg0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LFRnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhci1kZWFmIixpY29uOls1MTIsNTEyLFsiZGVhZiIsImRlYWZuZXNzIiwiaGFyZC1vZi1oZWFyaW5nIl0sImYyYTQiLCJNNTAyLjYgNTQuNmwtNDAgNDBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDQwLTQwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bS0zMjAgMzIwbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxMjgtMTI4YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyem0wIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxxOHQ9VGcsajh0PVRnLFY4dD1UZyxuMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWFycm93cyIsaWNvbjpbNTEyLDUxMixbInBlb3BsZS1hcnJvd3MtbGVmdC1yaWdodCJdLCJlMDY4IiwiTTMyIDY0QTY0IDY0IDAgMSAxIDE2MCA2NCA2NCA2NCAwIDEgMSAzMiA2NHpNMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzLjIgMCA2LjQgLjIgOS41IC43TDkzLjEgMjA1LjFDNjUgMjMzLjIgNjUgMjc4LjggOTMuMSAzMDYuOWw1NiA1NmMzLjQgMy40IDcgNi40IDEwLjkgOWwwIDkyLjFjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTIwLjZDMTIuOSAzMzIuNCAwIDMxMS43IDAgMjg4bDAtNjR6TTM1MiA2NGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTY2LjkgMTQxLjFsLTQ0LjQtNDQuNGMzLjEtLjUgNi4zLS43IDkuNS0uN2w2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40TDQ4MCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTIuMWMzLjktMi42IDcuNS01LjYgMTAuOS05bDU2LTU2YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOHpNMzAyLjggMTc3LjhjOS0zLjcgMTkuMy0xLjcgMjYuMiA1LjJsNTYgNTZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTU2IDU2Yy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4yUzI4OCAzMjEuNyAyODggMzEybDAtMjQtNjQgMCAwIDI0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTU2LTU2Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw1Ni01NmM2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzIyNCAxOTAuMyAyMjQgMjAwbDAgMjQgNjQgMCAwLTI0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnoiXX0sVTh0PW4yZSxXOHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtY2xhcHBpbmciLGljb246WzUxMiw1MTIsW10sImUxYTgiLCJNMzQ0IDhsMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0UzM0NC01LjMgMzQ0IDh6TTIyMCAxMC43bDMyIDQ4YzcuNCAxMSA0LjQgMjUuOS02LjcgMzMuM3MtMjUuOSA0LjQtMzMuMy02LjdsLTMyLTQ4Yy03LjQtMTEtNC40LTI1LjkgNi43LTMzLjNTMjEyLjYtLjMgMjIwIDEwLjd6TTEzNSAxMTljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMjkyLjcgMjQyLjdjMTAuMSAxMC4xIDI3LjMgMi45IDI3LjMtMTEuM2wwLTM5LjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE1My42YzAgNTcuMS0zMCAxMTAtNzguOSAxMzkuNC02NCAzOC40LTE0NS44IDI4LjMtMTk4LjUtMjQuNEw3IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDUzIDUzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDIzIDI2NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDkzIDkzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDU1IDE4NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDExNyAxMTdjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFsLTkzLTkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNNDMzLjEgNDg0LjljLTI0LjIgMTQuNS01MC45IDIyLjEtNzcuNyAyMy4xIDQ4LjEtMzkuNiA3Ni42LTk5IDc2LjYtMTYyLjRsMC05OC4xYzguMi0uMSAxNi02LjQgMTYtMTZsMC0zOS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNTMuNmMwIDU3LjEtMzAgMTEwLTc4LjkgMTM5LjR6TTQ1My4zIDRjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3oiXX0sRzh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzLWNvdmlkLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlNGE5IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTgzLTgzIDExLjQtMTEuNGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xMS4zIDExLjMtMjMuOC0yMy44YzE3LjktMjMuNSAyOS45LTUxLjcgMzQuMS04Mi4zbDMzLjYgMCAwIDE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTMzLjYgMGMtNC4yLTMwLjctMTYuMy01OC44LTM0LjEtODIuM2wyMy44LTIzLjggMTEuMyAxMS4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NDAuNyA0Ni43Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDExLjMgMTEuMy0yMy44IDIzLjhDMzcwLjggOTcuOSAzNDIuNyA4NS44IDMxMiA4MS42bDAtMzMuNiAxNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzM0MS4zIDAgMzI4IDBMMjQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjZjLTMwLjcgNC4yLTU4LjggMTYuMy04Mi4zIDM0LjFMMTU3LjkgOTIgMTY5LjIgODAuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDEyMy45IDU4LjEgNDEtMjQuOXpNMTEzLjYgMjMybC0zMy42IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNiAzMy42IDBjNC4yIDMwLjcgMTYuMyA1OC44IDM0LjEgODIuM2wtMjMuOCAyMy44LTExLjMtMTEuM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1Ni42IDU2LjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMS4zLTExLjMgMjMuOC0yMy44YzIzLjUgMTcuOSA1MS43IDI5LjkgODIuMyAzNC4xbDAgMzMuNi0xNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2IDAgMC0zMy42YzEzLjQtMS44IDI2LjQtNS4yIDM4LjctOS45TDEyMy41IDE5My4zYy00LjcgMTIuMy04IDI1LjItOS45IDM4Ljd6Il19LG8yZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1kYXlzIixpY29uOls0NDgsNTEyLFsiY2FsZW5kYXItYWx0Il0sImYwNzMiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAyNDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTI4IDBsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6TTY0IDM2OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LFk4dD1vMmUsczJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYW1vbmQtdHVybi1yaWdodCIsaWNvbjpbNTEyLDUxMixbImRpcmVjdGlvbnMiXSwiZjVlYiIsIk0yMTUgMTdMMTcgMjE1QzYuMSAyMjUuOSAwIDI0MC42IDAgMjU2czYuMSAzMC4xIDE3IDQxTDIxNSA0OTVjMTAuOSAxMC45IDI1LjYgMTcgNDEgMTdzMzAuMS02LjEgNDEtMTdMNDk1IDI5N2MxMC45LTEwLjkgMTctMjUuNiAxNy00MXMtNi4xLTMwLjEtMTctNDFMMjk3IDE3QzI4Ni4xIDYuMSAyNzEuNCAwIDI1NiAwcy0zMC4xIDYuMS00MSAxN3pNMzg1IDI1N2wtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtNzguMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDBjMC0zOS44IDMyLjItNzIgNzItNzJsNzguMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjl6Il19LFo4dD1zMmUsWDh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtdXAiLGljb246WzM4NCw1MTIsWzk3NTddLCJmMGE2IiwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBTOTYgMTQuMyA5NiAzMmwwIDIwOC02NCAwIDAtMjA4ek0yMjQgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0em0tNjQtNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNjAgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42IDEzLjIgMCAyNS40LTQgMzUuNi0xMC44IDguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjggMTEuNyAwIDIyLjYtMy4xIDMyLTguNmwwIDguNmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtNjEuNyAwYy00Mi40IDAtODMuMS0xNi45LTExMy4xLTQ2LjlMMzcuNSA0NTMuNUMxMy41IDQyOS41IDAgMzk2LjkgMCAzNjNsMC0yN2MwLTM1LjMgMjguNy02NCA2NC02NGw4OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJ6Il19LFE4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZXppZXItY3VydmUiLGljb246WzY0MCw1MTIsW10sImY1NWIiLCJNMjk2IDEzNmwwLTQ4IDQ4IDAgMCA0OC00OCAwek0yODggMzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNC0xMTguNCAwQzExMS4yIDYyLjcgODkuMyA0OCA2NCA0OCAyOC43IDQ4IDAgNzYuNyAwIDExMnMyOC43IDY0IDY0IDY0YzI1LjMgMCA0Ny4yLTE0LjcgNTcuNi0zNmw2Ni45IDBjLTU4LjkgMzkuNi05OC45IDEwNS0xMDQgMTgwTDgwIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMuMyAwYzUuOS02NyA0OC41LTEyMy40IDEwNy41LTE0OS4xIDguNiAxMi43IDIzLjIgMjEuMSAzOS44IDIxLjFsNjQgMGMxNi42IDAgMzEuMS04LjQgMzkuOC0yMS4xIDU5IDI1LjcgMTAxLjYgODIuMSAxMDcuNSAxNDkuMWwtMy4zIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00LjUgMGMtNS03NS00NS4xLTE0MC40LTEwNC0xODBsNjYuOSAwYzEwLjQgMjEuMyAzMi4zIDM2IDU3LjYgMzYgMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRjLTI1LjMgMC00Ny4yIDE0LjctNTcuNiAzNmwtMTE4LjQgMCAwLTRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTg4IDM3Nmw0OCAwIDAgNDgtNDggMCAwLTQ4em00MTYgNDhsMC00OCA0OCAwIDAgNDgtNDggMHoiXX0sSjh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oYWxmLWRyZXNzIixpY29uOlszODQsNTEyLFtdLCJlNTQ4IiwiTTE0My40LTMuOWM5LjctMTYuOCAyNy44LTI4LjEgNDguNi0yOC4xIDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMjUuNC0xNi45IDQ2LjgtNDAgNTMuN2wwIDBjLTUuMSAxLjUtMTAuNCAyLjMtMTYgMi4zLTMwLjkgMC01Ni0yNS4xLTU2LTU2bDAgMGMwLTEwLjEgMi43LTE5LjcgNy40LTI3Ljl6TTMxOC4zIDI5OS4xTDI3MiAyMzYuNyAyNzIgNTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYwIDAtLjQgMC0yMzguNmMzNi4yIDQuNCA2OS4yIDIzLjQgOTEuMiA1M2w3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZ6TTE3NiAxMTNsMCAzOTljMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMjUuOCAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw0My0xMjktNDguMyA2NS4xYy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NWMyMi0yOS42IDU1LjEtNDguNiA5MS4yLTUzeiJdfSxsMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBvbGwtaG9yaXpvbnRhbCIsaWNvbjpbNDQ4LDUxMixbInBvbGwtaCJdLCJmNjgyIiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYgMTUyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHptNzIgODBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIwOCAwek0xOTIgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR6Il19LEs4dD1sMmUsZXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NmQiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sdHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtbGl6YXJkIixpY29uOls1MTIsNTEyLFtdLCJmMjU4IiwiTTAgMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0bDIzOC41IDBjMzYuOCAwIDcxLjIgMTggOTIuMSA0OC4ybDExMy41IDE2NGMxMyAxOC43IDE5LjkgNDEgMTkuOSA2My44bDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTMuOC03OC4xLTUwLjItMTYxLjkgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGwxMjggMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw0OCAxNjBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxjMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbGtib2FyZCIsaWNvbjpbNTc2LDUxMixbImJsYWNrYm9hcmQiXSwiZjUxYiIsIk05NiA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTEyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgNjR6TTQ4MCAzODRsLTY0IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0xNjAgMCAwLTI1NiAzODQgMCAwIDI1NnoiXX0scnB0PWMyZSxkMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtcmlnaHQtZnJvbS1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJleHRlcm5hbC1saW5rLWFsdCJdLCJmMzVkIiwiTTI5MC40IDE5LjhDMjk1LjQgNy44IDMwNy4xIDAgMzIwIDBMNDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlMNDAwIDE1Ny4zIDI0Ni42IDMxMC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzNTQuNyAxMTIgMjk3LjQgNTQuNmMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0Ljl6TTAgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwbDgwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTgwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI1NmMwIDguOCA3LjIgMTYgMTYgMTZsMjU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDgwYzAgNDQuMi0zNS44IDgwLTgwIDgwTDgwIDUxMmMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCAxNzZ6Il19LGlwdD1kMmUsYXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1mdWxsIixpY29uOls1MTIsNTEyLFsxMjg5OTcsMTI4OTk4LDEyODk5OSwxMjllMywxMjkwMDEsMTI5MDAyLDEyOTAwMywxMTAzNSwxMTAzNl0sImY0NWMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMNDQ4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0eiJdfSxucHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdmVyIixpY29uOls1MTIsNTEyLFtdLCJlMTM5IiwiTTMxMC40IDE2QzM0Ni42IDE2IDM3NiA0NS40IDM3NiA4MS43bDAgNS4yYzAgMTEuMi0yLjcgMjIuMy03LjggMzIuMmwtMi4zIDQuMi0yMC4xIDMzLjVjLTEuMSAxLjktMS4yIDMuNC0xLjEgNC41IC4yIDEuMyAuOSAyLjcgMi4xIDMuOXMyLjYgMS45IDMuOSAyLjFjMS4xIC4yIDIuNiAuMSA0LjUtMS4xbDMzLjUtMjAuMSA0LjItMi4zYzEwLTUuMSAyMS03LjggMzIuMi03LjhsNS4yIDBjMzYuMiAwIDY1LjYgMjkuNCA2NS42IDY1LjcgMCAxNy40LTYuOSAzNC4xLTE5LjIgNDYuNGwtMS4zIDEuM2MtMy43IDMuNy0zLjcgOS42IDAgMTMuM2wxLjMgMS4zYzEyLjMgMTIuMyAxOS4yIDI5IDE5LjIgNDYuNCAwIDM2LjItMjkuNCA2NS42LTY1LjYgNjUuNmwtNS4yIDBjLTEyLjggMC0yNS41LTMuNS0zNi41LTEwLjFsLTMzLjUtMjAuMWMtMS45LTEuMS0zLjQtMS4yLTQuNS0xLjEtMS4zIC4yLTIuNyAuOS0zLjkgMi4xcy0xLjkgMi42LTIuMSAzLjljLS4yIDEuMS0uMSAyLjYgMS4xIDQuNWwyMC4xIDMzLjVjNi42IDExIDEwLjEgMjMuNiAxMC4xIDM2LjVsMCA1LjJjMCAzNi4yLTI5LjQgNjUuNi02NS42IDY1LjYtMTcuNCAwLTM0LjEtNi45LTQ2LjQtMTkuMmwtMS4zLTEuM2MtMy43LTMuNy05LjYtMy43LTEzLjMgMGwtMS4zIDEuM2MtMTIuMyAxMi4zLTI5IDE5LjItNDYuNCAxOS4yLTM2LjIgMC02NS42LTI5LjQtNjUuNy02NS42bDAtNS4yYzAtMTIuOCAzLjUtMjUuNSAxMC4xLTM2LjVsMjAuMS0zMy41YzEuMS0xLjkgMS4yLTMuNCAxLjEtNC41LS4yLTEuMy0uOS0yLjctMi4xLTMuOXMtMi42LTEuOS0zLjktMi4xYy0uNS0uMS0xLjItLjEtMS45IDBsLTIuNSAxLTMzLjUgMjAuMWMtMTEgNi42LTIzLjYgMTAuMS0zNi41IDEwLjFsLTUuMiAwQzQ1LjQgMzc2IDE2IDM0Ni42IDE2IDMxMC40IDE2IDI5MyAyMi45IDI3Ni4zIDM1LjIgMjY0bDEuMy0xLjMgMS4yLTEuNWMyLjEtMy4xIDIuMS03LjIgMC0xMC4zbC0xLjItMS41LTEuMy0xLjNDMjIuOSAyMzUuOCAxNiAyMTkuMSAxNiAyMDEuNyAxNiAxNjUuNCA0NS40IDEzNiA4MS43IDEzNmw1LjIgMGMxMi44IDAgMjUuNSAzLjUgMzYuNSAxMC4xbDMzLjUgMjAuMSAyLjUgMWMuNyAuMSAxLjQgLjEgMS45IC4xIDEuMy0uMiAyLjctLjkgMy45LTIuMXMxLjktMi42IDIuMS0zLjljLjEtLjUgLjEtMS4yLS4xLTEuOWwtMS0yLjUtMjAuMS0zMy41Yy02LjYtMTEtMTAuMS0yMy42LTEwLjEtMzYuNWwwLTUuMmMwLTM2LjIgMjkuNC02NS43IDY1LjctNjUuNyAxNy40IDAgMzQuMSA2LjkgNDYuNCAxOS4ybDEuMyAxLjNjMy43IDMuNiA5LjYgMy43IDEzLjMgMGwxLjMtMS4zIDQuOC00LjRDMjgwLjUgMjEuMyAyOTUuMSAxNiAzMTAuNCAxNnoiXX0sb3B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoLW9wZW4iLGljb246WzUxMiw1MTIsW10sImY2MmYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDgwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTAgMjcyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzA0em04MC0xNjBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0em0xMjggMGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMjR6TTgwIDExMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0zMjAgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDI0YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTI0ek00OCAzODRsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnptMTQ0IDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmw2NCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNmMwLTguOCA3LjItMTYgMTYtMTZsNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMTEyLTE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyeiJdfSxyRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXJzLXN0YWdnZXJlZCIsaWNvbjpbNTEyLDUxMixbInJlb3JkZXIiLCJzdHJlYW0iXSwiZjU1MCIsIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTY0IDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5NiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnoiXX0sc3B0PXJELGxwdD1yRCxjcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FyZWhvdXNlIixpY29uOls1NzYsNTEyLFtdLCJmNDk0IiwiTTAgMTQyLjFMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI0MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzM3LjljMC0yNy41LTE3LjYtNTItNDMuOC02MC43TDMwMy4yIDUuMWMtOS45LTMuMy0yMC41LTMuMy0zMC40IDBMNDMuOCA4MS40QzE3LjYgOTAuMSAwIDExNC42IDAgMTQyLjF6TTQ2NCAyNTZsLTM1MiAwIDAgNjQgMzUyIDAgMC02NHpNMTEyIDQxNmwzNTIgMCAwLTY0LTM1MiAwIDAgNjR6bTM1MiAzMmwtMzUyIDAgMCA2NCAzNTIgMCAwLTY0eiJdfSxkcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3dhdGNoYm9vayIsaWNvbjpbNTEyLDUxMixbXSwiZjVjMyIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzY4YzAgNTMtNDMgOTYtOTYgOTZTMCA0NjkgMCA0MTZMMCA0OHpNMjQwIDQwOS42bDAtMjcxLjUgNDguMS00OC4xYzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDY3LjkgNjcuOWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwyNDAgNDA5LjZ6TTIwNS41IDUxMmwxOTItMTkyIDY2LjYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yNTguNSAwek04MCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2TDgwIDY0ek02NCAyMDhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgNDQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sdXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbXBncm91bmQiLGljb246WzUxMiw1MTIsWzk5NzhdLCJmNmJiIiwiTTM0NC44IDUyLjNjMTEuMi0xMy43IDkuMi0zMy44LTQuNS00NXMtMzMuOC05LjItNDUgNC41bC0zOS4yIDQ4LTM5LjItNDhDMjA1LjYtMS45IDE4NS40LTQgMTcxLjcgNy4ycy0xNS43IDMxLjQtNC41IDQ1bDQ3LjQgNTgtMjAyIDI0Ni45QzQuNSAzNjcuMSAwIDM3OS42IDAgMzkyLjZMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsNDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zOS40YzAtMTIuOS00LjUtMjUuNS0xMi43LTM1LjVsLTIwMi0yNDYuOSA0Ny40LTU4ek0yNTYgMjg4bDExMiAxMjgtMjI0IDAgMTEyLTEyOHoiXX0scHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLWFycm93LXJpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJlNTUyIiwiTTEwNC41IDI0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptLTggMTgxLjNMNzMuOSAyMjcuOWMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzUuMS0zNS4xYzIyLjgtMjIuOCA1My42LTM1LjYgODUuOC0zNS42IDM2LjkgMCA3MS44IDE2LjggOTQuOCA0NS42TDI2Mi4zIDE4MGM2LjEgNy42IDE1LjMgMTIgMjUgMTJsMzMuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMy4yIDBjLTI5LjIgMC01Ni43LTEzLjMtNzUtMzZsLTMuOC00LjcgMCAxMTUuMiAzNC41IDI5LjZjMTcuNyAxNS4yIDI5LjMgMzYuMiAzMi42IDU5LjNsMTIuNiA4OC4xYzIuNSAxNy41LTkuNyAzMy43LTI3LjIgMzYuMnMtMzMuNy05LjctMzYuMi0yNy4ybC0xMi42LTg4LjFjLTEuMS03LjctNS0xNC43LTEwLjktMTkuOEwxMzAgMzQ3LjVjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3pNOTYuNiAzNzFjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNUw1NS4xIDUzNC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2OC4zLTY4LjNjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDk2LjYgMzcxek01MDUuNSAzNDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTAyLjEgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMDIuMSAwLTMxLTMxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyeiJdfSxocHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xhc3NlcyIsaWNvbjpbNTc2LDUxMixbXSwiZjUzMCIsIk0xNDMuMyA5NmMtMTQgMC0yNi41IDkuMi0zMC42IDIyLjZMNzAuNCAyNTYgMjI0IDI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMmw2NCAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDE1My42IDAtNDIuMy0xMzcuNEM0NTkuMiAxMDUuMiA0NDYuOCA5NiA0MzIuNyA5Nkw0MDAgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIuNyAwYzQyLjEgMCA3OS40IDI3LjUgOTEuOCA2Ny44bDQ1LjQgMTQ3LjVjNC4xIDEzLjIgNi4xIDI2LjkgNi4xIDQwLjdsMCA5NmMwIDUzLTQzIDk2LTk2IDk2bC02NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtMzItNjQgMCAwIDMyYzAgNTMtNDMgOTYtOTYgOTZsLTY0IDBjLTUzIDAtOTYtNDMtOTYtOTZsMC05NmMwLTEzLjggMi4xLTI3LjUgNi4xLTQwLjdMNTEuNSA5OS44QzYzLjkgNTkuNSAxMDEuMSAzMiAxNDMuMyAzMkwxNzYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyLjcgMHpNNjQgMzIwbDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0LTEyOCAwem00MTYgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NC0xMjggMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDB6Il19LHUyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGF1c2UiLGljb246WzUxMiw1MTIsWzYyMDkyLCJwYXVzZS1jaXJjbGUiXSwiZjI4YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjI0IDE5MmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xMjggMGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxmcHQ9dTJlLG1wdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZW1vcnkiLGljb246WzUxMiw1MTIsW10sImY1MzgiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhsMCA3LjRDMCAxNDIuMiA0LjQgMTQ4IDEwLjEgMTUxLjcgMjMuMyAxNjAuMyAzMiAxNzUuMSAzMiAxOTJzLTguNyAzMS43LTIxLjkgNDAuM0M0LjQgMjM2IDAgMjQxLjggMCAyNDguNmwwIDU1LjQgNTEyIDAgMC01NS40YzAtNi44LTQuNC0xMi42LTEwLjEtMTYuMy0xMy4yLTguNi0yMS45LTIzLjQtMjEuOS00MC4zczguNy0zMS43IDIxLjktNDAuM2M1LjctMy43IDEwLjEtOS41IDEwLjEtMTYuM2wwLTcuNGMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNTEyIDQxNmwwLTY0LTUxMiAwIDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMCAwLTI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyNCA4OCAwIDAtMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI0IDg4IDAgMC0yNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTYwIDE2MGwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwbDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxncHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2lmdCIsaWNvbjpbNTEyLDUxMixbMTI3ODczXSwiZjA2YiIsIk0zMjEuNSA2OC44QzMyOS4xIDU1LjkgMzQyLjkgNDggMzU3LjggNDhsMi4yIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBsLTczLjMgMCAzNC44LTU5LjJ6bS0xMzEgMGwzNC44IDU5LjItNzMuMyAwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwbDIuMiAwYzE0LjkgMCAyOC44IDcuOSAzNi4zIDIwLjh6bTg5LjYtMjQuM2wtMjQuMSA0MS0yNC4xLTQxQzIxNS43IDE2LjkgMTg2LjEgMCAxNTQuMiAwTDE1MiAwYy00OC42IDAtODggMzkuNC04OCA4OCAwIDE0LjQgMy41IDI4IDkuNiA0MEwzMiAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDEuNiAwYzYuMS0xMiA5LjYtMjUuNiA5LjYtNDAgMC00OC42LTM5LjQtODgtODgtODhsLTIuMiAwYy0zMS45IDAtNjEuNSAxNi45LTc3LjcgNDQuNHpNNDgwIDI3MmwtMjAwIDAgMCAyMDggMTM2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDR6bS0yNDggMGwtMjAwIDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTM2IDAgMC0yMDh6Il19LGJwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXdoZWF0IixpY29uOls1MTIsNTEyLFtdLCJlNTJhIiwiTTE3Ni0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2ek01NiAwbDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNTYgNDhDNDIuNyA0OCAzMiAzNy4zIDMyIDI0UzQyLjcgMCA1NiAwek0yNCA3MmwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCAxMjBDMTAuNyAxMjAgMCAxMDkuMyAwIDk2UzEwLjcgNzIgMjQgNzJ6bTggOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI3MiAwYzAtOC44IDcuMi0xNiAxNi0xNiA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODB6TTQwMC0xNmM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTYtNDQuMiAwLTgwLTM1LjgtODAtODAgMC04LjggNy4yLTE2IDE2LTE2em04MCAxNDRjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDExMmM4LjggMCAxNiA3LjIgMTYgMTYgMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwIDguOCAwIDE2IDcuMiAxNiAxNnpNMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMwNHpNNDggNDE2bDAgNDggNDggMGMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgMzA0bC00OCAwIDAgNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTQ2NCA0MTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDQ4IDAgMC00OHpNNDE2IDMwNGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwwLTQ4LTQ4IDB6bS05NiA4MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6Il19LHZwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW5nZW9uIixpY29uOls1MTIsNTEyLFtdLCJmNmQ5IiwiTTM0Ny41IDE0NC44YzYuNSA1LjQgMTIuNSAxMS4zIDE4IDE3LjcgOC43IDEwLjIgMjMuNyAxNCAzNS4xIDYuOWw1NC4xLTMzLjhjMTEuMi03IDE0LjctMjEuNyA2LjktMzIuMi0xNS4zLTIwLjUtMzMuNS0zOC42LTU0LjEtNTMuOC0xMC40LTcuNi0yNC43LTQuMy0zMS44IDYuNGwtMzUuMSA1Mi42Yy03LjggMTEuNi0zLjggMjcuMyA3IDM2LjJ6TTMyNy44IDQxLjFjOC42LTEyLjkgMi45LTMwLjUtMTIuMi0zNC4xLTE5LjEtNC42LTM5LjEtNy01OS42LTdzLTQwLjQgMi40LTU5LjYgN2MtMTUuMSAzLjYtMjAuOCAyMS4yLTEyLjIgMzQuMWw0MCA2MGM1LjIgNy44IDE0LjUgMTEuNyAyMy45IDExLjIgNS4yLS4zIDEwLjYtLjMgMTUuOCAwIDkuNCAuNSAxOC43LTMuNCAyMy45LTExLjJsNDAtNjB6TTUwLjUgMTAzLjNjLTcuOSAxMC41LTQuMyAyNS4zIDYuOSAzMi4ybDU0LjEgMzMuOGMxMS40IDcuMSAyNi4zIDMuMyAzNS4xLTYuOSA1LjUtNi40IDExLjUtMTIuMyAxOC0xNy43IDEwLjgtOC45IDE0LjgtMjQuNiA3LTM2LjJMMTM2LjQgNTUuOWMtNy4xLTEwLjctMjEuNS0xNC0zMS44LTYuNC0yMC42IDE1LjEtMzguOCAzMy4zLTU0LjEgNTMuOHptNjIgMTQxLjFjLjgtOS45LTMuMy0xOS45LTExLjgtMjUuMUw0MSAxODJjLTEyLjktOC0yOS45LTIuMy0zMy42IDEyLjUtNC45IDE5LjctNy41IDQwLjMtNy41IDYxLjZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjRjMC0zLjkgLjItNy44IC41LTExLjZ6bTI4Ny4xIDBjLjMgMy44IC41IDcuNyAuNSAxMS42bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjEuMi0yLjYtNDEuOC03LjUtNjEuNi0zLjYtMTQuNy0yMC43LTIwLjUtMzMuNi0xMi41bC01OS43IDM3LjNjLTguNCA1LjMtMTIuNiAxNS4yLTExLjggMjUuMXpNODggMzUybC02NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNEwwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em00MDAgMGwtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjgwIDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0em0tODAgMzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnptMTYwIDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI3MnoiXX0scDJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1aXRjYXNlLW1lZGljYWwiLGljb246WzUxMiw1MTIsWyJtZWRraXQiXSwiZjBmYSIsIk0xOTIgNTZsMCA0MCAxMjggMCAwLTQwYzAtNC40LTMuNi04LTgtOEwyMDAgNDhjLTQuNCAwLTggMy42LTggOHptLTQ4IDhsMC04YzAtMzAuOSAyNS4xLTU2IDU2LTU2TDMxMiAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2bDAgNDI0LTIyNCAwIDAtNDE2ek05NiAxNzZsMCAzMDQtMzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIgMCAwIDgwek00MTYgNDgwbDAtMzg0IDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyIDB6TTI0NCAyMDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM2LTM2IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwzNiAwIDAgMzZjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzYgMzYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTM2IDAgMC0zNmMwLTguOC03LjItMTYtMTYtMTZsLTI0IDB6Il19LHhwdD1wMmUseXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jYW5lIixpY29uOls0NDgsNTEyLFtdLCJlNTNjIiwiTTIzMi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTQ0IDIzNi43TDk3LjcgMjk5LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzE0MiAxMzIgMTgxLjcgMTEyIDIyNCAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMzA0IDIzNi43IDMwNCA1MTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNzUuM3pNMzkyIDM4NGMtNC40IDAtOCAzLjYtOCA4IDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMjhjMC00LjQtMy42LTgtOC04eiJdfSxfZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZSIsaWNvbjpbNTEyLDUxMixbImRhc2hib2FyZCIsImdhdWdlLW1lZCIsInRhY2hvbWV0ZXItYWx0LWF2ZXJhZ2UiXSwiZjYyNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zTDI4MCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNzIuN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6TTE0NCAxNzZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0tMTYgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjg4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDAwIDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSx3cHQ9X2csTXB0PV9nLGtwdD1fZyxTcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUtb3Blbi10ZXh0IixpY29uOls1NzYsNTEyLFtdLCJmNjU4IiwiTTI4OCAzMy45TDk2LjQgMTc1LjggMjU0LjUgMjkzYzUuMyAzLjkgMTEuMiA2LjkgMTcuNSA4LjdMMjcyIDQ2NGMwIDUuNSAuNSAxMC44IDEuMyAxNkw5NiA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMjM5LjljMC0yMC4zIDkuNi0zOS40IDI1LjktNTEuNEwyNTQuNS0yMWM5LjctNy4yIDIxLjQtMTEgMzMuNS0xMXMyMy44IDMuOSAzMy41IDExTDUxOC4xIDEyNC43YzcuMiA1LjMgMTMuMSAxMiAxNy40IDE5LjYtMi41LS4yLTUtLjMtNy41LS4zTDQzNi42IDE0NCAyODggMzMuOXpNMzIwIDI0MGMwLTI2LjUgMjEuNS00OCA0OC00OGwxNjAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDIyNGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjI0em04MCAxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC05NiAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDB6Il19LHpwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b29sYm94IixpY29uOls1MTIsNTEyLFsxMjk1MjBdLCJmNTUyIiwiTTE3NiA1NmwwIDQwIDE2MCAwIDAtNDBjMC00LjQtMy42LTgtOC04TDE4NCA0OGMtNC40IDAtOCAzLjYtOCA4ek0xMjggOTZsMC00MGMwLTMwLjkgMjUuMS01NiA1Ni01NkwzMjggMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQwIDI4LjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xbDUxLjkgNTEuOWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOWwwIDc2LjEtMTM2IDAgMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE2LTE0NCAwIDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxNi0xMzYgMCAwLTc2LjFjMC0xMi43IDUuMS0yNC45IDE0LjEtMzMuOWw1MS45LTUxLjljOS05IDIxLjItMTQuMSAzMy45LTE0LjFMMTI4IDk2ek0wIDQxNmwwLTk2IDEzNiAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDE0NCAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDEzNiAwIDAgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NHoiXX0sQ3B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvd2VyLW9mZiIsaWNvbjpbNTEyLDUxMixbOTIxMV0sImYwMTEiLCJNMjg4IDBjMC0xNy43LTE0LjMtMzItMzItMzJTMjI0LTE3LjcgMjI0IDBsMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkwyODggMHpNMTQ2LjMgOTguNGMxNC41LTEwLjEgMTgtMzAuMSA3LjktNDQuNnMtMzAuMS0xOC00NC42LTcuOUM0My40IDkyLjEgMCAxNjkgMCAyNTYgMCAzOTcuNCAxMTQuNiA1MTIgMjU2IDUxMlM1MTIgMzk3LjQgNTEyIDI1NmMwLTg3LTQzLjQtMTYzLjktMTA5LjctMjEwLjEtMTQuNS0xMC4xLTM0LjQtNi42LTQ0LjYgNy45cy02LjYgMzQuNCA3LjkgNDQuNmM0OS44IDM0LjggODIuMyA5Mi40IDgyLjMgMTU3LjYgMCAxMDYtODYgMTkyLTE5MiAxOTJTNjQgMzYyIDY0IDI1NmMwLTY1LjIgMzIuNS0xMjIuOSA4Mi4zLTE1Ny42eiJdfSxpRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaWduYWwiLGljb246WzUxMiw1MTIsWzEyODI0Niwic2lnbmFsLTUiLCJzaWduYWwtcGVyZmVjdCJdLCJmMDEyIiwiTTQ4OCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAwek0zNjAgMTI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzA0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0yODAgMjQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6TTE1MiAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTQ4IDM4NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFRwdD1pRCxfcHQ9aUQsTHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1zcGluIixpY29uOls1MTIsNTEyLFtdLCJlNGJiIiwiTTQ4MS43IDI0MC4xYy0xNy42LTEuMi0zMi45IDEyLTM0LjIgMjkuNy0zLjMgNDctMjMuNiA4OS40LTU0LjggMTIxTDM2MSAzNTljLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzIwIDM2Ni4zIDMyMCAzNzZsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC0zNS0zNWM0MS43LTQyLjIgNjguOS05OC44IDczLjQtMTYxLjggMS4yLTE3LjYtMTItMzIuOS0yOS43LTM0LjJ6TTM5IDQxTDc0IDc2Yy00MS43IDQyLjItNjguOSA5OC44LTczLjQgMTYxLjgtMS4yIDE3LjYgMTIgMzIuOSAyOS43IDM0LjJzMzIuOS0xMiAzNC4yLTI5LjdjMy4zLTQ3IDIzLjYtODkuNCA1NC44LTEyMUwxNTEgMTUzYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMTkyIDE0NS43IDE5MiAxMzZsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRMNTYgMEM0Ni4zIDAgMzcuNSA1LjggMzMuOCAxNC44UzMyLjIgMzQuMSAzOSA0MXptMjAxLTEwLjdjLTEuMiAxNy42IDEyIDMyLjkgMjkuNyAzNC4yIDQ3IDMuMyA4OS40IDIzLjYgMTIxIDU0LjhMMzU5IDE1MWMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMzNjYuMyAxOTIgMzc2IDE5MmwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTExMmMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJTNDc3LjkgMzIuMiA0NzEgMzlMNDM2IDc0Yy00Mi4yLTQxLjctOTguOC02OC45LTE2MS44LTczLjQtMTcuNi0xLjItMzIuOSAxMi0zNC4yIDI5Ljd6TTQxIDQ3M2wzNS0zNWM0Mi4yIDQxLjcgOTguOCA2OC45IDE2MS44IDczLjQgMTcuNiAxLjIgMzIuOS0xMiAzNC4yLTI5LjdzLTEyLTMyLjktMjkuNy0zNC4yYy00Ny0zLjMtODkuNC0yMy42LTEyMS01NC44TDE1MyAzNjFjNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMlMxNDUuNyAzMjAgMTM2IDMyMEwyNCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0TDAgNDU2YzAgOS43IDUuOCAxOC41IDE0LjggMjIuMlMzNC4xIDQ3OS44IDQxIDQ3M3oiXX0sQXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImpvaW50IixpY29uOls1NzYsNTEyLFtdLCJmNTk1IiwiTTM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsMjEgMjFDNDY5IDE5MSA0ODAgMjE3LjQgNDgwIDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTljMC0xNC45LTUuOS0yOS4xLTE2LjQtMzkuNmwtMjEtMjFDMzU3LjEgMTQ2LjkgMzM2IDk2IDMzNiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0ek01NTIgMjg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE5YzAtNDAuMy0xNi03OS00NC41LTEwNy41bC0yMS0yMUM0NDMgOTcgNDMyIDcwLjYgNDMyIDQzbDAtMTljMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE5YzAgMTQuOSA1LjkgMjkuMSAxNi40IDM5LjZsMjEgMjFDNTU0LjkgMTQxLjEgNTc2IDE5MiA1NzYgMjQ1bDAgMTljMCAxMy4zLTEwLjcgMjQtMjQgMjR6TTI5Mi43IDMyMGM1LjYgMCAxMC43IDIuOSAxMy42IDcuNkwzOTQuNiA0NzFjMS4zIDIuMSAwIDQuOS0yLjQgNS4yLTE2LjEgMi41LTMyLjQgMy43LTQ4LjcgMy43bC0zOC4xIDBjLTUuNiAwLTEwLjctMi45LTEzLjYtNy42bC03OS0xMjguNGMtNi05LjggMC0yMi42IDExLjUtMjMuMyA2LjctLjQgMTMuNC0uNiAyMC4yLS42bDQ4LjMgMHpNNDU5LjMgNDY1LjljLTYuNCAxLTEyLjctMS45LTE2LjEtNy40TDM3NC4xIDM0Ni4xYy02LjctMTAuOSAxLjUtMjQuNyAxNC4yLTIyLjkgMS4zIC4yIDIuNiAuNCAzLjggLjZsMTM2LjQgMjFjMjcuMyA0LjIgNDcuNCAyNy43IDQ3LjQgNTUuM3MtMjAuMSA1MS4xLTQ3LjQgNTUuM2wtNjkuMiAxMC42ek0xMzguNyAzMzZjNi43LTEuNSAxMy42IDEuNCAxNy4yIDcuMmw2OC45IDExMmM2LjYgMTAuNy0xLjIgMjQuNC0xMy44IDIzLjEtMTMtMS40LTI1LjktMy41LTM4LjYtNi41TDMxLjIgNDM5LjJDMTIuOSA0MzUgMCA0MTguNyAwIDQwMHMxMi45LTM1IDMxLjItMzkuMkwxMzguNyAzMzZ6Il19LERwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmFpbGxlIixpY29uOlszODQsNTEyLFtdLCJmMmExIiwiTTgwIDE0NGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMCAxOTJhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAgMTM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHptMCA1NmM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MC04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODB6bTI0OC04MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjR6bTU2IDBjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODAgMzUuOCA4MCA4MCA4MCA4MC0zNS44IDgwLTgwek0zMDQgMjMyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMCAxMDRhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTAtMTkyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYweiJdfSxoMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFza2V0LXNob3BwaW5nIixpY29uOls1NzYsNTEyLFsic2hvcHBpbmctYmFza2V0Il0sImYyOTEiLCJNMjg4IDBjNi42IDAgMTIuOSAyLjcgMTcuNCA3LjVsMTQ0IDE1MiAuNSAuNSA3OC4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAxNC41LTkuNiAyNi43LTIyLjggMzAuN0w0OTEuMSA0MjkuOWMtNi41IDI5LjMtMzIuNSA1MC4xLTYyLjUgNTAuMWwtMjgxLjMgMGMtMzAgMC01Ni0yMC44LTYyLjUtNTAuMWwtNDYtMjA3LjJjLTEzLjItMy45LTIyLjgtMTYuMi0yMi44LTMwLjcgMC0xNy43IDE0LjMtMzIgMzItMzJsNzguMSAwIC41LS41IDE0NC0xNTJDMjc1LjEgMi43IDI4MS40IDAgMjg4IDB6bTAgNTguOUwxOTIuMiAxNjAgMzgzLjggMTYwIDI4OCA1OC45ek0yMDggMjY0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMTJ6bTgwLTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMjggMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTExMnoiXX0sRXB0PWgyZSwkcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlIixpY29uOls1MTIsNTEyLFtdLCJlNGM4IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NGMwLTM4LjggMjYuNC03Mi42IDY0LTgybDAtMTEyLTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHoiXX0sSXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWFycml2YWwiLGljb246WzU3Niw1MTIsWzEyODc0OF0sImY1YWYiLCJNMzg2LjYgMTkzLjFMMjY1LjkgMy43Yy00LjgtNy42LTEyLjYtMTIuOC0yMS40LTE0LjNsLTQzLjEtNy42Yy0xMC44LTEuOS0yMC4yIDcuMy0xOC42IDE4LjFsMjQgMTYxLjYtMTA1LTE4LjUtMzMuOC02MS44QzY0LjUgNzQuNyA1OC4yIDcwLjIgNTEuMSA2OUwzNCA2NmMtOS44LTEuNy0xOC44IDUuOS0xOC44IDE1LjhsLjYgMTA2LjNjLjIgMzAuOSAyMi40IDU3LjMgNTIuOSA2Mi43bDEzLjUgMi40IDAgMCA0MTcuNiA3My42YzMwLjUgNS40IDU5LjUtMTUgNjQuOS00NS40cy0xNS01OS41LTQ1LjQtNjQuOUwzODYuNiAxOTMuMXpNMjI0IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEzMS4yLTE1LjNhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQ0OHoiXX0sUHB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhc2gtcmVnaXN0ZXIiLGljb246WzUxMiw1MTIsW10sImY3ODgiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NHMyOC43IDY0IDY0IDY0bDQ4IDAgMCAzMi01NyAwYy0zMS42IDAtNTguNSAyMy4xLTYzLjMgNTQuNEwxLjEgMzY0LjFDLjQgMzY4LjggMCAzNzMuNiAwIDM3OC40TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjkuNmMwLTQuOC0uNC05LjYtMS4xLTE0LjRMNDg4LjIgMjE0LjRDNDgzLjUgMTgzLjEgNDU2LjYgMTYwIDQyNSAxNjBsLTIxNyAwIDAtMzIgNDggMGMzNS4zIDAgNjQtMjguNyA2NC02NFMyOTEuMyAwIDI1NiAwTDk2IDB6bTAgNDhsMTYwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZMOTYgODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6TTY0IDQyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCA0NDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0em00OC0xNjBhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjAtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMTYwIDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTMyOCAyNDBhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMjU2IDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTQyNCAyNDBhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMzUyIDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6Il19LE5wdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaW5nIixpY29uOls1MTIsNTEyLFtdLCJmNzBiIiwiTTY0IDIwOGMwIDcuOCA0LjQgMTguNyAxNy4xIDMwLjMgNDUuNC0yNC4yIDEwNy43LTM4LjMgMTc0LjktMzguM3MxMjkuNSAxNC4xIDE3NC45IDM4LjNjMTIuOC0xMS42IDE3LjEtMjIuNSAxNy4xLTMwLjMgMC0xMi4zLTEwLjgtMzItNDcuOS01MC42LTM1LjItMTcuNi04Ni4xLTI5LjQtMTQ0LjEtMjkuNHMtMTA4LjkgMTEuOC0xNDQuMSAyOS40Qzc0LjggMTc2IDY0IDE5NS43IDY0IDIwOHptMTkyIDQwYy00NyAwLTg5LjMgNy42LTEyMi45IDE5LjcgMzMuMiAxMi40IDc1LjcgMjAuMyAxMjIuOSAyMC4zczg5LjctNy44IDEyMi45LTIwLjNDMzQ1LjMgMjU1LjYgMzAzIDI0OCAyNTYgMjQ4ek0wIDIwOEMwIDE1OC40IDM5LjQgMTIyLjIgODMuMyAxMDAuMiAxMjkuMSA3Ny4zIDE5MC4zIDY0IDI1NiA2NHMxMjYuOSAxMy4zIDE3Mi43IDM2LjJjNDMuOSAyMiA4My4zIDU4LjIgODMuMyAxMDcuOGwwIDk2YzAgNDkuNi0zOS40IDg1LjgtODMuMyAxMDcuOC00NS45IDIyLjktMTA3IDM2LjItMTcyLjcgMzYuMlMxMjkuMSA0MzQuNyA4My4zIDQxMS44QzM5LjQgMzg5LjggMCAzNTMuNiAwIDMwNGwwLTk2eiJdfSxGcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXF1YXJpdXMiLGljb246WzU3Niw1MTIsW10sImU4NDUiLCJNNDAxLjcgMjkxLjRjOS00LjUgMTkuNi00LjUgMjguNiAwbDEyOCA2NGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDQxNiAzNTUuOCAzMDIuMyA0MTIuNmMtOSA0LjUtMTkuNiA0LjUtMjguNiAwTDE2MCAzNTUuOCA0Ni4zIDQxMi42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDEyOC02NGM5LTQuNSAxOS42LTQuNSAyOC42IDBMMjg4IDM0OC4yIDQwMS43IDI5MS40em0zLjQtMTkzLjVjOC4yLTMgMTcuMy0yLjUgMjUuMiAxLjVsMTI4IDY0YzE1LjggNy45IDIyLjIgMjcuMSAxNC4zIDQyLjlzLTI3LjEgMjIuMi00Mi45IDE0LjNMNDE2IDE2My44IDMwMi4zIDIyMC42Yy05IDQuNS0xOS42IDQuNS0yOC42IDBMMTYwIDE2My44IDQ2LjMgMjIwLjZjLTE1LjggNy45LTM1IDEuNS00Mi45LTE0LjNzLTEuNS0zNSAxNC4zLTQyLjlsMTI4LTY0IDMuNC0xLjVjOC4yLTMgMTcuMy0yLjUgMjUuMiAxLjVsMTEzLjcgNTYuOCAxMTMuNy01Ni44IDMuNC0xLjV6Il19LGYyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFyZS1ub2RlcyIsaWNvbjpbNTEyLDUxMixbInNoYXJlLWFsdCJdLCJmMWUwIiwiTTM4NCAxOTJjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTYtOTYgNDMtOTYgOTZjMCA1LjQgLjUgMTAuOCAxLjMgMTZMMTU5LjYgMTg0LjFjLTE2LjktMTUtMzkuMi0yNC4xLTYzLjYtMjQuMS01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzI0LjQgMCA0Ni42LTkuMSA2My42LTI0LjFMMjg5LjMgNDAwYy0uOSA1LjItMS4zIDEwLjUtMS4zIDE2IDAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTYtNDMtOTYtOTYtOTZjLTI0LjQgMC00Ni42IDkuMS02My42IDI0LjFMMTkwLjcgMjcyYy45LTUuMiAxLjMtMTAuNSAxLjMtMTZzLS41LTEwLjgtMS4zLTE2bDEyOS43LTcyLjFjMTYuOSAxNSAzOS4yIDI0LjEgNjMuNiAyNC4xeiJdfSxPcHQ9ZjJlLFJwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTNmIiwiTTI4MCAyNGE1NiA1NiAwIDEgMCAtMTEyIDAgNTYgNTYgMCAxIDAgMTEyIDB6bTI0IDIxMi43TDM0MSAyODYuNmMxMi44LTE3LjUgMjguNS0zMi43IDQ2LjMtNDVsLTU2LjItNzUuN0MzMDYgMTMyIDI2Ni4zIDExMiAyMjQgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZMMTQ0IDIzNi43IDE0NCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEJwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaW5vY3VsYXJzIixpY29uOls1MTIsNTEyLFtdLCJmMWU1IiwiTTEyOCAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA5NmwwIDMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNTkuMWMwLTM0LjYgOS40LTY4LjYgMjcuMi05OC4zIDEzLjctMjIuOCAyMi41LTQ4LjIgMjUuOC03NC42TDYwLjUgMTU2YzItMTYgMTUuNi0yOCAzMS44LTI4bDk5LjggMHptMjI3LjggMGMxNi4xIDAgMjkuOCAxMiAzMS44IDI4TDQ1OSAyMTZjMy4zIDI2LjQgMTIuMSA1MS44IDI1LjggNzQuNiAxNy44IDI5LjcgMjcuMiA2My43IDI3LjIgOTguM2wwIDU5LjFjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyMCA5OS44IDB6TTMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzItOTYgMCAwLTMyem0tMzIgNjRsMCAxNjAtNjQgMCAwLTE2MCA2NCAweiJdfSxIcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2lwLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxYzQiLCJNMzQwLjggODguM2MxMy40LTExLjUgMTUtMzEuNyAzLjUtNDUuMXMtMzEuNy0xNS00NS4xLTMuNUwxMjggMTg2LjQgMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNjgtMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjIuNCAxNzEuMiAxNDYuN2MxMy40IDExLjUgMzMuNiA5LjkgNDUuMS0zLjVzOS45LTMzLjYtMy41LTQ1LjFMMTczLjIgMjgwIDM1MiAyODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTczLjIgMjMyIDM0MC44IDg4LjN6Il19LG0yZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXJkLWRyaXZlIixpY29uOls0NDgsNTEyLFsxMjg0MzYsImhkZCJdLCJmMGEwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAyNjAuMUMxOC4xIDI0Ny40IDQwLjIgMjQwIDY0IDI0MGwzMjAgMGMyMy44IDAgNDUuOSA3LjQgNjQgMjAuMUw0NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTQ0OCAzNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjR6TTIyNCAzODRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0scXB0PW0yZSxqcHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFua2luZy1zdGFyIixpY29uOls1NzYsNTEyLFtdLCJlNTYxIiwiTTMyMS44IDU0LjFMMjk4LjIgNi4zYy0zLjktOC4zLTE2LjEtOC42LTIwLjQgMGwtMjMuNiA0Ny44LTUyLjMgNy41Yy05LjMgMS40LTEzLjMgMTIuOS02LjQgMTkuOGwzOCAzNy05IDUyLjFjLTEuNCA5LjMgOC4yIDE2LjUgMTYuOCAxMi4ybDQ2LjktMjQuOCA0Ni42IDI0LjRjOC42IDQuMyAxOC4zLTIuOSAxNi44LTEyLjJsLTktNTIuMSAzOC0zNi42YzYuOC02LjggMi45LTE4LjMtNi40LTE5LjhsLTUyLjMtNy41ek0yNTYgMjU2Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE2MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTYwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek00OCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwek00MTYgNDMybDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC02NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OHoiXX0sVnB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItdGllIixpY29uOls0NDgsNTEyLFtdLCJmNTA4IiwiTTIyNCAyNDhhMTIwIDEyMCAwIDEgMSAwLTI0MCAxMjAgMTIwIDAgMSAxIDAgMjQwem0tMzAuNSA1Nmw2MSAwYzkuNyAwIDE3LjUgNy44IDE3LjUgMTcuNSAwIDQuMi0xLjUgOC4yLTQuMiAxMS40bC0yNy40IDMyIDMxIDExNS4xIC42IDAgMzQuNi0xMzguNWMyLjItOC43IDExLjEtMTQgMTkuNS0xMC44IDYxLjkgMjMuNiAxMDUuOSA4My42IDEwNS45IDE1My44IDAgMTUuMS0xMi4zIDI3LjQtMjcuNCAyNy40TDQzLjQgNTEyYy0xNS4xIDAtMjcuNC0xMi4zLTI3LjQtMjcuNCAwLTcwLjIgNDQtMTMwLjIgMTA1LjktMTUzLjggOC40LTMuMiAxNy4zIDIuMSAxOS41IDEwLjhsMzQuNiAxMzguNSAuNiAwIDMxLTExNS4xLTI3LjQtMzJjLTIuNy0zLjItNC4yLTcuMi00LjItMTEuNCAwLTkuNyA3LjgtMTcuNSAxNy41LTE3LjV6Il19LGcyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcyIsaWNvbjpbNDQ4LDUxMixbImVsbGlwc2lzLWgiXSwiZjE0MSIsIk0wIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6bTE2OCAwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjI0LTU2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyeiJdfSxVcHQ9ZzJlLFdwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9yZS1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA3MSIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01OC42LTU4LjZjMS4xLTQgMS42LTguMiAxLjYtMTIuNWwwLTE1MS4yYy0xMi41IDQuNi0yNi4xIDcuMi00MC41IDcuMi04LjEgMC0xNS45LS44LTIzLjUtMi40bDAgNjYuNC0zMC4yIDAtMTM3LjUtMTM3LjVjMi45LTMuNiA1LjUtNy40IDcuNi0xMS41IDExLjYgMjIgMzQuNyAzNyA2MS4zIDM3IDI2LjggMCA0OS44LTE1LjEgNjEuNC0zNy4xIDExLjQgMjIuMSAzNC41IDM3LjEgNjAuOCAzNy4xIDQ1LjYgMCA3OC40LTQzLjcgNjUuNi04Ny41TDUxMy44IDcyLjNDNTA2LjggNDguNCA0ODQuOSAzMiA0NjAgMzJMMTE2IDMyYy01LjUgMC0xMC44IC44LTE1LjkgMi4zTDQxLTI0Ljl6TTE1MS41IDIyMS4zTDQ4LjcgMTE4LjYgMzguOSAxNTIuNWMtMTIuOCA0My43IDIwIDg3LjUgNjUuNiA4Ny41IDE4LjEgMCAzNC43LTcuMSA0Ny0xOC43ek00MTAuMiA0ODBsLTEyOC0xMjgtMTU0LjIgMCAwLTY2LjRjLTcuNiAxLjYtMTUuNSAyLjQtMjMuNSAyLjQtMTQuNCAwLTI4LTIuNi00MC41LTcuMkw2NCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMjk4LjIgMHoiXX0sYjJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcmNlbnQiLGljb246WzQ0OCw1MTIsWzYyMTAxLDYyNzg1LCJwZXJjZW50YWdlIl0sIjI1IiwiTTE5MiAxMjhhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwek00NDggMzg0YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHpNNDM4LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMzg0IDM4NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwzODQtMzg0eiJdfSxHcHQ9YjJlLHYyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXppcHBlciIsaWNvbjpbMzg0LDUxMixbImZpbGUtYXJjaGl2ZSJdLCJmMWM2IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek02NCA3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDQ4Qzc0LjcgNDggNjQgNTguNyA2NCA3MnptMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNjQgNzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMTYgNjRhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyeiJdfSxZcHQ9djJlLFpwdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaXNwbGF5IixpY29uOls1MTIsNTEyLFtdLCJlMTYzIiwiTTQ0OCA5NmwwIDI1Ni0zODQgMCAwLTI1NiAzODQgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDQgMC0xNiA0OC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwLTE2LTQ4IDE0NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyeiJdfSx4MmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWNvbnMiLGljb246WzUxMiw1MTIsWyJoZWFydC1tdXNpYy1jYW1lcmEtYm9sdCJdLCJmODZkIiwiTTE3NC45IDI3MmMxMC43IDAgMjAuNyA1LjMgMjYuNiAxNC4ybDExLjggMTcuOCAyNi43IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDM1MmMwLTI2LjUgMjEuNS00OCA0OC00OGwyNi43IDAgMTEuOC0xNy44YzUuOS04LjkgMTUuOS0xNC4yIDI2LjYtMTQuMmw2MS43IDB6bTI3OC42LTEyYzUuNi00LjkgMTMuOS01LjMgMTkuOS0uOXM4LjMgMTIuNCA1LjMgMTkuM0w0NDAuMyAzNjggNDk2IDM2OGM2LjcgMCAxMi42IDQuMSAxNSAxMC40cy42IDEzLjMtNC40IDE3LjdsLTEyOCAxMTJjLTUuNiA0LjktMTMuOSA1LjMtMTkuOSAuOXMtOC4zLTEyLjQtNS4zLTE5LjNsMzguNS04OS43LTU1LjggMGMtNi43IDAtMTIuNi00LjEtMTUtMTAuNHMtLjYtMTMuMyA0LjQtMTcuN2wxMjgtMTEyek0xNDQgMzYwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnpNNDgzLjggLjRjNi41LTEuMSAxMy4xIC40IDE4LjUgNC40IDYuMSA0LjUgOS43IDExLjcgOS43IDE5LjJsMCAxNTItLjMgNC45Yy0zLjMgMjQuMi0zMC41IDQzLjEtNjMuNyA0My4xLTM1LjMgMC02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhjNS41IDAgMTAuOSAuNiAxNiAxLjZsMC00OS4zLTExMiAzMy42IDAgMTEwLjItLjMgNC45Yy0zLjMgMjQuMi0zMC41IDQzLjEtNjMuNyA0My4xLTM1LjMgMC02NC0yMS41LTY0LTQ4czI4LjctNDggNjQtNDhjNS41IDAgMTAuOSAuNiAxNiAxLjZMMzA0IDcyYzAtMTAuNiA3LTIwIDE3LjEtMjNsMTYwLTQ4IDIuNy0uNnpNMTg4LjkgMEMyMjYgMCAyNTYgMzAgMjU2IDY3LjFsMCA2LjFjMCA1Ni4xLTc1LjIgMTEyLjEtMTEwLjMgMTM1LjMtMTAuOCA3LjEtMjQuNiA3LjEtMzUuNCAwLTM1LjEtMjMuMS0xMTAuMy03OS4yLTExMC4zLTEzNS4zbDAtNi4xQzAgMzAgMzAgMCA2Ny4xIDAgODguMiAwIDEwOCA5LjkgMTIwLjcgMjYuOGw3LjMgOS44IDcuMy05LjhDMTQ4IDkuOSAxNjcuOCAwIDE4OC45IDB6Il19LFhwdD14MmUsUXB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLXZlcnRpY2FsIixpY29uOlsyNTYsNTEyLFtdLCJmNTQ4IiwiTTAgMTZDMC0xMC41IDIxLjUtMzIgNDgtMzJsMTYwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyNC0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDQgMCAwIDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNzIgMCAwIDQ4LTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNDgtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgNDgtMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTA0IDAgMCAyNGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1NDRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTZ6Il19LHkyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXAtbG9jYXRpb24tZG90IixpY29uOls2NDAsNTEyLFsibWFwLW1hcmtlZC1hbHQiXSwiZjVhMCIsIk01NzYgNDhjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRMNDEzLjUgNzcuNSAyMzQuMSAxNy42Yy04LjEtMi43LTE2LjgtMi4xLTI0LjQgMS43bC0xMjggNjRDNzAuOCA4OC44IDY0IDk5LjkgNjQgMTEybDAgMzUyYzAgMTEuMSA1LjcgMjEuNCAxNS4yIDI3LjJzMjEuMiA2LjQgMzEuMSAxLjRsMTE2LjEtNTguMSAxNzMuMyA1Ny44Yy00LjMtNi40LTguNS0xMy4xLTEyLjYtMTkuOS0xMS0xOC4zLTIxLjktMzkuMy0zMC02MS44bC0xMDEuMi0zMy43IDAtMjg0LjUgMTI4IDQyLjcgMCA5OS4zYzMxLTM1LjggNzctNTguNCAxMjgtNTguNCAyMi42IDAgNDQuMiA0LjQgNjQgMTIuNUw1NzYgNDh6TTUxMiAyMjRjLTY2LjMgMC0xMjAgNTIuOC0xMjAgMTE3LjkgMCA2OC45IDY0LjEgMTUwLjQgOTguNiAxODkuMyAxMS42IDEzIDMxLjMgMTMgNDIuOSAwIDM0LjUtMzguOSA5OC42LTEyMC40IDk4LjYtMTg5LjMgMC02NS4xLTUzLjctMTE3LjktMTIwLTExNy45ek00NzIgMzQ0YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6Il19LEpwdD15MmUsdzJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNyYWNrIixpY29uOls1MTIsNTEyLFsxMjgxNDgsImhlYXJ0LWJyb2tlbiJdLCJmN2E5IiwiTTEzMy4xIDMyYzE3LjMgMCAzNC4yIDMuNCA0OS45IDkuN2w1NC44IDg1LjItNzUuNCA3NS40Yy0xLjUgMS41LTIuNCAzLjYtMi4zIDUuOHMxIDQuMiAyLjYgNS43bDExMiAxMDRjMi45IDIuNyA3LjQgMi45IDEwLjUgLjNzMy44LTcgMS43LTEwLjRsLTYwLjQtOTguMSA5MC43LTc1LjZjMi42LTIuMSAzLjUtNS43IDIuNC04LjhMMjk2LjQgNjAuNkMzMTkuNiA0Mi4zIDM0OC42IDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDExMi4yLTEzOS45IDI0Mi41LTIxMi45IDI5OC4yLTEyLjQgOS40LTI3LjYgMTQuMS00My4xIDE0LjFzLTMwLjgtNC42LTQzLjEtMTQuMUMxMzkuOSA0MTAuMiAwIDI3OS45IDAgMTY3LjdsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzJ6Il19LEtwdD13MmUsZWh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvdyIsaWNvbjpbNjQwLDUxMixbMTI4MDA0XSwiZjZjOCIsIk05NiAyMjRsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTg4LjJjOS45IDYuNiAyMC42IDEyIDMyIDE2LjFsMCAyNC4yYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNi45YzUuMyAuNiAxMC42IC45IDE2IC45czEwLjctLjMgMTYtLjlsMCAxNi45YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0yNC4yYzExLjQtNCAyMi4xLTkuNCAzMi0xNi4xbDAgODguMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTYwIDMyIDMyIDAgNDkuNWMwIDkuNSAyLjggMTguNyA4LjEgMjYuNkw1MzAgNDI3YzguOCAxMy4xIDIzLjUgMjEgMzkuMyAyMSAyMi41IDAgNDEuOS0xNS45IDQ2LjMtMzhsMjAuMy0xMDEuNmMyLjYtMTMtLjMtMjYuNS04LTM3LjNsLTMuOS01LjUgMC04MS42YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTQuNC01Mi45LTc0LjFDNDk2IDg2LjUgNDUyLjQgNjQgNDA1LjkgNjRMMTQ0IDY0Qzc3LjcgNjQgMjQgMTE3LjcgMjQgMTg0bDAgNTRDOS40IDI0OS44IDAgMjY3LjggMCAyODhsMCAxNy42YzAgOCA2LjQgMTQuNCAxNC40IDE0LjQgMzEuOCAwIDU3LjYtMjUuOCA1Ny42LTU3LjZMNzIgMTg0YzAtMjQuMyAxMi4xLTQ1LjggMzAuNS01OC45LTQuMiAxMC44LTYuNSAyMi42LTYuNSAzNC45bDAgNjR6TTU2MCAzMzZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMTY2LjYgMTY2LjZjLTQuMi00LjItNi42LTEwLTYuNi0xNiAwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmwxNzguNyAwYzEyLjUgMCAyMi42IDEwLjEgMjIuNiAyMi42IDAgNi0yLjQgMTEuOC02LjYgMTZsLTIzLjQgMjMuNEMzMzIuMiAyMTEuOCAzMDIuNyAyMjQgMjcyIDIyNHMtNjAuMi0xMi4yLTgxLjktMzMuOWwtMjMuNC0yMy40eiJdfSxXZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyc3MiLGljb246WzQ0OCw1MTIsWyJmZWVkIl0sImYwOWUiLCJNMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMiAyMjkuOCAwIDQxNiAxODYuMiA0MTYgNDE2IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyQzM4NCAyNTMuNiAyMjYuNCA5NiAzMiA5NiAxNC4zIDk2IDAgODEuNyAwIDY0ek0wIDQxNmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTMyIDE2MGMxNTkuMSAwIDI4OCAxMjguOSAyODggMjg4IDAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyYzAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjQtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sdGh0PVdnLEdnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MiLGljb246WzUxMiw1MTIsWzEyODI2OSwic2VhcmNoIl0sImYwMDIiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0yMDggMzUyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHoiXX0scmh0PUdnLGlodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZC1tb29uIixpY29uOls2NDAsNTEyLFtdLCJmNmMzIiwiTTQ4MCAwYzE0LjYgMCAyOC44IDEuNiA0Mi41IDQuNyA3LjQgMS43IDEzIDcuOCAxMy45IDE1LjRzLTMgMTQuOS05LjggMTguM2MtNDUuNCAyMi42LTc2LjYgNjkuNS03Ni42IDEyMy42IDAgNzYuMiA2MS44IDEzOCAxMzggMTM4IDMuNyAwIDcuNC0uMSAxMS4xLS40IDcuNi0uNiAxNC43IDMuNiAxNy44IDEwLjZzMS41IDE1LjEtMy45IDIwLjRjLTI2IDI1LTU5LjEgNDIuNy05NS45IDQ5LjktMTEuMS0yNS4zLTMwLjItNDYuMy01NC4xLTU5LjgtNy42LTYzLjQtNjEuNi0xMTIuNi0xMjcuMS0xMTIuNi0xMS4yIDAtMjIuMSAxLjUtMzIuNSA0LjItNC44LTQuMi05LjktOC4yLTE1LjItMTEuOC0uMS0yLjgtLjItNS42LS4yLTguNCAwLTEwNiA4Ni0xOTIgMTkyLTE5MnptLS4xIDQzMS45YzAgNDQuMi0zNS44IDgwLTgwIDgwbC0yNzEuOSAwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDcuNiAzNC42LTg3IDgwLTk0LjYtLjQtNTIuOCA0Mi45LTk3LjMgOTYtOTcuMyAzNC45IDAgNjUuNCAxOC42IDgyLjIgNDYuNCAxMy05LjEgMjguOC0xNC40IDQ1LjgtMTQuNCA0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDUuOS0uNiAxMS43LTEuOSAxNy4yIDM3LjQgNi43IDY1LjggMzkuNCA2NS44IDc4Ljd6Il19LGFEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveGVzLXN0YWNrZWQiLGljb246WzUxMiw1MTIsWzYyNjI1LCJib3hlcyIsImJveGVzLWFsdCJdLCJmNDY4IiwiTTIyNCAwbDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDUuNS0uNyAxMC45LTIgMTZsLTI1MiAwYy0xLjMtNS4xLTItMTAuNS0yLTE2bDAtMTI4YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyIDB6bTk2IDUxMmMtMTEuMiAwLTIxLjgtMi45LTMxLTggOS41LTE2LjUgMTUtMzUuNiAxNS01NmwwLTEyOGMwLTIwLjQtNS41LTM5LjUtMTUtNTYgOS4yLTUuMSAxOS43LTggMzEtOGwzMiAwIDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjQgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMTI4IDB6TTAgMzIwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyIDAgMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC02NCAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzMjB6Il19LGFodD1hRCxuaHQ9YUQsb2h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtYnJhbmNoIixpY29uOls0NDgsNTEyLFtdLCJmMTI2IiwiTTgwIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTgwLTI0YzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCA3MC43IDE3NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjIuN2MtMjguMy0xMi4zLTQ4LTQwLjUtNDgtNzMuMyAwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNsMCAyMi43YzAgNjEuOS01MC4xIDExMi0xMTIgMTEybC0xNzYgMCAwIDcwLjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuMyAwIDQ0LjItMzUuOCA4MC04MCA4MFMwIDQ3Ni4yIDAgNDMyYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNsMC0yMDUuM0MxOS43IDE0MSAwIDExMi44IDAgODAgMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIzMiAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTgwIDQ1NmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LE0yZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYW4iLGljb246WzUxMiw1MTIsWzEyODY4MywiY2FuY2VsIl0sImYwNWUiLCJNMzY3LjIgNDEyLjVMOTkuNSAxNDQuOGMtMjIuNCAzMS40LTM1LjUgNjkuOC0zNS41IDExMS4yIDAgMTA2IDg2IDE5MiAxOTIgMTkyIDQxLjUgMCA3OS45LTEzLjEgMTExLjItMzUuNXptNDUuMy00NS4zYzIyLjQtMzEuNCAzNS41LTY5LjggMzUuNS0xMTEuMiAwLTEwNi04Ni0xOTItMTkyLTE5Mi00MS41IDAtNzkuOSAxMy4xLTExMS4yIDM1LjVMNDEyLjUgMzY3LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LHNodD1NMmUsbGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imp1Zy1kZXRlcmdlbnQiLGljb246WzM4NCw1MTIsW10sImU1MTkiLCJNOTYgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCA5NkM3NC43IDk2IDY0IDg1LjMgNjQgNzJTNzQuNyA0OCA4OCA0OGw4IDAgMC0yNHpNMCAyNTZjMC03MC43IDU3LjMtMTI4IDEyOC0xMjhsMTI4IDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxOTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDI1NnptMjU2IDBsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6Il19LGsyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXBseSIsaWNvbjpbNTEyLDUxMixbNjE3MTQsIm1haWwtcmVwbHkiXSwiZjNlNSIsIk0yMDQuMiAxOC40YzEyIDUgMTkuOCAxNi42IDE5LjggMjkuNmwwIDgwIDExMiAwYzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2IDAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMS0yLjUgMS40LTUuMyAxLjktOC4xIDEuOS0xMC45IDAtMTkuNy04LjktMTkuNy0xOS43IDAtNy41IDQuMy0xNC40IDkuOC0xOS41IDkuNC04LjggMjIuMi0yNi40IDIyLjItNTYuNyAwLTUzLTQzLTk2LTk2LTk2bC05NiAwIDAgODBjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDE2MC0xNjBjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02Ljl6Il19LGNodD1rMmUsZGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN1bi1wbGFudC13aWx0IixpY29uOls2NDAsNTEyLFtdLCJlNTdhIiwiTTE2MCAwYy01LjUgMC0xMC42IDIuOC0xMy41IDcuNGwtMS4xIDIuMS0yNC44IDU1LjQtNTYuNy0yMS43Yy01LjktMi4yLTEyLjUtLjgtMTcgMy43UzQxIDU4IDQzLjIgNjMuOWwyMS43IDU2LjctNTUuNCAyNC44QzMuNyAxNDggMCAxNTMuNyAwIDE2MHMzLjcgMTIgOS41IDE0LjZsNTUuNCAyNC44LTIxLjcgNTYuN2MtMi4yIDUuOS0uOCAxMi41IDMuNyAxN3MxMS4xIDUuOSAxNyAzLjdsNTYuNy0yMS43IDI0LjggNTUuNGMyLjYgNS44IDguMyA5LjUgMTQuNiA5LjVzMTItMy43IDE0LjYtOS41bDI0LjgtNTUuNCA1Ni44IDIxLjdjNS45IDIuMiAxMi41IC44IDE3LTMuN3M1LjktMTEuMSAzLjctMTdsLTIxLjctNTYuNyA1NS40LTI0LjhjNS44LTIuNiA5LjUtOC4zIDkuNS0xNC42cy0zLjctMTItOS41LTE0LjZsLTU1LjQtMjQuOCAyMS43LTU2LjcgLjctMi4yYzEuMi01LjMtLjQtMTAuOS00LjMtMTQuOHMtOS41LTUuNS0xNC44LTQuM2wtMi4yIC43LTU2LjggMjEuNy0yNC44LTU1LjRDMTcyIDMuNyAxNjYuMyAwIDE2MCAwem0wIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zNzYgMTZsMCA1My40Yy0xNC44IDcuNy0yNCAyMy4xLTI0IDQ0LjYgMCAxNi44IDE2IDQ0IDM3LjQgNjcuMiA1LjggNi4yIDE1LjUgNi4yIDIxLjIgMCAyMS40LTIzLjMgMzcuNC01MC42IDM3LjQtNjcuMiAwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC01My40YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgMjIuN2MtOS44LTQuMy0yMC42LTYuNy0zMi02LjctNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMS40Yy0xNC44IDcuNi0yNCAyMy4xLTI0IDQ0LjYgMCAxNi44IDE2IDQ0IDM3LjQgNjcuMiA1LjggNi4yIDE1LjUgNi4yIDIxLjIgMCAyMS40LTIzLjMgMzcuNC01MC42IDM3LjQtNjcuMiAwLTIxLjUtOS4yLTM3LTI0LTQ0LjZsMC0yMS40YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzYtNDI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwNCAwIDAtMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6Il19LHVodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWN0ZXJpdW0iLGljb246WzU3Niw1MTIsW10sImUwNWEiLCJNNDA4IDE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzM2MCAyLjcgMzYwIDE2bDAgMjMuNGMtMTMuOSA1LjMtMjYuOSAxMy41LTM4LjIgMjQuNUwzMDUgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44LTMwLjEgMzAuMS0xNi44LTE2LjhjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMTYuOCAxNi44Yy0xMCAxMC0yMCAyMC0zMC4xIDMwLjFMMTc3IDE3NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjgtMzAuMSAzMC4xLTE2LjgtMTYuOGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwxNi44IDE2LjhjLTExIDExLjMtMTkuMiAyNC4zLTI0LjUgMzguMkw0OCAzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYuMyAwYzEuMyAxOC4zIDcuMSAzNi40IDE3LjQgNTIuNEw3MSA0MzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMC42LTEwLjZjMTYgMTAuMyAzNC4xIDE2LjEgNTIuNCAxNy40bDAgMTYuM2MwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjMuNGMxMy45LTUuMyAyNi45LTEzLjUgMzguMi0yNC41TDI3MSA0NjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xNi44LTE2LjggMzAuMS0zMC4xIDE2LjggMTYuOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOGMxMC0xMCAyMC0yMCAzMC4xLTMwLjFMMzk5IDMzN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTE2LjgtMTYuOCAzMC4xLTMwLjEgMTYuOCAxNi44YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTYuOC0xNi44YzExLTExLjMgMTkuMi0yNC4zIDI0LjUtMzguMmwyMy40IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE2LjMgMGMtMS4zLTE4LjMtNy4xLTM2LjQtMTcuNC01Mi40TDUwNSA3M2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQ2MC40IDQ5LjdjLTE2LTEwLjMtMzQuMS0xNi4xLTUyLjQtMTcuNEw0MDggMTZ6TTE2MCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjcyIDI0MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHBodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWNvcmQtdmlueWwiLGljb246WzUxMiw1MTIsW10sImY4ZDkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2LTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0wIDI0MGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTEyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUzJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZsb3BweS1kaXNrIixpY29uOls0NDgsNTEyLFsxMjgxOTAsMTI4NDI2LCJzYXZlIl0sImYwYzciLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI0Mi43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDM1MiA1MC43QzM0MCAzOC43IDMyMy43IDMyIDMwNi43IDMyTDY0IDMyem0zMiA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHpNMjI0IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0saGh0PVMyZSxmaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0cy1wb3J0YWJsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTU4NCIsIk02NCAwbDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNi0yMjQgMCAwLTE2QzAgMjguNyAyOC43IDAgNjQgMHpNMCAxMjhsMjI0IDAgMCAzNjBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LTEyOCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDUwMS4zIDAgNDg4TDAgMTI4ek0xMjggMjQ4bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQgMCAwLTk2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zNTIgMGw5NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMjI0IDAgMC0xNmMwLTM1LjMgMjguNy02NCA2NC02NHpNMjg4IDEyOGwyMjQgMCAwIDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTgtMTI4IDAgMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMzYwek00MTYgMjQ4bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQgMCAwLTk2LTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0eiJdfSxtaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibyIsaWNvbjpbNDQ4LDUxMixbMTExXSwiNGYiLCJNMjI0IDk2YTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDEgMCAwLTMyMHpNNDQ4IDI1NmEyMjQgMjI0IDAgMSAxIC00NDggMCAyMjQgMjI0IDAgMSAxIDQ0OCAweiJdfSxnaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFsZXR0ZSIsaWNvbjpbNTEyLDUxMixbMTI3OTEyXSwiZjUzZiIsIk01MTIgMjU2YzAgLjkgMCAxLjggMCAyLjctLjQgMzYuNS0zMy42IDYxLjMtNzAuMSA2MS4zTDM0NCAzMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgMy40IC40IDYuNyAxIDkuOSAyLjEgMTAuMiA2LjUgMjAgMTAuOCAyOS45IDYuMSAxMy44IDEyLjEgMjcuNSAxMi4xIDQyIDAgMzEuOC0yMS42IDYwLjctNTMuNCA2Mi0zLjUgLjEtNyAuMi0xMC42IC4yLTE0MS40IDAtMjU2LTExNC42LTI1Ni0yNTZTMTE0LjYgMCAyNTYgMCA1MTIgMTE0LjYgNTEyIDI1NnpNMTI4IDI4OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wLTk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVubG9jayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc1XSwiZjA5YyIsIk0xMjggOTZjMC0zNS4zIDI4LjctNjQgNjQtNjQgMzEuNyAwIDU4IDIzIDYzLjEgNTMuMyAyLjkgMTcuNCAxOS40IDI5LjIgMzYuOSAyNi4zczI5LjItMTkuNCAyNi4zLTM2LjlDMzA4LjEgMTQuMSAyNTUuNS0zMiAxOTItMzIgMTIxLjMtMzIgNjQgMjUuMyA2NCA5NmwwIDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NGwtMTkyIDAgMC02NHoiXX0sejJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhci1saXN0ZW4iLGljb246WzUxMiw1MTIsWyJhc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXMiXSwiZjJhMiIsIk0zNzkuNiAuM2MtOC45IDEuMi0xNy4yIDYuMi0yMi40IDE0LjEtNi44IDEwLjQtNyAyNC4xLS40IDM0LjYgNS42IDguOSAxNS41IDEyLjcgMjMuOCAxOC41IDcuNSA1LjIgMTcuNiAxMy4yIDI3LjcgMjQuMiAyMCAyMS43IDM5LjUgNTQuMyAzOS41IDEwMC4zIDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02Ni0yOC41LTExMy40LTU2LjUtMTQzLjctMTMuOS0xNS4xLTI3LjgtMjYuMS0zOC4zLTMzLjMtMTEtNy42LTIzLjUtMTYuNi0zNy42LTE0Ljd6TTI0MCAxMjhjLTU3LjYgMC0xMDUuMSA0My42LTExMS4zIDk5LjUtMS45IDE3LjYtMTcuOCAzMC4yLTM1LjMgMjguM3MtMzAuMi0xNy44LTI4LjMtMzUuM2M5LjctODggODQuMy0xNTYuNSAxNzQuOS0xNTYuNSA5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NiAwIDQ2LTE3LjcgODcuOS00Ni42IDExOS4zLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdsMCA2LjFjMCA2MS45LTUwLjEgMTEyLTExMiAxMTItMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTYuMWMwLTMyLjkgMTcuNC01OS42IDM0LjQtNzggMTguNC0yMCAyOS42LTQ2LjYgMjkuNi03NS45IDAtNjEuOS01MC4xLTExMi0xMTItMTEyek0wIDQ4MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xNjAtOTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek04Ni42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHpNMjQwIDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnoiXX0sdmh0PXoyZSx4aHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1wdWxsLXJlcXVlc3QiLGljb246WzUxMiw1MTIsW10sImUxM2MiLCJNMzI4IDI0YzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMlMyOTMuOSAuMiAyODcgN0wyMzEgNjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU2IDU2YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJTMzI4IDE0NS43IDMyOCAxMzZsMC0yNCAyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjE0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zTDQ0OCAxNDRjMC01My00My05Ni05Ni05NmwtMjQgMCAwLTI0ek03MiA4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem01NiA3My4zYzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjMgMC00NC4yLTM1LjgtODAtODAtODBTMTYgMzUuOCAxNiA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgMjA1LjNjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtMjA1LjN6TTcyIDQzMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0zNDQtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSx5aHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2V5IixpY29uOls1MTIsNTEyLFsxMjgyNzNdLCJmMDg0IiwiTTMzNiAzNTJjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZTNDMzLjIgMCAzMzYgMCAxNjAgNzguOCAxNjAgMTc2YzAgMTguNyAyLjkgMzYuOCA4LjMgNTMuN0w3IDM5MWMtNC41IDQuNS03IDEwLjYtNyAxN2wwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00MCA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDAgNDAgMGM2LjQgMCAxMi41LTIuNSAxNy03bDMzLjMtMzMuM2MxNi45IDUuNCAzNSA4LjMgNTMuNyA4LjN6TTM3NiA5NmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LHdodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJza3VsbCIsaWNvbjpbNTEyLDUxMixbMTI4MTI4XSwiZjU0YyIsIk00MTYgNDI3LjRjNTguNS00NCA5Ni0xMTEuNiA5Ni0xODcuNCAwLTEzMi41LTExNC42LTI0MC0yNTYtMjQwUzAgMTA3LjUgMCAyNDBjMCA3NS44IDM3LjUgMTQzLjQgOTYgMTg3LjRMOTYgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDMyIDAgMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAgNjQgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MCAzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzYuNnpNOTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMjU2LTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxDMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UtdXAiLGljb246WzM4NCw1MTIsWzk4OTYsIm1hcnMtc3Ryb2tlLXYiXSwiZjIyYSIsIk0xOTIgMjU2YTExMiAxMTIgMCAxIDAgMCAyMjQgMTEyIDExMiAwIDEgMCAwLTIyNHpNMTYgMzY4YzAtODYuMyA2Mi4xLTE1OC4xIDE0NC4xLTE3My4xLS4xLS45LS4xLTEuOS0uMS0yLjlsMC0xNi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02MS40LTI4IDIyLjRjLTEzLjggMTEtMzMuOSA4LjgtNDUtNXMtOC44LTMzLjkgNS00NWw4MC02NGMxMS43LTkuMyAyOC4zLTkuMyA0MCAwbDgwIDY0YzEzLjggMTEgMTYgMzEuMiA1IDQ1cy0zMS4yIDE2LTQ1IDVsLTI4LTIyLjQgMCA2MS40IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxNmMwIDEgMCAxLjktLjEgMi45IDgyIDE1IDE0NC4xIDg2LjggMTQ0LjEgMTczLjEgMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMTYgNDY1LjIgMTYgMzY4eiJdfSxNaHQ9QzJlLFQyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXJlLWZsYW1lLXNpbXBsZSIsaWNvbjpbMzg0LDUxMixbImJ1cm4iXSwiZjQ2YSIsIk0zNzIuNSAyNTYuNWwtLjctMS45QzMzNy44IDE2MC44IDI4MiA3Ni41IDIwOS4xIDguNWwtMy4zLTNDMjAyLjEgMiAxOTcuMSAwIDE5MiAwcy0xMC4xIDItMTMuOCA1LjVsLTMuMyAzQzEwMiA3Ni41IDQ2LjIgMTYwLjggMTIuMiAyNTQuNmwtLjcgMS45QzMuOSAyNzcuMyAwIDI5OS40IDAgMzIxLjYgMCA0MjYuNyA4Ni44IDUxMiAxOTIgNTEyczE5Mi04NS4zIDE5Mi0xOTAuNGMwLTIyLjItMy45LTQ0LjItMTEuNS02NS4xem0tOTAuOCA0OS41YzQuMSA5LjMgNi4yIDE5LjQgNi4yIDI5LjUgMCA1My00MyA5Ni41LTk2IDk2LjVzLTk2LTQzLjUtOTYtOTYuNWMwLTEwLjEgMi4xLTIwLjMgNi4yLTI5LjVsMS45LTQuM2MxNS44LTM1LjQgMzcuOS02Ny43IDY1LjMtOTUuMWw4LjktOC45YzMuNi0zLjYgOC41LTUuNiAxMy42LTUuNnMxMCAyIDEzLjYgNS42bDguOSA4LjljMjcuNCAyNy40IDQ5LjYgNTkuNyA2NS4zIDk1LjFsMS45IDQuM3oiXX0sa2h0PVQyZSxTaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJlZSIsaWNvbjpbNDQ4LDUxMixbMTI3Nzk0XSwiZjFiYiIsIk0yMjQtMzJjNyAwIDEzLjcgMy4xIDE4LjMgOC41bDEzNiAxNjBjNi4xIDcuMSA3LjQgMTcuMSAzLjUgMjUuNlMzNjkuNCAxNzYgMzYwIDE3NmwtMjQuOSAwIDc1LjIgODguNWM2LjEgNy4xIDcuNCAxNy4xIDMuNSAyNS42UzQwMS40IDMwNCAzOTIgMzA0bC0zOC41IDAgODguOCAxMDQuNWM2LjEgNy4xIDcuNCAxNy4xIDMuNSAyNS42UzQzMy40IDQ0OCA0MjQgNDQ4bC0xNjggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtMTY4IDBjLTkuNCAwLTE3LjktNS40LTIxLjgtMTMuOXMtMi42LTE4LjUgMy41LTI1LjZMOTQuNSAzMDQgNTYgMzA0Yy05LjQgMC0xNy45LTUuNC0yMS44LTEzLjlzLTIuNi0xOC41IDMuNS0yNS42TDExMi45IDE3NiA4OCAxNzZjLTkuNCAwLTE3LjktNS40LTIxLjgtMTMuOXMtMi42LTE4LjUgMy41LTI1LjZsMTM2LTE2MEMyMTAuMy0yOC45IDIxNy0zMiAyMjQtMzJ6Il19LHpodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbW9nIixpY29uOls1NzYsNTEyLFtdLCJmNzVmIiwiTTE3NiAyODhDOTYuNSAyODggMzIgMjIzLjUgMzIgMTQ0Uzk2LjUgMCAxNzYgMGMyNy4yIDAgNTIuNiA3LjUgNzQuMyAyMC42IDIwLjEtMTMgNDQtMjAuNiA2OS43LTIwLjYgNDcuNCAwIDg4LjcgMjUuNyAxMTAuOSA2NGwxLjEgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMiAwIDYwLjMtNDcuNiAxMDkuNC0xMDcuMiAxMTEuOS0yMi42IDIwLTUyLjMgMzIuMS04NC44IDMyLjEtMzIuNSAwLTYyLjEtMTIuMS04NC43LTMyTDE3NiAyODh6TTUxMiAzOTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRMMjQgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0ek04OCA0NjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTc2IDBsMjg4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI4OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxDaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicyIsaWNvbjpbMzIwLDUxMixbMTE1XSwiNTMiLCJNMCAxNTcuNUMwIDg4LjIgNTYuMiAzMiAxMjUuNSAzMkwyNzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMTI1LjUgOTZjLTM0IDAtNjEuNSAyNy41LTYxLjUgNjEuNSAwIDMxIDIzLjEgNTcuMiA1My45IDYxTDIxMC4xIDIzMEMyNzIuOSAyMzcuOSAzMjAgMjkxLjIgMzIwIDM1NC41IDMyMCA0MjMuOCAyNjMuOCA0ODAgMTk0LjUgNDgwTDQ4IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNDYuNSAwYzM0IDAgNjEuNS0yNy41IDYxLjUtNjEuNSAwLTMxLTIzLjEtNTcuMi01My45LTYxTDEwOS45IDI4MkM0Ny4xIDI3NC4xIDAgMjIwLjggMCAxNTcuNXoiXX0sVGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImplZGkiLGljb246WzU3Niw1MTIsW10sImY2NjkiLCJNMjQ2IDMxNS43bC0yMS4yLTMxLjljLTIuMS0zLjItMS43LTcuNCAxLTEwLjFzNi45LTMuMSAxMC4xLTFsMjkuNSAxOS43YzIuMSAxLjQgNC45LS4xIDUtMi42TDI3OS43IDhjLjEtNC41IDMuOC04IDguMy04czguMSAzLjUgOC4zIDhsOS40IDI4MS45Yy4xIDIuNSAyLjkgMy45IDUgMi42bDI5LjUtMTkuN2MzLjItMi4xIDcuNC0xLjcgMTAuMSAxczMuMSA2LjkgMSAxMC4xTDMzMCAzMTUuN2MtMS4zIDEuOS0uMiA0LjUgMiA0LjlsMzcuNiA3LjVjMy43IC43IDYuNCA0IDYuNCA3LjhzLTIuNyA3LjEtNi40IDcuOEwzMzIgMzUxLjRjLTIuMiAuNC0zLjMgMy0yIDQuOWwyMS4yIDMxLjljMi4xIDMuMiAxLjcgNy40LTEgMTAuMXMtNi45IDMuMS0xMC4xIDFsLTI2LjMtMTcuNmMtMi4yLTEuNC01LjEgLjItNSAyLjhsMi4xIDYxLjVjNTkuOC0xMC44IDEwNS4xLTYzLjEgMTA1LjEtMTI2IDAtMzctMTUuNy03MC40LTQwLjgtOTMuNy03LTYuNS02LjUtMTguNiAxLTI0LjQgMzQtMjYuMyA1NS44LTY3LjUgNTUuOC0xMTMuOSAwLTE2LjgtMi45LTMzLTguMi00OC00LjYtMTMgMTAuMi0zMCAyMS40LTIyIDUzLjUgMzggOTIuNyA5NC44IDEwNy44IDE2MC43IC41IDIuMS0uMiA0LjMtMS43IDUuOWwtMjguNCAyOC40Yy00IDQtMS4yIDEwLjkgNC41IDEwLjlsMjYgMGMzLjQgMCA2LjIgMi42IDYuMyA2IC4xIDMuMyAuMiA2LjYgLjIgMTAgMCAxNy41LTEuNyAzNC43LTQuOCA1MS4zLS4yIDEuMi0uOSAyLjQtMS43IDMuM2wtNDYuNSA0Ni41Yy00IDQtMS4yIDEwLjkgNC41IDEwLjlsMTQuNiAwYzQuNiAwIDcuNyA0LjggNS43IDktNDQuNSA4OS41LTEzNi45IDE1MS0yNDMuNyAxNTFTODguOCA0NTAuNSA0NC4zIDM2MWMtMi4xLTQuMiAxLTkgNS43LTlsMTQuNiAwYzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjIuNiAyOTQuNmMtLjktLjktMS41LTItMS43LTMuMy0zLjItMTYuNi00LjgtMzMuOC00LjgtNTEuMyAwLTMuMyAuMS02LjcgLjItMTAgLjEtMy40IDIuOS02IDYuMy02bDI2IDBjNS43IDAgOC42LTYuOSA0LjUtMTAuOUwyNC42IDE4NC42Yy0xLjUtMS41LTIuMi0zLjgtMS43LTUuOSAxNS4yLTY2IDU0LjMtMTIyLjggMTA3LjgtMTYwLjcgMTEuMy04IDI2IDguOSAyMS40IDIyLTUuMyAxNS04LjIgMzEuMi04LjIgNDggMCA0Ni4zIDIxLjkgODcuNSA1NS44IDExMy45IDcuNSA1LjggOCAxNy45IDEgMjQuNC0yNS4xIDIzLjQtNDAuOCA1Ni43LTQwLjggOTMuNyAwIDYyLjkgNDUuNCAxMTUuMiAxMDUuMSAxMjZsMi4xLTYxLjVjLjEtMi42LTIuOC00LjItNS0yLjhsLTI2LjMgMTcuNmMtMy4yIDIuMS03LjQgMS43LTEwLjEtMXMtMy4xLTYuOS0xLTEwLjFMMjQ2IDM1Ni4zYzEuMy0xLjkgLjItNC41LTItNC45bC0zNy42LTcuNWMtMy43LS43LTYuNC00LTYuNC03LjhzMi43LTcuMSA2LjQtNy44bDM3LjYtNy41YzIuMi0uNCAzLjMtMyAyLTQuOXoiXX0sXzJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1oaWtpbmciLGljb246WzQ0OCw1MTIsWyJoaWtpbmciXSwiZjZlYyIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTEyOCAxNzMuNmMwLTM0IDI3LjYtNjEuNiA2MS42LTYxLjYgMjAuMyAwIDM5LjcgOC4xIDU0IDIyLjRsNDguMiA0OC4yYzYgNiAxNC4xIDkuNCAyMi42IDkuNGwzNy41IDBjNS44IDAgMTEuMyAxLjYgMTYgNC4zbDAtNzYuM2MwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDAwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMjY4LjNjLTQuNyAyLjctMTAuMiA0LjMtMTYgNC4zbC0zNy41IDBjLTI1LjUgMC00OS45LTEwLjEtNjcuOS0yOC4xbC02LjYtNi42IDAgMTA5LjIgMzQuNSAyOS42YzE3LjcgMTUuMiAyOS4zIDM2LjIgMzIuNiA1OS4zbDEyLjYgODguMWMyLjUgMTcuNS05LjcgMzMuNy0yNy4yIDM2LjJzLTMzLjctOS43LTM2LjItMjcuMmwtMTIuNi04OC4xYy0xLjEtNy43LTUtMTQuNy0xMC45LTE5LjhsLTcxLjQtNjEuMmMtMjEuMy0xOC4yLTMzLjUtNDQuOS0zMy41LTcyLjlsMC0xMDF6bS00LjggMjAzLjdjMi4zIDIuMyA0LjcgNC40IDcuMSA2LjVsNDQuOSAzOC41Yy0zLjYgOC40LTguNSAxNi4zLTE0LjQgMjMuNEw4OC42IDUzMi41Yy0xMS4zIDEzLjYtMzEuNSAxNS40LTQ1LjEgNC4xcy0xNS40LTMxLjUtNC4xLTQ1LjFsNzIuMy04Ni43YzIuNi0zLjEgNC41LTYuNiA1LjgtMTAuNGw1LjctMTcuMXpNMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjQgMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6Il19LF9odD1fMmUsTGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy11cC10by1saW5lIixpY29uOls0NDgsNTEyLFtdLCJlNGMyIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJTNDMzLjcgMCA0MTYgMEwzMiAwem04Ni42IDEzNy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNjQgMjM3LjMgNjQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNDIuNyA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0em0yNTYgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAyNDIuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQyLjcgOS40IDkuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC02NC02NHoiXX0sQWh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtZG91YmxlIixpY29uOls2NDAsNTEyLFs5ODkxXSwiZjIyNyIsIk0yODggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJMNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC01MC43LTk1IDk1YzE5LjUgMjguNCAzMSA2Mi43IDMxIDk5LjggMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZTMCA0MDEuMiAwIDMwNCA3OC44IDEyOCAxNzYgMTI4YzM3IDAgNzEuNCAxMS40IDk5LjggMzFsOTUtOTUtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTc2IDQxNmExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6bTE2MCA2NGMtNi44IDAtMTMuNC0uNC0yMC0xLjEgMjMuNi0xOC45IDQzLjMtNDIuNSA1Ny42LTY5LjQgNDMuMy0xNS41IDc0LjQtNTYuOSA3NC40LTEwNS41IDAtMjUuMi04LjMtNDguNS0yMi40LTY3LjIgNy4xIDIuMSAxNC42IDMuMiAyMi40IDMuMiAxNyAwIDMyLjctNS4zIDQ1LjctMTQuMyAxMS43IDIzLjYgMTguMyA1MC4yIDE4LjMgNzguMyAwIDk3LjItNzguOCAxNzYtMTc2IDE3NnpNNTI4IDE1Ny4zTDUyOCAzMmMwLTExLjQtMi40LTIyLjItNi43LTMyTDYwOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy00OCA0OHoiXX0sRGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRoZXJtb21ldGVyIixpY29uOls1MTIsNTEyLFtdLCJmNDkxIiwiTTk2IDM4Mi4xbDAtODguOGMwLTE0LjkgNS45LTI5LjEgMTYuNC0zOS42bDIxLjctMjEuNyA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDQ2LjEtNDYuMSA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDQ2LjEtNDYuMSA0MSA0MWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQxLTQxIDcuOC03LjhjMTkuNC0xOS40IDQ1LjYtMzAuMiA3My0zMC4yIDU3IDAgMTAzLjIgNDYuMiAxMDMuMiAxMDMuMiAwIDI3LjQtMTAuOSA1My42LTMwLjIgNzNMMjU4LjMgMzk5LjZjLTEwLjUgMTAuNS0yNC43IDE2LjQtMzkuNiAxNi40bC04OC44IDAtODkgODljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwUy0yLjMgNDgwLjQgNyA0NzFsODktODl6Il19LEwyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYWludGJydXNoIixpY29uOls1NzYsNTEyLFsxMjgzOTYsInBhaW50LWJydXNoIl0sImYxZmMiLCJNNDgwLjUgMTAuM0wyNTkuMSAxNThjLTI5LjEgMTkuNC00Ny42IDUwLjktNTAuNiA4NS4zIDYyLjMgMTIuOCAxMTEuNCA2MS45IDEyNC4zIDEyNC4zIDM0LjUtMyA2NS45LTIxLjUgODUuMy01MC42TDU2NS43IDk1LjVjNi43LTEwLjEgMTAuMy0yMS45IDEwLjMtMzQuMSAwLTMzLjktMjcuNS02MS40LTYxLjQtNjEuNC0xMi4xIDAtMjQgMy42LTM0LjEgMTAuM3pNMjg4IDQwMGMwLTYxLjktNTAuMS0xMTItMTEyLTExMlM2NCAzMzguMSA2NCA0MDBjMCAzLjkgLjIgNy44IC42IDExLjYgMS44IDE3LjUtMTAuMiAzNi40LTI3LjggMzYuNEwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTQ0IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTJ6Il19LEVodD1MMmUsJGh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5ldXRlciIsaWNvbjpbMzg0LDUxMixbOTkwNl0sImYyMmMiLCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTIyMy45IDM0OS4xQzMwNS45IDMzNC4xIDM2OCAyNjIuMyAzNjggMTc2IDM2OCA3OC44IDI4OS4yIDAgMTkyIDBTMTYgNzguOCAxNiAxNzZjMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0LjEgMTczLjEtLjEgMS0uMSAxLjktLjEgMi45bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC0xIDAtMS45LS4xLTIuOXoiXX0sQTJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1waG9uZS1mbGlwIixpY29uOls0NDgsNTEyLFsicGhvbmUtc3F1YXJlLWFsdCJdLCJmODdiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTIzMiA5Ni43bDIuOCAuOGMzMi4zIDguOCA1OS45IDQwLjEgNTEuOCA3OC4yLTE4LjUgODcuNS04Ny40IDE1Ni4zLTE3NC45IDE3NC45LTM4LjEgOC4xLTY5LjQtMTkuNS03OC4yLTUxLjhsLS44LTIuOGMtMi43LTkuOCAyLjQtMjAuMSAxMS44LTI0bDQ4LjctMjAuM2M4LjMtMy40IDE3LjgtMS4xIDIzLjUgNS45bDE5LjMgMjMuNmMzNS4xLTE3LjQgNjMuNC00Ni42IDc5LjYtODIuNGwtMjIuMS0xOGMtNi45LTUuNy05LjMtMTUuMi01LjktMjMuNWwyMC4zLTQ4LjdjMy45LTkuNCAxNC4yLTE0LjQgMjQtMTEuOHoiXX0sSWh0PUEyZSxEMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS1zcXVpbnQiLGljb246WzUxMiw1MTIsWzEyODU0MSwiZ3Jpbi10b25ndWUtc3F1aW50Il0sImY1OGEiLCJNMCAyNTZjMCAxMDQuNCA2Mi41IDE5NC4yIDE1Mi4yIDIzNC4xLTUuMy0xMy04LjItMjcuMi04LjItNDIuMWwwLTYxLjdjLTE2LjktMTYuNS0zMC4xLTM2LjctMzguMy01OS4zLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtOC4zIDIyLjYtMjEuNSA0Mi44LTM4LjMgNTkuM2wwIDYxLjdjMCAxNC45LTIuOSAyOS4xLTguMiA0Mi4xIDg5LjctMzkuOCAxNTIuMi0xMjkuNiAxNTIuMi0yMzQuMSAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzAgMTE0LjYgMCAyNTZ6bTEyNS44LTkxLjdjLTYuMi01LjItNy42LTE0LjMtMy4xLTIxLjFzMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMTkyIDEyNS44IDE2NC4zem0yNjMuNi0yMS4xYzQuNSA2LjggMy4xIDE1LjktMy4xIDIxLjFMMzUzIDE5MiAzODYuMiAyMTkuN2M2LjIgNS4yIDcuNiAxNC4zIDMuMSAyMS4xcy0xMy4zIDkuMi0yMC42IDUuNWwtNzkuNi00MGMtNS40LTIuNy04LjgtOC4yLTguOC0xNC4zczMuNC0xMS42IDguOC0xNC4zbDc5LjYtNDBjNy4zLTMuNiAxNi4xLTEuMyAyMC42IDUuNXpNMzIwIDQ0OGwwLTQ1LjRjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZsLTIgMGMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOS0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjlsLTIgMGMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZsMCA0NS40YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6Il19LFBodD1EMmUsTmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtZG9sbGFyIixpY29uOls1MTIsNTEyLFtdLCJmNjUxIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwem00LTM1MmMxMSAwIDIwIDkgMjAgMjBsMCA0IDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTQ3LjUgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgNi4xIDQuNCAxMS4zIDEwLjQgMTIuM2w0MS43IDdjMjUuMyA0LjIgNDMuOSAyNi4xIDQzLjkgNTEuOCAwIDI2LjEtMTkgNDcuNy00NCA1MS44bDAgNC43YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTQtMjQgMGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTUuNSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTYuMS00LjQtMTEuMy0xMC40LTEyLjNsLTQxLjctN2MtMjUuMy00LjItNDMuOS0yNi4xLTQzLjktNTEuOCAwLTI4LjggMjMuMi01Mi4yIDUyLTUyLjVsMC00YzAtMTEgOS0yMCAyMC0yMHoiXX0sRmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhpcHBvIixpY29uOls2NDAsNTEyLFsxMjk0MzVdLCJmNmVkIiwiTTQwNyA0N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxNy4yIDE3LjJjMS45LS4xIDMuOS0uMiA1LjgtLjJsMzIgMGMxMS4yIDAgMjEuOSAyLjMgMzEuNiA2LjVMNTQzIDU1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw1NjQgMTAxLjljNy42IDEyLjIgMTIgMjYuNyAxMiA0Mi4xIDAgMTAuMiA3LjQgMTguOCAxNi43IDIzIDI3LjkgMTIuNSA0Ny4zIDQwLjUgNDcuMyA3MyAwIDI2LjItMTIuNiA0OS40LTMyIDY0bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNi02NCAwIDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xNy42Yy0xMS44LTIuNC0yMi43LTcuNC0zMi0xNC40LTEuNS0xLjEtMi45LTIuMy00LjMtMy41LTE3LTE0LjctMjcuNy0zNi40LTI3LjctNjAuNSAwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmMwIDQ0LjcgMjYuMiA4My4yIDY0IDEwMS4ybDAgMTAuOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzZjLTE5LjggNy43LTQxLjQgMTItNjQgMTJzLTQ0LjItNC4zLTY0LTEybDAgNzZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTE4LjktMTguMSA0MC43Yy01LjQgMTIuMS0xOS42IDE3LjYtMzEuNyAxMi4yUy0zLjMgMzYyLjQgMi4xIDM1MC4zTDI0IDMwMC45YzUuMy0xMS45IDgtMjQuNyA4LTM3LjcgMC0xMDcuNSA4NS4yLTE5NS4yIDE5MS44LTE5OS4xbC4yLS4xIDY0IDBjNDEuNyAwIDgzLjQgMTIuMSAxMTcuMiAyNS43IDEuNy0xLjggMy41LTMuNiA1LjMtNS4yTDQwNyA4MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6bTczIDE4NWEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem04OCAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6TTQ4MCAxNDRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyeiJdfSxPaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm93bC1mb29kIixpY29uOls1MTIsNTEyLFtdLCJlNGM2IiwiTTAgMTc2YzAtMzUuMyAyOC43LTY0IDY0LTY0IC41IDAgMS4xIDAgMS42IDAgNy40LTM2LjUgMzkuNy02NCA3OC40LTY0IDE1IDAgMjkgNC4xIDQwLjkgMTEuMiAxMy4zLTI1LjcgNDAuMS00My4yIDcxLjEtNDMuMnM1Ny44IDE3LjYgNzEuMSA0My4yYzEyLTcuMSAyNi0xMS4yIDQwLjktMTEuMiAzOC43IDAgNzEgMjcuNSA3OC40IDY0IC41IDAgMS4xIDAgMS42IDAgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAxMS43LTMuMSAyMi42LTguNiAzMkw4LjYgMjA4QzMuMSAxOTguNiAwIDE4Ny43IDAgMTc2ek0wIDI4My40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZsNDU3LjEgMGMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNCAwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4bC0yMzEuNSAwYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHoiXX0sUmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS12aXJ1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTU3OCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem0xNjAgODBjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0ek0xOTIgMjQ4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODggNDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sQmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXN1bi1yYWluIixpY29uOls2NDAsNTEyLFsxMjc3ODJdLCJmNzQzIiwiTTI1NC45IDQ0OC4yYzQuMi0xMi42IDE3LjgtMTkuNCAzMC4zLTE1LjIgMTIuNiA0LjIgMTkuNCAxNy44IDE1LjIgMzAuNGwtMjEuNCA2NC4xYy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4ycy0xOS40LTE3LjgtMTUuMi0zMC4zbDIxLjQtNjQuMnptMTIwIDBjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjMtMTUuMiAxMi42IDQuMiAxOS40IDE3LjggMTUuMiAzMC40bC0yMS40IDY0LjFjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJzLTE5LjQtMTcuOC0xNS4yLTMwLjNsMjEuNC02NC4yem0xMjAgMGM0LjItMTIuNiAxNy44LTE5LjQgMzAuMy0xNS4yIDEyLjYgNC4yIDE5LjQgMTcuOCAxNS4yIDMwLjRsLTIxLjQgNjQuMWMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMnMtMTkuNC0xNy44LTE1LjItMzAuM2wyMS40LTY0LjJ6TTQ0OC4zIDEyOGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDcuNS0xLjEgMTQuNy0zIDIxLjUgMjkuOCAxMS42IDUxIDQwLjYgNTEgNzQuNSAwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTkyIDAtOC4yLS40Yy00MC4zLTQuMS03MS44LTM4LjItNzEuOC03OS42IDAtMzkgMjcuOS03MS41IDY0LjktNzguNS0uNS0zLjEtLjktNi4yLS45LTkuNSAwLTMwLjkgMjUuMS01NiA1Ni01NiAxMi40IDAgMjMuOSA0LjEgMzMuMiAxMC45IDEzLjQtMjUuNSA0MC4xLTQyLjkgNzAuOC00Mi45ek0yNDAuMy0zMS44YzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xbDQ3LjMgNzAuNCA4My4zLTE2LjNjNS4yLTEgMTAuNiAuNyAxNC4zIDQuNCAzLjggMy44IDUuNCA5LjIgNC40IDE0LjRsLTguNiA0My44Yy0xMS45IDUuNS0yMi44IDEyLjktMzIuNCAyMS42LTUuNy0xLTExLjctMS41LTE3LjctMS41LTE0LjMgMC0yOCAzLTQwLjQgOC4yLTE2LjktMTUtMzkuMi0yNC4yLTYzLjYtMjQuMi01MyAwLTk2IDQzLTk2IDk2IDAgMzAuOSAxNC42IDU4LjIgMzcuMiA3NS44LTMuNCAxMS41LTUuMiAyMy42LTUuMiAzNi4yIDAgMTMuMiAyIDI1LjkgNS43IDM3LjlsLTIuNC0zLjUtODMuMiAxNi4zYy01LjIgMS0xMC42LS43LTE0LjMtNC40LTMuOC0zLjgtNS40LTkuMi00LjQtMTQuNGwxNi4zLTgzLjMtNzAuNC00Ny40Yy00LjQtMy03LjEtOC03LjEtMTMuMyAwLTUuMyAyLjYtMTAuMyA3LTEzLjJsNzAuNC00Ny40LTE2LjMtODMuMi0uMi0yYy0uMy00LjYgMS4zLTkuMSA0LjYtMTIuNCAzLjgtMy44IDkuMi01LjQgMTQuNC00LjRsODMuMiAxNi4zIDQ3LjMtNzAuNCAxLjItMS42YzMtMy41IDcuNC01LjUgMTIuMS01LjV6bTAgMTc1LjhjOC42IDAgMTYuNiAyLjMgMjMuNiA2LjItOS43IDExLjktMTYuOSAyNS45LTIwLjcgNDEuMy0xNSA4LjEtMjguMiAxOS4yLTM4LjggMzIuMy03LjUtOC41LTEyLjItMTkuNi0xMi4yLTMxLjggMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LEUyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1sb25nIixpY29uOls1NzYsNTEyLFsibG9uZy1hcnJvdy1yaWdodCJdLCJmMTc4IiwiTTU2Ni42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0NjYuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDQzNC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LEhodD1FMmUscWh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVuIixpY29uOls1MTIsNTEyLFtdLCJlNGQ5IiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNzItMTEyIDBjLTIwLjkgMC0zOS41IDEwLjEtNTEuMiAyNS42LTgtNi0xOC05LjYtMjguOC05LjYtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NCA2NCAwIDAgNDgtMTQ0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDMyIDY0ek0xNDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE0NCAyMjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptMTEyIDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTQyNy40IDM4MC41YzktMi4xIDE4LjMgMi4yIDIyLjUgMTAuNWwyNi4xIDUyLjIgMC00My4zYzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIwbDAgMTI4YzAgOS4zLTYuNCAxNy4zLTE1LjQgMTkuNXMtMTguMy0yLjItMjIuNS0xMC41TDQ1MiA0ODQuNyA0NTIgNTI4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTEyOGMwLTkuMyA2LjQtMTcuMyAxNS40LTE5LjV6TTMyNCA0MDBsMCA5NmMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtOTZjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA5NmMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTk2YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIweiJdfSxqaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtbG93IixpY29uOls1MTIsNTEyLFtdLCJmNzZiIiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00NjQgODBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzUyIDgwYTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHoiXX0sVmh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRvb3Itb3BlbiIsaWNvbjpbNDQ4LDUxMixbXSwiZjUyYiIsIk0yODggNjRsNjQgMCAwIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC05NiAwIDAgMC0xNjAgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTQxNnpNMTYwIDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxVaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxpZ24tbGVmdCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNiIsIk0yODggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NFMxNC4zIDMyIDMyIDMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMkwzMiAzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSwkMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtZXJhIixpY29uOls1MTIsNTEyLFs2MjI1OCwiY2FtZXJhLWFsdCJdLCJmMDMwIiwiTTE0OS4xIDY0LjhMMTM4LjcgOTYgNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC03NC43IDAtMTAuNC0zMS4yQzM1Ni40IDQ1LjIgMzM4LjEgMzIgMzE3LjQgMzJMMTk0LjYgMzJjLTIwLjcgMC0zOSAxMy4yLTQ1LjUgMzIuOHpNMjU2IDE5MmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sV2h0PSQyZSxHaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtcmF5cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU5MyIsIk0zMS0zM0MyMS43LTIzLjYgMjEuNy04LjQgMzEgMUw4NyA1N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNjUtMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwek02MDktMzNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDUxOSAyM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDYwOSAxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45ek02NSA1NDVsNTYtNTZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzMSA1MTFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHptNTQ0IDBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTU2LTU2Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDU2IDU2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwek0zMjAgMjA4YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0wIDMyYy02MS45IDAtMTEyIDUwLjEtMTEyIDExMmwwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04YzAtNjEuOS01MC4xLTExMi0xMTItMTEyem0yMTYtODBhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek00NTEuMiAyNjAuNEM0NjkuNCAyODYuMyA0ODAgMzE3LjkgNDgwIDM1MmwwIDhjMCA4LjQtMS40IDE2LjUtNC4xIDI0bDc4LjggMGMxMS44IDAgMjEuMy05LjYgMjEuMy0yMS4zbDAtMTAuN2MwLTUzLTQzLTk2LTk2LTk2LTEwIDAtMTkuNyAxLjUtMjguOCA0LjR6bS0yNjIuNCAwYy05LjEtMi45LTE4LjgtNC40LTI4LjgtNC40LTUzIDAtOTYgNDMtOTYgOTZsMCAxMC43YzAgMTEuOCA5LjYgMjEuMyAyMS4zIDIxLjNsNzguOCAwYy0yLjctNy41LTQuMS0xNS42LTQuMS0yNGwwLThjMC0zNC4xIDEwLjYtNjUuNyAyOC44LTkxLjZ6TTIxNiAxNjBhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAweiJdfSxZaHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmFpbmJvdyIsaWNvbjpbNjQwLDUxMixbMTI3NzUyXSwiZjc1YiIsIk0zMjAgOTZDMTc4LjYgOTYgNjQgMjEwLjYgNjQgMzUybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0MzMuNyAwIDQxNmwwLTY0QzAgMTc1LjMgMTQzLjMgMzIgMzIwIDMyUzY0MCAxNzUuMyA2NDAgMzUybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NEM1NzYgMjEwLjYgNDYxLjQgOTYgMzIwIDk2em0wIDExMmMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOHMyMDggOTMuMSAyMDggMjA4bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NHpNMjg4IDM1MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6Il19LFpodD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaXRlbWFwIixpY29uOls1MTIsNTEyLFtdLCJmMGU4IiwiTTE5MiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTggMCAwIDY0IDEyMCAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgNTYgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTEyMCAwIDAgODAgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtODAtMTIwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYgOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsOCAwIDAtNTZjMC0zOS44IDMyLjItNzIgNzItNzJsMTIwIDAgMC02NC04IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjR6Il19LEkyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tc3RhcnMiLGljb246WzUxMiw1MTIsWzEyOTMyMSwiZ3Jpbi1zdGFycyJdLCJmNTg3IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTI0LjQtMy40LTQ4LjEtOS44LTcwLjUgMTguNi0zNi4xLTIuNy04My42LTQ2LjctOTAtNDYuOS01OC4zLTExOC45LTk1LjUtMTk5LjUtOTUuNVMxMDMuNCAzNy4zIDU2LjUgOTUuNWMtNDQgNi40LTY1LjMgNTMuOS00Ni43IDkwLTYuNCAyMi40LTkuOCA0Ni05LjggNzAuNSAwIDE0MS40IDExNC42IDI1NiAyNTYgMjU2ek0zODYuNyAzMjQuOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgNDA0LjIgMTA1LjcgMzQyLjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXptLTMxLjYtMjMxYzUuMy0xMC43IDIwLjUtMTAuNyAyNS44IDBsMjAuOSA0Mi40IDQ2LjcgNi44YzExLjggMS43IDE2LjUgMTYuMiA4IDI0LjVsLTMzLjggMzMgOCA0Ni42YzIgMTEuNy0xMC4zIDIwLjctMjAuOSAxNS4ybC00MS44LTIyLTQxLjggMjJjLTEwLjUgNS41LTIyLjktMy40LTIwLjktMTUuMmw4LTQ2LjYtMzMuOC0zM2MtOC41LTguMy0zLjgtMjIuOCA4LTI0LjVsNDYuNy02LjggMjAuOS00Mi40em0tMTk4LjIgMGwyMC45IDQyLjQgNDYuNyA2LjhjMTEuOCAxLjcgMTYuNSAxNi4yIDggMjQuNWwtMzMuOCAzMyA4IDQ2LjZjMiAxMS43LTEwLjMgMjAuNy0yMC45IDE1LjJsLTQxLjgtMjItNDEuOCAyMmMtMTAuNSA1LjUtMjIuOS0zLjQtMjAuOS0xNS4ybDgtNDYuNi0zMy44LTMzYy04LjUtOC4zLTMuOC0yMi44IDgtMjQuNWw0Ni43LTYuOCAyMC45LTQyLjRjNS4zLTEwLjcgMjAuNS0xMC43IDI1LjggMHoiXX0sWGh0PUkyZSxQMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic29ydC11cCIsaWNvbjpbMzg0LDUxMixbInNvcnQtYXNjIl0sImYwZGUiLCJNMzIgMjI0Yy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44Uy4yIDE3OC41IDkuNCAxNjkuNGwxNjAtMTYwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzY0LjkgMjI0IDM1MiAyMjRMMzIgMjI0eiJdfSxRaHQ9UDJlLFFEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZSIsaWNvbjpbNTc2LDUxMixbMTI4MDY1XSwiZjA2ZSIsIk0yODggMzJjLTgwLjggMC0xNDUuNSAzNi44LTE5Mi42IDgwLjYtNDYuOCA0My41LTc4LjEgOTUuNC05MyAxMzEuMS0zLjMgNy45LTMuMyAxNi43IDAgMjQuNiAxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xIDQ3LjEgNDMuNyAxMTEuOCA4MC42IDE5Mi42IDgwLjZzMTQ1LjUtMzYuOCAxOTIuNi04MC42YzQ2LjgtNDMuNSA3OC4xLTk1LjQgOTMtMTMxLjEgMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjYtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMS00Ny4xLTQzLjctMTExLjgtODAuNi0xOTIuNi04MC42ek0xNDQgMjU2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0NC02NGMwIDM1LjMtMjguNyA2NC02NCA2NC0xMS41IDAtMjIuMy0zLTMxLjctOC40LTEgMTAuOS0uMSAyMi4xIDIuOSAzMy4yIDEzLjcgNTEuMiA2Ni40IDgxLjYgMTE3LjYgNjcuOXM4MS42LTY2LjQgNjcuOS0xMTcuNmMtMTIuMi00NS43LTU1LjUtNzQuOC0xMDEuMS03MC44IDUuMyA5LjMgOC40IDIwLjEgOC40IDMxLjd6Il19LEpEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWxlZnQiLGljb246WzI1Niw1MTIsW10sImYwZDkiLCJNNy43IDIzNS44Yy0xMC4zIDEyLjYtOS41IDMxLjEgMi4yIDQyLjhsMTI4IDEyOGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42bDAtMjU2YzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC0xMjggMTI4LTIuMiAyLjR6Il19LE4yZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcHBsZS13aG9sZSIsaWNvbjpbNDQ4LDUxMixbMTI3ODIyLDEyNzgyMywiYXBwbGUtYWx0Il0sImY1ZDEiLCJNMjI0IDExMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODBsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtMTYgMHpNMCAyODhjMC03Ni4zIDM1LjctMTYwIDExMi0xNjAgMjcuMyAwIDU5LjcgMTAuMyA4Mi43IDE5LjMgMTguOCA3LjMgMzkuOSA3LjMgNTguNyAwIDIyLjktOC45IDU1LjQtMTkuMyA4Mi43LTE5LjMgNzYuMyAwIDExMiA4My43IDExMiAxNjAgMCAxMjgtODAgMjI0LTE2MCAyMjQtMTYuNSAwLTM4LjEtNi42LTUxLjUtMTEuMy04LjEtMi44LTE2LjktMi44LTI1IDAtMTMuNCA0LjctMzUgMTEuMy01MS41IDExLjMtODAgMC0xNjAtOTYtMTYwLTIyNHoiXX0sSmh0PU4yZSxGMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Nyb2xsLXRvcmFoIixpY29uOls1NzYsNTEyLFsidG9yYWgiXSwiZjZhMCIsIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMCA2OC45IDAgODYuNyAxMy40IDkzLjMgMzJsMzg5LjUgMGM2LjYtMTguNiAyNC40LTMyIDQ1LjMtMzIgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0MTZjMCAyNi41LTIxLjUgNDgtNDggNDgtMjAuOSAwLTM4LjctMTMuNC00NS4zLTMyTDkzLjMgNDgwYy02LjYgMTguNi0yNC40IDMyLTQ1LjMgMzItMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA0OHpNMTc3LjkgMzAxYy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yYy0yLjYtNC4yLTcuMi02LjgtMTIuMi02LjhzLTkuNiAyLjYtMTIuMiA2LjhsLTMwLjUgNDkuMi01Ni45IDBjLTYuOSAwLTEyLjUgNS42LTEyLjUgMTIuNSAwIDIuMyAuNiA0LjYgMS45IDYuNmwyNy44IDQ1LTI3LjggNDV6Il19LEtodD1GMmUsZWZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWxvY2siLGljb246WzY0MCw1MTIsW10sImU1MTAiLCJNNTI4IDIyNC4xYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwxODUgMTcxLjhDNDQwLjIgMTk1IDQwMCAyNDQuOCA0MDAgMzA0bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek0yNzIgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDk2IDAgMC04Ny4zYzAtMTYuNSA3LTMxLjUgMTguNC00Mi4xLTguNy05LTIwLjktMTQuNi0zNC40LTE0LjZsLTMyIDB6bTI1Ni00Ny45Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3LjljMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LHRmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtbGVmdC1yaWdodC10by1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNGJhIiwiTTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOEwwIDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zOTAuNiAzNDIuNmw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMTMzLjUgMCA5LjQtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42czMuNCAxNi42IDkuNCAyMi42bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjQgMTMzLjUgMC05LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwek01NzYgMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNTZ6Il19LG5iPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoIixpY29uOls0NDgsNTEyLFtdLCJmMWY4IiwiTTEzNi43IDUuOUwxMjggMzIgMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2bDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwLTguNy0yNi4xQzMwNi45LTcuMiAyOTQuNy0xNiAyODAuOS0xNkwxNjcuMS0xNmMtMTMuOCAwLTI2IDguOC0zMC40IDIxLjl6TTQxNiAxNDRMMzIgMTQ0IDUzLjEgNDY3LjFDNTQuNyA0OTIuNCA3NS43IDUxMiAxMDEgNTEyTDM0NyA1MTJjMjUuMyAwIDQ2LjMtMTkuNiA0Ny45LTQ0LjlMNDE2IDE0NHoiXX0sTzJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc2FkLXRlYXIiLGljb246WzUxMiw1MTIsWzEyODU0Niwic2FkLXRlYXIiXSwiZjViNCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNzEgOThjNS41LTEuMyAxMS4xLTIgMTctMiAyNC4xIDAgNDUuNCAxMS44IDU4LjUgMzAgNy43IDEwLjggMjIuNyAxMy4yIDMzLjUgNS41czEzLjItMjIuNyA1LjUtMzMuNWMtMjEuNy0zMC4yLTU3LjMtNTAtOTcuNS01MC0xMi41IDAtMjQuNiAxLjktMzUuOSA1LjUgOS44IDEyLjcgMTYuNSAyNy45IDE4LjkgNDQuNnpNMTc2IDI0MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE5Mi0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0xODUuNCAyOTIuOGMtMi40LTIuOS01LjctNC44LTkuNC00LjhzLTcgMS45LTkuNCA0LjhjLTYuNSA3LjgtMTIuNiAxNi4xLTE4LjMgMjQuNi05IDEzLjQtMjAuMyAzMC4yLTIwLjMgNDcuNCAwIDI4LjMgMjEuNSA1MS4yIDQ4IDUxLjJzNDgtMjIuOSA0OC01MS4yYzAtMTcuMi0xMS4yLTM0LTIwLjMtNDcuNC01LjctOC41LTExLjktMTYuNy0xOC4zLTI0LjZ6Il19LHJmdD1PMmUsaWZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZheCIsaWNvbjpbNTEyLDUxMixbMTI4MjI0LDEyODQzOV0sImYxYWMiLCJNMTYwIDY0bDAgODAgNjQgMCAwLTgwIDE0Ni43IDAgNDUuMyA0NS4zIDAgMzQuNyA2NCAwIDAtMzQuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w0MTYgMTguN0M0MDQgNi43IDM4Ny43IDAgMzcwLjcgMEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTMyIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNDggMHptNDQ4IDY0bC0zMjAgMCAwIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjI0IDI4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0wIDk2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTMzNiAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zMTIgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTQyNCAyNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek00MDAgMzg0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LGFmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tY2lyY2xlLXBsdXMiLGljb246WzY0MCw1MTIsW10sImU1NDEiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMTYtMjA4bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDgtNDggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnoiXX0sbmZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbXNhIixpY29uOls1MTIsNTEyLFtdLCJmNjY1IiwiTTM0LjYgMjg4TDgwIDI4OGM4LjggMCAxNi03LjIgMTYtMTZMOTYgNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDEzMmMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTE2NGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwbDAgMTY0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtMTMyYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBsMCAyMDBjMCA4LjggNy4yIDE2IDE2IDE2bDQ1LjQgMGMxOS4xIDAgMzQuNiAxNS41IDM0LjYgMzQuNiAwIDguNi0zLjIgMTYuOS05IDIzLjNMNDE2LjYgNDQxYy00MS4xIDQ1LjItOTkuNCA3MS0xNjAuNiA3MVMxMzYuNiA0ODYuMiA5NS40IDQ0MUw5IDM0NS45Yy01LjgtNi40LTktMTQuNy05LTIzLjMgMC0xOS4xIDE1LjUtMzQuNiAzNC42LTM0LjZ6TTI1NiAyODhjLTM4LjQgMC03Ni44IDM1LjgtOTAuNiA1MC4yLTMuNiAzLjctNS40IDguNy01LjQgMTMuOHMxLjggMTAuMSA1LjQgMTMuOEMxNzkuMiAzODAuMiAyMTcuNiA0MTYgMjU2IDQxNnM3Ni44LTM1LjggOTAuNi01MC4yYzMuNi0zLjcgNS40LTguNyA1LjQtMTMuOHMtMS44LTEwLjEtNS40LTEzLjhDMzMyLjggMzIzLjggMjk0LjQgMjg4IDI1NiAyODh6bTAgMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxvZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1xdWVzdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU0MiIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTEwMGEyMCAyMCAwIDEgMSAwIDQwIDIwIDIwIDAgMSAxIDAtNDB6bTAtMTAwYy0xMS42IDAtMjEuMyA4LjItMjMuNSAxOS4yLTEuOCA4LjctMTAuMiAxNC4zLTE4LjkgMTIuNXMtMTQuMy0xMC4yLTEyLjUtMTguOWM1LjItMjUuNiAyNy44LTQ0LjggNTQuOS00NC44IDMwLjkgMCA1NiAyNS4xIDU2IDU2IDAgMTkuOC0xMS43IDM3LjgtMjkuOCA0NS45bC0xMC40IDQuNmMtMS4yIDcuNy03LjggMTMuNS0xNS44IDEzLjUtOC44IDAtMTYtNy4yLTE2LTE2IDAtMTEuMiA2LjYtMjEuMyAxNi44LTI1LjlsMTIuNC01LjVjNi42LTIuOSAxMC44LTkuNCAxMC44LTE2LjYgMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LHNmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbGlwYm9hcmQtY2hlY2siLGljb246WzM4NCw1MTIsW10sImY0NmMiLCJNMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMybDguNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw4LjYgMEM4My42IDEyLjkgMTA0LjMgMCAxMjggMEwyNTYgMHptMjYuOSAyMTIuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjZzLTkuOCAyNC40LS42IDMzLjlsNDYuNCA0OGM0LjkgNS4xIDExLjggNy44IDE4LjkgNy4zczEzLjYtNC4xIDE3LjgtOS44TDI4OC4yIDI0Ni4xYzcuOC0xMC43IDUuNC0yNS43LTUuMy0zMy41ek0xMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMTM2IDY0eiJdfSxSMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hhcmUtZnJvbS1zcXVhcmUiLGljb246WzU3Niw1MTIsWzYxNTA5LCJzaGFyZS1zcXVhcmUiXSwiZjE0ZCIsIk0zODQuNSAyNGwwIDcyLTY0IDBjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgOTMuNCA4Mi44IDEzNC44IDEwMC42IDE0Mi42IDIuMiAxIDQuNiAxLjQgNy4xIDEuNGwyLjUgMGM5LjggMCAxNy44LTggMTcuOC0xNy44IDAtOC4zLTUuOS0xNS41LTEyLjgtMjAuMy04LjktNi4yLTE5LjItMTguMi0xOS4yLTQwLjUgMC00NSAzNi41LTgxLjUgODEuNS04MS41bDMwLjUgMCAwIDcyYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmwxMzYtMTM2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDQyNS41IDdjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzg0LjUgMTQuMyAzODQuNSAyNHptLTI3MiA3MmMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyNTZjMCA0NC4yIDM1LjggODAgODAgODBsMjU2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMjU2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTI1NmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMHoiXX0sbGZ0PVIyZSxLRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWNlaXB0IixpY29uOlszODQsNTEyLFsxMjk1MzRdLCJmNTQzIiwiTTE0IDIuMkMyMi41LTEuNyAzMi41LS4zIDM5LjYgNS44TDgwIDQwLjQgMTIwLjQgNS44YzktNy43IDIyLjMtNy43IDMxLjIgMEwxOTIgNDAuNCAyMzIuNCA1LjhjOS03LjcgMjIuMi03LjcgMzEuMiAwTDMwNCA0MC40IDM0NC40IDUuOGM3LjEtNi4xIDE3LjEtNy41IDI1LjYtMy42UzM4NCAxNC42IDM4NCAyNGwwIDQ2NGMwIDkuNC01LjUgMTcuOS0xNCAyMS44cy0xOC41IDIuNS0yNS42LTMuNmwtNDAuNC0zNC42LTQwLjQgMzQuNmMtOSA3LjctMjIuMiA3LjctMzEuMiAwbC00MC40LTM0LjYtNDAuNCAzNC42Yy05IDcuNy0yMi4zIDcuNy0zMS4yIDBMODAgNDcxLjYgMzkuNiA1MDYuMmMtNy4xIDYuMS0xNy4xIDcuNS0yNS42IDMuNlMwIDQ5Ny40IDAgNDg4TDAgMjRDMCAxNC42IDUuNSA2LjEgMTQgMi4yek0xMDQgMTM2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMHpNODAgMzUyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE3NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNzYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTI0LTEyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LGNmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlcXVhbHMiLGljb246WzQ0OCw1MTIsWzYyNzY0XSwiM2QiLCJNMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDEyOHptMCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIweiJdfSxkZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi11cCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA3NyIsIk0yMDEuNCAxMDUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOTIgMTkyYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDIyNCAxNzMuMyA1NC42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxOTItMTkyeiJdfSx1ZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNzUiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODguNi04OC42YzEuNy0xMi4xLTItMjQuOC0xMS4zLTM0LTMxLjItMzEuMi05LjEtODQuNSAzNS04NC41IDIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwYy00NC4xIDAtNjYuMS01My4zLTM1LTg0LjUgMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZzLTQwLjktMTUuNi01Ni42IDBjLTMxLjIgMzEuMi04NC41IDkuMS04NC41LTM1IDAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgNDQuMS01My4zIDY2LjEtODQuNSAzNS05LjMtOS4zLTIyLTEzLTM0LTExLjNMNDEtMjQuOXpNNzIgMjE2Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwYzQ0LjEgMCA2Ni4xIDUzLjMgMzUgODQuNS0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNnM0MC45IDE1LjYgNTYuNiAwYzMxLjItMzEuMiA4NC41LTkuMSA4NC41IDM1IDAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBjMC0yMS40IDEyLjYtMzcuNiAyOS4xLTQ1LjFsLTI0MC0yNDBDMTA5LjYgMjAzLjQgOTMuNCAyMTYgNzIgMjE2eiJdfSxwZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xhc2giLGljb246WzU3Niw1MTIsW10sImY3MTUiLCJNNy0yNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEw1NjkgNTAzYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5Qy0yLjMtLjQtMi4zLTE1LjYgNy0yNXoiXX0saGZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV4cGFuZCIsaWNvbjpbNDQ4LDUxMixbXSwiZjA2NSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0bDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0IDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTY0IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDMzNC4zIDAgMzUybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNNDQ4IDM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2eiJdfSxCMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibm90ZS1zdGlja3kiLGljb246WzQ0OCw1MTIsWzYyMDI2LCJzdGlja3ktbm90ZSJdLCJmMjQ5IiwiTTY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDIxMy41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zTDMyMi43IDQ2MS4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDY0IDQ4MHpNMzg5LjUgMzA0TDI5NiAzMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXoiXX0sZmZ0PUIyZSxIMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY29sdW1ucyIsaWNvbjpbNDQ4LDUxMixbImNvbHVtbnMiXSwiZjBkYiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptNjQgNjRsMCAyNTYgMTI4IDAgMC0yNTYtMTI4IDB6bTMyMCAwbC0xMjggMCAwIDI1NiAxMjggMCAwLTI1NnoiXX0sbWZ0PUgyZSxnZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNoZWx0ZXIiLGljb246WzUxMiw1MTIsW10sImU1NGYiLCJNMjcxLjkgNC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOEM2LjIgMTM3LjkgMCAxNDguNSAwIDE2MEwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDY0IDE3OC42IDI1NiA2OC45IDQ0OCAxNzguNiA0NDggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMjBjMC0xMS41LTYuMi0yMi4xLTE2LjEtMjcuOGwtMjI0LTEyOHpNMjU2IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6bS04IDE5MmwxNiAwIDAgODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE3NC41IDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTMzLjItNjEuN0MzMjkuNyAyNDUuMSAyOTQuNCAyMjQgMjU2IDIyNHMtNzMuNyAyMS4xLTkxLjkgNTQuOWwtMzMuMiA2MS43Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEwyMDAgMzEzLjUgMjAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODh6Il19LGJmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbm90Y2giLGljb246WzUxMiw1MTIsW10sImYxY2UiLCJNMjIyLjcgMzIuMWM1IDE2LjktNC42IDM0LjgtMjEuNSAzOS44LTc5LjMgMjMuNi0xMzcuMSA5Ny4xLTEzNy4xIDE4NC4xIDAgMTA2IDg2IDE5MiAxOTIgMTkyczE5Mi04NiAxOTItMTkyYzAtODYuOS01Ny44LTE2MC40LTEzNy4xLTE4NC4xLTE2LjktNS0yNi42LTIyLjktMjEuNS0zOS44czIyLjktMjYuNiAzOS44LTIxLjVDNDM0LjkgNDIuMSA1MTIgMTQwIDUxMiAyNTYgNTEyIDM5Ny40IDM5Ny40IDUxMiAyNTYgNTEyUzAgMzk3LjQgMCAyNTZjMC0xMTYgNzcuMS0yMTMuOSAxODIuOS0yNDUuNCAxNi45LTUgMzQuOCA0LjYgMzkuOCAyMS41eiJdfSx2ZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2F0ZXIiLGljb246WzUxMiw1MTIsW10sImY3NzMiLCJNNDEwLjYgMTI0LjFjMjAuNyAxNS42IDQ2IDMwLjcgNzQuMiAzNC41IDEzLjEgMS44IDI1LjItNy41IDI3LTIwLjZzLTcuNS0yNS4yLTIwLjYtMjdjLTE1LjktMi4xLTMzLjItMTEuMy01MS43LTI1LjItMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMTguNSAxMy45LTM1LjggMjMuMS01MS43IDI1LjItMTMuMSAxLjgtMjIuNCAxMy44LTIwLjYgMjdzMTMuOCAyMi40IDI3IDIwLjZjMjguMi0zLjggNTMuNi0xOC45IDc0LjItMzQuNSAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0wIDE0NGMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuNy0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDE0NGMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LHEyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZWxldGUtbGVmdCIsaWNvbjpbNjQwLDUxMixbOTAwMywiYmFja3NwYWNlIl0sImY1NWEiLCJNNTc2IDEyOGMwLTM1LjMtMjguNy02NC02NC02NEwyMDUuMyA2NGMtMTcgMC0zMy4zIDYuNy00NS4zIDE4LjdMOS40IDIzMy40Yy02IDYtOS40IDE0LjEtOS40IDIyLjZzMy40IDE2LjYgOS40IDIyLjZMMTYwIDQyOS4zYzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NnpNMjg0LjEgMTg4LjFjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0seGZ0PXEyZSxuRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicm9vbS1iYWxsIixpY29uOls1NzYsNTEyLFsicXVpZGRpdGNoIiwicXVpZGRpdGNoLWJyb29tLWJhbGwiXSwiZjQ1OCIsIk00OTYgNTQ0YTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYwek0xMDYuOCAyNzcuMmMzMC42LTMwLjYgNzMuMS00NS45IDExNS44LTQyLjJMMzQxIDM1My4zYzMuNyA0Mi44LTExLjYgODUuMi00Mi4yIDExNS45LTI3LjQgMjcuNC02NC42IDQyLjgtMTAzLjMgNDIuOEwyMi4xIDUxMmMtMTIuMiAwLTIyLjEtOS45LTIyLjEtMjIuMSAwLTYuMyAyLjctMTIuMyA3LjMtMTYuNUwxMzMuNyAzNTkuN2M0LjItMy43LS40LTEwLjQtNS40LTcuOUw3Ny4yIDM3Ny40Yy02LjEgMy0xMy4yLTEuNC0xMy4yLTguMiAwLTMxLjUgMTIuNS02MS44IDM0LjgtODRsOC04em00MTctMjcwYzEyLjYtMTAuMyAzMS4xLTkuNSA0Mi44IDIuMnMxMi40IDMwLjIgMi4yIDQyLjhsLTIuMiAyLjQtMTkyIDE5MiAzNC44IDM0LjdjNC4yIDQuMiA2LjYgMTAgNi42IDE2IDAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42bC0yOS4xIDAtMTA4LjMtMTA4LjMgMC0yOS4xYzAtMTIuNSAxMC4xLTIyLjYgMjIuNi0yMi42IDYgMCAxMS44IDIuNCAxNiA2LjZsMzQuOCAzNC43IDE5Mi0xOTIgMi40LTIuMnoiXX0seWZ0PW5ELHdmdD1uRCxNZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaiIsaWNvbjpbMzIwLDUxMixbMTA2XSwiNGEiLCJNMjg4IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDA4LjQgMCAzMjBsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sajJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNodXR0bGUtc3BhY2UiLGljb246WzU3Niw1MTIsWyJzcGFjZS1zaHV0dGxlIl0sImYxOTciLCJNMCAzNjhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw1MCAwYzQwLjYgMCA4MC40LTExIDExNS4yLTMxLjlsMTMzLjUtODAuMS05My4zIDAtNjQuOSAzOC45Yy0xNCA4LjQtMjguOSAxNC43LTQ0LjUgMTlsMC02Ni40YzkuNy01LjYgMTcuOC0xMy43IDIzLjQtMjMuNGwxOTguOCAwYzY3LjEgMCAxMjcuOC0yMC42IDE3MC4zLTcwLjYgNC42LTUuNCA0LjYtMTMuMyAwLTE4LjgtNDIuNS01MC4xLTEwMy4yLTcwLjYtMTcwLjMtNzAuNmwtMTk4LjggMGMtNS42LTkuNy0xMy43LTE3LjgtMjMuNC0yMy40bDAtNjYuNGMxNS42IDQuMiAzMC42IDEwLjYgNDQuNSAxOWw2NC45IDM4LjkgOTMuMyAwLTEzMy41LTgwLjFDMTc4LjQgNDMgMTM4LjYgMzIgOTggMzJMNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDM2OHptOTYgMGwwIDY0LTQ4IDAgMC02NCA0OCAwek05NiA4MGwwIDY0LTQ4IDAgMC02NCA0OCAwek00MTYgMjI0YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2eiJdfSxrZnQ9ajJlLFNmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ5aW4teWFuZyIsaWNvbjpbNTEyLDUxMixbOTc3NV0sImY2YWQiLCJNMjI0IDE2MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiAzNTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0wLTQ0OGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Ni05NiA0My05NiA5NiA0MyA5NiA5NiA5NkMxNTAgNDQ4IDY0IDM2MiA2NCAyNTZTMTUwIDY0IDI1NiA2NHpNMjI0IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSx6ZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RvcCIsaWNvbjpbNDQ4LDUxMixbOTIwOV0sImYwNGQiLCJNNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyeiJdfSxDZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJvd2VsIixpY29uOls1NzYsNTEyLFtdLCJlNTg5IiwiTTQwNy45IDE4MS40TDI3Ny4zIDMxMiAzNDIuNiAzNzcuNGM3LjkgNy45IDExLjEgMTkuNCA4LjQgMzAuM3MtMTAuOCAxOS42LTIxLjUgMjIuOWwtMjU2IDgwYy0xMS40IDMuNS0yMy44IC41LTMyLjItNy45cy0xMS41LTIwLjgtNy45LTMyLjJsODAtMjU2YzMuMy0xMC43IDEyLTE4LjkgMjIuOS0yMS41czIyLjQgLjUgMzAuMyA4LjRMMjMyIDI2Ni43IDM2Mi42IDEzNi4xYy0xNC4zLTE0LjYtMTQuMi0zOCAuMy01Mi41bDk1LjQtOTUuNGMyNi45LTI2LjkgNzAuNS0yNi45IDk3LjUgMHMyNi45IDcwLjUgMCA5Ny41bC05NS40IDk1LjRjLTE0LjUgMTQuNS0zNy45IDE0LjYtNTIuNSAuM3oiXX0sVjJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtYmFjay1maXN0IixpY29uOlszODQsNTEyLFsiaGFuZC1yb2NrIl0sImYyNTUiLCJNNy40IDI1My42QzIuNiAyNDUuOSAwIDIzNy4xIDAgMjI4bDAtMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMCAwLTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDE3LjMgMCAzMi40IDkuMSA0MC45IDIyLjggNC4zLTIyLjEgMjMuOC0zOC44IDQ3LjEtMzguOCAyMy40IDAgNDIuOSAxNi44IDQ3LjEgMzguOSA3LjMtNC40IDE1LjgtNi45IDI0LjktNi45IDIyLjEgMCA0MC44IDE1IDQ2LjMgMzUuNCA1LjUtMi4yIDExLjQtMy40IDE3LjctMy40IDI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTYuOWMwIDkuOS0yLjMgMTkuNy02LjggMjguNmwtMzkuNiA3OS4xYy0xMC44IDIxLjctMzMgMzUuNC01Ny4yIDM1LjRMOTYgMzUyYy0xNi41IDAtMzEuOC04LjQtNDAuNi0yMi40bC00OC03NnpNMzIgNDgwbDAtNDhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxUZnQ9VjJlLF9mdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1oaWdoIixpY29uOls1MTIsNTEyLFtdLCJmNzY5IiwiTTk2IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFM0OCA0NDcuNSA0OCAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMOTYgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNMMjE2IDk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjEyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDY0IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM1MiA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6Il19LExmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmVhdGVyLXRoYW4iLGljb246WzUxMiw1MTIsWzYyNzY5XSwiM2UiLCJNMzQuOSA1MC42Yy03LjQgMTYtLjQgMzUuMSAxNS42IDQyLjVMNDAzLjYgMjU2IDUwLjYgNDE5Yy0xNiA3LjQtMjMuMSAyNi40LTE1LjYgNDIuNXMyNi40IDIzIDQyLjUgMTUuNmw0MTYtMTkyYzExLjMtNS4yIDE4LjYtMTYuNiAxOC42LTI5LjFzLTcuMy0yMy44LTE4LjYtMjkuMUw3Ny40IDM1Yy0xNi03LjQtMzUuMS0uNC00Mi41IDE1LjZ6Il19LEFmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcnV0Y2giLGljb246WzUxMiw1MTIsW10sImY3ZjciLCJNMjk3LjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTEuNC0xLjQtMTU4LjYgMTU4LjZjLTE4IDE4LTQyLjQgMjguMS02Ny45IDI4LjFsLTU5IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40LTYxLjcgNjEuNy05Mi44IDkyLjgtOTMuMyA5My4zLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2LTE2IDAgMCA3Ny4zLTc3LjNjNi02IDkuNC0xNC4xIDkuNC0yMi42bDAtNTljMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlMMjk4LjcgNTYgMjk3LjQgNTQuNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6TTM0NCAxMDEuM0wyNjEuMyAxODQgMzI4IDI1MC43IDQxMC43IDE2OCAzNDQgMTAxLjN6bS0xMjggMTI4bC0zMC42IDMwLjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDUzLjUgNTMuNSAwYzguNSAwIDE2LjYtMy40IDIyLjYtOS40TDI4Mi43IDI5NiAyMTYgMjI5LjN6Il19LFUyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZXB0YWdvbiIsaWNvbjpbNTc2LDUxMixbImhlcHRhZ29uIl0sImU4MjAiLCJNMjY3LjQtMzEuNWMxNS45LTUuNSAzMy41LTQuNiA0OC44IDIuN2wxNzIuNCA4MyA2LjMgMy41YzE0LjIgOSAyNC41IDIzLjMgMjguMyAzOS45bDQyLjYgMTg2LjUgMS4yIDcuMmMxLjYgMTQuMy0xLjcgMjguOC05LjQgNDEuMWwtNC4yIDUuOS0xMTkuMyAxNDkuNmMtMTIuMSAxNS4yLTMwLjYgMjQuMS01MCAyNC4xbC0xOTEuMyAwYy0xOS41IDAtMzcuOS04LjktNTAtMjQuMUwyMy41IDMzOC40Yy0xMi4xLTE1LjItMTYuNy0zNS4yLTEyLjMtNTQuMmw0Mi42LTE4Ni41IDItN2M1LjYtMTUuOSAxNy4yLTI5IDMyLjYtMzYuNGwxNzIuNC04MyA2LjctMi43eiJdfSxEZnQ9VTJlLEVmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdHJlZXQtdmlldyIsaWNvbjpbNTEyLDUxMixbXSwiZjIxZCIsIk0yNTYgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMjI0IDE2MGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEuOCAwLTExLjEgOTkuNWMtMS44IDE2LjItMTUuNSAyOC41LTMxLjggMjguNWwtMzguNyAwYy0xNi4zIDAtMzAtMTIuMy0zMS44LTI4LjVsLTExLjEtOTkuNS0xLjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00OGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDEyLjQgNDAwLjJjLTE2LjEtNC4yLTM0LjgtNy42LTU1LjQtMTAuMmw1LjMtNDcuN2MyMi43IDIuOSA0My43IDYuNyA2Mi4xIDExLjUgMjIuNCA1LjggNDIuNiAxMy4zIDU3LjggMjMuMyAxNC43IDkuNiAyOS44IDI0LjkgMjkuOCA0N3MtMTUuMSAzNy40LTI5LjggNDdjLTE1LjIgOS45LTM1LjUgMTcuNS01Ny44IDIzLjMtNDUuMSAxMS43LTEwNS4zIDE3LjgtMTY4LjQgMTcuOHMtMTIzLjMtNi4xLTE2OC40LTE3LjhDNjUuMiA0ODguNCA0NSA0ODAuOSAyOS44IDQ3MSAxNS4xIDQ2MS40IDAgNDQ2LjEgMCA0MjRzMTUuMS0zNy40IDI5LjgtNDdjMTUuMi05LjkgMzUuNS0xNy41IDU3LjgtMjMuMyAxOC41LTQuOCAzOS41LTguNiA2Mi4xLTExLjVMMTU1IDM5MGMtMjAuNiAyLjYtMzkuMyA2LjEtNTUuNCAxMC4yLTU2LjYgMTQuNi01Ni42IDMyLjkgMCA0Ny41IDM5LjkgMTAuMyA5NS44IDE2LjIgMTU2LjQgMTYuMnMxMTYuNS01LjkgMTU2LjQtMTYuMmM1Ni42LTE0LjYgNTYuNi0zMi45IDAtNDcuNXoiXX0sJGZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhdmUtc3F1YXJlIixpY29uOls1MTIsNTEyLFtdLCJmODNlIiwiTTY0IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjg4IDk2IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjg4LTk2IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTEyOHoiXX0sSWZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLWxlZnQiLGljb246WzI1Niw1MTIsWzgyNDldLCJmMTA0IiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDc3LjMgMjU2IDIxNC42IDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYweiJdfSxQZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NyZXdkcml2ZXIiLGljb246WzU3Niw1MTIsWzEyOTY5MV0sImY1NGEiLCJNMzUyLjEgMTQ2LjdsMC00OS42YzAtMTAuNyA1LjMtMjAuNyAxNC4yLTI2LjZMNDg1LjItOC43YzYuMy00LjIgMTQuOC0zLjQgMjAuMiAybDQ1LjQgNDUuNWM1LjQgNS40IDYuMiAxMy44IDIgMjAuMkw0NzMuNiAxNzcuOGMtNS45IDguOS0xNS45IDE0LjItMjYuNiAxNC4ybC00OS42IDAtOTAuNyA5MC43YzE1IDMzLjMgOC45IDczLjktMTguNSAxMDEuM0wxNjIuMSA1MTAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMzQuMSA0NDkuOWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlMMTYwLjEgMjU2YzI3LjQtMjcuNCA2Ny45LTMzLjYgMTAxLjMtMTguNWw5MC43LTkwLjd6Il19LE5mdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFjdG9yIixpY29uOls1NzYsNTEyLFsxMjg2NjhdLCJmNzIyIiwiTTE2MCA5NmwwIDk2IDEzMy40IDAtNTcuNi05Ni03NS44IDB6TTk2IDIyM0w5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMDcuOCAwYzIyLjUgMCA0My4zIDExLjggNTQuOSAzMS4xbDc3LjQgMTI4LjkgNjQgMCAwLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA3MiA0OCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDEuNWMwIDE0LjItNi4zIDI3LjgtMTcuMyAzNi45bC0zNSAyOS4yYzI2LjUgMTUuMiA0NC4zIDQzLjcgNDQuMyA3Ni40IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMTQuNCAzLjUtMjggOS42LTQwbC0xMDEuMiAwYy0zIDEzLjQtNy45IDI2LTE0LjQgMzcuNyA3LjcgOS40IDcuMiAyMy40LTEuNiAzMi4ybC0yMi42IDIyLjZjLTguOCA4LjgtMjIuNyA5LjMtMzIuMiAxLjYtOS4zIDUuMi0xOS4zIDkuMy0yOS44IDEyLjMtMS4yIDEyLjEtMTEuNCAyMS42LTIzLjkgMjEuNmwtMzIgMGMtMTIuNCAwLTIyLjctOS41LTIzLjktMjEuNi0xMC41LTMtMjAuNC03LjItMjkuOC0xMi4zLTkuNCA3LjctMjMuNCA3LjItMzIuMi0xLjZMMzUuNSA0NTMuOGMtOC44LTguOC05LjMtMjIuNy0xLjYtMzIuMi01LjItOS4zLTkuMy0xOS4zLTEyLjMtMjkuOC0xMi4xLTEuMi0yMS42LTExLjQtMjEuNi0yMy45bDAtMzJjMC0xMi40IDkuNS0yMi43IDIxLjYtMjMuOSAzLTEwLjUgNy4yLTIwLjQgMTIuMy0yOS44LTcuNy05LjQtNy4yLTIzLjQgMS42LTMyLjJsMjIuNi0yMi42YzguOC04LjggMjIuNy05LjMgMzIuMi0xLjYgMS45LTEgMy43LTIgNS43LTN6bTY0IDY1YTY0IDY0IDAgMSAwIDAgMTI4IDY0IDY0IDAgMSAwIDAtMTI4ek00NDAgNDI0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAgLTgwIDB6Il19LEZmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmlkZ2UtY2lyY2xlLXhtYXJrIixpY29uOls1NzYsNTEyLFtdLCJlNGNiIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw4IDAgMCA2NC00MCAwIDAgMTEyYzM3LjYgOS40IDY0IDQzLjIgNjQgODJsMCA5NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC01MyA0My05NiA5Ni05NiA2LjQgMCAxMi43IC42IDE4LjcgMS44IDM0LjctNDkuNSA5Mi4yLTgxLjggMTU3LjMtODEuOCAyOC42IDAgNTUuNiA2LjIgODAgMTcuNGwwLTY1LjQtNDAgMCAwLTY0IDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnpNNDI0IDk2bDAgNjQtODAgMCAwLTY0IDgwIDB6TTI5NiA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek04OCA5Nmw4MCAwIDAgNjQtODAgMCAwLTY0ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sT2Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpYWxzIixpY29uOls1MTIsNTEyLFtdLCJmNDkzIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAzNTJjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTM1MiA2NCAwIDAgMzUyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0zNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJTNDk3LjcgMCA0ODAgMEwzMiAwek0xNjAgNjRsMCAxMjgtNjQgMCAwLTEyOCA2NCAwem0yNTYgMGwwIDEyOC02NCAwIDAtMTI4IDY0IDB6Il19LFJmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGV0aG9zY29wZSIsaWNvbjpbNTc2LDUxMixbMTI5NjU4XSwiZjBmMSIsIk0zMiA0OEMzMiAyMS41IDUzLjUgMCA4MCAwbDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAxMjhjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmwwLTEyOC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMyMzguMyAwIDI1NiAwbDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNDRjMCA3Ny40LTU1IDE0Mi0xMjggMTU2LjhsMCAxOS4yYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJsMC04NS41Yy0zNy4zLTEzLjItNjQtNDguNy02NC05MC41IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCA0MS44LTI2LjcgNzcuNC02NCA5MC41bDAgODUuNWMwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMxNjAgNDY1LjIgMTYwIDM2OGwwLTE5LjJDODcgMzM0IDMyIDI2OS40IDMyIDE5MkwzMiA0OHpNNDgwIDIyNGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LEJmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwb2RjYXN0IixpY29uOls0NDgsNTEyLFtdLCJmMmNlIiwiTTMzNiAzNTkuOGMzOS4xLTMyLjMgNjQtODEuMSA2NC0xMzUuOCAwLTk3LjItNzguOC0xNzYtMTc2LTE3NlM0OCAxMjYuOCA0OCAyMjRDNDggMjc4LjcgNzIuOSAzMjcuNSAxMTIgMzU5LjggMTEyLjQgMzc3LjQgMTE1LjIgNDAwLjIgMTE4LjQgNDIxLjYgNDggMzgzLjkgMCAzMDkuNSAwIDIyNCAwIDEwMC4zIDEwMC4zIDAgMjI0IDBTNDQ4IDEwMC4zIDQ0OCAyMjRjMCA4NS42LTQ4IDE1OS45LTExOC41IDE5Ny42IDMuMy0yMS40IDYtNDQuMiA2LjQtNjEuOHptLTE0LTUzLjRjLTguMy0xMi42LTE5LjItMjEuNi0zMC40LTI3LjgtMi4xLTEuMS00LjItMi4yLTYuMy0zLjIgMTEuNy0xMy45IDE4LjgtMzEuOSAxOC44LTUxLjUgMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAxOS42IDcuMSAzNy42IDE4LjggNTEuNS0yLjEgMS00LjIgMi02LjMgMy4yLTExLjIgNi4yLTIyLjEgMTUuMi0zMC40IDI3LjgtMTguOC0yMi4zLTMwLjEtNTEtMzAuMS04Mi40IDAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjhjMCAzMS40LTExLjMgNjAuMi0zMC4xIDgyLjR6TTIyNCAzMTJjMzIuOSAwIDY0IDguNiA2NCA0My44IDAgMzMtMTIuOSAxMDQuMS0yMC42IDEzMi45LTUuMSAxOS0yNC41IDIzLjQtNDMuNCAyMy40cy0zOC4yLTQuNC00My40LTIzLjRjLTcuOC0yOC41LTIwLjYtOTkuNy0yMC42LTEzMi44IDAtMzUuMSAzMS4xLTQzLjggNjQtNDMuOHptMC0xMjhhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxIZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtcmlnaHQtZG90cyIsaWNvbjpbNTEyLDUxMixbXSwiZTRiNyIsIk05NiAzMkM3OC4zIDMyIDY0IDQ2LjMgNjQgNjRTNzguMyA5NiA5NiA5NkwxMTQuNyA5NiA5LjQgMjAxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTYwIDE0MS4zIDE2MCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDMyek00MDMuOCA3MC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6TTI3OS43IDE5NC4yYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6bTE2Mi4yLTM4LjFhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yek0xNTYuMiAzMTcuOGEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAwem0xNjEuNi0zOC4xYTM4LjEgMzguMSAwIDEgMCAwIDc2LjIgMzguMSAzOC4xIDAgMSAwIDAtNzYuMnptODYuMSAzOC4xYTM4LjEgMzguMSAwIDEgMCA3Ni4yIDAgMzguMSAzOC4xIDAgMSAwIC03Ni4yIDB6TTcwLjEgNDAzLjhhMzguMSAzOC4xIDAgMSAwIDAgNzYuMiAzOC4xIDM4LjEgMCAxIDAgMC03Ni4yem04Ni4xIDM4LjFhMzguMSAzOC4xIDAgMSAwIDc2LjIgMCAzOC4xIDM4LjEgMCAxIDAgLTc2LjIgMHptMTYxLjYtMzguMWEzOC4xIDM4LjEgMCAxIDAgMCA3Ni4yIDM4LjEgMzguMSAwIDEgMCAwLTc2LjJ6bTg2LjEgMzguMWEzOC4xIDM4LjEgMCAxIDAgNzYuMiAwIDM4LjEgMzguMSAwIDEgMCAtNzYuMiAweiJdfSxxZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtcXVlZW4iLGljb246WzUxMiw1MTIsWzk4MTldLCJmNDQ1IiwiTTI1NiA4MGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTUuNSAxODVMMTI4IDM4NCA3MS44IDQ1NC4zYy01IDYuMy03LjggMTQuMS03LjggMjIuMiAwIDE5LjYgMTUuOSAzNS41IDM1LjUgMzUuNWwzMTIuOSAwYzE5LjYgMCAzNS41LTE1LjkgMzUuNS0zNS41IDAtOC4xLTIuNy0xNS45LTcuOC0yMi4yTDM4NCAzODQgNTA2LjUgMTg1YzMuNi01LjkgNS41LTEyLjcgNS41LTE5LjZsMC0uNmMwLTIwLjMtMTYuNS0zNi44LTM2LjgtMzYuOC03LjMgMC0xNC40IDIuMi0yMC40IDYuMmwtMTYuOSAxMS4zYy0xMi43IDguNS0yOS42IDYuOC00MC40LTRsLTM0LjEtMzQuMUMzNTYuMSAxMDAuMSAzNDYuMiA5NiAzMzYgOTZzLTIwLjEgNC4xLTI3LjMgMTEuM2wtMzAuMSAzMC4xYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMzAuMS0zMC4xQzE5Ni4xIDEwMC4xIDE4Ni4yIDk2IDE3NiA5NnMtMjAuMSA0LjEtMjcuMyAxMS4zbC0zNC4xIDM0LjFjLTEwLjggMTAuOC0yNy43IDEyLjUtNDAuNCA0TDU3LjMgMTM0LjJjLTYuMS00LTEzLjItNi4yLTIwLjQtNi4yLTIwLjMgMC0zNi44IDE2LjUtMzYuOCAzNi44bDAgLjZjMCA2LjkgMS45IDEzLjcgNS41IDE5LjZ6Il19LGpmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNGFiIiwiTTMyMC41IDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNsMTYuMi0xNC4yYzIuMSAxMTMuMSA5NC40IDIwNC4xIDIwOCAyMDQuMSAxNi42IDAgMzIuNy0xLjkgNDguMi01LjYtMjAuMy0zMC41LTMyLjItNjctMzIuMi0xMDYuNCAwLTI3LjMgNS43LTUzLjMgMTYtNzYuOWwwLTEzNi42YzM3LjMtMTMuMiA2NC00OC43IDY0LTkwLjUgMC01My00My05Ni05Ni05NnptMjA4IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LFcyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbGxpcHNpcy12ZXJ0aWNhbCIsaWNvbjpbMTI4LDUxMixbImVsbGlwc2lzLXYiXSwiZjE0MiIsIk02NCAxNDRhNTYgNTYgMCAxIDEgMC0xMTIgNTYgNTYgMCAxIDEgMCAxMTJ6bTAgMjI0YzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2LTU2LTI1LjEtNTYtNTYgMjUuMS01NiA1Ni01NnptNTYtMTEyYzAgMzAuOS0yNS4xIDU2LTU2IDU2cy01Ni0yNS4xLTU2LTU2IDI1LjEtNTYgNTYtNTYgNTYgMjUuMSA1NiA1NnoiXX0sVmZ0PVcyZSxVZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhcnQtY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGZlIiwiTTI0MSA4Ny4xbDE1IDIwLjcgMTUtMjAuN0MyOTYgNTIuNSAzMzYuMiAzMiAzNzguOSAzMiA0NTIuNCAzMiA1MTIgOTEuNiA1MTIgMTY1LjFsMCAyLjZjMCAxNy42LTMuNCAzNS42LTkuNSA1My43LTIxLjgtOC42LTQ1LjYtMTMuNC03MC41LTEzLjQtMTA2IDAtMTkyIDg2LTE5MiAxOTIgMCAyOC41IDYuMiA1NS42IDE3LjQgODAtLjUgMC0uOSAwLTEuNCAwLTE1LjUgMC0zMC44LTQuNi00My4xLTE0LjEtNzMtNTUuNy0yMTIuOS0xODYtMjEyLjktMjk4LjJsMC0yLjZDMCA5MS42IDU5LjYgMzIgMTMzLjEgMzIgMTc1LjggMzIgMjE2IDUyLjUgMjQxIDg3LjF6TTQzMiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSxXZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGQzIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTc0LjkgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMiAwIDQgLjIgNS45IC41IDYtMjMuNiAxNi4zLTQ1LjQgMzAuMS02NC41bC00IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDRjMjcuNS0xOS44IDYwLjMtMzIuNCA5Ni0zNS40TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LEdmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYXJyb3ctdXAtZnJvbS1saW5lIixpY29uOls1NzYsNTEyLFtdLCJlNTM5IiwiTTE5Mi0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMzE4LjMgMjk5LjFsLTQ2LjMtNjIuNCAwIDI0My4zIDI3MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDU0NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MCAwIDAtMjQzLjMtNDYuMyA2Mi40Yy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi42cy0xNy4yLTMwLjYtNi42LTQ0LjhsNzAuNS05NUMxMTAgMTMyIDE0OS43IDExMiAxOTIgMTEyczgyIDIwIDEwNy4yIDUzLjlsNzAuNSA5NWMxMC41IDE0LjIgNy42IDM0LjItNi42IDQ0LjhzLTM0LjIgNy42LTQ0LjgtNi42ek0yMDggNDgwbDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTI4IDMyIDB6TTU2Ni42IDEwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEw0OTYgNzcuMyA0OTYgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQ2LjctMjUuNCAyNS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w4MC04MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3oiXX0sWWZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdC1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzZSIsIk0zNzguNiA4MS44YzkuOC0xNC43IDUuOC0zNC42LTguOS00NC40cy0zNC42LTUuOC00NC40IDguOUwyNzAuOSAxMjggMzIgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5Ni4yIDAtODUuMyAxMjgtMTEwLjkgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2OC4yIDAtMzAuOCA0Ni4yYy05LjggMTQuNy01LjggMzQuNiA4LjkgNDQuNHMzNC42IDUuOCA0NC40LTguOUwxNzcuMSAzODQgNDE2IDM4NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTk2LjIgMCA4NS4zLTEyOCAxMTAuOSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02OC4yIDAgMzAuOC00Ni4yeiJdfSxaZnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tdHJhbSIsaWNvbjpbMzg0LDUxMixbMTI4NjUwXSwiZTViNCIsIk0wIDhDMC01LjMgMTAuNy0xNiAyNC0xNmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtOC0xMjAgMCAwIDY0IDQwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDE2MGMwIDMxLjItMTQuOSA1OS0zOCA3Ni41bDY0LjMgNzZjOC42IDEwLjEgNy4zIDI1LjMtMi44IDMzLjhzLTI1LjMgNy4zLTMzLjgtMi44bC03NC42LTg4LjFjLTMuNiAuNC03LjMgLjYtMTEuMSAuNmwtMTI4IDBjLTMuOCAwLTcuNS0uMi0xMS4xLS42TDQyLjMgNTM1LjVjLTguNiAxMC4xLTIzLjcgMTEuNC0zMy44IDIuOHMtMTEuNC0yMy43LTIuOC0zMy44bDY0LjMtNzZDNDYuOSA0MTEgMzIgMzgzLjIgMzIgMzUybDAtMTYwYzAtNTMgNDMtOTYgOTYtOTZsNDAgMCAwLTY0LTEyMCAwIDAgOGMwIDEzLjMtMTAuNyAyNC0yNCAyNFMwIDUzLjMgMCA0MEwwIDh6TTEyOCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTI4IDB6bTMyIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFhmdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1kZXBhcnR1cmUiLGljb246WzU3Niw1MTIsWzEyODc0N10sImY1YjAiLCJNMzcyIDE0My45TDE3Mi43IDQwLjJjLTgtNC4xLTE3LjMtNC44LTI1LjctMS43bC00MS4xIDE1Yy0xMC4zIDMuNy0xMy44IDE2LjQtNy4xIDI1TDIwMC4zIDIwNi40IDEwMC4xIDI0Mi44IDQwIDIwNi4yYy02LjItMy44LTEzLjgtNC41LTIwLjctMi4xTDMgMjEwLjFjLTkuNCAzLjQtMTMuNCAxNC41LTguMyAyMy4xbDUzLjYgOTEuOGMxNS42IDI2LjcgNDguMSAzOC40IDc3LjEgMjcuOGwxMi45LTQuNyAwIDAgMzk4LjQtMTQ1YzI5LjEtMTAuNiA0NC00Mi43IDMzLjUtNzEuOHMtNDIuNy00NC03MS44LTMzLjVMMzcyIDE0My45ek0zMi4yIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTEyIDB6Il19LEcyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC10by1icmFja2V0IixpY29uOls1MTIsNTEyLFsic2lnbi1pbi1hbHQiXSwiZjJmNiIsIk0zNDUgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDIwMSA5NWMtNi45LTYuOS0xNy4yLTguOS0yNi4yLTUuMlMxNjAgMTAyLjMgMTYwIDExMmwwIDgwLTExMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDExMiAwIDAgODBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4yTDM0NSAyNzN6bTcgMTQzYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDB6Il19LFFmdD1HMmUsSmZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNkLWNhcmQiLGljb246WzM4NCw1MTIsW10sImY3YzIiLCJNMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyNS4zIDBDMTA4LjMgMCA5MiA2LjcgODAgMTguN0wxOC43IDgwQzYuNyA5MiAwIDEwOC4zIDAgMTI1LjNMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zODR6TTE2MCA4OGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODggMGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sS2Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYSIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMSA0Ny4yLTE3NS44IDExNC44LTUuMS0xLjgtMTAuNS0yLjgtMTYuMi0yLjhsLTMyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTYgOTEgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMSA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTQ5NiA0NDRhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem0wLTE0MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODBjMCA4LjggNy4yIDE2IDE2IDE2IDguOCAwIDE2LTcuMiAxNi0xNmwwLTgwYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sTnA9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hla2VsLXNpZ24iLGljb246WzQ0OCw1MTIsWzgzNjIsImlscyIsInNoZWtlbCIsInNoZXFlbCIsInNoZXFlbC1zaWduIl0sImYyMGIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTMyMCA0ODBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEyOCAwIDAtMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAweiJdfSxlN3Q9TnAsdDd0PU5wLHI3dD1OcCxpN3Q9TnAsYTd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJhZGlvIixpY29uOls1MTIsNTEyLFsxMjgyNTFdLCJmOGQ3IiwiTTQ5NC44IDE1YzEyLjctMy43IDIwLTE3LjEgMTYuMy0yOS44UzQ5NC0zNC44IDQ4MS4zLTMxTDUxLjggOTQuOUM0Mi40IDk3LjYgMzMuOSAxMDIuMSAyNi42IDEwOCAxMC41IDExOS43IDAgMTM4LjYgMCAxNjBMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMjE4LjUgOTYgNDk0LjggMTV6TTM2OCAyMDhhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTY0IDI0OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4OCAyNzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDM2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LFkyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWRvdHMiLGljb246WzUxMiw1MTIsWyJhbGxlcmdpZXMiXSwiZjQ2MSIsIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHpNMjAwIDM1MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00MCA4OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0tODggMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxuN3Q9WTJlLFoyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXNrdWxsIixpY29uOls0NDgsNTEyLFsiYm9vay1kZWFkIl0sImY2YjciLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTI3MiAxNjMuMmwwIDEyLjhjMCA4LjgtNy4yIDE2LTE2IDE2bC02NCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMi44Yy0xOS40LTExLjctMzItMzAuMy0zMi01MS4yIDAtMzUuMyAzNS44LTY0IDgwLTY0czgwIDI4LjcgODAgNjRjMCAyMC45LTEyLjYgMzkuNS0zMiA1MS4yek0yMDggMTEyYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptNzQuMiA5NS43YzQuNiAxMC4xIC4xIDIxLjktOS45IDI2LjVsLTQ3LjkgMjEuOCA0Ny45IDIxLjhjMTAuMSA0LjYgMTQuNSAxNi40IDkuOSAyNi41cy0xNi40IDE0LjUtMjYuNSA5LjlMMjI0IDI5NCAxNDQuMyAzMzAuMmMtMTAuMSA0LjYtMjEuOSAuMS0yNi41LTkuOXMtLjEtMjEuOSA5LjktMjYuNWw0Ny45LTIxLjgtNDcuOS0yMS44Yy0xMC4xLTQuNi0xNC41LTE2LjQtOS45LTI2LjVzMTYuNC0xNC41IDI2LjUtOS45TDIyNCAyNTAgMzAzLjcgMjEzLjhjMTAuMS00LjYgMjEuOS0uMSAyNi41IDkuOXoiXX0sbzd0PVoyZSxYMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW5sb2NrLWtleWhvbGUiLGljb246WzM4NCw1MTIsWyJ1bmxvY2stYWx0Il0sImYxM2UiLCJNMTkyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0IDE5MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMC02NGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCA2My41IDAgMTE2LjEgNDYuMSAxMjYuMiAxMDYuNyAyLjkgMTcuNC04LjggMzMuOS0yNi4zIDM2LjlzLTMzLjktOC44LTM2LjktMjYuM0MyNTAgNTUuMSAyMjMuNyAzMiAxOTIgMzJ6bTQwIDMyOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAweiJdfSxzN3Q9WDJlLFEyZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWFycm93LXVwIixpY29uOlszODQsNTEyLFsiZmlsZS11cGxvYWQiXSwiZjU3NCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMjA5IDI2M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTY0IDY0Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMjMtMjMgMCA4Ni4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04Ni4xIDIzIDIzYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjQtNjR6Il19LGw3dD1RMmUsSjJlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi10ZWFycyIsaWNvbjpbNjQwLDUxMixbMTI4NTE0LCJncmluLXRlYXJzIl0sImY1ODgiLCJNNTU0LjggMjAzLjRsMTYuMyAyLjNDNTQ3LjcgODguNCA0NDQuMiAwIDMyMCAwUzkyLjMgODguNCA2OC45IDIwNS43bDE2LjMtMi4zYzM3LTUuMyA2OC42IDI2LjQgNjMuNCA2My40bC02LjcgNDYuN2MtNC4xIDI5LTIxLjYgNTMuMi00NS44IDY2LjggNDMuNyA3OC41IDEyNy42IDEzMS43IDIyMy44IDEzMS43czE4MC4xLTUzLjEgMjIzLjgtMTMxLjdjLTI0LjEtMTMuNS00MS42LTM3LjgtNDUuOC02Ni44bC02LjctNDYuN2MtNS4zLTM3IDI2LjQtNjguNiA2My40LTYzLjR6TTQ3MC4zIDMyNi45QzQ0Ny45IDM4OC4yIDM4OS4xIDQzMiAzMjAgNDMyUzE5Mi4xIDM4OC4yIDE2OS43IDMyNi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xek0yMTIgMjA4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6bTE4OC0yOGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHpNNjQwIDMwMC42YzAtMjUuNi0xOC44LTQ3LjMtNDQuMS01MC45TDU0OS4xIDI0M2MtMTAuNi0xLjUtMTkuNiA3LjUtMTguMSAxOC4xbDYuNyA0Ni43YzMuNiAyNS4zIDI1LjMgNDQuMSA1MC45IDQ0LjEgMjguNCAwIDUxLjQtMjMgNTEuNC01MS40em0tNjQwIDBDMCAzMjkgMjMgMzUyIDUxLjQgMzUyIDc3IDM1MiA5OC43IDMzMy4yIDEwMi4zIDMwNy45bDYuNy00Ni43YzEuNS0xMC42LTcuNS0xOS42LTE4LjEtMTguMWwtNDYuNyA2LjdDMTguOCAyNTMuMyAwIDI3NSAwIDMwMC42eiJdfSxjN3Q9SjJlLFlnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi10by1zcXVhcmUiLGljb246WzUxMiw1MTIsWyJlZGl0Il0sImYwNDQiLCJNNDcxLjYgMjEuN2MtMjEuOS0yMS45LTU3LjMtMjEuOS03OS4yIDBMMzY4IDQ2LjEgNDY1LjkgMTQ0IDQ5MC4zIDExOS42YzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ3MS42IDIxLjd6bS0yOTkuMiAyMjBjLTYuMSA2LjEtMTAuOCAxMy42LTEzLjUgMjEuOWwtMjkuNiA4OC44Yy0yLjkgOC42LS42IDE4LjEgNS44IDI0LjZzMTUuOSA4LjcgMjQuNiA1LjhsODguOC0yOS42YzguMi0yLjcgMTUuNy03LjQgMjEuOS0xMy41TDQzMiAxNzcuOSAzMzQuMSA4MCAxNzIuNCAyNDEuN3pNOTYgNjRDNDMgNjQgMCAxMDcgMCAxNjBMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmwyNTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMOTYgNjR6Il19LGQ3dD1ZZyxLMmU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtZXVyb3BlIixpY29uOls1MTIsNTEyLFsiZ2xvYmUtZXVyb3BlIl0sImY3YTIiLCJNMjU2LjIgNDhjMTE0LjggLjEgMjA3LjggOTMuMiAyMDcuOCAyMDggMCAyMi4xLTMuNCA0My40LTkuOCA2My40LTIgLjQtNC4xIC42LTYuMiAuNmwtMi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0yOS4zLTI5LjNjLTYtNi05LjQtMTQuMS05LjQtMjIuNmwwLTUwLjdjMC04LjggNy4yLTE2IDE2LTE2czE2LTcuMiAxNi0xNi03LjItMTYtMTYtMTZsLTI0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjUuNCAwYy0xMi41IDAtMjIuNi0xMC4xLTIyLjYtMjIuNiAwLTYgMi40LTExLjggNi42LTE2bDcwLjEtNzAuMWMyLjEtMi4xIDMuMy01IDMuMy04IDAtNi4yLTUuMS0xMS4zLTExLjMtMTEuM2wtMTQuMSAwYy0xMi41IDAtMjIuNi0xMC4xLTIyLjYtMjIuNiAwLTYgMi40LTExLjggNi42LTE2bDIzLjEtMjMuMWMuOC0uOCAxLjYtMS41IDIuNS0yLjJ6TTQzOC40IDM1Ni4xYy0zMi44IDU5LjYtOTMuOSAxMDEuNC0xNjUuMiAxMDcuMi0uNy0yLjMtMS4xLTQuOC0xLjEtNy4zIDAtMTMuMy0xMC43LTI0LTI0LTI0bC0yNi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0yOS4zLTI5LjNjLTYtNi05LjQtMTQuMS05LjQtMjIuNmwwLTY2LjdjMC0xNy43IDE0LjMtMzIgMzItMzJsOTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDI5LjMgMjkuM2M2IDYgMTQuMSA5LjQgMjIuNiA5LjRsNS41IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMTYgMTZjNC4yIDQuMiAxMCA2LjYgMTYgNi42IDQuOCAwIDkuMyAxLjUgMTMgNC4xek0yNTYgNTEybDI2LjItMS4zYy04LjYgLjktMTcuMyAxLjMtMjYuMiAxLjN6bTI2LjItMS4zQzQxMS4zIDQ5Ny42IDUxMiAzODguNiA1MTIgMjU2IDUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwbDAgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTYgMCAzODMuNSA5My4yIDQ4OS4zIDIxNS4zIDUwOC44IDIyOC41IDUxMC45IDI0Mi4xIDUxMiAyNTYgNTEyek0xODcuMyAxMjMuM2wtMzIgMzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzItMzJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSx1N3Q9SzJlLGVzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tYmVhbS1zd2VhdCIsaWNvbjpbNTc2LDUxMixbMTI4NTE3LCJncmluLWJlYW0tc3dlYXQiXSwiZjU4MyIsIk01NDYuMi0uMWMxNC43IDE3LjggMjkuOCA0MC4xIDI5LjggNjQuMSAwIDM2LjQtMjcuNiA2NC02NCA2NHMtNjQtMjcuNi02NC02NGMwLTI0IDE1LjItNDYuMyAyOS44LTY0LjEgOC44LTEwLjcgMTguNS0yMC44IDI5LTMwIDMtMi42IDcuNC0yLjYgMTAuNCAwIDEwLjUgOS4xIDIwLjEgMTkuMyAyOSAzMHpNMjg4IDBjNDIuNSAwIDgyLjYgMTAuNCAxMTcuOCAyOC43LTMuNiAxMC45LTUuOCAyMi43LTUuOCAzNS4zIDAgNjIuOSA0OS4xIDExMiAxMTIgMTEyIDYuNCAwIDEyLjctLjUgMTguOC0xLjUgOC42IDI1LjYgMTMuMiA1MyAxMy4yIDgxLjUgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMzMiAzOTcuNCAzMiAyNTYgMTQ2LjYgMCAyODggMHpNNDE4LjcgMzA4LjlDMzc5LjUgMzIxLjEgMzM1LjEgMzI4IDI4OCAzMjhzLTkxLjUtNi45LTEzMC43LTE5LjFjLTExLjktMy43LTIzLjkgNi4zLTE5LjYgMTguMSAyMi40IDYxLjMgODEuMyAxMDUuMSAxNTAuMyAxMDUuMXMxMjcuOS00My44IDE1MC4zLTEwNS4xYzQuMy0xMS44LTcuNy0yMS44LTE5LjYtMTguMXpNMjA4IDE4MGMxNS41IDAgMjggMTIuNSAyOCAyOGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMzcuNi0zMC40LTY4LTY4LTY4cy02OCAzMC40LTY4IDY4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0xNS41IDEyLjUtMjggMjgtMjh6bTEzMiAyOGMwLTE1LjUgMTIuNS0yOCAyOC0yOHMyOCAxMi41IDI4IDI4bDAgOGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLThjMC0zNy42LTMwLjQtNjgtNjgtNjhzLTY4IDMwLjQtNjggNjhsMCA4YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOHoiXX0scDd0PWVzZSx0c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWhhbGYtc3Ryb2tlIixpY29uOls1MTIsNTEyLFs5NjgwLCJhZGp1c3QiXSwiZjA0MiIsIk00NDggMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkybDAgMzg0YzEwNiAwIDE5Mi04NiAxOTItMTkyek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxoN3Q9dHNlLGY3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktdG8tcGVyc29uIixpY29uOls1MTIsNTEyLFtdLCJlNTRjIiwiTTcxIDEyLjVjLTguNiAxLTE1IDguMi0xNSAxNi44IDAgOS4zIDcuNSAxNi44IDE2LjcgMTYuOWwxMTEuNCAwYzguOC0uMSAxNS45LTcuMiAxNS45LTE2TDIwMCAxNmMwLTkuNS04LjMtMTctMTcuOC0xNS45TDcxIDEyLjV6TTE4OS41IDc4LjFsLTEyMi45IDBjLTEuNiA1LjctMi41IDExLjctMi41IDE3LjkgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTYuMi0uOS0xMi4yLTIuNS0xNy45ek0zMiAyNTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxLjggMCAzLjUtLjEgNS4yLS40TDUzIDIwOC42QzQwLjEgMjIwLjMgMzIgMjM3LjIgMzIgMjU2em0xOTAuMiA0Mi41YzEuMS0zLjMgMS44LTYuOCAxLjgtMTAuNWwwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwYy0zLjcgMC03LjQgLjMtMTAuOSAuOUwyMjIuMiAyOTguNXpNMzg0IDE2MGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHptLTMyIDMyYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDB6TTIxNS44IDQ1MC4xYzUuMi00LjYgOC4yLTExLjEgOC4yLTE4LjFzLTMtMTMuNS04LjItMTguMWwtNjQtNTZjLTcuMS02LjItMTcuMS03LjctMjUuNy0zLjhTMTEyIDM2Ni42IDExMiAzNzZsMCAzMi04OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDg4IDAgMCAzMmMwIDkuNCA1LjUgMTggMTQuMSAyMS45czE4LjYgMi40IDI1LjctMy44bDY0LTU2ek0yODggNDMxLjljMCA2LjkgMyAxMy41IDguMSAxOC4xbDY0IDU2LjRjNy4xIDYuMiAxNy4xIDcuOCAyNS43IDMuOVM0MDAgNDk3LjggNDAwIDQ4OC40bDAtMzIuNCA4OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04OCAwIDAtMzJjMC05LjQtNS41LTE4LTE0LjEtMjEuOXMtMTguNi0yLjQtMjUuNyAzLjhsLTY0IDU2Yy01LjIgNC41LTguMiAxMS4xLTguMiAxOHoiXX0sbTd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxlLWNlbGxzLWNvbHVtbi1sb2NrIixpY29uOls2NDAsNTEyLFtdLCJlNjc4IiwiTTI1NiAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem0yNTYtNzljLTQ2LjcgNS44LTg1LjYgMzYuOC0xMDIuNyA3OWwtMjUuMyAwIDAgOTAuOGMtMTAuMSAxNS4yLTE2IDMzLjQtMTYgNTMuMWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMMTI4IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA0OXpNMTI4IDIyNGwwIDE5MiA2NCAwIDAtMTkyLTY0IDB6bTQzMiA0OC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNNDE2IDM2OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sZzd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZpZWxkLXVuIixpY29uOls2NDAsNTEyLFtdLCJlNThlIiwiTTk2IDMyQzYwLjcgMzIgMzIgNjAuNyAzMiA5NmwwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDAgNDhjMCAyMS4xIDEzLjcgMzkuMSAzMi42IDQ1LjUtLjQgMy40LS42IDctLjYgMTAuNSAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bDE0NC43IDBjLS4yIDIuNi0uNCA1LjMtLjQgOCAwIDQ4LjYgMzkuNCA4OCA4OCA4OHM4OC0zOS40IDg4LTg4YzAtMi43LS4xLTUuNC0uNC04bC40IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMjQuNyAwLTEuNy00LjItNDMuOC0xMDYuM2MtMTIuMy0zMC00MS42LTQ5LjUtNzQtNDkuNWwtNDAuNCAwQzM2NC40IDQ0LjkgMzQzLjcgMzIgMzIwIDMyTDk2IDMyek0zODQgMjI0bDAtOTYgMzEuOSAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45bDM1LjQgODYuMS04Mi4xIDB6TTE1MiAzNTJhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yODAgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjU2LjYgMTMyLjlsMjcuNCA0MSAwLTI5LjljMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA5NmMwIDguOC01LjggMTYuNi0xNC4yIDE5LjFzLTE3LjUtLjctMjIuNC04bC0yNy40LTQxIDAgMjkuOWMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC05NmMwLTguOCA1LjgtMTYuNiAxNC4yLTE5LjFzMTcuNSAuNyAyMi40IDh6TTEzMiAxNDRsMCA2NGMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtNjRjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjBsMCA2NGMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTY0YzAtMTEgOS0yMCAyMC0yMHMyMCA5IDIwIDIweiJdfSxyc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvY2siLGljb246WzUxMiw1MTIsWzEyODMzOSwiY2xvY2stZm91ciJdLCJmMDE3IiwiTTI1NiAwYTI1NiAyNTYgMCAxIDEgMCA1MTIgMjU2IDI1NiAwIDEgMSAwLTUxMnpNMjMyIDEyMGwwIDEzNmMwIDggNCAxNS41IDEwLjcgMjBsOTYgNjRjMTEgNy40IDI1LjkgNC40IDMzLjMtNi43czQuNC0yNS45LTYuNy0zMy4zTDI4MCAyNDMuMiAyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxiN3Q9cnNlLHY3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rIixpY29uOls0NDgsNTEyLFsxMjgyMTJdLCJmMDJkIiwiTTM4NCA1MTJMOTYgNTEyYy01MyAwLTk2LTQzLTk2LTk2TDAgOTZDMCA0MyA0MyAwIDk2IDBMNDAwIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAyODhjMCAyMC45LTEzLjQgMzguNy0zMiA0NS4zbDAgNjYuN2MxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHpNOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI1NiAwIDAtNjQtMjU2IDB6bTMyLTIzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yNCA3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LGlzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoLXdpbmsiLGljb246WzUxMiw1MTIsWyJsYXVnaC13aW5rIl0sImY1OWMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE0NCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0seDd0PWlzZSx5N3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtbWVhdGJhbGwiLGljb246WzUxMiw1MTIsW10sImY3M2IiLCJNMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmwyNi45IDBjMy41LTEyLjEgMTAuMS0yMy4zIDE5LjItMzIuNGwxLjQtMS40YzE1LTE1IDM1LjMtMjIuOSA1Ni4xLTIyLjIgMTQuMi0xNS4xIDM0LjItMjMuOSA1NS40LTIzLjlsMiAwYzIxLjEgMCA0MS4xIDguOCA1NS40IDIzLjkgMjAuOC0uNiA0MS4xIDcuMyA1Ni4xIDIyLjJsMS40IDEuNGM5LjIgOS4yIDE1LjcgMjAuNCAxOS4yIDMyLjRsMjYuOSAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwIDEuMS01LjIgMS42LTEwLjUgMS42LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOC0xOC43LTM1LjctNTYuMS02MC05OS4yLTYwLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNy4xIC43IDE0LjEgMS45IDIwLjgtMzguMyAxMi42LTY1LjkgNDguNy02NS45IDkxLjJ6TTE1Ni41IDQyNC4zYzkuNSA2LjMgMTQuMiAxNy43IDExLjkgMjguOC0xLjggOS4yIDEgMTguNyA3LjcgMjUuM2wxLjQgMS40YzYuNiA2LjYgMTYuMSA5LjUgMjUuMyA3LjcgMTEuMS0yLjIgMjIuNSAyLjUgMjguOCAxMS45IDUuMiA3LjggMTQgMTIuNSAyMy4zIDEyLjVsMiAwYzkuNCAwIDE4LjEtNC43IDIzLjMtMTIuNSA2LjMtOS41IDE3LjctMTQuMiAyOC44LTExLjkgOS4yIDEuOCAxOC43LTEgMjUuMy03LjdsMS40LTEuNGM2LjYtNi42IDkuNS0xNi4xIDcuNy0yNS4zLTIuMi0xMS4xIDIuNS0yMi41IDExLjktMjguOCA3LjgtNS4yIDEyLjUtMTQgMTIuNS0yMy4zbDAtMmMwLTkuNC00LjctMTguMS0xMi41LTIzLjMtOS41LTYuMy0xNC4yLTE3LjctMTEuOS0yOC44IDEuOC05LjItMS0xOC43LTcuNy0yNS4zbC0xLjQtMS40Yy02LjYtNi42LTE2LjEtOS41LTI1LjMtNy43LTExLjEgMi4yLTIyLjUtMi41LTI4LjgtMTEuOS01LjItNy44LTE0LTEyLjUtMjMuMy0xMi41bC0yIDBjLTkuNCAwLTE4LjEgNC43LTIzLjMgMTIuNS02LjMgOS41LTE3LjcgMTQuMi0yOC44IDExLjktOS4yLTEuOC0xOC43IDEtMjUuMyA3LjdsLTEuNCAxLjRjLTYuNiA2LjYtOS41IDE2LjEtNy43IDI1LjMgMi4yIDExLjEtMi41IDIyLjUtMTEuOSAyOC44LTcuOCA1LjItMTIuNSAxNC0xMi41IDIzLjNsMCAyYzAgOS40IDQuNyAxOC4xIDEyLjUgMjMuM3pNNDggNDQ4YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptNDE2IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxhc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtYXJlYSIsaWNvbjpbNTEyLDUxMixbImFyZWEtY2hhcnQiXSwiZjFmZSIsIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMzNmMwIDguOCA3LjIgMTYgMTYgMTZsNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMODAgNDgwYy00NC4yIDAtODAtMzUuOC04MC04MEwwIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0yNDAgOTZjNi43IDAgMTMuMSAyLjggMTcuNyA3LjhMMzI4LjggMTgxLjMgMzc1IDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw2NCA2NGM0LjUgNC41IDcgMTAuNiA3IDE3bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC0zMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xMTJjMC02IDIuMy0xMS44IDYuMy0xNi4ybDg4LTk2YzQuNS01IDExLTcuOCAxNy43LTcuOHoiXX0sdzd0PWFzZSxNN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVwaWFoLXNpZ24iLGljb246WzUxMiw1MTIsW10sImUyM2QiLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw4MCAwYzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0IDAgNTQuMy0zMCAxMDEuNS03NC40IDEyNi4xbDQxIDEzNi43YzUuMSAxNi45LTQuNSAzNC44LTIxLjUgMzkuOHMtMzQuOC00LjUtMzkuOC0yMS41TDEyMC4xIDMxOS44Yy0yLjcgLjEtNS40IC4yLTguMSAuMmwtNDggMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI1Nmw0OCAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwbC00OCAwIDAgMTYwem0yNTYtMzJsODAgMGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMlM0NjEuOSA0NDggNDAwIDQ0OGwtNDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem04MCAxNjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLTQ4IDAgMCA5NiA0OCAweiJdfSxrN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGV4dC13aWR0aCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNSIsIk00MCAwQzE3LjkgMCAwIDE3LjkgMCA0MEwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxMjggMCAwIDE2MC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMTYwIDEyOCAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTU2YzAtMjIuMS0xNy45LTQwLTQwLTQwTDQwIDB6bTc4LjYgNDA2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDIyOS41IDAtOS40IDkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDkuNCA5LjQtMjI5LjUgMCA5LjQtOS40eiJdfSxTN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2F0ZWxsaXRlIixpY29uOls1MTIsNTEyLFsxMjg3NTJdLCJmN2JmIiwiTTE5OSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDg5LjQgODkuNCA1NS01NWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0OCA0OGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNTUgNTUgODkuNCA4OS40YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC05NiA5NmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTg5LjQtODkuNC0xNS41IDE1LjVjMTEuNCAyNC42IDE3LjggNTIgMTcuOCA4MC45IDAgMzEuNy03LjcgNjEuNS0yMS4yIDg3LjgtNC43IDktMTYuNyAxMC4zLTIzLjggMy4xbC05Ni4zLTk2LjMtNjAgNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDYwLTYwLTk2LjMtOTYuM2MtNy4yLTcuMi01LjktMTkuMiAzLjEtMjMuOCAyNi4zLTEzLjYgNTYuMi0yMS4yIDg3LjgtMjEuMiAyOC45IDAgNTYuMyA2LjQgODAuOSAxNy44TDE5Mi40IDIyNi4zIDEwMyAxMzdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDE5OSA3em0xNyA1MC45bC02Mi4xIDYyLjEgNzIuNCA3Mi40IDYyLjEtNjIuMS03Mi40LTcyLjR6TTM5MiAzNTguMWw2Mi4xLTYyLjEtNzIuNC03Mi40LTYyLjEgNjIuMSA3Mi40IDcyLjR6Il19LG5zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLW1pbnVzIixpY29uOls1MTIsNTEyLFsic2VhcmNoLW1pbnVzIl0sImYwMTAiLCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NkMyOTYuMyA0MDEuMSAyNTMuOSA0MTYgMjA4IDQxNiA5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMCA0MTYgOTMuMSA0MTYgMjA4ek0xMzYgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sejd0PW5zZSxDN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJlNTMzIiwiTTI1NiAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em05NiAzMTJjMCAyNS0xMi43IDQ3LTMyIDU5LjlsMCA5Mi4xYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTkyLjFDMTcyLjcgMzU5IDE2MCAzMzcgMTYwIDMxMmwwLTQwYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCA0MHpNOTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6bTE2IDI0MGwwIDMyYzAgMzIuNSAxMi4xIDYyLjEgMzIgODQuN2wwIDc1LjNjMCAxLjIgMCAyLjUgLjEgMy43LTguNSA3LjYtMTkuNyAxMi4zLTMyLjEgMTIuM2wtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC01Ni42QzEyLjkgMzY0LjQgMCAzNDMuNyAwIDMyMGwwLTMyYzAtNTMgNDMtOTYgOTYtOTYgMTIuNyAwIDI0LjggMi41IDM1LjkgNi45LTEyLjYgMjEuNC0xOS45IDQ2LjQtMTkuOSA3My4xek0zNjggNDY0bDAtNzUuM2MxOS45LTIyLjUgMzItNTIuMiAzMi04NC43bDAtMzJjMC0yNi43LTcuMy01MS42LTE5LjktNzMuMSAxMS4xLTQuNSAyMy4yLTYuOSAzNS45LTYuOSA1MyAwIDk2IDQzIDk2IDk2bDAgMzJjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgNTYuNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMTIuMyAwLTIzLjYtNC42LTMyLjEtMTIuMyAwLTEuMiAuMS0yLjUgLjEtMy43ek00MTYgMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6Il19LFQ3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtYmluYXJ5IixpY29uOls0NDgsNTEyLFtdLCJlNjliIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0xNDQgNGMtMjQuMyAwLTQ0IDE5LjctNDQgNDRsMCA0OGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwzMiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtNDhjMC0yNC4zLTE5LjctNDQtNDQtNDRsLTMyIDB6bS00IDQ0YzAtMi4yIDEuOC00IDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDh6bTE0MC00NGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwek0xMzIgMjk2YzAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA3Ni40YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtOTZjMC0xMS05LTIwLTIwLTIwbC0xNiAwYy0xMSAwLTIwIDktMjAgMjB6bTk2IDI0bDAgNDhjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMzIgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTQ4YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0zMiAwYy0yNC4zIDAtNDQgMTkuNy00NCA0NHptNDQtNGwzMiAwYzIuMiAwIDQgMS44IDQgNGwwIDQ4YzAgMi4yLTEuOCA0LTQgNGwtMzIgMGMtMi4yIDAtNC0xLjgtNC00bDAtNDhjMC0yLjIgMS44LTQgNC00eiJdfSxvc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFza3MtdGhlYXRlciIsaWNvbjpbNTc2LDUxMixbMTI3OTE3LCJ0aGVhdGVyLW1hc2tzIl0sImY2MzAiLCJNLTUgMTE4TDIzLjUgMjc5LjdjMTQgNzkuNSA3Ni4zIDE0MS44IDE1NS44IDE1NS44bDEyLjcgMi4yYy0xNi41LTI4LjYtMjcuMS02MC43LTMwLjYtOTQuNWwtMjQuMSA0LjNjLTkuNyAxLjctMTguOC01LjgtMTYuOS0xNS41IDQuOC0yNC43IDE5LjEtNDYuNiAzOS43LTYwLjlsMC03NC42Yy0xLjQgLjgtMyAxLjMtNC43IDEuNmwtNjMgMTEuMWMtOC43IDEuNS0xNy4zLTQuNC0xNS45LTEzLjEgMy4xLTE5LjYgMTguNC0zNiAzOS4xLTM5LjcgMTcuMi0zIDMzLjkgMy41IDQ0LjYgMTUuOGwwLTIyLjdjMC0yMi41IDYuOS01Mi40IDMyLjMtNzMuNCAyNi0yMS41IDY3LjctNDMuOSAxMjQuOS01NC4yLTMwLjUtMTYuMy04Ni4zLTMyLTE2My44LTE4LjQtODAuMyAxNC4yLTEyOCA1MC4xLTE1MC4xIDc2LjEtOSAxMC41LTEwLjggMjQuOS04LjQgMzguNXpNMjA4IDEzOC43bDAgMTc0LjhjMCA4MC43IDUwLjUgMTUyLjkgMTI2LjQgMTgwLjRMMzYyLjEgNTA0YzE0LjEgNS4xIDI5LjYgNS4xIDQzLjcgMEw0MzMuNiA0OTRDNTA5LjUgNDY2LjQgNTYwIDM5NC4zIDU2MCAzMTMuNWwwLTE3NC44YzAtNi45LTIuMS0xMy44LTctMTguNi0yMi42LTIyLjUtNzguMi01Ni0xNjktNTZzLTE0Ni40IDMzLjYtMTY5IDU2Yy00LjkgNC45LTcgMTEuNy03IDE4LjZ6bTY2LjEgMTg3LjFjLTEuNC03IDctMTEgMTIuNy02LjYgMjYuOSAyMC42IDYwLjYgMzIuOSA5Ny4yIDMyLjlzNzAuMi0xMi4zIDk3LjItMzIuOWM1LjctNC40IDE0LjEtLjQgMTIuNyA2LjYtMTAuMSA1MS40LTU1LjUgOTAuMy0xMDkuOSA5MC4zcy05OS44LTM4LjgtMTA5LjktOTAuM3ptLjUtMTAxLjVDMjgxLjIgMjA1LjUgMjk5IDE5MiAzMjAgMTkyczM4LjkgMTMuNSA0NS40IDMyLjNjMi45IDguNC00LjUgMTUuNy0xMy40IDE1LjdsLTY0IDBjLTguOCAwLTE2LjMtNy40LTEzLjQtMTUuN3pNNDgwIDI0MGwtNjQgMGMtOC44IDAtMTYuMy03LjQtMTMuNC0xNS43IDYuNS0xOC44IDI0LjQtMzIuMyA0NS40LTMyLjNzMzguOSAxMy41IDQ1LjQgMzIuM2MyLjkgOC40LTQuNSAxNS43LTEzLjQgMTUuN3oiXX0sXzd0PW9zZSxMN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FydC1wbHVzIixpY29uOls2NDAsNTEyLFtdLCJmMjE3IiwiTTAgOEMwLTUuMyAxMC43LTE2IDI0LTE2bDQ1LjMgMGMyNy4xIDAgNTAuMyAxOS40IDU1LjEgNDZsLjQgMiA0MTIuNyAwYzIwIDAgMzUuMSAxOC4yIDMxLjQgMzcuOUw1MzcuOCAyMzUuOGMtNS43IDMwLjMtMzIuMSA1Mi4yLTYyLjkgNTIuMmwtMzAzLjYgMCA1LjEgMjguM2MyLjEgMTEuNCAxMiAxOS43IDIzLjYgMTkuN0w0NTYgMzM2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNTUuOSAwYy0zNC44IDAtNjQuNi0yNC45LTcwLjgtNTkuMUw3Ny4yIDM4LjZjLS43LTMuOC00LTYuNi03LjktNi42TDI0IDMyQzEwLjcgMzIgMCAyMS4zIDAgOHpNMTYwIDQ2NGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0yMjQgMGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0zMzYgNzguNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAzMy42LTMzLjYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMy42IDAgMCAzMy42YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMy42IDMzLjYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzMuNiAwIDAtMzMuNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sTGc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHMtYXNsLWludGVycHJldGluZyIsaWNvbjpbNjQwLDUxMixbImFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nIiwiYXNsLWludGVycHJldGluZyIsImhhbmRzLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nIl0sImYyYTMiLCJNMTU2LjYgNDYuM2M3LjktMTUuOCAxLjUtMzUtMTQuMy00Mi45cy0zNS0xLjUtNDIuOSAxNC4zTDEzLjUgMTg5LjRDNC42IDIwNy4yIDAgMjI2LjggMCAyNDYuN0wwIDI1NmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGw4MCAwIDAtLjNjMzUuMi0yLjcgNjUuNC0yMi44IDgyLjEtNTEuNyA4LjgtMTUuMyAzLjYtMzQuOS0xMS43LTQzLjdzLTM0LjktMy42LTQzLjcgMTEuN2MtNyAxMi0xOS45IDIwLTM0LjcgMjAtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGMxNC44IDAgMjcuNyA4IDM0LjcgMjAgOC44IDE1LjMgMjguNCAyMC41IDQzLjcgMTEuN3MyMC41LTI4LjQgMTEuNy00My43Yy0xMi44LTIyLjEtMzMuNi0zOS4xLTU4LjQtNDcuMWw4MC44LTIyYzE3LTQuNiAyNy4xLTIyLjIgMjIuNS0zOS4zcy0yMi4yLTI3LjEtMzkuMy0yMi41bC0xMDAuNyAyNy41IDgxLjYtNjhjMTMuNi0xMS4zIDE1LjQtMzEuNSA0LjEtNDUuMVMyNDkuMS0zLjkgMjM1LjUgNy40bC0xMDEuOSA4NC45IDIzLTQ2ek00ODMuNCA0NjUuN2MtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDg1LjktMTcxLjdjOC45LTE3LjggMTMuNS0zNy40IDEzLjUtNTcuMmwwLTkuM2MwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGwtODAgMCAwIC4zYy0zNS4yIDIuNy02NS40IDIyLjgtODIuMSA1MS43LTguOSAxNS4zLTMuNiAzNC45IDExLjcgNDMuN3MzNC45IDMuNiA0My43LTExLjdjNy0xMiAxOS45LTIwIDM0LjctMjAgMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDBjLTE0LjggMC0yNy43LTgtMzQuNy0yMC04LjktMTUuMy0yOC40LTIwLjUtNDMuNy0xMS43cy0yMC41IDI4LjQtMTEuNyA0My43YzEyLjggMjIuMSAzMy42IDM5LjEgNTguNCA0Ny4xbC04MC44IDIyYy0xNy4xIDQuNi0yNy4xIDIyLjItMjIuNSAzOS4zczIyLjIgMjcuMSAzOS4zIDIyLjVsMTAwLjctMjcuNS04MS42IDY4Yy0xMy42IDExLjMtMTUuNCAzMS41LTQuMSA0NS4xczMxLjUgMTUuNCA0NS4xIDQuMWwxMDEuOS04NC45LTIzIDQ2eiJdfSxBN3Q9TGcsRDd0PUxnLEU3dD1MZywkN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMtcm93LXVubG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY5MSIsIk0yNTYgMjI0bDAgMTkyIDY0IDAgMC0xOTItNjQgMHptMjU2LTc5Yy00Ni43IDUuOC04NS42IDM2LjgtMTAyLjcgNzlsLTI1LjMgMCAwIDkwLjhjLTEwLjEgMTUuMi0xNiAzMy40LTE2IDUzLjFsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDEyOCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDl6TTEyOCAyMjRsMCAxOTIgNjQgMCAwLTE5Mi02NCAwem00MzIgNDhjLS4xLTE3LjYtMTQuNC0zMS45LTMyLTMxLjktMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0Ny45IDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA0NC4yIDAgNzkuOSAzNS44IDgwIDc5LjlsLTQ4IDB6Il19LEk3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2NrZXQiLGljb246WzUxMiw1MTIsW10sImYxMzUiLCJNMTI4IDMyMEwyNC41IDMyMGMtMjQuOSAwLTQwLjItMjcuMS0yNy40LTQ4LjVMNTAgMTgzLjNDNTguNyAxNjguOCA3NC4zIDE2MCA5MS4yIDE2MGw5NSAwYzc2LjEtMTI4LjkgMTg5LjYtMTM1LjQgMjY1LjUtMTI0LjMgMTIuOCAxLjkgMjIuOCAxMS45IDI0LjYgMjQuNiAxMS4xIDc1LjkgNC42IDE4OS40LTEyNC4zIDI2NS41bDAgOTVjMCAxNi45LTguOCAzMi41LTIzLjMgNDEuMmwtODguMiA1Mi45Yy0yMS4zIDEyLjgtNDguNS0yLjYtNDguNS0yNy40TDE5MiAzODRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLS4xIDB6TTQwMCAxNjBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sUDd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNocmltcCIsaWNvbjpbNTEyLDUxMixbMTI5NDI0XSwiZTQ0OCIsIk03MiAzMkMzMi4yIDMyIDAgNjQuMiAwIDEwNCAwIDE0MS45IDI5LjMgMTcyLjkgNjYuNCAxNzUuOCA3Ny42IDI1Ny4yIDE0Ny40IDMyMCAyMzIgMzIwbDU2IDAgMC0xOTItMjE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0UzU4LjcgODAgNzIgODBsMzg0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNzIgMzJ6TTIyNCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNzIgMCAwLTcyLjItNjQuMS0yMi40Yy0xMi41LTQuNC0yNi4yIDIuMi0zMC42IDE0LjdzMi4yIDI2LjIgMTQuNyAzMC42bDQuNSAxLjZDMjMzIDQzMy45IDIyNCA0NDMuOSAyMjQgNDU2em0xMjggMjMuM2MzNi40LTMuMyA2OS41LTE3LjYgOTYuMS0zOS42bC04Ni41LTM0LjZjLTMgMS44LTYuMiAzLjItOS42IDQuM2wwIDY5Ljl6TTQ3Mi42IDQxNWMyNC42LTMwLjMgMzkuNC02OC45IDM5LjQtMTExIDAtMTIuMy0xLjMtMjQuMy0zLjctMzUuOUwzODIuOCAzNTUuMWMuOCAzLjQgMS4yIDcgMS4yIDEwLjYgMCA0LjYtLjcgOS0xLjkgMTMuMUw0NzIuNiA0MTV6TTMzNiAxMjhsLTE2IDAgMCAxOTIgMTguMyAwYzkuOSAwIDE5LjEgMy4yIDI2LjYgOC41bDEzMy41LTkyLjRDNDcxLjggMTcyLjYgNDA5LjEgMTI4IDMzNiAxMjh6TTE2OCAxOTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sc3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbmdlLXNpZ24iLGljb246WzM4NCw1MTIsWzgzNzYsInRlbmdlIl0sImY3ZDciLCJNMCA1NkMwIDQyLjcgMTAuNyAzMiAyNCAzMmwzMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEwyNCA4MEMxMC43IDgwIDAgNjkuMyAwIDU2ek0wIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTI4IDAgMCAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yNTYtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSxON3Q9c3NlLGxzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LW1lZGljYWwiLGljb246WzUxMiw1MTIsWyJjbGluaWMtbWVkaWNhbCJdLCJmN2YyIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yMjQgMjQ4bDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxGN3Q9bHNlLE83dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1zbGFzaCIsaWNvbjpbNjQwLDUxMixbXSwiZTA3MyIsIk03My0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMyOS43LS4zIDM5IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMjEuOCAyMjRjNTYuNi0xIDEwMi4yLTQ3LjIgMTAyLjItMTA0IDAtNTcuNC00Ni42LTEwNC0xMDQtMTA0LTU2LjggMC0xMDMgNDUuNi0xMDQgMTAyLjJMNzMtMjQuOXpNNTEyIDI4OGMtMTcuMiAwLTMzLjcgMy40LTQ4LjcgOS42bDE3MCAxNzBjNC4yLTUuNCA2LjctMTIuMiA2LjctMTkuNmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4ek01OS45IDk3LjdjLTIxLjUgMTIuNS0zNS45IDM1LjctMzUuOSA2Mi4zIDAgMzkuOCAzMi4yIDcyIDcyIDcyIDI2LjYgMCA0OS44LTE0LjQgNjIuMy0zNS45TDU5LjkgOTcuN3pNMjUwLjIgMjg4QzE5Ni44IDMxMy45IDE2MCAzNjguNyAxNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjUwLjIgMC0xOTItMTkyek0xMjggMjg4QzU3LjMgMjg4IDAgMzQ1LjMgMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjR6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAweiJdfSxSN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFwZXItcGxhbmUiLGljb246WzU3Niw1MTIsWzYxOTEzXSwiZjFkOCIsIk01MzYuNC0yNi4zYzkuOC0zLjUgMjAuNi0xIDI4IDYuM3M5LjggMTguMiA2LjMgMjhsLTE3OCA0OTYuOWMtNSAxMy45LTE4LjEgMjMuMS0zMi44IDIzLjEtMTQuMiAwLTI3LTguNi0zMi4zLTIxLjdsLTY0LjItMTU4Yy00LjUtMTEtMi41LTIzLjYgNS4yLTMyLjZsOTQuNS0xMTIuNGM1LjEtNi4xIDQuNy0xNS0uOS0yMC42cy0xNC42LTYtMjAuNi0uOUwyMjkuMiAyNzYuMWMtOS4xIDcuNi0yMS42IDkuNi0zMi42IDUuMkwzOC4xIDIxNi44Yy0xMy4xLTUuMy0yMS43LTE4LjEtMjEuNy0zMi4zIDAtMTQuNyA5LjItMjcuOCAyMy4xLTMyLjhsNDk2LjktMTc4eiJdfSxjc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1hdGxhcyIsaWNvbjpbNDQ4LDUxMixbImF0bGFzIl0sImY1NTgiLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTMxMC42IDIwOEwyNzkgMjA4Yy0xLjQgMjMuMS02IDQ0LjItMTIuNiA2MS4yIDIyLjctMTIuNSAzOS40LTM0LjggNDQuMi02MS4yem0tMTczLjEgMGM0LjggMjYuNCAyMS41IDQ4LjcgNDQuMiA2MS4yLTYuNy0xNy0xMS4yLTM4LTEyLjYtNjEuMmwtMzEuNiAwem03Ni40IDU1YzQuNSA5LjYgOC4yIDEzLjggMTAuMiAxNS41IDItMS43IDUuNy01LjggMTAuMi0xNS41IDYuMi0xMy40IDExLjEtMzIuNSAxMi43LTU1bC00NS44IDBjMS42IDIyLjUgNi41IDQxLjYgMTIuNyA1NXptLTEyLjctODdsNDUuOCAwYy0xLjYtMjIuNS02LjUtNDEuNi0xMi43LTU1LTQuNS05LjYtOC4yLTEzLjgtMTAuMi0xNS41LTIgMS43LTUuNyA1LjgtMTAuMiAxNS41LTYuMiAxMy40LTExLjEgMzIuNS0xMi43IDU1em0xMDkuNSAwYy00LjgtMjYuNC0yMS41LTQ4LjctNDQuMi02MS4yIDYuNyAxNyAxMS4yIDM4IDEyLjYgNjEuMmwzMS42IDB6TTE2OSAxNzZjMS40LTIzLjEgNi00NC4yIDEyLjYtNjEuMi0yMi43IDEyLjUtMzkuNCAzNC44LTQ0LjIgNjEuMmwzMS42IDB6TTk2IDE5MmExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAweiJdfSxCN3Q9Y3NlLEg3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjZSIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyMCAwLTYuNS0uM0MyNS4yIDQ3Ni40IDAgNDQ5LjEgMCA0MTZMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNNjQgMzIwbDAgOTYgMTI4IDAgMC05Ni0xMjggMHptMTkyIDBsMCA5NiAxMjggMCAwLTk2LTEyOCAwek02NCAyNTZsMTI4IDAgMC05Ni0xMjggMCAwIDk2em0xOTIgMGwxMjggMCAwLTk2LTEyOCAwIDAgOTZ6Il19LHE3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydCIsaWNvbjpbNTEyLDUxMixbMTI4MTUzLDEyODE1NCwxMjgxNTUsMTI4MTU2LDEyODQyMCwxMjkyOTMsMTI5Mjk0LDEyOTUwNSw5ODI5LDEwMDg0LDYxNTc4XSwiZjAwNCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTEyLjItMTM5LjkgMjQyLjUtMjEyLjkgMjk4LjItMTIuNCA5LjQtMjcuNiAxNC4xLTQzLjEgMTQuMXMtMzAuOC00LjYtNDMuMS0xNC4xQzEzOS45IDQxMC4yIDAgMjc5LjkgMCAxNjcuN2wwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXoiXX0sZHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1jaGV2cm9uLXVwIixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtdXAiXSwiZjEzOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzc3IDI3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC04Ny04Ny04NyA4N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwyMzkgMTY3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDM3NyAyNzF6Il19LGo3dD1kc2UsdXNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktaGFsZiIsaWNvbjpbNjQwLDUxMixbImJhdHRlcnktMyJdLCJmMjQyIiwiTTUyOCAxMjhjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjI0YzAgOC44LTcuMiAxNi0xNiAxNmwtNDE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTIyNGMwLTguOCA3LjItMTYgMTYtMTZsNDE2IDB6TTExMiA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAyMjRjMCA0NC4yIDM1LjggODAgODAgODBsNDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybDAtNDhjMC00NC4yLTM1LjgtODAtODAtODBMMTEyIDY0em01NiAxMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sVjd0PXVzZSxvRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb250LWF3ZXNvbWUiLGljb246WzUxMiw1MTIsWzYyNTAxLDYyNjk0LCJmb250LWF3ZXNvbWUtZmxhZyIsImZvbnQtYXdlc29tZS1sb2dvLWZ1bGwiXSwiZjJiNCIsIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyIDExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgNDE5IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40IDAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcyIDQ5My43IDEzMy4xYzEuNS0zLjQgMi4zLTcgMi4zLTEwLjcgMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnoiXX0sVTd0PW9ELFc3dD1vRCxHN3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZGN1ZmZzIixpY29uOls1NzYsNTEyLFtdLCJlNGY4IiwiTTMyMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJ6TTE5MiA2NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTE1MiA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNmMwIDEgLjEgMS45IC4yIDIuOS03NC43IDI2LjMtMTI4LjIgOTcuNS0xMjguMiAxODEuMSAwIDEwNiA4NiAxOTIgMTkyIDE5MnMxOTItODYgMTkyLTE5MmMwLTgzLjctNTMuNS0xNTQuOC0xMjguMi0xODEuMSAuMS0uOSAuMi0xLjkgLjItMi45bDAtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTgwIDB6TTY0IDMyMGExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem00NDggMGMwIDY2LjktNTEuMyAxMjEuOC0xMTYuNiAxMjcuNS0xNC4zIDIyLjgtMzIuNCA0My4xLTUzLjQgNTkuOSAxMy41IDMgMjcuNiA0LjYgNDIgNC42IDEwNiAwIDE5Mi04NiAxOTItMTkyIDAtODMuNy01My41LTE1NC44LTEyOC4yLTE4MS4xIC4xLS45IC4yLTEuOSAuMi0yLjlsMC0xNmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMTIuMyAwLTIyLjQgOS4yLTIzLjggMjEuMSAzMC4zIDE5LjIgNTYuMSA0NSA3NS4yIDc1LjQgNjUuNCA1LjggMTE2LjYgNjAuNiAxMTYuNiAxMjcuNXpNMzg0IDY0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sWTd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhdC1jb3dib3ktc2lkZSIsaWNvbjpbNjQwLDUxMixbXSwiZjhjMSIsIk02NDAgMzg4LjNjMCAxNi45LTcuMSAzMi4yLTE4LjQgNDMuMWwtMzUtMjMuMy0yOTIuNy0xOTUuMWMtMzYuMS0yNC4xLTc4LjYtMzYuOS0xMjItMzYuOWwtMy45IDBjLTIuNyAwLTUuNCAwLTggLjFsMjIuMi0xMDBjNS43LTI1LjggMjguNi00NC4xIDU1LTQ0LjEgMTIuMiAwIDI0LjEgNCAzMy44IDExLjNsNC43IDMuNWMyNi4zIDE5LjcgNjIuNCAxOS43IDg4LjYgMGw0LjctMy41YzkuOC03LjMgMjEuNi0xMS4zIDMzLjgtMTEuMyAyNi40IDAgNDkuMyAxOC4zIDU1IDQ0LjFsMzMgMTQ4LjVDNTc0LjUgMjMyLjMgNjQwIDMwMi42IDY0MCAzODguM3pNMTcxLjkgMjI0YzMzLjkgMCA2Ny4xIDEwIDk1LjQgMjguOUw1NjAgNDQ4IDU2IDQ0OGMtMzAuOSAwLTU2LTI1LjEtNTYtNTYgMC05Mi44IDc1LjItMTY4IDE2OC0xNjhsMy45IDB6Il19LFo3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmR1c3RyeSIsaWNvbjpbNTEyLDUxMixbXSwiZjI3NSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjc5LjhjMC0xOC4yLTE5LjQtMjkuNy0zNS40LTIxLjFsLTE1Ni42IDg0LjMgMC02My4yYzAtMTguMi0xOS40LTI5LjctMzUuNC0yMS4xTDEyOCAyMTUuNCAxMjggNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMzJ6Il19LFg3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5lcy1sZWFuaW5nIixpY29uOlszODQsNTEyLFtdLCJlNTFlIiwiTTE5MC40IDc0LjFjNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJsLTEyOCAzODRjLTUuNiAxNi44IDMuNSAzNC45IDIwLjIgNDAuNXMzNC45LTMuNSA0MC41LTIwLjJsMTI4LTM4NHptNzAuOS00MS43Yy0xNy40LTIuOS0zMy45IDguOS0zNi44IDI2LjNsLTY0IDM4NGMtMi45IDE3LjQgOC45IDMzLjkgMjYuMyAzNi44czMzLjktOC45IDM2LjgtMjYuM2w2NC0zODRjMi45LTE3LjQtOC45LTMzLjktMjYuMy0zNi44ek0zNTIgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LFE3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXNzcG9ydCIsaWNvbjpbMzg0LDUxMixbXSwiZjVhYiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6TTk2IDQwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0yNzguNiAyMDhjLTQuOCAyNi40LTIxLjUgNDguNy00NC4yIDYxLjIgNi43LTE3IDExLjItMzggMTIuNi02MS4ybDMxLjYgMHptLTE3My4xIDBsMzEuNiAwYzEuNCAyMy4xIDYgNDQuMiAxMi42IDYxLjItMjIuNy0xMi41LTM5LjQtMzQuOC00NC4yLTYxLjJ6bTc2LjQgNTVjLTYuMi0xMy40LTExLjEtMzIuNS0xMi43LTU1bDQ1LjggMGMtMS42IDIyLjUtNi41IDQxLjYtMTIuNyA1NS00LjUgOS42LTguMiAxMy44LTEwLjIgMTUuNS0yLTEuNy01LjctNS44LTEwLjItMTUuNXptMC0xNDJjNC41LTkuNiA4LjItMTMuOCAxMC4yLTE1LjUgMiAxLjcgNS43IDUuOCAxMC4yIDE1LjUgNi4yIDEzLjQgMTEuMSAzMi41IDEyLjcgNTVsLTQ1LjggMGMxLjYtMjIuNSA2LjUtNDEuNiAxMi43LTU1em05Ni43IDU1TDI0NyAxNzZjLTEuNC0yMy4xLTYtNDQuMi0xMi42LTYxLjIgMjIuNyAxMi41IDM5LjQgMzQuOCA0NC4yIDYxLjJ6TTEzNyAxNzZsLTMxLjYgMGM0LjgtMjYuNCAyMS41LTQ4LjcgNDQuMi02MS4yLTYuNyAxNy0xMS4yIDM4LTEyLjYgNjEuMnptMTgzIDE2YTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6Il19LEo3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmZpbml0eSIsaWNvbjpbNjQwLDUxMixbODczNCw5ODU0XSwiZjUzNCIsIk0wIDI1NmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MCA1MC40IDAgOTcuOCAyMy43IDEyOCA2NGwzMiA0Mi43IDMyLTQyLjdjMzAuMi00MC4zIDc3LjYtNjQgMTI4LTY0IDg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwUzU2OC40IDQxNiA0ODAgNDE2Yy01MC40IDAtOTcuOC0yMy43LTEyOC02NGwtMzItNDIuNy0zMiA0Mi43Yy0zMC4yIDQwLjMtNzcuNiA2NC0xMjggNjQtODguNCAwLTE2MC03MS42LTE2MC0xNjB6bTI4MCAwbC00My4yLTU3LjZjLTE4LjEtMjQuMi00Ni42LTM4LjQtNzYuOC0zOC40LTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjMzAuMiAwIDU4LjctMTQuMiA3Ni44LTM4LjRMMjgwIDI1NnptODAgMGw0My4yIDU3LjZjMTguMSAyNC4yIDQ2LjYgMzguNCA3Ni44IDM4LjQgNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTMwLjIgMC01OC43IDE0LjItNzYuOCAzOC40TDM2MCAyNTZ6Il19LEs3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9uZSIsaWNvbjpbNTEyLDUxMixbXSwiZjI0ZCIsIk0yODggNDQ4bC0yMjQgMCAwLTIyNCA0OCAwIDAtNjQtNDggMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjI0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC00OC02NCAwIDAgNDh6bS02NC05NmwyMjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NEwyMjQgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyMjRjMCAzNS4zIDI4LjcgNjQgNjQgNjR6Il19LGVtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb3J3YXJkIixpY29uOls1NzYsNTEyLFs5MTkzXSwiZjA0ZSIsIk0zNzEuNyA0My4xQzM2MC4xIDMyIDM0MyAyOC45IDMyOC4zIDM1LjJTMzA0IDU2IDMwNCA3MmwwIDEzNi4zLTE3Mi4zLTE2NS4xQzEyMC4xIDMyIDEwMyAyOC45IDg4LjMgMzUuMlM2NCA1NiA2NCA3MmwwIDM2OGMwIDE2IDkuNiAzMC41IDI0LjMgMzYuOHMzMS44IDMuMiA0My40LTcuOUwzMDQgMzAzLjcgMzA0IDQ0MGMwIDE2IDkuNiAzMC41IDI0LjMgMzYuOHMzMS44IDMuMiA0My40LTcuOWwxOTItMTg0YzcuOS03LjUgMTIuMy0xOCAxMi4zLTI4LjlzLTQuNS0yMS4zLTEyLjMtMjguOWwtMTkyLTE4NHoiXX0sdG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im0iLGljb246WzQ0OCw1MTIsWzEwOV0sIjRkIiwiTTIyLjcgMzMuNGMxMy41LTQuMSAyOC4xIDEuMSAzNS45IDEyLjlMMjI0IDI5NC4zIDM4OS40IDQ2LjNjNy44LTExLjcgMjIuNC0xNyAzNS45LTEyLjlTNDQ4IDQ5LjkgNDQ4IDY0bDAgMzg0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjc4LjMtMTMzLjQgMjAwLjFjLTUuOSA4LjktMTUuOSAxNC4yLTI2LjYgMTQuMnMtMjAuNy01LjMtMjYuNi0xNC4yTDY0IDE2OS43IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA0OS45IDkuMiAzNy41IDIyLjcgMzMuNHoiXX0scm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtc3Bpa2VzIixpY29uOls2NDAsNTEyLFtdLCJlNTY4IiwiTTY0IDExNi44YzAtMTUuOCAyMC41LTIyIDI5LjMtOC45bDk4LjcgMTQ4IDAtMTM5LjJjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlsOTguNyAxNDggMC0xMzkuMmMwLTE1LjggMjAuNS0yMiAyOS4zLTguOWw5OC43IDE0OCAwLTEzOS4yYzAtMTUuOCAyMC41LTIyIDI5LjMtOC45TDYwNi44IDMwMi4yYzE0LjIgMjEuMy0xLjEgNDkuOC0yNi42IDQ5LjhMNjQgMzUyIDY0IDExNi44ek0zMiAzODRsNTc2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxpbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bnRhaW4iLGljb246WzUxMiw1MTIsWzEyNzk1Nl0sImY2ZmMiLCJNMjU2LjUgMGMxNC43IDAgMjguMiA4LjEgMzUuMiAyMWwyMTYgNDAwYzYuNyAxMi40IDYuNCAyNy40LS44IDM5LjUtNy4yIDEyLjEtMjAuMyAxOS41LTM0LjMgMTkuNWwtNDMyIDBjLTE0LjEgMC0yNy4xLTcuNC0zNC4zLTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMCAyLjktNC42QzIzMS43IDYuMiAyNDMuNiAwIDI1Ni41IDB6TTE3MC40IDI0OS45bDI2LjggMjYuOGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw0My4zLTQzLjNjNi02IDE0LjEtOS40IDIyLjYtOS40bDQyLjggMC03Mi4xLTEzMy41LTg2LjEgMTU5LjR6Il19LGFtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcyIsaWNvbjpbNTEyLDUxMixbXSwiZjQzOSIsIk0xNjggNTZsMCA0MC03OC4xIDBjLTE0LjMgMC0yNS45IDExLjYtMjUuOSAyNS45IDAgNCAuOSA4IDIuNyAxMS42bDMzLjQgNjYuOGMtMTEuNCAxLjgtMjAuMiAxMS43LTIwLjIgMjMuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNGw1LjYgMC0xMy42IDEzNi01Ni4yIDcwLjNjLTUgNi4zLTcuOCAxNC4xLTcuOCAyMi4yIDAgMTkuNiAxNS45IDM1LjUgMzUuNSAzNS41bDI0OC45IDBjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjUgMC04LjEtMi43LTE1LjktNy44LTIyLjJMMjg4IDM4NCAyNzQuNCAyNDggMjgwIDI0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNCAwLTExLjktOC43LTIxLjktMjAuMi0yMy43bDMzLjQtNjYuOGMxLjgtMy42IDIuNy03LjYgMi43LTExLjYgMC0xNC4zLTExLjYtMjUuOS0yNS45LTI1LjlsLTc4LjEgMCAwLTQwIDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMjQ1LjMgOCAyMzIgOGwtMTYgMCAwLTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0UzE2OC0yMS4zIDE2OC04bDAgMTYtMTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNiAwek0zMjUuOCAyNzkuNmw4LjUgODUuNSA0Ny40IDU5LjIgNC4yIDUuN2M5LjIgMTMuNyAxNC4xIDI5LjkgMTQuMSA0Ni41IDAgMTIuNy0yLjggMjQuOC03LjkgMzUuNWw4My4xIDBjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjggMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRsLTI1LjgtMzguNyAwLTY0IDEzLjMtMTMuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDUxMiAxOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNi0zMiAwIDAtMTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMmMwIDIyLjQtMTAuMiA0Mi40LTI2LjIgNTUuNnoiXX0sQWc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtdGhyZWUtcXVhcnRlcnMiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS0zIiwidGhlcm1vbWV0ZXItMyIsInRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzIl0sImYyYzgiLCJNMTYwIDBDMTA3IDAgNjQgNDMgNjQgOTZsMCAxNjQuN0MzNC41IDI4NyAxNiAzMjUuNCAxNiAzNjggMTYgNDQ3LjUgODAuNSA1MTIgMTYwIDUxMnMxNDQtNjQuNSAxNDQtMTQ0YzAtNDIuNi0xOC41LTgxLTQ4LTEwNy4zTDI1NiA5NmMwLTUzLTQzLTk2LTk2LTk2em02NCAzNjhjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNi45IDE2LjUtNDkuOSA0MC01OS4zTDEzNiAxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE1Ni43YzIzLjUgOS41IDQwIDMyLjUgNDAgNTkuM3oiXX0sbm10PUFnLG9tdD1BZyxzbXQ9QWcsbG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImIiLGljb246WzMyMCw1MTIsWzk4XSwiNDIiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNjAgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTQ2LjUtMjQuOC04Ny4zLTYyLTEwOS43IDE4LjctMjIuMyAzMC01MSAzMC04Mi4zIDAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4TDMyIDMyek0xNjAgMjI0bC05NiAwIDAtMTI4IDk2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTY0IDI4OGwxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTI4IDAgMC0xMjh6Il19LGNtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQtdmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNmMiLCJNMjUzLjQgMi45QzI0OS4yIDEgMjQ0LjcgMCAyNDAgMHMtOS4yIDEtMTMuNCAyLjlMMzguMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjIgLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yIDE2LjcgOCAzNi4xIDggNTIuOCAwIDE3Mi40LTgyLjUgMjEzLjItMjY0IDIxMy42LTM2My4yIC4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNTMuNCAyLjl6TTI0MCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjQgMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0ek0yMDggMjY0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODggNDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sZG10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpdGVjb2luLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxZDMiLCJNMTI4IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRsMCAxNTcuOS0zOC42IDExYy0xMi43IDMuNi0yMC4xIDE2LjktMTYuNSAyOS43czE2LjkgMjAuMSAyOS43IDE2LjVMNjQgMjcxLjggNjQgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDI1NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTE2Mi41IDEzNC42LTM4LjVjMTIuNy0zLjYgMjAuMS0xNi45IDE2LjUtMjkuN3MtMTYuOS0yMC4xLTI5LjctMTYuNUwxMjggMjAzLjYgMTI4IDY0eiJdfSx1bXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1kNiIsaWNvbjpbNTEyLDUxMixbXSwiZjZkMSIsIk0yMjQuNCA4LjNDMjQ0LTIuOCAyNjgtMi44IDI4Ny42IDguM2wxNzYgOTkuN2MyMCAxMS40IDMyLjQgMzIuNiAzMi40IDU1LjdsMCAxOTcuNGMwIDIzLTEyLjQgNDQuMy0zMi40IDU1LjdsLTE3NiA5OS43Yy0xOS42IDExLjEtNDMuNiAxMS4xLTYzLjEgMGwtMTc2LTk5LjdDMjguNCA0MDUuNSAxNiAzODQuMiAxNiAzNjEuMmwwLTE5Ny40YzAtMjMgMTIuNC00NC4zIDMyLjQtNTUuN2wxNzYtOTkuN3pNMTAyLjYgMTU1LjZjLTguOC0zLjEtMTguOCAuMy0yMy44IDguNnMtMy4yIDE4LjcgMy42IDI1bDMuMiAyLjQgMTUwLjIgOTAuMiAwIDE0OC43YzAgMTEgOSAyMCAyMCAyMCAxMSAwIDIwLTkgMjAtMjBsMC0xNDguNyAxNTAuMy05MC4yYzkuNS01LjcgMTIuNi0xOCA2LjktMjcuNHMtMTgtMTIuNS0yNy40LTYuOWwtMTQ5LjcgODkuOC0xNDkuNy04OS44LTMuNy0xLjd6Il19LHBtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJncmlwLWxpbmVzLXZlcnRpY2FsIixpY29uOlsxOTIsNTEyLFtdLCJmN2E1IiwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgNjR6bTEyOCAwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODR6Il19LHBzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnb2xmLWJhbGwtdGVlIixpY29uOlszODQsNTEyLFsiZ29sZi1iYWxsIl0sImY0NTAiLCJNMjk4LjUgMzg0LjFjMTIuMSAxLjIgMjEuNSAxMS41IDIxLjUgMjMuOXMtOS40IDIyLjYtMjEuNSAyMy45bC0yLjUgLjEtODAgMCAwIDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtODgtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjQgMC0xMi40IDkuNC0yMi42IDIxLjUtMjMuOWwyLjUtLjEgMjA4IDAgMi41IC4xek0xOTIgMGMxMDYgMCAxOTIgODYgMTkyIDE5MiAwIDU3LjQtMjUuMiAxMDguOC02NS4xIDE0NEw2NS4xIDMzNkMyNS4yIDMwMC44IDAgMjQ5LjQgMCAxOTIgMCA4NiA4NiAwIDE5MiAwem0zMiAyNDBjLTcuNyAwLTE0LjIgNS41LTE1LjcgMTIuOGwtLjYgNi40Yy0xLjMgNi4zLTYuMiAxMS4yLTEyLjUgMTIuNWwtNi40IC42Yy03LjMgMS41LTEyLjggOC0xMi44IDE1LjcgMCA4LjggNy4yIDE2IDE2IDE2IDI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNnptNjQtNjRjLTcuNyAwLTE0LjIgNS41LTE1LjcgMTIuOGwtLjYgNi40Yy0xLjMgNi4zLTYuMiAxMS4yLTEyLjUgMTIuNWwtNi40IC42Yy03LjMgMS41LTEyLjggOC0xMi44IDE1LjcgMCA4LjggNy4yIDE2IDE2IDE2IDI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtOC44LTcuMi0xNi0xNi0xNnptLTgwLTE2Yy03LjcgMC0xNC4yIDUuNS0xNS43IDEyLjhsLS42IDYuNGMtMS4zIDYuMy02LjIgMTEuMi0xMi41IDEyLjVsLTYuNCAuNmMtNy4zIDEuNS0xMi44IDgtMTIuOCAxNS43IDAgOC44IDcuMiAxNiAxNiAxNiAyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZ6Il19LGhtdD1wc2UsZm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhleGFnb24iLGljb246WzU3Niw1MTIsWzExMDQzXSwiZjMxMiIsIk0zMy41IDIyMC4zYy0xMi43IDIyLjItMTIuNyA0OS40IDAgNzEuNWw5Ni4yIDE2OC4xYzEyLjggMjIuNCAzNi43IDM2LjIgNjIuNSAzNi4ybDE5MS42IDBjMjUuOCAwIDQ5LjctMTMuOCA2Mi41LTM2LjJsOTYuMi0xNjguMWMxMi43LTIyLjIgMTIuNy00OS40IDAtNzEuNUw0NDYuMyA1Mi4yQzQzMy41IDI5LjggNDA5LjYgMTYgMzgzLjggMTZMMTkyLjIgMTZjLTI1LjggMC00OS43IDEzLjgtNjIuNSAzNi4yTDMzLjUgMjIwLjN6Il19LG1tdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItb3BlbiIsaWNvbjpbNTc2LDUxMixbMTI4MTk0LDEyODQ0OSw2MTcxN10sImYwN2MiLCJNNTYgMjI1LjZMMzIuNCAyOTYuMiAzMi40IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNGwxMTcuMyAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTYtMzY1LjQgMGMtNDEuMyAwLTc4IDI2LjQtOTEuMSA2NS42ek00NzcuOCA0NDhMOTkgNDQ4Yy0zMi44IDAtNTUuOS0zMi4xLTQ1LjUtNjMuMmw0OC0xNDRDMTA4IDIyMS4yIDEyNi40IDIwOCAxNDcgMjA4bDM3OC44IDBjMzIuOCAwIDU1LjkgMzIuMSA0NS41IDYzLjJsLTQ4IDE0NGMtNi41IDE5LjYtMjQuOSAzMi44LTQ1LjUgMzIuOHoiXX0sZ210PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImthYWJhIixpY29uOls1MTIsNTEyLFsxMjgzMzFdLCJmNjZiIiwiTTI1NiA1MS4zTDkyLjggMTEyLjQgMjQ3LjUgMTcxLjFjNS41IDIuMSAxMS41IDIuMSAxNyAwTDQxOS4yIDExMi40IDI1NiA1MS4zek0wIDEyOS4zYzAtMjAgMTIuNC0zNy45IDMxLjEtNDQuOWwyMDgtNzhjMTAuOS00LjEgMjIuOC00LjEgMzMuNyAwbDIwOCA3OGMxOC43IDcgMzEuMSAyNC45IDMxLjEgNDQuOWwwIDM2LTI1My4yIDk2Yy0xLjggLjctMy44IC43LTUuNyAwbC0yNTMuMi05NiAwLTM2em0wIDE0MGwwLTUyLjcgMjM2LjEgODkuNmMxMi44IDQuOSAyNi45IDQuOSAzOS43IDBsMjM2LjEtODkuNiAwIDUyLjctMTI4IDQ4LjYgMCA1MS4zIDEyOC00OC42IDAgNjIuMmMwIDIwLTEyLjQgMzcuOS0zMS4xIDQ0LjlsLTIwOCA3OGMtMTAuOSA0LjEtMjIuOCA0LjEtMzMuNyAwbC0yMDgtNzhDMTIuNCA0MjAuNyAwIDQwMi43IDAgMzgyLjdsMC02Mi4yIDEyOCA0OC42IDAtNTEuMy0xMjgtNDguNnpNMjM2LjEgNDEwLjFjMTIuOCA0LjkgMjYuOSA0LjkgMzkuNyAwbDYwLjEtMjIuOCAwLTUxLjMtNzcuMiAyOS4zYy0xLjggLjctMy44IC43LTUuNyAwbC03Ny4yLTI5LjMgMCA1MS4zIDYwLjEgMjIuOHoiXX0sYm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZyIsaWNvbjpbNTc2LDUxMixbXSwiZjRiZCIsIk02Ni43IDM4NGw0Mi41LTQyLjVjMjQtMjQgNTYuNi0zNy41IDkwLjUtMzcuNUwzNTIgMzA0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC03MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMi42IDAgMTE5LjctODguMmMxNy44LTEzLjEgNDIuOC05LjMgNTUuOSA4LjVzOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDg1LjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41TDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzNC43IDB6Il19LHZtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5nbGUtcXVvdGUtcmlnaHQiLGljb246WzE5Miw1MTIsW10sImU4MWMiLCJNNjQgNDE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDggMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTgtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTM2YzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDB6Il19LHhtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3R0bGUtZHJvcGxldCIsaWNvbjpbMzIwLDUxMixbXSwiZTRjNCIsIk04MCAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxMDMuM2M2NC45IDIwLjQgMTEyIDgxIDExMiAxNTIuN2wwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1NDRjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjg4YzAtNzEuNiA0Ny4xLTEzMi4zIDExMi0xNTIuN0wxMTIgMzJDOTQuMyAzMiA4MCAxNy43IDgwIDB6bTgwIDQxNmMzNS4zIDAgNjQtMzIuNCA2NC02NCAwLTIxLjItMjguOS02NC41LTQ3LjktOTAuNi04LjEtMTEuMS0yNC4yLTExLjEtMzIuMyAwLTE5IDI2LjEtNDcuOSA2OS40LTQ3LjkgOTAuNiAwIDMxLjYgMjguNyA2NCA2NCA2NHoiXX0seW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmRvdy1taW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDY5XSwiZjJkMSIsIk0wIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0NDhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyeiJdfSx3bXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi1yaWdodCIsaWNvbjpbMzIwLDUxMixbOTAwMl0sImYwNTQiLCJNMzExLjEgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE5MiAxOTJjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0My4yIDI1NiA3My45IDg2LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MnoiXX0sTW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVnZyIsaWNvbjpbMzg0LDUxMixbMTI5MzcwXSwiZjdmYiIsIk0xOTIgNDk2Qzg2IDQ5NiAwIDM5NCAwIDI4OCAwIDE3NiA2NCAxNiAxOTIgMTZTMzg0IDE3NiAzODQgMjg4YzAgMTA2LTg2IDIwOC0xOTIgMjA4ek0xNTQuOCAxMzRjNi41LTYgNy0xNi4xIDEtMjIuNnMtMTYuMS03LTIyLjYtMWMtMjMuOSAyMS44LTQxLjEgNTIuNy01Mi4zIDg0LjItMTEuMiAzMS42LTE2LjkgNjUuMS0xNi45IDkzLjUgMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmMwLTI0LjUgNS01NC40IDE1LjEtODIuOCAxMC4xLTI4LjUgMjUtNTQuMSA0My43LTcxLjJ6Il19LGhzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyay1kb21lIixpY29uOls1MTIsNTEyLFsibGFuZG1hcmstYWx0Il0sImY3NTIiLCJNMjU2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyIDAgLjkgMCAxLjggLjEgMi42LTgwLjUgMTMuNC0xNDQgNzYuOS0xNTcuNSAxNTcuNEw2NCAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCAxNjAtNTEuMiAzOC40QzQuNyA0NjAuNCAwIDQ2OS45IDAgNDgwIDAgNDk3LjcgMTQuMyA1MTIgMzIgNTEybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMTAuMS00LjctMTkuNi0xMi44LTI1LjZMNDQ4IDQxNiA0NDggMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yLjcgMGMtMTMuNS04MC40LTc3LTE0My45LTE1Ny41LTE1Ny40IC4xLS45IC4xLTEuNyAuMS0yLjYgMC0xNy43LTE0LjMtMzItMzItMzJ6bTgwIDI1Nmw2NCAwIDAgMTYwLTY0IDAgMC0xNjB6TTIyNCA0MTZsMC0xNjAgNjQgMCAwIDE2MC02NCAwek0xMTIgMjU2bDY0IDAgMCAxNjAtNjQgMCAwLTE2MHoiXX0sa210PWhzZSxTbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid29ybSIsaWNvbjpbNDQ4LDUxMixbXSwiZTU5OSIsIk0yMjQgOTZjMC01MyA0My05NiA5Ni05NmwzOC40IDBDNDA3LjkgMCA0NDggNDAuMSA0NDggODkuNkw0NDggMzc2YzAgNzUuMS02MC45IDEzNi0xMzYgMTM2UzE3NiA0NTEuMSAxNzYgMzc2bDAtODBjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBsMCAxNjhjMCAyNi41LTIxLjUgNDgtNDggNDhTMCA0OTAuNSAwIDQ2NEwwIDI5NmMwLTc1LjEgNjAuOS0xMzYgMTM2LTEzNnMxMzYgNjAuOSAxMzYgMTM2bDAgODBjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTE4NC0zMiAwYy01MyAwLTk2LTQzLTk2LTk2em0xNDQtOGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSx6bXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1pbmp1cmVkIixpY29uOls0NDgsNTEyLFtdLCJmNzI4IiwiTTI0Mi43IDgwTDMzNCA4MGMtMTAuNy0yNC42LTI5LjUtNDQuOS01Mi45LTU3LjZMMjQyLjcgODB6bS0uOS03MC43QzIzNiA4LjQgMjMwIDggMjI0IDggMTc0LjggOCAxMzIuNSAzNy42IDExNCA4MGw4MC42IDAgNDcuMS03MC43ek0yMjQgMjQ4YzY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbC0yNDAgMGMwIDY2LjMgNTMuNyAxMjAgMTIwIDEyMHpNOTguNyAzNDEuOEM0OS4zIDM3MC4yIDE2IDQyMy41IDE2IDQ4NC42IDE2IDQ5OS43IDI4LjMgNTEyIDQzLjQgNTEybDE1MSAwLTk1LjgtMTcwLjJ6bTQ1LjEtMTcuN2w0Mi43IDc1LjkgODUuNSAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgMTEuNC0yLjQgMjIuMi02LjcgMzJsNTkuMiAwYzE1LjEgMCAyNy40LTEyLjMgMjcuNC0yNy40IDAtOTAuOS03My43LTE2NC42LTE2NC42LTE2NC42bC04Ni45IDBjLTEyLjYgMC0yNC45IDEuNC0zNi43IDQuMXpNMjEzLjUgNDQ4bDM2IDY0IDIyLjUgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNTguNSAweiJdfSxDbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RyaWtldGhyb3VnaCIsaWNvbjpbNTEyLDUxMixbXSwiZjBjYyIsIk05NiAxNTcuNUM5NiA4OC4yIDE1Mi4yIDMyIDIyMS41IDMyTDM2OCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwyMjEuNSA5NmMtMzQgMC02MS41IDI3LjUtNjEuNSA2MS41IDAgMzEgMjMuMSA1Ny4yIDUzLjkgNjFsNDQuMSA1LjUgMjIyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgzLjEgMEMxMDMgMjA0LjYgOTYgMTgxLjggOTYgMTU3LjV6TTM0OS4yIDMzNmw2NS41IDBjLjkgNi4xIDEuNCAxMi4yIDEuNCAxOC41IDAgNjkuMy01Ni4yIDEyNS41LTEyNS41IDEyNS41TDE0NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ2LjUgMGMzNCAwIDYxLjUtMjcuNSA2MS41LTYxLjUgMC02LjQtMS0xMi43LTIuOC0xOC41eiJdfSxUbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmxvZyIsaWNvbjpbNTEyLDUxMixbXSwiZjc4MSIsIk0yMjQgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjQgMTQ1LjggMCAyNjQgMTE4LjIgMjY0IDI2NCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTExOS4zLTk2LjctMjE2LTIxNi0yMTYtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTgwIDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjI0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDgtMjEuNS00OC00OC00OGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNjRjMC04LjggNy4yLTE2IDE2LTE2IDc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0UzI1NS41IDUxMiAxNzYgNTEyIDMyIDQ0Ny41IDMyIDM2OGwwLTIyNGMwLTI2LjUgMjEuNS00OCA0OC00OHptMTY4IDBjOTIuOCAwIDE2OCA3NS4yIDE2OCAxNjggMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC02Ni4zLTUzLjctMTIwLTEyMC0xMjAtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sX210PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3B3YXRjaC0yMCIsaWNvbjpbNDQ4LDUxMixbXSwiZTA2ZiIsIk0xNjguNSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAyNS4zYy0xMDggMTEuOS0xOTIgMTAzLjUtMTkyIDIxNC43IDAgMTE5LjMgOTYuNyAyMTYgMjE2IDIxNnMyMTYtOTYuNyAyMTYtMjE2YzAtMzkuOC0xMC44LTc3LjEtMjkuNi0xMDkuMmwyOC4yLTI4LjJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTIzLjQgMjMuNGMtMzIuOS0zMC4yLTc1LjItNTAuMy0xMjItNTUuNWwwLTI1LjMgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6bS02MCAyNDBjMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MmwwIDMuOGMwIDExLjctMy4yIDIzLjEtOS4zIDMzbC00My44IDcxLjIgMzMuMSAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNTcuOCAwYy0xNC41IDAtMjYuMi0xMS43LTI2LjItMjYuMiAwLTQuOSAxLjMtOS42IDMuOS0xMy44bDU2LjctOTIuMWMyLjItMy42IDMuNC03LjggMy40LTEyLjFsMC0zLjhjMC02LjYtNS40LTEyLTEyLTEycy0xMiA1LjQtMTIgMTJjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwem0xODAtNTJjMjguNyAwIDUyIDIzLjMgNTIgNTJsMCA5NmMwIDI4LjctMjMuMyA1Mi01MiA1MnMtNTItMjMuMy01Mi01MmwwLTk2YzAtMjguNyAyMy4zLTUyIDUyLTUyem0tMTIgNTJsMCA5NmMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEybDAtOTZjMC02LjYtNS40LTEyLTEyLTEycy0xMiA1LjQtMTIgMTJ6Il19LExtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1waWNrdXAiLGljb246WzY0MCw1MTIsWzEyODc2M10sImY2M2MiLCJNMzYzLjggOTZsNTcuNiA5Ni0xMzMuNCAwIDAtOTYgNzUuOCAwek00OTYgMTkyTDQxOC42IDYzLjFDNDA3LjEgNDMuOCAzODYuMiAzMiAzNjMuOCAzMkwyNTYgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTI4LTE0NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyLjQgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMTYwLjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhjMC0yLjctLjEtNS40LS40LThsMzIuNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtODBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTExMiAzOTJhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHptMzc2LTQwYTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHoiXX0sZnNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNlZWRsaW5nIixpY29uOls1MTIsNTEyLFsxMjc3OTMsInNwcm91dCJdLCJmNGQ4IiwiTTUxMiAzMkM1MTIgMTQwLjEgNDM1LjQgMjMwLjMgMzMzLjYgMjUxLjQgMzI1LjcgMTkzLjMgMjk5LjYgMTQxIDI2MS4xIDEwMC41IDMwMS4yIDQwIDM2OS45IDAgNDQ4IDBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NGwzMiAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBDMTAwLjMgMzIwIDAgMjE5LjcgMCA5NnoiXX0sQW10PWZzZSxtc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhbnNnZW5kZXIiLGljb246WzU3Niw1MTIsWzk4OTUsInRyYW5zZ2VuZGVyLWFsdCJdLCJmMjI1IiwiTTEyOC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw5Ny45IDMyIDEzNiA3MC4xIDE1MSA1NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTE1IDE1IDE0LjIgMTQuMmMyNy45LTIzLjggNjQuMi0zOC4yIDEwMy44LTM4LjIgMzYuNyAwIDcwLjYgMTIuNCA5Ny42IDMzLjJMNDY2LjcgMzIgNDQ4IDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjctODQuNCA4NC40YzEzIDIzLjEgMjAuNCA0OS45IDIwLjQgNzguMyAwIDc3LjQtNTUgMTQyLTEyOCAxNTYuOGwwIDM1LjIgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzUuMmMtNzMtMTQuOC0xMjgtNzkuNC0xMjgtMTU2LjggMC0zMS40IDktNjAuNyAyNC43LTg1LjRsLTE2LjctMTYuNy0xNSAxNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwxNS0xNS0zOC4xLTM4LjEgMCAzMC4xYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgMTEzLjcgMCA5NkwwIDBDMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMHpNMjg4IDMzNmE5NiA5NiAwIDEgMCAwLTE5MiA5NiA5NiAwIDEgMCAwIDE5MnoiXX0sRG10PW1zZSxFbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Rhci1oYWxmIixpY29uOls1NzYsNTEyLFs2MTczMV0sImYwODkiLCJNMzA0LjEgNy42YzAtMTEuMS03LjYtMjAuNy0xOC40LTIzLjNzLTIxLjkgMi41LTI3IDEyLjRMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyOTEgNDE2LjFjOC00LjEgMTMuMS0xMi40IDEzLjEtMjEuNGwwLTM4Ny4xeiJdfSxnc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvdG8tZmlsbSIsaWNvbjpbNjQwLDUxMixbInBob3RvLXZpZGVvIl0sImY4N2MiLCJNMTkyIDY0YzAtMzUuMyAyOC43LTY0IDY0LTY0TDU3NiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zMjAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMjR6TTMyMCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xNTYuNSAxMS41QzQ3Mi4xIDEwMC40IDQ2NC40IDk2IDQ1NiA5NnMtMTYuMSA0LjQtMjAuNSAxMS41bC01NCA4OC4zLTE3LjktMjUuNmMtNC41LTYuNC0xMS44LTEwLjItMTkuNy0xMC4ycy0xNS4yIDMuOC0xOS43IDEwLjJsLTU2IDgwYy01LjEgNy4zLTUuOCAxNi45LTEuNiAyNC44UzI3OS4xIDI4OCAyODggMjg4bDI1NiAwYzguNyAwIDE2LjctNC43IDIwLjktMTIuM3M0LjEtMTYuOC0uNS0yNC4zbC04OC0xNDR6TTE0NCAxMjhsMCAxNjBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJsMTkyIDAgMCAxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDgwIDB6TTUyIDE5NmwwIDI0YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTI0YzAtOC44LTcuMi0xNi0xNi0xNmwtMjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMjRjMCA4LjggNy4yIDE2IDE2IDE2bDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjRjMC04LjgtNy4yLTE2LTE2LTE2bC0yNCAwem0wIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAyNGMwIDguOCA3LjIgMTYgMTYgMTZsMjQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0yNGMwLTguOC03LjItMTYtMTYtMTZsLTI0IDB6Il19LCRtdD1nc2UsSW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpY3R1cmUtaW4tcGljdHVyZSIsaWNvbjpbNTEyLDUxMixbXSwiZTgwYiIsIk00NDggMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMTItNjQgMCAwLTExMi0zODQgMCAwIDMyMCAxNDQgMCAwIDY0LTE0NCAwLTYuNS0uM2MtMzAuMS0zLjEtNTQuMS0yNy01Ny4xLTU3LjFMMCA0MTYgMCA5NkMwIDYyLjkgMjUuMiAzNS42IDU3LjUgMzIuM0w2NCAzMiA0NDggMzJ6bTE2IDIyNGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDEyOGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTI4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2MCAweiJdfSxQbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHVtcC1tZWRpY2FsIixpY29uOlszMjAsNTEyLFtdLCJlMDZhIiwiTTk2IDBsMCA4MCAxMjggMCAwLTI0IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRTMzA5LjMgOCAyOTYgOGwtNzIgMCAwLThjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBDMTEwLjMtMzIgOTYtMTcuNyA5NiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDEyOHptNjQgMTIwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxObXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZSIsaWNvbjpbNDQ4LDUxMixbMTI4MjkzXSwiZjA2ZCIsIk0xNjAuNS0yNi40YzkuMy03LjggMjMtNy41IDMxLjkgLjkgMTIuMyAxMS42IDIzLjMgMjQuNCAzMy45IDM3LjQgMTMuNSAxNi41IDI5LjcgMzguMyA0NS4zIDY0LjIgNS4yLTYuOCAxMC0xMi44IDE0LjItMTcuOSAxLjEtMS4zIDIuMi0yLjcgMy4zLTQuMSA3LjktOS44IDE3LjctMjIuMSAzMC44LTIyLjEgMTMuNCAwIDIyLjggMTEuOSAzMC44IDIyLjEgMS4zIDEuNyAyLjYgMy4zIDMuOSA0LjggMTAuMyAxMi40IDI0IDMwLjMgMzcuNyA1Mi40IDI3LjIgNDMuOSA1NS42IDEwNi40IDU1LjYgMTc2LjYgMCAxMjMuNy0xMDAuMyAyMjQtMjI0IDIyNFMwIDQxMS43IDAgMjg4YzAtOTEuMSA0MS4xLTE3MCA4MC41LTIyNSAxOS45LTI3LjcgMzkuNy00OS45IDU0LjYtNjUuMSA4LjItOC40IDE2LjUtMTYuNyAyNS41LTI0LjJ6TTIyNS43IDQxNmMyNS4zIDAgNDcuNy03IDY4LjgtMjEgNDIuMS0yOS40IDUzLjQtODguMiAyOC4xLTEzNC40LTQuNS05LTE2LTkuNi0yMi41LTJsLTI1LjIgMjkuM2MtNi42IDcuNi0xOC41IDcuNC0yNC43LS41LTE3LjMtMjIuMS00OS4xLTYyLjQtNjUuMy04My01LjQtNi45LTE1LjItOC0yMS41LTEuOS0xOC4zIDE3LjgtNTEuNSA1Ni44LTUxLjUgMTA0LjMgMCA2OC42IDUwLjYgMTA5LjIgMTEzLjcgMTA5LjJ6Il19LGJzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLXBsdXMiLGljb246WzUxMiw1MTIsWyJzZWFyY2gtcGx1cyJdLCJmMDBlIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjA4IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA0OC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ4IDAgMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDggNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMCAwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxGbXQ9YnNlLE9tdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFzayIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjMyIsIk0yODggMEwxMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJzMTQuMyAzMiAzMiAzMkwxMjggMjE1LjUgNy41IDQyNi4zQzIuNiA0MzUgMCA0NDQuNyAwIDQ1NC43IDAgNDg2LjQgMjUuNiA1MTIgNTcuMyA1MTJsMzMzLjQgMGMzMS42IDAgNTcuMy0yNS42IDU3LjMtNTcuMyAwLTEwLTIuNi0xOS44LTcuNS0yOC40TDMyMCAyMTUuNSAzMjAgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzM3LjcgMCAzMjAgMEwyODggMHpNMTkyIDIxNS41bDAtMTUxLjUgNjQgMCAwIDE1MS41YzAgMTEuMSAyLjkgMjIuMSA4LjQgMzEuOGw0MS42IDcyLjctMTY0IDAgNDEuNi03Mi43YzUuNS05LjcgOC40LTIwLjYgOC40LTMxLjh6Il19LFJtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbGlnbi1yaWdodCIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzOCIsIk00NDggNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMMTkyIDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyem0wIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjI0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSx2c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FibGUtY2FyIixpY29uOls1MTIsNTEyLFsxMjg2NzMsNTc1NTEsInRyYW0iXSwiZjdkYSIsIk0yODgtMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNjAgMjRhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzIgMjg4YzAtMzUuMyAyOC43LTY0IDY0LTY0bDEzNiAwIDAtOTYuMi0xOTMuNCA1NS4zYy0xMi43IDMuNi0yNi0zLjctMjkuNy0xNi41czMuNy0yNiAxNi41LTI5LjdsMjI0LTY0IDAgMCAyMjQtNjRjMTIuNy0zLjYgMjYgMy43IDI5LjcgMTYuNXMtMy43IDI2LTE2LjUgMjkuN2wtMjA2LjYgNTkgMCAxMDkuOSAxMzYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE2MGMwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTYwem04MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZsNTYgMCAwLTk2LTU2IDB6bTE4NCA5NmwwLTk2LTgwIDAgMCA5NiA4MCAwem00OCAwbDU2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2bC01NiAwIDAgOTZ6Il19LEJtdD12c2UseHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtpdC1tZWRpY2FsIixpY29uOls1MTIsNTEyLFsiZmlyc3QtYWlkIl0sImY0NzkiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTYgMCAwLTM4NC0xNiAwem02NCAwbDAgMzg0IDI1NiAwIDAtMzg0LTI1NiAwek00NDggNDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xNiAwIDAgMzg0IDE2IDB6TTIyNCAxODRjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LEhtdD14c2UscW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyaXAtbGluZXMiLGljb246WzQ0OCw1MTIsW10sImY3YTQiLCJNMzIgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDI4OHptMC0xMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMTYweiJdfSx5c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVyZ2VyIixpY29uOls1MTIsNTEyLFsiaGFtYnVyZ2VyIl0sImY4MDUiLCJNNDggMzg0Yy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMjg4IDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC04LjgtNy4yLTE2LTE2LTE2TDQ4IDM4NHpNMzIgMjAyYzAgMTIuMiA5LjkgMjIgMjIgMjJMNDU4IDIyNGMxMi4yIDAgMjItOS45IDIyLTIyIDAtMTcuMi0yLjYtMzQuNC0xMC44LTQ5LjUtMjIuMi00MC44LTgyLjMtMTIwLjUtMjEzLjItMTIwLjVTNjUgMTExLjYgNDIuOCAxNTIuNUMzNC42IDE2Ny42IDMyIDE4NC44IDMyIDIwMnpNMCAzMDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMjcyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjU2IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMTIwIDEyOGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yNDgtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxqbXQ9eXNlLFZtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93bWFuIixpY29uOls2NDAsNTEyLFs5NzMxLDk5MjRdLCJmN2QwIiwiTTQwMyAyMTEuN2MzMi4yLTI0LjkgNTMtNjMuOSA1My0xMDcuNyAwLTc1LjEtNjAuOS0xMzYtMTM2LTEzNlMxODQgMjguOSAxODQgMTA0YzAgNDMuOSAyMC44IDgyLjkgNTMgMTA3LjctMzIuMiAxNi4zLTU5IDQxLjgtNzYuOCA3My4xTDExMiAyNjQuMiAxMTIgMjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTkuNi0yMi41LTkuN2MtMTIuMi01LjItMjYuMyAuNC0zMS41IDEyLjZzLjQgMjYuMyAxMi42IDMxLjVjMzYuMSAxNS41IDc1LjkgMzIuNSAxMTkuNCA1MS4yLTMuOSAxNC45LTYgMzAuNi02IDQ2LjcgMCA3MCAzOS4xIDEzMC44IDk2LjYgMTYxLjkgNy45IDQuMyAxNi45IDYuMSAyNS45IDYuMWwxMjMgMGM5IDAgMTgtMS44IDI1LjktNi4xIDU3LjUtMzEuMSA5Ni42LTkyIDk2LjYtMTYxLjkgMC0xNi4yLTIuMS0zMS44LTYtNDYuNyA0My41LTE4LjcgODMuNC0zNS43IDExOS40LTUxLjIgMTIuMi01LjIgMTcuOC0xOS4zIDEyLjYtMzEuNXMtMTkuMy0xNy44LTMxLjUtMTIuNmwtMjIuNSA5LjcgMC0xOS42YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNDAuMi00OC4yIDIwLjZjLTE3LjktMzEuMy00NC42LTU2LjgtNzYuOC03My4xek0yOTYgNDE2YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTI0LTEyMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTI0OCA4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zNjggNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0yOTIuMiAxNTkuM2MtMi43LTQuOC00LjItMTAuMi00LjItMTUuNyAwLTE3LjUgMTQuMi0zMS42IDMxLjYtMzEuNmwuOCAwYzE3LjUgMCAzMS42IDE0LjIgMzEuNiAzMS42IDAgNS41LTEuNCAxMC45LTQuMiAxNS43TDMyNyAxOTUuOGMtMy4xIDUuNC0xMC44IDUuNC0xMy45IDBsLTIwLjktMzYuNnoiXX0sVW10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdGVsIixpY29uOls1MTIsNTEyLFsxMjc5NzZdLCJmNTk0IiwiTTE2IDI0QzE2IDEwLjcgMjYuNyAwIDQwIDBMNDcyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQxNiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMNDAgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTQxNi04IDBDMjYuNyA0OCAxNiAzNy4zIDE2IDI0em0yMDggODhsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTI4IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTk2IDExMmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0zNTIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMTEyIDIwOGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0yNDAtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNMjg4IDM4NGw0My44IDBjOS45IDAgMTcuNS05IDE0LTE4LjItMTMuOC0zNi4xLTQ4LjgtNjEuOC04OS43LTYxLjhzLTc1LjkgMjUuNy04OS43IDYxLjhjLTMuNSA5LjIgNC4xIDE4LjIgMTQgMTguMmw0My44IDAgMCA4MCA2NCAwIDAtODB6Il19LFdtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwcmludCIsaWNvbjpbNTEyLDUxMixbMTI4NDI0LDEyODQzOCw5MTEzXSwiZjAyZiIsIk02NCA2NEM2NCAyOC43IDkyLjcgMCAxMjggMEwzNDEuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDQyLjUgNDIuNWMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zbDAgMzcuNS0zODQgMCAwLTgwek0wIDI1NmMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTY0LTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTEyOCA0MTZsMCAzMiAyNTYgMCAwLTk2LTI1NiAwIDAgNjR6TTQ1NiAyNzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sd3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbGxleWJhbGwiLGljb246WzUxMiw1MTIsWzEyNzk1Miwidm9sbGV5YmFsbC1iYWxsIl0sImY0NWYiLCJNNTEyIDI1OC45Yy0yMy40IDgtNDcuOCAxMy4xLTcyLjYgMTUuMSA1LjktOTguNi0zMC43LTE5MS4xLTk0LjktMjU4LjMgOTcuOCAzNiAxNjcuNSAxMzAgMTY3LjUgMjQwLjMgMCAxIDAgMS45IDAgMi45em0tNS45IDUyYy01LjIgMjMuNy0xMy42IDQ2LjItMjQuOSA2Ni45LTk0LjcgNTIuMi0yMTQgNTAtMzA4LjQtMTMuNiAyMS43LTMxLjMgNDkuOC01OC45IDgzLjgtODAuNSA3OS41IDQxLjYgMTY4LjUgNDkuMSAyNDkuNSAyNy4xek0yNzkuNyAyNDEuNmMtMy43LTg5LjctNDEuNy0xNzAuNS0xMDEuMy0yMjkuNyAyMi4zLTcuMSA0Ni0xMS4yIDcwLjUtMTEuOSA5Mi41IDU1LjkgMTUwLjMgMTYwLjMgMTQyLjQgMjczLjgtMzgtMy4yLTc1LjktMTMuNy0xMTEuNi0zMi4zek0xMzAuNSAzMi44QzE0OS4xIDQ5LjEgMTY1LjggNjcuNyAxNzkuOSA4OC4yIDkxLjUgMTMyLjMgMjkuNyAyMTAuMyAzLjcgMjk5LjUgMS4zIDI4NS4zIDAgMjcwLjggMCAyNTYgMCAxNjAuMiA1Mi42IDc2LjcgMTMwLjUgMzIuOHptNzMuNCA5N2MxNi4zIDM0LjUgMjYuMSA3Mi42IDI3LjkgMTEyLjgtNzUuOCA0OC0xMjYuOCAxMjEuMy0xNDguMyAyMDIuNS0xNy42LTE2LjEtMzMtMzQuNi00NS41LTU1IDIuMS0xMDguMSA2My43LTIxMC40IDE2NS45LTI2MC4zek0yNTYgNTEyYy00Ny43IDAtOTIuMy0xMy0xMzAuNS0zNS43IDQuOC0yNC4zIDEyLjYtNDggMjMuMi03MC40IDgyLjQgNTQuNCAxODAuOCA2OC45IDI3MSA0Ny00NC40IDM3LTEwMS41IDU5LjItMTYzLjcgNTkuMnoiXX0sR210PXdzZSxZbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhZmZpYy1saWdodCIsaWNvbjpbMzIwLDUxMixbMTI4Njc4XSwiZjYzNyIsIk02NC0zMkMyOC43LTMyIDAtMy4zIDAgMzJMMCAzODRjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBzMTYwLTcxLjYgMTYwLTE2MGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NEw2NC0zMnptOTYgMzkyYzMwLjkgMCA1NiAyNS4xIDU2IDU2cy0yNS4xIDU2LTU2IDU2LTU2LTI1LjEtNTYtNTYgMjUuMS01NiA1Ni01NnptNTYtMTA0YTU2IDU2IDAgMSAxIC0xMTIgMCA1NiA1NiAwIDEgMSAxMTIgMHpNMTYwIDE1MmE1NiA1NiAwIDEgMSAwLTExMiA1NiA1NiAwIDEgMSAwIDExMnoiXX0sWm10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1NSIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDc4IDcxLjVjLTY5LjMgMjktMTE4IDk3LjQtMTE4IDE3Ny4yIDAgNDkuMyAxOC42IDk0LjMgNDkuMSAxMjguM0wyODggNTEyIDE3OS45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzU4LjcgMzk2LjQgNDggMzg4LjcgNDggMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjMyIDE1MS4zIDIzMiAyNHpNMzUyIDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMDEuNC02MC45Yy03LjEtNS4yLTE3LjItMy42LTIyLjQgMy41bC01MyA3Mi45LTI2LjgtMjYuOGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC42czguOS0yLjggMTEuNy02LjVsNjQtODhjNS4yLTcuMSAzLjYtMTcuMi0zLjUtMjIuM3oiXX0sZUU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMiLGljb246WzY0MCw1MTIsW10sImYwYzAiLCJNMzIwIDE2YTEwNCAxMDQgMCAxIDEgMCAyMDggMTA0IDEwNCAwIDEgMSAwLTIwOHpNOTYgODhhNzIgNzIgMCAxIDEgMCAxNDQgNzIgNzIgMCAxIDEgMC0xNDR6TTAgNDE2YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4IDEyLjggMCAyNS4yIDEuOSAzNi45IDUuNC0zMi45IDM2LjgtNTIuOSA4NS40LTUyLjkgMTM4LjZsMCAxNmMwIDExLjQgMi40IDIyLjIgNi43IDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMnptNTIxLjMgNjRjNC4zLTkuOCA2LjctMjAuNiA2LjctMzJsMC0xNmMwLTUzLjItMjAtMTAxLjgtNTIuOS0xMzguNiAxMS43LTMuNSAyNC4xLTUuNCAzNi45LTUuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC04Ni43IDB6TTQ3MiAxNjBhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwek0xNjAgNDMyYzAtODguNCA3MS42LTE2MCAxNjAtMTYwczE2MCA3MS42IDE2MCAxNjBsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTZ6Il19LFhtdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZXJ0aWZpY2F0ZSIsaWNvbjpbNTc2LDUxMixbXSwiZjBhMyIsIk0yMzkuMi04Yy02LjEtNi4yLTE1LTguNy0yMy40LTYuNFMyMDAuOS01LjYgMTk4LjggMi44TDE4My41IDYzYy0xLjEgNC40LTUuNiA3LTkuOSA1LjdMMTEzLjggNTEuOWMtOC40LTIuNC0xNy40IDAtMjMuNSA2LjFzLTguNSAxNS4xLTYuMSAyMy41bDE2LjkgNTkuOGMxLjIgNC4zLTEuNCA4LjgtNS43IDkuOUwzNS4xIDE2Ni41Yy04LjQgMi4xLTE1IDguNy0xNy4zIDE3LjFzLjIgMTcuMyA2LjQgMjMuNGw0NC41IDQzLjNjMy4yIDMuMSAzLjIgOC4zIDAgMTEuNUwyNC4zIDMwNS4xYy02LjIgNi4xLTguNyAxNS02LjQgMjMuNHM4LjkgMTQuOSAxNy4zIDE3LjFsNjAuMiAxNS4zYzQuNCAxLjEgNyA1LjYgNS43IDkuOUw4NC4yIDQzMC41Yy0yLjQgOC40IDAgMTcuNCA2LjEgMjMuNXMxNS4xIDguNSAyMy41IDYuMWw1OS44LTE2LjljNC4zLTEuMiA4LjggMS40IDkuOSA1LjdsMTUuMyA2MC4yYzIuMSA4LjQgOC43IDE1IDE3LjEgMTcuM3MxNy4zLS4yIDIzLjQtNi40bDQzLjMtNDQuNWMzLjEtMy4yIDguMy0zLjIgMTEuNSAwTDMzNy4zIDUyMGM2LjEgNi4yIDE1IDguNyAyMy40IDYuNHMxNC45LTguOSAxNy4xLTE3LjNMMzkzLjEgNDQ5YzEuMS00LjQgNS42LTcgOS45LTUuN2w1OS44IDE2LjljOC40IDIuNCAxNy40IDAgMjMuNS02LjFzOC41LTE1LjEgNi4xLTIzLjVsLTE2LjktNTkuOGMtMS4yLTQuMyAxLjQtOC44IDUuNy05LjlsNjAuMi0xNS4zYzguNC0yLjEgMTUtOC43IDE3LjMtMTcuMXMtLjItMTcuNC02LjQtMjMuNGwtNDQuNS00My4zYy0zLjItMy4xLTMuMi04LjMgMC0xMS41bDQ0LjUtNDMuM2M2LjItNi4xIDguNy0xNSA2LjQtMjMuNHMtOC45LTE0LjktMTcuMy0xNy4xbC02MC4yLTE1LjNjLTQuNC0xLjEtNy01LjYtNS43LTkuOWwxNi45LTU5LjhjMi40LTguNCAwLTE3LjQtNi4xLTIzLjVzLTE1LjEtOC41LTIzLjUtNi4xTDQwMyA2OC44Yy00LjMgMS4yLTguOC0xLjQtOS45LTUuN0wzNzcuOCAyLjhjLTIuMS04LjQtOC43LTE1LTE3LjEtMTcuM3MtMTcuMyAuMi0yMy40IDYuNEwyOTQgMzYuNWMtMy4xIDMuMi04LjMgMy4yLTExLjUgMEwyMzkuMi04eiJdfSxRbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYWxhcm0tY2xvY2siLGljb246WzUxMiw1MTIsWzkyMDBdLCJmMzRlIiwiTTUwNC40IDEzMi41Yy00LjUgMTAuNS0xOC40IDkuOC0yNC45IC40LTI3LjgtNDAtNjYuMS03Mi4yLTExMS05Mi42LTEwLjQtNC43LTEzLjctMTguMy00LjEtMjQuNiAxNS05LjkgMzMtMTUuNyA1Mi4zLTE1LjcgNTIuNiAwIDk1LjIgNDIuNiA5NS4yIDk1LjIgMCAxMy4yLTIuNyAyNS44LTcuNiAzNy4zem0tNDcxLjkgLjRjLTYuNSA5LjQtMjAuNSAxMC4xLTI0LjktLjQtNC45LTExLjUtNy42LTI0LjEtNy42LTM3LjMgMC01Mi42IDQyLjYtOTUuMiA5NS4yLTk1LjIgMTkuMyAwIDM3LjMgNS44IDUyLjMgMTUuNyA5LjYgNi4zIDYuMyAxOS45LTQuMSAyNC42LTQ0LjggMjAuNC04My4xIDUyLjYtMTExIDkyLjZ6TTM5MC4yIDQ2Ny40QzM1Mi44IDQ5NS40IDMwNi4zIDUxMiAyNTYgNTEycy05Ni44LTE2LjYtMTM0LjEtNDQuNkw4Ni42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wzNS4yLTM1LjJDNDguNiAzODQuOCAzMiAzMzguMyAzMiAyODggMzIgMTY0LjMgMTMyLjMgNjQgMjU2IDY0UzQ4MCAxNjQuMyA0ODAgMjg4YzAgNTAuMy0xNi42IDk2LjgtNDQuNiAxMzQuMmwzNS4yIDM1LjJjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTM1LjItMzUuMnpNMjgwIDE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwNGMwIDYuNCAyLjUgMTIuNSA3IDE3bDU2IDU2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNDktNDkgMC05NC4xeiJdfSxKbXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVsaWNvcHRlci1zeW1ib2wiLGljb246WzUxMiw1MTIsW10sImU1MDIiLCJNNDQ1LjQgMjI0bDY0LjcgMEM0OTUuNiAxMDguMiA0MDMuOCAxNi40IDI4OCAybDAgNjQuN0MzNjguNCA4MC4xIDQzMS45IDE0My42IDQ0NS40IDIyNHpNNTEwIDI4OGwtNjQuNyAwQzQzMS45IDM2OC40IDM2OC40IDQzMS45IDI4OCA0NDUuM2wwIDY0LjdjMTE1LjgtMTQuNCAyMDcuNi0xMDYuMiAyMjItMjIyek0yIDI4OEMxNi40IDQwMy44IDEwOC4yIDQ5NS42IDIyNCA1MTBsMC02NC43QzE0My42IDQzMS45IDgwLjIgMzY4LjQgNjYuNyAyODhMMiAyODh6bTAtNjRsNjQuNyAwQzgwLjIgMTQzLjYgMTQzLjYgODAuMSAyMjQgNjYuN0wyMjQgMkMxMDguMiAxNi40IDE2LjQgMTA4LjIgMiAyMjR6bTIwNi02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgOTYgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NC05NiAwIDAtNjR6Il19LE1zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LWNyYWNrIixpY29uOls1MTIsNTEyLFsiaG91c2UtZGFtYWdlIl0sImY2ZjEiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTEwNS42IDAtMzguNC02NCA4MC44LTY3LjNjNy44LTYuNSA3LjYtMTguNi0uNC0yNC45TDIxOC42IDI2My4yYy0xNC42LTExLjUtMzMuOCA3LTIyLjggMjJMMjU2IDM2OCAxNzAuNSA0MzkuMmMtNi4xIDUtNy41IDEzLjgtMy41IDIwLjVsMzEuMyA1Mi4yLTg2LjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4eiJdfSxLbXQ9TXNlLGU5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktcG9pbnRpbmciLGljb246WzUxMiw1MTIsW10sImU1NGEiLCJNMjE0LjkgMTQuMUMyMDIgMTUuMiAxOTIgMjYgMTkyIDM5IDE5MiA1Mi44IDIwMy4yIDY0IDIxNyA2NGwxNTEgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMC42QzM4NCA4IDM3NiAuNyAzNjYuNyAxLjRMMjE0LjkgMTQuMXpNMjA4IDExMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2TDIwOS42IDk2Yy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZ6TTQwIDIyNGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxNTIgMCAwIDg5LjQgMTYyLjgtMTYyLjhjLTEzLjMtNC4zLTI3LjMtNi41LTQxLjYtNi41TDQwIDIyNHptMzQ1LjcgMjAuOWwtMTcxLjEgMTcxLjEgMTY5LjQgMCAwLTQ2LjMgNTMuNiA5MC42YzExLjIgMTkgMzUuOCAyNS4zIDU0LjggMTQuMXMyNS4zLTM1LjggMTQuMS01NC44TDQzMC4zIDI5MC44Yy0xMS4yLTE5LTI2LjYtMzQuNS00NC42LTQ1Ljl6TTE5MiA0NDhsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyLTE5MiAweiJdfSx0OXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGF0YWJhc2UiLGljb246WzQ0OCw1MTIsW10sImYxYzAiLCJNNDQ4IDIwNS44Yy0xNC44IDkuOC0zMS44IDE3LjctNDkuNSAyNC00NyAxNi44LTEwOC43IDI2LjItMTc0LjUgMjYuMlM5Ni40IDI0Ni41IDQ5LjUgMjI5LjhjLTE3LjYtNi4zLTM0LjctMTQuMi00OS41LTI0TDAgMjg4YzAgNDQuMiAxMDAuMyA4MCAyMjQgODBzMjI0LTM1LjggMjI0LTgwbDAtODIuMnptMC03Ny44bDAtNDhDNDQ4IDM1LjggMzQ3LjcgMCAyMjQgMFMwIDM1LjggMCA4MGwwIDQ4YzAgNDQuMiAxMDAuMyA4MCAyMjQgODBzMjI0LTM1LjggMjI0LTgwek0zOTguNSAzODkuOEMzNTEuNiA0MDYuNSAyODkuOSA0MTYgMjI0IDQxNlM5Ni40IDQwNi41IDQ5LjUgMzg5LjhjLTE3LjYtNi4zLTM0LjctMTQuMi00OS41LTI0TDAgNDMyYzAgNDQuMiAxMDAuMyA4MCAyMjQgODBzMjI0LTM1LjggMjI0LTgwbDAtNjYuMmMtMTQuOCA5LjgtMzEuOCAxNy43LTQ5LjUgMjR6Il19LHI5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuZXdzcGFwZXIiLGljb246WzUxMiw1MTIsWzEyODI0MF0sImYxZWEiLCJNMCA0MTZMMCAxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDI4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0TDk2IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTE2MCAxMjhsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem0yNCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0MCAwem0tMjQtNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNMzYwIDE3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC02NCAweiJdfSxpOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtcmFpbiIsaWNvbjpbNTEyLDUxMixbMTI3NzgzLDk5MjZdLCJmNzNkIiwiTTk2IDMyMGMtNTMgMC05Ni00My05Ni05NiAwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMi0xLjMtNi43LTEuOS0xMy43LTEuOS0yMC44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyIDQzLjEgMCA4MC41IDI0LjMgOTkuMiA2MCAxNC43LTE3LjEgMzYuNS0yOCA2MC44LTI4IDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNS41LS42IDEwLjgtMS42IDE2IC41IDAgMS4xIDAgMS42IDAgNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZMOTYgMzIwem0xLjYgNjguMmMxLjEtMi41IDMuNi00LjIgNi40LTQuMnM1LjMgMS42IDYuNCA0LjJsMzAuMiA2OC4yYzIuMiA1LjEgMy40IDEwLjUgMy40IDE2IDAgMjEuOS0xOC4xIDM5LjYtNDAgMzkuNnMtNDAtMTcuNy00MC0zOS42YzAtNS41IDEuMi0xMSAzLjQtMTZsMzAuMi02OC4yem0xNTIgMGMxLjEtMi41IDMuNi00LjIgNi40LTQuMnM1LjMgMS42IDYuNCA0LjJsMzAuMiA2OC4yYzIuMiA1LjEgMy40IDEwLjUgMy40IDE2IDAgMjEuOS0xOC4xIDM5LjYtNDAgMzkuNnMtNDAtMTcuNy00MC0zOS42YzAtNS41IDEuMi0xMSAzLjQtMTZsMzAuMi02OC4yem0xMjEuOCA2OC4ybDMwLjItNjguMmMxLjEtMi41IDMuNi00LjIgNi40LTQuMnM1LjMgMS42IDYuNCA0LjJsMzAuMiA2OC4yYzIuMiA1LjEgMy40IDEwLjUgMy40IDE2IDAgMjEuOS0xOC4xIDM5LjYtNDAgMzkuNnMtNDAtMTcuNy00MC0zOS42YzAtNS41IDEuMi0xMSAzLjQtMTZ6Il19LGtzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXhpbWl6ZSIsaWNvbjpbNDQ4LDUxMixbImV4cGFuZC1hcnJvd3MtYWx0Il0sImYzMWUiLCJNMTY4IDMyTDI0IDMyQzEwLjcgMzIgMCA0Mi43IDAgNTZMMCAyMDBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yUzM0LjEgMjIzLjggNDEgMjE3bDQwLTQwIDc5IDc5LTc5IDc5LTQwLTQwYy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzAgMzAyLjMgMCAzMTJMMCA0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC00MC00MCA3OS03OSA3OSA3OS00MCA0MGMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMlMyNzAuMyA0ODAgMjgwIDQ4MGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTE0NGMwLTkuNy01LjgtMTguNS0xNC44LTIyLjJzLTE5LjMtMS43LTI2LjIgNS4ybC00MCA0MC03OS03OSA3OS03OSA0MCA0MGM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzQ0OCAyMDkuNyA0NDggMjAwbDAtMTQ0YzAtMTMuMy0xMC43LTI0LTI0LTI0TDI4MCAzMmMtOS43IDAtMTguNSA1LjgtMjIuMiAxNC44UzI1Ni4yIDY2LjEgMjYzIDczbDQwIDQwLTc5IDc5LTc5LTc5IDQwLTQwYzYuOS02LjkgOC45LTE3LjIgNS4yLTI2LjJTMTc3LjcgMzIgMTY4IDMyeiJdfSxhOXQ9a3NlLG45dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1hcnJvdyIsaWNvbjpbNTEyLDUxMixbXSwiZjEyNCIsIk00NzcuOSA3NS41YzQuNS0xMS44IDEuNy0yNS4yLTcuMi0zNC4xcy0yMi4zLTExLjgtMzQuMS03LjJsLTQxNiAxNjBDNy45IDE5OS0uMyAyMTEuMiAwIDIyNC43czkuMSAyNS40IDIxLjkgMjkuNmwxNzYuOCA1OC45IDU4LjkgMTc2LjhjNC4zIDEyLjggMTYuMSAyMS42IDI5LjYgMjEuOXMyNS43LTcuOSAzMC42LTIwLjVsMTYwLTQxNnoiXX0sbzl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpdHkiLGljb246WzU3Niw1MTIsWzEyNzk2MV0sImY2NGYiLCJNMzIwIDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzItNDggMCAwLTcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgNzItNjQgMCAwLTcyQzk2IDEwLjcgODUuMyAwIDcyIDBTNDggMTAuNyA0OCAyNGwwIDc0Yy0yNy42IDcuMS00OCAzMi4yLTQ4IDYyTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQ0OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0bC02NCAwIDAtMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0TDMyMCAwem02NCAxMTJsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnptLTE2IDgwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6bTE2IDExMmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2em0xMTItMTZjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMHpNMjU2IDMwNGwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2ek0yNDAgMTkyYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDB6TTEyOCAzMDRsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnpNMTEyIDE5MmM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAweiJdfSxzOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieC1yYXkiLGljb246WzUxMiw1MTIsW10sImY0OTciLCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmw0NDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDMyMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHptMjgwIDU2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTYtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwIDAgNDgtODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwIDAgNDgtNjQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2NCAwIDAgMTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2IDY0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDAgMC00OCA4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwIDAtNDggNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNjQgMCAwLTE2eiJdfSxsOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidW1icmVsbGEtYmVhY2giLGljb246WzUxMiw1MTIsWzEyNzk1OF0sImY1Y2EiLCJNNDk3LjUgMzQxLjFjLTUuOSAxNi43LTI1LjMgMjMtNDEuMSAxNS4xbC0xNzguMi04OS4xLTEuNiAzLjItODguOCAxNzcuNyAyOTIuMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4NC4yIDAgMTAzLjItMjA2LjMgMS42LTMuMi0xNjUuNC04Mi43Yy0xNS44LTcuOS0yMi40LTI3LjMtMTIuNS00MiA0NS45LTY4LjYgMTI0LjEtMTEzLjggMjEyLjktMTEzLjggMTQxLjQgMCAyNTYgMTE0LjYgMjU2IDI1NiAwIDI5LjgtNS4xIDU4LjUtMTQuNSA4NS4xeiJdfSxTc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtdG8tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24taW4iXSwiZjA5MCIsIk0zNTIgOTZsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yNTZjMC01My00My05Ni05Ni05NmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptLTkuNCAxODIuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMjQyLjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMTAuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxjOXQ9U3NlLGQ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkc2V0IixpY29uOls0NDgsNTEyLFtdLCJmNTkwIiwiTTIyNCA2NGMtNzkgMC0xNDQuNyA1Ny4zLTE1Ny43IDEzMi43IDkuMy0zIDE5LjMtNC43IDI5LjctNC43bDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYgMGMtNTMgMC05Ni00My05Ni05NmwwLTY0QzAgMTAwLjMgMTAwLjMgMCAyMjQgMFM0NDggMTAwLjMgNDQ4IDIyNGwwIDE2OC4xYzAgNjYuMy01My44IDEyMC0xMjAuMSAxMjBsLTg3LjktLjEtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMCA0MCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtMjAuOWMtMTQuMSA4LjItMzAuNSAxMi44LTQ4IDEyLjhsLTE2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZjMC0yNi41IDIxLjUtNDggNDgtNDhsMTYgMGMxMC40IDAgMjAuMyAxLjYgMjkuNyA0LjctMTMtNzUuMy03OC42LTEzMi43LTE1Ny43LTEzMi43eiJdfSx1OXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Bsb3RjaCIsaWNvbjpbNTEyLDUxMixbXSwiZjViYyIsIk0yMDguNSA2Mi4zbDI4LjEtMzYuOUMyNDguOCA5LjQgMjY3LjggMCAyODggMCAzMTYuNSAwIDM0MS42IDE4LjcgMzQ5LjggNDZsMTcuOCA1OS40YzEwLjMgMzQuNCAzNi4xIDYyIDY5LjggNzQuNmwzOS44IDE0LjljMjAuOSA3LjkgMzQuOCAyNy45IDM0LjggNTAuMiAwIDE2LjktNy45IDMyLjgtMjEuNSA0Mi45bC02Ny4zIDUwLjVjLTI0LjMgMTguMi0zNy4yIDQ3LjktMzMuOCA3OC4xbDIuNSAyMi43YzQuMyAzOC43LTI2IDcyLjYtNjUgNzIuNi0xNC44IDAtMjkuMy01LjEtNDAuOS0xNC4zbC01NS4zLTQ0LjNjLTQuNS0zLjYtOS4zLTYuNy0xNC41LTkuMi0xNS44LTcuOS0zMy43LTEwLjQtNTEtNy4zTDgyLjQgNDUxLjljLTM0LjYgNi4zLTY2LjQtMjAuMy02Ni40LTU1LjQgMC0xMy4yIDQuNy0yNiAxMy4xLTM2LjJsMTEuMi0xMy40YzE0LjYtMTcuNCAyMi42LTM5LjQgMjIuNi02Mi4xIDAtMTguOC01LjUtMzcuMi0xNS44LTUzTDguOCAxNzMuNUMzLjEgMTY0LjcgMCAxNTQuNCAwIDE0My45IDAgMTEwLjUgMzAuMSA4NS4xIDYzIDkwLjdsNTEuMyA4LjdjMzUuOSA2LjEgNzIuMi04LjIgOTQuMi0zNy4xeiJdfSx6c2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctYWx0LXVwIl0sImYzMGMiLCJNMTM3LjQtMjIuNmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxMjggMTI4YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45UzMwMC45IDE2MCAyODggMTYwbC02NCAwIDAgMzM2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTMzNi02NCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44Uy4yIDExNC41IDkuNCAxMDUuNGwxMjgtMTI4eiJdfSxwOXQ9enNlLGg5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZXhhZ29uLW5vZGVzIixpY29uOls0NDgsNTEyLFtdLCJlNjk5IiwiTTI0OCAxMDYuNmMxOC45LTkgMzItMjguMyAzMi01MC42YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2YzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTIuOCAxLjMtNS41IDIuOS04IDQuN2wtODAuMS00NS44YzEuNi0yMC44LTguNi00MS42LTI3LjktNTIuOEM1Ny4yIDk2IDIzIDEwNS4yIDcuNSAxMzJTMS4yIDE5MyAyOCAyMDguNWMxLjMgLjggMi42IDEuNSA0IDIuMWwwIDkwLjhjLTEuMyAuNi0yLjcgMS4zLTQgMi4xQzEuMiAzMTktOCAzNTMuMiA3LjUgMzgwUzU3LjIgNDE2IDg0IDQwMC41YzE5LjMtMTEuMSAyOS40LTMyIDI3LjgtNTIuOGw1MC41LTI4LjljLTExLjUtMTEuMi0xOS45LTI1LjYtMjMuOC00MS43TDg4IDMwNi4xYy0yLjYtMS44LTUuMi0zLjMtOC00LjdsMC05MC44YzIuOC0xLjMgNS41LTIuOSA4LTQuN2w4MC4xIDQ1LjhjLS4xIDEuNC0uMiAyLjgtLjIgNC4zYzAgMjIuMyAxMy4xIDQxLjYgMzIgNTAuNmwwIDk4LjhjLTE4LjkgOS0zMiAyOC4zLTMyIDUwLjZjMCAzMC45IDI1LjEgNTYgNTYgNTZzNTYtMjUuMSA1Ni01NmMwLTIyLjMtMTMuMS00MS42LTMyLTUwLjZsMC05OC44YzIuOC0xLjMgNS41LTIuOSA4LTQuN2w4MC4xIDQ1LjhjLTEuNiAyMC44IDguNiA0MS42IDI3LjggNTIuOGMyNi44IDE1LjUgNjEgNi4zIDc2LjUtMjAuNXM2LjMtNjEtMjAuNS03Ni41Yy0xLjMtLjgtMi43LTEuNS00LTIuMWwwLTkwLjhjMS40LS42IDIuNy0xLjMgNC0yLjFjMjYuOC0xNS41IDM2LTQ5LjcgMjAuNS03Ni41UzM5MC44IDk2IDM2NCAxMTEuNWMtMTkuMyAxMS4xLTI5LjQgMzItMjcuOCA1Mi44bC01MC42IDI4LjljMTEuNSAxMS4yIDE5LjkgMjUuNiAyMy44IDQxLjdMMzYwIDIwNS45YzIuNiAxLjggNS4yIDMuMyA4IDQuN2wwIDkwLjhjLTIuOCAxLjMtNS41IDIuOS04IDQuNmwtODAuMS00NS44Yy4xLTEuNCAuMi0yLjggLjItNC4zYzAtMjIuMy0xMy4xLTQxLjYtMzItNTAuNmwwLTk4Ljh6Il19LHNEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imhvc3BpdGFsIixpY29uOls1NzYsNTEyLFsxMjc5NzMsNjI1ODksImhvc3BpdGFsLWFsdCIsImhvc3BpdGFsLXdpZGUiXSwiZjBmOCIsIk0xMjggNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NCA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMCAwLTY0ek0yNzIgMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDgwIDk2IDAgMC04MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMHpNMTI4IDM2OGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2ek0xMTIgMjU2YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6TTUxMiAzNjhsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwek0yNjQgMTA0bDAgMzItMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDAgMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMiAzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMCAwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxmOXQ9c0QsbTl0PXNELGc5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24taGFyYXNzaW5nIixpY29uOls1NzYsNTEyLFtdLCJlNTQ5IiwiTTE5MiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTU5LjQgMzA0LjVMODggMjU2LjkgODggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjQ0LjcgNDcuNCA1Ny4xYzExLjMgMTMuNiAzMS41IDE1LjUgNDUuMSA0LjJzMTUuNS0zMS41IDQuMi00NS4xbC03My43LTg4LjljLTE4LjItMjItNDUuMy0zNC43LTczLjktMzQuN2wtMzUuOSAwYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOXpNNDgwIDI0MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00NjQgMzQ0bDAgNTguNy00MS40LTQxLjRjLTcuMy03LjMtMTcuNi0xMC42LTI3LjgtOXMtMTguOSA4LjEtMjMuNSAxNy4zbC00OCA5NmMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDI4LjEtNTYuMyA1NC43IDU0LjdjMTIuNCAxMi40IDI5LjEgMTkuMyA0Ni42IDE5LjMgMzYuNCAwIDY1LjktMjkuNSA2NS45LTY1LjlMNTc2IDM0NGMwLTMwLjktMjUuMS01Ni01Ni01NnMtNTYgMjUuMS01NiA1NnpNMjg4IDQ4YzAgOC44IDcuMiAxNiAxNiAxNmw1NiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bS0uOCA0OS43Yy03LjktNC0xNy41LS43LTIxLjUgNy4ycy0uNyAxNy41IDcuMiAyMS41bDQ4IDI0YzcuOSA0IDE3LjUgLjcgMjEuNS03LjJzLjctMTcuNS03LjItMjEuNWwtNDgtMjR6Il19LGI5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXRyZW5kLXVwIixpY29uOls1MTIsNTEyLFtdLCJlNTI5IiwiTTQ4MCA4YzAtMTMuMy0xMC43LTI0LTI0LTI0TDM1NC4yLTE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQzLjkgMC0xMTEuMyAxMTEuMy05NS4xLTgxLjVjLTktNy43LTIyLjItNy43LTMxLjIgMGwtMTEyIDk2Yy0xMC4xIDguNi0xMS4yIDIzLjgtMi42IDMzLjhzMjMuOCAxMS4yIDMzLjggMi42bDk2LjQtODIuNiA5Ni40IDgyLjZjOS41IDguMiAyMy43IDcuNiAzMi42LTEuM2wxMjctMTI3IDAgNDMuOWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0TDQ4MCA4ek00OCAyNTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDQxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTYwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDI1NnptNDcuMyA1NmMtMy40IDIwLjEtMTkuMiAzNi0zOS40IDM5LjQtNC40IC43LTgtMi45LTgtNy4zbDAtMzJjMC00LjQgMy42LTggOC04bDMyIDBjNC40IDAgOC4xIDMuNiA3LjMgOHptMCAxNDQuMWMuNyA0LjQtMi45IDgtNy4zIDhsLTMyIDBjLTQuNCAwLTgtMy42LTgtOGwwLTMyYzAtNC40IDMuNi04LjEgOC03LjMgMjAuMSAzLjQgMzYgMTkuMiAzOS40IDM5LjR6TTQ1NiA0MTYuN2M0LjQtLjcgOCAyLjkgOCA3LjNsMCAzMmMwIDQuNC0zLjYgOC04IDhsLTMyIDBjLTQuNCAwLTguMS0zLjYtNy4zLTggMy40LTIwLjEgMTkuMi0zNiAzOS40LTM5LjR6TTQxNi43IDMxMmMtLjctNC40IDIuOS04IDcuMy04bDMyIDBjNC40IDAgOCAzLjYgOCA4bDAgMzJjMCA0LjQtMy42IDguMS04IDcuMy0yMC4xLTMuNC0zNi0xOS4yLTM5LjQtMzkuNHpNMTkyIDM4NGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6Il19LENzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW4tcnVsZXIiLGljb246WzUxMiw1MTIsWyJwZW5jaWwtcnVsZXIiXSwiZjVhZSIsIk00MDQgMGMxOS4yIDAgMzcuNiA3LjYgNTEuMSAyMS4ybDM1LjcgMzUuN0M1MDQuNCA3MC40IDUxMiA4OC44IDUxMiAxMDhzLTcuNiAzNy42LTIxLjIgNTEuMUw0NDUuOSAyMDQgMzA4IDY2LjEgMzUyLjkgMjEuMkMzNjYuNCA3LjYgMzg0LjggMCA0MDQgMHpNNTguOSAzMTUuMUwyNzQuMSAxMDAgNDEyIDIzNy45IDE5Ni45IDQ1My4xYy0xMC43IDEwLjctMjQuMSAxOC41LTM4LjcgMjIuNkwzMC40IDUxMS4xYy04LjMgMi4zLTE3LjMgMC0yMy40LTYuMnMtOC41LTE1LjEtNi4yLTIzLjRMMzYuNCAzNTMuOGM0LjEtMTQuNiAxMS44LTI3LjkgMjIuNi0zOC43ek0yMjUuNCA4MC44TDgwLjggMjI1LjQgMTEuNyAxNTYuM2MtMTUuNi0xNS42LTE1LjYtNDAuOSAwLTU2LjZsODgtODhjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDBsNS45IDUuOS01Ni4zIDU2LjNjLTcuOCA3LjgtNy44IDIwLjUgMCAyOC4zczIwLjUgNy44IDI4LjMgMGw1Ni4zLTU2LjMgMzQuOSAzNC45ek00MzEuMiAyODYuNmwzNC45IDM0LjktNTYuMyA1Ni4zYy03LjggNy44LTcuOCAyMC41IDAgMjguM3MyMC41IDcuOCAyOC4zIDBsNTYuMy01Ni4zIDUuOSA1LjljMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTg4IDg4Yy0xNS42IDE1LjYtNDAuOSAxNS42LTU2LjYgMGwtNjkuMS02OS4xIDE0NC42LTE0NC42eiJdfSx2OXQ9Q3NlLHg5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZXBlYXQiLGljb246WzUxMiw1MTIsWzEyODI1N10sImYzNjMiLCJNNDcwLjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMzNTIgMTkuMSAzNTIgMzJsMCAzMi0xNjAgMEM4NiA2NCAwIDE1MCAwIDI1NiAwIDI3My43IDE0LjMgMjg4IDMyIDI4OHMzMi0xNC4zIDMyLTMyYzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4bDE2MCAwIDAgMzJjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWw2NC02NHpNNDEuNCAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlTMTYwIDQ5Mi45IDE2MCA0ODBsMC0zMiAxNjAgMGMxMDYgMCAxOTItODYgMTkyLTE5MiAwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMTYwIDAgMC0zMmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtNjQgNjR6Il19LHk5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib25lIixpY29uOls2NDAsNTEyLFsxMjk0NjBdLCJmNWQ3IiwiTTE5Ny40IDE2MGMtMy45IDAtNy4yLTIuOC04LjEtNi42LTEwLjItNDIuMS00OC4xLTczLjQtOTMuMy03My40LTUzIDAtOTYgNDMtOTYgOTYgMCAyOS4xIDEyLjkgNTUuMSAzMy4zIDcyLjcgNC4zIDMuNyA0LjMgMTAuOCAwIDE0LjUtMjAuNCAxNy42LTMzLjMgNDMuNy0zMy4zIDcyLjcgMCA1MyA0MyA5NiA5NiA5NiA0NS4yIDAgODMuMS0zMS4zIDkzLjMtNzMuNCAuOS0zLjggNC4yLTYuNiA4LjEtNi42bDI0NS4xIDBjMy45IDAgNy4yIDIuOCA4LjEgNi42IDEwLjIgNDIuMSA0OC4xIDczLjQgOTMuMyA3My40IDUzIDAgOTYtNDMgOTYtOTYgMC0yOS4xLTEyLjktNTUuMS0zMy4zLTcyLjctNC4zLTMuNy00LjMtMTAuOCAwLTE0LjUgMjAuNC0xNy42IDMzLjMtNDMuNyAzMy4zLTcyLjcgMC01My00My05Ni05Ni05Ni00NS4yIDAtODMuMSAzMS4zLTkzLjMgNzMuNC0uOSAzLjgtNC4yIDYuNi04LjEgNi42bC0yNDUuMSAweiJdfSxUc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlyZS1mbGFtZS1jdXJ2ZWQiLGljb246WzM4NCw1MTIsWyJmaXJlLWFsdCJdLCJmN2U0IiwiTTE1My42IDI5LjlsMTYtMjEuM0MxNzMuNiAzLjIgMTgwIDAgMTg2LjcgMCAxOTguNCAwIDIwOCA5LjYgMjA4IDIxLjNsMCAyMi4xYzAgMTMuMSA1LjQgMjUuNyAxNC45IDM0LjdMMzA3LjYgMTU5QzM1Ni40IDIwNS42IDM4NCAyNzAuMiAzODQgMzM3LjcgMzg0IDQzNCAzMDYgNTEyIDIwOS43IDUxMkwxOTIgNTEyQzg2IDUxMiAwIDQyNiAwIDMyMGwwLTMuOGMwLTQ4LjggMTkuNC05NS42IDUzLjktMTMwLjFsMy41LTMuNWM0LjItNC4yIDEwLTYuNiAxNi02LjYgMTIuNSAwIDIyLjYgMTAuMSAyMi42IDIyLjZMOTYgMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRsMC0zLjljMC0xOC03LjItMzUuMy0xOS45LTQ4bC0zOC42LTM4LjZjLTI0LTI0LTM3LjUtNTYuNy0zNy41LTkwLjcgMC0yNy43IDktNTQuOCAyNS42LTc2Ljl6Il19LHc5dD1Uc2UsX3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cy1zaW1wbGUiLGljb246WzQ0OCw1MTIsWyJidXMtYWx0Il0sImY1NWUiLCJNOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDM4NGMwIDI5LjggMjAuNCA1NC45IDQ4IDYybDAgMzRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyIDE5MiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTM0YzI3LjYtNy4xIDQ4LTMyLjIgNDgtNjJsMC0yODhjMC01My00My05Ni05Ni05Nkw5NiAwek02NCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw5NiAyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZ6TTk2IDMyMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTI1NiAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sTTl0PV9zZSxrOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVudXMtbWFycyIsaWNvbjpbNjQwLDUxMixbOTg5Ml0sImYyMjgiLCJNNDgwLTY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMlM0NjIuMyAwIDQ4MCAwTDUzMC43IDAgNDc0IDU2LjdjLTI2LjMtMTUuNy01Ny4xLTI0LjctOTAtMjQuNy0zNS40IDAtNjguNCAxMC41LTk2IDI4LjUtMjcuNi0xOC02MC42LTI4LjUtOTYtMjguNS05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NiAwIDg2LjMgNjIuMSAxNTguMSAxNDQgMTczLjFsMCAzNC45LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzQuOWMyMy4zLTQuMyA0NC45LTEzLjEgNjQtMjUuNiAyNy42IDE4IDYwLjYgMjguNSA5NiAyOC41IDk3LjIgMCAxNzYtNzguOCAxNzYtMTc2IDAtNDEuMS0xNC4xLTc5LTM3LjgtMTA5TDU3NiA0NS4zIDU3NiA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQ4MC02NHpNMzM2IDMwOS4yYzIwLjItMjguNiAzMi02My41IDMyLTEwMS4ycy0xMS44LTcyLjYtMzItMTAxLjJjMTQuNi02LjkgMzAuOC0xMC44IDQ4LTEwLjggNjEuOSAwIDExMiA1MC4xIDExMiAxMTJTNDQ1LjkgMzIwIDM4NCAzMjBjLTE3LjIgMC0zMy41LTMuOS00OC0xMC44ek0yODggMTUwLjNjMTAuMiAxNi45IDE2IDM2LjYgMTYgNTcuN3MtNS44IDQwLjktMTYgNTcuN2MtMTAuMi0xNi45LTE2LTM2LjYtMTYtNTcuN3M1LjgtNDAuOSAxNi01Ny43em0tNDgtNDMuNWMtMjAuMiAyOC42LTMyIDYzLjUtMzIgMTAxLjJzMTEuOCA3Mi42IDMyIDEwMS4yYy0xNC41IDYuOS0zMC44IDEwLjgtNDggMTAuOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMlMxMzAuMSA5NiAxOTIgOTZjMTcuMiAwIDMzLjUgMy45IDQ4IDEwLjh6Il19LFM5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJibGVuZGVyIixpY29uOls1MTIsNTEyLFtdLCJmNTE3IiwiTTAgNTZDMCAyNS4xIDI1LjEgMCA1NiAwTDQzNy42IDBjMjEuMyAwIDM2LjYgMjAuMyAzMC44IDQwLjhMNDU3LjEgODAgMzQ0IDgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDk5LjQgMC0xOC4zIDY0LTgxLjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw2Ny40IDAtMjcuNCA5Ni0yNTYgMC05LjEtOTYtNjIuOSAwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDU2ek0xMTQuMyAxOTJMMTAwLjYgNDggNTYgNDhjLTQuNCAwLTggMy42LTggOGwwIDEyOGMwIDQuNCAzLjYgOCA4IDhsNTguMyAwek0xMzYgMzg0bDI0MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTI0MCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwem0xMjAgODhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSx6OXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidSIsaWNvbjpbMzg0LDUxMixbMTE3XSwiNTUiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjRjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhzMTI4LTU3LjMgMTI4LTEyOGwwLTIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjI0YzAgMTA2LTg2IDE5Mi0xOTIgMTkyUzAgMzk0IDAgMjg4TDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6Il19LFpnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoYXJlIixpY29uOls1MTIsNTEyLFsibWFpbC1mb3J3YXJkIl0sImYwNjQiLCJNMzA3LjggMTguNGMtMTIgNS0xOS44IDE2LjYtMTkuOCAyOS42bDAgODAtMTEyIDBjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2IDAgMTEzLjMgODEuNSAxNjMuOSAxMDAuMiAxNzQuMSAyLjUgMS40IDUuMyAxLjkgOC4xIDEuOSAxMC45IDAgMTkuNy04LjkgMTkuNy0xOS43IDAtNy41LTQuMy0xNC40LTkuOC0xOS41LTkuNC04LjgtMjIuMi0yNi40LTIyLjItNTYuNyAwLTUzIDQzLTk2IDk2LTk2bDk2IDAgMCA4MGMwIDEyLjkgNy44IDI0LjYgMTkuOCAyOS42czI1LjcgMi4yIDM0LjktNi45bDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45eiJdfSxDOXQ9WmcsTHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lLWZsaXAiLGljb246WzUxMiw1MTIsWzEyODM4MSwicGhvbmUtYWx0Il0sImY4NzkiLCJNMzUxLjggMjVjNy44LTE4LjggMjguNC0yOC45IDQ4LjEtMjMuNWw1LjUgMS41YzY0LjYgMTcuNiAxMTkuOCA4MC4yIDEwMy43IDE1Ni40LTM3LjEgMTc1LTE3NC44IDMxMi43LTM0OS44IDM0OS44LTc2LjMgMTYuMi0xMzguOC0zOS4xLTE1Ni40LTEwMy43bC0xLjUtNS41Yy01LjQtMTkuNyA0LjctNDAuMyAyMy41LTQ4LjFsOTcuMy00MC41YzE2LjUtNi45IDM1LjYtMi4xIDQ3IDExLjhsMzguNiA0Ny4yYzcwLjMtMzQuOSAxMjYuOC05My4zIDE1OS4zLTE2NC45bC00NC4xLTM2LjFjLTEzLjktMTEuMy0xOC42LTMwLjQtMTEuOC00N0wzNTEuOCAyNXoiXX0sVDl0PUxzZSxfOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9pbGV0LXBvcnRhYmxlIixpY29uOlszMjAsNTEyLFtdLCJlNTgzIiwiTTAgNjRsMCAxNiAzMjAgMCAwLTE2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0em0yNCA2NEwwIDEyOCAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOCAyMjQgMCAwIDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTM2MC0yOTYgMHptMjI0IDk2bDI0IDAgMCA5Ni0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0eiJdfSxMOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXByZWduYW50IixpY29uOlszODQsNTEyLFtdLCJlMzFlIiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnptODAgMzIxLjJjOC42LTQuNSAxNi44LTEwIDI0LjMtMTYuNWw0LTMuNGMyMi42LTE5LjQgMzUuNy00Ny43IDM1LjctNzcuNiAwLTM1LjktMTguOC02OS4xLTQ5LjYtODcuNmwtMzAuNC0xOC4yIDAtMS44YzAtNDYuNS0zNy43LTg0LjEtODQuMS04NC4xLTI4LjEgMC01NC40IDE0LjEtNzAgMzcuNUwyMS40IDI3MC4yYy05LjggMTQuNy01LjggMzQuNiA4LjkgNDQuNHMzNC42IDUuOCA0NC40LTguOWwyOS00My41LTMwLjUgMTEzLjVjLTIuNiA5LjYtLjYgMTkuOSA1LjUgMjcuOFM5NCA0MTYgMTA0IDQxNmw4IDAgMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTYgMzIgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMTAuOHoiXX0sQTl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbiIsaWNvbjpbNTEyLDUxMixbNjI3NzRdLCIzYyIsIk00NzcuMSA1MC42YzcuNCAxNiAuNCAzNS4xLTE1LjYgNDIuNUwxMDguNCAyNTYgNDYxLjQgNDE5YzE2IDcuNCAyMyAyNi40IDE1LjYgNDIuNXMtMjYuNCAyMy00Mi41IDE1LjZsLTQxNi0xOTJDNy4zIDI3OS44IDAgMjY4LjUgMCAyNTZTNy4zIDIzMi4yIDE4LjYgMjI3bDQxNi0xOTJjMTYtNy40IDM1LjEtLjQgNDIuNSAxNS42eiJdfSxEOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3VwZXJzY3JpcHQiLGljb246WzU3Niw1MTIsW10sImYxMmIiLCJNNTQ0IDMyYzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40bC0zMiAxNkM0NDkuOSAyNy4zIDQ0My41IDQ2LjUgNDUxLjQgNjIuMyA0NTcgNzMuNSA0NjguMyA4MCA0ODAgODBsMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTI4ek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmwxNS4zIDAgODkuNiAxMjgtODkuNiAxMjgtMTUuMyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDBjMTAuNCAwIDIwLjItNS4xIDI2LjItMTMuNkwyNDAgMzExLjggMzI1LjggNDM0LjRjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNS4zIDAtODkuNi0xMjggODkuNi0xMjggMTUuMyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xMC40IDAtMjAuMiA1LjEtMjYuMiAxMy42TDI0MCAyMDAuMiAxNTQuMiA3Ny42QzE0OC4yIDY5LjEgMTM4LjQgNjQgMTI4IDY0TDk2IDY0eiJdfSxBc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXN0b3AiLGljb246WzUxMiw1MTIsWzYyMDk0LCJzdG9wLWNpcmNsZSJdLCJmMjhkIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMTYwbDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LEU5dD1Bc2UsRHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy11cC1kb3duIixpY29uOlsyNTYsNTEyLFsiYXJyb3dzLXYiXSwiZjA3ZCIsIk0xNTAuNi0yMi42Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgNzcuMyA5NiA0MzQuNyA1NC42IDM5My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRzMTYuNi0zLjQgMjIuNi05LjRsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTQxLjQgNDEuNCAwLTM1Ny41IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnoiXX0sJDl0PURzZSxFc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9vLXN0b3JtIixpY29uOls1MTIsNTEyLFsicG9vLWJvbHQiXSwiZjc1YSIsIk0yNjguOS0zMS44Yy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuM2MyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xIDAgMjEuNy04LjUgMzcuMi0yMS45IDQ3LjYtMTMuOSAxMC44LTM0LjEgMTctNTguMSAxN2wtMjQgMGMtNDguNiAwLTg4IDM5LjQtODggODggMCAxNC44IDMuNyAyOC44IDEwLjIgNDEuMS00MiA2LjYtNzQuMiA0My03NC4yIDg2LjkgMCA0Ni42IDM2LjIgODQuNyA4MS45IDg3LjggMy4xLTEyLjQgOS45LTIzLjggMTkuNi0zMi41TDI0Mi43IDIyNWMxMi4yLTEwLjkgMjgtMTcgNDQuNC0xNyA0NC42IDAgNzYuNSA0MyA2My43IDg1LjdsLTEyLjcgNDIuNGMyOC44IDEuMiA1Mi43IDIxLjEgNTkuOCA0Ny45bDI2LjIgMGM0OC42IDAgODgtMzkuNCA4OC04OCAwLTQzLjktMzIuMS04MC4zLTc0LjItODYuOSA2LjUtMTIuMyAxMC4yLTI2LjIgMTAuMi00MS4xIDAtNDguNi0zOS40LTg4LTg4LTg4bC05LjQgMGMuOS01LjQgMS40LTEwLjkgMS40LTE2LjYgMC00OC43LTM2LjEtODguOS04My4xLTk1LjJ6TTE0NC42IDQxNmw2MS44IDAtMzEuMiAxMDQuMWMtMy42IDExLjkgNS4zIDIzLjkgMTcuOCAyMy45IDQuNiAwIDktMS43IDEyLjQtNC43TDM0Ni41IDQxMi45YzMuNS0zLjEgNS41LTcuNiA1LjUtMTIuNCAwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZsLTYxLjggMCAzMS4yLTEwNC4xYzMuNi0xMS45LTUuMy0yMy45LTE3LjgtMjMuOS00LjYgMC05IDEuNy0xMi40IDQuN0wxMzMuNSAzODcuMWMtMy41IDMuMS01LjUgNy42LTUuNSAxMi40IDAgOS4yIDcuNCAxNi42IDE2LjYgMTYuNnoiXX0sSTl0PUVzZSxQOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlkZW8tc2xhc2giLGljb246WzU3Niw1MTIsW10sImY0ZTIiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTUzLTE1MyAwLTIyMi4yYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOS44IDY0IDQxLTI0Ljl6TTMyIDEyOGwwIDI1NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGM3LjggMCAxNS4zLTEuNCAyMi4yLTRMMzYgMTA1LjhjLTIuNiA2LjktNCAxNC40LTQgMjIuMnpNNDY0IDMzNmw3My41IDU4LjhjNC4yIDMuNCA5LjQgNS4yIDE0LjggNS4yIDEzLjEgMCAyMy43LTEwLjYgMjMuNy0yMy43bDAtMjQwLjZjMC0xMy4xLTEwLjYtMjMuNy0yMy43LTIzLjctNS40IDAtMTAuNiAxLjgtMTQuOCA1LjJMNDY0IDE3NiA0NjQgMzM2eiJdfSxsRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUteG1hcmsiLGljb246WzQ0OCw1MTIsWzEwMDYyLCJ0aW1lcy1zcXVhcmUiLCJ4bWFyay1zcXVhcmUiXSwiZjJkMyIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem03MSAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LE45dD1sRCxGOXQ9bEQsJHNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1kcm9wbGV0IixpY29uOls1NzYsNTEyLFsiaGFuZC1ob2xkaW5nLXdhdGVyIl0sImY0YzEiLCJNMjc1LjUgNi42TDIwOS4yIDEwM0MxOTggMTE5LjMgMTkyIDEzOC42IDE5MiAxNTguM2wwIDEuN2MwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2bDAtMS43YzAtMTkuOC02LTM5LTE3LjItNTUuM0wzMDAuNSA2LjZDMjk3LjcgMi41IDI5MyAwIDI4OCAwcy05LjcgMi41LTEyLjUgNi42ek0xMDkuMyAzNDEuNUw2Ni43IDM4NCAzMiAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTYgMjgwIDQxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXoiXX0sTzl0PSRzZSxjRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3b24tc2lnbiIsaWNvbjpbNTEyLDUxMixbODM2MSwia3J3Iiwid29uIl0sImYxNTkiLCJNNjIuNCA1My45QzU2LjggMzcuMSAzOC43IDI4LjEgMjEuOSAzMy42Uy0zLjkgNTcuNCAxLjcgNzQuMUw1Ni45IDI0MCAzMiAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAuOSAwIDU2LjcgMTcwLjFjNC41IDEzLjUgMTcuNCAyMi40IDMxLjYgMjEuOXMyNi40LTEwLjQgMjkuOC0yNC4yTDIzMyAyODggMjc5IDI4OCAzMjEgNDU1LjhjMy40IDEzLjggMTUuNiAyMy43IDI5LjggMjQuMnMyNy4xLTguNCAzMS42LTIxLjlMNDM5LjEgMjg4IDQ4MCAyODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI0LjkgMCA1NS4zLTE2NS45YzUuNi0xNi44LTMuNS0zNC45LTIwLjItNDAuNXMtMzQuOSAzLjUtNDAuNSAyMC4ybC02MiAxODYuMS01NC42IDAtNDUuOS0xODMuOEMyODMuNSA0MiAyNzAuNyAzMiAyNTYgMzJzLTI3LjUgMTAtMzEgMjQuMkwxNzkgMjQwIDEyNC40IDI0MCA2Mi40IDUzLjl6bTc4IDIzNC4xbDI2LjYgMC0xMS40IDQ1LjYtMTUuMi00NS42ek0yNDUgMjQwbDExLTQ0LjEgMTEgNDQuMS0yMiAwem0xMDAgNDhsMjYuNiAwLTE1LjIgNDUuNi0xMS40LTQ1LjZ6Il19LFI5dD1jRCxCOXQ9Y0QsSDl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9iamVjdC11bmdyb3VwIixpY29uOls2NDAsNTEyLFtdLCJmMjQ4IiwiTTMyIDExOS40QzEyLjkgMTA4LjQgMCA4Ny43IDAgNjQgMCAyOC43IDI4LjcgMCA2NCAwIDg3LjcgMCAxMDguNCAxMi45IDExOS40IDMybDIwOS4xIDBjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMiAzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDIzLjctMTIuOSA0NC40LTMyIDU1LjRsMCAxMTMuMWMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjA5LjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0xMTMuMXpNMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDExMy4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyMDkuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTExMy4xYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZ6TTU0NCAyNzkuNGMtOS43LTUuNi0xNy44LTEzLjctMjMuNC0yMy40bC0yOS4yIDBjLTUuMy0xNy43LTE0LjgtMzMuNS0yNy40LTQ2LjRsMC0xNy42IDU2LjYgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDExMy4xYzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjQgMCAzNS4zLTI4LjcgNjQtNjQgNjQtMjMuNyAwLTQ0LjQtMTIuOS01NS40LTMybC0yMDkuMSAwYy0xMS4xIDE5LjEtMzEuNyAzMi01NS40IDMyLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNGwwLTI0LjYgNjQgMCAwIDI0LjZjOS43IDUuNiAxNy44IDEzLjcgMjMuNCAyMy40bDIwOS4xIDBjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40bDAtMTEzLjF6Il19LHE5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50IixpY29uOls1MTIsNTEyLFsxMjg0ODksNjE2NjldLCJmMDc1IiwiTTUxMiAyNDBjMCAxMzIuNS0xMTQuNiAyNDAtMjU2IDI0MC0zNy4xIDAtNzIuMy03LjQtMTA0LjEtMjAuN0wzMy41IDUxMC4xYy05LjQgNC0yMC4yIDEuNy0yNy4xLTUuOFMtMiA0ODUuOCAyLjggNDc2LjhsNDguOC05Mi4yQzE5LjIgMzQ0LjMgMCAyOTQuMyAwIDI0MCAwIDEwNy41IDExNC42IDAgMjU2IDBTNTEyIDEwNy41IDUxMiAyNDB6Il19LGo5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaWxsLWF2YWxhbmNoZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUwNyIsIk00NDAuMSA0MDEuOWMzNC4yIDIzLjEgODEuMSAxOS41IDExMS40LTEwLjggMzQuNC0zNC40IDM0LjQtOTAuMSAwLTEyNC41LTI3LjgtMjcuOC02OS41LTMzLjEtMTAyLjYtMTYtMTEuOCA2LjEtMTYuNCAyMC42LTEwLjMgMzIuM3MyMC42IDE2LjQgMzIuMyAxMC4zYzE1LjEtNy44IDM0LTUuMyA0Ni42IDcuMyAxNS42IDE1LjYgMTUuNiA0MC45IDAgNTYuNnMtNDAuOSAxNS42LTU2LjYgMGwtODEuNy04MS43YzIyLjMtMTQuMiAzNy4xLTM5LjEgMzcuMS02Ny41IDAtMzMuOS0yMS4xLTYyLjktNTAuOS03NC41IDEuOS02LjggMi45LTE0IDIuOS0yMS41IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI3LjMgMC01MS41IDEzLjctNjUuOSAzNC42LTUuOC0yMC0yNC4yLTM0LjYtNDYuMS0zNC42LTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgNCAuNSA3LjkgMS40IDExLjZMNDQwLjEgNDAxLjl6TTQ4MC40IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNjguNyA4N0M0My41IDYxLjggLjQgNzkuNyAuNCAxMTUuM0wuNCA0MzJjMCA0NC4yIDM1LjggODAgODAgODBsMzE2LjcgMGMzNS42IDAgNTMuNS00My4xIDI4LjMtNjguM0w2OC43IDg3eiJdfSxWOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXRvLWV5ZSIsaWNvbjpbNjQwLDUxMixbXSwiZTRiZiIsIk0xNzYgNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzOC4xLTYzLTYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMyMS43IDU1LjYgMzEgNjVsNjMgNjMtMzguMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDk2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC05NnptMCA0MDBsMC05NmMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtOTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzOC4xIDAtNjMgNjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw2My02MyAwIDM4LjFjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHptMzEyIDI0YzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMzguMSA2MyA2M2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTYzLTYzIDM4LjEgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHpNNDY0IDU2bDAgOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzguMSAwIDYzLTYzYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTYzIDYzIDAtMzguMWMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHpNMzIwIDEyMGMtNTcuMyAwLTk5LjQgMzQtMTI1LjYgNjQuMy0yMCAyMy4xLTMyLjQgNDUuOC0zNy42IDU2LjEtMi41IDUtNC45IDkuNy00LjkgMTUuNnMyLjMgMTAuNiA0LjkgMTUuNmM1LjIgMTAuMyAxNy42IDMzIDM3LjYgNTYuMSAyNi4yIDMwLjMgNjguMiA2NC4zIDEyNS42IDY0LjNzOTkuNC0zNCAxMjUuNi02NC4zYzIwLTIzLjEgMzIuNC00NS44IDM3LjYtNTYuMSAyLjUtNSA0LjktOS43IDQuOS0xNS42cy0yLjMtMTAuNi00LjktMTUuNmMtNS4yLTEwLjMtMTcuNi0zMy0zNy42LTU2LjEtMjYuMi0zMC4zLTY4LjItNjQuMy0xMjUuNi02NC4zek0yNTYgMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sVTl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNub3dwbG93IixpY29uOls2NDAsNTEyLFtdLCJmN2QyIiwiTTEyOCAxNjBsMC05NmMwLTM1LjMgMjguNy02NCA2NC02NEwyOTYuNCAwYzI0LjIgMCA0Ni40IDEzLjcgNTcuMiAzNS40bDg3LjYgMTc1LjFjNC40IDguOSA2LjggMTguNyA2LjggMjguNmwwIDU2LjkgODAgMCAwLTgwYzAtNDguNiAzOS40LTg4IDg4LTg4IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDIwOGMwIDIyLjEgMTcuOSA0MCA0MCA0MCAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtNDguNiAwLTg4LTM5LjQtODgtODhsMC04MC02MyAwYzkuNSAxNi41IDE1IDM1LjYgMTUgNTYgMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTIyNCAwYy02MS45IDAtMTEyLTUwLjEtMTEyLTExMiAwLTMwLjUgMTIuMi01OC4yIDMyLTc4LjRMNjQgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0em05MS43IDM0LjlsNDMuNiAyOS4xIDExMy4yIDAtODAtMTYwLTEwNC40IDAgMCAxMDguOCAyNy43IDIyLjF6TTQxNiA0MDBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTIyNCAwYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4bDIyNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4em0tMjgwIDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMjE2LTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjMyIDQwMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxXOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtZ2FudHQiLGljb246WzUxMiw1MTIsW10sImUwZTQiLCJNNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0MDBjMCA0NC4yIDM1LjggODAgODAgODBsNDAwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgNDE2Yy04LjggMC0xNi03LjItMTYtMTZMNjQgNjR6bTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMHptNjQgMTEyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMHpNMzg0IDI4OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAweiJdfSxJc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlkZW8iLGljb246WzU3Niw1MTIsWyJ2aWRlby1jYW1lcmEiXSwiZjAzZCIsIk05NiA2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjU2IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgNjR6TTQ2NCAzMzZsNzMuNSA1OC44YzQuMiAzLjQgOS40IDUuMiAxNC44IDUuMiAxMy4xIDAgMjMuNy0xMC42IDIzLjctMjMuN2wwLTI0MC42YzAtMTMuMS0xMC42LTIzLjctMjMuNy0yMy43LTUuNCAwLTEwLjYgMS44LTE0LjggNS4yTDQ2NCAxNzYgNDY0IDMzNnoiXX0sRzl0PUlzZSxZOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtcGF3biIsaWNvbjpbMzg0LDUxMixbOTgyM10sImY0NDMiLCJNMTkyLTMyYzY2LjMgMCAxMjAgNTMuNyAxMjAgMTIwIDAgMjctOC45IDUxLjktMjQgNzIgMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjcgMCAyNi43IDE2MCA1Ni4yIDcwLjNjNSA2LjMgNy44IDE0LjEgNy44IDIyLjIgMCAxOS42LTE1LjkgMzUuNS0zNS41IDM1LjVMNTEuNSA1MTJjLTE5LjYgMC0zNS41LTE1LjktMzUuNS0zNS41IDAtOC4xIDIuNy0xNS45IDcuOC0yMi4yTDgwIDM4NCAxMDYuNyAyMjQgOTYgMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYy0xNS4xLTIwLjEtMjQtNDUtMjQtNzIgMC02Ni4zIDUzLjctMTIwIDEyMC0xMjB6Il19LFo5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzeW5hZ29ndWUiLGljb246WzU3Niw1MTIsWzEyODMzM10sImY2OWIiLCJNMTYgODBjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGwwIDMyLTEyOCAwIDAtMzJ6bTAgMzY4bDAtMjg4IDEyOCAwIDEyNi4yLTg0LjJjMTAuNy03LjIgMjQuOC03LjIgMzUuNSAwbDEyNi4yIDg0LjIgMTI4IDAgMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NHpNNTYwIDExMmwtMTI4IDAgMC0zMmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzJ6TTIyNCAzODRsMCA4MCAxMjggMCAwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0em02NC0xNTJhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxYOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY2lyY2xlLWNoZWNrIixpY29uOls1NzYsNTEyLFtdLCJlNGQyIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTEwLjUtMTQuNi0xOS0zMC43LTI1LjEtNDhsLTc0LjkgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMiAwIDQgLjIgNS45IC41IDYtMjMuNiAxNi4zLTQ1LjQgMzAuMS02NC41bC00IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDRjMjcuNS0xOS44IDYwLjMtMzIuNCA5Ni0zNS40TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LFE5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYWxlbmRhci1wbHVzIixpY29uOls0NDgsNTEyLFtdLCJmMjcxIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMCAwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OCA0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LFBzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGVlbGNoYWlyLW1vdmUiLGljb246WzQ0OCw1MTIsWyJ3aGVlbGNoYWlyLWFsdCJdLCJlMmNlIiwiTTMxMiA1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTIwNS40IDEyNC4xYy02LjQtNS4yLTE1LjYtNC43LTIxLjQgMS4xbC0zMy40IDMzLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDEzOC44IDgwYzI5LTI5IDc1LjItMzEuNCAxMDctNS41bDgxLjMgNjZjMjEuNCAxNy40IDIzLjggNDkuMiA1LjIgNjkuNWwtNDEuOCA0NiA5OCAwYzMwLjMgMCA1MyAyNy43IDQ3LjEgNTcuNEw0MDcuNCA0NTQuM2MtMy41IDE3LjMtMjAuMyAyOC42LTM3LjcgMjUuMXMtMjguNi0yMC4zLTI1LjEtMzcuN0wzNjkgMzIwIDMxNi44IDMyMGMyLjEgMTAuMyAzLjIgMjEgMy4yIDMyIDAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDQwLjQgMCAzNTIgNzEuNiAxOTIgMTYwIDE5MmM2IDAgMTEuOSAuMyAxNy44IDFsNTAuNC01MC40LTIyLjctMTguNXpNMTYwIDQ0OGE5NiA5NiAwIDEgMCAwLTE5MiA5NiA5NiAwIDEgMCAwIDE5MnoiXX0sSjl0PVBzZSxLOXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1zaGllbGQiLGljb246WzU3Niw1MTIsW10sImY1MDUiLCJNMjI0IDI0OGExMjAgMTIwIDAgMSAwIDAtMjQwIDEyMCAxMjAgMCAxIDAgMCAyNDB6bS0yOS43IDU2Qzk1LjggMzA0IDE2IDM4My44IDE2IDQ4Mi4zIDE2IDQ5OC43IDI5LjMgNTEyIDQ1LjcgNTEybDI1MS41IDBDMjYxIDQ2OS40IDI0MCA0MTQuNSAyNDAgMzU2LjRsMC0zMS4xYzAtNy4zIDEtMTQuNSAyLjktMjEuM2wtNDguNiAwem0yNTEgMTg0LjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAweiJdfSxlZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9sZCIsaWNvbjpbMzg0LDUxMixbXSwiZjAzMiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsMzIgMCAwIDMyMC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIyNCAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNDYuNS0yNC44LTg3LjMtNjItMTA5LjcgMTguNy0yMi4zIDMwLTUxIDMwLTgyLjMgMC03MC43LTU3LjMtMTI4LTEyOC0xMjhMMzIgMzJ6TTI4OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTk2IDAgMC0xMjggOTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NHpNMTI4IDQxNmwwLTEyOCAxMjggMGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGwtMTI4IDB6Il19LE5zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1wdWxzZSIsaWNvbjpbNTEyLDUxMixbImhlYXJ0YmVhdCJdLCJmMjFlIiwiTTI1NiAxMDcuOUwyNDEgODcuMUMyMTYgNTIuNSAxNzUuOSAzMiAxMzMuMSAzMiA1OS42IDMyIDAgOTEuNiAwIDE2NS4xbDAgMi42YzAgMjMuNiA2LjIgNDggMTYuNiA3Mi4zbDEwNiAwYzMuMiAwIDYuMS0xLjkgNy40LTQuOWwzMS44LTc2LjNjMy43LTguOCAxMi4zLTE0LjYgMjEuOC0xNC44czE4LjMgNS40IDIyLjIgMTQuMWw1MS4zIDExMy45IDQxLjQtODIuOGM0LjEtOC4xIDEyLjQtMTMuMyAyMS41LTEzLjNzMTcuNCA1LjEgMjEuNSAxMy4zbDIzLjIgNDYuM2MxLjQgMi43IDQuMSA0LjQgNy4yIDQuNGwxMjMuNiAwYzEwLjUtMjQuMyAxNi42LTQ4LjcgMTYuNi03Mi4zbDAtMi42QzUxMiA5MS42IDQ1Mi40IDMyIDM3OC45IDMyIDMzNi4yIDMyIDI5NiA1Mi41IDI3MSA4Ny4xbC0xNSAyMC43ek00NjkuNiAyODhsLTk3LjggMGMtMjEuMiAwLTQwLjYtMTItNTAuMS0zMWwtMS43LTMuNC00Mi41IDg1LjFjLTQuMSA4LjMtMTIuNyAxMy41LTIyIDEzLjNzLTE3LjYtNS43LTIxLjQtMTQuMWwtNDkuMy0xMDkuNS0xMC41IDI1LjJjLTguNyAyMC45LTI5LjEgMzQuNS01MS43IDM0LjVsLTgwLjIgMGM0Ny4yIDczLjggMTIzIDE0MS43IDE3MC40IDE3Ny45IDEyLjQgOS40IDI3LjYgMTQuMSA0My4xIDE0LjFzMzAuOC00LjYgNDMuMS0xNC4xQzM0Ni42IDQyOS43IDQyMi40IDM2MS44IDQ2OS42IDI4OHoiXX0sdGd0PU5zZSxGc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXJvb3QtdmFyaWFibGUiLGljb246WzU3Niw1MTIsWyJzcXVhcmUtcm9vdC1hbHQiXSwiZjY5OCIsIk0yODIuNiA3OC4xYzgtMjcuMyAzMy00Ni4xIDYxLjQtNDYuMWwyMDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzNDQgOTYgMjM4LjcgNDU3Yy0zLjYgMTIuMy0xNC4xIDIxLjItMjYuOCAyMi44cy0yNS4xLTQuNi0zMS41LTE1LjZMNzcuNiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1LjYgMGMyMi44IDAgNDMuOCAxMi4xIDU1LjMgMzEuOGw2NS4yIDExMS44IDg0LjQtMjg5LjV6TTM5My40IDIzMy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDQxLjQgNDEuNCA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtNDEuNCA0MS40IDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40LTQxLjQgNDEuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsNDEuNC00MS40LTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6Il19LHJndD1Gc2UsT3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWJ1YmJsZXMiLGljb246WzUxMiw1MTIsWyJoYW5kcy13YXNoIl0sImUwNWUiLCJNMzg0IDY0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptOTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMTI4IDQ2NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0wIDE2MGwuMSA3Mi42YzAgNDQuOCAxNy42IDg3LjEgNDcuOSAxMTguNCAuMy03NyA0MC4xLTE0OC40IDEwNS40LTE4OS4zbDEuOS0xLjJjLTIuNS0zLjctMi44LTguNi0uNC0xMi43bDYyLTEwNy40YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44UzE4MiA1IDE3NS40IDE2LjVsLTY4IDExNy44IDAgMCAwIDAtNDMuMyA3NSAwLTQ5LjNjMC0xNy43LTE0LjQtMzItMzItMzJTMCAxNDIuNCAwIDE2MHptMjEzLjYtMzUuOWMxNC4xLTguOCAyOS44LTEyLjcgNDUuMi0xMi4xbDM2LjUtNjMuM2M2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4LjhsLTY3LjEgMTE2LjIgMjctMTYuOXptODYuNS0zNS43bC0xNi40IDI4LjRjMTUuMSA1LjUgMjguNiAxNS42IDM4LjMgMjkuN2wxOS43LTM0LjJjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44em00Ni40IDYzLjdsLTEyLjUgMjEuN2MyIDguNiAyLjUgMTcuNSAxLjcgMjYuMWw0LjMgMCAwIDAgMzQuNCAwIDEzLjctMjMuOGM2LjYtMTEuNSAyLjctMjYuMi04LjgtMzIuOHMtMjYuMi0yLjctMzIuOCA4Ljh6TTI4My4xIDE3NWMtOS40LTE1LTI5LjEtMTkuNS00NC4xLTEwLjJsLTYwLjIgMzcuNkMxMjcuMyAyMzQuNyA5NiAyOTEuMiA5NiAzNTJsMCA4YzAgOC45IC44IDE3LjYgMi4yIDI2LjEgMzUuNCA4LjIgNjEuOCA0MCA2MS44IDc3LjkgMCA2LjMtLjcgMTIuNS0yLjEgMTguNCAyNS4yIDE4LjYgNTYuNCAyOS42IDkwLjEgMjkuNmwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtOTIgMGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwxMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI0IDBjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJsMTU2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE1NiAwYy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEybDEyNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMzYgMCAwIDAgMCAwLTkzLjIgMCA0Ni4yLTI4LjljMTUtOS40IDE5LjUtMjkuMSAxMC4yLTQ0LjF6Il19LGlndD1Pc2UsYWd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcmtlciIsaWNvbjpbNTEyLDUxMixbXSwiZjVhMSIsIk00MDguOCAwYy0yNy40IDAtNTMuNiAxMC45LTczIDMwLjJMMzE4LjEgNDggMzA1IDM0LjljLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMEwxMDMgMTM1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBMMjM3LjEgNjguOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwyODQuMSA4MS45IDE4NCAxODIuMSAzMjkuOSAzMjggNDgxLjggMTc2LjJjMTkuNC0xOS40IDMwLjItNDUuNiAzMC4yLTczIDAtNTctNDYuMi0xMDMuMi0xMDMuMi0xMDMuMnpNMTAyLjQgMjYzLjdjLTQ5LjkgNDkuOS04My4zIDExNC05NS41IDE4My41TC40IDQ4My44Qy0xIDQ5MS42IDEuNSA0OTkuNCA3IDUwNXMxMy40IDggMjEuMSA2LjdsMzYuNy02LjVjNjkuNS0xMi4zIDEzMy42LTQ1LjYgMTgzLjUtOTUuNUwyOTYgMzYxLjkgMTUwLjEgMjE2IDEwMi40IDI2My43eiJdfSxuZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkIixpY29uOlszODQsNTEyLFsxMjgyMDNdLCJmMzI4IiwiTTMyMCAzMmwtOC42IDBDMzAwLjQgMTIuOSAyNzkuNyAwIDI1NiAwTDEyOCAwQzEwNC4zIDAgODMuNiAxMi45IDcyLjYgMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM1MmMwLTM1LjMtMjguNy02NC02NC02NHpNMTM2IDExMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTEyIDB6Il19LG9ndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFjZS1vZi13b3JzaGlwIixpY29uOls1MTIsNTEyLFtdLCJmNjdmIiwiTTE2MCA3OWwwIDgxLTQ0LjggMzMuNkMxMDMuMSAyMDIuNyA5NiAyMTYuOSA5NiAyMzJsMCA0MC02MC42IDMwLjNDMTMuNyAzMTMuMiAwIDMzNS4zIDAgMzU5LjZMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjQgNzQuNyAwIDg1LjQgMCAzMjAgMGw2NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtODguNGMwLTI0LjItMTMuNy00Ni40LTM1LjQtNTcuMkw0MTYgMjcyIDQxNiAyMzJjMC0xNS4xLTcuMS0yOS4zLTE5LjItMzguNEwzNTIgMTYwIDM1MiA3OWMwLTkuNS00LjItMTguNS0xMS41LTI0LjZMMjcxLjQtMy4yYy04LjktNy40LTIxLjgtNy40LTMwLjcgMEwxNzEuNSA1NC40QzE2NC4yIDYwLjUgMTYwIDY5LjUgMTYwIDc5em05NiAyNDFjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4MC0xMjggMCAwLTgwYzAtMzUuMyAyOC43LTY0IDY0LTY0eiJdfSxzZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FubmFiaXMiLGljb246WzUxMiw1MTIsW10sImY1NWYiLCJNMjU2IDBjNS4zIDAgMTAuMyAyLjcgMTMuMyA3LjEgMTUuOCAyMy41IDM2LjcgNjMuNyA0OS4yIDEwOSA3LjMgMjYuNCAxMS44IDU1LjMgMTAuMyA4NCAxMS42LTguOSAyMy43LTE2LjcgMzUuOS0yMy43IDQxLTIzLjMgODQuNC0zNi45IDExMi4yLTQyLjUgNS4yLTEgMTAuNyAuNiAxNC40IDQuNHM1LjQgOS4yIDQuNCAxNC41Yy01LjYgMjcuNy0xOS4zIDcwLjktNDIuNyAxMTEuNy05LjEgMTUuOS0xOS45IDMxLjctMzIuNSA0Ni4zIDI3LjkgNi42IDUyLjUgMTcuMiA2Ny4zIDI1LjQgNS4xIDIuOCA4LjIgOC4yIDguMiAxNHMtMy4yIDExLjItOC4yIDE0Yy0xNS4yIDguNC00MC45IDE5LjUtNjkuOCAyNi4xLTIwLjIgNC42LTQyLjkgNy4yLTY1LjIgNC42bDguMyAzMy4yYzEuNSA2LjEtLjYgMTIuNS01LjUgMTYuNHMtMTEuNiA0LjYtMTcuMiAxLjhMMjgwIDQxNy4yIDI4MCA0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03MC44LTU4LjUgMjkuMWMtNS42IDIuOC0xMi4zIDIuMS0xNy4yLTEuOHMtNy0xMC4zLTUuNS0xNi40bDguMy0zMy4yYy0yMi4yIDIuNi00NSAwLTY1LjItNC42LTI4LjktNi42LTU0LjUtMTcuNi02OS44LTI2LjEtNS4xLTIuOC04LjItOC4yLTguMi0xNHMzLjItMTEuMiA4LjItMTRsNi4yLTMuM2MxNS03LjYgMzYuOC0xNi40IDYxLjEtMjIuMi0xMi41LTE0LjUtMjMuMy0zMC40LTMyLjQtNDYuMi0yMy40LTQwLjgtMzcuMS04NC00Mi43LTExMS43LTEuMS01LjIgLjYtMTAuNyA0LjQtMTQuNXM5LjItNS40IDE0LjQtNC40YzI3LjkgNS41IDcxLjIgMTkuMiAxMTIuMiA0Mi41IDEyLjIgNi45IDI0LjMgMTQuOCAzNS44IDIzLjctMS40LTI4LjcgMy4xLTU3LjYgMTAuMy04NCAxMi41LTQ1LjMgMzMuNC04NS41IDQ5LjItMTA5bDEuMi0xLjZDMjQ2LjkgMiAyNTEuMyAwIDI1NiAweiJdfSxsZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLXJvb2YiLGljb246WzU3Niw1MTIsW10sImU1MzciLCJNMzAyLjMtMTIuNmMtOS00LjUtMTkuNi00LjUtMjguNiAwbC0yNTYgMTI4QzEuOSAxMjMuMy00LjUgMTQyLjUgMy40IDE1OC4zczI3LjEgMjIuMiA0Mi45IDE0LjNMMjg4IDUxLjggNTI5LjcgMTcyLjZjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45bC0yNTYtMTI4ek0yODggMjcyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyem0wIDQ4Yy01MyAwLTk2IDQzLTk2IDk2bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMmMwLTUzLTQzLTk2LTk2LTk2ek0xNjAgMjU2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTExMiAzMzZjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMzMuMWMwIDE3IDEzLjggMzAuOSAzMC45IDMwLjlsODcuOCAwYy00LjMtOS44LTYuNy0yMC42LTYuNy0zMmwwLTQ4YzAtMTguNCAzLjUtMzYgOS44LTUyLjItMTIuMi03LjUtMjYuNS0xMS44LTQxLjgtMTEuOHpNNDI1LjQgNDgwbDg3LjggMGMxNyAwIDMwLjktMTMuOCAzMC45LTMwLjlsMC0zMy4xYzAtNDQuMi0zNS44LTgwLTgwLTgwLTE1LjMgMC0yOS42IDQuMy00MS44IDExLjggNi4zIDE2LjIgOS44IDMzLjggOS44IDUyLjJsMCA0OGMwIDExLjQtMi40IDIyLjItNi43IDMyeiJdfSxjZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlzZWFzZSIsaWNvbjpbNTEyLDUxMixbXSwiZjdmYSIsIk0yMzYuNSAyOS40TDIyNCA0OGMtMjAgMzAtNTMuNiA0OC04OS43IDQ4TDY4IDk2Yy0zNy41IDAtNjcuOSAzMC40LTY3LjkgNjcuOSAwIDE4IDcuMiAzNS4yIDE5LjkgNDcuOWwyNyAyN2MxMSAxMSAxNy4yIDI1LjkgMTcuMiA0MS41IDAgMTUuOC02LjQgMzAuOS0xNy43IDQyTDMzLjQgMzM1LjFjLTExLjEgMTAuOC0xNy4zIDI1LjctMTcuMyA0MS4yIDAgMzYuOCAzNC4xIDY0LjIgNzAuMSA1Ni4ybDYyLjMtMTMuOGM3LjctMS43IDE1LjctMi42IDIzLjYtMi42IDMyLjggMCA2NC4yIDE0LjYgODUuMiAzOS44bDMwLjUgMzYuNmMxMC40IDEyLjQgMjUuNyAxOS42IDQxLjkgMTkuNiAzMC4xIDAgNTQuNS0yNC40IDU0LjUtNTQuNWwwLTUxLjJjMC00MS40IDI1LjQtNzguNSA2NC05My41bDIyLjItOC42YzI1LjItOS44IDQxLjgtMzQuMSA0MS44LTYxLjEgMC0yNi40LTE1LjktNTAuMy00MC4zLTYwLjVMNDI5IDE2NC44Yy0zMy4yLTEzLjktNTcuNi00My02NS41LTc4LjFsLTcuOS0zNS4yYy02LjgtMzAuMS0zMy41LTUxLjUtNjQuMy01MS41LTIyIDAtNDIuNiAxMS01NC44IDI5LjR6TTE2MCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sUnNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stYmlibGUiLGljb246WzQ0OCw1MTIsWyJiaWJsZSJdLCJmNjQ3IiwiTTk2IDUxMmMtNTMgMC05Ni00My05Ni05NkwwIDk2QzAgNDMgNDMgMCA5NiAwTDQwMCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMjg4YzAgMjAuOS0xMy40IDM4LjctMzIgNDUuM2wwIDY2LjdjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMOTYgNTEyem0wLTEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyNTYgMCAwLTY0LTI1NiAwek0xOTIgODBsMCA0OC00OCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsNDggMCAwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTIgNDggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnoiXX0sZGd0PVJzZSx1Z3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtYm9hcmQiLGljb246WzQ0OCw1MTIsW10sImY0M2MiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNjQgNjRsMCA2NCA2NCAwIDAtNjQgNjQgMCAwIDY0IDY0IDAgMC02NCA2NCAwIDAgNjQtNjQgMCAwIDY0IDY0IDAgMCA2NC02NCAwIDAgNjQgNjQgMCAwIDY0LTY0IDAgMC02NC02NCAwIDAgNjQtNjQgMCAwLTY0LTY0IDAgMCA2NC02NCAwIDAtNjQgNjQgMCAwLTY0LTY0IDAgMC02NCA2NCAwIDAtNjQtNjQgMCAwLTY0IDY0IDB6bTY0IDEyOGw2NCAwIDAtNjQtNjQgMCAwIDY0em0wIDY0bDAtNjQtNjQgMCAwIDY0IDY0IDB6bTY0IDBsLTY0IDAgMCA2NCA2NCAwIDAtNjR6bTAgMGw2NCAwIDAtNjQtNjQgMCAwIDY0eiJdfSxwZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycyIsaWNvbjpbNTEyLDUxMixbOTc5NF0sImYyMjIiLCJNMzIwIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyTDQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNTAuNy05NSA5NWMxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2UzMyIDQwMS4yIDMyIDMwNCAxMTAuOCAxMjggMjA4IDEyOGMzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDk1LTk1LTUwLjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTIwOCA0MTZhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0eiJdfSxoZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wIixpY29uOls2NDAsNTEyLFsxMjgxODddLCJmMTA5IiwiTTEyOCAzMkM5Mi43IDMyIDY0IDYwLjcgNjQgOTZsMCAyNDAgNjQgMCAwLTI0MCAzODQgMCAwIDI0MCA2NCAwIDAtMjQwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAzMnpNMTkuMiAzODRDOC42IDM4NCAwIDM5Mi42IDAgNDAzLjIgMCA0NDUuNiAzNC40IDQ4MCA3Ni44IDQ4MGw0ODYuNCAwYzQyLjQgMCA3Ni44LTM0LjQgNzYuOC03Ni44IDAtMTAuNi04LjYtMTkuMi0xOS4yLTE5LjJMMTkuMiAzODR6Il19LEJzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXhtYXJrIixpY29uOls1NzYsNTEyLFsidXNlci10aW1lcyJdLCJmMjM1IiwiTTI1NC4xIDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w0Ni4xIDUxMmMtMTYuNCAwLTI5LjctMTMuMy0yOS43LTI5LjcgMC05OC41IDc5LjgtMTc4LjMgMTc4LjMtMTc4LjNsNTkuNCAwek01MzAuMyAxMDguMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOSAzMy45IDMzLjljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMzMuOS0zMy45LTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMy45LTMzLjktMzMuOS0zMy45Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45IDMzLjktMzMuOXpNMjI0LjQgMjQ4YTEyMCAxMjAgMCAxIDEgMC0yNDAgMTIwIDEyMCAwIDEgMSAwIDI0MHoiXX0sZmd0PUJzZSxtZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhZy11c2EiLGljb246WzQ0OCw1MTIsW10sImY3NGQiLCJNMzIgMEM0OS43IDAgNjQgMTQuMyA2NCAzMmwwIDE2IDY5LTE3LjJjMzguMS05LjUgNzguMy01LjEgMTEzLjUgMTIuNSA0Ni4zIDIzLjIgMTAwLjggMjMuMiAxNDcuMSAwbDkuNi00LjhDNDIzLjggMjguMSA0NDggNDMuMSA0NDggNjYuMWwwIDM2LjEtNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy0yMC4zLTktNDEuOC0xNC43LTYzLjYtMTYuOWwwIDMyLjJjMTcuNCAyLjEgMzQuNCA2LjcgNTAuNiAxMy45bDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRsMzMuNy0xMi4zIDAgNjItNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy00MC4yLTE3LjktODUtMjIuNS0xMjguMS0xMy4zbC02My41IDEzLjYgMCAzMi43IDcwLjItMTUuMWMzNi40LTcuOCA3NC4zLTMuOSAxMDguNCAxMS4zbDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRsMzMuNy0xMi4zIDAgNjEuOS00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNsLTYzLjUgMTMuNiAwIDMyLjcgNzAuMi0xNS4xYzM2LjQtNy44IDc0LjMtMy45IDEwOC40IDExLjNsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNGwzMy43LTEyLjMgMCAzMy41YzAgMTMuMy04LjMgMjUuMy0yMC44IDMwbC0zNC43IDEzYy00Ni4yIDE3LjMtOTcuNiAxNC42LTE0MS43LTcuNC0zNy45LTE5LTgxLjQtMjMuNy0xMjIuNS0xMy40TDY0IDQwMCA2NCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0OTcuNyAwIDQ4MEwwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMHptODAgOTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMzIgMGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bS0zMiA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0zMiAwYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnoiXX0sZ2d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtbWlkZGxlLWZpbmdlciIsaWNvbjpbNDQ4LDUxMixbMTI4NDA1XSwiZjgwNiIsIk0yMzIgMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCAxNjQuMmMtOC41LTcuNi0xOS43LTEyLjItMzItMTIuMi0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNTUuN2MtMiAxLjQtMy45IDMtNS44IDQuNUw1NSAyODQuOEM0MC40IDI5NyAzMiAzMTUgMzIgMzM0TDMyIDM3MmMwIDM4IDE2LjkgNzQgNDYuMSA5OC4zbDUuNCA0LjVjMjguOCAyNCA2NSAzNy4xIDEwMi40IDM3LjFMMzA0IDUxMmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4LTEyLjQgMC0yMy42IDQuNy0zMi4xIDEyLjMtMS45LTI0LjgtMjIuNi00NC4zLTQ3LjktNDQuMy0xMi4zIDAtMjMuNSA0LjYtMzIgMTIuMkwyNzIgNDBjMC0yMi4xLTE3LjktNDAtNDAtNDB6Il19LGJndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3J0YXItcGVzdGxlIixpY29uOls1MTIsNTEyLFtdLCJmNWE3IiwiTTUwNC4zIDExLjFDNDkzLjMtMS42IDQ3NC41LTMuNyA0NjEgNi4yTDI1Mi4zIDE2MCAzOTcuMyAxNjAgNTAyLjYgNTQuNmMxMS44LTExLjggMTIuNi0zMC44IDEuNi00My41ek0zMiAxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJjMCA4Mi41IDQzLjQgMTQ3LjcgMTIzLjkgMTc2LjItMTEuMSAxMy45LTE5LjQgMzAuMy0yMy45IDQ4LjEtNC40IDE3LjEgMTAuNCAzMS43IDI4LjEgMzEuN2wxOTIgMGMxNy43IDAgMzIuNC0xNC42IDI4LjEtMzEuNy00LjUtMTcuOC0xMi44LTM0LjEtMjMuOS00OC4xIDgwLjUtMjguNiAxMjMuOS05My43IDEyMy45LTE3Ni4yIDE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDE5MnoiXX0sdmd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS1jb3VnaCIsaWNvbjpbNTEyLDUxMixbXSwiZTA2MSIsIk05NiA1MTJsNjQgMGM1MyAwIDk2LTQzIDk2LTk2bDAtODBjMC04LjggNy4yLTE2IDE2LTE2bDEgMGMyNiAwIDQ3LTIxIDQ3LTQ3IDAtMTEtMy45LTIxLjYtMTAuOS0zMC4xTDI3My4zIDIwMEMyNzEuNCAxOTcuNiAyNzAuMSAxOTQuNyAyNjkuNyAxOTEuNyAyNTQgODMuMyAxNjAuNyAwIDQ4IDAgNDAuNCAwIDMyLjkgLjQgMjUuNCAxLjEgMTAuNSAyLjYgMCAxNS45IDAgMzAuOUwwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwem0xNi0zMjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptNjMuMSAyMzcuMmwtNDEuNS0zLjVjLTEyLjItMS0yMS42LTExLjItMjEuNi0yMy40IDAtMTAuOCA3LjMtMjAuMiAxNy44LTIyLjhsNDAuNC0xMC4xYzE5LjItNC44IDM3LjggOS43IDM3LjggMjkuNSAwIDE3LjgtMTUuMiAzMS44LTMyLjkgMzAuM3pNNDgwIDMxMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bS00MCAyNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0tNjQgNDhhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHptMTI4IDBhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNNDgwIDUwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bS00MC03MmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSx4Z3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1OCIsIk0yMzIgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDgyLjEgNzUuMkM0MDkuNyAyNDguMSA0MDAgMjc0LjkgNDAwIDMwNGwwIDI0LjRjLTcuMyA2LjYtMTMuNiAxNC4yLTE4LjcgMjIuN2wtMzcuMy0xMi40IDAgOTkuNyAyNCAxOS4yIDAgMzguM2MwIDEzLjUgMi44IDI2LjQgNy44IDM4LjFMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTU2MCAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LEhzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzIixpY29uOls2NDAsNTEyLFsiYmF0dGVyeS00Il0sImYyNDEiLCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMjI0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTIyNCAweiJdfSx5Z3Q9SHNlLHdndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmcmFuYy1zaWduIixpY29uOlszMjAsNTEyLFtdLCJlMThmIiwiTTgwIDMyQzYyLjMgMzIgNDggNDYuMyA0OCA2NGwwIDI1Ni0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgODggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODggMCAwLTY0IDE0NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNDQgMCAwLTk2IDE3NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDgwIDMyeiJdfSxxc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsdGVyLWNpcmNsZS1kb2xsYXIiLGljb246WzU3Niw1MTIsWyJmdW5uZWwtZG9sbGFyIl0sImY2NjIiLCJNMzIgNjRDMTkuMSA2NCA3LjQgNzEuOCAyLjQgODMuOFMuMiAxMDkuNSA5LjQgMTE4LjZMMTkyIDMwMS4zIDE5MiA0MTZjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjMi41IDIuNSA1LjMgNC41IDguMyA2LTIxLjItMzAuOS0zMy42LTY4LjMtMzMuNi0xMDguNiAwLTk5LjQgNzUuNS0xODEuMSAxNzIuMy0xOTFsOTAuNC05MC40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDY0IDQ4MCA2NEwzMiA2NHpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwek00MTYgMzIwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA4IDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQ1LjggMGMtNS42IDAtMTAuMiA0LjYtMTAuMiAxMC4yIDAgNC45IDMuNSA5LjEgOC4zIDEwbDQ1IDguMmMyMCAzLjYgMzQuNiAyMS4xIDM0LjYgNDEuNSAwIDIzLjMtMTguOSA0Mi4yLTQyLjIgNDIuMmwtNS44IDAgMCA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDUzLjggMGM1LjYgMCAxMC4yLTQuNiAxMC4yLTEwLjIgMC00LjktMy41LTkuMS04LjMtMTBsLTQ1LTguMmMtMjAtMy42LTM0LjYtMjEuMS0zNC42LTQxLjUgMC0yMi42IDE3LjctNDEgNDAtNDIuMWwwLTguMXoiXX0sTWd0PXFzZSxrZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlZXNlIixpY29uOls1MTIsNTEyLFtdLCJmN2VmIiwiTTUxMiAyNDAuMmwwIDE1LjgtNTEyIDBjMC0yMCAxMC0zOC43IDI2LjYtNDkuOEwyNzQuOSA0MC43YzguNi01LjcgMTguNi04LjcgMjguOS04LjcgMTE1IDAgMjA4LjIgOTMuMiAyMDguMiAyMDguMnptMCA2My44bDAgMTEyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xMTIgNTEyIDB6Il19LGpzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtaCIsaWNvbjpbNTEyLDUxMixbOTQwNSwiaG9zcGl0YWwtc3ltYm9sIl0sImY0N2UiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTk2LTM0NGwwIDE3NmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTY0LTk2IDAgMCA2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgOTYgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LFNndD1qc2Usemd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbCIsaWNvbjpbNTc2LDUxMixbMTI3OTc5XSwiZjU0OSIsIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE5MnpNMjI0IDM3NmwwIDg4IDEyOCAwIDAtODhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwem0tMTEyIDhjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTQ5NiAzODRjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMHptMTYtMTQ0bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTI4OCAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6Il19LENndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLWZpdmUiLGljb246WzQ0OCw1MTIsWzk4NjBdLCJmNTIzIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNOTYgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NC02NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiAxNjBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxUZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG9ybmFkbyIsaWNvbjpbNDQ4LDUxMixbMTI3Nzg2XSwiZjc2ZiIsIk0wIDMyTDAgNDUuNkMwIDYyLjcgMS43IDc5LjYgNSA5NmwzNTIuOCAwYzMuMi02LjkgNy41LTEzLjMgMTMtMTguOGwzOC42LTM4LjZjNC4yLTQuMiA2LjYtMTAgNi42LTE2IDAtMTIuNS0xMC4xLTIyLjYtMjIuNi0yMi42TDMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyek0zNTUuNyAxNDRsLTMzNiAwYzEyLjQgMjkuNyAzMC4yIDU2LjggNTIuNyA4MGwzMzkuNiAwLTQ3LjItNjIuOWMtMy45LTUuMi03LTExLTkuMi0xNy4xek0yNDIuNiAzMzQuN2M4LjIgNC44IDE1LjggMTAuNyAyMi41IDE3LjNMNDQ1IDM1MmMyLTkuOCAzLTE5LjkgMy0zMC4xIDAtMTcuMS0yLjktMzQtOC42LTQ5LjlMMTM2IDI3MiAyNDIuNiAzMzQuN3pNMjk0LjMgNDAwYzUuMyAxNyA2LjUgMzUuMiAzLjYgNTNsLTUuOSAzNS43Yy0yIDEyLjIgNy40IDIzLjQgMTkuOCAyMy40IDUuMyAwIDEwLjQtMi4xIDE0LjItNS45bDc4LjItNzguMmM4LjUtOC41IDE1LjgtMTcuOCAyMS45LTI3LjlsLTEzMS44IDB6Il19LFZzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqZXQtZmlnaHRlciIsaWNvbjpbNTc2LDUxMixbImZpZ2h0ZXItamV0Il0sImYwZmIiLCJNNDk2LjIgMjA2LjhjLTEwLjctNC41LTIyLjItNi44LTMzLjgtNi44TDM2MiAyMDAgMjQ4IDQ4IDI5NiA0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyAwIDI5NiAwTDE1MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDggMCAwIDE1Mi01NC40IDAtNTIuOC02NmMtMy0zLjgtNy42LTYtMTIuNS02TDE2IDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgODggNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMCAwIDg4YzAgOC44IDcuMiAxNiAxNiAxNmwyNC4zIDBjNC45IDAgOS41LTIuMiAxMi41LTZsNTIuOC02NiA1NC40IDAgMCAxNTItOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDExNC0xNTIgMTAwLjQgMGMxMS42IDAgMjMuMS0yLjMgMzMuOC02LjhsNjUtMjcuMWM4LjktMy43IDE0LjgtMTIuNSAxNC44LTIyLjJzLTUuOC0xOC40LTE0LjgtMjIuMmwtNjUtMjcuMXoiXX0sX2d0PVZzZSxMZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJzLWRvd24iLGljb246WzUxMiw1MTIsWzEyODA3OCw2MTU3Nl0sImYxNjUiLCJNMzg0IDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNi4zLTEuMyAxMi4yLTMuNCAxNy43IDIwLjQgNS41IDM1LjQgMjQuMSAzNS40IDQ2LjMgMCA5LjEtMi42IDE3LjYtNyAyNC45IDIyLjIgNC4yIDM5IDIzLjcgMzkgNDcuMSAwIDE5LjctMTEuOSAzNi42LTI4LjkgNDQgMTcgNy40IDI4LjkgMjQuMyAyOC45IDQ0IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xNjAgMCAyOC4yIDcwLjRjMi41IDYuMyAzLjggMTMuMSAzLjggMTkuOWwwIDQuMmMwIDI3LjMtMjIuMSA0OS40LTQ5LjQgNDkuNC0xOC43IDAtMzUuOC0xMC42LTQ0LjItMjcuM0wxNzAuMSAzNTYuM2MtNi43LTEzLjMtMTAuMS0yOC0xMC4xLTQyLjlsMC0xODYuNmMwLTE5LjQgOC45LTM3LjggMjQtNTBsMTIuMi05LjdDMjI0LjYgNDQuNCAyNTkuOCAzMiAyOTYuMSAzMkwzODQgMzJ6TTgwIDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0OCAweiJdfSxBZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJvb20iLGljb246WzU3Niw1MTIsWzEyOTUyOV0sImY1MWEiLCJNNTY2LjYgNTQuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5Mi0zNC43LTM0LjdjLTQuMi00LjItMTAtNi42LTE2LTYuNi0xMi41IDAtMjIuNiAxMC4xLTIyLjYgMjIuNmwwIDI5LjEgMTA4LjMgMTA4LjMgMjkuMSAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42IDAtNi0yLjQtMTEuOC02LjYtMTZsLTM0LjctMzQuNyAxOTItMTkyek0zNDEuMSAzNTMuNEwyMjIuNiAyMzQuOWMtNDIuNy0zLjctODUuMiAxMS43LTExNS44IDQyLjNsLTggOGMtMjIuMyAyMi4zLTM0LjggNTIuNS0zNC44IDg0IDAgNi44IDcuMSAxMS4yIDEzLjIgOC4ybDUxLjEtMjUuNWM1LTIuNSA5LjUgNC4xIDUuNCA3LjlMNy4zIDQ3My40QzIuNyA0NzcuNiAwIDQ4My42IDAgNDg5LjkgMCA1MDIuMSA5LjkgNTEyIDIyLjEgNTEybDE3My4zIDBjMzguOCAwIDc1LjktMTUuNCAxMDMuNC00Mi44IDMwLjYtMzAuNiA0NS45LTczLjEgNDIuMy0xMTUuOHoiXX0sVXNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW1wb3J0IixpY29uOlszODQsNTEyLFsiYXJyb3ctcmlnaHQtdG8tZmlsZSJdLCJmNTZmIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjQwIDE4Mi4xIDAtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNzIgNzJjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMTgyLjEgMCAwIDk2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6Il19LERndD1Vc2UsV3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InV0ZW5zaWxzIixpY29uOls1MTIsNTEyLFsxMjc4NjAsNjE2ODUsImN1dGxlcnkiXSwiZjJlNyIsIk02My45IDE0LjRDNjMuMSA2LjIgNTYuMiAwIDQ4IDBzLTE1LjEgNi4yLTE2IDE0LjNMMTcuOSAxNDkuN2MtMS4zIDYtMS45IDEyLjEtMS45IDE4LjIgMCA0NS45IDM1LjEgODMuNiA4MCA4Ny43TDk2IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI0LjRjNDQuOS00LjEgODAtNDEuOCA4MC04Ny43IDAtNi4xLS42LTEyLjItMS45LTE4LjJMMjIzLjkgMTQuM0MyMjMuMSA2LjIgMjE2LjIgMCAyMDggMHMtMTUuMSA2LjItMTUuOSAxNC40TDE3OC41IDE0OS45Yy0uNiA1LjctNS40IDEwLjEtMTEuMSAxMC4xLTUuOCAwLTEwLjYtNC40LTExLjItMTAuMkwxNDMuOSAxNC42QzE0My4yIDYuMyAxMzYuMyAwIDEyOCAwcy0xNS4yIDYuMy0xNS45IDE0LjZMOTkuOCAxNDkuOGMtLjUgNS44LTUuNCAxMC4yLTExLjIgMTAuMi01LjggMC0xMC42LTQuNC0xMS4xLTEwLjFMNjMuOSAxNC40ek00NDggMEM0MzIgMCAzMjAgMzIgMzIwIDE3NmwwIDExMmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00NDhjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LEVndD1Xc2UsJGd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlkLWJhZGdlIixpY29uOlszODQsNTEyLFtdLCJmMmMxIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6bTk2IDM1Mmw2NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgOC44LTcuMiAxNi0xNiAxNkw5NiA0NDhjLTguOCAwLTE2LTcuMi0xNi0xNiAwLTQ0LjIgMzUuOC04MCA4MC04MHptLTI0LTk2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTUyIDY0bDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LElndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGlkZXIiLGljb246WzUxMiw1MTIsWzEyODM3NV0sImY3MTciLCJNMzY5LjMtMzFjMTEuOS0zLjUgMjQuNCAyLjcgMjkgMTMuOWwuOCAyLjMgNDAgMTM2YzIuNSA4LjQgLjEgMTcuNS02LjEgMjMuN2wtNjQuMSA2NC4xIDc2LjQtMjAuOCAxOS45LTU5LjggLjktMi4zYzUtMTEuMSAxNy43LTE2LjggMjkuNS0xMi45IDExLjggMy45IDE4LjUgMTYuMSAxNS44IDI4bC0uNyAyLjQtMjQgNzJjLTIuNSA3LjYtOC43IDEzLjQtMTYuNSAxNS42bC05MS4xIDI0LjggOTEuMSAyNC44YzcuNyAyLjEgMTMuOSA4IDE2LjUgMTUuNmwyNCA3MiAuNyAyLjRjMi43IDExLjktNC4xIDI0LjEtMTUuOCAyOC0xMS44IDMuOS0yNC41LTEuOC0yOS41LTEyLjlsLS45LTIuMy0xOS45LTU5LjgtNzYuNC0yMC44IDY0LjEgNjQuMWM2LjEgNi4xIDguNSAxNS4xIDYuMiAyMy40bC00MCAxNDQtLjggMi4zYy00LjQgMTEuMy0xNi44IDE3LjctMjguOCAxNC40LTEyLTMuMy0xOS4zLTE1LjItMTcuMi0yNy4ybC41LTIuNCAzNi4yLTEzMC41LTM3LjItMzcuMkMzNTEgNDA2IDMwOC40IDQ0OCAyNTYgNDQ4cy05NS00Mi05Ni05NC4xbC0zNyAzNyAzNiAxMjIuMyAuNiAyLjRjMi4yIDExLjktNC45IDIzLjktMTYuOCAyNy40LTExLjkgMy41LTI0LjQtMi43LTI5LTEzLjlsLS44LTIuMy00MC0xMzZjLTIuNS04LjQtLjEtMTcuNSA2LjEtMjMuOGw2NC4xLTY0LjEtNzYuNCAyMC44LTE5LjkgNTkuOC0uOSAyLjNjLTUgMTEuMS0xNy43IDE2LjgtMjkuNSAxMi45cy0xOC41LTE2LjEtMTUuOC0yOGwuNy0yLjQgMjQtNzJjMi41LTcuNiA4LjctMTMuNCAxNi41LTE1LjZsOTEuMS0yNC44LTkxLjEtMjQuOGMtNy43LTIuMS0xMy45LTgtMTYuNS0xNS42bC0yNC03Mi0uNy0yLjRjLTIuNy0xMS45IDQuMS0yNC4xIDE1LjgtMjhzMjQuNSAxLjggMjkuNSAxMi45bC45IDIuMyAxOS45IDU5LjggNzYuNCAyMC44LTY0LjEtNjQuMWMtNi4yLTYuMi04LjUtMTUuMy02LjEtMjMuN2w0MC0xMzYgLjgtMi4zYzQuNi0xMS4zIDE3LjEtMTcuNCAyOS0xMy45IDExLjkgMy41IDE5IDE1LjUgMTYuOCAyNy40bC0uNiAyLjQtMzYgMTIyLjMgNTMgNTNjMS00My4zIDM2LjQtNzguMSA3OS45LTc4LjFzNzguOSAzNC44IDc5LjkgNzguMmw1My4xLTUzLjEtMzYtMTIyLjMtLjYtMi40Yy0yLjItMTIgNC45LTIzLjkgMTYuOC0yNy40eiJdfSxQZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXJldHJvIixpY29uOlszODQsNTEyLFtdLCJlNTI3IiwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBMMzA0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwxNiA2NHptODAgOTZsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTggMTkyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjQgMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0em02NC03MmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDcyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0IDEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNHptNjQtNzJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA3MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNCAxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjR6TTE2OCA0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSxHc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbnMtcG9zdCIsaWNvbjpbNTEyLDUxMixbIm1hcC1zaWducyJdLCJmMjc3IiwiTTI1Ni40IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYwIDAgMCA2NC0xNTMuNCAwYy00LjIgMC04LjMgMS43LTExLjMgNC43bC00OCA0OGMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsNDggNDhjMyAzIDcuMSA0LjcgMTEuMyA0LjdsMTUzLjQgMCAwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NiAxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNjAgMCAwLTY0IDE1My40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w0OC00OGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNDgtNDhjLTMtMy03LjEtNC43LTExLjMtNC43bC0xNTMuNCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LE5ndD1Hc2UsRmd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdyb3VwLWFycm93cy1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImU0ZjYiLCJNMzcuNiAxMjIuM2MtMTEuNSAxOC43LTIwLjYgMzktMjcgNjAuNS01IDE2LjkgNC42IDM0LjggMjEuNSAzOS44czM0LjgtNC42IDM5LjgtMjEuNWMxOC40LTYxLjkgNjcuMy0xMTAuOCAxMjkuMi0xMjkuMiAxNi45LTUgMjYuNi0yMi45IDIxLjUtMzkuOFMxOTkuOCA1LjYgMTgyLjkgMTAuNkMxNjEuNCAxNyAxNDEuMSAyNi4xIDEyMi4zIDM3LjYgMTEyLjMgMTUuNCA4OS45IDAgNjQgMCAyOC43IDAgMCAyOC43IDAgNjQgMCA4OS45IDE1LjQgMTEyLjMgMzcuNiAxMjIuM3ptNDM2LjcgMGMyMi4yLTEwIDM3LjYtMzIuNCAzNy42LTU4LjMgMC0zNS4zLTI4LjctNjQtNjQtNjQtMjUuOSAwLTQ4LjMgMTUuNC01OC4zIDM3LjYtMTguNy0xMS41LTM5LTIwLjYtNjAuNS0yNy0xNi45LTUtMzQuOCA0LjYtMzkuOCAyMS41czQuNiAzNC44IDIxLjUgMzkuOGM2MS45IDE4LjQgMTEwLjggNjcuMyAxMjkuMiAxMjkuMiA1IDE2LjkgMjIuOSAyNi42IDM5LjggMjEuNXMyNi42LTIyLjkgMjEuNS0zOS44Yy02LjQtMjEuNS0xNS41LTQxLjgtMjctNjAuNXpNNTEyIDQ0OGMwLTI1LjktMTUuNC00OC4zLTM3LjYtNTguMyAxMS41LTE4LjcgMjAuNi0zOSAyNy02MC41IDUtMTYuOS00LjYtMzQuOC0yMS41LTM5LjhzLTM0LjggNC42LTM5LjggMjEuNWMtMTguNCA2MS45LTY3LjMgMTEwLjgtMTI5LjIgMTI5LjItMTYuOSA1LTI2LjYgMjIuOS0yMS41IDM5LjhzMjIuOSAyNi42IDM5LjggMjEuNWMyMS41LTYuNCA0MS44LTE1LjUgNjAuNS0yNyAxMCAyMi4yIDMyLjQgMzcuNiA1OC4zIDM3LjYgMzUuMyAwIDY0LTI4LjcgNjQtNjR6TTM3LjYgMzg5LjdjLTIyLjIgMTAtMzcuNiAzMi40LTM3LjYgNTguMyAwIDM1LjMgMjguNyA2NCA2NCA2NCAyNS45IDAgNDguMy0xNS40IDU4LjMtMzcuNiAxOC43IDExLjUgMzkgMjAuNiA2MC41IDI3IDE2LjkgNSAzNC44LTQuNiAzOS44LTIxLjVzLTQuNi0zNC44LTIxLjUtMzkuOGMtNjEuOS0xOC40LTExMC44LTY3LjMtMTI5LjItMTI5LjItNS0xNi45LTIyLjktMjYuNi0zOS44LTIxLjVTNS42IDMxMi4yIDEwLjYgMzI5LjFjNi40IDIxLjUgMTUuNSA0MS44IDI3IDYwLjV6TTI1NiAxOTJjMTUuNiAwIDMwIDUuNiA0MS4xIDE0LjlsLTE1LjMgMTUuM2MtNi42IDYuNi0xLjkgMTcuOCA3LjQgMTcuOGw2MC41IDBjNS43IDAgMTAuNC00LjcgMTAuNC0xMC40bDAtNjAuNWMwLTkuMy0xMS4yLTEzLjktMTcuOC03LjRsLTExLjIgMTEuMmMtMTkuOC0xNy45LTQ2LjItMjguOS03NS4xLTI4LjktNDMuNiAwLTgxLjMgMjQuOS05OS44IDYxLjEtNiAxMS44LTEuNCAyNi4zIDEwLjQgMzIuM3MyNi4zIDEuNCAzMi4zLTEwLjRjMTAuNi0yMC44IDMyLjItMzQuOSA1Ny0zNC45em01OC42IDkzLjFjLTEwLjYgMjAuOC0zMi4yIDM0LjktNTcgMzQuOS0xNS43IDAtMzAtNS42LTQxLjEtMTQuOWwxNS4zLTE1LjNjNi42LTYuNiAxLjktMTcuOC03LjQtMTcuOEwxNjQgMjcyYy01LjcgMC0xMC40IDQuNy0xMC40IDEwLjRsMCA2MC41YzAgOS4zIDExLjIgMTMuOSAxNy44IDcuNGwxMS4yLTExLjJjMTkuOCAxNy45IDQ2LjIgMjguOSA3NS4xIDI4LjkgNDMuNiAwIDgxLjMtMjQuOSA5OS44LTYxLjEgNi0xMS44IDEuNC0yNi4zLTEwLjQtMzIuM3MtMjYuMy0xLjQtMzIuMyAxMC40eiJdfSxPZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXNwbGl0LXVwLWFuZC1sZWZ0IixpY29uOls1MTIsNTEyLFtdLCJlNGJjIiwiTTM0Mi42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw0MS40LTQxLjQgMCAxOTUuOWMtMTguOC0xMC45LTQwLjctMTcuMS02NC0xNy4xbC0xMTQuNyAwIDQxLjQtNDEuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMzIwIDIyNCAzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6Il19LFJndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxsLWRyaXAiLGljb246WzU3Niw1MTIsW10sImY1NzYiLCJNMzA5LjcgNzEuNmwtNjQuNCA2NC40IDMzLjQgMzMuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtMzMuNC0zMy40LTk2LjQgOTYuNGMtMi45IDIuOS01LjEgNi41LTYuMyAxMC4zbDMyMS41IDAgNTMuNy01My43YzQuOS00LjkgNy42LTExLjUgNy42LTE4LjNzLTIuNy0xMy41LTcuNi0xOC4zTDM0Ni4zIDcxLjZDMzQxLjUgNjYuNyAzMzQuOSA2NCAzMjggNjRzLTEzLjUgMi43LTE4LjMgNy42ek01OC4zIDIzMi40bDk2LjQtOTYuNC00OS40LTQ5LjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMjAwIDkwLjcgMjY0LjQgMjYuM0MyODEuMyA5LjUgMzA0LjEgMCAzMjggMHM0Ni43IDkuNSA2My42IDI2LjNMNTE3LjcgMTUyLjRDNTM0LjUgMTY5LjMgNTQ0IDE5Mi4xIDU0NCAyMTZzLTkuNSA0Ni43LTI2LjMgNjMuNkwzMTEuNiA0ODUuN0MyOTQuNyA1MDIuNSAyNzEuOSA1MTIgMjQ4IDUxMnMtNDYuNy05LjUtNjMuNi0yNi4zTDU4LjMgMzU5LjZDNDEuNSAzNDIuNyAzMiAzMTkuOSAzMiAyOTZzOS41LTQ2LjcgMjYuMy02My42ek01MTIgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTI1LjIgMzIuNi03OS42IDUxLjItMTA4LjcgNi05LjQgMTkuNS05LjQgMjUuNSAwIDE4LjcgMjkuMSA1MS4yIDgzLjUgNTEuMiAxMDguNyAwIDM1LjMtMjguNyA2NC02NCA2NHoiXX0sQmd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaWVsZC1oZWFydCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3NCIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMjQ5LjYgMTgzLjVsNi40IDguNSA2LjQtOC41YzExLjEtMTQuOCAyOC41LTIzLjUgNDYuOS0yMy41IDMyLjQgMCA1OC43IDI2LjMgNTguNyA1OC43bDAgNS4zYzAgNDkuMS02NS44IDk4LjEtOTYuNSAxMTguMy05LjUgNi4yLTIxLjUgNi4yLTMwLjkgMC0zMC43LTIwLjItOTYuNS02OS4zLTk2LjUtMTE4LjNsMC01LjNjMC0zMi40IDI2LjMtNTguNyA1OC43LTU4LjcgMTguNSAwIDM1LjkgOC43IDQ2LjkgMjMuNXoiXX0sWXNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1za2lpbmctbm9yZGljIixpY29uOls1NzYsNTEyLFsic2tpaW5nLW5vcmRpYyJdLCJmN2NhIiwiTTQyNC44IDE2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem05OS44IDE5My43YzcuNiAxNS4yIDEuOSAzMy42LTEyLjYgNDJsMCAxODAuMy0zMiAwIDAtMTY0LjItMTAuMSA1Yy0yNy40IDEzLjctNjAuNyA2LjEtNzkuNC0xOC4ybC0xOS42LTI1LjUtMzkuNSA2OC44IDI0LjggMTIuNGMyOS41IDE0LjcgNDIuOSA0OS41IDMxLjEgODAuMmwtMjguMiA3My40IDE0OS40IDBjNy45IDAgMTUuNi0yLjMgMjIuMi02LjdsNy45LTUuM2MxMS03LjQgMjUuOS00LjQgMzMuMyA2LjdzNC40IDI1LjktNi43IDMzLjNsLTcuOSA1LjNDNTQzIDUwNi45IDUyNiA1MTIgNTA4LjYgNTEybC0xODkuMSAwYy0uNSAwLTEgMC0xLjUgMEwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsODggMGMwLTguMiAzLjEtMTYuNCA5LjQtMjIuNmw3NC4xLTc0LjEgMTAuMi0zNS45YzExLjMgMTguMyAyNy43IDMzLjggNDguNCA0NC4ybDQuOCAyLjQtMS45IDYuOGMtMyAxMC41LTguNiAyMC0xNi4zIDI3LjdsLTUxLjUgNTEuNSAxMDEuMyAwIDM3LjEtOTYuNC01NS42LTI3LjhDMjMwLjQgMzE5IDIxNS4zIDI2NyAyMzkuMyAyMjcuMWwzNy43LTYyLjctMjcuNy03LjdjLTktMi41LTE4LjEgMy4yLTIwIDEyLjNsLTUuOSAyOS4zYy0zLjEgMTUuNi0xNy4xIDI2LjMtMzIuNSAyNS43bC0xMzAgMjA4LTM3LjcgMCAxNDAuNi0yMjVjLTMuNC02LjMtNC42LTEzLjgtMy4xLTIxLjNsNS45LTI5LjNjOS4xLTQ1LjYgNTUuMS03My44IDk5LjktNjEuNGwzMi41IDljNDYuNyAxMyA4OCA0MC44IDExNy42IDc5LjNsMjQuOSAzMi4zIDQwLjQtMjAuMmMxNS44LTcuOSAzNS0xLjUgNDIuOSAxNC4zeiJdfSxIZ3Q9WXNlLFpzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2hlY2siLGljb246WzQ0OCw1MTIsWzk3NDUsOTk4OSw2MTUxMCwiY2hlY2stc3F1YXJlIl0sImYxNGEiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMzQyIDE0NS43Yy0xMC43LTcuOC0yNS43LTUuNC0zMy41IDUuM0wxODkuMSAzMTUuMiAxMzcgMjYzLjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjNSA1IDExLjkgNy41IDE4LjggN3MxMy40LTQuMSAxNy41LTkuOEwzNDcuMyAxNzkuMmM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0scWd0PVpzZSxYc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmF0aCIsaWNvbjpbNTEyLDUxMixbMTI4NzA1LCJiYXRodHViIl0sImYyY2QiLCJNOTYgNzcuM2MwLTcuMyA1LjktMTMuMyAxMy4zLTEzLjMgMy41IDAgNi45IDEuNCA5LjQgMy45bDE0LjkgMTQuOWMtMy42IDkuMS01LjUgMTguOS01LjUgMjkuMiAwIDE5LjkgNy4yIDM4IDE5LjIgNTItNS4zIDkuMi00IDIxLjEgMy44IDI5IDkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDI4OSA4OWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOS03LjgtNy45LTE5LjgtOS4xLTI5LTMuOC0xNC0xMi0zMi4xLTE5LjItNTItMTkuMi0xMC4zIDAtMjAuMiAyLTI5LjIgNS41TDE2My45IDIyLjZDMTQ5LjQgOC4xIDEyOS43IDAgMTA5LjMgMCA2Ni42IDAgMzIgMzQuNiAzMiA3Ny4zTDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwwIDQ4YzAgMjguNCAxMi40IDU0IDMyIDcxLjZMNjQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNiAyNTYgMCAwIDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00MC40YzE5LjYtMTcuNiAzMi00My4xIDMyLTcxLjZsMC00OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAyNTYgOTYgNzcuM3oiXX0samd0PVhzZSxWZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlc3MtYmlzaG9wIixpY29uOlszMjAsNTEyLFs5ODIxXSwiZjQzYSIsIk02NCAzODRMNDguMyAzNjguM0MxNy40IDMzNy40IDAgMjk1LjQgMCAyNTEuNyAwIDIxMy4xIDEzLjUgMTc1LjggMzguMiAxNDYuMUwxMDYuNyA2NCA5NiA2NEM3OC4zIDY0IDY0IDQ5LjcgNjQgMzJTNzguMyAwIDk2IDBMMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjcgMCA0Ny42IDU3LjEtODUuOSA4NS45Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODIuMy04Mi4zYzE4LjcgMjcuMyAyOC43IDU5LjcgMjguNyA5MyAwIDQzLjctMTcuNCA4NS43LTQ4LjMgMTE2LjZMMjU2IDM4NCAzMTIuMiA0NTQuM2M1IDYuMyA3LjggMTQuMSA3LjggMjIuMiAwIDE5LjYtMTUuOSAzNS41LTM1LjUgMzUuNUwzNS41IDUxMmMtMTkuNiAwLTM1LjUtMTUuOS0zNS41LTM1LjUgMC04LjEgMi43LTE1LjkgNy44LTIyLjJMNjQgMzg0eiJdfSxRc2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJlc2NyaXB0aW9uLWJvdHRsZS1tZWRpY2FsIixpY29uOlszODQsNTEyLFsicHJlc2NyaXB0aW9uLWJvdHRsZS1hbHQiXSwiZjQ4NiIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRMMCAzMnpNMzIgMTQ0bDMyMCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6TTE2MCAyNDhsMCA0MC00MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsNDAgMCAwIDQwYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTQwIDQwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC00MCAwIDAtNDBjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6Il19LFVndD1Rc2UsSnNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyYXctcG9seWdvbiIsaWNvbjpbNTEyLDUxMixbNTgwNTUsInZlY3Rvci1wb2x5Z29uIl0sImY1ZWUiLCJNNjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsMjczLjEgMGMxMS4xLTE5LjEgMzEuNy0zMiA1NS40LTMyIDM1LjMgMCA2NCAyOC43IDY0IDY0IDAgMzQtMjYuNSA2MS44LTYwIDYzLjlsLTIuMSAyLjktNzEuNSA5OS4xYzMuNiA4IDUuNiAxNi45IDUuNiAyNi4ycy0yIDE4LjItNS42IDI2LjJsMi4yIDMuMSA2OS4zIDk2IDIuMSAyLjljMzMuNSAyLjEgNjAgMjkuOSA2MCA2My45IDAgMzUuMy0yOC43IDY0LTY0IDY0LTIzLjcgMC00NC40LTEyLjktNTUuNC0zMmwtMjczLjEgMGMtMTEuMSAxOS4xLTMxLjcgMzItNTUuNCAzMi0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIzLjcgMTIuOS00NC40IDMyLTU1LjRsMC0yNzMuMUMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMHpNMzk0LjIgNDEzLjRsLTY1LjUtOTAuNi0yLjItMy4xYy0yLjEgLjItNC4zIC4zLTYuNSAuMy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzIuMiAwIDQuNCAuMSA2LjUgLjNsNjcuNy05My43Yy0uNi0uOS0xLjEtMS43LTEuNi0yLjZMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwyNzMuMSAwYy41LS45IDEuMS0xLjggMS42LTIuNnoiXX0sV2d0PUpzZSxHZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaS1jdXJzb3IiLGljb246WzI1Niw1MTIsW10sImYyNDYiLCJNLjEgMjkuM0MtMS40IDQ3IDExLjcgNjIuNCAyOS4zIDYzLjlsOCAuN0M3MC41IDY3LjMgOTYgOTUgOTYgMTI4LjNsMCA5NS43LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDk1LjdjMCAzMy4zLTI1LjUgNjEtNTguNyA2My44bC04IC43QzExLjcgNDQ5LjYtMS40IDQ2NSAuMSA0ODIuN1MxNyA1MTMuNCAzNC43IDUxMS45bDgtLjdjMzQuMS0yLjggNjQuMi0xOC45IDg1LjQtNDIuOSAyMS4yIDI0IDUxLjIgNDAgODUuNCA0Mi45bDggLjdjMTcuNiAxLjUgMzMuMS0xMS42IDM0LjUtMjkuMnMtMTEuNi0zMy4xLTI5LjItMzQuNWwtOC0uN0MxODUuNSA0NDQuNyAxNjAgNDE3IDE2MCAzODMuN2wwLTk1LjcgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTk1LjdjMC0zMy4zIDI1LjUtNjEgNTguNy02My44bDgtLjdjMTcuNi0xLjUgMzAuNy0xNi45IDI5LjItMzQuNVMyMzktMS40IDIyMS4zIC4xbC04IC43Yy0zNC4xIDIuOC02NC4yIDE4LjktODUuNCA0Mi45LTIxLjItMjQtNTEuMi00MC04NS40LTQyLjlsLTgtLjdDMTctMS40IDEuNiAxMS43IC4xIDI5LjN6Il19LFlndD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtcGx1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTUwMCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek00MzIgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMTYgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA0OC00OCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDQ4IDAgMCA0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDggNDggMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNDggMCAwLTQ4eiJdfSxaZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWRvZyIsaWNvbjpbNTEyLDUxMixbXSwiZTU3MyIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwLjkgMjg2LjJjNC44IDEuMiA5LjkgMS44IDE1LjEgMS44IDM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjQgNDQuMiAwYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdsNy4yIDE0LjMgNjQgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDQ0LjItMzUuOCA4MC04MCA4MGwtNDggMCAwIDUwLjdjMCA3LjMtNS45IDEzLjMtMTMuMyAxMy4zLTEuOCAwLTMuNi0uNC01LjItMS4xbC05OC43LTQyLjNjLTYuNi0yLjgtMTAuOC05LjMtMTAuOC0xNi40IDAtMi44IC42LTUuNSAxLjktOGwxNS0zMHpNMTYwIDE2MGw0OCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMwLTguOCA3LjItMTYgMTYtMTZ6bTEyOCA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAweiJdfSxYZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JlYXRlci10aGFuLWVxdWFsIixpY29uOls0NDgsNTEyLFtdLCJmNTMyIiwiTTIxLjkgOTQuNEM1LjEgODguOC0zLjkgNzAuNiAxLjcgNTMuOVMyNS40IDI4LjEgNDIuMSAzMy42bDM4NCAxMjhDNDM5LjIgMTY2IDQ0OCAxNzguMiA0NDggMTkycy04LjggMjYtMjEuOSAzMC40bC0zODQgMTI4Yy0xNi44IDUuNi0zNC45LTMuNS00MC41LTIwLjJzMy41LTM0LjkgMjAuMi00MC41TDMxNC44IDE5MiAyMS45IDk0LjR6TTQxNiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAweiJdfSxRZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGUtb3BlbiIsaWNvbjpbNTEyLDUxMixbNjIxMzVdLCJmMmI2IiwiTTY0LjQgMTc1LjhMMjU2IDMzLjkgNDQ3LjYgMTc1LjggMjg5LjUgMjkzYy05LjcgNy4yLTIxLjQgMTEtMzMuNSAxMXMtMjMuOC0zLjktMzMuNS0xMUw2NC40IDE3NS44ek0yNTYtMzJjLTEyLjEgMC0yMy44IDMuOS0zMy41IDExTDI1LjkgMTI0LjdDOS42IDEzNi44IDAgMTU1LjggMCAxNzYuMUwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIzOS45YzAtMjAuMy05LjYtMzkuNC0yNS45LTUxLjRMMjg5LjUtMjFjLTkuNy03LjItMjEuNC0xMS0zMy41LTExeiJdfSxKZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bmQiLGljb246WzUxMiw1MTIsW10sImU1MmQiLCJNMTEyLjQgMTc5LjJDMTQyIDEyNy43IDE5Ni44IDk2IDI1Ni4yIDk2czExNC4yIDMxLjcgMTQzLjkgODMuMkw1MDguNyAzNjhjMTIuMyAyMS4zLTMuMSA0OC0yNy43IDQ4TDMxLjUgNDE2Yy0yNC42IDAtNDAtMjYuNi0yNy43LTQ4TDExMi40IDE3OS4yeiJdfSxLZ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9pY2VtYWlsIixpY29uOls2NDAsNTEyLFtdLCJmODk3IiwiTTE0NCAxNjBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTI2My44IDMyMGMxNS4zLTIyLjkgMjQuMi01MC40IDI0LjItODAgMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTMCAxNjAuNSAwIDI0MCA2NC41IDM4NCAxNDQgMzg0bDM1MiAwYzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0UzU3NS41IDk2IDQ5NiA5NiAzNTIgMTYwLjUgMzUyIDI0MGMwIDI5LjYgOC45IDU3LjEgMjQuMiA4MGwtMTEyLjUgMHpNNDk2IDE2MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHoiXX0sZWJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZlc3QiLGljb246WzQ0OCw1MTIsW10sImUwODUiLCJNMjAwIDQ2NGwwLTE3MC4xYzAtMy45LS41LTcuOC0xLjQtMTEuNkwxNDQuNCA2NS40QzE2Mi4xIDc3LjIgMTg4LjIgODggMjI0IDg4czYxLjktMTAuOCA3OS42LTIyLjZMMjQ5LjQgMjgyLjNjLTEgMy44LTEuNCA3LjctMS40IDExLjZMMjQ4IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMDQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5My41YzAtOS41LTIuOC0xOC43LTguMS0yNi42bC00Ny45LTcxLjhjLTUuMy03LjktOC4xLTE3LjEtOC4xLTI2LjZMMzg0IDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zLjUgMGMtLjMgMC0uNiAwLTEgMC0uNiAwLTEuMiAwLTEuOCAwLTE4LjggMC0zNC4xIDkuNy00NC4xIDE4LjgtOS4zIDguNC0yOC41IDIxLjItNjEuNyAyMS4ycy01Mi40LTEyLjgtNjEuNy0yMS4yYy0xMC05LjEtMjUuMy0xOC44LTQ0LjEtMTguOC0uNiAwLTEuMiAwLTEuOCAwLS4zIDAtLjYgMC0xIDBMMTEyIDBDODUuNSAwIDY0IDIxLjUgNjQgNDhsMCA5Ny41YzAgOS41LTIuOCAxOC43LTguMSAyNi42TDguMSAyNDMuOUMyLjggMjUxLjggMCAyNjEuMSAwIDI3MC41TDAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEwNCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4eiJdfSx0YnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXVkaW8tZGVzY3JpcHRpb24iLGljb246WzUxMiw1MTIsW10sImYyOWUiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptOTYgOTZsMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0IDQ4IDAgMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTA0YzAtMzUuMy0yOC43LTY0LTY0LTY0bC0xNiAwYy0zNS4zIDAtNjQgMjguNy02NCA2NHptNDggMzJsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMi00OCAwem0xNTItOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTQ0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC00OGMwLTM5LjgtMzIuMi03Mi03Mi03MmwtNDggMHptNDggMTQ0bC0yNCAwIDAtOTYgMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0eiJdfSxyYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidyIsaWNvbjpbNTc2LDUxMixbMTE5XSwiNTciLCJNMjAuOCAzNGMxNi41LTYuMiAzNSAyLjIgNDEuMiAxOC43TDE3Mi4yIDM0Ni43IDI1Ny4zIDU1YzQtMTMuNyAxNi41LTIzIDMwLjctMjNzMjYuNyA5LjQgMzAuNyAyM0w0MDMuOCAzNDYuNyA1MTQgNTIuOGM2LjItMTYuNSAyNC42LTI0LjkgNDEuMi0xOC43UzU4MC4yIDU4LjcgNTc0IDc1LjJsLTE0NCAzODRjLTQuOCAxMi45LTE3LjQgMjEuMy0zMS4yIDIwLjdzLTI1LjctOS44LTI5LjUtMjNMMjg4IDE3OC4zIDIwNi43IDQ1N2MtMy45IDEzLjItMTUuOCAyMi41LTI5LjUgMjNzLTI2LjMtNy44LTMxLjItMjAuN0wyIDc1LjJDLTQuMiA1OC43IDQuMiA0MC4yIDIwLjggMzR6Il19LGREPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1kcm9wcGVyIixpY29uOls1MTIsNTEyLFsiZXllLWRyb3BwZXItZW1wdHkiLCJleWVkcm9wcGVyIl0sImYxZmIiLCJNMzQxLjYgMjkuMmwtMTAxLjYgMTAxLjYtOS40LTkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40IDEwMS42LTEwMS42YzM5LTM5IDM5LTEwMi4yIDAtMTQxLjFzLTEwMi4yLTM5LTE0MS4xIDB6TTU1LjQgMzIzLjNjLTE1IDE1LTIzLjQgMzUuNC0yMy40IDU2LjZsMCA0Mi40LTI2LjYgMzkuOWMtOC41IDEyLjctNi44IDI5LjYgNCA0MC40czI3LjcgMTIuNSA0MC40IDRsMzkuOS0yNi42IDQyLjQgMGMyMS4yIDAgNDEuNi04LjQgNTYuNi0yMy40bDEwOS40LTEwOS40LTQ1LjMtNDUuMy0xMDkuNCAxMDkuNGMtMyAzLTcuMSA0LjctMTEuMyA0LjdsLTM2LjEgMCAwLTM2LjFjMC00LjIgMS43LTguMyA0LjctMTEuM2wxMDkuNC0xMDkuNC00NS4zLTQ1LjMtMTA5LjQgMTA5LjR6Il19LGlidD1kRCxhYnQ9ZEQsQnA9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXhtYXJrIixpY29uOls1MTIsNTEyLFs2MTUzMiwidGltZXMtY2lyY2xlIiwieG1hcmstY2lyY2xlIl0sImYwNTciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NyAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LG5idD1CcCxvYnQ9QnAsc2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWlsZXIiLGljb246WzY0MCw1MTIsW10sImUwNDEiLCJNMzIgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjk2LjQgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0yLjcgLjEtNS40IC40LThMOTYgNDE2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA5NnptNDA4IDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE2MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTYwYzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xMTIgMTM2bDAgMTYwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTE3Ni0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMjY0IDQyNGE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAweiJdfSx1RD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJraXNoLWxpcmEtc2lnbiIsaWNvbjpbNDQ4LDUxMixbInRyeSIsInR1cmtpc2gtbGlyYSJdLCJlMmJiIiwiTTE2MCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDQzLjYgMTIxLjQtMzQuN2MxMi43LTMuNiAyNiAzLjcgMjkuNyAxNi41cy0zLjcgMjYtMTYuNSAyOS43bC0xMzQuNiAzOC41IDAgNDYuMSAxMjEuNC0zNC43YzEyLjctMy42IDI2IDMuNyAyOS43IDE2LjVzLTMuNyAyNi0xNi41IDI5LjdsLTEzNC42IDM4LjUgMCAxNjIuNSA3MiAwYzUzIDAgOTYtNDMgOTYtOTYgMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGwtMTA0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTc2LjItMjUuNCA3LjNjLTEyLjcgMy42LTI2LTMuNy0yOS43LTE2LjVzMy43LTI2IDE2LjUtMjkuN2wzOC42LTExIDAtNDYuMS0yNS40IDcuM2MtMTIuNyAzLjYtMjYtMy43LTI5LjctMTYuNXMzLjctMjYgMTYuNS0yOS43bDM4LjYtMTEgMC02MS45YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxsYnQ9dUQsY2J0PXVELGRidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2xjYW5vIixpY29uOls1MTIsNTEyLFsxMjc3NTVdLCJmNzcwIiwiTTE2MCAxNDRjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMTUuNyAwIDMwIDUuNiA0MS4yIDE1IDExLjItMTguNiAzMS42LTMxIDU0LjgtMzFzNDMuNiAxMi40IDU0LjggMzFjMTEuMS05LjQgMjUuNS0xNSA0MS4yLTE1IDM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0Yy0xNC43IDAtMjguMy01LTM5LjEtMTMuM2wtMzIgNDhDMjc1LjMgMTg3IDI2NiAxOTIgMjU2IDE5MnMtMTkuMy01LTI0LjktMTMuM2wtMzItNDhDMTg4LjMgMTM5IDE3NC43IDE0NCAxNjAgMTQ0ek0xNDQgMzUybDQ4LjQtMjQuMmMxMC4yLTUuMSAyMS42LTcuOCAzMy03LjggMTkuNiAwIDM4LjQgNy44IDUyLjIgMjEuNmwzMi41IDMyLjVjNi4zIDYuMyAxNC45IDkuOSAyMy44IDkuOSAxMS4zIDAgMjEuOC01LjYgMjgtMTVsOS43LTE0LjYtNTktNjYuM2MtOS4xLTEwLjItMjIuMi0xNi4xLTM1LjktMTYuMWwtNDEuOCAwYy0xMy43IDAtMjYuOCA1LjktMzUuOSAxNi4xbC01OS45IDY3LjQgNC43LTMuNXptMTkuNC05NS44YzE4LjItMjAuNSA0NC4zLTMyLjIgNzEuOC0zMi4ybDQxLjggMGMyNy40IDAgNTMuNSAxMS43IDcxLjggMzIuMmwxNTAuMiAxNjljOC41IDkuNSAxMy4yIDIxLjkgMTMuMiAzNC43IDAgMjguOC0yMy40IDUyLjItNTIuMiA1Mi4yTDUyLjIgNTEyQzIzLjQgNTEyIDAgNDg4LjYgMCA0NTkuOCAwIDQ0Ny4xIDQuNyA0MzQuNyAxMy4yIDQyNS4ybDE1MC4yLTE2OXoiXX0sdWJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbmQtc3BhcmtsZXMiLGljb246WzUxMiw1MTIsW10sImY3MmIiLCJNNDY0IDYuMWM5LjUtOC41IDI0LTguMSAzMyAuOWw4IDhjOSA5IDkuNCAyMy41IC45IDMzbC04NS44IDk1LjljLTIuNiAyLjktNC4xIDYuNy00LjEgMTAuN2wwIDIxLjRjMCA4LjgtNy4yIDE2LTE2IDE2bC0xNS44IDBjLTQuNiAwLTguOSAxLjktMTEuOSA1LjNMMTAwLjcgNTAwLjljLTYuMyA3LjEtMTUuMyAxMS4xLTI0LjggMTEuMS04LjggMC0xNy4zLTMuNS0yMy41LTkuOEw5LjcgNDU5LjdjLTYuMi02LjItOS43LTE0LjctOS43LTIzLjUgMC05LjUgNC0xOC41IDExLjEtMjQuOGwxMTEuNi05OS44YzMuNC0zIDUuMy03LjQgNS4zLTExLjlsMC0yNy42YzAtOC44IDcuMi0xNiAxNi0xNmwzNC42IDBjMy45IDAgNy43LTEuNSAxMC43LTQuMUw0NjQgNi4xek00MzIgMjg4YzMuNiAwIDYuNyAyLjQgNy43IDUuOGwxNC44IDUxLjcgNTEuNyAxNC44YzMuNCAxIDUuOCA0LjEgNS44IDcuN3MtMi40IDYuNy01LjggNy43bC01MS43IDE0LjgtMTQuOCA1MS43Yy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOGwtMTQuOC01MS43LTUxLjctMTQuOGMtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjggMTQuOC01MS43YzEtMy40IDQuMS01LjggNy43LTUuOHpNODcuNyA2OS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOC0xNC44IDUxLjdjLTEgMy40LTQuMSA1LjgtNy43IDUuOHMtNi43LTIuNC03LjctNS44TDU3LjUgMTY2LjUgNS44IDE1MS43Yy0zLjQtMS01LjgtNC4xLTUuOC03LjdzMi40LTYuNyA1LjgtNy43bDUxLjctMTQuOCAxNC44LTUxLjdjMS0zLjQgNC4xLTUuOCA3LjctNS44czYuNyAyLjQgNy43IDUuOHpNMjA4IDBjMy43IDAgNi45IDIuNSA3LjggNi4xbDYuOCAyNy4zIDI3LjMgNi44YzMuNiAuOSA2LjEgNC4xIDYuMSA3LjhzLTIuNSA2LjktNi4xIDcuOGwtMjcuMyA2LjgtNi44IDI3LjNjLS45IDMuNi00LjEgNi4xLTcuOCA2LjFzLTYuOS0yLjUtNy44LTYuMWwtNi44LTI3LjMtMjcuMy02LjhjLTMuNi0uOS02LjEtNC4xLTYuMS03LjhzMi41LTYuOSA2LjEtNy44bDI3LjMtNi44IDYuOC0yNy4zYy45LTMuNiA0LjEtNi4xIDcuOC02LjF6Il19LHBidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lIixpY29uOlszODQsNTEyLFtdLCJmMTMwIiwiTTE5MiAwQzEzOSAwIDk2IDQzIDk2IDk2bDAgMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xMjhjMC01My00My05Ni05Ni05NnpNNDggMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTcwLjcgMCAxODRsMCA0MGMwIDk3LjkgNzMuMyAxNzguNyAxNjggMTkwLjVsMCA0OS41LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDAgMC00OS41Yzk0LjctMTEuOCAxNjgtOTIuNiAxNjgtMTkwLjVsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzQ4IDMwMy41IDQ4IDIyNGwwLTQweiJdfSxoYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3Jvd24iLGljb246WzU3Niw1MTIsWzEyODA4MV0sImY1MjEiLCJNMzEzIDg3LjJjOS4yLTcuMyAxNS0xOC42IDE1LTMxLjIgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCAxMi42IDUuOSAyMy45IDE1IDMxLjJMMTk0LjYgMTk0LjhjLTEwIDE1LjctMzEuMyAxOS42LTQ2LjIgOC40TDg4LjkgMTU4LjdjNC41LTYuNCA3LjEtMTQuMyA3LjEtMjIuNyAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDIxLjggMTcuNSAzOS42IDM5LjIgNDBMODcuOCAzOTMuNWM0LjcgMzEuMyAzMS42IDU0LjUgNjMuMyA1NC41bDI3My44IDBjMzEuNyAwIDU4LjYtMjMuMiA2My4zLTU0LjVMNTIwLjggMTc2YzIxLjctLjQgMzkuMi0xOC4yIDM5LjItNDAgMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDBjMCA4LjQgMi42IDE2LjMgNy4xIDIyLjdsLTU5LjQgNDQuNmMtMTQuOSAxMS4yLTM2LjIgNy4zLTQ2LjItOC40TDMxMyA4Ny4yeiJdfSxmYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvdy10dXJuLWxlZnQiLGljb246WzUxMiw1MTIsW10sImU1ODAiLCJNLS41IDExM2w3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMxLTMxIDM1MC4xIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjRjMC00OC42LTM5LjQtODgtODgtODhsLTM1MC4xIDAgMzEtMzFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlTODAuOS0yLjMgNzEuNSA3TC0uNSA3OWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjl6TTYwLjMgMjkyLjZMMzcuMSA0NzZjLTIuNCAxOS4xIDEyLjUgMzYgMzEuNyAzNmwxNTQuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE3LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlsNjguMiAxMzYuNWM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDcxLjkgMGMxOS4zIDAgMzQuMi0xNi45IDMxLjctMzZMNDUyLjcgMjkyLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDI3MS45IDE2OS45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDc1LjQgMjY5LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3oiXX0sS3NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWZhc3QiLGljb246WzY0MCw1MTIsWyJzaGlwcGluZy1mYXN0Il0sImY0OGIiLCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMiA1MC43IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNjIxLjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMNjQwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtMy4zIDBjLTEwLjQgMzYuOS00NC40IDY0LTg0LjcgNjRzLTc0LjItMjcuMS04NC43LTY0bC0xMDIuNiAwYy0xMC40IDM2LjktNDQuNCA2NC04NC43IDY0cy03NC4yLTI3LjEtODQuNy02NGwtMy4zIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNDgtNDAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwyNCAyNDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTc2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgMTQ0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFMxMC43IDk2IDI0IDk2bDQwIDB6TTU3NiAyODhsMC01MC43LTQ1LjMtNDUuMy01MC43IDAgMCA5NiA5NiAwek0yNTYgNDI0YTQwIDQwIDAgMSAwIC04MCAwIDQwIDQwIDAgMSAwIDgwIDB6bTIzMiA0MGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6Il19LG1idD1Lc2UsZWxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItcGVuIixpY29uOls2NDAsNTEyLFsidXNlci1lZGl0Il0sImY0ZmYiLCJNMjU2LjEgMjQ4YTEyMCAxMjAgMCAxIDAgMC0yNDAgMTIwIDEyMCAwIDEgMCAwIDI0MHptLTI5LjcgNTZjLTk4LjUgMC0xNzguMyA3OS44LTE3OC4zIDE3OC4zIDAgMTYuNCAxMy4zIDI5LjcgMjkuNyAyOS43bDE5Ni41IDAgMTAuOS01NC41YzQuMy0yMS43IDE1LTQxLjYgMzAuNi01Ny4ybDY3LjMtNjcuM2MtMjgtMTguMy02MS40LTI4LjktOTcuNC0yOC45bC01OS40IDB6TTMzMi4zIDQ2Ni45bC0xMS45IDU5LjZjLS4yIC45LS4zIDEuOS0uMyAyLjkgMCA4IDYuNSAxNC42IDE0LjYgMTQuNiAxIDAgMS45LS4xIDIuOS0uM2w1OS42LTExLjljMTIuNC0yLjUgMjMuOC04LjYgMzIuNy0xNy41bDExOC45LTExOC45LTgwLTgwLTExOC45IDExOC45Yy04LjkgOC45LTE1IDIwLjMtMTcuNSAzMi43em0yNjcuOC0xMjNjMjIuMS0yMi4xIDIyLjEtNTcuOSAwLTgwcy01Ny45LTIyLjEtODAgMGwtMjguOCAyOC44IDgwIDgwIDI4LjgtMjguOHoiXX0sZ2J0PWVsZSxiYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1jbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZjRmZCIsIk0yMjQgOGExMjAgMTIwIDAgMSAxIDAgMjQwIDEyMCAxMjAgMCAxIDEgMC0yNDB6TTE5NC4zIDMwNGw1OS40IDBjMy45IDAgNy45IC4xIDExLjggLjQtMTYuMiAyOC4yLTI1LjUgNjAuOC0yNS41IDk1LjYgMCA0MS44IDEzLjQgODAuNSAzNiAxMTJMNDUuNyA1MTJDMjkuMyA1MTIgMTYgNDk4LjcgMTYgNDgyLjMgMTYgMzgzLjggOTUuOCAzMDQgMTk0LjMgMzA0ek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0NC04MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2bDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDAgMC00OGMwLTguOC03LjItMTYtMTYtMTZ6Il19LHZidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG93ZXIiLGljb246WzUxMiw1MTIsWzEyODcwM10sImYyY2MiLCJNNjQgMTMxLjljMC0xOS44IDE2LjEtMzUuOSAzNS45LTM1LjkgOS41IDAgMTguNiAzLjggMjUuNCAxMC41bDE2LjIgMTYuMmMtMjEgMzguOS0xNy40IDg3LjUgMTAuOSAxMjNMMTUxIDI0N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDM0NSAxMjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMS4zIDEuM2MtMzUuNS0yOC4zLTg0LjEtMzEuOS0xMjMtMTAuOUwxNzAuNSA2MS4zQzE1MS44IDQyLjUgMTI2LjQgMzIgOTkuOSAzMiA0NC43IDMyIDAgNzYuNyAwIDEzMS45TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMTYuMXpNMjU2IDM1MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMi0zMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LHRsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtdXAiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtdXAiXSwiZjE1MSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMjQgMTYwYzYuNyAwIDEzIDIuOCAxNy42IDcuN2wxMDQgMTEyYzYuNSA3IDguMiAxNy4yIDQuNCAyNS45UzMzNy41IDMyMCAzMjggMzIwbC0yMDggMGMtOS41IDAtMTguMi01LjctMjItMTQuNHMtMi4xLTE4LjkgNC40LTI1LjlsMTA0LTExMmM0LjUtNC45IDEwLjktNy43IDE3LjYtNy43eiJdfSx4YnQ9dGxlLHJsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXAtbG9jYXRpb24iLGljb246WzY0MCw1MTIsWyJtYXAtbWFya2VkIl0sImY1OWYiLCJNNTc2IDQ4YzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40TDQxMy41IDc3LjUgMjM0LjEgMTcuNmMtOC4xLTIuNy0xNi44LTIuMS0yNC40IDEuN2wtMTI4IDY0QzcwLjggODguOCA2NCA5OS45IDY0IDExMmwwIDM1MmMwIDExLjEgNS43IDIxLjQgMTUuMiAyNy4yczIxLjIgNi40IDMxLjEgMS40bDExNi4xLTU4LjEgMTczLjMgNTcuOGMtNC4zLTYuNC04LjUtMTMuMS0xMi42LTE5LjktMTEtMTguMy0yMS45LTM5LjMtMzAtNjEuOGwtMTAxLjItMzMuNyAwLTI4NC41IDEyOCA0Mi43IDAgOTkuM2MzMS0zNS44IDc3LTU4LjQgMTI4LTU4LjQgMjIuNiAwIDQ0LjIgNC40IDY0IDEyLjVMNTc2IDQ4ek0zOTIgMzQxLjljMCA2OC45IDY0LjEgMTUwLjQgOTguNiAxODkuMyAxMS42IDEzIDMxLjMgMTMgNDIuOSAwIDM0LjUtMzguOSA5OC42LTEyMC40IDk4LjYtMTg5LjMgMC02NS4xLTUzLjctMTE3LjktMTIwLTExNy45UzM5MiAyNzYuOCAzOTIgMzQxLjl6Il19LHlidD1ybGUsd2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1mYW5jeSIsaWNvbjpbNTEyLDUxMixbMTI4Mzk1LDEwMDAyXSwiZjVhYyIsIk0zNzMuNSAyNy4xYzE1LTE3LjIgMzYuNy0yNy4xIDU5LjYtMjcuMSA0My42IDAgNzkgMzUuNCA3OSA3OSAwIDIyLjgtOS45IDQ0LjYtMjcuMSA1OS42TDI4My43IDMxMy44IDI3MyAzMDMgMjA5IDIzOSAxOTguMiAyMjguMyAzNzMuNSAyNy4xek0xNjEuMSAyNTlDMTYyIDI2MCAxODggMjg2IDIzOSAzMzdsMTMuOSAxMy45LTE3LjEgNzQuMmMtMy45IDE3LjEtMTYuOSAzMC43LTMzLjggMzUuNGwtMTY5LjggNDcuNSA5Mi4zLTkyLjNjMS4yIC4xIDIuMyAuMiAzLjUgLjIgMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMmMwIDEuMiAuMSAyLjQgLjIgMy41TDMuOSA0NzkuOCA1MS41IDMxMGM0LjctMTYuOSAxOC4zLTI5LjkgMzUuNC0zMy44TDE2MS4xIDI1OXoiXX0scEQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXVyby1zaWduIixpY29uOls0NDgsNTEyLFs4MzY0LCJldXIiLCJldXJvIl0sImYxNTMiLCJNNzMuMyAxOTJDMTAwLjggOTkuNSAxODYuNSAzMiAyODggMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtNjUuNiAwLTEyMiAzOS41LTE0Ni43IDk2TDI3MiAxOTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0My4yIDBjLS41IDUuMy0uOCAxMC42LS44IDE2cy4zIDEwLjcgLjggMTZMMjcyIDI3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTMwLjcgMGMyNC43IDU2LjUgODEuMSA5NiAxNDYuNyA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xMDEuNSAwLTE4Ny4yLTY3LjUtMjE0LjctMTYwTDQwIDMyMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNC42IDBjLS43LTEwLjUtLjctMjEuNSAwLTMyTDQwIDI0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwzMy4zIDB6Il19LE1idD1wRCxrYnQ9cEQsU2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTUwYiIsIk00OTYgNTQ0YTE0NCAxNDQgMCAxIDEgMC0yODggMTQ0IDE0NCAwIDEgMSAwIDI4OHpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwyMTcuNiAyMDJjLTEwLjItMS43LTIwLjctMi42LTMxLjMtMi42LTc4LjYgMC0xNDYuMiA0Ny4yLTE3NS45IDExNC44LTUtMS44LTEwLjUtMi44LTE2LjEtMi44bC0zMiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDkwLjkgMGM2LjEgMTcuMyAxNC42IDMzLjQgMjUuMiA0OEwxNDQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDggMi40LTJ6TTU1NS4zIDM0MC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43LTM2LjctMzYuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmwzNi43IDM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzYuNy0zNi43IDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuNyAzNi43LTM2LjdjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6Il19LHpidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXJhLXNpZ24iLGljb246WzM4NCw1MTIsWzgzNTZdLCJmMTk1IiwiTTg0LjkgMjU2bC0yOC40IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTEuNiAwQzUzLjIgMTI0LjcgMTE2LjggNDIgMjA3LjYgNDJsOC4yIDBjMzMuNiAwIDY2LjIgMTEuMyA5Mi41IDMyLjJsMTYuMSAxMi43YzEzLjkgMTEgMTYuMiAzMS4xIDUuMiA0NXMtMzEuMSAxNi4yLTQ1IDUuMmwtMTYuMS0xMi43Yy0xNS0xMS45LTMzLjYtMTguNC01Mi44LTE4LjRsLTguMiAwYy01My44IDAtOTAuMSA1Mi45LTczLjUgMTAybDE2Mi40IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NS4xIDBjMi4zIDEwLjYgMy42IDIxLjMgMy45IDMybDE0MS4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMTUwIDMzNmMtNC44IDE4LjYtMTIuNiAzNi41LTIzLjYgNTIuOWwtMTguMSAyNy4xIDIxMi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI3MiAwYy0xMS44IDAtMjIuNi02LjUtMjguMi0xNi45cy01LTIzIDEuNi0zMi45bDUxLjItNzYuOGMzLjctNS42IDYuOS0xMS40IDkuNC0xNy40bC0yNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDM0LjggMGMtLjUtMTAuOC0yLjYtMjEuNi02LjQtMzJ6Il19LEZwPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Inllbi1zaWduIixpY29uOlszODQsNTEyLFsxNjUsImNueSIsImpweSIsInJtYiIsInllbiJdLCJmMTU3IiwiTTc0LjkgNDYuN2MtOS42LTE0LjktMjkuNC0xOS4yLTQ0LjItOS42UzExLjUgNjYuNCAyMS4xIDgxLjNMMTQzLjcgMjcyIDg4IDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgMzItNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwIDAgNDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC0zMiA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NS43IDAgMTIyLjYtMTkwLjdjOS42LTE0LjkgNS4zLTM0LjctOS42LTQ0LjJzLTM0LjctNS4zLTQ0LjIgOS42TDE5MiAyMjguOCA3NC45IDQ2Ljd6Il19LENidD1GcCxUYnQ9RnAsX2J0PUZwLExidD1GcCxBYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94LW9wZW4iLGljb246WzY0MCw1MTIsW10sImY0OWUiLCJNNTYwLjMgMjM3LjJjMTAuNCAxMS44IDI4LjMgMTQuNCA0MS44IDUuNSAxNC43LTkuOCAxOC43LTI5LjcgOC45LTQ0LjRsLTQ4LTcyYy0yLjgtNC4yLTYuNi03LjctMTEuMS0xMC4yTDM1MS40IDQuN2MtMTkuMy0xMC43LTQyLjgtMTAuNy02Mi4yIDBMODguOCAxMTZjLTUuNCAzLTkuNyA3LjQtMTIuNiAxMi44TDI3LjcgMjE4LjdjLTEyLjYgMjMuNC0zLjggNTIuNSAxOS42IDY1LjFsMzMgMTcuNyAwIDUzLjNjMCAyMyAxMi40IDQ0LjMgMzIuNCA1NS43bDE3NiA5OS43YzE5LjYgMTEuMSA0My41IDExLjEgNjMuMSAwbDE3Ni05OS43YzIwLjEtMTEuNCAzMi40LTMyLjYgMzIuNC01NS43bDAtMTE3LjV6bS0yNDAtOS44TDE3MC4yIDE0NCAzMjAuMyA2MC42IDQ3MC40IDE0NCAzMjAuMyAyMjcuNHptLTQxLjUgNTAuMmwtMjEuMyA0Ni4yLTE2NS44LTg4LjggMjUuNC00Ny4yIDE2MS43IDg5Ljh6Il19LERidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1maWVsZCIsaWNvbjpbNjQwLDUxMixbXSwiZTU4ZCIsIk0zMiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyMjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJsNDAuNCAwYzMyLjQgMCA2MS42IDE5LjYgNzQgNDkuNWw0My44IDEwNi4zIDEuNyA0LjIgMjQuNyAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLS40IDBjLjIgMi42IC40IDUuMyAuNCA4IDAgNDguNi0zOS40IDg4LTg4IDg4cy04OC0zOS40LTg4LTg4YzAtMi43IC4xLTUuNCAuNC04bC0xNDQuNyAwYy4yIDIuNiAuNCA1LjMgLjQgOCAwIDQ4LjYtMzkuNCA4OC04OCA4OHMtODgtMzkuNC04OC04OGMwLTMuNiAuMi03LjEgLjYtMTAuNS0xOS02LjQtMzIuNi0yNC40LTMyLjYtNDUuNWwwLTQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDAtMzJ6bTM1MiAzMmwwIDk2IDgyLjEgMC0zNS40LTg2LjFjLTIuNS02LTguMy05LjktMTQuOC05LjlMMzg0IDEyOHpNMTkyIDM5MmE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0yODAgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSxFYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tcGluLWxvY2siLGljb246WzUxMiw1MTIsW10sImU1MWYiLCJNMCAxODguNkMwIDg0LjQgODYgMCAxOTIgMCAyOTQuMSAwIDM3Ny42IDc4LjMgMzgzLjYgMTc3IDMyMC43IDE4NS4xIDI3MiAyMzguOCAyNzIgMzA0bDAgMjQuNGMtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDc1LjdjLTkuOSAxMS42LTE4LjkgMjEuNy0yNi40IDI5LjgtMTEuOCAxMi44LTMxLjUgMTIuOC00My4zIDAtNTAuMi01NC41LTE3MC40LTE5Ny41LTE3MC40LTMxNi44ek0xOTIgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4em0yNDAgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTI4OCA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LGlsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcHJheWluZyIsaWNvbjpbMzg0LDUxMixbMTI4NzIwLCJwcmF5Il0sImY2ODMiLCJNMzIwIDY0YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNMjAwLjcgMjY0bDIyLjkgMzEuNWM2LjUgOC45IDE2LjMgMTQuNyAyNy4yIDE2LjFzMjEuOS0xLjcgMzAuNC04LjdsODgtNzJjMTcuMS0xNCAxOS42LTM5LjIgNS42LTU2LjNzLTM5LjItMTkuNi01Ni4zLTUuNmwtNTUuMiA0NS4yLTI2LjItMzZjLTE1LjYtMjEuNS00MC42LTM0LjItNjcuMi0zNC4yLTMwLjkgMC01OS4yIDE3LjEtNzMuNiA0NC40TDQ3LjggMjgwLjljLTIwLjIgMzguNS05LjQgODUuOSAyNS42IDExMS44TDEyNi42IDQzMiA0MCA0MzJjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMjA4IDBjMTcuMyAwIDMyLjYtMTEuMSAzOC0yNy41cy0uMy0zNC40LTE0LjItNDQuN2wtMTE2LjEtODUuOCA0NS05MHoiXX0sJGJ0PWlsZSxJYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkLWxpc3QiLGljb246WzM4NCw1MTIsW10sImY0NmQiLCJNMzExLjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMnpNMjQ4IDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDB6TTEyOCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzIgMGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0wIDEyOGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek05NiA0MTZhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxQYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2Fjay1kb2xsYXIiLGljb246WzUxMiw1MTIsWzEyODE3Nl0sImY4MWQiLCJNMzI4IDExMmwtMTQ0IDAtMzcuMy03NC41Yy0xLjgtMy42LTIuNy03LjYtMi43LTExLjYgMC0xNC4zIDExLjYtMjUuOSAyNS45LTI1LjlMMzQyLjEgMGMxNC4zIDAgMjUuOSAxMS42IDI1LjkgMjUuOSAwIDQtLjkgOC0yLjcgMTEuNkwzMjggMTEyek0xNjkuNiAxNjBsMTcyLjggMCA0OC43IDQwLjZDNDU3LjYgMjU2IDQ5NiAzMzggNDk2IDQyNC41IDQ5NiA0NzIuOCA0NTYuOCA1MTIgNDA4LjUgNTEybC0zMDUuMSAwQzU1LjIgNTEyIDE2IDQ3Mi44IDE2IDQyNC41IDE2IDMzOCA1NC40IDI1NiAxMjAuOSAyMDAuNkwxNjkuNiAxNjB6TTI2MCAyMjRjLTExIDAtMjAgOS0yMCAyMGwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwyMTYgMzg0Yy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIweiJdfSxOYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW91bnRhaW4tc3VuIixpY29uOls1NzYsNTEyLFtdLCJlNTJmIiwiTTI1Ni41IDBjMTQuNyAwIDI4LjIgOC4xIDM1LjIgMjFsMjE2IDQwMGM2LjcgMTIuNCA2LjQgMjcuNC0uOCAzOS41LTcuMiAxMi4xLTIwLjMgMTkuNS0zNC4zIDE5LjVsLTQzMiAwYy0xNC4xIDAtMjcuMS03LjQtMzQuMy0xOS41cy03LjUtMjcuMS0uOC0zOS41bDIxNi00MDAgMi45LTQuNkMyMzEuNyA2LjIgMjQzLjYgMCAyNTYuNSAwek0xNzAuNCAyNDkuOWwyNi44IDI2LjhjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNDMuMy00My4zYzYtNiAxNC4xLTkuNCAyMi42LTkuNGw0Mi44IDAtNzIuMS0xMzMuNS04Ni4xIDE1OS40ek00OTYuNSAxNjBhODAgODAgMCAxIDEgMC0xNjAgODAgODAgMCAxIDEgMCAxNjB6Il19LGFsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC13aWRlLXNob3J0IixpY29uOls1NzYsNTEyLFsic29ydC1hbW91bnQtdXAiXSwiZjE2MSIsIk0xNTAuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMOTYgMTQxLjMgOTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6TTMyMCA0ODBsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnptMC0xMjhsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6Il19LEZidD1hbGUsT2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXJzLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1OTIiLCJNMjI0IDEyOGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTE3NiAzMzZjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMmwwIDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTE3NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTh6TTM5MiAxNDRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0yNy4yIDEwMC40YzkuMS0yLjkgMTguOC00LjQgMjguOC00LjQgNTMgMCA5NiA0MyA5NiA5NmwwIDEwLjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM2wtNzguOCAwYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0bDAtOGMwLTM0LjEtMTAuNi02NS43LTI4LjgtOTEuNnptLTI2Mi40IDBjLTE4LjIgMjYtMjguOCA1Ny41LTI4LjggOTEuNmwwIDhjMCA4LjQgMS40IDE2LjUgNC4xIDI0bC03OC44IDBDNDEuNiAzNjggMzIgMzU4LjQgMzIgMzQ2LjdMMzIgMzM2YzAtNTMgNDMtOTYgOTYtOTYgMTAgMCAxOS43IDEuNSAyOC44IDQuNHpNNzIgMTQ0YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMCA0NDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsNTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNDY0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sUmJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItb2YtZGF2aWQiLGljb246WzUxMiw1MTIsWzEwMDE3XSwiZjY5YSIsIk00MTUuOSAzMTEuOWwtMjcuOCA0OC4xIDU1LjcgMC0yNy44LTQ4LjF6TTM4My42IDI1NmwtNjAuMi0xMDQtMTM0LjggMC02MC4yIDEwNCA2MC4yIDEwNCAxMzQuOCAwIDYwLjItMTA0em02NC43IDBsNTguNCAxMDAuOWMzLjUgNiA1LjMgMTIuOCA1LjMgMTkuNyAwIDIxLjctMTcuNiAzOS40LTM5LjQgMzkuNGwtMTE3IDAtNjEuMyAxMDUuOEMyODYuNSA1MzUuNiAyNzEuOCA1NDQgMjU2IDU0NHMtMzAuNS04LjQtMzguNC0yMi4ybC02MS4zLTEwNS44LTExNyAwYy0yMS43IDAtMzkuNC0xNy42LTM5LjQtMzkuNCAwLTYuOSAxLjgtMTMuNyA1LjMtMTkuN0w2My43IDI1NiA1LjMgMTU1LjFDMS44IDE0OS4xIDAgMTQyLjMgMCAxMzUuNCAwIDExMy42IDE3LjYgOTYgMzkuNCA5NmwxMTcgMCA2MS4zLTEwNS44QzIyNS41LTIzLjYgMjQwLjItMzIgMjU2LTMyczMwLjUgOC40IDM4LjQgMjIuMmw2MS4zIDEwNS44IDExNyAwYzIxLjcgMCAzOS40IDE3LjYgMzkuNCAzOS40IDAgNi45LTEuOCAxMy43LTUuMyAxOS43TDQ0OC4zIDI1NnpNMzg4LjEgMTUybDI3LjggNDguMSAyNy44LTQ4LjEtNTUuNyAwek0yOTEgOTZsLTM1LTYwLjQtMzUgNjAuNCA3MCAwek0xMjMuOSAxNTJsLTU1LjcgMCAyNy44IDQ4LjEgMjcuOC00OC4xek05Ni4xIDMxMS45bC0yNy44IDQ4LjEgNTUuNyAwLTI3LjgtNDguMXpNMjIxIDQxNmwzNSA2MC40IDM1LTYwLjQtNzAgMHoiXX0sQmJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdGVzLW1lZGljYWwiLGljb246WzUxMiw1MTIsW10sImY0ODEiLCJNOTYgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MS41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdMNDkzLjMgMjkwLjdjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1MTIgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTYwIDBDMTI0LjcgMCA5NiAyOC43IDk2IDY0bDAgMjg4ek0yODggMTEybDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDggNDggMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQ4IDAgMCA0OGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQ4LTQ4IDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwIDAtNDhjMC04LjggNy4yLTE2IDE2LTE2ek00OCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAxMDYuNyAwIDEyMEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEw2NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyOHoiXX0sSGJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImF1c3RyYWwtc2lnbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTBhOSIsIk0yNjYuNSAyNDBsLTg1IDAgNDIuNS0xMDYuNCA0Mi41IDEwNi40em02OC45IDBMMjYyLjkgNTguM0MyNTYuNSA0Mi40IDI0MS4xIDMyIDIyNCAzMnMtMzIuNSAxMC40LTM4LjkgMjYuM0wxMTIuNiAyNDAgMzIgMjQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDYxLjQgMC0xOS4yIDQ4LTQyLjMgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwyMy4xIDAtMjAuOCA1Mi4xYy02LjYgMTYuNCAxLjQgMzUgMTcuOSA0MS42czM1LTEuNCA0MS42LTE3LjlsMzAuMy03NS45IDIwMCAwIDMwLjMgNzUuOWM2LjYgMTYuNCAyNS4yIDI0LjQgNDEuNiAxNy45czI0LjQtMjUuMiAxNy45LTQxLjZMMzkyLjkgMzg0IDQxNiAzODRjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQyLjMgMC0xOS4yLTQ4IDYxLjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAuNiAwem0tNDkuNyA0OGwxOS4yIDQ4LTE2MS42IDAgMTkuMi00OCAxMjMuMyAweiJdfSxxYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xpcGJvYXJkLXVzZXIiLGljb246WzM4NCw1MTIsW10sImY3ZjMiLCJNMzExLjQgMzJsOC42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDguNiAwQzgzLjYgMTIuOSAxMDQuMyAwIDEyOCAwTDI1NiAwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMnpNMjQ4IDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEwxMzYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTEyIDB6TTE5MiAzNDRhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTk4LjMgNDEzYy0xMi45IDE1LjYgMi4yIDM1IDIyLjQgMzVsMTQyLjUgMGMyMC4yIDAgMzUuMy0xOS40IDIyLjQtMzUtMTQuNy0xNy43LTM2LjktMjktNjEuNy0yOWwtNjQgMGMtMjQuOCAwLTQ3IDExLjMtNjEuNyAyOXoiXX0samJ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtaW1hZ2UiLGljb246WzM4NCw1MTIsWzEyODQ0M10sImYxYzUiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTEyOCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNOTIuNiA0NDhsMTk4LjggMGMxNS44IDAgMjguNi0xMi44IDI4LjYtMjguNiAwLTcuMy0yLjgtMTQuNC03LjktMTkuN0wyMTUuMyAyOTcuOWMtNi02LjMtMTQuNC05LjktMjMuMi05LjlsLS4zIDBjLTguOCAwLTE3LjEgMy42LTIzLjIgOS45TDcxLjkgMzk5LjdDNjYuOCA0MDUgNjQgNDEyLjEgNjQgNDE5LjQgNjQgNDM1LjIgNzYuOCA0NDggOTIuNiA0NDh6Il19LG5sZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtY2FyZXQtcmlnaHQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtcmlnaHQiXSwiZjE1MiIsIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMHpNMzIwIDI1NmMwIDYuNy0yLjggMTMtNy43IDE3LjZsLTExMiAxMDRjLTcgNi41LTE3LjIgOC4yLTI1LjkgNC40UzE2MCAzNjkuNSAxNjAgMzYwbDAtMjA4YzAtOS41IDUuNy0xOC4yIDE0LjQtMjJzMTguOS0yLjEgMjUuOSA0LjRsMTEyIDEwNGM0LjkgNC41IDcuNyAxMC45IDcuNyAxNy42eiJdfSxWYnQ9bmxlLFVidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsIixpY29uOls1MTIsNTEyLFsxMjk1MTRdLCJmNDkyIiwiTTM0Mi42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzA2LjcgNjQgMjguMSAzNDIuNkMxMC4xIDM2MC42IDAgMzg1IDAgNDEwLjVMMCA0MTZjMCA1MyA0MyA5NiA5NiA5Nmw1LjUgMGMyNS41IDAgNDkuOS0xMC4xIDY3LjktMjguMWwyNzguNi0yNzguNiA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6TTIwNS4zIDI1NmwxNDYuNy0xNDYuNyA1MC43IDUwLjctOTYgOTYtMTAxLjUgMHoiXX0sV2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbGljb3B0ZXIiLGljb246WzU3Niw1MTIsWzEyODY0MV0sImY1MzMiLCJNMTc2IDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE1MiAwIDAgNDgtMjIwLjggMC0zMi44LTM5LjRDNjkuOSA4My4yIDYzLjEgODAgNTYgODBMMjQgODBDMTUuNyA4MCA4IDg0LjMgMy42IDkxLjRzLTQuOCAxNS45LTEuMSAyMy40bDQ4IDk2QzU0LjYgMjE4LjkgNjIuOSAyMjQgNzIgMjI0bDEwNy44IDAgMTA0IDE0My4xYzE1LjEgMjAuNyAzOS4xIDMyLjkgNjQuNyAzMi45bDc1LjUgMGM3NS4xIDAgMTM2LTYwLjkgMTM2LTEzNlM0OTkuMSAxMjggNDI0IDEyOGwtNDggMCAwLTQ4IDE1MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDE3NiAzMnpNMzc2IDE5Mmw0OCAwYzM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcybC00OCAwIDAtMTQ0ek01NTIgNDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNCAwIDQuNC0zLjYgOC04IDhsLTI3MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2IDAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxHYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWl0dGVuIixpY29uOls0NDgsNTEyLFtdLCJmN2I1IiwiTTM1MiAzODRMNjQgMzg0IDUuNCAxNzguOUMxLjggMTY2LjQgMCAxNTMuNCAwIDE0MC4zIDAgNjIuOCA2Mi44IDAgMTQwLjMgMGwzLjQgMGM2NiAwIDEyMy41IDQ0LjkgMTM5LjUgMTA4LjlsMzEuNCAxMjUuOCAxNy42LTIwLjFDMzQ0LjggMjAwLjIgMzYyLjkgMTkyIDM4MiAxOTJsMi44IDBjMzQuOSAwIDYzLjMgMjguMyA2My4zIDYzLjMgMCAxNS45LTYgMzEuMi0xNi44IDQyLjlMMzUyIDM4NHpNMzIgNDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJMNjQgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2eiJdfSxZYnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2FzLXB1bXAiLGljb246WzUxMiw1MTIsWzk5ODFdLCJmNTJmIiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMjU2IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxOTIgOCAwYzQ4LjYgMCA4OCAzOS40IDg4IDg4bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE1NGMtMjcuNi03LjEtNDgtMzIuMi00OC02MmwwLTU5LjUtMjUuOC0yOC4zYy04LjktOS44LTguMi0yNSAxLjYtMzMuOXMyNS04LjIgMzMuOSAxLjZsNzEuNyA3OC44YzkuNCAxMC4zIDE0LjYgMjMuNyAxNC42IDM3LjdMNTEyIDM3NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnMtNzItMzIuMi03Mi03MmwwLTMyYzAtMjIuMS0xNy45LTQwLTQwLTQwbC04IDAgMCAxNjEuNGM5LjMgMy4zIDE2IDEyLjIgMTYgMjIuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNEw0MCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTAuNSA2LjctMTkuMyAxNi0yMi42TDMyIDY0ek05NiA4MGwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZMMTEyIDY0Yy04LjggMC0xNiA3LjItMTYgMTZ6Il19LFpidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlbnZlbG9wZS1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU0ZTgiLCJNNjQgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODEuNGMtMjQuNC0xMS4yLTUxLjQtMTcuNC04MC0xNy40LTg3LjcgMC0xNjEuNyA1OC44LTE4NC43IDEzOS4yLTcuMS0xLjMtMTQuMS00LjItMjAuMS04LjhsLTIwOC0xNTZDNzEuMSAxNDEuMyA2NCAxMjcuMSA2NCAxMTJ6TTMwNCAzNjhjMCAyOC42IDYuMiA1NS42IDE3LjQgODBMMTI4IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xODggMTk4LjQgMTQ4LjhjMTIuNiA5LjQgMjYuOSAxNS40IDQxLjcgMTcuOSAwIDEuOC0uMSAzLjUtLjEgNS4zem00OCAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxvbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNrYXRpbmciLGljb246WzUxMiw1MTIsWyJza2F0aW5nIl0sImY3YzUiLCJNMzY4IDU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMTI4IDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxNTAuMSAwYzQ5LjkgMCA3NC45IDYwLjMgMzkuNiA5NS42bC02My45IDYzLjkgNjkuOCAzMWMxNy4zIDcuNyAyOC41IDI0LjkgMjguNSA0My45bDAgODUuNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTc1LjItODIuNC0zNi42Yy00MS0xOC4yLTUxLTcyLTE5LjMtMTAzLjdsNDAuNC00MC40LTk4LjcgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTg5LjQgMzYxLjRsNzUuOS03NS45YzcuNyAxOS43IDIxLjYgMzcuMyA0MSA0OS42bC03MS42IDcxLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zem0zNDYuNSA4Ny4xYzguNiAyLjEgMTMuOCAxMC44IDExLjYgMTkuNGwtLjQgMS43Yy02LjIgMjQuOS0yOC42IDQyLjQtNTQuMyA0Mi40TDMwNCA1MTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsODguOCAwYzExIDAgMjAuNi03LjUgMjMuMy0xOC4ybC40LTEuN2MyLjEtOC42IDEwLjgtMTMuOCAxOS40LTExLjZ6TTE0My4yIDQ4Ni4zbC02LjIgMy4xYy0yMS42IDEwLjgtNDcuNiA2LjYtNjQuNi0xMC41TDEyLjcgNDE5LjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGw1OS42IDU5LjZjNy4zIDcuMyAxOC41IDkuMSAyNy43IDQuNWw2LjItMy4xYzcuOS00IDE3LjUtLjcgMjEuNSA3LjJzLjcgMTcuNS03LjIgMjEuNXoiXX0sWGJ0PW9sZSx0RT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdW4iLGljb246WzU3Niw1MTIsWzk3MjhdLCJmMTg1IiwiTTI4OC0zMmM4LjQgMCAxNi4zIDQuNCAyMC42IDExLjdMMzY0LjEgNzIuMyA0NjguOSA0NmM4LjItMiAxNi45IC40IDIyLjggNi4zUzUwMCA2NyA0OTggNzUuMWwtMjYuMyAxMDQuNyA5Mi43IDU1LjVjNy4yIDQuMyAxMS43IDEyLjIgMTEuNyAyMC42cy00LjQgMTYuMy0xMS43IDIwLjZMNDcxLjcgMzMyLjEgNDk4IDQzNi44YzIgOC4yLS40IDE2LjktNi4zIDIyLjhTNDc3IDQ2OCA0NjguOSA0NjZsLTEwNC43LTI2LjMtNTUuNSA5Mi43Yy00LjMgNy4yLTEyLjIgMTEuNy0yMC42IDExLjdzLTE2LjMtNC40LTIwLjYtMTEuN0wyMTEuOSA0MzkuNyAxMDcuMiA0NjZjLTguMiAyLTE2LjgtLjQtMjIuOC02LjNTNzYgNDQ1IDc4IDQzNi44bDI2LjItMTA0LjctOTIuNi01NS41QzQuNCAyNzIuMiAwIDI2NC40IDAgMjU2czQuNC0xNi4zIDExLjctMjAuNkwxMDQuMyAxNzkuOSA3OCA3NS4xYy0yLTguMiAuMy0xNi44IDYuMy0yMi44Uzk5IDQ0IDEwNy4yIDQ2bDEwNC43IDI2LjIgNTUuNS05Mi42IDEuOC0yLjZjNC41LTUuNyAxMS40LTkuMSAxOC44LTkuMXptMCAxNDRhMTQ0IDE0NCAwIDEgMCAwIDI4OCAxNDQgMTQ0IDAgMSAwIDAtMjg4em0wIDI0MGE5NiA5NiAwIDEgMSAwLTE5MiA5NiA5NiAwIDEgMSAwIDE5MnoiXX0sc2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhc2ViYWxsIixpY29uOls1MTIsNTEyLFsxMjkzNTgsOTkxOCwiYmFzZWJhbGwtYmFsbCJdLCJmNDMzIiwiTTIzMi40IDEuMWMtMTIyLjIgMTEuNC0yMTkuNSAxMDguNy0yMzAuOSAyMzAuOSAxNi4yLS4xIDMyLTEuOCA0Ny4yLTUgMTMtMi43IDI1LjcgNS41IDI4LjQgMTguNXMtNS41IDI1LjctMTguNSAyOC40Yy0xOC40IDMuOS0zNy42IDYtNTcuMSA2LjEgMTEuNCAxMjIuMiAxMDguNyAyMTkuNSAyMzAuOSAyMzAuOSAuMS0xOS41IDIuMi0zOC43IDYuMS01Ny4xIDIuNy0xMyAxNS41LTIxLjMgMjguNC0xOC41czIxLjMgMTUuNSAxOC41IDI4LjRjLTMuMiAxNS4yLTQuOSAzMS01IDQ3LjIgMTIyLjItMTEuNCAyMTkuNS0xMDguNyAyMzAuOS0yMzAuOS0xNi4yIC4xLTMyIDEuOC00Ny4yIDUtMTMgMi43LTI1LjctNS41LTI4LjQtMTguNXM1LjUtMjUuNyAxOC41LTI4LjRjMTguNC0zLjkgMzcuNi02IDU3LjEtNi4xLTExLjQtMTIyLjItMTA4LjctMjE5LjUtMjMwLjktMjMwLjktLjEgMTkuNS0yLjIgMzguNy02LjEgNTcuMS0yLjcgMTMtMTUuNSAyMS4zLTI4LjQgMTguNXMtMjEuMy0xNS41LTE4LjUtMjguNGMzLjItMTUuMiA0LjktMzEgNS00Ny4yem0yLjggMTUxLjRjLTIxLjQgMzIuOS00OS41IDYwLjktODIuMyA4Mi4zLTExLjEgNy4yLTI2IDQuMS0zMy4yLTdzLTQuMS0yNiA3LTMzLjJjMjcuMi0xNy43IDUwLjUtNDEgNjguMy02OC4zIDcuMi0xMS4xIDIyLjEtMTQuMyAzMy4yLTdzMTQuMyAyMi4xIDcgMzMuMnpNMzkzLjEgMjg0LjJjNy4yIDExLjEgNC4xIDI2LTcgMzMuMi0yNy4yIDE3LjctNTAuNSA0MS02OC4zIDY4LjMtNy4yIDExLjEtMjIuMSAxNC4zLTMzLjIgN3MtMTQuMy0yMi4xLTctMzMuMmMyMS40LTMyLjkgNDkuNS02MC45IDgyLjMtODIuMyAxMS4xLTcuMiAyNi00LjEgMzMuMiA3eiJdfSxRYnQ9c2xlLEpidD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzZSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyem02NCA4MGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTI3MiAyMjRjOC40IDAgMTYuMSA0LjQgMjAuNSAxMS41bDg4IDE0NGM0LjUgNy40IDQuNyAxNi43IC41IDI0LjNTMzY4LjcgNDE2IDM2MCA0MTZMODggNDE2Yy04LjkgMC0xNy4yLTUtMjEuMy0xMi45cy0zLjUtMTcuNSAxLjYtMjQuOGw1Ni04MGM0LjUtNi40IDExLjgtMTAuMiAxOS43LTEwLjJzMTUuMiAzLjggMTkuNyAxMC4ybDI2LjQgMzcuOCA2MS40LTEwMC41YzQuNC03LjEgMTIuMS0xMS41IDIwLjUtMTEuNXoiXX0sS2J0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im5vdGRlZiIsaWNvbjpbMzg0LDUxMixbXSwiZTFmZSIsIk02NCAzOTAuM0wxNTMuNSAyNTYgNjQgMTIxLjcgNjQgMzkwLjN6TTEwMi41IDQ0OEwyODEuNSA0NDggMTkyIDMxMy43IDEwMi41IDQ0OHptMTI4LTE5MkwzMjAgMzkwLjMgMzIwIDEyMS43IDIzMC41IDI1NnpNMjgxLjUgNjRMMTAyLjUgNjQgMTkyIDE5OC4zIDI4MS41IDY0ek0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEwzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQxNmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgNDh6Il19LGxsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXNrZXRiYWxsIixpY29uOls1MTIsNTEyLFsxMjc5MzYsImJhc2tldGJhbGwtYmFsbCJdLCJmNDM0IiwiTTkyLjcgNTguOGw3OC40IDc4LjRjMTguMi0yNSAyOC45LTU1LjkgMjguOS04OS4yIDAtMTQuMS0xLjktMjcuNy01LjUtNDAuNi0zOCA5LjQtNzIuNiAyNy4yLTEwMS44IDUxLjR6TTU4LjggOTIuN2MtMjQuMiAyOS4yLTQyIDYzLjgtNTEuNCAxMDEuOCAxMi45IDMuNiAyNi41IDUuNSA0MC42IDUuNSAzMy4zIDAgNjQuMS0xMC43IDg5LjItMjguOUw1OC44IDkyLjd6TTI1NiAwYy00LjYgMC05LjIgLjEtMTMuNyAuNCAzLjcgMTUuMyA1LjcgMzEuMiA1LjcgNDcuNiAwIDQ2LjYtMTUuOSA4OS40LTQyLjYgMTIzLjRMMjU2IDIyMi4xIDQxOS4zIDU4LjhDMzc0LjkgMjIuMSAzMTguMSAwIDI1NiAwek00OCAyNDhjLTE2LjQgMC0zMi40LTItNDcuNi01LjctLjIgNC41LS40IDkuMS0uNCAxMy43IDAgNjIuMSAyMi4xIDExOC45IDU4LjggMTYzLjNMMjIyLjEgMjU2IDE3MS40IDIwNS40QzEzNy40IDIzMi4xIDk0LjYgMjQ4IDQ4IDI0OHptNDYzLjYgMjEuN2MuMi00LjUgLjQtOS4xIC40LTEzLjcgMC02Mi4xLTIyLjEtMTE4LjktNTguOC0xNjMuM0wyODkuOSAyNTYgMzQwLjYgMzA2LjZjMzQtMjYuNyA3Ni45LTQyLjYgMTIzLjQtNDIuNiAxNi40IDAgMzIuNCAyIDQ3LjYgNS43em0tNy4xIDQ3LjhjLTEyLjktMy42LTI2LjUtNS41LTQwLjYtNS41LTMzLjMgMC02NC4xIDEwLjctODkuMiAyOC45bDc4LjQgNzguNGMyNC4yLTI5LjIgNDItNjMuOCA1MS40LTEwMS44ek0zNDAuOSAzNzQuOGMtMTguMiAyNS0yOC45IDU1LjktMjguOSA4OS4yIDAgMTQuMSAxLjkgMjcuNyA1LjUgNDAuNiAzOC05LjQgNzIuNi0yNy4yIDEwMS44LTUxLjRsLTc4LjQtNzguNHptLTM0LjMtMzQuM0wyNTYgMjg5LjkgOTIuNyA0NTMuMmM0NC4zIDM2LjcgMTAxLjIgNTguOCAxNjMuMyA1OC44IDQuNiAwIDkuMi0uMSAxMy43LS40LTMuNy0xNS4zLTUuNy0zMS4yLTUuNy00Ny42IDAtNDYuNiAxNS45LTg5LjQgNDIuNi0xMjMuNHoiXX0sZXZ0PWxsZSxjbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuY2lsIixpY29uOls1MTIsNTEyLFs5OTk5LDYxNTA0LCJwZW5jaWwtYWx0Il0sImYzMDMiLCJNMzYuNCAzNTMuMmM0LjEtMTQuNiAxMS44LTI3LjkgMjIuNi0zOC43bDE4MS4yLTE4MS4yIDMzLjktMzMuOWMxNi42IDE2LjYgNTEuMyA1MS4zIDEwNCAxMDRsMzMuOSAzMy45LTMzLjkgMzMuOS0xODEuMiAxODEuMmMtMTAuNyAxMC43LTI0LjEgMTguNS0zOC43IDIyLjZMMzAuNCA1MTAuNmMtOC4zIDIuMy0xNy4zIDAtMjMuNC02LjJTLTEuNCA0ODkuMyAuOSA0ODFMMzYuNCAzNTMuMnptNTUuNi0zLjdjLTQuNCA0LjctNy42IDEwLjQtOS4zIDE2LjZsLTI0LjEgODYuOSA4Ni45LTI0LjFjNi40LTEuOCAxMi4yLTUuMSAxNy05LjdMOTEuOSAzNDkuNXptMzU0LTE0Ni4xYy0xNi42LTE2LjYtNTEuMy01MS4zLTEwNC0xMDRMMzA4IDY1LjVDMzM0LjUgMzkgMzQ5LjQgMjQuMSAzNTIuOSAyMC42IDM2Ni40IDcgMzg0LjgtLjYgNDA0LS42UzQ0MS42IDcgNDU1LjEgMjAuNmwzNS43IDM1LjdDNTA0LjQgNjkuOSA1MTIgODguMyA1MTIgMTA3LjRzLTcuNiAzNy42LTIxLjIgNTEuMWMtMy41IDMuNS0xOC40IDE4LjQtNDQuOSA0NC45eiJdfSx0dnQ9Y2xlLHJ2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1hcnJvdy1sb29wLWxlZnQiLGljb246WzY0MCw1MTIsW10sImU1NTEiLCJNMTYwIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek03My40IDIyNy45bDIyLjYtMjIuNiAwIDY5LjNjMCAyOCAxMi4yIDU0LjcgMzMuNSA3Mi45bDcxLjQgNjEuMmM1LjkgNS4xIDkuOCAxMi4xIDEwLjkgMTkuOGwxMi42IDg4LjFjMi41IDE3LjUgMTguNyAyOS43IDM2LjIgMjcuMnMyOS43LTE4LjcgMjcuMi0zNi4ybC0xMi42LTg4LjFjLTMuMy0yMy4xLTE0LjktNDQuMS0zMi42LTU5LjNsLTM0LjUtMjkuNiAwLTExNS4yIDMuOCA0LjdjMTguMiAyMi44IDQ1LjggMzYgNzUgMzZsMzMuMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMy4yIDBjLTkuNyAwLTE4LjktNC40LTI1LTEybC0xNy45LTIyLjRjLTIzLTI4LjgtNTcuOS00NS42LTk0LjgtNDUuNi0zMi4yIDAtNjMuMSAxMi44LTg1LjggMzUuNkwyOC4xIDE4Mi42QzEwLjEgMjAwLjYgMCAyMjUgMCAyNTAuNUwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcuNWMwLTguNSAzLjQtMTYuNiA5LjQtMjIuNnpNODUuOCA0MDcuM2MtMS41IDUuMi00LjMgMTAtOC4xIDEzLjhMOS40IDQ4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDY4LjMtNjguM2MxMS41LTExLjUgMTkuOS0yNS44IDI0LjQtNDEuNWwyLjItNy42LTQ2LTM5LjRjLTIuNS0yLjItNS00LjQtNy40LTYuOEw4NS44IDQwNy4zek0zNTkgMzM1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTMxLTMxIDEwMi4xIDBjMS4yIDAgMi40LS4xIDMuNS0uMyA1Ni4xLTMuOSAxMDAuNS01MC42IDEwMC41LTEwNy43IDAtNTkuNi00OC40LTEwOC0xMDgtMTA4bC05MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDkyIDBjMzMuMSAwIDYwIDI2LjkgNjAgNjBzLTI2LjkgNjAtNjAgNjBsLTk4LjEgMCAzMS0zMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC03MiA3MnoiXX0saXZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2Utc2l4IixpY29uOls0NDgsNTEyLFs5ODYxXSwiZjUyNiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGRsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmdsZXMtZG93biIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS1kb3duIl0sImYxMDMiLCJNMjE0LjYgNDcwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE5MiA0MDIuNyAzMjkuNCAyNjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwem0xNjAtMzUybC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxOTIgMjEwLjcgMzI5LjQgNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zeiJdfSxhdnQ9ZGxlLG52dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzeXJpbmdlIixpY29uOls1NzYsNTEyLFsxMjgxMzddLCJmNDhlIiwiTTQ5Ny41LTE3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDE1IDE1LTQ2LjEgNDYuMS02My02M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3IDctNzguMSA3OC4xIDQxIDQxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQxLTQxLTQ2LjEgNDYuMSA0MSA0MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00MS00MS0zNy43IDM3LjdjLTEwLjUgMTAuNS0xNi40IDI0LjctMTYuNCAzOS42bDAgODguOC01NyA1N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU3LTU3IDg4LjggMGMxNC45IDAgMjkuMS01LjkgMzkuNi0xNi40bDIyOS43LTIyOS43IDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTYzLTYzIDQ2LjEtNDYuMSAxNSAxNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTY0LTY0eiJdfSx1bGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlYXQtYXduIixpY29uOls1NzYsNTEyLFsid2hlYXQtYWx0Il0sImUyY2QiLCJNNzkuNyAyMzQuNmM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjIgODMuOSAzMS43LTcuNyA2Ni4yIDEgOTAuNiAyNS4zbDQ2LjEgNDYuMWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNy40IDcuNGMtMzcuNSAzNy41LTk4LjMgMzcuNS0xMzUuOCAwTDEzNC4xIDQ0NC4zIDQ5LjQgNTI5Yy05LjQgOS40LTI0LjUgOS40LTMzLjkgMC05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4NC43LTg0LjctMzAuNS0zMC41Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xem0xMDQtMTA0YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMiA4My45IDMxLjctNy43IDY2LjIgMSA5MC42IDI1LjNsNDYuMSA0Ni4xYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03LjQgNy40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBsLTk0LjktOTQuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNDk1LjIgMTVjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjJMNTI5LjIgNDkgNDE0LjcgMTYzLjRjNy43IDEgMTUuMiAzIDIyLjUgNS45TDQ5NS41IDExMWM5LjQtOS40IDI0LjYtOS40IDM0IDAgOC44IDguOCA5LjMgMjIuNyAxLjYgMzIuMWwtMS43IDEuOC01Mi43IDUyLjcgMzkgMzljNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcuNCA3LjRjLTM3LjUgMzcuNS05OC4zIDM3LjUtMTM1LjggMGwtOTQuOS05NC45Yy0zNy41LTM3LjUtMzcuNS05OC4zIDAtMTM1LjdsNy40LTcuNCAyLjUtMi4xYzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsMzkgMzkgNTIuNy01Mi43YzkuNC05LjQgMjQuNi05LjQgMzQgMCA4LjggOC44IDkuMyAyMi43IDEuNiAzMi4xbC0xLjcgMS44LTU4LjMgNTguM2MyLjggNy4xIDQuNyAxNC41IDUuNyAyMi4xTDQ5NS4yIDE1eiJdfSxvdnQ9dWxlLHN2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS11cCIsaWNvbjpbNTEyLDUxMixbXSwiZTIyZCIsIk0yMDAgMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEyNy4zIDE3My42IDE1OS4yYzYuNiA2LjEgMTAuNCAxNC42IDEwLjQgMjMuNmwwIDQzLjdjMCAxMC45LTEwLjcgMTguNi0yMS4xIDE1LjJsLTE2Mi45LTU0LjMgMCA5OS43IDY2IDUyLjhjMy44IDMgNiA3LjYgNiAxMi41bDAgMTkuOGMwIDEwLjQtOS44IDE4LTE5LjkgMTUuNUwyNTYgNTEyIDE0Ny45IDUzOWMtMTAuMSAyLjUtMTkuOS01LjEtMTkuOS0xNS41bDAtMTkuOGMwLTQuOSAyLjItOS41IDYtMTIuNWw2Ni01Mi44IDAtOTkuNy0xNjIuOSA1NC4zQzI2LjcgMzk2LjQgMTYgMzg4LjcgMTYgMzc3LjhsMC00My43YzAtOSAzLjgtMTcuNSAxMC40LTIzLjZMMjAwIDE1MS4zIDIwMCAyNHoiXX0sbHZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFsaWduLWNlbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjAzNyIsIk0zNTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyem05NiAxMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyek0wIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNTIgMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnoiXX0sY3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvY2tleS1wdWNrIixpY29uOls1MTIsNTEyLFtdLCJmNDUzIiwiTTI1NiAyNTZDMTE0LjYgMjU2IDAgMjEzIDAgMTYwczExNC42LTk2IDI1Ni05NiAyNTYgNDMgMjU2IDk2LTExNC42IDk2LTI1NiA5NnpNMCAzNTJMMCAyNDIuN2MxNi45IDEyLjMgMzcgMjIuMiA1OC4xIDMwLjEgNTMgMTkuOSAxMjMgMzEuMiAxOTcuOSAzMS4yczE0NC45LTExLjMgMTk3LjktMzEuMmMyMS4yLTcuOSA0MS4yLTE3LjggNTguMS0zMC4xTDUxMiAzNTJjMCA1My0xMTQuNiA5Ni0yNTYgOTZTMCA0MDUgMCAzNTJ6Il19LHBsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctbGVmdCIsaWNvbjpbNTEyLDUxMixbImFycm93LWNpcmNsZS1sZWZ0Il0sImYwYTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNSAyMzlsODAtODBjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zOSAzOSAxNTAuMSAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNTAuMSAwIDM5IDM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sZHZ0PXBsZSx1dnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtYm9sdCIsaWNvbjpbNjQwLDUxMixbXSwiZTU1YiIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTc3LjQtNzdjLTUuOC00LjItMTMuOC00LTE5LjQgLjVsLTgwIDY0Yy01LjMgNC4yLTcuNCAxMS40LTUuMSAxNy44UzQzMy4yIDQxNiA0NDAgNDE2bDMyLjkgMC0xNS45IDQyLjRjLTIuNSA2LjctLjIgMTQuMyA1LjYgMTguNnMxMy44IDQgMTkuNC0uNWw4MC02NGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44UzU1OC44IDM4NCA1NTIgMzg0bC0zMi45IDAgMTUuOS00Mi40YzIuNS02LjcgLjItMTQuMy01LjYtMTguNnoiXX0scHZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlc3Ryb29tIixpY29uOls2NDAsNTEyLFtdLCJmN2JkIiwiTTgwIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNGwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE1NC44Yy04LjEgOS4yLTIxLjEgMTMuMi0zMy41IDkuNC0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDQuNCAxNTYuOSA4My42IDEyOCAxMjggMTI4czgzLjYgMjguOSA5Ni44IDcxLjJsMjkuNyA5NS4yYzUuMyAxNi45LTQuMSAzNC44LTIxIDQwLjEtMTIuNCAzLjktMjUuNC0uMi0zMy41LTkuNEwyMDAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTI4LTE2IDB6TTMyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDY0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00NjQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNDQwIDQ4MGwwLTk2LTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsOS0yNi45Yy0zLjIgMC02LjQtLjUtOS41LTEuNS0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDI4LjQgMTU2LjkgNDY3LjYgMTI4IDUxMiAxMjhzODMuNiAyOC45IDk2LjggNzEuMmwyOS43IDk1LjJjNS4zIDE2LjktNC4xIDM0LjgtMjEgNDAuMS0zLjIgMS02LjQgMS41LTkuNSAxLjVsOSAyNi45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMWwtMTcuOCAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0xNiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6Il19LGh2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTRhZCIsIk0zMjAuNSA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMzItOTZjLTUzIDAtOTYgNDMtOTYgOTYgMCA0MS44IDI2LjcgNzcuNCA2NCA5MC41bDAgMjU3LjljLTYyLjktMTQuMy0xMTAuMi02OS43LTExMS45LTEzNi41bDE2LjEgMTQuMWMxMCA4LjcgMjUuMSA3LjcgMzMuOS0yLjNzNy43LTI1LjEtMi4zLTMzLjlsLTY0LTU2Yy05LTcuOS0yMi42LTcuOS0zMS42IDBsLTY0IDU2Yy0xMCA4LjctMTEgMjMuOS0yLjMgMzMuOXMyMy45IDExIDMzLjkgMi4zbDE2LjItMTQuMmMyLjEgMTEzLjEgOTQuNCAyMDQuMSAyMDggMjA0LjEgMjguMyAwIDU1LjQtNS43IDgwLTE1LjlsMC0uMiAwLTcyLjJjLTE0LjQgOS42LTMwLjYgMTYuNy00OCAyMC43bDAtMjU3LjljMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2em0yNzIgMzA0LjFsMCA0Ny45LTY0IDAgMC00Ny45YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6TTQxNi41IDQwMGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sZnZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpbWVsaW5lIixpY29uOls1NzYsNTEyLFtdLCJlMjljIiwiTTE2MCAxNjkuM2MyOC4zLTEyLjMgNDgtNDAuNSA0OC03My4zIDAtNDQuMi0zNS44LTgwLTgwLTgwUzQ4IDUxLjggNDggOTZjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDU0LjctNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMCAwIDU0LjdjLTI4LjMgMTIuMy00OCA0MC41LTQ4IDczLjMgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtNTQuNyAyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTU0LjdjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuMyAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zbDAgNTQuNy0yNTYgMCAwLTU0Ljd6Il19LG12dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWdodGJ1bGIiLGljb246WzM4NCw1MTIsWzEyODE2MV0sImYwZWIiLCJNMjkyLjkgMzg0YzcuMy0yMi4zIDIxLjktNDIuNSAzOC40LTU5LjkgMzIuNy0zNC40IDUyLjctODAuOSA1Mi43LTEzMi4xIDAtMTA2LTg2LTE5Mi0xOTItMTkyUzAgODYgMCAxOTJjMCA1MS4yIDIwIDk3LjcgNTIuNyAxMzIuMSAxNi41IDE3LjQgMzEuMiAzNy42IDM4LjQgNTkuOWwyMDEuNyAwek0yODggNDMybC0xOTIgMCAwIDE2YzAgNDQuMiAzNS44IDgwIDgwIDgwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMC0xNnpNMTg0IDExMmMtMzkuOCAwLTcyIDMyLjItNzIgNzIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjAgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjR6Il19LGhsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtcmlnaHQiXSwiZjBhOSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptNDEtMTU5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDM5LTM5LTE1MC4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTUwLjEgMC0zOS0zOWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC04MCA4MHoiXX0sZ3Z0PWhsZSxidnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1hbmQtdmVudXMiLGljb246WzUxMiw1MTIsWzk4OTNdLCJmMjI0IiwiTTM2OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTEyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzQuNy02MyA2M2MxOS41IDI4LjQgMzEgNjIuNyAzMSA5OS44IDAgODYuMy02Mi4xIDE1OC4xLTE0NCAxNzMuMWwwIDM0LjkgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtMzQuOWMtODEuOS0xNS0xNDQtODYuOC0xNDQtMTczLjEgMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzYgMzcgMCA3MS40IDExLjQgOTkuOCAzMWw2My02My0zNC43IDB6TTM1MiAyMDhhMTEyIDExMiAwIDEgMCAtMjI0IDAgMTEyIDExMiAwIDEgMCAyMjQgMHoiXX0sckU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibmV0d29yay13aXJlZCIsaWNvbjpbNTc2LDUxMixbXSwiZjZmZiIsIk0yNDggODhsODAgMCAwIDQ4LTgwIDAgMC00OHptLTgtNTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgNjRjMCAyNi41IDIxLjUgNDggNDggNDhsMTYgMCAwIDMyLTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDAgMCAzMi0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDk2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtMTYgMCAwLTMyIDE5MiAwIDAgMzItMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGw5NiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTE2IDAgMC0zMiA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yMjQgMCAwLTMyIDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC02NGMwLTI2LjUtMjEuNS00OC00OC00OGwtOTYgMHpNNDQ4IDM3Nmw4IDAgMCA0OC04MCAwIDAtNDggNzIgMHptLTI1NiAwbDggMCAwIDQ4LTgwIDAgMC00OCA3MiAweiJdfSx2dnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctc2hpZWxkIixpY29uOls1NzYsNTEyLFtdLCJlNGQ4IiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjAxLjIgMGMtMTIuNS0xNC43LTIzLjItMzAuOC0zMS44LTQ4bC04OS41IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwIDAtMjYuN2MwLTE4LjEgNi4xLTM1LjIgMTYuNi00OC44LS40LTEuNC0uNi0yLjktLjYtNC41bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMSA4Ni43LTI4LjljMy4xLTEgNi4yLTEuOCA5LjMtMi41TDQxNiA2NGMwLTM1LjMtMjguNy02NC02NC02NEw5NiAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMjcyIDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTEyOCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNNDQ1LjMgNDg4LjVsLTEzLjMgNi4zIDAtMTg4LjEgOTYgMzIgMCAxOS42YzAgNTUuOC0zMi4yIDEwNi41LTgyLjcgMTMwLjN6TTQyMS45IDI1OS41bC0xMTIgMzcuM2MtMTMuMSA0LjQtMjEuOSAxNi42LTIxLjkgMzAuNGwwIDMxLjFjMCA3NC40IDQzIDE0Mi4xIDExMC4yIDE3My43bDE4LjUgOC43YzQuOCAyLjIgMTAgMy40IDE1LjIgMy40czEwLjUtMS4yIDE1LjItMy40bDE4LjUtOC43QzUzMyA1MDAuMyA1NzYgNDMyLjYgNTc2IDM1OC4ybDAtMzEuMWMwLTEzLjgtOC44LTI2LTIxLjktMzAuNGwtMTEyLTM3LjNjLTYuNi0yLjItMTMuNy0yLjItMjAuMiAweiJdfSx4dnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZSIsaWNvbjpbNTc2LDUxMixbXSwiZjEyMSIsIk0zNjAuOCAxLjJjLTE3LTQuOS0zNC43IDUtMzkuNiAyMmwtMTI4IDQ0OGMtNC45IDE3IDUgMzQuNyAyMiAzOS42czM0LjctNSAzOS42LTIybDEyOC00NDhjNC45LTE3LTUtMzQuNy0yMi0zOS42em02NC42IDEzNi4xYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w3My40IDczLjQtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC05Ni05NmMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDB6bS0yNzQuNyAwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMTUwLjYgMTgyLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjN6Il19LGZsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZWF0aGVyLXBvaW50ZWQiLGljb246WzUxMiw1MTIsWyJmZWF0aGVyLWFsdCJdLCJmNTZiIiwiTTQ3NS4zIC4xYzkuOS0uOCAxOS42IDMgMjYuNiAxMHMxMC44IDE2LjcgMTAgMjYuNmMtNCA0OS4zLTE3LjQgMTI2LjItNDYuMyAxOTkuNy0xLjggNC41LTUuNSA3LjktMTAuMiA5LjNMMzc0LjUgMjcwYy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjJsMzguNiAwYzEyIDAgMTkuNyAxMi44IDEzLjUgMjMuMS00IDYuNy04LjMgMTMuMi0xMi43IDE5LjYtMiAyLjktNSA1LTguNCA2LjFMMzEwLjUgMzY2Yy0zLjkgMS4yLTYuNSA0LjctNi41IDguOCAwIDUuMSA0LjEgOS4yIDkuMiA5LjJsMTYgMGMxNC42IDAgMjEgMTcuNCA4LjggMjUuNC02OCA0NS0xMzcuNyA0My4zLTE4Mi40IDMxLjMtMTIuNy0zLjQtMjQtOS45LTM0LjQtMTcuOUw0OCA0OTZjLTguOCA4LjgtMjMuMiA4LjgtMzIgMHMtOC44LTIzLjIgMC0zMmw4MC04MCAuNSAuNWMuNy0xLjMgMS42LTIuNSAyLjctMy42TDI1NiAyMjRjOC44LTguOCA4LjgtMjMuMiAwLTMycy0yMy4yLTguOC0zMiAwTDg5LjcgMzI2LjJjLTguOSA4LjktMjQgNC40LTI1LTguMi00LjMtNTMuMiA5LjMtMTIzLjEgNzIuNi0xODYuNCA5MS4xLTkxLjEgMjU0LjItMTI0LjcgMzM3LjktMTMxLjV6Il19LHl2dD1mbGUsd3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1NzYsNTEyLFtdLCJlNGVmIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTgwIDBjLTIyLjctMzEuNS0zNi03MC4yLTM2LTExMiAwLTEwMC42IDc3LjQtMTgzLjIgMTc2LTE5MS4zbDAtMzguMWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTAuNyAxOC43QzI3OC43IDYuNyAyNjIuNSAwIDI0NS41IDBMOTYgMHpNMzU3LjUgMTc2TDI2NCAxNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDI0MCA1OC41IDM1Ny41IDE3NnpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xMDBjLTExLjYgMC0yMS4zIDguMi0yMy41IDE5LjItMS44IDguNy0xMC4yIDE0LjMtMTguOSAxMi41cy0xNC4zLTEwLjItMTIuNS0xOC45YzUuMi0yNS42IDI3LjgtNDQuOCA1NC45LTQ0LjggMzAuOSAwIDU2IDI1LjEgNTYgNTYgMCAxOS44LTExLjcgMzcuOC0yOS44IDQ1LjlsLTEwLjQgNC42Yy0xLjIgNy43LTcuOCAxMy41LTE1LjggMTMuNS04LjggMC0xNi03LjItMTYtMTYgMC0xMS4yIDYuNi0yMS4zIDE2LjgtMjUuOWwxMi40LTUuNWM2LjYtMi45IDEwLjgtOS40IDEwLjgtMTYuNiAwLTEzLjMtMTAuNy0yNC0yNC0yNHoiXX0sTXZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpZ25hdHVyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjViNyIsIk0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA3LjhjMCAyNy43LTIuNCA1NS4zLTcuMSA4Mi41bC04NC40IDI1LjNjLTQwLjYgMTIuMi02OC40IDQ5LjYtNjguNCA5MmwwIDMyLjQtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3Mi41IDBjNC4yIDM2IDM0LjggNjQgNzIgNjQgMjYgMCA1MC0xMy45IDYyLjktMzYuNWwxMy45LTI0LjNjMjYuOC00NyA0Ni41LTk3LjcgNTguNC0xNTAuNWw5NC40LTI4LjMtMTIuNSAzNy41Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44UzQwNS43IDMyMCA0MTYgMzIwbDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC04My42IDAgMTgtNTMuOWMzLjgtMTEuMyAuOS0yMy44LTcuNC0zMi40cy0yMC43LTExLjgtMzIuMi04LjRMMzE2LjQgMTk4LjFjMi40LTIwLjcgMy42LTQxLjQgMy42LTYyLjNsMC03LjhjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzJ6bS05LjIgMTc3bDQ5LTE0LjdjLTEwLjQgMzMuOC0yNC41IDY2LjQtNDIuMSA5Ny4ybC0xMy45IDI0LjNjLTEuNSAyLjYtNC4zIDQuMy03LjQgNC4zLTQuNyAwLTguNS0zLjgtOC41LTguNWwwLTcxLjljMC0xNC4xIDkuMy0yNi42IDIyLjgtMzAuN3pNNjE2IDQxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjkyLjkgMGMtNi41IDE2LjMtMTMuNyAzMi4zLTIxLjYgNDhMNjE2IDQxNnoiXX0sRGc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWFydGgtYW1lcmljYXMiLGljb246WzUxMiw1MTIsWzEyNzc1OCwiZWFydGgiLCJlYXJ0aC1hbWVyaWNhIiwiZ2xvYmUtYW1lcmljYXMiXSwiZjU3ZCIsIk01NS43IDE5OS43bDMwLjkgMzAuOWM2IDYgMTQuMSA5LjQgMjIuNiA5LjRsMjEuNSAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDI5LjMgMjkuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZsMCAzNy41YzAgOC41IDMuNCAxNi42IDkuNCAyMi42bDEzLjMgMTMuM2M2IDYgOS40IDE0LjEgOS40IDIyLjZsMCAxOC43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yLjdjMC04LjUgMy40LTE2LjYgOS40LTIyLjZsNDUuMy00NS4zYzYtNiA5LjQtMTQuMSA5LjQtMjIuNmwwLTM0LjdjMC0xNy43LTE0LjMtMzItMzItMzJsLTgyLjcgMGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRsLTE2LTE2Yy00LjItNC4yLTYuNi0xMC02LjYtMTYgMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsMzQuNyAwYzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42IDAtNi0yLjQtMTEuOC02LjYtMTZsLTE5LjctMTkuN0MyNDIgMTMwIDI0MCAxMjUuMSAyNDAgMTIwczItMTAgNS43LTEzLjdsMTcuMy0xNy4zYzUuOC01LjggOS4xLTEzLjcgOS4xLTIxLjkgMC03LjItMi40LTEzLjctNi40LTE4LjktMy4yLS4xLTYuNC0uMi05LjYtLjItOTUuNCAwLTE3NS43IDY0LjItMjAwLjMgMTUxLjd6TTQ2NCAyNTZjMC0zNC42LTguNC02Ny4yLTIzLjQtOTUuOC02LjQgLjktMTIuNyAzLjktMTcuOSA5LjFsLTEzLjQgMTMuNGMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzQuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNC4xIDBjMi41IDAgNS0uMyA3LjMtLjggLjQtNSAuNS0xMC4xIC41LTE1LjJ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6Il19LGt2dD1EZyxTdnQ9RGcsenZ0PURnLEN2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJyb3QiLGljb246WzY0MCw1MTIsWzEyOTM2NV0sImY3ODciLCJNNDUzLjEtMzYuN0w0NDAuOS0yNC42Yy0zMS4yIDMxLjItMzEuMiA4MS45IDAgMTEzLjEgMTUuNiAxNS42IDMxLjIgMzEuMiA0Ni45IDQ2LjkgMzEuMiAzMS4yIDgxLjkgMzEuMiAxMTMuMSAwbDEyLjEtMTIuMWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNkw2MDAuOSA4OC42Yy0zMS4yLTMxLjItODEuOS0zMS4yLTExMy4xIDAgMzEuMi0zMS4yIDMxLjItODEuOSAwLTExMy4xTDQ3NS43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwek0zMzEuNiA5NmMtNDUuMiAwLTg3LjEgMjAuNC0xMTUgNTQuM0wyNzMuMyAyMDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEwxOTEuNiAxOTMuMiA2Ny4yIDQ2Ni44Yy01LjUgMTIuMS0yLjkgMjYuNCA2LjUgMzUuOXMyMy43IDEyIDM1LjkgNi41bDE0MS42LTY0LjQtNDMuOC00My44Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTYuNSA1Ni41IDk1LjMtNDMuM2M1My4xLTI0LjEgODcuMi03Ny4xIDg3LjItMTM1LjUgMC04Mi4yLTY2LjYtMTQ4LjgtMTQ4LjgtMTQ4Ljh6Il19LEVnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWZ1bGwiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS00IiwidGhlcm1vbWV0ZXItNCIsInRoZXJtb21ldGVyLWZ1bGwiXSwiZjJjNyIsIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNMMTM2IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyMTIuN2MyMy41IDkuNSA0MCAzMi41IDQwIDU5LjN6Il19LFR2dD1FZyxfdnQ9RWcsTHZ0PUVnLEF2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1yb3ctbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTY3YSIsIk0yNTYgMjg4bDAtNjQgMTUzLjMgMGMxNy4xLTQyLjIgNTYtNzMuMiAxMDIuNy03OWwwLTQ5YzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAzMkM5Mi43IDMyIDY0IDYwLjcgNjQgOTZsMCAzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjQxLjMgMGMtLjktNS4yLTEuMy0xMC42LTEuMy0xNi4xbDAtNDcuOS0xMTIgMCAwLTY0IDExMy4zIDBjMy43LTIyIDE0LjgtNDEuNCAzMC43LTU1LjZsMC04LjQtMTQ0IDB6bTAtMTkybDE5MiAwIDAgNjQtMTkyIDAgMC02NHpNNTYwIDI3Mi4xbDAgNDcuOS02NCAwIDAtNDcuOWMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek00MTYgMzY4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTIwLjktMTMuNC0zOC43LTMyLTQ1LjNsMC01MC42YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwbDAgNTAuNmMtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zeiJdfSxEdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9sdC1saWdodG5pbmciLGljb246WzM4NCw1MTIsW10sImUwYjciLCJNMCAyNTZMMjguNSAyOGMyLTE2IDE1LjYtMjggMzEuOC0yOEwyMjguOSAwYzE1IDAgMjcuMSAxMi4xIDI3LjEgMjcuMSAwIDMuMi0uNiA2LjUtMS43IDkuNUwyMDggMTYwIDM0Ny4zIDE2MGMyMC4yIDAgMzYuNyAxNi40IDM2LjcgMzYuNyAwIDcuNC0yLjIgMTQuNi02LjQgMjAuN2wtMTkyLjIgMjgxYy01LjkgOC42LTE1LjYgMTMuNy0yNS45IDEzLjdsLTIuOSAwYy0xNS43IDAtMjguNS0xMi44LTI4LjUtMjguNSAwLTIuMyAuMy00LjYgLjktNi45TDE3NiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sRXZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXNob3dlcnMtd2F0ZXIiLGljb246WzUxMiw1MTIsW10sImU0ZTQiLCJNMjc5LjIgNTUuN0MyNjMuOSAyMi44IDIzMC42IDAgMTkyIDAgMTM5IDAgOTYgNDMgOTYgOTYgNjAuNyA5NiAzMiAxMjQuNyAzMiAxNjBzMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NGwtMS42IDBjLTcuNC0zNi41LTM5LjctNjQtNzguNC02NC0yMi4yIDAtNDIuMyA5LjEtNTYuOCAyMy43ek00MTAuNiA0NzYuMWMyMC43IDE1LjYgNDYgMzAuNyA3NC4yIDM0LjUgMTMuMSAxLjggMjUuMi03LjUgMjctMjAuNnMtNy41LTI1LjItMjAuNi0yN2MtMTUuOS0yLjEtMzMuMi0xMS4zLTUxLjctMjUuMi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0xOC41IDEzLjktMzUuOCAyMy4xLTUxLjcgMjUuMi0xMy4xIDEuOC0yMi40IDEzLjgtMjAuNiAyN3MxMy44IDIyLjQgMjcgMjAuNmMyOC4yLTMuOCA1My42LTE4LjkgNzQuMi0zNC41IDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6TTEwMC4xIDMwMy42YzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0QzI5IDM2NSAzNS44IDM3OC42IDQ4LjQgMzgyLjhzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTEyMCAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTExMiAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6bTEyMCAwYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0yMS4zIDY0Yy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjMtNjR6Il19LG1sZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1sb25nIixpY29uOlszMjAsNTEyLFsibG9uZy1hcnJvdy11cCJdLCJmMTc2IiwiTTE4Mi42LTIyLjZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDEyOCA3Ny4zIDEyOCA1MTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTQzNC43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4eiJdfSwkdnQ9bWxlLGhEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFkZHJlc3MtY2FyZCIsaWNvbjpbNTc2LDUxMixbNjIxNDAsImNvbnRhY3QtY2FyZCIsInZjYXJkIl0sImYyYmIiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptODAgMjU2bDY0IDBjNDQuMiAwIDgwIDM1LjggODAgODAgMCA4LjgtNy4yIDE2LTE2IDE2TDgwIDM4NGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtNDQuMiAzNS44LTgwIDgwLTgwem0tMjQtOTZhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0yNDAtNDhsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0wIDk2bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMTIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sSXZ0PWhELFB2dD1oRCxOdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtcmlnaHQiLGljb246WzI1Niw1MTIsWzgyNTBdLCJmMTA1IiwiTTI0Ny4xIDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNzkuMiAyNTYgNDEuOSAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYweiJdfSxnbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1tZWgiLGljb246WzUxMiw1MTIsWzEyODUyOCwibWVoIl0sImYxMWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NiAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMTc2IDMyMGwxNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LEZ2dD1nbGUsT3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLWZyb20tZ3JvdW5kLXdhdGVyIixpY29uOls2NDAsNTEyLFtdLCJlNGI1IiwiTTMwMyA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDg4IDg4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ3LTQ3IDAgMjc4LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yNzguMS00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwzMDMgN3pNMjQwIDE5MmwwIDE2My4xYy0xMC42LTIuMi0yMS4zLTMuMi0zMi0zLjEtMzIuNSAuMi02NC45IDEwLjctOTIuMyAzMS40LTguOCA2LjYtMTUuOSAxMC45LTIxLjcgMTMuNWwtLjggLjRjLTMuNyAxLjctNi40IDIuOS05LjggLjMtNi00LjUtMTIuNi04LTE5LjMtMTAuNEw2NCAyNDBjMC0yNi41IDIxLjUtNDggNDgtNDhsMTI4IDB6bTMzNiA0OGwwIDE1NS4yYy0xLjEgLjgtMi4yIDEuNS0zLjMgMi40LTQuMSAzLjEtOC4zIC44LTEyLjYtMS41LS42LS4zLTEuMi0uNi0xLjgtMS01LjItMi43LTExLjEtNi42LTE4LTExLjctMjguMS0yMS4xLTYxLjMtMzEuNi05NC40LTMxLjQtMTUuNSAuMS0zMSAyLjUtNDYgNy4zbDAtMTY3LjMgMTI4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTQwMy40IDQ3Ni4xQzM3OS4xIDQ5NC4zIDM1MS4xIDUxMiAzMjAgNTEycy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sUnZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcCIsaWNvbjpbNTEyLDUxMixbMTI4NTA2LDYyMDcyXSwiZjI3OSIsIk01MTIgNDhjMC0xMS4xLTUuNy0yMS40LTE1LjItMjcuMnMtMjEuMi02LjQtMzEuMS0xLjRMMzQ5LjUgNzcuNSAxNzAuMSAxNy42Yy04LjEtMi43LTE2LjgtMi4xLTI0LjQgMS43bC0xMjggNjRDNi44IDg4LjggMCA5OS45IDAgMTEyTDAgNDY0YzAgMTEuMSA1LjcgMjEuNCAxNS4yIDI3LjJzMjEuMiA2LjQgMzEuMSAxLjRsMTE2LjEtNTguMSAxNzkuNCA1OS44YzguMSAyLjcgMTYuOCAyLjEgMjQuNC0xLjdsMTI4LTY0YzEwLjgtNS40IDE3LjctMTYuNSAxNy43LTI4LjZsMC0zNTJ6TTE5MiAzNzYuOWwwLTI4NC41IDEyOCA0Mi43IDAgMjg0LjUtMTI4LTQyLjd6Il19LEJ2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXBsdXMiLGljb246WzY0MCw1MTIsW10sImYyMzQiLCJNMjg1LjcgMzA0Yzk4LjUgMCAxNzguMyA3OS44IDE3OC4zIDE3OC4zIDAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43TDc3LjcgNTEyQzYxLjMgNTEyIDQ4IDQ5OC43IDQ4IDQ4Mi4zIDQ4IDM4My44IDEyNy44IDMwNCAyMjYuMyAzMDRsNTkuNCAwek01MjggODBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0OCA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwIDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC00OC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjU2IDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6Il19LEh2dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2ZW51cyIsaWNvbjpbMzg0LDUxMixbOTc5Ml0sImYyMjEiLCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6TTIyMy45IDM0OS4xQzMwNS45IDMzNC4xIDM2OCAyNjIuMyAzNjggMTc2IDM2OCA3OC44IDI4OS4yIDAgMTkyIDBTMTYgNzguOCAxNiAxNzZjMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0LjEgMTczLjEtLjEgMS0uMSAxLjktLjEgMi45bDAgNjQtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyIDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMyIDAgMC02NGMwLTEgMC0xLjktLjEtMi45eiJdfSxxdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1zdWNjZXNzb3IiLGljb246WzQ0OCw1MTIsW10sImU0N2EiLCJNMjg5LjIgMTM3LjljMi41LTYgOC4zLTkuOSAxNC44LTkuOWw0MCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk4IDBjMS4zIDUuMSAyIDEwLjUgMiAxNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjQgNDAgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtNjQgNjRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC02NC02NGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHpNMzg0IDQ4MEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NHpNMTYwIDE2MGwwLTY0LTk2IDAgMCA2NCA5NiAweiJdfSxqdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGVhZC1zaWRlLWNvdWdoLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlMDYyIiwiTTUzNS0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw0MSA1MzcuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwyNS0yNSAwLTQ0Ny4yYzAtMTUgMTAuNS0yOC4zIDI1LjQtMjkuOCA3LjQtLjcgMTQuOS0xLjEgMjIuNi0xLjEgMTEyLjcgMCAyMDYgODMuMyAyMjEuNyAxOTEuNyAuNCAzIDEuNyA1LjkgMy42IDguM2wyLjIgMi42IDIyNy41LTIyNy41ek0xMzMuOCA1MTJMMjg4IDM1Ny44IDI4OCA0MTZjMCA1My00MyA5Ni05NiA5NmwtNTguMiAwek0xNzYgMjI0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzM2IDQwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTg4IDcyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bS02NCA0OGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjggMGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0yNCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bS04OC0yNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxibGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGlhZ3JhbS1wcm9qZWN0IixpY29uOls1MTIsNTEyLFsicHJvamVjdC1kaWFncmFtIl0sImY1NDIiLCJNMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYgMTI4IDAgMC0xNmMwLTI2LjUgMjEuNS00OCA0OC00OGw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTk2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTYtMTI4IDAgMCAxNmMwIDcuMy0xLjcgMTQuMy00LjYgMjAuNWw2OC42IDkxLjUgODAgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtNy4zIDEuNy0xNC4zIDQuNi0yMC41TDEyOCAyMjQgNDggMjI0Yy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgweiJdfSxWdnQ9YmxlLGlFPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlcm1pbmFsIixpY29uOls1MTIsNTEyLFtdLCJmMTIwIiwiTTkuNCAxMTguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwxNjAgMTYwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xNjAgMTYwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNDYuNyAyNTYgOS40IDExOC42ek0yMjQgMzg0bDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sVXZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZpcmUiLGljb246WzY0MCw1MTIsW10sImU1MGMiLCJNNDQ4IDE5MmMxNC4xIC40IDIzLjggMTEuNCAzMi43IDIxLjcgMiAyLjMgNCA0LjYgNiA2LjdsMTkgMTkuOSAxMi4yLTEzLjhjNS40LTYuMSAxMy4zLTguOSAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMiAyNi4yIDg4LjIgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjEgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXpNMjY4LjYgNi41YzEyLjItOS4zIDI5LjctOC43IDQxLjIgMmwxNDcuNSAxMzdjLTE5LjItNC4zLTQwIC41LTU1LjUgMTQuNC0zNi40IDMyLjYtNjcuNyA2OS44LTkwLjMgMTA2LjQtMTAuMyAxNi42LTE5LjcgMzQuOS0yNi44IDUzLjdMMjcyIDMyMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA2NC42IDBjNy4zIDE3LjIgMTYuOCAzMy40IDI4LjIgNDhMMTQ0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4IDIuNC0yek00ODkuMyAzNDMuN2MtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjcgNTEuOS01NC43IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTM2LjUtMzctNzMtNTQuNy04OC40eiJdfSxXdnQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzayIsaWNvbjpbNTc2LDUxMixbXSwiZjZmYSIsIk0yODggNjRDNjQgNjQgMCAxNjAgMCAyNzJTODAgNDQ4IDE3NiA0NDhsOC40IDBjMjQuMiAwIDQ2LjQtMTMuNyA1Ny4yLTM1LjRsMjMuMi00Ni4zYzQuNC04LjggMTMuMy0xNC4zIDIzLjItMTQuM3MxOC44IDUuNSAyMy4yIDE0LjNsMjMuMiA0Ni4zYzEwLjggMjEuNyAzMyAzNS40IDU3LjIgMzUuNGw4LjQgMGM5NiAwIDE3Ni02NCAxNzYtMTc2UzUxMiA2NCAyODggNjR6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTMyMC02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHoiXX0sR3Z0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imh1cnJpY2FuZSIsaWNvbjpbMzg0LDUxMixbXSwiZjc1MSIsIk0wIDIwOEMwIDEwNC40IDc1LjcgMTguNSAxNzQuOSAyLjYgMTg0IDEuMiAxOTIgOC42IDE5MiAxNy45bDAgNjMuM2MwIDguNCA2LjUgMTUuMyAxNC43IDE2LjUgMTAwLjMgMTQuOSAxNzcuMyAxMDEuMyAxNzcuMyAyMDUuNyAwIDEwMy42LTc1LjcgMTg5LjUtMTc0LjkgMjA1LjQtOS4yIDEuNS0xNy4xLTUuOS0xNy4xLTE1LjJsMC02My4zQzE5MiA0MjEuOSAxODUuNSA0MTUgMTc3LjMgNDEzLjcgNzcgMzk4LjkgMCAzMTIuNCAwIDIwOHptMjg4IDQ4YTk2IDk2IDAgMSAwIC0xOTIgMCA5NiA5NiAwIDEgMCAxOTIgMHptLTk2LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sdmxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVhcnRoLWFmcmljYSIsaWNvbjpbNTEyLDUxMixbMTI3NzU3LCJnbG9iZS1hZnJpY2EiXSwiZjU3YyIsIk00NDcuNiAxNzVjLTMxLjYtNzQuNi0xMDUuNS0xMjctMTkxLjYtMTI3LTIyLjEgMC00My40IDMuNS02My40IDkuOC0uNCAyLS42IDQuMS0uNiA2LjJsMCA3My40YzAgMTIuNSAxMC4xIDIyLjYgMjIuNiAyMi42IDYgMCAxMS44LTIuNCAxNi02LjZsMTYtMTZjNi02IDE0LjEtOS40IDIyLjYtOS40bDUuNSAwYzI4LjUgMCA0Mi44IDM0LjUgMjIuNiA1NC42LTYgNi0xNC4xIDkuNC0yMi42IDkuNGwtNjEuNSAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNGwtMjEuMyAyMS4zYy02IDYtOS40IDE0LjEtOS40IDIyLjZsMCA0Mi43YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyLjcgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNGwyOS4zLTI5LjNjNi02IDkuNC0xNC4xIDkuNC0yMi42bDAtMTguN2MwLTguOCA3LjItMTYgMTYtMTZzMTYtNy4yIDE2LTE2bDAtMzQuN2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNmwtMTYtMTZjLTQuMi00LjItNi42LTEwLTYuNi0xNiAwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmw0NSAwYzEyLjQgMCAyMi43LTcuMSAyOC0xN3pNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sWXZ0PXZsZSx4bGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGh1bWJ0YWNrIixpY29uOlszODQsNTEyLFsxMjgyMDQsMTI4MzkyLCJ0aHVtYi10YWNrIl0sImYwOGQiLCJNMzIgMzJDMzIgMTQuMyA0Ni4zIDAgNjQgMEwzMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjkuNSAwIDEwLjMgMTM0LjFjMzcuMSAyMS4yIDY1LjggNTYuNCA3OC4yIDk5LjdsMy44IDEzLjRjMi44IDkuNyAuOCAyMC01LjIgMjguMVMzNjIgMzUyIDM1MiAzNTJMMzIgMzUyYy0xMCAwLTE5LjUtNC43LTI1LjUtMTIuN3MtOC0xOC40LTUuMi0yOC4xTDUgMjk3LjhjMTIuNC00My4zIDQxLTc4LjUgNzguMi05OS43TDkzLjUgNjQgNjQgNjRDNDYuMyA2NCAzMiA0OS43IDMyIDMyek0xNjAgNDAwbDY0IDAgMCAxMTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMTJ6Il19LFp2dD14bGUsWHZ0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtZG93biIsaWNvbjpbMzg0LDUxMixbXSwiZjBhNyIsIk0zMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIwOC02NCAwIDAgMjA4ek0yMjQgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0em0tNjQgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00OGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyem0xNjAtOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjR6bS05Ni04OGwwIC42YzkuNC01LjQgMjAuMy04LjYgMzItOC42IDEzLjIgMCAyNS40IDQgMzUuNiAxMC44IDguNy0yNC45IDMyLjUtNDIuOCA2MC40LTQyLjggMTEuNyAwIDIyLjYgMy4xIDMyIDguNmwwLTguNkMzODQgNzEuNiAzMTIuNCAwIDIyNCAwTDE2Mi4zIDBDMTE5LjggMCA3OS4xIDE2LjkgNDkuMSA0Ni45TDM3LjUgNTguNUMxMy41IDgyLjUgMCAxMTUuMSAwIDE0OWwwIDI3YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBzLTE3LjktNDAtNDAtNDBsLTU2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsNTYgMGMzOS44IDAgNzIgMzIuMiA3MiA3MnoiXX0seWxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbWVoLWJsYW5rIixpY29uOls1MTIsNTEyLFsxMjg1NjYsIm1laC1ibGFuayJdLCJmNWE0IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTIwOC00OGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0xMjggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxRdnQ9eWxlLCRnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLWVtcHR5IixpY29uOlszMjAsNTEyLFsidGVtcGVyYXR1cmUtMCIsInRoZXJtb21ldGVyLTAiLCJ0aGVybW9tZXRlci1lbXB0eSJdLCJmMmNiIiwiTTY0IDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxNjQuN2MyOS41IDI2LjQgNDggNjQuNyA0OCAxMDcuMyAwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxNiA0NDcuNSAxNiAzNjhjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMNjQgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6Il19LEp2dD0kZyxLdnQ9JGcsZXh0PSRnLHR4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JkZXItbm9uZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjg1MCIsIk0zMiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyek0xNjAgMzJhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0yODggNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpNMTYwIDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6TTI4OCAzMmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6TTQxNiA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0wLTM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTMyIDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHpNNDE2IDM1MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTMyIDE2MGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNNDE2IDE2MGEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6Il19LHJ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoaWdobGlnaHRlciIsaWNvbjpbNTc2LDUxMixbXSwiZjU5MSIsIk0zMTUgMzE1TDQ3My40IDk5LjkgNDQ0LjEgNzAuNiAyMjkgMjI5IDMxNSAzMTV6bS0xODcgNWwwIDAgMC03MS43YzAtMTUuMyA3LjItMjkuNiAxOS41LTM4LjZMNDIwLjYgOC40QzQyOCAyLjkgNDM3IDAgNDQ2LjIgMCA0NTcuNiAwIDQ2OC41IDQuNSA0NzYuNiAxMi42bDU0LjggNTQuOGM4LjEgOC4xIDEyLjYgMTkgMTIuNiAzMC41IDAgOS4yLTIuOSAxOC4yLTguNCAyNS42TDMzNC40IDM5Ni41Yy05IDEyLjMtMjMuNCAxOS41LTM4LjYgMTkuNWwtNzEuNyAwLTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTUwLjctNTAuN2MtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNMMTI4IDMyMHpNNyA0NjYuM2w1MS43LTUxLjcgNzAuNiA3MC42LTE5LjcgMTkuN2MtNC41IDQuNS0xMC42IDctMTcgN0wyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNC43YzAtNi40IDIuNS0xMi41IDctMTd6Il19LGl4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxsLXdhdmUiLGljb246WzUxMiw1MTIsW10sImY1M2EiLCJNMCA0MTkuNkwwIDEwOS41YzAtMjMuMiAyNC4xLTM4LjYgNDYuMy0zMiA4Ny43IDI2LjIgMTQ5LjcgNS41IDIxMi4xLTE1LjMgNjQuNS0yMS41IDEyOS40LTQzLjEgMjIzLjMtMTMuMSAxOC41IDUuOSAzMC4zIDIzLjggMzAuMyA0My4zbDAgMzEwLjFjMCAyMy4yLTI0LjEgMzguNi00Ni4yIDMyLTg3LjctMjYuMi0xNDkuOC01LjUtMjEyLjEgMTUuMy02NC41IDIxLjUtMTI5LjQgNDMuMS0yMjMuMyAxMy4xLTE4LjUtNS45LTMwLjMtMjMuOC0zMC4zLTQzLjN6TTMzNiAyNTZjMC01My0zNS44LTk2LTgwLTk2cy04MCA0My04MCA5NiAzNS44IDk2IDgwIDk2IDgwLTQzIDgwLTk2ek0xMjAgNDEzLjZjNC40IDAgNy45LTMuOCA3LjItOC4xLTQuNi0yNy44LTI3LTQ5LjUtNTUuMi01My00LjQtLjUtOCAzLjEtOCA3LjVsMCAzOS45YzAgMy42IDIuNCA2LjggNiA3LjcgMTcuOSA0LjIgMzQuMyA2LjEgNTAgNi4xem0zMTguNS01MS4xYzUgLjggOS41LTMgOS41LThsMC00Mi42YzAtNC40LTMuNi04LjEtOC03LjUtMjUuMiAzLjEtNDUuOSAyMC45LTUzLjIgNDQuNi0xLjQgNC43IDIuMyA5LjEgNy4yIDkuMiAxNC4yIC40IDI5IDEuNyA0NC40IDQuM3pNNDQ4IDE1MmwwLTM5LjljMC0zLjYtMi41LTYuOC02LTcuNy0xNy45LTQuMi0zNC4zLTYuMS01MC02LjEtNC40IDAtNy45IDMuOC03LjIgOC4xIDQuNiAyNy44IDI3IDQ5LjUgNTUuMiA1MyA0LjQgLjUgOC0zLjEgOC03LjV6TTEyNS4yIDE2Mi45YzEuNC00LjctMi4zLTkuMS03LjItOS4yLTE0LjItLjQtMjktMS43LTQ0LjQtNC4zLTUtLjgtOS41IDMtOS41IDhMNjQgMjAwYzAgNC40IDMuNiA4LjEgOCA3LjUgMjUuMi0zLjEgNDUuOS0yMC45IDUzLjItNDQuNnoiXX0sYXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldC1wYXBlci1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTA3MiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC05NC41LTk0LjVjNDAuMi0yMyA2OS41LTk2LjkgNjkuNS0xODQuNiAwLTEwNi00My0xOTItOTYtMTkycy05NiA4Ni05NiAxOTJjMCAyNC4xIDIuMiA0Ny4yIDYuMyA2OC40TDMwNCAyMzguMiAzMDQgMjI0YzAtNTguOSAxMS44LTExNC41IDMzLjItMTU3LjIgNS45LTExLjcgMTMuMS0yMy43IDIxLjktMzQuOEwxMjggMzJjLTguMyAwLTE2LjQgMi4xLTI0LjEgNi4xbC02My02M3pNMzIgMjI0bDAgMjY0YzAgMzAuOSAyNS4xIDU2IDU2IDU2bDE2MCAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2bDAtMTE0LjItMjU2LTI1NkMzNy45IDE0OC4yIDMyIDE4NC43IDMyIDIyNHptNDE2IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjQtMTQuMyA2NC0zMiA2NHoiXX0sbnh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtc2hpZWxkIixpY29uOls1NzYsNTEyLFtdLCJlNGYwIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjAxLjIgMEMyNjEgNDY5LjQgMjQwIDQxNC41IDI0MCAzNTYuNGwwLTMxLjFjMC0zNC40IDIyLTY1IDU0LjctNzUuOWwxMTItMzcuM2MzLjEtMSA2LjItMS44IDkuMy0yLjVsMC0zOS4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2em04Ny44IDMxMi41bC0xMy4zIDYuMyAwLTE4OC4xIDk2IDMyIDAgMTkuNmMwIDU1LjgtMzIuMiAxMDYuNS04Mi43IDEzMC4zek00MjEuOSAyNTkuNWwtMTEyIDM3LjNjLTEzLjEgNC40LTIxLjkgMTYuNi0yMS45IDMwLjRsMCAzMS4xYzAgNzQuNCA0MyAxNDIuMSAxMTAuMiAxNzMuN2wxOC41IDguN2M0LjggMi4yIDEwIDMuNCAxNS4yIDMuNHMxMC41LTEuMiAxNS4yLTMuNGwxOC41LTguN0M1MzMgNTAwLjMgNTc2IDQzMi42IDU3NiAzNTguMmwwLTMxLjFjMC0xMy44LTguOC0yNi0yMS45LTMwLjRsLTExMi0zNy4zYy02LjYtMi4yLTEzLjctMi4yLTIwLjIgMHoiXX0sb3h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRleHQtaGVpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJmMDM0IiwiTTQwIDMyQzE3LjkgMzIgMCA0OS45IDAgNzJsMCA1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgNjQgMCAwIDMyMC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzIwIDY0IDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNTZjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgMzJ6TTQzOC42IDM2MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOS40IDkuNCAwLTIyOS41IDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNHMtMTYuNiAzLjQtMjIuNiA5LjRsLTY0IDY0Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDkuNC05LjQgMCAyMjkuNS05LjQtOS40eiJdfSx3bGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZSIsaWNvbjpbNTEyLDUxMixbMTI4NTM5LCJncmluLXRvbmd1ZSJdLCJmNTg5IiwiTTAgMjU2YzAgMTA0LjQgNjIuNSAxOTQuMiAxNTIuMiAyMzQuMS01LjMtMTMtOC4yLTI3LjItOC4yLTQyLjFsMC02MS43Yy0xNi45LTE2LjUtMzAuMS0zNi43LTM4LjMtNTkuMy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjFjMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTguMyAyMi42LTIxLjUgNDIuOC0zOC4zIDU5LjNsMCA2MS43YzAgMTQuOS0yLjkgMjkuMS04LjIgNDIuMSA4OS43LTM5LjggMTUyLjItMTI5LjYgMTUyLjItMjM0LjEgMC0xNDEuNC0xMTQuNi0yNTYtMjU2LTI1NlMwIDExNC42IDAgMjU2em0xNzYtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTYgMjQwbDAtNDUuNGMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmwtMiAwYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45LTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDAtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWwtMiAwYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNmwwIDQ1LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHoiXX0sc3h0PXdsZSxseHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1zaWduYXR1cmUiLGljb246WzY0MCw1MTIsW10sImY1NzMiLCJNNjQuMSA2NGMwLTM1LjMgMjguNy02NCA2NC02NEwyNzcuNiAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDQyOS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNsMCA5Ny41LTEzMiAxMzItNDIuMSAwLTE2LjEtNTMuNmMtNC43LTE1LjctMTkuMS0yNi40LTM1LjUtMjYuNC0xMS4zIDAtMjEuOSA1LjEtMjguOSAxMy45TDEzMy4zIDQwOWMtOC4zIDEwLjMtNi42IDI1LjUgMy43IDMzLjdzMjUuNSA2LjYgMzMuNy0zLjhsNDcuMS01OC44IDE1LjIgNTAuN2MzIDEwLjIgMTIuNCAxNy4xIDIzIDE3LjFsMzEuNSAwYy0uOSAzLjEtMS43IDYuMy0yLjMgOS41bC0xMC45IDU0LjUtMTQ2LjIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zODR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0bDkzLjUgMC0xMTcuNS0xMTcuNXptNjAuMiA0MDguNGMyLjUtMTIuNCA4LjYtMjMuOCAxNy41LTMyLjdsMTE4LjktMTE4LjkgODAgODAtMTE4LjkgMTE4LjljLTguOSA4LjktMjAuMyAxNS0zMi43IDE3LjVsLTU5LjYgMTEuOWMtLjkgLjItMS45IC4zLTIuOSAuMy04IDAtMTQuNi02LjUtMTQuNi0xNC42IDAtMSAuMS0xLjkgLjMtMi45bDExLjktNTkuNnptMjY3LjgtMTIzbC0yOC44IDI4LjgtODAtODAgMjguOC0yOC44YzIyLjEtMjIuMSA1Ny45LTIyLjEgODAgMHMyMi4xIDU3LjkgMCA4MHoiXX0sY3h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXdoZWF0IixpY29uOls2NDAsNTEyLFtdLCJlNGRiIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjQ5LjMgMGMtNi0xNC44LTkuMy0zMS05LjMtNDggMC0xNy43IDcuMi0zMy43IDE4LjgtNDUuMy0xMS45LTE5LjQtMTguOC00Mi4zLTE4LjgtNjYuNyAwLTE3LjcgNy4yLTMzLjcgMTguOC00NS4zLTExLjktMTkuNC0xOC44LTQyLjMtMTguOC02Ni43IDAtMjUuMiAxNC41LTQ2LjkgMzUuNi01Ny40LTIuNC03LjEtMy42LTE0LjctMy42LTIyLjZsMC0zMkMzNjggOTYuNyAzODggNzAuMSA0MTUuOSA2MC4xIDQxMy45IDI2LjYgMzg2IDAgMzUyIDBMOTYgMHpNMjA4IDM1MmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgODAtOTYgMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xMjggMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6bTE0NC0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em0zNTIgMGwtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC04LjgtNy4yLTE2LTE2LTE2em0xNiAxMjhjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MHptMCAxMTJjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDguOCA3LjIgMTYgMTYgMTZsMTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MHpNNDk2IDUyOGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2em0tMTYtOTZjOC44IDAgMTYtNy4yIDE2LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMTYgMHptMTYtMTI4YzAtNDQuMi0zNS44LTgwLTgwLTgwbC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTYgMCA0NC4yIDM1LjggODAgODAgODBsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZ6TTUxMiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptOTYgNjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6TTQ0MCAxMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxkeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtbWludXMiLGljb246WzY0MCw1MTIsW10sImU1NWUiLCJNMTkyLTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDQ4LjdjLTk4LjYgOC4xLTE3NiA5MC43LTE3NiAxOTEuMyAwIDI3LjMgNS43IDUzLjMgMTYgNzYuOWwwIDMuMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY2LjdDMTY1LjIgMzk4LjEgOTYgMzE5LjEgOTYgMjI0bDAtNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzc4LjMgOTYgOTYgOTZsNjQgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIyNCAwYzAtOC44LTcuMi0xNi0xNi0xNmwtMTI4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2eiJdfSxmRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmdXRib2wiLGljb246WzUxMiw1MTIsWzk5MTcsImZ1dGJvbC1iYWxsIiwic29jY2VyLWJhbGwiXSwiZjFlMyIsIk00MTcuMyAzNjAuMWwtNzEuNi00LjhjLTUuMi0uMy0xMC4zIDEuMS0xNC41IDQuMnMtNy4yIDcuNC04LjQgMTIuNWwtMTcuNiA2OS42QzI4OS41IDQ0NS44IDI3MyA0NDggMjU2IDQ0OHMtMzMuNS0yLjItNDkuMi02LjRMMTg5LjIgMzcyYy0xLjMtNS00LjMtOS40LTguNC0xMi41cy05LjMtNC41LTE0LjUtNC4ybC03MS42IDQuOGMtMTcuNi0yNy4yLTI4LjUtNTkuMi0zMC40LTkzLjZMMTI1IDIyOC4zYzQuNC0yLjggNy42LTcgOS4yLTExLjlzMS40LTEwLjItLjUtMTVsLTI2LjctNjYuNkMxMjggMTA5LjIgMTU1LjMgODkgMTg2LjcgNzYuOWw1NS4yIDQ2YzQgMy4zIDkgNS4xIDE0LjEgNS4xczEwLjItMS44IDE0LjEtNS4xbDU1LjItNDZjMzEuMyAxMi4xIDU4LjcgMzIuMyA3OS42IDU3LjlsLTI2LjcgNjYuNmMtMS45IDQuOC0yLjEgMTAuMS0uNSAxNXM0LjkgOS4xIDkuMiAxMS45bDYwLjcgMzguMmMtMS45IDM0LjQtMTIuOCA2Ni40LTMwLjQgOTMuNnpNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTE0LjEtMzI1LjdjLTguNC02LjEtMTkuOC02LjEtMjguMiAwTDE5NCAyMjFjLTguNCA2LjEtMTEuOSAxNi45LTguNyAyNi44bDE4LjMgNTYuM2MzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZsNTkuMiAwYzEwLjQgMCAxOS42LTYuNyAyMi44LTE2LjZsMTguMy01Ni4zYzMuMi05LjktLjMtMjAuNy04LjctMjYuOGwtNDcuOS0zNC44eiJdfSx1eHQ9ZkQscHh0PWZELE1sZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcGx1cyIsaWNvbjpbNTEyLDUxMixbInBsdXMtY2lyY2xlIl0sImYwNTUiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIzMiAzNDRsMC02NC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDY0IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNjQgNjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNjQgMCAwIDY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0eiJdfSxoeHQ9TWxlLGZ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJicmF6aWxpYW4tcmVhbC1zaWduIixpY29uOls1MTIsNTEyLFtdLCJlNDZjIiwiTTQwMCAxNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE2IDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTQ4LjkgMGMtMjYgMC00Ny4xIDIxLjEtNDcuMSA0Ny4xIDAgMjIuNSAxNS45IDQxLjggMzcuOSA0Ni4ybDMyLjggNi42YzUxLjkgMTAuNCA4OS4zIDU2IDg5LjMgMTA5IDAgNTAuNi0zMy44IDkzLjMtODAgMTA2LjdsMCAyMC40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTYtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NC45IDBjMjYgMCA0Ny4xLTIxLjEgNDcuMS00Ny4xIDAtMjIuNS0xNS45LTQxLjgtMzcuOS00Ni4ybC0zMi44LTYuNmMtNTEuOS0xMC40LTg5LjMtNTYtODkuMy0xMDkgMC01MC42IDMzLjgtOTMuMiA4MC0xMDYuN0wzNjggNDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHoiXX0sbXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItYW5kLWNyZXNjZW50IixpY29uOls1MTIsNTEyLFs5NzcwXSwiZjY5OSIsIk0wIDI1NmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2IDMzIDAgNjQuNiA2LjMgOTMuNiAxNy43IDcuNCAyLjkgMTEuNSAxMC43IDkuOCAxOC40cy04LjggMTMtMTYuNyAxMi40Yy00LjgtLjMtOS43LS41LTE0LjYtLjUtMTE0LjkgMC0yMDggOTMuMS0yMDggMjA4czkzLjEgMjA4IDIwOCAyMDhjNC45IDAgOS44LS4yIDE0LjYtLjUgNy45LS41IDE1IDQuNyAxNi43IDEyLjRzLTIuNCAxNS41LTkuOCAxOC40QzMyMC42IDUwNS43IDI4OSA1MTIgMjU2IDUxMiAxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NnpNMzc1LjQgMTM3LjRjMy41LTcuMSAxMy43LTcuMSAxNy4yIDBsMzEuNSA2My44YzEuNCAyLjggNC4xIDQuOCA3LjIgNS4zbDcwLjQgMTAuMmM3LjkgMS4xIDExIDEwLjggNS4zIDE2LjRsLTUwLjkgNDkuNmMtMi4zIDIuMi0zLjMgNS40LTIuOCA4LjVsMTIgNzAuMWMxLjMgNy44LTYuOSAxMy44LTEzLjkgMTAuMWwtNjMtMzMuMWMtMi44LTEuNS02LjEtMS41LTguOSAwbC02MyAzMy4xYy03IDMuNy0xNS4zLTIuMy0xMy45LTEwLjFsMTItNzAuMWMuNS0zLjEtLjUtNi4zLTIuOC04LjVMMjYxIDIzMy4xYy01LjctNS42LTIuNi0xNS4yIDUuMy0xNi40bDcwLjQtMTAuMmMzLjEtLjUgNS44LTIuNCA3LjItNS4zbDMxLjUtNjMuOHoiXX0sa2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Utc3VycHJpc2UiLGljb246WzUxMiw1MTIsWzEyODU1OCwic3VycHJpc2UiXSwiZjVjMiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0tNDggODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6Il19LGd4dD1rbGUsYnh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imhvc3BpdGFsLXVzZXIiLGljb246WzY0MCw1MTIsW10sImY4MGQiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguNyAwIDI3LjcgOC44IDUzLjQgMjMuOCA3NC40LTUxLjUgMjEtODcuOCA3MS42LTg3LjggMTMwLjcgMCAxIDAgMS45IDAgMi45bC0xNzYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgNjR6TTIwOCA0MDBsMCA2NCA1My40IDBjNy4yLTI5LjQgMjEuMy01Ni4xIDQwLjQtNzguMy02LjEtMTkuNS0yNC4zLTMzLjctNDUuOC0zMy43LTI2LjUgMC00OCAyMS41LTQ4IDQ4ek0yNDggODhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2YzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIgMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDB6TTQxNiAzMDRhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0zNTIgNTEyYzAtNTMgNDMtOTYgOTYtOTZsOTYgMGM1MyAwIDk2IDQzIDk2IDk2IDAgMTcuNy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LHZ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLXVwLWxvY2siLGljb246WzU3Niw1MTIsW10sImU0YjAiLCJNMjYyLjYgNDIyLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMjUuNCAyNS40IDAtMTE0LjctNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyNTYgMCAwLTExNC43LTI1LjQgMjUuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsODAtODBjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTI1LjQtMjUuNCAwIDk0LjhjLTI1LjMgMjAuMy00Mi44IDUwLjEtNDcgODMuOWwtMTQ1IDAgMCAxMTQuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMTkyIDMybDAgMTQ0LTY0IDAgMC0xNDRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNNDk2IDMwNC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sU2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlciIsaWNvbjpbNTEyLDUxMixbMTI4MTkzLDEyODQ0Nyw2MTcxNiwiZm9sZGVyLWJsYW5rIl0sImYwN2IiLCJNNjQgNDQ4bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjQwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDI5OC43IDgwYy02LjkgMC0xMy43LTIuMi0xOS4yLTYuNEwyNDEuMSA0NC44QzIzMCAzNi41IDIxNi41IDMyIDIwMi43IDMyTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjR6Il19LHh4dD1TbGUseXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvbGx5LWJlcnJ5IixpY29uOls1MTIsNTEyLFtdLCJmN2FhIiwiTTI1Ni4yIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMjc3IDM4My44YzEgLjEgMi4xIC4yIDMuMiAuMiAzOS44IDAgNzIgMzIuMiA3MiA3MmwwIDIyLjdjMCAxNi40IDE2IDI3LjkgMzEuNiAyMi44bDEyLjgtNC4zYzE4LTYgMzcuMy02LjUgNTUuNi0xLjVsMTkuNCA1LjNjMTcuOSA0LjkgMzQuNC0xMS42IDI5LjUtMjkuNUw0OTUuOSA0NTJjLTUtMTguMy00LjQtMzcuNiAxLjUtNTUuNmw0LjMtMTIuOGM1LjItMTUuNS02LjQtMzEuNi0yMi44LTMxLjYtMzQuNiAwLTYyLjctMjguMS02Mi43LTYyLjdsMC0zMmMwLTE2LjQtMTYtMjcuOS0zMS42LTIyLjhsLTEyLjggNC4zYy0xOCA2LTM3LjMgNi41LTU1LjYgMS41bC0yOS42LTguMWMtMi45LS44LTUuOS0xLTguNy0uNyA0LjIgOS43IDUuOCAyMC44IDMuNyAzMi4zbC02LjMgMzQuOGMtMS41IDguNC0xLjQgMTcgLjUgMjUuM2w1LjMgMjMuOWMyLjggMTIuNyAxLjEgMjUuMi00IDM1Ljl6TTEyNy44IDIzNC41Yy0xNS41LTUuMi0zMS42IDYuNC0zMS42IDIyLjhsMCAzMmMwIDM0LjYtMjguMSA2Mi43LTYyLjcgNjIuNy0xNi40IDAtMjcuOSAxNi0yMi44IDMxLjZMMTUgMzk2LjRjNiAxOCA2LjUgMzcuMyAxLjUgNTUuNmwtNS4zIDE5LjRDNi40IDQ4OS40IDIyLjggNTA1LjggNDAuNyA1MDFsMTkuNC01LjNjMTguMy01IDM3LjYtNC41IDU1LjYgMS41bDEyLjggNC4zYzE1LjUgNS4yIDMxLjYtNi40IDMxLjYtMjIuOGwwLTMyYzAtMzQuNiAyOC4xLTYyLjcgNjIuNy02Mi43IDE2LjQgMCAyNy45LTE2IDIyLjgtMzEuNmwtNC4zLTEyLjhjLTYtMTgtNi41LTM3LjMtMS41LTU1LjZsNS4zLTE5LjRjNC45LTE3LjktMTEuNi0zNC40LTI5LjUtMjkuNWwtMTkuNCA1LjNjLTE4LjMgNS0zNy42IDQuNC01NS42LTEuNWwtMTIuOC00LjN6TTM4NC4yIDE0NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAweiJdfSx3eHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVudXMtZG91YmxlIixpY29uOls2NDAsNTEyLFs5ODkwXSwiZjIyNiIsIk0xOTIgMjg4YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHpNMzY4IDE3NmMwIDg2LjMtNjIuMSAxNTguMS0xNDQuMSAxNzMuMSAuMSAxIC4xIDEuOSAuMSAyLjlsMCA2NCAzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC02NGMwLTEgMC0xLjkgLjEtMi45LTgyLTE1LTE0NC4xLTg2LjgtMTQ0LjEtMTczLjEgMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZTMzY4IDc4LjggMzY4IDE3NnpNMzU3LjUgMzI3YzE0LjQtMTUuOCAyNi42LTMzLjcgMzYuMS01My4xIDE2LjEgOSAzNC43IDE0LjEgNTQuNSAxNC4xIDYxLjkgMCAxMTItNTAuMSAxMTItMTEyUzUwOS45IDY0IDQ0OCA2NGMtMTkuOCAwLTM4LjMgNS4xLTU0LjUgMTQuMS05LjUtMTkuNC0yMS42LTM3LjMtMzYuMS01My4xIDI2LjQtMTUuOSA1Ny40LTI1IDkwLjUtMjUgOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0LjEgMTczLjEgLjEgLjkgLjEgMS45IC4xIDIuOWwwIDY0IDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTY0YzAtMSAwLTEuOSAuMS0yLjktMjEuMS0zLjktNDAuOS0xMS41LTU4LjYtMjIuMnoiXX0sTXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsaXBib2FyZC1xdWVzdGlvbiIsaWNvbjpbMzg0LDUxMixbXSwiZTRlMyIsIk0zMTEuNCAzMmw4LjYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM1MmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsOC42IDBDODMuNiAxMi45IDEwNC4zIDAgMTI4IDBMMjU2IDBjMjMuNyAwIDQ0LjQgMTIuOSA1NS40IDMyek0yNDggMTEyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDEzNiA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMHpNMTkyIDI0OGMxNi4xIDAgMjkuMiAxMy4xIDI5LjIgMjkuMiAwIDguNy0zLjEgMTMuOS02LjkgMTcuNy00LjUgNC40LTEwLjcgNy41LTE2LjggOS41LTE0LjkgNS0yOS41IDE5LjMtMjkuNSAzOS41IDAgMTMuMyAxMC43IDI0IDI0IDI0IDExLjUgMCAyMS4yLTguMSAyMy41LTE5IDE5LjItNy4xIDUzLjctMjYuMyA1My43LTcxLjggMC00Mi42LTM0LjYtNzcuMi03Ny4yLTc3LjJzLTc3LjIgMzQuNi03Ny4yIDc3LjJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE2LjEgMTMuMS0yOS4yIDI5LjItMjkuMnptMjggMTY4YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHoiXX0sa3h0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdGRvZyIsaWNvbjpbNTEyLDUxMixbMTI3Nzg5XSwiZjgwZiIsIk0yODggMGMtMjAuNSAwLTQwLjEgOC4xLTU0LjYgMjIuNkwyMi42IDIzMy40QzguMSAyNDcuOSAwIDI2Ny41IDAgMjg4IDAgMzAwLjIgMi45IDMxMi4xIDguMiAzMjIuN0wzMjIuNyA4LjJDMzEyLjEgMi45IDMwMC4yIDAgMjg4IDB6TTIyNCA1MTJjMjAuNSAwIDQwLjEtOC4xIDU0LjYtMjIuNkw0ODkuNCAyNzguNmMxNC41LTE0LjUgMjIuNi0zNC4xIDIyLjYtNTQuNiAwLTEyLjItMi45LTI0LjEtOC4yLTM0LjdMMTg5LjMgNTAzLjhjMTAuNyA1LjQgMjIuNiA4LjIgMzQuNyA4LjJ6TTQ1Ni42IDE2OC42YzMxLjItMzEuMiAzMS4yLTgxLjkgMC0xMTMuMXMtODEuOS0zMS4yLTExMy4xIDBsLTI4OCAyODhjLTMxLjIgMzEuMi0zMS4yIDgxLjkgMCAxMTMuMXM4MS45IDMxLjIgMTEzLjEgMGwyODgtMjg4eiJdfSxTeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtZnJvbS1icmFja2V0IixpY29uOls0NDgsNTEyLFtdLCJlMDlhIiwiTTI0Ni42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDEwOS4zIDE5MiAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIxMC43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4ek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJTMCAzMzQuMyAwIDM1MmwwIDY0YzAgNTMgNDMgOTYgOTYgOTZsMjU2IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0eiJdfSx6eHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9zY29wZSIsaWNvbjpbNTEyLDUxMixbMTI4MzAwXSwiZjYxMCIsIk0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTY0IDMyIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhTMzkwLjcgNDQ4IDMyMCA0NDhMMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNi45IDBjMzAuNC0zNCA0OC45LTc4LjggNDguOS0xMjggMC0xMDYtODYtMTkyLTE5Mi0xOTJsLTMyIDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OEwxNzYgMHpNMTIwIDM1MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNzYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTc2IDB6Il19LEN4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG91ZCIsaWNvbjpbNTc2LDUxMixbOTcyOV0sImYwYzIiLCJNMCAzMzZjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRsMzA0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC01MS42LTMwLjUtOTYuMS03NC41LTExNi4zIDYuNy0xMy4xIDEwLjUtMjggMTAuNS00My43IDAtNTMtNDMtOTYtOTYtOTYtMTcuNyAwLTM0LjIgNC44LTQ4LjQgMTMuMS0yNC4xLTQ1LjgtNzIuMi03Ny4xLTEyNy42LTc3LjEtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDQgMCA4IC43IDE1LjkgMS45IDIzLjUtNTYuOSAxOS4yLTk3LjkgNzMuMS05Ny45IDEzNi41eiJdfSxUeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFzZWJhbGwtYmF0LWJhbGwiLGljb246WzU3Niw1MTIsW10sImY0MzIiLCJNNDY0LjEgNTQ0YTgwIDgwIDAgMSAxIDAtMTYwIDgwIDgwIDAgMSAxIDAgMTYwem04LjQtNTc2YzE1LjEgMCAyOS43IDUuOCA0MC43IDE2LjJsNDcuMiA0NC44YzEyLjYgMTIgMTkuMSAyOSAxNy41IDQ2LjMtMS4yIDEzLjMtNyAyNS44LTE2LjUgMzUuMkwzNjMuMSAzMDljLTcuMyA3LjMtMTUuNyAxMy40LTI1IDE4TDIwNiAzOTNjLTkuMiA0LjYtMTcuNyAxMC43LTI1IDE4bC05MiA5MiAxLjcgMS44YzcuNyA5LjQgNy4xIDIzLjMtMS43IDMyLjFzLTIyLjcgOS4zLTMyLjEgMS43bC0xLjgtMS43LTQ4LTQ4LTEuNy0xLjhjLTcuNy05LjQtNy4xLTIzLjMgMS43LTMyLjFzMjIuNy05LjMgMzIuMS0xLjdsMS44IDEuNyA5Mi05MmM3LjMtNy4zIDEzLjQtMTUuNyAxOC0yNWw2Ni4xLTEzMi4xYzQuNi05LjIgMTAuNy0xNy43IDE4LTI1TDQzMC44LTE0LjdDNDQxLjktMjUuOCA0NTYuOS0zMiA0NzIuNS0zMnoiXX0semxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1yZWFyIixpY29uOls1MTIsNTEyLFsiY2FyLWFsdCJdLCJmNWRlIiwiTTE2NS40IDk2bDE4MS4yIDBjMTMuNiAwIDI1LjcgOC42IDMwLjIgMjEuNGwyNi4xIDc0LjYtMjkzLjggMCAyNi4xLTc0LjZjNC41LTEyLjggMTYuNi0yMS40IDMwLjItMjEuNHptLTkwLjYgLjNMMzkuNiAxOTYuOEMxNi40IDIwNi40IDAgMjI5LjMgMCAyNTZsMCA5NmMwIDIzLjcgMTIuOSA0NC40IDMyIDU1LjRMMzIgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAyNTYgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MC42YzE5LjEtMTEuMSAzMi0zMS43IDMyLTU1LjRsMC05NmMwLTI2LjctMTYuNC00OS42LTM5LjYtNTkuMkw0MzcuMiA5Ni4zQzQyMy43IDU3LjggMzg3LjQgMzIgMzQ2LjYgMzJMMTY1LjQgMzJjLTQwLjggMC03Ny4xIDI1LjgtOTAuNiA2NC4zek0yMDggMjg4bDk2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC05NiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ4IDI4MGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMzYwLTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LF94dD16bGUsQ2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRodW1idGFjay1zbGFzaCIsaWNvbjpbNTc2LDUxMixbInRodW1iLXRhY2stc2xhc2giXSwiZTY4ZiIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQxNy44IDM1MiA0NDggMzUyYzEwIDAgMTkuNS00LjcgMjUuNS0xMi43czgtMTguNCA1LjItMjguMUw0NzUgMjk3LjhjLTEyLjQtNDMuMy00MS03OC41LTc4LjItOTkuN0wzODYuNSA2NCA0MTYgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJTNDMzLjcgMCA0MTYgMEwxNjAgMGMtNy40IDAtMTQuMSAyLjUtMTkuNSA2LjZMMTkwLjEgNTYuMyAxODUuMyAxMTkuNCA0MS0yNC45ek0yODIuMiAzNTJMMTQ5LjcgMjE5LjZjLTIyLjcgMjAuNS0zOS44IDQ3LjQtNDguNyA3OC4zbC0zLjggMTMuNGMtMi44IDkuNy0uOCAyMCA1LjIgMjguMVMxMTggMzUyIDEyOCAzNTJsMTU0LjIgMHpNMjU2IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTEyLTY0IDAgMCAxMTJ6Il19LEx4dD1DbGUsQXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdXMtbWludXMiLGljb246WzM4NCw1MTIsW10sImU0M2MiLCJNMjI0IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTI4LTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEyOCAwIDAtMTI4ek0wIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxEeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNTA5IiwiTTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMSAwLTI4OCAxNDQgMTQ0IDAgMSAxIDAgMjg4ek0yNjguNiA2LjVjMTIuMi05LjMgMjkuNy04LjcgNDEuMiAybDIxNy42IDIwMmMtMTAuMi0xLjctMjAuNy0yLjYtMzEuMy0yLjYtNzguNiAwLTE0Ni4xIDQ3LjItMTc1LjggMTE0LjgtNS4xLTEuOC0xMC41LTIuOC0xNi4yLTIuOGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NiA5MSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4xIDQ4TDE0NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2LTE2IDBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LTM1LjFsMjI0LTIwOCAyLjQtMnpNNTUzLjQgMzM5LjFjLTcuMS01LjItMTcuMS0zLjYtMjIuMyAzLjVsLTUzIDcyLjgtMjYuNy0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMC02LjIgNi4yLTYuMiAxNi40IDAgMjIuNmw0MCA0MGMzLjMgMy4zIDcuOSA1IDEyLjYgNC43czguOS0yLjggMTEuNy02LjZsNjQtODhjNS4yLTcuMSAzLjYtMTcuMS0zLjUtMjIuM3oiXX0sRXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLWRheSIsaWNvbjpbNDQ4LDUxMixbXSwiZjc4MyIsIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyODhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzMiAwIDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHoiXX0sJHh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxpYnJhIixpY29uOls1MTIsNTEyLFtdLCJlODRiIiwiTTQ4MCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ0OCAwek0yNTYgMzJjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCAxNi42LTIuNCAzMi43LTYuNyA0OGw1NC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwNC4yIDBjLTExLjggMC0yMi43LTYuNS0yOC4yLTE2LjlzLTQuOS0yMy4xIDEuNi0zMi45YzExLjktMTcuOCAxOC44LTM5LjEgMTguOC02Mi4yIDAtNjEuOS01MC4xLTExMi0xMTItMTEyUzE0NCAxNDYuMSAxNDQgMjA4YzAgMjMuMSA2LjkgNDQuNCAxOC44IDYyLjIgNi42IDkuOCA3LjIgMjIuNSAxLjYgMzIuOVMxNDguMSAzMjAgMTM2LjIgMzIwTDMyIDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1NC44IDBjLTQuMy0xNS4zLTYuOC0zMS40LTYuOC00OCAwLTk3LjIgNzguOC0xNzYgMTc2LTE3NnoiXX0sSXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZSIsaWNvbjpbNTEyLDUxMixbMTI4MzA4LDEyODMwOSwxMjg5OTIsMTI4OTkzLDEyODk5NCwxMjg5OTUsMTI4OTk2LDk2NzksOTg5OCw5ODk5LDExMDQ0LDYxNzA4LDYxOTE1XSwiZjExMSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAweiJdfSxQeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLXZpYnJhdGUiLGljb246WzU3Niw1MTIsW10sImU4MTYiLCJNMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE5MiAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTM4NGMwLTM1LjMgMjguNy02NCA2NC02NEwzODQgMHpNMjQ4IDQxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw4MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04MCAwek00OC44IDEzMy40YzkuNC03LjcgMjMuMy03LjEgMzIuMSAxLjcgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDI1LjQgMjUuNCAyLjkgMy4yYzYuMyA3LjcgOS44IDE3LjQgOS44IDI3LjQgMCAxMS41LTQuNiAyMi41LTEyLjcgMzAuNmwtMjUuNCAyNS40IDMxIDMxIDEuNyAxLjhjNy43IDkuNCA3LjEgMjMuMy0xLjcgMzIuMXMtMjIuNyA5LjMtMzIuMSAxLjdMNDcgMzc3IDEyLjcgMzQyLjZDNS42IDMzNS41IDEuMiAzMjYuMiAuMiAzMTYuM0wwIDMxMiAuMiAzMDcuN2MxLTkuOSA1LjQtMTkuMiAxMi41LTI2LjNMMzguMSAyNTYgMTIuNyAyMzAuNkM1LjYgMjIzLjUgMS4yIDIxNC4yIC4yIDIwNC4zTDAgMjAwIC4yIDE5NS43YzEtOS45IDUuNC0xOS4yIDEyLjUtMjYuM0w0NyAxMzUgNDguOCAxMzMuNHpNNDk1IDEzNWM4LjgtOC44IDIyLjctOS4zIDMyLjEtMS43bDEuOCAxLjcgMzQuMyAzNC4zYzcuMSA3LjEgMTEuNSAxNi40IDEyLjUgMjYuM2wuMiA0LjMtLjIgNC4zYy0xIDkuOS01LjQgMTkuMi0xMi41IDI2LjNsLTI1LjQgMjUuNCAyNS40IDI1LjRjNy4xIDcuMSAxMS41IDE2LjQgMTIuNSAyNi4zbC4yIDQuMy0uMiA0LjNjLTEgOS45LTUuNCAxOS4yLTEyLjUgMjYuM2wtMzQuMyAzNC4zLTEuOCAxLjdjLTkuNCA3LjctMjMuMyA3LjEtMzIuMS0xLjdzLTkuMy0yMi43LTEuNy0zMi4xbDEuNy0xLjggMzEtMzEtMjUuNC0yNS40Yy04LjEtOC4xLTEyLjctMTkuMS0xMi43LTMwLjYgMC0xMCAzLjUtMTkuNyA5LjgtMjcuNGwyLjktMy4yIDI1LjQtMjUuNC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6Il19LFRsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4tc3F1aW50IixpY29uOls1MTIsNTEyLFsxMjg1MTgsImdyaW4tc3F1aW50Il0sImY1ODUiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xMjIuNiAxNDMuMmM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMTkyIDM4Ni4yIDIxOS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxOeHQ9VGxlLEZ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1iZXR3ZWVuLWxpbmVzIixpY29uOls1NzYsNTEyLFtdLCJlNTkxIiwiTTI0IDE2bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDY0QzEwLjcgNjQgMCA1My4zIDAgNDBTMTAuNyAxNiAyNCAxNnptMCA0NDhsNTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0zOTIgMTkyYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjcuMiAxMDAuNGM5LjEtMi45IDE4LjgtNC40IDI4LjgtNC40IDUzIDAgOTYgNDMgOTYgOTZsMCAxMC43YzAgMTEuOC05LjYgMjEuMy0yMS4zIDIxLjNsLTc4LjggMGMyLjctNy41IDQuMS0xNS42IDQuMS0yNGwwLThjMC0zNC4xLTEwLjYtNjUuNy0yOC44LTkxLjZ6bS0yNjIuNCAwQzEzOC42IDMxOC4zIDEyOCAzNDkuOSAxMjggMzg0bDAgOGMwIDguNCAxLjQgMTYuNSA0LjEgMjRsLTc4LjggMEM0MS42IDQxNiAzMiA0MDYuNCAzMiAzOTQuN0wzMiAzODRjMC01MyA0My05NiA5Ni05NiAxMCAwIDE5LjcgMS41IDI4LjggNC40ek03MiAxOTJhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwem0xNTItMTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek0xNzYgMzg0YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyczExMiA1MC4xIDExMiAxMTJsMCA4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC0xNzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC04eiJdfSxPeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1MTMiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTIyLjYtMTQ0bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkw1MTguNiA0MDB6Il19LF9sZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1saXN0IixpY29uOls0NDgsNTEyLFsidGgtbGlzdCJdLCJmMDBiIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em02NCAwbDAgNjQgNjQgMCAwLTY0LTY0IDB6bTMyMCAwbC0xOTIgMCAwIDY0IDE5MiAwIDAtNjR6TTY0IDIyNGwwIDY0IDY0IDAgMC02NC02NCAwem0zMjAgMGwtMTkyIDAgMCA2NCAxOTIgMCAwLTY0ek02NCAzNTJsMCA2NCA2NCAwIDAtNjQtNjQgMHptMzIwIDBsLTE5MiAwIDAgNjQgMTkyIDAgMC02NHoiXX0sUnh0PV9sZSxCeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmxhc2stdmlhbCIsaWNvbjpbNjQwLDUxMixbXSwiZTRmMyIsIk0xODQuNiA0MTEuNWMtMy4xIDcuMy01LjQgMTQuOS02LjggMjIuNi0xNC41IDguOC0zMS41IDEzLjktNDkuOCAxMy45LTUzIDAtOTYtNDMtOTYtOTZMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMlMxNC4zIDAgMzIgMEwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDI1NS42LTM5LjQgOTEuOXpNOTYgNjRsMCAxMjggNjQgMCAwLTEyOC02NCAwek0zNTIgMEw1MTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE1My40IDkxLjMgMjEzYzIuMyA1LjQgMy44IDExLjEgNC40IDE3bC4zIC42LS4zIDBjLjIgMS44IC4zIDMuNiAuMyA1LjQgMCAzMi4zLTI2LjIgNTguNi01OC42IDU4LjZsLTI2Ni45IDBjLTMyLjMgMC01OC42LTI2LjItNTguNi01OC42IDAtMS44IC4xLTMuNiAuMy01LjRsLS4zIDAgLjMtLjZjLjYtNS44IDIuMS0xMS42IDQuNC0xN0wzMjAgMjE3LjQgMzIwIDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlMzMDIuMyAwIDMyMCAwbDMyIDB6TTQ1My4yIDI0Mi42Yy0zLjQtOC01LjItMTYuNS01LjItMjUuMmwwLTE1My40LTY0IDAgMCAxNTMuNGMwIDguNy0xLjggMTcuMi01LjIgMjUuMmwtMzMuMiA3Ny40IDE0MC43IDAtMzMuMi03Ny40eiJdfSxMbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls1MTIsNTEyLFsiZXhjbGFtYXRpb24tY2lyY2xlIl0sImYwNmEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6bTAtMTkyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMC0xOTJjLTE4LjIgMC0zMi43IDE1LjUtMzEuNCAzMy43bDcuNCAxMDRjLjkgMTIuNiAxMS40IDIyLjMgMjMuOSAyMi4zIDEyLjYgMCAyMy05LjcgMjMuOS0yMi4zbDcuNC0xMDRjMS4zLTE4LjItMTMuMS0zMy43LTMxLjQtMzMuN3oiXX0sSHh0PUxsZSxBbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGF4aSIsaWNvbjpbNTEyLDUxMixbMTI4NjYyLCJjYWIiXSwiZjFiYSIsIk0xOTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi04LjkgMGMtNDIgMC03OS4xIDI3LjMtOTEuNiA2Ny40bC0yMyA3My41QzE0LjUgMjE5LjEgMCAyNDMuOSAwIDI3MkwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMzIwIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTc2YzAtMjguMS0xNC41LTUyLjktMzYuNC02Ny4xbC0yMy03My41QzQ0MC4xIDkxLjMgNDAyLjkgNjQgMzYwLjkgNjRsLTguOSAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMTkyIDB6TTE1MS4xIDEyOGwyMDkuOSAwYzE0IDAgMjYuNCA5LjEgMzAuNSAyMi41bDEzIDQxLjUtMjk2LjkgMCAxMy00MS41YzQuMi0xMy40IDE2LjUtMjIuNSAzMC41LTIyLjV6TTk2IDI3MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTI4OCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxxeHQ9QWxlLERsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZXh0LXNsYXNoIixpY29uOls1NzYsNTEyLFsicmVtb3ZlLWZvcm1hdCJdLCJmODdkIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMzIyLjcgMjU2LjkgMzY4LjIgOTYgNDcxIDk2IDQ2NSAxMjAuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wxMS00NC4xQzU0NS42IDYxLjMgNTIyLjcgMzIgNDkxLjUgMzJsLTMxOSAwYy0xOS44IDAtMzcuMyAxMi4xLTQ0LjUgMzAuMWwtODctODd6TTE4MC40IDExNC41bDQuNi0xOC41IDExNi43IDAtMzAuOCAxMDktOTAuNS05MC41ek0yNDEgMzEwLjhMMjExLjMgNDE2IDE2MCA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQyLjIgMCAxNS4xLTUzLjMtNTEuOS01MS45eiJdfSxqeHQ9RGxlLFZ4dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZW9wbGUtcHVsbGluZyIsaWNvbjpbNTc2LDUxMixbXSwiZTUzNSIsIk04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzIgOS44IDAgMTguNS00LjQgMjQuNC0xMS4yTDgwLjQgNDg1LjNjMi45IDE3LjQgMTkuNCAyOS4yIDM2LjggMjYuM3MyOS4yLTE5LjQgMjYuMy0zNi44bC0yMC41LTEyMi43IDE1LjcgMCAzMCAxMzQuOWMzLjggMTcuMyAyMC45IDI4LjEgMzguMiAyNC4zczI4LjEtMjAuOSAyNC4zLTM4LjJsLTU3LjMtMjU4IDExNi4zIDUzLjhjLjUgLjMgMS4xIC41IDEuNiAuNyA4LjYgMy42IDE4IDMuMSAyNS45LS43IDMuNC0xLjYgNi42LTMuOSA5LjMtNi43IDMuMS0zLjIgNS41LTcgNy4xLTExLjQgLjEtLjMgLjItLjcgLjMtMWwyLjUtNy41YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjVjMS0uNCAxLjktLjggMi45LTEuMmwtMTYuOSA2My41Yy01LjYgMjEuMS0uMSA0My42IDE0LjcgNTkuN2w3MC43IDc3LjEgMjIgODguMWM0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zczI3LjYtMjEuNyAyMy4zLTM4LjhsLTIzLTkyLjFjLTEuOS03LjgtNS44LTE0LjktMTEuMi0yMC44bC00OS41LTU0IDE5LjMtNjUuNSA5LjYgMjNjNC40IDEwLjYgMTIuNSAxOS4zIDIyLjggMjQuNWwyNi43IDEzLjNjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45bC0yMS40LTEwLjctMTUuMy0zNi44Yy0xNy4xLTQxLjEtNTcuMy02Ny45LTEwMS45LTY3LjktMjIuOCAwLTQ1LjMgNC44LTY2LjEgMTRsLTggMy41Yy0yNC40IDEwLjktNDQuNiAyOS01OC4xIDUxLjZMMTU3LjMgMTM2LjlDMTQ0LjcgMTMxIDEzMC45IDEyOCAxMTcgMTI4bC01MyAwek00NjQgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0zNDkuNyAzMzUuNmwtMjUgNjIuNC01OS40IDU5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMzcyLjMgNDQxYzQuNi00LjYgOC4yLTEwLjEgMTAuNi0xNi4xbDE0LjUtMzYuMi00MC43LTQ0LjRjLTIuNS0yLjctNC44LTUuNi03LTguNnoiXX0sVXh0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkIixpY29uOls1NzYsNTEyLFs5MTk0XSwiZjA0YSIsIk0yMDQuMyA0My4xQzIxNS45IDMyIDIzMyAyOC45IDI0Ny43IDM1LjJTMjcyIDU2IDI3MiA3MmwwIDEzNi4zIDE3Mi4zLTE2NS4xQzQ1NS45IDMyIDQ3MyAyOC45IDQ4Ny43IDM1LjJTNTEyIDU2IDUxMiA3MmwwIDM2OGMwIDE2LTkuNiAzMC41LTI0LjMgMzYuOHMtMzEuOCAzLjItNDMuNC03LjlMMjcyIDMwMy43IDI3MiA0NDBjMCAxNi05LjYgMzAuNS0yNC4zIDM2LjhzLTMxLjggMy4yLTQzLjQtNy45bC0xOTItMTg0QzQuNSAyNzcuMyAwIDI2Ni45IDAgMjU2czQuNS0yMS4zIDEyLjMtMjguOWwxOTItMTg0eiJdfSxFbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FyLWJ1cnN0IixpY29uOls2NDAsNTEyLFsiY2FyLWNyYXNoIl0sImY1ZTEiLCJNMjMyIDE2LjFsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6TTMyIDE2OC4xbDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjR6TTI4MS41IDcwLjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMjgxLjUgMzYuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjl6bS0xODEgMjE1bDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDY2LjYgMjUxLjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHpNNjYuNiAyLjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMTAwLjUgMi43QzkxLjEtNi43IDc2LTYuNyA2Ni42IDIuN3pNMzUyLjkgMTc1LjRMNTA1IDIxNi4yYzYuNCAxLjcgMTEuMSA3LjMgMTEuOCAxMy45bDcuMiA3NC0yMzEuNS02MiA0My4yLTYwLjVjMy45LTUuNCAxMC43LTcuOSAxNy4yLTYuMnpNMjIzLjYgMjI4LjVsLTIuMSAyLjljLTIxLjcgNS41LTM5LjkgMjIuMy00Ni4xIDQ1LjUtNC4xIDE1LjUtMTIuNCA0Ni40LTI0LjggOTIuN2wtOC4zIDMwLjljLTQuNiAxNy4xIDUuNiAzNC42IDIyLjYgMzkuMmwxNS41IDQuMWMxNy4xIDQuNiAzNC42LTUuNiAzOS4yLTIyLjZsOC4zLTMwLjkgMjc4LjIgNzQuNS04LjMgMzAuOWMtNC42IDE3LjEgNS42IDM0LjYgMjIuNiAzOS4ybDE1LjUgNC4xYzE3LjEgNC42IDM0LjYtNS42IDM5LjItMjIuNiA0LjEtMTUuNSAxMi40LTQ2LjQgMjQuOC05Mi43bDguMy0zMC45YzYuMi0yMy4yLTEuMS00Ni44LTE3LjItNjIuNWwtLjMtMy42LTEwLTEwM2MtMy4yLTMzLjItMjYuNy02MC45LTU4LjktNjkuNUwzNjkuNSAxMTMuNmMtMzIuMi04LjYtNjYuNCAzLjYtODUuOCAzMC44bC02MC4yIDg0LjJ6bTQ4LjcgNTcuOGEzMiAzMiAwIDEgMSAtMTYuNiA2MS44IDMyIDMyIDAgMSAxIDE2LjYtNjEuOHptMjA4LjEgODguOWEzMiAzMiAwIDEgMSA2MS44IDE2LjYgMzIgMzIgMCAxIDEgLTYxLjgtMTYuNnoiXX0sV3h0PUVsZSwkbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGluayIsaWNvbjpbNTc2LDUxMixbMTI4Mjc5LCJjaGFpbiJdLCJmMGMxIiwiTTQxOS41IDk2Yy0xNi42IDAtMzIuNyA0LjUtNDYuOCAxMi43LTE1LjgtMTYtMzQuMi0yOS40LTU0LjUtMzkuNSAyOC4yLTI0IDY0LjEtMzcuMiAxMDEuMy0zNy4yIDg2LjQgMCAxNTYuNSA3MCAxNTYuNSAxNTYuNSAwIDQxLjUtMTYuNSA4MS4zLTQ1LjggMTEwLjZsLTcxLjEgNzEuMWMtMjkuMyAyOS4zLTY5LjEgNDUuOC0xMTAuNiA0NS44LTg2LjQgMC0xNTYuNS03MC0xNTYuNS0xNTYuNSAwLTEuNSAwLTMgLjEtNC41IC41LTE3LjcgMTUuMi0zMS42IDMyLjktMzEuMXMzMS42IDE1LjIgMzEuMSAzMi45YzAgLjkgMCAxLjggMCAyLjYgMCA1MS4xIDQxLjQgOTIuNSA5Mi41IDkyLjUgMjQuNSAwIDQ4LTkuNyA2NS40LTI3LjFsNzEuMS03MS4xYzE3LjMtMTcuMyAyNy4xLTQwLjkgMjcuMS02NS40IDAtNTEuMS00MS40LTkyLjUtOTIuNS05Mi41ek0yNzUuMiAxNzMuM2MtMS45LS44LTMuOC0xLjktNS41LTMuMS0xMi42LTYuNS0yNy0xMC4yLTQyLjEtMTAuMi0yNC41IDAtNDggOS43LTY1LjQgMjcuMUw5MS4xIDI1OC4yYy0xNy4zIDE3LjMtMjcuMSA0MC45LTI3LjEgNjUuNCAwIDUxLjEgNDEuNCA5Mi41IDkyLjUgOTIuNSAxNi41IDAgMzIuNi00LjQgNDYuNy0xMi42IDE1LjggMTYgMzQuMiAyOS40IDU0LjYgMzkuNS0yOC4yIDIzLjktNjQgMzcuMi0xMDEuMyAzNy4yLTg2LjQgMC0xNTYuNS03MC0xNTYuNS0xNTYuNSAwLTQxLjUgMTYuNS04MS4zIDQ1LjgtMTEwLjZsNzEuMS03MS4xYzI5LjMtMjkuMyA2OS4xLTQ1LjggMTEwLjYtNDUuOCA4Ni42IDAgMTU2LjUgNzAuNiAxNTYuNSAxNTYuOSAwIDEuMyAwIDIuNiAwIDMuOS0uNCAxNy43LTE1LjEgMzEuNi0zMi44IDMxLjJzLTMxLjYtMTUuMS0zMS4yLTMyLjhjMC0uOCAwLTEuNSAwLTIuMyAwLTMzLjctMTgtNjMuMy00NC44LTc5LjZ6Il19LEd4dD0kbGUsSWxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhY2t3YXJkLXN0ZXAiLGljb246WzM4NCw1MTIsWyJzdGVwLWJhY2t3YXJkIl0sImYwNDgiLCJNMzYzIDM2LjhjLTEyLjktNy0yOC43LTYuMy00MSAxLjhMNjQgMjA4LjEgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0NC4xIDI1OCAxNjkuNmMxMi4zIDguMSAyOCA4LjggNDEgMS44czIxLTIwLjUgMjEtMzUuMmwwLTM2OGMwLTE0LjctOC4xLTI4LjItMjEtMzUuMnoiXX0sWXh0PUlsZSxaeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieCIsaWNvbjpbMzg0LDUxMixbMTIwXSwiNTgiLCJNMzc2LjYgODQuNWMxMS4zLTEzLjYgOS41LTMzLjgtNC4xLTQ1LjFzLTMzLjgtOS41LTQ1LjEgNC4xTDE5MiAyMDYgNTYuNiA0My41QzQ1LjMgMjkuOSAyNS4xIDI4LjEgMTEuNSAzOS40Uy0zLjkgNzAuOSA3LjQgODQuNUwxNTAuMyAyNTYgNy40IDQyNy41Yy0xMS4zIDEzLjYtOS41IDMzLjggNC4xIDQ1LjFzMzMuOCA5LjUgNDUuMS00LjFMMTkyIDMwNiAzMjcuNCA0NjguNWMxMS4zIDEzLjYgMzEuNSAxNS40IDQ1LjEgNC4xczE1LjQtMzEuNSA0LjEtNDUuMUwyMzMuNyAyNTYgMzc2LjYgODQuNXoiXX0sUGxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS11c2VyIixpY29uOls1MTIsNTEyLFs2MjE0MiwidXNlci1jaXJjbGUiXSwiZjJiZCIsIk0zOTkgMzg0LjJDMzc2LjkgMzQ1LjggMzM1LjQgMzIwIDI4OCAzMjBsLTY0IDBjLTQ3LjQgMC04OC45IDI1LjgtMTExIDY0LjIgMzUuMiAzOS4yIDg2LjIgNjMuOCAxNDMgNjMuOHMxMDcuOC0yNC43IDE0My02My44ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0yNTYgMTZhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6Il19LFh4dD1QbGUsTmxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlY3RhbmdsZS1saXN0IixpY29uOls1MTIsNTEyLFsibGlzdC1hbHQiXSwiZjAyMiIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptOTYgMjU2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bS0zMi05NmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTEyMC01NmwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sUXh0PU5sZSxGbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZCIsaWNvbjpbNTEyLDUxMixbMTI5MzA2LDk5OTUsImhhbmQtcGFwZXIiXSwiZjI1NiIsIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xNzZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyNzJjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNFMtMy42IDMyNS43IDEyLjQgMzQxTDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0bDE5LjIgMGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmwwLTIwOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTIwOHoiXX0sSnh0PUZsZSxLeHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FuY2VyIixpY29uOls1MTIsNTEyLFtdLCJlODQ3IiwiTTQwOCAxNTJjNTcuNCAwIDEwNCA0Ni42IDEwNCAxMDQgMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1Ni01NC4zIDAtMTA0LjgtMTctMTQ2LjMtNDUuOS0xNC41LTEwLjEtMTgtMzAuMS03LjktNDQuNnMzMC4xLTE4IDQ0LjYtNy45YzMxLjEgMjEuNyA2OC45IDM0LjQgMTA5LjcgMzQuNCA2Ny45IDAgMTI3LjUtMzUuMyAxNjEuNy04OC41LTMuMiAuMy02LjQgLjUtOS43IC41LTU3LjQgMC0xMDQtNDYuNi0xMDQtMTA0czQ2LjYtMTA0IDEwNC0xMDR6TTI1NiAwYzU0LjMgMCAxMDQuOCAxNyAxNDYuMyA0NS45IDE0LjUgMTAuMSAxOCAzMC4xIDcuOSA0NC42cy0zMC4xIDE4LTQ0LjYgNy45Yy0zMS4xLTIxLjctNjguOS0zNC40LTEwOS43LTM0LjQtNjcuOSAwLTEyNy41IDM1LjItMTYxLjcgODguNCAzLjItLjMgNi40LS40IDkuNy0uNCA1Ny40IDAgMTA0IDQ2LjYgMTA0IDEwNFMxNjEuNCAzNjAgMTA0IDM2MCAwIDMxMy40IDAgMjU2QzAgMjU0LjEgMCAyNTIuMiAuMSAyNTAuNCAzLjEgMTExLjYgMTE2LjUgMCAyNTYgMHpNMTA0IDIxNmE0MCA0MCAwIDEgMCAwIDgwIDQwIDQwIDAgMSAwIDAtODB6bTMwNCAwYTQwIDQwIDAgMSAwIDAgODAgNDAgNDAgMCAxIDAgMC04MHoiXX0sT2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZhbi1zaHV0dGxlIixpY29uOls1NzYsNTEyLFsxMjg2NTYsInNodXR0bGUtdmFuIl0sImY1YjYiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzMzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsLjQgMGM0IDQ0LjkgNDEuNyA4MCA4Ny42IDgwczgzLjYtMzUuMSA4Ny42LTgwbDEwNC43IDBjNCA0NC45IDQxLjcgODAgODcuNiA4MCA0Ni4xIDAgODMuOS0zNS40IDg3LjctODAuNSAzMS43LTMuOCA1Ni4zLTMwLjggNTYuMy02My41bDAtMTAxLjNjMC0xMy44LTQuNS0yNy4zLTEyLjgtMzguNGwtODAtMTA2LjdDNDcxLjEgNzMuNSA0NTIuMSA2NCA0MzIgNjRMNjQgNjR6TTUwNCAyMjRsLTEyMCAwIDAtOTYgNDggMCA3MiA5NnpNNjQgMjI0bDAtOTYgOTYgMCAwIDk2LTk2IDB6bTE2MCAwbDAtOTYgOTYgMCAwIDk2LTk2IDB6TTM5MiAzOTJhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTUyIDM1MmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6Il19LGV5dD1PbGUsdHl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YWlycyIsaWNvbjpbNTc2LDUxMixbXSwiZTI4OSIsIk0zODQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwIDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTk2eiJdfSxyeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG9yc2UtaGVhZCIsaWNvbjpbNTEyLDUxMixbXSwiZjdhYiIsIk0wIDQ2NEwwIDMxNi45QzAgMjA4LjUgNjguMyAxMTEuOCAxNzAuNSA3NS42TDM0MC4yIDE1LjVjMjEuNC03LjYgNDMuOCA4LjMgNDMuOCAzMC45IDAgMTEtNS41IDIxLjItMTQuNiAyNy4zTDMzNiA5NmM0OC4xIDAgOTEuMiAyOS44IDEwOC4xIDc0LjlsNDguNiAxMjkuNWMxMS44IDMxLjQgNC4xIDY2LjgtMTkuNiA5MC41LTE2IDE2LTM3LjggMjUuMS02MC41IDI1LjFsLTMuNCAwYy0yNi4xIDAtNTAuOS0xMS42LTY3LjYtMzEuN2wtMzIuMy0zOC43Yy0xMS43IDQuMS0yNC4yIDYuNC0zNy4zIDYuNGwtLjEgMGMtNi4zIDAtMTIuNS0uNS0xOC42LTEuNS0zLjYtLjYtNy4yLTEuNC0xMC43LTIuM2wwIDBjLTI4LjktNy44LTUzLjEtMjYuOC02Ny44LTUyLjItNC40LTcuNy0xNC4yLTEwLjMtMjEuOS01LjhzLTEwLjMgMTQuMi01LjggMjEuOWMyNCA0MS41IDY4LjMgNzAgMTE5LjMgNzEuOWw0Ny4yIDcwLjhjNCA2LjEgNi4yIDEzLjIgNi4yIDIwLjQgMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OHpNMzI4IDIyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGl5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2YXVsdCIsaWNvbjpbNTEyLDUxMixbXSwiZTJjNSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMjU2IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjU2IDI1NmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTY0IDI1NmExMjggMTI4IDAgMSAxIDI1NiAwIDEyOCAxMjggMCAxIDEgLTI1NiAwem0zODQtNDhjMCAxNy44LTkuNyAzMy4zLTI0IDQxLjZsMCA3OC40YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNzguNGMtMTQuMy04LjMtMjQtMjMuOC0yNC00MS42IDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh6Il19LGF5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjbG9zZWQtY2FwdGlvbmluZy1zbGFzaCIsaWNvbjpbNTc2LDUxMixbXSwiZTEzNSIsIk03LTI0LjljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMTI5LjggNjQgNDgwIDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMjUuNS0xNC45IDQ3LjQtMzYuNCA1Ny44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45em0zNDUgMzExbDAtNzAuMmMwLTQuNCAzLjYtOCA4LThsMzIgMGM0LjQgMCA4IDMuNiA4IDggMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTMwLjktMjUuMS01Ni01Ni01NmwtMzIgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCAyMi4yIDQ4IDQ4em02MS41IDYxLjVjMjAuMi04LjQgMzQuNS0yOC40IDM0LjUtNTEuNyAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDQuNC0zLjYgOC04IDhsLTIyLjIgMCA0My43IDQzLjd6TTEzMC4zIDIwMC4xYy0xLjUgNS0yLjMgMTAuNC0yLjMgMTUuOWwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMTguMSAwIDM0LjEtOC41IDQ0LjQtMjEuOEwzNzguMiA0NDggOTYgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI1NmMwLTcuOCAxLjQtMTUuMyA0LTIyLjJsOTQuMyA5NC4zem05My44IDkzLjhjLS4xIC43LS4xIDEuNC0uMSAyLjEgMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC01MC4yIDQ4LjEgNDguMXoiXX0sbnl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRydW0tc3RlZWxwYW4iLGljb246WzU3Niw1MTIsW10sImY1NmEiLCJNMjg4IDMyYzE1OS4xIDAgMjg4IDQ4IDI4OCAxMjhsMCAxOTJjMCA4MC0xMjguOSAxMjgtMjg4IDEyOFMwIDQzMiAwIDM1MkwwIDE2MEMwIDgwIDEyOC45IDMyIDI4OCAzMnpNNTI4IDE2MGMwLTkuOS04LTI5LjktNTUtNDkuOC0xOC42LTcuOS00MC45LTE0LjQtNjYtMTkuNGwtMjcuOCA0My42Yy03LjMgMTEuNS0xMS4yIDI0LjgtMTEuMiAzOC40IDAgMTcuNSA2LjQgMzQuNCAxOC4xIDQ3LjVsOS44IDExYzI5LjgtNS4yIDU1LjktMTIuNSA3Ny4yLTIxLjUgNDcuMS0xOS45IDU1LTM5LjkgNTUtNDkuOHpNMzQ5LjIgMjM3LjNjLTgtMjYuMi0zMi40LTQ1LjMtNjEuMi00NS4zcy01My4zIDE5LjEtNjEuMiA0NS4zYzE5LjQgMS43IDM5LjkgMi43IDYxLjIgMi43czQxLjgtLjkgNjEuMi0yLjd6TTE2OSA5MC44Yy0yNS4yIDUtNDcuNCAxMS42LTY2IDE5LjQtNDcuMSAxOS45LTU1IDM5LjktNTUgNDkuOHM4IDI5LjkgNTUgNDkuOGMyMS4zIDkgNDcuNCAxNi4zIDc3LjIgMjEuNWw5LjgtMTFjMTEuNi0xMy4xIDE4LjEtMzAgMTguMS00Ny41IDAtMTMuNi0zLjktMjYuOS0xMS4yLTM4LjRMMTY5IDkwLjh6bTU2LjMtOGMtLjkgNC4zLTEuNCA4LjctMS40IDEzLjIgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTQuNS0uNS05LTEuNC0xMy4yLTE5LjgtMS44LTQwLjgtMi44LTYyLjYtMi44cy00Mi44IDEtNjIuNiAyLjh6Il19LG95dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0aHVtYnMtdXAiLGljb246WzUxMiw1MTIsWzEyODA3Nyw2MTU3NV0sImYxNjQiLCJNODAgMTYwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw0OCAwek0yNzAuNiAxNkMyOTcuOSAxNiAzMjAgMzguMSAzMjAgNjUuNGwwIDQuMmMwIDYuOC0xLjMgMTMuNi0zLjggMTkuOUwyODggMTYwIDQ0OCAxNjBjMjYuNSAwIDQ4IDIxLjUgNDggNDggMCAxOS43LTExLjkgMzYuNi0yOC45IDQ0IDE3IDcuNCAyOC45IDI0LjMgMjguOSA0NCAwIDIzLjQtMTYuOCA0Mi45LTM5IDQ3LjEgNC40IDcuMyA3IDE1LjggNyAyNC45IDAgMjIuMi0xNSA0MC44LTM1LjQgNDYuMyAyLjIgNS41IDMuNCAxMS41IDMuNCAxNy43IDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC04Ny45IDBjLTM2LjMgMC03MS42LTEyLjQtOTkuOS0zNS4xTDE4NCA0MzUuMmMtMTUuMi0xMi4xLTI0LTMwLjUtMjQtNTBsMC0xODYuNmMwLTE0LjkgMy41LTI5LjYgMTAuMS00Mi45TDIyNi4zIDQzLjNDMjM0LjcgMjYuNiAyNTEuOCAxNiAyNzAuNiAxNnoiXX0sc3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YW1wIixpY29uOls1MTIsNTEyLFtdLCJmNWJmIiwiTTMxMiAyMDEuOGMwLTE3LjQgOS4yLTMzLjIgMTkuOS00NyAxMi42LTE2LjIgMjAuMS0zNi42IDIwLjEtNTguOCAwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDIyLjEgNy41IDQyLjUgMjAuMSA1OC44IDEwLjcgMTMuOCAxOS45IDI5LjYgMTkuOSA0NyAwIDI5LjktMjQuMyA1NC4yLTU0LjIgNTQuMkwxMTIgMjU2Yy02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDI2LjUgMjEuNSA0OCA0OCA0OGw0MTYgMGMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTYxLjktNTAuMS0xMTItMTEyLTExMmwtMzMuOCAwYy0yOS45IDAtNTQuMi0yNC4zLTU0LjItNTQuMnpNNTYgNDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwMCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDU2IDQ2NHoiXX0sbHl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1lbm9yYWgiLGljb246WzY0MCw1MTIsW10sImY2NzYiLCJNMjAuOCA3LjRDMjIuOCAyLjkgMjcuMSAwIDMyIDBzOS4yIDIuOSAxMS4yIDcuNEw2MS4zIDQ5LjdjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xTDY0IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgODEuNyAwIDY0bDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUwyMC44IDcuNHptOTYgMEMxMTguOCAyLjkgMTIzLjEgMCAxMjggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJTOTYgODEuNyA5NiA2NGwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjFMMTE2LjggNy40em03Ny44IDQyLjRMMjEyLjggNy40QzIxNC44IDIuOSAyMTkuMSAwIDIyNCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMWwwIDEuMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEuMmMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMwOC44IDcuNEMzMTAuOCAyLjkgMzE1LjEgMCAzMjAgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xTDMwOC44IDcuNHptNzcuOCA0Mi40TDQwNC44IDcuNEM0MDYuOCAyLjkgNDExLjEgMCA0MTYgMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFsMCAxLjJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xek01MDAuOCA3LjRDNTAyLjggMi45IDUwNy4xIDAgNTEyIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMUw1MDAuOCA3LjR6bTc3LjggNDIuNEw1OTYuOCA3LjRDNTk4LjggMi45IDYwMy4xIDAgNjA4IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xbDAgMS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMS4yYzAtNC41IC45LTguOSAyLjctMTMuMXpNMzIgMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE5MiAwIDAtMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNjAgMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDEyOGMwIDUzLTQzIDk2LTk2IDk2bC0xOTIgMCAwIDY0IDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxMjggMCAwLTY0LTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDAgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4LTY0IDAgMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjgtNjQgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOC02NCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxjeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGRyZW4iLGljb246WzY0MCw1MTIsW10sImU0ZTEiLCJNMTYwLjUgMGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptLTcyIDQ4MGwwLTgwLTE3LjggMGMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFMODYuNyAyODUuNSA1OCAzMjMuM2MtMTAuNyAxNC4xLTMwLjggMTYuOC00NC44IDYuMlMtMy43IDI5OC43IDcgMjg0LjdMNjUuOSAyMDdjMjIuNC0yOS42IDU3LjUtNDcgOTQuNi00N3M3Mi4yIDE3LjQgOTQuNiA0N0wzMTQgMjg0LjdjMTAuNyAxNC4xIDcuOSAzNC4yLTYuMiA0NC44cy0zNC4yIDcuOS00NC44LTYuMmwtMjguNy0zNy44IDMxLjEgOTMuNGMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFsLTE3LjggMCAwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODAtMTYgMCAwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyek00ODAuNSAwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0tOCAzODRsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE3OS41LTEyLjkgMjAuNWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwcy0xOS40LTI5LjItMTAtNDQuMWw1MS43LTgyLjFjMTcuNi0yNy45IDQ4LjMtNDQuOSA4MS4yLTQ0LjlsMTIuMyAwYzMzIDAgNjMuNyAxNi45IDgxLjIgNDQuOUw2MTkuNiAyODdjOS40IDE1IDQuOSAzNC43LTEwIDQ0LjFzLTM0LjcgNC45LTQ0LjEtMTBsLTEyLjktMjAuNSAwIDE3OS41YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTYtMTYgMHoiXX0sUmxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWxpbmUiLGljb246WzUxMiw1MTIsWyJsaW5lLWNoYXJ0Il0sImYyMDEiLCJNNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRMMCA0MDBjMCA0NC4yIDM1LjggODAgODAgODBsNDAwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgNDE2Yy04LjggMC0xNi03LjItMTYtMTZMNjQgNjR6bTQwNi42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMzIwIDIxMC43IDI2Mi42IDE1My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNzMuNC03My40IDU3LjQgNTcuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4eiJdfSxkeXQ9UmxlLEJsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtZW52ZWxvcGUiLGljb246WzQ0OCw1MTIsWyJlbnZlbG9wZS1zcXVhcmUiXSwiZjE5OSIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMDkuMSAyNjcuOUwxMDguNCAyMDcuNGMtNy43LTQuNi0xMi40LTEyLjktMTIuNC0yMS45IDAtMTQuMSAxMS40LTI1LjUgMjUuNS0yNS41bDIwNC45IDBjMTQuMSAwIDI1LjUgMTEuNCAyNS41IDI1LjUgMCA5LTQuNyAxNy4zLTEyLjQgMjEuOUwyMzguOSAyNjcuOWMtNC41IDIuNy05LjYgNC4xLTE0LjkgNC4xcy0xMC40LTEuNC0xNC45LTQuMXpNMzUyIDIzNy4zbDAgODIuN2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODIuNyA5Ni43IDU4QzIwMi4xIDMwMSAyMTMgMzA0IDIyNCAzMDRzMjEuOS0zIDMxLjMtOC43bDk2LjctNTh6Il19LHV5dD1CbGUsSGxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbi1zbW9raW5nIixpY29uOls1MTIsNTEyLFsxMjg2ODUsInNtb2tpbmctYmFuIl0sImY1NGQiLCJNOTkuNSAxNDQuOGw3OS4yIDc5LjItNTAuNyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE0Ni43IDAgOTIuNSA5Mi41Yy0zMS40IDIyLjQtNjkuOCAzNS41LTExMS4yIDM1LjUtMTA2IDAtMTkyLTg2LTE5Mi0xOTIgMC00MS41IDEzLjEtNzkuOSAzNS41LTExMS4yek0zMzMuMyAyODhsLTMyLTMyIDgyLjcgMCAwIDMyLTUwLjcgMHptMzIgMzJsMTguNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMjY5LjMgMjI0IDE0NC44IDk5LjVjMzEuNC0yMi40IDY5LjgtMzUuNSAxMTEuMi0zNS41IDEwNiAwIDE5MiA4NiAxOTIgMTkyIDAgNDEuNS0xMy4xIDc5LjktMzUuNSAxMTEuMkwzNjUuMyAzMjB6TTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yNzIgOTZjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzLTcuMi0xNi0xNi0xNnoiXX0scHl0PUhsZSxoeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stZnJvbnQiLGljb246WzQ0OCw1MTIsW10sImUyYjciLCJNMCAxMTJDMCA2Ny44IDM1LjggMzIgODAgMzJsMjg4IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCAyNTZjMCAyNi4yLTEyLjYgNDkuNC0zMiA2NGwwIDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyLTE5MiAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNDhDMTIuNiA0MTcuNCAwIDM5NC4yIDAgMzY4TDAgMTEyem05NiA4MGwwIDY0IDI1NiAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMzIgMTYwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTIyNCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGFFPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nIixpY29uOlszODQsNTEyLFsxMjc5NzAsNjE2ODddLCJmMWFkIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTE3NiAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNOTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6Il19LGZ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWxsc2V5ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjE0MCIsIk00NDggMjU2YTE5MiAxOTIgMCAxIDAgLTM4NCAwIDE5MiAxOTIgMCAxIDAgMzg0IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTI1NiA4MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMC0yMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4ek0yMjQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHFsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1sZWZ0LWxvbmciLGljb246WzU3Niw1MTIsWyJsb25nLWFycm93LWxlZnQiXSwiZjE3NyIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDEyOCAxMjhjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyODggNTQ0IDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDM0LjcgMCA3My40LTczLjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjh6Il19LG15dD1xbGUsZ3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLXJvb2siLGljb246WzM4NCw1MTIsWzk4MjBdLCJmNDQ3IiwiTTAgMzJMMCAxMzMuNWMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM0w2NCAyMjQgNjQgMzg0IDcuOCA0NTQuM0MyLjcgNDYwLjYgMCA0NjguNCAwIDQ3Ni41IDAgNDk2LjEgMTUuOSA1MTIgMzUuNSA1MTJsMzEyLjkgMGMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNSAwLTguMS0yLjctMTUuOS03LjgtMjIuMmwtNTYuMi03MC4zIDAtMTYwIDQ1LjMtNDUuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zTDM4NCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi00OCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMMTc2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMzItNDggMCAwLTMyQzk2IDE0LjMgODEuNyAwIDY0IDBMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ6Il19LGJ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJibGVuZGVyLXBob25lIixpY29uOls1NzYsNTEyLFtdLCJmNmI2IiwiTTE1MS40IDEzLjJjMTAuMiA1LjggMTQuNSAxOC40IDEwIDI5LjNMMTM4LjIgOTguOGMtMy45IDkuNi0xMy43IDE1LjQtMjQgMTQuNGwtMjAuMi0yQzc4LjcgMTUyLjkgNzggMTk4LjkgOTEuOSAyNDEuMWwyMi40LTIuMmMxMC4zLTEgMjAgNC44IDI0IDE0LjRsMjMuMiA1Ni4zYzQuNSAxMC45IC4yIDIzLjQtMTAgMjkuM2wtMi45IDEuNmMtMzMuNiAxOS4yLTgxLjcgMTYuMi0xMDYuMi0yMS42LTU2LjMtODYuNi01Ni4zLTE5OS4xIDAtMjg1LjcgMjQuNi0zNy43IDcyLjctNDAuNyAxMDYuMi0yMS42bDIuOSAxLjZ6TTIyNCAzMzZMMTkzLjcgMTcuNUMxOTIuOCA4LjEgMjAwLjIgMCAyMDkuNiAwbDMyNCAwYzIxLjMgMCAzNi42IDIwLjMgMzAuOCA0MC44TDU1My4xIDgwIDQ0MCA4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw5OS40IDAtMTguMyA2NC04MS4xIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuNCAwLTI3LjQgOTYtMjU2IDB6bTggNDhsMjQwIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MGwtMjQwIDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6bTEyMCA4OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6Il19LGpsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy10dXJuLXVwIixpY29uOlszODQsNTEyLFsibGV2ZWwtdXAiXSwiZjE0OCIsIk0zMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzA2LjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuMyAxNjAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAweiJdfSx2eXQ9amxlLHh5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaWN5Y2xlIixpY29uOls2NDAsNTEyLFsxMjg2OTBdLCJmMjA2IiwiTTMzMS43IDQzLjNDMzM2IDM2LjMgMzQzLjcgMzIgMzUyIDMybDEwNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NS42IDAgNzIuMiAxNDguNGMxMC43LTIuOSAyMS45LTQuNCAzMy40LTQuNCA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOHMtNTcuMyAxMjgtMTI4IDEyOC0xMjgtNTcuMy0xMjgtMTI4YzAtNDIgMjAuMi03OS4yIDUxLjQtMTAyLjZsLTIwLjQtNDEuOS03My41IDE0N2MtMi4zIDQuOC02LjMgOC44LTExLjQgMTEuMi0uNiAuMy0xLjIgLjUtMS44IC43LTIuOSAxLjEtNS45IDEuNi04LjkgMS41TDI3MSAzNjhjLTcuOSA2My4xLTYxLjcgMTEyLTEyNyAxMTItNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhTNzMuMyAyMjQgMTQ0IDIyNGMxMC44IDAgMjEuMiAxLjMgMzEuMiAzLjhsMjguNS01Ni45LTExLjUtMjYuOS00MC4yIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNTYgMGM5LjYgMCAxOC4zIDUuNyAyMi4xIDE0LjVsMTQuMyAzMy41IDEyMy43IDAtMzcuNy03Ny41Yy0zLjYtNy40LTMuMi0xNi4yIDEuMi0yMy4yek0yMjguNSAyMjguN2wtNDUuNiA5MS4zIDg0LjggMC0zOS4xLTkxLjN6TTMwNS43IDI4N2w0Ny41LTk1LTg4LjIgMCA0MC43IDk1em0xNjguNyA3NS41bC0yOS43LTYxYy0xMi44IDEzLTIwLjcgMzAuOC0yMC43IDUwLjUgMCAzOS44IDMyLjIgNzIgNzIgNzJzNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyYy0yLjcgMC01LjUgLjItOC4xIC41bDI5LjcgNjFjNS44IDExLjkgLjggMjYuMy0xMS4xIDMyLjFzLTI2LjMgLjgtMzIuMS0xMS4xek0xNDkuMiAzNjhjLTIwLjIgMC0zMy40LTIxLjMtMjQuMy0zOS40bDI0LjItNDguNWMtMS43LS4xLTMuNC0uMi01LjEtLjItMzkuOCAwLTcyIDMyLjItNzIgNzJzMzIuMiA3MiA3MiA3MmMzNC4zIDAgNjIuOS0yMy45IDcwLjItNTZsLTY1IDB6Il19LFZsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctZG93biIsaWNvbjpbNTEyLDUxMixbImFycm93LWNpcmNsZS1kb3duIl0sImYwYWIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIzOSAzNzdsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzkgMzkgMC0xNTAuMWMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTUwLjEgMzktMzljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC04MCA4MGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDB6Il19LHl5dD1WbGUsWGc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2VhciIsaWNvbjpbNTEyLDUxMixbOTg4MSwiY29nIl0sImYwMTMiLCJNMTk1LjEgOS41QzE5OC4xLTUuMyAyMTEuMi0xNiAyMjYuNC0xNmw1OS44IDBjMTUuMiAwIDI4LjMgMTAuNyAzMS4zIDI1LjVMMzMyIDc5LjVjMTQuMSA2IDI3LjMgMTMuNyAzOS4zIDIyLjhsNjcuOC0yMi41YzE0LjQtNC44IDMwLjIgMS4yIDM3LjggMTQuNGwyOS45IDUxLjhjNy42IDEzLjIgNC45IDI5LjgtNi41IDM5LjlMNDQ3IDIzMy4zYy45IDcuNCAxLjMgMTUgMS4zIDIyLjdzLS41IDE1LjMtMS4zIDIyLjdsNTMuNCA0Ny41YzExLjQgMTAuMSAxNCAyNi44IDYuNSAzOS45bC0yOS45IDUxLjhjLTcuNiAxMy4xLTIzLjQgMTkuMi0zNy44IDE0LjRsLTY3LjgtMjIuNWMtMTIuMSA5LjEtMjUuMyAxNi43LTM5LjMgMjIuOGwtMTQuNCA2OS45Yy0zLjEgMTQuOS0xNi4yIDI1LjUtMzEuMyAyNS41bC01OS44IDBjLTE1LjIgMC0yOC4zLTEwLjctMzEuMy0yNS41bC0xNC40LTY5LjljLTE0LjEtNi0yNy4yLTEzLjctMzkuMy0yMi44TDczLjUgNDMyLjNjLTE0LjQgNC44LTMwLjItMS4yLTM3LjgtMTQuNEw1LjggMzY2LjFjLTcuNi0xMy4yLTQuOS0yOS44IDYuNS0zOS45bDUzLjQtNDcuNWMtLjktNy40LTEuMy0xNS0xLjMtMjIuN3MuNS0xNS4zIDEuMy0yMi43TDEyLjMgMTg1LjhjLTExLjQtMTAuMS0xNC0yNi44LTYuNS0zOS45TDM1LjcgOTQuMWM3LjYtMTMuMiAyMy40LTE5LjIgMzcuOC0xNC40bDY3LjggMjIuNWMxMi4xLTkuMSAyNS4zLTE2LjcgMzkuMy0yMi44TDE5NS4xIDkuNXpNMjU2LjMgMzM2YTgwIDgwIDAgMSAwIC0uNi0xNjAgODAgODAgMCAxIDAgLjYgMTYweiJdfSx3eXQ9WGcsTXl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtYW5kLXZlbnVzLWJ1cnN0IixpY29uOls2NDAsNTEyLFtdLCJlNTIzIiwiTTQ2NC0zMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzNC43IDAtNjMgNjNjLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzEtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA4Ni4zIDYyLjEgMTU4LjEgMTQ0IDE3My4xbDAgMzQuOS0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIgMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTM0LjljODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjEgMC0zNy0xMS40LTcxLjQtMzEtOTkuOGw2My02MyAwIDM0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTExMmMwLTE3LjctMTQuMy0zMi0zMi0zMkw0OTYtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zNjggOTZhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0ek0xOTAuOS0yMS45QzE4OC40LTI4IDE4Mi42LTMyIDE3Ni0zMnMtMTIuNCA0LTE0LjkgMTAuMWwtMjkuNCA3NC03Ni4yLTIzLjFjLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM1MzMy44IDQ2LjUgMzcgNTIuMmwzOS41IDY5LjEtNjUuNiA0NS4xYy01LjQgMy43LTggMTAuMy02LjUgMTYuN3M2LjcgMTEuMiAxMy4xIDEyLjJsNzguNyAxMi4yLTUuNiA3OS40Yy0uNSA2LjUgMy4xIDEyLjcgOSAxNS41czEyLjkgMS44IDE3LjgtMi42TDE1Mi4xIDI2OGMtNS4zLTE5LjEtOC4xLTM5LjItOC4xLTYwIDAtNjUuNCAyOC0xMjQuMiA3Mi42LTE2NS4xTDE5MC45LTIxLjl6Il19LGt5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvdHRlciIsaWNvbjpbNjQwLDUxMixbMTI5NDQ2XSwiZjcwMCIsIk0xODEuNSAxOTcuMWwxMi45IDYuNGM1LjkgMyAxMi40IDQuNSAxOS4xIDQuNSAyMy41IDAgNDIuNi0xOS4xIDQyLjYtNDIuNmwwLTIxLjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTY0IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjEuNGMwIDIzLjUgMTkuMSA0Mi42IDQyLjYgNDIuNiA2LjYgMCAxMy4xLTEuNSAxOS4xLTQuNSA5LjMtNC43IDE2LjQtOC4yIDIxLjItMTAuNkwxMzUuMSAxODVjLTQuNS0zLTcuMS04LTcuMS0xMy4zbDAtMy43YzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAzLjdjMCA1LjMtMi43IDEwLjMtNy4xIDEzLjNsLTExLjggNy45IDguNCA0LjJ6bS04LjYgNDkuNGwtMTIuOS02LjQtMTIuOSA2LjRjLTEyLjYgNi4zLTI2LjUgOS42LTQwLjUgOS42LTMuNiAwLTcuMS0uMi0xMC42LS42bDAgLjZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwxNjAgMCAwLTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNCA5LjQtNS40IDIwLjMtOC42IDMyLTguNmwwLTE2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4IDguOCAwIDE2IDcuMiAxNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05OS43YzAtNDguMi0zMC44LTkxLTc2LjYtMTA2LjNsLTguNS0yLjhjLTgtMi43LTEyLjYtMTEuMS0xMC40LTE5LjNzMTAuMy0xMy4yIDE4LjYtMTEuNmwxOS45IDRDNTc2IDg2LjEgNjQwIDE2NC4yIDY0MCAyNTQuOWwwIDEuMSAwIDBjMCAxMjMuNy0xMDAuMyAyMjQtMjI0IDIyNGwtMTYwLjYgMEMxMzIgNDgwIDMyIDM4MCAzMiAyNTYuNmwwLTM5LjhjLTEwLjEtMTQuNi0xNi0zMi4zLTE2LTUxLjRsMC0yMS40IDAtMS40QzYuNyAxMzkuMyAwIDEzMC41IDAgMTIwIDAgMTA2LjcgMTAuNyA5NiAyNCA5NmwyLjggMEM0NC44IDU4LjIgODMuMyAzMiAxMjggMzJsNjQgMGM0NC43IDAgODMuMiAyNi4yIDEwMS4yIDY0bDIuOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTAuNS02LjcgMTkuMy0xNiAyMi42bDAgMS40IDAgMjEuNGMwIDEuNCAwIDIuOC0uMSA0LjMgMTItNi4yIDI1LjctOS42IDQwLjEtOS42bDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDggNTYuNCAwYy0xNS4yIDE3LTI0LjQgMzkuNC0yNC40IDY0bC0zMiAwYy00Mi4zIDAtNzguMi0yNy40LTkxLTY1LjMtNS4xIC45LTEwLjMgMS4zLTE1LjYgMS4zLTE0LjEgMC0yNy45LTMuMy00MC41LTkuNnpNOTYgMTI4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptMTEyIDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6Il19LFVsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi1sZWZ0IixpY29uOls1MTIsNTEyLFsiY2hldnJvbi1jaXJjbGUtbGVmdCJdLCJmMTM3IiwiTTUxMiAyNTZhMjU2IDI1NiAwIDEgMCAtNTEyIDAgMjU2IDI1NiAwIDEgMCA1MTIgMHpNMjcxIDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDg3IDg3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTY3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjcxIDEzNXoiXX0sU3l0PVVsZSxXbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXF1ZXN0aW9uIixpY29uOls1MTIsNTEyLFs2MjEwOCwicXVlc3Rpb24tY2lyY2xlIl0sImYwNTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzM2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgNDcuMi0zNiA2Ny4yLTU2IDc0LjVsMCAzLjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC04LjFjMC0yMC41IDE0LjgtMzUuMiAzMC4xLTQwLjIgNi40LTIuMSAxMy4yLTUuNSAxOC4yLTEwLjMgNC4zLTQuMiA3LjctMTAgNy43LTE5LjYgMC0xNy43LTE0LjMtMzItMzItMzJ6TTIyNCAzNjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHoiXX0senl0PVdsZSxDeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2Fsa2llLXRhbGtpZSIsaWNvbjpbMzg0LDUxMixbXSwiZjhlZiIsIk04OC0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDcyIDQ4IDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwzMiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2MC45YzAgOS45LTIuMyAxOS43LTYuOCAyOC42bC0yMC4yIDQwLjRjLTMuMyA2LjctNS4xIDE0LTUuMSAyMS41bDAgODQuN2MwIDM1LjMtMjguNyA2NC02NCA2NEw5NiA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtODQuN2MwLTcuNS0xLjctMTQuOC01LjEtMjEuNUw2LjggMzAxLjVDMi4zIDI5Mi42IDAgMjgyLjggMCAyNzIuOUwwIDExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NGwxNiAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTMyIDE3NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTQ0IDB6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxHbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1ncm91cCIsaWNvbjpbNTc2LDUxMixbMTI4MTAxLCJ1c2VyLWZyaWVuZHMiXSwiZjUwMCIsIk02NCAxMjhhMTEyIDExMiAwIDEgMSAyMjQgMCAxMTIgMTEyIDAgMSAxIC0yMjQgMHpNMCA0NjRjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZzMTc2IDc4LjggMTc2IDE3NmwwIDZjMCAyMy4yLTE4LjggNDItNDIgNDJMNDIgNTEyYy0yMy4yIDAtNDItMTguOC00Mi00MmwwLTZ6TTQzMiA2NGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnptMCAyNDBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRsMCAyMi40YzAgMjMtMTguNiA0MS42LTQxLjYgNDEuNmwtMTQ0LjggMGM2LjYtMTIuNSAxMC40LTI2LjggMTAuNC00MmwwLTZjMC01MS41LTE3LjQtOTguOS00Ni41LTEzNi43IDIyLjYtMTQuNyA0OS42LTIzLjMgNzguNS0yMy4zeiJdfSxUeXQ9R2xlLFlsZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5IixpY29uOls1MTIsNTEyLFs2MzQ5OSwiaG9tZS1sZyJdLCJlM2FmIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yNDAgMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2IDEyOCAwIDAtOTZjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTMyIDB6Il19LF95dD1ZbGUsWmxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJpZ2h0LWZyb20tYnJhY2tldCIsaWNvbjpbNTEyLDUxMixbInNpZ24tb3V0LWFsdCJdLCJmMmY1IiwiTTUwNSAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMzYxIDk1Yy02LjktNi45LTE3LjItOC45LTI2LjItNS4yUzMyMCAxMDIuMyAzMjAgMTEybDAgODAtMTEyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTEyIDAgMCA4MGMwIDkuNyA1LjggMTguNSAxNC44IDIyLjJzMTkuMyAxLjcgMjYuMi01LjJMNTA1IDI3M3pNMTYwIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5Nmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAweiJdfSxMeXQ9WmxlLEF5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlIixpY29uOlszODQsNTEyLFsxMjgxOTYsMTI4NDU5LDYxNDYyXSwiZjE1YiIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI3Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2eiJdfSxEeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtc2xhc2giLGljb246WzU3Niw1MTIsW10sImUwNjkiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTgzLjQtMTgzLjQgNy4xLTcuNyAxMjcuMyAwYzMwLjkgMCA1Ni0yNS4xIDU2LTU2cy0yNS4xLTU2LTU2LTU2TDM5Mi43IDIwMCAyMzMuNSAyNi40QzIyNy41IDE5LjggMjE4LjkgMTYgMjA5LjkgMTZsLTQzLjcgMGMtMTAuOSAwLTE4LjYgMTAuNy0xNS4yIDIxLjFMMTc1LjEgMTA5LjIgNDEtMjQuOXpNMTMwLjIgMjAwbC0yNC42IDAtNTIuOC02NmMtMy0zLjgtNy42LTYtMTIuNS02bC0xOS44IDBjLTEwLjQgMC0xOCA5LjgtMTUuNSAxOS45TDMyIDI1NiA1IDM2NC4xQzIuNCAzNzQuMiAxMC4xIDM4NCAyMC41IDM4NGwxOS44IDBjNC45IDAgOS41LTIuMiAxMi41LTZsNTIuOC02NiA5OS43IDAtNTQuMyAxNjIuOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xbDQzLjcgMGM5IDAgMTcuNS0zLjggMjMuNi0xMC40TDMyMC43IDM5MC41IDEzMC4yIDIwMHoiXX0sRXl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXNob3dlcnMtaGVhdnkiLGljb246WzUxMiw1MTIsW10sImY3NDAiLCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yLTEuMy02LjctMS45LTEzLjctMS45LTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTIgNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwIDE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjggNDQuMiAwIDgwIDM1LjggODAgODAgMCA1LjUtLjYgMTAuOC0xLjYgMTYgLjUgMCAxLjEgMCAxLjYgMCA1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkw5NiAzMjB6bTYuOCA3OS42bC0zMiA5NkM2Ni42IDUwOC4yIDUzIDUxNSA0MC40IDUxMC44UzIxIDQ5MyAyNS4yIDQ4MC40bDMyLTk2QzYxLjQgMzcxLjggNzUgMzY1IDg3LjYgMzY5LjJTMTA3IDM4NyAxMDIuOCAzOTkuNnptMTIwIDBsLTMyIDk2Yy00LjIgMTIuNi0xNy44IDE5LjQtMzAuNCAxNS4yUzE0MSA0OTMgMTQ1LjIgNDgwLjRsMzItOTZjNC4yLTEyLjYgMTcuOC0xOS40IDMwLjQtMTUuMlMyMjcgMzg3IDIyMi44IDM5OS42em0xMTIgMGwtMzIgOTZjLTQuMiAxMi42LTE3LjggMTkuNC0zMC40IDE1LjJTMjUzIDQ5MyAyNTcuMiA0ODAuNGwzMi05NmM0LjItMTIuNiAxNy44LTE5LjQgMzAuNC0xNS4yUzMzOSAzODcgMzM0LjggMzk5LjZ6bTEyMCAwbC0zMiA5NmMtNC4yIDEyLjYtMTcuOCAxOS40LTMwLjQgMTUuMlMzNzMgNDkzIDM3Ny4yIDQ4MC40bDMyLTk2YzQuMi0xMi42IDE3LjgtMTkuNCAzMC40LTE1LjJTNDU5IDM4NyA0NTQuOCAzOTkuNnoiXX0sJHl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1mYWxsaW5nIixpY29uOls1MTIsNTEyLFtdLCJlNTQ2IiwiTTMyMCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUuNGMwIDQ1LTIzLjYgODYuNi02Mi4xIDEwOS44bC00LjYgMi44QzEzMS40IDE4NC43IDk2IDI0Ny4xIDk2IDMxNC42TDk2IDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjkuNGMwLTE2LjcgMy4zLTMzIDkuNC00OEwzNTkuMiA1MDAuMmMxMS4xIDEzLjcgMzEuMyAxNS44IDQ1IDQuN3MxNS44LTMxLjMgNC43LTQ1TDI5NS4yIDMyMCA0MDAgMzIwIDQzOC40IDM3MS4yYzEwLjYgMTQuMSAzMC43IDE3IDQ0LjggNi40czE3LTMwLjcgNi40LTQ0LjhsLTQzLjItNTcuNkM0MzcuMyAyNjMuMSA0MjMuMSAyNTYgNDA4IDI1NmwtODkgMC02Mi45LTc1LjVjNDAuMy0zNiA2My45LTg3LjkgNjMuOS0xNDMuMWwwLTUuNHpNMTA0IDE0NGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnoiXX0sWGxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InR1cm4tZG93biIsaWNvbjpbMzg0LDUxMixbMTA1NDksImxldmVsLWRvd24tYWx0Il0sImYzYmUiLCJNMTY5LjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMzIuOSAzMjAgMzIwIDMyMGwtNjQgMCAwLTE2MEMyNTYgNzEuNiAxODQuNCAwIDk2IDBMMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJMMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwLTY0IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDEyOCAxMjh6Il19LEl5dD1YbGUsUWxlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLXJpZ2h0LWFuZC1kb3duLWxlZnQtZnJvbS1jZW50ZXIiLGljb246WzUxMiw1MTIsWyJleHBhbmQtYWx0Il0sImY0MjQiLCJNMzQ0IDBMNDg4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODctMzktMzljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTMzM0LjMgMCAzNDQgMHpNMTY4IDUxMkwyNCA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0TDAgMzQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMlMzNC4xIDMyMC4yIDQxIDMyN2wzOSAzOSA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwzMiAzMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODcgODcgMzkgMzljNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMlMxNzcuNyA1MTIgMTY4IDUxMnoiXX0sUHl0PVFsZSxOeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci10YWciLGljb246WzY0MCw1MTIsW10sImY1MDciLCJNMjU2LjEgOGExMjAgMTIwIDAgMSAxIDAgMjQwIDEyMCAxMjAgMCAxIDEgMC0yNDB6TTIyNi40IDMwNGw1OS40IDBjNi43IDAgMTMuMiAuNCAxOS43IDEuMS0uOSA0LjktMS40IDkuOS0xLjQgMTVsMCA5Mi4xYzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45bDMxLjkgMzEuOS0yODYuMyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3pNMzUyLjEgNDEyLjJsMC05Mi4xYzAtMTcuNyAxNC4zLTMyIDMyLTMybDkyLjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xbDk2IDk2YzE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45bC03Ni4xIDc2LjFjLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwbC05Ni05NmMtOS05LTE0LjEtMjEuMi0xNC4xLTMzLjl6bTEwNC00NC4yYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LEZ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNwYXJrbGVzIixpY29uOls2NDAsNTEyLFtdLCJlMDVkIiwiTTMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC0xNzZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE3NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMTEyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzguMmMtMTkuMiA1LjQtMzQuNyAyMC40LTQwLjQgNDAuM2wtNi41IDIyLjctMjIuNyA2LjVjLTI1LjIgNy4yLTQyLjUgMzAuMi00Mi41IDU2LjQgMCAyMi4xIDEyLjQgNDIgMzEuNCA1MS45LTI3LjUgMTcuOC02MC4yIDI4LjEtOTUuNCAyOC4xbC0xOS4yIDBjLTU5LjYgMC0xMTYuOS0yMi45LTE2MC02NEw3Ni40IDM0MWMtMTYtMTUuMi0xNi42LTQwLjYtMS40LTU2LjZzNDAuNi0xNi42IDU2LjYtMS40bDYwLjUgNTcuNmMwLTEuNS0uMS0zLjEtLjEtNC42bDAtMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTIwOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTcuMyAzMjYuNmMtMS4xLTMuOS00LjctNi42LTguNy02LjZzLTcuNiAyLjctOC43IDYuNmwtNy4zIDI1LjQtMjUuNCA3LjNjLTMuOSAxLjEtNi42IDQuNy02LjYgOC43czIuNyA3LjYgNi42IDguN2wyNS40IDcuMyA3LjMgMjUuNGMxLjEgMy45IDQuNyA2LjYgOC43IDYuNnM3LjYtMi43IDguNy02LjZsNy4zLTI1LjQgMjUuNC03LjNjMy45LTEuMSA2LjYtNC43IDYuNi04LjdzLTIuNy03LjYtNi42LTguN2wtMjUuNC03LjMtNy4zLTI1LjR6TTEwNCAxMjBsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkwxMDQgMTY4IDkwLjIgMjE2LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1NiAxNjggNy43IDE1NC4yQzMuMSAxNTIuOSAwIDE0OC43IDAgMTQ0czMuMS04LjkgNy43LTEwLjJMNTYgMTIwIDY5LjggNzEuN0M3MS4xIDY3LjEgNzUuMyA2NCA4MCA2NHM4LjkgMy4xIDEwLjIgNy43TDEwNCAxMjB6TTU4NCA0MDhsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkw1ODQgNDU2IDU3MC4yIDUwNC4zYy0xLjMgNC42LTUuNSA3LjctMTAuMiA3LjdzLTguOS0zLjEtMTAuMi03LjdMNTM2IDQ1NiA0ODcuNyA0NDIuMmMtNC42LTEuMy03LjctNS41LTcuNy0xMC4yczMuMS04LjkgNy43LTEwLjJMNTM2IDQwOCA1NDkuOCAzNTkuN2MxLjMtNC42IDUuNS03LjcgMTAuMi03LjdzOC45IDMuMSAxMC4yIDcuN0w1ODQgNDA4eiJdfSxPeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXRvLWRvdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRiZSIsIk0yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtNjQgNjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC02NC02NGMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0LjlTMTc5LjEgNjQgMTkyIDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTY5LjQgMzkzLjRsNjQtNjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsNjQgNjRjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzMyLjkgNDQ4IDMyMCA0NDhsLTMyIDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTMyIDBjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45ek0zMiAyMjRsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVM2NCAzMzIuOSA2NCAzMjBsMC0zMi0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0yOTcuNCA1NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w2NC02NGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOVM0NDggMTc5LjEgNDQ4IDE5MmwwIDMyIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCAzMmMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtNjQtNjR6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxKbGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1zYWQtY3J5IixpY29uOls1MTIsNTEyLFsxMjg1NTcsInNhZC1jcnkiXSwiZjViMyIsIk0zNTIgNDkzLjRjLTI5LjYgMTItNjIuMSAxOC42LTk2IDE4LjZzLTY2LjQtNi42LTk2LTE4LjZMMTYwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE3MS43QzQ0LjQgNDIxLjYgMCAzNDQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgODgtNDQuNCAxNjUuNi0xMTIgMjExLjdMNDAwIDI5NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDE5Ny40ek0xNTIgMTk2bDE2IDBjMTEgMCAyMCA5IDIwIDIwczkgMjAgMjAgMjAgMjAtOSAyMC0yMGMwLTMzLjEtMjYuOS02MC02MC02MGwtMTYgMGMtMzMuMSAwLTYwIDI2LjktNjAgNjAgMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjAgOS0yMCAyMC0yMHptMTcyIDIwYzAtMTEgOS0yMCAyMC0yMGwxNiAwYzExIDAgMjAgOSAyMCAyMHM5IDIwIDIwIDIwIDIwLTkgMjAtMjBjMC0zMy4xLTI2LjktNjAtNjAtNjBsLTE2IDBjLTMzLjEgMC02MCAyNi45LTYwIDYwIDAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwek0yMDggMzM2bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGwwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4eiJdfSxSeXQ9SmxlLEJ5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb25nLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxNjkiLCJNMjg4LTE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTEwNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwNCAwIDAgNzIuMmMtMjIuOS0xNS4zLTUwLjQtMjQuMi04MC0yNC4yLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0Uzk2LjUgNDMyIDE3NiA0MzJjMzAgMCA1Ny44LTkuMSA4MC44LTI0LjggMy4zIDE0LjIgMTYgMjQuOCAzMS4yIDI0LjggMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMDQgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek05NiAyODhhODAgODAgMCAxIDEgMTYwIDAgODAgODAgMCAxIDEgLTE2MCAwek0yNCA0NjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzM2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMMjQgNDY0eiJdfSxIeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVvcGxlLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1MzQiLCJNMjg4IDBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTk2IDMxMmMwIDI1LTEyLjcgNDctMzIgNTkuOWwwIDQ0LjEtMTI4IDAgMC00NC4xQzIwNC43IDM1OSAxOTIgMzM3IDE5MiAzMTJsMC00MGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgNDB6bTE2IDEwNGwwLTI3LjNjMTkuOS0yMi41IDMyLTUyLjIgMzItODQuN2wwLTMyYzAtMjYuNy03LjMtNTEuNi0xOS45LTczLjEgMTEuMS00LjUgMjMuMi02LjkgMzUuOS02LjkgNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNGwwIDQwLjYtMTEyIDB6TTY0IDM3NS40QzQ0LjkgMzY0LjQgMzIgMzQzLjcgMzIgMzIwbDAtMzJjMC01MyA0My05NiA5Ni05NiAxMi43IDAgMjQuOCAyLjUgMzUuOSA2LjktMTIuNiAyMS40LTE5LjkgNDYuNC0xOS45IDczLjFsMCAzMmMwIDMyLjUgMTIuMSA2Mi4xIDMyIDg0LjdsMCAyNy4zLTExMiAwIDAtNDAuNnpNMTI4IDMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyem0zMjAgMGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMjQgNDY0bDUyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDI0IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sS2xlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1yc3MiLGljb246WzQ0OCw1MTIsWyJyc3Mtc3F1YXJlIl0sImYxNDMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTYgMTM2YzAtMTMuMyAxMC43LTI0IDI0LTI0IDEzNyAwIDI0OCAxMTEgMjQ4IDI0OCAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTExMC41LTg5LjUtMjAwLTIwMC0yMDAtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjQgODMuOSAwIDE1MiA2OC4xIDE1MiAxNTIgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC01Ny40LTQ2LjYtMTA0LTEwNC0xMDQtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTAgMTIwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LHF5dD1LbGUsanl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLW1pbnVzIixpY29uOls0NDgsNTEyLFtdLCJmMjcyIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMjQgMjY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sVnl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LWRpYWdyYW0iLGljb246WzUxMiw1MTIsW10sImU2OTUiLCJNODAgMzJDNTMuNSAzMiAzMiA1My41IDMyIDgwczIxLjUgNDggNDggNDhsMTUyIDAgMCA0MC00OCA0OC03MiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MmwwIDY0LTggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTggMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0bDcyIDAgNDggNDggMCA0MC04IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC04IDAgMC00MCA0OC00OCA3MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNjQtOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOCAwIDAtNjRjMC0zOS44LTMyLjItNzItNzItNzJsLTcyIDAtNDgtNDggMC00MCAxNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEw4MCAzMnoiXX0sZWNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtdGlyZWQiLGljb246WzUxMiw1MTIsWzEyODU1NSwidGlyZWQiXSwiZjVjOCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY0LjcgMzI4LjdjMjItMjIgNTMuOS00MC43IDkxLjMtNDAuN3M2OS4zIDE4LjcgOTEuMyA0MC43YzExLjEgMTEuMSAyMC4xIDIzLjQgMjYuNCAzNS40IDYuMiAxMS43IDEwLjMgMjQuNCAxMC4zIDM1LjkgMCA1LjItMi42IDEwLjItNi45IDEzLjJzLTkuOCAzLjctMTQuNyAxLjhsLTIwLjUtNy43Yy0yNi45LTEwLjEtNTUuNS0xNS4zLTg0LjMtMTUuM2wtMy4yIDBjLTI4LjggMC01Ny4zIDUuMi04NC4zIDE1LjNMMTQ5LjYgNDE1Yy00LjkgMS44LTEwLjQgMS4yLTE0LjctMS44UzEyOCA0MDUuMiAxMjggNDAwYzAtMTEuNiA0LjItMjQuMiAxMC4zLTM1LjkgNi4zLTEyIDE1LjMtMjQuMyAyNi40LTM1LjR6TTEyMi42IDE1OS4yYzQuNS02LjggMTMuMy05LjIgMjAuNi01LjVsNzkuNiA0MGM1LjQgMi43IDguOCA4LjIgOC44IDE0LjNzLTMuNCAxMS42LTguOCAxNC4zbC03OS42IDQwYy03LjMgMy42LTE2LjEgMS4zLTIwLjYtNS41cy0zLjEtMTUuOSAzLjEtMjEuMUwxNTkgMjA4IDEyNS44IDE4MC4zYy02LjItNS4yLTcuNi0xNC4zLTMuMS0yMS4xem0yNjMuNiAyMS4xTDM1MyAyMDggMzg2LjIgMjM1LjdjNi4yIDUuMiA3LjYgMTQuMyAzLjEgMjEuMXMtMTMuMyA5LjItMjAuNiA1LjVsLTc5LjYtNDBjLTUuNC0yLjctOC44LTguMi04LjgtMTQuM3MzLjQtMTEuNiA4LjgtMTQuM2w3OS42LTQwYzcuMy0zLjYgMTYuMS0xLjMgMjAuNiA1LjVzMy4xIDE1LjktMy4xIDIxLjF6Il19LFV5dD1lY2UsV3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImYwYTQiLCJNNDgwIDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMDggMCAwLTY0IDIwOCAwek0zMjAgMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDB6bTY0LTY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC00OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTI4OCAzODRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMHptLTg4LTk2bC42IDBjLTUuNCA5LjQtOC42IDIwLjMtOC42IDMyIDAgMTMuMiA0IDI1LjQgMTAuOCAzNS42LTI0LjkgOC43LTQyLjggMzIuNS00Mi44IDYwLjQgMCAxMS43IDMuMSAyMi42IDguNiAzMmwtOC42IDBDNzEuNiA0NDggMCAzNzYuNCAwIDI4OGwwLTYxLjdjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDExLjYtMTEuNkM4Mi41IDc3LjUgMTE1LjEgNjQgMTQ5IDY0bDI3IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4OGMwIDIyLjEtMTcuOSA0MC00MCA0MHMtNDAtMTcuOS00MC00MGwwLTU2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNTZjMCAzOS44IDMyLjIgNzIgNzIgNzJ6Il19LEd5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cCIsaWNvbjpbMzg0LDUxMixbODU5M10sImYwNjIiLCJNMjE0LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjMgMTYwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcwLjcgMTA1LjQgMTA1LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MHoiXX0sWXl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmVzLXN0YWNrZWQiLGljb246WzUxMiw1MTIsW10sImU0ZTYiLCJNMTkyIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHptMzIgMzUybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTkyIDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zMjAgMTkybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTE4Mi42LTMuOWMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw0NS4zIDQ1LjNjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTQ1LjMgNDUuM2MtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBMOTIuMSAyNzguNmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsNDUuMy00NS4zek0zMiAzODRsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSx0Y2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQtY29tYmF0YW50IixpY29uOls1NzYsNTEyLFsiY2hpbGQtcmlmbGUiXSwiZTRlMCIsIk0xNzYuNSAxMjhhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0xNiAzNTJsMC05NiAzMiAwIDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5Mi4yIDIwLjkgMzMuMmM5LjQgMTUgMjkuMiAxOS40IDQ0LjEgMTBzMTkuNC0yOS4yIDEwLTQ0LjFsLTM5LjktNjMuM0MyNjYuOCAxODQgMjIzLjMgMTYwIDE3Ni41IDE2MFM4Ni4yIDE4NCA2MS4zIDIyMy42TDIxLjQgMjg3Yy05LjQgMTUtNC45IDM0LjcgMTAgNDQuMXMzNC43IDQuOSA0NC4xLTEwbDIwLjktMzMuMiAwIDE5Mi4yYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTQ0OC41IDBsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN2wwLTExNi4zYzAtOC44LTcuMi0xNi0xNi0xNnoiXX0sWnl0PXRjZSxYeXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmVzdC1wYXRjaGVzIixpY29uOls0NDgsNTEyLFtdLCJlMDg2IiwiTTIwMCAyOTMuOUwyMDAgNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAyNzAuNWMwLTkuNSAyLjgtMTguNyA4LjEtMjYuNmw0Ny45LTcxLjhjNS4zLTcuOSA4LjEtMTcuMSA4LjEtMjYuNkw2NCA0OEM2NCAyMS41IDg1LjUgMCAxMTIgMGwzLjUgMGMuMyAwIC42IDAgMSAwIC42IDAgMS4yIDAgMS44IDAgMTguOCAwIDM0LjEgOS43IDQ0LjEgMTguOCA5LjMgOC40IDI4LjUgMjEuMiA2MS43IDIxLjJzNTIuNC0xMi44IDYxLjctMjEuMmMxMC05LjEgMjUuMy0xOC44IDQ0LjEtMTguOCAuNiAwIDEuMiAwIDEuOCAwIC4zIDAgLjYgMCAxIDBMMzM2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5Ny41YzAgOS41IDIuOCAxOC43IDguMSAyNi42bDQ3LjkgNzEuOGM1LjMgNy45IDguMSAxNy4xIDguMSAyNi42TDQ0OCA0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTEwNCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3MC4xYzAtMy45IC41LTcuOCAxLjQtMTEuNkwzMDMuNiA2NS40QzI4NS45IDc3LjIgMjU5LjggODggMjI0IDg4cy02MS45LTEwLjgtNzkuNi0yMi42bDU0LjIgMjE2LjhjMSAzLjggMS40IDcuNyAxLjQgMTEuNnpNOTYgNDU2YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpNNjMuNSAyNTUuNWMtNC43IDQuNy00LjcgMTIuMyAwIDE3TDc5IDI4OCA2My41IDMwMy41Yy00LjcgNC43LTQuNyAxMi4zIDAgMTdzMTIuMyA0LjcgMTcgMEw5NiAzMDUgMTExLjUgMzIwLjVjNC43IDQuNyAxMi4zIDQuNyAxNyAwczQuNy0xMi4zIDAtMTdMMTEzIDI4OCAxMjguNSAyNzIuNWM0LjctNC43IDQuNy0xMi4zIDAtMTdzLTEyLjMtNC43LTE3IDBMOTYgMjcxIDgwLjUgMjU1LjVjLTQuNy00LjctMTIuMy00LjctMTcgMHpNMzA0IDI4MGwwIDQwYzAgOC44IDcuMiAxNiAxNiAxNmw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04IDAgMC04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0eiJdfSxyY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFydGluaS1nbGFzcy1lbXB0eSIsaWNvbjpbNTEyLDUxMixbImdsYXNzLW1hcnRpbmkiXSwiZjAwMCIsIk0zMiAzMkMxOS4xIDMyIDcuNCAzOS44IDIuNCA1MS44Uy4yIDc3LjUgOS40IDg2LjZsMjE0LjYgMjE0LjYgMCAxNDYuNy02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtMTQ2LjcgMjE0LjYtMjE0LjZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzIgNDgwIDMyTDMyIDMyek0yNTYgMjQyLjdMMTA5LjMgOTYgNDAyLjcgOTYgMjU2IDI0Mi43eiJdfSxReXQ9cmNlLEp5dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduZXQiLGljb246WzQ0OCw1MTIsWzEyOTUyMl0sImYwNzYiLCJNMCAxNzZMMCAyODhDMCA0MTEuNyAxMDAuMyA1MTIgMjI0IDUxMlM0NDggNDExLjcgNDQ4IDI4OGwwLTExMi0xMjggMCAwIDExMmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExMi0xMjggMHptMC00OGwxMjggMCAwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRsMCA2NHptMzIwIDBsMTI4IDAgMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NHoiXX0sS3l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtYmFycmllciIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgMjY2LjMgMTQ5LjIgOTYgNjQgOTYgNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNS4yIDk2bC03NC4zIDAtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuM3pNMzYyLjggMjg4bDc0LjMgMCA1LjQtMTAuNyA5MC42LTE4MS4zLTc0LjMgMC01LjQgMTAuNy05MC42IDE4MS4zek0yMDIuOCA5NmwtNS40IDEwLjctOTAuNiAxODEuMyA3NC4zIDAgNS40LTEwLjcgOTAuNi0xODEuMy03NC4zIDB6bTI4OCAxOTJsODUuMiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My43LTg1LjIgMTcwLjN6Il19LGljZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzLWRyYWZ0aW5nIixpY29uOls1MTIsNTEyLFsiZHJhZnRpbmctY29tcGFzcyJdLCJmNTY4IiwiTTk5LjMgMjU2LjFsNjkuNC0xMTkuOWMtNS42LTEyLjItOC44LTI1LjgtOC44LTQwLjIgMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDE0LjMtMy4xIDI3LjktOC44IDQwLjJsNDQuNCA3Ni43Yy0yMy4xIDI2LTUzLjcgNDUuMS04OC40IDUzLjhMMjU2IDE5MS45IDE4Ny45IDMwOS41YzIxLjUgNi44IDQ0LjMgMTAuNSA2OC4xIDEwLjUgNzAuNyAwIDEzMy44LTMyLjcgMTc0LjktODQgMTEuMS0xMy44IDMxLjItMTYgNDUtNXMxNiAzMS4yIDUgNDVjLTUyLjcgNjUuOC0xMzMuOSAxMDgtMjI0LjggMTA4LTM1LjQgMC02OS40LTYuNC0xMDAuNy0xOC4xTDk4LjcgNDYzLjdDOTQgNDcxLjggODcgNDc4LjQgNzguNiA0ODIuNkwyMy4yIDUxMC4zYy01IDIuNS0xMC45IDIuMi0xNS42LS43UzAgNTAxLjUgMCA0OTZsMC01NS40YzAtOC40IDIuMi0xNi43IDYuNS0yNC4xbDYwLTEwMy43Yy0xMi44LTExLjItMjQuNi0yMy41LTM1LjMtMzYuOC0xMS4xLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1YzUuNyA3LjEgMTEuOCAxMy44IDE4LjIgMjAuMXpNMzgxLjEgNDA3LjljMzIuNS0xMyA2Mi40LTMxIDg4LjktNTIuOWwzNS42IDYxLjVjNC4yIDcuMyA2LjUgMTUuNiA2LjUgMjQuMWwwIDU1LjRjMCA1LjUtMi45IDEwLjctNy42IDEzLjZzLTEwLjYgMy4yLTE1LjYgLjdsLTU1LjQtMjcuN2MtOC40LTQuMi0xNS40LTEwLjgtMjAuMS0xOC45bC0zMi4zLTU1Ljh6TTI1NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxld3Q9aWNlLHR3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGVyc29uLWNvbmZpbmVkIixpY29uOls0NDgsNTEyLFtdLCJlNTc3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTk2IDExMmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem04MCAxMDRjMC0zMC45IDI1LjEtNTYgNTYtNTZzNTYgMjUuMSA1NiA1NmwwIDEwMi4xYzAgMzYuNC0yOS41IDY1LjktNjUuOSA2NS45LTE3LjUgMC0zNC4zLTYuOS00Ni42LTE5LjNsLTU0LjctNTQuNy0yOC4xIDU2LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjlsNDgtOTZjNC42LTkuMiAxMy4zLTE1LjYgMjMuNS0xNy4zczIwLjUgMS43IDI3LjggOWw0MS40IDQxLjQgMC01OC43eiJdfSxyd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhdGUtd2hlYXQiLGljb246WzUxMiw1MTIsW10sImU1NWEiLCJNMTc2IDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTZjMC04LjggNy4yLTE2IDE2LTE2ek01NiA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFM0Mi43IDY0IDU2IDY0ek0yNCAxMzZsMTEyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgMTg0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0yNzIgNDhjMC04LjggNy4yLTE2IDE2LTE2IDQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2LTQ0LjIgMC04MC0zNS44LTgwLTgwbDAtMTZ6TTQwMCAzMmM0NC4yIDAgODAgMzUuOCA4MCA4MGwwIDE2YzAgOC44LTcuMiAxNi0xNiAxNi00NC4yIDAtODAtMzUuOC04MC04MGwwLTE2YzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTYwbDAgMTZjMCA0NC4yLTM1LjggODAtODAgODAtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTZjMC00NC4yIDM1LjgtODAgODAtODAgOC44IDAgMTYgNy4yIDE2IDE2ek0zNTIgMTc2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwLTguOCAwLTE2LTcuMi0xNi0xNmwwLTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwem0tOTYgMTZsMCAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MC04LjggMC0xNi03LjItMTYtMTZsMC0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MCA4LjggMCAxNiA3LjIgMTYgMTZ6TTMuNSAzNDcuNkMxLjYgMzMyLjkgMTMgMzIwIDI3LjggMzIwbDQ1Ni40IDBjMTQuOCAwIDI2LjIgMTIuOSAyNC40IDI3LjYtNi4zIDUwLjItNDQuNCA4OS40LTkyLjYgOTguNGwwIDJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTJjLTQ4LjItOS04Ni4zLTQ4LjItOTIuNS05OC40eiJdfSxhY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2lnbi1oYW5naW5nIixpY29uOls1MTIsNTEyLFsic2lnbiJdLCJmNGQ5IiwiTTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzUyIDAgMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNTItMzIgMEMxNC4zIDEyOCAwIDExMy43IDAgOTZTMTQuMyA2NCAzMiA2NGwzMiAwIDAtMzJDNjQgMTQuMyA3OC4zIDAgOTYgMHpNMjA4IDE3NmwyNDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMjQwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxpd3Q9YWNlLG5jZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItYmF0dGVyeSIsaWNvbjpbNTEyLDUxMixbImJhdHRlcnktY2FyIl0sImY1ZGYiLCJNODAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDE2IDB6TTM5MiAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAzMi0zMiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMyIDAgMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzIgMzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzIgMCAwLTMyek02NCAyNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTEyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggMjE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHoiXX0sYXd0PW5jZSxtRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGlydCIsaWNvbjpbNjQwLDUxMixbMTI4MDg1LCJ0LXNoaXJ0IiwidHNoaXJ0Il0sImY1NTMiLCJNMzIwLjIgMTEyYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDUzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w2MTcuNiAxNjkuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtNTAuNyA1MC43Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40IDAgMjI0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0yMjQtNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEwyMi45IDIxNC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wxNDEuNSA1MC43YzEyLTEyIDI4LjMtMTguNyA0NS4zLTE4LjdsNTMuNSAwYzAgNDQuMiAzNS44IDgwIDgwIDgweiJdfSxud3Q9bUQsb3d0PW1ELHN3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXJhZ3JhcGgiLGljb246WzQ0OCw1MTIsWzE4Ml0sImYxZGQiLCJNMTYwIDBMNDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00MTYtNDggMCAwIDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MC00OCAwQzcxLjYgMzIwIDAgMjQ4LjQgMCAxNjBTNzEuNiAwIDE2MCAweiJdfSxvY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZW52ZWxvcGVzLWJ1bGsiLGljb246WzU3Niw1MTIsWyJtYWlsLWJ1bGsiXSwiZjY3NCIsIk0xMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OGwwIDE2MCA4MCAwIDAtMzJjMC01MyA0My05NiA5Ni05NmwyMDggMCAwLTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDExMiAwek0yNDAgMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDMyIDgwIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDExMiAxNjAgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE5MmMwLTI2LjUtMjEuNS00OC00OC00OGwtMjg4IDB6bTIwMCA2NGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTQ4IDI1NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMC40IDE1Ni42IDg2LjJjMS4xIC42IDIuMiAuOSAzLjQgLjlzMi40LS4zIDMuNC0uOUwzMjAgMzE0LjQgMzIwIDMwNGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAyNTZ6TTMyMCAzNjkuMkwxODYuNiA0NDIuNmMtOC4xIDQuNS0xNy4zIDYuOC0yNi42IDYuOHMtMTguNC0yLjQtMjYuNi02LjhMMCAzNjkuMiAwIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk0Ljh6Il19LGx3dD1vY2UsY3d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imd1aXRhciIsaWNvbjpbNTEyLDUxMixbXSwiZjdhNiIsIk00NjUgN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMzgzIDU1Yy0yLjQgMi40LTQuMyA1LjMtNS41IDguNWwtMTUuNCA0MS03Ny41IDc3LjZjLTQ1LjEtMjkuNC05OS4zLTMwLjItMTMxIDEuNi0xMSAxMS0xOCAyNC42LTIxLjQgMzkuNi0zLjcgMTYuNi0xOS4xIDMwLjctMzYuMSAzMS42LTI1LjYgMS4zLTQ5LjMgMTAuNy02Ny4zIDI4LjYtNDQuOCA0NC44LTM2LjQgMTI1LjggMTguNyAxODAuOVMxODMuNiA1MjggMjI4LjQgNDgzLjJjMTcuOS0xNy45IDI3LjQtNDEuNyAyOC42LTY3LjMgLjktMTcgMTUtMzIuMyAzMS42LTM2LjEgMTUtMy40IDI4LjYtMTAuNSAzOS42LTIxLjQgMzEuOC0zMS44IDMxLTg1LjkgMS42LTEzMWw3Ny42LTc3LjYgNDEtMTUuNGMzLjItMS4yIDYuMS0zLjEgOC41LTUuNWw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0NjUgN3pNMjA4IDI1NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LGR3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZSIsaWNvbjpbNTEyLDUxMixbMTI5NTIzXSwiZjBmMiIsIk0yMDAgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDI0IDIyNCAwIDAtNDI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2TDIwMCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NnpNNDE2IDk2bDAgMzg0IDMyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTMyIDB6TTk2IDQ4MGwwLTM4NC0zMiAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMiAweiJdfSxzY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXVwIixpY29uOls1MTIsNTEyLFs2MTQ2NywiYXJyb3ctYWx0LWNpcmNsZS11cCJdLCJmMzViIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem0xMS4zLTM4Ny4zbDEwNCAxMDRjNC42IDQuNiA1LjkgMTEuNSAzLjUgMTcuNFMzNjYuNSAyNTYgMzYwIDI1NmwtNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2LTU2IDBjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45cy0xLjEtMTIuOSAzLjUtMTcuNGwxMDQtMTA0YzYuMi02LjIgMTYuNC02LjIgMjIuNiAweiJdfSx1d3Q9c2NlLHB3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmIixpY29uOlszMjAsNTEyLFsxMDJdLCI0NiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTI4IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxod3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieG1hcmtzLWxpbmVzIixpY29uOls2NDAsNTEyLFtdLCJlNTlhIiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw1NzYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnptMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTc2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgNDE2ek03IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHpNMjY1IDE2N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTV6TTQ1NSAxNjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDU1IDU1LTU1IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNTUtNTUgNTUgNTVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01NS01NSA1NS01NWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01NSA1NS01NS01NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6Il19LGxjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1vY2VhbmlhIixpY29uOls1MTIsNTEyLFsiZ2xvYmUtb2NlYW5pYSJdLCJlNDdiIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMTUwLjZjMC0xMi41IDEwLjEtMjIuNiAyMi42LTIyLjZsNDEuNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOC43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xNi0xNmMtNC4yLTQuMi02LjYtMTAtNi42LTE2ek00MzIgMjU2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek00MTEuMyAzNzkuM2wtMzIgMzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzItMzJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42ek0yMjQgNDMyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZ6bS05Ni04MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xOC43YzAtOC41IDMuNC0xNi42IDkuNC0yMi42bDQ4LTQ4YzQuMi00LjIgMTAtNi42IDE2LTYuNmw2LjYgMGM4LjggMCAxNiA3LjIgMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNiA3LjItMTYgMTYtMTZsNi42IDBjNiAwIDExLjggMi40IDE2IDYuNmw0OCA0OGM2IDYgOS40IDE0LjEgOS40IDIyLjZsMCA1MC43YzAgMTcuNy0xNC4zIDMyLTMyIDMybC01MC43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC0xMy4zLTEzLjNjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEwxMjggMzUyeiJdfSxmd3Q9bGNlLG13dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmNGIzIiwiTTQxLTI1QzMxLjYtMzQuMyAxNi40LTM0LjMgNy0yNVMtMi4zLS40IDcgOUw1MzUgNTM3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtOTYuNi05Ni42YzQ0LjQtNDMuMiA3MS42LTEwMS44IDcxLjYtMTY2LjUgMC0xMzIuNS0xMTQuNi0yNDAtMjU2LTI0MC02MyAwLTEyMC44IDIxLjQtMTY1LjQgNTYuOEw0MS0yNXptMTkuNCAxNTVDNDIuMiAxNjMgMzIgMjAwLjMgMzIgMjM5LjkgMzIgMjk0LjIgNTEuMiAzNDQuMiA4My42IDM4NC40TDM0LjggNDc2LjdjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNVM1Ni4xIDUxNCA2NS41IDUxMGwxMTguNC01MC43YzMxLjggMTMuMyA2Ny4xIDIwLjcgMTA0LjEgMjAuNyAzNi40IDAgNzAuOS03LjEgMTAyLjMtMTkuOUw2MC4zIDEzMC4xeiJdfSxnd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxheSIsaWNvbjpbNDQ4LDUxMixbOTY1NF0sImYwNGIiLCJNOTEuMiAzNi45Yy0xMi40LTYuOC0yNy40LTYuNS0zOS42IC43UzMyIDU3LjkgMzIgNzJsMCAzNjhjMCAxNC4xIDcuNSAyNy4yIDE5LjYgMzQuNHMyNy4yIDcuNSAzOS42IC43bDMzNi0xODRjMTIuOC03IDIwLjgtMjAuNSAyMC44LTM1LjFzLTgtMjguMS0yMC44LTM1LjFsLTMzNi0xODR6Il19LGJ3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aWFsLWNpcmNsZS1jaGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZTU5NiIsIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwTDI4OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTYxLjRjLTY2LjEgMzAuMy0xMTIgOTcuMS0xMTIgMTc0LjYgMCAzOS43IDEyIDc2LjYgMzIuNyAxMDcuMi0xMC4zIDMuMS0yMS4zIDQuOC0zMi43IDQuOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw2NCA2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHptOTYgMzM2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSx2d3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZGdlLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRjOSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsOCAwIDAgNjQtNDAgMCAwIDExMmMzNy42IDkuNCA2NCA0My4yIDY0IDgybDAgOTRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtNTMgNDMtOTYgOTYtOTYgNi40IDAgMTIuNyAuNiAxOC43IDEuOCAzNC43LTQ5LjUgOTIuMi04MS44IDE1Ny4zLTgxLjggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40LTQwIDAgMC02NCA4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6TTQyNCA5NmwwIDY0LTgwIDAgMC02NCA4MCAwek0yOTYgOTZsMCA2NC04MCAwIDAtNjQgODAgMHpNODggOTZsODAgMCAwIDY0LTgwIDAgMC02NHpNNTc2IDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LHh3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjZWRpLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUwZGYiLCJNMjMyIDMyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjYuNUM4OC44IDczLjkgMTYgMTU2LjQgMTYgMjU2Uzg4LjggNDM4LjEgMTg0IDQ1My41bDAgMjYuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjQuNmM0Ni44LTMuNyA4OS4xLTIzLjYgMTIxLjMtNTMuOSAxMi45LTEyLjEgMTMuNC0zMi40IDEuMy00NS4ycy0zMi40LTEzLjQtNDUuMi0xLjNjLTIwLjcgMTkuNi00Ny42IDMyLjctNzcuMyAzNi4ybDAtMjcwLjFjMjkuOCAzLjUgNTYuNiAxNi42IDc3LjMgMzYuMiAxMi45IDEyLjEgMzMuMSAxMS41IDQ1LjItMS4zczExLjUtMzMuMS0xLjMtNDUuMkMzMjEuMSA4MC4yIDI3OC44IDYwLjMgMjMyIDU2LjZMMjMyIDMyem0tNDggOTEuOGwwIDI2NC40QzEyNC4zIDM3My44IDgwIDMyMC4xIDgwIDI1NnM0NC4zLTExNy44IDEwNC0xMzIuMnoiXX0seXd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InB1enpsZS1waWVjZSIsaWNvbjpbNTEyLDUxMixbMTI5NTEzXSwiZjEyZSIsIk0yMjQgMGMzNS4zIDAgNjQgMjEuNSA2NCA0OCAwIDEwLjQtNC40IDIwLTEyIDI3LjktNi42IDYuOS0xMiAxNS4zLTEyIDI0LjkgMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4ybDQ0LjggMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ0LjhjMCAxNSAxMi4yIDI3LjIgMjcuMiAyNy4yIDkuNSAwIDE4LTUuNCAyNC45LTEyIDcuOS03LjUgMTcuNS0xMiAyNy45LTEyIDI2LjUgMCA0OCAyOC43IDQ4IDY0cy0yMS41IDY0LTQ4IDY0Yy0xMC40IDAtMjAuMS00LjQtMjcuOS0xMi02LjktNi42LTE1LjMtMTItMjQuOS0xMi0xNSAwLTI3LjIgMTIuMi0yNy4yIDI3LjJMMzg0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtNTYuOCAwYy0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMiAwLTkuMiA1LjgtMTcuMyAxMy4yLTIyLjggMTEuNi04LjcgMTguOC0yMC43IDE4LjgtMzQgMC0yNi41LTI4LjctNDgtNjQtNDhzLTY0IDIxLjUtNjQgNDhjMCAxMy4zIDcuMiAyNS4zIDE4LjggMzQgNy40IDUuNSAxMy4yIDEzLjUgMTMuMiAyMi44IDAgMTIuOC0xMC40IDIzLjItMjMuMiAyMy4yTDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzNDMuMmMwLTEyLjggMTAuNC0yMy4yIDIzLjItMjMuMiA5LjIgMCAxNy4zIDUuOCAyMi44IDEzLjIgOC43IDExLjYgMjAuNyAxOC44IDM0IDE4LjggMjYuNSAwIDQ4LTI4LjcgNDgtNjRzLTIxLjUtNjQtNDgtNjRjLTEzLjMgMC0yNS4zIDcuMi0zNCAxOC44LTUuNSA3LjQtMTMuNSAxMy4yLTIyLjggMTMuMi0xMi44IDAtMjMuMi0xMC40LTIzLjItMjMuMkwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OGwxMDguOCAwYzE1IDAgMjcuMi0xMi4yIDI3LjItMjcuMiAwLTkuNS01LjQtMTgtMTItMjQuOS03LjUtNy45LTEyLTE3LjUtMTItMjcuOSAwLTI2LjUgMjguNy00OCA2NC00OHoiXX0sd3d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbG1ldC11biIsaWNvbjpbNTEyLDUxMixbXSwiZTUwMyIsIk00NzkuNSAyMjRDNDcxLjIgOTguOSAzNjcuMiAwIDI0MCAwIDEwNy41IDAgMCAxMDcuNSAwIDI0MGwwIDU2LjNDMCAzNDQuOCAzOS4yIDM4NCA4Ny43IDM4NGwxMjcuMyAwIDEyOC42IDEyMS40YzQuNSA0LjIgMTAuNCA2LjYgMTYuNSA2LjZsOTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODYuNSAwLTEuNS0xLjUgMC0xNzQuNSAxMTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtLjUgMHpNMzIwIDQxNy4ybC03OC03My43IDMyLjQtNTUuNSA0NS42IDAgMCAxMjkuMnpNMjg1LjMgMTAzLjFsMzQuNyA1MiAwLTQzLjJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRsLTM0LjctNTIgMCA0My4yYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtOTZjMC03LjEgNC42LTEzLjMgMTEuNC0xNS4zczE0IC42IDE3LjkgNi40ek0xNjAgMTEybDAgNjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGwwLTY0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6Il19LE13dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnbGFzcy13YXRlciIsaWNvbjpbMzg0LDUxMixbXSwiZTRmNCIsIk0zMiAwQzIzLjEgMCAxNC42IDMuNyA4LjYgMTAuMlMtLjYgMjUuNCAuMSAzNC4zTDI4LjkgNDM3LjdjMyA0MS45IDM3LjggNzQuMyA3OS44IDc0LjNsMTY2LjYgMGM0MiAwIDc2LjgtMzIuNCA3OS44LTc0LjNMMzgzLjkgMzQuM2MuNi04LjktMi40LTE3LjYtOC41LTI0LjFTMzYwLjkgMCAzNTIgMEwzMiAwek03MyAxNTYuNWwtNi42LTkyLjUgMjUxLjMgMC02LjYgOTIuNS0yNC4yIDEyLjFjLTE5LjQgOS43LTQyLjIgOS43LTYxLjYgMC0yMC45LTEwLjQtNDUuNS0xMC40LTY2LjQgMC0xOS40IDkuNy00Mi4yIDkuNy02MS42IDBMNzMgMTU2LjV6Il19LGt3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtYm9sdCIsaWNvbjpbNTc2LDUxMixbXSwiZTRmYyIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE3Ny40LTc3Yy01LjgtNC4yLTEzLjgtNC0xOS40IC41bC04MCA2NGMtNS4zIDQuMi03LjQgMTEuNC01LjEgMTcuOFMzNjkuMiA0MTYgMzc2IDQxNmwzMi45IDAtMTUuOSA0Mi40Yy0yLjUgNi43LS4yIDE0LjMgNS42IDE4LjZzMTMuOCA0IDE5LjQtLjVsODAtNjRjNS4zLTQuMiA3LjQtMTEuNCA1LjEtMTcuOFM0OTQuOCAzODQgNDg4IDM4NGwtMzIuOSAwIDE1LjktNDIuNGMyLjUtNi43IC4yLTE0LjMtNS42LTE4LjZ6Il19LFN3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwdW1wLXNvYXAiLGljb246WzMyMCw1MTIsW10sImUwNmIiLCJNOTYgMGwwIDgwIDEyOCAwIDAtMjQgNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMzMDkuMyA4IDI5NiA4bC03MiAwIDAtOGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMEMxMTAuMy0zMiA5Ni0xNy43IDk2IDB6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRMMCA0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMTI4ek0yMjQgMzQ0YzAgMzUuMy0yOC43IDU2LTY0IDU2cy02NC0yMC43LTY0LTU2YzAtMzIuNSAzNy04MC45IDUwLjktOTcuOSAzLjItMy45IDguMS02LjEgMTMuMS02LjFzOS45IDIuMiAxMy4xIDYuMUMxODcgMjYzLjEgMjI0IDMxMS41IDIyNCAzNDR6Il19LHp3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLXNjaXNzb3JzIixpY29uOls1MTIsNTEyLFtdLCJmMjU3IiwiTTQwIDIwOGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MGwxODAuMiAwYy03LjYgOC41LTEyLjIgMTkuNy0xMi4yIDMyIDAgMjUuMyAxOS41IDQ2IDQ0LjMgNDcuOS03LjcgOC41LTEyLjMgMTkuOC0xMi4zIDMyLjEgMCAyNi41IDIxLjUgNDggNDggNDhsOTYgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTExMy4xYzAtNDAuMi0xNi03OC44LTQ0LjQtMTA3LjMtMjIuOC0yMi44LTUzLjYtMzUuNi04NS44LTM1LjZMMzM2IDY0Yy0yMS4zIDAtMzkuMyAxMy45LTQ1LjYgMzMuMWw3NC41IDIzLjdjOC40IDIuNyAxMy4xIDExLjcgMTAuNCAyMC4xcy0xMS43IDEzLjEtMjAuMSAxMC40bC02Ny4xLTIxLjQgMCAuMS0yMDQtNjQuMUM2Mi45IDU5LjIgNDAuNSA3MC45IDMzLjkgOTJzNS4xIDQzLjUgMjYuMiA1MC4yTDI2OS41IDIwOCA0MCAyMDh6Il19LGNjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb2xseSIsaWNvbjpbNTc2LDUxMixbImRvbGx5LWJveCJdLCJmNDcyIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsNzIuOSAwIDkyLjEgMjc2LjJjLTIyLjUgMTcuNi0zNyA0NS0zNyA3NS44IDAgNTMgNDMgOTYgOTYgOTYgNTIuNCAwIDk1LjEtNDIgOTYtOTQuM2wyMDIuMS02Ny40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJMMzMxLjggMzU3Yy0xNy4yLTIyLjEtNDMuOS0zNi41LTc0LTM3TDE2NS43IDQzLjhDMTU2LjkgMTcuNiAxMzIuNSAwIDEwNC45IDBMMzIgMHpNMjA4IDQxNmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0yODAuNSA4OS4zYy0yNS4yIDguMi0zOSAzNS4zLTMwLjggNjAuNWwzOS42IDEyMS43YzguMiAyNS4yIDM1LjMgMzkgNjAuNSAzMC44bDEyMS43LTM5LjZjMjUuMi04LjIgMzktMzUuMyAzMC44LTYwLjVMNDYyLjggODAuNWMtOC4yLTI1LjItMzUuMy0zOS02MC41LTMwLjhMMjgwLjUgODkuM3oiXX0sQ3d0PWNjZSxuRT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXBlcmNsaXAiLGljb246WzUxMiw1MTIsWzEyODIwNl0sImYwYzYiLCJNMjI0LjYgMTIuOGM1Ni4yLTU2LjIgMTQ3LjQtNTYuMiAyMDMuNiAwczU2LjIgMTQ3LjQgMCAyMDMuNmwtMTY0IDE2NGMtMzQuNCAzNC40LTkwLjEgMzQuNC0xMjQuNSAwcy0zNC40LTkwLjEgMC0xMjQuNUwyOTIuNSAxMDMuM2MxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDE4NSAzMDEuM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDE2NC0xNjRjMzEuMi0zMS4yIDMxLjItODEuOSAwLTExMy4xcy04MS45LTMxLjItMTEzLjEgMGwtMTY0IDE2NGMtNTMuMSA1My4xLTUzLjEgMTM5LjIgMCAxOTIuM3MxMzkuMiA1My4xIDE5Mi4zIDBMNDI4LjMgMjg0LjNjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wzNDMuNCA0NTkuNmMtNzguMSA3OC4xLTIwNC43IDc4LjEtMjgyLjggMHMtNzguMS0yMDQuNyAwLTI4Mi44bDE2NC0xNjR6Il19LFR3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkZW1vY3JhdCIsaWNvbjpbNjQwLDUxMixbXSwiZjc0NyIsIk02NCAzMmMwLTguOSAzLjgtMjAuOSA2LjItMjcuMyAxLTIuOCAzLjgtNC43IDYuOC00LjcgMS45IDAgMy44IC43IDUuMiAyLjFMMTI4IDQ1LjcgMTczLjggMi4xYzEuNC0xLjMgMy4yLTIuMSA1LjItMi4xIDMgMCA1LjggMS44IDYuOCA0LjcgMi40IDYuNSA2LjIgMTguNCA2LjIgMjcuMyAwIDI2LjUtMjEuOSA0Mi0yOS41IDQ2LjZsNzYuMiA3Mi42YzYgNS43IDEzLjkgOC44IDIyLjEgOC44bDIxOS4yIDAgMzIgMGM0MC4zIDAgNzguMiAxOSAxMDIuNCA1MS4ybDE5LjIgMjUuNmMxMC42IDE0LjEgNy43IDM0LjItNi40IDQ0LjhzLTM0LjIgNy43LTQ0LjgtNi40bC0xOS4yLTI1LjZjLTUuMy03LTExLjgtMTIuOC0xOS4yLTE3bDAgODcuNC0zNTIgMC00MC40LTk0LjNjLTMuOS05LjItMTUuMy0xMi42LTIzLjYtN2wtNDIuMSAyOGMtOS4xIDYuMS0xOS43IDkuMy0zMC43IDkuM2wtMiAwQzIzLjkgMjU2IDAgMjMyLjEgMCAyMDIuNyAwIDE5MC42IDQuMSAxNzguOSAxMS43IDE2OS40TDg3LjYgNzQuNkM3OC4xIDY3LjQgNjQgNTMuMiA2NCAzMnpNNTQ0IDM1MmwwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xNjAgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOCAzNTIgMHpNMjU2IDI4MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0OC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0zNjggMjgwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sZGNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1hcnJvdy11cC1yaWdodCIsaWNvbjpbNDQ4LDUxMixbImV4dGVybmFsLWxpbmstc3F1YXJlIl0sImYxNGMiLCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMHpNMjcyIDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1NC4xIDAtMTAzIDEwM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDEwMy0xMDMgMCA1NC4xeiJdfSxfd3Q9ZGNlLEx3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZXJyeSIsaWNvbjpbNjQwLDUxMixbXSwiZTRlYSIsIk0yMjQgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJMMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiA0OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTI4LS4xIDBjLjEgLjcgLjEgMS4zIC4xIDIgMCAzMC4yLTcuNiA1OS44LTIyIDg2LjNsLTEyLjcgMjMuMy0uNiAxYy0yMi4zLTExLjMtNDYuNS0xNi44LTcwLjgtMTYuNy0zMi41IC4yLTY0LjkgMTAuNy05Mi40IDMxLjQtMjIuMSAxNi42LTI5LjEgMTYuNi01MS4yIDAtMjguMS0yMS4xLTYxLjMtMzEuNi05NC40LTMxLjQtMjMuNiAuMi00Ny4xIDUuNy02OC43IDE2LjdsLS42LTEtMTIuNy0yMy4zYy0xNC40LTI2LjUtMjItNTYuMi0yMi04Ni4zIDAtLjcgMC0xLjQgLjEtMmwtLjEgMCAwLTEyOGMwLTQ0LjIgMzUuOC04MCA4MC04MGw0OCAwIDAtMzJ6TTE2MCAyNTZsMzIwIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2bC0yODggMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyek00MDMuNCA0NzYuMUMzNzkuMSA0OTQuMyAzNTEuMSA1MTIgMzIwIDUxMnMtNTkuMS0xNy43LTgzLjQtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zYzM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNi45IDEyLjcgMzIuOSAyMS41IDQ3LjggMjQuNiAxMy43IDIuOCAyNy40IC45IDQyLjMtMTAuMyAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI2LjQgMTkuOS01NC4yIDI0LjQtODAuNyAxOS4xLTI1LjMtNS4xLTQ4LjEtMTguOS02Ny4yLTMzLjMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDB6Il19LEF3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3NxdWl0byIsaWNvbjpbNTc2LDUxMixbXSwiZTUyYiIsIk0xNzguNSA0OTUuMmMtNy41IDkuNi0yMSAxMi4xLTMxLjMgNS4zUzEzMy41IDQ4MCAxMzguOSA0NjlsMS4yLTIuMiAzNi4yLTU4IDAtNDEgLjMtNGMuNi0zLjkgMi4yLTcuNyA0LjYtMTAuOWwzOS4zLTUyLjItNjYuMiA1OS41Yy0xNyAxNS4zLTM5IDIzLjctNjEuOSAyMy44bC04LjEgMGMtNDYuNiAwLTg0LjQtMzcuOC04NC40LTg0LjQgMC00MyAzMi40LTc5LjIgNzUuMS04My45bDEzMC41LTE0LjUtNDQuOC0zOC4zLTIuNC0yLjRjLTUuMy02LTcuMy0xNC40LTUuMy0yMi4zbDEzLjMtNTMuNC0yNS45LTM4LjktMS4zLTIuMWMtNS44LTEwLjgtMi43LTI0LjYgNy40LTMxLjcgMTAuMS03LjEgMjMuNy01LjEgMzEuNCA0LjNsMS41IDIgMzIgNDggMS40IDIuMmMyLjggNS4zIDMuNSAxMS42IDIuMSAxNy42bC0xMi4zIDQ5LjIgNTMuMyA0NS43IDAtMjguOGMwLTExLjggNi41LTIyLjEgMTYtMjcuN2wwLTYwLjUgLjMtMy4zYzEuNS03LjMgOC0xMi43IDE1LjctMTIuN3MxNC4yIDUuNSAxNS43IDEyLjdsLjMgMy4yIDAgNjAuNWM5LjYgNS41IDE2IDE1LjggMTYgMjcuN2wwIDI4LjkgNTMuNC00NS44LTEyLjMtNDkuMmMtMS41LTUuOS0uNy0xMi4yIDIuMS0xNy42bDEuNC0yLjIgMzItNDggMS41LTJjNy43LTkuNCAyMS4zLTExLjUgMzEuNC00LjMgMTAuMSA3LjEgMTMuMSAyMC45IDcuNCAzMS43bC0xLjMgMi4xLTI1LjkgMzguOSAxMy4zIDUzLjRjMiA4LS4xIDE2LjMtNS4zIDIyLjNsLTIuNCAyLjQtNDQuNyAzOC4zIDEzMC41IDE0LjVjNDIuOCA0LjggNzUuMSA0MC45IDc1LjEgODMuOSAwIDQ2LjYtMzcuOCA4NC40LTg0LjQgODQuNGwtOC4xIDBjLTIyLjggMC00NC45LTguNS02MS45LTIzLjhsLTY2LjEtNTkuNSAzOS4yIDUyLjJjMi40IDMuMiA0IDcgNC42IDEwLjlsLjMgNCAwIDQxIDM2LjIgNTggMS4yIDIuMWM1LjQgMTEgMiAyNC43LTguMyAzMS41cy0yMy44IDQuNC0zMS4zLTUuM2wtMS40LTItNDAtNjQtMS42LTMuMWMtMS40LTMuMS0yLjEtNi42LTIuMS0xMC4xbDAtMzkuOC0zMi40LTQzLjEgMCA3NC43YzAgMTcuNy0xNC4zIDMyLTMyIDMyLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNzQuNi0zMi4zIDQzIDAgMzkuOGMwIDMuNS0uNyA2LjktMi4xIDEwLjFsLTEuNiAzLjEtNDAgNjQtMS40IDJ6Il19LER3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1jaXJjbGUtYXJyb3ctcmlnaHQiLGljb246WzU3Niw1MTIsW10sImU0ZDEiLCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE0NC43Yy0zNS43IDIuOS02OC41IDE1LjYtOTYgMzUuNGwwLTRjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsNCAwYy0xMy44IDE5LjItMjQuMSA0MS0zMC4xIDY0LjUtMS45LS40LTMuOS0uNS01LjktLjVsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgODAgNzQuOSAwYzYuMSAxNy4zIDE0LjYgMzMuNCAyNS4xIDQ4TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjR6TTE0NCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwem0xMTIgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTQ0IDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0MC43LTY3LjNjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDI4LjcgMjguNy04OS40IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODkuNCAwLTI4LjcgMjguN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDU2LTU2YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC01Ni01NmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDB6Il19LHVjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZWZ0LXJpZ2h0IixpY29uOls1MTIsNTEyLFs4NTk2LCJhcnJvd3MtYWx0LWgiXSwiZjMzNyIsIk01MDIuNiA0MDYuNmwtOTYgOTZjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM1MiA0OTIuOSAzNTIgNDgwbDAtNjQtMzIwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIwIDAgMC02NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zek05LjQgMTUwLjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE2MCAxOS4xIDE2MCAzMmwwIDY0IDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMjAgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC05Ni05NnoiXX0sRXd0PXVjZSwkd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlydXMiLGljb246WzUxMiw1MTIsW10sImUwNzQiLCJNMjk2IDQwYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgNDQuMS01My4zIDY2LjEtODQuNSAzNS0xNS42LTE1LjYtNDAuOS0xNS42LTU2LjYgMHMtMTUuNiA0MC45IDAgNTYuNmMzMS4yIDMxLjIgOS4xIDg0LjUtMzUgODQuNS0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwYzQ0LjEgMCA2Ni4xIDUzLjMgMzUgODQuNS0xNS42IDE1LjYtMTUuNiA0MC45IDAgNTYuNnM0MC45IDE1LjYgNTYuNiAwYzMxLjItMzEuMiA4NC41LTkuMSA4NC41IDM1IDAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBjMC00NC4xIDUzLjMtNjYuMSA4NC41LTM1IDE1LjYgMTUuNiA0MC45IDE1LjYgNTYuNiAwczE1LjYtNDAuOSAwLTU2LjZjLTMxLjItMzEuMi05LjEtODQuNSAzNS04NC41IDIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwYy00NC4xIDAtNjYuMS01My4zLTM1LTg0LjUgMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZzLTQwLjktMTUuNi01Ni42IDBDMzQ5LjMgMTA2LjEgMjk2IDg0LjEgMjk2IDQwek0xNjAgMjI0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2MCAzMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEl3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnZW0iLGljb246WzUxMiw1MTIsWzEyODE0Ml0sImYzYTUiLCJNMTE2LjcgMzMuOGM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44bDI0MCAwYzcuNiAwIDE0LjggMy42IDE5LjMgOS44bDExMiAxNTJjNi44IDkuMiA2LjEgMjEuOS0xLjUgMzAuNGwtMjMyIDI1NmMtNC41IDUtMTEgNy45LTE3LjggNy45cy0xMy4yLTIuOS0xNy44LTcuOWwtMjMyLTI1NmMtNy43LTguNS04LjMtMjEuMi0xLjUtMzAuNGwxMTItMTUyem0zOC41IDM5LjhjLTMuMyAyLjUtNC4yIDctMi4xIDEwLjVMMjEwLjUgMTc5LjggNjMuMyAxOTJjLTQuMSAuMy03LjMgMy44LTcuMyA4czMuMiA3LjYgNy4zIDhsMTkyIDE2Yy40IDAgLjkgMCAxLjMgMGwxOTItMTZjNC4xLS4zIDcuMy0zLjggNy4zLThzLTMuMi03LjYtNy4zLThsLTE0Ny4yLTEyLjMgNTcuNC05NS42YzIuMS0zLjUgMS4yLTguMS0yLjEtMTAuNXMtNy45LTItMTAuNyAxTDI1NiAxNzIuMiAxNjUuOSA3NC42Yy0yLjgtMy03LjQtMy40LTEwLjctMXoiXX0sUHd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvaWxldCIsaWNvbjpbNDQ4LDUxMixbMTI4NzAxXSwiZjdkOCIsIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4bDggMCAwIDE0OC45Yy0xLjkgMS40LTMuOCAyLjktNS42IDQuNC0xNS41IDEzLjItMjYuNCAzMS42LTI2LjQgNTQuNiAwIDQ2LjkgMTQuMyA4NC4xIDM3IDExMi41IDE0LjIgMTcuNyAzMS4xIDMxLjMgNDguNSA0MS44TDY1LjYgNDY5LjljLTMuMyA5LjgtMS42IDIwLjUgNC40IDI4LjhTODUuNyA1MTIgOTYgNTEybDI1NiAwYzEwLjMgMCAxOS45LTQuOSAyNi0xMy4zczcuNy0xOS4xIDQuNC0yOC44bC0xOS44LTU5LjVjMTcuNC0xMC41IDM0LjMtMjQuMSA0OC41LTQxLjggMjIuNy0yOC40IDM3LTY1LjUgMzctMTEyLjUgMC0yMy4xLTEwLjktNDEuNS0yNi40LTU0LjYtMS44LTEuNS0zLjctMy01LjYtNC40bDAtMTQ4LjkgOCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0UzQzNy4zIDAgNDI0IDBMMjQgMHpNOTYgODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnpNMjI0IDI4OGMtODguNCAwLTE2MC0xNC4zLTE2MC0zMnM3MS42LTMyIDE2MC0zMiAxNjAgMTQuMyAxNjAgMzItNzEuNiAzMi0xNjAgMzJ6Il19LE53dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaW5nbGUtcXVvdGUtbGVmdCIsaWNvbjpbMTkyLDUxMixbXSwiZTgxYiIsIk0xMjggOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDB6Il19LEZ3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1iaWxscyIsaWNvbjpbNTc2LDUxMixbXSwiZTFmMyIsIk0xNjAgMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMjI0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM1MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjI0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDE2MCAzMnptMTc2IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek0xNjAgMTUybDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNS00LjQgLjUtOC0zLjEtOC03LjV6bTAgMTEyYzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHpNNTA0IDE1OS41Yy0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OGMwIDQuNC0zLjYgOC4xLTggNy41ek01MTIgMjY0bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41IDQuNC0uNSA4IDMuMSA4IDcuNXpNNDggMTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTM4LjcgMCAxNTJMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzkyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMNjQgNDMyYy04LjggMC0xNi03LjItMTYtMTZsMC0yNjR6Il19LE93dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZXQtYnV0dG9uIixpY29uOls0NDgsNTEyLFtdLCJmMTBhIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTIyNCA0MDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxJZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyZWN0YW5nbGUteG1hcmsiLGljb246WzUxMiw1MTIsWzYyMTY0LCJyZWN0YW5nbGUtdGltZXMiLCJ0aW1lcy1yZWN0YW5nbGUiLCJ3aW5kb3ctY2xvc2UiXSwiZjQxMCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMTY3IDE2N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw1NSA1NSA1NS01NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTU1IDU1IDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTU1LTU1LTU1IDU1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU1LTU1LTU1LTU1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXoiXX0sUnd0PUlnLEJ3dD1JZyxId3Q9SWcscXd0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndyZW5jaCIsaWNvbjpbNTc2LDUxMixbMTI4Mjk1XSwiZjBhZCIsIk01MDkuNCA5OC42YzcuNi03LjYgMjAuMy01LjcgMjQuMSA0LjMgNi44IDE3LjcgMTAuNSAzNyAxMC41IDU3LjEgMCA4OC40LTcxLjYgMTYwLTE2MCAxNjAtMTcuNSAwLTM0LjQtMi44LTUwLjItOEwxNDYuOSA0OTguOWMtMjguMSAyOC4xLTczLjcgMjguMS0xMDEuOCAwcy0yOC4xLTczLjcgMC0xMDEuOEwyMzIgMjEwLjJjLTUuMi0xNS44LTgtMzIuNi04LTUwLjIgMC04OC40IDcxLjYtMTYwIDE2MC0xNjAgMjAuMSAwIDM5LjQgMy43IDU3LjEgMTAuNSAxMCAzLjggMTEuOCAxNi41IDQuMyAyNC4xbC04OC43IDg4LjdjLTMgMy00LjcgNy4xLTQuNyAxMS4zbDAgNDEuNGMwIDguOCA3LjIgMTYgMTYgMTZsNDEuNCAwYzQuMiAwIDguMy0xLjcgMTEuMy00LjdsODguNy04OC43eiJdfSxRZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cmFzaC1jYW4iLGljb246WzQ0OCw1MTIsWzYxNDYwLCJ0cmFzaC1hbHQiXSwiZjJlZCIsIk0xMzYuNyA1LjlDMTQxLjEtNy4yIDE1My4zLTE2IDE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMXpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTg4IDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTkyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMDQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE5MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgMTkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xOTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LGp3dD1RZyxwY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtY2VsbHMiLGljb246WzQ0OCw1MTIsWyJ0aCJdLCJmMDBhIiwiTTM4NCA5NmwwIDY0LTY0IDAgMC02NCA2NCAwem0wIDEyOGwwIDY0LTY0IDAgMC02NCA2NCAwem0wIDEyOGwwIDY0LTY0IDAgMC02NCA2NCAwek0yNTYgMjg4bC02NCAwIDAtNjQgNjQgMCAwIDY0em0tNjQgNjRsNjQgMCAwIDY0LTY0IDAgMC02NHptLTY0LTY0bC02NCAwIDAtNjQgNjQgMCAwIDY0ek02NCAzNTJsNjQgMCAwIDY0LTY0IDAgMC02NHptMC0xOTJsMC02NCA2NCAwIDAgNjQtNjQgMHptMTI4IDBsMC02NCA2NCAwIDAgNjQtNjQgMHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sVnd0PXBjZSxVd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmliYm9uIixpY29uOlszODQsNTEyLFsxMjc4OTVdLCJmNGQ2IiwiTTIzNS4xIDBjMzMuNCAwIDY0LjUgMTcuNCA4MS45IDQ1LjkgMS4yIDIgMTMgMjEuMyAzNS4zIDU3LjggMjEuMSAzNC41IDE4LjMgNzguNS03IDExMEwyNzguMyAyOTcuNyAzNjQuNSA0MDZjNS41IDYuOSA0LjQgMTYuOS0yLjUgMjIuNWwtODAgNjRjLTYuOSA1LjUtMTcgNC40LTIyLjUtMi41TDM4LjYgMjEzLjhDMTMuMyAxODIuMyAxMC41IDEzOC4zIDMxLjYgMTAzLjggNTQgNjcuMiA2NS43IDQ3LjkgNjcgNDUuOSA4NC40IDE3LjQgMTE1LjQgMCAxNDguOSAwbDg2LjMgMHpNMTkyIDE4OS4ybDQ4LjYtNjEuMi05Ny4zIDAgNDguNiA2MS4yek03NSAzMzYuMmw4Ni4yIDEwNy44LTM2LjggNDZjLTUuNSA2LjktMTUuNiA4LTIyLjUgMi41bC04MC02NGMtNi45LTUuNS04LTE1LjYtMi41LTIyLjVMNzUgMzM2LjJ6Il19LFd3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyay1mbGFnIixpY29uOls1MTIsNTEyLFtdLCJlNTFjIiwiTTM1Mi0zMkwyNDAtMzJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE0NC0xNzYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNiAwIDAgMjI0LTUxLjIgMzguNEM0LjcgNDYwLjQgMCA0NjkuOSAwIDQ4MCAwIDQ5Ny43IDE0LjMgNTEyIDMyIDUxMmw0NDggMGMxNy43IDAgMzItMTQuMyAzMi0zMiAwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42bC01MS4yLTM4LjQgMC0yMjQgMTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTkyIDAgMC02NCA4MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTY0YzAtOC44LTcuMi0xNi0xNi0xNnptNDggMjI0bDAgMjI0LTY0IDAgMC0yMjQgNjQgMHptLTExMiAwbDAgMjI0LTY0IDAgMC0yMjQgNjQgMHptLTExMiAwbDAgMjI0LTY0IDAgMC0yMjQgNjQgMHoiXX0saGNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVwLWRvd24tbGVmdC1yaWdodCIsaWNvbjpbNTEyLDUxMixbImFycm93cy1hbHQiXSwiZjBiMiIsIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMTc5LjEgMTI4IDE5MiAxMjhsMzIgMCAwIDk2LTk2IDAgMC0zMmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOWwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45UzEyOCAzMzIuOSAxMjggMzIwbDAtMzIgOTYgMCAwIDk2LTMyIDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzMzMi45IDM4NCAzMjAgMzg0bC0zMiAwIDAtOTYgOTYgMCAwIDMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMzODQgMTc5LjEgMzg0IDE5MmwwIDMyLTk2IDAgMC05NiAzMiAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0eiJdfSxHd3Q9aGNlLFl3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXItc2lkZSIsaWNvbjpbNjQwLDUxMixbMTI4NjYzXSwiZjVlNCIsIk0xNDcgMTA2LjdsLTI5LjggODUuMyAxMjIuOSAwIDAtOTYtNzcuOSAwYy02LjggMC0xMi45IDQuMy0xNS4xIDEwLjd6TTQ4LjYgMTkzLjlMODYuNSA4NS42Qzk3LjggNTMuNSAxMjguMSAzMiAxNjIuMSAzMkwzNjAgMzJjMjUuMiAwIDQ4LjkgMTEuOSA2NCAzMmw5Ni4yIDEyOC4zQzU4Ny4xIDE5Ni41IDY0MCAyNTIuMSA2NDAgMzIwbDAgMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTE2LjQgMGMtNCA0NC45LTQxLjcgODAtODcuNiA4MHMtODMuNi0zNS4xLTg3LjYtODBsLTE0NC43IDBjLTQgNDQuOS00MS43IDgwLTg3LjYgODBzLTgzLjYtMzUuMS04Ny42LTgwbC0uNCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTgwYzAtMzAuMSAyMC43LTU1LjMgNDguNi02Mi4xek00NDAgMTkybC02Ny4yLTg5LjZjLTMtNC03LjgtNi40LTEyLjgtNi40bC03MiAwIDAgOTYgMTUyIDB6TTE1MiA0MzJhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwem0zNjAtNDBhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHoiXX0sZmNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWFycm93LXVwIixpY29uOls0NDgsNTEyLFsidHJhc2gtcmVzdG9yZSJdLCJmODI5IiwiTTE2Ny4xLTE2bDExMy45IDBjMTMuOCAwIDI2IDguOCAzMC40IDIxLjlMMzIwIDMyIDQxNiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA5NkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJsOTYgMCA4LjctMjYuMUMxNDEuMS03LjIgMTUzLjMtMTYgMTY3LjEtMTZ6TTMyIDE0NGwzODQgMC0yMS4xIDMyMy4xQzM5My4zIDQ5Mi40IDM3Mi4zIDUxMiAzNDcgNTEyTDEwMSA1MTJjLTI1LjMgMC00Ni4zLTE5LjYtNDcuOS00NC45TDMyIDE0NHptMjA5IDc5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtNzIgNzJjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMS0zMSAwIDEwMi4xYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xMDIuMSAzMSAzMWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTcyLTcyeiJdfSxad3Q9ZmNlLFh3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaWZlLXJpbmciLGljb246WzUxMiw1MTIsW10sImYxY2QiLCJNMzY3LjIgNDEyLjVDMzM1LjkgNDM0LjkgMjk3LjUgNDQ4IDI1NiA0NDhzLTc5LjktMTMuMS0xMTEuMi0zNS41bDU4LTU4YzE1LjggOC42IDM0IDEzLjUgNTMuMyAxMy41czM3LjQtNC45IDUzLjMtMTMuNWw1OCA1OHptOTAuNyAuOGMzMy44LTQzLjQgNTQtOTggNTQtMTU3LjNTNDkxLjggMTQyLjEgNDU4IDk4LjdjOS0xMi41IDcuOS0zMC4xLTMuNC00MS4zUzQyNS44IDQ1IDQxMy4zIDU0QzM2OS45IDIwLjIgMzE1LjMgMCAyNTYgMFMxNDIuMSAyMC4yIDk4LjcgNTRjLTEyLjUtOS0zMC4xLTcuOS00MS4zIDMuNFM0NSA4Ni4yIDU0IDk4LjdDMjAuMiAxNDIuMSAwIDE5Ni43IDAgMjU2UzIwLjIgMzY5LjkgNTQgNDEzLjNjLTkgMTIuNS03LjkgMzAuMSAzLjQgNDEuM1M4Ni4yIDQ2NyA5OC43IDQ1OGM0My40IDMzLjggOTggNTQgMTU3LjMgNTRzMTEzLjktMjAuMiAxNTcuMy01NGMxMi41IDkgMzAuMSA3LjkgNDEuMy0zLjRzMTIuNC0yOC44IDMuNC00MS4zem0tNDUuNS00Ni4xbC01OC01OGM4LjYtMTUuOCAxMy41LTM0IDEzLjUtNTMuM3MtNC45LTM3LjQtMTMuNS01My4zbDU4LTU4QzQzNC45IDE3Ni4xIDQ0OCAyMTQuNSA0NDggMjU2cy0xMy4xIDc5LjktMzUuNSAxMTEuMnpNMzY3LjIgOTkuNWwtNTggNThjLTE1LjgtOC42LTM0LTEzLjUtNTMuMy0xMy41cy0zNy40IDQuOS01My4zIDEzLjVsLTU4LTU4QzE3Ni4xIDc3LjEgMjE0LjUgNjQgMjU2IDY0czc5LjkgMTMuMSAxMTEuMiAzNS41ek0xNTcuNSAzMDkuM2wtNTggNThDNzcuMSAzMzUuOSA2NCAyOTcuNSA2NCAyNTZzMTMuMS03OS45IDM1LjUtMTExLjJsNTggNThjLTguNiAxNS44LTEzLjUgMzQtMTMuNSA1My4zczQuOSAzNy40IDEzLjUgNTMuM3pNMjA4IDI1NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAweiJdfSxRd3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29weXJpZ2h0IixpY29uOls1MTIsNTEyLFsxNjldLCJmMWY5IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDUuMSAzMDYuOWMyOC4xIDI4LjEgNzMuNyAyOC4xIDEwMS44IDAgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy00Ni45IDQ2LjktMTIyLjggNDYuOS0xNjkuNyAwcy00Ni45LTEyMi44IDAtMTY5LjcgMTIyLjgtNDYuOSAxNjkuNyAwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMHMtMjguMSA3My43IDAgMTAxLjh6Il19LEp3dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLXByZXNjcmlwdGlvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjU3MiIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNODggMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDE0NGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgMjIuNSAwIDU4LjQgNTUtMzMuNCAzMS42Yy05LjYgOS4xLTEwLjEgMjQuMy0uOSAzMy45czI0LjMgMTAuMSAzMy45IC45bDM1LjQtMzMuNSAzNS42IDMzLjVjOS43IDkuMSAyNC44IDguNiAzMy45LTFzOC42LTI0LjgtMS0zMy45bC0zMy42LTMxLjYgMzMuNi0zMS44YzkuNi05LjEgMTAuMS0yNC4zIC45LTMzLjlzLTI0LjMtMTAuMS0zMy45LS45bC0zNS43IDMzLjctNDAuOS0zOC41YzEyLjktMTEuNyAyMS4xLTI4LjYgMjEuMS00Ny41IDAtMzUuMy0yOC43LTY0LTY0LTY0bC01NiAwem0zMiA4MGwtOCAwIDAtMzIgMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMjQgMHoiXX0sS3d0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImVyYXNlciIsaWNvbjpbNTc2LDUxMixbXSwiZjEyZCIsIk0xNzguNSA0MTZsMTIzIDAgNjUuMy02NS4zLTE3My41LTE3My41LTEyNi43IDEyNi43IDExMiAxMTJ6TTIyNCA0ODBsLTQ1LjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMTcgMzQ1QzYuMSAzMzQuMSAwIDMxOS40IDAgMzA0czYuMS0zMC4xIDE3LTQxTDI2MyAxN0MyNzMuOSA2LjEgMjg4LjYgMCAzMDQgMHMzMC4xIDYuMSA0MSAxN0w1MjcgMTk5YzEwLjkgMTAuOSAxNyAyNS42IDE3IDQxcy02LjEgMzAuMS0xNyA0MWwtMTM1IDEzNSAxMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDB6Il19LG1jZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VyZ2xhc3Mtc3RhcnQiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMSJdLCJmMjUxIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek0yODggNDM3bDAgMTEtMTkyIDAgMC0xMWMwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOWw2Ny45LTY3LjkgNjcuOSA2Ny45YzE4IDE4IDI4LjEgNDIuNCAyOC4xIDY3Ljl6Il19LGVNdD1tY2UsZ2NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1sZWZ0IixpY29uOls1MTIsNTEyLFs2MTg0MCwiYXJyb3ctYWx0LWNpcmNsZS1sZWZ0Il0sImYzNTkiLCJNNTEyIDI1NmEyNTYgMjU2IDAgMSAwIC01MTIgMCAyNTYgMjU2IDAgMSAwIDUxMiAwek0xMjQuNyAyNDQuN2wxMDQtMTA0YzQuNi00LjYgMTEuNS01LjkgMTcuNC0zLjVzOS45IDguMyA5LjkgMTQuOGwwIDU2IDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDU2YzAgNi41LTMuOSAxMi4zLTkuOSAxNC44cy0xMi45IDEuMS0xNy40LTMuNWwtMTA0LTEwNGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZ6Il19LHRNdD1nY2Usck10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNydXplaXJvLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUxNTIiLCJNMjQwIDk2Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MCAwIDcxLjYgNDcuMSAxMzIuMyAxMTIgMTUyLjdMMTkyIDI1NmMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMi44IDAgMjMuMyAxMC4xIDI0IDIyLjcgMTUuNS05LjUgMzMuNS0xNC43IDUyLjMtMTQuN2wxMS44IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTExLjggMGMtMTguOCAwLTM2LjEgMTAtNDUuNCAyNi4zLTQuNSA3LjktNi45IDE2LjgtNi45IDI1LjlsMCA3NS44YzQyLjUgMCA4MS4xLTE2LjYgMTA5LjgtNDMuNiAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMkMzNTMuNyA0NTYuOCAyOTkuNSA0ODAgMjQwIDQ4MCAxMTYuMyA0ODAgMTYgMzc5LjcgMTYgMjU2UzExNi4zIDMyIDI0MCAzMmM1OS41IDAgMTEzLjcgMjMuMiAxNTMuNyA2MS4xIDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM0MzMjEuMSAxMTIuNiAyODIuNSA5NiAyNDAgOTZ6Il19LGlNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbW9raW5nIixpY29uOls1NzYsNTEyLFsxMjg2ODRdLCJmNDhkIiwiTTM2MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTljMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVsMjEgMjFDNDY5IDE5MSA0ODAgMjE3LjQgNDgwIDI0NWwwIDE5YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTljMC0xNC45LTUuOS0yOS4xLTE2LjQtMzkuNmwtMjEtMjFDMzU3LjEgMTQ2LjkgMzM2IDk2IDMzNiA0M2wwLTE5YzAtMTMuMyAxMC43LTI0IDI0LTI0ek01NTIgMjg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTE5YzAtNDAuMy0xNi03OS00NC41LTEwNy41bC0yMS0yMUM0NDMgOTcgNDMyIDcwLjYgNDMyIDQzbDAtMTljMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDE5YzAgMTQuOSA1LjkgMjkuMSAxNi40IDM5LjZsMjEgMjFDNTU0LjkgMTQxLjEgNTc2IDE5MiA1NzYgMjQ1bDAgMTljMCAxMy4zLTEwLjcgMjQtMjQgMjR6TTMyMCA0NDhsOTYgMCAwLTMyLTk2IDAgMCAzMnpNMCA0MTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMzJ6bTU3Ni00MGwwIDExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTExMmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxiY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBvbGwtdmVydGljYWwiLGljb246WzQ0OCw1MTIsWyJwb2xsIl0sImY2ODEiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptNTYgMTkyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTEyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0xODQgODhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDh6TTIyNCAxMjhjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyMDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yMDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6Il19LGFNdD1iY2Usbk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUtbWludXMiLGljb246WzY0MCw1MTIsW10sImU1NDAiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS02NCAwYzAgOC44LTcuMiAxNi0xNiAxNmwtMTI4IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTI4IDBjOC44IDAgMTYgNy4yIDE2IDE2eiJdfSxvTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmlvaGF6YXJkIixpY29uOls1NzYsNTEyLFs5NzYzXSwiZjc4MCIsIk0yNjAgMTIuNmMwLTguMy03LjYtMTQuNS0xNS41LTEyLjEtNjAuOSAxOC44LTEwNS4xIDc1LjgtMTA1LjEgMTQzLjEgMCAyNS4xIDYuMSA0OC43IDE3IDY5LjUtMjEgMS44LTQyIDguMi02MS41IDE5LjUtNTcuOSAzMy42LTg0LjggMTAwLjItNzAuOSAxNjIuNSAxLjkgOC40IDExLjQgMTIgMTguOSA3LjYgNS0yLjkgNy42LTguNiA3LjEtMTQuNC0uMy0zLjMtLjQtNi42LS40LTEwLjEgMC0xMjMuNSAxODQuNC0xMjMuNSAxODQuNCAwIDAgODguNC05NC41IDExMy42LTE0OC4yIDc1LjQtNC41LTMuMi0xMC41LTMuOS0xNS4zLTEuMS03IDQuMS04LjYgMTMuNi0yLjcgMTkuMSA0Ni42IDQzLjggMTE4IDUzLjkgMTc2LjEgMjAuMiAxNy45LTEwLjQgMzIuOC0yMy45IDQ0LjUtMzkuNCAxMS43IDE1LjYgMjYuNiAyOS4xIDQ0LjUgMzkuNCA1OC4xIDMzLjcgMTI5LjUgMjMuNiAxNzYuMS0yMC4yIDUuOS01LjUgNC4zLTE1LjEtMi43LTE5LjEtNC44LTIuOC0xMC44LTIuMS0xNS4zIDEuMS01My43IDM4LjItMTQ4LjIgMTMtMTQ4LjItNzUuNCAwLTEyMy41IDE4NC40LTEyMy41IDE4NC40IDAgMCAzLjQtLjEgNi44LS40IDEwLjEtLjUgNS44IDIuMSAxMS41IDcuMSAxNC40IDcuNCA0LjMgMTcgLjggMTguOS03LjYgMTMuOS02Mi4yLTEzLTEyOC45LTcwLjktMTYyLjUtMTkuNS0xMS4zLTQwLjQtMTcuNy02MS41LTE5LjUgMTAuOS0yMC44IDE3LTQ0LjQgMTctNjkuNSAwLTY3LjMtNDQuMi0xMjQuMy0xMDUuMS0xNDMuMS03LjktMi40LTE1LjUgMy44LTE1LjUgMTIuMSAwIDUuOSA0IDExIDkuNSAxMy4yIDgzLjQgMzMuNiA3MC44IDE3OC40LTM3LjggMTc4LjRTMTY3LjEgNTkuNCAyNTAuNSAyNS44YzUuNS0yLjIgOS41LTcuMyA5LjUtMTMuMnpNMjQ4LjQgMjg4YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTQzNSAzMTcuN2MtMTYuMiAwLTMxLjQgNS41LTQyLjEgMTUtMTAuMSA5LjEtMTguMSAyMy40LTE4LjEgNDUuNiAwIDIxLjEgNy4yIDM1IDE2LjUgNDQuMSAzMi4yLTI0LjYgNTUuNS02MC41IDYzLjktMTAxLjgtNi4zLTEuOS0xMy4yLTMtMjAuMi0zek0yMDIgMzc4LjNjMC0yMi4zLTgtMzYuNi0xOC4xLTQ1LjYtMTAuNy05LjYtMjUuOS0xNS00Mi4xLTE1LTcgMC0xMy45IDEtMjAuMiAzIDguNCA0MS4zIDMxLjYgNzcuMiA2My45IDEwMS44IDkuNC05LjEgMTYuNS0yMy4xIDE2LjUtNDQuMnptNDEuMi0yMjQuM2M5IDEwLjIgMjMuMiAxOC4yIDQ1LjIgMTguMnMzNi4yLTggNDUuMi0xOC4yYzYuNy03LjYgMTEuNS0xNy41IDEzLjYtMjguNC0xOC4zLTYuOC0zOC4yLTEwLjUtNTguOC0xMC41cy00MC41IDMuNy01OC44IDEwLjVjMi4yIDEwLjkgNi45IDIwLjggMTMuNiAyOC41eiJdfSx2Y2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVsbC1jb25jaWVyZ2UiLGljb246WzUxMiw1MTIsWzEyODcxOCwiY29uY2llcmdlLWJlbGwiXSwiZjU2MiIsIk0yMTYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTYgMCAwIDMzLjNDMTI0LjggMTU2LjcgNDAuMiAyNDMuNyAzMi42IDM1Mmw0NDYuOSAwQzQ3MS44IDI0My43IDM4Ny4yIDE1Ni43IDI4MCAxNDUuM2wwLTMzLjMgMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMHpNMjQgNDAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQ2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDI0IDQwMHoiXX0sc010PXZjZSxsTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVsZXItaG9yaXpvbnRhbCIsaWNvbjpbNTc2LDUxMixbXSwiZjU0NyIsIk00OCAzODRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMTc2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDI0IDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNCA0OCAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDQ4IDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNCA0OCAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDQ4IDAgMCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEwNCAyNCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMTYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDM4NHoiXX0sY010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvcnNlIixpY29uOls1NzYsNTEyLFsxMjgwMTRdLCJmNmYwIiwiTTQ0OCAyMzguMWwwLTc4LjEgMTYgMCA5LjggMTkuNmMxMi41IDI1LjEgNDIuMiAzNi40IDY4LjMgMjYgMjAuNS04LjIgMzMuOS0yOCAzMy45LTUwLjFMNTc2IDgwYzAtMTkuMS04LjQtMzYuMy0yMS43LTQ4bDUuNyAwYzguOCAwIDE2LTcuMiAxNi0xNlM1NjguOCAwIDU2MCAwTDQ0OCAwQzM3Ny4zIDAgMzIwIDU3LjMgMzIwIDEyOGwtMTcxLjIgMEMxMTguMSAxMjggOTEuMiAxNDQuMyA3Ni4zIDE2OC44IDMzLjIgMTc0LjUgMCAyMTEuNCAwIDI1NmwwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC01NmMwLTEzLjQgNi42LTI1LjIgMTYuNy0zMi41IDEuNiAxMyA2LjMgMjUuNCAxMy42IDM2LjRsMjguMiA0Mi40YzguMyAxMi40IDYuNCAyOC43LTEuMiA0MS42LTE2LjUgMjgtMjAuNiA2Mi4yLTEwIDkzLjlsMTcuNSA1Mi40YzQuNCAxMy4xIDE2LjYgMjEuOSAzMC40IDIxLjlsMzMuNyAwYzIxLjggMCAzNy4zLTIxLjQgMzAuNC00Mi4xbC0yMC44LTYyLjVjLTIuMS02LjQtLjUtMTMuNCA0LjMtMTguMmwxMi43LTEyLjdjMTMuMi0xMy4yIDIwLjYtMzEuMSAyMC42LTQ5LjcgMC0yLjMtLjEtNC42LS4zLTYuOWw4NCAyNGM0LjEgMS4yIDguMiAyLjEgMTIuMyAyLjhMMzIwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTY0LjNjMTkuMi0xOS4yIDMxLjUtNDUuNyAzMi03NS43bDAgMCAwLTEuOXpNNDk2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnoiXX0sZE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyIixpY29uOls0NDgsNTEyLFsxMjgxOTcsMTI4MTk4XSwiZjEzMyIsIk0xMjggMEMxMTAuMyAwIDk2IDE0LjMgOTYgMzJsMCAzMi0zMiAwQzI4LjcgNjQgMCA5Mi43IDAgMTI4bDAgNDggNDQ4IDAgMC00OGMwLTM1LjMtMjguNy02NC02NC02NGwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMzItMTI4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMCAyMjRMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTItNDQ4IDB6Il19LHVNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nLWNoaWxkIixpY29uOls2NDAsNTEyLFtdLCJlNGZhIiwiTTMyMC0zMmE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6TTQwIDY0YzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMTYwLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsNTEuMSA1MS4xYzguMyA4LjMgMjEuMyA5LjYgMzEgMy4xIDEyLjktOC42IDE0LjctMjYuOSAzLjctMzcuOC03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGMyNC4xIDI0LjEgMzkuOSAzOS45IDQ3LjIgNDcuMmwwIDAgMjUuMyAyNS4zYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJsMCA3OC45YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC02Ni43IDBjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDI4LjEgMzkzLjRDMTAuMSAzNzUuNCAwIDM1MSAwIDMyNS41TDAgMTA0QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDIyMS41YzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45TDUxMiA0OTMuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w0MDAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTc4LjljMC0yOS43IDExLjgtNTguMiAzMi44LTc5LjJsMjUuMy0yNS4zIDAgMGM3LjMtNy4zIDIzLjEtMjMuMSA0Ny4yLTQ3LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjItMTEgMTEtOS4yIDI5LjIgMy43IDM3LjggOS43IDYuNSAyMi43IDUuMiAzMS0zLjFsNTEuMS01MS4xYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTYwIDEwNGMwLTIyLjEgMTcuOS00MCA0MC00MHpNMzg0LjUgMTQ5bC0xOS44LTE2LjcgMTEuMSA4OC44YzEuNiAxMy4yLTcuNyAyNS4xLTIwLjggMjYuOHMtMjUuMS03LjctMjYuOC0yMC44bC00LjQtMzUtNy42IDAtNC40IDM1Yy0xLjYgMTMuMi0xMy42IDIyLjUtMjYuOCAyMC44cy0yMi41LTEzLjYtMjAuOC0yNi44bDExLjEtODguOC0xOS44IDE2LjdjLTEwLjEgOC42LTI1LjMgNy4zLTMzLjgtMi44cy03LjMtMjUuMyAyLjgtMzMuOGwyNy45LTIzLjZDMjcxLjMgNzIuOCAyOTUuMyA2NCAzMjAgNjRzNDguNyA4LjggNjcuNiAyNC43bDI3LjkgMjMuNmMxMC4xIDguNiAxMS40IDIzLjcgMi44IDMzLjhzLTIzLjcgMTEuNC0zMy44IDIuOHoiXX0scE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Iml0YWxpYyIsaWNvbjpbMzg0LDUxMixbXSwiZjAzMyIsIk0xMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTU4LjcgMC0xMzMuMyAzMjAgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNTguNyAwIDEzMy4zLTMyMC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0saE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImtoYW5kYSIsaWNvbjpbNTEyLDUxMixbOTc3Ml0sImY2NmQiLCJNMjQwLjcgOGM4LjktNy40IDIxLjgtNy40IDMwLjcgMGwzNy44IDMxLjVjOC43IDcuMyAxMS4xIDE5LjYgNiAyOS42LTEuMiAyLjQtMi44IDUuNS00LjYgOS4yIDM0LjIgMTkuMiA1Ny4zIDU1LjggNTcuMyA5Ny44cy0yMy4xIDc4LjYtNTcuMyA5Ny44YzEuOCAzLjcgMy4zIDYuOCA0LjYgOS4yIDUuMSAxMCAyLjcgMjIuMy02IDI5LjZsLTM3LjIgMzEgMCAxOS44YzIyLjktMTUuNyA0OC40LTMzLjMgNzYuNy01Mi43IDQyLjgtMjkuNCA2OC40LTc4IDY4LjQtMTMwbDAtMTEuMWMwLTIzLjktNy4xLTQ3LjMtMjAuNC02Ny4yLTUuMS03LjctNC42LTE3LjggMS43LTI0LjYgNi42LTcuMSAxNy4yLTguMSAyNS4yLTIuOCAyNy41IDE4LjEgODkuNCA2Ny41IDg5LjQgMTQ5LjEgMCA0Ni41LTIwLjIgODguNi00MS44IDEyMC40LTIxLjYgMzItNDUuNiA1NS01NS4zIDYzLjgtNy44IDcuMS0xOSA3LjktMjcuNiAzbC03MC44LTQwLjMtMzIuNyAyMi41IDQ1LjUgMzEuM2MxLjgtLjQgMy43LS43IDUuNy0uNyAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTIuMiAwLTIyLjMtOS4xLTIzLjgtMjFsLTQwLjItMjcuNiAwIDI4LjljOS42IDUuNSAxNiAxNS45IDE2IDI3LjcgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0xMS44IDYuNC0yMi4yIDE2LTI3LjdsMC0yOC4xLTQwLjMgMjcuN2MtMS44IDExLjQtMTEuOCAyMC4xLTIzLjcgMjAuMS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIuMiAwIDQuNCAuMyA2LjUgLjlsNDUuOC0zMS41LTMyLjctMjIuNS03MC44IDQwLjNjLTguNyA0LjktMTkuOCA0LjEtMjcuNi0zLTkuNy04LjgtMzMuNy0zMS45LTU1LjMtNjMuOC0yMS41LTMxLjgtNDEuOC03My45LTQxLjgtMTIwLjQgMC04MS43IDYxLjktMTMxLjEgODkuNC0xNDkuMSA4LjEtNS4zIDE4LjYtNC4zIDI1LjIgMi44IDYuNCA2LjkgNi44IDE3IDEuNyAyNC42LTEzLjMgMTkuOS0yMC40IDQzLjMtMjAuNCA2Ny4ybDAgMTEuMWMwIDUxLjkgMjUuNiAxMDAuNiA2OC40IDEzMCAyOC40IDE5LjYgNTMuNyAzNi45IDc1LjYgNTJsMC0xOS4xLTM3LjItMzFjLTguNy03LjMtMTEuMS0xOS42LTYtMjkuNiAxLjItMi40IDIuOC01LjUgNC42LTkuMi0zNC4yLTE5LjItNTcuMy01NS44LTU3LjMtOTcuOHMyMy4xLTc4LjYgNTcuMy05Ny44Yy0xLjgtMy43LTMuMy02LjgtNC42LTkuMi01LjEtMTAtMi43LTIyLjMgNi0yOS42TDI0MC43IDh6TTIyMC4zIDEyMi45Yy0xNyAxMS41LTI4LjIgMzEtMjguMiA1My4xczExLjIgNDEuNiAyOC4yIDUzLjFjNi44LTE5LjIgMTEuOC0zOC40IDExLjgtNTMuMXMtNC45LTMzLjktMTEuOC01My4xem03MS41IDEwNi4yYzE3LTExLjUgMjguMi0zMSAyOC4yLTUzLjFzLTExLjItNDEuNi0yOC4yLTUzLjFjLTYuOCAxOS4yLTExLjggMzguNC0xMS44IDUzLjFzNC45IDMzLjkgMTEuOCA1My4xeiJdfSx4Y2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1mcm93bi1vcGVuIixpY29uOls1MTIsNTEyLFsxMjg1NTAsImZyb3duLW9wZW4iXSwiZjU3YSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40IDE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNC0yMi40LTkuNS00Ny40LTE0LjgtNzMuNy0xNC44cy01MS4zIDUuMy03My43IDE0Ljh6Il19LGZNdD14Y2Usb0U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hlY2siLGljb246WzQ0OCw1MTIsWzEwMDAzLDEwMDA0XSwiZjAwYyIsIk00MzQuOCA3MC4xYzE0LjMgMTAuNCAxNy41IDMwLjQgNy4xIDQ0LjdsLTI1NiAzNTJjLTUuNSA3LjYtMTQgMTIuMy0yMy40IDEzLjFzLTE4LjUtMi43LTI1LjEtOS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDEwMS41IDEwMS41IDIzNC0zMjEuN2MxMC40LTE0LjMgMzAuNC0xNy41IDQ0LjctNy4xeiJdfSxtTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmluZ2VycHJpbnQiLGljb246WzUxMiw1MTIsW10sImY1NzciLCJNNDggMjU2YzAtMTE0LjkgOTMuMS0yMDggMjA4LTIwOCA2My4xIDAgMTE5LjYgMjguMSAxNTcuOCA3Mi41IDguNiAxMC4xIDIzLjggMTEuMiAzMy44IDIuNnMxMS4yLTIzLjggMi42LTMzLjhDNDAzLjMgMzQuNiAzMzMuNyAwIDI1NiAwIDExNC42IDAgMCAxMTQuNiAwIDI1NmwwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MHptNDU4LjUtNTIuOWMtMi43LTEzLTE1LjUtMjEuMy0yOC40LTE4LjVzLTIxLjMgMTUuNS0xOC41IDI4LjRjMi45IDEzLjkgNC41IDI4LjMgNC41IDQzLjFsMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDBjMC0xOC4xLTEuOS0zNS44LTUuNS01Mi45ek0yNTYgODBjLTE5IDAtMzcuNCAzLTU0LjUgOC42LTE1LjIgNS0xOC43IDIzLjctOC4zIDM1LjkgNy4xIDguMyAxOC44IDEwLjggMjkuNCA3LjkgMTAuNi0yLjkgMjEuOC00LjQgMzMuNC00LjQgNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAyNC45YzAgMjUuMi0xLjUgNTAuMy00LjQgNzUuMy0xLjcgMTQuNiA5LjQgMjcuOCAyNC4yIDI3LjggMTEuOCAwIDIxLjktOC42IDIzLjMtMjAuMyAzLjMtMjcuNCA1LTU1IDUtODIuN2wwLTI0LjljMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZ6TTE1MC43IDE0OC43Yy05LjEtMTAuNi0yNS4zLTExLjQtMzMuOS0uNC0yMy4xIDI5LjgtMzYuOCA2Ny4xLTM2LjggMTA3LjdsMCAyNC45YzAgMjQuMi0yLjYgNDguNC03LjggNzEuOS0zLjQgMTUuNiA3LjkgMzEuMSAyMy45IDMxLjEgMTAuNSAwIDE5LjktNyAyMi4yLTE3LjMgNi40LTI4LjEgOS43LTU2LjggOS43LTg1LjhsMC0yNC45YzAtMjcuMiA4LjUtNTIuNCAyMi45LTczLjEgNy4yLTEwLjQgOC0yNC42LS4yLTM0LjJ6TTI1NiAxNjBjLTUzIDAtOTYgNDMtOTYgOTZsMCAyNC45YzAgMzUuOS00LjYgNzEuNS0xMy44IDEwNi4xLTMuOCAxNC4zIDYuNyAyOSAyMS41IDI5IDkuNSAwIDE3LjktNi4yIDIwLjQtMTUuNCAxMC41LTM5IDE1LjktNzkuMiAxNS45LTExOS43bDAtMjQuOWMwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUybDAgMjQuOWMwIDM2LjMtMy41IDcyLjQtMTAuNCAxMDcuOS0yLjcgMTMuOSA3LjcgMjcuMiAyMS44IDI3LjIgMTAuMiAwIDE5LTcgMjEtMTcgNy43LTM4LjggMTEuNi03OC4zIDExLjYtMTE4LjFsMC0yNC45YzAtNTMtNDMtOTYtOTYtOTZ6bTI0IDk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjQuOWMwIDU5LjktMTEgMTE5LjMtMzIuNSAxNzUuMmwtNS45IDE1LjNjLTQuOCAxMi40IDEuNCAyNi4zIDEzLjggMzFzMjYuMy0xLjQgMzEtMTMuOGw1LjktMTUuM0MyNjcuOSA0MTEuOSAyODAgMzQ2LjcgMjgwIDI4MC45bDAtMjQuOXoiXX0sZ010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJnaW5nLXN0YXRpb24iLGljb246WzU3Niw1MTIsW10sImY1ZTciLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMjg4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjNDQuMiAwIDgwIDM1LjggODAgODBsMCAxMmMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTEyNy43Yy0zMi41LTEwLjItNTYtNDAuNS01Ni03Ni4zbDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDE2IDAgMC00OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgNDggMzIgMCAwLTQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCA0OCAxNiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgMzUuOC0yMy41IDY2LjEtNTYgNzYuM0w1MjAgMzgwYzAgMzcuNi0zMC40IDY4LTY4IDY4cy02OC0zMC40LTY4LTY4bDAtMTJjMC0xNy43LTE0LjMtMzItMzItMzJsMCAxMjkuNGM5LjMgMy4zIDE2IDEyLjIgMTYgMjIuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNEw3MiA1MTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTAuNSA2LjctMTkuMyAxNi0yMi42TDY0IDY0em04Mi43IDEyNS43bDM5IDAtMjAuOSA2Ni45Yy0yLjQgNy42IDMuMyAxNS40IDExLjMgMTUuNCAyLjkgMCA1LjYtMSA3LjgtMi45bDk0LjYtODJjMy4xLTIuNyA0LjktNi42IDQuOS0xMC43IDAtNy44LTYuMy0xNC4xLTE0LjEtMTQuMWwtMzkgMCAyMC45LTY2LjljMi40LTcuNi0zLjMtMTUuNC0xMS4zLTE1LjQtMi45IDAtNS42IDEtNy44IDIuOWwtOTQuNiA4MmMtMy4xIDIuNy00LjkgNi42LTQuOSAxMC43IDAgNy44IDYuMyAxNC4xIDE0LjEgMTQuMXoiXX0sYk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItbG9jayIsaWNvbjpbNTc2LDUxMixbXSwiZjUwMiIsIk0yMjQgOGExMjAgMTIwIDAgMSAxIDAgMjQwIDEyMCAxMjAgMCAxIDEgMC0yNDB6TTE5NC4zIDMwNGw1OS40IDBjMjkuNyAwIDU3LjcgNy4zIDgyLjMgMjAuMWwwIDQuM2MtMTkuNiAxNy42LTMyIDQzLjEtMzIgNzEuNWwwIDk2YzAgNS41IC41IDEwLjkgMS4zIDE2LjFMNDUuNyA1MTJDMjkuMyA1MTIgMTYgNDk4LjcgMTYgNDgyLjMgMTYgMzgzLjggOTUuOCAzMDQgMTk0LjMgMzA0em0zMDEuNyAuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LHljZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtc2NyZWVuLWJ1dHRvbiIsaWNvbjpbMzg0LDUxMixbIm1vYmlsZS1hbHQiXSwiZjNjZCIsIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwTDMwNCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDgwIDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMTYgNjR6bTY0IDBsMCAzMDQgMjI0IDAgMC0zMDQtMjI0IDB6TTE5MiA0NzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyeiJdfSx2TXQ9eWNlLHhNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmNob3ItY2lyY2xlLWNoZWNrIixpY29uOls2NDAsNTEyLFtdLCJlNGFhIiwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwek0yODggMGMtNTMgMC05NiA0My05NiA5NiAwIDQxLjggMjYuNyA3Ny40IDY0IDkwLjVsMCAyNTcuOWMtNjIuOS0xNC4zLTExMC4yLTY5LjctMTExLjktMTM2LjVsMTYuMSAxNC4xYzEwIDguNyAyNS4xIDcuNyAzMy45LTIuM3M3LjctMjUuMS0yLjMtMzMuOWwtNjQtNTZjLTktNy45LTIyLjYtNy45LTMxLjYgMGwtNjQgNTZjLTEwIDguNy0xMSAyMy45LTIuMyAzMy45czIzLjkgMTEgMzMuOSAyLjNMODAgMzA3LjljMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDE2LjYgMCAzMi43LTEuOSA0OC4yLTUuNi0yMC4zLTMwLjUtMzIuMi02Ny0zMi4yLTEwNi40IDAtMjcuMyA1LjctNTMuMyAxNi03Ni45bDAtMTM2LjZjMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sd2NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nLXdpdGgtY2FuZSIsaWNvbjpbNTc2LDUxMixbImJsaW5kIl0sImYyOWQiLCJNMjI0LTMyYTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyek0xNjAgMjA1LjNsLTIyLjYgMjIuNmMtNiA2LTkuNCAxNC4xLTkuNCAyMi42bDAgMzcuNWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTM3LjVjMC0yNS41IDEwLjEtNDkuOSAyOC4xLTY3LjlsMzQuNC0zNC40YzIzLjItMjMuMiA1NC42LTM2LjIgODcuMy0zNi4yIDM2LjEgMCA3MC4zIDE1LjggOTMuOCA0My4xbDY4LjYgODBjMTEuNSAxMy40IDkuOSAzMy42LTMuNSA0NS4xcy0zMy42IDkuOS00NS4xLTMuNWwtNTUuNy02NSAwIDExOC42IDM0LjUgMjkuNmMxNy43IDE1LjIgMjkuMyAzNi4yIDMyLjYgNTkuM2wxMi42IDg4LjFjMi41IDE3LjUtOS43IDMzLjctMjcuMiAzNi4ycy0zMy43LTkuNy0zNi4yLTI3LjJsLTEyLjYtODguMWMtMS4xLTcuNy01LTE0LjctMTAuOS0xOS44bC03MS40LTYxLjJjLTIxLjMtMTguMi0zMy41LTQ0LjktMzMuNS03Mi45bDAtNjkuM3ptLjEgMTY1LjhjMi40IDIuMyA0LjggNC42IDcuNCA2LjhsNDYgMzkuNC0yLjIgNy42Yy00LjUgMTUuNy0xMi45IDMwLTI0LjQgNDEuNWwtNjguMyA2OC4zYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2OC4zLTY4LjNjMy44LTMuOCA2LjYtOC42IDguMS0xMy44TDE2MC4xIDM3MXptMjMzLjUtNjIuMmMxMC42LTggMjUuNi01LjggMzMuNiA0LjhsMTQ0IDE5MmM4IDEwLjYgNS44IDI1LjYtNC44IDMzLjZzLTI1LjYgNS44LTMzLjYtNC44bC0xNDQtMTkyYy04LTEwLjYtNS44LTI1LjYgNC44LTMzLjZ6Il19LHlNdD13Y2UsTWNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtd2F2ZWZvcm0iLGljb246WzM4NCw1MTIsWyJmaWxlLW1lZGljYWwtYWx0Il0sImY0NzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTk2IDYwLjMgMCA0OC44IDYyLjdjNS4xIDYuNiAxMy4zIDEwIDIxLjYgOS4xczE1LjUtNi4xIDE5LjEtMTMuNmw0Mi45LTkxLjIgOS45IDE5LjhjNC4xIDguMSAxMi40IDEzLjMgMjEuNSAxMy4zbDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU3LjIgMC0yNS40LTUwLjdjLTQuMS04LjItMTIuNi0xMy40LTIxLjgtMTMuM3MtMTcuNSA1LjUtMjEuNCAxMy44bC00Ny4zIDEwMC42LTMyLTQxLjFDODYuNCAzMDcuNCA3OS40IDMwNCA3MiAzMDRMMCAzMDQgMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41eiJdfSx3TXQ9TWNlLE1NdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jcmFjayIsaWNvbjpbNTEyLDUxMixbXSwiZTNiMSIsIk0yNzcuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzE4LjggMjcyIDMyIDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDg2LjQgMC0zMS4zLTUyLjJjLTQuMS02LjgtMi42LTE1LjUgMy41LTIwLjVMMjU2IDM2OCAxOTUuOCAyODUuMmMtMTAuOS0xNSA4LjItMzMuNSAyMi44LTIybDExNy45IDkyLjZjOCA2LjMgOC4yIDE4LjQgLjQgMjQuOUwyNTYgNDQ4IDI5NC40IDUxMiA0MDAgNTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTc2IDE2IDBjMTMuMiAwIDI1LTguMSAyOS44LTIwLjNzMS42LTI2LjItOC0zNS4xbC0yMjQtMjA4eiJdfSxrTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGF0LXdpemFyZCIsaWNvbjpbNTEyLDUxMixbXSwiZjZlOCIsIk02NCA0MDBsODUuNy0yMDguMmMxNy00MS4zIDQ3LjgtNzUuMyA4Ny4yLTk2LjNMMzgzLjggMTcuMmMxMi4zLTYuNiAyNi41IDQuNyAyMyAxOC4yTDM2OS42IDE3Ny44Yy0xLjEgNC4xLTEuNiA4LjMtMS42IDEyLjYgMCA2LjMgMS4yIDEyLjYgMy42IDE4LjVsNzYuNCAxOTEuMS0yMDcuMSAwIDExLjgtMzUuNCA0MC40LTEzLjVjNi41LTIuMiAxMC45LTguMyAxMC45LTE1LjJzLTQuNC0xMy0xMC45LTE1LjJsLTQwLjQtMTMuNS0xMy41LTQwLjRDMjM3IDI2MC40IDIzMC45IDI1NiAyMjQgMjU2cy0xMyA0LjQtMTUuMiAxMC45bC0xMy41IDQwLjQtNDAuNCAxMy41QzE0OC40IDMyMyAxNDQgMzI5LjEgMTQ0IDMzNnM0LjQgMTMgMTAuOSAxNS4ybDQwLjQgMTMuNSAxMS44IDM1LjQtMTQzLjEgMHpNMjc5LjYgMTQxLjVjLTEuMS0zLjMtNC4xLTUuNS03LjYtNS41cy02LjUgMi4yLTcuNiA1LjVsLTYuNyAyMC4yLTIwLjIgNi43Yy0zLjMgMS4xLTUuNSA0LjEtNS41IDcuNnMyLjIgNi41IDUuNSA3LjZsMjAuMiA2LjcgNi43IDIwLjJjMS4xIDMuMyA0LjEgNS41IDcuNiA1LjVzNi41LTIuMiA3LjYtNS41bDYuNy0yMC4yIDIwLjItNi43YzMuMy0xLjEgNS41LTQuMSA1LjUtNy42cy0yLjItNi41LTUuNS03LjZsLTIwLjItNi43LTYuNy0yMC4yek0zMiA0NDhsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxrY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1kb2N0b3IiLGljb246WzQ0OCw1MTIsWyJ1c2VyLW1kIl0sImYwZjAiLCJNMjI0IDhhMTIwIDEyMCAwIDEgMCAwIDI0MCAxMjAgMTIwIDAgMSAwIDAtMjQwem02MCAzMTIuOGMtNS40LS41LTExLS44LTE2LjYtLjhsLTg2LjkgMGMtNS42IDAtMTEuMSAuMy0xNi42IC44bDAgNjcuNWMxNi41IDcuNiAyOCAyNC4zIDI4IDQzLjYgMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC0xOS40IDExLjUtMzYuMSAyOC00My42bDAtNTguNEM2MSAzNTMgMTYgNDEzLjYgMTYgNDg0LjYgMTYgNDk5LjcgMjguMyA1MTIgNDMuNCA1MTJsMzYxLjEgMGMxNS4xIDAgMjcuNC0xMi4zIDI3LjQtMjcuNCAwLTcxLTQ1LTEzMS41LTEwOC0xNTQuNmwwIDM3LjRjMjMuMyA4LjIgNDAgMzAuNSA0MCA1Ni42bDAgMzJjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMzJjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgMzJjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtMzJjMC0yNi4xIDE2LjctNDguMyA0MC01Ni42bDAtNDYuNnoiXX0sU010PWtjZSxTY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtYmFyIixpY29uOls1MTIsNTEyLFsiYmFyLWNoYXJ0Il0sImYwODAiLCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMzZjMCA4LjggNy4yIDE2IDE2IDE2bDQwMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDgwIDQ4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgODBsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDExMmwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LHpNdD1TY2UsemNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwcmF5LWNhbi1zcGFya2xlcyIsaWNvbjpbNTc2LDUxMixbImFpci1mcmVzaGVuZXIiXSwiZjVkMCIsIk0xNjAgMzJsMCA4MCAxMjggMCAwLTgwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMCAxMjhjLTUzIDAtOTYgNDMtOTYgOTZsMCAyMDhjMCAyNi41IDIxLjUgNDggNDggNDhsMjI0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMDhjMC01My00My05Ni05Ni05NmwtMTI4IDB6bTY0IDk2YTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek00NDggNDhjMC0xLjQtMS0zLTIuMi0zLjZMNDE2IDMyIDQwMy42IDIuMkM0MDMgMSA0MDEuNCAwIDQwMCAwcy0zIDEtMy42IDIuMkwzODQgMzIgMzU0LjIgNDQuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkwzODQgNjQgMzk2LjQgOTMuOEMzOTcgOTUgMzk4LjYgOTYgNDAwIDk2czMtMSAzLjYtMi4yTDQxNiA2NCA0NDUuOCA1MS42QzQ0NyA1MSA0NDggNDkuNCA0NDggNDh6bTc2LjQgNDUuOEM1MjUgOTUgNTI2LjYgOTYgNTI4IDk2czMtMSAzLjYtMi4yTDU0NCA2NCA1NzMuOCA1MS42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjYgMC0xLjQtMS0zLTIuMi0zLjZMNTQ0IDMyIDUzMS42IDIuMkM1MzEgMSA1MjkuNCAwIDUyOCAwcy0zIDEtMy42IDIuMkw1MTIgMzIgNDgyLjIgNDQuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw1MTIgNjQgNTI0LjQgOTMuOHptNy4yIDEwMC40Yy0uNi0xLjItMi4yLTIuMi0zLjYtMi4ycy0zIDEtMy42IDIuMkw1MTIgMjI0IDQ4Mi4yIDIzNi40Yy0xLjIgLjYtMi4yIDIuMi0yLjIgMy42IDAgMS40IDEgMyAyLjIgMy42TDUxMiAyNTYgNTI0LjQgMjg1LjhjLjYgMS4yIDIuMiAyLjIgMy42IDIuMnMzLTEgMy42LTIuMkw1NDQgMjU2IDU3My44IDI0My42YzEuMi0uNiAyLjItMi4yIDIuMi0zLjYgMC0xLjQtMS0zLTIuMi0zLjZMNTQ0IDIyNCA1MzEuNiAxOTQuMnpNNTEyIDE0NGMwLTEuNC0xLTMtMi4yLTMuNkw0ODAgMTI4IDQ2Ny42IDk4LjJDNDY3IDk3IDQ2NS40IDk2IDQ2NCA5NnMtMyAxLTMuNiAyLjJMNDQ4IDEyOCA0MTguMiAxNDAuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNiAwIDEuNCAxIDMgMi4yIDMuNkw0NDggMTYwIDQ2MC40IDE4OS44Yy42IDEuMiAyLjIgMi4yIDMuNiAyLjJzMy0xIDMuNi0yLjJMNDgwIDE2MCA1MDkuOCAxNDcuNmMxLjItLjYgMi4yLTIuMiAyLjItMy42eiJdfSxDTXQ9emNlLFRNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYWh0LXNpZ24iLGljb246WzMyMCw1MTIsW10sImUwYWMiLCJNMTM2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDAtNzQuNCAwQzE2LjggNjQgMCA4MC44IDAgMTAxLjZMMCA0MDYuM2MwIDIzIDE4LjcgNDEuNyA0MS43IDQxLjdsNzAuMyAwIDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDQ4IDBjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC00MC4xLTIxLjEtNzUuMy01Mi43LTk1LjEgMTMuMS0xOC4zIDIwLjctNDAuNyAyMC43LTY0LjkgMC02MS45LTUwLjEtMTEyLTExMi0xMTJsLTE2IDAgMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMTEyIDEyOGwwIDk2LTQ4IDAgMC05NiA0OCAwem00OCA5NmwwLTk2IDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE2IDB6bS00OCA2NGwwIDk2LTQ4IDAgMC05NiA0OCAwem00OCA5NmwwLTk2IDQ4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTQ4IDB6Il19LENjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1hcnJvdy11cCIsaWNvbjpbNTEyLDUxMixbInRlbXBlcmF0dXJlLXVwIl0sImUwNDAiLCJNNjQuNSA5NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgMTY0LjdjMjkuNSAyNi40IDQ4IDY0LjcgNDggMTA3LjMgMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDRzLTE0NC02NC41LTE0NC0xNDRjMC00Mi42IDE4LjUtODEgNDgtMTA3LjNMNjQuNSA5NnptOTYgMzM2YzM1LjMgMCA2NC0yOC43IDY0LTY0IDAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM2wwLTIxMi43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjEyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHpNNDM5LjEgOS40bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC05LjQtOS40IDAgMTc4LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNzguNy05LjQgOS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w2NC02NGM2LTYgMTQuMS05LjQgMjIuNi05LjRzMTYuNiAzLjQgMjIuNiA5LjR6Il19LF9NdD1DY2UsTE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlYi1hd2Vzb21lIixpY29uOls2NDAsNTEyLFtdLCJlNjgyIiwiTTM3Mi4yIDUyYzAgMjAuOS0xMi40IDM5LTMwLjIgNDcuMkw0NDggMTkyIDU1Mi40IDE3MS4xYy01LjMtNy43LTguNC0xNy4xLTguNC0yNy4xIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhjMCAyNi0yMC42IDQ3LjEtNDYuNCA0OEw0ODEgNDQyLjNjLTEwLjMgMjMtMzMuMiAzNy43LTU4LjQgMzcuN2wtMjA1LjIgMGMtMjUuMiAwLTQ4LTE0LjgtNTguNC0zNy43TDQ2LjQgMTkyQzIwLjYgMTkxLjEgMCAxNzAgMCAxNDQgMCAxMTcuNSAyMS41IDk2IDQ4IDk2czQ4IDIxLjUgNDggNDhjMCAxMC4xLTMuMSAxOS40LTguNCAyNy4xTDE5MiAxOTIgMjk4LjEgOTkuMWMtMTcuNy04LjMtMzAtMjYuMy0zMC00Ny4xIDAtMjguNyAyMy4zLTUyIDUyLTUyczUyIDIzLjMgNTIgNTJ6Il19LEFNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJub24tYmluYXJ5IixpY29uOlszODQsNTEyLFtdLCJlODA3IiwiTTE5MiA1NDRjLTk3LjIgMC0xNzYtNzguOC0xNzYtMTc2IDAtODYuMyA2Mi4xLTE1OCAxNDQtMTczbDAtNDcuMi00OS43IDI0LjgtMyAxLjNjLTE1LjIgNS43LTMyLjUtLjgtMzkuOS0xNS43LTcuNC0xNC44LTIuMi0zMi42IDExLjUtNDEuM2wyLjgtMS42IDM4LjgtMTkuNC0zOC44LTE5LjRjLTE1LjgtNy45LTIyLjItMjcuMS0xNC4zLTQyLjkgNy40LTE0LjggMjQuOC0yMS40IDQwLTE1LjZsMyAxLjMgNDkuNyAyNC44IDAtNDQuMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNDQuMiA0OS43LTI0LjggMy0xLjNjMTUuMi01LjggMzIuNSAuOCAzOS45IDE1LjZzMi4yIDMyLjctMTEuNSA0MS4zbC0yLjggMS42LTM4LjcgMTkuNCAzOC43IDE5LjNjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOS03LjQgMTQuOC0yNC43IDIxLjQtMzkuOSAxNS42bC0zLTEuMy00OS43LTI0LjggMCA0Ny4yYzgxLjkgMTUuMSAxNDQgODYuOCAxNDQgMTczIDAgOTcuMi03OC44IDE3Ni0xNzYgMTc2em0wLTY0YTExMiAxMTIgMCAxIDAgMC0yMjQgMTEyIDExMiAwIDEgMCAwIDIyNHoiXX0sRE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im4iLGljb246WzM4NCw1MTIsWzExMF0sIjRlIiwiTTIxLjEgMzMuOWMxMi43LTQuNiAyNi45LS43IDM1LjUgOS42TDMyMCAzNTkuNiAzMjAgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDM4NGMwIDEzLjUtOC40IDI1LjUtMjEuMSAzMC4xcy0yNi45IC43LTM1LjUtOS42TDY0IDE1Mi40IDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA1MC41IDguNCAzOC41IDIxLjEgMzMuOXoiXX0sVGNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy11cC1kb3duLWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsWyJhcnJvd3MiXSwiZjA0NyIsIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5LjQtOS40IDAgMTE0LjctMTE0LjcgMCA5LjQtOS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOS40LTkuNCAxMTQuNyAwIDAgMTE0LjctOS40LTkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTkuNCA5LjQgMC0xMTQuNyAxMTQuNyAwLTkuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5LjQgOS40LTExNC43IDAgMC0xMTQuNyA5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0eiJdfSxFTXQ9VGNlLFBnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlIixpY29uOls1MTIsNTEyLFsxMjc5NjgsNjM0OTgsNjM1MDAsImhvbWUiLCJob21lLWFsdCIsImhvbWUtbGctYWx0Il0sImYwMTUiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHpNMjQwIDMyMGwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTYtMTI4IDAgMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHoiXX0sJE10PVBnLElNdD1QZyxQTXQ9UGcsTk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwaW5uZXIiLGljb246WzUxMiw1MTIsW10sImYxMTAiLCJNMjA4IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTAgNDE2YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTQ4IDIwOGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTM2OCA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek03NSAzNjkuMUE0OCA0OCAwIDEgMSAxNDIuOSA0MzcgNDggNDggMCAxIDEgNzUgMzY5LjF6TTc1IDc1QTQ4IDQ4IDAgMSAxIDE0Mi45IDE0Mi45IDQ4IDQ4IDAgMSAxIDc1IDc1ek00MzcgMzY5LjFBNDggNDggMCAxIDEgMzY5LjEgNDM3IDQ4IDQ4IDAgMSAxIDQzNyAzNjkuMXoiXX0sX2NlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdhdmVsIixpY29uOls1NzYsNTEyLFsibGVnYWwiXSwiZjBlMyIsIk0xNjkuNiAxNTMuNGwtMTguNy0xOC43Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wyNjUuNi0yNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwTDMyOS42LTYuNmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0wyMTQuOSAxNTMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDB6TTI3NiAyMTEuN2wtMzEuNC0zMS40IDExMi0xMTIgMTE5LjQgMTE5LjQtMTEyIDExMi0zMS40LTMxLjQtMjMyIDIzMmMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZsMjMyLTIzMnpNMzkwLjkgMzc0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zTDUwNS42IDIxNC42YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE4LjcgMTguN2MxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0w0NTQuOSAzOTMuNGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE4LjctMTguN3oiXX0sRk10PV9jZSxMY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGlja2V0LXNpbXBsZSIsaWNvbjpbNTc2LDUxMixbInRpY2tldC1hbHQiXSwiZjNmZiIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgOC44LTcuNCAxNS43LTE1LjcgMTguNi0xOC44IDYuNS0zMi4zIDI0LjQtMzIuMyA0NS40czEzLjUgMzguOSAzMi4zIDQ1LjRjOC4zIDIuOSAxNS43IDkuOCAxNS43IDE4LjZsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRDMCAzMTEuMiA3LjQgMzA0LjMgMTUuNyAzMDEuNCAzNC41IDI5NC45IDQ4IDI3NyA0OCAyNTZzLTEzLjUtMzguOS0zMi4zLTQ1LjRDNy40IDIwNy43IDAgMjAwLjggMCAxOTJsMC02NHoiXX0sT010PUxjZSxSTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG92ZSIsaWNvbjpbNTEyLDUxMixbMTI4MzMwXSwiZjRiYSIsIk00OTYgNjRjMTMuMiAwIDIwLjcgMTUuMSAxMi44IDI1LjZMNDgwIDEyOCA0ODAgMzA0YzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0bC0xMTIgMC00Ni4zIDQ2LjNjLTEwLjQgMTAuNC0yNi41IDEyLjQtMzkuMSA0LjhMNDEuNSA0NDAuOWMtMTctMTAuMi0xNS0zNS41IDMuNC00Mi45TDE2MCAzNTJDMjMuOCAzMTEuMSA3LjUgMTY5LjggMjIgOTUuNyAyNS42IDc3LjkgNDUuMyA3MS40IDYxLjMgODAuMkwzMjAgMjI0IDMyMCAxNDRjMC00NC4yIDM1LjgtODAgODAtODBsOTYgMHptLTk2IDU2YTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHpNMTgyLjUtOS42YzEyLjQtMTMuNyAzMy4zLTguOSA0Mi41IDcuMWw1Ni40IDk4LjNjLTUuOCAxNC40LTkuMiAzMC4xLTkuNCA0Ni41TDEzOC4xIDY4YzEwLjEtMzEuNiAyNy01OC40IDQ0LjQtNzcuNnoiXX0sQk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcnAtZHJvcGxldCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3YyIsIk0yNTYgMTYwYzM1LjMgMCA2NC0yNi45IDY0LTYwIDAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHpNMzY4IDk2YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzE0NCAxNTcuOSAxNDQgOTZjMC0xMS4xIDEuNi0yMS45IDQuNi0zMkw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzcuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My4zIDMyMi43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMNTEyIDEyOGMwLTM1LjMtMjguNy02NC02NC02NGwtODQuNiAwYzMgMTAuMSA0LjYgMjAuOSA0LjYgMzJ6bTg1LjUgMTc2TDMzNiAzODkuNSAzMzYgMjk2YzAtMTMuMyAxMC43LTI0IDI0LTI0bDkzLjUgMHpNOTYgMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sSE10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyZWUtY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTU4NyIsIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDQ4IDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyMGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDE2em02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0zNTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTUyOCAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNTEyIDMwNGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek05NiA0ODBsMC0xNjAtMTYgMGMtNDQuMiAwLTgwLTM1LjgtODAtODAgMC0yNi43IDEzLjEtNTAuMyAzMy4yLTY0LjktLjgtNC45LTEuMi0xMC0xLjItMTUuMSAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2bDAgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6Il19LEFjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0dXJuLXVwIixpY29uOlszODQsNTEyLFsxMDU0OCwibGV2ZWwtdXAtYWx0Il0sImYzYmYiLCJNMTY5LjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDEyOCAxMjhjOS4yIDkuMiAxMS45IDIyLjkgNi45IDM0LjlTMzMyLjkgMTkyIDMyMCAxOTJsLTY0IDAgMCAxNjBjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MC02NCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOWwxMjgtMTI4eiJdfSxxTXQ9QWNlLE5nPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlbXBlcmF0dXJlLXF1YXJ0ZXIiLGljb246WzMyMCw1MTIsWyJ0ZW1wZXJhdHVyZS0xIiwidGhlcm1vbWV0ZXItMSIsInRoZXJtb21ldGVyLXF1YXJ0ZXIiXSwiZjJjYSIsIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNsMC0yOC43YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyOC43YzIzLjUgOS41IDQwIDMyLjUgNDAgNTkuM3oiXX0sak10PU5nLFZNdD1OZyxVTXQ9TmcsRGNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNsaWRlcnMiLGljb246WzUxMiw1MTIsWyJzbGlkZXJzLWgiXSwiZjFkZSIsIk0zMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJsODYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDhzNjEtMTkuNyA3My4zLTQ4TDQ4MCAxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMjY1LjMgNjRDMjUzIDM1LjcgMjI0LjggMTYgMTkyIDE2cy02MSAxOS43LTczLjMgNDhMMzIgNjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI0Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhsNTQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01NC43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDhzLTYxIDE5LjctNzMuMyA0OEwzMiAyMjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDU0LjcgMGMxMi4zIDI4LjMgNDAuNSA0OCA3My4zIDQ4czYxLTE5LjcgNzMuMy00OEw0ODAgNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yNDYuNyAwYy0xMi4zLTI4LjMtNDAuNS00OC03My4zLTQ4cy02MSAxOS43LTczLjMgNDhMMzIgMzg0eiJdfSxXTXQ9RGNlLEdNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3NxdWUiLGljb246WzU3Niw1MTIsWzEyODMzMl0sImY2NzgiLCJNMTc0LjggMjI0bDIyNi40IDBjNDMuNSAwIDc4LjgtMzUuMyA3OC44LTc4LjggMC0yNS41LTEyLjMtNDkuNC0zMy4xLTY0LjJMMjk3LjMtMjUuNGMtNS42LTMuOS0xMy0zLjktMTguNSAwTDEyOS4xIDgxQzEwOC4zIDk1LjggOTYgMTE5LjcgOTYgMTQ1LjIgOTYgMTg4LjcgMTMxLjMgMjI0IDE3NC44IDIyNHpNNTEyIDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ4LTQ0OCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJTMCAyMDYuMyAwIDIyNEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0NDggMHpNMjQwIDM4NGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgODAtOTYgMCAwLTgweiJdfSxZTXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaCIsaWNvbjpbMzg0LDUxMixbMTA0XSwiNDgiLCJNMzIwIDI4OGwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYwLTI1NiAwIDAtMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMjU2IDB6Il19LFpNdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmZvIixpY29uOlsxOTIsNTEyLFtdLCJmMTI5IiwiTTQ4IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyNTYgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMCAwLTIyNC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sRWNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi13YWxraW5nIixpY29uOlszODQsNTEyLFsxMjg2OTQsIndhbGtpbmciXSwiZjU1NCIsIk0xOTIgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTEwNS40IDIyNy45bDIyLjYtMjIuNiAwIDY5LjNjMCAyOCAxMi4yIDU0LjcgMzMuNSA3Mi45bDcxLjQgNjEuMmM1LjkgNS4xIDkuOCAxMi4xIDEwLjkgMTkuOGwxMi42IDg4LjFjMi41IDE3LjUgMTguNyAyOS43IDM2LjIgMjcuMnMyOS43LTE4LjcgMjcuMi0zNi4ybC0xMi42LTg4LjFjLTMuMy0yMy4xLTE0LjktNDQuMS0zMi42LTU5LjNsLTM0LjUtMjkuNiAwLTExNS4yIDMuOCA0LjdjMTguMiAyMi44IDQ1LjggMzYgNzUgMzZsMzMuMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMy4yIDBjLTkuNyAwLTE4LjktNC40LTI1LTEybC0xNy45LTIyLjRjLTIzLTI4LjgtNTcuOS00NS42LTk0LjgtNDUuNi0zMi4yIDAtNjMuMSAxMi44LTg1LjggMzUuNkw2MC4xIDE4Mi42QzQyLjEgMjAwLjYgMzIgMjI1IDMyIDI1MC41TDMyIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzcuNWMwLTguNSAzLjQtMTYuNiA5LjQtMjIuNnptMTIuNCAxNzkuNGMtMS41IDUuMi00LjMgMTAtOC4xIDEzLjhMNDEuNCA0ODkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC4zLTY4LjNjMTEuNS0xMS41IDE5LjktMjUuOCAyNC40LTQxLjVsMi4yLTcuNi00Ni0zOS40Yy0yLjUtMi4yLTUtNC40LTcuNC02LjhsLTEwLjQgMzYuMnoiXX0sWE10PUVjZSwkY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdHVybi1kb3duIixpY29uOlszODQsNTEyLFsibGV2ZWwtZG93biJdLCJmMTQ5IiwiTTMyIDY0QzE0LjMgNjQgMCA0OS43IDAgMzJTMTQuMyAwIDMyIDBsOTYgMGM1MyAwIDk2IDQzIDk2IDk2bDAgMzA2LjcgNzMuNC03My40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTEyOCAxMjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xMjgtMTI4Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDE2MCA0MDIuNyAxNjAgOTZjMC0xNy43LTE0LjMtMzItMzItMzJMMzIgNjR6Il19LFFNdD0kY2UsSk10PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQiLGljb246WzUxMiw1MTIsWzEyODczOV0sImYwMTgiLCJNMjIzLjkgMzJsLTc2LjIgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMMS40IDQyMC41Qy02LjEgNDUwLjcgMTYuOCA0ODAgNDggNDgwbDE3NS45IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNjQgMTc2LjEgMGMzMS4yIDAgNTQuMS0yOS4zIDQ2LjYtNTkuNUw0MjYuNSA4MC42QzQxOS40IDUyLjEgMzkzLjggMzIgMzY0LjMgMzJsLTc2LjQgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6bTY0IDE5MmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0sS010PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwaXJhbCIsaWNvbjpbNTEyLDUxMixbXSwiZTgwYSIsIk0xMTUuNSA3LjRjMTMuNi0xMS4zIDMzLjgtOS41IDQ1LjEgNC4xczkuNSAzMy44LTQuMSA0NS4xQzEwMC4yIDEwMy41IDY0IDE3NS4yIDY0IDI1NiA2NCAzNjIgMTUwIDQ0OCAyNTYgNDQ4czE5Mi04NiAxOTItMTkyYzAtNzUuMS02MC45LTEzNi0xMzYtMTM2UzE3NiAxODAuOSAxNzYgMjU2YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC00OC42IDM5LjQtODggODgtODhzODggMzkuNCA4OCA4OGMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxMTIgMzM1LjUgMTEyIDI1NmMwLTExMC41IDg5LjUtMjAwIDIwMC0yMDBzMjAwIDg5LjUgMjAwIDIwMGMwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzAgMzk3LjQgMCAyNTZDMCAxNTUuOCA0NSA2Ni4xIDExNS41IDcuNHoiXX0sSWNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZnJvd24iLGljb246WzUxMiw1MTIsWzk3ODUsImZyb3duIl0sImYxMTkiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6bTkwLjYtMTEzLjljLTIwLjQtMjgtNTMuNC00Ni4xLTkwLjYtNDYuMXMtNzAuMiAxOC4xLTkwLjYgNDYuMWMtNy44IDEwLjctMjIuOCAxMy4xLTMzLjUgNS4zcy0xMy4xLTIyLjgtNS4zLTMzLjVDMTU1LjcgMzMwIDIwMi44IDMwNCAyNTYgMzA0czEwMC4zIDI2IDEyOS40IDY1LjljNy44IDEwLjcgNS40IDI1LjctNS4zIDMzLjVzLTI1LjcgNS40LTMzLjUtNS4zek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGVrdD1JY2UsUGNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmUtZ2xhc3MtZW1wdHkiLGljb246WzMyMCw1MTIsWyJ3aW5lLWdsYXNzLWFsdCJdLCJmNWNlIiwiTTY0IDBDNDguNyAwIDM1LjYgMTAuOCAzMi42IDI1LjdMMy4yIDE3M0MxLjEgMTgzLjUgMCAxOTQuMiAwIDIwNWwwIDNjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhsMCAxMTUuMi02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtMTE1LjJDMjY1IDM1MCAzMjAgMjg1LjQgMzIwIDIwOGwwLTNjMC0xMC43LTEuMS0yMS40LTMuMi0zMkwyODcuNCAyNS43QzI4NC40IDEwLjggMjcxLjMgMCAyNTYgMEw2NCAwem0xLjkgMTg1LjZMOTAuMiA2NCAyMjkuOCA2NCAyNTQuMSAxODUuNmMxLjMgNi40IDEuOSAxMi45IDEuOSAxOS40bDAgM2MwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTNjMC02LjUgLjYtMTMgMS45LTE5LjR6Il19LHRrdD1QY2Uscmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsYXBwZXJib2FyZCIsaWNvbjpbNTEyLDUxMixbXSwiZTEzMSIsIk00NDggNjRjMiAwIDMuOSAuMSA1LjggLjNsLTk1LjcgOTUuNyA2Ny45IDAgNzItNzJjOC44IDExIDE0IDI0LjkgMTQgNDBsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw3MC4xIDAtOTYgOTYgNjcuOSAwIDk1LTk1IDEtMSA5Mi4xIDAtOTYgOTYgNjcuOSAwIDk1LTk1IDEtMSA4Ni4xIDB6Il19LE5jZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb3J3YXJkLXN0ZXAiLGljb246WzM4NCw1MTIsWyJzdGVwLWZvcndhcmQiXSwiZjA1MSIsIk0yMSAzNi44YzEyLjktNyAyOC43LTYuMyA0MSAxLjhMMzIwIDIwOC4xIDMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzg0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQ0LjEtMjU4IDE2OS42Yy0xMi4zIDguMS0yOCA4LjgtNDEgMS44UzAgNDU0LjcgMCA0NDBMMCA3MkMwIDU3LjMgOC4xIDQzLjggMjEgMzYuOHoiXX0saWt0PU5jZSxGY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXVwLXJpZ2h0IixpY29uOls0NDgsNTEyLFs4NTk5LCJleHRlcm5hbC1saW5rLXNxdWFyZS1hbHQiXSwiZjM2MCIsIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwek0xNjggMTYwYy05LjcgMC0xOC41IDUuOC0yMi4yIDE0LjhzLTEuNyAxOS4zIDUuMiAyNi4ybDM1IDM1LTY3IDY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyNCAyNGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw2Ny02NyAzNSAzNWM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yUzMyMCAzMjEuNyAzMjAgMzEybDAtMTI4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC0xMjggMHoiXX0sYWt0PUZjZSxPY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1qb3VybmFsLXdoaWxscyIsaWNvbjpbNDQ4LDUxMixbImpvdXJuYWwtd2hpbGxzIl0sImY2NmEiLCJNOTYgNTEybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtNjYuN2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNsMC0yODhjMC0yNi41LTIxLjUtNDgtNDgtNDhMOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTI3NC4xIDk5LjJjMi42LTIuNiA2LjctMy4xIDkuOS0xLjEgMzIuMSAyMCA1My40IDU1LjYgNTMuNCA5Ni4yIDAgNjIuNi01MC43IDExMy4zLTExMy4zIDExMy4zUzExMC43IDI1Ni45IDExMC43IDE5NC4zYzAtNDAuNiAyMS40LTc2LjIgNTMuNC05Ni4yIDMuMS0yIDcuMi0xLjUgOS45IDEuMXMzLjEgNi43IDEuMiA5LjhjLTUuMiA4LjYtOC4yIDE4LjctOC4yIDI5LjUgMCAxNS4xIDUuOSAyOC44IDE1LjUgMzkuMSAyLjUgMi43IDIuOSA2LjcgLjkgOS43LTQuNyA3LjQtNy40IDE2LjEtNy40IDI1LjUgMCAyMS42IDE0LjMgMzkuOSAzNCA0NS45bDEtMjQuOGMtNy4xLTQuNC0xMS44LTEyLjItMTEuOC0yMS4xIDAtOS42IDUuNS0xOCAxMy41LTIyLjFsMy4zLTgxLjhjLjItNC4zIDMuNy03LjcgOC03LjdzNy44IDMuNCA4IDcuN2wzLjMgODEuOGM4IDQuMSAxMy41IDEyLjQgMTMuNSAyMi4xIDAgOC45LTQuNyAxNi43LTExLjggMjEuMWwxIDI0LjhjMTkuNi02IDMzLjktMjQuMSAzNC00NS42bDAtLjZjLS4xLTkuMy0yLjctMTcuOS03LjQtMjUuMi0xLjktMy4xLTEuNi03LjEgLjktOS43IDkuNi0xMC4yIDE1LjUtMjMuOSAxNS41LTM5LjEgMC0xMC44LTMtMjAuOS04LjItMjkuNS0xLjktMy4yLTEuNC03LjIgMS4yLTkuOHoiXX0sbmt0PU9jZSxSY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhbXBhZ25lLWdsYXNzZXMiLGljb246WzY0MCw1MTIsWzEyOTM0NiwiZ2xhc3MtY2hlZXJzIl0sImY3OWYiLCJNMTU1LjYgMTcuM0MxNjMgMyAxNzkuOS0zLjYgMTk1IDEuOWwxMjUgNDUuNiAxMjUtNDUuNmMxNS4xLTUuNSAzMiAxLjEgMzkuNCAxNS40bDc4LjggMTUyLjljMjguOCA1NS44IDEwLjMgMTIyLjMtMzguNSAxNTYuNmwzMS4zIDg2LjIgNDEtMTVjMTYuNi02IDM1IDIuNSA0MSAxOS4xcy0yLjUgMzUtMTkuMSA0MWMtNDcuNCAxNy4zLTk0LjggMzQuNS0xNDIuMiA1MS44LTE2LjYgNi4xLTM1LTIuNS00MS0xOS4xczIuNS0zNSAxOS4xLTQxbDQxLTE1LTMxLjMtODYuMmMtNTkuNCA1LjItMTE2LjItMzMuOS0xMzAtOTUuMmwtMTQuNi02NC43LTE0LjYgNjQuN2MtMTMuOCA2MS4zLTcwLjYgMTAwLjQtMTMwIDk1LjJsLTMxLjMgODYuMiA0MSAxNWMxNi42IDYuMSAyNS4yIDI0LjQgMTkuMSA0MXMtMjQuNCAyNS4yLTQxIDE5LjFjLTQ3LjQtMTcuMy05NC44LTM0LjYtMTQyLjItNTEuOC0xNi42LTYuMS0yNS4yLTI0LjQtMTkuMS00MVMyNi4zIDM5MiA0Mi45IDM5OGw0MSAxNSAzMS4zLTg2LjJDNjYuNSAyOTIuNSA0OC4xIDIyNiA3Ni45IDE3MC4yTDE1NS42IDE3LjN6bTQ0IDU0LjRsLTI3LjIgNTIuOCA4OS4yIDMyLjUgMTMuMS01Ny45LTc1LjEtMjcuNHptMjQwLjkgMGwtNzUuMSAyNy40IDEzLjEgNTcuOSA4OS4yLTMyLjUtMjcuMi01Mi44eiJdfSxva3Q9UmNlLHNrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkdW1wc3RlciIsaWNvbjpbNTc2LDUxMixbXSwiZjc5MyIsIk0xMzIuMyA2NEwxMDYuNyAxOTIgMjQgMTkyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuMWMwLTIuNiAuNC01LjEgMS4yLTcuNkwyNi41IDgwLjRDMjkuOCA3MC42IDM5IDY0IDQ5LjMgNjRsODMgMHptMjMuNCAxMjhsMjUuNi0xMjggODIuNyAwIDAgMTI4LTEwOC4zIDB6TTMxMiA2NGw4Mi43IDAgMjUuNiAxMjgtMTA4LjMgMCAwLTEyOHptMTMxLjcgMGw4MyAwYzEwLjMgMCAxOS41IDYuNiAyMi44IDE2LjRsMjUuMyA3NS45Yy44IDIuNCAxLjIgNSAxLjIgNy42bDAgNC4xYzAgMTMuMy0xMC43IDI0LTI0IDI0bC04Mi43IDAtMjUuNi0xMjh6TTI1LjcgMjQwbDUyNC43IDBjLS40IDIuMS0xMy4zIDczLjQtMzguOSAyMTMuNy0zIDE2LjMtMTcuOSAyNy42LTM0LjQgMjYuMVM0NDggNDY0LjYgNDQ4IDQ0OGwwLTE2LTMyMCAwIDAgMTZjMCAxNi42LTEyLjYgMzAuNC0yOS4xIDMxLjlTNjcuNSA0NzAgNjQuNSA0NTMuN0MzOSAzMTMuMyAyNiAyNDIuMSAyNS43IDI0MHoiXX0sbGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTUwMSIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek00MzIgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sY2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXB1dGVyIixpY29uOls1NzYsNTEyLFtdLCJlNGU1IiwiTTM0OC44IDMyQzM0MC43IDQ2LjEgMzM2IDYyLjUgMzM2IDgwbDAgMTYtMjcyIDAgMCAyMjQgMjcyIDAgMCA2NC0yNzIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwyODQuOCAwek0zMzYgNDMyYzAgMTcuNSA0LjcgMzMuOSAxMi44IDQ4TDEyMCA0ODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjE2IDB6TTQzMiAzMmw5NiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTM1MmMwLTI2LjUgMjEuNS00OCA0OC00OHptMjQgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem01NiAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sQmNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndhbmQtbWFnaWMiLGljb246WzUxMiw1MTIsWyJtYWdpYyJdLCJmMGQwIiwiTTM5OC41IDEyLjJsLTg4LjIgODguMiAxMDEuMyAxMDEuMyA4OC4yLTg4LjJDNTA3LjYgMTA1LjYgNTEyIDk1IDUxMiA4NHMtNC40LTIxLjYtMTIuMi0yOS41TDQ1Ny41IDEyLjJDNDQ5LjYgNC40IDQzOSAwIDQyOCAwcy0yMS42IDQuNC0yOS41IDEyLjJ6TTI3Ni40IDEzNC4zTDEyLjIgMzk4LjVDNC40IDQwNi40IDAgNDE3IDAgNDI4czQuNCAyMS42IDEyLjIgMjkuNWw0Mi4zIDQyLjNDNjIuNCA1MDcuNiA3MyA1MTIgODQgNTEyczIxLjYtNC40IDI5LjUtMTIuMkwzNzcuNyAyMzUuNiAyNzYuNCAxMzQuM3oiXX0sZGt0PUJjZSx1a3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJhaW4iLGljb246WzUxMiw1MTIsWzEyOTUwNF0sImY1ZGMiLCJNMTIwIDU2YzAtMzAuOSAyNS4xLTU2IDU2LTU2bDI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTI5LjggMC01NC45LTIwLjQtNjItNDgtLjcgMC0xLjMgMC0yIDAtNDQuMiAwLTgwLTM1LjgtODAtODAgMC0xOCA2LTM0LjYgMTYtNDgtMTkuNC0xNC42LTMyLTM3LjgtMzItNjQgMC0zMC45IDE3LjYtNTcuOCA0My4yLTcxLjEtNy4xLTEyLTExLjItMjYtMTEuMi00MC45IDAtNDQuMiAzNS44LTgwIDgwLTgwbDAtMjR6bTI3MiAwbDAgMjRjNDQuMiAwIDgwIDM1LjggODAgODAgMCAxNS00LjEgMjktMTEuMiA0MC45IDI1LjcgMTMuMyA0My4yIDQwLjEgNDMuMiA3MS4xIDAgMjYuMi0xMi42IDQ5LjQtMzIgNjQgMTAgMTMuNCAxNiAzMCAxNiA0OCAwIDQ0LjItMzUuOCA4MC04MCA4MC0uNyAwLTEuMyAwLTIgMC03LjEgMjcuNi0zMi4yIDQ4LTYyIDQ4bC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyNCAwYzMwLjkgMCA1NiAyNS4xIDU2IDU2eiJdfSxwa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZWZjYXNlLW1lZGljYWwiLGljb246WzUxMiw1MTIsW10sImY0NjkiLCJNMjAwIDQ4bDExMiAwYzQuNCAwIDggMy42IDggOGwwIDQwLTEyOCAwIDAtNDBjMC00LjQgMy42LTggOC04em0tNTYgOGwwIDQwLTgwIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04MCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjAwIDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2em04MCAxNjBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LGhrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTUxMiIsIk0zMDkuOCA4LjZjLTEyLjMtMTEuNC0zMS4zLTExLjQtNDMuNSAwbC0yMjQgMjA4Yy05LjYgOS0xMi44IDIyLjktOCAzNS4xUzUwLjggMjcyIDY0IDI3MmwxNiAwIDAgMTc2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5NiAwYy0yMS4yLTI5LjUtMzQuMy02NS4zLTM1LjktMTA0TDI3MiA0MDhjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgMjAgMGMzNC45LTQ4LjUgOTEuNy04MCAxNTYtODAgMTAuNyAwIDIxLjEgLjkgMzEuMyAyLjVMMzA5LjggOC42ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sZmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtY29tbWl0IixpY29uOls1NzYsNTEyLFtdLCJmMzg2IiwiTTI4OCAzMzZhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6bTE1Ni44LTQ4QzQzMCAzNjEgMzY1LjQgNDE2IDI4OCA0MTZTMTQ2IDM2MSAxMzEuMiAyODhMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk5LjIgMEMxNDYgMTUxIDIxMC42IDk2IDI4OCA5NnMxNDIgNTUgMTU2LjggMTI4bDk5LjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTkuMiAweiJdfSxta3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWJyZWFzdGZlZWRpbmciLGljb246WzQ0OCw1MTIsW10sImU1M2EiLCJNMjI0IDBhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTQzNi44IDM4Mi44TDM3My41IDQ2MmMtMTYuNiAyMC43LTQ2LjggMjQuMS02Ny41IDcuNS0xNy42LTE0LjEtMjIuNy0zOC4xLTEzLjUtNTcuN2wtLjctLjFjLTM4LjktNS42LTc0LjMtMjUuMS05OS43LTU0LjhsMC0zNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDhjMCAuOCAwIDEuNiAuMSAyLjRsMTAxLjQgNTAuN2MyMy43IDExLjkgMzMuMyA0MC43IDIxLjUgNjQuNHMtNDAuNyAzMy4zLTY0LjQgMjEuNUwyNy4yIDQyNy4zYy0xLjEtLjUtMi4yLTEuMS0zLjMtMS43LTQuOS0yLjgtOS4yLTYuNC0xMi42LTEwLjYtNC42LTUuNC03LjgtMTEuNy05LjYtMTguNC0zLjMtMTItMS45LTI1LjIgNC44LTM2LjYgLjYtMS4xIDEuMy0yLjIgMi0zLjJMNzUuNiAyNTYuMWMyNi43LTQwLjEgNzEuNy02NC4xIDExOS44LTY0LjFsNzUuMiAwYzQ2LjUgMCA5MC4xIDIyLjUgMTE3LjIgNjAuM2w1MC43IDcwLjljMi4yIDMgNCA2LjEgNS41IDkuNCAyLjkgNi43IDQuMyAxMy44IDQgMjAuOC0uMyAxMC42LTQuMiAyMS0xMS4yIDI5LjR6TTMyMCAzMzJhNDQgNDQgMCAxIDAgLTg4IDAgNDQgNDQgMCAxIDAgODggMHoiXX0sZ2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1yYXlzIixpY29uOls1MTIsNTEyLFtdLCJlNTRkIiwiTTMxMi41IDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdsNDYuMyA2Mi40YzEwLjUgMTQuMiAzMC42IDE3LjIgNDQuOCA2LjZzMTcuMi0zMC42IDYuNi00NC44bC03MC41LTk1QzMzOC41IDEzMiAyOTguOCAxMTIgMjU2LjUgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZsNDYuMy02Mi40IDAgMjc1LjNjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNzUuM3pNNy41IDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDgwIDgwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MS41IDdDMzIuMS0yLjMgMTYuOS0yLjMgNy41IDd6bTQ2NCAwbC04MCA4MGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDgwLTgwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDB6TTcuNSA1MDVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtODAgODBjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45em00NjQgMGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTgwLTgwYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDgwIDgweiJdfSxia3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFuYXQtc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTFkNSIsIk0xOTIgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDEuNUM3My4zIDEwOS4zIDAgMTkwLjEgMCAyODhMMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTYyLjUgNDQuOC0xMTQuNSAxMDQtMTI1LjhMMTY4IDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjkzLjhjNTkuMiAxMS4yIDEwNCA2My4zIDEwNCAxMjUuOGwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOTcuOS03My4zLTE3OC43LTE2OC0xOTAuNUwyMTYgNTZjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LEhjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb3J0IixpY29uOlszODQsNTEyLFsidW5zb3J0ZWQiXSwiZjBkYyIsIk0yLjQgMjA0LjJjNSAxMiAxNi42IDE5LjggMjkuNiAxOS44bDMyMCAwYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXptMCAxMDMuNWMtNSAxMi0yLjIgMjUuNyA2LjkgMzQuOWwxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzY0LjkgMjg4IDM1MiAyODhMMzIgMjg4Yy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44eiJdfSx2a3Q9SGNlLHFjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtcmFkaWF0aW9uIixpY29uOls1MTIsNTEyLFs5NzYyLCJyYWRpYXRpb24tYWx0Il0sImY3YmEiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptODAgMGw2NC4zIDBjOC43IDAgMTUuNy03LjEgMTcuMy0xNS42IDQuNC0yNC40IDE4LjEtNDUuNSAzNy4yLTU5LjcgNy40LTUuNSAxMC42LTE1LjYgNi0yMy42bC0zMi41LTU2LjNjLTQuMy03LjUtMTMuOS0xMC4zLTIxLjItNS41LTQ4LjIgMzEuNS04MS4zIDg0LjItODYuMyAxNDQuOC0uNyA4LjggNi41IDE2IDE1LjMgMTZ6bTEzNy45IDg5LjhjLTguNS0zLjctMTguOC0xLjQtMjMuNSA2LjZsLTMxIDUzLjhjLTQuMyA3LjUtMS45IDE3LjIgNS44IDIxLjEgMjYuMSAxMy4yIDU1LjUgMjAuNyA4Ni44IDIwLjdzNjAuNy03LjUgODYuOC0yMC43YzcuNy0zLjkgMTAuMS0xMy42IDUuOC0yMS4xbC0zMS01My44Yy00LjYtOC0xNS0xMC4zLTIzLjUtNi42LTExLjcgNS0yNC41IDcuOC0zOC4xIDcuOHMtMjYuNC0yLjgtMzguMS03Ljh6TTM1MC40IDI0MC40YzEuNiA4LjYgOC41IDE1LjYgMTcuMyAxNS42bDY0LjMgMGM4LjggMCAxNi4xLTcuMiAxNS4zLTE2LTUtNjAuNi0zOC4xLTExMy4yLTg2LjMtMTQ0LjgtNy4zLTQuOC0xNi44LTItMjEuMiA1LjVMMzA3LjMgMTU3Yy00LjYgOC0xLjQgMTguMSA2IDIzLjYgMTkuMSAxNC4yIDMyLjcgMzUuNCAzNy4yIDU5Ljd6TTI1NiAzMDUuN2E0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6Il19LHhrdD1xY2UseWt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcC1jb2RlIixpY29uOls2NDAsNTEyLFtdLCJmNWZjIiwiTTY0IDk2YzAtMzUuMyAyOC43LTY0IDY0LTY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwLTY0IDAgMC0yNDAtMzg0IDAgMCAyNDAtNjQgMCAwLTI0MHpNMCA0MDMuMkMwIDM5Mi42IDguNiAzODQgMTkuMiAzODRsNjAxLjYgMGMxMC42IDAgMTkuMiA4LjYgMTkuMiAxOS4yIDAgNDIuNC0zNC40IDc2LjgtNzYuOCA3Ni44TDc2LjggNDgwQzM0LjQgNDgwIDAgNDQ1LjYgMCA0MDMuMnpNMjgxIDIwOWwtMzEgMzEgMzEgMzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDgtNDhjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDQ4LTQ4YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXpNMzkzIDE3NWw0OCA0OGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNDggNDhjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMHoiXX0sd2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNpbmsiLGljb246WzUxMiw1MTIsW10sImUwNmQiLCJNMjg4IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzIgMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMTkyLTY0IDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NmwtNDggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzQuNCAwIDggMy42IDggOGwwIDQwLTgwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMCA2NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC02NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtODAgMCAwLTQwYzAtNC40IDMuNi04IDgtOGw1NiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC01NiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDQwLTY0IDAgMC0xOTJ6Il19LE1rdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1mcm9tLXdhdGVyLXB1bXAiLGljb246WzY0MCw1MTIsW10sImU0YjYiLCJNMTQ0IDMyYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE3Ni0xNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDc5LjZjMTcuNi0yIDM2IDIuNSA1MS4zIDE0IDMuNCAyLjYgNi4xIDEuNCA5LjgtLjNsLjgtLjRjNS43LTIuNiAxMi45LTYuOSAyMS43LTEzLjUgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi4zLTMxLjQgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCA2LjkgNS4yIDEyLjggOSAxOCAxMS43IC42IC4zIDEuMiAuNiAxLjggMSA0LjIgMi4zIDguNSA0LjYgMTIuNiAxLjUgMTAuNy04LjEgMjIuOS0xMi43IDM1LjMtMTQuMWwwLTc5LjVjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTU2IDAgMC0xNDIuMSA0NyA0N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMNDk3IDM5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtODggODhjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0Ny00NyAwIDE0Mi4xLTEzNiAwIDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDE0NCAzMnpNNDc0LjYgNDc2LjFjMTkgMTQuNCA0MS45IDI4LjIgNjcuMiAzMy4zIDI2LjUgNS40IDU0LjMgLjggODAuNy0xOS4xIDEwLjYtOCAxMi43LTIzIDQuNy0zMy42cy0yMy0xMi43LTMzLjYtNC43Yy0xNC45IDExLjItMjguNiAxMy4xLTQyLjMgMTAuMy0xNC45LTMtMzAuOS0xMS45LTQ3LjgtMjQuNi0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjQgMTguMS00MC43IDI2LjMtNTQuNSAyNi4zcy0zMC41LTguMi01NC41LTI2LjNjLTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yMS42IDE2LjMtNDEuMyAyNS44LTU4LjkgMjUuNy05LjYtLjEtMTkuOS0zLTMxLjItMTEuNS0xMC42LTgtMjUuNi01LjktMzMuNiA0LjdTNyA0ODIuMyAxNy42IDQ5MC4zYzE5LjEgMTQuNCAzOS40IDIxIDU5LjggMjEuMSAzMy45IC4yIDY0LjMtMTcuNCA4OC4xLTM1LjMgMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDAgMjQuMiAxOC4zIDUyLjMgMzUuOSA4My40IDM1LjlzNTkuMS0xNy43IDgzLjQtMzUuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMHoiXX0samNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1pY3JvcGhvbmUtbGluZXMtc2xhc2giLGljb246WzU3Niw1MTIsWyJtaWNyb3Bob25lLWFsdC1zbGFzaCJdLCJmNTM5IiwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxNTEgMTUxIDAtMzAuMmMwLTUzIDQzLTk2IDk2LTk2IDUwLjMgMCA5MS42IDM4LjcgOTUuNyA4OEwzMjggODhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTYgMCAwIDQ4LTU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNTUuNyAwYy0xLjkgMjIuOS0xMS44IDQzLjQtMjYuOSA1OWwzMy45IDMzLjljMjUuNS0yNiA0MS4zLTYxLjYgNDEuMy0xMDAuOWwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDUyLjYtMjEuMSAxMDAuMi01NS4zIDEzNC44TDU2OSA1MDMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgOS4xQy0yLjMtLjMtMi4zLTE1LjUgNy0yNC45ek0yOTcuOCAzNjcuN2w0MS40IDQxLjRjLTguOCAyLjQtMTcuOSA0LjMtMjcuMyA1LjRsMCA0OS41IDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDAgMC00OS41QzE2OS4zIDQwMi43IDk2IDMyMS45IDk2IDIyNGwwLTQwYzAtNS4xIDEuNi05LjkgNC40LTEzLjhsNDMuNiA0My42IDAgMTAuMmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NCAzLjMgMCA2LjYtLjEgOS44LS4zeiJdfSxra3Q9amNlLFNrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZXJ2ZXIiLGljb246WzQ0OCw1MTIsW10sImYyMzMiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTIxNiA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTU2IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OHptMjE2IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNTYgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sZ0Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlciIsaWNvbjpbNDQ4LDUxMixbMTI4MTAwLDYyMTQ0LDYyNDcwLCJ1c2VyLWFsdCIsInVzZXItbGFyZ2UiXSwiZjAwNyIsIk0yMjQgMjQ4YTEyMCAxMjAgMCAxIDAgMC0yNDAgMTIwIDEyMCAwIDEgMCAwIDI0MHptLTI5LjcgNTZDOTUuOCAzMDQgMTYgMzgzLjggMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTk4LjUtNzkuOC0xNzguMy0xNzguMy0xNzguM2wtNTkuNCAweiJdfSx6a3Q9Z0QsQ2t0PWdELFRrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzbm93Zmxha2UiLGljb246WzUxMiw1MTIsWzEwMDUyLDEwMDU0XSwiZjJkYyIsIk0yODguMiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNjIuMS0xNS0xNWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw0OSA0OSAwIDcwLjYtNjEuMi0zNS4zLTE3LjktNjYuOWMtMy40LTEyLjgtMTYuNi0yMC40LTI5LjQtMTdTOTUuMyA5OCA5OC43IDExMC44bDUuNSAyMC41LTUzLjctMzFDMzUuMiA5MS41IDE1LjYgOTYuNyA2LjggMTEycy0zLjYgMzQuOSAxMS43IDQzLjdsNTMuNyAzMS0yMC41IDUuNWMtMTIuOCAzLjQtMjAuNCAxNi42LTE3IDI5LjRzMTYuNiAyMC40IDI5LjQgMTdsNjYuOS0xNy45IDYxLjIgMzUuMy02MS4yIDM1LjMtNjYuOS0xNy45Yy0xMi44LTMuNC0yNiA0LjItMjkuNCAxN3M0LjIgMjYgMTcgMjkuNGwyMC41IDUuNS01My43IDMxQzMuMiAzNjUuMS0yIDM4NC43IDYuOCA0MDBzMjguNCAyMC42IDQzLjcgMTEuN2w1My43LTMxLTUuNSAyMC41Yy0zLjQgMTIuOCA0LjIgMjYgMTcgMjkuNHMyNi00LjIgMjkuNC0xN2wxNy45LTY2LjkgNjEuMi0zNS4zIDAgNzAuNi00OSA0OWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDE1LTE1IDAgNjIuMWMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjIuMSAxNSAxNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ5LTQ5IDAtNzAuNiA2MS4yIDM1LjMgMTcuOSA2Ni45YzMuNCAxMi44IDE2LjYgMjAuNCAyOS40IDE3czIwLjQtMTYuNiAxNy0yOS40bC01LjUtMjAuNSA1My43IDMxYzE1LjMgOC44IDM0LjkgMy42IDQzLjctMTEuN3MzLjYtMzQuOS0xMS43LTQzLjdsLTUzLjctMzEgMjAuNS01LjVjMTIuOC0zLjQgMjAuNC0xNi42IDE3LTI5LjRzLTE2LjYtMjAuNC0yOS40LTE3bC02Ni45IDE3LjktNjEuMi0zNS4zIDYxLjItMzUuMyA2Ni45IDE3LjljMTIuOCAzLjQgMjYtNC4yIDI5LjQtMTdzLTQuMi0yNi0xNy0yOS40bC0yMC41LTUuNSA1My43LTMxYzE1LjMtOC44IDIwLjYtMjguNCAxMS43LTQzLjdzLTI4LjQtMjAuNS00My43LTExLjdsLTUzLjcgMzEgNS41LTIwLjVjMy40LTEyLjgtNC4yLTI2LTE3LTI5LjRzLTI2IDQuMi0yOS40IDE3bC0xNy45IDY2LjktNjEuMiAzNS4zIDAtNzAuNiA0OS00OWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0xNSAxNSAwLTYyLjF6Il19LF9rdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YXVydXMiLGljb246WzM4NCw1MTIsW10sImU4NGYiLCJNMzM2LTE2YzE3LjcgMCAzMiAxNC4zIDMyIDMyIDAgNTguNS0yOC42IDExMC4zLTcyLjUgMTQyLjMgNTMuMiAzNC4xIDg4LjUgOTMuOCA4OC41IDE2MS43IDAgMTA2LTg2IDE5Mi0xOTIgMTkyUzAgNDI2IDAgMzIwQzAgMjUyLjEgMzUuMyAxOTIuNCA4OC41IDE1OC4zIDQ0LjYgMTI2LjMgMTYgNzQuNSAxNiAxNiAxNi0xLjcgMzAuMy0xNiA0OC0xNlM4MC0xLjcgODAgMTZjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJTMzA0IDc3LjkgMzA0IDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xOTIgMTkyYTEyOCAxMjggMCAxIDAgMCAyNTYgMTI4IDEyOCAwIDEgMCAwLTI1NnoiXX0sTGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNrdWxsLWNyb3NzYm9uZXMiLGljb246WzQ0OCw1MTIsWzEyODM2OSw5NzYwXSwiZjcxNCIsIk0zODQgMTQ0QzM4NCA2NC41IDMxMi40IDAgMjI0IDBTNjQgNjQuNSA2NCAxNDRjMCA0Ny4xIDI1LjEgODguOSA2NCAxMTUuMmwwIDI4LjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yOC44YzM4LjktMjYuMyA2NC02OC4xIDY0LTExNS4yek0xNjAgMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ1LjUgMzM5LjdjLTYuOC0xNi4zLTI1LjUtMjQtNDEuOC0xNy4yTDIyNCAzOTcuMyA0NC4zIDMyMi41Yy0xNi4zLTYuOC0zNSAuOS00MS44IDE3LjJzLjkgMzUgMTcuMiA0MS44TDE0MC44IDQzMiAxOS43IDQ4Mi41QzMuNCA0ODkuMy00LjMgNTA4IDIuNSA1MjQuM3MyNS41IDI0IDQxLjggMTcuMkwyMjQgNDY2LjcgNDAzLjcgNTQxLjVjMTYuMyA2LjggMzUtLjkgNDEuOC0xNy4ycy0uOS0zNS0xNy4yLTQxLjhMMzA3LjIgNDMyIDQyOC4zIDM4MS41YzE2LjMtNi44IDI0LTI1LjUgMTcuMi00MS44eiJdfSxBa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVzby1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMjIyIiwiTTExMiAzMkM5NC4zIDMyIDgwIDQ2LjMgODAgNjRsMCA2NC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAzMi0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjNjUuNiAwIDEyMi0zOS41IDE0Ni43LTk2bDM3LjMgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMjQuOCAwYy41LTUuMyAuOC0xMC42IC44LTE2cy0uMy0xMC43LS44LTE2bDI0LjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzcuMyAwQzM2MiA3MS41IDMwNS42IDMyIDI0MCAzMkwxMTIgMzJ6bTE5OS42IDk2bC0xNjcuNiAwIDAtMzIgOTYgMGMyOC40IDAgNTQgMTIuNCA3MS42IDMyek0xNDQgMTc2bDE5MC43IDBjLjkgNS4yIDEuMyAxMC41IDEuMyAxNnMtLjUgMTAuOC0xLjMgMTZsLTE5MC43IDAgMC0zMnptMTY3LjYgODBjLTE3LjYgMTkuNi00My4xIDMyLTcxLjYgMzJsLTk2IDAgMC0zMiAxNjcuNiAweiJdfSxEa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZS1nbGFzcyIsaWNvbjpbMzIwLDUxMixbMTI3ODYzXSwiZjRlMyIsIk0zMi42IDI1LjdDMzUuNiAxMC44IDQ4LjcgMCA2NCAwTDI1NiAwYzE1LjMgMCAyOC40IDEwLjggMzEuNCAyNS43TDMxNi44IDE3M2MyLjEgMTAuNSAzLjIgMjEuMiAzLjIgMzJsMCAzYzAgNzcuNC01NSAxNDItMTI4IDE1Ni44bDAgMTE1LjIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTExNS4yQzU1IDM1MCAwIDI4NS40IDAgMjA4bDAtM2MwLTEwLjcgMS4xLTIxLjQgMy4yLTMyTDMyLjYgMjUuN3pNNzcuNCAxMjhsMTY1LjEgMC0xMi44LTY0LTEzOS41IDAtMTIuOCA2NHoiXX0sRmc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVtcGVyYXR1cmUtaGFsZiIsaWNvbjpbMzIwLDUxMixbMTI3Nzc3LCJ0ZW1wZXJhdHVyZS0yIiwidGhlcm1vbWV0ZXItMiIsInRoZXJtb21ldGVyLWhhbGYiXSwiZjJjOSIsIk0xNjAgMEMxMDcgMCA2NCA0MyA2NCA5NmwwIDE2NC43QzM0LjUgMjg3IDE2IDMyNS40IDE2IDM2OCAxNiA0NDcuNSA4MC41IDUxMiAxNjAgNTEyczE0NC02NC41IDE0NC0xNDRjMC00Mi42LTE4LjUtODEtNDgtMTA3LjNMMjU2IDk2YzAtNTMtNDMtOTYtOTYtOTZ6bTY0IDM2OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTI2LjkgMTYuNS00OS45IDQwLTU5LjNsMC05Mi43YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA5Mi43YzIzLjUgOS41IDQwIDMyLjUgNDAgNTkuM3oiXX0sRWt0PUZnLCRrdD1GZyxJa3Q9RmcsUGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRpY2tldCIsaWNvbjpbNTc2LDUxMixbMTI3OTAzXSwiZjE0NSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOGwwIDY0QzAgMjAwLjggNy40IDIwNy43IDE1LjcgMjEwLjYgMzQuNSAyMTcuMSA0OCAyMzUgNDggMjU2cy0xMy41IDM4LjktMzIuMyA0NS40QzcuNCAzMDQuMyAwIDMxMS4yIDAgMzIwbDAgNjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC02NGMwLTguOC03LjQtMTUuNy0xNS43LTE4LjYtMTguOC02LjUtMzIuMy0yNC40LTMyLjMtNDUuNHMxMy41LTM4LjkgMzIuMy00NS40YzguMy0yLjkgMTUuNy05LjggMTUuNy0xOC42bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6TTQxNiAzMzZsMC0xNjAtMjU2IDAgMCAxNjAgMjU2IDB6TTExMiAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOTJjMCAxNy43LTE0LjMgMzItMzIgMzJsLTI4OCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MnoiXX0sTmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndoZWF0LWF3bi1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1OTgiLCJNNDk2IDU3NmExNDQgMTQ0IDAgMSAxIDAtMjg4IDE0NCAxNDQgMCAxIDEgMCAyODh6TTgxIDUyOWMtOS40IDkuMy0yNC41IDkuMy0zMy45IDAtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMODEgNTI5em0zMC4yLTI5NC40YzYuMi00LjEgMTQuNy0zLjQgMjAuMSAyLjFsNDYuMSA0Ni4xIDYuMSA2LjdjMTkuNyAyMy44IDI2LjMgNTUgMTkuMyA4My45IDMxLjctNy43IDY2LjIgMSA5MC42IDI1LjNsMTIgMTJjLS44IDctMS4yIDE0LjItMS4yIDIxLjQgMCAyMCAzIDM5LjMgOC43IDU3LjQtMzYuOCAyMS44LTg1IDE3LTExNi42LTE0LjdMMTY1LjYgNDQ0LjMgODEgNTI5QzY5LjcgNTE3LjcgNTguNCA1MDYuMyA0NyA0OTVsODQuNy04NC43LTMwLjUtMzAuNWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS43bDcuNC03LjQgMi41LTIuMXpNNDk2IDQ3NmEyMCAyMCAwIDEgMCAwIDQwIDIwIDIwIDAgMSAwIDAtNDB6bTAtMTQwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTYgOC44IDAgMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2ek0yMTUuMiAxMzAuNmM2LjItNC4xIDE0LjctMy40IDIwLjEgMi4xbDQ2LjEgNDYuMSA2LjEgNi43YzE5LjcgMjMuOCAyNi4zIDU1IDE5LjMgODMuOSAyNC4yLTUuOSA1MC4xLTIuMSA3MS45IDEwLjgtMzIuMiAyNC45LTU2LjIgNTkuOC02Ny40IDEwMC4xLTMuOC0yLjgtNy41LTYtMTEtOS41bC05NC45LTk0LjljLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuN2w3LjQtNy40IDIuNS0yLjF6TTUyNi43IDE1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwIDguOCA4LjggOS4zIDIyLjcgMS43IDMyLjFMNTYwLjYgNDkgNDQ2LjIgMTYzLjRjNy43IDEgMTUuMyAzIDIyLjUgNS45TDUyNyAxMTFjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFsLTEuNyAxLjgtNTIuNyA1Mi43IDM5IDM5YzMuMiAzLjIgNC43IDcuNCA0LjcgMTEuNi0xNy43LTUuNC0zNi41LTguMy01NS45LTguMy0zNC4yIDAtNjYuMyA4LjktOTQuMSAyNC42bC05Mi43LTkyLjdjLTM3LjUtMzcuNS0zNy41LTk4LjMgMC0xMzUuOGw3LjQtNy40IDIuNS0yLjFjNi4yLTQuMSAxNC43LTMuNCAyMC4xIDIuMWwzOSAzOSA1Mi43LTUyLjdjOS40LTkuNCAyNC42LTkuNCAzNCAwIDguOCA4LjggOS4zIDIyLjcgMS42IDMyLjFMNDY1IDQ5IDQwNi43IDEwNy4zYzIuOCA3LjEgNC43IDE0LjUgNS44IDIyLjFMNTI2LjcgMTV6Il19LEZrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtdHVybi1yaWdodCIsaWNvbjpbNDQ4LDUxMixbXSwiZTRjMCIsIk0zMTMuNC02LjZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wzMzguNyAxMjggMTI4IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDI0MS43IDAgMjI0bDAtMzJDMCAxMjEuMyA1Ny4zIDY0IDEyOCA2NGwyMTAuNyAwLTI1LjQtMjUuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjN6bS05NiAyNTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDIuNyAzODQgOTYgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhsMC0zMmMwLTUzIDQzLTk2IDk2LTk2bDE0Ni43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3oiXX0sT2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbmR5LWNhbmUiLGljb246WzQ0OCw1MTIsW10sImY3ODYiLCJNNDIxLjggMzkuNkM0NTIgODUuMiA0NTYuNSAxNDIuOSA0MzUuMSAxOTJsLTE2NS40IDAgNDEuNC00MS40Yy44LS44IDEuNS0xLjYgMi4yLTIuNEw0MjEuOCAzOS42ek0yNjggMTAyLjljLS44IC43LTEuNiAxLjQtMi40IDIuMmwtMjguMSAyOC4xYy0yNSAyNS02NS41IDI1LTkwLjUgMHMtMjUtNjUuNSAwLTkwLjVMMTc1IDE0LjZDMjI5LjktNDAuMiAzMTQuNS00Ni43IDM3Ni41LTUuNkwyNjggMTAyLjl6TTEyNS43IDMzNmw4MC04MCAxODEgMC04Mi41IDgyLjUgMC0yLjUtMTc4LjUgMHptMTE3IDY0TDE0MS40IDUwMS4zYy0yNSAyNS02NS41IDI1LTkwLjUgMHMtMjUtNjUuNSAwLTkwLjVsMTAuNy0xMC43IDE4MSAweiJdfSxSa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2hlZWxjaGFpciIsaWNvbjpbNTEyLDUxMixbXSwiZjE5MyIsIk0xMzYgNDBhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMTcuOSAxOTcuNmwxMi42IDYzYy0zOC42IDEyLjQtNjYuNSA0OC43LTY2LjUgOTEuNCAwIDUzIDQzIDk2IDk2IDk2IDM1LjYgMCA2Ni43LTE5LjQgODMuMy00OC4yIDIuMyAuMSA0LjYgLjIgNyAuMmw0LjEgMGMxIDAgMi4xIDAgMy4xIDBsNTUuMiAwYy0yMC40IDY0LjktODEgMTEyLTE1Mi43IDExMi04OC40IDAtMTYwLTcxLjYtMTYwLTE2MCAwLTczLjggNTAtMTM1LjkgMTE3LjktMTU0LjR6bTE0OC42LTI4LjFsMjMuNyAxMTguNSA2MC41IDBjMzMuMyAwIDYzLjIgMjAuNyA3NC45IDUxLjlsMjUuNSA2OCAxOC43LTYuMmMxNi44LTUuNiAzNC45IDMuNSA0MC41IDIwLjJzLTMuNSAzNC45LTIwLjIgNDAuNWwtNDggMTZjLTE2LjMgNS40LTM0LTMtNDAuMS0xOS4xbC0zNi4zLTk2LjljLTIuMy02LjItOC4zLTEwLjQtMTUtMTAuNGwtODYuMSAwYy0uNCAwLS44IDAtMS4zIDBsLTEzLjEgMGMtMzAuNSAwLTU2LjgtMjEuNS02Mi44LTUxLjRMMTY1LjMgMTg5LjdjLTYuNC0zMS45IDE4LTYxLjcgNTAuNi02MS43IDI0LjYgMCA0NS44IDE3LjQgNTAuNiA0MS41eiJdfSxCa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3BlbGwtY2hlY2siLGljb246WzU3Niw1MTIsW10sImY4OTEiLCJNMTIwIDMyYy00OC42IDAtODggMzkuNC04OCA4OGwwIDE2OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjQgNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjhjMC00OC42LTM5LjQtODgtODgtODhsLTE2IDB6bTQwIDEyOGwtNjQgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCA0MHpNMzA0IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmw3MiAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4IDAtMjMuNi05LjMtNDUtMjQuNC02MC44IDEwLjMtMTQuNCAxNi40LTMyLjEgMTYuNC01MS4yIDAtNDguNi0zOS40LTg4LTg4LTg4bC02NCAwem02NCAxMTJsLTMyIDAgMC00OCAzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0ek0zMzYgMjU2bDAtNDggNDAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMHptMjMzIDg0YzExLTEzLjggOC44LTMzLjktNS00NXMtMzMuOS04LjgtNDUgNWwtMTA1LjcgMTMyLjEtMzguNy0zOC43Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM2LjQgNi40IDE1LjMgOS44IDI0LjQgOS4zczE3LjUtNC45IDIzLjItMTJMNTY5IDM0MHoiXX0sSGt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZS1vZmYiLGljb246WzMyMCw1MTIsW10sImYwMjYiLCJNOTYgMzUybC00OCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDQ4IDAgMTM0LjEtMTE5LjJjNi40LTUuNyAxNC42LTguOCAyMy4xLTguOCAxOS4yIDAgMzQuOCAxNS42IDM0LjggMzQuOGwwIDM3OC40YzAgMTkuMi0xNS42IDM0LjgtMzQuOCAzNC44LTguNSAwLTE2LjctMy4xLTIzLjEtOC44TDk2IDM1MnoiXX0scWt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imx1bmdzIixpY29uOls1NzYsNTEyLFsxMjk3MjldLCJmNjA0IiwiTTMyMCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0MS45LTMyIDE5LjIgMC0xMTYuN2MwLTI0LjUtMTkuOS00NC40LTQ0LjQtNDQuNC0xMi41IDAtMjQuNCA1LjMtMzIuOCAxNC41bC0yNi40IDI5QzQyLjkgMTYwLjggMCAyNzEuOCAwIDM4N2wwIDMwLjVjMCA1Mi4yIDQyLjMgOTQuNSA5NC41IDk0LjUgMjIgMCA0My43LTUuMSA2My40LTE1bDUtMi41YzM3LjQtMTguNyA2MS01Ni45IDYxLTk4LjhsMC0xMjggNjQtMzguNCA2NCAzOC40IDAgMTI4YzAgNDEuOCAyMy42IDgwLjEgNjEgOTguOGw1IDIuNWMxOS43IDkuOCA0MS40IDE1IDYzLjQgMTUgNTIuMiAwIDk0LjUtNDIuMyA5NC41LTk0LjVsMC02LjJjMC0xMTEuMS0zNi43LTIxOS0xMDQuNC0zMDdMNDI4LjkgNDguN2MtOC4xLTEwLjYtMjAuNy0xNi43LTM0LTE2LjctMjMuNyAwLTQyLjkgMTkuMi00Mi45IDQyLjlsMCAxMTguMi0zMi0xOS4yIDAtMTQxLjl6Il19LGprdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rbWFyayIsaWNvbjpbMzg0LDUxMixbMTI4Mjc4LDYxNTkxXSwiZjAyZSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ4MGMwIDExLjUgNi4yIDIyLjIgMTYuMiAyNy44czIyLjMgNS41IDMyLjItLjRMMTkyIDQyMS4zIDMzNS41IDUwNy40YzkuOSA1LjkgMjIuMiA2LjEgMzIuMiAuNFMzODQgNDkxLjUgMzg0IDQ4MGwwLTQxNmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAweiJdfSxWa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFyY29kZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjAyYSIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJMNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6bTg4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTcyIDMybDAgMzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zODRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6bTIwOC04bDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bS05NiAwbDAgNDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LGJEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3Qtb2wiLGljb246WzUxMiw1MTIsWyJsaXN0LTEtMiIsImxpc3QtbnVtZXJpYyJdLCJmMGNiIiwiTTAgNzJDMCA1OC44IDEwLjcgNDggMjQgNDhsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDEwNCAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC05NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC04MC0yNCAwQzEwLjcgOTYgMCA4NS4zIDAgNzJ6TTMwLjQgMzAxLjJDNDEuOCAyOTIuNiA1NS43IDI4OCA3MCAyODhsNC45IDBjMzMuNyAwIDYxLjEgMjcuNCA2MS4xIDYxLjEgMCAxOS42LTkuNCAzNy45LTI1LjIgNDkuNGwtMjQgMTcuNSAzMy4yIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTkwLjcgMEMxMy4xIDQ2NCAwIDQ1MC45IDAgNDM0LjcgMCA0MjUuMyA0LjUgNDE2LjUgMTIuMSA0MTFsNzAuNS01MS4zYzMuNC0yLjUgNS40LTYuNCA1LjQtMTAuNiAwLTcuMi01LjktMTMuMS0xMy4xLTEzLjFMNzAgMzM2Yy0zLjkgMC03LjcgMS4zLTEwLjggMy42TDM4LjQgMzU1LjJjLTEwLjYgOC0yNS42IDUuOC0zMy42LTQuOFMtMSAzMjQuOCA5LjYgMzE2LjhsMjAuOC0xNS42ek0yMjQgNjRsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDE2MGwyNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTYwbDI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0sVWt0PWJELFdrdD1iRCxHa3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImU1YTEiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxODAgMGMtMjIuNy0zMS41LTM2LTcwLjItMzYtMTEyIDAtMTAwLjYgNzcuNC0xODMuMiAxNzYtMTkxLjNsMC0zOC4xYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek00MzIgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sWWt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImN1YmUiLGljb246WzUxMiw1MTIsW10sImYxYjIiLCJNMjI0LjMtMi41YzE5LjgtMTEuNCA0NC4yLTExLjQgNjQgMEw0NjQuMiA5OWMxOS44IDExLjQgMzIgMzIuNiAzMiA1NS40bDAgMjAzYzAgMjIuOS0xMi4yIDQ0LTMyIDU1LjRMMjg4LjMgNTE0LjVjLTE5LjggMTEuNC00NC4yIDExLjQtNjQgMEw0OC41IDQxM2MtMTkuOC0xMS40LTMyLTMyLjYtMzItNTUuNGwwLTIwM2MwLTIyLjkgMTIuMi00NCAzMi01NS40TDIyNC4zLTIuNXptMjA3LjggMzYwbDAtMTY2LjEtMTQzLjggODMgMCAxNjYuMSAxNDMuOC04M3oiXX0sWmt0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhcGUiLGljb246WzU3Niw1MTIsW10sImY0ZGIiLCJNNDEyLjggNDE2YzQxLjUtNDAuNyA2Ny4yLTk3LjMgNjcuMi0xNjAgMC0xMjMuNy0xMDAuMy0yMjQtMjI0LTIyNFMzMiAxMzIuMyAzMiAyNTYgMTMyLjMgNDgwIDI1NiA0ODBsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEzMS4yIDB6TTI1NiAxNjBhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTQ4IDk2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LFhrdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib21iIixpY29uOls1NzYsNTEyLFsxMjgxNjNdLCJmMWUyIiwiTTQ4MC0xNmM2LjkgMCAxMyA0LjQgMTUuMiAxMC45bDEzLjUgNDAuNCA0MC40IDEzLjVDNTU1LjYgNTEgNTYwIDU3LjEgNTYwIDY0cy00LjQgMTMtMTAuOSAxNS4ybC00MC40IDEzLjUtMTMuNSA0MC40QzQ5MyAxMzkuNiA0ODYuOSAxNDQgNDgwIDE0NHMtMTMtNC40LTE1LjItMTAuOWwtMTMuNS00MC40LTQwLjQtMTMuNUM0MDQuNCA3NyA0MDAgNzAuOSA0MDAgNjRzNC40LTEzIDEwLjktMTUuMmw0MC40LTEzLjUgMTMuNS00MC40QzQ2Ny0xMS42IDQ3My4xLTE2IDQ4MC0xNnpNMzIxLjQgOTcuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTAuOSAxMC45YzcuOSAyMiAxMi4yIDQ1LjcgMTIuMiA3MC41IDAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFMzMiA0MTguOSAzMiAzMDQgMTI1LjEgOTYgMjQwIDk2YzI0LjcgMCA0OC41IDQuMyA3MC41IDEyLjNsMTAuOS0xMC45ek0xNDQgMzA0YzAtNTMgNDMtOTYgOTYtOTYgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6Il19LFZjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2FsZS11bmJhbGFuY2VkIixpY29uOls2NDAsNTEyLFsiYmFsYW5jZS1zY2FsZS1sZWZ0Il0sImY1MTUiLCJNNTE5LjggNjIuNGMxNi44LTUuNiAyNS44LTIzLjcgMjAuMi00MC41UzUxNi4zLTMuOSA0OTkuNiAxLjZsLTExMyAzNy43Yy0xMy45LTIzLjUtMzkuNi0zOS4zLTY4LjktMzkuMy00NC4yIDAtODAgMzUuOC04MCA4MCAwIDMgLjIgNS45IC41IDguOEwxMTUuNiAxMjkuNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDEzNS41LTQ1LjJjNC41IDMuMiA5LjMgNS45IDE0LjQgOC4ybDAgMzI2LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMjk0LjdjMjEtOS4yIDM3LjItMjcgNDQuMi00OWwxMjUuOS00MnpNNDM3LjMgMjg4bDcyLjQtMTI0LjIgNzIuNCAxMjQuMi0xNDQuOSAwem03Mi40IDk2YzYyLjkgMCAxMTUuMi0zNCAxMjYtNzguOSAyLjYtMTEtMS0yMi4zLTYuNy0zMi4xTDUzMy44IDEwOS44Yy01LTguNi0xNC4yLTEzLjgtMjQuMS0xMy44cy0xOS4xIDUuMy0yNC4xIDEzLjhMMzkwLjQgMjczLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjEgMTAuOCA0NC44IDYzLjEgNzguOSAxMjYgNzguOXpNMTI2LjggMjkxLjhsNzIuNCAxMjQuMi0xNDQuOSAwIDcyLjQtMTI0LjJ6TS45IDQzMy4xQzExLjcgNDc4IDY0IDUxMiAxMjYuOCA1MTJzMTE1LjItMzQgMTI2LTc4LjljMi42LTExLTEtMjIuMy02LjctMzIuMUwxNTAuOSAyMzcuOGMtNS04LjYtMTQuMi0xMy44LTI0LjEtMTMuOHMtMTkuMSA1LjMtMjQuMSAxMy44TDcuNiA0MDEuMWMtNS43IDkuOC05LjMgMjEuMS02LjcgMzIuMXoiXX0sUWt0PVZjZSxVY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWNhcmV0LWxlZnQiLGljb246WzQ0OCw1MTIsWyJjYXJldC1zcXVhcmUtbGVmdCJdLCJmMTkxIiwiTTAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZ6TTEyOCAyNTZjMC02LjcgMi44LTEzIDcuNy0xNy42bDExMi0xMDRjNy02LjUgMTcuMi04LjIgMjUuOS00LjRTMjg4IDE0Mi41IDI4OCAxNTJsMCAyMDhjMCA5LjUtNS43IDE4LjItMTQuNCAyMnMtMTguOSAyLjEtMjUuOS00LjRsLTExMi0xMDRjLTQuOS00LjUtNy43LTEwLjktNy43LTE3LjZ6Il19LEprdD1VY2UsS2t0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyIixpY29uOls1NzYsNTEyLFsxMjgyMDddLCJmNTQ1IiwiTTIwOS4xIDUxNi4yYy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMEwyOC4xIDQwMy4xYy0xOC43LTE4LjctMTguNy00OS4xIDAtNjcuOWwxNy0xNyA3My41IDczLjVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03My41LTczLjUgMzMuOS0zMy45IDUwLjkgNTAuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTUwLjktNTAuOSAzMy45LTMzLjkgNzMuNSA3My41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNzMuNS03My41IDMzLjktMzMuOSA1MC45IDUwLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC01MC45LTUwLjkgMzMuOS0zMy45IDczLjUgNzMuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTczLjUtNzMuNSAxNy0xN2MxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMEw1NDguNSAxMDguOWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwyMDkuMSA1MTYuMnoiXX0sZVN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImkiLGljb246WzMyMCw1MTIsWzEwNV0sIjQ5IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nmw5NiAwIDAgMzIwLTk2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjU2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDAgMC0zMjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAzMnoiXX0sdkQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lLXhtYXJrIixpY29uOls1NzYsNTEyLFsidm9sdW1lLW11dGUiLCJ2b2x1bWUtdGltZXMiXSwiZjZhOSIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNMzY3IDE3NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNDcgNDctNDcgNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0Ny00NyA0NyA0N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ3LTQ3IDQ3LTQ3YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTQ3IDQ3LTQ3LTQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHoiXX0sdFN0PXZELHJTdD12RCxpU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJjaHdheSIsaWNvbjpbNTEyLDUxMixbXSwiZjU1NyIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzJ6bTAgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwIDAtMTI4YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAxMjggMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0yNzItNDQ4IDAgMCAyNzJ6Il19LFdjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZGlnZ2luZyIsaWNvbjpbNTc2LDUxMixbImRpZ2dpbmciXSwiZjg1ZSIsIk0yMDggNDBhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMC41IDE4MS4zYzUuOS0xMS45IDIwLjMtMTYuNyAzMi4yLTEwLjdsMjQuNiAxMi4zIDEyLjItMjAuNGMxOC45LTMxLjUgNTMuMi01MC41IDg5LjYtNTAuNSA0Ni4yIDAgODcuNyAzMC41IDEwMC41IDc1LjRsMzIuMiAxMTIuNyA5Mi45IDQ2LjQgMjUuOC00M2M1LjgtOS42IDE2LjItMTUuNSAyNy40LTE1LjVzMjEuNyA1LjkgMjcuNCAxNS41bDk2IDE2MGM1LjkgOS45IDYuMSAyMi4yIC40IDMyLjJTNTU1LjUgNTEyIDU0NCA1MTJsLTE5MiAwYy0xMS41IDAtMjIuMi02LjItMjcuOC0xNi4ycy01LjUtMjIuMyAuNC0zMi4yTDM3MCAzODcuOCAyMS4zIDIxMy41Yy0xMS45LTUuOS0xNi43LTIwLjMtMTAuNy0zMi4yek05NC4zIDMwNy40bDExMiA1NmMxMC44IDUuNCAxNy43IDE2LjUgMTcuNyAyOC42bDAgODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02OC4yLTYxLjMtMzAuNy0zNi4zIDEwOWMtNS42IDE2LjgtMjMuNyAyNS44LTQwLjUgMjAuMlMtMy45IDQ4Ni42IDEuNyA0NjkuOWw0OC0xNDRjMi45LTguOCA5LjUtMTUuOSAxOC4xLTE5LjRzMTguMy0zLjIgMjYuNiAuOXoiXX0sYVN0PVdjZSx4RD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1oaWdoIixpY29uOls1MTIsNTEyLFs2MjQ2MSwidGFjaG9tZXRlci1hbHQiLCJ0YWNob21ldGVyLWFsdC1mYXN0Il0sImY2MjUiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTI1NiA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjQgMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjR6TTE3NiAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNOTYgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzUyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6Il19LG5TdD14RCxvU3Q9eEQsc1N0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdlbmRlcmxlc3MiLGljb246WzM4NCw1MTIsW10sImYyMmQiLCJNMTkyIDEyOGExMjggMTI4IDAgMSAxIDAgMjU2IDEyOCAxMjggMCAxIDEgMC0yNTZ6bTAgMzIwYTE5MiAxOTIgMCAxIDAgMC0zODQgMTkyIDE5MiAwIDEgMCAwIDM4NHoiXX0sbFN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLXN1biIsaWNvbjpbNjQwLDUxMixbOTkyNV0sImY2YzQiLCJNMjA4LjMgMTkyYzQzLjEgMCA4MC41IDI0LjQgOTkuMiA2MC4xIDE0LjctMTcuMiAzNi40LTI4LjEgNjAuOC0yOC4xIDQ0LjIgMCA4MCAzNS44IDgwIDgwIDAgNS41LS42IDEwLjktMS42IDE2IC41IDAgMS4xIDAgMS42IDAgNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTMyMCAwYy01MyAwLTk2LTQzLTk2LTk2IDAtNDIuNSAyNy43LTc4LjUgNjYtOTEuMi0xLjMtNi44LTItMTMuNy0yLTIwLjggMC02MS45IDUwLjEtMTEyIDExMi0xMTJ6bTE5Mi0yMjMuOGM1LjMgMCAxMC4zIDIuNyAxMy4zIDcuMWw0Ny4zIDcwLjQgODMuMy0xNi4zYzUuMi0xIDEwLjYgLjcgMTQuMyA0LjQgMy44IDMuOCA1LjQgOS4yIDQuNCAxNC40bC0xNi4zIDgzLjMgNzAuNCA0Ny4zYzQuNCAzIDcuMSA4IDcuMSAxMy4zIDAgNS4zLTIuNiAxMC4zLTcgMTMuMmwtNzAuNCA0Ny4zIDE0LjUgNzQuMmMtMTcuMi0yMS43LTQwLjQtMzguNC02Ny4yLTQ3LjMtMi41LTEyLjctNi45LTI0LjYtMTIuOC0zNS43IDkuNi0xNC45IDE1LjItMzIuNyAxNS4yLTUxLjcgMC01My00My05Ni05Ni05Ni00Ny45IDAtODcuNiAzNS4xLTk0LjggODAuOS0yMC45LTE2LTQ1LjktMjctNzMuMS0zMS4xbDIxLjUtMTQuNS0xNi4zLTgzLjItLjMtMmMtLjMtNC42IDEuMy05LjEgNC42LTEyLjQgMy44LTMuOCA5LjItNS40IDE0LjQtNC40bDgzLjMgMTYuMyA0Ny4zLTcwLjQgMS4yLTEuNmMzLTMuNSA3LjQtNS41IDEyLjEtNS41em0wIDE3NS44YzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMy44LS41IDcuNi0xLjQgMTEuMS0yMS43LTE2LjktNDguOS0yNy4xLTc4LjYtMjcuMS00LjYgMC05LjEgLjItMTMuNSAuNyA2LjQtMTkgMjQuMy0zMi43IDQ1LjUtMzIuN3oiXX0sc0U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQiLGljb246WzUxMiw1MTIsWzg1OTRdLCJmMDYxIiwiTTUwMi42IDI3OC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM3MC43IDAtMTA1LjQgMTA1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MHoiXX0seUQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlIixpY29uOls1NzYsNTEyLFsxMjkzMDksNjI2NjIsImhhbmRzaGFrZS1hbHQiLCJoYW5kc2hha2Utc2ltcGxlIl0sImYyYjUiLCJNMjY4LjkgODUuMkwxNTIuMyAyMTQuOGMtNC42IDUuMS00LjQgMTMgLjUgMTcuOSAzMC41IDMwLjUgODAgMzAuNSAxMTAuNSAwbDMxLjgtMzEuOGM0LjItNC4yIDkuNS02LjUgMTQuOS02LjkgNi44LS42IDEzLjggMS43IDE5IDYuOUw1MDUuNiAzNzYgNTc2IDMyMCA1NzYgMzIgNDY0IDk2IDQ0MC4yIDgwLjFDNDI0LjQgNjkuNiA0MDUuOSA2NCAzODYuOSA2NGwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjF6TTExNi42IDE4Mi43TDIyMy40IDY0IDE4My44IDY0Yy0yNS41IDAtNDkuOSAxMC4xLTY3LjkgMjguMUwxMTIgOTYgMCAzMiAwIDMyMCAxNTYuNCA0NTAuM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMTkuMSAwIDM3LjgtNC4zIDU0LjgtMTIuM0wzNTkgNDQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMzIgMzIgMTcuNS0xNy41YzguOS04LjkgMTEuNS0yMS44IDcuNi0zMy4xbC0xMzcuOS0xMzYuOC0xNC45IDE0LjljLTQ5LjMgNDkuMy0xMjkuMSA0OS4zLTE3OC40IDAtMjMtMjMtMjMuOS01OS45LTIuMi04NHoiXX0sY1N0PXlELGRTdD15RCxHY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLXNraWluZyIsaWNvbjpbNTc2LDUxMixbOTk3NSwic2tpaW5nIl0sImY3YzkiLCJNNDE2IDU2YTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHpNMi43IDMwMC45YzYuMS0xMS44IDIwLjYtMTYuMyAzMi40LTEwLjJsMTk3LjggMTAyLjcgNjIuMy04Ny4yLTgyLTkyLjJjLTExLTEyLjQtMTYuMi0yNy41LTE2LjItNDIuNGwxMTEuNiA1My40IDQyLjkgNDguMmMxNC45IDE2LjcgMTYuMiA0MS42IDMuMiA1OS44bC02NC40IDkwLjIgMTI4LjMgNjYuNmMxMy42IDcuMSAyOS44IDcuMiA0My42IC4zbDE1LjItNy42YzExLjktNS45IDI2LjMtMS4xIDMyLjIgMTAuN3MxLjEgMjYuMy0xMC43IDMyLjJsLTE1LjIgNy42Yy0yNy41IDEzLjctNTkuOSAxMy41LTg3LjItLjdMMTIuOSAzMzMuM0MxLjIgMzI3LjItMy40IDMxMi43IDIuNyAzMDAuOXpNMTAzIDQ5LjZsMTggOC43IDguNy0xNy40YzQtNy45IDEzLjYtMTEuMSAyMS41LTcuMnMxMS4xIDEzLjYgNy4yIDIxLjVsLTguNSAxNyA4NC44IDQxIC40LS4yIDc2LjEtMzMuOGMzMS4zLTEzLjkgNjcuOS0uNyA4My4yIDI5LjlsMjguOSA1Ny44IDY4LjcgMjcuNWMxNi40IDYuNiAyNC40IDI1LjIgMTcuOCA0MS42cy0yNS4yIDI0LjQtNDEuNiAxNy44TDM5My44IDIyNGMtMTAuOS00LjQtMTkuOC0xMi42LTI1LjEtMjMuMWwtMTEuNS0yMy4xYy0xNi40IDkuNC0yNS45IDE0LjgtMjguNSAxNi4zbC03LjYtMy43LTE4NS42LTg5LjYtOS4yIDE4LjNjLTQgNy45LTEzLjYgMTEuMS0yMS41IDcuMnMtMTEuMS0xMy42LTcuMi0yMS41bDktMTcuOS0xNy42LTguNUM4MS4xIDc0LjYgNzcuOCA2NSA4MS42IDU3Uzk1IDQ1LjcgMTAzIDQ5LjZ6Il19LHVTdD1HY2UscFN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS13YXRlciIsaWNvbjpbNjQwLDUxMixbXSwiZTRjZSIsIk02NCA2NGw1MTIgMCAwIDExMmMtMzcuNiA5LjQtNjQgNDMuMi02NCA4MmwwIDc2LjRjLTIxLTkuNy00My41LTE0LjUtNjYtMTQuNC0xMCAuMS0yMC4xIDEuMS0zMCAzLjFsMC0zNS4xYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2bDAgMzIuN2MtNS4zLS41LTEwLjctLjgtMTYtLjctMjcuNyAuMi01NS40IDcuOC04MCAyM2wwLTg1YzAtMzguOC0yNi40LTcyLjYtNjQtODJMNjQgNjR6TTQwMy40IDQ0NC4xQzM3OS4xIDQ2Mi4zIDM1MS4xIDQ4MCAzMjAgNDgwcy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0saFN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLW5nbyIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNyIsIk0xMjggMEM5Mi43IDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDIwOCAwIDAtMjcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDEyOCAwem0zMiAxMTJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnpNMzA0IDk2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTUyMCAzODBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLTgwYzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0xNiAwem0tNCA0NGMwLTIuMiAxLjgtNCA0LTRsMTYgMGMyLjIgMCA0IDEuOCA0IDRsMCA4MGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwem0tMTY4IDBsMCA4MGMwIDI0LjMgMTkuNyA0NCA0NCA0NGwxNiAwYzI0LjMgMCA0NC0xOS43IDQ0LTQ0bDAtMjRjMC0xMS05LTIwLTIwLTIwbC04IDBjLTExIDAtMjAgOS0yMCAyMCAwIDYuNSAzLjEgMTIuNCA4IDE2bDAgOGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwYzAtMi4yIDEuOC00IDQtNGwyMC40IDBjMS45IDkuMSA5LjkgMTYgMTkuNiAxNiAxMSAwIDIwLTkgMjAtMjAgMC0xOS45LTE2LjEtMzYtMzYtMzZsLTI0IDBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0em0tOTAuMS0zMi45Yy00LjEtOC4zLTEzLjUtMTIuNy0yMi41LTEwLjVTMjIwIDM5MC43IDIyMCA0MDBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00My4zIDI2LjEgNTIuMmM0LjEgOC4zIDEzLjUgMTIuNyAyMi41IDEwLjVTMzI0IDUzNy4zIDMyNCA1MjhsMC0xMjhjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgNDMuMy0yNi4xLTUyLjJ6Il19LGZTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpZ2xvbyIsaWNvbjpbNTc2LDUxMixbXSwiZjdhZSIsIk0zMjAgMzMuOGwwIDEyNi4yLTI3MS41IDBjNTEuNy03Ny4yIDEzOS42LTEyOCAyMzkuNS0xMjggMTAuOCAwIDIxLjUgLjYgMzIgMS44ek0zNjggMTYwbDAtMTE2LjdjNjYgMTkgMTIyLjIgNjEgMTU5LjUgMTE2LjdMMzY4IDE2MHpNMjIuNiAyMDhsNzMuNCAwIDAgMTEyLTk2IDBjMC0zOS43IDgtNzcuNiAyMi42LTExMnpNMTc2IDMyMGwtMzIgMCAwLTExMiAyODggMCAwIDExMi0zMiAwIDAgNDggMTc2IDAgMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjQgMTc2IDAgMC00OHptMzA0IDBsMC0xMTIgNzMuNCAwQzU2OCAyNDIuNCA1NzYgMjgwLjMgNTc2IDMyMGwtOTYgMHpNMjg4IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4MCAxMjggMCAwLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0eiJdfSxZY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvbGxhci10by1zbG90IixpY29uOls1NzYsNTEyLFsiZG9uYXRlIl0sImY0YjkiLCJNOTYgMjI0YTE5MiAxOTIgMCAxIDEgMzg0IDAgMTkyIDE5MiAwIDEgMSAtMzg0IDB6bTE3Ni05MmwwIDRjLTI4LjggLjMtNTIgMjMuNy01MiA1Mi41IDAgMjUuNyAxOC41IDQ3LjYgNDMuOSA1MS44bDQxLjcgN2M2IDEgMTAuNCA2LjIgMTAuNCAxMi4zIDAgNi45LTUuNiAxMi41LTEyLjUgMTIuNUwyNDggMjcyYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGwyNCAwIDAgNGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTQuN2MyNS00LjEgNDQtMjUuNyA0NC01MS44IDAtMjUuNy0xOC41LTQ3LjYtNDMuOS01MS44bC00MS43LTdjLTYtMS0xMC40LTYuMi0xMC40LTEyLjMgMC02LjkgNS42LTEyLjUgMTIuNS0xMi41bDQ3LjUgMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTggMCAwLTRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwek00OCAzNDRsMCAxMDRjMCA4LjggNy4yIDE2IDE2IDE2bDQ0OCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sbVN0PVljZSxnU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToieSIsaWNvbjpbMzg0LDUxMixbMTIxXSwiNTkiLCJNNTggNDUuNEM0Ny44IDMxIDI3LjggMjcuNyAxMy40IDM4Uy00LjMgNjguMiA2IDgyLjZMMTYwIDI5OC4zIDE2MCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE0OS43IDE1NC0yMTUuN2MxMC4zLTE0LjQgNi45LTM0LjQtNy40LTQ0LjZTMzM2LjIgMzEgMzI2IDQ1LjRMMTkyIDIzMi45IDU4IDQ1LjR6Il19LFpjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLXdpbmsiLGljb246WzUxMiw1MTIsWzEyODUyMSwic21pbGUtd2luayJdLCJmNGRhIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY0IDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDBjLTExIDAtMjAgOS0yMCAyMHoiXX0sYlN0PVpjZSx2U3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1mb3VyIixpY29uOls0NDgsNTEyLFs5ODU5XSwiZjUyNCIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMTYwIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zNTIgMTYwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxYY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXNxdWludC10ZWFycyIsaWNvbjpbNTc2LDUxMixbMTI5MzE1LCJncmluLXNxdWludC10ZWFycyJdLCJmNTg2IiwiTTU2MCAzNS40YzAgMjUuNi0xOC44IDQ3LjMtNDQuMSA1MC45TDQ2OS4xIDkzYy0xMC42IDEuNS0xOS42LTcuNS0xOC4xLTE4LjFsNi43LTQ2LjdDNDYxLjMgMi44IDQ4My0xNiA1MDguNi0xNiA1MzctMTYgNTYwIDcgNTYwIDM1LjR6TTQwMy41IDY4LjFjLTYgNDIuMiAzMC4yIDc4LjQgNzIuNCA3Mi40bDM3LjgtNS40QzU2NS43IDIzMiA1NTAuOCAzNTUuMyA0NjkgNDM3cy0yMDUgOTYuNi0zMDEuOSA0NC43bDUuNC0zNy44YzYtNDIuMi0zMC4yLTc4LjQtNzIuNC03Mi40bC0zNy44IDUuNEMxMC4zIDI4MCAyNS4yIDE1Ni43IDEwNyA3NVMzMTItMjEuNyA0MDguOSAzMC4zbC01LjQgMzcuOHpNNDE3LjggMjAxYy0xOS4xIDM2LjQtNDUuNiA3Mi43LTc4LjkgMTA2cy02OS42IDU5LjgtMTA2IDc4LjljLTExLjEgNS44LTEyLjQgMjEuNC0xLjEgMjYuNiA1OS4yIDI3LjUgMTMxLjggMTYuOCAxODAuNi0zMnM1OS41LTEyMS40IDMyLTE4MC42Yy01LjMtMTEuMy0yMC44LTEwLTI2LjYgMS4xek0xMTMuOSAyNzAuNmMxLjcgOCA5IDEzLjQgMTcuMSAxMi43bDQzLjEtMy45LTMuOSA0My4xYy0uNyA4LjEgNC43IDE1LjUgMTIuNyAxNy4xczE1LjktMi45IDE4LjQtMTAuNmwyOC04NC42YzEuOS01LjcgLjQtMTIuMS0zLjktMTYuM3MtMTAuNi01LjgtMTYuMy0zLjlsLTg0LjYgMjhjLTcuNyAyLjYtMTIuMyAxMC41LTEwLjYgMTguNXpNMzE1LjIgOTkuMWMuNy04LjEtNC43LTE1LjUtMTIuNy0xNy4xcy0xNS45IDIuOS0xOC41IDEwLjZsLTI4IDg0LjZjLTEuOSA1LjctLjQgMTIuMSAzLjkgMTYuM3MxMC42IDUuOCAxNi4zIDMuOWw4NC42LTI4YzcuNy0yLjYgMTIuMy0xMC41IDEwLjYtMTguNHMtOS0xMy40LTE3LjEtMTIuN2wtNDMuMSAzLjkgMy45LTQzLjF6TTYwLjEgNDI1LjdsNDYuNy02LjdjMTAuNi0xLjUgMTkuNiA3LjUgMTguMSAxOC4xbC02LjcgNDYuN0MxMTQuNyA1MDkuMiA5MyA1MjggNjcuNCA1MjggMzkgNTI4IDE2IDUwNSAxNiA0NzYuNiAxNiA0NTEgMzQuOCA0MjkuMyA2MC4xIDQyNS43eiJdfSx4U3Q9WGNlLHlTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWF1ZGlvIixpY29uOlszODQsNTEyLFtdLCJmMWM3IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41em01My44IDE4NS4yYy05LjEtNi4zLTIxLjUtNC4xLTI3LjggNXMtNC4xIDIxLjUgNSAyNy44YzIzLjkgMTYuNyAzOS40IDQ0LjMgMzkuNCA3NS41cy0xNS42IDU4LjktMzkuNCA3NS41Yy05LjEgNi4zLTExLjMgMTguOC01IDI3LjhzMTguOCAxMS4zIDI3LjggNWMzNC4xLTIzLjggNTYuNi02My41IDU2LjYtMTA4LjNTMjk2IDI2Ny41IDI2MS44IDI0My43ek04MCAzMTJjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwIDI3LjIgMzRjMyAzLjggNy42IDYgMTIuNSA2bC4zIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNmwtLjMgMGMtNC45IDAtOS41IDIuMi0xMi41IDZsLTI3LjIgMzQtMjQgMHptMTI4IDcyLjJjMCAxMC43IDEwLjUgMTguMiAxOC45IDExLjYgMTIuOS0xMC4zIDIxLjEtMjYuMSAyMS4xLTQzLjhzLTguMi0zMy41LTIxLjEtNDMuOGMtOC40LTYuNy0xOC45IC45LTE4LjkgMTEuNmwwIDY0LjV6Il19LHdTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvd3MtZG93bi10by1saW5lIixpY29uOls1MTIsNTEyLFtdLCJlNGI4IiwiTTIxNC42IDMxMC42bC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDI3NC43IDk2IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAyNDIuNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6bTI1NiAwbC02NCA2NGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDkuNCA5LjQgMC0yNDIuN2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMjQyLjcgOS40LTkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0zMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyeiJdfSxNU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZyIsaWNvbjpbNDQ4LDUxMixbMTAzXSwiNDciLCJNMjI0IDk2QzEzNS42IDk2IDY0IDE2Ny42IDY0IDI1NnM3MS42IDE2MCAxNjAgMTYwYzc3LjQgMCAxNDItNTUgMTU2LjgtMTI4TDI1NiAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTQ0IDBjMjUuOCAwIDQ5LjYgMjEuNCA0Ny4yIDUwLjYtOS41IDExNS0xMDUuOCAyMDUuNC0yMjMuMiAyMDUuNC0xMjMuNyAwLTIyNC0xMDAuMy0yMjQtMjI0UzEwMC4zIDMyIDIyNCAzMmM1Ny40IDAgMTA5LjcgMjEuNiAxNDkuMyA1NyAxMy4yIDExLjggMTQuMyAzMiAyLjUgNDUuMnMtMzIgMTQuMy00NS4yIDIuNUMzMDIuMyAxMTEuNCAyNjUgOTYgMjI0IDk2eiJdfSxrU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmloYXJhIixpY29uOls1NzYsNTEyLFtdLCJmNmE3IiwiTTI3My42LTMuMmM4LjUtNi40IDIwLjMtNi40IDI4LjggMEw0NDMuMiAxMDIuNGM4LjMgNi4yIDE4LjQgOS42IDI4LjggOS42IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNCAwIDAgNDggNTguNyA2NCAxMy4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQ4IDI0LjQgMzIgMTUuNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xMjggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMTI4IDAgMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTQwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjIuMSAwIDE3LjktMzIgMC00OC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTMuMyAwIDU4LjctNjQgMC00OC0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzEwLjQgMCAyMC41LTMuNCAyOC44LTkuNkwyNzMuNi0zLjJ6TTEyOCAzNjhsMzIwIDAgMC00OC0zMjAgMCAwIDQ4ek0zODQgMTYwbC0xOTIgMCAwIDQ4IDE5MiAwIDAtNDh6Il19LFNTdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnLWNoZWNrZXJlZCIsaWNvbjpbNDQ4LDUxMixbMTI3OTM3XSwiZjExZSIsIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMybDAgMTYgNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41IDQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xbDAgMjc5LjdjMCAxMy4zLTguMyAyNS4zLTIwLjggMzBsLTM0LjcgMTNjLTQ2LjIgMTcuMy05Ny42IDE0LjYtMTQxLjctNy40LTM3LjktMTktODEuNC0yMy43LTEyMi41LTEzLjRMNjQgMzg0IDY0IDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ5Ny43IDAgNDgwTDAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwek02NCAxODcuMWw2NC0xMy45IDAgNjUuNS02NCAxMy45IDAgNjUuNSA0OC44LTEyLjJjNS4xLTEuMyAxMC4xLTIuNCAxNS4yLTMuM2wwLTYzLjkgMzguOS04LjRjOC4zLTEuOCAxNi43LTIuNSAyNS4xLTIuMWwwLTY0YzEzLjYgLjQgMjcuMiAyLjYgNDAuNCA2LjRsMjMuNiA2LjkgMCA2Ni43LTQxLjctMTIuM2MtNy4zLTIuMS0xNC44LTMuNC0yMi4zLTMuOGwwIDcxLjRjMjEuOCAxLjkgNDMuMyA2LjcgNjQgMTQuNGwwLTY5LjggMjIuNyA2LjdjMTMuNSA0IDI3LjMgNi40IDQxLjMgNy40bDAtNjQuMmMtNy44LS44LTE1LjYtMi4zLTIzLjItNC41bC00MC44LTEyIDAtNjJjLTEzLTMuOC0yNS44LTguOC0zOC4yLTE1LTguMi00LjEtMTYuOS03LTI1LjgtOC44bDAgNzIuNGMtMTMtLjQtMjYgLjgtMzguNyAzLjZsLTI1LjMgNS41IDAtNzUuMi02NCAxNiAwIDczLjF6TTMyMCAzMzUuN2MxNi44IDEuNSAzMy45LS43IDUwLTYuOGwxNC01LjIgMC03MS43LTcuOSAxLjhjLTE4LjQgNC4zLTM3LjMgNS43LTU2LjEgNC41bDAgNzcuNHptNjQtMTQ5LjRsMC03MC44Yy0yMC45IDYuMS00Mi40IDkuMS02NCA5LjFsMCA2OS40YzEzLjkgMS40IDI4IC41IDQxLjctMi42bDIyLjMtNS4yeiJdfSx3RD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUiLGljb246WzUxMiw1MTIsWyJnYXVnZS1zaW1wbGUtbWVkIiwidGFjaG9tZXRlci1hdmVyYWdlIl0sImY2MjkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMzIwIDk2YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM0wyODAgMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTcyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuMyAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSx6U3Q9d0QsQ1N0PXdELFFjZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyaWdodC1sZWZ0IixpY29uOls1MTIsNTEyLFsiZXhjaGFuZ2UtYWx0Il0sImYzNjIiLCJNNTAyLjYgMTUwLjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOVMzNTIgMjM2LjkgMzUyIDIyNGwwLTY0LTMyMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDMyMCAwIDAtNjRjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzE2MCAyNzUuMSAxNjAgMjg4bDAgNjQgMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyMCAwIDAgNjRjMCAxMi45LTcuOCAyNC42LTE5LjggMjkuNnMtMjUuNyAyLjItMzQuOS02Ljl6Il19LFRTdD1RY2UsX1N0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBpbGxzIixpY29uOls1MTIsNTEyLFtdLCJmNDg0IiwiTTY0IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyLTk2IDAgMC0xMTJ6TTE3NiAzNjhjMC00OC43IDE4LjEtOTMuMiA0OC0xMjdsMC0xMjlDMjI0IDUwLjEgMTczLjkgMCAxMTIgMFMwIDUwLjEgMCAxMTJMMCA0MDBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTIgMzcuMyAwIDcwLjMtMTguMiA5MC43LTQ2LjMtMTctMjguNi0yNi43LTYyLTI2LjctOTcuN3ptNjQuNyA2Ny40YzQuNiA4LjcgMTYuMyA5LjcgMjMuMyAyLjdMNDM4LjEgMjY0YzctNyA2LTE4LjctMi43LTIzLjMtMjAuMS0xMC43LTQzLTE2LjctNjcuNC0xNi43LTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMjQuMyA2IDQ3LjMgMTYuNyA2Ny40ek0yOTcuOSA0NzJjLTcgNy02IDE4LjcgMi43IDIzLjMgMjAuMSAxMC43IDQzIDE2LjcgNjcuNCAxNi43IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjQuMy02LTQ3LjMtMTYuNy02Ny40LTQuNi04LjctMTYuMy05LjctMjMuMy0yLjdMMjk3LjkgNDcyeiJdfSxMU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXhwbG9zaW9uIixpY29uOls1MTIsNTEyLFtdLCJlNGU5IiwiTTI1Ni0zMmMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTAgMTYwYzEyLjQgMCAyMi43IDkuNCAyMy45IDIxLjdMMjkzLjQgMjkxLjYgNDY3LjYgMTEuM2M2LjctMTAuNyAyMC41LTE0LjUgMzEuNy04LjVzMTUuOCAxOS41IDEwLjYgMzFMMzcyLjggMzM4LjZjMi4yIDIuMyA0LjMgNC43IDYuMyA3LjFsOTcuMi01NC43YzEwLjUtNS45IDIzLjYtMy4xIDMwLjkgNi40czYuMyAyMy0yLjIgMzEuNWwtODcgODctNzEuNCAwYy0xMy4yLTM3LjMtNDguNy02NC05MC41LTY0cy03Ny40IDI2LjctOTAuNSA2NGwtNzkuNiAwLTc1LjUtNTIuM0MuNiAzNTctMi44IDM0NC4xIDIuNCAzMzMuNXMxNy40LTE1LjkgMjguNy0xMi40bDk3LjIgMzAuNGMzLTMuOSA2LjEtNy42IDkuNC0xMS4zTDc1LjQgMjM2LjNjLTYuMS0xMC4xLTMuOS0yMy4xIDUuMS0zMC43czIyLjItNy41IDMxLjEgLjFMMjE0IDI5My42YzEuNS0uNCAzLS44IDQuNS0xLjFsMTMuNi0xNDIuN2MxLjItMTIuMyAxMS41LTIxLjcgMjMuOS0yMS43ek0zMiA0NjRsNDU2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMHoiXX0sQVN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1kb3duLXRvLXBlb3BsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRiOSIsIk0xMTMgMTUzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxNSA4OUM1LjcgNzkuNiA1LjcgNjQuNCAxNSA1NVMzOS42IDQ1LjcgNDkgNTVMNzIgNzguMSA3Mi04YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA4Ni4xIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNjQgNjR6bTMyMCAwYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwzMzUgODljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMyAyMyAwLTg2LjFjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDg2LjEgMjMtMjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02NCA2NHpNMjU2IDE5MmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnptMCAxNjBjNTMgMCA5NiA0MyA5NiA5NmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTUzIDQzLTk2IDk2LTk2ek0zMiAyODhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzUyIDBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNODAgMzY4YzE1LjMgMCAyOS42IDQuMyA0MS44IDExLjgtNi4zIDE2LjItOS44IDMzLjgtOS44IDUyLjJsMCA0OGMwIDExLjQgMi40IDIyLjIgNi43IDMybC04Ny44IDBDMTMuOCA1MTIgMCA0OTguMiAwIDQ4MS4xTDAgNDQ4YzAtNDQuMiAzNS44LTgwIDgwLTgwek0zOTMuMyA1MTJjNC4zLTkuOCA2LjctMjAuNiA2LjctMzJsMC00OGMwLTE4LjQtMy41LTM2LTkuOC01Mi4yIDEyLjItNy41IDI2LjUtMTEuOCA0MS44LTExLjggNDQuMiAwIDgwIDM1LjggODAgODBsMCAzMy4xYzAgMTctMTMuOCAzMC45LTMwLjkgMzAuOWwtODcuOCAweiJdfSxEU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlcnMtdmlld2ZpbmRlciIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NSIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDcyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC03MmMwLTguOCA3LjItMTYgMTYtMTZsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNFMxNDkuMyAwIDEzNiAwTDY0IDB6TTQ0MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDcyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDQ0MCAwek00OCAzNzZjMC0xMy4zLTEwLjctMjQtMjQtMjRTMCAzNjIuNyAwIDM3NmwwIDcyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTcyem01MjggMGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyYzAgOC44LTcuMiAxNi0xNiAxNmwtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw3MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNzJ6TTI4OCAyMTZhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6bTAgNDBjLTUzIDAtOTYgNDMtOTYgOTZsMCAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxNDQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtNTMtNDMtOTYtOTYtOTZ6bTE5Mi02NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNjggMjcyLjNjLTQ5LjMgNC4xLTg4IDQ1LjMtODggOTUuN2wwIDEwLjdjMCAxMS44IDkuNiAyMS4zIDIxLjMgMjEuM2w0Ni44IDBjLTIuNy03LjUtNC4xLTE1LjYtNC4xLTI0bDAtMjRjMC0yOS41IDguOC01Ni45IDI0LTc5Ljd6TTQyNy45IDQwMGw0Ni44IDBjMTEuOCAwIDIxLjMtOS42IDIxLjMtMjEuM2wwLTEwLjdjMC01MC4zLTM4LjctOTEuNi04OC05NS43IDE1LjIgMjIuOCAyNCA1MC4yIDI0IDc5LjdsMCAyNGMwIDguNC0xLjQgMTYuNS00LjEgMjR6TTE5MiAxOTJhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sRVN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci1vbiIsaWNvbjpbNDQ4LDUxMixbXSwiZTRkZCIsIk0yNDgtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMyMDAtMjEuMyAyMDAtOGwwIDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NHpNMTQ1LjMgMjA4bDE1Ny41IDBjNi43IDAgMTIuNiA0LjEgMTUgMTAuNGwyNi4xIDY5LjYtMjM5LjYgMCAyNi4xLTY5LjZjMi4zLTYuMiA4LjMtMTAuNCAxNS0xMC40ek0zNCAyOTIuOGwtMS4zIDMuNEMxMy4yIDMwNy4xIDAgMzI4IDAgMzUyTDAgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMiAyODggMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0yNC0xMy4yLTQ0LjktMzIuOC01NS45bC0xLjMtMy40LTM2LjMtOTYuOWMtMTEuNy0zMS4yLTQxLjYtNTEuOS03NC45LTUxLjlsLTE1Ny41IDBjLTMzLjMgMC02My4yIDIwLjctNzQuOSA1MS45TDM0IDI5Mi44ek05NiAzMzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yMjQgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNyA3Qy0yLjMgMTYuNC0yLjMgMzEuNiA3IDQxTDU1IDg5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwUzk4LjMgNjQuNCA4OSA1NUw0MSA3QzMxLjYtMi4zIDE2LjQtMi4zIDcgN3pNNDA3IDdMMzU5IDU1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlTNDE2LjQtMi4zIDQwNyA3eiJdfSwkU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2xlaWdoIixpY29uOls2NDAsNTEyLFtdLCJmN2NjIiwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NFM0Ni4zIDk2IDY0IDk2bDAgMTYwYzAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDY5LjUtNzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw1MDQgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLThjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC04MCAwIDAtNjRjNTMgMCA5Ni00MyA5Ni05NmwwLTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyYzAgMzUuMy0yOC43IDY0LTY0IDY0bC00OC45IDBjLTQ4LjUgMC05Mi44LTI3LjQtMTE0LjUtNzAuOGwtMjUuMi01MC41QzIzNy43IDU5LjQgMTkzLjQgMzIgMTQ0LjkgMzJMNjQgMzJ6TTQzMiA0MTZsLTI1NiAwIDAtNjQgMjU2IDAgMCA2NHoiXX0sSVN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImR1bWJiZWxsIixpY29uOls2NDAsNTEyLFtdLCJmNDRiIiwiTTk2IDExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4bDAgMTEyIDI1NiAwIDAtMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxNiAxNiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYgMCAwIDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtMTEyLTI1NiAwIDAgMTEyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4bDAtMTYtMTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC00OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwwLTQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDE2IDAgMC0xNnoiXX0sSmNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhYnktY2FycmlhZ2UiLGljb246WzUxMiw1MTIsWyJjYXJyaWFnZS1iYWJ5Il0sImY3N2QiLCJNNjQgMjA4bDAgODBjMCA1MyA0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTEyIDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTY0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNTYtMzM2IDB6bS4yLTQ4bDIyMy44IDAgMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMMjMyIDBDMTQxLjkgMCA2OC40IDcwLjkgNjQuMiAxNjB6TTE2MCA0NjRhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHptMjg4IDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHoiXX0sUFN0PUpjZSxOU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2l3aS1iaXJkIixpY29uOls1NzYsNTEyLFtdLCJmNTM1IiwiTTI5MS4yIDM4OC40YzMxLjItMTguOCA2NC43LTM2LjQgMTAxLjEtMzYuNGw1NS43IDBjNC42IDAgOS4xLS4yIDEzLjYtLjdsODUuMyAxMjEuOWM0IDUuNyAxMS4zIDguMiAxNy45IDYuMVM1NzYgNDcxIDU3NiA0NjRsMC0yNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhsLTU1LjcgMEMzNTUuOSA5NiAzMjIuNCA3OC40IDI5MS4yIDU5LjYgMjYyLjMgNDIuMSAyMjguMyAzMiAxOTIgMzIgODYgMzIgMCAxMTggMCAyMjQgMCAyOTUuMSAzOC42IDM1Ny4xIDk2IDM5MC4zTDk2IDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDZjMTUuMyAzLjkgMzEuNCA2IDQ4IDYgNS40IDAgMTAuNy0uMiAxNi0uN2wwIDQwLjdjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTUwLjljMTIuNC00LjQgMjQuMi0xMCAzNS4yLTE2Ljd6TTQ0OCAyMDBhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxLY2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FsZW5kYXIteG1hcmsiLGljb246WzQ0OCw1MTIsWyJjYWxlbmRhci10aW1lcyJdLCJmMjczIiwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIgMTI4IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgMzIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjkxLjkgMjIwLjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0zMy45IDMzLjktMzMuOS0zMy45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOS0zMy45IDMzLjljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzMy45LTMzLjkgMzMuOSAzMy45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMzMuOS0zMy45IDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXoiXX0sRlN0PUtjZSxlMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWRvd24iLGljb246WzUxMiw1MTIsWzYxNDY2LCJhcnJvdy1hbHQtY2lyY2xlLWRvd24iXSwiZjM1OCIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTI0NC43IDM4Ny4zbC0xMDQtMTA0Yy00LjYtNC42LTUuOS0xMS41LTMuNS0xNy40czguMy05LjkgMTQuOC05LjlsNTYgMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiA1NiAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45czEuMSAxMi45LTMuNSAxNy40bC0xMDQgMTA0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHoiXX0sT1N0PWUwZSxSU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1tZWRpY2FsIixpY29uOlszODQsNTEyLFtdLCJmNDc3IiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xNjAgMjgwbDAgNDAtNDAgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDQwIDAgMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC00MCA0MCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtNDAgMCAwLTQwYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2eiJdfSxEND17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ4bWFyayIsaWNvbjpbMzg0LDUxMixbMTI4NDczLDEwMDA1LDEwMDA2LDEwMDYwLDIxNSwiY2xvc2UiLCJtdWx0aXBseSIsInJlbW92ZSIsInRpbWVzIl0sImYwMGQiLCJNNTUuMSA3My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wxNDcuMiAyNTYgOS45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5Mi41IDMwMS4zIDMyOS45IDQzOC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMjM3LjggMjU2IDM3NS4xIDExOC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5Mi41IDIxMC43IDU1LjEgNzMuNHoiXX0sQlN0PUQ0LEhTdD1ENCxxU3Q9RDQsalN0PUQ0LHQwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGFwZXMiLGljb246WzUxMiw1MTIsWyJ0cmlhbmdsZS1jaXJjbGUtc3F1YXJlIl0sImY2MWYiLCJNMjU2IDBjMTEuMiAwIDIxLjcgNS45IDI3LjQgMTUuNWw5NiAxNjBjNS45IDkuOSA2LjEgMjIuMiAuNCAzMi4yUzM2My41IDIyNCAzNTIgMjI0bC0xOTIgMGMtMTEuNSAwLTIyLjItNi4yLTI3LjgtMTYuMnMtNS41LTIyLjMgLjQtMzIuMmw5Ni0xNjBDMjM0LjMgNS45IDI0NC44IDAgMjU2IDB6TTEyOCAyNzJhMTEyIDExMiAwIDEgMSAwIDIyNCAxMTIgMTEyIDAgMSAxIDAtMjI0em0yMDAgMTZsMTEyIDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxMTJjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTExMiAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTExMmMwLTIyLjEgMTcuOS00MCA0MC00MHoiXX0sVlN0PXQwZSxVU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGljZS1vbmUiLGljb246WzQ0OCw1MTIsWzk4NTZdLCJmNTI1IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxXU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jay1vcGVuIixpY29uOls1NzYsNTEyLFtdLCJmM2MxIiwiTTM4NCA5NmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMyYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4UzMyMCAyNS4zIDMyMCA5NmwwIDY0LTE2MCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDIyNGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NGwtMzIgMCAwLTY0eiJdfSxHU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVwcGVyLWhvdCIsaWNvbjpbNTc2LDUxMixbMTI3Nzk4XSwiZjgxNiIsIk01NDUgNjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEw0NzguOSA2My4yQzQ1Mi4zIDQzLjYgNDE5LjUgMzIgMzg0IDMyIDM0OC45IDMyIDMxNi41IDQzLjMgMjkwLjEgNjIuNCAyNzQuMSA3NC4xIDI4NC4yIDk2IDMwNCA5NmwyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDI0YzAgMTkuOCAyMS45IDI5LjkgMzMuNiAxMy45IDE5LjEtMjYuNCAzMC40LTU4LjggMzAuNC05My45IDAtMzUuNS0xMS42LTY4LjMtMzEuMi05NC45TDU0NSA2NXpNMjcwIDEzNS41bC0xNTkuNiAyMjhDMTAxLjMgMzc2LjQgODYuNyAzODQgNzEgMzg0bC03IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjcuMSAwYzY1LjcgMCAxMjkuNy0yMC4yIDE4My41LTU3LjhMNDQwLjUgMzA2LjFDNDM1IDI5NS45IDQzMiAyODQuMiA0MzIgMjcybC01NiAwYy0zOS44IDAtNzItMzIuMi03Mi03MmwwLTU2Yy0xMi4yIDAtMjMuOS0zLTM0LTguNXoiXX0scjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyb3BsZXQtc2xhc2giLGljb246WzU3Niw1MTIsWyJ0aW50LXNsYXNoIl0sImY1YzciLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NjMuNiAzOTcuOGMxMC41LTIzLjggMTYuNC01MC4xIDE2LjQtNzcuOCAwLTkxLjItMTMwLjItMjc0LjEtMTY2LjYtMzIzLjUtNS45LTgtMTUuMi0xMi41LTI1LjItMTIuNWwtLjQgMGMtMTAgMC0xOS4zIDQuNS0yNS4yIDEyLjUtMTUuNiAyMS4yLTQ4LjUgNjYuOS04MC45IDExOS40TDQxLTI0Ljl6bTkyIDIyNy43Yy0yMS42IDQzLjgtMzcgODUuOS0zNyAxMTcuMiAwIDEwNiA4NiAxOTIgMTkyIDE5MiA0My40IDAgODMuNC0xNC40IDExNS41LTM4LjZMMTMzIDIwMi44eiJdfSxZU3Q9cjBlLGkwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkcm9wbGV0IixpY29uOlszODQsNTEyLFsxMjgxNjcsInRpbnQiXSwiZjA0MyIsIk0xOTIgNTEyQzg2IDUxMiAwIDQyNiAwIDMyMCAwIDIyOC44IDEzMC4yIDQ1LjkgMTY2LjYtMy41IDE3Mi41LTExLjUgMTgxLjgtMTYgMTkxLjgtMTZsLjQgMGMxMCAwIDE5LjMgNC41IDI1LjIgMTIuNSAzNi40IDQ5LjQgMTY2LjYgMjMyLjMgMTY2LjYgMzIzLjUgMCAxMDYtODYgMTkyLTE5MiAxOTJ6TTExMiAzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA3NS4xIDYwLjkgMTM2IDEzNiAxMzYgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTQ4LjYgMC04OC0zOS40LTg4LTg4eiJdfSxaU3Q9aTBlLE1EPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtbGluZXMiLGljb246WzM4NCw1MTIsWzEyODQ0MSwxMjg0NjIsNjE2ODYsImZpbGUtYWx0IiwiZmlsZS10ZXh0Il0sImYxNWMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTEyMCAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwem0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sWFN0PU1ELFFTdD1NRCxKU3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudHMtZG9sbGFyIixpY29uOls1NzYsNTEyLFtdLCJmNjUzIiwiTTE5MiAzMjBjMTA2IDAgMTkyLTc4LjggMTkyLTE3NlMyOTgtMzIgMTkyLTMyIDAgNDYuOCAwIDE0NGMwIDM5LjYgMTQuMyA3Ni4yIDM4LjQgMTA1LjZMMi44IDMxNi44Qy0yLjEgMzI2LjEtLjQgMzM3LjUgNyAzNDVzMTguOSA5LjIgMjguMiA0LjJMMTE2LjggMzA2YzIzLjEgOSA0OC41IDE0IDc1LjIgMTR6bTMuMiA0OGMxNi40IDgxLjkgOTQuNyAxNDQgMTg4LjggMTQ0IDI2LjcgMCA1Mi4xLTUgNzUuMi0xNGw4MS42IDQzLjJjOS4zIDQuOSAyMC43IDMuMiAyOC4yLTQuMnM5LjItMTguOSA0LjItMjguMmwtMzUuNi02Ny4yYzI0LjEtMjkuNCAzOC40LTY2IDM4LjQtMTA1LjYgMC04Mi40LTYxLjctMTUxLjUtMTQ1LTE3MC43LTExLjUgMTE1LjgtMTE1LjggMjAxLjItMjM1LjggMjAyLjd6TTE5NiAzMmMxMSAwIDIwIDkgMjAgMjBsMCA0IDggMGMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBsLTQ3LjUgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgNi4xIDQuNCAxMS4zIDEwLjQgMTIuM2w0MS43IDdjMjUuMyA0LjIgNDMuOSAyNi4xIDQzLjkgNTEuOCAwIDI2LjEtMTkgNDcuNy00NCA1MS44bDAgNC43YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLTQtMjQgMGMtMTEgMC0yMC05LTIwLTIwczktMjAgMjAtMjBsNTUuNSAwYzYuOSAwIDEyLjUtNS42IDEyLjUtMTIuNSAwLTYuMS00LjQtMTEuMy0xMC40LTEyLjNsLTQxLjctN2MtMjUuMy00LjItNDMuOS0yNi4xLTQzLjktNTEuOCAwLTI4LjggMjMuMi01Mi4yIDUyLTUyLjVsMC00YzAtMTEgOS0yMCAyMC0yMHoiXX0sYTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtbG9jYXRpb24iLGljb246WzUxMiw1MTIsWyJzZWFyY2gtbG9jYXRpb24iXSwiZjY4OSIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6TTI4OCAxNzZjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCA0OC44IDQ2LjUgMTExLjYgNjguNiAxMzguNiA2IDcuMyAxNi44IDcuMyAyMi43IDAgMjIuMS0yNyA2OC42LTg5LjggNjguNi0xMzguNnptLTExMiAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LEtTdD1hMGUsbEU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1pbnZvaWNlIixpY29uOlszODQsNTEyLFtdLCJmNTcwIiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTY0IDM4NGwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJMOTYgNDE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNODggNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTNzQuNyA2NCA4OCA2NHptMCA5Nmw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSxlenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVudGFnb24iLGljb246WzU3Niw1MTIsW10sImU3OTAiLCJNMzE2LjQtMy4xYy0xNi44LTEyLjItMzkuNi0xMi4yLTU2LjQgMEwzNS4zIDE2MC4yYy0xNi44IDEyLjItMjMuOSAzMy45LTE3LjQgNTMuN2w4NS44IDI2NC4xYzYuNCAxOS44IDI0LjkgMzMuMiA0NS43IDMzLjJsMjc3LjcgMGMyMC44IDAgMzkuMi0xMy40IDQ1LjctMzMuMmw4NS44LTI2NC4xYzYuNC0xOS44LS42LTQxLjQtMTcuNC01My43TDMxNi40LTMuMXoiXX0sdHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJlcHVibGljYW4iLGljb246WzY0MCw1MTIsW10sImY3NWUiLCJNMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMmwyMjQgMGM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGwwIDY0LTU0NCAwIDAtNjR6bTE1Mi0zMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0yMzIgMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek0yODAgMTYwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTEyOCAyODhsNDE2IDAgMCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGwwLTQ4LTMyIDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NC0xOTIgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2MCAxMjggMHoiXX0sbjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNob3AiLGljb246WzU3Niw1MTIsWyJzdG9yZS1hbHQiXSwiZjU0ZiIsIk0yMS41IDE4MS4xTDc4LjMgNjcuNEM4OS4yIDQ1LjcgMTExLjMgMzIgMTM1LjYgMzJsMzA0LjkgMGMyNC4yIDAgNDYuNCAxMy43IDU3LjIgMzUuNGw1Ni44IDExMy43YzMuNiA3LjIgNS41IDE1LjEgNS41IDIzLjIgMCAyNy4zLTIxLjIgNDkuNy00OCA1MS42TDUxMiA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xOTItOTYgMCAwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTc2LjFjLTI2LjgtMS45LTQ4LTI0LjMtNDgtNTEuNiAwLTggMS45LTE2IDUuNS0yMy4yek0xMjggMjU2bDAgMTEyYzAgOC44IDcuMiAxNiAxNiAxNmwxMjggMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xMTItMTYwIDB6Il19LHJ6dD1uMGUsa0Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsbSIsaWNvbjpbNDQ4LDUxMixbMTI3OTAyLDYyMzY4LCJmaWxtLWFsdCIsImZpbG0tc2ltcGxlIl0sImYwMDgiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTQ4IDM2OGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0zMDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHpNNDggMjQwbDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTMwNC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek00OCAxMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZMNjQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNnpNMzUyIDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6Il19LGl6dD1rRCxhenQ9a0Qsbnp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLWNpcmNsZS14bWFyayIsaWNvbjpbNTc2LDUxMixbXSwiZTRkNCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0xMC41LTE0LjYtMTktMzAuNy0yNS4xLTQ4bC03NC45IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzIgMCA0IC4yIDUuOSAuNSA2LTIzLjYgMTYuMy00NS40IDMwLjEtNjQuNWwtNCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0YzI3LjUtMTkuOCA2MC4zLTMyLjQgOTYtMzUuNEw0MTYgNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMOTYgMHptMzIgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI3MiA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek0xMjggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTQzMiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0yMi42LTE0NGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNDU0LjYgNDAweiJdfSxvenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tbWVudHMiLGljb246WzU3Niw1MTIsWzEyODQ5MCw2MTY3MF0sImYwODYiLCJNMzg0IDE0NGMwIDk3LjItODYgMTc2LTE5MiAxNzYtMjYuNyAwLTUyLjEtNS03NS4yLTE0TDM1LjIgMzQ5LjJjLTkuMyA0LjktMjAuNyAzLjItMjguMi00LjJzLTkuMi0xOC45LTQuMi0yOC4ybDM1LjYtNjcuMkMxNC4zIDIyMC4yIDAgMTgzLjYgMCAxNDQgMCA0Ni44IDg2LTMyIDE5Mi0zMlMzODQgNDYuOCAzODQgMTQ0em0wIDM2OGMtOTQuMSAwLTE3Mi40LTYyLjEtMTg4LjgtMTQ0IDEyMC0xLjUgMjI0LjMtODYuOSAyMzUuOC0yMDIuNyA4My4zIDE5LjIgMTQ1IDg4LjMgMTQ1IDE3MC43IDAgMzkuNi0xNC4zIDc2LjItMzguNCAxMDUuNmwzNS42IDY3LjJjNC45IDkuMyAzLjIgMjAuNy00LjIgMjguMnMtMTguOSA5LjItMjguMiA0LjJMNDU5LjIgNDk4Yy0yMy4xIDktNDguNSAxNC03NS4yIDE0eiJdfSxzenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFncyIsaWNvbjpbNTc2LDUxMixbXSwiZjAyYyIsIk00MDEuMiAzOS4xTDU0OS40IDE4OS40YzI3LjcgMjguMSAyNy43IDczLjEgMCAxMDEuMkwzOTMgNDQ4LjljLTkuMyA5LjQtMjQuNSA5LjUtMzMuOSAuMnMtOS41LTI0LjUtLjItMzMuOUw1MTUuMyAyNTYuOGM5LjItOS4zIDkuMi0yNC40IDAtMzMuN0wzNjcgNzIuOWMtOS4zLTkuNC05LjItMjQuNiAuMi0zMy45czI0LjYtOS4yIDMzLjkgLjJ6TTMyLjEgMjI5LjVMMzIuMSA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwxMzMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDE0NCAxNDRjMjUgMjUgMjUgNjUuNSAwIDkwLjVMMjg1LjQgNDE4LjdjLTI1IDI1LTY1LjUgMjUtOTAuNSAwbC0xNDQtMTQ0Yy0xMi0xMi0xOC43LTI4LjMtMTguNy00NS4zem0xNDQtODUuNWEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxsenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3VuIixpY29uOls1NzYsNTEyLFtdLCJlMTliIiwiTTUyOCA1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgtNDQ4IDBDMTQuMyA2NCAwIDc4LjMgMCA5NkwwIDIwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMCAwYzIwLjggMCAzNi4xIDE5LjYgMzEgMzkuOEwzMyA0NDAuMmMtMi40IDkuNi0uMiAxOS43IDUuOCAyNy41UzU0LjEgNDgwIDY0IDQ4MGw5NiAwYzE0LjcgMCAyNy41LTEwIDMxLTI0LjJMMjE3IDM1MiAzMjEuNCAzNTJjMjMuNyAwIDQ0LjgtMTQuOSA1Mi43LTM3LjJsMjYuNy03NC44IDMxLjEgMGM4LjUgMCAxNi42LTMuNCAyMi42LTkuNGwyMi42LTIyLjYgNjYuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2IDAgMC04ek0zMjEuNCAzMDRsLTkyLjUgMCAxNi02NCAxMDUgMC0yMSA1OC43Yy0xLjEgMy4yLTQuMiA1LjMtNy41IDUuM3pNODAgMTI4bDM4NCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2TDgwIDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnoiXX0sSmc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZWNrIixpY29uOls1MTIsNTEyLFs2MTUzMywiY2hlY2stY2lyY2xlIl0sImYwNTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAxIDAtNTEyIDI1NiAyNTYgMCAxIDEgMCA1MTJ6TTM3NCAxNDUuN2MtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNMMjIxLjEgMzE1LjIgMTY5IDI2My4xYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDcyIDcyYzUgNSAxMS44IDcuNSAxOC44IDdzMTMuNC00LjEgMTcuNS05LjhMMzc5LjMgMTc5LjJjNy44LTEwLjcgNS40LTI1LjctNS4zLTMzLjV6Il19LGN6dD1KZyxkenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2NvcnBpbyIsaWNvbjpbNjQwLDUxMixbXSwiZTg0ZSIsIk0zNjggMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJsMCAyODkuN2MwIDcuOSA2LjQgMTQuMyAxNC4zIDE0LjMgMy45IDAgNy42LTEuNiAxMC4yLTQuM2w0MC4xLTQxLjEtOS43LTkuN2MtNi45LTYuOS04LjktMTcuMi01LjItMjYuMlM1NDIuMyAzNTIgNTUyIDM1Mmw2NCAwIDIuNSAuMWMxMi4xIDEuMiAyMS41IDExLjUgMjEuNSAyMy45bDAgNjQtLjMgMy42Yy0xLjIgOC4yLTYuNyAxNS4zLTE0LjUgMTguNi05IDMuNy0xOS4zIDEuNi0yNi4yLTUuMmwtOS4xLTkuMS0zOS42IDQwLjZjLTE0LjcgMTUuMS0zNC45IDIzLjYtNTYgMjMuNi00My4zIDAtNzguMy0zNS4xLTc4LjMtNzguM0w0MTYgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzIwYzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiA5NC4yIDMyIDgwLjYgMzIgNjQgMzIgNDYuMyA0Ni4zIDMyIDY0IDMyIDkxIDMyIDExNS4zIDQzLjEgMTMyLjcgNjEgMTUyLjYgNDMgMTc5IDMyIDIwOCAzMiAyMzkuMyAzMiAyNjcuNyA0NC45IDI4OCA2NS43IDMwOC4zIDQ0LjkgMzM2LjYgMzIgMzY4IDMyeiJdfSxvMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaWQtY2FyZC1jbGlwIixpY29uOls1NzYsNTEyLFsiaWQtY2FyZC1hbHQiXSwiZjQ3ZiIsIk0yNTYtMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0LTEyOCAwIDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDMybDExMiAwIDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMiAxMTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJ6TTE3NiA0MDBjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6TTI4OCAyODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LHV6dD1vMGUscHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vb24iLGljb246WzUxMiw1MTIsWzEyNzc2OSw5MjE0XSwiZjE4NiIsIk0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZTMTE0LjYgNTEyIDI1NiA1MTJjNjguOCAwIDEzMS4zLTI3LjIgMTc3LjMtNzEuNCA3LjMtNyA5LjQtMTcuOSA1LjMtMjcuMXMtMTMuNy0xNC45LTIzLjgtMTQuMWMtNC45IC40LTkuOCAuNi0xNC44IC42LTEwMS42IDAtMTg0LTgyLjQtMTg0LTE4NCAwLTcyLjEgNDEuNS0xMzQuNiAxMDIuMS0xNjQuOCA5LjEtNC41IDE0LjMtMTQuMyAxMy4xLTI0LjRTMzIyLjYgOC41IDMxMi43IDYuM0MyOTQuNCAyLjIgMjc1LjQgMCAyNTYgMHoiXX0saHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9pbC13ZWxsIixpY29uOls1NzYsNTEyLFtdLCJlNTMyIiwiTTUyOC4zIDYxLjNjLTExLjQtNDIuNy01NS4zLTY4LTk4LTU2LjZMNDE0LjkgOC44QzM5Ny44IDEzLjQgMzg3LjcgMzEgMzkyLjMgNDhsMjQuNSA5MS40LTEwOC4yIDI4LjEtNi4zLTE4LjFDMjk3LjcgMTM2LjYgMjg1LjYgMTI4IDI3MiAxMjhzLTI1LjcgOC42LTMwLjIgMjEuNGwtMTMuNiAzOS0xMzIuMiAzNC4zIDAtMzguNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDI2NC0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMzcuMyAwLTYxLjQtMTc1LjQtNjIuMiAxNi4xIDIyLjEgNjMuMi02Ni42IDAgMTkuOS01Ni45LTc0LjYgMTkuMy00Ni43IDEzMy41LTQxLjMgMCAwLTE1OS4yIDMzNy40LTg3LjUgMjUuMiA5NGM0LjYgMTcuMSAyMi4xIDI3LjIgMzkuMiAyMi42bDE1LjUtNC4xYzQyLjctMTEuNCA2OC01NS4zIDU2LjYtOThMNTI4LjMgNjEuM3pNMjA1LjEgNDQ4bDE2LjgtNDggMTAwLjIgMCAxNi44IDQ4LTEzMy44IDB6Il19LHMwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWNob2dyYXBoLWRpZ2l0YWwiLGljb246WzU3Niw1MTIsWyJkaWdpdGFsLXRhY2hvZ3JhcGgiXSwiZjU2NiIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em02NCAzMmwwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNODggMzUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDM1MnptMjU2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwek00OTYgMTkyYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpNODggMzEyYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMTA0LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTU2IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sZnp0PXMwZSxsMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGV0IixpY29uOls0NDgsNTEyLFsidGFibGV0LWFuZHJvaWQiXSwiZjNmYiIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAwek0xODQgNDAwbDgwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LG16dD1sMGUsT2c9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVibGUtc2lnbiIsaWNvbjpbNDQ4LDUxMixbODM4MSwicm91YmxlIiwicnViIiwicnVibGUiXSwiZjE1OCIsIk0xMTIgMzJDOTQuMyAzMiA4MCA0Ni4zIDgwIDY0bDAgMjA4LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDQ4LTQwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDAgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAxNTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTUyIDAgMC00OCAxMTIgMGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NFMzMzUuNSAzMiAyNTYgMzJMMTEyIDMyek0yNTYgMjU2bC0xMTIgMCAwLTE2MCAxMTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHoiXX0sZ3p0PU9nLGJ6dD1PZyx2enQ9T2cseHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3NlZC1jYXB0aW9uaW5nIixpY29uOls1MTIsNTEyLFtdLCJmMjBhIiwiTTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTE1MiA4MGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MGMwLTQuNCAzLjYtOCA4LTh6bTE2OCA4YzAtNC40IDMuNi04IDgtOGwzMiAwYzQuNCAwIDggMy42IDggOCAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzAuOS0yNS4xLTU2LTU2LTU2bC0zMiAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDgwYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDMyIDBjMzAuOSAwIDU2LTI1LjEgNTYtNTYgMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCA0LjQtMy42IDgtOCA4bC0zMiAwYy00LjQgMC04LTMuNi04LThsMC04MHoiXX0seXp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbiIsaWNvbjpbNTEyLDUxMixbMTI4Mzk0XSwiZjMwNCIsIk0zNTIuOSAyMS4yTDMwOCA2Ni4xIDQ0NS45IDIwNCA0OTAuOCAxNTkuMUM1MDQuNCAxNDUuNiA1MTIgMTI3LjIgNTEyIDEwOHMtNy42LTM3LjYtMjEuMi01MS4xTDQ1NS4xIDIxLjJDNDQxLjYgNy42IDQyMy4yIDAgNDA0IDBzLTM3LjYgNy42LTUxLjEgMjEuMnpNMjc0LjEgMTAwTDU4LjkgMzE1LjFjLTEwLjcgMTAuNy0xOC41IDI0LjEtMjIuNiAzOC43TC45IDQ4MS42Yy0yLjMgOC4zIDAgMTcuMyA2LjIgMjMuNHMxNS4xIDguNSAyMy40IDYuMmwxMjcuOC0zNS41YzE0LjYtNC4xIDI3LjktMTEuOCAzOC43LTIyLjZMNDEyIDIzNy45IDI3NC4xIDEwMHoiXX0sd3p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsYW5lIixpY29uOls1NzYsNTEyLFtdLCJmMDcyIiwiTTUyMCAyMDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZzLTI1LjEgNTYtNTYgNTZsLTEyNy4zIDAtMTU5LjIgMTczLjZjLTYuMSA2LjYtMTQuNiAxMC40LTIzLjYgMTAuNGwtNDMuNyAwYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw1NC4zLTE2Mi45LTk5LjcgMC01Mi44IDY2Yy0zIDMuOC03LjYgNi0xMi41IDZsLTE5LjggMGMtMTAuNCAwLTE4LTkuOC0xNS41LTE5LjlMMzIgMjU2IDUgMTQ3LjlDMi40IDEzNy44IDEwLjEgMTI4IDIwLjUgMTI4bDE5LjggMGM0LjkgMCA5LjUgMi4yIDEyLjUgNmw1Mi44IDY2IDk5LjcgMC01NC4zLTE2Mi45QzE0Ny42IDI2LjcgMTU1LjMgMTYgMTY2LjIgMTZsNDMuNyAwYzkgMCAxNy41IDMuOCAyMy42IDEwLjRMMzkyLjcgMjAwIDUyMCAyMDB6Il19LE16dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZXMiLGljb246WzU3Niw1MTIsW10sImYzMDIiLCJNOTYgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTMyMCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw5NiA5NnpNMjQgMTI4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMjk2YzAgOC44IDcuMiAxNiAxNiAxNmwzNjAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0em0xNjggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xOTYuNSAxMS41Yy00LjQtNy4xLTEyLjEtMTEuNS0yMC41LTExLjVzLTE2LjEgNC40LTIwLjUgMTEuNWwtNTYuMyA5Mi4xLTI0LjUtMzAuNmMtNC42LTUuNy0xMS40LTktMTguNy05cy0xNC4yIDMuMy0xOC43IDlsLTY0IDgwYy01LjggNy4yLTYuOSAxNy4xLTIuOSAyNS40UzE3NC44IDM1MiAxODQgMzUybDI3MiAwYzguNyAwIDE2LjctNC43IDIwLjktMTIuM3M0LjEtMTYuOC0uNS0yNC4zbC04OC0xNDR6Il19LGMwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb2JpbGUtc2NyZWVuIixpY29uOlszODQsNTEyLFsibW9iaWxlLWFuZHJvaWQtYWx0Il0sImYzY2YiLCJNMTYgNjRDMTYgMjguNyA0NC43IDAgODAgMEwzMDQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEw4MCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDE2IDY0ek0xMjggNDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek0zMDQgNjRsLTIyNCAwIDAgMzA0IDIyNCAwIDAtMzA0eiJdfSxrenQ9YzBlLFN6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJndWFyYW5pLXNpZ24iLGljb246WzM4NCw1MTIsW10sImUxOWEiLCJNMTkyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDEuNUM3My4zIDc3LjMgMCAxNTguMSAwIDI1NlM3My4zIDQzNC43IDE2OCA0NDYuNWwwIDQxLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQxLjVjOTQuNy0xMS44IDE2OC05Mi42IDE2OC0xOTAuNSAwLTE3LjctMTQuMy0zMi0zMi0zMmwtMTM2IDAgMC05My44YzI1LjMgNC44IDQ3LjkgMTcgNjUuNiAzNC4zIDEyLjYgMTIuNCAzMi45IDEyLjIgNDUuMy0uNHMxMi4yLTMyLjktLjUtNDUuM0MyOTcuMiA5MC4yIDI1OC44IDcwLjggMjE2IDY1LjVMMjE2IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0ek0xNjggMTMwLjJsMCAyNTEuNUMxMDguOCAzNzAuNSA2NCAzMTguNSA2NCAyNTZzNDQuOC0xMTQuNSAxMDQtMTI1Ljh6bTQ4IDI1MS41bDAtOTMuOCAxMDAgMGMtMTIuMyA0Ny42LTUxLjIgODQuNS0xMDAgOTMuOHoiXX0sZDBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhZy1zaG9wcGluZyIsaWNvbjpbNDQ4LDUxMixbInNob3BwaW5nLWJhZyJdLCJmMjkwIiwiTTE2MCA4MGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0bDAgNDgtMTI4IDAgMC00OHptLTQ4IDQ4bC02NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OEwwIDM4NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMDhjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDAgMC00OGMwLTYxLjktNTAuMS0xMTItMTEyLTExMlMxMTIgMTguMSAxMTIgODBsMCA0OHptMjQgNDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0xNTIgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0senp0PWQwZSx1MGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLXJpZ2h0IixpY29uOls1MTIsNTEyLFs2MTgzOCwiYXJyb3ctYWx0LWNpcmNsZS1yaWdodCJdLCJmMzVhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDAgMjU2IDI1NiAwIDEgMCAtNTEyIDB6bTM4Ny4zIDExLjNsLTEwNCAxMDRjLTQuNiA0LjYtMTEuNSA1LjktMTcuNCAzLjVTMjU2IDM2Ni41IDI1NiAzNjBsMC01Ni05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDAgMC01NmMwLTYuNSAzLjktMTIuMyA5LjktMTQuOHMxMi45LTEuMSAxNy40IDMuNWwxMDQgMTA0YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42eiJdfSxDenQ9dTBlLHAwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaG9uZS12b2x1bWUiLGljb246WzU3Niw1MTIsWyJ2b2x1bWUtY29udHJvbC1waG9uZSJdLCJmMmEwIiwiTTM0NC0zMmMxMjguMSAwIDIzMiAxMDMuOSAyMzIgMjMyIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTAxLjYtODIuNC0xODQtMTg0LTE4NC0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em04IDE5MmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTMyMCA4OGMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OC0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMTQ0LjEgMS40YzE5LjctNS40IDQwLjMgNC43IDQ4LjEgMjMuNWw0MC41IDk3LjNjNi45IDE2LjUgMi4xIDM1LjYtMTEuOCA0N2wtNDQuMSAzNi4xYzMyLjUgNzEuNiA4OSAxMzAgMTU5LjMgMTY0LjlMMzc0LjcgMzIzYzExLjMtMTMuOSAzMC40LTE4LjYgNDctMTEuOEw1MTkgMzUxLjhjMTguOCA3LjggMjguOSAyOC40IDIzLjUgNDguMWwtMS41IDUuNUM1MjMuNCA0NzAuMSA0NjAuOSA1MjUuMyAzODQuNiA1MDkuMiAyMDkuNiA0NzIuMSA3MS45IDMzNC40IDM0LjggMTU5LjQgMTguNyA4My4xIDczLjkgMjAuNiAxMzguNSAyLjlsNS41LTEuNXoiXX0sVHp0PXAwZSxfenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3ViZXMiLGljb246WzUxMiw1MTIsW10sImYxYjMiLCJNMjg0LTEuM2MtMTcuMy0xMC0zOC43LTEwLTU2IDBMMTQzLjggNDcuM2MtMTcuMyAxMC0yOCAyOC41LTI4IDQ4LjVsMCAxMDEuOS04OC4zIDUxYy0xNy4zIDEwLTI4IDI4LjUtMjggNDguNWwwIDk3LjNjMCAyMCAxMC43IDM4LjUgMjggNDguNWw4NC4zIDQ4LjZjMTcuMyAxMCAzOC43IDEwIDU2IDBsODguMy01MSA4OC4zIDUxYzE3LjMgMTAgMzguNyAxMCA1NiAwTDQ4NC41IDQ0M2MxNy4zLTEwIDI4LTI4LjUgMjgtNDguNWwwLTk3LjNjMC0yMC0xMC43LTM4LjUtMjgtNDguNWwtODguMy01MSAwLTEwMS45YzAtMjAtMTAuNy0zOC41LTI4LTQ4LjVMMjg0LTEuM3pNMjMyIDI5Mi42bDAgMTA2LjUtODguMyA1MWMtMS4yIC43LTIuNiAxLjEtNCAxLjFsMC0xMDUuMyA5Mi4zLTUzLjN6bTIzMS40IC42Yy43IDEuMiAxLjEgMi42IDEuMSA0bDAgOTcuM2MwIDIuOS0xLjUgNS41LTQgNi45bC04NC4zIDQ4LjZjLTEuMiAuNy0yLjYgMS4xLTQgMS4xbDAtMTA1LjMgOTEuMi01Mi42ek0zNDguMyA5NS44bDAgMTAxLjktOTIuMyA1My4zIDAtMTA2LjUgOTEuMi01Mi42Yy43IDEuMiAxLjEgMi42IDEuMSA0eiJdfSxMenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGhvbmUiLGljb246WzUxMiw1MTIsWzEyODIyMiwxMjgzNzldLCJmMDk1IiwiTTE2MC4yIDI1QzE1Mi4zIDYuMSAxMzEuNy0zLjkgMTEyLjEgMS40bC01LjUgMS41Yy02NC42IDE3LjYtMTE5LjggODAuMi0xMDMuNyAxNTYuNCAzNy4xIDE3NSAxNzQuOCAzMTIuNyAzNDkuOCAzNDkuOCA3Ni4zIDE2LjIgMTM4LjgtMzkuMSAxNTYuNC0xMDMuN2wxLjUtNS41YzUuNC0xOS43LTQuNy00MC4zLTIzLjUtNDguMWwtOTcuMy00MC41Yy0xNi41LTYuOS0zNS42LTIuMS00NyAxMS44bC0zOC42IDQ3LjJDMjMzLjkgMzM1LjQgMTc3LjMgMjc3IDE0NC44IDIwNS4zTDE4OSAxNjkuM2MxMy45LTExLjMgMTguNi0zMC40IDExLjgtNDdMMTYwLjIgMjV6Il19LEF6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b3JpaS1nYXRlIixpY29uOls0NDgsNTEyLFs5OTYxXSwiZjZhMSIsIk0wIDk2TDAgMjguNUMwIDIxLjYgNS42IDE2IDEyLjUgMTYgMTQuOCAxNiAxNyAxNi42IDE5IDE3LjhMNTggNDEuMkM4Mi45IDU2LjEgMTExLjMgNjQgMTQwLjMgNjRsMTY3LjQgMGMyOSAwIDU3LjUtNy45IDgyLjMtMjIuOGwzOS0yMy40YzEuOS0xLjIgNC4yLTEuOCA2LjQtMS44IDYuOSAwIDEyLjUgNS42IDEyLjUgMTIuNUw0NDggOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsMCA2NCAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNiAwIDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTE5MiAwIDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTkyLTE2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTY0QzI4LjcgMTYwIDAgMTMxLjMgMCA5NnpNMTI4IDIyNGw2NCAwIDAtNjQtNjQgMCAwIDY0em0xMjggMGw2NCAwIDAtNjQtNjQgMCAwIDY0eiJdfSxEenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFjb24iLGljb246WzU3Niw1MTIsWzEyOTM2M10sImY3ZTUiLCJNNTU3IDk2LjdjMTQuNCAxNC40IDEyLjQgMzguNC00LjMgNTAuMmwtNjQuNiA0NS43Yy00My43IDMwLjktNzkuMiA3MS45LTEwMy40IDExOS42bC0yNS4zIDQ5LjhjLTI1LjEgNDkuMy02Mi4xIDkxLjUtMTA3LjggMTIyLjZsLTc0LjEgNTAuNmMtMTMuMSA4LjktMzAuNyA3LjMtNDEuOC0zLjlsLTQ0LjktNDQuOSA4Ni41LTY2LjVjNDIuMy0zMi41IDc2LjctNzQuMyAxMDAuNi0xMjJsMjQuNS00OS4xYzI0LjUtNDkgNjEuOC05MC42IDEwNy45LTEyMC4ybDEwOC43LTY5LjkgMzggMzh6TTQ4NC4yIDIzLjlMMzg0LjMgODguMmMtNTMuNCAzNC4zLTk2LjUgODIuNC0xMjQuOSAxMzkuMWwtMjQuNSA0OS4xYy0yMC42IDQxLjMtNTAuMyA3Ny4zLTg2LjkgMTA1LjRsLTkxLjQgNzAuMy0zNi45LTM2LjljLTE0LjQtMTQuNC0xMi40LTM4LjQgNC4zLTUwLjJsNjQuNi00NS43YzQzLjctMzAuOSA3OS4yLTcxLjkgMTAzLjQtMTE5LjZsMjUuMy00OS44QzI0Mi4zIDEwMC44IDI3OS4zIDU4LjYgMzI1IDI3LjRsNzQuMS01MC42YzEzLjEtOC45IDMwLjYtNy4zIDQxLjggMy45bDQzLjMgNDMuM3oiXX0sRXp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1mYWxsaW5nLWJ1cnN0IixpY29uOls1NzYsNTEyLFtdLCJlNTQ3IiwiTTI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNS40YzAgNTUuMi0yMy43IDEwNy02My45IDE0My4xbDYyLjkgNzUuNSA4OSAwYzE1LjEgMCAyOS4zIDcuMSAzOC40IDE5LjJsNDMuMiA1Ny42YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOHMtMzQuMiA3LjctNDQuOC02LjRMMzY4IDMyMCAyNjMuMiAzMjAgMzc2LjggNDU5LjhjMTEuMSAxMy43IDkuMSAzMy45LTQuNyA0NXMtMzMuOSA5LjEtNDUtNC43TDEzNy40IDI2Ni42Yy02LjEgMTUtOS40IDMxLjMtOS40IDQ4bDAgNjkuNGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY5LjRjMC02Ny40IDM1LjQtMTI5LjkgOTMuMi0xNjQuNmw0LjYtMi44QzIwMC40IDEyNCAyMjQgODIuNCAyMjQgMzcuNGwwLTUuNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTYgODhBNTYgNTYgMCAxIDEgMTI4IDg4IDU2IDU2IDAgMSAxIDE2IDg4em0zNzYtNy45YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4em0xMDQgMTUyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDB6bS01NC41LTk3LjVjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMzLjkgMzMuOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDB6Il19LGgwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxdW90ZS1yaWdodCIsaWNvbjpbNDQ4LDUxMixbODIyMSwicXVvdGUtcmlnaHQtYWx0Il0sImYxMGUiLCJNNDQ4IDI5NmMwIDY2LjMtNTMuNyAxMjAtMTIwIDEyMGwtOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDggMGMzMC45IDAgNTYtMjUuMSA1Ni01NmwwLTgtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTM2em0tMjU2IDBjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBsLTggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4IDBjMzAuOSAwIDU2LTI1LjEgNTYtNTZsMC04LTY0IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEzNnoiXX0sJHp0PWgwZSxJenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1mbGFnIixpY29uOls2NDAsNTEyLFtdLCJlNTE0IiwiTTQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDI4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTQ0OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjY3LjUgNTkuMUw0MDAgMTg2LjkgNDAwIDUwMy40Yy05LjQgNS40LTIwLjMgOC42LTMyIDguNmwtMjU2IDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTQ0LTE5LjkgMEMxMi42IDMwNCAwIDI5MS40IDAgMjc1LjkgMCAyNjguMyAzLjEgMjYxIDguNiAyNTUuN0wyMTIuNSA1OS4xQzIxOS45IDUyIDIyOS43IDQ4IDI0MCA0OHMyMC4xIDQgMjcuNSAxMS4xek0yMDQuOCAyNTYuOGwwIDQ0LTQ0IDBjLTkuNyAwLTE3LjYgNy45LTE3LjYgMTcuNmwwIDM1LjJjMCA5LjcgNy45IDE3LjYgMTcuNiAxNy42bDQ0IDAgMCA0NGMwIDkuNyA3LjkgMTcuNiAxNy42IDE3LjZsMzUuMiAwYzkuNyAwIDE3LjYtNy45IDE3LjYtMTcuNmwwLTQ0IDQ0IDBjOS43IDAgMTcuNi03LjkgMTcuNi0xNy42bDAtMzUuMmMwLTkuNy03LjktMTcuNi0xNy42LTE3LjZsLTQ0IDAgMC00NGMwLTkuNy03LjktMTcuNi0xNy42LTE3LjZsLTM1LjIgMGMtOS43IDAtMTcuNiA3LjktMTcuNiAxNy42eiJdfSxQenQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJlc2NyaXB0aW9uIixpY29uOls0NDgsNTEyLFtdLCJmNWIxIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyTDAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA1MC43IDAgMTI4IDEyOC0xMDUuNCAxMDUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwyODggMzk3LjMgMzkzLjQgNTAyLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wzMzMuMyAzNTIgNDM4LjYgMjQ2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjg4IDMwNi43IDIwMi4yIDIyMC45QzI1MS40IDIwOS4xIDI4OCAxNjQuOCAyODggMTEyIDI4OCA1MC4xIDIzNy45IDAgMTc2IDBMMzIgMHpNMTc2IDE2MGwtMTEyIDAgMC05NiAxMTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OHoiXX0sTnp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtdGhyZWUiLGljb246WzQ0OCw1MTIsWzk4NThdLCJmNTI3IiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTY0IDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMTI4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyOCA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEZ6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGQ2IiwiTTMyIDY0QzMyIDI4LjcgNjAuNyAwIDk2IDBMMzUyIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguN2wwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMzIgNjR6TTE3NiAzODRsMCA4MCA4MCAwIDAtNjQuMWMwLTEzLjcgMS45LTI3IDUuNS0zOS42LTUuNy01LjItMTMuMi04LjMtMjEuNS04LjNsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zMDcgMjI0LjNjLTEtLjItMi0uMy0zLS4zbC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYuNyAwYzIuMS0yMi44IDguNC00NC4zIDE4LjMtNjMuN3pNMTQ0IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNDQgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTM1MiA4MC4xYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgNDcuOSA2NCAwIDAtNDcuOXpNMzUyIDQwMGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NnoiXX0sZjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImlkLWNhcmQiLGljb246WzU3Niw1MTIsWzYyMTQ3LCJkcml2ZXJzLWxpY2Vuc2UiXSwiZjJjMiIsIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDQ0OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0TDAgOTZ6bTAgNDhsNTc2IDAgMCAyNzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDE0NHpNMjQ3LjMgNDE2YzIwLjIgMCAzNS4zLTE5LjQgMjIuNC0zNS0xNC43LTE3LjctMzYuOS0yOS02MS43LTI5bC02NCAwYy0yNC44IDAtNDcgMTEuMy02MS43IDI5LTEyLjkgMTUuNiAyLjIgMzUgMjIuNCAzNWwxNDIuNSAwek0xNzYgMzEyYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0zNjAgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDExMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMTIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTEyIDB6Il19LE96dD1mMGUsbTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNpcmNsZS1wbGF5IixpY29uOls1MTIsNTEyLFs2MTQ2OSwicGxheS1jaXJjbGUiXSwiZjE0NCIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwek0xODguMyAxNDcuMWMtNy42IDQuMi0xMi4zIDEyLjMtMTIuMyAyMC45bDAgMTc2YzAgOC43IDQuNyAxNi43IDEyLjMgMjAuOXMxNi44IDQuMSAyNC4zLS41bDE0NC04OGM3LjEtNC40IDExLjUtMTIuMSAxMS41LTIwLjVzLTQuNC0xNi4xLTExLjUtMjAuNWwtMTQ0LTg4Yy03LjQtNC41LTE2LjctNC43LTI0LjMtLjV6Il19LFJ6dD1tMGUsZzBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtbGF1Z2gtYmVhbSIsaWNvbjpbNTEyLDUxMixbMTI4NTEzLCJsYXVnaC1iZWFtIl0sImY1OWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEwMS42IDMxNGMtMy43LTEzLjcgNy41LTI2IDIxLjctMjZsMjY1LjQgMGMxNC4yIDAgMjUuNCAxMi4zIDIxLjcgMjYtMTguNSA2OC04MC42IDExOC0xNTQuNCAxMThTMTIwIDM4MiAxMDEuNiAzMTR6TTE3NiAxNjRjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxCenQ9ZzBlLEh6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsZWFmIixpY29uOls1MTIsNTEyLFtdLCJmMDZjIiwiTTQ3MS4zIDYuN0M0NzcuNyAuNiA0ODctMS42IDQ5NS42IDEuMiA1MDUuNCA0LjUgNTEyIDEzLjcgNTEyIDI0bDAgMTg2LjljMCAxMzEuMi0xMDguMSAyMzcuMS0yMzguOCAyMzcuMS03NyAwLTE0My40LTQ5LjUtMTY3LjUtMTE4LjctMzUuNCAzMC44LTU3LjcgNzYuMS01Ny43IDEyNi43IDAgMTMuMy0xMC43IDI0LTI0IDI0UzAgNDY5LjMgMCA0NTZDMCAzODEuMSAzOC4yIDMxNS4xIDk2LjEgMjc2LjMgMTMxLjQgMjUyLjcgMTczLjUgMjQwIDIxNiAyNDBsODAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtODAgMGMtMzkuNyAwLTc3LjMgOC44LTExMSAyNC41IDIzLjMtNzAgODkuMi0xMjAuNSAxNjctMTIwLjUgNjYuNCAwIDExNS44LTIyLjEgMTQ4LjctNDQgMTkuMi0xMi44IDM1LjUtMjguMSA1MC43LTQ1LjN6Il19LHF6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1jaGltbmV5LXVzZXIiLGljb246WzUxMiw1MTIsW10sImUwNjUiLCJNMjM0LjIgOC42YzEyLjMtMTEuNCAzMS4zLTExLjQgNDMuNSAwTDM2OCA5Mi4zIDM2OCA4MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTAxLjUgMzcuOCAzNS4xYzkuNiA5IDEyLjggMjIuOSA4IDM1LjFTNDkzLjIgMjcyIDQ4MCAyNzJsLTE2IDAgMCAxNzZjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI4OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3Ni0xNiAwYy0xMy4yIDAtMjUtOC4xLTI5LjgtMjAuM3MtMS42LTI2LjIgOC0zNS4xbDIyNC0yMDh6TTMxMiAyNTZhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek0xNDQgNDMyYzAgOC44IDcuMiAxNiAxNiAxNmwxOTIgMGM4LjggMCAxNi03LjIgMTYtMTYgMC00NC4yLTM1LjgtODAtODAtODBsLTY0IDBjLTQ0LjIgMC04MCAzNS44LTgwIDgweiJdfSxTRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3RhdGUtcmlnaHQiLGljb246WzUxMiw1MTIsWyJyZWRvLWFsdCIsInJvdGF0ZS1mb3J3YXJkIl0sImYyZjkiLCJNNDg4IDE5MmwtMTQ0IDBjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOHMtMS43LTE5LjMgNS4yLTI2LjJsNDYuNy00Ni43Yy03NS4zLTU4LjYtMTg0LjMtNTMuMy0yNTMuNSAxNS45LTc1IDc1LTc1IDE5Ni41IDAgMjcxLjVzMTk2LjUgNzUgMjcxLjUgMGM4LjItOC4yIDE1LjUtMTYuOSAyMS45LTI2LjEgMTAuMS0xNC41IDMwLjEtMTggNDQuNi03LjlzMTggMzAuMSA3LjkgNDQuNmMtOC41IDEyLjItMTguMiAyMy44LTI5LjEgMzQuNy0xMDAgMTAwLTI2Mi4xIDEwMC0zNjIgMFMtMjUgMTc1IDc1IDc1Yzk0LjMtOTQuMyAyNDMuNy05OS42IDM0NC4zLTE2LjJMNDcxIDdjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMlM1MTIgMTQuMyA1MTIgMjRsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjR6Il19LGp6dD1TRCxWenQ9U0QsVXp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvb3RoIixpY29uOls0NDgsNTEyLFsxMjk0NjNdLCJmNWM5IiwiTTE0NSA1LjdMMjI0IDMyIDMwMyA1LjdDMzE0LjMgMS45IDMyNiAwIDMzNy45IDAgMzk4LjcgMCA0NDggNDkuMyA0NDggMTEwLjFsMCA2OC41YzAgMjkuNC05LjUgNTguMS0yNy4yIDgxLjZsLTEuMSAxLjVjLTEyLjkgMTcuMi0yMS4zIDM3LjQtMjQuMyA1OC43TDM3My43IDQ3MS45Yy0zLjMgMjMtMjMgNDAuMS00Ni4yIDQwLjEtMjIuOCAwLTQyLjMtMTYuNS00Ni0zOUwyNjEuMyAzNTEuNmMtMy0xOC4yLTE4LjgtMzEuNi0zNy4zLTMxLjZzLTM0LjIgMTMuNC0zNy4zIDMxLjZMMTY2LjUgNDczYy0zLjggMjIuNS0yMy4yIDM5LTQ2IDM5LTIzLjIgMC00Mi45LTE3LjEtNDYuMi00MC4xTDUyLjYgMzIwLjVjLTMtMjEuMy0xMS40LTQxLjUtMjQuMy01OC43bC0xLjEtMS41QzkuNSAyMzYuNyAwIDIwOC4xIDAgMTc4LjdsMC02OC41QzAgNDkuMyA0OS4zIDAgMTEwLjEgMCAxMjIgMCAxMzMuNyAxLjkgMTQ1IDUuN3oiXX0sV3p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWNoaW1uZXktd2luZG93IixpY29uOls1MTIsNTEyLFtdLCJlMDBkIiwiTTIzNC4yIDguNmMxMi4zLTExLjQgMzEuMy0xMS40IDQzLjUgMEwzNjggOTIuMyAzNjggODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEwMS41IDM3LjggMzUuMWM5LjYgOSAxMi44IDIyLjkgOCAzNS4xUzQ5My4yIDI3MiA0ODAgMjcybC0xNiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0yODggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNzYtMTYgMGMtMTMuMiAwLTI1LTguMS0yOS44LTIwLjNzLTEuNi0yNi4yIDgtMzUuMWwyMjQtMjA4ek0yMTYgMjI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtODAgMHoiXX0sR3p0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vdG9yY3ljbGUiLGljb246WzY0MCw1MTIsWzEyNzk0OV0sImYyMWMiLCJNMjgwIDE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2LjYgMCAyMi41IDQ4LjctOTUuMSA3MS4zYy0zMy40LTI1LjEtNzUtNDAtMTIwLTQwbC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDBjNzguNSAwIDE0My4yIDU5LjYgMTUxLjIgMTM2bC0yNS40IDBjLTExLjItNTkuMi02My4zLTEwNC0xMjUuOC0xMDQtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhTNzMuMyA0ODAgMTQ0IDQ4MGM2Mi41IDAgMTE0LjUtNDQuOCAxMjUuOC0xMDRsNTAuMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMjIuNWMwLTQ1LjEgMjUuNy04NS40IDY1LjUtMTA3LjdsMTIuMSAyNi4xYy0zMi40IDIzLjItNTMuNSA2MS4yLTUzLjUgMTA0LjEgMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhzMTI4LTU3LjMgMTI4LTEyOC01Ny4zLTEyOC0xMjgtMTI4Yy0xMC43IDAtMjEgMS4zLTMwLjkgMy44TDQzMy44IDE2MCA0ODggMTYwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTUzLjMgMGMtNi45IDAtMTMuNyAyLjItMTkuMiA2LjRsLTE3LjEgMTIuOC0yNC42LTUzLjNDMzY5LjkgMjEuNCAzNjEuNCAxNiAzNTIgMTZsLTcyIDB6TTQ0NS44IDMwMC40bDI4LjQgNjEuNmM1LjYgMTIgMTkuOCAxNy4zIDMxLjggMTEuN3MxNy4zLTE5LjggMTEuNy0zMS44bC0yOC41LTYxLjZjMi4yLS4yIDQuNC0uMyA2LjctLjMgMzkuOCAwIDcyIDMyLjIgNzIgNzJzLTMyLjIgNzItNzIgNzItNzItMzIuMi03Mi03MmMwLTIwLjIgOC4zLTM4LjUgMjEuOC01MS42ek0xNDQgNDI0Yy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcyYzMxLjMgMCA1OCAyMCA2Ny45IDQ4TDE0NCAzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNjcuOSAwYy05LjkgMjgtMzYuNiA0OC02Ny45IDQ4eiJdfSxiMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFja3dhcmQtZmFzdCIsaWNvbjpbNTEyLDUxMixbOTE5OCwiZmFzdC1iYWNrd2FyZCJdLCJmMDQ5IiwiTTQ5Mi4yIDQ3Ny42Yy0xMiA1LTI1LjcgMi4yLTM0LjktNi45TDI4OCAzMDEuMyAyODggNDQ4YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45TDY0IDMwMS4zIDY0IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJTNjQgNDYuMyA2NCA2NEw2NCAyMTAuNyAyMzMuNCA0MS40YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzI4OCA1MS4xIDI4OCA2NGwwIDE0Ni43IDE2OS40LTE2OS40YzkuMi05LjIgMjIuOS0xMS45IDM0LjktNi45UzUxMiA1MS4xIDUxMiA2NGwwIDM4NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42eiJdfSxZenQ9YjBlLHYwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhZGRyZXNzLWJvb2siLGljb246WzUxMiw1MTIsWzYyMTM4LCJjb250YWN0LWJvb2siXSwiZjJiOSIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI4OCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDk2IDB6TTIwOCAyODhsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTYgMC00NC4yIDM1LjgtODAgODAtODB6bS0yNC05NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTUxMiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NHptMCAxMjhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZsMCA2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNjR6TTQ5NiAzMjBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC02NGMwLTguOC03LjItMTYtMTYtMTZ6Il19LFp6dD12MGUsWHp0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNhaWxib2F0IixpY29uOls1MTIsNTEyLFtdLCJlNDQ1IiwiTTI0MCAzNS45bDAgMzQ4LjEtMjI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDYxLjkgNTAuMSAxMTIgMTEyIDExMmwyODggMGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMiAwLTguOC03LjItMTYtMTYtMTZsLTIwOCAwIDAtNDggMTYxLjcgMGMxMi45IDAgMjAuNS0xNC40IDEzLjItMjVMMjY5LjIgMjYuOWMtOC45LTEzLTI5LjItNi43LTI5LjIgOXpNMTkyIDMyMGwwLTE4NC4yYzAtMTYuMS0yMS0yMi4xLTI5LjYtOC41TDQ3LjMgMzExLjVjLTYuNyAxMC43IDEgMjQuNSAxMy42IDI0LjVMMTc2IDMzNmM4LjggMCAxNi03LjIgMTYtMTZ6Il19LFF6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLWJvb2ttYXJrIixpY29uOls0NDgsNTEyLFtdLCJlMGJiIiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgMTY5LjRjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjYtNiAwLTExLjgtMi40LTE2LTYuNkwyNzIgMTQ0IDIzMC42IDE4NS40Yy00LjIgNC4yLTEwIDYuNi0xNiA2LjYtMTIuNSAwLTIyLjYtMTAuMS0yMi42LTIyLjZMMTkyIDAgOTYgMEM0MyAwIDAgNDMgMCA5NkwwIDQxNmMwIDUzIDQzIDk2IDk2IDk2ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjU2IDAgMCA2NC0yNTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6Il19LEp6dD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYWduaWZ5aW5nLWdsYXNzLWFycm93LXJpZ2h0IixpY29uOls1MTIsNTEyLFtdLCJlNTIxIiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMzA1IDIyNWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtNzItNzJjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzEtMTAyLjEgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwxMDIuMSAwLTMxIDMxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNzItNzJ6Il19LHgwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaWNyb3Bob25lLWxpbmVzIixpY29uOlszODQsNTEyLFsxMjc4OTcsIm1pY3JvcGhvbmUtYWx0Il0sImYzYzkiLCJNOTYgOTZjMC01MyA0My05NiA5Ni05NiA1MC4zIDAgOTEuNiAzOC43IDk1LjcgODhMMjMyIDg4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU2IDAgMCA0OC01NiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDU1LjcgMGMtNC4xIDQ5LjMtNDUuMyA4OC05NS43IDg4LTUzIDAtOTYtNDMtOTYtOTZMOTYgOTZ6TTI0IDE2MGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQwYzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNDBjMCA5Ny45LTczLjMgMTc4LjctMTY4IDE5MC41bDAgNDkuNSA0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw0OCAwIDAtNDkuNUM3My4zIDQwMi43IDAgMzIxLjkgMCAyMjRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHoiXX0sS3p0PXgwZSx5MGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVwbHktYWxsIixpY29uOls1NzYsNTEyLFsibWFpbC1yZXBseS1hbGwiXSwiZjEyMiIsIk0zMzIuMiAxOC40YzEyIDUgMTkuOCAxNi42IDE5LjggMjkuNmwwIDgwIDQ4IDBjOTcuMiAwIDE3NiA3OC44IDE3NiAxNzYgMCAxMTMuMy04MS41IDE2My45LTEwMC4yIDE3NC4xLTIuNSAxLjQtNS4zIDEuOS04LjEgMS45LTEwLjkgMC0xOS43LTguOS0xOS43LTE5LjcgMC03LjUgNC4zLTE0LjQgOS44LTE5LjUgOS40LTguOCAyMi4yLTI2LjQgMjIuMi01Ni43IDAtNTMtNDMtOTYtOTYtOTZsLTMyIDAgMCA4MGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtMTYwLTE2MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOXpNMjA1LjYgMjMuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUw1NC42IDIwOCAyMDUuNiAzNTguOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDEwIDIzMS4yYy02LjQtNi0xMC0xNC40LTEwLTIzLjJzMy42LTE3LjIgMTAtMjMuMkwxNzEuNiAyMy4xYzkuNC05LjQgMjQuNi05LjQgMzMuOSAweiJdfSxlQ3Q9eTBlLHRDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bml2ZXJzYWwtYWNjZXNzIixpY29uOls1MTIsNTEyLFtdLCJmMjlhIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6bTE2MS41LTg2LjFjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41bDExLjkgNS4xYzE3LjMgNy40IDM1LjIgMTIuOSA1My42IDE2LjNsMCA1MC4xYzAgNC4zLS43IDguNi0yLjEgMTIuNmwtMjguNyA4Ni4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDI0LjQtNzMuMmMxLjMtMy44IDQuOC02LjQgOC44LTYuNHM3LjYgMi42IDguOCA2LjRsMjQuNCA3My4yYzQuMiAxMi42IDE3LjggMTkuNCAzMC40IDE1LjJTMzM5IDM5NyAzMzQuOCAzODQuNGwtMjguNy04Ni4xYy0xLjQtNC4xLTIuMS04LjMtMi4xLTEyLjZsMC01MC4xYzE4LjQtMy41IDM2LjMtOC45IDUzLjYtMTYuM2wxMS45LTUuMWMxMi4yLTUuMiAxNy44LTE5LjMgMTIuNi0zMS41cy0xOS4zLTE3LjgtMzEuNS0xMi42TDMzOC43IDE3NWMtMjYuMSAxMS4yLTU0LjIgMTctODIuNyAxN3MtNTYuNS01LjgtODIuNy0xN2wtMTEuOS01LjF6TTI1NiAxNjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgweiJdfSx6RD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0b2lsZXQtcGFwZXIiLGljb246WzUxMiw1MTIsWzEyOTUzMSw2MzI2MywidG9pbGV0LXBhcGVyLWFsdCIsInRvaWxldC1wYXBlci1ibGFuayJdLCJmNzFlIiwiTTMyNy4xIDMyYy04LjggMTEuMS0xNiAyMy4xLTIxLjkgMzQuOC0yMS40IDQyLjctMzMuMiA5OC40LTMzLjIgMTU3LjJsMCAyNjRjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNTQ0Yy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDIyNEMwIDExOCA0MyAzMiA5NiAzMmwyMzEuMSAwek00MTYgNDE2Yy01MyAwLTk2LTg2LTk2LTE5MnM0My0xOTIgOTYtMTkyIDk2IDg2IDk2IDE5Mi00MyAxOTItOTYgMTkyem0wLTEyOGMxNy43IDAgMzItMjguNyAzMi02NHMtMTQuMy02NC0zMi02NC0zMiAyOC43LTMyIDY0IDE0LjMgNjQgMzIgNjR6Il19LHJDdD16RCxpQ3Q9ekQsYUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZyLWNhcmRib2FyZCIsaWNvbjpbNTc2LDUxMixbXSwiZjcyOSIsIk01MTIgOTZMNjQgOTZDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDExNy41IDBjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdsMzMuOS0zMy45YzcuMi03LjIgMTcuMS0xMS4zIDI3LjMtMTEuM3MyMC4xIDQuMSAyNy4zIDExLjNsMzMuOSAzMy45YzEyIDEyIDI4LjMgMTguNyA0NS4zIDE4LjdMNTEyIDQxNmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MmMwLTM1LjMtMjguNy02NC02NC02NHpNODAgMjQwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHptMzUyLTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4eiJdfSxuQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGl6emEtc2xpY2UiLGljb246WzUxMiw1MTIsW10sImY4MTgiLCJNMTY5LjcgLjljLTIyLjgtMS42LTQxLjkgMTQtNDcuNSAzNC43TDExMi41IDcyQzI5My4zIDcyLjMgNDM5LjcgMjE4LjcgNDQwIDM5OS41bDM2LjQtOS43YzIwLjgtNS41IDM2LjMtMjQuNyAzNC43LTQ3LjUtMTIuNi0xODIuOC0xNTguNi0zMjguOC0zNDEuNC0zNDEuNHptMjIyIDQxMS41Yy4yLTQuMSAuMy04LjIgLjMtMTIuNCAwLTE1NC42LTEyNS40LTI4MC0yODAtMjgwLTQuMSAwLTguMyAuMS0xMi40IC4zTC41IDQ5MS45Yy0xLjUgNS41IC4xIDExLjQgNC4xIDE1LjRzOS45IDUuNiAxNS40IDQuMWwzNzEuNi05OS4xek0xNzYgMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptNjQgMTI4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTk2IDM4NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxvQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3ByYXktY2FuIixpY29uOls1NzYsNTEyLFtdLCJmNWJkIiwiTTE5MiAwbDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA4MC0xMjggMCAwLTgwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAyNTZjMC01MyA0My05NiA5Ni05NmwxMjggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjA4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0yMjQgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yMDh6bTI0MCA4MGE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTMyMCA2NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek00NDggMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTUxMiAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNNDQ4IDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LHcwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2b2x1bWUtbG93IixpY29uOls0NDgsNTEyLFsxMjgyNjQsInZvbHVtZS1kb3duIl0sImYwMjciLCJNNDggMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDk2IDE2MCA0OCAxNjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgOTZjMCAyNi41IDIxLjUgNDggNDggNDh6TTM4MC42IDE4MS41Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDMzYxLjEgMjI3LjYgMzY4IDI0MSAzNjggMjU2cy02LjkgMjguNC0xNy43IDM3LjNjLTEwLjMgOC40LTExLjggMjMuNS0zLjUgMzMuOHMyMy41IDExLjggMzMuOCAzLjVDNDAyLjEgMzEyLjkgNDE2IDI4Ni4xIDQxNiAyNTZzLTEzLjktNTYuOS0zNS41LTc0LjV6Il19LHNDdD13MGUsbEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyb3NzIixpY29uOlszODQsNTEyLFsxMjgzMjcsMTAwMTNdLCJmNjU0IiwiTTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDgwLTgwIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMzJjMCAyNi41IDIxLjUgNDggNDggNDhsODAgMCAwIDIwOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMjA4IDgwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0zMmMwLTI2LjUtMjEuNS00OC00OC00OGwtODAgMCAwLTgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDE3NiAweiJdfSxNMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uIixpY29uOlszODQsNTEyLFsxMjk0ODUsIm1hbGUiXSwiZjE4MyIsIk0yNDggMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN2w0Ni4zIDYyLjRjMTAuNSAxNC4yIDMwLjYgMTcuMiA0NC44IDYuNnMxNy4yLTMwLjYgNi42LTQ0LjhsLTcwLjUtOTVDMjc0IDEzMiAyMzQuMyAxMTIgMTkyIDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDExMiAyMzYuNyAxMTIgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6Il19LGNDdD1NMGUsazBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXJnbGFzcyIsaWNvbjpbMzg0LDUxMixbOTIwMyw2MjAzMiwiaG91cmdsYXNzLWVtcHR5Il0sImYyNTQiLCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBMMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxMWMwIDQyLjQtMTYuOSA4My4xLTQ2LjkgMTEzLjFsLTY3LjkgNjcuOSA2Ny45IDY3LjljMzAgMzAgNDYuOSA3MC43IDQ2LjkgMTEzLjFsMCAxMWMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMC0xMWMwLTQyLjQgMTYuOS04My4xIDQ2LjktMTEzLjFsNjcuOS02Ny45LTY3LjktNjcuOUM0OC45IDE1OC4xIDMyIDExNy40IDMyIDc1bDAtMTFDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNOTYgNjRsMCAxMWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOWw2Ny45IDY3LjkgNjcuOS02Ny45YzE4LTE4IDI4LjEtNDIuNCAyOC4xLTY3LjlsMC0xMS0xOTIgMHptMCAzODRsMTkyIDAgMC0xMWMwLTI1LjUtMTAuMS00OS45LTI4LjEtNjcuOWwtNjcuOS02Ny45LTY3LjkgNjcuOWMtMTggMTgtMjguMSA0Mi40LTI4LjEgNjcuOWwwIDExeiJdfSxkQ3Q9azBlLHVDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaXNoIixpY29uOls1NzYsNTEyLFsxMjgwMzFdLCJmNTc4IiwiTTE4MC41IDE0MS41QzIxOS43IDEwOC41IDI3Mi42IDgwIDMzNiA4MHMxMTYuMyAyOC41IDE1NS41IDYxLjVjMzkuMSAzMyA2Ni45IDcyLjQgODEgOTkuOCA0LjcgOS4yIDQuNyAyMC4xIDAgMjkuMy0xNC4xIDI3LjQtNDEuOSA2Ni44LTgxIDk5LjgtMzkuMiAzMy4xLTkyIDYxLjUtMTU1LjUgNjEuNXMtMTE2LjMtMjguNS0xNTUuNS02MS41Yy0xNi4yLTEzLjctMzAuNS0yOC41LTQyLjctNDMuMUw0OC4xIDM3OS42Yy0xMi41IDcuMy0yOC40IDUuMy0zOC43LTQuOXMtMTIuNC0yNi01LjMtMzguNkw1MCAyNTYgNC4yIDE3NS45Yy03LjItMTIuNi01LTI4LjQgNS4zLTM4LjZzMjYuMS0xMi4yIDM4LjctNC45bDg5LjcgNTIuM2MxMi4yLTE0LjYgMjYuNS0yOS40IDQyLjctNDMuMXpNNDQ4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxwQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHJ1bXN0aWNrLWJpdGUiLGljb246WzUxMiw1MTIsW10sImY2ZDciLCJNMTYwIDI2NS4yYzAgOC41LTMuNCAxNi42LTkuNCAyMi42bC0yNi44IDI2LjhjLTEyLjMgMTIuMy0zMi41IDExLjQtNDkuNCA3LjItNC42LTEuMS05LjUtMS44LTE0LjUtMS44LTMzLjEgMC02MCAyNi45LTYwIDYwczI2LjkgNjAgNjAgNjBjNi4zIDAgMTIgNS43IDEyIDEyIDAgMzMuMSAyNi45IDYwIDYwIDYwczYwLTI2LjkgNjAtNjBjMC01LS42LTkuOC0xLjgtMTQuNS00LjItMTYuOS01LjItMzcuMSA3LjItNDkuNGwyNi44LTI2LjhjNi02IDE0LjEtOS40IDIyLjYtOS40bDg5LjIgMGM2LjMgMCAxMi40LS4zIDE4LjUtMSAxMS45LTEuMiAxNi40LTE1LjUgMTAuOC0yNi04LjUtMTUuOC0xMy4zLTMzLjgtMTMuMy01MyAwLTYxLjkgNTAuMS0xMTIgMTEyLTExMiA4IDAgMTUuNyAuOCAyMy4yIDIuNCAxMS43IDIuNSAyNC4xLTUuOSAyMi0xNy42LTE0LjctODIuMy04Ni43LTE0NC44LTE3My4yLTE0NC44LTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2bDAgODkuMnoiXX0saEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYXJ0LXNpbXBsZSIsaWNvbjpbNTEyLDUxMixbXSwiZTQ3MyIsIk0xOTIgODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0zNTJ6TTAgMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4TDAgMjcyek00MzIgOTZsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0yODhjMC0yNi41IDIxLjUtNDggNDgtNDh6Il19LGZDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhdG9tIixpY29uOls0NDgsNTEyLFs5ODgzXSwiZjVkMiIsIk0yMjQgMzk4LjhjLTExLjggNS4xLTIzLjQgOS43LTM0LjkgMTMuNSAxNi43IDMzLjggMzEgMzUuNyAzNC45IDM1LjdzMTguMS0xLjkgMzQuOS0zNS43Yy0xMS40LTMuOS0yMy4xLTguNC0zNC45LTEzLjV6TTQxNCAyNTZjMzMgNDUuMiA0NC4zIDkwLjkgMjMuNiAxMjgtMjAuMiAzNi4zLTYyLjUgNDkuMy0xMTUuMiA0My4yLTIyIDUyLjEtNTUuNyA4NC44LTk4LjQgODQuOHMtNzYuNC0zMi43LTk4LjQtODQuOEM3Mi45IDQzMy4zIDMwLjYgNDIwLjMgMTAuNCAzODQtMTAuMyAzNDYuOSAxIDMwMS4yIDM0IDI1NiAxIDIxMC44LTEwLjMgMTY1LjEgMTAuNCAxMjggMzAuNiA5MS43IDcyLjkgNzguNyAxMjUuNiA4NC44IDE0Ny42IDMyLjcgMTgxLjIgMCAyMjQgMHM3Ni40IDMyLjcgOTguNCA4NC44YzUyLjctNi4xIDk1IDYuOCAxMTUuMiA0My4yIDIwLjcgMzcuMSA5LjQgODIuOC0yMy42IDEyOHptLTY1LjggNjcuNGMtMS43IDE0LjItMy45IDI4LTYuNyA0MS4yIDMxLjggMS40IDM4LjYtOC43IDQwLjItMTEuNyAyLjMtNC4yIDctMTcuOS0xMS45LTQ4LjEtNi44IDYuMy0xNCAxMi41LTIxLjYgMTguNnptLTYuNy0xNzUuOWMyLjggMTMuMSA1IDI2LjkgNi43IDQxLjIgNy42IDYuMSAxNC44IDEyLjMgMjEuNiAxOC42IDE4LjktMzAuMiAxNC4yLTQ0IDExLjktNDguMS0xLjYtMi45LTguNC0xMy00MC4yLTExLjd6TTI1OC45IDk5LjdDMjQyLjEgNjUuOSAyMjcuOSA2NCAyMjQgNjRzLTE4LjEgMS45LTM0LjkgMzUuN2MxMS40IDMuOSAyMy4xIDguNCAzNC45IDEzLjUgMTEuOC01LjEgMjMuNC05LjcgMzQuOS0xMy41em0tMTU5IDg4LjljMS43LTE0LjMgMy45LTI4IDYuNy00MS4yLTMxLjgtMS40LTM4LjYgOC43LTQwLjIgMTEuNy0yLjMgNC4yLTcgMTcuOSAxMS45IDQ4LjEgNi44LTYuMyAxNC0xMi41IDIxLjYtMTguNnpNNzguMiAzMDQuOGMtMTguOSAzMC4yLTE0LjIgNDQtMTEuOSA0OC4xIDEuNiAyLjkgOC40IDEzIDQwLjIgMTEuNy0yLjgtMTMuMS01LTI2LjktNi43LTQxLjItNy42LTYuMS0xNC44LTEyLjMtMjEuNi0xOC42ek0zMDQgMjU2YTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHptLTgwLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sbUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InAiLGljb246WzMyMCw1MTIsWzExMl0sIjUwIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMTI4IDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBTMjQ4LjQgMzUyIDE2MCAzNTJsLTk2IDAgMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDQ2NS43IDAgNDQ4TDAgNjR6TTY0IDI4OGw5NiAwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2bC05NiAwIDAgMTkyeiJdfSxnQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiamV0LWZpZ2h0ZXItdXAiLGljb246WzUxMiw1MTIsW10sImU1MTgiLCJNMjA2LjggNDcuOEMyMDIuMyA1OC41IDIwMCA3MCAyMDAgODEuNmwwIDEwMC40LTE1MiAxMTQgMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDIzNC43IDAgMjQ4TDAgMzkyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04IDE1MiAwIDAgNTQuNC02NiA1Mi44Yy0zLjggMy02IDcuNi02IDEyLjVsMCAyNC4zYzAgOC44IDcuMiAxNiAxNiAxNmw4OCAwIDAtNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQwIDg4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMjQuM2MwLTQuOS0yLjItOS41LTYtMTIuNWwtNjYtNTIuOCAwLTU0LjQgMTUyIDAgMCA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0xNDRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCA0OC0xNTItMTE0IDAtMTAwLjRjMC0xMS42LTIuMy0yMy4xLTYuOC0zMy44bC0yNy4xLTY1QzI3NC40LTI2LjIgMjY1LjctMzIgMjU2LTMycy0xOC40IDUuOC0yMi4yIDE0LjhsLTI3LjEgNjV6Il19LGJDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS14bWFyayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2MCIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuNy0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzYuNyAzNi43LTM2LjcgMzYuN2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDM2LjctMzYuNyAzNi43IDM2LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zNi43LTM2LjcgMzYuNy0zNi43eiJdfSx2Q3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hlZXQtcGxhc3RpYyIsaWNvbjpbMzg0LDUxMixbXSwiZTU3MSIsIk0wIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNDkuNSAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDM2NS4zIDM4Ni43YzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNMMzg0IDY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4em0yMDggNS41bDAtOTMuNWMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5My41IDAtMTE3LjUgMTE3LjV6TTE1MyAxMDVsLTQ4IDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ4LTQ4YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXptOTYgMzJMMTM3IDI0OWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwyMTUgMTAzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXoiXX0seEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InYiLGljb246WzM4NCw1MTIsWzExOF0sIjU2IiwiTTE5LjcgMzQuNWMxNi4zLTYuOCAzNSAuOSA0MS44IDE3LjJMMTkyIDM2NC44IDMyMi41IDUxLjdjNi44LTE2LjMgMjUuNS0yNCA0MS44LTE3LjJzMjQgMjUuNSAxNy4yIDQxLjhsLTE2MCAzODRjLTUgMTEuOS0xNi42IDE5LjctMjkuNSAxOS43cy0yNC42LTcuOC0yOS41LTE5LjdMMi41IDc2LjNjLTYuOC0xNi4zIC45LTM1IDE3LjItNDEuOHoiXX0sUzBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3QiLGljb246WzUxMiw1MTIsWyJsaXN0LXNxdWFyZXMiXSwiZjAzYSIsIk00MCA0OEMyNi43IDQ4IDE2IDU4LjcgMTYgNzJsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRMNDAgNDh6TTE5MiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjR6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHptMCAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTI4OCAwek0xNiAyMzJsMCA0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0ek00MCAzNjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSx5Q3Q9UzBlLHdDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaXNjZXMiLGljb246WzQ0OCw1MTIsW10sImU4NGMiLCJNNDAuNCAxMC40YzExLjktMTMgMzIuMi0xMy45IDQ1LjItMiAyLjkgMi43IDI4LjMgMjYuNyA1My42IDY3LjggMjIuMyAzNi4yIDQ1IDg2LjYgNTEuMSAxNDcuOGw2Ny4zIDBjNi4xLTYxLjEgMjguOC0xMTEuNiA1MS4xLTE0Ny44IDI1LjMtNDEuMSA1MC43LTY1LjEgNTMuNi02Ny44IDEzLTExLjkgMzMuMy0xMS4xIDQ1LjIgMiAxMS45IDEzIDExIDMzLjMtMiA0NS4yLTEuNCAxLjMtMjIgMjEuMS00Mi40IDU0LjItMTcuOSAyOS4xLTM1LjQgNjgtNDEuMiAxMTQuMmw5NCAwIDMuMyAuMmMxNi4xIDEuNiAyOC43IDE1LjMgMjguNyAzMS44cy0xMi42IDMwLjItMjguNyAzMS44bC0zLjMgLjItOTQgMGM1LjggNDYuMiAyMy4zIDg1LjEgNDEuMiAxMTQuMiAyMC40IDMzLjEgNDEgNTIuOSA0Mi40IDU0LjIgMTMgMTEuOSAxMy45IDMyLjIgMiA0NS4yLTExLjkgMTMtMzIuMiAxMy45LTQ1LjIgMi0yLjktMi43LTI4LjMtMjYuNy01My42LTY3LjgtMjIuMy0zNi4yLTQ1LTg2LjYtNTEuMS0xNDcuOGwtNjcuMyAwYy02LjEgNjEuMS0yOC44IDExMS42LTUxLjEgMTQ3LjgtMjUuMyA0MS4xLTUwLjcgNjUuMS01My42IDY3LjgtMTMgMTEuOS0zMy4zIDExLjEtNDUuMi0yLTExLjktMTMtMTEtMzMuMyAyLTQ1LjIgMS40LTEuMyAyMi0yMS4xIDQyLjQtNTQuMiAxNy45LTI5LjEgMzUuNC02OCA0MS4yLTExNC4ybC05NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk0IDBjLTUuOC00Ni4yLTIzLjMtODUuMS00MS4yLTExNC4yLTIwLjQtMzMuMS00MS01Mi45LTQyLjQtNTQuMi0xMy0xMS45LTEzLjktMzIuMi0yLTQ1LjJ6Il19LE1DdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzb2xhci1wYW5lbCIsaWNvbjpbNTc2LDUxMixbXSwiZjViYSIsIk0xMjEuOCAzMmMtMzAgMC01NiAyMC44LTYyLjUgNTAuMUw5LjYgMzA2LjFDLjcgMzQ2LjEgMzEuMSAzODQgNzIgMzg0bDE4NC4xIDAgMCA2NC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE5MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwIDAtNjQgMTg0LjEgMGM0MC45IDAgNzEuNC0zNy45IDYyLjUtNzcuOWwtNDkuOC0yMjRDNTEwLjQgNTIuOCA0ODQuNSAzMiA0NTQuNSAzMkwxMjEuOCAzMnpNMjQ1LjYgOTZsODUuMiAwIDcuMyA4OC05OS44IDAgNy4zLTg4em0tNTUuNSA4OGwtODcuOCAwIDE5LjYtODggNzUuNiAwLTcuMyA4OHpNOTEuNiAyMzJsOTQuNSAwLTcuMyA4OC0xMDYuNyAwIDE5LjYtODh6bTE0Mi42IDBsMTA3LjggMCA3LjMgODgtMTIyLjUgMCA3LjMtODh6bTE1NiAwbDk0LjUgMCAxOS42IDg4LTEwNi43IDAtNy4zLTg4ek00NzQgMTg0bC04Ny44IDAtNy4zLTg4IDc1LjYgMCAxOS42IDg4eiJdfSxrQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFuZC1taW5lLW9uIixpY29uOls1NzYsNTEyLFtdLCJlNTFiIiwiTTMxMiAwbDAgMTI4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0TDI2NCAwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTE2MCAyODhjMC0xNy43IDE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiA4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgOTZjMCAyNi41LTIxLjUgNDgtNDggNDhMODAgNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDgwIDAgMC0zMnpNMTIgMTE0LjdjNy40LTExIDIyLjMtMTQgMzMuMy02LjdsOTYgNjRjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNzLTIyLjMgMTQtMzMuMyA2LjdsLTk2LTY0Yy0xMS03LjQtMTQtMjIuMy02LjctMzMuM3pNNTMwLjcgMTA4YzExLTcuNCAyNS45LTQuNCAzMy4zIDYuN3M0LjQgMjUuOS02LjcgMzMuM2wtOTYgNjRjLTExIDcuNC0yNS45IDQuNC0zMy4zLTYuN3MtNC40LTI1LjkgNi43LTMzLjNsOTYtNjR6Il19LENEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWRwaG9uZXMiLGljb246WzQ0OCw1MTIsWzEyNzkxMSw2Mjg2MywiaGVhZHBob25lcy1hbHQiLCJoZWFkcGhvbmVzLXNpbXBsZSJdLCJmMDI1IiwiTTY0IDIyNGMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MHMxNjAgNzEuNiAxNjAgMTYwbDAgMzcuNWMtMTAtMy41LTIwLjgtNS41LTMyLTUuNWwtMTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxMjhjMCAyNi41IDIxLjUgNDggNDggNDhsMTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMTYwQzQ0OCAxMDAuMyAzNDcuNyAwIDIyNCAwUzAgMTAwLjMgMCAyMjRMMCAzODRjMCA1MyA0MyA5NiA5NiA5NmwxNiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTI4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0xNiAwYy0xMS4yIDAtMjIgMS45LTMyIDUuNUw2NCAyMjR6Il19LFNDdD1DRCx6Q3Q9Q0QsQ0N0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1cyIsaWNvbjpbNDQ4LDUxMixbMTI4NjUzXSwiZjIwNyIsIk05NiAwQzQzIDAgMCA0MyAwIDk2TDAgMzg0YzAgMjkuOCAyMC40IDU0LjkgNDggNjJsMCAzNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzIgMTkyIDAgMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxNiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMzRjMjcuNi03LjEgNDgtMzIuMiA0OC02MmwwLTI4OGMwLTUzLTQzLTk2LTk2LTk2TDk2IDB6TTY0IDE3NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxMDQgMCAwIDExMi0xMDQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC00OHptMTg0IDgwbDAtMTEyIDEwNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEwNCAwek05NiAzMjBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0yNTYgMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE1MiA3MmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw5NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC05NiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sVEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcG93ZXJwb2ludCIsaWNvbjpbMzg0LDUxMixbXSwiZjFjNCIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwyMTMuNSAwYzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDM2NS4zIDEyNS4zYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNMMzg0IDQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgNjR6bTIwOC01LjVsMCA5My41YzAgMTMuMyAxMC43IDI0IDI0IDI0TDMyNS41IDE3NiAyMDggNTguNXpNMTUyIDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxNDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTI0IDI0IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJsLTQ4IDB6bTQ4IDk2bC0yNCAwIDAtNDggMjQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHoiXX0sejBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InF1b3RlLWxlZnQiLGljb246WzQ0OCw1MTIsWzgyMjAsInF1b3RlLWxlZnQtYWx0Il0sImYxMGQiLCJNMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmw4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZsMCA4IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMTZ6bTI1NiAwYzAtNjYuMyA1My43LTEyMCAxMjAtMTIwbDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOCAwYy0zMC45IDAtNTYgMjUuMS01NiA1NmwwIDggNjQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC02NCAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTEzNnoiXX0sX0N0PXowZSxMQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hldnJvbi1kb3duIixpY29uOls0NDgsNTEyLFtdLCJmMDc4IiwiTTIwMS40IDQwNi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE5Mi0xOTJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDMzOC43IDU0LjYgMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE5MiAxOTJ6Il19LEMwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlYXJ0aC1hc2lhIixpY29uOls1MTIsNTEyLFsxMjc3NTksImdsb2JlLWFzaWEiXSwiZjU3ZSIsIk01MCAyODQuOGM0LjIgMi4xIDkgMy4yIDE0IDMuMmw1MC43IDBjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMTMuMyAxMy4zYzYgNiAxNC4xIDkuNCAyMi42IDkuNGwxOC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNC0xMC43IDI0LTI0bDAtNDIuN2MwLTguNSAzLjQtMTYuNiA5LjQtMjIuNmwxMy4zLTEzLjNjNi02IDkuNC0xNC4xIDkuNC0yMi42TDMwNCA1N2MwLTEuMi0uMS0yLjMtLjItMy41LTE1LjQtMy42LTMxLjQtNS41LTQ3LjgtNS41LTExNC45IDAtMjA4IDkzLjEtMjA4IDIwOCAwIDkuOCAuNyAxOS40IDIgMjguOHptNDAzLjMgMzcuM2MtMy4yLTEuNC02LjctMi4xLTEwLjUtMi4xTDQzMiAzMjBjLTguOCAwLTE2LTcuMi0xNi0xNnMtNy4yLTE2LTE2LTE2bC0zNC43IDBjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40bC00NS4zIDQ1LjNjLTYgNi05LjQgMTQuMS05LjQgMjIuNmwwIDE4LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40IDIuMiAyLjIgNC43IDQuMSA3LjMgNS41IDM5LjMtMjUuNCA2OS41LTYzLjYgODQuNi0xMDguOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTI4IDM2OGMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0yNzIgMjU2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2em00OC0xMTJsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ6Il19LEFDdD1DMGUsREN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNlbnQtc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTNmNSIsIk0yMDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDI1LjRjNDMuNiA1LjIgODMgMjQuNSAxMTMuMyA1My4xIDEyLjkgMTIuMSAxMy40IDMyLjQgMS4zIDQ1LjJzLTMyLjQgMTMuNC00NS4yIDEuM2MtMjQuNC0yMy01Ny4yLTM3LjEtOTMuMy0zNy4xLTc1LjEgMC0xMzYgNjAuOS0xMzYgMTM2czYwLjkgMTM2IDEzNiAxMzZjMzYuMiAwIDY5LTE0LjEgOTMuMy0zNy4xIDEyLjktMTIuMSAzMy4xLTExLjUgNDUuMiAxLjNzMTEuNSAzMy4xLTEuMyA0NS4yQzMyMyA0MzAuMSAyODMuNiA0NDkuNCAyNDAgNDU0LjZsMCAyNS40YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjhDODQuNyA0MzMuNSAxNiAzNTIuOCAxNiAyNTZTODQuNyA3OC41IDE3NiA2MGwwLTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxFQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWNhdCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3MiIsIk0yNjkuNCAyLjlDMjY1LjIgMSAyNjAuNyAwIDI1NiAwcy05LjIgMS0xMy40IDIuOUw1NC4zIDgyLjhjLTIyIDkuMy0zOC40IDMxLTM4LjMgNTcuMiAuNSA5OS4yIDQxLjMgMjgwLjcgMjEzLjYgMzYzLjIgMTYuNyA4IDM2LjEgOCA1Mi44IDAgMTcyLjQtODIuNSAyMTMuMi0yNjQgMjEzLjYtMzYzLjIgLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwIDE1NC40YzAtNS44IDQuNy0xMC40IDEwLjQtMTAuNGwuMiAwYzMuNCAwIDYuNSAxLjYgOC41IDQuM2w0MCA1My4zYzMgNCA3LjggNi40IDEyLjggNi40bDQ4IDBjNSAwIDkuOC0yLjQgMTIuOC02LjRsNDAtNTMuM2MyLTIuNyA1LjItNC4zIDguNS00LjNsLjIgMGM1LjggMCAxMC40IDQuNyAxMC40IDEwLjRMMzUyIDI3MmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NmwwLTExNy42ek0yMTYgMjg4YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptOTYtMTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHoiXX0sJEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1NmIiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek02NDAgNDAwYTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS04Ni42LTYwLjljNy4xIDUuMiA4LjcgMTUuMiAzLjUgMjIuM2wtNjQgODhjLTIuOCAzLjgtNyA2LjItMTEuNyA2LjVzLTkuMy0xLjMtMTIuNi00LjZsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMjYuOCAyNi44IDUzLTcyLjljNS4yLTcuMSAxNS4yLTguNyAyMi40LTMuNXoiXX0sVDBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnRpbmktZ2xhc3MiLGljb246WzUxMiw1MTIsWzEyNzg2NCwiZ2xhc3MtbWFydGluaS1hbHQiXSwiZjU3YiIsIk0yLjQgNTEuOEM3LjQgMzkuOCAxOS4xIDMyIDMyIDMybDQ0OCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMjg4IDMwMS4zIDI4OCA0NDggMzUyIDQ0OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMCAwLTE0Ni43LTIxNC42LTIxNC42Qy4yIDc3LjUtMi41IDYzLjcgMi40IDUxLjh6TTM1NC43IDE0NGw0OC00OC0yOTMuNSAwIDQ4IDQ4IDE5Ny41IDB6Il19LElDdD1UMGUsUEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWciLGljb246WzQ0OCw1MTIsWzEyODI2OF0sImYxZTYiLCJNMTI4LTMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgMTI4IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgOTYgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDY0YzAgOTUuMS02OS4yIDE3NC4xLTE2MCAxODkuM2wwIDY2LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzEwMS4yIDM5OC4xIDMyIDMxOS4xIDMyIDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDk2IDMyIDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sTkN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhbm9yYW1hIixpY29uOls1NzYsNTEyLFtdLCJlMjA5IiwiTTQzLjkgNDhDMTkuNyA0OCAwIDY3LjcgMCA5MS45TDAgNDIwLjFjMCAyNC4zIDE5LjcgNDMuOSA0My45IDQzLjkgNS41IDAgMTAuNy0xIDE1LjctMi45IDEyLjktNC45IDEwMy40LTM3LjEgMjI4LjQtMzcuMXMyMTUuNSAzMi4zIDIyOC40IDM3LjFjNSAxLjkgMTAuMiAyLjkgMTUuNyAyLjkgMjQuMyAwIDQzLjktMTkuNyA0My45LTQzLjlsMC0zMjguMmMwLTI0LjMtMTkuNy00My45LTQzLjktNDMuOS01LjUgMC0xMC43IDEtMTUuNyAyLjktMTIuOSA0LjktMTAzLjQgMzcuMS0yMjguNCAzNy4xUzcyLjUgNTUuNyA1OS42IDUwLjlDNTQuNiA0OSA0OS40IDQ4IDQzLjkgNDh6TTcyIDE3NmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAwem0yNjQuMS0xNmM3LjUgMCAxNC42IDMuNiAxOS4xIDkuNkw0NzkuNyAzMzYuMmM1LjkgNy45IDYuNCAxOC41IDEuMyAyNi45cy0xNC44IDEyLjgtMjQuNSAxMS4xYy00NS44LTcuOC0xMDMuMy0xNC4yLTE2OC40LTE0LjItNjUuNiAwLTEyMy40IDYuNS0xNjkuMyAxNC40LTkuOCAxLjctMTkuNy0yLjktMjQuNy0xMS41cy00LjMtMTkuNCAxLjktMjcuMkwxNjUuMyAyNDljNC42LTUuNyAxMS41LTkgMTguNy05czE0LjIgMy4zIDE4LjcgOWwyNy41IDM0LjQgODYuNy0xMTMuOWM0LjYtNiAxMS43LTkuNSAxOS4yLTkuNXoiXX0sS2c9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvY2stcm90YXRlLWxlZnQiLGljb246WzU3Niw1MTIsWyJoaXN0b3J5Il0sImYxZGEiLCJNMjg4IDY0YzEwNiAwIDE5MiA4NiAxOTIgMTkyUzM5NCA0NDggMjg4IDQ0OGMtNjUuMiAwLTEyMi45LTMyLjUtMTU3LjYtODIuMy0xMC4xLTE0LjUtMzAuMS0xOC00NC42LTcuOXMtMTggMzAuMS03LjkgNDQuNkMxMjQuMSA0NjguNiAyMDEgNTEyIDI4OCA1MTIgNDI5LjQgNTEyIDU0NCAzOTcuNCA1NDQgMjU2UzQyOS40IDAgMjg4IDBDMjAyLjMgMCAxMjYuNSA0Mi4xIDgwIDEwNi43TDgwIDgwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzE2IDYyLjMgMTYgODBsMCAxMTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsMjQuNiAwYy41IDAgMSAwIDEuNSAwbDg2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM4LjMgMEMxNTQuOSAxMDIuNiAyMTcgNjQgMjg4IDY0em0yNCA4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDEwNGMwIDYuNCAyLjUgMTIuNSA3IDE3bDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNjUtNjUgMC05NC4xeiJdfSxGQ3Q9S2csT0N0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imphci13aGVhdCIsaWNvbjpbMzIwLDUxMixbXSwiZTUxNyIsIk0zMi04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDIwOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDU2IDE2QzQyLjcgMTYgMzIgNS4zIDMyLTh6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjh6bTExMiAzMmwtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDc1LjYgMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjIgMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAxNjBjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43LTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN3ptNDggMTE3LjdjLTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN2wtNDIuMiAwYy0zLjIgMC01LjggMi42LTUuOCA1LjggMCAzMi4xIDI2IDU4LjIgNTguMiA1OC4ybDc1LjYgMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjIgMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAyNTZjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43ek0xMTIgMzUybC00Mi4yIDBjLTMuMiAwLTUuOCAyLjYtNS44IDUuOCAwIDMyLjEgMjYgNTguMiA1OC4yIDU4LjJsMjEuOCAwIDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTMyIDIxLjggMGMzMi4xIDAgNTguMi0yNiA1OC4yLTU4LjIgMC0zLjItMi42LTUuOC01LjgtNS44TDIwOCAzNTJjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43LTExLjctMTMuMy0yOC45LTIxLjctNDgtMjEuN3oiXX0sVEQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtYXJyb3ctZG93biIsaWNvbjpbNTc2LDUxMixbNjIzMzcsImNsb3VkLWRvd25sb2FkIiwiY2xvdWQtZG93bmxvYWQtYWx0Il0sImYwZWQiLCJNMTQ0IDQ4MGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC02My40IDQxLTExNy4yIDk3LjktMTM2LjUtMS4zLTcuNy0xLjktMTUuNS0xLjktMjMuNSAwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NCA1NS40IDAgMTAzLjUgMzEuMyAxMjcuNiA3Ny4xIDE0LjItOC4zIDMwLjgtMTMuMSA0OC40LTEzLjEgNTMgMCA5NiA0MyA5NiA5NiAwIDE1LjctMy44IDMwLjYtMTAuNSA0My43IDQ0IDIwLjMgNzQuNSA2NC43IDc0LjUgMTE2LjMgMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTMwNCAwek0zNzcgMzEzYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTMxIDMxIDAtMTAyLjFjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAxMDIuMS0zMS0zMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MnoiXX0sUkN0PVRELEJDdD1URCxfMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcmFtcC1ib3giLGljb246WzU3Niw1MTIsWyJ0cnVjay1sb2FkaW5nIl0sImY0ZGUiLCJNNDAwIDMyYy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDI0OC4yLTI5Ny4yIDg5LjJDNS45IDQ1NC40LTMuNyA0NzIuMyAxLjQgNDg5LjJzMjIuOSAyNi41IDM5LjggMjEuNWwzMTUuNS05NC42IDQzLjcgMGMtLjIgMi42LS40IDUuMy0uNCA4IDAgNDguNiAzOS40IDg4IDg4IDg4czg4LTM5LjQgODgtODhsMC0zOTItMTc2IDB6TTUyOCA0MjRjMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MGMyMi4xIDAgMzkuOSAxNy45IDQwIDM5LjlsMCAuMXpNNTEuOSAxNDkuNUMxOC4xIDE1OS44LS45IDE5NS42IDkuNCAyMjkuNGwyOC4xIDkxLjhDNDcuOCAzNTUgODMuNiAzNzQgMTE3LjQgMzYzLjdsOTEuOC0yOC4xYzMzLjgtMTAuMyA1Mi44LTQ2LjEgNDIuNS03OS45bC0yOC4xLTkxLjhjLTEwLjMtMzMuOC00Ni4xLTUyLjgtNzkuOS00Mi41TDUxLjkgMTQ5LjV6Il19LEhDdD1fMGUscUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlLWRvd24iLGljb246WzM4NCw1MTIsWzg5NjRdLCJmMTA3IiwiTTE2OS40IDM3NC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDMwNi43IDU0LjYgMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjB6Il19LGpDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbHVnLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU1YyIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTM1MiA0MDBhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjAxLjQtNjAuOWMtNy4xLTUuMi0xNy4yLTMuNi0yMi40IDMuNWwtNTMgNzIuOS0yNi44LTI2LjhjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjMy4zIDMuMyA3LjkgNSAxMi42IDQuNnM4LjktMi44IDExLjctNi41bDY0LTg4YzUuMi03LjEgMy42LTE3LjItMy41LTIyLjN6Il19LFZDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kb3ctbWF4aW1pemUiLGljb246WzUxMiw1MTIsWzEyODQ3MF0sImYyZDAiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTI0IDY0bDMzNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDg4IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sVUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmRzLWhvbGRpbmctY2lyY2xlIixpY29uOls2NDAsNTEyLFtdLCJlNGZiIiwiTTMyMCAwYTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnpNNDAgNjRjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCAxNjAuMmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2w1MS4xIDUxLjFjOC4zIDguMyAyMS4zIDkuNiAzMSAzLjEgMTIuOS04LjYgMTQuNy0yNi45IDMuNy0zNy44LTcuMy03LjMtMjMuMS0yMy4xLTQ3LjItNDcuMi0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwYzI0LjEgMjQuMSAzOS45IDM5LjkgNDcuMiA0Ny4ybDAgMCAyNS4zIDI1LjNjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMmwwIDc4LjljMCAyNi41LTIxLjUgNDgtNDggNDhsLTY2LjcgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVMMCAxMDRDMCA4MS45IDE3LjkgNjQgNDAgNjR6bTU2MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgMjIxLjVjMCAyNS41LTEwLjEgNDkuOS0yOC4xIDY3LjlMNTEyIDQ5My4zYy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43TDQwMCA1MTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNzguOWMwLTI5LjcgMTEuOC01OC4yIDMyLjgtNzkuMmwyNS4zLTI1LjMgMCAwYzcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy0yNC4xIDI0LjEtMzkuOSAzOS45LTQ3LjIgNDcuMi0xMSAxMS05LjIgMjkuMiAzLjcgMzcuOCA5LjcgNi41IDIyLjcgNS4yIDMxLTMuMWw1MS4xLTUxLjFjMTItMTIgMTguNy0yOC4zIDE4LjctNDUuM0w1NjAgMTA0YzAtMjIuMSAxNy45LTQwIDQwLTQweiJdfSxMMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibG9jYXRpb24tcGluIixpY29uOlszODQsNTEyLFsibWFwLW1hcmtlciJdLCJmMDQxIiwiTTE5MiAwQzg2IDAgMCA4NC40IDAgMTg4LjYgMCAzMDcuOSAxMjAuMiA0NTAuOSAxNzAuNCA1MDUuNCAxODIuMiA1MTguMiAyMDEuOCA1MTguMiAyMTMuNiA1MDUuNCAyNjMuOCA0NTAuOSAzODQgMzA3LjkgMzg0IDE4OC42IDM4NCA4NC40IDI5OCAwIDE5MiAweiJdfSxXQ3Q9TDBlLEdDdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3dsaW5nLWJhbGwiLGljb246WzUxMiw1MTIsW10sImY0MzYiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCA4MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIwOCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTY0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sQTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcnQtZmxhdGJlZCIsaWNvbjpbNTc2LDUxMixbImRvbGx5LWZsYXRiZWQiXSwiZjQ3NCIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDE2IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMjg4YzAgMzkuOCAyOS4xIDcyLjggNjcuMSA3OS0yIDUuMy0zLjEgMTEtMy4xIDE3IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZsMTk3LjUgMGMtMS44IDUtMi43IDEwLjQtMi43IDE2IDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZsMzQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC00MDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjg4QzEyOCAzNS44IDkyLjIgMCA0OCAwTDMyIDB6TTIyNCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNzZjMCAyNi41IDIxLjUgNDggNDggNDhsMjQwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhMMjI0IDY0eiJdfSxZQ3Q9QTBlLEQwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS11c2VyIixpY29uOls1MTIsNTEyLFsiaG9tZS11c2VyIl0sImUxYjAiLCJNMjc3LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVMxOC44IDI3MiAzMiAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwyODggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3NiAxNiAwYzEzLjIgMCAyNS04LjEgMjkuOC0yMC4zczEuNi0yNi4yLTgtMzUuMWwtMjI0LTIwOHpNMjAwIDI1NmE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6TTE0NCA0MzJjMC00NC4yIDM1LjgtODAgODAtODBsNjQgMGM0NC4yIDAgODAgMzUuOCA4MCA4MCAwIDguOC03LjIgMTYtMTYgMTZsLTE5MiAwYy04LjggMC0xNi03LjItMTYtMTZ6Il19LFpDdD1EMGUsWEN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imdob3N0IixpY29uOlszODQsNTEyLFsxMjgxMjNdLCJmNmUyIiwiTTQwLjEgNDY3LjFsLTExLjIgOUMyNS43IDQ3OC42IDIxLjggNDgwIDE3LjggNDgwIDggNDgwIDAgNDcyIDAgNDYyLjJMMCAxOTJDMCA4NiA4NiAwIDE5MiAwUzM4NCA4NiAzODQgMTkybDAgMjcwLjJjMCA5LjgtOCAxNy44LTE3LjggMTcuOC00IDAtNy45LTEuNC0xMS4xLTMuOWwtMTEuMi05Yy0xMy40LTEwLjctMzIuOC05LTQ0LjEgMy45TDI2OS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02bC0yNi42LTMwLjVjLTEyLjctMTQuNi0zNS40LTE0LjYtNDguMiAwTDE0MS4zIDUwNmMtMy4zIDMuOC04LjIgNi0xMy4zIDZzLTkuOS0yLjItMTMuMy02TDg0LjIgNDcxYy0xMS4zLTEyLjktMzAuNy0xNC42LTQ0LjEtMy45ek0xNjAgMTkyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sUUN0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbW1lbnQtbm9kZXMiLGljb246WzY0MCw1MTIsW10sImU2OTYiLCJNNDgwIDIwOEM1MDMuNyAyMDggNTI1LjYgMjE1LjMgNTQzLjcgMjI3LjkgNTM2LjkgMTAwLjkgNDI1IDAgMjg4IDAgMTQ2LjYgMCAzMiAxMDcuNSAzMiAyNDAgMzIgMjk0LjMgNTEuMiAzNDQuMyA4My42IDM4NC41TDM0LjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43YzI3LjIgMTEuNCA1Ni45IDE4LjQgODguMSAyMC4yIC4xLTE4LjkgNC45LTM4IDE1LTU1LjUgMTcuMS0yOS43IDQ1LjgtNDguNSA3Ny01NC4ybDkuMi0xNmMtMy40LTEwLjctNS4yLTIyLTUuMi0zMy44IDAtNjEuOSA1MC4xLTExMiAxMTItMTEyek0zMjguNiA0NDhjLTE3LjcgMzAuNi03LjIgNjkuNyAyMy40IDg3LjRzNjkuNyA3LjIgODcuNC0yMy40YzEuNS0yLjYgMi44LTUuMyAzLjktOGw3My4zIDBjMS4xIDIuNyAyLjQgNS40IDMuOSA4IDE3LjcgMzAuNiA1Ni44IDQxLjEgODcuNCAyMy40czQxLjEtNTYuOCAyMy40LTg3LjRjLTEzLjQtMjMuMi0zOS4xLTM0LjgtNjQtMzEuNGwtMTcuNi0zMC43Yy0xMSAxMS43LTI1IDIwLjYtNDAuNiAyNS42bDE2LjUgMjguOWMtMy44IDQuOC02LjggMTAtOSAxNS42bC03My40IDBjLTIuMi01LjYtNS4zLTEwLjgtOS0xNS42bDMzLTU3LjdjNC4xIC44IDguNCAxLjMgMTIuOCAxLjMgMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NGMwIDEzLjQgNC4xIDI1LjggMTEuMiAzNi4xbC0zNC42IDYwLjVjLTI1LTMuNC01MC42IDguMy02NCAzMS40eiJdfSxKQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWFycm93LWRvd24tdG8tbGluZSIsaWNvbjpbNTc2LDUxMixbXSwiZTUzOCIsIk0xOTItMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTMxOC4zIDI5OS4xbC00Ni4zLTYyLjQgMCAyNDMuMyAyNzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMiA1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsODAgMCAwLTI0My4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVDMTEwIDEzMiAxNDkuNyAxMTIgMTkyIDExMnM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnpNMTc2IDQ4MGwzMiAwIDAtMTI4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgMTI4ek01NjYuNiAxNjYuNmwtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC04MC04MGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw0MzIgMTQ2LjcgNDMyIDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE0Ni43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zeiJdfSxLQ3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGx1Zy1jaXJjbGUtcGx1cyIsaWNvbjpbNjQwLDUxMixbXSwiZTU1ZiIsIk0xOTItMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NiAxMjggMCAwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA5NiA2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgNDguN2MtOTguNiA4LjEtMTc2IDkwLjctMTc2IDE5MS4zIDAgMjcuMyA1LjcgNTMuMyAxNiA3Ni45bDAgMy4xYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjYuN0MxNjUuMiAzOTguMSA5NiAzMTkuMSA5NiAyMjRsMC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA5NiA5NiA5Nmw2NCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0xNiA4MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDQ4LTQ4IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsNDggMCAwIDQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC00OCA0OCAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC00OCAwIDAtNDh6Il19LEUwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tc3dpbW1pbmciLGljb246WzY0MCw1MTIsWzEyNzk0Niwic3dpbW1lciJdLCJmNWM0IiwiTTU1MiAxNTJhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwek0yOTMuNCAxOTguMmwtODguNiA3My45YzEuMSAwIDIuMi0uMSAzLjMtLjEgMzMuMS0uMiA2Ni4zIDEwLjIgOTQuNCAzMS40IDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDQuOCAwIDkuNyAuMiAxNC41IC42LTguMy0zMC0yNC4zLTU3LjctNDYuOC04MC4yLTE4LjQtMTguNC00MC42LTMyLjctNjUtNDEuOGwtNjguNi0yNS43Yy0yNy40LTEwLjMtNTgtNy41LTgzLjEgNy42bC01My41IDMyLjFjLTE1LjIgOS4xLTIwLjEgMjguNy0xMSA0My45czI4LjcgMjAuMSA0My45IDExTDIzMCAxODcuM2M4LjQtNSAxOC42LTUuOSAyNy43LTIuNWwzNS43IDEzLjR6bTExMCAxODEuOWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDM4Ni4zIDE3LjYgMzk0LjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxlVHQ9RTBlLCQwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LWRvdHMiLGljb246WzUxMiw1MTIsWzEyODE3Miw2MjA3NSwiY29tbWVudGluZyJdLCJmNGFkIiwiTTI1NiA0ODBjMTQxLjQgMCAyNTYtMTA3LjUgMjU2LTI0MFMzOTcuNCAwIDI1NiAwIDAgMTA3LjUgMCAyNDBjMCA1NC4zIDE5LjIgMTA0LjMgNTEuNiAxNDQuNUwyLjggNDc2LjhjLTQuOCA5LTMuMyAyMCAzLjYgMjcuNXMxNy44IDkuOCAyNy4xIDUuOGwxMTguNC01MC43QzE4My43IDQ3Mi42IDIxOC45IDQ4MCAyNTYgNDgwek0xMjggMjA4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em05NiAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSx0VHQ9JDBlLEkwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGFydC1waWUiLGljb246WzU3Niw1MTIsWyJwaWUtY2hhcnQiXSwiZjIwMCIsIk01MTIuNCAyNDBsLTE3NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE3NmMwLTE3LjcgMTQuNC0zMi4yIDMxLjktMjkuOSAxMDcgMTQuMiAxOTEuOCA5OSAyMDYgMjA2IDIuMyAxNy41LTEyLjIgMzEuOS0yOS45IDMxLjl6TTIyMi42IDM3LjJjMTguMS0zLjggMzMuOCAxMSAzMy44IDI5LjVsMCAxOTcuM2MwIDUuNiAyIDExIDUuNSAxNS4zTDM5NCA0MzguN2MxMS43IDE0LjEgOS4yIDM1LjQtNi45IDQ0LjEtMzQuMSAxOC42LTczLjIgMjkuMi0xMTQuNyAyOS4yLTEzMi41IDAtMjQwLTEwNy41LTI0MC0yNDAgMC0xMTUuNSA4MS41LTIxMS45IDE5MC4yLTIzNC44ek00NzcuOCAyODhsNjQgMGMxOC41IDAgMzMuMyAxNS43IDI5LjUgMzMuOC0xMC4yIDQ4LjQtMzUgOTEuNC02OS42IDEyNC4yLTEyLjMgMTEuNy0zMS42IDkuMi00Mi40LTMuOUwzNzQuOSAzNDAuNGMtMTcuMy0yMC45LTIuNC01Mi40IDI0LjYtNTIuNGw3OC4yIDB6Il19LHJUdD1JMGUsaVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZyb2ciLGljb246WzU3Niw1MTIsW10sImY1MmUiLCJNMzY4IDMyYzQxLjcgMCA3NS45IDMxLjggNzkuNyA3Mi41bDg1LjYgMjYuM2MyNS40IDcuOCA0Mi44IDMxLjMgNDIuOCA1Ny45IDAgMjEuOC0xMS43IDQxLjktMzAuNyA1Mi43bC0xNDQuNSA4Mi4xIDkyLjUgOTIuNSA1MC43IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40TDM0Ni45IDM2MC4yYzExLjctMzYgMy4yLTc3LjEtMjUuNC0xMDUuNy00MC42LTQwLjYtMTA2LjMtNDAuNi0xNDYuOS0uMUwxMDEgMzI0LjRjLTYuNCA2LjEtNi43IDE2LjItLjYgMjIuNnMxNi4yIDYuNiAyMi42IC42bDczLjgtNzAuMiAuMS0uMSAuMS0uMWMzLjUtMy41IDcuMy02LjYgMTEuMy05LjIgMjcuOS0xOC41IDY1LjktMTUuNCA5MC41IDkuMiAyNC43IDI0LjcgMjcuNyA2Mi45IDkgOTAuOS0yLjYgMy44LTUuNiA3LjUtOSAxMC45TDI2MS44IDQxNiAzNTIgNDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDY0IDQ4MEMyOC43IDQ4MCAwIDQ1MS4zIDAgNDE2IDAgMjQ5LjYgMTI3IDExMi45IDI4OS4zIDk3LjUgMjk2LjIgNjAuMiAzMjguOCAzMiAzNjggMzJ6bTAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sYVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpbmUtYm90dGxlIixpY29uOlszMjAsNTEyLFtdLCJmNzJmIiwiTTgwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAxMS44LTYuNCAyMi4yLTE2IDI3LjdsMCAxNDUuNmM1Ni41IDI0LjcgOTYgODEuMSA5NiAxNDYuN2wwIDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1NzZjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMjg4YzAtNjUuNiAzOS41LTEyMiA5Ni0xNDYuN0w5Ni00LjNDODYuNC05LjggODAtMjAuMiA4MC0zMnpNOTYgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiAyODh6Il19LG5UdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbmJveCIsaWNvbjpbNTEyLDUxMixbXSwiZjAxYyIsIk05MS44IDMyQzU5LjkgMzIgMzIuOSA1NS40IDI4LjQgODYuOUwuNiAyODEuMmMtLjQgMy0uNiA2LS42IDkuMUwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTEyNS43YzAtMy0uMi02LjEtLjYtOS4xTDQ4My42IDg2LjlDNDc5LjEgNTUuNCA0NTIuMSAzMiA0MjAuMiAzMkw5MS44IDMyem0wIDY0bDMyOC41IDAgMjcuNCAxOTItNTkuOSAwYy0xMi4xIDAtMjMuMiA2LjgtMjguNiAxNy43bC0xNC4zIDI4LjZjLTUuNCAxMC44LTE2LjUgMTcuNy0yOC42IDE3LjdsLTEyMC40IDBjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdsLTE0LjMtMjguNmMtNS40LTEwLjgtMTYuNS0xNy43LTI4LjYtMTcuN0w2NC4zIDI4OCA5MS44IDk2eiJdfSxQMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLWgiLGljb246WzQ0OCw1MTIsWyJoLXNxdWFyZSJdLCJmMGZkIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTMyMCAxNjhsMCAxNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC02NC05NiAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDY0IDk2IDAgMC02NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0eiJdfSxvVHQ9UDBlLHNUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS1tZWRpY2FsIixpY29uOls1MTIsNTEyLFtdLCJlM2IyIiwiTTI3Ny44IDguNmMtMTIuMy0xMS40LTMxLjMtMTEuNC00My41IDBsLTIyNCAyMDhjLTkuNiA5LTEyLjggMjIuOS04IDM1LjFTMTguOCAyNzIgMzIgMjcybDE2IDAgMCAxNzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMjg4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNzYgMTYgMGMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LTM1LjFsLTIyNC0yMDh6TTIyNCAyNDhjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgNDAgNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTQwIDAgMCA0MGMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTQwLTQwIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNmw0MCAwIDAtNDB6Il19LE4wZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtY2hldnJvbi1yaWdodCIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLXJpZ2h0Il0sImYxMzgiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMCAyNTYgMjU2IDAgMSAwIC01MTIgMHpNMjQxIDM3N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4Ny04Ny04Ny04N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwTDM0NSAyMzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMjQxIDM3N3oiXX0sbFR0PU4wZSxjVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1jc3YiLGljb246WzU3Niw1MTIsW10sImY2ZGQiLCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGw4MCAwIDAtMTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE3NiAwIDAtMTY1LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTI2NCAzODBjLTI0LjMgMC00NCAxOS43LTQ0IDQ0bDAgODBjMCAyNC4zIDE5LjcgNDQgNDQgNDRsMTYgMGMyNC4zIDAgNDQtMTkuNyA0NC00NGwwLThjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwbDAgOGMwIDIuMi0xLjggNC00IDRsLTE2IDBjLTIuMiAwLTQtMS44LTQtNGwwLTgwYzAtMi4yIDEuOC00IDQtNGwxNiAwYzIuMiAwIDQgMS44IDQgNGwwIDhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC04YzAtMjQuMy0xOS43LTQ0LTQ0LTQ0bC0xNiAwem0xMzYgMGMtMjguNyAwLTUyIDIzLjMtNTIgNTJzMjMuMyA1MiA1MiA1MmM2LjYgMCAxMiA1LjQgMTIgMTJzLTUuNCAxMi0xMiAxMmwtMzIgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMzIgMGMyOC43IDAgNTItMjMuMyA1Mi01MnMtMjMuMy01Mi01Mi01MmMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMmwyNCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtMjQgMHptOTYgMGMtMTEgMC0yMCA5LTIwIDIwbDAgMzEuNmMwIDM1LjUgMTAuNSA3MC4zIDMwLjIgOTkuOGw1LjEgNy43YzMuNyA1LjYgMTAgOC45IDE2LjYgOC45czEyLjktMy4zIDE2LjYtOC45bDUuMS03LjdjMTkuNy0yOS42IDMwLjItNjQuMyAzMC4yLTk5LjhsMC0zMS42YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMGwwIDMxLjZjMCAxOS42LTQuMSAzOC45LTEyIDU2LjctNy45LTE3LjgtMTItMzcuMS0xMi01Ni43bDAtMzEuNmMwLTExLTktMjAtMjAtMjB6Il19LGRUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYXQtY293Ym95IixpY29uOls2NDAsNTEyLFtdLCJmOGMwIiwiTTE4Mi4yIDc2LjFMMTMwLjggMzA3LjVDMTQ1LjUgMzI0LjkgMTY3LjQgMzM2IDE5MiAzMzZsMjU2IDBjMjQuNiAwIDQ2LjUtMTEuMSA2MS4yLTI4LjVMNDU3LjggNzYuMWMtNS43LTI1LjgtMjguNi00NC4xLTU1LTQ0LjEtMTIuMiAwLTI0LjEgNC0zMy44IDExLjNsLTQuNyAzLjVjLTI2LjMgMTkuNy02Mi40IDE5LjctODguNiAwTDI3MSA0My4zYy05LjgtNy4zLTIxLjYtMTEuMy0zMy44LTExLjMtMjYuNCAwLTQ5LjMgMTguMy01NSA0NC4xek02NCAyNTZjMC0xNy43LTE0LjMtMzItMzItMzJTMCAyMzguMyAwIDI1NkMwIDM2MiA4NiA0NDggMTkyIDQ0OGwyNTYgMGMxMDYgMCAxOTItODYgMTkyLTE5MiAwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMjU2IDBjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4eiJdfSxGMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLXRvbmd1ZS13aW5rIixpY29uOls1MTIsNTEyLFsxMjg1NDAsImdyaW4tdG9uZ3VlLXdpbmsiXSwiZjU4YiIsIk0xNTIuMiA0OTAuMUM2Mi41IDQ1MC4yIDAgMzYwLjQgMCAyNTYgMCAxMTQuNiAxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2YzAgMTA0LjQtNjIuNSAxOTQuMi0xNTIuMiAyMzQuMSA1LjMtMTMgOC4yLTI3LjIgOC4yLTQyLjFsMC02MS43YzE2LjktMTYuNSAzMC4xLTM2LjcgMzguMy01OS4zIDQuMy0xMS44LTcuNy0yMS44LTE5LjYtMTguMS0zOS4yIDEyLjItODMuNyAxOS4xLTEzMC43IDE5LjFzLTkxLjUtNi45LTEzMC43LTE5LjFjLTExLjktMy43LTIzLjkgNi4zLTE5LjYgMTguMSA4LjMgMjIuNiAyMS41IDQyLjggMzguMyA1OS4zbDAgNjEuN2MwIDE0LjkgMi45IDI5LjEgOC4yIDQyLjF6TTE1MiAyMTJsMTYgMGMxMSAwIDIwIDkgMjAgMjBzOSAyMCAyMCAyMCAyMC05IDIwLTIwYzAtMzMuMS0yNi45LTYwLTYwLTYwbC0xNiAwYy0zMy4xIDAtNjAgMjYuOS02MCA2MCAwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMCA5LTIwIDIwLTIwem0xODQgNjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6TTMyMCA0MDIuNmwwIDQ1LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRsMC00NS40YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42bDIgMGMxMS4zIDAgMjEuMSA3LjkgMjMuNiAxOC45IDIuOCAxMi42IDIwLjggMTIuNiAyMy42IDAgMi41LTExLjEgMTIuMy0xOC45IDIzLjYtMTguOWwyIDBjMTQuNyAwIDI2LjYgMTEuOSAyNi42IDI2LjZ6TTMzNiAxODRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSx1VHQ9RjBlLHBUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsIixpY29uOlszMjAsNTEyLFsxMDhdLCI0YyIsIk02NCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDM1MiAxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyTDMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyeiJdfSxfRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLXNob3J0LXdpZGUiLGljb246WzU3Niw1MTIsWyJzb3J0LWFtb3VudC1kZXNjIiwic29ydC1hbW91bnQtZG93bi1hbHQiXSwiZjg4NCIsIk0yNDYuNiAzNzQuNmwtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTMyMCAzMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOGw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0wIDEyOGwxNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4bDIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yMjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnoiXX0saFR0PV9ELGZUdD1fRCxPMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLWhhbGYiLGljb246WzM4NCw1MTIsWyJob3VyZ2xhc3MtMiJdLCJmMjUyIiwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRsMCAxMWMwIDQyLjQgMTYuOSA4My4xIDQ2LjkgMTEzLjFsNjcuOSA2Ny45LTY3LjkgNjcuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN2wwIDExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDMyMCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybDAtMTFjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xbC02Ny45LTY3LjkgNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xbDAtMTFjMTcuNyAwIDMyLTE0LjMgMzItMzJTMzY5LjcgMCAzNTIgMEwzMiAwek05NiA3NWwwLTExIDE5MiAwIDAgMTFjMCAxOS01LjYgMzcuNC0xNiA1M0wxMTIgMTI4Yy0xMC4zLTE1LjYtMTYtMzQtMTYtNTN6bTE2IDMwOWMzLjUtNS4zIDcuNi0xMC4zIDEyLjEtMTQuOWw2Ny45LTY3LjkgNjcuOSA2Ny45YzQuNiA0LjYgOC42IDkuNiAxMi4yIDE0LjlMMTEyIDM4NHoiXX0sbVR0PU8wZSxSMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3Bvb24iLGljb246WzUxMiw1MTIsWzEyOTM0OCw2MTg3MywidXRlbnNpbC1zcG9vbiJdLCJmMmU1IiwiTTI0NS44IDIyMC45Yy0xNC41LTE3LjYtMjEuOC0zOS4yLTIxLjgtNjAuOCAwLTgwLjIgOTYtMTYwLjIgMTkyLTE2MC4yIDUzIDAgOTYgNDMgOTYgOTYgMCA5Ni04MCAxOTItMTYwLjIgMTkyLTIxLjYgMC00My4yLTcuMy02MC44LTIxLjhMNTQuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjQ1LjggMjIwLjl6Il19LGdUdD1SMGUsQjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNyZWRpdC1jYXJkIixpY29uOls1MTIsNTEyLFsxMjgxNzksNjIwODMsImNyZWRpdC1jYXJkLWFsdCJdLCJmMDlkIiwiTTAgMTI4bDAgMzIgNTEyIDAgMC0zMmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHptMCA4MEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE3Ni01MTIgMHpNNjQgMzYwYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xNDQgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sYlR0PUIwZSxjRT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWludm9pY2UtZG9sbGFyIixpY29uOlszODQsNTEyLFtdLCJmNTcxIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek02NCA4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDY0Qzc0LjcgNjQgNjQgNzQuNyA2NCA4OHptMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMTEyIDc2bDAgNGMtMjguOCAuMy01MiAyMy43LTUyIDUyLjUgMCAyNS43IDE4LjUgNDcuNiA0My45IDUxLjhsNDEuNyA3YzYgMSAxMC40IDYuMiAxMC40IDEyLjMgMCA2LjktNS42IDEyLjUtMTIuNSAxMi41TDE1MiA0MDBjLTExIDAtMjAgOS0yMCAyMHM5IDIwIDIwIDIwbDI0IDAgMCA0YzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwbDAtNC43YzI1LTQuMSA0NC0yNS43IDQ0LTUxLjggMC0yNS43LTE4LjUtNDcuNi00My45LTUxLjhsLTQxLjctN2MtNi0xLTEwLjQtNi4yLTEwLjQtMTIuMyAwLTYuOSA1LjYtMTIuNSAxMi41LTEyLjVsNDcuNSAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtOCAwIDAtNGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjB6Il19LEgwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcGFnaGV0dGktbW9uc3Rlci1mbHlpbmciLGljb246WzY0MCw1MTIsWyJwYXN0YWZhcmlhbmlzbSJdLCJmNjdiIiwiTTIwOCA2NGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAwYzAgMTYuMi02IDMxLjEtMTYgNDIuM2wxNS42IDMxLjJjMTguNy02IDM5LjktOS41IDY0LjQtOS41czQ1LjggMy41IDY0LjQgOS41TDQwMCAxMDYuM2MtMTAtMTEuMy0xNi0yNi4xLTE2LTQyLjMgMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0Yy0xLjcgMC0zLjQtLjEtNS4xLS4yTDQyNy44IDE1OGMyMS4xIDEzLjYgMzcuNyAzMC4yIDUxLjQgNDYuNCA3LjEgOC4zIDEzLjUgMTYuNiAxOS4zIDI0bDEuNCAxLjhjNi4zIDguMSAxMS42IDE0LjggMTYuNyAyMC40IDEwLjcgMTEuNyAxNi4xIDEzLjQgMTkuNCAxMy40IDIuNSAwIDQuMy0uNiA3LjEtMy4zIDMuNy0zLjUgNy4xLTguOCAxMi41LTE3LjRsLjYtLjljNC42LTcuNCAxMS0xNy42IDE5LjQtMjUuNyA5LjctOS4zIDIyLjktMTYuNyA0MC40LTE2LjcgMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTIuNSAwLTQuMyAuNi03LjEgMy4zLTMuNyAzLjUtNy4xIDguOC0xMi41IDE3LjRsLS42IC45Yy00LjYgNy40LTExIDE3LjYtMTkuNCAyNS43LTkuNyA5LjMtMjIuOSAxNi43LTQwLjQgMTYuNy0xOC41IDAtMzIuOS04LjUtNDQuMy0xOC42LTMuMSA0LTYuNiA4LjMtMTAuNSAxMi43IDEuNCA0LjMgMi44IDguNSA0IDEyLjUgLjkgMyAxLjggNS44IDIuNiA4LjYgMyA5LjggNS41IDE4LjIgOC42IDI1LjkgMy45IDkuOCA3LjQgMTUuNCAxMC44IDE4LjUgMi42IDIuNCA1LjkgNC4zIDEyLjggNC4zIDguNyAwIDE2LjktNC4yIDMzLjctMTMuMiAxNS04IDM1LjctMTguOCA2Mi4zLTE4LjggMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTEzLjQgMC0yNC43IDUuMi0zOS43IDEzLjItMSAuNi0yLjEgMS4xLTMuMiAxLjctMTMuMSA3LjEtMzEuNiAxNy4xLTUzLjEgMTcuMS0xOC40IDAtMzMuNi02LjEtNDUuNS0xNy4yLTExLjEtMTAuMy0xNy45LTIzLjctMjIuNy0zNi0zLjYtOS02LjctMTkuMS05LjUtMjguNS0xNi40IDEyLjMtMzYuMSAyMy42LTU4LjkgMzEuMyAzLjYgMTAuOCA4LjQgMjMuNSAxNC40IDM2LjIgNy41IDE1LjkgMTYuMiAzMC40IDI1LjggNDAuNSA5LjYgMTAuMiAxNy43IDEzLjcgMjQuNSAxMy43IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yNS4yIDAtNDUtMTMuNS01OS41LTI4LjgtMTQuNS0xNS40LTI1LjctMzQuOS0zNC4yLTUzLTgtMTctMTQuMS0zMy44LTE4LjMtNDYuOS01LjIgLjQtMTAuNiAuNi0xNiAuNnMtMTAuOC0uMi0xNi0uNmMtNC4yIDEzLTEwLjMgMjkuOS0xOC4zIDQ2LjktOC41IDE4LjEtMTkuOCAzNy42LTM0LjIgNTMtMTQuNCAxNS4zLTM0LjMgMjguOC01OS41IDI4LjgtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGM2LjggMCAxNS0zLjUgMjQuNS0xMy43IDkuNS0xMC4xIDE4LjMtMjQuNiAyNS44LTQwLjUgNS45LTEyLjYgMTAuNy0yNS40IDE0LjQtMzYuMi0yMi44LTcuNy00Mi41LTE5LTU4LjktMzEuMy0yLjkgOS40LTYgMTkuNS05LjUgMjguNS00LjggMTIuMi0xMS42IDI1LjYtMjIuNyAzNi0xMS45IDExLjEtMjcuMSAxNy4yLTQ1LjUgMTcuMi0xMy4xIDAtMjQuNS00LjEtMzMuOC04LjktNy45LTQtMTUuNy05LjItMjIuMS0xMy41bDAgMC0yLjQtMS42Yy0xNS4zLTEwLjItMjUuOC0xNi0zNy43LTE2LTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjguMSAwIDQ5LjYgMTQuMiA2NC4zIDI0bDIuNCAxLjZjNi45IDQuNiAxMi4xIDguMSAxNy4yIDEwLjcgNS41IDIuOCA5LjEgMy42IDEyIDMuNiA2LjggMCAxMC4yLTEuOSAxMi44LTQuMyAzLjQtMy4yIDctOC44IDEwLjgtMTguNSAzLTcuNyA1LjYtMTYuMSA4LjYtMjUuOSAuOC0yLjcgMS43LTUuNiAyLjYtOC42IDEuMi00IDIuNi04LjIgNC0xMi41LTMuOS00LjUtNy40LTguOC0xMC41LTEyLjctMTEuNCAxMC4xLTI1LjkgMTguNi00NC4zIDE4LjYtMTcuNSAwLTMwLjctNy40LTQwLjQtMTYuNy04LjQtOC4xLTE0LjgtMTguMy0xOS40LTI1LjdsLS42LS45Yy01LjQtOC42LTguOC0xMy45LTEyLjUtMTcuNC0yLjgtMi43LTQuNi0zLjMtNy4xLTMuMy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzE3LjUgMCAzMC43IDcuNCA0MC40IDE2LjcgOC40IDguMSAxNC44IDE4LjMgMTkuNCAyNS43bC42IC45YzUuNCA4LjYgOC44IDEzLjkgMTIuNSAxNy40IDIuOCAyLjcgNC42IDMuMyA3LjEgMy4zIDMuMyAwIDguNy0xLjcgMTkuNC0xMy40IDUuMS01LjYgMTAuNC0xMi4zIDE2LjctMjAuNGwxLjQtMS44YzUuOC03LjQgMTIuMi0xNS43IDE5LjMtMjQgMTMuOC0xNi4yIDMwLjMtMzIuOCA1MS40LTQ2LjRsLTE1LjEtMzAuMmMtMS43IC4xLTMuNCAuMi01LjEgLjItMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0em0yMDggMGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAweiJdfSx2VHQ9SDBlLHEwZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXJ0aW5pLWdsYXNzLWNpdHJ1cyIsaWNvbjpbNjQwLDUxMixbImNvY2t0YWlsIl0sImY1NjEiLCJNNTc2IDgwYzAtNDQuMi0zNS44LTgwLTgwLTgwLTE4IDAtMzQuNiA2LTQ4IDE2bC04MSAwYzIzLjYtNDcuNCA3Mi41LTgwIDEyOS04MCA3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NFM1NzUuNSAyMjQgNDk2IDIyNGMtNi41IDAtMTMtLjQtMTkuMy0xLjNsNjQtNzQuN2MxLjEtMS4zIDIuMi0yLjcgMy4zLTQuMSAxOS40LTE0LjYgMzItMzcuOCAzMi02NHpNNjYuOSA4Mi42QzcyLjIgNzEuMyA4My41IDY0IDk2IDY0bDM4NCAwYzEyLjUgMCAyMy44IDcuMyAyOS4xIDE4LjZzMy40IDI0LjctNC44IDM0LjJsLTE4NC4zIDIxNSAwIDExNi4yIDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE5MiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDAgMC0xMTYuMi0xODQuMy0yMTVjLTguMS05LjUtMTAtMjIuOC00LjgtMzQuMnpNMTY1LjYgMTI4TDI4OCAyNzAuOCA0MTAuNCAxMjggMTY1LjYgMTI4eiJdfSx4VHQ9cTBlLHlUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWxsaG9ybiIsaWNvbjpbNTEyLDUxMixbMTI4MjI2LDEyODM2M10sImYwYTEiLCJNNDYxLjIgMTguOUM0NzIuNyAyNCA0ODAgMzUuNCA0ODAgNDhsMCA0MTZjMCAxMi42LTcuMyAyNC0xOC44IDI5LjFzLTI0LjggMy4yLTM0LjMtNS4xbC00Ni42LTQwLjdjLTQzLjYtMzguMS05OC43LTYwLjMtMTU2LjQtNjNsMCA5NS43YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk2QzU3LjMgMzg0IDAgMzI2LjcgMCAyNTZTNTcuMyAxMjggMTI4IDEyOGw4NC41IDBjNjEuOC0uMiAxMjEuNC0yMi43IDE2Ny45LTYzLjNsNDYuNi00MC43YzkuNC04LjMgMjIuOS0xMC4yIDM0LjMtNS4xek0yMjQgMzIwbDAgLjJjNzAuMyAyLjcgMTM3LjggMjguNSAxOTIgNzMuNGwwLTI3NS4zYy01NC4yIDQ0LjktMTIxLjcgNzAuNy0xOTIgNzMuNEwyMjQgMzIweiJdfSx3VHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94LXRpc3N1ZSIsaWNvbjpbNTEyLDUxMixbXSwiZTA1YiIsIk0xMDMuOSAzMmwxNjEgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOWwxNy40IDUyLjJjNC40IDEzLjEgMTYuNiAyMS45IDMwLjQgMjEuOWw2MC41IDBjMjEuOCAwIDM3LjMgMjEuNCAzMC40IDQyLjFMMzg0IDMyMCAxMjggMzIwIDcyLjcgNzAuOUM2OC4yIDUxIDgzLjQgMzIgMTAzLjkgMzJ6TTQ4IDI1NmwxNi42IDAgMTYuNSA3NC40Qzg2IDM1Mi40IDEwNS41IDM2OCAxMjggMzY4bDI1NiAwYzIwLjcgMCAzOS0xMy4yIDQ1LjUtMzIuOGwyNi40LTc5LjIgOC4xIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNDgwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDMwNGMwLTI2LjUgMjEuNS00OCA0OC00OHoiXX0sTVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hdHRyZXNzLXBpbGxvdyIsaWNvbjpbNTc2LDUxMixbXSwiZTUyNSIsIk0yNTYgNjRMNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDAgMC0zODR6bTQ4IDM4NGwyMDggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NGwtMjA4IDAgMCAzODR6TTY0IDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTkyYzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE5MnoiXX0sa1R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXZyb24tbGVmdCIsaWNvbjpbMzIwLDUxMixbOTAwMV0sImYwNTMiLCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMjQ2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5MnoiXX0sU1R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNsb3VkLW1vb24tcmFpbiIsaWNvbjpbNTc2LDUxMixbXSwiZjczYyIsIk00NDggMGMtNjguNiAwLTEyNy4xIDQzLjEtMTQ5LjggMTAzLjggMTcuMSAxNC4xIDI5LjYgMzMuNSAzNC45IDU1LjggMzkuOSAyMS43IDY2LjkgNjMuOSA2Ni45IDExMi41IDAgMTMuNS0yLjEgMjYuNS01LjkgMzguNyAxNi45IDYgMzUgOS4zIDUzLjkgOS4zIDQzIDAgODIuMS0xNyAxMTAuOC00NC42IDQuNi00LjQgNS45LTExLjIgMy4zLTE3cy04LjYtOS4zLTE0LjktOC44Yy0zIC4yLTYuMSAuNC05LjIgLjQtNjMuNSAwLTExNS01MS41LTExNS0xMTUgMC00NS4xIDI2LTg0LjIgNjMuOC0xMDMgNS43LTIuOCA5LTguOSA4LjItMTUuMlM0ODkuNiA1LjMgNDgzLjQgMy45QzQ3MiAxLjQgNDYwLjIgMCA0NDggMHpNMjcyIDM1MmM0NC4yIDAgODAtMzUuOCA4MC04MCAwLTM5LTI3LjktNzEuNS02NC44LTc4LjYgLjUtMy4xIC44LTYuMiAuOC05LjQgMC0zMC45LTI1LjEtNTYtNTYtNTYtMTIuNCAwLTIzLjkgNC0zMy4xIDEwLjgtMTMuNC0yNS41LTQwLjEtNDIuOC03MC45LTQyLjgtNDQuMiAwLTgwIDM1LjgtODAgODAgMCA3LjQgMSAxNC42IDIuOSAyMS41LTI5LjggMTEuNi01MC45IDQwLjYtNTAuOSA3NC41IDAgNDQuMiAzNS44IDgwIDgwIDgwbDE5MiAwek02OSA0MDEuMWMtMTIuNi00LjItMjYuMiAyLjYtMzAuNCAxNS4yTDE3LjIgNDgwLjRDMTMgNDkzIDE5LjggNTA2LjYgMzIuNCA1MTAuOHMyNi4yLTIuNiAzMC40LTE1LjJsMjEuNC02NC4xYzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHptMTIwIDBjLTEyLjYtNC4yLTI2LjIgMi42LTMwLjQgMTUuMmwtMjEuNCA2NC4xYy00LjIgMTIuNiAyLjYgMjYuMiAxNS4yIDMwLjRzMjYuMi0yLjYgMzAuNC0xNS4ybDIxLjQtNjQuMWM0LjItMTIuNi0yLjYtMjYuMi0xNS4yLTMwLjR6bTEyMCAwYy0xMi42LTQuMi0yNi4yIDIuNi0zMC40IDE1LjJsLTIxLjQgNjQuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyMS40LTY0LjFjNC4yLTEyLjYtMi42LTI2LjItMTUuMi0zMC40eiJdfSxMRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLTEtOSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy1hc2MiLCJzb3J0LW51bWVyaWMtZG93biJdLCJmMTYyIiwiTTQxOC43IDM4YzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40ek0zNjUuMSA0MzAuNmwxMS43LTE4Yy0zMi45LTkuOS01Ni44LTQwLjUtNTYuOC03Ni42IDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAyMi45LTYuNiA0NS4zLTE5LjEgNjQuNWwtNDIuMSA2NC45Yy05LjYgMTQuOC0yOS40IDE5LjEtNDQuMyA5LjRzLTE5LjEtMjkuNC05LjQtNDQuM3pNNDI0IDMzNmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0xNTAuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZ6Il19LHpUdD1MRCxDVHQ9TEQsVFR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtc3BvY2siLGljb246WzUxMiw1MTIsWzEyODQwNl0sImYyNTkiLCJNMjE0LjkgMjMuN0MyMTAuMyA2LjYgMTkyLjgtMy41IDE3NS43IDEuMXMtMjcuMiAyMi4xLTIyLjYgMzkuMkwyMDYgMjM3LjhjMi41IDkuMi00LjUgMTguMi0xNCAxOC4yLTYuNCAwLTEyLTQuMi0xMy45LTEwLjNMMTM0LjYgMTAyLjdjLTUuMS0xNi45LTIzLTI2LjQtMzkuOS0yMS4zcy0yNi40IDIzLTIxLjMgMzkuOWw2Mi44IDIwNi40YzIuNCA3LjktNy4yIDEzLjgtMTMuMiA4LjFMNjcuNiAyODNjLTE2LTE1LjItNDEuMy0xNC42LTU2LjYgMS40Uy0zLjYgMzI1LjcgMTIuNCAzNDFMMTI0LjggNDQ4YzQzLjEgNDEuMSAxMDAuNCA2NCAxNjAgNjRsMTkuMSAwYy4xIDAgLjEtLjEgLjEtLjFzLjEtLjEgLjEtLjFjNTguMy0zLjUgMTA4LjYtNDMuMiAxMjUuMy05OS43bDgxLjItMjc1YzUtMTYuOS00LjctMzQuNy0yMS42LTM5LjhzLTM0LjcgNC43LTM5LjggMjEuNkw0MTEuNSAyNDcuMWMtMS42IDUuMy02LjQgOC45LTEyIDguOS03LjkgMC0xMy44LTcuMy0xMi4yLTE1LjFsMzYtMTcwLjNjMy43LTE3LjMtNy40LTM0LjMtMjQuNy0zNy45cy0zNC4zIDcuNC0zNy45IDI0LjdMMzIzLjEgMjM1LjFjLTIuNiAxMi4yLTEzLjMgMjAuOS0yNS44IDIwLjktMTEuOSAwLTIyLjQtOC0yNS40LTE5LjVsLTU3LTIxMi44eiJdfSxqMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2FuZC1tYWdpYy1zcGFya2xlcyIsaWNvbjpbNTc2LDUxMixbIm1hZ2ljLXdhbmQtc3BhcmtsZXMiXSwiZTJjYSIsIk0yNjMuNC0yN0wyNzguMiA5LjggMzE1IDI0LjZjMyAxLjIgNSA0LjIgNSA3LjRzLTIgNi4yLTUgNy40TDI3OC4yIDU0LjIgMjYzLjQgOTFjLTEuMiAzLTQuMiA1LTcuNCA1cy02LjItMi03LjQtNUwyMzMuOCA1NC4yIDE5NyAzOS40Yy0zLTEuMi01LTQuMi01LTcuNHMyLTYuMiA1LTcuNEwyMzMuOCA5LjggMjQ4LjYtMjdjMS4yLTMgNC4yLTUgNy40LTVzNi4yIDIgNy40IDV6TTExMC43IDQxLjdsMjEuNSA1MC4xIDUwLjEgMjEuNWM1LjkgMi41IDkuNyA4LjMgOS43IDE0LjdzLTMuOCAxMi4yLTkuNyAxNC43bC01MC4xIDIxLjUtMjEuNSA1MC4xYy0yLjUgNS45LTguMyA5LjctMTQuNyA5LjdzLTEyLjItMy44LTE0LjctOS43TDU5LjggMTY0LjIgOS43IDE0Mi43QzMuOCAxNDAuMiAwIDEzNC40IDAgMTI4czMuOC0xMi4yIDkuNy0xNC43TDU5LjggOTEuOCA4MS4zIDQxLjdDODMuOCAzNS44IDg5LjYgMzIgOTYgMzJzMTIuMiAzLjggMTQuNyA5Ljd6TTQ2NCAzMDRjNi40IDAgMTIuMiAzLjggMTQuNyA5LjdsMjEuNSA1MC4xIDUwLjEgMjEuNWM1LjkgMi41IDkuNyA4LjMgOS43IDE0LjdzLTMuOCAxMi4yLTkuNyAxNC43bC01MC4xIDIxLjUtMjEuNSA1MC4xYy0yLjUgNS45LTguMyA5LjctMTQuNyA5LjdzLTEyLjItMy44LTE0LjctOS43bC0yMS41LTUwLjEtNTAuMS0yMS41Yy01LjktMi41LTkuNy04LjMtOS43LTE0LjdzMy44LTEyLjIgOS43LTE0LjdsNTAuMS0yMS41IDIxLjUtNTAuMWMyLjUtNS45IDguMy05LjcgMTQuNy05Ljd6TTQ2MCAwYzExIDAgMjEuNiA0LjQgMjkuNSAxMi4ybDQyLjMgNDIuM0M1MzkuNiA2Mi40IDU0NCA3MyA1NDQgODRzLTQuNCAyMS42LTEyLjIgMjkuNWwtODguMiA4OC4yLTEwMS4zLTEwMS4zIDg4LjItODguMkM0MzguNCA0LjQgNDQ5IDAgNDYwIDB6TTQ0LjIgMzk4LjVMMzA4LjQgMTM0LjMgNDA5LjcgMjM1LjYgMTQ1LjUgNDk5LjhDMTM3LjYgNTA3LjYgMTI3IDUxMiAxMTYgNTEycy0yMS42LTQuNC0yOS41LTEyLjJMNDQuMiA0NTcuNUMzNi40IDQ0OS42IDMyIDQzOSAzMiA0MjhzNC40LTIxLjYgMTIuMi0yOS41eiJdfSxfVHQ9ajBlLExUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21tZW50LW1lZGljYWwiLGljb246WzUxMiw1MTIsW10sImY3ZjUiLCJNMjU2IDQ4MGMxNDEuNCAwIDI1Ni0xMDcuNSAyNTYtMjQwUzM5Ny40IDAgMjU2IDAgMCAxMDcuNSAwIDI0MGMwIDU0LjMgMTkuMiAxMDQuMyA1MS42IDE0NC41TDIuOCA0NzYuOGMtNC44IDktMy4zIDIwIDMuNiAyNy41czE3LjggOS44IDI3LjEgNS44bDExOC40LTUwLjdDMTgzLjcgNDcyLjYgMjE4LjkgNDgwIDI1NiA0ODB6TTIxNy42IDE1My42YzAtMTAuNiA4LjYtMTkuMiAxOS4yLTE5LjJsMzguNCAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjJsMCA0OCA0OCAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjJsMCAzOC40YzAgMTAuNi04LjYgMTkuMi0xOS4yIDE5LjJsLTQ4IDAgMCA0OGMwIDEwLjYtOC42IDE5LjItMTkuMiAxOS4ybC0zOC40IDBjLTEwLjYgMC0xOS4yLTguNi0xOS4yLTE5LjJsMC00OC00OCAwYy0xMC42IDAtMTkuMi04LjYtMTkuMi0xOS4ybDAtMzguNGMwLTEwLjYgOC42LTE5LjIgMTkuMi0xOS4ybDQ4IDAgMC00OHoiXX0sQVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJlbGwtc2xhc2giLGljb246WzU3Niw1MTIsWzEyODI3Nyw2MTk0M10sImYxZjYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODcuNS04Ny41YzE3LjItMi40IDMwLjUtMTcuMyAzMC41LTM1LjIgMC04LjEtMi43LTE1LjktNy44LTIyLjJsLTkuOC0xMi4yQzQ2NC40IDMwOC41IDQ0OCAyNjEuOCA0NDggMjEzLjdsMC0yMS43YzAtNzcuNC01NS0xNDItMTI4LTE1Ni44bDAtMy4yYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMy4yYy0zOC42IDcuOC03Mi4yIDI5LjYtOTUuMiA1OS43TDQxLTI0Ljl6bTg3IDIzOC41YzAgNDguMS0xNi40IDk0LjgtNDYuNCAxMzIuNGwtOS44IDEyLjJjLTUgNi4zLTcuOCAxNC4xLTcuOCAyMi4yIDAgMTkuNiAxNS45IDM1LjUgMzUuNSAzNS41bDIzNS4zIDAtMjA2LjktMjA2LjkgMCA0LjV6TTI4OCA1MTJjMjkuOCAwIDU0LjktMjAuNCA2Mi00OGwtMTI0IDBjNy4xIDI3LjYgMzIuMiA0OCA2MiA0OHoiXX0sQUQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlLXNsYXNoIixpY29uOls1NzYsNTEyLFs1NzQzOSwiaGFuZHNoYWtlLWFsdC1zbGFzaCIsImhhbmRzaGFrZS1zaW1wbGUtc2xhc2giXSwiZTA2MCIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0yODgtMjg4IDE0LjItMTQuMmM0LjItNC4yIDkuNS02LjUgMTQuOS02LjkgNi44LS42IDEzLjggMS43IDE5IDYuOUw1MDUuNiAzNzYgNTc2IDMyMCA1NzYgMzIgNDY0IDk2IDQ0MC4yIDgwLjFDNDI0LjQgNjkuNiA0MDUuOSA2NCAzODYuOSA2NGwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjFsLTU1LjggNjIuMS0zNC0zNCA0NC4zLTQ5LjItMzkuNyAwYy0xNS4zIDAtMzAuMSAzLjYtNDMuNSAxMC40TDQxLTI0Ljl6TTAgNjkuOEwwIDMyMCAxNTYuNCA0NTAuM2MyMyAxOS4yIDUyIDI5LjcgODEuOSAyOS43bDE1LjcgMC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0MSA0MSA5IDBjMjIuMiAwIDQzLjgtNS44IDYyLjgtMTYuNEwwIDY5Ljh6Il19LERUdD1BRCxFVHQ9QUQsJFR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvdHRsZS13YXRlciIsaWNvbjpbMzIwLDUxMixbXSwiZTRjNSIsIk0xMTItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMEM5NC4zIDMyIDgwIDE3LjcgODAgMHMxNC4zLTMyIDMyLTMyek0xNiAxNDRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyNC4xLTEzLjMgNDUuMS0zMyA1NiAxOS43IDEwLjkgMzMgMzEuOSAzMyA1NnMtMTMuMyA0NS4xLTMzIDU2YzE5LjcgMTAuOSAzMyAzMS45IDMzIDU2cy0xMy4zIDQ1LjEtMzMgNTZjMTkuNyAxMC45IDMzIDMxLjkgMzMgNTYgMCAzNS4zLTI4LjcgNjQtNjQgNjRMODAgNTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTI0LjEgMTMuMy00NS4xIDMzLTU2LTE5LjctMTAuOS0zMy0zMS45LTMzLTU2czEzLjMtNDUuMSAzMy01NmMtMTkuNy0xMC45LTMzLTMxLjktMzMtNTZzMTMuMy00NS4xIDMzLTU2Yy0xOS43LTEwLjktMzMtMzEuOS0zMy01NnoiXX0sSVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UtZDIwIixpY29uOls1MTIsNTEyLFtdLCJmNmNmIiwiTTIyNC40LTguMmMxOS42LTExLjEgNDMuNi0xMS4xIDYzLjEgMGwxOTIgMTA4LjhjMjAgMTEuNCAzMi40IDMyLjYgMzIuNCA1NS43bDAgMjE1LjZjMCAyMy0xMi40IDQ0LjMtMzIuNCA1NS43bC0xOTIgMTA4LjhjLTE5LjYgMTEuMS00My42IDExLjEtNjMuMSAwTDMyLjQgNDI3LjVDMTIuNCA0MTYuMSAwIDM5NC44IDAgMzcxLjhMMCAxNTYuMmMwLTIzIDEyLjQtNDQuMyAzMi40LTU1LjdMMjI0LjQtOC4yem01MiA3My4yQzI2NyA0OS44IDI0NSA0OS44IDIzNS42IDY1bC03Ni42IDEyMy43LTg1LjQtNDYuMy0zLjgtMS42Yy04LjktMi43LTE4LjggMS4xLTIzLjQgOS42cy0yLjQgMTguOSA0LjcgMjQuOGwzLjMgMi4zIDgzLjQgNDUuMi03NC42IDEyMC42QzU1LjMgMzU2LjIgNjEgMzczIDc1IDM3OC40bDE2MSA2MS45IDAgMzkuN2MwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMGwwLTM5LjcgMTYxLTYxLjljMTQtNS40IDE5LjctMjIuMiAxMS44LTM1bC03NC43LTEyMC42IDgzLjQtNDUuMmM5LjctNS4zIDEzLjMtMTcuNCA4LjEtMjcuMXMtMTcuNC0xMy4zLTI3LjEtOC4xTDM1MyAxODguNyAyNzYuNCA2NXptLTQ3IDMyOS45bC0xMjItNDYuOSA1NC41LTg4LjEgNjcuNSAxMzV6TTQwNC42IDM0OGwtMTIyIDQ2LjkgNjcuNS0xMzUgNTQuNSA4OC4xek0zMTkuMyAyMzJMMjU2IDM1OC42IDE5Mi43IDIzMiAzMTkuMyAyMzJ6TTMwOCAxOTJsLTEwNC4xIDAgNTItODQgNTIgODR6Il19LEREPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tei1hIixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS1kZXNjIiwic29ydC1hbHBoYS1kb3duLWFsdCJdLCJmODgxIiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3pNMjg4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMzk3LjMgMTYwIDQ0OCAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOUwzNzAuOCA5NiAzMjAgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00MTIuNiAyNzMuN2w4MCAxNjBjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtNy4yLTE0LjMtODguNCAwLTcuMiAxNC4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDgwLTE2MGM1LjQtMTAuOCAxNi41LTE3LjcgMjguNi0xNy43czIzLjIgNi44IDI4LjYgMTcuN3pNMzg0IDM1OS42bC0yMC4yIDQwLjQgNDAuNCAwLTIwLjItNDAuNHoiXX0sUFR0PURELE5UdD1ERCxGVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJ1c2giLGljb246WzM4NCw1MTIsW10sImY1NWQiLCJNMTYyLjQgNmMtMS41LTMuNi01LTYtOC45LTZsLTE5IDBjLTMuOSAwLTcuNSAyLjQtOC45IDZMMTA0LjkgNTcuN2MtMy4yIDgtMTQuNiA4LTE3LjggMEw2Ni40IDZjLTEuNS0zLjYtNS02LTguOS02TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4bDAgMjA4IDM4NCAwIDAtMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDIzMC41IDBjLTMuOSAwLTcuNSAyLjQtOC45IDZMMjAwLjkgNTcuN2MtMy4yIDgtMTQuNiA4LTE3LjggMEwxNjIuNCA2ek0wIDMwNGwwIDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDAgMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtNjQgNjQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTM4NCAwek0xOTIgNDY0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6Il19LE9UdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24td2Fsa2luZy1kYXNoZWQtbGluZS1hcnJvdy1yaWdodCIsaWNvbjpbNjQwLDUxMixbXSwiZTU1MyIsIk0xNjAgODBhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6TTczLjQgMjI3LjlsMjIuNi0yMi42IDAgNjkuM2MwIDI4IDEyLjIgNTQuNyAzMy41IDcyLjlsNzEuNCA2MS4yYzUuOSA1LjEgOS44IDEyLjEgMTAuOSAxOS44bDEyLjYgODguMWMyLjUgMTcuNSAxOC43IDI5LjcgMzYuMiAyNy4yczI5LjctMTguNyAyNy4yLTM2LjJsLTEyLjYtODguMWMtMy4zLTIzLjEtMTQuOS00NC4xLTMyLjYtNTkuM2wtMzQuNS0yOS42IDAtMTE1LjIgMy44IDQuN2MxOC4yIDIyLjggNDUuOCAzNiA3NSAzNmwzMy4yIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMzLjIgMGMtOS43IDAtMTguOS00LjQtMjUtMTJsLTE3LjktMjIuNGMtMjMtMjguOC01Ny45LTQ1LjYtOTQuOC00NS42LTMyLjIgMC02My4xIDEyLjgtODUuOCAzNS42TDI4LjEgMTgyLjZDMTAuMSAyMDAuNiAwIDIyNSAwIDI1MC41TDAgMjg4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNy41YzAtOC41IDMuNC0xNi42IDkuNC0yMi42ek04NS44IDQwNy4zYy0xLjUgNS4yLTQuMyAxMC04LjEgMTMuOEw5LjQgNDg5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguMy02OC4zYzExLjUtMTEuNSAxOS45LTI1LjggMjQuNC00MS41bDIuMi03LjYtNDYtMzkuNGMtMi41LTIuMi01LTQuNC03LjQtNi44TDg1LjggNDA3LjN6TTQzMiA4YzAtMTMuMy0xMC43LTI0LTI0LTI0UzM4NC01LjMgMzg0IDhsMCAzMmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMzJ6bTAgMTI4YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyek00MDggMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMjQgMTUyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTMyek02MDkgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC03Mi03MmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMS0xMDIuMSAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDEwMi4xIDAtMzEgMzFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MnoiXX0sVjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLXNob3J0LXdpZGUiLGljb246WzU3Niw1MTIsWyJzb3J0LWFtb3VudC11cC1hbHQiXSwiZjg4NSIsIk0zMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMHptMCAxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwem0wIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDB6TTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnoiXX0sUlR0PVYwZSxVMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ3JpcC12ZXJ0aWNhbCIsaWNvbjpbMzIwLDUxMixbImdyaWQtdmVydGljYWwiXSwiZjU4ZSIsIk0xMjggNDBjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgMEMxNy45IDAgMCAxNy45IDAgNDBMMCA4OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6bTAgMTkyYzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MGwwIDQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwbDQ4IDBjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHpNMCA0MjRsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDhjMC0yMi4xLTE3LjktNDAtNDAtNDBsLTQ4IDBjLTIyLjEgMC00MCAxNy45LTQwIDQwek0zMjAgNDBjMC0yMi4xLTE3LjktNDAtNDAtNDBMMjMyIDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4ek0xOTIgMjMybDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBsNDggMGMyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQ4YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHpNMzIwIDQyNGMwLTIyLjEtMTcuOS00MC00MC00MGwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MGw0OCAwYzIyLjEgMCA0MC0xNy45IDQwLTQwbDAtNDh6Il19LEJUdD1VMGUsSFR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhci10dW5uZWwiLGljb246WzUxMiw1MTIsW10sImU0ZGUiLCJNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDQyLjggMGMtNi42LTUuOS0xMC44LTE0LjQtMTAuOC0yNGwwLTExMy4xYzAtMTMuNSAzLjEtMjYuOCA5LTM4LjlsMzkuNy04MC44YzkuNC0xOS4xIDI4LjktMzEuMyA1MC4yLTMxLjNMMzE3IDIyNGMyMS4zIDAgNDAuOCAxMi4xIDUwLjIgMzEuM0w0MDcgMzM2YzUuOSAxMi4xIDkgMjUuNCA5IDM4LjlMNDE2IDQ4OGMwIDkuNi00LjIgMTguMS0xMC44IDI0bDQyLjggMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE5MkM1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMHpNMzYyLjggNTEyYy02LjYtNS45LTEwLjgtMTQuNC0xMC44LTI0bDAtMjQtMTkyIDAgMCAyNGMwIDkuNi00LjIgMTguMS0xMC44IDI0bDIxMy43IDB6bS0xNzUtMjM1LjVsLTI5LjMgNTkuNSAxOTQuOSAwLTI5LjMtNTkuNWMtMS4zLTIuNy00LjEtNC41LTcuMi00LjVMMTk1IDI3MmMtMyAwLTUuOCAxLjctNy4yIDQuNXpNMTc2IDQyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTE4NC0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxxVHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hhcnQtY29sdW1uIixpY29uOls1MTIsNTEyLFtdLCJlMGUzIiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzM2YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw4MCA0ODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwTDAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6TTE0NCAyMjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNDQtNjRsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptODAgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyek01MTIgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0yMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnoiXX0salR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcHJpY29ybiIsaWNvbjpbNTc2LDUxMixbXSwiZTg0OCIsIk0yNDAgMzJjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRsMCA2NS4yYzE4LjgtMTAuOSA0MC43LTE3LjIgNjQtMTcuMiA3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFM1MTguNyA0ODAgNDQ4IDQ4MGMtMzUuOCAwLTY4LjItMTQuNy05MS40LTM4LjQtMjguOCA0Mi41LTc3LjQgNzAuNC0xMzIuNiA3MC40LTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJjNTMgMCA5Ni00MyA5Ni05NmwwLTE3NmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDIwOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTIyNGMwLTM1LjMtMjguNy02NC02NC02NC0xNy43IDAtMzItMTQuMy0zMi0zMlMxNC4zIDMyIDMyIDMyQzcyLjYgMzIgMTA4LjggNTEgMTMyLjIgODAuNSAxNTguNiA1MC43IDE5Ny4xIDMyIDI0MCAzMnpNNDQ4IDI4OGE2NCA2NCAwIDEgMCAwIDEyOCA2NCA2NCAwIDEgMCAwLTEyOHoiXX0sVlR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLWFycm93LXJpZ2h0IixpY29uOls1NzYsNTEyLFtdLCJlNThiIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMy4zIDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwxMDIuNiAwYzEwLjQgMzYuOSA0NC40IDY0IDg0LjcgNjRzNzQuMi0yNy4xIDg0LjctNjRsMy4zIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xNDYuN2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0w1MTIgMTQ2LjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdsLTUwLjcgMCAwLTMyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek01MTIgMjM3LjNsMCA1MC43LTk2IDAgMC05NiA1MC43IDAgNDUuMyA0NS4zek0xNTIgMzg0YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHptMjMyIDQwYTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTMwNSAyMjVsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45eiJdfSxFRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0diIsaWNvbjpbNTc2LDUxMixbNjM3MTcsInRlbGV2aXNpb24iLCJ0di1hbHQiXSwiZjI2YyIsIk02NCA5NmwwIDI0MCA0NDggMCAwLTI0MC00NDggMHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmw0NDggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI0MGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0MDBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTE2MCA0NDhsMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI1NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyeiJdfSxVVHQ9RUQsV1R0PUVELEdUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzZWN0aW9uIixpY29uOlsyNTYsNTEyLFtdLCJlNDQ3IiwiTTExMCAwQzQ5LjIgMCAwIDQ5LjIgMCAxMTAgMCAxMzMuNyA3LjYgMTU1LjggMjAuNSAxNzQgNy42IDE5MiAwIDIxNC4xIDAgMjM4IDAgMjkxLjcgMzguOSAzMzcuNiA5MS45IDM0Ni40bDYxLjcgMTAuM2MyMi4yIDMuNyAzOC40IDIyLjkgMzguNCA0NS4zIDAgMjUuNC0yMC42IDQ2LTQ2IDQ2bC05OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk4IDBjNjAuNyAwIDExMC00OS4yIDExMC0xMTAgMC0yMy43LTcuNi00NS45LTIwLjUtNjQgMTIuOS0xOCAyMC41LTQwLjEgMjAuNS02NCAwLTUzLjgtMzguOS05OS42LTkxLjktMTA4LjVsLTYxLjctMTAuM0M4MC4yIDE1MS42IDY0IDEzMi40IDY0IDExMCA2NCA4NC42IDg0LjYgNjQgMTEwIDY0bDk4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJTMjI1LjcgMCAyMDggMEwxMTAgMHptNzQuNyAyOTkuMWMtNi41LTIuNC0xMy40LTQuMy0yMC41LTUuNWwtNjEuNy0xMC4zYy0yMi4yLTMuNy0zOC40LTIyLjktMzguNC00NS4zIDAtOS4yIDIuNy0xNy44IDcuNC0yNSA2LjUgMi40IDEzLjQgNC4zIDIwLjUgNS41bDYxLjcgMTAuM2MyMi4yIDMuNyAzOC40IDIyLjkgMzguNCA0NS4zIDAgOS4yLTIuNyAxNy44LTcuNCAyNXoiXX0sWVR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlYWNlIixpY29uOls1MTIsNTEyLFs5Nzc0XSwiZjY3YyIsIk0yMjQgNDQ1LjNsMC0xMjEuOC05NC4zIDc3LjFjMjYuMSAyMi44IDU4LjUgMzguNyA5NC4zIDQ0Ljd6TTg5LjIgMzUxLjFMMjI0IDI0MC44IDIyNCA2Ni43Yy05MC44IDE1LjItMTYwIDk0LjItMTYwIDE4OS4zIDAgMzQuNiA5LjIgNjcuMSAyNS4yIDk1LjF6bTI5My4xIDQ5LjVsLTk0LjMtNzcuMSAwIDEyMS44YzM1LjctNiA2OC4xLTIxLjkgOTQuMy00NC43em00MC42LTQ5LjVjMTYtMjggMjUuMi02MC41IDI1LjItOTUuMSAwLTk1LjEtNjkuMi0xNzQuMS0xNjAtMTg5LjNsMCAxNzQuMiAxMzQuOCAxMTAuM3pNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHoiXX0sWlR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXIiLGljb246WzU3Niw1MTIsWzExMDg4LDYxNDQ2XSwiZjAwNSIsIk0zMDkuNS0xOC45Yy00LjEtOC0xMi40LTEzLjEtMjEuNC0xMy4xcy0xNy4zIDUuMS0yMS40IDEzLjFMMTkzLjEgMTI1LjMgMzMuMiAxNTAuN2MtOC45IDEuNC0xNi4zIDcuNy0xOS4xIDE2LjNzLS41IDE4IDUuOCAyNC40bDExNC40IDExNC41LTI1LjIgMTU5LjljLTEuNCA4LjkgMi4zIDE3LjkgOS42IDIzLjJzMTYuOSA2LjEgMjUgMkwyODguMSA0MTcuNiA0MzIuNCA0OTFjOCA0LjEgMTcuNyAzLjMgMjUtMnMxMS0xNC4yIDkuNi0yMy4yTDQ0MS43IDMwNS45IDU1Ni4xIDE5MS40YzYuNC02LjQgOC42LTE1LjggNS44LTI0LjRzLTEwLjEtMTQuOS0xOS4xLTE2LjNMMzgzIDEyNS4zIDMwOS41LTE4Ljl6Il19LFhUdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmbGFnIixpY29uOls0NDgsNTEyLFsxMjc5ODgsNjE3MjVdLCJmMDI0IiwiTTY0IDMyQzY0IDE0LjMgNDkuNyAwIDMyIDBTMCAxNC4zIDAgMzJMMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyMS42IDYyLjctMTguOGM0MS45LTEyLjYgODcuMS04LjcgMTI2LjIgMTAuOSA0Mi43IDIxLjQgOTIuNSAyNCAxMzcuMiA3LjJsMzcuMS0xMy45YzEyLjUtNC43IDIwLjgtMTYuNiAyMC44LTMwbDAtMjQ3LjdjMC0yMy0yNC4yLTM4LTQ0LjgtMjcuN2wtMTEuOCA1LjljLTQ0LjkgMjIuNS05Ny44IDIyLjUtMTQyLjggMC0zNi40LTE4LjItNzguMy0yMS44LTExNy4yLTEwLjFMNjQgNTQuNCA2NCAzMnoiXX0sJEQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJpYW5nbGUtZXhjbGFtYXRpb24iLGljb246WzUxMiw1MTIsWzk4ODgsImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIiwid2FybmluZyJdLCJmMDcxIiwiTTI1NiAwYzE0LjcgMCAyOC4yIDguMSAzNS4yIDIxbDIxNiA0MDBjNi43IDEyLjQgNi40IDI3LjQtLjggMzkuNVM0ODYuMSA0ODAgNDcyIDQ4MEw0MCA0ODBjLTE0LjEgMC0yNy4yLTcuNC0zNC40LTE5LjVzLTcuNS0yNy4xLS44LTM5LjVsMjE2LTQwMGM3LTEyLjkgMjAuNS0yMSAzNS4yLTIxem0wIDM1MmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTAtMTkyYy0xOC4yIDAtMzIuNyAxNS41LTMxLjQgMzMuN2w3LjQgMTA0Yy45IDEyLjUgMTEuNCAyMi4zIDIzLjkgMjIuMyAxMi42IDAgMjMtOS43IDIzLjktMjIuM2w3LjQtMTA0YzEuMy0xOC4yLTEzLjEtMzMuNy0zMS40LTMzLjd6Il19LFFUdD0kRCxKVHQ9JEQsS1R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1NmMiLCJNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNzYgMGMtMTAuNS0xNC42LTE5LTMwLjctMjUuMS00OGwtOTAuOSAwIDAtODhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMxIDAgMS45IDAgMi45IC4xIDI2LjMtNzQuNiA5Ny41LTEyOC4xIDE4MS4xLTEyOC4xIDI4LjYgMCA1NS42IDYuMiA4MCAxNy40bDAtMzMuNGMwLTM1LjMtMjguNy02NC02NC02NGwtNjQgMC0xMjcuOS0xMTUuMWMtMTguMy0xNi40LTQ2LTE2LjQtNjQuMiAwTDEyOCAxMjggNjQgMTI4em02NCAyNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMnpNMTEyIDI1NmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2ek0yODggMTI4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC0xMDBhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwem0wLTE0MGM4LjggMCAxNiA3LjIgMTYgMTZsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sVzBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyYWR1YXRpb24tY2FwIixpY29uOls1NzYsNTEyLFsxMjc4OTEsIm1vcnRhci1ib2FyZCJdLCJmMTlkIiwiTTQ4IDE5NS44bDIwOS4yIDg2LjFjOS44IDQgMjAuMiA2LjEgMzAuOCA2LjFzMjEtMi4xIDMwLjgtNi4xbDI0Mi40LTk5LjhjOS0zLjcgMTQuOC0xMi40IDE0LjgtMjIuMXMtNS44LTE4LjQtMTQuOC0yMi4xTDMxOC44IDM4LjFDMzA5IDM0LjEgMjk4LjYgMzIgMjg4IDMycy0yMSAyLjEtMzAuOCA2LjFMMTQuOCAxMzcuOUM1LjggMTQxLjYgMCAxNTAuMyAwIDE2MEwwIDQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjYwLjJ6bTQ4IDcxLjdMOTYgMzg0YzAgNTMgODYgOTYgMTkyIDk2czE5Mi00MyAxOTItOTZsMC0xMTYuNi0xNDIuOSA1OC45Yy0xNS42IDYuNC0zMi4yIDkuNy00OS4xIDkuN3MtMzMuNS0zLjMtNDkuMS05LjdMOTYgMjY3LjR6Il19LGVfdD1XMGUsdF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0b3JlIixpY29uOls1MTIsNTEyLFtdLCJmNTRlIiwiTTMwLjcgNzIuM0MzNy42IDQ4LjQgNTkuNSAzMiA4NC40IDMybDM0NCAwYzI0LjkgMCA0Ni44IDE2LjQgNTMuOCA0MC4zbDIzLjQgODAuMmMxMi44IDQzLjctMjAuMSA4Ny41LTY1LjYgODcuNS0yNi4zIDAtNDkuNC0xNC45LTYwLjgtMzcuMS0xMS42IDIxLjktMzQuNiAzNy4xLTYxLjQgMzcuMS0yNi42IDAtNDkuNy0xNS02MS4zLTM3LTExLjYgMjItMzQuNyAzNy02MS4zIDM3LTI2LjggMC00OS44LTE1LjEtNjEuNC0zNy4xLTExLjQgMjIuMS0zNC41IDM3LjEtNjAuOCAzNy4xLTQ1LjYgMC03OC40LTQzLjctNjUuNi04Ny41TDMwLjcgNzIuM3pNOTYuNCAzNTJsMzIwIDAgMC02Ni40YzcuNiAxLjYgMTUuNSAyLjQgMjMuNSAyLjQgMTQuMyAwIDI4LTIuNiA0MC41LTcuMmwwIDE1MS4yYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zNTIgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNTEuMmMxMi41IDQuNiAyNi4xIDcuMiA0MC41IDcuMiA4LjEgMCAxNS45LS44IDIzLjUtMi40bDAgNjYuNHoiXX0scl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVzZXItYXN0cm9uYXV0IixpY29uOls0NDgsNTEyLFtdLCJmNGZiIiwiTTIyNCAzMzZjNzQuNiAwIDEzOC40LTQ2LjQgMTY0LTExMmw0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNCAwQzM2Mi40IDMwLjQgMjk4LjYtMTYgMjI0LTE2Uzg1LjYgMzAuNCA2MCA5NmwtNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDQgMGMyNS42IDY1LjYgODkuNCAxMTIgMTY0IDExMnpNMjA4IDgwbDMyIDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTMyIDBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZ6TTE2IDQ4NC42QzE2IDQ5OS43IDI4LjMgNTEyIDQzLjQgNTEybDUyLjYgMCAwLTQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNDggNTIuNiAwYzE1LjEgMCAyNy40LTEyLjMgMjcuNC0yNy40IDAtNTkuOC0zMS45LTExMi4yLTc5LjYtMTQxLTM2LjQgMjUuNS04MC42IDQwLjQtMTI4LjQgNDAuNHMtOTItMTQuOS0xMjguNC00MC40QzQ3LjkgMzcyLjQgMTYgNDI0LjggMTYgNDg0LjZ6TTE4My4zIDE0MS41Yy0uOS0zLjMtMy45LTUuNS03LjMtNS41cy02LjQgMi4yLTcuMyA1LjVsLTYgMjEuMi0yMS4yIDZjLTMuMyAuOS01LjUgMy45LTUuNSA3LjNzMi4yIDYuNCA1LjUgNy4zbDIxLjIgNiA2IDIxLjJjLjkgMy4zIDMuOSA1LjUgNy4zIDUuNXM2LjQtMi4yIDcuMy01LjVsNi0yMS4yIDIxLjItNmMzLjMtLjkgNS41LTMuOSA1LjUtNy4zcy0yLjItNi40LTUuNS03LjNsLTIxLjItNi02LTIxLjJ6TTE1MiA0ODhsMCAyNCA0OCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6bTEyMC0yNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAyNCA0OCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LGlfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWlsZGluZy1mbGFnIixpY29uOls2NDAsNTEyLFtdLCJlNGQ1IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0TDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0bDI1NiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDB6TTE3NiAzNTJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDgwLTk2IDAgMC04MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNOTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJ6TTI0MCA5NmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2ek05NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTQ0LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ2NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjg4IDExMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJMNDk2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyeiJdfSxHMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibXVnLXNhdWNlciIsaWNvbjpbNTc2LDUxMixbImNvZmZlZSJdLCJmMGY0IiwiTTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM1MiAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4UzUxOC43IDI4OCA0NDggMjg4YzAgNTMtNDMgOTYtOTYgOTZsLTE5MiAwYy01MyAwLTk2LTQzLTk2LTk2TDY0IDY0em00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsMCAxMjhjMzUuMyAwIDY0LTI4LjcgNjQtNjR6TTY0IDQ0OGwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkw2NCA1MTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6Il19LGFfdD1HMGUsbl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlbW9uIixpY29uOls0NDgsNTEyLFsxMjc4MTldLCJmMDk0IiwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NC02LjYgMC0xMyAxLTE5IDIuOS0yMi41IDctNDguMSAxNC45LTcxIDktNzUuMi0xOS4xLTE1Ni40IDExLTIxMy43IDY4LjNTLTcuMiAyNTAuOCAxMS45IDMyNmM1LjggMjIuOS0yIDQ4LjQtOSA3MS0xLjkgNi0yLjkgMTIuNC0yLjkgMTkgMCAzNS4zIDI4LjcgNjQgNjQgNjQgNi42IDAgMTMtMSAxOS4xLTIuOSAyMi41LTcgNDguMS0xNC45IDcxLTkgNzUuMiAxOS4xIDE1Ni40LTExIDIxMy43LTY4LjNTNDU1LjIgMjYxLjIgNDM2LjEgMTg2Yy01LjgtMjIuOSAyLTQ4LjQgOS03MSAxLjktNiAyLjktMTIuNCAyLjktMTkuMXpNMjIyLjcgMTQzYy01MiAxNS4yLTk2LjUgNTkuNy0xMTEuNyAxMTEuNy0zLjcgMTIuNy0xNy4xIDIwLTI5LjggMTYuM1M2MS4yIDI1NCA2NSAyNDEuM2MxOS44LTY3LjcgNzYuNi0xMjQuNSAxNDQuMy0xNDQuMyAxMi43LTMuNyAyNi4xIDMuNiAyOS44IDE2LjNzLTMuNiAyNi4xLTE2LjMgMjkuOHoiXX0sb190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmF2YW4iLGljb246WzY0MCw1MTIsW10sImY4ZmYiLCJNMzIgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhsMCAxOTIgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjk2LjQgMGMuMiAyLjYgLjQgNS4zIC40IDggMCA0OC42LTM5LjQgODgtODggODhzLTg4LTM5LjQtODgtODhjMC0yLjcgLjEtNS40IC40LThMOTYgNDE2Yy0zNS4zIDAtNjQtMjguNy02NC02NEwzMiA5NnpNMzUyIDM1Mmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNDgtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyek0xNjAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMHptNjQgMzM2YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHoiXX0sc190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InEiLGljb246WzQ0OCw1MTIsWzExM10sIjUxIiwiTTY0IDI1NmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MCAyOC45IDAgNTYtNy43IDc5LjQtMjEuMWwtNzItODYuNGMtMTEuMy0xMy42LTkuNS0zMy44IDQuMS00NS4xczMzLjgtOS41IDQ1LjEgNC4xbDcwLjkgODUuMWMyMC40LTI2LjggMzIuNS02MC4zIDMyLjUtOTYuNiAwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MFM2NCAxNjcuNiA2NCAyNTZ6TTM0NC45IDQ0NC42QzMxMCA0NjcgMjY4LjUgNDgwIDIyNCA0ODAgMTAwLjMgNDgwIDAgMzc5LjcgMCAyNTZTMTAwLjMgMzIgMjI0IDMyIDQ0OCAxMzIuMyA0NDggMjU2YzAgNTYuMS0yMC42IDEwNy40LTU0LjcgMTQ2LjdsNDcuMyA1Ni44YzExLjMgMTMuNiA5LjUgMzMuOC00LjEgNDUuMXMtMzMuOCA5LjUtNDUuMS00LjFsLTQ2LjYtNTUuOXoiXX0sbF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2siLGljb246WzM4NCw1MTIsWzEyODI3NF0sImYwMjMiLCJNMTI4IDk2bDAgNjQgMTI4IDAgMC02NGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NHpNNjQgMTYwbDAtNjRDNjQgMjUuMyAxMjEuMy0zMiAxOTItMzJTMzIwIDI1LjMgMzIwIDk2bDAgNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NHoiXX0sY190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBhaW50LXJvbGxlciIsaWNvbjpbNTEyLDUxMixbXSwiZjVhYSIsIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEwzNTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwxNiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgOTZjMCA0NC4yLTM1LjggODAtODAgODBsLTE2MCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxOC43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2wwLTE4LjdjMC00NC4yIDM1LjgtODAgODAtODBsMTYwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtOTZjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDE5MmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHoiXX0sWTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZvbHVtZS1oaWdoIixpY29uOls2NDAsNTEyLFsxMjgyNjYsInZvbHVtZS11cCJdLCJmMDI4IiwiTTUzMy42IDMyLjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEM1NTcuNSAxMTMuOCA1OTIgMTgwLjggNTkyIDI1NnMtMzQuNSAxNDIuMi04OC43IDE4Ni4zYy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41QzU5OC41IDQyNi43IDY0MCAzNDYuMiA2NDAgMjU2UzU5OC41IDg1LjIgNTMzLjYgMzIuNXpNNDczLjEgMTA3Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDNDc1LjMgMTcwLjcgNDk2IDIxMC45IDQ5NiAyNTZzLTIwLjcgODUuMy01My4yIDExMS44Yy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41YzQzLjItMzUuMiA3MC45LTg4LjkgNzAuOS0xNDlzLTI3LjctMTEzLjgtNzAuOS0xNDl6bS02MC41IDc0LjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzOTMuMSAyMjcuNiA0MDAgMjQxIDQwMCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MzQuMSAzMTIuOSA0NDggMjg2LjEgNDQ4IDI1NnMtMTMuOS01Ni45LTM1LjQtNzQuNXpNODAgMzUybDQ4IDAgMTM0LjEgMTE5LjJjNi40IDUuNyAxNC42IDguOCAyMy4xIDguOCAxOS4yIDAgMzQuOC0xNS42IDM0LjgtMzQuOGwwLTM3OC40YzAtMTkuMi0xNS42LTM0LjgtMzQuOC0zNC44LTguNSAwLTE2LjcgMy4xLTIzLjEgOC44TDEyOCAxNjAgODAgMTYwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4eiJdfSxkX3Q9WTBlLHVfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItcGx1cyIsaWNvbjpbNTEyLDUxMixbXSwiZjY1ZSIsIk01MTIgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ0OGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjQwek0yNTYgMTYwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4LTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMCAwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00OCA0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwIDAtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6Il19LHBfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtZXJjdXJ5IixpY29uOlszODQsNTEyLFs5NzkxXSwiZjIyMyIsIk0xMTctNEMxMDYtMTcuOCA4NS44LTIwIDcyLjEtOXMtMTYgMzEuMi01IDQ1Qzc0LjkgNDUuNyA4My43IDU0LjUgOTMuNSA2Mi4xIDQ2LjcgOTMuNyAxNiAxNDcuMyAxNiAyMDggMTYgMjk0LjMgNzguMSAzNjYuMSAxNjAgMzgxLjFsMCAzNC45LTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMzQuOWM4MS45LTE1IDE0NC04Ni44IDE0NC0xNzMuMSAwLTYwLjctMzAuNy0xMTQuMy03Ny41LTE0NS45IDkuOC03LjcgMTguNy0xNi40IDI2LjQtMjYuMSAxMS4xLTEzLjggOC44LTMzLjktNS00NVMyNzgtMTcuOCAyNjctNGMtMTcuNiAyMi00NC43IDM2LTc1IDM2UzEzNC43IDE4IDExNy00em03NSAzMjRjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyUzEzMC4xIDk2IDE5MiA5NiAzMDQgMTQ2LjEgMzA0IDIwOGMwIDYxLjgtNTAuMSAxMTItMTExLjkgMTEybC0uMSAweiJdfSxoX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5jaG9yIixpY29uOls1NzYsNTEyLFs5ODc1XSwiZjEzZCIsIk0yODggNjRhMzIgMzIgMCAxIDAgMCA2NCAzMiAzMiAwIDEgMCAwLTY0ek0xOTIgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmMwIDQxLjgtMjYuNyA3Ny40LTY0IDkwLjVsMCAyNTcuOWM2Mi45LTE0LjMgMTEwLjItNjkuNyAxMTEuOS0xMzYuNWwtMTYuMSAxNC4xYy0xMCA4LjctMjUuMSA3LjctMzMuOS0yLjNzLTcuNy0yNS4xIDIuMy0zMy45bDY0LTU2YzktNy45IDIyLjYtNy45IDMxLjYgMGw2NCA1NmMxMCA4LjcgMTEgMjMuOSAyLjMgMzMuOXMtMjMuOSAxMS0zMy45IDIuM0w0OTYgMzA3LjlDNDkzLjkgNDIxIDQwMS42IDUxMiAyODggNTEyUzgyLjEgNDIxIDgwIDMwNy45TDYzLjggMzIyLjFjLTEwIDguNy0yNS4xIDcuNy0zMy45LTIuM3MtNy43LTI1LjEgMi4zLTMzLjlsNjQtNTZjOS03LjkgMjIuNi03LjkgMzEuNiAwbDY0IDU2YzEwIDguNyAxMSAyMy45IDIuMyAzMy45cy0yMy45IDExLTMzLjkgMi4zbC0xNi4xLTE0LjFjMS44IDY2LjggNDkuMSAxMjIuMiAxMTEuOSAxMzYuNWwwLTI1Ny45Yy0zNy4zLTEzLjItNjQtNDguNy02NC05MC41eiJdfSxaMGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBhcmtpbmciLGljb246WzQ0OCw1MTIsWzEyNzM1OSwicGFya2luZyJdLCJmNTQwIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTE5MiAyNTZsNDggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDggMCAwIDY0em00OCA2NGwtNDggMCAwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTg0YzAtMjIuMSAxNy45LTQwIDQwLTQwbDcyIDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZ6Il19LGZfdD1aMGUsbV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbnVraWFoIixpY29uOls2NDAsNTEyLFsxMjgzMzRdLCJmNmU2IiwiTTMxNC4yIDMuM2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3ptLTI4OCA0OEMyMS4xIDYwLjEgOCA4NC42IDggMTA0IDggMTE3LjMgMTguNyAxMjggMzIgMTI4czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNODggMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0MxMDEuMSA2MC4xIDg4IDg0LjYgODggMTA0em04Mi4yLTUyLjdjLTUuMSA4LjgtMTguMiAzMy4zLTE4LjIgNTIuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTIxNiAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzIyOS4xIDYwLjEgMjE2IDg0LjYgMjE2IDEwNHpNMzk0LjIgNTEuM2MtNS4xIDguOC0xOC4yIDMzLjMtMTguMiA1Mi43IDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjctMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNDQwIDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjNDNDUzLjEgNjAuMSA0NDAgODQuNiA0NDAgMTA0em04Mi4yLTUyLjdjLTUuMSA4LjgtMTguMiAzMy4zLTE4LjIgNTIuNyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43LTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTU4NCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuNy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzU5Ny4xIDYwLjEgNTg0IDg0LjYgNTg0IDEwNHpNMTEyIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptMTYwIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMiAzMiAwIDAtMTEyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTEyIDMyIDAgMC0xMTJjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxMTIgMzIgMCAwLTExMmMwLTguOC03LjItMTYtMTYtMTZ6TTM1MiAxNDRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxNzYtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJTMCAxNzQuMyAwIDE5MmwwIDk2YzAgNTMgNDMgOTYgOTYgOTZsMTkyIDAgMCA2NC0xMjggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTI4IDAgMC02NCAxOTIgMGM1MyAwIDk2LTQzIDk2LTk2bDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDAgMC0xNzZ6Il19LFJnPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvdGF0ZS1sZWZ0IixpY29uOls1MTIsNTEyLFsicm90YXRlLWJhY2siLCJyb3RhdGUtYmFja3dhcmQiLCJ1bmRvLWFsdCJdLCJmMmVhIiwiTTI0IDE5MmwxNDQgMGM5LjcgMCAxOC41LTUuOCAyMi4yLTE0LjhzMS43LTE5LjMtNS4yLTI2LjJsLTQ2LjctNDYuN2M3NS4zLTU4LjYgMTg0LjMtNTMuMyAyNTMuNSAxNS45IDc1IDc1IDc1IDE5Ni41IDAgMjcxLjVzLTE5Ni41IDc1LTI3MS41IDBjLTEwLjItMTAuMi0xOS0yMS4zLTI2LjQtMzMtOS41LTE0LjktMjkuMy0xOS4zLTQ0LjItOS44cy0xOS4zIDI5LjMtOS44IDQ0LjJDNDkuNyA0MDguNyA2MS40IDQyMy41IDc1IDQzNyAxNzUgNTM3IDMzNyA1MzcgNDM3IDQzN1M1MzcgMTc1IDQzNyA3NUMzNDIuOC0xOS4zIDE5My4zLTI0LjcgOTIuNyA1OC44TDQxIDdDMzQuMSAuMiAyMy44LTEuOSAxNC44IDEuOFMwIDE0LjMgMCAyNEwwIDE2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHoiXX0sZ190PVJnLGJfdD1SZyx2X3Q9UmcsWDBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWRpbmciLGljb246WzQ0OCw1MTIsWyJoZWFkZXIiXSwiZjFkYyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2IDAgMCAxMTIgMjI0IDAgMC0xMTItMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xNiAwIDAgMzIwIDE2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYgMCAwLTE0NC0yMjQgMCAwIDE0NCAxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDAgMC0zMjAtMTYgMEMxNC4zIDk2IDAgODEuNyAwIDY0eiJdfSx4X3Q9WDBlLHlfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFtdLCJmMDViIiwiTTI4OC0xNmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE4LjNjOTguMSAxNCAxNzUuNyA5MS42IDE4OS43IDE4OS43bDE4LjMgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTguMyAwYy0xNCA5OC4xLTkxLjYgMTc1LjctMTg5LjcgMTg5LjdsMCAxOC4zYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTguM0MxNTcuOSA0NjMuNyA4MC4zIDM4Ni4xIDY2LjMgMjg4TDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOC4zIDBDODAuMyAxMjUuOSAxNTcuOSA0OC4zIDI1NiAzNC4zTDI1NiAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTMxLjIgMjg4YzEyLjcgNjIuNyA2Mi4xIDExMi4xIDEyNC44IDEyNC44bDAtMTIuOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMTIuOGM2Mi43LTEyLjcgMTEyLjEtNjIuMSAxMjQuOC0xMjQuOEw0MzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDEyLjggMEM0MzIuMSAxNjEuMyAzODIuNyAxMTEuOSAzMjAgOTkuMmwwIDEyLjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMi44QzE5My4zIDExMS45IDE0My45IDE2MS4zIDEzMS4yIDIyNGwxMi44IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyLjggMHpNMjg4IDIwOGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6Il19LHdfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbm9kZXMiLGljb246WzUxMiw1MTIsW10sImU0ZTIiLCJNNDE4LjQgMTU3LjljMzUuMy04LjMgNjEuNi00MCA2MS42LTc3LjkgMC00NC4yLTM1LjgtODAtODAtODAtNDMuNCAwLTc4LjcgMzQuNS04MCA3Ny41TDEzNi4yIDE1MS4xQzEyMS43IDEzNi44IDEwMS45IDEyOCA4MCAxMjggMzUuOCAxMjggMCAxNjMuOCAwIDIwOHMzNS44IDgwIDgwIDgwYzEyLjIgMCAyMy44LTIuNyAzNC4xLTcuNkwyNTkuNyA0MDcuOGMtMi40IDcuNi0zLjcgMTUuOC0zLjcgMjQuMiAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMjcuNy0xNC01Mi4xLTM1LjQtNjYuNGwzNy44LTIwNy43ek0xNTYuMyAyMzIuMmMyLjItNi45IDMuNS0xNC4yIDMuNy0yMS43bDE4My44LTczLjVjMy42IDMuNSA3LjQgNi43IDExLjYgOS41TDMxNy42IDM1NC4xYy01LjUgMS4zLTEwLjggMy4xLTE1LjggNS41TDE1Ni4zIDIzMi4yeiJdfSxNX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToid2luZG93LXJlc3RvcmUiLGljb246WzU3Niw1MTIsW10sImYyZDIiLCJNNTEyIDk2TDE2MCA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyODggMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE5MmMwIDM1LjMtMjguNyA2NC02NCA2NGwtNDggMCAwLTY0IDQ4IDAgMC0xOTJ6TTAgMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0bDI4OCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAyMjR6bTY0IDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0bDI0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0TDg4IDI0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6Il19LGtfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyIixpY29uOlszMjAsNTEyLFsxMTRdLCI1MiIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggOTUuMyAwIDEwMi40IDE0Ni40YzEwLjEgMTQuNSAzMC4xIDE4IDQ0LjYgNy45czE4LTMwLjEgNy45LTQ0LjZMMjMwLjEgMzA5LjVDMjgyLjggMjg4LjEgMzIwIDIzNi40IDMyMCAxNzYgMzIwIDk2LjUgMjU1LjUgMzIgMTc2IDMyTDMyIDMyek0xNzYgMjU2bC0xMTIgMCAwLTE2MCAxMTIgMGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHoiXX0sU190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbHRlci1jaXJjbGUteG1hcmsiLGljb246WzU3Niw1MTIsW10sImUxN2IiLCJNMzIgNjRDMTkuMSA2NCA3LjQgNzEuOCAyLjQgODMuOFMuMiAxMDkuNSA5LjQgMTE4LjZMMTkyIDMwMS4zIDE5MiA0MTZjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsNjQgNjRjMi41IDIuNSA1LjMgNC41IDguMyA2LTIxLjItMzAuOS0zMy42LTY4LjMtMzMuNi0xMDguNiAwLTk5LjQgNzUuNS0xODEuMSAxNzIuMy0xOTFsOTAuNC05MC40YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDY0IDQ4MCA2NEwzMiA2NHpNNDMyIDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdsLTM2LjcgMzYuNyAzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMGwtMzYuNy0zNi43LTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNmwzNi43LTM2LjctMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBsMzYuNyAzNi43IDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6Il19LHpfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnb3B1cmFtIixpY29uOls1MTIsNTEyLFtdLCJmNjY0IiwiTTEyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgOCA0MCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOCA0OCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgOCA0MCAwIDAtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTM2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgODBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMjhjMCAyNi41LTIxLjUgNDgtNDggNDhsLTQ4IDAgMC0yMjQtMzIgMCAwLTEyOC00OCAwIDAgMTI4IDMyIDAgMCAyMjQtMjI0IDAgMC0yMjQgMzIgMCAwLTEyOC00OCAwIDAgMTI4LTMyIDAgMCAyMjQtNDggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsMC04MGMwLTI2LjUgMjEuNS00OCA0OC00OEw5NiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMjU2IDIwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6TTIwOCA0MDBsMCA2NCA5NiAwIDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6TTI1NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMiA2NCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LENfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFydC1jaXJjbGUtbWludXMiLGljb246WzU3Niw1MTIsW10sImU0ZmYiLCJNMjQxIDg3LjFsMTUgMjAuNyAxNS0yMC43QzI5NiA1Mi41IDMzNi4yIDMyIDM3OC45IDMyIDQ1Mi40IDMyIDUxMiA5MS42IDUxMiAxNjUuMWwwIDIuNmMwIDE3LjYtMy40IDM1LjYtOS41IDUzLjctMjEuOC04LjYtNDUuNi0xMy40LTcwLjUtMTMuNC0xMDYgMC0xOTIgODYtMTkyIDE5MiAwIDI4LjUgNi4yIDU1LjYgMTcuNCA4MC0uNSAwLS45IDAtMS40IDAtMTUuNSAwLTMwLjgtNC42LTQzLjEtMTQuMS03My01NS43LTIxMi45LTE4Ni0yMTIuOS0yOTguMmwwLTIuNkMwIDkxLjYgNTkuNiAzMiAxMzMuMSAzMiAxNzUuOCAzMiAyMTYgNTIuNSAyNDEgODcuMXpNMjg4IDQwMGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMjQgMGMwLTguOC03LjItMTYtMTYtMTZsLTEyOCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDEyOCAwYzguOCAwIDE2LTcuMiAxNi0xNnoiXX0sVF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItb2YtbGlmZSIsaWNvbjpbNTEyLDUxMixbXSwiZjYyMSIsIk0yMDguNSAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTQwLjkgMTIyLTcwLjRjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDE2IDI3LjdjOC44IDE1LjMgMy42IDM0LjktMTEuNyA0My43bC0xMjIgNzAuNCAxMjIgNzAuNGMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43bC0xNiAyNy43Yy04LjggMTUuMy0yOC40IDIwLjYtNDMuNyAxMS43bC0xMjItNzAuNCAwIDE0MC45YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE0MC45LTEyMiA3MC40Yy0xNS4zIDguOC0zNC45IDMuNi00My43LTExLjdsLTE2LTI3LjdjLTguOC0xNS4zLTMuNi0zNC45IDExLjctNDMuN2wxMjItNzAuNC0xMjItNzAuNGMtMTUuMy04LjgtMjAuNS0yOC40LTExLjctNDMuN2wxNi0yNy43YzguOC0xNS4zIDI4LjQtMjAuNSA0My43LTExLjdsMTIyIDcwLjQgMC0xNDAuOXoiXX0sUTBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1c2luZXNzLXRpbWUiLGljb246WzY0MCw1MTIsWyJicmllZmNhc2UtY2xvY2siXSwiZjY0YSIsIk0yNjQgNDhsMTEyIDBjNC40IDAgOCAzLjYgOCA4bDAgNDAtMTI4IDAgMC00MGMwLTQuNCAzLjYtOCA4LTh6bS01NiA4bDAgNDAtODAgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA5NiAzMDUgMGMzMy44LTI5LjkgNzguMy00OCAxMjctNDggMjguNiAwIDU1LjYgNi4yIDgwIDE3LjRsMC02NS40YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04MCAwIDAtNDBjMC0zMC45LTI1LjEtNTYtNTYtNTZMMjY0IDBjLTMwLjkgMC01NiAyNS4xLTU2IDU2em04MCAyOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtMTkyIDAgMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkzLjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMTYuNiAyLjEtMzIuNyA2LTQ4bC0yMiAwem0zNTIgNDhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNNDk2IDMyMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0OCAzMiAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC00OCAwYy04LjggMC0xNi03LjItMTYtMTZsMC02NGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LF9fdD1RMGUsTF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtZXh0aW5ndWlzaGVyIixpY29uOls1MTIsNTEyLFsxMjk1MTldLCJmMTM0IiwiTTUxMiAzMmMwLTkuNi00LjMtMTguNy0xMS43LTI0LjdTNDgzLjEtMS4zIDQ3My43IC42bC0xNjAgMzJDMzAxLjUgMzUuMSAyOTIgNDQuMyAyODkgNTZsLTY1IDAgMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMkwxNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyOC40Yy01NS4zIDEyLjMtMTAxLjMgNDkuNS0xMjUuNSA5OS4xLTUuOCAxMS45LS45IDI2LjMgMTEuMSAzMi4xczI2LjMgLjkgMzIuMS0xMS4xQzYyIDE0Ni45IDkxLjggMTIxLjEgMTI4IDExMGwwIDI4LjhjLTM3LjggMTgtNjQgNTYuNS02NCAxMDEuMmwwIDEyOCAyMjQgMCAwLTEyOGMwLTQ0LjctMjYuMi04My4yLTY0LTEwMS4ybDAtMzQuOCA2NSAwYzMgMTEuNyAxMi41IDIwLjkgMjQuNyAyMy40bDE2MCAzMmM5LjQgMS45IDE5LjEtLjYgMjYuNi02LjZTNTEyIDEzNy42IDUxMiAxMjhsMC05NnpNMjg4IDQ0OGwwLTMyLTIyNCAwIDAgMzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsOTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NHoiXX0sSjBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24tbG9uZyIsaWNvbjpbMzIwLDUxMixbImxvbmctYXJyb3ctZG93biJdLCJmMTc1IiwiTTEzNy40IDUzNC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDQzNC43IDE5MiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzEyOC0xNy43IDEyOCAwbDAgNDM0LjctNzMuNC03My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4eiJdfSxBX3Q9SjBlLERfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLW1pbnVzIixpY29uOls2NDAsNTEyLFtdLCJmNTAzIiwiTTI4NS43IDMwNGM5OC41IDAgMTc4LjMgNzkuOCAxNzguMyAxNzguMyAwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0w3Ny43IDUxMkM2MS4zIDUxMiA0OCA0OTguNyA0OCA0ODIuMyA0OCAzODMuOCAxMjcuOCAzMDQgMjI2LjMgMzA0bDU5LjQgMHpNMjU2IDI0OGExMjAgMTIwIDAgMSAxIDAtMjQwIDEyMCAxMjAgMCAxIDEgMCAyNDB6bTM0NC05NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTQ0IDB6Il19LEVfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1jaGVjayIsaWNvbjpbNTEyLDUxMixbXSwiZjUzYyIsIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDI1NmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4ek05NiAzMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptMjQtMTM2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNzIgMHoiXX0sSzBlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWxhcHRvcCIsaWNvbjpbNjQwLDUxMixbImxhcHRvcC1ob3VzZSJdLCJlMDY2IiwiTTQ0OCAyNDBsMTkuOSAwYzE1LjUgMCAyOC4xLTEyLjYgMjguMS0yOC4xIDAtNy42LTMuMS0xNC45LTguNi0yMC4yTDI4My41LTQuOUMyNzYuMS0xMiAyNjYuMy0xNiAyNTYtMTZzLTIwLjEgNC0yNy41IDExLjFMMjQuNiAxOTEuN0MxOS4xIDE5NyAxNiAyMDQuMyAxNiAyMTEuOSAxNiAyMjcuNCAyOC42IDI0MCA0NC4xIDI0MGwxOS45IDAgMCAxNDRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODUuNyAwYzcuNC02LjYgMTYuNC0xMS40IDI2LjMtMTRsMC0xMzBjMC01LjUgLjctMTAuOSAyLTE2bC0xMCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAyNCAxNDQgMHpNMzUyIDM1MmwxNjAgMCAwIDEyOC0xNjAgMCAwLTEyOHptLTY0LTMybDAgMTYwLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OGwyODggMGMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTguOC03LjItMTYtMTYtMTZsLTMyIDAgMC0xNjBjMC0xNy43LTE0LjMtMzItMzItMzJsLTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sJF90PUswZSxJX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZG93bmxvYWQiLGljb246WzQ0OCw1MTIsW10sImYwMTkiLCJNMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMjEwLjctNDEuNC00MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyNTYgMjQyLjcgMjU2IDMyek02NCAzMjBjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgMzJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMmMwLTM1LjMtMjguNy02NC02NC02NGwtNDYuOSAwLTU2LjYgNTYuNmMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwTDExMC45IDMyMCA2NCAzMjB6bTMwNCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LFBfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWdpdHRhcml1cyIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0ZCIsIk00MTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxNjBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04Mi44LTE0Ni44IDE0Ni44IDQxLjQgNDEuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuMnMtMzIuOCAxMi41LTQ1LjMgMEwxOTIgMzMzLjMgNTQuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4yIDBzLTEyLjUtMzIuOCAwLTQ1LjJMMTQ2LjggMjg4IDEwNS40IDI0Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuMnMzMi44LTEyLjUgNDUuMiAwTDE5MiAyNDIuOCAzMzguOCA5NiAyNTYgOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDB6Il19LE5fdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb3VjaCIsaWNvbjpbNjQwLDUxMixbXSwiZjRiOCIsIk0xNDQgMjcyQzE0NCAyMjQuNyAxMDkuOCAxODUuNCA2NC44IDE3Ny41IDcyIDExMy42IDEyNi4yIDY0IDE5MiA2NGwyNTYgMGM2NS44IDAgMTIwIDQ5LjYgMTI3LjIgMTEzLjUtNDUgOC03OS4yIDQ3LjItNzkuMiA5NC41bDAgMzItMzUyIDAgMC0zMnpNMCAzODRMMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDgwIDQ0OCAwIDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGwwIDExMmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0eiJdfSxGX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicm9hZC1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNTY3IiwiTTI1NiAzMmwtNzYuMyAwYy0yOS40IDAtNTUuMSAyMC4xLTYyLjEgNDguNkwzMy40IDQyMC41QzI1LjkgNDUwLjcgNDguOCA0ODAgODAgNDgwbDE3NS45IDAgMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMiA2LjEgMCAxMS44IDEuNyAxNi43IDQuNyAyLjgtMjMuOSAxNC4zLTQ1LjEgMzEuNC02MC4zbDAtMjQuNGMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOCA2LjIgMCAxMi40IC40IDE4LjQgMS4zTDQ1OC41IDgwLjZDNDUxLjQgNTIuMSA0MjUuOCAzMiAzOTYuMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHptNjQgMTkybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xNzYgODAuMWwwIDQ3LjktNjQgMCAwLTQ3LjljMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNMzUyIDQwMGwwIDk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtOTZjMC0yMC45LTEzLjQtMzguNy0zMi00NS4zbDAtNTAuNmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGwwIDUwLjZjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM3oiXX0sZTRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaXNzb3JzIixpY29uOls1MTIsNTEyLFs5OTg0LDk5ODYsOTk4OCwiY3V0Il0sImYwYzQiLCJNMTkyIDI1NmwtMzkuNSAzOS41Yy0xMi42LTQuOS0yNi4yLTcuNS00MC41LTcuNS02MS45IDAtMTEyIDUwLjEtMTEyIDExMnM1MC4xIDExMiAxMTIgMTEyIDExMi01MC4xIDExMi0xMTJjMC0xNC4zLTIuNy0yNy45LTcuNS00MC41TDQ5OS4yIDc2LjhjNy4xLTcuMSA3LjEtMTguNSAwLTI1LjYtMjguMy0yOC4zLTc0LjEtMjguMy0xMDIuNCAwTDI1NiAxOTIgMjE2LjUgMTUyLjVjNC45LTEyLjYgNy41LTI2LjIgNy41LTQwLjUgMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMCA1MC4xIDAgMTEyIDUwLjEgMjI0IDExMiAyMjRjMTQuMyAwIDI3LjktMi43IDQwLjUtNy41TDE5MiAyNTZ6bTk3LjkgOTcuOUwzOTYuOCA0NjAuOGMyOC4zIDI4LjMgNzQuMSAyOC4zIDEwMi40IDAgNy4xLTcuMSA3LjEtMTguNSAwLTI1LjZsLTE0NS4zLTE0NS4zLTY0IDY0ek02NCAxMTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDggMjQwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnoiXX0sT190PWU0ZSxkRT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidWciLGljb246WzU3Niw1MTIsW10sImYxODgiLCJNMTkyIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZsMCAzLjZjMCAxNS43LTEyLjcgMjguNC0yOC40IDI4LjRsLTEzNS4xIDBjLTE1LjcgMC0yOC40LTEyLjctMjguNC0yOC40bDAtMy42em0zNDUuNiAxMi44YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgMi42LS4xIDUuMy0uMiA3LjlsODMuNCA2Mi41YzE0LjEgMTAuNiAxNyAzMC43IDYuNCA0NC44cy0zMC43IDE3LTQ0LjggNi40bC02My4xLTQ3LjNjLTIzLjIgNDQuMi02Ni41IDc2LjItMTE3LjcgODMuOUwzMTIgMjgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjMwLjJjLTUxLjItNy43LTk0LjUtMzkuNy0xMTcuNy04My45TDgzLjIgNDczLjZjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsODMuNC02Mi41Yy0uMS0yLjYtLjItNS4yLS4yLTcuOWwwLTMyLTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTguOCAwYzIuNS0xMC40IDYuNS0yMC4yIDExLjgtMjkuMUw0NC44IDE1My42Yy0xNC4xLTEwLjYtMTctMzAuNy02LjQtNDQuOHMzMC43LTE3IDQ0LjgtNi40TDE5MiAxODRjMTIuMy01LjEgMjUuOC04IDQwLThsMTEyIDBjMTQuMiAwIDI3LjcgMi44IDQwIDhsMTA4LjgtODEuNmMxNC4xLTEwLjYgMzQuMi03LjcgNDQuOCA2LjR6Il19LHQ0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1mcm9tLWJyYWNrZXQiLGljb246WzUxMiw1MTIsWyJzaWduLW91dCJdLCJmMDhiIiwiTTE2MCA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkw5NiAzMkM0MyAzMiAwIDc1IDAgMTI4TDAgMzg0YzAgNTMgNDMgOTYgOTYgOTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNNTAyLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDIyNCAxOTIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6Il19LFJfdD10NGUsQl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtaG9sZGluZy1oYW5kIixpY29uOls1NzYsNTEyLFtdLCJlNGY3IiwiTTQ2Ni44IDE4Ni41bDQyLjUtNDIuNSAzNC43IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMkwyMjMuNiAxNmMtMjkgMC01Ny4zIDkuMy04MC43IDI2LjVMMTYuMyAxMzUuOGMtMTcuOCAxMy4xLTIxLjYgMzguMS04LjUgNTUuOXMzOC4xIDIxLjYgNTUuOSA4LjVMMTgzLjQgMTEyIDI5NiAxMTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTcyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTUyLjIgMGMzMy45IDAgNjYuNS0xMy41IDkwLjUtMzcuNXptLTM1Ny41IDEzOUw2Ni43IDM2OCAzMiAzNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNjRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwLjUgMGMyOSAwIDU3LjMtOS4zIDgwLjctMjYuNWwxMjYuNi05My4zYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MDAgMjgwIDQwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xNTIuMiAwYy0zMy45IDAtNjYuNSAxMy41LTkwLjUgMzcuNXoiXX0sSF90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0cm9vcHdhZmVsIixpY29uOls1MTIsNTEyLFtdLCJmNTUxIiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTMxMi42IDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI1NiA5Ny42IDIyMi4xIDYzLjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsMzMuOSAzMy45LTQ1LjMgNDUuMy01Ni42LTU2LjZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNTYuNiA1Ni42LTQ1LjMgNDUuMy0zMy45LTMzLjljLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMOTcuNiAyNTYgNjMuNyAyODkuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDMzLjktMzMuOSA0NS4zIDQ1LjMtNTYuNiA1Ni42Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNTYuNi01Ni42IDQ1LjMgNDUuMy0zMy45IDMzLjljLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzMy45LTMzLjkgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzMuOS0zMy45IDQ1LjMtNDUuMyA1Ni42IDU2LjZjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ni42LTU2LjYgNDUuMy00NS4zIDMzLjkgMzMuOWM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTMzLjktMzMuOSAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtMzMuOSAzMy45LTQ1LjMtNDUuMyA1Ni42LTU2LjZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZzLTE2LjQtNi4yLTIyLjYgMGwtNTYuNiA1Ni42LTQ1LjMtNDUuMyAzMy45LTMzLjljNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6TTE0Mi45IDI1Nmw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6bTY3LjkgNjcuOWw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6TTI3OC42IDI1Nmw0NS4zLTQ1LjMgNDUuMyA0NS4zLTQ1LjMgNDUuMy00NS4zLTQ1LjN6bTIyLjYtNjcuOWwtNDUuMyA0NS4zLTQ1LjMtNDUuMyA0NS4zLTQ1LjMgNDUuMyA0NS4zeiJdfSxxX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2hpbGQiLGljb246WzMyMCw1MTIsW10sImYxYWUiLCJNOTYgNjRBNjQgNjQgMCAxIDEgMjI0IDY0IDY0IDY0IDAgMSAxIDk2IDY0em00OCAzMjBsMCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkw4MCAyODcuOCA1OS4xIDMyMWMtOS40IDE1LTI5LjIgMTkuNC00NC4xIDEwUy00LjUgMzAxLjkgNC45IDI4N2wzOS45LTYzLjNDNjkuNyAxODQgMTEzLjIgMTYwIDE2MCAxNjBzOTAuMyAyNCAxMTUuMiA2My42TDMxNS4xIDI4N2M5LjQgMTUgNC45IDM0LjctMTAgNDQuMXMtMzQuNyA0LjktNDQuMS0xMEwyNDAgMjg3LjggMjQwIDQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTk2LTMyIDB6Il19LGpfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpY2UtY3JlYW0iLGljb246WzM4NCw1MTIsWzEyNzg0OF0sImY4MTAiLCJNMzM1LjEgMTYwYy42LTUuMyAuOS0xMC42IC45LTE2IDAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzQ4IDY0LjUgNDggMTQ0YzAgNS40IC4zIDEwLjcgLjkgMTZsLS45IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDhsMjg4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhsLS45IDB6TTY0IDMwNEwxNjkuMiA1MjkuNWM0LjEgOC44IDEzIDE0LjUgMjIuOCAxNC41czE4LjYtNS43IDIyLjgtMTQuNUwzMjAgMzA0IDY0IDMwNHoiXX0scjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvbXB1dGVyLW1vdXNlIixpY29uOlszODQsNTEyLFsxMjg0MzMsIm1vdXNlIl0sImY4Y2MiLCJNMCAxOTJsMTY4IDAgMC0xOTItOCAwQzcxLjYgMCAwIDcxLjYgMCAxNjBsMCAzMnptMCA0OEwwIDM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGw2NCAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwbDAtMTEyLTM4NCAwem0zODQtNDhsMC0zMkMzODQgNzEuNiAzMTIuNCAwIDIyNCAwbC04IDAgMCAxOTIgMTY4IDB6Il19LFZfdD1yNGUsVV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhdWNldCIsaWNvbjpbNTEyLDUxMixbXSwiZTAwNSIsIk0xOTIgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05NiAwIDAgNjQgMTguNyAwYzguNSAwIDE2LjYgMy40IDIyLjYgOS40bDIyLjYgMjIuNiAzMiAwYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwIDAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzYuMSAwYy0yMC4yIDI5LTUzLjkgNDgtOTEuOSA0OHMtNzEuNy0xOS05MS45LTQ4TDMyIDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwIDIyLjYtMjIuNmM2LTYgMTQuMS05LjQgMjIuNi05LjRsMTguNyAwIDAtNjQtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTNzguMyA2NCA5NiA2NGw5NiAweiJdfSxXX3Q9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXdhcmQiLGljb246WzQ0OCw1MTIsW10sImY1NTkiLCJNMjQ1LjktMjUuOWMtMTMuNC04LjItMzAuMy04LjItNDMuNyAwLTI0LjQgMTQuOS0zOS41IDE4LjktNjguMSAxOC4zLTE1LjctLjQtMzAuMyA4LjEtMzcuOSAyMS45LTEzLjcgMjUuMS0yNC44IDM2LjItNDkuOSA0OS45LTEzLjggNy41LTIyLjIgMjIuMi0yMS45IDM3LjkgLjcgMjguNi0zLjQgNDMuNy0xOC4zIDY4LjEtOC4yIDEzLjQtOC4yIDMwLjMgMCA0My43IDE0LjkgMjQuNCAxOC45IDM5LjUgMTguMyA2OC4xLS40IDE1LjcgOC4xIDMwLjMgMjEuOSAzNy45IDIyLjEgMTIuMSAzMy4zIDIyLjEgNDUuMSA0MS41TDQyLjcgNDU4LjVjLTUuOSAxMS45LTEuMSAyNi4zIDEwLjcgMzIuMmw4NiA0M2MxMS41IDUuNyAyNS41IDEuNCAzMS43LTkuOGw1Mi44LTk1LjEgNTIuOCA5NS4xYzYuMiAxMS4yIDIwLjIgMTUuNiAzMS43IDkuOGw4Ni00M2MxMS45LTUuOSAxNi43LTIwLjMgMTAuNy0zMi4ybC00OC42LTk3LjJjMTEuNy0xOS40IDIzLTI5LjQgNDUuMS00MS41IDEzLjgtNy41IDIyLjItMjIuMiAyMS45LTM3LjktLjctMjguNiAzLjQtNDMuNyAxOC4zLTY4LjEgOC4yLTEzLjQgOC4yLTMwLjMgMC00My43LTE0LjktMjQuNC0xOC45LTM5LjUtMTguMy02OC4xIC40LTE1LjctOC4xLTMwLjMtMjEuOS0zNy45LTI1LjEtMTMuNy0zNi4yLTI0LjgtNDkuOS00OS45LTcuNS0xMy44LTIyLjItMjIuMi0zNy45LTIxLjktMjguNiAuNy00My43LTMuNC02OC4xLTE4LjN6TTIyNCA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sR190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1kcm93bmluZyIsaWNvbjpbNjQwLDUxMixbXSwiZTU0NSIsIk0yNjQgODhhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMzMuOSA2NS42YzE2LjgtNS42IDM0LjkgMy41IDQwLjUgMjAuMmwxMC45IDMyLjhjOS40IDI4LjMgMzMuMiA0OS41IDYyLjUgNTUuNiA1LjYgMS4yIDExLjMgMS44IDE3LjEgMS44bDg4IDBjMTcuMiAwIDM0LjMtMi44IDUwLjYtOC4ybDExNC40LTM4LjFjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVMNDIzLjcgMjI4LjVjLTguNCAyLjgtMTcgNS4xLTI1LjcgNi45bC0yNi41IDg4LjNjLTYuMSAzLjQtMTIuMSA3LjMtMTcuOSAxMS43LTIyLjEgMTYuNi0yOS4xIDE2LjYtNTEuMiAwLTI2LjItMTkuNy01Ni45LTMwLjItODcuOC0zMS4zbDIwLjItNjcuMmMtNTEuNS0xMC43LTkzLjUtNDguMS0xMTAuMi05OGwtMTAuOS0zMi44Yy01LjYtMTYuOCAzLjUtMzQuOSAyMC4yLTQwLjV6TTQwMy40IDQxMi4xQzM3OS4xIDQzMC4zIDM1MS4xIDQ0OCAzMjAgNDQ4cy01OS4xLTE3LjctODMuNC0zNS45Yy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yMy44IDE3LjktNTQuMSAzNS41LTg4LjEgMzUuMy0yMC40LS4xLTQwLjctNi43LTU5LjgtMjEuMS0xMC42LTgtMTIuNy0yMy00LjctMzMuNnMyMy0xMi43IDMzLjYtNC43YzExLjMgOC41IDIxLjYgMTEuNCAzMS4yIDExLjUgMTcuNiAuMSAzNy4zLTkuNCA1OC45LTI1LjcgMzguNC0yOSA5MC41LTI5IDEyOSAwIDI0IDE4LjEgNDAuNyAyNi4zIDU0LjUgMjYuM3MzMC41LTguMiA1NC41LTI2LjNjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMHoiXX0sWV90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbWVyYS1yb3RhdGUiLGljb246WzUxMiw1MTIsW10sImUwZDgiLCJNMTM4LjcgOTZsMTAuNC0zMS4yQzE1NS42IDQ1LjIgMTczLjkgMzIgMTk0LjYgMzJsMTIyLjggMGMyMC43IDAgMzkgMTMuMiA0NS41IDMyLjhMMzczLjMgOTYgNDQ4IDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjU2YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRsNzQuNyAwek05NiAzMDUuOWMwIDMuOSAxLjQgNy43IDQgMTAuNmw0OCA1NGM2LjQgNy4yIDE3LjYgNy4yIDIzLjkgMGw0OC01NGMyLjYtMi45IDQtNi43IDQtMTAuNmwwLTEuOWMwLTguOC03LjItMTYtMTYtMTZsLTI0IDBjMC0zOS44IDMyLjItNzIgNzItNzIgNC40IDAgOC43IC40IDEyLjkgMS4ybDM0LjktMzkuM2MtMTQuNi02LjQtMzAuOC05LjktNDcuOC05LjktNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsLTI0IDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDEuOXptMTk2LTQ2LjVjLTIuNiAyLjktNCA2LjctNCAxMC42bDAgMS45YzAgOC44IDcuMiAxNiAxNiAxNmwyNCAwYzAgMzkuOC0zMi4yIDcyLTcyIDcyLTQuNCAwLTguNy0uNC0xMi45LTEuMmwtMzQuOSAzOS4zYzE0LjcgNi40IDMwLjggOS45IDQ3LjggOS45IDY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwbDI0IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMS45YzAtMy45LTEuNC03LjctNC0xMC42bC00OC01NGMtNi40LTcuMi0xNy42LTcuMi0yMy45IDBsLTQ4IDU0eiJdfSxpNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWhlYXJ0cyIsaWNvbjpbNTEyLDUxMixbMTI4NTI1LCJncmluLWhlYXJ0cyJdLCJmNTg0IiwiTTI1NiA1MTJjMTQxLjQgMCAyNTYtMTE0LjYgMjU2LTI1NiAwLTIzLjMtMy4xLTQ1LjktOC45LTY3LjMgNS41LTEzLjUgOC45LTI4LjQgOC45LTQ0LjcgMC01My00My05Ni05Ni05NmwtMi45IDBjLTIuNSAwLTUgLjEtNy40IC4zLTQyLjEtMzAuNC05My44LTQ4LjMtMTQ5LjctNDguM1MxNDguNCAxNy45IDEwNi4zIDQ4LjNjLTIuNS0uMi00LjktLjMtNy40LS4zTDk2IDQ4Yy01MyAwLTk2IDQzLTk2IDk2IDAgMTYuMyAzLjUgMzEuMiA4LjkgNDQuNy01LjggMjEuNC04LjkgNDQtOC45IDY3LjMgMCAxNDEuNCAxMTQuNiAyNTYgMjU2IDI1NnpNMzg2LjcgMzI0LjljMTEuOS0zLjcgMjMuOSA2LjMgMTkuNiAxOC4xLTIyLjQgNjEuMy04MS4zIDEwNS4xLTE1MC4zIDEwNS4xUzEyOC4xIDQwNC4yIDEwNS43IDM0Mi45Yy00LjMtMTEuOCA3LjctMjEuOCAxOS42LTE4LjEgMzkuMiAxMi4yIDgzLjcgMTkuMSAxMzAuNyAxOS4xczkxLjUtNi45IDEzMC43LTE5LjF6TTMyMi45IDk2YzEzLjUgMCAyNi41IDUuNCAzNiAxNC45bDkuMSA5LjEgOS4xLTkuMWM5LjUtOS41IDIyLjUtMTQuOSAzNi0xNC45bDIuOSAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgNTMuNC02Ni45IDk1LjctODkgMTA4LjItNC40IDIuNS05LjYgMi41LTE0IDAtMjIuMS0xMi41LTg5LTU0LjgtODktMTA4LjIgMC0yNi41IDIxLjUtNDggNDgtNDhsMi45IDB6bS0xODggMTQuOWw5LjEgOS4xIDkuMS05LjFjOS41LTkuNSAyMi41LTE0LjkgMzYtMTQuOWwyLjkgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDUzLjQtNjYuOSA5NS43LTg5IDEwOC4yLTQuNCAyLjUtOS42IDIuNS0xNCAwLTIyLjEtMTIuNS04OS01NC44LTg5LTEwOC4yIDAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDIuOSAwYzEzLjUgMCAyNi41IDUuNCAzNiAxNC45eiJdfSxaX3Q9aTRlLFhfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWZyYWdtZW50IixpY29uOlszODQsNTEyLFtdLCJlNjk3IiwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0bDAgMjQwIDEyOCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTI4IDExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjc3LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjU4LjcgMTguN0MyNDYuNyA2LjcgMjMwLjUgMCAyMTMuNSAwTDY0IDB6TTMyNS41IDE3NkwyMzIgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyMDggNTguNSAzMjUuNSAxNzZ6TTMyIDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTk2IDB6Il19LFFfdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tbWlsaXRhcnktcmlmbGUiLGljb246WzQ0OCw1MTIsW10sImU1NGIiLCJNMTI4IDM5YzAtMTMgMTAtMjMuOCAyMi45LTI0LjlMMzAyLjcgMS40QzMxMiAuNyAzMjAgOCAzMjAgMTcuNEwzMjAgNDhjMCA4LjgtNy4yIDE2LTE2IDE2TDE1MyA2NGMtMTMuOCAwLTI1LTExLjItMjUtMjV6bTE3LjYgNTdsMTU2LjggMGMxIDUuMiAxLjYgMTAuNSAxLjYgMTYgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC01LjUgLjYtMTAuOCAxLjYtMTZ6bTIyOCAzNjQuM0wzMjAgMzY5LjcgMzIwIDQ4MGMwIDEuMy0uMSAyLjUtLjIgMy44TDE0NS41IDIzNC45YzE2LjYtNy4xIDM0LjYtMTAuOSA1My4zLTEwLjlsNTAuNCAwYzE1LjkgMCAzMS4zIDIuOCA0NS44IDcuOUwzODkuOSA2Ny43Yy03LjctNC40LTEwLjMtMTQuMi01LjktMjEuOXMxNC4yLTEwLjMgMjEuOS01LjlsMjcuNyAxNmM3LjcgNC40IDEwLjMgMTQuMiA1LjkgMjEuOWwtNTUuNSA5Ni4xIDEuNiAuOWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43TDM2MC43IDI4MmMyIDIuOCAzLjkgNS44IDUuNyA4LjhsNzYuMSAxMjguOGMxMS4yIDE5IDQuOSA0My41LTE0LjEgNTQuOHMtNDMuNSA0LjktNTQuOC0xNC4xek0yODggNTEybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTAuMy01My42IDkwLjZjLTExLjIgMTktMzUuOCAyNS4zLTU0LjggMTQuMVMtNS43IDQzOC43IDUuNiA0MTkuN0w4MS43IDI5MC44YzkuNC0xNS44IDIxLjctMjkuMyAzNi00MEwyOTkuMSA1MTBjLTMuNSAxLjMtNy4yIDItMTEuMSAyek0yNjQgMzIwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHoiXX0sSl90PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvZ2dsZS1vbiIsaWNvbjpbNTc2LDUxMixbXSwiZjIwNSIsIk0xOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhsMTkyIDBjMTA2IDAgMTkyLTg2IDE5Mi0xOTJTNDkwIDY0IDM4NCA2NEwxOTIgNjR6bTE5MiA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnoiXX0sS190PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imx1bmdzLXZpcnVzIixpY29uOls1NzYsNTEyLFtdLCJlMDY3IiwiTTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE1MS4zYzkuNi00LjggMjAuNS03LjUgMzItNy41czIyLjQgMi43IDMyIDcuNUwzMjAgMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ1MC4xIDQ1MWM4IDE4LjMgOC4xIDM5LjIgLjIgNTcuNSAxMC4yIDIuMyAyMC42IDMuNSAzMS4yIDMuNSA1Mi4yIDAgOTQuNS00Mi4zIDk0LjUtOTQuNWwwLTYuMmMwLTExMS4xLTM2LjctMjE5LTEwNC40LTMwN0w0MjguOSA0OC43Yy04LjEtMTAuNi0yMC43LTE2LjctMzQtMTYuNy0yMy43IDAtNDIuOSAxOS4yLTQyLjkgNDIuOWwwIDEzOS45YzEuMiAyLjIgMi4yIDQuNiAzLjEgNi45IDI2LjQtMTEuNiA1OC4zLTYuNiA3OS45IDE1czI2LjYgNTMuNiAxNSA3OS45QzQ3NyAzMjcuMiA0OTYgMzUzLjMgNDk2IDM4My44cy0xOSA1Ni43LTQ1LjkgNjcuMXpNMjIwLjkgMjIxLjhjLjktMi40IDItNC43IDMuMS02LjlsMC0xMzguNWMwLTI0LjUtMTkuOS00NC40LTQ0LjQtNDQuNC0xMi41IDAtMjQuNCA1LjMtMzIuOCAxNC41bC0yNi40IDI5QzQyLjkgMTYwLjggMCAyNzEuOCAwIDM4N2wwIDMwLjVjMCA1Mi4yIDQyLjMgOTQuNSA5NC41IDk0LjUgMTAuNSAwIDIxLTEuMiAzMS4yLTMuNS03LjktMTguMy03LjgtMzkuMyAuMi01Ny41LTI2LjktMTAuNC00NS45LTM2LjYtNDUuOS02Ny4xczE5LTU2LjcgNDUuOS02Ny4xYy0xMS42LTI2LjQtNi42LTU4LjMgMTUtNzkuOXM1My42LTI2LjYgNzkuOS0xNXpNMTUyIDQwOGMyOC44IDAgNDMuMiAzNC44IDIyLjkgNTUuMi05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBjMjAuNC0yMC40IDU1LjItNS45IDU1LjIgMjIuOSAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMjguOCAzNC44LTQzLjIgNTUuMi0yMi45IDkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtMjAuNC0yMC40LTUuOS01NS4yIDIyLjktNTUuMiAxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtMjguOCAwLTQzLjItMzQuOC0yMi45LTU1LjIgOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGMtMjAuNCAyMC40LTU1LjIgNS45LTU1LjItMjIuOSAwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDI4LjgtMzQuOCA0My4yLTU1LjIgMjIuOS05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45YzIwLjQgMjAuNCA1LjkgNTUuMi0yMi45IDU1LjItMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHptMTA0LTgwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHoiXX0sSUQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFibGUtdGVubmlzLXBhZGRsZS1iYWxsIixpY29uOls1MTIsNTEyLFsxMjc5NTUsInBpbmctcG9uZy1wYWRkbGUtYmFsbCIsInRhYmxlLXRlbm5pcyJdLCJmNDVkIiwiTTk3IDEyN2w2Ny40LTY3LjRjMzguMi0zOC4yIDkwLTU5LjYgMTQ0LTU5LjYgMTEyLjUgMCAyMDMuNyA5MS4yIDIwMy43IDIwMy42IDAgNDYuNC0xNS44IDkxLjEtNDQuNSAxMjctMjMuNi0xNi44LTUyLjQtMjYuNy04My41LTI2LjctMzEuMSAwLTU5LjkgOS45LTgzLjQgMjYuNkw5NyAxMjd6TTI0MCA0NDhjMCA5LjcgMSAxOS4xIDIuOCAyOC4yLTE5LjgtNS4yLTM4LTE1LjUtNTIuNy0zMC4yLTEyLjItMTIuMi0zMS45LTEyLjItNDQuMSAwTDk2LjYgNDk1LjRjLTEwLjYgMTAuNi0yNSAxNi42LTQwIDE2LjYtMzEuMiAwLTU2LjYtMjUuMy01Ni42LTU2LjYgMC0xNSA2LTI5LjQgMTYuNi00MGw0OS40LTQ5LjRjMTIuMi0xMi4yIDEyLjItMzEuOSAwLTQ0LjEtMjEuNy0yMS43LTMzLjktNTEuMi0zMy45LTgxLjkgMC0yOS40IDExLjEtNTcuNiAzMS4xLTc5TDI2Ni42IDM2NC42QzI0OS45IDM4OC4xIDI0MCA0MTYuOSAyNDAgNDQ4em0xNDQtOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LGVMdD1JRCx0THQ9SUQsckx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJveGVzLXBhY2tpbmciLGljb246WzU3Niw1MTIsW10sImU0YzciLCJNMjA4IDBsODAgMCAwIDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0bDgwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC01NiA4MCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgNDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMDguOCAwYzguMi0xNC4xIDEyLjgtMzAuNSAxMi44LTQ4bDAtMTYwYzEwLTEzLjQgMTYtMzAgMTYtNDhsMC0zMmMwLTQ0LjItMzUuOC04MC04MC04MGwtMTc2IDAgMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMzIgMzM2bDMyMCAwIDAgMTI4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDgwIDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xMjh6TTQ4IDE5MmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDQ4IDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0saUx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaGFsa2JvYXJkIixpY29uOls2NDAsNTEyLFtdLCJlNTNkIiwiTTE5MiA4MGE1NiA1NiAwIDEgMCAwLTExMiA1NiA1NiAwIDEgMCAwIDExMnpNMTc2IDUxMmwwLTE2MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2bDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMzYgMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC00OCAxOTIgMCAwIDE5Mi0xOTIgMCAwLTMyLTY0IDAgMCA0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwyMjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTIyNGMwLTI2LjUtMjEuNS00OC00OC00OEwzNjggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NC0xMjIuNyAwYy00NS42IDAtODguNSAyMS42LTExNS42IDU4LjJMMTQuMyAyNjAuOWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDExMiAyMzYuNyAxMTIgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6Il19LGFMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWNlLXR3byIsaWNvbjpbNDQ4LDUxMixbOTg1N10sImY1MjgiLCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6TTM1MiAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDE5MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LGE0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yaWdodC1hcnJvdy1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjQ0LCJleGNoYW5nZSJdLCJmMGVjIiwiTTUwMi42IDE1MC42bC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMNDAyLjcgMTYwIDMyIDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5NmwzNzAuNyAwLTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3ptLTM5Ny4zIDM1MmwtOTYtOTZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDk2LTk2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMTA5LjMgMzUyIDQ4MCAzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM3MC43IDAgNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxuTHQ9YTRlLG40ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb290YmFsbCIsaWNvbjpbNTEyLDUxMixbMTI3OTQ0LCJmb290YmFsbC1iYWxsIl0sImY0NGUiLCJNMjYxLjEgMjIuNmMtODkgMTgtMTUwLjUgNjMuNC0xOTAgMTIzLjktMjMuMyAzNS42LTM4LjEgNzUuMy00Ni43IDExNS41TDI1MS45IDQ4OS40Yzg5LTE4IDE1MC41LTYzLjQgMTkwLjEtMTIzLjkgMjMuMy0zNS42IDM4LjEtNzUuMyA0Ni43LTExNS41TDI2MS4xIDIyLjZ6bTIzNiAxNjguMWMzLjItNDIuMyAuNy04My4zLTQuOC0xMTguNy00LjQtMjcuOC0yNi44LTQ4LTUzLjEtNTEuNi00My01LjktODIuMi03LjUtMTE3LjgtNS40TDQ5Ny4xIDE5MC42ek0xOTEuNyA0OTcuMUwxNS45IDMyMS40Yy0zLjIgNDIuMy0uNyA4My4zIDQuOCAxMTguNyA0LjQgMjcuOCAyNi44IDQ4IDUzLjEgNTEuNiA0MyA1LjkgODIuMiA3LjUgMTE3LjggNS40ek0yNzEuNSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45em0tNjQgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNjQgNjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45eiJdfSxvTHQ9bjRlLHNMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cnVjay1tb25zdGVyIixpY29uOls1NzYsNTEyLFtdLCJmNjNiIiwiTTMzNiA5Nmw0OCA2NC0xMjggMCAwLTY0IDgwIDB6bTEyOCA2NEwzODcuMiA1Ny42QzM3NS4xIDQxLjUgMzU2LjEgMzIgMzM2IDMyTDIyNCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5Ni0xNDQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA2NGMwIDE4LjEgMTAuMSAzMy45IDI0LjkgNDIuMS0uNSA1LjcgMS4xIDExLjYgNC43IDE2LjQtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4zIDMxLjNsMTEuMyAxMS4zYzguNiA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS43LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4zLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMi40LTMuMiAzLjktNi44IDQuNS0xMC41bDExNC4yIDBjLjYgMy43IDIuMSA3LjMgNC41IDEwLjUtMy43IDYuOS02LjggMTQuMS05IDIxLjgtMTEuNiAxLjctMjAuNiAxMS43LTIwLjYgMjMuOGwwIDE2YzAgMTIuMSA4LjkgMjIuMSAyMC42IDIzLjggMi4yIDcuNiA1LjMgMTQuOSA5IDIxLjgtNyA5LjQtNi4zIDIyLjggMi4yIDMxLjNsMTEuMyAxMS4zYzguNSA4LjYgMjEuOSA5LjMgMzEuMyAyLjIgNi44IDMuNyAxNC4xIDYuOCAyMS43IDkgMS43IDExLjYgMTEuNyAyMC42IDIzLjggMjAuNmwxNiAwYzEyLjEgMCAyMi4xLTguOSAyMy44LTIwLjYgNy42LTIuMiAxNC45LTUuMyAyMS44LTkgOS40IDcgMjIuOCA2LjMgMzEuMy0yLjJsMTEuMy0xMS4zYzguNi04LjYgOS4zLTIxLjkgMi4yLTMxLjMgMy43LTYuOCA2LjgtMTQuMSA5LTIxLjcgMTEuNi0xLjcgMjAuNi0xMS43IDIwLjYtMjMuOGwwLTE2YzAtMTIuMS04LjktMjIuMS0yMC42LTIzLjgtMi4yLTcuNi01LjMtMTQuOS05LTIxLjcgMy42LTQuOCA1LjItMTAuNyA0LjctMTYuNCAxNC44LTguMiAyNC45LTIzLjkgMjQuOS00Mi4xbDAtNjRjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDB6TTEyOCAzMzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNzIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sbEx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFzdGVyaXNrIixpY29uOls0NDgsNTEyLFsxMDAzMyw2MTU0NV0sIjJhIiwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTY4LjYgMTQ0LTgzLjFjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43czMuNiAzNC45LTExLjcgNDMuN0wyODggMjU2IDQzMiAzMzkuMWMxNS4zIDguOCAyMC42IDI4LjQgMTEuNyA0My43cy0yOC40IDIwLjYtNDMuNyAxMS43TDI1NiAzMTEuNCAyNTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTY4LjYtMTQ0IDgzLjFjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN1MuNyAzNDggMTYgMzM5LjFMMTYwIDI1NiAxNiAxNzIuOUMuNyAxNjQtNC41IDE0NC41IDQuMyAxMjkuMVMzMi43IDEwOC42IDQ4IDExNy40TDE5MiAyMDAuNiAxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LFBEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZnVsbCIsaWNvbjpbNjQwLDUxMixbMTI4MjY3LCJiYXR0ZXJ5IiwiYmF0dGVyeS01Il0sImYyNDAiLCJNNTI4IDEyOGM4LjggMCAxNiA3LjIgMTYgMTZsMCAyMjRjMCA4LjgtNy4yIDE2LTE2IDE2bC00MTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMjI0YzAtOC44IDcuMi0xNiAxNi0xNmw0MTYgMHpNMTEyIDY0Yy00NC4yIDAtODAgMzUuOC04MCA4MGwwIDIyNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGw0MTYgMGM0NC4yIDAgODAtMzUuOCA4MC04MGwwLTQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsMC00OGMwLTQ0LjItMzUuOC04MC04MC04MEwxMTIgNjR6bTU2IDExMmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMzA0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTMwNCAweiJdfSxjTHQ9UEQsZEx0PVBELHVMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGlsZC1kcmVzcyIsaWNvbjpbMzIwLDUxMixbXSwiZTU5YyIsIk0yMjQgNjRBNjQgNjQgMCAxIDAgOTYgNjQgNjQgNjQgMCAxIDAgMjI0IDY0ek04OCA0MDBsMCA4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtODAgMTYgMCAwIDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC04MCAxNy44IDBjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTMxLjEtOTMuNCAyOC43IDM3LjhjMTAuNyAxNC4xIDMwLjggMTYuOCA0NC44IDYuMnMxNi44LTMwLjcgNi4yLTQ0LjhMMjU0LjYgMjA3Yy0yMi40LTI5LjYtNTcuNS00Ny05NC42LTQ3cy03Mi4yIDE3LjQtOTQuNiA0N0w2LjUgMjg0LjdjLTEwLjcgMTQuMS03LjkgMzQuMiA2LjIgNDQuOHMzNC4yIDcuOSA0NC44LTYuMkw4Ni4yIDI4NS41IDU1IDM3OC45QzUxLjYgMzg5LjMgNTkuMyA0MDAgNzAuMiA0MDBMODggNDAweiJdfSxvNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1raXNzLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUzNywia2lzcy1iZWFtIl0sImY1OTciLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI0MCAyODhsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OCAwIDEyLjMtNC42IDIzLjUtMTIuMiAzMiA3LjYgOC41IDEyLjIgMTkuNyAxMi4yIDMyIDAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDE2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTE2IDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpNMTc2IDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHptMTMyIDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjh6Il19LHBMdD1vNGUsczRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYXNoLWNhbi1hcnJvdy11cCIsaWNvbjpbNDQ4LDUxMixbInRyYXNoLXJlc3RvcmUtYWx0Il0sImY4MmEiLCJNMTY3LjEtMTZsMTEzLjkgMGMxMy44IDAgMjYgOC44IDMwLjQgMjEuOUwzMjAgMzIgNDE2IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmw5NiAwIDguNy0yNi4xQzE0MS4xLTcuMiAxNTMuMy0xNiAxNjcuMS0xNnpNMzIgMTQ0bDM4NCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMDR6bTIwOSA3OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTcyIDcyYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzEtMzEgMCAxMDIuMWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMTAyLjEgMzEgMzFjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MnoiXX0saEx0PXM0ZSxmTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9udCIsaWNvbjpbNTEyLDUxMixbXSwiZjAzMSIsIk0yODUuMSA1MC43QzI3OS45IDM5LjMgMjY4LjUgMzIgMjU2IDMycy0yMy45IDcuMy0yOS4xIDE4LjdMNTkuNSA0MTYgNDggNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTYuMSAwIDIyLTQ4IDIwOC4zIDAgMjIgNDgtNi4xIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTEuNSAwLTE2Ny40LTM2NS4zek0zMzAuOCAzMDRMMTgxLjIgMzA0IDI1NiAxNDAuOCAzMzAuOCAzMDR6Il19LG1MdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3JlLWhvbGUiLGljb246WzUxMiw1MTIsW10sImU0YzMiLCJNMjU2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgMjMyLjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTIzLjctMTIuOS00NC40LTMyLTU1LjRMMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0wIDM4NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDM4NCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMjcyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDE0NGMwIDYxLjktNTAuMSAxMTItMTEyIDExMlMxNDQgMzgxLjkgMTQ0IDMyMGwwLTE0NGMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCAzODR6Il19LGdMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ2aXJ1cy1jb3ZpZCIsaWNvbjpbNTEyLDUxMixbXSwiZTRhOCIsIk0xOTIgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDMzLjZjMzAuNyA0LjIgNTguOCAxNi4zIDgyLjMgMzQuMUwzODYuMSA5MiAzNzQuOCA4MC42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNTYuNiA1Ni42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTExLjMtMTEuMy0yMy44IDIzLjhjMTcuOSAyMy41IDI5LjkgNTEuNyAzNC4xIDgyLjNsMzMuNiAwIDAtMTZjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDgwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTYtMzMuNiAwYy00LjIgMzAuNy0xNi4zIDU4LjgtMzQuMSA4Mi4zbDIzLjggMjMuOCAxMS4zLTExLjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01Ni42IDU2LjZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMTEuMy0xMS4zLTIzLjgtMjMuOGMtMjMuNSAxNy45LTUxLjcgMjkuOS04Mi4zIDM0LjFsMCAzMy42IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTgwIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTYgMCAwLTMzLjZjLTMwLjctNC4yLTU4LjgtMTYuMy04Mi4zLTM0LjFsLTIzLjggMjMuOCAxMS4zIDExLjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw0Ni43IDQwOC43Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTEuMyAxMS4zIDIzLjgtMjMuOEM5Ny45IDMzOC44IDg1LjggMzEwLjcgODEuNiAyODBsLTMzLjYgMCAwIDE2YzAgMTMuMy0xMC43IDI0LTI0IDI0UzAgMzA5LjMgMCAyOTZsMC04MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTYgMzMuNiAwYzQuMi0zMC43IDE2LjMtNTguOCAzNC4xLTgyLjNMOTIgMTI1LjkgODAuNiAxMzcuMmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1Ni42LTU2LjZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDEyNS45IDkyIDE0OS43IDExNS43YzIzLjUtMTcuOSA1MS43LTI5LjkgODIuMy0zNC4xbDAtMzMuNi0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMzIgMjAwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sYkx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtcGRmIixpY29uOls1NzYsNTEyLFtdLCJmMWMxIiwiTTk2IDBDNjAuNyAwIDMyIDI4LjcgMzIgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsODAgMCAwLTExMmMwLTM1LjMgMjguNy02NCA2NC02NGwxNzYgMCAwLTE2NS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI5MC43IDE4LjdDMjc4LjcgNi43IDI2Mi41IDAgMjQ1LjUgMEw5NiAwek0zNTcuNSAxNzZMMjY0IDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwIDU4LjUgMzU3LjUgMTc2ek0yNDAgMzgwYy0xMSAwLTIwIDktMjAgMjBsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC0yOCAxMiAwYzMzLjEgMCA2MC0yNi45IDYwLTYwcy0yNi45LTYwLTYwLTYwbC0zMiAwem0zMiA4MGwtMTIgMCAwLTQwIDEyIDBjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwem05Ni04MGMtMTEgMC0yMCA5LTIwIDIwbDAgMTI4YzAgMTEgOSAyMCAyMCAyMGwzMiAwYzI4LjcgMCA1Mi0yMy4zIDUyLTUybDAtNjRjMC0yOC43LTIzLjMtNTItNTItNTJsLTMyIDB6bTIwIDEyOGwwLTg4IDEyIDBjNi42IDAgMTIgNS40IDEyIDEybDAgNjRjMCA2LjYtNS40IDEyLTEyIDEybC0xMiAwem04OC0xMDhsMCAxMjhjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00NCAyOCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtMjggMCAwLTI0IDI4IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC00OCAwYy0xMSAwLTIwIDktMjAgMjB6Il19LHZMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5ndWFnZSIsaWNvbjpbNTc2LDUxMixbXSwiZjFhYiIsIk0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC05LjYgMC04LjQgMjMuMWMtMTYuNCA0NS4yLTQxLjEgODYuNS03Mi4yIDEyMiAxNC4yIDguOCAyOSAxNi42IDQ0LjQgMjMuNWw1MC40IDIyLjQgNjIuMi0xNDBjNS4xLTExLjYgMTYuNi0xOSAyOS4yLTE5czI0LjEgNy40IDI5LjIgMTlsMTI4IDI4OGM3LjIgMTYuMi0uMSAzNS4xLTE2LjIgNDIuMnMtMzUuMS0uMS00Mi4yLTE2LjJsLTIwLTQ1LTE1Ny41IDAtMjAgNDVjLTcuMiAxNi4yLTI2LjEgMjMuNC00Mi4yIDE2LjJzLTIzLjQtMjYuMS0xNi4yLTQyLjJsMzkuOC04OS41LTUwLjQtMjIuNGMtMjMtMTAuMi00NS0yMi40LTY1LjgtMzYuNC0yMS4zIDE3LjItNDQuNiAzMi4yLTY5LjUgNDQuN0w3OC4zIDM4MC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45bDM0LjUtMTcuM2MxNi4zLTguMiAzMS44LTE3LjcgNDYuNC0yOC4zLTEzLjgtMTIuNy0yNi44LTI2LjQtMzguOS00MC45TDgxLjYgMjI0LjdjLTExLjMtMTMuNi05LjUtMzMuOCA0LjEtNDUuMXMzMy44LTkuNSA0NS4xIDQuMWwxMC4yIDEyLjJjMTEuNSAxMy45IDI0LjEgMjYuOCAzNy40IDM4LjcgMjcuNS0zMC40IDQ5LjItNjYuMSA2My41LTEwNS40bC41LTEuMi0yMTAuMyAwQzE0LjMgMTI4IDAgMTEzLjcgMCA5NlMxNC4zIDY0IDMyIDY0bDk2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDE2IDI3MC44TDM2NS43IDM4NCA0NjYuMyAzODQgNDE2IDI3MC44eiJdfSxsNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2hpZWxkLWhhbHZlZCIsaWNvbjpbNTEyLDUxMixbInNoaWVsZC1hbHQiXSwiZjNlZCIsIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuOCA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMi0uNSA5OS4yLTQxLjMgMjgwLjctMjEzLjYgMzYzLjItMTYuNyA4LTM2LjEgOC01Mi44IDAtMTcyLjQtODIuNS0yMTMuMS0yNjQtMjEzLjYtMzYzLjItLjEtMjYuMiAxNi4zLTQ3LjkgMzguMy01Ny4yTDI0Mi43IDIuOUMyNDYuOSAxIDI1MS40IDAgMjU2IDB6bTAgNjYuOGwwIDM3OC4xYzEzOC02Ni44IDE3NS4xLTIxNC44IDE3Ni0zMDMuNGwtMTc2LTc0LjYgMCAweiJdfSx4THQ9bDRlLHlMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJldC11cCIsaWNvbjpbMzIwLDUxMixbXSwiZjBkOCIsIk0xNDAuMyAxMzUuMmMxMi42LTEwLjMgMzEuMS05LjUgNDIuOCAyLjJsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOVMzMDEuNCAzMjAgMjg4LjUgMzIwbC0yNTYgMGMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOFMuNyAyNzQuNSA5LjkgMjY1LjRsMTI4LTEyOCAyLjQtMi4yeiJdfSxjNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1wZW4iLGljb246WzY0MCw1MTIsWzEyODIyMSwiZmlsZS1lZGl0Il0sImYzMWMiLCJNMTI4LjEgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTQ2LjIgMCAxMC45LTU0LjVjNC4zLTIxLjcgMTUtNDEuNiAzMC42LTU3LjJsMTMyLjItMTMyLjIgMC05Ny41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDMyMi44IDE4LjdDMzEwLjggNi43IDI5NC41IDAgMjc3LjYgMEwxMjguMSAwek0zODkuNiAxNzZsLTkzLjUgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC05My41IDExNy41IDExNy41ek0zMzIuMyA0NjYuOWwtMTEuOSA1OS42Yy0uMiAuOS0uMyAxLjktLjMgMi45IDAgOCA2LjUgMTQuNiAxNC42IDE0LjYgMSAwIDEuOS0uMSAyLjktLjNsNTkuNi0xMS45YzEyLjQtMi41IDIzLjgtOC42IDMyLjctMTcuNWwxMTguOS0xMTguOS04MC04MC0xMTguOSAxMTguOWMtOC45IDguOS0xNSAyMC4zLTE3LjUgMzIuN3ptMjY3LjgtMTIzYzIyLjEtMjIuMSAyMi4xLTU3LjkgMC04MHMtNTcuOS0yMi4xLTgwIDBsLTI4LjggMjguOCA4MCA4MCAyOC44LTI4Ljh6Il19LHdMdD1jNGUsZDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1iaWtpbmciLGljb246WzU3Niw1MTIsWzEyODY5MiwiYmlraW5nIl0sImY4NGEiLCJNMzY4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjcuMiA2NGwtNjEuOC00OC44Yy0xNy4zLTEzLjYtNDEuNy0xMy44LTU5LjEtLjNsLTgzLjEgNjQuMmMtMzAuNyAyMy44LTI4LjUgNzAuOCA0LjMgOTEuNkwyNTYgMzA1LjEgMjU2IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4YzAtMTAuNy01LjMtMjAuNy0xNC4yLTI2LjZMMjYzIDIzMi45IDMyMy4zIDE4NC40IDM2NCAyMTdjNS43IDQuNSAxMi43IDcgMjAgN2w2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01Mi44IDB6TTExMiA1MTJhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0zNTIgMGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6Il19LE1MdD1kNGUsdTRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stb3Blbi1yZWFkZXIiLGljb246WzUxMiw1MTIsWyJib29rLXJlYWRlciJdLCJmNWRhIiwiTTI1NiAxNTJhODggODggMCAxIDAgMC0xNzYgODggODggMCAxIDAgMCAxNzZ6bTAgMjk4LjdsMC0xNDkuM2MxNi4zLTYuOCAzMi45LTEzLjcgNDkuNy0yMC43IDM5LTE2LjIgODAuOC0yNC42IDEyMy4xLTI0LjZsMTkuMiAwIDAgMTYwLTE5LjIgMGMtNTkuMSAwLTExNy43IDExLjctMTcyLjMgMzQuNWwtLjUgLjJ6TTI1NiAyMzJsLTI1LjEtMTAuNUMxODQuMSAyMDIgMTMzLjkgMTkyIDgzLjIgMTkyTDQ4IDE5MmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhMMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhsMzUuMiAwYzUwLjcgMCAxMDAuOSAxMCAxNDcuNyAyOS41bDEyLjggNS4zYzcuOSAzLjMgMTYuNyAzLjMgMjQuNiAwbDEyLjgtNS4zYzQ2LjgtMTkuNSA5Ny0yOS41IDE0Ny43LTI5LjVsMzUuMiAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTkyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC0zNS4yIDBjLTUwLjcgMC0xMDAuOSAxMC0xNDcuNyAyOS41TDI1NiAyMzJ6Il19LGtMdD11NGUsU0x0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdsYXNzLXdhdGVyLWRyb3BsZXQiLGljb246WzM4NCw1MTIsW10sImU0ZjUiLCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zbDE2Ni42IDBjNDIgMCA3Ni44LTMyLjQgNzkuOC03NC4zTDM4My45IDM0LjNjLjYtOC45LTIuNC0xNy42LTguNS0yNC4xUzM2MC45IDAgMzUyIDBMMzIgMHpNODMgMjk3LjVMNjYuNCA2NCAzMTcuNiA2NCAzMDEgMjk3LjUgMjg4IDMwNGMtMjAuMSAxMC4xLTQzLjkgMTAuMS02NCAwcy00My45LTEwLjEtNjQgMC00My45IDEwLjEtNjQgMGwtMTMtNi41ek0yNTYgMTk2YzAtMjQtMzMuNy03MC4xLTUyLjItOTMuNS02LjEtNy43LTE3LjUtNy43LTIzLjYgMC0xOC41IDIzLjQtNTIuMiA2OS41LTUyLjIgOTMuNSAwIDMzLjEgMjguNyA2MCA2NCA2MHM2NC0yNi45IDY0LTYweiJdfSxwNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItYnJvYWRjYXN0IixpY29uOls1NzYsNTEyLFsiYnJvYWRjYXN0LXRvd2VyIl0sImY1MTkiLCJNODcuOSAxMS41Yy0xMS4zLTYuOS0yNi4xLTMuMi0zMyA4LjEtMjQuOCA0MS0zOSA4OS4xLTM5IDE0MC40czE0LjIgOTkuNCAzOSAxNDAuNGM2LjkgMTEuMyAyMS42IDE1IDMzIDguMXMxNS0yMS42IDguMS0zM0M3NS43IDI0MS45IDY0IDIwMi4zIDY0IDE2MFM3NS43IDc4LjEgOTYuMSA0NC40YzYuOS0xMS4zIDMuMi0yNi4xLTguMS0zM3ptNDAwLjEgMGMtMTEuMyA2LjktMTUgMjEuNi04LjEgMzMgMjAuNCAzMy43IDMyLjEgNzMuMyAzMi4xIDExNS42cy0xMS43IDgxLjktMzIuMSAxMTUuNmMtNi45IDExLjMtMy4yIDI2LjEgOC4xIDMzczI2LjEgMy4yIDMzLTguMWMyNC44LTQxIDM5LTg5LjEgMzktMTQwLjRTNTQ1LjggNjAuNiA1MjEgMTkuNmMtNi45LTExLjMtMjEuNi0xNS0zMy04LjF6TTMyMCAyMTUuNGMxOS4xLTExLjEgMzItMzEuNyAzMi01NS40IDAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0YzAgMjMuNyAxMi45IDQ0LjQgMzIgNTUuNEwyNTYgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yNjQuNnpNMTgwLjIgOTFjNy4yLTExLjIgMy45LTI2LTcuMi0zMy4ycy0yNi0zLjktMzMuMiA3LjJjLTE3LjYgMjcuNC0yNy44IDYwLTI3LjggOTVzMTAuMiA2Ny42IDI3LjggOTVjNy4yIDExLjIgMjIgMTQuNCAzMy4yIDcuMnMxNC40LTIyIDcuMi0zMy4yYy0xMi44LTE5LjktMjAuMi00My42LTIwLjItNjlzNy40LTQ5LjEgMjAuMi02OXpNNDM2LjIgNjVjLTcuMi0xMS4yLTIyLTE0LjQtMzMuMi03LjJzLTE0LjQgMjItNy4yIDMzLjJjMTIuOCAxOS45IDIwLjIgNDMuNiAyMC4yIDY5cy03LjQgNDkuMS0yMC4yIDY5Yy03LjIgMTEuMi0zLjkgMjYgNy4yIDMzLjJzMjYgMy45IDMzLjItNy4yYzE3LjYtMjcuNCAyNy44LTYwIDI3LjgtOTVzLTEwLjItNjcuNi0yNy44LTk1eiJdfSx6THQ9cDRlLGg0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtaW5pbWl6ZSIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFycm93cy1hbHQiXSwiZjc4YyIsIk00NTYgMjI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRsMC0xNDRjMC05LjcgNS44LTE4LjUgMTQuOC0yMi4yUzMyMi4xIDMyLjIgMzI5IDM5bDQwIDQwIDczLjQtNzMuNEM0NDYgMiA0NTAuOSAwIDQ1NiAwczEwIDIgMTMuNyA1LjdsMzYuNyAzNi43QzUxMCA0NiA1MTIgNTAuOSA1MTIgNTZzLTIgMTAtNS43IDEzLjdMNDMzIDE0MyA0NzMgMTgzYzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDY1LjcgMjI0IDQ1NiAyMjR6bTAgNjRjOS43IDAgMTguNSA1LjggMjIuMiAxNC44czEuNyAxOS4zLTUuMiAyNi4ybC00MCA0MCA3My40IDczLjRjMy42IDMuNiA1LjcgOC41IDUuNyAxMy43cy0yIDEwLTUuNyAxMy43bC0zNi43IDM2LjdDNDY2IDUxMCA0NjEuMSA1MTIgNDU2IDUxMnMtMTAtMi0xMy43LTUuN0wzNjkgNDMzIDMyOSA0NzNjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJTMjg4IDQ2NS43IDI4OCA0NTZsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTQ0IDB6bS0yNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDE0NGMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC00MC00MC03My40IDczLjRDNjYgNTEwIDYxLjEgNTEyIDU2IDUxMnMtMTAtMi0xMy43LTUuN0w1LjcgNDY5LjdDMiA0NjYgMCA0NjEuMSAwIDQ1NnMyLTEwIDUuNy0xMy43TDc5IDM2OSAzOSAzMjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNDYuMyAyODggNTYgMjg4bDE0NCAwek01NiAyMjRjLTkuNyAwLTE4LjUtNS44LTIyLjItMTQuOFMzMi4yIDE4OS45IDM5IDE4M0w3OSAxNDMgNS43IDY5LjdDMiA2NiAwIDYxLjEgMCA1NlMyIDQ2IDUuNyA0Mi4zTDQyLjMgNS43QzQ2IDIgNTAuOSAwIDU2IDBTNjYgMiA2OS43IDUuN0wxNDMgNzkgMTgzIDM5YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJTMjI0IDQ2LjMgMjI0IDU2bDAgMTQ0YzAgMTMuMy0xMC43IDI0LTI0IDI0TDU2IDIyNHoiXX0sQ0x0PWg0ZSxUTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctcmlnaHQtdG8tY2l0eSIsaWNvbjpbNjQwLDUxMixbXSwiZTRiMyIsIk0yODggNDhjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDgwIDQ4IDAgMC03MmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgNzIgMTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjU2IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNDE2em02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek0zNTIgMzA0bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE3Ni04MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwek01MTIgMzM2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzJjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE1MyAxNjdsNzIgNzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMxLTMxLTEwMi4xIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTAyLjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAweiJdfSxfTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibGFwdG9wLW1lZGljYWwiLGljb246WzY0MCw1MTIsW10sImY4MTIiLCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDAtNjQgMCAwLTI0MC0zODQgMCAwIDI0MC02NCAwIDAtMjQwek0wIDQwMy4yQzAgMzkyLjYgOC42IDM4NCAxOS4yIDM4NGw2MDEuNiAwYzEwLjYgMCAxOS4yIDguNiAxOS4yIDE5LjIgMCA0Mi40LTM0LjQgNzYuOC03Ni44IDc2LjhMNzYuOCA0ODBDMzQuNCA0ODAgMCA0NDUuNiAwIDQwMy4yek0yODggMTYwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSxMTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJlYWQtc2xpY2UiLGljb246WzUxMiw1MTIsW10sImY3ZWMiLCJNNjQgNDMybDAtMTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NCAwLTIxNi41IDUxMi0yMTYuNSA1MTIgMCAwIDM1LjMtMjguNyA2NC02NCA2NGwwIDE3NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMjg4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4eiJdfSxBTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2xvYmUiLGljb246WzUxMiw1MTIsWzEyNzc2MF0sImYwYWMiLCJNMzUxLjkgMjgwbC0xOTAuOSAwYzIuOSA2NC41IDE3LjIgMTIzLjkgMzcuNSAxNjcuNCAxMS40IDI0LjUgMjMuNyA0MS44IDM1LjEgNTIuNCAxMS4yIDEwLjUgMTguOSAxMi4yIDIyLjkgMTIuMnMxMS43LTEuNyAyMi45LTEyLjJjMTEuNC0xMC42IDIzLjctMjggMzUuMS01Mi40IDIwLjMtNDMuNSAzNC42LTEwMi45IDM3LjUtMTY3LjR6TTE2MC45IDIzMmwxOTAuOSAwQzM0OSAxNjcuNSAzMzQuNyAxMDguMSAzMTQuNCA2NC42IDMwMyA0MC4yIDI5MC43IDIyLjggMjc5LjMgMTIuMiAyNjguMSAxLjcgMjYwLjQgMCAyNTYuNCAwcy0xMS43IDEuNy0yMi45IDEyLjJjLTExLjQgMTAuNi0yMy43IDI4LTM1LjEgNTIuNC0yMC4zIDQzLjUtMzQuNiAxMDIuOS0zNy41IDE2Ny40em0tNDggMEMxMTYuNCAxNDYuNCAxMzguNSA2Ni45IDE3MC44IDE0LjcgNzguNyA0Ny4zIDEwLjkgMTMxLjIgMS41IDIzMmwxMTEuNCAwek0xLjUgMjgwYzkuNCAxMDAuOCA3Ny4yIDE4NC43IDE2OS4zIDIxNy4zLTMyLjMtNTIuMi01NC40LTEzMS43LTU3LjktMjE3LjNMMS41IDI4MHptMzk4LjQgMGMtMy41IDg1LjYtMjUuNiAxNjUuMS01Ny45IDIxNy4zIDkyLjEtMzIuNyAxNTkuOS0xMTYuNSAxNjkuMy0yMTcuM2wtMTExLjQgMHptMTExLjQtNDhDNTAxLjkgMTMxLjIgNDM0LjEgNDcuMyAzNDIgMTQuNyAzNzQuMyA2Ni45IDM5Ni40IDE0Ni40IDM5OS45IDIzMmwxMTEuNCAweiJdfSxETHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZm9sZGVyLW1pbnVzIixpY29uOls1MTIsNTEyLFtdLCJmNjVkIiwiTTQ0OCA0NDhMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDEzOC43IDBjMTMuOCAwIDI3LjMgNC41IDM4LjQgMTIuOGwzOC40IDI4LjhjNS41IDQuMiAxMi4zIDYuNCAxOS4yIDYuNEw0NDggODBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTE4NCAyNDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxFTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFzay1mYWNlIixpY29uOls2NDAsNTEyLFtdLCJlMWQ3IiwiTTMyMCA2NGMtMjcuMiAwLTUzLjggOC03Ni40IDIzLjFsLTM3LjEgMjQuOGMtMTUuOCAxMC41LTM0LjMgMTYuMS01My4zIDE2LjFMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDc4LjdjMCA2Mi42IDQ1LjIgMTE2IDEwNyAxMjYuM2w5Ny45IDE2LjNjMzMgMjIgNzIuNiAzNC43IDExNS4xIDM0LjdzODIuMi0xMi44IDExNS4xLTM0LjdMNTMzIDM5Ni45YzYxLjctMTAuMyAxMDctNjMuNyAxMDctMTI2LjNsMC03OC43YzAtMzUuMy0yOC43LTY0LTY0LTY0bC04OS4yIDBjLTE5IDAtMzcuNS01LjYtNTMuMy0xNi4xTDM5Ni40IDg3LjFDMzczLjggNzIgMzQ3LjIgNjQgMzIwIDY0ek0xMzUuOSAzMzYuOWwtMTguNC0zLjFDODYuNiAzMjguNyA2NCAzMDIgNjQgMjcwLjdsMC03OC43IDQ4IDAgMCA0OGMwIDM1IDguNiA2Ny45IDIzLjkgOTYuOXptMzg2LjYtMy4xbC0xOC40IDMuMUM1MTkuNCAzMDcuOSA1MjggMjc1IDUyOCAyNDBsMC00OCA0OCAwIDAgNzguN2MwIDMxLjMtMjIuNiA1OC01My41IDYzLjF6TTE5MiAyMzJjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNTYgNTZsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE0NCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0eiJdfSwkTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9uZyIsaWNvbjpbNTEyLDUxMixbXSwiZjU1YyIsIk00NDguNSAzODRjMCA0MS41LTEzLjEgNzkuOS0zNS41IDExMS4zLTcuOSAxMS4xLTIxLjIgMTYuNy0zNC44IDE2LjdsLTI0My4zIDBjLTEzLjcgMC0yNi45LTUuNi0zNC44LTE2LjctMjIuNC0zMS40LTM1LjUtNjkuOC0zNS41LTExMS4zIDAtNzEuMSAzOC42LTEzMy4xIDk2LTE2Ni4zbDAtMTUzLjdjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCAxNTMuN2MxNC4yIDguMiAyNy4yIDE4LjIgMzguOCAyOS42bDM5LjMtMzkuMy03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNiAxNiAzMiAzMiA0OCA0OCA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03LTctNDMuMyA0My4zYzE3LjMgMjguOSAyNy4zIDYyLjYgMjcuMyA5OC44ek0yODguNSA2NGwtNjQgMCAwIDE5MC42LTMyIDE4LjVjLTE5LjUgMTEuMy0zNS43IDI3LjUtNDYuOSA0Ni45bDIyMS44IDBjLTExLjItMTkuNC0yNy40LTM1LjYtNDYuOS00Ni45bC0zMi0xOC41IDAtMTkwLjZ6Il19LElMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWJyaWRnZSIsaWNvbjpbNTc2LDUxMixbXSwiZTU2MyIsIk0zMiAzMmwyMDggMCAwIDY0LTI0IDAgMCA2NCAyNCAwIDAgMTI5LjNjLTQ1LjQgNy42LTgwIDQ3LjEtODAgOTQuN2wwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTk0YzAtMzguOC0yNi40LTcyLjYtNjQtODJsMC0xMTIgNDAgMCAwLTY0LTggMEMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJ6TTg4IDk2bDAgNjQgODAgMCAwLTY0LTgwIDB6TTMzNiAzMmw3MiAwIDAgNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTcyIDcyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhsLTcyIDAgMC03MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDcyLTcyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMzUyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em05NiAxNjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTgwYzAtMTMuMy0xMC43LTI0LTI0LTI0eiJdfSxmNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtOS0xIixpY29uOls1MTIsNTEyLFsic29ydC1udW1lcmljLXVwLWFsdCJdLCJmODg3IiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNMzY1LjEgMjA2LjZjLTkuNiAxNC44LTUuNCAzNC42IDkuNCA0NC4zczM0LjYgNS40IDQ0LjMtOS40bDQyLjEtNjQuOWMxMi40LTE5LjIgMTkuMS00MS42IDE5LjEtNjQuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjEgMjMuOSA2Ni43IDU2LjggNzYuNmwtMTEuNyAxOHpNMzc2IDExMmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem00Mi43IDE4MmMtOC4zLTYtMTkuMS03LjctMjguOC00LjRsLTQ4IDE2Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41czIzLjcgMjUuOCA0MC41IDIwLjJsNS45LTIgMCA1MS42LTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTYgMCAwLTk2YzAtMTAuMy00LjktMTkuOS0xMy4zLTI2eiJdfSxQTHQ9ZjRlLE5MdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb3VudGFpbi1jaXR5IixpY29uOls2NDAsNTEyLFtdLCJlNTJlIiwiTTI1Ni4zIDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA0OCA0OCAwIDAtNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDcyIDE2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAzMjBjMCAyNi41LTIxLjUgNDgtNDggNDhsLTc3LjggMGM0LTE1LjQgMi40LTMyLjYtNi43LTQ4LjJMMzU0LjYgMjU2IDM2OC4zIDI1NmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTYuMSAwLTExLjQgMy40LTE0LjEgOC41bC00Mi42LTczYy02LTEwLjItMTQuMS0xOC0yMy4zLTIzLjNsMC01Ni4yem02NCA2NGwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNjAgOTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMHptLTI3Mi02NC43bC02NS4xIDExMS42IDMzLjEgMzMuMSA0OC00OCA0MC40IDAtNTYuNC05Ni43em0tMjcuNi00Ny45YzEyLjMtMjEuMiA0Mi45LTIxLjIgNTUuMyAwTDQyMC4zIDQ2My45YzEyLjQgMjEuMy0yLjkgNDguMS0yNy42IDQ4LjFMNTYgNTEyYy0yNC43IDAtNDAuMS0yNi44LTI3LjYtNDguMUwxOTYuNyAxNzUuNHoiXX0sTkQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi05LTEiLGljb246WzUxMiw1MTIsWyJzb3J0LW51bWVyaWMtZGVzYyIsInNvcnQtbnVtZXJpYy1kb3duLWFsdCJdLCJmODg2IiwiTTIzMC42IDM5MC42bC04MCA4MGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTgwLTgwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDk2IDM3MC43IDk2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMDYuNyAyNS40LTI1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM3ptMTM0LjUtMTg0bDExLjctMThjLTMyLjktOS45LTU2LjgtNDAuNS01Ni44LTc2LjYgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDIyLjktNi42IDQ1LjMtMTkuMSA2NC41bC00Mi4xIDY0LjljLTkuNiAxNC44LTI5LjQgMTkuMS00NC4zIDkuNHMtMTkuMS0yOS40LTkuNC00NC4zek00MjQgMTEyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bS01LjMgMTgyYzguMyA2IDEzLjMgMTUuNyAxMy4zIDI2bDAgOTYgMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtNTEuNi01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40eiJdfSxGTHQ9TkQsT0x0PU5ELG00ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWdyaW4td2lkZSIsaWNvbjpbNTEyLDUxMixbMTI4NTE1LCJncmluLWFsdCJdLCJmNTgxIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0zODYuNyAzMDguOWMxMS45LTMuNyAyMy45IDYuMyAxOS42IDE4LjEtMjIuNCA2MS4zLTgxLjMgMTA1LjEtMTUwLjMgMTA1LjFTMTI4LjEgMzg4LjIgMTA1LjcgMzI2LjljLTQuMy0xMS44IDcuNy0yMS44IDE5LjYtMTguMSAzOS4yIDEyLjIgODMuNyAxOS4xIDEzMC43IDE5LjFzOTEuNS02LjkgMTMwLjctMTkuMXpNMjA4IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NCAxNC4zLTY0IDMyLTY0IDMyIDI4LjcgMzIgNjR6bTEyOCA2NGMtMTcuNyAwLTMyLTI4LjctMzItNjRzMTQuMy02NCAzMi02NCAzMiAyOC43IDMyIDY0LTE0LjMgNjQtMzIgNjR6Il19LFJMdD1tNGUsQkx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBvb3AiLGljb246WzUxMiw1MTIsW10sImY2MTkiLCJNMjU0LjQgNi42YzMuNS00LjMgOS02LjUgMTQuNS01LjcgNDYuOSA2LjMgODMuMSA0Ni41IDgzLjEgOTUuMSAwIDExLjItMS45IDIyLTUuNSAzMmw1LjUgMGMzNS4zIDAgNjQgMjguNyA2NCA2NCAwIDE5LjEtOC40IDM2LjMtMjEuNyA0OGwxMy43IDBjMzkuOCAwIDcyIDMyLjIgNzIgNzIgMCAyMy4yLTExIDQzLjgtMjggNTcgMzQuMSA1LjcgNjAgMzUuMyA2MCA3MSAwIDM5LjgtMzIuMiA3Mi03MiA3Mkw3MiA1MTJjLTM5LjggMC03Mi0zMi4yLTcyLTcyIDAtMzUuNyAyNS45LTY1LjMgNjAtNzEtMTctMTMuMi0yOC0zMy44LTI4LTU3IDAtMzkuOCAzMi4yLTcyIDcyLTcybDEzLjcgMGMtMTMuMy0xMS43LTIxLjctMjguOS0yMS43LTQ4IDAtMzUuMyAyOC43LTY0IDY0LTY0bDE2LjIgMGM0NC4xLS4xIDc5LjgtMzUuOSA3OS44LTgwIDAtOS4yLTEuNS0xNy45LTQuMy0yNi4xLTEuOC01LjItLjgtMTEuMSAyLjgtMTUuNHoiXX0sSEx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRoYXJtYWNoYWtyYSIsaWNvbjpbNTEyLDUxMixbOTc4NF0sImY2NTUiLCJNMzM3LjggMjA1LjdsNDguNi00Mi41YzEzLjggMTkuMyAyMy40IDQxLjkgMjcuNCA2Ni4ybC02NC40IDQuM2MtMi40LTEwLjEtNi40LTE5LjUtMTEuNi0yOHptMTQwLjEgMTkuNWMtNS4zLTM4LjgtMjAuNi03NC41LTQzLjItMTA0LjNsLjgtLjdDNDQ5IDEwOC40IDQ0OS43IDg3LjYgNDM3IDc1cy0zMy40LTEyLTQ1LjIgMS41bC0uNyAuOGMtMjkuOC0yMi42LTY1LjUtMzcuOS0xMDQuMy00My4ybC4xLTEuMWMxLjItMTcuOS0xMy0zMy0zMC45LTMzcy0zMi4xIDE1LjItMzAuOSAzM2wuMSAxLjFjLTM4LjggNS4zLTc0LjUgMjAuNi0xMDQuMyA0My4ybC0uNy0uOEMxMDguNCA2MyA4Ny42IDYyLjMgNzUgNzVzLTEyIDMzLjQgMS41IDQ1LjJsLjggLjdjLTIyLjYgMjkuOC0zNy45IDY1LjUtNDMuMiAxMDQuM2wtMS4xLS4xYy0xNy45LTEuMi0zMyAxMy0zMyAzMC45czE1LjIgMzIuMSAzMyAzMC45bDEuMS0uMWM1LjMgMzguOCAyMC42IDc0LjUgNDMuMiAxMDQuM2wtLjggLjdDNjMgNDAzLjYgNjIuMyA0MjQuNCA3NSA0MzdzMzMuNCAxMiA0NS4yLTEuNWwuNy0uOGMyOS44IDIyLjYgNjUuNSAzNy45IDEwNC4zIDQzLjJsLS4xIDEuMWMtMS4yIDE3LjkgMTMgMzMgMzAuOSAzM3MzMi4xLTE1LjIgMzAuOS0zM2wtLjEtMS4xYzM4LjgtNS4zIDc0LjUtMjAuNiAxMDQuMy00My4ybC43IC44YzExLjggMTMuNSAzMi41IDE0LjIgNDUuMiAxLjVzMTItMzMuNC0xLjUtNDUuMmwtLjgtLjdjMjIuNi0yOS44IDM3LjktNjUuNSA0My4yLTEwNC4zbDEuMSAuMWMxNy45IDEuMiAzMy0xMyAzMy0zMC45cy0xNS4yLTMyLjEtMzMtMzAuOWwtMS4xIC4xek0xNjMuMiAxMjUuNmMxOS4zLTEzLjggNDEuOS0yMy40IDY2LjItMjcuNWw0LjMgNjQuNGMtMTAgMi40LTE5LjUgNi40LTI4IDExLjZsLTQyLjUtNDguNnptLTY1IDEwMy44YzQuMS0yNC40IDEzLjctNDYuOSAyNy41LTY2LjJsNDguNiA0Mi41Yy01LjMgOC41LTkuMiAxOC0xMS42IDI4bC02NC40LTQuM3ptMjcuNSAxMTkuNGMtMTMuOC0xOS4zLTIzLjQtNDEuOS0yNy41LTY2LjJsNjQuNC00LjNjMi40IDEwLjEgNi40IDE5LjUgMTEuNiAyOGwtNDguNiA0Mi41em0xMDMuOCA2NWMtMjQuNC00LjEtNDYuOS0xMy43LTY2LjItMjcuNGw0Mi41LTQ4LjZjOC41IDUuMyAxOCA5LjIgMjggMTEuNmwtNC4zIDY0LjR6bTExOS40LTI3LjRjLTE5LjMgMTMuOC00MS45IDIzLjQtNjYuMiAyNy40bC00LjMtNjQuNGMxMC0yLjQgMTkuNS02LjQgMjgtMTEuNmw0Mi41IDQ4LjZ6bTY1LTEwMy44Yy00LjEgMjQuNC0xMy43IDQ2LjktMjcuNCA2Ni4ybC00OC42LTQyLjVjNS4zLTguNiA5LjItMTggMTEuNi0yOGw2NC40IDQuM3ptLTY1LTE1Ni45bC00Mi41IDQ4LjZjLTguNi01LjMtMTgtOS4yLTI4LTExLjZsNC4zLTY0LjRjMjQuNCA0LjEgNDYuOSAxMy43IDY2LjIgMjcuNXpNMjU2IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LGc0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiYXR0ZXJ5LXF1YXJ0ZXIiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTIiXSwiZjI0MyIsIk01MjggMTI4YzguOCAwIDE2IDcuMiAxNiAxNmwwIDIyNGMwIDguOC03LjIgMTYtMTYgMTZsLTQxNiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0yMjRjMC04LjggNy4yLTE2IDE2LTE2bDQxNiAwek0xMTIgNjRjLTQ0LjIgMC04MCAzNS44LTgwIDgwbDAgMjI0YzAgNDQuMiAzNS44IDgwIDgwIDgwbDQxNiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwwLTQ4YzAtNDQuMi0zNS44LTgwLTgwLTgwTDExMiA2NHptNTYgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDExMmMwIDEzLjMgMTAuNyAyNCAyNCAyNGw2NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0bDAtMTEyYzAtMTMuMy0xMC43LTI0LTI0LTI0bC02NCAweiJdfSxxTHQ9ZzRlLGpMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhbmtoIixpY29uOlszMjAsNTEyLFs5NzY1XSwiZjY0NCIsIk05NiAxMjhjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NGMwIDQxLjYtMjAuNyA3Ni42LTQ2LjYgMTA0LjEtNS45IDYuMi0xMS44IDExLjgtMTcuNCAxNi43LTUuNi00LjktMTEuNS0xMC41LTE3LjQtMTYuNy0yNS45LTI3LjUtNDYuNi02Mi42LTQ2LjYtMTA0LjF6TTE2MCAwQzg5LjMgMCAzMiA1Ny4zIDMyIDEyOCAzMiAxODAuNCA1My41IDIyMy41IDc4LjggMjU2TDMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5NiAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNDYuOCAwQzI2Ni41IDIyMy41IDI4OCAxODAuNCAyODggMTI4IDI4OCA1Ny4zIDIzMC43IDAgMTYwIDB6Il19LFZMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkaWFtb25kIixpY29uOls1MTIsNTEyLFs5ODMwXSwiZjIxOSIsIk0xNyAyMTVMMjE1IDE3QzIyNS45IDYuMSAyNDAuNiAwIDI1NiAwczMwLjEgNi4xIDQxIDE3TDQ5NSAyMTVjMTAuOSAxMC45IDE3IDI1LjYgMTcgNDFzLTYuMSAzMC4xLTE3IDQxTDI5NyA0OTVjLTEwLjkgMTAuOS0yNS42IDE3LTQxIDE3cy0zMC4xLTYuMS00MS0xN0wxNyAyOTdDNi4xIDI4Ni4xIDAgMjcxLjQgMCAyNTZzNi4xLTMwLjEgMTctNDF6Il19LFVMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWJzY3JpcHQiLGljb246WzU3Niw1MTIsW10sImYxMmMiLCJNOTYgNjRDNzguMyA2NCA2NCA3OC4zIDY0IDk2czE0LjMgMzIgMzIgMzJsMTUuMyAwIDg5LjYgMTI4LTg5LjYgMTI4LTE1LjMgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwYzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMjQwIDMxMS44IDMyNS44IDQzNC40YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZsMzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUuMyAwLTg5LjYtMTI4IDg5LjYtMTI4IDE1LjMgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwyNDAgMjAwLjIgMTU0LjIgNzcuNkMxNDguMiA2OS4xIDEzOC40IDY0IDEyOCA2NEw5NiA2NHpNNTQ0IDMyMGMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjkgNS42IDExLjIgMTYuOSAxNy43IDI4LjYgMTcuN2wwIDgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsMC0xMjh6Il19LGI0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJydXBlZS1zaWduIixpY29uOls0NDgsNTEyLFs4MzYwLCJydXBlZSJdLCJmMTU2IiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsODAgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDU0LjMtMzAgMTAxLjUtNzQuNCAxMjYuMWw0MSAxMzYuN2M1LjEgMTYuOS00LjUgMzQuOC0yMS41IDM5LjhzLTM0LjgtNC41LTM5LjgtMjEuNUwxMjAuMSAzMTkuOGMtMi43IC4xLTUuNCAuMi04LjEgLjJsLTQ4IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJTMCA0NjUuNyAwIDQ0OEwwIDY0ek02NCAyNTZsNDggMGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGwtNDggMCAwIDE2MHptMjg1LjEtMzJsMzQuOSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zNC45IDBjLTcuMiAwLTEzLjEgNS45LTEzLjEgMTMuMSAwIDUuNyAzLjcgMTAuNyA5LjEgMTIuNWw0OS40IDE1LjljMzEuOSAxMC4zIDUzLjUgMzkuOSA1My41IDczLjQgMCA0Mi42LTM0LjUgNzcuMS03Ny4xIDc3LjFMMzIwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw1MC45IDBjNy4yIDAgMTMuMS01LjkgMTMuMS0xMy4xIDAtNS43LTMuNy0xMC43LTkuMS0xMi41bC00OS40LTE1LjljLTMxLjktMTAuMy01My41LTM5LjktNTMuNS03My40IDAtNDIuNiAzNC41LTc3LjEgNzcuMS03Ny4xeiJdfSxXTHQ9YjRlLEdMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tcmlmbGUiLGljb246WzUxMiw1MTIsW10sImU1NGUiLCJNNDE2IDBMMzg0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsMCAxMDAuM2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjdsMCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxNDRjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTYgMCAwIDk2YzAgOC44IDcuMiAxNiAxNiAxNmw1OS41IDBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTIzLTkyLjEgNDQgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTQ4IDAgMC0yNi43IDUzLjEtMTcuN2M2LjUtMi4yIDEwLjktOC4zIDEwLjktMTUuMmwwLTg0LjVjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCA1Ni0xNiA1LjMgMC0xMDkuM2MwLTExLjgtNi40LTIyLjItMTYtMjcuN0w0MzIgMTZjMC04LjgtNy4yLTE2LTE2LTE2ek0yMjQgMjA4QzExOCAyMDggMzIgMjk0IDMyIDQwMGwwIDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC00OGMwLTMyLjUgMTIuMS02Mi4xIDMyLTg0LjdsMCAxOTYuNyAxNjAgMCAwLTI5My4xYy0yMC03LjEtNDEuNi0xMC45LTY0LTEwLjl6TTI4MCA4OGE3MiA3MiAwIDEgMCAtMTQ0IDAgNzIgNzIgMCAxIDAgMTQ0IDB6Il19LFlMdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkIixpY29uOlszODQsNTEyLFsxMDBdLCI0NCIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDEyOCAwYzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRTMjgzLjcgNDgwIDE2MCA0ODBMMzIgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMkwwIDY0ek02NCA5NmwwIDMyMCA5NiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwUzI0OC40IDk2IDE2MCA5Nkw2NCA5NnoiXX0sWkx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZS1uZmkiLGljb246WzQ0OCw1MTIsW10sImU1NzYiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNOTMgMTcyLjNsMzUgNjMgMC01MS40YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxNDRjMCAxMC45LTcuNCAyMC41LTE4IDIzLjJzLTIxLjctMi0yNy0xMS42bC0zNS02MyAwIDUxLjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMC45IDcuNC0yMC41IDE4LTIzLjJzMjEuNyAyIDI3IDExLjZ6TTIwOCAxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRsODAgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwIDMyIDQwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQwIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTE0NHptMTkyIDBsMCAxNDRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHoiXX0sWEx0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRlZXRoIixpY29uOls1MTIsNTEyLFtdLCJmNjJlIiwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2ek0xNDQgMjA4bDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em0xMjggMGwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNODAgMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0bDE2IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnptMzIwIDMybDAgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRsMTYgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyek00OCAzMzZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZ6bTE0NCA0OGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTE2YzAtOC44LTcuMi0xNi0xNi0xNmwtNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMTZjMCAyNi41IDIxLjUgNDggNDggNDh6bTEyOCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC02NCAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OHptMTEyLTE2YzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTZjMC04LjgtNy4yLTE2LTE2LTE2bC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnoiXX0sdjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hZ25pZnlpbmctZ2xhc3MtZG9sbGFyIixpY29uOls1MTIsNTEyLFsic2VhcmNoLWRvbGxhciJdLCJmNjg4IiwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZDMjk2LjMgNDAxLjEgMjUzLjkgNDE2IDIwOCA0MTYgOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDAgNDE2IDkzLjEgNDE2IDIwOHpNMjEyIDk2Yy0xMSAwLTIwIDktMjAgMjBsMCA0Yy0yOC44IC4zLTUyIDIzLjctNTIgNTIuNSAwIDI1LjcgMTguNSA0Ny42IDQzLjkgNTEuOGw0MS43IDdjNiAxIDEwLjQgNi4yIDEwLjQgMTIuMyAwIDYuOS01LjYgMTIuNS0xMi41IDEyLjVMMTY4IDI1NmMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsMjQgMCAwIDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBsMC00LjdjMjUtNC4xIDQ0LTI1LjcgNDQtNTEuOCAwLTI1LjctMTguNS00Ny42LTQzLjktNTEuOGwtNDEuNy03Yy02LTEtMTAuNC02LjItMTAuNC0xMi4zIDAtNi45IDUuNi0xMi41IDEyLjUtMTIuNWw0Ny41IDBjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwbC04IDAgMC00YzAtMTEtOS0yMC0yMC0yMHoiXX0sUUx0PXY0ZSxKTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZHVtcHN0ZXItZmlyZSIsaWNvbjpbNjQwLDUxMixbXSwiZjc5NCIsIk0xNjQuMyA2NEwxMzguNyAxOTIgNTYgMTkyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQuMWMwLTIuNiAuNC01LjEgMS4yLTcuNkw1OC41IDgwLjRDNjEuOCA3MC42IDcxIDY0IDgxLjMgNjRsODMgMHptMjMuNCAxMjhsMjUuNi0xMjggODIuNyAwIDAgMTI4LTEwOC4zIDB6TTM0NCA2NGw4Mi43IDAgMTYgODBjLTE0LjcgLjItMjkuMyA1LjUtNDAuOSAxNS45LTExLjUgMTAuMy0yMi41IDIxLTMyLjggMzIuMWwtMjQuOSAwIDAtMTI4ek05NiAyNDBsMjMzLjIgMGMtNi40IDguOC0xMi4zIDE3LjYtMTcuNyAyNi4zLTIxLjQgMzQuNy0zOS41IDc2LjEtMzkuNSAxMTUuOCAwIDE3LjEgMi4xIDMzLjggNiA0OS45bC0xMjAuNCAwIDEuOSAxMC4zYzMuMiAxNy40LTguNCAzNC0yNS44IDM3LjJzLTM0LTguNC0zNy4yLTI1LjhDNzEgMzEzLjMgNTggMjQyLjEgNTcuNyAyNDBMOTYgMjQwem01MTItNzJjMCAxMS03LjQgMjAuMy0xNy41IDIzLjEtLjktLjgtMS43LTEuNi0yLjYtMi40LTIxLjgtMjAtNTQuMy0yMS44LTc4LTUuNS00LjItNC4zLTguNS04LjUtMTIuOS0xMi42bC0yMS4zLTEwNi42IDgzIDBjMTAuMyAwIDE5LjUgNi42IDIyLjggMTYuNGwyNS4zIDc1LjljLjggMi40IDEuMiA1IDEuMiA3LjZsMCA0LjF6TTUwNS43IDI0MC4zTDUxOCAyMjYuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45IDcuMiAwIDE0LjMgMi42IDE5LjkgNy44IDE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNiAxNS4xIDI3LjIgMjYuMiA1OC4xIDI2LjIgODguMSAwIDg4LjctNzEuMyAxNTkuOC0xNjAgMTU5LjgtODkuNiAwLTE2MC03MS4zLTE2MC0xNTkuOCAwLTM3LjMgMTYtNzMuNCAzNi44LTEwNC41IDIwLjktMzEuMyA0Ny41LTU5IDcwLjktODAuMiA1LjctNS4yIDEzLjEtNy43IDIwLjMtNy41czEzLjQgMy4yIDE4LjggNy41YzE0LjQgMTEuNCAzOC45IDQwLjcgMzguOSA0MC43ek01NDQgNDMyLjJjMC0zNi41LTM3LTczLTU0LjgtODguNC01LjQtNC43LTEzLjEtNC43LTE4LjUgMC0xNy43IDE1LjQtNTQuOCA1MS45LTU0LjggODguNCAwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0eiJdfSxLTHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXBsb2FkIixpY29uOls0NDgsNTEyLFtdLCJmMDkzIiwiTTI1NiAxMDkuM0wyNTYgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMjEwLjctNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyNTYgMTA5LjN6TTIyNCA0MDBjNDQuMiAwIDgwLTM1LjggODAtODBsODAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0zMmMwLTM1LjMgMjguNy02NCA2NC02NGw4MCAwYzAgNDQuMiAzNS44IDgwIDgwIDgwem0xNDQgMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxGRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNsYXNoIixpY29uOls1NzYsNTEyLFs2MjcxNCwidXNlci1hbHQtc2xhc2giLCJ1c2VyLWxhcmdlLXNsYXNoIl0sImY1MDYiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUwzMTEuNSAyNDUuN2M1NS0xMC45IDk2LjUtNTkuNSA5Ni41LTExNy43IDAtNjYuMy01My43LTEyMC0xMjAtMTIwLTU4LjIgMC0xMDYuOCA0MS41LTExNy43IDk2LjVMNDEtMjQuOXpNMjM1LjYgMzA1LjRDMTQ3LjkgMzE2LjYgODAgMzkxLjUgODAgNDgyLjMgODAgNDk4LjcgOTMuMyA1MTIgMTA5LjcgNTEybDMzMi41IDAtMjA2LjYtMjA2LjZ6Il19LGVBdD1GRCx0QXQ9RkQsckF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWxlZnQiLGljb246WzUxMiw1MTIsWzg1OTJdLCJmMDYwIiwiTTkuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI4OCA0ODAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zNzAuNyAwIDEwNS40LTEwNS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYweiJdfSxpQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidmlhbC12aXJ1cyIsaWNvbjpbNTc2LDUxMixbXSwiZTU5NyIsIk02NCAzMkM2NCAxNC4zIDc4LjMgMCA5NiAwTDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybDAgMTUxLjdjLTE4LjUgMC0zNyA3LTUxLjEgMjEuMS0yMS42IDIxLjYtMjYuNiA1My42LTE1IDc5LjktMjYuOSAxMC40LTQ1LjkgMzYuNi00NS45IDY3LjFzMTkgNTYuNyA0NS45IDY3LjFjLTcuMyAxNi41LTggMzUuMi0yLjMgNTIuMi0xMy40IDUuNy0yOC4yIDguOC00My42IDguOC02MS45IDAtMTEyLTUwLjEtMTEyLTExMkw5NiA2NEM3OC4zIDY0IDY0IDQ5LjcgNjQgMzJ6bTk2IDMybDAgMTI4IDk2IDAgMC0xMjgtOTYgMHpNMjgwIDQwOGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyOC44IDAgNDMuMi0zNC44IDIyLjktNTUuMi05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBjMjAuNCAyMC40IDU1LjIgNS45IDU1LjItMjIuOSAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMjguOCAzNC44IDQzLjIgNTUuMiAyMi45IDkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWMtMjAuNCAyMC40LTUuOSA1NS4yIDIyLjkgNTUuMiAxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMjguOCAwLTQzLjIgMzQuOC0yMi45IDU1LjIgOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGMtMjAuNC0yMC40LTU1LjItNS45LTU1LjIgMjIuOSAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTI4LjgtMzQuOC00My4yLTU1LjItMjIuOS05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45YzIwLjQtMjAuNCA1LjktNTUuMi0yMi45LTU1LjJ6bTEwNC0zMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4IDQwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGFBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjay1kb3VibGUiLGljb246WzM4NCw1MTIsW10sImY1NjAiLCJNMjQ5LjkgNjYuOGMxMC40LTE0LjMgNy4yLTM0LjMtNy4xLTQ0LjdzLTM0LjMtNy4yLTQ0LjcgNy4xbC0xMDYgMTQ1LjctMzcuNS0zNy41Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM2LjYgNi42IDE1LjggMTAgMjUuMSA5LjNzMTcuOS01LjUgMjMuNC0xMy4xbDEyOC0xNzZ6bTEyOCAxMzZjMTAuNC0xNC4zIDcuMi0zNC4zLTcuMS00NC43cy0zNC4zLTcuMi00NC43IDcuMWwtMTcwIDIzMy43LTY5LjUtNjkuNWMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjNi42IDYuNiAxNS44IDEwIDI1LjEgOS4zczE3LjktNS41IDIzLjQtMTMuMWwxOTItMjY0eiJdfSxuQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGF3IixpY29uOls1MTIsNTEyLFtdLCJmMWIwIiwiTTIzNC41IDkyLjljMTQuMyA0Mi45LS4zIDg2LjItMzIuNiA5Ni44cy03MC4xLTE1LjYtODQuNC01OC41IC4zLTg2LjIgMzIuNi05Ni44IDcwLjEgMTUuNiA4NC40IDU4LjV6TTEwMC40IDE5OC42YzE4LjkgMzIuNCAxNC4zIDcwLjEtMTAuMiA4NC4xcy01OS43LS45LTc4LjUtMzMuMy0xNC4zLTcwLjEgMTAuMi04NC4xIDU5LjcgLjkgNzguNSAzMy4zek02OS4yIDQwMS4yQzEyMS42IDI1OS45IDIxNC43IDIyNCAyNTYgMjI0czEzNC40IDM1LjkgMTg2LjggMTc3LjJjMy42IDkuNyA1LjIgMjAuMSA1LjIgMzAuNWwwIDEuNmMwIDI1LjgtMjAuOSA0Ni43LTQ2LjcgNDYuNy0xMS41IDAtMjIuOS0xLjQtMzQtNC4ybC04OC0yMmMtMTUuMy0zLjgtMzEuMy0zLjgtNDYuNiAwbC04OCAyMmMtMTEuMSAyLjgtMjIuNSA0LjItMzQgNC4yLTI1LjggMC00Ni43LTIwLjktNDYuNy00Ni43bDAtMS42YzAtMTAuNCAxLjYtMjAuOCA1LjItMzAuNXpNNDIxLjggMjgyLjdjLTI0LjUtMTQtMjkuMS01MS43LTEwLjItODQuMXM1NC00Ny4zIDc4LjUtMzMuMyAyOS4xIDUxLjcgMTAuMiA4NC4xLTU0IDQ3LjMtNzguNSAzMy4zek0zMTAuMSAxODkuN2MtMzIuMy0xMC42LTQ2LjktNTMuOS0zMi42LTk2LjhzNTIuMS02OS4xIDg0LjQtNTguNSA0Ni45IDUzLjkgMzIuNiA5Ni44LTUyLjEgNjkuMS04NC40IDU4LjV6Il19LE9EPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlbG1ldC1zYWZldHkiLGljb246WzU3Niw1MTIsWyJoYXJkLWhhdCIsImhhdC1oYXJkIl0sImY4MDciLCJNMzUyIDI2NGwwLTIwMGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xODUuOUM5MCAxMDkuOCAzMiAxOTEuOCAzMiAyODhsMCA2NCA1MTIgMCAwLTY0Yy0xLTk1LjItNTguNC0xNzcuNy0xNDQtMjA5LjhMNDAwIDI2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpNNDAgNDAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHMxNy45IDQwIDQwIDQwbDQ5NiAwYzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwTDQwIDQwMHoiXX0sb0F0PU9ELHNBdD1PRCxsQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZSIsaWNvbjpbMzIwLDUxMixbMTAxXSwiNDUiLCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjI0IDAgMC0xMjggMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTI4IDIyNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSx4NGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1sYXVnaC1zcXVpbnQiLGljb246WzUxMiw1MTIsWyJsYXVnaC1zcXVpbnQiXSwiZjU5YiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTA3LjcgMzMyLjFDMTAyIDMxOCAxMTMuNCAzMDQgMTI4LjYgMzA0bDI1NC45IDBjMTUuMiAwIDI2LjYgMTQgMjAuOSAyOC4xLTIzLjggNTguNi04MS4yIDk5LjktMTQ4LjMgOTkuOXMtMTI0LjYtNDEuMy0xNDguMy05OS45em0xNS0xODguOGM0LjUtNi44IDEzLjMtOS4yIDIwLjYtNS41bDc5LjYgNDBjNS40IDIuNyA4LjggOC4yIDguOCAxNC4zcy0zLjQgMTEuNi04LjggMTQuM2wtNzkuNiA0MGMtNy4zIDMuNi0xNi4xIDEuMy0yMC42LTUuNXMtMy4xLTE1LjkgMy4xLTIxLjFMMTU5IDE5MiAxMjUuOCAxNjQuM2MtNi4yLTUuMi03LjYtMTQuMy0zLjEtMjEuMXptMjYzLjYgMjEuMUwzNTMgMTkyIDM4Ni4yIDIxOS43YzYuMiA1LjIgNy42IDE0LjMgMy4xIDIxLjFzLTEzLjMgOS4yLTIwLjYgNS41bC03OS42LTQwYy01LjQtMi43LTguOC04LjItOC44LTE0LjNzMy40LTExLjYgOC44LTE0LjNsNzkuNi00MGM3LjMtMy42IDE2LjEtMS4zIDIwLjYgNS41czMuMSAxNS45LTMuMSAyMS4xeiJdfSxjQXQ9eDRlLHk0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3duLWxlZnQtYW5kLXVwLXJpZ2h0LXRvLWNlbnRlciIsaWNvbjpbNTEyLDUxMixbImNvbXByZXNzLWFsdCJdLCJmNDIyIiwiTTQzOS41IDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJTNDUwLjIgMjQwIDQ0MC41IDI0MGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtMTQ0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMmwzOSAzOSA4Ny04N3pNNzIuNSAyNzJsMTQ0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRsMCAxNDRjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODctMzktMzljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNjIuOCAyNzIgNzIuNSAyNzJ6Il19LGRBdD15NGUsdUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdpZnRzIixpY29uOls1NzYsNTEyLFtdLCJmNzljIiwiTTIwMi0zMC42YzEyLjUgNC40IDE5IDE4LjEgMTQuNiAzMC42bC04LjIgMjMuMSAyNS40LTE4LjVjMTAuNy03LjggMjUuNy01LjQgMzMuNSA1LjNzNS40IDI1LjctNS4zIDMzLjVMMjMzLjggNjQgMjcyIDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4bDAgMi4xYy01NC43IDEwLjQtOTYgNTguNC05NiAxMTZsMCAxLjljMCA4LjkgMSAxNy41IDIuOCAyNS45LTExLjkgMTcuOC0xOC44IDM5LjEtMTguOCA2Mi4xbDAgMTI4YzAgMjMuOCA3LjQgNDUuOSAyMC4xIDY0TDQ4IDUxMmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRsMzguMiAwLTI4LjMtMjAuNkM0Ny4yIDM1LjYgNDQuOCAyMC42IDUyLjYgOS45Uzc1LjQtMy4yIDg2LjEgNC42bDI3LjQgMjAtOC4zLTI1QzEwMS0xMyAxMDcuOC0yNi42IDEyMC40LTMwLjhzMjYuMiAyLjYgMzAuNCAxNS4ybDkuOSAyOS44IDEwLjctMzAuMmM0LjQtMTIuNSAxOC4xLTE5IDMwLjYtMTQuNnpNNDg5LjkgMjA4Yy03LjUgMC0xNC41IDMuOC0xOC42IDEwLjFMNDQ2LjkgMjU2IDQ4OCAyNTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC0xLjljMC0xMi4yLTkuOS0yMi4xLTIyLjEtMjIuMXpNMzg1LjEgMjU2bC0yNC40LTM3LjljLTQuMS02LjMtMTEuMS0xMC4xLTE4LjYtMTAuMS0xMi4yIDAtMjIuMSA5LjktMjIuMSAyMi4xbDAgMS45YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQxLjEgMHpNMjgxLjkgMjY4LjVjLTYuMy0xMC43LTkuOS0yMy4yLTkuOS0zNi41bDAtMS45YzAtMzguNyAzMS40LTcwLjEgNzAuMS03MC4xIDIzLjggMCA0NiAxMi4xIDU4LjkgMzIuMWwxNSAyMy4yIDE1LTIzLjJjMTIuOS0yMCAzNS4xLTMyLjEgNTguOS0zMi4xIDM4LjcgMCA3MC4xIDMxLjQgNzAuMSA3MC4xbDAgMS45YzAgMTMuMy0zLjYgMjUuOC05LjkgMzYuNSAxNS43IDExLjcgMjUuOSAzMC40IDI1LjkgNTEuNWwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NGwtNzIgMCAwLTIwOC00OCAwIDAgMjA4LTcyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTI4YzAtMjEuMSAxMC4yLTM5LjggMjUuOS01MS41eiJdfSxwQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVkIixpY29uOls1NzYsNTEyLFsxMjg3MTZdLCJmMjM2IiwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjI0IDIyNCAwIDAtMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE2MCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NC00NDggMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyUzAgNDY1LjcgMCA0NDhMMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptODAgMTYwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0saEF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vbmV5LWJpbGwtdHJhbnNmZXIiLGljb246WzY0MCw1MTIsW10sImU1MjgiLCJNMzEgMTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwxMDMtMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTMxIDMxIDY3LjcgMCAwIDAgMzM4LjMgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDE3OC4yLTUuMS01LjFjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMC0yNy4yIDI3LjItMjguMSA3MC42LTIuOCA5OC45bDY3LjcgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS00MDYuMSAwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTE3OC4yIDUuMSA1LjFjMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwIDI3LjItMjcuMiAyOC4xLTcwLjYgMi44LTk4LjlsLTY3LjcgMCAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDMxIDEwNXpNNDE2IDI1NmE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6bTg4LTY0LjVjNC40IC41IDgtMy4xIDgtNy41bDAtNDhjMC00LjQtMy42LTgtOC04bC00OCAwYy00LjQgMC04LjEgMy42LTcuNSA4IDMuNiAyOSAyNi42IDUxLjkgNTUuNSA1NS41em0tMzY4IDEyOWMtNC40LS41LTggMy4xLTggNy41bDAgNDhjMCA0LjQgMy42IDggOCA4bDQ4IDBjNC40IDAgOC4xLTMuNiA3LjUtOC0zLjYtMjktMjYuNi01MS45LTU1LjUtNTUuNXoiXX0sdzRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1ydW5uaW5nIixpY29uOls0NDgsNTEyLFsxMjc5MzksInJ1bm5pbmciXSwiZjcwYyIsIk0yNTYuNS0zMmE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMTIzLjYgMTc2Yy0zLjMgMC02LjIgMi03LjQgNUw5NC4yIDIzNS45Yy02LjYgMTYuNC0yNS4yIDI0LjQtNDEuNiAxNy44cy0yNC40LTI1LjItMTcuOC00MS42bDIxLjktNTQuOUM2Ny43IDEyOS45IDk0LjEgMTEyIDEyMy42IDExMmw5Ny4zIDBjMjguNSAwIDU0LjggMTUuMSA2OS4xIDM5LjdsMzIuOCA1Ni4zIDYxLjYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjEuNiAwYy0yMi44IDAtNDMuOC0xMi4xLTU1LjMtMzEuOGwtMTAtMTcuMS0yMC43IDcwLjQgNzUuNCAyMi42YzI3LjcgOC4zIDQxLjggMzkgMzAuMSA2NS41TDI4NS43IDUwOWMtNy4yIDE2LjItMjYuMSAyMy40LTQyLjIgMTYuMnMtMjMuNC0yNi4xLTE2LjItNDIuMmw0OS4yLTExMC44LTk1LjktMjguOGMtMzIuNy05LjgtNTItNDMuNy00My43LTc2LjhsMjIuNy05MC42LTM1LjkgMHptLTggMTgxYzEzLjMgMTQuOSAzMC43IDI2LjMgNTEuMiAzMi40bDQuNyAxLjQtNi45IDE5LjNjLTUuOCAxNi4zLTE2IDMwLjgtMjkuMyA0MS44TDUyLjkgNTE5LjhjLTEzLjYgMTEuMi0zMy44IDkuMy00NS00LjNzLTkuMy0zMy44IDQuMy00NWw4Mi40LTY3LjljNC41LTMuNyA3LjgtOC41IDkuOC0xMy45TDExNS42IDM1N3oiXX0sZkF0PXc0ZSxNNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2lyY2xlLWNoZXZyb24tZG93biIsaWNvbjpbNTEyLDUxMixbImNoZXZyb24tY2lyY2xlLWRvd24iXSwiZjEzYSIsIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAxIDAgMC01MTJ6TTEzNSAyNDFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4NyA4NyA4Ny04N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMjczIDM0NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTM1IDI0MXoiXX0sbUF0PU00ZSxnQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXNlci1udXJzZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjgyZiIsIk05NiA0NC45YzAtMTIuNyA3LjUtMjQuMiAxOS4yLTI5LjNsOTYtNDJjOC4yLTMuNiAxNy41LTMuNiAyNS43IDBsOTYgNDJDMzQ0LjUgMjAuNyAzNTIgMzIuMiAzNTIgNDQuOWwwIDk5LjFjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhTOTYgMjE0LjcgOTYgMTQ0bDAtOTkuMXpNMzA0IDEyOGwtMTExLjYgMC0uNCAwLTQ4IDAgMCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwbDAtMTZ6TTIwOCAxNmwwIDE2LTE2IDBjLTQuNCAwLTggMy42LTggOGwwIDE2YzAgNC40IDMuNiA4IDggOGwxNiAwIDAgMTZjMCA0LjQgMy42IDggOCA4bDE2IDBjNC40IDAgOC0zLjYgOC04bDAtMTYgMTYgMGM0LjQgMCA4LTMuNiA4LThsMC0xNmMwLTQuNC0zLjYtOC04LThsLTE2IDAgMC0xNmMwLTQuNC0zLjYtOC04LThMMjE2IDhjLTQuNCAwLTggMy42LTggOHpNMTQyLjYgMzIzYy02LjUtNC45LTE1LjItNi4yLTIyLjYtMi44LTYxLjQgMjguMi0xMDQuMSA5MC4yLTEwNC4xIDE2Mi4xIDAgMTYuNCAxMy4zIDI5LjcgMjkuNyAyOS43bDM1Ni42IDBjMTYuNCAwIDI5LjctMTMuMyAyOS43LTI5LjcgMC03Mi00Mi43LTEzNC0xMDQuMS0xNjIuMS03LjQtMy40LTE2LjEtMi4xLTIyLjYgMi44bC02NyA1MC4yYy04LjUgNi40LTIwLjMgNi40LTI4LjggMGwtNjctNTAuMnoiXX0sazRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2Uta2lzcy13aW5rLWhlYXJ0IixpY29uOls2NDAsNTEyLFsxMjg1MzYsImtpc3Mtd2luay1oZWFydCJdLCJmNTk4IiwiTTU0My43IDI2OC4zYy4yLTQuMSAuMy04LjIgLjMtMTIuMyAwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2UzMyIDExNC42IDMyIDI1NiAxNDYuNiA1MTIgMjg4IDUxMmM0MS40IDAgODAuNS05LjggMTE1LjEtMjcuMy03LjYtMTcuMS0xNi4xLTM4LjgtMjEuOC02MS43LTcuNy0zMC41LTE0LjEtNzYuMiA4LjItMTE0LjdsMi43LTQuNmMyOS41LTUxIDk0LjctNjguNSAxNDUuNy0zOSAyIDEuMiA0IDIuNCA1LjkgMy43ek0yNDAgMzA0YzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4IDAgMTIuMy00LjYgMjMuNS0xMi4yIDMyIDcuNiA4LjUgMTIuMiAxOS43IDEyLjIgMzIgMCAyNi41LTIxLjUgNDgtNDggNDhsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZsMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMTYgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxNiAwYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2bC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZ6TTIwOCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xNTIgMjBjLTExIDAtMjAgOS0yMCAyMHMtOSAyMC0yMCAyMC0yMC05LTIwLTIwYzAtMzMuMSAyNi45LTYwIDYwLTYwbDE2IDBjMzMuMSAwIDYwIDI2LjkgNjAgNjAgMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwLTktMjAtMjAtMjBsLTE2IDB6TTU0Mi44IDM1MGMtMi4yLTE4LjMtMTIuOS0zNC42LTI4LjktNDMuOC0yOC4xLTE2LjItNjMuOS02LjYtODAuMSAyMS41bC0yLjcgNC42Yy0yNC41IDQyLjUgNy45IDExNy45IDI0LjQgMTUwLjggNS4xIDEwLjEgMTUuNSAxNi4xIDI2LjggMTUuNSAzNi43LTIuMiAxMTguMi0xMS43IDE0Mi44LTU0LjJsMi43LTQuNmMxNi4yLTI4LjEgNi42LTYzLjktMjEuNS04MC4xLTE2LTkuMi0zNS40LTEwLjQtNTIuNC0zLjFsLTkuOCA0LjItMS4zLTEwLjZ6Il19LGJBdD1rNGUsdkF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGwiLGljb246WzUxMiw1MTIsW10sImY1NzUiLCJNMjk2IDY0YzYuOSAwIDEzLjUgMi43IDE4LjMgNy42TDQ0MC40IDE5Ny43YzQuOSA0LjkgNy42IDExLjUgNy42IDE4LjNzLTIuNyAxMy41LTcuNiAxOC4zTDM4Ni43IDI4OCA2NS4zIDI4OGMxLjMtMy45IDMuNC03LjQgNi4zLTEwLjNsOTYuNC05Ni40IDMzLjQgMzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIxMy4zIDEzNiAyNzcuNyA3MS42YzQuOS00LjkgMTEuNS03LjYgMTguMy03LjZ6TTEyMi43IDEzNkwyNi4zIDIzMi40QzkuNSAyNDkuMyAwIDI3Mi4xIDAgMjk2czkuNSA0Ni43IDI2LjMgNjMuNkwxNTIuNCA0ODUuN0MxNjkuMyA1MDIuNSAxOTIuMSA1MTIgMjE2IDUxMnM0Ni43LTkuNSA2My42LTI2LjNMNDg1LjcgMjc5LjZDNTAyLjUgMjYyLjcgNTEyIDIzOS45IDUxMiAyMTZzLTkuNS00Ni43LTI2LjMtNjMuNkwzNTkuNiAyNi4zQzM0Mi43IDkuNSAzMTkuOSAwIDI5NiAwcy00Ni43IDkuNS02My42IDI2LjNMMTY4IDkwLjcgMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMTIyLjcgMTM2eiJdfSxTNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC0xLXdhdmUiLGljb246WzUxMiw1MTIsWyJtb25leS1iaWxsLXdhdmUtYWx0Il0sImY1M2IiLCJNMCAxMDkuNUwwIDQxOS42YzAgMTkuNCAxMS44IDM3LjMgMzAuMyA0My4zIDk0IDMwIDE1OC44IDguNCAyMjMuMy0xMy4xIDYyLjQtMjAuOCAxMjQuNC00MS41IDIxMi4xLTE1LjMgMjIuMiA2LjYgNDYuMi04LjggNDYuMi0zMmwwLTMxMC4xYzAtMTkuNC0xMS44LTM3LjMtMzAuMy00My4zLTk0LTMwLTE1OC44LTguNC0yMjMuMyAxMy4xLTYyLjQgMjAuOC0xMjQuNCA0MS41LTIxMi4xIDE1LjMtMjIuMi02LjYtNDYuMyA4LjgtNDYuMyAzMnpNMjU2IDM2OGMtNTMgMC05Ni01MC4xLTk2LTExMnM0My0xMTIgOTYtMTEyIDk2IDUwLjEgOTYgMTEyLTQzIDExMi05NiAxMTJ6TTEyNy4xIDQwNS41Yy43IDQuNC0yLjggOC4xLTcuMiA4LjEtMTUuNyAwLTMyLjEtMS44LTUwLTYuMS0zLjUtLjgtNi00LTYtNy43TDY0IDM2MGMwLTQuNCAzLjYtOC4xIDgtNy41IDI4LjEgMy41IDUwLjYgMjUuMiA1NS4yIDUzek00NDggMzU0LjZjMCA1LTQuNiA4LjgtOS41IDgtMTUuNC0yLjUtMzAuMi0zLjktNDQuNC00LjMtNC45LS4xLTguNy00LjUtNy4yLTkuMiA3LjMtMjMuNyAyOC00MS40IDUzLjItNDQuNiA0LjQtLjUgOCAzLjEgOCA3LjVsMCA0Mi42em0tOC0xOTUuMWMtMjguMS0zLjUtNTAuNi0yNS4yLTU1LjItNTMtLjctNC40IDIuOC04LjEgNy4yLTguMSAxNS43IDAgMzIuMSAxLjggNTAgNi4xIDMuNSAuOCA2IDQgNiA3LjdsMCAzOS45YzAgNC40LTMuNiA4LjEtOCA3LjV6bS0zMjIuMS01LjhjNC45IC4xIDguNyA0LjUgNy4yIDkuMi03LjMgMjMuNy0yOCA0MS40LTUzLjIgNDQuNi00LjQgLjUtOC0zLjEtOC03LjVsMC00Mi42YzAtNSA0LjYtOC44IDkuNS04IDE1LjQgMi41IDMwLjIgMy45IDQ0LjQgNC4zek0yNDAgMTg4Yy0xMSAwLTIwIDktMjAgMjAgMCA5LjcgNi45IDE3LjcgMTYgMTkuNmwwIDQ4LjQtNCAwYy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGw0OCAwYzExIDAgMjAtOSAyMC0yMHMtOS0yMC0yMC0yMGwtNCAwIDAtNjhjMC0xMS05LTIwLTIwLTIwbC0xNiAweiJdfSx4QXQ9UzRlLHlBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsYW5kbWFyayIsaWNvbjpbNTEyLDUxMixbMTI3OTYzXSwiZjY2ZiIsIk0yMzguNyA1LjFjMTAuNS02LjggMjQuMS02LjggMzQuNiAwbDIyNCAxNDRjMTEuOSA3LjcgMTcuNCAyMi4zIDEzLjQgMzUuOXMtMTYuNSAyMy0zMC43IDIzbC0zMiAwIDAgMjA4IDUxLjIgMzguNGM4LjEgNiAxMi44IDE1LjUgMTIuOCAyNS42IDAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNmw1MS4yLTM4LjQgMCAwIDAtMjA4LTMyIDBjLTE0LjIgMC0yNi43LTkuNC0zMC43LTIzczEuNS0yOC4zIDEzLjQtMzUuOWwyMjQtMTQ0ek0zMzYgMjA4bDAgMjA4IDY0IDAgMC0yMDgtNjQgMHpNMjI0IDQxNmw2NCAwIDAtMjA4LTY0IDAgMCAyMDh6TTExMiAyMDhsMCAyMDggNjQgMCAwLTIwOC02NCAweiJdfSx3QXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibXVzaWMiLGljb246WzUxMiw1MTIsWzEyNzkyNV0sImYwMDEiLCJNNDY4IDdjNy42IDYuMSAxMiAxNS4zIDEyIDI1bDAgMzA0YzAgNDQuMi00MyA4MC05NiA4MHMtOTYtMzUuOC05Ni04MCA0My04MCA5Ni04MGMxMS4yIDAgMjIgMS42IDMyIDQuNmwwLTExNi43LTIyNCA0OS44IDAgMjA2LjNjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwIDQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42TDEyOCA5NmMwLTE1IDEwLjQtMjggMjUuMS0zMS4ybDI4OC02NGM5LjUtMi4xIDE5LjQgLjIgMjcgNi4zeiJdfSxNQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1tZWRpY2FsIixpY29uOls0NDgsNTEyLFtdLCJmN2U2IiwiTTk2IDUxMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTY2LjdjMTguNi02LjYgMzItMjQuNCAzMi00NS4zbDAtMjg4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDk2IDBDNDMgMCAwIDQzIDAgOTZMMCA0MTZjMCA1MyA0MyA5NiA5NiA5NnpNNjQgNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDI1NiAwIDAgNjQtMjU2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xOTIgMTIwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC00MCAwIDAgNDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQweiJdfSx6NGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic2h1ZmZsZSIsaWNvbjpbNTEyLDUxMixbMTI4MjU2LCJyYW5kb20iXSwiZjA3NCIsIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45UzM4NCAyMDQuOSAzODQgMTkybDAtMzItMzIgMGMtMTAuMSAwLTE5LjYgNC43LTI1LjYgMTIuOGwtMzIuNCA0My4yLTQwLTUzLjMgMjEuMi0yOC4zQzI5My4zIDExMC4yIDMyMS44IDk2IDM1MiA5NmwzMiAwIDAtMzJjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnpNMTU0IDI5Nmw0MCA1My4zLTIxLjIgMjguM0MxNTQuNyA0MDEuOCAxMjYuMiA0MTYgOTYgNDE2bC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDY0IDBjMTAuMSAwIDE5LjYtNC43IDI1LjYtMTIuOEwxNTQgMjk2ek00MzguNiA0NzAuNmMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlTMzg0IDQ2MC45IDM4NCA0NDhsMC0zMi0zMiAwYy0zMC4yIDAtNTguNy0xNC4yLTc2LjgtMzguNEwxMjEuNiAxNzIuOGMtNi04LjEtMTUuNS0xMi44LTI1LjYtMTIuOGwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJTMTQuMyA5NiAzMiA5Nmw2NCAwYzMwLjIgMCA1OC43IDE0LjIgNzYuOCAzOC40TDMyNi40IDMzOS4yYzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhsMzIgMCAwLTMyYzAtMTIuOSA3LjgtMjQuNiAxOS44LTI5LjZzMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjR6Il19LGtBdD16NGUsU0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InVuZGVybGluZSIsaWNvbjpbMzg0LDUxMixbXSwiZjBjZCIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyUzExMy43IDY0IDk2IDY0bDAgMTYwYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZsMC0xNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyUzI3MC4zIDAgMjg4IDBsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwwIDE2MGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMzMiAzMTIuNCAzMiAyMjRMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMCA0ODBjMC0xNy43IDE0LjMtMzIgMzItMzJsMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sekF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1aWxkaW5nLXVzZXIiLGljb246WzY0MCw1MTIsW10sImU0ZGEiLCJNNjQgNjRDNjQgMjguNyA5Mi43IDAgMTI4IDBMMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxMjEuM2MtNDYuOSAxOS04MCA2NS04MCAxMTguNyAwIDI3LjcgOC44IDUzLjQgMjMuOCA3NC40LTUxLjUgMjEtODcuOCA3MS42LTg3LjggMTMwLjcgMCAxIDAgMS45IDAgMi45bC0xNzYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMNjQgNjR6TTIwOCA0MDBsMCA2NCA1My40IDBjNy4yLTI5LjQgMjEuMy01Ni4xIDQwLjQtNzguMy02LjEtMTkuNS0yNC4zLTMzLjctNDUuOC0zMy43LTI2LjUgMC00OCAyMS41LTQ4IDQ4ek0zMzkgMjI0LjNjLTEtLjItMi0uMy0zLS4zbC0zMiAwYy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMTYuNyAwYzIuMS0yMi44IDguNC00NC4zIDE4LjMtNjMuN3pNMTc2IDk2Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTExMiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNzYgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZsMCAzMmMwIDguOCA3LjIgMTYgMTYgMTZsMzIgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDB6bTI0MCA4MGE4MCA4MCAwIDEgMSAxNjAgMCA4MCA4MCAwIDEgMSAtMTYwIDB6TTM1MiA1MTJjMC01MyA0My05NiA5Ni05Nmw5NiAwYzUzIDAgOTYgNDMgOTYgOTYgMCAxNy43LTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sQ0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYm90IixpY29uOls2NDAsNTEyLFsxMjkzMDJdLCJmNTQ0IiwiTTM1MiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzI4OC0xNy43IDI4OCAwbDAgNjQtOTYgMGMtNTMgMC05NiA0My05NiA5NmwwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC0yMjRjMC01My00My05Ni05Ni05NmwtOTYgMCAwLTY0ek0xNjAgMzY4YzAtMTMuMyAxMC43LTI0IDI0LTI0bDMyIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTMyIDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0xMjAgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwzMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0zMiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMTIwIDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMzIgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMzIgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTIyNCAxNzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0xNDQgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNNjQgMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgMjA2LjMgMCAyMjRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZ6bTU0NC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6Il19LGViPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdXMiLGljb246WzQ0OCw1MTIsWzEwMTMzLDYxNTQzLCJhZGQiXSwiMmIiLCJNMjU2IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgMTYwLTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDE2MCAwIDAgMTYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjAgMTYwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2MCAwIDAtMTYweiJdfSxUQXQ9ZWIsdUU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29weSIsaWNvbjpbNDQ4LDUxMixbXSwiZjBjNSIsIk0xOTIgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCAyNTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMTkyIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yMDAuNmMwLTE3LjQtNy4xLTM0LjEtMTkuNy00Ni4yTDM3MC42IDE3LjhDMzU4LjcgNi40IDM0Mi44IDAgMzI2LjMgMEwxOTIgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE2LTY0IDAgMCAxNi0xOTIgMCAwLTI1NiAxNiAwIDAtNjQtMTYgMHoiXX0sX0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoZXNzLWtpbmciLGljb246WzQ0OCw1MTIsWzk4MThdLCJmNDNmIiwiTTIyNC0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyIDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTMyIDAgMCA2NCAxNTMuOCAwYzIxLjEgMCAzOC4yIDE3LjEgMzguMiAzOC4yIDAgNi40LTEuNiAxMi43LTQuNyAxOC4zTDM1MiAzODQgNDA4LjIgNDU0LjNjNSA2LjMgNy44IDE0LjEgNy44IDIyLjIgMCAxOS42LTE1LjkgMzUuNS0zNS41IDM1LjVMNjcuNSA1MTJjLTE5LjYgMC0zNS41LTE1LjktMzUuNS0zNS41IDAtOC4xIDIuNy0xNS45IDcuOC0yMi4yTDk2IDM4NCA0LjcgMjE2LjZDMS42IDIxMC45IDAgMjA0LjYgMCAxOTguMiAwIDE3Ny4xIDE3LjEgMTYwIDM4LjIgMTYwbDE1My44IDAgMC02NC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnoiXX0sTEF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsb29kLXdhdGVyIixpY29uOls2NDAsNTEyLFtdLCJlNTBlIiwiTTQ5NiAyMDhsNC41IDBjMTUuMiAwIDI3LjUtMTIuMyAyNy41LTI3LjUgMC03LjktMy40LTE1LjUtOS40LTIwLjdMMzQ4IDEwLjVDMzQwLjMgMy43IDMzMC4zIDAgMzIwIDBzLTIwLjMgMy43LTI4IDEwLjVMMTIxLjQgMTU5LjhjLTYgNS4yLTkuNCAxMi44LTkuNCAyMC43IDAgMTUuMiAxMi4zIDI3LjUgMjcuNSAyNy41bDQuNSAwIDAgOTQuNGMyMC4zLTkuNCA0Mi4xLTE0LjIgNjQtMTQuNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjQgMjIuMSAxNi42IDI5LjEgMTYuNiA1MS4yIDAgMjcuNS0yMC43IDU5LjktMzEuMiA5Mi40LTMxLjQgMTYuOS0uMSAzMy44IDIuNiA1MCA4bDAtODh6bS0yMjQtOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDh6TTQ3NC42IDQxMi4xYzE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNDE4LjMgMTcuNiA0MjYuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1LjljMjEuMy0xNi4xIDQ5LjktMTYuMSA3MS4yIDB6bS03MS4yIDk2YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDE5IDE0LjQgNDEuOSAyOC4yIDY3LjIgMzMuMyAyNi41IDUuNCA1NC4zIC44IDgwLjctMTkuMSAxMC42LTggMTIuNy0yMyA0LjctMzMuNnMtMjMtMTIuNy0zMy42LTQuN2MtMTQuOSAxMS4yLTI4LjYgMTMuMS00Mi4zIDEwLjMtMTQuOS0zLTMwLjktMTEuOS00Ny44LTI0LjYtMzguNC0yOS05MC41LTI5LTEyOSAwLTI0IDE4LjEtNDAuNyAyNi4zLTU0LjUgMjYuM3MtMzAuNS04LjItNTQuNS0yNi4zYy0zOC40LTI5LTkwLjUtMjktMTI5IDAtMjEuNiAxNi4zLTQxLjMgMjUuOC01OC45IDI1LjctOS42LS4xLTE5LjktMy0zMS4yLTExLjUtMTAuNi04LTI1LjYtNS45LTMzLjYgNC43UzcgNTE0LjMgMTcuNiA1MjIuM2MxOS4xIDE0LjQgMzkuNCAyMSA1OS44IDIxLjEgMzMuOSAuMiA2NC4zLTE3LjQgODguMS0zNS4zIDIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwIDI0LjIgMTguMyA1Mi4zIDM1LjkgODMuNCAzNS45czU5LjEtMTcuNyA4My40LTM1Ljl6Il19LEFBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiaXRjb2luLXNpZ24iLGljb246WzMyMCw1MTIsW10sImUwYjQiLCJNNjQgMjRDNjQgMTAuNyA3NC43IDAgODggMHMyNCAxMC43IDI0IDI0bDAgNDAgMzIgMCAwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MS4xYzU0LjMgNy44IDk2IDU0LjQgOTYgMTEwLjkgMCAyNC4yLTcuNyA0Ni42LTIwLjcgNjQuOSAzMS43IDE5LjggNTIuNyA1NSA1Mi43IDk1LjEgMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTE2IDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTMyIDAgMCA0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTQwLTIyLjMgMEMxOC43IDQ0OCAwIDQyOS4zIDAgNDA2LjNMMCAxMDEuNkMwIDgwLjggMTYuOCA2NCAzNy42IDY0TDY0IDY0IDY0IDI0em0wIDIwMGwxMTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OGwtMTEyIDAgMCA5NnptMTEyIDY0bC0xMTIgMCAwIDk2IDE0NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4bC0zMiAweiJdfSxEQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm94IixpY29uOls0NDgsNTEyLFsxMjgyMzBdLCJmNDY2IiwiTTM2OS40IDEyOGwtMzQuMy00OC0yMjIuMSAwLTM0LjMgNDggMjkwLjcgMHpNMCAxNDguNWMwLTEzLjMgNC4yLTI2LjMgMTEuOS0zNy4yTDYwLjkgNDIuOEM3Mi45IDI2IDkyLjMgMTYgMTEyLjkgMTZsMjIyLjEgMGMyMC43IDAgNDAuMSAxMCA1Mi4xIDI2LjhsNDguOSA2OC41YzcuOCAxMC45IDExLjkgMjMuOSAxMS45IDM3LjJMNDQ4IDQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTQ4LjV6Il19LEM0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzcXVhcmUtcGx1cyIsaWNvbjpbNDQ4LDUxMixbNjE4NDYsInBsdXMtc3F1YXJlIl0sImYwZmUiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnpNMjAwIDM0NGwwLTY0LTY0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNjQgMCAwLTY0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA2NCA2NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC02NCAwIDAgNjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LEVBdD1DNGUsVDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93cy1sZWZ0LXJpZ2h0IixpY29uOls1NzYsNTEyLFsiYXJyb3dzLWgiXSwiZjA3ZSIsIk00NzAuNiAzNzQuNmw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDQxLjQgNDEuNC0zNTcuNSAwIDQxLjQtNDEuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTYgNi05LjQgMTQuMS05LjQgMjIuNnMzLjQgMTYuNiA5LjQgMjIuNmw5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC00MS40LTQxLjQgMzU3LjUgMC00MS40IDQxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6Il19LCRBdD1UNGUsSUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhbiIsaWNvbjpbNTEyLDUxMixbXSwiZjg2MyIsIk0xNjAgMTQ0YzAtNzkuNSA2NC41LTE0NCAxNDQtMTQ0IDguOCAwIDE2IDcuMiAxNiAxNmwwIDE1Mi4yYzE1LTUuMyAzMS4yLTguMiA0OC04LjIgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA4LjgtNy4yIDE2LTE2IDE2bC0xNTIuMiAwYzUuMyAxNSA4LjIgMzEuMiA4LjIgNDggMCA3OS41LTY0LjUgMTQ0LTE0NCAxNDQtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTUyLjJjLTE1IDUuMy0zMS4yIDguMi00OCA4LjItNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC04LjggNy4yLTE2IDE2LTE2bDE1Mi4yIDBjLTUuMy0xNS04LjItMzEuMi04LjItNDh6bTk2IDE0NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFBBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjcm93IixpY29uOls2NDAsNTEyLFtdLCJmNTIwIiwiTTQ1Ni41IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4bDAgMzYtMzU1LjIgMjY2LjRDLS44IDQwMS0zLjcgNDIxIDYuOSA0MzUuMnMzMC42IDE3IDQ0LjggNi40bDc2LjgtNTcuNiAxMzEuMyAwIDQ2LjYgMTEzLjEgMSAyLjJjNS43IDEwLjcgMTguOCAxNS41IDMwLjMgMTAuOHMxNy4zLTE3LjMgMTMuOS0yOWwtLjgtMi4zLTM5LjEtOTQuOSA0MC45IDBjMS4xIDAgMi4yIDAgMy4yIDBsNDYuNiAxMTMuMiAxIDIuMmM1LjcgMTAuNyAxOC44IDE1LjUgMzAuMyAxMC44czE3LjMtMTcuMyAxMy45LTI5bC0uOC0yLjMtNDItMTAyQzQ4NS4zIDM1NC4xIDU0NC41IDI4MCA1NDQuNSAxOTJsMC03MiA4MC41LTIwLjFjOC42LTIuMSAxMy44LTEwLjggMTEuNi0xOS40LTcuMS0yOC41LTMyLjctNDguNS02Mi4xLTQ4LjVsLTUwLjEgMEM1MDguMiAxMi41IDQ4My44IDAgNDU2LjUgMHptMCA2NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6Il19LE5BdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTVhMCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxCZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaW5rLXNsYXNoIixpY29uOls1NzYsNTEyLFsiY2hhaW4tYnJva2VuIiwiY2hhaW4tc2xhc2giLCJ1bmxpbmsiXSwiZjEyNyIsIk00MS0yNC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMFMtMi4zLS4zIDcgOS4xbDUyOCA1MjhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMjItMTIyYzQuMi0zLjQgOC4zLTcuMSAxMi4xLTEwLjlsNzEuMS03MS4xYzI5LjMtMjkuMyA0NS44LTY5LjEgNDUuOC0xMTAuNiAwLTg2LjQtNzAtMTU2LjUtMTU2LjUtMTU2LjUtMzcuMyAwLTczLjEgMTMuMy0xMDEuMyAzNy4yIDIwLjMgMTAuMSAzOC43IDIzLjUgNTQuNSAzOS41IDE0LjEtOC4zIDMwLjItMTIuNyA0Ni44LTEyLjcgNTEuMSAwIDkyLjUgNDEuNCA5Mi41IDkyLjUgMCAyNC41LTkuNyA0OC0yNy4xIDY1LjRsLTcxLjEgNzEuMWMtMy45IDMuOS04LjEgNy40LTEyLjYgMTAuNWwtNDcuNS00Ny41YzE2LjUtLjkgMjkuNy0xNC40IDMwLjItMzEuMSAwLTEuMyAwLTIuNiAwLTMuOSAwLTg2LjMtNjkuOS0xNTYuOS0xNTYuNS0xNTYuOS0xOS4yIDAtMzcuOSAzLjUtNTUuNSAxMC4yTDQxLTI0Ljl6TTIyNS45IDE2MGMuNiAwIDEuMSAwIDEuNyAwIDE1LjEgMCAyOS41IDMuNyA0Mi4xIDEwLjIgMS44IDEuMiAzLjYgMi4zIDUuNSAzLjEgMjYuOCAxNi4zIDQ0LjggNDUuOSA0NC44IDc5LjYgMCAuNCAwIC44IDAgMS4yTDIyNS45IDE2MHpNMzQ2LjIgNDE2TDE5MiAyNjEuOGMxLjIgODQuNiA2OS42IDE1Mi45IDE1NC4xIDE1NC4xek0xMzkuNyAyMDkuNWwtNDUuMy00NS4zLTQ4LjYgNDguNmMtMjkuMyAyOS4zLTQ1LjggNjkuMS00NS44IDExMC42IDAgODYuNCA3MCAxNTYuNSAxNTYuNSAxNTYuNSAzNy4yIDAgNzMuMS0xMy4zIDEwMS4zLTM3LjItMjAuMy0xMC4xLTM4LjgtMjMuNS01NC42LTM5LjUtMTQgOC4yLTMwLjEgMTIuNi00Ni43IDEyLjYtNTEuMSAwLTkyLjUtNDEuNC05Mi41LTkyLjUgMC0yNC41IDkuNy00OCAyNy4xLTY1LjRsNDguNi00OC42eiJdfSxGQXQ9QmcsT0F0PUJnLFJBdD1CZyxIZz17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1yb3RhdGUtcmlnaHQiLGljb246WzUxMiw1MTIsWzg2MzUsImFycm93LXJpZ2h0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1mb3J3YXJkIiwicmVkbyJdLCJmMDFlIiwiTTQzNi43IDc0LjdMNDQ4IDg1LjQgNDQ4IDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ3LjkgMC03LjYtNy4yYy0uMi0uMi0uNC0uNC0uNi0uNi03NS03NS0xOTYuNS03NS0yNzEuNSAwcy03NSAxOTYuNSAwIDI3MS41IDE5Ni41IDc1IDI3MS41IDBjOC4yLTguMiAxNS41LTE2LjkgMjEuOS0yNi4xIDEwLjEtMTQuNSAzMC4xLTE4IDQ0LjYtNy45czE4IDMwLjEgNy45IDQ0LjZjLTguNSAxMi4yLTE4LjIgMjMuOC0yOS4xIDM0LjctMTAwIDEwMC0yNjIuMSAxMDAtMzYyIDBTLTI1IDE3NSA3NSA3NWM5OS45LTk5LjkgMjYxLjctMTAwIDM2MS43LS4zeiJdfSxCQXQ9SGcsSEF0PUhnLHFBdD1IZyxfNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVuLWNsaXAiLGljb246WzUxMiw1MTIsWyJwZW4tYWx0Il0sImYzMDUiLCJNNDA0IDBjMTkuMiAwIDM3LjYgNy42IDUxLjEgMjEuMmwzNS43IDM1LjdDNTA0LjQgNzAuNCA1MTIgODguOCA1MTIgMTA4cy03LjYgMzcuNi0yMS4yIDUxLjFMNDQ1LjkgMjA0IDMwOCA2Ni4xIDM1Mi45IDIxLjJDMzY2LjQgNy42IDM4NC44IDAgNDA0IDB6TTI3NC4xIDEwMGwwIDAgMTM3LjkgMTM3LjktMjE1LjEgMjE1LjFjLTEwLjcgMTAuNy0yNC4xIDE4LjUtMzguNyAyMi42TDMwLjQgNTExLjFjLTguMyAyLjMtMTcuMyAwLTIzLjQtNi4ycy04LjUtMTUuMS02LjItMjMuNEwzNi40IDM1My44YzQuMS0xNC42IDExLjgtMjcuOSAyMi42LTM4LjdMMjQwLjEgMTMzLjkgMjIzIDExNi45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw4OSAyMTdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMTU1LjEgODIuOWMyOC4xLTI4LjEgNzMuNy0yOC4xIDEwMS44IDBMMjc0LjEgMTAweiJdfSxqQXQ9XzRlLFZBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb29yLWNsb3NlZCIsaWNvbjpbNDQ4LDUxMixbMTI4NjgyXSwiZjUyYSIsIk0zMiA2NEMzMiAyOC43IDYwLjcgMCA5NiAwTDM1MiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkwzMiA2NHpNMzIwIDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFJEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LWRvd24td2lkZS1zaG9ydCIsaWNvbjpbNTc2LDUxMixbInNvcnQtYW1vdW50LWFzYyIsInNvcnQtYW1vdW50LWRvd24iXSwiZjE2MCIsIk0yNDYuNiAzNzQuNmwtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiAzNzAuNyA5NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzA2LjcgNDEuNC00MS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6TTMyMCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsOTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE2MCAwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwyMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwzMjAgOTZ6Il19LFVBdD1SRCxXQXQ9UkQsR0F0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhcmV0LWRvd24iLGljb246WzMyMCw1MTIsW10sImYwZDciLCJNMTQwLjMgMzc2LjhjMTIuNiAxMC4yIDMxLjEgOS41IDQyLjgtMi4ybDEyOC0xMjhjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTMzAxLjQgMTkyIDI4OC41IDE5MmwtMjU2IDBjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhTLjcgMjM3LjUgOS45IDI0Ni42bDEyOCAxMjggMi40IDIuMnoiXX0sWUF0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImsiLGljb246WzMyMCw1MTIsWzEwN10sIjRiIiwiTTMxMSA4Ni4zYzEyLjMtMTIuNyAxMi0zMi45LS43LTQ1LjJzLTMyLjktMTItNDUuMiAuN0MxNDMuNCAxNjcuMiA3Ni40IDIzNi4zIDY0IDI0OUw2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NEwwIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTA3IDY0LjctNjYuNyAxMzMgMTkyYzEwLjEgMTQuNSAzMCAxOC4xIDQ0LjUgOC4xczE4LjEtMzAgOC4xLTQ0LjVMMTc0LjEgMjI3LjQgMzExIDg2LjN6Il19LEw0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVjay10by1zbG90IixpY29uOls1NzYsNTEyLFsidm90ZS15ZWEiXSwiZjc3MiIsIk01NTIgMjg4YzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAzMTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNGMwIDguOCA3LjIgMTYgMTYgMTZsNDQ4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MTYgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTI1NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEw5NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NGwyNTYgMHptLTM3LjEgODQuNmMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNsLTg1LjYgMTE3LjctMjYuNS0yNy40Yy05LjItOS41LTI0LjQtOS44LTMzLjktLjYtOS41IDkuMi05LjggMjQuNC0uNiAzMy45bDQ2LjQgNDhjNC45IDUuMSAxMS44IDcuOCAxOC45IDcuM3MxMy42LTQuMSAxNy44LTkuOEwzODQuMiAxNTAuMWM3LjgtMTAuNyA1LjQtMjUuNy01LjMtMzMuNXoiXX0sWkF0PUw0ZSxYQXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlzaC1maW5zIixpY29uOls1NzYsNTEyLFtdLCJlNGYyIiwiTTI3NS4yIDM4LjRjLTEwLjYtOC0yNS04LjUtMzYuMy0xLjVTMjIyIDU3LjMgMjI0LjYgNzAuM2w5LjcgNDguNmMtMTkuNCA5LTM2LjkgMTkuOS01Mi40IDMxLjUtMTUuMyAxMS41LTI5IDIzLjktNDAuNyAzNi4zTDQ4LjEgMTMyLjRjLTEyLjUtNy4zLTI4LjQtNS4zLTM4LjcgNC45cy0xMi40IDI2LTUuMyAzOC42TDUwIDI1NiA0LjIgMzM2LjFjLTcuMiAxMi42LTUgMjguNCA1LjMgMzguNnMyNi4xIDEyLjIgMzguNyA0LjlsOTMuMS01NC4zYzExLjggMTIuMyAyNS40IDI0LjggNDAuNyAzNi4zIDE1LjUgMTEuNiAzMyAyMi41IDUyLjQgMzEuNWwtOS43IDQ4LjZjLTIuNiAxMyAzLjEgMjYuMyAxNC4zIDMzLjNzMjUuNiA2LjUgMzYuMy0xLjVsNzcuNi01OC4yYzU0LjktNCAxMDEuNS0yNyAxMzcuMi01My44IDM5LjItMjkuNCA2Ny4yLTY0LjcgODEuNi04OS41IDUuOC05LjkgNS44LTIyLjIgMC0zMi4xLTE0LjQtMjQuOC00Mi41LTYwLjEtODEuNi04OS41LTM1LjgtMjYuOC04Mi4zLTQ5LjgtMTM3LjItNTMuOEwyNzUuMiAzOC40ek0zODQgMjU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6Il19LFFBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wcmVzcyIsaWNvbjpbNDQ4LDUxMixbXSwiZjA2NiIsIk0xNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgNDYuMyA5NiA2NGwwIDY0LTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTk2ek0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMCAwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMHpNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsOTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMCAwLTY0ek0zMjAgMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC02NCA2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAweiJdfSxBNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctdXAtYS16IixpY29uOls1MTIsNTEyLFsic29ydC1hbHBoYS11cCJdLCJmMTVlIiwiTTQxMi42IDQ5LjdDNDA3LjIgMzguOCAzOTYuMSAzMiAzODQgMzJzLTIzLjIgNi44LTI4LjYgMTcuN2MtNTAuNyAxMDEuMy03Ny4zIDE1NC43LTgwIDE2MC03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNsNy4yLTE0LjMgODguNCAwIDcuMiAxNC4zYzcuOSAxNS44IDI3LjEgMjIuMiA0Mi45IDE0LjNzMjIuMi0yNy4xIDE0LjMtNDIuOWMtMi43LTUuMy0yOS4zLTU4LjctODAtMTYwek0zODQgMTM1LjZsMjAuMiA0MC40LTQwLjQgMCAyMC4yLTQwLjR6TTI4OCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsNTAuNyAwLTczLjQgNzMuNGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlTMzA3LjEgNDgwIDMyMCA0ODBsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTUwLjcgMCA3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDYwLjkgMjg4IDQ0OCAyODhsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTUwLjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDE0MS4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzA2LjcgMjUuNCAyNS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTgwLTgweiJdfSxKQXQ9QTRlLEtBdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdyYWR1YXRlIixpY29uOls0NDgsNTEyLFtdLCJmNTAxIiwiTTI0MS4zLTEzYy0xMS40LTIuMy0yMy4xLTIuMy0zNC41IDBMMTkuMyAyNC41QzguMSAyNi43IDAgMzYuNiAwIDQ4IDAgNTguMyA2LjUgNjcuMyAxNiA3MC42TDE2IDE0NCAuMyAyMjIuNmMtLjIgLjktLjMgMS45LS4zIDIuOSAwIDggNi41IDE0LjYgMTQuNiAxNC42bDM0LjkgMGM4IDAgMTQuNi02LjUgMTQuNi0xNC42IDAtMS0uMS0xLjktLjMtMi45TDQ4IDE0NCA0OCA3Ny4zIDk2IDg2LjkgOTYgMTQ0YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhsMC01Ny4xIDc2LjctMTUuM0M0MzkuOSA2OS4zIDQ0OCA1OS40IDQ0OCA0OHMtOC4xLTIxLjMtMTkuMy0yMy41TDI0MS4zLTEzek0yMjQgMjI0Yy00NC4yIDAtODAtMzUuOC04MC04MGwxNjAgMGMwIDQ0LjItMzUuOCA4MC04MCA4MHpNMTIwLjEgMzIwLjFDNTguNyAzNDguMyAxNiA0MTAuMyAxNiA0ODIuMyAxNiA0OTguNyAyOS4zIDUxMiA0NS43IDUxMmwxNTQuMyAwIDAtMTQ2LTU3LjQtNDNjLTYuNS00LjktMTUuMi02LjItMjIuNi0yLjh6TTI0OCA1MTJsMTU0LjMgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTcyLTQyLjctMTM0LTEwNC4xLTE2Mi4xLTcuNC0zLjQtMTYuMS0yLjEtMjIuNiAyLjhsLTU3LjQgNDMgMCAxNDZ6Il19LGVEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNvZGUiLGljb246WzM4NCw1MTIsW10sImYxYzkiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTE1NC4yIDI5NS42YzguNi0xMC4xIDcuNS0yNS4yLTIuNi0zMy44cy0yNS4yLTcuNS0zMy44IDIuNmwtNDggNTZjLTcuNyA5LTcuNyAyMi4yIDAgMzEuMmw0OCA1NmM4LjYgMTAuMSAyMy44IDExLjIgMzMuOCAyLjZzMTEuMi0yMy44IDIuNi0zMy44bC0zNC42LTQwLjQgMzQuNi00MC40em0xMTItMzEuMmMtOC42LTEwLjEtMjMuOC0xMS4yLTMzLjgtMi42cy0xMS4yIDIzLjgtMi42IDMzLjhsMzQuNiA0MC40LTM0LjYgNDAuNGMtOC42IDEwLjEtNy41IDI1LjIgMi42IDMzLjhzMjUuMiA3LjUgMzMuOC0yLjZsNDgtNTZjNy43LTkgNy43LTIyLjIgMC0zMS4ybC00OC01NnoiXX0sdER0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvYXAiLGljb246WzUxMiw1MTIsWzEyOTUzMl0sImUwNmUiLCJNMjA4LTMyYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMzIwIDk2YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0zNTIgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek05NiAxNjBsMTEyIDBjMCAyMy44IDcuNCA0NS45IDIwLjEgNjRMMTYwIDIyNGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmwxOTIgMGM1MyAwIDk2LTQzIDk2LTk2IDAtMzUuMS0xOC45LTY1LjktNDctODIuNiAxOS0xOS44IDMwLjctNDYuNiAzMS03Ni4xIDQ1LjQgNy42IDgwIDQ3LjEgODAgOTQuN2wwIDEyOGMwIDUzLTQzIDk2LTk2IDk2TDk2IDQ4MGMtNTMgMC05Ni00My05Ni05NkwwIDI1NmMwLTUzIDQzLTk2IDk2LTk2em02NCAxMTJsMTkyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4eiJdfSxyRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjeWNsZSIsaWNvbjpbNTEyLDUxMixbOTg0Miw5ODUwLDk4NTFdLCJmMWI4IiwiTTE1Mi4zIDYwQzE5OC41LTIwIDMxNC0yMCAzNjAuMiA2MGwzNy4zIDY0LjYgMjcuNy0xNmM4LjQtNC45IDE4LjktNC4yIDI2LjYgMS43czExLjEgMTUuOSA4LjYgMjUuM0w0MzYuOSAyMjNjLTMuNCAxMi44LTE2LjYgMjAuNC0yOS40IDE3bC04Ny40LTIzLjRjLTkuNC0yLjUtMTYuMy0xMC40LTE3LjYtMjBzMy40LTE5LjEgMTEuOC0yMy45bDI3LjctMTYtMzcuMy02NC42Yy0yMS42LTM3LjMtNzUuNC0zNy4zLTk3IDBsLTUuMyA5LjFjLTguOCAxNS4zLTI4LjQgMjAuNS00My43IDExLjdTMTM4LjIgODQuNSAxNDcgNjkuMWw1LjMtOS4xek00NDkuNyAyNzkuMWMxNS4zLTguOCAzNC45LTMuNiA0My43IDExLjdsNS4zIDkuMWM0Ni4yIDgwLTExLjUgMTgwLTEwMy45IDE4MGwtNzQuNiAwIDAgMzJjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDY0LTY0YzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJzMTQuOCAxMi41IDE0LjggMjIuMmwwIDMyIDc0LjYgMGM0My4xIDAgNzAuMS00Ni43IDQ4LjUtODRsLTUuMy05LjFjLTguOC0xNS4zLTMuNi0zNC45IDExLjctNDMuN3pNNTEgMjM1LjRsLTI3LjctMTZjLTguNC00LjktMTMuMS0xNC4zLTExLjgtMjMuOXM4LjItMTcuNSAxNy42LTIwTDExNi41IDE1MmMxMi44LTMuNCAyNiA0LjIgMjkuNCAxN2wyMy40IDg3LjRjMi41IDkuNC0uOSAxOS4zLTguNiAyNS4zcy0xOC4yIDYuNi0yNi42IDEuN2wtMjcuNy0xNi0zNy4zIDY0LjZjLTIxLjYgMzcuMyA1LjQgODQgNDguNSA4NGwxMC42IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEwLjYgMEMyNS4zIDQ4MC0zMi40IDM4MCAxMy44IDMwMEw1MSAyMzUuNHoiXX0sRDRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3Jpbi13aW5rIixpY29uOls1MTIsNTEyLFsiZ3Jpbi13aW5rIl0sImY1OGMiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0zMjggMTk2Yy0xMSAwLTIwIDktMjAgMjBzLTkgMjAtMjAgMjAtMjAtOS0yMC0yMGMwLTMzLjEgMjYuOS02MCA2MC02MGwxNiAwYzMzLjEgMCA2MCAyNi45IDYwIDYwIDAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMC05LTIwLTIwLTIwbC0xNiAwek0xNzYgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0saUR0PUQ0ZSxCRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3YXRlci1sYWRkZXIiLGljb246WzY0MCw1MTIsWyJsYWRkZXItd2F0ZXIiLCJzd2ltbWluZy1wb29sIl0sImY1YzUiLCJNMzc0LjUgNDA1LjdjMzguNC0yOSA5MC41LTI5IDEyOSAwIDE2LjkgMTIuNyAzMi45IDIxLjUgNDcuOCAyNC42IDEzLjcgMi44IDI3LjQgLjkgNDIuMy0xMC4zIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjggMjUuNy00LjggMzMuNmMtMjYuNCAxOS45LTU0LjIgMjQuNC04MC43IDE5LjEtMjUuMy01LjEtNDguMS0xOC45LTY3LjItMzMuMy0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0yNC4yIDE4LjMtNTIuMyAzNS45LTgzLjQgMzUuOXMtNTkuMS0xNy43LTgzLjMtMzUuOWMtMjEuMy0xNi4xLTQ5LjktMTYuMS03MS4yIDAtMjMuOCAxNy45LTU0LjEgMzUuNS04OC4xIDM1LjMtMjAuNC0uMS00MC43LTYuNy01OS44LTIxLjEtMTAuNi04LTEyLjctMjMtNC43LTMzLjZzMjMtMTIuNyAzMy42LTQuN2MxMS4zIDguNSAyMS42IDExLjQgMzEuMiAxMS41IDE3LjYgLjEgMzcuMy05LjQgNTguOS0yNS43IDM4LjQtMjkgOTAuNi0yOSAxMjkgMCAyNCAxOC4xIDQwLjcgMjYuMyA1NC41IDI2LjNzMzAuNS04LjIgNTQuNS0yNi4zek01MTEuOCAzMmM0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjgtMTcuNSAwLTMxLjggMTQuMi0zMS44IDMxLjhsMCAyMTEuOGMtMjMuMS01LjEtNDQuOS00LjQtNjQtLjRsMC01MS4yLTE5MiAwIDAgNDguN2MtNS4zLS41LTEwLjctLjgtMTYtLjctMTYuMiAuMS0zMi40IDIuNy00OCA4bDAtMjE2LjJjMC01Mi45IDQyLjktOTUuOCA5NS43LTk1LjggNDguMyAwIDg5IDM2IDk1IDgzLjlsMSA4LjJjMi4yIDE3LjUtMTAuMiAzMy41LTI3LjggMzUuN3MtMzMuNS0xMC4yLTM1LjctMjcuOGwtMS04LjJjLTItMTUuOS0xNS41LTI3LjgtMzEuNS0yNy44LTE3LjUgMC0zMS43IDE0LjItMzEuNyAzMS44bDAgOTYuMiAxOTIgMCAwLTk2LjJDNDE2IDc0LjkgNDU4LjkgMzIgNTExLjggMzJ6Il19LGFEdD1CRCxuRHQ9QkQsb0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdlbWluaSIsaWNvbjpbNDQ4LDUxMixbXSwiZTg0OSIsIk0zOTUuNCA4YzEzLjItMTEuNyAzMy4zLTEwLjUgNDUuMSAyLjcgMTEuNyAxMy4yIDEwLjUgMzMuNC0yLjcgNDUuMi0yLjcgMi40LTIzLjEgMTkuOC01OC4zIDM2LjgtOC4yIDQtMTcuMiA3LjktMjcgMTEuNmwwIDMwMy4yYzkuOCAzLjggMTguOCA3LjYgMjcgMTEuNiAxOC4yIDguOCAzMi40IDE3LjcgNDIuMiAyNC41IDMgMi4xIDUuNSA0LjEgNy43IDUuNyAxLjIgLjkgMi4zIDEuNiAzLjIgMi40IC4yIC4xIC4zIC4yIC41IC40IDEuMyAxLjEgMi40IDIgMy4yIDIuNiAuNCAuMyAuNyAuNiAuOSAuOCAuMSAuMSAuMyAuMiAuMyAuMyAwIDAgLjEgLjEgLjEgLjFsLjEgMCAwIDAgMCAwYzMuMyAyLjkgNS45IDYuNCA3LjcgMTAuMiA1LjQgMTEuMyAzLjggMjUuMS01IDM1LS4zIC40LS43IC43LTEuMSAxLjEtMTEuOSAxMi4yLTMxLjIgMTMuMS00NCAxLjctLjMtLjMtMS41LTEuMy0zLjUtMi44LS40LS4zLS45LS43LTEuNS0xLjEtMS45LTEuNC00LjItMy4xLTcuMS01LjEtMi4yLTEuNS00LjctMy4xLTcuNC00LjgtNi42LTQuMS0xNC44LTguOC0yNC40LTEzLjUtNy40LTMuNi0xNS42LTcuMi0yNC43LTEwLjUtMTMuNi01LjEtMjktOS42LTQ2LjEtMTIuOS01LjctMS4xLTExLjYtMi4xLTE3LjctMi44LTEyLjEtMS42LTI1LTIuNS0zOC42LTIuNS01NC4yIDAtOTcuNCAxNC40LTEyNyAyOC44LTMuNCAxLjYtNi41IDMuMy05LjUgNC45LTUuMSAyLjgtOS43IDUuNC0xMy44IDcuOS0zLjMgMi4xLTYuMyA0LTguOSA1LjctMS43IDEuMi0zLjIgMi4zLTQuNiAzLjMtMS45IDEuNC0zLjUgMi41LTQuNiAzLjQtMS40IDEuMS0yLjIgMS44LTIuNSAyLTEzLjIgMTEuNy0zMy4zIDEwLjUtNDUuMS0yLjgtMi4yLTIuNS00LTUuMi01LjItOC4xcy0yLjEtNS45LTIuNS04LjljLTEuNC0xMC4yIDIuMi0yMC44IDEwLjQtMjguMiAuMi0uMiAuNi0uNSAxLjItMSAuMS0uMSAuMi0uMiAuMy0uM2wzLjItMi42YzEuNy0xLjMgMy43LTIuOCA2LjItNC42IDEuNi0xLjIgMy4zLTIuNSA1LjItMy44IDkuOC02LjggMjQtMTUuNyA0Mi4yLTI0LjUgOC4yLTQgMTcuMi03LjkgMjctMTEuNmwwLTMwMy4yQzg2LjcgMTAwLjYgNzcuNyA5Ni43IDY5LjUgOTIuOCAzNC4zIDc1LjcgMTQgNTguMyAxMS4zIDU1LjktMS45IDQ0LjItMy4xIDI0IDguNiAxMC43IDIwLjMtMi41IDQwLjUtMy43IDUzLjcgOCA1NS4xIDkuMiA3MC43IDIyLjIgOTcuNSAzNS4yIDEyNy4xIDQ5LjYgMTcwLjMgNjQgMjI0LjUgNjRzOTcuNC0xNC40IDEyNy0yOC44YzI2LjgtMTMgNDIuNC0yNiA0My44LTI3LjJ6TTI4OC41IDEyMi4zYy0xOS43IDMuNS00MSA1LjctNjQgNS43cy00NC4zLTIuMi02NC01LjdsMCAyNjcuNGMxMi42LTIuMyAyNS45LTQgMzkuOS00LjkgNy44LS41IDE1LjgtLjggMjQtLjggMjMgMCA0NC40IDIuMiA2NCA1LjdsMC0yNjcuNHoiXX0sc0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRvd2VyLWNlbGwiLGljb246WzU3Niw1MTIsW10sImU1ODUiLCJNNTkuNiA5LjhDNDcuMyA0LjggMzMuMyAxMC43IDI4LjQgMjMgMTUuMiA1NS41IDggOTAuOSA4IDEyOHM3LjIgNzIuNSAyMC40IDEwNWM1IDEyLjMgMTkgMTguMiAzMS4zIDEzLjJzMTguMi0xOSAxMy4yLTMxLjNDNjIgMTg4LjIgNTYgMTU4LjggNTYgMTI4czYtNjAuMiAxNi45LTg3YzUtMTIuMy0xLTI2LjMtMTMuMi0zMS4zem00NTYuOCAwYy0xMi4zIDUtMTguMiAxOS0xMy4yIDMxLjMgMTAuOSAyNi44IDE2LjkgNTYuMiAxNi45IDg3cy02IDYwLjItMTYuOSA4N2MtNSAxMi4zIDEgMjYuMyAxMy4yIDMxLjNzMjYuMy0xIDMxLjMtMTMuMmMxMy4xLTMyLjUgMjAuNC02Ny45IDIwLjQtMTA1cy03LjItNzIuNS0yMC40LTEwNWMtNS0xMi4zLTE5LTE4LjItMzEuMy0xMy4yek0zNDAuMSAxNjUuMmM3LjUtMTAuNSAxMS45LTIzLjMgMTEuOS0zNy4yIDAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0YzAgMTMuOSA0LjQgMjYuNyAxMS45IDM3LjJMOTguOSA0NjYuOGMtNy4zIDE2LjEtLjIgMzUuMSAxNS45IDQyLjRzMzUuMSAuMiA0Mi40LTE1LjlsMjAuNi00NS4yIDIyMC42IDAgMjAuNiA0NS4yYzcuMyAxNi4xIDI2LjMgMjMuMiA0Mi40IDE1LjlzMjMuMi0yNi4zIDE1LjktNDIuNEwzNDAuMSAxNjUuMnpNMzc2LjUgNDAwbC0xNzcgMCAyMS44LTQ4IDEzMy4zIDAgMjEuOCA0OHpNMjg4IDIwNS4zbDQ0LjggOTguNy04OS43IDAgNDQuOC05OC43ek0xNjMuMyA3My42YzUuMy0xMi4xLS4yLTI2LjMtMTIuNC0zMS42cy0yNi4zIC4yLTMxLjYgMTIuNEMxMDkuNSA3NyAxMDQgMTAxLjkgMTA0IDEyOHM1LjUgNTEgMTUuMyA3My42YzUuMyAxMi4xIDE5LjUgMTcuNyAzMS42IDEyLjRzMTcuNy0xOS41IDEyLjQtMzEuNkMxNTYgMTY1LjggMTUyIDE0Ny40IDE1MiAxMjhzNC0zNy44IDExLjMtNTQuNHpNNDU2LjcgNTQuNGMtNS4zLTEyLjEtMTkuNS0xNy43LTMxLjYtMTIuNHMtMTcuNyAxOS41LTEyLjQgMzEuNkM0MjAgOTAuMiA0MjQgMTA4LjYgNDI0IDEyOHMtNCAzNy44LTExLjMgNTQuNGMtNS4zIDEyLjEgLjIgMjYuMyAxMi40IDMxLjZzMjYuMy0uMiAzMS42LTEyLjRDNDY2LjUgMTc5IDQ3MiAxNTQuMSA0NzIgMTI4cy01LjUtNTEtMTUuMy03My42eiJdfSxsRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29sb24tc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTE0MCIsIk0yMTMuOCA4LjdjMTIuOSAzLjIgMjAuNyAxNi4yIDE3LjUgMjkuMWwtNC42IDE4LjVjMTUuNCAuOCAzMC40IDMuNCA0NC43IDcuNWw5LjQtMzcuNkMyODMuOSAxMy4zIDI5NyA1LjUgMzA5LjggOC43UzMzMC41IDI1IDMyNy4zIDM3LjhMMzE2IDgyLjhjMTMuNSA3LjggMjYgMTcuMSAzNy4yIDI3LjggMTIuOSAxMi4xIDEzLjQgMzIuNCAxLjMgNDUuMnMtMzIuNCAxMy40LTQ1LjIgMS4zYy0zLjEtMi45LTYuNC01LjgtOS44LTguNEwyMzkuMiAzOTBjMjYuOS00LjYgNTEuMS0xNy4xIDcwLjEtMzUuMSAxMi45LTEyLjEgMzMuMS0xMS41IDQ1LjIgMS4zczExLjUgMzMuMS0xLjMgNDUuMmMtMzQuMyAzMi4zLTgwIDUyLjgtMTMwLjUgNTQuNGwtNy41IDI5LjljLTMuMiAxMi45LTE2LjIgMjAuNy0yOS4xIDE3LjVzLTIwLjctMTYuMi0xNy41LTI5LjFsNS42LTIyLjVjLTE1LTMuMi0yOS40LTgtNDIuOS0xNC40bC0xMi4xIDQ4LjVjLTMuMiAxMi45LTE2LjIgMjAuNy0yOS4xIDE3LjVTNjkuNSA0ODcgNzIuNyA0NzQuMmwxNi02My45QzQ0LjMgMzczLjYgMTYgMzE4LjEgMTYgMjU2IDE2IDE1OS4yIDg0LjggNzguNCAxNzYuMyA2MGw4LjQtMzMuOEMxODcuOSAxMy4zIDIwMSA1LjUgMjEzLjggOC43ek0xNTggMTMyLjljLTQ2LjEgMjEuOC03OCA2OC43LTc4IDEyMy4xIDAgMzAuNSAxMCA1OC42IDI2LjkgODEuM0wxNTggMTMyLjl6TTE0Ny40IDM3My40YzEzIDcuNiAyNy4zIDEzLjEgNDIuNSAxNi4xbDY1LjktMjYzLjZjLTEyLjYtMy44LTI1LjktNS45LTM5LjgtNS45LTEuOCAwLTMuNSAwLTUuMyAuMUwxNDcuNCAzNzMuNHoiXX0sY0R0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxhcHRvcC1maWxlIixpY29uOls1NzYsNTEyLFtdLCJlNTFkIiwiTTY0IDY0QzY0IDI4LjcgOTIuNyAwIDEyOCAwTDQxNiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgNDgtNjQgMCAwLTQ4LTI4OCAwIDAgMTkyIDExMiAwIDAgOTYtMTYzLjIgMEMzNC40IDM1MiAwIDMxNy42IDAgMjc1LjIgMCAyNjQuNiA4LjYgMjU2IDE5LjIgMjU2TDY0IDI1NiA2NCA2NHpNNTI5LjkgMjU3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNTQ0IDQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjU2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDc2LjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xIDIwIDIwIDQ3LjkgNDcuOSA4My45IDgzLjl6TTQxNiAyNzJjMCA4LjggNy4yIDE2IDE2IDE2bDYwLjEgMC03Ni4xLTc2LjEgMCA2MC4xeiJdfSxFNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFoYWkiLGljb246WzU3Niw1MTIsWyJoYXlrYWwiXSwiZjY2NiIsIk0yODguNC04YzEzLjIgMCAyNSA4LjEgMjkuOCAyMC40bDMxLjkgODIgNzcuMi00Mi4zYzExLjYtNi4zIDI1LjgtNC45IDM1LjkgMy41czE0IDIyLjMgOS43IDM0LjhsLTI4LjIgODMuMyA4Ni4zIDE3LjJjMTIuOSAyLjYgMjMgMTIuOCAyNS4zIDI1LjhzLTMuNiAyNi4xLTE0LjkgMzIuOWwtNzUuMiA0NS43IDU1IDY4LjZjOC4zIDEwLjMgOS4zIDI0LjYgMi43IDM2cy0xOS41IDE3LjYtMzIuNiAxNS42bC04Ny0xMy4zLTIgODhjLS4zIDEzLjItOC42IDI0LjgtMjEgMjkuNHMtMjYuMyAxLTM1LTlsLTU4LTY2LjEtNTggNjYuMWMtOC43IDkuOS0yMi42IDEzLjUtMzUgOXMtMjAuOC0xNi4yLTIxLTI5LjRsLTItODgtODcgMTMuM2MtMTMgMi0yNi00LjItMzIuNi0xNS42cy01LjUtMjUuNyAyLjctMzZsNTUtNjguNi03NS4yLTQ1LjdjLTExLjMtNi44LTE3LjItMTkuOS0xNC45LTMyLjlzMTIuMy0yMy4yIDI1LjMtMjUuOGw4Ni4zLTE3LjItMjguMi04My4zYy00LjItMTIuNS0uNC0yNi4zIDkuNy0zNC44czI0LjQtOS45IDM1LjktMy41bDc3LjEgNDIuMyAzMS45LTgyQzI2My4zIC4xIDI3NS4yLTggMjg4LjQtOHptMCAxMjAuMkwyNzMgMTUxLjZjLTMuMyA4LjYtMTAuMiAxNS4zLTE4LjkgMTguNXMtMTguMiAyLjQtMjYuMy0ybC0zNy0yMC4zIDEzLjYgNDBjMyA4LjcgMiAxOC4zLTIuNiAyNi4zcy0xMi40IDEzLjYtMjEuNSAxNS40bC00MS40IDguMyAzNi4xIDIxLjljNy45IDQuOCAxMy4zIDEyLjcgMTQuOSAyMS44cy0uOCAxOC40LTYuNSAyNS42bC0yNi40IDMzIDQxLjgtNi40YzkuMS0xLjQgMTguNCAxLjIgMjUuNCA3LjFzMTEuMiAxNC42IDExLjQgMjMuOGwuOSA0Mi4yIDI3LjktMzEuOGM2LjEtNi45IDE0LjgtMTAuOSAyNC4xLTEwLjlzMTggNCAyNC4xIDEwLjlsMjcuOSAzMS44IC45LTQyLjJjLjItOS4yIDQuNC0xNy45IDExLjQtMjMuOHMxNi4zLTguNSAyNS40LTcuMWw0MS44IDYuNC0yNi40LTMzYy01LjgtNy4yLTguMi0xNi41LTYuNi0yNS42czctMTcgMTQuOS0yMS44bDM2LjEtMjEuOS00MS40LTguM2MtOS0xLjgtMTYuOS03LjQtMjEuNS0xNS40cy01LjUtMTcuNi0yLjYtMjYuM2wxMy42LTQwLTM3IDIwLjNjLTguMSA0LjQtMTcuNyA1LjItMjYuMyAycy0xNS41LTkuOS0xOC45LTE4LjVsLTE1LjMtMzkuNHoiXX0sZER0PUU0ZSwkNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbC0xIixpY29uOls1MTIsNTEyLFsibW9uZXktYmlsbC1hbHQiXSwiZjNkMSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTkyIDgwYTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHpNNjQgMTg0bDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNS00LjQgLjUtOC0zLjEtOC03LjV6bTAgMTQ0YzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHpNNDQwIDE5MS41Yy0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OGMwIDQuNC0zLjYgOC4xLTggNy41ek00NDggMzI4bDAgNDhjMCA0LjQtMy42IDgtOCA4bC00OCAwYy00LjQgMC04LjEtMy42LTcuNS04IDMuNi0yOSAyNi42LTUxLjkgNTUuNS01NS41IDQuNC0uNSA4IDMuMSA4IDcuNXpNMjQwIDE4OGMtMTEgMC0yMCA5LTIwIDIwIDAgOS43IDYuOSAxNy43IDE2IDE5LjZsMCA0OC40LTQgMGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBsNDggMGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBsLTQgMCAwLTY4YzAtMTEtOS0yMC0yMC0yMGwtMTYgMHoiXX0sdUR0PSQ0ZSxJNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2xvdWQtYm9sdCIsaWNvbjpbNTEyLDUxMixbMTI3Nzg1LCJ0aHVuZGVyc3Rvcm0iXSwiZjc2YyIsIk0wIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDM4LjYgMCAxMjQuMS0xMTFjMTIuMi0xMC45IDI4LTE3IDQ0LjQtMTcgNDQuNiAwIDc2LjUgNDMgNjMuNyA4NS43TDM1NC4xIDMyMCA0MTYgMzIwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwIDEuMS01LjIgMS42LTEwLjUgMS42LTE2IDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOC0xOC43LTM1LjctNTYuMS02MC05OS4yLTYwLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEyIDAgNy4xIC43IDE0LjEgMS45IDIwLjgtMzguMyAxMi42LTY1LjkgNDguNy02NS45IDkxLjJ6TTE2MC42IDQwMGw2MS44IDAtMzEuMiAxMDQuMWMtMy42IDExLjkgNS4zIDIzLjkgMTcuOCAyMy45IDQuNiAwIDktMS43IDEyLjQtNC43TDM2Mi41IDM5Ni45YzMuNS0zLjEgNS41LTcuNiA1LjUtMTIuNCAwLTkuMi03LjQtMTYuNi0xNi42LTE2LjZsLTYxLjggMCAzMS4yLTEwNC4xYzMuNi0xMS45LTUuMy0yMy45LTE3LjgtMjMuOS00LjYgMC05IDEuNy0xMi40IDQuN0wxNDkuNSAzNzEuMWMtMy41IDMuMS01LjUgNy42LTUuNSAxMi40IDAgOS4yIDcuNCAxNi42IDE2LjYgMTYuNnoiXX0scER0PUk0ZSxoRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXRoZXJuZXQiLGljb246WzUxMiw1MTIsW10sImY3OTYiLCJNMCAyMjRMMCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDY0IDAgMC0xMDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDEwNCA2NCAwIDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxMDQgNjQgMCAwLTEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTA0IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJsLTMyIDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDE2MCA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAzMi0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeiJdfSxQNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaHJ5dm5pYS1zaWduIixpY29uOlszODQsNTEyLFs4MzcyLCJocnl2bmlhIl0sImY2ZjIiLCJNMzM2IDE0OS40QzMzNiA3NyAyNjguNSAyMy41IDE5OCA0MC4xTDkzLjIgNjQuOUM3NiA2OC45IDY1LjQgODYuMiA2OS40IDEwMy40czIxLjMgMjcuOSAzOC41IDIzLjhsMTA0LjgtMjQuN2MzMC4zLTcuMSA1OS4zIDE1LjggNTkuMyA0Ni45IDAgMTcuNi05LjYgMzMuOC0yNSA0Mi4zbC0uNyAuNC0yMjIuMyAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzNiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMi40IDBjNS41LTEzLjMgOC40LTI3LjggOC40LTQyLjZ6TTM2MCAyNzJMMjQgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDMzLjMgMGMtNi4xIDEzLjQtOS4zIDI4LjEtOS4zIDQzLjMgMCA2NC4xIDU2LjkgMTEzLjQgMTIwLjQgMTA0LjJsMTM3LjktMTkuOWMxNy41LTIuNSAyOS42LTE4LjcgMjcuMS0zNi4ycy0xOC44LTI5LjYtMzYuMi0yNy4xTDE1OS4yIDQwNC4yYy0yNC45IDMuNi00Ny4yLTE1LjctNDcuMi00MC45IDAtMTUuMSA4LjItMjguOSAyMS40LTM2LjJsMTMtNy4xIDIxMy42IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6Il19LGZEdD1QNGUscEU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZXllLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmMDcwIiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMjA0LjUgMTM4LjdjMjMuNS0xNi44IDUyLjQtMjYuNyA4My41LTI2LjcgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCAzMS4xLTkuOSA1OS45LTI2LjcgODMuNWwtMzQuNy0zNC43YzEyLjctMjEuNCAxNy00Ny43IDEwLjEtNzMuNy0xMy43LTUxLjItNjYuNC04MS42LTExNy42LTY3LjktOC42IDIuMy0xNi43IDUuNy0yNCAxMGwtMzQuNy0zNC43ek0zMjUuMyAzOTUuMWMtMTEuOSAzLjItMjQuNCA0LjktMzcuMyA0LjktNzkuNSAwLTE0NC02NC41LTE0NC0xNDQgMC0xMi45IDEuNy0yNS40IDQuOS0zNy4zTDY5LjQgMTM5LjJjLTMyLjYgMzYuOC01NSA3NS44LTY2LjkgMTA0LjUtMy4zIDcuOS0zLjMgMTYuNyAwIDI0LjYgMTQuOSAzNS43IDQ2LjIgODcuNyA5MyAxMzEuMSA0Ny4xIDQzLjcgMTExLjggODAuNiAxOTIuNiA4MC42IDM3LjMgMCA3MS4yLTcuOSAxMDEuNS0yMC42bC02NC4yLTY0LjJ6Il19LE40ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LWZsYXRiZWQtc3VpdGNhc2UiLGljb246WzU3Niw1MTIsWyJsdWdnYWdlLWNhcnQiXSwiZjU5ZCIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEw0OCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMjg4YzAgOC44IDcuMiAxNiAxNiAxNmw0MDAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzQuNyAwYzEuOCA1IDIuNyAxMC40IDIuNyAxNiAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTUuNiAxLTExIDIuNy0xNmwtMTk3LjUgMGMxLjggNSAyLjcgMTAuNCAyLjcgMTYgMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC02IDEuMS0xMS43IDMuMS0xNy0zOC4xLTYuMi02Ny4xLTM5LjItNjcuMS03OUw2NCA4MGMwLTguOC03LjItMTYtMTYtMTZMMzIgNjRDMTQuMyA2NCAwIDQ5LjcgMCAzMnpNMTc2IDE0NGMwLTI2LjUgMjEuNS00OCA0OC00OGwzMiAwIDAtMjRjMC0zMC45IDI1LjEtNTYgNTYtNTZsNjQgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDI0IDMyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNDRjMCAyNi41LTIxLjUgNDgtNDggNDhsLTI0MCAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE0NHpNMzg0IDk2bDAtMjRjMC00LjQtMy42LTgtOC04bC02NCAwYy00LjQgMC04IDMuNi04IDhsMCAyNCA4MCAweiJdfSxtRHQ9TjRlLGdEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyYWRpYXRpb24iLGljb246WzU3Niw1MTIsW10sImY3YjkiLCJNNDQ2LjIgMzQuNWMtMTQuMi0xMC4xLTMzLjUtNC42LTQyLjIgMTAuNUwzMzEuNiAxNzAuM2MzMS4zIDE1LjggNTIuOCA0OC4zIDUyLjggODUuN2wxNDQgMGMxNy43IDAgMzIuMi0xNC40IDMwLjEtMzEuOS05LjEtNzguMS01MS40LTE0Ni4xLTExMi4zLTE4OS42ek0xNzIuNyA0NC45QzE2NCAyOS44IDE0NC43IDI0LjMgMTMwLjUgMzQuNSA2OS42IDc3LjkgMjcuMyAxNDUuOSAxOC4yIDIyNC4xIDE2LjEgMjQxLjYgMzAuNyAyNTYgNDguMyAyNTZsMTQ0IDBjMC0zNy41IDIxLjUtNjkuOSA1Mi44LTg1LjdMMTcyLjcgNDQuOXptLTkuNCA0MTYuOGMtOC43IDE1LjEtMy44IDM0LjUgMTIgNDEuOCAzNC40IDE1LjcgNzIuNyAyNC41IDExMyAyNC41czc4LjYtOC44IDExMy0yNC41YzE1LjgtNy4yIDIwLjctMjYuNyAxMi00MS44TDM0MSAzMzYuM2MtMTUuMSA5LjktMzMuMiAxNS43LTUyLjYgMTUuN3MtMzcuNS01LjgtNTIuNi0xNS43TDE2My4zIDQ2MS43ek0yODguMyAzMDRhNDggNDggMCAxIDAgLS43LTk2IDQ4IDQ4IDAgMSAwIC43IDk2eiJdfSxiRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS13b3JkIixpY29uOlszODQsNTEyLFtdLCJmMWMyIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIxMy41IDBjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgMTI1LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHptMjA4LTUuNWwwIDkzLjVjMCAxMy4zIDEwLjcgMjQgMjQgMjRMMzI1LjUgMTc2IDIwOCA1OC41ek0xMzUuNCAyNzQuOGMtMi45LTEyLjktMTUuNy0yMS4xLTI4LjYtMTguMnMtMjEuMSAxNS43LTE4LjIgMjguNmwzMiAxNDRjMi4zIDEwLjUgMTEuNCAxOC4yIDIyLjIgMTguOHMyMC42LTYuMSAyNC0xNi40bDI1LjItNzUuNyAyNS4yIDc1LjdjMy40IDEwLjIgMTMuMiAxNi45IDI0IDE2LjRzMTkuOS04LjIgMjIuMi0xOC44bDMyLTE0NGMyLjktMTIuOS01LjMtMjUuOC0xOC4yLTI4LjZzLTI1LjggNS4zLTI4LjYgMTguMmwtMTMuMiA1OS40LTIwLjYtNjEuOGMtMy4zLTkuOC0xMi40LTE2LjQtMjIuOC0xNi40cy0xOS41IDYuNi0yMi44IDE2LjRsLTIwLjYgNjEuOC0xMy4yLTU5LjR6Il19LEY0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJiZWQtcHVsc2UiLGljb246WzY0MCw1MTIsWyJwcm9jZWR1cmVzIl0sImY0ODciLCJNNTMxLjItMjIuNEw1NzIgMzIgNjE2IDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC01NiAwYy03LjYgMC0xNC43LTMuNi0xOS4yLTkuNmwtMjQuMS0zMi4xLTQ3IDk5LjljLTMuNyA3LjgtMTEuMyAxMy4xLTE5LjkgMTMuN3MtMTYuOS0zLjQtMjEuNy0xMC42TDM4Ny4yIDgwIDM0NCA4MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw1NiAwYzggMCAxNS41IDQgMjAgMTAuN2wyNC40IDM2LjYgNDUuOS05Ny41YzMuNi03LjYgMTAuOS0xMi44IDE5LjMtMTMuN3MxNi42IDIuNyAyMS42IDkuNXpNMzIwIDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5LjUgMCAyNi42IDM5LjljMTQuNCAyMS42IDM5LjMgMzMuOCA2NS4yIDMxLjlzNDguOC0xNy42IDU5LjgtNDEuMUw1MjcgMTI5LjJjNDUuOSA3LjIgODEgNDYuOSA4MSA5NC44bDAgMjI0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjQtNDQ4IDAgMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMkwzMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlM5NiA0Ni4zIDk2IDY0bDAgMjI0IDIyNCAwIDAtMTI4ek0xNDQgMTkyYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHoiXX0sdkR0PUY0ZSx4RHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudHMiLGljb246WzU3Niw1MTIsW10sImU1ODIiLCJNNTM5LjkgMzUybC05NS42IDAtOC40LTY2LjFjLTIuOS0yMy4yLTE1LjktNDMuOS0zNS40LTU2LjhMMjUyLjIgMTMxLjVjLTE4LTExLjktMzkuNy0xNS43LTYwLjEtMTEuNSAyLjUtNC4zIDUuOS03LjkgMTAuMS0xMC43TDM1MC42IDExLjZjMTAuNy03IDI0LjUtNyAzNS4yIDBsMTQ4LjQgOTcuN2M3LjggNS4xIDEzIDEzLjQgMTQuMiAyMi43bDIzLjMgMTg0YzIuNCAxOS4xLTEyLjUgMzYtMzEuNyAzNnpNNC44IDQ3NmwyMy4zLTE4NGMxLjItOS4zIDYuMy0xNy42IDE0LjItMjIuN2wxNDguNC05Ny43YzEwLjctNyAyNC41LTcgMzUuMiAwbDE0OC40IDk3LjdjNy44IDUuMSAxMyAxMy40IDE0LjIgMjIuN2wyMy4zIDE4NGMyLjQgMTkuMS0xMi41IDM2LTMxLjcgMzZsLTQ5LjcgMGMtMTEuMiAwLTIxLjUtNS44LTI3LjMtMTUuNGwtNzctMTI2LjdjLTEuNy0yLjgtNC44LTQuNi04LjEtNC42LTUuMyAwLTkuNSA0LjMtOS41IDkuNWwwIDEwNS4yYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDM2LjUgNTEyYy0xOS4zIDAtMzQuMi0xNi45LTMxLjctMzZ6Il19LGhFPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im11Zy1ob3QiLGljb246WzU3Niw1MTIsWzk3NDldLCJmN2I2IiwiTTE1Mi0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFjMTYuMyAxNC4zIDIzLjggMjEuOCAyMy44IDM3LjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMTgzLjUgMzEuNyAxNzYgMjQuMSAxNzYgOCAxNzYtNS4zIDE2NS4zLTE2IDE1Mi0xNnpNOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDE5MmMwIDUzIDQzIDk2IDk2IDk2bDE5MiAwYzQxLjggMCA3Ny40LTI2LjcgOTAuNS02NGw1LjUgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFM1MTguNyAxOTIgNDQ4IDE5Mkw5NiAxOTJ6TTQ0OCAzODRsMC0xMjhjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjR6TTI4OCA4YzAtMTMuMy0xMC43LTI0LTI0LTI0UzI0MC01LjMgMjQwIDhjMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFjMTYuMyAxNC4zIDIzLjggMjEuOCAyMy44IDM3LjkgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMjk1LjUgMzEuNyAyODggMjQuMSAyODggOHoiXX0sTzRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvbHQiLGljb246WzQ0OCw1MTIsWzk4ODksInphcCJdLCJmMGU3IiwiTTMzOC44LTkuOWMxMS45IDguNiAxNi4zIDI0LjIgMTAuOSAzNy44TDI3MS4zIDIyNCA0MTYgMjI0YzEzLjUgMCAyNS41IDguNCAzMC4xIDIxLjFzLjcgMjYuOS05LjYgMzUuNWwtMjg4IDI0MGMtMTEuMyA5LjQtMjcuNCA5LjktMzkuMyAxLjNzLTE2LjMtMjQuMi0xMC45LTM3LjhMMTc2LjcgMjg4IDMyIDI4OGMtMTMuNSAwLTI1LjUtOC40LTMwLjEtMjEuMXMtLjctMjYuOSA5LjYtMzUuNWwyODgtMjQwYzExLjMtOS40IDI3LjQtOS45IDM5LjMtMS4zeiJdfSx5RHQ9TzRlLHdEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJqYXIiLGljb246WzMyMCw1MTIsW10sImU1MTYiLCJNMzItOGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwyMDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw1NiAxNkM0Mi43IDE2IDMyIDUuMyAzMi04ek0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGwxOTIgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4em05NiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0xMjhjMC0xNy43LTE0LjMtMzItMzItMzJMOTYgMTkyeiJdfSxNRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJ1Y2stcGxhbmUiLGljb246WzY0MCw1MTIsW10sImU1OGYiLCJNMTQ0IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAzMjBjMCAzMi41IDEyLjEgNjIuMSAzMiA4NC43bDAgMjcuM2MwIDcuMSAuOSAxNC4xIDIuNyAyMC43TDE5MiA0ODAgODMuOSA1MDdDNzMuOCA1MDkuNiA2NCA1MDEuOSA2NCA0OTEuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNzQtNTkuMiAwLTU3LjYtMTIyLjEgNDguOEMxMS40IDM5NS40IDAgMzg3LjcgMCAzNzYuNGwwLTQ0YzAtOCAzLTE1LjYgOC4zLTIxLjVMMTQ0IDE2MS42IDE0NCA0OHptMjI0IDgwbDE5MiAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTYwYzAgMjYuMi0xMi42IDQ5LjQtMzIgNjRsMCA0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTMyLTE2MCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00OGMtMTkuNC0xNC42LTMyLTM3LjgtMzItNjRsMC0xNjBjMC00NC4yIDM1LjgtODAgODAtODB6bTAgMTc2bDE5MiAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJsLTEyOCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDMyem0wIDg4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGtEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctaGVhcnQiLGljb246WzU3Niw1MTIsW10sImY0YmUiLCJNMjc5LjYgMzFDMjY1LjUgMTEuNSAyNDIuOSAwIDIxOC45IDAgMTc3LjUgMCAxNDQgMzMuNSAxNDQgNzQuOWwwIDIuNGMwIDY0LjQgODIgMTMzLjQgMTIyLjIgMTYzLjMgMTMgOS43IDMwLjUgOS43IDQzLjUgMCA0MC4yLTMwIDEyMi4yLTk4LjkgMTIyLjItMTYzLjNsMC0yLjRjMC00MS40LTMzLjUtNzQuOS03NC45LTc0LjktMjQgMC00Ni42IDExLjUtNjAuNyAzMUwyODggNDIuNyAyNzkuNiAzMXpNMTA5LjMgMzQxLjVMNjYuNyAzODQgMzIgMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyMC41IDBjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM2MxNy44LTEzLjEgMjEuNi0zOC4xIDguNS01NS45cy0zOC4xLTIxLjYtNTUuOS04LjVMMzkyLjYgNDE2IDI4MCA0MTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsNzIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMTUyLjIgMGMtMzMuOSAwLTY2LjUgMTMuNS05MC41IDM3LjV6Il19LE9wPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXJvdGF0ZS1sZWZ0IixpY29uOls1MTIsNTEyLFs4NjM0LCJhcnJvdy1sZWZ0LXJvdGF0ZSIsImFycm93LXJvdGF0ZS1iYWNrIiwiYXJyb3ctcm90YXRlLWJhY2t3YXJkIiwidW5kbyJdLCJmMGUyIiwiTTI1NiA2NGMtNTYuOCAwLTEwNy45IDI0LjctMTQzLjEgNjRsNDcuMSAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJMMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBTNjQgMTQuMyA2NCAzMmwwIDU0LjdDMTEwLjkgMzMuNiAxNzkuNSAwIDI1NiAwIDM5Ny40IDAgNTEyIDExNC42IDUxMiAyNTZTMzk3LjQgNTEyIDI1NiA1MTJjLTg3IDAtMTYzLjktNDMuNC0yMTAuMS0xMDkuNy0xMC4xLTE0LjUtNi42LTM0LjQgNy45LTQ0LjZzMzQuNC02LjYgNDQuNiA3LjljMzQuOCA0OS44IDkyLjQgODIuMyAxNTcuNiA4Mi4zIDEwNiAwIDE5Mi04NiAxOTItMTkyUzM2MiA2NCAyNTYgNjR6Il19LFNEdD1PcCx6RHQ9T3AsQ0R0PU9wLFREdD1PcCxSNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1hbmdyeSIsaWNvbjpbNTEyLDUxMixbMTI4NTQ0LCJhbmdyeSJdLCJmNTU2IiwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDAgMjU2IDI1NiAwIDEgMSAtNTEyIDB6TTI1NiAzNjhjMjQuMSAwIDQ1LjQgMTEuOCA1OC41IDMwIDcuNyAxMC44IDIyLjcgMTMuMiAzMy41IDUuNXMxMy4yLTIyLjcgNS41LTMzLjVjLTIxLjctMzAuMi01Ny4zLTUwLTk3LjUtNTBzLTc1LjcgMTkuOC05Ny41IDUwYy03LjcgMTAuOC01LjMgMjUuOCA1LjUgMzMuNXMyNS44IDUuMyAzMy41LTUuNWMxMy4xLTE4LjIgMzQuNC0zMCA1OC41LTMwem0tODAtOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0uMyA5LjcgMy4yYzEwLjUgMy41IDIxLjgtMi4yIDI1LjMtMTIuNnMtMi4yLTIxLjgtMTIuNi0yNS4zbC05Ni0zMmMtMTAuNS0zLjUtMjEuOCAyLjItMjUuMyAxMi42czIuMiAyMS44IDEyLjYgMjUuM2wyOC45IDkuNmMtNC4xIDUuNC02LjYgMTIuMS02LjYgMTkuNCAwIDE3LjcgMTQuMyAzMiAzMiAzMnptMTkyLTMyYzAtNy4zLTIuNC0xNC02LjYtMTkuNGwyOC45LTkuNmMxMC41LTMuNSAxNi4xLTE0LjggMTIuNi0yNS4zcy0xNC44LTE2LjEtMjUuMy0xMi42bC05NiAzMmMtMTAuNSAzLjUtMTYuMSAxNC44LTEyLjYgMjUuM3MxNC44IDE2LjEgMjUuMyAxMi42bDkuNy0zLjIgMCAuM2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyeiJdfSxfRHQ9UjRlLExEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJidXJzdCIsaWNvbjpbNTEyLDUxMixbXSwiZTRkYyIsIk0zNy42IDQuMkMyOC0yLjMgMTUuMi0xLjEgNyA3Uy0yLjMgMjggNC4yIDM3LjZsMTEyIDE2My4zLTk5LjYgMzIuM0M2LjcgMjM2LjQgMCAyNDUuNiAwIDI1NnM2LjcgMTkuNiAxNi42IDIyLjhsMTAzLjEgMzMuNC01Mi45IDEwMC42Yy00LjkgOS4zLTMuMiAyMC43IDQuMyAyOC4xczE4LjggOS4yIDI4LjEgNC4zbDEwMC42LTUyLjkgMzMuNCAxMDMuMWMzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZzMTkuNi02LjcgMjIuOC0xNi42bDMzLjQtMTAzLjEgMTAwLjYgNTIuOWM5LjMgNC45IDIwLjcgMy4yIDI4LjEtNC4zczkuMi0xOC44IDQuMy0yOC4xbC01Mi45LTEwMC42IDEwMy4xLTMzLjRjOS45LTMuMiAxNi42LTEyLjQgMTYuNi0yMi44cy02LjctMTkuNi0xNi42LTIyLjhsLTEwNi41LTM0LjUgMjUuNy03MC40YzMuMi04LjggMS0xOC42LTUuNi0yNS4ycy0xNi40LTguOC0yNS4yLTUuNmwtNzAuNCAyNS43LTM0LjUtMTA2LjVDMjc1LjYgNi43IDI2Ni40IDAgMjU2IDBzLTE5LjYgNi43LTIyLjggMTYuNkwyMDAuOSAxMTYuMiAzNy42IDQuMnoiXX0sQUR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InoiLGljb246WzM4NCw1MTIsWzEyMl0sIjVhIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzIwIDBjMTIuNCAwIDIzLjcgNy4yIDI5IDE4LjRzMy42IDI0LjUtNC40IDM0LjFMMTAwLjMgNDE2IDM1MiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNDgwYy0xMi40IDAtMjMuNy03LjItMjktMTguNHMtMy42LTI0LjUgNC40LTM0LjFMMjgzLjcgOTYgMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHoiXX0sQjRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmRhZ2UiLGljb246WzU3Niw1MTIsWzEyOTY1NywiYmFuZC1haWQiXSwiZjQ2MiIsIk00NjQgNDE2bDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xOTJjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTQ4IDAgMCAzMjB6TTQxNiA5NmwtMjU2IDAgMCAzMjAgMjU2IDAgMC0zMjB6TTY0IDk2QzI4LjcgOTYgMCAxMjQuNyAwIDE2MEwwIDM1MmMwIDM1LjMgMjguNyA2NCA2NCA2NGw0OCAwIDAtMzIwLTQ4IDB6TTIxNiAyMDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjE2IDMwNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMjAtMjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4eiJdfSxERHQ9QjRlLEVEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwbGFuZS1jaXJjbGUtZXhjbGFtYXRpb24iLGljb246WzY0MCw1MTIsW10sImU1NTYiLCJNMjMyIDI0YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZsMCAxMjcuMyA3OCA3MS41Yy02OS4zIDI5LTExOCA5Ny40LTExOCAxNzcuMiAwIDQ5LjMgMTguNiA5NC4zIDQ5LjEgMTI4LjNMMjg4IDUxMiAxNzkuOSA1MzljLTEwLjEgMi41LTE5LjktNS4xLTE5LjktMTUuNWwwLTE5LjhjMC00LjkgMi4yLTkuNSA2LTEyLjVsNjYtNTIuOCAwLTk5LjctMTYyLjkgNTQuM0M1OC43IDM5Ni40IDQ4IDM4OC43IDQ4IDM3Ny44bDAtNDMuN2MwLTkgMy44LTE3LjUgMTAuNC0yMy42TDIzMiAxNTEuMyAyMzIgMjR6TTQ5NiAyNTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDIyOGEyMCAyMCAwIDEgMCAwLTQwIDIwIDIwIDAgMSAwIDAgNDB6bTAtMTgwYy04LjggMC0xNiA3LjItMTYgMTZsMCA4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtODBjMC04LjgtNy4yLTE2LTE2LTE2eiJdfSwkRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVzLXNpZGUiLGljb246WzY0MCw1MTIsW10sImU4MWQiLCJNNDgwIDBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRsLTUuNiAwYy0xMy4yIDM3LjMtNDguNiA2NC05MC40IDY0cy03Ny4zLTI2LjctOTAuNC02NGwtMTM5LjEgMGMtMTMuMiAzNy4zLTQ4LjcgNjQtOTAuNCA2NHMtNzcuMi0yNi43LTkwLjQtNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNDMgNDMgMCA5NiAwTDQ4MCAwek0xNjAgMzY4YTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnptMzIwIDBhNDggNDggMCAxIDAgMCA5NiA0OCA0OCAwIDEgMCAwLTk2em0wLTMwNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTUzLTQzLTk2LTk2LTk2ek0yNDggMjI0bDEwNCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTEwNCAwIDAgMTYwek05NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDQgMCAwLTE2MC0xMDQgMHoiXX0sSUR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJ1Z3MiLGljb246WzU3Niw1MTIsW10sImU0ZDAiLCJNNDQ3LjUgMTc0LjZjOC44LTguNCAyMi43LTguOSAzMi4yLS44czExIDIxLjkgNC4xIDMxLjlsLTEuNSAxLjktMjMgMjYuN2MyNi43IDEzLjUgNDYuMyAzOS4xIDUxLjQgNjkuNmwyNS4zIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI0IDAgMCAzMiAyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0yNS4zIDBjLTcuNiA0NS40LTQ3LjEgODAtOTQuNyA4MHMtODctMzQuNi05NC43LTgwTDI5NiA0MzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjQgMCAwLTMyLTI0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMjUuMyAwYzUuMS0zMC41IDI0LjctNTYuMSA1MS40LTY5LjZsLTIyLjktMjYuN2MtOC42LTEwLjEtNy41LTI1LjIgMi42LTMzLjhzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44em0tMjU2LTE5MmM4LjgtOC40IDIyLjctOC45IDMyLjItLjhzMTEgMjEuOSA0LjEgMzEuOWwtMS41IDEuOS0yMyAyNi43QzIzMCA1NS45IDI0OS41IDgxLjUgMjU0LjcgMTEybDI1LjMgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMjQgMCAwIDMyIDI0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTI1LjMgMGMtNy42IDQ1LjQtNDcuMSA4MC05NC43IDgwcy04Ny0zNC42LTk0LjctODBMNDAgMjQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI0IDAgMC0zMi0yNCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDI1LjMgMEM3MC41IDgxLjUgOTAgNTUuOSAxMTYuNyA0Mi40TDkzLjggMTUuNkM4NS4yIDUuNiA4Ni4zLTkuNiA5Ni40LTE4LjJzMjUuMi03LjUgMzMuOCAyLjZsMjkuOCAzNC44IDI5LjgtMzQuOCAxLjctMS44eiJdfSxINGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmVlci1tdWctZW1wdHkiLGljb246WzU3Niw1MTIsWyJiZWVyIl0sImYwZmMiLCJNNjQgODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMjg4IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNiA2NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTA4LjJjMCAyNC4yLTEzLjcgNDYuNC0zNS40IDU3LjJMNDQ4IDM3MS44IDQ0OCAzODRjMCA1My00MyA5Ni05NiA5NmwtMTkyIDBjLTUzIDAtOTYtNDMtOTYtOTZMNjQgODB6TTQ0OCAzMDAuMmw2NC0zMiAwLTEwOC4yLTY0IDAgMCAxNDAuMnpNMTkyIDE1MmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDIwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtMjA4em04OCAwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0yMDh6bTg4IDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRsMCAyMDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTIwOHoiXX0sUER0PUg0ZSxORHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVyc29uLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTUzZSIsIk0yODAgMjRhNTYgNTYgMCAxIDAgLTExMiAwIDU2IDU2IDAgMSAwIDExMiAwem0yNCAyMTIuN0wzNDEgMjg2LjZjMTIuOC0xNy41IDI4LjUtMzIuNyA0Ni4zLTQ1bC01Ni4yLTc1LjdDMzA2IDEzMiAyNjYuMyAxMTIgMjI0IDExMnMtODIgMjAtMTA3LjIgNTMuOWwtNzAuNSA5NWMtMTAuNSAxNC4yLTcuNiAzNC4yIDYuNiA0NC44czM0LjIgNy42IDQ0LjgtNi42TDE0NCAyMzYuNyAxNDQgNTEyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNjBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjc1LjN6TTY0MCA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTg2LjYtNjAuOWM3LjEgNS4yIDguNyAxNS4yIDMuNSAyMi4zbC02NCA4OGMtMi44IDMuOC03IDYuMi0xMS43IDYuNXMtOS4zLTEuMy0xMi42LTQuNmwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwyNi44IDI2LjggNTMtNzIuOWM1LjItNy4xIDE1LjItOC43IDIyLjQtMy41eiJdfSxGRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhcGxlciIsaWNvbjpbNjQwLDUxMixbXSwiZTVhZiIsIk02NDAgMjk5LjNMNjQwIDQzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEw2NCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMzg0IDAgMC00OC0zNTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMTYuNi0zMC4yLTUuNGMtMTkuNi0zLjUtMzMuOC0yMC41LTMzLjgtNDAuNCAwLTguOSAyLjktMTcuNSA4LjItMjQuNmwzNS42LTQ3LjVjMzIuOC00My44IDg0LjQtNjkuNiAxMzkuMS02OS42IDI3IDAgNTMuNiA2LjMgNzcuOCAxOC40TDU4Ni45IDIxMy41QzYxOS41IDIyOS43IDY0MCAyNjMgNjQwIDI5OS4zek00NDggMzA0bDAtMTYtMzIwLTU3LjEgMCA3My4xIDMyMCAweiJdfSxPRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtbWVkaWNhbC1jaXJjbGUtY2hlY2siLGljb246WzY0MCw1MTIsW10sImU1MTEiLCJNMzA5LjggOC42Yy0xMi4zLTExLjQtMzEuMy0xMS40LTQzLjUgMGwtMjI0IDIwOGMtOS42IDktMTIuOCAyMi45LTggMzUuMVM1MC44IDI3MiA2NCAyNzJsMTYgMCAwIDE3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGwxOTYgMGMtMjEuMi0yOS41LTM0LjMtNjUuMy0zNS45LTEwNEwyNzIgNDA4Yy04LjggMC0xNi03LjItMTYtMTZsMC00MC00MCAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZsNDAgMCAwLTQwYzAtOC44IDcuMi0xNiAxNi0xNmwzMiAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDQwIDIwIDBjMzQuOS00OC41IDkxLjctODAgMTU2LTgwIDEwLjcgMCAyMS4xIC45IDMxLjMgMi41TDMwOS44IDguNnpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LFJEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJuYWlyYS1zaWduIixpY29uOls0NDgsNTEyLFtdLCJlMWY2IiwiTTEyMi42IDQ2LjNjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzY0IDQ5LjkgNjQgNjRsMCAxOTItMzIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGwzMiAwIDAgMTQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNDQgODkuNSAwIDEwNy44IDE2MS44YzcuOCAxMS43IDIyLjQgMTcgMzUuOSAxMi45UzM4NCA0NjIuMSAzODQgNDQ4bDAtMTQ0IDMyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTMyIDAgMC0xOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAxOTItNTcuNSAwLTEzOS44LTIwOS43ek0yOTQuNSAzMDRsMjUuNSAwIDAgMzguMy0yNS41LTM4LjN6TTE4NS41IDI1NmwtNTcuNSAwIDAtODYuMyA1Ny41IDg2LjN6Il19LEhEPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndpZmkiLGljb246WzU3Niw1MTIsWyJ3aWZpLTMiLCJ3aWZpLXN0cm9uZyJdLCJmMWViIiwiTTI4OCA5NmMtOTAuOSAwLTE3My4yIDM2LTIzMy43IDk0LjYtMTIuNyAxMi4zLTMzIDEyLTQ1LjItLjdzLTEyLTMzIC43LTQ1LjJDODEuNyA3NC45IDE3OS45IDMyIDI4OCAzMlM0OTQuMyA3NC45IDU2Ni4zIDE0NC43YzEyLjcgMTIuMyAxMyAzMi42IC43IDQ1LjJzLTMyLjYgMTMtNDUuMiAuN0M0NjEuMiAxMzIgMzc4LjkgOTYgMjg4IDk2ek0yNDAgNDMyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE2OCAzMjYuMmMtMTEuNyAxMy4zLTMxLjkgMTQuNS00NS4yIDIuOHMtMTQuNS0zMS45LTIuOC00NS4yQzE2MSAyMzcuNCAyMjEuMSAyMDggMjg4IDIwOHMxMjcgMjkuNCAxNjggNzUuOGMxMS43IDEzLjMgMTAuNCAzMy41LTIuOCA0NS4ycy0zMy41IDEwLjQtNDUuMi0yLjhDMzc4LjYgMjkyLjkgMzM1LjggMjcyIDI4OCAyNzJzLTkwLjYgMjAuOS0xMjAgNTQuMnoiXX0sQkR0PUhELEhEdD1IRCx0Yj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtb25leS1jaGVjay1kb2xsYXIiLGljb246WzUxMiw1MTIsWyJtb25leS1jaGVjay1hbHQiXSwiZjUzZCIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNMjk2IDI4OGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bS0yNC04OGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTI4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek0xNDggMTQ0YzExIDAgMjAgOSAyMCAyMGwwIDQgOCAwYzExIDAgMjAgOSAyMCAyMHMtOSAyMC0yMCAyMGwtNDcuNSAwYy02LjkgMC0xMi41IDUuNi0xMi41IDEyLjUgMCA2LjEgNC40IDExLjMgMTAuNCAxMi4zbDQxLjcgN2MyNS4zIDQuMiA0My45IDI2LjEgNDMuOSA1MS44IDAgMjYuMS0xOSA0Ny43LTQ0IDUxLjhsMCA0LjdjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtNC0yNCAwYy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGw1NS41IDBjNi45IDAgMTIuNS01LjYgMTIuNS0xMi41IDAtNi4xLTQuNC0xMS4zLTEwLjQtMTIuM2wtNDEuNy03Qzk0LjUgMjY4IDc2IDI0Ni4xIDc2IDIyMC41IDc2IDE5MS43IDk5LjIgMTY4LjMgMTI4IDE2OGwwLTRjMC0xMSA5LTIwIDIwLTIweiJdfSxxRHQ9dGIscTRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImV5ZS1sb3ctdmlzaW9uIixpY29uOls1NzYsNTEyLFsibG93LXZpc2lvbiJdLCJmMmE4IiwiTTQxLTI0LjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwUy0yLjMtLjMgNyA5LjFsNTI4IDUyOGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTk2LjQtOTYuNGMyLjctMi40IDUuNC00LjggOC03LjIgNDYuOC00My41IDc4LjEtOTUuNCA5My0xMzEuMSAzLjMtNy45IDMuMy0xNi43IDAtMjQuNi0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xLTQ3LjEtNDMuNy0xMTEuOC04MC42LTE5Mi42LTgwLjYtNTYuOCAwLTEwNS42IDE4LjItMTQ2IDQ0LjJMNDEtMjQuOXpNMjA0LjUgMTM4LjdjMjMuNS0xNi44IDUyLjQtMjYuNyA4My41LTI2LjcgNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCAzMS4xLTkuOSA1OS45LTI2LjcgODMuNWwtMzQuNy0zNC43YzEyLjctMjEuNCAxNy00Ny43IDEwLjEtNzMuNy0xMy43LTUxLjItNjYuNC04MS42LTExNy42LTY3LjktOC42IDIuMy0xNi43IDUuNy0yNCAxMGwtMzQuNy0zNC43ek04OCAxNTcuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOUwzMjguMiA0NjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDg4IDE1Ny45ek00NS43IDI1MS4zYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDE4MS45IDQ1NS41YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0NS43IDI1MS4zeiJdfSxqRHQ9cTRlLGo0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtYXJyb3ctdXAiLGljb246WzUxMiw1MTIsWyJhcnJvdy1jaXJjbGUtdXAiXSwiZjBhYSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMTctMzc3bDgwIDgwYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTM5LTM5IDAgMTUwLjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xNTAuMS0zOSAzOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHoiXX0sVkR0PWo0ZSxVRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FtZXJhLXJldHJvIixpY29uOls1MTIsNTEyLFsxMjgyNDddLCJmMDgzIiwiTTAgNDE2bDAtMjA4IDEzNi4yIDBjMTMuNS0yMC4yIDMyLTM2LjggNTMuNy00OEwwIDE2MCAwIDEyNS43YzAtMzUuMyAyOC43LTY0IDY0LTY0bC4xIDBDNjUuMyA0NS4xIDc5LjEgMzIgOTYgMzJsMzIgMGMxNi45IDAgMzAuNyAxMy4xIDMxLjkgMjkuN2wzMi4xIDAgNTEuMi0yMy44YzguNC0zLjkgMTcuNi02IDI2LjktNkw0NDggMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NC0xOTAgMGMyMS43IDExLjIgNDAuMiAyNy44IDUzLjcgNDhsMTM2LjIgMCAwIDIwOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0ek0yNTYgMTkyYTk2LjEgOTYuMSAwIDEgMCAwIDE5Mi4xIDk2LjEgOTYuMSAwIDEgMCAwLTE5Mi4xeiJdfSxXRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2Fwc3VsZXMiLGljb246WzU3Niw1MTIsW10sImY0NmIiLCJNOTYgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhsMCAxMTItOTYgMCAwLTExMnptLTY0IDBsMCAyODhjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmwwLTEwNS44IDExNi4zIDE2OS41YzM1LjUgNTEuNyAxMDUuMyA2NC4zIDE1NiAyOC4xczYzLTEwNy41IDI3LjUtMTU5LjJMNDI3LjMgMTQ1LjNjLTM1LjUtNTEuNy0xMDUuMy02NC4zLTE1Ni0yOC4xLTUuNiA0LTEwLjcgOC40LTE1LjMgMTMuMWwwLTE4LjNDMjU2IDUwLjEgMjA1LjkgMCAxNDQgMFMzMiA1MC4xIDMyIDExMnpNMjk2LjYgMjQwLjJjLTE2LTIzLjMtMTAtNTUuMyAxMS45LTcxIDIxLjItMTUuMSA1MC41LTEwLjMgNjYgMTIuMmw2NyA5Ny42LTc5LjkgNTUuOS02NS05NC44eiJdfSxHRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicG9vIixpY29uOls1MTIsNTEyLFsxMjgxNjldLCJmMmZlIiwiTTI2OC45IC45Yy01LjUtLjctMTEgMS40LTE0LjUgNS43cy00LjYgMTAuMS0yLjggMTUuNGMyLjggOC4yIDQuMyAxNi45IDQuMyAyNi4xIDAgNDQuMS0zNS43IDc5LjktNzkuOCA4MEwxNjAgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDE5LjEgOC40IDM2LjMgMjEuNyA0OEwxMDQgMjQwYy0zOS44IDAtNzIgMzIuMi03MiA3MiAwIDIzLjIgMTEgNDMuOCAyOCA1Ny0zNC4xIDUuNy02MCAzNS4zLTYwIDcxIDAgMzkuOCAzMi4yIDcyIDcyIDcybDM2OCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcyIDAtMzUuNy0yNS45LTY1LjMtNjAtNzEgMTctMTMuMiAyOC0zMy44IDI4LTU3IDAtMzkuOC0zMi4yLTcyLTcyLTcybC0xMy43IDBjMTMuMy0xMS43IDIxLjctMjguOSAyMS43LTQ4IDAtMzUuMy0yOC43LTY0LTY0LTY0bC01LjUgMGMzLjUtMTAgNS41LTIwLjggNS41LTMyIDAtNDguNi0zNi4yLTg4LjgtODMuMS05NS4xek0xOTIgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptNjQgMTA4LjNjMCAyLjQtLjcgNC44LTIuMiA2LjctOC4yIDEwLjUtMzkuNSA0NS05My44IDQ1cy04NS42LTM0LjYtOTMuOC00NWMtMS41LTEuOS0yLjItNC4zLTIuMi02LjcgMC02LjggNS41LTEyLjMgMTIuMy0xMi4zbDE2Ny40IDBjNi44IDAgMTIuMyA1LjUgMTIuMyAxMi4zeiJdfSxWNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidm9sdW1lIixpY29uOls1MTIsNTEyLFsxMjgyNjUsInZvbHVtZS1tZWRpdW0iXSwiZjZhOCIsIk00OCAzNTJsNDggMCAxMzQuMSAxMTkuMmM2LjQgNS43IDE0LjYgOC44IDIzLjEgOC44IDE5LjIgMCAzNC44LTE1LjYgMzQuOC0zNC44bDAtMzc4LjRjMC0xOS4yLTE1LjYtMzQuOC0zNC44LTM0LjgtOC41IDAtMTYuNyAzLjEtMjMuMSA4LjhMOTYgMTYwIDQ4IDE2MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCA5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OHpNNDQxLjEgMTA3Yy0xMC4zLTguNC0yNS40LTYuOC0zMy44IDMuNXMtNi44IDI1LjQgMy41IDMzLjhDNDQzLjMgMTcwLjcgNDY0IDIxMC45IDQ2NCAyNTZzLTIwLjcgODUuMy01My4yIDExMS44Yy0xMC4zIDguNC0xMS44IDIzLjUtMy41IDMzLjhzMjMuNSAxMS44IDMzLjggMy41YzQzLjItMzUuMiA3MC45LTg4LjkgNzAuOS0xNDlzLTI3LjctMTEzLjgtNzAuOS0xNDl6bS02MC41IDc0LjVjLTEwLjMtOC40LTI1LjQtNi44LTMzLjggMy41cy02LjggMjUuNCAzLjUgMzMuOEMzNjEuMSAyMjcuNiAzNjggMjQxIDM2OCAyNTZzLTYuOSAyOC40LTE3LjcgMzcuM2MtMTAuMyA4LjQtMTEuOCAyMy41LTMuNSAzMy44czIzLjUgMTEuOCAzMy44IDMuNUM0MDIuMSAzMTIuOSA0MTYgMjg2LjEgNDE2IDI1NnMtMTMuOS01Ni45LTM1LjUtNzQuNXoiXX0sWUR0PVY0ZSxaRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZWxldmF0b3IiLGljb246WzUxMiw1MTIsW10sImUxNmQiLCJNMjkyLjctNC43bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTNDM4LjUtMzIgNDMyLTMyTDMwNC0zMmMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40em0tMTYwLTIyLjZsLTY0IDY0Yy00LjYgNC42LTUuOSAxMS41LTMuNSAxNy40UzczLjUgNjQgODAgNjRsMTI4IDBjNi41IDAgMTIuMy0zLjkgMTQuOC05LjlzMS4xLTEyLjktMy41LTE3LjRsLTY0LTY0Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHpNNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NEwwIDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAxMjh6bTk2IDk2YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNODAgNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDY0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxNmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnptMTkyIDBjMC0yNi41IDIxLjUtNDggNDgtNDhsNjQgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE2em0zMi0xMjhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHoiXX0sWER0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhZyIsaWNvbjpbNTEyLDUxMixbMTI3OTkxXSwiZjAyYiIsIk0zMi41IDk2bDAgMTQ5LjVjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsMTkyIDE5MmMyNSAyNSA2NS41IDI1IDkwLjUgMEw0ODMuMiAzMzMuM2MyNS0yNSAyNS02NS41IDAtOTAuNWwtMTkyLTE5MkMyNzkuMiAzOC43IDI2MyAzMiAyNDYgMzJMOTYuNSAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTExMiAxNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LFFEdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmaWxlLWNpcmNsZS1taW51cyIsaWNvbjpbNTc2LDUxMixbXSwiZTRlZCIsIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDE4MCAwYy0yMi43LTMxLjUtMzYtNzAuMi0zNi0xMTIgMC0xMDAuNiA3Ny40LTE4My4yIDE3Ni0xOTEuM2wwLTM4LjFjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjkwLjcgMTguN0MyNzguNyA2LjcgMjYyLjUgMCAyNDUuNSAwTDk2IDB6TTM1Ny41IDE3NkwyNjQgMTc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNEwyNDAgNTguNSAzNTcuNSAxNzZ6TTU3NiA0MDBhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTY0IDBjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmwxMjggMGM4LjggMCAxNiA3LjIgMTYgMTZ6Il19LFU0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJkb3duLWxvbmciLGljb246WzMyMCw1MTIsWyJsb25nLWFycm93LWFsdC1kb3duIl0sImYzMDkiLCJNMTM3LjQgNTM0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVMzMDAuOSAzNTIgMjg4IDM1MmwtNjQgMCAwLTMzNmMwLTI2LjUtMjEuNS00OC00OC00OGwtMzIgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzMzYtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzOTcuNSA5LjQgNDA2LjZsMTI4IDEyOHoiXX0sSkR0PVU0ZSxLRHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29tcGFjdC1kaXNjIixpY29uOls1MTIsNTEyLFsxMjgxOTEsMTI4MTkyLDEyODQ0MF0sImY1MWYiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHptMjU2IDMyYTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptLTk2LTMyYTk2IDk2IDAgMSAwIDE5MiAwIDk2IDk2IDAgMSAwIC0xOTIgMHptLTU2LTE2YzAtMzIuNCAxNi4zLTY2LjYgNDIuOC05My4yUzIwNy42IDEwNCAyNDAgMTA0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0Yy00Ny45IDAtOTMuNyAyMy41LTEyNy4xIDU2LjlTNTYgMTkyLjEgNTYgMjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR6Il19LGVFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdWl0Y2FzZS1yb2xsaW5nIixpY29uOlszODQsNTEyLFtdLCJmNWMxIiwiTTE0NCAyNGMwLTQuNCAzLjYtOCA4LThsODAgMGM0LjQgMCA4IDMuNiA4IDhsMCA3Mi05NiAwIDAtNzJ6TTMyMCA5NmwtMzIgMCAwLTcyYzAtMzAuOS0yNS4xLTU2LTU2LTU2bC04MCAwQzEyMS4xLTMyIDk2LTYuOSA5NiAyNGwwIDcyLTMyIDBDMjguNyA5NiAwIDEyNC43IDAgMTYwTDAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI4OGMwLTM1LjMtMjguNy02NC02NC02NHpNMTIwIDIwOGwxNDQgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQ0IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgMTI4bDE0NCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sVzRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvb2stcXVyYW4iLGljb246WzQ0OCw1MTIsWyJxdXJhbiJdLCJmNjg3IiwiTTY0IDUxMmwyODggMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzIwYzAtNTMtNDMtOTYtOTYtOTZMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzMzZjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zTDMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwek0zNTIgMzg0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0yNTYgMCAwLTY0IDI1NiAwek0yNzMuMSAxNDQuNGMyLjUtNi4xIDExLjItNi4xIDEzLjcgMGwxMC4zIDI0LjggMjYuOCAyLjFjNi42IC41IDkuMiA4LjcgNC4yIDEzTDMwNy44IDIwMS45IDMxNCAyMjhjMS41IDYuNC01LjUgMTEuNS0xMS4xIDguMWwtMjIuOS0xNC0yMi45IDE0Yy01LjYgMy40LTEyLjYtMS42LTExLjEtOC4xbDYuMi0yNi4xLTIwLjQtMTcuNWMtNS00LjMtMi4zLTEyLjUgNC4yLTEzbDI2LjgtMi4xIDEwLjMtMjQuOHpNMTAwIDE5MmMwLTY4LjUgNTUuNS0xMjQgMTI0LTEyNCAyMy44IDAgNDYuMSA2LjcgNjUgMTguNCA0LjggMi45IDYuOSA4LjggNSAxNC4xcy03LjEgOC42LTEyLjcgOGMtMy4xLS4zLTYuMi0uNS05LjQtLjUtNDYuNCAwLTg0IDM3LjYtODQgODRzMzcuNiA4NCA4NCA4NGMzLjIgMCA2LjMtLjIgOS40LS41IDUuNi0uNiAxMC44IDIuNyAxMi43IDhzLS4zIDExLjItNSAxNC4xYy0xOC45IDExLjctNDEuMiAxOC40LTY1IDE4LjQtNjguNSAwLTEyNC01NS41LTEyNC0xMjR6Il19LHRFdD1XNGUsckV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBob25lLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJmM2RkIiwiTTUzNS0yNC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUw0MSA1MzcuMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwxNDEuNSAzNjguNkM4OS4yIDMxMC41IDUxLjYgMjM4LjggMzQuOCAxNTkuNCAxOC43IDgzLjEgNzMuOSAyMC42IDEzOC41IDIuOWw1LjUtMS41YzE5LjctNS40IDQwLjMgNC43IDQ4LjEgMjMuNWw0MC41IDk3LjNjNi45IDE2LjUgMi4xIDM1LjYtMTEuOCA0N2wtNDQuMSAzNi4xYzEyLjkgMjguNSAyOS42IDU0LjggNDkuNSA3OC41TDUzNS0yNC45em0tMTUwLjQgNTM0Yy02My0xMy40LTEyMS4zLTM5LjgtMTcxLjctNzYuM0wyOTcuOCAzNDhjMTIuMiA4LjIgMjUgMTUuNiAzOC4zIDIyLjJMMzc0LjcgMzIzYzExLjMtMTMuOSAzMC40LTE4LjYgNDctMTEuOEw1MTkgMzUxLjhjMTguOCA3LjggMjguOSAyOC40IDIzLjUgNDguMWwtMS41IDUuNWMtMTcuNiA2NC42LTgwLjIgMTE5LjgtMTU2LjQgMTAzLjd6Il19LGlFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1jaGVjayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NCIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNjQwIDQwMGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tODYuNi02MC45YzcuMSA1LjIgOC43IDE1LjIgMy41IDIyLjNsLTY0IDg4Yy0yLjggMy44LTcgNi4yLTExLjcgNi41cy05LjMtMS4zLTEyLjYtNC42bC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDI2LjggMjYuOCA1My03Mi45YzUuMi03LjEgMTUuMi04LjcgMjIuNC0zLjV6Il19LGFFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLWxvY2siLGljb246WzY0MCw1MTIsW10sImU0YTUiLCJNMjEuNSAxODEuMUw3OC4zIDY3LjRDODkuMiA0NS43IDExMS4zIDMyIDEzNS42IDMybDMwNC45IDBjMjQuMiAwIDQ2LjQgMTMuNyA1Ny4yIDM1LjRsNTUuNiAxMTEuMWMtOC4yLTEuNi0xNi42LTIuNS0yNS4yLTIuNS01My43IDAtOTkuNyAzMy4xLTExOC43IDgwbC01Ny4zIDAgMCAxNzZjMCAyNi41LTIxLjUgNDgtNDggNDhsLTE5MiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTE3Ni4xYy0yNi44LTEuOS00OC0yNC4zLTQ4LTUxLjYgMC04IDEuOS0xNiA1LjUtMjMuMnpNMTI4IDI1NmwwIDExMmMwIDguOCA3LjIgMTYgMTYgMTZsMTI4IDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMTEyLTE2MCAwem00MzIgNDguMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTQxNiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LEc0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJpbWFnZS1wb3J0cmFpdCIsaWNvbjpbMzg0LDUxMixbInBvcnRyYWl0Il0sImYzZTAiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0ek04MCAzNjhjMCA4LjggNy4yIDE2IDE2IDE2bDE5MiAwYzguOCAwIDE2LTcuMiAxNi0xNiAwLTQ0LjItMzUuOC04MC04MC04MGwtNjQgMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6TTE5MiAyNDhhNTYgNTYgMCAxIDAgMC0xMTIgNTYgNTYgMCAxIDAgMCAxMTJ6Il19LG5FdD1HNGUsb0V0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJyaWRnZS1sb2NrIixpY29uOls1NzYsNTEyLFtdLCJlNGNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsNDQ4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTggMCAwIDMyLjJjMTMuOCAuNiAyNy4yIDIuOCA0MCA2LjRsMCA1MC43Yy0xNC44LTYtMzEtOS4zLTQ4LTkuMy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLS40IC4zLS43IC42LTEuMSAxLTE3LjMtMjUtNDYuMi00MS4zLTc4LjktNDEuMy01MyAwLTk2IDQzLTk2IDk2bDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTMyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtOTRjMC0zOC44LTI2LjQtNzIuNi02NC04MmwwLTExMiA0MCAwIDAtNjQtOCAwQzE0LjMgOTYgMCA4MS43IDAgNjR6bTQyNCA2OC42bDAtMzYuNi04MCAwIDAgNjQgMTguOCAwYzE4LjItMTIuOCAzOC45LTIyLjIgNjEuMi0yNy40ek0yMTYgOTZsMCA2NCA4MCAwIDAtNjQtODAgMHptLTQ4IDBsLTgwIDAgMCA2NCA4MCAwIDAtNjR6TTQ5NiAzMDQuMWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMCAwLTQ3Ljl6TTM1MiA0MDBjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zbDAtNTAuNmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNTAuNmMxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjNsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTI4IDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtOTZ6Il19LHNFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW1tZXIiLGljb246WzY0MCw1MTIsWzEyODI5Nl0sImY2ZTMiLCJNMjQ2LjkgMTguM0wyNzEgMy44YzIxLjYtMTMgNDYuMy0xOS44IDcxLjUtMTkuOCAzNi44IDAgNzIuMiAxNC42IDk4LjIgNDAuN2w2My45IDYzLjljMTUgMTUgMjMuNCAzNS40IDIzLjQgNTYuNmwwIDMwLjkgMTkuNyAxOS43IDAgMGMxNS42LTE1LjYgNDAuOS0xNS42IDU2LjYgMHMxNS42IDQwLjkgMCA1Ni42bC02NCA2NGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZMNDY0IDI0MCA0MzMuMSAyNDBjLTIxLjIgMC00MS42LTguNC01Ni42LTIzLjRsLTQ5LjEtNDkuMWMtMTUtMTUtMjMuNC0zNS40LTIzLjQtNTYuNmwwLTEyLjdjMC0xMS4yLTUuOS0yMS43LTE1LjUtMjcuNGwtNDEuNi0yNWMtMTAuNC02LjItMTAuNC0yMS4yIDAtMjcuNHpNNTAuNyA0MDIuN2wyMjIuMS0yMjIuMSA5MC41IDkwLjUtMjIyLjEgMjIyLjFjLTI1IDI1LTY1LjUgMjUtOTAuNSAwcy0yNS02NS41IDAtOTAuNXoiXX0sWTRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXVwLTEtOSIsaWNvbjpbNTEyLDUxMixbInNvcnQtbnVtZXJpYy11cCJdLCJmMTYzIiwiTTE1MC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw5NiAxNDEuMyA5NiA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMwNi43IDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NnpNNDE4LjcgMzhjLTguMy02LTE5LjEtNy43LTI4LjgtNC40bC00OCAxNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDUuOS0yIDAgNTEuNi0xNiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE2IDAgMC05NmMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnpNMzY1LjEgNDMwLjZjLTkuNiAxNC44LTUuNCAzNC42IDkuNCA0NC4zczM0LjYgNS40IDQ0LjMtOS40bDQyLjEtNjQuOWMxMi40LTE5LjIgMTkuMS00MS42IDE5LjEtNjQuNSAwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjEgMjMuOSA2Ni43IDU2LjggNzYuNmwtMTEuNyAxOHpNMzc2IDMzNmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAweiJdfSxsRXQ9WTRlLGNFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaGVzcy1rbmlnaHQiLGljb246WzM4NCw1MTIsWzk4MjJdLCJmNDQxIiwiTTE5Mi0zMmMxMDYgMCAxOTIgODYgMTkyIDE5MmwwIDEzMy41YzAgMTctNi44IDMzLjItMTguNyA0NS4yTDMyMCAzODQgMzcwLjggNDM0LjdjOC41IDguNSAxMy4yIDIwIDEzLjIgMzIgMCAyNS0yMC4zIDQ1LjItNDUuMiA0NS4zTDQ1LjMgNTEyYy0yNSAwLTQ1LjItMjAuMy00NS4yLTQ1LjMgMC0xMiA0LjgtMjMuNSAxMy4yLTMyTDY0IDM4NCA2NCAzNDkuNGMwLTE4LjcgOC4yLTM2LjQgMjIuMy00OC42bDg5LjctNzYuOC00OCAwLTEyLjEgMTIuMWMtMTIuNyAxMi43LTMwIDE5LjktNDggMTkuOS0zNy41IDAtNjcuOS0zMC40LTY3LjktNjcuOWwwLTguN2MwLTIyLjggOC4yLTQ0LjkgMjMuMS02Mi4zTDk2IDMyIDk2IDBjMC0xNy43IDE0LjMtMzIgMzItMzJsNjQgMHpNMTYwIDcyYTI0IDI0IDAgMSAwIDAgNDggMjQgMjQgMCAxIDAgMC00OHoiXX0sZEV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhvdXNlLWZsb29kLXdhdGVyLWNpcmNsZS1hcnJvdy1yaWdodCIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZiIsIk0yODguNSAxMTJhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHpNMTQxLjIgNDQuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGw1NiA1NmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNTYgNTZjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMjguNy0yOC43LTg5LjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4OS40IDAtMjguNy0yOC43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnpNMzM2LjUgMTEyYzAgNzEuMS0zOC42IDEzMy4xLTk2IDE2Ni4zbDAgMTIuOGMyMi4xIDQuNSA0My40IDEzLjkgNjIuNCAyOC4yIDIyLjEgMTYuNiAyOS4xIDE2LjYgNTEuMiAwIDI3LjUtMjAuNyA1OS45LTMxLjIgOTIuNC0zMS40IDMzLjEtLjIgNjYuMyAxMC4yIDk0LjQgMzEuNCA2LjkgNS4yIDEyLjggOSAxOCAxMS43IC42IC4zIDEuMiAuNiAxLjggMSA0LjIgMi4zIDguNSA0LjYgMTIuNiAxLjUgNi00LjUgMTIuNi04IDE5LjMtMTAuNGwwLTExNS4yIDQuNSAwYzE1LjIgMCAyNy41LTEyLjMgMjcuNS0yNy41IDAtNy45LTMuNC0xNS41LTkuNC0yMC43TDQ0NC41IDEwLjVDNDM2LjggMy43IDQyNi44IDAgNDE2LjUgMHMtMjAuMyAzLjctMjggMTAuNUwzMjkuOSA2MS44YzQuMyAxNiA2LjYgMzIuOCA2LjYgNTAuMnptMzIgODhjMC0xMy4zIDEwLjctMjQgMjQtMjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0bC00OCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNGwwLTQ4ek00NzUuMSA0MTIuMWMxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDM5MS44IDI2NiAzNzMuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45YzIxLjMtMTYuMSA0OS45LTE2LjEgNzEuMiAwem0tNzEuMiA5NmMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNTMjkwIDQ4Ny44IDI2NiA0NjkuN2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN3MtNS45IDI1LjYgNC43IDMzLjZjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxyYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy11cC1yaWdodC1mcm9tLXNxdWFyZSIsaWNvbjpbNTEyLDUxMixbImV4dGVybmFsLWxpbmsiXSwiZjA4ZSIsIk0zMjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw4Mi43IDAtMjAxLjQgMjAxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDQ4IDEwOS4zIDQ0OCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkwzMjAgMHpNODAgOTZDMzUuOCA5NiAwIDEzMS44IDAgMTc2TDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDI1NiAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwbDAtODBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA4MGMwIDguOC03LjIgMTYtMTYgMTZMODAgNDQ4Yy04LjggMC0xNi03LjItMTYtMTZsMC0yNTZjMC04LjggNy4yLTE2IDE2LTE2bDgwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgOTZ6Il19LHVFdD1yYixwRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3ctZG93bi11cC1hY3Jvc3MtbGluZSIsaWNvbjpbNTEyLDUxMixbXSwiZTRhZiIsIk0yNjUuNCAxMDUuNGw5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtNDEuNC00MS40IDAgMTE0LjcgNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIwIDAgMCAxMTQuNyA0MS40LTQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEw5NiA0MDIuNyA5NiAyODggMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyMCAwIDAtMTE0LjctNDEuNCA0MS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3pNNDE2IDMzNmwwIDE0NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE0NCA2NCAwek05NiAxNzZMOTYgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDE0NC02NCAweiJdfSxaNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1ncmluLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUxNiwiZ3Jpbi1iZWFtIl0sImY1ODIiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNzYgMTgwYy0xNS41IDAtMjggMTIuNS0yOCAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4em0xMzIgMjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0zNy42IDMwLjQtNjggNjgtNjhzNjggMzAuNCA2OCA2OGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOHoiXX0saEV0PVo0ZSxYNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVjdGFuZ2xlLWFkIixpY29uOls1MTIsNTEyLFsiYWQiXSwiZjY0MSIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHpNNDE2IDE4NGwwIDE0NGMwIDEzLjMtMTAuNyAyNC0yNCAyNC03LjEgMC0xMy41LTMuMS0xNy45LTgtMTAuMiA1LjEtMjEuOCA4LTM0LjEgOC00MiAwLTc2LTM0LTc2LTc2czM0LTc2IDc2LTc2YzkuOSAwIDE5LjMgMS45IDI4IDUuM2wwLTIxLjNjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptLTQ4IDkyYTI4IDI4IDAgMSAwIC01NiAwIDI4IDI4IDAgMSAwIDU2IDB6TTE2MCAyMDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyIDQ4IDAgMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTE2IDB6bTMyIDk2bC00OCAwIDAgMjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMDRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTYgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEwNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTI0eiJdfSxmRXQ9WDRlLFE0ZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib29rLXRhbmFraCIsaWNvbjpbNDQ4LDUxMixbInRhbmFraCJdLCJmODI3IiwiTTM1MiA1MTJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDAtNjYuN0MxMy40IDM3NC43IDAgMzU2LjkgMCAzMzZMMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBMMzUyIDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMyMGMwIDUzLTQzIDk2LTk2IDk2em0zMi05NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMjU2IDAgMCA2NCAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnpNMTEzLjkgMjI5Yy0xLjIgMi0xLjkgNC4yLTEuOSA2LjYgMCA2LjkgNS42IDEyLjUgMTIuNSAxMi41bDU2LjkgMCAzMC41IDQ5LjJjMi42IDQuMiA3LjIgNi44IDEyLjIgNi44czkuNi0yLjYgMTIuMi02LjhsMzAuNS00OS4yIDU2LjkgMGM2LjkgMCAxMi41LTUuNiAxMi41LTEyLjUgMC0yLjMtLjYtNC42LTEuOS02LjZsLTI3LjgtNDUgMjcuOC00NWMxLjItMiAxLjktNC4yIDEuOS02LjYgMC02LjktNS42LTEyLjUtMTIuNS0xMi41bC01Ni45IDAtMzAuNS00OS4yQzIzMy42IDY2LjYgMjI5IDY0IDIyNCA2NHMtOS42IDIuNi0xMi4yIDYuOGwtMzAuNSA0OS4yLTU2LjkgMGMtNi45IDAtMTIuNSA1LjYtMTIuNSAxMi41IDAgMi4zIC42IDQuNiAxLjkgNi42bDI3LjggNDUtMjcuOCA0NXoiXX0sbUV0PVE0ZSxKNGU9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG90LXR1Yi1wZXJzb24iLGljb246WzQ0OCw1MTIsWyJob3QtdHViIl0sImY1OTMiLCJNMjQwIDQwYzAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMjAzLjUgOTMuMSAxOTIgNjcuMiAxOTIgNDAgMTkyIDI2LjcgMjAyLjcgMTYgMjE2IDE2czI0IDEwLjcgMjQgMjR6TTAgMzM2bDAtODBjMC0zNS4zIDI4LjctNjQgNjQtNjRsMTkuNyAwYzguMSAwIDE2LjIgMS42IDIzLjggNC42bDEzNy4xIDU0LjhjNy42IDMgMTUuNiA0LjYgMjMuOCA0LjZMMzg0IDI1NmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMzM2em05Ni0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtODBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTE1MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MHptMTA0LTI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC04MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzI4IDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0IDAgMTMuNiA1LjggMjYuNSAxNS44IDM1LjZsMjYuNSAyMy44YzI0IDIxLjYgMzcuNyA1Mi4zIDM3LjcgODQuNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE4LjctNy45LTM2LjQtMjEuOC00OC45bC0yNi41LTIzLjhDMzE1LjUgOTMuMSAzMDQgNjcuMiAzMDQgNDAgMzA0IDI2LjcgMzE0LjcgMTYgMzI4IDE2ek02NCA0MGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnoiXX0sZ0V0PUo0ZSxiRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmlsZS1oYWxmLWRhc2hlZCIsaWNvbjpbMzg0LDUxMixbXSwiZTY5OCIsIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NGwwIDI1NiAzODQgMCAwLTE0OS41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI1OC43IDE4LjdDMjQ2LjcgNi43IDIzMC41IDAgMjEzLjUgMEw2NCAwek0zMjUuNSAxNzZMMjMyIDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjA4IDU4LjUgMzI1LjUgMTc2ek0wIDM1MmwwIDY0IDY0IDAgMC02NC02NCAwek02NCA1MTJsMC02NC02NCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0em0zMiAwbDgwIDAgMC02NC04MCAwIDAgNjR6bTExMiAwbDgwIDAgMC02NC04MCAwIDAgNjR6bTExMiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bC02NCAwIDAgNjR6bTY0LTE2MGwtNjQgMCAwIDY0IDY0IDAgMC02NHoiXX0sSzRlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im91dGRlbnQiLGljb246WzQ0OCw1MTIsWyJkZWRlbnQiXSwiZjAzYiIsIk0uNCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzODQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzg0IDBDMTQuOCA5NiAuNCA4MS43IC40IDY0em0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDk2bDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNLjQgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zODQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TS43IDI2OC42Yy04LjItNi40LTguMi0xOC45IDAtMjUuM2wxMDEuOS03OS4zYzEwLjUtOC4yIDI1LjgtLjcgMjUuOCAxMi42bDAgMTU4LjZjMCAxMy4zLTE1LjMgMjAuOC0yNS44IDEyLjZMLjcgMjY4LjZ6Il19LHZFdD1LNGUseEV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcGVhY2UiLGljb246WzQ0OCw1MTIsWzk5OTZdLCJmMjViIiwiTTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjA4LTY0IDAgMC0yMDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTY0IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTY0ek02MS4zIDUxLjJMMTQzLjkgMjQwIDc0LjEgMjQwIDIuNyA3Ni44Qy00LjQgNjAuNiAzIDQxLjggMTkuMiAzNC43UzU0LjIgMzUgNjEuMyA1MS4yem0yNyAyMjEuM2wtLjItLjUgOTUuOSAwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwbC01NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDU2IDBjMzkuOCAwIDcyLTMyLjIgNzItNzJsMC0uNmM5LjQgNS40IDIwLjMgOC42IDMyIDguNiAxMy4yIDAgMjUuNC00IDM1LjYtMTAuOCA4LjcgMjQuOSAzMi41IDQyLjggNjAuNCA0Mi44IDExLjcgMCAyMi42LTMuMSAzMi04LjZsMCA4LjZjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBsLTYxLjcgMGMtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDY5LjUgNDUzLjVDNDUuNSA0MjkuNSAzMiAzOTYuOSAzMiAzNjNsMC0yN2MwLTMyLjcgMjQuNi01OS43IDU2LjMtNjMuNXoiXX0seUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYWQtc2lkZS12aXJ1cyIsaWNvbjpbNTEyLDUxMixbXSwiZTA2NCIsIk0zMjkuNyA0NDhjLTUuMSAwLTkuNyAzLjctOS43IDguOGwwIDcuMmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTYwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjMuNmMwLTEyLjYtNS4xLTI0LjUtMTMuMS0zNC4yLTMxLjgtMzguNy01MC45LTg4LjItNTAuOS0xNDIuMiAwLTEyMy43IDEwMC4zLTIyNCAyMjQtMjI0IDExMi43IDAgMjA2IDgzLjMgMjIxLjcgMTkxLjcgLjQgMyAxLjcgNS45IDMuNiA4LjNsMzUuOCA0Mi45YzcgOC40IDEwLjkgMTkuMSAxMC45IDMwLjEgMCAyNS45LTIxIDQ3LTQ3IDQ3bC0xIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0zOC4zIDB6TTIyNCA2NGMtMTMuMyAwLTI0IDEwLjctMjQgMjQgMCAyMi45LTI3LjcgMzQuNC00My45IDE4LjItOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMxNi4yIDE2LjIgNC43IDQzLjktMTguMiA0My45LTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRjMjIuOSAwIDM0LjQgMjcuNyAxOC4yIDQzLjktOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwYzE2LjItMTYuMiA0My45LTQuNyA0My45IDE4LjIgMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTIyLjkgMjcuNy0zNC40IDQzLjktMTguMiA5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjljLTE2LjItMTYuMi00LjctNDMuOSAxOC4yLTQzLjkgMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRjLTIyLjkgMC0zNC40LTI3LjctMTguMi00My45IDkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTE2LjIgMTYuMi00My45IDQuNy00My45LTE4LjIgMC0xMy4zLTEwLjctMjQtMjQtMjR6bS0zMiA4OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTQwIDg4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LHdFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb21wYXNzIixpY29uOls1MTIsNTEyLFsxMjk1MTddLCJmMTRlIiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyem01MC43LTE4Ni45TDE2Mi40IDM4MC42Yy0xOS40IDcuNS0zOC41LTExLjYtMzEtMzFsNTUuNS0xNDQuM2MzLjMtOC41IDkuOS0xNS4xIDE4LjQtMTguNGwxNDQuMy01NS41YzE5LjQtNy41IDM4LjUgMTEuNiAzMSAzMUwzMjUuMSAzMDYuN2MtMy4yIDguNS05LjkgMTUuMS0xOC40IDE4LjR6TTI4OCAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHoiXX0sTUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlbi1uaWIiLGljb246WzUxMiw1MTIsWzEwMDAxXSwiZjVhZCIsIk0zNjguNSAxOC4zbC01MC4xIDUwLjEgMTI1LjMgMTI1LjMgNTAuMS01MC4xYzIxLjktMjEuOSAyMS45LTU3LjMgMC03OS4yTDQ0Ny43IDE4LjNjLTIxLjktMjEuOS01Ny4zLTIxLjktNzkuMiAwek0yNzkuMyA5Ny4ybC0uNSAuMS0xNDQuMSA0My4yYy0xOS45IDYtMzUuNyAyMS4yLTQyLjMgNDFMMy44IDQ0NS44Yy0yLjkgOC43LTEuOSAxOC4yIDIuNSAyNkwxNjEuNyAzMTYuNGMtMS4xLTQtMS42LTguMS0xLjYtMTIuNCAwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDhjLTQuMyAwLTguNS0uNi0xMi40LTEuNkw0MC4zIDUwNS43YzcuOCA0LjQgMTcuMiA1LjQgMjYgMi41bDI2NC4zLTg4LjZjMTkuNy02LjYgMzUtMjIuNCA0MS00Mi4zbDQzLjItMTQ0LjEgLjEtLjUtMTM1LjUtMTM1LjV6Il19LGtFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93cy1kb3duIixpY29uOls1MTIsNTEyLFtdLCJlNTgxIiwiTTE4NS41IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNzItNzJ6bTI0OCA3Mmw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMTAyLjEtMzEtMzFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDB6TTYwLjMgMjkyLjZMMzcuMSA0NzZjLTIuNCAxOS4xIDEyLjUgMzYgMzEuNyAzNmwxNTQuNSAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtMTE3LjRjMC01LjkgNC43LTEwLjYgMTAuNi0xMC42IDQgMCA3LjcgMi4zIDkuNSA1LjlsNjguMiAxMzYuNWM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43bDcxLjkgMGMxOS4zIDAgMzQuMi0xNi45IDMxLjctMzZMNDUyLjcgMjkyLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDI3MS45IDE2OS45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDc1LjQgMjY5LjNjLTguMyA1LjEtMTMuOSAxMy43LTE1LjEgMjMuM3oiXX0sZTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvcndhcmQtZmFzdCIsaWNvbjpbNTEyLDUxMixbOTE5NywiZmFzdC1mb3J3YXJkIl0sImYwNTAiLCJNMTkuOCA0NzcuNmMxMiA1IDI1LjcgMi4yIDM0LjktNi45TDIyNCAzMDEuMyAyMjQgNDQ4YzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlMNDQ4IDMwMS4zIDQ0OCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDE0Ni43LTE2OS40LTE2OS40Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOVMyMjQgNTEuMSAyMjQgNjRMMjI0IDIxMC43IDU0LjYgNDEuNGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlTMCA1MS4xIDAgNjRMMCA0NDhjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnoiXX0sU0V0PWUzZSx6RXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY3JvcCIsaWNvbjpbNTEyLDUxMixbXSwiZjEyNSIsIk00NDggMTA5LjNsNTQuNi01NC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQwMi43IDY0IDE3NiA2NCAxNzYgMTI4IDMzOC43IDEyOCAxMjggMzM4LjcgMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJsMCAzMi0zMiAwQzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmwzMiAwIDAgMjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIwOCAwIDAtNjQtMTYyLjcgMCAyMTAuNy0yMTAuNyAwIDMwNi43YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMiAzMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0zMiAwIDAtMjc0Ljd6Il19LHQzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aGlza2V5LWdsYXNzIixpY29uOls0NDgsNTEyLFsxMjkzNDcsImdsYXNzLXdoaXNrZXkiXSwiZjdhMCIsIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0TDAgMzUyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4bDE5MiAwYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4bDAtMjg4YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDMyek02NCAyNTZsMC0xNjAgMzIwIDAgMCAxNjAtMzIwIDB6Il19LENFdD10M2UsVEV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNxdWFyZSIsaWNvbjpbNDQ4LDUxMixbOTYzMiw5NzIzLDk3MjQsNjE1OTBdLCJmMGM4IiwiTTY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMnoiXX0scjNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3JpbiIsaWNvbjpbNTEyLDUxMixbMTI4NTEyLCJncmluIl0sImY1ODAiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM4Ni43IDMwOC45YzExLjktMy43IDIzLjkgNi4zIDE5LjYgMTguMS0yMi40IDYxLjMtODEuMyAxMDUuMS0xNTAuMyAxMDUuMVMxMjguMSAzODguMiAxMDUuNyAzMjYuOWMtNC4zLTExLjggNy43LTIxLjggMTkuNi0xOC4xIDM5LjIgMTIuMiA4My43IDE5LjEgMTMwLjcgMTkuMXM5MS41LTYuOSAxMzAuNy0xOS4xek0xNDQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LF9FdD1yM2UsTEV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtY29udHJhY3QiLGljb246WzM4NCw1MTIsW10sImY1NmMiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTg4IDY0Qzc0LjcgNjQgNjQgNzQuNyA2NCA4OHMxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRMODggNjR6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDggMHptNzAuMyAxNjBjLTExLjMgMC0yMS45IDUuMS0yOC45IDEzLjlMNjkuMyA0MDljLTguMyAxMC4zLTYuNiAyNS41IDMuNyAzMy43czI1LjUgNi42IDMzLjctMy44bDQ3LjEtNTguOCAxNS4yIDUwLjdjMyAxMC4yIDEyLjQgMTcuMSAyMyAxNy4xbDEwNCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC04Ni4xIDAtMTYuMS01My42Yy00LjctMTUuNy0xOS4xLTI2LjQtMzUuNS0yNi40eiJdfSxBRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGUtdXAiLGljb246WzM4NCw1MTIsWzg5NjNdLCJmMTA2IiwiTTE2OS40IDEzNy40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMTkyIDIwNS4zIDU0LjYgMzQyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDE2MC0xNjB6Il19LGkzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlIixpY29uOls1MTIsNTEyLFsxMjg1NzgsInNtaWxlIl0sImYxMTgiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NS40IDMyMS45YzIwLjQgMjggNTMuNCA0Ni4xIDkwLjYgNDYuMXM3MC4yLTE4LjEgOTAuNi00Ni4xYzcuOC0xMC43IDIyLjgtMTMuMSAzMy41LTUuM3MxMy4xIDIyLjggNS4zIDMzLjVDMzU2LjMgMzkwIDMwOS4yIDQxNiAyNTYgNDE2cy0xMDAuMy0yNi0xMjkuNC02NS45Yy03LjgtMTAuNy01LjQtMjUuNyA1LjMtMzMuNXMyNS43LTUuNCAzMy41IDUuM3pNMTQ0IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxERXQ9aTNlLEVFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MtYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1NDQiLCJNMjA4IDQwLjFjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0ek04IDE0NC4xYzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQ4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em05Mi41IDE0MS40bDMzLjktMzMuOWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDY2LjYgMjUxLjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMHpNNjYuNiAyLjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDMzLjkgMzMuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMMTAwLjUgMi43QzkxLjEtNi43IDc2LTYuNyA2Ni42IDIuN3pNMzUyIDgwYTU2IDU2IDAgMSAwIDAtMTEyIDU2IDU2IDAgMSAwIDAgMTEyek0yNDYuMiAzODRsMjUuOCAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMzIgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTI4IDI1LjggMGMxMC45IDAgMTguNi0xMC43IDE1LjItMjEuMWwtNDMtMTI5IDQ4LjMgNjUuMWMxMC41IDE0LjIgMzAuNiAxNy4yIDQ0LjggNi42czE3LjItMzAuNiA2LjYtNDQuOGwtNzAuNS05NUM0MzQgMTMyIDM5NC4zIDExMiAzNTIgMTEycy04MiAyMC0xMDcuMiA1My45bC03MC41IDk1Yy0xMC41IDE0LjItNy42IDM0LjIgNi42IDQ0LjhzMzQuMiA3LjYgNDQuOC02LjZsNDguMy02NS4xLTQzIDEyOWMtMy41IDEwLjQgNC4zIDIxLjEgMTUuMiAyMS4xeiJdfSwkRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZGl2aWRlIixpY29uOls0NDgsNTEyLFsxMDEzNSwyNDddLCJmNTI5IiwiTTIyNCA0OGE1NiA1NiAwIDEgMSAwIDExMiA1NiA1NiAwIDEgMSAwLTExMnpNMCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTY4IDQwOGE1NiA1NiAwIDEgMSAxMTIgMCA1NiA1NiAwIDEgMSAtMTEyIDB6Il19LElFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb2RlLWZvcmsiLGljb246WzQ0OCw1MTIsW10sImUxM2IiLCJNODAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODAtMjRjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCAyNi41IDIxLjUgNDggNDggNDhsMTI4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0yMi43Yy0yOC4zLTEyLjMtNDgtNDAuNS00OC03My4zIDAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM2wwIDIyLjdjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJsLTMyIDAgMCA3MC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjMgMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM2wwLTcwLjctMzIgMEM5OC4xIDI4OCA0OCAyMzcuOSA0OCAxNzZsMC0yMi43QzE5LjcgMTQxIDAgMTEyLjggMCA4MCAwIDM1LjggMzUuOCAwIDgwIDBzODAgMzUuOCA4MCA4MHptMjA4IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMjQ4IDQzMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAweiJdfSxQRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2UtZmxhZyIsaWNvbjpbNjQwLDUxMixbXSwiZTUwZCIsIk00NzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTk2IDAgMCAyODhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC00NDhjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI4My41IDU5LjFsMTAwLjUgOTYuOSAwIDM1Ni0yNTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC0xNDQtMTkuOSAwYy0xNS41IDAtMjguMS0xMi42LTI4LjEtMjguMSAwLTcuNiAzLjEtMTQuOSA4LjYtMjAuMkwyMjguNSA1OS4xQzIzNS45IDUyIDI0NS43IDQ4IDI1NiA0OHMyMC4xIDQgMjcuNSAxMS4xek0yMzIgMjU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0bDQ4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRsMC00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNGwtNDggMHoiXX0sUnA9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVpbGRpbmctY29sdW1ucyIsaWNvbjpbNTEyLDUxMixbImJhbmsiLCJpbnN0aXR1dGlvbiIsIm11c2V1bSIsInVuaXZlcnNpdHkiXSwiZjE5YyIsIk0yNzEuOSAyMC4yYy05LjgtNS42LTIxLjktNS42LTMxLjggMGwtMjI0IDEyOGMtMTIuNiA3LjItMTguOCAyMi0xNS4xIDM2UzE3LjUgMjA4IDMyIDIwOGwzMiAwIDAgMjA4IDAgMC01MS4yIDM4LjRDNC43IDQ2MC40IDAgNDY5LjkgMCA0ODAgMCA0OTcuNyAxNC4zIDUxMiAzMiA1MTJsNDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzIgMC0xMC4xLTQuNy0xOS42LTEyLjgtMjUuNmwtNTEuMi0zOC40IDAtMjA4IDMyIDBjMTQuNSAwIDI3LjItOS44IDMwLjktMjMuOHMtMi41LTI4LjgtMTUuMS0zNmwtMjI0LTEyOHpNNDAwIDIwOGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6bS0xMTIgMGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6bS0xMTIgMGwwIDIwOC02NCAwIDAtMjA4IDY0IDB6TTI1NiA5NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LE5FdD1ScCxGRXQ9UnAsT0V0PVJwLFJFdD1ScCxCRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicnVnIixpY29uOls1NzYsNTEyLFtdLCJlNTY5IiwiTTI0IDY0bDU2IDAgMCAzODQtNTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MC04IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsOCAwIDAtMzItOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDggMCAwLTMyLTggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw4IDAgMC00MC04IDBDMTAuNyAxMTIgMCAxMDEuMyAwIDg4UzEwLjcgNjQgMjQgNjR6bTEwNCAwbDMyMCAwIDAgMzg0LTMyMCAwIDAtMzg0ek01NzYgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtOCAwIDAgMzIgOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04IDAgMCAzMiA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTggMCAwIDQwIDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNTYgMCAwLTM4NCA1NiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0eiJdfSxIRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY29kZS1tZXJnZSIsaWNvbjpbNDQ4LDUxMixbXSwiZjM4NyIsIk04MCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTMyLjQgOTcuMmMyOC0xMi40IDQ3LjYtNDAuNSA0Ny42LTczLjIgMC00NC4yLTM1LjgtODAtODAtODBTMCAzNS44IDAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM2wwIDIwNS4zQzE5LjcgMzcxIDAgMzk5LjIgMCA0MzIgMCA0NzYuMiAzNS44IDUxMiA4MCA1MTJzODAtMzUuOCA4MC04MGMwLTMyLjgtMTkuNy02MS00OC03My4zbDAtODYuNmMyNi43IDIwLjEgNjAgMzIgOTYgMzJsODYuNyAwYzEyLjMgMjguMyA0MC41IDQ4IDczLjMgNDggNDQuMiAwIDgwLTM1LjggODAtODBzLTM1LjgtODAtODAtODBjLTMyLjggMC02MSAxOS43LTczLjMgNDhMMjA4IDI0MGMtNDkuOSAwLTkxLTM4LjEtOTUuNi04Ni44ek04MCA0MDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek0zNDQgMjcyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LHFFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJob3VzZS10c3VuYW1pIixpY29uOls2NDAsNTEyLFtdLCJlNTE1IiwiTTI4OCAxNkMxNTUuNSAxNiA0OCAxMjMuNSA0OCAyNTZTMTU1LjUgNDk2IDI4OCA0OTZjNy40IDAgMTkuNy0yLjMgMzMuNy03LjMgMTMuOC00LjkgMjcuMS0xMS43IDM2LjctMTguOSAzOC40LTI5IDkwLjUtMjkgMTI5IDAgMTUuNCAxMS42IDM1LjMgMjEuMSA1NSAyNC40IDE5LjUgMy4zIDM3IC40IDUxLjEtMTAuMiAxMC42LTggMjUuNi01LjkgMzMuNiA0LjdzNS45IDI1LjYtNC43IDMzLjZjLTI3LjMgMjAuNS01OS4yIDI0LTg3LjkgMTkuMi0yOC41LTQuOC01NS40LTE4LTc1LjktMzMuNC0yMS4zLTE2LjEtNDkuOS0xNi4xLTcxLjIgMC0xNC41IDEwLjktMzIuNCAxOS43LTQ5LjUgMjUuOC0xNi44IDYtMzQuOSAxMC4xLTQ5LjkgMTAuMWwtLjEgMEMxMjguOSA1NDMuOSAwIDQxNSAwIDI1NiAwIDk2LjkgMTI4LjktMzIgMjg4LTMyIDMwMS4zLTMyIDMxMi0yMS4zIDMxMi04cy0xMC43IDI0LTI0IDI0em00NC44IDE2Ni40bDk2LTcyYzExLjQtOC41IDI3LjEtOC41IDM4LjUgMGw5NS41IDcyYzggNiAxMi43IDE1LjUgMTIuNyAyNS41bC4zIDEyMS41Yy0yLjIgMS4zLTQuMyAyLjYtNi40IDQuMi00LjMgMy4xLTguNyAuOC0xMy4yLTEuNWwtMS4yLS42LS43LS4zYy01LjQtMi43LTExLjctNi42LTE4LjktMTEuNy0yOS41LTIxLjEtNjQuMy0zMS42LTk5LjEtMzEuNC0zNC4xIC4yLTY4LjEgMTAuNy05NyAzMS40LTcuOCA1LjYtMTMuOCA5LjMtMTkuMyAxMS4yTDMyMCAyMDhjMC0xMC4xIDQuNy0xOS42IDEyLjgtMjUuNnptNTQuNiAyMjkuN2MtMTQuNSAxMC45LTMyLjQgMTkuNy00OS41IDI1LjgtMTYuOCA2LTM0LjkgMTAuMS00OS45IDEwLjEtMTA2IDAtMTkyLTg2LTE5Mi0xOTJTMTgyIDY0IDI4OCA2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRzNjQuNSAxNDQgMTQ0IDE0NGM3LjQgMCAxOS43LTIuMyAzMy43LTcuMyAxMy44LTQuOSAyNy4xLTExLjcgMzYuNy0xOC45IDM4LjQtMjkgOTAuNS0yOSAxMjkgMCAxNS40IDExLjYgMzUuMyAyMS4xIDU1IDI0LjQgMTkuNSAzLjMgMzcgLjQgNTEuMS0xMC4yIDEwLjYtOCAyNS42LTUuOSAzMy42IDQuN3M1LjkgMjUuNi00LjcgMzMuNmMtMjcuMyAyMC41LTU5LjIgMjQtODcuOSAxOS4yLTI4LjUtNC44LTU1LjQtMTgtNzUuOS0zMy40LTIxLjMtMTYuMS00OS45LTE2LjEtNzEuMiAweiJdfSxqRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFnbmlmeWluZy1nbGFzcy1jaGFydCIsaWNvbjpbNTEyLDUxMixbXSwiZTUyMiIsIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2QzI5Ni4zIDQwMS4xIDI1My45IDQxNiAyMDggNDE2IDkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwIDQxNiA5My4xIDQxNiAyMDh6bS0zMTIgOGwwIDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAtOTZsMCAxNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTE2MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAgNjRsMCA5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtOTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6Il19LFZFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1bWJyZWxsYSIsaWNvbjpbNTEyLDUxMixbXSwiZjBlOSIsIk0yNTYtMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyYzEyNi4zIDE1LjcgMjI0IDEyMy41IDIyNCAyNTQgMCAzLjgtLjEgNy41LS4yIDExLjMtLjMgNi45LTUgMTIuOC0xMS43IDE0LjdzLTEzLjgtLjctMTcuNi02LjVjLTE0LjQtMjEuNC0zOC44LTM1LjUtNjYuNS0zNS41LTI5LjMgMC01NC45IDE1LjctNjguOSAzOS4zLTIuNyA0LjYtNy42IDcuNi0xMyA3LjhzLTEwLjUtMi4yLTEzLjctNi41Yy0xNC42LTE5LjgtMzgtMzIuNi02NC41LTMyLjZzLTQ5LjkgMTIuOC02NC41IDMyLjZjLTMuMiA0LjMtOC4zIDYuOC0xMy43IDYuNXMtMTAuMi0zLjItMTMtNy44Yy0xNC0yMy42LTM5LjYtMzkuMy02OC45LTM5LjMtMjcuNyAwLTUyLjEgMTQuMS02Ni41IDM1LjUtMy45IDUuNy0xMSA4LjQtMTcuNiA2LjVTLjUgMjc0LjIgLjIgMjY3LjNDLjEgMjYzLjUgMCAyNTkuOCAwIDI1NiAwIDEyNS41IDk3LjcgMTcuNyAyMjQgMmwwLTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTMyIDM2MGwwIDEwMi42YzAgNDUtMzYuNSA4MS40LTgxLjQgODEuNC0zMC44IDAtNTktMTcuNC03Mi44LTQ1bC0yLjMtNC43Yy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45czM1LTEuNSA0Mi45IDE0LjNsMi4zIDQuN2MzIDUuOSA5IDkuNiAxNS42IDkuNiA5LjYgMCAxNy40LTcuOCAxNy40LTE3LjRMMjI0IDMyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyeiJdfSxVRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGlsbC1yb2Nrc2xpZGUiLGljb246WzU3Niw1MTIsW10sImU1MDgiLCJNMjUyLjQgMTAzLjhsMjcgNDhjMi44IDUgOC4yIDguMiAxMy45IDguMmw1My4zIDBjNS44IDAgMTEuMS0zLjEgMTMuOS04LjJsMjctNDhjMi43LTQuOSAyLjctMTAuOCAwLTE1LjdsLTI3LTQ4Yy0yLjgtNS04LjItOC4yLTEzLjktOC4ybC01My4zIDBjLTUuOCAwLTExLjEgMy4xLTEzLjkgOC4ybC0yNyA0OGMtMi43IDQuOS0yLjcgMTAuOCAwIDE1Ljd6TTY4LjMgODdDNDMuMSA2MS44IDAgNzkuNyAwIDExNS4zTDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwbDMxNi43IDBjMzUuNiAwIDUzLjUtNDMuMSAyOC4zLTY4LjNMNjguMyA4N3pNNTA0LjIgNDAzLjZjNC45IDIuNyAxMC44IDIuNyAxNS43IDBsNDgtMjdjNS0yLjggOC4yLTguMiA4LjItMTMuOWwwLTUzLjNjMC01LjgtMy4xLTExLjEtOC4yLTEzLjlsLTQ4LTI3Yy00LjktMi43LTEwLjgtMi43LTE1LjcgMGwtNDggMjdjLTUgMi44LTguMiA4LjItOC4yIDEzLjlsMCA1My4zYzAgNS44IDMuMSAxMS4xIDguMiAxMy45bDQ4IDI3ek0xOTIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzg0IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LFdFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLXNlY3JldCIsaWNvbjpbNDQ4LDUxMixbMTI4MzczXSwiZjIxYiIsIk0xNzEtMTZjLTM2LjQgMC01Ny44IDU4LjMtNjguMyAxMTJMNzIgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjQgMCAwIDMyYzAgMTcgMy4zIDMzLjIgOS4zIDQ4bC05LjMgMCAwIDAtMjAuNSAwYy0xNS4yIDAtMjcuNSAxMi4zLTI3LjUgMjcuNSAwIDMgLjUgNS45IDEuNCA4LjdsMjguOSA4Ni42QzQwLjIgMzc5LjYgMTYgNDI4LjEgMTYgNDgyLjMgMTYgNDk4LjcgMjkuMyA1MTIgNDUuNyA1MTJsMzU2LjYgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuNyAwLTU0LjItMjQuMi0xMDIuNy02Mi4zLTEzNS40bDI4LjktODYuNmMuOS0yLjggMS40LTUuNyAxLjQtOC43IDAtMTUuMi0xMi4zLTI3LjUtMjcuNS0yNy41bC0yMC41IDAgMCAwLTkuMyAwYzYtMTQuOCA5LjMtMzEgOS4zLTQ4bDAtMzIgMjQgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMzAuNyAwYy0xMC40LTUzLjctMzEuOS0xMTItNjguMy0xMTItOS42IDAtMTkgMy45LTI3LjUgOC4yLTguMiA0LjEtMTguNCA3LjgtMjUuNSA3LjhzLTE3LjMtMy43LTI1LjUtNy44QzE5MC0xMi4xIDE4MC42LTE2IDE3MS0xNnptOTMuNyA0ODQuNGwtMjQuOC03MC45IDI3LjktMzIuNWMyLjctMy4yIDQuMi03LjIgNC4yLTExLjQgMC05LjctNy44LTE3LjUtMTcuNS0xNy41bC02MSAwYy05LjcgMC0xNy41IDcuOC0xNy41IDE3LjUgMCA0LjIgMS41IDguMiA0LjIgMTEuNGwyNy45IDMyLjUtMjQuOCA3MC45LTU3LTE4MC40IDM1LjcgMGMxOC40IDEwLjIgMzkuNSAxNiA2MiAxNnM0My42LTUuOCA2Mi0xNmwzNS43IDAtNTcgMTgwLjR6TTIyNCAyNTZjLTM0LjcgMC02NC4yLTIyLjEtNzUuMy01MyA1LjcgMy4yIDEyLjMgNSAxOS4zIDVsMTIuNCAwYzE2LjUgMCAzMS4xLTEwLjYgMzYuMy0yNi4yIDIuMy03IDEyLjItNyAxNC41IDAgNS4yIDE1LjYgMTkuOSAyNi4yIDM2LjMgMjYuMmwxMi40IDBjNyAwIDEzLjYtMS44IDE5LjMtNS0xMS4xIDMwLjktNDAuNiA1My03NS4zIDUzeiJdfSxHRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFnZXIiLGljb246WzUxMiw1MTIsWzEyODIyM10sImY4MTUiLCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyNTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDQ4Yy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDEyOHptNjQgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDk2IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTg4IDMyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAwem0xMjggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0OCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00OCAweiJdfSxZRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnJpZWZjYXNlIixpY29uOls1MTIsNTEyLFsxMjgxODhdLCJmMGIxIiwiTTIwMCA0OGwxMTIgMGM0LjQgMCA4IDMuNiA4IDhsMCA0MC0xMjggMCAwLTQwYzAtNC40IDMuNi04IDgtOHptLTU2IDhsMCA0MC04MCAwQzI4LjcgOTYgMCAxMjQuNyAwIDE2MGwwIDk2IDUxMiAwIDAtOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTgwIDAgMC00MGMwLTMwLjktMjUuMS01Ni01Ni01NkwyMDAgMGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ6TTUxMiAzMDRsLTE5MiAwIDAgMTZjMCAxNy43LTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYtMTkyIDAgMCAxMTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0xMTJ6Il19LFpFdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0cm93ZWwtYnJpY2tzIixpY29uOls1MTIsNTEyLFtdLCJlNThhIiwiTTIyNCAzMmMwLTExLjUtNi4yLTIyLjItMTYuMi0yNy44cy0yMi4zLTUuNS0zMi4yIC40bC0xNjAgOTZDNS45IDEwNi4zIDAgMTE2LjggMCAxMjhzNS45IDIxLjcgMTUuNSAyNy40bDE2MCA5NmM5LjkgNS45IDIyLjIgNi4xIDMyLjIgLjRTMjI0IDIzNS41IDIyNCAyMjRsMC02NCAyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjU2IDAgMC02NHptOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtNjRjMC0xNy43LTE0LjMtMzItMzItMzJsLTE2MCAwek0wIDQxNmwwIDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtOTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTIyNC0zMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyNTYgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0yNTYgMHoiXX0sWEV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvY2tzIixpY29uOls1MTIsNTEyLFsxMjk1MTBdLCJmNjk2IiwiTTI1Mi44IDBMMTc2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYgMTEyIDAgMC0xNmMwLTE3LjUgNC43LTMzLjkgMTIuOC00OHpNMTI4IDExMmwwIDEyOGMwIDIwLjEtOS41IDM5LjEtMjUuNiA1MS4ybC02NCA0OGMtMjQuMiAxOC4xLTM4LjQgNDYuNi0zOC40IDc2LjggMCA1MyA0MyA5NiA5NiA5NiAxNS40IDAgMzAuNS0zLjcgNDQtMTAuNy0xNy42LTIzLjktMjgtNTMuNC0yOC04NS4zIDAtNDUuMyAyMS4zLTg4IDU3LjYtMTE1LjJsNjQtNDhjNC0zIDYuNC03LjggNi40LTEyLjhsMC0xMjgtMTEyIDB6bTE2MCAwbDAgMTI4YzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4Yy0yNC4yIDE4LjEtMzguNCA0Ni42LTM4LjQgNzYuOCAwIDUzIDQzIDk2IDk2IDk2IDIwLjggMCA0MS02LjcgNTcuNi0xOS4ybDExNS4yLTg2LjRDNDYxIDM4Mi4yIDQ4MCAzNDQuMyA0ODAgMzA0bDAtMTkyLTE5MiAwek00ODAgNjRsMC0xNmMwLTI2LjUtMjEuNS00OC00OC00OEwzMzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAxNiAxOTIgMHoiXX0sUUV0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InQiLGljb246WzM4NCw1MTIsWzExNl0sIjU0IiwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NmwxMjggMCAwIDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzUyIDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyeiJdfSxKRXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWljcm9jaGlwIixpY29uOls1MTIsNTEyLFtdLCJmMmRiIiwiTTE3NiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgNTYtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwYzAgMzUuMyAyOC43IDY0IDY0IDY0bDAgNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTQwIDU2IDAgMCA0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0bDAtNDAgNTYgMCAwIDQwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC00MGMzNS4zIDAgNjQtMjguNyA2NC02NGw0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtNTYgNDAgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNDAgMCAwLTU2IDQwIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTQwIDBjMC0zNS4zLTI4LjctNjQtNjQtNjRsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwLTU2IDAgMC00MHpNMTYwIDEyOGwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0xNiA0OGwwIDE2MCAxNjAgMCAwLTE2MC0xNjAgMHoiXX0sYTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRydWNrLW1lZGljYWwiLGljb246WzU3Niw1MTIsWzEyODY1NywiYW1idWxhbmNlIl0sImYwZjkiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzLjMgMGMxMC40IDM2LjkgNDQuNCA2NCA4NC43IDY0czc0LjItMjcuMSA4NC43LTY0bDEwMi42IDBjMTAuNCAzNi45IDQ0LjQgNjQgODQuNyA2NHM3NC4yLTI3LjEgODQuNy02NGwzLjMgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTE0Ni43YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxNDYuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN2wtNTAuNyAwIDAtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTUxMiAyMzcuM2wwIDUwLjctOTYgMCAwLTk2IDUwLjcgMCA0NS4zIDQ1LjN6TTE1MiAzODRhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0yMzIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMTc2IDEzNmMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCA0MCA0MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDMyYzAgOC44LTcuMiAxNi0xNiAxNmwtNDAgMCAwIDQwYzAgOC44LTcuMiAxNi0xNiAxNmwtMzIgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtNDAtNDAgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2bDQwIDAgMC00MHoiXX0sS0V0PWEzZSxlJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToib20iLGljb246WzU3Niw1MTIsWzEyODMyOV0sImY2NzkiLCJNMzg4LjcgNC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDE2IDE2YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC0xNiAxNmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTE2LTE2Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNmwxNi0xNnpNMTc2IDE2MGMtMTAuOCAwLTIwLjggMy42LTI4LjggOS42LTE0LjEgMTAuNi0zNC4yIDcuOC00NC44LTYuNHMtNy44LTM0LjIgNi40LTQ0LjhjMTguNy0xNC4xIDQyLTIyLjQgNjcuMi0yMi40IDYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyIDAgMTcuMi0zLjkgMzMuNS0xMC44IDQ4bDQ5LjcgMGMxMi43IDAgMjQuOS01IDMzLjktMTQuMWwyMC43LTIwLjdjMTguNy0xOC43IDQ0LjEtMjkuMyA3MC42LTI5LjMgNTUuMiAwIDk5LjkgNDQuNyA5OS45IDk5LjlsMCA5Ni4xYzAgNTUuMi00NC44IDEwMC0xMDAgMTAwUzM1MiA0NDMuMiAzNTIgMzg4bDAtNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgNGMwIDE5LjkgMTYuMSAzNiAzNiAzNnMzNi0xNi4xIDM2LTM2bDAtOTYuMWMwLTE5LjgtMTYuMS0zNS45LTM1LjktMzUuOS05LjUgMC0xOC42IDMuOC0yNS40IDEwLjVsLTIwLjcgMjAuN2MtMjEgMjEtNDkuNCAzMi44LTc5LjEgMzIuOGwtMjYuOCAwYzEyLjYgMTkuNiAxOS45IDQyLjggMTkuOSA2OCAwIDc1LjItNjUgMTMyLTE0MCAxMzJTNDAgNDYzLjIgNDAgMzg4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJjMCAzNS4zIDMxLjcgNjggNzYgNjhzNzYtMzIuNyA3Ni02OC0zMS43LTY4LTc2LTY4bC0yMCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDE2IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6TTMzNy4xIDYwLjFjLTExLTEzLjgtMzEuMS0xNi4yLTQ1LTUuMnMtMTYuMiAzMS4xLTUuMiA0NUMzMTIuNiAxMzIuMiAzNTQuNCAxNTIgNDAwIDE1MnM4Ny40LTE5LjggMTEzLjEtNTIuMWMxMS0xMy44IDguNy0zNC01LjItNDVzLTM0LTguNy00NSA1LjJDNDUwLjMgNzYgNDI3LjUgODggNDAwIDg4cy01MC4zLTEyLTYyLjktMjcuOXoiXX0sdCR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1vc3F1aXRvLW5ldCIsaWNvbjpbNjQwLDUxMixbXSwiZTUyYyIsIk01NzYgMzUyYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTYgMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMCAwIDQ4IDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDAgMCAxNi0uMSAyLjVDNTk4LjYgNTY2LjYgNTg4LjQgNTc2IDU3NiA1NzZzLTIyLjYtOS40LTIzLjktMjEuNWwtLjEtMi41IDAtMTYtNDggMCAwIDE2LS4xIDIuNUM1MDIuNiA1NjYuNiA0OTIuNCA1NzYgNDgwIDU3NnMtMjIuNi05LjQtMjMuOS0yMS41bC0uMS0yLjUgMC0xNi0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC00OC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDE2IDAgMC0xNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTYgNDggMCAwLTE2YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MjkuOSAxNi4zYzcuNy05LjQgMjEuMy0xMS41IDMxLjQtNC4zIDEwLjEgNy4xIDEzLjEgMjAuOSA3LjQgMzEuN2wtMS4zIDIuMS0yNS45IDM4LjkgMTMuMyA1My40YzIgOC0uMSAxNi4zLTUuMyAyMi4zbC0yLjQgMi40LTQ0LjcgMzguMyAxMzAuNSAxNC41YzQyLjggNC44IDc1LjEgNDAuOSA3NS4xIDgzLjkgMCAzLjktLjQgNy43LS45IDExLjUtNy4zLTMuNS0xNS4zLTUuOC0yMy44LTYuN0w1NzYgMzA0Yy0xOC41IDAtMzUuMyA3LTQ4IDE4LjQtMTEtOS45LTI1LjEtMTYuNS00MC42LTE4LjFMNDgwIDMwNGMtMzAuMyAwLTU2LjEgMTguNy02Ni44IDQ1LjItMTIuNSA1LTIzLjIgMTMuNC0zMS4xIDI0bC0zMC4yLTQwLjEgMCA3NC43YzAgMTcuNy0xNC4zIDMyLTMyIDMyLTE2LjYgMC0zMC4yLTEyLjYtMzEuOC0yOC43bC0uMi0zLjMgMC03NC42LTMyLjMgNDMgMCAzOS44YzAgMy41LS43IDYuOS0yLjEgMTAuMWwtMS42IDMuMS00MCA2NC0xLjQgMmMtNy41IDkuNi0yMSAxMi4xLTMxLjMgNS4zLTEwLjMtNi44LTEzLjctMjAuNS04LjMtMzEuNWwxLjItMi4yIDM2LjItNTggMC00MSAuMy00Yy42LTMuOSAyLjItNy43IDQuNi0xMC45bDM5LjMtNTIuMi02Ni4yIDU5LjVjLTE3IDE1LjMtMzkgMjMuNy02MS45IDIzLjhsLTguMSAwYy00Ni42IDAtODQuNC0zNy44LTg0LjQtODQuNCAwLTQzIDMyLjQtNzkuMiA3NS4xLTgzLjlsMTMwLjUtMTQuNS00NC43LTM4LjMtMi40LTIuNGMtNS4yLTYtNy4zLTE0LjQtNS4zLTIyLjNsMTMuMy01My40LTI1LjktMzguOS0xLjItMi4xYy01LjctMTAuOC0yLjctMjQuNiA3LjQtMzEuNyAxMC4xLTcuMSAyMy43LTUuMSAzMS40IDQuM2wxLjUgMiAzMiA0OCAxLjQgMi4yYzIuOCA1LjMgMy41IDExLjYgMi4xIDE3LjZsLTEyLjMgNDkuMiA1My4zIDQ1LjcgMC0yOC44IC4yLTMuMmMxLjEtMTAuNCA3LjItMTkuNCAxNS44LTI0LjRsMC02MC41IC4zLTMuMmMxLjUtNy4zIDgtMTIuNyAxNS43LTEyLjggNy43IDAgMTQuMiA1LjUgMTUuNyAxMi44bC4zIDMuMiAwIDYwLjVjOC43IDUgMTQuOCAxNCAxNS44IDI0LjRsLjIgMy4yIDAgMjguOSA1My40LTQ1LjctMTIuMy00OS4yYy0xLjUtNS45LS43LTEyLjIgMi4xLTE3LjZsMS40LTIuMiAzMi00OCAxLjUtMnpNNTA0IDQ4OGw0OCAwIDAtNDgtNDggMCAwIDQ4eiJdfSxyJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicHJlc2NyaXB0aW9uLWJvdHRsZSIsaWNvbjpbMzg0LDUxMixbXSwiZjQ4NSIsIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEwzNTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjRMMCAzMnpNMzIgMTQ0bDMyMCAwIDAgMzA0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRsNzIgMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtNzIgMCAwLTQ4IDcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAgMC00OCA3MiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC03MiAwIDAtNjR6Il19LG4zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2Vycy1nZWFyIixpY29uOls2NDAsNTEyLFsidXNlcnMtY29nIl0sImY1MDkiLCJNMzIwIDIyNGExMDQgMTA0IDAgMSAwIDAtMjA4IDEwNCAxMDQgMCAxIDAgMCAyMDh6TTk2IDIzMmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHpNMCA0MTZsMCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw4Ni43IDBjLTQuMy05LjgtNi43LTIwLjYtNi43LTMybDAtMTZjMC01My4yIDIwLTEwMS44IDUyLjktMTM4LjYtMTEuNy0zLjUtMjQuMS01LjQtMzYuOS01LjQtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh6TTYxNiAxNjBhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwek0xNjAgNDMybDAgMTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTU2LjggMGMtNy4xLTIxLjYtNi4zLTQ0LjQgMTAuNy02NC0xNC0xNi4yLTIwLjUtMzkuNy0xMS40LTYzLjMgNi42LTE3LjEgMTUuOS0zMy4xIDI3LjQtNDcuMyA1LjQtNi42IDExLjYtMTEuNyAxOC4zLTE1LjQtMjIuMS0xMS41LTQ3LjItMTgtNzMuOC0xOC04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHptNDY0LjYtNDQuMWM2LjMtMy42IDkuNS0xMS4xIDYuOC0xOC00LjgtMTIuNC0xMS41LTI0LjEtMTkuOS0zNC40LTQuNi01LjctMTIuNy02LjctMTktMy0yMS44IDEyLjYtNDguNi0yLjgtNDguNi0yOC4xIDAtNy4zLTQuOS0xMy44LTEyLjEtMTQuOS0xMi45LTItMjYuOC0yLTM5LjcgMC03LjIgMS4xLTEyLjEgNy42LTEyLjEgMTQuOSAwIDI1LjItMjYuOCA0MC43LTQ4LjYgMjguMS02LjMtMy42LTE0LjQtMi42LTE5IDMtOC40IDEwLjMtMTUuMSAyMi0xOS45IDM0LjQtMi42IDYuOCAuNSAxNC4zIDYuOCAxNy45IDIxLjkgMTIuNiAyMS45IDQzLjUgMCA1Ni4yLTYuMyAzLjYtOS41IDExLjEtNi44IDE3LjkgNC44IDEyLjQgMTEuNSAyNC4xIDE5LjkgMzQuNCA0LjYgNS43IDEyLjcgNi43IDE5IDMgMjEuOC0xMi42IDQ4LjYgMi45IDQ4LjYgMjguMSAwIDcuMyA0LjkgMTMuOCAxMi4xIDE0LjkgMTIuOSAyIDI2LjggMiAzOS43IDAgNy4yLTEuMSAxMi4xLTcuNiAxMi4xLTE0LjkgMC0yNS4yIDI2LjgtNDAuNyA0OC42LTI4LjEgNi4zIDMuNiAxNC40IDIuNiAxOS0zIDguNC0xMC4zIDE1LjEtMjIgMTkuOS0zNC40IDIuNi02LjgtLjUtMTQuMy02LjgtMTcuOS0yMS45LTEyLjYtMjEuOS00My41IDAtNTYuMnpNNDcyIDQxNmE0MCA0MCAwIDEgMSA4MCAwIDQwIDQwIDAgMSAxIC04MCAweiJdfSxpJHQ9bjNlLGEkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb2FkLWNpcmNsZS1leGNsYW1hdGlvbiIsaWNvbjpbNjQwLDUxMixbXSwiZTU2NSIsIk0yODggMzJsLTc2LjMgMGMtMjkuNCAwLTU1LjEgMjAuMS02Mi4xIDQ4LjZMNjUuNCA0MjAuNUM1Ny45IDQ1MC43IDgwLjggNDgwIDExMiA0ODBsMjA5LjQgMGMtMTEuMi0yNC40LTE3LjQtNTEuNC0xNy40LTgwIDAtMjguNiA2LjItNTUuNyAxNy40LTgwLS41IDAtMSAwLTEuNSAwLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDQ5YzM1LjItMzkuOSA4Ni43LTY1IDE0NC02NSA5IDAgMTcuOCAuNiAyNi41IDEuOGwtMzItMTI5LjJDNDgzLjQgNTIuMSA0NTcuOCAzMiA0MjguMyAzMmwtNzYuNCAwIDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02NHpNNDk2IDU0NGExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtMTAwYTIwIDIwIDAgMSAxIDAgNDAgMjAgMjAgMCAxIDEgMC00MHptMC0xNDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6Il19LG4kdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwYXVzZSIsaWNvbjpbMzg0LDUxMixbOTIwOF0sImYwNGMiLCJNNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MEwwIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGw2NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDMyem0yMjQgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhsMCAzNTJjMCAyNi41IDIxLjUgNDggNDggNDhsNjQgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTM1MmMwLTI2LjUtMjEuNS00OC00OC00OGwtNjQgMHoiXX0scWc9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3RhZmYtc25ha2UiLGljb246WzQ0OCw1MTIsWyJyb2QtYXNjbGVwaXVzIiwicm9kLXNuYWtlIiwic3RhZmYtYWVzY3VsYXBpdXMiXSwiZTU3OSIsIk0xOTIgMzJsMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjQgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NmwtMTYgMCAwLTY0IDE2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTY0IDAgMCAxOTIgMzIgMGM1MyAwIDk2IDQzIDk2IDk2IDAgNDcuNi0zNC42IDg3LjEtODAgOTQuN2wwLTY3YzkuNi01LjUgMTYtMTUuOSAxNi0yNy43IDAtMTcuNy0xNC4zLTMyLTMyLTMybC0zMiAwIDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzItMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwIDAtNjQtMzIgMGMtNTMgMC05Ni00My05Ni05NiAwLTQ3LjYgMzQuNi04Ny4xIDgwLTk0LjdsMCA2N2MtOS42IDUuNS0xNiAxNS45LTE2IDI3LjcgMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIgMCAwLTE5Mi03Mi42IDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJsLTE2IDBDMjEuNSAxMjggMCAxMDYuNSAwIDgwUzIxLjUgMzIgNDggMzJsMTQ0IDB6Il19LG8kdD1xZyxzJHQ9cWcsbCR0PXFnLGMkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwaWdneS1iYW5rIixpY29uOls1NzYsNTEyLFtdLCJmNGQzIiwiTTI4OC0zMmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpNNDggMzA0YzAtNzAuMSA0Ny0xMzEuNCAxMTcuMS0xNjQuOSAyNS4zIDQxLjMgNzAuOSA2OC45IDEyMi45IDY4LjkgNTUuNyAwIDEwNC4xLTMxLjcgMTI4LTc4IDE1LjgtMTEuMyAzNS4xLTE4IDU2LTE4bDE5LjUgMGMxMC40IDAgMTggOS44IDE1LjUgMTkuOWwtMTcuMSA2OC4zYzkuOSAxMi40IDE4LjIgMjUuNyAyNC40IDM5LjhsMjEuNyAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgMTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0bC00MCAwYy0xNi41IDIyLTM4LjUgMzkuNi02NCA1MC43bDAgMjkuM2MwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzMgMGMtMTQuMyAwLTI2LjgtOS41LTMwLjgtMjMuMmwtNy4xLTI0LjgtODIuMyAwLTcuMSAyNC44QzIzNS44IDUwMi41IDIyMy4zIDUxMiAyMDkgNTEybC0zMyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI5LjNDODcuNSA0MjYgNDggMzY5LjYgNDggMzA0em0zNzYgMTZhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4eiJdfSxkJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9udW1lbnQiLGljb246WzM4NCw1MTIsW10sImY1YTYiLCJNMjA5LTMzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw5NSA0N2MtNC4xIDQuMS02LjUgOS40LTcgMTUuMUw1OC40IDQ0OCA0OCA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTEwLjQgMC0yOS43LTM4NS44Yy0uNC01LjctMi45LTExLjEtNy0xNS4xTDIwOS0zM3pNMTI4IDI5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC04MCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0sbzNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy1yaWdodCIsaWNvbjpbNDQ4LDUxMixbMTg3LCJhbmdsZS1kb3VibGUtcmlnaHQiXSwiZjEwMSIsIk00MzkuMSAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzcxLjIgMjU2IDIzMy45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6bS0zNTIgMTYwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDE3OS4yIDI1NiA0MS45IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAweiJdfSx1JHQ9bzNlLGliPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRlc2t0b3AiLGljb246WzUxMiw1MTIsWzEyODQyMSw2MTcwNCwiZGVza3RvcC1hbHQiXSwiZjM5MCIsIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE0NCAwLTE2IDQ4LTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMjcyIDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTcyIDAtMTYtNDggMTQ0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTk2IDk2bDMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LHAkdD1pYixoJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGxhbmUtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTU3IiwiTTIzMiAyNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2bDAgMTI3LjMgNzggNzEuNWMtNjkuMyAyOS0xMTggOTcuNC0xMTggMTc3LjIgMCA0OS4zIDE4LjYgOTQuMyA0OS4xIDEyOC4zTDI4OCA1MTIgMTc5LjkgNTM5Yy0xMC4xIDIuNS0xOS45LTUuMS0xOS45LTE1LjVsMC0xOS44YzAtNC45IDIuMi05LjUgNi0xMi41bDY2LTUyLjggMC05OS43LTE2Mi45IDU0LjNDNTguNyAzOTYuNCA0OCAzODguNyA0OCAzNzcuOGwwLTQzLjdjMC05IDMuOC0xNy41IDEwLjQtMjMuNkwyMzIgMTUxLjMgMjMyIDI0ek00OTYgMjU2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwbC0zNi43IDM2LjctMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDM2LjcgMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzNi43LTM2LjcgMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43IDM2LjctMzYuN3oiXX0sZiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJldHdlZXQiLGljb246WzU3Niw1MTIsW10sImYwNzkiLCJNMTE4LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsMzIgMCAwIDIyNGMwIDUzIDQzIDk2IDk2IDk2bDEyOCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0yMjQgMzIgMGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHpNNDU3LjQgNDcwLjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNTU2LjkgMzUyIDU0NCAzNTJsLTMyIDAgMC0yMjRjMC01My00My05Ni05Ni05NkwyODggMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAyMjQtMzIgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsNjQgNjR6Il19LHMzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ1c2VyLWdlYXIiLGljb246WzY0MCw1MTIsWyJ1c2VyLWNvZyJdLCJmNGZlIiwiTTI1Ni41IDhhMTIwIDEyMCAwIDEgMSAwIDI0MCAxMjAgMTIwIDAgMSAxIDAtMjQwek0yMjYuNyAzMDRsNTkuNCAwIDEuNSAwYy0xMi45IDI2LjgtNy44IDU4LjIgMTEuNSA3OS41LTIwLjIgMjIuMy0yNC44IDU1LjgtOS40IDgzLjRsMjIuNSA0MC40Yy45IDEuNiAxLjkgMy4yIDIuOSA0LjdsLTIzNyAwYy0xNi40IDAtMjkuNy0xMy4zLTI5LjctMjkuNyAwLTk4LjUgNzkuOC0xNzguMyAxNzguMy0xNzguM3ptMjA1LjktNTYuNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGw0OCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNi4xYzAgMTguOSAyNC4xIDMyLjggNDAuNSAyMy40bDUtMi45YzExLjYtNi43IDI2LjUtMi42IDMzIDkuMWwyMi40IDQwLjJjNi4yIDExLjIgMi42IDI1LjItOC4yIDMybC00LjcgMi45Yy0xNi4yIDEwLjEtMTYuMiAzOS45IDAgNTAuMWw0LjYgMi45YzEwLjggNi44IDE0LjUgMjAuOCA4LjMgMzJMNjA3IDQ4My44Yy02LjUgMTEuNy0yMS40IDE1LjktMzMgOS4xbC00LjktMi45Yy0xNi40LTkuNS00MC41IDQuNS00MC41IDIzLjRsMCA2LjFjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNS45YzAtMTktMjQuMi0zMy00MC43LTIzLjVsLTQuOCAyLjhjLTExLjYgNi43LTI2LjQgMi42LTMzLTkuMWwtMjIuNi00MC40Yy02LjItMTEuMi0yLjYtMjUuMyA4LjMtMzIuMWw0LjQtMi43YzE2LjMtMTAuMSAxNi4zLTQwLjEgMC01MC4ybC00LjUtMi44Yy0xMC45LTYuOC0xNC41LTIwLjktOC4zLTMyLjFsMjIuNS00MC4zYzYuNS0xMS43IDIxLjQtMTUuOCAzMi45LTkuMWw0LjggMi44YzE2LjUgOS41IDQwLjctNC41IDQwLjctMjMuNWwwLTUuOXptOTkuOSAxMzYuMmE1MiA1MiAwIDEgMCAtMTA0IDAgNTIgNTIgMCAxIDAgMTA0IDB6Il19LG0kdD1zM2UsZyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci1hbGwiLGljb246WzQ0OCw1MTIsW10sImY4NGMiLCJNMzg0IDk2bDAgMTI4LTEyOCAwIDAtMTI4IDEyOCAwem0wIDE5MmwwIDEyOC0xMjggMCAwLTEyOCAxMjggMHpNMTkyIDIyNGwtMTI4IDAgMC0xMjggMTI4IDAgMCAxMjh6TTY0IDI4OGwxMjggMCAwIDEyOC0xMjggMCAwLTEyOHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnoiXX0sYiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvaW5zIixpY29uOls1MTIsNTEyLFtdLCJmNTFlIiwiTTEyOCA5NmwwLTE2YzAtNDQuMiA4Ni04MCAxOTItODBTNTEyIDM1LjggNTEyIDgwbDAgMTZjMCAzMC42LTQxLjMgNTcuMi0xMDIgNzAuNy0yLjQtMi44LTQuOS01LjUtNy40LTgtMTUuNS0xNS4zLTM1LjUtMjYuOS01Ni40LTM1LjUtNDEuOS0xNy41LTk2LjUtMjcuMS0xNTQuMi0yNy4xLTIxLjkgMC00My4zIDEuNC02My44IDQuMS0uMi0xLjMtLjItMi43LS4yLTQuMXpNNDMyIDM1M2wwLTQ2LjJjMTUuMS0zLjkgMjkuMy04LjUgNDIuMi0xMy45IDEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40YzAgMjYuOC0zMS41IDUwLjUtODAgNjV6bTAtOTZsMC0zM2MwLTQuNS0uNC04LjgtMS0xMyAxNS41LTMuOSAzMC04LjYgNDMuMi0xNC4yczI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40YzAgMjYuOC0zMS41IDUwLjUtODAgNjV6TTAgMjQwbDAtMTZjMC00NC4yIDg2LTgwIDE5Mi04MHMxOTIgMzUuOCAxOTIgODBsMCAxNmMwIDQ0LjItODYgODAtMTkyIDgwUzAgMjg0LjIgMCAyNDB6bTM4NCA5NmMwIDQ0LjItODYgODAtMTkyIDgwUzAgMzgwLjIgMCAzMzZsMC0xNS40YzExLjYgOC4xIDI0LjUgMTQuNyAzNy44IDIwLjMgNDEuOSAxNy41IDk2LjUgMjcuMSAxNTQuMiAyNy4xczExMi4zLTkuNyAxNTQuMi0yNy4xYzEzLjItNS41IDI2LjEtMTIuMiAzNy44LTIwLjNsMCAxNS40em0wIDgwLjZsMCAxNS40YzAgNDQuMi04NiA4MC0xOTIgODBTMCA0NzYuMiAwIDQzMmwwLTE1LjRjMTEuNiA4LjEgMjQuNSAxNC43IDM3LjggMjAuMyA0MS45IDE3LjUgOTYuNSAyNy4xIDE1NC4yIDI3LjFzMTEyLjMtOS43IDE1NC4yLTI3LjFjMTMuMi01LjUgMjYuMS0xMi4yIDM3LjgtMjAuM3oiXX0sdiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im1hcnMtc3Ryb2tlIixpY29uOls1NzYsNTEyLFs5ODk0XSwiZjIyOSIsIk00MTYtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNTAuNyAwLTU4LjcgNTguNy0xNy40LTE3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE3LjQgMTcuNC0yMyAyM2MtMjguNC0xOS41LTYyLjctMzEtOTkuOC0zMS05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzZjMC0zNy0xMS40LTcxLjQtMzEtOTkuOGwyMy0yMyAxNy40IDE3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w0NTMuMyAxMzYgNTEyIDc3LjMgNTEyIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyTDU3NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyTDQxNi0zMnpNMTI4IDMwNGExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAweiJdfSxsM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFuZHNoYWtlLWFuZ2xlIixpY29uOls1NzYsNTEyLFsiaGFuZHMtaGVscGluZyJdLCJmNGM0IiwiTTI2OC45IDUzLjJMMTUyLjMgMTgyLjhjLTQuNiA1LjEtNC40IDEzIC41IDE3LjkgMzAuNSAzMC41IDgwIDMwLjUgMTEwLjUgMGwzMS44LTMxLjhjNC4yLTQuMiA5LjUtNi41IDE0LjktNi45IDYuOC0uNiAxMy44IDEuNyAxOSA2LjlMNTA1LjYgMzQ0IDU3NiAyODggNTc2IDAgNDY0IDY0IDQ0MC4yIDQ4LjFDNDI0LjQgMzcuNiA0MDUuOSAzMiAzODYuOSAzMmwtNzAuNCAwYy0xLjEgMC0yLjMgMC0zLjQgLjEtMTYuOSAuOS0zMi44IDguNS00NC4yIDIxLjF6TTExNi42IDE1MC43TDIyMy40IDMyIDE4My44IDMyYy0yNS41IDAtNDkuOSAxMC4xLTY3LjkgMjguMUwwIDE5MiAwIDU0NCAxNDQgNDA4IDE1Ni40IDQxOC4zYzIzIDE5LjIgNTIgMjkuNyA4MS45IDI5LjdsMTUuNyAwLTctN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQxIDQxIDkgMGMxOS4xIDAgMzcuOC00LjMgNTQuOC0xMi4zTDM1OSA0MDljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMiAzMiAxNy41LTE3LjVjOC45LTguOSAxMS41LTIxLjggNy42LTMzLjFsLTEzNy45LTEzNi44LTE0LjkgMTQuOWMtNDkuMyA0OS4zLTEyOS4xIDQ5LjMtMTc4LjQgMC0yMy0yMy0yMy45LTU5LjktMi4yLTg0eiJdfSx4JHQ9bDNlLHkkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duIixpY29uOlszODQsNTEyLFs4NTk1XSwiZjA2MyIsIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCA0MDIuNyAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzNzAuNy0xMDUuNC0xMDUuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHoiXX0sYzNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxvY2F0aW9uLWRvdCIsaWNvbjpbMzg0LDUxMixbIm1hcC1tYXJrZXItYWx0Il0sImYzYzUiLCJNMCAxODguNkMwIDg0LjQgODYgMCAxOTIgMFMzODQgODQuNCAzODQgMTg4LjZjMCAxMTkuMy0xMjAuMiAyNjIuMy0xNzAuNCAzMTYuOC0xMS44IDEyLjgtMzEuNSAxMi44LTQzLjMgMC01MC4yLTU0LjUtMTcwLjQtMTk3LjUtMTcwLjQtMzE2Ljh6TTE5MiAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6Il19LHckdD1jM2UsTSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBsdWctY2lyY2xlLWV4Y2xhbWF0aW9uIixpY29uOls2NDAsNTEyLFtdLCJlNTVkIiwiTTE5Mi0zMmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDk2IDEyOCAwIDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDk2IDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA0OC43Yy05OC42IDguMS0xNzYgOTAuNy0xNzYgMTkxLjMgMCAyNy4zIDUuNyA1My4zIDE2IDc2LjlsMCAzLjFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC02Ni43QzE2NS4yIDM5OC4xIDk2IDMxOS4xIDk2IDIyNGwwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlM3OC4zIDk2IDk2IDk2bDY0IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNDk2IDI1NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjI4YTIwIDIwIDAgMSAwIDAtNDAgMjAgMjAgMCAxIDAgMCA0MHptMC0xODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC04MGMwLTguOC03LjItMTYtMTYtMTZ6Il19LGskdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjb29raWUtYml0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjU2NCIsIk0yNTcuNSAyNy42Yy0uOC01LjQtNC45LTkuOC0xMC4zLTEwLjYtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45LS45LTUuMy01LjMtOS4zLTEwLjYtMTAuMS01MS41LTguMi05Mi44LTQ3LjEtMTA0LjUtOTcuNC0xLjgtNy42LTgtMTMuNC0xNS43LTE0LjYtNTQuNi04LjctOTcuNy01Mi0xMDYuMi0xMDYuOHpNMjA4IDE0NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTE0NCAzMzZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjI0LTY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sZDNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjcmV3ZHJpdmVyLXdyZW5jaCIsaWNvbjpbNTc2LDUxMixbInRvb2xzIl0sImY3ZDkiLCJNNzAuOC02LjdjNS40LTUuNCAxMy44LTYuMiAyMC4yLTJMMjA5LjkgNzAuNWM4LjkgNS45IDE0LjIgMTUuOSAxNC4yIDI2LjZsMCA0OS42IDkwLjggOTAuOGMzMy4zLTE1IDczLjktOC45IDEwMS4yIDE4LjVMNTQyLjIgMzgyLjFjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlsLTYwLjEgNjAuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMjg4LjEgMzg0Yy0yNy40LTI3LjQtMzMuNS02Ny45LTE4LjUtMTAxLjJsLTkwLjgtOTAuOC00OS42IDBjLTEwLjcgMC0yMC43LTUuMy0yNi42LTE0LjJMMjMuNCA1OC45Yy00LjItNi4zLTMuNC0xNC44IDItMjAuMkw3MC44LTYuN3ptMTQ1IDMwMy41Yy02LjMgMzYuOSAyLjMgNzUuOSAyNi4yIDEwNy4ybC05NC45IDk1Yy0yOC4xIDI4LjEtNzMuNyAyOC4xLTEwMS44IDBzLTI4LjEtNzMuNyAwLTEwMS44bDEzNS40LTEzNS41IDM1LjIgMzUuMXpNMzg0LjEgMGMyMC4xIDAgMzkuNCAzLjcgNTcuMSAxMC41IDEwIDMuOCAxMS44IDE2LjUgNC4zIDI0LjFMMzg4LjggOTEuM2MtMyAzLTQuNyA3LjEtNC43IDExLjNsMCA0MS40YzAgOC44IDcuMiAxNiAxNiAxNmw0MS40IDBjNC4yIDAgOC4zLTEuNyAxMS4zLTQuN2w1Ni43LTU2LjdjNy42LTcuNSAyMC4zLTUuNyAyNC4xIDQuMyA2LjggMTcuNyAxMC41IDM3IDEwLjUgNTcuMSAwIDQzLjItMTcuMiA4Mi4zLTQ1IDExMS4xbC00OS4xLTQ5LjFjLTMzLjEtMzMtNzguNS00NS43LTEyMS4xLTM4LjRsLTU2LjgtNTYuOCAwLTI5LjctLjItNWMtLjgtMTIuNC00LjQtMjQuMy0xMC41LTM0LjkgMjkuNC0zNSA3My40LTU3LjIgMTIyLjctNTcuM3oiXX0sUyR0PWQzZSx6JHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaW5kZW50IixpY29uOls0NDgsNTEyLFtdLCJmMDNjIiwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem0zMiA5NmwxOTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMTkyIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTEyNy44IDI2OC42TDI1LjggMzQ3LjlDMTUuMyAzNTYuMSAwIDM0OC42IDAgMzM1LjNMMCAxNzYuN2MwLTEzLjMgMTUuMy0yMC44IDI1LjgtMTIuNmwxMDEuOSA3OS4zYzguMiA2LjQgOC4yIDE4LjkgMCAyNS4zeiJdfSx1M2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycyIsaWNvbjpbNDQ4LDUxMixbIm5hdmljb24iXSwiZjBjOSIsIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0bDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDEyOEMxNC4zIDEyOCAwIDExMy43IDAgOTZ6TTAgMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyTDMyIDI4OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgNDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyeiJdfSxDJHQ9dTNlLHAzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1wcmF5aW5nIixpY29uOls2NDAsNTEyLFsicHJheWluZy1oYW5kcyJdLCJmNjg0IiwiTTIyNCAyOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0xMTIuNiA4OC4yLTExOS43YzEzLjEtMTcuOCA5LjMtNDIuOC04LjUtNTUuOXMtNDIuOC05LjMtNTUuOSA4LjVMMTA2LjUgMTQyLjlDODkuMyAxNjYuMiA4MCAxOTQuNSA4MCAyMjMuNmwwIDExMC43LTU4LjEgMTkuNEM4LjggMzU4IDAgMzcwLjIgMCAzODRsMCA5NmMwIDEwIDQuNyAxOS41IDEyLjcgMjUuNXMxOC40IDggMjguMSA1LjJsMTU0LjQtNDQuMWM1NS0xNS43IDkyLjgtNjUuOSA5Mi44LTEyMy4xTDI4OCAyMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA3MnptMTkyIDBsMC03MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDExOS42YzAgNTcuMiAzNy45IDEwNy40IDkyLjggMTIzLjFsMTU0LjQgNDQuMWM5LjcgMi44IDIwIC44IDI4LjEtNS4yUzY0MCA0OTAgNjQwIDQ4MGwwLTk2YzAtMTMuOC04LjgtMjYtMjEuOS0zMC40bC01OC4xLTE5LjQgMC0xMTAuN2MwLTI5LTkuMy01Ny4zLTI2LjUtODAuN0w0NDAuMiAxNi4zQzQyNy4xLTEuNSA0MDIuMS01LjMgMzg0LjMgNy44cy0yMS42IDM4LjEtOC41IDU1LjlMNDY0IDE4My40IDQ2NCAyOTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6Il19LFQkdD1wM2UsXyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcnVzZXMiLGljb246WzY0MCw1MTIsW10sImUwNzYiLCJNMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzIgMCAzMC41IDM2LjkgNDUuOCA1OC41IDI0LjIgMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM2MtMjEuNiAyMS42LTYuMyA1OC41IDI0LjIgNTguNSAxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmMtMzAuNSAwLTQ1LjggMzYuOS0yNC4yIDU4LjUgMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBjLTIxLjYtMjEuNi01OC41LTYuMy01OC41IDI0LjIgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0zMC41LTM2LjktNDUuOC01OC41LTI0LjItMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNDNzcuOCAyNjAuOSA2Mi41IDIyNCAzMiAyMjQgMTQuMyAyMjQgMCAyMDkuNyAwIDE5MnMxNC4zLTMyIDMyLTMyYzMwLjUgMCA0NS44LTM2LjkgMjQuMi01OC41LTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBDMTIzLjEgNzcuOCAxNjAgNjIuNSAxNjAgMzIgMTYwIDE0LjMgMTc0LjMgMCAxOTIgMHpNMTQ0IDE3NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEyOCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0yNDggNDBjMCAyMi45IDI3LjcgMzQuNCA0My45IDE4LjIgOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45Yy0xNi4yIDE2LjItNC43IDQzLjkgMTguMiA0My45IDEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yMi45IDAtMzQuNCAyNy43LTE4LjIgNDMuOSA5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0xNi4yLTE2LjItNDMuOS00LjctNDMuOSAxOC4yIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMjIuOS0yNy43LTM0LjQtNDMuOS0xOC4yLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjljMTYuMi0xNi4yIDQuNy00My45LTE4LjItNDMuOS0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzIyLjkgMCAzNC40LTI3LjcgMTguMi00My45LTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGMxNi4yIDE2LjIgNDMuOSA0LjcgNDMuOS0xOC4yIDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6TTUwNCAzODRhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHoiXX0sTCR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNjaG9vbC1mbGFnIixpY29uOls1NzYsNTEyLFtdLCJlNTZlIiwiTTI1Ni04YzAtMTMuMyAxMC43LTI0IDI0LTI0bDExMiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRsLTcyIDAgMCAxOS4yIDEyOCA3Ni44IDY0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAyMjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDIyNGMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyOC03Ni44IDAtOTEuMnpNMjQwIDM4NGwwIDgwIDk2IDAgMC04MGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpNMTEyIDQxNmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDQxNmM4LjggMCAxNi03LjIgMTYtMTZsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwem0xNi0xNDRsMC0zMmMwLTguOC03LjItMTYtMTYtMTZsLTMyIDBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyYzAgOC44IDcuMiAxNiAxNiAxNmwzMiAwYzguOCAwIDE2LTcuMiAxNi0xNnptLTIyNCAwYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnoiXX0sQSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRyYWRlbWFyayIsaWNvbjpbNjQwLDUxMixbODQ4Ml0sImYyNWMiLCJNMzQ2LjYgMTEwLjJjLTcuOC0xMS43LTIyLjQtMTctMzUuOS0xMi45UzI4OCAxMTMuOSAyODggMTI4bDAgMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xNTAuMyA2OS40IDEwNC4xYzUuOSA4LjkgMTUuOSAxNC4yIDI2LjYgMTQuMnMyMC43LTUuMyAyNi42LTE0LjJMNTQ0IDIzMy43IDU0NCAzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI1NmMwLTE0LjEtOS4yLTI2LjUtMjIuNy0zMC42cy0yOC4xIDEuMS0zNS45IDEyLjlMNDQ4IDI2Mi4zIDM0Ni42IDExMC4yek0zMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhzMTQuMyAzMiAzMiAzMmw2NCAwIDAgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjQgNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiA5NnoiXX0sRCR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpcmUtYnVybmVyIixpY29uOls1MTIsNTEyLFtdLCJlNGYxIiwiTTI4MS43IDQ4LjNMMjk0IDM0LjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOSA3LjIgMCAxNC4zIDIuNiAxOS45IDcuOCAxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjYgMTUuMSAyNy4yIDI2LjIgNTguMSAyNi4yIDg4LjEgMCA4OC43LTcxLjMgMTU5LjgtMTYwIDE1OS44LTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjggMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNSAyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjIgNS43LTUuMiAxMy4xLTcuNyAyMC4zLTcuNXMxMy40IDMuMiAxOC44IDcuNWMxNC40IDExLjQgMzguOSA0MC43IDM4LjkgNDAuN3pNMzIwIDI0MC4yYzAtMzYuNS0zNy03My01NC44LTg4LjQtNS40LTQuNy0xMy4xLTQuNy0xOC41IDAtMTcuNyAxNS40LTU0LjggNTEuOS01NC44IDg4LjQgMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpNOTIuOCAzMjBjMzcuNyA0OC4zIDk2LjEgODAgMTYzLjIgODAgNjYuNSAwIDEyNS4xLTMxLjcgMTYzLTgwbDQ1IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtNjRjMC0yNi41IDIxLjUtNDggNDgtNDhsNDQuOCAwek00NTYgNDAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6Il19LGgzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLXNtaWxlLWJlYW0iLGljb246WzUxMiw1MTIsWzEyODUyMiwic21pbGUtYmVhbSJdLCJmNWI4IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjUuNCAzMjEuOWMyMC40IDI4IDUzLjQgNDYuMSA5MC42IDQ2LjFzNzAuMi0xOC4xIDkwLjYtNDYuMWM3LjgtMTAuNyAyMi44LTEzLjEgMzMuNS01LjNzMTMuMSAyMi44IDUuMyAzMy41QzM1Ni4zIDM5MCAzMDkuMiA0MTYgMjU2IDQxNnMtMTAwLjMtMjYtMTI5LjQtNjUuOWMtNy44LTEwLjctNS40LTI1LjcgNS4zLTMzLjVzMjUuNy01LjQgMzMuNSA1LjN6TTE3NiAxODBjLTE1LjUgMC0yOCAxMi41LTI4IDI4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMzcuNiAzMC40LTY4IDY4LTY4czY4IDMwLjQgNjggNjhsMCA4YzAgMTEtOSAyMC0yMCAyMHMtMjAtOS0yMC0yMGwwLThjMC0xNS41LTEyLjUtMjgtMjgtMjh6bTEzMiAyOGwwIDhjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwbDAtOGMwLTM3LjYgMzAuNC02OCA2OC02OHM2OCAzMC40IDY4IDY4bDAgOGMwIDExLTkgMjAtMjAgMjBzLTIwLTktMjAtMjBsMC04YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4eiJdfSxFJHQ9aDNlLCQkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW50LWFycm93LWxlZnQtcmlnaHQiLGljb246WzUxMiw1MTIsW10sImU1N2YiLCJNLS41IDExM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNzItNzJjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0zMSAzMSAzMTAuMSAwIDU0LjEgMC0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDcyIDcyYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC03MiA3MmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0xMDIuMSAwLS4xIDAtMjYyIDAgMzEgMzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNzItNzJ6TTM3LjEgNDc2TDYwLjMgMjkyLjZjMS4yLTkuNyA2LjgtMTguMyAxNS4xLTIzLjNMMjM4LjggMTcwYzEwLjItNi4yIDIyLjktNi4yIDMzLjEtLjFsMTY1LjUgOTkuNGM4LjQgNSAxNCAxMy43IDE1LjMgMjMuNEw0NzUuOSA0NzZjMi40IDE5LjEtMTIuNSAzNi0zMS43IDM2bC03MS45IDBjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdMMjc1LjQgMzU3LjljLTEuOC0zLjYtNS41LTUuOS05LjUtNS45LTUuOSAwLTEwLjYgNC43LTEwLjYgMTAuNmwwIDExNy40YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDY4LjggNTEyYy0xOS4zIDAtMzQuMi0xNi45LTMxLjctMzZ6Il19LEkkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJyb3V0ZSIsaWNvbjpbNTEyLDUxMixbXSwiZjRkNyIsIk01MTIgOTZjMCA1MC4yLTU5LjEgMTI1LjEtODQuNiAxNTUtMy44IDQuNC05LjQgNi4xLTE0LjUgNUwzMjAgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDk2IDBjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZsLTI3Ni40IDBjOC43LTkuOSAxOS4zLTIyLjYgMzAtMzYuOCA2LjMtOC40IDEyLjgtMTcuNiAxOS0yNy4yTDQxNiA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTk2IDBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZsMzkuOCAwYy0yMS0zMS41LTM5LjgtNjcuNy0zOS44LTk2IDAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZ6TTExNy4xIDQ4OS4xYy0zLjggNC4zLTcuMiA4LjEtMTAuMSAxMS4zbC0xLjggMi0uMi0uMmMtNiA0LjYtMTQuNiA0LTIwLTEuOC0yNS4yLTI3LjQtODUtOTcuOS04NS0xNDguNCAwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgMzAtMjEuMSA2Ny00My41IDk3LjktMTAuNyAxNC43LTIxLjcgMjgtMzAuOCAzOC41bC0uNiAuN3pNMTI4IDM1MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek00MTYgMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sZjNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuZ2xlcy11cCIsaWNvbjpbMzg0LDUxMixbImFuZ2xlLWRvdWJsZS11cCJdLCJmMTAyIiwiTTIxNC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAxMDkuMyAzMjkuNCAyNDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwem0xNjAgMzUybC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMzAxLjMgMzI5LjQgNDM4LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM3oiXX0sUCR0PWYzZSxOJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVja2V0IixpY29uOls0NDgsNTEyLFtdLCJlNGNmIiwiTTQ0My43IDIwOGMyLjcgNC43IDQuMyAxMC4yIDQuMyAxNiAwIDE3LjctMTQuMyAzMi0zMiAzMmwtNS4xIDAtMjIuNCAyMTNjLTIuNiAyNC40LTIzLjIgNDMtNDcuOCA0M2wtMjMzLjYgMGMtMjQuNiAwLTQ1LjItMTguNS00Ny44LTQzTDM3LjEgMjU2IDMyIDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC01LjggMS42LTExLjMgNC4zLTE2bDQzOS40IDB6TTIyNC0xNmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGwwIDMyLTQ4IDAgMC0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmwwIDMyLTQ4IDAgMC0zMkM4MCA0OC41IDE0NC41LTE2IDIyNC0xNnoiXX0sRiR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxlc3MtdGhhbi1lcXVhbCIsaWNvbjpbNDQ4LDUxMixbXSwiZjUzNyIsIk00MjYuMSA5NC40YzE2LjgtNS42IDI1LjgtMjMuNyAyMC4yLTQwLjVzLTIzLjctMjUuOC00MC41LTIwLjJsLTM4NCAxMjhDOC44IDE2NiAwIDE3OC4yIDAgMTkyczguOCAyNiAyMS45IDMwLjRsMzg0IDEyOGMxNi44IDUuNiAzNC45LTMuNSA0MC41LTIwLjJzLTMuNS0zNC45LTIwLjItNDAuNUwxMzMuMiAxOTIgNDI2LjEgOTQuNHpNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDQxNnoiXX0sTyR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZvbGRlci1jbG9zZWQiLGljb246WzUxMiw1MTIsW10sImUxODUiLCJNNDQ4IDQ0OEw2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtMTc2IDUxMiAwIDAgMTc2YzAgMzUuMy0yOC43IDY0LTY0IDY0em02NC0yODhMMCAxNjAgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxMzguNyAwYzEzLjggMCAyNy4zIDQuNSAzOC40IDEyLjhsMzguNCAyOC44YzUuNSA0LjIgMTIuMyA2LjQgMTkuMiA2LjRMNDQ4IDgwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMTZ6Il19LFIkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tdGhyb3VnaC13aW5kb3ciLGljb246WzY0MCw1MTIsW10sImU1YTkiLCJNNjQgNjRsMjI0IDAgMCA5LjhjMCAzOS0yMy43IDc0LTU5LjkgODguNC02MC41IDI0LjItMTAwLjEgODIuNy0xMDAuMSAxNDcuOWwwIDczLjgtNjQgMCAwLTMyMHptMjg4IDBsMjI0IDAgMCAzMjAtNjcuNyAwLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNCA0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwbC0yNi42IDAgNDIuNyA2NCAxNTAuOSAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4bDAtMzUyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4TDAgNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI2MC4yIDAgMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRsLTg0LjItMTI2LjIgNzQuNiAwIDQwIDQ4em0tMTU5LjUgMGwtNzMuNSAwIDAtNzMuOGMwLTEwLjIgMS42LTIwLjEgNC43LTI5LjVMMjY1LjUgMzg0ek0xOTIgMTI4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LEIkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzY2hvb2wtbG9jayIsaWNvbjpbNjQwLDUxMixbXSwiZTU2ZiIsIk0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGw2NCAwIDEyNy45LTExNS4xYzE4LjMtMTYuNCA0Ni0xNi40IDY0LjIgMEw0NDggMTI4IDUxMiAxMjhjMzMgMCA2MC4yIDI1IDYzLjYgNTcuMi0xNC43LTUuOS0zMC44LTkuMi00Ny42LTkuMi03MC43IDAtMTI4IDU3LjMtMTI4IDEyOGwwIDI0LjRjLTE5LjYgMTcuNi0zMiA0My4xLTMyIDcxLjVsMCA5NmMwIDUuNSAuNSAxMC45IDEuMyAxNi4xTDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxOTJ6TTMzMi4zIDM0MS41Yy02LTMuNS0xMi45LTUuNS0yMC4zLTUuNWwtNDggMGMtMjIuMSAwLTQwIDE3LjktNDAgNDBsMCA4OCA5NiAwIDAtNjQuMWMwLTIwLjggNC40LTQwLjUgMTIuMy01OC40ek0xMTIgMzg0YzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDB6bTE2LTE0NGwwLTMyYzAtOC44LTcuMi0xNi0xNi0xNmwtMzIgMGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzJjMCA4LjggNy4yIDE2IDE2IDE2bDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2em0yMjQtNDhhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwek01NjAgMzUybDAtNDcuOWMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDQ3LjkgNjQgMHptLTExMiAyLjdsMC01MC42YzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBsMCA1MC42YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM2wwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0xMjggMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjN6Il19LEgkdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tYnVyc3QiLGljb246WzY0MCw1MTIsW10sImU1M2IiLCJNMjA0IDQwLjFjLTEzLjMgMC0yNC0xMC43LTI0LTI0bDAtNDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNGwwIDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0ek00IDE0NC4xYzAtMTMuMyAxMC43LTI0IDI0LTI0bDQ4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTQ4IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek05Ni41IDI4NS41Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDMzLjktMzMuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMOTYuNSAyODUuNXpNNjIuNiAyLjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzMuOSAzMy45YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNjIuNiAzNi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNMzUyLjQtMzJhNTYgNTYgMCAxIDEgMCAxMTIgNTYgNTYgMCAxIDEgMC0xMTJ6TTQ3OC43IDI5OS4xbC00Ni4zLTYyLjQgMCAyNzUuM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE2MGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTI3NS4zLTQ2LjMgNjIuNGMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuNnMtMTcuMi0zMC42LTYuNi00NC44bDcwLjUtOTVjMjUuMi0zMy45IDY1LTUzLjkgMTA3LjItNTMuOXM4MiAyMCAxMDcuMiA1My45bDcwLjUgOTVjMTAuNSAxNC4yIDcuNiAzNC4yLTYuNiA0NC44cy0zNC4yIDcuNi00NC44LTYuNnoiXX0sbTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlZnQtbG9uZyIsaWNvbjpbNTc2LDUxMixbImxvbmctYXJyb3ctYWx0LWxlZnQiXSwiZjMwYSIsIk05LjQgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlTMTkyIDExNS4xIDE5MiAxMjhsMCA2NCAzMzYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMzYgMCAwIDY0YzAgMTIuOS03LjggMjQuNi0xOS44IDI5LjZzLTI1LjcgMi4yLTM0LjktNi45bC0xMjgtMTI4eiJdfSxxJHQ9bTNlLGczZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsb2NhdGlvbi1jcm9zc2hhaXJzIixpY29uOls1NzYsNTEyLFsibG9jYXRpb24iXSwiZjYwMSIsIk0yODgtMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxOC4zYzk4LjEgMTQgMTc1LjcgOTEuNiAxODkuNyAxODkuN2wxOC4zIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE4LjMgMGMtMTQgOTguMS05MS42IDE3NS43LTE4OS43IDE4OS43bDAgMTguM2MwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTE4LjNDMTU3LjkgNDYzLjcgODAuMyAzODYuMSA2Ni4zIDI4OEw0OCAyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsMTguMyAwQzgwLjMgMTI1LjkgMTU3LjkgNDguMyAyNTYgMzQuM0wyNTYgMTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEyOCAyNTZhMTYwIDE2MCAwIDEgMCAzMjAgMCAxNjAgMTYwIDAgMSAwIC0zMjAgMHptMTYwLTk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyeiJdfSxqJHQ9ZzNlLGIzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZG90cy1mcm9tLWxpbmUiLGljb246WzUxMiw1MTIsWyJkaWFnbm9zZXMiXSwiZjQ3MCIsIk0xODQgNzJhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwek0xNjAgMjk5LjNjLTE5LjkgMjIuNi0zMiA1Mi4yLTMyIDg0LjdsMCAzMi02NCAwIDAtMzJjMC0xMDYgODYtMTkyIDE5Mi0xOTJzMTkyIDg2IDE5MiAxOTJsMCAzMi02NCAwIDAtMzJjMC0zMi41LTEyLjEtNjIuMS0zMi04NC43bDAgMTE2LjctMTkyIDAgMC0xMTYuN3pNMjMyIDM4NGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTg4LTEwNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yNCA0NjRsNDY0IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRMMjQgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek02NCAxODRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptNDI0IDcyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHoiXX0sViR0PWIzZSxxRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJnYXVnZS1zaW1wbGUtaGlnaCIsaWNvbjpbNTEyLDUxMixbNjE2NjgsInRhY2hvbWV0ZXIiLCJ0YWNob21ldGVyLWZhc3QiXSwiZjYyYSIsIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwIDI1NiAyNTYgMCAxIDEgLTUxMiAwem0zMjAgOTZjMC0xNi4yLTYtMzEuMS0xNi00Mi4zbDY5LjUtMTM4LjljNS45LTExLjkgMS4xLTI2LjMtMTAuNy0zMi4ycy0yNi4zLTEuMS0zMi4yIDEwLjdMMjYxLjEgMjg4LjJjLTEuNy0uMS0zLjQtLjItNS4xLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NHoiXX0sVSR0PXFELFckdD1xRCx2M2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYW5nbGVzLWxlZnQiLGljb246WzQ0OCw1MTIsWzE3MSwiYW5nbGUtZG91YmxlLWxlZnQiXSwiZjEwMCIsIk05LjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1NiAyMTQuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHptMzUyLTE2MGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDI2OS4zIDI1NiA0MDYuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMHoiXX0sRyR0PXYzZSx4M2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidXAtZG93biIsaWNvbjpbNTEyLDUxMixbODU5NywxMTAyMSwiYXJyb3dzLWFsdC12Il0sImYzMzgiLCJNNDA2LjYgNTAyLjZsOTYtOTZjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlTNDkyLjkgMzUyIDQ4MCAzNTJsLTY0IDAgMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMjAtNjQgMGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDB6TTE1MC42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTk2IDk2Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOVMxOS4xIDE2MCAzMiAxNjBsNjQgMCAwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMzIwIDY0IDBjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtOTYtOTZ6Il19LFkkdD14M2UseTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhdHRlcnktZW1wdHkiLGljb246WzY0MCw1MTIsWyJiYXR0ZXJ5LTAiXSwiZjI0NCIsIk0xMTIgMTYwYy04LjggMC0xNiA3LjItMTYgMTZsMCAyMjRjMCA4LjggNy4yIDE2IDE2IDE2bDQxNiAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTIyNGMwLTguOC03LjItMTYtMTYtMTZsLTQxNiAwek0zMiAxNzZjMC00NC4yIDM1LjgtODAgODAtODBsNDE2IDBjNDQuMiAwIDgwIDM1LjggODAgODBsMCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgNDhjMCA0NC4yLTM1LjggODAtODAgODBsLTQxNiAwYy00NC4yIDAtODAtMzUuOC04MC04MGwwLTIyNHoiXX0sWiR0PXkzZSxYJHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToia2V5Ym9hcmQiLGljb246WzU3Niw1MTIsWzllM10sImYxMWMiLCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhMMCAzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRsNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgNjR6bTE2IDY0bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyek0xNzYgMTI4bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMmMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMjI0IDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0yMjQgMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMzJjMC04LjggNy4yLTE2IDE2LTE2em04MC0xNzZjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnptODAtODBjMC04LjggNy4yLTE2IDE2LTE2bDMyIDBjOC44IDAgMTYgNy4yIDE2IDE2bDAgMzJjMCA4LjgtNy4yIDE2LTE2IDE2bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0zMnptMTYgODBsMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZsMCAzMmMwIDguOC03LjIgMTYtMTYgMTZsLTMyIDBjLTguOCAwLTE2LTcuMi0xNi0xNmwwLTMyYzAtOC44IDcuMi0xNiAxNi0xNnoiXX0sUSR0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvb2tpZSIsaWNvbjpbNTEyLDUxMixbMTI3ODUwXSwiZjU2MyIsIk0yNDcuMiAxN2MtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45bC0xNC42LTgyLjhjLTMuOS0yMi4xLTE0LjYtNDIuMy0zMC43LTU3LjlMMzg4LjkgNTcuNWMtMTYuMS0xNS42LTM2LjYtMjUuNi01OC43LTI4LjdMMjQ3LjIgMTd6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6Il19LEokdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdG9wd2F0Y2giLGljb246WzQ0OCw1MTIsWzkyMDFdLCJmMmYyIiwiTTE2OC41IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDI1LjNjLTEwOCAxMS45LTE5MiAxMDMuNS0xOTIgMjE0LjcgMCAxMTkuMyA5Ni43IDIxNiAyMTYgMjE2czIxNi05Ni43IDIxNi0yMTZjMC0zOS44LTEwLjgtNzcuMS0yOS42LTEwOS4ybDI4LjItMjguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMjMuNCAyMy40Yy0zMi45LTMwLjItNzUuMi01MC4zLTEyMi01NS41bDAtMjUuMyAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xMTIgMHptODAgMTg0bDAgMTA0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTA0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6Il19LEskdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJlamVjdCIsaWNvbjpbNDQ4LDUxMixbOTE2N10sImYwNTIiLCJNMjI0IDMyYzEzLjUgMCAyNi4zIDUuNiAzNS40IDE1LjZsMTc2IDE5MmMxMi45IDE0IDE2LjIgMzQuMyA4LjYgNTEuOFM0MTkgMzIwIDQwMCAzMjBMNDggMzIwYy0xOSAwLTM2LjMtMTEuMi00My45LTI4LjdzLTQuMy0zNy43IDguNi01MS44bDE3Ni0xOTJDMTk3LjcgMzcuNiAyMTAuNSAzMiAyMjQgMzJ6TTAgNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4bDM1MiAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4TDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6Il19LGVJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYXRlbGxpdGUtZGlzaCIsaWNvbjpbNTEyLDUxMixbMTI4MjI1XSwiZjdjMCIsIk0yMzIgMGMxNTQuNiAwIDI4MCAxMjUuNCAyODAgMjgwIDAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtMTI4LjEtMTAzLjktMjMyLTIzMi0yMzItMTMuMyAwLTI0LTEwLjctMjQtMjRTMjE4LjcgMCAyMzIgMHpNMjA4IDEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNCAxMDEuNiAwIDE4NCA4Mi40IDE4NCAxODQgMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC03NS4xLTYwLjktMTM2LTEzNi0xMzYtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI2LjQgMTQyLjdjOC44LTE3LjkgMzIuNC0xOS45IDQ2LjUtNS44bDEyOC41IDEyOC41IDMyLTMyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTMyIDMyIDEyOC41IDEyOC41YzE0LjEgMTQuMSAxMiAzNy42LTUuOCA0Ni41LTM0LjIgMTYuOS03Mi42IDI2LjQtMTEzLjMgMjYuNC0xNDEuNCAwLTI1Ni0xMTQuNi0yNTYtMjU2IDAtNDAuNyA5LjUtNzkuMiAyNi40LTExMy4zeiJdfSx3M2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmFjZS1yb2xsaW5nLWV5ZXMiLGljb246WzUxMiw1MTIsWzEyODU4MCwibWVoLXJvbGxpbmctZXllcyJdLCJmNWE1IiwiTTI1NiA1MTJhMjU2IDI1NiAwIDEgMCAwLTUxMiAyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMzUybDEyOCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xMjggMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMzItMTI4YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40em0xMjggNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjYgMTUuNS00OC40IDM3LjgtNTguNC0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjQgMjIuMyAxMCAzNy44IDMyLjQgMzcuOCA1OC40IDAgMzUuMy0yOC43IDY0LTY0IDY0eiJdfSx0SXQ9dzNlLE0zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJsaXN0LWNoZWNrIixpY29uOls1MTIsNTEyLFsidGFza3MiXSwiZjBhZSIsIk0xMzMuOCAzNi4zYzEwLjkgNy42IDEzLjUgMjIuNiA1LjkgMzMuNGwtNTYgODBjLTQuMSA1LjgtMTAuNSA5LjUtMTcuNiAxMC4xUzUyIDE1OCA0NyAxNTNMNyAxMTNDLTIuMyAxMDMuNi0yLjMgODguNCA3IDc5UzMxLjYgNjkuNyA0MSA3OWwxOS44IDE5LjggMzkuNi01Ni42YzcuNi0xMC45IDIyLjYtMTMuNSAzMy40LTUuOXptMCAxNjBjMTAuOSA3LjYgMTMuNSAyMi42IDUuOSAzMy40bC01NiA4MGMtNC4xIDUuOC0xMC41IDkuNS0xNy42IDEwLjFTNTIgMzE4IDQ3IDMxM0w3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDE5LjggMTkuOCAzOS42LTU2LjZjNy42LTEwLjkgMjIuNi0xMy41IDMzLjQtNS45ek0yMjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJsMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIyNCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTYwIDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMjg4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek02NCAzNzZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgweiJdfSxySXQ9TTNlLGlJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzYWNrLXhtYXJrIixpY29uOls1MTIsNTEyLFtdLCJlNTZhIiwiTTMyOCAxMTJsLTE0NCAwLTM3LjMtNzQuNWMtMS44LTMuNi0yLjctNy42LTIuNy0xMS42IDAtMTQuMyAxMS42LTI1LjkgMjUuOS0yNS45TDM0Mi4xIDBjMTQuMyAwIDI1LjkgMTEuNiAyNS45IDI1LjkgMCA0LS45IDgtMi43IDExLjZMMzI4IDExMnpNMTY5LjYgMTYwbDE3Mi44IDAgNDguNyA0MC42QzQ1Ny42IDI1NiA0OTYgMzM4IDQ5NiA0MjQuNSA0OTYgNDcyLjggNDU2LjggNTEyIDQwOC41IDUxMmwtMzA1LjEgMEM1NS4yIDUxMiAxNiA0NzIuOCAxNiA0MjQuNSAxNiAzMzggNTQuNCAyNTYgMTIwLjkgMjAwLjZMMTY5LjYgMTYwek0zMjMuOSAyODQuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTMzLjkgMzMuOS0zMy45LTMzLjljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzMuOSAzMy45LTMzLjkgMzMuOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDMzLjktMzMuOSAzMy45IDMzLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMy45LTMzLjkgMzMuOS0zMy45YzkuNC05LjQgOS40LTI0LjYgMC0zMy45eiJdfSxhSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaGFzaHRhZyIsaWNvbjpbNTEyLDUxMixbNjIwOThdLCIyMyIsIk0yMTQuNyAuN2MxNy4zIDMuNyAyOC4zIDIwLjcgMjQuNiAzOGwtMTkuMSA4OS4zIDEyNi41IDAgMjItMTAyLjdDMzcyLjQgOCAzODkuNC0zIDQwNi43IC43czI4LjMgMjAuNyAyNC42IDM4TDQxMi4yIDEyOCA0ODAgMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MS42IDAtMjcuNCAxMjggNjcuOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC04MS42IDAtMjIgMTAyLjdjLTMuNyAxNy4zLTIwLjcgMjguMy0zOCAyNC42cy0yOC4zLTIwLjctMjQuNi0zOGwxOS4xLTg5LjMtMTI2LjUgMC0yMiAxMDIuN2MtMy43IDE3LjMtMjAuNyAyOC4zLTM4IDI0LjZzLTI4LjMtMjAuNy0yNC42LTM4TDk5LjggMzg0IDMyIDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw4MS42IDAgMjcuNC0xMjgtNjcuOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDgxLjYgMCAyMi0xMDIuN0MxODAuNCA4IDE5Ny40LTMgMjE0LjcgLjd6TTIwNi40IDE5MmwtMjcuNCAxMjggMTI2LjUgMCAyNy40LTEyOC0xMjYuNSAweiJdfSxuSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4iLGljb246WzM4NCw1MTIsWzEyODY0Nl0sImYyMzgiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsMTkyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC05NmMwLTE3LjctMTQuMy0zMi0zMi0zMkw5NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTE5MiAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0eiJdfSxvSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZ2FtZXBhZCIsaWNvbjpbNjQwLDUxMixbXSwiZjExYiIsIk00NDggNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJTNTU0IDQ0OCA0NDggNDQ4bC0yNTYgMEM4NiA0NDggMCAzNjIgMCAyNTZTODYgNjQgMTkyIDY0bDI1NiAwek0xOTIgMTc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNGwwIDMyLTMyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMzIgMCAwIDMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC0zMiAzMiAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0zMiAwIDAtMzJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTI0MCA5NmEzMiAzMiAwIDEgMCAwIDY0IDMyIDMyIDAgMSAwIDAtNjR6bTY0LTk2YTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHoiXX0sazNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtZXhwb3J0IixpY29uOls1NzYsNTEyLFsiYXJyb3ctcmlnaHQtZnJvbS1maWxlIl0sImY1NmUiLCJNOTYuNSAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwyNTYgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTk2IDc4LjEgMC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC03Mi03MmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMS03OC4xIDAgMC0xMzMuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyOTEuMiAxOC43QzI3OS4yIDYuNyAyNjMgMCAyNDYgMEw5Ni41IDB6TTM1OCAxNzZsLTkzLjUgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRMMjQwLjUgNTguNSAzNTggMTc2ek0yMjQuNSAzMjhjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTA0IDAgMCA0OC0xMDQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6Il19LHNJdD1rM2UsUzNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZ3JpbWFjZSIsaWNvbjpbNTEyLDUxMixbMTI4NTU2LCJncmltYWNlIl0sImY1N2YiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTQwMCAzNTJjMCAyNS4yLTE5LjQgNDUuOC00NCA0Ny44bDAtOTUuN2MyNC42IDIgNDQgMjIuNyA0NCA0Ny44ek0yNzYgMzA0bDQwIDAgMCA5Ni00MCAwIDAtOTZ6bS04MCA5NmwwLTk2IDQwIDAgMCA5Ni00MCAwem0tNDAtOTUuOGwwIDk1LjdjLTI0LjYtMi00NC0yMi43LTQ0LTQ3LjhzMTkuNC00NS44IDQ0LTQ3Ljh6TTE0NCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHoiXX0sbEl0PVMzZSx6M2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidHJhaW4tc3Vid2F5IixpY29uOlszODQsNTEyLFsic3Vid2F5Il0sImYyMzkiLCJNMCA5NkMwIDQzIDQzIDAgOTYgMEwyODggMGM1MyAwIDk2IDQzIDk2IDk2bDAgMjU2YzAgNDAuMS0yNC42IDc0LjUtNTkuNSA4OC44bDUzLjkgNjMuN2M4LjYgMTAuMSA3LjMgMjUuMy0yLjggMzMuOHMtMjUuMyA3LjMtMzMuOC0yLjhsLTc0LTg3LjUtMTUxLjMgMC03NCA4Ny41Yy04LjYgMTAuMS0yMy43IDExLjQtMzMuOCAyLjhzLTExLjQtMjMuNy0yLjgtMzMuOGw1My45LTYzLjdDMjQuNiA0MjYuNSAwIDM5Mi4xIDAgMzUyTDAgOTZ6bTY0IDMybDAgOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNzIgMCAwLTE2MC03MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMjE2IDI1Nmw3MiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMybDAtOTZjMC0xNy43LTE0LjMtMzItMzItMzJsLTcyIDAgMCAxNjB6TTk2IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTIyNC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAweiJdfSxjSXQ9ejNlLEMzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtZG90IixpY29uOls1MTIsNTEyLFsxMjgyODAsImRvdC1jaXJjbGUiXSwiZjE5MiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0zNTJhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6Il19LGRJdD1DM2UsdUl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9iamVjdC1ncm91cCIsaWNvbjpbNTc2LDUxMixbXSwiZjI0NyIsIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0IDAgMjguNyAyOC43IDAgNjQgMCA4Ny43IDAgMTA4LjQgMTIuOSAxMTkuNCAzMmwzMzcuMSAwYzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzIgMzUuMyAwIDY0IDI4LjcgNjQgNjQgMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40bDAgMjczLjFjMTkuMSAxMS4xIDMyIDMxLjcgMzIgNTUuNCAwIDM1LjMtMjguNyA2NC02NCA2NC0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJsLTMzNy4xIDBjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzItMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yMy43IDEyLjktNDQuNCAzMi01NS40bDAtMjczLjF6bTQ0OCAwYy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRMMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNGwwIDI3My4xYzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNGwzMzcuMSAwYzUuNi05LjcgMTMuNy0xNy44IDIzLjQtMjMuNGwwLTI3My4xek0xNDQgMTc2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDExMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTExMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0ek0yNTYgMzIwbDMyIDBjNDQuMiAwIDgwLTM1LjggODAtODBsMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xNnoiXX0scEl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNoaXAiLGljb246WzY0MCw1MTIsWzEyODY3NF0sImYyMWEiLCJNMjcyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTYtMTYgMGMtNDQuMiAwLTgwIDM1LjgtODAgODBsMCAxMDguOC0yMS42IDguNmMtMTQuOCA1LjktMjIuNSAyMi40LTE3LjQgMzcuNSAxMC40IDMxLjMgMjYuOCA1OS4zIDQ3LjcgODMuMSAyMC4xLTkuMiA0MS43LTEzLjkgNjMuMy0xNCAzMy4xLS4yIDY2LjMgMTAuMiA5NC40IDMxLjRsMS42IDEuMiAwLTIxNS0xMDQgNDEuNiAwLTgzLjJjMC04LjggNy4yLTE2IDE2LTE2bDIyNCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDgzLjItMTA0LTQxLjYgMCAyMTUgMS42LTEuMmMyNy41LTIwLjcgNTkuOS0zMS4yIDkyLjQtMzEuNCAyMi4zLS4xIDQ0LjYgNC41IDY1LjMgMTQgMjAuOS0yMy43IDM3LjMtNTEuOCA0Ny43LTgzLjEgNS0xNS4yLTIuNi0zMS42LTE3LjQtMzcuNUw1MTIgMjUyLjggNTEyIDE0NGMwLTQ0LjItMzUuOC04MC04MC04MGwtMTYgMCAwLTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4TDI3MiAwek00MDMuNCA0NzYuMWMyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAxOSAxNC40IDQxLjkgMjguMiA2Ny4yIDMzLjMgMjYuNSA1LjQgNTQuMyAuOCA4MC43LTE5LjEgMTAuNi04IDEyLjctMjMgNC43LTMzLjZzLTIzLTEyLjctMzMuNi00LjdjLTE0LjkgMTEuMi0yOC42IDEzLjEtNDIuMyAxMC4zLTE0LjktMy0zMC45LTExLjktNDcuOC0yNC42LTM4LjQtMjktOTAuNS0yOS0xMjkgMC0yNCAxOC4xLTQwLjcgMjYuMy01NC41IDI2LjNzLTMwLjUtOC4yLTU0LjUtMjYuM2MtMzguNC0yOS05MC41LTI5LTEyOSAwLTIxLjYgMTYuMy00MS4zIDI1LjgtNTguOSAyNS43LTkuNi0uMS0xOS45LTMtMzEuMi0xMS41LTEwLjYtOC0yNS42LTUuOS0zMy42IDQuN1M3IDQ4Mi4zIDE3LjYgNDkwLjNjMTkuMSAxNC40IDM5LjQgMjEgNTkuOCAyMS4xIDMzLjkgLjIgNjQuMy0xNy40IDg4LjEtMzUuMyAyMS4zLTE2LjEgNDkuOS0xNi4xIDcxLjIgMCAyNC4yIDE4LjMgNTIuMyAzNS45IDgzLjQgMzUuOXM1OS4xLTE3LjcgODMuNC0zNS45eiJdfSxoSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYyIsaWNvbjpbMzg0LDUxMixbOTldLCI0MyIsIk0zMjkuMSAxNDIuOWMtNjIuNS02Mi41LTE1NS44LTYyLjUtMjE4LjMgMHMtNjIuNSAxNjMuOCAwIDIyNi4zIDE1NS44IDYyLjUgMjE4LjMgMGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zYy04Ny41IDg3LjUtMjIxLjMgODcuNS0zMDguOCAwcy04Ny41LTIyOS4zIDAtMzE2LjggMjIxLjMtODcuNSAzMDguOCAwYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAweiJdfSxUM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXBob25lIixpY29uOls0NDgsNTEyLFsicGhvbmUtc3F1YXJlIl0sImYwOTgiLCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NGwzMjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTMyMGMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMnptODggOTYuN2M5LjgtMi43IDIwLjEgMi40IDI0IDExLjhsMjAuMyA0OC43YzMuNCA4LjMgMS4xIDE3LjgtNS45IDIzLjVsLTIyLjEgMThjMTYuMiAzNS44IDQ0LjUgNjUgNzkuNiA4Mi40bDE5LjMtMjMuNmM1LjctNi45IDE1LjItOS4zIDIzLjUtNS45bDQ4LjcgMjAuM2M5LjQgMy45IDE0LjQgMTQuMiAxMS44IDI0bC0uOCAyLjhjLTguOCAzMi4zLTQwLjEgNTkuOS03OC4yIDUxLjgtODcuNS0xOC41LTE1Ni4zLTg3LjQtMTc0LjktMTc0LjktOC4xLTM4LjEgMTkuNS02OS40IDUxLjgtNzguMmwyLjgtLjh6Il19LGZJdD1UM2UsbUl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJ1bGVyLWNvbWJpbmVkIixpY29uOls0NDgsNTEyLFtdLCJmNTQ2IiwiTTEgNDQxLjdDNS41IDQ2My41IDI0LjggNDgwIDQ4IDQ4MGwzNTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC00OCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi02NCAwIDAgNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC03Mi03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC02NC03MiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDAgMC00OGMwLTI2LjUtMjEuNS00OC00OC00OEw0OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwTDAgNDMyYzAgMy4zIC4zIDYuNiAxIDkuN3oiXX0sakQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYXJyb3dzLXJvdGF0ZSIsaWNvbjpbNTEyLDUxMixbMTI4NDcyLCJyZWZyZXNoIiwic3luYyJdLCJmMDIxIiwiTTY1LjkgMjI4LjVjMTMuMy05MyA5My40LTE2NC41IDE5MC4xLTE2NC41IDUzIDAgMTAxIDIxLjUgMTM1LjggNTYuMiAuMiAuMiAuNCAuNCAuNiAuNmw3LjYgNy4yLTQ3LjkgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMjggMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDUzLjQtMTEuMy0xMC43QzM5MC41IDI4LjYgMzI2LjUgMCAyNTYgMCAxMjcgMCAyMC4zIDk1LjQgMi42IDIxOS41IC4xIDIzNyAxMi4yIDI1My4yIDI5LjcgMjU1LjdzMzMuNy05LjcgMzYuMi0yNy4xem00NDMuNSA2NGMyLjUtMTcuNS05LjctMzMuNy0yNy4xLTM2LjJzLTMzLjcgOS43LTM2LjIgMjcuMWMtMTMuMyA5My05My40IDE2NC41LTE5MC4xIDE2NC41LTUzIDAtMTAxLTIxLjUtMTM1LjgtNTYuMi0uMi0uMi0uNC0uNC0uNi0uNmwtNy42LTcuMiA0Ny45IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIwYy04LjUgMC0xNi43IDMuNC0yMi43IDkuNVMtLjEgMzQzLjcgMCAzNTIuM2wxIDEyN2MuMSAxNy43IDE0LjYgMzEuOSAzMi4zIDMxLjdTNjUuMiA0OTYuNCA2NSA0NzguN2wtLjQtNTEuNSAxMC43IDEwLjFjNDYuMyA0Ni4xIDExMC4yIDc0LjcgMTgwLjcgNzQuNyAxMjkgMCAyMzUuNy05NS40IDI1My40LTIxOS41eiJdfSxnSXQ9akQsYkl0PWpELF8zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJwZXJzb24tZHJlc3MiLGljb246WzM4NCw1MTIsWyJmZW1hbGUiXSwiZjE4MiIsIk0xMzYgMjRhNTYgNTYgMCAxIDEgMTEyIDAgNTYgNTYgMCAxIDEgLTExMiAwek0xMTIgMzg0bC0yNS44IDBjLTEwLjkgMC0xOC42LTEwLjctMTUuMi0yMS4xbDQzLTEyOS00OC4zIDY1LjFjLTEwLjUgMTQuMi0zMC42IDE3LjItNDQuOCA2LjZzLTE3LjItMzAuNi02LjYtNDQuOGw3MC41LTk1QzExMCAxMzIgMTQ5LjcgMTEyIDE5MiAxMTJzODIgMjAgMTA3LjIgNTMuOWw3MC41IDk1YzEwLjUgMTQuMiA3LjYgMzQuMi02LjYgNDQuOHMtMzQuMiA3LjYtNDQuOC02LjZMMjcwIDIzNCAzMTMgMzYyLjljMy41IDEwLjQtNC4zIDIxLjEtMTUuMiAyMS4xbC0yNS44IDAgMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0xMjgtMzIgMCAwIDEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmwwLTEyOHoiXX0sdkl0PV8zZSx4SXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYm9vay1vcGVuIixpY29uOls1MTIsNTEyLFsxMjgyMTQsMTI4MzY2XSwiZjUxOCIsIk0yNTYgMTQxLjNsMCAzMDkuMyAuNS0uMkMzMTEuMSA0MjcuNyAzNjkuNyA0MTYgNDI4LjggNDE2bDE5LjIgMCAwLTMyMC0xOS4yIDBjLTQyLjIgMC04NC4xIDguNC0xMjMuMSAyNC42LTE2LjggNy0zMy40IDEzLjktNDkuNyAyMC43ek0yMzAuOSA2MS41TDI1NiA3MiAyODEuMSA2MS41QzMyNy45IDQyIDM3OC4xIDMyIDQyOC44IDMyTDQ2NCAzMmMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMzUuMiAwYy01MC43IDAtMTAwLjkgMTAtMTQ3LjcgMjkuNWwtMTIuOCA1LjNjLTcuOSAzLjMtMTYuNyAzLjMtMjQuNiAwbC0xMi44LTUuM0MxODQuMSA0OTAgMTMzLjkgNDgwIDgzLjIgNDgwTDQ4IDQ4MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNS4yIDBjNTAuNyAwIDEwMC45IDEwIDE0Ny43IDI5LjV6Il19LHlJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmb2xkZXItdHJlZSIsaWNvbjpbNTc2LDUxMixbXSwiZjgwMiIsIk00OCAyNEM0OCAxMC43IDM3LjMgMCAyNCAwUzAgMTAuNyAwIDI0TDAgMzkyYzAgMzAuOSAyNS4xIDU2IDU2IDU2bDE4NCAwIDAtNDgtMTg0IDBjLTQuNCAwLTgtMy42LTgtOGwwLTIzMiAxOTIgMCAwLTQ4LTE5MiAwIDAtODh6TTMzNiAyMjRsMTkyIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtODIuNyAwYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtOC42LTguNmMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFMMzM2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4bDAgMTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em0wIDI4OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTk2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4bC04Mi43IDBjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40bC04LjYtOC42Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUwzMzYgMjg4Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OHoiXX0sd0l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InZpcmdvIixpY29uOls2NDAsNTEyLFtdLCJlODUwIiwiTTM2OCAzMmM2MS45IDAgMTEyIDUwLjEgMTEyIDExMmwwIDI2LjhjMTQuNS02LjkgMzAuOC0xMC44IDQ4LTEwLjggNjEuOSAwIDExMiA1MC4xIDExMiAxMTJTNTg5LjkgMzg0IDUyOCAzODRsLTQ4IDAgMCAzMmMwIDE2LjYgMTIuNiAzMC4yIDI4LjcgMzEuOGw2LjYgLjNjMTYuMSAxLjYgMjguNyAxNS4zIDI4LjcgMzEuOCAwIDE3LjctMTQuMyAzMi0zMiAzMi01MyAwLTk2LTQzLTk2LTk2bDAtMzItMTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxNiAwIDAtMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4bDAgMzA0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMzIwYzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiA5NC4yIDMyIDgwLjYgMzIgNjQgMzIgNDYuMyA0Ni4zIDMyIDY0IDMyIDkxIDMyIDExNS4zIDQzLjEgMTMyLjcgNjEgMTUyLjYgNDMgMTc5IDMyIDIwOCAzMiAyMzkuMyAzMiAyNjcuNyA0NC45IDI4OCA2NS43IDMwOC4zIDQ0LjkgMzM2LjYgMzIgMzY4IDMyek01MjggMjI0Yy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDQ4IDQ4IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDh6Il19LEwzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJib3gtYXJjaGl2ZSIsaWNvbjpbNTEyLDUxMixbImFyY2hpdmUiXSwiZjE4NyIsIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMybDQ0OCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJMMzIgMTI4QzE0LjMgMTI4IDAgMTEzLjcgMCA5NkwwIDY0ek0zMiAxNzZsNDQ4IDAgMCAyNDBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMOTYgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NGwwLTI0MHptMTUyIDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDE0NCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNDQgMHoiXX0sTUl0PUwzZSxrSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGVudC1hcnJvdy1kb3duLXRvLWxpbmUiLGljb246WzU3Niw1MTIsW10sImU1N2UiLCJNMTg1IDEyMWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC0zMSAzMSAwLTEwMi4xQzEyMCAyLjcgMTA5LjMtOCA5Ni04UzcyIDIuNyA3MiAxNmwwIDEwMi4xLTMxLTMxQzMxLjYgNzcuNyAxNi40IDc3LjcgNyA4N1MtMi4zIDExMS42IDcgMTIxbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDcyLTcyek0xNTUuOCAyNjAuNkwxMzIuMSA0NDggMzIgNDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtMi44LS40LTUuNS0xLThMNTQ4LjIgMjYwLjdjLTEuMi05LjctNi45LTE4LjQtMTUuMy0yMy40TDM2Ny40IDEzNy45Yy0xMC4yLTYuMS0yMi45LTYuMS0zMy4xIC4xTDE3MC45IDIzNy4zYy04LjMgNS4xLTEzLjkgMTMuNy0xNS4xIDIzLjN6TTQ0OCA0NDhsLTk3LjEgMCAwLTE0OS40YzAtNS45IDQuNy0xMC42IDEwLjYtMTAuNiA0IDAgNy43IDIuMyA5LjUgNS45TDQ0OCA0NDh6Il19LFNJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJxcmNvZGUiLGljb246WzQ0OCw1MTIsW10sImYwMjkiLCJNNjQgMTYwbDY0IDAgMC02NC02NCAwIDAgNjR6TTAgODBDMCA1My41IDIxLjUgMzIgNDggMzJsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDgwek02NCA0MTZsNjQgMCAwLTY0LTY0IDAgMCA2NHpNMCAzMzZjMC0yNi41IDIxLjUtNDggNDgtNDhsOTYgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC05NiAwYy0yNi41IDAtNDgtMjEuNS00OC00OGwwLTk2ek0zMjAgOTZsMCA2NCA2NCAwIDAtNjQtNjQgMHpNMzA0IDMybDk2IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtOTYgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC05NmMwLTI2LjUgMjEuNS00OCA0OC00OHpNMjg4IDM1MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6bTAgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem05NiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptMzItOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0tMzIgMzJhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHoiXX0sekl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRyYWdvbiIsaWNvbjpbNjQwLDUxMixbMTI4MDA5XSwiZjZkNSIsIk0zNTIgMTI0LjVsLTUxLjktMTNjLTYuNS0xLjYtMTEuMy03LjEtMTItMTMuOHMyLjgtMTMuMSA4LjctMTYuMWw0MC44LTIwLjQtNDMuMy0zMi41Yy01LjUtNC4xLTcuOC0xMS4zLTUuNi0xNy45UzI5Ny4xIDAgMzA0IDBMNDY0IDBjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRsNTcuNiA3Ni44YzYuMiA4LjMgOS42IDE4LjQgOS42IDI4LjggMCAyNi41LTIxLjUgNDgtNDggNDhsLTIxLjUgMGMtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdsLTEzLjMtMTMuMy0zMiAwIDAgMjEuNWMwIDI0LjggMTIuOCA0Ny45IDMzLjggNjEuMWwxMDYuNiA2Ni42YzMyLjEgMjAuMSA1MS42IDU1LjIgNTEuNiA5My4xIDAgNjAuNi00OS4xIDEwOS44LTEwOS44IDEwOS44TDMyLjMgNTEyYy0zLjMgMC02LjYtLjQtOS42LTEuNC05LjItMi44LTE2LjctOS42LTIwLjQtMTguNi0xLjMtMy4zLTIuMi02LjktMi4zLTEwLjctLjItMy43IC4zLTcuMyAxLjMtMTAuNyAyLjgtOS4yIDkuNi0xNi43IDE4LjYtMjAuNCAzLTEuMiA2LjItMiA5LjUtMi4yTDQzMy4zIDQxMmM4LjMtLjcgMTQuNy03LjcgMTQuNy0xNi4xIDAtNC4zLTEuNy04LjQtNC43LTExLjRsLTQ0LjQtNDQuNGMtMzAtMzAtNDYuOS03MC43LTQ2LjktMTEzLjFsMC0xMDIuNXpNNTEyIDcyLjNjMC0uMSAwLS4yIDAtLjNzMC0uMiAwLS4zbDAgLjZ6bS0xLjMgNy40TDQ2NC4zIDY4LjFjLS4yIDEuMy0uMyAyLjYtLjMgMy45IDAgMTMuMyAxMC43IDI0IDI0IDI0IDEwLjYgMCAxOS41LTYuOCAyMi43LTE2LjN6TTEzMC45IDExNi41YzE2LjMtMTQuNSA0MC40LTE2LjIgNTguNS00LjFsMTMwLjYgODcgMCAyNy41YzAgMzIuOCA4LjQgNjQuOCAyNCA5M2wtMjMyIDBjLTYuNyAwLTEyLjctNC4yLTE1LTEwLjRzLS41LTEzLjMgNC42LTE3LjdMMTcxIDIzMi4zIDE4LjQgMjU1LjhjLTcgMS4xLTEzLjktMi42LTE2LjktOVMuMSAyMzIuOCA1LjQgMjI4TDEzMC45IDExNi41eiJdfSxBM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91cmdsYXNzLWVuZCIsaWNvbjpbMzg0LDUxMixbODk4NywiaG91cmdsYXNzLTMiXSwiZjI1MyIsIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0bDAgMTFjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xbDY3LjkgNjcuOS02Ny45IDY3LjlDNDguOSAzNTMuOSAzMiAzOTQuNiAzMiA0MzdsMCAxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwwLTExYzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMWwtNjcuOS02Ny45IDY3LjktNjcuOWMzMC0zMCA0Ni45LTcwLjcgNDYuOS0xMTMuMWwwLTExYzE3LjcgMCAzMi0xNC4zIDMyLTMyUzM2OS43IDAgMzUyIDBMMzIgMHpNOTYgNzVsMC0xMSAxOTIgMCAwIDExYzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45bC02Ny45IDY3LjktNjcuOS02Ny45QzEwNi4xIDEyNC45IDk2IDEwMC40IDk2IDc1eiJdfSxDSXQ9QTNlLEhwPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImdyaXAiLGljb246WzUxMiw1MTIsWzU4MTE5LCJncmlkLWhvcml6b250YWwiLCJncmlwLWhvcml6b250YWwiXSwiZjU4ZCIsIk04OCA5NmMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDB6TTI4MCAyMjRsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDBsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwem0xOTIgMGwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6bTAgMTkybC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDBjMjIuMSAwIDQwIDE3LjkgNDAgNDBsMCA0OGMwIDIyLjEtMTcuOSA0MC00MCA0MHpNMjgwIDI4OGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwbDQ4IDB6TTg4IDQxNmwtNDggMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDB6Il19LFRJdD1IcCxfSXQ9SHAsRDNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvcmRlci10b3AtbGVmdCIsaWNvbjpbNDQ4LDUxMixbImJvcmRlci1zdHlsZSJdLCJmODUzIiwiTTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zNTIgMzUyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NkwwIDQ0OHptMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJ6bTEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyem0xNjAgMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyek0zODQgMTkyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bTMyIDE2MGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6Il19LExJdD1EM2UsRTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Imxpc3QtdWwiLGljb246WzUxMiw1MTIsWyJsaXN0LWRvdHMiXSwiZjBjYSIsIk00OCAxNDRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjg4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMTkyIDY0em0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwyODggMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjg4IDB6bTAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI4OCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC0yODggMHpNNDggNDY0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNOTYgMjU2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6Il19LEFJdD1FM2UsREl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1yb2JiZXJ5IixpY29uOls1NzYsNTEyLFtdLCJlNTM2IiwiTTQ4OC4yIDU5LjFDNDc4LjEgOTkuNiA0NDEuNyAxMjggNDAwIDEyOHMtNzguMS0yOC40LTg4LjItNjguOUwzMDMgMjQuMkMyOTguOCA3LjEgMjgxLjQtMy4zIDI2NC4yIDFTMjM2LjcgMjIuNiAyNDEgMzkuOGw4LjcgMzQuOWMxMSA0NCA0MC4yIDc5LjYgNzguMyA5OS42TDMyOCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEyOCAxNiAwIDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDUuN2MzOC4xLTIwIDY3LjMtNTUuNiA3OC4zLTk5LjZMNTU5IDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzUwMS4yIDcuMSA0OTcgMjQuMmwtOC43IDM0Ljl6TTQwMCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTgwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTggMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0bDAgOTYgMCAuNiAwIDE5MS40YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0xMjggMTYgMCAwIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjI3LjMgMTMgMjAuNWM1LjkgOS4yIDE2LjEgMTQuOSAyNyAxNC45bDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMwLjQgMC0zNy40LTU4LjlDMTU3LjYgMTQyIDEzMi4xIDEyOCAxMDQuNyAxMjhMNzIgMTI4eiJdfSxFSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9iaWxlLWJ1dHRvbiIsaWNvbjpbMzg0LDUxMixbXSwiZjEwYiIsIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0bDAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDIyNCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzg0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDgwIDB6TTE5MiA0NjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyeiJdfSxWRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJhcnJvdy1kb3duLWEteiIsaWNvbjpbNTEyLDUxMixbInNvcnQtYWxwaGEtYXNjIiwic29ydC1hbHBoYS1kb3duIl0sImYxNWQiLCJNMjMwLjYgMzkwLjZsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMOTYgMzcwLjcgOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMmwwIDMwNi43IDI1LjQtMjUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0xODItMzQwLjljNTAuNyAxMDEuMyA3Ny4zIDE1NC43IDgwIDE2MCA3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45cy0zNSAxLjUtNDIuOS0xNC4zbC03LjItMTQuMy04OC40IDAtNy4yIDE0LjNjLTcuOSAxNS44LTI3LjEgMjIuMi00Mi45IDE0LjNzLTIyLjItMjcuMS0xNC4zLTQyLjljMi43LTUuMyAyOS4zLTU4LjcgODAtMTYwIDUuNC0xMC44IDE2LjUtMTcuNyAyOC42LTE3LjdzMjMuMiA2LjggMjguNiAxNy43ek0zODQgMTM1LjZsLTIwLjIgNDAuNCA0MC40IDAtMjAuMi00MC40ek0yODggMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMybDEyOCAwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMMzk3LjMgNDE2IDQ0OCA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTEyOCAwYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOWw3My40LTczLjQtNTAuNyAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnoiXX0sJEl0PVZELElJdD1WRCxQSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibW9uZXktYmlsbCIsaWNvbjpbNTEyLDUxMixbXSwiZjBkNiIsIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOEwwIDM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTI1NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCA2NHptMTkyIDk2YTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyem0xOTIgMjRjMCA0LjQtMy42IDguMS04IDcuNS0yOS0zLjYtNTEuOS0yNi42LTU1LjUtNTUuNS0uNS00LjQgMy4xLTggNy41LThsNDggMGM0LjQgMCA4IDMuNiA4IDhsMCA0OHpNNjQgMzI4YzAtNC40IDMuNi04LjEgOC03LjUgMjkgMy42IDUxLjkgMjYuNiA1NS41IDU1LjUgLjUgNC40LTMuMSA4LTcuNSA4bC00OCAwYy00LjQgMC04LTMuNi04LThsMC00OHptOC0xMzYuNWMtNC40IC41LTgtMy4xLTgtNy41bDAtNDhjMC00LjQgMy42LTggOC04bDQ4IDBjNC40IDAgOC4xIDMuNiA3LjUgOC0zLjYgMjktMjYuNiA1MS45LTU1LjUgNTUuNXptMzY4IDEyOWM0LjQtLjUgOCAzLjEgOCA3LjVsMCA0OGMwIDQuNC0zLjYgOC04IDhsLTQ4IDBjLTQuNCAwLTguMS0zLjYtNy41LTggMy42LTI5IDI2LjYtNTEuOSA1NS41LTU1LjV6Il19LCQzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtbWludXMiLGljb246WzUxMiw1MTIsWyJtaW51cy1jaXJjbGUiXSwiZjA1NiIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY4IDIzMmwxNzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTc2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6Il19LE5JdD0kM2UsSTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXBvaW50ZXIiLGljb246WzQ0OCw1MTIsWyJtb3VzZS1wb2ludGVyIl0sImYyNDUiLCJNNzcuMyAyLjVjOC4xLTQuMSAxNy45LTMuMiAyNS4xIDIuM2wzMjAgMjM5LjljOC4zIDYuMiAxMS42IDE3IDguNCAyNi44cy0xMi40IDE2LjQtMjIuOCAxNi40bC0xNTIuMyAwIDg4LjkgMTc3LjdjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM2wtODguOS0xNzcuNy05MS4zIDEyMS44Yy02LjIgOC4zLTE3IDExLjYtMjYuOCA4LjRTNjQgNDM0LjMgNjQgNDI0TDY0IDI0YzAtOS4xIDUuMS0xNy40IDEzLjMtMjEuNXoiXX0sRkl0PUkzZSxQM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToic3F1YXJlLXNoYXJlLW5vZGVzIixpY29uOls0NDgsNTEyLFsic2hhcmUtYWx0LXNxdWFyZSJdLCJmMWUxIiwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6TTM2OCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjQtMTUuNCAwLTI5LjUtNS40LTQwLjYtMTQuNWwtODUuMyA0Ni41IDg1LjMgNDYuNWMxMS05LjEgMjUuMi0xNC41IDQwLjYtMTQuNSAzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0YzAtMi41IC4xLTQuOSAuNC03LjNMMTU4LjUgMzAwYy0xMS43IDEyLjMtMjguMiAyMC00Ni41IDIwLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMTguMyAwIDM0LjggNy43IDQ2LjUgMjBsODEuOS00NC43Yy0uMy0yLjQtLjQtNC45LS40LTcuMyAwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0eiJdfSxPSXQ9UDNlLE4zZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0YWJsZS1jZWxscy1sYXJnZSIsaWNvbjpbNDQ4LDUxMixbInRoLWxhcmdlIl0sImYwMDkiLCJNMzg0IDk2bC0xMjggMCAwIDEyOCAxMjggMCAwLTEyOHptNjQgMTI4bDAgMTkyYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDEyOHpNNjQgMjg4bDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAwem0xMjgtNjRsMC0xMjgtMTI4IDAgMCAxMjggMTI4IDB6bTY0IDY0bDAgMTI4IDEyOCAwIDAtMTI4LTEyOCAweiJdfSxSSXQ9TjNlLEJJdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXQiLGljb246WzU3Niw1MTIsWzEyODAwOF0sImY2YmUiLCJNNjQgOTZjNTMgMCA5NiA0MyA5NiA5NmwwIDg1LjhjMjkuNy00NC43IDc3LjgtNzYuMiAxMzMuNC04NCAyNS42IDYwIDg1LjIgMTAyLjEgMTU0LjYgMTAyLjEgMTAuOSAwIDIxLjYtMS4xIDMyLTMuMUw0ODAgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtMTQwLjgtMTM2IDEwOC44IDU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTE0NCAwYy01MyAwLTk2LTQzLTk2LTk2bDAtMjI0YzAtMTYuNi0xMi42LTMwLjItMjguNy0zMS44bC02LjYtLjNDNDQuNiAxNTguMiAzMiAxNDQuNiAzMiAxMjggMzIgMTEwLjMgNDYuMyA5NiA2NCA5NnpNNTMzLjggMy4yQzU0NC4yLTUuNSA1NjAgMS45IDU2MCAxNS41TDU2MCAxMjhjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJTMzM2IDE4OS45IDMzNiAxMjhsMC0xMTIuNWMwLTEzLjYgMTUuOC0yMSAyNi4yLTEyLjNMNDE2IDQ4IDQ4MCA0OCA1MzMuOCAzLjJ6TTQwMCAxMDhhMjAgMjAgMCAxIDAgMCA0MCAyMCAyMCAwIDEgMCAwLTQwem05NiAwYTIwIDIwIDAgMSAwIDAgNDAgMjAgMjAgMCAxIDAgMC00MHoiXX0sSEl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNhbGVuZGFyLXdlZWsiLGljb246WzQ0OCw1MTIsW10sImY3ODQiLCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMiAxMjggMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAzMiAzMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRsMzIgMCAwLTMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxOTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xOTIgMHoiXX0scUl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNvZGUtY29tcGFyZSIsaWNvbjpbNTEyLDUxMixbXSwiZTEzYSIsIk0xOTguOCAxLjhjOS0zLjcgMTkuMy0xLjcgMjYuMiA1LjJsNTYgNTZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTU2IDU2Yy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4yUzE4NCAxNDUuNyAxODQgMTM2bDAtMjQtMjQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyMTQuN2MyOC4zIDEyLjMgNDggNDAuNSA0OCA3My4zIDAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMzIuOCAxOS43LTYxIDQ4LTczLjNMNjQgMTQ0YzAtNTMgNDMtOTYgOTYtOTZsMjQgMCAwLTI0YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnpNMzkyIDgwYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6bS04IDczLjNjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjMgMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zTDQ0OCAzNjhjMCA1My00MyA5Ni05NiA5NmwtMjQgMCAwIDI0YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTU2LTU2Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw1Ni01NmM2LjktNi45IDE3LjItOC45IDI2LjItNS4yUzMyOCAzNjYuMyAzMjggMzc2bDAgMjQgMjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTIxNC43ek03MiA0MzJhMjQgMjQgMCAxIDAgNDggMCAyNCAyNCAwIDEgMCAtNDggMHoiXX0sakl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxlbyIsaWNvbjpbNTEyLDUxMixbXSwiZTg0YSIsIk0yNjAgMGM3Mi45IDAgMTMyIDU5LjEgMTMyIDEzMmwwIDUuNC0uMSAxLjQtMjMuOCAyNzBjLjQgMjEuNyAxOC4yIDM5LjIgNDAgMzkuMiAyMi4xIDAgNDAtMTcuOSA0MC00MGwwLTQwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0MGMwIDU3LjQtNDYuNiAxMDQtMTA0IDEwNFMzMDQgNDY1LjQgMzA0IDQwOGwwLTEuNCAuMS0xLjQgMjMuOS0yNzAuNiAwLTIuNmMwLTM3LjYtMzAuNC02OC02OC02OHMtNjggMzAuNC02OCA2OGwwIDRjMCAzLjcgLjMgNy4zIC44IDExbDI5LjcgMTkzLjRjLjkgNi4xIDEuNCAxMi4yIDEuNCAxOC40bDAgOS4yYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzAgNDI5LjkgMCAzNjggNTAuMSAyNTYgMTEyIDI1NmMxMS43IDAgMjMgMS44IDMzLjcgNS4xTDEyOS42IDE1Ni43Yy0xLjEtNi44LTEuNi0xMy44LTEuNi0yMC43bDAtNEMxMjggNTkuMSAxODcuMSAwIDI2MCAwek0xMTIgMzIwYTQ4IDQ4IDAgMSAwIDAgOTYgNDggNDggMCAxIDAgMC05NnoiXX0sVkl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InJvYWQtY2lyY2xlLXhtYXJrIixpY29uOls2NDAsNTEyLFtdLCJlNTY2IiwiTTI4Ny45IDMybC03Ni4yIDBjLTI5LjQgMC01NS4xIDIwLjEtNjIuMSA0OC42TDY1LjQgNDIwLjVDNTcuOSA0NTAuNyA4MC44IDQ4MCAxMTIgNDgwbDIwOS40IDBjLTExLjItMjQuNC0xNy40LTUxLjQtMTcuNC04MCAwLTI4LjYgNi4yLTU1LjcgMTcuNC04MC0uNSAwLTEgMC0xLjYgMC0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCA0OS4yYzM1LjItNDAgODYuNy02NS4yIDE0NC4yLTY1LjIgOSAwIDE3LjggLjYgMjYuNCAxLjhsLTMyLTEyOS4yQzQ4My40IDUyLjEgNDU3LjggMzIgNDI4LjMgMzJsLTc2LjUgMCAwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtNjR6TTQ5NiA1NDRhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43bC0zNi43IDM2LjcgMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42eiJdfSxVSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGFsbGV0IixpY29uOls1NzYsNTEyLFtdLCJmNDgyIiwiTTMyIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMiAwIDAgNjQtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw1MTIgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMzIgMCAwLTY0IDMyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMzIwem05NiA2NGwxMjggMCAwIDY0LTEyOCAwIDAtNjR6bTE5MiAwbDEyOCAwIDAgNjQtMTI4IDAgMC02NHoiXX0sVUQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiY2FrZS1jYW5kbGVzIixpY29uOls0NDgsNTEyLFsxMjc4NzQsImJpcnRoZGF5LWNha2UiLCJjYWtlIl0sImYxZmQiLCJNODYuNC0xMC41TDYxLjggMzEuNkM1OCAzOC4xIDU2IDQ1LjYgNTYgNTMuMkw1NiA1NmMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtMi44YzAtNy42LTItMTUtNS44LTIxLjZMMTA1LjYtMTAuNWMtMi0zLjQtNS43LTUuNS05LjYtNS41cy03LjYgMi4xLTkuNiA1LjV6bTEyOCAwTDE4OS44IDMxLjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42bDAgMi44YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBsMC0yLjhjMC03LjYtMi0xNS01LjgtMjEuNkwyMzMuNi0xMC41Yy0yLTMuNC01LjctNS41LTkuNi01LjVzLTcuNiAyLjEtOS42IDUuNXpNMzE3LjggMzEuNmMtMy44IDYuNS01LjggMTQtNS44IDIxLjZsMCAyLjhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MGwwLTIuOGMwLTcuNi0yLTE1LTUuOC0yMS42TDM2MS42LTEwLjVjLTItMy40LTUuNy01LjUtOS42LTUuNXMtNy42IDIuMS05LjYgNS41TDMxNy44IDMxLjZ6TTEyOCAxNjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA1My41QzI2LjcgMjI2LjYgMCAyNjIuMiAwIDMwNGwwIDIwLjhjMjAuOSAxLjMgNDEuNiA3LjMgNjAuMyAxOGw3LjEgNC4xYzI2LjMgMTUgNTguOSAxMy40IDgzLjYtNC4yIDQzLjctMzEuMiAxMDIuMy0zMS4yIDE0NiAwIDI0LjYgMTcuNiA1Ny4zIDE5LjMgODMuNiA0LjJsNy4xLTQuMWMxOC43LTEwLjcgMzkuMy0xNi43IDYwLjMtMThsMC0yMC44YzAtNDEuOC0yNi43LTc3LjQtNjQtOTAuNWwwLTUzLjVjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OC02NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA0OC02NCAwIDAtNDh6TTQ0OCAzNzNjLTEyLjcgMS4yLTI1LjEgNS0zNi41IDExLjVsLTcuMSA0LjFjLTQyLjYgMjQuMy05NS40IDIxLjctMTM1LjMtNi44LTI3LTE5LjMtNjMuMi0xOS4zLTkwLjIgMC0zOS45IDI4LjUtOTIuNyAzMS4yLTEzNS4zIDYuOGwtNy4xLTQuMUMyNS4xIDM3OCAxMi43IDM3NC4xIDAgMzczbDAgNzVjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC03NXoiXX0sV0l0PVVELEdJdD1VRCxZSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYnVnLXNsYXNoIixpY29uOls1NzYsNTEyLFtdLCJlNDkwIiwiTTctMjQuOWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwyNDEuOCAxNzYgMzQ0IDE3NmMxNC4yIDAgMjcuNyAyLjggNDAgOGwxMDguOC04MS42YzE0LjEtMTAuNiAzNC4yLTcuNyA0NC44IDYuNHM3LjcgMzQuMi02LjQgNDQuOGwtOTcuOCA3My4zYzUuMyA4LjkgOS4zIDE4LjcgMTEuOCAyOS4xbDk4LjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDMyYzAgOS41LS44IDE4LjctMi40IDI3LjhMNTY5IDUwMy4xYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMNyA5LjFDLTIuMy0uMy0yLjMtMTUuNSA3LTI0Ljl6TTM5OC4yIDQ2OGMtMjMuMiAyMi4xLTUzIDM3LjItODYuMiA0Mi4ybDAtMTI4LjQgODYuMiA4Ni4yek0yNjQgMzMzLjhsMCAxNzYuNGMtNTEuMi03LjctOTQuNS0zOS43LTExNy43LTgzLjlMODMuMiA0NzMuNmMtMTQuMSAxMC42LTM0LjIgNy43LTQ0LjgtNi40cy03LjctMzQuMiA2LjQtNDQuOGw4My40LTYyLjVjLS4xLTIuNi0uMi01LjItLjItNy45bDAtMzItOTYgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw5OC44IDBjMy4zLTEzLjkgOS4zLTI2LjcgMTcuNi0zNy44TDI2NCAzMzMuOHpNMzU1LjYgMTI4bC04Mi40IDAtNzIuMy03Mi4zQzIxNi4xIDIyLjggMjQ5LjQgMCAyODggMCAzNDEgMCAzODQgNDMgMzg0IDk2bDAgMy42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40eiJdfSxaSXQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidGFycCIsaWNvbjpbNTEyLDUxMixbXSwiZTU3YiIsIk00NDggNjRjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAxNDkuNWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM0wzODYuNyA0MjkuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0w2NCA0NDhjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0bDM4NCAwem01LjUgMjA4TDM2MCAyNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgOTMuNSAxMTcuNS0xMTcuNXpNOTYgMTkyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHoiXX0sWEl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tcHJlZGVjZXNzb3IiLGljb246WzQ0OCw1MTIsW10sImU0NzciLCJNMjg5LjIgMTM3LjljMi41LTYgOC4zLTkuOSAxNC44LTkuOWw0MCAwIDAtMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTk4IDBjMS4zIDUuMSAyIDEwLjUgMiAxNmwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC05NiAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDI1NiAwYzM5LjggMCA3MiAzMi4yIDcyIDcybDAgMjQgNDAgMGM2LjUgMCAxMi4zIDMuOSAxNC44IDkuOXMxLjEgMTIuOS0zLjUgMTcuNGwtNjQgNjRjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC02NC02NGMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHpNMzg0IDM1MmwtMzIwIDAgMCA2NCAzMjAgMCAwLTY0em02NCA2NGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0bDAtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NHoiXX0sRjNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZhY2UtZmx1c2hlZCIsaWNvbjpbNTEyLDUxMixbMTI4NTYzLCJmbHVzaGVkIl0sImY1NzkiLCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMCAyNTYgMjU2IDAgMSAxIC01MTIgMHpNMTY4IDM5MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGwxMjggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGwtMTI4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0tOC05NmE3MiA3MiAwIDEgMCAwLTE0NCA3MiA3MiAwIDEgMCAwIDE0NHptMjY0LTcyYTcyIDcyIDAgMSAwIC0xNDQgMCA3MiA3MiAwIDEgMCAxNDQgMHptLTI4OCAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTE5MiAwYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6Il19LFFJdD1GM2UsSkl0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpYWdyYW0tbmV4dCIsaWNvbjpbNDQ4LDUxMixbXSwiZTQ3NiIsIk0zODQgMjI0YzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NmwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDEyOCAwIDAgNjQtMzIgMGMtNi41IDAtMTIuMyAzLjktMTQuOCA5LjlzLTEuMSAxMi45IDMuNSAxNy40bDY0IDY0YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTMjk0LjUgMjg4IDI4OCAyODhsLTMyIDAgMC02NCAxMjggMHpNNjQgMjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDY0YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTM0IDBjNS42IDIxLjctLjUgNDUuMS0xNi43IDYxLjNsLTY0IDY0Yy0yNSAyNS02NS41IDI1LTkwLjUgMGwtNjQtNjRDOTguNiAzMzMuMSA5Mi40IDMwOS43IDk4IDI4OGwtMzQgMHoiXX0sS0l0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFuY2hvci1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU0YWMiLCJNMzIwLjUgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptLTMyLTk2Yy01MyAwLTk2IDQzLTk2IDk2IDAgNDEuOCAyNi43IDc3LjQgNjQgOTAuNWwwIDI1Ny45Yy02Mi45LTE0LjMtMTEwLjItNjkuNy0xMTEuOS0xMzYuNWwxNi4xIDE0LjFjMTAgOC43IDI1LjEgNy43IDMzLjktMi4zczcuNy0yNS4xLTIuMy0zMy45bC02NC01NmMtOS03LjktMjIuNi03LjktMzEuNiAwbC02NCA1NmMtMTAgOC43LTExIDIzLjktMi4zIDMzLjlzMjMuOSAxMSAzMy45IDIuM2wxNi4yLTE0LjJjMi4xIDExMy4xIDk0LjQgMjA0LjEgMjA4IDIwNC4xIDE2LjYgMCAzMi43LTEuOSA0OC4yLTUuNi0yMC4zLTMwLjUtMzIuMi02Ny0zMi4yLTEwNi40IDAtMjcuMyA1LjctNTMuMyAxNi03Ni45bDAtMTM2LjZjMzcuMy0xMy4yIDY0LTQ4LjcgNjQtOTAuNSAwLTUzLTQzLTk2LTk2LTk2em0yMDggNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN2wtMzYuNyAzNi43IDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC0zNi43LTM2LjctMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDM2LjctMzYuNy0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGwzNi43IDM2LjcgMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnoiXX0sZVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlcnNvbi1jaXJjbGUteG1hcmsiLGljb246WzY0MCw1MTIsW10sImU1NDMiLCJNMjgwIDI0YTU2IDU2IDAgMSAwIC0xMTIgMCA1NiA1NiAwIDEgMCAxMTIgMHptMjQgMjEyLjdMMzQxIDI4Ni42YzEyLjgtMTcuNSAyOC41LTMyLjcgNDYuMy00NWwtNTYuMi03NS43QzMwNiAxMzIgMjY2LjMgMTEyIDIyNCAxMTJzLTgyIDIwLTEwNy4yIDUzLjlsLTcwLjUgOTVjLTEwLjUgMTQuMi03LjYgMzQuMiA2LjYgNDQuOHMzNC4yIDcuNiA0NC44LTYuNkwxNDQgMjM2LjcgMTQ0IDUxMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMTYwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTI3NS4zek00OTYgNTQ0YTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMjIuNi0xNDRsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTM2LjctMzYuNy0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMzYuNy0zNi43LTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwbDM2LjcgMzYuNyAzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42TDUxOC42IDQwMHoiXX0sdFB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNwYSIsaWNvbjpbNTc2LDUxMixbXSwiZjViYiIsIk0xNjkuNyAyMjcuNWMzNC4zIDE4LjcgNjQuNSA0NC4xIDg4LjggNzQuNSAxMS4xIDEzLjkgMjEgMjguOSAyOS40IDQ0LjggOC41LTE1LjkgMTguMy0zMC44IDI5LjQtNDQuOCAyNC4zLTMwLjUgNTQuNS01NS45IDg4LjgtNzQuNSA0MS43LTIyLjcgODkuNC0zNS41IDEzOS43LTM1LjVsOS45IDBjMTEuMSAwIDIwLjEgOSAyMC4xIDIwLjEgMCAxNDgtMTE5LjkgMjY3LjktMjY3LjkgMjY3LjlsLTQwLjIgMEMxMTkuOSA0ODAgMCAzNjAuMSAwIDIxMi4xIDAgMjAxIDkgMTkyIDIwLjEgMTkybDkuOSAwYzUwLjQgMCA5OC4xIDEyLjggMTM5LjcgMzUuNXpNMzAzLjkgMzhjMTYuOSAxNS45IDYxLjQgNjMuNCA4OSAxNDIuMy00MC4xIDIwLjItNzUuOCA0OC4yLTEwNC45IDgyLjEtMjkuMi0zMy45LTY0LjgtNjEuOC0xMDQuOS04Mi4xIDI3LjYtNzguOSA3Mi4yLTEyNi40IDg5LTE0Mi4zIDQuMy00LjEgMTAtNiAxNS45LTZzMTEuNiAyIDE1LjkgNnoiXX0sclB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFyaWVzIixpY29uOls1MTIsNTEyLFtdLCJlODQ2IiwiTTQwMS42IDBjNjEuMyAwIDExMC40IDUwLjMgMTEwLjQgMTExIDAgMjkuNC0xMS42IDU3LjktMzIuNiA3OC44bC04LjggOC44Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjIgMHMtMTIuNS0zMi44IDAtNDUuMmw4LjgtOC44YzguOC04LjggMTMuOC0yMSAxMy44LTMzLjYgMC0yNS45LTIxLjEtNDctNDYuNC00Ny0yMi41IDAtNDEuNyAxNi4xLTQ1LjcgMzguMkwyODcuNSA0ODUuNmMwIC4xLS4xIC4zLS4xIC40LS4yIC44LS4zIDEuNi0uNSAyLjMtLjEgLjMtLjEgLjUtLjIgLjctLjIgLjYtLjQgMS4zLS43IDEuOS0uMiAuNS0uNCAxLS42IDEuNS0uMSAuMy0uMyAuNi0uNCAuOS0xLjYgMy41LTMuOCA2LjUtNi40IDkuMi0yIDItNC4yIDMuNy02LjYgNS4xLS4yIC4xLS4zIC4yLS41IC4zLS43IC40LTEuNCAuNy0yLjEgMS0uMyAuMS0uNiAuMy0uOSAuNC0uNSAuMi0xIC40LTEuNSAuNi0uNiAuMi0xLjIgLjUtMS45IC43LS4yIC4xLS41IC4yLS43IC4yLS44IC4yLTEuNiAuNC0yLjMgLjUtLjIgMC0uMyAuMS0uNCAuMS0uMiAwLS40IDAtLjYgLjEtLjcgLjEtMS4zIC4yLTIgLjItLjQgMC0uOCAuMS0xLjIgLjEtLjYgMC0xLjIgLjEtMS44IC4xLS42IDAtMS4yIDAtMS44LS4xLS40IDAtLjgtLjEtMS4yLS4xLS43LS4xLTEuNC0uMS0yLS4yLS4yIDAtLjQgMC0uNi0uMS0uMiAwLS4zLS4xLS41LS4xLS44LS4yLTEuNi0uMy0yLjMtLjUtLjMtLjEtLjUtLjEtLjgtLjItLjYtLjItMS4zLS40LTEuOS0uNy0uNS0uMi0xLS40LTEuNS0uNi0uMy0uMS0uNi0uMy0uOS0uNC0uNy0uMy0xLjQtLjctMi4xLTEtLjItLjEtLjMtLjItLjUtLjMtMi40LTEuNC00LjctMy4xLTYuNi01LjEtMi42LTIuNi00LjgtNS43LTYuNC05LjItLjEtLjItLjItLjMtLjItLjVsLS41LTEuMWMtLjEtLjMtLjItLjUtLjMtLjgtLjItLjYtLjUtMS4yLS43LTEuOS0uMS0uMi0uMi0uNS0uMi0uNy0uMi0uOC0uNC0xLjYtLjUtMi4zIDAtLjEtLjEtLjMtLjEtLjRMMTU2IDEwMi4yYy00LTIyLjEtMjMuMi0zOC4yLTQ1LjctMzguMi0yNS4zIDAtNDYuNCAyMS4xLTQ2LjQgNDcgMCAxMi42IDUgMjQuOCAxMy44IDMzLjZsOC44IDguOGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuMnMtMzIuOCAxMi41LTQ1LjIgMGwtOC44LTguOEMxMS42IDE2OC45IDAgMTQwLjMgMCAxMTEgMCA1MC4zIDQ5LjEgMCAxMTAuNCAwIDE2My44IDAgMjA5LjYgMzguMyAyMTkgOTFsMzcgMjA3IDM3LTIwN2M5LjQtNTIuNiA1NS4yLTkxIDEwOC43LTkxeiJdfSxPM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiYmFycy1wcm9ncmVzcyIsaWNvbjpbNDQ4LDUxMixbInRhc2tzLWFsdCJdLCJmODI4IiwiTTI4OCAxNjBsOTYgMCAwLTY0LTk2IDAgMCA2NHpNMCAxNjBMMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmwzNTIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4TDQ4IDIyNGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhsMC0xNnpNMTYwIDQxNmwyMjQgMCAwLTY0LTIyNCAwIDAgNjR6TTAgNDE2bDAtODBjMC0yNi41IDIxLjUtNDggNDgtNDhsMzUyIDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCA5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEw0OCA0ODBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMTZ6Il19LGlQdD1PM2UsYVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhlYXJ0LWNpcmNsZS1jaGVjayIsaWNvbjpbNTc2LDUxMixbXSwiZTRmZCIsIk0yNDEgODcuMWwxNSAyMC43IDE1LTIwLjdDMjk2IDUyLjUgMzM2LjIgMzIgMzc4LjkgMzIgNDUyLjQgMzIgNTEyIDkxLjYgNTEyIDE2NS4xbDAgMi42YzAgMTcuNi0zLjQgMzUuNi05LjUgNTMuNy0yMS44LTguNi00NS42LTEzLjQtNzAuNS0xMy40LTEwNiAwLTE5MiA4Ni0xOTIgMTkyIDAgMjguNSA2LjIgNTUuNiAxNy40IDgwLS41IDAtLjkgMC0xLjQgMC0xNS41IDAtMzAuOC00LjYtNDMuMS0xNC4xLTczLTU1LjctMjEyLjktMTg2LTIxMi45LTI5OC4ybDAtMi42QzAgOTEuNiA1OS42IDMyIDEzMy4xIDMyIDE3NS44IDMyIDIxNiA1Mi41IDI0MSA4Ny4xek0yODggNDAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIwMS40LTYwLjljLTcuMS01LjItMTcuMi0zLjYtMjIuNCAzLjVsLTUzIDcyLjktMjYuOC0yNi44Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzMuMyAzLjMgNy45IDUgMTIuNiA0LjZzOC45LTIuOCAxMS43LTYuNWw2NC04OGM1LjItNy4xIDMuNi0xNy4yLTMuNS0yMi4zeiJdfSxSM2U9e3ByZWZpeDoiZmFzIixpY29uTmFtZToibWFycy1zdHJva2UtcmlnaHQiLGljb246WzY0MCw1MTIsWzk4OTcsIm1hcnMtc3Ryb2tlLWgiXSwiZjIyYiIsIk0zMjAuNSAyNTZhMTEyIDExMiAwIDEgMCAtMjI0IDAgMTEyIDExMiAwIDEgMCAyMjQgMHpNMjA4LjUgODBjODYuMyAwIDE1OC4xIDYyLjEgMTczLjEgMTQ0LjEgMS0uMSAxLjktLjEgMi45LS4xbDE2IDAgMC0zMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMybDAgMzIgNjEuNCAwLTIyLjQtMjhjLTExLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1bDY0IDgwYzkuMyAxMS43IDkuMyAyOC4zIDAgNDBsLTY0IDgwYy0xMSAxMy44LTMxLjIgMTYtNDUgNXMtMTYtMzEuMi01LTQ1bDIyLjQtMjgtNjEuNCAwIDAgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zMi0xNiAwYy0xIDAtMS45IDAtMi45LS4xLTE1IDgyLTg2LjggMTQ0LjEtMTczLjEgMTQ0LjEtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NnoiXX0sblB0PVIzZSxvUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToidG93ZXItb2JzZXJ2YXRpb24iLGljb246WzQ0OCw1MTIsW10sImU1ODYiLCJNMjA5LjcgMy40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxNjAgODBjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOS01LjYgMTEuMi0xNi45IDE3LjctMjguNiAxNy43bDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJsLTEzIDAgMzIgMTkyIDQ1IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJMMzIgNTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDQ1IDAgMzItMTkyLTEzIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBjLTExLjcgMC0yMy02LjUtMjguNi0xNy43LTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlsMTYwLTgwek0zMTAuNyA0NDhsLTg2LjctNjEuOS04Ni43IDYxLjkgMTczLjQgMHptLTE1My0xOTJsLTMuNSAyMS4yIDY5LjkgNDkuOSA2OS45LTQ5LjktMy41LTIxLjItMTMyLjcgMHptLTEyLjMgNzMuOWwtMTAuMSA2MC42IDQ3LjUtMzMuOS0zNy40LTI2Ljd6bTExOS45IDI2LjdsNDcuNSAzMy45LTEwLjEtNjAuNi0zNy40IDI2Ljd6TTE1MiAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsMTQ0IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTE0NCAweiJdfSxXRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzdGVybGluZy1zaWduIixpY29uOlszODQsNTEyLFsxNjMsImdicCIsInBvdW5kLXNpZ24iXSwiZjE1NCIsIk05MS4zIDI4OGwtMzQuOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDIxLjQgMEMzNy4zIDE0Ny4zIDEwNS4xIDQyIDIwNy42IDQybDguMiAwYzMzLjYgMCA2Ni4yIDExLjMgOTIuNSAzMi4ybDE2LjEgMTIuN2MxMy45IDExIDE2LjIgMzEuMSA1LjIgNDVzLTMxLjEgMTYuMi00NSA1LjJsLTE2LjEtMTIuN2MtMTUtMTEuOS0zMy42LTE4LjQtNTIuOC0xOC40bC04LjIgMGMtNTcuMyAwLTk0LjcgNTkuOS02OS43IDExMS40IDMuNiA3LjQgNi42IDE0LjkgOS4xIDIyLjZsMTQ5LjUgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTQxLjIgMGMxIDM1LjMtOC43IDcwLjYtMjguOSAxMDAuOWwtMTguMSAyNy4xIDIxMi4yIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTI3MiAwYy0xMS44IDAtMjIuNi02LjUtMjguMi0xNi45cy01LTIzIDEuNi0zMi45bDUxLjItNzYuOGMxMy4xLTE5LjYgMTkuMi00Mi42IDE4LjItNjUuNHoiXX0sc1B0PVdELGxQdD1XRCxjUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiZmF1Y2V0LWRyaXAiLGljb246WzUxMiw1MTIsWzEyODY4OF0sImUwMDYiLCJNMjI0IDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMkw5NiA2NEM3OC4zIDY0IDY0IDc4LjMgNjQgOTZzMTQuMyAzMiAzMiAzMmw5NiAwIDAgNjQtMTguNyAwYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNEwxMjggMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwxMDAuMSAwYzIwLjIgMjkgNTMuOSA0OCA5MS45IDQ4czcxLjctMTkgOTEuOS00OGwzNi4xIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzMTQuMyAzMiAzMiAzMmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMyIDAtODguNC03MS42LTE2MC0xNjAtMTYwbC0zMiAwLTIyLjYtMjIuNmMtNi02LTE0LjEtOS40LTIyLjYtOS40bC0xOC43IDAgMC02NCA5NiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC05NiAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MzYuOCA0NTUuNGwtMTguMiA0Mi40Yy0xLjggNC4xLTIuNyA4LjYtMi43IDEzLjFsMCAxLjJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTEuMmMwLTQuNS0uOS04LjktMi43LTEzLjFsLTE4LjItNDIuNGMtMS45LTQuNS02LjMtNy40LTExLjItNy40cy05LjIgMi45LTExLjIgNy40eiJdfSxhYj17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjaXJjbGUtaW5mbyIsaWNvbjpbNTEyLDUxMixbImluZm8tY2lyY2xlIl0sImYwNWEiLCJNMjU2IDUxMmEyNTYgMjU2IDAgMSAwIDAtNTEyIDI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIyNCAxNjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptLTggNjRsNDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNGwwIDg4IDggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtODAgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwyNCAwIDAtNjQtMjQgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sZFB0PWFiLHVQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmZWF0aGVyIixpY29uOls1MTIsNTEyLFsxMjk3MThdLCJmNTJkIiwiTTM1MiAwYzQxIDAgODAuMyAxNi4zIDEwOS4yIDQ1LjJsNS41IDUuNWMyOSAyOSA0NS4zIDY4LjMgNDUuMyAxMDkuMiAwIDI0LjEtNS43IDQ3LjYtMTYuMiA2OC44LTEuOSAzLjctNS4zIDYuNS05LjMgNy43TDM3NC41IDI3MGMtMy45IDEuMi02LjUgNC43LTYuNSA4LjggMCA1LjEgNC4xIDkuMiA5LjIgOS4ybDMyLjIgMGMxNC4zIDAgMjEuNCAxNy4yIDExLjMgMjcuM2wtMjIuNCAyMi40Yy0xLjkgMS45LTQuMiAzLjItNi43IDRsLTgxIDI0LjNjLTMuOSAxLjItNi41IDQuNy02LjUgOC44IDAgNS4xIDQuMSA5LjIgOS4yIDkuMiAxMy4yIDAgMTguOSAxNS43IDcuOCAyMi45LTQxLjEgMjYuNi04OS4zIDQxLjEtMTM5IDQxLjFsLTg2IDAtNDggNDhjLTguOCA4LjgtMjMuMiA4LjgtMzIgMHMtOC44LTIzLjIgMC0zMkwyNTYgMjI0YzguOC04LjggOC44LTIzLjIgMC0zMnMtMjMuMi04LjgtMzIgMEw3OS41IDMzNi41Yy01LjcgNS43LTE1LjUgMS43LTE1LjUtNi40IDAtNjcuOSAyNy0xMzMgNzUtMTgxTDI0Mi44IDQ1LjJDMjcxLjcgMTYuMyAzMTEgMCAzNTIgMHoiXX0scFB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJvd2wtcmljZSIsaWNvbjpbNTEyLDUxMixbXSwiZTJlYiIsIk0xNzYgNDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTI0IDQ4bDE2IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTE2IDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTU2IDE2MGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0wIDI4My40QzAgMjY4LjMgMTIuMyAyNTYgMjcuNCAyNTZsNDU3LjEgMGMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNCAwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4bC0yMzEuNSAwYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHpNMjI0IDE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptLTk2IDBjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTEwNCA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0yMTYgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI5NiA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0xMjAgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTM5MiA4OGwxNiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0bC0xNiAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yOTYgMTZsMTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHoiXX0sQjNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InN0YXItaGFsZi1zdHJva2UiLGljb246WzU3Niw1MTIsWyJzdGFyLWhhbGYtYWx0Il0sImY1YzAiLCJNMjg4LjEgMzUzLjZjMTAgMCAxOS45IDIuMyAyOSA3bDc0LjQgMzcuOS0xMy04Mi41Yy0zLjItMjAuMiAzLjUtNDAuNyAxNy45LTU1LjJsNTktNTkuMS04Mi41LTEzLjFjLTIwLjItMy4yLTM3LjctMTUuOS00Ny0zNC4xbC0zOC03NC40IDAgMjczLjZ6TTQ1Ny40IDQ4OWMtNy4zIDUuMy0xNyA2LjEtMjUgMkwyODguMSA0MTcuNiAxNDMuOCA0OTFjLTggNC4xLTE3LjcgMy4zLTI1LTJzLTExLTE0LjItOS42LTIzLjJMMTM0LjQgMzA1LjkgMjAgMTkxLjRjLTYuNC02LjQtOC42LTE1LjgtNS44LTI0LjRzMTAuMS0xNC45IDE5LjEtMTYuM2wxNTkuOS0yNS40IDczLjYtMTQ0LjJjNC4xLTggMTIuNC0xMy4xIDIxLjQtMTMuMXMxNy4zIDUuMSAyMS40IDEzLjFMMzgzIDEyNS4zIDU0Mi45IDE1MC43YzguOSAxLjQgMTYuMyA3LjcgMTkuMSAxNi4zcy41IDE4LTUuOCAyNC40TDQ0MS43IDMwNS45IDQ2NyA0NjUuOGMxLjQgOC45LTIuMyAxNy45LTkuNiAyMy4yeiJdfSxoUHQ9QjNlLEgzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ0ZW1wZXJhdHVyZS1hcnJvdy1kb3duIixpY29uOls1MTIsNTEyLFsidGVtcGVyYXR1cmUtZG93biJdLCJlMDNmIiwiTTY0LjUgOTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NmwwIDE2NC43YzI5LjUgMjYuNCA0OCA2NC43IDQ4IDEwNy4zIDAgNzkuNS02NC41IDE0NC0xNDQgMTQ0cy0xNDQtNjQuNS0xNDQtMTQ0YzAtNDIuNiAxOC41LTgxIDQ4LTEwNy4zTDY0LjUgOTZ6bTk2IDMzNmMzNS4zIDAgNjQtMjguNyA2NC02NCAwLTI2LjktMTYuNS00OS45LTQwLTU5LjNsMC0yOC43YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0bDAgMjguN2MtMjMuNSA5LjUtNDAgMzIuNS00MCA1OS4zIDAgMzUuMyAyOC43IDY0IDY0IDY0ek00MzkuMSAzMTAuNmMtNiA2LTE0LjEgOS40LTIyLjYgOS40cy0xNi42LTMuNC0yMi42LTkuNGwtNjQtNjRjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsOS40IDkuNCAwLTE3OC43YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJsMCAxNzguNyA5LjQtOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTY0IDY0eiJdfSxmUHQ9SDNlLG1QdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJtYXNrLXZlbnRpbGF0b3IiLGljb246WzY0MCw1MTIsW10sImU1MjQiLCJNMTUyLjIgMTkyYy0xNS40IDM4LjMtMjQuMiA3Ny4yLTI0LjIgMTA4LjggMCAxMy4zIDEuNSAyNi4yIDQuNCAzOC43bC0xNy0zLjRjLTI5LjktNi01MS40LTMyLjItNTEuNC02Mi44bDAtODEuMyA4OC4yIDB6bTMyLjktNjRMNjQgMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDgxLjNjMCA2MSA0My4xIDExMy41IDEwMi45IDEyNS41bDY2LjMgMTMuM2MxOC43IDIyLjEgNDIuOSA0MCA3MC44IDUxLjhsMC04Ny44Yy0xMC4xLTE0LjItMTYtMzEuMy0xNi00OS43IDAtNDkuNSA0My0xMzQuNCA5Ni0xMzQuNCA1Mi41IDAgOTYgODQuOSA5NiAxMzQuNCAwIDE4LjQtNS45IDM1LjQtMTYgNDkuNmwwIDg3LjdjMjcuNi0xMS44IDUxLjctMjkuNiA3MC40LTUxLjZsNjYuNy0xMy4zYzU5LjgtMTIgMTAyLjktNjQuNSAxMDIuOS0xMjUuNWwwLTgxLjNjMC0zNS4zLTI4LjctNjQtNjQtNjRsLTEyMS41IDBjLTM0LjgtNTQuMi04Mi41LTk2LTEzNC41LTk2LTUyLjYgMC0xMDAuMiA0MS44LTEzNC45IDk2em0zMDIuNSA2NGw4OC40IDAgMCA4MS4zYzAgMzAuNS0yMS41IDU2LjgtNTEuNCA2Mi44bC0xNyAzLjRjMi45LTEyLjQgNC41LTI1LjQgNC41LTM4LjcgMC0zMS42LTguOS03MC41LTI0LjQtMTA4Ljh6TTI4OCAzMjBsMCAxOTIgNjQgMCAwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnoiXX0sZ1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImZpbGUtdmlkZW8iLGljb246WzM4NCw1MTIsW10sImYxYzgiLCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjEzLjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0wzNjUuMyAxMjUuM2MxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zTDM4NCA0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0yMDgtNS41bDAgOTMuNWMwIDEzLjMgMTAuNyAyNCAyNCAyNEwzMjUuNSAxNzYgMjA4IDU4LjV6TTgwIDMwNGwwIDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMybDk2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0yNCAzNSAzNWMzLjIgMy4yIDcuNSA1IDEyIDUgOS40IDAgMTctNy42IDE3LTE3bDAtOTQuMWMwLTkuNC03LjYtMTctMTctMTctNC41IDAtOC44IDEuOC0xMiA1bC0zNSAzNSAwLTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMybC05NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnoiXX0sYlB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImFycm93LXRyZW5kLWRvd24iLGljb246WzU3Niw1MTIsW10sImUwOTciLCJNMzg0IDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDgyLjctMTY5LjQtMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE5MiAyNDIuNyA1NC42IDEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwTDMyMCAyMDUuMyA0NjYuNyAzNTIgMzg0IDM1MnoiXX0sdlB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6Im9pbC1jYW4iLGljb246WzY0MCw1MTIsW10sImY2MTMiLCJNMzIwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwxOTIgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzIgMCAwIDMyLTE3NiAwYy0yNi41IDAtNDggMjEuNS00OCA0OGwwIDY0LjhjMCAxOSAxMS4yIDM2LjIgMjguNSA0My45bDY3LjUgMzAgMCAyMS4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4bDI1OS4xIDBjMTguNCAwIDM1LjgtNy45IDQ4LTIxLjdMNjMzLjUgMTg3LjdjMTIuMy0xMy45LS4zLTM1LjQtMTguNC0zMS41TDQ0OCAxOTIgMzk3LjUgMTY2LjhjLTguOS00LjQtMTguNy02LjgtMjguNi02LjhsLTgwLjkgMCAwLTMyIDMyIDB6TTk2IDIwOGwwIDg2LjEtNDgtMjEuMyAwLTY0LjggNDggMHoiXX0scTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InBlb3BsZS1jYXJyeS1ib3giLGljb246WzU3Niw1MTIsWyJwZW9wbGUtY2FycnkiXSwiZjRjZSIsIk02NC0zMkE1NiA1NiAwIDEgMSA2NCA4MCA1NiA1NiAwIDEgMSA2NC0zMnpNMCAxNzEuMWMwLTMyLjYgMjYuNS01OS4xIDU5LjEtNTkuMSAyMy41IDAgNDUuNSAxMS4zIDU5LjEgMzAuNGw0OC43IDY4LjJjNS44IDguMiAxNS4xIDEzLjEgMjUuMSAxMy40bDAtOTZjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMxMC0uMyAxOS4zLTUuMiAyNS4xLTEzLjRsNDguNy02OC4yYzEzLjYtMTkuMSAzNS42LTMwLjQgNTkuMS0zMC40IDMyLjYgMCA1OS4xIDI2LjUgNTkuMSA1OS4xTDU3NiAyNzJjMCAzMC4yLTE0LjIgNTguNy0zOC40IDc2LjhsLTc2LjggNTcuNmMtOC4xIDYtMTIuOCAxNS41LTEyLjggMjUuNmwwIDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODBjMC0zMC4yIDE0LjItNTguNyAzOC40LTc2LjhsNDEuNi0zMS4yIDAtODAuMS0yLjggMy45Yy0xOCAyNS4yLTQ3LjEgNDAuMi03OC4xIDQwLjJMMzUyIDI4OGMtLjYgMC0xLjMgMC0xLjktLjEtLjYgMC0xLjMgLjEtMS45IC4xbC0xMjAuNCAwYy0uNiAwLTEuMyAwLTEuOS0uMS0uNiAwLTEuMyAuMS0xLjkgLjFsLTMxLjEgMGMtMzEgMC02MC4xLTE1LTc4LjEtNDAuMmwtMi44LTMuOSAwIDgwLjEgNDEuNiAzMS4yQzE3Ny44IDM3My4zIDE5MiA0MDEuOCAxOTIgNDMybDAgODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC04MGMwLTEwLjEtNC43LTE5LjYtMTIuOC0yNS42TDM4LjQgMzQ4LjhDMTQuMiAzMzAuNyAwIDMwMi4yIDAgMjcyTDAgMTcxLjF6TTAgMzc5LjNjMy4xIDIuNyA2LjMgNS40IDkuNiA3LjlMNjQgNDI4IDY0IDUxMmMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDUyOS43IDAgNTEyTDAgMzc5LjN6TTU2OCAyNGE1NiA1NiAwIDEgMSAtMTEyIDAgNTYgNTYgMCAxIDEgMTEyIDB6bTggNDg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtODQgNTQuNC00MC44YzMuMy0yLjUgNi41LTUuMSA5LjYtNy45TDU3NiA1MTJ6Il19LHhQdD1xM2UseVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImNoYWlyIixpY29uOls0NDgsNTEyLFsxMjk2ODFdLCJmNmMwIiwiTTE1MiAyNTZsMC0xODEuOGMtMjQuNSAyMC41LTQwIDUxLjQtNDAgODUuOGwwIDk2IDQwIDB6bTQ4IDBsNDggMCAwLTIwNS40Yy03LjctMS43LTE1LjgtMi42LTI0LTIuNnMtMTYuMyAuOS0yNCAyLjZMMjAwIDI1NnpNMjk2IDc0LjJsMCAxODEuOCA0MCAwIDAtOTZjMC0zNC40LTE1LjUtNjUuMi00MC04NS44ek0zMiAyNTZsMzIgMCAwLTk2QzY0IDcxLjYgMTM1LjYgMCAyMjQgMFMzODQgNzEuNiAzODQgMTYwbDAgOTYgMzIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgOTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC05Ni0yNTYgMCAwIDk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMybDAtOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6Il19LHdQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJ3aW5kIixpY29uOls1MTIsNTEyLFtdLCJmNzJlIiwiTTI4OCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw0MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0TDMyIDExMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMjggMGM0OC42IDAgODgtMzkuNCA4OC04OFM0MDguNiAwIDM2MCAwTDMyMCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNjQgMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMybDMyIDBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDM4NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTI4IDUxMmw0MCAwYzQ4LjYgMCA4OC0zOS40IDg4LTg4cy0zOS40LTg4LTg4LTg4TDMyIDMzNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMzYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtNDAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnoiXX0sTVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImxheWVyLWdyb3VwIixpY29uOls1MTIsNTEyLFtdLCJmNWZkIiwiTTIzMi41IDUuMmMxNC45LTYuOSAzMi4xLTYuOSA0NyAwbDIxOC42IDEwMWM4LjUgMy45IDEzLjkgMTIuNCAxMy45IDIxLjhzLTUuNCAxNy45LTEzLjkgMjEuOGwtMjE4LjYgMTAxYy0xNC45IDYuOS0zMi4xIDYuOS00NyAwTDEzLjkgMTQ5LjhDNS40IDE0NS44IDAgMTM3LjMgMCAxMjhzNS40LTE3LjkgMTMuOS0yMS44TDIzMi41IDUuMnpNNDguMSAyMTguNGwxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSAyNzcuOEM1LjQgMjczLjggMCAyNjUuMyAwIDI1NnM1LjQtMTcuOSAxMy45LTIxLjhsMzQuMS0xNS44ek0xMy45IDM2Mi4ybDM0LjEtMTUuOCAxNjQuMyA3NS45YzI3LjcgMTIuOCA1OS42IDEyLjggODcuMyAwbDE2NC4zLTc1LjkgMzQuMSAxNS44YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMMTMuOSA0MDUuOEM1LjQgNDAxLjggMCAzOTMuMyAwIDM4NHM1LjQtMTcuOSAxMy45LTIxLjh6Il19LGtQdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoZWFkLXNpZGUtbWFzayIsaWNvbjpbNTEyLDUxMixbXSwiZTA2MyIsIk00NDUuOSAxOTNjLS4xLS40LS4yLS45LS4yLTEuMy0xNS43LTEwOC40LTEwOC45LTE5MS43LTIyMS43LTE5MS43LTg1IDAtMTU5IDQ3LjQtMTk2LjkgMTE3LjJMMjgzLjMgMjg4IDQ1NiAyODggNDQyLjkgMzM2IDMzNiAzMzZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsOTguMiAwLTguNyAzMi04OS41IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZsODAuNiAwYy02LjcgMTkuMS0yNC44IDMyLTQ1LjMgMzJMMjg4IDQ2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMDQuNS0yNDcuNS0xNjVDMyAxODIuMSAwIDIwMi43IDAgMjI0IDAgMjc4IDE5LjEgMzI3LjUgNTAuOSAzNjYuMiA1OC45IDM3NS45IDY0IDM4Ny44IDY0IDQwMC40TDY0IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxMjcuMyAwIC43IDAgMTMxLjMgMGM0NC45IDAgODMuOC0zMS4xIDkzLjYtNzQuOWwzMy45LTE1MC4zYzMuMy0xNC40LS4zLTI5LjUtOS43LTQxTDQ0NS45IDE5M3pNMjg4IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAweiJdfSxHRD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcyIsaWNvbjpbNTEyLDUxMixbInNpZ24tbGFuZ3VhZ2UiLCJzaWduaW5nIl0sImYyYTciLCJNNTEyIDE2MGwtLjEgNzIuNmMwIDQ0LjgtMTcuNiA4Ny4xLTQ3LjkgMTE4LjQtLjMtNzctNDAuMS0xNDguNC0xMDUuNC0xODkuM2wtMS45LTEuMmMyLjUtMy43IDIuOC04LjYgLjQtMTIuN2wtNjItMTA3LjRjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44UzMzMCA1IDMzNi42IDE2LjVsNjggMTE3LjggMCAwIDAgMCA0My4zIDc1IC4xLTQ5LjNjMC0xNy43IDE0LjQtMzIgMzItMzJzMzIgMTQuNCAzMiAzMnpNMjk4LjQgMTI0LjJjLTE0LjEtOC44LTI5LjgtMTIuNy00NS4yLTEyLjFMMjE2LjcgNDguOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4LjhsNjcuMSAxMTYuMi0yNy0xNi45ek0yMTEuOSA4OC41bDE2LjQgMjguNGMtMTUuMSA1LjUtMjguNiAxNS42LTM4LjMgMjkuN2wtMTkuNy0zNC4yYy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHptLTQ2LjQgNjMuN2wxMi41IDIxLjdjLTIgOC42LTIuNSAxNy41LTEuNyAyNi4xbC00LjMgMCAwIDAtMzQuNCAwLTEzLjctMjMuOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6TTIyOC45IDE3NWM5LjQtMTUgMjkuMS0xOS41IDQ0LjEtMTAuMmw2MC4yIDM3LjZDMzg0LjcgMjM0LjcgNDE2IDI5MS4yIDQxNiAzNTJsMCA4YzAgODMuOS02OC4xIDE1Mi0xNTIgMTUyTDg4IDUxMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGw5MiAwYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyTDU2IDQ0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxMjQgMGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkwyNCAzNjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTU2IDBjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJMNTYgMjk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDEzNiAwIDAgMCAwIDAgOTMuMiAwLTQ2LjItMjguOWMtMTUtOS40LTE5LjUtMjkuMS0xMC4yLTQ0LjF6Il19LFNQdD1HRCx6UHQ9R0QsQ1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldHMiLGljb246WzUxMiw1MTIsW10sImY0OTAiLCJNNDk1LjMgNzYuNmMtNC42LTguNy0xNi4zLTkuNy0yMy4zLTIuN0wyOTcuOSAyNDhjLTcgNy02IDE4LjcgMi43IDIzLjMgMjAuMSAxMC43IDQzIDE2LjcgNjcuNCAxNi43IDc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0IDAtMjQuMy02LTQ3LjMtMTYuNy02Ny40ek0yNDAuNyAyMTEuNGM0LjYgOC43IDE2LjMgOS43IDIzLjMgMi43TDQzOC4xIDQwYzctNyA2LTE4LjctMi43LTIzLjMtMjAuMS0xMC43LTQzLTE2LjctNjcuNC0xNi43LTc5LjUgMC0xNDQgNjQuNS0xNDQgMTQ0IDAgMjQuMyA2IDQ3LjMgMTYuNyA2Ny40ek0xNDQgMjI0Qzc5LjIgMjI0IDI0LjQgMjY2LjggNi4zIDMyNS42IDMuNCAzMzUuMSAxMSAzNDQgMjAuOSAzNDRsMjQ2LjIgMGM5LjkgMCAxNy41LTguOSAxNC42LTE4LjQtLjktMy0xLjktNS45LTMtOC43LTM3LjQtMTguMS02OC00OC04Ny04NC44LTE0LjktNS4yLTMwLjktOC4xLTQ3LjYtOC4xek0yODEuNyA0MTAuNGMyLjktOS41LTQuNy0xOC40LTE0LjYtMTguNEwyMC45IDM5MkMxMSAzOTIgMy40IDQwMC45IDYuMyA0MTAuNCAyNC40IDQ2OS4yIDc5LjIgNTEyIDE0NCA1MTJzMTE5LjYtNDIuOCAxMzcuNy0xMDEuNnoiXX0sVFB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6IndlaWdodC1oYW5naW5nIixpY29uOls1MTIsNTEyLFtdLCJmNWNkIiwiTTIyNCA5NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjIuNSAzMmMzLjUtMTAgNS41LTIwLjggNS41LTMyIDAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMTEuMiAxLjkgMjIgNS41IDMybC0yMS44IDBjLTI4LjMgMC01My4yIDE4LjUtNjEuMyA0NS42TDIuNCA0NDAuMkMuOCA0NDUuNCAwIDQ1MC44IDAgNDU2LjIgMCA0ODcgMjUgNTEyIDU1LjggNTEybDQwMC40IDBjMzAuOCAwIDU1LjgtMjUgNTUuOC01NS44IDAtNS40LS44LTEwLjgtMi40LTE2bC04MC0yNjYuNWMtOC4xLTI3LjEtMzMtNDUuNi02MS4zLTQ1LjZsLTIxLjggMHoiXX0sX1B0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImRpY2UiLGljb246WzUxMiw1MTIsWzEyNzkyMl0sImY1MjIiLCJNMTQxLjQgMi4zQzEwMy04IDYzLjUgMTQuOCA1My4zIDUzLjJMMi41IDI0Mi43Qy03LjggMjgxLjEgMTUgMzIwLjYgNTMuNCAzMzAuOWwxODkuNSA1MC44YzM4LjQgMTAuMyA3Ny45LTEyLjUgODguMi01MC45bDUwLjgtMTg5LjVjMTAuMy0zOC40LTEyLjUtNzcuOS01MC45LTg4LjJMMTQxLjQgMi4zem0yMyAyMDUuN2EzMiAzMiAwIDEgMSA1NS40LTMyIDMyIDMyIDAgMSAxIC01NS40IDMyek03OS4yIDIyMC4zYTMyIDMyIDAgMSAxIDMyIDU1LjQgMzIgMzIgMCAxIDEgLTMyLTU1LjR6bTE4NSA5Ni40YTMyIDMyIDAgMSAxIC0zMi01NS40IDMyIDMyIDAgMSAxIDMyIDU1LjR6bTktMjA4LjRhMzIgMzIgMCAxIDEgMzIgNTUuNCAzMiAzMiAwIDEgMSAtMzItNTUuNHptLTEyMSAxNC40YTMyIDMyIDAgMSAxIC0zMi01NS40IDMyIDMyIDAgMSAxIDMyIDU1LjR6TTQxOCAxOTJMMzc3LjQgMzQzLjJjLTE3LjIgNjQtODMgMTAyLTE0NyA4NC45bC0zOC4zLTEwLjMgMCAzMC4yYzAgMzUuMyAyOC43IDY0IDY0IDY0bDE5MiAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0TDQxOCAxOTJ6Il19LGozZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaG9wLXNsYXNoIixpY29uOls1NzYsNTEyLFsic3RvcmUtYWx0LXNsYXNoIl0sImUwNzAiLCJNNDEtMjQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBTLTIuMy0uMyA3IDkuMWw1MjggNTI4YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTctNTcgMC0xOTAuM2MyNi44LTEuOSA0OC0yNC4zIDQ4LTUxLjYgMC04LTEuOS0xNi01LjUtMjMuMkw0OTcuNyA2Ny40QzQ4Ni44IDQ1LjcgNDY0LjcgMzIgNDQwLjQgMzJMMTM1LjYgMzJjLTEwLjcgMC0yMSAyLjctMzAuMiA3LjZMNDEtMjQuOXpNMzIxLjggMjU2TDQ0OCAyNTYgNDQ4IDM4Mi4yIDMyMS44IDI1NnpNMzUyIDQyMS44bC02NC02NCAwIDEwLjJjMCA4LjgtNy4yIDE2LTE2IDE2bC0xMjggMGMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTEyIDU4LjIgMC0xMzQuOC0xMzQuOC0yOS45IDU5LjljLTMuNiA3LjItNS41IDE1LjEtNS41IDIzLjIgMCAyNy4zIDIxLjIgNDkuNyA0OCA1MS42TDY0IDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGwxOTIgMGMyNi41IDAgNDgtMjEuNSA0OC00OGwwLTEwLjJ6Il19LExQdD1qM2UsVjNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InNvcnQtZG93biIsaWNvbjpbMzg0LDUxMixbInNvcnQtZGVzYyJdLCJmMGRkIiwiTTMyIDI4OGMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOFMuMiAzMzMuNSA5LjQgMzQyLjZsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzM2NC45IDI4OCAzNTIgMjg4TDMyIDI4OHoiXX0sQVB0PVYzZSxEUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicGVzZXRhLXNpZ24iLGljb246WzQ0OCw1MTIsW10sImUyMjEiLCJNMTEyIDMyQzk0LjMgMzIgODAgNDYuMyA4MCA2NGwwIDEwNC0yNCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDI0IDAgMCAyMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTk2IDk2IDBjODAuMiAwIDE0Ni42LTU5IDE1OC4yLTEzNmwyNS44IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTI1LjggMEMzODYuNiA5MSAzMjAuMiAzMiAyNDAgMzJMMTEyIDMyek0zMzMgMTY4bC0xODkgMCAwLTcyIDk2IDBjNDQuNyAwIDgyLjMgMzAuNiA5MyA3MnpNMTQ0IDIxNmwxODkgMGMtMTAuNyA0MS40LTQ4LjIgNzItOTMgNzJsLTk2IDAgMC03MnoiXX0sVTNlPXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6InRhYmxldC1zY3JlZW4tYnV0dG9uIixpY29uOls0NDgsNTEyLFsidGFibGV0LWFsdCJdLCJmM2ZhIiwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NHpNMjU2IDQzMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zODQgNjRsLTMyMCAwIDAgMjg4IDMyMCAwIDAtMjg4eiJdfSxFUHQ9VTNlLFczZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kLWhvbGRpbmctZG9sbGFyIixpY29uOls1NzYsNTEyLFsiaGFuZC1ob2xkaW5nLXVzZCJdLCJmNGMwIiwiTTI4OC0xNmMtMTMuMyAwLTI0IDEwLjctMjQgMjRsMCAxMi0xLjggMGMtMzYuNiAwLTY2LjIgMjkuNy02Ni4yIDY2LjIgMCAzMy40IDI0LjkgNjEuNiA1OCA2NS43bDYxIDcuNmM1LjEgLjYgOSA1IDkgMTAuMiAwIDUuNy00LjYgMTAuMi0xMC4yIDEwLjJMMjQwIDE4MGMtMTUuNSAwLTI4IDEyLjUtMjggMjhzMTIuNSAyOCAyOCAyOGwyNCAwIDAgMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGwwLTEyIDEuOCAwYzM2LjYgMCA2Ni4yLTI5LjcgNjYuMi02Ni4yIDAtMzMuNC0yNC45LTYxLjYtNTgtNjUuN2wtNjEtNy42Yy01LjEtLjYtOS01LTktMTAuMiAwLTUuNyA0LjYtMTAuMiAxMC4yLTEwLjJMMzI4IDc2YzE1LjUgMCAyOC0xMi41IDI4LTI4cy0xMi41LTI4LTI4LTI4bC0xNiAwIDAtMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTEwOS4zIDM0MS41TDY2LjcgMzg0IDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAuNSAwYzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjNjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNiAyODAgNDE2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0bDcyIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTE1Mi4yIDBjLTMzLjkgMC02Ni41IDEzLjUtOTAuNSAzNy41eiJdfSwkUHQ9VzNlLEczZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJzaGllbGQiLGljb246WzUxMiw1MTIsWzEyODczNywic2hpZWxkLWJsYW5rIl0sImYxMzIiLCJNMjU2IDBjNC42IDAgOS4yIDEgMTMuNCAyLjlMNDU3LjggODIuOGMyMiA5LjMgMzguNCAzMSAzOC4zIDU3LjItLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yLTE2LjcgOC0zNi4xIDgtNTIuOCAwLTE3Mi40LTgyLjUtMjEzLjEtMjY0LTIxMy42LTM2My4yLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjkgMSAyNTEuNCAwIDI1NiAweiJdfSxJUHQ9RzNlLFkzZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJmYWNlLWxhdWdoIixpY29uOls1MTIsNTEyLFsibGF1Z2giXSwiZjU5OSIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTAxLjYgMzE0Yy0zLjctMTMuNyA3LjUtMjYgMjEuNy0yNmwyNjUuNCAwYzE0LjIgMCAyNS40IDEyLjMgMjEuNyAyNi0xOC41IDY4LTgwLjYgMTE4LTE1NC40IDExOFMxMjAgMzgyIDEwMS42IDMxNHpNMTQ0IDE5MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0eiJdfSxQUHQ9WTNlLE5QdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJoYW5kcy1ob2xkaW5nIixpY29uOls2NDAsNTEyLFtdLCJmNGMyIiwiTTgwIDEwNGMwLTIyLjEtMTcuOS00MC00MC00MFMwIDgxLjkgMCAxMDRMMCAzMjUuNWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOUwxMjggNDkzLjNjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2w2Ni43IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC03OC45YzAtMjkuNy0xMS44LTU4LjItMzIuOC03OS4ybC0yNS4zLTI1LjMgMCAwYy03LjMtNy4zLTIzLjEtMjMuMS00Ny4yLTQ3LjItMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNjMjQuMSAyNC4xIDM5LjkgMzkuOSA0Ny4yIDQ3LjIgMTEgMTEgOS4yIDI5LjItMy43IDM3LjgtOS43IDYuNS0yMi43IDUuMi0zMS0zLjFMOTguNyAzMDkuNWMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM0w4MCAxMDR6bTQ4MCAwbDAgMTYwLjJjMCAxNy02LjcgMzMuMy0xOC43IDQ1LjNsLTUxLjEgNTEuMWMtOC4zIDguMy0yMS4zIDkuNi0zMSAzLjEtMTIuOS04LjYtMTQuNy0yNi45LTMuNy0zNy44IDcuMy03LjMgMjMuMS0yMy4xIDQ3LjItNDcuMiAxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtMjQuMSAyNC4xLTM5LjkgMzkuOS00Ny4yIDQ3LjJsMCAwLTI1LjMgMjUuM2MtMjEgMjEtMzIuOCA0OS41LTMyLjggNzkuMmwwIDc4LjljMCAyNi41IDIxLjUgNDggNDggNDhsNjYuNyAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDk5LjktOTkuOWMxOC0xOCAyOC4xLTQyLjQgMjguMS02Ny45TDY0MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB6Il19LFozZT17cHJlZml4OiJmYXMiLGljb25OYW1lOiJjYXJ0LXNob3BwaW5nIixpY29uOls2NDAsNTEyLFsxMjg3MjIsInNob3BwaW5nLWNhcnQiXSwiZjA3YSIsIk0yNC0xNkMxMC43LTE2IDAtNS4zIDAgOFMxMC43IDMyIDI0IDMybDQ1LjMgMGMzLjkgMCA3LjIgMi44IDcuOSA2LjZsNTIuMSAyODYuM2M2LjIgMzQuMiAzNiA1OS4xIDcwLjggNTkuMUw0NTYgMzg0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0yNTUuOSAwYy0xMS42IDAtMjEuNS04LjMtMjMuNi0xOS43bC01LjEtMjguMyAzMDMuNiAwYzMwLjggMCA1Ny4yLTIxLjkgNjIuOS01Mi4yTDU2OC45IDY5LjlDNTcyLjYgNTAuMiA1NTcuNSAzMiA1MzcuNCAzMmwtNDEyLjcgMC0uNC0yYy00LjgtMjYuNi0yOC00Ni01NS4xLTQ2TDI0LTE2ek0yMDggNTEyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjI0IDBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2eiJdfSxGUHQ9WjNlLE9QdD17cHJlZml4OiJmYXMiLGljb25OYW1lOiJvY3RhZ29uIixpY29uOls1MTIsNTEyLFsxMjg3MjFdLCJmMzA2IiwiTTE4OC42IC4xYy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN0wxOS4yIDE0M0M3LjIgMTU1IC41IDE3MS4yIC41IDE4OC4ybDAgMTM1LjZjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMMTQzLjQgNDkzLjJjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN2wxMzUuNiAwYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43TDQ5My42IDM2OWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zbDAtMTM1LjZjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMzY5LjUgMTguOGMtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0wxODguNiAuMXoiXX0sUlB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImhhbmQtcG9pbnRlciIsaWNvbjpbNDQ4LDUxMixbXSwiZjI1YSIsIk0xMjggNDBjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MGwwIDE0OC4yYzguNS03LjYgMTkuNy0xMi4yIDMyLTEyLjIgMjAuNiAwIDM4LjIgMTMgNDUgMzEuMiA4LjgtOS4zIDIxLjItMTUuMiAzNS0xNS4yIDI1LjMgMCA0NiAxOS41IDQ3LjkgNDQuMyA4LjUtNy43IDE5LjgtMTIuMyAzMi4xLTEyLjMgMjYuNSAwIDQ4IDIxLjUgNDggNDhsMCAxMTJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhsLTg1LjMgMGMtNSAwLTkuOS0uMy0xNC43LTEtNTUuMy01LjYtMTA2LjItMzQtMTQwLTc5TDggMzM2Yy0xMy4zLTE3LjctOS43LTQyLjcgOC01NnM0Mi43LTkuNyA1NiA4bDU2IDc0LjcgMC0zMjIuN3pNMjQwIDMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NnptNDgtMTZjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZsMC05NmMwLTguOC03LjItMTYtMTYtMTZ6bTgwIDE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgOTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNmwwLTk2eiJdfSxCUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToicmVnaXN0ZXJlZCIsaWNvbjpbNTEyLDUxMixbMTc0XSwiZjI1ZCIsIk0yNTYgNTEyYTI1NiAyNTYgMCAxIDAgMC01MTIgMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjAwIDE0NGw4MCAwYzM5LjggMCA3MiAzMi4yIDcyIDcyIDAgMjguOS0xNyA1My44LTQxLjYgNjUuM2wzMC4yIDUwLjNjNi44IDExLjQgMy4xIDI2LjEtOC4yIDMyLjlzLTI2LjEgMy4xLTMyLjktOC4ybC00MS02OC4zLTM0LjQgMCAwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0bDAtMTc2YzAtMTMuMyAxMC43LTI0IDI0LTI0em03MiA5Nmw4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTU2IDAgMCA0OCA0OCAweiJdfSxIUHQ9e3ByZWZpeDoiZmFzIixpY29uTmFtZToiaG91c2Utc2lnbmFsIixpY29uOls1NzYsNTEyLFtdLCJlMDEyIiwiTTUxNS45IDI0MGwtMTkuOSAwIDAgMTQ0YzAgMzUuMy0yOC43IDY0LTY0IDY0bC0xMzcgMGMtMjQtOTEuNy05My41LTE2NS0xODMtMTk0LjNsMC0xMy43LTE5LjkgMGMtMTUuNSAwLTI4LjEtMTIuNi0yOC4xLTI4LjEgMC03LjYgMy4xLTE0LjkgOC42LTIwLjJMMjc2LjUtNC45QzI4My45LTEyIDI5My43LTE2IDMwNC0xNnMyMC4xIDQgMjcuNSAxMS4xTDUzNS40IDE5MS43YzUuNSA1LjMgOC42IDEyLjYgOC42IDIwLjIgMCAxNS41LTEyLjYgMjguMS0yOC4xIDI4LjF6TTI4MCAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0bDAgNDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRsNDggMGMxMy4zIDAgMjQtMTAuNyAyNC0yNGwwLTQ4YzAtMTMuMy0xMC43LTI0LTI0LTI0bC00OCAwek0yNCAyODhjMTI4LjEgMCAyMzIgMTAzLjkgMjMyIDIzMiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODQtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0wIDQwOGMwLTEzLjMgMTAuNy0yNCAyNC0yNCA3NS4xIDAgMTM2IDYwLjkgMTM2IDEzNiAwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTQ4LjYtMzkuNC04OC04OC04OC0xMy4zIDAtMjQtMTAuNy0yNC0yNHoiXX0scVB0PXtwcmVmaXg6ImZhcyIsaWNvbk5hbWU6ImJhbmdsYWRlc2hpLXRha2Etc2lnbiIsaWNvbjpbMzg0LDUxMixbXSwiZTJlNiIsIk0zNiAzMi4zQzE4LjQgMzAuMSAyLjQgNDIuNSAuMyA2MFMxMC41IDkzLjYgMjggOTUuOGw3LjkgMWMxNiAyIDI4IDE1LjYgMjggMzEuOGwwIDMxLjUtNDAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGw0MCAwIDAgMTc2YzAgNTMgNDMgOTYgOTYgOTZsMzIgMGMxMDYgMCAxOTItODYgMTkyLTE5MmwwLTMyYzAtNTMtNDMtOTYtOTYtOTZsLTE2IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4bC0zMiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTE3NiA0MCAwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC00MCAwIDAtMzEuNUMxMjggODAuMSA5MiAzOS4yIDQzLjkgMzMuMmwtNy45LTF6Il19LENacj17ZmEwOmV1dCxmYTE6dHV0LGZhMjpydXQsZmEzOml1dCxmYTQ6YXV0LGZhNTpudXQsZmE2Om91dCxmYTc6c3V0LGZhODpsdXQsZmE5OmN1dCxmYURvbGxhclNpZ246UUEsZmFEb2xsYXI6ZHV0LGZhVXNkOnV1dCxmYURvZzpwdXQsZmFUcnVja01vdmluZzpodXQsZmFSb3RhdGU6Qm9lLGZhU3luY0FsdDpmdXQsZmFTcXVhcmVNaW51czpIb2UsZmFNaW51c1NxdWFyZTptdXQsZmFBbGlnbkp1c3RpZnk6Z3V0LGZhQ2FsZW5kYXJDaGVjazpidXQsZmFGYWNlS2lzczpxb2UsZmFLaXNzOnZ1dCxmYUtpdGNoZW5TZXQ6eHV0LGZhRG5hOnl1dCxmYUNoaWxkUmVhY2hpbmc6d3V0LGZhUGFzdGU6amcsZmFGaWxlQ2xpcGJvYXJkOk11dCxmYU1ldGVvcjprdXQsZmFHZWFyczpqb2UsZmFDb2dzOlN1dCxmYUZpbGVDaXJjbGVQbHVzOnp1dCxmYUljaWNsZXM6Q3V0LGZhQXJyb3dUcmVuZFVwOlR1dCxmYUhleGFnb25Ob2Rlc0JvbHQ6X3V0LGZhUXVlc3Rpb246THV0LGZhSGFuZHNCb3VuZDpBdXQsZmFQZXJzb25XYWxraW5nTHVnZ2FnZTpEdXQsZmFGaWxlQXJyb3dEb3duOlZvZSxmYUZpbGVEb3dubG9hZDpFdXQsZmFQZXJzb25Cb290aDokdXQsZmFMb2N1c3Q6SXV0LGZhUmlnaHRMb25nOlVvZSxmYUxvbmdBcnJvd0FsdFJpZ2h0OlB1dCxmYVRydWNrRHJvcGxldDpOdXQsZmFIYW5kSG9sZGluZ01lZGljYWw6RnV0LGZhSGFuZFBvaW50TGVmdDpPdXQsZmFDYWxjdWxhdG9yOlJ1dCxmYU1pbnVzOlZnLGZhU3VidHJhY3Q6QnV0LGZhQXJyb3dVcFpBOldvZSxmYVNvcnRBbHBoYVVwQWx0Okh1dCxmYU1pY3JvcGhvbmVTbGFzaDpxdXQsZmFTcXVhcmVQZW46SkEsZmFQZW5TcXVhcmU6anV0LGZhUGVuY2lsU3F1YXJlOlZ1dCxmYUhhbmRGaXN0OkdvZSxmYUZpc3RSYWlzZWQ6VXV0LGZhQ29tbWVudFNtczpZb2UsZmFTbXM6V3V0LGZhU2ltQ2FyZDpHdXQsZmFTY2FsZUJhbGFuY2VkOlpvZSxmYUJhbGFuY2VTY2FsZTpZdXQsZmFDYXI6WG9lLGZhQXV0b21vYmlsZTpadXQsZmFDcm9wU2ltcGxlOlFvZSxmYUNyb3BBbHQ6WHV0LGZhTWVkYWw6UXV0LGZhU2Nyb2xsOkp1dCxmYUZpbGVFeGNlbDpLdXQsZmFGaWx0ZXI6ZTh0LGZhRHJ1bTp0OHQsZmFNYXBQaW46cjh0LGZhU2NhbGVVbmJhbGFuY2VkRmxpcDpKb2UsZmFCYWxhbmNlU2NhbGVSaWdodDppOHQsZmFBcnJvd3NUb0NpcmNsZTphOHQsZmFFbnZlbG9wZTpuOHQsZmFCYWJ5Om84dCxmYVNxdWFyZUNhcmV0RG93bjpLb2UsZmFDYXJldFNxdWFyZURvd246czh0LGZhVGVudDpsOHQsZmFBOmM4dCxmYVBhcmFjaHV0ZUJveDpkOHQsZmFDYXJ0QXJyb3dEb3duOnU4dCxmYUJyaWRnZUNpcmNsZUV4Y2xhbWF0aW9uOnA4dCxmYUNsb3VkQXJyb3dVcDpLQSxmYUNsb3VkVXBsb2FkOmg4dCxmYUNsb3VkVXBsb2FkQWx0OmY4dCxmYUF0Om04dCxmYUluZGlhblJ1cGVlU2lnbjplRCxmYUluZGlhblJ1cGVlOmc4dCxmYUlucjpiOHQsZmFUcnVjazp2OHQsZmFDaGFsa2JvYXJkVXNlcjplMmUsZmFDaGFsa2JvYXJkVGVhY2hlcjp4OHQsZmFVc2VyQ2hlY2s6eTh0LGZhVXNlck5pbmphOnc4dCxmYVBsYW50V2lsdDpNOHQsZmFXZWlnaHRTY2FsZTp0MmUsZmFXZWlnaHQ6azh0LGZhQ2FyZXRSaWdodDpZRCxmYUZsb3JpblNpZ246Uzh0LGZhQmVsbDpaRCxmYUxhcmlTaWduOno4dCxmYU1pbGxTaWduOkM4dCxmYVBlcnNvblNub3dib2FyZGluZzpyMmUsZmFTbm93Ym9hcmRpbmc6VDh0LGZhVHR5OmkyZSxmYVRlbGV0eXBlOl84dCxmYVVzZXJzUmVjdGFuZ2xlOkw4dCxmYU1vYmlsZTp0RCxmYU1vYmlsZUFuZHJvaWQ6QTh0LGZhTW9iaWxlUGhvbmU6RDh0LGZhQXJyb3dzVHVyblRvRG90czpFOHQsZmFFeGNsYW1hdGlvbjokOHQsZmFDaHVyY2g6STh0LGZhVG9nZ2xlT2ZmOlA4dCxmYVNob2VQcmludHM6Tjh0LGZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uOkY4dCxmYVdhbGxldDpYRCxmYU1lc3NhZ2U6VWcsZmFDb21tZW50QWx0Ok84dCxmYVRyb3BoeTpSOHQsZmFGYWNlRGl6enk6YTJlLGZhRGl6enk6Qjh0LGZhQmFjdGVyaWE6SDh0LGZhRWFyRGVhZjpUZyxmYURlYWY6cTh0LGZhRGVhZm5lc3M6ajh0LGZhSGFyZE9mSGVhcmluZzpWOHQsZmFQZW9wbGVBcnJvd3M6bjJlLGZhUGVvcGxlQXJyb3dzTGVmdFJpZ2h0OlU4dCxmYUhhbmRzQ2xhcHBpbmc6Vzh0LGZhVmlydXNDb3ZpZFNsYXNoOkc4dCxmYUNhbGVuZGFyRGF5czpvMmUsZmFDYWxlbmRhckFsdDpZOHQsZmFEaWFtb25kVHVyblJpZ2h0OnMyZSxmYURpcmVjdGlvbnM6Wjh0LGZhSGFuZFBvaW50VXA6WDh0LGZhQmV6aWVyQ3VydmU6UTh0LGZhUGVyc29uSGFsZkRyZXNzOko4dCxmYVNxdWFyZVBvbGxIb3Jpem9udGFsOmwyZSxmYVBvbGxIOks4dCxmYVNjaG9vbENpcmNsZVhtYXJrOmVwdCxmYUhhbmRMaXphcmQ6dHB0LGZhQ2hhbGtib2FyZDpjMmUsZmFCbGFja2JvYXJkOnJwdCxmYVVwUmlnaHRGcm9tU3F1YXJlOmQyZSxmYUV4dGVybmFsTGlua0FsdDppcHQsZmFTcXVhcmVGdWxsOmFwdCxmYUNsb3ZlcjpucHQsZmFUZWV0aE9wZW46b3B0LGZhQmFyc1N0YWdnZXJlZDpyRCxmYVJlb3JkZXI6c3B0LGZhU3RyZWFtOmxwdCxmYVdhcmVob3VzZTpjcHQsZmFTd2F0Y2hib29rOmRwdCxmYUNhbXBncm91bmQ6dXB0LGZhUGVyc29uV2Fsa2luZ0Fycm93UmlnaHQ6cHB0LGZhR2xhc3NlczpocHQsZmFDaXJjbGVQYXVzZTp1MmUsZmFQYXVzZUNpcmNsZTpmcHQsZmFNZW1vcnk6bXB0LGZhR2lmdDpncHQsZmFNb25leUJpbGxXaGVhdDpicHQsZmFEdW5nZW9uOnZwdCxmYVN1aXRjYXNlTWVkaWNhbDpwMmUsZmFNZWRraXQ6eHB0LGZhUGVyc29uQ2FuZTp5cHQsZmFHYXVnZTpfZyxmYURhc2hib2FyZDp3cHQsZmFHYXVnZU1lZDpNcHQsZmFUYWNob21ldGVyQWx0QXZlcmFnZTprcHQsZmFFbnZlbG9wZU9wZW5UZXh0OlNwdCxmYVRvb2xib3g6enB0LGZhUG93ZXJPZmY6Q3B0LGZhU2lnbmFsOmlELGZhU2lnbmFsNTpUcHQsZmFTaWduYWxQZXJmZWN0Ol9wdCxmYUFycm93c1NwaW46THB0LGZhSm9pbnQ6QXB0LGZhQnJhaWxsZTpEcHQsZmFCYXNrZXRTaG9wcGluZzpoMmUsZmFTaG9wcGluZ0Jhc2tldDpFcHQsZmFCcmlkZ2U6JHB0LGZhUGxhbmVBcnJpdmFsOklwdCxmYUNhc2hSZWdpc3RlcjpQcHQsZmFSaW5nOk5wdCxmYUFxdWFyaXVzOkZwdCxmYVNoYXJlTm9kZXM6ZjJlLGZhU2hhcmVBbHQ6T3B0LGZhUGVyc29uQ2lyY2xlRXhjbGFtYXRpb246UnB0LGZhQmlub2N1bGFyczpCcHQsZmFLaXBTaWduOkhwdCxmYUhhcmREcml2ZTptMmUsZmFIZGQ6cXB0LGZhUmFua2luZ1N0YXI6anB0LGZhVXNlclRpZTpWcHQsZmFFbGxpcHNpczpnMmUsZmFFbGxpcHNpc0g6VXB0LGZhU3RvcmVTbGFzaDpXcHQsZmFQZXJjZW50OmIyZSxmYVBlcmNlbnRhZ2U6R3B0LGZhRmlsZVppcHBlcjp2MmUsZmFGaWxlQXJjaGl2ZTpZcHQsZmFEaXNwbGF5OlpwdCxmYUljb25zOngyZSxmYUhlYXJ0TXVzaWNDYW1lcmFCb2x0OlhwdCxmYVJ1bGVyVmVydGljYWw6UXB0LGZhTWFwTG9jYXRpb25Eb3Q6eTJlLGZhTWFwTWFya2VkQWx0OkpwdCxmYUhlYXJ0Q3JhY2s6dzJlLGZhSGVhcnRCcm9rZW46S3B0LGZhQ293OmVodCxmYVJzczpXZyxmYUZlZWQ6dGh0LGZhTWFnbmlmeWluZ0dsYXNzOkdnLGZhU2VhcmNoOnJodCxmYUNsb3VkTW9vbjppaHQsZmFCb3hlc1N0YWNrZWQ6YUQsZmFCb3hlczphaHQsZmFCb3hlc0FsdDpuaHQsZmFDb2RlQnJhbmNoOm9odCxmYUJhbjpNMmUsZmFDYW5jZWw6c2h0LGZhSnVnRGV0ZXJnZW50OmxodCxmYVJlcGx5OmsyZSxmYU1haWxSZXBseTpjaHQsZmFTdW5QbGFudFdpbHQ6ZGh0LGZhQmFjdGVyaXVtOnVodCxmYVJlY29yZFZpbnlsOnBodCxmYUZsb3BweURpc2s6UzJlLGZhU2F2ZTpoaHQsZmFUb2lsZXRzUG9ydGFibGU6Zmh0LGZhTzptaHQsZmFQYWxldHRlOmdodCxmYVVubG9jazpiaHQsZmFFYXJMaXN0ZW46ejJlLGZhQXNzaXN0aXZlTGlzdGVuaW5nU3lzdGVtczp2aHQsZmFDb2RlUHVsbFJlcXVlc3Q6eGh0LGZhS2V5OnlodCxmYVNrdWxsOndodCxmYU1hcnNTdHJva2VVcDpDMmUsZmFNYXJzU3Ryb2tlVjpNaHQsZmFGaXJlRmxhbWVTaW1wbGU6VDJlLGZhQnVybjpraHQsZmFUcmVlOlNodCxmYVNtb2c6emh0LGZhUzpDaHQsZmFKZWRpOlRodCxmYVBlcnNvbkhpa2luZzpfMmUsZmFIaWtpbmc6X2h0LGZhQXJyb3dzVXBUb0xpbmU6TGh0LGZhTWFyc0RvdWJsZTpBaHQsZmFUaGVybW9tZXRlcjpEaHQsZmFQYWludGJydXNoOkwyZSxmYVBhaW50QnJ1c2g6RWh0LGZhTmV1dGVyOiRodCxmYVNxdWFyZVBob25lRmxpcDpBMmUsZmFQaG9uZVNxdWFyZUFsdDpJaHQsZmFGYWNlR3JpblRvbmd1ZVNxdWludDpEMmUsZmFHcmluVG9uZ3VlU3F1aW50OlBodCxmYUNvbW1lbnREb2xsYXI6Tmh0LGZhSGlwcG86Rmh0LGZhQm93bEZvb2Q6T2h0LGZhU3F1YXJlVmlydXM6Umh0LGZhQ2xvdWRTdW5SYWluOkJodCxmYUFycm93UmlnaHRMb25nOkUyZSxmYUxvbmdBcnJvd1JpZ2h0OkhodCxmYUJ1aWxkaW5nVW46cWh0LGZhVGVtcGVyYXR1cmVMb3c6amh0LGZhRG9vck9wZW46Vmh0LGZhQWxpZ25MZWZ0OlVodCxmYUNhbWVyYTokMmUsZmFDYW1lcmFBbHQ6V2h0LGZhVXNlcnNSYXlzOkdodCxmYVJhaW5ib3c6WWh0LGZhU2l0ZW1hcDpaaHQsZmFGYWNlR3JpblN0YXJzOkkyZSxmYUdyaW5TdGFyczpYaHQsZmFTb3J0VXA6UDJlLGZhU29ydEFzYzpRaHQsZmFFeWU6UUQsZmFDYXJldExlZnQ6SkQsZmFBcHBsZVdob2xlOk4yZSxmYUFwcGxlQWx0OkpodCxmYVNjcm9sbFRvcmFoOkYyZSxmYVRvcmFoOktodCxmYUhvdXNlTG9jazplZnQsZmFBcnJvd3NMZWZ0UmlnaHRUb0xpbmU6dGZ0LGZhVHJhc2g6bmIsZmFGYWNlU2FkVGVhcjpPMmUsZmFTYWRUZWFyOnJmdCxmYUZheDppZnQsZmFQZXJzb25DaXJjbGVQbHVzOmFmdCxmYUhhbXNhOm5mdCxmYVBlcnNvbkNpcmNsZVF1ZXN0aW9uOm9mdCxmYUNsaXBib2FyZENoZWNrOnNmdCxmYVNoYXJlRnJvbVNxdWFyZTpSMmUsZmFTaGFyZVNxdWFyZTpsZnQsZmFSZWNlaXB0OktELGZhRXF1YWxzOmNmdCxmYUNoZXZyb25VcDpkZnQsZmFWaXJ1c1NsYXNoOnVmdCxmYVNsYXNoOnBmdCxmYUV4cGFuZDpoZnQsZmFOb3RlU3RpY2t5OkIyZSxmYVN0aWNreU5vdGU6ZmZ0LGZhVGFibGVDb2x1bW5zOkgyZSxmYUNvbHVtbnM6bWZ0LGZhUGVyc29uU2hlbHRlcjpnZnQsZmFDaXJjbGVOb3RjaDpiZnQsZmFXYXRlcjp2ZnQsZmFEZWxldGVMZWZ0OnEyZSxmYUJhY2tzcGFjZTp4ZnQsZmFCcm9vbUJhbGw6bkQsZmFRdWlkZGl0Y2g6eWZ0LGZhUXVpZGRpdGNoQnJvb21CYWxsOndmdCxmYUo6TWZ0LGZhU2h1dHRsZVNwYWNlOmoyZSxmYVNwYWNlU2h1dHRsZTprZnQsZmFZaW5ZYW5nOlNmdCxmYVN0b3A6emZ0LGZhVHJvd2VsOkNmdCxmYUhhbmRCYWNrRmlzdDpWMmUsZmFIYW5kUm9jazpUZnQsZmFUZW1wZXJhdHVyZUhpZ2g6X2Z0LGZhR3JlYXRlclRoYW46TGZ0LGZhQ3J1dGNoOkFmdCxmYVNlcHRhZ29uOlUyZSxmYUhlcHRhZ29uOkRmdCxmYVN0cmVldFZpZXc6RWZ0LGZhV2F2ZVNxdWFyZTokZnQsZmFBbmdsZUxlZnQ6SWZ0LGZhU2NyZXdkcml2ZXI6UGZ0LGZhVHJhY3RvcjpOZnQsZmFCcmlkZ2VDaXJjbGVYbWFyazpGZnQsZmFWaWFsczpPZnQsZmFTdGV0aG9zY29wZTpSZnQsZmFQb2RjYXN0OkJmdCxmYUFycm93VXBSaWdodERvdHM6SGZ0LGZhQ2hlc3NRdWVlbjpxZnQsZmFBbmNob3JDaXJjbGVFeGNsYW1hdGlvbjpqZnQsZmFFbGxpcHNpc1ZlcnRpY2FsOlcyZSxmYUVsbGlwc2lzVjpWZnQsZmFIZWFydENpcmNsZUV4Y2xhbWF0aW9uOlVmdCxmYUJ1aWxkaW5nQ2lyY2xlRXhjbGFtYXRpb246V2Z0LGZhUGVyc29uQXJyb3dVcEZyb21MaW5lOkdmdCxmYU5vdEVxdWFsOllmdCxmYVRyYWluVHJhbTpaZnQsZmFQbGFuZURlcGFydHVyZTpYZnQsZmFSaWdodFRvQnJhY2tldDpHMmUsZmFTaWduSW5BbHQ6UWZ0LGZhU2RDYXJkOkpmdCxmYUhvdXNlQ2lyY2xlRXhjbGFtYXRpb246S2Z0LGZhU2hla2VsU2lnbjpOcCxmYUlsczplN3QsZmFTaGVrZWw6dDd0LGZhU2hlcWVsOnI3dCxmYVNoZXFlbFNpZ246aTd0LGZhUmFkaW86YTd0LGZhSGFuZERvdHM6WTJlLGZhQWxsZXJnaWVzOm43dCxmYUJvb2tTa3VsbDpaMmUsZmFCb29rRGVhZDpvN3QsZmFVbmxvY2tLZXlob2xlOlgyZSxmYVVubG9ja0FsdDpzN3QsZmFGaWxlQXJyb3dVcDpRMmUsZmFGaWxlVXBsb2FkOmw3dCxmYUZhY2VHcmluVGVhcnM6SjJlLGZhR3JpblRlYXJzOmM3dCxmYVBlblRvU3F1YXJlOllnLGZhRWRpdDpkN3QsZmFFYXJ0aEV1cm9wZTpLMmUsZmFHbG9iZUV1cm9wZTp1N3QsZmFGYWNlR3JpbkJlYW1Td2VhdDplc2UsZmFHcmluQmVhbVN3ZWF0OnA3dCxmYUNpcmNsZUhhbGZTdHJva2U6dHNlLGZhQWRqdXN0Omg3dCxmYVBlcnNvbk1pbGl0YXJ5VG9QZXJzb246Zjd0LGZhVGFibGVDZWxsc0NvbHVtbkxvY2s6bTd0LGZhVHJ1Y2tGaWVsZFVuOmc3dCxmYUNsb2NrOnJzZSxmYUNsb2NrRm91cjpiN3QsZmFCb29rOnY3dCxmYUZhY2VMYXVnaFdpbms6aXNlLGZhTGF1Z2hXaW5rOng3dCxmYUNsb3VkTWVhdGJhbGw6eTd0LGZhQ2hhcnRBcmVhOmFzZSxmYUFyZWFDaGFydDp3N3QsZmFSdXBpYWhTaWduOk03dCxmYVRleHRXaWR0aDprN3QsZmFTYXRlbGxpdGU6Uzd0LGZhTWFnbmlmeWluZ0dsYXNzTWludXM6bnNlLGZhU2VhcmNoTWludXM6ejd0LGZhUGVvcGxlR3JvdXA6Qzd0LGZhU3F1YXJlQmluYXJ5OlQ3dCxmYU1hc2tzVGhlYXRlcjpvc2UsZmFUaGVhdGVyTWFza3M6Xzd0LGZhQ2FydFBsdXM6TDd0LGZhSGFuZHNBc2xJbnRlcnByZXRpbmc6TGcsZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZzpBN3QsZmFBc2xJbnRlcnByZXRpbmc6RDd0LGZhSGFuZHNBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZzpFN3QsZmFUYWJsZUNlbGxzUm93VW5sb2NrOiQ3dCxmYVJvY2tldDpJN3QsZmFTaHJpbXA6UDd0LGZhVGVuZ2VTaWduOnNzZSxmYVRlbmdlOk43dCxmYUhvdXNlQ2hpbW5leU1lZGljYWw6bHNlLGZhQ2xpbmljTWVkaWNhbDpGN3QsZmFVc2Vyc1NsYXNoOk83dCxmYVBhcGVyUGxhbmU6Ujd0LGZhQm9va0F0bGFzOmNzZSxmYUF0bGFzOkI3dCxmYVRhYmxlOkg3dCxmYUhlYXJ0OnE3dCxmYUNpcmNsZUNoZXZyb25VcDpkc2UsZmFDaGV2cm9uQ2lyY2xlVXA6ajd0LGZhQmF0dGVyeUhhbGY6dXNlLGZhQmF0dGVyeTM6Vjd0LGZhRm9udEF3ZXNvbWU6b0QsZmFGb250QXdlc29tZUZsYWc6VTd0LGZhRm9udEF3ZXNvbWVMb2dvRnVsbDpXN3QsZmFIYW5kY3VmZnM6Rzd0LGZhSGF0Q293Ym95U2lkZTpZN3QsZmFJbmR1c3RyeTpaN3QsZmFMaW5lc0xlYW5pbmc6WDd0LGZhUGFzc3BvcnQ6UTd0LGZhSW5maW5pdHk6Sjd0LGZhQ2xvbmU6Szd0LGZhRm9yd2FyZDplbXQsZmFNOnRtdCxmYVJvYWRTcGlrZXM6cm10LGZhTW91bnRhaW46aW10LGZhQ2hlc3M6YW10LGZhVGVtcGVyYXR1cmVUaHJlZVF1YXJ0ZXJzOkFnLGZhVGVtcGVyYXR1cmUzOm5tdCxmYVRoZXJtb21ldGVyMzpvbXQsZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnM6c210LGZhQjpsbXQsZmFTaGllbGRWaXJ1czpjbXQsZmFMaXRlY29pblNpZ246ZG10LGZhRGljZUQ2OnVtdCxmYUdyaXBMaW5lc1ZlcnRpY2FsOnBtdCxmYUdvbGZCYWxsVGVlOnBzZSxmYUdvbGZCYWxsOmhtdCxmYUhleGFnb246Zm10LGZhRm9sZGVyT3BlbjptbXQsZmFLYWFiYTpnbXQsZmFIYW5kSG9sZGluZzpibXQsZmFTaW5nbGVRdW90ZVJpZ2h0OnZtdCxmYUJvdHRsZURyb3BsZXQ6eG10LGZhV2luZG93TWluaW1pemU6eW10LGZhQ2hldnJvblJpZ2h0OndtdCxmYUVnZzpNbXQsZmFMYW5kbWFya0RvbWU6aHNlLGZhTGFuZG1hcmtBbHQ6a210LGZhV29ybTpTbXQsZmFVc2VySW5qdXJlZDp6bXQsZmFTdHJpa2V0aHJvdWdoOkNtdCxmYUJsb2c6VG10LGZhU3RvcHdhdGNoMjA6X210LGZhVHJ1Y2tQaWNrdXA6TG10LGZhU2VlZGxpbmc6ZnNlLGZhU3Byb3V0OkFtdCxmYVRyYW5zZ2VuZGVyOm1zZSxmYVRyYW5zZ2VuZGVyQWx0OkRtdCxmYVN0YXJIYWxmOkVtdCxmYVBob3RvRmlsbTpnc2UsZmFQaG90b1ZpZGVvOiRtdCxmYVBpY3R1cmVJblBpY3R1cmU6SW10LGZhUHVtcE1lZGljYWw6UG10LGZhRmlyZTpObXQsZmFNYWduaWZ5aW5nR2xhc3NQbHVzOmJzZSxmYVNlYXJjaFBsdXM6Rm10LGZhRmxhc2s6T210LGZhQWxpZ25SaWdodDpSbXQsZmFDYWJsZUNhcjp2c2UsZmFUcmFtOkJtdCxmYUtpdE1lZGljYWw6eHNlLGZhRmlyc3RBaWQ6SG10LGZhR3JpcExpbmVzOnFtdCxmYUJ1cmdlcjp5c2UsZmFIYW1idXJnZXI6am10LGZhU25vd21hbjpWbXQsZmFIb3RlbDpVbXQsZmFQcmludDpXbXQsZmFWb2xsZXliYWxsOndzZSxmYVZvbGxleWJhbGxCYWxsOkdtdCxmYVRyYWZmaWNMaWdodDpZbXQsZmFQbGFuZUNpcmNsZUNoZWNrOlptdCxmYVVzZXJzOmVFLGZhQ2VydGlmaWNhdGU6WG10LGZhQWxhcm1DbG9jazpRbXQsZmFIZWxpY29wdGVyU3ltYm9sOkptdCxmYUhvdXNlQ2hpbW5leUNyYWNrOk1zZSxmYUhvdXNlRGFtYWdlOkttdCxmYVBlcnNvbk1pbGl0YXJ5UG9pbnRpbmc6ZTl0LGZhRGF0YWJhc2U6dDl0LGZhTmV3c3BhcGVyOnI5dCxmYUNsb3VkUmFpbjppOXQsZmFNYXhpbWl6ZTprc2UsZmFFeHBhbmRBcnJvd3NBbHQ6YTl0LGZhTG9jYXRpb25BcnJvdzpuOXQsZmFDaXR5Om85dCxmYVhSYXk6czl0LGZhVW1icmVsbGFCZWFjaDpsOXQsZmFBcnJvd1JpZ2h0VG9CcmFja2V0OlNzZSxmYVNpZ25JbjpjOXQsZmFIZWFkc2V0OmQ5dCxmYVNwbG90Y2g6dTl0LGZhVXBMb25nOnpzZSxmYUxvbmdBcnJvd0FsdFVwOnA5dCxmYUhleGFnb25Ob2RlczpoOXQsZmFIb3NwaXRhbDpzRCxmYUhvc3BpdGFsQWx0OmY5dCxmYUhvc3BpdGFsV2lkZTptOXQsZmFQZXJzb25IYXJhc3Npbmc6Zzl0LGZhTW9uZXlCaWxsVHJlbmRVcDpiOXQsZmFQZW5SdWxlcjpDc2UsZmFQZW5jaWxSdWxlcjp2OXQsZmFSZXBlYXQ6eDl0LGZhQm9uZTp5OXQsZmFGaXJlRmxhbWVDdXJ2ZWQ6VHNlLGZhRmlyZUFsdDp3OXQsZmFCdXNTaW1wbGU6X3NlLGZhQnVzQWx0Ok05dCxmYVZlbnVzTWFyczprOXQsZmFCbGVuZGVyOlM5dCxmYVU6ejl0LGZhU2hhcmU6WmcsZmFNYWlsRm9yd2FyZDpDOXQsZmFQaG9uZUZsaXA6THNlLGZhUGhvbmVBbHQ6VDl0LGZhVG9pbGV0UG9ydGFibGU6Xzl0LGZhUGVyc29uUHJlZ25hbnQ6TDl0LGZhTGVzc1RoYW46QTl0LGZhU3VwZXJzY3JpcHQ6RDl0LGZhQ2lyY2xlU3RvcDpBc2UsZmFTdG9wQ2lyY2xlOkU5dCxmYUFycm93c1VwRG93bjpEc2UsZmFBcnJvd3NWOiQ5dCxmYVBvb1N0b3JtOkVzZSxmYVBvb0JvbHQ6STl0LGZhVmlkZW9TbGFzaDpQOXQsZmFTcXVhcmVYbWFyazpsRCxmYVRpbWVzU3F1YXJlOk45dCxmYVhtYXJrU3F1YXJlOkY5dCxmYUhhbmRIb2xkaW5nRHJvcGxldDokc2UsZmFIYW5kSG9sZGluZ1dhdGVyOk85dCxmYVdvblNpZ246Y0QsZmFLcnc6Ujl0LGZhV29uOkI5dCxmYU9iamVjdFVuZ3JvdXA6SDl0LGZhQ29tbWVudDpxOXQsZmFIaWxsQXZhbGFuY2hlOmo5dCxmYUFycm93c1RvRXllOlY5dCxmYVNub3dwbG93OlU5dCxmYUNoYXJ0R2FudHQ6Vzl0LGZhVmlkZW86SXNlLGZhVmlkZW9DYW1lcmE6Rzl0LGZhQ2hlc3NQYXduOlk5dCxmYVN5bmFnb2d1ZTpaOXQsZmFCdWlsZGluZ0NpcmNsZUNoZWNrOlg5dCxmYUNhbGVuZGFyUGx1czpROXQsZmFXaGVlbGNoYWlyTW92ZTpQc2UsZmFXaGVlbGNoYWlyQWx0Oko5dCxmYVVzZXJTaGllbGQ6Szl0LGZhQm9sZDplZ3QsZmFIZWFydFB1bHNlOk5zZSxmYUhlYXJ0YmVhdDp0Z3QsZmFTcXVhcmVSb290VmFyaWFibGU6RnNlLGZhU3F1YXJlUm9vdEFsdDpyZ3QsZmFIYW5kc0J1YmJsZXM6T3NlLGZhSGFuZHNXYXNoOmlndCxmYU1hcmtlcjphZ3QsZmFDbGlwYm9hcmQ6bmd0LGZhUGxhY2VPZldvcnNoaXA6b2d0LGZhQ2FubmFiaXM6c2d0LGZhUGVvcGxlUm9vZjpsZ3QsZmFEaXNlYXNlOmNndCxmYUJvb2tCaWJsZTpSc2UsZmFCaWJsZTpkZ3QsZmFDaGVzc0JvYXJkOnVndCxmYU1hcnM6cGd0LGZhTGFwdG9wOmhndCxmYVVzZXJYbWFyazpCc2UsZmFVc2VyVGltZXM6Zmd0LGZhRmxhZ1VzYTptZ3QsZmFIYW5kTWlkZGxlRmluZ2VyOmdndCxmYU1vcnRhclBlc3RsZTpiZ3QsZmFIZWFkU2lkZUNvdWdoOnZndCxmYVBsYW5lTG9jazp4Z3QsZmFCYXR0ZXJ5VGhyZWVRdWFydGVyczpIc2UsZmFCYXR0ZXJ5NDp5Z3QsZmFGcmFuY1NpZ246d2d0LGZhRmlsdGVyQ2lyY2xlRG9sbGFyOnFzZSxmYUZ1bm5lbERvbGxhcjpNZ3QsZmFDaGVlc2U6a2d0LGZhQ2lyY2xlSDpqc2UsZmFIb3NwaXRhbFN5bWJvbDpTZ3QsZmFTY2hvb2w6emd0LGZhRGljZUZpdmU6Q2d0LGZhVG9ybmFkbzpUZ3QsZmFKZXRGaWdodGVyOlZzZSxmYUZpZ2h0ZXJKZXQ6X2d0LGZhVGh1bWJzRG93bjpMZ3QsZmFCcm9vbTpBZ3QsZmFGaWxlSW1wb3J0OlVzZSxmYUFycm93UmlnaHRUb0ZpbGU6RGd0LGZhVXRlbnNpbHM6V3NlLGZhQ3V0bGVyeTpFZ3QsZmFJZEJhZGdlOiRndCxmYVNwaWRlcjpJZ3QsZmFNb2JpbGVSZXRybzpQZ3QsZmFTaWduc1Bvc3Q6R3NlLGZhTWFwU2lnbnM6Tmd0LGZhR3JvdXBBcnJvd3NSb3RhdGU6Rmd0LGZhQXJyb3dzU3BsaXRVcEFuZExlZnQ6T2d0LGZhRmlsbERyaXA6Umd0LGZhU2hpZWxkSGVhcnQ6Qmd0LGZhUGVyc29uU2tpaW5nTm9yZGljOllzZSxmYVNraWluZ05vcmRpYzpIZ3QsZmFTcXVhcmVDaGVjazpac2UsZmFDaGVja1NxdWFyZTpxZ3QsZmFCYXRoOlhzZSxmYUJhdGh0dWI6amd0LGZhQ2hlc3NCaXNob3A6Vmd0LGZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbDpRc2UsZmFQcmVzY3JpcHRpb25Cb3R0bGVBbHQ6VWd0LGZhRHJhd1BvbHlnb246SnNlLGZhVmVjdG9yUG9seWdvbjpXZ3QsZmFJQ3Vyc29yOkdndCxmYUhlYXJ0Q2lyY2xlUGx1czpZZ3QsZmFTaGllbGREb2c6Wmd0LGZhR3JlYXRlclRoYW5FcXVhbDpYZ3QsZmFFbnZlbG9wZU9wZW46UWd0LGZhTW91bmQ6Smd0LGZhVm9pY2VtYWlsOktndCxmYVZlc3Q6ZWJ0LGZhQXVkaW9EZXNjcmlwdGlvbjp0YnQsZmFXOnJidCxmYUV5ZURyb3BwZXI6ZEQsZmFFeWVEcm9wcGVyRW1wdHk6aWJ0LGZhRXllZHJvcHBlcjphYnQsZmFDaXJjbGVYbWFyazpCcCxmYVRpbWVzQ2lyY2xlOm5idCxmYVhtYXJrQ2lyY2xlOm9idCxmYVRyYWlsZXI6c2J0LGZhVHVya2lzaExpcmFTaWduOnVELGZhVHJ5OmxidCxmYVR1cmtpc2hMaXJhOmNidCxmYVZvbGNhbm86ZGJ0LGZhV2FuZFNwYXJrbGVzOnVidCxmYU1pY3JvcGhvbmU6cGJ0LGZhQ3Jvd246aGJ0LGZhVGVudEFycm93VHVybkxlZnQ6ZmJ0LGZhVHJ1Y2tGYXN0OktzZSxmYVNoaXBwaW5nRmFzdDptYnQsZmFVc2VyUGVuOmVsZSxmYVVzZXJFZGl0OmdidCxmYVVzZXJDbG9jazpiYnQsZmFTaG93ZXI6dmJ0LGZhU3F1YXJlQ2FyZXRVcDp0bGUsZmFDYXJldFNxdWFyZVVwOnhidCxmYU1hcExvY2F0aW9uOnJsZSxmYU1hcE1hcmtlZDp5YnQsZmFQZW5GYW5jeTp3YnQsZmFFdXJvU2lnbjpwRCxmYUV1cjpNYnQsZmFFdXJvOmtidCxmYUhvdXNlQ2lyY2xlWG1hcms6U2J0LGZhTGlyYVNpZ246emJ0LGZhWWVuU2lnbjpGcCxmYUNueTpDYnQsZmFKcHk6VGJ0LGZhUm1iOl9idCxmYVllbjpMYnQsZmFCb3hPcGVuOkFidCxmYVRydWNrRmllbGQ6RGJ0LGZhTG9jYXRpb25QaW5Mb2NrOkVidCxmYVBlcnNvblByYXlpbmc6aWxlLGZhUHJheTokYnQsZmFDbGlwYm9hcmRMaXN0OklidCxmYVNhY2tEb2xsYXI6UGJ0LGZhTW91bnRhaW5TdW46TmJ0LGZhQXJyb3dVcFdpZGVTaG9ydDphbGUsZmFTb3J0QW1vdW50VXA6RmJ0LGZhVXNlcnNMaW5lOk9idCxmYVN0YXJPZkRhdmlkOlJidCxmYU5vdGVzTWVkaWNhbDpCYnQsZmFBdXN0cmFsU2lnbjpIYnQsZmFDbGlwYm9hcmRVc2VyOnFidCxmYUZpbGVJbWFnZTpqYnQsZmFTcXVhcmVDYXJldFJpZ2h0Om5sZSxmYUNhcmV0U3F1YXJlUmlnaHQ6VmJ0LGZhVmlhbDpVYnQsZmFIZWxpY29wdGVyOldidCxmYU1pdHRlbjpHYnQsZmFHYXNQdW1wOllidCxmYUVudmVsb3BlQ2lyY2xlQ2hlY2s6WmJ0LGZhUGVyc29uU2thdGluZzpvbGUsZmFTa2F0aW5nOlhidCxmYVN1bjp0RSxmYUJhc2ViYWxsOnNsZSxmYUJhc2ViYWxsQmFsbDpRYnQsZmFJbWFnZTpKYnQsZmFOb3RkZWY6S2J0LGZhQmFza2V0YmFsbDpsbGUsZmFCYXNrZXRiYWxsQmFsbDpldnQsZmFQZW5jaWw6Y2xlLGZhUGVuY2lsQWx0OnR2dCxmYVBlcnNvbldhbGtpbmdBcnJvd0xvb3BMZWZ0OnJ2dCxmYURpY2VTaXg6aXZ0LGZhQW5nbGVzRG93bjpkbGUsZmFBbmdsZURvdWJsZURvd246YXZ0LGZhU3lyaW5nZTpudnQsZmFXaGVhdEF3bjp1bGUsZmFXaGVhdEFsdDpvdnQsZmFQbGFuZVVwOnN2dCxmYUFsaWduQ2VudGVyOmx2dCxmYUhvY2tleVB1Y2s6Y3Z0LGZhQ2lyY2xlQXJyb3dMZWZ0OnBsZSxmYUFycm93Q2lyY2xlTGVmdDpkdnQsZmFQbHVnQ2lyY2xlQm9sdDp1dnQsZmFSZXN0cm9vbTpwdnQsZmFBbmNob3JMb2NrOmh2dCxmYVRpbWVsaW5lOmZ2dCxmYUxpZ2h0YnVsYjptdnQsZmFDaXJjbGVBcnJvd1JpZ2h0OmhsZSxmYUFycm93Q2lyY2xlUmlnaHQ6Z3Z0LGZhTWFyc0FuZFZlbnVzOmJ2dCxmYU5ldHdvcmtXaXJlZDpyRSxmYUJ1aWxkaW5nU2hpZWxkOnZ2dCxmYUNvZGU6eHZ0LGZhRmVhdGhlclBvaW50ZWQ6ZmxlLGZhRmVhdGhlckFsdDp5dnQsZmFGaWxlQ2lyY2xlUXVlc3Rpb246d3Z0LGZhU2lnbmF0dXJlOk12dCxmYUVhcnRoQW1lcmljYXM6RGcsZmFFYXJ0aDprdnQsZmFFYXJ0aEFtZXJpY2E6U3Z0LGZhR2xvYmVBbWVyaWNhczp6dnQsZmFDYXJyb3Q6Q3Z0LGZhVGVtcGVyYXR1cmVGdWxsOkVnLGZhVGVtcGVyYXR1cmU0OlR2dCxmYVRoZXJtb21ldGVyNDpfdnQsZmFUaGVybW9tZXRlckZ1bGw6THZ0LGZhVGFibGVDZWxsc1Jvd0xvY2s6QXZ0LGZhQm9sdExpZ2h0bmluZzpEdnQsZmFDbG91ZFNob3dlcnNXYXRlcjpFdnQsZmFBcnJvd1VwTG9uZzptbGUsZmFMb25nQXJyb3dVcDokdnQsZmFBZGRyZXNzQ2FyZDpoRCxmYUNvbnRhY3RDYXJkOkl2dCxmYVZjYXJkOlB2dCxmYUFuZ2xlUmlnaHQ6TnZ0LGZhRmFjZU1laDpnbGUsZmFNZWg6RnZ0LGZhQXJyb3dVcEZyb21Hcm91bmRXYXRlcjpPdnQsZmFNYXA6UnZ0LGZhVXNlclBsdXM6QnZ0LGZhVmVudXM6SHZ0LGZhRGlhZ3JhbVN1Y2Nlc3NvcjpxdnQsZmFIZWFkU2lkZUNvdWdoU2xhc2g6anZ0LGZhRGlhZ3JhbVByb2plY3Q6YmxlLGZhUHJvamVjdERpYWdyYW06VnZ0LGZhVGVybWluYWw6aUUsZmFIb3VzZUZpcmU6VXZ0LGZhTWFzazpXdnQsZmFIdXJyaWNhbmU6R3Z0LGZhRWFydGhBZnJpY2E6dmxlLGZhR2xvYmVBZnJpY2E6WXZ0LGZhVGh1bWJ0YWNrOnhsZSxmYVRodW1iVGFjazpadnQsZmFIYW5kUG9pbnREb3duOlh2dCxmYUZhY2VNZWhCbGFuazp5bGUsZmFNZWhCbGFuazpRdnQsZmFUZW1wZXJhdHVyZUVtcHR5OiRnLGZhVGVtcGVyYXR1cmUwOkp2dCxmYVRoZXJtb21ldGVyMDpLdnQsZmFUaGVybW9tZXRlckVtcHR5OmV4dCxmYUJvcmRlck5vbmU6dHh0LGZhSGlnaGxpZ2h0ZXI6cnh0LGZhTW9uZXlCaWxsV2F2ZTppeHQsZmFUb2lsZXRQYXBlclNsYXNoOmF4dCxmYUZpbGVTaGllbGQ6bnh0LGZhVGV4dEhlaWdodDpveHQsZmFGYWNlR3JpblRvbmd1ZTp3bGUsZmFHcmluVG9uZ3VlOnN4dCxmYUZpbGVTaWduYXR1cmU6bHh0LGZhQnVpbGRpbmdXaGVhdDpjeHQsZmFQbHVnQ2lyY2xlTWludXM6ZHh0LGZhRnV0Ym9sOmZELGZhRnV0Ym9sQmFsbDp1eHQsZmFTb2NjZXJCYWxsOnB4dCxmYUNpcmNsZVBsdXM6TWxlLGZhUGx1c0NpcmNsZTpoeHQsZmFCcmF6aWxpYW5SZWFsU2lnbjpmeHQsZmFTdGFyQW5kQ3Jlc2NlbnQ6bXh0LGZhRmFjZVN1cnByaXNlOmtsZSxmYVN1cnByaXNlOmd4dCxmYUhvc3BpdGFsVXNlcjpieHQsZmFBcnJvd0Rvd25VcExvY2s6dnh0LGZhRm9sZGVyOlNsZSxmYUZvbGRlckJsYW5rOnh4dCxmYUhvbGx5QmVycnk6eXh0LGZhVmVudXNEb3VibGU6d3h0LGZhQ2xpcGJvYXJkUXVlc3Rpb246TXh0LGZhSG90ZG9nOmt4dCxmYUFycm93VXBGcm9tQnJhY2tldDpTeHQsZmFNaWNyb3Njb3BlOnp4dCxmYUNsb3VkOkN4dCxmYUJhc2ViYWxsQmF0QmFsbDpUeHQsZmFDYXJSZWFyOnpsZSxmYUNhckFsdDpfeHQsZmFUaHVtYnRhY2tTbGFzaDpDbGUsZmFUaHVtYlRhY2tTbGFzaDpMeHQsZmFQbHVzTWludXM6QXh0LGZhSG91c2VDaXJjbGVDaGVjazpEeHQsZmFDYWxlbmRhckRheTpFeHQsZmFMaWJyYTokeHQsZmFDaXJjbGU6SXh0LGZhTW9iaWxlVmlicmF0ZTpQeHQsZmFGYWNlR3JpblNxdWludDpUbGUsZmFHcmluU3F1aW50Ok54dCxmYVVzZXJzQmV0d2VlbkxpbmVzOkZ4dCxmYUhvdXNlTWVkaWNhbENpcmNsZVhtYXJrOk94dCxmYVRhYmxlTGlzdDpfbGUsZmFUaExpc3Q6Unh0LGZhRmxhc2tWaWFsOkJ4dCxmYUNpcmNsZUV4Y2xhbWF0aW9uOkxsZSxmYUV4Y2xhbWF0aW9uQ2lyY2xlOkh4dCxmYVRheGk6QWxlLGZhQ2FiOnF4dCxmYVRleHRTbGFzaDpEbGUsZmFSZW1vdmVGb3JtYXQ6anh0LGZhUGVvcGxlUHVsbGluZzpWeHQsZmFCYWNrd2FyZDpVeHQsZmFDYXJCdXJzdDpFbGUsZmFDYXJDcmFzaDpXeHQsZmFMaW5rOiRsZSxmYUNoYWluOkd4dCxmYUJhY2t3YXJkU3RlcDpJbGUsZmFTdGVwQmFja3dhcmQ6WXh0LGZhWDpaeHQsZmFDaXJjbGVVc2VyOlBsZSxmYVVzZXJDaXJjbGU6WHh0LGZhUmVjdGFuZ2xlTGlzdDpObGUsZmFMaXN0QWx0OlF4dCxmYUhhbmQ6RmxlLGZhSGFuZFBhcGVyOkp4dCxmYUNhbmNlcjpLeHQsZmFWYW5TaHV0dGxlOk9sZSxmYVNodXR0bGVWYW46ZXl0LGZhU3RhaXJzOnR5dCxmYUhvcnNlSGVhZDpyeXQsZmFWYXVsdDppeXQsZmFDbG9zZWRDYXB0aW9uaW5nU2xhc2g6YXl0LGZhRHJ1bVN0ZWVscGFuOm55dCxmYVRodW1ic1VwOm95dCxmYVN0YW1wOnN5dCxmYU1lbm9yYWg6bHl0LGZhQ2hpbGRyZW46Y3l0LGZhQ2hhcnRMaW5lOlJsZSxmYUxpbmVDaGFydDpkeXQsZmFTcXVhcmVFbnZlbG9wZTpCbGUsZmFFbnZlbG9wZVNxdWFyZTp1eXQsZmFCYW5TbW9raW5nOkhsZSxmYVNtb2tpbmdCYW46cHl0LGZhVHJ1Y2tGcm9udDpoeXQsZmFCdWlsZGluZzphRSxmYUJ1bGxzZXllOmZ5dCxmYUFycm93TGVmdExvbmc6cWxlLGZhTG9uZ0Fycm93TGVmdDpteXQsZmFDaGVzc1Jvb2s6Z3l0LGZhQmxlbmRlclBob25lOmJ5dCxmYUFycm93VHVyblVwOmpsZSxmYUxldmVsVXA6dnl0LGZhQmljeWNsZTp4eXQsZmFDaXJjbGVBcnJvd0Rvd246VmxlLGZhQXJyb3dDaXJjbGVEb3duOnl5dCxmYUdlYXI6WGcsZmFDb2c6d3l0LGZhTWFyc0FuZFZlbnVzQnVyc3Q6TXl0LGZhT3R0ZXI6a3l0LGZhQ2lyY2xlQ2hldnJvbkxlZnQ6VWxlLGZhQ2hldnJvbkNpcmNsZUxlZnQ6U3l0LGZhQ2lyY2xlUXVlc3Rpb246V2xlLGZhUXVlc3Rpb25DaXJjbGU6enl0LGZhV2Fsa2llVGFsa2llOkN5dCxmYVVzZXJHcm91cDpHbGUsZmFVc2VyRnJpZW5kczpUeXQsZmFIb3VzZUNoaW1uZXk6WWxlLGZhSG9tZUxnOl95dCxmYVJpZ2h0RnJvbUJyYWNrZXQ6WmxlLGZhU2lnbk91dEFsdDpMeXQsZmFGaWxlOkF5dCxmYVBsYW5lU2xhc2g6RHl0LGZhQ2xvdWRTaG93ZXJzSGVhdnk6RXl0LGZhUGVyc29uRmFsbGluZzokeXQsZmFUdXJuRG93bjpYbGUsZmFMZXZlbERvd25BbHQ6SXl0LGZhVXBSaWdodEFuZERvd25MZWZ0RnJvbUNlbnRlcjpRbGUsZmFFeHBhbmRBbHQ6UHl0LGZhVXNlclRhZzpOeXQsZmFIYW5kU3BhcmtsZXM6Rnl0LGZhQXJyb3dzVG9Eb3Q6T3l0LGZhRmFjZVNhZENyeTpKbGUsZmFTYWRDcnk6Unl0LGZhRG9uZ1NpZ246Qnl0LGZhUGVvcGxlTGluZTpIeXQsZmFTcXVhcmVSc3M6S2xlLGZhUnNzU3F1YXJlOnF5dCxmYUNhbGVuZGFyTWludXM6anl0LGZhQ2hhcnREaWFncmFtOlZ5dCxmYUZhY2VUaXJlZDplY2UsZmFUaXJlZDpVeXQsZmFIYW5kUG9pbnRSaWdodDpXeXQsZmFBcnJvd1VwOkd5dCxmYUN1YmVzU3RhY2tlZDpZeXQsZmFDaGlsZENvbWJhdGFudDp0Y2UsZmFDaGlsZFJpZmxlOlp5dCxmYVZlc3RQYXRjaGVzOlh5dCxmYU1hcnRpbmlHbGFzc0VtcHR5OnJjZSxmYUdsYXNzTWFydGluaTpReXQsZmFNYWduZXQ6Snl0LGZhUm9hZEJhcnJpZXI6S3l0LGZhQ29tcGFzc0RyYWZ0aW5nOmljZSxmYURyYWZ0aW5nQ29tcGFzczpld3QsZmFTcXVhcmVQZXJzb25Db25maW5lZDp0d3QsZmFQbGF0ZVdoZWF0OnJ3dCxmYVNpZ25IYW5naW5nOmFjZSxmYVNpZ246aXd0LGZhQ2FyQmF0dGVyeTpuY2UsZmFCYXR0ZXJ5Q2FyOmF3dCxmYVNoaXJ0Om1ELGZhVFNoaXJ0Om53dCxmYVRzaGlydDpvd3QsZmFQYXJhZ3JhcGg6c3d0LGZhRW52ZWxvcGVzQnVsazpvY2UsZmFNYWlsQnVsazpsd3QsZmFHdWl0YXI6Y3d0LGZhU3VpdGNhc2U6ZHd0LGZhQ2lyY2xlVXA6c2NlLGZhQXJyb3dBbHRDaXJjbGVVcDp1d3QsZmFGOnB3dCxmYVhtYXJrc0xpbmVzOmh3dCxmYUVhcnRoT2NlYW5pYTpsY2UsZmFHbG9iZU9jZWFuaWE6Znd0LGZhQ29tbWVudFNsYXNoOm13dCxmYVBsYXk6Z3d0LGZhVmlhbENpcmNsZUNoZWNrOmJ3dCxmYUJyaWRnZUNpcmNsZUNoZWNrOnZ3dCxmYUNlZGlTaWduOnh3dCxmYVB1enpsZVBpZWNlOnl3dCxmYUhlbG1ldFVuOnd3dCxmYUdsYXNzV2F0ZXI6TXd0LGZhSGVhcnRDaXJjbGVCb2x0Omt3dCxmYVB1bXBTb2FwOlN3dCxmYUhhbmRTY2lzc29yczp6d3QsZmFEb2xseTpjY2UsZmFEb2xseUJveDpDd3QsZmFQYXBlcmNsaXA6bkUsZmFEZW1vY3JhdDpUd3QsZmFTcXVhcmVBcnJvd1VwUmlnaHQ6ZGNlLGZhRXh0ZXJuYWxMaW5rU3F1YXJlOl93dCxmYUZlcnJ5Okx3dCxmYU1vc3F1aXRvOkF3dCxmYUJ1aWxkaW5nQ2lyY2xlQXJyb3dSaWdodDpEd3QsZmFMZWZ0UmlnaHQ6dWNlLGZhQXJyb3dzQWx0SDpFd3QsZmFWaXJ1czokd3QsZmFHZW06SXd0LGZhVG9pbGV0OlB3dCxmYVNpbmdsZVF1b3RlTGVmdDpOd3QsZmFNb25leUJpbGxzOkZ3dCxmYVRhYmxldEJ1dHRvbjpPd3QsZmFSZWN0YW5nbGVYbWFyazpJZyxmYVJlY3RhbmdsZVRpbWVzOlJ3dCxmYVRpbWVzUmVjdGFuZ2xlOkJ3dCxmYVdpbmRvd0Nsb3NlOkh3dCxmYVdyZW5jaDpxd3QsZmFUcmFzaENhbjpRZyxmYVRyYXNoQWx0Omp3dCxmYVRhYmxlQ2VsbHM6cGNlLGZhVGg6Vnd0LGZhUmliYm9uOlV3dCxmYUxhbmRtYXJrRmxhZzpXd3QsZmFVcERvd25MZWZ0UmlnaHQ6aGNlLGZhQXJyb3dzQWx0Okd3dCxmYUNhclNpZGU6WXd0LGZhVHJhc2hBcnJvd1VwOmZjZSxmYVRyYXNoUmVzdG9yZTpad3QsZmFMaWZlUmluZzpYd3QsZmFDb3B5cmlnaHQ6UXd0LGZhRmlsZVByZXNjcmlwdGlvbjpKd3QsZmFFcmFzZXI6S3d0LGZhSG91cmdsYXNzU3RhcnQ6bWNlLGZhSG91cmdsYXNzMTplTXQsZmFDaXJjbGVMZWZ0OmdjZSxmYUFycm93QWx0Q2lyY2xlTGVmdDp0TXQsZmFDcnV6ZWlyb1NpZ246ck10LGZhU21va2luZzppTXQsZmFTcXVhcmVQb2xsVmVydGljYWw6YmNlLGZhUG9sbDphTXQsZmFQZXJzb25DaXJjbGVNaW51czpuTXQsZmFCaW9oYXphcmQ6b010LGZhQmVsbENvbmNpZXJnZTp2Y2UsZmFDb25jaWVyZ2VCZWxsOnNNdCxmYVJ1bGVySG9yaXpvbnRhbDpsTXQsZmFIb3JzZTpjTXQsZmFDYWxlbmRhcjpkTXQsZmFIYW5kc0hvbGRpbmdDaGlsZDp1TXQsZmFJdGFsaWM6cE10LGZhS2hhbmRhOmhNdCxmYUZhY2VGcm93bk9wZW46eGNlLGZhRnJvd25PcGVuOmZNdCxmYUNoZWNrOm9FLGZhRmluZ2VycHJpbnQ6bU10LGZhQ2hhcmdpbmdTdGF0aW9uOmdNdCxmYVVzZXJMb2NrOmJNdCxmYU1vYmlsZVNjcmVlbkJ1dHRvbjp5Y2UsZmFNb2JpbGVBbHQ6dk10LGZhQW5jaG9yQ2lyY2xlQ2hlY2s6eE10LGZhUGVyc29uV2Fsa2luZ1dpdGhDYW5lOndjZSxmYUJsaW5kOnlNdCxmYUZpbGVXYXZlZm9ybTpNY2UsZmFGaWxlTWVkaWNhbEFsdDp3TXQsZmFIb3VzZUNyYWNrOk1NdCxmYUhhdFdpemFyZDprTXQsZmFVc2VyRG9jdG9yOmtjZSxmYVVzZXJNZDpTTXQsZmFDaGFydEJhcjpTY2UsZmFCYXJDaGFydDp6TXQsZmFTcHJheUNhblNwYXJrbGVzOnpjZSxmYUFpckZyZXNoZW5lcjpDTXQsZmFCYWh0U2lnbjpUTXQsZmFUZW1wZXJhdHVyZUFycm93VXA6Q2NlLGZhVGVtcGVyYXR1cmVVcDpfTXQsZmFXZWJBd2Vzb21lOkxNdCxmYU5vbkJpbmFyeTpBTXQsZmFOOkRNdCxmYUFycm93c1VwRG93bkxlZnRSaWdodDpUY2UsZmFBcnJvd3M6RU10LGZhSG91c2U6UGcsZmFIb21lOiRNdCxmYUhvbWVBbHQ6SU10LGZhSG9tZUxnQWx0OlBNdCxmYVNwaW5uZXI6Tk10LGZhR2F2ZWw6X2NlLGZhTGVnYWw6Rk10LGZhVGlja2V0U2ltcGxlOkxjZSxmYVRpY2tldEFsdDpPTXQsZmFEb3ZlOlJNdCxmYVRhcnBEcm9wbGV0OkJNdCxmYVRyZWVDaXR5OkhNdCxmYVR1cm5VcDpBY2UsZmFMZXZlbFVwQWx0OnFNdCxmYVRlbXBlcmF0dXJlUXVhcnRlcjpOZyxmYVRlbXBlcmF0dXJlMTpqTXQsZmFUaGVybW9tZXRlcjE6Vk10LGZhVGhlcm1vbWV0ZXJRdWFydGVyOlVNdCxmYVNsaWRlcnM6RGNlLGZhU2xpZGVyc0g6V010LGZhTW9zcXVlOkdNdCxmYUg6WU10LGZhSW5mbzpaTXQsZmFQZXJzb25XYWxraW5nOkVjZSxmYVdhbGtpbmc6WE10LGZhQXJyb3dUdXJuRG93bjokY2UsZmFMZXZlbERvd246UU10LGZhUm9hZDpKTXQsZmFTcGlyYWw6S010LGZhRmFjZUZyb3duOkljZSxmYUZyb3duOmVrdCxmYVdpbmVHbGFzc0VtcHR5OlBjZSxmYVdpbmVHbGFzc0FsdDp0a3QsZmFDbGFwcGVyYm9hcmQ6cmt0LGZhRm9yd2FyZFN0ZXA6TmNlLGZhU3RlcEZvcndhcmQ6aWt0LGZhU3F1YXJlVXBSaWdodDpGY2UsZmFFeHRlcm5hbExpbmtTcXVhcmVBbHQ6YWt0LGZhQm9va0pvdXJuYWxXaGlsbHM6T2NlLGZhSm91cm5hbFdoaWxsczpua3QsZmFDaGFtcGFnbmVHbGFzc2VzOlJjZSxmYUdsYXNzQ2hlZXJzOm9rdCxmYUR1bXBzdGVyOnNrdCxmYUhlYXJ0Q2lyY2xlWG1hcms6bGt0LGZhQ29tcHV0ZXI6Y2t0LGZhV2FuZE1hZ2ljOkJjZSxmYU1hZ2ljOmRrdCxmYUJyYWluOnVrdCxmYUJyaWVmY2FzZU1lZGljYWw6cGt0LGZhSG91c2VNZWRpY2FsQ2lyY2xlRXhjbGFtYXRpb246aGt0LGZhQ29kZUNvbW1pdDpma3QsZmFQZXJzb25CcmVhc3RmZWVkaW5nOm1rdCxmYVBlcnNvblJheXM6Z2t0LGZhTWFuYXRTaWduOmJrdCxmYVNvcnQ6SGNlLGZhVW5zb3J0ZWQ6dmt0LGZhQ2lyY2xlUmFkaWF0aW9uOnFjZSxmYVJhZGlhdGlvbkFsdDp4a3QsZmFMYXB0b3BDb2RlOnlrdCxmYVNpbms6d2t0LGZhQXJyb3dVcEZyb21XYXRlclB1bXA6TWt0LGZhTWljcm9waG9uZUxpbmVzU2xhc2g6amNlLGZhTWljcm9waG9uZUFsdFNsYXNoOmtrdCxmYVNlcnZlcjpTa3QsZmFVc2VyOmdELGZhVXNlckFsdDp6a3QsZmFVc2VyTGFyZ2U6Q2t0LGZhU25vd2ZsYWtlOlRrdCxmYVRhdXJ1czpfa3QsZmFTa3VsbENyb3NzYm9uZXM6TGt0LGZhUGVzb1NpZ246QWt0LGZhV2luZUdsYXNzOkRrdCxmYVRlbXBlcmF0dXJlSGFsZjpGZyxmYVRlbXBlcmF0dXJlMjpFa3QsZmFUaGVybW9tZXRlcjI6JGt0LGZhVGhlcm1vbWV0ZXJIYWxmOklrdCxmYVRpY2tldDpQa3QsZmFXaGVhdEF3bkNpcmNsZUV4Y2xhbWF0aW9uOk5rdCxmYUFycm93c1R1cm5SaWdodDpGa3QsZmFDYW5keUNhbmU6T2t0LGZhV2hlZWxjaGFpcjpSa3QsZmFTcGVsbENoZWNrOkJrdCxmYVZvbHVtZU9mZjpIa3QsZmFMdW5nczpxa3QsZmFCb29rbWFyazpqa3QsZmFCYXJjb2RlOlZrdCxmYUxpc3RPbDpiRCxmYUxpc3QxMjpVa3QsZmFMaXN0TnVtZXJpYzpXa3QsZmFGaWxlQ2lyY2xlWG1hcms6R2t0LGZhQ3ViZTpZa3QsZmFUYXBlOlprdCxmYUJvbWI6WGt0LGZhU2NhbGVVbmJhbGFuY2VkOlZjZSxmYUJhbGFuY2VTY2FsZUxlZnQ6UWt0LGZhU3F1YXJlQ2FyZXRMZWZ0OlVjZSxmYUNhcmV0U3F1YXJlTGVmdDpKa3QsZmFSdWxlcjpLa3QsZmFJOmVTdCxmYVZvbHVtZVhtYXJrOnZELGZhVm9sdW1lTXV0ZTp0U3QsZmFWb2x1bWVUaW1lczpyU3QsZmFBcmNod2F5OmlTdCxmYVBlcnNvbkRpZ2dpbmc6V2NlLGZhRGlnZ2luZzphU3QsZmFHYXVnZUhpZ2g6eEQsZmFUYWNob21ldGVyQWx0Om5TdCxmYVRhY2hvbWV0ZXJBbHRGYXN0Om9TdCxmYUdlbmRlcmxlc3M6c1N0LGZhQ2xvdWRTdW46bFN0LGZhQXJyb3dSaWdodDpzRSxmYUhhbmRzaGFrZTp5RCxmYUhhbmRzaGFrZUFsdDpjU3QsZmFIYW5kc2hha2VTaW1wbGU6ZFN0LGZhUGVyc29uU2tpaW5nOkdjZSxmYVNraWluZzp1U3QsZmFCcmlkZ2VXYXRlcjpwU3QsZmFCdWlsZGluZ05nbzpoU3QsZmFJZ2xvbzpmU3QsZmFDaXJjbGVEb2xsYXJUb1Nsb3Q6WWNlLGZhRG9uYXRlOm1TdCxmYVk6Z1N0LGZhRmFjZVNtaWxlV2luazpaY2UsZmFTbWlsZVdpbms6YlN0LGZhRGljZUZvdXI6dlN0LGZhRmFjZUdyaW5TcXVpbnRUZWFyczpYY2UsZmFHcmluU3F1aW50VGVhcnM6eFN0LGZhRmlsZUF1ZGlvOnlTdCxmYUFycm93c0Rvd25Ub0xpbmU6d1N0LGZhRzpNU3QsZmFWaWhhcmE6a1N0LGZhRmxhZ0NoZWNrZXJlZDpTU3QsZmFHYXVnZVNpbXBsZTp3RCxmYUdhdWdlU2ltcGxlTWVkOnpTdCxmYVRhY2hvbWV0ZXJBdmVyYWdlOkNTdCxmYVJpZ2h0TGVmdDpRY2UsZmFFeGNoYW5nZUFsdDpUU3QsZmFQaWxsczpfU3QsZmFFeHBsb3Npb246TFN0LGZhQXJyb3dzRG93blRvUGVvcGxlOkFTdCxmYVVzZXJzVmlld2ZpbmRlcjpEU3QsZmFDYXJPbjpFU3QsZmFTbGVpZ2g6JFN0LGZhRHVtYmJlbGw6SVN0LGZhQmFieUNhcnJpYWdlOkpjZSxmYUNhcnJpYWdlQmFieTpQU3QsZmFLaXdpQmlyZDpOU3QsZmFDYWxlbmRhclhtYXJrOktjZSxmYUNhbGVuZGFyVGltZXM6RlN0LGZhQ2lyY2xlRG93bjplMGUsZmFBcnJvd0FsdENpcmNsZURvd246T1N0LGZhRmlsZU1lZGljYWw6UlN0LGZhWG1hcms6RDQsZmFDbG9zZTpCU3QsZmFNdWx0aXBseTpIU3QsZmFSZW1vdmU6cVN0LGZhVGltZXM6alN0LGZhU2hhcGVzOnQwZSxmYVRyaWFuZ2xlQ2lyY2xlU3F1YXJlOlZTdCxmYURpY2VPbmU6VVN0LGZhTG9ja09wZW46V1N0LGZhUGVwcGVySG90OkdTdCxmYURyb3BsZXRTbGFzaDpyMGUsZmFUaW50U2xhc2g6WVN0LGZhRHJvcGxldDppMGUsZmFUaW50OlpTdCxmYUZpbGVMaW5lczpNRCxmYUZpbGVBbHQ6WFN0LGZhRmlsZVRleHQ6UVN0LGZhQ29tbWVudHNEb2xsYXI6SlN0LGZhTWFnbmlmeWluZ0dsYXNzTG9jYXRpb246YTBlLGZhU2VhcmNoTG9jYXRpb246S1N0LGZhRmlsZUludm9pY2U6bEUsZmFQZW50YWdvbjplenQsZmFSZXB1YmxpY2FuOnR6dCxmYVNob3A6bjBlLGZhU3RvcmVBbHQ6cnp0LGZhRmlsbTprRCxmYUZpbG1BbHQ6aXp0LGZhRmlsbVNpbXBsZTphenQsZmFCdWlsZGluZ0NpcmNsZVhtYXJrOm56dCxmYUNvbW1lbnRzOm96dCxmYVRhZ3M6c3p0LGZhR3VuOmx6dCxmYUNpcmNsZUNoZWNrOkpnLGZhQ2hlY2tDaXJjbGU6Y3p0LGZhU2NvcnBpbzpkenQsZmFJZENhcmRDbGlwOm8wZSxmYUlkQ2FyZEFsdDp1enQsZmFNb29uOnB6dCxmYU9pbFdlbGw6aHp0LGZhVGFjaG9ncmFwaERpZ2l0YWw6czBlLGZhRGlnaXRhbFRhY2hvZ3JhcGg6Znp0LGZhVGFibGV0OmwwZSxmYVRhYmxldEFuZHJvaWQ6bXp0LGZhUnVibGVTaWduOk9nLGZhUm91YmxlOmd6dCxmYVJ1YjpienQsZmFSdWJsZTp2enQsZmFDbG9zZWRDYXB0aW9uaW5nOnh6dCxmYVBlbjp5enQsZmFQbGFuZTp3enQsZmFJbWFnZXM6TXp0LGZhTW9iaWxlU2NyZWVuOmMwZSxmYU1vYmlsZUFuZHJvaWRBbHQ6a3p0LGZhR3VhcmFuaVNpZ246U3p0LGZhQmFnU2hvcHBpbmc6ZDBlLGZhU2hvcHBpbmdCYWc6enp0LGZhQ2lyY2xlUmlnaHQ6dTBlLGZhQXJyb3dBbHRDaXJjbGVSaWdodDpDenQsZmFQaG9uZVZvbHVtZTpwMGUsZmFWb2x1bWVDb250cm9sUGhvbmU6VHp0LGZhQ3ViZXM6X3p0LGZhUGhvbmU6THp0LGZhVG9yaWlHYXRlOkF6dCxmYUJhY29uOkR6dCxmYVBlcnNvbkZhbGxpbmdCdXJzdDpFenQsZmFRdW90ZVJpZ2h0OmgwZSxmYVF1b3RlUmlnaHRBbHQ6JHp0LGZhSG91c2VNZWRpY2FsRmxhZzpJenQsZmFQcmVzY3JpcHRpb246UHp0LGZhRGljZVRocmVlOk56dCxmYUJ1aWxkaW5nTG9jazpGenQsZmFJZENhcmQ6ZjBlLGZhRHJpdmVyc0xpY2Vuc2U6T3p0LGZhQ2lyY2xlUGxheTptMGUsZmFQbGF5Q2lyY2xlOlJ6dCxmYUZhY2VMYXVnaEJlYW06ZzBlLGZhTGF1Z2hCZWFtOkJ6dCxmYUxlYWY6SHp0LGZhSG91c2VDaGltbmV5VXNlcjpxenQsZmFSb3RhdGVSaWdodDpTRCxmYVJlZG9BbHQ6anp0LGZhUm90YXRlRm9yd2FyZDpWenQsZmFUb290aDpVenQsZmFIb3VzZUNoaW1uZXlXaW5kb3c6V3p0LGZhTW90b3JjeWNsZTpHenQsZmFCYWNrd2FyZEZhc3Q6YjBlLGZhRmFzdEJhY2t3YXJkOll6dCxmYUFkZHJlc3NCb29rOnYwZSxmYUNvbnRhY3RCb29rOlp6dCxmYVNhaWxib2F0Olh6dCxmYUJvb2tCb29rbWFyazpRenQsZmFNYWduaWZ5aW5nR2xhc3NBcnJvd1JpZ2h0Okp6dCxmYU1pY3JvcGhvbmVMaW5lczp4MGUsZmFNaWNyb3Bob25lQWx0Okt6dCxmYVJlcGx5QWxsOnkwZSxmYU1haWxSZXBseUFsbDplQ3QsZmFVbml2ZXJzYWxBY2Nlc3M6dEN0LGZhVG9pbGV0UGFwZXI6ekQsZmFUb2lsZXRQYXBlckFsdDpyQ3QsZmFUb2lsZXRQYXBlckJsYW5rOmlDdCxmYVZyQ2FyZGJvYXJkOmFDdCxmYVBpenphU2xpY2U6bkN0LGZhU3ByYXlDYW46b0N0LGZhVm9sdW1lTG93OncwZSxmYVZvbHVtZURvd246c0N0LGZhQ3Jvc3M6bEN0LGZhUGVyc29uOk0wZSxmYU1hbGU6Y0N0LGZhSG91cmdsYXNzOmswZSxmYUhvdXJnbGFzc0VtcHR5OmRDdCxmYUZpc2g6dUN0LGZhRHJ1bXN0aWNrQml0ZTpwQ3QsZmFDaGFydFNpbXBsZTpoQ3QsZmFBdG9tOmZDdCxmYVA6bUN0LGZhSmV0RmlnaHRlclVwOmdDdCxmYVBsdWdDaXJjbGVYbWFyazpiQ3QsZmFTaGVldFBsYXN0aWM6dkN0LGZhVjp4Q3QsZmFMaXN0OlMwZSxmYUxpc3RTcXVhcmVzOnlDdCxmYVBpc2Nlczp3Q3QsZmFTb2xhclBhbmVsOk1DdCxmYUxhbmRNaW5lT246a0N0LGZhSGVhZHBob25lczpDRCxmYUhlYWRwaG9uZXNBbHQ6U0N0LGZhSGVhZHBob25lc1NpbXBsZTp6Q3QsZmFCdXM6Q0N0LGZhRmlsZVBvd2VycG9pbnQ6VEN0LGZhUXVvdGVMZWZ0OnowZSxmYVF1b3RlTGVmdEFsdDpfQ3QsZmFDaGV2cm9uRG93bjpMQ3QsZmFFYXJ0aEFzaWE6QzBlLGZhR2xvYmVBc2lhOkFDdCxmYUNlbnRTaWduOkRDdCxmYVNoaWVsZENhdDpFQ3QsZmFTY2hvb2xDaXJjbGVDaGVjazokQ3QsZmFNYXJ0aW5pR2xhc3M6VDBlLGZhR2xhc3NNYXJ0aW5pQWx0OklDdCxmYVBsdWc6UEN0LGZhUGFub3JhbWE6TkN0LGZhQ2xvY2tSb3RhdGVMZWZ0OktnLGZhSGlzdG9yeTpGQ3QsZmFKYXJXaGVhdDpPQ3QsZmFDbG91ZEFycm93RG93bjpURCxmYUNsb3VkRG93bmxvYWQ6UkN0LGZhQ2xvdWREb3dubG9hZEFsdDpCQ3QsZmFUcnVja1JhbXBCb3g6XzBlLGZhVHJ1Y2tMb2FkaW5nOkhDdCxmYUFuZ2xlRG93bjpxQ3QsZmFQbHVnQ2lyY2xlQ2hlY2s6akN0LGZhV2luZG93TWF4aW1pemU6VkN0LGZhSGFuZHNIb2xkaW5nQ2lyY2xlOlVDdCxmYUxvY2F0aW9uUGluOkwwZSxmYU1hcE1hcmtlcjpXQ3QsZmFCb3dsaW5nQmFsbDpHQ3QsZmFDYXJ0RmxhdGJlZDpBMGUsZmFEb2xseUZsYXRiZWQ6WUN0LGZhSG91c2VVc2VyOkQwZSxmYUhvbWVVc2VyOlpDdCxmYUdob3N0OlhDdCxmYUNvbW1lbnROb2RlczpRQ3QsZmFQZXJzb25BcnJvd0Rvd25Ub0xpbmU6SkN0LGZhUGx1Z0NpcmNsZVBsdXM6S0N0LGZhUGVyc29uU3dpbW1pbmc6RTBlLGZhU3dpbW1lcjplVHQsZmFDb21tZW50RG90czokMGUsZmFDb21tZW50aW5nOnRUdCxmYUNoYXJ0UGllOkkwZSxmYVBpZUNoYXJ0OnJUdCxmYUZyb2c6aVR0LGZhV2luZUJvdHRsZTphVHQsZmFJbmJveDpuVHQsZmFTcXVhcmVIOlAwZSxmYUhTcXVhcmU6b1R0LGZhSG91c2VNZWRpY2FsOnNUdCxmYUNpcmNsZUNoZXZyb25SaWdodDpOMGUsZmFDaGV2cm9uQ2lyY2xlUmlnaHQ6bFR0LGZhRmlsZUNzdjpjVHQsZmFIYXRDb3dib3k6ZFR0LGZhRmFjZUdyaW5Ub25ndWVXaW5rOkYwZSxmYUdyaW5Ub25ndWVXaW5rOnVUdCxmYUw6cFR0LGZhQXJyb3dEb3duU2hvcnRXaWRlOl9ELGZhU29ydEFtb3VudERlc2M6aFR0LGZhU29ydEFtb3VudERvd25BbHQ6ZlR0LGZhSG91cmdsYXNzSGFsZjpPMGUsZmFIb3VyZ2xhc3MyOm1UdCxmYVNwb29uOlIwZSxmYVV0ZW5zaWxTcG9vbjpnVHQsZmFDcmVkaXRDYXJkOkIwZSxmYUNyZWRpdENhcmRBbHQ6YlR0LGZhRmlsZUludm9pY2VEb2xsYXI6Y0UsZmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nOkgwZSxmYVBhc3RhZmFyaWFuaXNtOnZUdCxmYU1hcnRpbmlHbGFzc0NpdHJ1czpxMGUsZmFDb2NrdGFpbDp4VHQsZmFCdWxsaG9ybjp5VHQsZmFCb3hUaXNzdWU6d1R0LGZhTWF0dHJlc3NQaWxsb3c6TVR0LGZhQ2hldnJvbkxlZnQ6a1R0LGZhQ2xvdWRNb29uUmFpbjpTVHQsZmFBcnJvd0Rvd24xOTpMRCxmYVNvcnROdW1lcmljQXNjOnpUdCxmYVNvcnROdW1lcmljRG93bjpDVHQsZmFIYW5kU3BvY2s6VFR0LGZhV2FuZE1hZ2ljU3BhcmtsZXM6ajBlLGZhTWFnaWNXYW5kU3BhcmtsZXM6X1R0LGZhQ29tbWVudE1lZGljYWw6TFR0LGZhQmVsbFNsYXNoOkFUdCxmYUhhbmRzaGFrZVNsYXNoOkFELGZhSGFuZHNoYWtlQWx0U2xhc2g6RFR0LGZhSGFuZHNoYWtlU2ltcGxlU2xhc2g6RVR0LGZhQm90dGxlV2F0ZXI6JFR0LGZhRGljZUQyMDpJVHQsZmFBcnJvd0Rvd25aQTpERCxmYVNvcnRBbHBoYURlc2M6UFR0LGZhU29ydEFscGhhRG93bkFsdDpOVHQsZmFCcnVzaDpGVHQsZmFQZXJzb25XYWxraW5nRGFzaGVkTGluZUFycm93UmlnaHQ6T1R0LGZhQXJyb3dVcFNob3J0V2lkZTpWMGUsZmFTb3J0QW1vdW50VXBBbHQ6UlR0LGZhR3JpcFZlcnRpY2FsOlUwZSxmYUdyaWRWZXJ0aWNhbDpCVHQsZmFDYXJUdW5uZWw6SFR0LGZhQ2hhcnRDb2x1bW46cVR0LGZhQ2Fwcmljb3JuOmpUdCxmYVRydWNrQXJyb3dSaWdodDpWVHQsZmFUdjpFRCxmYVRlbGV2aXNpb246VVR0LGZhVHZBbHQ6V1R0LGZhU2VjdGlvbjpHVHQsZmFQZWFjZTpZVHQsZmFTdGFyOlpUdCxmYUZsYWc6WFR0LGZhVHJpYW5nbGVFeGNsYW1hdGlvbjokRCxmYUV4Y2xhbWF0aW9uVHJpYW5nbGU6UVR0LGZhV2FybmluZzpKVHQsZmFTY2hvb2xDaXJjbGVFeGNsYW1hdGlvbjpLVHQsZmFHcmFkdWF0aW9uQ2FwOlcwZSxmYU1vcnRhckJvYXJkOmVfdCxmYVN0b3JlOnRfdCxmYVVzZXJBc3Ryb25hdXQ6cl90LGZhQnVpbGRpbmdGbGFnOmlfdCxmYU11Z1NhdWNlcjpHMGUsZmFDb2ZmZWU6YV90LGZhTGVtb246bl90LGZhQ2FyYXZhbjpvX3QsZmFROnNfdCxmYUxvY2s6bF90LGZhUGFpbnRSb2xsZXI6Y190LGZhVm9sdW1lSGlnaDpZMGUsZmFWb2x1bWVVcDpkX3QsZmFGb2xkZXJQbHVzOnVfdCxmYU1lcmN1cnk6cF90LGZhQW5jaG9yOmhfdCxmYVNxdWFyZVBhcmtpbmc6WjBlLGZhUGFya2luZzpmX3QsZmFIYW51a2lhaDptX3QsZmFSb3RhdGVMZWZ0OlJnLGZhUm90YXRlQmFjazpnX3QsZmFSb3RhdGVCYWNrd2FyZDpiX3QsZmFVbmRvQWx0OnZfdCxmYUhlYWRpbmc6WDBlLGZhSGVhZGVyOnhfdCxmYUNyb3NzaGFpcnM6eV90LGZhQ2lyY2xlTm9kZXM6d190LGZhV2luZG93UmVzdG9yZTpNX3QsZmFSOmtfdCxmYUZpbHRlckNpcmNsZVhtYXJrOlNfdCxmYUdvcHVyYW06el90LGZhSGVhcnRDaXJjbGVNaW51czpDX3QsZmFTdGFyT2ZMaWZlOlRfdCxmYUJ1c2luZXNzVGltZTpRMGUsZmFCcmllZmNhc2VDbG9jazpfX3QsZmFGaXJlRXh0aW5ndWlzaGVyOkxfdCxmYUFycm93RG93bkxvbmc6SjBlLGZhTG9uZ0Fycm93RG93bjpBX3QsZmFVc2VyTWludXM6RF90LGZhTW9uZXlDaGVjazpFX3QsZmFIb3VzZUxhcHRvcDpLMGUsZmFMYXB0b3BIb3VzZTokX3QsZmFEb3dubG9hZDpJX3QsZmFTYWdpdHRhcml1czpQX3QsZmFDb3VjaDpOX3QsZmFSb2FkTG9jazpGX3QsZmFTY2lzc29yczplNGUsZmFDdXQ6T190LGZhQnVnOmRFLGZhQXJyb3dSaWdodEZyb21CcmFja2V0OnQ0ZSxmYVNpZ25PdXQ6Ul90LGZhSGFuZEhvbGRpbmdIYW5kOkJfdCxmYVN0cm9vcHdhZmVsOkhfdCxmYUNoaWxkOnFfdCxmYUljZUNyZWFtOmpfdCxmYUNvbXB1dGVyTW91c2U6cjRlLGZhTW91c2U6Vl90LGZhRmF1Y2V0OlVfdCxmYUF3YXJkOldfdCxmYVBlcnNvbkRyb3duaW5nOkdfdCxmYUNhbWVyYVJvdGF0ZTpZX3QsZmFGYWNlR3JpbkhlYXJ0czppNGUsZmFHcmluSGVhcnRzOlpfdCxmYUZpbGVGcmFnbWVudDpYX3QsZmFQZXJzb25NaWxpdGFyeVJpZmxlOlFfdCxmYVRvZ2dsZU9uOkpfdCxmYUx1bmdzVmlydXM6S190LGZhVGFibGVUZW5uaXNQYWRkbGVCYWxsOklELGZhUGluZ1BvbmdQYWRkbGVCYWxsOmVMdCxmYVRhYmxlVGVubmlzOnRMdCxmYUJveGVzUGFja2luZzpyTHQsZmFQZXJzb25DaGFsa2JvYXJkOmlMdCxmYURpY2VUd286YUx0LGZhQXJyb3dSaWdodEFycm93TGVmdDphNGUsZmFFeGNoYW5nZTpuTHQsZmFGb290YmFsbDpuNGUsZmFGb290YmFsbEJhbGw6b0x0LGZhVHJ1Y2tNb25zdGVyOnNMdCxmYUFzdGVyaXNrOmxMdCxmYUJhdHRlcnlGdWxsOlBELGZhQmF0dGVyeTpjTHQsZmFCYXR0ZXJ5NTpkTHQsZmFDaGlsZERyZXNzOnVMdCxmYUZhY2VLaXNzQmVhbTpvNGUsZmFLaXNzQmVhbTpwTHQsZmFUcmFzaENhbkFycm93VXA6czRlLGZhVHJhc2hSZXN0b3JlQWx0OmhMdCxmYUZvbnQ6Zkx0LGZhQm9yZUhvbGU6bUx0LGZhVmlydXNDb3ZpZDpnTHQsZmFGaWxlUGRmOmJMdCxmYUxhbmd1YWdlOnZMdCxmYVNoaWVsZEhhbHZlZDpsNGUsZmFTaGllbGRBbHQ6eEx0LGZhQ2FyZXRVcDp5THQsZmFGaWxlUGVuOmM0ZSxmYUZpbGVFZGl0OndMdCxmYVBlcnNvbkJpa2luZzpkNGUsZmFCaWtpbmc6TUx0LGZhQm9va09wZW5SZWFkZXI6dTRlLGZhQm9va1JlYWRlcjprTHQsZmFHbGFzc1dhdGVyRHJvcGxldDpTTHQsZmFUb3dlckJyb2FkY2FzdDpwNGUsZmFCcm9hZGNhc3RUb3dlcjp6THQsZmFNaW5pbWl6ZTpoNGUsZmFDb21wcmVzc0Fycm93c0FsdDpDTHQsZmFBcnJvd1JpZ2h0VG9DaXR5OlRMdCxmYUxhcHRvcE1lZGljYWw6X0x0LGZhQnJlYWRTbGljZTpMTHQsZmFHbG9iZTpBTHQsZmFGb2xkZXJNaW51czpETHQsZmFNYXNrRmFjZTpFTHQsZmFCb25nOiRMdCxmYVJvYWRCcmlkZ2U6SUx0LGZhQXJyb3dVcDkxOmY0ZSxmYVNvcnROdW1lcmljVXBBbHQ6UEx0LGZhTW91bnRhaW5DaXR5Ok5MdCxmYUFycm93RG93bjkxOk5ELGZhU29ydE51bWVyaWNEZXNjOkZMdCxmYVNvcnROdW1lcmljRG93bkFsdDpPTHQsZmFGYWNlR3JpbldpZGU6bTRlLGZhR3JpbkFsdDpSTHQsZmFQb29wOkJMdCxmYURoYXJtYWNoYWtyYTpITHQsZmFCYXR0ZXJ5UXVhcnRlcjpnNGUsZmFCYXR0ZXJ5MjpxTHQsZmFBbmtoOmpMdCxmYURpYW1vbmQ6Vkx0LGZhU3Vic2NyaXB0OlVMdCxmYVJ1cGVlU2lnbjpiNGUsZmFSdXBlZTpXTHQsZmFQZXJzb25SaWZsZTpHTHQsZmFEOllMdCxmYVNxdWFyZU5maTpaTHQsZmFUZWV0aDpYTHQsZmFNYWduaWZ5aW5nR2xhc3NEb2xsYXI6djRlLGZhU2VhcmNoRG9sbGFyOlFMdCxmYUR1bXBzdGVyRmlyZTpKTHQsZmFVcGxvYWQ6S0x0LGZhVXNlclNsYXNoOkZELGZhVXNlckFsdFNsYXNoOmVBdCxmYVVzZXJMYXJnZVNsYXNoOnRBdCxmYUFycm93TGVmdDpyQXQsZmFWaWFsVmlydXM6aUF0LGZhQ2hlY2tEb3VibGU6YUF0LGZhUGF3Om5BdCxmYUhlbG1ldFNhZmV0eTpPRCxmYUhhcmRIYXQ6b0F0LGZhSGF0SGFyZDpzQXQsZmFFOmxBdCxmYUZhY2VMYXVnaFNxdWludDp4NGUsZmFMYXVnaFNxdWludDpjQXQsZmFEb3duTGVmdEFuZFVwUmlnaHRUb0NlbnRlcjp5NGUsZmFDb21wcmVzc0FsdDpkQXQsZmFHaWZ0czp1QXQsZmFCZWQ6cEF0LGZhTW9uZXlCaWxsVHJhbnNmZXI6aEF0LGZhUGVyc29uUnVubmluZzp3NGUsZmFSdW5uaW5nOmZBdCxmYUNpcmNsZUNoZXZyb25Eb3duOk00ZSxmYUNoZXZyb25DaXJjbGVEb3duOm1BdCxmYVVzZXJOdXJzZTpnQXQsZmFGYWNlS2lzc1dpbmtIZWFydDprNGUsZmFLaXNzV2lua0hlYXJ0OmJBdCxmYUZpbGw6dkF0LGZhTW9uZXlCaWxsMVdhdmU6UzRlLGZhTW9uZXlCaWxsV2F2ZUFsdDp4QXQsZmFMYW5kbWFyazp5QXQsZmFNdXNpYzp3QXQsZmFCb29rTWVkaWNhbDpNQXQsZmFTaHVmZmxlOno0ZSxmYVJhbmRvbTprQXQsZmFVbmRlcmxpbmU6U0F0LGZhQnVpbGRpbmdVc2VyOnpBdCxmYVJvYm90OkNBdCxmYVBsdXM6ZWIsZmFBZGQ6VEF0LGZhQ29weTp1RSxmYUNoZXNzS2luZzpfQXQsZmFIb3VzZUZsb29kV2F0ZXI6TEF0LGZhQml0Y29pblNpZ246QUF0LGZhQm94OkRBdCxmYVNxdWFyZVBsdXM6QzRlLGZhUGx1c1NxdWFyZTpFQXQsZmFBcnJvd3NMZWZ0UmlnaHQ6VDRlLGZhQXJyb3dzSDokQXQsZmFGYW46SUF0LGZhQ3JvdzpQQXQsZmFGaWxlQ2lyY2xlQ2hlY2s6TkF0LGZhTGlua1NsYXNoOkJnLGZhQ2hhaW5Ccm9rZW46RkF0LGZhQ2hhaW5TbGFzaDpPQXQsZmFVbmxpbms6UkF0LGZhQXJyb3dSb3RhdGVSaWdodDpIZyxmYUFycm93UmlnaHRSb3RhdGU6QkF0LGZhQXJyb3dSb3RhdGVGb3J3YXJkOkhBdCxmYVJlZG86cUF0LGZhUGVuQ2xpcDpfNGUsZmFQZW5BbHQ6akF0LGZhRG9vckNsb3NlZDpWQXQsZmFBcnJvd0Rvd25XaWRlU2hvcnQ6UkQsZmFTb3J0QW1vdW50QXNjOlVBdCxmYVNvcnRBbW91bnREb3duOldBdCxmYUNhcmV0RG93bjpHQXQsZmFLOllBdCxmYUNoZWNrVG9TbG90Okw0ZSxmYVZvdGVZZWE6WkF0LGZhRmlzaEZpbnM6WEF0LGZhQ29tcHJlc3M6UUF0LGZhQXJyb3dVcEFaOkE0ZSxmYVNvcnRBbHBoYVVwOkpBdCxmYVVzZXJHcmFkdWF0ZTpLQXQsZmFGaWxlQ29kZTplRHQsZmFTb2FwOnREdCxmYVJlY3ljbGU6ckR0LGZhRmFjZUdyaW5XaW5rOkQ0ZSxmYUdyaW5XaW5rOmlEdCxmYVdhdGVyTGFkZGVyOkJELGZhTGFkZGVyV2F0ZXI6YUR0LGZhU3dpbW1pbmdQb29sOm5EdCxmYUdlbWluaTpvRHQsZmFUb3dlckNlbGw6c0R0LGZhQ29sb25TaWduOmxEdCxmYUxhcHRvcEZpbGU6Y0R0LGZhQmFoYWk6RTRlLGZhSGF5a2FsOmREdCxmYU1vbmV5QmlsbDE6JDRlLGZhTW9uZXlCaWxsQWx0OnVEdCxmYUNsb3VkQm9sdDpJNGUsZmFUaHVuZGVyc3Rvcm06cER0LGZhRXRoZXJuZXQ6aER0LGZhSHJ5dm5pYVNpZ246UDRlLGZhSHJ5dm5pYTpmRHQsZmFFeWVTbGFzaDpwRSxmYUNhcnRGbGF0YmVkU3VpdGNhc2U6TjRlLGZhTHVnZ2FnZUNhcnQ6bUR0LGZhUmFkaWF0aW9uOmdEdCxmYUZpbGVXb3JkOmJEdCxmYUJlZFB1bHNlOkY0ZSxmYVByb2NlZHVyZXM6dkR0LGZhVGVudHM6eER0LGZhTXVnSG90OmhFLGZhQm9sdDpPNGUsZmFaYXA6eUR0LGZhSmFyOndEdCxmYVRydWNrUGxhbmU6TUR0LGZhSGFuZEhvbGRpbmdIZWFydDprRHQsZmFBcnJvd1JvdGF0ZUxlZnQ6T3AsZmFBcnJvd0xlZnRSb3RhdGU6U0R0LGZhQXJyb3dSb3RhdGVCYWNrOnpEdCxmYUFycm93Um90YXRlQmFja3dhcmQ6Q0R0LGZhVW5kbzpURHQsZmFGYWNlQW5ncnk6UjRlLGZhQW5ncnk6X0R0LGZhQnVyc3Q6TER0LGZhWjpBRHQsZmFCYW5kYWdlOkI0ZSxmYUJhbmRBaWQ6RER0LGZhUGxhbmVDaXJjbGVFeGNsYW1hdGlvbjpFRHQsZmFCdXNTaWRlOiREdCxmYUJ1Z3M6SUR0LGZhQmVlck11Z0VtcHR5Okg0ZSxmYUJlZXI6UER0LGZhUGVyc29uQ2lyY2xlQ2hlY2s6TkR0LGZhU3RhcGxlcjpGRHQsZmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjazpPRHQsZmFOYWlyYVNpZ246UkR0LGZhV2lmaTpIRCxmYVdpZmkzOkJEdCxmYVdpZmlTdHJvbmc6SER0LGZhTW9uZXlDaGVja0RvbGxhcjp0YixmYU1vbmV5Q2hlY2tBbHQ6cUR0LGZhRXllTG93VmlzaW9uOnE0ZSxmYUxvd1Zpc2lvbjpqRHQsZmFDaXJjbGVBcnJvd1VwOmo0ZSxmYUFycm93Q2lyY2xlVXA6VkR0LGZhQ2FtZXJhUmV0cm86VUR0LGZhQ2Fwc3VsZXM6V0R0LGZhUG9vOkdEdCxmYVZvbHVtZTpWNGUsZmFWb2x1bWVNZWRpdW06WUR0LGZhRWxldmF0b3I6WkR0LGZhVGFnOlhEdCxmYUZpbGVDaXJjbGVNaW51czpRRHQsZmFEb3duTG9uZzpVNGUsZmFMb25nQXJyb3dBbHREb3duOkpEdCxmYUNvbXBhY3REaXNjOktEdCxmYVN1aXRjYXNlUm9sbGluZzplRXQsZmFCb29rUXVyYW46VzRlLGZhUXVyYW46dEV0LGZhUGhvbmVTbGFzaDpyRXQsZmFSb2FkQ2lyY2xlQ2hlY2s6aUV0LGZhU2hvcExvY2s6YUV0LGZhSW1hZ2VQb3J0cmFpdDpHNGUsZmFQb3J0cmFpdDpuRXQsZmFCcmlkZ2VMb2NrOm9FdCxmYUhhbW1lcjpzRXQsZmFBcnJvd1VwMTk6WTRlLGZhU29ydE51bWVyaWNVcDpsRXQsZmFDaGVzc0tuaWdodDpjRXQsZmFIb3VzZUZsb29kV2F0ZXJDaXJjbGVBcnJvd1JpZ2h0OmRFdCxmYUFycm93VXBSaWdodEZyb21TcXVhcmU6cmIsZmFFeHRlcm5hbExpbms6dUV0LGZhQXJyb3dEb3duVXBBY3Jvc3NMaW5lOnBFdCxmYUZhY2VHcmluQmVhbTpaNGUsZmFHcmluQmVhbTpoRXQsZmFSZWN0YW5nbGVBZDpYNGUsZmFBZDpmRXQsZmFCb29rVGFuYWtoOlE0ZSxmYVRhbmFraDptRXQsZmFIb3RUdWJQZXJzb246SjRlLGZhSG90VHViOmdFdCxmYUZpbGVIYWxmRGFzaGVkOmJFdCxmYU91dGRlbnQ6SzRlLGZhRGVkZW50OnZFdCxmYUhhbmRQZWFjZTp4RXQsZmFIZWFkU2lkZVZpcnVzOnlFdCxmYUNvbXBhc3M6d0V0LGZhUGVuTmliOk1FdCxmYVRlbnRBcnJvd3NEb3duOmtFdCxmYUZvcndhcmRGYXN0OmUzZSxmYUZhc3RGb3J3YXJkOlNFdCxmYUNyb3A6ekV0LGZhV2hpc2tleUdsYXNzOnQzZSxmYUdsYXNzV2hpc2tleTpDRXQsZmFTcXVhcmU6VEV0LGZhRmFjZUdyaW46cjNlLGZhR3JpbjpfRXQsZmFGaWxlQ29udHJhY3Q6TEV0LGZhQW5nbGVVcDpBRXQsZmFGYWNlU21pbGU6aTNlLGZhU21pbGU6REV0LGZhUGVyc29uRHJlc3NCdXJzdDpFRXQsZmFEaXZpZGU6JEV0LGZhQ29kZUZvcms6SUV0LGZhSG91c2VGbGFnOlBFdCxmYUJ1aWxkaW5nQ29sdW1uczpScCxmYUJhbms6TkV0LGZhSW5zdGl0dXRpb246RkV0LGZhTXVzZXVtOk9FdCxmYVVuaXZlcnNpdHk6UkV0LGZhUnVnOkJFdCxmYUNvZGVNZXJnZTpIRXQsZmFIb3VzZVRzdW5hbWk6cUV0LGZhTWFnbmlmeWluZ0dsYXNzQ2hhcnQ6akV0LGZhVW1icmVsbGE6VkV0LGZhSGlsbFJvY2tzbGlkZTpVRXQsZmFVc2VyU2VjcmV0OldFdCxmYVBhZ2VyOkdFdCxmYUJyaWVmY2FzZTpZRXQsZmFUcm93ZWxCcmlja3M6WkV0LGZhU29ja3M6WEV0LGZhVDpRRXQsZmFNaWNyb2NoaXA6SkV0LGZhVHJ1Y2tNZWRpY2FsOmEzZSxmYUFtYnVsYW5jZTpLRXQsZmFPbTplJHQsZmFNb3NxdWl0b05ldDp0JHQsZmFQcmVzY3JpcHRpb25Cb3R0bGU6ciR0LGZhVXNlcnNHZWFyOm4zZSxmYVVzZXJzQ29nOmkkdCxmYVJvYWRDaXJjbGVFeGNsYW1hdGlvbjphJHQsZmFQYXVzZTpuJHQsZmFTdGFmZlNuYWtlOnFnLGZhUm9kQXNjbGVwaXVzOm8kdCxmYVJvZFNuYWtlOnMkdCxmYVN0YWZmQWVzY3VsYXBpdXM6bCR0LGZhUGlnZ3lCYW5rOmMkdCxmYU1vbnVtZW50OmQkdCxmYUFuZ2xlc1JpZ2h0Om8zZSxmYUFuZ2xlRG91YmxlUmlnaHQ6dSR0LGZhRGVza3RvcDppYixmYURlc2t0b3BBbHQ6cCR0LGZhUGxhbmVDaXJjbGVYbWFyazpoJHQsZmFSZXR3ZWV0OmYkdCxmYVVzZXJHZWFyOnMzZSxmYVVzZXJDb2c6bSR0LGZhQm9yZGVyQWxsOmckdCxmYUNvaW5zOmIkdCxmYU1hcnNTdHJva2U6diR0LGZhSGFuZHNoYWtlQW5nbGU6bDNlLGZhSGFuZHNIZWxwaW5nOngkdCxmYUFycm93RG93bjp5JHQsZmFMb2NhdGlvbkRvdDpjM2UsZmFNYXBNYXJrZXJBbHQ6dyR0LGZhUGx1Z0NpcmNsZUV4Y2xhbWF0aW9uOk0kdCxmYUNvb2tpZUJpdGU6ayR0LGZhU2NyZXdkcml2ZXJXcmVuY2g6ZDNlLGZhVG9vbHM6UyR0LGZhSW5kZW50OnokdCxmYUJhcnM6dTNlLGZhTmF2aWNvbjpDJHQsZmFIYW5kc1ByYXlpbmc6cDNlLGZhUHJheWluZ0hhbmRzOlQkdCxmYVZpcnVzZXM6XyR0LGZhU2Nob29sRmxhZzpMJHQsZmFUcmFkZW1hcms6QSR0LGZhRmlyZUJ1cm5lcjpEJHQsZmFGYWNlU21pbGVCZWFtOmgzZSxmYVNtaWxlQmVhbTpFJHQsZmFUZW50QXJyb3dMZWZ0UmlnaHQ6JCR0LGZhUm91dGU6SSR0LGZhQW5nbGVzVXA6ZjNlLGZhQW5nbGVEb3VibGVVcDpQJHQsZmFCdWNrZXQ6TiR0LGZhTGVzc1RoYW5FcXVhbDpGJHQsZmFGb2xkZXJDbG9zZWQ6TyR0LGZhUGVyc29uVGhyb3VnaFdpbmRvdzpSJHQsZmFTY2hvb2xMb2NrOkIkdCxmYVBlcnNvbkJ1cnN0OkgkdCxmYUxlZnRMb25nOm0zZSxmYUxvbmdBcnJvd0FsdExlZnQ6cSR0LGZhTG9jYXRpb25Dcm9zc2hhaXJzOmczZSxmYUxvY2F0aW9uOmokdCxmYVBlcnNvbkRvdHNGcm9tTGluZTpiM2UsZmFEaWFnbm9zZXM6ViR0LGZhR2F1Z2VTaW1wbGVIaWdoOnFELGZhVGFjaG9tZXRlcjpVJHQsZmFUYWNob21ldGVyRmFzdDpXJHQsZmFBbmdsZXNMZWZ0OnYzZSxmYUFuZ2xlRG91YmxlTGVmdDpHJHQsZmFVcERvd246eDNlLGZhQXJyb3dzQWx0VjpZJHQsZmFCYXR0ZXJ5RW1wdHk6eTNlLGZhQmF0dGVyeTA6WiR0LGZhS2V5Ym9hcmQ6WCR0LGZhQ29va2llOlEkdCxmYVN0b3B3YXRjaDpKJHQsZmFFamVjdDpLJHQsZmFTYXRlbGxpdGVEaXNoOmVJdCxmYUZhY2VSb2xsaW5nRXllczp3M2UsZmFNZWhSb2xsaW5nRXllczp0SXQsZmFMaXN0Q2hlY2s6TTNlLGZhVGFza3M6ckl0LGZhU2Fja1htYXJrOmlJdCxmYUhhc2h0YWc6YUl0LGZhVHJhaW46bkl0LGZhR2FtZXBhZDpvSXQsZmFGaWxlRXhwb3J0OmszZSxmYUFycm93UmlnaHRGcm9tRmlsZTpzSXQsZmFGYWNlR3JpbWFjZTpTM2UsZmFHcmltYWNlOmxJdCxmYVRyYWluU3Vid2F5OnozZSxmYVN1YndheTpjSXQsZmFDaXJjbGVEb3Q6QzNlLGZhRG90Q2lyY2xlOmRJdCxmYU9iamVjdEdyb3VwOnVJdCxmYVNoaXA6cEl0LGZhQzpoSXQsZmFTcXVhcmVQaG9uZTpUM2UsZmFQaG9uZVNxdWFyZTpmSXQsZmFSdWxlckNvbWJpbmVkOm1JdCxmYUFycm93c1JvdGF0ZTpqRCxmYVJlZnJlc2g6Z0l0LGZhU3luYzpiSXQsZmFQZXJzb25EcmVzczpfM2UsZmFGZW1hbGU6dkl0LGZhQm9va09wZW46eEl0LGZhRm9sZGVyVHJlZTp5SXQsZmFWaXJnbzp3SXQsZmFCb3hBcmNoaXZlOkwzZSxmYUFyY2hpdmU6TUl0LGZhVGVudEFycm93RG93blRvTGluZTprSXQsZmFRcmNvZGU6U0l0LGZhRHJhZ29uOnpJdCxmYUhvdXJnbGFzc0VuZDpBM2UsZmFIb3VyZ2xhc3MzOkNJdCxmYUdyaXA6SHAsZmFHcmlkSG9yaXpvbnRhbDpUSXQsZmFHcmlwSG9yaXpvbnRhbDpfSXQsZmFCb3JkZXJUb3BMZWZ0OkQzZSxmYUJvcmRlclN0eWxlOkxJdCxmYUxpc3RVbDpFM2UsZmFMaXN0RG90czpBSXQsZmFQZW9wbGVSb2JiZXJ5OkRJdCxmYU1vYmlsZUJ1dHRvbjpFSXQsZmFBcnJvd0Rvd25BWjpWRCxmYVNvcnRBbHBoYUFzYzokSXQsZmFTb3J0QWxwaGFEb3duOklJdCxmYU1vbmV5QmlsbDpQSXQsZmFDaXJjbGVNaW51czokM2UsZmFNaW51c0NpcmNsZTpOSXQsZmFBcnJvd1BvaW50ZXI6STNlLGZhTW91c2VQb2ludGVyOkZJdCxmYVNxdWFyZVNoYXJlTm9kZXM6UDNlLGZhU2hhcmVBbHRTcXVhcmU6T0l0LGZhVGFibGVDZWxsc0xhcmdlOk4zZSxmYVRoTGFyZ2U6Ukl0LGZhQ2F0OkJJdCxmYUNhbGVuZGFyV2VlazpISXQsZmFDb2RlQ29tcGFyZTpxSXQsZmFMZW86akl0LGZhUm9hZENpcmNsZVhtYXJrOlZJdCxmYVBhbGxldDpVSXQsZmFDYWtlQ2FuZGxlczpVRCxmYUJpcnRoZGF5Q2FrZTpXSXQsZmFDYWtlOkdJdCxmYUJ1Z1NsYXNoOllJdCxmYVRhcnA6Wkl0LGZhRGlhZ3JhbVByZWRlY2Vzc29yOlhJdCxmYUZhY2VGbHVzaGVkOkYzZSxmYUZsdXNoZWQ6UUl0LGZhRGlhZ3JhbU5leHQ6Skl0LGZhQW5jaG9yQ2lyY2xlWG1hcms6S0l0LGZhUGVyc29uQ2lyY2xlWG1hcms6ZVB0LGZhU3BhOnRQdCxmYUFyaWVzOnJQdCxmYUJhcnNQcm9ncmVzczpPM2UsZmFUYXNrc0FsdDppUHQsZmFIZWFydENpcmNsZUNoZWNrOmFQdCxmYU1hcnNTdHJva2VSaWdodDpSM2UsZmFNYXJzU3Ryb2tlSDpuUHQsZmFUb3dlck9ic2VydmF0aW9uOm9QdCxmYVN0ZXJsaW5nU2lnbjpXRCxmYUdicDpzUHQsZmFQb3VuZFNpZ246bFB0LGZhRmF1Y2V0RHJpcDpjUHQsZmFDaXJjbGVJbmZvOmFiLGZhSW5mb0NpcmNsZTpkUHQsZmFGZWF0aGVyOnVQdCxmYUJvd2xSaWNlOnBQdCxmYVN0YXJIYWxmU3Ryb2tlOkIzZSxmYVN0YXJIYWxmQWx0OmhQdCxmYVRlbXBlcmF0dXJlQXJyb3dEb3duOkgzZSxmYVRlbXBlcmF0dXJlRG93bjpmUHQsZmFNYXNrVmVudGlsYXRvcjptUHQsZmFGaWxlVmlkZW86Z1B0LGZhQXJyb3dUcmVuZERvd246YlB0LGZhT2lsQ2FuOnZQdCxmYVBlb3BsZUNhcnJ5Qm94OnEzZSxmYVBlb3BsZUNhcnJ5OnhQdCxmYUNoYWlyOnlQdCxmYVdpbmQ6d1B0LGZhTGF5ZXJHcm91cDpNUHQsZmFIZWFkU2lkZU1hc2s6a1B0LGZhSGFuZHM6R0QsZmFTaWduTGFuZ3VhZ2U6U1B0LGZhU2lnbmluZzp6UHQsZmFUYWJsZXRzOkNQdCxmYVdlaWdodEhhbmdpbmc6VFB0LGZhRGljZTpfUHQsZmFTaG9wU2xhc2g6ajNlLGZhU3RvcmVBbHRTbGFzaDpMUHQsZmFTb3J0RG93bjpWM2UsZmFTb3J0RGVzYzpBUHQsZmFQZXNldGFTaWduOkRQdCxmYVRhYmxldFNjcmVlbkJ1dHRvbjpVM2UsZmFUYWJsZXRBbHQ6RVB0LGZhSGFuZEhvbGRpbmdEb2xsYXI6VzNlLGZhSGFuZEhvbGRpbmdVc2Q6JFB0LGZhU2hpZWxkOkczZSxmYVNoaWVsZEJsYW5rOklQdCxmYUZhY2VMYXVnaDpZM2UsZmFMYXVnaDpQUHQsZmFIYW5kc0hvbGRpbmc6TlB0LGZhQ2FydFNob3BwaW5nOlozZSxmYVNob3BwaW5nQ2FydDpGUHQsZmFPY3RhZ29uOk9QdCxmYUhhbmRQb2ludGVyOlJQdCxmYVJlZ2lzdGVyZWQ6QlB0LGZhSG91c2VTaWduYWw6SFB0LGZhQmFuZ2xhZGVzaGlUYWthU2lnbjpxUHR9fSk7dmFyIHdOPWplKGc9PnsidXNlIHN0cmljdCI7dmFyIFZQdD17eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsInN0cm9rZS13aWR0aCI6Miwic3Ryb2tlLWxpbmVjYXAiOiJyb3VuZCIsInN0cm9rZS1saW5lam9pbiI6InJvdW5kIn0sVVB0PShbZSx0LHJdKT0+e2xldCBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGUpO3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGE9PntpLnNldEF0dHJpYnV0ZShhLFN0cmluZyh0W2FdKSl9KSxyPy5sZW5ndGgmJnIuZm9yRWFjaChhPT57bGV0IG49VVB0KGEpO2kuYXBwZW5kQ2hpbGQobil9KSxpfSxXUHQ9KGUsdD17fSk9PntsZXQgaT17Li4uVlB0LC4uLnR9O3JldHVybiBVUHQoWyJzdmciLGksZV0pfSxUWnI9ZT0+e2ZvcihsZXQgdCBpbiBlKWlmKHQuc3RhcnRzV2l0aCgiYXJpYS0iKXx8dD09PSJyb2xlInx8dD09PSJ0aXRsZSIpcmV0dXJuITA7cmV0dXJuITF9LF9acj0oLi4uZSk9PmUuZmlsdGVyKCh0LHIsaSk9PiEhdCYmdC50cmltKCkhPT0iIiYmaS5pbmRleE9mKHQpPT09cikuam9pbigiICIpLnRyaW0oKSxMWnI9ZT0+ZS5yZXBsYWNlKC9eKFtBLVpdKXxbXHMtX10rKFx3KS9nLCh0LHIsaSk9Pmk/aS50b1VwcGVyQ2FzZSgpOnIudG9Mb3dlckNhc2UoKSksQVpyPWU9PntsZXQgdD1MWnIoZSk7cmV0dXJuIHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKX0sRFpyPWU9PkFycmF5LmZyb20oZS5hdHRyaWJ1dGVzKS5yZWR1Y2UoKHQscik9Pih0W3IubmFtZV09ci52YWx1ZSx0KSx7fSksR1B0PWU9PnR5cGVvZiBlPT0ic3RyaW5nIj9lOiFlfHwhZS5jbGFzcz8iIjplLmNsYXNzJiZ0eXBlb2YgZS5jbGFzcz09InN0cmluZyI/ZS5jbGFzcy5zcGxpdCgiICIpOmUuY2xhc3MmJkFycmF5LmlzQXJyYXkoZS5jbGFzcyk/ZS5jbGFzczoiIixZUHQ9KGUse25hbWVBdHRyOnQsaWNvbnM6cixhdHRyczppfSk9PntsZXQgYT1lLmdldEF0dHJpYnV0ZSh0KTtpZihhPT1udWxsKXJldHVybjtsZXQgbj1BWnIoYSksbz1yW25dO2lmKCFvKXJldHVybiBjb25zb2xlLndhcm4oYCR7ZS5vdXRlckhUTUx9IGljb24gbmFtZSB3YXMgbm90IGZvdW5kIGluIHRoZSBwcm92aWRlZCBpY29ucyBvYmplY3QuYCk7bGV0IHM9RFpyKGUpLGw9VFpyKHMpP3t9OnsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0sYz17Li4uVlB0LCJkYXRhLWx1Y2lkZSI6YSwuLi5sLC4uLmksLi4uc30sdT1HUHQocyksZD1HUHQoaSksaD1fWnIoImx1Y2lkZSIsYGx1Y2lkZS0ke2F9YCwuLi51LC4uLmQpO2gmJk9iamVjdC5hc3NpZ24oYyx7Y2xhc3M6aH0pO2xldCBmPVdQdChvLGMpO3JldHVybiBlLnBhcmVudE5vZGU/LnJlcGxhY2VDaGlsZChmLGUpfSxaUHQ9W1sicGF0aCIse2Q6Im0xNCAxMiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xOCAxNlY3In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXSxYUHQ9W1sicGF0aCIse2Q6Im0xNCAxMSA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xOCAxNlY3In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXSxRUHQ9W1sicGF0aCIse2Q6Im0xNSAxNiAyLjUzNi03LjMyOGExLjAyIDEuMDIgMSAwIDEgMS45MjggMEwyMiAxNiJ9XSxbInBhdGgiLHtkOiJNMTUuNjk3IDE0aDUuNjA2In1dLFsicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTMuMzA0IDEzaDYuMzkyIn1dXSxKUHQ9W1siY2lyY2xlIix7Y3g6IjE2IixjeToiNCIscjoiMSJ9XSxbInBhdGgiLHtkOiJtMTggMTkgMS03LTYgMSJ9XSxbInBhdGgiLHtkOiJtNSA4IDMtMyA1LjUgMy0yLjM2IDMuNSJ9XSxbInBhdGgiLHtkOiJNNC4yNCAxNC41YTUgNSAwIDAgMCA2Ljg4IDYifV0sWyJwYXRoIix7ZDoiTTEzLjc2IDE3LjVhNSA1IDAgMCAwLTYuODgtNiJ9XV0sS1B0PVtbInBhdGgiLHtkOiJNMTggMTcuNWEyLjUgMi41IDAgMSAxLTQgMi4wM1YxMiJ9XSxbInBhdGgiLHtkOiJNNiAxMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik02IDhoMTIifV0sWyJwYXRoIix7ZDoiTTYuNiAxNS41NzJBMiAyIDAgMSAwIDEwIDE3di01In1dXSxlTnQ9W1sicGF0aCIse2Q6Ik0yMiAxMmgtMi40OGEyIDIgMCAwIDAtMS45MyAxLjQ2bC0yLjM1IDguMzZhLjI1LjI1IDAgMCAxLS40OCAwTDkuMjQgMi4xOGEuMjUuMjUgMCAwIDAtLjQ4IDBsLTIuMzUgOC4zNkEyIDIgMCAwIDEgNC40OSAxMkgyIn1dXSx0TnQ9W1sicGF0aCIse2Q6Ik01IDE3SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyaC0xIn1dLFsicGF0aCIse2Q6Im0xMiAxNSA1IDZIN1oifV1dLGZFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dLFsicGF0aCIse2Q6Im05IDEzIDIgMiA0LTQifV1dLG1FPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI4In1dLFsicGF0aCIse2Q6Ik01IDMgMiA2In1dLFsicGF0aCIse2Q6Im0yMiA2LTMtMyJ9XSxbInBhdGgiLHtkOiJNNi4zOCAxOC43IDQgMjEifV0sWyJwYXRoIix7ZDoiTTE3LjY0IDE4LjY3IDIwIDIxIn1dLFsicGF0aCIse2Q6Ik05IDEzaDYifV1dLHJOdD1bWyJwYXRoIix7ZDoiTTYuODcgNi44N2E4IDggMCAxIDAgMTEuMjYgMTEuMjYifV0sWyJwYXRoIix7ZDoiTTE5LjkgMTQuMjVhOCA4IDAgMCAwLTkuMTUtOS4xNSJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMjYgMTguNjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik00IDQgMiA2In1dXSxnRT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNNSAzIDIgNiJ9XSxbInBhdGgiLHtkOiJtMjIgNi0zLTMifV0sWyJwYXRoIix7ZDoiTTYuMzggMTguNyA0IDIxIn1dLFsicGF0aCIse2Q6Ik0xNy42NCAxOC42NyAyMCAyMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM2g2In1dXSxpTnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjgifV0sWyJwYXRoIix7ZDoiTTEyIDl2NGwyIDIifV0sWyJwYXRoIix7ZDoiTTUgMyAyIDYifV0sWyJwYXRoIix7ZDoibTIyIDYtMy0zIn1dLFsicGF0aCIse2Q6Ik02LjM4IDE4LjcgNCAyMSJ9XSxbInBhdGgiLHtkOiJNMTcuNjQgMTguNjcgMjAgMjEifV1dLGFOdD1bWyJwYXRoIix7ZDoiTTExIDIxYzAtMi41IDItMi41IDItNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjFjMC0yLjUgMi0yLjUgMi01In1dLFsicGF0aCIse2Q6Im0xOSA4LS44IDNhMS4yNSAxLjI1IDAgMCAxLTEuMiAxSDdhMS4yNSAxLjI1IDAgMCAxLTEuMi0xTDUgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM2ExIDEgMCAwIDEgMSAxdjJhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNNiAyMWMwLTIuNSAyLTIuNSAyLTUifV1dLG5OdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwb2x5bGluZSIse3BvaW50czoiMTEgMyAxMSAxMSAxNCA4IDE3IDExIDE3IDMifV1dLG9OdD1bWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTEwIDE2djRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTQifV0sWyJwYXRoIix7ZDoiTTEwIDhWNGEyIDIgMCAwIDAtMi0ySDZhMiAyIDAgMCAwLTIgMnY0In1dLFsicGF0aCIse2Q6Ik0yMCAxNnYxYTIgMiAwIDAgMS0yIDJoLTJhMiAyIDAgMCAxLTItMnYtMSJ9XSxbInBhdGgiLHtkOiJNMTQgOFY3YzAtMS4xLjktMiAyLTJoMmEyIDIgMCAwIDEgMiAydjEifV1dLHNOdD1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTggMTBINGEyIDIgMCAwIDEtMi0yVjZjMC0xLjEuOS0yIDItMmg0In1dLFsicGF0aCIse2Q6Ik0xNiAxMGg0YTIgMiAwIDAgMCAyLTJWNmEyIDIgMCAwIDAtMi0yaC00In1dLFsicGF0aCIse2Q6Ik04IDIwSDdhMiAyIDAgMCAxLTItMnYtMmMwLTEuMS45LTIgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aDFhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJoLTEifV1dLGxOdD1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTYiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjkiLHg6IjE0Iix5OiI5IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjJIMiJ9XV0sY050PVtbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNiIseDoiMiIseToiNCIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNiIseDoiOSIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMlYyIn1dXSxkTnQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI0Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTQiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMnYtNSJ9XSxbInBhdGgiLHtkOiJNMTcgN1YyIn1dLFsicGF0aCIse2Q6Ik03IDIydi0zIn1dLFsicGF0aCIse2Q6Ik03IDVWMiJ9XV0sdU50PVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTAgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMnYyMCJ9XV0scE50PVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNCIseDoiNCIseToiNSIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE0Iix5OiI3IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAydjIwIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIwIn1dXSxoTnQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTYiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIwIn1dXSxmTnQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiIyIix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTIiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAydjIwIn1dXSxtTnQ9W1sicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjE0Iix4OiI2Iix5OiI1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxMCIseDoiMTYiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDJ2MjAifV1dLGdOdD1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjkiLHk6IjciLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDIyVjIifV0sWyJwYXRoIix7ZDoiTTIwIDIyVjIifV1dLGJOdD1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjUiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjEwIix4OiIxNSIseToiNyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMnYyMCJ9XSxbInBhdGgiLHtkOiJNMjEgMnYyMCJ9XV0sdk50PVtbInJlY3QiLHt3aWR0aDoiNiIsaGVpZ2h0OiIxNiIseDoiNCIseToiNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiOSIseDoiMTQiLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAySDIifV1dLHhOdD1bWyJyZWN0Iix7d2lkdGg6IjkiLGhlaWdodDoiNiIseDoiNiIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiI2Iix4OiI2Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAydjIwIn1dXSx5TnQ9W1sicGF0aCIse2Q6Ik0yMiAxN2gtMyJ9XSxbInBhdGgiLHtkOiJNMjIgN2gtNSJ9XSxbInBhdGgiLHtkOiJNNSAxN0gyIn1dLFsicGF0aCIse2Q6Ik03IDdIMiJ9XSxbInJlY3QiLHt4OiI1Iix5OiIxNCIsd2lkdGg6IjE0IixoZWlnaHQ6IjYiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjciLHk6IjQiLHdpZHRoOiIxMCIsaGVpZ2h0OiI2IixyeDoiMiJ9XV0sd050PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAyMGgyMCJ9XSxbInBhdGgiLHtkOiJNMiAxMGgyMCJ9XV0sTU50PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiNiIseDoiNSIseToiMTQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgyMCJ9XSxbInBhdGgiLHtkOiJNMiA0aDIwIn1dXSxrTnQ9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwIn1dXSxTTnQ9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxMiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDIyaDIwIn1dXSx6TnQ9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiIxNiIscng6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDJoMjAifV1dLENOdD1bWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjYiLHg6IjciLHk6IjkiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMiAyMEgyIn1dLFsicGF0aCIse2Q6Ik0yMiA0SDIifV1dLFROdD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjYiLHg6IjUiLHk6IjE1IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiNiIseDoiNyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMjFoMjAifV0sWyJwYXRoIix7ZDoiTTIgM2gyMCJ9XV0sX050PVtbInBhdGgiLHtkOiJNMTAgMTBINiJ9XSxbInBhdGgiLHtkOiJNMTQgMThWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMWExIDEgMCAwIDAgMSAxaDIifV0sWyJwYXRoIix7ZDoiTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy4yOGExIDEgMCAwIDAtLjY4NC0uOTQ4bC0xLjkyMy0uNjQxYTEgMSAwIDAgMS0uNTc4LS41MDJsLTEuNTM5LTMuMDc2QTEgMSAwIDAgMCAxNi4zODIgOEgxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djQifV0sWyJwYXRoIix7ZDoiTTkgMThoNiJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMiJ9XV0sTE50PVtbInBhdGgiLHtkOiJNMTYgMTJoMyJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxMmE4IDggMCAwIDEtOCA4QTQuNSA0LjUgMCAwIDEgNSAxNS41YzAtNiA4LTQgOC04LjVhMyAzIDAgMSAwLTYgMGMwIDMgMi41IDguNSAxMiAxMyJ9XV0sQU50PVtbInBhdGgiLHtkOiJNMTAgMTdjLTUtMy03LTctNy05YTIgMiAwIDAgMSA0IDBjMCAyLjUtNSAyLjUtNSA2IDAgMS43IDEuMyAzIDMgMyAyLjggMCA1LTIuMiA1LTUifV0sWyJwYXRoIix7ZDoiTTIyIDE3Yy01LTMtNy03LTctOWEyIDIgMCAwIDEgNCAwYzAgMi41LTUgMi41LTUgNiAwIDEuNyAxLjMgMyAzIDMgMi44IDAgNS0yLjIgNS01In1dXSxETnQ9W1sicGF0aCIse2Q6Ik0xMCAydjUuNjMyYzAgLjQyNC0uMjcyLjc5NS0uNjUzLjk4MkE2IDYgMCAwIDAgNiAxNGMuMDA2IDQgMyA3IDUgOCJ9XSxbInBhdGgiLHtkOiJNMTAgNUg4YTIgMiAwIDAgMCAwIDRoLjY4In1dLFsicGF0aCIse2Q6Ik0xNCAydjUuNjMyYzAgLjQyNC4yNzIuNzk1LjY1Mi45ODJBNiA2IDAgMCAxIDE4IDE0YzAgNC0zIDctNSA4In1dLFsicGF0aCIse2Q6Ik0xNCA1aDJhMiAyIDAgMCAxIDAgNGgtLjY4In1dLFsicGF0aCIse2Q6Ik0xOCAyMkg2In1dLFsicGF0aCIse2Q6Ik05IDJoNiJ9XV0sRU50PVtbInBhdGgiLHtkOiJNMTIgNnYxNiJ9XSxbInBhdGgiLHtkOiJtMTkgMTMgMi0xYTkgOSAwIDAgMS0xOCAwbDIgMSJ9XSxbInBhdGgiLHtkOiJNOSAxMWg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNCIscjoiMiJ9XV0sJE50PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTZzLTEuNS0yLTQtMi00IDItNCAyIn1dLFsicGF0aCIse2Q6Ik03LjUgOCAxMCA5In1dLFsicGF0aCIse2Q6Im0xNCA5IDIuNS0xIn1dLFsicGF0aCIse2Q6Ik05IDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoLjAxIn1dXSxJTnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDE1aDgifV0sWyJwYXRoIix7ZDoiTTggOWgyIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDIifV1dLFBOdD1bWyJwYXRoIix7ZDoiTTIgMTIgNyAyIn1dLFsicGF0aCIse2Q6Im03IDEyIDUtMTAifV0sWyJwYXRoIix7ZDoibTEyIDEyIDUtMTAifV0sWyJwYXRoIix7ZDoibTE3IDEyIDUtMTAifV0sWyJwYXRoIix7ZDoiTTQuNSA3aDE1In1dLFsicGF0aCIse2Q6Ik0xMiAxNnY2In1dXSxOTnQ9W1sicGF0aCIse2Q6Ik03IDEwSDZhNCA0IDAgMCAxLTQtNCAxIDEgMCAwIDEgMS0xaDQifV0sWyJwYXRoIix7ZDoiTTcgNWExIDEgMCAwIDEgMS0xaDEzYTEgMSAwIDAgMSAxIDEgNyA3IDAgMCAxLTcgN0g4YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik05IDEydjUifV0sWyJwYXRoIix7ZDoiTTE1IDEydjUifV0sWyJwYXRoIix7ZDoiTTUgMjBhMyAzIDAgMCAxIDMtM2g4YTMgMyAwIDAgMSAzIDMgMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTEifV1dLEZOdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE0LjMxIDggNS43NCA5Ljk0In1dLFsicGF0aCIse2Q6Ik05LjY5IDhoMTEuNDgifV0sWyJwYXRoIix7ZDoibTcuMzggMTIgNS43NC05Ljk0In1dLFsicGF0aCIse2Q6Ik05LjY5IDE2IDMuOTUgNi4wNiJ9XSxbInBhdGgiLHtkOiJNMTQuMzEgMTZIMi44MyJ9XSxbInBhdGgiLHtkOiJtMTYuNjIgMTItNS43NCA5Ljk0In1dXSxPTnQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XV0sUk50PVtbInJlY3QiLHt4OiIyIix5OiI0Iix3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMCA0djQifV0sWyJwYXRoIix7ZDoiTTIgOGgyMCJ9XSxbInBhdGgiLHtkOiJNNiA0djQifV1dLEJOdD1bWyJwYXRoIix7ZDoiTTEyIDYuNTI4VjNhMSAxIDAgMCAxIDEtMWgwIn1dLFsicGF0aCIse2Q6Ik0xOC4yMzcgMjFBMTUgMTUgMCAwIDAgMjIgMTFhNiA2IDAgMCAwLTEwLTQuNDcyQTYgNiAwIDAgMCAyIDExYTE1LjEgMTUuMSAwIDAgMCAzLjc2MyAxMCAzIDMgMCAwIDAgMy42NDguNjQ4IDUuNSA1LjUgMCAwIDEgNS4xNzggMEEzIDMgMCAwIDAgMTguMjM3IDIxIn1dXSxITnQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI1Iix4OiIyIix5OiIzIixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNNCA4djExYTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgOHYxMWEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Im05IDE1IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTEyIDEydjkifV1dLHFOdD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjUiLHg6IjIiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik00IDh2MTFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjgifV0sWyJwYXRoIix7ZDoibTkuNSAxNyA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSAxMiA1IDUifV1dLGpOdD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjUiLHg6IjIiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik00IDh2MTFhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjgifV0sWyJwYXRoIix7ZDoiTTEwIDEyaDQifV1dLFZOdD1bWyJwYXRoIix7ZDoiTTE5IDlWNmEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0zIDE2YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtNWEyIDIgMCAwIDAtNCAwdjEuNWEuNS41IDAgMCAxLS41LjVoLTlhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiJ9XSxbInBhdGgiLHtkOiJNNSAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xOSAxOHYyIn1dXSxVTnQ9W1sicGF0aCIse2Q6Ik0xNSAxMWExIDEgMCAwIDAgMSAxaDIuOTM5YTEgMSAwIDAgMSAuNzUgMS44MTFsLTYuODM1IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAxLTEuNzA3IDBMNC4zMSAxMy44MWExIDEgMCAwIDEgLjc1LTEuODExSDhhMSAxIDAgMCAwIDEtMVY5YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOSA0aDYifV1dLFdOdD1bWyJwYXRoIix7ZDoiTTE1IDExYTEgMSAwIDAgMCAxIDFoMi45MzlhMSAxIDAgMCAxIC43NSAxLjgxMWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDEtMS43MDcgMEw0LjMxIDEzLjgxYTEgMSAwIDAgMSAuNzUtMS44MTFIOGExIDEgMCAwIDAgMS0xVjVhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF6In1dXSxHTnQ9W1sicGF0aCIse2Q6Ik0xMyA5YTEgMSAwIDAgMS0xLTFWNS4wNjFhMSAxIDAgMCAwLTEuODExLS43NWwtNi44MzUgNi44MzZhMS4yMDcgMS4yMDcgMCAwIDAgMCAxLjcwN2w2LjgzNSA2LjgzNWExIDEgMCAwIDAgMS44MTEtLjc1VjE2YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDAgMS0xdi00YTEgMSAwIDAgMC0xLTF6In1dLFsicGF0aCIse2Q6Ik0yMCA5djYifV1dLFlOdD1bWyJwYXRoIix7ZDoiTTEzIDlhMSAxIDAgMCAxLTEtMVY1LjA2MWExIDEgMCAwIDAtMS44MTEtLjc1bC02LjgzNSA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMCAwIDEuNzA3bDYuODM1IDYuODM1YTEgMSAwIDAgMCAxLjgxMS0uNzVWMTZhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMCAxLTF2LTRhMSAxIDAgMCAwLTEtMXoifV1dLFpOdD1bWyJwYXRoIix7ZDoiTTExIDlhMSAxIDAgMCAwIDEtMVY1LjA2MWExIDEgMCAwIDEgMS44MTEtLjc1bDYuODM2IDYuODM2YTEuMjA3IDEuMjA3IDAgMCAxIDAgMS43MDdsLTYuODM2IDYuODM1YTEgMSAwIDAgMS0xLjgxMS0uNzVWMTZhMSAxIDAgMCAwLTEtMUg5YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTQgOXY2In1dXSxYTnQ9W1sicGF0aCIse2Q6Ik0xMSA5YTEgMSAwIDAgMCAxLTFWNS4wNjFhMSAxIDAgMCAxIDEuODExLS43NWw2LjgzNiA2LjgzNmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA3bC02LjgzNiA2LjgzNWExIDEgMCAwIDEtMS44MTEtLjc1VjE2YTEgMSAwIDAgMC0xLTFINWExIDEgMCAwIDEtMS0xdi00YTEgMSAwIDAgMSAxLTF6In1dXSxRTnQ9W1sicGF0aCIse2Q6Ik05IDEzYTEgMSAwIDAgMC0xLTFINS4wNjFhMSAxIDAgMCAxLS43NS0xLjgxMWw2LjgzNi02LjgzNWExLjIwNyAxLjIwNyAwIDAgMSAxLjcwNyAwbDYuODM1IDYuODM1YTEgMSAwIDAgMS0uNzUgMS44MTFIMTZhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMS0xIDFoLTRhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV0sSk50PVtbInBhdGgiLHtkOiJNOSAxM2ExIDEgMCAwIDAtMS0xSDUuMDYxYTEgMSAwIDAgMS0uNzUtMS44MTFsNi44MzYtNi44MzVhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDcgMGw2LjgzNSA2LjgzNWExIDEgMCAwIDEtLjc1IDEuODExSDE2YTEgMSAwIDAgMC0xIDF2NmExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF6In1dXSxLTnQ9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInJlY3QiLHt4OiIxNSIseToiNCIsd2lkdGg6IjQiLGhlaWdodDoiNiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDIwdi02aC0yIn1dLFsicGF0aCIse2Q6Ik0xNSAyMGg0In1dXSxlRnQ9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTBWNGgtMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTBoNCJ9XSxbInJlY3QiLHt4OiIxNSIseToiMTQiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ5OiIyIn1dXSxiRT1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0yMCA4aC01In1dLFsicGF0aCIse2Q6Ik0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAifV0sWyJwYXRoIix7ZDoiTTE1IDE0aDVsLTUgNmg1In1dXSx0RnQ9W1sicGF0aCIse2Q6Ik0xOSAzSDUifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjcifV0sWyJwYXRoIix7ZDoibTYgMTUgNiA2IDYtNiJ9XV0sckZ0PVtbInBhdGgiLHtkOiJNMTcgNyA3IDE3In1dLFsicGF0aCIse2Q6Ik0xNyAxN0g3VjcifV1dLGlGdD1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0xMSA0aDQifV0sWyJwYXRoIix7ZDoiTTExIDhoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJoMTAifV1dLGFGdD1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMCJ9XSxbInBhdGgiLHtkOiJNMTcgN3YxMEg3In1dXSxuRnQ9W1sicGF0aCIse2Q6Ik0xMiAydjE0In1dLFsicGF0aCIse2Q6Im0xOSA5LTcgNy03LTcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMSIscjoiMSJ9XV0sb0Z0PVtbInBhdGgiLHtkOiJNMTIgMTdWMyJ9XSxbInBhdGgiLHtkOiJtNiAxMSA2IDYgNi02In1dLFsicGF0aCIse2Q6Ik0xOSAyMUg1In1dXSxzRnQ9W1sicGF0aCIse2Q6Im0zIDE2IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoiTTcgMjBWNCJ9XSxbInBhdGgiLHtkOiJtMjEgOC00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xNyA0djE2In1dXSx2RT1bWyJwYXRoIix7ZDoibTMgMTYgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNNyAyMFY0In1dLFsicGF0aCIse2Q6Ik0xMSA0aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSA4aDcifV0sWyJwYXRoIix7ZDoiTTExIDEyaDQifV1dLHhFPVtbInBhdGgiLHtkOiJtMyAxNiA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE1IDRoNWwtNSA2aDUifV0sWyJwYXRoIix7ZDoiTTE1IDIwdi0zLjVhMi41IDIuNSAwIDAgMSA1IDBWMjAifV0sWyJwYXRoIix7ZDoiTTIwIDE4aC01In1dXSxsRnQ9W1sicGF0aCIse2Q6Ik0xMiA1djE0In1dLFsicGF0aCIse2Q6Im0xOSAxMi03IDctNy03In1dXSxjRnQ9W1sicGF0aCIse2Q6Im05IDYtNiA2IDYgNiJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWNSJ9XV0sZEZ0PVtbInBhdGgiLHtkOiJNOCAzIDQgN2w0IDQifV0sWyJwYXRoIix7ZDoiTTQgN2gxNiJ9XSxbInBhdGgiLHtkOiJtMTYgMjEgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNMjAgMTdINCJ9XV0sdUZ0PVtbInBhdGgiLHtkOiJNMyAxOVY1In1dLFsicGF0aCIse2Q6Im0xMyA2LTYgNiA2IDYifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTQifV1dLHBGdD1bWyJwYXRoIix7ZDoibTEyIDE5LTctNyA3LTcifV0sWyJwYXRoIix7ZDoiTTE5IDEySDUifV1dLGhGdD1bWyJwYXRoIix7ZDoiTTMgNXYxNCJ9XSxbInBhdGgiLHtkOiJNMjEgMTJINyJ9XSxbInBhdGgiLHtkOiJtMTUgMTggNi02LTYtNiJ9XV0sZkZ0PVtbInBhdGgiLHtkOiJtMTYgMyA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yMCA3SDQifV0sWyJwYXRoIix7ZDoibTggMjEtNC00IDQtNCJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV0sbUZ0PVtbInBhdGgiLHtkOiJNMTcgMTJIMyJ9XSxbInBhdGgiLHtkOiJtMTEgMTggNi02LTYtNiJ9XSxbInBhdGgiLHtkOiJNMjEgNXYxNCJ9XV0sZ0Z0PVtbInBhdGgiLHtkOiJNNSAxMmgxNCJ9XSxbInBhdGgiLHtkOiJtMTIgNSA3IDctNyA3In1dXSxiRnQ9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicmVjdCIse3g6IjE1Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTcgMjB2LTZoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDIwaDQifV1dLHZGdD1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE3IDEwVjRoLTIifV0sWyJwYXRoIix7ZDoiTTE1IDEwaDQifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeToiMiJ9XV0seUU9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0yMCA4aC01In1dLFsicGF0aCIse2Q6Ik0xNSAxMFY2LjVhMi41IDIuNSAwIDAgMSA1IDBWMTAifV0sWyJwYXRoIix7ZDoiTTE1IDE0aDVsLTUgNmg1In1dXSx4RnQ9W1sicGF0aCIse2Q6Im0yMSAxNi00IDQtNC00In1dLFsicGF0aCIse2Q6Ik0xNyAyMFY0In1dLFsicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dXSx5RnQ9W1sicGF0aCIse2Q6Im01IDkgNy03IDcgNyJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjIxIixyOiIxIn1dXSx3RnQ9W1sicGF0aCIse2Q6Im0xOCA5LTYtNi02IDYifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTQifV0sWyJwYXRoIix7ZDoiTTUgMjFoMTQifV1dLE1GdD1bWyJwYXRoIix7ZDoiTTcgMTdWN2gxMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTcgNyA3In1dXSx3RT1bWyJwYXRoIix7ZDoibTMgOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik03IDR2MTYifV0sWyJwYXRoIix7ZDoiTTExIDEyaDQifV0sWyJwYXRoIix7ZDoiTTExIDE2aDcifV0sWyJwYXRoIix7ZDoiTTExIDIwaDEwIn1dXSxrRnQ9W1sicGF0aCIse2Q6Ik03IDdoMTB2MTAifV0sWyJwYXRoIix7ZDoiTTcgMTcgMTcgNyJ9XV0sU0Z0PVtbInBhdGgiLHtkOiJNNSAzaDE0In1dLFsicGF0aCIse2Q6Im0xOCAxMy02LTYtNiA2In1dLFsicGF0aCIse2Q6Ik0xMiA3djE0In1dXSx6RnQ9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTZoNyJ9XSxbInBhdGgiLHtkOiJNMTEgMjBoNCJ9XV0sTUU9W1sicGF0aCIse2Q6Im0zIDggNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNNyA0djE2In1dLFsicGF0aCIse2Q6Ik0xNSA0aDVsLTUgNmg1In1dLFsicGF0aCIse2Q6Ik0xNSAyMHYtMy41YTIuNSAyLjUgMCAwIDEgNSAwVjIwIn1dLFsicGF0aCIse2Q6Ik0yMCAxOGgtNSJ9XV0sQ0Z0PVtbInBhdGgiLHtkOiJtNSAxMiA3LTcgNyA3In1dLFsicGF0aCIse2Q6Ik0xMiAxOVY1In1dXSxURnQ9W1sicGF0aCIse2Q6Im00IDYgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJNNyAxN1YzIn1dLFsicGF0aCIse2Q6Im0xNCA2IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE3VjMifV0sWyJwYXRoIix7ZDoiTTQgMjFoMTYifV1dLF9GdD1bWyJwYXRoIix7ZDoiTTEyIDZ2MTIifV0sWyJwYXRoIix7ZDoiTTE3LjE5NiA5IDYuODA0IDE1In1dLFsicGF0aCIse2Q6Im02LjgwNCA5IDEwLjM5MiA2In1dXSxMRnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE2IDh2NWEzIDMgMCAwIDAgNiAwdi0xYTEwIDEwIDAgMSAwLTQgOCJ9XV0sQUZ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsicGF0aCIse2Q6Ik0yMC4yIDIwLjJjMi4wNC0yLjAzLjAyLTcuMzYtNC41LTExLjktNC41NC00LjUyLTkuODctNi41NC0xMS45LTQuNS0yLjA0IDIuMDMtLjAyIDcuMzYgNC41IDExLjkgNC41NCA0LjUyIDkuODcgNi41NCAxMS45IDQuNVoifV0sWyJwYXRoIix7ZDoiTTE1LjcgMTUuN2M0LjUyLTQuNTQgNi41NC05Ljg3IDQuNS0xMS45LTIuMDMtMi4wNC03LjM2LS4wMi0xMS45IDQuNS00LjUyIDQuNTQtNi41NCA5Ljg3LTQuNSAxMS45IDIuMDMgMi4wNCA3LjM2LjAyIDExLjktNC41WiJ9XV0sREZ0PVtbInBhdGgiLHtkOiJNMiAxMHYzIn1dLFsicGF0aCIse2Q6Ik02IDZ2MTEifV0sWyJwYXRoIix7ZDoiTTEwIDN2MTgifV0sWyJwYXRoIix7ZDoiTTE0IDh2NyJ9XSxbInBhdGgiLHtkOiJNMTggNXYxMyJ9XSxbInBhdGgiLHtkOiJNMjIgMTB2MyJ9XV0sRUZ0PVtbInBhdGgiLHtkOiJNMiAxM2EyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwVjRhMiAyIDAgMCAxIDQgMHYxM2EyIDIgMCAwIDAgNCAwdi00YTIgMiAwIDAgMSAyLTIifV1dLCRGdD1bWyJwYXRoIix7ZDoibTE1LjQ3NyAxMi44OSAxLjUxNSA4LjUyNmEuNS41IDAgMCAxLS44MS40N2wtMy41OC0yLjY4N2ExIDEgMCAwIDAtMS4xOTcgMGwtMy41ODYgMi42ODZhLjUuNSAwIDAgMS0uODEtLjQ2OWwxLjUxNC04LjUyNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjYifV1dLElGdD1bWyJwYXRoIix7ZDoibTE0IDEyLTguMzgxIDguMzhhMSAxIDAgMCAxLTMuMDAxLTNMMTEgOSJ9XSxbInBhdGgiLHtkOiJNMTUgMTUuNWEuNS41IDAgMCAwIC41LjVBNi41IDYuNSAwIDAgMCAyMiA5LjVhLjUuNSAwIDAgMC0uNS0uNWgtMS42NzJhMiAyIDAgMCAxLTEuNDE0LS41ODZsLTUuMDYyLTUuMDYyYTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBMOS4zNTIgNS42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNGw1LjA2MiA1LjA2MkEyIDIgMCAwIDEgMTUgMTMuODI4eiJ9XV0sa0U9W1sicGF0aCIse2Q6Ik0xMy41IDEwLjUgMTUgOSJ9XSxbInBhdGgiLHtkOiJNNCA0djE1YTEgMSAwIDAgMCAxIDFoMTUifV0sWyJwYXRoIix7ZDoiTTQuMjkzIDE5LjcwNyA2IDE4In1dLFsicGF0aCIse2Q6Im05IDE1IDEuNS0xLjUifV1dLFBGdD1bWyJwYXRoIix7ZDoiTTQgMTBhNCA0IDAgMCAxIDQtNGg4YTQgNCAwIDAgMSA0IDR2MTBhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ6In1dLFsicGF0aCIse2Q6Ik04IDEwaDgifV0sWyJwYXRoIix7ZDoiTTggMThoOCJ9XSxbInBhdGgiLHtkOiJNOCAyMnYtNmEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnY2In1dLFsicGF0aCIse2Q6Ik05IDZWNGEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDIgMnYyIn1dXSxORnQ9W1sicGF0aCIse2Q6Ik0xMCAxNmMuNS4zIDEuMi41IDIgLjVzMS41LS4yIDItLjUifV0sWyJwYXRoIix7ZDoiTTE1IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTkuMzggNi44MTNBOSA5IDAgMCAxIDIwLjggMTAuMmEyIDIgMCAwIDEgMCAzLjYgOSA5IDAgMCAxLTE3LjYgMCAyIDIgMCAwIDEgMC0zLjZBOSA5IDAgMCAxIDEyIDNjMiAwIDMuNSAxLjEgMy41IDIuNXMtLjkgMi41LTIgMi41Yy0uOCAwLTEuNS0uNC0xLjUtMSJ9XSxbInBhdGgiLHtkOiJNOSAxMmguMDEifV1dLEZGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyLjAxIix5MToiMTYiLHkyOiIxNiJ9XV0sT0Z0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE1LjQgMTBhNCA0IDAgMSAwIDAgNCJ9XV0sU0U9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJtOSAxMiAyIDIgNC00In1dXSxSRnQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJNOCA4aDgifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJtMTMgMTctNS0xaDFhNCA0IDAgMCAwIDAtOCJ9XV0sQkZ0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XV0sSEZ0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJwYXRoIix7ZDoiTTcgMTJoNSJ9XSxbInBhdGgiLHtkOiJNMTUgOS40YTQgNCAwIDEgMCAwIDUuMiJ9XV0scUZ0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyLjAxIix5MToiOCIseTI6IjgifV1dLGpGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Im05IDggMyAzdjcifV0sWyJwYXRoIix7ZDoibTEyIDExIDMtMyJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dLFsicGF0aCIse2Q6Ik05IDE2aDYifV1dLFZGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIxMiIseTI6IjEyIn1dXSxVRnQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XSxbInBhdGgiLHtkOiJtMTUgOS02IDYifV0sWyJwYXRoIix7ZDoiTTkgOWguMDEifV0sWyJwYXRoIix7ZDoiTTE1IDE1aC4wMSJ9XV0sV0Z0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiMTYifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dLEdGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik04IDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDE2VjkuNWEyLjUgMi41IDAgMCAxIDUgMCJ9XSxbInBhdGgiLHtkOiJNOCAxNmg3In1dXSx6RT1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE3Iix5MjoiMTcifV1dLFlGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik05IDE2aDUifV0sWyJwYXRoIix7ZDoiTTkgMTJoNWEyIDIgMCAxIDAgMC00aC0zdjkifV1dLFpGdD1bWyJwYXRoIix7ZDoiTTMuODUgOC42MmE0IDQgMCAwIDEgNC43OC00Ljc3IDQgNCAwIDAgMSA2Ljc0IDAgNCA0IDAgMCAxIDQuNzggNC43OCA0IDQgMCAwIDEgMCA2Ljc0IDQgNCAwIDAgMS00Ljc3IDQuNzggNCA0IDAgMCAxLTYuNzUgMCA0IDQgMCAwIDEtNC43OC00Ljc3IDQgNCAwIDAgMSAwLTYuNzZaIn1dLFsicGF0aCIse2Q6Ik0xMSAxN1Y4aDQifV0sWyJwYXRoIix7ZDoiTTExIDEyaDMifV0sWyJwYXRoIix7ZDoiTTkgMTZoNCJ9XV0sWEZ0PVtbInBhdGgiLHtkOiJNMTEgN3YxMGE1IDUgMCAwIDAgNS01In1dLFsicGF0aCIse2Q6Im0xNSA4LTYgMyJ9XSxbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NiJ9XV0sUUZ0PVtbInBhdGgiLHtkOiJNMy44NSA4LjYyYTQgNCAwIDAgMSA0Ljc4LTQuNzcgNCA0IDAgMCAxIDYuNzQgMCA0IDQgMCAwIDEgNC43OCA0Ljc4IDQgNCAwIDAgMSAwIDYuNzQgNCA0IDAgMCAxLTQuNzcgNC43OCA0IDQgMCAwIDEtNi43NSAwIDQgNCAwIDAgMS00Ljc4LTQuNzcgNCA0IDAgMCAxIDAtNi43NloifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiOSIseTE6IjkiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjE1Iix5MToiOSIseTI6IjE1In1dXSxKRnQ9W1sicGF0aCIse2Q6Ik0zLjg1IDguNjJhNCA0IDAgMCAxIDQuNzgtNC43NyA0IDQgMCAwIDEgNi43NCAwIDQgNCAwIDAgMSA0Ljc4IDQuNzggNCA0IDAgMCAxIDAgNi43NCA0IDQgMCAwIDEtNC43NyA0Ljc4IDQgNCAwIDAgMS02Ljc1IDAgNCA0IDAgMCAxLTQuNzgtNC43NyA0IDQgMCAwIDEgMC02Ljc2WiJ9XV0sS0Z0PVtbInBhdGgiLHtkOiJNMjIgMThINmEyIDIgMCAwIDEtMi0yVjdhMiAyIDAgMCAwLTItMiJ9XSxbInBhdGgiLHtkOiJNMTcgMTRWNGEyIDIgMCAwIDAtMi0yaC0xYTIgMiAwIDAgMC0yIDJ2MTAifV0sWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjgiLHg6IjgiLHk6IjYiLHJ4OiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMjAiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjIwIixyOiIyIn1dXSxlT3Q9W1sicGF0aCIse2Q6Ik0xMiAxNnYxYTIgMiAwIDAgMCAyIDJoMWEyIDIgMCAwIDEgMiAydjEifV0sWyJwYXRoIix7ZDoiTTEyIDZhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTggOGMwIDQtMy41IDgtNiA4cy02LTQtNi04YTYgNiAwIDAgMSAxMiAwIn1dXSx0T3Q9W1sicGF0aCIse2Q6Ik00LjkyOSA0LjkyOSAxOS4wNyAxOS4wNzEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHJPdD1bWyJwYXRoIix7ZDoiTTQgMTNjMy41LTIgOC0yIDEwIDJhNS41IDUuNSAwIDAgMSA4IDUifV0sWyJwYXRoIix7ZDoiTTUuMTUgMTcuODljNS41Mi0xLjUyIDguNjUtNi44OSA3LTEyQzExLjU1IDQgMTEuNSAyIDEzIDJjMy4yMiAwIDUgNS41IDUgOCAwIDYuNS00LjIgMTItMTAuNDkgMTJDNS4xMSAyMiAyIDIyIDIgMjBjMC0xLjUgMS4xNC0xLjU1IDMuMTUtMi4xMVoifV1dLGlPdD1bWyJwYXRoIix7ZDoiTTEwIDEwLjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTQuMDFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxMC4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDE0LjAxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggNnYxMiJ9XSxbInBhdGgiLHtkOiJNNiA2djEyIn1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxMiIscng6IjIifV1dLGFPdD1bWyJwYXRoIix7ZDoiTTEyIDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1In1dLFsicGF0aCIse2Q6Im0xNiAxOSAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLG5PdD1bWyJwYXRoIix7ZDoiTTEyIDE4SDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE5IDIydi02In1dLFsicGF0aCIse2Q6Im0yMiAxOS0zLTMtMyAzIn1dLFsicGF0aCIse2Q6Ik02IDEyaC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXSxvT3Q9W1sicGF0aCIse2Q6Ik0xMyAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NSJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNSA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoibTIyIDE3LTUgNSJ9XSxbInBhdGgiLHtkOiJNNiAxMmguMDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV0sc090PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxTTE4IDEyaC4wMSJ9XV0sbE90PVtbInBhdGgiLHtkOiJNMyA1djE0In1dLFsicGF0aCIse2Q6Ik04IDV2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDV2MTQifV0sWyJwYXRoIix7ZDoiTTE3IDV2MTQifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTQifV1dLGNPdD1bWyJwYXRoIix7ZDoiTTEwIDNhNDEgNDEgMCAwIDAgMCAxOCJ9XSxbInBhdGgiLHtkOiJNMTQgM2E0MSA0MSAwIDAgMSAwIDE4In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAxLjY4LjkyIDE1LjI1IDE1LjI1IDAgMCAxIDAgMTYuMTZBMiAyIDAgMCAxIDE3IDIxSDdhMiAyIDAgMCAxLTEuNjgtLjkyIDE1LjI1IDE1LjI1IDAgMCAxIDAtMTYuMTZBMiAyIDAgMCAxIDcgM3oifV0sWyJwYXRoIix7ZDoiTTMuODQgMTdoMTYuMzIifV0sWyJwYXRoIix7ZDoiTTMuODQgN2gxNi4zMiJ9XV0sZE90PVtbInBhdGgiLHtkOiJNNCAyMGgxNiJ9XSxbInBhdGgiLHtkOiJtNiAxNiA2LTEyIDYgMTIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV0sdU90PVtbInBhdGgiLHtkOiJNMTAgNCA4IDYifV0sWyJwYXRoIix7ZDoiTTE3IDE5djIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XSxbInBhdGgiLHtkOiJNOSA1IDcuNjIxIDMuNjIxQTIuMTIxIDIuMTIxIDAgMCAwIDQgNXYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTUifV1dLHBPdD1bWyJwYXRoIix7ZDoibTExIDctMyA1aDRsLTMgNSJ9XSxbInBhdGgiLHtkOiJNMTQuODU2IDZIMTZhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJoLTIuOTM1In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNS4xNCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIuOTM2In1dXSxoT3Q9W1sicGF0aCIse2Q6Ik0xMCAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMHY0In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNiAxMHY0In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dLGZPdD1bWyJwYXRoIix7ZDoiTTIyIDE0di00In1dLFsicGF0aCIse2Q6Ik02IDE0di00In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMiIscng6IjIifV1dLG1PdD1bWyJwYXRoIix7ZDoiTTEwIDE0di00In1dLFsicGF0aCIse2Q6Ik0yMiAxNHYtNCJ9XSxbInBhdGgiLHtkOiJNNiAxNHYtNCJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSxnT3Q9W1sicGF0aCIse2Q6Ik0xMCA5djYifV0sWyJwYXRoIix7ZDoiTTEyLjU0MyA2SDE2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0zLjYwNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTcgMTJoNiJ9XSxbInBhdGgiLHtkOiJNNy42MDYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgzLjYwNiJ9XV0sYk90PVtbInBhdGgiLHtkOiJNMTAgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMCA3djYifV0sWyJwYXRoIix7ZDoiTTE0IDZoMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2LTQifV0sWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgyIn1dXSx2T3Q9W1sicGF0aCIse2Q6Ik0gMjIgMTQgTCAyMiAxMCJ9XSxbInJlY3QiLHt4OiIyIix5OiI2Iix3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSx4T3Q9W1sicGF0aCIse2Q6Ik00LjUgM2gxNSJ9XSxbInBhdGgiLHtkOiJNNiAzdjE2YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjMifV0sWyJwYXRoIix7ZDoiTTYgMTRoMTIifV1dLHlPdD1bWyJwYXRoIix7ZDoiTTkgOWMtLjY0LjY0LTEuNTIxLjk1NC0yLjQwMiAxLjE2NUE2IDYgMCAwIDAgOCAyMmExMy45NiAxMy45NiAwIDAgMCA5LjktNC4xIn1dLFsicGF0aCIse2Q6Ik0xMC43NSA1LjA5M0E2IDYgMCAwIDEgMjIgOGMwIDIuNDExLS42MSA0LjY4LTEuNjgzIDYuNjYifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDAgMCA2LjQ4NyAxLjIwOE0xMC42MiA1LjM0MWE0LjAxNSA0LjAxNSAwIDAgMSAyLjAzOSAyLjA0In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dLHdPdD1bWyJwYXRoIix7ZDoiTTEwLjE2NSA2LjU5OEM5Ljk1NCA3LjQ3OCA5LjY0IDguMzYgOSA5Yy0uNjQuNjQtMS41MjEuOTU0LTIuNDAyIDEuMTY1QTYgNiAwIDAgMCA4IDIyYzcuNzMyIDAgMTQtNi4yNjggMTQtMTRhNiA2IDAgMCAwLTExLjgzNS0xLjQwMloifV0sWyJwYXRoIix7ZDoiTTUuMzQxIDEwLjYyYTQgNCAwIDEgMCA1LjI3OS01LjI4In1dXSxNT3Q9W1sicGF0aCIse2Q6Ik0yIDIwdi04YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY4In1dLFsicGF0aCIse2Q6Ik00IDEwVjZhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjQifV0sWyJwYXRoIix7ZDoiTTEyIDR2NiJ9XSxbInBhdGgiLHtkOiJNMiAxOGgyMCJ9XV0sa090PVtbInBhdGgiLHtkOiJNMyAyMHYtOGEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2OCJ9XSxbInBhdGgiLHtkOiJNNSAxMFY2YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDE4aDE4In1dXSxTT3Q9W1sicGF0aCIse2Q6Ik0yIDR2MTYifV0sWyJwYXRoIix7ZDoiTTIgOGgxOGEyIDIgMCAwIDEgMiAydjEwIn1dLFsicGF0aCIse2Q6Ik0yIDE3aDIwIn1dLFsicGF0aCIse2Q6Ik02IDh2OSJ9XV0sek90PVtbInBhdGgiLHtkOiJNMTYuNCAxMy43QTYuNSA2LjUgMCAxIDAgNi4yOCA2LjZjLTEuMSAzLjEzLS43OCAzLjktMy4xOCA2LjA4QTMgMyAwIDAgMCA1IDE4YzQgMCA4LjQtMS44IDExLjQtNC4zIn1dLFsicGF0aCIse2Q6Im0xOC41IDYgMi4xOSA0LjVhNi40OCA2LjQ4IDAgMCAxLTIuMjkgNy4yQzE1LjQgMjAuMiAxMSAyMiA3IDIyYTMgMyAwIDAgMS0yLjY4LTEuNjZMMi40IDE2LjUifV0sWyJjaXJjbGUiLHtjeDoiMTIuNSIsY3k6IjguNSIscjoiMi41In1dXSxDT3Q9W1sicGF0aCIse2Q6Ik0xMyAxM3Y1In1dLFsicGF0aCIse2Q6Ik0xNyAxMS40N1Y4In1dLFsicGF0aCIse2Q6Ik0xNyAxMWgxYTMgMyAwIDAgMSAyLjc0NSA0LjIxMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik01IDh2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTcuNTM2IDcuNTM1QzYuNzY2IDcuNjQ5IDYuMTU0IDggNS41IDhhMi41IDIuNSAwIDAgMS0xLjc2OC00LjI2OCJ9XSxbInBhdGgiLHtkOiJNOC43MjcgMy4yMDRDOS4zMDYgMi43NjcgOS44ODUgMiAxMSAyYzEuNTYgMCAyIDEuNSAzIDEuNXMxLjcyLS41IDIuNS0uNWExIDEgMCAxIDEgMCA1Yy0uNzggMC0xLjUtLjUtMi41LS41YTMuMTQ5IDMuMTQ5IDAgMCAwLS44NDIuMTIifV0sWyJwYXRoIix7ZDoiTTkgMTQuNlYxOCJ9XV0sVE90PVtbInBhdGgiLHtkOiJNMTcgMTFoMWEzIDMgMCAwIDEgMCA2aC0xIn1dLFsicGF0aCIse2Q6Ik05IDEydjYifV0sWyJwYXRoIix7ZDoiTTEzIDEydjYifV0sWyJwYXRoIix7ZDoiTTE0IDcuNWMtMSAwLTEuNDQuNS0zIC41cy0yLS41LTMtLjUtMS43Mi41LTIuNS41YTIuNSAyLjUgMCAwIDEgMC01Yy43OCAwIDEuNTcuNSAyLjUuNVM5LjQ0IDIgMTEgMnMyIDEuNSAzIDEuNSAxLjcyLS41IDIuNS0uNWEyLjUgMi41IDAgMCAxIDAgNWMtLjc4IDAtMS41LS41LTIuNS0uNVoifV0sWyJwYXRoIix7ZDoiTTUgOHYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4In1dXSxfT3Q9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTExLjY4IDIuMDA5QTYgNiAwIDAgMCA2IDhjMCA0LjQ5OS0xLjQxMSA1Ljk1Ni0yLjczOCA3LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczYy0uODI0LS44NS0xLjY3OC0xLjczMS0yLjIxLTMuMzQ4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV0sTE90PVtbInBhdGgiLHtkOiJNMTguNTE4IDE3LjM0N0E3IDcgMCAwIDEgMTQgMTkifV0sWyJwYXRoIix7ZDoiTTE4LjggNEExMSAxMSAwIDAgMSAyMCA5In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTYiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjcifV0sWyJyZWN0Iix7eDoiNCIseToiMTYiLHdpZHRoOiIxMCIsaGVpZ2h0OiI2IixyeDoiMiJ9XV0sQU90PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNSA4aDYifV0sWyJwYXRoIix7ZDoiTTE2LjI0MyAzLjc1N0E2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0E5LjQgOS40IDAgMCAxIDE4LjY2NyAxMiJ9XV0sRE90PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0xNyAxN0g0YTEgMSAwIDAgMS0uNzQtMS42NzNDNC41OSAxMy45NTYgNiAxMi40OTkgNiA4YTYgNiAwIDAgMSAuMjU4LTEuNzQyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTguNjY4IDMuMDFBNiA2IDAgMCAxIDE4IDhjMCAyLjY4Ny43NyA0LjY1MyAxLjcwNyA2LjA1In1dXSxFT3Q9W1sicGF0aCIse2Q6Ik0xMC4yNjggMjFhMiAyIDAgMCAwIDMuNDY0IDAifV0sWyJwYXRoIix7ZDoiTTE1IDhoNiJ9XSxbInBhdGgiLHtkOiJNMTggNXY2In1dLFsicGF0aCIse2Q6Ik0yMC4wMDIgMTQuNDY0YTkgOSAwIDAgMCAuNzM4Ljg2M0ExIDEgMCAwIDEgMjAgMTdINGExIDEgMCAwIDEtLjc0LTEuNjczQzQuNTkgMTMuOTU2IDYgMTIuNDk5IDYgOGE2IDYgMCAwIDEgOC43NS01LjMzMiJ9XV0sJE90PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi4zLS44LTQuMy0yLTYifV0sWyJwYXRoIix7ZDoiTTMuMjYyIDE1LjMyNkExIDEgMCAwIDAgNCAxN2gxNmExIDEgMCAwIDAgLjc0LTEuNjczQzE5LjQxIDEzLjk1NiAxOCAxMi40OTkgMTggOEE2IDYgMCAwIDAgNiA4YzAgNC40OTktMS40MTEgNS45NTYtMi43MzggNy4zMjYifV0sWyJwYXRoIix7ZDoiTTQgMkMyLjggMy43IDIgNS43IDIgOCJ9XV0sSU90PVtbInBhdGgiLHtkOiJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIn1dLFsicGF0aCIse2Q6Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2In1dXSxDRT1bWyJyZWN0Iix7d2lkdGg6IjEzIixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im0yMiAxNS0zLTMgMy0zIn1dLFsicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV1dLFRFPVtbInJlY3QiLHt3aWR0aDoiMTMiLGhlaWdodDoiNyIseDoiOCIseToiMyIscng6IjEifV0sWyJwYXRoIix7ZDoibTIgOSAzIDMtMyAzIn1dLFsicmVjdCIse3dpZHRoOiIxMyIsaGVpZ2h0OiI3Iix4OiI4Iix5OiIxNCIscng6IjEifV1dLFBPdD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Im05IDIyIDMtMyAzIDMifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiMTMiLHg6IjE0Iix5OiIzIixyeDoiMSJ9XV0sTk90PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMyIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxMyIseDoiMTQiLHk6IjgiLHJ4OiIxIn1dXSxGT3Q9W1sicGF0aCIse2Q6Ik0xMi40MDkgMTMuMDE3QTUgNSAwIDAgMSAyMiAxNWMwIDMuODY2LTQgNy05IDctNC4wNzcgMC04LjE1My0uODItMTAuMzcxLTIuNDYyLS40MjYtLjMxNi0uNjMxLS44MzItLjYyLTEuMzYyQzIuMTE4IDEyLjcyMyAyLjYyNyAyIDEwIDJhMyAzIDAgMCAxIDMgMyAyIDIgMCAwIDEtMiAyYy0xLjEwNSAwLTEuNjQtLjQ0NC0yLTEifV0sWyJwYXRoIix7ZDoiTTE1IDE0YTUgNSAwIDAgMC03LjU4NCAyIn1dLFsicGF0aCIse2Q6Ik05Ljk2NCA2LjgyNUM4LjAxOSA3Ljk3NyA5LjUgMTMgOCAxNSJ9XV0sT090PVtbImNpcmNsZSIse2N4OiIxOC41IixjeToiMTcuNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjUuNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjUiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTEyIDE3LjVWMTRsLTMtMyA0LTMgMiAzaDIifV1dLFJPdD1bWyJyZWN0Iix7eDoiMTQiLHk6IjE0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI2Iix5OiI0Iix3aWR0aDoiNCIsaGVpZ2h0OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAyMGg0In1dLFsicGF0aCIse2Q6Ik0xNCAxMGg0In1dLFsicGF0aCIse2Q6Ik02IDE0aDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTQgNGgydjYifV1dLEJPdD1bWyJwYXRoIix7ZDoiTTEwIDEwaDQifV0sWyJwYXRoIix7ZDoiTTE5IDdWNGExIDEgMCAwIDAtMS0xaC0yYTEgMSAwIDAgMC0xIDF2MyJ9XSxbInBhdGgiLHtkOiJNMjAgMjFhMiAyIDAgMCAwIDItMnYtMy44NTFjMC0xLjM5LTItMi45NjItMi00LjgyOVY4YTEgMSAwIDAgMC0xLTFoLTRhMSAxIDAgMCAwLTEgMXYxMWEyIDIgMCAwIDAgMiAyeiJ9XSxbInBhdGgiLHtkOiJNIDIyIDE2IEwgMiAxNiJ9XSxbInBhdGgiLHtkOiJNNCAyMWEyIDIgMCAwIDEtMi0ydi0zLjg1MWMwLTEuMzkgMi0yLjk2MiAyLTQuODI5VjhhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MTFhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTkgN1Y0YTEgMSAwIDAgMC0xLTFINmExIDEgMCAwIDAtMSAxdjMifV1dLEhPdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMS45IixyOiIyIn1dLFsicGF0aCIse2Q6Ik02LjcgMy40Yy0uOSAyLjUgMCA1LjIgMi4yIDYuN0M2LjUgOSAzLjcgOS42IDIgMTEuNiJ9XSxbInBhdGgiLHtkOiJtOC45IDEwLjEgMS40LjgifV0sWyJwYXRoIix7ZDoiTTE3LjMgMy40Yy45IDIuNSAwIDUuMi0yLjIgNi43IDIuNC0xLjIgNS4yLS42IDYuOSAxLjUifV0sWyJwYXRoIix7ZDoibTE1LjEgMTAuMS0xLjQuOCJ9XSxbInBhdGgiLHtkOiJNMTYuNyAyMC44Yy0yLjYtLjQtNC42LTIuNi00LjctNS4zLS4yIDIuNi0yLjEgNC44LTQuNyA1LjIifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjl2MS42In1dLFsicGF0aCIse2Q6Ik0xMy41IDUuNGMtMS0uMi0yLS4yLTMgMCJ9XSxbInBhdGgiLHtkOiJNMTcgMTYuNGMuNy0uNyAxLjItMS42IDEuNS0yLjUifV0sWyJwYXRoIix7ZDoiTTUuNSAxMy45Yy4zLjkuOCAxLjggMS41IDIuNSJ9XV0scU90PVtbInBhdGgiLHtkOiJNMTYgN2guMDEifV0sWyJwYXRoIix7ZDoiTTMuNCAxOEgxMmE4IDggMCAwIDAgOC04VjdhNCA0IDAgMCAwLTcuMjgtMi4zTDIgMjAifV0sWyJwYXRoIix7ZDoibTIwIDcgMiAuNS0yIC41In1dLFsicGF0aCIse2Q6Ik0xMCAxOHYzIn1dLFsicGF0aCIse2Q6Ik0xNCAxNy43NVYyMSJ9XSxbInBhdGgiLHtkOiJNNyAxOGE2IDYgMCAwIDAgMy44NC0xMC42MSJ9XV0sak90PVtbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJtMTcgMTggMS45NTYtMTEuNDY4In1dLFsicGF0aCIse2Q6Im0zIDggNy44Mi01LjYxNWEyIDIgMCAwIDEgMi4zNiAwTDIxIDgifV0sWyJwYXRoIix7ZDoiTTQgMThoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTggNS4wNDQgNi41MzIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMiJ9XV0sVk90PVtbInBhdGgiLHtkOiJNMTEuNzY3IDE5LjA4OWM0LjkyNC44NjggNi4xNC02LjAyNSAxLjIxNi02Ljg5NG0tMS4yMTYgNi44OTRMNS44NiAxOC4wNDdtNS45MDggMS4wNDItLjM0NyAxLjk3bTEuNTYzLTguODY0YzQuOTI0Ljg2OSA2LjE0LTYuMDI1IDEuMjE1LTYuODkzbS0xLjIxNSA2Ljg5My0zLjk0LS42OTRtNS4xNTUtNi4yTDguMjkgNC4yNm01LjkwOCAxLjA0Mi4zNDgtMS45N003LjQ4IDIwLjM2NGwzLjEyNi0xNy43MjcifV1dLFVPdD1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjcifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxNSIscjoiNyJ9XV0sV090PVtbInBhdGgiLHtkOiJNMyAzaDE4In1dLFsicGF0aCIse2Q6Ik0yMCA3SDgifV0sWyJwYXRoIix7ZDoiTTIwIDExSDgifV0sWyJwYXRoIix7ZDoiTTEwIDE5aDEwIn1dLFsicGF0aCIse2Q6Ik04IDE1aDEyIn1dLFsicGF0aCIse2Q6Ik00IDN2MTQifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE5IixyOiIyIn1dXSxHT3Q9W1sicGF0aCIse2Q6Im03IDcgMTAgMTAtNSA1VjJsNSA1TDcgMTcifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMjEiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIzIix4MjoiNiIseTE6IjEyIix5MjoiMTIifV1dLFlPdD1bWyJwYXRoIix7ZDoiTTEwIDIyVjdhMSAxIDAgMCAwLTEtMUg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi01YTEgMSAwIDAgMC0xLTFIMiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dLFpPdD1bWyJwYXRoIix7ZDoibTE3IDE3LTUgNVYxMmwtNSA1In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTE0LjUgOS41IDE3IDdsLTUtNXY0LjUifV1dLFhPdD1bWyJwYXRoIix7ZDoibTcgNyAxMCAxMC01IDVWMmw1IDVMNyAxNyJ9XSxbInBhdGgiLHtkOiJNMjAuODMgMTQuODNhNCA0IDAgMCAwIDAtNS42NiJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dXSxRT3Q9W1sicGF0aCIse2Q6Ik02IDEyaDlhNCA0IDAgMCAxIDAgOEg3YTEgMSAwIDAgMS0xLTFWNWExIDEgMCAwIDEgMS0xaDdhNCA0IDAgMCAxIDAgOCJ9XV0sSk90PVtbInBhdGgiLHtkOiJtNyA3IDEwIDEwLTUgNVYybDUgNUw3IDE3In1dXSxLT3Q9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTMiLHI6IjkifV0sWyJwYXRoIix7ZDoiTTE0LjM1IDQuNjUgMTYuMyAyLjdhMi40MSAyLjQxIDAgMCAxIDMuNCAwbDEuNiAxLjZhMi40IDIuNCAwIDAgMSAwIDMuNGwtMS45NSAxLjk1In1dLFsicGF0aCIse2Q6Im0yMiAyLTEuNSAxLjUifV1dLGVSdD1bWyJwYXRoIix7ZDoiTTIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dXSx0UnQ9W1sicGF0aCIse2Q6Ik0xNyAxMGMuNy0uNyAxLjY5IDAgMi41IDBhMi41IDIuNSAwIDEgMCAwLTUgLjUuNSAwIDAgMS0uNS0uNSAyLjUgMi41IDAgMSAwLTUgMGMwIC44MS43IDEuOCAwIDIuNWwtNyA3Yy0uNy43LTEuNjkgMC0yLjUgMGEyLjUgMi41IDAgMCAwIDAgNWMuMjggMCAuNS4yMi41LjVhMi41IDIuNSAwIDEgMCA1IDBjMC0uODEtLjctMS44IDAtMi41WiJ9XV0sclJ0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOCAxMyA0LTcgNCA3In1dLFsicGF0aCIse2Q6Ik05LjEgMTFoNS43In1dXSxpUnQ9W1sicGF0aCIse2Q6Ik0xMiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDZ2MyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV0sYVJ0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSA5LjUgMiAyIDQtNCJ9XV0sblJ0PVtbInBhdGgiLHtkOiJNMTIgNnY3In1dLFsicGF0aCIse2Q6Ik0xNiA4djMifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoiTTggOHYzIn1dXSxvUnQ9W1sicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMSJ9XSxbInBhdGgiLHtkOiJNNS44MDMgMThINWEyIDIgMCAwIDAgMCA0aDkuNWEuNS41IDAgMCAwIC41LS41VjIxIn1dLFsicGF0aCIse2Q6Ik05IDE1VjRhMiAyIDAgMCAxIDItMmg5LjVhLjUuNSAwIDAgMSAuNS41djE0YS41LjUgMCAwIDEtLjUuNUgxMWEyIDIgMCAwIDEgMC00aDEwIn1dXSxfRT1bWyJwYXRoIix7ZDoiTTEyIDE3aDEuNSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJoMS41In1dLFsicGF0aCIse2Q6Ik0xMiAyaDEuNSJ9XSxbInBhdGgiLHtkOiJNMTcuNSAyMkgxOWExIDEgMCAwIDAgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNy41IDJIMTlhMSAxIDAgMCAxIDEgMXYxLjUifV0sWyJwYXRoIix7ZDoiTTIwIDE0djNoLTIuNSJ9XSxbInBhdGgiLHtkOiJNMjAgOC41VjEwIn1dLFsicGF0aCIse2Q6Ik00IDEwVjguNSJ9XSxbInBhdGgiLHtkOiJNNCAxOS41VjE0In1dLFsicGF0aCIse2Q6Ik00IDQuNUEyLjUgMi41IDAgMCAxIDYuNSAySDgifV0sWyJwYXRoIix7ZDoiTTggMjJINi41YTEgMSAwIDAgMSAwLTVIOCJ9XV0sc1J0PVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJtOSAxMCAzIDMgMy0zIn1dXSxsUnQ9W1sicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik04IDEydi0yYTQgNCAwIDAgMSA4IDB2MiJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMSJ9XV0sY1J0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOC42MiA5LjhBMi4yNSAyLjI1IDAgMSAxIDEyIDYuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV0sZFJ0PVtbInBhdGgiLHtkOiJtMjAgMTMuNy0yLjEtMi4xYTIgMiAwIDAgMC0yLjggMEw5LjcgMTcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI4IixyOiIyIn1dXSx1UnQ9W1sicGF0aCIse2Q6Ik0xMyAySDYuNUEyLjUgMi41IDAgMCAwIDQgNC41djE1In1dLFsicGF0aCIse2Q6Ik0xNyAydjYifV0sWyJwYXRoIix7ZDoiTTE3IDRoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTUuMlYyMWExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTAiLHI6IjIifV1dLHBSdD1bWyJwYXRoIix7ZDoiTTE4IDZWNGEyIDIgMCAxIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTIwIDE1djZhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDEwIn1dLFsicmVjdCIse3g6IjEyIix5OiI2Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV0saFJ0PVtbInBhdGgiLHtkOiJNMTAgMnY4bDMtMyAzIDNWMiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV0sZlJ0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXSxtUnQ9W1sicGF0aCIse2Q6Ik0xMiAyMVY3In1dLFsicGF0aCIse2Q6Im0xNiAxMiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik0yMiA2VjRhMSAxIDAgMCAwLTEtMWgtNWE0IDQgMCAwIDAtNCA0IDQgNCAwIDAgMC00LTRIM2ExIDEgMCAwIDAtMSAxdjEzYTEgMSAwIDAgMCAxIDFoNmEzIDMgMCAwIDEgMyAzIDMgMyAwIDAgMSAzLTNoNmExIDEgMCAwIDAgMS0xdi0xLjMifV1dLGdSdD1bWyJwYXRoIix7ZDoiTTEyIDd2MTQifV0sWyJwYXRoIix7ZDoiTTE2IDEyaDIifV0sWyJwYXRoIix7ZDoiTTE2IDhoMiJ9XSxbInBhdGgiLHtkOiJNMyAxOGExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMWg1YTQgNCAwIDAgMSA0IDQgNCA0IDAgMCAxIDQtNGg1YTEgMSAwIDAgMSAxIDF2MTNhMSAxIDAgMCAxLTEgMWgtNmEzIDMgMCAwIDAtMyAzIDMgMyAwIDAgMC0zLTN6In1dLFsicGF0aCIse2Q6Ik02IDEyaDIifV0sWyJwYXRoIix7ZDoiTTYgOGgyIn1dXSxiUnQ9W1sicGF0aCIse2Q6Ik0xMiA3djE0In1dLFsicGF0aCIse2Q6Ik0zIDE4YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xaDVhNCA0IDAgMCAxIDQgNCA0IDQgMCAwIDEgNC00aDVhMSAxIDAgMCAxIDEgMXYxM2ExIDEgMCAwIDEtMSAxaC02YTMgMyAwIDAgMC0zIDMgMyAzIDAgMCAwLTMtM3oifV1dLHZSdD1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXSx4UnQ9W1sicGF0aCIse2Q6Ik0xMSAyMkg1LjVhMSAxIDAgMCAxIDAtNWg0LjUwMSJ9XSxbInBhdGgiLHtkOiJtMjEgMjItMS44NzktMS44NzgifV0sWyJwYXRoIix7ZDoiTTMgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA1LjUgMkgxOGExIDEgMCAwIDEgMSAxdjgifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMyJ9XV0seVJ0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbInBhdGgiLHtkOiJNOCAxMWg4In1dLFsicGF0aCIse2Q6Ik04IDdoNiJ9XV0sd1J0PVtbInBhdGgiLHtkOiJNMTAgMTNoNCJ9XSxbInBhdGgiLHtkOiJNMTIgNnY3In1dLFsicGF0aCIse2Q6Ik0xNiA4VjZIOHYyIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDJIMTlhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dXSxNUnQ9W1sicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicGF0aCIse2Q6Ik0xOCAyaDFhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxSDYuNWExIDEgMCAwIDEgMC01SDIwIn1dLFsicGF0aCIse2Q6Ik00IDE5LjV2LTE1QTIuNSAyLjUgMCAwIDEgNi41IDIifV0sWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtOSA1IDMtMyAzIDMifV1dLGtSdD1bWyJwYXRoIix7ZDoiTTEyIDEzVjcifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XV0sU1J0PVtbInBhdGgiLHtkOiJNMTUgMTNhMyAzIDAgMSAwLTYgMCJ9XSxbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjgiLHI6IjIifV1dLHpSdD1bWyJwYXRoIix7ZDoibTE0LjUgNy01IDUifV0sWyJwYXRoIix7ZDoiTTQgMTkuNXYtMTVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOWExIDEgMCAwIDEgMSAxdjE4YTEgMSAwIDAgMS0xIDFINi41YTEgMSAwIDAgMSAwLTVIMjAifV0sWyJwYXRoIix7ZDoibTkuNSA3IDUgNSJ9XV0sQ1J0PVtbInBhdGgiLHtkOiJNNCAxOS41di0xNUEyLjUgMi41IDAgMCAxIDYuNSAySDE5YTEgMSAwIDAgMSAxIDF2MThhMSAxIDAgMCAxLTEgMUg2LjVhMSAxIDAgMCAxIDAtNUgyMCJ9XV0sVFJ0PVtbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Im05IDEwIDIgMiA0LTQifV1dLF9SdD1bWyJwYXRoIix7ZDoiTTE1IDEwSDkifV0sWyJwYXRoIix7ZDoiTTE3IDNhMiAyIDAgMCAxIDIgMnYxNWExIDEgMCAwIDEtMS40OTYuODY4bC00LjUxMi0yLjU3OGEyIDIgMCAwIDAtMS45ODQgMGwtNC41MTIgMi41NzhBMSAxIDAgMCAxIDUgMjBWNWEyIDIgMCAwIDEgMi0yeiJ9XV0sTFJ0PVtbInBhdGgiLHtkOiJNMTIgN3Y2In1dLFsicGF0aCIse2Q6Ik0xNSAxMEg5In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAyIDJ2MTVhMSAxIDAgMCAxLTEuNDk2Ljg2OGwtNC41MTItMi41NzhhMiAyIDAgMCAwLTEuOTg0IDBsLTQuNTEyIDIuNTc4QTEgMSAwIDAgMSA1IDIwVjVhMiAyIDAgMCAxIDItMnoifV1dLEFSdD1bWyJwYXRoIix7ZDoibTE0LjUgNy41LTUgNSJ9XSxbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Im05LjUgNy41IDUgNSJ9XV0sRFJ0PVtbInBhdGgiLHtkOiJNMTcgM2EyIDIgMCAwIDEgMiAydjE1YTEgMSAwIDAgMS0xLjQ5Ni44NjhsLTQuNTEyLTIuNTc4YTIgMiAwIDAgMC0xLjk4NCAwbC00LjUxMiAyLjU3OEExIDEgMCAwIDEgNSAyMFY1YTIgMiAwIDAgMSAyLTJ6In1dXSxFUnQ9W1sicGF0aCIse2Q6Ik00IDlWNWEyIDIgMCAwIDEgMi0yaDEyYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNOCA4djEifV0sWyJwYXRoIix7ZDoiTTEyIDh2MSJ9XSxbInBhdGgiLHtkOiJNMTYgOHYxIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiOSIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE1IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTUiLHI6IjIifV1dLCRSdD1bWyJwYXRoIix7ZDoiTTEyIDZWMkg4In1dLFsicGF0aCIse2Q6Ik0xNSAxMXYyIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE2YTIgMiAwIDAgMS0yIDJIOC44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDQgMjAuMjg2VjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNOSAxMXYyIn1dXSxJUnQ9W1sicGF0aCIse2Q6Ik0xMiA4VjRIOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTIiLHg6IjQiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0aDIifV0sWyJwYXRoIix7ZDoiTTE1IDEzdjIifV0sWyJwYXRoIix7ZDoiTTkgMTN2MiJ9XV0sUFJ0PVtbInBhdGgiLHtkOiJNMTMuNjcgOEgxOGEyIDIgMCAwIDEgMiAydjQuMzMifV0sWyJwYXRoIix7ZDoiTTIgMTRoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTRoMiJ9XSxbInBhdGgiLHtkOiJNMjIgMjIgMiAyIn1dLFsicGF0aCIse2Q6Ik04IDhINmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMS40MTQtLjU4NiJ9XSxbInBhdGgiLHtkOiJNOSAxM3YyIn1dLFsicGF0aCIse2Q6Ik05LjY3IDRIMTJ2Mi4zMyJ9XV0sTlJ0PVtbInBhdGgiLHtkOiJNMTAgM2ExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXYyYTYgNiAwIDAgMCAxLjIgMy42bC42LjhBNiA2IDAgMCAxIDE3IDEzdjhhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF2LThhNiA2IDAgMCAxIDEuMi0zLjZsLjYtLjhBNiA2IDAgMCAwIDEwIDV6In1dLFsicGF0aCIse2Q6Ik0xNyAxM2gtNGExIDEgMCAwIDAtMSAxdjNhMSAxIDAgMCAwIDEgMWg0In1dXSxGUnQ9W1sicGF0aCIse2Q6Ik0xNyAzaDR2NCJ9XSxbInBhdGgiLHtkOiJNMTguNTc1IDExLjA4MmExMyAxMyAwIDAgMSAxLjA0OCA5LjAyNyAxLjE3IDEuMTcgMCAwIDEtMS45MTQuNTk3TDE0IDE3In1dLFsicGF0aCIse2Q6Ik03IDEwIDMuMjkgNi4yOWExLjE3IDEuMTcgMCAwIDEgLjYtMS45MSAxMyAxMyAwIDAgMSA5LjAzIDEuMDUifV0sWyJwYXRoIix7ZDoiTTcgMTRhMS43IDEuNyAwIDAgMC0xLjIwNy41bC0yLjY0NiAyLjY0NkEuNS41IDAgMCAwIDMuNSAxOEg1YTEgMSAwIDAgMSAxIDF2MS41YS41LjUgMCAwIDAgLjg1NC4zNTRMOS41IDE4LjIwN0ExLjcgMS43IDAgMCAwIDEwIDE3di0yYTEgMSAwIDAgMC0xLTF6In1dLFsicGF0aCIse2Q6Ik05LjcwNyAxNC4yOTMgMjEgMyJ9XV0sT1J0PVtbInBhdGgiLHtkOiJNMjEgOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZaIn1dLFsicGF0aCIse2Q6Im0zLjMgNyA4LjcgNSA4LjctNSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJWMTIifV1dLFJSdD1bWyJwYXRoIix7ZDoiTTIuOTcgMTIuOTJBMiAyIDAgMCAwIDIgMTQuNjN2My4yNGEyIDIgMCAwIDAgLjk3IDEuNzFsMyAxLjhhMiAyIDAgMCAwIDIuMDYgMEwxMiAxOXYtNS41bC01LTMtNC4wMyAyLjQyWiJ9XSxbInBhdGgiLHtkOiJtNyAxNi41LTQuNzQtMi44NSJ9XSxbInBhdGgiLHtkOiJtNyAxNi41IDUtMyJ9XSxbInBhdGgiLHtkOiJNNyAxNi41djUuMTcifV0sWyJwYXRoIix7ZDoiTTEyIDEzLjVWMTlsMy45NyAyLjM4YTIgMiAwIDAgMCAyLjA2IDBsMy0xLjhhMiAyIDAgMCAwIC45Ny0xLjcxdi0zLjI0YTIgMiAwIDAgMC0uOTctMS43MUwxNyAxMC41bC01IDNaIn1dLFsicGF0aCIse2Q6Im0xNyAxNi41LTUtMyJ9XSxbInBhdGgiLHtkOiJtMTcgMTYuNSA0Ljc0LTIuODUifV0sWyJwYXRoIix7ZDoiTTE3IDE2LjV2NS4xNyJ9XSxbInBhdGgiLHtkOiJNNy45NyA0LjQyQTIgMiAwIDAgMCA3IDYuMTN2NC4zN2w1IDMgNS0zVjYuMTNhMiAyIDAgMCAwLS45Ny0xLjcxbC0zLTEuOGEyIDIgMCAwIDAtMi4wNiAwbC0zIDEuOFoifV0sWyJwYXRoIix7ZDoiTTEyIDggNy4yNiA1LjE1In1dLFsicGF0aCIse2Q6Im0xMiA4IDQuNzQtMi44NSJ9XSxbInBhdGgiLHtkOiJNMTIgMTMuNVY4In1dXSxMRT1bWyJwYXRoIix7ZDoiTTggM0g3YTIgMiAwIDAgMC0yIDJ2NWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMSAyIDJ2NWMwIDEuMS45IDIgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE2IDIxaDFhMiAyIDAgMCAwIDItMnYtNWMwLTEuMS45LTIgMi0yYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDAtMi0yaC0xIn1dXSxCUnQ9W1sicGF0aCIse2Q6Ik0xNiAzaDNhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik04IDIxSDVhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTFoMyJ9XV0sSFJ0PVtbInBhdGgiLHtkOiJNMTIgNWEzIDMgMCAxIDAtNS45OTcuMTI1IDQgNCAwIDAgMC0yLjUyNiA1Ljc3IDQgNCAwIDAgMCAuNTU2IDYuNTg4QTQgNCAwIDEgMCAxMiAxOFoifV0sWyJwYXRoIix7ZDoiTTkgMTNhNC41IDQuNSAwIDAgMCAzLTQifV0sWyJwYXRoIix7ZDoiTTYuMDAzIDUuMTI1QTMgMyAwIDAgMCA2LjQwMSA2LjUifV0sWyJwYXRoIix7ZDoiTTMuNDc3IDEwLjg5NmE0IDQgMCAwIDEgLjU4NS0uMzk2In1dLFsicGF0aCIse2Q6Ik02IDE4YTQgNCAwIDAgMS0xLjk2Ny0uNTE2In1dLFsicGF0aCIse2Q6Ik0xMiAxM2g0In1dLFsicGF0aCIse2Q6Ik0xMiAxOGg2YTIgMiAwIDAgMSAyIDJ2MSJ9XSxbInBhdGgiLHtkOiJNMTIgOGg4In1dLFsicGF0aCIse2Q6Ik0xNiA4VjVhMiAyIDAgMCAxIDItMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEzIixyOiIuNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjMiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMjEiLHI6Ii41In1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiOCIscjoiLjUifV1dLHFSdD1bWyJwYXRoIix7ZDoibTEwLjg1MiAxNC43NzItLjM4My45MjMifV0sWyJwYXRoIix7ZDoibTEwLjg1MiA5LjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTEzLjE0OCAxNC43NzIuMzgyLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTMuNTMxIDguMzA1LS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTAuODUyLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTMuMTQ4LjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTE3LjU5OCA2LjVBMyAzIDAgMSAwIDEyIDVhMyAzIDAgMCAwLTUuNjMtMS40NDYgMyAzIDAgMCAwLS4zNjggMS41NzEgNCA0IDAgMCAwLTIuNTI1IDUuNzcxIn1dLFsicGF0aCIse2Q6Ik0xNy45OTggNS4xMjVhNCA0IDAgMCAxIDIuNTI1IDUuNzcxIn1dLFsicGF0aCIse2Q6Ik0xOS41MDUgMTAuMjk0YTQgNCAwIDAgMS0xLjUgNy43MDYifV0sWyJwYXRoIix7ZDoiTTQuMDMyIDE3LjQ4M0E0IDQgMCAwIDAgMTEuNDY0IDIwYy4xOC0uMzExLjg5Mi0uMzExIDEuMDcyIDBhNCA0IDAgMCAwIDcuNDMyLTIuNTE2In1dLFsicGF0aCIse2Q6Ik00LjUgMTAuMjkxQTQgNCAwIDAgMCA2IDE4In1dLFsicGF0aCIse2Q6Ik02LjAwMiA1LjEyNWEzIDMgMCAwIDAgLjQgMS4zNzUifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEwLjg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEzLjE0OC0uOTIzLjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXSxqUnQ9W1sicGF0aCIse2Q6Ik0xMiAxOFY1In1dLFsicGF0aCIse2Q6Ik0xNSAxM2E0LjE3IDQuMTcgMCAwIDEtMy00IDQuMTcgNC4xNyAwIDAgMS0zIDQifV0sWyJwYXRoIix7ZDoiTTE3LjU5OCA2LjVBMyAzIDAgMSAwIDEyIDVhMyAzIDAgMSAwLTUuNTk4IDEuNSJ9XSxbInBhdGgiLHtkOiJNMTcuOTk3IDUuMTI1YTQgNCAwIDAgMSAyLjUyNiA1Ljc3In1dLFsicGF0aCIse2Q6Ik0xOCAxOGE0IDQgMCAwIDAgMi03LjQ2NCJ9XSxbInBhdGgiLHtkOiJNMTkuOTY3IDE3LjQ4M0E0IDQgMCAxIDEgMTIgMThhNCA0IDAgMSAxLTcuOTY3LS41MTcifV0sWyJwYXRoIix7ZDoiTTYgMThhNCA0IDAgMCAxLTItNy40NjQifV0sWyJwYXRoIix7ZDoiTTYuMDAzIDUuMTI1YTQgNCAwIDAgMC0yLjUyNiA1Ljc3In1dXSxWUnQ9W1sicGF0aCIse2Q6Ik0xNiAzdjIuMTA3In1dLFsicGF0aCIse2Q6Ik0xNyA5YzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDIyIDE3YTUgNSAwIDAgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkMxMyAxMS41IDE2IDkgMTcgOSJ9XSxbInBhdGgiLHtkOiJNMjEgOC4yNzRWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuOTM4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDUuMjUzIn1dLFsicGF0aCIse2Q6Ik0zIDloOC4yMjgifV0sWyJwYXRoIix7ZDoiTTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNOCAzdjYifV1dLFVSdD1bWyJwYXRoIix7ZDoiTTEyIDl2MS4yNTgifV0sWyJwYXRoIix7ZDoiTTE2IDN2NS40NiJ9XSxbInBhdGgiLHtkOiJNMjEgOS4xMThWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDUuNzUifV0sWyJwYXRoIix7ZDoiTTIyIDE3LjVjMCAyLjQ5OS0xLjc1IDMuNzQ5LTMuODMgNC40NzRhLjUuNSAwIDAgMS0uMzM1LS4wMDVjLTIuMDg1LS43Mi0zLjgzNS0xLjk3LTMuODM1LTQuNDdWMTRhLjUuNSAwIDAgMSAuNS0uNDk5YzEgMCAyLjI1LS42IDMuMTItMS4zNmEuNi42IDAgMCAxIC43Ni0uMDAxYy44NzUuNzY1IDIuMTIgMS4zNiAzLjEyIDEuMzZhLjUuNSAwIDAgMSAuNS41eiJ9XSxbInBhdGgiLHtkOiJNMyAxNWg3In1dLFsicGF0aCIse2Q6Ik0zIDloMTIuMTQyIn1dLFsicGF0aCIse2Q6Ik04IDE1djYifV0sWyJwYXRoIix7ZDoiTTggM3Y2In1dXSxXUnQ9W1sicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDZWNGEyIDIgMCAwIDAtMi0yaC00YTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjIgMTNhMTguMTUgMTguMTUgMCAwIDEtMjAgMCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXSxHUnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDl2NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTV2NiJ9XSxbInBhdGgiLHtkOiJNMTYgM3Y2In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoiTTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNOCAzdjYifV1dLFlSdD1bWyJwYXRoIix7ZDoiTTEwIDIwdjIifV0sWyJwYXRoIix7ZDoiTTE0IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE4IDIwdjIifV0sWyJwYXRoIix7ZDoiTTIxIDIwSDMifV0sWyJwYXRoIix7ZDoiTTYgMjB2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEyIn1dLFsicmVjdCIse3g6IjQiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxMCIscng6IjIifV1dLFpSdD1bWyJwYXRoIix7ZDoiTTEyIDExdjQifV0sWyJwYXRoIix7ZDoiTTE0IDEzaC00In1dLFsicGF0aCIse2Q6Ik0xNiA2VjRhMiAyIDAgMCAwLTItMmgtNGEyIDIgMCAwIDAtMiAydjIifV0sWyJwYXRoIix7ZDoiTTE4IDZ2MTQifV0sWyJwYXRoIix7ZDoiTTYgNnYxNCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXSxYUnQ9W1sicGF0aCIse2Q6Ik0xNiAyMFY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYxNiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXSxRUnQ9W1sicmVjdCIse3g6IjgiLHk6IjgiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik00IDEwYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTQgMjBhMiAyIDAgMCAwIDIgMmg0YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMiJ9XV0sSlJ0PVtbInBhdGgiLHtkOiJtMTYgMjItMS00In1dLFsicGF0aCIse2Q6Ik0xOSAxNGExIDEgMCAwIDAgMS0xdi0xYTIgMiAwIDAgMC0yLTJoLTNhMSAxIDAgMCAxLTEtMVY0YTIgMiAwIDAgMC00IDB2NWExIDEgMCAwIDEtMSAxSDZhMiAyIDAgMCAwLTIgMnYxYTEgMSAwIDAgMCAxIDEifV0sWyJwYXRoIix7ZDoiTTE5IDE0SDVsLTEuOTczIDYuNzY3QTEgMSAwIDAgMCA0IDIyaDE2YTEgMSAwIDAgMCAuOTczLTEuMjMzeiJ9XSxbInBhdGgiLHtkOiJtOCAyMiAxLTQifV1dLEtSdD1bWyJwYXRoIix7ZDoibTExIDEwIDMgMyJ9XSxbInBhdGgiLHtkOiJNNi41IDIxQTMuNSAzLjUgMCAxIDAgMyAxNy41YTIuNjIgMi42MiAwIDAgMS0uNzA4IDEuNzkyQTEgMSAwIDAgMCAzIDIxeiJ9XSxbInBhdGgiLHtkOiJNOS45NjkgMTcuMDMxIDIxLjM3OCA1LjYyNGExIDEgMCAwIDAtMy4wMDItMy4wMDJMNi45NjcgMTQuMDMxIn1dXSxlQnQ9W1sicGF0aCIse2Q6Ik03LjAwMSAxNS4wODVBMS41IDEuNSAwIDAgMSA5IDE2LjUifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjguNSIscjoiMy41In1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjE2LjUiLHI6IjUuNSJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiI0LjUiLHI6IjIuNSJ9XV0sdEJ0PVtbInBhdGgiLHtkOiJNMTIgMjB2LTgifV0sWyJwYXRoIix7ZDoiTTEyLjY1NiA3SDE0YTQgNCAwIDAgMSA0IDR2MS4zNDQifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDMuODggMTYgMiJ9XSxbInBhdGgiLHtkOiJNMTcuMTIzIDE3LjEyM0E2IDYgMCAwIDEgNiAxNHYtM2E0IDQgMCAwIDEgMS43Mi0zLjI4NyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTIyIDEzaC0zLjM0NCJ9XSxbInBhdGgiLHtkOiJNMyAyMWE0IDQgMCAwIDEgMy44MS00In1dLFsicGF0aCIse2Q6Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Im04IDIgMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik05LjcxMiA0LjA2QTMgMyAwIDAgMSAxNSA2djEuMTMifV1dLHJCdD1bWyJwYXRoIix7ZDoiTTEwIDE5LjY1NUE2IDYgMCAwIDEgNiAxNHYtM2E0IDQgMCAwIDEgNC00aDRhNCA0IDAgMCAxIDQgMy45NyJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N2ExIDEgMCAwIDEtMS41MTctLjg2eiJ9XSxbInBhdGgiLHtkOiJNMTQuMTIgMy44OCAxNiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA1YTQgNCAwIDAgMS0zLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTMgMjFhNCA0IDAgMCAxIDMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMyA1YTQgNCAwIDAgMCAzLjU1IDMuOTcifV0sWyJwYXRoIix7ZDoiTTYgMTNIMiJ9XSxbInBhdGgiLHtkOiJtOCAyIDEuODggMS44OCJ9XSxbInBhdGgiLHtkOiJNOSA3LjEzVjZhMyAzIDAgMSAxIDYgMHYxLjEzIn1dXSxpQnQ9W1sicGF0aCIse2Q6Ik0xMiAyMHYtOSJ9XSxbInBhdGgiLHtkOiJNMTQgN2E0IDQgMCAwIDEgNCA0djNhNiA2IDAgMCAxLTEyIDB2LTNhNCA0IDAgMCAxIDQtNHoifV0sWyJwYXRoIix7ZDoiTTE0LjEyIDMuODggMTYgMiJ9XSxbInBhdGgiLHtkOiJNMjEgMjFhNCA0IDAgMCAwLTMuODEtNCJ9XSxbInBhdGgiLHtkOiJNMjEgNWE0IDQgMCAwIDEtMy41NSAzLjk3In1dLFsicGF0aCIse2Q6Ik0yMiAxM2gtNCJ9XSxbInBhdGgiLHtkOiJNMyAyMWE0IDQgMCAwIDEgMy44MS00In1dLFsicGF0aCIse2Q6Ik0zIDVhNCA0IDAgMCAwIDMuNTUgMy45NyJ9XSxbInBhdGgiLHtkOiJNNiAxM0gyIn1dLFsicGF0aCIse2Q6Im04IDIgMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik05IDcuMTNWNmEzIDMgMCAxIDEgNiAwdjEuMTMifV1dLGFCdD1bWyJwYXRoIix7ZDoiTTEwIDEyaDQifV0sWyJwYXRoIix7ZDoiTTEwIDhoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik02IDEwSDRhMiAyIDAgMCAwLTIgMnY3YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJwYXRoIix7ZDoiTTYgMjFWNWEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnYxNiJ9XV0sbkJ0PVtbInBhdGgiLHtkOiJNMTIgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgNmguMDEifV0sWyJwYXRoIix7ZDoiTTggMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNOSAyMnYtM2ExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYzIn1dLFsicmVjdCIse3g6IjQiLHk6IjIiLHdpZHRoOiIxNiIsaGVpZ2h0OiIyMCIscng6IjIifV1dLG9CdD1bWyJwYXRoIix7ZDoiTTQgNiAyIDcifV0sWyJwYXRoIix7ZDoiTTEwIDZoNCJ9XSxbInBhdGgiLHtkOiJtMjIgNy0yLTEifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMWgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxOXYyIn1dLFsicGF0aCIse2Q6Ik0xOCAyMXYtMiJ9XV0sc0J0PVtbInBhdGgiLHtkOiJNOCA2djYifV0sWyJwYXRoIix7ZDoiTTE1IDZ2NiJ9XSxbInBhdGgiLHtkOiJNMiAxMmgxOS42In1dLFsicGF0aCIse2Q6Ik0xOCAxOGgzcy41LTEuNy44LTIuOGMuMS0uNC4yLS44LjItMS4yIDAtLjQtLjEtLjgtLjItMS4ybC0xLjQtNUMyMC4xIDYuOCAxOS4xIDYgMTggNkg0YTIgMiAwIDAgMC0yIDJ2MTBoMyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTkgMThoNSJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE4IixyOiIyIn1dXSxsQnQ9W1sicGF0aCIse2Q6Ik0xMCAzaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMmguMDEifV0sWyJwYXRoIix7ZDoibTIgOSAyMC01In1dLFsicGF0aCIse2Q6Ik0xMiAxMlY2LjUifV0sWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjEwIix4OiI0Iix5OiIxMiIscng6IjMifV0sWyJwYXRoIix7ZDoiTTkgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMTUgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNNCAxN2gxNiJ9XV0sY0J0PVtbInBhdGgiLHtkOiJNMTcgMTlhMSAxIDAgMCAxLTEtMXYtMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDIgMnYyYTEgMSAwIDAgMS0xIDF6In1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtMiJ9XSxbInBhdGgiLHtkOiJNMTkgMTRWNi41YTEgMSAwIDAgMC03IDB2MTFhMSAxIDAgMCAxLTcgMFYxMCJ9XSxbInBhdGgiLHtkOiJNMjEgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTMgNVYzIn1dLFsicGF0aCIse2Q6Ik00IDEwYTIgMiAwIDAgMS0yLTJWNmExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik03IDVWMyJ9XV0sZEJ0PVtbInBhdGgiLHtkOiJNMTYgMTNIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTdIMyJ9XSxbInBhdGgiLHtkOiJtNy4yIDcuOS0zLjM4OCAyLjVBMiAyIDAgMCAwIDMgMTIuMDFWMjBhMSAxIDAgMCAwIDEgMWgxNmExIDEgMCAwIDAgMS0xdi04LjY1NGMwLTItMi40NC02LjAyNi02LjQ0LTguMDI2YTEgMSAwIDAgMC0xLjA4Mi4wNTdMMTAuNCA1LjYifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjIifV1dLHVCdD1bWyJwYXRoIix7ZDoiTTIwIDIxdi04YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjgifV0sWyJwYXRoIix7ZDoiTTQgMTZzLjUtMSAyLTEgMi41IDIgNCAyIDIuNS0yIDQtMiAyLjUgMiA0IDIgMi0xIDItMSJ9XSxbInBhdGgiLHtkOiJNMiAyMWgyMCJ9XSxbInBhdGgiLHtkOiJNNyA4djMifV0sWyJwYXRoIix7ZDoiTTEyIDh2MyJ9XSxbInBhdGgiLHtkOiJNMTcgOHYzIn1dLFsicGF0aCIse2Q6Ik03IDRoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgNGguMDEifV1dLHBCdD1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjIwIix4OiI0Iix5OiIyIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiNiIseTI6IjYifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMTYiLHkxOiIxNCIseTI6IjE4In1dLFsicGF0aCIse2Q6Ik0xNiAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEwaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV1dLGhCdD1bWyJwYXRoIix7ZDoiTTExIDE0aDF2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxmQnQ9W1sicGF0aCIse2Q6Im0xNCAxOCA0IDQgNC00In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djgifV0sWyJwYXRoIix7ZDoiTTIxIDExLjM1NFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4zNDMifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXSxtQnQ9W1sicGF0aCIse2Q6Im0xNCAxOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE4IDIydi04In1dLFsicGF0aCIse2Q6Ik0yMSAxMS4zNDNWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDkifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXSxnQnQ9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxNFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtMTYgMjAgMiAyIDQtNCJ9XV0sYkJ0PVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Im05IDE2IDIgMiA0LTQifV1dLHZCdD1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSA3LjVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDMuNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGg1In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjE2IixyOiI2In1dXSx4QnQ9W1sicGF0aCIse2Q6Im0xNS4yMjggMTYuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE5LjE0OC0uOTIzLjM4MyJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Im0xNi40NyAxNC4zMDUuMzgyLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMC41OTJWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDYifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLHlCdD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTRoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOGguMDEifV1dLHdCdD1bWyJwYXRoIix7ZDoiTTMgMjBhMiAyIDAgMCAwIDIgMmgxMGEyLjQgMi40IDAgMCAwIDEuNzA2LS43MDZsMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAyMSAxNlY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTUgMjJ2LTVhMSAxIDAgMCAxIDEtMWg1In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dXSxNQnQ9W1sicGF0aCIse2Q6Ik0xMi4xMjcgMjJINWEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjUuMTI1In1dLFsicGF0aCIse2Q6Ik0xNC42MiAxOC44QTIuMjUgMi4yNSAwIDEgMSAxOCAxNS44MzZhMi4yNSAyLjI1IDAgMSAxIDMuMzggMi45NjZsLTIuNjI2IDIuODU2YS45OTguOTk4IDAgMCAxLTEuNTA3IDB6In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXSxrQnQ9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTEwIDE2aDQifV1dLFNCdD1bWyJwYXRoIix7ZDoiTTE2IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTVWNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDguNSJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJNOCAydjQifV1dLHpCdD1bWyJwYXRoIix7ZDoiTTQuMiA0LjJBMiAyIDAgMCAwIDMgNnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAxLjgyLTEuMTgifV0sWyJwYXRoIix7ZDoiTTIxIDE1LjVWNmEyIDIgMCAwIDAtMi0ySDkuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0zIDEwaDcifV0sWyJwYXRoIix7ZDoiTTIxIDEwaC01LjUifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sQ0J0PVtbInBhdGgiLHtkOiJNOCAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik0xMCAxNmg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNHY0In1dXSxUQnQ9W1sicGF0aCIse2Q6Ik0xNiAxOWg2In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIxIDEyLjU5OFY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOC41In1dLFsicGF0aCIse2Q6Ik0zIDEwaDE4In1dLFsicGF0aCIse2Q6Ik04IDJ2NCJ9XV0sX0J0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNyAxNGgtNiJ9XSxbInBhdGgiLHtkOiJNMTMgMThINyJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE4aC4wMSJ9XV0sTEJ0PVtbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxMS43NVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNy4yNSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS44NzUtMS44NzUifV0sWyJwYXRoIix7ZDoiTTMgMTBoMTgifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLEFCdD1bWyJwYXRoIix7ZDoiTTExIDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtMTEgMTQgMS41MzUtMS42MDVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoibTIxIDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMjEgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIxIDguNVY2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNC4zIn1dLFsicGF0aCIse2Q6Ik0zIDEwaDQifV0sWyJwYXRoIix7ZDoiTTggMnY0In1dXSxEQnQ9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTYgMnY0In1dLFsicGF0aCIse2Q6Ik0yMSAxM1Y2YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtMTcgMjIgNS01In1dLFsicGF0aCIse2Q6Im0xNyAxNyA1IDUifV1dLEVCdD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XSxbInBhdGgiLHtkOiJtMTQgMTQtNCA0In1dLFsicGF0aCIse2Q6Im0xMCAxNCA0IDQifV1dLCRCdD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAxMGgxOCJ9XV0sSUJ0PVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNS43MjYgMjEuMDFBMiAyIDAgMCAxIDE0IDIySDRhMiAyIDAgMCAxLTItMlYxMGEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik0xOCAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTNoMiJ9XSxbInBhdGgiLHtkOiJNOCA4aDE0In1dLFsicmVjdCIse3g6IjgiLHk6IjMiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLFBCdD1bWyJwYXRoIix7ZDoiTTE0LjU2NCAxNC41NThhMyAzIDAgMSAxLTQuMTIyLTQuMTIxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwIDIwSDRhMiAyIDAgMCAxLTItMlY5YTIgMiAwIDAgMSAyLTJoMS45OTdhMiAyIDAgMCAwIC44MTktLjE3NSJ9XSxbInBhdGgiLHtkOiJNOS42OTUgNC4wMjRBMiAyIDAgMCAxIDEwLjAwNCA0aDMuOTkzYTIgMiAwIDAgMSAxLjc2IDEuMDVsLjQ4Ni45QTIgMiAwIDAgMCAxOC4wMDMgN0gyMGEyIDIgMCAwIDEgMiAydjcuMzQ0In1dXSxOQnQ9W1sicGF0aCIse2Q6Ik0xMy45OTcgNGEyIDIgMCAwIDEgMS43NiAxLjA1bC40ODYuOUEyIDIgMCAwIDAgMTguMDAzIDdIMjBhMiAyIDAgMCAxIDIgMnY5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjlhMiAyIDAgMCAxIDItMmgxLjk5N2EyIDIgMCAwIDAgMS43NTktMS4wNDhsLjQ4OS0uOTA0QTIgMiAwIDAgMSAxMC4wMDQgNHoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiMyJ9XV0sRkJ0PVtbInBhdGgiLHtkOiJNNS43IDIxYTIgMiAwIDAgMS0zLjUtMmw4LjYtMTRhNiA2IDAgMCAxIDEwLjQgNiAyIDIgMCAxIDEtMy40NjQtMiAyIDIgMCAxIDAtMy40NjQtMloifV0sWyJwYXRoIix7ZDoiTTE3Ljc1IDcgMTUgMi4xIn1dLFsicGF0aCIse2Q6Ik0xMC45IDQuOCAxMyA5In1dLFsicGF0aCIse2Q6Im03LjkgOS43IDIgNC40In1dLFsicGF0aCIse2Q6Ik00LjkgMTQuNyA3IDE4LjkifV1dLE9CdD1bWyJwYXRoIix7ZDoiTTEwIDEwdjcuOSJ9XSxbInBhdGgiLHtkOiJNMTEuODAyIDYuMTQ1YTUgNSAwIDAgMSA2LjA1MyA2LjA1MyJ9XSxbInBhdGgiLHtkOiJNMTQgNi4xdjIuMjQzIn1dLFsicGF0aCIse2Q6Im0xNS41IDE1LjU3MS0uOTY0Ljk2NGE1IDUgMCAwIDEtNy4wNzEgMCA1IDUgMCAwIDEgMC03LjA3bC45NjQtLjk2NSJ9XSxbInBhdGgiLHtkOiJNMTYgN1YzYTEgMSAwIDAgMSAxLjcwNy0uNzA3IDIuNSAyLjUgMCAwIDAgMi4xNTIuNzE3IDEgMSAwIDAgMSAxLjEzMSAxLjEzMSAyLjUgMi41IDAgMCAwIC43MTcgMi4xNTJBMSAxIDAgMCAxIDIxIDhoLTQifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOCAxN3Y0YTEgMSAwIDAgMS0xLjcwNy43MDcgMi41IDIuNSAwIDAgMC0yLjE1Mi0uNzE3IDEgMSAwIDAgMS0xLjEzMS0xLjEzMSAyLjUgMi41IDAgMCAwLS43MTctMi4xNTJBMSAxIDAgMCAxIDMgMTZoNCJ9XV0sUkJ0PVtbInBhdGgiLHtkOiJNMTAgN3YxMC45In1dLFsicGF0aCIse2Q6Ik0xNCA2LjFWMTcifV0sWyJwYXRoIix7ZDoiTTE2IDdWM2ExIDEgMCAwIDEgMS43MDctLjcwNyAyLjUgMi41IDAgMCAwIDIuMTUyLjcxNyAxIDEgMCAwIDEgMS4xMzEgMS4xMzEgMi41IDIuNSAwIDAgMCAuNzE3IDIuMTUyQTEgMSAwIDAgMSAyMSA4aC00In1dLFsicGF0aCIse2Q6Ik0xNi41MzYgNy40NjVhNSA1IDAgMCAwLTcuMDcyIDBsLTIgMmE1IDUgMCAwIDAgMCA3LjA3IDUgNSAwIDAgMCA3LjA3MiAwbDItMmE1IDUgMCAwIDAgMC03LjA3In1dLFsicGF0aCIse2Q6Ik04IDE3djRhMSAxIDAgMCAxLTEuNzA3LjcwNyAyLjUgMi41IDAgMCAwLTIuMTUyLS43MTcgMSAxIDAgMCAxLTEuMTMxLTEuMTMxIDIuNSAyLjUgMCAwIDAtLjcxNy0yLjE1MkExIDEgMCAwIDEgMyAxNmg0In1dXSxCQnQ9W1sicGF0aCIse2Q6Ik0xMiAyMnYtNGMxLjUgMS41IDMuNSAzIDYgMyAwLTEuNS0uNS0zLjUtMi01In1dLFsicGF0aCIse2Q6Ik0xMy45ODggOC4zMjdDMTMuOTAyIDYuMDU0IDEzLjM2NSAzLjgyIDEyIDJhOS4zIDkuMyAwIDAgMC0xLjQ0NSAyLjkifV0sWyJwYXRoIix7ZDoiTTE3LjM3NSAxMS43MjVDMTguODgyIDEwLjUzIDIxIDcuODQxIDIxIDZjLTIuMzI0IDAtNS4wOCAxLjI5Ni02LjY2MiAyLjY4NCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMS4wMjQgMTUuMzc4QTE1IDE1IDAgMCAwIDIyIDE1Yy0uNDI2LTEuMjc5LTIuNjctMi41NTctNC4yNS0yLjkwNyJ9XSxbInBhdGgiLHtkOiJNNi45OTUgNi45OTJDNS43MTQgNi40IDQuMjkgNiAzIDZjMCAyIDIuNSA1IDQgNi0xLjUgMC00LjUgMS41LTUgMyAzLjUgMS41IDYgMSA2IDEtMS41IDEuNS0yIDMuNS0yIDUgMi41IDAgNC41LTEuNSA2LTMifV1dLEhCdD1bWyJwYXRoIix7ZDoiTTEyIDIydi00In1dLFsicGF0aCIse2Q6Ik03IDEyYy0xLjUgMC00LjUgMS41LTUgMyAzLjUgMS41IDYgMSA2IDEtMS41IDEuNS0yIDMuNS0yIDUgMi41IDAgNC41LTEuNSA2LTMgMS41IDEuNSAzLjUgMyA2IDMgMC0xLjUtLjUtMy41LTItNSAwIDAgMi41LjUgNi0xLS41LTEuNS0zLjUtMy01LTMgMS41LTEgNC00IDQtNi0yLjUgMC01LjUgMS41LTcgMyAwLTIuNS0uNS01LTItNy0xLjUgMi0yIDQuNS0yIDctMS41LTEuNS00LjUtMy03LTMgMCAyIDIuNSA1IDQgNiJ9XV0scUJ0PVtbInBhdGgiLHtkOiJNMTAuNSA1SDE5YTIgMiAwIDAgMSAyIDJ2OC41In1dLFsicGF0aCIse2Q6Ik0xNyAxMWgtLjUifV0sWyJwYXRoIix7ZDoiTTE5IDE5SDVhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNyAxMWg0In1dLFsicGF0aCIse2Q6Ik03IDE1aDIuNSJ9XV0sQUU9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxNCIseDoiMyIseToiNSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDE1aDRNMTUgMTVoMk03IDExaDJNMTMgMTFoNCJ9XV0sakJ0PVtbInBhdGgiLHtkOiJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiOCIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDE4djIifV0sWyJwYXRoIix7ZDoiTTE5IDE4djIifV1dLFZCdD1bWyJwYXRoIix7ZDoiTTEwIDJoNCJ9XSxbInBhdGgiLHtkOiJtMjEgOC0yIDItMS41LTMuN0EyIDIgMCAwIDAgMTUuNjQ2IDVIOC40YTIgMiAwIDAgMC0xLjkwMyAxLjI1N0w1IDEwIDMgOCJ9XSxbInBhdGgiLHtkOiJNNyAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiOCIseDoiMyIseToiMTAiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDE4djIifV0sWyJwYXRoIix7ZDoiTTE5IDE4djIifV1dLFVCdD1bWyJwYXRoIix7ZDoiTTE5IDE3aDJjLjYgMCAxLS40IDEtMXYtM2MwLS45LS43LTEuNy0xLjUtMS45QzE4LjcgMTAuNiAxNiAxMCAxNiAxMHMtMS4zLTEuNC0yLjItMi4zYy0uNS0uNC0xLjEtLjctMS44LS43SDVjLS42IDAtMS4xLjQtMS40LjlsLTEuNCAyLjlBMy43IDMuNyAwIDAgMCAyIDEydjRjMCAuNi40IDEgMSAxaDIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE3IixyOiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3aDYifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMiJ9XV0sV0J0PVtbInBhdGgiLHtkOiJNMTggMTlWOWE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHY4YTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMiA5aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFIMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTd2MWExIDEgMCAwIDEtMSAxSDEwdi05YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjkifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjE5IixyOiIyIn1dXSxHQnQ9W1sicGF0aCIse2Q6Ik0xMiAxNHY0In1dLFsicGF0aCIse2Q6Ik0xNC4xNzIgMmEyIDIgMCAwIDEgMS40MTQuNTg2bDMuODI4IDMuODI4QTIgMiAwIDAgMSAyMCA3LjgyOFYyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik04IDE0aDgifV0sWyJyZWN0Iix7eDoiOCIseToiMTAiLHdpZHRoOiI4IixoZWlnaHQ6IjgiLHJ4OiIxIn1dXSxZQnQ9W1sicGF0aCIse2Q6Ik0yLjI3IDIxLjdzOS44Ny0zLjUgMTIuNzMtNi4zNmE0LjUgNC41IDAgMCAwLTYuMzYtNi4zN0M1Ljc3IDExLjg0IDIuMjcgMjEuNyAyLjI3IDIxLjd6TTguNjQgMTRsLTIuMDUtMi4wNE0xNS4zNCAxNWwtMi40Ni0yLjQ2In1dLFsicGF0aCIse2Q6Ik0yMiA5cy0xLjMzLTItMy41LTJDMTYuODYgNyAxNSA5IDE1IDlzMS4zMyAyIDMuNSAyUzIyIDkgMjIgOXoifV0sWyJwYXRoIix7ZDoiTTE1IDJzLTIgMS4zMy0yIDMuNVMxNSA5IDE1IDlzMi0xLjg0IDItMy41QzE3IDMuMzMgMTUgMiAxNSAyeiJ9XV0sWkJ0PVtbInBhdGgiLHtkOiJNMTAgOXY3In1dLFsicGF0aCIse2Q6Ik0xNCA2djEwIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMi41IixyOiIzLjUifV0sWyJjaXJjbGUiLHtjeDoiNi41IixjeToiMTIuNSIscjoiMy41In1dXSxYQnQ9W1sicGF0aCIse2Q6Im0yIDE2IDQuMDM5LTkuNjlhLjUuNSAwIDAgMSAuOTIzIDBMMTEgMTYifV0sWyJwYXRoIix7ZDoiTTIyIDl2NyJ9XSxbInBhdGgiLHtkOiJNMy4zMDQgMTNoNi4zOTIifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjEyLjUiLHI6IjMuNSJ9XV0sUUJ0PVtbInBhdGgiLHtkOiJNMTUgMTFoNC41YTEgMSAwIDAgMSAwIDVoLTRhLjUuNSAwIDAgMS0uNS0uNXYtOWEuNS41IDAgMCAxIC41LS41aDNhMSAxIDAgMCAxIDAgNSJ9XSxbInBhdGgiLHtkOiJtMiAxNiA0LjAzOS05LjY5YS41LjUgMCAwIDEgLjkyMyAwTDExIDE2In1dLFsicGF0aCIse2Q6Ik0zLjMwNCAxM2g2LjM5MiJ9XV0sSkJ0PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTAiLHI6IjIifV0sWyJwYXRoIix7ZDoibTYgMjAgLjctMi45QTEuNCAxLjQgMCAwIDEgOC4xIDE2aDcuOGExLjQgMS40IDAgMCAxIDEuNCAxbC43IDMifV1dLEtCdD1bWyJwYXRoIix7ZDoiTTIgOFY2YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAyaC02In1dLFsicGF0aCIse2Q6Ik0yIDEyYTkgOSAwIDAgMSA4IDgifV0sWyJwYXRoIix7ZDoiTTIgMTZhNSA1IDAgMCAxIDQgNCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIuMDEiLHkxOiIyMCIseTI6IjIwIn1dXSxlSHQ9W1sicGF0aCIse2Q6Ik0xMCA1VjMifV0sWyJwYXRoIix7ZDoiTTE0IDVWMyJ9XSxbInBhdGgiLHtkOiJNMTUgMjF2LTNhMyAzIDAgMCAwLTYgMHYzIn1dLFsicGF0aCIse2Q6Ik0xOCAzdjgifV0sWyJwYXRoIix7ZDoiTTE4IDVINiJ9XSxbInBhdGgiLHtkOiJNMjIgMTFIMiJ9XSxbInBhdGgiLHtkOiJNMjIgOXYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY5In1dLFsicGF0aCIse2Q6Ik02IDN2OCJ9XV0sdEh0PVtbInBhdGgiLHtkOiJNMTIgNWMuNjcgMCAxLjM1LjA5IDIgLjI2IDEuNzgtMiA1LjAzLTIuODQgNi40Mi0yLjI2IDEuNC41OC0uNDIgNy0uNDIgNyAuNTcgMS4wNyAxIDIuMjQgMSAzLjQ0QzIxIDE3LjkgMTYuOTcgMjEgMTIgMjFzLTktMy05LTcuNTZjMC0xLjI1LjUtMi40IDEtMy40NCAwIDAtMS44OS02LjQyLS41LTcgMS4zOS0uNTggNC43Mi4yMyA2LjUgMi4yM0E5LjA0IDkuMDQgMCAwIDEgMTIgNVoifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik0xMS4yNSAxNi4yNWgxLjVMMTIgMTdsLS43NS0uNzVaIn1dXSxySHQ9W1sicGF0aCIse2Q6Ik0xNi43NSAxMmgzLjYzMmExIDEgMCAwIDEgLjg5NCAxLjQ0N2wtMi4wMzQgNC4wNjlhMSAxIDAgMCAxLTEuNzA4LjEzNGwtMi4xMjQtMi45NyJ9XSxbInBhdGgiLHtkOiJNMTcuMTA2IDkuMDUzYTEgMSAwIDAgMSAuNDQ3IDEuMzQxbC0zLjEwNiA2LjIxMWExIDEgMCAwIDEtMS4zNDIuNDQ3TDMuNjEgMTIuM2EyLjkyIDIuOTIgMCAwIDEtMS4zLTMuOTFMMy42OSA1LjZhMi45MiAyLjkyIDAgMCAxIDMuOTItMS4zeiJ9XSxbInBhdGgiLHtkOiJNMiAxOWgzLjc2YTIgMiAwIDAgMCAxLjgtMS4xTDkgMTUifV0sWyJwYXRoIix7ZDoiTTIgMjF2LTQifV0sWyJwYXRoIix7ZDoiTTcgOWguMDEifV1dLERFPVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTEuMjA3YS41LjUgMCAwIDEgLjE0Ni0uMzUzbDItMmEuNS41IDAgMCAxIC43MDggMGwzLjI5MiAzLjI5MmEuNS41IDAgMCAwIC43MDggMGw0LjI5Mi00LjI5MmEuNS41IDAgMCAxIC44NTQuMzUzVjE2YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xeiJ9XV0sRUU9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiI3Iix5OiIxMyIsd2lkdGg6IjkiLGhlaWdodDoiNCIscng6IjEifV0sWyJyZWN0Iix7eDoiNyIseToiNSIsd2lkdGg6IjEyIixoZWlnaHQ6IjQiLHJ4OiIxIn1dXSxpSHQ9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxMWg4In1dLFsicGF0aCIse2Q6Ik03IDE2aDMifV0sWyJwYXRoIix7ZDoiTTcgNmgxMiJ9XV0sYUh0PVtbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTcgMTFoOCJ9XSxbInBhdGgiLHtkOiJNNyAxNmgxMiJ9XSxbInBhdGgiLHtkOiJNNyA2aDMifV1dLG5IdD1bWyJwYXRoIix7ZDoiTTExIDEzdjQifV0sWyJwYXRoIix7ZDoiTTE1IDV2NCJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiNyIseToiMTMiLHdpZHRoOiI5IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjUiLHdpZHRoOiIxMiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV0sJEU9W1sicGF0aCIse2Q6Ik05IDV2NCJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI2Iix4OiI3Iix5OiI5IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNOSAxNXYyIn1dLFsicGF0aCIse2Q6Ik0xNyAzdjIifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiOCIseDoiMTUiLHk6IjUiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNyAxM3YzIn1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XV0sSUU9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInJlY3QiLHt4OiIxNSIseToiNSIsd2lkdGg6IjQiLGhlaWdodDoiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjciLHk6IjgiLHdpZHRoOiI0IixoZWlnaHQ6IjkiLHJ4OiIxIn1dXSxvSHQ9W1sicGF0aCIse2Q6Ik0xMyAxN1Y5In1dLFsicGF0aCIse2Q6Ik0xOCAxN3YtMyJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJwYXRoIix7ZDoiTTggMTdWNSJ9XV0sUEU9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxNmg4In1dLFsicGF0aCIse2Q6Ik03IDExaDEyIn1dLFsicGF0aCIse2Q6Ik03IDZoMyJ9XV0sTkU9W1sicGF0aCIse2Q6Ik0xMyAxN1Y5In1dLFsicGF0aCIse2Q6Ik0xOCAxN1Y1In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxN3YtMyJ9XV0sc0h0PVtbInBhdGgiLHtkOiJNMTEgMTNINyJ9XSxbInBhdGgiLHtkOiJNMTkgOWgtNCJ9XSxbInBhdGgiLHtkOiJNMyAzdjE2YTIgMiAwIDAgMCAyIDJoMTYifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjUiLHdpZHRoOiI0IixoZWlnaHQ6IjEyIixyeDoiMSJ9XSxbInJlY3QiLHt4OiI3Iix5OiI4Iix3aWR0aDoiNCIsaGVpZ2h0OiI5IixyeDoiMSJ9XV0sRkU9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNMTggMTdWOSJ9XSxbInBhdGgiLHtkOiJNMTMgMTdWNSJ9XSxbInBhdGgiLHtkOiJNOCAxN3YtMyJ9XV0sbEh0PVtbInBhdGgiLHtkOiJNMTAgNmg4In1dLFsicGF0aCIse2Q6Ik0xMiAxNmg2In1dLFsicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNOCAxMWg3In1dXSxPRT1bWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsicGF0aCIse2Q6Im0xOSA5LTUgNS00LTQtMyAzIn1dXSxjSHQ9W1sicGF0aCIse2Q6Im0xMy4xMSA3LjY2NCAxLjc4IDIuNjcyIn1dLFsicGF0aCIse2Q6Im0xNC4xNjIgMTIuNzg4LTMuMzI0IDEuNDI0In1dLFsicGF0aCIse2Q6Im0yMCA0LTYuMDYgMS41MTUifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxNSIscjoiMiJ9XV0sZEh0PVtbInBhdGgiLHtkOiJNNSAyMVYzIn1dLFsicGF0aCIse2Q6Ik0xMiAyMVY5In1dLFsicGF0aCIse2Q6Ik0xOSAyMXYtNiJ9XV0sUkU9W1sicGF0aCIse2Q6Ik01IDIxdi02In1dLFsicGF0aCIse2Q6Ik0xMiAyMVY5In1dLFsicGF0aCIse2Q6Ik0xOSAyMVYzIn1dXSxCRT1bWyJwYXRoIix7ZDoiTTUgMjF2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDIxVjMifV0sWyJwYXRoIix7ZDoiTTE5IDIxVjkifV1dLHVIdD1bWyJwYXRoIix7ZDoiTTEyIDE2djUifV0sWyJwYXRoIix7ZDoiTTE2IDE0djcifV0sWyJwYXRoIix7ZDoiTTIwIDEwdjExIn1dLFsicGF0aCIse2Q6Im0yMiAzLTguNjQ2IDguNjQ2YS41LjUgMCAwIDEtLjcwOCAwTDkuMzU0IDguMzU0YS41LjUgMCAwIDAtLjcwNyAwTDIgMTUifV0sWyJwYXRoIix7ZDoiTTQgMTh2MyJ9XSxbInBhdGgiLHtkOiJNOCAxNHY3In1dXSxIRT1bWyJwYXRoIix7ZDoiTTYgNWgxMiJ9XSxbInBhdGgiLHtkOiJNNCAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTIgMTloOCJ9XV0scUU9W1sicGF0aCIse2Q6Ik0yMSAxMmMuNTUyIDAgMS4wMDUtLjQ0OS45NS0uOTk4YTEwIDEwIDAgMCAwLTguOTUzLTguOTUxYy0uNTUtLjA1NS0uOTk4LjM5OC0uOTk4Ljk1djhhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTIxLjIxIDE1Ljg5QTEwIDEwIDAgMSAxIDggMi44MyJ9XV0sakU9W1siY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbImNpcmNsZSIse2N4OiIxOC41IixjeToiNS41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjExLjUiLGN5OiIxMS41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjcuNSIsY3k6IjE2LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE0LjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoiTTMgM3YxNmEyIDIgMCAwIDAgMiAyaDE2In1dXSxwSHQ9W1sicGF0aCIse2Q6Ik0zIDN2MTZhMiAyIDAgMCAwIDIgMmgxNiJ9XSxbInBhdGgiLHtkOiJNNyAxNmMuNS0yIDEuNS03IDQtNyAyIDAgMiAzIDQgMyAyLjUgMCA0LjUtNSA1LTcifV1dLGhIdD1bWyJwYXRoIix7ZDoiTTIwIDRMOSAxNSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlMMyAxOSJ9XSxbInBhdGgiLHtkOiJNOSAxNUw0IDEwIn1dXSxmSHQ9W1sicGF0aCIse2Q6Ik0xOCA2IDcgMTdsLTUtNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTAtNy41IDcuNUwxMyAxNiJ9XV0sbUh0PVtbInBhdGgiLHtkOiJNMTcgMjFhMSAxIDAgMCAwIDEtMXYtNS4zNWMwLS40NTcuMzE2LS44NDQuNzI3LTEuMDQxYTQgNCAwIDAgMC0yLjEzNC03LjU4OSA1IDUgMCAwIDAtOS4xODYgMCA0IDQgMCAwIDAtMi4xMzQgNy41ODhjLjQxMS4xOTguNzI3LjU4NS43MjcgMS4wNDFWMjBhMSAxIDAgMCAwIDEgMVoifV0sWyJwYXRoIix7ZDoiTTYgMTdoMTIifV1dLGdIdD1bWyJwYXRoIix7ZDoiTTIgMTdhNSA1IDAgMCAwIDEwIDBjMC0yLjc2LTIuNS01LTUtMy0yLjUtMi01IC4yNC01IDNaIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2E1IDUgMCAwIDAgMTAgMGMwLTIuNzYtMi41LTUtNS0zLTIuNS0yLTUgLjI0LTUgM1oifV0sWyJwYXRoIix7ZDoiTTcgMTRjMy4yMi0yLjkxIDQuMjktOC43NSA1LTEyIDEuNjYgMi4zOCA0Ljk0IDkgNSAxMiJ9XSxbInBhdGgiLHtkOiJNMjIgOWMtNC4yOSAwLTcuMTQtMi4zMy0xMC03IDUuNzEgMCAxMCA0LjY3IDEwIDdaIn1dXSxiSHQ9W1sicGF0aCIse2Q6Ik0yMCA2IDkgMTdsLTUtNSJ9XV0sdkh0PVtbInBhdGgiLHtkOiJNNSAyMGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMXoifV0sWyJwYXRoIix7ZDoiTTE1IDE4YzEuNS0uNjE1IDMtMi40NjEgMy00LjkyM0MxOCA4Ljc2OSAxNC41IDQuNDYyIDEyIDIgOS41IDQuNDYyIDYgOC43NyA2IDEzLjA3NyA2IDE1LjUzOSA3LjUgMTcuMzg1IDkgMTgifV0sWyJwYXRoIix7ZDoibTE2IDctMi41IDIuNSJ9XSxbInBhdGgiLHtkOiJNOSAyaDYifV1dLHhIdD1bWyJwYXRoIix7ZDoiTTQgMjBhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Im02LjcgMTgtMS0xQzQuMzUgMTUuNjgyIDMgMTQuMDkgMyAxMmE1IDUgMCAwIDEgNC45NS01YzEuNTg0IDAgMi43LjQ1NSA0LjA1IDEuODE4QzEzLjM1IDcuNDU1IDE0LjQ2NiA3IDE2LjA1IDdBNSA1IDAgMCAxIDIxIDEyYzAgMi4wODItMS4zNTkgMy42NzMtMi43IDVsLTEgMSJ9XSxbInBhdGgiLHtkOiJNMTAgNGg0In1dLFsicGF0aCIse2Q6Ik0xMiAydjYuODE4In1dXSx5SHQ9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMCAxLjUgOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgxMCJ9XSxbInBhdGgiLHtkOiJtOCAxOCAxLjUtOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjYiLHI6IjQifV1dLHdIdD1bWyJwYXRoIix7ZDoiTTQgMjBhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Im0xMi40NzQgNS45NDMgMS41NjcgNS4zNGExIDEgMCAwIDAgMS43NS4zMjhsMi42MTYtMy40MDIifV0sWyJwYXRoIix7ZDoibTIwIDktMyA5In1dLFsicGF0aCIse2Q6Im01LjU5NCA4LjIwOSAyLjYxNSAzLjQwM2ExIDEgMCAwIDAgMS43NS0uMzI5bDEuNTY3LTUuMzQifV0sWyJwYXRoIix7ZDoiTTcgMTggNCA5In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjciLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjciLHI6IjIifV1dLE1IdD1bWyJwYXRoIix7ZDoiTTUgMjBhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg2YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik0xNi41IDE4YzEtMiAyLjUtNSAyLjUtOWE3IDcgMCAwIDAtNy03SDYuNjM1YTEgMSAwIDAgMC0uNzY4IDEuNjRMNyA1bC0yLjMyIDUuODAyYTIgMiAwIDAgMCAuOTUgMi41MjZsMi44NyAxLjQ1NiJ9XSxbInBhdGgiLHtkOiJtMTUgNSAxLjQyNS0xLjQyNSJ9XSxbInBhdGgiLHtkOiJtMTcgOCAxLjUzLTEuNTMifV0sWyJwYXRoIix7ZDoiTTkuNzEzIDEyLjE4NSA3IDE4In1dXSxrSHQ9W1sicGF0aCIse2Q6Ik01IDIwYTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINmExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIifV0sWyJwYXRoIix7ZDoibTE3IDE4LTEtOSJ9XSxbInBhdGgiLHtkOiJNNiAydjVhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWMiJ9XSxbInBhdGgiLHtkOiJNNiA0aDEyIn1dLFsicGF0aCIse2Q6Im03IDE4IDEtOSJ9XV0sU0h0PVtbInBhdGgiLHtkOiJtNiA5IDYgNiA2LTYifV1dLHpIdD1bWyJwYXRoIix7ZDoibTE3IDE4LTYtNiA2LTYifV0sWyJwYXRoIix7ZDoiTTcgNnYxMiJ9XV0sQ0h0PVtbInBhdGgiLHtkOiJtNyAxOCA2LTYtNi02In1dLFsicGF0aCIse2Q6Ik0xNyA2djEyIn1dXSxUSHQ9W1sicGF0aCIse2Q6Im0xNSAxOC02LTYgNi02In1dXSxfSHQ9W1sicGF0aCIse2Q6Im05IDE4IDYtNi02LTYifV1dLExIdD1bWyJwYXRoIix7ZDoibTE4IDE1LTYtNi02IDYifV1dLEFIdD1bWyJwYXRoIix7ZDoibTcgMjAgNS01IDUgNSJ9XSxbInBhdGgiLHtkOiJtNyA0IDUgNSA1LTUifV1dLERIdD1bWyJwYXRoIix7ZDoibTcgNiA1IDUgNS01In1dLFsicGF0aCIse2Q6Im03IDEzIDUgNSA1LTUifV1dLEVIdD1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Im0xNyA3IDUgNS01IDUifV0sWyJwYXRoIix7ZDoibTcgNy01IDUgNSA1In1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XV0sJEh0PVtbInBhdGgiLHtkOiJtOSA3LTUgNSA1IDUifV0sWyJwYXRoIix7ZDoibTE1IDcgNSA1LTUgNSJ9XV0sSUh0PVtbInBhdGgiLHtkOiJtMTEgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJtMTggMTctNS01IDUtNSJ9XV0sUEh0PVtbInBhdGgiLHtkOiJtMjAgMTctNS01IDUtNSJ9XSxbInBhdGgiLHtkOiJtNCAxNyA1LTUtNS01In1dXSxOSHQ9W1sicGF0aCIse2Q6Im02IDE3IDUtNS01LTUifV0sWyJwYXRoIix7ZDoibTEzIDE3IDUtNS01LTUifV1dLEZIdD1bWyJwYXRoIix7ZDoibTE3IDExLTUtNS01IDUifV0sWyJwYXRoIix7ZDoibTE3IDE4LTUtNS01IDUifV1dLFZFPVtbInBhdGgiLHtkOiJNMTAuODggMjEuOTQgMTUuNDYgMTQifV0sWyJwYXRoIix7ZDoiTTIxLjE3IDhIMTIifV0sWyJwYXRoIix7ZDoiTTMuOTUgNi4wNiA4LjU0IDE0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV1dLE9IdD1bWyJwYXRoIix7ZDoibTcgMTUgNSA1IDUtNSJ9XSxbInBhdGgiLHtkOiJtNyA5IDUtNSA1IDUifV1dLFJIdD1bWyJwYXRoIix7ZDoiTTEyIDEySDNhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMTMifV0sWyJwYXRoIix7ZDoiTTE4IDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTEgMSAwIDAgMSAxIDF2MmExIDEgMCAwIDEtLjUuODY2In1dLFsicGF0aCIse2Q6Ik0yMiA4YzAtMi41LTItMi41LTItNSJ9XSxbInBhdGgiLHtkOiJNNyAxMnY0In1dXSxCSHQ9W1sicGF0aCIse2Q6Ik0xMCA5aDQifV0sWyJwYXRoIix7ZDoiTTEyIDd2NSJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Im0xOCA5IDMuNTIgMi4xNDdhMSAxIDAgMCAxIC40OC44NTRWMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTYuOTk5YTEgMSAwIDAgMSAuNDgtLjg1NEw2IDkifV0sWyJwYXRoIix7ZDoiTTYgMjFWN2ExIDEgMCAwIDEgLjM3Ni0uNzgybDUtMy45OTlhMSAxIDAgMCAxIDEuMjQ5LjAwMWw1IDRBMSAxIDAgMCAxIDE4IDd2MTQifV1dLEhIdD1bWyJwYXRoIix7ZDoiTTE3IDEySDNhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoMTQifV0sWyJwYXRoIix7ZDoiTTE4IDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Ik0yMSAxNmExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTIyIDhjMC0yLjUtMi0yLjUtMi01In1dLFsicGF0aCIse2Q6Ik03IDEydjQifV1dLFVFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMi4wMSIseTE6IjE2Iix5MjoiMTYifV1dLFdFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04IDEyIDQgNCA0LTQifV1dLEdFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTIgOC00IDQgNCA0In1dLFsicGF0aCIse2Q6Ik0xNiAxMkg4In1dXSxZRT1bWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAxIDEgMTAgMTAifV0sWyJwYXRoIix7ZDoibTIgMjIgMTAtMTAifV0sWyJwYXRoIix7ZDoiTTggMjJIMnYtNiJ9XV0sWkU9W1sicGF0aCIse2Q6Ik0xMiAyMmExMCAxMCAwIDEgMSAxMC0xMCJ9XSxbInBhdGgiLHtkOiJNMjIgMjIgMTIgMTIifV0sWyJwYXRoIix7ZDoiTTIyIDE2djZoLTYifV1dLFhFPVtbInBhdGgiLHtkOiJNMiA4VjJoNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDEwIDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyQTEwIDEwIDAgMSAxIDIgMTIifV1dLFFFPVtbInBhdGgiLHtkOiJNMjIgMTJBMTAgMTAgMCAxIDEgMTIgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMiAxMiAxMiJ9XSxbInBhdGgiLHtkOiJNMTYgMmg2djYifV1dLEpFPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTIgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXSxLRT1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE2IDEyLTQtNC00IDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjgifV1dLGUkPVtbInBhdGgiLHtkOiJNMjEuODAxIDEwQTEwIDEwIDAgMSAxIDE3IDMuMzM1In1dLFsicGF0aCIse2Q6Im05IDExIDMgM0wyMiA0In1dXSx0JD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV0sciQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNiAxMC00IDQtNC00In1dXSxpJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE0IDE2LTQtNCA0LTQifV1dLGEkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXSxuJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTggMTQgNC00IDQgNCJ9XV0scUh0PVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyMWExMCAxMCAwIDAgMSAyLjY5IDIuNyJ9XSxbInBhdGgiLHtkOiJNMi4xODIgMTMuOWExMCAxMCAwIDAgMSAwLTMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjc5IDE3LjYwOWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Ik02LjM5MSAyMC4yNzlhMTAgMTAgMCAwIDEtMi42OS0yLjcifV1dLG8kPVtbImxpbmUiLHt4MToiOCIseDI6IjE2Iix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjE2Iix5MjoiMTYifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI4Iix5MjoiOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sakh0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTYgOGgtNmEyIDIgMCAxIDAgMCA0aDRhMiAyIDAgMSAxIDAgNEg4In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dXSxWSHQ9W1sicGF0aCIse2Q6Ik0xMC4xIDIuMThhOS45MyA5LjkzIDAgMCAxIDMuOCAwIn1dLFsicGF0aCIse2Q6Ik0xNy42IDMuNzFhOS45NSA5Ljk1IDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yMS44MiAxMC4xYTkuOTMgOS45MyAwIDAgMSAwIDMuOCJ9XSxbInBhdGgiLHtkOiJNMjAuMjkgMTcuNmE5Ljk1IDkuOTUgMCAwIDEtMi43IDIuNjkifV0sWyJwYXRoIix7ZDoiTTEzLjkgMjEuODJhOS45NCA5Ljk0IDAgMCAxLTMuOCAwIn1dLFsicGF0aCIse2Q6Ik02LjQgMjAuMjlhOS45NSA5Ljk1IDAgMCAxLTIuNjktMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4IDEzLjlhOS45MyA5LjkzIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0zLjcxIDYuNGE5Ljk1IDkuOTUgMCAwIDEgMi43LTIuNjkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XV0sVUh0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dXSxXSHQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNyAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxMmguMDEifV1dLEdIdD1bWyJwYXRoIix7ZDoiTTcgMTBoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTRoMTAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLFlIdD1bWyJwYXRoIix7ZDoiTTEyIDJhMTAgMTAgMCAwIDEgNy4zOCAxNi43NSJ9XSxbInBhdGgiLHtkOiJtMTYgMTItNC00LTQgNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZWOCJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXSxaSHQ9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMCAxIDcuMzggMTYuNzUifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMi41IDguODc1YTEwIDEwIDAgMCAwLS41IDMifV0sWyJwYXRoIix7ZDoiTTIuODMgMTZhMTAgMTAgMCAwIDAgMi40MyAzLjQifV0sWyJwYXRoIix7ZDoiTTQuNjM2IDUuMjM1YTEwIDEwIDAgMCAxIC44OTEtLjg1NyJ9XSxbInBhdGgiLHtkOiJNOC42NDQgMjEuNDJhMTAgMTAgMCAwIDAgNy42MzEtLjM4In1dXSxzJD1bWyJwYXRoIix7ZDoiTTE1LjYgMi43YTEwIDEwIDAgMSAwIDUuNyA1LjcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTMuNCAxMC42IDE5IDUifV1dLGwkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXSxjJD1bWyJwYXRoIix7ZDoiTTEyLjY1NiA3SDEzYTMgMyAwIDAgMSAyLjk4NCAzLjMwNyJ9XSxbInBhdGgiLHtkOiJNMTMgMTNIOSJ9XSxbInBhdGgiLHtkOiJNMTkuMDcxIDE5LjA3MUExIDEgMCAwIDEgNC45MyA0LjkzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTguMzU3IDIuNjg3YTEwIDEwIDAgMCAxIDEyLjk1NiAxMi45NTYifV0sWyJwYXRoIix7ZDoiTTkgMTdWOSJ9XV0sWEh0PVtbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjM1IDIuNjlBMTAgMTAgMCAwIDEgMjEuMyAxNS42NSJ9XSxbInBhdGgiLHtkOiJNMTkuMDggMTkuMDhBMTAgMTAgMCAxIDEgNC45MiA0LjkyIn1dXSxkJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTkgMTdWN2g0YTMgMyAwIDAgMSAwIDZIOSJ9XV0sdSQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsibGluZSIse3gxOiIxMCIseDI6IjEwIix5MToiMTUiLHkyOiI5In1dLFsibGluZSIse3gxOiIxNCIseDI6IjE0Iix5MToiMTUiLHkyOiI5In1dXSxwJD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dLGgkPVtbInBhdGgiLHtkOiJNOSA5LjAwM2ExIDEgMCAwIDEgMS41MTctLjg1OWw0Ljk5NyAyLjk5N2ExIDEgMCAwIDEgMCAxLjcxOGwtNC45OTcgMi45OTdBMSAxIDAgMCAxIDkgMTQuOTk2eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sUUh0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxNiIsY3k6IjEyIixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxMiIscjoiMiJ9XV0sZiQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XV0sSkh0PVtbInBhdGgiLHtkOiJNMTAgMTZWOS41YTEgMSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTJoNCJ9XSxbInBhdGgiLHtkOiJNOCAxNmg3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxtJD1bWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNNy45OTggOS4wMDNhNSA1IDAgMSAwIDgtLjAwNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0scXA9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXSxnJD1bWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sS0h0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjE1Iix5MToiMTUiLHkyOiI5In1dXSxlcXQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjYifV1dLHRxdD1bWyJwYXRoIix7ZDoiTTExLjA1MSA3LjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2N2wtMS4xNTYtMS4xNTJhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sYiQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXSx2JD1bWyJwYXRoIix7ZDoiTTE4IDIwYTYgNiAwIDAgMC0xMiAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLHgkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik03IDIwLjY2MlYxOWEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYxLjY2MiJ9XV0seSQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV0scnF0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0saXF0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMSA5aDRhMiAyIDAgMCAwIDItMlYzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik03IDIxdi00YTIgMiAwIDAgMSAyLTJoNCJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjE1IixyOiIyIn1dXSxhcXQ9W1sicGF0aCIse2Q6Ik0yMS42NiAxNy42N2ExLjA4IDEuMDggMCAwIDEtLjA0IDEuNkExMiAxMiAwIDAgMSA0LjczIDIuMzhhMS4xIDEuMSAwIDAgMSAxLjYxLS4wNHoifV0sWyJwYXRoIix7ZDoiTTE5LjY1IDE1LjY2QTggOCAwIDAgMSA4LjM1IDQuMzQifV0sWyJwYXRoIix7ZDoibTE0IDEwLTUuNSA1LjUifV0sWyJwYXRoIix7ZDoiTTE0IDE3Ljg1VjEwSDYuMTUifV1dLG5xdD1bWyJwYXRoIix7ZDoiTTIwLjIgNiAzIDExbC0uOS0yLjRjLS4zLTEuMS4zLTIuMiAxLjMtMi41bDEzLjUtNGMxLjEtLjMgMi4yLjMgMi41IDEuM1oifV0sWyJwYXRoIix7ZDoibTYuMiA1LjMgMy4xIDMuOSJ9XSxbInBhdGgiLHtkOiJtMTIuNCAzLjQgMy4xIDQifV0sWyJwYXRoIix7ZDoiTTMgMTFoMTh2OGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMloifV1dLG9xdD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJtOSAxNCAyIDIgNC00In1dXSxzcXQ9W1sicGF0aCIse2Q6Ik0xNiAxNHYyLjJsMS42IDEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydi44MzIifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJyZWN0Iix7eDoiOCIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiNCIscng6IjEifV1dLGxxdD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2NCJ9XSxbInBhdGgiLHtkOiJNMjEgMTRIMTEifV0sWyJwYXRoIix7ZDoibTE1IDEwLTQgNCA0IDQifV1dLGNxdD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTFoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMTZoNCJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTZoLjAxIn1dXSxkcXQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTkgMTRoNiJ9XV0sdXF0PVtbInBhdGgiLHtkOiJNMTEgMTRoMTAifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjEuMzQ0In1dLFsicGF0aCIse2Q6Im0xNyAxOCA0LTQtNC00In1dLFsicGF0aCIse2Q6Ik04IDRINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDEuNzkzLTEuMTEzIn1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiI4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dXSx3JD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTggNEg2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi0uNSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAxLjczIDEifV0sWyJwYXRoIix7ZDoiTTggMThoMSJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDEyLjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXSxNJD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTUuNSJ9XSxbInBhdGgiLHtkOiJNNCAxMy41VjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xMy4zNzggMTUuNjI2YTEgMSAwIDEgMC0zLjAwNC0zLjAwNGwtNS4wMSA1LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV1dLHBxdD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiNCIseDoiOCIseToiMiIscng6IjEiLHJ5OiIxIn1dLFsicGF0aCIse2Q6Ik0xNiA0aDJhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNOSAxNGg2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3YtNiJ9XV0saHF0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik05IDEydi0xaDZ2MSJ9XSxbInBhdGgiLHtkOiJNMTEgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2NiJ9XV0sZnF0PVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI0Iix4OiI4Iix5OiIyIixyeDoiMSIscnk6IjEifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Im0xNSAxMS02IDYifV0sWyJwYXRoIix7ZDoibTkgMTEgNiA2In1dXSxtcXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsMi00In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxncXQ9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjgiLHk6IjIiLHJ4OiIxIixyeToiMSJ9XSxbInBhdGgiLHtkOiJNMTYgNGgyYTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yaDIifV1dLGJxdD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwtNC0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSx2cXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsLTItNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0seHF0PVtbInBhdGgiLHtkOiJNMTIgNnY2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSx5cXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsNC0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSx3cXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZoNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sTXF0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sa3F0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDIgNCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sU3F0PVtbInBhdGgiLHtkOiJNMTIgNnYxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0senF0PVtbInBhdGgiLHtkOiJNMTIgNnY2bC0yIDQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLENxdD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwtNCAyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxUcXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZIOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sX3F0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDIgMSJ9XSxbInBhdGgiLHtkOiJNMTIuMzM3IDIxLjk5NGExMCAxMCAwIDEgMSA5LjU4OC04Ljc2NyJ9XSxbInBhdGgiLHtkOiJtMTQgMTggNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNMTggMTR2OCJ9XV0sTHF0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2NSJ9XSxbInBhdGgiLHtkOiJNMjAgMjFoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMS4yNSA4LjJBMTAgMTAgMCAxIDAgMTYgMjEuMTYifV1dLEFxdD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwxLjU2Ljc4In1dLFsicGF0aCIse2Q6Ik0xMy4yMjcgMjEuOTI1YTEwIDEwIDAgMSAxIDguNzY3LTkuNTg4In1dLFsicGF0aCIse2Q6Im0xNCAxOCA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xOCAyMnYtOCJ9XV0sRHF0PVtbInBhdGgiLHtkOiJNMTIgNnY2bDQgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJhMTAgMTAgMCAxIDAtMTEgOS45NSJ9XSxbInBhdGgiLHtkOiJtMjIgMTYtNS41IDUuNUwxNCAxOSJ9XV0sRXF0PVtbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDAgMSA3LjM4IDE2Ljc1In1dLFsicGF0aCIse2Q6Ik0xMiA2djZsNCAyIn1dLFsicGF0aCIse2Q6Ik0yLjUgOC44NzVhMTAgMTAgMCAwIDAtLjUgMyJ9XSxbInBhdGgiLHtkOiJNMi44MyAxNmExMCAxMCAwIDAgMCAyLjQzIDMuNCJ9XSxbInBhdGgiLHtkOiJNNC42MzYgNS4yMzVhMTAgMTAgMCAwIDEgLjg5MS0uODU3In1dLFsicGF0aCIse2Q6Ik04LjY0NCAyMS40MmExMCAxMCAwIDAgMCA3LjYzMS0uMzgifV1dLCRxdD1bWyJwYXRoIix7ZDoiTTEyIDZ2NmwzLjY0NCAxLjgyMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTloNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTZ2NiJ9XSxbInBhdGgiLHtkOiJNMjEuOTIgMTMuMjY3YTEwIDEwIDAgMSAwLTguNjUzIDguNjUzIn1dXSxJcXQ9W1sicGF0aCIse2Q6Ik0xMiA2djZsNCAyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxQcXQ9W1sicGF0aCIse2Q6Ik0xMCA5LjE3YTMgMyAwIDEgMCAwIDUuNjYifV0sWyJwYXRoIix7ZDoiTTE3IDkuMTdhMyAzIDAgMSAwIDAgNS42NiJ9XSxbInJlY3QiLHt4OiIyIix5OiI1Iix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSxOcXQ9W1sicGF0aCIse2Q6Ik0xMiAxMnY0In1dLFsicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTguMTI4IDE2Ljk0OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTEgMSAwIDAgMSAwIDloLTEuNjQyIn1dXSxGcXQ9W1sicGF0aCIse2Q6Ik0yMSAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy41IDhoLTEuNzlBNyA3IDAgMSAwIDMgMTMuNjA3In1dLFsicGF0aCIse2Q6Ik03IDExdjRoNCJ9XSxbInBhdGgiLHtkOiJNOCAxOWE1IDUgMCAwIDAgOS0zIDQuNSA0LjUgMCAwIDAtNC41LTQuNSA0LjgyIDQuODIgMCAwIDAtMy40MSAxLjQxTDcgMTUifV1dLE9xdD1bWyJwYXRoIix7ZDoibTE3IDE1LTUuNSA1LjVMOSAxOCJ9XSxbInBhdGgiLHtkOiJNNS41MTYgMTYuMDdBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDMuNTAxIDcuMzI3In1dXSxScXQ9W1sicGF0aCIse2Q6Im0xMC44NTIgMTkuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xMy4xNDggMTQuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Ik0xMy4xNDggMTkuNzcyYTMgMyAwIDEgMC0yLjI5Ni01LjU0NGwtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy41MyAyMC42OTYtLjM4Mi0uOTI0YTMgMyAwIDEgMS0yLjI5Ni01LjU0NCJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDE1Ljg1Mi45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTQuNzcyIDE4LjE0OC45MjMuMzgzIn1dLFsicGF0aCIse2Q6Ik00LjIgMTUuMWE3IDcgMCAxIDEgOS45My05Ljg1OEE3IDcgMCAwIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMiJ9XSxbInBhdGgiLHtkOiJtOS4yMjggMTUuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtOS4yMjggMTguMTQ4LS45MjMuMzgzIn1dXSxrJD1bWyJwYXRoIix7ZDoiTTEyIDEzdjhsLTQtNCJ9XSxbInBhdGgiLHtkOiJtMTIgMjEgNC00In1dLFsicGF0aCIse2Q6Ik00LjM5MyAxNS4yNjlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNDM2IDguMjg0In1dXSxCcXQ9W1sicGF0aCIse2Q6Ik00IDE0Ljg5OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi41IDguMjQyIn1dLFsicGF0aCIse2Q6Ik04IDE5djEifV0sWyJwYXRoIix7ZDoiTTggMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTYgMTl2MSJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjF2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2MSJ9XV0sSHF0PVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTdINyJ9XSxbInBhdGgiLHtkOiJNMTcgMjFIOSJ9XV0scXF0PVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNMTYgMTR2MiJ9XSxbInBhdGgiLHtkOiJNOCAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xNiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTggMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmguMDEifV1dLGpxdD1bWyJwYXRoIix7ZDoiTTExIDIwdjIifV0sWyJwYXRoIix7ZDoiTTE4LjM3NiAxNC41MTJhNiA2IDAgMCAwIDMuNDYxLTQuMTI3Yy4xNDgtLjYyNS0uNjU5LS45Ny0xLjI0OC0uNzE0YTQgNCAwIDAgMS01LjI1OS01LjI2Yy4yNTUtLjU4OS0uMDktMS4zOTUtLjcxNi0xLjI0OGE2IDYgMCAwIDAtNC41OTQgNS4zNiJ9XSxbInBhdGgiLHtkOiJNMyAyMGE1IDUgMCAxIDEgOC45LTRIMTNhMyAzIDAgMCAxIDIgNS4yNCJ9XSxbInBhdGgiLHtkOiJNNyAxOXYyIn1dXSxWcXQ9W1sicGF0aCIse2Q6Ik02IDE2LjMyNkE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgLjUgOC45NzMifV0sWyJwYXRoIix7ZDoibTEzIDEyLTMgNWg0bC0zIDUifV1dLFVxdD1bWyJwYXRoIix7ZDoiTTEzIDE2YTMgMyAwIDAgMSAwIDZIN2E1IDUgMCAxIDEgNC45LTZ6In1dLFsicGF0aCIse2Q6Ik0xOC4zNzYgMTQuNTEyYTYgNiAwIDAgMCAzLjQ2MS00LjEyN2MuMTQ4LS42MjUtLjY1OS0uOTctMS4yNDgtLjcxNGE0IDQgMCAwIDEtNS4yNTktNS4yNmMuMjU1LS41ODktLjA5LTEuMzk1LS43MTYtMS4yNDhhNiA2IDAgMCAwLTQuNTk0IDUuMzYifV1dLFdxdD1bWyJwYXRoIix7ZDoiTTEwLjk0IDUuMjc0QTcgNyAwIDAgMSAxNS43MSAxMGgxLjc5YTQuNSA0LjUgMCAwIDEgNC4yMjIgNi4wNTcifV0sWyJwYXRoIix7ZDoiTTE4Ljc5NiAxOC44MUE0LjUgNC41IDAgMCAxIDE3LjUgMTlIOUE3IDcgMCAwIDEgNS43OSA1Ljc4In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLEdxdD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoibTkuMiAyMiAzLTcifV0sWyJwYXRoIix7ZDoibTkgMTMtMyA3In1dLFsicGF0aCIse2Q6Im0xNyAxMy0zIDcifV1dLFlxdD1bWyJwYXRoIix7ZDoiTTQgMTQuODk5QTcgNyAwIDEgMSAxNS43MSA4aDEuNzlhNC41IDQuNSAwIDAgMSAyLjUgOC4yNDIifV0sWyJwYXRoIix7ZDoiTTE2IDE0djYifV0sWyJwYXRoIix7ZDoiTTggMTR2NiJ9XSxbInBhdGgiLHtkOiJNMTIgMTZ2NiJ9XV0sWnF0PVtbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJNOCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTggMTloLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTEyIDIxaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWguMDEifV1dLFhxdD1bWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTE1Ljk0NyAxMi42NWE0IDQgMCAwIDAtNS45MjUtNC4xMjgifV0sWyJwYXRoIix7ZDoiTTMgMjBhNSA1IDAgMSAxIDguOS00SDEzYTMgMyAwIDAgMSAyIDUuMjQifV0sWyJwYXRoIix7ZDoiTTExIDIwdjIifV0sWyJwYXRoIix7ZDoiTTcgMTl2MiJ9XV0sUXF0PVtbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im0xOS4wNyA0LjkzLTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMTUuOTQ3IDEyLjY1YTQgNCAwIDAgMC01LjkyNS00LjEyOCJ9XSxbInBhdGgiLHtkOiJNMTMgMjJIN2E1IDUgMCAxIDEgNC45LTZIMTNhMyAzIDAgMCAxIDAgNloifV1dLEpxdD1bWyJwYXRoIix7ZDoibTE3IDE4LTEuNTM1IDEuNjA1YTUgNSAwIDAgMS04LTEuNSJ9XSxbInBhdGgiLHtkOiJNMTcgMjJ2LTRoLTQifV0sWyJwYXRoIix7ZDoiTTIwLjk5NiAxNS4yNTFBNC41IDQuNSAwIDAgMCAxNy40OTUgOGgtMS43OWE3IDcgMCAxIDAtMTIuNzA5IDUuNjA3In1dLFsicGF0aCIse2Q6Ik03IDEwdjRoNCJ9XSxbInBhdGgiLHtkOiJtNyAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV1dLFMkPVtbInBhdGgiLHtkOiJNMTIgMTN2OCJ9XSxbInBhdGgiLHtkOiJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiJ9XSxbInBhdGgiLHtkOiJtOCAxNyA0LTQgNCA0In1dXSxLcXQ9W1sicGF0aCIse2Q6Ik0xNy41IDE5SDlhNyA3IDAgMSAxIDYuNzEtOWgxLjc5YTQuNSA0LjUgMCAxIDEgMCA5WiJ9XV0sZWp0PVtbInBhdGgiLHtkOiJNMTcuNSAxMmExIDEgMCAxIDEgMCA5SDkuMDA2YTcgNyAwIDEgMSA2LjcwMi05eiJ9XSxbInBhdGgiLHtkOiJNMjEuODMyIDlBMyAzIDAgMCAwIDE5IDdoLTIuMjA3YTUuNSA1LjUgMCAwIDAtMTAuNzIuNjEifV1dLHRqdD1bWyJwYXRoIix7ZDoiTTE2LjE3IDcuODMgMiAyMiJ9XSxbInBhdGgiLHtkOiJNNC4wMiAxMmEyLjgyNyAyLjgyNyAwIDEgMSAzLjgxLTQuMTdBMi44MjcgMi44MjcgMCAxIDEgMTIgNC4wMmEyLjgyNyAyLjgyNyAwIDEgMSA0LjE3IDMuODFBMi44MjcgMi44MjcgMCAxIDEgMTkuOTggMTJhMi44MjcgMi44MjcgMCAxIDEtMy44MSA0LjE3QTIuODI3IDIuODI3IDAgMSAxIDEyIDE5Ljk4YTIuODI3IDIuODI3IDAgMSAxLTQuMTctMy44MUExIDEgMCAxIDEgNCAxMiJ9XSxbInBhdGgiLHtkOiJtNy44MyA3LjgzIDguMzQgOC4zNCJ9XV0scmp0PVtbInBhdGgiLHtkOiJNMTcuMjggOS4wNWE1LjUgNS41IDAgMSAwLTEwLjU2IDBBNS41IDUuNSAwIDEgMCAxMiAxNy42NmE1LjUgNS41IDAgMSAwIDUuMjgtOC42WiJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNjZMMTIgMjIifV1dLHokPVtbInBhdGgiLHtkOiJtMTggMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJtNiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoibTE0LjUgNC01IDE2In1dXSxpanQ9W1sicGF0aCIse2Q6Im0xNiAxOCA2LTYtNi02In1dLFsicGF0aCIse2Q6Im04IDYtNiA2IDYgNiJ9XV0sYWp0PVtbInBvbHlnb24iLHtwb2ludHM6IjEyIDIgMjIgOC41IDIyIDE1LjUgMTIgMjIgMiAxNS41IDIgOC41IDEyIDIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjE1LjUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMjIgOC41IDEyIDE1LjUgMiA4LjUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMiAxNS41IDEyIDguNSAyMiAxNS41In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMiIseTI6IjguNSJ9XV0sbmp0PVtbInBhdGgiLHtkOiJNMjEgMTZWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDctNEEyIDIgMCAwIDAgMjEgMTZ6In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjcuNSA0LjIxIDEyIDYuODEgMTYuNSA0LjIxIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjcuNSAxOS43OSA3LjUgMTQuNiAzIDEyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjIxIDEyIDE2LjUgMTQuNiAxNi41IDE5Ljc5In1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjcgNi45NiAxMiAxMi4wMSAyMC43MyA2Ljk2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMjIuMDgiLHkyOiIxMiJ9XV0sb2p0PVtbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjIifV0sWyJwYXRoIix7ZDoiTTE2IDhhMSAxIDAgMCAxIDEgMXY4YTQgNCAwIDAgMS00IDRIN2E0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMWgxNGE0IDQgMCAxIDEgMCA4aC0xIn1dLFsicGF0aCIse2Q6Ik02IDJ2MiJ9XV0sc2p0PVtbInBhdGgiLHtkOiJNMTEgMTAuMjcgNyAzLjM0In1dLFsicGF0aCIse2Q6Im0xMSAxMy43My00IDYuOTMifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE0IDEyaDgifV0sWyJwYXRoIix7ZDoibTE3IDIwLjY2LTEtMS43MyJ9XSxbInBhdGgiLHtkOiJtMTcgMy4zNC0xIDEuNzMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJtMjAuNjYgMTctMS43My0xIn1dLFsicGF0aCIse2Q6Im0yMC42NiA3LTEuNzMgMSJ9XSxbInBhdGgiLHtkOiJtMy4zNCAxNyAxLjczLTEifV0sWyJwYXRoIix7ZDoibTMuMzQgNyAxLjczIDEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI4In1dXSxsanQ9W1siY2lyY2xlIix7Y3g6IjgiLGN5OiI4IixyOiI2In1dLFsicGF0aCIse2Q6Ik0xOC4wOSAxMC4zN0E2IDYgMCAxIDEgMTAuMzQgMTgifV0sWyJwYXRoIix7ZDoiTTcgNmgxdjQifV0sWyJwYXRoIix7ZDoibTE2LjcxIDEzLjg4LjcuNzEtMi44MiAyLjgyIn1dXSxDJD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XV0sanA9W1sicGF0aCIse2Q6Ik0xMC41IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY1LjUifV0sWyJwYXRoIix7ZDoibTE0LjMgMTkuNiAxLS40In1dLFsicGF0aCIse2Q6Ik0xNSAzdjcuNSJ9XSxbInBhdGgiLHtkOiJtMTUuMiAxNi45LS45LS4zIn1dLFsicGF0aCIse2Q6Im0xNi42IDIxLjcuMy0uOSJ9XSxbInBhdGgiLHtkOiJtMTYuOCAxNS4zLS40LTEifV0sWyJwYXRoIix7ZDoibTE5LjEgMTUuMi4zLS45In1dLFsicGF0aCIse2Q6Im0xOS42IDIxLjctLjQtMSJ9XSxbInBhdGgiLHtkOiJtMjAuNyAxNi44IDEtLjQifV0sWyJwYXRoIix7ZDoibTIxLjcgMTkuNC0uOS0uMyJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLFQkPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dLGNqdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNy41IDN2MTgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJwYXRoIix7ZDoiTTE2LjUgM3YxOCJ9XV0sZGp0PVtbInBhdGgiLHtkOiJNMTQgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJNMTkgM2ExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtNyAxNSAzIDMifV0sWyJwYXRoIix7ZDoibTcgMjEgMy0zSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXSx1anQ9W1sicGF0aCIse2Q6Ik0xNSA2djEyYTMgMyAwIDEgMCAzLTNINmEzIDMgMCAxIDAgMyAzVjZhMyAzIDAgMSAwLTMgM2gxMmEzIDMgMCAxIDAtMy0zIn1dXSxwanQ9W1sicGF0aCIse2Q6Im0xNi4yNCA3Ljc2LTEuODA0IDUuNDExYTIgMiAwIDAgMS0xLjI2NSAxLjI2NUw3Ljc2IDE2LjI0bDEuODA0LTUuNDExYTIgMiAwIDAgMSAxLjI2NS0xLjI2NXoifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLGhqdD1bWyJwYXRoIix7ZDoiTTE1LjUzNiAxMS4yOTNhMSAxIDAgMCAwIDAgMS40MTRsMi4zNzYgMi4zNzdhMSAxIDAgMCAwIDEuNDE0IDBsMi4zNzctMi4zNzdhMSAxIDAgMCAwIDAtMS40MTRsLTIuMzc3LTIuMzc3YTEgMSAwIDAgMC0xLjQxNCAweiJ9XSxbInBhdGgiLHtkOiJNMi4yOTcgMTEuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc3IDIuMzc3YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc3YTEgMSAwIDAgMCAwLTEuNDE0TDYuMDg4IDguOTE2YTEgMSAwIDAgMC0xLjQxNCAweiJ9XSxbInBhdGgiLHtkOiJNOC45MTYgMTcuOTEyYTEgMSAwIDAgMCAwIDEuNDE1bDIuMzc3IDIuMzc2YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc2YTEgMSAwIDAgMCAwLTEuNDE1bC0yLjM3Ny0yLjM3NmExIDEgMCAwIDAtMS40MTQgMHoifV0sWyJwYXRoIix7ZDoiTTguOTE2IDQuNjc0YTEgMSAwIDAgMCAwIDEuNDE0bDIuMzc3IDIuMzc2YTEgMSAwIDAgMCAxLjQxNCAwbDIuMzc3LTIuMzc2YTEgMSAwIDAgMCAwLTEuNDE0bC0yLjM3Ny0yLjM3N2ExIDEgMCAwIDAtMS40MTQgMHoifV1dLGZqdD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjgiLHg6IjUiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI4Iix4OiIyIix5OiIxNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTYgMThoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoNiJ9XV0sbWp0PVtbInBhdGgiLHtkOiJNMyAyMGExIDEgMCAwIDEtMS0xdi0xYTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFaIn1dLFsicGF0aCIse2Q6Ik0yMCAxNmE4IDggMCAxIDAtMTYgMCJ9XSxbInBhdGgiLHtkOiJNMTIgNHY0In1dLFsicGF0aCIse2Q6Ik0xMCA0aDQifV1dLGdqdD1bWyJwYXRoIix7ZDoibTIwLjkgMTguNTUtOC0xNS45OGExIDEgMCAwIDAtMS44IDBsLTggMTUuOTgifV0sWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiMTkiLHJ4OiI5IixyeToiMyJ9XV0sXyQ9W1sicGF0aCIse2Q6Ik0xNiAydjIifV0sWyJwYXRoIix7ZDoiTTE3LjkxNSAyMmE2IDYgMCAwIDAtMTIgMCJ9XSxbInBhdGgiLHtkOiJNOCAydjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxianQ9W1sicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTR2NyJ9XSxbInBhdGgiLHtkOiJNNyAxNHY3In1dLFsicGF0aCIse2Q6Ik0xNyAzdjMifV0sWyJwYXRoIix7ZDoiTTcgM3YzIn1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyLjMgNi4zIn1dLFsicGF0aCIse2Q6Im0xNCA2IDcuNyA3LjcifV0sWyJwYXRoIix7ZDoibTggNiA4IDgifV1dLHZqdD1bWyJwYXRoIix7ZDoiTTE2IDJ2MiJ9XSxbInBhdGgiLHtkOiJNNyAyMnYtMmEyIDIgMCAwIDEgMi0yaDZhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik04IDJ2MiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiIzIn1dLFsicmVjdCIse3g6IjMiLHk6IjQiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLHhqdD1bWyJwYXRoIix7ZDoiTTIyIDcuN2MwLS42LS40LTEuMi0uOC0xLjVsLTYuMy0zLjlhMS43MiAxLjcyIDAgMCAwLTEuNyAwbC0xMC4zIDZjLS41LjItLjkuOC0uOSAxLjR2Ni42YzAgLjUuNCAxLjIuOCAxLjVsNi4zIDMuOWExLjcyIDEuNzIgMCAwIDAgMS43IDBsMTAuMy02Yy41LS4zLjktMSAuOS0xLjVaIn1dLFsicGF0aCIse2Q6Ik0xMCAyMS45VjE0TDIuMSA5LjEifV0sWyJwYXRoIix7ZDoibTEwIDE0IDExLjktNi45In1dLFsicGF0aCIse2Q6Ik0xNCAxOS44di04LjEifV0sWyJwYXRoIix7ZDoiTTE4IDE3LjVWOS40In1dXSx5anQ9W1sicGF0aCIse2Q6Ik0xMiAyYTEwIDEwIDAgMSAwIDEwIDEwIDQgNCAwIDAgMS01LTUgNCA0IDAgMCAxLTUtNSJ9XSxbInBhdGgiLHtkOiJNOC41IDguNXYuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE1LjV2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYuMDEifV0sWyJwYXRoIix7ZDoiTTExIDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxNHYuMDEifV1dLHdqdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE4YTYgNiAwIDAgMCAwLTEydjEyeiJ9XV0sTWp0PVtbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMTJ2OGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMnYtOCJ9XSxbInBhdGgiLHtkOiJtNCA4IDE2LTQifV0sWyJwYXRoIix7ZDoibTguODYgNi43OC0uNDUtMS44MWEyIDIgMCAwIDEgMS40NS0yLjQzbDEuOTQtLjQ4YTIgMiAwIDAgMSAyLjQzIDEuNDZsLjQ1IDEuOCJ9XV0sa2p0PVtbInBhdGgiLHtkOiJtMTIgMTUgMiAyIDQtNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXSxTanQ9W1sibGluZSIse3gxOiIxMiIseDI6IjE4Iix5MToiMTUiLHkyOiIxNSJ9XSxbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjgiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIn1dXSx6anQ9W1sibGluZSIse3gxOiIxNSIseDI6IjE1Iix5MToiMTIiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE1Iix5MjoiMTUifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV0sQ2p0PVtbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjE4Iix5MjoiMTIifV0sWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV0sVGp0PVtbImxpbmUiLHt4MToiMTIiLHgyOiIxOCIseTE6IjEyIix5MjoiMTgifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTgiLHkxOiIxOCIseTI6IjEyIn1dLFsicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIxNCIseDoiOCIseToiOCIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDIifV1dLF9qdD1bWyJyZWN0Iix7d2lkdGg6IjE0IixoZWlnaHQ6IjE0Iix4OiI4Iix5OiI4IixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTQgMTZjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMiJ9XV0sTGp0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNOS4xNyAxNC44M2E0IDQgMCAxIDAgMC01LjY2In1dXSxBanQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNC44MyAxNC44M2E0IDQgMCAxIDEgMC01LjY2In1dXSxEanQ9W1sicGF0aCIse2Q6Ik0yMCA0djdhNCA0IDAgMCAxLTQgNEg0In1dLFsicGF0aCIse2Q6Im05IDEwLTUgNSA1IDUifV1dLEVqdD1bWyJwYXRoIix7ZDoibTE1IDEwIDUgNS01IDUifV0sWyJwYXRoIix7ZDoiTTQgNHY3YTQgNCAwIDAgMCA0IDRoMTIifV1dLCRqdD1bWyJwYXRoIix7ZDoibTE0IDE1LTUgNS01LTUifV0sWyJwYXRoIix7ZDoiTTIwIDRoLTdhNCA0IDAgMCAwLTQgNHYxMiJ9XV0sSWp0PVtbInBhdGgiLHtkOiJNMTQgOSA5IDQgNCA5In1dLFsicGF0aCIse2Q6Ik0yMCAyMGgtN2E0IDQgMCAwIDEtNC00VjQifV1dLFBqdD1bWyJwYXRoIix7ZDoibTEwIDE1IDUgNSA1LTUifV0sWyJwYXRoIix7ZDoiTTQgNGg3YTQgNCAwIDAgMSA0IDR2MTIifV1dLE5qdD1bWyJwYXRoIix7ZDoibTEwIDkgNS01IDUgNSJ9XSxbInBhdGgiLHtkOiJNNCAyMGg3YTQgNCAwIDAgMCA0LTRWNCJ9XV0sRmp0PVtbInBhdGgiLHtkOiJNMjAgMjB2LTdhNCA0IDAgMCAwLTQtNEg0In1dLFsicGF0aCIse2Q6Ik05IDE0IDQgOWw1LTUifV1dLE9qdD1bWyJwYXRoIix7ZDoibTE1IDE0IDUtNS01LTUifV0sWyJwYXRoIix7ZDoiTTQgMjB2LTdhNCA0IDAgMCAxIDQtNGgxMiJ9XV0sUmp0PVtbInBhdGgiLHtkOiJNMTIgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNyAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xNyAydjIifV0sWyJwYXRoIix7ZDoiTTIgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMiAxN2gyIn1dLFsicGF0aCIse2Q6Ik0yIDdoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTdoMiJ9XSxbInBhdGgiLHtkOiJNMjAgN2gyIn1dLFsicGF0aCIse2Q6Ik03IDIwdjIifV0sWyJwYXRoIix7ZDoiTTcgMnYyIn1dLFsicmVjdCIse3g6IjQiLHk6IjQiLHdpZHRoOiIxNiIsaGVpZ2h0OiIxNiIscng6IjIifV0sWyJyZWN0Iix7eDoiOCIseToiOCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjEifV1dLEJqdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEwIDkuM2EyLjggMi44IDAgMCAwLTMuNSAxIDMuMSAzLjEgMCAwIDAgMCAzLjQgMi43IDIuNyAwIDAgMCAzLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTcgOS4zYTIuOCAyLjggMCAwIDAtMy41IDEgMy4xIDMuMSAwIDAgMCAwIDMuNCAyLjcgMi43IDAgMCAwIDMuNSAxIn1dXSxIanQ9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjEwIix5MjoiMTAifV1dLHFqdD1bWyJwYXRoIix7ZDoiTTEwLjIgMThINC43NzRhMS41IDEuNSAwIDAgMS0xLjM1Mi0uOTcgMTEgMTEgMCAwIDEgLjEzMi02LjQ4NyJ9XSxbInBhdGgiLHtkOiJNMTggMTAuMlY0Ljc3NGExLjUgMS41IDAgMCAwLS45Ny0xLjM1MiAxMSAxMSAwIDAgMC02LjQ4Ni4xMzIifV0sWyJwYXRoIix7ZDoiTTE4IDVhNCAzIDAgMCAxIDQgMyAyIDIgMCAwIDEtMiAyIDEwIDEwIDAgMCAwLTUuMTM5IDEuNDIifV0sWyJwYXRoIix7ZDoiTTUgMThhMyA0IDAgMCAwIDMgNCAyIDIgMCAwIDAgMi0yIDEwIDEwIDAgMCAxIDEuNDItNS4xNCJ9XSxbInBhdGgiLHtkOiJNOC43MDkgMi41NTRhMTAgMTAgMCAwIDAtNi4xNTUgNi4xNTUgMS41IDEuNSAwIDAgMCAuNjc2IDEuNjI2bDkuODA3IDUuNDJhMiAyIDAgMCAwIDIuNzE4LTIuNzE4bC01LjQyLTkuODA3YTEuNSAxLjUgMCAwIDAtMS42MjYtLjY3NiJ9XV0samp0PVtbInBhdGgiLHtkOiJNNiAydjE0YTIgMiAwIDAgMCAyIDJoMTQifV0sWyJwYXRoIix7ZDoiTTE4IDIyVjhhMiAyIDAgMCAwLTItMkgyIn1dXSxWanQ9W1sicGF0aCIse2Q6Ik00IDlhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoNGExIDEgMCAwIDEgMSAxdjRhMiAyIDAgMCAwIDIgMmgyYTIgMiAwIDAgMCAyLTJ2LTRhMSAxIDAgMCAxIDEtMWg0YTIgMiAwIDAgMCAyLTJ2LTJhMiAyIDAgMCAwLTItMmgtNGExIDEgMCAwIDEtMS0xVjRhMiAyIDAgMCAwLTItMmgtMmEyIDIgMCAwIDAtMiAydjRhMSAxIDAgMCAxLTEgMXoifV1dLFVqdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTgiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiI2Iix4MjoiMiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiI2Iix5MjoiMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTgifV1dLFdqdD1bWyJwYXRoIix7ZDoiTTExLjU2MiAzLjI2NmEuNS41IDAgMCAxIC44NzYgMEwxNS4zOSA4Ljg3YTEgMSAwIDAgMCAxLjUxNi4yOTRMMjEuMTgzIDUuNWEuNS41IDAgMCAxIC43OTguNTE5bC0yLjgzNCAxMC4yNDZhMSAxIDAgMCAxLS45NTYuNzM0SDUuODFhMSAxIDAgMCAxLS45NTctLjczNEwyLjAyIDYuMDJhLjUuNSAwIDAgMSAuNzk4LS41MTlsNC4yNzYgMy42NjRhMSAxIDAgMCAwIDEuNTE2LS4yOTR6In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXSxHanQ9W1sicGF0aCIse2Q6Im0yMS4xMiA2LjQtNi4wNS00LjA2YTIgMiAwIDAgMC0yLjE3LS4wNUwyLjk1IDguNDFhMiAyIDAgMCAwLS45NSAxLjd2NS44MmEyIDIgMCAwIDAgLjg4IDEuNjZsNi4wNSA0LjA3YTIgMiAwIDAgMCAyLjE3LjA1bDkuOTUtNi4xMmEyIDIgMCAwIDAgLjk1LTEuN1Y4LjA2YTIgMiAwIDAgMC0uODgtMS42NloifV0sWyJwYXRoIix7ZDoiTTEwIDIydi04TDIuMjUgOS4xNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTQgMTEuNzctNi44NyJ9XV0sWWp0PVtbInBhdGgiLHtkOiJtNiA4IDEuNzUgMTIuMjhhMiAyIDAgMCAwIDIgMS43Mmg0LjU0YTIgMiAwIDAgMCAyLTEuNzJMMTggOCJ9XSxbInBhdGgiLHtkOiJNNSA4aDE0In1dLFsicGF0aCIse2Q6Ik03IDE1YTYuNDcgNi40NyAwIDAgMSA1IDAgNi40NyA2LjQ3IDAgMCAwIDUgMCJ9XSxbInBhdGgiLHtkOiJtMTIgOCAxLTZoMiJ9XV0sWmp0PVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgNXYxNGE5IDMgMCAwIDAgMTggMFY1In1dXSxYanQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjgifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI2Iix5MToiMyIseTI6IjYifV0sWyJsaW5lIix7eDE6IjIxIix4MjoiMTgiLHkxOiIzIix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjYiLHkxOiIyMSIseTI6IjE4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE4Iix5MToiMjEiLHkyOiIxOCJ9XV0sUWp0PVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDUgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEgOS4zVjUifV0sWyJwYXRoIix7ZDoiTTMgNXYxNGE5IDMgMCAwIDAgNi40NyAyLjg4In1dLFsicGF0aCIse2Q6Ik0xMiAxMnY0aDQifV0sWyJwYXRoIix7ZDoiTTEzIDIwYTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTIgMTYifV1dLEpqdD1bWyJwYXRoIix7ZDoiTTExIDExLjMxYzEuMTcuNTYgMS41NCAxLjY5IDMuNSAxLjY5IDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNMTEuNzUgMThjLjM1LjUgMS40NSAxIDIuNzUgMSAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik03IDNhMSAxIDAgMCAwLTEgMXYxNmExIDEgMCAwIDAgMSAxaDRhMSAxIDAgMCAwIDEtMUwxMCA0YTEgMSAwIDAgMC0xLTF6In1dXSxLanQ9W1sicGF0aCIse2Q6Ik0yMSAxMS42OTNWNSJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS44NzUtMS44NzUifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSAzIDAgMCAwIDguNjk3IDIuOTk4In1dLFsicGF0aCIse2Q6Ik0zIDV2MTRhOSAzIDAgMCAwIDkuMjggMi45OTkifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV1dLGVWdD1bWyJlbGxpcHNlIix7Y3g6IjEyIixjeToiNSIscng6IjkiLHJ5OiIzIn1dLFsicGF0aCIse2Q6Ik0zIDVWMTlBOSAzIDAgMCAwIDE1IDIxLjg0In1dLFsicGF0aCIse2Q6Ik0yMSA1VjgifV0sWyJwYXRoIix7ZDoiTTIxIDEyTDE4IDE3SDIyTDE5IDIyIn1dLFsicGF0aCIse2Q6Ik0zIDEyQTkgMyAwIDAgMCAxNC41OSAxNC44NyJ9XV0sdFZ0PVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiI1IixyeDoiOSIscnk6IjMifV0sWyJwYXRoIix7ZDoiTTMgNVYxOUE5IDMgMCAwIDAgMjEgMTlWNSJ9XSxbInBhdGgiLHtkOiJNMyAxMkE5IDMgMCAwIDAgMjEgMTIifV1dLHJWdD1bWyJwYXRoIix7ZDoibTEzIDIxLTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTIwIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt4OiI2Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiI4IixyeDoiMi41In1dXSxpVnQ9W1sicGF0aCIse2Q6Ik0xMCAxOGgxMCJ9XSxbInBhdGgiLHtkOiJtMTcgMjEgMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJNMyAxMWguMDEifV0sWyJyZWN0Iix7eDoiMTUiLHk6IjMiLHdpZHRoOiI1IixoZWlnaHQ6IjgiLHJ4OiIyLjUifV0sWyJyZWN0Iix7eDoiNiIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiOCIscng6IjIuNSJ9XV0sYVZ0PVtbInBhdGgiLHtkOiJNMTAgNWEyIDIgMCAwIDAtMS4zNDQuNTE5bC02LjMyOCA1Ljc0YTEgMSAwIDAgMCAwIDEuNDgxbDYuMzI4IDUuNzQxQTIgMiAwIDAgMCAxMCAxOWgxMGEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMnoifV0sWyJwYXRoIix7ZDoibTEyIDkgNiA2In1dLFsicGF0aCIse2Q6Im0xOCA5LTYgNiJ9XV0sblZ0PVtbInBhdGgiLHtkOiJNMTAuMTYyIDMuMTY3QTEwIDEwIDAgMCAwIDIgMTNhMiAyIDAgMCAwIDQgMHYtMWEyIDIgMCAwIDEgNCAwdjRhMiAyIDAgMCAwIDQgMHYtNGEyIDIgMCAwIDEgNCAwdjFhMiAyIDAgMCAwIDQtLjAwNiAxMCAxMCAwIDAgMC04LjE2MS05LjgyNiJ9XSxbInBhdGgiLHtkOiJNMjAuODA0IDE0Ljg2OWE5IDkgMCAwIDEtMTcuNjA4IDAifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI0IixyOiIyIn1dXSxvVnQ9W1siY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTYuNDggMy42NmExMCAxMCAwIDAgMSAxMy44NiAxMy44NiJ9XSxbInBhdGgiLHtkOiJtNi40MSA2LjQxIDExLjE4IDExLjE4In1dLFsicGF0aCIse2Q6Ik0zLjY2IDYuNDhhMTAgMTAgMCAwIDAgMTMuODYgMTMuODYifV1dLHNWdD1bWyJwYXRoIix7ZDoiTTIuNyAxMC4zYTIuNDEgMi40MSAwIDAgMCAwIDMuNDFsNy41OSA3LjU5YTIuNDEgMi40MSAwIDAgMCAzLjQxIDBsNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMCAwLTMuNDFMMTMuNyAyLjcxYTIuNDEgMi40MSAwIDAgMC0zLjQxIDB6In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dLEwkPVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMFoifV0sWyJwYXRoIix7ZDoiTTkuMiA5LjJoLjAxIn1dLFsicGF0aCIse2Q6Im0xNC41IDkuNS01IDUifV0sWyJwYXRoIix7ZDoiTTE0LjcgMTQuOGguMDEifV1dLGxWdD1bWyJwYXRoIix7ZDoiTTEyIDh2OCJ9XSxbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MUwxMy43IDIuNzFhMi40MSAyLjQxIDAgMCAwLTMuNDEgMHoifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XV0sY1Z0PVtbInBhdGgiLHtkOiJNMi43IDEwLjNhMi40MSAyLjQxIDAgMCAwIDAgMy40MWw3LjU5IDcuNTlhMi40MSAyLjQxIDAgMCAwIDMuNDEgMGw3LjU5LTcuNTlhMi40MSAyLjQxIDAgMCAwIDAtMy40MWwtNy41OS03LjU5YTIuNDEgMi40MSAwIDAgMC0zLjQxIDBaIn1dXSxkVnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV1dLHVWdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDloLjAxIn1dLFsicGF0aCIse2Q6Ik05IDE1aC4wMSJ9XV0scFZ0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dLGhWdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTE2IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dXSxmVnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXSxtVnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTggOGguMDEifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDE2aC4wMSJ9XV0sZ1Z0PVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjEwIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoibTE3LjkyIDE0IDMuNS0zLjVhMi4yNCAyLjI0IDAgMCAwIDAtM2wtNS00LjkyYTIuMjQgMi4yNCAwIDAgMC0zIDBMMTAgNiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDloLjAxIn1dXSxiVnQ9W1sicGF0aCIse2Q6Ik0xMiAzdjE0In1dLFsicGF0aCIse2Q6Ik01IDEwaDE0In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXSx2VnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XV0seFZ0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbInBhdGgiLHtkOiJNNiAxMmMwLTEuNy43LTMuMiAxLjgtNC4yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTE4IDEyYzAgMS43LS43IDMuMi0xLjggNC4yIn1dXSx5VnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dXSx3VnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLE1WdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI2IixyOiIxIn1dLFsibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiIxMiIseTI6IjEyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTgiLHI6IjEifV1dLGtWdD1bWyJwYXRoIix7ZDoiTTE1IDJjLTEuMzUgMS41LTIuMDkyIDMtMi41IDQuNUwxNCA4In1dLFsicGF0aCIse2Q6Im0xNyA2LTIuODkxLTIuODkxIn1dLFsicGF0aCIse2Q6Ik0yIDE1YzMuMzMzLTMgNi42NjctMyAxMC0zIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoibTIwIDkgLjg5MS44OTEifV0sWyJwYXRoIix7ZDoiTTIyIDljLTEuNSAxLjM1LTMgMi4wOTItNC41IDIuNWwtMS0xIn1dLFsicGF0aCIse2Q6Ik0zLjEwOSAxNC4xMDkgNCAxNSJ9XSxbInBhdGgiLHtkOiJtNi41IDEyLjUgMSAxIn1dLFsicGF0aCIse2Q6Im03IDE4IDIuODkxIDIuODkxIn1dLFsicGF0aCIse2Q6Ik05IDIyYzEuMzUtMS41IDIuMDkyLTMgMi41LTQuNUwxMCAxNiJ9XV0sU1Z0PVtbInBhdGgiLHtkOiJtMTAgMTYgMS41IDEuNSJ9XSxbInBhdGgiLHtkOiJtMTQgOC0xLjUtMS41In1dLFsicGF0aCIse2Q6Ik0xNSAyYy0xLjc5OCAxLjk5OC0yLjUxOCAzLjk5NS0yLjgwNyA1Ljk5MyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAxMC41IDEgMSJ9XSxbInBhdGgiLHtkOiJtMTcgNi0yLjg5MS0yLjg5MSJ9XSxbInBhdGgiLHtkOiJNMiAxNWM2LjY2Ny02IDEzLjMzMyAwIDIwLTYifV0sWyJwYXRoIix7ZDoibTIwIDkgLjg5MS44OTEifV0sWyJwYXRoIix7ZDoiTTMuMTA5IDE0LjEwOSA0IDE1In1dLFsicGF0aCIse2Q6Im02LjUgMTIuNSAxIDEifV0sWyJwYXRoIix7ZDoibTcgMTggMi44OTEgMi44OTEifV0sWyJwYXRoIix7ZDoiTTkgMjJjMS43OTgtMS45OTggMi41MTgtMy45OTUgMi44MDctNS45OTMifV1dLHpWdD1bWyJwYXRoIix7ZDoiTTExLjI1IDE2LjI1aDEuNUwxMiAxN3oifV0sWyJwYXRoIix7ZDoiTTE2IDE0di41In1dLFsicGF0aCIse2Q6Ik00LjQyIDExLjI0N0ExMy4xNTIgMTMuMTUyIDAgMCAwIDQgMTQuNTU2QzQgMTguNzI4IDcuNTgyIDIxIDEyIDIxczgtMi4yNzIgOC02LjQ0NGExMS43MDIgMTEuNzAyIDAgMCAwLS40OTMtMy4zMDkifV0sWyJwYXRoIix7ZDoiTTggMTR2LjUifV0sWyJwYXRoIix7ZDoiTTguNSA4LjVjLS4zODQgMS4wNS0xLjA4MyAyLjAyOC0yLjM0NCAyLjUtMS45MzEuNzIyLTMuNTc2LS4yOTctMy42NTYtMS0uMTEzLS45OTQgMS4xNzctNi41MyA0LTcgMS45MjMtLjMyMSAzLjY1MS44NDUgMy42NTEgMi4yMzVBNy40OTcgNy40OTcgMCAwIDEgMTQgNS4yNzdjMC0xLjM5IDEuODQ0LTIuNTk4IDMuNzY3LTIuMjc3IDIuODIzLjQ3IDQuMTEzIDYuMDA2IDQgNy0uMDguNzAzLTEuNzI1IDEuNzIyLTMuNjU2IDEtMS4yNjEtLjQ3Mi0xLjg1NS0xLjQ1LTIuMjM5LTIuNSJ9XV0sQ1Z0PVtbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiIyMiJ9XSxbInBhdGgiLHtkOiJNMTcgNUg5LjVhMy41IDMuNSAwIDAgMCAwIDdoNWEzLjUgMy41IDAgMCAxIDAgN0g2In1dXSxUVnQ9W1sicGF0aCIse2Q6Ik0yIDhoMjAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxNmgxMiJ9XV0sX1Z0PVtbInBhdGgiLHtkOiJNMjAuNSAxMGEyLjUgMi41IDAgMCAxLTIuNC0zSDE4YTIuOTUgMi45NSAwIDAgMS0yLjYtNC40IDEwIDEwIDAgMSAwIDYuMyA3LjFjLS4zLjItLjguMy0xLjIuMyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXSxMVnQ9W1sicGF0aCIse2Q6Ik0xMCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDlWNmEyIDIgMCAwIDAtMi0ySDhhMiAyIDAgMCAwLTIgMnYxNCJ9XSxbInBhdGgiLHtkOiJNMiAyMGg4In1dLFsicGF0aCIse2Q6Ik0yMCAxN3YtMmEyIDIgMCAxIDAtNCAwdjIifV0sWyJyZWN0Iix7eDoiMTQiLHk6IjE3Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiMSJ9XV0sQVZ0PVtbInBhdGgiLHtkOiJNMTAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAyMFY2YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE0In1dLFsicGF0aCIse2Q6Ik0yIDIwaDIwIn1dXSxEVnQ9W1sicGF0aCIse2Q6Ik0xMSAyMEgyIn1dLFsicGF0aCIse2Q6Ik0xMSA0LjU2MnYxNi4xNTdhMSAxIDAgMCAwIDEuMjQyLjk3TDE5IDIwVjUuNTYyYTIgMiAwIDAgMC0xLjUxNS0xLjk0bC00LTFBMiAyIDAgMCAwIDExIDQuNTYxeiJ9XSxbInBhdGgiLHtkOiJNMTEgNEg4YTIgMiAwIDAgMC0yIDJ2MTQifV0sWyJwYXRoIix7ZDoiTTE0IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBoLTMifV1dLEVWdD1bWyJjaXJjbGUiLHtjeDoiMTIuMSIsY3k6IjEyLjEiLHI6IjEifV1dLCRWdD1bWyJwYXRoIix7ZDoiTTEyIDE1VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV0sWyJwYXRoIix7ZDoibTcgMTAgNSA1IDUtNSJ9XV0sSVZ0PVtbInBhdGgiLHtkOiJtMTIuOTkgNi43NCAxLjkzIDMuNDQifV0sWyJwYXRoIix7ZDoiTTE5LjEzNiAxMmExMCAxMCAwIDAgMS0xNC4yNzEgMCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMi4xNi0zLjg0In1dLFsicGF0aCIse2Q6Im0zIDIxIDguMDItMTQuMjYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIyIn1dXSxQVnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xOS4xMyA1LjA5QzE1LjIyIDkuMTQgMTAgMTAuNDQgMi4yNSAxMC45NCJ9XSxbInBhdGgiLHtkOiJNMjEuNzUgMTIuODRjLTYuNjItMS40MS0xMi4xNCAxLTE2LjM4IDYuMzIifV0sWyJwYXRoIix7ZDoiTTguNTYgMi43NWM0LjM3IDYgNiA5LjQyIDggMTcuNzIifV1dLE5WdD1bWyJwYXRoIix7ZDoiTTEwIDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02LjUgMTMuMWguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDVjMCA5LTQgMTItNiAxMnMtNi0zLTYtMTJjMC0yIDItMyA2LTNzNiAxIDYgMyJ9XSxbInBhdGgiLHtkOiJNMTcuNCA5LjljLS44LjgtMiAuOC0yLjggMCJ9XSxbInBhdGgiLHtkOiJNMTAuMSA3LjFDOSA3LjIgNy43IDcuNyA2IDguNmMtMy41IDItNC43IDMuOS0zLjcgNS42IDQuNSA3LjggOS41IDguNCAxMS4yIDcuNC45LS41IDEuOS0yLjEgMS45LTQuNyJ9XSxbInBhdGgiLHtkOiJNOS4xIDE2LjVjLjMtMS4xIDEuNC0xLjcgMi40LTEuNCJ9XV0sRlZ0PVtbInBhdGgiLHtkOiJNMTAgMThhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFINWEzIDMgMCAwIDEtMy0zIDEgMSAwIDAgMSAxLTF6In1dLFsicGF0aCIse2Q6Ik0xMyAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMSAxIDAgMCAxIDEgMXY2YTEgMSAwIDAgMS0xIDFsLS44MSAzLjI0MmExIDEgMCAwIDEtLjk3Ljc1OEg4In1dLFsicGF0aCIse2Q6Ik0xNCA0aDNhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTMifV0sWyJwYXRoIix7ZDoiTTE4IDZoNCJ9XSxbInBhdGgiLHtkOiJtNSAxMC0yIDgifV0sWyJwYXRoIix7ZDoibTcgMTggMi04In1dXSxPVnQ9W1sicGF0aCIse2Q6Ik0xMCAxMCA3IDcifV0sWyJwYXRoIix7ZDoibTEwIDE0LTMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTAgMy0zIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAzIDMifV0sWyJwYXRoIix7ZDoiTTE0LjIwNSA0LjEzOWE0IDQgMCAxIDEgNS40MzkgNS44NjMifV0sWyJwYXRoIix7ZDoiTTE5LjYzNyAxNGE0IDQgMCAxIDEtNS40MzIgNS44NjgifV0sWyJwYXRoIix7ZDoiTTQuMzY3IDEwYTQgNCAwIDEgMSA1LjQzOC01Ljg2MiJ9XSxbInBhdGgiLHtkOiJNOS43OTUgMTkuODYyYTQgNCAwIDEgMS01LjQyOS01Ljg3MyJ9XSxbInJlY3QiLHt4OiIxMCIseToiOCIsd2lkdGg6IjQiLGhlaWdodDoiOCIscng6IjEifV1dLFJWdD1bWyJwYXRoIix7ZDoiTTE4LjcxNSAxMy4xODZDMTguMjkgMTEuODU4IDE3LjM4NCAxMC42MDcgMTYgOS41Yy0yLTEuNi0zLjUtNC00LTYuNWExMC43IDEwLjcgMCAwIDEtLjg4NCAyLjU4NiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04Ljc5NSA4Ljc5N0ExMSAxMSAwIDAgMSA4IDkuNUM2IDExLjEgNSAxMyA1IDE1YTcgNyAwIDAgMCAxMy4yMjIgMy4yMDgifV1dLEJWdD1bWyJwYXRoIix7ZDoiTTEyIDIyYTcgNyAwIDAgMCA3LTdjMC0yLTEtMy45LTMtNS41cy0zLjUtNC00LTYuNWMtLjUgMi41LTIgNC45LTQgNi41QzYgMTEuMSA1IDEzIDUgMTVhNyA3IDAgMCAwIDcgN3oifV1dLEhWdD1bWyJwYXRoIix7ZDoiTTcgMTYuM2MyLjIgMCA0LTEuODMgNC00LjA1IDAtMS4xNi0uNTctMi4yNi0xLjcxLTMuMTlTNy4yOSA2Ljc1IDcgNS4zYy0uMjkgMS40NS0xLjE0IDIuODQtMi4yOSAzLjc2UzMgMTEuMSAzIDEyLjI1YzAgMi4yMiAxLjggNC4wNSA0IDQuMDV6In1dLFsicGF0aCIse2Q6Ik0xMi41NiA2LjZBMTAuOTcgMTAuOTcgMCAwIDAgMTQgMy4wMmMuNSAyLjUgMiA0LjkgNCA2LjVzMyAzLjUgMyA1LjVhNi45OCA2Ljk4IDAgMCAxLTExLjkxIDQuOTcifV1dLHFWdD1bWyJwYXRoIix7ZDoibTIgMiA4IDgifV0sWyJwYXRoIix7ZDoibTIyIDItOCA4In1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjkiLHJ4OiIxMCIscnk6IjUifV0sWyJwYXRoIix7ZDoiTTcgMTMuNHY3LjkifV0sWyJwYXRoIix7ZDoiTTEyIDE0djgifV0sWyJwYXRoIix7ZDoiTTE3IDEzLjR2Ny45In1dLFsicGF0aCIse2Q6Ik0yIDl2OGExMCA1IDAgMCAwIDIwIDBWOSJ9XV0salZ0PVtbInBhdGgiLHtkOiJNMTUuNCAxNS42M2E3Ljg3NSA2IDEzNSAxIDEgNi4yMy02LjIzIDQuNSAzLjQzIDEzNSAwIDAtNi4yMyA2LjIzIn1dLFsicGF0aCIse2Q6Im04LjI5IDEyLjcxLTIuNiAyLjZhMi41IDIuNSAwIDEgMC0xLjY1IDQuNjVBMi41IDIuNSAwIDEgMCA4LjcgMTguM2wyLjU5LTIuNTkifV1dLFZWdD1bWyJwYXRoIix7ZDoiTTE3LjU5NiAxMi43NjhhMiAyIDAgMSAwIDIuODI5LTIuODI5bC0xLjc2OC0xLjc2N2EyIDIgMCAwIDAgMi44MjgtMi44MjlsLTIuODI4LTIuODI4YTIgMiAwIDAgMC0yLjgyOSAyLjgyOGwtMS43NjctMS43NjhhMiAyIDAgMSAwLTIuODI5IDIuODI5eiJ9XSxbInBhdGgiLHtkOiJtMi41IDIxLjUgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJtMjAuMSAzLjkgMS40LTEuNCJ9XSxbInBhdGgiLHtkOiJNNS4zNDMgMjEuNDg1YTIgMiAwIDEgMCAyLjgyOS0yLjgyOGwxLjc2NyAxLjc2OGEyIDIgMCAxIDAgMi44MjktMi44MjlsLTYuMzY0LTYuMzY0YTIgMiAwIDEgMC0yLjgyOSAyLjgyOWwxLjc2OCAxLjc2N2EyIDIgMCAwIDAtMi44MjggMi44Mjl6In1dLFsicGF0aCIse2Q6Im05LjYgMTQuNCA0LjgtNC44In1dXSxVVnQ9W1sicGF0aCIse2Q6Ik02IDE4LjVhMy41IDMuNSAwIDEgMCA3IDBjMC0xLjU3LjkyLTIuNTIgMi4wNC0zLjQ2In1dLFsicGF0aCIse2Q6Ik02IDguNWMwLS43NS4xMy0xLjQ3LjM2LTIuMTQifV0sWyJwYXRoIix7ZDoiTTguOCAzLjE1QTYuNSA2LjUgMCAwIDEgMTkgOC41YzAgMS42My0uNDQgMi44MS0xLjA5IDMuNzYifV0sWyJwYXRoIix7ZDoiTTEyLjUgNkEyLjUgMi41IDAgMCAxIDE1IDguNU0xMCAxM2EyIDIgMCAwIDAgMS44Mi0xLjE4In1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dLFdWdD1bWyJwYXRoIix7ZDoiTTcgMy4zNFY1YTMgMyAwIDAgMCAzIDMifV0sWyJwYXRoIix7ZDoiTTExIDIxLjk1VjE4YTIgMiAwIDAgMC0yLTIgMiAyIDAgMCAxLTItMnYtMWEyIDIgMCAwIDAtMi0ySDIuMDUifV0sWyJwYXRoIix7ZDoiTTIxLjU0IDE1SDE3YTIgMiAwIDAgMC0yIDJ2NC41NCJ9XSxbInBhdGgiLHtkOiJNMTIgMmExMCAxMCAwIDEgMCA5LjU0IDEzIn1dLFsicGF0aCIse2Q6Ik0yMCA2VjRhMiAyIDAgMSAwLTQgMHYyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiI2IixyeDoiMSJ9XV0sR1Z0PVtbInBhdGgiLHtkOiJNNiA4LjVhNi41IDYuNSAwIDEgMSAxMyAwYzAgNi02IDYtNiAxMGEzLjUgMy41IDAgMSAxLTcgMCJ9XSxbInBhdGgiLHtkOiJNMTUgOC41YTIuNSAyLjUgMCAwIDAtNSAwdjFhMiAyIDAgMSAxIDAgNCJ9XV0sQSQ9W1sicGF0aCIse2Q6Ik0yMS41NCAxNUgxN2EyIDIgMCAwIDAtMiAydjQuNTQifV0sWyJwYXRoIix7ZDoiTTcgMy4zNFY1YTMgMyAwIDAgMCAzIDNhMiAyIDAgMCAxIDIgMmMwIDEuMS45IDIgMiAyYTIgMiAwIDAgMCAyLTJjMC0xLjEuOS0yIDItMmgzLjE3In1dLFsicGF0aCIse2Q6Ik0xMSAyMS45NVYxOGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMS0yLTJ2LTFhMiAyIDAgMCAwLTItMkgyLjA1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dXSxZVnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyYTcgNyAwIDEgMCAxMCAxMCJ9XV0sWlZ0PVtbImNpcmNsZSIse2N4OiIxMS41IixjeToiMTIuNSIscjoiMy41In1dLFsicGF0aCIse2Q6Ik0zIDhjMC0zLjUgMi41LTYgNi41LTYgNSAwIDQuODMgMyA3LjUgNXM1IDIgNSA2YzAgNC41LTIuNSA2LjUtNyA2LjUtMi41IDAtMi41IDIuNS02IDIuNXMtNy0yLTctNS41YzAtMyAxLjUtMyAxLjUtNUMzLjUgMTAgMyA5IDMgOFoifV1dLFhWdD1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMTQuMzQ3VjE0YzAtNi00LTEyLTgtMTItMS4wNzggMC0yLjE1Ny40MzYtMy4xNTcgMS4xOSJ9XSxbInBhdGgiLHtkOiJNNi4yMDYgNi4yMUM0Ljg3MSA4LjQgNCAxMS4yIDQgMTRhOCA4IDAgMCAwIDE0LjU2OCA0LjU2OCJ9XV0sUVZ0PVtbInBhdGgiLHtkOiJNMTIgMkM4IDIgNCA4IDQgMTRhOCA4IDAgMCAwIDE2IDBjMC02LTQtMTItOC0xMiJ9XV0sRCQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTkiLHI6IjEifV1dLEUkPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjEyIixyOiIxIn1dXSxKVnQ9W1sicGF0aCIse2Q6Ik01IDE1YTYuNSA2LjUgMCAwIDEgNyAwIDYuNSA2LjUgMCAwIDAgNyAwIn1dLFsicGF0aCIse2Q6Ik01IDlhNi41IDYuNSAwIDAgMSA3IDAgNi41IDYuNSAwIDAgMCA3IDAifV1dLEtWdD1bWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiIxNSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxOSIseDI6IjUiLHkxOiI1Iix5MjoiMTkifV1dLGVVdD1bWyJsaW5lIix7eDE6IjUiLHgyOiIxOSIseTE6IjkiLHkyOiI5In1dLFsibGluZSIse3gxOiI1Iix4MjoiMTkiLHkxOiIxNSIseTI6IjE1In1dXSx0VXQ9W1sicGF0aCIse2Q6Im0xNSAyMCAzLTNoMmEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2OWEyIDIgMCAwIDAgMiAyaDJsMyAzeiJ9XSxbInBhdGgiLHtkOiJNNiA4djEifV0sWyJwYXRoIix7ZDoiTTEwIDh2MSJ9XSxbInBhdGgiLHtkOiJNMTQgOHYxIn1dLFsicGF0aCIse2Q6Ik0xOCA4djEifV1dLHJVdD1bWyJwYXRoIix7ZDoiTTIxIDIxSDhhMiAyIDAgMCAxLTEuNDItLjU4N2wtMy45OTQtMy45OTlhMiAyIDAgMCAxIDAtMi44MjhsMTAtMTBhMiAyIDAgMCAxIDIuODI5IDBsNS45OTkgNmEyIDIgMCAwIDEgMCAyLjgyOEwxMi44MzQgMjEifV0sWyJwYXRoIix7ZDoibTUuMDgyIDExLjA5IDguODI4IDguODI4In1dXSxpVXQ9W1sicGF0aCIse2Q6Ik00IDEwaDEyIn1dLFsicGF0aCIse2Q6Ik00IDE0aDkifV0sWyJwYXRoIix7ZDoiTTE5IDZhNy43IDcuNyAwIDAgMC01LjItMkE3LjkgNy45IDAgMCAwIDYgMTJjMCA0LjQgMy41IDggNy44IDggMiAwIDMuOC0uOCA1LjItMiJ9XV0sYVV0PVtbInBhdGgiLHtkOiJNMTQgMTNoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAwIDQgMHYtNi45OThhMiAyIDAgMCAwLS41OS0xLjQyTDE4IDUifV0sWyJwYXRoIix7ZDoiTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTMifV0sWyJwYXRoIix7ZDoiTTMgN2gxMSJ9XSxbInBhdGgiLHtkOiJtOSAxMS0yIDNoM2wtMiAzIn1dXSxuVXQ9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDYifV0sWyJwYXRoIix7ZDoibTE1IDkgNi02In1dLFsicGF0aCIse2Q6Ik0yMSAxNnY1aC01In1dLFsicGF0aCIse2Q6Ik0yMSA4VjNoLTUifV0sWyJwYXRoIix7ZDoiTTMgMTZ2NWg1In1dLFsicGF0aCIse2Q6Im0zIDIxIDYtNiJ9XSxbInBhdGgiLHtkOiJNMyA4VjNoNSJ9XSxbInBhdGgiLHtkOiJNOSA5IDMgMyJ9XV0sb1V0PVtbInBhdGgiLHtkOiJNMTUgM2g2djYifV0sWyJwYXRoIix7ZDoiTTEwIDE0IDIxIDMifV0sWyJwYXRoIix7ZDoiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYifV1dLHNVdD1bWyJwYXRoIix7ZDoibTE1IDE4LS43MjItMy4yNSJ9XSxbInBhdGgiLHtkOiJNMiA4YTEwLjY0NSAxMC42NDUgMCAwIDAgMjAgMCJ9XSxbInBhdGgiLHtkOiJtMjAgMTUtMS43MjYtMi4wNSJ9XSxbInBhdGgiLHtkOiJtNCAxNSAxLjcyNi0yLjA1In1dLFsicGF0aCIse2Q6Im05IDE4IC43MjItMy4yNSJ9XV0sbFV0PVtbInBhdGgiLHtkOiJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dXSxjVXQ9W1sicGF0aCIse2Q6Ik0xMC43MzMgNS4wNzZhMTAuNzQ0IDEwLjc0NCAwIDAgMSAxMS4yMDUgNi41NzUgMSAxIDAgMCAxIDAgLjY5NiAxMC43NDcgMTAuNzQ3IDAgMCAxLTEuNDQ0IDIuNDkifV0sWyJwYXRoIix7ZDoiTTE0LjA4NCAxNC4xNThhMyAzIDAgMCAxLTQuMjQyLTQuMjQyIn1dLFsicGF0aCIse2Q6Ik0xNy40NzkgMTcuNDk5YTEwLjc1IDEwLjc1IDAgMCAxLTE1LjQxNy01LjE1MSAxIDEgMCAwIDEgMC0uNjk2IDEwLjc1IDEwLjc1IDAgMCAxIDQuNDQ2LTUuMTQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLGRVdD1bWyJwYXRoIix7ZDoiTTE4IDJoLTNhNSA1IDAgMCAwLTUgNXYzSDd2NGgzdjhoNHYtOGgzbDEtNGgtNFY3YTEgMSAwIDAgMSAxLTFoM3oifV1dLHVVdD1bWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDE5YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY4LjVhLjUuNSAwIDAgMC0uNzY5LS40MjJsLTQuNDYyIDIuODQ0QS41LjUgMCAwIDEgMTUgMTAuNXYtMmEuNS41IDAgMCAwLS43NjktLjQyMkw5Ljc3IDEwLjkyMkEuNS41IDAgMCAxIDkgMTAuNVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAyeiJ9XSxbInBhdGgiLHtkOiJNOCAxNmguMDEifV1dLHBVdD1bWyJwYXRoIix7ZDoiTTEwLjgyNyAxNi4zNzlhNi4wODIgNi4wODIgMCAwIDEtOC42MTgtNy4wMDJsNS40MTIgMS40NWE2LjA4MiA2LjA4MiAwIDAgMSA3LjAwMi04LjYxOGwtMS40NSA1LjQxMmE2LjA4MiA2LjA4MiAwIDAgMSA4LjYxOCA3LjAwMmwtNS40MTItMS40NWE2LjA4MiA2LjA4MiAwIDAgMS03LjAwMiA4LjYxOGwxLjQ1LTUuNDEyWiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2LjAxIn1dXSxoVXQ9W1sicGF0aCIse2Q6Ik0xMiA2YTIgMiAwIDAgMSAzLjQxNC0xLjQxNGw2IDZhMiAyIDAgMCAxIDAgMi44MjhsLTYgNkEyIDIgMCAwIDEgMTIgMTh6In1dLFsicGF0aCIse2Q6Ik0yIDZhMiAyIDAgMCAxIDMuNDE0LTEuNDE0bDYgNmEyIDIgMCAwIDEgMCAyLjgyOGwtNiA2QTIgMiAwIDAgMSAyIDE4eiJ9XV0sZlV0PVtbInBhdGgiLHtkOiJNMTIuNjcgMTlhMiAyIDAgMCAwIDEuNDE2LS41ODhsNi4xNTQtNi4xNzJhNiA2IDAgMCAwLTguNDktOC40OUw1LjU4NiA5LjkxNEEyIDIgMCAwIDAgNSAxMS4zMjhWMThhMSAxIDAgMCAwIDEgMXoifV0sWyJwYXRoIix7ZDoiTTE2IDggMiAyMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSAxNUg5In1dXSxtVXQ9W1sicGF0aCIse2Q6Ik00IDMgMiA1djE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoifV0sWyJwYXRoIix7ZDoiTTYgOGg0In1dLFsicGF0aCIse2Q6Ik02IDE4aDQifV0sWyJwYXRoIix7ZDoibTEyIDMtMiAydjE1YzAgLjYuNCAxIDEgMWgyYy42IDAgMS0uNCAxLTFWNVoifV0sWyJwYXRoIix7ZDoiTTE0IDhoNCJ9XSxbInBhdGgiLHtkOiJNMTQgMThoNCJ9XSxbInBhdGgiLHtkOiJtMjAgMy0yIDJ2MTVjMCAuNi40IDEgMSAxaDJjLjYgMCAxLS40IDEtMVY1WiJ9XV0sZ1V0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoibTYuOCAxNS0zLjUgMiJ9XSxbInBhdGgiLHtkOiJtMjAuNyA3LTMuNSAyIn1dLFsicGF0aCIse2Q6Ik02LjggOSAzLjMgNyJ9XSxbInBhdGgiLHtkOiJtMjAuNyAxNy0zLjUtMiJ9XSxbInBhdGgiLHtkOiJtOSAyMiAzLTggMyA4In1dLFsicGF0aCIse2Q6Ik04IDIyaDgifV0sWyJwYXRoIix7ZDoiTTE4IDE4LjdhOSA5IDAgMSAwLTEyIDAifV1dLGJVdD1bWyJwYXRoIix7ZDoiTTUgNS41QTMuNSAzLjUgMCAwIDEgOC41IDJIMTJ2N0g4LjVBMy41IDMuNSAwIDAgMSA1IDUuNXoifV0sWyJwYXRoIix7ZDoiTTEyIDJoMy41YTMuNSAzLjUgMCAxIDEgMCA3SDEyVjJ6In1dLFsicGF0aCIse2Q6Ik0xMiAxMi41YTMuNSAzLjUgMCAxIDEgNyAwIDMuNSAzLjUgMCAxIDEtNyAweiJ9XSxbInBhdGgiLHtkOiJNNSAxOS41QTMuNSAzLjUgMCAwIDEgOC41IDE2SDEydjMuNWEzLjUgMy41IDAgMSAxLTcgMHoifV0sWyJwYXRoIix7ZDoiTTUgMTIuNUEzLjUgMy41IDAgMCAxIDguNSA5SDEydjdIOC41QTMuNSAzLjUgMCAwIDEgNSAxMi41eiJ9XV0sdlV0PVtbInBhdGgiLHtkOiJNMTMuNjU5IDIySDE4YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTEuNSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxMnYtMSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNOCA3VjYifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIwIixyOiIyIn1dXSwkJD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTggMTggNC00In1dLFsicGF0aCIse2Q6Ik04IDEwdjhoOCJ9XV0sSSQ9W1sicGF0aCIse2Q6Ik0xMyAyMmg1YTIgMiAwIDAgMCAyLTJWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2My4zIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im03LjY5IDE2LjQ3OSAxLjI5IDQuODhhLjUuNSAwIDAgMS0uNjk4LjU5MWwtMS44NDMtLjg0OWExIDEgMCAwIDAtLjg3OS4wMDFsLTEuODQ2Ljg1YS41LjUgMCAwIDEtLjY5Mi0uNTkzbDEuMjktNC44OCJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTQiLHI6IjMifV1dLFAkPVtbInBhdGgiLHtkOiJNMTQgMjJoNGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTUgMTRhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMCAxIDEifV0sWyJwYXRoIix7ZDoiTTkgMjJhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDEgMS0xIDEgMSAwIDAgMS0xLTF2LTJhMSAxIDAgMCAwLTEtMSJ9XV0seFV0PVtbInBhdGgiLHtkOiJNMTQuNSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuOCJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTEuNyAxNC4yIDcgMTdsLTQuNy0yLjgifV0sWyJwYXRoIix7ZDoiTTMgMTMuMWEyIDIgMCAwIDAtLjk5OSAxLjc2djMuMjRhMiAyIDAgMCAwIC45NjkgMS43OEw2IDIxLjdhMiAyIDAgMCAwIDIuMDMuMDFMMTEgMTkuOWEyIDIgMCAwIDAgMS0xLjc2VjE0LjlhMiAyIDAgMCAwLS45Ny0xLjc4TDggMTEuM2EyIDIgMCAwIDAtMi4wMy0uMDF6In1dLFsicGF0aCIse2Q6Ik03IDE3djUifV1dLE4kPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTJhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMCAxIDEifV0sWyJwYXRoIix7ZDoiTTE0IDE4YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMC0xLTEifV1dLEYkPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTQifV0sWyJwYXRoIix7ZDoiTTE2IDE4di02In1dXSxPJD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTh2LTEifV0sWyJwYXRoIix7ZDoiTTEyIDE4di02In1dLFsicGF0aCIse2Q6Ik0xNiAxOHYtMyJ9XV0sUiQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNiAxMy0zLjUgMy41LTItMkw4IDE3In1dXSxCJD1bWyJwYXRoIix7ZDoiTTE1Ljk0MSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA0bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjMuNTEyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik00LjAxNyAxMS41MTJhNiA2IDAgMSAwIDguNDY2IDguNDc1In1dLFsicGF0aCIse2Q6Ik05IDE2YTEgMSAwIDAgMS0xLTF2LTRjMC0uNTUyLjQ1LTEuMDA4Ljk5NS0uOTE3YTYgNiAwIDAgMSA0LjkyMiA0LjkyMmMuMDkxLjU0NC0uMzY1Ljk5NS0uOTE3Ljk5NXoifV1dLEgkPVtbInBhdGgiLHtkOiJNMTAuNSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djYifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTE0IDIwIDIgMiA0LTQifV1dLHlVdD1bWyJwYXRoIix7ZDoiTTE2IDIyaDJhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYyLjg1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE0djIuMmwxLjYgMSJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMTYiLHI6IjYifV1dLHdVdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTkgMTUgMiAyIDQtNCJ9XV0scSQ9W1sicGF0aCIse2Q6Ik00IDEyLjE1VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0zLjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im01IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTkgMjIgMy0zLTMtMyJ9XV0sTVV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMTIuNSA4IDE1bDIgMi41In1dLFsicGF0aCIse2Q6Im0xNCAxMi41IDIgMi41LTIgMi41In1dXSxqJD1bWyJwYXRoIix7ZDoiTTE1IDhhMSAxIDAgMCAxLTEtMVYyYTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHoifV0sWyJwYXRoIix7ZDoiTTIwIDh2MTJhMiAyIDAgMCAxLTIgMmgtNC4xODIifV0sWyJwYXRoIix7ZDoibTMuMzA1IDE5LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Ik00IDEwLjU5MlY0YTIgMiAwIDAgMSAyLTJoOCJ9XSxbInBhdGgiLHtkOiJtNC4yMjggMTYuODUyLS45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtNS44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtNS44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im04LjE0OCAxNS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTguNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtOS43NzMgMTYuODUyLjkyMi0uMzgzIn1dLFsicGF0aCIse2Q6Im05Ljc3MyAxOS4xNDguOTIyLjM4MyJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjMifV1dLGtVdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XSxbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJNOSAxN2g2In1dXSxTVXQ9W1sicGF0aCIse2Q6Ik00IDEyVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMCAxNmgydjYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV0sWyJyZWN0Iix7eDoiMiIseToiMTYiLHdpZHRoOiI0IixoZWlnaHQ6IjYiLHJ4OiIyIn1dXSx6VXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMiAxOHYtNiJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzIDMgMy0zIn1dXSxWJD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDl2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXSxWcD1bWyJwYXRoIix7ZDoiTTQgNi44MzVWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJoLS4zNDMifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTIgMTlhMiAyIDAgMCAxIDQgMHYxYTIgMiAwIDAgMS00IDB2LTRhNiA2IDAgMCAxIDEyIDB2NGEyIDIgMCAwIDEtNCAwdi0xYTIgMiAwIDAgMSA0IDAifV1dLENVdD1bWyJwYXRoIix7ZDoiTTEzIDIyaDVhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnY3In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0zLjYyIDE4LjhBMi4yNSAyLjI1IDAgMSAxIDcgMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmExIDEgMCAwIDEtMS41MDcgMHoifV1dLFRVdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMiIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMjAgMTctMS4yOTYtMS4yOTZhMi40MSAyLjQxIDAgMCAwLTMuNDA4IDBMOSAyMiJ9XV0sX1V0PVtbInBhdGgiLHtkOiJNNCAxMVY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTIgMTVoMTAifV0sWyJwYXRoIix7ZDoibTkgMTggMy0zLTMtMyJ9XV0sVSQ9W1sicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik00IDEydjYifV0sWyJwYXRoIix7ZDoiTTQgMTRoMiJ9XSxbInBhdGgiLHtkOiJNOS42NSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjQifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjIwIixyOiIyIn1dXSxXJD1bWyJwYXRoIix7ZDoiTTQgOS44VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0zIn1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik05IDE3di0yYTIgMiAwIDAgMC00IDB2MiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIzIix5OiIxNyIscng6IjEifV1dLEckPVtbInBhdGgiLHtkOiJNMjAgMTRWOGEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTQgMThoNiJ9XV0sTFV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOSAxNWg2In1dXSxBVXQ9W1sicGF0aCIse2Q6Ik0xMS42NSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjEwLjM1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDIwdi03bDMgMS40NzQifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjIwIixyOiIyIn1dXSxEVXQ9W1sicGF0aCIse2Q6Ik00LjIyNiAyMC45MjVBMiAyIDAgMCAwIDYgMjJoMTJhMiAyIDAgMCAwIDItMlY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNmwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYzLjEyNyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtNSAxMS0zIDMifV0sWyJwYXRoIix7ZDoibTUgMTctMy0zaDEwIn1dXSxZJD1bWyJwYXRoIix7ZDoibTE4LjIyNiA1LjIyNi0yLjUyLTIuNTJBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LS4zNTEifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxMi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbInBhdGgiLHtkOiJNOCAxOGgxIn1dXSxaJD1bWyJwYXRoIix7ZDoiTTEyLjY1OSAyMkgxOGEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjkuMzQifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTEwLjM3OCAxMi42MjJhMSAxIDAgMCAxIDMgMy4wMDNMOC4zNiAyMC42MzdhMiAyIDAgMCAxLS44NTQuNTA2bC0yLjg2Ny44MzdhLjUuNSAwIDAgMS0uNjItLjYybC44MzYtMi44NjlhMiAyIDAgMCAxIC41MDYtLjg1M3oifV1dLFgkPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTUuMDMzIDEzLjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZ2LTQuNzA0YS42NDUuNjQ1IDAgMCAxIC45NjctLjU2eiJ9XV0sUSQ9W1sicGF0aCIse2Q6Ik0xMS4zNSAyMkg2YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djUuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE0IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE3IDE2djYifV1dLEokPVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik05LjEgOWEzIDMgMCAwIDEgNS44MiAxYzAgMi0zIDMtMyAzIn1dXSxFVXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik05IDE1aDYifV0sWyJwYXRoIix7ZDoiTTEyIDE4di02In1dXSwkVXQ9W1sicGF0aCIse2Q6Ik0yMCAxMFY4YTIuNCAyLjQgMCAwIDAtLjcwNi0xLjcwNGwtMy41ODgtMy41ODhBMi40IDIuNCAwIDAgMCAxNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDQuMzUifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTE2IDE0YTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE2IDIyYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTIwIDE0YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIwIDIyYTIgMiAwIDAgMCAyLTIifV1dLElVdD1bWyJwYXRoIix7ZDoiTTYgMjJhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA0LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2MTJhMiAyIDAgMCAxLTIgMnoifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJjaXJjbGUiLHtjeDoiMTEuNSIsY3k6IjE0LjUiLHI6IjIuNSJ9XSxbInBhdGgiLHtkOiJNMTMuMyAxNi4zIDE1IDE4In1dXSxLJD1bWyJwYXRoIix7ZDoiTTExLjEgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg5IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYzLjI1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0yMSAyMi0yLjg4LTIuODgifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxNyIscjoiMyJ9XV0sZUk9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTEuNSAxMy41YTIuNSAyLjUgMCAwIDEgMCAzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMmE1IDUgMCAwIDEgMCA2In1dXSxQVXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV0sWyJwYXRoIix7ZDoiTTEwIDExdjIifV0sWyJwYXRoIix7ZDoiTTggMTdoOCJ9XSxbInBhdGgiLHtkOiJNMTQgMTZ2MiJ9XV0sTlV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNOCAxM2gyIn1dLFsicGF0aCIse2Q6Ik0xNCAxM2gyIn1dLFsicGF0aCIse2Q6Ik04IDE3aDIifV0sWyJwYXRoIix7ZDoiTTE0IDE3aDIifV1dLEZVdD1bWyJwYXRoIix7ZDoiTTExIDIxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xdi04YTEgMSAwIDAgMSAxLTEifV0sWyJwYXRoIix7ZDoiTTE2IDE2YTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEtMS0xVjhhMSAxIDAgMCAxIDEtMSJ9XSxbInBhdGgiLHtkOiJNMjEgNmEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtMi0yQTIgMiAwIDAgMCAxNyAyaC0zYTEgMSAwIDAgMC0xIDF2OGExIDEgMCAwIDAgMSAxaDZhMSAxIDAgMCAwIDEtMXoifV1dLE9VdD1bWyJwYXRoIix7ZDoiTTQgMTFWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoNyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTAgMTggMy0zLTMtMyJ9XV0sUlV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtOCAxNiAyLTItMi0yIn1dLFsicGF0aCIse2Q6Ik0xMiAxOGg0In1dXSxCVXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMCA5SDgifV0sWyJwYXRoIix7ZDoiTTE2IDEzSDgifV0sWyJwYXRoIix7ZDoiTTE2IDE3SDgifV1dLHRJPVtbInBhdGgiLHtkOiJNMTIgMjJoNmEyIDIgMCAwIDAgMi0yVjhhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE0IDJINmEyIDIgMCAwIDAtMiAydjYifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTMgMTZ2LTEuNWEuNS41IDAgMCAxIC41LS41aDdhLjUuNSAwIDAgMSAuNS41VjE2In1dLFsicGF0aCIse2Q6Ik02IDIyaDIifV0sWyJwYXRoIix7ZDoiTTcgMTR2OCJ9XV0sSFV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTEgMThoMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNOSAxM3YtLjVhLjUuNSAwIDAgMSAuNS0uNWg1YS41LjUgMCAwIDEgLjUuNXYuNSJ9XV0scVV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJ2NiJ9XSxbInBhdGgiLHtkOiJtMTUgMTUtMy0zLTMgMyJ9XV0salV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjJhNCA0IDAgMCAwLTggMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIzIn1dXSxyST1bWyJwYXRoIix7ZDoiTTQgMTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNi43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoibTEwIDE3Ljg0MyAzLjAzMy0xLjc1NWEuNjQuNjQgMCAwIDEgLjk2Ny41NnY0LjcwNGEuNjUuNjUgMCAwIDEtLjk2Ny41NkwxMCAyMC4xNTcifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNiIseDoiMyIseToiMTYiLHJ4OiIxIn1dXSxWVXQ9W1sicGF0aCIse2Q6Ik00IDExLjU1VjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyaC0xLjk1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Ik0xMiAxNWE1IDUgMCAwIDEgMCA2In1dLFsicGF0aCIse2Q6Ik04IDE0LjUwMmEuNS41IDAgMCAwLS44MjYtLjM4MWwtMS44OTMgMS42MzFhMSAxIDAgMCAxLS42NTEuMjQzSDMuNWEuNS41IDAgMCAwLS41LjUwMXYzLjAwNmEuNS41IDAgMCAwIC41LjUwMWgxLjEyOWExIDEgMCAwIDEgLjY1Mi4yNDNsMS44OTMgMS42MzNhLjUuNSAwIDAgMCAuODI2LS4zOHoifV1dLGlJPVtbInBhdGgiLHtkOiJNMTEgMjJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDYuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHY1In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dLFsicGF0aCIse2Q6Im0xNSAxNyA1IDUifV0sWyJwYXRoIix7ZDoibTIwIDE3LTUgNSJ9XV0sVVV0PVtbInBhdGgiLHtkOiJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJtMTQuNSAxMi41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDEyLjUgNSA1In1dXSxXVXQ9W1sicGF0aCIse2Q6Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6In1dLFsicGF0aCIse2Q6Ik0xNCAydjVhMSAxIDAgMCAwIDEgMWg1In1dXSxHVXQ9W1sicGF0aCIse2Q6Ik0xNSAyaC00YTIgMiAwIDAgMC0yIDJ2MTFhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOCJ9XSxbInBhdGgiLHtkOiJNMTYuNzA2IDIuNzA2QTIuNCAyLjQgMCAwIDAgMTUgMnY1YTEgMSAwIDAgMCAxIDFoNWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZ6In1dLFsicGF0aCIse2Q6Ik01IDdhMiAyIDAgMCAwLTIgMnYxMWEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDEuNzMyLTEifV1dLFlVdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDcuNWg0In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Ik0zIDE2LjVoNCJ9XSxbInBhdGgiLHtkOiJNMTcgM3YxOCJ9XSxbInBhdGgiLHtkOiJNMTcgNy41aDQifV0sWyJwYXRoIix7ZDoiTTE3IDE2LjVoNCJ9XV0sYUk9W1sicGF0aCIse2Q6Ik0xMiAxMGEyIDIgMCAwIDAtMiAyYzAgMS4wMi0uMSAyLjUxLS4yNiA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMy4xMmMwIDIuMzggMCA2LjM4LTEgOC44OCJ9XSxbInBhdGgiLHtkOiJNMTcuMjkgMjEuMDJjLjEyLS42LjQzLTIuMy41LTMuMDIifV0sWyJwYXRoIix7ZDoiTTIgMTJhMTAgMTAgMCAwIDEgMTgtNiJ9XSxbInBhdGgiLHtkOiJNMiAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTIxLjggMTZjLjItMiAuMTMxLTUuMzU0IDAtNiJ9XSxbInBhdGgiLHtkOiJNNSAxOS41QzUuNSAxOCA2IDE1IDYgMTJhNiA2IDAgMCAxIC4zNC0yIn1dLFsicGF0aCIse2Q6Ik04LjY1IDIyYy4yMS0uNjYuNDUtMS4zMi41Ny0yIn1dLFsicGF0aCIse2Q6Ik05IDYuOGE2IDYgMCAwIDEgOSA1LjJ2MiJ9XV0sWlV0PVtbInBhdGgiLHtkOiJNMTUgNi41VjNhMSAxIDAgMCAwLTEtMWgtMmExIDEgMCAwIDAtMSAxdjMuNSJ9XSxbInBhdGgiLHtkOiJNOSAxOGg4In1dLFsicGF0aCIse2Q6Ik0xOCAzaC0zIn1dLFsicGF0aCIse2Q6Ik0xMSAzYTYgNiAwIDAgMC02IDZ2MTEifV0sWyJwYXRoIix7ZDoiTTUgMTNoNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTBhNCA0IDAgMCAwLTggMHYxMGEyIDIgMCAwIDAgMiAyaDRhMiAyIDAgMCAwIDItMloifV1dLFhVdD1bWyJwYXRoIix7ZDoiTTE4IDEyLjQ3di4wM20wLS41di40N20tLjQ3NSA1LjA1NkE2Ljc0NCA2Ljc0NCAwIDAgMSAxNSAxOGMtMy41NiAwLTcuNTYtMi41My04LjUtNiAuMzQ4LTEuMjggMS4xMTQtMi40MzMgMi4xMjEtMy4zOG0zLjQ0NC0yLjA4OEE4LjgwMiA4LjgwMiAwIDAgMSAxNSA2YzMuNTYgMCA2LjA2IDIuNTQgNyA2LS4zMDkgMS4xNC0uNzg2IDIuMTc3LTEuNDEzIDMuMDU4In1dLFsicGF0aCIse2Q6Ik03IDEwLjY3QzcgOCA1LjU4IDUuOTcgMi43MyA1LjVjLTEgMS41LTEgNSAuMjMgNi41LTEuMjQgMS41LTEuMjQgNS0uMjMgNi41QzUuNTggMTguMDMgNyAxNiA3IDEzLjMzbTcuNDgtNC4zNzJBOS43NyA5Ljc3IDAgMCAxIDE2IDYuMDdtMCAxMS44NmE5Ljc3IDkuNzcgMCAwIDEtMS43MjgtMy42MTgifV0sWyJwYXRoIix7ZDoibTE2LjAxIDE3LjkzLS4yMyAxLjRBMiAyIDAgMCAxIDEzLjggMjFIOS41YTUuOTYgNS45NiAwIDAgMCAxLjQ5LTMuOThNOC41MyAzaDUuMjdhMiAyIDAgMCAxIDEuOTggMS42N2wuMjMgMS40TTIgMmwyMCAyMCJ9XV0sUVV0PVtbInBhdGgiLHtkOiJNMiAxNnM5LTE1IDIwLTRDMTEgMjMgMiA4IDIgOCJ9XV0sSlV0PVtbInBhdGgiLHtkOiJNNi41IDEyYy45NC0zLjQ2IDQuOTQtNiA4LjUtNiAzLjU2IDAgNi4wNiAyLjU0IDcgNi0uOTQgMy40Ny0zLjQ0IDYtNyA2cy03LjU2LTIuNTMtOC41LTZaIn1dLFsicGF0aCIse2Q6Ik0xOCAxMnYuNSJ9XSxbInBhdGgiLHtkOiJNMTYgMTcuOTNhOS43NyA5Ljc3IDAgMCAxIDAtMTEuODYifV0sWyJwYXRoIix7ZDoiTTcgMTAuNjdDNyA4IDUuNTggNS45NyAyLjczIDUuNWMtMSAxLjUtMSA1IC4yMyA2LjUtMS4yNCAxLjUtMS4yNCA1LS4yMyA2LjVDNS41OCAxOC4wMyA3IDE2IDcgMTMuMzMifV0sWyJwYXRoIix7ZDoiTTEwLjQ2IDcuMjZDMTAuMiA1Ljg4IDkuMTcgNC4yNCA4IDNoNS44YTIgMiAwIDAgMSAxLjk4IDEuNjdsLjIzIDEuNCJ9XSxbInBhdGgiLHtkOiJtMTYuMDEgMTcuOTMtLjIzIDEuNEEyIDIgMCAwIDEgMTMuOCAyMUg5LjVhNS45NiA1Ljk2IDAgMCAwIDEuNDktMy45OCJ9XV0sS1V0PVtbInBhdGgiLHtkOiJtMTcuNTg2IDExLjQxNC01LjkzIDUuOTNhMSAxIDAgMCAxLTgtOGwzLjEzNy0zLjEzN2EuNzA3LjcwNyAwIDAgMSAxLjIwNy41VjEwIn1dLFsicGF0aCIse2Q6Ik0yMC40MTQgOC41ODYgMjIgNyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjEwIixyOiIyIn1dXSxlV3Q9W1sicGF0aCIse2Q6Ik0xNiAxNmMtMyAwLTUtMi04LTJhNiA2IDAgMCAwLTQgMS41MjgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNCAyMlY0In1dLFsicGF0aCIse2Q6Ik03LjY1NiAySDhjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMC4zNDcifV1dLHRXdD1bWyJwYXRoIix7ZDoiTTE4IDIyVjIuOGEuOC44IDAgMCAwLTEuMTctLjcxTDUuNDUgNy43OGEuOC44IDAgMCAwIDAgMS40NEwxOCAxNS41In1dXSxyV3Q9W1sicGF0aCIse2Q6Ik02IDIyVjIuOGEuOC44IDAgMCAxIDEuMTctLjcxbDExLjM4IDUuNjlhLjguOCAwIDAgMSAwIDEuNDRMNiAxNS41In1dXSxpV3Q9W1sicGF0aCIse2Q6Ik00IDIyVjRhMSAxIDAgMCAxIC40LS44QTYgNiAwIDAgMSA4IDJjMyAwIDUgMiA3LjMzMyAycTIgMCAzLjA2Ny0uOEExIDEgMCAwIDEgMjAgNHYxMGExIDEgMCAwIDEtLjQuOEE2IDYgMCAwIDEgMTYgMTZjLTMgMC01LTItOC0yYTYgNiAwIDAgMC00IDEuNTI4In1dXSxhV3Q9W1sicGF0aCIse2Q6Ik0xMiAyYzEgMyAyLjUgMy41IDMuNSA0LjVBNSA1IDAgMCAxIDE3IDEwYTUgNSAwIDEgMS0xMCAwYzAtLjMgMC0uNi4xLS45YTIgMiAwIDEgMCAzLjMtMkM4IDQuNSAxMSAyIDEyIDJaIn1dLFsicGF0aCIse2Q6Im01IDIyIDE0LTQifV0sWyJwYXRoIix7ZDoibTUgMTggMTQgNCJ9XV0sbld0PVtbInBhdGgiLHtkOiJNMTIgM3ExIDQgNCA2LjV0MyA1LjVhMSAxIDAgMCAxLTE0IDAgNSA1IDAgMCAxIDEtMyAxIDEgMCAwIDAgNSAwYzAtMi0xLjUtMy0xLjUtNXEwLTIgMi41LTQifV1dLG9XdD1bWyJwYXRoIix7ZDoiTTExLjY1MiA2SDE4In1dLFsicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnY0YTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjYifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNy42NDkgMkgxN2ExIDEgMCAwIDEgMSAxdjRhMyAzIDAgMCAxLS42IDEuOGwtLjYuOGE0IDQgMCAwIDAtLjU1IDEuMDA3In1dXSxzV3Q9W1sicGF0aCIse2Q6Ik0xMiAxM3YxIn1dLFsicGF0aCIse2Q6Ik0xNyAyYTEgMSAwIDAgMSAxIDF2NGEzIDMgMCAwIDEtLjYgMS44bC0uNi44QTQgNCAwIDAgMCAxNiAxMnY4YTIgMiAwIDAgMS0yIDJIMTBhMiAyIDAgMCAxLTItMnYtOGE0IDQgMCAwIDAtLjgtMi40bC0uNi0uOEEzIDMgMCAwIDEgNiA3VjNhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgNmgxMiJ9XV0sbFd0PVtbInBhdGgiLHtkOiJNMTAgMnYyLjM0MyJ9XSxbInBhdGgiLHtkOiJNMTQgMnY2LjM0MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTEuNzU1LTIuOTZsNS4yMjctOS41NjMifV0sWyJwYXRoIix7ZDoiTTYuNDUzIDE1SDE1In1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dXSxjV3Q9W1sicGF0aCIse2Q6Ik0xNCAydjZhMiAyIDAgMCAwIC4yNDUuOTZsNS41MSAxMC4wOEEyIDIgMCAwIDEgMTggMjJINmEyIDIgMCAwIDEtMS43NTUtMi45Nmw1LjUxLTEwLjA4QTIgMiAwIDAgMCAxMCA4VjIifV0sWyJwYXRoIix7ZDoiTTYuNDUzIDE1aDExLjA5NCJ9XSxbInBhdGgiLHtkOiJNOC41IDJoNyJ9XV0sZFd0PVtbInBhdGgiLHtkOiJNMTAgMnY2LjI5MmE3IDcgMCAxIDAgNCAwVjIifV0sWyJwYXRoIix7ZDoiTTUgMTVoMTQifV0sWyJwYXRoIix7ZDoiTTguNSAyaDcifV1dLHVXdD1bWyJwYXRoIix7ZDoibTMgNyA1IDUtNSA1VjcifV0sWyJwYXRoIix7ZDoibTIxIDctNSA1IDUgNVY3In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiA4djIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XV0scFd0PVtbInBhdGgiLHtkOiJNOCAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDMifV0sWyJwYXRoIix7ZDoiTTE2IDNoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJoLTMifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoiTTEyIDE0djIifV0sWyJwYXRoIix7ZDoiTTEyIDh2MiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyIn1dXSxoV3Q9W1sicGF0aCIse2Q6Im0xNyAzLTUgNS01LTVoMTAifV0sWyJwYXRoIix7ZDoibTE3IDIxLTUtNS01IDVoMTAifV0sWyJwYXRoIix7ZDoiTTQgMTJIMiJ9XSxbInBhdGgiLHtkOiJNMTAgMTJIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC0yIn1dXSxmV3Q9W1sicGF0aCIse2Q6Ik0yMSA4VjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMjEgMTZ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTIifV1dLG1XdD1bWyJwYXRoIix7ZDoiTTEyIDVhMyAzIDAgMSAxIDMgM20tMy0zYTMgMyAwIDEgMC0zIDNtMy0zdjFNOSA4YTMgMyAwIDEgMCAzIDNNOSA4aDFtNSAwYTMgMyAwIDEgMS0zIDNtMy0zaC0xbS0yIDN2LTEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHYxMiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJjNC4yIDAgNy0xLjY2NyA3LTUtNC4yIDAtNyAxLjY2Ny03IDVaIn1dLFsicGF0aCIse2Q6Ik0xMiAyMmMtNC4yIDAtNy0xLjY2Ny03LTUgNC4yIDAgNyAxLjY2NyA3IDVaIn1dXSxnV3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDE2LjVBNC41IDQuNSAwIDEgMSA3LjUgMTIgNC41IDQuNSAwIDEgMSAxMiA3LjVhNC41IDQuNSAwIDEgMSA0LjUgNC41IDQuNSA0LjUgMCAxIDEtNC41IDQuNSJ9XSxbInBhdGgiLHtkOiJNMTIgNy41VjkifV0sWyJwYXRoIix7ZDoiTTcuNSAxMkg5In1dLFsicGF0aCIse2Q6Ik0xNi41IDEySDE1In1dLFsicGF0aCIse2Q6Ik0xMiAxNi41VjE1In1dLFsicGF0aCIse2Q6Im04IDggMS44OCAxLjg4In1dLFsicGF0aCIse2Q6Ik0xNC4xMiA5Ljg4IDE2IDgifV0sWyJwYXRoIix7ZDoibTggMTYgMS44OC0xLjg4In1dLFsicGF0aCIse2Q6Ik0xNC4xMiAxNC4xMiAxNiAxNiJ9XV0sYld0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV1dLHZXdD1bWyJwYXRoIix7ZDoiTTIgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTYifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Im0xOSA5LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoibTUgMTUgMy0zLTMtMyJ9XV0seFd0PVtbInBhdGgiLHtkOiJNMTIgMjJ2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDhWMiJ9XSxbInBhdGgiLHtkOiJNNCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTIifV0sWyJwYXRoIix7ZDoibTE1IDE5LTMtMy0zIDMifV0sWyJwYXRoIix7ZDoibTE1IDUtMyAzLTMtMyJ9XV0seVd0PVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Im05IDEzIDIgMiA0LTQifV1dLHdXdD1bWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMjAuOSAxOS44QTIgMiAwIDAgMCAyMiAxOFY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJoNS4xIn1dLFsicGF0aCIse2Q6Ik0xNSAxMXYtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMTd2LTIifV1dLE1XdD1bWyJwYXRoIix7ZDoiTTE2IDE0djIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJNNyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAyIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV1dLGtXdD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMiAxMGgyMCJ9XV0sU1d0PVtbInBhdGgiLHtkOiJNMTAgMTAuNSA4IDEzbDIgMi41In1dLFsicGF0aCIse2Q6Im0xNCAxMC41IDIgMi41LTIgMi41In1dLFsicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMnoifV1dLG5JPVtbInBhdGgiLHtkOiJNMTAuMyAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOThhMiAyIDAgMCAxIDEuNjkuOWwuNjYgMS4yQTIgMiAwIDAgMCAxMiA2aDhhMiAyIDAgMCAxIDIgMnYzLjMifV0sWyJwYXRoIix7ZDoibTE0LjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTYuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgMTkuMTQ4LjkyNC4zODMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV0seld0PVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIxIn1dXSxDV3Q9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjYifV0sWyJwYXRoIix7ZDoibTE1IDEzLTMgMy0zLTMifV1dLFRXdD1bWyJwYXRoIix7ZDoiTTE4IDE5YTUgNSAwIDAgMS01LTV2OCJ9XSxbInBhdGgiLHtkOiJNOSAyMEg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOWEyIDIgMCAwIDEgMS42OS45bC44MSAxLjJhMiAyIDAgMCAwIDEuNjcuOUgyMGEyIDIgMCAwIDEgMiAydjUifV0sWyJjaXJjbGUiLHtjeDoiMTMiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE5IixyOiIyIn1dXSxfV3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTMiLHI6IjIifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTQgMTNoMyJ9XSxbInBhdGgiLHtkOiJNNyAxM2gzIn1dXSxMV3Q9W1sicGF0aCIse2Q6Ik0xMC42MzggMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYzLjQxNyJ9XSxbInBhdGgiLHtkOiJNMTQuNjIgMTguOEEyLjI1IDIuMjUgMCAxIDEgMTggMTUuODM2YTIuMjUgMi4yNSAwIDEgMSAzLjM4IDIuOTY2bC0yLjYyNiAyLjg1NmEuOTk4Ljk5OCAwIDAgMS0xLjUwNyAweiJ9XV0sQVd0PVtbInBhdGgiLHtkOiJNMiA5VjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtMSJ9XSxbInBhdGgiLHtkOiJNMiAxM2gxMCJ9XSxbInBhdGgiLHtkOiJtOSAxNiAzLTMtMy0zIn1dXSxEV3Q9W1sicGF0aCIse2Q6Ik00IDIwaDE2YTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjkzYTIgMiAwIDAgMS0xLjY2LS45bC0uODItMS4yQTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYzAgMS4xLjkgMiAyIDJaIn1dLFsicGF0aCIse2Q6Ik04IDEwdjQifV0sWyJwYXRoIix7ZDoiTTEyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTE2IDEwdjYifV1dLEVXdD1bWyJwYXRoIix7ZDoiTTEzIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MS4zNiJ9XSxbInBhdGgiLHtkOiJNMTkgMTJ2NiJ9XSxbInBhdGgiLHtkOiJNMTkgMTRoMiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjIwIixyOiIyIn1dXSwkV3Q9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiIxNyIscng6IjEifV0sWyJwYXRoIix7ZDoiTTEwIDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2Mi41In1dLFsicGF0aCIse2Q6Ik0yMCAxN3YtMmEyIDIgMCAxIDAtNCAwdjIifV1dLElXdD1bWyJwYXRoIix7ZDoiTTkgMTNoNiJ9XSxbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dXSxQV3Q9W1sicGF0aCIse2Q6Im02IDE0IDEuNDUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NSA2YTIgMiAwIDAgMS0xLjk0IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWMwLTEuMS45LTIgMi0yaDMuOTNhMiAyIDAgMCAxIDEuNjYuOWwuODIgMS4yYTIgMiAwIDAgMCAxLjY2LjlIMThhMiAyIDAgMCAxIDIgMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjE0IixjeToiMTUiLHI6IjEifV1dLE5XdD1bWyJwYXRoIix7ZDoibTYgMTQgMS41LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTQgNmEyIDIgMCAwIDEtMS45NSAxLjVINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMThhMiAyIDAgMCAxIDIgMnYyIn1dXSxGV3Q9W1sicGF0aCIse2Q6Ik0yIDcuNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTEuNSJ9XSxbInBhdGgiLHtkOiJNMiAxM2gxMCJ9XSxbInBhdGgiLHtkOiJtNSAxMC0zIDMgMyAzIn1dXSxvST1bWyJwYXRoIix7ZDoiTTIgMTEuNVY1YTIgMiAwIDAgMSAyLTJoMy45Yy43IDAgMS4zLjMgMS43LjlsLjggMS4yYy40LjYgMSAuOSAxLjcuOUgyMGEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTkuNSJ9XSxbInBhdGgiLHtkOiJNMTEuMzc4IDEzLjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXSxPV3Q9W1sicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Ik05IDEzaDYifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XV0sUld0PVtbInBhdGgiLHtkOiJNNCAyMGgxNmEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45M2EyIDIgMCAwIDEtMS42Ni0uOWwtLjgyLTEuMkEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2MwIDEuMS45IDIgMiAyWiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY1In1dXSxCV3Q9W1siY2lyY2xlIix7Y3g6IjExLjUiLGN5OiIxMi41IixyOiIyLjUifV0sWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTMuMyAxNC4zIDE1IDE2In1dXSxIV3Q9W1sicGF0aCIse2Q6Ik0xMC43IDIwSDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2NC4xIn1dLFsicGF0aCIse2Q6Im0yMSAyMS0xLjktMS45In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjMifV1dLHFXdD1bWyJwYXRoIix7ZDoiTTIgOS4zNVY1YTIgMiAwIDAgMSAyLTJoMy45YTIgMiAwIDAgMSAxLjY5LjlsLjgxIDEuMmEyIDIgMCAwIDAgMS42Ny45SDIwYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmg3In1dLFsicGF0aCIse2Q6Im04IDE2IDMtMy0zLTMifV1dLGpXdD1bWyJwYXRoIix7ZDoiTTkgMjBINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjlhMiAyIDAgMCAxIDEuNjkuOWwuODEgMS4yYTIgMiAwIDAgMCAxLjY3LjlIMjBhMiAyIDAgMCAxIDIgMnYuNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NGg0In1dLFsicGF0aCIse2Q6Im0xMiAxNCAxLjUzNS0xLjYwNWE1IDUgMCAwIDEgOCAxLjUifV0sWyJwYXRoIix7ZDoiTTIyIDIydi00aC00In1dLFsicGF0aCIse2Q6Im0yMiAxOC0xLjUzNSAxLjYwNWE1IDUgMCAwIDEtOC0xLjUifV1dLFZXdD1bWyJwYXRoIix7ZDoiTTIwIDEwYTEgMSAwIDAgMCAxLTFWNmExIDEgMCAwIDAtMS0xaC0yLjVhMSAxIDAgMCAxLS44LS40bC0uOS0xLjJBMSAxIDAgMCAwIDE1IDNoLTJhMSAxIDAgMCAwLTEgMXY1YTEgMSAwIDAgMCAxIDFaIn1dLFsicGF0aCIse2Q6Ik0yMCAyMWExIDEgMCAwIDAgMS0xdi0zYTEgMSAwIDAgMC0xLTFoLTIuOWExIDEgMCAwIDEtLjg4LS41NWwtLjQyLS44NWExIDEgMCAwIDAtLjkyLS42SDEzYTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxWiJ9XSxbInBhdGgiLHtkOiJNMyA1YTIgMiAwIDAgMCAyIDJoMyJ9XSxbInBhdGgiLHtkOiJNMyAzdjEzYTIgMiAwIDAgMCAyIDJoMyJ9XV0sVVd0PVtbInBhdGgiLHtkOiJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xMiAxMHY2In1dLFsicGF0aCIse2Q6Im05IDEzIDMtMyAzIDMifV1dLFdXdD1bWyJwYXRoIix7ZDoiTTIwIDIwYTIgMiAwIDAgMCAyLTJWOGEyIDIgMCAwIDAtMi0yaC03LjlhMiAyIDAgMCAxLTEuNjktLjlMOS42IDMuOUEyIDIgMCAwIDAgNy45MyAzSDRhMiAyIDAgMCAwLTIgMnYxM2EyIDIgMCAwIDAgMiAyWiJ9XSxbInBhdGgiLHtkOiJtOS41IDEwLjUgNSA1In1dLFsicGF0aCIse2Q6Im0xNC41IDEwLjUtNSA1In1dXSxHV3Q9W1sicGF0aCIse2Q6Ik0yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMloifV1dLFlXdD1bWyJwYXRoIix7ZDoiTTIwIDVhMiAyIDAgMCAxIDIgMnY3YTIgMiAwIDAgMS0yIDJIOWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgyLjVhMS41IDEuNSAwIDAgMSAxLjIuNmwuNi44YTEuNSAxLjUgMCAwIDAgMS4yLjZ6In1dLFsicGF0aCIse2Q6Ik0zIDguMjY4YTIgMiAwIDAgMC0xIDEuNzM4VjE5YTIgMiAwIDAgMCAyIDJoMTFhMiAyIDAgMCAwIDEuNzMyLTEifV1dLFpXdD1bWyJwYXRoIix7ZDoiTTEyIDEySDVhMiAyIDAgMCAwLTIgMnY1In1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik04IDE5aDNtNS0xN3YxN2g2TTYgMTJWN2MwLTEuMS45LTIgMi0yaDNsNSA1In1dXSxYV3Q9W1sicGF0aCIse2Q6Ik00IDE2di0yLjM4QzQgMTEuNSAyLjk3IDEwLjUgMyA4Yy4wMy0yLjcyIDEuNDktNiA0LjUtNkM5LjM3IDIgMTAgMy44IDEwIDUuNWMwIDMuMTEtMiA1LjY2LTIgOC42OFYxNmEyIDIgMCAxIDEtNCAwWiJ9XSxbInBhdGgiLHtkOiJNMjAgMjB2LTIuMzhjMC0yLjEyIDEuMDMtMy4xMiAxLTUuNjItLjAzLTIuNzItMS40OS02LTQuNS02QzE0LjYzIDYgMTQgNy44IDE0IDkuNWMwIDMuMTEgMiA1LjY2IDIgOC42OFYyMGEyIDIgMCAxIDAgNCAwWiJ9XSxbInBhdGgiLHtkOiJNMTYgMTdoNCJ9XSxbInBhdGgiLHtkOiJNNCAxM2g0In1dXSxRV3Q9W1sicGF0aCIse2Q6Ik00IDE0aDYifV0sWyJwYXRoIix7ZDoiTTQgMmgxMCJ9XSxbInJlY3QiLHt4OiI0Iix5OiIxOCIsd2lkdGg6IjE2IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjQiLHk6IjYiLHdpZHRoOiIxNiIsaGVpZ2h0OiI0IixyeDoiMSJ9XV0sSld0PVtbInBhdGgiLHtkOiJtMTUgMTcgNS01LTUtNSJ9XSxbInBhdGgiLHtkOiJNNCAxOHYtMmE0IDQgMCAwIDEgNC00aDEyIn1dXSxLV3Q9W1sibGluZSIse3gxOiIyMiIseDI6IjIiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIyIix5MToiMTgiLHkyOiIxOCJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYiLHkxOiIyIix5MjoiMjIifV0sWyJsaW5lIix7eDE6IjE4Iix4MjoiMTgiLHkxOiIyIix5MjoiMjIifV1dLGVHdD1bWyJwYXRoIix7ZDoiTTUgMTZWOWgxNFYySDVsMTQgMTRoLTdtLTcgMCA3IDd2LTdtLTcgMGg3In1dXSx0R3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIn1dLFsicGF0aCIse2Q6Ik0xNiAxNnMtMS41LTItNC0yLTQgMi00IDIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV0sckd0PVtbInBhdGgiLHtkOiJNMTQgMTNoMmEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAwIDQgMHYtNi45OThhMiAyIDAgMCAwLS41OS0xLjQyTDE4IDUifV0sWyJwYXRoIix7ZDoiTTE0IDIxVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTYifV0sWyJwYXRoIix7ZDoiTTIgMjFoMTMifV0sWyJwYXRoIix7ZDoiTTMgOWgxMSJ9XV0saUd0PVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicmVjdCIse3dpZHRoOiIxMCIsaGVpZ2h0OiI4Iix4OiI3Iix5OiI4IixyeDoiMSJ9XV0sYUd0PVtbInBhdGgiLHtkOiJNMTMuMzU0IDNIM2ExIDEgMCAwIDAtLjc0MiAxLjY3bDcuMjI1IDcuOTg5QTIgMiAwIDAgMSAxMCAxNHY2YTEgMSAwIDAgMCAuNTUzLjg5NWwyIDFBMSAxIDAgMCAwIDE0IDIxdi03YTIgMiAwIDAgMSAuNTE3LTEuMzQxbDEuMjE4LTEuMzQ4In1dLFsicGF0aCIse2Q6Ik0xNiA2aDYifV0sWyJwYXRoIix7ZDoiTTE5IDN2NiJ9XV0sc0k9W1sicGF0aCIse2Q6Ik0xMi41MzEgM0gzYTEgMSAwIDAgMC0uNzQyIDEuNjdsNy4yMjUgNy45ODlBMiAyIDAgMCAxIDEwIDE0djZhMSAxIDAgMCAwIC41NTMuODk1bDIgMUExIDEgMCAwIDAgMTQgMjF2LTdhMiAyIDAgMCAxIC41MTctMS4zNDFsLjQyNy0uNDczIn1dLFsicGF0aCIse2Q6Im0xNi41IDMuNSA1IDUifV0sWyJwYXRoIix7ZDoibTIxLjUgMy41LTUgNSJ9XV0sbEk9W1sicGF0aCIse2Q6Ik0xMCAyMGExIDEgMCAwIDAgLjU1My44OTVsMiAxQTEgMSAwIDAgMCAxNCAyMXYtN2EyIDIgMCAwIDEgLjUxNy0xLjM0MUwyMS43NCA0LjY3QTEgMSAwIDAgMCAyMSAzSDNhMSAxIDAgMCAwLS43NDIgMS42N2w3LjIyNSA3Ljk4OUEyIDIgMCAwIDEgMTAgMTR6In1dXSxuR3Q9W1sicGF0aCIse2Q6Ik0yIDd2MTAifV0sWyJwYXRoIix7ZDoiTTYgNXYxNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMTgiLHg6IjEwIix5OiIzIixyeDoiMiJ9XV0sb0d0PVtbInBhdGgiLHtkOiJNMiAzdjE4In1dLFsicmVjdCIse3dpZHRoOiIxMiIsaGVpZ2h0OiIxOCIseDoiNiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIyIDN2MTgifV1dLHNHdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE0Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTE0IDIxaDEifV0sWyJwYXRoIix7ZDoiTTE5IDIxaDEifV1dLGxHdD1bWyJwYXRoIix7ZDoiTTcgMmgxMCJ9XSxbInBhdGgiLHtkOiJNNSA2aDE0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiMTAiLHJ4OiIyIn1dXSxjR3Q9W1sicGF0aCIse2Q6Ik0zIDJoMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI2IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyAyMmgxOCJ9XV0sZEd0PVtbImxpbmUiLHt4MToiNiIseDI6IjEwIix5MToiMTEiLHkyOiIxMSJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjgiLHkxOiI5Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOCIseDI6IjE4LjAxIix5MToiMTAiLHkyOiIxMCJ9XSxbInBhdGgiLHtkOiJNMTcuMzIgNUg2LjY4YTQgNCAwIDAgMC0zLjk3OCAzLjU5Yy0uMDA2LjA1Mi0uMDEuMTAxLS4wMTcuMTUyQzIuNjA0IDkuNDE2IDIgMTQuNDU2IDIgMTZhMyAzIDAgMCAwIDMgM2MxIDAgMS41LS41IDItMWwxLjQxNC0xLjQxNEEyIDIgMCAwIDEgOS44MjggMTZoNC4zNDRhMiAyIDAgMCAxIDEuNDE0LjU4NkwxNyAxOGMuNS41IDEgMSAyIDFhMyAzIDAgMCAwIDMtM2MwLTEuNTQ1LS42MDQtNi41ODQtLjY4NS03LjI1OC0uMDA3LS4wNS0uMDExLS4xLS4wMTctLjE1MUE0IDQgMCAwIDAgMTcuMzIgNXoifV1dLHVHdD1bWyJwYXRoIix7ZDoiTTExLjE0NiAxNS44NTRhMS4yMDcgMS4yMDcgMCAwIDEgMS43MDggMGwxLjU2IDEuNTZBMiAyIDAgMCAxIDE1IDE4LjgyOFYyMWExIDEgMCAwIDEtMSAxaC00YTEgMSAwIDAgMS0xLTF2LTIuMTcyYTIgMiAwIDAgMSAuNTg2LTEuNDE0eiJ9XSxbInBhdGgiLHtkOiJNMTguODI4IDE1YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC0xLjU2LTEuNTZhMS4yMDcgMS4yMDcgMCAwIDEgMC0xLjcwOGwxLjU2LTEuNTZBMiAyIDAgMCAxIDE4LjgyOCA5SDIxYTEgMSAwIDAgMSAxIDF2NGExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNNi41ODYgMTQuNDE0QTIgMiAwIDAgMSA1LjE3MiAxNUgzYTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMWgyLjE3MmEyIDIgMCAwIDEgMS40MTQuNTg2bDEuNTYgMS41NmExLjIwNyAxLjIwNyAwIDAgMSAwIDEuNzA4eiJ9XSxbInBhdGgiLHtkOiJNOSAzYTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjIuMTcyYTIgMiAwIDAgMS0uNTg2IDEuNDE0bC0xLjU2IDEuNTZhMS4yMDcgMS4yMDcgMCAwIDEtMS43MDggMGwtMS41Ni0xLjU2QTIgMiAwIDAgMSA5IDUuMTcyeiJ9XV0scEd0PVtbImxpbmUiLHt4MToiNiIseDI6IjEwIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjgiLHkxOiIxMCIseTI6IjE0In1dLFsibGluZSIse3gxOiIxNSIseDI6IjE1LjAxIix5MToiMTMiLHkyOiIxMyJ9XSxbImxpbmUiLHt4MToiMTgiLHgyOiIxOC4wMSIseTE6IjExIix5MjoiMTEifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMiJ9XV0saEd0PVtbInBhdGgiLHtkOiJtMTIgMTQgNC00In1dLFsicGF0aCIse2Q6Ik0zLjM0IDE5YTEwIDEwIDAgMSAxIDE3LjMyIDAifV1dLGZHdD1bWyJwYXRoIix7ZDoibTE0IDEzLTguMzgxIDguMzhhMSAxIDAgMCAxLTMuMDAxLTNsOC4zODQtOC4zODEifV0sWyJwYXRoIix7ZDoibTE2IDE2IDYtNiJ9XSxbInBhdGgiLHtkOiJtMjEuNSAxMC41LTgtOCJ9XSxbInBhdGgiLHtkOiJtOCA4IDYtNiJ9XSxbInBhdGgiLHtkOiJtOC41IDcuNSA4IDgifV1dLG1HdD1bWyJwYXRoIix7ZDoiTTEwLjUgMyA4IDlsNCAxMyA0LTEzLTIuNS02In1dLFsicGF0aCIse2Q6Ik0xNyAzYTIgMiAwIDAgMSAxLjYuOGwzIDRhMiAyIDAgMCAxIC4wMTMgMi4zODJsLTcuOTkgMTAuOTg2YTIgMiAwIDAgMS0zLjI0NyAwbC03Ljk5LTEwLjk4NkEyIDIgMCAwIDEgMi40IDcuOGwyLjk5OC0zLjk5N0EyIDIgMCAwIDEgNyAzeiJ9XSxbInBhdGgiLHtkOiJNMiA5aDIwIn1dXSxnR3Q9W1sicGF0aCIse2Q6Ik0xMS41IDIxYTcuNSA3LjUgMCAxIDEgNy4zNS05In1dLFsicGF0aCIse2Q6Ik0xMyAxMlYzIn1dLFsicGF0aCIse2Q6Ik00IDIxaDE2In1dLFsicGF0aCIse2Q6Ik05IDEyVjMifV1dLGJHdD1bWyJwYXRoIix7ZDoiTTkgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDJhOCA4IDAgMCAwLTggOHYxMmwzLTMgMi41IDIuNUwxMiAxOWwyLjUgMi41TDE3IDE5bDMgM1YxMGE4IDggMCAwIDAtOC04eiJ9XV0sdkd0PVtbInBhdGgiLHtkOiJNMTUgNmE5IDkgMCAwIDAtOSA5VjMifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV1dLHhHdD1bWyJwYXRoIix7ZDoiTTYgM3YxMiJ9XSxbInBhdGgiLHtkOiJNMTggOWEzIDMgMCAxIDAgMC02IDMgMyAwIDAgMCAwIDZ6In1dLFsicGF0aCIse2Q6Ik02IDIxYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNnoifV0sWyJwYXRoIix7ZDoiTTE1IDZhOSA5IDAgMCAwLTkgOSJ9XSxbInBhdGgiLHtkOiJNMTggMTV2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMThoLTYifV1dLHlHdD1bWyJyZWN0Iix7eDoiMyIseToiOCIsd2lkdGg6IjE4IixoZWlnaHQ6IjQiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djEzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMnY3YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0ydi03In1dLFsicGF0aCIse2Q6Ik03LjUgOGEyLjUgMi41IDAgMCAxIDAtNUE0LjggOCAwIDAgMSAxMiA4YTQuOCA4IDAgMCAxIDQuNS01IDIuNSAyLjUgMCAwIDEgMCA1In1dXSx3R3Q9W1sicGF0aCIse2Q6Ik0xNSA2YTkgOSAwIDAgMC05IDlWMyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjYiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dXSxjST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjkiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxNSIseDI6IjIxIix5MToiMTIiLHkyOiIxMiJ9XV0sTUd0PVtbInBhdGgiLHtkOiJNMTIgM3Y2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDE1djYifV1dLGtHdD1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcifV0sWyJwYXRoIix7ZDoibTE1IDktMy0zIDMtMyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOEg3YTIgMiAwIDAgMS0yLTJWOSJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzIDMtMyAzIn1dXSxTR3Q9W1siY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTEzIDZoM2EyIDIgMCAwIDEgMiAydjcifV0sWyJwYXRoIix7ZDoiTTExIDE4SDhhMiAyIDAgMCAxLTItMlY5In1dXSx6R3Q9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xOCA5djJjMCAuNi0uNCAxLTEgMUg3Yy0uNiAwLTEtLjQtMS0xVjkifV0sWyJwYXRoIix7ZDoiTTEyIDEydjMifV1dLENHdD1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXY2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE2IDE1LjdBOSA5IDAgMCAwIDE5IDkifV1dLFRHdD1bWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiAyMVY5YTkgOSAwIDAgMCA5IDkifV1dLF9HdD1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXYxMiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Im0xNSA5LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTEyIDZoNWEyIDIgMCAwIDEgMiAydjcifV1dLExHdD1bWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTYgOXYxMiJ9XSxbInBhdGgiLHtkOiJtMjEgMy02IDYifV0sWyJwYXRoIix7ZDoibTIxIDktNi02In1dLFsicGF0aCIse2Q6Ik0xOCAxMS41VjE1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLEFHdD1bWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjYiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTUgOXYxMiJ9XSxbInBhdGgiLHtkOiJtMTUgOS0zLTMgMy0zIn1dLFsicGF0aCIse2Q6Ik0xMiA2aDVhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMiAxOGgtNiJ9XV0sREd0PVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNiA5djEyIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XV0sRUd0PVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xOCA2VjUifV0sWyJwYXRoIix7ZDoiTTE4IDExdi0xIn1dLFsibGluZSIse3gxOiI2Iix4MjoiNiIseTE6IjkiLHkyOiIyMSJ9XV0sJEd0PVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI2IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xMyA2aDNhMiAyIDAgMCAxIDIgMnY3In1dLFsibGluZSIse3gxOiI2Iix4MjoiNiIseTE6IjkiLHkyOiIyMSJ9XV0sSUd0PVtbInBhdGgiLHtkOiJNMTUgMjJ2LTRhNC44IDQuOCAwIDAgMC0xLTMuNWMzIDAgNi0yIDYtNS41LjA4LTEuMjUtLjI3LTIuNDgtMS0zLjUuMjgtMS4xNS4yOC0yLjM1IDAtMy41IDAgMC0xIDAtMyAxLjUtMi42NC0uNS01LjM2LS41LTggMEM2IDIgNSAyIDUgMmMtLjMgMS4xNS0uMyAyLjM1IDAgMy41QTUuNDAzIDUuNDAzIDAgMCAwIDQgOWMwIDMuNSAzIDUuNSA2IDUuNS0uMzkuNDktLjY4IDEuMDUtLjg1IDEuNjUtLjE3LjYtLjIyIDEuMjMtLjE1IDEuODV2NCJ9XSxbInBhdGgiLHtkOiJNOSAxOGMtNC41MSAyLTUtMi03LTIifV1dLFBHdD1bWyJwYXRoIix7ZDoibTIyIDEzLjI5LTMuMzMtMTBhLjQyLjQyIDAgMCAwLS4xNC0uMTguMzguMzggMCAwIDAtLjIyLS4xMS4zOS4zOSAwIDAgMC0uMjMuMDcuNDIuNDIgMCAwIDAtLjE0LjE4bC0yLjI2IDYuNjdIOC4zMkw2LjEgMy4yNmEuNDIuNDIgMCAwIDAtLjEtLjE4LjM4LjM4IDAgMCAwLS4yNi0uMDguMzkuMzkgMCAwIDAtLjIzLjA3LjQyLjQyIDAgMCAwLS4xNC4xOEwyIDEzLjI5YS43NC43NCAwIDAgMCAuMjcuODNMMTIgMjFsOS42OS02Ljg4YS43MS43MSAwIDAgMCAuMzEtLjgzWiJ9XV0sTkd0PVtbInBhdGgiLHtkOiJNNS4xMTYgNC4xMDRBMSAxIDAgMCAxIDYuMTEgM2gxMS43OGExIDEgMCAwIDEgLjk5NCAxLjEwNUwxNy4xOSAyMC4yMUEyIDIgMCAwIDEgMTUuMiAyMkg4LjhhMiAyIDAgMCAxLTItMS43OXoifV0sWyJwYXRoIix7ZDoiTTYgMTJhNSA1IDAgMCAxIDYgMCA1IDUgMCAwIDAgNiAwIn1dXSxGR3Q9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiIxNSIscjoiNCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE1IixyOiI0In1dLFsicGF0aCIse2Q6Ik0xNCAxNWEyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTIuNSAxMyA1IDdjLjctMS4zIDEuNC0yIDMtMiJ9XSxbInBhdGgiLHtkOiJNMjEuNSAxMyAxOSA3Yy0uNy0xLjMtMS41LTItMy0yIn1dXSxPR3Q9W1sicGF0aCIse2Q6Ik0xNS42ODYgMTVBMTQuNSAxNC41IDAgMCAxIDEyIDIyYTE0LjUgMTQuNSAwIDAgMSAwLTIwIDEwIDEwIDAgMSAwIDkuNTQyIDEzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDguNSJ9XSxbInBhdGgiLHtkOiJNMjAgNlY0YTIgMiAwIDEgMC00IDB2MiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI1Iix4OiIxNCIseToiNiIscng6IjEifV1dLFJHdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDAtMjAifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV1dLEJHdD1bWyJwYXRoIix7ZDoibTE2IDMgNSA1In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIwQTEwIDEwIDAgMSAxIDEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDQtMTAifV0sWyJwYXRoIix7ZDoibTIxIDMtNSA1In1dXSxIR3Q9W1sicGF0aCIse2Q6Ik0xMiAxM1YybDggNC04IDQifV0sWyJwYXRoIix7ZDoiTTIwLjU2MSAxMC4yMjJhOSA5IDAgMSAxLTEyLjU1LTUuMjkifV0sWyJwYXRoIix7ZDoiTTguMDAyIDkuOTk3YTUgNSAwIDEgMCA4LjkgMi4wMiJ9XV0scUd0PVtbInBhdGgiLHtkOiJNMiAyMVYzIn1dLFsicGF0aCIse2Q6Ik0yIDVoMThhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJIMi4yNiJ9XSxbInBhdGgiLHtkOiJNNyAxN3YzYTEgMSAwIDAgMCAxIDFoNWExIDEgMCAwIDAgMS0xdi0zIn1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTEiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjExIixyOiIyIn1dXSxqR3Q9W1sicGF0aCIse2Q6Ik0yMS40MiAxMC45MjJhMSAxIDAgMCAwLS4wMTktMS44MzhMMTIuODMgNS4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA5LjA4YTEgMSAwIDAgMCAwIDEuODMybDguNTcgMy45MDhhMiAyIDAgMCAwIDEuNjYgMHoifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjYifV0sWyJwYXRoIix7ZDoiTTYgMTIuNVYxNmE2IDMgMCAwIDAgMTIgMHYtMy41In1dXSxWR3Q9W1sicGF0aCIse2Q6Ik0yMiA1VjJsLTUuODkgNS44OSJ9XSxbImNpcmNsZSIse2N4OiIxNi42IixjeToiMTUuODkiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiOC4xMSIsY3k6IjcuNCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxMi4zNSIsY3k6IjExLjY1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjEzLjkxIixjeToiNS44NSIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiIxOC4xNSIsY3k6IjEwLjA5IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjYuNTYiLGN5OiIxMy4yIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjEwLjgiLGN5OiIxNy40NCIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjMifV1dLGRJPVtbInBhdGgiLHtkOiJNMTIgM3YxN2ExIDEgMCAwIDEtMSAxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMnY2YTEgMSAwIDAgMS0xIDFIMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XV0sdUk9W1sicGF0aCIse2Q6Ik0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dLFsicGF0aCIse2Q6Ik0xOSAyMnYtNiJ9XV0scEk9W1sicGF0aCIse2Q6Ik0xMiAzdjE3YTEgMSAwIDAgMS0xIDFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTEgMUgzIn1dLFsicGF0aCIse2Q6Im0xNiAxNiA1IDUifV0sWyJwYXRoIix7ZDoibTE2IDIxIDUtNSJ9XV0saEk9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLFVHdD1bWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxVcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik05IDN2MTgifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV1dLFdHdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiNSIsY3k6IjE1IixyOiIxIn1dXSxHR3Q9W1siY2lyY2xlIix7Y3g6IjkiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTkiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxNSIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxOSIscjoiMSJ9XV0sWUd0PVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjUiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTIiLHI6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxOSIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV0sWkd0PVtbInBhdGgiLHtkOiJNMyA3VjVjMC0xLjEuOS0yIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJjMS4xIDAgMiAuOSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmMwIDEuMS0uOSAyLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1Yy0xLjEgMC0yLS45LTItMnYtMiJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiI3Iix5OiI3IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI1Iix4OiIxMCIseToiMTIiLHJ4OiIxIn1dXSxYR3Q9W1sicGF0aCIse2Q6Im0xMS45IDEyLjEgNC41MTQtNC41MTQifV0sWyJwYXRoIix7ZDoiTTIwLjEgMi4zYTEgMSAwIDAgMC0xLjQgMGwtMS4xMTQgMS4xMTRBMiAyIDAgMCAwIDE3IDQuODI4djEuMzQ0YTIgMiAwIDAgMS0uNTg2IDEuNDE0QTIgMiAwIDAgMSAxNy44MjggN2gxLjM0NGEyIDIgMCAwIDAgMS40MTQtLjU4NkwyMS43IDUuM2ExIDEgMCAwIDAgMC0xLjR6In1dLFsicGF0aCIse2Q6Im02IDE2IDIgMiJ9XSxbInBhdGgiLHtkOiJNOC4yMyA5Ljg1QTMgMyAwIDAgMSAxMSA4YTUgNSAwIDAgMSA1IDUgMyAzIDAgMCAxLTEuODUgMi43N2wtLjkyLjM4QTIgMiAwIDAgMCAxMiAxOGE0IDQgMCAwIDEtNCA0IDYgNiAwIDAgMS02LTYgNCA0IDAgMCAxIDQtNCAyIDIgMCAwIDAgMS44NS0xLjIzeiJ9XV0sUUd0PVtbInBhdGgiLHtkOiJNMTMuMTQ0IDIxLjE0NEE3LjI3NCAxMC40NDUgNDUgMSAwIDIuODU2IDEwLjg1NiJ9XSxbInBhdGgiLHtkOiJNMTMuMTQ0IDIxLjE0NEE3LjI3NCA0LjM2NSA0NSAwIDAgMi44NTYgMTAuODU2YTcuMjc0IDQuMzY1IDQ1IDAgMCAxMC4yODggMTAuMjg4In1dLFsicGF0aCIse2Q6Ik0xNi41NjUgMTAuNDM1IDE4LjYgOC40YTIuNTAxIDIuNTAxIDAgMSAwIDEuNjUtNC42NSAyLjUgMi41IDAgMSAwLTQuNjYgMS42NmwtMi4wMjQgMi4wMjUifV0sWyJwYXRoIix7ZDoibTguNSAxNi41LTEtMSJ9XV0sSkd0PVtbInBhdGgiLHtkOiJNMTIgMTZINGEyIDIgMCAxIDEgMC00aDE2YTIgMiAwIDEgMSAwIDRoLTQuMjUifV0sWyJwYXRoIix7ZDoiTTUgMTJhMiAyIDAgMCAxLTItMiA5IDcgMCAwIDEgMTggMCAyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik01IDE2YTIgMiAwIDAgMC0yIDIgMyAzIDAgMCAwIDMgM2gxMmEzIDMgMCAwIDAgMy0zIDIgMiAwIDAgMC0yLTJxMCAwIDAgMCJ9XSxbInBhdGgiLHtkOiJtNi42NyAxMiA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dXSxLR3Q9W1sicGF0aCIse2Q6Im0xNSAxMi05LjM3MyA5LjM3M2ExIDEgMCAwIDEtMy4wMDEtM0wxMiA5In1dLFsicGF0aCIse2Q6Im0xOCAxNSA0LTQifV0sWyJwYXRoIix7ZDoibTIxLjUgMTEuNS0xLjkxNC0xLjkxNEEyIDIgMCAwIDEgMTkgOC4xNzJ2LS4zNDRhMiAyIDAgMCAwLS41ODYtMS40MTRsLTEuNjU3LTEuNjU3QTYgNiAwIDAgMCAxMi41MTYgM0g5bDEuMjQzIDEuMjQzQTYgNiAwIDAgMSAxMiA4LjQ4NVYxMGwyIDJoMS4xNzJhMiAyIDAgMCAxIDEuNDE0LjU4NkwxOC41IDE0LjUifV1dLGVZdD1bWyJwYXRoIix7ZDoiTTExIDE1aDJhMiAyIDAgMSAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE3In1dLFsicGF0aCIse2Q6Im03IDIxIDEuNi0xLjRjLjMtLjQuOC0uNiAxLjQtLjZoNGMxLjEgMCAyLjEtLjQgMi44LTEuMmw0LjYtNC40YTIgMiAwIDAgMC0yLjc1LTIuOTFsLTQuMiAzLjkifV0sWyJwYXRoIix7ZDoibTIgMTYgNiA2In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiOSIscjoiMi45In1dLFsiY2lyY2xlIix7Y3g6IjYiLGN5OiI1IixyOiIzIn1dXSx0WXQ9W1sicGF0aCIse2Q6Ik0xMi4wMzUgMTcuMDEyYTMgMyAwIDAgMC0zLTNsLS4zMTEtLjAwMmEuNzIuNzIgMCAwIDEtLjUwNS0xLjIyOWwxLjE5NS0xLjE5NUEyIDIgMCAwIDEgMTAuODI4IDExSDEyYTIgMiAwIDAgMCAwLTRIOS4yNDNhMyAzIDAgMCAwLTIuMTIyLjg3OWwtMi43MDcgMi43MDdBNC44MyA0LjgzIDAgMCAwIDMgMTRhOCA4IDAgMCAwIDggOGgyYTggOCAwIDAgMCA4LThWN2EyIDIgMCAxIDAtNCAwdjJhMiAyIDAgMSAwIDQgMCJ9XSxbInBhdGgiLHtkOiJNMTMuODg4IDkuNjYyQTIgMiAwIDAgMCAxNyA4VjVBMiAyIDAgMSAwIDEzIDUifV0sWyJwYXRoIix7ZDoiTTkgNUEyIDIgMCAxIDAgNSA1VjEwIn1dLFsicGF0aCIse2Q6Ik05IDdWNEEyIDIgMCAxIDEgMTMgNFY3LjI2OCJ9XV0sZkk9W1sicGF0aCIse2Q6Ik0xOCAxMS41VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjEuNCJ9XSxbInBhdGgiLHtkOiJNMTQgMTBWOGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTAgOS45VjlhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjUifV0sWyJwYXRoIix7ZDoiTTYgMTRhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMWEyIDIgMCAxIDEgNCAwdjNhOCA4IDAgMCAxLTggOGgtNGE4IDggMCAwIDEtOC04IDIgMiAwIDEgMSA0IDAifV1dLHJZdD1bWyJwYXRoIix7ZDoiTTExIDE0aDJhMiAyIDAgMCAwIDAtNGgtM2MtLjYgMC0xLjEuMi0xLjQuNkwzIDE2In1dLFsicGF0aCIse2Q6Im0xNC40NSAxMy4zOSA1LjA1LTQuNjk0QzIwLjE5NiA4IDIxIDYuODUgMjEgNS43NWEyLjc1IDIuNzUgMCAwIDAtNC43OTctMS44MzcuMjc2LjI3NiAwIDAgMS0uNDA2IDBBMi43NSAyLjc1IDAgMCAwIDExIDUuNzVjMCAxLjIuODAyIDIuMjQ4IDEuNSAyLjk0NkwxNiAxMS45NSJ9XSxbInBhdGgiLHtkOiJtMiAxNSA2IDYifV0sWyJwYXRoIix7ZDoibTcgMjAgMS42LTEuNGMuMy0uNC44LS42IDEuNC0uNmg0YzEuMSAwIDIuMS0uNCAyLjgtMS4ybDQuNi00LjRhMSAxIDAgMCAwLTIuNzUtMi45MSJ9XV0sbUk9W1sicGF0aCIse2Q6Ik0xMSAxMmgyYTIgMiAwIDEgMCAwLTRoLTNjLS42IDAtMS4xLjItMS40LjZMMyAxNCJ9XSxbInBhdGgiLHtkOiJtNyAxOCAxLjYtMS40Yy4zLS40LjgtLjYgMS40LS42aDRjMS4xIDAgMi4xLS40IDIuOC0xLjJsNC42LTQuNGEyIDIgMCAwIDAtMi43NS0yLjkxbC00LjIgMy45In1dLFsicGF0aCIse2Q6Im0yIDEzIDYgNiJ9XV0saVl0PVtbInBhdGgiLHtkOiJNMTggMTIuNVYxMGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MS40In1dLFsicGF0aCIse2Q6Ik0xNCAxMVY5YTIgMiAwIDEgMC00IDB2MiJ9XSxbInBhdGgiLHtkOiJNMTAgMTAuNVY1YTIgMiAwIDEgMC00IDB2OSJ9XSxbInBhdGgiLHtkOiJtNyAxNS0xLjc2LTEuNzZhMiAyIDAgMCAwLTIuODMgMi44MmwzLjYgMy42QzcuNSAyMS4xNCA5LjIgMjIgMTIgMjJoMmE4IDggMCAwIDAgOC04VjdhMiAyIDAgMSAwLTQgMHY1In1dXSxhWXQ9W1sicGF0aCIse2Q6Ik0xMiAzVjIifV0sWyJwYXRoIix7ZDoibTE1LjQgMTcuNCAzLjItMi44YTIgMiAwIDEgMSAyLjggMi45bC0zLjYgMy4zYy0uNy44LTEuNyAxLjItMi44IDEuMmgtNGMtMS4xIDAtMi4xLS40LTIuOC0xLjJsLTEuMzAyLTEuNDY0QTEgMSAwIDAgMCA2LjE1MSAxOUg1In1dLFsicGF0aCIse2Q6Ik0yIDE0aDEyYTIgMiAwIDAgMSAwIDRoLTIifV0sWyJwYXRoIix7ZDoiTTQgMTBoMTYifV0sWyJwYXRoIix7ZDoiTTUgMTBhNyA3IDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTUgMTR2NmExIDEgMCAwIDEtMSAxSDIifV1dLG5ZdD1bWyJwYXRoIix7ZDoiTTE4IDExVjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMFY0YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMC41VjZhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAydjgifV0sWyJwYXRoIix7ZDoiTTE4IDhhMiAyIDAgMSAxIDQgMHY2YTggOCAwIDAgMS04IDhoLTJjLTIuOCAwLTQuNS0uODYtNS45OS0yLjM0bC0zLjYtMy42YTIgMiAwIDAgMSAyLjgzLTIuODJMNyAxNSJ9XV0sb1l0PVtbInBhdGgiLHtkOiJNMi4wNDggMTguNTY2QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjk1Mi0yLjQzNGwtMi05QTIgMiAwIDAgMCAxOCA4SDZhMiAyIDAgMCAwLTEuOTUyIDEuNTY2eiJ9XSxbInBhdGgiLHtkOiJNOCAxMVY2YTQgNCAwIDAgMSA4IDB2NSJ9XV0sc1l0PVtbInBhdGgiLHtkOiJtMTEgMTcgMiAyYTEgMSAwIDEgMCAzLTMifV0sWyJwYXRoIix7ZDoibTE0IDE0IDIuNSAyLjVhMSAxIDAgMSAwIDMtM2wtMy44OC0zLjg4YTMgMyAwIDAgMC00LjI0IDBsLS44OC44OGExIDEgMCAxIDEtMy0zbDIuODEtMi44MWE1Ljc5IDUuNzkgMCAwIDEgNy4wNi0uODdsLjQ3LjI4YTIgMiAwIDAgMCAxLjQyLjI1TDIxIDQifV0sWyJwYXRoIix7ZDoibTIxIDMgMSAxMWgtMiJ9XSxbInBhdGgiLHtkOiJNMyAzIDIgMTRsNi41IDYuNWExIDEgMCAxIDAgMy0zIn1dLFsicGF0aCIse2Q6Ik0zIDRoOCJ9XV0sbFl0PVtbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicGF0aCIse2Q6Im0xNiA2LTQgNC00LTQifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE4aC4wMSJ9XV0sY1l0PVtbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjgifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjE0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE4aC4wMSJ9XV0sZFl0PVtbInBhdGgiLHtkOiJNMTAgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0yLjIxMiAxMS41NzdhMiAyIDAgMCAwLS4yMTIuODk2VjE4YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNS41MjdhMiAyIDAgMCAwLS4yMTItLjg5NkwxOC41NSA1LjExQTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXoifV0sWyJwYXRoIix7ZDoiTTIxLjk0NiAxMi4wMTNIMi4wNTQifV0sWyJwYXRoIix7ZDoiTTYgMTZoLjAxIn1dXSx1WXQ9W1sicGF0aCIse2Q6Ik0xMCAxMFY1YTEgMSAwIDAgMSAxLTFoMmExIDEgMCAwIDEgMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE0IDZhNiA2IDAgMCAxIDYgNnYzIn1dLFsicGF0aCIse2Q6Ik00IDE1di0zYTYgNiAwIDAgMSA2LTYifV0sWyJyZWN0Iix7eDoiMiIseToiMTUiLHdpZHRoOiIyMCIsaGVpZ2h0OiI0IixyeDoiMSJ9XV0scFl0PVtbImxpbmUiLHt4MToiNCIseDI6IjIwIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjEwIix4MjoiOCIseTE6IjMiLHkyOiIyMSJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNCIseTE6IjMiLHkyOiIyMSJ9XV0saFl0PVtbInBhdGgiLHtkOiJNMTQgMThhMiAyIDAgMCAwLTQgMCJ9XSxbInBhdGgiLHtkOiJtMTkgMTEtMi4xMS02LjY1N2EyIDIgMCAwIDAtMi43NTItMS4xNDhsLTEuMjc2LjYxQTIgMiAwIDAgMSAxMiA0SDguNWEyIDIgMCAwIDAtMS45MjUgMS40NTZMNSAxMSJ9XSxbInBhdGgiLHtkOiJNMiAxMWgyMCJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxOCIscjoiMyJ9XV0sZll0PVtbInBhdGgiLHtkOiJtNS4yIDYuMiAxLjQgMS40In1dLFsicGF0aCIse2Q6Ik0yIDEzaDIifV0sWyJwYXRoIix7ZDoiTTIwIDEzaDIifV0sWyJwYXRoIix7ZDoibTE3LjQgNy42IDEuNC0xLjQifV0sWyJwYXRoIix7ZDoiTTIyIDE3SDIifV0sWyJwYXRoIix7ZDoiTTIyIDIxSDIifV0sWyJwYXRoIix7ZDoiTTE2IDEzYTQgNCAwIDAgMC04IDAifV0sWyJwYXRoIix7ZDoiTTEyIDVWMi41In1dXSxtWXQ9W1sicGF0aCIse2Q6Ik0xMCAxMkg2In1dLFsicGF0aCIse2Q6Ik0xMCAxNVY5In1dLFsicGF0aCIse2Q6Ik0xNCAxNC41YS41LjUgMCAwIDAgLjUuNWgxYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMUEyLjUgMi41IDAgMCAwIDE1LjUgOWgtMWEuNS41IDAgMCAwLS41LjV6In1dLFsicGF0aCIse2Q6Ik02IDE1VjkifV0sWyJyZWN0Iix7eDoiMiIseToiNSIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV0sZ1l0PVtbInBhdGgiLHtkOiJNMjIgOWExIDEgMCAwIDAtMS0xSDNhMSAxIDAgMCAwLTEgMXY0YTEgMSAwIDAgMCAxIDFoMWwyIDJoMTJsMi0yaDFhMSAxIDAgMCAwIDEtMVoifV0sWyJwYXRoIix7ZDoiTTcuNSAxMmg5In1dXSxiWXQ9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJtMTcgMTIgMy0ydjgifV1dLHZZdD1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNGMwLTQgNC0zIDQtNiAwLTEuNS0yLTIuNS00LTEifV1dLHhZdD1bWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dLFsicGF0aCIse2Q6Ik0xMiAxOFY2In1dLFsicGF0aCIse2Q6Ik0xNy41IDEwLjVjMS43LTEgMy41IDAgMy41IDEuNWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNyAxNy41YzIgMS41IDQgLjMgNC0xLjVhMiAyIDAgMCAwLTItMiJ9XV0seVl0PVtbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTB2M2ExIDEgMCAwIDAgMSAxaDMifV0sWyJwYXRoIix7ZDoiTTIxIDEwdjgifV0sWyJwYXRoIix7ZDoiTTQgMTJoOCJ9XSxbInBhdGgiLHtkOiJNNCAxOFY2In1dXSx3WXQ9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTcgMTN2LTNoNCJ9XSxbInBhdGgiLHtkOiJNMTcgMTcuN2MuNC4yLjguMyAxLjMuMyAxLjUgMCAyLjctMS4xIDIuNy0yLjVTMTkuOCAxMyAxOC4zIDEzSDE3In1dXSxNWXQ9W1sicGF0aCIse2Q6Ik00IDEyaDgifV0sWyJwYXRoIix7ZDoiTTQgMThWNiJ9XSxbInBhdGgiLHtkOiJNMTIgMThWNiJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE2IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMGMtMiAyLTMgMy41LTMgNiJ9XV0sa1l0PVtbInBhdGgiLHtkOiJNNiAxMmgxMiJ9XSxbInBhdGgiLHtkOiJNNiAyMFY0In1dLFsicGF0aCIse2Q6Ik0xOCAyMFY0In1dXSxTWXQ9W1sicGF0aCIse2Q6Ik0yMSAxNGgtMS4zNDMifV0sWyJwYXRoIix7ZDoiTTkuMTI4IDMuNDdBOSA5IDAgMCAxIDIxIDEydjMuMzQzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIwLjQxNCAyMC40MTRBMiAyIDAgMCAxIDE5IDIxaC0xYTIgMiAwIDAgMS0yLTJ2LTMifV0sWyJwYXRoIix7ZDoiTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDIuNjM2LTYuMzY0In1dXSx6WXQ9W1sicGF0aCIse2Q6Ik0zIDE0aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi03YTkgOSAwIDAgMSAxOCAwdjdhMiAyIDAgMCAxLTIgMmgtMWEyIDIgMCAwIDEtMi0ydi0zYTIgMiAwIDAgMSAyLTJoMyJ9XV0sQ1l0PVtbInBhdGgiLHtkOiJNMTIuNDA5IDUuODI0Yy0uNzAyLjc5Mi0xLjE1IDEuNDk2LTEuNDE1IDIuMTY2bDIuMTUzIDIuMTU2YS41LjUgMCAwIDEgMCAuNzA3bC0yLjI5MyAyLjI5M2EuNS41IDAgMCAwIDAgLjcwN0wxMiAxNSJ9XSxbInBhdGgiLHtkOiJNMTMuNTA4IDIwLjMxM2EyIDIgMCAwIDEtMyAuMDE5TDUgMTVjLTEuNS0xLjUtMy0zLjItMy01LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ny42LjYgMCAwIDAgLjgxOC4wMDFBNS41IDUuNSAwIDAgMSAyMiA5LjVjMCAyLjI5LTEuNSA0LTMgNS41eiJ9XV0sVFl0PVtbInBhdGgiLHtkOiJNMyAxMWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNVptMCAwYTkgOSAwIDEgMSAxOCAwbTAgMHY1YTIgMiAwIDAgMS0yIDJoLTFhMiAyIDAgMCAxLTItMnYtM2EyIDIgMCAwIDEgMi0yaDNaIn1dLFsicGF0aCIse2Q6Ik0yMSAxNnYyYTQgNCAwIDAgMS00IDRoLTUifV1dLF9ZdD1bWyJwYXRoIix7ZDoiTTE5LjQxNCAxNC40MTRDMjEgMTIuODI4IDIyIDExLjUgMjIgOS41YTUuNSA1LjUgMCAwIDAtOS41OTEtMy42NzYuNi42IDAgMCAxLS44MTguMDAxQTUuNSA1LjUgMCAwIDAgMiA5LjVjMCAyLjMgMS41IDQgMyA1LjVsNS41MzUgNS4zNjJhMiAyIDAgMCAwIDIuODc5LjA1MiAyLjEyIDIuMTIgMCAwIDAtLjAwNC0zIDIuMTI0IDIuMTI0IDAgMSAwIDMtMyAyLjEyNCAyLjEyNCAwIDAgMCAzLjAwNCAwIDIgMiAwIDAgMCAwLTIuODI4bC0xLjg4MS0xLjg4MmEyLjQxIDIuNDEgMCAwIDAtMy40MDkgMGwtMS43MSAxLjcxYTIgMiAwIDAgMS0yLjgyOCAwIDIgMiAwIDAgMSAwLTIuODI4bDIuODIzLTIuNzYyIn1dXSxMWXQ9W1sicGF0aCIse2Q6Im0xNC44NzYgMTguOTktMS4zNjggMS4zMjNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgOS41OTEtMy42NzYuNTYuNTYgMCAwIDAgLjgxOCAwQTUuNDkgNS40OSAwIDAgMSAyMiA5LjVhNS4yIDUuMiAwIDAgMS0uMjQ0IDEuNTcyIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWg2In1dXSxBWXQ9W1sicGF0aCIse2Q6Ik0xMC41IDQuODkzYTUuNSA1LjUgMCAwIDEgMS4wOTEuOTMxLjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMS44NzItMS4wMDIgMy4zNTYtMi4xODcgNC42NTUifV0sWyJwYXRoIix7ZDoibTE2Ljk2NyAxNi45NjctMy40NTkgMy4zNDZhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41YTUuNSA1LjUgMCAwIDEgMi43NDctNC43NjEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sRFl0PVtbInBhdGgiLHtkOiJNMiA5LjVhNS41IDUuNSAwIDAgMSA5LjU5MS0zLjY3Ni41Ni41NiAwIDAgMCAuODE4IDBBNS40OSA1LjQ5IDAgMCAxIDIyIDkuNWMwIDIuMjktMS41IDQtMyA1LjVsLTUuNDkyIDUuMzEzYTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNSJ9XSxbInBhdGgiLHtkOiJNMy4yMiAxM0g5LjVsLjUtMSAyIDQuNSAyLTcgMS41IDMuNWg1LjI3In1dXSxFWXQ9W1sicGF0aCIse2Q6Im0xNC40NzkgMTkuMzc0LS45NzEuOTM5YTIgMiAwIDAgMS0zIC4wMTlMNSAxNWMtMS41LTEuNS0zLTMuMi0zLTUuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YTUuMiA1LjIgMCAwIDEtLjIxOSAxLjQ5In1dLFsicGF0aCIse2Q6Ik0xNSAxNWg2In1dLFsicGF0aCIse2Q6Ik0xOCAxMnY2In1dXSwkWXQ9W1sicGF0aCIse2Q6Ik0yIDkuNWE1LjUgNS41IDAgMCAxIDkuNTkxLTMuNjc2LjU2LjU2IDAgMCAwIC44MTggMEE1LjQ5IDUuNDkgMCAwIDEgMjIgOS41YzAgMi4yOS0xLjUgNC0zIDUuNWwtNS40OTIgNS4zMTNhMiAyIDAgMCAxLTMgLjAxOUw1IDE1Yy0xLjUtMS41LTMtMy4yLTMtNS41In1dXSxJWXQ9W1sicGF0aCIse2Q6Ik0xMSA4YzItMy0yLTMgMC02In1dLFsicGF0aCIse2Q6Ik0xNS41IDhjMi0zLTItMyAwLTYifV0sWyJwYXRoIix7ZDoiTTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LTQifV0sWyJwYXRoIix7ZDoiTTE0IDE2di00In1dLFsicGF0aCIse2Q6Ik0xOCAxNnYtNCJ9XSxbInBhdGgiLHtkOiJNMjAgNmEyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmgzIn1dLFsicGF0aCIse2Q6Ik01IDIwdjIifV0sWyJwYXRoIix7ZDoiTTE5IDIwdjIifV1dLFBZdD1bWyJwYXRoIix7ZDoiTTExIDE3djQifV0sWyJwYXRoIix7ZDoiTTE0IDN2OGEyIDIgMCAwIDAgMiAyaDUuODY1In1dLFsicGF0aCIse2Q6Ik0xNyAxN3Y0In1dLFsicGF0aCIse2Q6Ik0xOCAxN2E0IDQgMCAwIDAgNC00IDggNiAwIDAgMC04LTYgNiA1IDAgMCAwLTYgNXYzYTIgMiAwIDAgMCAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yIDEwdjUifV0sWyJwYXRoIix7ZDoiTTYgM2gxNiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxNCJ9XSxbInBhdGgiLHtkOiJNOCAxM0gyIn1dXSxOWXQ9W1sicGF0aCIse2Q6Ik0yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnoifV1dLEZZdD1bWyJwYXRoIix7ZDoibTkgMTEtNiA2djNoOWwzLTMifV0sWyJwYXRoIix7ZDoibTIyIDEyLTQuNiA0LjZhMiAyIDAgMCAxLTIuOCAwbC01LjItNS4yYTIgMiAwIDAgMSAwLTIuOEwxNCA0In1dXSxPWXQ9W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDEgMCA5LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUifV0sWyJwYXRoIix7ZDoiTTEyIDd2NWw0IDIifV1dLFJZdD1bWyJwYXRoIix7ZDoiTTEwLjgyIDE2LjEyYzEuNjkuNiAzLjkxLjc5IDUuMTguODUuNTUuMDMgMS0uNDIuOTctLjk3LS4wNi0xLjI3LS4yNi0zLjUtLjg1LTUuMTgifV0sWyJwYXRoIix7ZDoiTTExLjUgNi41YzEuNjQgMCA1LS4zOCA2LjcxLTEuMDcuNTItLjIuNTUtLjgyLjEyLTEuMTdBMTAgMTAgMCAwIDAgNC4yNiAxOC4zM2MuMzUuNDMuOTYuNCAxLjE3LS4xMi42OS0xLjcxIDEuMDctNS4wNyAxLjA3LTYuNzEgMS4zNC40NSAzLjEuOSA0Ljg4LjYyYS44OC44OCAwIDAgMCAuNzMtLjc0Yy4zLTIuMTQtLjE1LTMuNS0uNjEtNC44OCJ9XSxbInBhdGgiLHtkOiJNMTUuNjIgMTYuOTVjLjIuODUuNjIgMi43Ni41IDQuMjhhLjc3Ljc3IDAgMCAxLS45LjcgMTYuNjQgMTYuNjQgMCAwIDEtNC4wOC0xLjM2In1dLFsicGF0aCIse2Q6Ik0xNi4xMyAyMS4wNWMxLjY1LjYzIDMuNjguODQgNC44Ny45MWEuOS45IDAgMCAwIC45Ni0uOTYgMTcuNjggMTcuNjggMCAwIDAtLjktNC44NyJ9XSxbInBhdGgiLHtkOiJNMTYuOTQgMTUuNjJjLjg2LjIgMi43Ny42MiA0LjI5LjVhLjc3Ljc3IDAgMCAwIC43LS45IDE2LjY0IDE2LjY0IDAgMCAwLTEuMzYtNC4wOCJ9XSxbInBhdGgiLHtkOiJNMTcuOTkgNS41MmEyMC44MiAyMC44MiAwIDAgMSAzLjE1IDQuNS44LjggMCAwIDEtLjY4IDEuMTNjLTIuMzMuMi01LjMtLjMyLTguMjctMS41NyJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkzIDMgM2EuNy43IDAgMCAxIDAtMSJ9XSxbInBhdGgiLHtkOiJNOS41OCAxMi4xOGMxLjI0IDIuOTggMS43NyA1Ljk1IDEuNTcgOC4yOGEuOC44IDAgMCAxLTEuMTMuNjggMjAuODIgMjAuODIgMCAwIDEtNC41LTMuMTUifV1dLEJZdD1bWyJwYXRoIix7ZDoiTTEwLjgyIDE2LjEyYzEuNjkuNiAzLjkxLjc5IDUuMTguODUuMjguMDEuNTMtLjA5LjctLjI3In1dLFsicGF0aCIse2Q6Ik0xMS4xNCAyMC41N2MuNTIuMjQgMi40NCAxLjEyIDQuMDggMS4zNy40Ni4wNi44Ni0uMjUuOS0uNzEuMTItMS41Mi0uMy0zLjQzLS41LTQuMjgifV0sWyJwYXRoIix7ZDoiTTE2LjEzIDIxLjA1YzEuNjUuNjMgMy42OC44NCA0Ljg3LjkxYS45LjkgMCAwIDAgLjctLjI2In1dLFsicGF0aCIse2Q6Ik0xNy45OSA1LjUyYTIwLjgzIDIwLjgzIDAgMCAxIDMuMTUgNC41LjguOCAwIDAgMS0uNjggMS4xM2MtMS4xNy4xLTIuNS4wMi0zLjktLjI1In1dLFsicGF0aCIse2Q6Ik0yMC41NyAxMS4xNGMuMjQuNTIgMS4xMiAyLjQ0IDEuMzcgNC4wOC4wNC4zLS4wOC41OS0uMzEuNzUifV0sWyJwYXRoIix7ZDoiTTQuOTMgNC45M2ExMCAxMCAwIDAgMC0uNjcgMTMuNGMuMzUuNDMuOTYuNCAxLjE3LS4xMi42OS0xLjcxIDEuMDctNS4wNyAxLjA3LTYuNzEgMS4zNC40NSAzLjEuOSA0Ljg4LjYyYS44NS44NSAwIDAgMCAuNDgtLjI0In1dLFsicGF0aCIse2Q6Ik01LjUyIDE3Ljk5YzEuMDUuOTUgMi45MSAyLjQyIDQuNSAzLjE1YS44LjggMCAwIDAgMS4xMy0uNjhjLjItMi4zNC0uMzMtNS4zLTEuNTctOC4yOCJ9XSxbInBhdGgiLHtkOiJNOC4zNSAyLjY4YTEwIDEwIDAgMCAxIDkuOTggMS41OGMuNDMuMzUuNC45Ni0uMTIgMS4xNy0xLjUuNi00LjMuOTgtNi4wNyAxLjA1In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLEhZdD1bWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTQgMjF2LTNhMiAyIDAgMCAwLTQgMHYzIn1dLFsicGF0aCIse2Q6Ik0xNCA5aC00In1dLFsicGF0aCIse2Q6Ik0xOCAxMWgyYTIgMiAwIDAgMSAyIDJ2NmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE4IDIxVjVhMiAyIDAgMCAwLTItMkg4YTIgMiAwIDAgMC0yIDJ2MTYifV1dLHFZdD1bWyJwYXRoIix7ZDoiTTEwIDIydi02LjU3In1dLFsicGF0aCIse2Q6Ik0xMiAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNS40M1YyMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTZhNSA1IDAgMCAwLTYgMCJ9XSxbInBhdGgiLHtkOiJNMTYgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMWguMDEifV0sWyJwYXRoIix7ZDoiTTggN2guMDEifV0sWyJyZWN0Iix7eDoiNCIseToiMiIsd2lkdGg6IjE2IixoZWlnaHQ6IjIwIixyeDoiMiJ9XV0sall0PVtbInBhdGgiLHtkOiJNNSAyMmgxNCJ9XSxbInBhdGgiLHtkOiJNNSAyaDE0In1dLFsicGF0aCIse2Q6Ik0xNyAyMnYtNC4xNzJhMiAyIDAgMCAwLS41ODYtMS40MTRMMTIgMTJsLTQuNDE0IDQuNDE0QTIgMiAwIDAgMCA3IDE3LjgyOFYyMiJ9XSxbInBhdGgiLHtkOiJNNyAydjQuMTcyYTIgMiAwIDAgMCAuNTg2IDEuNDE0TDEyIDEybDQuNDE0LTQuNDE0QTIgMiAwIDAgMCAxNyA2LjE3MlYyIn1dXSxWWXQ9W1sicGF0aCIse2Q6Ik04LjYyIDEzLjhBMi4yNSAyLjI1IDAgMSAxIDEyIDEwLjgzNmEyLjI1IDIuMjUgMCAxIDEgMy4zOCAyLjk2NmwtMi42MjYgMi44NTZhLjk5OC45OTggMCAwIDEtMS41MDcgMHoifV0sWyJwYXRoIix7ZDoiTTMgMTBhMiAyIDAgMCAxIC43MDktMS41MjhsNy02YTIgMiAwIDAgMSAyLjU4MiAwbDcgNkEyIDIgMCAwIDEgMjEgMTB2OWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoifV1dLFVZdD1bWyJwYXRoIix7ZDoiTTEwIDEyVjguOTY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMlY4Ljk2NCJ9XSxbInBhdGgiLHtkOiJNMTUgMTJhMSAxIDAgMCAxIDEgMXYyYTIgMiAwIDAgMS0yIDJoLTRhMiAyIDAgMCAxLTItMnYtMmExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOC41IDIxSDVhMiAyIDAgMCAxLTItMnYtOWEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJoLTVhMiAyIDAgMCAxLTItMnYtMiJ9XV0sV1l0PVtbInBhdGgiLHtkOiJNMTIuMzUgMjFINWEyIDIgMCAwIDEtMi0ydi05YTIgMiAwIDAgMSAuNzEtMS41M2w3LTZhMiAyIDAgMCAxIDIuNTggMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjIuMzUifV0sWyJwYXRoIix7ZDoiTTE0LjggMTIuNEExIDEgMCAwIDAgMTQgMTJoLTRhMSAxIDAgMCAwLTEgMXY4In1dLFsicGF0aCIse2Q6Ik0xNSAxOGg2In1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dXSxHWXQ9W1sicGF0aCIse2Q6Ik05LjUgMTMuODY2YTQgNCAwIDAgMSA1IC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMSAuNzA5LTEuNTI4bDctNmEyIDIgMCAwIDEgMi41ODIgMGw3IDZBMiAyIDAgMCAxIDIxIDEwdjlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6In1dLFsicGF0aCIse2Q6Ik03IDEwLjc1NGE4IDggMCAwIDEgMTAgMCJ9XV0sZ0k9W1sicGF0aCIse2Q6Ik0xNSAyMXYtOGExIDEgMCAwIDAtMS0xaC00YTEgMSAwIDAgMC0xIDF2OCJ9XSxbInBhdGgiLHtkOiJNMyAxMGEyIDIgMCAwIDEgLjcwOS0xLjUyOGw3LTZhMiAyIDAgMCAxIDIuNTgyIDBsNyA2QTIgMiAwIDAgMSAyMSAxMHY5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiJ9XV0sYkk9W1sicGF0aCIse2Q6Ik0xMiAxN2M1IDAgOC0yLjY5IDgtNkg0YzAgMy4zMSAzIDYgOCA2bS00IDRoOG0tNC0zdjNNNS4xNCAxMWEzLjUgMy41IDAgMSAxIDYuNzEgMCJ9XSxbInBhdGgiLHtkOiJNMTIuMTQgMTFhMy41IDMuNSAwIDEgMSA2LjcxIDAifV0sWyJwYXRoIix7ZDoiTTE1LjUgNi41YTMuNSAzLjUgMCAxIDAtNyAwIn1dXSx2ST1bWyJwYXRoIix7ZDoibTcgMTEgNC4wOCAxMC4zNWExIDEgMCAwIDAgMS44NCAwTDE3IDExIn1dLFsicGF0aCIse2Q6Ik0xNyA3QTUgNSAwIDAgMCA3IDcifV0sWyJwYXRoIix7ZDoiTTE3IDdhMiAyIDAgMCAxIDAgNEg3YTIgMiAwIDAgMSAwLTQifV1dLFlZdD1bWyJwYXRoIix7ZDoiTTEzLjUgOGgtMyJ9XSxbInBhdGgiLHtkOiJtMTUgMi0xIDJoM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgzIn1dLFsicGF0aCIse2Q6Ik0xNi44OTkgMjJBNSA1IDAgMCAwIDcuMSAyMiJ9XSxbInBhdGgiLHtkOiJtOSAyIDMgNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE1IixyOiIzIn1dXSxaWXQ9W1sicGF0aCIse2Q6Ik0xNiAxMGgyIn1dLFsicGF0aCIse2Q6Ik0xNiAxNGgyIn1dLFsicGF0aCIse2Q6Ik02LjE3IDE1YTMgMyAwIDAgMSA1LjY2IDAifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjExIixyOiIyIn1dLFsicmVjdCIse3g6IjIiLHk6IjUiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLFhZdD1bWyJwYXRoIix7ZDoiTTEwLjMgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjEwbC0zLjEtMy4xYTIgMiAwIDAgMC0yLjgxNC4wMTRMNiAyMSJ9XSxbInBhdGgiLHtkOiJtMTQgMTkgMyAzdi01LjUifV0sWyJwYXRoIix7ZDoibTE3IDIyIDMtMyJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiOSIscjoiMiJ9XV0sUVl0PVtbInBhdGgiLHtkOiJNMjEgOXYxMGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNyJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIyMiIseTE6IjUiLHkyOiI1In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dXSxKWXQ9W1sibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV0sWyJwYXRoIix7ZDoiTTEwLjQxIDEwLjQxYTIgMiAwIDEgMS0yLjgzLTIuODMifV0sWyJsaW5lIix7eDE6IjEzLjUiLHgyOiI2Iix5MToiMTMuNSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxOCIseDI6IjIxIix5MToiMTIiLHkyOiIxNSJ9XSxbInBhdGgiLHtkOiJNMy41OSAzLjU5QTEuOTkgMS45OSAwIDAgMCAzIDV2MTRhMiAyIDAgMCAwIDIgMmgxNGMuNTUgMCAxLjA1Mi0uMjIgMS40MS0uNTkifV0sWyJwYXRoIix7ZDoiTTIxIDE1VjVhMiAyIDAgMCAwLTItMkg5In1dXSxLWXQ9W1sicGF0aCIse2Q6Ik0xNSAxNS4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dLFsicGF0aCIse2Q6Ik0yMSAxMi4xN1Y1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XSxbInBhdGgiLHtkOiJtNiAyMSA1LTUifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dLGVadD1bWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgMnY2In1dLFsicGF0aCIse2Q6Ik0yMSAxMS41VjE5YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg3LjUifV0sWyJwYXRoIix7ZDoibTIxIDE1LTMuMDg2LTMuMDg2YTIgMiAwIDAgMC0yLjgyOCAwTDYgMjEifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjkiLHI6IjIifV1dLHRadD1bWyJwYXRoIix7ZDoiTTEwLjMgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAydjEwbC0zLjEtMy4xYTIgMiAwIDAgMC0yLjgxNC4wMTRMNiAyMSJ9XSxbInBhdGgiLHtkOiJtMTQgMTkuNSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xNyAyMnYtNS41In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dXSxyWnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Im0yMSAxNS0zLjA4Ni0zLjA4NmEyIDIgMCAwIDAtMi44MjggMEw2IDIxIn1dXSxpWnQ9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMTcgMjFoMmEyIDIgMCAwIDAgMi0yIn1dLFsicGF0aCIse2Q6Ik0yMSAxMnYzIn1dLFsicGF0aCIse2Q6Im0yMSAzLTUgNSJ9XSxbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJtNSAyMSA0LjE0NC00LjE0NGExLjIxIDEuMjEgMCAwIDEgMS43MTIgMEwxMyAxOSJ9XSxbInBhdGgiLHtkOiJNOSAzaDMifV0sWyJyZWN0Iix7eDoiMyIseToiMTEiLHdpZHRoOiIxMCIsaGVpZ2h0OiIxMCIscng6IjEifV1dLGFadD1bWyJwYXRoIix7ZDoibTIyIDExLTEuMjk2LTEuMjk2YTIuNCAyLjQgMCAwIDAtMy40MDggMEwxMSAxNiJ9XSxbInBhdGgiLHtkOiJNNCA4YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEzIixjeToiNyIscjoiMSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicmVjdCIse3g6IjgiLHk6IjIiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLG5adD1bWyJwYXRoIix7ZDoiTTEyIDN2MTIifV0sWyJwYXRoIix7ZDoibTggMTEgNCA0IDQtNCJ9XSxbInBhdGgiLHtkOiJNOCA1SDRhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC00In1dXSxvWnQ9W1sicG9seWxpbmUiLHtwb2ludHM6IjIyIDEyIDE2IDEyIDE0IDE1IDEwIDE1IDggMTIgMiAxMiJ9XSxbInBhdGgiLHtkOiJNNS40NSA1LjExIDIgMTJ2NmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTZsLTMuNDUtNi44OUEyIDIgMCAwIDAgMTYuNzYgNEg3LjI0YTIgMiAwIDAgMC0xLjc5IDEuMTF6In1dXSxzWnQ9W1sicGF0aCIse2Q6Ik02IDNoMTIifV0sWyJwYXRoIix7ZDoiTTYgOGgxMiJ9XSxbInBhdGgiLHtkOiJtNiAxMyA4LjUgOCJ9XSxbInBhdGgiLHtkOiJNNiAxM2gzIn1dLFsicGF0aCIse2Q6Ik05IDEzYzYuNjY3IDAgNi42NjctMTAgMC0xMCJ9XV0sbFp0PVtbInBhdGgiLHtkOiJNNiAxNmM1IDAgNy04IDEyLThhNCA0IDAgMCAxIDAgOGMtNSAwLTctOC0xMi04YTQgNCAwIDEgMCAwIDgifV1dLGNadD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTEyIDE2di00In1dLFsicGF0aCIse2Q6Ik0xMiA4aC4wMSJ9XV0sZFp0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNyA3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyAxN2guMDEifV0sWyJwYXRoIix7ZDoiTTE3IDE3aC4wMSJ9XV0sdVp0PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMjAiLHg6IjIiLHk6IjIiLHJ4OiI1IixyeToiNSJ9XSxbInBhdGgiLHtkOiJNMTYgMTEuMzdBNCA0IDAgMSAxIDEyLjYzIDggNCA0IDAgMCAxIDE2IDExLjM3eiJ9XSxbImxpbmUiLHt4MToiMTcuNSIseDI6IjE3LjUxIix5MToiNi41Iix5MjoiNi41In1dXSxwWnQ9W1sicGF0aCIse2Q6Im0xNiAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Ik0yMCAxMGE4IDggMCAxIDAtOCA4aDgifV1dLGhadD1bWyJsaW5lIix7eDE6IjE5Iix4MjoiMTAiLHkxOiI0Iix5MjoiNCJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiI1Iix5MToiMjAiLHkyOiIyMCJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiI5Iix5MToiNCIseTI6IjIwIn1dXSxmWnQ9W1sicGF0aCIse2Q6Ik00IDEwYTggOCAwIDEgMSA4IDhINCJ9XSxbInBhdGgiLHtkOiJtOCAyMi00LTQgNC00In1dXSxtWnQ9W1sicGF0aCIse2Q6Ik0xMiA5LjVWMjFtMC0xMS41TDYgM202IDYuNUwxOCAzIn1dLFsicGF0aCIse2Q6Ik02IDE1aDEyIn1dLFsicGF0aCIse2Q6Ik02IDExaDEyIn1dXSxnWnQ9W1sicGF0aCIse2Q6Ik0yMSAxN2EyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyYTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnYtMloifV0sWyJwYXRoIix7ZDoiTTYgMTV2LTIifV0sWyJwYXRoIix7ZDoiTTEyIDE1VjkifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI2IixyOiIzIn1dXSxiWnQ9W1sicGF0aCIse2Q6Ik01IDN2MTQifV0sWyJwYXRoIix7ZDoiTTEyIDN2OCJ9XSxbInBhdGgiLHtkOiJNMTkgM3YxOCJ9XV0sdlp0PVtbInBhdGgiLHtkOiJNMTggMTdhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMCAyLTJ6In1dLFsicGF0aCIse2Q6Ik0yMC45NyAzLjYxYS40NS40NSAwIDAgMC0uNTgtLjU4QzEwLjIgNi42IDYuNiAxMC4yIDMuMDMgMjAuMzlhLjQ1LjQ1IDAgMCAwIC41OC41OEMxMy44IDE3LjQgMTcuNCAxMy44IDIwLjk3IDMuNjEifV0sWyJwYXRoIix7ZDoibTYuNzA3IDYuNzA3IDEwLjU4NiAxMC41ODYifV0sWyJwYXRoIix7ZDoiTTcgNWEyIDIgMCAxIDAtMiAyaDFhMSAxIDAgMCAwIDEtMXoifV1dLHhadD1bWyJwYXRoIix7ZDoiTTIuNTg2IDE3LjQxNEEyIDIgMCAwIDAgMiAxOC44MjhWMjFhMSAxIDAgMCAwIDEgMWgzYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWgxYTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMWguMTcyYTIgMiAwIDAgMCAxLjQxNC0uNTg2bC44MTQtLjgxNGE2LjUgNi41IDAgMSAwLTQtNHoifV0sWyJjaXJjbGUiLHtjeDoiMTYuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV0seVp0PVtbInBhdGgiLHtkOiJNMTIuNCAyLjdhMi41IDIuNSAwIDAgMSAzLjQgMGw1LjUgNS41YTIuNSAyLjUgMCAwIDEgMCAzLjRsLTMuNyAzLjdhMi41IDIuNSAwIDAgMS0zLjQgMEw4LjcgOS44YTIuNSAyLjUgMCAwIDEgMC0zLjR6In1dLFsicGF0aCIse2Q6Im0xNCA3IDMgMyJ9XSxbInBhdGgiLHtkOiJtOS40IDEwLjYtNi44MTQgNi44MTRBMiAyIDAgMCAwIDIgMTguODI4VjIxYTEgMSAwIDAgMCAxIDFoM2ExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDAgMS0xdi0xYTEgMSAwIDAgMSAxLTFoLjE3MmEyIDIgMCAwIDAgMS40MTQtLjU4NmwuODE0LS44MTQifV1dLHdadD1bWyJwYXRoIix7ZDoibTE1LjUgNy41IDIuMyAyLjNhMSAxIDAgMCAwIDEuNCAwbDIuMS0yLjFhMSAxIDAgMCAwIDAtMS40TDE5IDQifV0sWyJwYXRoIix7ZDoibTIxIDItOS42IDkuNiJ9XSxbImNpcmNsZSIse2N4OiI3LjUiLGN5OiIxNS41IixyOiI1LjUifV1dLE1adD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNiA4aDQifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyMCJ9XSxbInBhdGgiLHtkOiJNNiAxMnY0In1dLFsicGF0aCIse2Q6Ik0xMCAxMnY0In1dLFsicGF0aCIse2Q6Ik0xNCAxMnY0In1dLFsicGF0aCIse2Q6Ik0xOCAxMnY0In1dXSxrWnQ9W1sicGF0aCIse2Q6Ik0gMjAgNCBBMiAyIDAgMCAxIDIyIDYifV0sWyJwYXRoIix7ZDoiTSAyMiA2IEwgMjIgMTYuNDEifV0sWyJwYXRoIix7ZDoiTSA3IDE2IEwgMTYgMTYifV0sWyJwYXRoIix7ZDoiTSA5LjY5IDQgTCAyMCA0In1dLFsicGF0aCIse2Q6Ik0xNCA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTggOGguMDEifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNMjAgMjBINGEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMiJ9XSxbInBhdGgiLHtkOiJNNiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNOCAxMmguMDEifV1dLFNadD1bWyJwYXRoIix7ZDoiTTEwIDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE0IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDhoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDE2aDEwIn1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dXSx6WnQ9W1sicGF0aCIse2Q6Ik0xMiAydjUifV0sWyJwYXRoIix7ZDoiTTE0LjgyOSAxNS45OThhMyAzIDAgMSAxLTUuNjU4IDAifV0sWyJwYXRoIix7ZDoiTTIwLjkyIDE0LjYwNkExIDEgMCAwIDEgMjAgMTZINGExIDEgMCAwIDEtLjkyLTEuMzk0bDMtN0ExIDEgMCAwIDEgNyA3aDEwYTEgMSAwIDAgMSAuOTIuNjA2eiJ9XV0sQ1p0PVtbInBhdGgiLHtkOiJNMTAuMjkzIDIuMjkzYTEgMSAwIDAgMSAxLjQxNCAwbDIuNSAyLjUgNS45OTQgMS4yMjdhMSAxIDAgMCAxIC41MDYgMS42ODdsLTcgN2ExIDEgMCAwIDEtMS42ODctLjUwNmwtMS4yMjctNS45OTQtMi41LTIuNWExIDEgMCAwIDEgMC0xLjQxNHoifV0sWyJwYXRoIix7ZDoibTE0LjIwNyA0Ljc5My0zLjQxNCAzLjQxNCJ9XSxbInBhdGgiLHtkOiJNMyAyMGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYxYTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xeiJ9XSxbInBhdGgiLHtkOiJtOS4wODYgNi41LTQuNzkzIDQuNzkzYTEgMSAwIDAgMC0uMTggMS4xN0w3IDE4In1dXSxUWnQ9W1sicGF0aCIse2Q6Ik0xMiAxMHYxMiJ9XSxbInBhdGgiLHtkOiJNMTcuOTI5IDcuNjI5QTEgMSAwIDAgMSAxNyA5SDdhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSA5IDJoNmExIDEgMCAwIDEgLjkyOC42Mjl6In1dLFsicGF0aCIse2Q6Ik05IDIyaDYifV1dLF9adD1bWyJwYXRoIix7ZDoiTTE5LjkyOSAxOC42MjlBMSAxIDAgMCAxIDE5IDIwSDlhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSAxMSAxM2g2YTEgMSAwIDAgMSAuOTI4LjYyOXoifV0sWyJwYXRoIix7ZDoiTTYgM2EyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg1YTEgMSAwIDAgMS0xLTFWNGExIDEgMCAwIDEgMS0xeiJ9XSxbInBhdGgiLHtkOiJNOCA2aDRhMiAyIDAgMCAxIDIgMnY1In1dXSxMWnQ9W1sicGF0aCIse2Q6Ik0xOS45MjkgOS42MjlBMSAxIDAgMCAxIDE5IDExSDlhMSAxIDAgMCAxLS45MjgtMS4zNzFsMi01QTEgMSAwIDAgMSAxMSA0aDZhMSAxIDAgMCAxIC45MjguNjI5eiJ9XSxbInBhdGgiLHtkOiJNNiAxNWEyIDIgMCAwIDEgMiAydjJhMiAyIDAgMCAxLTIgMkg1YTEgMSAwIDAgMS0xLTF2LTRhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTggMThoNGEyIDIgMCAwIDAgMi0ydi01In1dXSxBWnQ9W1sicGF0aCIse2Q6Ik0xMiAxMnY2In1dLFsicGF0aCIse2Q6Ik00LjA3NyAxMC42MTVBMSAxIDAgMCAwIDUgMTJoMTRhMSAxIDAgMCAwIC45MjMtMS4zODVsLTMuMDc3LTcuMzg0QTIgMiAwIDAgMCAxNSAySDlhMiAyIDAgMCAwLTEuODQ2IDEuMjNaIn1dLFsicGF0aCIse2Q6Ik04IDIwYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjFhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6In1dXSxEWnQ9W1sicGF0aCIse2Q6Ik0xMCAxOHYtNyJ9XSxbInBhdGgiLHtkOiJNMTEuMTIgMi4xOThhMiAyIDAgMCAxIDEuNzYuMDA2bDcuODY2IDMuODQ3Yy40NzYuMjMzLjMxLjk0OS0uMjIuOTQ5SDMuNDc0Yy0uNTMgMC0uNjk1LS43MTYtLjIyLS45NDl6In1dLFsicGF0aCIse2Q6Ik0xNCAxOHYtNyJ9XSxbInBhdGgiLHtkOiJNMTggMTh2LTcifV0sWyJwYXRoIix7ZDoiTTMgMjJoMTgifV0sWyJwYXRoIix7ZDoiTTYgMTh2LTcifV1dLEVadD1bWyJwYXRoIix7ZDoibTEyIDggNi0zLTYtM3YxMCJ9XSxbInBhdGgiLHtkOiJtOCAxMS45OS01LjUgMy4xNGExIDEgMCAwIDAgMCAxLjc0bDguNSA0Ljg2YTIgMiAwIDAgMCAyIDBsOC41LTQuODZhMSAxIDAgMCAwIDAtMS43NEwxNiAxMiJ9XSxbInBhdGgiLHtkOiJtNi40OSAxMi44NSAxMS4wMiA2LjMifV0sWyJwYXRoIix7ZDoiTTE3LjUxIDEyLjg1IDYuNSAxOS4xNSJ9XV0sJFp0PVtbInBhdGgiLHtkOiJtNSA4IDYgNiJ9XSxbInBhdGgiLHtkOiJtNCAxNCA2LTYgMi0zIn1dLFsicGF0aCIse2Q6Ik0yIDVoMTIifV0sWyJwYXRoIix7ZDoiTTcgMmgxIn1dLFsicGF0aCIse2Q6Im0yMiAyMi01LTEwLTUgMTAifV0sWyJwYXRoIix7ZDoiTTE0IDE4aDYifV1dLEladD1bWyJwYXRoIix7ZDoiTTIgMjBoMjAifV0sWyJwYXRoIix7ZDoibTkgMTAgMiAyIDQtNCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHJ4OiIyIn1dXSx4ST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjEyIix4OiIzIix5OiI0IixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIwIix5MjoiMjAifV1dLFBadD1bWyJwYXRoIix7ZDoiTTE4IDVhMiAyIDAgMCAxIDIgMnY4LjUyNmEyIDIgMCAwIDAgLjIxMi44OTdsMS4wNjggMi4xMjdhMSAxIDAgMCAxLS45IDEuNDVIMy42MmExIDEgMCAwIDEtLjktMS40NWwxLjA2OC0yLjEyN0EyIDIgMCAwIDAgNCAxNS41MjZWN2EyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNMjAuMDU0IDE1Ljk4N0gzLjk0NiJ9XV0sTlp0PVtbInBhdGgiLHtkOiJNNyAyMmE1IDUgMCAwIDEtMi00In1dLFsicGF0aCIse2Q6Ik03IDE2LjkzYy45Ni40MyAxLjk2Ljc0IDIuOTkuOTEifV0sWyJwYXRoIix7ZDoiTTMuMzQgMTRBNi44IDYuOCAwIDAgMSAyIDEwYzAtNC40MiA0LjQ4LTggMTAtOHMxMCAzLjU4IDEwIDhhNy4xOSA3LjE5IDAgMCAxLS4zMyAyIn1dLFsicGF0aCIse2Q6Ik01IDE4YTIgMiAwIDEgMCAwLTQgMiAyIDAgMCAwIDAgNHoifV0sWyJwYXRoIix7ZDoiTTE0LjMzIDIyaC0uMDlhLjM1LjM1IDAgMCAxLS4yNC0uMzJ2LTEwYS4zNC4zNCAwIDAgMSAuMzMtLjM0Yy4wOCAwIC4xNS4wMy4yMS4wOGw3LjM0IDZhLjMzLjMzIDAgMCAxLS4yMS41OWgtNC40OWwtMi41NyAzLjg1YS4zNS4zNSAwIDAgMS0uMjguMTR6In1dXSxGWnQ9W1sicGF0aCIse2Q6Ik0zLjcwNCAxNC40NjdhMTAgOCAwIDEgMSAzLjExNSAyLjM3NSJ9XSxbInBhdGgiLHtkOiJNNyAyMmE1IDUgMCAwIDEtMi0zLjk5NCJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTYiLHI6IjIifV1dLE9adD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTE4IDEzYTYgNiAwIDAgMS02IDUgNiA2IDAgMCAxLTYtNWgxMloifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV0sUlp0PVtbInBhdGgiLHtkOiJNMTMgMTMuNzRhMiAyIDAgMCAxLTIgMEwyLjUgOC44N2ExIDEgMCAwIDEgMC0xLjc0TDExIDIuMjZhMiAyIDAgMCAxIDIgMGw4LjUgNC44N2ExIDEgMCAwIDEgMCAxLjc0eiJ9XSxbInBhdGgiLHtkOiJtMjAgMTQuMjg1IDEuNS44NDVhMSAxIDAgMCAxIDAgMS43NEwxMyAyMS43NGEyIDIgMCAwIDEtMiAwbC04LjUtNC44N2ExIDEgMCAwIDEgMC0xLjc0bDEuNS0uODQ1In1dXSxCWnQ9W1sicGF0aCIse2Q6Ik0xMi44MyAyLjE4YTIgMiAwIDAgMC0xLjY2IDBMMi42IDYuMDhhMSAxIDAgMCAwIDAgMS44M2w4LjU4IDMuOTFhMiAyIDAgMCAwIC44My4xOCAyIDIgMCAwIDAgLjgzLS4xOGw4LjU4LTMuOWExIDEgMCAwIDAgMC0xLjgzMXoifV0sWyJwYXRoIix7ZDoiTTE2IDE3aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE0djYifV0sWyJwYXRoIix7ZDoiTTIgMTJhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgLjgyNS4xNzgifV0sWyJwYXRoIix7ZDoiTTIgMTdhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDIuMTE2LS45NjIifV1dLHlJPVtbInBhdGgiLHtkOiJNMTIuODMgMi4xOGEyIDIgMCAwIDAtMS42NiAwTDIuNiA2LjA4YTEgMSAwIDAgMCAwIDEuODNsOC41OCAzLjkxYTIgMiAwIDAgMCAxLjY2IDBsOC41OC0zLjlhMSAxIDAgMCAwIDAtMS44M3oifV0sWyJwYXRoIix7ZDoiTTIgMTJhMSAxIDAgMCAwIC41OC45MWw4LjYgMy45MWEyIDIgMCAwIDAgMS42NSAwbDguNTgtMy45QTEgMSAwIDAgMCAyMiAxMiJ9XSxbInBhdGgiLHtkOiJNMiAxN2ExIDEgMCAwIDAgLjU4LjkxbDguNiAzLjkxYTIgMiAwIDAgMCAxLjY1IDBsOC41OC0zLjlBMSAxIDAgMCAwIDIyIDE3In1dXSxIWnQ9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjkiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjUiLHg6IjE0Iix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI5Iix4OiIxNCIseToiMTIiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjUiLHg6IjMiLHk6IjE2IixyeDoiMSJ9XV0scVp0PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjE0IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV1dLGpadD1bWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMyIseToiMTQiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0xNCA0aDcifV0sWyJwYXRoIix7ZDoiTTE0IDloNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTVoNyJ9XSxbInBhdGgiLHtkOiJNMTQgMjBoNyJ9XV0sVlp0PVtbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjciLGhlaWdodDoiNyIseDoiMTQiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjE0Iix5OiIxNCIscng6IjEifV1dLFVadD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjciLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjciLHg6IjMiLHk6IjE0IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNyIsaGVpZ2h0OiI3Iix4OiIxNCIseToiMTQiLHJ4OiIxIn1dXSxXWnQ9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiI3Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiOSIsaGVpZ2h0OiI3Iix4OiIzIix5OiIxNCIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNyIseDoiMTYiLHk6IjE0IixyeDoiMSJ9XV0sR1p0PVtbInBhdGgiLHtkOiJNMTEgMjBBNyA3IDAgMCAxIDkuOCA2LjFDMTUuNSA1IDE3IDQuNDggMTkgMmMxIDIgMiA0LjE4IDIgOCAwIDUuNS00Ljc4IDEwLTEwIDEwWiJ9XSxbInBhdGgiLHtkOiJNMiAyMWMwLTMgMS44NS01LjM2IDUuMDgtNkM5LjUgMTQuNTIgMTIgMTMgMTMgMTIifV1dLFladD1bWyJwYXRoIix7ZDoiTTIgMjJjMS4yNS0uOTg3IDIuMjctMS45NzUgMy45LTIuMmE1LjU2IDUuNTYgMCAwIDEgMy44IDEuNSA0IDQgMCAwIDAgNi4xODctMi4zNTMgMy41IDMuNSAwIDAgMCAzLjY5LTUuMTE2QTMuNSAzLjUgMCAwIDAgMjAuOTUgOCAzLjUgMy41IDAgMSAwIDE2IDMuMDVhMy41IDMuNSAwIDAgMC01LjgzMSAxLjM3MyAzLjUgMy41IDAgMCAwLTUuMTE2IDMuNjkgNCA0IDAgMCAwLTIuMzQ4IDYuMTU1QzMuNDk5IDE1LjQyIDQuNDA5IDE2LjcxMiA0LjIgMTguMSAzLjkyNiAxOS43NDMgMy4wMTQgMjAuNzMyIDIgMjIifV0sWyJwYXRoIix7ZDoiTTIgMjIgMTcgNyJ9XV0sWlp0PVtbInBhdGgiLHtkOiJNMTYgMTJoM2EyIDIgMCAwIDAgMS45MDItMS4zOGwxLjA1Ni0zLjMzM0ExIDEgMCAwIDAgMjEgNkgzYTEgMSAwIDAgMC0uOTU4IDEuMjg3bDEuMDU2IDMuMzM0QTIgMiAwIDAgMCA1IDEyaDMifV0sWyJwYXRoIix7ZDoiTTE4IDZWM2ExIDEgMCAwIDAtMS0xaC0zIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjEyIix4OiI4Iix5OiIxMCIscng6IjEifV1dLFhadD1bWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik03IDN2MTgifV0sWyJwYXRoIix7ZDoiTTIwLjQgMTguOWMuMi41LS4xIDEuMS0uNiAxLjNsLTEuOS43Yy0uNS4yLTEuMS0uMS0xLjMtLjZMMTEuMSA1LjFjLS4yLS41LjEtMS4xLjYtMS4zbDEuOS0uN2MuNS0uMiAxLjEuMSAxLjMuNloifV1dLFFadD1bWyJwYXRoIix7ZDoibTE2IDYgNCAxNCJ9XSxbInBhdGgiLHtkOiJNMTIgNnYxNCJ9XSxbInBhdGgiLHtkOiJNOCA4djEyIn1dLFsicGF0aCIse2Q6Ik00IDR2MTYifV1dLEpadD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyA0LjI0IDQuMjQifV0sWyJwYXRoIix7ZDoibTE0LjgzIDkuMTcgNC4yNC00LjI0In1dLFsicGF0aCIse2Q6Im0xNC44MyAxNC44MyA0LjI0IDQuMjQifV0sWyJwYXRoIix7ZDoibTkuMTcgMTQuODMtNC4yNCA0LjI0In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV1dLEtadD1bWyJwYXRoIix7ZDoiTTE0IDEyaDJ2OCJ9XSxbInBhdGgiLHtkOiJNMTQgMjBoNCJ9XSxbInBhdGgiLHtkOiJNNiAxMmg0In1dLFsicGF0aCIse2Q6Ik02IDIwaDQifV0sWyJwYXRoIix7ZDoiTTggMjBWOGE0IDQgMCAwIDEgNy40NjQtMiJ9XV0sZVh0PVtbInBhdGgiLHtkOiJNMTYuOCAxMS4yYy44LS45IDEuMi0yIDEuMi0zLjJhNiA2IDAgMCAwLTkuMy01In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTYuMyA2LjNhNC42NyA0LjY3IDAgMCAwIDEuMiA1LjJjLjcuNyAxLjMgMS41IDEuNSAyLjUifV0sWyJwYXRoIix7ZDoiTTkgMThoNiJ9XSxbInBhdGgiLHtkOiJNMTAgMjJoNCJ9XV0sdFh0PVtbInBhdGgiLHtkOiJNMTUgMTRjLjItMSAuNy0xLjcgMS41LTIuNSAxLS45IDEuNS0yLjIgMS41LTMuNUE2IDYgMCAwIDAgNiA4YzAgMSAuMiAyLjIgMS41IDMuNS43LjcgMS4zIDEuNSAxLjUgMi41In1dLFsicGF0aCIse2Q6Ik05IDE4aDYifV0sWyJwYXRoIix7ZDoiTTEwIDIyaDQifV1dLHJYdD1bWyJwYXRoIix7ZDoiTTcgMy41YzUtMiA3IDIuNSAzIDRDMS41IDEwIDIgMTUgNSAxNmM1IDIgOS0xMCAxNC03cy41IDEzLjUtNCAxMmMtNS0yLjUuNS0xMSA2LTIifV1dLGlYdD1bWyJwYXRoIix7ZDoiTTkgMTdIN0E1IDUgMCAwIDEgNyA3In1dLFsicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMCAxIDQgOCJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjEyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxhWHQ9W1sicGF0aCIse2Q6Ik05IDE3SDdBNSA1IDAgMCAxIDcgN2gyIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMSAxIDAgMTBoLTIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV1dLG5YdD1bWyJwYXRoIix7ZDoiTTEwIDEzYTUgNSAwIDAgMCA3LjU0LjU0bDMtM2E1IDUgMCAwIDAtNy4wNy03LjA3bC0xLjcyIDEuNzEifV0sWyJwYXRoIix7ZDoiTTE0IDExYTUgNSAwIDAgMC03LjU0LS41NGwtMyAzYTUgNSAwIDAgMCA3LjA3IDcuMDdsMS43MS0xLjcxIn1dXSxvWHQ9W1sicGF0aCIse2Q6Ik0xNiA4YTYgNiAwIDAgMSA2IDZ2N2gtNHYtN2EyIDIgMCAwIDAtMi0yIDIgMiAwIDAgMC0yIDJ2N2gtNHYtN2E2IDYgMCAwIDEgNi02eiJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiIxMiIseDoiMiIseToiOSJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiNCIscjoiMiJ9XV0sc1h0PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxOUgzIn1dLFsicGF0aCIse2Q6Im0xNSAxOCAyIDIgNC00In1dXSxsWHQ9W1sicGF0aCIse2Q6Ik0xMyA1aDgifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV0sWyJwYXRoIix7ZDoibTMgMTcgMiAyIDQtNCJ9XSxbInBhdGgiLHtkOiJtMyA3IDIgMiA0LTQifV1dLGNYdD1bWyJwYXRoIix7ZDoiTTMgNWg4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDgifV0sWyJwYXRoIix7ZDoiTTMgMTloOCJ9XSxbInBhdGgiLHtkOiJtMTUgNSAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Im0xNSAxOSAzLTMgMyAzIn1dXSxkWHQ9W1sicGF0aCIse2Q6Ik0zIDVoOCJ9XSxbInBhdGgiLHtkOiJNMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0zIDE5aDgifV0sWyJwYXRoIix7ZDoibTE1IDggMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTUgMTYgMyAzIDMtMyJ9XV0sdVh0PVtbInBhdGgiLHtkOiJNMTAgNWgxMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTJoMTEifV0sWyJwYXRoIix7ZDoiTTEwIDE5aDExIn1dLFsicGF0aCIse2Q6Im0zIDEwIDMtMy0zLTMifV0sWyJwYXRoIix7ZDoibTMgMjAgMy0zLTMtMyJ9XV0scFh0PVtbInBhdGgiLHtkOiJNMTYgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNiAxMkgzIn1dLFsicGF0aCIse2Q6Ik05IDE5SDMifV0sWyJwYXRoIix7ZDoibTE2IDE2LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTIxIDV2MTJhMiAyIDAgMCAxLTIgMmgtNiJ9XV0saFh0PVtbInBhdGgiLHtkOiJNMTIgNUgyIn1dLFsicGF0aCIse2Q6Ik02IDEyaDEyIn1dLFsicGF0aCIse2Q6Ik05IDE5aDYifV0sWyJwYXRoIix7ZDoiTTE2IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTkgOFYyIn1dXSxmWHQ9W1sicGF0aCIse2Q6Ik0yIDVoMjAifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTIifV0sWyJwYXRoIix7ZDoiTTkgMTloNiJ9XV0sV3A9W1sicGF0aCIse2Q6Ik0yMSA1SDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkgxMSJ9XSxbInBhdGgiLHtkOiJNMjEgMTlIMTEifV0sWyJwYXRoIix7ZDoibTcgOC00IDQgNCA0In1dXSxHcD1bWyJwYXRoIix7ZDoiTTIxIDVIMTEifV0sWyJwYXRoIix7ZDoiTTIxIDEySDExIn1dLFsicGF0aCIse2Q6Ik0yMSAxOUgxMSJ9XSxbInBhdGgiLHtkOiJtMyA4IDQgNC00IDQifV1dLG1YdD1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTYgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLTYifV1dLGdYdD1bWyJwYXRoIix7ZDoiTTE2IDVIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTJIMyJ9XSxbInBhdGgiLHtkOiJNMTEgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTZWNSJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE2IixyOiIzIn1dXSxiWHQ9W1sicGF0aCIse2Q6Ik0xMSA1aDEwIn1dLFsicGF0aCIse2Q6Ik0xMSAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNMTEgMTloMTAifV0sWyJwYXRoIix7ZDoiTTQgNGgxdjUifV0sWyJwYXRoIix7ZDoiTTQgOWgyIn1dLFsicGF0aCIse2Q6Ik02LjUgMjBIMy40YzAtMSAyLjYtMS45MjUgMi42LTMuNWExLjUgMS41IDAgMCAwLTIuNi0xLjAyIn1dXSx2WHQ9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTE4IDl2NiJ9XSxbInBhdGgiLHtkOiJNMjEgMTJoLTYifV1dLHhYdD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNNyAxMkgzIn1dLFsicGF0aCIse2Q6Ik03IDE5SDMifV0sWyJwYXRoIix7ZDoiTTEyIDE4YTUgNSAwIDAgMCA5LTMgNC41IDQuNSAwIDAgMC00LjUtNC41Yy0xLjMzIDAtMi41NC41NC0zLjQxIDEuNDFMMTEgMTQifV0sWyJwYXRoIix7ZDoiTTExIDEwdjRoNCJ9XV0seVh0PVtbInBhdGgiLHtkOiJNMyA1aDYifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTMifV0sWyJwYXRoIix7ZDoiTTMgMTloMTMifV0sWyJwYXRoIix7ZDoibTE2IDgtMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTlWN2EyIDIgMCAwIDAtMi0yaC02In1dXSx3WHQ9W1sicGF0aCIse2Q6Ik0xMyA1aDgifV0sWyJwYXRoIix7ZDoiTTEzIDEyaDgifV0sWyJwYXRoIix7ZDoiTTEzIDE5aDgifV0sWyJwYXRoIix7ZDoibTMgMTcgMiAyIDQtNCJ9XSxbInJlY3QiLHt4OiIzIix5OiI0Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV0sTVh0PVtbInBhdGgiLHtkOiJNOCA1aDEzIn1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dLFsicGF0aCIse2Q6Ik0zIDEwYTIgMiAwIDAgMCAyIDJoMyJ9XSxbInBhdGgiLHtkOiJNMyA1djEyYTIgMiAwIDAgMCAyIDJoMyJ9XV0sa1h0PVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxOUgzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMi4wMDNhMSAxIDAgMCAxIDEuNTE3LS44NTlsNC45OTcgMi45OTdhMSAxIDAgMCAxIDAgMS43MThsLTQuOTk3IDIuOTk3YTEgMSAwIDAgMS0xLjUxNy0uODZ6In1dXSxTWHQ9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTExIDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoibTE1LjUgOS41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjAuNSA5LjUtNSA1In1dXSx6WHQ9W1sicGF0aCIse2Q6Ik0zIDVoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMyAxOWguMDEifV0sWyJwYXRoIix7ZDoiTTggNWgxMyJ9XSxbInBhdGgiLHtkOiJNOCAxMmgxMyJ9XSxbInBhdGgiLHtkOiJNOCAxOWgxMyJ9XV0sd0k9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAxIDEtNi4yMTktOC41NiJ9XV0sQ1h0PVtbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Im0xNi4yIDcuOCAyLjktMi45In1dLFsicGF0aCIse2Q6Ik0xOCAxMmg0In1dLFsicGF0aCIse2Q6Im0xNi4yIDE2LjIgMi45IDIuOSJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2NCJ9XSxbInBhdGgiLHtkOiJtNC45IDE5LjEgMi45LTIuOSJ9XSxbInBhdGgiLHtkOiJNMiAxMmg0In1dLFsicGF0aCIse2Q6Im00LjkgNC45IDIuOSAyLjkifV1dLFRYdD1bWyJwYXRoIix7ZDoiTTIyIDEyYTEgMSAwIDAgMS0xMCAwIDEgMSAwIDAgMC0xMCAwIn1dLFsicGF0aCIse2Q6Ik03IDIwLjdhMSAxIDAgMSAxIDUtOC43IDEgMSAwIDEgMCA1LTguNiJ9XSxbInBhdGgiLHtkOiJNNyAzLjNhMSAxIDAgMSAxIDUgOC42IDEgMSAwIDEgMCA1IDguNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XV0sX1h0PVtbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dLExYdD1bWyJwYXRoIix7ZDoiTTEyIDE5djMifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTguODkgMTMuMjRhNyA3IDAgMCAwLTguMTMtOC4xMyJ9XSxbInBhdGgiLHtkOiJNMTkgMTJoMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmgzIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTcuMDUgNy4wNWE3IDcgMCAwIDAgOS45IDkuOSJ9XV0sQVh0PVtbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiIxMiIseTI6IjEyIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIyIix5MToiMTIiLHkyOiIxMiJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIiLHkyOiI1In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI3In1dXSxEWHQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTYiLHI6IjEifV0sWyJyZWN0Iix7eDoiMyIseToiMTAiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTBWN2E1IDUgMCAwIDEgMTAgMHYzIn1dXSxNST1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNiIscjoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTIiLHg6IjMiLHk6IjEwIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyAxMFY3YTUgNSAwIDAgMSA5LjMzLTIuNSJ9XV0sRVh0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTEiLHg6IjMiLHk6IjExIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0In1dXSxrST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjExIix4OiIzIix5OiIxMSIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExVjdhNSA1IDAgMCAxIDkuOS0xIn1dXSwkWHQ9W1sicGF0aCIse2Q6Im0xMCAxNyA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik0xNSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNSAzaDRhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAyaC00In1dXSxJWHQ9W1sicGF0aCIse2Q6Ik0zIDVoMSJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxIn1dLFsicGF0aCIse2Q6Ik0zIDE5aDEifV0sWyJwYXRoIix7ZDoiTTggNWgxIn1dLFsicGF0aCIse2Q6Ik04IDEyaDEifV0sWyJwYXRoIix7ZDoiTTggMTloMSJ9XSxbInBhdGgiLHtkOiJNMTMgNWg4In1dLFsicGF0aCIse2Q6Ik0xMyAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMyAxOWg4In1dXSxQWHQ9W1sicGF0aCIse2Q6Im0xNiAxNyA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik0yMSAxMkg5In1dLFsicGF0aCIse2Q6Ik05IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNCJ9XV0sTlh0PVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dLFsicGF0aCIse2Q6Ik0xMSAxMWEyIDIgMCAwIDAgNCAwIDQgNCAwIDAgMC04IDAgNiA2IDAgMCAwIDEyIDAifV1dLEZYdD1bWyJwYXRoIix7ZDoiTTYgMjBhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMTJhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik04IDE4VjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MTQifV0sWyJwYXRoIix7ZDoiTTEwIDIwaDQifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIyMCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI4IixjeToiMjAiLHI6IjIifV1dLE9YdD1bWyJwYXRoIix7ZDoibTEyIDE1IDQgNCJ9XSxbInBhdGgiLHtkOiJNMi4zNTIgMTAuNjQ4YTEuMjA1IDEuMjA1IDAgMCAwIDAgMS43MDRsMi4yOTYgMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMS43MDQgMGw2LjAyOS02LjAyOWExIDEgMCAxIDEgMyAzbC02LjAyOSA2LjAyOWExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNi4zNjUtNi4zNjdBMSAxIDAgMCAwIDguNzE2IDQuMjgyeiJ9XSxbInBhdGgiLHtkOiJtNSA4IDQgNCJ9XV0sUlh0PVtbInBhdGgiLHtkOiJNMjIgMTNWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDgifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMiA0LTQifV1dLEJYdD1bWyJwYXRoIix7ZDoiTTIyIDE1VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dXSxIWHQ9W1sicGF0aCIse2Q6Ik0yMS4yIDguNGMuNS4zOC44Ljk3LjggMS42djEwYTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjEwYTIgMiAwIDAgMSAuOC0xLjZsOC02YTIgMiAwIDAgMSAyLjQgMGw4IDZaIn1dLFsicGF0aCIse2Q6Im0yMiAxMC04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgMTAifV1dLHFYdD1bWyJwYXRoIix7ZDoiTTIyIDEzVjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg4In1dLFsicGF0aCIse2Q6Im0yMiA3LTguOTcgNS43YTEuOTQgMS45NCAwIDAgMS0yLjA2IDBMMiA3In1dLFsicGF0aCIse2Q6Ik0xOSAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNiAxOWg2In1dXSxTST1bWyJwYXRoIix7ZDoiTTIyIDEwLjVWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyLjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE4IDE1LjI4Yy4yLS40LjUtLjguOS0xYTIuMSAyLjEgMCAwIDEgMi42LjRjLjMuNC41LjguNSAxLjMgMCAxLjMtMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJNMjAgMjJ2LjAxIn1dXSxqWHQ9W1sicGF0aCIse2Q6Ik0yMiAxMi41VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg3LjUifV0sWyJwYXRoIix7ZDoibTIyIDctOC45NyA1LjdhMS45NCAxLjk0IDAgMCAxLTIuMDYgMEwyIDcifV0sWyJwYXRoIix7ZDoiTTE4IDIxYTMgMyAwIDEgMCAwLTYgMyAzIDAgMCAwIDAgNloifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS41LTEuNSJ9XV0sVlh0PVtbInBhdGgiLHtkOiJNMjIgMTAuNVY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoMTIuNSJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJNMjAgMTR2NCJ9XSxbInBhdGgiLHtkOiJNMjAgMjJ2LjAxIn1dXSxVWHQ9W1sicGF0aCIse2Q6Im0yMiA3LTguOTkxIDUuNzI3YTIgMiAwIDAgMS0yLjAwOSAwTDIgNyJ9XSxbInJlY3QiLHt4OiIyIix5OiI0Iix3aWR0aDoiMjAiLGhlaWdodDoiMTYiLHJ4OiIyIn1dXSxXWHQ9W1sicGF0aCIse2Q6Ik0yMiAxM1Y2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjEyYzAgMS4xLjkgMiAyIDJoOSJ9XSxbInBhdGgiLHtkOiJtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNyJ9XSxbInBhdGgiLHtkOiJtMTcgMTcgNCA0In1dLFsicGF0aCIse2Q6Im0yMSAxNy00IDQifV1dLEdYdD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjkuNUMyIDcgNCA1IDYuNSA1SDE4YzIuMiAwIDQgMS44IDQgNHY4WiJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIxNSw5IDE4LDkgMTgsMTEifV0sWyJwYXRoIix7ZDoiTTYuNSA1QzkgNSAxMSA3IDExIDkuNVYxN2EyIDIgMCAwIDEtMiAyIn1dLFsibGluZSIse3gxOiI2Iix4MjoiNyIseTE6IjEwIix5MjoiMTAifV1dLFlYdD1bWyJwYXRoIix7ZDoiTTE3IDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAxLTEuNzMyIn1dLFsicGF0aCIse2Q6Im0yMiA1LjUtNi40MTkgNC4xNzlhMiAyIDAgMCAxLTIuMTYyIDBMNyA1LjUifV0sWyJyZWN0Iix7eDoiNyIseToiMyIsd2lkdGg6IjE1IixoZWlnaHQ6IjEyIixyeDoiMiJ9XV0sWlh0PVtbInBhdGgiLHtkOiJtMTEgMTktMS4xMDYtLjU1MmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMGw0LjIxMiAyLjEwNmEyIDIgMCAwIDAgMS43ODggMGwzLjY1OS0xLjgzQTEgMSAwIDAgMSAyMSA0LjYxOVYxNCJ9XSxbInBhdGgiLHtkOiJNMTUgNS43NjRWMTQifV0sWyJwYXRoIix7ZDoiTTIxIDE4aC02In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXSxYWHQ9W1sicGF0aCIse2Q6Ik0yMCAxMGMwIDQuOTkzLTUuNTM5IDEwLjE5My03LjM5OSAxMS43OTlhMSAxIDAgMCAxLTEuMjAyIDBDOS41MzkgMjAuMTkzIDQgMTQuOTkzIDQgMTBhOCA4IDAgMCAxIDE2IDAifV0sWyJwYXRoIix7ZDoibTkgMTAgMiAyIDQtNCJ9XV0sUVh0PVtbInBhdGgiLHtkOiJNMTkuNDMgMTIuOTM1Yy4zNTctLjk2Ny41Ny0xLjk1NS41Ny0yLjkzNWE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIuMTk3IDMyLjE5NyAwIDAgMCAuODEzLS43MjgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTYgMTggMiAyIDQtNCJ9XV0sSlh0PVtbInBhdGgiLHtkOiJNMTUgMjJhMSAxIDAgMCAxLTEtMXYtNGExIDEgMCAwIDEgLjQ0NS0uODMybDMtMmExIDEgMCAwIDEgMS4xMSAwbDMgMkExIDEgMCAwIDEgMjIgMTd2NGExIDEgMCAwIDEtMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTggMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAuNjAxLjIifV0sWyJwYXRoIix7ZDoiTTE4IDIydi0zIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTAiLHI6IjMifV1dLEtYdD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJNOSAxMGg2In1dXSxlUXQ9W1sicGF0aCIse2Q6Ik0xOC45NzcgMTRDMTkuNiAxMi43MDEgMjAgMTEuMzQzIDIwIDEwYTggOCAwIDAgMC0xNiAwYzAgNC45OTMgNS41MzkgMTAuMTkzIDcuMzk5IDExLjc5OWExIDEgMCAwIDAgMS4yMDIgMCAzMiAzMiAwIDAgMCAuODI0LS43MzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTYgMThoNiJ9XV0sdFF0PVtbInBhdGgiLHtkOiJNMTIuNzUgNy4wOWEzIDMgMCAwIDEgMi4xNiAyLjE2In1dLFsicGF0aCIse2Q6Ik0xNy4wNzIgMTcuMDcyYy0xLjYzNCAyLjE3LTMuNTI3IDMuOTEyLTQuNDcxIDQuNzI3YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxLjQzMi00LjU2OCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjQ3NSAyLjgxOEE4IDggMCAwIDEgMjAgMTBjMCAxLjE4My0uMzEgMi4zNzctLjgxIDMuNTMzIn1dLFsicGF0aCIse2Q6Ik05LjEzIDkuMTNhMyAzIDAgMCAwIDMuNzQgMy43NCJ9XV0sekk9W1sicGF0aCIse2Q6Ik0xNy45NyA5LjMwNEE4IDggMCAwIDAgMiAxMGMwIDQuNjkgNC44ODcgOS41NjIgNy4wMjIgMTEuNDY4In1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMCIscjoiMyJ9XV0sclF0PVtbInBhdGgiLHtkOiJNMjAgMTBjMCA0Ljk5My01LjUzOSAxMC4xOTMtNy4zOTkgMTEuNzk5YTEgMSAwIDAgMS0xLjIwMiAwQzkuNTM5IDIwLjE5MyA0IDE0Ljk5MyA0IDEwYTggOCAwIDAgMSAxNiAwIn1dLFsicGF0aCIse2Q6Ik0xMiA3djYifV0sWyJwYXRoIix7ZDoiTTkgMTBoNiJ9XV0saVF0PVtbInBhdGgiLHtkOiJNMTkuOTE0IDExLjEwNUE3LjI5OCA3LjI5OCAwIDAgMCAyMCAxMGE4IDggMCAwIDAtMTYgMGMwIDQuOTkzIDUuNTM5IDEwLjE5MyA3LjM5OSAxMS43OTlhMSAxIDAgMCAwIDEuMjAyIDAgMzIgMzIgMCAwIDAgLjgyNC0uNzM4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE2IDE4aDYifV0sWyJwYXRoIix7ZDoiTTE5IDE1djYifV1dLGFRdD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbInBhdGgiLHtkOiJtMTQuNSA3LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgNy41IDUgNSJ9XV0sblF0PVtbInBhdGgiLHtkOiJNMTkuNzUyIDExLjkwMUE3Ljc4IDcuNzggMCAwIDAgMjAgMTBhOCA4IDAgMCAwLTE2IDBjMCA0Ljk5MyA1LjUzOSAxMC4xOTMgNy4zOTkgMTEuNzk5YTEgMSAwIDAgMCAxLjIwMiAwIDE5IDE5IDAgMCAwIC4wOS0uMDc3In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxLjUgMTUuNS01IDUifV0sWyJwYXRoIix7ZDoibTIxLjUgMjAuNS01LTUifV1dLG9RdD1bWyJwYXRoIix7ZDoiTTIwIDEwYzAgNC45OTMtNS41MzkgMTAuMTkzLTcuMzk5IDExLjc5OWExIDEgMCAwIDEtMS4yMDIgMEM5LjUzOSAyMC4xOTMgNCAxNC45OTMgNCAxMGE4IDggMCAwIDEgMTYgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dXSxzUXQ9W1sicGF0aCIse2Q6Ik0xOCA4YzAgMy42MTMtMy44NjkgNy40MjktNS4zOTMgOC43OTVhMSAxIDAgMCAxLTEuMjE0IDBDOS44NyAxNS40MjkgNiAxMS42MTMgNiA4YTYgNiAwIDAgMSAxMiAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOC43MTQgMTRoLTMuNzFhMSAxIDAgMCAwLS45NDguNjgzbC0yLjAwNCA2QTEgMSAwIDAgMCAzIDIyaDE4YTEgMSAwIDAgMCAuOTQ4LTEuMzE2bC0yLTZhMSAxIDAgMCAwLS45NDktLjY4NGgtMy43MTIifV1dLGxRdD1bWyJwYXRoIix7ZDoibTExIDE5LTEuMTA2LS41NTJhMiAyIDAgMCAwLTEuNzg4IDBsLTMuNjU5IDEuODNBMSAxIDAgMCAxIDMgMTkuMzgxVjYuNjE4YTEgMSAwIDAgMSAuNTUzLS44OTRsNC41NTMtMi4yNzdhMiAyIDAgMCAxIDEuNzg4IDBsNC4yMTIgMi4xMDZhMiAyIDAgMCAwIDEuNzg4IDBsMy42NTktMS44M0ExIDEgMCAwIDEgMjEgNC42MTlWMTIifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0VjEyIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXY2In1dLFsicGF0aCIse2Q6Ik0yMSAxOGgtNiJ9XSxbInBhdGgiLHtkOiJNOSAzLjIzNnYxNSJ9XV0sY1F0PVtbInBhdGgiLHtkOiJNMTQuMTA2IDUuNTUzYTIgMiAwIDAgMCAxLjc4OCAwbDMuNjU5LTEuODNBMSAxIDAgMCAxIDIxIDQuNjE5djEyLjc2NGExIDEgMCAwIDEtLjU1My44OTRsLTQuNTUzIDIuMjc3YTIgMiAwIDAgMS0xLjc4OCAwbC00LjIxMi0yLjEwNmEyIDIgMCAwIDAtMS43ODggMGwtMy42NTkgMS44M0ExIDEgMCAwIDEgMyAxOS4zODFWNi42MThhMSAxIDAgMCAxIC41NTMtLjg5NGw0LjU1My0yLjI3N2EyIDIgMCAwIDEgMS43ODggMHoifV0sWyJwYXRoIix7ZDoiTTE1IDUuNzY0djE1In1dLFsicGF0aCIse2Q6Ik05IDMuMjM2djE1In1dXSxkUXQ9W1sicGF0aCIse2Q6Im0xNCA2IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTcgM2g0djQifV0sWyJwYXRoIix7ZDoibTIxIDMtNy43NSA3Ljc1In1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiIxNSIscjoiNiJ9XV0sdVF0PVtbInBhdGgiLHtkOiJNMTYgM2g1djUifV0sWyJwYXRoIix7ZDoibTIxIDMtNi43NSA2Ljc1In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTQiLHI6IjYifV1dLHBRdD1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTF2MTEifV0sWyJwYXRoIix7ZDoibTE5IDMtNyA4LTctOFoifV1dLGhRdD1bWyJwYXRoIix7ZDoiTTE1IDNoNnY2In1dLFsicGF0aCIse2Q6Im0yMSAzLTcgNyJ9XSxbInBhdGgiLHtkOiJtMyAyMSA3LTcifV0sWyJwYXRoIix7ZDoiTTkgMjFIM3YtNiJ9XV0sZlF0PVtbInBhdGgiLHtkOiJNOCAzSDVhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Ik0yMSA4VjVhMiAyIDAgMCAwLTItMmgtMyJ9XSxbInBhdGgiLHtkOiJNMyAxNnYzYTIgMiAwIDAgMCAyIDJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgMjFoM2EyIDIgMCAwIDAgMi0ydi0zIn1dXSxtUXQ9W1sicGF0aCIse2Q6Ik03LjIxIDE1IDIuNjYgNy4xNGEyIDIgMCAwIDEgLjEzLTIuMkw0LjQgMi44QTIgMiAwIDAgMSA2IDJoMTJhMiAyIDAgMCAxIDEuNi44bDEuNiAyLjE0YTIgMiAwIDAgMSAuMTQgMi4yTDE2Ljc5IDE1In1dLFsicGF0aCIse2Q6Ik0xMSAxMiA1LjEyIDIuMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTIgNS44OC05LjgifV0sWyJwYXRoIix7ZDoiTTggN2g4In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTciLHI6IjUifV0sWyJwYXRoIix7ZDoiTTEyIDE4di0yaC0uNSJ9XV0sZ1F0PVtbInBhdGgiLHtkOiJNMTEuNjM2IDZBMTMgMTMgMCAwIDAgMTkuNCAzLjIgMSAxIDAgMCAxIDIxIDR2MTEuMzQ0In1dLFsicGF0aCIse2Q6Ik0xNC4zNzggMTQuMzU3QTEzIDEzIDAgMCAwIDExIDE0SDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik02IDE0YTEyIDEyIDAgMCAwIDIuNCA3LjIgMiAyIDAgMCAwIDMuMi0yLjRBOCA4IDAgMCAxIDEwIDE0In1dLFsicGF0aCIse2Q6Ik04IDh2NiJ9XV0sYlF0PVtbInBhdGgiLHtkOiJNMTEgNmExMyAxMyAwIDAgMCA4LjQtMi44QTEgMSAwIDAgMSAyMSA0djEyYTEgMSAwIDAgMS0xLjYuOEExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCJ9XSxbInBhdGgiLHtkOiJNOCA2djgifV1dLHZRdD1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjE1Iix5MjoiMTUifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV0seFF0PVtbInBhdGgiLHtkOiJNNCA1aDE2In1dLFsicGF0aCIse2Q6Ik00IDEyaDE2In1dLFsicGF0aCIse2Q6Ik00IDE5aDE2In1dXSx5UXQ9W1sicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTh2LTIifV0sWyJwYXRoIix7ZDoiTTE2IDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xNiAxOHYtMiJ9XSxbInBhdGgiLHtkOiJNMiAxMWgxLjUifV0sWyJwYXRoIix7ZDoiTTIwIDE4di0yIn1dLFsicGF0aCIse2Q6Ik0yMC41IDExSDIyIn1dLFsicGF0aCIse2Q6Ik00IDE4di0yIn1dLFsicGF0aCIse2Q6Ik04IDEydi0yIn1dLFsicGF0aCIse2Q6Ik04IDE4di0yIn1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxMCIscng6IjIifV1dLHdRdD1bWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dLFsicGF0aCIse2Q6Ik0xMiAydjEwLjNhNCA0IDAgMCAxLTEuMTcyIDIuODcyTDQgMjIifV0sWyJwYXRoIix7ZDoibTIwIDIyLTUtNSJ9XV0sTVF0PVtbInBhdGgiLHtkOiJtMTAgOS0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxNSAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XV0sa1F0PVtbInBhdGgiLHtkOiJNMTAuMSAyLjE4MmExMCAxMCAwIDAgMSAzLjggMCJ9XSxbInBhdGgiLHtkOiJNMTMuOSAyMS44MThhMTAgMTAgMCAwIDEtMy44IDAifV0sWyJwYXRoIix7ZDoiTTE3LjYwOSAzLjcyYTEwIDEwIDAgMCAxIDIuNjkgMi43In1dLFsicGF0aCIse2Q6Ik0yLjE4MiAxMy45YTEwIDEwIDAgMCAxIDAtMy44In1dLFsicGF0aCIse2Q6Ik0yMC4yOCAxNy42MWExMCAxMCAwIDAgMS0yLjcgMi42OSJ9XSxbInBhdGgiLHtkOiJNMjEuODE4IDEwLjFhMTAgMTAgMCAwIDEgMCAzLjgifV0sWyJwYXRoIix7ZDoiTTMuNzIxIDYuMzkxYTEwIDEwIDAgMCAxIDIuNy0yLjY5In1dLFsicGF0aCIse2Q6Im02LjE2MyAyMS4xMTctMi45MDYuODVhMSAxIDAgMCAxLTEuMjM2LTEuMTY5bC45NjUtMi45OCJ9XV0sU1F0PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTcuODI4IDEzLjA3QTMgMyAwIDAgMSAxMiA4Ljc2NGEzIDMgMCAwIDEgNS4wMDQgMi4yMjQgMyAzIDAgMCAxLS44MzIgMi4wODNsLTMuNDQ3IDMuNjJhMSAxIDAgMCAxLTEuNDUtLjAwMXoifV1dLHpRdD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik04IDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxMmguMDEifV1dLENRdD1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNC45MyA0LjkyOWExMCAxMCAwIDAgMC0xLjkzOCAxMS40MTIgMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDAgMCAxMS4zMDItMS45ODkifV0sWyJwYXRoIix7ZDoiTTguMzUgMi42OUExMCAxMCAwIDAgMSAyMS4zIDE1LjY1In1dXSxUUXQ9W1sicGF0aCIse2Q6Ik0yLjk5MiAxNi4zNDJhMiAyIDAgMCAxIC4wOTQgMS4xNjdsLTEuMDY1IDMuMjlhMSAxIDAgMCAwIDEuMjM2IDEuMTY4bDMuNDEzLS45OThhMiAyIDAgMCAxIDEuMDk5LjA5MiAxMCAxMCAwIDEgMC00Ljc3Ny00LjcxOSJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV1dLENJPVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoiTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxN2guMDEifV1dLF9RdD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTEyIDE2aC4wMSJ9XV0sTFF0PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV0sWyJwYXRoIix7ZDoibTEwIDE1LTMtMyAzLTMifV0sWyJwYXRoIix7ZDoiTTcgMTJoOGEyIDIgMCAwIDEgMiAydjEifV1dLEFRdD1bWyJwYXRoIix7ZDoiTTIuOTkyIDE2LjM0MmEyIDIgMCAwIDEgLjA5NCAxLjE2N2wtMS4wNjUgMy4yOWExIDEgMCAwIDAgMS4yMzYgMS4xNjhsMy40MTMtLjk5OGEyIDIgMCAwIDEgMS4wOTkuMDkyIDEwIDEwIDAgMSAwLTQuNzc3LTQuNzE5In1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV0sRFF0PVtbInBhdGgiLHtkOiJNMi45OTIgMTYuMzQyYTIgMiAwIDAgMSAuMDk0IDEuMTY3bC0xLjA2NSAzLjI5YTEgMSAwIDAgMCAxLjIzNiAxLjE2OGwzLjQxMy0uOTk4YTIgMiAwIDAgMSAxLjA5OS4wOTIgMTAgMTAgMCAxIDAtNC43NzctNC43MTkifV1dLEVRdD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJtMTAgOC0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im0xNCAxNCAzLTMtMy0zIn1dXSwkUXQ9W1sicGF0aCIse2Q6Ik0xNCAzaDIifV0sWyJwYXRoIix7ZDoiTTE2IDE5aC0yIn1dLFsicGF0aCIse2Q6Ik0yIDEydi0yIn1dLFsicGF0aCIse2Q6Ik0yIDE2djUuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMS4xNDktMS4xNDkifV0sWyJwYXRoIix7ZDoiTTIwIDE5YTIgMiAwIDAgMCAyLTJ2LTEifV0sWyJwYXRoIix7ZDoiTTIyIDEwdjIifV0sWyJwYXRoIix7ZDoiTTIyIDZWNWEyIDIgMCAwIDAtMi0yIn1dLFsicGF0aCIse2Q6Ik00IDNhMiAyIDAgMCAwLTIgMnYxIn1dLFsicGF0aCIse2Q6Ik04IDE5aDIifV0sWyJwYXRoIix7ZDoiTTggM2gyIn1dXSxJUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEwIDE1aDQifV0sWyJwYXRoIix7ZDoiTTEwIDloNCJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dXSxQUXQ9W1sicGF0aCIse2Q6Ik0xMi43IDNINGEyIDIgMCAwIDAtMiAydjE2LjI4NmEuNzEuNzEgMCAwIDAgMS4yMTIuNTAybDIuMjAyLTIuMjAyQTIgMiAwIDAgMSA2LjgyOCAxOUgyMGEyIDIgMCAwIDAgMi0ydi00LjcifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI2IixyOiIzIn1dXSxOUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTcuNSA5LjVjMCAuNjg3LjI2NSAxLjM4My42OTcgMS44NDRsMy4wMDkgMy4yNjRhMS4xNCAxLjE0IDAgMCAwIC40MDcuMzE0IDEgMSAwIDAgMCAuNzgzLS4wMDQgMS4xNCAxLjE0IDAgMCAwIC4zOTgtLjMxbDMuMDA4LTMuMjY0QTIuNzcgMi43NyAwIDAgMCAxNi41IDkuNSAyLjUgMi41IDAgMCAwIDEyIDhhMi41IDIuNSAwIDAgMC00LjUgMS41In1dXSxGUXQ9W1sicGF0aCIse2Q6Ik0yMiA4LjVWNWEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxNi4yODZhLjcxLjcxIDAgMCAwIDEuMjEyLjUwMmwyLjIwMi0yLjIwMkEyIDIgMCAwIDEgNi44MjggMTlIMTAifV0sWyJwYXRoIix7ZDoiTTIwIDE1di0yYTIgMiAwIDAgMC00IDB2MiJ9XSxbInJlY3QiLHt4OiIxNCIseToiMTUiLHdpZHRoOiI4IixoZWlnaHQ6IjUiLHJ4OiIxIn1dXSxPUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDExaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTFoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDExaC4wMSJ9XV0sUlF0PVtbInBhdGgiLHtkOiJNMTkgMTlINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcuNyAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04LjY1NiAzSDIwYTIgMiAwIDAgMSAyIDJ2MTEuMzQ0In1dXSxCUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDh2NiJ9XSxbInBhdGgiLHtkOiJNOSAxMWg2In1dXSxIUXQ9W1sicGF0aCIse2Q6Ik0xNCAxNGEyIDIgMCAwIDAgMi0yVjhoLTIifV0sWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XSxbInBhdGgiLHtkOiJNOCAxNGEyIDIgMCAwIDAgMi0yVjhIOCJ9XV0scVF0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Im0xMCA4LTMgMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE0di0xYTIgMiAwIDAgMC0yLTJINyJ9XV0salF0PVtbInBhdGgiLHtkOiJNMTIgM0g0YTIgMiAwIDAgMC0yIDJ2MTYuMjg2YS43MS43MSAwIDAgMCAxLjIxMi41MDJsMi4yMDItMi4yMDJBMiAyIDAgMCAxIDYuODI4IDE5SDIwYTIgMiAwIDAgMCAyLTJ2LTQifV0sWyJwYXRoIix7ZDoiTTE2IDNoNnY2In1dLFsicGF0aCIse2Q6Im0xNiA5IDYtNiJ9XV0sVlF0PVtbInBhdGgiLHtkOiJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik03IDExaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE1aDYifV0sWyJwYXRoIix7ZDoiTTcgN2g4In1dXSxVUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoiTTEyIDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgN3Y0In1dXSxXUXQ9W1sicGF0aCIse2Q6Ik0yMiAxN2EyIDIgMCAwIDEtMiAySDYuODI4YTIgMiAwIDAgMC0xLjQxNC41ODZsLTIuMjAyIDIuMjAyQS43MS43MSAwIDAgMSAyIDIxLjI4NlY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnoifV0sWyJwYXRoIix7ZDoibTE0LjUgOC41LTUgNSJ9XSxbInBhdGgiLHtkOiJtOS41IDguNSA1IDUifV1dLEdRdD1bWyJwYXRoIix7ZDoiTTIyIDE3YTIgMiAwIDAgMS0yIDJINi44MjhhMiAyIDAgMCAwLTEuNDE0LjU4NmwtMi4yMDIgMi4yMDJBLjcxLjcxIDAgMCAxIDIgMjEuMjg2VjVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAyeiJ9XV0sWVF0PVtbInBhdGgiLHtkOiJNMTYgMTBhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAxNC4yODZWNGEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6In1dLFsicGF0aCIse2Q6Ik0yMCA5YTIgMiAwIDAgMSAyIDJ2MTAuMjg2YS43MS43MSAwIDAgMS0xLjIxMi41MDJsLTIuMjAyLTIuMjAyQTIgMiAwIDAgMCAxNy4xNzIgMTlIMTBhMiAyIDAgMCAxLTItMnYtMSJ9XV0sWlF0PVtbInBhdGgiLHtkOiJNMTIgMTl2MyJ9XSxbInBhdGgiLHtkOiJNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMifV0sWyJwYXRoIix7ZDoiTTE2Ljk1IDE2Ljk1QTcgNyAwIDAgMSA1IDEydi0yIn1dLFsicGF0aCIse2Q6Ik0xOC44OSAxMy4yM0E3IDcgMCAwIDAgMTkgMTJ2LTIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNOSA5djNhMyAzIDAgMCAwIDUuMTIgMi4xMiJ9XV0sVEk9W1sicGF0aCIse2Q6Im0xMSA3LjYwMS01Ljk5NCA4LjE5YTEgMSAwIDAgMCAuMSAxLjI5OGwuODE3LjgxOGExIDEgMCAwIDAgMS4zMTQuMDg3TDE1LjA5IDEyIn1dLFsicGF0aCIse2Q6Ik0xNi41IDIxLjE3NEMxNS41IDIwLjUgMTQuMzcyIDIwIDEzIDIwYy0yLjA1OCAwLTMuOTI4IDIuMzU2LTYgMi0yLjA3Mi0uMzU2LTIuNzc1LTMuMzY5LTEuNS00LjUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiI3IixyOiI1In1dXSxYUXQ9W1sicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xOSAxMHYyYTcgNyAwIDAgMS0xNCAwdi0yIn1dLFsicmVjdCIse3g6IjkiLHk6IjIiLHdpZHRoOiI2IixoZWlnaHQ6IjEzIixyeDoiMyJ9XV0sUVF0PVtbInBhdGgiLHtkOiJNMTAgMTJoNCJ9XSxbInBhdGgiLHtkOiJNMTAgMTdoNCJ9XSxbInBhdGgiLHtkOiJNMTAgN2g0In1dLFsicGF0aCIse2Q6Ik0xOCAxMmgyIn1dLFsicGF0aCIse2Q6Ik0xOCAxOGgyIn1dLFsicGF0aCIse2Q6Ik0xOCA2aDIifV0sWyJwYXRoIix7ZDoiTTQgMTJoMiJ9XSxbInBhdGgiLHtkOiJNNCAxOGgyIn1dLFsicGF0aCIse2Q6Ik00IDZoMiJ9XSxbInJlY3QiLHt4OiI2Iix5OiIyIix3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHJ4OiIyIn1dXSxKUXQ9W1sicGF0aCIse2Q6Ik02IDE4aDgifV0sWyJwYXRoIix7ZDoiTTMgMjJoMTgifV0sWyJwYXRoIix7ZDoiTTE0IDIyYTcgNyAwIDEgMCAwLTE0aC0xIn1dLFsicGF0aCIse2Q6Ik05IDE0aDIifV0sWyJwYXRoIix7ZDoiTTkgMTJhMiAyIDAgMCAxLTItMlY2aDZ2NGEyIDIgMCAwIDEtMiAyWiJ9XSxbInBhdGgiLHtkOiJNMTIgNlYzYTEgMSAwIDAgMC0xLTFIOWExIDEgMCAwIDAtMSAxdjMifV1dLEtRdD1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE1Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI3Iix4OiI2Iix5OiI4IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTggOHY3In1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJwYXRoIix7ZDoiTTE4IDE5djIifV1dLGVKdD1bWyJwYXRoIix7ZDoiTTEyIDEzdjgifV0sWyJwYXRoIix7ZDoiTTEyIDN2MyJ9XSxbInBhdGgiLHtkOiJNNCA2YTEgMSAwIDAgMC0xIDF2NWExIDEgMCAwIDAgMSAxaDEzYTIgMiAwIDAgMCAxLjE1Mi0uMzY1bDMuNDI0LTIuMzE3YTEgMSAwIDAgMCAwLTEuNjM1bC0zLjQyNC0yLjMxOEEyIDIgMCAwIDAgMTcgNnoifV1dLHRKdD1bWyJwYXRoIix7ZDoiTTggMmg4In1dLFsicGF0aCIse2Q6Ik05IDJ2MS4zNDNNMTUgMnYyLjc4OWE0IDQgMCAwIDAgLjY3MiAyLjIxOWwuNjU2Ljk4NGE0IDQgMCAwIDEgLjY3MiAyLjIydjEuMTMxTTcuOCA3LjhsLS4xMjguMTkyQTQgNCAwIDAgMCA3IDEwLjIxMlYyMGEyIDIgMCAwIDAgMiAyaDZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNNyAxNWE2LjQ3IDYuNDcgMCAwIDEgNSAwIDYuNDcyIDYuNDcyIDAgMCAwIDMuNDM1LjQzNSJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxySnQ9W1sicGF0aCIse2Q6Im0xNCAxMCA3LTcifV0sWyJwYXRoIix7ZDoiTTIwIDEwaC02VjQifV0sWyJwYXRoIix7ZDoibTMgMjEgNy03In1dLFsicGF0aCIse2Q6Ik00IDE0aDZ2NiJ9XV0saUp0PVtbInBhdGgiLHtkOiJNOCAyaDgifV0sWyJwYXRoIix7ZDoiTTkgMnYyLjc4OWE0IDQgMCAwIDEtLjY3MiAyLjIxOWwtLjY1Ni45ODRBNCA0IDAgMCAwIDcgMTAuMjEyVjIwYTIgMiAwIDAgMCAyIDJoNmEyIDIgMCAwIDAgMi0ydi05Ljc4OWE0IDQgMCAwIDAtLjY3Mi0yLjIxOWwtLjY1Ni0uOTg0QTQgNCAwIDAgMSAxNSA0Ljc4OFYyIn1dLFsicGF0aCIse2Q6Ik03IDE1YTYuNDcyIDYuNDcyIDAgMCAxIDUgMCA2LjQ3IDYuNDcgMCAwIDAgNSAwIn1dXSxhSnQ9W1sicGF0aCIse2Q6Ik04IDN2M2EyIDIgMCAwIDEtMiAySDMifV0sWyJwYXRoIix7ZDoiTTIxIDhoLTNhMiAyIDAgMCAxLTItMlYzIn1dLFsicGF0aCIse2Q6Ik0zIDE2aDNhMiAyIDAgMCAxIDIgMnYzIn1dLFsicGF0aCIse2Q6Ik0xNiAyMXYtM2EyIDIgMCAwIDEgMi0yaDMifV1dLG5KdD1bWyJwYXRoIix7ZDoiTTUgMTJoMTQifV1dLG9KdD1bWyJwYXRoIix7ZDoibTkgMTAgMiAyIDQtNCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dLHNKdD1bWyJwYXRoIix7ZDoiTTExIDEzYTMgMyAwIDEgMSAyLjgzLTRIMTRhMiAyIDAgMCAxIDAgNHoifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInJlY3QiLHt4OiIyIix5OiIzIix3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHJ4OiIyIn1dXSxsSnQ9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0xNC4zMDUgNy41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDQuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDMuMjI4LS4zODMtLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDguNzcyLS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Im0xOS4xNDggMy4yMjguMzgzLS45MjQifV0sWyJwYXRoIix7ZDoibTE5LjUzIDkuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDQuODUyLjkyNC0uMzgzIn1dLFsicGF0aCIse2Q6Im0yMC43NzIgNy4xNDguOTI0LjM4MyJ9XSxbInBhdGgiLHtkOiJNMjIgMTN2MmEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNiIscjoiMyJ9XV0sY0p0PVtbInBhdGgiLHtkOiJNMTIgMTd2NCJ9XSxbInBhdGgiLHtkOiJNMjIgMTIuMzA3VjE1YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg4LjY5MyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNiIscjoiMyJ9XV0sZEp0PVtbInBhdGgiLHtkOiJNMTIgMTNWNyJ9XSxbInBhdGgiLHtkOiJtMTUgMTAtMyAzLTMtMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dLHVKdD1bWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTE3IDE3SDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAxLjE4NC0xLjgyNiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJwYXRoIix7ZDoiTTguNjU2IDNIMjBhMiAyIDAgMCAxIDIgMnYxMGEyIDIgMCAwIDEtLjI5MyAxLjA0MiJ9XV0scEp0PVtbInBhdGgiLHtkOiJNMTAgMTNWNyJ9XSxbInBhdGgiLHtkOiJNMTQgMTNWNyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV1dLGhKdD1bWyJwYXRoIix7ZDoiTTE1LjAzMyA5LjQ0YS42NDcuNjQ3IDAgMCAxIDAgMS4xMmwtNC4wNjUgMi4zNTJhLjY0NS42NDUgMCAwIDEtLjk2OC0uNTZWNy42NDhhLjY0NS42NDUgMCAwIDEgLjk2Ny0uNTZ6In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XV0sZkp0PVtbInBhdGgiLHtkOiJNMTggOFY2YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjdhMiAyIDAgMCAwIDIgMmg4In1dLFsicGF0aCIse2Q6Ik0xMCAxOXYtMy45NiAzLjE1In1dLFsicGF0aCIse2Q6Ik03IDE5aDUifV0sWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMTAiLHg6IjE2Iix5OiIxMiIscng6IjIifV1dLG1KdD1bWyJwYXRoIix7ZDoiTTUuNSAyMEg4In1dLFsicGF0aCIse2Q6Ik0xNyA5aC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiMTYiLHg6IjEyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA2SDRhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDJoNCJ9XSxbImNpcmNsZSIse2N4OiIxNyIsY3k6IjE1IixyOiIxIn1dXSxnSnQ9W1sicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Ik04IDIxaDgifV0sWyJyZWN0Iix7eDoiMiIseToiMyIsd2lkdGg6IjIwIixoZWlnaHQ6IjE0IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI5Iix5OiI3Iix3aWR0aDoiNiIsaGVpZ2h0OiI2IixyeDoiMSJ9XV0sYkp0PVtbInBhdGgiLHtkOiJtOSAxMCAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xMiAxM1Y3In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV0sdkp0PVtbInBhdGgiLHtkOiJtMTQuNSAxMi41LTUtNSJ9XSxbInBhdGgiLHtkOiJtOS41IDEyLjUgNS01In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XV0seEp0PVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dLFsibGluZSIse3gxOiI4Iix4MjoiMTYiLHkxOiIyMSIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTciLHkyOiIyMSJ9XV0seUp0PVtbInBhdGgiLHtkOiJNMTggNWg0In1dLFsicGF0aCIse2Q6Ik0yMCAzdjQifV0sWyJwYXRoIix7ZDoiTTIwLjk4NSAxMi40ODZhOSA5IDAgMSAxLTkuNDczLTkuNDcyYy40MDUtLjAyMi42MTcuNDYuNDAyLjgwM2E2IDYgMCAwIDAgOC4yNjggOC4yNjhjLjM0NC0uMjE1LjgyNS0uMDA0LjgwMy40MDEifV1dLHdKdD1bWyJwYXRoIix7ZDoiTTIwLjk4NSAxMi40ODZhOSA5IDAgMSAxLTkuNDczLTkuNDcyYy40MDUtLjAyMi42MTcuNDYuNDAyLjgwM2E2IDYgMCAwIDAgOC4yNjggOC4yNjhjLjM0NC0uMjE1LjgyNS0uMDA0LjgwMy40MDEifV1dLE1KdD1bWyJwYXRoIix7ZDoibTE4IDE0LTEtMyJ9XSxbInBhdGgiLHtkOiJtMyA5IDYgMmEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDEuOTkgMS44MSJ9XSxbInBhdGgiLHtkOiJNOCAxN2gzYTEgMSAwIDAgMCAxLTEgNiA2IDAgMCAxIDYtNiAxIDEgMCAwIDAgMS0xdi0uNzVBNSA1IDAgMCAwIDE3IDUifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiIxNyIscjoiMyJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTciLHI6IjMifV1dLGtKdD1bWyJwYXRoIix7ZDoibTggMyA0IDggNS01IDUgMTVIMkw4IDN6In1dLFsicGF0aCIse2Q6Ik00LjE0IDE1LjA4YzIuNjItMS41NyA1LjI0LTEuNDMgNy44Ni40MiAyLjc0IDEuOTQgNS40OSAyIDguMjMuMTkifV1dLFNKdD1bWyJwYXRoIix7ZDoibTggMyA0IDggNS01IDUgMTVIMkw4IDN6In1dXSx6SnQ9W1sicGF0aCIse2Q6Ik0xMiA2di4zNDMifV0sWyJwYXRoIix7ZDoiTTE4LjIxOCAxOC4yMThBNyA3IDAgMCAxIDUgMTVWOWE3IDcgMCAwIDEgLjc4Mi0zLjIxOCJ9XSxbInBhdGgiLHtkOiJNMTkgMTMuMzQzVjlBNyA3IDAgMCAwIDguNTYgMi45MDIifV0sWyJwYXRoIix7ZDoiTTIyIDIyIDIgMiJ9XV0sQ0p0PVtbInBhdGgiLHtkOiJtMTUuNTUgOC40NSA1LjEzOCAyLjA4N2EuNS41IDAgMCAxLS4wNjMuOTQ3bC02LjEyNCAxLjU4YTIgMiAwIDAgMC0xLjQzOCAxLjQzNWwtMS41NzkgNi4xMjZhLjUuNSAwIDAgMS0uOTQ3LjA2M0w4LjQ1IDE1LjU1MSJ9XSxbInBhdGgiLHtkOiJNMjIgMiAyIDIyIn1dLFsicGF0aCIse2Q6Im02LjgxNiAxMS41MjgtMi43NzktNi44NGEuNDk1LjQ5NSAwIDAgMSAuNjUxLS42NTFsNi44NCAyLjc3OSJ9XV0sVEp0PVtbInBhdGgiLHtkOiJNNC4wMzcgNC42ODhhLjQ5NS40OTUgMCAwIDEgLjY1MS0uNjUxbDE2IDYuNWEuNS41IDAgMCAxLS4wNjMuOTQ3bC02LjEyNCAxLjU4YTIgMiAwIDAgMC0xLjQzOCAxLjQzNWwtMS41NzkgNi4xMjZhLjUuNSAwIDAgMS0uOTQ3LjA2M3oifV1dLF9KdD1bWyJwYXRoIix7ZDoiTTIuMDM0IDIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQ0TDguMjA0IDcuNTQ1YTEgMSAwIDAgMC0uNjYuNjZsLTEuMDY2IDMuNDQzYS41LjUgMCAwIDEtLjk0NC4wMzN6In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTYiLHI6IjYifV0sWyJwYXRoIix7ZDoibTExLjggMTEuOCA4LjQgOC40In1dXSxMSnQ9W1sicGF0aCIse2Q6Ik0xNCA0LjEgMTIgNiJ9XSxbInBhdGgiLHtkOiJtNS4xIDgtMi45LS44In1dLFsicGF0aCIse2Q6Im02IDEyLTEuOSAyIn1dLFsicGF0aCIse2Q6Ik03LjIgMi4yIDggNS4xIn1dLFsicGF0aCIse2Q6Ik05LjAzNyA5LjY5YS40OTguNDk4IDAgMCAxIC42NTMtLjY1M2wxMSA0LjVhLjUuNSAwIDAgMS0uMDc0Ljk0OWwtNC4zNDkgMS4wNDFhMSAxIDAgMCAwLS43NC43MzlsLTEuMDQgNC4zNWEuNS41IDAgMCAxLS45NS4wNzR6In1dXSxBSnQ9W1sicGF0aCIse2Q6Ik0xMi41ODYgMTIuNTg2IDE5IDE5In1dLFsicGF0aCIse2Q6Ik0zLjY4OCAzLjAzN2EuNDk3LjQ5NyAwIDAgMC0uNjUxLjY1MWw2LjUgMTUuOTk5YS41MDEuNTAxIDAgMCAwIC45NDctLjA2MmwxLjU2OS02LjA4M2EyIDIgMCAwIDEgMS40NDgtMS40NzlsNi4xMjQtMS41NzlhLjUuNSAwIDAgMCAuMDYzLS45NDd6In1dXSxESnQ9W1sicmVjdCIse3g6IjUiLHk6IjIiLHdpZHRoOiIxNCIsaGVpZ2h0OiIyMCIscng6IjcifV0sWyJwYXRoIix7ZDoiTTEyIDZ2NCJ9XV0sX0k9W1sicGF0aCIse2Q6Ik01IDN2MTZoMTYifV0sWyJwYXRoIix7ZDoibTUgMTkgNi02In1dLFsicGF0aCIse2Q6Im0yIDYgMy0zIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTggMTYgMyAzLTMgMyJ9XV0sRUp0PVtbInBhdGgiLHtkOiJNMTkgMTN2NmgtNiJ9XSxbInBhdGgiLHtkOiJNNSAxMVY1aDYifV0sWyJwYXRoIix7ZDoibTUgNSAxNCAxNCJ9XV0sJEp0PVtbInBhdGgiLHtkOiJNMTEgMTlINXYtNiJ9XSxbInBhdGgiLHtkOiJNMTMgNWg2djYifV0sWyJwYXRoIix7ZDoiTTE5IDUgNSAxOSJ9XV0sSUp0PVtbInBhdGgiLHtkOiJNMTEgMTlINVYxMyJ9XSxbInBhdGgiLHtkOiJNMTkgNUw1IDE5In1dXSxQSnQ9W1sicGF0aCIse2Q6Ik0xOSAxM1YxOUgxMyJ9XSxbInBhdGgiLHtkOiJNNSA1TDE5IDE5In1dXSxOSnQ9W1sicGF0aCIse2Q6Ik04IDE4TDEyIDIyTDE2IDE4In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXSxGSnQ9W1sicGF0aCIse2Q6Im0xOCA4IDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoibTYgOC00IDQgNCA0In1dXSxPSnQ9W1sicGF0aCIse2Q6Ik02IDhMMiAxMkw2IDE2In1dLFsicGF0aCIse2Q6Ik0yIDEySDIyIn1dXSxSSnQ9W1sicGF0aCIse2Q6Ik0xOCA4TDIyIDEyTDE4IDE2In1dLFsicGF0aCIse2Q6Ik0yIDEySDIyIn1dXSxCSnQ9W1sicGF0aCIse2Q6Ik01IDExVjVIMTEifV0sWyJwYXRoIix7ZDoiTTUgNUwxOSAxOSJ9XV0sSEp0PVtbInBhdGgiLHtkOiJNMTMgNUgxOVYxMSJ9XSxbInBhdGgiLHtkOiJNMTkgNUw1IDE5In1dXSxxSnQ9W1sicGF0aCIse2Q6Ik04IDZMMTIgMkwxNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAyVjIyIn1dXSxqSnQ9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Im04IDE4IDQgNCA0LTQifV0sWyJwYXRoIix7ZDoibTggNiA0LTQgNCA0In1dXSxWSnQ9W1sicGF0aCIse2Q6Ik0xMiAydjIwIn1dLFsicGF0aCIse2Q6Im0xNSAxOS0zIDMtMy0zIn1dLFsicGF0aCIse2Q6Im0xOSA5IDMgMy0zIDMifV0sWyJwYXRoIix7ZDoiTTIgMTJoMjAifV0sWyJwYXRoIix7ZDoibTUgOS0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Im05IDUgMy0zIDMgMyJ9XV0sVUp0PVtbImNpcmNsZSIse2N4OiI4IixjeToiMTgiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE4VjJsNyA0In1dXSxXSnQ9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTgiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTE2IDE4VjIifV1dLEdKdD1bWyJwYXRoIix7ZDoiTTkgMThWNWwxMi0ydjEzIn1dLFsicGF0aCIse2Q6Im05IDkgMTItMiJ9XSxbImNpcmNsZSIse2N4OiI2IixjeToiMTgiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxNiIscjoiMyJ9XV0sWUp0PVtbInBhdGgiLHtkOiJNOSAxOFY1bDEyLTJ2MTMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTYiLHI6IjMifV1dLFpKdD1bWyJwYXRoIix7ZDoiTTkuMzEgOS4zMSA1IDIxbDctNCA3IDQtMS4xNy0zLjE3In1dLFsicGF0aCIse2Q6Ik0xNC41MyA4Ljg4IDEyIDJsLTEuMTcgMy4xNyJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxYSnQ9W1sicG9seWdvbiIse3BvaW50czoiMTIgMiAxOSAyMSAxMiAxNyA1IDIxIDEyIDIifV1dLFFKdD1bWyJwb2x5Z29uIix7cG9pbnRzOiIzIDExIDIyIDIgMTMgMjEgMTEgMTMgMyAxMSJ9XV0sSkp0PVtbInBhdGgiLHtkOiJNOC40MyA4LjQzIDMgMTFsOCAyIDIgOCAyLjU3LTUuNDMifV0sWyJwYXRoIix7ZDoiTTE3LjM5IDExLjczIDIyIDJsLTkuNzMgNC42MSJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxLSnQ9W1sicmVjdCIse3g6IjE2Iix5OiIxNiIsd2lkdGg6IjYiLGhlaWdodDoiNiIscng6IjEifV0sWyJyZWN0Iix7eDoiMiIseToiMTYiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjkiLHk6IjIiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik01IDE2di0zYTEgMSAwIDAgMSAxLTFoMTJhMSAxIDAgMCAxIDEgMXYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxMlY4In1dXSxlS3Q9W1sicGF0aCIse2Q6Ik0xNSAxOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTggMTRoLTgifV0sWyJwYXRoIix7ZDoiTTQgMjJoMTZhMiAyIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJIOGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMS00IDB2LTlhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjQiLHg6IjEwIix5OiI2IixyeDoiMSJ9XV0sdEt0PVtbInBhdGgiLHtkOiJNNiA4LjMyYTcuNDMgNy40MyAwIDAgMSAwIDcuMzYifV0sWyJwYXRoIix7ZDoiTTkuNDYgNi4yMWExMS43NiAxMS43NiAwIDAgMSAwIDExLjU4In1dLFsicGF0aCIse2Q6Ik0xMi45MSA0LjFhMTUuOTEgMTUuOTEgMCAwIDEgLjAxIDE1LjgifV0sWyJwYXRoIix7ZDoiTTE2LjM3IDJhMjAuMTYgMjAuMTYgMCAwIDEgMCAyMCJ9XV0sckt0PVtbInBhdGgiLHtkOiJNMTIgMnYxMCJ9XSxbInBhdGgiLHtkOiJtOC41IDQgNyA0In1dLFsicGF0aCIse2Q6Im04LjUgOCA3LTQifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNyIscjoiNSJ9XV0saUt0PVtbInBhdGgiLHtkOiJNMTMuNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTcuNCJ9XSxbInBhdGgiLHtkOiJNMiA2aDQifV0sWyJwYXRoIix7ZDoiTTIgMTBoNCJ9XSxbInBhdGgiLHtkOiJNMiAxNGg0In1dLFsicGF0aCIse2Q6Ik0yIDE4aDQifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCA1LjYyNmExIDEgMCAxIDAtMy4wMDQtMy4wMDRsLTUuMDEgNS4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dXSxhS3Q9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAydjIwIn1dLFsicGF0aCIse2Q6Ik0xNSA3aDUifV0sWyJwYXRoIix7ZDoiTTE1IDEyaDUifV0sWyJwYXRoIix7ZDoiTTE1IDE3aDUifV1dLG5LdD1bWyJwYXRoIix7ZDoiTTIgNmg0In1dLFsicGF0aCIse2Q6Ik0yIDEwaDQifV0sWyJwYXRoIix7ZDoiTTIgMTRoNCJ9XSxbInBhdGgiLHtkOiJNMiAxOGg0In1dLFsicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkuNSA4aDUifV0sWyJwYXRoIix7ZDoiTTkuNSAxMkgxNiJ9XSxbInBhdGgiLHtkOiJNOS41IDE2SDE0In1dXSxvS3Q9W1sicGF0aCIse2Q6Ik0yIDZoNCJ9XSxbInBhdGgiLHtkOiJNMiAxMGg0In1dLFsicGF0aCIse2Q6Ik0yIDE0aDQifV0sWyJwYXRoIix7ZDoiTTIgMThoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNiAydjIwIn1dXSxzS3Q9W1sicGF0aCIse2Q6Ik04IDJ2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Ik0xNiAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDRoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIwIDEydjIifV0sWyJwYXRoIix7ZDoiTTIwIDE4djJhMiAyIDAgMCAxLTIgMmgtMSJ9XSxbInBhdGgiLHtkOiJNMTMgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjJINmEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik00IDE0di0yIn1dLFsicGF0aCIse2Q6Ik00IDhWNmEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTggMTBoNiJ9XSxbInBhdGgiLHtkOiJNOCAxNGg4In1dLFsicGF0aCIse2Q6Ik04IDE4aDUifV1dLGxLdD1bWyJwYXRoIix7ZDoiTTggMnY0In1dLFsicGF0aCIse2Q6Ik0xMiAydjQifV0sWyJwYXRoIix7ZDoiTTE2IDJ2NCJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiMTgiLHg6IjQiLHk6IjQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDEwaDYifV0sWyJwYXRoIix7ZDoiTTggMTRoOCJ9XSxbInBhdGgiLHtkOiJNOCAxOGg1In1dXSxjS3Q9W1sicGF0aCIse2Q6Ik0xMiA0VjIifV0sWyJwYXRoIix7ZDoiTTUgMTB2NGE3LjAwNCA3LjAwNCAwIDAgMCA1LjI3NyA2Ljc4N2MuNDEyLjEwNC44MDIuMjkyIDEuMTAyLjU5MkwxMiAyMmwuNjIxLS42MjFjLjMtLjMuNjktLjQ4OCAxLjEwMi0uNTkyQTcuMDAzIDcuMDAzIDAgMCAwIDE5IDE0di00In1dLFsicGF0aCIse2Q6Ik0xMiA0QzggNCA0LjUgNiA0IDhjLS4yNDMuOTctLjkxOSAxLjk1Mi0yIDMgMS4zMS0uMDgyIDEuOTcyLS4yOSAzLTEgLjU0LjkyLjk4MiAxLjM1NiAyIDIgMS40NTItLjY0NyAxLjk1NC0xLjA5OCAyLjUtMiAuNTk1Ljk5NSAxLjE1MSAxLjQyNyAyLjUgMiAxLjMxLS42MjEgMS44NjItMS4wNTggMi41LTIgLjYyOS45NzcgMS4xNjIgMS40MjMgMi41IDIgMS4yMDktLjU0OCAxLjY4LS45NjcgMi0yIDEuMDMyLjkxNiAxLjY4MyAxLjE1NyAzIDEtMS4yOTctMS4wMzYtMS43NTgtMi4wMy0yLTMtLjUtMi00LTQtOC00WiJ9XV0sZEt0PVtbInBhdGgiLHtkOiJNMTIgNFYyIn1dLFsicGF0aCIse2Q6Ik01IDEwdjRhNy4wMDQgNy4wMDQgMCAwIDAgNS4yNzcgNi43ODdjLjQxMi4xMDQuODAyLjI5MiAxLjEwMi41OTJMMTIgMjJsLjYyMS0uNjIxYy4zLS4zLjY5LS40ODggMS4xMDItLjU5MmE3LjAxIDcuMDEgMCAwIDAgNC4xMjUtMi45MzkifV0sWyJwYXRoIix7ZDoiTTE5IDEwdjMuMzQzIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmMtMS4zNDktLjU3My0xLjkwNS0xLjAwNS0yLjUtMi0uNTQ2LjkwMi0xLjA0OCAxLjM1My0yLjUgMi0xLjAxOC0uNjQ0LTEuNDYtMS4wOC0yLTItMS4wMjguNzEtMS42OS45MTgtMyAxIDEuMDgxLTEuMDQ4IDEuNzU3LTIuMDMgMi0zIC4xOTQtLjc3Ni44NC0xLjU1MSAxLjc5LTIuMjFtMTEuNjU0IDUuOTk3Yy44ODctLjQ1NyAxLjI4LS44OTEgMS41NTYtMS43ODcgMS4wMzIuOTE2IDEuNjgzIDEuMTU3IDMgMS0xLjI5Ny0xLjAzNi0xLjc1OC0yLjAzLTItMy0uNS0yLTQtNC04LTQtLjc0IDAtMS40NjEuMDY4LTIuMTUuMTkyIn1dLFsibGluZSIse3gxOiIyIix4MjoiMjIiLHkxOiIyIix5MjoiMjIifV1dLExJPVtbInBhdGgiLHtkOiJNMTIgMTZoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiA4djQifV0sWyJwYXRoIix7ZDoiTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6In1dXSx1S3Q9W1sicGF0aCIse2Q6Ik0yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dXSxBST1bWyJwYXRoIix7ZDoiTTEwIDE1VjkifV0sWyJwYXRoIix7ZDoiTTE0IDE1VjkifV0sWyJwYXRoIix7ZDoiTTIuNTg2IDE2LjcyNkEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJoNi42MjRhMiAyIDAgMCAxIDEuNDE0LjU4Nmw0LjY4OCA0LjY4OEEyIDIgMCAwIDEgMjIgOC42ODh2Ni42MjRhMiAyIDAgMCAxLS41ODYgMS40MTRsLTQuNjg4IDQuNjg4YTIgMiAwIDAgMS0xLjQxNC41ODZIOC42ODhhMiAyIDAgMCAxLTEuNDE0LS41ODZ6In1dXSxEST1bWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik0yLjU4NiAxNi43MjZBMiAyIDAgMCAxIDIgMTUuMzEyVjguNjg4YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQuNjg4LTQuNjg4QTIgMiAwIDAgMSA4LjY4OCAyaDYuNjI0YTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2eiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV0scEt0PVtbInBhdGgiLHtkOiJNMi41ODYgMTYuNzI2QTIgMiAwIDAgMSAyIDE1LjMxMlY4LjY4OGEyIDIgMCAwIDEgLjU4Ni0xLjQxNGw0LjY4OC00LjY4OEEyIDIgMCAwIDEgOC42ODggMmg2LjYyNGEyIDIgMCAwIDEgMS40MTQuNTg2bDQuNjg4IDQuNjg4QTIgMiAwIDAgMSAyMiA4LjY4OHY2LjYyNGEyIDIgMCAwIDEtLjU4NiAxLjQxNGwtNC42ODggNC42ODhhMiAyIDAgMCAxLTEuNDE0LjU4Nkg4LjY4OGEyIDIgMCAwIDEtMS40MTQtLjU4NnoifV1dLGhLdD1bWyJwYXRoIix7ZDoiTTMgMjBoNC41YS41LjUgMCAwIDAgLjUtLjV2LS4yODJhLjUyLjUyIDAgMCAwLS4yNDctLjQzNyA4IDggMCAxIDEgOC40OTQtLjAwMS41Mi41MiAwIDAgMC0uMjQ3LjQzOHYuMjgyYS41LjUgMCAwIDAgLjUuNUgyMSJ9XV0sZkt0PVtbInBhdGgiLHtkOiJNMjAuMzQxIDYuNDg0QTEwIDEwIDAgMCAxIDEwLjI2NiAyMS44NSJ9XSxbInBhdGgiLHtkOiJNMy42NTkgMTcuNTE2QTEwIDEwIDAgMCAxIDEzLjc0IDIuMTUyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI1IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMiJ9XV0sbUt0PVtbInBhdGgiLHtkOiJNMyAzaDZsNiAxOGg2In1dLFsicGF0aCIse2Q6Ik0xNCAzaDcifV1dLGdLdD1bWyJwYXRoIix7ZDoiTTEyIDEyVjRhMSAxIDAgMCAxIDEtMWg2LjI5N2ExIDEgMCAwIDEgLjY1MSAxLjc1OWwtNC42OTYgNC4wMjUifV0sWyJwYXRoIix7ZDoibTEyIDIxLTcuNDE0LTcuNDE0QTIgMiAwIDAgMSA0IDEyLjE3MlY2LjQxNWExLjAwMiAxLjAwMiAwIDAgMSAxLjcwNy0uNzA3TDIwIDIwLjAwOSJ9XSxbInBhdGgiLHtkOiJtMTIuMjE0IDMuMzgxIDguNDE0IDE0Ljk2NmExIDEgMCAwIDEtLjE2NyAxLjE5OWwtMS4xNjggMS4xNjNhMSAxIDAgMCAxLS43MDYuMjkxSDYuMzUxYTEgMSAwIDAgMS0uNjI1LS4yMTlMMy4yNSAxOC44YTEgMSAwIDAgMSAuNjMxLTEuNzgxbDQuMTY1LjAyNyJ9XV0sYkt0PVtbInBhdGgiLHtkOiJNMTIgM3Y2In1dLFsicGF0aCIse2Q6Ik0xNi43NiAzYTIgMiAwIDAgMSAxLjggMS4xbDIuMjMgNC40NzlhMiAyIDAgMCAxIC4yMS44OTFWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOS40NzJhMiAyIDAgMCAxIC4yMTEtLjg5NEw1LjQ1IDQuMUEyIDIgMCAwIDEgNy4yNCAzeiJ9XSxbInBhdGgiLHtkOiJNMy4wNTQgOS4wMTNoMTcuODkzIn1dXSx2S3Q9W1sicGF0aCIse2Q6Im0xNiAxNiAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dXSx4S3Q9W1sicGF0aCIse2Q6Ik0xNiAxNmg2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsMi0xLjE0In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV0sWyJwb2x5bGluZSIse3BvaW50czoiMy4yOSA3IDEyIDEyIDIwLjcxIDcifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIyMiIseTI6IjEyIn1dXSx5S3Q9W1sicGF0aCIse2Q6Ik0xMiAyMnYtOSJ9XSxbInBhdGgiLHtkOiJNMTUuMTcgMi4yMWExLjY3IDEuNjcgMCAwIDEgMS42MyAwTDIxIDQuNTdhMS45MyAxLjkzIDAgMCAxIDAgMy4zNkw4LjgyIDE0Ljc5YTEuNjU1IDEuNjU1IDAgMCAxLTEuNjQgMEwzIDEyLjQzYTEuOTMgMS45MyAwIDAgMSAwLTMuMzZ6In1dLFsicGF0aCIse2Q6Ik0yMCAxM3YzLjg3YTIuMDYgMi4wNiAwIDAgMS0xLjExIDEuODNsLTYgMy4wOGExLjkzIDEuOTMgMCAwIDEtMS43OCAwbC02LTMuMDhBMi4wNiAyLjA2IDAgMCAxIDQgMTYuODdWMTMifV0sWyJwYXRoIix7ZDoiTTIxIDEyLjQzYTEuOTMgMS45MyAwIDAgMCAwLTMuMzZMOC44MyAyLjJhMS42NCAxLjY0IDAgMCAwLTEuNjMgMEwzIDQuNTdhMS45MyAxLjkzIDAgMCAwIDAgMy4zNmwxMi4xOCA2Ljg2YTEuNjM2IDEuNjM2IDAgMCAwIDEuNjMgMHoifV1dLHdLdD1bWyJwYXRoIix7ZDoiTTE2IDE2aDYifV0sWyJwYXRoIix7ZDoiTTE5IDEzdjYifV0sWyJwYXRoIix7ZDoiTTIxIDEwVjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGwyLTEuMTQifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDkgNS4xNSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTIifV1dLE1LdD1bWyJwYXRoIix7ZDoiTTIxIDEwVjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGwyLTEuMTQifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDkgNS4xNSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTIifV0sWyJjaXJjbGUiLHtjeDoiMTguNSIsY3k6IjE1LjUiLHI6IjIuNSJ9XSxbInBhdGgiLHtkOiJNMjAuMjcgMTcuMjcgMjIgMTkifV1dLGtLdD1bWyJwYXRoIix7ZDoiTTIxIDEwVjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M2w3IDRhMiAyIDAgMCAwIDIgMGwyLTEuMTQifV0sWyJwYXRoIix7ZDoibTcuNSA0LjI3IDkgNS4xNSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIzLjI5IDcgMTIgMTIgMjAuNzEgNyJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjIyIix5MjoiMTIifV0sWyJwYXRoIix7ZDoibTE3IDEzIDUgNW0tNSAwIDUtNSJ9XV0sU0t0PVtbInBhdGgiLHtkOiJNMTEgMjEuNzNhMiAyIDAgMCAwIDIgMGw3LTRBMiAyIDAgMCAwIDIxIDE2VjhhMiAyIDAgMCAwLTEtMS43M2wtNy00YTIgMiAwIDAgMC0yIDBsLTcgNEEyIDIgMCAwIDAgMyA4djhhMiAyIDAgMCAwIDEgMS43M3oifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjEyIn1dLFsicG9seWxpbmUiLHtwb2ludHM6IjMuMjkgNyAxMiAxMiAyMC43MSA3In1dLFsicGF0aCIse2Q6Im03LjUgNC4yNyA5IDUuMTUifV1dLHpLdD1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjYiLHg6IjIiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMCAxNnYtMmEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTIifV0sWyJyZWN0Iix7d2lkdGg6IjQiLGhlaWdodDoiNiIseDoiOCIseToiMTYiLHJ4OiIxIn1dXSxDS3Q9W1sicGF0aCIse2Q6Ik0xMSA3IDYgMiJ9XSxbInBhdGgiLHtkOiJNMTguOTkyIDEySDIuMDQxIn1dLFsicGF0aCIse2Q6Ik0yMS4xNDUgMTguMzhBMy4zNCAzLjM0IDAgMCAxIDIwIDE2LjVhMy4zIDMuMyAwIDAgMS0xLjE0NSAxLjg4Yy0uNTc1LjQ2LS44NTUgMS4wMi0uODU1IDEuNTk1QTIgMiAwIDAgMCAyMCAyMmEyIDIgMCAwIDAgMi0yLjAyNWMwLS41OC0uMjg1LTEuMTMtLjg1NS0xLjU5NSJ9XSxbInBhdGgiLHtkOiJtOC41IDQuNSAyLjE0OC0yLjE0OGExLjIwNSAxLjIwNSAwIDAgMSAxLjcwNCAwbDcuMjk2IDcuMjk2YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTcuNTkyIDcuNTkyYTMuNjE1IDMuNjE1IDAgMCAxLTUuMTEyIDBsLTMuODg4LTMuODg4YTMuNjE1IDMuNjE1IDAgMCAxIDAtNS4xMTJMNS42NyA3LjMzIn1dXSxFST1bWyJwYXRoIix7ZDoiTTEwIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnY0In1dLFsicGF0aCIse2Q6Ik0xNyAyYTEgMSAwIDAgMSAxIDF2OUg2VjNhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTYgMTJhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDAgMCAyIDJoMmExIDEgMCAwIDEgMSAxdjIuOWEyIDIgMCAxIDAgNCAwVjE3YTEgMSAwIDAgMSAxLTFoMmEyIDIgMCAwIDAgMi0ydi0xYTEgMSAwIDAgMC0xLTEifV1dLFRLdD1bWyJwYXRoIix7ZDoibTE0LjYyMiAxNy44OTctMTAuNjgtMi45MTMifV0sWyJwYXRoIix7ZDoiTTE4LjM3NiAyLjYyMmExIDEgMCAxIDEgMy4wMDIgMy4wMDJMMTcuMzYgOS42NDNhLjUuNSAwIDAgMCAwIC43MDdsLjk0NC45NDRhMi40MSAyLjQxIDAgMCAxIDAgMy40MDhsLS45NDQuOTQ0YS41LjUgMCAwIDEtLjcwNyAwTDguMzU0IDcuMzQ4YS41LjUgMCAwIDEgMC0uNzA3bC45NDQtLjk0NGEyLjQxIDIuNDEgMCAwIDEgMy40MDggMGwuOTQ0Ljk0NGEuNS41IDAgMCAwIC43MDcgMHoifV0sWyJwYXRoIix7ZDoiTTkgOGMtMS44MDQgMi43MS0zLjk3IDMuNDYtNi41ODMgMy45NDhhLjUwNy41MDcgMCAwIDAtLjMwMi44MTlsNy4zMiA4Ljg4M2ExIDEgMCAwIDAgMS4xODUuMjA0QzEyLjczNSAyMC40MDUgMTYgMTYuNzkyIDE2IDE1In1dXSxfS3Q9W1sicGF0aCIse2Q6Ik0xMiAyMmExIDEgMCAwIDEgMC0yMCAxMCA5IDAgMCAxIDEwIDkgNSA1IDAgMCAxLTUgNWgtMi4yNWExLjc1IDEuNzUgMCAwIDAtMS40IDIuOGwuMy40YTEuNzUgMS43NSAwIDAgMS0xLjQgMi44eiJ9XSxbImNpcmNsZSIse2N4OiIxMy41IixjeToiNi41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjE3LjUiLGN5OiIxMC41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsiY2lyY2xlIix7Y3g6IjYuNSIsY3k6IjEyLjUiLHI6Ii41IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJjaXJjbGUiLHtjeDoiOC41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXSxMS3Q9W1sicGF0aCIse2Q6Ik0xMS4yNSAxNy4yNWgxLjVMMTIgMTh6In1dLFsicGF0aCIse2Q6Im0xNSAxMiAyIDIifV0sWyJwYXRoIix7ZDoiTTE4IDYuNWEuNS41IDAgMCAwLS41LS41In1dLFsicGF0aCIse2Q6Ik0yMC42OSA5LjY3YTQuNSA0LjUgMCAxIDAtNy4wNC01LjUgOC4zNSA4LjM1IDAgMCAwLTMuMyAwIDQuNSA0LjUgMCAxIDAtNy4wNCA1LjVDMi40OSAxMS4yIDIgMTIuODggMiAxNC41IDIgMTkuNDcgNi40OCAyMiAxMiAyMnMxMC0yLjUzIDEwLTcuNWMwLTEuNjItLjQ4LTMuMy0xLjMtNC44MyJ9XSxbInBhdGgiLHtkOiJNNiA2LjVhLjQ5NS40OTUgMCAwIDEgLjUtLjUifV0sWyJwYXRoIix7ZDoibTkgMTItMiAyIn1dXSxBS3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoibTE1IDgtMyAzLTMtMyJ9XV0sJEk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE0IDE1aDEifV0sWyJwYXRoIix7ZDoiTTE5IDE1aDIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMiJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxIn1dXSxES3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoibTkgMTAgMy0zIDMgMyJ9XV0sRUt0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dXSxJST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dLFsicGF0aCIse2Q6Im0xNiAxNS0zLTMgMy0zIn1dXSxQST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxNHYxIn1dLFsicGF0aCIse2Q6Ik05IDE5djIifV0sWyJwYXRoIix7ZDoiTTkgM3YyIn1dLFsicGF0aCIse2Q6Ik05IDl2MSJ9XV0sTkk9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTQgOSAzIDMtMyAzIn1dXSwkS3Q9W1sicGF0aCIse2Q6Ik0xNSAxMFY5In1dLFsicGF0aCIse2Q6Ik0xNSAxNXYtMSJ9XSxbInBhdGgiLHtkOiJNMTUgMjF2LTIifV0sWyJwYXRoIix7ZDoiTTE1IDVWMyJ9XSxbInBhdGgiLHtkOiJNOSAxMFY5In1dLFsicGF0aCIse2Q6Ik05IDE1di0xIn1dLFsicGF0aCIse2Q6Ik05IDIxdi0yIn1dLFsicGF0aCIse2Q6Ik05IDVWMyJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxGST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSAzdjE4In1dXSxJS3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE1IDN2MTgifV0sWyJwYXRoIix7ZDoibTggOSAzIDMtMyAzIn1dXSxPST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMTUgMTl2MiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YyIn1dLFsicGF0aCIse2Q6Ik0xNSA5djEifV1dLFBLdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTAgMTUtMy0zIDMtMyJ9XV0sTkt0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXSxGS3Q9W1sicGF0aCIse2Q6Ik0xNCAxNWgxIn1dLFsicGF0aCIse2Q6Ik0xNCA5aDEifV0sWyJwYXRoIix7ZDoiTTE5IDE1aDIifV0sWyJwYXRoIix7ZDoiTTE5IDloMiJ9XSxbInBhdGgiLHtkOiJNMyAxNWgyIn1dLFsicGF0aCIse2Q6Ik0zIDloMiJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSxPS3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInBhdGgiLHtkOiJtOSAxNiAzLTMgMyAzIn1dXSxSST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTQgOWgxIn1dLFsicGF0aCIse2Q6Ik0xOSA5aDIifV0sWyJwYXRoIix7ZDoiTTMgOWgyIn1dLFsicGF0aCIse2Q6Ik05IDloMSJ9XV0sUkt0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJwYXRoIix7ZDoibTE1IDE0LTMgMy0zLTMifV1dLEJLdD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dXSxIS3Q9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTkgM3YxOCJ9XSxbInBhdGgiLHtkOiJNOSAxNWgxMiJ9XV0scUt0PVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDE1aDEyIn1dLFsicGF0aCIse2Q6Ik0xNSAzdjE4In1dXSxCST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik05IDIxVjkifV1dLGpLdD1bWyJwYXRoIix7ZDoibTE2IDYtOC40MTQgOC41ODZhMiAyIDAgMCAwIDIuODI5IDIuODI5bDguNDE0LTguNTg2YTQgNCAwIDEgMC01LjY1Ny01LjY1N2wtOC4zNzkgOC41NTFhNiA2IDAgMSAwIDguNDg1IDguNDg1bDguMzc5LTguNTUxIn1dXSxWS3Q9W1sicGF0aCIse2Q6Ik04IDIxcy00LTMtNC05IDQtOSA0LTkifV0sWyJwYXRoIix7ZDoiTTE2IDNzNCAzIDQgOS00IDktNCA5In1dXSxVS3Q9W1sicGF0aCIse2Q6Ik0xMSAxNWgyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYzIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dLFsicGF0aCIse2Q6Ik0xNS4yODIgMTlhMSAxIDAgMCAwIC45NDgtLjY4bDIuMzctNi45ODhhNyA3IDAgMSAwLTEzLjIgMGwyLjM3IDYuOTg4YTEgMSAwIDAgMCAuOTQ4LjY4eiJ9XSxbInBhdGgiLHtkOiJNOSA5YTMgMyAwIDEgMSA2IDAifV1dLFdLdD1bWyJwYXRoIix7ZDoiTTUuOCAxMS4zIDIgMjJsMTAuNy0zLjc5In1dLFsicGF0aCIse2Q6Ik00IDNoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMiA4aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTUgMmguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJtMjIgMi0yLjI0Ljc1YTIuOSAyLjkgMCAwIDAtMS45NiAzLjEyYy4xLjg2LS41NyAxLjYzLTEuNDUgMS42M2gtLjM4Yy0uODYgMC0xLjYuNi0xLjc2IDEuNDRMMTQgMTAifV0sWyJwYXRoIix7ZDoibTIyIDEzLS44Mi0uMzNjLS44Ni0uMzQtMS44Mi4yLTEuOTggMS4xMWMtLjExLjctLjcyIDEuMjItMS40MyAxLjIySDE3In1dLFsicGF0aCIse2Q6Im0xMSAyIC4zMy44MmMuMzQuODYtLjIgMS44Mi0xLjExIDEuOThDOS41MiA0LjkgOSA1LjUyIDkgNi4yM1Y3In1dLFsicGF0aCIse2Q6Ik0xMSAxM2MxLjkzIDEuOTMgMi44MyA0LjE3IDIgNS0uODMuODMtMy4wNy0uMDctNS0yLTEuOTMtMS45My0yLjgzLTQuMTctMi01IC44My0uODMgMy4wNy4wNyA1IDJaIn1dXSxHS3Q9W1sicmVjdCIse3g6IjE0Iix5OiIzIix3aWR0aDoiNSIsaGVpZ2h0OiIxOCIscng6IjEifV0sWyJyZWN0Iix7eDoiNSIseToiMyIsd2lkdGg6IjUiLGhlaWdodDoiMTgiLHJ4OiIxIn1dXSxZS3Q9W1siY2lyY2xlIix7Y3g6IjExIixjeToiNCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjgiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxNiIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOSAxMGE1IDUgMCAwIDEgNSA1djMuNWEzLjUgMy41IDAgMCAxLTYuODQgMS4wNDVRNi41MiAxNy40OCA0LjQ2IDE2Ljg0QTMuNSAzLjUgMCAwIDEgNS41IDEwWiJ9XV0sWkt0PVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMjAiLHg6IjUiLHk6IjIiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xNSAxNGguMDEifV0sWyJwYXRoIix7ZDoiTTkgNmg2In1dLFsicGF0aCIse2Q6Ik05IDEwaDYifV1dLEhJPVtbInBhdGgiLHtkOiJNMTMgMjFoOCJ9XSxbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XV0sWEt0PVtbInBhdGgiLHtkOiJtMTAgMTAtNi4xNTcgNi4xNjJhMiAyIDAgMCAwLS41LjgzM2wtMS4zMjIgNC4zNmEuNS41IDAgMCAwIC42MjIuNjI0bDQuMzU4LTEuMzIzYTIgMiAwIDAgMCAuODMtLjVMMTQgMTMuOTgyIn1dLFsicGF0aCIse2Q6Im0xMi44MjkgNy4xNzIgNC4zNTktNC4zNDZhMSAxIDAgMSAxIDMuOTg2IDMuOTg2bC00LjM1MyA0LjM1MyJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxRS3Q9W1sicGF0aCIse2Q6Ik0xNS43MDcgMjEuMjkzYTEgMSAwIDAgMS0xLjQxNCAwbC0xLjU4Ni0xLjU4NmExIDEgMCAwIDEgMC0xLjQxNGw1LjU4Ni01LjU4NmExIDEgMCAwIDEgMS40MTQgMGwxLjU4NiAxLjU4NmExIDEgMCAwIDEgMCAxLjQxNHoifV0sWyJwYXRoIix7ZDoibTE4IDEzLTEuMzc1LTYuODc0YTEgMSAwIDAgMC0uNzQ2LS43NzZMMy4yMzUgMi4wMjhhMSAxIDAgMCAwLTEuMjA3IDEuMjA3TDUuMzUgMTUuODc5YTEgMSAwIDAgMCAuNzc2Ljc0NkwxMyAxOCJ9XSxbInBhdGgiLHtkOiJtMi4zIDIuMyA3LjI4NiA3LjI4NiJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiIyIn1dXSxxST1bWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV1dLEpLdD1bWyJwYXRoIix7ZDoiTTEzIDIxaDgifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dLFsicGF0aCIse2Q6Ik0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6In1dXSxLS3Q9W1sicGF0aCIse2Q6Im0xMCAxMC02LjE1NyA2LjE2MmEyIDIgMCAwIDAtLjUuODMzbC0xLjMyMiA0LjM2YS41LjUgMCAwIDAgLjYyMi42MjRsNC4zNTgtMS4zMjNhMiAyIDAgMCAwIC44My0uNUwxNCAxMy45ODIifV0sWyJwYXRoIix7ZDoibTEyLjgyOSA3LjE3MiA0LjM1OS00LjM0NmExIDEgMCAxIDEgMy45ODYgMy45ODZsLTQuMzUzIDQuMzUzIn1dLFsicGF0aCIse2Q6Im0xNSA1IDQgNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxlZXI9W1sicGF0aCIse2Q6Ik0xMyA3IDguNyAyLjdhMi40MSAyLjQxIDAgMCAwLTMuNCAwTDIuNyA1LjNhMi40MSAyLjQxIDAgMCAwIDAgMy40TDcgMTMifV0sWyJwYXRoIix7ZDoibTggNiAyLTIifV0sWyJwYXRoIix7ZDoibTE4IDE2IDItMiJ9XSxbInBhdGgiLHtkOiJtMTcgMTEgNC4zIDQuM2MuOTQuOTQuOTQgMi40NiAwIDMuNGwtMi42IDIuNmMtLjk0Ljk0LTIuNDYuOTQtMy40IDBMMTEgMTcifV0sWyJwYXRoIix7ZDoiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3oifV0sWyJwYXRoIix7ZDoibTE1IDUgNCA0In1dXSx0ZXI9W1sicGF0aCIse2Q6Ik0xMC44MyAyLjM4YTIgMiAwIDAgMSAyLjM0IDBsOCA1Ljc0YTIgMiAwIDAgMSAuNzMgMi4yNWwtMy4wNCA5LjI2YTIgMiAwIDAgMS0xLjkgMS4zN0g3LjA0YTIgMiAwIDAgMS0xLjktMS4zN0wyLjEgMTAuMzdhMiAyIDAgMCAxIC43My0yLjI1eiJ9XV0scmVyPVtbInBhdGgiLHtkOiJNMjEuMTc0IDYuODEyYTEgMSAwIDAgMC0zLjk4Ni0zLjk4N0wzLjg0MiAxNi4xNzRhMiAyIDAgMCAwLS41LjgzbC0xLjMyMSA0LjM1MmEuNS41IDAgMCAwIC42MjMuNjIybDQuMzUzLTEuMzJhMiAyIDAgMCAwIC44My0uNDk3eiJ9XSxbInBhdGgiLHtkOiJtMTUgNSA0IDQifV1dLGllcj1bWyJsaW5lIix7eDE6IjE5Iix4MjoiNSIseTE6IjUiLHkyOiIxOSJ9XSxbImNpcmNsZSIse2N4OiI2LjUiLGN5OiI2LjUiLHI6IjIuNSJ9XSxbImNpcmNsZSIse2N4OiIxNy41IixjeToiMTcuNSIscjoiMi41In1dXSxhZXI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMSJ9XSxbInBhdGgiLHtkOiJtOSAyMCAzLTYgMyA2In1dLFsicGF0aCIse2Q6Im02IDggNiAyIDYtMiJ9XSxbInBhdGgiLHtkOiJNMTIgMTB2NCJ9XV0sbmVyPVtbInBhdGgiLHtkOiJNMjAgMTFINCJ9XSxbInBhdGgiLHtkOiJNMjAgN0g0In1dLFsicGF0aCIse2Q6Ik03IDIxVjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAwIDEySDcifV1dLG9lcj1bWyJwYXRoIix7ZDoiTTEzIDJhOSA5IDAgMCAxIDkgOSJ9XSxbInBhdGgiLHtkOiJNMTMgNmE1IDUgMCAwIDEgNSA1In1dLFsicGF0aCIse2Q6Ik0xMy44MzIgMTYuNTY4YTEgMSAwIDAgMCAxLjIxMy0uMzAzbC4zNTUtLjQ2NUEyIDIgMCAwIDEgMTcgMTVoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCA2LjM5MiA2LjM4NCJ9XV0sc2VyPVtbInBhdGgiLHtkOiJNMTQgNmg4In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXSxsZXI9W1sicGF0aCIse2Q6Ik0xNiAydjZoNiJ9XSxbInBhdGgiLHtkOiJtMjIgMi02IDYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXSxjZXI9W1sicGF0aCIse2Q6Im0xNiAyIDYgNiJ9XSxbInBhdGgiLHtkOiJtMjIgMi02IDYifV0sWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXSxkZXI9W1sicGF0aCIse2Q6Ik0xMC4xIDEzLjlhMTQgMTQgMCAwIDAgMy43MzIgMi42NjggMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyIDE4IDE4IDAgMCAxLTEyLjcyOC01LjI3MiJ9XSxbInBhdGgiLHtkOiJNMjIgMiAyIDIyIn1dLFsicGF0aCIse2Q6Ik00Ljc2IDEzLjU4MkExOCAxOCAwIDAgMSAyIDRhMiAyIDAgMCAxIDItMmgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtLjggMS42bC0uNDY4LjM1MWExIDEgMCAwIDAtLjI5MiAxLjIzMyAxNCAxNCAwIDAgMCAuMjQ0LjQ3MyJ9XV0sdWVyPVtbInBhdGgiLHtkOiJtMTYgOCA2LTYifV0sWyJwYXRoIix7ZDoiTTIyIDhWMmgtNiJ9XSxbInBhdGgiLHtkOiJNMTMuODMyIDE2LjU2OGExIDEgMCAwIDAgMS4yMTMtLjMwM2wuMzU1LS40NjVBMiAyIDAgMCAxIDE3IDE1aDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0yIDJBMTggMTggMCAwIDEgMiA0YTIgMiAwIDAgMSAyLTJoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLS44IDEuNmwtLjQ2OC4zNTFhMSAxIDAgMCAwLS4yOTIgMS4yMzMgMTQgMTQgMCAwIDAgNi4zOTIgNi4zODQifV1dLHBlcj1bWyJwYXRoIix7ZDoiTTEzLjgzMiAxNi41NjhhMSAxIDAgMCAwIDEuMjEzLS4zMDNsLjM1NS0uNDY1QTIgMiAwIDAgMSAxNyAxNWgzYTIgMiAwIDAgMSAyIDJ2M2EyIDIgMCAwIDEtMiAyQTE4IDE4IDAgMCAxIDIgNGEyIDIgMCAwIDEgMi0yaDNhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS0uOCAxLjZsLS40NjguMzUxYTEgMSAwIDAgMC0uMjkyIDEuMjMzIDE0IDE0IDAgMCAwIDYuMzkyIDYuMzg0In1dXSxoZXI9W1sibGluZSIse3gxOiI5Iix4MjoiOSIseTE6IjQiLHkyOiIyMCJ9XSxbInBhdGgiLHtkOiJNNCA3YzAtMS43IDEuMy0zIDMtM2gxMyJ9XSxbInBhdGgiLHtkOiJNMTggMjBjLTEuNyAwLTMtMS4zLTMtM1Y0In1dXSxmZXI9W1sicGF0aCIse2Q6Ik0xOC41IDhjLTEuNCAwLTIuNi0uOC0zLjItMkE2Ljg3IDYuODcgMCAwIDAgMiA5djExYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtOC41QzIyIDkuNiAyMC40IDggMTguNSA4In1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik02IDE0djQifV0sWyJwYXRoIix7ZDoiTTEwIDE0djQifV0sWyJwYXRoIix7ZDoiTTE0IDE0djQifV0sWyJwYXRoIix7ZDoiTTE4IDE0djQifV1dLG1lcj1bWyJwYXRoIix7ZDoibTE0IDEzLTguMzgxIDguMzhhMSAxIDAgMCAxLTMuMDAxLTNMMTEgOS45OTkifV0sWyJwYXRoIix7ZDoiTTE1Ljk3MyA0LjAyN0ExMyAxMyAwIDAgMCA1LjkwMiAyLjM3M2MtMS4zOTguMzQyLTEuMDkyIDIuMTU4LjI3NyAyLjYwMWExOS45IDE5LjkgMCAwIDEgNS44MjIgMy4wMjQifV0sWyJwYXRoIix7ZDoiTTE2LjAwMSAxMS45OTlhMTkuOSAxOS45IDAgMCAxIDMuMDI0IDUuODI0Yy40NDQgMS4zNjkgMi4yNiAxLjY3NiAyLjYwMy4yNzhBMTMgMTMgMCAwIDAgMjAgOC4wNjkifV0sWyJwYXRoIix7ZDoiTTE4LjM1MiAzLjM1MmExLjIwNSAxLjIwNSAwIDAgMC0xLjcwNCAwbC01LjI5NiA1LjI5NmExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNS4yOTYtNS4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMC0xLjcwNHoifV1dLGdlcj1bWyJwYXRoIix7ZDoiTTIxIDlWNmEyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMnYxMGMwIDEuMS45IDIgMiAyaDQifV0sWyJyZWN0Iix7d2lkdGg6IjEwIixoZWlnaHQ6IjciLHg6IjEyIix5OiIxMyIscng6IjIifV1dLGJlcj1bWyJwYXRoIix7ZDoiTTExIDE3aDN2MmExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtM2EzLjE2IDMuMTYgMCAwIDAgMi0yaDFhMSAxIDAgMCAwIDEtMXYtMmExIDEgMCAwIDAtMS0xaC0xYTUgNSAwIDAgMC0yLTRWM2E0IDQgMCAwIDAtMy4yIDEuNmwtLjMuNEgxMWE2IDYgMCAwIDAtNiA2djFhNSA1IDAgMCAwIDIgNHYzYTEgMSAwIDAgMCAxIDFoMmExIDEgMCAwIDAgMS0xeiJ9XSxbInBhdGgiLHtkOiJNMTYgMTBoLjAxIn1dLFsicGF0aCIse2Q6Ik0yIDh2MWEyIDIgMCAwIDAgMiAyaDEifV1dLHZlcj1bWyJwYXRoIix7ZDoiTTIgMTBoNlY0In1dLFsicGF0aCIse2Q6Im0yIDQgNiA2In1dLFsicGF0aCIse2Q6Ik0yMSAxMFY3YTIgMiAwIDAgMC0yLTJoLTcifV0sWyJwYXRoIix7ZDoiTTMgMTR2MmEyIDIgMCAwIDAgMiAyaDMifV0sWyJyZWN0Iix7eDoiMTIiLHk6IjE0Iix3aWR0aDoiMTAiLGhlaWdodDoiNyIscng6IjEifV1dLHhlcj1bWyJwYXRoIix7ZDoiTTE0IDN2MTEifV0sWyJwYXRoIix7ZDoiTTE0IDloLTNhMyAzIDAgMCAxIDAtNmg5In1dLFsicGF0aCIse2Q6Ik0xOCAzdjExIn1dLFsicGF0aCIse2Q6Ik0yMiAxOEgybDQtNCJ9XSxbInBhdGgiLHtkOiJtNiAyMi00LTQifV1dLHllcj1bWyJwYXRoIix7ZDoiTTEwIDN2MTEifV0sWyJwYXRoIix7ZDoiTTEwIDlIN2ExIDEgMCAwIDEgMC02aDgifV0sWyJwYXRoIix7ZDoiTTE0IDN2MTEifV0sWyJwYXRoIix7ZDoibTE4IDE0IDQgNEgyIn1dLFsicGF0aCIse2Q6Im0yMiAxOC00IDQifV1dLHdlcj1bWyJwYXRoIix7ZDoiTTEzIDR2MTYifV0sWyJwYXRoIix7ZDoiTTE3IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE5IDRIOS41YTQuNSA0LjUgMCAwIDAgMCA5SDEzIn1dXSxNZXI9W1sicGF0aCIse2Q6Ik0xOCAxMWgtNGExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAwIDEgMWg0In1dLFsicGF0aCIse2Q6Ik02IDd2MTNhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWNyJ9XSxbInJlY3QiLHt3aWR0aDoiMTYiLGhlaWdodDoiNSIseDoiNCIseToiMiIscng6IjEifV1dLGtlcj1bWyJwYXRoIix7ZDoibTEwLjUgMjAuNSAxMC0xMGE0Ljk1IDQuOTUgMCAxIDAtNy03bC0xMCAxMGE0Ljk1IDQuOTUgMCAxIDAgNyA3WiJ9XSxbInBhdGgiLHtkOiJtOC41IDguNSA3IDcifV1dLFNlcj1bWyJwYXRoIix7ZDoiTTEyIDE3djUifV0sWyJwYXRoIix7ZDoiTTE1IDkuMzRWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRINy44OSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik05IDl2MS43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMSJ9XV0semVyPVtbInBhdGgiLHtkOiJNMTIgMTd2NSJ9XSxbInBhdGgiLHtkOiJNOSAxMC43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjRWMTZhMSAxIDAgMCAwIDEgMWgxMmExIDEgMCAwIDAgMS0xdi0uNzZhMiAyIDAgMCAwLTEuMTEtMS43OWwtMS43OC0uOUEyIDIgMCAwIDEgMTUgMTAuNzZWN2ExIDEgMCAwIDEgMS0xIDIgMiAwIDAgMCAwLTRIOGEyIDIgMCAwIDAgMCA0IDEgMSAwIDAgMSAxIDF6In1dXSxDZXI9W1sicGF0aCIse2Q6Im0xMiA5LTguNDE0IDguNDE0QTIgMiAwIDAgMCAzIDE4LjgyOHYxLjM0NGEyIDIgMCAwIDEtLjU4NiAxLjQxNEEyIDIgMCAwIDEgMy44MjggMjFoMS4zNDRhMiAyIDAgMCAwIDEuNDE0LS41ODZMMTUgMTIifV0sWyJwYXRoIix7ZDoibTE4IDkgLjQuNGExIDEgMCAxIDEtMyAzbC0zLjgtMy44YTEgMSAwIDEgMSAzLTNsLjQuNCAzLjQtMy40YTEgMSAwIDEgMSAzIDN6In1dLFsicGF0aCIse2Q6Im0yIDIyIC40MTQtLjQxNCJ9XV0sVGVyPVtbInBhdGgiLHtkOiJtMTIgMTQtMSAxIn1dLFsicGF0aCIse2Q6Im0xMy43NSAxOC4yNS0xLjI1IDEuNDIifV0sWyJwYXRoIix7ZDoiTTE3Ljc3NSA1LjY1NGExNS42OCAxNS42OCAwIDAgMC0xMi4xMjEgMTIuMTIifV0sWyJwYXRoIix7ZDoiTTE4LjggOS4zYTEgMSAwIDAgMCAyLjEgNy43In1dLFsicGF0aCIse2Q6Ik0yMS45NjQgMjAuNzMyYTEgMSAwIDAgMS0xLjIzMiAxLjIzMmwtMTgtNWExIDEgMCAwIDEtLjY5NS0xLjIzMkExOS42OCAxOS42OCAwIDAgMSAxNS43MzIgMi4wMzdhMSAxIDAgMCAxIDEuMjMyLjY5NXoifV1dLF9lcj1bWyJwYXRoIix7ZDoiTTIgMjJoMjAifV0sWyJwYXRoIix7ZDoiTTMuNzcgMTAuNzcgMiA5bDItNC41IDEuMS41NWMuNTUuMjguOS44NC45IDEuNDVzLjM1IDEuMTcuOSAxLjQ1TDggOC41bDMtNiAxLjA1LjUzYTIgMiAwIDAgMSAxLjA5IDEuNTJsLjcyIDUuNGEyIDIgMCAwIDAgMS4wOSAxLjUybDQuNCAyLjJjLjQyLjIyLjc4LjU1IDEuMDEuOTZsLjYgMS4wM2MuNDkuODgtLjA2IDEuOTgtMS4wNiAyLjFsLTEuMTguMTVjLS40Ny4wNi0uOTUtLjAyLTEuMzctLjI0TDQuMjkgMTEuMTVhMiAyIDAgMCAxLS41Mi0uMzhaIn1dXSxMZXI9W1sicGF0aCIse2Q6Ik0yIDIyaDIwIn1dLFsicGF0aCIse2Q6Ik02LjM2IDE3LjQgNCAxN2wtMi00IDEuMS0uNTVhMiAyIDAgMCAxIDEuOCAwbC4xNy4xYTIgMiAwIDAgMCAxLjggMEw4IDEyIDUgNmwuOS0uNDVhMiAyIDAgMCAxIDIuMDkuMmw0LjAyIDNhMiAyIDAgMCAwIDIuMS4ybDQuMTktMi4wNmEyLjQxIDIuNDEgMCAwIDEgMS43My0uMTdMMjEgN2ExLjQgMS40IDAgMCAxIC44NyAxLjk5bC0uMzguNzZjLS4yMy40Ni0uNi44NC0xLjA3IDEuMDhMNy41OCAxNy4yYTIgMiAwIDAgMS0xLjIyLjE4WiJ9XV0sQWVyPVtbInBhdGgiLHtkOiJNMTcuOCAxOS4yIDE2IDExbDMuNS0zLjVDMjEgNiAyMS41IDQgMjEgM2MtMS0uNS0zIDAtNC41IDEuNUwxMyA4IDQuOCA2LjJjLS41LS4xLS45LjEtMS4xLjVsLS4zLjVjLS4yLjUtLjEgMSAuMyAxLjNMOSAxMmwtMiAzSDRsLTEgMSAzIDIgMiAzIDEtMXYtM2wzLTIgMy41IDUuM2MuMy40LjguNSAxLjMuM2wuNS0uMmMuNC0uMy42LS43LjUtMS4yeiJ9XV0sRGVyPVtbInBhdGgiLHtkOiJNNSA1YTIgMiAwIDAgMSAzLjAwOC0xLjcyOGwxMS45OTcgNi45OThhMiAyIDAgMCAxIC4wMDMgMy40NThsLTEyIDdBMiAyIDAgMCAxIDUgMTl6In1dXSxFZXI9W1sicGF0aCIse2Q6Ik05IDJ2NiJ9XSxbInBhdGgiLHtkOiJNMTUgMnY2In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y1In1dLFsicGF0aCIse2Q6Ik01IDhoMTQifV0sWyJwYXRoIix7ZDoiTTYgMTFWOGgxMnYzYTYgNiAwIDEgMS0xMiAwWiJ9XV0sakk9W1sicGF0aCIse2Q6Ik02LjMgMjAuM2EyLjQgMi40IDAgMCAwIDMuNCAwTDEyIDE4bC02LTYtMi4zIDIuM2EyLjQgMi40IDAgMCAwIDAgMy40WiJ9XSxbInBhdGgiLHtkOiJtMiAyMiAzLTMifV0sWyJwYXRoIix7ZDoiTTcuNSAxMy41IDEwIDExIn1dLFsicGF0aCIse2Q6Ik0xMC41IDE2LjUgMTMgMTQifV0sWyJwYXRoIix7ZDoibTE4IDMtNCA0aDZsLTQgNCJ9XV0sJGVyPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE1IDhWMiJ9XSxbInBhdGgiLHtkOiJNMTcgOGExIDEgMCAwIDEgMSAxdjRhNCA0IDAgMCAxLTQgNGgtNGE0IDQgMCAwIDEtNC00VjlhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTkgOFYyIn1dXSxJZXI9W1sicGF0aCIse2Q6Ik01IDEyaDE0In1dLFsicGF0aCIse2Q6Ik0xMiA1djE0In1dXSxQZXI9W1sicGF0aCIse2Q6Ik0zIDJ2MWMwIDEgMiAxIDIgMlMzIDYgMyA3czIgMSAyIDItMiAxLTIgMiAyIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0xOCA2aC4wMSJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTIwLjgzIDguODNhNCA0IDAgMCAwLTUuNjYtNS42NmwtMTIgMTJhNCA0IDAgMSAwIDUuNjYgNS42NloifV0sWyJwYXRoIix7ZDoiTTE4IDExLjY2VjIyYTQgNCAwIDAgMCA0LTRWNiJ9XV0sTmVyPVtbInBhdGgiLHtkOiJNMTMgMTdhMSAxIDAgMSAwLTIgMGwuNSA0LjVhMC41IDAuNSAwIDAgMCAxIDB6IixmaWxsOiJjdXJyZW50Q29sb3IifV0sWyJwYXRoIix7ZDoiTTE2Ljg1IDE4LjU4YTkgOSAwIDEgMC05LjcgMCJ9XSxbInBhdGgiLHtkOiJNOCAxNGE1IDUgMCAxIDEgOCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTEiLHI6IjEiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV0sRmVyPVtbInBhdGgiLHtkOiJNMjAgM2EyIDIgMCAwIDEgMiAydjZhMSAxIDAgMCAxLTIwIDBWNWEyIDIgMCAwIDEgMi0yeiJ9XSxbInBhdGgiLHtkOiJtOCAxMCA0IDQgNC00In1dXSxPZXI9W1sicGF0aCIse2Q6Ik0xMCA0LjVWNGEyIDIgMCAwIDAtMi40MS0xLjk1NyJ9XSxbInBhdGgiLHtkOiJNMTMuOSA4LjRhMiAyIDAgMCAwLTEuMjYtMS4yOTUifV0sWyJwYXRoIix7ZDoiTTIxLjcgMTYuMkE4IDggMCAwIDAgMjIgMTR2LTNhMiAyIDAgMSAwLTQgMHYtMWEyIDIgMCAwIDAtMy42My0xLjE1OCJ9XSxbInBhdGgiLHtkOiJtNyAxNS0xLjgtMS44YTIgMiAwIDAgMC0yLjc5IDIuODZMNiAxOS43YTcuNzQgNy43NCAwIDAgMCA2IDIuM2gyYTggOCAwIDAgMCA1LjY1Ny0yLjM0MyJ9XSxbInBhdGgiLHtkOiJNNiA2djgifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sUmVyPVtbInBhdGgiLHtkOiJNMjIgMTRhOCA4IDAgMCAxLTggOCJ9XSxbInBhdGgiLHtkOiJNMTggMTF2LTFhMiAyIDAgMCAwLTItMmEyIDIgMCAwIDAtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAxMFY5YTIgMiAwIDAgMC0yLTJhMiAyIDAgMCAwLTIgMnYxIn1dLFsicGF0aCIse2Q6Ik0xMCA5LjVWNGEyIDIgMCAwIDAtMi0yYTIgMiAwIDAgMC0yIDJ2MTAifV0sWyJwYXRoIix7ZDoiTTE4IDExYTIgMiAwIDEgMSA0IDB2M2E4IDggMCAwIDEtOCA4aC0yYy0yLjggMC00LjUtLjg2LTUuOTktMi4zNGwtMy42LTMuNmEyIDIgMCAwIDEgMi44My0yLjgyTDcgMTUifV1dLEJlcj1bWyJwYXRoIix7ZDoiTTE4IDhhMiAyIDAgMCAwIDAtNCAyIDIgMCAwIDAtNCAwIDIgMiAwIDAgMC00IDAgMiAyIDAgMCAwLTQgMCAyIDIgMCAwIDAgMCA0In1dLFsicGF0aCIse2Q6Ik0xMCAyMiA5IDgifV0sWyJwYXRoIix7ZDoibTE0IDIyIDEtMTQifV0sWyJwYXRoIix7ZDoiTTIwIDhjLjUgMCAuOS40LjggMWwtMi42IDEyYy0uMS41LS43IDEtMS4yIDFIN2MtLjYgMC0xLjEtLjQtMS4yLTFMMy4yIDljLS4xLS42LjMtMSAuOC0xWiJ9XV0sSGVyPVtbInBhdGgiLHtkOiJNMTguNiAxNC40Yy44LS44LjgtMiAwLTIuOGwtOC4xLTguMWE0Ljk1IDQuOTUgMCAxIDAtNy4xIDcuMWw4LjEgOC4xYy45LjcgMi4xLjcgMi45LS4xWiJ9XSxbInBhdGgiLHtkOiJtMjIgMjItNS41LTUuNSJ9XV0scWVyPVtbInBhdGgiLHtkOiJNMTggN2MwLTUuMzMzLTgtNS4zMzMtOCAwIn1dLFsicGF0aCIse2Q6Ik0xMCA3djE0In1dLFsicGF0aCIse2Q6Ik02IDIxaDEyIn1dLFsicGF0aCIse2Q6Ik02IDEzaDEwIn1dXSxqZXI9W1sicGF0aCIse2Q6Ik0xOC4zNiA2LjY0QTkgOSAwIDAgMSAyMC43NyAxNSJ9XSxbInBhdGgiLHtkOiJNNi4xNiA2LjE2YTkgOSAwIDEgMCAxMi42OCAxMi42OCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY0In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLFZlcj1bWyJwYXRoIix7ZDoiTTEyIDJ2MTAifV0sWyJwYXRoIix7ZDoiTTE4LjQgNi42YTkgOSAwIDEgMS0xMi43Ny4wNCJ9XV0sVWVyPVtbInBhdGgiLHtkOiJNMTMuNSAyMkg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdi41In1dLFsicGF0aCIse2Q6Im0xNiAxOSAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik02IDE4SDRhMiAyIDAgMCAxLTItMnYtNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYifV1dLFdlcj1bWyJwYXRoIix7ZDoiTTIgM2gyMCJ9XSxbInBhdGgiLHtkOiJNMjEgM3YxMWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlYzIn1dLFsicGF0aCIse2Q6Im03IDIxIDUtNSA1IDUifV1dLEdlcj1bWyJwYXRoIix7ZDoiTTEyLjUzMSAyMkg3YTEgMSAwIDAgMS0xLTF2LTZhMSAxIDAgMCAxIDEtMWg2LjM3NyJ9XSxbInBhdGgiLHtkOiJtMTYuNSAxNi41IDUgNSJ9XSxbInBhdGgiLHtkOiJtMTYuNSAyMS41IDUtNSJ9XSxbInBhdGgiLHtkOiJNNiAxOEg0YTIgMiAwIDAgMS0yLTJ2LTVhMiAyIDAgMCAxIDItMmgxNmEyIDIgMCAwIDEgMiAydjEuNSJ9XSxbInBhdGgiLHtkOiJNNiA5VjNhMSAxIDAgMCAxIDEtMWgxMGExIDEgMCAwIDEgMSAxdjYifV1dLFllcj1bWyJwYXRoIix7ZDoiTTYgMThINGEyIDIgMCAwIDEtMi0ydi01YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnY1YTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTYgOVYzYTEgMSAwIDAgMSAxLTFoMTBhMSAxIDAgMCAxIDEgMXY2In1dLFsicmVjdCIse3g6IjYiLHk6IjE0Iix3aWR0aDoiMTIiLGhlaWdodDoiOCIscng6IjEifV1dLFplcj1bWyJwYXRoIix7ZDoiTTUgNyAzIDUifV0sWyJwYXRoIix7ZDoiTTkgNlYzIn1dLFsicGF0aCIse2Q6Im0xMyA3IDItMiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTMiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTExLjgzIDEySDIwYTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMnYtNGEyIDIgMCAwIDEgMi0yaDIuMTcifV0sWyJwYXRoIix7ZDoiTTE2IDE2aDIifV1dLFhlcj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOXYxMSJ9XSxbInBhdGgiLHtkOiJNMiA5aDEzYTIgMiAwIDAgMSAyIDJ2OSJ9XV0sUWVyPVtbInBhdGgiLHtkOiJNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweiJ9XV0sSmVyPVtbInBhdGgiLHtkOiJNMi41IDE2Ljg4YTEgMSAwIDAgMS0uMzItMS40M2w5LTEzLjAyYTEgMSAwIDAgMSAxLjY0IDBsOSAxMy4wMWExIDEgMCAwIDEtLjMyIDEuNDRsLTguNTEgNC44NmEyIDIgMCAwIDEtMS45OCAwWiJ9XSxbInBhdGgiLHtkOiJNMTIgMnYyMCJ9XV0sS2VyPVtbInJlY3QiLHt3aWR0aDoiNSIsaGVpZ2h0OiI1Iix4OiIzIix5OiIzIixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiNSIsaGVpZ2h0OiI1Iix4OiIxNiIseToiMyIscng6IjEifV0sWyJyZWN0Iix7d2lkdGg6IjUiLGhlaWdodDoiNSIseDoiMyIseToiMTYiLHJ4OiIxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNmgtM2EyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIxIDIxdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgN3YzYTIgMiAwIDAgMS0yIDJINyJ9XSxbInBhdGgiLHtkOiJNMyAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTEyIDNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxNnYuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaDEifV0sWyJwYXRoIix7ZDoiTTIxIDEydi4wMSJ9XSxbInBhdGgiLHtkOiJNMTIgMjF2LTEifV1dLGV0cj1bWyJwYXRoIix7ZDoiTTE2IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6In1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDIgMSAxIDAgMCAxIDEgMXYxYTIgMiAwIDAgMS0yIDIgMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDEgNiA2IDAgMCAwIDYtNlY1YTIgMiAwIDAgMC0yLTJ6In1dXSx0dHI9W1sicGF0aCIse2Q6Ik0xMyAxNmEzIDMgMCAwIDEgMi4yNCA1In1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDIxaC04YTQgNCAwIDAgMS00LTQgNyA3IDAgMCAxIDctN2guMkw5LjYgNi40YTEgMSAwIDEgMSAyLjgtMi44TDE1LjggN2guMmMzLjMgMCA2IDIuNyA2IDZ2MWEyIDIgMCAwIDEtMiAyaC0xYTMgMyAwIDAgMC0zIDMifV0sWyJwYXRoIix7ZDoiTTIwIDguNTRWNGEyIDIgMCAxIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTcuNjEyIDEyLjUyNGEzIDMgMCAxIDAtMS42IDQuMyJ9XV0scnRyPVtbInBhdGgiLHtkOiJNMTkuMDcgNC45M0ExMCAxMCAwIDAgMCA2Ljk5IDMuMzQifV0sWyJwYXRoIix7ZDoiTTQgNmguMDEifV0sWyJwYXRoIix7ZDoiTTIuMjkgOS42MkExMCAxMCAwIDEgMCAyMS4zMSA4LjM1In1dLFsicGF0aCIse2Q6Ik0xNi4yNCA3Ljc2QTYgNiAwIDEgMCA4LjIzIDE2LjY3In1dLFsicGF0aCIse2Q6Ik0xMiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTE3Ljk5IDExLjY2QTYgNiAwIDAgMSAxNS43NyAxNi42NyJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dLFsicGF0aCIse2Q6Im0xMy40MSAxMC41OSA1LjY2LTUuNjYifV1dLGl0cj1bWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTQgMTUuNDY0MWE0IDQgMCAwIDEtNCAwTDcuNTI3ODYgMTkuNzQ1OTcgQSAxIDEgMCAwIDAgNy45OTMwMyAyMS4xNjIxMSAxMCAxMCAwIDAgMCAxNi4wMDY5NyAyMS4xNjIxMSAxIDEgMCAwIDAgMTYuNDcyMTQgMTkuNzQ1OTd6In1dLFsicGF0aCIse2Q6Ik0xNiAxMmE0IDQgMCAwIDAtMi0zLjQ2NGwyLjQ3Mi00LjI4MmExIDEgMCAwIDEgMS40Ni0uMzA1IDEwIDEwIDAgMCAxIDQuMDA2IDYuOTRBMSAxIDAgMCAxIDIxIDEyeiJ9XSxbInBhdGgiLHtkOiJNOCAxMmE0IDQgMCAwIDEgMi0zLjQ2NEw3LjUyOCA0LjI1NGExIDEgMCAwIDAtMS40Ni0uMzA1IDEwIDEwIDAgMCAwLTQuMDA2IDYuOTRBMSAxIDAgMCAwIDMgMTJ6In1dXSxhdHI9W1sicGF0aCIse2Q6Ik0zIDEyaDMuMjhhMSAxIDAgMCAxIC45NDguNjg0bDIuMjk4IDcuOTM0YS41LjUgMCAwIDAgLjk2LS4wNDRMMTMuODIgNC43NzFBMSAxIDAgMCAxIDE0Ljc5MiA0SDIxIn1dXSxudHI9W1sicGF0aCIse2Q6Ik01IDE2djIifV0sWyJwYXRoIix7ZDoiTTE5IDE2djIifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xOCAxMmguMDEifV1dLG90cj1bWyJwYXRoIix7ZDoiTTQuOSAxNi4xQzEgMTIuMiAxIDUuOCA0LjkgMS45In1dLFsicGF0aCIse2Q6Ik03LjggNC43YTYuMTQgNi4xNCAwIDAgMC0uOCA3LjUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xNi4yIDQuOGMyIDIgMi4yNiA1LjExLjggNy40NyJ9XSxbInBhdGgiLHtkOiJNMTkuMSAxLjlhOS45NiA5Ljk2IDAgMCAxIDAgMTQuMSJ9XSxbInBhdGgiLHtkOiJNOS41IDE4aDUifV0sWyJwYXRoIix7ZDoibTggMjIgNC0xMSA0IDExIn1dXSxzdHI9W1sicGF0aCIse2Q6Ik0xNi4yNDcgNy43NjFhNiA2IDAgMCAxIDAgOC40NzgifV0sWyJwYXRoIix7ZDoiTTE5LjA3NSA0LjkzM2ExMCAxMCAwIDAgMSAwIDE0LjEzNCJ9XSxbInBhdGgiLHtkOiJNNC45MjUgMTkuMDY3YTEwIDEwIDAgMCAxIDAtMTQuMTM0In1dLFsicGF0aCIse2Q6Ik03Ljc1MyAxNi4yMzlhNiA2IDAgMCAxIDAtOC40NzgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV0sbHRyPVtbInBhdGgiLHtkOiJNMjAuMzQgMTcuNTJhMTAgMTAgMCAxIDAtMi44MiAyLjgyIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMTkiLHI6IjIifV0sWyJwYXRoIix7ZDoibTEzLjQxIDEzLjQxIDQuMTggNC4xOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIyIn1dXSxjdHI9W1sicGF0aCIse2Q6Ik01IDE1aDE0In1dLFsicGF0aCIse2Q6Ik01IDloMTQifV0sWyJwYXRoIix7ZDoibTE0IDIwLTUtNSA2LTYtNS01In1dXSxkdHI9W1sicGF0aCIse2Q6Ik0yMiAxN2ExMCAxMCAwIDAgMC0yMCAwIn1dLFsicGF0aCIse2Q6Ik02IDE3YTYgNiAwIDAgMSAxMiAwIn1dLFsicGF0aCIse2Q6Ik0xMCAxN2EyIDIgMCAwIDEgNCAwIn1dXSx1dHI9W1sicGF0aCIse2Q6Ik0xMyAyMkg0YTIgMiAwIDAgMSAwLTRoMTIifV0sWyJwYXRoIix7ZDoiTTEzLjIzNiAxOGEzIDMgMCAwIDAtMi4yLTUifV0sWyJwYXRoIix7ZDoiTTE2IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNi44MiAzLjk0YTMgMyAwIDEgMSAzLjIzNyA0Ljg2OGwxLjgxNSAyLjU4N2ExLjUgMS41IDAgMCAxLTEuNSAyLjFsLTIuODcyLS40NTNhMyAzIDAgMCAwLTMuNSAzIn1dLFsicGF0aCIse2Q6Ik0xNyA0Ljk4OGEzIDMgMCAxIDAtNS4yIDIuMDUyQTcgNyAwIDAgMCA0IDE0LjAxNSA0IDQgMCAwIDAgOCAxOCJ9XV0scHRyPVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHg6IjYiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV1dLGh0cj1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTEyIDYuNXYxMSJ9XSxbInBhdGgiLHtkOiJNMTUgOS40YTQgNCAwIDEgMCAwIDUuMiJ9XV0sZnRyPVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg1In1dLFsicGF0aCIse2Q6Ik0xNiA5LjVhNCA0IDAgMSAwIDAgNS4yIn1dXSxtdHI9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Ik04IDdoOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNSA4IDE1aDFhNCA0IDAgMCAwIDAtOCJ9XSxbInBhdGgiLHtkOiJNOCAxMWg4In1dXSxndHI9W1sicGF0aCIse2Q6Ik00IDJ2MjBsMi0xIDIgMSAyLTEgMiAxIDItMSAyIDEgMi0xIDIgMVYybC0yIDEtMi0xLTIgMS0yLTEtMiAxLTItMS0yIDFaIn1dLFsicGF0aCIse2Q6Im0xMiAxMCAzLTMifV0sWyJwYXRoIix7ZDoibTkgNyAzIDN2Ny41In1dLFsicGF0aCIse2Q6Ik05IDExaDYifV0sWyJwYXRoIix7ZDoiTTkgMTVoNiJ9XV0sYnRyPVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNOCAxM2g1In1dLFsicGF0aCIse2Q6Ik0xMCAxN1Y5LjVhMi41IDIuNSAwIDAgMSA1IDAifV0sWyJwYXRoIix7ZDoiTTggMTdoNyJ9XV0sdnRyPVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNOCAxNWg1In1dLFsicGF0aCIse2Q6Ik04IDExaDVhMiAyIDAgMSAwIDAtNGgtM3YxMCJ9XV0seHRyPVtbInBhdGgiLHtkOiJNNCAydjIwbDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxIDItMSAyIDFWMmwtMiAxLTItMS0yIDEtMi0xLTIgMS0yLTEtMiAxWiJ9XSxbInBhdGgiLHtkOiJNMTAgMTdWN2g1In1dLFsicGF0aCIse2Q6Ik0xMCAxMWg0In1dLFsicGF0aCIse2Q6Ik04IDE1aDUifV1dLHl0cj1bWyJwYXRoIix7ZDoiTTEzIDE2SDgifV0sWyJwYXRoIix7ZDoiTTE0IDhIOCJ9XSxbInBhdGgiLHtkOiJNMTYgMTJIOCJ9XSxbInBhdGgiLHtkOiJNNCAzYTEgMSAwIDAgMSAxLTEgMS4zIDEuMyAwIDAgMSAuNy4ybC45MzMuNmExLjMgMS4zIDAgMCAwIDEuNCAwbC45MzQtLjZhMS4zIDEuMyAwIDAgMSAxLjQgMGwuOTMzLjZhMS4zIDEuMyAwIDAgMCAxLjQgMGwuOTMzLS42YTEuMyAxLjMgMCAwIDEgMS40IDBsLjkzNC42YTEuMyAxLjMgMCAwIDAgMS40IDBsLjkzMy0uNkExLjMgMS4zIDAgMCAxIDE5IDJhMSAxIDAgMCAxIDEgMXYxOGExIDEgMCAwIDEtMSAxIDEuMyAxLjMgMCAwIDEtLjctLjJsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzNC42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzMtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtMS40IDBsLS45MzQtLjZhMS4zIDEuMyAwIDAgMC0xLjQgMGwtLjkzMy42YTEuMyAxLjMgMCAwIDEtLjcuMiAxIDEgMCAwIDEtMS0xeiJ9XV0sd3RyPVtbInBhdGgiLHtkOiJNMTAgNi41djExYTUuNSA1LjUgMCAwIDAgNS41LTUuNSJ9XSxbInBhdGgiLHtkOiJtMTQgOC02IDMifV0sWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMXoifV1dLE10cj1bWyJwYXRoIix7ZDoiTTQgMnYyMGwyLTEgMiAxIDItMSAyIDEgMi0xIDIgMSAyLTEgMiAxVjJsLTIgMS0yLTEtMiAxLTItMS0yIDEtMi0xLTIgMVoifV0sWyJwYXRoIix7ZDoiTTE2IDhoLTZhMiAyIDAgMSAwIDAgNGg0YTIgMiAwIDEgMSAwIDRIOCJ9XSxbInBhdGgiLHtkOiJNMTIgMTcuNXYtMTEifV1dLGt0cj1bWyJwYXRoIix7ZDoiTTE0IDR2MTZIM2ExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMXoifV0sWyJjaXJjbGUiLHtjeDoiMTQiLGN5OiIxMiIscjoiOCJ9XV0sVkk9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxMiIseDoiMiIseToiNiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDEyaC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDEyaC4wMSJ9XV0sU3RyPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTIiLHg6IjIiLHk6IjYiLHJ4OiIyIn1dXSx6dHI9W1sicGF0aCIse2Q6Ik0yMCA2YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC00YTIgMiAwIDAgMS0xLjYtLjhsLTEuNi0yLjEzYTEgMSAwIDAgMC0xLjYgMEw5LjYgMTcuMkEyIDIgMCAwIDEgOCAxOEg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiJ9XV0sQ3RyPVtbInJlY3QiLHt3aWR0aDoiMTIiLGhlaWdodDoiMjAiLHg6IjYiLHk6IjIiLHJ4OiIyIn1dXSxUdHI9W1sicGF0aCIse2Q6Ik03IDE5SDQuODE1YTEuODMgMS44MyAwIDAgMS0xLjU3LS44ODEgMS43ODUgMS43ODUgMCAwIDEtLjAwNC0xLjc4NEw3LjE5NiA5LjUifV0sWyJwYXRoIix7ZDoiTTExIDE5aDguMjAzYTEuODMgMS44MyAwIDAgMCAxLjU1Ni0uODkgMS43ODQgMS43ODQgMCAwIDAgMC0xLjc3NWwtMS4yMjYtMi4xMiJ9XSxbInBhdGgiLHtkOiJtMTQgMTYtMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNOC4yOTMgMTMuNTk2IDcuMTk2IDkuNSAzLjEgMTAuNTk4In1dLFsicGF0aCIse2Q6Im05LjM0NCA1LjgxMSAxLjA5My0xLjg5MkExLjgzIDEuODMgMCAwIDEgMTEuOTg1IDNhMS43ODQgMS43ODQgMCAwIDEgMS41NDYuODg4bDMuOTQzIDYuODQzIn1dLFsicGF0aCIse2Q6Im0xMy4zNzggOS42MzMgNC4wOTYgMS4wOTggMS4wOTctNC4wOTYifV1dLF90cj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNyIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMjEgN3Y2aC02In1dLFsicGF0aCIse2Q6Ik0zIDE3YTkgOSAwIDAgMSA5LTkgOSA5IDAgMCAxIDYgMi4zbDMgMi43In1dXSxMdHI9W1sicGF0aCIse2Q6Im0xNSAxNCA1LTUtNS01In1dLFsicGF0aCIse2Q6Ik0yMCA5SDkuNUE1LjUgNS41IDAgMCAwIDQgMTQuNUE1LjUgNS41IDAgMCAwIDkuNSAyMEgxMyJ9XV0sQXRyPVtbInBhdGgiLHtkOiJNMjEgN3Y2aC02In1dLFsicGF0aCIse2Q6Ik0zIDE3YTkgOSAwIDAgMSA5LTkgOSA5IDAgMCAxIDYgMi4zbDMgMi43In1dXSxEdHI9W1sicGF0aCIse2Q6Ik0yMSAxMmE5IDkgMCAwIDAtOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZoNXY1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dLEV0cj1bWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDAgMC05LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDgifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUifV0sWyJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMCAwIDkgOSA5Ljc1IDkuNzUgMCAwIDAgNi43NC0yLjc0TDIxIDE2In1dLFsicGF0aCIse2Q6Ik0xNiAxNmg1djUifV1dLCR0cj1bWyJwYXRoIix7ZDoiTTIxIDhMMTguNzQgNS43NEE5Ljc1IDkuNzUgMCAwIDAgMTIgM0MxMSAzIDEwLjAzIDMuMTYgOS4xMyAzLjQ3In1dLFsicGF0aCIse2Q6Ik04IDE2SDN2NSJ9XSxbInBhdGgiLHtkOiJNMyAxMkMzIDkuNTEgNCA3LjI2IDUuNjQgNS42NCJ9XSxbInBhdGgiLHtkOiJtMyAxNiAyLjI2IDIuMjZBOS43NSA5Ljc1IDAgMCAwIDEyIDIxYzIuNDkgMCA0Ljc0LTEgNi4zNi0yLjY0In1dLFsicGF0aCIse2Q6Ik0yMSAxMmMwIDEtLjE2IDEuOTctLjQ3IDIuODcifV0sWyJwYXRoIix7ZDoiTTIxIDN2NWgtNSJ9XSxbInBhdGgiLHtkOiJNMjIgMjIgMiAyIn1dXSxJdHI9W1sicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4In1dLFsicGF0aCIse2Q6Ik0yMSAzdjVoLTUifV0sWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2In1dLFsicGF0aCIse2Q6Ik04IDE2SDN2NSJ9XV0sUHRyPVtbInBhdGgiLHtkOiJNNSA2YTQgNCAwIDAgMSA0LTRoNmE0IDQgMCAwIDEgNCA0djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZaIn1dLFsicGF0aCIse2Q6Ik01IDEwaDE0In1dLFsicGF0aCIse2Q6Ik0xNSA3djYifV1dLE50cj1bWyJwYXRoIix7ZDoiTTE3IDN2MTAifV0sWyJwYXRoIix7ZDoibTEyLjY3IDUuNSA4LjY2IDUifV0sWyJwYXRoIix7ZDoibTEyLjY3IDEwLjUgOC42Ni01In1dLFsicGF0aCIse2Q6Ik05IDE3YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjJhMiAyIDAgMCAwIDIgMmgyYTIgMiAwIDAgMCAyLTJ2LTJ6In1dXSxGdHI9W1sicGF0aCIse2Q6Ik00IDdWNGgxNnYzIn1dLFsicGF0aCIse2Q6Ik01IDIwaDYifV0sWyJwYXRoIix7ZDoiTTEzIDQgOCAyMCJ9XSxbInBhdGgiLHtkOiJtMTUgMTUgNSA1In1dLFsicGF0aCIse2Q6Im0yMCAxNS01IDUifV1dLE90cj1bWyJwYXRoIix7ZDoibTIgOSAzLTMgMyAzIn1dLFsicGF0aCIse2Q6Ik0xMyAxOEg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTUtMyAzLTMtMyJ9XSxbInBhdGgiLHtkOiJNMTEgNmg2YTIgMiAwIDAgMSAyIDJ2MTAifV1dLFJ0cj1bWyJwYXRoIix7ZDoibTE3IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMyAxMXYtMWE0IDQgMCAwIDEgNC00aDE0In1dLFsicGF0aCIse2Q6Im03IDIyLTQtNCA0LTQifV0sWyJwYXRoIix7ZDoiTTIxIDEzdjFhNCA0IDAgMCAxLTQgNEgzIn1dLFsicGF0aCIse2Q6Ik0xMSAxMGgxdjQifV1dLEJ0cj1bWyJwYXRoIix7ZDoibTE3IDIgNCA0LTQgNCJ9XSxbInBhdGgiLHtkOiJNMyAxMXYtMWE0IDQgMCAwIDEgNC00aDE0In1dLFsicGF0aCIse2Q6Im03IDIyLTQtNCA0LTQifV0sWyJwYXRoIix7ZDoiTTIxIDEzdjFhNCA0IDAgMCAxLTQgNEgzIn1dXSxIdHI9W1sicGF0aCIse2Q6Ik0xNCAxNGExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJNMTQgNGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGExIDEgMCAwIDEtMS0xIn1dLFsicGF0aCIse2Q6Ik0xOSAxNGExIDEgMCAwIDEgMSAxdjVhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJNMjEgNGExIDEgMCAwIDAtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA5YTEgMSAwIDAgMS0xIDEifV0sWyJwYXRoIix7ZDoibTMgNyAzIDMgMy0zIn1dLFsicGF0aCIse2Q6Ik02IDEwVjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicmVjdCIse3g6IjMiLHk6IjE0Iix3aWR0aDoiNyIsaGVpZ2h0OiI3IixyeDoiMSJ9XV0scXRyPVtbInBhdGgiLHtkOiJNMTQgNGExIDEgMCAwIDEgMS0xIn1dLFsicGF0aCIse2Q6Ik0xNSAxMGExIDEgMCAwIDEtMS0xIn1dLFsicGF0aCIse2Q6Ik0yMSA0YTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTIxIDlhMSAxIDAgMCAxLTEgMSJ9XSxbInBhdGgiLHtkOiJtMyA3IDMgMyAzLTMifV0sWyJwYXRoIix7ZDoiTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJyZWN0Iix7eDoiMyIseToiMTQiLHdpZHRoOiI3IixoZWlnaHQ6IjciLHJ4OiIxIn1dXSxqdHI9W1sicGF0aCIse2Q6Im0xMiAxNy01LTUgNS01In1dLFsicGF0aCIse2Q6Ik0yMiAxOHYtMmE0IDQgMCAwIDAtNC00SDcifV0sWyJwYXRoIix7ZDoibTcgMTctNS01IDUtNSJ9XV0sVnRyPVtbInBhdGgiLHtkOiJNMjAgMTh2LTJhNCA0IDAgMCAwLTQtNEg0In1dLFsicGF0aCIse2Q6Im05IDE3LTUtNSA1LTUifV1dLFV0cj1bWyJwYXRoIix7ZDoiTTEyIDZhMiAyIDAgMCAwLTMuNDE0LTEuNDE0bC02IDZhMiAyIDAgMCAwIDAgMi44MjhsNiA2QTIgMiAwIDAgMCAxMiAxOHoifV0sWyJwYXRoIix7ZDoiTTIyIDZhMiAyIDAgMCAwLTMuNDE0LTEuNDE0bC02IDZhMiAyIDAgMCAwIDAgMi44MjhsNiA2QTIgMiAwIDAgMCAyMiAxOHoifV1dLFd0cj1bWyJwYXRoIix7ZDoiTTEyIDExLjIyQzExIDkuOTk3IDEwIDkgMTAgOGEyIDIgMCAwIDEgNCAwYzAgMS0uOTk4IDIuMDAyLTIuMDEgMy4yMiJ9XSxbInBhdGgiLHtkOiJtMTIgMTggMi41Ny0zLjUifV0sWyJwYXRoIix7ZDoiTTYuMjQzIDkuMDE2YTcgNyAwIDAgMSAxMS41MDctLjAwOSJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41MyAxMiAxMS4yMiJ9XSxbInBhdGgiLHtkOiJNOS4zNSAxNC41M0M3LjcyOCAxMi4yNDYgNiAxMC4yMjEgNiA3YTYgNSAwIDAgMSAxMiAwYy0uMDA1IDMuMjItMS43NzggNS4yMzUtMy40MyA3LjVsMy41NTcgNC41MjdhMSAxIDAgMCAxLS4yMDMgMS40M2wtMS44OTQgMS4zNmExIDEgMCAwIDEtMS4zODQtLjIxNUwxMiAxOGwtMi42NzkgMy41OTNhMSAxIDAgMCAxLTEuMzkuMjEzbC0xLjg2NS0xLjM1M2ExIDEgMCAwIDEtLjIwMy0xLjQyMnoifV1dLEd0cj1bWyJwYXRoIix7ZDoiTTQuNSAxNi41Yy0xLjUgMS4yNi0yIDUtMiA1czMuNzQtLjUgNS0yYy43MS0uODQuNy0yLjEzLS4wOS0yLjkxYTIuMTggMi4xOCAwIDAgMC0yLjkxLS4wOXoifV0sWyJwYXRoIix7ZDoibTEyIDE1LTMtM2EyMiAyMiAwIDAgMSAyLTMuOTVBMTIuODggMTIuODggMCAwIDEgMjIgMmMwIDIuNzItLjc4IDcuNS02IDExYTIyLjM1IDIyLjM1IDAgMCAxLTQgMnoifV0sWyJwYXRoIix7ZDoiTTkgMTJINHMuNTUtMy4wMyAyLTRjMS42Mi0xLjA4IDUgMCA1IDAifV0sWyJwYXRoIix7ZDoiTTEyIDE1djVzMy4wMy0uNTUgNC0yYzEuMDgtMS42MiAwLTUgMC01In1dXSxZdHI9W1sicG9seWxpbmUiLHtwb2ludHM6IjMuNSAyIDYuNSAxMi41IDE4IDEyLjUifV0sWyJsaW5lIix7eDE6IjkuNSIseDI6IjUuNSIseTE6IjEyLjUiLHkyOiIyMCJ9XSxbImxpbmUiLHt4MToiMTUiLHgyOiIxOC41Iix5MToiMTIuNSIseTI6IjIwIn1dLFsicGF0aCIse2Q6Ik0yLjc1IDE4YTEzIDEzIDAgMCAwIDE4LjUgMCJ9XV0sWnRyPVtbInBhdGgiLHtkOiJNNiAxOVY1In1dLFsicGF0aCIse2Q6Ik0xMCAxOVY2LjgifV0sWyJwYXRoIix7ZDoiTTE0IDE5di03LjgifV0sWyJwYXRoIix7ZDoiTTE4IDV2NCJ9XSxbInBhdGgiLHtkOiJNMTggMTl2LTYifV0sWyJwYXRoIix7ZDoiTTIyIDE5VjkifV0sWyJwYXRoIix7ZDoiTTIgMTlWOWE0IDQgMCAwIDEgNC00YzIgMCA0IDEuMzMgNiA0czQgNCA2IDRhNCA0IDAgMSAwLTMtNi42NSJ9XV0sWHRyPVtbInBhdGgiLHtkOiJNMTcgMTBoLTFhNCA0IDAgMSAxIDQtNHYuNTM0In1dLFsicGF0aCIse2Q6Ik0xNyA2aDFhNCA0IDAgMCAxIDEuNDIgNy43NGwtMi4yOS44N2E2IDYgMCAwIDEtNS4zMzktMTAuNjhsMi4wNjktMS4zMSJ9XSxbInBhdGgiLHtkOiJNNC41IDE3YzIuOC0uNSA0LjQgMCA1LjUuOHMxLjggMi4yIDIuMyAzLjdjLTIgLjQtMy41LjQtNC44LS4zLTEuMi0uNi0yLjMtMS45LTMtNC4yIn1dLFsicGF0aCIse2Q6Ik05Ljc3IDEyQzQgMTUgMiAyMiAyIDIyIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiOCIscjoiMiJ9XV0sVUk9W1sicGF0aCIse2Q6Ik0xNi40NjYgNy41QzE1LjY0MyA0LjIzNyAxMy45NTIgMiAxMiAyIDkuMjM5IDIgNyA2LjQ3NyA3IDEyczIuMjM5IDEwIDUgMTBjLjM0MiAwIC42NzctLjA2OSAxLS4yIn1dLFsicGF0aCIse2Q6Im0xNS4xOTQgMTMuNzA3IDMuODE0IDEuODYtMS44NiAzLjgxNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTUuNTdjLTEuODA0Ljg4NS00LjI3NCAxLjQzLTcgMS40My01LjUyMyAwLTEwLTIuMjM5LTEwLTVzNC40NzctNSAxMC01YzQuODM4IDAgOC44NzMgMS43MTggOS44IDQifV1dLFF0cj1bWyJwYXRoIix7ZDoiTTEyIDd2NiJ9XSxbInBhdGgiLHtkOiJNMTIgOWgyIn1dLFsicGF0aCIse2Q6Ik0zIDEyYTkgOSAwIDEgMCA5LTkgOS43NCA5Ljc0IDAgMCAwLTYuNzQgMi43NEwzIDgifV0sWyJwYXRoIix7ZDoiTTMgM3Y1aDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxNSIscjoiMiJ9XV0sSnRyPVtbInBhdGgiLHtkOiJNMjAgOVY3YTIgMiAwIDAgMC0yLTJoLTYifV0sWyJwYXRoIix7ZDoibTE1IDItMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJNMjAgMTN2NWEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiJ9XV0sS3RyPVtbInBhdGgiLHtkOiJNMyAxMmE5IDkgMCAxIDAgOS05IDkuNzUgOS43NSAwIDAgMC02Ljc0IDIuNzRMMyA4In1dLFsicGF0aCIse2Q6Ik0zIDN2NWg1In1dXSxlcnI9W1sicGF0aCIse2Q6Ik0xMiA1SDZhMiAyIDAgMCAwLTIgMnYzIn1dLFsicGF0aCIse2Q6Im05IDggMy0zLTMtMyJ9XSxbInBhdGgiLHtkOiJNNCAxNHY0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTIifV1dLHRycj1bWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDEgMS05LTljMi41MiAwIDQuOTMgMSA2Ljc0IDIuNzRMMjEgOCJ9XSxbInBhdGgiLHtkOiJNMjEgM3Y1aC01In1dXSxycnI9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiIxOSIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOSAxOWg4LjVjLjQgMCAuOS0uMSAxLjMtLjIifV0sWyJwYXRoIix7ZDoiTTUuMiA1LjJBMy41IDMuNTMgMCAwIDAgNi41IDEySDEyIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTIxIDE1LjNhMy41IDMuNSAwIDAgMC0zLjMtMy4zIn1dLFsicGF0aCIse2Q6Ik0xNSA1aC00LjMifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiI1IixyOiIzIn1dXSxpcnI9W1siY2lyY2xlIix7Y3g6IjYiLGN5OiIxOSIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOSAxOWg4LjVhMy41IDMuNSAwIDAgMCAwLTdoLTExYTMuNSAzLjUgMCAwIDEgMC03SDE1In1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiNSIscjoiMyJ9XV0sYXJyPVtbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik02LjAxIDE4SDYifV0sWyJwYXRoIix7ZDoiTTEwLjAxIDE4SDEwIn1dLFsicGF0aCIse2Q6Ik0xNSAxMHY0In1dLFsicGF0aCIse2Q6Ik0xNy44NCA3LjE3YTQgNCAwIDAgMC01LjY2IDAifV0sWyJwYXRoIix7ZDoiTTIwLjY2IDQuMzRhOCA4IDAgMCAwLTExLjMxIDAifV1dLFdJPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dXSxHST1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMjEgOUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNUgzIn1dXSxucnI9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIxIDcuNUgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0yMSAxNi41SDMifV1dLG9ycj1bWyJwYXRoIix7ZDoiTTQgMTFhOSA5IDAgMCAxIDkgOSJ9XSxbInBhdGgiLHtkOiJNNCA0YTE2IDE2IDAgMCAxIDE2IDE2In1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMSJ9XV0sc3JyPVtbInBhdGgiLHtkOiJNMTAgMTV2LTMifV0sWyJwYXRoIix7ZDoiTTE0IDE1di0zIn1dLFsicGF0aCIse2Q6Ik0xOCAxNXYtMyJ9XSxbInBhdGgiLHtkOiJNMiA4VjQifV0sWyJwYXRoIix7ZDoiTTIyIDZIMiJ9XSxbInBhdGgiLHtkOiJNMjIgOFY0In1dLFsicGF0aCIse2Q6Ik02IDE1di0zIn1dLFsicmVjdCIse3g6IjIiLHk6IjEyIix3aWR0aDoiMjAiLGhlaWdodDoiOCIscng6IjIifV1dLGxycj1bWyJwYXRoIix7ZDoiTTYgMTFoOGE0IDQgMCAwIDAgMC04SDl2MTgifV0sWyJwYXRoIix7ZDoiTTYgMTVoOCJ9XV0sY3JyPVtbInBhdGgiLHtkOiJNMjEuMyAxNS4zYTIuNCAyLjQgMCAwIDEgMCAzLjRsLTIuNiAyLjZhMi40IDIuNCAwIDAgMS0zLjQgMEwyLjcgOC43YTIuNDEgMi40MSAwIDAgMSAwLTMuNGwyLjYtMi42YTIuNDEgMi40MSAwIDAgMSAzLjQgMFoifV0sWyJwYXRoIix7ZDoibTE0LjUgMTIuNSAyLTIifV0sWyJwYXRoIix7ZDoibTExLjUgOS41IDItMiJ9XSxbInBhdGgiLHtkOiJtOC41IDYuNSAyLTIifV0sWyJwYXRoIix7ZDoibTE3LjUgMTUuNSAyLTIifV1dLGRycj1bWyJwYXRoIix7ZDoiTTcgMjFoMTAifV0sWyJwYXRoIix7ZDoiTTEyIDIxYTkgOSAwIDAgMCA5LTlIM2E5IDkgMCAwIDAgOSA5WiJ9XSxbInBhdGgiLHtkOiJNMTEuMzggMTJhMi40IDIuNCAwIDAgMS0uNC00Ljc3IDIuNCAyLjQgMCAwIDEgMy4yLTIuNzcgMi40IDIuNCAwIDAgMSAzLjQ3LS42MyAyLjQgMi40IDAgMCAxIDMuMzcgMy4zNyAyLjQgMi40IDAgMCAxLTEuMSAzLjcgMi41MSAyLjUxIDAgMCAxIC4wMyAxLjEifV0sWyJwYXRoIix7ZDoibTEzIDEyIDQtNCJ9XSxbInBhdGgiLHtkOiJNMTAuOSA3LjI1QTMuOTkgMy45OSAwIDAgMCA0IDEwYzAgLjczLjIgMS40MS41NCAyIn1dXSx1cnI9W1sicGF0aCIse2Q6Ik0xMCAydjE1In1dLFsicGF0aCIse2Q6Ik03IDIyYTQgNCAwIDAgMS00LTQgMSAxIDAgMCAxIDEtMWgxNmExIDEgMCAwIDEgMSAxIDQgNCAwIDAgMS00IDR6In1dLFsicGF0aCIse2Q6Ik05LjE1OSAyLjQ2YTEgMSAwIDAgMSAxLjUyMS0uMTkzbDkuOTc3IDguOThBMSAxIDAgMCAxIDIwIDEzSDRhMSAxIDAgMCAxLS44MjQtMS41Njd6In1dXSxwcnI9W1sicGF0aCIse2Q6Im0yLjM3IDExLjIyMyA4LjM3Mi02Ljc3N2EyIDIgMCAwIDEgMi41MTYgMGw4LjM3MSA2Ljc3NyJ9XSxbInBhdGgiLHtkOiJNMjEgMTVhMSAxIDAgMCAxIDEgMXYyYTEgMSAwIDAgMS0xIDFoLTUuMjUifV0sWyJwYXRoIix7ZDoiTTMgMTVhMSAxIDAgMCAwLTEgMXYyYTEgMSAwIDAgMCAxIDFoOSJ9XSxbInBhdGgiLHtkOiJtNi42NyAxNSA2LjEzIDQuNmEyIDIgMCAwIDAgMi44LS40bDMuMTUtNC4yIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI0Iix4OiIyIix5OiIxMSIscng6IjEifV1dLGhycj1bWyJwYXRoIix7ZDoiTTQgMTBhNy4zMSA3LjMxIDAgMCAwIDEwIDEwWiJ9XSxbInBhdGgiLHtkOiJtOSAxNSAzLTMifV0sWyJwYXRoIix7ZDoiTTE3IDEzYTYgNiAwIDAgMC02LTYifV0sWyJwYXRoIix7ZDoiTTIxIDEzQTEwIDEwIDAgMCAwIDExIDMifV1dLGZycj1bWyJwYXRoIix7ZDoibTEzLjUgNi41LTMuMTQ4LTMuMTQ4YTEuMjA1IDEuMjA1IDAgMCAwLTEuNzA0IDBMNi4zNTIgNS42NDhhMS4yMDUgMS4yMDUgMCAwIDAgMCAxLjcwNEw5LjUgMTAuNSJ9XSxbInBhdGgiLHtkOiJNMTYuNSA3LjUgMTkgNSJ9XSxbInBhdGgiLHtkOiJtMTcuNSAxMC41IDMuMTQ4IDMuMTQ4YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAxLTEuNzA0IDBMMTMuNSAxNC41In1dLFsicGF0aCIse2Q6Ik05IDIxYTYgNiAwIDAgMC02LTYifV0sWyJwYXRoIix7ZDoiTTkuMzUyIDEwLjY0OGExLjIwNSAxLjIwNSAwIDAgMCAwIDEuNzA0bDIuMjk2IDIuMjk2YTEuMjA1IDEuMjA1IDAgMCAwIDEuNzA0IDBsNC4yOTYtNC4yOTZhMS4yMDUgMS4yMDUgMCAwIDAgMC0xLjcwNGwtMi4yOTYtMi4yOTZhMS4yMDUgMS4yMDUgMCAwIDAtMS43MDQgMHoifV1dLG1ycj1bWyJwYXRoIix7ZDoibTIwIDE5LjUtNS41IDEuMiJ9XSxbInBhdGgiLHtkOiJNMTQuNSA0djExLjIyYTEgMSAwIDAgMCAxLjI0Mi45N0wyMCAxNS4yIn1dLFsicGF0aCIse2Q6Im0yLjk3OCAxOS4zNTEgNS41NDktMS4zNjNBMiAyIDAgMCAwIDEwIDE2VjIifV0sWyJwYXRoIix7ZDoiTTIwIDEwIDQgMTMuNSJ9XV0sZ3JyPVtbInBhdGgiLHtkOiJNMTAgMnYzYTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTggMTh2LTZhMSAxIDAgMCAwLTEtMWgtNmExIDEgMCAwIDAtMSAxdjYifV0sWyJwYXRoIix7ZDoiTTE4IDIySDRhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik04IDE4YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDkuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZsMi44MjggMi44MjhBMiAyIDAgMCAxIDIyIDYuODI4VjE2YTIgMiAwIDAgMS0yLjAxIDJ6In1dXSxicnI9W1sicGF0aCIse2Q6Ik0xMyAxM0g4YTEgMSAwIDAgMC0xIDF2NyJ9XSxbInBhdGgiLHtkOiJNMTQgOGgxIn1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtNCJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMC40MSAyMC40MUEyIDIgMCAwIDEgMTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIC41OS0xLjQxIn1dLFsicGF0aCIse2Q6Ik0yOS41IDExLjVzNSA1IDQgNSJ9XSxbInBhdGgiLHtkOiJNOSAzaDYuMmEyIDIgMCAwIDEgMS40LjZsMy44IDMuOGEyIDIgMCAwIDEgLjYgMS40VjE1In1dXSx2cnI9W1sicGF0aCIse2Q6Ik0xNS4yIDNhMiAyIDAgMCAxIDEuNC42bDMuOCAzLjhhMiAyIDAgMCAxIC42IDEuNFYxOWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJ6In1dLFsicGF0aCIse2Q6Ik0xNyAyMXYtN2ExIDEgMCAwIDAtMS0xSDhhMSAxIDAgMCAwLTEgMXY3In1dLFsicGF0aCIse2Q6Ik03IDN2NGExIDEgMCAwIDAgMSAxaDcifV1dLFlJPVtbInBhdGgiLHtkOiJNNSA3djExYTEgMSAwIDAgMCAxIDFoMTEifV0sWyJwYXRoIix7ZDoiTTUuMjkzIDE4LjcwNyAxMSAxMyJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiIyIn1dXSx4cnI9W1sicGF0aCIse2Q6Ik0xMiAzdjE4In1dLFsicGF0aCIse2Q6Im0xOSA4IDMgOGE1IDUgMCAwIDEtNiAwelY3In1dLFsicGF0aCIse2Q6Ik0zIDdoMWExNyAxNyAwIDAgMCA4LTIgMTcgMTcgMCAwIDAgOCAyaDEifV0sWyJwYXRoIix7ZDoibTUgOCAzIDhhNSA1IDAgMCAxLTYgMHpWNyJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XV0seXJyPVtbInBhdGgiLHtkOiJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03In1dLFsicGF0aCIse2Q6Ik0xNCAxNUg5di01In1dLFsicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNMjEgMyA5IDE1In1dXSx3cnI9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMSJ9XSxbInBhdGgiLHtkOiJNMTguOTQ0IDEyLjMzYTEgMSAwIDAgMCAwLS42NiA3LjUgNy41IDAgMCAwLTEzLjg4OCAwIDEgMSAwIDAgMCAwIC42NiA3LjUgNy41IDAgMCAwIDEzLjg4OCAwIn1dXSxNcnI9W1sicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMmgtMiJ9XSxbInBhdGgiLHtkOiJNNyAyMUg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTggN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTIgN3YxMCJ9XSxbInBhdGgiLHtkOiJNMTcgN3YxMCJ9XV0sa3JyPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik04IDE0czEuNSAyIDQgMiA0LTIgNC0yIn1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSA5aC4wMSJ9XV0sU3JyPVtbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik03LjgyOCAxMy4wN0EzIDMgMCAwIDEgMTIgOC43NjRhMyAzIDAgMCAxIDQuMTcyIDQuMzA2bC0zLjQ0NyAzLjYyYTEgMSAwIDAgMS0xLjQ0OSAweiJ9XV0senJyPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsicGF0aCIse2Q6Ik03IDEyaDEwIn1dXSxDcnI9W1sicGF0aCIse2Q6Ik0xNyAxMnY0YTEgMSAwIDAgMS0xIDFoLTQifV0sWyJwYXRoIix7ZDoiTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIifV0sWyJwYXRoIix7ZDoiTTE3IDhWNyJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik0zIDdWNWEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoiTTcgMTdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInJlY3QiLHt4OiI3Iix5OiI3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV0sVHJyPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoibTE2IDE2LTEuOS0xLjkifV1dLF9ycj1bWyJwYXRoIix7ZDoiTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiJ9XSxbInBhdGgiLHtkOiJNMTcgM2gyYTIgMiAwIDAgMSAyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMjEgMTd2MmEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiJ9XSxbInBhdGgiLHtkOiJNNyA4aDgifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoNiJ9XV0sTHJyPVtbInBhdGgiLHtkOiJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIn1dLFsicGF0aCIse2Q6Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIifV0sWyJwYXRoIix7ZDoiTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIn1dXSxBcnI9W1sicGF0aCIse2Q6Ik0xNCAyMXYtM2EyIDIgMCAwIDAtNCAwdjMifV0sWyJwYXRoIix7ZDoiTTE4IDV2MTYifV0sWyJwYXRoIix7ZDoibTQgNiA3LjEwNi0zLjc5YTIgMiAwIDAgMSAxLjc4OCAwTDIwIDYifV0sWyJwYXRoIix7ZDoibTYgMTEtMy41MiAyLjE0N2ExIDEgMCAwIDAtLjQ4Ljg1NFYxOWEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTVhMSAxIDAgMCAwLS40OC0uODUzTDE4IDExIn1dLFsicGF0aCIse2Q6Ik02IDV2MTYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI5IixyOiIyIn1dXSxEcnI9W1sicGF0aCIse2Q6Ik01LjQyIDkuNDIgOCAxMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiOCIscjoiMiJ9XSxbInBhdGgiLHtkOiJtMTQgNi04LjU4IDguNTgifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjE2IixyOiIyIn1dLFsicGF0aCIse2Q6Ik0xMC44IDE0LjggMTQgMTgifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC0yIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtMiJ9XV0sRXJyPVtbImNpcmNsZSIse2N4OiI2IixjeToiNiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNOC4xMiA4LjEyIDEyIDEyIn1dLFsicGF0aCIse2Q6Ik0yMCA0IDguMTIgMTUuODgifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjE4IixyOiIzIn1dLFsicGF0aCIse2Q6Ik0xNC44IDE0LjggMjAgMjAifV1dLCRycj1bWyJwYXRoIix7ZDoiTTIxIDRoLTMuNWwyIDExLjA1In1dLFsicGF0aCIse2Q6Ik02Ljk1IDE3aDUuMTQyYy41MjMgMCAuOTUtLjQwNiAxLjA2My0uOTE2YTYuNSA2LjUgMCAwIDEgNS4zNDUtNS4wMDkifV0sWyJjaXJjbGUiLHtjeDoiMTkuNSIsY3k6IjE3LjUiLHI6IjIuNSJ9XSxbImNpcmNsZSIse2N4OiI0LjUiLGN5OiIxNy41IixyOiIyLjUifV1dLElycj1bWyJwYXRoIix7ZDoiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0yMiAzLTUgNSJ9XSxbInBhdGgiLHtkOiJtMTcgMyA1IDUifV1dLFBycj1bWyJwYXRoIix7ZDoiTTEzIDNINGEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMyJ9XSxbInBhdGgiLHtkOiJNOCAyMWg4In1dLFsicGF0aCIse2Q6Ik0xMiAxN3Y0In1dLFsicGF0aCIse2Q6Im0xNyA4IDUtNSJ9XSxbInBhdGgiLHtkOiJNMTcgM2g1djUifV1dLE5ycj1bWyJwYXRoIix7ZDoiTTE5IDE3VjVhMiAyIDAgMCAwLTItMkg0In1dLFsicGF0aCIse2Q6Ik04IDIxaDEyYTIgMiAwIDAgMCAyLTJ2LTFhMSAxIDAgMCAwLTEtMUgxMWExIDEgMCAwIDAtMSAxdjFhMiAyIDAgMSAxLTQgMFY1YTIgMiAwIDEgMC00IDB2MmExIDEgMCAwIDAgMSAxaDMifV1dLEZycj1bWyJwYXRoIix7ZDoiTTE1IDEyaC01In1dLFsicGF0aCIse2Q6Ik0xNSA4aC01In1dLFsicGF0aCIse2Q6Ik0xOSAxN1Y1YTIgMiAwIDAgMC0yLTJINCJ9XSxbInBhdGgiLHtkOiJNOCAyMWgxMmEyIDIgMCAwIDAgMi0ydi0xYTEgMSAwIDAgMC0xLTFIMTFhMSAxIDAgMCAwLTEgMXYxYTIgMiAwIDEgMS00IDBWNWEyIDIgMCAxIDAtNCAwdjJhMSAxIDAgMCAwIDEgMWgzIn1dXSxPcnI9W1siY2lyY2xlIix7Y3g6IjExIixjeToiMTEiLHI6IjgifV0sWyJwYXRoIix7ZDoibTIxIDIxLTQuMy00LjMifV0sWyJwYXRoIix7ZDoiTTExIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTEgMTVoLjAxIn1dXSxScnI9W1sicGF0aCIse2Q6Im04IDExIDIgMiA0LTQifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV0sQnJyPVtbInBhdGgiLHtkOiJtMTMgMTMuNSAyLTIuNS0yLTIuNSJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XSxbInBhdGgiLHtkOiJNOSA4LjUgNyAxMWwyIDIuNSJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dXSxIcnI9W1sicGF0aCIse2Q6Im0xMy41IDguNS01IDUifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtNC4zLTQuMyJ9XV0scXJyPVtbInBhdGgiLHtkOiJtMTMuNSA4LjUtNSA1In1dLFsicGF0aCIse2Q6Im04LjUgOC41IDUgNSJ9XSxbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsicGF0aCIse2Q6Im0yMSAyMS00LjMtNC4zIn1dXSxqcnI9W1sicGF0aCIse2Q6Im0yMSAyMS00LjM0LTQuMzQifV0sWyJjaXJjbGUiLHtjeDoiMTEiLGN5OiIxMSIscjoiOCJ9XV0sVnJyPVtbInBhdGgiLHtkOiJNMTYgNWE0IDMgMCAwIDAtOCAwYzAgNCA4IDMgOCA3YTQgMyAwIDAgMS04IDAifV0sWyJwYXRoIix7ZDoiTTggMTlhNCAzIDAgMCAwIDggMGMwLTQtOC0zLTgtN2E0IDMgMCAwIDEgOCAwIn1dXSxaST1bWyJwYXRoIix7ZDoiTTMuNzE0IDMuMDQ4YS40OTguNDk4IDAgMCAwLS42ODMuNjI3bDIuODQzIDcuNjI3YTIgMiAwIDAgMSAwIDEuMzk2bC0yLjg0MiA3LjYyN2EuNDk4LjQ5OCAwIDAgMCAuNjgyLjYyN2wxOC04LjVhLjUuNSAwIDAgMCAwLS45MDR6In1dLFsicGF0aCIse2Q6Ik02IDEyaDE2In1dXSxVcnI9W1sicmVjdCIse3g6IjE0Iix5OiIxNCIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJyZWN0Iix7eDoiMiIseToiMiIsd2lkdGg6IjgiLGhlaWdodDoiOCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTcgMTR2MWEyIDIgMCAwIDAgMiAyaDEifV0sWyJwYXRoIix7ZDoiTTE0IDdoMWEyIDIgMCAwIDEgMiAydjEifV1dLFdycj1bWyJwYXRoIix7ZDoiTTE0LjUzNiAyMS42ODZhLjUuNSAwIDAgMCAuOTM3LS4wMjRsNi41LTE5YS40OTYuNDk2IDAgMCAwLS42MzUtLjYzNWwtMTkgNi41YS41LjUgMCAwIDAtLjAyNC45MzdsNy45MyAzLjE4YTIgMiAwIDAgMSAxLjExMiAxLjExeiJ9XSxbInBhdGgiLHtkOiJtMjEuODU0IDIuMTQ3LTEwLjk0IDEwLjkzOSJ9XV0sR3JyPVtbInBhdGgiLHtkOiJNMTIgM3YxOCJ9XSxbInBhdGgiLHtkOiJtMTYgMTYgNC00LTQtNCJ9XSxbInBhdGgiLHtkOiJtOCA4LTQgNCA0IDQifV1dLFlycj1bWyJwYXRoIix7ZDoibTE2IDE2LTQgNC00LTQifV0sWyJwYXRoIix7ZDoiTTMgMTJoMTgifV0sWyJwYXRoIix7ZDoibTggOCA0LTQgNCA0In1dXSxacnI9W1sicGF0aCIse2Q6Im0xMC44NTIgMTQuNzcyLS4zODMuOTIzIn1dLFsicGF0aCIse2Q6Ik0xMy4xNDggMTQuNzcyYTMgMyAwIDEgMC0yLjI5Ni01LjU0NGwtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xMy4xNDggOS4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTEzLjUzIDE1LjY5Ni0uMzgyLS45MjRhMyAzIDAgMSAxLTIuMjk2LTUuNTQ0In1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTAuODUyLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNC43NzIgMTMuMTQ4LjkyMy4zODMifV0sWyJwYXRoIix7ZDoiTTQuNSAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC0uNSJ9XSxbInBhdGgiLHtkOiJNNC41IDE0SDRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC0uNSJ9XSxbInBhdGgiLHtkOiJNNiAxOGguMDEifV0sWyJwYXRoIix7ZDoiTTYgNmguMDEifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEwLjg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTkuMjI4IDEzLjE0OC0uOTIzLjM4MyJ9XV0sWHJyPVtbInBhdGgiLHtkOiJNNiAxMEg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC0yIn1dLFsicGF0aCIse2Q6Ik02IDE0SDRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNGEyIDIgMCAwIDAtMi0yaC0yIn1dLFsicGF0aCIse2Q6Ik02IDZoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE4aC4wMSJ9XSxbInBhdGgiLHtkOiJtMTMgNi00IDZoNmwtNCA2In1dXSxRcnI9W1sicGF0aCIse2Q6Ik03IDJoMTNhMiAyIDAgMCAxIDIgMnY0YTIgMiAwIDAgMS0yIDJoLTUifV0sWyJwYXRoIix7ZDoiTTEwIDEwIDIuNSAyLjVDMiAyIDIgMi41IDIgNXYzYTIgMiAwIDAgMCAyIDJoNnoifV0sWyJwYXRoIix7ZDoiTTIyIDE3di0xYTIgMiAwIDAgMC0yLTJoLTEifV0sWyJwYXRoIix7ZDoiTTQgMTRhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoMTYuNWwxLS41LjUuNS04LThINHoifV0sWyJwYXRoIix7ZDoiTTYgMThoLjAxIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLEpycj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjgiLHg6IjIiLHk6IjIiLHJ4OiIyIixyeToiMiJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiOCIseDoiMiIseToiMTQiLHJ4OiIyIixyeToiMiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYuMDEiLHkxOiI2Iix5MjoiNiJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjYuMDEiLHkxOiIxOCIseTI6IjE4In1dXSxLcnI9W1sicGF0aCIse2Q6Ik0xNCAxN0g1In1dLFsicGF0aCIse2Q6Ik0xOSA3aC05In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTciLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjciLHI6IjMifV1dLGUxcj1bWyJwYXRoIix7ZDoiTTkuNjcxIDQuMTM2YTIuMzQgMi4zNCAwIDAgMSA0LjY1OSAwIDIuMzQgMi4zNCAwIDAgMCAzLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEgMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAgMCAzLjgzMSAyLjM0IDIuMzQgMCAwIDEtMi4zMyA0LjAzMyAyLjM0IDIuMzQgMCAwIDAtMy4zMTkgMS45MTUgMi4zNCAyLjM0IDAgMCAxLTQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwLTMuMzItMS45MTUgMi4zNCAyLjM0IDAgMCAxLTIuMzMtNC4wMzMgMi4zNCAyLjM0IDAgMCAwIDAtMy44MzFBMi4zNCAyLjM0IDAgMCAxIDYuMzUgNi4wNTFhMi4zNCAyLjM0IDAgMCAwIDMuMzE5LTEuOTE1In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifV1dLHQxcj1bWyJwYXRoIix7ZDoiTTguMyAxMGEuNy43IDAgMCAxLS42MjYtMS4wNzlMMTEuNCAzYS43LjcgMCAwIDEgMS4xOTgtLjA0M0wxNi4zIDguOWEuNy43IDAgMCAxLS41NzIgMS4xWiJ9XSxbInJlY3QiLHt4OiIzIix5OiIxNCIsd2lkdGg6IjciLGhlaWdodDoiNyIscng6IjEifV0sWyJjaXJjbGUiLHtjeDoiMTcuNSIsY3k6IjE3LjUiLHI6IjMuNSJ9XV0scjFyPVtbImNpcmNsZSIse2N4OiIxOCIsY3k6IjUiLHI6IjMifV0sWyJjaXJjbGUiLHtjeDoiNiIsY3k6IjEyIixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTkiLHI6IjMifV0sWyJsaW5lIix7eDE6IjguNTkiLHgyOiIxNS40MiIseTE6IjEzLjUxIix5MjoiMTcuNDkifV0sWyJsaW5lIix7eDE6IjE1LjQxIix4MjoiOC41OSIseTE6IjYuNTEiLHkyOiIxMC40OSJ9XV0saTFyPVtbInBhdGgiLHtkOiJNMTIgMnYxMyJ9XSxbInBhdGgiLHtkOiJtMTYgNi00LTQtNCA0In1dLFsicGF0aCIse2Q6Ik00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04In1dXSxhMXI9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIzIix4MjoiMjEiLHkxOiI5Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMyIseDI6IjIxIix5MToiMTUiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjkiLHkxOiI5Iix5MjoiMjEifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUiLHkxOiI5Iix5MjoiMjEifV1dLG4xcj1bWyJwYXRoIix7ZDoiTTE0IDExYTIgMiAwIDEgMS00IDAgNCA0IDAgMCAxIDggMCA2IDYgMCAwIDEtMTIgMCA4IDggMCAwIDEgMTYgMCAxMCAxMCAwIDEgMS0yMCAwIDExLjkzIDExLjkzIDAgMCAxIDIuNDItNy4yMiAyIDIgMCAxIDEgMy4xNiAyLjQ0In1dXSxvMXI9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY0In1dLFsicGF0aCIse2Q6Ik0xMiAxNmguMDEifV1dLHMxcj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Im00LjI0MyA1LjIxIDE0LjM5IDEyLjQ3MiJ9XV0sbDFyPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV0sYzFyPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEyaC4wMSJ9XV0sZDFyPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV0sWyJwYXRoIix7ZDoiTTEyIDIyVjIifV1dLHUxcj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV1dLHAxcj1bWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XSxbInBhdGgiLHtkOiJNNSA1YTEgMSAwIDAgMC0xIDF2N2MwIDUgMy41IDcuNSA3LjY3IDguOTRhMSAxIDAgMCAwIC42Ny4wMWMyLjM1LS44MiA0LjQ4LTEuOTcgNS45LTMuNzEifV0sWyJwYXRoIix7ZDoiTTkuMzA5IDMuNjUyQTEyLjI1MiAxMi4yNTIgMCAwIDAgMTEuMjQgMi4yOGExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF2N2E5Ljc4NCA5Ljc4NCAwIDAgMS0uMDggMS4yNjQifV1dLGgxcj1bWyJwYXRoIix7ZDoiTTIwIDEzYzAgNS0zLjUgNy41LTcuNjYgOC45NWExIDEgMCAwIDEtLjY3LS4wMUM3LjUgMjAuNSA0IDE4IDQgMTNWNmExIDEgMCAwIDEgMS0xYzIgMCA0LjUtMS4yIDYuMjQtMi43MmExLjE3IDEuMTcgMCAwIDEgMS41MiAwQzE0LjUxIDMuODEgMTcgNSAxOSA1YTEgMSAwIDAgMSAxIDF6In1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV0sWyJwYXRoIix7ZDoiTTEyIDl2NiJ9XV0sWEk9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNOS4xIDlhMyAzIDAgMCAxIDUuODIgMWMwIDItMyAzLTMgMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXSxmMXI9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJNNi4zNzYgMTguOTFhNiA2IDAgMCAxIDExLjI0OS4wMDMifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNCJ9XV0sUUk9W1sicGF0aCIse2Q6Ik0yMCAxM2MwIDUtMy41IDcuNS03LjY2IDguOTVhMSAxIDAgMCAxLS42Ny0uMDFDNy41IDIwLjUgNCAxOCA0IDEzVjZhMSAxIDAgMCAxIDEtMWMyIDAgNC41LTEuMiA2LjI0LTIuNzJhMS4xNyAxLjE3IDAgMCAxIDEuNTIgMEMxNC41MSAzLjgxIDE3IDUgMTkgNWExIDEgMCAwIDEgMSAxeiJ9XSxbInBhdGgiLHtkOiJtMTQuNSA5LjUtNSA1In1dLFsicGF0aCIse2Q6Im05LjUgOS41IDUgNSJ9XV0sbTFyPVtbInBhdGgiLHtkOiJNMjAgMTNjMCA1LTMuNSA3LjUtNy42NiA4Ljk1YTEgMSAwIDAgMS0uNjctLjAxQzcuNSAyMC41IDQgMTggNCAxM1Y2YTEgMSAwIDAgMSAxLTFjMiAwIDQuNS0xLjIgNi4yNC0yLjcyYTEuMTcgMS4xNyAwIDAgMSAxLjUyIDBDMTQuNTEgMy44MSAxNyA1IDE5IDVhMSAxIDAgMCAxIDEgMXoifV1dLGcxcj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiOCJ9XSxbInBhdGgiLHtkOiJNMTIgMnY3LjUifV0sWyJwYXRoIix7ZDoibTE5IDUtNS4yMyA1LjIzIn1dLFsicGF0aCIse2Q6Ik0yMiAxMmgtNy41In1dLFsicGF0aCIse2Q6Im0xOSAxOS01LjIzLTUuMjMifV0sWyJwYXRoIix7ZDoiTTEyIDE0LjVWMjIifV0sWyJwYXRoIix7ZDoiTTEwLjIzIDEzLjc3IDUgMTkifV0sWyJwYXRoIix7ZDoiTTkuNSAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMC4yMyAxMC4yMyA1IDUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMi41In1dXSxiMXI9W1sicGF0aCIse2Q6Ik0xMiAxMC4xODlWMTQifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MyJ9XSxbInBhdGgiLHtkOiJNMTkgMTNWN2EyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnY2In1dLFsicGF0aCIse2Q6Ik0xOS4zOCAyMEExMS42IDExLjYgMCAwIDAgMjEgMTRsLTguMTg4LTMuNjM5YTIgMiAwIDAgMC0xLjYyNCAwTDMgMTRhMTEuNiAxMS42IDAgMCAwIDIuODEgNy43NiJ9XSxbInBhdGgiLHtkOiJNMiAyMWMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMXMxLjIgMSAyLjUgMWMyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV1dLHYxcj1bWyJwYXRoIix7ZDoiTTIwLjM4IDMuNDYgMTYgMmE0IDQgMCAwIDEtOCAwTDMuNjIgMy40NmEyIDIgMCAwIDAtMS4zNCAyLjIzbC41OCAzLjQ3YTEgMSAwIDAgMCAuOTkuODRINnYxMGMwIDEuMS45IDIgMiAyaDhhMiAyIDAgMCAwIDItMlYxMGgyLjE1YTEgMSAwIDAgMCAuOTktLjg0bC41OC0zLjQ3YTIgMiAwIDAgMC0xLjM0LTIuMjN6In1dXSx4MXI9W1sicGF0aCIse2Q6Ik0xNiAxMGE0IDQgMCAwIDEtOCAwIn1dLFsicGF0aCIse2Q6Ik0zLjEwMyA2LjAzNGgxNy43OTQifV0sWyJwYXRoIix7ZDoiTTMuNCA1LjQ2N2EyIDIgMCAwIDAtLjQgMS4yVjIwYTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY2LjY2N2EyIDIgMCAwIDAtLjQtMS4ybC0yLTIuNjY3QTIgMiAwIDAgMCAxNyAySDdhMiAyIDAgMCAwLTEuNi44eiJ9XV0seTFyPVtbInBhdGgiLHtkOiJtMTUgMTEtMSA5In1dLFsicGF0aCIse2Q6Im0xOSAxMS00LTcifV0sWyJwYXRoIix7ZDoiTTIgMTFoMjAifV0sWyJwYXRoIix7ZDoibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQifV0sWyJwYXRoIix7ZDoiTTQuNSAxNS41aDE1In1dLFsicGF0aCIse2Q6Im01IDExIDQtNyJ9XSxbInBhdGgiLHtkOiJtOSAxMSAxIDkifV1dLHcxcj1bWyJjaXJjbGUiLHtjeDoiOCIsY3k6IjIxIixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiMjEiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTIuMDUgMi4wNWgybDIuNjYgMTIuNDJhMiAyIDAgMCAwIDIgMS41OGg5Ljc4YTIgMiAwIDAgMCAxLjk1LTEuNTdsMS42NS03LjQzSDUuMTIifV1dLE0xcj1bWyJwYXRoIix7ZDoiTTIxLjU2IDQuNTZhMS41IDEuNSAwIDAgMSAwIDIuMTIybC0uNDcuNDdhMyAzIDAgMCAxLTQuMjEyLS4wMyAzIDMgMCAwIDEgMC00LjI0M2wuNDQtLjQ0YTEuNSAxLjUgMCAwIDEgMi4xMjEgMHoifV0sWyJwYXRoIix7ZDoiTTMgMjJhMSAxIDAgMCAxLTEtMXYtMy41ODZhMSAxIDAgMCAxIC4yOTMtLjcwN2wzLjM1NS0zLjM1NWExLjIwNSAxLjIwNSAwIDAgMSAxLjcwNCAwbDMuMjk2IDMuMjk2YTEuMjA1IDEuMjA1IDAgMCAxIDAgMS43MDRsLTMuMzU1IDMuMzU1YTEgMSAwIDAgMS0uNzA3LjI5M3oifV0sWyJwYXRoIix7ZDoibTkgMTUgNy44NzktNy44NzgifV1dLGsxcj1bWyJwYXRoIix7ZDoibTQgNCAyLjUgMi41In1dLFsicGF0aCIse2Q6Ik0xMy41IDYuNWE0Ljk1IDQuOTUgMCAwIDAtNyA3In1dLFsicGF0aCIse2Q6Ik0xNSA1IDUgMTUifV0sWyJwYXRoIix7ZDoiTTE0IDE3di4wMSJ9XSxbInBhdGgiLHtkOiJNMTAgMTZ2LjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAxM3YuMDEifV0sWyJwYXRoIix7ZDoiTTE2IDEwdi4wMSJ9XSxbInBhdGgiLHtkOiJNMTEgMjB2LjAxIn1dLFsicGF0aCIse2Q6Ik0xNyAxNHYuMDEifV0sWyJwYXRoIix7ZDoiTTIwIDExdi4wMSJ9XV0sUzFyPVtbInBhdGgiLHtkOiJNNCAxM1Y0YTIgMiAwIDAgMSAyLTJoOGEyLjQgMi40IDAgMCAxIDEuNzA2LjcwNmwzLjU4OCAzLjU4OEEyLjQgMi40IDAgMCAxIDIwIDh2NSJ9XSxbInBhdGgiLHtkOiJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSJ9XSxbInBhdGgiLHtkOiJNMTAgMjJ2LTUifV0sWyJwYXRoIix7ZDoiTTE0IDE5di0yIn1dLFsicGF0aCIse2Q6Ik0xOCAyMHYtMyJ9XSxbInBhdGgiLHtkOiJNMiAxM2gyMCJ9XSxbInBhdGgiLHtkOiJNNiAyMHYtMyJ9XV0sejFyPVtbInBhdGgiLHtkOiJNMTEgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMyAyMmMuNS0uNSAxLjEyLTEgMi41LTEtMS4zOCAwLTItLjUtMi41LTEifV0sWyJwYXRoIix7ZDoiTTE0IDJhMy4yOCAzLjI4IDAgMCAxLTMuMjI3IDEuNzk4bC02LjE3LS41NjFBMi4zODcgMi4zODcgMCAxIDAgNC4zODcgOEgxNS41YTEgMSAwIDAgMSAwIDEzIDEgMSAwIDAgMCAwLTVIMTJhNyA3IDAgMCAxLTctN1Y4In1dLFsicGF0aCIse2Q6Ik0xNCA4YTguNSA4LjUgMCAwIDEgMCA4In1dLFsicGF0aCIse2Q6Ik0xNiAxNmMyIDAgNC41LTQgNC02In1dXSxDMXI9W1sicGF0aCIse2Q6Im0xNSAxNSA2IDZtLTYtNnY0LjhtMC00LjhoNC44In1dLFsicGF0aCIse2Q6Ik05IDE5LjhWMTVtMCAwSDQuMk05IDE1bC02IDYifV0sWyJwYXRoIix7ZDoiTTE1IDQuMlY5bTAgMGg0LjhNMTUgOWw2LTYifV0sWyJwYXRoIix7ZDoiTTkgNC4yVjltMCAwSDQuMk05IDkgMyAzIn1dXSxUMXI9W1sicGF0aCIse2Q6Im0xOCAxNCA0IDQtNCA0In1dLFsicGF0aCIse2Q6Im0xOCAyIDQgNC00IDQifV0sWyJwYXRoIix7ZDoiTTIgMThoMS45NzNhNCA0IDAgMCAwIDMuMy0xLjdsNS40NTQtOC42YTQgNCAwIDAgMSAzLjMtMS43SDIyIn1dLFsicGF0aCIse2Q6Ik0yIDZoMS45NzJhNCA0IDAgMCAxIDMuNiAyLjIifV0sWyJwYXRoIix7ZDoiTTIyIDE4aC02LjA0MWE0IDQgMCAwIDEtMy4zLTEuOGwtLjM1OS0uNDUifV1dLF8xcj1bWyJwYXRoIix7ZDoiTTEyIDIydi01LjE3MmEyIDIgMCAwIDAtLjU4Ni0xLjQxNEw5LjUgMTMuNSJ9XSxbInBhdGgiLHtkOiJNMTQuNSAxNC41IDEyIDE3In1dLFsicGF0aCIse2Q6Ik0xNyA4LjhBNiA2IDAgMCAxIDEzLjggMjBIMTBBNi41IDYuNSAwIDAgMSA3IDhhNSA1IDAgMCAxIDEwIDB6In1dXSxMMXI9W1sicGF0aCIse2Q6Ik0xOCA3VjVhMSAxIDAgMCAwLTEtMUg2LjVhLjUuNSAwIDAgMC0uNC44bDQuNSA2YTIgMiAwIDAgMSAwIDIuNGwtNC41IDZhLjUuNSAwIDAgMCAuNC44SDE3YTEgMSAwIDAgMCAxLTF2LTIifV1dLEExcj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XSxbInBhdGgiLHtkOiJNMTcgMjBWOCJ9XV0sRDFyPVtbInBhdGgiLHtkOiJNMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTcgMjB2LTQifV1dLEUxcj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XV0sJDFyPVtbInBhdGgiLHtkOiJNMiAyMGguMDEifV1dLEkxcj1bWyJwYXRoIix7ZDoiTTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDIwdi00In1dLFsicGF0aCIse2Q6Ik0xMiAyMHYtOCJ9XSxbInBhdGgiLHtkOiJNMTcgMjBWOCJ9XSxbInBhdGgiLHtkOiJNMjIgNHYxNiJ9XV0sUDFyPVtbInBhdGgiLHtkOiJtMjEgMTctMi4xNTYtMS44NjhBLjUuNSAwIDAgMCAxOCAxNS41di41YTEgMSAwIDAgMS0xIDFoLTJhMSAxIDAgMCAxLTEtMWMwLTIuNTQ1LTMuOTkxLTMuOTctOC41LTRhMSAxIDAgMCAwIDAgNWM0LjE1MyAwIDQuNzQ1LTExLjI5NSA1LjcwOC0xMy41YTIuNSAyLjUgMCAxIDEgMy4zMSAzLjI4NCJ9XSxbInBhdGgiLHtkOiJNMyAyMWgxOCJ9XV0sTjFyPVtbInBhdGgiLHtkOiJNMTAgOUg0TDIgN2wyLTJoNiJ9XSxbInBhdGgiLHtkOiJNMTQgNWg2bDIgMi0yIDJoLTYifV0sWyJwYXRoIix7ZDoiTTEwIDIyVjRhMiAyIDAgMSAxIDQgMHYxOCJ9XSxbInBhdGgiLHtkOiJNOCAyMmg4In1dXSxGMXI9W1sicGF0aCIse2Q6Ik0xMiAxM3Y4In1dLFsicGF0aCIse2Q6Ik0xMiAzdjMifV0sWyJwYXRoIix7ZDoiTTE4IDZhMiAyIDAgMCAxIDEuMzg3LjU2bDIuMzA3IDIuMjJhMSAxIDAgMCAxIDAgMS40NGwtMi4zMDcgMi4yMkEyIDIgMCAwIDEgMTggMTNINmEyIDIgMCAwIDEtMS4zODctLjU2bC0yLjMwNi0yLjIyYTEgMSAwIDAgMSAwLTEuNDRsMi4zMDYtMi4yMkEyIDIgMCAwIDEgNiA2eiJ9XV0sTzFyPVtbInBhdGgiLHtkOiJNNyAxOHYtNmE1IDUgMCAxIDEgMTAgMHY2In1dLFsicGF0aCIse2Q6Ik01IDIxYTEgMSAwIDAgMCAxIDFoMTJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAtMi0ySDdhMiAyIDAgMCAwLTIgMnoifV0sWyJwYXRoIix7ZDoiTTIxIDEyaDEifV0sWyJwYXRoIix7ZDoiTTE4LjUgNC41IDE4IDUifV0sWyJwYXRoIix7ZDoiTTIgMTJoMSJ9XSxbInBhdGgiLHtkOiJNMTIgMnYxIn1dLFsicGF0aCIse2Q6Im00LjkyOSA0LjkyOS43MDcuNzA3In1dLFsicGF0aCIse2Q6Ik0xMiAxMnY2In1dXSxSMXI9W1sicGF0aCIse2Q6Ik0xNy45NzEgNC4yODVBMiAyIDAgMCAxIDIxIDZ2MTJhMiAyIDAgMCAxLTMuMDI5IDEuNzE1bC05Ljk5Ny01Ljk5OGEyIDIgMCAwIDEtLjAwMy0zLjQzMnoifV0sWyJwYXRoIix7ZDoiTTMgMjBWNCJ9XV0sQjFyPVtbInBhdGgiLHtkOiJNMjEgNHYxNiJ9XSxbInBhdGgiLHtkOiJNNi4wMjkgNC4yODVBMiAyIDAgMCAwIDMgNnYxMmEyIDIgMCAwIDAgMy4wMjkgMS43MTVsOS45OTctNS45OThhMiAyIDAgMCAwIC4wMDMtMy40MzJ6In1dXSxIMXI9W1sicGF0aCIse2Q6Im0xMi41IDE3LS41LTEtLjUgMWgxeiJ9XSxbInBhdGgiLHtkOiJNMTUgMjJhMSAxIDAgMCAwIDEtMXYtMWEyIDIgMCAwIDAgMS41Ni0zLjI1IDggOCAwIDEgMC0xMS4xMiAwQTIgMiAwIDAgMCA4IDIwdjFhMSAxIDAgMCAwIDEgMXoifV0sWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMSJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiMTIiLHI6IjEifV1dLHExcj1bWyJyZWN0Iix7d2lkdGg6IjMiLGhlaWdodDoiOCIseDoiMTMiLHk6IjIiLHJ4OiIxLjUifV0sWyJwYXRoIix7ZDoiTTE5IDguNVYxMGgxLjVBMS41IDEuNSAwIDEgMCAxOSA4LjUifV0sWyJyZWN0Iix7d2lkdGg6IjMiLGhlaWdodDoiOCIseDoiOCIseToiMTQiLHJ4OiIxLjUifV0sWyJwYXRoIix7ZDoiTTUgMTUuNVYxNEgzLjVBMS41IDEuNSAwIDEgMCA1IDE1LjUifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMyIseDoiMTQiLHk6IjEzIixyeDoiMS41In1dLFsicGF0aCIse2Q6Ik0xNS41IDE5SDE0djEuNWExLjUgMS41IDAgMSAwIDEuNS0xLjUifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMyIseDoiMiIseToiOCIscng6IjEuNSJ9XSxbInBhdGgiLHtkOiJNOC41IDVIMTBWMy41QTEuNSAxLjUgMCAxIDAgOC41IDUifV1dLGoxcj1bWyJwYXRoIix7ZDoiTTIyIDIgMiAyMiJ9XV0sVjFyPVtbInBhdGgiLHtkOiJNMTEgMTYuNTg2VjE5YTEgMSAwIDAgMS0xIDFIMkwxOC4zNyAzLjYzYTEgMSAwIDEgMSAzIDNsLTkuNjYzIDkuNjYzYTEgMSAwIDAgMS0xLjQxNCAwTDggMTQifV1dLFUxcj1bWyJwYXRoIix7ZDoiTTEwIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTIgMTlIMyJ9XSxbInBhdGgiLHtkOiJNMTQgM3Y0In1dLFsicGF0aCIse2Q6Ik0xNiAxN3Y0In1dLFsicGF0aCIse2Q6Ik0yMSAxMmgtOSJ9XSxbInBhdGgiLHtkOiJNMjEgMTloLTUifV0sWyJwYXRoIix7ZDoiTTIxIDVoLTcifV0sWyJwYXRoIix7ZDoiTTggMTB2NCJ9XSxbInBhdGgiLHtkOiJNOCAxMkgzIn1dXSxKST1bWyJwYXRoIix7ZDoiTTEwIDhoNCJ9XSxbInBhdGgiLHtkOiJNMTIgMjF2LTkifV0sWyJwYXRoIix7ZDoiTTEyIDhWMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTZoNCJ9XSxbInBhdGgiLHtkOiJNMTkgMTJWMyJ9XSxbInBhdGgiLHtkOiJNMTkgMjF2LTUifV0sWyJwYXRoIix7ZDoiTTMgMTRoNCJ9XSxbInBhdGgiLHtkOiJNNSAxMFYzIn1dLFsicGF0aCIse2Q6Ik01IDIxdi03In1dXSxXMXI9W1sicmVjdCIse3dpZHRoOiIxNCIsaGVpZ2h0OiIyMCIseDoiNSIseToiMiIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Ik0xMi42NjcgOCAxMCAxMmg0bC0yLjY2NyA0In1dXSxHMXI9W1sicmVjdCIse3dpZHRoOiI3IixoZWlnaHQ6IjEyIix4OiIyIix5OiI2IixyeDoiMSJ9XSxbInBhdGgiLHtkOiJNMTMgOC4zMmE3LjQzIDcuNDMgMCAwIDEgMCA3LjM2In1dLFsicGF0aCIse2Q6Ik0xNi40NiA2LjIxYTExLjc2IDExLjc2IDAgMCAxIDAgMTEuNTgifV0sWyJwYXRoIix7ZDoiTTE5LjkxIDQuMWExNS45MSAxNS45MSAwIDAgMSAuMDEgMTUuOCJ9XV0sWTFyPVtbInJlY3QiLHt3aWR0aDoiMTQiLGhlaWdodDoiMjAiLHg6IjUiLHk6IjIiLHJ4OiIyIixyeToiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMThoLjAxIn1dXSxaMXI9W1sicGF0aCIse2Q6Ik0yMiAxMXYxYTEwIDEwIDAgMSAxLTktMTAifV0sWyJwYXRoIix7ZDoiTTggMTRzMS41IDIgNCAyIDQtMiA0LTIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XSxbInBhdGgiLHtkOiJNMTYgNWg2In1dLFsicGF0aCIse2Q6Ik0xOSAydjYifV1dLFgxcj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV0sWyJwYXRoIix7ZDoiTTggMTRzMS41IDIgNCAyIDQtMiA0LTIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiI5LjAxIix5MToiOSIseTI6IjkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiMTUuMDEiLHkxOiI5Iix5MjoiOSJ9XV0sUTFyPVtbInBhdGgiLHtkOiJNMiAxM2E2IDYgMCAxIDAgMTIgMCA0IDQgMCAxIDAtOCAwIDIgMiAwIDAgMCA0IDAifV0sWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiIxMyIscjoiOCJ9XSxbInBhdGgiLHtkOiJNMiAyMWgxMmM0LjQgMCA4LTMuNiA4LThWN2EyIDIgMCAxIDAtNCAwdjYifV0sWyJwYXRoIix7ZDoiTTE4IDMgMTkuMSA1LjIifV0sWyJwYXRoIix7ZDoiTTIyIDMgMjAuOSA1LjIifV1dLEoxcj1bWyJwYXRoIix7ZDoiTTEwLjUgMnY0In1dLFsicGF0aCIse2Q6Ik0xNCAySDdhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTkuMjkgMTQuNzZBNi42NyA2LjY3IDAgMCAxIDE3IDExYTYuNiA2LjYgMCAwIDEtMi4yOSAzLjc2Yy0xLjE1LjkyLTEuNzEgMi4wNC0xLjcxIDMuMTkgMCAyLjIyIDEuOCA0LjA1IDQgNC4wNXM0LTEuODMgNC00LjA1YzAtMS4xNi0uNTctMi4yNi0xLjcxLTMuMTkifV0sWyJwYXRoIix7ZDoiTTkuNjA3IDIxSDZhMiAyIDAgMCAxLTItMnYtN2EyIDIgMCAwIDEgMi0yaDdWN2ExIDEgMCAwIDAtMS0xSDlhMSAxIDAgMCAwLTEgMXYzIn1dXSxLMXI9W1sicGF0aCIse2Q6Im0xMCAyMC0xLjI1LTIuNUw2IDE4In1dLFsicGF0aCIse2Q6Ik0xMCA0IDguNzUgNi41IDYgNiJ9XSxbInBhdGgiLHtkOiJtMTQgMjAgMS4yNS0yLjVMMTggMTgifV0sWyJwYXRoIix7ZDoibTE0IDQgMS4yNSAyLjVMMTggNiJ9XSxbInBhdGgiLHtkOiJtMTcgMjEtMy02aC00In1dLFsicGF0aCIse2Q6Im0xNyAzLTMgNiAxLjUgMyJ9XSxbInBhdGgiLHtkOiJNMiAxMmg2LjVMMTAgOSJ9XSxbInBhdGgiLHtkOiJtMjAgMTAtMS41IDIgMS41IDIifV0sWyJwYXRoIix7ZDoiTTIyIDEyaC02LjVMMTQgMTUifV0sWyJwYXRoIix7ZDoibTQgMTAgMS41IDJMNCAxNCJ9XSxbInBhdGgiLHtkOiJtNyAyMSAzLTYtMS41LTMifV0sWyJwYXRoIix7ZDoibTcgMyAzIDZoNCJ9XV0sZWlyPVtbInBhdGgiLHtkOiJNMjAgOVY2YTIgMiAwIDAgMC0yLTJINmEyIDIgMCAwIDAtMiAydjMifV0sWyJwYXRoIix7ZDoiTTIgMTZhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi01YTIgMiAwIDAgMC00IDB2MS41YS41LjUgMCAwIDEtLjUuNWgtMTFhLjUuNSAwIDAgMS0uNS0uNVYxMWEyIDIgMCAwIDAtNCAweiJ9XSxbInBhdGgiLHtkOiJNNCAxOHYyIn1dLFsicGF0aCIse2Q6Ik0yMCAxOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiA0djkifV1dLHRpcj1bWyJwYXRoIix7ZDoiTTExIDJoMiJ9XSxbInBhdGgiLHtkOiJtMTQuMjggMTQtNC41NiA4In1dLFsicGF0aCIse2Q6Im0yMSAyMi0xLjU1OC00SDQuNTU4In1dLFsicGF0aCIse2Q6Ik0zIDEwdjIifV0sWyJwYXRoIix7ZDoiTTYuMjQ1IDE1LjA0QTIgMiAwIDAgMSA4IDE0aDEyYTEgMSAwIDAgMSAuODY0IDEuNTA1bC0zLjExIDUuNDU3QTIgMiAwIDAgMSAxNiAyMkg0YTEgMSAwIDAgMS0uODYzLTEuNTA2eiJ9XSxbInBhdGgiLHtkOiJNNyAyYTQgNCAwIDAgMS00IDQifV0sWyJwYXRoIix7ZDoibTguNjYgNy42NiAxLjQxIDEuNDEifV1dLHJpcj1bWyJwYXRoIix7ZDoiTTEyIDIxYTkgOSAwIDAgMCA5LTlIM2E5IDkgMCAwIDAgOSA5WiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInBhdGgiLHtkOiJNMTkuNSAxMiAyMiA2In1dLFsicGF0aCIse2Q6Ik0xNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzMgMS42MiJ9XSxbInBhdGgiLHtkOiJNMTEuMjUgM2MuMjcuMS44LjUzLjc0IDEuMzYtLjA1LjgzLS45MyAxLjItLjk4IDIuMDItLjA2Ljc4LjMzIDEuMjQuNzIgMS42MiJ9XSxbInBhdGgiLHtkOiJNNi4yNSAzYy4yNy4xLjguNTMuNzUgMS4zNi0uMDYuODMtLjkzIDEuMi0xIDIuMDItLjA1Ljc4LjM0IDEuMjQuNzQgMS42MiJ9XV0saWlyPVtbInBhdGgiLHtkOiJNMjIgMTd2MWMwIC41LS41IDEtMSAxSDNjLS41IDAtMS0uNS0xLTF2LTEifV1dLGFpcj1bWyJwYXRoIix7ZDoiTTEyIDE4djQifV0sWyJwYXRoIix7ZDoiTTIgMTQuNDk5YTUuNSA1LjUgMCAwIDAgOS41OTEgMy42NzUuNi42IDAgMCAxIC44MTguMDAxQTUuNSA1LjUgMCAwIDAgMjIgMTQuNWMwLTIuMjktMS41LTQtMy01LjVsLTUuNDkyLTUuMzEyYTIgMiAwIDAgMC0zLS4wMkw1IDguOTk5Yy0xLjUgMS41LTMgMy4yLTMgNS41In1dXSxuaXI9W1sicGF0aCIse2Q6Ik0xMS4wMTcgMi44MTRhMSAxIDAgMCAxIDEuOTY2IDBsMS4wNTEgNS41NThhMiAyIDAgMCAwIDEuNTk0IDEuNTk0bDUuNTU4IDEuMDUxYTEgMSAwIDAgMSAwIDEuOTY2bC01LjU1OCAxLjA1MWEyIDIgMCAwIDAtMS41OTQgMS41OTRsLTEuMDUxIDUuNTU4YTEgMSAwIDAgMS0xLjk2NiAwbC0xLjA1MS01LjU1OGEyIDIgMCAwIDAtMS41OTQtMS41OTRsLTUuNTU4LTEuMDUxYTEgMSAwIDAgMSAwLTEuOTY2bDUuNTU4LTEuMDUxYTIgMiAwIDAgMCAxLjU5NC0xLjU5NHoifV1dLEtJPVtbInBhdGgiLHtkOiJNMTEuMDE3IDIuODE0YTEgMSAwIDAgMSAxLjk2NiAwbDEuMDUxIDUuNTU4YTIgMiAwIDAgMCAxLjU5NCAxLjU5NGw1LjU1OCAxLjA1MWExIDEgMCAwIDEgMCAxLjk2NmwtNS41NTggMS4wNTFhMiAyIDAgMCAwLTEuNTk0IDEuNTk0bC0xLjA1MSA1LjU1OGExIDEgMCAwIDEtMS45NjYgMGwtMS4wNTEtNS41NThhMiAyIDAgMCAwLTEuNTk0LTEuNTk0bC01LjU1OC0xLjA1MWExIDEgMCAwIDEgMC0xLjk2Nmw1LjU1OC0xLjA1MWEyIDIgMCAwIDAgMS41OTQtMS41OTR6In1dLFsicGF0aCIse2Q6Ik0yMCAydjQifV0sWyJwYXRoIix7ZDoiTTIyIDRoLTQifV0sWyJjaXJjbGUiLHtjeDoiNCIsY3k6IjIwIixyOiIyIn1dXSxvaXI9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIifV0sWyJwYXRoIix7ZDoiTTEyIDZoLjAxIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDE0aC4wMSJ9XV0sc2lyPVtbInBhdGgiLHtkOiJNOC44IDIwdi00LjFsMS45LjJhMi4zIDIuMyAwIDAgMCAyLjE2NC0yLjFWOC4zQTUuMzcgNS4zNyAwIDAgMCAyIDguMjVjMCAyLjguNjU2IDMuMDU0IDEgNC41NWE1Ljc3IDUuNzcgMCAwIDEgLjAyOSAyLjc1OEwyIDIwIn1dLFsicGF0aCIse2Q6Ik0xOS44IDE3LjhhNy41IDcuNSAwIDAgMCAuMDAzLTEwLjYwMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTVhMy41IDMuNSAwIDAgMC0uMDI1LTQuOTc1In1dXSxsaXI9W1sicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik00IDIxYzEuMSAwIDEuMS0xIDIuMy0xczEuMSAxIDIuMyAxYzEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIDEuMSAwIDEuMSAxIDIuMyAxIDEuMSAwIDEuMS0xIDIuMy0xIn1dXSxjaXI9W1sicGF0aCIse2Q6Im02IDE2IDYtMTIgNiAxMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Im0xNiAyMCAyIDIgNC00In1dXSxkaXI9W1sicGF0aCIse2Q6Ik0xMi4wMzQgMTIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQzbC0zLjQ0NCAxLjA2OGExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NyAzLjQ0M2EuNS41IDAgMCAxLS45NDMuMDMzeiJ9XSxbInBhdGgiLHtkOiJNNSAxN0ExMiAxMiAwIDAgMSAxNyA1In1dLFsiY2lyY2xlIix7Y3g6IjE5IixjeToiNSIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI1IixjeToiMTkiLHI6IjIifV1dLHVpcj1bWyJjaXJjbGUiLHtjeDoiMTkiLGN5OiI1IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjUiLGN5OiIxOSIscjoiMiJ9XSxbInBhdGgiLHtkOiJNNSAxN0ExMiAxMiAwIDAgMSAxNyA1In1dXSxwaXI9W1sicGF0aCIse2Q6Ik0xNiAzaDV2NSJ9XSxbInBhdGgiLHtkOiJNOCAzSDN2NSJ9XSxbInBhdGgiLHtkOiJNMTIgMjJ2LTguM2E0IDQgMCAwIDAtMS4xNzItMi44NzJMMyAzIn1dLFsicGF0aCIse2Q6Im0xNSA5IDYtNiJ9XV0saGlyPVtbInBhdGgiLHtkOiJNMTcgMTMuNDQgNC40NDIgMTcuMDgyQTIgMiAwIDAgMCA0Ljk4MiAyMUgxOWEyIDIgMCAwIDAgLjU1OC0zLjkyMWwtMS4xMTUtLjMyQTIgMiAwIDAgMSAxNyAxNC44MzdWNy42NiJ9XSxbInBhdGgiLHtkOiJtNyAxMC41NiAxMi41NTgtMy42NDJBMiAyIDAgMCAwIDE5LjAxOCAzSDVhMiAyIDAgMCAwLS41NTggMy45MjFsMS4xMTUuMzJBMiAyIDAgMCAxIDcgOS4xNjN2Ny4xNzgifV1dLGZpcj1bWyJwYXRoIix7ZDoiTTE1LjI5NSAxOS41NjIgMTYgMjIifV0sWyJwYXRoIix7ZDoibTE3IDE2IDMuNzU4IDIuMDk4In1dLFsicGF0aCIse2Q6Im0xOSAxMi41IDMuMDI2LS41OTgifV0sWyJwYXRoIix7ZDoiTTcuNjEgNi4zYTMgMyAwIDAgMC0zLjkyIDEuM2wtMS4zOCAyLjc5YTMgMyAwIDAgMCAxLjMgMy45MWw2Ljg5IDMuNTk3YTEgMSAwIDAgMCAxLjM0Mi0uNDQ3bDMuMTA2LTYuMjExYTEgMSAwIDAgMC0uNDQ3LTEuMzQxeiJ9XSxbInBhdGgiLHtkOiJNOCA5VjIifV1dLG1pcj1bWyJwYXRoIix7ZDoiTTMgM2guMDEifV0sWyJwYXRoIix7ZDoiTTcgNWguMDEifV0sWyJwYXRoIix7ZDoiTTExIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDdoLjAxIn1dLFsicGF0aCIse2Q6Ik03IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0zIDExaC4wMSJ9XSxbInJlY3QiLHt3aWR0aDoiNCIsaGVpZ2h0OiI0Iix4OiIxNSIseToiNSJ9XSxbInBhdGgiLHtkOiJtMTkgOSAyIDJ2MTBjMCAuNi0uNCAxLTEgMWgtNmMtLjYgMC0xLS40LTEtMVYxMWwyLTIifV0sWyJwYXRoIix7ZDoibTEzIDE0IDgtMiJ9XSxbInBhdGgiLHtkOiJtMTMgMTkgOC0yIn1dXSxnaXI9W1sicGF0aCIse2Q6Ik0xNCA5LjUzNlY3YTQgNCAwIDAgMSA0LTRoMS41YS41LjUgMCAwIDEgLjUuNVY1YTQgNCAwIDAgMS00IDQgNCA0IDAgMCAwLTQgNGMwIDIgMSAzIDEgNWE1IDUgMCAwIDEtMSAzIn1dLFsicGF0aCIse2Q6Ik00IDlhNSA1IDAgMCAxIDggNCA1IDUgMCAwIDEtOC00In1dLFsicGF0aCIse2Q6Ik01IDIxaDE0In1dXSxlUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTYgOC04IDgifV0sWyJwYXRoIix7ZDoiTTE2IDE2SDhWOCJ9XV0sdFA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTE3IDEyaC0ybC0yIDUtMi0xMC0yIDVINyJ9XV0sclA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoiTTE2IDh2OEg4In1dXSxpUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgOHY4In1dLFsicGF0aCIse2Q6Im04IDEyIDQgNCA0LTQifV1dLGFQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xMiA4LTQgNCA0IDQifV0sWyJwYXRoIix7ZDoiTTE2IDEySDgifV1dLG5QPVtbInBhdGgiLHtkOiJNMTMgMjFoNmEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2NiJ9XSxbInBhdGgiLHtkOiJtMyAyMSA5LTkifV0sWyJwYXRoIix7ZDoiTTkgMjFIM3YtNiJ9XV0sb1A9W1sicGF0aCIse2Q6Ik0xMyAzaDZhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNiJ9XSxbInBhdGgiLHtkOiJtMyAzIDkgOSJ9XSxbInBhdGgiLHtkOiJNMyA5VjNoNiJ9XV0sc1A9W1sicGF0aCIse2Q6Ik0yMSAxMVY1YTIgMiAwIDAgMC0yLTJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNiJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtOS05In1dLFsicGF0aCIse2Q6Ik0yMSAxNXY2aC02In1dXSxsUD1bWyJwYXRoIix7ZDoiTTIxIDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDYifV0sWyJwYXRoIix7ZDoibTIxIDMtOSA5In1dLFsicGF0aCIse2Q6Ik0xNSAzaDZ2NiJ9XV0sY1A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTJoOCJ9XSxbInBhdGgiLHtkOiJtMTIgMTYgNC00LTQtNCJ9XV0sZFA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoiTTggMTZWOGg4In1dLFsicGF0aCIse2Q6Ik0xNiAxNiA4IDgifV1dLHVQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDhoOHY4In1dLFsicGF0aCIse2Q6Im04IDE2IDgtOCJ9XV0scFA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTE2IDEyLTQtNC00IDQifV0sWyJwYXRoIix7ZDoiTTEyIDE2VjgifV1dLGhQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV0sWyJwYXRoIix7ZDoibTguNSAxNCA3LTQifV0sWyJwYXRoIix7ZDoibTguNSAxMCA3IDQifV1dLGZQPVtbImxpbmUiLHt4MToiNSIseTE6IjMiLHgyOiIxOSIseTI6IjMifV0sWyJsaW5lIix7eDE6IjMiLHkxOiI1Iix4MjoiMyIseTI6IjE5In1dLFsibGluZSIse3gxOiIyMSIseTE6IjUiLHgyOiIyMSIseTI6IjE5In1dLFsibGluZSIse3gxOiI5Iix5MToiMjEiLHgyOiIxMCIseTI6IjIxIn1dLFsibGluZSIse3gxOiIxNCIseTE6IjIxIix4MjoiMTUiLHkyOiIyMSJ9XSxbInBhdGgiLHtkOiJNIDMgNSBBMiAyIDAgMCAxIDUgMyJ9XSxbInBhdGgiLHtkOiJNIDE5IDMgQTIgMiAwIDAgMSAyMSA1In1dLFsicGF0aCIse2Q6Ik0gNSAyMSBBMiAyIDAgMCAxIDMgMTkifV0sWyJwYXRoIix7ZDoiTSAyMSAxOSBBMiAyIDAgMCAxIDE5IDIxIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXSxZcD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOSA4aDcifV0sWyJwYXRoIix7ZDoiTTggMTJoNiJ9XSxbInBhdGgiLHtkOiJNMTEgMTZoNSJ9XV0sbVA9W1sicGF0aCIse2Q6Ik0yMSAxMC42NTZWMTlhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDEyLjM0NCJ9XSxbInBhdGgiLHtkOiJtOSAxMSAzIDNMMjIgNCJ9XV0sZ1A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV0sYlA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTE2IDEwLTQgNC00LTQifV1dLHZQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Im0xNCAxNi00LTQgNC00In1dXSx4UD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtMTAgOCA0IDQtNCA0In1dXSx5UD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJtOCAxNCA0LTQgNCA0In1dXSxiaXI9W1sicGF0aCIse2Q6Ik0xMCA5LjUgOCAxMmwyIDIuNSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJtMTQgOS41IDIgMi41LTIgMi41In1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dXSx3UD1bWyJwYXRoIix7ZDoibTEwIDktMyAzIDMgMyJ9XSxbInBhdGgiLHtkOiJtMTQgMTUgMy0zLTMtMyJ9XSxbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dXSx2aXI9W1sicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ2MTRhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dXSxNUD1bWyJwYXRoIix7ZDoiTTggN3Y3In1dLFsicGF0aCIse2Q6Ik0xMiA3djQifV0sWyJwYXRoIix7ZDoiTTE2IDd2OSJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTkgM2gxIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjEgOXYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNHYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMyAxNHYxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XV0sa1A9W1sicGF0aCIse2Q6Ik0xMi4wMzQgMTIuNjgxYS40OTguNDk4IDAgMCAxIC42NDctLjY0N2w5IDMuNWEuNS41IDAgMCAxLS4wMzMuOTQzbC0zLjQ0NCAxLjA2OGExIDEgMCAwIDAtLjY2LjY2bC0xLjA2NyAzLjQ0M2EuNS41IDAgMCAxLS45NDMuMDMzeiJ9XSxbInBhdGgiLHtkOiJNNSAzYTIgMiAwIDAgMC0yIDIifV0sWyJwYXRoIix7ZDoiTTE5IDNhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik05IDNoMSJ9XSxbInBhdGgiLHtkOiJNOSAyMWgyIn1dLFsicGF0aCIse2Q6Ik0xNCAzaDEifV0sWyJwYXRoIix7ZDoiTTMgOXYxIn1dLFsicGF0aCIse2Q6Ik0yMSA5djIifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XV0sU1A9W1sicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNMTkgM2EyIDIgMCAwIDEgMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik01IDIxYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTkgM2gxIn1dLFsicGF0aCIse2Q6Ik05IDIxaDEifV0sWyJwYXRoIix7ZDoiTTE0IDNoMSJ9XSxbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMyA5djEifV0sWyJwYXRoIix7ZDoiTTIxIDl2MSJ9XSxbInBhdGgiLHtkOiJNMyAxNHYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNHYxIn1dXSx4aXI9W1sicGF0aCIse2Q6Ik0xNCAyMWgxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNHYxIn1dLFsicGF0aCIse2Q6Ik0yMSAxOWEyIDIgMCAwIDEtMiAyIn1dLFsicGF0aCIse2Q6Ik0yMSA5djEifV0sWyJwYXRoIix7ZDoiTTMgMTR2MSJ9XSxbInBhdGgiLHtkOiJNMyA1YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMyA5djEifV0sWyJwYXRoIix7ZDoiTTUgMjFhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dXSx6UD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJsaW5lIix7eDE6IjgiLHgyOiIxNiIseTE6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIiLHkxOiIxNiIseTI6IjE2In1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiOCIseTI6IjgifV1dLENQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV1dLFRQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik03IDE0aDEwIn1dXSxfUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJwYXRoIix7ZDoiTTkgMTdjMiAwIDIuOC0xIDIuOC0yLjhWMTBjMC0yIDEtMy4zIDMuMi0zIn1dLFsicGF0aCIse2Q6Ik05IDExLjJoNS43In1dXSxMUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCA3djcifV0sWyJwYXRoIix7ZDoiTTEyIDd2NCJ9XSxbInBhdGgiLHtkOiJNMTYgN3Y5In1dXSxBUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNyA3djEwIn1dLFsicGF0aCIse2Q6Ik0xMSA3djEwIn1dLFsicGF0aCIse2Q6Im0xNSA3IDIgMTAifV1dLERQPVtbInBhdGgiLHtkOiJNOCAxNlY4LjVhLjUuNSAwIDAgMSAuOS0uM2wyLjcgMy41OTlhLjUuNSAwIDAgMCAuOCAwbDIuNy0zLjZhLjUuNSAwIDAgMSAuOS4zVjE2In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLEVQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDhoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTJoMTAifV0sWyJwYXRoIix7ZDoiTTcgMTZoMTAifV1dLCRQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik04IDEyaDgifV1dLElQPVtbInBhdGgiLHtkOiJNMTIuMDM0IDEyLjY4MWEuNDk4LjQ5OCAwIDAgMSAuNjQ3LS42NDdsOSAzLjVhLjUuNSAwIDAgMS0uMDMzLjk0M2wtMy40NDQgMS4wNjhhMSAxIDAgMCAwLS42Ni42NmwtMS4wNjcgMy40NDNhLjUuNSAwIDAgMS0uOTQzLjAzM3oifV0sWyJwYXRoIix7ZDoiTTIxIDExVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg2In1dXSxQUD1bWyJwYXRoIix7ZDoiTTMuNiAzLjZBMiAyIDAgMCAxIDUgM2gxNGEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0uNTkgMS40MSJ9XSxbInBhdGgiLHtkOiJNMyA4LjdWMTlhMiAyIDAgMCAwIDIgMmgxMC4zIn1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV0sWyJwYXRoIix7ZDoiTTEzIDEzYTMgMyAwIDEgMCAwLTZIOXYyIn1dLFsicGF0aCIse2Q6Ik05IDE3di0yLjMifV1dLE5QPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDE3VjdoNGEzIDMgMCAwIDEgMCA2SDkifV1dLHlpcj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbImxpbmUiLHt4MToiMTAiLHgyOiIxMCIseTE6IjE1Iix5MjoiOSJ9XSxbImxpbmUiLHt4MToiMTQiLHgyOiIxNCIseTE6IjE1Iix5MjoiOSJ9XV0sRTQ9W1sicGF0aCIse2Q6Ik0xMiAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTcifV0sWyJwYXRoIix7ZDoiTTE4LjM3NSAyLjYyNWExIDEgMCAwIDEgMyAzbC05LjAxMyA5LjAxNGEyIDIgMCAwIDEtLjg1My41MDVsLTIuODczLjg0YS41LjUgMCAwIDEtLjYyLS42MmwuODQtMi44NzNhMiAyIDAgMCAxIC41MDYtLjg1MnoifV1dLEZQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDdoMTAifV0sWyJwYXRoIix7ZDoiTTEwIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE2IDE3YTIgMiAwIDAgMS0yLTJWNyJ9XV0sT1A9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJwYXRoIix7ZDoibTE1IDktNiA2In1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Ik0xNSAxNWguMDEifV1dLFJQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0xMiAxMkg5LjVhMi41IDIuNSAwIDAgMSAwLTVIMTcifV0sWyJwYXRoIix7ZDoiTTEyIDd2MTAifV0sWyJwYXRoIix7ZDoiTTE2IDd2MTAifV1dLEJQPVtbInJlY3QiLHt4OiIzIix5OiIzIix3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik05IDkuMDAzYTEgMSAwIDAgMSAxLjUxNy0uODU5bDQuOTk3IDIuOTk3YTEgMSAwIDAgMSAwIDEuNzE4bC00Ljk5NyAyLjk5N0ExIDEgMCAwIDEgOSAxNC45OTZ6In1dXSxIUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsicGF0aCIse2Q6Ik0xMiA4djgifV1dLHFQPVtbInBhdGgiLHtkOiJNMTIgN3Y0In1dLFsicGF0aCIse2Q6Ik03Ljk5OCA5LjAwM2E1IDUgMCAxIDAgOC0uMDA1In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLHdpcj1bWyJwYXRoIix7ZDoiTTIxIDExYTggOCAwIDAgMC04LTgifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQifV1dLE1pcj1bWyJwYXRoIix7ZDoiTTcgMTJoMmwyIDUgMi0xMGg0In1dLFsicmVjdCIse3g6IjMiLHk6IjMiLHdpZHRoOiIxOCIsaGVpZ2h0OiIxOCIscng6IjIifV1dLGpQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjguNSIscjoiMS41In1dLFsibGluZSIse3gxOiI5LjU2MDY2Iix5MToiOS41NjA2NiIseDI6IjEyIix5MjoiMTIifV0sWyJsaW5lIix7eDE6IjE3Iix5MToiMTciLHgyOiIxNC44MiIseTI6IjE0LjgyIn1dLFsiY2lyY2xlIix7Y3g6IjguNSIsY3k6IjE1LjUiLHI6IjEuNSJ9XSxbImxpbmUiLHt4MToiOS41NjA2NiIseTE6IjE0LjQzOTM0Iix4MjoiMTciLHkyOiI3In1dXSxWUD1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMTYgOC45VjdIOGw0IDUtNCA1aDh2LTEuOSJ9XV0sVVA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJsaW5lIix7eDE6IjkiLHgyOiIxNSIseTE6IjE1Iix5MjoiOSJ9XV0sV1A9W1sicGF0aCIse2Q6Ik04IDE5SDVjLTEgMC0yLTEtMi0yVjdjMC0xIDEtMiAyLTJoMyJ9XSxbInBhdGgiLHtkOiJNMTYgNWgzYzEgMCAyIDEgMiAydjEwYzAgMS0xIDItMiAyaC0zIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiNCIseTI6IjIwIn1dXSxHUD1bWyJwYXRoIix7ZDoiTTUgOFY1YzAtMSAxLTIgMi0yaDEwYzEgMCAyIDEgMiAydjMifV0sWyJwYXRoIix7ZDoiTTE5IDE2djNjMCAxLTEgMi0yIDJIN2MtMSAwLTItMS0yLTJ2LTMifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjEyIix5MjoiMTIifV1dLGtpcj1bWyJwYXRoIix7ZDoiTTQgMTBjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicGF0aCIse2Q6Ik0xMCAxNmMtMS4xIDAtMi0uOS0yLTJ2LTRjMC0xLjEuOS0yIDItMmg0YzEuMSAwIDIgLjkgMiAyIn1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjE0Iix5OiIxNCIscng6IjIifV1dLFNpcj1bWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XSxbInJlY3QiLHt4OiI4Iix5OiI4Iix3aWR0aDoiOCIsaGVpZ2h0OiI4IixyeDoiMSJ9XV0semlyPVtbInBhdGgiLHtkOiJNMTEuMDM1IDcuNjlhMSAxIDAgMCAxIDEuOTA5LjAyNGwuNzM3IDEuNDUyYTEgMSAwIDAgMCAuNzM3LjUzNWwxLjYzNC4yNTZhMSAxIDAgMCAxIC41ODggMS44MDZsLTEuMTcyIDEuMTY4YTEgMSAwIDAgMC0uMjgyLjg2NmwuMjU5IDEuNjEzYTEgMSAwIDAgMS0xLjU0MSAxLjEzNGwtMS40NjUtLjc1YTEgMSAwIDAgMC0uOTEyIDBsLTEuNDY1Ljc1YTEgMSAwIDAgMS0xLjUzOS0xLjEzM2wuMjU4LTEuNjEzYTEgMSAwIDAgMC0uMjgyLS44NjZsLTEuMTU2LTEuMTUzYTEgMSAwIDAgMSAuNTcyLTEuODIybDEuNjMzLS4yNTZhMSAxIDAgMCAwIC43MzctLjUzNXoifV0sWyJyZWN0Iix7eDoiMyIseToiMyIsd2lkdGg6IjE4IixoZWlnaHQ6IjE4IixyeDoiMiJ9XV0sQ2lyPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicmVjdCIse3g6IjkiLHk6IjkiLHdpZHRoOiI2IixoZWlnaHQ6IjYiLHJ4OiIxIn1dXSxZUD1bWyJwYXRoIix7ZDoibTcgMTEgMi0yLTItMiJ9XSxbInBhdGgiLHtkOiJNMTEgMTNoNCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIixyeToiMiJ9XV0sWlA9W1sicGF0aCIse2Q6Ik0xOCAyMWE2IDYgMCAwIDAtMTIgMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjExIixyOiI0In1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV1dLFhQPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTAiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTcgMjF2LTJhMiAyIDAgMCAxIDItMmg2YTIgMiAwIDAgMSAyIDJ2MiJ9XV0sUVA9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIiLHJ5OiIyIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJtOSA5IDYgNiJ9XV0sVGlyPVtbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXSxfaXI9W1sicGF0aCIse2Q6Ik0xNiAxMnYyYTIgMiAwIDAgMS0yIDJIOWExIDEgMCAwIDAtMSAxdjNhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0yVjEwYTIgMiAwIDAgMC0yLTJoMCJ9XSxbInBhdGgiLHtkOiJNNCAxNmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmgxMGEyIDIgMCAwIDEgMiAydjNhMSAxIDAgMCAxLTEgMWgtNWEyIDIgMCAwIDAtMiAydjIifV1dLExpcj1bWyJwYXRoIix7ZDoiTTEwIDIyYTIgMiAwIDAgMS0yLTIifV0sWyJwYXRoIix7ZDoiTTE0IDJhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMTYgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTIgMTBWOCJ9XSxbInBhdGgiLHtkOiJNMiA0YTIgMiAwIDAgMSAyLTIifV0sWyJwYXRoIix7ZDoiTTIwIDhhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMjIgMjBhMiAyIDAgMCAxLTIgMiJ9XSxbInBhdGgiLHtkOiJNNCAxNmEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik04IDEwYTIgMiAwIDAgMSAyLTJoNWExIDEgMCAwIDEgMSAxdjVhMiAyIDAgMCAxLTIgMkg5YTEgMSAwIDAgMS0xLTF6In1dLFsicGF0aCIse2Q6Ik04IDJoMiJ9XV0sQWlyPVtbInBhdGgiLHtkOiJNMTAgMjJhMiAyIDAgMCAxLTItMiJ9XSxbInBhdGgiLHtkOiJNMTYgMjJoLTIifV0sWyJwYXRoIix7ZDoiTTE2IDRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgzYTEgMSAwIDAgMCAxLTF2LTVhMiAyIDAgMCAxIDItMmg1YTEgMSAwIDAgMCAxLTF6In1dLFsicGF0aCIse2Q6Ik0yMCA4YTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIyIDE0djIifV0sWyJwYXRoIix7ZDoiTTIyIDIwYTIgMiAwIDAgMS0yIDIifV1dLERpcj1bWyJwYXRoIix7ZDoiTTQgMTZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYzYTEgMSAwIDAgMCAxIDFoM2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJIMTBhMiAyIDAgMCAxLTItMnYtM2ExIDEgMCAwIDAtMS0xeiJ9XV0sRWlyPVtbInBhdGgiLHtkOiJNMTMuNzcgMy4wNDNhMzQgMzQgMCAwIDAtMy41NCAwIn1dLFsicGF0aCIse2Q6Ik0xMy43NzEgMjAuOTU2YTMzIDMzIDAgMCAxLTMuNTQxLjAwMSJ9XSxbInBhdGgiLHtkOiJNMjAuMTggMTcuNzRjLS41MSAxLjE1LTEuMjkgMS45My0yLjQzOSAyLjQ0In1dLFsicGF0aCIse2Q6Ik0yMC4xOCA2LjI1OWMtLjUxLTEuMTQ4LTEuMjkxLTEuOTI5LTIuNDQtMi40MzgifV0sWyJwYXRoIix7ZDoiTTIwLjk1NyAxMC4yM2EzMyAzMyAwIDAgMSAwIDMuNTQifV0sWyJwYXRoIix7ZDoiTTMuMDQzIDEwLjIzYTM0IDM0IDAgMCAwIC4wMDEgMy41NDEifV0sWyJwYXRoIix7ZDoiTTYuMjYgMjAuMTc5Yy0xLjE1LS41MDgtMS45My0xLjI5LTIuNDQtMi40MzgifV0sWyJwYXRoIix7ZDoiTTYuMjYgMy44MmMtMS4xNDkuNTEtMS45MyAxLjI5MS0yLjQ0IDIuNDQifV1dLCRpcj1bWyJwYXRoIix7ZDoiTTEyIDNjNy4yIDAgOSAxLjggOSA5cy0xLjggOS05IDktOS0xLjgtOS05IDEuOC05IDktOSJ9XV0sSWlyPVtbInBhdGgiLHtkOiJNMTUuMjM2IDIyYTMgMyAwIDAgMC0yLjItNSJ9XSxbInBhdGgiLHtkOiJNMTYgMjBhMyAzIDAgMCAxIDMtM2gxYTIgMiAwIDAgMCAyLTJ2LTJhNCA0IDAgMCAwLTQtNFY0In1dLFsicGF0aCIse2Q6Ik0xOCAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTE4IDZhNCA0IDAgMCAwLTQgNCA3IDcgMCAwIDAtNyA3YzAtNSA0LTUgNC0xMC41YTQuNSA0LjUgMCAxIDAtOSAwIDIuNSAyLjUgMCAwIDAgNSAwQzcgMTAgMyAxMSAzIDE3YzAgMi44IDIuMiA1IDUgNWgxMCJ9XV0sUGlyPVtbInBhdGgiLHtkOiJNMTQgMTNWOC41QzE0IDcgMTUgNyAxNSA1YTMgMyAwIDAgMC02IDBjMCAyIDEgMiAxIDMuNVYxMyJ9XSxbInBhdGgiLHtkOiJNMjAgMTUuNWEyLjUgMi41IDAgMCAwLTIuNS0yLjVoLTExQTIuNSAyLjUgMCAwIDAgNCAxNS41VjE3YTEgMSAwIDAgMCAxIDFoMTRhMSAxIDAgMCAwIDEtMXoifV0sWyJwYXRoIix7ZDoiTTUgMjJoMTQifV1dLE5pcj1bWyJwYXRoIix7ZDoiTTEyIDE4LjMzOGEyLjEgMi4xIDAgMCAwLS45ODcuMjQ0TDYuMzk2IDIxLjAxYS41My41MyAwIDAgMS0uNzctLjU2bC44ODEtNS4xMzlhMi4xMiAyLjEyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMiAyLjEyIDAgMCAwIDEuNTk3LTEuMTZsMi4zMDktNC42NzlBLjUzLjUzIDAgMCAxIDEyIDIifV1dLEZpcj1bWyJwYXRoIix7ZDoibTEwLjM0NCA0LjY4OCAxLjE4MS0yLjM5M2EuNTMuNTMgMCAwIDEgLjk1IDBsMi4zMSA0LjY3OWEyLjEyIDIuMTIgMCAwIDAgMS41OTUgMS4xNmw1LjE2Ni43NTZhLjUzLjUzIDAgMCAxIC4yOTQuOTA0bC0zLjIzNyAzLjE1MiJ9XSxbInBhdGgiLHtkOiJtMTcuOTQ1IDE3Ljk0NS40MyAyLjUwNWEuNTMuNTMgMCAwIDEtLjc3MS41NmwtNC42MTgtMi40MjhhMi4xMiAyLjEyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyIDIuMTIgMCAwIDAtLjYxMS0xLjg3OUwyLjE2IDkuNzk1YS41My41MyAwIDAgMSAuMjk0LS45MDZsNS4xNjUtLjc1NWE4IDggMCAwIDAgLjQtLjA5OSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxPaXI9W1sicGF0aCIse2Q6Ik0xMS41MjUgMi4yOTVhLjUzLjUzIDAgMCAxIC45NSAwbDIuMzEgNC42NzlhMi4xMjMgMi4xMjMgMCAwIDAgMS41OTUgMS4xNmw1LjE2Ni43NTZhLjUzLjUzIDAgMCAxIC4yOTQuOTA0bC0zLjczNiAzLjYzOGEyLjEyMyAyLjEyMyAwIDAgMC0uNjExIDEuODc4bC44ODIgNS4xNGEuNTMuNTMgMCAwIDEtLjc3MS41NmwtNC42MTgtMi40MjhhMi4xMjIgMi4xMjIgMCAwIDAtMS45NzMgMEw2LjM5NiAyMS4wMWEuNTMuNTMgMCAwIDEtLjc3LS41NmwuODgxLTUuMTM5YTIuMTIyIDIuMTIyIDAgMCAwLS42MTEtMS44NzlMMi4xNiA5Ljc5NWEuNTMuNTMgMCAwIDEgLjI5NC0uOTA2bDUuMTY1LS43NTVhMi4xMjIgMi4xMjIgMCAwIDAgMS41OTctMS4xNnoifV1dLFJpcj1bWyJwYXRoIix7ZDoiTTEzLjk3MSA0LjI4NUEyIDIgMCAwIDEgMTcgNnYxMmEyIDIgMCAwIDEtMy4wMjkgMS43MTVsLTkuOTk3LTUuOTk4YTIgMiAwIDAgMS0uMDAzLTMuNDMyeiJ9XSxbInBhdGgiLHtkOiJNMjEgMjBWNCJ9XV0sQmlyPVtbInBhdGgiLHtkOiJNMTAuMDI5IDQuMjg1QTIgMiAwIDAgMCA3IDZ2MTJhMiAyIDAgMCAwIDMuMDI5IDEuNzE1bDkuOTk3LTUuOTk4YTIgMiAwIDAgMCAuMDAzLTMuNDMyeiJ9XSxbInBhdGgiLHtkOiJNMyA0djE2In1dXSxIaXI9W1sicGF0aCIse2Q6Ik0xMSAydjIifV0sWyJwYXRoIix7ZDoiTTUgMnYyIn1dLFsicGF0aCIse2Q6Ik01IDNINGEyIDIgMCAwIDAtMiAydjRhNiA2IDAgMCAwIDEyIDBWNWEyIDIgMCAwIDAtMi0yaC0xIn1dLFsicGF0aCIse2Q6Ik04IDE1YTYgNiAwIDAgMCAxMiAwdi0zIn1dLFsiY2lyY2xlIix7Y3g6IjIwIixjeToiMTAiLHI6IjIifV1dLHFpcj1bWyJwYXRoIix7ZDoiTTIxIDlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTE1IDN2NWExIDEgMCAwIDAgMSAxaDUifV0sWyJwYXRoIix7ZDoiTTggMTNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNiAxM2guMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE2cy44IDEgMiAxYzEuMyAwIDItMSAyLTEifV1dLGppcj1bWyJwYXRoIix7ZDoiTTIxIDlhMi40IDIuNCAwIDAgMC0uNzA2LTEuNzA2bC0zLjU4OC0zLjU4OEEyLjQgMi40IDAgMCAwIDE1IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTE1IDN2NWExIDEgMCAwIDAgMSAxaDUifV1dLFZpcj1bWyJwYXRoIix7ZDoiTTExLjI2NCAyLjIwNUE0IDQgMCAwIDAgNi40MiA0LjIxMWwtNCA4YTQgNCAwIDAgMCAxLjM1OSA1LjExN2w2IDRhNCA0IDAgMCAwIDQuNDM4IDBsNi00YTQgNCAwIDAgMCAxLjU3Ni00LjU5MmwtMi02YTQgNCAwIDAgMC0yLjUzLTIuNTN6In1dLFsicGF0aCIse2Q6Ik0xMS45OSAyMiAxNCAxMmw3LjgyMiAzLjE4NCJ9XSxbInBhdGgiLHtkOiJNMTQgMTIgOC40NyAyLjMwMiJ9XV0sVWlyPVtbInBhdGgiLHtkOiJNMTUgMjF2LTVhMSAxIDAgMCAwLTEtMWgtNGExIDEgMCAwIDAtMSAxdjUifV0sWyJwYXRoIix7ZDoiTTE3Ljc3NCAxMC4zMWExLjEyIDEuMTIgMCAwIDAtMS41NDkgMCAyLjUgMi41IDAgMCAxLTMuNDUxIDAgMS4xMiAxLjEyIDAgMCAwLTEuNTQ4IDAgMi41IDIuNSAwIDAgMS0zLjQ1MiAwIDEuMTIgMS4xMiAwIDAgMC0xLjU0OSAwIDIuNSAyLjUgMCAwIDEtMy43Ny0zLjI0OGwyLjg4OS00LjE4NEEyIDIgMCAwIDEgNyAyaDEwYTIgMiAwIDAgMSAxLjY1My44NzNsMi44OTUgNC4xOTJhMi41IDIuNSAwIDAgMS0zLjc3NCAzLjI0NCJ9XSxbInBhdGgiLHtkOiJNNCAxMC45NVYxOWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTguMDUifV1dLFdpcj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjYiLHg6IjIiLHk6IjQiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiI2Iix4OiIyIix5OiIxNCIscng6IjIifV1dLEdpcj1bWyJyZWN0Iix7d2lkdGg6IjYiLGhlaWdodDoiMjAiLHg6IjQiLHk6IjIiLHJ4OiIyIn1dLFsicmVjdCIse3dpZHRoOiI2IixoZWlnaHQ6IjIwIix4OiIxNCIseToiMiIscng6IjIifV1dLFlpcj1bWyJwYXRoIix7ZDoiTTE2IDRIOWEzIDMgMCAwIDAtMi44MyA0In1dLFsicGF0aCIse2Q6Ik0xNCAxMmE0IDQgMCAwIDEgMCA4SDYifV0sWyJsaW5lIix7eDE6IjQiLHgyOiIyMCIseTE6IjEyIix5MjoiMTIifV1dLFppcj1bWyJwYXRoIix7ZDoibTQgNSA4IDgifV0sWyJwYXRoIix7ZDoibTEyIDUtOCA4In1dLFsicGF0aCIse2Q6Ik0yMCAxOWgtNGMwLTEuNS40NC0yIDEuNS0yLjVTMjAgMTUuMzMgMjAgMTRjMC0uNDctLjE3LS45My0uNDgtMS4yOWEyLjExIDIuMTEgMCAwIDAtMi42Mi0uNDRjLS40Mi4yNC0uNzQuNjItLjkgMS4wNyJ9XV0sWGlyPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiA0aC4wMSJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTQgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy42NTcgNi4zNDNoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNy42NTcgMTcuNjU3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNi4zNDMgMTcuNjU3aC4wMSJ9XSxbInBhdGgiLHtkOiJNNi4zNDMgNi4zNDNoLjAxIn1dXSxRaXI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEyIDN2MSJ9XSxbInBhdGgiLHtkOiJNMTIgMjB2MSJ9XSxbInBhdGgiLHtkOiJNMyAxMmgxIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgxIn1dLFsicGF0aCIse2Q6Im0xOC4zNjQgNS42MzYtLjcwNy43MDcifV0sWyJwYXRoIix7ZDoibTYuMzQzIDE3LjY1Ny0uNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtNS42MzYgNS42MzYuNzA3LjcwNyJ9XSxbInBhdGgiLHtkOiJtMTcuNjU3IDE3LjY1Ny43MDcuNzA3In1dXSxKaXI9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE0LjgzNyAxNi4zODVhNiA2IDAgMSAxLTcuMjIzLTcuMjIyYy42MjQtLjE0Ny45Ny42Ni43MTUgMS4yNDhhNCA0IDAgMCAwIDUuMjYgNS4yNTljLjU4OS0uMjU1IDEuMzk2LjA5IDEuMjQ4LjcxNSJ9XSxbInBhdGgiLHtkOiJNMTYgMTJhNCA0IDAgMCAwLTQtNCJ9XSxbInBhdGgiLHtkOiJtMTkgNS0xLjI1NiAxLjI1NiJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiJ9XV0sS2lyPVtbInBhdGgiLHtkOiJNMTAgMjF2LTEifV0sWyJwYXRoIix7ZDoiTTEwIDRWMyJ9XSxbInBhdGgiLHtkOiJNMTAgOWEzIDMgMCAwIDAgMCA2In1dLFsicGF0aCIse2Q6Im0xNCAyMCAxLjI1LTIuNUwxOCAxOCJ9XSxbInBhdGgiLHtkOiJtMTQgNCAxLjI1IDIuNUwxOCA2In1dLFsicGF0aCIse2Q6Im0xNyAyMS0zLTYgMS41LTNIMjIifV0sWyJwYXRoIix7ZDoibTE3IDMtMyA2IDEuNSAzIn1dLFsicGF0aCIse2Q6Ik0yIDEyaDEifV0sWyJwYXRoIix7ZDoibTIwIDEwLTEuNSAyIDEuNSAyIn1dLFsicGF0aCIse2Q6Im0zLjY0IDE4LjM2LjctLjcifV0sWyJwYXRoIix7ZDoibTQuMzQgNi4zNC0uNy0uNyJ9XV0sZWFyPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI0In1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIifV0sWyJwYXRoIix7ZDoibTQuOTMgNC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoibTE3LjY2IDE3LjY2IDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIn1dLFsicGF0aCIse2Q6Ik0yMCAxMmgyIn1dLFsicGF0aCIse2Q6Im02LjM0IDE3LjY2LTEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEifV1dLHRhcj1bWyJwYXRoIix7ZDoiTTEyIDJ2OCJ9XSxbInBhdGgiLHtkOiJtNC45MyAxMC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIgMThoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMThoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgMTAuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yMiAyMkgyIn1dLFsicGF0aCIse2Q6Im04IDYgNC00IDQgNCJ9XSxbInBhdGgiLHtkOiJNMTYgMThhNCA0IDAgMCAwLTggMCJ9XV0scmFyPVtbInBhdGgiLHtkOiJNMTIgMTBWMiJ9XSxbInBhdGgiLHtkOiJtNC45MyAxMC45MyAxLjQxIDEuNDEifV0sWyJwYXRoIix7ZDoiTTIgMThoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMThoMiJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgMTAuOTMtMS40MSAxLjQxIn1dLFsicGF0aCIse2Q6Ik0yMiAyMkgyIn1dLFsicGF0aCIse2Q6Im0xNiA2LTQgNC00LTQifV0sWyJwYXRoIix7ZDoiTTE2IDE4YTQgNCAwIDAgMC04IDAifV1dLGlhcj1bWyJwYXRoIix7ZDoibTQgMTkgOC04In1dLFsicGF0aCIse2Q6Im0xMiAxOS04LTgifV0sWyJwYXRoIix7ZDoiTTIwIDEyaC00YzAtMS41LjQ0Mi0yIDEuNS0yLjVTMjAgOC4zMzQgMjAgNy4wMDJjMC0uNDcyLS4xNy0uOTMtLjQ4NC0xLjI5YTIuMTA1IDIuMTA1IDAgMCAwLTIuNjE3LS40MzZjLS40Mi4yMzktLjczOC42MTQtLjg5OSAxLjA2In1dXSxhYXI9W1sicGF0aCIse2Q6Ik0xMSAxN2E0IDQgMCAwIDEtOCAwVjVhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJaIn1dLFsicGF0aCIse2Q6Ik0xNi43IDEzSDE5YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAySDcifV0sWyJwYXRoIix7ZDoiTSA3IDE3aC4wMSJ9XSxbInBhdGgiLHtkOiJtMTEgOCAyLjMtMi4zYTIuNCAyLjQgMCAwIDEgMy40MDQuMDA0TDE4LjYgNy42YTIuNCAyLjQgMCAwIDEgLjAyNiAzLjQzNEw5LjkgMTkuOCJ9XV0sbmFyPVtbInBhdGgiLHtkOiJNMTAgMjFWM2g4In1dLFsicGF0aCIse2Q6Ik02IDE2aDkifV0sWyJwYXRoIix7ZDoiTTEwIDkuNWg3In1dXSxvYXI9W1sicGF0aCIse2Q6Ik0xMSAxOUg0YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDUifV0sWyJwYXRoIix7ZDoiTTEzIDVoN2EyIDIgMCAwIDEgMiAydjEwYTIgMiAwIDAgMS0yIDJoLTUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMTggMjItMy0zIDMtMyJ9XSxbInBhdGgiLHtkOiJtNiAyIDMgMy0zIDMifV1dLHNhcj1bWyJwYXRoIix7ZDoibTExIDE5LTYtNiJ9XSxbInBhdGgiLHtkOiJtNSAyMS0yLTIifV0sWyJwYXRoIix7ZDoibTggMTYtNCA0In1dLFsicGF0aCIse2Q6Ik05LjUgMTcuNSAyMSA2VjNoLTNMNi41IDE0LjUifV1dLGxhcj1bWyJwb2x5bGluZSIse3BvaW50czoiMTQuNSAxNy41IDMgNiAzIDMgNiAzIDE3LjUgMTQuNSJ9XSxbImxpbmUiLHt4MToiMTMiLHgyOiIxOSIseTE6IjE5Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjE2Iix4MjoiMjAiLHkxOiIxNiIseTI6IjIwIn1dLFsibGluZSIse3gxOiIxOSIseDI6IjIxIix5MToiMjEiLHkyOiIxOSJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIxNC41IDYuNSAxOCAzIDIxIDMgMjEgNiAxNy41IDkuNSJ9XSxbImxpbmUiLHt4MToiNSIseDI6IjkiLHkxOiIxNCIseTI6IjE4In1dLFsibGluZSIse3gxOiI3Iix4MjoiNCIseTE6IjE3Iix5MjoiMjAifV0sWyJsaW5lIix7eDE6IjMiLHgyOiI1Iix5MToiMTkiLHkyOiIyMSJ9XV0sY2FyPVtbInBhdGgiLHtkOiJtMTggMiA0IDQifV0sWyJwYXRoIix7ZDoibTE3IDcgMy0zIn1dLFsicGF0aCIse2Q6Ik0xOSA5IDguNyAxOS4zYy0xIDEtMi41IDEtMy40IDBsLS42LS42Yy0xLTEtMS0yLjUgMC0zLjRMMTUgNSJ9XSxbInBhdGgiLHtkOiJtOSAxMSA0IDQifV0sWyJwYXRoIix7ZDoibTUgMTktMyAzIn1dLFsicGF0aCIse2Q6Im0xNCA0IDYgNiJ9XV0sZGFyPVtbInBhdGgiLHtkOiJNOSAzSDVhMiAyIDAgMCAwLTIgMnY0bTYtNmgxMGEyIDIgMCAwIDEgMiAydjRNOSAzdjE4bTAgMGgxMGEyIDIgMCAwIDAgMi0yVjlNOSAyMUg1YTIgMiAwIDAgMS0yLTJWOW0wIDBoMTgifV1dLHVhcj1bWyJwYXRoIix7ZDoiTTEyIDIxdi02In1dLFsicGF0aCIse2Q6Ik0xMiA5VjMifV0sWyJwYXRoIix7ZDoiTTMgMTVoMTgifV0sWyJwYXRoIix7ZDoiTTMgOWgxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dXSxwYXI9W1sicGF0aCIse2Q6Ik0xMiAxNVY5In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDloMTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XV0saGFyPVtbInBhdGgiLHtkOiJNMTQgMTR2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMjB2MiJ9XSxbInBhdGgiLHtkOiJNMTQgMnYyIn1dLFsicGF0aCIse2Q6Ik0xNCA4djIifV0sWyJwYXRoIix7ZDoiTTIgMTVoOCJ9XSxbInBhdGgiLHtkOiJNMiAzaDZhMiAyIDAgMCAxIDIgMnYxNGEyIDIgMCAwIDEtMiAySDIifV0sWyJwYXRoIix7ZDoiTTIgOWg4In1dLFsicGF0aCIse2Q6Ik0yMiAxNWgtNCJ9XSxbInBhdGgiLHtkOiJNMjIgM2gtMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMiJ9XSxbInBhdGgiLHtkOiJNMjIgOWgtNCJ9XSxbInBhdGgiLHtkOiJNNSAzdjE4In1dXSxmYXI9W1sicGF0aCIse2Q6Ik0xNiA1SDMifV0sWyJwYXRoIix7ZDoiTTE2IDEySDMifV0sWyJwYXRoIix7ZDoiTTE2IDE5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDVoLjAxIn1dLFsicGF0aCIse2Q6Ik0yMSAxMmguMDEifV0sWyJwYXRoIix7ZDoiTTIxIDE5aC4wMSJ9XV0sbWFyPVtbInBhdGgiLHtkOiJNMTUgM3YxOCJ9XSxbInJlY3QiLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik0yMSA5SDMifV0sWyJwYXRoIix7ZDoiTTIxIDE1SDMifV1dLGdhcj1bWyJwYXRoIix7ZDoiTTE0IDEwaDIifV0sWyJwYXRoIix7ZDoiTTE1IDIydi04In1dLFsicGF0aCIse2Q6Ik0xNSAydjQifV0sWyJwYXRoIix7ZDoiTTIgMTBoMiJ9XSxbInBhdGgiLHtkOiJNMjAgMTBoMiJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XSxbInBhdGgiLHtkOiJNMyAyMnYtNmEyIDIgMTM1IDAgMSAyLTJoMTRhMiAyIDQ1IDAgMSAyIDJ2NiJ9XSxbInBhdGgiLHtkOiJNMyAydjJhMiAyIDQ1IDAgMCAyIDJoMTRhMiAyIDEzNSAwIDAgMi0yVjIifV0sWyJwYXRoIix7ZDoiTTggMTBoMiJ9XSxbInBhdGgiLHtkOiJNOSAyMnYtOCJ9XSxbInBhdGgiLHtkOiJNOSAydjQifV1dLGJhcj1bWyJwYXRoIix7ZDoiTTEyIDN2MTgifV0sWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5aDE4In1dLFsicGF0aCIse2Q6Ik0zIDE1aDE4In1dXSx4YXI9W1sicmVjdCIse3dpZHRoOiIxNiIsaGVpZ2h0OiIyMCIseDoiNCIseToiMiIscng6IjIiLHJ5OiIyIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyLjAxIix5MToiMTgiLHkyOiIxOCJ9XV0seWFyPVtbInJlY3QiLHt3aWR0aDoiMTAiLGhlaWdodDoiMTQiLHg6IjMiLHk6IjgiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik01IDRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjE2YTIgMiAwIDAgMS0yIDJoLTIuNCJ9XSxbInBhdGgiLHtkOiJNOCAxOGguMDEifV1dLHdhcj1bWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjciLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoMTAifV0sWyJwYXRoIix7ZDoibTMuNDYgMTAuNTQgNy4wOC03LjA4In1dXSxNYXI9W1sicGF0aCIse2Q6Ik0xMi41ODYgMi41ODZBMiAyIDAgMCAwIDExLjE3MiAySDRhMiAyIDAgMCAwLTIgMnY3LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw4LjcwNCA4LjcwNGEyLjQyNiAyLjQyNiAwIDAgMCAzLjQyIDBsNi41OC02LjU4YTIuNDI2IDIuNDI2IDAgMCAwIDAtMy40MnoifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dXSxrYXI9W1sicGF0aCIse2Q6Ik0xMy4xNzIgMmEyIDIgMCAwIDEgMS40MTQuNTg2bDYuNzEgNi43MWEyLjQgMi40IDAgMCAxIDAgMy40MDhsLTQuNTkyIDQuNTkyYTIuNCAyLjQgMCAwIDEtMy40MDggMGwtNi43MS02LjcxQTIgMiAwIDAgMSA2IDkuMTcyVjNhMSAxIDAgMCAxIDEtMXoifV0sWyJwYXRoIix7ZDoiTTIgN3Y2LjE3MmEyIDIgMCAwIDAgLjU4NiAxLjQxNGw2LjcxIDYuNzFhMi40IDIuNCAwIDAgMCAzLjE5MS4xOTMifV0sWyJjaXJjbGUiLHtjeDoiMTAuNSIsY3k6IjYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XV0sU2FyPVtbInBhdGgiLHtkOiJNNCA0djE2In1dXSx6YXI9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XV0sQ2FyPVtbInBhdGgiLHtkOiJNNCA0djE2In1dLFsicGF0aCIse2Q6Ik05IDR2MTYifV0sWyJwYXRoIix7ZDoiTTE0IDR2MTYifV1dLFRhcj1bWyJwYXRoIix7ZDoiTTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNOSA0djE2In1dLFsicGF0aCIse2Q6Ik0xNCA0djE2In1dLFsicGF0aCIse2Q6Ik0xOSA0djE2In1dXSxfYXI9W1sicGF0aCIse2Q6Ik00IDR2MTYifV0sWyJwYXRoIix7ZDoiTTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTQgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMTkgNHYxNiJ9XSxbInBhdGgiLHtkOiJNMjIgNiAyIDE4In1dXSxMYXI9W1siY2lyY2xlIix7Y3g6IjE3IixjeToiNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTUuNTkgNS40MSA1LjQxIDE1LjU5In1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIxNyIscjoiMiJ9XSxbInBhdGgiLHtkOiJNMTIgMjJzLTQtOS0xLjUtMTEuNVMyMiAxMiAyMiAxMiJ9XV0sQWFyPVtbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIxMCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjIifV1dLERhcj1bWyJwYXRoIix7ZDoibTEwLjA2NSAxMi40OTMtNi4xOCAxLjMxOGEuOTM0LjkzNCAwIDAgMS0xLjEwOC0uNzAybC0uNTM3LTIuMTVhMS4wNyAxLjA3IDAgMCAxIC42OTEtMS4yNjVsMTMuNTA0LTQuNDQifV0sWyJwYXRoIix7ZDoibTEzLjU2IDExLjc0NyA0LjMzMi0uOTI0In1dLFsicGF0aCIse2Q6Im0xNiAyMS0zLjEwNS02LjIxIn1dLFsicGF0aCIse2Q6Ik0xNi40ODUgNS45NGEyIDIgMCAwIDEgMS40NTUtMi40MjVsMS4wOS0uMjcyYTEgMSAwIDAgMSAxLjIxMi43MjdsMS41MTUgNi4wNmExIDEgMCAwIDEtLjcyNyAxLjIxM2wtMS4wOS4yNzJhMiAyIDAgMCAxLTIuNDI1LTEuNDU1eiJ9XSxbInBhdGgiLHtkOiJtNi4xNTggOC42MzMgMS4xMTQgNC40NTYifV0sWyJwYXRoIix7ZDoibTggMjEgMy4xMDUtNi4yMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiIyIn1dXSxFYXI9W1siY2lyY2xlIix7Y3g6IjQiLGN5OiI0IixyOiIyIn1dLFsicGF0aCIse2Q6Im0xNCA1IDMtMyAzIDMifV0sWyJwYXRoIix7ZDoibTE0IDEwIDMtMyAzIDMifV0sWyJwYXRoIix7ZDoiTTE3IDE0VjIifV0sWyJwYXRoIix7ZDoiTTE3IDE0SDdsLTUgOGgyMFoifV0sWyJwYXRoIix7ZDoiTTggMTR2OCJ9XSxbInBhdGgiLHtkOiJtOSAxNCA1IDgifV1dLCRhcj1bWyJwYXRoIix7ZDoiTTMuNSAyMSAxNCAzIn1dLFsicGF0aCIse2Q6Ik0yMC41IDIxIDEwIDMifV0sWyJwYXRoIix7ZDoiTTE1LjUgMjEgMTIgMTVsLTMuNSA2In1dLFsicGF0aCIse2Q6Ik0yIDIxaDIwIn1dXSxJYXI9W1sicGF0aCIse2Q6Ik0xMiAxOWg4In1dLFsicGF0aCIse2Q6Im00IDE3IDYtNi02LTYifV1dLEpQPVtbInBhdGgiLHtkOiJNMjEgNyA2LjgyIDIxLjE4YTIuODMgMi44MyAwIDAgMS0zLjk5LS4wMWEyLjgzIDIuODMgMCAwIDEgMC00TDE3IDMifV0sWyJwYXRoIix7ZDoibTE2IDIgNiA2In1dLFsicGF0aCIse2Q6Ik0xMiAxNkg0In1dXSxQYXI9W1sicGF0aCIse2Q6Ik0xNC41IDJ2MTcuNWMwIDEuNC0xLjEgMi41LTIuNSAyLjVjLTEuNCAwLTIuNS0xLjEtMi41LTIuNVYyIn1dLFsicGF0aCIse2Q6Ik04LjUgMmg3In1dLFsicGF0aCIse2Q6Ik0xNC41IDE2aC01In1dXSxOYXI9W1sicGF0aCIse2Q6Ik05IDJ2MTcuNUEyLjUgMi41IDAgMCAxIDYuNSAyMkEyLjUgMi41IDAgMCAxIDQgMTkuNVYyIn1dLFsicGF0aCIse2Q6Ik0yMCAydjE3LjVhMi41IDIuNSAwIDAgMS0yLjUgMi41YTIuNSAyLjUgMCAwIDEtMi41LTIuNVYyIn1dLFsicGF0aCIse2Q6Ik0zIDJoNyJ9XSxbInBhdGgiLHtkOiJNMTQgMmg3In1dLFsicGF0aCIse2Q6Ik05IDE2SDQifV0sWyJwYXRoIix7ZDoiTTIwIDE2aC01In1dXSxLUD1bWyJwYXRoIix7ZDoiTTIxIDVIMyJ9XSxbInBhdGgiLHtkOiJNMTcgMTJINyJ9XSxbInBhdGgiLHtkOiJNMTkgMTlINSJ9XV0sZU49W1sicGF0aCIse2Q6Ik0yMSA1SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEySDkifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDcifV1dLHROPVtbInBhdGgiLHtkOiJNMyA1aDE4In1dLFsicGF0aCIse2Q6Ik0zIDEyaDE4In1dLFsicGF0aCIse2Q6Ik0zIDE5aDE4In1dXSxGYXI9W1sicGF0aCIse2Q6Ik0xMiAyMGgtMWEyIDIgMCAwIDEtMi0yIDIgMiAwIDAgMS0yIDJINiJ9XSxbInBhdGgiLHtkOiJNMTMgOGg3YTIgMiAwIDAgMSAyIDJ2NGEyIDIgMCAwIDEtMiAyaC03In1dLFsicGF0aCIse2Q6Ik01IDE2SDRhMiAyIDAgMCAxLTItMnYtNGEyIDIgMCAwIDEgMi0yaDEifV0sWyJwYXRoIix7ZDoiTTYgNGgxYTIgMiAwIDAgMSAyIDIgMiAyIDAgMCAxIDItMmgxIn1dLFsicGF0aCIse2Q6Ik05IDZ2MTIifV1dLFpwPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xNSAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xNyAxOUgzIn1dXSxPYXI9W1sicGF0aCIse2Q6Ik0xNyAyMmgtMWE0IDQgMCAwIDEtNC00VjZhNCA0IDAgMCAxIDQtNGgxIn1dLFsicGF0aCIse2Q6Ik03IDIyaDFhNCA0IDAgMCAwIDQtNHYtMSJ9XSxbInBhdGgiLHtkOiJNNyAyaDFhNCA0IDAgMCAxIDQgNHYxIn1dXSxyTj1bWyJwYXRoIix7ZDoiTTE1IDVoNiJ9XSxbInBhdGgiLHtkOiJNMTUgMTJoNiJ9XSxbInBhdGgiLHtkOiJNMyAxOWgxOCJ9XSxbInBhdGgiLHtkOiJtMyAxMiAzLjU1My03LjcyNGEuNS41IDAgMCAxIC44OTQgMEwxMSAxMiJ9XSxbInBhdGgiLHtkOiJNMy45MiAxMGg2LjE2In1dXSxSYXI9W1sicGF0aCIse2Q6Ik0xNyA1SDMifV0sWyJwYXRoIix7ZDoiTTIxIDEySDgifV0sWyJwYXRoIix7ZDoiTTIxIDE5SDgifV0sWyJwYXRoIix7ZDoiTTMgMTJ2NyJ9XV0sQmFyPVtbInBhdGgiLHtkOiJNMjEgNUgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkgzIn1dLFsicGF0aCIse2Q6Ik0xMCAxOUgzIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTUiLHI6IjMifV0sWyJwYXRoIix7ZDoibTIxIDE5LTEuOS0xLjkifV1dLGlOPVtbInBhdGgiLHtkOiJNMTQgMjFoMSJ9XSxbInBhdGgiLHtkOiJNMTQgM2gxIn1dLFsicGF0aCIse2Q6Ik0xOSAzYTIgMiAwIDAgMSAyIDIifV0sWyJwYXRoIix7ZDoiTTIxIDE0djEifV0sWyJwYXRoIix7ZDoiTTIxIDE5YTIgMiAwIDAgMS0yIDIifV0sWyJwYXRoIix7ZDoiTTIxIDl2MSJ9XSxbInBhdGgiLHtkOiJNMyAxNHYxIn1dLFsicGF0aCIse2Q6Ik0zIDl2MSJ9XSxbInBhdGgiLHtkOiJNNSAyMWEyIDIgMCAwIDEtMi0yIn1dLFsicGF0aCIse2Q6Ik01IDNhMiAyIDAgMCAwLTIgMiJ9XSxbInBhdGgiLHtkOiJNNyAxMmgxMCJ9XSxbInBhdGgiLHtkOiJNNyAxNmg2In1dLFsicGF0aCIse2Q6Ik03IDhoOCJ9XSxbInBhdGgiLHtkOiJNOSAyMWgxIn1dLFsicGF0aCIse2Q6Ik05IDNoMSJ9XV0sYU49W1sicGF0aCIse2Q6Im0xNiAxNi0zIDMgMyAzIn1dLFsicGF0aCIse2Q6Ik0zIDEyaDE0LjVhMSAxIDAgMCAxIDAgN0gxMyJ9XSxbInBhdGgiLHtkOiJNMyAxOWg2In1dLFsicGF0aCIse2Q6Ik0zIDVoMTgifV1dLEhhcj1bWyJwYXRoIix7ZDoiTTIgMTBzMy0zIDMtOCJ9XSxbInBhdGgiLHtkOiJNMjIgMTBzLTMtMy0zLTgifV0sWyJwYXRoIix7ZDoiTTEwIDJjMCA0LjQtMy42IDgtOCA4In1dLFsicGF0aCIse2Q6Ik0xNCAyYzAgNC40IDMuNiA4IDggOCJ9XSxbInBhdGgiLHtkOiJNMiAxMHMyIDIgMiA1In1dLFsicGF0aCIse2Q6Ik0yMiAxMHMtMiAyLTIgNSJ9XSxbInBhdGgiLHtkOiJNOCAxNWg4In1dLFsicGF0aCIse2Q6Ik0yIDIydi0xYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEifV0sWyJwYXRoIix7ZDoiTTE0IDIydi0xYTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjEifV1dLHFhcj1bWyJwYXRoIix7ZDoibTEwIDIwLTEuMjUtMi41TDYgMTgifV0sWyJwYXRoIix7ZDoiTTEwIDQgOC43NSA2LjUgNiA2In1dLFsicGF0aCIse2Q6Ik0xMC41ODUgMTVIMTAifV0sWyJwYXRoIix7ZDoiTTIgMTJoNi41TDEwIDkifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAweiJ9XSxbInBhdGgiLHtkOiJtNCAxMCAxLjUgMkw0IDE0In1dLFsicGF0aCIse2Q6Im03IDIxIDMtNi0xLjUtMyJ9XSxbInBhdGgiLHtkOiJtNyAzIDMgNmgyIn1dXSxqYXI9W1sicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTEyIDhhNCA0IDAgMCAwLTEuNjQ1IDcuNjQ3In1dLFsicGF0aCIse2Q6Ik0yIDEyaDIifV0sWyJwYXRoIix7ZDoiTTIwIDE0LjU0YTQgNCAwIDEgMS00IDBWNGEyIDIgMCAwIDEgNCAweiJ9XSxbInBhdGgiLHtkOiJtNC45MyA0LjkzIDEuNDEgMS40MSJ9XSxbInBhdGgiLHtkOiJtNi4zNCAxNy42Ni0xLjQxIDEuNDEifV1dLFZhcj1bWyJwYXRoIix7ZDoiTTE0IDR2MTAuNTRhNCA0IDAgMSAxLTQgMFY0YTIgMiAwIDAgMSA0IDBaIn1dXSxVYXI9W1sicGF0aCIse2Q6Ik05IDE4LjEyIDEwIDE0SDQuMTdhMiAyIDAgMCAxLTEuOTItMi41NmwyLjMzLThBMiAyIDAgMCAxIDYuNSAySDIwYTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAyaC0yLjc2YTIgMiAwIDAgMC0xLjc5IDEuMTFMMTIgMjJhMy4xMyAzLjEzIDAgMCAxLTMtMy44OFoifV0sWyJwYXRoIix7ZDoiTTE3IDE0VjIifV1dLFdhcj1bWyJwYXRoIix7ZDoiTTE1IDUuODggMTQgMTBoNS44M2EyIDIgMCAwIDEgMS45MiAyLjU2bC0yLjMzIDhBMiAyIDAgMCAxIDE3LjUgMjJINGEyIDIgMCAwIDEtMi0ydi04YTIgMiAwIDAgMSAyLTJoMi43NmEyIDIgMCAwIDAgMS43OS0xLjExTDEyIDJhMy4xMyAzLjEzIDAgMCAxIDMgMy44OFoifV0sWyJwYXRoIix7ZDoiTTcgMTB2MTIifV1dLEdhcj1bWyJwYXRoIix7ZDoiTTIgOWEzIDMgMCAwIDEgMCA2djJhMiAyIDAgMCAwIDIgMmgxNmEyIDIgMCAwIDAgMi0ydi0yYTMgMyAwIDAgMSAwLTZWN2EyIDIgMCAwIDAtMi0ySDRhMiAyIDAgMCAwLTIgMloifV0sWyJwYXRoIix7ZDoibTkgMTIgMiAyIDQtNCJ9XV0sWWFyPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJNOSAxMmg2In1dXSxaYXI9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMSAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAxIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDloLjAxIn1dLFsicGF0aCIse2Q6Im0xNSA5LTYgNiJ9XSxbInBhdGgiLHtkOiJNMTUgMTVoLjAxIn1dXSxYYXI9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik05IDEyaDYifV0sWyJwYXRoIix7ZDoiTTEyIDl2NiJ9XV0sUWFyPVtbInBhdGgiLHtkOiJNMiA5YTMgMyAwIDAgMSAwIDZ2MmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJ2LTJhMyAzIDAgMCAxIDAtNlY3YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAyWiJ9XSxbInBhdGgiLHtkOiJtOS41IDE0LjUgNS01In1dXSxKYXI9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Im05LjUgMTQuNSA1LTUifV0sWyJwYXRoIix7ZDoibTkuNSA5LjUgNSA1In1dXSxLYXI9W1sicGF0aCIse2Q6Ik0yIDlhMyAzIDAgMCAxIDAgNnYyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtMmEzIDMgMCAwIDEgMC02VjdhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJaIn1dLFsicGF0aCIse2Q6Ik0xMyA1djIifV0sWyJwYXRoIix7ZDoiTTEzIDE3djIifV0sWyJwYXRoIix7ZDoiTTEzIDExdjIifV1dLGVucj1bWyJwYXRoIix7ZDoiTTEwLjUgMTdoMS4yMjdhMiAyIDAgMCAwIDEuMzQ1LS41MkwxOCAxMiJ9XSxbInBhdGgiLHtkOiJtMTIgMTMuNSAzLjc5NC41MDYifV0sWyJwYXRoIix7ZDoibTMuMTczIDguMTggMTEtNWEyIDIgMCAwIDEgMi42NDcuOTkzTDE4LjU2IDgifV0sWyJwYXRoIix7ZDoiTTYgMTBWOCJ9XSxbInBhdGgiLHtkOiJNNiAxNHYxIn1dLFsicGF0aCIse2Q6Ik02IDE5djIifV0sWyJyZWN0Iix7eDoiMiIseToiOCIsd2lkdGg6IjIwIixoZWlnaHQ6IjEzIixyeDoiMiJ9XV0sdG5yPVtbInBhdGgiLHtkOiJNMTAgMmg0In1dLFsicGF0aCIse2Q6Ik00LjYgMTFhOCA4IDAgMCAwIDEuNyA4LjcgOCA4IDAgMCAwIDguNyAxLjcifV0sWyJwYXRoIix7ZDoiTTcuNCA3LjRhOCA4IDAgMCAxIDEwLjMgMSA4IDggMCAwIDEgLjkgMTAuMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0xMiAxMnYtMiJ9XV0scm5yPVtbInBhdGgiLHtkOiJtMy4xNzMgOC4xOCAxMS01YTIgMiAwIDAgMSAyLjY0Ny45OTNMMTguNTYgOCJ9XSxbInBhdGgiLHtkOiJNNiAxMFY4In1dLFsicGF0aCIse2Q6Ik02IDE0djEifV0sWyJwYXRoIix7ZDoiTTYgMTl2MiJ9XSxbInJlY3QiLHt4OiIyIix5OiI4Iix3aWR0aDoiMjAiLGhlaWdodDoiMTMiLHJ4OiIyIn1dXSxpbnI9W1sicGF0aCIse2Q6Ik0xMCAyaDQifV0sWyJwYXRoIix7ZDoiTTEyIDE0di00In1dLFsicGF0aCIse2Q6Ik00IDEzYTggOCAwIDAgMSA4LTcgOCA4IDAgMSAxLTUuMyAxNEw0IDE3LjYifV0sWyJwYXRoIix7ZDoiTTkgMTdINHY1In1dXSxhbnI9W1sibGluZSIse3gxOiIxMCIseDI6IjE0Iix5MToiMiIseTI6IjIifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTUiLHkxOiIxNCIseTI6IjExIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTQiLHI6IjgifV1dLG5ucj1bWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjEyIixyOiIzIn1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNCIseDoiMiIseToiNSIscng6IjcifV1dLG9ucj1bWyJjaXJjbGUiLHtjeDoiMTUiLGN5OiIxMiIscjoiMyJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjUiLHJ4OiI3In1dXSxzbnI9W1sicGF0aCIse2Q6Ik03IDEyaDEzYTEgMSAwIDAgMSAxIDEgNSA1IDAgMCAxLTUgNWgtLjU5OGEuNS41IDAgMCAwLS40MjQuNzY1bDEuNTQ0IDIuNDdhLjUuNSAwIDAgMS0uNDI0Ljc2NUg1LjQwMmEuNS41IDAgMCAxLS40MjQtLjc2NUw3IDE4In1dLFsicGF0aCIse2Q6Ik04IDE4YTUgNSAwIDAgMS01LTVWNGEyIDIgMCAwIDEgMi0yaDhhMiAyIDAgMCAxIDIgMnY4In1dXSxsbnI9W1sicGF0aCIse2Q6Ik0xMCAxNWg0In1dLFsicGF0aCIse2Q6Im0xNC44MTcgMTAuOTk1LS45NzEtMS40NSAxLjAzNC0xLjIzMmEyIDIgMCAwIDAtMi4wMjUtMy4yMzhsLTEuODIuMzY0TDkuOTEgMy44ODVhMiAyIDAgMCAwLTMuNjI1Ljc0OEw2LjE0MSA2LjU1bC0xLjcyNS40MjZhMiAyIDAgMCAwLS4xOSAzLjc1NmwuNjU3LjI3In1dLFsicGF0aCIse2Q6Im0xOC44MjIgMTAuOTk1IDIuMjYtNS4zOGExIDEgMCAwIDAtLjU1Ny0xLjMxOEwxNi45NTQgMi45YTEgMSAwIDAgMC0xLjI4MS41MzNsLS45MjQgMi4xMjIifV0sWyJwYXRoIix7ZDoiTTQgMTIuMDA2QTEgMSAwIDAgMSA0Ljk5NCAxMUgxOWExIDEgMCAwIDEgMSAxdjdhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJ6In1dXSxjbnI9W1sicGF0aCIse2Q6Ik0xNiAxMnY0In1dLFsicGF0aCIse2Q6Ik0xNiA2YTIgMiAwIDAgMSAxLjQxNC41ODZsNCA0QTIgMiAwIDAgMSAyMiAxMnY3YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0ydi03YTIgMiAwIDAgMSAuNTg2LTEuNDE0bDQtNEEyIDIgMCAwIDEgOCA2eiJ9XSxbInBhdGgiLHtkOiJNMTYgNlY0YTIgMiAwIDAgMC0yLTJoLTRhMiAyIDAgMCAwLTIgMnYyIn1dLFsicGF0aCIse2Q6Ik0yIDE0aDIwIn1dLFsicGF0aCIse2Q6Ik04IDEydjQifV1dLGRucj1bWyJwYXRoIix7ZDoiTTIxIDRIMyJ9XSxbInBhdGgiLHtkOiJNMTggOEg2In1dLFsicGF0aCIse2Q6Ik0xOSAxMkg5In1dLFsicGF0aCIse2Q6Ik0xNiAxNmgtNiJ9XSxbInBhdGgiLHtkOiJNMTEgMjBIOSJ9XV0sdW5yPVtbImVsbGlwc2UiLHtjeDoiMTIiLGN5OiIxMSIscng6IjMiLHJ5OiIyIn1dLFsiZWxsaXBzZSIse2N4OiIxMiIsY3k6IjEyLjUiLHJ4OiIxMCIscnk6IjguNSJ9XV0scG5yPVtbInBhdGgiLHtkOiJNMTIgMjB2LTYifV0sWyJwYXRoIix7ZDoiTTE5LjY1NiAxNEgyMiJ9XSxbInBhdGgiLHtkOiJNMiAxNGgxMiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik0yMCAyMEg0YTIgMiAwIDAgMS0yLTJWNmEyIDIgMCAwIDEgMi0yIn1dLFsicGF0aCIse2Q6Ik05LjY1NiA0SDIwYTIgMiAwIDAgMSAyIDJ2MTAuMzQ0In1dXSxobnI9W1sicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNiIseDoiMiIseToiNCIscng6IjIifV0sWyJwYXRoIix7ZDoiTTIgMTRoMjAifV0sWyJwYXRoIix7ZDoiTTEyIDIwdi02In1dXSxmbnI9W1sicGF0aCIse2Q6Ik0xOC4yIDEyLjI3IDIwIDZINGwxLjggNi4yN2ExIDEgMCAwIDAgLjk1LjczaDEwLjVhMSAxIDAgMCAwIC45Ni0uNzNaIn1dLFsicGF0aCIse2Q6Ik04IDEzdjkifV0sWyJwYXRoIix7ZDoiTTE2IDIydi05In1dLFsicGF0aCIse2Q6Im05IDYgMSA3In1dLFsicGF0aCIse2Q6Im0xNSA2LTEgNyJ9XSxbInBhdGgiLHtkOiJNMTIgNlYyIn1dLFsicGF0aCIse2Q6Ik0xMyAyaC0yIn1dXSxtbnI9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxMiIseDoiMyIseToiOCIscng6IjEifV0sWyJwYXRoIix7ZDoiTTEwIDhWNWMwLS42LS40LTEtMS0xSDZhMSAxIDAgMCAwLTEgMXYzIn1dLFsicGF0aCIse2Q6Ik0xOSA4VjVjMC0uNi0uNC0xLTEtMWgtM2ExIDEgMCAwIDAtMSAxdjMifV1dLGducj1bWyJwYXRoIix7ZDoibTEwIDExIDExIC45YTEgMSAwIDAgMSAuOCAxLjFsLS42NjUgNC4xNThhMSAxIDAgMCAxLS45ODguODQySDIwIn1dLFsicGF0aCIse2Q6Ik0xNiAxOGgtNSJ9XSxbInBhdGgiLHtkOiJNMTggNWExIDEgMCAwIDAtMSAxdjUuNTczIn1dLFsicGF0aCIse2Q6Ik0zIDRoOC4xMjlhMSAxIDAgMCAxIC45OS44NjNMMTMgMTEuMjQ2In1dLFsicGF0aCIse2Q6Ik00IDExVjQifV0sWyJwYXRoIix7ZDoiTTcgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik04IDEwLjFWNCJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE4IixyOiIyIn1dLFsiY2lyY2xlIix7Y3g6IjciLGN5OiIxNSIscjoiNSJ9XV0sYm5yPVtbInBhdGgiLHtkOiJNMTYuMDUgMTAuOTY2YTUgMi41IDAgMCAxLTguMSAwIn1dLFsicGF0aCIse2Q6Im0xNi45MjMgMTQuMDQ5IDQuNDggMi4wNGExIDEgMCAwIDEgLjAwMSAxLjgzMWwtOC41NzQgMy45YTIgMiAwIDAgMS0xLjY2IDBsLTguNTc0LTMuOTFhMSAxIDAgMCAxIDAtMS44M2w0LjQ4NC0yLjA0In1dLFsicGF0aCIse2Q6Ik0xNi45NDkgMTQuMTRhNSAyLjUgMCAxIDEtOS45IDBMMTAuMDYzIDMuNWEyIDIgMCAwIDEgMy44NzQgMHoifV0sWyJwYXRoIix7ZDoiTTkuMTk0IDYuNTdhNSAyLjUgMCAwIDAgNS42MSAwIn1dXSx2bnI9W1sicGF0aCIse2Q6Ik0yIDIyVjEyYTEwIDEwIDAgMSAxIDIwIDB2MTAifV0sWyJwYXRoIix7ZDoiTTE1IDYuOHYxLjRhMyAyLjggMCAxIDEtNiAwVjYuOCJ9XSxbInBhdGgiLHtkOiJNMTAgMTVoLjAxIn1dLFsicGF0aCIse2Q6Ik0xNCAxNWguMDEifV0sWyJwYXRoIix7ZDoiTTEwIDE5YTQgNCAwIDAgMS00LTR2LTNhNiA2IDAgMSAxIDEyIDB2M2E0IDQgMCAwIDEtNCA0WiJ9XSxbInBhdGgiLHtkOiJtOSAxOS0yIDMifV0sWyJwYXRoIix7ZDoibTE1IDE5IDIgMyJ9XV0seG5yPVtbInBhdGgiLHtkOiJNOCAzLjFWN2E0IDQgMCAwIDAgOCAwVjMuMSJ9XSxbInBhdGgiLHtkOiJtOSAxNS0xLTEifV0sWyJwYXRoIix7ZDoibTE1IDE1IDEtMSJ9XSxbInBhdGgiLHtkOiJNOSAxOWMtMi44IDAtNS0yLjItNS01di00YTggOCAwIDAgMSAxNiAwdjRjMCAyLjgtMi4yIDUtNSA1WiJ9XSxbInBhdGgiLHtkOiJtOCAxOS0yIDMifV0sWyJwYXRoIix7ZDoibTE2IDE5IDIgMyJ9XV0seW5yPVtbInBhdGgiLHtkOiJNMiAxNyAxNyAyIn1dLFsicGF0aCIse2Q6Im0yIDE0IDggOCJ9XSxbInBhdGgiLHtkOiJtNSAxMSA4IDgifV0sWyJwYXRoIix7ZDoibTggOCA4IDgifV0sWyJwYXRoIix7ZDoibTExIDUgOCA4In1dLFsicGF0aCIse2Q6Im0xNCAyIDggOCJ9XSxbInBhdGgiLHtkOiJNNyAyMiAyMiA3In1dXSxuTj1bWyJyZWN0Iix7d2lkdGg6IjE2IixoZWlnaHQ6IjE2Iix4OiI0Iix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNNCAxMWgxNiJ9XSxbInBhdGgiLHtkOiJNMTIgM3Y4In1dLFsicGF0aCIse2Q6Im04IDE5LTIgMyJ9XSxbInBhdGgiLHtkOiJtMTggMjItMi0zIn1dLFsicGF0aCIse2Q6Ik04IDE1aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTYgMTVoLjAxIn1dXSx3bnI9W1sicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNCAyMGgtNCJ9XSxbInBhdGgiLHtkOiJNMTggMmg0djQifV0sWyJwYXRoIix7ZDoibTIgMiA3LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTIgNS4zNTVWMmgzLjM1NyJ9XSxbInBhdGgiLHtkOiJtMjIgMi03LjE3IDcuMTcifV0sWyJwYXRoIix7ZDoiTTggNSA1IDgifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCJ9XV0sTW5yPVtbInBhdGgiLHtkOiJNMTAgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMTQgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2In1dLFsicGF0aCIse2Q6Ik0zIDZoMTgifV0sWyJwYXRoIix7ZDoiTTggNlY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjIifV1dLGtucj1bWyJwYXRoIix7ZDoiTTE5IDZ2MTRhMiAyIDAgMCAxLTIgMkg3YTIgMiAwIDAgMS0yLTJWNiJ9XSxbInBhdGgiLHtkOiJNMyA2aDE4In1dLFsicGF0aCIse2Q6Ik04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyIn1dXSxTbnI9W1sicGF0aCIse2Q6Ik04IDE5YTQgNCAwIDAgMS0yLjI0LTcuMzJBMy41IDMuNSAwIDAgMSA5IDYuMDNWNmEzIDMgMCAxIDEgNiAwdi4wNGEzLjUgMy41IDAgMCAxIDMuMjQgNS42NUE0IDQgMCAwIDEgMTYgMTlaIn1dLFsicGF0aCIse2Q6Ik0xMiAxOXYzIn1dXSxvTj1bWyJwYXRoIix7ZDoiTTEzIDhjMC0yLjc2LTIuNDYtNS01LjUtNVMyIDUuMjQgMiA4aDJsMS0xIDEgMWg0In1dLFsicGF0aCIse2Q6Ik0xMyA3LjE0QTUuODIgNS44MiAwIDAgMSAxNi41IDZjMy4wNCAwIDUuNSAyLjI0IDUuNSA1aC0zbC0xLTEtMSAxaC0zIn1dLFsicGF0aCIse2Q6Ik01Ljg5IDkuNzFjLTIuMTUgMi4xNS0yLjMgNS40Ny0uMzUgNy40M2w0LjI0LTQuMjUuNy0uNy43MS0uNzEgMi4xMi0yLjEyYy0xLjk1LTEuOTYtNS4yNy0xLjgtNy40Mi4zNSJ9XSxbInBhdGgiLHtkOiJNMTEgMTUuNWMuNSAyLjUtLjE3IDQuNS0xIDYuNWg0YzItNS41LS41LTEyLTEtMTQifV1dLHpucj1bWyJwYXRoIix7ZDoibTE3IDE0IDMgMy4zYTEgMSAwIDAgMS0uNyAxLjdINC43YTEgMSAwIDAgMS0uNy0xLjdMNyAxNGgtLjNhMSAxIDAgMCAxLS43LTEuN0w5IDloLS4yQTEgMSAwIDAgMSA4IDcuM0wxMiAzbDQgNC4zYTEgMSAwIDAgMS0uOCAxLjdIMTVsMyAzLjNhMSAxIDAgMCAxLS43IDEuN0gxN1oifV0sWyJwYXRoIix7ZDoiTTEyIDIydi0zIn1dXSxDbnI9W1sicGF0aCIse2Q6Ik0xMCAxMHYuMkEzIDMgMCAwIDEgOC45IDE2SDVhMyAzIDAgMCAxLTEtNS44VjEwYTMgMyAwIDAgMSA2IDBaIn1dLFsicGF0aCIse2Q6Ik03IDE2djYifV0sWyJwYXRoIix7ZDoiTTEzIDE5djMifV0sWyJwYXRoIix7ZDoiTTEyIDE5aDguM2ExIDEgMCAwIDAgLjctMS43TDE4IDE0aC4zYTEgMSAwIDAgMCAuNy0xLjdMMTYgOWguMmExIDEgMCAwIDAgLjgtMS43TDEzIDNsLTEuNCAxLjUifV1dLFRucj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIscnk6IjIifV0sWyJyZWN0Iix7d2lkdGg6IjMiLGhlaWdodDoiOSIseDoiNyIseToiNyJ9XSxbInJlY3QiLHt3aWR0aDoiMyIsaGVpZ2h0OiI1Iix4OiIxNCIseToiNyJ9XV0sX25yPVtbInBhdGgiLHtkOiJNMTYgMTdoNnYtNiJ9XSxbInBhdGgiLHtkOiJtMjIgMTctOC41LTguNS01IDVMMiA3In1dXSxMbnI9W1sicGF0aCIse2Q6Ik0xNC44MjggMTQuODI4IDIxIDIxIn1dLFsicGF0aCIse2Q6Ik0yMSAxNnY1aC01In1dLFsicGF0aCIse2Q6Im0yMSAzLTkgOS00LTQtNiA2In1dLFsicGF0aCIse2Q6Ik0yMSA4VjNoLTUifV1dLEFucj1bWyJwYXRoIix7ZDoiTTE2IDdoNnY2In1dLFsicGF0aCIse2Q6Im0yMiA3LTguNSA4LjUtNS01TDIgMTcifV1dLHNOPVtbInBhdGgiLHtkOiJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMifV0sWyJwYXRoIix7ZDoiTTEyIDl2NCJ9XSxbInBhdGgiLHtkOiJNMTIgMTdoLjAxIn1dXSxEbnI9W1sicGF0aCIse2Q6Ik0xMC4xNyA0LjE5M2EyIDIgMCAwIDEgMy42NjYuMDEzIn1dLFsicGF0aCIse2Q6Ik0xNCAyMWgyIn1dLFsicGF0aCIse2Q6Im0xNS44NzQgNy43NDMgMSAxLjczMiJ9XSxbInBhdGgiLHtkOiJtMTguODQ5IDEyLjk1MiAxIDEuNzMyIn1dLFsicGF0aCIse2Q6Ik0yMS44MjQgMTguMThhMiAyIDAgMCAxLTEuODM1IDIuODI0In1dLFsicGF0aCIse2Q6Ik00LjAyNCAyMWEyIDIgMCAwIDEtMS44MzktMi44MzkifV0sWyJwYXRoIix7ZDoibTUuMTM2IDEyLjk1Mi0xIDEuNzMyIn1dLFsicGF0aCIse2Q6Ik04IDIxaDIifV0sWyJwYXRoIix7ZDoibTguMTAyIDcuNzQzLTEgMS43MzIifV1dLEVucj1bWyJwYXRoIix7ZDoiTTIyIDE4YTIgMiAwIDAgMS0yIDJIM2MtMS4xIDAtMS4zLS42LS40LTEuM0wyMC40IDQuM2MuOS0uNyAxLjYtLjQgMS42LjdaIn1dXSwkbnI9W1sicGF0aCIse2Q6Ik0xMy43MyA0YTIgMiAwIDAgMC0zLjQ2IDBsLTggMTRBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuNzMtM1oifV1dLElucj1bWyJwYXRoIix7ZDoiTTE0IDE5VjdhMiAyIDAgMCAwLTItMkg5In1dLFsicGF0aCIse2Q6Ik0xNSAxOUg5In1dLFsicGF0aCIse2Q6Ik0xOSAxOWgyYTEgMSAwIDAgMCAxLTF2LTMuNjVhMSAxIDAgMCAwLS4yMi0uNjJMMTguMyA5LjM4YTEgMSAwIDAgMC0uNzgtLjM4SDE0In1dLFsicGF0aCIse2Q6Ik0yIDEzdjVhMSAxIDAgMCAwIDEgMWgyIn1dLFsicGF0aCIse2Q6Ik00IDMgMi4xNSA1LjE1YS40OTUuNDk1IDAgMCAwIC4zNS44NmgyLjE1YS40Ny40NyAwIDAgMSAuMzUuODZMMyA5LjAyIn1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTkiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiNyIsY3k6IjE5IixyOiIyIn1dXSxQbnI9W1sicGF0aCIse2Q6Ik0xMCAxNC42NnYxLjYyNmEyIDIgMCAwIDEtLjk3NiAxLjY5NkE1IDUgMCAwIDAgNyAyMS45NzgifV0sWyJwYXRoIix7ZDoiTTE0IDE0LjY2djEuNjI2YTIgMiAwIDAgMCAuOTc2IDEuNjk2QTUgNSAwIDAgMSAxNyAyMS45NzgifV0sWyJwYXRoIix7ZDoiTTE4IDloMS41YTEgMSAwIDAgMCAwLTVIMTgifV0sWyJwYXRoIix7ZDoiTTQgMjJoMTYifV0sWyJwYXRoIix7ZDoiTTYgOWE2IDYgMCAwIDAgMTIgMFYzYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxeiJ9XSxbInBhdGgiLHtkOiJNNiA5SDQuNWExIDEgMCAwIDEgMC01SDYifV1dLE5ucj1bWyJwYXRoIix7ZDoiTTE0IDE4VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTFhMSAxIDAgMCAwIDEgMWgyIn1dLFsicGF0aCIse2Q6Ik0xNSAxOEg5In1dLFsicGF0aCIse2Q6Ik0xOSAxOGgyYTEgMSAwIDAgMCAxLTF2LTMuNjVhMSAxIDAgMCAwLS4yMi0uNjI0bC0zLjQ4LTQuMzVBMSAxIDAgMCAwIDE3LjUyIDhIMTQifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV1dLEZucj1bWyJwYXRoIix7ZDoiTTE1IDQgNSA5In1dLFsicGF0aCIse2Q6Im0xNSA4LjUtMTAgNSJ9XSxbInBhdGgiLHtkOiJNMTggMTJhOSA5IDAgMCAxLTkgOVYzIn1dXSxPbnI9W1sicGF0aCIse2Q6Ik0xMCAxMi4wMWguMDEifV0sWyJwYXRoIix7ZDoiTTE4IDh2NGE4IDggMCAwIDEtMS4wNyA0In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiMTIiLHI6IjQifV0sWyJyZWN0Iix7eDoiMiIseToiNCIsd2lkdGg6IjIwIixoZWlnaHQ6IjE2IixyeDoiMiJ9XV0sUm5yPVtbInBhdGgiLHtkOiJtMTIgMTAgMiA0djNhMSAxIDAgMCAwIDEgMWgyYTEgMSAwIDAgMCAxLTF2LTNhOCA4IDAgMSAwLTE2IDB2M2ExIDEgMCAwIDAgMSAxaDJhMSAxIDAgMCAwIDEtMXYtM2wyLTRoNFoifV0sWyJwYXRoIix7ZDoiTTQuODIgNy45IDggMTAifV0sWyJwYXRoIix7ZDoiTTE1LjE4IDcuOSAxMiAxMCJ9XSxbInBhdGgiLHtkOiJNMTYuOTMgMTBIMjBhMiAyIDAgMCAxIDAgNEgyIn1dXSxCbnI9W1sicGF0aCIse2Q6Ik0xNS4wMzMgOS40NGEuNjQ3LjY0NyAwIDAgMSAwIDEuMTJsLTQuMDY1IDIuMzUyYS42NDUuNjQ1IDAgMCAxLS45NjgtLjU2VjcuNjQ4YS42NDUuNjQ1IDAgMCAxIC45NjctLjU2eiJ9XSxbInBhdGgiLHtkOiJNNyAyMWgxMCJ9XSxbInJlY3QiLHt3aWR0aDoiMjAiLGhlaWdodDoiMTQiLHg6IjIiLHk6IjMiLHJ4OiIyIn1dXSxsTj1bWyJwYXRoIix7ZDoiTTcgMjFoMTAifV0sWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE0Iix4OiIyIix5OiIzIixyeDoiMiJ9XV0sSG5yPVtbInBhdGgiLHtkOiJtMTcgMi01IDUtNS01In1dLFsicmVjdCIse3dpZHRoOiIyMCIsaGVpZ2h0OiIxNSIseDoiMiIseToiNyIscng6IjIifV1dLHFucj1bWyJwYXRoIix7ZDoiTTIxIDJIM3YxNmg1djRsNC00aDVsNC00VjJ6bS0xMCA5VjdtNSA0VjcifV1dLGpucj1bWyJwYXRoIix7ZDoiTTIyIDRzLS43IDIuMS0yIDMuNGMxLjYgMTAtOS40IDE3LjMtMTggMTEuNiAyLjIuMSA0LjQtLjYgNi0yQzMgMTUuNS41IDkuNiAzIDVjMi4yIDIuNiA1LjYgNC4xIDkgNC0uOS00LjIgNC02LjYgNy0zLjggMS4xIDAgMy0xLjIgMy0xLjJ6In1dXSxWbnI9W1sicGF0aCIse2Q6Ik0xNCAxNi41YS41LjUgMCAwIDAgLjUuNWguNWEyIDIgMCAwIDEgMCA0SDlhMiAyIDAgMCAxIDAtNGguNWEuNS41IDAgMCAwIC41LS41di05YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41VjhhMiAyIDAgMCAxLTQgMFY1YTIgMiAwIDAgMSAyLTJoMTZhMiAyIDAgMCAxIDIgMnYzYTIgMiAwIDAgMS00IDB2LS41YS41LjUgMCAwIDAtLjUtLjVoLTNhLjUuNSAwIDAgMC0uNS41WiJ9XV0sVW5yPVtbInBhdGgiLHtkOiJNMTIgNHYxNiJ9XSxbInBhdGgiLHtkOiJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIifV0sWyJwYXRoIix7ZDoiTTkgMjBoNiJ9XV0sV25yPVtbInBhdGgiLHtkOiJNMTIgMTN2N2EyIDIgMCAwIDAgNCAwIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTE4LjY1NiAxM2gyLjMzNmExIDEgMCAwIDAgLjk3LTEuMjc0IDEwLjI4NCAxMC4yODQgMCAwIDAtMTIuMDctNy41MSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Ik01Ljk2MSA1Ljk1N2ExMC4yOCAxMC4yOCAwIDAgMC0zLjkyMiA1Ljc2OUExIDEgMCAwIDAgMyAxM2gxMCJ9XV0sR25yPVtbInBhdGgiLHtkOiJNMTIgMTN2N2EyIDIgMCAwIDAgNCAwIn1dLFsicGF0aCIse2Q6Ik0xMiAydjIifV0sWyJwYXRoIix7ZDoiTTIwLjk5MiAxM2ExIDEgMCAwIDAgLjk3LTEuMjc0IDEwLjI4NCAxMC4yODQgMCAwIDAtMTkuOTIzIDBBMSAxIDAgMCAwIDMgMTN6In1dXSxZbnI9W1sicGF0aCIse2Q6Ik02IDR2NmE2IDYgMCAwIDAgMTIgMFY0In1dLFsibGluZSIse3gxOiI0Iix4MjoiMjAiLHkxOiIyMCIseTI6IjIwIn1dXSxabnI9W1sicGF0aCIse2Q6Ik05IDE0IDQgOWw1LTUifV0sWyJwYXRoIix7ZDoiTTQgOWgxMC41YTUuNSA1LjUgMCAwIDEgNS41IDUuNWE1LjUgNS41IDAgMCAxLTUuNSA1LjVIMTEifV1dLFhucj1bWyJwYXRoIix7ZDoiTTIxIDE3YTkgOSAwIDAgMC0xNS02LjdMMyAxMyJ9XSxbInBhdGgiLHtkOiJNMyA3djZoNiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjE3IixyOiIxIn1dXSxRbnI9W1sicGF0aCIse2Q6Ik0zIDd2Nmg2In1dLFsicGF0aCIse2Q6Ik0yMSAxN2E5IDkgMCAwIDAtOS05IDkgOSAwIDAgMC02IDIuM0wzIDEzIn1dXSxKbnI9W1sicGF0aCIse2Q6Ik0xNiAxMmg2In1dLFsicGF0aCIse2Q6Ik04IDEySDIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiJ9XSxbInBhdGgiLHtkOiJNMTIgOHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAxNHYyIn1dLFsicGF0aCIse2Q6Ik0xMiAyMHYyIn1dLFsicGF0aCIse2Q6Im0xOSAxNSAzLTMtMy0zIn1dLFsicGF0aCIse2Q6Im01IDktMyAzIDMgMyJ9XV0sS25yPVtbInBhdGgiLHtkOiJNMTIgMjJ2LTYifV0sWyJwYXRoIix7ZDoiTTEyIDhWMiJ9XSxbInBhdGgiLHtkOiJNNCAxMkgyIn1dLFsicGF0aCIse2Q6Ik0xMCAxMkg4In1dLFsicGF0aCIse2Q6Ik0xNiAxMmgtMiJ9XSxbInBhdGgiLHtkOiJNMjIgMTJoLTIifV0sWyJwYXRoIix7ZDoibTE1IDE5LTMgMy0zLTMifV0sWyJwYXRoIix7ZDoibTE1IDUtMy0zLTMgMyJ9XV0sZW9yPVtbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI2Iix4OiI1Iix5OiI0IixyeDoiMSJ9XSxbInJlY3QiLHt3aWR0aDoiOCIsaGVpZ2h0OiI2Iix4OiIxMSIseToiMTQiLHJ4OiIxIn1dXSxjTj1bWyJwYXRoIix7ZDoiTTE0IDIxdi0zYTIgMiAwIDAgMC00IDB2MyJ9XSxbInBhdGgiLHtkOiJNMTggMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik0xOCAxNmguMDEifV0sWyJwYXRoIix7ZDoiTTIyIDdhMSAxIDAgMCAwLTEtMWgtMmEyIDIgMCAwIDEtMS4xNDMtLjM1OUwxMy4xNDMgMi4zNmEyIDIgMCAwIDAtMi4yODYtLjAwMUw2LjE0MyA1LjY0QTIgMiAwIDAgMSA1IDZIM2ExIDEgMCAwIDAtMSAxdjEyYTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnoifV0sWyJwYXRoIix7ZDoiTTYgMTJoLjAxIn1dLFsicGF0aCIse2Q6Ik02IDE2aC4wMSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIyIn1dXSx0b3I9W1sicGF0aCIse2Q6Im0xOC44NCAxMi4yNSAxLjcyLTEuNzFoLS4wMmE1LjAwNCA1LjAwNCAwIDAgMC0uMTItNy4wNyA1LjAwNiA1LjAwNiAwIDAgMC02Ljk1IDBsLTEuNzIgMS43MSJ9XSxbInBhdGgiLHtkOiJtNS4xNyAxMS43NS0xLjcxIDEuNzFhNS4wMDQgNS4wMDQgMCAwIDAgLjEyIDcuMDcgNS4wMDYgNS4wMDYgMCAwIDAgNi45NSAwbDEuNzEtMS43MSJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjgiLHkxOiIyIix5MjoiNSJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjUiLHkxOiI4Iix5MjoiOCJ9XSxbImxpbmUiLHt4MToiMTYiLHgyOiIxNiIseTE6IjE5Iix5MjoiMjIifV0sWyJsaW5lIix7eDE6IjE5Iix4MjoiMjIiLHkxOiIxNiIseTI6IjE2In1dXSxyb3I9W1sicGF0aCIse2Q6Ik0xNSA3aDJhNSA1IDAgMCAxIDAgMTBoLTJtLTYgMEg3QTUgNSAwIDAgMSA3IDdoMiJ9XV0saW9yPVtbInBhdGgiLHtkOiJtMTkgNSAzLTMifV0sWyJwYXRoIix7ZDoibTIgMjIgMy0zIn1dLFsicGF0aCIse2Q6Ik02LjMgMjAuM2EyLjQgMi40IDAgMCAwIDMuNCAwTDEyIDE4bC02LTYtMi4zIDIuM2EyLjQgMi40IDAgMCAwIDAgMy40WiJ9XSxbInBhdGgiLHtkOiJNNy41IDEzLjUgMTAgMTEifV0sWyJwYXRoIix7ZDoiTTEwLjUgMTYuNSAxMyAxNCJ9XSxbInBhdGgiLHtkOiJtMTIgNiA2IDYgMi4zLTIuM2EyLjQgMi40IDAgMCAwIDAtMy40bC0yLjYtMi42YTIuNCAyLjQgMCAwIDAtMy40IDBaIn1dXSxhb3I9W1sicGF0aCIse2Q6Ik0xMiAzdjEyIn1dLFsicGF0aCIse2Q6Im0xNyA4LTUtNS01IDUifV0sWyJwYXRoIix7ZDoiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQifV1dLG5vcj1bWyJjaXJjbGUiLHtjeDoiMTAiLGN5OiI3IixyOiIxIn1dLFsiY2lyY2xlIix7Y3g6IjQiLGN5OiIyMCIscjoiMSJ9XSxbInBhdGgiLHtkOiJNNC43IDE5LjMgMTkgNSJ9XSxbInBhdGgiLHtkOiJtMjEgMy0zIDEgMiAyWiJ9XSxbInBhdGgiLHtkOiJNOS4yNiA3LjY4IDUgMTJsMiA1In1dLFsicGF0aCIse2Q6Im0xMCAxNCA1IDIgMy41LTMuNSJ9XSxbInBhdGgiLHtkOiJtMTggMTIgMS0xIDEgMS0xIDFaIn1dXSxvb3I9W1sicGF0aCIse2Q6Im0xNiAxMSAyIDIgNC00In1dLFsicGF0aCIse2Q6Ik0xNiAyMXYtMmE0IDQgMCAwIDAtNC00SDZhNCA0IDAgMCAwLTQgNHYyIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXSxzb3I9W1sicGF0aCIse2Q6Ik0xMCAxNUg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJtMTQuMzA1IDE2LjUzLjkyMy0uMzgyIn1dLFsicGF0aCIse2Q6Im0xNS4yMjggMTMuODUyLS45MjMtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDEyLjIyOC0uMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNy43NzItLjM4My45MjQifV0sWyJwYXRoIix7ZDoibTE5LjE0OCAxMi4yMjguMzgzLS45MjMifV0sWyJwYXRoIix7ZDoibTE5LjUzIDE4LjY5Ni0uMzgyLS45MjQifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxMy44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxOCIsY3k6IjE1IixyOiIzIn1dLFsiY2lyY2xlIix7Y3g6IjkiLGN5OiI3IixyOiI0In1dXSxsb3I9W1sicGF0aCIse2Q6Ik0yMCAxMXY2In1dLFsicGF0aCIse2Q6Ik0yMCAxM2gyIn1dLFsicGF0aCIse2Q6Ik0zIDIxdi0yYTQgNCAwIDAgMSA0LTRoNmE0IDQgMCAwIDEgMi4wNzIuNTc4In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiNyIscjoiNCJ9XSxbImNpcmNsZSIse2N4OiIyMCIsY3k6IjE5IixyOiIyIn1dXSxjb3I9W1sicGF0aCIse2Q6Ik0xOSAxNnYtMmEyIDIgMCAwIDAtNCAwdjIifV0sWyJwYXRoIix7ZDoiTTkuNSAxNUg3YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJyZWN0Iix7eDoiMTMiLHk6IjE2Iix3aWR0aDoiOCIsaGVpZ2h0OiI1IixyeDoiLjg5OSJ9XV0sZG9yPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiI5IixjeToiNyIscjoiNCJ9XSxbImxpbmUiLHt4MToiMjIiLHgyOiIxNiIseTE6IjExIix5MjoiMTEifV1dLHVvcj1bWyJwYXRoIix7ZDoiTTExLjUgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJwYXRoIix7ZDoiTTIxLjM3OCAxNi42MjZhMSAxIDAgMCAwLTMuMDA0LTMuMDA0bC00LjAxIDQuMDEyYTIgMiAwIDAgMC0uNTA2Ljg1NGwtLjgzNyAyLjg3YS41LjUgMCAwIDAgLjYyLjYybDIuODctLjgzN2EyIDIgMCAwIDAgLjg1NC0uNTA2eiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV1dLHBvcj1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV0sWyJsaW5lIix7eDE6IjE5Iix4MjoiMTkiLHkxOiI4Iix5MjoiMTQifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTYiLHkxOiIxMSIseTI6IjExIn1dXSxkTj1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJtMTYgMTkgMiAyIDQtNCJ9XV0sdU49W1sicGF0aCIse2Q6Im0xNC4zMDUgMTkuNTMuOTIzLS4zODIifV0sWyJwYXRoIix7ZDoibTE1LjIyOCAxNi44NTItLjkyMy0uMzgzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMTUuMjI4LS4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTYuODUyIDIwLjc3Mi0uMzgzLjkyNCJ9XSxbInBhdGgiLHtkOiJtMTkuMTQ4IDE1LjIyOC4zODMtLjkyMyJ9XSxbInBhdGgiLHtkOiJtMTkuNTMgMjEuNjk2LS4zODItLjkyNCJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTAuNDM0LTcuNjIifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxNi44NTIuOTI0LS4zODMifV0sWyJwYXRoIix7ZDoibTIwLjc3MiAxOS4xNDguOTI0LjM4MyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XV0saG9yPVtbInBhdGgiLHtkOiJNMTkgMTF2NiJ9XSxbInBhdGgiLHtkOiJNMTkgMTNoMiJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTIuODY4LTYuMzQ5In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbImNpcmNsZSIse2N4OiIxOSIsY3k6IjE5IixyOiIyIn1dXSxwTj1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEzLjI5Mi02In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjIgMTloLTYifV1dLG1vcj1bWyJwYXRoIix7ZDoiTTIgMjFhOCA4IDAgMCAxIDEwLjgyMS03LjQ4NyJ9XSxbInBhdGgiLHtkOiJNMjEuMzc4IDE2LjYyNmExIDEgMCAwIDAtMy4wMDQtMy4wMDRsLTQuMDEgNC4wMTJhMiAyIDAgMCAwLS41MDYuODU0bC0uODM3IDIuODdhLjUuNSAwIDAgMCAuNjIuNjJsMi44Ny0uODM3YTIgMiAwIDAgMCAuODU0LS41MDZ6In1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XV0saE49W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMy4yOTItNiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoiTTE5IDE2djYifV0sWyJwYXRoIix7ZDoiTTIyIDE5aC02In1dXSxnb3I9W1siY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMiAyMWE4IDggMCAwIDEgMTAuNDM0LTcuNjIifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxOCIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjIgMjItMS45LTEuOSJ9XV0sZk49W1sicGF0aCIse2Q6Ik0yIDIxYTggOCAwIDAgMSAxMS44NzMtNyJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjgiLHI6IjUifV0sWyJwYXRoIix7ZDoibTE3IDE3IDUgNSJ9XSxbInBhdGgiLHtkOiJtMjIgMTctNSA1In1dXSxtTj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI4IixyOiI1In1dLFsicGF0aCIse2Q6Ik0yMCAyMWE4IDggMCAwIDAtMTYgMCJ9XV0sYm9yPVtbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV0sWyJwYXRoIix7ZDoiTTEwLjMgMTVIN2E0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTciLGN5OiIxNyIscjoiMyJ9XSxbInBhdGgiLHtkOiJtMjEgMjEtMS45LTEuOSJ9XV0sdm9yPVtbInBhdGgiLHtkOiJNMTYuMDUxIDEyLjYxNmExIDEgMCAwIDEgMS45MDkuMDI0bC43MzcgMS40NTJhMSAxIDAgMCAwIC43MzcuNTM1bDEuNjM0LjI1NmExIDEgMCAwIDEgLjU4OCAxLjgwNmwtMS4xNzIgMS4xNjhhMSAxIDAgMCAwLS4yODIuODY2bC4yNTkgMS42MTNhMSAxIDAgMCAxLTEuNTQxIDEuMTM0bC0xLjQ2NS0uNzVhMSAxIDAgMCAwLS45MTIgMGwtMS40NjUuNzVhMSAxIDAgMCAxLTEuNTM5LTEuMTMzbC4yNTgtMS42MTNhMSAxIDAgMCAwLS4yODItLjg2NmwtMS4xNTYtMS4xNTNhMSAxIDAgMCAxIC41NzItMS44MjJsMS42MzMtLjI1NmExIDEgMCAwIDAgLjczNy0uNTM1eiJ9XSxbInBhdGgiLHtkOiJNOCAxNUg3YTQgNCAwIDAgMC00IDR2MiJ9XSxbImNpcmNsZSIse2N4OiIxMCIsY3k6IjciLHI6IjQifV1dLHhvcj1bWyJwYXRoIix7ZDoiTTE2IDIxdi0yYTQgNCAwIDAgMC00LTRINmE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV0sWyJsaW5lIix7eDE6IjE3Iix4MjoiMjIiLHkxOiI4Iix5MjoiMTMifV0sWyJsaW5lIix7eDE6IjIyIix4MjoiMTciLHkxOiI4Iix5MjoiMTMifV1dLHlvcj1bWyJwYXRoIix7ZDoiTTE5IDIxdi0yYTQgNCAwIDAgMC00LTRIOWE0IDQgMCAwIDAtNCA0djIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI3IixyOiI0In1dXSxnTj1bWyJwYXRoIix7ZDoiTTE4IDIxYTggOCAwIDAgMC0xNiAwIn1dLFsiY2lyY2xlIix7Y3g6IjEwIixjeToiOCIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMjIgMjBjMC0zLjM3LTItNi41LTQtOGE1IDUgMCAwIDAtLjQ1LTguMyJ9XV0sd29yPVtbInBhdGgiLHtkOiJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiJ9XSxbInBhdGgiLHtkOiJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQifV0sWyJwYXRoIix7ZDoiTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODcifV0sWyJjaXJjbGUiLHtjeDoiOSIsY3k6IjciLHI6IjQifV1dLGJOPVtbInBhdGgiLHtkOiJtMTYgMi0yLjMgMi4zYTMgMyAwIDAgMCAwIDQuMmwxLjggMS44YTMgMyAwIDAgMCA0LjIgMEwyMiA4In1dLFsicGF0aCIse2Q6Ik0xNSAxNSAzLjMgMy4zYTQuMiA0LjIgMCAwIDAgMCA2bDcuMyA3LjNjLjcuNyAyIC43IDIuOCAwTDE1IDE1Wm0wIDAgNyA3In1dLFsicGF0aCIse2Q6Im0yLjEgMjEuOCA2LjQtNi4zIn1dLFsicGF0aCIse2Q6Im0xOSA1LTcgNyJ9XV0sdk49W1sicGF0aCIse2Q6Ik0zIDJ2N2MwIDEuMS45IDIgMiAyaDRhMiAyIDAgMCAwIDItMlYyIn1dLFsicGF0aCIse2Q6Ik03IDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIxIDE1VjJhNSA1IDAgMCAwLTUgNXY2YzAgMS4xLjkgMiAyIDJoM1ptMCAwdjcifV1dLE1vcj1bWyJwYXRoIix7ZDoiTTEyIDJ2MjAifV0sWyJwYXRoIix7ZDoiTTIgNWgyMCJ9XSxbInBhdGgiLHtkOiJNMyAzdjIifV0sWyJwYXRoIix7ZDoiTTcgM3YyIn1dLFsicGF0aCIse2Q6Ik0xNyAzdjIifV0sWyJwYXRoIix7ZDoiTTIxIDN2MiJ9XSxbInBhdGgiLHtkOiJtMTkgNS03IDctNy03In1dXSxrb3I9W1sicGF0aCIse2Q6Ik0xMyA2djVhMSAxIDAgMCAwIDEgMWg2LjEwMmExIDEgMCAwIDEgLjcxMi4yOThsLjg5OC45MWExIDEgMCAwIDEgLjI4OC43MDJWMTdhMSAxIDAgMCAxLTEgMWgtMyJ9XSxbInBhdGgiLHtkOiJNNSAxOEgzYTEgMSAwIDAgMS0xLTFWOGEyIDIgMCAwIDEgMi0yaDEyYzEuMSAwIDIuMS44IDIuNCAxLjhsMS4xNzYgNC4yIn1dLFsicGF0aCIse2Q6Ik05IDE4aDUifV0sWyJjaXJjbGUiLHtjeDoiMTYiLGN5OiIxOCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI3IixjeToiMTgiLHI6IjIifV1dLFNvcj1bWyJwYXRoIix7ZDoiTTggMjFzLTQtMy00LTkgNC05IDQtOSJ9XSxbInBhdGgiLHtkOiJNMTYgM3M0IDMgNCA5LTQgOS00IDkifV0sWyJsaW5lIix7eDE6IjE1Iix4MjoiOSIseTE6IjkiLHkyOiIxNSJ9XSxbImxpbmUiLHt4MToiOSIseDI6IjE1Iix5MToiOSIseTI6IjE1In1dXSx6b3I9W1sicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIseDoiMyIseToiMyIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiNy41IixyOiIuNSIsZmlsbDoiY3VycmVudENvbG9yIn1dLFsicGF0aCIse2Q6Im03LjkgNy45IDIuNyAyLjcifV0sWyJjaXJjbGUiLHtjeDoiMTYuNSIsY3k6IjcuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtMTMuNCAxMC42IDIuNy0yLjcifV0sWyJjaXJjbGUiLHtjeDoiNy41IixjeToiMTYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtNy45IDE2LjEgMi43LTIuNyJ9XSxbImNpcmNsZSIse2N4OiIxNi41IixjeToiMTYuNSIscjoiLjUiLGZpbGw6ImN1cnJlbnRDb2xvciJ9XSxbInBhdGgiLHtkOiJtMTMuNCAxMy40IDIuNyAyLjcifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMiJ9XV0sQ29yPVtbInBhdGgiLHtkOiJNMTkuNSA3YTI0IDI0IDAgMCAxIDAgMTAifV0sWyJwYXRoIix7ZDoiTTQuNSA3YTI0IDI0IDAgMCAwIDAgMTAifV0sWyJwYXRoIix7ZDoiTTcgMTkuNWEyNCAyNCAwIDAgMCAxMCAwIn1dLFsicGF0aCIse2Q6Ik03IDQuNWEyNCAyNCAwIDAgMSAxMCAwIn1dLFsicmVjdCIse3g6IjE3Iix5OiIxNyIsd2lkdGg6IjUiLGhlaWdodDoiNSIscng6IjEifV0sWyJyZWN0Iix7eDoiMTciLHk6IjIiLHdpZHRoOiI1IixoZWlnaHQ6IjUiLHJ4OiIxIn1dLFsicmVjdCIse3g6IjIiLHk6IjE3Iix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XSxbInJlY3QiLHt4OiIyIix5OiIyIix3aWR0aDoiNSIsaGVpZ2h0OiI1IixyeDoiMSJ9XV0sVG9yPVtbInBhdGgiLHtkOiJNMTYgOHE2IDAgNi02LTYgMC02IDYifV0sWyJwYXRoIix7ZDoiTTE3LjQxIDMuNTlhMTAgMTAgMCAxIDAgMyAzIn1dLFsicGF0aCIse2Q6Ik0yIDJhMjYuNiAyNi42IDAgMCAxIDEwIDIwYy45LTYuODIgMS41LTkuNSA0LTE0In1dXSxfb3I9W1sicGF0aCIse2Q6Ik0xOCAxMWMtMS41IDAtMi41LjUtMyAyIn1dLFsicGF0aCIse2Q6Ik00IDZhMiAyIDAgMCAwLTIgMnY0YTUgNSAwIDAgMCA1IDUgOCA4IDAgMCAxIDUgMiA4IDggMCAwIDEgNS0yIDUgNSAwIDAgMCA1LTVWOGEyIDIgMCAwIDAtMi0yaC0zYTggOCAwIDAgMC01IDIgOCA4IDAgMCAwLTUtMnoifV0sWyJwYXRoIix7ZDoiTTYgMTFjMS41IDAgMi41LjUgMyAyIn1dXSxMb3I9W1sicGF0aCIse2Q6Ik0xMCAyMGg0In1dLFsicGF0aCIse2Q6Ik0xMiAxNnY2In1dLFsicGF0aCIse2Q6Ik0xNyAyaDR2NCJ9XSxbInBhdGgiLHtkOiJtMjEgMi01LjQ2IDUuNDYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMSIscjoiNSJ9XV0sQW9yPVtbInBhdGgiLHtkOiJNMTIgMTV2NyJ9XSxbInBhdGgiLHtkOiJNOSAxOWg2In1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiOSIscjoiNiJ9XV0sRG9yPVtbInBhdGgiLHtkOiJtMiA4IDIgMi0yIDIgMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJtMjIgOC0yIDIgMiAyLTIgMiAyIDIifV0sWyJwYXRoIix7ZDoiTTggOHYxMGMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMXYtMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTAuMzRWNmMwLS41NS0uNDUtMS0xLTFoLTQuMzQifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sRW9yPVtbInBhdGgiLHtkOiJtMiA4IDIgMi0yIDIgMiAyLTIgMiJ9XSxbInBhdGgiLHtkOiJtMjIgOC0yIDIgMiAyLTIgMiAyIDIifV0sWyJyZWN0Iix7d2lkdGg6IjgiLGhlaWdodDoiMTQiLHg6IjgiLHk6IjUiLHJ4OiIxIn1dXSwkb3I9W1sicGF0aCIse2Q6Ik0xMC42NiA2SDE0YTIgMiAwIDAgMSAyIDJ2Mi41bDUuMjQ4LTMuMDYyQS41LjUgMCAwIDEgMjIgNy44N3Y4LjE5NiJ9XSxbInBhdGgiLHtkOiJNMTYgMTZhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDIifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sSW9yPVtbInBhdGgiLHtkOiJtMTYgMTMgNS4yMjMgMy40ODJhLjUuNSAwIDAgMCAuNzc3LS40MTZWNy44N2EuNS41IDAgMCAwLS43NTItLjQzMkwxNiAxMC41In1dLFsicmVjdCIse3g6IjIiLHk6IjYiLHdpZHRoOiIxNCIsaGVpZ2h0OiIxMiIscng6IjIifV1dLFBvcj1bWyJyZWN0Iix7d2lkdGg6IjIwIixoZWlnaHQ6IjE2Iix4OiIyIix5OiI0IixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMiA4aDIwIn1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiIxNCIscjoiMiJ9XSxbInBhdGgiLHtkOiJNOCAxMmg4In1dLFsiY2lyY2xlIix7Y3g6IjE2IixjeToiMTQiLHI6IjIifV1dLE5vcj1bWyJwYXRoIix7ZDoiTTIxIDE3djJhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTIifV0sWyJwYXRoIix7ZDoiTTIxIDdWNWEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMnYyIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEifV0sWyJwYXRoIix7ZDoiTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCJ9XV0sRm9yPVtbImNpcmNsZSIse2N4OiI2IixjeToiMTIiLHI6IjQifV0sWyJjaXJjbGUiLHtjeDoiMTgiLGN5OiIxMiIscjoiNCJ9XSxbImxpbmUiLHt4MToiNiIseDI6IjE4Iix5MToiMTYiLHkyOiIxNiJ9XV0sT29yPVtbInBhdGgiLHtkOiJNMTEuMSA3LjFhMTYuNTUgMTYuNTUgMCAwIDEgMTAuOSA0In1dLFsicGF0aCIse2Q6Ik0xMiAxMmExMi42IDEyLjYgMCAwIDEtOC43IDUifV0sWyJwYXRoIix7ZDoiTTE2LjggMTMuNmExNi41NSAxNi41NSAwIDAgMS05IDcuNSJ9XSxbInBhdGgiLHtkOiJNMjAuNyAxN2ExMi44IDEyLjggMCAwIDAtOC43LTUgMTMuMyAxMy4zIDAgMCAxIDAtMTAifV0sWyJwYXRoIix7ZDoiTTYuMyAzLjhhMTYuNTUgMTYuNTUgMCAwIDAgMS45IDExLjUifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMTAifV1dLFJvcj1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAwIDYifV1dLEJvcj1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAwIDYifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCAxOC4zNjRhOSA5IDAgMCAwIDAtMTIuNzI4In1dXSxIb3I9W1sicGF0aCIse2Q6Ik0xNiA5YTUgNSAwIDAgMSAuOTUgMi4yOTMifV0sWyJwYXRoIix7ZDoiTTE5LjM2NCA1LjYzNmE5IDkgMCAwIDEgMS44ODkgOS45NiJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dLFsicGF0aCIse2Q6Im03IDctLjU4Ny41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOThWMTEifV0sWyJwYXRoIix7ZDoiTTkuODI4IDQuMTcyQS42ODYuNjg2IDAgMCAxIDExIDQuNjU3di42ODYifV1dLHFvcj1bWyJwYXRoIix7ZDoiTTExIDQuNzAyYS43MDUuNzA1IDAgMCAwLTEuMjAzLS40OThMNi40MTMgNy41ODdBMS40IDEuNCAwIDAgMSA1LjQxNiA4SDNhMSAxIDAgMCAwLTEgMXY2YTEgMSAwIDAgMCAxIDFoMi40MTZhMS40IDEuNCAwIDAgMSAuOTk3LjQxM2wzLjM4MyAzLjM4NEEuNzA1LjcwNSAwIDAgMCAxMSAxOS4yOTh6In1dLFsibGluZSIse3gxOiIyMiIseDI6IjE2Iix5MToiOSIseTI6IjE1In1dLFsibGluZSIse3gxOiIxNiIseDI6IjIyIix5MToiOSIseTI6IjE1In1dXSxqb3I9W1sicGF0aCIse2Q6Im05IDEyIDIgMiA0LTQifV0sWyJwYXRoIix7ZDoiTTUgN2MwLTEuMS45LTIgMi0yaDEwYTIgMiAwIDAgMSAyIDJ2MTJINVY3WiJ9XSxbInBhdGgiLHtkOiJNMjIgMTlIMiJ9XV0sVm9yPVtbInBhdGgiLHtkOiJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoifV1dLFVvcj1bWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiJ9XSxbInBhdGgiLHtkOiJNMyA5YTIgMiAwIDAgMSAyLTJoMTRhMiAyIDAgMCAxIDIgMiJ9XSxbInBhdGgiLHtkOiJNMyAxMWgzYy44IDAgMS42LjMgMi4xLjlsMS4xLjljMS42IDEuNiA0LjEgMS42IDUuNyAwbDEuMS0uOWMuNS0uNSAxLjMtLjkgMi4xLS45SDIxIn1dXSx4Tj1bWyJwYXRoIix7ZDoiTTE3IDE0aC4wMSJ9XSxbInBhdGgiLHtkOiJNNyA3aDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDE0In1dXSxXb3I9W1sicGF0aCIse2Q6Ik0xOSA3VjRhMSAxIDAgMCAwLTEtMUg1YTIgMiAwIDAgMCAwIDRoMTVhMSAxIDAgMCAxIDEgMXY0aC0zYTIgMiAwIDAgMCAwIDRoM2ExIDEgMCAwIDAgMS0xdi0yYTEgMSAwIDAgMC0xLTEifV0sWyJwYXRoIix7ZDoiTTMgNXYxNGEyIDIgMCAwIDAgMiAyaDE1YTEgMSAwIDAgMCAxLTF2LTQifV1dLEdvcj1bWyJwYXRoIix7ZDoiTTEyIDE3djQifV0sWyJwYXRoIix7ZDoiTTggMjFoOCJ9XSxbInBhdGgiLHtkOiJtOSAxNyA2LjEtNi4xYTIgMiAwIDAgMSAyLjgxLjAxTDIyIDE1In1dLFsiY2lyY2xlIix7Y3g6IjgiLGN5OiI5IixyOiIyIn1dLFsicmVjdCIse3g6IjIiLHk6IjMiLHdpZHRoOiIyMCIsaGVpZ2h0OiIxNCIscng6IjIifV1dLHlOPVtbInBhdGgiLHtkOiJtMjEuNjQgMy42NC0xLjI4LTEuMjhhMS4yMSAxLjIxIDAgMCAwLTEuNzIgMEwyLjM2IDE4LjY0YTEuMjEgMS4yMSAwIDAgMCAwIDEuNzJsMS4yOCAxLjI4YTEuMiAxLjIgMCAwIDAgMS43MiAwTDIxLjY0IDUuMzZhMS4yIDEuMiAwIDAgMCAwLTEuNzIifV0sWyJwYXRoIix7ZDoibTE0IDcgMyAzIn1dLFsicGF0aCIse2Q6Ik01IDZ2NCJ9XSxbInBhdGgiLHtkOiJNMTkgMTR2NCJ9XSxbInBhdGgiLHtkOiJNMTAgMnYyIn1dLFsicGF0aCIse2Q6Ik03IDhIMyJ9XSxbInBhdGgiLHtkOiJNMjEgMTZoLTQifV0sWyJwYXRoIix7ZDoiTTExIDNIOSJ9XV0sWW9yPVtbInBhdGgiLHtkOiJNMTUgNFYyIn1dLFsicGF0aCIse2Q6Ik0xNSAxNnYtMiJ9XSxbInBhdGgiLHtkOiJNOCA5aDIifV0sWyJwYXRoIix7ZDoiTTIwIDloMiJ9XSxbInBhdGgiLHtkOiJNMTcuOCAxMS44IDE5IDEzIn1dLFsicGF0aCIse2Q6Ik0xNSA5aC4wMSJ9XSxbInBhdGgiLHtkOiJNMTcuOCA2LjIgMTkgNSJ9XSxbInBhdGgiLHtkOiJtMyAyMSA5LTkifV0sWyJwYXRoIix7ZDoiTTEyLjIgNi4yIDExIDUifV1dLFpvcj1bWyJwYXRoIix7ZDoiTTE4IDIxVjEwYTEgMSAwIDAgMC0xLTFIN2ExIDEgMCAwIDAtMSAxdjExIn1dLFsicGF0aCIse2Q6Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAxLjEzMi0xLjgwM2w3Ljk1LTMuOTc0YTIgMiAwIDAgMSAxLjgzNyAwbDcuOTQ4IDMuOTc0QTIgMiAwIDAgMSAyMiA4eiJ9XSxbInBhdGgiLHtkOiJNNiAxM2gxMiJ9XSxbInBhdGgiLHtkOiJNNiAxN2gxMiJ9XV0sWG9yPVtbInBhdGgiLHtkOiJNMyA2aDMifV0sWyJwYXRoIix7ZDoiTTE3IDZoLjAxIn1dLFsicmVjdCIse3dpZHRoOiIxOCIsaGVpZ2h0OiIyMCIseDoiMyIseToiMiIscng6IjIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMyIscjoiNSJ9XSxbInBhdGgiLHtkOiJNMTIgMThhMi41IDIuNSAwIDAgMCAwLTUgMi41IDIuNSAwIDAgMSAwLTUifV1dLFFvcj1bWyJwYXRoIix7ZDoiTTEyIDEwdjIuMmwxLjYgMSJ9XSxbInBhdGgiLHtkOiJtMTYuMTMgNy42Ni0uODEtNC4wNWEyIDIgMCAwIDAtMi0xLjYxaC0yLjY4YTIgMiAwIDAgMC0yIDEuNjFsLS43OCA0LjA1In1dLFsicGF0aCIse2Q6Im03Ljg4IDE2LjM2LjggNGEyIDIgMCAwIDAgMiAxLjYxaDIuNzJhMiAyIDAgMCAwIDItMS42MWwuODEtNC4wNSJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiI2In1dXSxKb3I9W1sicGF0aCIse2Q6Ik0xMiAxMEwxMiAyIn1dLFsicGF0aCIse2Q6Ik0xNiA2TDEyIDEwTDggNiJ9XSxbInBhdGgiLHtkOiJNMiAxNUMyLjYgMTUuNSAzLjIgMTYgNC41IDE2QzcgMTYgNyAxNCA5LjUgMTRDMTIuMSAxNCAxMS45IDE2IDE0LjUgMTZDMTcgMTYgMTcgMTQgMTkuNSAxNEMyMC44IDE0IDIxLjQgMTQuNSAyMiAxNSJ9XSxbInBhdGgiLHtkOiJNMiAyMUMyLjYgMjEuNSAzLjIgMjIgNC41IDIyQzcgMjIgNyAyMCA5LjUgMjBDMTIuMSAyMCAxMS45IDIyIDE0LjUgMjJDMTcgMjIgMTcgMjAgMTkuNSAyMEMyMC44IDIwIDIxLjQgMjAuNSAyMiAyMSJ9XV0sS29yPVtbInBhdGgiLHtkOiJNMTIgMnY4In1dLFsicGF0aCIse2Q6Ik0yIDE1Yy42LjUgMS4yIDEgMi41IDEgMi41IDAgMi41LTIgNS0yIDIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMjFjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJtOCA2IDQtNCA0IDQifV1dLGUycj1bWyJwYXRoIix7ZDoiTTE5IDVhMiAyIDAgMCAwLTIgMnYxMSJ9XSxbInBhdGgiLHtkOiJNMiAxOGMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dLFsicGF0aCIse2Q6Ik03IDEzaDEwIn1dLFsicGF0aCIse2Q6Ik03IDloMTAifV0sWyJwYXRoIix7ZDoiTTkgNWEyIDIgMCAwIDAtMiAydjExIn1dXSx0MnI9W1sicGF0aCIse2Q6Ik0yIDZjLjYuNSAxLjIgMSAyLjUgMUM3IDcgNyA1IDkuNSA1YzIuNiAwIDIuNCAyIDUgMiAyLjUgMCAyLjUtMiA1LTIgMS4zIDAgMS45LjUgMi41IDEifV0sWyJwYXRoIix7ZDoiTTIgMTJjLjYuNSAxLjIgMSAyLjUgMSAyLjUgMCAyLjUtMiA1LTIgMi42IDAgMi40IDIgNSAyIDIuNSAwIDIuNS0yIDUtMiAxLjMgMCAxLjkuNSAyLjUgMSJ9XSxbInBhdGgiLHtkOiJNMiAxOGMuNi41IDEuMiAxIDIuNSAxIDIuNSAwIDIuNS0yIDUtMiAyLjYgMCAyLjQgMiA1IDIgMi41IDAgMi41LTIgNS0yIDEuMyAwIDEuOS41IDIuNSAxIn1dXSxyMnI9W1sicGF0aCIse2Q6Im0xMC41ODYgNS40MTQtNS4xNzIgNS4xNzIifV0sWyJwYXRoIix7ZDoibTE4LjU4NiAxMy40MTQtNS4xNzIgNS4xNzIifV0sWyJwYXRoIix7ZDoiTTYgMTJoMTIifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIyMCIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjQiLHI6IjIifV0sWyJjaXJjbGUiLHtjeDoiMjAiLGN5OiIxMiIscjoiMiJ9XSxbImNpcmNsZSIse2N4OiI0IixjeToiMTIiLHI6IjIifV1dLGkycj1bWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMCIscjoiOCJ9XSxbImNpcmNsZSIse2N4OiIxMiIsY3k6IjEwIixyOiIzIn1dLFsicGF0aCIse2Q6Ik03IDIyaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAyMnYtNCJ9XV0sYTJyPVtbInBhdGgiLHtkOiJNMTcgMTdoLTVjLTEuMDktLjAyLTEuOTQuOTItMi41IDEuOUEzIDMgMCAxIDEgMi41NyAxNSJ9XSxbInBhdGgiLHtkOiJNOSAzLjRhNCA0IDAgMCAxIDYuNTIuNjYifV0sWyJwYXRoIix7ZDoibTYgMTcgMy4xLTUuOGEyLjUgMi41IDAgMCAwIC4wNTctMi4wNSJ9XSxbInBhdGgiLHtkOiJNMjAuMyAyMC4zYTQgNCAwIDAgMS0yLjMuNyJ9XSxbInBhdGgiLHtkOiJNMTguNiAxM2E0IDQgMCAwIDEgMy4zNTcgMy40MTQifV0sWyJwYXRoIix7ZDoibTEyIDYgLjYgMSJ9XSxbInBhdGgiLHtkOiJtMiAyIDIwIDIwIn1dXSxuMnI9W1sicGF0aCIse2Q6Ik0xOCAxNi45OGgtNS45OWMtMS4xIDAtMS45NS45NC0yLjQ4IDEuOUE0IDQgMCAwIDEgMiAxN2MuMDEtLjcuMi0xLjQuNTctMiJ9XSxbInBhdGgiLHtkOiJtNiAxNyAzLjEzLTUuNzhjLjUzLS45Ny4xLTIuMTgtLjUtMy4xYTQgNCAwIDEgMSA2Ljg5LTQuMDYifV0sWyJwYXRoIix7ZDoibTEyIDYgMy4xMyA1LjczQzE1LjY2IDEyLjcgMTYuOSAxMyAxOCAxM2E0IDQgMCAwIDEgMCA4In1dXSxvMnI9W1sicGF0aCIse2Q6Ik02LjUgOGEyIDIgMCAwIDAtMS45MDYgMS40NkwyLjEgMTguNUEyIDIgMCAwIDAgNCAyMWgxNmEyIDIgMCAwIDAgMS45MjUtMi41NEwxOS40IDkuNUEyIDIgMCAwIDAgMTcuNDggOHoifV0sWyJwYXRoIix7ZDoiTTcuOTk5IDE1YTIuNSAyLjUgMCAwIDEgNCAwIDIuNSAyLjUgMCAwIDAgNCAwIn1dLFsiY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMyJ9XV0sczJyPVtbInBhdGgiLHtkOiJtMiAyMiAxMC0xMCJ9XSxbInBhdGgiLHtkOiJtMTYgOC0xLjE3IDEuMTcifV0sWyJwYXRoIix7ZDoiTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJtOCA4LS41My41M2EzLjUgMy41IDAgMCAwIDAgNC45NEw5IDE1bDEuNTMtMS41M2MuNTUtLjU1Ljg4LTEuMjUuOTgtMS45NyJ9XSxbInBhdGgiLHtkOiJNMTAuOTEgNS4yNmMuMTUtLjI2LjM0LS41MS41Ni0uNzNMMTMgM2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAuMjggNC42MiJ9XSxbInBhdGgiLHtkOiJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIn1dLFsicGF0aCIse2Q6Ik0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XSxbInBhdGgiLHtkOiJtMTYgMTYtLjUzLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDkgMTVsMS41My0xLjUzYTMuNDkgMy40OSAwIDAgMSAxLjk3LS45OCJ9XSxbInBhdGgiLHtkOiJNMTguNzQgMTMuMDljLjI2LS4xNS41MS0uMzQuNzMtLjU2TDIxIDExbC0xLjUzLTEuNTNhMy41IDMuNSAwIDAgMC00LjYyLS4yOCJ9XSxbImxpbmUiLHt4MToiMiIseDI6IjIyIix5MToiMiIseTI6IjIyIn1dXSxsMnI9W1siY2lyY2xlIix7Y3g6IjEyIixjeToiNSIscjoiMyJ9XSxbInBhdGgiLHtkOiJNNi41IDhhMiAyIDAgMCAwLTEuOTA1IDEuNDZMMi4xIDE4LjVBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuOTI1LTIuNTRMMTkuNCA5LjVBMiAyIDAgMCAwIDE3LjQ4IDhaIn1dXSxjMnI9W1sicGF0aCIse2Q6Ik0yIDIyIDE2IDgifV0sWyJwYXRoIix7ZDoiTTMuNDcgMTIuNTMgNSAxMWwxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMNSAxOWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJNNy40NyA4LjUzIDkgN2wxLjUzIDEuNTNhMy41IDMuNSAwIDAgMSAwIDQuOTRMOSAxNWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJNMTEuNDcgNC41MyAxMyAzbDEuNTMgMS41M2EzLjUgMy41IDAgMCAxIDAgNC45NEwxMyAxMWwtMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgMC00Ljk0WiJ9XSxbInBhdGgiLHtkOiJNMjAgMmgydjJhNCA0IDAgMCAxLTQgNGgtMlY2YTQgNCAwIDAgMSA0LTRaIn1dLFsicGF0aCIse2Q6Ik0xMS40NyAxNy40NyAxMyAxOWwtMS41MyAxLjUzYTMuNSAzLjUgMCAwIDEtNC45NCAwTDUgMTlsMS41My0xLjUzYTMuNSAzLjUgMCAwIDEgNC45NCAwWiJ9XSxbInBhdGgiLHtkOiJNMTUuNDcgMTMuNDcgMTcgMTVsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEw5IDE1bDEuNTMtMS41M2EzLjUgMy41IDAgMCAxIDQuOTQgMFoifV0sWyJwYXRoIix7ZDoiTTE5LjQ3IDkuNDcgMjEgMTFsLTEuNTMgMS41M2EzLjUgMy41IDAgMCAxLTQuOTQgMEwxMyAxMWwxLjUzLTEuNTNhMy41IDMuNSAwIDAgMSA0Ljk0IDBaIn1dXSxkMnI9W1siY2lyY2xlIix7Y3g6IjciLGN5OiIxMiIscjoiMyJ9XSxbInBhdGgiLHtkOiJNMTAgOXY2In1dLFsiY2lyY2xlIix7Y3g6IjE3IixjeToiMTIiLHI6IjMifV0sWyJwYXRoIix7ZDoiTTE0IDd2OCJ9XSxbInBhdGgiLHtkOiJNMjIgMTd2MWMwIC41LS41IDEtMSAxSDNjLS41IDAtMS0uNS0xLTF2LTEifV1dLHUycj1bWyJwYXRoIix7ZDoibTE0LjMwNSAxOS41My45MjMtLjM4MiJ9XSxbInBhdGgiLHtkOiJtMTUuMjI4IDE2Ljg1Mi0uOTIzLS4zODMifV0sWyJwYXRoIix7ZDoibTE2Ljg1MiAxNS4yMjgtLjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xNi44NTIgMjAuNzcyLS4zODMuOTI0In1dLFsicGF0aCIse2Q6Im0xOS4xNDggMTUuMjI4LjM4My0uOTIzIn1dLFsicGF0aCIse2Q6Im0xOS41MyAyMS42OTYtLjM4Mi0uOTI0In1dLFsicGF0aCIse2Q6Ik0yIDcuODJhMTUgMTUgMCAwIDEgMjAgMCJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE2Ljg1Mi45MjQtLjM4MyJ9XSxbInBhdGgiLHtkOiJtMjAuNzcyIDE5LjE0OC45MjQuMzgzIn1dLFsicGF0aCIse2Q6Ik01IDExLjg1OGExMCAxMCAwIDAgMSAxMS41LTEuNzg1In1dLFsicGF0aCIse2Q6Ik04LjUgMTUuNDI5YTUgNSAwIDAgMSAyLjQxMy0xLjMxIn1dLFsiY2lyY2xlIix7Y3g6IjE4IixjeToiMTgiLHI6IjMifV1dLHAycj1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTQgMCJ9XSxbInBhdGgiLHtkOiJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIn1dXSxoMnI9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV0sZjJyPVtbInBhdGgiLHtkOiJNMTIgMjBoLjAxIn1dLFsicGF0aCIse2Q6Ik04LjUgMTYuNDI5YTUgNSAwIDAgMSA3IDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDUuMTctMi42OSJ9XSxbInBhdGgiLHtkOiJNMTkgMTIuODU5YTEwIDEwIDAgMCAwLTIuMDA3LTEuNTIzIn1dLFsicGF0aCIse2Q6Ik0yIDguODJhMTUgMTUgMCAwIDEgNC4xNzctMi42NDMifV0sWyJwYXRoIix7ZDoiTTIyIDguODJhMTUgMTUgMCAwIDAtMTEuMjg4LTMuNzY0In1dLFsicGF0aCIse2Q6Im0yIDIgMjAgMjAifV1dLG0ycj1bWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik0yMS4zNzggMTYuNjI2YTEgMSAwIDAgMC0zLjAwNC0zLjAwNGwtNC4wMSA0LjAxMmEyIDIgMCAwIDAtLjUwNi44NTRsLS44MzcgMi44N2EuNS41IDAgMCAwIC42Mi42MmwyLjg3LS44MzdhMiAyIDAgMCAwIC44NTQtLjUwNnoifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDEwLjUtMi4yMjIifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDMtMS40MDYifV1dLGcycj1bWyJwYXRoIix7ZDoiTTExLjk2NSAxMC4xMDV2NEwxMy41IDEyLjVhNSA1IDAgMCAxIDggMS41In1dLFsicGF0aCIse2Q6Ik0xMS45NjUgMTQuMTA1aDQifV0sWyJwYXRoIix7ZDoiTTE3Ljk2NSAxOC4xMDVoNEwyMC40MyAxOS43MWE1IDUgMCAwIDEtOC0xLjUifV0sWyJwYXRoIix7ZDoiTTIgOC44MmExNSAxNSAwIDAgMSAyMCAwIn1dLFsicGF0aCIse2Q6Ik0yMS45NjUgMjIuMTA1di00In1dLFsicGF0aCIse2Q6Ik01IDEyLjg2YTEwIDEwIDAgMCAxIDMtMi4wMzIifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjloLjAxIn1dXSxiMnI9W1sicGF0aCIse2Q6Ik0xMiAyMGguMDEifV1dLHYycj1bWyJwYXRoIix7ZDoiTTEyIDIwaC4wMSJ9XSxbInBhdGgiLHtkOiJNMiA4LjgyYTE1IDE1IDAgMCAxIDIwIDAifV0sWyJwYXRoIix7ZDoiTTUgMTIuODU5YTEwIDEwIDAgMCAxIDE0IDAifV0sWyJwYXRoIix7ZDoiTTguNSAxNi40MjlhNSA1IDAgMCAxIDcgMCJ9XV0seDJyPVtbInBhdGgiLHtkOiJNMTAgMnY4In1dLFsicGF0aCIse2Q6Ik0xMi44IDIxLjZBMiAyIDAgMSAwIDE0IDE4SDIifV0sWyJwYXRoIix7ZDoiTTE3LjUgMTBhMi41IDIuNSAwIDEgMSAyIDRIMiJ9XSxbInBhdGgiLHtkOiJtNiA2IDQgNCA0LTQifV1dLHkycj1bWyJwYXRoIix7ZDoiTTEyLjggMTkuNkEyIDIgMCAxIDAgMTQgMTZIMiJ9XSxbInBhdGgiLHtkOiJNMTcuNSA4YTIuNSAyLjUgMCAxIDEgMiA0SDIifV0sWyJwYXRoIix7ZDoiTTkuOCA0LjRBMiAyIDAgMSAxIDExIDhIMiJ9XV0sdzJyPVtbInBhdGgiLHtkOiJNOCAyMmg4In1dLFsicGF0aCIse2Q6Ik03IDEwaDEwIn1dLFsicGF0aCIse2Q6Ik0xMiAxNXY3In1dLFsicGF0aCIse2Q6Ik0xMiAxNWE1IDUgMCAwIDAgNS01YzAtMi0uNS00LTItOEg5Yy0xLjUgNC0yIDYtMiA4YTUgNSAwIDAgMCA1IDVaIn1dXSxNMnI9W1sicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjMiLHk6IjMiLHJ4OiIyIn1dLFsicGF0aCIse2Q6Ik03IDExdjRhMiAyIDAgMCAwIDIgMmg0In1dLFsicmVjdCIse3dpZHRoOiI4IixoZWlnaHQ6IjgiLHg6IjEzIix5OiIxMyIscng6IjIifV1dLGsycj1bWyJwYXRoIix7ZDoiTTggMjJoOCJ9XSxbInBhdGgiLHtkOiJNNyAxMGgzbTcgMGgtMS4zNDMifV0sWyJwYXRoIix7ZDoiTTEyIDE1djcifV0sWyJwYXRoIix7ZDoiTTcuMzA3IDcuMzA3QTEyLjMzIDEyLjMzIDAgMCAwIDcgMTBhNSA1IDAgMCAwIDcuMzkxIDQuMzkxTTguNjM4IDIuOTgxQzguNzUgMi42NjggOC44NzIgMi4zNCA5IDJoNmMxLjUgNCAyIDYgMiA4IDAgLjQwNy0uMDUuODA5LS4xNDUgMS4xOTgifV0sWyJsaW5lIix7eDE6IjIiLHgyOiIyMiIseTE6IjIiLHkyOiIyMiJ9XV0sUzJyPVtbInBhdGgiLHtkOiJtMTkgMTItMS41IDMifV0sWyJwYXRoIix7ZDoiTTE5LjYzIDE4LjgxIDIyIDIwIn1dLFsicGF0aCIse2Q6Ik02LjQ3IDguMjNhMS42OCAxLjY4IDAgMCAxIDIuNDQgMS45M2wtLjY0IDIuMDhhNi43NiA2Ljc2IDAgMCAwIDEwLjE2IDcuNjdsLjQyLS4yN2ExIDEgMCAxIDAtMi43My00LjIxbC0uNDIuMjdhMS43NiAxLjc2IDAgMCAxLTIuNjMtMS45OWwuNjQtMi4wOEE2LjY2IDYuNjYgMCAwIDAgMy45NCAzLjlsLS43LjRhMSAxIDAgMSAwIDIuNTUgNC4zNHoifV1dLHoycj1bWyJwYXRoIix7ZDoiTTE4IDYgNiAxOCJ9XSxbInBhdGgiLHtkOiJtNiA2IDEyIDEyIn1dXSxDMnI9W1sicGF0aCIse2Q6Ik0yLjUgMTdhMjQuMTIgMjQuMTIgMCAwIDEgMC0xMCAyIDIgMCAwIDEgMS40LTEuNCA0OS41NiA0OS41NiAwIDAgMSAxNi4yIDBBMiAyIDAgMCAxIDIxLjUgN2EyNC4xMiAyNC4xMiAwIDAgMSAwIDEwIDIgMiAwIDAgMS0xLjQgMS40IDQ5LjU1IDQ5LjU1IDAgMCAxLTE2LjIgMEEyIDIgMCAwIDEgMi41IDE3In1dLFsicGF0aCIse2Q6Im0xMCAxNSA1LTMtNS0zeiJ9XV0sVDJyPVtbInBhdGgiLHtkOiJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuMTA2LTMuMTA1Yy4zMi0uMzIyLjg2My0uMjIuOTgzLjIxOGE2IDYgMCAwIDEtOC4yNTkgNy4wNTdsLTcuOTEgNy45MWExIDEgMCAwIDEtMi45OTktM2w3LjkxLTcuOTFhNiA2IDAgMCAxIDcuMDU3LTguMjU5Yy40MzguMTIuNTQuNjYyLjIxOS45ODR6In1dXSxfMnI9W1sicGF0aCIse2Q6Ik0xMC41MTMgNC44NTYgMTMuMTIgMi4xN2EuNS41IDAgMCAxIC44Ni40NmwtMS4zNzcgNC4zMTcifV0sWyJwYXRoIix7ZDoiTTE1LjY1NiAxMEgyMGExIDEgMCAwIDEgLjc4IDEuNjNsLTEuNzIgMS43NzMifV0sWyJwYXRoIix7ZDoiTTE2LjI3MyAxNi4yNzMgMTAuODggMjEuODNhLjUuNSAwIDAgMS0uODYtLjQ2bDEuOTItNi4wMkExIDEgMCAwIDAgMTEgMTRINGExIDEgMCAwIDEtLjc4LTEuNjNsNC41MDctNC42NDMifV0sWyJwYXRoIix7ZDoibTIgMiAyMCAyMCJ9XV0sTDJyPVtbInBhdGgiLHtkOiJNNCAxNGExIDEgMCAwIDEtLjc4LTEuNjNsOS45LTEwLjJhLjUuNSAwIDAgMSAuODYuNDZsLTEuOTIgNi4wMkExIDEgMCAwIDAgMTMgMTBoN2ExIDEgMCAwIDEgLjc4IDEuNjNsLTkuOSAxMC4yYS41LjUgMCAwIDEtLjg2LS40NmwxLjkyLTYuMDJBMSAxIDAgMCAwIDExIDE0eiJ9XV0sQTJyPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE2LjY1Iix5MToiMjEiLHkyOiIxNi42NSJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE0Iix5MToiMTEiLHkyOiIxMSJ9XV0sRDJyPVtbImNpcmNsZSIse2N4OiIxMSIsY3k6IjExIixyOiI4In1dLFsibGluZSIse3gxOiIyMSIseDI6IjE2LjY1Iix5MToiMjEiLHkyOiIxNi42NSJ9XSxbImxpbmUiLHt4MToiMTEiLHgyOiIxMSIseTE6IjgiLHkyOiIxNCJ9XSxbImxpbmUiLHt4MToiOCIseDI6IjE0Iix5MToiMTEiLHkyOiIxMSJ9XV0sRVpyPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLEFBcnJvd0Rvd246WlB0LEFBcnJvd1VwOlhQdCxBTGFyZ2VTbWFsbDpRUHQsQWNjZXNzaWJpbGl0eTpKUHQsQWN0aXZpdHk6ZU50LEFjdGl2aXR5U3F1YXJlOnRQLEFpclZlbnQ6S1B0LEFpcnBsYXk6dE50LEFsYXJtQ2hlY2s6ZkUsQWxhcm1DbG9jazppTnQsQWxhcm1DbG9ja0NoZWNrOmZFLEFsYXJtQ2xvY2tNaW51czptRSxBbGFybUNsb2NrT2ZmOnJOdCxBbGFybUNsb2NrUGx1czpnRSxBbGFybU1pbnVzOm1FLEFsYXJtUGx1czpnRSxBbGFybVNtb2tlOmFOdCxBbGJ1bTpuTnQsQWxlcnRDaXJjbGU6VUUsQWxlcnRPY3RhZ29uOkxJLEFsZXJ0VHJpYW5nbGU6c04sQWxpZ25DZW50ZXI6S1AsQWxpZ25DZW50ZXJIb3Jpem9udGFsOm9OdCxBbGlnbkNlbnRlclZlcnRpY2FsOnNOdCxBbGlnbkVuZEhvcml6b250YWw6bE50LEFsaWduRW5kVmVydGljYWw6Y050LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI6ZE50LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVFbmQ6dU50LEFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVTdGFydDpwTnQsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcjpoTnQsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUVuZDpmTnQsQWxpZ25Ib3Jpem9udGFsSnVzdGlmeVN0YXJ0Om1OdCxBbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZDpnTnQsQWxpZ25Ib3Jpem9udGFsU3BhY2VCZXR3ZWVuOmJOdCxBbGlnbkp1c3RpZnk6dE4sQWxpZ25MZWZ0OlpwLEFsaWduUmlnaHQ6ZU4sQWxpZ25TdGFydEhvcml6b250YWw6dk50LEFsaWduU3RhcnRWZXJ0aWNhbDp4TnQsQWxpZ25WZXJ0aWNhbERpc3RyaWJ1dGVDZW50ZXI6eU50LEFsaWduVmVydGljYWxEaXN0cmlidXRlRW5kOndOdCxBbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0Ok1OdCxBbGlnblZlcnRpY2FsSnVzdGlmeUNlbnRlcjprTnQsQWxpZ25WZXJ0aWNhbEp1c3RpZnlFbmQ6U050LEFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ6ek50LEFsaWduVmVydGljYWxTcGFjZUFyb3VuZDpDTnQsQWxpZ25WZXJ0aWNhbFNwYWNlQmV0d2VlbjpUTnQsQW1idWxhbmNlOl9OdCxBbXBlcnNhbmQ6TE50LEFtcGVyc2FuZHM6QU50LEFtcGhvcmE6RE50LEFuY2hvcjpFTnQsQW5ncnk6JE50LEFubm95ZWQ6SU50LEFudGVubmE6UE50LEFudmlsOk5OdCxBcGVydHVyZTpGTnQsQXBwV2luZG93OlJOdCxBcHBXaW5kb3dNYWM6T050LEFwcGxlOkJOdCxBcmNoaXZlOmpOdCxBcmNoaXZlUmVzdG9yZTpITnQsQXJjaGl2ZVg6cU50LEFyZWFDaGFydDpERSxBcm1jaGFpcjpWTnQsQXJyb3dCaWdEb3duOldOdCxBcnJvd0JpZ0Rvd25EYXNoOlVOdCxBcnJvd0JpZ0xlZnQ6WU50LEFycm93QmlnTGVmdERhc2g6R050LEFycm93QmlnUmlnaHQ6WE50LEFycm93QmlnUmlnaHREYXNoOlpOdCxBcnJvd0JpZ1VwOkpOdCxBcnJvd0JpZ1VwRGFzaDpRTnQsQXJyb3dEb3duOmxGdCxBcnJvd0Rvd24wMTpLTnQsQXJyb3dEb3duMTA6ZUZ0LEFycm93RG93bkFaOmJFLEFycm93RG93bkF6OmJFLEFycm93RG93bkNpcmNsZTpXRSxBcnJvd0Rvd25Gcm9tTGluZTp0RnQsQXJyb3dEb3duTGVmdDpyRnQsQXJyb3dEb3duTGVmdEZyb21DaXJjbGU6WUUsQXJyb3dEb3duTGVmdEZyb21TcXVhcmU6blAsQXJyb3dEb3duTGVmdFNxdWFyZTplUCxBcnJvd0Rvd25OYXJyb3dXaWRlOmlGdCxBcnJvd0Rvd25SaWdodDphRnQsQXJyb3dEb3duUmlnaHRGcm9tQ2lyY2xlOlpFLEFycm93RG93blJpZ2h0RnJvbVNxdWFyZTpzUCxBcnJvd0Rvd25SaWdodFNxdWFyZTpyUCxBcnJvd0Rvd25TcXVhcmU6aVAsQXJyb3dEb3duVG9Eb3Q6bkZ0LEFycm93RG93blRvTGluZTpvRnQsQXJyb3dEb3duVXA6c0Z0LEFycm93RG93bldpZGVOYXJyb3c6dkUsQXJyb3dEb3duWkE6eEUsQXJyb3dEb3duWmE6eEUsQXJyb3dMZWZ0OnBGdCxBcnJvd0xlZnRDaXJjbGU6R0UsQXJyb3dMZWZ0RnJvbUxpbmU6Y0Z0LEFycm93TGVmdFJpZ2h0OmRGdCxBcnJvd0xlZnRTcXVhcmU6YVAsQXJyb3dMZWZ0VG9MaW5lOnVGdCxBcnJvd1JpZ2h0OmdGdCxBcnJvd1JpZ2h0Q2lyY2xlOkpFLEFycm93UmlnaHRGcm9tTGluZTpoRnQsQXJyb3dSaWdodExlZnQ6ZkZ0LEFycm93UmlnaHRTcXVhcmU6Y1AsQXJyb3dSaWdodFRvTGluZTptRnQsQXJyb3dVcDpDRnQsQXJyb3dVcDAxOmJGdCxBcnJvd1VwMTA6dkZ0LEFycm93VXBBWjp5RSxBcnJvd1VwQXo6eUUsQXJyb3dVcENpcmNsZTpLRSxBcnJvd1VwRG93bjp4RnQsQXJyb3dVcEZyb21Eb3Q6eUZ0LEFycm93VXBGcm9tTGluZTp3RnQsQXJyb3dVcExlZnQ6TUZ0LEFycm93VXBMZWZ0RnJvbUNpcmNsZTpYRSxBcnJvd1VwTGVmdEZyb21TcXVhcmU6b1AsQXJyb3dVcExlZnRTcXVhcmU6ZFAsQXJyb3dVcE5hcnJvd1dpZGU6d0UsQXJyb3dVcFJpZ2h0OmtGdCxBcnJvd1VwUmlnaHRGcm9tQ2lyY2xlOlFFLEFycm93VXBSaWdodEZyb21TcXVhcmU6bFAsQXJyb3dVcFJpZ2h0U3F1YXJlOnVQLEFycm93VXBTcXVhcmU6cFAsQXJyb3dVcFRvTGluZTpTRnQsQXJyb3dVcFdpZGVOYXJyb3c6ekZ0LEFycm93VXBaQTpNRSxBcnJvd1VwWmE6TUUsQXJyb3dzVXBGcm9tTGluZTpURnQsQXN0ZXJpc2s6X0Z0LEFzdGVyaXNrU3F1YXJlOmhQLEF0U2lnbjpMRnQsQXRvbTpBRnQsQXVkaW9MaW5lczpERnQsQXVkaW9XYXZlZm9ybTpFRnQsQXdhcmQ6JEZ0LEF4ZTpJRnQsQXhpczNEOmtFLEF4aXMzZDprRSxCYWJ5Ok5GdCxCYWNrcGFjazpQRnQsQmFkZ2U6SkZ0LEJhZGdlQWxlcnQ6RkZ0LEJhZGdlQ2VudDpPRnQsQmFkZ2VDaGVjazpTRSxCYWRnZURvbGxhclNpZ246QkZ0LEJhZGdlRXVybzpIRnQsQmFkZ2VIZWxwOnpFLEJhZGdlSW5kaWFuUnVwZWU6UkZ0LEJhZGdlSW5mbzpxRnQsQmFkZ2VKYXBhbmVzZVllbjpqRnQsQmFkZ2VNaW51czpWRnQsQmFkZ2VQZXJjZW50OlVGdCxCYWRnZVBsdXM6V0Z0LEJhZGdlUG91bmRTdGVybGluZzpHRnQsQmFkZ2VRdWVzdGlvbk1hcms6ekUsQmFkZ2VSdXNzaWFuUnVibGU6WUZ0LEJhZGdlU3dpc3NGcmFuYzpaRnQsQmFkZ2VUdXJraXNoTGlyYTpYRnQsQmFkZ2VYOlFGdCxCYWdnYWdlQ2xhaW06S0Z0LEJhbGxvb246ZU90LEJhbjp0T3QsQmFuYW5hOnJPdCxCYW5kYWdlOmlPdCxCYW5rbm90ZTpzT3QsQmFua25vdGVBcnJvd0Rvd246YU90LEJhbmtub3RlQXJyb3dVcDpuT3QsQmFua25vdGVYOm9PdCxCYXJDaGFydDpSRSxCYXJDaGFydDI6QkUsQmFyQ2hhcnQzOkZFLEJhckNoYXJ0NDpORSxCYXJDaGFydEJpZzpJRSxCYXJDaGFydEhvcml6b250YWw6UEUsQmFyQ2hhcnRIb3Jpem9udGFsQmlnOkVFLEJhcmNvZGU6bE90LEJhcnJlbDpjT3QsQmFzZWxpbmU6ZE90LEJhdGg6dU90LEJhdHRlcnk6dk90LEJhdHRlcnlDaGFyZ2luZzpwT3QsQmF0dGVyeUZ1bGw6aE90LEJhdHRlcnlMb3c6Zk90LEJhdHRlcnlNZWRpdW06bU90LEJhdHRlcnlQbHVzOmdPdCxCYXR0ZXJ5V2FybmluZzpiT3QsQmVha2VyOnhPdCxCZWFuOndPdCxCZWFuT2ZmOnlPdCxCZWQ6U090LEJlZERvdWJsZTpNT3QsQmVkU2luZ2xlOmtPdCxCZWVmOnpPdCxCZWVyOlRPdCxCZWVyT2ZmOkNPdCxCZWxsOklPdCxCZWxsRG90Ol9PdCxCZWxsRWxlY3RyaWM6TE90LEJlbGxNaW51czpBT3QsQmVsbE9mZjpET3QsQmVsbFBsdXM6RU90LEJlbGxSaW5nOiRPdCxCZXR3ZWVuSG9yaXpvbmFsRW5kOkNFLEJldHdlZW5Ib3Jpem9uYWxTdGFydDpURSxCZXR3ZWVuSG9yaXpvbnRhbEVuZDpDRSxCZXR3ZWVuSG9yaXpvbnRhbFN0YXJ0OlRFLEJldHdlZW5WZXJ0aWNhbEVuZDpQT3QsQmV0d2VlblZlcnRpY2FsU3RhcnQ6Tk90LEJpY2Vwc0ZsZXhlZDpGT3QsQmlrZTpPT3QsQmluYXJ5OlJPdCxCaW5vY3VsYXJzOkJPdCxCaW9oYXphcmQ6SE90LEJpcmQ6cU90LEJpcmRob3VzZTpqT3QsQml0Y29pbjpWT3QsQmxlbmQ6VU90LEJsaW5kczpXT3QsQmxvY2tzOllPdCxCbHVldG9vdGg6Sk90LEJsdWV0b290aENvbm5lY3RlZDpHT3QsQmx1ZXRvb3RoT2ZmOlpPdCxCbHVldG9vdGhTZWFyY2hpbmc6WE90LEJvbGQ6UU90LEJvbHQ6ZVJ0LEJvbWI6S090LEJvbmU6dFJ0LEJvb2s6Q1J0LEJvb2tBOnJSdCxCb29rQWxlcnQ6aVJ0LEJvb2tBdWRpbzpuUnQsQm9va0NoZWNrOmFSdCxCb29rQ29weTpvUnQsQm9va0Rhc2hlZDpfRSxCb29rRG93bjpzUnQsQm9va0hlYWRwaG9uZXM6bFJ0LEJvb2tIZWFydDpjUnQsQm9va0ltYWdlOmRSdCxCb29rS2V5OnVSdCxCb29rTG9jazpwUnQsQm9va01hcmtlZDpoUnQsQm9va01pbnVzOmZSdCxCb29rT3BlbjpiUnQsQm9va09wZW5DaGVjazptUnQsQm9va09wZW5UZXh0OmdSdCxCb29rUGx1czp2UnQsQm9va1NlYXJjaDp4UnQsQm9va1RlbXBsYXRlOl9FLEJvb2tUZXh0OnlSdCxCb29rVHlwZTp3UnQsQm9va1VwOmtSdCxCb29rVXAyOk1SdCxCb29rVXNlcjpTUnQsQm9va1g6elJ0LEJvb2ttYXJrOkRSdCxCb29rbWFya0NoZWNrOlRSdCxCb29rbWFya01pbnVzOl9SdCxCb29rbWFya1BsdXM6TFJ0LEJvb2ttYXJrWDpBUnQsQm9vbUJveDpFUnQsQm90OklSdCxCb3RNZXNzYWdlU3F1YXJlOiRSdCxCb3RPZmY6UFJ0LEJvdHRsZVdpbmU6TlJ0LEJvd0Fycm93OkZSdCxCb3g6T1J0LEJveFNlbGVjdDpTUCxCb3hlczpSUnQsQnJhY2VzOkxFLEJyYWNrZXRzOkJSdCxCcmFpbjpqUnQsQnJhaW5DaXJjdWl0OkhSdCxCcmFpbkNvZzpxUnQsQnJpY2tXYWxsOkdSdCxCcmlja1dhbGxGaXJlOlZSdCxCcmlja1dhbGxTaGllbGQ6VVJ0LEJyaWVmY2FzZTpYUnQsQnJpZWZjYXNlQnVzaW5lc3M6V1J0LEJyaWVmY2FzZUNvbnZleW9yQmVsdDpZUnQsQnJpZWZjYXNlTWVkaWNhbDpaUnQsQnJpbmdUb0Zyb250OlFSdCxCcnVzaDpLUnQsQnJ1c2hDbGVhbmluZzpKUnQsQnViYmxlczplQnQsQnVnOmlCdCxCdWdPZmY6dEJ0LEJ1Z1BsYXk6ckJ0LEJ1aWxkaW5nOm5CdCxCdWlsZGluZzI6YUJ0LEJ1czpzQnQsQnVzRnJvbnQ6b0J0LENhYmxlOmNCdCxDYWJsZUNhcjpsQnQsQ2FrZTp1QnQsQ2FrZVNsaWNlOmRCdCxDYWxjdWxhdG9yOnBCdCxDYWxlbmRhcjokQnQsQ2FsZW5kYXIxOmhCdCxDYWxlbmRhckFycm93RG93bjpmQnQsQ2FsZW5kYXJBcnJvd1VwOm1CdCxDYWxlbmRhckNoZWNrOmJCdCxDYWxlbmRhckNoZWNrMjpnQnQsQ2FsZW5kYXJDbG9jazp2QnQsQ2FsZW5kYXJDb2c6eEJ0LENhbGVuZGFyRGF5czp5QnQsQ2FsZW5kYXJGb2xkOndCdCxDYWxlbmRhckhlYXJ0Ok1CdCxDYWxlbmRhck1pbnVzOlNCdCxDYWxlbmRhck1pbnVzMjprQnQsQ2FsZW5kYXJPZmY6ekJ0LENhbGVuZGFyUGx1czpUQnQsQ2FsZW5kYXJQbHVzMjpDQnQsQ2FsZW5kYXJSYW5nZTpfQnQsQ2FsZW5kYXJTZWFyY2g6TEJ0LENhbGVuZGFyU3luYzpBQnQsQ2FsZW5kYXJYOkVCdCxDYWxlbmRhclgyOkRCdCxDYWxlbmRhcnM6SUJ0LENhbWVyYTpOQnQsQ2FtZXJhT2ZmOlBCdCxDYW5kbGVzdGlja0NoYXJ0OiRFLENhbmR5OlJCdCxDYW5keUNhbmU6RkJ0LENhbmR5T2ZmOk9CdCxDYW5uYWJpczpIQnQsQ2FubmFiaXNPZmY6QkJ0LENhcHRpb25zOkFFLENhcHRpb25zT2ZmOnFCdCxDYXI6VUJ0LENhckZyb250OmpCdCxDYXJUYXhpRnJvbnQ6VkJ0LENhcmF2YW46V0J0LENhcmRTaW06R0J0LENhcnJvdDpZQnQsQ2FzZUxvd2VyOlpCdCxDYXNlU2Vuc2l0aXZlOlhCdCxDYXNlVXBwZXI6UUJ0LENhc3NldHRlVGFwZTpKQnQsQ2FzdDpLQnQsQ2FzdGxlOmVIdCxDYXQ6dEh0LENjdHY6ckh0LENoYXJ0QXJlYTpERSxDaGFydEJhcjpQRSxDaGFydEJhckJpZzpFRSxDaGFydEJhckRlY3JlYXNpbmc6aUh0LENoYXJ0QmFySW5jcmVhc2luZzphSHQsQ2hhcnRCYXJTdGFja2VkOm5IdCxDaGFydENhbmRsZXN0aWNrOiRFLENoYXJ0Q29sdW1uOkZFLENoYXJ0Q29sdW1uQmlnOklFLENoYXJ0Q29sdW1uRGVjcmVhc2luZzpvSHQsQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOk5FLENoYXJ0Q29sdW1uU3RhY2tlZDpzSHQsQ2hhcnRHYW50dDpsSHQsQ2hhcnRMaW5lOk9FLENoYXJ0TmV0d29yazpjSHQsQ2hhcnROb0F4ZXNDb2x1bW46QkUsQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nOmRIdCxDaGFydE5vQXhlc0NvbHVtbkluY3JlYXNpbmc6UkUsQ2hhcnROb0F4ZXNDb21iaW5lZDp1SHQsQ2hhcnROb0F4ZXNHYW50dDpIRSxDaGFydFBpZTpxRSxDaGFydFNjYXR0ZXI6akUsQ2hhcnRTcGxpbmU6cEh0LENoZWNrOmJIdCxDaGVja0NoZWNrOmZIdCxDaGVja0NpcmNsZTplJCxDaGVja0NpcmNsZTI6dCQsQ2hlY2tMaW5lOmhIdCxDaGVja1NxdWFyZTptUCxDaGVja1NxdWFyZTI6Z1AsQ2hlZkhhdDptSHQsQ2hlcnJ5OmdIdCxDaGVzc0Jpc2hvcDp2SHQsQ2hlc3NLaW5nOnhIdCxDaGVzc0tuaWdodDpNSHQsQ2hlc3NQYXduOnlIdCxDaGVzc1F1ZWVuOndIdCxDaGVzc1Jvb2s6a0h0LENoZXZyb25Eb3duOlNIdCxDaGV2cm9uRG93bkNpcmNsZTpyJCxDaGV2cm9uRG93blNxdWFyZTpiUCxDaGV2cm9uRmlyc3Q6ekh0LENoZXZyb25MYXN0OkNIdCxDaGV2cm9uTGVmdDpUSHQsQ2hldnJvbkxlZnRDaXJjbGU6aSQsQ2hldnJvbkxlZnRTcXVhcmU6dlAsQ2hldnJvblJpZ2h0Ol9IdCxDaGV2cm9uUmlnaHRDaXJjbGU6YSQsQ2hldnJvblJpZ2h0U3F1YXJlOnhQLENoZXZyb25VcDpMSHQsQ2hldnJvblVwQ2lyY2xlOm4kLENoZXZyb25VcFNxdWFyZTp5UCxDaGV2cm9uc0Rvd246REh0LENoZXZyb25zRG93blVwOkFIdCxDaGV2cm9uc0xlZnQ6SUh0LENoZXZyb25zTGVmdFJpZ2h0OiRIdCxDaGV2cm9uc0xlZnRSaWdodEVsbGlwc2lzOkVIdCxDaGV2cm9uc1JpZ2h0Ok5IdCxDaGV2cm9uc1JpZ2h0TGVmdDpQSHQsQ2hldnJvbnNVcDpGSHQsQ2hldnJvbnNVcERvd246T0h0LENocm9tZTpWRSxDaHJvbWl1bTpWRSxDaHVyY2g6Qkh0LENpZ2FyZXR0ZTpISHQsQ2lnYXJldHRlT2ZmOlJIdCxDaXJjbGU6cnF0LENpcmNsZUFsZXJ0OlVFLENpcmNsZUFycm93RG93bjpXRSxDaXJjbGVBcnJvd0xlZnQ6R0UsQ2lyY2xlQXJyb3dPdXREb3duTGVmdDpZRSxDaXJjbGVBcnJvd091dERvd25SaWdodDpaRSxDaXJjbGVBcnJvd091dFVwTGVmdDpYRSxDaXJjbGVBcnJvd091dFVwUmlnaHQ6UUUsQ2lyY2xlQXJyb3dSaWdodDpKRSxDaXJjbGVBcnJvd1VwOktFLENpcmNsZUNoZWNrOnQkLENpcmNsZUNoZWNrQmlnOmUkLENpcmNsZUNoZXZyb25Eb3duOnIkLENpcmNsZUNoZXZyb25MZWZ0OmkkLENpcmNsZUNoZXZyb25SaWdodDphJCxDaXJjbGVDaGV2cm9uVXA6biQsQ2lyY2xlRGFzaGVkOnFIdCxDaXJjbGVEaXZpZGU6byQsQ2lyY2xlRG9sbGFyU2lnbjpqSHQsQ2lyY2xlRG90OlVIdCxDaXJjbGVEb3REYXNoZWQ6Vkh0LENpcmNsZUVsbGlwc2lzOldIdCxDaXJjbGVFcXVhbDpHSHQsQ2lyY2xlRmFkaW5nQXJyb3dVcDpZSHQsQ2lyY2xlRmFkaW5nUGx1czpaSHQsQ2lyY2xlR2F1Z2U6cyQsQ2lyY2xlSGVscDpxcCxDaXJjbGVNaW51czpsJCxDaXJjbGVPZmY6WEh0LENpcmNsZVBhcmtpbmc6ZCQsQ2lyY2xlUGFya2luZ09mZjpjJCxDaXJjbGVQYXVzZTp1JCxDaXJjbGVQZXJjZW50OnAkLENpcmNsZVBpbGU6UUh0LENpcmNsZVBsYXk6aCQsQ2lyY2xlUGx1czpmJCxDaXJjbGVQb3VuZFN0ZXJsaW5nOkpIdCxDaXJjbGVQb3dlcjptJCxDaXJjbGVRdWVzdGlvbk1hcms6cXAsQ2lyY2xlU2xhc2g6S0h0LENpcmNsZVNsYXNoMjpnJCxDaXJjbGVTbGFzaGVkOmckLENpcmNsZVNtYWxsOmVxdCxDaXJjbGVTdGFyOnRxdCxDaXJjbGVTdG9wOmIkLENpcmNsZVVzZXI6eCQsQ2lyY2xlVXNlclJvdW5kOnYkLENpcmNsZVg6eSQsQ2lyY3VpdEJvYXJkOmlxdCxDaXRydXM6YXF0LENsYXBwZXJib2FyZDpucXQsQ2xpcGJvYXJkOmdxdCxDbGlwYm9hcmRDaGVjazpvcXQsQ2xpcGJvYXJkQ2xvY2s6c3F0LENsaXBib2FyZENvcHk6bHF0LENsaXBib2FyZEVkaXQ6TSQsQ2xpcGJvYXJkTGlzdDpjcXQsQ2xpcGJvYXJkTWludXM6ZHF0LENsaXBib2FyZFBhc3RlOnVxdCxDbGlwYm9hcmRQZW46TSQsQ2xpcGJvYXJkUGVuTGluZTp3JCxDbGlwYm9hcmRQbHVzOnBxdCxDbGlwYm9hcmRTaWduYXR1cmU6dyQsQ2xpcGJvYXJkVHlwZTpocXQsQ2xpcGJvYXJkWDpmcXQsQ2xvY2s6SXF0LENsb2NrMTptcXQsQ2xvY2sxMDpicXQsQ2xvY2sxMTp2cXQsQ2xvY2sxMjp4cXQsQ2xvY2syOnlxdCxDbG9jazM6d3F0LENsb2NrNDpNcXQsQ2xvY2s1OmtxdCxDbG9jazY6U3F0LENsb2NrNzp6cXQsQ2xvY2s4OkNxdCxDbG9jazk6VHF0LENsb2NrQWxlcnQ6THF0LENsb2NrQXJyb3dEb3duOl9xdCxDbG9ja0Fycm93VXA6QXF0LENsb2NrQ2hlY2s6RHF0LENsb2NrRmFkaW5nOkVxdCxDbG9ja1BsdXM6JHF0LENsb3NlZENhcHRpb246UHF0LENsb3VkOktxdCxDbG91ZEFsZXJ0Ok5xdCxDbG91ZEJhY2t1cDpGcXQsQ2xvdWRDaGVjazpPcXQsQ2xvdWRDb2c6UnF0LENsb3VkRG93bmxvYWQ6ayQsQ2xvdWREcml6emxlOkJxdCxDbG91ZEZvZzpIcXQsQ2xvdWRIYWlsOnFxdCxDbG91ZExpZ2h0bmluZzpWcXQsQ2xvdWRNb29uOlVxdCxDbG91ZE1vb25SYWluOmpxdCxDbG91ZE9mZjpXcXQsQ2xvdWRSYWluOllxdCxDbG91ZFJhaW5XaW5kOkdxdCxDbG91ZFNub3c6WnF0LENsb3VkU3VuOlFxdCxDbG91ZFN1blJhaW46WHF0LENsb3VkU3luYzpKcXQsQ2xvdWRVcGxvYWQ6UyQsQ2xvdWR5OmVqdCxDbG92ZXI6dGp0LENsdWI6cmp0LENvZGU6aWp0LENvZGUyOnokLENvZGVTcXVhcmU6d1AsQ29kZVhtbDp6JCxDb2RlcGVuOmFqdCxDb2Rlc2FuZGJveDpuanQsQ29mZmVlOm9qdCxDb2c6c2p0LENvaW5zOmxqdCxDb2x1bW5zOkMkLENvbHVtbnMyOkMkLENvbHVtbnMzOlQkLENvbHVtbnMzQ29nOmpwLENvbHVtbnM0OmNqdCxDb2x1bW5zU2V0dGluZ3M6anAsQ29tYmluZTpkanQsQ29tbWFuZDp1anQsQ29tcGFzczpwanQsQ29tcG9uZW50OmhqdCxDb21wdXRlcjpmanQsQ29uY2llcmdlQmVsbDptanQsQ29uZTpnanQsQ29uc3RydWN0aW9uOmJqdCxDb250YWN0OnZqdCxDb250YWN0MjpfJCxDb250YWN0Um91bmQ6XyQsQ29udGFpbmVyOnhqdCxDb250cmFzdDp3anQsQ29va2llOnlqdCxDb29raW5nUG90Ok1qdCxDb3B5Ol9qdCxDb3B5Q2hlY2s6a2p0LENvcHlNaW51czpTanQsQ29weVBsdXM6emp0LENvcHlTbGFzaDpDanQsQ29weVg6VGp0LENvcHlsZWZ0OkxqdCxDb3B5cmlnaHQ6QWp0LENvcm5lckRvd25MZWZ0OkRqdCxDb3JuZXJEb3duUmlnaHQ6RWp0LENvcm5lckxlZnREb3duOiRqdCxDb3JuZXJMZWZ0VXA6SWp0LENvcm5lclJpZ2h0RG93bjpQanQsQ29ybmVyUmlnaHRVcDpOanQsQ29ybmVyVXBMZWZ0OkZqdCxDb3JuZXJVcFJpZ2h0Ok9qdCxDcHU6Ump0LENyZWF0aXZlQ29tbW9uczpCanQsQ3JlZGl0Q2FyZDpIanQsQ3JvaXNzYW50OnFqdCxDcm9wOmpqdCxDcm9zczpWanQsQ3Jvc3NoYWlyOlVqdCxDcm93bjpXanQsQ3Vib2lkOkdqdCxDdXBTb2RhOllqdCxDdXJseUJyYWNlczpMRSxDdXJyZW5jeTpYanQsQ3lsaW5kZXI6Wmp0LERhbTpKanQsRGF0YWJhc2U6dFZ0LERhdGFiYXNlQmFja3VwOlFqdCxEYXRhYmFzZVNlYXJjaDpLanQsRGF0YWJhc2VaYXA6ZVZ0LERlY2ltYWxzQXJyb3dMZWZ0OnJWdCxEZWNpbWFsc0Fycm93UmlnaHQ6aVZ0LERlbGV0ZTphVnQsRGVzc2VydDpuVnQsRGlhbWV0ZXI6b1Z0LERpYW1vbmQ6Y1Z0LERpYW1vbmRNaW51czpzVnQsRGlhbW9uZFBlcmNlbnQ6TCQsRGlhbW9uZFBsdXM6bFZ0LERpY2UxOmRWdCxEaWNlMjp1VnQsRGljZTM6cFZ0LERpY2U0OmhWdCxEaWNlNTpmVnQsRGljZTY6bVZ0LERpY2VzOmdWdCxEaWZmOmJWdCxEaXNjOndWdCxEaXNjMjp2VnQsRGlzYzM6eFZ0LERpc2NBbGJ1bTp5VnQsRGl2aWRlOk1WdCxEaXZpZGVDaXJjbGU6byQsRGl2aWRlU3F1YXJlOnpQLERuYTpTVnQsRG5hT2ZmOmtWdCxEb2NrOlRWdCxEb2c6elZ0LERvbGxhclNpZ246Q1Z0LERvbnV0Ol9WdCxEb29yQ2xvc2VkOkFWdCxEb29yQ2xvc2VkTG9ja2VkOkxWdCxEb29yT3BlbjpEVnQsRG90OkVWdCxEb3RTcXVhcmU6Q1AsRG93bmxvYWQ6JFZ0LERvd25sb2FkQ2xvdWQ6ayQsRHJhZnRpbmdDb21wYXNzOklWdCxEcmFtYTpOVnQsRHJpYmJibGU6UFZ0LERyaWxsOkZWdCxEcm9uZTpPVnQsRHJvcGxldDpCVnQsRHJvcGxldE9mZjpSVnQsRHJvcGxldHM6SFZ0LERydW06cVZ0LERydW1zdGljazpqVnQsRHVtYmJlbGw6VlZ0LEVhcjpHVnQsRWFyT2ZmOlVWdCxFYXJ0aDpBJCxFYXJ0aExvY2s6V1Z0LEVjbGlwc2U6WVZ0LEVkaXQ6RTQsRWRpdDI6cUksRWRpdDM6SEksRWdnOlFWdCxFZ2dGcmllZDpaVnQsRWdnT2ZmOlhWdCxFbGxpcHNpczpFJCxFbGxpcHNpc1ZlcnRpY2FsOkQkLEVxdWFsOmVVdCxFcXVhbEFwcHJveGltYXRlbHk6SlZ0LEVxdWFsTm90OktWdCxFcXVhbFNxdWFyZTpUUCxFcmFzZXI6clV0LEV0aGVybmV0UG9ydDp0VXQsRXVybzppVXQsRXZDaGFyZ2VyOmFVdCxFeHBhbmQ6blV0LEV4dGVybmFsTGluazpvVXQsRXllOmxVdCxFeWVDbG9zZWQ6c1V0LEV5ZU9mZjpjVXQsRmFjZWJvb2s6ZFV0LEZhY3Rvcnk6dVV0LEZhbjpwVXQsRmFzdEZvcndhcmQ6aFV0LEZlYXRoZXI6ZlV0LEZlbmNlOm1VdCxGZXJyaXNXaGVlbDpnVXQsRmlnbWE6YlV0LEZpbGU6V1V0LEZpbGVBcmNoaXZlOnZVdCxGaWxlQXVkaW86VnAsRmlsZUF1ZGlvMjpWcCxGaWxlQXhpczNEOiQkLEZpbGVBeGlzM2Q6JCQsRmlsZUJhZGdlOkkkLEZpbGVCYWRnZTI6SSQsRmlsZUJhckNoYXJ0OkYkLEZpbGVCYXJDaGFydDI6TyQsRmlsZUJveDp4VXQsRmlsZUJyYWNlczpOJCxGaWxlQnJhY2VzQ29ybmVyOlAkLEZpbGVDaGFydENvbHVtbjpPJCxGaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nOkYkLEZpbGVDaGFydExpbmU6UiQsRmlsZUNoYXJ0UGllOkIkLEZpbGVDaGVjazp3VXQsRmlsZUNoZWNrMjpIJCxGaWxlQ2hlY2tDb3JuZXI6SCQsRmlsZUNsb2NrOnlVdCxGaWxlQ29kZTpNVXQsRmlsZUNvZGUyOnEkLEZpbGVDb2RlQ29ybmVyOnEkLEZpbGVDb2c6aiQsRmlsZUNvZzI6aiQsRmlsZURpZmY6a1V0LEZpbGVEaWdpdDpTVXQsRmlsZURvd246elV0LEZpbGVFZGl0OlokLEZpbGVFeGNsYW1hdGlvblBvaW50OlYkLEZpbGVIZWFkcGhvbmU6VnAsRmlsZUhlYXJ0OkNVdCxGaWxlSW1hZ2U6VFV0LEZpbGVJbnB1dDpfVXQsRmlsZUpzb246TiQsRmlsZUpzb24yOlAkLEZpbGVLZXk6VSQsRmlsZUtleTI6VSQsRmlsZUxpbmVDaGFydDpSJCxGaWxlTG9jazpXJCxGaWxlTG9jazI6VyQsRmlsZU1pbnVzOkxVdCxGaWxlTWludXMyOkckLEZpbGVNaW51c0Nvcm5lcjpHJCxGaWxlTXVzaWM6QVV0LEZpbGVPdXRwdXQ6RFV0LEZpbGVQZW46WiQsRmlsZVBlbkxpbmU6WSQsRmlsZVBpZUNoYXJ0OkIkLEZpbGVQbGF5OlgkLEZpbGVQbHVzOkVVdCxGaWxlUGx1czI6USQsRmlsZVBsdXNDb3JuZXI6USQsRmlsZVF1ZXN0aW9uOkokLEZpbGVRdWVzdGlvbk1hcms6SiQsRmlsZVNjYW46JFV0LEZpbGVTZWFyY2g6SVV0LEZpbGVTZWFyY2gyOkskLEZpbGVTZWFyY2hDb3JuZXI6SyQsRmlsZVNpZ25hbDplSSxGaWxlU2lnbmF0dXJlOlkkLEZpbGVTbGlkZXJzOlBVdCxGaWxlU3ByZWFkc2hlZXQ6TlV0LEZpbGVTdGFjazpGVXQsRmlsZVN5bWxpbms6T1V0LEZpbGVUZXJtaW5hbDpSVXQsRmlsZVRleHQ6QlV0LEZpbGVUeXBlOkhVdCxGaWxlVHlwZTI6dEksRmlsZVR5cGVDb3JuZXI6dEksRmlsZVVwOnFVdCxGaWxlVXNlcjpqVXQsRmlsZVZpZGVvOlgkLEZpbGVWaWRlbzI6ckksRmlsZVZpZGVvQ2FtZXJhOnJJLEZpbGVWb2x1bWU6VlV0LEZpbGVWb2x1bWUyOmVJLEZpbGVXYXJuaW5nOlYkLEZpbGVYOlVVdCxGaWxlWDI6aUksRmlsZVhDb3JuZXI6aUksRmlsZXM6R1V0LEZpbG06WVV0LEZpbHRlcjpsSSxGaWx0ZXJYOnNJLEZpbmdlcnByaW50OmFJLEZpbmdlcnByaW50UGF0dGVybjphSSxGaXJlRXh0aW5ndWlzaGVyOlpVdCxGaXNoOkpVdCxGaXNoT2ZmOlhVdCxGaXNoU3ltYm9sOlFVdCxGaXNoaW5nSG9vazpLVXQsRmxhZzppV3QsRmxhZ09mZjplV3QsRmxhZ1RyaWFuZ2xlTGVmdDp0V3QsRmxhZ1RyaWFuZ2xlUmlnaHQ6cld0LEZsYW1lOm5XdCxGbGFtZUtpbmRsaW5nOmFXdCxGbGFzaGxpZ2h0OnNXdCxGbGFzaGxpZ2h0T2ZmOm9XdCxGbGFza0NvbmljYWw6Y1d0LEZsYXNrQ29uaWNhbE9mZjpsV3QsRmxhc2tSb3VuZDpkV3QsRmxpcEhvcml6b250YWw6cFd0LEZsaXBIb3Jpem9udGFsMjp1V3QsRmxpcFZlcnRpY2FsOmZXdCxGbGlwVmVydGljYWwyOmhXdCxGbG93ZXI6Z1d0LEZsb3dlcjI6bVd0LEZvY3VzOmJXdCxGb2xkSG9yaXpvbnRhbDp2V3QsRm9sZFZlcnRpY2FsOnhXdCxGb2xkZXI6R1d0LEZvbGRlckFyY2hpdmU6d1d0LEZvbGRlckNoZWNrOnlXdCxGb2xkZXJDbG9jazpNV3QsRm9sZGVyQ2xvc2VkOmtXdCxGb2xkZXJDb2RlOlNXdCxGb2xkZXJDb2c6bkksRm9sZGVyQ29nMjpuSSxGb2xkZXJEb3Q6eld0LEZvbGRlckRvd246Q1d0LEZvbGRlckVkaXQ6b0ksRm9sZGVyR2l0Ol9XdCxGb2xkZXJHaXQyOlRXdCxGb2xkZXJIZWFydDpMV3QsRm9sZGVySW5wdXQ6QVd0LEZvbGRlckthbmJhbjpEV3QsRm9sZGVyS2V5OkVXdCxGb2xkZXJMb2NrOiRXdCxGb2xkZXJNaW51czpJV3QsRm9sZGVyT3BlbjpOV3QsRm9sZGVyT3BlbkRvdDpQV3QsRm9sZGVyT3V0cHV0OkZXdCxGb2xkZXJQZW46b0ksRm9sZGVyUGx1czpPV3QsRm9sZGVyUm9vdDpSV3QsRm9sZGVyU2VhcmNoOkhXdCxGb2xkZXJTZWFyY2gyOkJXdCxGb2xkZXJTeW1saW5rOnFXdCxGb2xkZXJTeW5jOmpXdCxGb2xkZXJUcmVlOlZXdCxGb2xkZXJVcDpVV3QsRm9sZGVyWDpXV3QsRm9sZGVyczpZV3QsRm9vdHByaW50czpYV3QsRm9ya0tuaWZlOnZOLEZvcmtLbmlmZUNyb3NzZWQ6Yk4sRm9ya2xpZnQ6Wld0LEZvcm06UVd0LEZvcm1JbnB1dDpWSSxGb3J3YXJkOkpXdCxGcmFtZTpLV3QsRnJhbWVyOmVHdCxGcm93bjp0R3QsRnVlbDpyR3QsRnVsbHNjcmVlbjppR3QsRnVuY3Rpb25TcXVhcmU6X1AsRnVubmVsOmxJLEZ1bm5lbFBsdXM6YUd0LEZ1bm5lbFg6c0ksR2FsbGVyeUhvcml6b250YWw6b0d0LEdhbGxlcnlIb3Jpem9udGFsRW5kOm5HdCxHYWxsZXJ5VGh1bWJuYWlsczpzR3QsR2FsbGVyeVZlcnRpY2FsOmNHdCxHYWxsZXJ5VmVydGljYWxFbmQ6bEd0LEdhbWVwYWQ6cEd0LEdhbWVwYWQyOmRHdCxHYW1lcGFkRGlyZWN0aW9uYWw6dUd0LEdhbnR0Q2hhcnQ6SEUsR2FudHRDaGFydFNxdWFyZTpZcCxHYXVnZTpoR3QsR2F1Z2VDaXJjbGU6cyQsR2F2ZWw6Zkd0LEdlbTptR3QsR2VvcmdpYW5MYXJpOmdHdCxHaG9zdDpiR3QsR2lmdDp5R3QsR2l0QnJhbmNoOndHdCxHaXRCcmFuY2hNaW51czp2R3QsR2l0QnJhbmNoUGx1czp4R3QsR2l0Q29tbWl0OmNJLEdpdENvbW1pdEhvcml6b250YWw6Y0ksR2l0Q29tbWl0VmVydGljYWw6TUd0LEdpdENvbXBhcmU6U0d0LEdpdENvbXBhcmVBcnJvd3M6a0d0LEdpdEZvcms6ekd0LEdpdEdyYXBoOkNHdCxHaXRNZXJnZTpUR3QsR2l0UHVsbFJlcXVlc3Q6JEd0LEdpdFB1bGxSZXF1ZXN0QXJyb3c6X0d0LEdpdFB1bGxSZXF1ZXN0Q2xvc2VkOkxHdCxHaXRQdWxsUmVxdWVzdENyZWF0ZTpER3QsR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdzpBR3QsR2l0UHVsbFJlcXVlc3REcmFmdDpFR3QsR2l0aHViOklHdCxHaXRsYWI6UEd0LEdsYXNzV2F0ZXI6Tkd0LEdsYXNzZXM6Rkd0LEdsb2JlOlJHdCxHbG9iZTI6QSQsR2xvYmVMb2NrOk9HdCxHbG9iZVg6Qkd0LEdvYWw6SEd0LEdwdTpxR3QsR3JhYjpmSSxHcmFkdWF0aW9uQ2FwOmpHdCxHcmFwZTpWR3QsR3JpZDpVcCxHcmlkMlgyOmhJLEdyaWQyWDJDaGVjazpkSSxHcmlkMlgyUGx1czp1SSxHcmlkMlgyWDpwSSxHcmlkMngyOmhJLEdyaWQyeDJDaGVjazpkSSxHcmlkMngyUGx1czp1SSxHcmlkMngyWDpwSSxHcmlkM1gzOlVwLEdyaWQzeDI6VUd0LEdyaWQzeDM6VXAsR3JpcDpZR3QsR3JpcEhvcml6b250YWw6V0d0LEdyaXBWZXJ0aWNhbDpHR3QsR3JvdXA6Wkd0LEd1aXRhcjpYR3QsSGFtOlFHdCxIYW1idXJnZXI6Skd0LEhhbW1lcjpLR3QsSGFuZDpuWXQsSGFuZENvaW5zOmVZdCxIYW5kRmlzdDp0WXQsSGFuZEdyYWI6ZkksSGFuZEhlYXJ0OnJZdCxIYW5kSGVscGluZzptSSxIYW5kTWV0YWw6aVl0LEhhbmRQbGF0dGVyOmFZdCxIYW5kYmFnOm9ZdCxIYW5kc2hha2U6c1l0LEhhcmREcml2ZTpkWXQsSGFyZERyaXZlRG93bmxvYWQ6bFl0LEhhcmREcml2ZVVwbG9hZDpjWXQsSGFyZEhhdDp1WXQsSGFzaDpwWXQsSGF0R2xhc3NlczpoWXQsSGF6ZTpmWXQsSGQ6bVl0LEhkbWlQb3J0OmdZdCxIZWFkaW5nOmtZdCxIZWFkaW5nMTpiWXQsSGVhZGluZzI6dll0LEhlYWRpbmczOnhZdCxIZWFkaW5nNDp5WXQsSGVhZGluZzU6d1l0LEhlYWRpbmc2Ok1ZdCxIZWFkcGhvbmVPZmY6U1l0LEhlYWRwaG9uZXM6ell0LEhlYWRzZXQ6VFl0LEhlYXJ0OiRZdCxIZWFydENyYWNrOkNZdCxIZWFydEhhbmRzaGFrZTpfWXQsSGVhcnRNaW51czpMWXQsSGVhcnRPZmY6QVl0LEhlYXJ0UGx1czpFWXQsSGVhcnRQdWxzZTpEWXQsSGVhdGVyOklZdCxIZWxpY29wdGVyOlBZdCxIZWxwQ2lyY2xlOnFwLEhlbHBpbmdIYW5kOm1JLEhleGFnb246Tll0LEhpZ2hsaWdodGVyOkZZdCxIaXN0b3J5Ok9ZdCxIb21lOmdJLEhvcDpSWXQsSG9wT2ZmOkJZdCxIb3NwaXRhbDpIWXQsSG90ZWw6cVl0LEhvdXJnbGFzczpqWXQsSG91c2U6Z0ksSG91c2VIZWFydDpWWXQsSG91c2VQbHVnOlVZdCxIb3VzZVBsdXM6V1l0LEhvdXNlV2lmaTpHWXQsSWNlQ3JlYW06dkksSWNlQ3JlYW0yOmJJLEljZUNyZWFtQm93bDpiSSxJY2VDcmVhbUNvbmU6dkksSWRDYXJkOlpZdCxJZENhcmRMYW55YXJkOllZdCxJbWFnZTpyWnQsSW1hZ2VEb3duOlhZdCxJbWFnZU1pbnVzOlFZdCxJbWFnZU9mZjpKWXQsSW1hZ2VQbGF5OktZdCxJbWFnZVBsdXM6ZVp0LEltYWdlVXA6dFp0LEltYWdlVXBzY2FsZTppWnQsSW1hZ2VzOmFadCxJbXBvcnQ6blp0LEluYm94Om9adCxJbmRlbnQ6R3AsSW5kZW50RGVjcmVhc2U6V3AsSW5kZW50SW5jcmVhc2U6R3AsSW5kaWFuUnVwZWU6c1p0LEluZmluaXR5OmxadCxJbmZvOmNadCxJbnNwZWN0OklQLEluc3BlY3Rpb25QYW5lbDpkWnQsSW5zdGFncmFtOnVadCxJdGFsaWM6aFp0LEl0ZXJhdGlvbkNjdzpwWnQsSXRlcmF0aW9uQ3c6Zlp0LEphcGFuZXNlWWVuOm1adCxKb3lzdGljazpnWnQsS2FuYmFuOmJadCxLYW5iYW5TcXVhcmU6TFAsS2FuYmFuU3F1YXJlRGFzaGVkOk1QLEtheWFrOnZadCxLZXk6d1p0LEtleVJvdW5kOnhadCxLZXlTcXVhcmU6eVp0LEtleWJvYXJkOlNadCxLZXlib2FyZE11c2ljOk1adCxLZXlib2FyZE9mZjprWnQsTGFtcDpBWnQsTGFtcENlaWxpbmc6elp0LExhbXBEZXNrOkNadCxMYW1wRmxvb3I6VFp0LExhbXBXYWxsRG93bjpfWnQsTGFtcFdhbGxVcDpMWnQsTGFuZFBsb3Q6RVp0LExhbmRtYXJrOkRadCxMYW5ndWFnZXM6JFp0LExhcHRvcDpQWnQsTGFwdG9wMjp4SSxMYXB0b3BNaW5pbWFsOnhJLExhcHRvcE1pbmltYWxDaGVjazpJWnQsTGFzc286Rlp0LExhc3NvU2VsZWN0Ok5adCxMYXVnaDpPWnQsTGF5ZXJzOnlJLExheWVyczI6Ulp0LExheWVyczM6eUksTGF5ZXJzUGx1czpCWnQsTGF5b3V0OkJJLExheW91dERhc2hib2FyZDpIWnQsTGF5b3V0R3JpZDpxWnQsTGF5b3V0TGlzdDpqWnQsTGF5b3V0UGFuZWxMZWZ0OlZadCxMYXlvdXRQYW5lbFRvcDpVWnQsTGF5b3V0VGVtcGxhdGU6V1p0LExlYWY6R1p0LExlYWZ5R3JlZW46WVp0LExlY3Rlcm46Wlp0LExldHRlclRleHQ6ck4sTGlicmFyeTpRWnQsTGlicmFyeUJpZzpYWnQsTGlicmFyeVNxdWFyZTpBUCxMaWZlQnVveTpKWnQsTGlnYXR1cmU6S1p0LExpZ2h0YnVsYjp0WHQsTGlnaHRidWxiT2ZmOmVYdCxMaW5lQ2hhcnQ6T0UsTGluZVNxdWlnZ2xlOnJYdCxMaW5rOm5YdCxMaW5rMjphWHQsTGluazJPZmY6aVh0LExpbmtlZGluOm9YdCxMaXN0OnpYdCxMaXN0Q2hlY2s6c1h0LExpc3RDaGVja3M6bFh0LExpc3RDaGV2cm9uc0Rvd25VcDpjWHQsTGlzdENoZXZyb25zVXBEb3duOmRYdCxMaXN0Q29sbGFwc2U6dVh0LExpc3RFbmQ6cFh0LExpc3RGaWx0ZXI6Zlh0LExpc3RGaWx0ZXJQbHVzOmhYdCxMaXN0SW5kZW50RGVjcmVhc2U6V3AsTGlzdEluZGVudEluY3JlYXNlOkdwLExpc3RNaW51czptWHQsTGlzdE11c2ljOmdYdCxMaXN0T3JkZXJlZDpiWHQsTGlzdFBsdXM6dlh0LExpc3RSZXN0YXJ0OnhYdCxMaXN0U3RhcnQ6eVh0LExpc3RUb2RvOndYdCxMaXN0VHJlZTpNWHQsTGlzdFZpZGVvOmtYdCxMaXN0WDpTWHQsTG9hZGVyOkNYdCxMb2FkZXIyOndJLExvYWRlckNpcmNsZTp3SSxMb2FkZXJQaW53aGVlbDpUWHQsTG9jYXRlOkFYdCxMb2NhdGVGaXhlZDpfWHQsTG9jYXRlT2ZmOkxYdCxMb2NhdGlvbkVkaXQ6ekksTG9jazpFWHQsTG9ja0tleWhvbGU6RFh0LExvY2tLZXlob2xlT3BlbjpNSSxMb2NrT3BlbjprSSxMb2dJbjokWHQsTG9nT3V0OlBYdCxMb2dzOklYdCxMb2xsaXBvcDpOWHQsTHVnZ2FnZTpGWHQsTVNxdWFyZTpEUCxNYWduZXQ6T1h0LE1haWw6VVh0LE1haWxDaGVjazpSWHQsTWFpbE1pbnVzOkJYdCxNYWlsT3BlbjpIWHQsTWFpbFBsdXM6cVh0LE1haWxRdWVzdGlvbjpTSSxNYWlsUXVlc3Rpb25NYXJrOlNJLE1haWxTZWFyY2g6alh0LE1haWxXYXJuaW5nOlZYdCxNYWlsWDpXWHQsTWFpbGJveDpHWHQsTWFpbHM6WVh0LE1hcDpjUXQsTWFwTWludXM6Wlh0LE1hcFBpbjpvUXQsTWFwUGluQ2hlY2s6UVh0LE1hcFBpbkNoZWNrSW5zaWRlOlhYdCxNYXBQaW5Ib3VzZTpKWHQsTWFwUGluTWludXM6ZVF0LE1hcFBpbk1pbnVzSW5zaWRlOktYdCxNYXBQaW5PZmY6dFF0LE1hcFBpblBlbjp6SSxNYXBQaW5QbHVzOmlRdCxNYXBQaW5QbHVzSW5zaWRlOnJRdCxNYXBQaW5YOm5RdCxNYXBQaW5YSW5zaWRlOmFRdCxNYXBQaW5uZWQ6c1F0LE1hcFBsdXM6bFF0LE1hcnM6dVF0LE1hcnNTdHJva2U6ZFF0LE1hcnRpbmk6cFF0LE1heGltaXplOmZRdCxNYXhpbWl6ZTI6aFF0LE1lZGFsOm1RdCxNZWdhcGhvbmU6YlF0LE1lZ2FwaG9uZU9mZjpnUXQsTWVoOnZRdCxNZW1vcnlTdGljazp5UXQsTWVudTp4UXQsTWVudVNxdWFyZTpFUCxNZXJnZTp3UXQsTWVzc2FnZUNpcmNsZTpEUXQsTWVzc2FnZUNpcmNsZUNvZGU6TVF0LE1lc3NhZ2VDaXJjbGVEYXNoZWQ6a1F0LE1lc3NhZ2VDaXJjbGVIZWFydDpTUXQsTWVzc2FnZUNpcmNsZU1vcmU6elF0LE1lc3NhZ2VDaXJjbGVPZmY6Q1F0LE1lc3NhZ2VDaXJjbGVQbHVzOlRRdCxNZXNzYWdlQ2lyY2xlUXVlc3Rpb246Q0ksTWVzc2FnZUNpcmNsZVF1ZXN0aW9uTWFyazpDSSxNZXNzYWdlQ2lyY2xlUmVwbHk6TFF0LE1lc3NhZ2VDaXJjbGVXYXJuaW5nOl9RdCxNZXNzYWdlQ2lyY2xlWDpBUXQsTWVzc2FnZVNxdWFyZTpHUXQsTWVzc2FnZVNxdWFyZUNvZGU6RVF0LE1lc3NhZ2VTcXVhcmVEYXNoZWQ6JFF0LE1lc3NhZ2VTcXVhcmVEaWZmOklRdCxNZXNzYWdlU3F1YXJlRG90OlBRdCxNZXNzYWdlU3F1YXJlSGVhcnQ6TlF0LE1lc3NhZ2VTcXVhcmVMb2NrOkZRdCxNZXNzYWdlU3F1YXJlTW9yZTpPUXQsTWVzc2FnZVNxdWFyZU9mZjpSUXQsTWVzc2FnZVNxdWFyZVBsdXM6QlF0LE1lc3NhZ2VTcXVhcmVRdW90ZTpIUXQsTWVzc2FnZVNxdWFyZVJlcGx5OnFRdCxNZXNzYWdlU3F1YXJlU2hhcmU6alF0LE1lc3NhZ2VTcXVhcmVUZXh0OlZRdCxNZXNzYWdlU3F1YXJlV2FybmluZzpVUXQsTWVzc2FnZVNxdWFyZVg6V1F0LE1lc3NhZ2VzU3F1YXJlOllRdCxNaWM6WFF0LE1pYzI6VEksTWljT2ZmOlpRdCxNaWNWb2NhbDpUSSxNaWNyb2NoaXA6UVF0LE1pY3Jvc2NvcGU6SlF0LE1pY3Jvd2F2ZTpLUXQsTWlsZXN0b25lOmVKdCxNaWxrOmlKdCxNaWxrT2ZmOnRKdCxNaW5pbWl6ZTphSnQsTWluaW1pemUyOnJKdCxNaW51czpuSnQsTWludXNDaXJjbGU6bCQsTWludXNTcXVhcmU6JFAsTW9uaXRvcjp4SnQsTW9uaXRvckNoZWNrOm9KdCxNb25pdG9yQ2xvdWQ6c0p0LE1vbml0b3JDb2c6bEp0LE1vbml0b3JEb3Q6Y0p0LE1vbml0b3JEb3duOmRKdCxNb25pdG9yT2ZmOnVKdCxNb25pdG9yUGF1c2U6cEp0LE1vbml0b3JQbGF5OmhKdCxNb25pdG9yU21hcnRwaG9uZTpmSnQsTW9uaXRvclNwZWFrZXI6bUp0LE1vbml0b3JTdG9wOmdKdCxNb25pdG9yVXA6Ykp0LE1vbml0b3JYOnZKdCxNb29uOndKdCxNb29uU3Rhcjp5SnQsTW9yZUhvcml6b250YWw6RSQsTW9yZVZlcnRpY2FsOkQkLE1vdG9yYmlrZTpNSnQsTW91bnRhaW46U0p0LE1vdW50YWluU25vdzprSnQsTW91c2U6REp0LE1vdXNlT2ZmOnpKdCxNb3VzZVBvaW50ZXI6QUp0LE1vdXNlUG9pbnRlcjI6VEp0LE1vdXNlUG9pbnRlcjJPZmY6Q0p0LE1vdXNlUG9pbnRlckJhbjpfSnQsTW91c2VQb2ludGVyQ2xpY2s6TEp0LE1vdXNlUG9pbnRlclNxdWFyZURhc2hlZDprUCxNb3ZlOlZKdCxNb3ZlM0Q6X0ksTW92ZTNkOl9JLE1vdmVEaWFnb25hbDokSnQsTW92ZURpYWdvbmFsMjpFSnQsTW92ZURvd246Tkp0LE1vdmVEb3duTGVmdDpJSnQsTW92ZURvd25SaWdodDpQSnQsTW92ZUhvcml6b250YWw6Rkp0LE1vdmVMZWZ0Ok9KdCxNb3ZlUmlnaHQ6Ukp0LE1vdmVVcDpxSnQsTW92ZVVwTGVmdDpCSnQsTW92ZVVwUmlnaHQ6SEp0LE1vdmVWZXJ0aWNhbDpqSnQsTXVzaWM6WUp0LE11c2ljMjpVSnQsTXVzaWMzOldKdCxNdXNpYzQ6R0p0LE5hdmlnYXRpb246UUp0LE5hdmlnYXRpb24yOlhKdCxOYXZpZ2F0aW9uMk9mZjpaSnQsTmF2aWdhdGlvbk9mZjpKSnQsTmV0d29yazpLSnQsTmV3c3BhcGVyOmVLdCxOZmM6dEt0LE5vbkJpbmFyeTpyS3QsTm90ZWJvb2s6b0t0LE5vdGVib29rUGVuOmlLdCxOb3RlYm9va1RhYnM6YUt0LE5vdGVib29rVGV4dDpuS3QsTm90ZXBhZFRleHQ6bEt0LE5vdGVwYWRUZXh0RGFzaGVkOnNLdCxOdXQ6Y0t0LE51dE9mZjpkS3QsT2N0YWdvbjpwS3QsT2N0YWdvbkFsZXJ0OkxJLE9jdGFnb25NaW51czp1S3QsT2N0YWdvblBhdXNlOkFJLE9jdGFnb25YOkRJLE9tZWdhOmhLdCxPcHRpb246bUt0LE9yYml0OmZLdCxPcmlnYW1pOmdLdCxPdXRkZW50OldwLFBhY2thZ2U6U0t0LFBhY2thZ2UyOmJLdCxQYWNrYWdlQ2hlY2s6dkt0LFBhY2thZ2VNaW51czp4S3QsUGFja2FnZU9wZW46eUt0LFBhY2thZ2VQbHVzOndLdCxQYWNrYWdlU2VhcmNoOk1LdCxQYWNrYWdlWDprS3QsUGFpbnRCdWNrZXQ6Q0t0LFBhaW50Um9sbGVyOnpLdCxQYWludGJydXNoOlRLdCxQYWludGJydXNoMjpFSSxQYWludGJydXNoVmVydGljYWw6RUksUGFsZXR0ZTpfS3QsUGFsbXRyZWU6b04sUGFuZGE6TEt0LFBhbmVsQm90dG9tOkVLdCxQYW5lbEJvdHRvbUNsb3NlOkFLdCxQYW5lbEJvdHRvbURhc2hlZDokSSxQYW5lbEJvdHRvbUluYWN0aXZlOiRJLFBhbmVsQm90dG9tT3BlbjpES3QsUGFuZWxMZWZ0OkZJLFBhbmVsTGVmdENsb3NlOklJLFBhbmVsTGVmdERhc2hlZDpQSSxQYW5lbExlZnRJbmFjdGl2ZTpQSSxQYW5lbExlZnRPcGVuOk5JLFBhbmVsTGVmdFJpZ2h0RGFzaGVkOiRLdCxQYW5lbFJpZ2h0Ok5LdCxQYW5lbFJpZ2h0Q2xvc2U6SUt0LFBhbmVsUmlnaHREYXNoZWQ6T0ksUGFuZWxSaWdodEluYWN0aXZlOk9JLFBhbmVsUmlnaHRPcGVuOlBLdCxQYW5lbFRvcDpCS3QsUGFuZWxUb3BCb3R0b21EYXNoZWQ6Rkt0LFBhbmVsVG9wQ2xvc2U6T0t0LFBhbmVsVG9wRGFzaGVkOlJJLFBhbmVsVG9wSW5hY3RpdmU6UkksUGFuZWxUb3BPcGVuOlJLdCxQYW5lbHNMZWZ0Qm90dG9tOkhLdCxQYW5lbHNMZWZ0UmlnaHQ6VCQsUGFuZWxzUmlnaHRCb3R0b206cUt0LFBhbmVsc1RvcEJvdHRvbTpHSSxQYW5lbHNUb3BMZWZ0OkJJLFBhcGVyY2xpcDpqS3QsUGFyZW50aGVzZXM6Vkt0LFBhcmtpbmdDaXJjbGU6ZCQsUGFya2luZ0NpcmNsZU9mZjpjJCxQYXJraW5nTWV0ZXI6VUt0LFBhcmtpbmdTcXVhcmU6TlAsUGFya2luZ1NxdWFyZU9mZjpQUCxQYXJ0eVBvcHBlcjpXS3QsUGF1c2U6R0t0LFBhdXNlQ2lyY2xlOnUkLFBhdXNlT2N0YWdvbjpBSSxQYXdQcmludDpZS3QsUGNDYXNlOlpLdCxQZW46cUksUGVuQm94OkU0LFBlbkxpbmU6SEksUGVuT2ZmOlhLdCxQZW5TcXVhcmU6RTQsUGVuVG9vbDpRS3QsUGVuY2lsOnJlcixQZW5jaWxMaW5lOkpLdCxQZW5jaWxPZmY6S0t0LFBlbmNpbFJ1bGVyOmVlcixQZW50YWdvbjp0ZXIsUGVyY2VudDppZXIsUGVyY2VudENpcmNsZTpwJCxQZXJjZW50RGlhbW9uZDpMJCxQZXJjZW50U3F1YXJlOk9QLFBlcnNvblN0YW5kaW5nOmFlcixQaGlsaXBwaW5lUGVzbzpuZXIsUGhvbmU6cGVyLFBob25lQ2FsbDpvZXIsUGhvbmVGb3J3YXJkZWQ6c2VyLFBob25lSW5jb21pbmc6bGVyLFBob25lTWlzc2VkOmNlcixQaG9uZU9mZjpkZXIsUGhvbmVPdXRnb2luZzp1ZXIsUGk6aGVyLFBpU3F1YXJlOkZQLFBpYW5vOmZlcixQaWNrYXhlOm1lcixQaWN0dXJlSW5QaWN0dXJlOnZlcixQaWN0dXJlSW5QaWN0dXJlMjpnZXIsUGllQ2hhcnQ6cUUsUGlnZ3lCYW5rOmJlcixQaWxjcm93OndlcixQaWxjcm93TGVmdDp4ZXIsUGlsY3Jvd1JpZ2h0OnllcixQaWxjcm93U3F1YXJlOlJQLFBpbGw6a2VyLFBpbGxCb3R0bGU6TWVyLFBpbjp6ZXIsUGluT2ZmOlNlcixQaXBldHRlOkNlcixQaXp6YTpUZXIsUGxhbmU6QWVyLFBsYW5lTGFuZGluZzpfZXIsUGxhbmVUYWtlb2ZmOkxlcixQbGF5OkRlcixQbGF5Q2lyY2xlOmgkLFBsYXlTcXVhcmU6QlAsUGx1ZzokZXIsUGx1ZzI6RWVyLFBsdWdaYXA6akksUGx1Z1phcDI6akksUGx1czpJZXIsUGx1c0NpcmNsZTpmJCxQbHVzU3F1YXJlOkhQLFBvY2tldDpGZXIsUG9ja2V0S25pZmU6UGVyLFBvZGNhc3Q6TmVyLFBvaW50ZXI6UmVyLFBvaW50ZXJPZmY6T2VyLFBvcGNvcm46QmVyLFBvcHNpY2xlOkhlcixQb3VuZFN0ZXJsaW5nOnFlcixQb3dlcjpWZXIsUG93ZXJDaXJjbGU6bSQsUG93ZXJPZmY6amVyLFBvd2VyU3F1YXJlOnFQLFByZXNlbnRhdGlvbjpXZXIsUHJpbnRlcjpZZXIsUHJpbnRlckNoZWNrOlVlcixQcmludGVyWDpHZXIsUHJvamVjdG9yOlplcixQcm9wb3J0aW9uczpYZXIsUHV6emxlOlFlcixQeXJhbWlkOkplcixRckNvZGU6S2VyLFF1b3RlOmV0cixSYWJiaXQ6dHRyLFJhZGFyOnJ0cixSYWRpYXRpb246aXRyLFJhZGljYWw6YXRyLFJhZGlvOnN0cixSYWRpb1JlY2VpdmVyOm50cixSYWRpb1Rvd2VyOm90cixSYWRpdXM6bHRyLFJhaWxTeW1ib2w6Y3RyLFJhaW5ib3c6ZHRyLFJhdDp1dHIsUmF0aW86cHRyLFJlY2VpcHQ6TXRyLFJlY2VpcHRDZW50Omh0cixSZWNlaXB0RXVybzpmdHIsUmVjZWlwdEluZGlhblJ1cGVlOm10cixSZWNlaXB0SmFwYW5lc2VZZW46Z3RyLFJlY2VpcHRQb3VuZFN0ZXJsaW5nOmJ0cixSZWNlaXB0UnVzc2lhblJ1YmxlOnZ0cixSZWNlaXB0U3dpc3NGcmFuYzp4dHIsUmVjZWlwdFRleHQ6eXRyLFJlY2VpcHRUdXJraXNoTGlyYTp3dHIsUmVjdGFuZ2xlQ2lyY2xlOmt0cixSZWN0YW5nbGVFbGxpcHNpczpWSSxSZWN0YW5nbGVHb2dnbGVzOnp0cixSZWN0YW5nbGVIb3Jpem9udGFsOlN0cixSZWN0YW5nbGVWZXJ0aWNhbDpDdHIsUmVjeWNsZTpUdHIsUmVkbzpBdHIsUmVkbzI6THRyLFJlZG9Eb3Q6X3RyLFJlZnJlc2hDY3c6RXRyLFJlZnJlc2hDY3dEb3Q6RHRyLFJlZnJlc2hDdzpJdHIsUmVmcmVzaEN3T2ZmOiR0cixSZWZyaWdlcmF0b3I6UHRyLFJlZ2V4Ok50cixSZW1vdmVGb3JtYXR0aW5nOkZ0cixSZXBlYXQ6QnRyLFJlcGVhdDE6UnRyLFJlcGVhdDI6T3RyLFJlcGxhY2U6cXRyLFJlcGxhY2VBbGw6SHRyLFJlcGx5OlZ0cixSZXBseUFsbDpqdHIsUmV3aW5kOlV0cixSaWJib246V3RyLFJvY2tldDpHdHIsUm9ja2luZ0NoYWlyOll0cixSb2xsZXJDb2FzdGVyOlp0cixSb3NlOlh0cixSb3RhdGUzRDpVSSxSb3RhdGUzZDpVSSxSb3RhdGVDY3c6S3RyLFJvdGF0ZUNjd0tleTpRdHIsUm90YXRlQ2N3U3F1YXJlOkp0cixSb3RhdGVDdzp0cnIsUm90YXRlQ3dTcXVhcmU6ZXJyLFJvdXRlOmlycixSb3V0ZU9mZjpycnIsUm91dGVyOmFycixSb3dzOldJLFJvd3MyOldJLFJvd3MzOkdJLFJvd3M0Om5ycixSc3M6b3JyLFJ1bGVyOmNycixSdWxlckRpbWVuc2lvbkxpbmU6c3JyLFJ1c3NpYW5SdWJsZTpscnIsU2FpbGJvYXQ6dXJyLFNhbGFkOmRycixTYW5kd2ljaDpwcnIsU2F0ZWxsaXRlOmZycixTYXRlbGxpdGVEaXNoOmhycixTYXVkaVJpeWFsOm1ycixTYXZlOnZycixTYXZlQWxsOmdycixTYXZlT2ZmOmJycixTY2FsZTp4cnIsU2NhbGUzRDpZSSxTY2FsZTNkOllJLFNjYWxpbmc6eXJyLFNjYW46THJyLFNjYW5CYXJjb2RlOk1ycixTY2FuRXllOndycixTY2FuRmFjZTprcnIsU2NhbkhlYXJ0OlNycixTY2FuTGluZTp6cnIsU2NhblFyQ29kZTpDcnIsU2NhblNlYXJjaDpUcnIsU2NhblRleHQ6X3JyLFNjYXR0ZXJDaGFydDpqRSxTY2hvb2w6QXJyLFNjaG9vbDI6Y04sU2Npc3NvcnM6RXJyLFNjaXNzb3JzTGluZURhc2hlZDpEcnIsU2Npc3NvcnNTcXVhcmU6alAsU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b206ZlAsU2Nvb3RlcjokcnIsU2NyZWVuU2hhcmU6UHJyLFNjcmVlblNoYXJlT2ZmOklycixTY3JvbGw6TnJyLFNjcm9sbFRleHQ6RnJyLFNlYXJjaDpqcnIsU2VhcmNoQWxlcnQ6T3JyLFNlYXJjaENoZWNrOlJycixTZWFyY2hDb2RlOkJycixTZWFyY2hTbGFzaDpIcnIsU2VhcmNoWDpxcnIsU2VjdGlvbjpWcnIsU2VuZDpXcnIsU2VuZEhvcml6b25hbDpaSSxTZW5kSG9yaXpvbnRhbDpaSSxTZW5kVG9CYWNrOlVycixTZXBhcmF0b3JIb3Jpem9udGFsOllycixTZXBhcmF0b3JWZXJ0aWNhbDpHcnIsU2VydmVyOkpycixTZXJ2ZXJDb2c6WnJyLFNlcnZlckNyYXNoOlhycixTZXJ2ZXJPZmY6UXJyLFNldHRpbmdzOmUxcixTZXR0aW5nczI6S3JyLFNoYXBlczp0MXIsU2hhcmU6aTFyLFNoYXJlMjpyMXIsU2hlZXQ6YTFyLFNoZWxsOm4xcixTaGllbGQ6bTFyLFNoaWVsZEFsZXJ0Om8xcixTaGllbGRCYW46czFyLFNoaWVsZENoZWNrOmwxcixTaGllbGRDbG9zZTpRSSxTaGllbGRFbGxpcHNpczpjMXIsU2hpZWxkSGFsZjpkMXIsU2hpZWxkTWludXM6dTFyLFNoaWVsZE9mZjpwMXIsU2hpZWxkUGx1czpoMXIsU2hpZWxkUXVlc3Rpb246WEksU2hpZWxkUXVlc3Rpb25NYXJrOlhJLFNoaWVsZFVzZXI6ZjFyLFNoaWVsZFg6UUksU2hpcDpiMXIsU2hpcFdoZWVsOmcxcixTaGlydDp2MXIsU2hvcHBpbmdCYWc6eDFyLFNob3BwaW5nQmFza2V0OnkxcixTaG9wcGluZ0NhcnQ6dzFyLFNob3ZlbDpNMXIsU2hvd2VySGVhZDprMXIsU2hyZWRkZXI6UzFyLFNocmltcDp6MXIsU2hyaW5rOkMxcixTaHJ1YjpfMXIsU2h1ZmZsZTpUMXIsU2lkZWJhcjpGSSxTaWRlYmFyQ2xvc2U6SUksU2lkZWJhck9wZW46TkksU2lnbWE6TDFyLFNpZ21hU3F1YXJlOlZQLFNpZ25hbDpJMXIsU2lnbmFsSGlnaDpBMXIsU2lnbmFsTG93OkQxcixTaWduYWxNZWRpdW06RTFyLFNpZ25hbFplcm86JDFyLFNpZ25hdHVyZTpQMXIsU2lnbnBvc3Q6RjFyLFNpZ25wb3N0QmlnOk4xcixTaXJlbjpPMXIsU2tpcEJhY2s6UjFyLFNraXBGb3J3YXJkOkIxcixTa3VsbDpIMXIsU2xhY2s6cTFyLFNsYXNoOmoxcixTbGFzaFNxdWFyZTpVUCxTbGljZTpWMXIsU2xpZGVyczpKSSxTbGlkZXJzSG9yaXpvbnRhbDpVMXIsU2xpZGVyc1ZlcnRpY2FsOkpJLFNtYXJ0cGhvbmU6WTFyLFNtYXJ0cGhvbmVDaGFyZ2luZzpXMXIsU21hcnRwaG9uZU5mYzpHMXIsU21pbGU6WDFyLFNtaWxlUGx1czpaMXIsU25haWw6UTFyLFNub3dmbGFrZTpLMXIsU29hcERpc3BlbnNlckRyb3BsZXQ6SjFyLFNvZmE6ZWlyLFNvbGFyUGFuZWw6dGlyLFNvcnRBc2M6d0UsU29ydERlc2M6dkUsU291cDpyaXIsU3BhY2U6aWlyLFNwYWRlOmFpcixTcGFya2xlOm5pcixTcGFya2xlczpLSSxTcGVha2VyOm9pcixTcGVlY2g6c2lyLFNwZWxsQ2hlY2s6Y2lyLFNwZWxsQ2hlY2syOmxpcixTcGxpbmU6dWlyLFNwbGluZVBvaW50ZXI6ZGlyLFNwbGl0OnBpcixTcGxpdFNxdWFyZUhvcml6b250YWw6V1AsU3BsaXRTcXVhcmVWZXJ0aWNhbDpHUCxTcG9vbDpoaXIsU3BvdGxpZ2h0OmZpcixTcHJheUNhbjptaXIsU3Byb3V0OmdpcixTcXVhcmU6VGlyLFNxdWFyZUFjdGl2aXR5OnRQLFNxdWFyZUFycm93RG93bjppUCxTcXVhcmVBcnJvd0Rvd25MZWZ0OmVQLFNxdWFyZUFycm93RG93blJpZ2h0OnJQLFNxdWFyZUFycm93TGVmdDphUCxTcXVhcmVBcnJvd091dERvd25MZWZ0Om5QLFNxdWFyZUFycm93T3V0RG93blJpZ2h0OnNQLFNxdWFyZUFycm93T3V0VXBMZWZ0Om9QLFNxdWFyZUFycm93T3V0VXBSaWdodDpsUCxTcXVhcmVBcnJvd1JpZ2h0OmNQLFNxdWFyZUFycm93VXA6cFAsU3F1YXJlQXJyb3dVcExlZnQ6ZFAsU3F1YXJlQXJyb3dVcFJpZ2h0OnVQLFNxdWFyZUFzdGVyaXNrOmhQLFNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzOmZQLFNxdWFyZUNoYXJ0R2FudHQ6WXAsU3F1YXJlQ2hlY2s6Z1AsU3F1YXJlQ2hlY2tCaWc6bVAsU3F1YXJlQ2hldnJvbkRvd246YlAsU3F1YXJlQ2hldnJvbkxlZnQ6dlAsU3F1YXJlQ2hldnJvblJpZ2h0OnhQLFNxdWFyZUNoZXZyb25VcDp5UCxTcXVhcmVDb2RlOndQLFNxdWFyZURhc2hlZDpTUCxTcXVhcmVEYXNoZWRCb3R0b206dmlyLFNxdWFyZURhc2hlZEJvdHRvbUNvZGU6YmlyLFNxdWFyZURhc2hlZEthbmJhbjpNUCxTcXVhcmVEYXNoZWRNb3VzZVBvaW50ZXI6a1AsU3F1YXJlRGFzaGVkVG9wU29saWQ6eGlyLFNxdWFyZURpdmlkZTp6UCxTcXVhcmVEb3Q6Q1AsU3F1YXJlRXF1YWw6VFAsU3F1YXJlRnVuY3Rpb246X1AsU3F1YXJlR2FudHRDaGFydDpZcCxTcXVhcmVLYW5iYW46TFAsU3F1YXJlTGlicmFyeTpBUCxTcXVhcmVNOkRQLFNxdWFyZU1lbnU6RVAsU3F1YXJlTWludXM6JFAsU3F1YXJlTW91c2VQb2ludGVyOklQLFNxdWFyZVBhcmtpbmc6TlAsU3F1YXJlUGFya2luZ09mZjpQUCxTcXVhcmVQYXVzZTp5aXIsU3F1YXJlUGVuOkU0LFNxdWFyZVBlcmNlbnQ6T1AsU3F1YXJlUGk6RlAsU3F1YXJlUGlsY3JvdzpSUCxTcXVhcmVQbGF5OkJQLFNxdWFyZVBsdXM6SFAsU3F1YXJlUG93ZXI6cVAsU3F1YXJlUmFkaWNhbDpNaXIsU3F1YXJlUm91bmRDb3JuZXI6d2lyLFNxdWFyZVNjaXNzb3JzOmpQLFNxdWFyZVNpZ21hOlZQLFNxdWFyZVNsYXNoOlVQLFNxdWFyZVNwbGl0SG9yaXpvbnRhbDpXUCxTcXVhcmVTcGxpdFZlcnRpY2FsOkdQLFNxdWFyZVNxdWFyZTpTaXIsU3F1YXJlU3RhY2s6a2lyLFNxdWFyZVN0YXI6emlyLFNxdWFyZVN0b3A6Q2lyLFNxdWFyZVRlcm1pbmFsOllQLFNxdWFyZVVzZXI6WFAsU3F1YXJlVXNlclJvdW5kOlpQLFNxdWFyZVg6UVAsU3F1YXJlc0V4Y2x1ZGU6X2lyLFNxdWFyZXNJbnRlcnNlY3Q6TGlyLFNxdWFyZXNTdWJ0cmFjdDpBaXIsU3F1YXJlc1VuaXRlOkRpcixTcXVpcmNsZTokaXIsU3F1aXJjbGVEYXNoZWQ6RWlyLFNxdWlycmVsOklpcixTdGFtcDpQaXIsU3RhcjpPaXIsU3RhckhhbGY6TmlyLFN0YXJPZmY6RmlyLFN0YXJzOktJLFN0ZXBCYWNrOlJpcixTdGVwRm9yd2FyZDpCaXIsU3RldGhvc2NvcGU6SGlyLFN0aWNrZXI6cWlyLFN0aWNreU5vdGU6amlyLFN0b25lOlZpcixTdG9wQ2lyY2xlOmIkLFN0b3JlOlVpcixTdHJldGNoSG9yaXpvbnRhbDpXaXIsU3RyZXRjaFZlcnRpY2FsOkdpcixTdHJpa2V0aHJvdWdoOllpcixTdWJzY3JpcHQ6WmlyLFN1YnRpdGxlczpBRSxTdW46ZWFyLFN1bkRpbTpYaXIsU3VuTWVkaXVtOlFpcixTdW5Nb29uOkppcixTdW5Tbm93OktpcixTdW5yaXNlOnRhcixTdW5zZXQ6cmFyLFN1cGVyc2NyaXB0OmlhcixTd2F0Y2hCb29rOmFhcixTd2lzc0ZyYW5jOm5hcixTd2l0Y2hDYW1lcmE6b2FyLFN3b3JkOnNhcixTd29yZHM6bGFyLFN5cmluZ2U6Y2FyLFRhYmxlOmJhcixUYWJsZTI6ZGFyLFRhYmxlQ2VsbHNNZXJnZTp1YXIsVGFibGVDZWxsc1NwbGl0OnBhcixUYWJsZUNvbHVtbnNTcGxpdDpoYXIsVGFibGVDb25maWc6anAsVGFibGVPZkNvbnRlbnRzOmZhcixUYWJsZVByb3BlcnRpZXM6bWFyLFRhYmxlUm93c1NwbGl0OmdhcixUYWJsZXQ6eGFyLFRhYmxldFNtYXJ0cGhvbmU6eWFyLFRhYmxldHM6d2FyLFRhZzpNYXIsVGFnczprYXIsVGFsbHkxOlNhcixUYWxseTI6emFyLFRhbGx5MzpDYXIsVGFsbHk0OlRhcixUYWxseTU6X2FyLFRhbmdlbnQ6TGFyLFRhcmdldDpBYXIsVGVsZXNjb3BlOkRhcixUZW50OiRhcixUZW50VHJlZTpFYXIsVGVybWluYWw6SWFyLFRlcm1pbmFsU3F1YXJlOllQLFRlc3RUdWJlOlBhcixUZXN0VHViZTI6SlAsVGVzdFR1YmVEaWFnb25hbDpKUCxUZXN0VHViZXM6TmFyLFRleHQ6WnAsVGV4dEFsaWduQ2VudGVyOktQLFRleHRBbGlnbkVuZDplTixUZXh0QWxpZ25KdXN0aWZ5OnROLFRleHRBbGlnblN0YXJ0OlpwLFRleHRDdXJzb3I6T2FyLFRleHRDdXJzb3JJbnB1dDpGYXIsVGV4dEluaXRpYWw6ck4sVGV4dFF1b3RlOlJhcixUZXh0U2VhcmNoOkJhcixUZXh0U2VsZWN0OmlOLFRleHRTZWxlY3Rpb246aU4sVGV4dFdyYXA6YU4sVGhlYXRlcjpIYXIsVGhlcm1vbWV0ZXI6VmFyLFRoZXJtb21ldGVyU25vd2ZsYWtlOnFhcixUaGVybW9tZXRlclN1bjpqYXIsVGh1bWJzRG93bjpVYXIsVGh1bWJzVXA6V2FyLFRpY2tldDpLYXIsVGlja2V0Q2hlY2s6R2FyLFRpY2tldE1pbnVzOllhcixUaWNrZXRQZXJjZW50OlphcixUaWNrZXRQbHVzOlhhcixUaWNrZXRTbGFzaDpRYXIsVGlja2V0WDpKYXIsVGlja2V0czpybnIsVGlja2V0c1BsYW5lOmVucixUaW1lcjphbnIsVGltZXJPZmY6dG5yLFRpbWVyUmVzZXQ6aW5yLFRvZ2dsZUxlZnQ6bm5yLFRvZ2dsZVJpZ2h0Om9ucixUb2lsZXQ6c25yLFRvb2xDYXNlOmxucixUb29sYm94OmNucixUb3JuYWRvOmRucixUb3J1czp1bnIsVG91Y2hwYWQ6aG5yLFRvdWNocGFkT2ZmOnBucixUb3dlckNvbnRyb2w6Zm5yLFRveUJyaWNrOm1ucixUcmFjdG9yOmducixUcmFmZmljQ29uZTpibnIsVHJhaW46bk4sVHJhaW5Gcm9udDp4bnIsVHJhaW5Gcm9udFR1bm5lbDp2bnIsVHJhaW5UcmFjazp5bnIsVHJhbUZyb250Om5OLFRyYW5zZ2VuZGVyOnducixUcmFzaDprbnIsVHJhc2gyOk1ucixUcmVlRGVjaWR1b3VzOlNucixUcmVlUGFsbTpvTixUcmVlUGluZTp6bnIsVHJlZXM6Q25yLFRyZWxsbzpUbnIsVHJlbmRpbmdEb3duOl9ucixUcmVuZGluZ1VwOkFucixUcmVuZGluZ1VwRG93bjpMbnIsVHJpYW5nbGU6JG5yLFRyaWFuZ2xlQWxlcnQ6c04sVHJpYW5nbGVEYXNoZWQ6RG5yLFRyaWFuZ2xlUmlnaHQ6RW5yLFRyb3BoeTpQbnIsVHJ1Y2s6Tm5yLFRydWNrRWxlY3RyaWM6SW5yLFR1cmtpc2hMaXJhOkZucixUdXJudGFibGU6T25yLFR1cnRsZTpSbnIsVHY6SG5yLFR2MjpsTixUdk1pbmltYWw6bE4sVHZNaW5pbWFsUGxheTpCbnIsVHdpdGNoOnFucixUd2l0dGVyOmpucixUeXBlOlVucixUeXBlT3V0bGluZTpWbnIsVW1icmVsbGE6R25yLFVtYnJlbGxhT2ZmOlducixVbmRlcmxpbmU6WW5yLFVuZG86UW5yLFVuZG8yOlpucixVbmRvRG90OlhucixVbmZvbGRIb3Jpem9udGFsOkpucixVbmZvbGRWZXJ0aWNhbDpLbnIsVW5ncm91cDplb3IsVW5pdmVyc2l0eTpjTixVbmxpbms6dG9yLFVubGluazI6cm9yLFVubG9jazprSSxVbmxvY2tLZXlob2xlOk1JLFVucGx1Zzppb3IsVXBsb2FkOmFvcixVcGxvYWRDbG91ZDpTJCxVc2I6bm9yLFVzZXI6eW9yLFVzZXIyOm1OLFVzZXJDaGVjazpvb3IsVXNlckNoZWNrMjpkTixVc2VyQ2lyY2xlOngkLFVzZXJDaXJjbGUyOnYkLFVzZXJDb2c6c29yLFVzZXJDb2cyOnVOLFVzZXJLZXk6bG9yLFVzZXJMb2NrOmNvcixVc2VyTWludXM6ZG9yLFVzZXJNaW51czI6cE4sVXNlclBlbjp1b3IsVXNlclBsdXM6cG9yLFVzZXJQbHVzMjpoTixVc2VyUm91bmQ6bU4sVXNlclJvdW5kQ2hlY2s6ZE4sVXNlclJvdW5kQ29nOnVOLFVzZXJSb3VuZEtleTpob3IsVXNlclJvdW5kTWludXM6cE4sVXNlclJvdW5kUGVuOm1vcixVc2VyUm91bmRQbHVzOmhOLFVzZXJSb3VuZFNlYXJjaDpnb3IsVXNlclJvdW5kWDpmTixVc2VyU2VhcmNoOmJvcixVc2VyU3F1YXJlOlhQLFVzZXJTcXVhcmUyOlpQLFVzZXJTdGFyOnZvcixVc2VyWDp4b3IsVXNlclgyOmZOLFVzZXJzOndvcixVc2VyczI6Z04sVXNlcnNSb3VuZDpnTixVdGVuc2lsczp2TixVdGVuc2lsc0Nyb3NzZWQ6Yk4sVXRpbGl0eVBvbGU6TW9yLFZhbjprb3IsVmFyaWFibGU6U29yLFZhdWx0OnpvcixWZWN0b3JTcXVhcmU6Q29yLFZlZ2FuOlRvcixWZW5ldGlhbk1hc2s6X29yLFZlbnVzOkFvcixWZW51c0FuZE1hcnM6TG9yLFZlcmlmaWVkOlNFLFZpYnJhdGU6RW9yLFZpYnJhdGVPZmY6RG9yLFZpZGVvOklvcixWaWRlb09mZjokb3IsVmlkZW90YXBlOlBvcixWaWV3Ok5vcixWb2ljZW1haWw6Rm9yLFZvbGxleWJhbGw6T29yLFZvbHVtZTpWb3IsVm9sdW1lMTpSb3IsVm9sdW1lMjpCb3IsVm9sdW1lT2ZmOkhvcixWb2x1bWVYOnFvcixWb3RlOmpvcixXYWxsZXQ6V29yLFdhbGxldDI6eE4sV2FsbGV0Q2FyZHM6VW9yLFdhbGxldE1pbmltYWw6eE4sV2FsbHBhcGVyOkdvcixXYW5kOllvcixXYW5kMjp5TixXYW5kU3BhcmtsZXM6eU4sV2FyZWhvdXNlOlpvcixXYXNoaW5nTWFjaGluZTpYb3IsV2F0Y2g6UW9yLFdhdmVzOnQycixXYXZlc0Fycm93RG93bjpKb3IsV2F2ZXNBcnJvd1VwOktvcixXYXZlc0xhZGRlcjplMnIsV2F5cG9pbnRzOnIycixXZWJjYW06aTJyLFdlYmhvb2s6bjJyLFdlYmhvb2tPZmY6YTJyLFdlaWdodDpsMnIsV2VpZ2h0VGlsZGU6bzJyLFdoZWF0OmMycixXaGVhdE9mZjpzMnIsV2hvbGVXb3JkOmQycixXaWZpOnYycixXaWZpQ29nOnUycixXaWZpSGlnaDpwMnIsV2lmaUxvdzpoMnIsV2lmaU9mZjpmMnIsV2lmaVBlbjptMnIsV2lmaVN5bmM6ZzJyLFdpZmlaZXJvOmIycixXaW5kOnkycixXaW5kQXJyb3dEb3duOngycixXaW5lOncycixXaW5lT2ZmOmsycixXb3JrZmxvdzpNMnIsV29ybTpTMnIsV3JhcFRleHQ6YU4sV3JlbmNoOlQycixYOnoycixYQ2lyY2xlOnkkLFhPY3RhZ29uOkRJLFhTcXVhcmU6UVAsWW91dHViZTpDMnIsWmFwOkwycixaYXBPZmY6XzJyLFpvb21JbjpEMnIsWm9vbU91dDpBMnJ9KSxFMnI9KHtpY29uczplPXt9LG5hbWVBdHRyOnQ9ImRhdGEtbHVjaWRlIixhdHRyczpyPXt9LHJvb3Q6aT1kb2N1bWVudCxpblRlbXBsYXRlczphfT17fSk9PntpZighT2JqZWN0LnZhbHVlcyhlKS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBQbGVhc2UgcHJvdmlkZSBhbiBpY29ucyBvYmplY3QuCklmIHlvdSB3YW50IHRvIHVzZSBhbGwgdGhlIGljb25zIHlvdSBjYW4gaW1wb3J0IGl0IGxpa2U6CiBcYGltcG9ydCB7IGNyZWF0ZUljb25zLCBpY29ucyB9IGZyb20gJ2x1Y2lkZSc7Cmx1Y2lkZS5jcmVhdGVJY29ucyh7aWNvbnN9KTtcYGApO2lmKHR5cGVvZiBpPiJ1Iil0aHJvdyBuZXcgRXJyb3IoImBjcmVhdGVJY29ucygpYCBvbmx5IHdvcmtzIGluIGEgYnJvd3NlciBlbnZpcm9ubWVudC4iKTtpZihBcnJheS5mcm9tKGkucXVlcnlTZWxlY3RvckFsbChgWyR7dH1dYCkpLmZvckVhY2gobz0+WVB0KG8se25hbWVBdHRyOnQsaWNvbnM6ZSxhdHRyczpyfSkpLGEmJkFycmF5LmZyb20oaS5xdWVyeVNlbGVjdG9yQWxsKCJ0ZW1wbGF0ZSIpKS5mb3JFYWNoKHM9PkUycih7aWNvbnM6ZSxuYW1lQXR0cjp0LGF0dHJzOnIscm9vdDpzLmNvbnRlbnQsaW5UZW1wbGF0ZXM6YX0pKSx0PT09ImRhdGEtbHVjaWRlIil7bGV0IG89aS5xdWVyeVNlbGVjdG9yQWxsKCJbaWNvbi1uYW1lXSIpO28ubGVuZ3RoPjAmJihjb25zb2xlLndhcm4oIltMdWNpZGVdIFNvbWUgaWNvbnMgd2VyZSBmb3VuZCB3aXRoIHRoZSBub3cgZGVwcmVjYXRlZCBpY29uLW5hbWUgYXR0cmlidXRlLiBUaGVzZSB3aWxsIHN0aWxsIGJlIHJlcGxhY2VkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgYnV0IHdpbGwgbm8gbG9uZ2VyIGJlIHN1cHBvcnRlZCBpbiB2MS4wIGFuZCB5b3Ugc2hvdWxkIHN3aXRjaCB0byBkYXRhLWx1Y2lkZSIpLEFycmF5LmZyb20obykuZm9yRWFjaChzPT5ZUHQocyx7bmFtZUF0dHI6Imljb24tbmFtZSIsaWNvbnM6ZSxhdHRyczpyfSkpKX19O2cuQUFycm93RG93bj1aUHQsZy5BQXJyb3dVcD1YUHQsZy5BTGFyZ2VTbWFsbD1RUHQsZy5BY2Nlc3NpYmlsaXR5PUpQdCxnLkFjdGl2aXR5PWVOdCxnLkFjdGl2aXR5U3F1YXJlPXRQLGcuQWlyVmVudD1LUHQsZy5BaXJwbGF5PXROdCxnLkFsYXJtQ2hlY2s9ZkUsZy5BbGFybUNsb2NrPWlOdCxnLkFsYXJtQ2xvY2tDaGVjaz1mRSxnLkFsYXJtQ2xvY2tNaW51cz1tRSxnLkFsYXJtQ2xvY2tPZmY9ck50LGcuQWxhcm1DbG9ja1BsdXM9Z0UsZy5BbGFybU1pbnVzPW1FLGcuQWxhcm1QbHVzPWdFLGcuQWxhcm1TbW9rZT1hTnQsZy5BbGJ1bT1uTnQsZy5BbGVydENpcmNsZT1VRSxnLkFsZXJ0T2N0YWdvbj1MSSxnLkFsZXJ0VHJpYW5nbGU9c04sZy5BbGlnbkNlbnRlcj1LUCxnLkFsaWduQ2VudGVySG9yaXpvbnRhbD1vTnQsZy5BbGlnbkNlbnRlclZlcnRpY2FsPXNOdCxnLkFsaWduRW5kSG9yaXpvbnRhbD1sTnQsZy5BbGlnbkVuZFZlcnRpY2FsPWNOdCxnLkFsaWduSG9yaXpvbnRhbERpc3RyaWJ1dGVDZW50ZXI9ZE50LGcuQWxpZ25Ib3Jpem9udGFsRGlzdHJpYnV0ZUVuZD11TnQsZy5BbGlnbkhvcml6b250YWxEaXN0cmlidXRlU3RhcnQ9cE50LGcuQWxpZ25Ib3Jpem9udGFsSnVzdGlmeUNlbnRlcj1oTnQsZy5BbGlnbkhvcml6b250YWxKdXN0aWZ5RW5kPWZOdCxnLkFsaWduSG9yaXpvbnRhbEp1c3RpZnlTdGFydD1tTnQsZy5BbGlnbkhvcml6b250YWxTcGFjZUFyb3VuZD1nTnQsZy5BbGlnbkhvcml6b250YWxTcGFjZUJldHdlZW49Yk50LGcuQWxpZ25KdXN0aWZ5PXROLGcuQWxpZ25MZWZ0PVpwLGcuQWxpZ25SaWdodD1lTixnLkFsaWduU3RhcnRIb3Jpem9udGFsPXZOdCxnLkFsaWduU3RhcnRWZXJ0aWNhbD14TnQsZy5BbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUNlbnRlcj15TnQsZy5BbGlnblZlcnRpY2FsRGlzdHJpYnV0ZUVuZD13TnQsZy5BbGlnblZlcnRpY2FsRGlzdHJpYnV0ZVN0YXJ0PU1OdCxnLkFsaWduVmVydGljYWxKdXN0aWZ5Q2VudGVyPWtOdCxnLkFsaWduVmVydGljYWxKdXN0aWZ5RW5kPVNOdCxnLkFsaWduVmVydGljYWxKdXN0aWZ5U3RhcnQ9ek50LGcuQWxpZ25WZXJ0aWNhbFNwYWNlQXJvdW5kPUNOdCxnLkFsaWduVmVydGljYWxTcGFjZUJldHdlZW49VE50LGcuQW1idWxhbmNlPV9OdCxnLkFtcGVyc2FuZD1MTnQsZy5BbXBlcnNhbmRzPUFOdCxnLkFtcGhvcmE9RE50LGcuQW5jaG9yPUVOdCxnLkFuZ3J5PSROdCxnLkFubm95ZWQ9SU50LGcuQW50ZW5uYT1QTnQsZy5BbnZpbD1OTnQsZy5BcGVydHVyZT1GTnQsZy5BcHBXaW5kb3c9Uk50LGcuQXBwV2luZG93TWFjPU9OdCxnLkFwcGxlPUJOdCxnLkFyY2hpdmU9ak50LGcuQXJjaGl2ZVJlc3RvcmU9SE50LGcuQXJjaGl2ZVg9cU50LGcuQXJlYUNoYXJ0PURFLGcuQXJtY2hhaXI9Vk50LGcuQXJyb3dCaWdEb3duPVdOdCxnLkFycm93QmlnRG93bkRhc2g9VU50LGcuQXJyb3dCaWdMZWZ0PVlOdCxnLkFycm93QmlnTGVmdERhc2g9R050LGcuQXJyb3dCaWdSaWdodD1YTnQsZy5BcnJvd0JpZ1JpZ2h0RGFzaD1aTnQsZy5BcnJvd0JpZ1VwPUpOdCxnLkFycm93QmlnVXBEYXNoPVFOdCxnLkFycm93RG93bj1sRnQsZy5BcnJvd0Rvd24wMT1LTnQsZy5BcnJvd0Rvd24xMD1lRnQsZy5BcnJvd0Rvd25BWj1iRSxnLkFycm93RG93bkF6PWJFLGcuQXJyb3dEb3duQ2lyY2xlPVdFLGcuQXJyb3dEb3duRnJvbUxpbmU9dEZ0LGcuQXJyb3dEb3duTGVmdD1yRnQsZy5BcnJvd0Rvd25MZWZ0RnJvbUNpcmNsZT1ZRSxnLkFycm93RG93bkxlZnRGcm9tU3F1YXJlPW5QLGcuQXJyb3dEb3duTGVmdFNxdWFyZT1lUCxnLkFycm93RG93bk5hcnJvd1dpZGU9aUZ0LGcuQXJyb3dEb3duUmlnaHQ9YUZ0LGcuQXJyb3dEb3duUmlnaHRGcm9tQ2lyY2xlPVpFLGcuQXJyb3dEb3duUmlnaHRGcm9tU3F1YXJlPXNQLGcuQXJyb3dEb3duUmlnaHRTcXVhcmU9clAsZy5BcnJvd0Rvd25TcXVhcmU9aVAsZy5BcnJvd0Rvd25Ub0RvdD1uRnQsZy5BcnJvd0Rvd25Ub0xpbmU9b0Z0LGcuQXJyb3dEb3duVXA9c0Z0LGcuQXJyb3dEb3duV2lkZU5hcnJvdz12RSxnLkFycm93RG93blpBPXhFLGcuQXJyb3dEb3duWmE9eEUsZy5BcnJvd0xlZnQ9cEZ0LGcuQXJyb3dMZWZ0Q2lyY2xlPUdFLGcuQXJyb3dMZWZ0RnJvbUxpbmU9Y0Z0LGcuQXJyb3dMZWZ0UmlnaHQ9ZEZ0LGcuQXJyb3dMZWZ0U3F1YXJlPWFQLGcuQXJyb3dMZWZ0VG9MaW5lPXVGdCxnLkFycm93UmlnaHQ9Z0Z0LGcuQXJyb3dSaWdodENpcmNsZT1KRSxnLkFycm93UmlnaHRGcm9tTGluZT1oRnQsZy5BcnJvd1JpZ2h0TGVmdD1mRnQsZy5BcnJvd1JpZ2h0U3F1YXJlPWNQLGcuQXJyb3dSaWdodFRvTGluZT1tRnQsZy5BcnJvd1VwPUNGdCxnLkFycm93VXAwMT1iRnQsZy5BcnJvd1VwMTA9dkZ0LGcuQXJyb3dVcEFaPXlFLGcuQXJyb3dVcEF6PXlFLGcuQXJyb3dVcENpcmNsZT1LRSxnLkFycm93VXBEb3duPXhGdCxnLkFycm93VXBGcm9tRG90PXlGdCxnLkFycm93VXBGcm9tTGluZT13RnQsZy5BcnJvd1VwTGVmdD1NRnQsZy5BcnJvd1VwTGVmdEZyb21DaXJjbGU9WEUsZy5BcnJvd1VwTGVmdEZyb21TcXVhcmU9b1AsZy5BcnJvd1VwTGVmdFNxdWFyZT1kUCxnLkFycm93VXBOYXJyb3dXaWRlPXdFLGcuQXJyb3dVcFJpZ2h0PWtGdCxnLkFycm93VXBSaWdodEZyb21DaXJjbGU9UUUsZy5BcnJvd1VwUmlnaHRGcm9tU3F1YXJlPWxQLGcuQXJyb3dVcFJpZ2h0U3F1YXJlPXVQLGcuQXJyb3dVcFNxdWFyZT1wUCxnLkFycm93VXBUb0xpbmU9U0Z0LGcuQXJyb3dVcFdpZGVOYXJyb3c9ekZ0LGcuQXJyb3dVcFpBPU1FLGcuQXJyb3dVcFphPU1FLGcuQXJyb3dzVXBGcm9tTGluZT1URnQsZy5Bc3Rlcmlzaz1fRnQsZy5Bc3Rlcmlza1NxdWFyZT1oUCxnLkF0U2lnbj1MRnQsZy5BdG9tPUFGdCxnLkF1ZGlvTGluZXM9REZ0LGcuQXVkaW9XYXZlZm9ybT1FRnQsZy5Bd2FyZD0kRnQsZy5BeGU9SUZ0LGcuQXhpczNEPWtFLGcuQXhpczNkPWtFLGcuQmFieT1ORnQsZy5CYWNrcGFjaz1QRnQsZy5CYWRnZT1KRnQsZy5CYWRnZUFsZXJ0PUZGdCxnLkJhZGdlQ2VudD1PRnQsZy5CYWRnZUNoZWNrPVNFLGcuQmFkZ2VEb2xsYXJTaWduPUJGdCxnLkJhZGdlRXVybz1IRnQsZy5CYWRnZUhlbHA9ekUsZy5CYWRnZUluZGlhblJ1cGVlPVJGdCxnLkJhZGdlSW5mbz1xRnQsZy5CYWRnZUphcGFuZXNlWWVuPWpGdCxnLkJhZGdlTWludXM9VkZ0LGcuQmFkZ2VQZXJjZW50PVVGdCxnLkJhZGdlUGx1cz1XRnQsZy5CYWRnZVBvdW5kU3Rlcmxpbmc9R0Z0LGcuQmFkZ2VRdWVzdGlvbk1hcms9ekUsZy5CYWRnZVJ1c3NpYW5SdWJsZT1ZRnQsZy5CYWRnZVN3aXNzRnJhbmM9WkZ0LGcuQmFkZ2VUdXJraXNoTGlyYT1YRnQsZy5CYWRnZVg9UUZ0LGcuQmFnZ2FnZUNsYWltPUtGdCxnLkJhbGxvb249ZU90LGcuQmFuPXRPdCxnLkJhbmFuYT1yT3QsZy5CYW5kYWdlPWlPdCxnLkJhbmtub3RlPXNPdCxnLkJhbmtub3RlQXJyb3dEb3duPWFPdCxnLkJhbmtub3RlQXJyb3dVcD1uT3QsZy5CYW5rbm90ZVg9b090LGcuQmFyQ2hhcnQ9UkUsZy5CYXJDaGFydDI9QkUsZy5CYXJDaGFydDM9RkUsZy5CYXJDaGFydDQ9TkUsZy5CYXJDaGFydEJpZz1JRSxnLkJhckNoYXJ0SG9yaXpvbnRhbD1QRSxnLkJhckNoYXJ0SG9yaXpvbnRhbEJpZz1FRSxnLkJhcmNvZGU9bE90LGcuQmFycmVsPWNPdCxnLkJhc2VsaW5lPWRPdCxnLkJhdGg9dU90LGcuQmF0dGVyeT12T3QsZy5CYXR0ZXJ5Q2hhcmdpbmc9cE90LGcuQmF0dGVyeUZ1bGw9aE90LGcuQmF0dGVyeUxvdz1mT3QsZy5CYXR0ZXJ5TWVkaXVtPW1PdCxnLkJhdHRlcnlQbHVzPWdPdCxnLkJhdHRlcnlXYXJuaW5nPWJPdCxnLkJlYWtlcj14T3QsZy5CZWFuPXdPdCxnLkJlYW5PZmY9eU90LGcuQmVkPVNPdCxnLkJlZERvdWJsZT1NT3QsZy5CZWRTaW5nbGU9a090LGcuQmVlZj16T3QsZy5CZWVyPVRPdCxnLkJlZXJPZmY9Q090LGcuQmVsbD1JT3QsZy5CZWxsRG90PV9PdCxnLkJlbGxFbGVjdHJpYz1MT3QsZy5CZWxsTWludXM9QU90LGcuQmVsbE9mZj1ET3QsZy5CZWxsUGx1cz1FT3QsZy5CZWxsUmluZz0kT3QsZy5CZXR3ZWVuSG9yaXpvbmFsRW5kPUNFLGcuQmV0d2Vlbkhvcml6b25hbFN0YXJ0PVRFLGcuQmV0d2Vlbkhvcml6b250YWxFbmQ9Q0UsZy5CZXR3ZWVuSG9yaXpvbnRhbFN0YXJ0PVRFLGcuQmV0d2VlblZlcnRpY2FsRW5kPVBPdCxnLkJldHdlZW5WZXJ0aWNhbFN0YXJ0PU5PdCxnLkJpY2Vwc0ZsZXhlZD1GT3QsZy5CaWtlPU9PdCxnLkJpbmFyeT1ST3QsZy5CaW5vY3VsYXJzPUJPdCxnLkJpb2hhemFyZD1IT3QsZy5CaXJkPXFPdCxnLkJpcmRob3VzZT1qT3QsZy5CaXRjb2luPVZPdCxnLkJsZW5kPVVPdCxnLkJsaW5kcz1XT3QsZy5CbG9ja3M9WU90LGcuQmx1ZXRvb3RoPUpPdCxnLkJsdWV0b290aENvbm5lY3RlZD1HT3QsZy5CbHVldG9vdGhPZmY9Wk90LGcuQmx1ZXRvb3RoU2VhcmNoaW5nPVhPdCxnLkJvbGQ9UU90LGcuQm9sdD1lUnQsZy5Cb21iPUtPdCxnLkJvbmU9dFJ0LGcuQm9vaz1DUnQsZy5Cb29rQT1yUnQsZy5Cb29rQWxlcnQ9aVJ0LGcuQm9va0F1ZGlvPW5SdCxnLkJvb2tDaGVjaz1hUnQsZy5Cb29rQ29weT1vUnQsZy5Cb29rRGFzaGVkPV9FLGcuQm9va0Rvd249c1J0LGcuQm9va0hlYWRwaG9uZXM9bFJ0LGcuQm9va0hlYXJ0PWNSdCxnLkJvb2tJbWFnZT1kUnQsZy5Cb29rS2V5PXVSdCxnLkJvb2tMb2NrPXBSdCxnLkJvb2tNYXJrZWQ9aFJ0LGcuQm9va01pbnVzPWZSdCxnLkJvb2tPcGVuPWJSdCxnLkJvb2tPcGVuQ2hlY2s9bVJ0LGcuQm9va09wZW5UZXh0PWdSdCxnLkJvb2tQbHVzPXZSdCxnLkJvb2tTZWFyY2g9eFJ0LGcuQm9va1RlbXBsYXRlPV9FLGcuQm9va1RleHQ9eVJ0LGcuQm9va1R5cGU9d1J0LGcuQm9va1VwPWtSdCxnLkJvb2tVcDI9TVJ0LGcuQm9va1VzZXI9U1J0LGcuQm9va1g9elJ0LGcuQm9va21hcms9RFJ0LGcuQm9va21hcmtDaGVjaz1UUnQsZy5Cb29rbWFya01pbnVzPV9SdCxnLkJvb2ttYXJrUGx1cz1MUnQsZy5Cb29rbWFya1g9QVJ0LGcuQm9vbUJveD1FUnQsZy5Cb3Q9SVJ0LGcuQm90TWVzc2FnZVNxdWFyZT0kUnQsZy5Cb3RPZmY9UFJ0LGcuQm90dGxlV2luZT1OUnQsZy5Cb3dBcnJvdz1GUnQsZy5Cb3g9T1J0LGcuQm94U2VsZWN0PVNQLGcuQm94ZXM9UlJ0LGcuQnJhY2VzPUxFLGcuQnJhY2tldHM9QlJ0LGcuQnJhaW49alJ0LGcuQnJhaW5DaXJjdWl0PUhSdCxnLkJyYWluQ29nPXFSdCxnLkJyaWNrV2FsbD1HUnQsZy5Ccmlja1dhbGxGaXJlPVZSdCxnLkJyaWNrV2FsbFNoaWVsZD1VUnQsZy5CcmllZmNhc2U9WFJ0LGcuQnJpZWZjYXNlQnVzaW5lc3M9V1J0LGcuQnJpZWZjYXNlQ29udmV5b3JCZWx0PVlSdCxnLkJyaWVmY2FzZU1lZGljYWw9WlJ0LGcuQnJpbmdUb0Zyb250PVFSdCxnLkJydXNoPUtSdCxnLkJydXNoQ2xlYW5pbmc9SlJ0LGcuQnViYmxlcz1lQnQsZy5CdWc9aUJ0LGcuQnVnT2ZmPXRCdCxnLkJ1Z1BsYXk9ckJ0LGcuQnVpbGRpbmc9bkJ0LGcuQnVpbGRpbmcyPWFCdCxnLkJ1cz1zQnQsZy5CdXNGcm9udD1vQnQsZy5DYWJsZT1jQnQsZy5DYWJsZUNhcj1sQnQsZy5DYWtlPXVCdCxnLkNha2VTbGljZT1kQnQsZy5DYWxjdWxhdG9yPXBCdCxnLkNhbGVuZGFyPSRCdCxnLkNhbGVuZGFyMT1oQnQsZy5DYWxlbmRhckFycm93RG93bj1mQnQsZy5DYWxlbmRhckFycm93VXA9bUJ0LGcuQ2FsZW5kYXJDaGVjaz1iQnQsZy5DYWxlbmRhckNoZWNrMj1nQnQsZy5DYWxlbmRhckNsb2NrPXZCdCxnLkNhbGVuZGFyQ29nPXhCdCxnLkNhbGVuZGFyRGF5cz15QnQsZy5DYWxlbmRhckZvbGQ9d0J0LGcuQ2FsZW5kYXJIZWFydD1NQnQsZy5DYWxlbmRhck1pbnVzPVNCdCxnLkNhbGVuZGFyTWludXMyPWtCdCxnLkNhbGVuZGFyT2ZmPXpCdCxnLkNhbGVuZGFyUGx1cz1UQnQsZy5DYWxlbmRhclBsdXMyPUNCdCxnLkNhbGVuZGFyUmFuZ2U9X0J0LGcuQ2FsZW5kYXJTZWFyY2g9TEJ0LGcuQ2FsZW5kYXJTeW5jPUFCdCxnLkNhbGVuZGFyWD1FQnQsZy5DYWxlbmRhclgyPURCdCxnLkNhbGVuZGFycz1JQnQsZy5DYW1lcmE9TkJ0LGcuQ2FtZXJhT2ZmPVBCdCxnLkNhbmRsZXN0aWNrQ2hhcnQ9JEUsZy5DYW5keT1SQnQsZy5DYW5keUNhbmU9RkJ0LGcuQ2FuZHlPZmY9T0J0LGcuQ2FubmFiaXM9SEJ0LGcuQ2FubmFiaXNPZmY9QkJ0LGcuQ2FwdGlvbnM9QUUsZy5DYXB0aW9uc09mZj1xQnQsZy5DYXI9VUJ0LGcuQ2FyRnJvbnQ9akJ0LGcuQ2FyVGF4aUZyb250PVZCdCxnLkNhcmF2YW49V0J0LGcuQ2FyZFNpbT1HQnQsZy5DYXJyb3Q9WUJ0LGcuQ2FzZUxvd2VyPVpCdCxnLkNhc2VTZW5zaXRpdmU9WEJ0LGcuQ2FzZVVwcGVyPVFCdCxnLkNhc3NldHRlVGFwZT1KQnQsZy5DYXN0PUtCdCxnLkNhc3RsZT1lSHQsZy5DYXQ9dEh0LGcuQ2N0dj1ySHQsZy5DaGFydEFyZWE9REUsZy5DaGFydEJhcj1QRSxnLkNoYXJ0QmFyQmlnPUVFLGcuQ2hhcnRCYXJEZWNyZWFzaW5nPWlIdCxnLkNoYXJ0QmFySW5jcmVhc2luZz1hSHQsZy5DaGFydEJhclN0YWNrZWQ9bkh0LGcuQ2hhcnRDYW5kbGVzdGljaz0kRSxnLkNoYXJ0Q29sdW1uPUZFLGcuQ2hhcnRDb2x1bW5CaWc9SUUsZy5DaGFydENvbHVtbkRlY3JlYXNpbmc9b0h0LGcuQ2hhcnRDb2x1bW5JbmNyZWFzaW5nPU5FLGcuQ2hhcnRDb2x1bW5TdGFja2VkPXNIdCxnLkNoYXJ0R2FudHQ9bEh0LGcuQ2hhcnRMaW5lPU9FLGcuQ2hhcnROZXR3b3JrPWNIdCxnLkNoYXJ0Tm9BeGVzQ29sdW1uPUJFLGcuQ2hhcnROb0F4ZXNDb2x1bW5EZWNyZWFzaW5nPWRIdCxnLkNoYXJ0Tm9BeGVzQ29sdW1uSW5jcmVhc2luZz1SRSxnLkNoYXJ0Tm9BeGVzQ29tYmluZWQ9dUh0LGcuQ2hhcnROb0F4ZXNHYW50dD1IRSxnLkNoYXJ0UGllPXFFLGcuQ2hhcnRTY2F0dGVyPWpFLGcuQ2hhcnRTcGxpbmU9cEh0LGcuQ2hlY2s9Ykh0LGcuQ2hlY2tDaGVjaz1mSHQsZy5DaGVja0NpcmNsZT1lJCxnLkNoZWNrQ2lyY2xlMj10JCxnLkNoZWNrTGluZT1oSHQsZy5DaGVja1NxdWFyZT1tUCxnLkNoZWNrU3F1YXJlMj1nUCxnLkNoZWZIYXQ9bUh0LGcuQ2hlcnJ5PWdIdCxnLkNoZXNzQmlzaG9wPXZIdCxnLkNoZXNzS2luZz14SHQsZy5DaGVzc0tuaWdodD1NSHQsZy5DaGVzc1Bhd249eUh0LGcuQ2hlc3NRdWVlbj13SHQsZy5DaGVzc1Jvb2s9a0h0LGcuQ2hldnJvbkRvd249U0h0LGcuQ2hldnJvbkRvd25DaXJjbGU9ciQsZy5DaGV2cm9uRG93blNxdWFyZT1iUCxnLkNoZXZyb25GaXJzdD16SHQsZy5DaGV2cm9uTGFzdD1DSHQsZy5DaGV2cm9uTGVmdD1USHQsZy5DaGV2cm9uTGVmdENpcmNsZT1pJCxnLkNoZXZyb25MZWZ0U3F1YXJlPXZQLGcuQ2hldnJvblJpZ2h0PV9IdCxnLkNoZXZyb25SaWdodENpcmNsZT1hJCxnLkNoZXZyb25SaWdodFNxdWFyZT14UCxnLkNoZXZyb25VcD1MSHQsZy5DaGV2cm9uVXBDaXJjbGU9biQsZy5DaGV2cm9uVXBTcXVhcmU9eVAsZy5DaGV2cm9uc0Rvd249REh0LGcuQ2hldnJvbnNEb3duVXA9QUh0LGcuQ2hldnJvbnNMZWZ0PUlIdCxnLkNoZXZyb25zTGVmdFJpZ2h0PSRIdCxnLkNoZXZyb25zTGVmdFJpZ2h0RWxsaXBzaXM9RUh0LGcuQ2hldnJvbnNSaWdodD1OSHQsZy5DaGV2cm9uc1JpZ2h0TGVmdD1QSHQsZy5DaGV2cm9uc1VwPUZIdCxnLkNoZXZyb25zVXBEb3duPU9IdCxnLkNocm9tZT1WRSxnLkNocm9taXVtPVZFLGcuQ2h1cmNoPUJIdCxnLkNpZ2FyZXR0ZT1ISHQsZy5DaWdhcmV0dGVPZmY9Ukh0LGcuQ2lyY2xlPXJxdCxnLkNpcmNsZUFsZXJ0PVVFLGcuQ2lyY2xlQXJyb3dEb3duPVdFLGcuQ2lyY2xlQXJyb3dMZWZ0PUdFLGcuQ2lyY2xlQXJyb3dPdXREb3duTGVmdD1ZRSxnLkNpcmNsZUFycm93T3V0RG93blJpZ2h0PVpFLGcuQ2lyY2xlQXJyb3dPdXRVcExlZnQ9WEUsZy5DaXJjbGVBcnJvd091dFVwUmlnaHQ9UUUsZy5DaXJjbGVBcnJvd1JpZ2h0PUpFLGcuQ2lyY2xlQXJyb3dVcD1LRSxnLkNpcmNsZUNoZWNrPXQkLGcuQ2lyY2xlQ2hlY2tCaWc9ZSQsZy5DaXJjbGVDaGV2cm9uRG93bj1yJCxnLkNpcmNsZUNoZXZyb25MZWZ0PWkkLGcuQ2lyY2xlQ2hldnJvblJpZ2h0PWEkLGcuQ2lyY2xlQ2hldnJvblVwPW4kLGcuQ2lyY2xlRGFzaGVkPXFIdCxnLkNpcmNsZURpdmlkZT1vJCxnLkNpcmNsZURvbGxhclNpZ249akh0LGcuQ2lyY2xlRG90PVVIdCxnLkNpcmNsZURvdERhc2hlZD1WSHQsZy5DaXJjbGVFbGxpcHNpcz1XSHQsZy5DaXJjbGVFcXVhbD1HSHQsZy5DaXJjbGVGYWRpbmdBcnJvd1VwPVlIdCxnLkNpcmNsZUZhZGluZ1BsdXM9Wkh0LGcuQ2lyY2xlR2F1Z2U9cyQsZy5DaXJjbGVIZWxwPXFwLGcuQ2lyY2xlTWludXM9bCQsZy5DaXJjbGVPZmY9WEh0LGcuQ2lyY2xlUGFya2luZz1kJCxnLkNpcmNsZVBhcmtpbmdPZmY9YyQsZy5DaXJjbGVQYXVzZT11JCxnLkNpcmNsZVBlcmNlbnQ9cCQsZy5DaXJjbGVQaWxlPVFIdCxnLkNpcmNsZVBsYXk9aCQsZy5DaXJjbGVQbHVzPWYkLGcuQ2lyY2xlUG91bmRTdGVybGluZz1KSHQsZy5DaXJjbGVQb3dlcj1tJCxnLkNpcmNsZVF1ZXN0aW9uTWFyaz1xcCxnLkNpcmNsZVNsYXNoPUtIdCxnLkNpcmNsZVNsYXNoMj1nJCxnLkNpcmNsZVNsYXNoZWQ9ZyQsZy5DaXJjbGVTbWFsbD1lcXQsZy5DaXJjbGVTdGFyPXRxdCxnLkNpcmNsZVN0b3A9YiQsZy5DaXJjbGVVc2VyPXgkLGcuQ2lyY2xlVXNlclJvdW5kPXYkLGcuQ2lyY2xlWD15JCxnLkNpcmN1aXRCb2FyZD1pcXQsZy5DaXRydXM9YXF0LGcuQ2xhcHBlcmJvYXJkPW5xdCxnLkNsaXBib2FyZD1ncXQsZy5DbGlwYm9hcmRDaGVjaz1vcXQsZy5DbGlwYm9hcmRDbG9jaz1zcXQsZy5DbGlwYm9hcmRDb3B5PWxxdCxnLkNsaXBib2FyZEVkaXQ9TSQsZy5DbGlwYm9hcmRMaXN0PWNxdCxnLkNsaXBib2FyZE1pbnVzPWRxdCxnLkNsaXBib2FyZFBhc3RlPXVxdCxnLkNsaXBib2FyZFBlbj1NJCxnLkNsaXBib2FyZFBlbkxpbmU9dyQsZy5DbGlwYm9hcmRQbHVzPXBxdCxnLkNsaXBib2FyZFNpZ25hdHVyZT13JCxnLkNsaXBib2FyZFR5cGU9aHF0LGcuQ2xpcGJvYXJkWD1mcXQsZy5DbG9jaz1JcXQsZy5DbG9jazE9bXF0LGcuQ2xvY2sxMD1icXQsZy5DbG9jazExPXZxdCxnLkNsb2NrMTI9eHF0LGcuQ2xvY2syPXlxdCxnLkNsb2NrMz13cXQsZy5DbG9jazQ9TXF0LGcuQ2xvY2s1PWtxdCxnLkNsb2NrNj1TcXQsZy5DbG9jazc9enF0LGcuQ2xvY2s4PUNxdCxnLkNsb2NrOT1UcXQsZy5DbG9ja0FsZXJ0PUxxdCxnLkNsb2NrQXJyb3dEb3duPV9xdCxnLkNsb2NrQXJyb3dVcD1BcXQsZy5DbG9ja0NoZWNrPURxdCxnLkNsb2NrRmFkaW5nPUVxdCxnLkNsb2NrUGx1cz0kcXQsZy5DbG9zZWRDYXB0aW9uPVBxdCxnLkNsb3VkPUtxdCxnLkNsb3VkQWxlcnQ9TnF0LGcuQ2xvdWRCYWNrdXA9RnF0LGcuQ2xvdWRDaGVjaz1PcXQsZy5DbG91ZENvZz1ScXQsZy5DbG91ZERvd25sb2FkPWskLGcuQ2xvdWREcml6emxlPUJxdCxnLkNsb3VkRm9nPUhxdCxnLkNsb3VkSGFpbD1xcXQsZy5DbG91ZExpZ2h0bmluZz1WcXQsZy5DbG91ZE1vb249VXF0LGcuQ2xvdWRNb29uUmFpbj1qcXQsZy5DbG91ZE9mZj1XcXQsZy5DbG91ZFJhaW49WXF0LGcuQ2xvdWRSYWluV2luZD1HcXQsZy5DbG91ZFNub3c9WnF0LGcuQ2xvdWRTdW49UXF0LGcuQ2xvdWRTdW5SYWluPVhxdCxnLkNsb3VkU3luYz1KcXQsZy5DbG91ZFVwbG9hZD1TJCxnLkNsb3VkeT1lanQsZy5DbG92ZXI9dGp0LGcuQ2x1Yj1yanQsZy5Db2RlPWlqdCxnLkNvZGUyPXokLGcuQ29kZVNxdWFyZT13UCxnLkNvZGVYbWw9eiQsZy5Db2RlcGVuPWFqdCxnLkNvZGVzYW5kYm94PW5qdCxnLkNvZmZlZT1vanQsZy5Db2c9c2p0LGcuQ29pbnM9bGp0LGcuQ29sdW1ucz1DJCxnLkNvbHVtbnMyPUMkLGcuQ29sdW1uczM9VCQsZy5Db2x1bW5zM0NvZz1qcCxnLkNvbHVtbnM0PWNqdCxnLkNvbHVtbnNTZXR0aW5ncz1qcCxnLkNvbWJpbmU9ZGp0LGcuQ29tbWFuZD11anQsZy5Db21wYXNzPXBqdCxnLkNvbXBvbmVudD1oanQsZy5Db21wdXRlcj1manQsZy5Db25jaWVyZ2VCZWxsPW1qdCxnLkNvbmU9Z2p0LGcuQ29uc3RydWN0aW9uPWJqdCxnLkNvbnRhY3Q9dmp0LGcuQ29udGFjdDI9XyQsZy5Db250YWN0Um91bmQ9XyQsZy5Db250YWluZXI9eGp0LGcuQ29udHJhc3Q9d2p0LGcuQ29va2llPXlqdCxnLkNvb2tpbmdQb3Q9TWp0LGcuQ29weT1fanQsZy5Db3B5Q2hlY2s9a2p0LGcuQ29weU1pbnVzPVNqdCxnLkNvcHlQbHVzPXpqdCxnLkNvcHlTbGFzaD1DanQsZy5Db3B5WD1UanQsZy5Db3B5bGVmdD1ManQsZy5Db3B5cmlnaHQ9QWp0LGcuQ29ybmVyRG93bkxlZnQ9RGp0LGcuQ29ybmVyRG93blJpZ2h0PUVqdCxnLkNvcm5lckxlZnREb3duPSRqdCxnLkNvcm5lckxlZnRVcD1JanQsZy5Db3JuZXJSaWdodERvd249UGp0LGcuQ29ybmVyUmlnaHRVcD1OanQsZy5Db3JuZXJVcExlZnQ9Rmp0LGcuQ29ybmVyVXBSaWdodD1PanQsZy5DcHU9Ump0LGcuQ3JlYXRpdmVDb21tb25zPUJqdCxnLkNyZWRpdENhcmQ9SGp0LGcuQ3JvaXNzYW50PXFqdCxnLkNyb3A9amp0LGcuQ3Jvc3M9Vmp0LGcuQ3Jvc3NoYWlyPVVqdCxnLkNyb3duPVdqdCxnLkN1Ym9pZD1HanQsZy5DdXBTb2RhPVlqdCxnLkN1cmx5QnJhY2VzPUxFLGcuQ3VycmVuY3k9WGp0LGcuQ3lsaW5kZXI9Wmp0LGcuRGFtPUpqdCxnLkRhdGFiYXNlPXRWdCxnLkRhdGFiYXNlQmFja3VwPVFqdCxnLkRhdGFiYXNlU2VhcmNoPUtqdCxnLkRhdGFiYXNlWmFwPWVWdCxnLkRlY2ltYWxzQXJyb3dMZWZ0PXJWdCxnLkRlY2ltYWxzQXJyb3dSaWdodD1pVnQsZy5EZWxldGU9YVZ0LGcuRGVzc2VydD1uVnQsZy5EaWFtZXRlcj1vVnQsZy5EaWFtb25kPWNWdCxnLkRpYW1vbmRNaW51cz1zVnQsZy5EaWFtb25kUGVyY2VudD1MJCxnLkRpYW1vbmRQbHVzPWxWdCxnLkRpY2UxPWRWdCxnLkRpY2UyPXVWdCxnLkRpY2UzPXBWdCxnLkRpY2U0PWhWdCxnLkRpY2U1PWZWdCxnLkRpY2U2PW1WdCxnLkRpY2VzPWdWdCxnLkRpZmY9YlZ0LGcuRGlzYz13VnQsZy5EaXNjMj12VnQsZy5EaXNjMz14VnQsZy5EaXNjQWxidW09eVZ0LGcuRGl2aWRlPU1WdCxnLkRpdmlkZUNpcmNsZT1vJCxnLkRpdmlkZVNxdWFyZT16UCxnLkRuYT1TVnQsZy5EbmFPZmY9a1Z0LGcuRG9jaz1UVnQsZy5Eb2c9elZ0LGcuRG9sbGFyU2lnbj1DVnQsZy5Eb251dD1fVnQsZy5Eb29yQ2xvc2VkPUFWdCxnLkRvb3JDbG9zZWRMb2NrZWQ9TFZ0LGcuRG9vck9wZW49RFZ0LGcuRG90PUVWdCxnLkRvdFNxdWFyZT1DUCxnLkRvd25sb2FkPSRWdCxnLkRvd25sb2FkQ2xvdWQ9ayQsZy5EcmFmdGluZ0NvbXBhc3M9SVZ0LGcuRHJhbWE9TlZ0LGcuRHJpYmJibGU9UFZ0LGcuRHJpbGw9RlZ0LGcuRHJvbmU9T1Z0LGcuRHJvcGxldD1CVnQsZy5Ecm9wbGV0T2ZmPVJWdCxnLkRyb3BsZXRzPUhWdCxnLkRydW09cVZ0LGcuRHJ1bXN0aWNrPWpWdCxnLkR1bWJiZWxsPVZWdCxnLkVhcj1HVnQsZy5FYXJPZmY9VVZ0LGcuRWFydGg9QSQsZy5FYXJ0aExvY2s9V1Z0LGcuRWNsaXBzZT1ZVnQsZy5FZGl0PUU0LGcuRWRpdDI9cUksZy5FZGl0Mz1ISSxnLkVnZz1RVnQsZy5FZ2dGcmllZD1aVnQsZy5FZ2dPZmY9WFZ0LGcuRWxsaXBzaXM9RSQsZy5FbGxpcHNpc1ZlcnRpY2FsPUQkLGcuRXF1YWw9ZVV0LGcuRXF1YWxBcHByb3hpbWF0ZWx5PUpWdCxnLkVxdWFsTm90PUtWdCxnLkVxdWFsU3F1YXJlPVRQLGcuRXJhc2VyPXJVdCxnLkV0aGVybmV0UG9ydD10VXQsZy5FdXJvPWlVdCxnLkV2Q2hhcmdlcj1hVXQsZy5FeHBhbmQ9blV0LGcuRXh0ZXJuYWxMaW5rPW9VdCxnLkV5ZT1sVXQsZy5FeWVDbG9zZWQ9c1V0LGcuRXllT2ZmPWNVdCxnLkZhY2Vib29rPWRVdCxnLkZhY3Rvcnk9dVV0LGcuRmFuPXBVdCxnLkZhc3RGb3J3YXJkPWhVdCxnLkZlYXRoZXI9ZlV0LGcuRmVuY2U9bVV0LGcuRmVycmlzV2hlZWw9Z1V0LGcuRmlnbWE9YlV0LGcuRmlsZT1XVXQsZy5GaWxlQXJjaGl2ZT12VXQsZy5GaWxlQXVkaW89VnAsZy5GaWxlQXVkaW8yPVZwLGcuRmlsZUF4aXMzRD0kJCxnLkZpbGVBeGlzM2Q9JCQsZy5GaWxlQmFkZ2U9SSQsZy5GaWxlQmFkZ2UyPUkkLGcuRmlsZUJhckNoYXJ0PUYkLGcuRmlsZUJhckNoYXJ0Mj1PJCxnLkZpbGVCb3g9eFV0LGcuRmlsZUJyYWNlcz1OJCxnLkZpbGVCcmFjZXNDb3JuZXI9UCQsZy5GaWxlQ2hhcnRDb2x1bW49TyQsZy5GaWxlQ2hhcnRDb2x1bW5JbmNyZWFzaW5nPUYkLGcuRmlsZUNoYXJ0TGluZT1SJCxnLkZpbGVDaGFydFBpZT1CJCxnLkZpbGVDaGVjaz13VXQsZy5GaWxlQ2hlY2syPUgkLGcuRmlsZUNoZWNrQ29ybmVyPUgkLGcuRmlsZUNsb2NrPXlVdCxnLkZpbGVDb2RlPU1VdCxnLkZpbGVDb2RlMj1xJCxnLkZpbGVDb2RlQ29ybmVyPXEkLGcuRmlsZUNvZz1qJCxnLkZpbGVDb2cyPWokLGcuRmlsZURpZmY9a1V0LGcuRmlsZURpZ2l0PVNVdCxnLkZpbGVEb3duPXpVdCxnLkZpbGVFZGl0PVokLGcuRmlsZUV4Y2xhbWF0aW9uUG9pbnQ9ViQsZy5GaWxlSGVhZHBob25lPVZwLGcuRmlsZUhlYXJ0PUNVdCxnLkZpbGVJbWFnZT1UVXQsZy5GaWxlSW5wdXQ9X1V0LGcuRmlsZUpzb249TiQsZy5GaWxlSnNvbjI9UCQsZy5GaWxlS2V5PVUkLGcuRmlsZUtleTI9VSQsZy5GaWxlTGluZUNoYXJ0PVIkLGcuRmlsZUxvY2s9VyQsZy5GaWxlTG9jazI9VyQsZy5GaWxlTWludXM9TFV0LGcuRmlsZU1pbnVzMj1HJCxnLkZpbGVNaW51c0Nvcm5lcj1HJCxnLkZpbGVNdXNpYz1BVXQsZy5GaWxlT3V0cHV0PURVdCxnLkZpbGVQZW49WiQsZy5GaWxlUGVuTGluZT1ZJCxnLkZpbGVQaWVDaGFydD1CJCxnLkZpbGVQbGF5PVgkLGcuRmlsZVBsdXM9RVV0LGcuRmlsZVBsdXMyPVEkLGcuRmlsZVBsdXNDb3JuZXI9USQsZy5GaWxlUXVlc3Rpb249SiQsZy5GaWxlUXVlc3Rpb25NYXJrPUokLGcuRmlsZVNjYW49JFV0LGcuRmlsZVNlYXJjaD1JVXQsZy5GaWxlU2VhcmNoMj1LJCxnLkZpbGVTZWFyY2hDb3JuZXI9SyQsZy5GaWxlU2lnbmFsPWVJLGcuRmlsZVNpZ25hdHVyZT1ZJCxnLkZpbGVTbGlkZXJzPVBVdCxnLkZpbGVTcHJlYWRzaGVldD1OVXQsZy5GaWxlU3RhY2s9RlV0LGcuRmlsZVN5bWxpbms9T1V0LGcuRmlsZVRlcm1pbmFsPVJVdCxnLkZpbGVUZXh0PUJVdCxnLkZpbGVUeXBlPUhVdCxnLkZpbGVUeXBlMj10SSxnLkZpbGVUeXBlQ29ybmVyPXRJLGcuRmlsZVVwPXFVdCxnLkZpbGVVc2VyPWpVdCxnLkZpbGVWaWRlbz1YJCxnLkZpbGVWaWRlbzI9ckksZy5GaWxlVmlkZW9DYW1lcmE9ckksZy5GaWxlVm9sdW1lPVZVdCxnLkZpbGVWb2x1bWUyPWVJLGcuRmlsZVdhcm5pbmc9ViQsZy5GaWxlWD1VVXQsZy5GaWxlWDI9aUksZy5GaWxlWENvcm5lcj1pSSxnLkZpbGVzPUdVdCxnLkZpbG09WVV0LGcuRmlsdGVyPWxJLGcuRmlsdGVyWD1zSSxnLkZpbmdlcnByaW50PWFJLGcuRmluZ2VycHJpbnRQYXR0ZXJuPWFJLGcuRmlyZUV4dGluZ3Vpc2hlcj1aVXQsZy5GaXNoPUpVdCxnLkZpc2hPZmY9WFV0LGcuRmlzaFN5bWJvbD1RVXQsZy5GaXNoaW5nSG9vaz1LVXQsZy5GbGFnPWlXdCxnLkZsYWdPZmY9ZVd0LGcuRmxhZ1RyaWFuZ2xlTGVmdD10V3QsZy5GbGFnVHJpYW5nbGVSaWdodD1yV3QsZy5GbGFtZT1uV3QsZy5GbGFtZUtpbmRsaW5nPWFXdCxnLkZsYXNobGlnaHQ9c1d0LGcuRmxhc2hsaWdodE9mZj1vV3QsZy5GbGFza0NvbmljYWw9Y1d0LGcuRmxhc2tDb25pY2FsT2ZmPWxXdCxnLkZsYXNrUm91bmQ9ZFd0LGcuRmxpcEhvcml6b250YWw9cFd0LGcuRmxpcEhvcml6b250YWwyPXVXdCxnLkZsaXBWZXJ0aWNhbD1mV3QsZy5GbGlwVmVydGljYWwyPWhXdCxnLkZsb3dlcj1nV3QsZy5GbG93ZXIyPW1XdCxnLkZvY3VzPWJXdCxnLkZvbGRIb3Jpem9udGFsPXZXdCxnLkZvbGRWZXJ0aWNhbD14V3QsZy5Gb2xkZXI9R1d0LGcuRm9sZGVyQXJjaGl2ZT13V3QsZy5Gb2xkZXJDaGVjaz15V3QsZy5Gb2xkZXJDbG9jaz1NV3QsZy5Gb2xkZXJDbG9zZWQ9a1d0LGcuRm9sZGVyQ29kZT1TV3QsZy5Gb2xkZXJDb2c9bkksZy5Gb2xkZXJDb2cyPW5JLGcuRm9sZGVyRG90PXpXdCxnLkZvbGRlckRvd249Q1d0LGcuRm9sZGVyRWRpdD1vSSxnLkZvbGRlckdpdD1fV3QsZy5Gb2xkZXJHaXQyPVRXdCxnLkZvbGRlckhlYXJ0PUxXdCxnLkZvbGRlcklucHV0PUFXdCxnLkZvbGRlckthbmJhbj1EV3QsZy5Gb2xkZXJLZXk9RVd0LGcuRm9sZGVyTG9jaz0kV3QsZy5Gb2xkZXJNaW51cz1JV3QsZy5Gb2xkZXJPcGVuPU5XdCxnLkZvbGRlck9wZW5Eb3Q9UFd0LGcuRm9sZGVyT3V0cHV0PUZXdCxnLkZvbGRlclBlbj1vSSxnLkZvbGRlclBsdXM9T1d0LGcuRm9sZGVyUm9vdD1SV3QsZy5Gb2xkZXJTZWFyY2g9SFd0LGcuRm9sZGVyU2VhcmNoMj1CV3QsZy5Gb2xkZXJTeW1saW5rPXFXdCxnLkZvbGRlclN5bmM9ald0LGcuRm9sZGVyVHJlZT1WV3QsZy5Gb2xkZXJVcD1VV3QsZy5Gb2xkZXJYPVdXdCxnLkZvbGRlcnM9WVd0LGcuRm9vdHByaW50cz1YV3QsZy5Gb3JrS25pZmU9dk4sZy5Gb3JrS25pZmVDcm9zc2VkPWJOLGcuRm9ya2xpZnQ9Wld0LGcuRm9ybT1RV3QsZy5Gb3JtSW5wdXQ9VkksZy5Gb3J3YXJkPUpXdCxnLkZyYW1lPUtXdCxnLkZyYW1lcj1lR3QsZy5Gcm93bj10R3QsZy5GdWVsPXJHdCxnLkZ1bGxzY3JlZW49aUd0LGcuRnVuY3Rpb25TcXVhcmU9X1AsZy5GdW5uZWw9bEksZy5GdW5uZWxQbHVzPWFHdCxnLkZ1bm5lbFg9c0ksZy5HYWxsZXJ5SG9yaXpvbnRhbD1vR3QsZy5HYWxsZXJ5SG9yaXpvbnRhbEVuZD1uR3QsZy5HYWxsZXJ5VGh1bWJuYWlscz1zR3QsZy5HYWxsZXJ5VmVydGljYWw9Y0d0LGcuR2FsbGVyeVZlcnRpY2FsRW5kPWxHdCxnLkdhbWVwYWQ9cEd0LGcuR2FtZXBhZDI9ZEd0LGcuR2FtZXBhZERpcmVjdGlvbmFsPXVHdCxnLkdhbnR0Q2hhcnQ9SEUsZy5HYW50dENoYXJ0U3F1YXJlPVlwLGcuR2F1Z2U9aEd0LGcuR2F1Z2VDaXJjbGU9cyQsZy5HYXZlbD1mR3QsZy5HZW09bUd0LGcuR2VvcmdpYW5MYXJpPWdHdCxnLkdob3N0PWJHdCxnLkdpZnQ9eUd0LGcuR2l0QnJhbmNoPXdHdCxnLkdpdEJyYW5jaE1pbnVzPXZHdCxnLkdpdEJyYW5jaFBsdXM9eEd0LGcuR2l0Q29tbWl0PWNJLGcuR2l0Q29tbWl0SG9yaXpvbnRhbD1jSSxnLkdpdENvbW1pdFZlcnRpY2FsPU1HdCxnLkdpdENvbXBhcmU9U0d0LGcuR2l0Q29tcGFyZUFycm93cz1rR3QsZy5HaXRGb3JrPXpHdCxnLkdpdEdyYXBoPUNHdCxnLkdpdE1lcmdlPVRHdCxnLkdpdFB1bGxSZXF1ZXN0PSRHdCxnLkdpdFB1bGxSZXF1ZXN0QXJyb3c9X0d0LGcuR2l0UHVsbFJlcXVlc3RDbG9zZWQ9TEd0LGcuR2l0UHVsbFJlcXVlc3RDcmVhdGU9REd0LGcuR2l0UHVsbFJlcXVlc3RDcmVhdGVBcnJvdz1BR3QsZy5HaXRQdWxsUmVxdWVzdERyYWZ0PUVHdCxnLkdpdGh1Yj1JR3QsZy5HaXRsYWI9UEd0LGcuR2xhc3NXYXRlcj1OR3QsZy5HbGFzc2VzPUZHdCxnLkdsb2JlPVJHdCxnLkdsb2JlMj1BJCxnLkdsb2JlTG9jaz1PR3QsZy5HbG9iZVg9Qkd0LGcuR29hbD1IR3QsZy5HcHU9cUd0LGcuR3JhYj1mSSxnLkdyYWR1YXRpb25DYXA9akd0LGcuR3JhcGU9Vkd0LGcuR3JpZD1VcCxnLkdyaWQyWDI9aEksZy5HcmlkMlgyQ2hlY2s9ZEksZy5HcmlkMlgyUGx1cz11SSxnLkdyaWQyWDJYPXBJLGcuR3JpZDJ4Mj1oSSxnLkdyaWQyeDJDaGVjaz1kSSxnLkdyaWQyeDJQbHVzPXVJLGcuR3JpZDJ4Mlg9cEksZy5HcmlkM1gzPVVwLGcuR3JpZDN4Mj1VR3QsZy5HcmlkM3gzPVVwLGcuR3JpcD1ZR3QsZy5HcmlwSG9yaXpvbnRhbD1XR3QsZy5HcmlwVmVydGljYWw9R0d0LGcuR3JvdXA9Wkd0LGcuR3VpdGFyPVhHdCxnLkhhbT1RR3QsZy5IYW1idXJnZXI9Skd0LGcuSGFtbWVyPUtHdCxnLkhhbmQ9bll0LGcuSGFuZENvaW5zPWVZdCxnLkhhbmRGaXN0PXRZdCxnLkhhbmRHcmFiPWZJLGcuSGFuZEhlYXJ0PXJZdCxnLkhhbmRIZWxwaW5nPW1JLGcuSGFuZE1ldGFsPWlZdCxnLkhhbmRQbGF0dGVyPWFZdCxnLkhhbmRiYWc9b1l0LGcuSGFuZHNoYWtlPXNZdCxnLkhhcmREcml2ZT1kWXQsZy5IYXJkRHJpdmVEb3dubG9hZD1sWXQsZy5IYXJkRHJpdmVVcGxvYWQ9Y1l0LGcuSGFyZEhhdD11WXQsZy5IYXNoPXBZdCxnLkhhdEdsYXNzZXM9aFl0LGcuSGF6ZT1mWXQsZy5IZD1tWXQsZy5IZG1pUG9ydD1nWXQsZy5IZWFkaW5nPWtZdCxnLkhlYWRpbmcxPWJZdCxnLkhlYWRpbmcyPXZZdCxnLkhlYWRpbmczPXhZdCxnLkhlYWRpbmc0PXlZdCxnLkhlYWRpbmc1PXdZdCxnLkhlYWRpbmc2PU1ZdCxnLkhlYWRwaG9uZU9mZj1TWXQsZy5IZWFkcGhvbmVzPXpZdCxnLkhlYWRzZXQ9VFl0LGcuSGVhcnQ9JFl0LGcuSGVhcnRDcmFjaz1DWXQsZy5IZWFydEhhbmRzaGFrZT1fWXQsZy5IZWFydE1pbnVzPUxZdCxnLkhlYXJ0T2ZmPUFZdCxnLkhlYXJ0UGx1cz1FWXQsZy5IZWFydFB1bHNlPURZdCxnLkhlYXRlcj1JWXQsZy5IZWxpY29wdGVyPVBZdCxnLkhlbHBDaXJjbGU9cXAsZy5IZWxwaW5nSGFuZD1tSSxnLkhleGFnb249Tll0LGcuSGlnaGxpZ2h0ZXI9Rll0LGcuSGlzdG9yeT1PWXQsZy5Ib21lPWdJLGcuSG9wPVJZdCxnLkhvcE9mZj1CWXQsZy5Ib3NwaXRhbD1IWXQsZy5Ib3RlbD1xWXQsZy5Ib3VyZ2xhc3M9all0LGcuSG91c2U9Z0ksZy5Ib3VzZUhlYXJ0PVZZdCxnLkhvdXNlUGx1Zz1VWXQsZy5Ib3VzZVBsdXM9V1l0LGcuSG91c2VXaWZpPUdZdCxnLkljZUNyZWFtPXZJLGcuSWNlQ3JlYW0yPWJJLGcuSWNlQ3JlYW1Cb3dsPWJJLGcuSWNlQ3JlYW1Db25lPXZJLGcuSWRDYXJkPVpZdCxnLklkQ2FyZExhbnlhcmQ9WVl0LGcuSW1hZ2U9clp0LGcuSW1hZ2VEb3duPVhZdCxnLkltYWdlTWludXM9UVl0LGcuSW1hZ2VPZmY9Sll0LGcuSW1hZ2VQbGF5PUtZdCxnLkltYWdlUGx1cz1lWnQsZy5JbWFnZVVwPXRadCxnLkltYWdlVXBzY2FsZT1pWnQsZy5JbWFnZXM9YVp0LGcuSW1wb3J0PW5adCxnLkluYm94PW9adCxnLkluZGVudD1HcCxnLkluZGVudERlY3JlYXNlPVdwLGcuSW5kZW50SW5jcmVhc2U9R3AsZy5JbmRpYW5SdXBlZT1zWnQsZy5JbmZpbml0eT1sWnQsZy5JbmZvPWNadCxnLkluc3BlY3Q9SVAsZy5JbnNwZWN0aW9uUGFuZWw9ZFp0LGcuSW5zdGFncmFtPXVadCxnLkl0YWxpYz1oWnQsZy5JdGVyYXRpb25DY3c9cFp0LGcuSXRlcmF0aW9uQ3c9Zlp0LGcuSmFwYW5lc2VZZW49bVp0LGcuSm95c3RpY2s9Z1p0LGcuS2FuYmFuPWJadCxnLkthbmJhblNxdWFyZT1MUCxnLkthbmJhblNxdWFyZURhc2hlZD1NUCxnLktheWFrPXZadCxnLktleT13WnQsZy5LZXlSb3VuZD14WnQsZy5LZXlTcXVhcmU9eVp0LGcuS2V5Ym9hcmQ9U1p0LGcuS2V5Ym9hcmRNdXNpYz1NWnQsZy5LZXlib2FyZE9mZj1rWnQsZy5MYW1wPUFadCxnLkxhbXBDZWlsaW5nPXpadCxnLkxhbXBEZXNrPUNadCxnLkxhbXBGbG9vcj1UWnQsZy5MYW1wV2FsbERvd249X1p0LGcuTGFtcFdhbGxVcD1MWnQsZy5MYW5kUGxvdD1FWnQsZy5MYW5kbWFyaz1EWnQsZy5MYW5ndWFnZXM9JFp0LGcuTGFwdG9wPVBadCxnLkxhcHRvcDI9eEksZy5MYXB0b3BNaW5pbWFsPXhJLGcuTGFwdG9wTWluaW1hbENoZWNrPUladCxnLkxhc3NvPUZadCxnLkxhc3NvU2VsZWN0PU5adCxnLkxhdWdoPU9adCxnLkxheWVycz15SSxnLkxheWVyczI9Ulp0LGcuTGF5ZXJzMz15SSxnLkxheWVyc1BsdXM9Qlp0LGcuTGF5b3V0PUJJLGcuTGF5b3V0RGFzaGJvYXJkPUhadCxnLkxheW91dEdyaWQ9cVp0LGcuTGF5b3V0TGlzdD1qWnQsZy5MYXlvdXRQYW5lbExlZnQ9Vlp0LGcuTGF5b3V0UGFuZWxUb3A9VVp0LGcuTGF5b3V0VGVtcGxhdGU9V1p0LGcuTGVhZj1HWnQsZy5MZWFmeUdyZWVuPVladCxnLkxlY3Rlcm49Wlp0LGcuTGV0dGVyVGV4dD1yTixnLkxpYnJhcnk9UVp0LGcuTGlicmFyeUJpZz1YWnQsZy5MaWJyYXJ5U3F1YXJlPUFQLGcuTGlmZUJ1b3k9Slp0LGcuTGlnYXR1cmU9S1p0LGcuTGlnaHRidWxiPXRYdCxnLkxpZ2h0YnVsYk9mZj1lWHQsZy5MaW5lQ2hhcnQ9T0UsZy5MaW5lU3F1aWdnbGU9clh0LGcuTGluaz1uWHQsZy5MaW5rMj1hWHQsZy5MaW5rMk9mZj1pWHQsZy5MaW5rZWRpbj1vWHQsZy5MaXN0PXpYdCxnLkxpc3RDaGVjaz1zWHQsZy5MaXN0Q2hlY2tzPWxYdCxnLkxpc3RDaGV2cm9uc0Rvd25VcD1jWHQsZy5MaXN0Q2hldnJvbnNVcERvd249ZFh0LGcuTGlzdENvbGxhcHNlPXVYdCxnLkxpc3RFbmQ9cFh0LGcuTGlzdEZpbHRlcj1mWHQsZy5MaXN0RmlsdGVyUGx1cz1oWHQsZy5MaXN0SW5kZW50RGVjcmVhc2U9V3AsZy5MaXN0SW5kZW50SW5jcmVhc2U9R3AsZy5MaXN0TWludXM9bVh0LGcuTGlzdE11c2ljPWdYdCxnLkxpc3RPcmRlcmVkPWJYdCxnLkxpc3RQbHVzPXZYdCxnLkxpc3RSZXN0YXJ0PXhYdCxnLkxpc3RTdGFydD15WHQsZy5MaXN0VG9kbz13WHQsZy5MaXN0VHJlZT1NWHQsZy5MaXN0VmlkZW89a1h0LGcuTGlzdFg9U1h0LGcuTG9hZGVyPUNYdCxnLkxvYWRlcjI9d0ksZy5Mb2FkZXJDaXJjbGU9d0ksZy5Mb2FkZXJQaW53aGVlbD1UWHQsZy5Mb2NhdGU9QVh0LGcuTG9jYXRlRml4ZWQ9X1h0LGcuTG9jYXRlT2ZmPUxYdCxnLkxvY2F0aW9uRWRpdD16SSxnLkxvY2s9RVh0LGcuTG9ja0tleWhvbGU9RFh0LGcuTG9ja0tleWhvbGVPcGVuPU1JLGcuTG9ja09wZW49a0ksZy5Mb2dJbj0kWHQsZy5Mb2dPdXQ9UFh0LGcuTG9ncz1JWHQsZy5Mb2xsaXBvcD1OWHQsZy5MdWdnYWdlPUZYdCxnLk1TcXVhcmU9RFAsZy5NYWduZXQ9T1h0LGcuTWFpbD1VWHQsZy5NYWlsQ2hlY2s9Ulh0LGcuTWFpbE1pbnVzPUJYdCxnLk1haWxPcGVuPUhYdCxnLk1haWxQbHVzPXFYdCxnLk1haWxRdWVzdGlvbj1TSSxnLk1haWxRdWVzdGlvbk1hcms9U0ksZy5NYWlsU2VhcmNoPWpYdCxnLk1haWxXYXJuaW5nPVZYdCxnLk1haWxYPVdYdCxnLk1haWxib3g9R1h0LGcuTWFpbHM9WVh0LGcuTWFwPWNRdCxnLk1hcE1pbnVzPVpYdCxnLk1hcFBpbj1vUXQsZy5NYXBQaW5DaGVjaz1RWHQsZy5NYXBQaW5DaGVja0luc2lkZT1YWHQsZy5NYXBQaW5Ib3VzZT1KWHQsZy5NYXBQaW5NaW51cz1lUXQsZy5NYXBQaW5NaW51c0luc2lkZT1LWHQsZy5NYXBQaW5PZmY9dFF0LGcuTWFwUGluUGVuPXpJLGcuTWFwUGluUGx1cz1pUXQsZy5NYXBQaW5QbHVzSW5zaWRlPXJRdCxnLk1hcFBpblg9blF0LGcuTWFwUGluWEluc2lkZT1hUXQsZy5NYXBQaW5uZWQ9c1F0LGcuTWFwUGx1cz1sUXQsZy5NYXJzPXVRdCxnLk1hcnNTdHJva2U9ZFF0LGcuTWFydGluaT1wUXQsZy5NYXhpbWl6ZT1mUXQsZy5NYXhpbWl6ZTI9aFF0LGcuTWVkYWw9bVF0LGcuTWVnYXBob25lPWJRdCxnLk1lZ2FwaG9uZU9mZj1nUXQsZy5NZWg9dlF0LGcuTWVtb3J5U3RpY2s9eVF0LGcuTWVudT14UXQsZy5NZW51U3F1YXJlPUVQLGcuTWVyZ2U9d1F0LGcuTWVzc2FnZUNpcmNsZT1EUXQsZy5NZXNzYWdlQ2lyY2xlQ29kZT1NUXQsZy5NZXNzYWdlQ2lyY2xlRGFzaGVkPWtRdCxnLk1lc3NhZ2VDaXJjbGVIZWFydD1TUXQsZy5NZXNzYWdlQ2lyY2xlTW9yZT16UXQsZy5NZXNzYWdlQ2lyY2xlT2ZmPUNRdCxnLk1lc3NhZ2VDaXJjbGVQbHVzPVRRdCxnLk1lc3NhZ2VDaXJjbGVRdWVzdGlvbj1DSSxnLk1lc3NhZ2VDaXJjbGVRdWVzdGlvbk1hcms9Q0ksZy5NZXNzYWdlQ2lyY2xlUmVwbHk9TFF0LGcuTWVzc2FnZUNpcmNsZVdhcm5pbmc9X1F0LGcuTWVzc2FnZUNpcmNsZVg9QVF0LGcuTWVzc2FnZVNxdWFyZT1HUXQsZy5NZXNzYWdlU3F1YXJlQ29kZT1FUXQsZy5NZXNzYWdlU3F1YXJlRGFzaGVkPSRRdCxnLk1lc3NhZ2VTcXVhcmVEaWZmPUlRdCxnLk1lc3NhZ2VTcXVhcmVEb3Q9UFF0LGcuTWVzc2FnZVNxdWFyZUhlYXJ0PU5RdCxnLk1lc3NhZ2VTcXVhcmVMb2NrPUZRdCxnLk1lc3NhZ2VTcXVhcmVNb3JlPU9RdCxnLk1lc3NhZ2VTcXVhcmVPZmY9UlF0LGcuTWVzc2FnZVNxdWFyZVBsdXM9QlF0LGcuTWVzc2FnZVNxdWFyZVF1b3RlPUhRdCxnLk1lc3NhZ2VTcXVhcmVSZXBseT1xUXQsZy5NZXNzYWdlU3F1YXJlU2hhcmU9alF0LGcuTWVzc2FnZVNxdWFyZVRleHQ9VlF0LGcuTWVzc2FnZVNxdWFyZVdhcm5pbmc9VVF0LGcuTWVzc2FnZVNxdWFyZVg9V1F0LGcuTWVzc2FnZXNTcXVhcmU9WVF0LGcuTWljPVhRdCxnLk1pYzI9VEksZy5NaWNPZmY9WlF0LGcuTWljVm9jYWw9VEksZy5NaWNyb2NoaXA9UVF0LGcuTWljcm9zY29wZT1KUXQsZy5NaWNyb3dhdmU9S1F0LGcuTWlsZXN0b25lPWVKdCxnLk1pbGs9aUp0LGcuTWlsa09mZj10SnQsZy5NaW5pbWl6ZT1hSnQsZy5NaW5pbWl6ZTI9ckp0LGcuTWludXM9bkp0LGcuTWludXNDaXJjbGU9bCQsZy5NaW51c1NxdWFyZT0kUCxnLk1vbml0b3I9eEp0LGcuTW9uaXRvckNoZWNrPW9KdCxnLk1vbml0b3JDbG91ZD1zSnQsZy5Nb25pdG9yQ29nPWxKdCxnLk1vbml0b3JEb3Q9Y0p0LGcuTW9uaXRvckRvd249ZEp0LGcuTW9uaXRvck9mZj11SnQsZy5Nb25pdG9yUGF1c2U9cEp0LGcuTW9uaXRvclBsYXk9aEp0LGcuTW9uaXRvclNtYXJ0cGhvbmU9Zkp0LGcuTW9uaXRvclNwZWFrZXI9bUp0LGcuTW9uaXRvclN0b3A9Z0p0LGcuTW9uaXRvclVwPWJKdCxnLk1vbml0b3JYPXZKdCxnLk1vb249d0p0LGcuTW9vblN0YXI9eUp0LGcuTW9yZUhvcml6b250YWw9RSQsZy5Nb3JlVmVydGljYWw9RCQsZy5Nb3RvcmJpa2U9TUp0LGcuTW91bnRhaW49U0p0LGcuTW91bnRhaW5Tbm93PWtKdCxnLk1vdXNlPURKdCxnLk1vdXNlT2ZmPXpKdCxnLk1vdXNlUG9pbnRlcj1BSnQsZy5Nb3VzZVBvaW50ZXIyPVRKdCxnLk1vdXNlUG9pbnRlcjJPZmY9Q0p0LGcuTW91c2VQb2ludGVyQmFuPV9KdCxnLk1vdXNlUG9pbnRlckNsaWNrPUxKdCxnLk1vdXNlUG9pbnRlclNxdWFyZURhc2hlZD1rUCxnLk1vdmU9Vkp0LGcuTW92ZTNEPV9JLGcuTW92ZTNkPV9JLGcuTW92ZURpYWdvbmFsPSRKdCxnLk1vdmVEaWFnb25hbDI9RUp0LGcuTW92ZURvd249Tkp0LGcuTW92ZURvd25MZWZ0PUlKdCxnLk1vdmVEb3duUmlnaHQ9UEp0LGcuTW92ZUhvcml6b250YWw9Rkp0LGcuTW92ZUxlZnQ9T0p0LGcuTW92ZVJpZ2h0PVJKdCxnLk1vdmVVcD1xSnQsZy5Nb3ZlVXBMZWZ0PUJKdCxnLk1vdmVVcFJpZ2h0PUhKdCxnLk1vdmVWZXJ0aWNhbD1qSnQsZy5NdXNpYz1ZSnQsZy5NdXNpYzI9VUp0LGcuTXVzaWMzPVdKdCxnLk11c2ljND1HSnQsZy5OYXZpZ2F0aW9uPVFKdCxnLk5hdmlnYXRpb24yPVhKdCxnLk5hdmlnYXRpb24yT2ZmPVpKdCxnLk5hdmlnYXRpb25PZmY9Skp0LGcuTmV0d29yaz1LSnQsZy5OZXdzcGFwZXI9ZUt0LGcuTmZjPXRLdCxnLk5vbkJpbmFyeT1yS3QsZy5Ob3RlYm9vaz1vS3QsZy5Ob3RlYm9va1Blbj1pS3QsZy5Ob3RlYm9va1RhYnM9YUt0LGcuTm90ZWJvb2tUZXh0PW5LdCxnLk5vdGVwYWRUZXh0PWxLdCxnLk5vdGVwYWRUZXh0RGFzaGVkPXNLdCxnLk51dD1jS3QsZy5OdXRPZmY9ZEt0LGcuT2N0YWdvbj1wS3QsZy5PY3RhZ29uQWxlcnQ9TEksZy5PY3RhZ29uTWludXM9dUt0LGcuT2N0YWdvblBhdXNlPUFJLGcuT2N0YWdvblg9REksZy5PbWVnYT1oS3QsZy5PcHRpb249bUt0LGcuT3JiaXQ9Zkt0LGcuT3JpZ2FtaT1nS3QsZy5PdXRkZW50PVdwLGcuUGFja2FnZT1TS3QsZy5QYWNrYWdlMj1iS3QsZy5QYWNrYWdlQ2hlY2s9dkt0LGcuUGFja2FnZU1pbnVzPXhLdCxnLlBhY2thZ2VPcGVuPXlLdCxnLlBhY2thZ2VQbHVzPXdLdCxnLlBhY2thZ2VTZWFyY2g9TUt0LGcuUGFja2FnZVg9a0t0LGcuUGFpbnRCdWNrZXQ9Q0t0LGcuUGFpbnRSb2xsZXI9ekt0LGcuUGFpbnRicnVzaD1US3QsZy5QYWludGJydXNoMj1FSSxnLlBhaW50YnJ1c2hWZXJ0aWNhbD1FSSxnLlBhbGV0dGU9X0t0LGcuUGFsbXRyZWU9b04sZy5QYW5kYT1MS3QsZy5QYW5lbEJvdHRvbT1FS3QsZy5QYW5lbEJvdHRvbUNsb3NlPUFLdCxnLlBhbmVsQm90dG9tRGFzaGVkPSRJLGcuUGFuZWxCb3R0b21JbmFjdGl2ZT0kSSxnLlBhbmVsQm90dG9tT3Blbj1ES3QsZy5QYW5lbExlZnQ9RkksZy5QYW5lbExlZnRDbG9zZT1JSSxnLlBhbmVsTGVmdERhc2hlZD1QSSxnLlBhbmVsTGVmdEluYWN0aXZlPVBJLGcuUGFuZWxMZWZ0T3Blbj1OSSxnLlBhbmVsTGVmdFJpZ2h0RGFzaGVkPSRLdCxnLlBhbmVsUmlnaHQ9Tkt0LGcuUGFuZWxSaWdodENsb3NlPUlLdCxnLlBhbmVsUmlnaHREYXNoZWQ9T0ksZy5QYW5lbFJpZ2h0SW5hY3RpdmU9T0ksZy5QYW5lbFJpZ2h0T3Blbj1QS3QsZy5QYW5lbFRvcD1CS3QsZy5QYW5lbFRvcEJvdHRvbURhc2hlZD1GS3QsZy5QYW5lbFRvcENsb3NlPU9LdCxnLlBhbmVsVG9wRGFzaGVkPVJJLGcuUGFuZWxUb3BJbmFjdGl2ZT1SSSxnLlBhbmVsVG9wT3Blbj1SS3QsZy5QYW5lbHNMZWZ0Qm90dG9tPUhLdCxnLlBhbmVsc0xlZnRSaWdodD1UJCxnLlBhbmVsc1JpZ2h0Qm90dG9tPXFLdCxnLlBhbmVsc1RvcEJvdHRvbT1HSSxnLlBhbmVsc1RvcExlZnQ9QkksZy5QYXBlcmNsaXA9akt0LGcuUGFyZW50aGVzZXM9Vkt0LGcuUGFya2luZ0NpcmNsZT1kJCxnLlBhcmtpbmdDaXJjbGVPZmY9YyQsZy5QYXJraW5nTWV0ZXI9VUt0LGcuUGFya2luZ1NxdWFyZT1OUCxnLlBhcmtpbmdTcXVhcmVPZmY9UFAsZy5QYXJ0eVBvcHBlcj1XS3QsZy5QYXVzZT1HS3QsZy5QYXVzZUNpcmNsZT11JCxnLlBhdXNlT2N0YWdvbj1BSSxnLlBhd1ByaW50PVlLdCxnLlBjQ2FzZT1aS3QsZy5QZW49cUksZy5QZW5Cb3g9RTQsZy5QZW5MaW5lPUhJLGcuUGVuT2ZmPVhLdCxnLlBlblNxdWFyZT1FNCxnLlBlblRvb2w9UUt0LGcuUGVuY2lsPXJlcixnLlBlbmNpbExpbmU9Skt0LGcuUGVuY2lsT2ZmPUtLdCxnLlBlbmNpbFJ1bGVyPWVlcixnLlBlbnRhZ29uPXRlcixnLlBlcmNlbnQ9aWVyLGcuUGVyY2VudENpcmNsZT1wJCxnLlBlcmNlbnREaWFtb25kPUwkLGcuUGVyY2VudFNxdWFyZT1PUCxnLlBlcnNvblN0YW5kaW5nPWFlcixnLlBoaWxpcHBpbmVQZXNvPW5lcixnLlBob25lPXBlcixnLlBob25lQ2FsbD1vZXIsZy5QaG9uZUZvcndhcmRlZD1zZXIsZy5QaG9uZUluY29taW5nPWxlcixnLlBob25lTWlzc2VkPWNlcixnLlBob25lT2ZmPWRlcixnLlBob25lT3V0Z29pbmc9dWVyLGcuUGk9aGVyLGcuUGlTcXVhcmU9RlAsZy5QaWFubz1mZXIsZy5QaWNrYXhlPW1lcixnLlBpY3R1cmVJblBpY3R1cmU9dmVyLGcuUGljdHVyZUluUGljdHVyZTI9Z2VyLGcuUGllQ2hhcnQ9cUUsZy5QaWdneUJhbms9YmVyLGcuUGlsY3Jvdz13ZXIsZy5QaWxjcm93TGVmdD14ZXIsZy5QaWxjcm93UmlnaHQ9eWVyLGcuUGlsY3Jvd1NxdWFyZT1SUCxnLlBpbGw9a2VyLGcuUGlsbEJvdHRsZT1NZXIsZy5QaW49emVyLGcuUGluT2ZmPVNlcixnLlBpcGV0dGU9Q2VyLGcuUGl6emE9VGVyLGcuUGxhbmU9QWVyLGcuUGxhbmVMYW5kaW5nPV9lcixnLlBsYW5lVGFrZW9mZj1MZXIsZy5QbGF5PURlcixnLlBsYXlDaXJjbGU9aCQsZy5QbGF5U3F1YXJlPUJQLGcuUGx1Zz0kZXIsZy5QbHVnMj1FZXIsZy5QbHVnWmFwPWpJLGcuUGx1Z1phcDI9akksZy5QbHVzPUllcixnLlBsdXNDaXJjbGU9ZiQsZy5QbHVzU3F1YXJlPUhQLGcuUG9ja2V0PUZlcixnLlBvY2tldEtuaWZlPVBlcixnLlBvZGNhc3Q9TmVyLGcuUG9pbnRlcj1SZXIsZy5Qb2ludGVyT2ZmPU9lcixnLlBvcGNvcm49QmVyLGcuUG9wc2ljbGU9SGVyLGcuUG91bmRTdGVybGluZz1xZXIsZy5Qb3dlcj1WZXIsZy5Qb3dlckNpcmNsZT1tJCxnLlBvd2VyT2ZmPWplcixnLlBvd2VyU3F1YXJlPXFQLGcuUHJlc2VudGF0aW9uPVdlcixnLlByaW50ZXI9WWVyLGcuUHJpbnRlckNoZWNrPVVlcixnLlByaW50ZXJYPUdlcixnLlByb2plY3Rvcj1aZXIsZy5Qcm9wb3J0aW9ucz1YZXIsZy5QdXp6bGU9UWVyLGcuUHlyYW1pZD1KZXIsZy5RckNvZGU9S2VyLGcuUXVvdGU9ZXRyLGcuUmFiYml0PXR0cixnLlJhZGFyPXJ0cixnLlJhZGlhdGlvbj1pdHIsZy5SYWRpY2FsPWF0cixnLlJhZGlvPXN0cixnLlJhZGlvUmVjZWl2ZXI9bnRyLGcuUmFkaW9Ub3dlcj1vdHIsZy5SYWRpdXM9bHRyLGcuUmFpbFN5bWJvbD1jdHIsZy5SYWluYm93PWR0cixnLlJhdD11dHIsZy5SYXRpbz1wdHIsZy5SZWNlaXB0PU10cixnLlJlY2VpcHRDZW50PWh0cixnLlJlY2VpcHRFdXJvPWZ0cixnLlJlY2VpcHRJbmRpYW5SdXBlZT1tdHIsZy5SZWNlaXB0SmFwYW5lc2VZZW49Z3RyLGcuUmVjZWlwdFBvdW5kU3Rlcmxpbmc9YnRyLGcuUmVjZWlwdFJ1c3NpYW5SdWJsZT12dHIsZy5SZWNlaXB0U3dpc3NGcmFuYz14dHIsZy5SZWNlaXB0VGV4dD15dHIsZy5SZWNlaXB0VHVya2lzaExpcmE9d3RyLGcuUmVjdGFuZ2xlQ2lyY2xlPWt0cixnLlJlY3RhbmdsZUVsbGlwc2lzPVZJLGcuUmVjdGFuZ2xlR29nZ2xlcz16dHIsZy5SZWN0YW5nbGVIb3Jpem9udGFsPVN0cixnLlJlY3RhbmdsZVZlcnRpY2FsPUN0cixnLlJlY3ljbGU9VHRyLGcuUmVkbz1BdHIsZy5SZWRvMj1MdHIsZy5SZWRvRG90PV90cixnLlJlZnJlc2hDY3c9RXRyLGcuUmVmcmVzaENjd0RvdD1EdHIsZy5SZWZyZXNoQ3c9SXRyLGcuUmVmcmVzaEN3T2ZmPSR0cixnLlJlZnJpZ2VyYXRvcj1QdHIsZy5SZWdleD1OdHIsZy5SZW1vdmVGb3JtYXR0aW5nPUZ0cixnLlJlcGVhdD1CdHIsZy5SZXBlYXQxPVJ0cixnLlJlcGVhdDI9T3RyLGcuUmVwbGFjZT1xdHIsZy5SZXBsYWNlQWxsPUh0cixnLlJlcGx5PVZ0cixnLlJlcGx5QWxsPWp0cixnLlJld2luZD1VdHIsZy5SaWJib249V3RyLGcuUm9ja2V0PUd0cixnLlJvY2tpbmdDaGFpcj1ZdHIsZy5Sb2xsZXJDb2FzdGVyPVp0cixnLlJvc2U9WHRyLGcuUm90YXRlM0Q9VUksZy5Sb3RhdGUzZD1VSSxnLlJvdGF0ZUNjdz1LdHIsZy5Sb3RhdGVDY3dLZXk9UXRyLGcuUm90YXRlQ2N3U3F1YXJlPUp0cixnLlJvdGF0ZUN3PXRycixnLlJvdGF0ZUN3U3F1YXJlPWVycixnLlJvdXRlPWlycixnLlJvdXRlT2ZmPXJycixnLlJvdXRlcj1hcnIsZy5Sb3dzPVdJLGcuUm93czI9V0ksZy5Sb3dzMz1HSSxnLlJvd3M0PW5ycixnLlJzcz1vcnIsZy5SdWxlcj1jcnIsZy5SdWxlckRpbWVuc2lvbkxpbmU9c3JyLGcuUnVzc2lhblJ1YmxlPWxycixnLlNhaWxib2F0PXVycixnLlNhbGFkPWRycixnLlNhbmR3aWNoPXBycixnLlNhdGVsbGl0ZT1mcnIsZy5TYXRlbGxpdGVEaXNoPWhycixnLlNhdWRpUml5YWw9bXJyLGcuU2F2ZT12cnIsZy5TYXZlQWxsPWdycixnLlNhdmVPZmY9YnJyLGcuU2NhbGU9eHJyLGcuU2NhbGUzRD1ZSSxnLlNjYWxlM2Q9WUksZy5TY2FsaW5nPXlycixnLlNjYW49THJyLGcuU2NhbkJhcmNvZGU9TXJyLGcuU2NhbkV5ZT13cnIsZy5TY2FuRmFjZT1rcnIsZy5TY2FuSGVhcnQ9U3JyLGcuU2NhbkxpbmU9enJyLGcuU2NhblFyQ29kZT1DcnIsZy5TY2FuU2VhcmNoPVRycixnLlNjYW5UZXh0PV9ycixnLlNjYXR0ZXJDaGFydD1qRSxnLlNjaG9vbD1BcnIsZy5TY2hvb2wyPWNOLGcuU2Npc3NvcnM9RXJyLGcuU2Npc3NvcnNMaW5lRGFzaGVkPURycixnLlNjaXNzb3JzU3F1YXJlPWpQLGcuU2Npc3NvcnNTcXVhcmVEYXNoZWRCb3R0b209ZlAsZy5TY29vdGVyPSRycixnLlNjcmVlblNoYXJlPVBycixnLlNjcmVlblNoYXJlT2ZmPUlycixnLlNjcm9sbD1OcnIsZy5TY3JvbGxUZXh0PUZycixnLlNlYXJjaD1qcnIsZy5TZWFyY2hBbGVydD1PcnIsZy5TZWFyY2hDaGVjaz1ScnIsZy5TZWFyY2hDb2RlPUJycixnLlNlYXJjaFNsYXNoPUhycixnLlNlYXJjaFg9cXJyLGcuU2VjdGlvbj1WcnIsZy5TZW5kPVdycixnLlNlbmRIb3Jpem9uYWw9WkksZy5TZW5kSG9yaXpvbnRhbD1aSSxnLlNlbmRUb0JhY2s9VXJyLGcuU2VwYXJhdG9ySG9yaXpvbnRhbD1ZcnIsZy5TZXBhcmF0b3JWZXJ0aWNhbD1HcnIsZy5TZXJ2ZXI9SnJyLGcuU2VydmVyQ29nPVpycixnLlNlcnZlckNyYXNoPVhycixnLlNlcnZlck9mZj1RcnIsZy5TZXR0aW5ncz1lMXIsZy5TZXR0aW5nczI9S3JyLGcuU2hhcGVzPXQxcixnLlNoYXJlPWkxcixnLlNoYXJlMj1yMXIsZy5TaGVldD1hMXIsZy5TaGVsbD1uMXIsZy5TaGllbGQ9bTFyLGcuU2hpZWxkQWxlcnQ9bzFyLGcuU2hpZWxkQmFuPXMxcixnLlNoaWVsZENoZWNrPWwxcixnLlNoaWVsZENsb3NlPVFJLGcuU2hpZWxkRWxsaXBzaXM9YzFyLGcuU2hpZWxkSGFsZj1kMXIsZy5TaGllbGRNaW51cz11MXIsZy5TaGllbGRPZmY9cDFyLGcuU2hpZWxkUGx1cz1oMXIsZy5TaGllbGRRdWVzdGlvbj1YSSxnLlNoaWVsZFF1ZXN0aW9uTWFyaz1YSSxnLlNoaWVsZFVzZXI9ZjFyLGcuU2hpZWxkWD1RSSxnLlNoaXA9YjFyLGcuU2hpcFdoZWVsPWcxcixnLlNoaXJ0PXYxcixnLlNob3BwaW5nQmFnPXgxcixnLlNob3BwaW5nQmFza2V0PXkxcixnLlNob3BwaW5nQ2FydD13MXIsZy5TaG92ZWw9TTFyLGcuU2hvd2VySGVhZD1rMXIsZy5TaHJlZGRlcj1TMXIsZy5TaHJpbXA9ejFyLGcuU2hyaW5rPUMxcixnLlNocnViPV8xcixnLlNodWZmbGU9VDFyLGcuU2lkZWJhcj1GSSxnLlNpZGViYXJDbG9zZT1JSSxnLlNpZGViYXJPcGVuPU5JLGcuU2lnbWE9TDFyLGcuU2lnbWFTcXVhcmU9VlAsZy5TaWduYWw9STFyLGcuU2lnbmFsSGlnaD1BMXIsZy5TaWduYWxMb3c9RDFyLGcuU2lnbmFsTWVkaXVtPUUxcixnLlNpZ25hbFplcm89JDFyLGcuU2lnbmF0dXJlPVAxcixnLlNpZ25wb3N0PUYxcixnLlNpZ25wb3N0QmlnPU4xcixnLlNpcmVuPU8xcixnLlNraXBCYWNrPVIxcixnLlNraXBGb3J3YXJkPUIxcixnLlNrdWxsPUgxcixnLlNsYWNrPXExcixnLlNsYXNoPWoxcixnLlNsYXNoU3F1YXJlPVVQLGcuU2xpY2U9VjFyLGcuU2xpZGVycz1KSSxnLlNsaWRlcnNIb3Jpem9udGFsPVUxcixnLlNsaWRlcnNWZXJ0aWNhbD1KSSxnLlNtYXJ0cGhvbmU9WTFyLGcuU21hcnRwaG9uZUNoYXJnaW5nPVcxcixnLlNtYXJ0cGhvbmVOZmM9RzFyLGcuU21pbGU9WDFyLGcuU21pbGVQbHVzPVoxcixnLlNuYWlsPVExcixnLlNub3dmbGFrZT1LMXIsZy5Tb2FwRGlzcGVuc2VyRHJvcGxldD1KMXIsZy5Tb2ZhPWVpcixnLlNvbGFyUGFuZWw9dGlyLGcuU29ydEFzYz13RSxnLlNvcnREZXNjPXZFLGcuU291cD1yaXIsZy5TcGFjZT1paXIsZy5TcGFkZT1haXIsZy5TcGFya2xlPW5pcixnLlNwYXJrbGVzPUtJLGcuU3BlYWtlcj1vaXIsZy5TcGVlY2g9c2lyLGcuU3BlbGxDaGVjaz1jaXIsZy5TcGVsbENoZWNrMj1saXIsZy5TcGxpbmU9dWlyLGcuU3BsaW5lUG9pbnRlcj1kaXIsZy5TcGxpdD1waXIsZy5TcGxpdFNxdWFyZUhvcml6b250YWw9V1AsZy5TcGxpdFNxdWFyZVZlcnRpY2FsPUdQLGcuU3Bvb2w9aGlyLGcuU3BvdGxpZ2h0PWZpcixnLlNwcmF5Q2FuPW1pcixnLlNwcm91dD1naXIsZy5TcXVhcmU9VGlyLGcuU3F1YXJlQWN0aXZpdHk9dFAsZy5TcXVhcmVBcnJvd0Rvd249aVAsZy5TcXVhcmVBcnJvd0Rvd25MZWZ0PWVQLGcuU3F1YXJlQXJyb3dEb3duUmlnaHQ9clAsZy5TcXVhcmVBcnJvd0xlZnQ9YVAsZy5TcXVhcmVBcnJvd091dERvd25MZWZ0PW5QLGcuU3F1YXJlQXJyb3dPdXREb3duUmlnaHQ9c1AsZy5TcXVhcmVBcnJvd091dFVwTGVmdD1vUCxnLlNxdWFyZUFycm93T3V0VXBSaWdodD1sUCxnLlNxdWFyZUFycm93UmlnaHQ9Y1AsZy5TcXVhcmVBcnJvd1VwPXBQLGcuU3F1YXJlQXJyb3dVcExlZnQ9ZFAsZy5TcXVhcmVBcnJvd1VwUmlnaHQ9dVAsZy5TcXVhcmVBc3Rlcmlzaz1oUCxnLlNxdWFyZUJvdHRvbURhc2hlZFNjaXNzb3JzPWZQLGcuU3F1YXJlQ2hhcnRHYW50dD1ZcCxnLlNxdWFyZUNoZWNrPWdQLGcuU3F1YXJlQ2hlY2tCaWc9bVAsZy5TcXVhcmVDaGV2cm9uRG93bj1iUCxnLlNxdWFyZUNoZXZyb25MZWZ0PXZQLGcuU3F1YXJlQ2hldnJvblJpZ2h0PXhQLGcuU3F1YXJlQ2hldnJvblVwPXlQLGcuU3F1YXJlQ29kZT13UCxnLlNxdWFyZURhc2hlZD1TUCxnLlNxdWFyZURhc2hlZEJvdHRvbT12aXIsZy5TcXVhcmVEYXNoZWRCb3R0b21Db2RlPWJpcixnLlNxdWFyZURhc2hlZEthbmJhbj1NUCxnLlNxdWFyZURhc2hlZE1vdXNlUG9pbnRlcj1rUCxnLlNxdWFyZURhc2hlZFRvcFNvbGlkPXhpcixnLlNxdWFyZURpdmlkZT16UCxnLlNxdWFyZURvdD1DUCxnLlNxdWFyZUVxdWFsPVRQLGcuU3F1YXJlRnVuY3Rpb249X1AsZy5TcXVhcmVHYW50dENoYXJ0PVlwLGcuU3F1YXJlS2FuYmFuPUxQLGcuU3F1YXJlTGlicmFyeT1BUCxnLlNxdWFyZU09RFAsZy5TcXVhcmVNZW51PUVQLGcuU3F1YXJlTWludXM9JFAsZy5TcXVhcmVNb3VzZVBvaW50ZXI9SVAsZy5TcXVhcmVQYXJraW5nPU5QLGcuU3F1YXJlUGFya2luZ09mZj1QUCxnLlNxdWFyZVBhdXNlPXlpcixnLlNxdWFyZVBlbj1FNCxnLlNxdWFyZVBlcmNlbnQ9T1AsZy5TcXVhcmVQaT1GUCxnLlNxdWFyZVBpbGNyb3c9UlAsZy5TcXVhcmVQbGF5PUJQLGcuU3F1YXJlUGx1cz1IUCxnLlNxdWFyZVBvd2VyPXFQLGcuU3F1YXJlUmFkaWNhbD1NaXIsZy5TcXVhcmVSb3VuZENvcm5lcj13aXIsZy5TcXVhcmVTY2lzc29ycz1qUCxnLlNxdWFyZVNpZ21hPVZQLGcuU3F1YXJlU2xhc2g9VVAsZy5TcXVhcmVTcGxpdEhvcml6b250YWw9V1AsZy5TcXVhcmVTcGxpdFZlcnRpY2FsPUdQLGcuU3F1YXJlU3F1YXJlPVNpcixnLlNxdWFyZVN0YWNrPWtpcixnLlNxdWFyZVN0YXI9emlyLGcuU3F1YXJlU3RvcD1DaXIsZy5TcXVhcmVUZXJtaW5hbD1ZUCxnLlNxdWFyZVVzZXI9WFAsZy5TcXVhcmVVc2VyUm91bmQ9WlAsZy5TcXVhcmVYPVFQLGcuU3F1YXJlc0V4Y2x1ZGU9X2lyLGcuU3F1YXJlc0ludGVyc2VjdD1MaXIsZy5TcXVhcmVzU3VidHJhY3Q9QWlyLGcuU3F1YXJlc1VuaXRlPURpcixnLlNxdWlyY2xlPSRpcixnLlNxdWlyY2xlRGFzaGVkPUVpcixnLlNxdWlycmVsPUlpcixnLlN0YW1wPVBpcixnLlN0YXI9T2lyLGcuU3RhckhhbGY9TmlyLGcuU3Rhck9mZj1GaXIsZy5TdGFycz1LSSxnLlN0ZXBCYWNrPVJpcixnLlN0ZXBGb3J3YXJkPUJpcixnLlN0ZXRob3Njb3BlPUhpcixnLlN0aWNrZXI9cWlyLGcuU3RpY2t5Tm90ZT1qaXIsZy5TdG9uZT1WaXIsZy5TdG9wQ2lyY2xlPWIkLGcuU3RvcmU9VWlyLGcuU3RyZXRjaEhvcml6b250YWw9V2lyLGcuU3RyZXRjaFZlcnRpY2FsPUdpcixnLlN0cmlrZXRocm91Z2g9WWlyLGcuU3Vic2NyaXB0PVppcixnLlN1YnRpdGxlcz1BRSxnLlN1bj1lYXIsZy5TdW5EaW09WGlyLGcuU3VuTWVkaXVtPVFpcixnLlN1bk1vb249SmlyLGcuU3VuU25vdz1LaXIsZy5TdW5yaXNlPXRhcixnLlN1bnNldD1yYXIsZy5TdXBlcnNjcmlwdD1pYXIsZy5Td2F0Y2hCb29rPWFhcixnLlN3aXNzRnJhbmM9bmFyLGcuU3dpdGNoQ2FtZXJhPW9hcixnLlN3b3JkPXNhcixnLlN3b3Jkcz1sYXIsZy5TeXJpbmdlPWNhcixnLlRhYmxlPWJhcixnLlRhYmxlMj1kYXIsZy5UYWJsZUNlbGxzTWVyZ2U9dWFyLGcuVGFibGVDZWxsc1NwbGl0PXBhcixnLlRhYmxlQ29sdW1uc1NwbGl0PWhhcixnLlRhYmxlQ29uZmlnPWpwLGcuVGFibGVPZkNvbnRlbnRzPWZhcixnLlRhYmxlUHJvcGVydGllcz1tYXIsZy5UYWJsZVJvd3NTcGxpdD1nYXIsZy5UYWJsZXQ9eGFyLGcuVGFibGV0U21hcnRwaG9uZT15YXIsZy5UYWJsZXRzPXdhcixnLlRhZz1NYXIsZy5UYWdzPWthcixnLlRhbGx5MT1TYXIsZy5UYWxseTI9emFyLGcuVGFsbHkzPUNhcixnLlRhbGx5ND1UYXIsZy5UYWxseTU9X2FyLGcuVGFuZ2VudD1MYXIsZy5UYXJnZXQ9QWFyLGcuVGVsZXNjb3BlPURhcixnLlRlbnQ9JGFyLGcuVGVudFRyZWU9RWFyLGcuVGVybWluYWw9SWFyLGcuVGVybWluYWxTcXVhcmU9WVAsZy5UZXN0VHViZT1QYXIsZy5UZXN0VHViZTI9SlAsZy5UZXN0VHViZURpYWdvbmFsPUpQLGcuVGVzdFR1YmVzPU5hcixnLlRleHQ9WnAsZy5UZXh0QWxpZ25DZW50ZXI9S1AsZy5UZXh0QWxpZ25FbmQ9ZU4sZy5UZXh0QWxpZ25KdXN0aWZ5PXROLGcuVGV4dEFsaWduU3RhcnQ9WnAsZy5UZXh0Q3Vyc29yPU9hcixnLlRleHRDdXJzb3JJbnB1dD1GYXIsZy5UZXh0SW5pdGlhbD1yTixnLlRleHRRdW90ZT1SYXIsZy5UZXh0U2VhcmNoPUJhcixnLlRleHRTZWxlY3Q9aU4sZy5UZXh0U2VsZWN0aW9uPWlOLGcuVGV4dFdyYXA9YU4sZy5UaGVhdGVyPUhhcixnLlRoZXJtb21ldGVyPVZhcixnLlRoZXJtb21ldGVyU25vd2ZsYWtlPXFhcixnLlRoZXJtb21ldGVyU3VuPWphcixnLlRodW1ic0Rvd249VWFyLGcuVGh1bWJzVXA9V2FyLGcuVGlja2V0PUthcixnLlRpY2tldENoZWNrPUdhcixnLlRpY2tldE1pbnVzPVlhcixnLlRpY2tldFBlcmNlbnQ9WmFyLGcuVGlja2V0UGx1cz1YYXIsZy5UaWNrZXRTbGFzaD1RYXIsZy5UaWNrZXRYPUphcixnLlRpY2tldHM9cm5yLGcuVGlja2V0c1BsYW5lPWVucixnLlRpbWVyPWFucixnLlRpbWVyT2ZmPXRucixnLlRpbWVyUmVzZXQ9aW5yLGcuVG9nZ2xlTGVmdD1ubnIsZy5Ub2dnbGVSaWdodD1vbnIsZy5Ub2lsZXQ9c25yLGcuVG9vbENhc2U9bG5yLGcuVG9vbGJveD1jbnIsZy5Ub3JuYWRvPWRucixnLlRvcnVzPXVucixnLlRvdWNocGFkPWhucixnLlRvdWNocGFkT2ZmPXBucixnLlRvd2VyQ29udHJvbD1mbnIsZy5Ub3lCcmljaz1tbnIsZy5UcmFjdG9yPWducixnLlRyYWZmaWNDb25lPWJucixnLlRyYWluPW5OLGcuVHJhaW5Gcm9udD14bnIsZy5UcmFpbkZyb250VHVubmVsPXZucixnLlRyYWluVHJhY2s9eW5yLGcuVHJhbUZyb250PW5OLGcuVHJhbnNnZW5kZXI9d25yLGcuVHJhc2g9a25yLGcuVHJhc2gyPU1ucixnLlRyZWVEZWNpZHVvdXM9U25yLGcuVHJlZVBhbG09b04sZy5UcmVlUGluZT16bnIsZy5UcmVlcz1DbnIsZy5UcmVsbG89VG5yLGcuVHJlbmRpbmdEb3duPV9ucixnLlRyZW5kaW5nVXA9QW5yLGcuVHJlbmRpbmdVcERvd249TG5yLGcuVHJpYW5nbGU9JG5yLGcuVHJpYW5nbGVBbGVydD1zTixnLlRyaWFuZ2xlRGFzaGVkPURucixnLlRyaWFuZ2xlUmlnaHQ9RW5yLGcuVHJvcGh5PVBucixnLlRydWNrPU5ucixnLlRydWNrRWxlY3RyaWM9SW5yLGcuVHVya2lzaExpcmE9Rm5yLGcuVHVybnRhYmxlPU9ucixnLlR1cnRsZT1SbnIsZy5Udj1IbnIsZy5UdjI9bE4sZy5Udk1pbmltYWw9bE4sZy5Udk1pbmltYWxQbGF5PUJucixnLlR3aXRjaD1xbnIsZy5Ud2l0dGVyPWpucixnLlR5cGU9VW5yLGcuVHlwZU91dGxpbmU9Vm5yLGcuVW1icmVsbGE9R25yLGcuVW1icmVsbGFPZmY9V25yLGcuVW5kZXJsaW5lPVlucixnLlVuZG89UW5yLGcuVW5kbzI9Wm5yLGcuVW5kb0RvdD1YbnIsZy5VbmZvbGRIb3Jpem9udGFsPUpucixnLlVuZm9sZFZlcnRpY2FsPUtucixnLlVuZ3JvdXA9ZW9yLGcuVW5pdmVyc2l0eT1jTixnLlVubGluaz10b3IsZy5VbmxpbmsyPXJvcixnLlVubG9jaz1rSSxnLlVubG9ja0tleWhvbGU9TUksZy5VbnBsdWc9aW9yLGcuVXBsb2FkPWFvcixnLlVwbG9hZENsb3VkPVMkLGcuVXNiPW5vcixnLlVzZXI9eW9yLGcuVXNlcjI9bU4sZy5Vc2VyQ2hlY2s9b29yLGcuVXNlckNoZWNrMj1kTixnLlVzZXJDaXJjbGU9eCQsZy5Vc2VyQ2lyY2xlMj12JCxnLlVzZXJDb2c9c29yLGcuVXNlckNvZzI9dU4sZy5Vc2VyS2V5PWxvcixnLlVzZXJMb2NrPWNvcixnLlVzZXJNaW51cz1kb3IsZy5Vc2VyTWludXMyPXBOLGcuVXNlclBlbj11b3IsZy5Vc2VyUGx1cz1wb3IsZy5Vc2VyUGx1czI9aE4sZy5Vc2VyUm91bmQ9bU4sZy5Vc2VyUm91bmRDaGVjaz1kTixnLlVzZXJSb3VuZENvZz11TixnLlVzZXJSb3VuZEtleT1ob3IsZy5Vc2VyUm91bmRNaW51cz1wTixnLlVzZXJSb3VuZFBlbj1tb3IsZy5Vc2VyUm91bmRQbHVzPWhOLGcuVXNlclJvdW5kU2VhcmNoPWdvcixnLlVzZXJSb3VuZFg9Zk4sZy5Vc2VyU2VhcmNoPWJvcixnLlVzZXJTcXVhcmU9WFAsZy5Vc2VyU3F1YXJlMj1aUCxnLlVzZXJTdGFyPXZvcixnLlVzZXJYPXhvcixnLlVzZXJYMj1mTixnLlVzZXJzPXdvcixnLlVzZXJzMj1nTixnLlVzZXJzUm91bmQ9Z04sZy5VdGVuc2lscz12TixnLlV0ZW5zaWxzQ3Jvc3NlZD1iTixnLlV0aWxpdHlQb2xlPU1vcixnLlZhbj1rb3IsZy5WYXJpYWJsZT1Tb3IsZy5WYXVsdD16b3IsZy5WZWN0b3JTcXVhcmU9Q29yLGcuVmVnYW49VG9yLGcuVmVuZXRpYW5NYXNrPV9vcixnLlZlbnVzPUFvcixnLlZlbnVzQW5kTWFycz1Mb3IsZy5WZXJpZmllZD1TRSxnLlZpYnJhdGU9RW9yLGcuVmlicmF0ZU9mZj1Eb3IsZy5WaWRlbz1Jb3IsZy5WaWRlb09mZj0kb3IsZy5WaWRlb3RhcGU9UG9yLGcuVmlldz1Ob3IsZy5Wb2ljZW1haWw9Rm9yLGcuVm9sbGV5YmFsbD1Pb3IsZy5Wb2x1bWU9Vm9yLGcuVm9sdW1lMT1Sb3IsZy5Wb2x1bWUyPUJvcixnLlZvbHVtZU9mZj1Ib3IsZy5Wb2x1bWVYPXFvcixnLlZvdGU9am9yLGcuV2FsbGV0PVdvcixnLldhbGxldDI9eE4sZy5XYWxsZXRDYXJkcz1Vb3IsZy5XYWxsZXRNaW5pbWFsPXhOLGcuV2FsbHBhcGVyPUdvcixnLldhbmQ9WW9yLGcuV2FuZDI9eU4sZy5XYW5kU3BhcmtsZXM9eU4sZy5XYXJlaG91c2U9Wm9yLGcuV2FzaGluZ01hY2hpbmU9WG9yLGcuV2F0Y2g9UW9yLGcuV2F2ZXM9dDJyLGcuV2F2ZXNBcnJvd0Rvd249Sm9yLGcuV2F2ZXNBcnJvd1VwPUtvcixnLldhdmVzTGFkZGVyPWUycixnLldheXBvaW50cz1yMnIsZy5XZWJjYW09aTJyLGcuV2ViaG9vaz1uMnIsZy5XZWJob29rT2ZmPWEycixnLldlaWdodD1sMnIsZy5XZWlnaHRUaWxkZT1vMnIsZy5XaGVhdD1jMnIsZy5XaGVhdE9mZj1zMnIsZy5XaG9sZVdvcmQ9ZDJyLGcuV2lmaT12MnIsZy5XaWZpQ29nPXUycixnLldpZmlIaWdoPXAycixnLldpZmlMb3c9aDJyLGcuV2lmaU9mZj1mMnIsZy5XaWZpUGVuPW0ycixnLldpZmlTeW5jPWcycixnLldpZmlaZXJvPWIycixnLldpbmQ9eTJyLGcuV2luZEFycm93RG93bj14MnIsZy5XaW5lPXcycixnLldpbmVPZmY9azJyLGcuV29ya2Zsb3c9TTJyLGcuV29ybT1TMnIsZy5XcmFwVGV4dD1hTixnLldyZW5jaD1UMnIsZy5YPXoycixnLlhDaXJjbGU9eSQsZy5YT2N0YWdvbj1ESSxnLlhTcXVhcmU9UVAsZy5Zb3V0dWJlPUMycixnLlphcD1MMnIsZy5aYXBPZmY9XzJyLGcuWm9vbUluPUQycixnLlpvb21PdXQ9QTJyLGcuY3JlYXRlRWxlbWVudD1XUHQsZy5jcmVhdGVJY29ucz1FMnIsZy5pY29ucz1FWnJ9KTt2YXIgWHAsJDJyLEkycj1wKCgpPT57eGUoKTtvcigpO1hwPWVyKHdOKCksMSksJDJyPSgpPT57bGV0IGU9T2JqZWN0LmtleXMoTU4uZmEpO2NvbnNvbGUubG9nKCJGaXJzdCBmZXcgTHVjaWRlIGtleXM6IixPYmplY3Qua2V5cyhYcCkuc2xpY2UoMCw1KSk7bGV0IHQ9T2JqZWN0LmtleXMoWHApLmZpbHRlcihuPT57bGV0IG89blswXT09PW5bMF0udG9VcHBlckNhc2UoKSYmblswXSE9PW5bMF0udG9Mb3dlckNhc2UoKSxzPXR5cGVvZiBYcFtuXT09ImZ1bmN0aW9uIixsPSFbImNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVJY29ucyIsImRlZmF1bHQiXS5pbmNsdWRlcyhuKTtyZXR1cm4gcyYmbyYmbH0pLm1hcChuPT5uLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpK24uc2xpY2UoMSkpO2lmKGNvbnNvbGUubG9nKGBGb3VuZCAke3QubGVuZ3RofSBMdWNpZGUgaWNvbnNgKSx0Lmxlbmd0aD09PTAmJihjb25zb2xlLmxvZygiVHJ5aW5nIGFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIGZpbmQgTHVjaWRlIGljb25zIiksWHAuaWNvbnMpKXtsZXQgbj1YcC5pY29uc3x8e307dC5wdXNoKC4uLk9iamVjdC5rZXlzKG4pKSxjb25zb2xlLmxvZyhgRm91bmQgJHt0Lmxlbmd0aH0gaWNvbnMgdmlhIGFsdGVybmF0aXZlIG1ldGhvZGApfWxldCByPSgpPT57bGV0IG49ZS5tYXAoYz0+YGZhOiR7Y31gKSxvPXQubWFwKGM9PmBsdWNpZGU6JHtjfWApLHM9Wy4uLm4sLi4ub10sbD1zLmpvaW4oYApgKTtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChsKS50aGVuKCgpPT57bGV0IHU9d2luZG93LmV2ZW50LmN1cnJlbnRUYXJnZXQsZD11LnRleHRDb250ZW50O3UudGV4dENvbnRlbnQ9YFx1MjcxMyBDb3BpZWQgJHtzLmxlbmd0aH0gaWNvbiBuYW1lcyFgLHNldFRpbWVvdXQoKCk9Pnt1LnRleHRDb250ZW50PWR9LDJlMyl9KX0saT1uPT57bGV0IG89bi50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCkscz1uLnRhcmdldC5jbG9zZXN0KCIuZGVtb0NvbnRhaW5lciIpO3MucXVlcnlTZWxlY3RvckFsbCgiLmljb25Db250YWluZXIiKS5mb3JFYWNoKGM9PntsZXQgdT1jLmdldEF0dHJpYnV0ZSgiZGF0YS1uYW1lIik7bz09PSIifHx1JiZ1LmluY2x1ZGVzKG8pP2MuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6Yy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pLHMucXVlcnlTZWxlY3RvckFsbCgiLnNlY3Rpb24tY29udGFpbmVyIikuZm9yRWFjaChjPT57bGV0IHU9Yy5xdWVyeVNlbGVjdG9yQWxsKCIuaWNvbkNvbnRhaW5lcjpub3QoLmhpZGRlbikiKS5sZW5ndGgsZD1jLnF1ZXJ5U2VsZWN0b3IoIi5pY29uLWNvdW50Iik7aWYoZCl7bGV0IGg9Yy5jbGFzc0xpc3QuY29udGFpbnMoImZhLXNlY3Rpb24iKT9lLmxlbmd0aDp0Lmxlbmd0aDtkLnRleHRDb250ZW50PXU9PT1oP2Ake2h9IGljb25zYDpgJHt1fSBvZiAke2h9IGljb25zYH19KX0sYT0obixvKT0+e2xldCBzPWAke299OiR7bn1gO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHMpLnRoZW4oKCk9PntsZXQgdT13aW5kb3cuZXZlbnQuY3VycmVudFRhcmdldC5xdWVyeVNlbGVjdG9yKCIuY29weS10b29sdGlwIik7dSYmKHUudGV4dENvbnRlbnQ9IkNvcGllZCEiLHNldFRpbWVvdXQoKCk9Pnt1LnRleHRDb250ZW50PSJDbGljayB0byBjb3B5In0sMmUzKSl9KX07cmV0dXJuIENgCiAgPHN0eWxlPgogICAgLmRlbW9Db250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBiYWNrZ3JvdW5kOiAjMTExMTExOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBmb250LXNpemU6IDMwcHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCAiSGVsdmV0aWNhIE5ldWUiLCBzYW5zLXNlcmlmOwogICAgfQogICAgCiAgICAuc2VhcmNoLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDEwcHg7CiAgICB9CiAgICAKICAgICNpY29uU2VhcmNoIHsKICAgICAgZmxleDogMTsKICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBjb2xvcjogI2ZmZjsKICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgIH0KICAgIAogICAgI2ljb25TZWFyY2g6Zm9jdXMgewogICAgICBvdXRsaW5lOiBub25lOwogICAgICBib3JkZXItY29sb3I6ICNlNDAwMmI7CiAgICB9CiAgICAKICAgIC5jb3B5LWFsbC1idXR0b24gewogICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICNlNDAwMmI7CiAgICAgIGNvbG9yOiAjZmZmOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogI2M0MDAxYjsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOwogICAgfQogICAgCiAgICAuY29weS1hbGwtYnV0dG9uOmFjdGl2ZSB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KICAgIAogICAgZGVlcy1pY29uIHsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICB9CgogICAgLmljb25Db250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBwYWRkaW5nOiAyMHB4IDE2cHggMHB4IDE2cHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7CiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQogICAgCiAgICAuaWNvbkNvbnRhaW5lcjpob3ZlciB7CiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgICB9CgogICAgLmljb25OYW1lIHsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGNvbG9yOiAjY2NjOwogICAgICBiYWNrZ3JvdW5kOiAjMzMzMzMzOwogICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgbWFyZ2luLWxlZnQ6IC0xNnB4OwogICAgICBtYXJnaW4tcmlnaHQ6IC0xNnB4OwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgbWF4LXdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgbWFyZ2luOiAyMHB4IDA7CiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzMzMzsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogICAgCiAgICAuYXBpLW5vdGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjZTQwMDJiOwogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBwYWRkaW5nOiAxMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTQwMDJiOwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI4LCAwLCA0MywgMC4xKTsKICAgIH0KICAgIAogICAgLmljb24tY291bnQgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAjODg4OwogICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICBiYWNrZ3JvdW5kOiAjMjIyOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgIH0KICAgIAogICAgLmljb25zLWdyaWQgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgIH0KICAgIAogICAgLmNvcHktdG9vbHRpcCB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYmFja2dyb3VuZDogIzMzMzsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBwYWRkaW5nOiA1cHggMTBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIHRvcDogLTMwcHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB9CiAgICAKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIC5jb3B5LXRvb2x0aXAgewogICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIC5pY29uQ29udGFpbmVyOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgIH0KICAgIAogICAgLmhpZGRlbiB7CiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW9Db250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VhcmNoLWNvbnRhaW5lciI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaWNvblNlYXJjaCIgcGxhY2Vob2xkZXI9IlNlYXJjaCBpY29ucy4uLiIgQGlucHV0PSR7aX0+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvcHktYWxsLWJ1dHRvbiIgQGNsaWNrPSR7cn0+8J+TiyBDb3B5IEFsbCBJY29uIE5hbWVzPC9idXR0b24+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iYXBpLW5vdGUiPgogICAgICBOZXcgQVBJOiBVc2UgPGNvZGU+aWNvbj0iZmE6aWNvbk5hbWUiPC9jb2RlPiBvciA8Y29kZT5pY29uPSJsdWNpZGU6aWNvbk5hbWUiPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmljb25GQTwvY29kZT4uIAogICAgICBDbGljayBhbnkgaWNvbiB0byBjb3B5IGl0cyBuZXcgZm9ybWF0IHRvIGNsaXBib2FyZC4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWNvbnRhaW5lciBmYS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgRm9udEF3ZXNvbWUgSWNvbnMKICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1jb3VudCI+JHtlLmxlbmd0aH0gaWNvbnM8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpY29ucy1ncmlkIj4KICAgICAgICAke2UubWFwKG49PntsZXQgbz1gZmE6JHtufWA7cmV0dXJuIENgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbkNvbnRhaW5lciBmYS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5hKG4sImZhIil9PgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke299IGljb25TaXplPSIyNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uTmFtZSI+ZmE6JHtufTwvZGl2PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdG9vbHRpcCI+Q2xpY2sgdG8gY29weTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tY29udGFpbmVyIGx1Y2lkZS1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+CiAgICAgICAgTHVjaWRlIEljb25zCiAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tY291bnQiPiR7dC5sZW5ndGh9IGljb25zPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaWNvbnMtZ3JpZCI+CiAgICAgICAgJHt0Lm1hcChuPT57bGV0IG89YGx1Y2lkZToke259YDtyZXR1cm4gQ2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uQ29udGFpbmVyIGx1Y2lkZS1pY29uIiBkYXRhLW5hbWU9JHtuLnRvTG93ZXJDYXNlKCl9IEBjbGljaz0keygpPT5hKG4sImx1Y2lkZSIpfT4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtvfSBpY29uU2l6ZT0iMjQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbk5hbWUiPmx1Y2lkZToke259PC9kaXY+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29weS10b29sdGlwIj5DbGljayB0byBjb3B5PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CiAgYH19KTtmdW5jdGlvbiBJWnIoKXtKcC5zaXplPlAyciYmQXJyYXkuZnJvbShKcC5rZXlzKCkpLnNsaWNlKDAsUDJyLzUpLmZvckVhY2godD0+SnAuZGVsZXRlKHQpKX12YXIga04sWDNlLFFwLHoyLCRacixNTixKcCxQMnIsTjJyLG9yPXAoKCk9Pnt4ZSgpO0t0KCk7SmUoKTtMaXQoKTtJM3QoKTtLNXQoKTtqUHQoKTtJMnIoKTtrTj1lcih3TigpLDEpLFgzZT1lcih3TigpLDEpLFFwPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sejI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LCRacj17YXJyb3dSaWdodDpzRSxhcnJvd1VwUmlnaHRGcm9tU3F1YXJlOnJiLGJlbGw6WkQsYnVnOmRFLGJ1aWxkaW5nOmFFLGNhcmV0TGVmdDpKRCxjYXJldFJpZ2h0OllELGNoZWNrOm9FLGNpcmNsZUluZm86YWIsY2lyY2xlQ2hlY2s6Q2csY2lyY2xlQ2hlY2tTb2xpZDpKZyxjaXJjbGVYbWFyazpQcCxjaXJjbGVYbWFya1NvbGlkOkJwLGNsb2NrUm90YXRlTGVmdDpLZyxjb3B5OlhBLGNvcHlTb2xpZDp1RSxkZXNrdG9wOmliLGV5ZTpRRCxleWVTbGFzaDpwRSxmaWxlSW52b2ljZTpsRSxmaWxlSW52b2ljZURvbGxlcjpjRSxnZWFyOlhnLGdyaXA6SHAsbWFnbmlmeWluZ0dsYXNzOkdnLG1lc3NhZ2U6U2csbWVzc2FnZVNvbGlkOlVnLG1vbmV5Q2hlY2tEb2xsYXI6dGIsbXVnSG90OmhFLG1pbnVzOlZnLG5ldHdvcmtXaXJlZDpyRSxwYXBlcmNsaXA6bkUscGFzdGU6a2cscGFzdGVTb2xpZDpqZyxwZW5Ub1NxdWFyZTpZZyxwbHVzOmViLHJlY2VpcHQ6S0QscnNzOldnLHNoYXJlOlpnLHN1bjpaQSxzdW5Tb2xpZDp0RSx0ZXJtaW5hbDppRSx0cmFzaDpuYix0cmFzaFNvbGlkOm5iLHRyYXNoQ2FuOnpnLHRyYXNoQ2FuU29saWQ6UWcsdXNlcnM6ZUUsd2FsbGV0OlhELHhtYXJrOkQ0LGZhY2Vib29rOk5BLGdvb2dsZTpJQSxpbnN0YWdyYW06UkEsbGlua2VkaW46UEEsbWVkaXVtOnlnLHNsYWNrOkZBLHRpa3RvazpPQSx0d2l0dGVyOkJBfSxNTj17ZmE6JFpyfSxKcD1uZXcgTWFwLFAycj01MDA7TjJyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pY29uIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nLGNvbnZlcnRlcjp7ZnJvbUF0dHJpYnV0ZTpNPT5NLHRvQXR0cmlidXRlOk09Pk19fSldLGw9W2ooe3R5cGU6U3RyaW5nLGNvbnZlcnRlcjp7ZnJvbUF0dHJpYnV0ZTpNPT5NLHRvQXR0cmlidXRlOk09Pk19fSldLGQ9W2ooe3R5cGU6TnVtYmVyfSldLHg9W2ooe3R5cGU6U3RyaW5nfSldLHk9W2ooe3R5cGU6TnVtYmVyfSldLFFwKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvbkZBIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iaWNvbkZBImluIE0sZ2V0Ok09Pk0uaWNvbkZBLHNldDooTSxGKT0+e00uaWNvbkZBPUZ9fSxtZXRhZGF0YTp6fSxvLHMpLFFwKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaWNvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+Imljb24iaW4gTSxnZXQ6TT0+TS5pY29uLHNldDooTSxGKT0+e00uaWNvbj1GfX0sbWV0YWRhdGE6en0sYyx1KSxRcCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25TaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iaWNvblNpemUiaW4gTSxnZXQ6TT0+TS5pY29uU2l6ZSxzZXQ6KE0sRik9PntNLmljb25TaXplPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLFFwKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJjb2xvciJpbiBNLGdldDpNPT5NLmNvbG9yLHNldDooTSxGKT0+e00uY29sb3I9Rn19LG1ldGFkYXRhOnp9LHYsYiksUXAodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdHJva2VXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InN0cm9rZVdpZHRoImluIE0sZ2V0Ok09Pk0uc3Ryb2tlV2lkdGgsc2V0OihNLEYpPT57TS5zdHJva2VXaWR0aD1GfX0sbWV0YWRhdGE6en0sdyxrKSxRcChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp6fSxudWxsLHIpLE89aT10LnZhbHVlLHomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfXN0YXRpYyBkZW1vPSQycjtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTsjZT16Mih0aGlzLG8sdm9pZCAwKTtnZXQgaWNvbkZBKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGljb25GQSh6KXt0aGlzLiNlPXp9I3Q9KHoyKHRoaXMscyksejIodGhpcyxjLHZvaWQgMCkpO2dldCBpY29uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGljb24oeil7dGhpcy4jdD16fSNyPSh6Mih0aGlzLHUpLHoyKHRoaXMsaCx2b2lkIDApKTtnZXQgaWNvblNpemUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgaWNvblNpemUoeil7dGhpcy4jcj16fSNpPSh6Mih0aGlzLGYpLHoyKHRoaXMsdiwiY3VycmVudENvbG9yIikpO2dldCBjb2xvcigpe3JldHVybiB0aGlzLiNpfXNldCBjb2xvcih6KXt0aGlzLiNpPXp9I2E9KHoyKHRoaXMsYiksejIodGhpcyx3LDIpKTtnZXQgc3Ryb2tlV2lkdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc3Ryb2tlV2lkdGgoeil7dGhpcy4jYT16fWxhc3RJY29uPSh6Mih0aGlzLGspLG51bGwpO2xhc3RJY29uU2l6ZT1udWxsO2xhc3RDb2xvcj1udWxsO2xhc3RTdHJva2VXaWR0aD1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxkMS5zZXR1cCgpfWdldEVmZmVjdGl2ZUljb24oKXtyZXR1cm4gdGhpcy5pY29uP3RoaXMuaWNvbjp0aGlzLmljb25GQT90aGlzLmljb25GQS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/dGhpcy5pY29uRkE6YGZhOiR7dGhpcy5pY29uRkF9YDpudWxsfXBhcnNlSWNvblN0cmluZyh6KXtsZXQgTT16LnRvTG93ZXJDYXNlKCk7cmV0dXJuIE0uc3RhcnRzV2l0aCgiZmE6Iik/e3R5cGU6ImZhIixuYW1lOnouc3Vic3RyaW5nKDMpfTpNLnN0YXJ0c1dpdGgoImx1Y2lkZToiKT97dHlwZToibHVjaWRlIixuYW1lOnouc3Vic3RyaW5nKDcpfTp7dHlwZToibHVjaWRlIixuYW1lOnp9fXJlbmRlckx1Y2lkZUljb24oeil7bGV0IE09YGx1Y2lkZToke3p9OiR7dGhpcy5pY29uU2l6ZX06JHt0aGlzLmNvbG9yfToke3RoaXMuc3Ryb2tlV2lkdGh9YDtpZihKcC5oYXMoTSkpcmV0dXJuIEpwLmdldChNKXx8IiI7dHJ5e2xldCBGPXouY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrei5zbGljZSgxKTtpZigha05bRl0pcmV0dXJuIGNvbnNvbGUud2FybihgTHVjaWRlIGljb24gJyR7Rn0nIG5vdCBmb3VuZCBpbiBsdWNpZGVJY29ucyBvYmplY3RgKSwiIjtsZXQgRD0oMCxYM2UuY3JlYXRlRWxlbWVudCkoa05bRl0se2NvbG9yOnRoaXMuY29sb3Isc2l6ZTp0aGlzLmljb25TaXplLHN0cm9rZVdpZHRoOnRoaXMuc3Ryb2tlV2lkdGh9KTtpZighRClyZXR1cm4gY29uc29sZS53YXJuKGBjcmVhdGVFbGVtZW50IHJldHVybmVkIGVtcHR5IHJlc3VsdCBmb3IgJHtGfWApLCIiO2xldCBOPUQub3V0ZXJIVE1MO3JldHVybiBKcC5zZXQoTSxOKSxJWnIoKSxOfWNhdGNoKEYpe3JldHVybiBjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgTHVjaWRlIGljb24gJHt6fTpgLEYpLGA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IiR7dGhpcy5pY29uU2l6ZX0iIGhlaWdodD0iJHt0aGlzLmljb25TaXplfSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiR7dGhpcy5jb2xvcn0iIHN0cm9rZS13aWR0aD0iJHt0aGlzLnN0cm9rZVdpZHRofSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgICAgICA8dGV4dCB4PSI1MCUiIHk9IjUwJSIgZm9udC1zaXplPSI2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiBmaWxsPSIke3RoaXMuY29sb3J9Ij4ke3p9PC90ZXh0PgogICAgICA8L3N2Zz5gfX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgIH0KCiAgICAgIC8qIEltcHJvdmUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlICovCiAgICAgICNpY29uQ29udGFpbmVyIHN2ZyB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIEhlbHBzIHdpdGggYW5pbWF0aW9ucyAqLwogICAgICAgIGNvbnRhaW46IHN0cmljdDsgLyogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uICovCiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICAke2QxLnN0eWxlc30KICAgICAgPHN0eWxlPgogICAgICAgICNpY29uQ29udGFpbmVyIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuaWNvblNpemV9cHg7CiAgICAgICAgICBoZWlnaHQ6ICR7dGhpcy5pY29uU2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgaWQ9Imljb25Db250YWluZXIiPjwvZGl2PgogICAgYH11cGRhdGVkKCl7dGhpcy5pY29uU2l6ZXx8KHRoaXMuaWNvblNpemU9cGFyc2VJbnQoZ2xvYmFsVGhpcy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpLmZvbnRTaXplLnJlcGxhY2UoL1xEL2csIiIpKSk7bGV0IHo9dGhpcy5nZXRFZmZlY3RpdmVJY29uKCk7aWYodGhpcy5sYXN0SWNvbj09PXomJnRoaXMubGFzdEljb25TaXplPT09dGhpcy5pY29uU2l6ZSYmdGhpcy5sYXN0Q29sb3I9PT10aGlzLmNvbG9yJiZ0aGlzLmxhc3RTdHJva2VXaWR0aD09PXRoaXMuc3Ryb2tlV2lkdGgpcmV0dXJuO3RoaXMubGFzdEljb249eix0aGlzLmxhc3RJY29uU2l6ZT10aGlzLmljb25TaXplLHRoaXMubGFzdENvbG9yPXRoaXMuY29sb3IsdGhpcy5sYXN0U3Ryb2tlV2lkdGg9dGhpcy5zdHJva2VXaWR0aDtsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIiNpY29uQ29udGFpbmVyIik7aWYoISghTXx8IXopKXRyeXtsZXR7dHlwZTpGLG5hbWU6RH09dGhpcy5wYXJzZUljb25TdHJpbmcoeik7aWYoRj09PSJsdWNpZGUiKXtNLmlubmVySFRNTD0iIjt0cnl7bGV0IE49RC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStELnNsaWNlKDEpO2lmKGtOW05dKXtsZXQgUj0oMCxYM2UuY3JlYXRlRWxlbWVudCkoa05bTl0se2NvbG9yOnRoaXMuY29sb3Isc2l6ZTp0aGlzLmljb25TaXplLHN0cm9rZVdpZHRoOnRoaXMuc3Ryb2tlV2lkdGh9KTtpZihSKXtNLmFwcGVuZENoaWxkKFIpO3JldHVybn19dGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIGVsZW1lbnQgZm9yICR7Tn1gKX1jYXRjaChOKXtjb25zb2xlLmVycm9yKCJFcnJvciByZW5kZXJpbmcgTHVjaWRlIGljb246IixOKTtsZXQgUj10aGlzLnJlbmRlckx1Y2lkZUljb24oRCk7UiYmKE0uaW5uZXJIVE1MPVIpfX1lbHNle2xldCBOPU1OLmZhW0RdO2lmKE4pe2xldCBSPUZhZShOKS5odG1sWzBdO00uaW5uZXJIVE1MPVJ9ZWxzZSBjb25zb2xlLndhcm4oYEZvbnRBd2Vzb21lIGljb24gbm90IGZvdW5kOiAke0R9YCl9fWNhdGNoKEYpe2NvbnNvbGUuZXJyb3IoYEVycm9yIHVwZGF0aW5nIGljb24gJHt6fTpgLEYpfX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5sYXN0SWNvbj1udWxsLHRoaXMubGFzdEljb25TaXplPW51bGwsdGhpcy5sYXN0Q29sb3I9bnVsbCx0aGlzLmxhc3RTdHJva2VXaWR0aD1udWxsfXN0YXRpY3t6MihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgRjJyLFEzZSxTcixNaT1wKCgpPT57d2koKTtZcnQoKTt4ZSgpO0t0KCk7cGMoKTt4bygpO29yKCk7SmUoKTtGMnI9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxRM2U9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1jb250ZXh0bWVudSIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLEYycih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+Im1lbnVJdGVtcyJpbiB1LGdldDp1PT51Lm1lbnVJdGVtcyxzZXQ6KHUsZCk9Pnt1Lm1lbnVJdGVtcz1kfX0sbWV0YWRhdGE6Y30sbyxzKSxGMnIobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1HcnQ7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGNvbnRleHRNZW51RGVhY3RpdmF0ZWQ9ITE7c3RhdGljIGFjY3VtdWxhdGVkTWVudUl0ZW1zPVtdO3N0YXRpYyBpbml0aWFsaXplR2xvYmFsTGlzdGVuZXIoKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsYz0+e2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47Yy5wcmV2ZW50RGVmYXVsdCgpLGwuYWNjdW11bGF0ZWRNZW51SXRlbXM9W107bGV0IHU9Yy5jb21wb3NlZFBhdGgoKTtmb3IobGV0IGQgb2YgdSlpZihkLmdldENvbnRleHRNZW51SXRlbXMpe2xldCBoPWQuZ2V0Q29udGV4dE1lbnVJdGVtcygpO2gmJmgubGVuZ3RoPjAmJihsLmFjY3VtdWxhdGVkTWVudUl0ZW1zLmxlbmd0aD4wJiZsLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goe2RpdmlkZXI6ITB9KSxsLmFjY3VtdWxhdGVkTWVudUl0ZW1zLnB1c2goLi4uaCkpfWwub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoYyxsLmFjY3VtdWxhdGVkTWVudUl0ZW1zKX0pfXN0YXRpYyBhc3luYyBvcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhjLHUpe2lmKHRoaXMuY29udGV4dE1lbnVEZWFjdGl2YXRlZClyZXR1cm47Yy5wcmV2ZW50RGVmYXVsdCgpLGMuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IGQ9bmV3IGw7ZC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGQuc3R5bGUuekluZGV4PVN0cmluZyhmaS5vdmVybGF5LmNvbnRleHRNZW51KSxkLnN0eWxlLm9wYWNpdHk9IjAiLGQuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIsZC5tZW51SXRlbXM9dSxkLndpbmRvd0xheWVyPWF3YWl0ICRvLmNyZWF0ZUFuZFNob3coKSxkLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYyB5PT57eS50YXJnZXQuY2xvc2VzdCgiZGVlcy1jb250ZXh0bWVudSIpfHxhd2FpdCBkLmRlc3Ryb3koKX0pLGRvY3VtZW50LmJvZHkuYXBwZW5kKGQpLGF3YWl0IGp0LnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMCk7bGV0IGg9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPXdpbmRvdy5pbm5lcldpZHRoLHg9d2luZG93LmlubmVySGVpZ2h0LHY9Yy5jbGllbnRZLGI9Yy5jbGllbnRYO2IraC53aWR0aD5mJiYoYj1mLWgud2lkdGgtMTApLHYraC5oZWlnaHQ+eCYmKHY9eC1oLmhlaWdodC0xMCksYjwxMCYmKGI9MTApLHY8MTAmJih2PTEwKSxkLnN0eWxlLnRvcD1gJHt2fXB4YCxkLnN0eWxlLmxlZnQ9YCR7Yn1weGAsZC5zdHlsZS50cmFuc2Zvcm1PcmlnaW49InRvcCBsZWZ0Iixhd2FpdCBqdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLGQuc3R5bGUub3BhY2l0eT0iMSIsZC5zdHlsZS50cmFuc2Zvcm09InNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkifSNlPVEzZSh0aGlzLG8sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKGMpe3RoaXMuI2U9Y313aW5kb3dMYXllcj1RM2UodGhpcyxzKTtzdWJtZW51PW51bGw7c3VibWVudVRpbWVvdXQ9bnVsbDtwYXJlbnRNZW51PW51bGw7aXNEZXN0cm95aW5nPSExO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnRhYkluZGV4PTB9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgbWluLXdpZHRoOiAyMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDI4MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBwYWRkaW5nOiA0cHggMDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLm1lbnVpdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWVudWl0ZW0uaGFzLXN1Ym1lbnU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAn4oC6JzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDhweDsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAubWVudWl0ZW06YWN0aXZlOm5vdCguaGFzLXN1Ym1lbnUpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tZW51aXRlbS5kaXNhYmxlZCB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51aXRlbS10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubWVudWl0ZW0tc2hvcnRjdXQgewogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgfQoKICAgICAgLm1lbnUtZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcChjPT57aWYoImRpdmlkZXIiaW4gYyYmYy5kaXZpZGVyKXJldHVybiBDYDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgdT1jLGQ9dS5zdWJtZW51JiZ1LnN1Ym1lbnUubGVuZ3RoPjA7cmV0dXJuIENgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9Im1lbnVpdGVtICR7dS5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSAke2Q/Imhhcy1zdWJtZW51IjoiIn0iIAogICAgICAgICAgICAgIEBjbGljaz0keygpPT4hdS5kaXNhYmxlZCYmIWQmJnRoaXMuaGFuZGxlQ2xpY2sodSl9CiAgICAgICAgICAgICAgQG1vdXNlZW50ZXI9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUhvdmVyKHUsZCl9CiAgICAgICAgICAgICAgQG1vdXNlbGVhdmU9JHsoKT0+dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3UuaWNvbk5hbWU/Q2AKICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dS5pY29uTmFtZX0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnVpdGVtLXRleHQiPiR7dS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAke3Uuc2hvcnRjdXQmJiFkP0NgCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tc2hvcnRjdXQiPiR7dS5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSl9CiAgICAgICAgJHt0aGlzLm1lbnVJdGVtcy5sZW5ndGg9PT0wP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnVpdGVtIiBAY2xpY2s9JHsoKT0+e2wuY29udGV4dE1lbnVEZWFjdGl2YXRlZD0hMCx0aGlzLmRlc3Ryb3koKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249Imx1Y2lkZTp4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWVudWl0ZW0tdGV4dCI+QWxsb3cgbmF0aXZlIGNvbnRleHQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6Q2BgfQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5mb2N1cygpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5oYW5kbGVLZXlkb3duKX1oYW5kbGVLZXlkb3duPWM9PntsZXQgdT1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudWl0ZW06bm90KC5kaXNhYmxlZCkiKSksZD11LmZpbmRJbmRleChoPT5oLm1hdGNoZXMoIjpob3ZlciIpKTtzd2l0Y2goYy5rZXkpe2Nhc2UiQXJyb3dEb3duIjpjLnByZXZlbnREZWZhdWx0KCk7bGV0IGg9ZCsxPHUubGVuZ3RoP2QrMTowO3VbaF0uZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgibW91c2VlbnRlciIpKTticmVhaztjYXNlIkFycm93VXAiOmMucHJldmVudERlZmF1bHQoKTtsZXQgZj1kLTE+PTA/ZC0xOnUubGVuZ3RoLTE7dVtmXS5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJtb3VzZWVudGVyIikpO2JyZWFrO2Nhc2UiRW50ZXIiOmMucHJldmVudERlZmF1bHQoKSxkPj0wJiZ1W2RdLmNsaWNrKCk7YnJlYWs7Y2FzZSJFc2NhcGUiOmMucHJldmVudERlZmF1bHQoKSx0aGlzLmRlc3Ryb3koKTticmVha319O2FzeW5jIGhhbmRsZUNsaWNrKGMpe2MuYWN0aW9uKCksYXdhaXQgdGhpcy5kZXN0cm95QWxsKCl9YXN5bmMgaGFuZGxlTWVudUl0ZW1Ib3ZlcihjLHUpe3RoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKSx0aGlzLnN1Ym1lbnUmJmF3YWl0IHRoaXMuaGlkZVN1Ym1lbnUoKSx1JiZjLnN1Ym1lbnUmJih0aGlzLnN1Ym1lbnVUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLnNob3dTdWJtZW51KGMpfSwyMDApKX1oYW5kbGVNZW51SXRlbUxlYXZlKCl7dGhpcy5zdWJtZW51VGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuc3VibWVudVRpbWVvdXQpLHRoaXMuc3VibWVudVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc3VibWVudSYmIXRoaXMuc3VibWVudS5tYXRjaGVzKCI6aG92ZXIiKSYmdGhpcy5oaWRlU3VibWVudSgpfSwzMDApfWFzeW5jIHNob3dTdWJtZW51KGMpe2lmKCFjLnN1Ym1lbnV8fGMuc3VibWVudS5sZW5ndGg9PT0wKXJldHVybjtsZXQgZD1BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIubWVudWl0ZW0iKSkuZmluZCh3PT53LnF1ZXJ5U2VsZWN0b3IoIi5tZW51aXRlbS10ZXh0Iik/LnRleHRDb250ZW50PT09Yy5uYW1lKTtpZighZClyZXR1cm47dGhpcy5zdWJtZW51PW5ldyBsLHRoaXMuc3VibWVudS5tZW51SXRlbXM9Yy5zdWJtZW51LHRoaXMuc3VibWVudS5wYXJlbnRNZW51PXRoaXMsdGhpcy5zdWJtZW51LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdGhpcy5zdWJtZW51LnN0eWxlLnpJbmRleD1TdHJpbmcocGFyc2VJbnQodGhpcy5zdHlsZS56SW5kZXgpKzEpLHRoaXMuc3VibWVudS5zdHlsZS5vcGFjaXR5PSIwIix0aGlzLnN1Ym1lbnUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSIsZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5zdWJtZW51KSxhd2FpdCBqdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBoPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZj10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHg9dGhpcy5zdWJtZW51LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9d2luZG93LmlubmVyV2lkdGgsYj1mLnJpZ2h0LTQseT1oLnRvcDtiK3gud2lkdGg+di0xMCYmKGI9Zi5sZWZ0LXgud2lkdGgrNCkseSt4LmhlaWdodD53aW5kb3cuaW5uZXJIZWlnaHQtMTAmJih5PXdpbmRvdy5pbm5lckhlaWdodC14LmhlaWdodC0xMCksdGhpcy5zdWJtZW51LnN0eWxlLmxlZnQ9YCR7Yn1weGAsdGhpcy5zdWJtZW51LnN0eWxlLnRvcD1gJHt5fXB4YCxhd2FpdCBqdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc3VibWVudS5zdHlsZS5vcGFjaXR5PSIxIix0aGlzLnN1Ym1lbnUuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgxKSIsdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCgpPT57dGhpcy5zdWJtZW51VGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnN1Ym1lbnVUaW1lb3V0KSx0aGlzLnN1Ym1lbnVUaW1lb3V0PW51bGwpfSksdGhpcy5zdWJtZW51LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCgpPT57dGhpcy5oYW5kbGVNZW51SXRlbUxlYXZlKCl9KX1hc3luYyBoaWRlU3VibWVudSgpe3RoaXMuc3VibWVudSYmKGF3YWl0IHRoaXMuc3VibWVudS5kZXN0cm95KCksdGhpcy5zdWJtZW51PW51bGwpfWFzeW5jIGRlc3Ryb3koKXt0aGlzLmlzRGVzdHJveWluZ3x8KHRoaXMuaXNEZXN0cm95aW5nPSEwLHRoaXMuc3VibWVudVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5zdWJtZW51VGltZW91dCksdGhpcy5zdWJtZW51VGltZW91dD1udWxsKSx0aGlzLnN1Ym1lbnUmJihhd2FpdCB0aGlzLnN1Ym1lbnUuZGVzdHJveSgpLHRoaXMuc3VibWVudT1udWxsKSx0aGlzLndpbmRvd0xheWVyJiYhdGhpcy5wYXJlbnRNZW51JiZ0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKSx0aGlzLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuc3R5bGUudHJhbnNmb3JtPSJzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KSIsYXdhaXQganQuc21hcnRkZWxheS5kZWxheUZvcigxMDApLHRoaXMucGFyZW50RWxlbWVudCYmdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMpKX1hc3luYyBkZXN0cm95QWxsKCl7bGV0IGM9dGhpcztmb3IoO2MucGFyZW50TWVudTspYz1jLnBhcmVudE1lbnU7YXdhaXQgYy5kZXN0cm95KCl9c3RhdGlje1EzZShpLHIpfX07cmV0dXJuIGw9aX0pKCk7U3IuaW5pdGlhbGl6ZUdsb2JhbExpc3RlbmVyKCl9KTt2YXIgTzJyLEozZSxQWnIsUjJyPXAoKCk9Pnt4ZSgpO08ycj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LEozZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sUFpyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1kZW1vd3JhcHBlciIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHthdHRyaWJ1dGU6ITF9KV0sTzJyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnU9PiJydW5BZnRlclJlbmRlciJpbiB1LGdldDp1PT51LnJ1bkFmdGVyUmVuZGVyLHNldDoodSxkKT0+e3UucnVuQWZ0ZXJSZW5kZXI9ZH19LG1ldGFkYXRhOmN9LG8scyksTzJyKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsciksbD1pPXQudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9I2U9SjNlKHRoaXMsbyx2b2lkIDApO2dldCBydW5BZnRlclJlbmRlcigpe3JldHVybiB0aGlzLiNlfXNldCBydW5BZnRlclJlbmRlcihjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBjb250ZW50czsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYoYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxhd2FpdCBuZXcgUHJvbWlzZShjPT5zZXRUaW1lb3V0KGMsNTApKSx0aGlzLmNoaWxkcmVuLmxlbmd0aD4wJiZ0aGlzLnJ1bkFmdGVyUmVuZGVyKXRyeXthd2FpdCB0aGlzLnJ1bkFmdGVyUmVuZGVyKHRoaXMpfWNhdGNoKGMpe2NvbnNvbGUuZXJyb3IoIkVycm9yIGluIHJ1bkFmdGVyUmVuZGVyOiIsYyl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxKM2UodGhpcyxzKX1zdGF0aWN7SjNlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBwMT1wKCgpPT57UjJyKCl9KTt2YXIgQjJyLEgycj1wKCgpPT57eGUoKTtwMSgpO0Iycj0oKT0+e2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKTtyZXR1cm4gc2V0VGltZW91dCgoKT0+e2UuYWRkTWFueShbe3R5cGU6ImxvZ2luIix1c2VyOiJKb2huIERvZSIsbWVzc2FnZToibG9nZ2VkIGluIGZyb20gQ2hyb21lIG9uIG1hY09TIn0se3R5cGU6ImNyZWF0ZSIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6J2NyZWF0ZWQgYSBuZXcgcHJvamVjdCAiRnJvbnRlbmQgQXBwIid9LHt0eXBlOiJ1cGRhdGUiLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6InVwZGF0ZWQgQVBJIGRvY3VtZW50YXRpb24ifSx7dHlwZToidmlldyIsdXNlcjoiSm9obiBEb2UiLG1lc3NhZ2U6InZpZXdlZCBkYXNoYm9hcmQgYW5hbHl0aWNzIn0se3R5cGU6ImRlbGV0ZSIsdXNlcjoiQWRtaW4iLG1lc3NhZ2U6InJlbW92ZWQgZGVwcmVjYXRlZCBlbmRwb2ludCJ9LHt0eXBlOiJjdXN0b20iLHVzZXI6IlN5c3RlbSIsbWVzc2FnZToic2NoZWR1bGVkIGJhY2t1cCBjb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UifSx7dHlwZToibG9nb3V0Iix1c2VyOiJBbGljZSBCcm93biIsbWVzc2FnZToibG9nZ2VkIG91dCJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6ImNyZWF0ZWQgaW52b2ljZSAjMTIzNCJ9XSksZS5lbnRyaWVzJC5zdWJzY3JpYmUodD0+e2NvbnNvbGUubG9nKCJBY3Rpdml0eSBsb2cgdXBkYXRlZDoiLHQubGVuZ3RoLCJlbnRyaWVzIil9KX0sMTAwKSxDYAogICAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICAgIDxzdHlsZT4KICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMwOTA5MGIiKX07CiAgICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgICR7ZX0KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH19KTt2YXIgU04sTGQscTJyLEszZT1wKCgpPT57eGUoKTtLdCgpO01pKCk7b3IoKTtIMnIoKTtKZSgpO1NOPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sTGQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHEycj0oKCk9PntsZXQgZT1beWUoImRlZXMtYXBwdWktYWN0aXZpdHlsb2ciKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1bZmUoKV0sZD1bZmUoKV0sU04odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRyaWVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4iZW50cmllcyJpbiBiLGdldDpiPT5iLmVudHJpZXMsc2V0OihiLHkpPT57Yi5lbnRyaWVzPXl9fSxtZXRhZGF0YTp2fSxvLHMpLFNOKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJzZWFyY2hRdWVyeSJpbiBiLGdldDpiPT5iLnNlYXJjaFF1ZXJ5LHNldDooYix5KT0+e2Iuc2VhcmNoUXVlcnk9eX19LG1ldGFkYXRhOnZ9LGMsdSksU04odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJDcml0ZXJpYSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+ImZpbHRlckNyaXRlcmlhImluIGIsZ2V0OmI9PmIuZmlsdGVyQ3JpdGVyaWEsc2V0OihiLHkpPT57Yi5maWx0ZXJDcml0ZXJpYT15fX0sbWV0YWRhdGE6dn0saCxmKSxTTihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLHIpLHg9aT10LnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vPUIycjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPUxkKHRoaXMsbyxbXSk7Z2V0IGVudHJpZXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZW50cmllcyh2KXt0aGlzLiNlPXZ9I3Q9KExkKHRoaXMscyksTGQodGhpcyxjLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlYXJjaFF1ZXJ5KHYpe3RoaXMuI3Q9dn0jcj0oTGQodGhpcyx1KSxMZCh0aGlzLGgse30pKTtnZXQgZmlsdGVyQ3JpdGVyaWEoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZmlsdGVyQ3JpdGVyaWEodil7dGhpcy4jcj12fWVudHJpZXMkPShMZCh0aGlzLGYpLG5ldyBqdC5zbWFydHJ4LnJ4anMuU3ViamVjdCk7c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgLyogQ1NTIFZhcmlhYmxlcyBhbGlnbmVkIHdpdGggc2Vjb25kYXJ5IG1lbnUgKi8KICAgICAgICAtLWFjdGl2aXR5bG9nLWJnOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1mZzogJHttLmJkVGhlbWUoIiM1MjUyNTIiLCIjYTNhM2EzIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQ6ICR7bS5iZFRoZW1lKCIjNzM3MzczIiwiIzczNzM3MyIpfTsKICAgICAgICAtLWFjdGl2aXR5bG9nLWZnLWFjdGl2ZTogJHttLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctYm9yZGVyOiAke20uYmRUaGVtZSgiI2U1ZTVlNSIsIiMxYTFhMWEiKX07CiAgICAgICAgLS1hY3Rpdml0eWxvZy1ob3ZlcjogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIC0tYWN0aXZpdHlsb2ctYWNjZW50OiAke20uYmRUaGVtZSgiIzc4NzE2YyIsIiNiNWE5OWEiKX07CgogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAyODBweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIHdpdGggc3RyZWFtaW5nIGluZGljYXRvciAqLwogICAgICAudG9wYmFyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDBweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWFjdGl2aXR5bG9nLWJnKTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYWN0aXZpdHlsb2ctYm9yZGVyKTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50b3BiYXIgLmhlYWRpbmcgewogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubGl2ZS1pbmRpY2F0b3IgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLmxpdmUtaW5kaWNhdG9yIC5kb3QgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMyMmM1NWUiLCIjMjJjNTVlIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlIHsKICAgICAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuNTsgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyB9CiAgICAgICAgNTAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9CiAgICAgIH0KCiAgICAgIC8qIEFjdGl2aXR5IGNvbnRhaW5lciAqLwogICAgICAuYWN0aXZpdHlDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDQ4cHg7CiAgICAgICAgYm90dG9tOiA0OHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke20uYmRUaGVtZSgiI2Q0ZDRkNCIsIiMzMzMzMzMiKX0gdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eUNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Q0ZDRkNCIsIiMzMzMzMzMiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAuYWN0aXZpdHlDb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2EzYTNhMyIsIiM1MjUyNTIiKX07CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDE2cHg7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgfQoKICAgICAgLyogRGF0ZSBzZXBhcmF0b3IgLSB3YXJtIHRhdXBlIHN0eWxpbmcgKi8KICAgICAgLmRhdGUtc2VwYXJhdG9yIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1hY2NlbnQpOwogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYWN0aXZpdHlsb2ctYmcpOwogICAgICB9CgogICAgICAvKiBBY3Rpdml0eSBlbnRyeSAtIG1vZGVybiBzdGFja2VkIGxheW91dCAqLwogICAgICAuYWN0aXZpdHllbnRyeSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4ycyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW4gewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eWVudHJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1ob3Zlcik7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgbWFyZ2luLXRvcDogMXB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5sb2dpbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMzQsIDE5NywgOTQsIDAuMDgpIiwicmdiYSgzNCwgMTk3LCA5NCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMTZhMzRhIiwiIzRhZGU4MCIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24ubG9nb3V0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4wOCkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi52aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMDgpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTIpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1pY29uLmNyZWF0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjA4KSIsInJnYmEoMTY4LCA4NSwgMjQ3LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5MzMzZWEiLCIjYzA4NGZjIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi51cGRhdGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDI1MSwgMTQ2LCA2MCwgMC4wOCkiLCJyZ2JhKDI1MSwgMTQ2LCA2MCwgMC4xMikiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZWE1ODBjIiwiI2ZiOTIzYyIpfTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LWljb24uZGVsZXRlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4wOCkiLCJyZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaWNvbi5jdXN0b20gewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDEwMCwgMTE2LCAxMzksIDAuMDgpIiwicmdiYSgxMDAsIDExNiwgMTM5LCAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM0NzU1NjkiLCIjOTRhM2I4Iil9OwogICAgICB9CgogICAgICAuYWN0aXZpdHktY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuYWN0aXZpdHktaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS11c2VyIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLmFjdGl2aXR5LXNlcGFyYXRvciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGl2aXR5bG9nLWZnLW11dGVkKTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgIH0KCiAgICAgIC50aW1lc3RhbXAgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmcpOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICAgIH0KCiAgICAgIC8qIFNlYXJjaCBib3ggLSByZWZpbmVkIHN0eWxpbmcgKi8KICAgICAgLnNlYXJjaGJveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY3Rpdml0eWxvZy1iZyk7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWFjdGl2aXR5bG9nLWJvcmRlcik7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLnNlYXJjaC13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLWljb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctbXV0ZWQpOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoYm94IGlucHV0IHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aXZpdHlsb2ctZmctYWN0aXZlKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkiKX07CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDgpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgMzRweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnNlYXJjaGJveCBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5zZWFyY2hib3ggaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjE1KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICB9CgogICAgICAuc2VhcmNoLXdyYXBwZXI6aGFzKGlucHV0OmZvY3VzKSAuc2VhcmNoLWljb24gewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpdml0eWxvZy1mZyk7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe2xldCB2PXRoaXMuZ2V0RmlsdGVyZWRFbnRyaWVzKCksYj10aGlzLmdyb3VwRW50cmllc0J5RGF0ZSh2KTtyZXR1cm4gQ2AKICAgICAgJHtkMS5zdHlsZXN9CiAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b3BiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyI+QWN0aXZpdHkgTG9nPC9kaXY+CiAgICAgICAgICAke3YubGVuZ3RoPjA/Q2A8ZGl2IGNsYXNzPSJsaXZlLWluZGljYXRvciI+PHNwYW4gY2xhc3M9ImRvdCI+PC9zcGFuPkxpdmU8L2Rpdj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGl2aXR5Q29udGFpbmVyIj4KICAgICAgICAgICR7di5sZW5ndGg9PT0wP0NgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPk5vIGFjdGl2aXR5IGVudHJpZXM8L2Rpdj5gOmIubWFwKHk9PkNgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtc2VwYXJhdG9yIj4ke3kubGFiZWx9PC9kaXY+CiAgICAgICAgICAgICAgICAgICR7eS5lbnRyaWVzLm1hcCh3PT50aGlzLnJlbmRlckFjdGl2aXR5RW50cnkodykpfQogICAgICAgICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC13cmFwcGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0ic2VhcmNoLWljb24iIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2VhcmNoIGFjdGl2aXRpZXMsIHVzZXJzLi4uIgogICAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMuc2VhcmNoUXVlcnl9CiAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVTZWFyY2hJbnB1dH0KICAgICAgICAgICAgLz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aXZpdHlFbnRyeSh2KXtsZXQgYj12LnRpbWVzdGFtcHx8bmV3IERhdGUseT10aGlzLmZvcm1hdFRpbWUoYiksdz12Lmljb25OYW1lfHx0aGlzLmdldEljb25Gb3JUeXBlKHYudHlwZSk7cmV0dXJuIENgCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYWN0aXZpdHllbnRyeSIKICAgICAgICBAY29udGV4dG1lbnU9JHtrPT50aGlzLmhhbmRsZUNvbnRleHRNZW51KGssdil9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1pY29uICR7di50eXBlfSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7d30+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktY29udGVudCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpdml0eS1oZWFkZXIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWN0aXZpdHktdXNlciI+JHt2LnVzZXJ9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWN0aXZpdHktc2VwYXJhdG9yIj7Ctzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRpbWVzdGFtcCI+JHt5fTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aXZpdHktbWVzc2FnZSI+JHt2Lm1lc3NhZ2V9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hZGQodil7bGV0IGI9ey4uLnYsaWQ6di5pZHx8dGhpcy5nZW5lcmF0ZUlkKCksdGltZXN0YW1wOnYudGltZXN0YW1wfHxuZXcgRGF0ZX07dGhpcy5lbnRyaWVzPVtiLC4uLnRoaXMuZW50cmllc10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9YWRkTWFueSh2KXtsZXQgYj12Lm1hcCh5PT4oey4uLnksaWQ6eS5pZHx8dGhpcy5nZW5lcmF0ZUlkKCksdGltZXN0YW1wOnkudGltZXN0YW1wfHxuZXcgRGF0ZX0pKTt0aGlzLmVudHJpZXM9Wy4uLmIucmV2ZXJzZSgpLC4uLnRoaXMuZW50cmllc10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9Y2xlYXIoKXt0aGlzLmVudHJpZXM9W10sdGhpcy5lbnRyaWVzJC5uZXh0KHRoaXMuZW50cmllcyl9Z2V0RW50cmllcygpe3JldHVyblsuLi50aGlzLmVudHJpZXNdfWZpbHRlcih2KXtyZXR1cm4gdGhpcy5lbnRyaWVzLmZpbHRlcihiPT4hKHYudXNlciYmYi51c2VyIT09di51c2VyfHx2LnR5cGUmJmIudHlwZSE9PXYudHlwZSkpfXNlYXJjaCh2KXtsZXQgYj12LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHRoaXMuZW50cmllcy5maWx0ZXIoeT0+eS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYil8fHkudXNlci50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGIpKX1nZW5lcmF0ZUlkKCl7cmV0dXJuYGFjdGl2aXR5LSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw5KX1gfWdldEZpbHRlcmVkRW50cmllcygpe2xldCB2PXRoaXMuZW50cmllcztpZih0aGlzLnNlYXJjaFF1ZXJ5KXtsZXQgYj10aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7dj12LmZpbHRlcih5PT55Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhiKXx8eS51c2VyLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYikpfXJldHVybih0aGlzLmZpbHRlckNyaXRlcmlhLnVzZXJ8fHRoaXMuZmlsdGVyQ3JpdGVyaWEudHlwZSkmJih2PXYuZmlsdGVyKGI9PiEodGhpcy5maWx0ZXJDcml0ZXJpYS51c2VyJiZiLnVzZXIhPT10aGlzLmZpbHRlckNyaXRlcmlhLnVzZXJ8fHRoaXMuZmlsdGVyQ3JpdGVyaWEudHlwZSYmYi50eXBlIT09dGhpcy5maWx0ZXJDcml0ZXJpYS50eXBlKSkpLHZ9Z3JvdXBFbnRyaWVzQnlEYXRlKHYpe2xldCBiPW5ldyBNYXAseT1uZXcgRGF0ZSx3PW5ldyBEYXRlKHkpO3cuc2V0RGF0ZSh3LmdldERhdGUoKS0xKTtmb3IobGV0IGsgb2Ygdil7bGV0IE89ay50aW1lc3RhbXB8fG5ldyBEYXRlLHo7dGhpcy5pc1NhbWVEYXkoTyx5KT96PSJUb2RheSI6dGhpcy5pc1NhbWVEYXkoTyx3KT96PSJZZXN0ZXJkYXkiOno9Ty50b0xvY2FsZURhdGVTdHJpbmcoImVuLVVTIix7bW9udGg6InNob3J0IixkYXk6Im51bWVyaWMiLHllYXI6Ty5nZXRGdWxsWWVhcigpIT09eS5nZXRGdWxsWWVhcigpPyJudW1lcmljIjp2b2lkIDB9KSxiLmhhcyh6KXx8Yi5zZXQoeixbXSksYi5nZXQoeikucHVzaChrKX1yZXR1cm4gQXJyYXkuZnJvbShiLmVudHJpZXMoKSkubWFwKChbayxPXSk9Pih7bGFiZWw6ayxlbnRyaWVzOk99KSl9aXNTYW1lRGF5KHYsYil7cmV0dXJuIHYuZ2V0RnVsbFllYXIoKT09PWIuZ2V0RnVsbFllYXIoKSYmdi5nZXRNb250aCgpPT09Yi5nZXRNb250aCgpJiZ2LmdldERhdGUoKT09PWIuZ2V0RGF0ZSgpfWZvcm1hdFRpbWUodil7cmV0dXJuIHYudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCIsaG91cjEyOiExfSl9Z2V0SWNvbkZvclR5cGUodil7bGV0IGI9e2xvZ2luOiJsdWNpZGU6bG9nSW4iLGxvZ291dDoibHVjaWRlOmxvZ091dCIsdmlldzoibHVjaWRlOmV5ZSIsY3JlYXRlOiJsdWNpZGU6cGx1cyIsdXBkYXRlOiJsdWNpZGU6ZWRpdCIsZGVsZXRlOiJsdWNpZGU6dHJhc2gyIixjdXN0b206Imx1Y2lkZTphY3Rpdml0eSJ9O3JldHVybiBiW3ZdfHxiLmN1c3RvbX1oYW5kbGVTZWFyY2hJbnB1dCh2KXtsZXQgYj12LnRhcmdldDt0aGlzLnNlYXJjaFF1ZXJ5PWIudmFsdWV9aGFuZGxlQ29udGV4dE1lbnUodixiKXt2LnByZXZlbnREZWZhdWx0KCksU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModixbe25hbWU6IkNvcHkgYWN0aXZpdHkiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChgJHtiLnVzZXJ9ICR7Yi5tZXNzYWdlfWApfX0se25hbWU6IkZpbHRlciBieSB1c2VyIixpY29uTmFtZToibHVjaWRlOnVzZXIiLGFjdGlvbjphc3luYygpPT57dGhpcy5maWx0ZXJDcml0ZXJpYT17dXNlcjpiLnVzZXJ9fX0se25hbWU6IkZpbHRlciBieSB0eXBlIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsYWN0aW9uOmFzeW5jKCk9Pnt0aGlzLmZpbHRlckNyaXRlcmlhPXt0eXBlOmIudHlwZX19fSx7bmFtZToiQ2xlYXIgZmlsdGVycyIsaWNvbk5hbWU6Imx1Y2lkZTp4IixhY3Rpb246YXN5bmMoKT0+e3RoaXMuZmlsdGVyQ3JpdGVyaWE9e30sdGhpcy5zZWFyY2hRdWVyeT0iIn19XSl9c3RhdGlje0xkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBqMnI9cCgoKT0+e0szZSgpfSk7dmFyIFYycj1wKCgpPT57fSk7dmFyIFUycj1wKCgpPT57d2koKX0pO3ZhciBXMnI9cCgoKT0+e30pO3ZhciBHMnI9cCgoKT0+e30pO3ZhciBZMnI9cCgoKT0+e30pO3ZhciAkND1wKCgpPT57VjJyKCk7VTJyKCk7VzJyKCk7RzJyKCk7WTJyKCl9KTt2YXIgWjJyLFgycj1wKCgpPT57eGUoKTtwMSgpO2U2ZSgpO1oycj0oKT0+e2xldCBlPVt7bmFtZToiRmlsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgRmlsZSIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZS1wbHVzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk5ldyBmaWxlIil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXItb3BlbiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIil9LHtuYW1lOiJPcGVuIFJlY2VudCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJwcm9qZWN0LWFscGhhLnRzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDEiKX0se25hbWU6ImNvbmZpZy5qc29uIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4gcmVjZW50IDIiKX0se25hbWU6InJlYWRtZS5tZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJPcGVuIHJlY2VudCAzIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIixzaG9ydGN1dDoiQ21kK1MiLGljb25OYW1lOiJzYXZlIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNhdmUiKX0se25hbWU6IlNhdmUgQXMuLi4iLHNob3J0Y3V0OiJDbWQrU2hpZnQrUyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIGFzIiksZGlzYWJsZWQ6ITB9LHtkaXZpZGVyOiEwfSx7bmFtZToiRXhpdCIsc2hvcnRjdXQ6IkNtZCtRIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkV4aXQiKX1dfSx7bmFtZToiRWRpdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJVbmRvIixzaG9ydGN1dDoiQ21kK1oiLGljb25OYW1lOiJ1bmRvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlVuZG8iKX0se25hbWU6IlJlZG8iLHNob3J0Y3V0OiJDbWQrU2hpZnQrWiIsaWNvbk5hbWU6InJlZG8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVkbyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IkN1dCIsc2hvcnRjdXQ6IkNtZCtYIixpY29uTmFtZToic2Npc3NvcnMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiQ3V0Iil9LHtuYW1lOiJDb3B5IixzaG9ydGN1dDoiQ21kK0MiLGljb25OYW1lOiJjb3B5IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkNvcHkiKX0se25hbWU6IlBhc3RlIixzaG9ydGN1dDoiQ21kK1YiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUGFzdGUiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJGaW5kIixzaG9ydGN1dDoiQ21kK0YiLGljb25OYW1lOiJzZWFyY2giLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiRmluZCIpfSx7bmFtZToiUmVwbGFjZSIsc2hvcnRjdXQ6IkNtZCtIIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlcGxhY2UiKX1dfSx7bmFtZToiVmlldyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJUb2dnbGUgRnVsbHNjcmVlbiIsc2hvcnRjdXQ6IkYxMSIsaWNvbk5hbWU6ImV4cGFuZCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJGdWxsc2NyZWVuIil9LHtuYW1lOiJab29tIEluIixzaG9ydGN1dDoiQ21kKysiLGljb25OYW1lOiJ6b29tLWluIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlpvb20gaW4iKX0se25hbWU6Ilpvb20gT3V0IixzaG9ydGN1dDoiQ21kKy0iLGljb25OYW1lOiJ6b29tLW91dCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJab29tIG91dCIpfSx7bmFtZToiUmVzZXQgWm9vbSIsc2hvcnRjdXQ6IkNtZCswIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlc2V0IHpvb20iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJUb2dnbGUgU2lkZWJhciIsc2hvcnRjdXQ6IkNtZCtCIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBzaWRlYmFyIil9LHtuYW1lOiJUb2dnbGUgVGVybWluYWwiLHNob3J0Y3V0OiJDbWQrSiIsaWNvbk5hbWU6InRlcm1pbmFsIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSB0ZXJtaW5hbCIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3VtZW50YXRpb24iKX0se25hbWU6IlJlbGVhc2UgTm90ZXMiLGljb25OYW1lOiJmaWxlLXRleHQiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUmVsZWFzZSBub3RlcyIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlJlcG9ydCBJc3N1ZSIsaWNvbk5hbWU6ImJ1ZyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJSZXBvcnQgaXNzdWUiKX0se25hbWU6IkFib3V0IixpY29uTmFtZToiaW5mbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJBYm91dCIpfV19XTtyZXR1cm4gQ2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIHQ9PntsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIiNhcHBiYXIiKSxpPXQucXVlcnlTZWxlY3RvckFsbCgiLnN0YXR1cy10b2dnbGUgZGVlcy1idXR0b24iKTtpWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IudXNlcj17Li4uci51c2VyLHN0YXR1czoib25saW5lIn19KSxpWzFdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IudXNlcj17Li4uci51c2VyLHN0YXR1czoiYnVzeSJ9fSksaVsyXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLnVzZXI9ey4uLnIudXNlcixzdGF0dXM6ImF3YXkifX0pLGlbM10uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci51c2VyPXsuLi5yLnVzZXIsc3RhdHVzOiJvZmZsaW5lIn19KSx0LnF1ZXJ5U2VsZWN0b3IoIi53aW5kb3ctY29udHJvbHMtdG9nZ2xlIGRlZXMtYnV0dG9uIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57ci5zaG93V2luZG93Q29udHJvbHM9IXIuc2hvd1dpbmRvd0NvbnRyb2xzfSk7bGV0IG49dC5xdWVyeVNlbGVjdG9yQWxsKCIuYnJlYWRjcnVtYi10b2dnbGUgZGVlcy1idXR0b24iKTtuWzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3IuYnJlYWRjcnVtYnM9IkhvbWUgPiBEb2N1bWVudHMgPiBQcm9qZWN0cyA+IE15QXBwID4gc3JjID4gaW5kZXgudHMifSksblsxXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntyLmJyZWFkY3J1bWJzPSJEYXNoYm9hcmQifSl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7b2VgCiAgICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRlbnQgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBjb2xvcjogI2NjYzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuY29udHJvbC1ncm91cCBsYWJlbCB7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzg4ODsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIGlkPSJhcHBiYXIiCiAgICAgICAgLm1lbnVJdGVtcz0ke2V9CiAgICAgICAgLmJyZWFkY3J1bWJzPSR7IlByb2plY3QgPiBzcmMgPiBjb21wb25lbnRzID4gQXBwQmFyLnRzIn0KICAgICAgICAuYnJlYWRjcnVtYlNlcGFyYXRvcj0keyIgPiAifQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHshMH0KICAgICAgICAuc2hvd1NlYXJjaD0keyEwfQogICAgICAgIC50aGVtZT0keyJkYXJrIn0KICAgICAgICAudXNlcj0ke3tuYW1lOiJKb2huIERvZSIsc3RhdHVzOiJvbmxpbmUifX0KICAgICAgICBAbWVudS1zZWxlY3Q9JHt0PT5jb25zb2xlLmxvZygiTWVudSBzZWxlY3RlZDoiLHQuZGV0YWlsLml0ZW0pfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7dD0+Y29uc29sZS5sb2coIkJyZWFkY3J1bWIgY2xpY2tlZDoiLHQuZGV0YWlsKX0KICAgICAgICBAc2VhcmNoLWNsaWNrPSR7KCk9PmNvbnNvbGUubG9nKCJTZWFyY2ggY2xpY2tlZCIpfQogICAgICAgIEB1c2VyLW1lbnUtb3Blbj0keygpPT5jb25zb2xlLmxvZygiVXNlciBtZW51IGNsaWNrZWQiKX0KICAgICAgPjwvZGVlcy1hcHB1aS1hcHBiYXI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICA8aDI+QXBwIEJhciBEZW1vPC9oMj4KICAgICAgICA8cD5UaGlzIGRlbW8gc2hvd3MgdmFyaW91cyBmZWF0dXJlcyBvZiB0aGUgYXBwIGJhciBjb21wb25lbnQ6PC9wPgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT5EeW5hbWljIG1lbnUgaXRlbXMgd2l0aCBpY29ucywgc2hvcnRjdXRzLCBhbmQgc3VibWVudXM8L2xpPgogICAgICAgICAgPGxpPkJyZWFkY3J1bWIgbmF2aWdhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+VXNlciBhY2NvdW50IHNlY3Rpb24gd2l0aCBzdGF0dXMgaW5kaWNhdG9yPC9saT4KICAgICAgICAgIDxsaT5TZWFyY2ggaWNvbjwvbGk+CiAgICAgICAgICA8bGk+V2luZG93IGNvbnRyb2xzIChwbGF0Zm9ybS1zcGVjaWZpYyk8L2xpPgogICAgICAgICAgPGxpPkRhcmsvbGlnaHQgdGhlbWUgc3VwcG9ydDwvbGk+CiAgICAgICAgICA8bGk+S2V5Ym9hcmQgbmF2aWdhdGlvbiAoVGFiLCBFbnRlciwgRXNjYXBlKTwvbGk+CiAgICAgICAgICA8bGk+Q3VzdG9tIGV2ZW50cyBmb3IgYWxsIGludGVyYWN0aW9uczwvbGk+CiAgICAgICAgPC91bD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCI+CiAgICAgICAgICA8bGFiZWw+VGhlbWU8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ0aGVtZS10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RGFyazwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPlVzZXIgU3RhdHVzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0ic3RhdHVzLXRvZ2dsZSI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PbmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QnVzeTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Bd2F5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk9mZmxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgIDxsYWJlbD5XaW5kb3cgQ29udHJvbHM8L2xhYmVsPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGNsYXNzPSJ3aW5kb3ctY29udHJvbHMtdG9nZ2xlIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlRvZ2dsZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgPGxhYmVsPkJyZWFkY3J1bWJzPC9sYWJlbD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBjbGFzcz0iYnJlYWRjcnVtYi10b2dnbGUiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TG9uZyBQYXRoPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNob3J0IFBhdGg8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfX0pO3ZhciBRMnIsSjJyPXAoKCk9Pnt4ZSgpO1Eycj1bbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgLyogQ1NTIFZhcmlhYmxlcyBmb3IgdGhlbWluZyAqLwogICAgICAgIC0tYXBwYmFyLWhlaWdodDogNDBweDsKICAgICAgICAtLWFwcGJhci1mb250LXNpemU6IDEycHg7CiAgICAgICAgCiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogdmFyKC0tYXBwYmFyLWhlaWdodCk7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwODAiLCIjZmZmZmZmODAiKX07CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1hcHBiYXItZm9udC1zaXplKTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0bzsKICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IGRyYWc7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51cyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgbWFyZ2luOiA4cHggMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC8qIE9wdGlvbmFsOiBTdHlsZSBmb3IgbWVudSBpdGVtcyB3aXRoIGljb25zIChub3QgdHlwaWNhbGx5IHVzZWQgZm9yIHRvcC1sZXZlbCBpdGVtcykgKi8KICAgICAgLm1lbnVJdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMDAwMDAwMjAiLCIjZmZmZmZmMzAiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtW2Rpc2FibGVkXSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpmb2N1cy12aXNpYmxlIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoIiMwMDAwMDA4MCIsIiNmZmZmZmY4MCIpfTsKICAgICAgfQoKCiAgICAgIC8qIERyb3Bkb3duIHN0eWxlcyAqLwogICAgICAuZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtaW4td2lkdGg6IDIwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4yczsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLm9wZW4gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICB9CgogICAgICAuZHJvcGRvd24taXRlbSB7CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXM7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtOmhvdmVyLAogICAgICAuZHJvcGRvd24taXRlbS5mb2N1c2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzAwMDAwMDEwIiwiI2ZmZmZmZjIwIil9OwogICAgICB9CgogICAgICAuZHJvcGRvd24tZGl2aWRlciB7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlMGUwZTAiLCIjMjAyMDIwIil9OwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtW2Rpc2FibGVkXSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5kcm9wZG93bi1pdGVtIC5zaG9ydGN1dCB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgfQoKICAgICAgLyogQnJlYWRjcnVtYnMgKi8KICAgICAgLmJyZWFkY3J1bWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5icmVhZGNydW1iLWl0ZW0gewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMDAwMDgwIiwiI2ZmZmZmZjgwIil9OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzOwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1pdGVtOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CgogICAgICAuYnJlYWRjcnVtYi1zZXBhcmF0b3IgewogICAgICAgIG1hcmdpbjogMCA4cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAvKiBBY2NvdW50IHNlY3Rpb24gKi8KICAgICAgLmFjY291bnQgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbiB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtaWNvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnVzZXItaW5mbyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm86aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMwMDAwMDAyMCIsIiNmZmZmZmYzMCIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICB9CgogICAgICAudXNlci1hdmF0YXIgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IC0ycHg7CiAgICAgICAgcmlnaHQ6IC0ycHg7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub25saW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNGNhZjUwOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub2ZmbGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzc1NzU3NTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmJ1c3kgewogICAgICAgIGJhY2tncm91bmQ6ICNmNDQzMzY7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5hd2F5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5ODAwOwogICAgICB9CgogICAgICAvKiBBY3Rpdml0eSBsb2cgdG9nZ2xlIGJ1dHRvbiAqLwogICAgICAuYWN0aXZpdHktdG9nZ2xlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgLXdlYmtpdC1hcHAtcmVnaW9uOiBuby1kcmFnOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMDAwMDYwIiwiI2ZmZmZmZjYwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS10b2dnbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMDAwMDAwMTAiLCIjZmZmZmZmMTUiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYWN0aXZpdHktdG9nZ2xlLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYyMCIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS10b2dnbGUgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpdml0eS1iYWRnZSB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7CiAgICAgICAgbWluLXdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzUyNTI1MiIsIiM1MjUyNTIiKX07CiAgICAgICAgY29sb3I6ICNmYWZhZmE7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgfQogICAgYF19KTt2YXIgSzJyLGVzcj1wKCgpPT57eGUoKTtLMnI9ZT0+Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJtZW51cyI+CiAgICAgICAgICAke2Uuc2hvd1dpbmRvd0NvbnRyb2xzP0NgPGRlZXMtd2luZG93Y29udHJvbHM+PC9kZWVzLXdpbmRvd2NvbnRyb2xzPmA6IiJ9CiAgICAgICAgICAke2UucmVuZGVyTWVudUl0ZW1zKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYnJlYWRjcnVtYnMiPgogICAgICAgICAgJHtlLnJlbmRlckJyZWFkY3J1bWJzKCl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3VudCI+CiAgICAgICAgICAke2UucmVuZGVyQWNjb3VudFNlY3Rpb24oKX0KICAgICAgICA8L2Rpdj4KICAgICAgYH0pO3ZhciB0NmUsb2IsdHNyLHI2ZT1wKCgpPT57eGUoKTtKZSgpO3Q2ZT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LG9iPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSx0c3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLXdpbmRvd2NvbnRyb2xzIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3JlZmxlY3Q6ITB9KV0sbD1baih7cmVmbGVjdDohMH0pXSx0NmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4idHlwZSJpbiBmLGdldDpmPT5mLnR5cGUsc2V0OihmLHgpPT57Zi50eXBlPXh9fSxtZXRhZGF0YTpofSxvLHMpLHQ2ZSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4icG9zaXRpb24iaW4gZixnZXQ6Zj0+Zi5wb3NpdGlvbixzZXQ6KGYseCk9PntmLnBvc2l0aW9uPXh9fSxtZXRhZGF0YTpofSxjLHUpLHQ2ZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPSgpPT5DYDxkZWVzLXdpbmRvd2NvbnRyb2xzPjwvZGVlcy13aW5kb3djb250cm9scz5gO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPW9iKHRoaXMsbywibWFjIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShoKXt0aGlzLiNlPWh9I3Q9KG9iKHRoaXMscyksb2IodGhpcyxjLCJsZWZ0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBwb3NpdGlvbihoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC53aW5kb3dDb250cm9scyBkaXYgewogICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIG1hcmdpbjogMHB4OwogICAgICAgIHBhZGRpbmc6IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjMjIyMjIyOwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2LmNsb3NlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY1ZjU3OwogICAgICAgIG1hcmdpbi1yaWdodDogMTJweDsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdi50b0RvY2sgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmJkMmU7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OwogICAgICB9CgogICAgICAud2luZG93Q29udHJvbHMgZGl2Lm1pbk1heCB7CiAgICAgICAgYmFja2dyb3VuZDogIzI3YzkzZjsKICAgICAgfQoKICAgICAgLndpbmRvd0NvbnRyb2xzIGRpdjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogIzMzMzMzMzsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgICR7dGhpcy50eXBlPT09Im1hYyImJnRoaXMucG9zaXRpb249PT0ibGVmdCJ8fCh0aGlzLnR5cGU9PT0ibGludXgifHx0aGlzLnR5cGU9PT0id2luZG93cyIpJiZ0aGlzLnBvc2l0aW9uPT09InJpZ2h0Ij9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3dDb250cm9scyI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvRG9jayI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWluTWF4Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOkNgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLG9iKHRoaXMsdSl9c3RhdGlje29iKGkscil9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciBzYixnYyxyc3IsaTZlPXAoKCk9Pnt3aSgpO3hvKCk7eGUoKTtKZSgpO3NiPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sZ2M9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHJzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB3PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6T2JqZWN0fSldLGw9W2ooe3R5cGU6QXJyYXl9KV0sZD1baih7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1baih7dHlwZTpTdHJpbmd9KV0sc2IodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1c2VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idXNlciJpbiBrLGdldDprPT5rLnVzZXIsc2V0OihrLE8pPT57ay51c2VyPU99fSxtZXRhZGF0YTp3fSxvLHMpLHNiKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudUl0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4ibWVudUl0ZW1zImluIGssZ2V0Oms9PmsubWVudUl0ZW1zLHNldDooayxPKT0+e2subWVudUl0ZW1zPU99fSxtZXRhZGF0YTp3fSxjLHUpLHNiKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNPcGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaXNPcGVuImluIGssZ2V0Oms9PmsuaXNPcGVuLHNldDooayxPKT0+e2suaXNPcGVuPU99fSxtZXRhZGF0YTp3fSxoLGYpLHNiKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJwb3NpdGlvbiJpbiBrLGdldDprPT5rLnBvc2l0aW9uLHNldDooayxPKT0+e2sucG9zaXRpb249T319LG1ldGFkYXRhOnd9LHYsYiksc2IobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6d30sbnVsbCxyKSx5PWk9dC52YWx1ZSx3JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnd9KX1zdGF0aWMgZGVtbz0oKT0+Q2AKICAgIDxkZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bgogICAgICAudXNlcj0ke3tuYW1lOiJKb2huIERvZSIsZW1haWw6ImpvaG4uZG9lQGV4YW1wbGUuY29tIixhdmF0YXI6Imh0dHBzOi8vcmFuZG9tdXNlci5tZS9hcGkvcG9ydHJhaXRzL21lbi8xLmpwZyIsc3RhdHVzOiJvbmxpbmUifX0KICAgICAgLm1lbnVJdGVtcz0ke1t7bmFtZToiUHJvZmlsZSBTZXR0aW5ncyIsaWNvbk5hbWU6InVzZXIiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiUHJvZmlsZSIpfSx7bmFtZToiQWNjb3VudCIsaWNvbk5hbWU6InNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkFjY291bnQiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwICYgU3VwcG9ydCIsaWNvbk5hbWU6ImhlbHBDaXJjbGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpfSx7bmFtZToiS2V5Ym9hcmQgU2hvcnRjdXRzIixpY29uTmFtZToia2V5Ym9hcmQiLHNob3J0Y3V0OiJDbWQrSyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaG9ydGN1dHMiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTaWduIE91dCIsaWNvbk5hbWU6ImxvZ091dCIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTaWduIG91dCIpfV19CiAgICAgIC5pc09wZW49JHshMH0KICAgID48L2RlZXMtYXBwdWktcHJvZmlsZWRyb3Bkb3duPgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT1nYyh0aGlzLG8sdm9pZCAwKTtnZXQgdXNlcigpe3JldHVybiB0aGlzLiNlfXNldCB1c2VyKHcpe3RoaXMuI2U9d30jdD0oZ2ModGhpcyxzKSxnYyh0aGlzLGMsW10pKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1lbnVJdGVtcyh3KXt0aGlzLiN0PXd9I3I9KGdjKHRoaXMsdSksZ2ModGhpcyxoLCExKSk7Z2V0IGlzT3Blbigpe3JldHVybiB0aGlzLiNyfXNldCBpc09wZW4odyl7dGhpcy4jcj13fSNpPShnYyh0aGlzLGYpLGdjKHRoaXMsdiwidG9wLXJpZ2h0IikpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiNpfXNldCBwb3NpdGlvbih3KXt0aGlzLiNpPXd9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZHJvcGRvd24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBtaW4td2lkdGg6IDIyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkiLCIwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB6LWluZGV4OiAke2ZpLm92ZXJsYXkuZHJvcGRvd259OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKC0xMHB4KTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjJzOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICB9CgogICAgICA6aG9zdChbaXNvcGVuXSkgLmRyb3Bkb3duIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmJhY2tkcm9wIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBQb3NpdGlvbiB2YXJpYW50cyAqLwogICAgICAuZHJvcGRvd24udG9wLXJpZ2h0IHsKICAgICAgICB0b3A6IDEwMCU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICAuZHJvcGRvd24udG9wLWxlZnQgewogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLmJvdHRvbS1yaWdodCB7CiAgICAgICAgYm90dG9tOiAxMDAlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLmRyb3Bkb3duLmJvdHRvbS1sZWZ0IHsKICAgICAgICBib3R0b206IDEwMCU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIFVzZXIgc2VjdGlvbiAqLwogICAgICAudXNlci1zZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgIH0KCiAgICAgIC51c2VyLWluZm8gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC51c2VyLWF2YXRhciBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub25saW5lIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjNGNhZjUwOwogICAgICB9CgogICAgICAudXNlci1zdGF0dXMub2ZmbGluZSB7CiAgICAgICAgYmFja2dyb3VuZDogIzc1NzU3NTsKICAgICAgfQoKICAgICAgLnVzZXItc3RhdHVzLmJ1c3kgewogICAgICAgIGJhY2tncm91bmQ6ICNmNDQzMzY7CiAgICAgIH0KCiAgICAgIC51c2VyLXN0YXR1cy5hd2F5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmY5ODAwOwogICAgICB9CgogICAgICAudXNlci1kZXRhaWxzIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnVzZXItbmFtZSB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgIH0KCiAgICAgIC51c2VyLWVtYWlsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNjY2IiwiIzk5OSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAvKiBNZW51IHNlY3Rpb24gKi8KICAgICAgLm1lbnUtc2VjdGlvbiB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzMzMyIsIiNjY2MiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudS1pdGVtOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA0KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA4KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51LWl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgogICAgICAubWVudS1pdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51LXNob3J0Y3V0IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tZW51LWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZTBlMGUwIiwiIzIwMjAyMCIpfTsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CgogICAgICAvKiBCYWNrZHJvcCBmb3IgbW9iaWxlICovCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5iYWNrZHJvcCB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICBib3R0b206IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICAgICAgICB6LWluZGV4OiAke2ZpLmJhY2tkcm9wLmRyb3Bkb3dufTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7CiAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2lzb3Blbl0pIC5iYWNrZHJvcCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgICAgICB9CgogICAgICAgIC5kcm9wZG93biB7CiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHJpZ2h0OiBhdXRvOwogICAgICAgICAgYm90dG9tOiBhdXRvOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC45NSk7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsKICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzMnB4KTsKICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2lzb3Blbl0pIC5kcm9wZG93biB7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJiYWNrZHJvcCIgQGNsaWNrPSR7KCk9PnRoaXMuY2xvc2UoKX0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImRyb3Bkb3duICR7dGhpcy5wb3NpdGlvbn0iPgogICAgICAgICR7dGhpcy51c2VyP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItYXZhdGFyIj4KICAgICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj9DYDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOnRoaXMuZ2V0SW5pdGlhbHModGhpcy51c2VyLm5hbWUpfQogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuc3RhdHVzP0NgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVzZXItc3RhdHVzICR7dGhpcy51c2VyLnN0YXR1c30iPjwvZGl2PgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWRldGFpbHMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1uYW1lIj4ke3RoaXMudXNlci5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgJHt0aGlzLnVzZXIuZW1haWw/Q2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1lbWFpbCI+JHt0aGlzLnVzZXIuZW1haWx9PC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1zZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51SXRlbXMubWFwKHc9PnRoaXMucmVuZGVyTWVudUl0ZW0odykpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTWVudUl0ZW0odyl7aWYoImRpdmlkZXIiaW4gdyYmdy5kaXZpZGVyKXJldHVybiBDYDxkaXYgY2xhc3M9Im1lbnUtZGl2aWRlciI+PC9kaXY+YDtsZXQgaz13O3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJtZW51LWl0ZW0iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZU1lbnVDbGljayhrKX0+CiAgICAgICAgJHtrLmljb25OYW1lP0NgCiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHtrLmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LWl0ZW0tdGV4dCI+JHtrLm5hbWV9PC9zcGFuPgogICAgICAgICR7ay5zaG9ydGN1dD9DYAogICAgICAgICAgPHNwYW4gY2xhc3M9Im1lbnUtc2hvcnRjdXQiPiR7ay5zaG9ydGN1dH08L3NwYW4+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldEluaXRpYWxzKHcpe3JldHVybiB3LnNwbGl0KCIgIikubWFwKGs9PmtbMF0pLmpvaW4oIiIpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMCwyKX1hc3luYyBoYW5kbGVNZW51Q2xpY2sodyl7YXdhaXQgdy5hY3Rpb24oKSx0aGlzLmNsb3NlKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibWVudS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06d30sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1vcGVuKCl7dGhpcy5pc09wZW49ITB9Y2xvc2UoKXt0aGlzLmlzT3Blbj0hMX10b2dnbGUoKXt0aGlzLmlzT3Blbj0hdGhpcy5pc09wZW59YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrPXRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrLmJpbmQodGhpcyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlT3V0c2lkZUNsaWNrKX1oYW5kbGVPdXRzaWRlQ2xpY2sodyl7aWYodGhpcy5pc09wZW4mJiF0aGlzLmNvbnRhaW5zKHcudGFyZ2V0KSl7bGV0IGs9dGhpcy5wYXJlbnRFbGVtZW50O2lmKGsmJmsuY29udGFpbnMody50YXJnZXQpKXJldHVybjt0aGlzLmNsb3NlKCl9fWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxnYyh0aGlzLGIpfXN0YXRpY3tnYyhpLHIpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgJGEsenIsaXNyLGU2ZT1wKCgpPT57eGUoKTtLdCgpOyQ0KCk7d2koKTtYMnIoKTtKMnIoKTtlc3IoKTtvcigpO3I2ZSgpO2k2ZSgpOyRhPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0senI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGlzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtYXBwdWktYXBwYmFyIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXSx3ZSxJPVtdLG5lPVtdLGtlLFk9W10sQT1bXSxMLFU9W10sVj1bXSxYLGRlPVtdLHZlPVtdO3ZhciBMZT1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpBcnJheX0pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOlN0cmluZ30pXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpPYmplY3R9KV0sTz1baih7dHlwZTpBcnJheX0pXSxGPVtqKHt0eXBlOkJvb2xlYW59KV0sUj1baih7dHlwZTpCb29sZWFufSldLCQ9W2ooe3R5cGU6TnVtYmVyfSldLHE9W2ooe3R5cGU6Qm9vbGVhbn0pXSxlZT1bZmUoKV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxYPVtmZSgpXSwkYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+Im1lbnVJdGVtcyJpbiBILGdldDpIPT5ILm1lbnVJdGVtcyxzZXQ6KEgsdGUpPT57SC5tZW51SXRlbXM9dGV9fSxtZXRhZGF0YTpXfSxvLHMpLCRhKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnJlYWRjcnVtYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJicmVhZGNydW1icyJpbiBILGdldDpIPT5ILmJyZWFkY3J1bWJzLHNldDooSCx0ZSk9PntILmJyZWFkY3J1bWJzPXRlfX0sbWV0YWRhdGE6V30sYyx1KSwkYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJyZWFkY3J1bWJTZXBhcmF0b3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJicmVhZGNydW1iU2VwYXJhdG9yImluIEgsZ2V0Okg9PkguYnJlYWRjcnVtYlNlcGFyYXRvcixzZXQ6KEgsdGUpPT57SC5icmVhZGNydW1iU2VwYXJhdG9yPXRlfX0sbWV0YWRhdGE6V30saCxmKSwkYSh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dXaW5kb3dDb250cm9scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InNob3dXaW5kb3dDb250cm9scyJpbiBILGdldDpIPT5ILnNob3dXaW5kb3dDb250cm9scyxzZXQ6KEgsdGUpPT57SC5zaG93V2luZG93Q29udHJvbHM9dGV9fSxtZXRhZGF0YTpXfSx2LGIpLCRhKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXNlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InVzZXIiaW4gSCxnZXQ6SD0+SC51c2VyLHNldDooSCx0ZSk9PntILnVzZXI9dGV9fSxtZXRhZGF0YTpXfSx3LGspLCRhKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZmlsZU1lbnVJdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InByb2ZpbGVNZW51SXRlbXMiaW4gSCxnZXQ6SD0+SC5wcm9maWxlTWVudUl0ZW1zLHNldDooSCx0ZSk9PntILnByb2ZpbGVNZW51SXRlbXM9dGV9fSxtZXRhZGF0YTpXfSx6LE0pLCRhKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NlYXJjaCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InNob3dTZWFyY2giaW4gSCxnZXQ6SD0+SC5zaG93U2VhcmNoLHNldDooSCx0ZSk9PntILnNob3dTZWFyY2g9dGV9fSxtZXRhZGF0YTpXfSxELE4pLCRhKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0FjdGl2aXR5TG9nVG9nZ2xlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4ic2hvd0FjdGl2aXR5TG9nVG9nZ2xlImluIEgsZ2V0Okg9Pkguc2hvd0FjdGl2aXR5TG9nVG9nZ2xlLHNldDooSCx0ZSk9PntILnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT10ZX19LG1ldGFkYXRhOld9LF8sUyksJGEodGhpcyxudWxsLCQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ0NvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4iYWN0aXZpdHlMb2dDb3VudCJpbiBILGdldDpIPT5ILmFjdGl2aXR5TG9nQ291bnQsc2V0OihILHRlKT0+e0guYWN0aXZpdHlMb2dDb3VudD10ZX19LG1ldGFkYXRhOld9LFQsRSksJGEodGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ0FjdGl2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImFjdGl2aXR5TG9nQWN0aXZlImluIEgsZ2V0Okg9PkguYWN0aXZpdHlMb2dBY3RpdmUsc2V0OihILHRlKT0+e0guYWN0aXZpdHlMb2dBY3RpdmU9dGV9fSxtZXRhZGF0YTpXfSxCLEcpLCRhKHRoaXMsbnVsbCxlZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZU1lbnUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJhY3RpdmVNZW51ImluIEgsZ2V0Okg9PkguYWN0aXZlTWVudSxzZXQ6KEgsdGUpPT57SC5hY3RpdmVNZW51PXRlfX0sbWV0YWRhdGE6V30sUCxnZSksJGEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkRyb3Bkb3ducyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+Im9wZW5Ecm9wZG93bnMiaW4gSCxnZXQ6SD0+SC5vcGVuRHJvcGRvd25zLHNldDooSCx0ZSk9PntILm9wZW5Ecm9wZG93bnM9dGV9fSxtZXRhZGF0YTpXfSxJLG5lKSwkYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmb2N1c2VkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImZvY3VzZWRJdGVtImluIEgsZ2V0Okg9PkguZm9jdXNlZEl0ZW0sc2V0OihILHRlKT0+e0guZm9jdXNlZEl0ZW09dGV9fSxtZXRhZGF0YTpXfSxZLEEpLCRhKHRoaXMsbnVsbCxMLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZm9jdXNlZERyb3Bkb3duSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImZvY3VzZWREcm9wZG93bkl0ZW0iaW4gSCxnZXQ6SD0+SC5mb2N1c2VkRHJvcGRvd25JdGVtLHNldDooSCx0ZSk9PntILmZvY3VzZWREcm9wZG93bkl0ZW09dGV9fSxtZXRhZGF0YTpXfSxVLFYpLCRhKHRoaXMsbnVsbCxYLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQcm9maWxlRHJvcGRvd25PcGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4iaXNQcm9maWxlRHJvcGRvd25PcGVuImluIEgsZ2V0Okg9PkguaXNQcm9maWxlRHJvcGRvd25PcGVuLHNldDooSCx0ZSk9PntILmlzUHJvZmlsZURyb3Bkb3duT3Blbj10ZX19LG1ldGFkYXRhOld9LGRlLHZlKSwkYShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpXfSxudWxsLHIpLExlPWk9dC52YWx1ZSxXJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOld9KX1zdGF0aWMgZGVtbz1aMnI7c3RhdGljIGRlbW9Hcm91cHM9WyJBcHAgVUkiXTsjZT16cih0aGlzLG8sW10pO2dldCBtZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVudUl0ZW1zKFcpe3RoaXMuI2U9V30jdD0oenIodGhpcyxzKSx6cih0aGlzLGMsIiIpKTtnZXQgYnJlYWRjcnVtYnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYnJlYWRjcnVtYnMoVyl7dGhpcy4jdD1XfSNyPSh6cih0aGlzLHUpLHpyKHRoaXMsaCwiID4gIikpO2dldCBicmVhZGNydW1iU2VwYXJhdG9yKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGJyZWFkY3J1bWJTZXBhcmF0b3IoVyl7dGhpcy4jcj1XfSNpPSh6cih0aGlzLGYpLHpyKHRoaXMsdiwhMCkpO2dldCBzaG93V2luZG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1dpbmRvd0NvbnRyb2xzKFcpe3RoaXMuI2k9V30jYT0oenIodGhpcyxiKSx6cih0aGlzLHcsdm9pZCAwKSk7Z2V0IHVzZXIoKXtyZXR1cm4gdGhpcy4jYX1zZXQgdXNlcihXKXt0aGlzLiNhPVd9I249KHpyKHRoaXMsayksenIodGhpcyx6LFtdKSk7Z2V0IHByb2ZpbGVNZW51SXRlbXMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgcHJvZmlsZU1lbnVJdGVtcyhXKXt0aGlzLiNuPVd9I289KHpyKHRoaXMsTSksenIodGhpcyxELCExKSk7Z2V0IHNob3dTZWFyY2goKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd1NlYXJjaChXKXt0aGlzLiNvPVd9I3M9KHpyKHRoaXMsTiksenIodGhpcyxfLCExKSk7Z2V0IHNob3dBY3Rpdml0eUxvZ1RvZ2dsZSgpe3JldHVybiB0aGlzLiNzfXNldCBzaG93QWN0aXZpdHlMb2dUb2dnbGUoVyl7dGhpcy4jcz1XfSNsPSh6cih0aGlzLFMpLHpyKHRoaXMsVCwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jbH1zZXQgYWN0aXZpdHlMb2dDb3VudChXKXt0aGlzLiNsPVd9I2M9KHpyKHRoaXMsRSksenIodGhpcyxCLCExKSk7Z2V0IGFjdGl2aXR5TG9nQWN0aXZlKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGFjdGl2aXR5TG9nQWN0aXZlKFcpe3RoaXMuI2M9V30jZD0oenIodGhpcyxHKSx6cih0aGlzLFAsbnVsbCkpO2dldCBhY3RpdmVNZW51KCl7cmV0dXJuIHRoaXMuI2R9c2V0IGFjdGl2ZU1lbnUoVyl7dGhpcy4jZD1XfSN1PSh6cih0aGlzLGdlKSx6cih0aGlzLEksbmV3IFNldCkpO2dldCBvcGVuRHJvcGRvd25zKCl7cmV0dXJuIHRoaXMuI3V9c2V0IG9wZW5Ecm9wZG93bnMoVyl7dGhpcy4jdT1XfSNwPSh6cih0aGlzLG5lKSx6cih0aGlzLFksbnVsbCkpO2dldCBmb2N1c2VkSXRlbSgpe3JldHVybiB0aGlzLiNwfXNldCBmb2N1c2VkSXRlbShXKXt0aGlzLiNwPVd9I2g9KHpyKHRoaXMsQSksenIodGhpcyxVLC0xKSk7Z2V0IGZvY3VzZWREcm9wZG93bkl0ZW0oKXtyZXR1cm4gdGhpcy4jaH1zZXQgZm9jdXNlZERyb3Bkb3duSXRlbShXKXt0aGlzLiNoPVd9I2Y9KHpyKHRoaXMsViksenIodGhpcyxkZSwhMSkpO2dldCBpc1Byb2ZpbGVEcm9wZG93bk9wZW4oKXtyZXR1cm4gdGhpcy4jZn1zZXQgaXNQcm9maWxlRHJvcGRvd25PcGVuKFcpe3RoaXMuI2Y9V31zdGF0aWMgc3R5bGVzPVEycjtyZW5kZXIoKXtyZXR1cm4gSzJyKHRoaXMpfXJlbmRlck1lbnVJdGVtcygpe3JldHVybiBDYAogICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgoVyxIKT0+dGhpcy5yZW5kZXJNZW51SXRlbShXLGBtZW51LSR7SH1gKSl9CiAgICBgfXJlbmRlck1lbnVJdGVtKFcsSCl7aWYoImRpdmlkZXIiaW4gVyYmVy5kaXZpZGVyKXJldHVybiBDYDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IHRlPVcsYmU9dGhpcy5hY3RpdmVNZW51PT09SCx1ZT10ZS5zdWJtZW51JiZ0ZS5zdWJtZW51Lmxlbmd0aD4wO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtICR7YmU/ImFjdGl2ZSI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke3RlLmRpc2FibGVkfQogICAgICAgIHRhYmluZGV4PSIke3RlLmRpc2FibGVkPy0xOjB9IgogICAgICAgIGRhdGEtaXRlbS1pZD0iJHtIfSIKICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVNZW51Q2xpY2sodGUsSCl9CiAgICAgICAgQGtleWRvd249JHtDZT0+dGhpcy5oYW5kbGVNZW51S2V5ZG93bihDZSx0ZSxIKX0KICAgICAgICByb2xlPSJtZW51aXRlbSIKICAgICAgICBhcmlhLWhhc3BvcHVwPSIke3VlfSIKICAgICAgICBhcmlhLWV4cGFuZGVkPSIke2JlfSIKICAgICAgPgogICAgICAgICR7dGUuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIC5pY29uPSIke2BsdWNpZGU6JHt0ZS5pY29uTmFtZX1gfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAke3RlLm5hbWV9CiAgICAgICAgJHt1ZT90aGlzLnJlbmRlckRyb3Bkb3duKHRlLnN1Ym1lbnUsSCxiZSk6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJEcm9wZG93bihXLEgsdGUpe3JldHVybiBDYAogICAgICA8ZGl2IAogICAgICAgIGNsYXNzPSJkcm9wZG93biAke3RlPyJvcGVuIjoiIn0iIAogICAgICAgIEBjbGljaz0ke2JlPT5iZS5zdG9wUHJvcGFnYXRpb24oKX0KICAgICAgICBAa2V5ZG93bj0ke2JlPT50aGlzLmhhbmRsZURyb3Bkb3duS2V5ZG93bihiZSxXLEgpfQogICAgICAgIHRhYmluZGV4PSIke3RlPzA6LTF9IgogICAgICAgIHJvbGU9Im1lbnUiCiAgICAgID4KICAgICAgICAke1cubWFwKChiZSx1ZSk9PnRoaXMucmVuZGVyRHJvcGRvd25JdGVtKGJlLGAke0h9LSR7dWV9YCkpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRHJvcGRvd25JdGVtKFcsSCl7aWYoImRpdmlkZXIiaW4gVyYmVy5kaXZpZGVyKXJldHVybiBDYDxkaXYgY2xhc3M9ImRyb3Bkb3duLWRpdmlkZXIiPjwvZGl2PmA7bGV0IHRlPVcsYmU9cGFyc2VJbnQoSC5zcGxpdCgiLSIpLnBvcCgpfHwiMCIpLHVlPXRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT09PWJlO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImRyb3Bkb3duLWl0ZW0gJHt1ZT8iZm9jdXNlZCI6IiJ9IgogICAgICAgID9kaXNhYmxlZD0ke3RlLmRpc2FibGVkfQogICAgICAgIEBjbGljaz0keygpPT50aGlzLmhhbmRsZURyb3Bkb3duSXRlbUNsaWNrKHRlKX0KICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09YmV9CiAgICAgICAgcm9sZT0ibWVudWl0ZW0iCiAgICAgICAgdGFiaW5kZXg9IiR7dGUuZGlzYWJsZWQ/LTE6MH0iCiAgICAgID4KICAgICAgICAke3RlLmljb25OYW1lP0NgPGRlZXMtaWNvbiAuaWNvbj0iJHtgbHVjaWRlOiR7dGUuaWNvbk5hbWV9YH0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgPHNwYW4+JHt0ZS5uYW1lfTwvc3Bhbj4KICAgICAgICAke3RlLnNob3J0Y3V0P0NgPHNwYW4gY2xhc3M9InNob3J0Y3V0Ij4ke3RlLnNob3J0Y3V0fTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQnJlYWRjcnVtYnMoKXtpZighdGhpcy5icmVhZGNydW1icylyZXR1cm4gQ2BgO2xldCBXPXRoaXMuYnJlYWRjcnVtYnMuc3BsaXQodGhpcy5icmVhZGNydW1iU2VwYXJhdG9yKTtyZXR1cm4gQ2AKICAgICAgJHtXLm1hcCgoSCx0ZSk9PkNgCiAgICAgICAgJHt0ZT4wP0NgPHNwYW4gY2xhc3M9ImJyZWFkY3J1bWItc2VwYXJhdG9yIj4ke3RoaXMuYnJlYWRjcnVtYlNlcGFyYXRvcn08L3NwYW4+YDoiIn0KICAgICAgICA8c3BhbiAKICAgICAgICAgIGNsYXNzPSJicmVhZGNydW1iLWl0ZW0iIAogICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQnJlYWRjcnVtYkNsaWNrKEgsdGUpfQogICAgICAgID4KICAgICAgICAgICR7SH0KICAgICAgICA8L3NwYW4+CiAgICAgIGApfQogICAgYH1yZW5kZXJBY2NvdW50U2VjdGlvbigpe3JldHVybiBDYAogICAgICAke3RoaXMuc2hvd1NlYXJjaD9DYAogICAgICAgIDxkZWVzLWljb24KICAgICAgICAgIGNsYXNzPSJzZWFyY2gtaWNvbiIKICAgICAgICAgIC5pY29uPSR7Imx1Y2lkZTpzZWFyY2gifQogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVTZWFyY2hDbGlja30KICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgIGA6IiJ9CiAgICAgICR7dGhpcy51c2VyP0NgCiAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLWluZm8iIEBjbGljaz0ke3RoaXMuaGFuZGxlVXNlckNsaWNrfT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1hdmF0YXIiPgogICAgICAgICAgICAgICR7dGhpcy51c2VyLmF2YXRhcj9DYDxpbWcgc3JjPSIke3RoaXMudXNlci5hdmF0YXJ9IiBhbHQ9IiR7dGhpcy51c2VyLm5hbWV9Ij5gOkNgJHt0aGlzLnVzZXIubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX1gfQogICAgICAgICAgICAgICR7dGhpcy51c2VyLnN0YXR1cz9DYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXNlci1zdGF0dXMgJHt0aGlzLnVzZXIuc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxzcGFuPiR7dGhpcy51c2VyLm5hbWV9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGVlcy1hcHB1aS1wcm9maWxlZHJvcGRvd24KICAgICAgICAgICAgLnVzZXI9JHt0aGlzLnVzZXJ9CiAgICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLnByb2ZpbGVNZW51SXRlbXN9CiAgICAgICAgICAgIC5pc09wZW49JHt0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbn0KICAgICAgICAgICAgLnBvc2l0aW9uPSR7InRvcC1yaWdodCJ9CiAgICAgICAgICAgIEBtZW51LXNlbGVjdD0ke1c9PnRoaXMuaGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoVyl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXByb2ZpbGVkcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgJHt0aGlzLnNob3dBY3Rpdml0eUxvZ1RvZ2dsZT9DYAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJhY3Rpdml0eS10b2dnbGUgJHt0aGlzLmFjdGl2aXR5TG9nQWN0aXZlPyJhY3RpdmUiOiIifSIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQWN0aXZpdHlUb2dnbGV9CiAgICAgICAgICB0aXRsZT0iQWN0aXZpdHkgTG9nIgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmFjdGl2aXR5In0+PC9kZWVzLWljb24+CiAgICAgICAgICAke3RoaXMuYWN0aXZpdHlMb2dDb3VudD4wP0NgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJhY3Rpdml0eS1iYWRnZSI+JHt0aGlzLmFjdGl2aXR5TG9nQ291bnQ+OTk/Ijk5KyI6dGhpcy5hY3Rpdml0eUxvZ0NvdW50fTwvc3Bhbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWhhbmRsZU1lbnVDbGljayhXLEgpe1cuZGlzYWJsZWR8fChXLnN1Ym1lbnUmJlcuc3VibWVudS5sZW5ndGg+MD90aGlzLmFjdGl2ZU1lbnU9PT1IP3RoaXMuYWN0aXZlTWVudT1udWxsOnRoaXMuYWN0aXZlTWVudT1IOih0aGlzLmFjdGl2ZU1lbnU9bnVsbCxXLmFjdGlvbiYmVy5hY3Rpb24oKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtZW51LXNlbGVjdCIse2RldGFpbDp7aXRlbTpXfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKSl9aGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soVyl7Vy5kaXNhYmxlZHx8KHRoaXMuYWN0aXZlTWVudT1udWxsLFcuYWN0aW9uJiZXLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1lbnUtc2VsZWN0Iix7ZGV0YWlsOntpdGVtOld9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZU1lbnVLZXlkb3duKFcsSCx0ZSl7c3dpdGNoKFcua2V5KXtjYXNlIkVudGVyIjpjYXNlIiAiOlcucHJldmVudERlZmF1bHQoKSx0aGlzLmhhbmRsZU1lbnVDbGljayhILHRlKTticmVhaztjYXNlIkFycm93RG93biI6aWYoSC5zdWJtZW51JiZ0aGlzLmFjdGl2ZU1lbnU9PT10ZSl7Vy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0wO2xldCBiZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEguc3VibWVudSwtMSwxKTtiZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPWJlLHNldFRpbWVvdXQoKCk9PntsZXQgdWU9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5kcm9wZG93bi5vcGVuIik7dWUmJnVlLmZvY3VzKCl9LDApKX1icmVhaztjYXNlIkVzY2FwZSI6dGhpcy5hY3RpdmVNZW51PW51bGwsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPS0xO2JyZWFrO2Nhc2UiVGFiIjp0aGlzLmFjdGl2ZU1lbnU9PT10ZSYmKHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMSk7YnJlYWs7Y2FzZSJBcnJvd1JpZ2h0IjpXLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRNZW51SXRlbSh0ZSwxKTticmVhaztjYXNlIkFycm93TGVmdCI6Vy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNOZXh0TWVudUl0ZW0odGUsLTEpO2JyZWFrfX1oYW5kbGVCcmVhZGNydW1iQ2xpY2soVyxIKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJicmVhZGNydW1iLW5hdmlnYXRlIix7ZGV0YWlsOnticmVhZGNydW1iOlcsaW5kZXg6SH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1jbGljayIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQWN0aXZpdHlUb2dnbGUoKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhY3Rpdml0eS10b2dnbGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZVVzZXJDbGljaygpe3RoaXMuaXNQcm9maWxlRHJvcGRvd25PcGVuPSF0aGlzLmlzUHJvZmlsZURyb3Bkb3duT3Blbix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlUHJvZmlsZU1lbnVTZWxlY3QoVyl7dGhpcy5pc1Byb2ZpbGVEcm9wZG93bk9wZW49ITEsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicHJvZmlsZS1tZW51LXNlbGVjdCIse2RldGFpbDpXLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUdsb2JhbENsaWNrKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVEb2N1bWVudENsaWNrKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlRG9jdW1lbnRDbGljayl9aGFuZGxlR2xvYmFsQ2xpY2s9KHpyKHRoaXMsdmUpLFc9PntXLnN0b3BQcm9wYWdhdGlvbigpfSk7aGFuZGxlRG9jdW1lbnRDbGljaz0oKT0+e3RoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMX07aGFuZGxlRHJvcGRvd25LZXlkb3duKFcsSCx0ZSl7bGV0IGJlPUguZmlsdGVyKHVlPT4hKCJkaXZpZGVyImluIHVlJiZ1ZS5kaXZpZGVyKSk7c3dpdGNoKFcua2V5KXtjYXNlIkFycm93RG93biI6Vy5wcmV2ZW50RGVmYXVsdCgpO2xldCB1ZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEgsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLDEpO3VlIT09LTEmJih0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09dWUpO2JyZWFrO2Nhc2UiQXJyb3dVcCI6Vy5wcmV2ZW50RGVmYXVsdCgpO2xldCBDZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEgsdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtLC0xKTtDZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPUNlKTticmVhaztjYXNlIkVudGVyIjppZihXLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtIT09LTEpe2xldCBJZT1iZVt0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW1dO0llJiYiYWN0aW9uImluIEllJiYhSWUuZGlzYWJsZWQmJnRoaXMuaGFuZGxlRHJvcGRvd25JdGVtQ2xpY2soSWUpfWJyZWFrO2Nhc2UiSG9tZSI6Vy5wcmV2ZW50RGVmYXVsdCgpO2xldCBoZT10aGlzLmZpbmROZXh0VmFsaWRJdGVtKEgsLTEsMSk7aGUhPT0tMSYmKHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT1oZSk7YnJlYWs7Y2FzZSJFbmQiOlcucHJldmVudERlZmF1bHQoKTtsZXQgaWU9dGhpcy5maW5kTmV4dFZhbGlkSXRlbShILEgubGVuZ3RoLC0xKTtpZSE9PS0xJiYodGhpcy5mb2N1c2VkRHJvcGRvd25JdGVtPWllKTticmVhaztjYXNlIkVzY2FwZSI6Vy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWN0aXZlTWVudT1udWxsLHRoaXMuZm9jdXNlZERyb3Bkb3duSXRlbT0tMTtsZXQgU2U9dGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3IoIi5tZW51SXRlbS5hY3RpdmUiKTtTZSYmU2UuZm9jdXMoKTticmVha319ZmluZE5leHRWYWxpZEl0ZW0oVyxILHRlKXtsZXQgYmU9SCt0ZTtmb3IoO2JlPj0wJiZiZTxXLmxlbmd0aDspe2xldCB1ZT1XW2JlXTtpZighKCJkaXZpZGVyImluIHVlJiZ1ZS5kaXZpZGVyKSYmISgiZGlzYWJsZWQiaW4gdWUmJnVlLmRpc2FibGVkKSlyZXR1cm4gYmU7YmUrPXRlfXJldHVybi0xfWZvY3VzTmV4dE1lbnVJdGVtKFcsSCl7bGV0IHRlPUFycmF5LmZyb20odGhpcy5yZW5kZXJSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tZW51SXRlbSIpKSxiZT10ZS5maW5kSW5kZXgoaGU9PmhlLmdldEF0dHJpYnV0ZSgiZGF0YS1pdGVtLWlkIik9PT1XKTtpZihiZT09PS0xKXJldHVybjtsZXQgdWU9YmUrSDt1ZTwwP3VlPXRlLmxlbmd0aC0xOnVlPj10ZS5sZW5ndGgmJih1ZT0wKTtsZXQgQ2U9MDtmb3IoO0NlPHRlLmxlbmd0aDspe2xldCBoZT10ZVt1ZV07aWYoIWhlLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKSl7aGUuZm9jdXMoKSx0aGlzLmFjdGl2ZU1lbnUmJih0aGlzLmFjdGl2ZU1lbnU9bnVsbCx0aGlzLmZvY3VzZWREcm9wZG93bkl0ZW09LTEpO2JyZWFrfXVlPSh1ZStIK3RlLmxlbmd0aCkldGUubGVuZ3RoLENlKyt9fXN0YXRpY3t6cihpLHIpfX07cmV0dXJuIExlPWl9KSgpfSk7dmFyIGE2ZT1wKCgpPT57ZTZlKCl9KTt2YXIgYXNyLG5zcixvc3I9cCgoKT0+e3hlKCk7cDEoKTtuc3I9KCk9PkMoYXNyfHwoYXNyPXM1KFtgCiAgICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWExYTFhOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tbGFiZWwgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICM3MzczNzM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tYm90dG9tYmFyLXdyYXBwZXIgewogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAgMCUgMjAlKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tbGFiZWwiPkJvdHRvbSBiYXIgd2l0aCBzdGF0dXMgd2lkZ2V0cyBhbmQgYWN0aW9uczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ib3R0b21iYXItd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLWFwcHVpLWJvdHRvbWJhcgogICAgICAgICAgICAgIGlkPSJkZW1vLWJvdHRvbWJhciIKICAgICAgICAgICAgPjwvZGVlcy1hcHB1aS1ib3R0b21iYXI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tbGFiZWwiPkNvbnRyb2xzPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgZmxleC13cmFwOiB3cmFwOyI+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iYWRkU3VjY2Vzc1dpZGdldCgpIj5BZGQgU3VjY2VzcyBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRXYXJuaW5nV2lkZ2V0KCkiPkFkZCBXYXJuaW5nIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZEVycm9yV2lkZ2V0KCkiPkFkZCBFcnJvciBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRMb2FkaW5nV2lkZ2V0KCkiPkFkZCBMb2FkaW5nIFdpZGdldDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFkZFJpZ2h0V2lkZ2V0KCkiPkFkZCBSaWdodCBXaWRnZXQ8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJhZGRBY3Rpb24oKSI+QWRkIEFjdGlvbjwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImNsZWFyQWxsKCkiPkNsZWFyIEFsbDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CiAgICAgICAgY29uc3QgYm90dG9tYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlbW8tYm90dG9tYmFyJyk7CgogICAgICAgIC8vIFdhaXQgZm9yIGNvbXBvbmVudCB0byBpbml0aWFsaXplCiAgICAgICAgYXdhaXQgYm90dG9tYmFyLnVwZGF0ZUNvbXBsZXRlOwoKICAgICAgICAvLyBBZGQgaW5pdGlhbCB3aWRnZXRzCiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICBpZDogJ3N0YXR1cycsCiAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTphY3Rpdml0eScsCiAgICAgICAgICBsYWJlbDogJ1N5c3RlbSBPbmxpbmUnLAogICAgICAgICAgc3RhdHVzOiAnc3VjY2VzcycsCiAgICAgICAgICB0b29sdGlwOiAnQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwnLAogICAgICAgICAgb25DbGljazogKCkgPT4gY29uc29sZS5sb2coJ1N0YXR1cyBjbGlja2VkJyksCiAgICAgICAgICBjb250ZXh0TWVudUl0ZW1zOiBbCiAgICAgICAgICAgIHsgbmFtZTogJ1ZpZXcgRGV0YWlscycsIGljb25OYW1lOiAnbHVjaWRlOmluZm8nLCBhY3Rpb246ICgpID0+IGFsZXJ0KCdTeXN0ZW0gZGV0YWlscycpIH0sCiAgICAgICAgICAgIHsgZGl2aWRlcjogdHJ1ZSB9LAogICAgICAgICAgICB7IG5hbWU6ICdSZWZyZXNoIFN0YXR1cycsIGljb25OYW1lOiAnbHVjaWRlOnJlZnJlc2hDdycsIGFjdGlvbjogKCkgPT4gYWxlcnQoJ1JlZnJlc2hpbmcuLi4nKSB9LAogICAgICAgICAgXSwKICAgICAgICB9KTsKCiAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICBpZDogJ25vdGlmaWNhdGlvbnMnLAogICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6YmVsbCcsCiAgICAgICAgICBsYWJlbDogJzMgbm90aWZpY2F0aW9ucycsCiAgICAgICAgICBzdGF0dXM6ICd3YXJuaW5nJywKICAgICAgICAgIHRvb2x0aXA6ICdZb3UgaGF2ZSB1bnJlYWQgbm90aWZpY2F0aW9ucycsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25zb2xlLmxvZygnTm90aWZpY2F0aW9ucyBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgaWQ6ICd2ZXJzaW9uJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmdpdEJyYW5jaCcsCiAgICAgICAgICBsYWJlbDogJ3YxLjIuMycsCiAgICAgICAgICB0b29sdGlwOiAnQ3VycmVudCB2ZXJzaW9uJywKICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgb25DbGljazogKCkgPT4gY29uc29sZS5sb2coJ1ZlcnNpb24gY2xpY2tlZCcpLAogICAgICAgIH0pOwoKICAgICAgICAvLyBBZGQgaW5pdGlhbCBhY3Rpb25zCiAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7CiAgICAgICAgICBpZDogJ3NldHRpbmdzJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnNldHRpbmdzJywKICAgICAgICAgIHRvb2x0aXA6ICdTZXR0aW5ncycsCiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JywKICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFsZXJ0KCdTZXR0aW5ncyBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIGJvdHRvbWJhci5hZGRBY3Rpb24oewogICAgICAgICAgaWQ6ICdoZWxwJywKICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmhlbHBDaXJjbGUnLAogICAgICAgICAgdG9vbHRpcDogJ0hlbHAnLAogICAgICAgICAgcG9zaXRpb246ICdyaWdodCcsCiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBhbGVydCgnSGVscCBjbGlja2VkJyksCiAgICAgICAgfSk7CgogICAgICAgIC8vIERlbW8gY29udHJvbCBmdW5jdGlvbnMKICAgICAgICBsZXQgd2lkZ2V0Q291bnRlciA9IDA7CiAgICAgICAgbGV0IGFjdGlvbkNvdW50ZXIgPSAwOwoKICAgICAgICB3aW5kb3cuYWRkU3VjY2Vzc1dpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ3N1Y2Nlc3MtJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmNoZWNrQ2lyY2xlJywKICAgICAgICAgICAgbGFiZWw6ICdTdWNjZXNzICcgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJywKICAgICAgICAgICAgdG9vbHRpcDogJ1N1Y2Nlc3Mgd2lkZ2V0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgnc3VjY2Vzcy0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkV2FybmluZ1dpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ3dhcm5pbmctJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmFsZXJ0VHJpYW5nbGUnLAogICAgICAgICAgICBsYWJlbDogJ1dhcm5pbmcgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHN0YXR1czogJ3dhcm5pbmcnLAogICAgICAgICAgICB0b29sdGlwOiAnV2FybmluZyB3aWRnZXQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCd3YXJuaW5nLScgKyB3aWRnZXRDb3VudGVyKSwKICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHdpbmRvdy5hZGRFcnJvcldpZGdldCA9ICgpID0+IHsKICAgICAgICAgIHdpZGdldENvdW50ZXIrKzsKICAgICAgICAgIGJvdHRvbWJhci5hZGRXaWRnZXQoewogICAgICAgICAgICBpZDogJ2Vycm9yLScgKyB3aWRnZXRDb3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp4Q2lyY2xlJywKICAgICAgICAgICAgbGFiZWw6ICdFcnJvciAnICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLAogICAgICAgICAgICB0b29sdGlwOiAnRXJyb3Igd2lkZ2V0JywKICAgICAgICAgICAgb25DbGljazogKCkgPT4gYm90dG9tYmFyLnJlbW92ZVdpZGdldCgnZXJyb3ItJyArIHdpZGdldENvdW50ZXIpLAogICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgd2luZG93LmFkZExvYWRpbmdXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBjb25zdCBpZCA9ICdsb2FkaW5nLScgKyB3aWRnZXRDb3VudGVyOwogICAgICAgICAgYm90dG9tYmFyLmFkZFdpZGdldCh7CiAgICAgICAgICAgIGlkOiBpZCwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6bG9hZGVyMicsCiAgICAgICAgICAgIGxhYmVsOiAnTG9hZGluZy4uLicsCiAgICAgICAgICAgIHN0YXR1czogJ2FjdGl2ZScsCiAgICAgICAgICAgIGxvYWRpbmc6IHRydWUsCiAgICAgICAgICAgIHRvb2x0aXA6ICdMb2FkaW5nIGluIHByb2dyZXNzJywKICAgICAgICAgIH0pOwoKICAgICAgICAgIC8vIFNpbXVsYXRlIGNvbXBsZXRpb24gYWZ0ZXIgMyBzZWNvbmRzCiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgYm90dG9tYmFyLnVwZGF0ZVdpZGdldChpZCwgewogICAgICAgICAgICAgIGljb25OYW1lOiAnbHVjaWRlOmNoZWNrJywKICAgICAgICAgICAgICBsYWJlbDogJ0RvbmUhJywKICAgICAgICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJywKICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9LCAzMDAwKTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkUmlnaHRXaWRnZXQgPSAoKSA9PiB7CiAgICAgICAgICB3aWRnZXRDb3VudGVyKys7CiAgICAgICAgICBib3R0b21iYXIuYWRkV2lkZ2V0KHsKICAgICAgICAgICAgaWQ6ICdyaWdodC0nICsgd2lkZ2V0Q291bnRlciwKICAgICAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6aW5mbycsCiAgICAgICAgICAgIGxhYmVsOiAnUmlnaHQgJyArIHdpZGdldENvdW50ZXIsCiAgICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBib3R0b21iYXIucmVtb3ZlV2lkZ2V0KCdyaWdodC0nICsgd2lkZ2V0Q291bnRlciksCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuYWRkQWN0aW9uID0gKCkgPT4gewogICAgICAgICAgYWN0aW9uQ291bnRlcisrOwogICAgICAgICAgYm90dG9tYmFyLmFkZEFjdGlvbih7CiAgICAgICAgICAgIGlkOiAnYWN0aW9uLScgKyBhY3Rpb25Db3VudGVyLAogICAgICAgICAgICBpY29uTmFtZTogJ2x1Y2lkZTp6YXAnLAogICAgICAgICAgICB0b29sdGlwOiAnQWN0aW9uICcgKyBhY3Rpb25Db3VudGVyLAogICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7CiAgICAgICAgICAgICAgYWxlcnQoJ0FjdGlvbiAnICsgYWN0aW9uQ291bnRlciArICcgY2xpY2tlZCcpOwogICAgICAgICAgICAgIGJvdHRvbWJhci5yZW1vdmVBY3Rpb24oJ2FjdGlvbi0nICsgYWN0aW9uQ291bnRlcik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICB9KTsKICAgICAgICB9OwoKICAgICAgICB3aW5kb3cuY2xlYXJBbGwgPSAoKSA9PiB7CiAgICAgICAgICBib3R0b21iYXIuY2xlYXJXaWRnZXRzKCk7CiAgICAgICAgICBib3R0b21iYXIuY2xlYXJBY3Rpb25zKCk7CiAgICAgICAgICB3aWRnZXRDb3VudGVyID0gMDsKICAgICAgICAgIGFjdGlvbkNvdW50ZXIgPSAwOwogICAgICAgIH07CiAgICAgIDxcL3NjcmlwdD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgXSkpKX0pO3ZhciBuNmUsbGIsc3NyLG82ZT1wKCgpPT57eGUoKTtKZSgpO29yKCk7TWkoKTtvc3IoKTtuNmU9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxsYj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sc3NyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1hcHB1aS1ib3R0b21iYXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1bZmUoKV0sbjZlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2lkZ2V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+IndpZGdldHMiaW4gZixnZXQ6Zj0+Zi53aWRnZXRzLHNldDooZix4KT0+e2Yud2lkZ2V0cz14fX0sbWV0YWRhdGE6aH0sbyxzKSxuNmUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4iYWN0aW9ucyJpbiBmLGdldDpmPT5mLmFjdGlvbnMsc2V0OihmLHgpPT57Zi5hY3Rpb25zPXh9fSxtZXRhZGF0YTpofSxjLHUpLG42ZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPW5zcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPWxiKHRoaXMsbyxbXSk7Z2V0IHdpZGdldHMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgd2lkZ2V0cyhoKXt0aGlzLiNlPWh9I3Q9KGxiKHRoaXMscyksbGIodGhpcyxjLFtdKSk7Z2V0IGFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWN0aW9ucyhoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuYm90dG9tLWJhciB7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDYlKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAud2lkZ2V0OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCBkZWVzLWljb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAud2lkZ2V0LXNlcGFyYXRvciB7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDgwJSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFN0YXR1cyBjb2xvcnMgbWF0Y2hpbmcgZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyICovCiAgICAgIC53aWRnZXQuYWN0aXZlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQuc3VjY2VzcyB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC53YXJuaW5nIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuc3Bpbm5pbmcgewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kaXNhYmxlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IGg9dGhpcy53aWRnZXRzLmZpbHRlcihiPT5iLnBvc2l0aW9uIT09InJpZ2h0Iikuc29ydCgoYix5KT0+KGIub3JkZXJ8fDApLSh5Lm9yZGVyfHwwKSksZj10aGlzLndpZGdldHMuZmlsdGVyKGI9PmIucG9zaXRpb249PT0icmlnaHQiKS5zb3J0KChiLHkpPT4oYi5vcmRlcnx8MCktKHkub3JkZXJ8fDApKSx4PXRoaXMuYWN0aW9ucy5maWx0ZXIoYj0+Yi5wb3NpdGlvbj09PSJsZWZ0Iiksdj10aGlzLmFjdGlvbnMuZmlsdGVyKGI9PmIucG9zaXRpb24hPT0ibGVmdCIpO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tYmFyIj4KICAgICAgICA8IS0tIExlZnQgYWN0aW9ucyAtLT4KICAgICAgICAke3gubWFwKGI9PnRoaXMucmVuZGVyQWN0aW9uKGIpKX0KCiAgICAgICAgPCEtLSBMZWZ0IHdpZGdldHMgLS0+CiAgICAgICAgJHtoLm1hcCgoYix5KT0+Q2AKICAgICAgICAgICR7eT4wfHx4Lmxlbmd0aD4wP0NgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICAgICR7dGhpcy5yZW5kZXJXaWRnZXQoYil9CiAgICAgICAgYCl9CgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgogICAgICAgIDwhLS0gUmlnaHQgd2lkZ2V0cyAtLT4KICAgICAgICAke2YubWFwKChiLHkpPT5DYAogICAgICAgICAgJHt0aGlzLnJlbmRlcldpZGdldChiKX0KICAgICAgICAgICR7eTxmLmxlbmd0aC0xfHx2Lmxlbmd0aD4wP0NgPGRpdiBjbGFzcz0id2lkZ2V0LXNlcGFyYXRvciI+PC9kaXY+YDoiIn0KICAgICAgICBgKX0KCiAgICAgICAgPCEtLSBSaWdodCBhY3Rpb25zIC0tPgogICAgICAgICR7di5tYXAoYj0+dGhpcy5yZW5kZXJBY3Rpb24oYikpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KGgpe2xldCBmPWguc3RhdHVzJiZoLnN0YXR1cyE9PSJpZGxlIj9oLnN0YXR1czoiIix4PWguaWNvbk5hbWU/aC5pY29uTmFtZS5zdGFydHNXaXRoKCJsdWNpZGU6Iik/aC5pY29uTmFtZTpgbHVjaWRlOiR7aC5pY29uTmFtZX1gOiIiO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9IndpZGdldCAke2Z9IgogICAgICAgIHRpdGxlPSIke2gudG9vbHRpcHx8IiJ9IgogICAgICAgIEBjbGljaz0keygpPT5oLm9uQ2xpY2s/LigpfQogICAgICAgIEBjb250ZXh0bWVudT0ke3Y9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUodixoKX0KICAgICAgPgogICAgICAgICR7eD9DYAogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0ke3h9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgICAgY2xhc3M9IiR7aC5sb2FkaW5nPyJzcGlubmluZyI6IiJ9IgogICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgIGA6IiJ9CiAgICAgICAgJHtoLmxhYmVsP0NgPHNwYW4+JHtoLmxhYmVsfTwvc3Bhbj5gOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQWN0aW9uKGgpe2xldCBmPWguaWNvbk5hbWUuc3RhcnRzV2l0aCgibHVjaWRlOiIpP2guaWNvbk5hbWU6YGx1Y2lkZToke2guaWNvbk5hbWV9YDtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7aC5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICB0aXRsZT0iJHtoLnRvb2x0aXB8fCIifSIKICAgICAgICBAY2xpY2s9JHsoKT0+IWguZGlzYWJsZWQmJmgub25DbGljaz8uKCl9CiAgICAgID4KICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAuaWNvbj0ke2Z9CiAgICAgICAgICBpY29uU2l6ZT0iMTIiCiAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUoaCxmKXtpZighZi5jb250ZXh0TWVudUl0ZW1zfHxmLmNvbnRleHRNZW51SXRlbXMubGVuZ3RoPT09MClyZXR1cm47aC5wcmV2ZW50RGVmYXVsdCgpO2xldCB4PVtdO2ZvcihsZXQgdiBvZiBmLmNvbnRleHRNZW51SXRlbXMpdi5kaXZpZGVyP3gucHVzaCh7ZGl2aWRlcjohMH0pOngucHVzaCh7bmFtZTp2Lm5hbWUsaWNvbk5hbWU6di5pY29uTmFtZSxhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHYuYWN0aW9uKCl9LGRpc2FibGVkOnYuZGlzYWJsZWR9KTthd2FpdCBTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhoLHgpfWFkZFdpZGdldChoKXt0aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLmZpbHRlcihmPT5mLmlkIT09aC5pZCksdGhpcy53aWRnZXRzPVsuLi50aGlzLndpZGdldHMsaF19dXBkYXRlV2lkZ2V0KGgsZil7dGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoeD0+eC5pZD09PWg/ey4uLngsLi4uZn06eCl9cmVtb3ZlV2lkZ2V0KGgpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMuZmlsdGVyKGY9PmYuaWQhPT1oKX1nZXRXaWRnZXQoaCl7cmV0dXJuIHRoaXMud2lkZ2V0cy5maW5kKGY9PmYuaWQ9PT1oKX1jbGVhcldpZGdldHMoKXt0aGlzLndpZGdldHM9W119YWRkQWN0aW9uKGgpe3RoaXMuYWN0aW9ucz10aGlzLmFjdGlvbnMuZmlsdGVyKGY9PmYuaWQhPT1oLmlkKSx0aGlzLmFjdGlvbnM9Wy4uLnRoaXMuYWN0aW9ucyxoXX1yZW1vdmVBY3Rpb24oaCl7dGhpcy5hY3Rpb25zPXRoaXMuYWN0aW9ucy5maWx0ZXIoZj0+Zi5pZCE9PWgpfWNsZWFyQWN0aW9ucygpe3RoaXMuYWN0aW9ucz1bXX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbGIodGhpcyx1KX1zdGF0aWN7bGIoaSxyKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIGxzcj1wKCgpPT57bzZlKCl9KTt2YXIgY3NyLGRzcj1wKCgpPT57eGUoKTtjc3I9KCk9PkNgCiAgPHN0eWxlPgogICAgJHtvZWAKICAgICAgLmRlbW8tYmFja2dyb3VuZCB7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgbWFyZ2luOiAzMnB4IDAgMTZweCAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWN0aW9uLXRpdGxlOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk2OHB4KSB7CiAgICAgICAgLmdyaWQtM2NvbCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1iYWNrZ3JvdW5kIj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5EZWZhdWx0IFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUGFuZWwgQ29tcG9uZW50In0gLnN1YnRpdGxlPSR7IlRoZSBkZWZhdWx0IHBhbmVsIHZhcmlhbnQgd2l0aCBzaGFkY24taW5zcGlyZWQgc3R5bGluZyJ9PgogICAgICAgIDxwPlRoZSBwYW5lbCBjb21wb25lbnQgYXV0b21hdGljYWxseSBmb2xsb3dzIHRoZSB0aGVtZSBhbmQgcHJvdmlkZXMgY29uc2lzdGVudCBzdHlsaW5nIGZvciBncm91cGVkIGNvbnRlbnQuPC9wPgogICAgICAgIDxwPkl0J3MgcGVyZmVjdCBmb3IgY3JlYXRpbmcgc2VjdGlvbnMgaW4geW91ciBhcHBsaWNhdGlvbiB3aXRoIHByb3BlciBzcGFjaW5nIGFuZCBib3JkZXJzLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1sYXlvdXQiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGZWF0dXJlIE92ZXJ2aWV3In0gLnN1YnRpdGxlPSR7IktleSBjYXBhYmlsaXRpZXMifT4KICAgICAgICAgIDxwPkdyaWQgbGF5b3V0cyB3b3JrIGdyZWF0IHdpdGggcGFuZWxzIGZvciBjcmVhdGluZyBkYXNoYm9hcmRzIGFuZCBmZWF0dXJlIHNlY3Rpb25zLjwvcD4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5MZWFybiBNb3JlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlF1aWNrIEFjdGlvbnMifSAuc3VidGl0bGU9JHsiQ29tbW9uIHRhc2tzIn0+CiAgICAgICAgICA8cD5FYWNoIHBhbmVsIG1haW50YWlucyBjb25zaXN0ZW50IHNwYWNpbmcgYW5kIHN0eWxpbmcgYWNyb3NzIHlvdXIgYXBwbGljYXRpb24uPC9wPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkdldCBTdGFydGVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBWYXJpYW50czwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGVmYXVsdCBWYXJpYW50In0gLnZhcmlhbnQ9JHsiZGVmYXVsdCJ9PgogICAgICAgIDxwPlRoZSBkZWZhdWx0IHZhcmlhbnQgaGFzIGEgd2hpdGUgYmFja2dyb3VuZCwgc3VidGxlIGJvcmRlciwgYW5kIG1pbmltYWwgc2hhZG93LiBJdCdzIHRoZSBzdGFuZGFyZCBjaG9pY2UgZm9yIG1vc3QgY29udGVudC48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9ImRlZmF1bHQiPC9jb2RlPiBvciBvbWl0IHRoZSB2YXJpYW50IHByb3BlcnR5LjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ik91dGxpbmUgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJUcmFuc3BhcmVudCBiYWNrZ3JvdW5kIHdpdGggYm9yZGVyIn0gLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgIDxwPlRoZSBvdXRsaW5lIHZhcmlhbnQgcmVtb3ZlcyB0aGUgYmFja2dyb3VuZCBjb2xvciBhbmQgc2hhZG93LCBrZWVwaW5nIG9ubHkgdGhlIGJvcmRlci48L3A+CiAgICAgICAgPHA+VXNlIDxjb2RlPnZhcmlhbnQ9Im91dGxpbmUiPC9jb2RlPiBmb3IgYSBsaWdodGVyIHZpc3VhbCB3ZWlnaHQuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiR2hvc3QgVmFyaWFudCJ9IC5zdWJ0aXRsZT0keyJNaW5pbWFsIHN0eWxpbmcgZm9yIHN1YnRsZSBzZWN0aW9ucyJ9IC52YXJpYW50PSR7Imdob3N0In0+CiAgICAgICAgPHA+VGhlIGdob3N0IHZhcmlhbnQgaGFzIG5vIGJvcmRlciBvciBiYWNrZ3JvdW5kIGJ5IGRlZmF1bHQsIG9ubHkgc2hvd2luZyBhIHN1YnRsZSBiYWNrZ3JvdW5kIG9uIGhvdmVyLjwvcD4KICAgICAgICA8cD5Vc2UgPGNvZGU+dmFyaWFudD0iZ2hvc3QiPC9jb2RlPiBmb3IgdGhlIG1vc3QgbWluaW1hbCBhcHBlYXJhbmNlLjwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QYW5lbCBTaXplczwvaDI+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLTNjb2wiPgogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJTbWFsbCBQYW5lbCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5Db21wYWN0IHBhZGRpbmcgZm9yIGRlbnNlIGxheW91dHMuPC9wPgogICAgICAgICAgPHA+VXNlIDxjb2RlPnNpemU9InNtIjwvY29kZT48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAgIAogICAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJNZWRpdW0gUGFuZWwifSAuc2l6ZT0keyJtZCJ9PgogICAgICAgICAgPHA+RGVmYXVsdCBzaXplIHdpdGggYmFsYW5jZWQgc3BhY2luZy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibWQiPC9jb2RlPiBvciBvbWl0LjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkxhcmdlIFBhbmVsIn0gLnNpemU9JHsibGcifT4KICAgICAgICAgIDxwPkdlbmVyb3VzIHBhZGRpbmcgZm9yIHByb21pbmVudCBzZWN0aW9ucy48L3A+CiAgICAgICAgICA8cD5Vc2UgPGNvZGU+c2l6ZT0ibGciPC9jb2RlPjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGgyIGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Db21wbGV4IEV4YW1wbGVzPC9oMj4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiUGFuZWxzIHdvcmsgZ3JlYXQgZm9yIG9yZ2FuaXppbmcgZm9ybSBzZWN0aW9ucyJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJQcm9qZWN0IE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJEZXNjcmlwdGlvbiJ9IC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIAogICAgICAgICAgICAubGFiZWw9JHsiQ2F0ZWdvcnkifSAKICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiV2ViIERldmVsb3BtZW50IixrZXk6IndlYiJ9LHtvcHRpb246Ik1vYmlsZSBBcHAiLGtleToibW9iaWxlIn0se29wdGlvbjoiRGVza3RvcCBTb2Z0d2FyZSIsa2V5OiJkZXNrdG9wIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNyZWF0ZSBQcm9qZWN0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVscyJ9IC5zdWJ0aXRsZT0keyJQYW5lbHMgY2FuIGJlIG5lc3RlZCBmb3IgaGllcmFyY2hpY2FsIG9yZ2FuaXphdGlvbiJ9PgogICAgICAgIDxwPllvdSBjYW4gbmVzdCBwYW5lbHMgdG8gY3JlYXRlIG1vcmUgY29tcGxleCBsYXlvdXRzOjwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDEifSAudmFyaWFudD0keyJvdXRsaW5lIn0gLnNpemU9JHsic20ifT4KICAgICAgICAgIDxwPlRoaXMgaXMgYSBuZXN0ZWQgcGFuZWwgd2l0aCBvdXRsaW5lIHZhcmlhbnQgYW5kIHNtYWxsIHNpemUuPC9wPgogICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICAKICAgICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTmVzdGVkIFBhbmVsIDIifSAudmFyaWFudD0keyJnaG9zdCJ9IC5zaXplPSR7InNtIn0+CiAgICAgICAgICA8cD5UaGlzIGlzIGFub3RoZXIgbmVzdGVkIHBhbmVsIHdpdGggZ2hvc3QgdmFyaWFudC48L3A+CiAgICAgICAgPC9kZWVzLXBhbmVsPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8aDIgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlVudGl0bGVkIFBhbmVsczwvaDI+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICA8cD5QYW5lbHMgd29yayBncmVhdCBldmVuIHdpdGhvdXQgYSB0aXRsZSBmb3Igc2ltcGxlIGNvbnRlbnQgZ3JvdXBpbmcuPC9wPgogICAgICAgIDxwPlRoZXkgcHJvdmlkZSB2aXN1YWwgc2VwYXJhdGlvbiBhbmQgY29uc2lzdGVudCBwYWRkaW5nIHRocm91Z2hvdXQgeW91ciBpbnRlcmZhY2UuPC9wPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsib3V0bGluZSJ9PgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW4tdG9wOiAwOyI+Q3VzdG9tIENvbnRlbnQ8L2g0PgogICAgICAgICAgPHA+WW91IGNhbiBhZGQgeW91ciBvd24gaGVhZGluZ3MgYW5kIHN0cnVjdHVyZSB3aXRoaW4gdW50aXRsZWQgcGFuZWxzLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgICAgCiAgICAgICAgPGRlZXMtcGFuZWwgLnZhcmlhbnQ9JHsiZ2hvc3QifT4KICAgICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luLXRvcDogMDsiPk1pbmltYWwgU3R5bGU8L2g0PgogICAgICAgICAgPHA+R2hvc3QgcGFuZWxzIHdpdGhvdXQgdGl0bGVzIGNyZWF0ZSB2ZXJ5IHN1YnRsZSBjb250ZW50IHNlY3Rpb25zLjwvcD4KICAgICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgTlpyLEZacixzNmUsT1pyLElyLEFkLFJacixCWnIsdXNyLEhacixxWnIsVXJhLFdyYSxRYT1wKCgpPT57eGUoKTtOWnI9IkdlaXN0IFNhbnMiLEZacj0iSW50ZWwgT25lIE1vbm8iLHM2ZT1gJyR7TlpyfScsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWZgLE9acj1gJyR7RlpyfScsICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCAnRmlyYSBNb25vJywgJ0Ryb2lkIFNhbnMgTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZWAsSXI9a3IoczZlKSxBZD1rcihPWnIpLFJacj0iQ2FsIFNhbnMiLEJacj1gJyR7UlpyfScsICR7czZlfWAsdXNyPWtyKEJaciksSFpyPSJSb2JvdG8gU2xhYiIscVpyPWAnJHtIWnJ9JywgR2VvcmdpYSwgc2VyaWZgLFVyYT1rcihxWnIpLFdyYT1rcihgCiAgZm9udC1mYW1pbHk6ICR7czZlfTsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwogIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2N2MTEnLCAndG51bScsICdjdjA1JyAxOwpgKX0pO3ZhciBLcCxDMixwc3IsT2k9cCgoKT0+e3hlKCk7ZHNyKCk7UWEoKTtKZSgpO0twPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sQzI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHBzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtcGFuZWwiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHo9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpTdHJpbmd9KV0seD1baih7dHlwZTpTdHJpbmd9KV0seT1baih7YXR0cmlidXRlOiExfSldLEtwKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJ0aXRsZSJpbiBNLGdldDpNPT5NLnRpdGxlLHNldDooTSxGKT0+e00udGl0bGU9Rn19LG1ldGFkYXRhOnp9LG8scyksS3AodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdWJ0aXRsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InN1YnRpdGxlImluIE0sZ2V0Ok09Pk0uc3VidGl0bGUsc2V0OihNLEYpPT57TS5zdWJ0aXRsZT1GfX0sbWV0YWRhdGE6en0sYyx1KSxLcCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhcmlhbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJ2YXJpYW50ImluIE0sZ2V0Ok09Pk0udmFyaWFudCxzZXQ6KE0sRik9PntNLnZhcmlhbnQ9Rn19LG1ldGFkYXRhOnp9LGgsZiksS3AodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic2l6ZSJpbiBNLGdldDpNPT5NLnNpemUsc2V0OihNLEYpPT57TS5zaXplPUZ9fSxtZXRhZGF0YTp6fSx2LGIpLEtwKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicnVuQWZ0ZXJSZW5kZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJydW5BZnRlclJlbmRlciJpbiBNLGdldDpNPT5NLnJ1bkFmdGVyUmVuZGVyLHNldDooTSxGKT0+e00ucnVuQWZ0ZXJSZW5kZXI9Rn19LG1ldGFkYXRhOnp9LHcsayksS3AobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6en0sbnVsbCxyKSxPPWk9dC52YWx1ZSx6JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnp9KX1zdGF0aWMgZGVtbz1jc3I7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1DMih0aGlzLG8sIiIpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiNlfXNldCB0aXRsZSh6KXt0aGlzLiNlPXp9I3Q9KEMyKHRoaXMscyksQzIodGhpcyxjLCIiKSk7Z2V0IHN1YnRpdGxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHN1YnRpdGxlKHope3RoaXMuI3Q9en0jcj0oQzIodGhpcyx1KSxDMih0aGlzLGgsImRlZmF1bHQiKSk7Z2V0IHZhcmlhbnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgdmFyaWFudCh6KXt0aGlzLiNyPXp9I2k9KEMyKHRoaXMsZiksQzIodGhpcyx2LCJtZCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNpfXNldCBzaXplKHope3RoaXMuI2k9en0jYT0oQzIodGhpcyxiKSxDMih0aGlzLHcsdm9pZCAwKSk7Z2V0IHJ1bkFmdGVyUmVuZGVyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHJ1bkFmdGVyUmVuZGVyKHope3RoaXMuI2E9en1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAvKiBWYXJpYW50OiBkZWZhdWx0ICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJkZWZhdWx0Il0pIHsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCBoc2woMCAwJSAwJSAvIDAuMDUpOwogICAgICB9CgogICAgICAvKiBWYXJpYW50OiBvdXRsaW5lICovCiAgICAgIDpob3N0KFt2YXJpYW50PSJvdXRsaW5lIl0pIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgICB9CgogICAgICAvKiBWYXJpYW50OiBnaG9zdCAqLwogICAgICA6aG9zdChbdmFyaWFudD0iZ2hvc3QiXSkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICAvKiBTaXplIHZhcmlhdGlvbnMgKi8KICAgICAgOmhvc3QoW3NpemU9InNtIl0pIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICB9CgogICAgICA6aG9zdChbc2l6ZT0ibGciXSkgewogICAgICAgIHBhZGRpbmc6IDMycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC5oZWFkZXI6ZW1wdHkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aXRsZSB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogVGl0bGUgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAudGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgOmhvc3QoW3NpemU9ImxnIl0pIC50aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICB9CgogICAgICAuc3VidGl0bGUgewogICAgICAgIG1hcmdpbjogNHB4IDAgMCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogU3VidGl0bGUgc2l6ZSB2YXJpYXRpb25zICovCiAgICAgIDpob3N0KFtzaXplPSJzbSJdKSAuc3VidGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgOmhvc3QoW3NpemU9ImxnIl0pIC5zdWJ0aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgfQoKICAgICAgLmNvbnRlbnQgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgODQuOSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CgogICAgICAvKiBDb250ZW50IHNpemUgdmFyaWF0aW9ucyAqLwogICAgICA6aG9zdChbc2l6ZT0ic20iXSkgLmNvbnRlbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgOmhvc3QoW3NpemU9ImxnIl0pIC5jb250ZW50IHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgIH0KCiAgICAgIC8qIFJlbW92ZSBtYXJnaW5zIGZyb20gZmlyc3QgYW5kIGxhc3QgY2hpbGRyZW4gKi8KICAgICAgLmNvbnRlbnQgOjpzbG90dGVkKCo6Zmlyc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICAuY29udGVudCA6OnNsb3R0ZWQoKjpsYXN0LWNoaWxkKSB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLyogSW50ZXJhY3RpdmUgc3RhdGVzIGZvciBkZWZhdWx0IHZhcmlhbnQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9ImRlZmF1bHQiXTpob3ZlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMnB4IDRweCAtMnB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgfQoKICAgICAgLyogSW50ZXJhY3RpdmUgc3RhdGVzIGZvciBvdXRsaW5lIHZhcmlhbnQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Im91dGxpbmUiXTpob3ZlcikgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgwIDAlIDcuOCUpIil9OwogICAgICB9CgogICAgICAvKiBJbnRlcmFjdGl2ZSBzdGF0ZXMgZm9yIGdob3N0IHZhcmlhbnQgKi8KICAgICAgOmhvc3QoW3ZhcmlhbnQ9Imdob3N0Il06aG92ZXIpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAvKiBGb2N1cyBzdGF0ZXMgKi8KICAgICAgOmhvc3QoOmZvY3VzLXdpdGhpbikgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLyogTmVzdGVkIHBhbmVscyBzcGFjaW5nICovCiAgICAgIDo6c2xvdHRlZChkZWVzLXBhbmVsKSB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQoKICAgICAgOjpzbG90dGVkKGRlZXMtcGFuZWw6Zmlyc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAke3RoaXMudGl0bGU/Q2A8aDMgY2xhc3M9InRpdGxlIj4ke3RoaXMudGl0bGV9PC9oMz5gOiIifQogICAgICAgICR7dGhpcy5zdWJ0aXRsZT9DYDxwIGNsYXNzPSJzdWJ0aXRsZSI+JHt0aGlzLnN1YnRpdGxlfTwvcD5gOiIifQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy5ydW5BZnRlclJlbmRlciYmYXdhaXQgdGhpcy5ydW5BZnRlclJlbmRlcih0aGlzKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksQzIodGhpcyxrKX1zdGF0aWN7QzIoaSxyKX19O3JldHVybiBPPWl9KSgpfSk7dmFyIGhzcixsNmUsZnNyLG1zcj1wKCgpPT57eGUoKTtwMSgpO09pKCk7bDZlPWU9PkFycmF5LmZyb20oe2xlbmd0aDplfSwodCxyKT0+KHtpZDpyLHVzYWdlOk1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxMDApLGxhYmVsOmAke3J9YH0pKSxmc3I9KCk9PkMoaHNyfHwoaHNyPXM1KFtgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgIGAsYAogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAuZ3JpZEFjdGlvbnM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJhY3Rpb24tb3V0cHV0IiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogYCwiOyBib3JkZXItcmFkaXVzOiA2cHg7IGZvbnQtc2l6ZTogMTRweDsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgY29sb3I6ICIsYDsiPgogICAgICAgICAgPGVtPkNsaWNrIG9uIHRpbGUgYWN0aW9ucyBvciBncmlkIGFjdGlvbnMgdG8gc2VlIHRoZSByZXN1bHQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbmZpZyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctc2VjdGlvbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy10aXRsZSI+Q29uZmlndXJhdGlvbiBPcHRpb25zPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgRWFjaCB0aWxlIHR5cGUgc3VwcG9ydHMgZGlmZmVyZW50IHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPk51bWJlcjo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5HYXVnZTo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIGdhdWdlT3B0aW9ucyAobWluLCBtYXgsIHRocmVzaG9sZHMpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlBlcmNlbnRhZ2U6PC9zdHJvbmc+IHZhbHVlICgwLTEwMCksIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UcmVuZDo8L3N0cm9uZz4gdmFsdWUsIHVuaXQsIHRyZW5kRGF0YSBhcnJheSwgZGVzY3JpcHRpb248L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+VGV4dDo8L3N0cm9uZz4gdmFsdWUgKHN0cmluZyksIGNvbG9yLCBkZXNjcmlwdGlvbjwvbGk+CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAwIDAgMTZweCAwOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7Ij5Db21wYWN0IExheW91dCAoMTgwcHggdGlsZXMpPC9oND4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIC50aWxlcz1gLGAKICAgICAgICAgIC5taW5UaWxlV2lkdGg9YCxgCiAgICAgICAgICAuZ2FwPWAsYAogICAgICAgID48L2RlZXMtc3RhdHNncmlkPgogICAgICAgIAogICAgICAgIDxoNCBzdHlsZT0ibWFyZ2luOiAyNHB4IDAgMTZweCAwOyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7Ij5TcGFjaW91cyBMYXlvdXQgKDMyMHB4IHRpbGVzKTwvaDQ+CiAgICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgICAudGlsZXM9YCxgCiAgICAgICAgICAubWluVGlsZVdpZHRoPWAsYAogICAgICAgICAgLmdhcD1gLGAKICAgICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgaWQ9ImNwdS1jb3Jlcy1ncmlkIgogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1zdGF0c2dyaWQKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1ncmlkIgogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLmdyaWRBY3Rpb25zPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrIj5gLGA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgICAgLnRpbGVzPWAsYAogICAgICAgICAgLm1pblRpbGVXaWR0aD1gLGAKICAgICAgICAgIC5nYXA9YCxgCiAgICAgICAgPjwvZGVlcy1zdGF0c2dyaWQ+CgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtY29uZmlnIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1zZWN0aW9uIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXRpdGxlIj5QYXJ0aXRpb24gVGlsZSBQcm9wZXJ0aWVzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEudXNlZDo8L3N0cm9uZz4gVXNlZCBzcGFjZSBpbiBieXRlcyAoYXV0by1mb3JtYXR0ZWQpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEudG90YWw6PC9zdHJvbmc+IFRvdGFsIGNhcGFjaXR5IGluIGJ5dGVzPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEuZmlsZXN5c3RlbTo8L3N0cm9uZz4gRmlsZXN5c3RlbSB0eXBlIChleHQ0LCB4ZnMsIG50ZnMpPC9saT4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnBhcnRpdGlvbkRhdGEubW91bnRQb2ludDo8L3N0cm9uZz4gTW91bnQgcG9pbnQgcGF0aCAob3B0aW9uYWwpPC9saT4KICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgIENvbG9yIHRocmVzaG9sZHM6IE5vcm1hbCAoJmx0Ozc1JSksIFdhcm5pbmcgKDc1LTkwJSksIENyaXRpY2FsICgmZ3Q7OTAlKQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29uZmlnLXNlY3Rpb24iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25maWctdGl0bGUiPkRpc2sgVGlsZSBQcm9wZXJ0aWVzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbmZpZy1kZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgPHVsIHN0eWxlPSJtYXJnaW46IDhweCAwOyBwYWRkaW5nLWxlZnQ6IDIwcHg7Ij4KICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmRpc2tEYXRhLmNhcGFjaXR5Ojwvc3Ryb25nPiBUb3RhbCBjYXBhY2l0eSBpbiBieXRlczwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5tb2RlbDo8L3N0cm9uZz4gRGlzayBtb2RlbCBuYW1lIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZGlza0RhdGEudHlwZTo8L3N0cm9uZz4gRGlzayB0eXBlOiAnc3NkJywgJ2hkZCcsIG9yICdudm1lJzwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5pb3BzOjwvc3Ryb25nPiBSZWFkL3dyaXRlIElPUFMgKG9wdGlvbmFsKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5kaXNrRGF0YS5oZWFsdGg6PC9zdHJvbmc+IEhlYWx0aCBwZXJjZW50YWdlIDAtMTAwIChvcHRpb25hbCk8L2xpPgogICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgSGVhbHRoIHRocmVzaG9sZHM6IEdvb2QgKDcwLTEwMCUpLCBXYXJuaW5nICgzMC03MCUpLCBDcml0aWNhbCAoJmx0OzMwJSkKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CgogICAgPHNjcmlwdD4KICAgICAgLy8gQ2xlYW51cCBsaXZlIHVwZGF0ZXMgb24gcGFnZSB1bmxvYWQKICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsICgpID0+IHsKICAgICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpLmxpdmVVcGRhdGVJbnRlcnZhbCkgewogICAgICAgICAgY2xlYXJJbnRlcnZhbCgod2luZG93IGFzIGFueSkubGl2ZVVwZGF0ZUludGVydmFsKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgPFwvc2NyaXB0PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgXSkpLG9lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGlsZS1jb25maWcgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbmZpZy1zZWN0aW9uIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb25maWctZGVzY3JpcHRpb24gewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jb2RlLWJsb2NrIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOwogICAgICAgIH0KICAgICAgYCwiMS4gQ29tcHJlaGVuc2l2ZSBEYXNoYm9hcmQiLCJGdWxsLWZlYXR1cmVkIHN0YXRzIGdyaWQgd2l0aCB2YXJpb3VzIHRpbGUgdHlwZXMsIGFjdGlvbnMsIGFuZCBMdWNpZGUgaWNvbnMiLFt7aWQ6InJldmVudWUiLHRpdGxlOiJUb3RhbCBSZXZlbnVlIix2YWx1ZToxMjU0MjAsdW5pdDoiJCIsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6ZG9sbGFyLXNpZ24iLGRlc2NyaXB0aW9uOiIrMTIuNSUgZnJvbSBsYXN0IG1vbnRoIixhY3Rpb25zOlt7bmFtZToiVmlldyBEZXRhaWxzIixpY29uTmFtZToibHVjaWRlOnRyZW5kaW5nLXVwIixhY3Rpb246YXN5bmMoKT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IlZpZXdpbmcgcmV2ZW51ZSBkZXRhaWxzOiAkMTI1LDQyMCAoKzEyLjUlKSIpfX0se25hbWU6IkV4cG9ydCBEYXRhIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9IkV4cG9ydGluZyByZXZlbnVlIGRhdGEgdG8gQ1NWLi4uIil9fV19LHtpZDoidXNlcnMiLHRpdGxlOiJBY3RpdmUgVXNlcnMiLHZhbHVlOjM4NDcsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMiLGRlc2NyaXB0aW9uOiIzMjQgbmV3IHRoaXMgd2VlayIsYWN0aW9uczpbe25hbWU6IlZpZXcgVXNlciBMaXN0IixpY29uTmFtZToibHVjaWRlOmxpc3QiLGFjdGlvbjphc3luYygpPT57bGV0IGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGlvbi1vdXRwdXQiKTtlJiYoZS50ZXh0Q29udGVudD0iT3BlbmluZyB1c2VyIGxpc3QuLi4iKX19XX0se2lkOiJjcHUiLHRpdGxlOiJDUFUgVXNhZ2UiLHZhbHVlOjczLHVuaXQ6IiUiLHR5cGU6ImdhdWdlIixpY29uOiJsdWNpZGU6Y3B1IixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjAsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifSx7dmFsdWU6NjAsY29sb3I6ImhzbCg0NS40IDkzLjQlIDQ3LjUlKSJ9LHt2YWx1ZTo4MCxjb2xvcjoiaHNsKDAgODQuMiUgNjAuMiUpIn1dfX0se2lkOiJzdG9yYWdlIix0aXRsZToiU3RvcmFnZSBVc2VkIix2YWx1ZTo2NSx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6aGFyZC1kcml2ZSIsZGVzY3JpcHRpb246IjY1MCBHQiBvZiAxIFRCIn0se2lkOiJsYXRlbmN5Iix0aXRsZToiUmVzcG9uc2UgVGltZSIsdmFsdWU6MTQyLHVuaXQ6Im1zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5Iix0cmVuZERhdGE6WzE1MCwxNDUsMTQ4LDE0MiwxMzgsMTQwLDEzNSwxNDUsMTQyXSxkZXNjcmlwdGlvbjoiUDk1In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZToiOTkuOTUlIix0eXBlOiJ0ZXh0IixpY29uOiJsdWNpZGU6Y2hlY2stY2lyY2xlIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZGVzY3JpcHRpb246Ikxhc3QgMzAgZGF5cyJ9XSxbe25hbWU6IlJlZnJlc2giLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaC1jdyIsYWN0aW9uOmFzeW5jKCk9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLXN0YXRzZ3JpZCIpO2UmJihlLnN0eWxlLm9wYWNpdHk9IjAuNSIsc2V0VGltZW91dCgoKT0+e2Uuc3R5bGUub3BhY2l0eT0iMSJ9LDMwMCkpfX0se25hbWU6IkV4cG9ydCIsaWNvbk5hbWU6Imx1Y2lkZTpzaGFyZSIsYWN0aW9uOmFzeW5jKCk9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWN0aW9uLW91dHB1dCIpO2UmJihlLnRleHRDb250ZW50PSJFeHBvcnRpbmcgZGFzaGJvYXJkIHJlcG9ydC4uLiIpfX0se25hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246YXN5bmMoKT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3Rpb24tb3V0cHV0Iik7ZSYmKGUudGV4dENvbnRlbnQ9Ik9wZW5pbmcgZGFzaGJvYXJkIHNldHRpbmdzLi4uIil9fV0sMjUwLDE2LG0uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKSxtLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIiksIjIuIFRpbGUgVHlwZXMiLCJEaWZmZXJlbnQgdmlzdWFsaXphdGlvbiB0eXBlcyBhdmFpbGFibGUgaW4gdGhlIHN0YXRzIGdyaWQiLFt7aWQ6Im51bWJlci1leGFtcGxlIix0aXRsZToiTnVtYmVyIFRpbGUiLHZhbHVlOjQyMTk1LHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmhhc2giLGRlc2NyaXB0aW9uOiJTaW1wbGUgbnVtZXJpYyBkaXNwbGF5In0se2lkOiJnYXVnZS1leGFtcGxlIix0aXRsZToiR2F1Z2UgVGlsZSIsdmFsdWU6NjgsdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpnYXVnZSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjUwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoicGVyY2VudGFnZS1leGFtcGxlIix0aXRsZToiUGVyY2VudGFnZSBUaWxlIix2YWx1ZTo3OCx0eXBlOiJwZXJjZW50YWdlIixpY29uOiJsdWNpZGU6cGVyY2VudCIsZGVzY3JpcHRpb246IlByb2dyZXNzIGJhciB2aXN1YWxpemF0aW9uIn0se2lkOiJ0cmVuZC1leGFtcGxlIix0aXRsZToiVHJlbmQgVGlsZSIsdmFsdWU6ODkyLHVuaXQ6Im9wcy9zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnRyZW5kaW5nLXVwIix0cmVuZERhdGE6WzcyMCw3NTAsNzgwLDc5NSw4MTAsODM1LDg1MCw4NjUsODgwLDg5Ml0sZGVzY3JpcHRpb246ImF2ZyJ9LHtpZDoidGV4dC1leGFtcGxlIix0aXRsZToiVGV4dCBUaWxlIix2YWx1ZToiT3BlcmF0aW9uYWwiLHR5cGU6InRleHQiLGljb246Imx1Y2lkZTppbmZvIixjb2xvcjoiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsZGVzY3JpcHRpb246IlN0YXR1cyBkaXNwbGF5In1dLDI4MCwxNiwiMy4gR3JpZCBDb25maWd1cmF0aW9ucyIsIkRpZmZlcmVudCBsYXlvdXQgb3B0aW9ucyBhbmQgcmVzcG9uc2l2ZSBiZWhhdmlvciIsW3tpZDoiMSIsdGl0bGU6Ik9yZGVycyIsdmFsdWU6MTU2LHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnNob3BwaW5nLWNhcnQifSx7aWQ6IjIiLHRpdGxlOiJSZXZlbnVlIix2YWx1ZTo4NDIwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmRvbGxhci1zaWduIn0se2lkOiIzIix0aXRsZToiVXNlcnMiLHZhbHVlOjQyMyx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp1c2VycyJ9LHtpZDoiNCIsdGl0bGU6Ikdyb3d0aCIsdmFsdWU6MTIuNSx1bml0OiIlIix0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp0cmVuZGluZy11cCIsY29sb3I6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkifV0sMTgwLDEyLFt7aWQ6InNwYWNpb3VzMSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6MTg0NTAwLHVuaXQ6IiQiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmNyZWRpdC1jYXJkIixkZXNjcmlwdGlvbjoiVG90YWwgcmV2ZW51ZSB0aGlzIG1vbnRoIn0se2lkOiJzcGFjaW91czIiLHRpdGxlOiJDdXN0b21lciBTYXRpc2ZhY3Rpb24iLHZhbHVlOjk0LHR5cGU6InBlcmNlbnRhZ2UiLGljb246Imx1Y2lkZTpzbWlsZSIsZGVzY3JpcHRpb246IkJhc2VkIG9uIDEsMjM0IHJldmlld3MifSx7aWQ6InNwYWNpb3VzMyIsdGl0bGU6IlNlcnZlciBSZXNwb25zZSIsdmFsdWU6OTgsdW5pdDoibXMiLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6c2VydmVyIix0cmVuZERhdGE6WzEwNSwxMDIsMTAwLDk5LDk4LDk4LDk3LDk4XSxkZXNjcmlwdGlvbjoiYXZnIHJlc3BvbnNlIHRpbWUifV0sMzIwLDIwLCI0LiBDUFUgQ29yZXMgVmlzdWFsaXphdGlvbiIsIlZlcnRpY2FsIGJhciB2aXN1YWxpemF0aW9uIGZvciBtdWx0aS1jb3JlIENQVSB1c2FnZSB3aXRoIGNvbHVtbiBzcGFubmluZyIsW3tpZDoiY3B1LWNvcmVzLTgiLHRpdGxlOiJDUFUgQ29yZXMgKDgtY29yZSkiLHZhbHVlOjAsdHlwZToiY3B1Q29yZXMiLGljb246Imx1Y2lkZTpjcHUiLGNvbHVtblNwYW46Mixjb3Jlc0RhdGE6bDZlKDgpLGRlc2NyaXB0aW9uOiJJbnRlbCBpNyAtIDggY29yZXMifSx7aWQ6Im1lbW9yeSIsdGl0bGU6Ik1lbW9yeSBVc2FnZSIsdmFsdWU6NjgsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIixkZXNjcmlwdGlvbjoiMTMuNiBHQiBvZiAyMCBHQiJ9LHtpZDoiY3B1LWNvcmVzLTE2Iix0aXRsZToiQ1BVIENvcmVzICgxNi1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOmNwdSIsY29sdW1uU3BhbjoyLGNvcmVzRGF0YTpsNmUoMTYpLGRlc2NyaXB0aW9uOiJBTUQgUnl6ZW4gOSAtIDE2IGNvcmVzIn0se2lkOiJuZXR3b3JrIix0aXRsZToiTmV0d29yayBJL08iLHZhbHVlOjI0NSx1bml0OiJNQi9zIix0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOm5ldHdvcmsiLHRyZW5kRGF0YTpbMjAwLDIyMCwyMzUsMjQwLDIzOCwyNDVdLGRlc2NyaXB0aW9uOiJ0aHJvdWdocHV0In0se2lkOiJjcHUtY29yZXMtMzIiLHRpdGxlOiJTZXJ2ZXIgQ1BVICgzMi1jb3JlKSIsdmFsdWU6MCx0eXBlOiJjcHVDb3JlcyIsaWNvbjoibHVjaWRlOnNlcnZlciIsY29sdW1uU3BhbjozLGNvcmVzRGF0YTpsNmUoMzIpLGRlc2NyaXB0aW9uOiJBTUQgRVBZQyAtIDMyIGNvcmVzIn0se2lkOiJkaXNrIix0aXRsZToiRGlzayBVc2FnZSIsdmFsdWU6NDIsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmhhcmQtZHJpdmUiLGRlc2NyaXB0aW9uOiI0MjAgR0Igb2YgMSBUQiJ9XSxbe25hbWU6IlJhbmRvbWl6ZSIsaWNvbk5hbWU6Imx1Y2lkZTpzaHVmZmxlIixhY3Rpb246YXN5bmMoKT0+e2xldCBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjcHUtY29yZXMtZ3JpZCIpO2lmKCFlKXJldHVybjtsZXQgdD1lLnRpbGVzLm1hcChyPT5yLnR5cGU9PT0iY3B1Q29yZXMiJiZyLmNvcmVzRGF0YT97Li4ucixjb3Jlc0RhdGE6ci5jb3Jlc0RhdGEubWFwKGk9Pih7Li4uaSx1c2FnZTpNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMTAwKX0pKX06cik7ZS50aWxlcz10fX1dLDI1MCwxNiwiNS4gSW50ZXJhY3RpdmUgRmVhdHVyZXMiLCJUaWxlcyB3aXRoIGFjdGlvbnMgYW5kIHJlYWwtdGltZSB1cGRhdGVzIixbe2lkOiJsaXZlLWNwdSIsdGl0bGU6IkxpdmUgQ1BVIix2YWx1ZTo0NSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoibHVjaWRlOmNwdSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTowLGNvbG9yOiJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIn0se3ZhbHVlOjYwLGNvbG9yOiJoc2woNDUuNCA5My40JSA0Ny41JSkifSx7dmFsdWU6ODAsY29sb3I6ImhzbCgwIDg0LjIlIDYwLjIlKSJ9XX19LHtpZDoibGl2ZS1yZXF1ZXN0cyIsdGl0bGU6IlJlcXVlc3RzL3NlYyIsdmFsdWU6ODkyLHR5cGU6InRyZW5kIixpY29uOiJsdWNpZGU6YWN0aXZpdHkiLHRyZW5kRGF0YTpbODUwLDg2MCw4NzAsODgwLDg4NSw4OTAsODkyXX0se2lkOiJsaXZlLW1lbW9yeSIsdGl0bGU6Ik1lbW9yeSBVc2FnZSIsdmFsdWU6NjIsdHlwZToicGVyY2VudGFnZSIsaWNvbjoibHVjaWRlOmRhdGFiYXNlIn0se2lkOiJjb3VudGVyIix0aXRsZToiRXZlbnQgQ291bnRlciIsdmFsdWU6MCx0eXBlOiJudW1iZXIiLGljb246Imx1Y2lkZTp6YXAiLGFjdGlvbnM6W3tuYW1lOiJJbmNyZW1lbnQiLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOmFzeW5jKCk9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCFlKXJldHVybjtsZXQgdD1lLnRpbGVzLmZpbmQocj0+ci5pZD09PSJjb3VudGVyIik7dC52YWx1ZT10eXBlb2YgdC52YWx1ZT09Im51bWJlciI/dC52YWx1ZSsxOjEsZS50aWxlcz1bLi4uZS50aWxlc119fSx7bmFtZToiUmVzZXQiLGljb25OYW1lOiJsdWNpZGU6cm90YXRlLWNjdyIsYWN0aW9uOmFzeW5jKCk9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKCFlKXJldHVybjtsZXQgdD1lLnRpbGVzLmZpbmQocj0+ci5pZD09PSJjb3VudGVyIik7dC52YWx1ZT0wLGUudGlsZXM9Wy4uLmUudGlsZXNdfX1dfV0sW3tuYW1lOiJTdGFydCBMaXZlIFVwZGF0ZXMiLGljb25OYW1lOiJsdWNpZGU6cGxheSIsYWN0aW9uOmFzeW5jIGZ1bmN0aW9uKCl7d2luZG93LmxpdmVVcGRhdGVJbnRlcnZhbD8oY2xlYXJJbnRlcnZhbCh3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsKSx3aW5kb3cubGl2ZVVwZGF0ZUludGVydmFsPW51bGwsdGhpcy5uYW1lPSJTdGFydCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwbGF5Iik6KHdpbmRvdy5saXZlVXBkYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PntsZXQgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtZ3JpZCIpO2lmKGUpe2xldCB0PVsuLi5lLnRpbGVzXSxyPXQuZmluZChvPT5vLmlkPT09ImxpdmUtY3B1Iik7ci52YWx1ZT1NYXRoLm1heCgwLE1hdGgubWluKDEwMCxyLnZhbHVlKyhNYXRoLnJhbmRvbSgpKjIwLTEwKSkpO2xldCBpPXQuZmluZChvPT5vLmlkPT09ImxpdmUtcmVxdWVzdHMiKSxhPWkudmFsdWUrTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjUwLTI1KTtpLnZhbHVlPU1hdGgubWF4KDgwMCxhKSxpLnRyZW5kRGF0YT1bLi4uaS50cmVuZERhdGEuc2xpY2UoMSksaS52YWx1ZV07bGV0IG49dC5maW5kKG89Pm8uaWQ9PT0ibGl2ZS1tZW1vcnkiKTtuLnZhbHVlPU1hdGgubWF4KDAsTWF0aC5taW4oMTAwLG4udmFsdWUrKE1hdGgucmFuZG9tKCkqMTAtNSkpKSxlLnRpbGVzPXR9fSwxZTMpLHRoaXMubmFtZT0iU3RvcCBMaXZlIFVwZGF0ZXMiLHRoaXMuaWNvbk5hbWU9Imx1Y2lkZTpwYXVzZSIpfX1dLDI1MCwxNiwiNi4gQ29kZSBFeGFtcGxlIiwiSG93IHRvIGltcGxlbWVudCBhIHN0YXRzIGdyaWQgd2l0aCBUeXBlU2NyaXB0IixgY29uc3QgdGlsZXM6IElTdGF0c1RpbGVbXSA9IFsKICB7CiAgICBpZDogJ3JldmVudWUnLAogICAgdGl0bGU6ICdUb3RhbCBSZXZlbnVlJywKICAgIHZhbHVlOiAxMjU0MjAsCiAgICB1bml0OiAnJCcsCiAgICB0eXBlOiAnbnVtYmVyJywKICAgIGljb246ICdsdWNpZGU6ZG9sbGFyLXNpZ24nLAogICAgZGVzY3JpcHRpb246ICcrMTIuNSUgZnJvbSBsYXN0IG1vbnRoJywKICAgIGFjdGlvbnM6IFsKICAgICAgewogICAgICAgIG5hbWU6ICdWaWV3IERldGFpbHMnLAogICAgICAgIGljb25OYW1lOiAnbHVjaWRlOnRyZW5kaW5nLXVwJywKICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHsKICAgICAgICAgIGNvbnNvbGUubG9nKCdWaWV3IHJldmVudWUgZGV0YWlscycpOwogICAgICAgIH0KICAgICAgfQogICAgXQogIH0sCiAgewogICAgaWQ6ICdjcHUnLAogICAgdGl0bGU6ICdDUFUgVXNhZ2UnLAogICAgdmFsdWU6IDczLAogICAgdW5pdDogJyUnLAogICAgdHlwZTogJ2dhdWdlJywKICAgIGljb246ICdsdWNpZGU6Y3B1JywKICAgIGdhdWdlT3B0aW9uczogewogICAgICBtaW46IDAsCiAgICAgIG1heDogMTAwLAogICAgICB0aHJlc2hvbGRzOiBbCiAgICAgICAgeyB2YWx1ZTogMCwgY29sb3I6ICdoc2woMTQyLjEgNzYuMiUgMzYuMyUpJyB9LAogICAgICAgIHsgdmFsdWU6IDYwLCBjb2xvcjogJ2hzbCg0NS40IDkzLjQlIDQ3LjUlKScgfSwKICAgICAgICB7IHZhbHVlOiA4MCwgY29sb3I6ICdoc2woMCA4NC4yJSA2MC4yJSknIH0KICAgICAgXQogICAgfQogIH0KXTsKCi8vIFJlbmRlciB0aGUgc3RhdHMgZ3JpZApodG1sXGAKICA8ZGVlcy1zdGF0c2dyaWQKICAgIC50aWxlcz1cJHt0aWxlc30KICAgIC5taW5UaWxlV2lkdGg9XCR7MjUwfQogICAgLmdhcD1cJHsxNn0KICAgIC5ncmlkQWN0aW9ucz1cJHtbCiAgICAgIHsKICAgICAgICBuYW1lOiAnUmVmcmVzaCcsCiAgICAgICAgaWNvbk5hbWU6ICdsdWNpZGU6cmVmcmVzaC1jdycsCiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiBjb25zb2xlLmxvZygnUmVmcmVzaCcpCiAgICAgIH0KICAgIF19CiAgPjwvZGVlcy1zdGF0c2dyaWQ+ClxgO2AsIjcuIERpc2sgJiBTdG9yYWdlIFRpbGVzIiwiUGFydGl0aW9uIGFuZCBwaHlzaWNhbCBkaXNrIHZpc3VhbGl6YXRpb24gdGlsZXMiLFt7aWQ6InJvb3QtcGFydGl0aW9uIix0aXRsZToiUm9vdCBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6Zm9sZGVyLXJvb3QiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6Njk4MzQxNDI1MTUyLHRvdGFsOjEwNzM3NDE4MjRlMyxmaWxlc3lzdGVtOiJleHQ0Iixtb3VudFBvaW50OiIvIn19LHtpZDoiaG9tZS1wYXJ0aXRpb24iLHRpdGxlOiJIb21lIFBhcnRpdGlvbiIsdmFsdWU6MCx0eXBlOiJwYXJ0aXRpb24iLGljb246Imx1Y2lkZTpob21lIixwYXJ0aXRpb25EYXRhOnt1c2VkOjIxNDc0ODM2NDgwMCx0b3RhbDo1MzY4NzA5MTJlMyxmaWxlc3lzdGVtOiJleHQ0Iixtb3VudFBvaW50OiIvaG9tZSJ9fSx7aWQ6ImRhdGEtcGFydGl0aW9uIix0aXRsZToiRGF0YSBQYXJ0aXRpb24iLHZhbHVlOjAsdHlwZToicGFydGl0aW9uIixpY29uOiJsdWNpZGU6ZGF0YWJhc2UiLHBhcnRpdGlvbkRhdGE6e3VzZWQ6MTkzMjczNTI4MzIwMCx0b3RhbDoyMTQ3NDgzNjQ4ZTMsZmlsZXN5c3RlbToieGZzIixtb3VudFBvaW50OiIvZGF0YSJ9fSx7aWQ6Im52bWUtc3NkIix0aXRsZToiUHJpbWFyeSBOVk1lIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixjb2x1bW5TcGFuOjIsZGlza0RhdGE6e2NhcGFjaXR5OjJlMTIsbW9kZWw6IlNhbXN1bmcgOTkwIFBybyIsdHlwZToibnZtZSIsaW9wczp7cmVhZDo3NDUwLHdyaXRlOjY5MDB9LGhlYWx0aDo5OH19LHtpZDoic2F0YS1zc2QiLHRpdGxlOiJTZWNvbmRhcnkgU1NEIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTpoYXJkLWRyaXZlIixkaXNrRGF0YTp7Y2FwYWNpdHk6MWUxMixtb2RlbDoiQ3J1Y2lhbCBNWDUwMCIsdHlwZToic3NkIixpb3BzOntyZWFkOjU2MCx3cml0ZTo1MTB9LGhlYWx0aDo4NX19LHtpZDoiaGRkLXN0b3JhZ2UiLHRpdGxlOiJCYWNrdXAgSEREIix2YWx1ZTowLHR5cGU6ImRpc2siLGljb246Imx1Y2lkZTphcmNoaXZlIixkaXNrRGF0YTp7Y2FwYWNpdHk6OGUxMixtb2RlbDoiU2VhZ2F0ZSBJcm9uV29sZiIsdHlwZToiaGRkIixpb3BzOntyZWFkOjIxMCx3cml0ZToxOTV9LGhlYWx0aDo0Mn19XSwyODAsMTYpfSk7dmFyIERkLHpuLG90LE0xPXAoKCk9Pnt4ZSgpO0t0KCk7RGQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSx6bj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sb3Q9KCgpPT57bGV0IGU9emUsdCxyPVtdLGk9W10sYSxuPVtdLG89W10scyxsPVtdLGM9W10sdSxkPVtdLGg9W10sZix4PVtdLHY9W10sYix5PVtdLHc9W10sayxPPVtdLHo9W107cmV0dXJuIGNsYXNzIGV4dGVuZHMgZXtzdGF0aWN7bGV0IEY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoZVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7dD1baih7dHlwZTpTdHJpbmd9KV0sYT1baih7dHlwZTpTdHJpbmd9KV0scz1baih7dHlwZTpTdHJpbmd9KV0sdT1baih7dHlwZTpTdHJpbmd9KV0sZj1baih7dHlwZTpCb29sZWFufSldLGI9W2ooe3R5cGU6Qm9vbGVhbn0pXSxrPVtqKHt0eXBlOlN0cmluZ30pXSxEZCh0aGlzLG51bGwsdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxheW91dE1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJsYXlvdXRNb2RlImluIEQsZ2V0OkQ9PkQubGF5b3V0TW9kZSxzZXQ6KEQsTik9PntELmxheW91dE1vZGU9Tn19LG1ldGFkYXRhOkZ9LHIsaSksRGQodGhpcyxudWxsLGEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbFBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ibGFiZWxQb3NpdGlvbiJpbiBELGdldDpEPT5ELmxhYmVsUG9zaXRpb24sc2V0OihELE4pPT57RC5sYWJlbFBvc2l0aW9uPU59fSxtZXRhZGF0YTpGfSxuLG8pLERkKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToia2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4ia2V5ImluIEQsZ2V0OkQ9PkQua2V5LHNldDooRCxOKT0+e0Qua2V5PU59fSxtZXRhZGF0YTpGfSxsLGMpLERkKHRoaXMsbnVsbCx1LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJsYWJlbCJpbiBELGdldDpEPT5ELmxhYmVsLHNldDooRCxOKT0+e0QubGFiZWw9Tn19LG1ldGFkYXRhOkZ9LGQsaCksRGQodGhpcyxudWxsLGYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RD0+InJlcXVpcmVkImluIEQsZ2V0OkQ9PkQucmVxdWlyZWQsc2V0OihELE4pPT57RC5yZXF1aXJlZD1OfX0sbWV0YWRhdGE6Rn0seCx2KSxEZCh0aGlzLG51bGwsYix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpEPT4iZGlzYWJsZWQiaW4gRCxnZXQ6RD0+RC5kaXNhYmxlZCxzZXQ6KEQsTik9PntELmRpc2FibGVkPU59fSxtZXRhZGF0YTpGfSx5LHcpLERkKHRoaXMsbnVsbCxrLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGVzY3JpcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkQ9PiJkZXNjcmlwdGlvbiJpbiBELGdldDpEPT5ELmRlc2NyaXB0aW9uLHNldDooRCxOKT0+e0QuZGVzY3JpcHRpb249Tn19LG1ldGFkYXRhOkZ9LE8seiksRiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpGfSl9I2U9em4odGhpcyxyLCJhdXRvIik7Z2V0IGxheW91dE1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGF5b3V0TW9kZShGKXt0aGlzLiNlPUZ9I3Q9KHpuKHRoaXMsaSksem4odGhpcyxuLCJ0b3AiKSk7Z2V0IGxhYmVsUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFiZWxQb3NpdGlvbihGKXt0aGlzLiN0PUZ9I3I9KHpuKHRoaXMsbyksem4odGhpcyxsLHZvaWQgMCkpO2dldCBrZXkoKXtyZXR1cm4gdGhpcy4jcn1zZXQga2V5KEYpe3RoaXMuI3I9Rn0jaT0oem4odGhpcyxjKSx6bih0aGlzLGQsdm9pZCAwKSk7Z2V0IGxhYmVsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGxhYmVsKEYpe3RoaXMuI2k9Rn0jYT0oem4odGhpcyxoKSx6bih0aGlzLHgsITEpKTtnZXQgcmVxdWlyZWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgcmVxdWlyZWQoRil7dGhpcy4jYT1GfSNuPSh6bih0aGlzLHYpLHpuKHRoaXMseSwhMSkpO2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLiNufXNldCBkaXNhYmxlZChGKXt0aGlzLiNuPUZ9I289KHpuKHRoaXMsdyksem4odGhpcyxPLHZvaWQgMCkpO2dldCBkZXNjcmlwdGlvbigpe3JldHVybiB0aGlzLiNvfXNldCBkZXNjcmlwdGlvbihGKXt0aGlzLiNvPUZ9c3RhdGljIGdldCBiYXNlU3R5bGVzKCl7cmV0dXJuW29lYAogICAgICAgIC8qIENTUyBWYXJpYWJsZXMgZm9yIGNvbnNpc3RlbnQgc3BhY2luZyAqLwogICAgICAgIDpob3N0IHsKICAgICAgICAgIC0tZGVlcy1pbnB1dC1zcGFjaW5nLXVuaXQ6IDhweDsKICAgICAgICAgIC0tZGVlcy1pbnB1dC1sYWJlbC1nYXA6IHZhcigtLWRlZXMtaW5wdXQtc3BhY2luZy11bml0KTsgLyogOHB4ICovCiAgICAgICAgfQoKICAgICAgICAvKiBEZWZhdWx0IGJsb2NrIGRpc3BsYXkgd2l0aCBubyBtYXJnaW5zIC0gc3BhY2luZyBpcyBjb250YWluZXItZHJpdmVuICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgfQoKICAgICAgICAvKiBIb3Jpem9udGFsIGxheW91dCBtb2RlIC0gYWN0aXZhdGVkIGJ5IGF0dHJpYnV0ZSAqLwogICAgICAgIDpob3N0KFtsYXlvdXQtbW9kZT0iaG9yaXpvbnRhbCJdKSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAvKiBMYWJlbCBwb3NpdGlvbiB2YXJpYXRpb25zICovCiAgICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJsZWZ0Il0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyOwogICAgICAgICAgZ2FwOiB2YXIoLS1kZWVzLWlucHV0LWxhYmVsLWdhcCk7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bzsKICAgICAgICAgIGdhcDogdmFyKC0tZGVlcy1pbnB1dC1sYWJlbC1nYXApOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0idG9wIl0pIC5pbnB1dC13cmFwcGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJub25lIl0pIGRlZXMtbGFiZWwgewogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9CiAgICAgIGBdfWNoYW5nZVN1YmplY3Q9KHpuKHRoaXMseiksbmV3IGp0LnNtYXJ0cngucnhqcy5TdWJqZWN0KTthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5kZXRlY3RMYXlvdXRNb2RlKCl9ZGV0ZWN0TGF5b3V0TW9kZSgpe2lmKHRoaXMubGF5b3V0TW9kZSE9PSJhdXRvIil7dGhpcy5zZXRBdHRyaWJ1dGUoImxheW91dC1tb2RlIix0aGlzLmxheW91dE1vZGUpO3JldHVybn1sZXQgRj10aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpO0YmJkYuaGFzQXR0cmlidXRlKCJob3Jpem9udGFsLWxheW91dCIpP3RoaXMuc2V0QXR0cmlidXRlKCJsYXlvdXQtbW9kZSIsImhvcml6b250YWwiKTp0aGlzLnNldEF0dHJpYnV0ZSgibGF5b3V0LW1vZGUiLCJ2ZXJ0aWNhbCIpfXVwZGF0ZWQoRil7c3VwZXIudXBkYXRlZChGKSxGLmhhcygibGF5b3V0TW9kZSIpJiZ0aGlzLmRldGVjdExheW91dE1vZGUoKSxGLmhhcygibGFiZWxQb3NpdGlvbiIpJiZ0aGlzLnNldEF0dHJpYnV0ZSgibGFiZWwtcG9zaXRpb24iLHRoaXMubGFiZWxQb3NpdGlvbil9YXN5bmMgZnJlZXplKCl7dGhpcy5kaXNhYmxlZD0hMH1hc3luYyB1bmZyZWV6ZSgpe3RoaXMuZGlzYWJsZWQ9ITF9fX0pKCl9KTt2YXIgZ3NyLGJzcj1wKCgpPT57eGUoKTtwMSgpO09pKCk7STQoKTtnc3I9KCk9PkNgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1jaGVja2JveCIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0LWFsbC1idG4iKSxpPWUucXVlcnlTZWxlY3RvcigiI2NsZWFyLWFsbC1idG4iKTtyJiZpJiYoci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LmZvckVhY2goYT0+eyFhLmRpc2FibGVkJiZhLmtleT8uc3RhcnRzV2l0aCgiZmVhdHVyZSIpJiYoYS52YWx1ZT0hMCl9KX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5mb3JFYWNoKGE9PnshYS5kaXNhYmxlZCYmYS5rZXk/LnN0YXJ0c1dpdGgoImZlYXR1cmUiKSYmKGEudmFsdWU9ITEpfSl9KSl9fT4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNoZWNrYm94LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaG9yaXpvbnRhbC1jaGVja2JveGVzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb3JtLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tdGl0bGUgewogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkJhc2ljIENoZWNrYm94ZXMifSAuc3VidGl0bGU9JHsiU2ltcGxlIGNoZWNrYm94IGV4YW1wbGVzIHdpdGggdmFyaW91cyBsYWJlbHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAua2V5PSR7InRlcm1zIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiU3Vic2NyaWJlIHRvIG5ld3NsZXR0ZXIifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5rZXk9JHsibmV3c2xldHRlciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkVuYWJsZSBub3RpZmljYXRpb25zIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUmVjZWl2ZSBlbWFpbCB1cGRhdGVzIGFib3V0IHlvdXIgYWNjb3VudCJ9CiAgICAgICAgICAgIC5rZXk9JHsibm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2hlY2tib3ggU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBjaGVja2JveCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3gtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEZWZhdWx0IHN0YXRlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJDaGVja2VkIHN0YXRlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCB1bmNoZWNrZWQifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBjaGVja2VkIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiUmVxdWlyZWQgY2hlY2tib3gifSAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IkNoZWNrYm94ZXMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1jaGVja2JveGVzIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEEifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7Im9wdGlvbkEifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJPcHRpb24gQiJ9IAogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsib3B0aW9uQiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7Ik9wdGlvbiBDIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJvcHRpb25DIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAubGFiZWw9JHsiT3B0aW9uIEQifSAKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAua2V5PSR7Im9wdGlvbkQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZlYXR1cmUgU2VsZWN0aW9uIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ29tbW9uIHVzZSBjYXNlIGZvciBmZWF0dXJlIHRvZ2dsZXMgd2l0aCBiYXRjaCBvcGVyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBpZD0ic2VsZWN0LWFsbC1idG4iIHR5cGU9InNlY29uZGFyeSI+U2VsZWN0IEFsbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9ImNsZWFyLWFsbC1idG4iIHR5cGU9InNlY29uZGFyeSI+Q2xlYXIgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWxpc3QiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3gtZ3JvdXAiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiRGFyayBNb2RlIFN1cHBvcnQifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmUxIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBOb3RpZmljYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmtleT0keyJmZWF0dXJlMiJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiVHdvLUZhY3RvciBBdXRoZW50aWNhdGlvbiJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZmVhdHVyZTMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkFQSSBBY2Nlc3MifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmU0In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJBZHZhbmNlZCBBbmFseXRpY3MifSAKICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAua2V5PSR7ImZlYXR1cmU1In0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJpdmFjeSBTZXR0aW5ncyBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNoZWNrYm94ZXMgaW4gYSB0eXBpY2FsIGZvcm0gY29udGV4dCJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tc2VjdGlvbiI+CiAgICAgICAgICA8aDQgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlByaXZhY3kgUHJlZmVyZW5jZXM8L2g0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IAogICAgICAgICAgICAgIC5sYWJlbD0keyJTaGFyZSBhbmFseXRpY3MgZGF0YSJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIZWxwIHVzIGltcHJvdmUgYnkgc2hhcmluZyBhbm9ueW1vdXMgdXNhZ2UgZGF0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiUGVyc29uYWxpemVkIHJlY29tbWVuZGF0aW9ucyJ9IAogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJHZXQgc3VnZ2VzdGlvbnMgYmFzZWQgb24geW91ciBhY3Rpdml0eSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiTWFya2V0aW5nIGNvbW11bmljYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlY2VpdmUgcHJvbW90aW9uYWwgZW1haWxzIGFuZCBzcGVjaWFsIG9mZmVycyJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgICAubGFiZWw9JHsiVGhpcmQtcGFydHkgaW50ZWdyYXRpb25zIn0gCiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFsbG93IGFwcHJvdmVkIHBhcnRuZXJzIHRvIGFjY2VzcyB5b3VyIGRhdGEifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IkNsaWNrIGNoZWNrYm94ZXMgdG8gc2VlIHZhbHVlIGNoYW5nZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCAKICAgICAgICAgICAgLmxhYmVsPSR7IkZlYXR1cmUgdG9nZ2xlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hlY2tib3gtb3V0cHV0Iik7aWYodCYmZS5kZXRhaWwpe2xldCByPWUuZGV0YWlsLmdldFZhbHVlKCk7dC50ZXh0Q29udGVudD1gRmVhdHVyZSBpcyAke3I/ImVuYWJsZWQiOiJkaXNhYmxlZCJ9YH19fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3ggCiAgICAgICAgICAgIC5sYWJlbD0keyJEZWJ1ZyBtb2RlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICBAY2hhbmdlU3ViamVjdD0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZGVidWctb3V0cHV0Iik7aWYodCYmZS5kZXRhaWwpe2xldCByPWUuZGV0YWlsLmdldFZhbHVlKCk7dC50ZXh0Q29udGVudD1gRGVidWcgbW9kZTogJHtyPyJPTiI6Ik9GRiJ9YH19fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJpbnRlcmFjdGl2ZS1zZWN0aW9uIj4KICAgICAgICAgIDxkaXYgaWQ9ImNoZWNrYm94LW91dHB1dCIgY2xhc3M9Im91dHB1dC10ZXh0Ij5GZWF0dXJlIGlzIGRpc2FibGVkPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkZWJ1Zy1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCIgc3R5bGU9Im1hcmdpbi10b3A6IDhweDsiPkRlYnVnIG1vZGU6IE9GRjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgYzZlLGNiLHpOLENOPXAoKCk9Pnt4ZSgpO00xKCk7YnNyKCk7UWEoKTtKZSgpO2M2ZT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGNiPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSx6Tj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtY2hlY2tib3giKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpCb29sZWFufSldLGw9W2ooe3R5cGU6Qm9vbGVhbn0pXSxjNmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+InZhbHVlImluIGYsZ2V0OmY9PmYudmFsdWUsc2V0OihmLHgpPT57Zi52YWx1ZT14fX0sbWV0YWRhdGE6aH0sbyxzKSxjNmUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbmRldGVybWluYXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4iaW5kZXRlcm1pbmF0ZSJpbiBmLGdldDpmPT5mLmluZGV0ZXJtaW5hdGUsc2V0OihmLHgpPT57Zi5pbmRldGVybWluYXRlPXh9fSxtZXRhZGF0YTpofSxjLHUpLGM2ZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWdzcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9Y2IodGhpcyxvLCExKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoaCl7dGhpcy4jZT1ofSN0PShjYih0aGlzLHMpLGNiKHRoaXMsYywhMSkpO2dldCBpbmRldGVybWluYXRlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluZGV0ZXJtaW5hdGUoaCl7dGhpcy4jdD1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxjYih0aGlzLHUpLHRoaXMubGFiZWxQb3NpdGlvbj0icmlnaHQifXN0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgKiB7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgOmhvc3QgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7SXJ9OwogICAgICAgIH0KCiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAuY2hlY2tib3ggewogICAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94OmZvY3VzLXZpc2libGUgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBDaGVja21hcmsgdXNpbmcgTHVjaWRlIGljb24gc3R5bGUgKi8KICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2JveC5zZWxlY3RlZCAuY2hlY2ttYXJrIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3ggLmNoZWNrbWFyayBzdmcgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBzdHJva2U6IHdoaXRlOwogICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICAgIH0KCiAgICAgICAgLyogRGlzYWJsZWQgc3RhdGUgKi8KICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIH0KCiAgICAgICAgLmNoZWNrYm94LmRpc2FibGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAvKiBMYWJlbCAqLwogICAgICAgIC5sYWJlbC1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDJweDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICB9CgogICAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC5jaGVja2JveC1sYWJlbCB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQoKICAgICAgICAubWFpbmNvbnRhaW5lci5kaXNhYmxlZDpob3ZlciAuY2hlY2tib3gtbGFiZWwgewogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC8qIERlc2NyaXB0aW9uICovCiAgICAgICAgLmRlc2NyaXB0aW9uLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIgQGNsaWNrPSIke3RoaXMudG9nZ2xlU2VsZWN0ZWR9Ij4KICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJjaGVja2JveCAke3RoaXMudmFsdWU/InNlbGVjdGVkIjoiIn0gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiAKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlS2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT9DYAogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2hlY2ttYXJrIj4KICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCA2TDkgMTdMNCAxMiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICBgOnRoaXMuaW5kZXRlcm1pbmF0ZT9DYAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaGVja21hcmsiPgogICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01IDEySDE5IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGA6Q2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbC1jb250YWluZXIiPgogICAgICAgICAgICAke3RoaXMubGFiZWw/Q2A8ZGl2IGNsYXNzPSJjaGVja2JveC1sYWJlbCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbj9DYDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uLXRleHQiPiR7dGhpcy5kZXNjcmlwdGlvbn08L2Rpdj5gOiIifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyB0b2dnbGVTZWxlY3RlZCgpe3RoaXMuZGlzYWJsZWR8fCh0aGlzLnZhbHVlPSF0aGlzLnZhbHVlLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm5ld1ZhbHVlIix7ZGV0YWlsOnRoaXMudmFsdWUsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShoKXt0aGlzLnZhbHVlPWh9Zm9jdXMoKXtsZXQgaD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoZWNrYm94Iik7aCYmaC5mb2N1cygpfWhhbmRsZUtleWRvd24oaCl7KGgua2V5PT09IiAifHxoLmtleT09PSJFbnRlciIpJiYoaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlU2VsZWN0ZWQoKSl9c3RhdGlje2NiKGkscil9fTtyZXR1cm4gZD1pfSkoKX0pO3ZhciAkZD17fTtGZSgkZCx7YnJpZ2h0OigpPT5FZCxkYXJrOigpPT5Jb30pO3ZhciBJbyxFZCxQbz1wKCgpPT57SW89e2JsdWU6IiMwMDUwYjkiLGJsdWVBY3RpdmU6IiMwMDY5ZjIiLGJsdWVNdXRlZDoiIzAxMjQ1MiIsdGV4dDoiI2ZmZmZmZiJ9LEVkPXtibHVlOiIjMDA1MGI5IixibHVlQWN0aXZlOiIjMDA2OWYyIixibHVlTXV0ZWQ6IiMwMDY5ZjIiLHRleHQ6IiMzMzMzMzMifX0pO3ZhciB2c3IseHNyPXAoKCk9Pnt4ZSgpO0lkKCk7dnNyPSgpPT5DYAogIDxzdHlsZT4KICAgICR7b2VgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y4ZjlmYSIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlMGUwZTAiLCIjMzMzIil9OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1zZWN0aW9uIGgzIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmRlbW8tc2VjdGlvbiBwIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SGVhZGVyIEJ1dHRvbnM8L2gzPgogICAgICA8cD5Nb2RhbHMgY2FuIGhhdmUgb3B0aW9uYWwgaGVhZGVyIGJ1dHRvbnMgZm9yIGhlbHAgYW5kIGNsb3NpbmcuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBIZWxwIEJ1dHRvbiIsc2hvd0hlbHBCdXR0b246ITAsb25IZWxwOmFzeW5jKCk9PntsZXQgZT1hd2FpdCBXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJIZWxwIix3aWR0aDoic21hbGwiLHNob3dDbG9zZUJ1dHRvbjohMCxzaG93SGVscEJ1dHRvbjohMSxjb250ZW50OkNgCiAgICAgICAgICAgICAgICAgIDxwPlRoaXMgaXMgdGhlIGhlbHAgY29udGVudCBmb3IgdGhlIG1vZGFsLjwvcD4KICAgICAgICAgICAgICAgICAgPHA+WW91IGNhbiBwcm92aWRlIGNvbnRleHQtc3BlY2lmaWMgaGVscCBoZXJlLjwvcD4KICAgICAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJHb3QgaXQiLGFjdGlvbjphc3luYyB0PT50LmRlc3Ryb3koKX1dfSl9LGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBhIGhlbHAgYnV0dG9uIGluIHRoZSBoZWFkZXIuIENsaWNrIGl0IHRvIHNlZSBoZWxwIGNvbnRlbnQuPC9wPgogICAgICAgICAgICAgIDxwPlRoZSBjbG9zZSBidXR0b24gaXMgYWxzbyB2aXNpYmxlIGJ5IGRlZmF1bHQuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiT0siLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9fT5XaXRoIEhlbHAgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBDbG9zZSBCdXR0b24iLHNob3dDbG9zZUJ1dHRvbjohMSxjb250ZW50OkNgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gY2xvc2UgYnV0dG9uIGluIHRoZSBoZWFkZXIuPC9wPgogICAgICAgICAgICAgIDxwPllvdSBtdXN0IHVzZSB0aGUgYWN0aW9uIGJ1dHRvbnMgb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBpdC48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19Pk5vIENsb3NlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQm90aCBCdXR0b25zIixzaG93SGVscEJ1dHRvbjohMCxzaG93Q2xvc2VCdXR0b246ITAsb25IZWxwOigpPT5hbGVydCgiSGVscCBjbGlja2VkISIpLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGhhcyBib3RoIGhlbHAgYW5kIGNsb3NlIGJ1dHRvbnMuPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiRG9uZSIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19PkJvdGggQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQ2xlYW4gSGVhZGVyIixzaG93Q2xvc2VCdXR0b246ITEsc2hvd0hlbHBCdXR0b246ITEsY29udGVudDpDYAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY2xlYW4gaGVhZGVyIHdpdGggbm8gYnV0dG9ucy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19PkNsZWFuIEhlYWRlcjwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5Nb2RhbCBXaWR0aCBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCB3aWR0aHM6IHNtYWxsLCBtZWRpdW0sIGxhcmdlLCBmdWxsc2NyZWVuLCBvciBjdXN0b20gcGl4ZWwgdmFsdWVzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1dyLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IlNtYWxsIE1vZGFsIix3aWR0aDoic21hbGwiLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc21hbGwgbW9kYWwgd2l0aCBhIHdpZHRoIG9mIDM4MHB4LiBQZXJmZWN0IGZvciBzaW1wbGUgY29uZmlybWF0aW9ucyBvciBicmllZiBtZXNzYWdlcy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX0se25hbWU6Ik9LIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9XX0pfX0+U21hbGwgTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1dyLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6Ik1lZGl1bSBNb2RhbCAoRGVmYXVsdCkiLHdpZHRoOiJtZWRpdW0iLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVXNlcm5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUGFzc3dvcmQifSAuaW5wdXRUeXBlPSR7InBhc3N3b3JkIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX0se25hbWU6IlNpZ24gVXAiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9fT5NZWRpdW0gTW9kYWw8L2RlZXMtYnV0dG9uPgogICAgICAgIAogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1dyLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkxhcmdlIE1vZGFsIix3aWR0aDoibGFyZ2UiLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8aDQ+V2lkZSBDb250ZW50IEFyZWE8L2g0PgogICAgICAgICAgICAgIDxwPlRoaXMgbGFyZ2UgbW9kYWwgaXMgODAwcHggd2lkZSBhbmQgcGVyZmVjdCBmb3IgZGlzcGxheWluZyBtb3JlIGNvbXBsZXggY29udGVudCBsaWtlIGZvcm1zIHdpdGggbXVsdGlwbGUgY29sdW1ucywgdGFibGVzLCBvciBkZXRhaWxlZCBpbmZvcm1hdGlvbi48L3A+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDE2cHg7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkZpcnN0IE5hbWUifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7Ikxhc3QgTmFtZSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQ29tcGFueSJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUG9zaXRpb24ifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfSx7bmFtZToiU2F2ZSIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19PkxhcmdlIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJGdWxsc2NyZWVuIEVkaXRvciIsd2lkdGg6ImZ1bGxzY3JlZW4iLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDphc3luYygpPT57YWxlcnQoIkluIGEgcmVhbCBhcHAsIHRoaXMgd291bGQgc2hvdyBlZGl0b3IgZG9jdW1lbnRhdGlvbiIpfSxjb250ZW50OkNgCiAgICAgICAgICAgICAgPGg0PkZ1bGxzY3JlZW4gRXhwZXJpZW5jZSB3aXRoIEhlYWRlciBDb250cm9sczwvaDQ+CiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCB0YWtlcyB1cCBhbG1vc3QgdGhlIGVudGlyZSB2aWV3cG9ydCB3aXRoIGEgMjBweCBtYXJnaW4gb24gYWxsIHNpZGVzLiBUaGUgaGVhZGVyIGJ1dHRvbnMgYXJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gZnVsbHNjcmVlbiBtb2RlLjwvcD4KICAgICAgICAgICAgICA8cD5UaGUgY29udGVudCBhcmVhIGNhbiBiZSBhcyB0YWxsIGFzIG5lZWRlZCBhbmQgd2lsbCBzY3JvbGwgaWYgbmVjZXNzYXJ5LjwvcD4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YwZjBmMCIsIiMyYTJhMmEiKX07IGJvcmRlci1yYWRpdXM6IDhweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogJHttLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9Ij5MYXJnZSBjb250ZW50IGFyZWE8L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJTYXZlIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9LHtuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9fT5GdWxsc2NyZWVuIE1vZGFsPC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkN1c3RvbSBXaWR0aCAmIENvbnN0cmFpbnRzPC9oMz4KICAgICAgPHA+WW91IGNhbiBhbHNvIHNldCBjdXN0b20gcGl4ZWwgd2lkdGhzIGFuZCBtaW4vbWF4IGNvbnN0cmFpbnRzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+e1dyLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6IkN1c3RvbSBXaWR0aCAoNzAwcHgpIix3aWR0aDo3MDAsY29udGVudDpDYAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgaGFzIGEgY3VzdG9tIHdpZHRoIG9mIGV4YWN0bHkgNzAwIHBpeGVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDbG9zZSIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19PkN1c3RvbSA3MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNYXggV2lkdGgiLHdpZHRoOiJsYXJnZSIsbWF4V2lkdGg6NjAwLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgICA8cD5UaGlzIG1vZGFsIGlzIHNldCB0byAnbGFyZ2UnIGJ1dCBjb25zdHJhaW5lZCBieSBhIG1heFdpZHRoIG9mIDYwMHB4LjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkdvdCBpdCIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfV19KX19Pk1heCBXaWR0aCA2MDBweDwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiV2l0aCBNaW4gV2lkdGgiLHdpZHRoOjMwMCxtaW5XaWR0aDo0MDAsY29udGVudDpDYAogICAgICAgICAgICAgIDxwPlRoaXMgbW9kYWwgd2lkdGggaXMgc2V0IHRvIDMwMHB4IGJ1dCBoYXMgYSBtaW5XaWR0aCBvZiA0MDBweCwgc28gaXQgd2lsbCBiZSA0MDBweCB3aWRlLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6Ik9LIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9XX0pfX0+TWluIFdpZHRoIDQwMHB4PC9kZWVzLWJ1dHRvbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBWYXJpYXRpb25zPC9oMz4KICAgICAgPHA+TW9kYWxzIGNhbiBoYXZlIGRpZmZlcmVudCBidXR0b24gY29uZmlndXJhdGlvbnMgd2l0aCBwcm9wZXIgc3BhY2luZy48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJNdWx0aXBsZSBBY3Rpb25zIixjb250ZW50OkNgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBkZW1vbnN0cmF0ZXMgbXVsdGlwbGUgYnV0dG9ucyB3aXRoIHByb3BlciBzcGFjaW5nIGJldHdlZW4gdGhlbS48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEZWxldGUiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX0se25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIGU9PmUuZGVzdHJveSgpfSx7bmFtZToiU2F2ZSBDaGFuZ2VzIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9XX0pfX0+VGhyZWUgQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2luZ2xlIEFjdGlvbiIsY29udGVudDpDYAogICAgICAgICAgICAgIDxwPlNvbWV0aW1lcyB5b3UganVzdCBuZWVkIG9uZSBidXR0b24uPC9wPgogICAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQWNrbm93bGVkZ2UiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9fT5TaW5nbGUgQnV0dG9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAKICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJObyBBY3Rpb25zIixjb250ZW50OkNgCiAgICAgICAgICAgICAgPHA+VGhpcyBtb2RhbCBoYXMgbm8gYm90dG9tIGJ1dHRvbnMuIFVzZSB0aGUgWCBidXR0b24gb3IgY2xpY2sgb3V0c2lkZSB0byBjbG9zZS48L3A+CiAgICAgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7IGNvbG9yOiAke20uYmRUaGVtZSgiIzY2NiIsIiM5OTkiKX07Ij5UaGlzIGlzIHVzZWZ1bCBmb3IgaW5mb3JtYXRpb25hbCBtb2RhbHMgdGhhdCBkb24ndCByZXF1aXJlIHVzZXIgYWN0aW9uLjwvcD4KICAgICAgICAgICAgYCxtZW51T3B0aW9uczpbXX0pfX0+Tm8gQnV0dG9uczwvZGVlcy1idXR0b24+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiTG9uZyBCdXR0b24gTGFiZWxzIixjb250ZW50OkNgCiAgICAgICAgICAgICAgPHA+VGVzdGluZyBidXR0b24gbGF5b3V0IHdpdGggbG9uZ2VyIGxhYmVscy48L3A+CiAgICAgICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJEaXNjYXJkIEFsbCBDaGFuZ2VzIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9LHtuYW1lOiJTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nIixhY3Rpb246YXN5bmMgZT0+ZS5kZXN0cm95KCl9XX0pfX0+TG9uZyBMYWJlbHM8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+UmVzcG9uc2l2ZSBCZWhhdmlvcjwvaDM+CiAgICAgIDxwPkFsbCBtb2RhbHMgYXV0b21hdGljYWxseSBiZWNvbWUgZnVsbC13aWR0aCBvbiBtb2JpbGUgZGV2aWNlcyAoPCA3NjhweCB2aWV3cG9ydCB3aWR0aCkgZm9yIGJldHRlciB1c2FiaWxpdHkuPC9wPgogICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PntXci5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJSZXNwb25zaXZlIE1vZGFsIix3aWR0aDoibGFyZ2UiLHNob3dIZWxwQnV0dG9uOiEwLG9uSGVscDooKT0+Y29uc29sZS5sb2coIkhlbHAgcmVxdWVzdGVkIGZvciByZXNwb25zaXZlIG1vZGFsIiksY29udGVudDpDYAogICAgICAgICAgICA8cD5SZXNpemUgeW91ciBicm93c2VyIHdpbmRvdyB0byBzZWUgaG93IHRoaXMgbW9kYWwgYWRhcHRzLiBPbiBtb2JpbGUgdmlld3BvcnRzLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgdGFrZSB0aGUgZnVsbCB3aWR0aCBtaW51cyBtYXJnaW5zLjwvcD4KICAgICAgICAgICAgPHA+VGhlIGhlYWRlciBidXR0b25zIHJlbWFpbiBhY2Nlc3NpYmxlIGF0IGFsbCB2aWV3cG9ydCBzaXplcy48L3A+CiAgICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2xvc2UiLGFjdGlvbjphc3luYyBlPT5lLmRlc3Ryb3koKX1dfSl9fT5UZXN0IFJlc3BvbnNpdmU8L2RlZXMtYnV0dG9uPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgWW4saDEsV3IsSWQ9cCgoKT0+e1BvKCk7d2koKTt4bygpO1FhKCk7eHNyKCk7eGUoKTtLdCgpO3BjKCk7b3IoKTtKZSgpO1luPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0saDE9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFdyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1tb2RhbCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdLHEsQj1bXSxHPVtdLGVlLFA9W10sZ2U9W10sd2UsST1bXSxuZT1bXTt2YXIga2U9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBZPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ZlKHt9KV0sZD1bZmUoe30pXSx4PVtqKHt0eXBlOlN0cmluZ30pXSx5PVtqKHt0eXBlOk51bWJlcn0pXSxPPVtqKHt0eXBlOk51bWJlcn0pXSxGPVtqKHt0eXBlOkJvb2xlYW59KV0sUj1baih7dHlwZTpCb29sZWFufSldLCQ9W2ooe2F0dHJpYnV0ZTohMX0pXSxxPVtqKHt0eXBlOkJvb2xlYW59KV0sZWU9W2ooe3R5cGU6TnVtYmVyfSldLHdlPVtmZSgpXSxZbih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJoZWFkaW5nImluIEEsZ2V0OkE9PkEuaGVhZGluZyxzZXQ6KEEsTCk9PntBLmhlYWRpbmc9TH19LG1ldGFkYXRhOll9LG8scyksWW4odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4iY29udGVudCJpbiBBLGdldDpBPT5BLmNvbnRlbnQsc2V0OihBLEwpPT57QS5jb250ZW50PUx9fSxtZXRhZGF0YTpZfSxjLHUpLFluKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWVudU9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJtZW51T3B0aW9ucyJpbiBBLGdldDpBPT5BLm1lbnVPcHRpb25zLHNldDooQSxMKT0+e0EubWVudU9wdGlvbnM9TH19LG1ldGFkYXRhOll9LGgsZiksWW4odGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3aWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+IndpZHRoImluIEEsZ2V0OkE9PkEud2lkdGgsc2V0OihBLEwpPT57QS53aWR0aD1MfX0sbWV0YWRhdGE6WX0sdixiKSxZbih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heFdpZHRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ibWF4V2lkdGgiaW4gQSxnZXQ6QT0+QS5tYXhXaWR0aCxzZXQ6KEEsTCk9PntBLm1heFdpZHRoPUx9fSxtZXRhZGF0YTpZfSx3LGspLFluKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWluV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJtaW5XaWR0aCJpbiBBLGdldDpBPT5BLm1pbldpZHRoLHNldDooQSxMKT0+e0EubWluV2lkdGg9TH19LG1ldGFkYXRhOll9LHosTSksWW4odGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q2xvc2VCdXR0b24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJzaG93Q2xvc2VCdXR0b24iaW4gQSxnZXQ6QT0+QS5zaG93Q2xvc2VCdXR0b24sc2V0OihBLEwpPT57QS5zaG93Q2xvc2VCdXR0b249TH19LG1ldGFkYXRhOll9LEQsTiksWW4odGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93SGVscEJ1dHRvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InNob3dIZWxwQnV0dG9uImluIEEsZ2V0OkE9PkEuc2hvd0hlbHBCdXR0b24sc2V0OihBLEwpPT57QS5zaG93SGVscEJ1dHRvbj1MfX0sbWV0YWRhdGE6WX0sXyxTKSxZbih0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9uSGVscCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+Im9uSGVscCJpbiBBLGdldDpBPT5BLm9uSGVscCxzZXQ6KEEsTCk9PntBLm9uSGVscD1MfX0sbWV0YWRhdGE6WX0sVCxFKSxZbih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vYmlsZUZ1bGxzY3JlZW4iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJtb2JpbGVGdWxsc2NyZWVuImluIEEsZ2V0OkE9PkEubW9iaWxlRnVsbHNjcmVlbixzZXQ6KEEsTCk9PntBLm1vYmlsZUZ1bGxzY3JlZW49TH19LG1ldGFkYXRhOll9LEIsRyksWW4odGhpcyxudWxsLGVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFBhZGRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJjb250ZW50UGFkZGluZyJpbiBBLGdldDpBPT5BLmNvbnRlbnRQYWRkaW5nLHNldDooQSxMKT0+e0EuY29udGVudFBhZGRpbmc9TH19LG1ldGFkYXRhOll9LFAsZ2UpLFluKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGFsWkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ibW9kYWxaSW5kZXgiaW4gQSxnZXQ6QT0+QS5tb2RhbFpJbmRleCxzZXQ6KEEsTCk9PntBLm1vZGFsWkluZGV4PUx9fSxtZXRhZGF0YTpZfSxJLG5lKSxZbihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpZfSxudWxsLHIpLGtlPWk9dC52YWx1ZSxZJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOll9KX1zdGF0aWMgZGVtbz12c3I7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coWSl7bGV0IEE9ZG9jdW1lbnQuYm9keSxMPW5ldyBrZTtyZXR1cm4gTC5oZWFkaW5nPVkuaGVhZGluZyxMLmNvbnRlbnQ9WS5jb250ZW50LEwubWVudU9wdGlvbnM9WS5tZW51T3B0aW9ucyxZLndpZHRoJiYoTC53aWR0aD1ZLndpZHRoKSxZLm1heFdpZHRoJiYoTC5tYXhXaWR0aD1ZLm1heFdpZHRoKSxZLm1pbldpZHRoJiYoTC5taW5XaWR0aD1ZLm1pbldpZHRoKSxZLnNob3dDbG9zZUJ1dHRvbiE9PXZvaWQgMCYmKEwuc2hvd0Nsb3NlQnV0dG9uPVkuc2hvd0Nsb3NlQnV0dG9uKSxZLnNob3dIZWxwQnV0dG9uIT09dm9pZCAwJiYoTC5zaG93SGVscEJ1dHRvbj1ZLnNob3dIZWxwQnV0dG9uKSxZLm9uSGVscCYmKEwub25IZWxwPVkub25IZWxwKSxZLm1vYmlsZUZ1bGxzY3JlZW4hPT12b2lkIDAmJihMLm1vYmlsZUZ1bGxzY3JlZW49WS5tb2JpbGVGdWxsc2NyZWVuKSxZLmNvbnRlbnRQYWRkaW5nIT09dm9pZCAwJiYoTC5jb250ZW50UGFkZGluZz1ZLmNvbnRlbnRQYWRkaW5nKSxMLndpbmRvd0xheWVyPWF3YWl0ICRvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSxMLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57YXdhaXQgTC5kZXN0cm95KCl9KSxBLmFwcGVuZChMLndpbmRvd0xheWVyKSxBLmFwcGVuZChMKSxMLm1vZGFsWkluZGV4PUtyLmdldE5leHRaSW5kZXgoKSxLci5yZWdpc3RlcihMLEwubW9kYWxaSW5kZXgpLEx9I2U9aDEodGhpcyxvLCIiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKFkpe3RoaXMuI2U9WX0jdD0oaDEodGhpcyxzKSxoMSh0aGlzLGMsdm9pZCAwKSk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY29udGVudChZKXt0aGlzLiN0PVl9I3I9KGgxKHRoaXMsdSksaDEodGhpcyxoLFtdKSk7Z2V0IG1lbnVPcHRpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1lbnVPcHRpb25zKFkpe3RoaXMuI3I9WX0jaT0oaDEodGhpcyxmKSxoMSh0aGlzLHYsIm1lZGl1bSIpKTtnZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgd2lkdGgoWSl7dGhpcy4jaT1ZfSNhPShoMSh0aGlzLGIpLGgxKHRoaXMsdyx2b2lkIDApKTtnZXQgbWF4V2lkdGgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWF4V2lkdGgoWSl7dGhpcy4jYT1ZfSNuPShoMSh0aGlzLGspLGgxKHRoaXMseix2b2lkIDApKTtnZXQgbWluV2lkdGgoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWluV2lkdGgoWSl7dGhpcy4jbj1ZfSNvPShoMSh0aGlzLE0pLGgxKHRoaXMsRCwhMCkpO2dldCBzaG93Q2xvc2VCdXR0b24oKXtyZXR1cm4gdGhpcy4jb31zZXQgc2hvd0Nsb3NlQnV0dG9uKFkpe3RoaXMuI289WX0jcz0oaDEodGhpcyxOKSxoMSh0aGlzLF8sITEpKTtnZXQgc2hvd0hlbHBCdXR0b24oKXtyZXR1cm4gdGhpcy4jc31zZXQgc2hvd0hlbHBCdXR0b24oWSl7dGhpcy4jcz1ZfSNsPShoMSh0aGlzLFMpLGgxKHRoaXMsVCx2b2lkIDApKTtnZXQgb25IZWxwKCl7cmV0dXJuIHRoaXMuI2x9c2V0IG9uSGVscChZKXt0aGlzLiNsPVl9I2M9KGgxKHRoaXMsRSksaDEodGhpcyxCLCExKSk7Z2V0IG1vYmlsZUZ1bGxzY3JlZW4oKXtyZXR1cm4gdGhpcy4jY31zZXQgbW9iaWxlRnVsbHNjcmVlbihZKXt0aGlzLiNjPVl9I2Q9KGgxKHRoaXMsRyksaDEodGhpcyxQLDE2KSk7Z2V0IGNvbnRlbnRQYWRkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGNvbnRlbnRQYWRkaW5nKFkpe3RoaXMuI2Q9WX0jdT0oaDEodGhpcyxnZSksaDEodGhpcyxJLDFlMykpO2dldCBtb2RhbFpJbmRleCgpe3JldHVybiB0aGlzLiN1fXNldCBtb2RhbFpJbmRleChZKXt0aGlzLiN1PVl9Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgIH0KICAgICAgLm1vZGFsQ29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIC5tb2RhbCB7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KSBzY2FsZSgwLjk1KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAvKiBXaWR0aCB2YXJpYXRpb25zICovCiAgICAgIC5tb2RhbC53aWR0aC1zbWFsbCB7CiAgICAgICAgd2lkdGg6IDM4MHB4OwogICAgICB9CgogICAgICAubW9kYWwud2lkdGgtbWVkaXVtIHsKICAgICAgICB3aWR0aDogNTYwcHg7CiAgICAgIH0KCiAgICAgIC5tb2RhbC53aWR0aC1sYXJnZSB7CiAgICAgICAgd2lkdGg6IDgwMHB4OwogICAgICB9CgogICAgICAubW9kYWwud2lkdGgtZnVsbHNjcmVlbiB7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSA0MHB4KTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA0MHB4KTsKICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5tb2RhbCB7CiAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQWxsb3cgZnVsbCBoZWlnaHQgb24gbW9iaWxlIHdoZW4gY29udGVudCBuZWVkcyBpdCAqLwogICAgICAgIC5tb2RhbENvbnRhaW5lciB7CiAgICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubW9kYWwgewogICAgICAgICAgbWFyZ2luOiAxMHB4OwogICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDIwcHgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBGdWxsIHNjcmVlbiBtb2RlIG9uIG1vYmlsZSAqLwogICAgICAgIC5tb2RhbC5tb2JpbGUtZnVsbHNjcmVlbiB7CiAgICAgICAgICB3aWR0aDogMTAwdncgIWltcG9ydGFudDsKICAgICAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7CiAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1vZGFsLnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCkgc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5tb2RhbC5zaG93LnByZWRlc3Ryb3kgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlKDEpOwogICAgICB9CgogICAgICAubW9kYWwgLmhlYWRpbmcgewogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogOHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uIHsKICAgICAgICB3aWR0aDogMjhweDsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5oZWFkaW5nIC5oZWFkZXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICAubW9kYWwgLmhlYWRpbmcgLmhlYWRlci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5tb2RhbCAuaGVhZGluZyAuaGVhZGluZy10ZXh0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDQwcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIH0KICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBsaW5lLWhlaWdodDogMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjM2YzZjQ2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNTI1MjViIil9OwogICAgICB9CiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjNTI1MjViIil9OwogICAgICB9CiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsKICAgICAgfQoKICAgICAgLm1vZGFsIC5ib3R0b21CdXR0b25zIC5ib3R0b21CdXR0b24ucHJpbWFyeSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICAgIC5tb2RhbCAuYm90dG9tQnV0dG9ucyAuYm90dG9tQnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgfQogICAgICAubW9kYWwgLmJvdHRvbUJ1dHRvbnMgLmJvdHRvbUJ1dHRvbi5wcmltYXJ5OmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMxZDRlZDgiLCIjMWQ0ZWQ4Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiMxZDRlZDgiLCIjMWQ0ZWQ4Iil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgWT10eXBlb2YgdGhpcy53aWR0aD09InN0cmluZyI/YHdpZHRoLSR7dGhpcy53aWR0aH1gOiIiLEE9dHlwZW9mIHRoaXMud2lkdGg9PSJudW1iZXIiP2Ake3RoaXMud2lkdGh9cHhgOiIiLEw9dGhpcy5tYXhXaWR0aD9gJHt0aGlzLm1heFdpZHRofXB4YDoiIixVPXRoaXMubWluV2lkdGg/YCR7dGhpcy5taW5XaWR0aH1weGA6IiIsVj10aGlzLm1vYmlsZUZ1bGxzY3JlZW4/Im1vYmlsZS1mdWxsc2NyZWVuIjoiIjtyZXR1cm4gQ2AKICAgICAgPHN0eWxlPgogICAgICAgICR7QT9gLm1vZGFsIHsgd2lkdGg6ICR7QX07IH1gOiIifQogICAgICAgICR7TD9gLm1vZGFsIHsgbWF4LXdpZHRoOiAke0x9OyB9YDoiIn0KICAgICAgICAke1U/YC5tb2RhbCB7IG1pbi13aWR0aDogJHtVfTsgfWA6IiJ9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsQ29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZU91dHNpZGVDbGlja30gc3R5bGU9InotaW5kZXg6ICR7dGhpcy5tb2RhbFpJbmRleH0iPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsICR7WX0gJHtWfSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkaW5nIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZy10ZXh0Ij4ke3RoaXMuaGVhZGluZ308L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbnMiPgogICAgICAgICAgICAgICR7dGhpcy5zaG93SGVscEJ1dHRvbj9DYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVIZWxwfSB0aXRsZT0iSGVscCI+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmhlbHBDaXJjbGUifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgJHt0aGlzLnNob3dDbG9zZUJ1dHRvbj9DYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuZGVzdHJveSgpfSB0aXRsZT0iQ2xvc2UiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6ICR7dGhpcy5jb250ZW50UGFkZGluZ31weDsiPiR7dGhpcy5jb250ZW50fTwvZGl2PgogICAgICAgICAgJHt0aGlzLm1lbnVPcHRpb25zLmxlbmd0aD4wP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJ1dHRvbnMiPgogICAgICAgICAgICAgICR7dGhpcy5tZW51T3B0aW9ucy5tYXAoKFgsZGUpPT5DYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b21CdXR0b24gJHtkZT09PXRoaXMubWVudU9wdGlvbnMubGVuZ3RoLTE/InByaW1hcnkiOiIifSAke1gubmFtZT09PSJPSyI/Im9rIjoiIn0iIEBjbGljaz0keygpPT57WC5hY3Rpb24odGhpcyl9fT4ke1gubmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH13aW5kb3dMYXllcj1oMSh0aGlzLG5lKTthc3luYyBmaXJzdFVwZGF0ZWQoWSl7c3VwZXIuZmlyc3RVcGRhdGVkKFkpLGF3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1vZGFsIikuY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhhbmRsZU91dHNpZGVDbGljayhZKXtZLnN0b3BQcm9wYWdhdGlvbigpO2xldCBBPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubW9kYWxDb250YWluZXIiKTtZLnRhcmdldD09PUEmJmF3YWl0IHRoaXMuZGVzdHJveSgpfWFzeW5jIGRlc3Ryb3koKXtsZXQgWT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1vZGFsIikuY2xhc3NMaXN0LmFkZCgicHJlZGVzdHJveSIpLGF3YWl0IFkuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyMDApLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcyksYXdhaXQgdGhpcy53aW5kb3dMYXllci5kZXN0cm95KCksS3IudW5yZWdpc3Rlcih0aGlzKX1hc3luYyBoYW5kbGVIZWxwKCl7dGhpcy5vbkhlbHAmJmF3YWl0IHRoaXMub25IZWxwKCl9c3RhdGlje2gxKGkscil9fTtyZXR1cm4ga2U9aX0pKCl9KTt2YXIgeXNyLHdzcj1wKCgpPT57eGUoKTt5c3I9KCk9PkNgCiAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHsiYSBsYWJlbCJ9PjwvZGVlcy1sYWJlbD4KICBgfSk7dmFyIFROLFBkLE1zcixlaD1wKCgpPT57d2koKTtQbygpO3hlKCk7d3NyKCk7SmUoKTtUTj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFBkPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxNc3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLWxhYmVsIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB2PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sbD1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxkPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxUTih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4ibGFiZWwiaW4gYixnZXQ6Yj0+Yi5sYWJlbCxzZXQ6KGIseSk9PntiLmxhYmVsPXl9fSxtZXRhZGF0YTp2fSxvLHMpLFROKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGVzY3JpcHRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJkZXNjcmlwdGlvbiJpbiBiLGdldDpiPT5iLmRlc2NyaXB0aW9uLHNldDooYix5KT0+e2IuZGVzY3JpcHRpb249eX19LG1ldGFkYXRhOnZ9LGMsdSksVE4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXF1aXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InJlcXVpcmVkImluIGIsZ2V0OmI9PmIucmVxdWlyZWQsc2V0OihiLHkpPT57Yi5yZXF1aXJlZD15fX0sbWV0YWRhdGE6dn0saCxmKSxUTihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLHIpLHg9aT10LnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vPXlzcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCIsIklucHV0Il07I2U9UGQodGhpcyxvLCIiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwodil7dGhpcy4jZT12fSN0PShQZCh0aGlzLHMpLFBkKHRoaXMsYyx2b2lkIDApKTtnZXQgZGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgZGVzY3JpcHRpb24odil7dGhpcy4jdD12fSNyPShQZCh0aGlzLHUpLFBkKHRoaXMsaCwhMSkpO2dldCByZXF1aXJlZCgpe3JldHVybiB0aGlzLiNyfXNldCByZXF1aXJlZCh2KXt0aGlzLiNyPXZ9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5sYWJlbCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAucmVxdWlyZWQgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbiB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICBtYXJnaW4tbGVmdDogNHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGN1cnNvcjogaGVscDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgICR7dGhpcy5sYWJlbD9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYWJlbCI+CiAgICAgICAgICAgICAgJHt0aGlzLmxhYmVsfQogICAgICAgICAgICAgICR7dGhpcy5yZXF1aXJlZD9DYDxzcGFuIGNsYXNzPSJyZXF1aXJlZCI+Kjwvc3Bhbj5gOiIifQogICAgICAgICAgICAgICR7dGhpcy5kZXNjcmlwdGlvbj9DYAogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmluZm8ifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1zcGVlY2hidWJibGUgLnRleHQ9JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtc3BlZWNoYnViYmxlPgogICAgICAgICAgICAgICAgICBgOkNgYH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOkNgYH0KICAgIGB9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFBkKHRoaXMsZil9c3RhdGlje1BkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBfTixkNmU9cCgoKT0+e19OPSIwLjU1LjEifSk7dmFyIHRoLFQyLGtzcixOZD1wKCgpPT57eGUoKTtLdCgpO2Q2ZSgpO0plKCk7dGg9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxUMj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sa3NyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ooe3R5cGU6U3RyaW5nfSldLHg9W2ooe3R5cGU6T2JqZWN0fSldLHk9W2ooe3R5cGU6Qm9vbGVhbn0pXSx0aCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJjb250ZW50ImluIE0sZ2V0Ok09Pk0uY29udGVudCxzZXQ6KE0sRik9PntNLmNvbnRlbnQ9Rn19LG1ldGFkYXRhOnp9LG8scyksdGgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYW5ndWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+Imxhbmd1YWdlImluIE0sZ2V0Ok09Pk0ubGFuZ3VhZ2Usc2V0OihNLEYpPT57TS5sYW5ndWFnZT1GfX0sbWV0YWRhdGE6en0sYyx1KSx0aCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbGVQYXRoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iZmlsZVBhdGgiaW4gTSxnZXQ6TT0+TS5maWxlUGF0aCxzZXQ6KE0sRik9PntNLmZpbGVQYXRoPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLHRoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGVudFN1YmplY3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJjb250ZW50U3ViamVjdCJpbiBNLGdldDpNPT5NLmNvbnRlbnRTdWJqZWN0LHNldDooTSxGKT0+e00uY29udGVudFN1YmplY3Q9Rn19LG1ldGFkYXRhOnp9LHYsYiksdGgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkV3JhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+IndvcmRXcmFwImluIE0sZ2V0Ok09Pk0ud29yZFdyYXAsc2V0OihNLEYpPT57TS53b3JkV3JhcD1GfX0sbWV0YWRhdGE6en0sdyxrKSx0aChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp6fSxudWxsLHIpLE89aT10LnZhbHVlLHomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfXN0YXRpYyBkZW1vPSgpPT5DYDxkZWVzLXdvcmtzcGFjZS1tb25hY28+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+YDtzdGF0aWMgZGVtb0dyb3Vwcz1bIldvcmtzcGFjZSJdO3N0YXRpYyBtb25hY29EZWZlcnJlZDtlZGl0b3JEZWZlcnJlZD1qdC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT1UMih0aGlzLG8sYGZ1bmN0aW9uIGhlbGxvKCkgewoJYWxlcnQoJ0hlbGxvIHdvcmxkIScpOwp9YCk7Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY29udGVudCh6KXt0aGlzLiNlPXp9I3Q9KFQyKHRoaXMscyksVDIodGhpcyxjLCJ0eXBlc2NyaXB0IikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiN0fXNldCBsYW5ndWFnZSh6KXt0aGlzLiN0PXp9I3I9KFQyKHRoaXMsdSksVDIodGhpcyxoLCIiKSk7Z2V0IGZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGZpbGVQYXRoKHope3RoaXMuI3I9en0jaT0oVDIodGhpcyxmKSxUMih0aGlzLHYsbmV3IGp0LnNtYXJ0cngucnhqcy5TdWJqZWN0KSk7Z2V0IGNvbnRlbnRTdWJqZWN0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGNvbnRlbnRTdWJqZWN0KHope3RoaXMuI2k9en0jYT0oVDIodGhpcyxiKSxUMih0aGlzLHcsIm9mZiIpKTtnZXQgd29yZFdyYXAoKXtyZXR1cm4gdGhpcy4jYX1zZXQgd29yZFdyYXAoeil7dGhpcy4jYT16fW1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPShUMih0aGlzLGspLG51bGwpO2lzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITE7Y29uc3RydWN0b3IoKXtzdXBlcigpLERhLnNldHVwRG9tVG9vbHMoKX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAubWFpbmJveCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgI2NvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoeil7c3VwZXIuZmlyc3RVcGRhdGVkKHopO2xldCBNPXRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIiksRj1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tb25hY28tZWRpdG9yQCR7X059YDtpZighTy5tb25hY29EZWZlcnJlZCl7Ty5tb25hY29EZWZlcnJlZD1qdC5zbWFydHByb21pc2UuZGVmZXIoKTtsZXQgXz1gJHtGfS9taW4vdnMvbG9hZGVyLmpzYCxTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1Muc3JjPV8sUy5vbmxvYWQ9KCk9PntPLm1vbmFjb0RlZmVycmVkLnJlc29sdmUoKX0sZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChTKX1hd2FpdCBPLm1vbmFjb0RlZmVycmVkLnByb21pc2Usd2luZG93LnJlcXVpcmUuY29uZmlnKHtwYXRoczp7dnM6YCR7Rn0vbWluL3ZzYH19KSx3aW5kb3cucmVxdWlyZShbInZzL2VkaXRvci9lZGl0b3IubWFpbiJdLGFzeW5jKCk9PntsZXQgXz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSwkPV8udGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbj8idnMiOiJ2cy1kYXJrIixUPXdpbmRvdy5tb25hY28sRT1udWxsO2lmKHRoaXMuZmlsZVBhdGgpe2xldCBCPVQuVXJpLnBhcnNlKGBmaWxlOi8vJHt0aGlzLmZpbGVQYXRofWApO0U9VC5lZGl0b3IuZ2V0TW9kZWwoQiksRT9FLnNldFZhbHVlKHRoaXMuY29udGVudCk6RT1ULmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLmNvbnRlbnQsdGhpcy5sYW5ndWFnZSxCKX1sZXQgcT1ULmVkaXRvci5jcmVhdGUoTSx7bW9kZWw6RXx8dm9pZCAwLHZhbHVlOkU/dm9pZCAwOnRoaXMuY29udGVudCxsYW5ndWFnZTpFP3ZvaWQgMDp0aGlzLmxhbmd1YWdlLHRoZW1lOiQsdXNlU2hhZG93RE9NOiEwLGZvbnRTaXplOjE2LGF1dG9tYXRpY0xheW91dDohMCx3b3JkV3JhcDp0aGlzLndvcmRXcmFwLGhvdmVyOntlbmFibGVkOiEwLGRlbGF5OjMwMCxzdGlja3k6ITAsYWJvdmU6ITF9fSk7dGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1fLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKEI9PntsZXQgRz1CPyJ2cyI6InZzLWRhcmsiO3EudXBkYXRlT3B0aW9ucyh7dGhlbWU6R30pfSksdGhpcy5lZGl0b3JEZWZlcnJlZC5yZXNvbHZlKHEpfSk7bGV0IEQ9YXdhaXQoYXdhaXQgZmV0Y2goYCR7Rn0vbWluL3ZzL2VkaXRvci9lZGl0b3IubWFpbi5jc3NgKSkudGV4dCgpLE49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtOLnRleHRDb250ZW50PUQsdGhpcy5zaGFkb3dSb290LmFwcGVuZChOKTtsZXQgUj1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2U7Ui5vbkRpZENoYW5nZU1vZGVsQ29udGVudChhc3luYyBfPT57aWYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsKXJldHVybjtsZXQgUz1SLmdldFZhbHVlKCk7dGhpcy5jb250ZW50U3ViamVjdC5uZXh0KFMpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbnRlbnQtY2hhbmdlIix7ZGV0YWlsOlMsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0pLHRoaXMuY29udGVudFN1YmplY3QubmV4dChSLmdldFZhbHVlKCkpfWFzeW5jIHVwZGF0ZWQoeil7c3VwZXIudXBkYXRlZCh6KTtsZXQgTT13aW5kb3cubW9uYWNvO2lmKE0pe2lmKHouaGFzKCJmaWxlUGF0aCIpJiZ0aGlzLmZpbGVQYXRoKXtsZXQgRj1hd2FpdCB0aGlzLmVkaXRvckRlZmVycmVkLnByb21pc2UsRD1NLlVyaS5wYXJzZShgZmlsZTovLyR7dGhpcy5maWxlUGF0aH1gKSxOPU0uZWRpdG9yLmdldE1vZGVsKEQpO04/Ti5nZXRWYWx1ZSgpIT09dGhpcy5jb250ZW50JiYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLE4uc2V0VmFsdWUodGhpcy5jb250ZW50KSx0aGlzLmlzVXBkYXRpbmdGcm9tRXh0ZXJuYWw9ITEpOk49TS5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5jb250ZW50LHRoaXMubGFuZ3VhZ2UsRCksRi5nZXRNb2RlbCgpPy51cmkudG9TdHJpbmcoKSE9PUQudG9TdHJpbmcoKSYmRi5zZXRNb2RlbChOKTtyZXR1cm59aWYoei5oYXMoImNvbnRlbnQiKSl7bGV0IEY9YXdhaXQgdGhpcy5lZGl0b3JEZWZlcnJlZC5wcm9taXNlO0YuZ2V0VmFsdWUoKSE9PXRoaXMuY29udGVudCYmKHRoaXMuaXNVcGRhdGluZ0Zyb21FeHRlcm5hbD0hMCxGLnNldFZhbHVlKHRoaXMuY29udGVudCksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExKX1pZih6LmhhcygibGFuZ3VhZ2UiKSl7bGV0IEQ9KGF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTtEJiZNLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKEQsdGhpcy5sYW5ndWFnZSl9fX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGwpfWFzeW5jIHNldENvbnRlbnRFeHRlcm5hbCh6LE09ITApe2xldCBGPWF3YWl0IHRoaXMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZTtpZihGLmdldFZhbHVlKCk9PT16KXJldHVybjtsZXQgTj1NP0YuZ2V0UG9zaXRpb24oKTpudWxsLFI9TT9GLmdldFNlbGVjdGlvbnMoKTpudWxsLF89TT9GLmdldFNjcm9sbFRvcCgpOjAsUz1NP0YuZ2V0U2Nyb2xsTGVmdCgpOjA7aWYodGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSEwLEYuc2V0VmFsdWUoeiksdGhpcy5pc1VwZGF0aW5nRnJvbUV4dGVybmFsPSExLE0pe2lmKE4pe2xldCAkPUYuZ2V0TW9kZWwoKSxUPSQ/LmdldExpbmVDb3VudCgpfHwxLEU9TWF0aC5taW4oTi5saW5lTnVtYmVyLFQpLHE9JD8uZ2V0TGluZU1heENvbHVtbihFKXx8MSxCPU1hdGgubWluKE4uY29sdW1uLHEpO0Yuc2V0UG9zaXRpb24oe2xpbmVOdW1iZXI6RSxjb2x1bW46Qn0pfWlmKFImJlIubGVuZ3RoPjApdHJ5e0Yuc2V0U2VsZWN0aW9ucyhSKX1jYXRjaHt9Ri5zZXRTY3JvbGxQb3NpdGlvbih7c2Nyb2xsVG9wOl8sc2Nyb2xsTGVmdDpTfSl9fXN0YXRpY3tUMihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgUDQsSmEsZGIsTE4sdTZlPXAoKCk9PntNMSgpO3hlKCk7SmUoKTtJZCgpO29yKCk7ZWgoKTtOZCgpO05kKCk7UDQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxKYT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sZGI9W3trZXk6InR5cGVzY3JpcHQiLGxhYmVsOiJUeXBlU2NyaXB0In0se2tleToiamF2YXNjcmlwdCIsbGFiZWw6IkphdmFTY3JpcHQifSx7a2V5OiJqc29uIixsYWJlbDoiSlNPTiJ9LHtrZXk6Imh0bWwiLGxhYmVsOiJIVE1MIn0se2tleToiY3NzIixsYWJlbDoiQ1NTIn0se2tleToic2NzcyIsbGFiZWw6IlNDU1MifSx7a2V5OiJtYXJrZG93biIsbGFiZWw6Ik1hcmtkb3duIn0se2tleToieWFtbCIsbGFiZWw6IllBTUwifSx7a2V5OiJ4bWwiLGxhYmVsOiJYTUwifSx7a2V5OiJzcWwiLGxhYmVsOiJTUUwifSx7a2V5OiJweXRob24iLGxhYmVsOiJQeXRob24ifSx7a2V5OiJqYXZhIixsYWJlbDoiSmF2YSJ9LHtrZXk6ImNzaGFycCIsbGFiZWw6IkMjIn0se2tleToiY3BwIixsYWJlbDoiQysrIn0se2tleToiZ28iLGxhYmVsOiJHbyJ9LHtrZXk6InJ1c3QiLGxhYmVsOiJSdXN0In0se2tleToic2hlbGwiLGxhYmVsOiJTaGVsbCJ9LHtrZXk6InBsYWludGV4dCIsbGFiZWw6IlBsYWluIFRleHQifV0sTE49KCgpPT57bGV0IGU9W3llKCJkZWVzLWlucHV0LWNvZGUiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXTt2YXIgUj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpTdHJpbmd9KV0seD1baih7dHlwZTpTdHJpbmd9KV0seT1baih7dHlwZTpCb29sZWFufSldLE89W2ZlKCldLEY9W2ZlKCldLFA0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ2YWx1ZSJpbiBTLGdldDpTPT5TLnZhbHVlLHNldDooUywkKT0+e1MudmFsdWU9JH19LG1ldGFkYXRhOl99LG8scyksUDQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYW5ndWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+Imxhbmd1YWdlImluIFMsZ2V0OlM9PlMubGFuZ3VhZ2Usc2V0OihTLCQpPT57Uy5sYW5ndWFnZT0kfX0sbWV0YWRhdGE6X30sYyx1KSxQNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImhlaWdodCJpbiBTLGdldDpTPT5TLmhlaWdodCxzZXQ6KFMsJCk9PntTLmhlaWdodD0kfX0sbWV0YWRhdGE6X30saCxmKSxQNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndvcmRXcmFwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4id29yZFdyYXAiaW4gUyxnZXQ6Uz0+Uy53b3JkV3JhcCxzZXQ6KFMsJCk9PntTLndvcmRXcmFwPSR9fSxtZXRhZGF0YTpffSx2LGIpLFA0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0xpbmVOdW1iZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ic2hvd0xpbmVOdW1iZXJzImluIFMsZ2V0OlM9PlMuc2hvd0xpbmVOdW1iZXJzLHNldDooUywkKT0+e1Muc2hvd0xpbmVOdW1iZXJzPSR9fSxtZXRhZGF0YTpffSx3LGspLFA0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNMYW5ndWFnZURyb3Bkb3duT3BlbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4iaW4gUyxnZXQ6Uz0+Uy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuLHNldDooUywkKT0+e1MuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj0kfX0sbWV0YWRhdGE6X30seixNKSxQNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvcHlTdWNjZXNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iY29weVN1Y2Nlc3MiaW4gUyxnZXQ6Uz0+Uy5jb3B5U3VjY2VzcyxzZXQ6KFMsJCk9PntTLmNvcHlTdWNjZXNzPSR9fSxtZXRhZGF0YTpffSxELE4pLFA0KG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksUj1pPXQudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89KCk9PkNgCiAgICA8ZGVlcy1pbnB1dC1jb2RlCiAgICAgIGxhYmVsPSJUeXBlU2NyaXB0IENvZGUiCiAgICAgIGtleT0iY29kZSIKICAgICAgbGFuZ3VhZ2U9InR5cGVzY3JpcHQiCiAgICAgIGhlaWdodD0iMzAwcHgiCiAgICAgIC52YWx1ZT0ke2Bjb25zdCBncmVldGluZzogc3RyaW5nID0gIkhlbGxvIFdvcmxkIjsKY29uc29sZS5sb2coZ3JlZXRpbmcpO2B9CiAgICA+PC9kZWVzLWlucHV0LWNvZGU+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0IiwiV29ya3NwYWNlIl07I2U9SmEodGhpcyxvLCIiKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoXyl7dGhpcy4jZT1ffSN0PShKYSh0aGlzLHMpLEphKHRoaXMsYywidHlwZXNjcmlwdCIpKTtnZXQgbGFuZ3VhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFuZ3VhZ2UoXyl7dGhpcy4jdD1ffSNyPShKYSh0aGlzLHUpLEphKHRoaXMsaCwiMjAwcHgiKSk7Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLiNyfXNldCBoZWlnaHQoXyl7dGhpcy4jcj1ffSNpPShKYSh0aGlzLGYpLEphKHRoaXMsdiwib2ZmIikpO2dldCB3b3JkV3JhcCgpe3JldHVybiB0aGlzLiNpfXNldCB3b3JkV3JhcChfKXt0aGlzLiNpPV99I2E9KEphKHRoaXMsYiksSmEodGhpcyx3LCEwKSk7Z2V0IHNob3dMaW5lTnVtYmVycygpe3JldHVybiB0aGlzLiNhfXNldCBzaG93TGluZU51bWJlcnMoXyl7dGhpcy4jYT1ffSNuPShKYSh0aGlzLGspLEphKHRoaXMseiwhMSkpO2dldCBpc0xhbmd1YWdlRHJvcGRvd25PcGVuKCl7cmV0dXJuIHRoaXMuI259c2V0IGlzTGFuZ3VhZ2VEcm9wZG93bk9wZW4oXyl7dGhpcy4jbj1ffSNvPShKYSh0aGlzLE0pLEphKHRoaXMsRCwhMSkpO2dldCBjb3B5U3VjY2Vzcygpe3JldHVybiB0aGlzLiNvfXNldCBjb3B5U3VjY2VzcyhfKXt0aGlzLiNvPV99ZWRpdG9yRWxlbWVudD0oSmEodGhpcyxOKSxudWxsKTtzdGF0aWMgc3R5bGVzPVtEZSwuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJ0b3AiXSkgLmlucHV0LXdyYXBwZXIsCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciwKICAgICAgOmhvc3QoW2xhYmVsLXBvc2l0aW9uPSJyaWdodCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLmNvZGUtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItbGVmdCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1yaWdodCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3IgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDEyJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2UtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubGFuZ3VhZ2Utb3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24uc3VjY2VzcyB7CiAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgIH0KCiAgICAgIC5lZGl0b3Itd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgZGVlcy13b3Jrc3BhY2UtbW9uYWNvIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWRpdmlkZXIgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAuY29kZS1jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IF89ZGIuZmluZChTPT5TLmtleT09PXRoaXMubGFuZ3VhZ2UpfHxkYlswXTtyZXR1cm4gQ2AKICAgICAgPHN0eWxlPgogICAgICAgIDpob3N0IHsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLmhlaWdodH07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2Utc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uIgogICAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxhbmd1YWdlRHJvcGRvd259CiAgICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVMYW5ndWFnZUJsdXJ9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7Xy5sYWJlbH0KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAke3RoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbj9DYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1kcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgJHtkYi5tYXAoUz0+Q2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke1Mua2V5PT09dGhpcy5sYW5ndWFnZT8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0keyQ9PnRoaXMuc2VsZWN0TGFuZ3VhZ2UoJCxTLmtleSl9CiAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICR7Uy5sYWJlbH0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLXJpZ2h0Ij4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLndvcmRXcmFwPT09Im9uIj8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iV29yZCBXcmFwIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy50b2dnbGVXb3JkV3JhcH0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5zaG93TGluZU51bWJlcnM/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgdGl0bGU9IkxpbmUgTnVtYmVycyIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMudG9nZ2xlTGluZU51bWJlcnN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1kaXZpZGVyIj48L2Rpdj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHt0aGlzLmNvcHlTdWNjZXNzPyJzdWNjZXNzIjoiIn0iCiAgICAgICAgICAgICAgICB0aXRsZT0iQ29weSBDb2RlIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5jb3B5Q29kZX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5jb3B5U3VjY2Vzcz8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIHRpdGxlPSJFeHBhbmQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLm9wZW5GdWxsc2NyZWVufQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOk1heGltaXplMiJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3Itd3JhcHBlciI+CiAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tb25hY28KICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5sYW5ndWFnZX0KICAgICAgICAgICAgICAud29yZFdyYXA9JHt0aGlzLndvcmRXcmFwfQogICAgICAgICAgICAgIEBjb250ZW50LWNoYW5nZT0ke3RoaXMuaGFuZGxlQ29udGVudENoYW5nZX0KICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtbW9uYWNvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSx0aGlzLmVkaXRvckVsZW1lbnQmJnRoaXMuZWRpdG9yRWxlbWVudC5jb250ZW50U3ViamVjdC5zdWJzY3JpYmUoXz0+e3RoaXMudmFsdWUhPT1fJiYodGhpcy52YWx1ZT1fLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX0pfXRvZ2dsZUxhbmd1YWdlRHJvcGRvd24oKXt0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49IXRoaXMuaXNMYW5ndWFnZURyb3Bkb3duT3Blbn1oYW5kbGVMYW5ndWFnZUJsdXIoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5pc0xhbmd1YWdlRHJvcGRvd25PcGVuPSExfSwxNTApfWFzeW5jIHNlbGVjdExhbmd1YWdlKF8sUyl7aWYoXy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubGFuZ3VhZ2U9Uyx0aGlzLmlzTGFuZ3VhZ2VEcm9wZG93bk9wZW49ITEsdGhpcy5lZGl0b3JFbGVtZW50KXt0aGlzLmVkaXRvckVsZW1lbnQubGFuZ3VhZ2U9UztsZXQgVD0oYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldE1vZGVsKCk7VCYmd2luZG93Lm1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShULFMpfX10b2dnbGVXb3JkV3JhcCgpe3RoaXMud29yZFdyYXA9dGhpcy53b3JkV3JhcD09PSJvbiI/Im9mZiI6Im9uIix0aGlzLnVwZGF0ZUVkaXRvck9wdGlvbigid29yZFdyYXAiLHRoaXMud29yZFdyYXApfXRvZ2dsZUxpbmVOdW1iZXJzKCl7dGhpcy5zaG93TGluZU51bWJlcnM9IXRoaXMuc2hvd0xpbmVOdW1iZXJzLHRoaXMudXBkYXRlRWRpdG9yT3B0aW9uKCJsaW5lTnVtYmVycyIsdGhpcy5zaG93TGluZU51bWJlcnM/Im9uIjoib2ZmIil9YXN5bmMgdXBkYXRlRWRpdG9yT3B0aW9uKF8sUyl7dGhpcy5lZGl0b3JFbGVtZW50JiYoYXdhaXQgdGhpcy5lZGl0b3JFbGVtZW50LmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe1tfXTpTfSl9YXN5bmMgY29weUNvZGUoKXt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy52YWx1ZSksdGhpcy5jb3B5U3VjY2Vzcz0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5jb3B5U3VjY2Vzcz0hMX0sMmUzKX1jYXRjaChfKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsXyl9fWhhbmRsZUNvbnRlbnRDaGFuZ2UoXyl7bGV0IFM9Xy5kZXRhaWw7dGhpcy52YWx1ZSE9PVMmJih0aGlzLnZhbHVlPVMsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpfWFzeW5jIG9wZW5GdWxsc2NyZWVuKCl7bGV0IF89dGhpcy52YWx1ZSxTPW51bGwsJD10aGlzLmxhbmd1YWdlLFQ9dGhpcy53b3JkV3JhcCxFPXRoaXMuc2hvd0xpbmVOdW1iZXJzLHE9ITEsQj0hMSxHPSgpPT57bGV0IHdlPWRiLmZpbmQoST0+SS5rZXk9PT0kKTtyZXR1cm4gd2U/d2UubGFiZWw6IlR5cGVTY3JpcHQifSxlZT13ZT0+e2xldCBJPXdlLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoIUkpcmV0dXJuO2xldCBuZT1JLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1idXR0b24gc3BhbiIpO25lJiYobmUudGV4dENvbnRlbnQ9RygpKTtsZXQga2U9SS5xdWVyeVNlbGVjdG9yKCIud3JhcC1idG4iKTtrZSYma2UuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixUPT09Im9uIik7bGV0IFk9SS5xdWVyeVNlbGVjdG9yKCIubGluZXMtYnRuIik7WSYmWS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLEUpO2xldCBBPUkucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIiksTD1BPy5xdWVyeVNlbGVjdG9yKCJkZWVzLWljb24iKTtBJiZMJiYoQS5jbGFzc0xpc3QudG9nZ2xlKCJzdWNjZXNzIixCKSxMLmljb249Qj8ibHVjaWRlOkNoZWNrIjoibHVjaWRlOkNvcHkiKTtsZXQgVT1JLnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1kcm9wZG93biIpO1UmJihVLnN0eWxlLmRpc3BsYXk9cT8iYmxvY2siOiJub25lIil9LFA9YXdhaXQgV3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzp0aGlzLmxhYmVsfHwiQ29kZSBFZGl0b3IiLHdpZHRoOiJmdWxsc2NyZWVuIixjb250ZW50UGFkZGluZzowLGNvbnRlbnQ6Q2AKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAubW9kYWwtdG9vbGJhciB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1sZWZ0IHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1yaWdodCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNHB4OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLXNlbGVjdG9yIHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1kcm9wZG93biB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgdG9wOiAxMDAlOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4OwogICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4OwogICAgICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbiB7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLmxhbmd1YWdlLW9wdGlvbjpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC5sYW5ndWFnZS1vcHRpb24uc2VsZWN0ZWQgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTAlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1idXR0b24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgICAgfQogICAgICAgICAgLm1vZGFsLXRvb2xiYXIgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICAgIH0KICAgICAgICAgIC5tb2RhbC10b29sYmFyIC50b29sYmFyLWJ1dHRvbi5zdWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6IGhzbCgxNDIuMSA3Ni4yJSAzNi4zJSk7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtdG9vbGJhciAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgICAgICB9CiAgICAgICAgICAubW9kYWwtZWRpdG9yLXdyYXBwZXIgewogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDE3NXB4KTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItbGVmdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJsYW5ndWFnZS1idXR0b24iPgogICAgICAgICAgICAgICAgPHNwYW4+JHtHKCl9PC9zcGFuPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q2hldnJvbkRvd24ifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxhbmd1YWdlLWRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICR7ZGIubWFwKHdlPT5DYAogICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLW9wdGlvbiAke3dlLmtleT09PSQ/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke3dlLmtleX0iCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAke3dlLmxhYmVsfQogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1yaWdodCI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIHdyYXAtYnRuICR7VD09PSJvbiI/ImFjdGl2ZSI6IiJ9IiB0aXRsZT0iV29yZCBXcmFwIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpXcmFwVGV4dCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBsaW5lcy1idG4gJHtFPyJhY3RpdmUiOiIifSIgdGl0bGU9IkxpbmUgTnVtYmVycyI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6SGFzaCJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWRpdmlkZXIiPjwvZGl2PgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiBjb3B5LWJ0biIgdGl0bGU9IkNvcHkgQ29kZSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Q29weSJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZWRpdG9yLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1vbmFjbwogICAgICAgICAgICAuY29udGVudD0ke199CiAgICAgICAgICAgIC5sYW5ndWFnZT0keyR9CiAgICAgICAgICAgIC53b3JkV3JhcD0ke1R9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyB3ZT0+e2F3YWl0IHdlLmRlc3Ryb3koKX19LHtuYW1lOiJTYXZlICYgQ2xvc2UiLGFjdGlvbjphc3luYyB3ZT0+e2lmKFM9d2Uuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIiksUyl7bGV0IG5lPShhd2FpdCBTLmVkaXRvckRlZmVycmVkLnByb21pc2UpLmdldFZhbHVlKCk7dGhpcy5zZXRWYWx1ZShuZSl9YXdhaXQgd2UuZGVzdHJveSgpfX1dfSk7YXdhaXQgbmV3IFByb21pc2Uod2U9PnNldFRpbWVvdXQod2UsMTAwKSksUz1QLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO2xldCBnZT1QLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC10b29sYmFyIik7aWYoZ2Upe2xldCB3ZT1nZS5xdWVyeVNlbGVjdG9yKCIubGFuZ3VhZ2UtYnV0dG9uIik7d2U/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3E9IXEsZWUoUCl9KTtsZXQgST1nZS5xdWVyeVNlbGVjdG9yQWxsKCIubGFuZ3VhZ2Utb3B0aW9uIik7SS5mb3JFYWNoKEE9PntBLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57bGV0IEw9QS5kYXRhc2V0Lmxhbmc7aWYoTCYmUyl7JD1MLHE9ITE7bGV0IFY9KGF3YWl0IFMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0TW9kZWwoKTtWJiZ3aW5kb3cubW9uYWNvLmVkaXRvci5zZXRNb2RlbExhbmd1YWdlKFYsTCksSS5mb3JFYWNoKFg9PlguY2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiKSksQS5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpLGVlKFApfX0pfSksZ2UucXVlcnlTZWxlY3RvcigiLndyYXAtYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57VD1UPT09Im9uIj8ib2ZmIjoib24iLFMmJihhd2FpdCBTLmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe3dvcmRXcmFwOlR9KSxlZShQKX0pLGdlLnF1ZXJ5U2VsZWN0b3IoIi5saW5lcy1idG4iKT8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFzeW5jKCk9PntFPSFFLFMmJihhd2FpdCBTLmVkaXRvckRlZmVycmVkLnByb21pc2UpLnVwZGF0ZU9wdGlvbnMoe2xpbmVOdW1iZXJzOkU/Im9uIjoib2ZmIn0pLGVlKFApfSksZ2UucXVlcnlTZWxlY3RvcigiLmNvcHktYnRuIik/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhc3luYygpPT57aWYoUyl7bGV0IEw9KGF3YWl0IFMuZWRpdG9yRGVmZXJyZWQucHJvbWlzZSkuZ2V0VmFsdWUoKTt0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoTCksQj0hMCxlZShQKSxzZXRUaW1lb3V0KCgpPT57Qj0hMSxlZShQKX0sMmUzKX1jYXRjaChVKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY29weSBjb2RlOiIsVSl9fX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixBPT57cSYmIXdlPy5jb250YWlucyhBLnRhcmdldCkmJihxPSExLGVlKFApKX0se29uY2U6ITB9KX19Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZShfKXt0aGlzLnZhbHVlPV8sdGhpcy5lZGl0b3JFbGVtZW50JiYodGhpcy5lZGl0b3JFbGVtZW50LmNvbnRlbnQ9Xyx0aGlzLmVkaXRvckVsZW1lbnQuZWRpdG9yRGVmZXJyZWQucHJvbWlzZS50aGVuKFM9PntTLmdldFZhbHVlKCkhPT1fJiZTLnNldFZhbHVlKF8pfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXN0YXRpY3tKYShpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgU3NyLHpzcj1wKCgpPT57eGUoKTtwMSgpO09pKCk7cDZlKCk7U3NyPSgpPT5DYAogIDxzdHlsZT4KICAgICR7b2VgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTA1LCAyNDIsIDAuMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAgICAgIAogICAgICAuZGF0ZS1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHI9Pntjb25zb2xlLmxvZygiQmFzaWMgZGF0ZSBzZWxlY3RlZDoiLHIudGFyZ2V0LnZhbHVlKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBEYXRlIFBpY2tlciJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgZGF0ZSBzZWxlY3Rpb24gd2l0aG91dCB0aW1lIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IlNlbGVjdCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNob29zZSBhIGRhdGUgZnJvbSB0aGUgY2FsZW5kYXIiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kYXRlcGlja2VyW2xhYmVsPSJFdmVudCBEYXRlICYgVGltZSJdJykscj1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iQXBwb2ludG1lbnQiXScpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IGE9aS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjI0aCBmb3JtYXQgZGF0ZXRpbWU6IixhKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IGE9aS50YXJnZXQudmFsdWU7Y29uc29sZS5sb2coIjEyaCBmb3JtYXQgZGF0ZXRpbWU6IixhKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJEYXRlIGFuZCBUaW1lIFNlbGVjdGlvbiJ9IC5zdWJ0aXRsZT0keyJEYXRlIHBpY2tlcnMgd2l0aCB0aW1lIHNlbGVjdGlvbiBpbiBkaWZmZXJlbnQgZm9ybWF0cyJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJFdmVudCBEYXRlICYgVGltZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYm90aCBkYXRlIGFuZCB0aW1lICgyNC1ob3VyIGZvcm1hdCkiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMjRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iQXBwb2ludG1lbnQiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF0ZSBhbmQgdGltZSB3aXRoIEFNL1BNIHNlbGVjdG9yICgxNS1taW51dGUgaW5jcmVtZW50cykiCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgdGltZUZvcm1hdD0iMTJoIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezE1fQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IGE9aS50YXJnZXQ7Y29uc29sZS5sb2coYCR7YS5sYWJlbH0gdmFsdWU6YCxhLnZhbHVlKTtsZXQgbj1hLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik7biYmY29uc29sZS5sb2coYCR7YS5sYWJlbH0gZm9ybWF0dGVkOmAsbi52YWx1ZSl9KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJUaW1lem9uZSBTdXBwb3J0In0gLnN1YnRpdGxlPSR7IkRhdGUgYW5kIHRpbWUgc2VsZWN0aW9uIHdpdGggdGltZXpvbmUgYXdhcmVuZXNzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ik1lZXRpbmcgVGltZSAod2l0aCBUaW1lem9uZSkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU2VsZWN0IGEgZGF0ZS90aW1lIGFuZCB0aW1lem9uZSBmb3IgdGhlIG1lZXRpbmciCiAgICAgICAgICAuZW5hYmxlVGltZT0keyEwfQogICAgICAgICAgLmVuYWJsZVRpbWV6b25lPSR7ITB9CiAgICAgICAgICB0aW1lRm9ybWF0PSIyNGgiCiAgICAgICAgICB0aW1lem9uZT0iQW1lcmljYS9OZXdfWW9yayIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9Ikdsb2JhbCBFdmVudCBTY2hlZHVsZSIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTY2hlZHVsZSBhbiBldmVudCBhY3Jvc3MgZGlmZmVyZW50IHRpbWV6b25lcyIKICAgICAgICAgIC5lbmFibGVUaW1lPSR7ITB9CiAgICAgICAgICAuZW5hYmxlVGltZXpvbmU9JHshMH0KICAgICAgICAgIHRpbWVGb3JtYXQ9IjEyaCIKICAgICAgICAgIHRpbWV6b25lPSJFdXJvcGUvTG9uZG9uIgogICAgICAgICAgLm1pbnV0ZUluY3JlbWVudD0kezMwfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixyPT57bGV0IGk9ci50YXJnZXQudmFsdWU7aWYoaSl7bGV0IGE9bmV3IERhdGUoaSksbj1uZXcgRGF0ZSxvPU1hdGguZmxvb3IoKGEuZ2V0VGltZSgpLW4uZ2V0VGltZSgpKS8oMWUzKjYwKjYwKjI0KSk7Y29uc29sZS5sb2coYFNlbGVjdGVkIGRhdGUgaXMgJHtvfSBkYXlzIGZyb20gdG9kYXlgKX19KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRGF0ZSBSYW5nZSBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaW1pdCBzZWxlY3RhYmxlIGRhdGVzIHdpdGggbWluIGFuZCBtYXggdmFsdWVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkZ1dHVyZSBEYXRlIE9ubHkiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iQ2FuIG9ubHkgc2VsZWN0IGRhdGVzIGZyb20gdG9kYXkgdG8gOTAgZGF5cyBpbiB0aGUgZnV0dXJlIgogICAgICAgICAgLm1pbkRhdGU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICAubWF4RGF0ZT0ke25ldyBEYXRlKERhdGUubm93KCkrMjE2MCo2MCo2MCoxZTMpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PXsiREQvTU0vWVlZWSI6IkV1cm9wZWFuIiwiTU0vREQvWVlZWSI6IlVTIiwiWVlZWS1NTS1ERCI6IklTTyJ9O2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGE9PntsZXQgbj1hLnRhcmdldCxvPW4uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmRhdGUtaW5wdXQiKTtvJiZjb25zb2xlLmxvZyhgJHtuLmxhYmVsfSBmb3JtYXQ6YCxvLnZhbHVlKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRhdGUgRm9ybWF0cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgZGF0ZSBkaXNwbGF5IGZvcm1hdHMgZm9yIHZhcmlvdXMgcmVnaW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRXVyb3BlYW4gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJERC9NTS9ZWVlZIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIEZvcm1hdCIKICAgICAgICAgICAgZGF0ZUZvcm1hdD0iTU0vREQvWVlZWSIKICAgICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICAgIGxhYmVsPSJJU08gRm9ybWF0IgogICAgICAgICAgICBkYXRlRm9ybWF0PSJZWVlZLU1NLUREIgogICAgICAgICAgICAudmFsdWU9JHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRhdGVwaWNrZXJbcmVxdWlyZWRdIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e3QuZ2V0VmFsdWUoKXx8Y29uc29sZS5sb2coIlJlcXVpcmVkIGRhdGUgZmllbGQgaXMgZW1wdHkiKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJGb3JtIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJSZXF1aXJlZCBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkJpcnRoIERhdGUiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVGhpcyBmaWVsZCBpcyByZXF1aXJlZCIKICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgcGxhY2Vob2xkZXI9IlNlbGVjdCB5b3VyIGJpcnRoIGRhdGUiCiAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBEYXRlIgogICAgICAgICAgZGVzY3JpcHRpb249IlRoaXMgZmllbGQgY2Fubm90IGJlIGVkaXRlZCIKICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnZhbHVlPSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfQogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZGF0ZXBpY2tlcltsYWJlbD0iVVMgQ2FsZW5kYXIiXScpLHI9ZS5xdWVyeVNlbGVjdG9yKCdkZWVzLWlucHV0LWRhdGVwaWNrZXJbbGFiZWw9IkVVIENhbGVuZGFyIl0nKTt0JiZjb25zb2xlLmxvZygiVVMgQ2FsZW5kYXIgc3RhcnRzIG9uIFN1bmRheSAoMCkiKSxyJiZjb25zb2xlLmxvZygiRVUgQ2FsZW5kYXIgc3RhcnRzIG9uIE1vbmRheSAoMSkiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQ2FsZW5kYXIgQ3VzdG9taXphdGlvbiJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgd2VlayBzdGFydCBkYXlzIGZvciB2YXJpb3VzIHJlZ2lvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkYXRlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWRhdGVwaWNrZXIKICAgICAgICAgICAgbGFiZWw9IlVTIENhbGVuZGFyIgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV2VlayBzdGFydHMgb24gU3VuZGF5IgogICAgICAgICAgICAud2Vla1N0YXJ0c09uPSR7MH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgICBsYWJlbD0iRVUgQ2FsZW5kYXIiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrIHN0YXJ0cyBvbiBNb25kYXkiCiAgICAgICAgICAgIC53ZWVrU3RhcnRzT249JHsxfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kYXRlcGlja2VyPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PSgpPT57bGV0IGk9W10sYT1uZXcgRGF0ZSxuPWEuZ2V0RnVsbFllYXIoKSxvPWEuZ2V0TW9udGgoKSxzPW5ldyBEYXRlKG4sbywxKTtmb3IoO3MuZ2V0TW9udGgoKT09PW87KShzLmdldERheSgpPT09MHx8cy5nZXREYXkoKT09PTYpJiZpLnB1c2gobmV3IERhdGUocykudG9JU09TdHJpbmcoKSkscy5zZXREYXRlKHMuZ2V0RGF0ZSgpKzEpO3JldHVybiBpfSxyPWUucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIik7ciYmKHIuZGlzYWJsZWREYXRlcz10KCksY29uc29sZS5sb2coIkRpc2FibGVkIHdlZWtlbmQgZGF0ZXMgZm9yIGN1cnJlbnQgbW9udGgiKSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkRpc2FibGVkIERhdGVzIn0gLnN1YnRpdGxlPSR7IkNhbGVuZGFyIHdpdGggc3BlY2lmaWMgZGF0ZXMgZGlzYWJsZWQgKHdlZWtlbmRzIGluIGN1cnJlbnQgbW9udGgpIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZGF0ZXBpY2tlcgogICAgICAgICAgbGFiZWw9IkF2YWlsYWJpbGl0eSBDYWxlbmRhciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJXZWVrZW5kcyBhcmUgZGlzYWJsZWQgZm9yIHRoZSBjdXJyZW50IG1vbnRoIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1uZXcgRGF0ZSxyPXQuZ2V0TW9udGgoKSxpPXQuZ2V0RnVsbFllYXIoKSxhPVt7ZGF0ZTpgJHtpfS0keyhyKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke3QuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlRlYW0gTWVldGluZyIsdHlwZToiaW5mbyIsY291bnQ6Mn0se2RhdGU6YCR7aX0tJHsocisxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsodC5nZXREYXRlKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiUHJvamVjdCBEZWFkbGluZSIsdHlwZToid2FybmluZyJ9LHtkYXRlOmAke2l9LSR7KHIrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7KHQuZ2V0RGF0ZSgpKzIpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWAsdGl0bGU6IlJlbGVhc2UgRGF5Iix0eXBlOiJzdWNjZXNzIn0se2RhdGU6YCR7aX0tJHsocisxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHsodC5nZXREYXRlKCkrNSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YCx0aXRsZToiVXJnZW50IEZpeCBSZXF1aXJlZCIsdHlwZToiZXJyb3IifSx7ZGF0ZTpgJHtpfS0keyhyKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0keyh0LmdldERhdGUoKSs3KS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1gLHRpdGxlOiJNdWx0aXBsZSBFdmVudHMgVG9kYXkiLHR5cGU6ImluZm8iLGNvdW50OjV9LHtkYXRlOmAke2l9LSR7KHIrMikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LTE1YCx0aXRsZToiRnV0dXJlIFBsYW5uaW5nIFNlc3Npb24iLHR5cGU6ImluZm8ifV0sbj1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpO24mJihuLmV2ZW50cz1hLGNvbnNvbGUubG9nKCJDYWxlbmRhciBldmVudHMgbG9hZGVkOiIsYSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJDYWxlbmRhciB3aXRoIEV2ZW50cyJ9IC5zdWJ0aXRsZT0keyJWaXN1YWwgZmVlZGJhY2sgZm9yIHNjaGVkdWxlZCBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgQ2FsZW5kYXIiCiAgICAgICAgICBkZXNjcmlwdGlvbj0iRGF5cyB3aXRoIGNvbG9yZWQgZG90cyBoYXZlIGV2ZW50cy4gSG92ZXIgdG8gc2VlIGRldGFpbHMuIgogICAgICAgID48L2RlZXMtaW5wdXQtZGF0ZXBpY2tlcj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIDxzdHJvbmc+RXZlbnQgTGVnZW5kOjwvc3Ryb25nPjxicj4KICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzA5NjlkYTsiPuKXjyBJbmZvPC9zcGFuPiB8IAogICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiAjZDI5OTIyOyI+4pePIFdhcm5pbmc8L3NwYW4+IHwgCiAgICAgICAgICA8c3BhbiBzdHlsZT0iY29sb3I6ICMyZWEwNDM7Ij7il48gU3VjY2Vzczwvc3Bhbj4gfCAKICAgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogI2NmMjIyZTsiPuKXjyBFcnJvcjwvc3Bhbj48YnI+CiAgICAgICAgICA8ZW0+RGF5cyB3aXRoIG1vcmUgdGhhbiAzIGV2ZW50cyBzaG93IGEgY291bnQgYmFkZ2U8L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC1kYXRlcGlja2VyIikscj1lLnF1ZXJ5U2VsZWN0b3IoIiNldmVudC1vdXRwdXQiKTt0JiZyJiYodC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGk9PntsZXQgYT1pLnRhcmdldCxuPWEudmFsdWU7aWYobil7bGV0IG89bmV3IERhdGUobiksbD1hLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRlLWlucHV0Iik/LnZhbHVlfHwiTi9BIjtyLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgPHN0cm9uZz5FdmVudCB0cmlnZ2VyZWQhPC9zdHJvbmc+PGJyPgogICAgICAgICAgICAgIElTTyBWYWx1ZTogJHtufTxicj4KICAgICAgICAgICAgICBGb3JtYXR0ZWQ6ICR7bH08YnI+CiAgICAgICAgICAgICAgRGF0ZSBvYmplY3Q6ICR7by50b0xvY2FsZVN0cmluZygpfQogICAgICAgICAgICBgfWVsc2Ugci5pbm5lckhUTUw9IjxlbT5EYXRlIGNsZWFyZWQ8L2VtPiJ9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coIkRhdGVwaWNrZXIgbG9zdCBmb2N1cyIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBkZW1vbnN0cmF0aW9uIG9mIGNoYW5nZSBldmVudHMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1kYXRlcGlja2VyCiAgICAgICAgICBsYWJlbD0iRXZlbnQgRGVtbyIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZWxlY3QgYSBkYXRlIHRvIHNlZSB0aGUgZXZlbnQgZGV0YWlscyIKICAgICAgICA+PC9kZWVzLWlucHV0LWRhdGVwaWNrZXI+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iZXZlbnQtb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPlNlbGVjdCBhIGRhdGUgdG8gc2VlIGV2ZW50IGRldGFpbHMuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgQ3NyLFRzcj1wKCgpPT57eGUoKTtNMSgpO0Nzcj1bLi4ub3QuYmFzZVN0eWxlcyxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5pbnB1dC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmRhdGUtaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC5kYXRlLWlucHV0OmZvY3VzLAogICAgICAuZGF0ZS1pbnB1dC5vcGVuIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIyNCA3MS40JSA0LjElKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSAvIDAuMSkiLCJoc2woMjEwIDIwJSA5OCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZGF0ZS1pbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLyogSWNvbiBjb250YWluZXIgdXNpbmcgZmxleGJveCBmb3IgYmV0dGVyIHBvc2l0aW9uaW5nICovCiAgICAgIC5pY29uLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLmljb24tY29udGFpbmVyID4gKiB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5jYWxlbmRhci1pY29uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b24gewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5jbGVhci1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpkaXNhYmxlZCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogQ2FsZW5kYXIgUG9wdXAgU3R5bGVzICovCiAgICAgIC5jYWxlbmRhci1wb3B1cCB7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDEwcHggMTVweCAtM3B4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCA0cHggNnB4IC00cHggaHNsKDAgMCUgMCUgLyAwLjEpIiwiMCAxMHB4IDE1cHggLTNweCBoc2woMCAwJSAwJSAvIDAuMiksIDAgNHB4IDZweCAtNHB4IGhzbCgwIDAlIDAlIC8gMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHotaW5kZXg6IDUwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgbWluLXdpZHRoOiAyODBweDsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwLnRvcCB7CiAgICAgICAgYm90dG9tOiBjYWxjKDEwMCUgKyA0cHgpOwogICAgICAgIHRvcDogYXV0bzsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsKICAgICAgfQoKICAgICAgLmNhbGVuZGFyLXBvcHVwLmJvdHRvbSB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICB9CgogICAgICAuY2FsZW5kYXItcG9wdXAuc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogQ2FsZW5kYXIgSGVhZGVyICovCiAgICAgIC5jYWxlbmRhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLm1vbnRoLXllYXItZGlzcGxheSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b24gewogICAgICAgIHdpZHRoOiAyOHB4OwogICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLm5hdi1idXR0b246YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdlZWtkYXkgaGVhZGVycyAqLwogICAgICAud2Vla2RheXMgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTsKICAgICAgICBnYXA6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAud2Vla2RheSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIHBhZGRpbmc6IDAgMCA4cHggMDsKICAgICAgfQoKICAgICAgLyogRGF5cyBncmlkICovCiAgICAgIC5kYXlzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLmRheSB7CiAgICAgICAgYXNwZWN0LXJhdGlvOiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmRheTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLmRheS5vdGhlci1tb250aCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAuZGF5LnRvZGF5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjIyLjIgNDcuNCUgMTEuMiUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5kYXkuZGlzYWJsZWQgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CgogICAgICAvKiBFdmVudCBpbmRpY2F0b3JzICovCiAgICAgIC5kYXkuaGFzLWV2ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5ldmVudC1pbmRpY2F0b3IgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDRweDsKICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QgewogICAgICAgIHdpZHRoOiA0cHg7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjIwIDguOSUgNDYuMSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3QuaW5mbyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTEgNzAlIDUyJSkiLCJoc2woMjExIDcwJSA2MiUpIil9OwogICAgICB9CgogICAgICAuZXZlbnQtZG90Lndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woNDUgOTAlIDQ1JSkiLCJoc2woNDUgOTAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5ldmVudC1kb3Quc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIgNjklIDQ1JSkiLCJoc2woMTQyIDY5JSA1NSUpIil9OwogICAgICB9CgogICAgICAuZXZlbnQtZG90LmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgNzIlIDUxJSkiLCJoc2woMCA3MiUgNjElKSIpfTsKICAgICAgfQoKICAgICAgLmV2ZW50LWNvdW50IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgcmlnaHQ6IDJweDsKICAgICAgICBtaW4td2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3MiUgNTElKSIsImhzbCgwIDcyJSA2MSUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICB9CgogICAgICAvKiBUb29sdGlwIGZvciBldmVudCBkZXRhaWxzICovCiAgICAgIC5ldmVudC10b29sdGlwIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiBjYWxjKDEwMCUgKyA4cHgpOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAwJSkiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yKTsKICAgICAgfQoKICAgICAgLmV2ZW50LXRvb2x0aXA6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAuZGF5Lmhhcy1ldmVudDpob3ZlciAuZXZlbnQtdG9vbHRpcCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogVGltZSBzZWxlY3RvciAqLwogICAgICAudGltZS1zZWxlY3RvciB7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAudGltZS1zZWxlY3Rvci10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMCA4LjklIDQ2LjElKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICB9CgogICAgICAudGltZS1pbnB1dHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXQgewogICAgICAgIHdpZHRoOiA2NXB4OwogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMjQgNzEuNCUgNC4xJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjI0IDcxLjQlIDQuMSUpIiwiaHNsKDIxMCAyMCUgOTglKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGltZS1pbnB1dDpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgMjAlIDk4JSkiLCJoc2woMjE1IDI3LjklIDE2LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtaW5wdXQ6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpIiwiaHNsKDIxMCAyMCUgOTglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWUtc2VwYXJhdG9yIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLXNlbGVjdG9yIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmFtLXBtLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMjIuMiA0Ny40JSAxMS4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5hbS1wbS1idXR0b246aG92ZXI6bm90KC5zZWxlY3RlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTcuMiAzMi42JSAxNy41JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEFjdGlvbiBidXR0b25zICovCiAgICAgIC5jYWxlbmRhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAudG9kYXktYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjQgNzEuNCUgNC4xJSkiLCJoc2woMjEwIDIwJSA5OCUpIil9OwogICAgICB9CgogICAgICAudG9kYXktYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCAyMCUgOTglKSIsImhzbCgyMTUgMjcuOSUgMTYuOSUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAudG9kYXktYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAuY2xlYXItYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDYyLjglIDMwLjYlIC8gMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLmNsZWFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMikiLCJoc2woMCA2Mi44JSAzMC42JSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC8qIFRpbWV6b25lIHNlbGVjdG9yICovCiAgICAgIC50aW1lem9uZS1zZWxlY3RvciB7CiAgICAgICAgbWFyZ2luLXRvcDogMTJweDsKICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICB9CgogICAgICAudGltZXpvbmUtc2VsZWN0b3ItdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjAgOC45JSA0Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnRpbWV6b25lLXNlbGVjdCB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNy4yIDMyLjYlIDE3LjUlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjI0IDcxLjQlIDQuMSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyNCA3MS40JSA0LjElKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3Q6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE3LjIgMzIuNiUgMTcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDIwJSA5OCUpIiwiaHNsKDIxNSAyNy45JSAxNi45JSkiKX07CiAgICAgIH0KCiAgICAgIC50aW1lem9uZS1zZWxlY3Q6Zm9jdXMgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDExLjIlKSIsImhzbCgyMTAgMjAlIDk4JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgMTEuMiUgLyAwLjEpIiwiaHNsKDIxMCAyMCUgOTglIC8gMC4xKSIpfTsKICAgICAgfQogICAgYF19KTt2YXIgX3NyLExzcj1wKCgpPT57eGUoKTtfc3I9ZT0+e2xldCB0PVsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxyPWUud2Vla1N0YXJ0c09uPT09MT9bIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSIsIlN1Il06WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLGk9ZS5nZXREYXlzSW5Nb250aCgpLGE9ZS5zZWxlY3RlZEhvdXI8MTIsbj1lLmdldFRpbWV6b25lcygpO3JldHVybiBDYAogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7ZS5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7ZS5kZXNjcmlwdGlvbn0gLnJlcXVpcmVkPSR7ZS5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtY29udGFpbmVyIj4KICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICBjbGFzcz0iZGF0ZS1pbnB1dCAke2UuaXNPcGVuZWQ/Im9wZW4iOiIifSIKICAgICAgICAgICAgICAudmFsdWU9JHtlLmZvcm1hdERhdGUoZS52YWx1ZSl9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7ZS5wbGFjZWhvbGRlcn0KICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHtlLmRpc2FibGVkfQogICAgICAgICAgICAgIEBjbGljaz0ke2UudG9nZ2xlQ2FsZW5kYXJ9CiAgICAgICAgICAgICAgQGtleWRvd249JHtlLmhhbmRsZUtleWRvd259CiAgICAgICAgICAgICAgQGlucHV0PSR7ZS5oYW5kbGVNYW51YWxJbnB1dH0KICAgICAgICAgICAgICBAYmx1cj0ke2UuaGFuZGxlSW5wdXRCbHVyfQogICAgICAgICAgICAgIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiAke2UudmFsdWU/IjY0cHgiOiI0MHB4In0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24tY29udGFpbmVyIj4KICAgICAgICAgICAgICAke2UudmFsdWUmJiFlLmRpc2FibGVkP0NgCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjbGVhci1idXR0b24iIEBjbGljaz0ke2UuY2xlYXJWYWx1ZX0gdGl0bGU9IkNsZWFyIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6eCIgaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2FsZW5kYXItaWNvbiIgaWNvbj0ibHVjaWRlOmNhbGVuZGFyIiBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgICA8IS0tIENhbGVuZGFyIFBvcHVwIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1wb3B1cCAke2UuaXNPcGVuZWQ/InNob3ciOiIifSAke2Uub3BlbnNUb1RvcD8idG9wIjoiYm90dG9tIn0iPgogICAgICAgICAgICAgIDwhLS0gTW9udGgvWWVhciBOYXZpZ2F0aW9uIC0tPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbGVuZGFyLWhlYWRlciI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYnV0dG9uIiBAY2xpY2s9JHtlLnByZXZpb3VzTW9udGh9PgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpjaGV2cm9uTGVmdCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9udGgteWVhci1kaXNwbGF5Ij4KICAgICAgICAgICAgICAgICAgJHt0W2Uudmlld0RhdGUuZ2V0TW9udGgoKV19ICR7ZS52aWV3RGF0ZS5nZXRGdWxsWWVhcigpfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJuYXYtYnV0dG9uIiBAY2xpY2s9JHtlLm5leHRNb250aH0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOmNoZXZyb25SaWdodCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8IS0tIFdlZWtkYXkgSGVhZGVycyAtLT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3ZWVrZGF5cyI+CiAgICAgICAgICAgICAgICAke3IubWFwKG89PkNgPGRpdiBjbGFzcz0id2Vla2RheSI+JHtvfTwvZGl2PmApfQogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8IS0tIERheXMgR3JpZCAtLT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXlzLWdyaWQiPgogICAgICAgICAgICAgICAgJHtpLm1hcChvPT57bGV0IHM9ZS5pc1RvZGF5KG8pLGw9ZS5pc1NlbGVjdGVkKG8pLGM9by5nZXRNb250aCgpIT09ZS52aWV3RGF0ZS5nZXRNb250aCgpLHU9ZS5pc0Rpc2FibGVkKG8pLGQ9ZS5nZXRFdmVudHNGb3JEYXRlKG8pLGg9ZC5sZW5ndGg+MCxmPWQucmVkdWNlKCh4LHYpPT54Kyh2LmNvdW50fHwxKSwwKTtyZXR1cm4gQ2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImRheSAke2M/Im90aGVyLW1vbnRoIjoiIn0gJHtzPyJ0b2RheSI6IiJ9ICR7bD8ic2VsZWN0ZWQiOiIifSAke3U/ImRpc2FibGVkIjoiIn0gJHtoPyJoYXMtZXZlbnQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT4hdSYmZS5zZWxlY3REYXRlKG8pfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICR7by5nZXREYXRlKCl9CiAgICAgICAgICAgICAgICAgICAgICAke2g/Q2AKICAgICAgICAgICAgICAgICAgICAgICAgJHtmPjM/Q2AKICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC1jb3VudCI+JHtmfTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICBgOkNgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXZlbnQtaW5kaWNhdG9yIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7ZC5zbGljZSgwLDMpLm1hcCh4PT5DYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJldmVudC1kb3QgJHt4LnR5cGV8fCJpbmZvIn0iPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7ZFswXS50aXRsZT9DYAogICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImV2ZW50LXRvb2x0aXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtkWzBdLnRpdGxlfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtmPjE/Q2AgKCske2YtMX0gbW9yZSlgOiIifQogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8IS0tIFRpbWUgU2VsZWN0b3IgLS0+CiAgICAgICAgICAgICAgJHtlLmVuYWJsZVRpbWU/Q2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtc2VsZWN0b3IiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lLXNlbGVjdG9yLXRpdGxlIj5UaW1lPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWUtaW5wdXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgCiAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiIAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRpbWUtaW5wdXQiIAogICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7ZS50aW1lRm9ybWF0PT09IjEyaCI/KGUuc2VsZWN0ZWRIb3VyPT09MD8xMjplLnNlbGVjdGVkSG91cj4xMj9lLnNlbGVjdGVkSG91ci0xMjplLnNlbGVjdGVkSG91cikudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIik6ZS5zZWxlY3RlZEhvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9CiAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHtvPT5lLmhhbmRsZUhvdXJJbnB1dChvKX0KICAgICAgICAgICAgICAgICAgICAgIG1pbj0iJHtlLnRpbWVGb3JtYXQ9PT0iMTJoIj8xOjB9IgogICAgICAgICAgICAgICAgICAgICAgbWF4PSIke2UudGltZUZvcm1hdD09PSIxMmgiPzEyOjIzfSIKICAgICAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLXNlcGFyYXRvciI+Ojwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgCiAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiIAogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRpbWUtaW5wdXQiIAogICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7ZS5zZWxlY3RlZE1pbnV0ZS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke289PmUuaGFuZGxlTWludXRlSW5wdXQobyl9CiAgICAgICAgICAgICAgICAgICAgICBtaW49IjAiCiAgICAgICAgICAgICAgICAgICAgICBtYXg9IjU5IgogICAgICAgICAgICAgICAgICAgICAgc3RlcD0iJHtlLm1pbnV0ZUluY3JlbWVudHx8MX0iCiAgICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgICAgICAke2UudGltZUZvcm1hdD09PSIxMmgiP0NgCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbS1wbS1zZWxlY3RvciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImFtLXBtLWJ1dHRvbiAke2E/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PmUuc2V0QU1QTSgiYW0iKX0KICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgIEFNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIAogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJhbS1wbS1idXR0b24gJHthPyIiOiJzZWxlY3RlZCJ9IgogICAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT5lLnNldEFNUE0oInBtIil9CiAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICBQTQogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgICAgPCEtLSBUaW1lem9uZSBTZWxlY3RvciAtLT4KICAgICAgICAgICAgICAke2UuZW5hYmxlVGltZXpvbmU/Q2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWV6b25lLXNlbGVjdG9yIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZXpvbmUtc2VsZWN0b3ItdGl0bGUiPlRpbWV6b25lPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRpbWV6b25lLXNlbGVjdCIgCiAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7ZS50aW1lem9uZX0KICAgICAgICAgICAgICAgICAgICBAY2hhbmdlPSR7bz0+ZS5oYW5kbGVUaW1lem9uZUNoYW5nZShvKX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7bi5tYXAobz0+Q2AKICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiR7by52YWx1ZX0iID9zZWxlY3RlZD0ke28udmFsdWU9PT1lLnRpbWV6b25lfT4KICAgICAgICAgICAgICAgICAgICAgICAgJHtvLmxhYmVsfQogICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgICAgPCEtLSBBY3Rpb24gQnV0dG9ucyAtLT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYWxlbmRhci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImFjdGlvbi1idXR0b24gdG9kYXktYnV0dG9uIiBAY2xpY2s9JHtlLnNlbGVjdFRvZGF5fT4KICAgICAgICAgICAgICAgICAgVG9kYXkKICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBjbGVhci1idXR0b24iIEBjbGljaz0ke2UuY2xlYXJ9PgogICAgICAgICAgICAgICAgICBDbGVhcgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9fSk7dmFyIG9pLFZ0LEFOLHA2ZT1wKCgpPT57eGUoKTtNMSgpO3pzcigpO1RzcigpO0xzcigpO29yKCk7ZWgoKTtvaT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFZ0PWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxBTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtZGF0ZXBpY2tlciIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdLHEsQj1bXSxHPVtdLGVlLFA9W10sZ2U9W10sd2UsST1bXSxuZT1bXSxrZSxZPVtdLEE9W10sTCxVPVtdLFY9W10sWCxkZT1bXSx2ZT1bXSxMZSxXPVtdLEg9W10sdGUsYmU9W10sdWU9W10sQ2UsaGU9W10saWU9W10sU2UsSWU9W10sWmU9W107dmFyIEs9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBaPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6Qm9vbGVhbn0pXSxkPVtqKHt0eXBlOlN0cmluZ30pXSx4PVtqKHt0eXBlOk51bWJlcn0pXSx5PVtqKHt0eXBlOlN0cmluZ30pXSxPPVtqKHt0eXBlOlN0cmluZ30pXSxGPVtqKHt0eXBlOlN0cmluZ30pXSxSPVtqKHt0eXBlOkFycmF5fSldLCQ9W2ooe3R5cGU6TnVtYmVyfSldLHE9W2ooe3R5cGU6U3RyaW5nfSldLGVlPVtqKHt0eXBlOkJvb2xlYW59KV0sd2U9W2ooe3R5cGU6U3RyaW5nfSldLGtlPVtqKHt0eXBlOkFycmF5fSldLEw9W2ZlKCldLFg9W2ZlKCldLExlPVtmZSgpXSx0ZT1bZmUoKV0sQ2U9W2ZlKCldLFNlPVtmZSgpXSxvaSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4idmFsdWUiaW4gSixnZXQ6Sj0+Si52YWx1ZSxzZXQ6KEosbWUpPT57Si52YWx1ZT1tZX19LG1ldGFkYXRhOlp9LG8scyksb2kodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4iZW5hYmxlVGltZSJpbiBKLGdldDpKPT5KLmVuYWJsZVRpbWUsc2V0OihKLG1lKT0+e0ouZW5hYmxlVGltZT1tZX19LG1ldGFkYXRhOlp9LGMsdSksb2kodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lRm9ybWF0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4idGltZUZvcm1hdCJpbiBKLGdldDpKPT5KLnRpbWVGb3JtYXQsc2V0OihKLG1lKT0+e0oudGltZUZvcm1hdD1tZX19LG1ldGFkYXRhOlp9LGgsZiksb2kodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW51dGVJbmNyZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJtaW51dGVJbmNyZW1lbnQiaW4gSixnZXQ6Sj0+Si5taW51dGVJbmNyZW1lbnQsc2V0OihKLG1lKT0+e0oubWludXRlSW5jcmVtZW50PW1lfX0sbWV0YWRhdGE6Wn0sdixiKSxvaSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRhdGVGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJkYXRlRm9ybWF0ImluIEosZ2V0Oko9PkouZGF0ZUZvcm1hdCxzZXQ6KEosbWUpPT57Si5kYXRlRm9ybWF0PW1lfX0sbWV0YWRhdGE6Wn0sdyxrKSxvaSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkRhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJtaW5EYXRlImluIEosZ2V0Oko9PkoubWluRGF0ZSxzZXQ6KEosbWUpPT57Si5taW5EYXRlPW1lfX0sbWV0YWRhdGE6Wn0seixNKSxvaSh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJtYXhEYXRlImluIEosZ2V0Oko9PkoubWF4RGF0ZSxzZXQ6KEosbWUpPT57Si5tYXhEYXRlPW1lfX0sbWV0YWRhdGE6Wn0sRCxOKSxvaSh0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc2FibGVkRGF0ZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJkaXNhYmxlZERhdGVzImluIEosZ2V0Oko9PkouZGlzYWJsZWREYXRlcyxzZXQ6KEosbWUpPT57Si5kaXNhYmxlZERhdGVzPW1lfX0sbWV0YWRhdGE6Wn0sXyxTKSxvaSh0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndlZWtTdGFydHNPbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+IndlZWtTdGFydHNPbiJpbiBKLGdldDpKPT5KLndlZWtTdGFydHNPbixzZXQ6KEosbWUpPT57Si53ZWVrU3RhcnRzT249bWV9fSxtZXRhZGF0YTpafSxULEUpLG9pKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJwbGFjZWhvbGRlciJpbiBKLGdldDpKPT5KLnBsYWNlaG9sZGVyLHNldDooSixtZSk9PntKLnBsYWNlaG9sZGVyPW1lfX0sbWV0YWRhdGE6Wn0sQixHKSxvaSh0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbmFibGVUaW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+ImVuYWJsZVRpbWV6b25lImluIEosZ2V0Oko9PkouZW5hYmxlVGltZXpvbmUsc2V0OihKLG1lKT0+e0ouZW5hYmxlVGltZXpvbmU9bWV9fSxtZXRhZGF0YTpafSxQLGdlKSxvaSh0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lem9uZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+InRpbWV6b25lImluIEosZ2V0Oko9PkoudGltZXpvbmUsc2V0OihKLG1lKT0+e0oudGltZXpvbmU9bWV9fSxtZXRhZGF0YTpafSxJLG5lKSxvaSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJldmVudHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJldmVudHMiaW4gSixnZXQ6Sj0+Si5ldmVudHMsc2V0OihKLG1lKT0+e0ouZXZlbnRzPW1lfX0sbWV0YWRhdGE6Wn0sWSxBKSxvaSh0aGlzLG51bGwsTCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzT3BlbmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4iaXNPcGVuZWQiaW4gSixnZXQ6Sj0+Si5pc09wZW5lZCxzZXQ6KEosbWUpPT57Si5pc09wZW5lZD1tZX19LG1ldGFkYXRhOlp9LFUsViksb2kodGhpcyxudWxsLFgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcGVuc1RvVG9wIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4ib3BlbnNUb1RvcCJpbiBKLGdldDpKPT5KLm9wZW5zVG9Ub3Asc2V0OihKLG1lKT0+e0oub3BlbnNUb1RvcD1tZX19LG1ldGFkYXRhOlp9LGRlLHZlKSxvaSh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOko9PiJzZWxlY3RlZERhdGUiaW4gSixnZXQ6Sj0+Si5zZWxlY3RlZERhdGUsc2V0OihKLG1lKT0+e0ouc2VsZWN0ZWREYXRlPW1lfX0sbWV0YWRhdGE6Wn0sVyxIKSxvaSh0aGlzLG51bGwsdGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aWV3RGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+InZpZXdEYXRlImluIEosZ2V0Oko9Pkoudmlld0RhdGUsc2V0OihKLG1lKT0+e0oudmlld0RhdGU9bWV9fSxtZXRhZGF0YTpafSxiZSx1ZSksb2kodGhpcyxudWxsLENlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRIb3VyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpKPT4ic2VsZWN0ZWRIb3VyImluIEosZ2V0Oko9Pkouc2VsZWN0ZWRIb3VyLHNldDooSixtZSk9PntKLnNlbGVjdGVkSG91cj1tZX19LG1ldGFkYXRhOlp9LGhlLGllKSxvaSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE1pbnV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Sj0+InNlbGVjdGVkTWludXRlImluIEosZ2V0Oko9Pkouc2VsZWN0ZWRNaW51dGUsc2V0OihKLG1lKT0+e0ouc2VsZWN0ZWRNaW51dGU9bWV9fSxtZXRhZGF0YTpafSxJZSxaZSksb2kobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Wn0sbnVsbCxyKSxLPWk9dC52YWx1ZSxaJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlp9KX1zdGF0aWMgZGVtbz1Tc3I7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVZ0KHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFope3RoaXMuI2U9Wn0jdD0oVnQodGhpcyxzKSxWdCh0aGlzLGMsITEpKTtnZXQgZW5hYmxlVGltZSgpe3JldHVybiB0aGlzLiN0fXNldCBlbmFibGVUaW1lKFope3RoaXMuI3Q9Wn0jcj0oVnQodGhpcyx1KSxWdCh0aGlzLGgsIjI0aCIpKTtnZXQgdGltZUZvcm1hdCgpe3JldHVybiB0aGlzLiNyfXNldCB0aW1lRm9ybWF0KFope3RoaXMuI3I9Wn0jaT0oVnQodGhpcyxmKSxWdCh0aGlzLHYsMSkpO2dldCBtaW51dGVJbmNyZW1lbnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWludXRlSW5jcmVtZW50KFope3RoaXMuI2k9Wn0jYT0oVnQodGhpcyxiKSxWdCh0aGlzLHcsIllZWVktTU0tREQiKSk7Z2V0IGRhdGVGb3JtYXQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZGF0ZUZvcm1hdChaKXt0aGlzLiNhPVp9I249KFZ0KHRoaXMsayksVnQodGhpcyx6LCIiKSk7Z2V0IG1pbkRhdGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbWluRGF0ZShaKXt0aGlzLiNuPVp9I289KFZ0KHRoaXMsTSksVnQodGhpcyxELCIiKSk7Z2V0IG1heERhdGUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4RGF0ZShaKXt0aGlzLiNvPVp9I3M9KFZ0KHRoaXMsTiksVnQodGhpcyxfLFtdKSk7Z2V0IGRpc2FibGVkRGF0ZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgZGlzYWJsZWREYXRlcyhaKXt0aGlzLiNzPVp9I2w9KFZ0KHRoaXMsUyksVnQodGhpcyxULDEpKTtnZXQgd2Vla1N0YXJ0c09uKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHdlZWtTdGFydHNPbihaKXt0aGlzLiNsPVp9I2M9KFZ0KHRoaXMsRSksVnQodGhpcyxCLCJZWVlZLU1NLUREIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNjfXNldCBwbGFjZWhvbGRlcihaKXt0aGlzLiNjPVp9I2Q9KFZ0KHRoaXMsRyksVnQodGhpcyxQLCExKSk7Z2V0IGVuYWJsZVRpbWV6b25lKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGVuYWJsZVRpbWV6b25lKFope3RoaXMuI2Q9Wn0jdT0oVnQodGhpcyxnZSksVnQodGhpcyxJLEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZSkpO2dldCB0aW1lem9uZSgpe3JldHVybiB0aGlzLiN1fXNldCB0aW1lem9uZShaKXt0aGlzLiN1PVp9I3A9KFZ0KHRoaXMsbmUpLFZ0KHRoaXMsWSxbXSkpO2dldCBldmVudHMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZXZlbnRzKFope3RoaXMuI3A9Wn0jaD0oVnQodGhpcyxBKSxWdCh0aGlzLFUsITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jaH1zZXQgaXNPcGVuZWQoWil7dGhpcy4jaD1afSNmPShWdCh0aGlzLFYpLFZ0KHRoaXMsZGUsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNmfXNldCBvcGVuc1RvVG9wKFope3RoaXMuI2Y9Wn0jbT0oVnQodGhpcyx2ZSksVnQodGhpcyxXLG51bGwpKTtnZXQgc2VsZWN0ZWREYXRlKCl7cmV0dXJuIHRoaXMuI219c2V0IHNlbGVjdGVkRGF0ZShaKXt0aGlzLiNtPVp9I2c9KFZ0KHRoaXMsSCksVnQodGhpcyxiZSxuZXcgRGF0ZSkpO2dldCB2aWV3RGF0ZSgpe3JldHVybiB0aGlzLiNnfXNldCB2aWV3RGF0ZShaKXt0aGlzLiNnPVp9I2I9KFZ0KHRoaXMsdWUpLFZ0KHRoaXMsaGUsMCkpO2dldCBzZWxlY3RlZEhvdXIoKXtyZXR1cm4gdGhpcy4jYn1zZXQgc2VsZWN0ZWRIb3VyKFope3RoaXMuI2I9Wn0jdj0oVnQodGhpcyxpZSksVnQodGhpcyxJZSwwKSk7Z2V0IHNlbGVjdGVkTWludXRlKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHNlbGVjdGVkTWludXRlKFope3RoaXMuI3Y9Wn1zdGF0aWMgc3R5bGVzPUNzcjtnZXRUaW1lem9uZXMoKXtyZXR1cm5be3ZhbHVlOiJVVEMiLGxhYmVsOiJVVEMgKENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lKSJ9LHt2YWx1ZToiQW1lcmljYS9OZXdfWW9yayIsbGFiZWw6IkVhc3Rlcm4gVGltZSAoVVMgJiBDYW5hZGEpIn0se3ZhbHVlOiJBbWVyaWNhL0NoaWNhZ28iLGxhYmVsOiJDZW50cmFsIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9EZW52ZXIiLGxhYmVsOiJNb3VudGFpbiBUaW1lIChVUyAmIENhbmFkYSkifSx7dmFsdWU6IkFtZXJpY2EvTG9zX0FuZ2VsZXMiLGxhYmVsOiJQYWNpZmljIFRpbWUgKFVTICYgQ2FuYWRhKSJ9LHt2YWx1ZToiQW1lcmljYS9QaG9lbml4IixsYWJlbDoiQXJpem9uYSJ9LHt2YWx1ZToiQW1lcmljYS9BbmNob3JhZ2UiLGxhYmVsOiJBbGFza2EifSx7dmFsdWU6IlBhY2lmaWMvSG9ub2x1bHUiLGxhYmVsOiJIYXdhaWkifSx7dmFsdWU6IkV1cm9wZS9Mb25kb24iLGxhYmVsOiJMb25kb24ifSx7dmFsdWU6IkV1cm9wZS9QYXJpcyIsbGFiZWw6IlBhcmlzIn0se3ZhbHVlOiJFdXJvcGUvQmVybGluIixsYWJlbDoiQmVybGluIn0se3ZhbHVlOiJFdXJvcGUvTW9zY293IixsYWJlbDoiTW9zY293In0se3ZhbHVlOiJBc2lhL0R1YmFpIixsYWJlbDoiRHViYWkifSx7dmFsdWU6IkFzaWEvS29sa2F0YSIsbGFiZWw6IkluZGlhIFN0YW5kYXJkIFRpbWUifSx7dmFsdWU6IkFzaWEvU2hhbmdoYWkiLGxhYmVsOiJDaGluYSBTdGFuZGFyZCBUaW1lIn0se3ZhbHVlOiJBc2lhL1Rva3lvIixsYWJlbDoiVG9reW8ifSx7dmFsdWU6IkF1c3RyYWxpYS9TeWRuZXkiLGxhYmVsOiJTeWRuZXkifSx7dmFsdWU6IlBhY2lmaWMvQXVja2xhbmQiLGxhYmVsOiJBdWNrbGFuZCJ9XX1yZW5kZXIoKXtyZXR1cm4gX3NyKHRoaXMpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZT10aGlzLmhhbmRsZUNsaWNrT3V0c2lkZS5iaW5kKHRoaXMpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWV8fCh0aGlzLnZhbHVlPSIiKSx0aGlzLnZhbHVlKXRyeXtsZXQgWj1uZXcgRGF0ZSh0aGlzLnZhbHVlKTtpc05hTihaLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1aLHRoaXMudmlld0RhdGU9bmV3IERhdGUoWiksdGhpcy5zZWxlY3RlZEhvdXI9Wi5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9Wi5nZXRNaW51dGVzKCkpfWNhdGNoe31lbHNle2xldCBaPW5ldyBEYXRlO3RoaXMudmlld0RhdGU9bmV3IERhdGUoWiksdGhpcy5zZWxlY3RlZEhvdXI9Wi5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9MH19Zm9ybWF0RGF0ZShaKXtpZighWilyZXR1cm4iIjt0cnl7bGV0IEo9bmV3IERhdGUoWik7aWYoaXNOYU4oSi5nZXRUaW1lKCkpKXJldHVybiIiO2xldCBtZT10aGlzLmRhdGVGb3JtYXQsRWU9Si5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksVWU9KEouZ2V0TW9udGgoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxNdD1KLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtpZihtZT1tZS5yZXBsYWNlKCJZWVlZIixNdCksbWU9bWUucmVwbGFjZSgiWVkiLE10LnNsaWNlKC0yKSksbWU9bWUucmVwbGFjZSgiTU0iLFVlKSxtZT1tZS5yZXBsYWNlKCJERCIsRWUpLHRoaXMuZW5hYmxlVGltZSl7bGV0IGl0PUouZ2V0SG91cnMoKSxMdD1pdD09PTA/MTI6aXQ+MTI/aXQtMTI6aXQsV3Q9Si5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksYWU9aXQ+PTEyPyJQTSI6IkFNIjt0aGlzLnRpbWVGb3JtYXQ9PT0iMTJoIj9tZSs9YCAke0x0fToke1d0fSAke2FlfWA6bWUrPWAgJHtpdC50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHtXdH1gfWlmKHRoaXMuZW5hYmxlVGltZXpvbmUpe2xldCBXdD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tVVMiLHt0aW1lWm9uZU5hbWU6InNob3J0Iix0aW1lWm9uZTp0aGlzLnRpbWV6b25lfSkuZm9ybWF0VG9QYXJ0cyhKKS5maW5kKGFlPT5hZS50eXBlPT09InRpbWVab25lTmFtZSIpO1d0JiYobWUrPWAgJHtXdC52YWx1ZX1gKX1yZXR1cm4gbWV9Y2F0Y2h7cmV0dXJuIiJ9fWhhbmRsZUNsaWNrT3V0c2lkZT0oVnQodGhpcyxaZSksWj0+e1ouY29tcG9zZWRQYXRoKCkuaW5jbHVkZXModGhpcyl8fCh0aGlzLmlzT3BlbmVkPSExLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSkpfSk7YXN5bmMgdG9nZ2xlQ2FsZW5kYXIoKXtpZighdGhpcy5kaXNhYmxlZClpZih0aGlzLmlzT3BlbmVkPSF0aGlzLmlzT3BlbmVkLHRoaXMuaXNPcGVuZWQpe2xldCBKPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29udGFpbmVyIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWU9d2luZG93LmlubmVySGVpZ2h0LUouYm90dG9tLEVlPUoudG9wO3RoaXMub3BlbnNUb1RvcD1tZTw0MDAmJkVlPm1lLHNldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpfSwwKX1lbHNlIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9Z2V0RGF5c0luTW9udGgoKXtsZXQgWj10aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCksSj10aGlzLnZpZXdEYXRlLmdldE1vbnRoKCksbWU9bmV3IERhdGUoWixKLDEpLEVlPW5ldyBEYXRlKFosSisxLDApLFVlPVtdLE10PXRoaXMud2Vla1N0YXJ0c09uPT09MT9tZS5nZXREYXkoKT09PTA/NjptZS5nZXREYXkoKS0xOm1lLmdldERheSgpO2ZvcihsZXQgTHQ9TXQ7THQ+MDtMdC0tKVVlLnB1c2gobmV3IERhdGUoWixKLDEtTHQpKTtmb3IobGV0IEx0PTE7THQ8PUVlLmdldERhdGUoKTtMdCsrKVVlLnB1c2gobmV3IERhdGUoWixKLEx0KSk7bGV0IGl0PTQyLVVlLmxlbmd0aDtmb3IobGV0IEx0PTE7THQ8PWl0O0x0KyspVWUucHVzaChuZXcgRGF0ZShaLEorMSxMdCkpO3JldHVybiBVZX1pc1RvZGF5KFope2xldCBKPW5ldyBEYXRlO3JldHVybiBaLmdldERhdGUoKT09PUouZ2V0RGF0ZSgpJiZaLmdldE1vbnRoKCk9PT1KLmdldE1vbnRoKCkmJlouZ2V0RnVsbFllYXIoKT09PUouZ2V0RnVsbFllYXIoKX1pc1NlbGVjdGVkKFope3JldHVybiB0aGlzLnNlbGVjdGVkRGF0ZT9aLmdldERhdGUoKT09PXRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSYmWi5nZXRNb250aCgpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSYmWi5nZXRGdWxsWWVhcigpPT09dGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKTohMX1pc0Rpc2FibGVkKFope2lmKHRoaXMubWluRGF0ZSl7bGV0IEo9bmV3IERhdGUodGhpcy5taW5EYXRlKTtpZihaPEopcmV0dXJuITB9aWYodGhpcy5tYXhEYXRlKXtsZXQgSj1uZXcgRGF0ZSh0aGlzLm1heERhdGUpO2lmKFo+SilyZXR1cm4hMH1yZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzJiZ0aGlzLmRpc2FibGVkRGF0ZXMubGVuZ3RoPjA/dGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoSj0+e3RyeXtsZXQgbWU9bmV3IERhdGUoSik7cmV0dXJuIFouZ2V0RGF0ZSgpPT09bWUuZ2V0RGF0ZSgpJiZaLmdldE1vbnRoKCk9PT1tZS5nZXRNb250aCgpJiZaLmdldEZ1bGxZZWFyKCk9PT1tZS5nZXRGdWxsWWVhcigpfWNhdGNoe3JldHVybiExfX0pOiExfWdldEV2ZW50c0ZvckRhdGUoWil7aWYoIXRoaXMuZXZlbnRzfHx0aGlzLmV2ZW50cy5sZW5ndGg9PT0wKXJldHVybltdO2xldCBKPWAke1ouZ2V0RnVsbFllYXIoKX0tJHsoWi5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke1ouZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWA7cmV0dXJuIHRoaXMuZXZlbnRzLmZpbHRlcihtZT0+bWUuZGF0ZT09PUopfXNlbGVjdERhdGUoWil7dGhpcy5zZWxlY3RlZERhdGU9bmV3IERhdGUoWi5nZXRGdWxsWWVhcigpLFouZ2V0TW9udGgoKSxaLmdldERhdGUoKSx0aGlzLnNlbGVjdGVkSG91cix0aGlzLnNlbGVjdGVkTWludXRlKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUodGhpcy5zZWxlY3RlZERhdGUpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuZW5hYmxlVGltZXx8KHRoaXMuaXNPcGVuZWQ9ITEpfXNlbGVjdFRvZGF5KCl7bGV0IFo9bmV3IERhdGU7dGhpcy5zZWxlY3RlZERhdGU9Wix0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKFopLHRoaXMuc2VsZWN0ZWRIb3VyPVouZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPVouZ2V0TWludXRlcygpLHRoaXMudmFsdWU9dGhpcy5mb3JtYXRWYWx1ZVdpdGhUaW1lem9uZSh0aGlzLnNlbGVjdGVkRGF0ZSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5lbmFibGVUaW1lfHwodGhpcy5pc09wZW5lZD0hMSl9Y2xlYXIoKXt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGwsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksdGhpcy5pc09wZW5lZD0hMX1wcmV2aW91c01vbnRoKCl7dGhpcy52aWV3RGF0ZT1uZXcgRGF0ZSh0aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCksdGhpcy52aWV3RGF0ZS5nZXRNb250aCgpLTEsMSl9bmV4dE1vbnRoKCl7dGhpcy52aWV3RGF0ZT1uZXcgRGF0ZSh0aGlzLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCksdGhpcy52aWV3RGF0ZS5nZXRNb250aCgpKzEsMSl9aGFuZGxlSG91cklucHV0KFope2xldCBKPVoudGFyZ2V0LG1lPXBhcnNlSW50KEoudmFsdWUpfHwwO3RoaXMudGltZUZvcm1hdD09PSIxMmgiPyhtZT1NYXRoLm1heCgxLE1hdGgubWluKDEyLG1lKSksdGhpcy5zZWxlY3RlZEhvdXI+PTEyJiZtZSE9PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPW1lKzEyOnRoaXMuc2VsZWN0ZWRIb3VyPDEyJiZtZT09PTEyP3RoaXMuc2VsZWN0ZWRIb3VyPTA6dGhpcy5zZWxlY3RlZEhvdXI9bWUpOnRoaXMuc2VsZWN0ZWRIb3VyPU1hdGgubWF4KDAsTWF0aC5taW4oMjMsbWUpKSx0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKX1oYW5kbGVNaW51dGVJbnB1dChaKXtsZXQgSj1aLnRhcmdldCxtZT1wYXJzZUludChKLnZhbHVlKXx8MDttZT1NYXRoLm1heCgwLE1hdGgubWluKDU5LG1lKSksdGhpcy5taW51dGVJbmNyZW1lbnQmJnRoaXMubWludXRlSW5jcmVtZW50PjEmJihtZT1NYXRoLnJvdW5kKG1lL3RoaXMubWludXRlSW5jcmVtZW50KSp0aGlzLm1pbnV0ZUluY3JlbWVudCksdGhpcy5zZWxlY3RlZE1pbnV0ZT1tZSx0aGlzLnVwZGF0ZVNlbGVjdGVkRGF0ZVRpbWUoKX1zZXRBTVBNKFope1o9PT0iYW0iJiZ0aGlzLnNlbGVjdGVkSG91cj49MTI/dGhpcy5zZWxlY3RlZEhvdXItPTEyOlo9PT0icG0iJiZ0aGlzLnNlbGVjdGVkSG91cjwxMiYmKHRoaXMuc2VsZWN0ZWRIb3VyKz0xMiksdGhpcy51cGRhdGVTZWxlY3RlZERhdGVUaW1lKCl9dXBkYXRlU2VsZWN0ZWREYXRlVGltZSgpe3RoaXMuc2VsZWN0ZWREYXRlJiYodGhpcy5zZWxlY3RlZERhdGU9bmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpLHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSx0aGlzLnNlbGVjdGVkSG91cix0aGlzLnNlbGVjdGVkTWludXRlKSx0aGlzLnZhbHVlPXRoaXMuZm9ybWF0VmFsdWVXaXRoVGltZXpvbmUodGhpcy5zZWxlY3RlZERhdGUpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1oYW5kbGVUaW1lem9uZUNoYW5nZShaKXtsZXQgSj1aLnRhcmdldDt0aGlzLnRpbWV6b25lPUoudmFsdWUsdGhpcy51cGRhdGVTZWxlY3RlZERhdGVUaW1lKCl9Zm9ybWF0VmFsdWVXaXRoVGltZXpvbmUoWil7aWYoIXRoaXMuZW5hYmxlVGltZXpvbmUpcmV0dXJuIFoudG9JU09TdHJpbmcoKTtsZXQgbWU9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuLVVTIix7eWVhcjoibnVtZXJpYyIsbW9udGg6IjItZGlnaXQiLGRheToiMi1kaWdpdCIsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0IixzZWNvbmQ6IjItZGlnaXQiLGhvdXIxMjohMSx0aW1lWm9uZTp0aGlzLnRpbWV6b25lLHRpbWVab25lTmFtZToic2hvcnQifSkuZm9ybWF0VG9QYXJ0cyhaKSxFZT17fTttZS5mb3JFYWNoKGl0PT57RWVbaXQudHlwZV09aXQudmFsdWV9KTtsZXQgVWU9YCR7RWUueWVhcn0tJHtFZS5tb250aH0tJHtFZS5kYXl9VCR7RWUuaG91cn06JHtFZS5taW51dGV9OiR7RWUuc2Vjb25kfWAsTXQ9dGhpcy5nZXRUaW1lem9uZU9mZnNldChaLHRoaXMudGltZXpvbmUpO3JldHVybmAke1VlfSR7TXR9YH1nZXRUaW1lem9uZU9mZnNldChaLEope2xldCBtZT1uZXcgRGF0ZShaLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIse3RpbWVab25lOkp9KSksRWU9bmV3IERhdGUoWi50b0xvY2FsZVN0cmluZygiZW4tVVMiLHt0aW1lWm9uZToiVVRDIn0pKSxVZT0obWUuZ2V0VGltZSgpLUVlLmdldFRpbWUoKSkvKDFlMyo2MCksTXQ9TWF0aC5mbG9vcihNYXRoLmFicyhVZSkvNjApLGl0PU1hdGguYWJzKFVlKSU2MDtyZXR1cm5gJHtVZT49MD8iKyI6Ii0ifSR7TXQudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7aXQudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1oYW5kbGVLZXlkb3duKFope1oua2V5PT09IkVudGVyInx8Wi5rZXk9PT0iICI/KFoucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZUNhbGVuZGFyKCkpOloua2V5PT09IkVzY2FwZSImJnRoaXMuaXNPcGVuZWQmJihaLnByZXZlbnREZWZhdWx0KCksdGhpcy5pc09wZW5lZD0hMSl9Y2xlYXJWYWx1ZShaKXtaLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMudmFsdWU9IiIsdGhpcy5zZWxlY3RlZERhdGU9bnVsbCx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1oYW5kbGVNYW51YWxJbnB1dChaKXtsZXQgbWU9Wi50YXJnZXQudmFsdWUudHJpbSgpO2lmKCFtZSl7dGhpcy52YWx1ZT0iIix0aGlzLnNlbGVjdGVkRGF0ZT1udWxsO3JldHVybn1sZXQgRWU9dGhpcy5wYXJzZU1hbnVhbERhdGUobWUpO0VlJiYhaXNOYU4oRWUuZ2V0VGltZSgpKSYmKHRoaXMudmFsdWU9RWUudG9JU09TdHJpbmcoKSx0aGlzLnNlbGVjdGVkRGF0ZT1FZSx0aGlzLnZpZXdEYXRlPW5ldyBEYXRlKEVlKSx0aGlzLnNlbGVjdGVkSG91cj1FZS5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9RWUuZ2V0TWludXRlcygpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1oYW5kbGVJbnB1dEJsdXIoWil7bGV0IEo9Wi50YXJnZXQsbWU9Si52YWx1ZS50cmltKCk7aWYoIW1lKXt0aGlzLnZhbHVlPSIiLHRoaXMuc2VsZWN0ZWREYXRlPW51bGwsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyk7cmV0dXJufWxldCBFZT10aGlzLnBhcnNlTWFudWFsRGF0ZShtZSk7RWUmJiFpc05hTihFZS5nZXRUaW1lKCkpPyh0aGlzLnZhbHVlPUVlLnRvSVNPU3RyaW5nKCksdGhpcy5zZWxlY3RlZERhdGU9RWUsdGhpcy52aWV3RGF0ZT1uZXcgRGF0ZShFZSksdGhpcy5zZWxlY3RlZEhvdXI9RWUuZ2V0SG91cnMoKSx0aGlzLnNlbGVjdGVkTWludXRlPUVlLmdldE1pbnV0ZXMoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSxKLnZhbHVlPXRoaXMuZm9ybWF0RGF0ZSh0aGlzLnZhbHVlKSk6Si52YWx1ZT10aGlzLmZvcm1hdERhdGUodGhpcy52YWx1ZSl9cGFyc2VNYW51YWxEYXRlKFope2lmKCFaKXJldHVybiBudWxsO2xldCBKPVouc3BsaXQoIiAiKSxtZT1KWzBdLEVlPUpbMV18fCIiLFVlPW51bGwsTXQ9bWUubWF0Y2goL14oXGR7NH0pLShcZHsxLDJ9KS0oXGR7MSwyfSkkLyk7aWYoTXQpe2xldFtpdCxMdCxXdCxhZV09TXQ7VWU9bmV3IERhdGUocGFyc2VJbnQoTHQpLHBhcnNlSW50KFd0KS0xLHBhcnNlSW50KGFlKSl9aWYoIVVlKXtsZXQgaXQ9bWUubWF0Y2goL14oXGR7MSwyfSlcLihcZHsxLDJ9KVwuKFxkezR9KSQvKTtpZihpdCl7bGV0W0x0LFd0LGFlLHNlXT1pdDtVZT1uZXcgRGF0ZShwYXJzZUludChzZSkscGFyc2VJbnQoYWUpLTEscGFyc2VJbnQoV3QpKX19aWYoIVVlKXtsZXQgaXQ9bWUubWF0Y2goL14oXGR7MSwyfSlcLyhcZHsxLDJ9KVwvKFxkezR9KSQvKTtpZihpdCl7bGV0W0x0LFd0LGFlLHNlXT1pdDtVZT1uZXcgRGF0ZShwYXJzZUludChzZSkscGFyc2VJbnQoV3QpLTEscGFyc2VJbnQoYWUpKX19aWYoIVVlfHxpc05hTihVZS5nZXRUaW1lKCkpKXJldHVybiBudWxsO2lmKEVlKXtsZXQgaXQ9RWUubWF0Y2goL14oXGR7MSwyfSk6KFxkezJ9KSQvKTtpZihpdCl7bGV0W0x0LFd0LGFlXT1pdDtVZS5zZXRIb3VycyhwYXJzZUludChXdCkpLFVlLnNldE1pbnV0ZXMocGFyc2VJbnQoYWUpKX19ZWxzZSBpZighdGhpcy5lbmFibGVUaW1lKXtsZXQgaXQ9bmV3IERhdGU7VWUuc2V0SG91cnMoaXQuZ2V0SG91cnMoKSksVWUuc2V0TWludXRlcyhpdC5nZXRNaW51dGVzKCkpLFVlLnNldFNlY29uZHMoMCksVWUuc2V0TWlsbGlzZWNvbmRzKDApfXJldHVybiBVZX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKFope2lmKHRoaXMudmFsdWU9WixaKXRyeXtsZXQgSj1uZXcgRGF0ZShaKTtpc05hTihKLmdldFRpbWUoKSl8fCh0aGlzLnNlbGVjdGVkRGF0ZT1KLHRoaXMudmlld0RhdGU9bmV3IERhdGUoSiksdGhpcy5zZWxlY3RlZEhvdXI9Si5nZXRIb3VycygpLHRoaXMuc2VsZWN0ZWRNaW51dGU9Si5nZXRNaW51dGVzKCkpfWNhdGNoe319c3RhdGlje1Z0KGkscil9fTtyZXR1cm4gSz1pfSkoKX0pO3ZhciBoNmU9cCgoKT0+e3A2ZSgpfSk7dmFyIEFzcixEc3I9cCgoKT0+e3hlKCk7cDEoKTtPaSgpO0Fzcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAke29lYAogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbnB1dC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5ncmlkLWxheW91dCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC5pbnRlcmFjdGl2ZS1zZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgfQogICAgICAKICAgICAgLm91dHB1dC10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxMCA0MCUgODAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWluLWhlaWdodDogMjRweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goaT0+e2kuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsYT0+e2NvbnNvbGUubG9nKGBJbnB1dCAiJHtpLmxhYmVsfSIgY2hhbmdlZCB0bzpgLGkuZ2V0VmFsdWUoKSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coYElucHV0ICIke2kubGFiZWx9IiBsb3N0IGZvY3VzYCl9KX0pLGUucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0icGFzc3dvcmQiXScpJiZjb25zb2xlLmxvZygiUGFzc3dvcmQgaW5wdXQgaW5jbHVkZXMgdmlzaWJpbGl0eSB0b2dnbGUiKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVGV4dCBJbnB1dHMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgdGV4dCBpbnB1dHMgd2l0aCBsYWJlbHMgYW5kIGRlc2NyaXB0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlVzZXJuYW1lIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImpvaG5kb2UifQogICAgICAgICAgICAua2V5PSR7InVzZXJuYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBBZGRyZXNzIn0KICAgICAgICAgICAgLnZhbHVlPSR7ImpvaG5AZXhhbXBsZS5jb20ifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiV2Ugd2lsbCBuZXZlciBzaGFyZSB5b3VyIGVtYWlsIHdpdGggYW55b25lIn0KICAgICAgICAgICAgLmtleT0keyJlbWFpbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUGFzc3dvcmQifQogICAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7InNlY3JldDEyMyJ9CiAgICAgICAgICAgIC5rZXk9JHsicGFzc3dvcmQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goYT0+e2xldCBuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGEpO2NvbnNvbGUubG9nKGBIb3Jpem9udGFsIGlucHV0ICIke2EubGFiZWx9IiBkaXNwbGF5OmAsbi5kaXNwbGF5KX0pO2xldCByPWUucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0iZmlyc3ROYW1lIl0nKSxpPWUucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC10ZXh0W2tleT0ibGFzdE5hbWUiXScpO2lmKHImJmkpe2xldCBhPSgpPT57bGV0IG49ci5nZXRWYWx1ZSgpLG89aS5nZXRWYWx1ZSgpO2NvbnNvbGUubG9nKGBGdWxsIG5hbWU6ICR7bn0gJHtvfWApfTtyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLGEpLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsYSl9fX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBpbnB1dHMgYXJyYW5nZWQgaG9yaXpvbnRhbGx5IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiRmlyc3QgTmFtZSJ9IAogICAgICAgICAgICAudmFsdWU9JHsiSm9obiJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJmaXJzdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiTGFzdCBOYW1lIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyJEb2UifSAKICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5rZXk9JHsibGFzdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiQWdlIn0gCiAgICAgICAgICAgIC52YWx1ZT0keyIyOCJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJhZ2UifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtdGV4dCIpLmZvckVhY2goaT0+e2xldCBhPWkubGFiZWxQb3NpdGlvbjtjb25zb2xlLmxvZyhgSW5wdXQgIiR7aS5sYWJlbH0iIGhhcyBsYWJlbCBwb3NpdGlvbjogJHthfWApfSk7bGV0IHI9ZS5xdWVyeVNlbGVjdG9yQWxsKCdkZWVzLWlucHV0LXRleHRbbGFiZWxQb3NpdGlvbj0ibGVmdCJdJyk7ci5sZW5ndGg+MCYmY29uc29sZS5sb2coYCR7ci5sZW5ndGh9IGlucHV0cyBoYXZlIGxlZnQtYWxpZ25lZCBsYWJlbHMgZm9yIGlubGluZSBsYXlvdXRgKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiTGFiZWwgUG9zaXRpb25zIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBsYWJlbCBwb3NpdGlvbmluZyBvcHRpb25zIGZvciB2YXJpb3VzIGxheW91dHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJMYWJlbCBvbiBUb3AgKERlZmF1bHQpIn0KICAgICAgICAgICAgLnZhbHVlPSR7IlN0YW5kYXJkIGxheW91dCJ9CiAgICAgICAgICAgIC5sYWJlbFBvc2l0aW9uPSR7InRvcCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiTGFiZWwgb24gTGVmdCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJJbmxpbmUgbGFiZWwifQogICAgICAgICAgICAubGFiZWxQb3NpdGlvbj0keyJsZWZ0In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiQ2l0eSJ9IAogICAgICAgICAgICAudmFsdWU9JHsiTmV3IFlvcmsifSAKICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlpJUCBDb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7IjEwMDAxIn0KICAgICAgICAgICAgLmxhYmVsUG9zaXRpb249JHsibGVmdCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0W3JlcXVpcmVkXSIpLHI9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHRbZGlzYWJsZWRdIiksaT1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtdGV4dFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXScpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pnt0LmdldFZhbHVlKCl8fGNvbnNvbGUubG9nKCJSZXF1aXJlZCBmaWVsZCBpcyBlbXB0eSEiKX0pLHImJmNvbnNvbGUubG9nKCJEaXNhYmxlZCBpbnB1dCBjYW5ub3QgYmUgZWRpdGVkIiksaSYmKGNvbnNvbGUubG9nKCJFcnJvciBpbnB1dCBzaG93cyB2YWxpZGF0aW9uIG1lc3NhZ2U6IixpLnZhbGlkYXRpb25UZXh0KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLCgpPT57bGV0IGE9aS5nZXRWYWx1ZSgpO2EuaW5jbHVkZXMoIkAiKSYmYS5pbmNsdWRlcygiLiIpJiYoaS52YWxpZGF0aW9uU3RhdGU9InZhbGlkIixpLnZhbGlkYXRpb25UZXh0PSIiLGNvbnNvbGUubG9nKCJFbWFpbCB2YWxpZGF0aW9uIHBhc3NlZCEiKSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlZhbGlkYXRpb24gJiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHZhbGlkYXRpb24gc3RhdGVzIGFuZCBpbnB1dCBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIEZpZWxkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicmVxdWlyZWRGaWVsZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgRmllbGQifQogICAgICAgICAgICAudmFsdWU9JHsiQ2Fubm90IGVkaXQgdGhpcyJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IkZpZWxkIHdpdGggRXJyb3IifQogICAgICAgICAgICAudmFsdWU9JHsiaW52YWxpZEAifQogICAgICAgICAgICAudmFsaWRhdGlvblRleHQ9JHsiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyJ9CiAgICAgICAgICAgIC52YWxpZGF0aW9uU3RhdGU9JHsiaW52YWxpZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0W2lzUGFzc3dvcmRCb29sXSIpLmZvckVhY2gocj0+e2xldCBpPSgpPT57bGV0IGE9ci5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpO2EmJmNvbnNvbGUubG9nKGBQYXNzd29yZCBmaWVsZCAiJHtyLmxhYmVsfSIgdHlwZTpgLGEudHlwZSl9O2lmKHIuc2hhZG93Um9vdCl7bGV0IGE9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoaSksbj1yLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiaW5wdXQiKTtuJiZhLm9ic2VydmUobix7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJ0eXBlIl19KX19KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQWR2YW5jZWQgRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiUGFzc3dvcmQgdmlzaWJpbGl0eSB0b2dnbGUgYW5kIG90aGVyIGFkdmFuY2VkIGZlYXR1cmVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUGFzc3dvcmQgd2l0aCBUb2dnbGUifQogICAgICAgICAgICAuaXNQYXNzd29yZEJvb2w9JHshMH0KICAgICAgICAgICAgLnZhbHVlPSR7Im15U2VjdXJlUGFzc3dvcmQxMjMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2xpY2sgdGhlIGV5ZSBpY29uIHRvIHNob3cvaGlkZSBwYXNzd29yZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiQVBJIEtleSJ9CiAgICAgICAgICAgIC5pc1Bhc3N3b3JkQm9vbD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHsic2stMTIzNDU2Nzg5MGFiY2RlZiJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJLZWVwIHRoaXMga2V5IHNlY3VyZSBhbmQgbmV2ZXIgc2hhcmUgaXQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtdGV4dCIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjdGV4dC1pbnB1dC1vdXRwdXQiKTtpZih0JiZyKXt0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZVN1YmplY3QiLGE9PntsZXQgbj1hLmRldGFpbC5nZXRWYWx1ZSgpO3IudGV4dENvbnRlbnQ9YEN1cnJlbnQgdmFsdWU6ICIke259ImB9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2NvbnNvbGUubG9nKCJJbnB1dCBmb2N1c2VkIil9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57Y29uc29sZS5sb2coIklucHV0IGJsdXJyZWQiKX0pO2xldCBpPTA7dC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwoKT0+e2krKyxjb25zb2xlLmxvZyhgS2V5cHJlc3MgY291bnQ6ICR7aX1gKX0pfX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiSW50ZXJhY3RpdmUgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJUcnkgdHlwaW5nIGluIHRoZSBpbnB1dHMgdG8gc2VlIHJlYWwtdGltZSB2YWx1ZSBjaGFuZ2VzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJEeW5hbWljIElucHV0In0gCiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSBzb21ldGhpbmcgaGVyZS4uLiJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImludGVyYWN0aXZlLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBpZD0idGV4dC1pbnB1dC1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCI+Q3VycmVudCB2YWx1ZTogIiI8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogIDwvZGl2PgpgfSk7dmFyIEZkLFpuLEROLE40PXAoKCk9PntQbygpO00xKCk7RHNyKCk7UWEoKTt4ZSgpO0plKCk7RmQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxabj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sRE49KCgpPT57bGV0IGU9W3llKCJkZWVzLWlucHV0LXRleHQiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxsPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxkPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx4PVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx5PVtqKHtyZWZsZWN0OiEwfSldLE89W2ooe30pXSxGZCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4idmFsdWUiaW4gTixnZXQ6Tj0+Ti52YWx1ZSxzZXQ6KE4sUik9PntOLnZhbHVlPVJ9fSxtZXRhZGF0YTpEfSxvLHMpLEZkKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQYXNzd29yZEJvb2wiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJpc1Bhc3N3b3JkQm9vbCJpbiBOLGdldDpOPT5OLmlzUGFzc3dvcmRCb29sLHNldDooTixSKT0+e04uaXNQYXNzd29yZEJvb2w9Un19LG1ldGFkYXRhOkR9LGMsdSksRmQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93UGFzc3dvcmRCb29sIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4ic2hvd1Bhc3N3b3JkQm9vbCJpbiBOLGdldDpOPT5OLnNob3dQYXNzd29yZEJvb2wsc2V0OihOLFIpPT57Ti5zaG93UGFzc3dvcmRCb29sPVJ9fSxtZXRhZGF0YTpEfSxoLGYpLEZkKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblN0YXRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4idmFsaWRhdGlvblN0YXRlImluIE4sZ2V0Ok49Pk4udmFsaWRhdGlvblN0YXRlLHNldDooTixSKT0+e04udmFsaWRhdGlvblN0YXRlPVJ9fSxtZXRhZGF0YTpEfSx2LGIpLEZkKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsaWRhdGlvblRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJ2YWxpZGF0aW9uVGV4dCJpbiBOLGdldDpOPT5OLnZhbGlkYXRpb25UZXh0LHNldDooTixSKT0+e04udmFsaWRhdGlvblRleHQ9Un19LG1ldGFkYXRhOkR9LHcsayksRmQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uRnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJ2YWxpZGF0aW9uRnVuY3Rpb24iaW4gTixnZXQ6Tj0+Ti52YWxpZGF0aW9uRnVuY3Rpb24sc2V0OihOLFIpPT57Ti52YWxpZGF0aW9uRnVuY3Rpb249Un19LG1ldGFkYXRhOkR9LHosTSksRmQobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCxyKSxGPWk9dC52YWx1ZSxEJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkR9KX1zdGF0aWMgZGVtbz1Bc3I7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVpuKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEQpe3RoaXMuI2U9RH0jdD0oWm4odGhpcyxzKSxabih0aGlzLGMsITEpKTtnZXQgaXNQYXNzd29yZEJvb2woKXtyZXR1cm4gdGhpcy4jdH1zZXQgaXNQYXNzd29yZEJvb2woRCl7dGhpcy4jdD1EfSNyPShabih0aGlzLHUpLFpuKHRoaXMsaCwhMSkpO2dldCBzaG93UGFzc3dvcmRCb29sKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dQYXNzd29yZEJvb2woRCl7dGhpcy4jcj1EfSNpPShabih0aGlzLGYpLFpuKHRoaXMsdix2b2lkIDApKTtnZXQgdmFsaWRhdGlvblN0YXRlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHZhbGlkYXRpb25TdGF0ZShEKXt0aGlzLiNpPUR9I2E9KFpuKHRoaXMsYiksWm4odGhpcyx3LCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI2F9c2V0IHZhbGlkYXRpb25UZXh0KEQpe3RoaXMuI2E9RH0jbj0oWm4odGhpcyxrKSxabih0aGlzLHosdm9pZCAwKSk7Z2V0IHZhbGlkYXRpb25GdW5jdGlvbigpe3JldHVybiB0aGlzLiNufXNldCB2YWxpZGF0aW9uRnVuY3Rpb24oRCl7dGhpcy4jbj1EfXN0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAqIHsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SXJ9OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CgogICAgICBpbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpob3Zlcjpub3QoOmRpc2FibGVkKTpub3QoOmZvY3VzKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUgLyAwLjA1KSIsImhzbCgwIDAlIDk4JSAvIDAuMDUpIil9OwogICAgICB9CgogICAgICBpbnB1dDpkaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC8qIFBhc3N3b3JkIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLnNob3dQYXNzd29yZCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxcHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzhweDsKICAgICAgICBoZWlnaHQ6IDM4cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNXB4IDVweCAwOwogICAgICB9CgogICAgICAuc2hvd1Bhc3N3b3JkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWRhdGlvbiBzdHlsZXMgKi8KICAgICAgLnZhbGlkYXRpb25Db250YWluZXIgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC52YWxpZGF0aW9uQ29udGFpbmVyLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUgLyAwLjEpIiwiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci53YXJuIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjEpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICB9CgogICAgICAudmFsaWRhdGlvbkNvbnRhaW5lci52YWxpZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIEVycm9yIHN0YXRlIGZvciBpbnB1dCAqLwogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0iaW52YWxpZCJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvbi1zdGF0ZT0iaW52YWxpZCJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUpIiwiaHNsKDAgNzIuMiUgNTAuNiUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke20uYmRUaGVtZSgiaHNsKDAgODQuMiUgNjAuMiUgLyAwLjA1KSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFdhcm5pbmcgc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPSJ3YXJuIl0pIGlucHV0IHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPSJ3YXJuIl0pIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSkiLCJoc2woMjUgOTUlIDYzJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7bS5iZFRoZW1lKCJoc2woMjUgOTUlIDUzJSAvIDAuMDUpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLyogVmFsaWQgc3RhdGUgZm9yIGlucHV0ICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPSJ2YWxpZCJdKSBpbnB1dCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uLXN0YXRlPSJ2YWxpZCJdKSBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7bS5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjA1KSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMDUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPHN0eWxlPgogICAgICAgIGlucHV0IHsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAke3RoaXMuaXNQYXNzd29yZEJvb2w/QWQ6ImluaGVyaXQifTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAke3RoaXMuaXNQYXNzd29yZEJvb2w/IjAuNXB4Ijoibm9ybWFsIn07CiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAke3RoaXMuaXNQYXNzd29yZEJvb2w/IjQ4cHgiOiIxMnB4In07CiAgICAgICAgfQogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD9vZWAKICAgICAgICAgICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgYDpvZWAKICAgICAgICAgICAgICAudmFsaWRhdGlvbkNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0gLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgICAgPGlucHV0CiAgICAgICAgICAgIHR5cGU9IiR7dGhpcy5pc1Bhc3N3b3JkQm9vbCYmIXRoaXMuc2hvd1Bhc3N3b3JkQm9vbD8icGFzc3dvcmQiOiJ0ZXh0In0iCiAgICAgICAgICAgIC52YWx1ZT0ke3RoaXMudmFsdWV9CiAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLnVwZGF0ZVZhbHVlfSIKICAgICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgcGxhY2Vob2xkZXI9IiR7dGhpcy5sYWJlbD8iIjoiRW50ZXIgdGV4dC4uLiJ9IgogICAgICAgICAgLz4KICAgICAgICAgICR7dGhpcy5pc1Bhc3N3b3JkQm9vbD9DYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvd1Bhc3N3b3JkIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZVBhc3N3b3JkVmlld30+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLnNob3dQYXNzd29yZEJvb2w/Imx1Y2lkZTpFeWUiOiJsdWNpZGU6RXllT2ZmIn0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgOkNgYH0KICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD9DYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbkNvbnRhaW5lciAke3RoaXMudmFsaWRhdGlvblN0YXRlfHwiZXJyb3IifSI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dH0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGA6Q2A8ZGl2IGNsYXNzPSJ2YWxpZGF0aW9uQ29udGFpbmVyIj48L2Rpdj5gfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKCl7fWFzeW5jIHVwZGF0ZVZhbHVlKEQpe2xldCBOPUQudGFyZ2V0O3RoaXMudmFsdWU9Ti52YWx1ZSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKEQpe3RoaXMudmFsdWU9RH1hc3luYyB0b2dnbGVQYXNzd29yZFZpZXcoKXt0aGlzLnNob3dQYXNzd29yZEJvb2w9IXRoaXMuc2hvd1Bhc3N3b3JkQm9vbH1hc3luYyBmb2N1cygpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9YXN5bmMgYmx1cigpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmJsdXIoKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksWm4odGhpcyxNKX1zdGF0aWN7Wm4oaSxyKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIEVzciwkc3I9cCgoKT0+e3hlKCk7cDEoKTtPaSgpO0Vzcj0oKT0+Q2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByb2R1Y3QtZ3JpZCB7CiAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjgwcHgsIDFmcikpOwogICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSAyMS44JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2FydC1zdW1tYXJ5LXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuY2FydC10b3RhbCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmctdG9wOiAxNnB4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RlZC1wcm9kdWN0cyB7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgUHJvZHVjdCBDYXJkcyJ9IC5zdWJ0aXRsZT0keyJTaW1wbGUgcHJvZHVjdCBkaXNwbGF5IHdpdGggdmFyaW91cyBjb25maWd1cmF0aW9ucyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiV2lyZWxlc3MgQmx1ZXRvb3RoIEhlYWRwaG9uZXMiLGNhdGVnb3J5OiJBdWRpbyIsZGVzY3JpcHRpb246IlByZW1pdW0gc291bmQgcXVhbGl0eSB3aXRoIGFjdGl2ZSBub2lzZSBjYW5jZWxsYXRpb24iLHByaWNlOjE0OS45OSxvcmlnaW5hbFByaWNlOjE5OS45OSxpY29uTmFtZToibHVjaWRlOmhlYWRwaG9uZXMifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNtYXJ0IFdhdGNoIFNlcmllcyA3IixjYXRlZ29yeToiV2VhcmFibGVzIixkZXNjcmlwdGlvbjoiVHJhY2sgeW91ciBmaXRuZXNzIGFuZCBzdGF5IGNvbm5lY3RlZCBvbiB0aGUgZ28iLHByaWNlOjM5OSxpY29uTmFtZToibHVjaWRlOndhdGNoIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJVU0ItQyBIdWIiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIscHJpY2U6NDkuOTksaWNvbk5hbWU6Imx1Y2lkZTp1c2IiLGluU3RvY2s6ITF9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkludGVyYWN0aXZlIFNob3BwaW5nIENhcnQifSAuc3VidGl0bGU9JHsiUHJvZHVjdCBjYXJkcyB3aXRoIGR5bmFtaWMgY2FydCBjYWxjdWxhdGlvbiJ9IC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1be2lkOiJsYXB0b3AiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOidNYWNCb29rIFBybyAxNCInLGNhdGVnb3J5OiJDb21wdXRlcnMiLGRlc2NyaXB0aW9uOiJNMyBQcm8gY2hpcCB3aXRoIDE4R0IgUkFNIixwcmljZToxOTk5LG9yaWdpbmFsUHJpY2U6MjE5OSxpY29uTmFtZToibHVjaWRlOmxhcHRvcCJ9fSx7aWQ6ImlwYWQiLGVsZW1lbnQ6bnVsbCxkYXRhOntuYW1lOiJpUGFkIEFpciIsY2F0ZWdvcnk6IlRhYmxldHMiLGRlc2NyaXB0aW9uOicxMC45IiBMaXF1aWQgUmV0aW5hIGRpc3BsYXknLHByaWNlOjU5OSxpY29uTmFtZToibHVjaWRlOnRhYmxldCJ9fSx7aWQ6ImtleWJvYXJkIixlbGVtZW50Om51bGwsZGF0YTp7bmFtZToiTWFnaWMgS2V5Ym9hcmQiLGNhdGVnb3J5OiJBY2Nlc3NvcmllcyIsZGVzY3JpcHRpb246IldpcmVsZXNzIGtleWJvYXJkIHdpdGggVG91Y2ggSUQiLHByaWNlOjE0OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19XSxyPSgpPT57bGV0IGk9MCxhPVtdO3QuZm9yRWFjaChvPT57bGV0IHM9ZS5xdWVyeVNlbGVjdG9yKGAjJHtvLmlkfWApO2lmKHMmJnMucXVhbnRpdHk+MCl7bGV0IGw9by5kYXRhLnByaWNlKnMucXVhbnRpdHk7aSs9bCxhLnB1c2goYAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgICAgPHNwYW4+JHtvLmRhdGEubmFtZX0gKCR7cy5xdWFudGl0eX0pPC9zcGFuPgogICAgICAgICAgICAgICAgICA8c3Bhbj4kJHtsLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9fSk7bGV0IG49ZS5xdWVyeVNlbGVjdG9yKCIjaW50ZXJhY3RpdmUtY2FydC1zdW1tYXJ5Iik7biYmKG4uaW5uZXJIVE1MPWAKICAgICAgICAgICAgICAke2Euam9pbigiIil9CiAgICAgICAgICAgICAgJHthLmxlbmd0aD09PTA/JzxkaXYgY2xhc3M9ImNhcnQtaXRlbSIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM5OTk7Ij5Zb3VyIGNhcnQgaXMgZW1wdHk8L2Rpdj4nOiIifQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtdG90YWwiPgogICAgICAgICAgICAgICAgPHNwYW4+VG90YWw8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj4kJHtpLnRvRml4ZWQoMil9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgKX07c2V0VGltZW91dChyLDEwMCksZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIikuZm9yRWFjaChpPT57aS5hZGRFdmVudExpc3RlbmVyKCJxdWFudGl0eUNoYW5nZSIscil9KX19PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ibGFwdG9wIgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZTonTWFjQm9vayBQcm8gMTQiJyxjYXRlZ29yeToiQ29tcHV0ZXJzIixkZXNjcmlwdGlvbjoiTTMgUHJvIGNoaXAgd2l0aCAxOEdCIFJBTSIscHJpY2U6MTk5OSxvcmlnaW5hbFByaWNlOjIxOTksaWNvbk5hbWU6Imx1Y2lkZTpsYXB0b3AifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7MX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgaWQ9ImlwYWQiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJpUGFkIEFpciIsY2F0ZWdvcnk6IlRhYmxldHMiLGRlc2NyaXB0aW9uOicxMC45IiBMaXF1aWQgUmV0aW5hIGRpc3BsYXknLHByaWNlOjU5OSxpY29uTmFtZToibHVjaWRlOnRhYmxldCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ia2V5Ym9hcmQiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJNYWdpYyBLZXlib2FyZCIsY2F0ZWdvcnk6IkFjY2Vzc29yaWVzIixkZXNjcmlwdGlvbjoiV2lyZWxlc3Mga2V5Ym9hcmQgd2l0aCBUb3VjaCBJRCIscHJpY2U6MTQ5LGljb25OYW1lOiJsdWNpZGU6a2V5Ym9hcmQifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhcnQtc3VtbWFyeSI+CiAgICAgICAgICA8aDMgY2xhc3M9ImNhcnQtc3VtbWFyeS10aXRsZSI+U2hvcHBpbmcgQ2FydDwvaDM+CiAgICAgICAgICA8ZGl2IGlkPSJpbnRlcmFjdGl2ZS1jYXJ0LXN1bW1hcnkiPgogICAgICAgICAgICA8IS0tIER5bmFtaWNhbGx5IHVwZGF0ZWQgLS0+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNlbGVjdGFibGUgUHJvZHVjdCBDYXJkcyJ9IC5zdWJ0aXRsZT0keyJDbGljayBjYXJkcyBvciBjaGVja2JveGVzIHRvIHNlbGVjdCBwcm9kdWN0cyJ9PgogICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiU29ueSBBbHBoYSA3IElWIixjYXRlZ29yeToiQ2FtZXJhcyIsZGVzY3JpcHRpb246IkZ1bGwtZnJhbWUgbWlycm9ybGVzcyBjYW1lcmEiLHByaWNlOjI0OTgsaWNvbk5hbWU6Imx1Y2lkZTpjYW1lcmEifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHtlPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZih0KXtsZXQgcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksaT1bXTtyLmZvckVhY2goYT0+e2Euc2VsZWN0ZWQmJmkucHVzaChhLnByb2R1Y3REYXRhLm5hbWUpfSksdC50ZXh0Q29udGVudD1pLmxlbmd0aD4wP2BTZWxlY3RlZDogJHtpLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJESkkgTWluaSAzIFBybyIsY2F0ZWdvcnk6IkRyb25lcyIsZGVzY3JpcHRpb246IkxpZ2h0d2VpZ2h0IGRyb25lIHdpdGggNEsgY2FtZXJhIixwcmljZTo3NTksaWNvbk5hbWU6Imx1Y2lkZTpwbGFuZSJ9fQogICAgICAgICAgICAuc2VsZWN0YWJsZT0keyEwfQogICAgICAgICAgICAuc2hvd1F1YW50aXR5U2VsZWN0b3I9JHshMX0KICAgICAgICAgICAgQHNlbGVjdGlvbkNoYW5nZT0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2VsZWN0aW9uLW91dHB1dCIpO2lmKHQpe2xldCByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmRbc2VsZWN0YWJsZV0iKSxpPVtdO3IuZm9yRWFjaChhPT57YS5zZWxlY3RlZCYmaS5wdXNoKGEucHJvZHVjdERhdGEubmFtZSl9KSx0LnRleHRDb250ZW50PWkubGVuZ3RoPjA/YFNlbGVjdGVkOiAke2kuam9pbigiLCAiKX1gOiJObyBwcm9kdWN0cyBzZWxlY3RlZCJ9fX0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkdvUHJvIEhFUk8xMiIsY2F0ZWdvcnk6IkFjdGlvbiBDYW1lcmFzIixkZXNjcmlwdGlvbjoiNS4zSyB2aWRlbyB3aXRoIEh5cGVyU21vb3RoIDYuMCIscHJpY2U6Mzk5LG9yaWdpbmFsUHJpY2U6NDQ5LGljb25OYW1lOiJsdWNpZGU6dmlkZW8ifX0KICAgICAgICAgICAgLnNlbGVjdGFibGU9JHshMH0KICAgICAgICAgICAgLnNob3dRdWFudGl0eVNlbGVjdG9yPSR7ITF9CiAgICAgICAgICAgIEBzZWxlY3Rpb25DaGFuZ2U9JHtlPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTtpZih0KXtsZXQgcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkW3NlbGVjdGFibGVdIiksaT1bXTtyLmZvckVhY2goYT0+e2Euc2VsZWN0ZWQmJmkucHVzaChhLnByb2R1Y3REYXRhLm5hbWUpfSksdC50ZXh0Q29udGVudD1pLmxlbmd0aD4wP2BTZWxlY3RlZDogJHtpLmpvaW4oIiwgIil9YDoiTm8gcHJvZHVjdHMgc2VsZWN0ZWQifX19CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InNlbGVjdGVkLXByb2R1Y3RzIiBpZD0ic2VsZWN0aW9uLW91dHB1dCIgc3R5bGU9Im1hcmdpbi10b3A6IDE2cHg7Ij4KICAgICAgICAgIE5vIHByb2R1Y3RzIHNlbGVjdGVkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcm9kdWN0IFZhcmlhdGlvbnMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0LWdyaWQiPgogICAgICAgICAgPGRlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IkxpbWl0ZWQgRWRpdGlvbiBTbmVha2VycyIsY2F0ZWdvcnk6IkZvb3R3ZWFyIixkZXNjcmlwdGlvbjoiRXhjbHVzaXZlIGNvbG9yd2F5IC0gT25seSA1MDAgcGFpcnMiLHByaWNlOjI5OSxpY29uTmFtZToibHVjaWRlOmZvb3RwcmludHMiLGluU3RvY2s6ITEsc3RvY2tUZXh0OiJTb2xkIE91dCJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHswfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTWluaW1hbGlzdCBXYWxsZXQiLHByaWNlOjM5Ljk5LGljb25OYW1lOiJsdWNpZGU6d2FsbGV0In19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgoKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJQcmVtaXVtIENvZmZlZSBCZWFucyIsY2F0ZWdvcnk6IkZvb2QgJiBCZXZlcmFnZSIsZGVzY3JpcHRpb246IlNpbmdsZSBvcmlnaW4sIG1lZGl1bSByb2FzdCIscHJpY2U6MTguNSxpY29uTmFtZToibHVjaWRlOmNvZmZlZSIsY3VycmVuY3k6Ilx1MjBBQyJ9fQogICAgICAgICAgICAucXVhbnRpdHk9JHsyfQogICAgICAgICAgPjwvZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIHJoLF8yLElzcixmNmU9cCgoKT0+e3hlKCk7JHNyKCk7SmUoKTtyaD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LF8yPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxJc3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6T2JqZWN0fSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ooe3R5cGU6Qm9vbGVhbn0pXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpCb29sZWFufSldLHJoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZHVjdERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJwcm9kdWN0RGF0YSJpbiBNLGdldDpNPT5NLnByb2R1Y3REYXRhLHNldDooTSxGKT0+e00ucHJvZHVjdERhdGE9Rn19LG1ldGFkYXRhOnp9LG8scykscmgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJxdWFudGl0eSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InF1YW50aXR5ImluIE0sZ2V0Ok09Pk0ucXVhbnRpdHksc2V0OihNLEYpPT57TS5xdWFudGl0eT1GfX0sbWV0YWRhdGE6en0sYyx1KSxyaCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dRdWFudGl0eVNlbGVjdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic2hvd1F1YW50aXR5U2VsZWN0b3IiaW4gTSxnZXQ6TT0+TS5zaG93UXVhbnRpdHlTZWxlY3RvcixzZXQ6KE0sRik9PntNLnNob3dRdWFudGl0eVNlbGVjdG9yPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLHJoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNlbGVjdGFibGUiaW4gTSxnZXQ6TT0+TS5zZWxlY3RhYmxlLHNldDooTSxGKT0+e00uc2VsZWN0YWJsZT1GfX0sbWV0YWRhdGE6en0sdixiKSxyaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic2VsZWN0ZWQiaW4gTSxnZXQ6TT0+TS5zZWxlY3RlZCxzZXQ6KE0sRik9PntNLnNlbGVjdGVkPUZ9fSxtZXRhZGF0YTp6fSx3LGspLHJoKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnp9LG51bGwsciksTz1pPXQudmFsdWUseiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp6fSl9c3RhdGljIGRlbW89RXNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiU2ltcGxlIl07I2U9XzIodGhpcyxvLHtuYW1lOiJQcm9kdWN0IE5hbWUiLHByaWNlOjB9KTtnZXQgcHJvZHVjdERhdGEoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJvZHVjdERhdGEoeil7dGhpcy4jZT16fSN0PShfMih0aGlzLHMpLF8yKHRoaXMsYywwKSk7Z2V0IHF1YW50aXR5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IHF1YW50aXR5KHope3RoaXMuI3Q9en0jcj0oXzIodGhpcyx1KSxfMih0aGlzLGgsITApKTtnZXQgc2hvd1F1YW50aXR5U2VsZWN0b3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd1F1YW50aXR5U2VsZWN0b3Ioeil7dGhpcy4jcj16fSNpPShfMih0aGlzLGYpLF8yKHRoaXMsdiwhMSkpO2dldCBzZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGFibGUoeil7dGhpcy4jaT16fSNhPShfMih0aGlzLGIpLF8yKHRoaXMsdywhMSkpO2dldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLiNhfXNldCBzZWxlY3RlZCh6KXt0aGlzLiNhPXp9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNhcmQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2FyZDpob3ZlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICB9CgogICAgICAucHJvZHVjdC1jYXJkLnNlbGVjdGFibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2FyZC5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtaW1hZ2UgaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWltYWdlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSkiLCJoc2woMjE1IDIwLjIlIDM1LjElKSIpfTsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnNlbGVjdGlvbi1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uLWNoZWNrYm94LmNoZWNrZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtY2F0ZWdvcnkgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CiAgICAgIAogICAgICAucHJvZHVjdC1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgLnByb2R1Y3QtZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5wcm9kdWN0LWZvb3RlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9kdWN0LXByaWNlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5wcmljZS1jdXJyZW50IHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5wcmljZS1vcmlnaW5hbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICB9CgogICAgICAuc3RvY2stc3RhdHVzIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMuaW4tc3RvY2sgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5zdG9jay1zdGF0dXMub3V0LW9mLXN0b2NrIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLnN0b2NrLXN0YXR1cyBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0e25hbWU6eixjYXRlZ29yeTpNLGRlc2NyaXB0aW9uOkYscHJpY2U6RCxvcmlnaW5hbFByaWNlOk4sY3VycmVuY3k6Uj0iJCIsaW5TdG9jazpfPSEwLHN0b2NrVGV4dDpTPV8/IkluIFN0b2NrIjoiT3V0IG9mIFN0b2NrIixpbWFnZVVybDokLGljb25OYW1lOlQ9Imx1Y2lkZTpwYWNrYWdlIn09dGhpcy5wcm9kdWN0RGF0YSxFPXE9PmAke1J9JHtxLnRvRml4ZWQoMil9YDtyZXR1cm4gQ2AKICAgICAgPGRpdiAKICAgICAgICBjbGFzcz0icHJvZHVjdC1jYXJkICR7dGhpcy5zZWxlY3RhYmxlPyJzZWxlY3RhYmxlIjoiIn0gJHt0aGlzLnNlbGVjdGVkPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2FyZENsaWNrfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1pbWFnZSI+CiAgICAgICAgICAkeyQ/Q2AKICAgICAgICAgICAgPGltZyBzcmM9IiR7JH0iIGFsdD0iJHt6fSI+CiAgICAgICAgICBgOkNgCiAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHtUfT48L2RlZXMtaWNvbj4KICAgICAgICAgIGB9CiAgICAgICAgICAke3RoaXMuc2VsZWN0YWJsZT9DYAogICAgICAgICAgICA8ZGl2IAogICAgICAgICAgICAgIGNsYXNzPSJzZWxlY3Rpb24tY2hlY2tib3ggJHt0aGlzLnNlbGVjdGVkPyJjaGVja2VkIjoiIn0iCiAgICAgICAgICAgICAgQGNsaWNrPSR7cT0+e3Euc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5oYW5kbGVTZWxlY3Rpb25Ub2dnbGUoKX19CiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVjayJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1jb250ZW50Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtaGVhZGVyIj4KICAgICAgICAgICAgJHtNP0NgPGRpdiBjbGFzcz0icHJvZHVjdC1jYXRlZ29yeSI+JHtNfTwvZGl2PmA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtbmFtZSI+JHt6fTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke0Y/Q2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1kZXNjcmlwdGlvbiI+JHtGfTwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICAgIDxkaXYgY2xhc3M9InN0b2NrLXN0YXR1cyAke18/ImluLXN0b2NrIjoib3V0LW9mLXN0b2NrIn0iPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Xz8ibHVjaWRlOmNoZWNrLWNpcmNsZSI6Imx1Y2lkZTp4LWNpcmNsZSJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAke1N9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3QtZm9vdGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZHVjdC1wcmljZSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWN1cnJlbnQiPiR7RShEKX08L3NwYW4+CiAgICAgICAgICAgICAgJHtOJiZOPkQ/Q2AKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwcmljZS1vcmlnaW5hbCI+JHtFKE4pfTwvc3Bhbj4KICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLnNob3dRdWFudGl0eVNlbGVjdG9yP0NgCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5xdWFudGl0eX0KICAgICAgICAgICAgICAgIEBjaGFuZ2VTdWJqZWN0PSR7cT0+e3RoaXMucXVhbnRpdHk9cS5kZXRhaWwuZ2V0VmFsdWUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJxdWFudGl0eUNoYW5nZSIse2RldGFpbDp7cXVhbnRpdHk6dGhpcy5xdWFudGl0eSxwcm9kdWN0RGF0YTp0aGlzLnByb2R1Y3REYXRhfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfX0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNhcmRDbGljaygpe3RoaXMuc2VsZWN0YWJsZSYmKHRoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZVNlbGVjdGlvblRvZ2dsZSgpe3RoaXMuc2VsZWN0ZWQ9IXRoaXMuc2VsZWN0ZWQsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VsZWN0aW9uQ2hhbmdlIix7ZGV0YWlsOntzZWxlY3RlZDp0aGlzLnNlbGVjdGVkLHByb2R1Y3REYXRhOnRoaXMucHJvZHVjdERhdGF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLF8yKHRoaXMsayl9c3RhdGlje18yKGkscil9fTtyZXR1cm4gTz1pfSkoKX0pO3ZhciBQc3IsTnNyPXAoKCk9Pnt4ZSgpO2Y2ZSgpO1Bzcj0oKT0+Q2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNob3BwaW5nLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LXN1bW1hcnkgewogICAgICAgICAgbWFyZ2luLXRvcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMjEuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtc3VtbWFyeS10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5jYXJ0LWl0ZW0gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLmNhcnQtdG90YWwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgUXVhbnRpdHkgU2VsZWN0b3IifSAuc3VidGl0bGU9JHsiU2ltcGxlIHF1YW50aXR5IGlucHV0IHdpdGggaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IHRoZSBkZXNpcmVkIHF1YW50aXR5In0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJJdGVtcyBpbiBDYXJ0In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkanVzdCB0aGUgcXVhbnRpdHkgb2YgaXRlbXMifQogICAgICAgICAgICAudmFsdWU9JHszfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2hvcHBpbmcgQ2FydCJ9IC5zdWJ0aXRsZT0keyJNb2Rlcm4gZS1jb21tZXJjZSBwcm9kdWN0IGNhcmRzIHdpdGggaW50ZXJhY3RpdmUgcXVhbnRpdHkgc2VsZWN0b3JzIn0gLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PSgpPT57bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIjaGVhZHBob25lcy1xdHkiKSxpPWUucXVlcnlTZWxlY3RvcigiI21vdXNlLXF0eSIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIja2V5Ym9hcmQtcXR5Iiksbj1yPy5xdWFudGl0eXx8MCxvPWk/LnF1YW50aXR5fHwwLHM9YT8ucXVhbnRpdHl8fDAsbD0zNDkuOTkqbixjPTk5Ljk5Km8sdT03OS45OSpzLGQ9bCtjK3UsaD1lLnF1ZXJ5U2VsZWN0b3IoIiNjYXJ0LXN1bW1hcnktY29udGVudCIpO2gmJihoLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgJHtuPjA/YDxkaXYgY2xhc3M9ImNhcnQtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3Bhbj5Tb255IFdILTEwMDBYTTUgKCR7bn0pPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7bC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gOiIifQogICAgICAgICAgICAgICR7bz4wP2A8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iPgogICAgICAgICAgICAgICAgPHNwYW4+TG9naXRlY2ggTVggTWFzdGVyIDNTICgke299KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke2MudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke3M+MD9gPGRpdiBjbGFzcz0iY2FydC1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuPktleWNocm9uIEsyICgke3N9KTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPiQke3UudG9GaXhlZCgyKX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+YDoiIn0KICAgICAgICAgICAgICAke2Q9PT0wPyc8ZGl2IGNsYXNzPSJjYXJ0LWl0ZW0iIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjOTk5OyI+WW91ciBjYXJ0IGlzIGVtcHR5PC9kaXY+JzoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXRvdGFsIj4KICAgICAgICAgICAgICAgIDxzcGFuPlRvdGFsPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+JCR7ZC50b0ZpeGVkKDIpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9O3NldFRpbWVvdXQodCwxMDApLGUucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZCIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigicXVhbnRpdHlDaGFuZ2UiLHQpfSl9fT4KICAgICAgICA8ZGl2IGNsYXNzPSJzaG9wcGluZy1ncmlkIj4KICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJoZWFkcGhvbmVzLXF0eSIKICAgICAgICAgICAgLnByb2R1Y3REYXRhPSR7e25hbWU6IlNvbnkgV0gtMTAwMFhNNSBXaXJlbGVzcyBIZWFkcGhvbmVzIixjYXRlZ29yeToiQXVkaW8iLGRlc2NyaXB0aW9uOiJJbmR1c3RyeS1sZWFkaW5nIG5vaXNlIGNhbmNlbGluZyB3aXRoIEF1dG8gTkMgT3B0aW1pemVyIixwcmljZTozNDkuOTksb3JpZ2luYWxQcmljZTozOTkuOTksaWNvbk5hbWU6Imx1Y2lkZTpoZWFkcGhvbmVzIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1zaG9wcGluZy1wcm9kdWN0Y2FyZAogICAgICAgICAgICBpZD0ibW91c2UtcXR5IgogICAgICAgICAgICAucHJvZHVjdERhdGE9JHt7bmFtZToiTG9naXRlY2ggTVggTWFzdGVyIDNTIixjYXRlZ29yeToiQWNjZXNzb3JpZXMiLGRlc2NyaXB0aW9uOiJQZXJmb3JtYW5jZSB3aXJlbGVzcyBtb3VzZSB3aXRoIHVsdHJhLWZhc3Qgc2Nyb2xsaW5nIixwcmljZTo5OS45OSxpY29uTmFtZToibHVjaWRlOm1vdXNlLXBvaW50ZXIifX0KICAgICAgICAgICAgLnF1YW50aXR5PSR7Mn0KICAgICAgICAgID48L2RlZXMtc2hvcHBpbmctcHJvZHVjdGNhcmQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkCiAgICAgICAgICAgIGlkPSJrZXlib2FyZC1xdHkiCiAgICAgICAgICAgIC5wcm9kdWN0RGF0YT0ke3tuYW1lOiJLZXljaHJvbiBLMiBXaXJlbGVzcyBNZWNoYW5pY2FsIEtleWJvYXJkIixjYXRlZ29yeToiS2V5Ym9hcmRzIixkZXNjcmlwdGlvbjoiQ29tcGFjdCA3NSUgbGF5b3V0IHdpdGggaG90LXN3YXBwYWJsZSBzd2l0Y2hlcyIscHJpY2U6NzkuOTksb3JpZ2luYWxQcmljZTo5NC45OSxpY29uTmFtZToibHVjaWRlOmtleWJvYXJkIn19CiAgICAgICAgICAgIC5xdWFudGl0eT0kezF9CiAgICAgICAgICA+PC9kZWVzLXNob3BwaW5nLXByb2R1Y3RjYXJkPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYXJ0LXN1bW1hcnkiPgogICAgICAgICAgPGgzIGNsYXNzPSJjYXJ0LXN1bW1hcnktdGl0bGUiPk9yZGVyIFN1bW1hcnk8L2gzPgogICAgICAgICAgPGRpdiBpZD0iY2FydC1zdW1tYXJ5LWNvbnRlbnQiPgogICAgICAgICAgICA8IS0tIENvbnRlbnQgd2lsbCBiZSBkeW5hbWljYWxseSB1cGRhdGVkIC0tPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJSZXF1aXJlZCAmIERpc2FibGVkIFN0YXRlcyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgc3RhdGVzIGZvciB2YWxpZGF0aW9uIGFuZCByZXN0cmljdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yCiAgICAgICAgICAgIC5sYWJlbD0keyJOdW1iZXIgb2YgTGljZW5zZXMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU2VsZWN0IGhvdyBtYW55IGxpY2Vuc2VzIHlvdSBuZWVkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0kezF9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXF1YW50aXR5c2VsZWN0b3I+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiRml4ZWQgUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBxdWFudGl0eSBjYW5ub3QgYmUgY2hhbmdlZCJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgICAudmFsdWU9JHs1fQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiT3JkZXIgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBvcmRlciBmb3JtIHdpdGggcXVhbnRpdHkgc2VsZWN0aW9uIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkN1c3RvbWVyIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyBQbGFuIiwiUHJvIFBsYW4iLCJFbnRlcnByaXNlIFBsYW4iXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgPGRlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3RvcgogICAgICAgICAgICAubGFiZWw9JHsiUXVhbnRpdHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTnVtYmVyIG9mIGxpY2Vuc2VzIn0KICAgICAgICAgICAgLnZhbHVlPSR7MX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcXVhbnRpdHlzZWxlY3Rvcj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlNwZWNpYWwgSW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBGc3IsbTZlLEVOLGc2ZT1wKCgpPT57eGUoKTtLdCgpO00xKCk7TnNyKCk7SmUoKTtGc3I9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxtNmU9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LEVOPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC1xdWFudGl0eXNlbGVjdG9yIildLHQscj1bXSxpLGE9b3QsbixvPVtdLHM9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6TnVtYmVyfSldLEZzcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4idmFsdWUiaW4gdSxnZXQ6dT0+dS52YWx1ZSxzZXQ6KHUsZCk9Pnt1LnZhbHVlPWR9fSxtZXRhZGF0YTpjfSxvLHMpLEZzcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPVBzcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9bTZlKHRoaXMsbywxKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICAgOmhvc3QgewogICAgICAgICAgd2lkdGg6IGF1dG87CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5xdWFudGl0eS1jb250YWluZXIgewogICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5xdWFudGl0eS1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KCiAgICAgICAgLnF1YW50aXR5LWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IgewogICAgICAgICAgZmxleDogMCAwIDQwcHg7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3I6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3RvcjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMSUpIil9OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdG9yLm1pbnVzIHsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAuc2VsZWN0b3IucGx1cyB7CiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHkgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIH0KCiAgICAgICAgLyogS2V5Ym9hcmQgbmF2aWdhdGlvbiBmb2N1cyBzdHlsZXMgKi8KICAgICAgICAuc2VsZWN0b3I6Zm9jdXMgewogICAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAvKiBNaW4gdmFsdWUgc3RhdGUgKi8KICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPSJ0cnVlIl0gLnNlbGVjdG9yLm1pbnVzIHsKICAgICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgICAgfQoKICAgICAgICAucXVhbnRpdHktY29udGFpbmVyW2RhdGEtbWluPSJ0cnVlIl0gLnNlbGVjdG9yLm1pbnVzOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgfQoKICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/Q2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICA8ZGl2IAogICAgICAgICAgY2xhc3M9InF1YW50aXR5LWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICBkYXRhLW1pbj0iJHt0aGlzLnZhbHVlPD0wfSIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IAogICAgICAgICAgICBjbGFzcz0ic2VsZWN0b3IgbWludXMiIAogICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmRlY3JlYXNlKCl9fSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2M9PnsoYy5rZXk9PT0iRW50ZXIifHxjLmtleT09PSIgIikmJihjLnByZXZlbnREZWZhdWx0KCksdGhpcy5kZWNyZWFzZSgpKX19IgogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IkRlY3JlYXNlIHF1YW50aXR5IgogICAgICAgICAgPuKIkjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icXVhbnRpdHkiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLWF0b21pYz0idHJ1ZSI+JHt0aGlzLnZhbHVlfTwvZGl2PgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InNlbGVjdG9yIHBsdXMiIAogICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmluY3JlYXNlKCl9fSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke2M9PnsoYy5rZXk9PT0iRW50ZXIifHxjLmtleT09PSIgIikmJihjLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbmNyZWFzZSgpKX19IgogICAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICAgIGFyaWEtbGFiZWw9IkluY3JlYXNlIHF1YW50aXR5IgogICAgICAgICAgPis8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWluY3JlYXNlKCl7dGhpcy5kaXNhYmxlZHx8KHRoaXMudmFsdWUrKyx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9ZGVjcmVhc2UoKXshdGhpcy5kaXNhYmxlZCYmdGhpcy52YWx1ZT4wJiYodGhpcy52YWx1ZS0tLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKGMpe3RoaXMudmFsdWU9Y31jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbTZlKHRoaXMscyl9c3RhdGlje202ZShpLHIpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgT3NyLFJzcj1wKCgpPT57eGUoKTtwMSgpO09pKCk7T3NyPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJlc3VsdC1kaXNwbGF5IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDUsIDI0MiwgMC4xKTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgUmFkaW8gR3JvdXBzIn0gLnN1YnRpdGxlPSR7IlNpbXBsZSBzdHJpbmcgb3B0aW9ucyBmb3IgY29tbW9uIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJTdWJzY3JpcHRpb24gUGxhbiJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJCYXNpYyAtICQ5L21vbnRoIiwiUHJvIC0gJDI5L21vbnRoIiwiRW50ZXJwcmlzZSAtICQ5OS9tb250aCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJvIC0gJDI5L21vbnRoIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkNob29zZSB5b3VyIHN1YnNjcmlwdGlvbiB0aWVyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiUHJpb3JpdHkgTGV2ZWwifQogICAgICAgICAgICAub3B0aW9ucz0ke1siSGlnaCIsIk1lZGl1bSIsIkxvdyJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTWVkaXVtIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJSYWRpbyBncm91cHMgd2l0aCBob3Jpem9udGFsIGFycmFuZ2VtZW50In0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiRG8geW91IGFncmVlIHdpdGggdGhlIHRlcm1zPyJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJZZXMiLCJObyIsIk1heWJlIl19CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJZZXMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkV4cGVyaWVuY2UgTGV2ZWwifQogICAgICAgICAgICAub3B0aW9ucz0ke1siQmVnaW5uZXIiLCJJbnRlcm1lZGlhdGUiLCJFeHBlcnQiXX0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkludGVybWVkaWF0ZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTZWxlY3QgeW91ciBleHBlcmllbmNlIGxldmVsIHdpdGggd2ViIGRldmVsb3BtZW50In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIEFkdmFuY2VkIE9wdGlvbnMifSAuc3VidGl0bGU9JHsiVXNpbmcgb2JqZWN0IGZvcm1hdCB3aXRoIGtleXMgYW5kIHBheWxvYWRzIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgaWQ9ImFkdmFuY2VkLXJhZGlvIgogICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBSZWdpb24ifQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVW5pdGVkIFN0YXRlcyAoVVMgRWFzdCkiLGtleToidXMtZWFzdCIscGF5bG9hZDp7cmVnaW9uOiJ1cy1lYXN0LTEiLGxhdGVuY3k6MjB9fSx7b3B0aW9uOiJFdXJvcGUgKEZyYW5rZnVydCkiLGtleToiZXUtY2VudHJhbCIscGF5bG9hZDp7cmVnaW9uOiJldS1jZW50cmFsLTEiLGxhdGVuY3k6NTB9fSx7b3B0aW9uOiJBc2lhIFBhY2lmaWMgKFNpbmdhcG9yZSkiLGtleToiYXAtc291dGhlYXN0IixwYXlsb2FkOntyZWdpb246ImFwLXNvdXRoZWFzdC0xIixsYXRlbmN5OjEyMH19XX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJldS1jZW50cmFsIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgdGhlIGNsb3Nlc3QgcmVnaW9uIGZvciBvcHRpbWFsIHBlcmZvcm1hbmNlIn0KICAgICAgICAgIEBjaGFuZ2U9JHtlPT57bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3JlZ2lvbi1yZXN1bHQiKTt0JiYodC50ZXh0Q29udGVudD0iU2VsZWN0ZWQ6ICIrSlNPTi5zdHJpbmdpZnkoZS5kZXRhaWwudmFsdWUsbnVsbCwyKSl9fQogICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8ZGl2IGlkPSJyZWdpb24tcmVzdWx0IiBjbGFzcz0icmVzdWx0LWRpc3BsYXkiPlNlbGVjdGVkOiB7ICJyZWdpb24iOiAiZXUtY2VudHJhbC0xIiwgImxhdGVuY3kiOiA1MCB9PC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBTdXJ2ZXkgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSByYWRpbyBncm91cHMgZm9yIHN1cnZleXMgYW5kIGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkhvdyBzYXRpc2ZpZWQgYXJlIHlvdT8ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siVmVyeSBTYXRpc2ZpZWQiLCJTYXRpc2ZpZWQiLCJOZXV0cmFsIiwiRGlzc2F0aXNmaWVkIiwiVmVyeSBEaXNzYXRpc2ZpZWQiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlNhdGlzZmllZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IldvdWxkIHlvdSByZWNvbW1lbmQgdXM/In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkRlZmluaXRlbHkiLCJQcm9iYWJseSIsIk5vdCBTdXJlIiwiUHJvYmFibHkgTm90IiwiRGVmaW5pdGVseSBOb3QiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByb2JhYmx5In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIFN0YXRlcyAmIFZhbGlkYXRpb24ifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgdmFsaWRhdGlvbiBleGFtcGxlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJSZXF1aXJlZCBTZWxlY3Rpb24ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siT3B0aW9uIEEiLCJPcHRpb24gQiIsIk9wdGlvbiBDIl19CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBmaWVsZCBpcyByZXF1aXJlZCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXJhZGlvZ3JvdXAKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIFN0YXRlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkRpc2FibGVkIE9wdGlvbiAxIiwiRGlzYWJsZWQgT3B0aW9uIDIiLCJEaXNhYmxlZCBPcHRpb24gMyJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRGlzYWJsZWQgT3B0aW9uIDIifQogICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIFNldHRpbmdzIEV4YW1wbGUifSAuc3VidGl0bGU9JHsiQ29tbW9uIHBhdHRlcm5zIGluIGFwcGxpY2F0aW9uIHNldHRpbmdzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiVGhlbWUgUHJlZmVyZW5jZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkxpZ2h0IFRoZW1lIixrZXk6ImxpZ2h0IixwYXlsb2FkOiJsaWdodCJ9LHtvcHRpb246IkRhcmsgVGhlbWUiLGtleToiZGFyayIscGF5bG9hZDoiZGFyayJ9LHtvcHRpb246IlN5c3RlbSBEZWZhdWx0IixrZXk6InN5c3RlbSIscGF5bG9hZDoiYXV0byJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ImRhcmsifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ2hvb3NlIGhvdyB0aGUgYXBwbGljYXRpb24gc2hvdWxkIGFwcGVhciJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIEZyZXF1ZW5jeSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7WyJBbGwgTm90aWZpY2F0aW9ucyIsIkltcG9ydGFudCBPbmx5IiwiTm9uZSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSW1wb3J0YW50IE9ubHkifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQ29udHJvbCBob3cgb2Z0ZW4geW91IHJlY2VpdmUgbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiTGFuZ3VhZ2UifQogICAgICAgICAgICAub3B0aW9ucz0ke1siRW5nbGlzaCIsIkdlcm1hbiIsIkZyZW5jaCIsIlNwYW5pc2giLCJKYXBhbmVzZSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW5nbGlzaCJ9CiAgICAgICAgICAgIC5kaXJlY3Rpb249JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJhZGlvZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBGb3JtIEludGVncmF0aW9uIn0gLnN1YnRpdGxlPSR7IldvcmtzIHNlYW1sZXNzbHkgd2l0aCBkZWVzLWZvcm0ifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHsiUHJvZHVjdCBOYW1lIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsicHJvZHVjdE5hbWUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJQcm9kdWN0IENhdGVnb3J5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVsZWN0cm9uaWNzIiwiQ2xvdGhpbmciLCJCb29rcyIsIkhvbWUgJiBHYXJkZW4iLCJTcG9ydHMiXX0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsiY2F0ZWdvcnkifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1yYWRpb2dyb3VwCiAgICAgICAgICAgIC5sYWJlbD0keyJDb25kaXRpb24ifQogICAgICAgICAgICAub3B0aW9ucz0ke1siTmV3IiwiTGlrZSBOZXciLCJHb29kIiwiRmFpciIsIlBvb3IiXX0KICAgICAgICAgICAgLmRpcmVjdGlvbj0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmtleT0keyJjb25kaXRpb24ifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTmV3In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcmFkaW9ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiU2hpcHBpbmcgU3BlZWQifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJTdGFuZGFyZCAoNS03IGRheXMpIixrZXk6InN0YW5kYXJkIixwYXlsb2FkOntkYXlzOjcscHJpY2U6MH19LHtvcHRpb246IkV4cHJlc3MgKDItMyBkYXlzKSIsa2V5OiJleHByZXNzIixwYXlsb2FkOntkYXlzOjMscHJpY2U6MTB9fSx7b3B0aW9uOiJPdmVybmlnaHQiLGtleToib3Zlcm5pZ2h0IixwYXlsb2FkOntkYXlzOjEscHJpY2U6MjV9fV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJzdGFuZGFyZCJ9CiAgICAgICAgICAgIC5rZXk9JHsic2hpcHBpbmcifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD0keyJTdWJtaXQgUHJvZHVjdCJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIHViLGJjLCROLElOPXAoKCk9Pnt4ZSgpO00xKCk7UnNyKCk7SmUoKTt1Yj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGJjPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSwkTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtcmFkaW9ncm91cCIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooKV0sZD1baih7dHlwZTpTdHJpbmd9KV0seD1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSx1Yih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJvcHRpb25zImluIGssZ2V0Oms9Pmsub3B0aW9ucyxzZXQ6KGssTyk9PntrLm9wdGlvbnM9T319LG1ldGFkYXRhOnd9LG8scyksdWIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZE9wdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNlbGVjdGVkT3B0aW9uImluIGssZ2V0Oms9Pmsuc2VsZWN0ZWRPcHRpb24sc2V0OihrLE8pPT57ay5zZWxlY3RlZE9wdGlvbj1PfX0sbWV0YWRhdGE6d30sYyx1KSx1Yih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpcmVjdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImRpcmVjdGlvbiJpbiBrLGdldDprPT5rLmRpcmVjdGlvbixzZXQ6KGssTyk9PntrLmRpcmVjdGlvbj1PfX0sbWV0YWRhdGE6d30saCxmKSx1Yih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InZhbGlkYXRpb25TdGF0ZSJpbiBrLGdldDprPT5rLnZhbGlkYXRpb25TdGF0ZSxzZXQ6KGssTyk9PntrLnZhbGlkYXRpb25TdGF0ZT1PfX0sbWV0YWRhdGE6d30sdixiKSx1YihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp3fSxudWxsLHIpLHk9aT10LnZhbHVlLHcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6d30pfXN0YXRpYyBkZW1vPU9zcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9YmModGhpcyxvLFtdKTtnZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLiNlfXNldCBvcHRpb25zKHcpe3RoaXMuI2U9d30jdD0oYmModGhpcyxzKSxiYyh0aGlzLGMsIiIpKTtnZXQgc2VsZWN0ZWRPcHRpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRPcHRpb24odyl7dGhpcy4jdD13fSNyPShiYyh0aGlzLHUpLGJjKHRoaXMsaCwidmVydGljYWwiKSk7Z2V0IGRpcmVjdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBkaXJlY3Rpb24odyl7dGhpcy4jcj13fSNpPShiYyh0aGlzLGYpLGJjKHRoaXMsdixudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNpfXNldCB2YWxpZGF0aW9uU3RhdGUodyl7dGhpcy4jaT13fWdldCB2YWx1ZSgpe2xldCB3PXRoaXMuZ2V0T3B0aW9uQnlLZXkodGhpcy5zZWxlY3RlZE9wdGlvbik7cmV0dXJuIHR5cGVvZiB3PT0ib2JqZWN0IiYmdy5wYXlsb2FkIT09dm9pZCAwP3cucGF5bG9hZDp0aGlzLnNlbGVjdGVkT3B0aW9ufXNldCB2YWx1ZSh3KXtpZih0eXBlb2Ygdz09InN0cmluZyIpdGhpcy5zZWxlY3RlZE9wdGlvbj13O2Vsc2V7bGV0IGs9dGhpcy5vcHRpb25zLmZpbmQoTz0+dHlwZW9mIE89PSJvYmplY3QiJiZPLnBheWxvYWQ9PT13KTtrJiZ0eXBlb2Ygaz09Im9iamVjdCImJih0aGlzLnNlbGVjdGVkT3B0aW9uPWsua2V5KX19c3RhdGljIHN0eWxlcz1bRGUsLi4ub3QuYmFzZVN0eWxlcyxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lci5ob3Jpem9udGFsIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIuaG9yaXpvbnRhbCAucmFkaW8tb3B0aW9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMjBweCA2cHggMDsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tbGFiZWwgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5yYWRpby1jaXJjbGUgewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTUgMjAuMiUgNjUuMSUpIiwiaHNsKDIxNSAyMC4yJSAzNS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDIxNSAzMCUgNi44JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAucmFkaW8tb3B0aW9uLnNlbGVjdGVkIC5yYWRpby1jaXJjbGUgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIiwiaHNsKDIxMy4xIDkzLjklIDY3LjglKSIpfTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLW9wdGlvbi5zZWxlY3RlZCAucmFkaW8tY2lyY2xlOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgfQoKICAgICAgLnJhZGlvLWNpcmNsZTpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDMwJSAzLjklKSIpfSwKICAgICAgICAgICAgICAgICAgICAwIDAgMCA0cHggJHttLmJkVGhlbWUoImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICB9CgogICAgICAucmFkaW8tbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjE3LjkgMTAuNiUgNzQuOSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDA2ZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgIH0KCiAgICAgIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnJhZGlvLW9wdGlvbjpob3ZlciAucmFkaW8tY2lyY2xlIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDIwLjIlIDY1LjElKSIsImhzbCgyMTUgMjAuMiUgMzUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMzAlIDYuOCUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAucmFkaW8tb3B0aW9uOmhvdmVyIC5yYWRpby1sYWJlbCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5sYWJlbC10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNmVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24tdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDAzZW07CiAgICAgIH0KCiAgICAgIC8qIFZhbGlkYXRpb24gc3R5bGVzICovCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9ImludmFsaWQiXSkgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgMzAuNiUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWxpZGF0aW9uU3RhdGU9InZhbGlkIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIsImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIil9OwogICAgICB9CgogICAgICA6aG9zdChbdmFsaWRhdGlvblN0YXRlPSJ3YXJuIl0pIC5yYWRpby1vcHRpb24uc2VsZWN0ZWQgLnJhZGlvLWNpcmNsZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIE92ZXJyaWRlIGJhc2UgZ3JpZCBsYXlvdXQgZm9yIHJhZGlvZ3JvdXAgdG8gcHJldmVudCBsYXJnZSBnYXBzICovCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0ibGVmdCJdKSAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFtsYWJlbC1wb3NpdGlvbj0icmlnaHQiXSkgLmlucHV0LXdyYXBwZXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgJHt0aGlzLmxhYmVsP0NgPGRpdiBjbGFzcz0ibGFiZWwtdGV4dCI+JHt0aGlzLmxhYmVsfTwvZGl2PmA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciAke3RoaXMuZGlyZWN0aW9ufSI+CiAgICAgICAgICAke3RoaXMub3B0aW9ucy5tYXAodz0+e2xldCBrPXRoaXMuZ2V0T3B0aW9uS2V5KHcpLE89dGhpcy5nZXRPcHRpb25MYWJlbCh3KSx6PXRoaXMuc2VsZWN0ZWRPcHRpb249PT1rO3JldHVybiBDYAogICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICBjbGFzcz0icmFkaW8tb3B0aW9uICR7ej8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RPcHRpb24oayl9IgogICAgICAgICAgICAgICAgQGtleWRvd249IiR7TT0+dGhpcy5oYW5kbGVLZXlkb3duKE0sayl9IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyYWRpby1jaXJjbGUiIAogICAgICAgICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgICAgICAgcm9sZT0icmFkaW8iCiAgICAgICAgICAgICAgICAgIGFyaWEtY2hlY2tlZD0iJHt6fSIKICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iJHtPfSIKICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGlvLWxhYmVsIj4ke099PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9KX0KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/Q2A8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbi10ZXh0Ij4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWdldE9wdGlvbktleSh3KXtyZXR1cm4gdHlwZW9mIHc9PSJzdHJpbmciP3c6dy5rZXl9Z2V0T3B0aW9uTGFiZWwodyl7cmV0dXJuIHR5cGVvZiB3PT0ic3RyaW5nIj93Oncub3B0aW9ufWdldE9wdGlvbkJ5S2V5KHcpe3JldHVybiB0aGlzLm9wdGlvbnMuZmluZChrPT50aGlzLmdldE9wdGlvbktleShrKT09PXcpfXNlbGVjdE9wdGlvbih3KXtpZih0aGlzLmRpc2FibGVkKXJldHVybjtsZXQgaz10aGlzLnNlbGVjdGVkT3B0aW9uO3RoaXMuc2VsZWN0ZWRPcHRpb249dyxrIT09dyYmKHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpbnB1dCIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZSh3KXt0aGlzLnZhbHVlPXd9YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmIXRoaXMuc2VsZWN0ZWRPcHRpb24/KHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMSk6KHRoaXMudmFsaWRhdGlvblN0YXRlPSJ2YWxpZCIsITApfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKCF0aGlzLnNlbGVjdGVkT3B0aW9uJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPjAmJiF0aGlzLnJlcXVpcmVkKXtsZXQgdz10aGlzLm9wdGlvbnNbMF07dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLmdldE9wdGlvbktleSh3KX19aGFuZGxlS2V5ZG93bih3LGspe3RoaXMuZGlzYWJsZWR8fCh3LmtleT09PSIgInx8dy5rZXk9PT0iRW50ZXIiPyh3LnByZXZlbnREZWZhdWx0KCksdGhpcy5zZWxlY3RPcHRpb24oaykpOncua2V5PT09IkFycm93RG93biJ8fHcua2V5PT09IkFycm93UmlnaHQiPyh3LnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c05leHRPcHRpb24oKSk6KHcua2V5PT09IkFycm93VXAifHx3LmtleT09PSJBcnJvd0xlZnQiKSYmKHcucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzUHJldmlvdXNPcHRpb24oKSkpfWZvY3VzTmV4dE9wdGlvbigpe2xldCB3PUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksTz0ody5maW5kSW5kZXgoej0+ej09PXRoaXMuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50KSsxKSV3Lmxlbmd0aDt3W09dLmZvY3VzKCl9Zm9jdXNQcmV2aW91c09wdGlvbigpe2xldCB3PUFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi5yYWRpby1jaXJjbGUiKSksaz13LmZpbmRJbmRleCh6PT56PT09dGhpcy5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQpLE89azw9MD93Lmxlbmd0aC0xOmstMTt3W09dLmZvY3VzKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGJjKHRoaXMsYil9c3RhdGlje2JjKGkscil9fTtyZXR1cm4geT1pfSkoKX0pO3ZhciBCc3IsSHNyPXAoKCk9Pnt4ZSgpO0Jzcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDI0cHg7CiAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICB9CiAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiBoMyB7CiAgICAgIG1hcmdpbjogMCAwIDhweCAwOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAjODg4OwogICAgfQogICAgLmRlbW8tcm93IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAxMnB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+QmFzaWMgVXNhZ2U8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+U3VibWl0IEZvcm08L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgdGV4dD0iV2l0aCBUZXh0IFByb3BlcnR5Ij48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPldpdGggSWNvbnMgKGluaGVyaXRlZCBmcm9tIERlZXNCdXR0b24pPC9oMz4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTpzZW5kIj5TdWJtaXQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNhdmUiIGljb25Qb3NpdGlvbj0ibGVmdCI+U2F2ZSBGb3JtPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IGljb249Imx1Y2lkZTphcnJvdy1yaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkJ1dHRvbiBUeXBlczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJoaWdobGlnaHRlZCIgaWNvbj0ibHVjaWRlOnNlbmQiPkhpZ2hsaWdodGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHR5cGU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCB0eXBlPSJkaXNjcmVldCIgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2NyZWV0PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TaXplczwvaDM+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tcm93Ij4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJzbWFsbCIgaWNvbj0ibHVjaWRlOnNlbmQiPlNtYWxsPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IHNpemU9Im5vcm1hbCIgaWNvbj0ibHVjaWRlOnNlbmQiPk5vcm1hbDwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzaXplPSJsYXJnZSIgaWNvbj0ibHVjaWRlOnNlbmQiPkxhcmdlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5TdGF0ZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJub3JtYWwiIGljb249Imx1Y2lkZTpzZW5kIj5Ob3JtYWw8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgc3RhdHVzPSJwZW5kaW5nIiBpY29uPSJsdWNpZGU6c2VuZCI+UGVuZGluZzwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9InN1Y2Nlc3MiIGljb249Imx1Y2lkZTpjaGVjayI+U3VjY2VzczwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCBzdGF0dXM9ImVycm9yIiBpY29uPSJsdWNpZGU6eCI+RXJyb3I8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgZGlzYWJsZWQgaWNvbj0ibHVjaWRlOnNlbmQiPkRpc2FibGVkPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5JbiBhIEZvcm0gQ29udGV4dDwvaDM+CiAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTmFtZSIga2V5PSJuYW1lIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgaWNvbj0ibHVjaWRlOnNlbmQiIHR5cGU9ImhpZ2hsaWdodGVkIj5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgPC9kZWVzLWZvcm0+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBGNCxLYSxQTixPZD1wKCgpPT57SHNyKCk7eGUoKTtKZSgpO0Y0PWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sS2E9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFBOPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1mb3JtLXN1Ym1pdCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdO3ZhciBSPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOlN0cmluZ30pXSx4PVtqKHt0eXBlOlN0cmluZyxyZWZsZWN0OiEwfSldLHk9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sTz1baih7dHlwZTpTdHJpbmd9KV0sRj1baih7dHlwZTpTdHJpbmd9KV0sRjQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImRpc2FibGVkImluIFMsZ2V0OlM9PlMuZGlzYWJsZWQsc2V0OihTLCQpPT57Uy5kaXNhYmxlZD0kfX0sbWV0YWRhdGE6X30sbyxzKSxGNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ0ZXh0ImluIFMsZ2V0OlM9PlMudGV4dCxzZXQ6KFMsJCk9PntTLnRleHQ9JH19LG1ldGFkYXRhOl99LGMsdSksRjQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJzdGF0dXMiaW4gUyxnZXQ6Uz0+Uy5zdGF0dXMsc2V0OihTLCQpPT57Uy5zdGF0dXM9JH19LG1ldGFkYXRhOl99LGgsZiksRjQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4idHlwZSJpbiBTLGdldDpTPT5TLnR5cGUsc2V0OihTLCQpPT57Uy50eXBlPSR9fSxtZXRhZGF0YTpffSx2LGIpLEY0KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InNpemUiaW4gUyxnZXQ6Uz0+Uy5zaXplLHNldDooUywkKT0+e1Muc2l6ZT0kfX0sbWV0YWRhdGE6X30sdyxrKSxGNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJpY29uImluIFMsZ2V0OlM9PlMuaWNvbixzZXQ6KFMsJCk9PntTLmljb249JH19LG1ldGFkYXRhOl99LHosTSksRjQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpY29uUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJpY29uUG9zaXRpb24iaW4gUyxnZXQ6Uz0+Uy5pY29uUG9zaXRpb24sc2V0OihTLCQpPT57Uy5pY29uUG9zaXRpb249JH19LG1ldGFkYXRhOl99LEQsTiksRjQobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxyKSxSPWk9dC52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1Cc3I7c3RhdGljIGRlbW9Hcm91cHM9WyJGb3JtIiwiQnV0dG9uIl07I2U9S2EodGhpcyxvLCExKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZGlzYWJsZWQoXyl7dGhpcy4jZT1ffSN0PShLYSh0aGlzLHMpLEthKHRoaXMsYyx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KF8pe3RoaXMuI3Q9X30jcj0oS2EodGhpcyx1KSxLYSh0aGlzLGgsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHN0YXR1cyhfKXt0aGlzLiNyPV99I2k9KEthKHRoaXMsZiksS2EodGhpcyx2LCJkZWZhdWx0IikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHR5cGUoXyl7dGhpcy4jaT1ffSNhPShLYSh0aGlzLGIpLEthKHRoaXMsdywiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNhfXNldCBzaXplKF8pe3RoaXMuI2E9X30jbj0oS2EodGhpcyxrKSxLYSh0aGlzLHosdm9pZCAwKSk7Z2V0IGljb24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgaWNvbihfKXt0aGlzLiNuPV99I289KEthKHRoaXMsTSksS2EodGhpcyxELCJsZWZ0IikpO2dldCBpY29uUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jb31zZXQgaWNvblBvc2l0aW9uKF8pe3RoaXMuI289X31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksS2EodGhpcyxOKX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KICAgICAgZGVlcy1idXR0b24gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgLnN0YXR1cz0ke3RoaXMuc3RhdHVzfQogICAgICAgIC50eXBlPSR7dGhpcy50eXBlfQogICAgICAgIC5zaXplPSR7dGhpcy5zaXplfQogICAgICAgIC5pY29uPSR7dGhpcy5pY29ufQogICAgICAgIC5pY29uUG9zaXRpb249JHt0aGlzLmljb25Qb3NpdGlvbn0KICAgICAgICAudGV4dD0ke3RoaXMudGV4dH0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgIEBjbGlja2VkPSR7dGhpcy5zdWJtaXR9CiAgICAgID4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGVlcy1idXR0b24+CiAgICBgfWFzeW5jIHN1Ym1pdCgpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCBfPXRoaXMuY2xvc2VzdCgiZGVlcy1mb3JtIik7XyYmXy5nYXRoZXJBbmREaXNwYXRjaCYmXy5nYXRoZXJBbmREaXNwYXRjaCgpfWFzeW5jIGZvY3VzKCl7bGV0IF89YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7dGhpcy5kaXNhYmxlZHx8KGF3YWl0IF8uY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLnN1Ym1pdCgpKX1zdGF0aWN7S2EoaSxyKX19O3JldHVybiBSPWl9KSgpfSk7dmFyIHFzcixqc3I9cCgoKT0+e3hlKCk7cDEoKTtPaSgpO2loKCk7T2QoKTtxc3I9KCk9PkNgCiAgPHN0eWxlPgogICAgJHtvZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25bbGFiZWw9IlNlbGVjdCBDb3VudHJ5Il0nKSxyPWUucXVlcnlTZWxlY3RvcignZGVlcy1pbnB1dC1kcm9wZG93bltsYWJlbD0iU2VsZWN0IFJvbGUiXScpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLGk9Pntjb25zb2xlLmxvZygiQ291bnRyeSBzZWxlY3RlZDoiLGkuZGV0YWlsKX0pLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0ZWRPcHRpb24iLGk9Pntjb25zb2xlLmxvZygiUm9sZSBzZWxlY3RlZDoiLGkuZGV0YWlsKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBCYXNpYyBEcm9wZG93bnMifSAuc3VidGl0bGU9JHsiU3RhbmRhcmQgZHJvcGRvd24gd2l0aCBzZWFyY2ggZnVuY3Rpb25hbGl0eSBhbmQgdmFyaW91cyBvcHRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlNlbGVjdCBDb3VudHJ5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiVW5pdGVkIFN0YXRlcyIsa2V5OiJ1cyJ9LHtvcHRpb246IkNhbmFkYSIsa2V5OiJjYSJ9LHtvcHRpb246Ikdlcm1hbnkiLGtleToiZGUifSx7b3B0aW9uOiJGcmFuY2UiLGtleToiZnIifSx7b3B0aW9uOiJVbml0ZWQgS2luZ2RvbSIsa2V5OiJ1ayJ9LHtvcHRpb246IkF1c3RyYWxpYSIsa2V5OiJhdSJ9LHtvcHRpb246IkphcGFuIixrZXk6ImpwIn0se29wdGlvbjoiQnJhemlsIixrZXk6ImJyIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgoKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUm9sZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkFkbWluaXN0cmF0b3IiLGtleToiYWRtaW4ifSx7b3B0aW9uOiJFZGl0b3IiLGtleToiZWRpdG9yIn0se29wdGlvbjoiVmlld2VyIixrZXk6InZpZXdlciJ9LHtvcHRpb246Ikd1ZXN0IixrZXk6Imd1ZXN0In1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LWRyb3Bkb3duIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIscj0+e2NvbnNvbGUubG9nKGBQcmlvcml0eSBjaGFuZ2VkIHRvOiAke3IuZGV0YWlsLm9wdGlvbn1gKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIyLiBXaXRob3V0IFNlYXJjaCJ9IC5zdWJ0aXRsZT0keyJEcm9wZG93biB3aXRoIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGRpc2FibGVkIGZvciBzaW1wbGVyIHNlbGVjdGlvbiJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiUHJpb3JpdHkgTGV2ZWwifQogICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiSGlnaCIsa2V5OiJoaWdoIn0se29wdGlvbjoiTWVkaXVtIixrZXk6Im1lZGl1bSJ9LHtvcHRpb246IkxvdyIsa2V5OiJsb3cifV19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJNZWRpdW0iLGtleToibWVkaXVtIn19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57ZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LWRyb3Bkb3duIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RlZE9wdGlvbiIsaT0+e2xldCBhPXIuZ2V0QXR0cmlidXRlKCJsYWJlbCIpO2NvbnNvbGUubG9nKGAke2F9OiAke2kuZGV0YWlsLm9wdGlvbn1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIEhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7Ik11bHRpcGxlIGRyb3Bkb3ducyBpbiBhIGhvcml6b250YWwgbGF5b3V0IGZvciBjb21wYWN0IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiRGVwYXJ0bWVudCJ9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJFbmdpbmVlcmluZyIsa2V5OiJlbmcifSx7b3B0aW9uOiJEZXNpZ24iLGtleToiZGVzaWduIn0se29wdGlvbjoiTWFya2V0aW5nIixrZXk6Im1hcmtldGluZyJ9LHtvcHRpb246IlNhbGVzIixrZXk6InNhbGVzIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlRlYW0gU2l6ZSJ9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IjEtNSIsa2V5OiJzbWFsbCJ9LHtvcHRpb246IjYtMjAiLGtleToibWVkaXVtIn0se29wdGlvbjoiMjEtNTAiLGtleToibGFyZ2UifSx7b3B0aW9uOiI1MCsiLGtleToieGxhcmdlIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IkxvY2F0aW9uIn0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlJlbW90ZSIsa2V5OiJyZW1vdGUifSx7b3B0aW9uOiJPbi1zaXRlIixrZXk6Im9uc2l0ZSJ9LHtvcHRpb246Ikh5YnJpZCIsa2V5OiJoeWJyaWQifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd25bcmVxdWlyZWRdIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2NvbnNvbGUubG9nKCJSZXF1aXJlZCBkcm9wZG93biBsb3N0IGZvY3VzIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIEZpZWxkIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246Ik9wdGlvbiBBIixrZXk6ImEifSx7b3B0aW9uOiJPcHRpb24gQiIsa2V5OiJiIn0se29wdGlvbjoiT3B0aW9uIEMiLGtleToiYyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIERyb3Bkb3duIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkNhbm5vdCBTZWxlY3QiLGtleToiZGlzYWJsZWQifV19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3tvcHRpb246IkNhbm5vdCBTZWxlY3QiLGtleToiZGlzYWJsZWQifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRpdiBjbGFzcz0ic3BhY2VyIj4KICAgICAgKFNwYWNlciB0byB0ZXN0IGRyb3Bkb3duIHBvc2l0aW9uaW5nKQogICAgPC9kaXY+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixyPT57Y29uc29sZS5sb2coIkJvdHRvbSBkcm9wZG93biBzZWxlY3RlZDoiLHIuZGV0YWlsKX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBCb3R0b20gUG9zaXRpb25pbmcifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gdGhhdCBvcGVucyB1cHdhcmQgd2hlbiBuZWFyIGJvdHRvbSBvZiB2aWV3cG9ydCJ9PgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiT3BlbnMgVXB3YXJkIn0KICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IkZpcnN0IE9wdGlvbiIsa2V5OiJmaXJzdCJ9LHtvcHRpb246IlNlY29uZCBPcHRpb24iLGtleToic2Vjb25kIn0se29wdGlvbjoiVGhpcmQgT3B0aW9uIixrZXk6InRoaXJkIn0se29wdGlvbjoiRm91cnRoIE9wdGlvbiIsa2V5OiJmb3VydGgifSx7b3B0aW9uOiJGaWZ0aCBPcHRpb24iLGtleToiZmlmdGgifV19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZHJvcGRvd24iKSxyPWUucXVlcnlTZWxlY3RvcigiI3NlbGVjdGlvbi1vdXRwdXQiKTt0JiZyJiYoci5pbm5lckhUTUw9IjxlbT5TZWxlY3QgYSBwcm9kdWN0IHRvIHNlZSBkZXRhaWxzLi4uPC9lbT4iLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57aS5kZXRhaWwudmFsdWUmJihyLmlubmVySFRNTD1gCiAgICAgICAgICAgICAgPHN0cm9uZz5TZWxlY3RlZDo8L3N0cm9uZz4gJHtpLmRldGFpbC52YWx1ZS5vcHRpb259PGJyPgogICAgICAgICAgICAgIDxzdHJvbmc+S2V5Ojwvc3Ryb25nPiAke2kuZGV0YWlsLnZhbHVlLmtleX08YnI+CiAgICAgICAgICAgICAgPHN0cm9uZz5QcmljZTo8L3N0cm9uZz4gJCR7aS5kZXRhaWwudmFsdWUucGF5bG9hZD8ucHJpY2V8fCJOL0EifTxicj4KICAgICAgICAgICAgICA8c3Ryb25nPkZlYXR1cmVzOjwvc3Ryb25nPiAke2kuZGV0YWlsLnZhbHVlLnBheWxvYWQ/LmZlYXR1cmVzPy5qb2luKCIsICIpfHwiTi9BIn0KICAgICAgICAgICAgYCl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIEV2ZW50IEhhbmRsaW5nICYgUGF5bG9hZCJ9IC5zdWJ0aXRsZT0keyJEcm9wZG93biB3aXRoIHBheWxvYWQgZGF0YSBhbmQgY2hhbmdlIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJTZWxlY3QgUHJvZHVjdCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJCYXNpYyBQbGFuIixrZXk6ImJhc2ljIixwYXlsb2FkOntwcmljZTo5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIl19fSx7b3B0aW9uOiJQcm8gUGxhbiIsa2V5OiJwcm8iLHBheWxvYWQ6e3ByaWNlOjE5Ljk5LGZlYXR1cmVzOlsiRmVhdHVyZSBBIiwiRmVhdHVyZSBCIl19fSx7b3B0aW9uOiJFbnRlcnByaXNlIFBsYW4iLGtleToiZW50ZXJwcmlzZSIscGF5bG9hZDp7cHJpY2U6NDkuOTksZmVhdHVyZXM6WyJGZWF0dXJlIEEiLCJGZWF0dXJlIEIiLCJGZWF0dXJlIEMiXX19XX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InNlbGVjdGlvbi1vdXRwdXQiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOyBib3JkZXItcmFkaXVzOiA0cHg7IGZvbnQtc2l6ZTogMTRweDsiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikscj1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJwcm9qZWN0VHlwZSJdJyksaT1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtZHJvcGRvd25ba2V5PSJmcmFtZXdvcmsiXScpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLGE9Pntjb25zb2xlLmxvZygiRm9ybSBzdWJtaXR0ZWQgd2l0aCBkYXRhOiIsYS5kZXRhaWwuZGF0YSl9KSxyJiZpJiZyLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGVkT3B0aW9uIixhPT57bGV0IG49YS5kZXRhaWwua2V5O2NvbnNvbGUubG9nKGBQcm9qZWN0IHR5cGUgY2hhbmdlZCB0bzogJHtufWApfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiRHJvcGRvd24gd29ya2luZyB3aXRoaW4gYSBmb3JtIHdpdGggdmFsaWRhdGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBUeXBlIn0KICAgICAgICAgICAgLmtleT0keyJwcm9qZWN0VHlwZSJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJXZWIgQXBwbGljYXRpb24iLGtleToid2ViIn0se29wdGlvbjoiTW9iaWxlIEFwcGxpY2F0aW9uIixrZXk6Im1vYmlsZSJ9LHtvcHRpb246IkRlc2t0b3AgQXBwbGljYXRpb24iLGtleToiZGVza3RvcCJ9LHtvcHRpb246IkFQSSBTZXJ2aWNlIixrZXk6ImFwaSJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIC5sYWJlbD0keyJEZXZlbG9wbWVudCBGcmFtZXdvcmsifQogICAgICAgICAgICAua2V5PSR7ImZyYW1ld29yayJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJSZWFjdCIsa2V5OiJyZWFjdCIscGF5bG9hZDp7dHlwZToid2ViIn19LHtvcHRpb246IlZ1ZS5qcyIsa2V5OiJ2dWUiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJBbmd1bGFyIixrZXk6ImFuZ3VsYXIiLHBheWxvYWQ6e3R5cGU6IndlYiJ9fSx7b3B0aW9uOiJSZWFjdCBOYXRpdmUiLGtleToicmVhY3QtbmF0aXZlIixwYXlsb2FkOnt0eXBlOiJtb2JpbGUifX0se29wdGlvbjoiRmx1dHRlciIsa2V5OiJmbHV0dGVyIixwYXlsb2FkOnt0eXBlOiJtb2JpbGUifX0se29wdGlvbjoiRWxlY3Ryb24iLGtleToiZWxlY3Ryb24iLHBheWxvYWQ6e3R5cGU6ImRlc2t0b3AifX1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQgLnRleHQ9JHsiQ3JlYXRlIFByb2plY3QifT48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICA8L2Rpdj4KYH0pO3ZhciB2YyxLaSxOTixGTj1wKCgpPT57eGUoKTtLdCgpO2pzcigpO00xKCk7UWEoKTtKZSgpO3ZjPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sS2k9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LE5OPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC1kcm9wZG93biIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdO3ZhciAkPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKCldLGw9W2ooKV0sZD1baih7dHlwZTpCb29sZWFufSldLHg9W2ZlKCldLHk9W2ZlKCldLE89W2ZlKCldLEY9W2ZlKCldLFI9W2ZlKCldLHZjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+Im9wdGlvbnMiaW4gRSxnZXQ6RT0+RS5vcHRpb25zLHNldDooRSxxKT0+e0Uub3B0aW9ucz1xfX0sbWV0YWRhdGE6VH0sbyxzKSx2Yyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4ic2VsZWN0ZWRPcHRpb24iaW4gRSxnZXQ6RT0+RS5zZWxlY3RlZE9wdGlvbixzZXQ6KEUscSk9PntFLnNlbGVjdGVkT3B0aW9uPXF9fSxtZXRhZGF0YTpUfSxjLHUpLHZjKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZW5hYmxlU2VhcmNoIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4iZW5hYmxlU2VhcmNoImluIEUsZ2V0OkU9PkUuZW5hYmxlU2VhcmNoLHNldDooRSxxKT0+e0UuZW5hYmxlU2VhcmNoPXF9fSxtZXRhZGF0YTpUfSxoLGYpLHZjKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbnNUb1RvcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+Im9wZW5zVG9Ub3AiaW4gRSxnZXQ6RT0+RS5vcGVuc1RvVG9wLHNldDooRSxxKT0+e0Uub3BlbnNUb1RvcD1xfX0sbWV0YWRhdGE6VH0sdixiKSx2Yyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlcmVkT3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+ImZpbHRlcmVkT3B0aW9ucyJpbiBFLGdldDpFPT5FLmZpbHRlcmVkT3B0aW9ucyxzZXQ6KEUscSk9PntFLmZpbHRlcmVkT3B0aW9ucz1xfX0sbWV0YWRhdGE6VH0sdyxrKSx2Yyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodGVkSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJoaWdobGlnaHRlZEluZGV4ImluIEUsZ2V0OkU9PkUuaGlnaGxpZ2h0ZWRJbmRleCxzZXQ6KEUscSk9PntFLmhpZ2hsaWdodGVkSW5kZXg9cX19LG1ldGFkYXRhOlR9LHosTSksdmModGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc09wZW5lZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+ImlzT3BlbmVkImluIEUsZ2V0OkU9PkUuaXNPcGVuZWQsc2V0OihFLHEpPT57RS5pc09wZW5lZD1xfX0sbWV0YWRhdGE6VH0sRCxOKSx2Yyh0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4ic2VhcmNoVmFsdWUiaW4gRSxnZXQ6RT0+RS5zZWFyY2hWYWx1ZSxzZXQ6KEUscSk9PntFLnNlYXJjaFZhbHVlPXF9fSxtZXRhZGF0YTpUfSxfLFMpLHZjKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOlR9LG51bGwsciksJD1pPXQudmFsdWUsVCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpUfSl9c3RhdGljIGRlbW89cXNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1LaSh0aGlzLG8sW10pO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9wdGlvbnMoVCl7dGhpcy4jZT1UfSN0PShLaSh0aGlzLHMpLEtpKHRoaXMsYyxudWxsKSk7Z2V0IHNlbGVjdGVkT3B0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkT3B0aW9uKFQpe3RoaXMuI3Q9VH1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbn1zZXQgdmFsdWUoVCl7dGhpcy5zZWxlY3RlZE9wdGlvbj1UfSNyPShLaSh0aGlzLHUpLEtpKHRoaXMsaCwhMCkpO2dldCBlbmFibGVTZWFyY2goKXtyZXR1cm4gdGhpcy4jcn1zZXQgZW5hYmxlU2VhcmNoKFQpe3RoaXMuI3I9VH0jaT0oS2kodGhpcyxmKSxLaSh0aGlzLHYsITEpKTtnZXQgb3BlbnNUb1RvcCgpe3JldHVybiB0aGlzLiNpfXNldCBvcGVuc1RvVG9wKFQpe3RoaXMuI2k9VH0jYT0oS2kodGhpcyxiKSxLaSh0aGlzLHcsW10pKTtnZXQgZmlsdGVyZWRPcHRpb25zKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGZpbHRlcmVkT3B0aW9ucyhUKXt0aGlzLiNhPVR9I249KEtpKHRoaXMsayksS2kodGhpcyx6LDApKTtnZXQgaGlnaGxpZ2h0ZWRJbmRleCgpe3JldHVybiB0aGlzLiNufXNldCBoaWdobGlnaHRlZEluZGV4KFQpe3RoaXMuI249VH0jbz0oS2kodGhpcyxNKSxLaSh0aGlzLEQsITEpKTtnZXQgaXNPcGVuZWQoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNPcGVuZWQoVCl7dGhpcy4jbz1UfSNzPShLaSh0aGlzLE4pLEtpKHRoaXMsXywiIikpO2dldCBzZWFyY2hWYWx1ZSgpe3JldHVybiB0aGlzLiNzfXNldCBzZWFyY2hWYWx1ZShUKXt0aGlzLiNzPVR9c3RhdGljIHN0eWxlcz1bRGUsLi4ub3QuYmFzZVN0eWxlcyxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveCB7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBsaW5lLWhlaWdodDogMzhweDsKICAgICAgICBwYWRkaW5nOiAwIDQwcHggMCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlbGVjdGVkQm94OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveDpmb2N1cy12aXNpYmxlIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveC5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC8qIERyb3Bkb3duIGFycm93ICovCiAgICAgIC5zZWxlY3RlZEJveDo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5zZWxlY3RlZEJveC5vcGVuOjphZnRlciB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgxODBkZWcpOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94IHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHNjYWxlKDAuOTgpOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggaHNsKDAgMCUgMCUgLyAwLjEpLCAwIDJweCA0cHggLTJweCBoc2woMCAwJSAwJSAvIDAuMSk7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIHotaW5kZXg6IDUwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5zZWxlY3Rpb25Cb3gudG9wIHsKICAgICAgICBib3R0b206IGNhbGMoMTAwJSArIDRweCk7CiAgICAgICAgdG9wOiBhdXRvOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAuc2VsZWN0aW9uQm94LmJvdHRvbSB7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICB9CgogICAgICAuc2VsZWN0aW9uQm94LnNob3cgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC8qIE9wdGlvbnMgY29udGFpbmVyICovCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgIH0KCiAgICAgIC8qIE9wdGlvbnMgKi8KICAgICAgLm9wdGlvbiB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbjogMnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAub3B0aW9uLmhpZ2hsaWdodGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICAub3B0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLyogTm8gb3B0aW9ucyBtZXNzYWdlICovCiAgICAgIC5uby1vcHRpb25zIHsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC8qIFNlYXJjaCAqLwogICAgICAuc2VhcmNoIHsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc2VhcmNoLmJvdHRvbSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQogICAgICAKICAgICAgLnNlYXJjaCBpbnB1dCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuc2VhcmNoIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2ggaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICB9CgogICAgICAvKiBTY3JvbGxiYXIgc3R5bGluZyAqLwogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAub3B0aW9ucy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLm9wdGlvbnMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIH0KCiAgICAgIC5vcHRpb25zLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJzZWxlY3RlZEJveCAke3RoaXMuaXNPcGVuZWQ/Im9wZW4iOiIifSAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+IXRoaXMuZGlzYWJsZWQmJnRoaXMudG9nZ2xlU2VsZWN0aW9uQm94KCl9IgogICAgICAgICAgICB0YWJpbmRleD0iJHt0aGlzLmRpc2FibGVkPyItMSI6IjAifSIKICAgICAgICAgICAgQGtleWRvd249IiR7dGhpcy5oYW5kbGVTZWxlY3RlZEJveEtleWRvd259IgogICAgICAgICAgPgogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWRPcHRpb24/Lm9wdGlvbnx8IlNlbGVjdCBhbiBvcHRpb24ifQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3Rpb25Cb3ggJHt0aGlzLmlzT3BlbmVkPyJzaG93IjoiIn0gJHt0aGlzLm9wZW5zVG9Ub3A/InRvcCI6ImJvdHRvbSJ9Ij4KICAgICAgICAgICAgJHt0aGlzLmVuYWJsZVNlYXJjaD9DYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2giPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiIAogICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNlYXJjaCBvcHRpb25zLi4uIiAKICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZT0iJHt0aGlzLnNlYXJjaFZhbHVlfSIKICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0iJHt0aGlzLmhhbmRsZVNlYXJjaH0iCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7VD0+VC5zdG9wUHJvcGFnYXRpb24oKX0iCiAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bj0iJHt0aGlzLmhhbmRsZVNlYXJjaEtleWRvd259IgogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvcHRpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgJHt0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGg9PT0wP0NgPGRpdiBjbGFzcz0ibm8tb3B0aW9ucyI+Tm8gb3B0aW9ucyBmb3VuZDwvZGl2PmA6dGhpcy5maWx0ZXJlZE9wdGlvbnMubWFwKChULEUpPT57bGV0IHE9dGhpcy5oaWdobGlnaHRlZEluZGV4PT09RTtyZXR1cm4gQ2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im9wdGlvbiAke3E/ImhpZ2hsaWdodGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy51cGRhdGVTZWxlY3Rpb24oVCl9IgogICAgICAgICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0iJHsoKT0+dGhpcy5oaWdobGlnaHRlZEluZGV4PUV9IgogICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAke1Qub3B0aW9ufQogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlPXRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlLmJpbmQodGhpcyl9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zZWxlY3RlZE9wdGlvbj10aGlzLnNlbGVjdGVkT3B0aW9ufHxudWxsLHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9uc311cGRhdGVkKFQpe3N1cGVyLnVwZGF0ZWQoVCksVC5oYXMoIm9wdGlvbnMiKSYmKHRoaXMuZmlsdGVyZWRPcHRpb25zPXRoaXMub3B0aW9ucyl9YXN5bmMgdXBkYXRlU2VsZWN0aW9uKFQpe3RoaXMuc2VsZWN0ZWRPcHRpb249VCx0aGlzLmlzT3BlbmVkPSExLHRoaXMuc2VhcmNoVmFsdWU9IiIsdGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD0wLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlbGVjdGVkT3B0aW9uIix7ZGV0YWlsOlQsYnViYmxlczohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1oYW5kbGVDbGlja091dHNpZGU9KEtpKHRoaXMsUyksVD0+e1QuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXModGhpcyl8fCh0aGlzLmlzT3BlbmVkPSExLHRoaXMuc2VhcmNoVmFsdWU9IiIsdGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSkpfSk7YXN5bmMgdG9nZ2xlU2VsZWN0aW9uQm94KCl7aWYodGhpcy5pc09wZW5lZD0hdGhpcy5pc09wZW5lZCx0aGlzLmlzT3BlbmVkKXtsZXQgRT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkQm94IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscT13aW5kb3cuaW5uZXJIZWlnaHQtRS5ib3R0b20sQj1FLnRvcDt0aGlzLm9wZW5zVG9Ub3A9cTwzMDAmJkI+cSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBHPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoIGlucHV0Iik7RyYmRy5mb2N1cygpLHNldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5oYW5kbGVDbGlja091dHNpZGUpfSwwKX1lbHNlIHRoaXMuc2VhcmNoVmFsdWU9IiIsdGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSl9aGFuZGxlU2VhcmNoKFQpe2xldCBFPVQudGFyZ2V0LnZhbHVlO3RoaXMuc2VhcmNoVmFsdWU9RTtsZXQgcT1FLnRvTG93ZXJDYXNlKCk7dGhpcy5maWx0ZXJlZE9wdGlvbnM9dGhpcy5vcHRpb25zLmZpbHRlcihCPT5CLm9wdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpKSx0aGlzLmhpZ2hsaWdodGVkSW5kZXg9MH1oYW5kbGVLZXlEb3duKFQpe2xldCBFPVQua2V5LHE9dGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoLTE7RT09PSJBcnJvd0Rvd24iPyhULnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZEluZGV4PXRoaXMuaGlnaGxpZ2h0ZWRJbmRleCsxPnE/MDp0aGlzLmhpZ2hsaWdodGVkSW5kZXgrMSk6RT09PSJBcnJvd1VwIj8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGlnaGxpZ2h0ZWRJbmRleD10aGlzLmhpZ2hsaWdodGVkSW5kZXgtMTwwP3E6dGhpcy5oaWdobGlnaHRlZEluZGV4LTEpOkU9PT0iRW50ZXIiPyhULnByZXZlbnREZWZhdWx0KCksdGhpcy5maWx0ZXJlZE9wdGlvbnNbdGhpcy5oaWdobGlnaHRlZEluZGV4XSYmdGhpcy51cGRhdGVTZWxlY3Rpb24odGhpcy5maWx0ZXJlZE9wdGlvbnNbdGhpcy5oaWdobGlnaHRlZEluZGV4XSkpOkU9PT0iRXNjYXBlIiYmKFQucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkPSExKX1oYW5kbGVTZWFyY2hLZXlkb3duKFQpeyhULmtleT09PSJBcnJvd0Rvd24ifHxULmtleT09PSJBcnJvd1VwInx8VC5rZXk9PT0iRW50ZXIiKSYmdGhpcy5oYW5kbGVLZXlEb3duKFQpfWhhbmRsZVNlbGVjdGVkQm94S2V5ZG93bihUKXt0aGlzLmRpc2FibGVkfHwoVC5rZXk9PT0iRW50ZXIifHxULmtleT09PSIgIj8oVC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlU2VsZWN0aW9uQm94KCkpOlQua2V5PT09IkFycm93RG93biJ8fFQua2V5PT09IkFycm93VXAiPyhULnByZXZlbnREZWZhdWx0KCksdGhpcy5pc09wZW5lZHx8dGhpcy50b2dnbGVTZWxlY3Rpb25Cb3goKSk6VC5rZXk9PT0iRXNjYXBlIiYmKFQucHJldmVudERlZmF1bHQoKSx0aGlzLmlzT3BlbmVkJiYodGhpcy5pc09wZW5lZD0hMSkpKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ufXNldFZhbHVlKFQpe3RoaXMuc2VsZWN0ZWRPcHRpb249VH1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKX1zdGF0aWN7S2koaSxyKX19O3JldHVybiAkPWl9KSgpfSk7dmFyIFZzcixVc3I9cCgoKT0+e3hlKCk7YjZlKCk7T2koKTtWc3I9KCk9PkNgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgICR7b2VgCiAgICAgICAgLmRlbW8tc2hlbGwgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMTYwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CgogICAgICAgIC5kZW1vLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CgogICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkgewogICAgICAgICAgLmRlbW8tZ3JpZC0tdHdvIHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc3RhY2sgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE4cHg7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxNSAyMCUgMjYlKSIpfTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEzIDEwMCUgOTclKSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMjUlIDMyJSkiLCJoc2woMjE1IDIwJSA4MiUpIil9OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTU7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1ub3RlIHN0cm9uZyB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDQ1JSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2hlbGwiPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJNb2Rlcm4gZmlsZSB1cGxvYWRlciJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlNoYWRjbi1pbnNwaXJlZCBsYXlvdXQgd2l0aCBkcmFnICYgZHJvcCwgcHJldmlld3MgYW5kIHZhbGlkYXRpb24ifQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1ncmlkIGRlbW8tZ3JpZC0tdHdvIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc3RhY2siPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkF0dGFjaG1lbnRzIn0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXBsb2FkIHN1cHBvcnRpbmcgZG9jdW1lbnRzIGZvciB5b3VyIHJlcXVlc3QifQogICAgICAgICAgICAgIC5hY2NlcHQ9JHsiaW1hZ2UvKiwucGRmLC56aXAifQogICAgICAgICAgICAgIC5tYXhTaXplPSR7MTAqMTAyNCoxMDI0fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWZpbGV1cGxvYWQ+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkJyYW5kIGFzc2V0cyJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlVwbG9hZCBoaWdoLXJlc29sdXRpb24gaW1hZ2VyeSAoSlBHL1BORykifQogICAgICAgICAgICAgIC5hY2NlcHQ9JHsiaW1hZ2UvanBlZyxpbWFnZS9wbmcifQogICAgICAgICAgICAgIC5tdWx0aXBsZT0keyExfQogICAgICAgICAgICAgIC5tYXhTaXplPSR7NSoxMDI0KjEwMjR9CiAgICAgICAgICAgICAgLmJ1dHRvblRleHQ9JHsiU2VsZWN0IGNvdmVyIGltYWdlIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1zdGFjayI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAubGFiZWw9JHsiQXVkaW8gdXBsb2FkcyJ9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlNoYXJlIHBvZGNhc3QgZHJhZnRzIChNUDMvV0FWLCBtYXggMjVNQiBlYWNoKSJ9CiAgICAgICAgICAgICAgLmFjY2VwdD0keyJhdWRpby8qIn0KICAgICAgICAgICAgICAubWF4U2l6ZT0kezI1KjEwMjQqMTAyNH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtZmlsZXVwbG9hZAogICAgICAgICAgICAgIC5sYWJlbD0keyJEaXNhYmxlZCBleGFtcGxlIn0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXBsb2FkZXIgaXMgZGlzYWJsZWQgd2hpbGUgbW9kZXJhdGlvbiBpcyBwZW5kaW5nIn0KICAgICAgICAgICAgICAuZGlzYWJsZWQ9JHshMH0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkZvcm0gaW50ZWdyYXRpb24ifQogICAgICAgIC5zdWJ0aXRsZT0keyJDb21iaW5lIGZpbGUgdXBsb2FkcyB3aXRoIHRoZSByZXN0IG9mIHRoZSBERUVTIGZvcm0gZWNvc3lzdGVtIn0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXN0YWNrIj4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBuYW1lIn0KICAgICAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJIb3cgc2hvdWxkIHdlIHJlZmVyIHRvIHRoaXMgcHJvamVjdCBpbnRlcm5hbGx5PyJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicHJvamVjdE5hbWUifQogICAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KCiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAgICAgLmxhYmVsPSR7IkNvbnRhY3QgZW1haWwifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJlbWFpbCJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5rZXk9JHsiY29udGFjdEVtYWlsIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAgICAgIC5sYWJlbD0keyJTdGF0ZW1lbnQgb2Ygd29yayJ9CiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVXBsb2FkIGEgc2lnbmVkIHN0YXRlbWVudCBvZiB3b3JrIChQREYsIG1heCAxNU1CKSJ9CiAgICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiYXBwbGljYXRpb24vcGRmIn0KICAgICAgICAgICAgICAgIC5tYXhTaXplPSR7MTUqMTAyNCoxMDI0fQogICAgICAgICAgICAgICAgLm11bHRpcGxlPSR7ITF9CiAgICAgICAgICAgICAgICAua2V5PSR7InNvdyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1maWxldXBsb2FkCiAgICAgICAgICAgICAgICAubGFiZWw9JHsiQ3JlYXRpdmUgcmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiT3B0aW9uYWwuIFVwbG9hZCB1cCB0byBmaXZlIHZpc3VhbCByZWZlcmVuY2VzIn0KICAgICAgICAgICAgICAgIC5hY2NlcHQ9JHsiaW1hZ2UvKiJ9CiAgICAgICAgICAgICAgICAubWF4RmlsZXM9JHs1fQogICAgICAgICAgICAgICAgLm1heFNpemU9JHs4KjEwMjQqMTAyNH0KICAgICAgICAgICAgICAgIC5rZXk9JHsicmVmZXJlbmNlcyJ9CiAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgoKICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgICAgICAubGFiZWw9JHsiTm90ZXMifQogICAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBvcHRpb25hbCBjb250ZXh0IGZvciByZXZpZXdlcnMifQogICAgICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgICAgICAua2V5PSR7Im5vdGVzIn0KICAgICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlN1Ym1pdCBicmllZmluZyJ9PjwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLW5vdGUiPgogICAgICAgICAgICA8c3Ryb25nPkdvb2QgdG8ga25vdzo8L3N0cm9uZz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5EcmFnICYgZHJvcCBoaWdobGlnaHRzIHRoZSBkcm9wem9uZSBhbmQgc3VwcG9ydHMga2V5Ym9hcmQgYWN0aXZhdGlvbi48L2xpPgogICAgICAgICAgICAgIDxsaT5BY2NlcHRlZCBmaWxlIHR5cGVzIGFyZSBzdW1tYXJpc2VkIGF1dG9tYXRpY2FsbHkgZnJvbSB0aGUgPGNvZGU+YWNjZXB0PC9jb2RlPiBhdHRyaWJ1dGUuPC9saT4KICAgICAgICAgICAgICA8bGk+SW1hZ2UgdXBsb2FkcyBzaG93IGxpdmUgcHJldmlld3MgZ2VuZXJhdGVkIHZpYSA8Y29kZT5VUkwuY3JlYXRlT2JqZWN0VVJMPC9jb2RlPi48L2xpPgogICAgICAgICAgICAgIDxsaT5GaWxlIHNpemUgYW5kIGZpbGUtY291bnQgbGltaXRzIHN1cmZhY2UgaW5saW5lIHZhbGlkYXRpb24gbWVzc2FnZXMuPC9saT4KICAgICAgICAgICAgICA8bGk+VGhlIGNvbXBvbmVudCBzdGF5cyBjb21wYXRpYmxlIHdpdGggPGNvZGU+ZGVlcy1mb3JtPC9jb2RlPiB2YWx1ZSBhY2Nlc3NvcnMuPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgV3NyLEdzcj1wKCgpPT57eGUoKTtNMSgpO1dzcj1bbS5kZWZhdWx0U3R5bGVzLC4uLm90LmJhc2VTdHlsZXMsb2VgCiAgICA6aG9zdCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CgoKICAgIC5pbnB1dC13cmFwcGVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgfQoKICAgIC5kcm9wem9uZSB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgcGFkZGluZzogMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgYm9yZGVyOiAxLjVweCBkYXNoZWQgJHttLmJkVGhlbWUoImhzbCgyMTUgMTYlIDgwJSkiLCJoc2woMjE3IDIwJSAyNSUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9OwogICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2U7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICAuZHJvcHpvbmU6Zm9jdXMtdmlzaWJsZSB7CiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxMiUpIil9LAogICAgICAgIDAgMCAwIDRweCAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlIC8gMC41KSIsImhzbCgyMTMgOTMlIDY4JSAvIDAuNCkiKX07CiAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC5kcm9wem9uZS0tYWN0aXZlIHsKICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4ICR7bS5iZFRoZW1lKCJyZ2JhKDE1LCAyMywgNDIsIDAuMTIpIiwicmdiYSgwLCAwLCAwLCAwLjM1KSIpfTsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSAvIDAuMDYpIiwiaHNsKDIxMyA5MyUgNjglIC8gMC4xMikiKX07CiAgICB9CgogICAgLmRyb3B6b25lLS1oYXMtZmlsZXMgewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTklKSIsImhzbCgyMTUgMjAlIDExJSkiKX07CiAgICB9CgogICAgLmRyb3B6b25lLS1kaXNhYmxlZCB7CiAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICB9CgogICAgLmRyb3B6b25lX19ib2R5IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAxNnB4OwogICAgfQoKICAgIC5kcm9wem9uZV9faWNvbiB7CiAgICAgIHdpZHRoOiA0OHB4OwogICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlIC8gMC4xMikiLCJoc2woMjEzIDkzJSA2OCUgLyAwLjEyKSIpfTsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAuZHJvcHpvbmVfX2ljb24gZGVlcy1pY29uIHsKICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgfQoKICAgIC5kcm9wem9uZV9fbG9hZGVyIHsKICAgICAgd2lkdGg6IDIwcHg7CiAgICAgIGhlaWdodDogMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDE1LCAyMywgNDIsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICBhbmltYXRpb246IGxvYWRlci1zcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIC5kcm9wem9uZV9fY29udGVudCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogNHB4OwogICAgICBtaW4td2lkdGg6IDA7CiAgICB9CgogICAgLmRyb3B6b25lX19oZWFkbGluZSB7CiAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIyIDQ3JSAxMSUpIiwiaHNsKDIxMCAyMCUgOTYlKSIpfTsKICAgIH0KCiAgICAuZHJvcHpvbmVfX3N1YmxpbmUgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDYlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICB9CgogICAgLmRyb3B6b25lX19icm93c2UgewogICAgICBhcHBlYXJhbmNlOiBub25lOwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgIHBhZGRpbmc6IDA7CiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgfQoKICAgIC5kcm9wem9uZV9fYnJvd3NlOmhvdmVyIHsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICB9CgogICAgLmRyb3B6b25lX19icm93c2U6ZGlzYWJsZWQgewogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICBvcGFjaXR5OiAwLjY7CiAgICB9CgogICAgLmRyb3B6b25lX19tZXRhIHsKICAgICAgbWFyZ2luLXRvcDogMTRweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBnYXA6IDhweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMTYlIDUwJSkiLCJoc2woMjE1IDE2JSA3MiUpIil9OwogICAgfQoKICAgIC5kcm9wem9uZV9fbWV0YSBzcGFuIHsKICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgOTUlKSIsImhzbCgyMTMgOTMlIDE4JSkiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxMyA5MyUgMjQlKSIpfTsKICAgIH0KCiAgICAuZmlsZS1saXN0IHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAxMnB4OwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICBwYWRkaW5nLXRvcDogMjBweDsKICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA5MCUpIiwiaHNsKDIxMyA5MyUgMjQlKSIpfTsKICAgIH0KCiAgICAuZmlsZS1saXN0X19oZWFkZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNjglKSIpfTsKICAgIH0KCiAgICAuZmlsZS1saXN0X19jbGVhciB7CiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CgogICAgLmZpbGUtbGlzdF9fY2xlYXI6aG92ZXIgewogICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgIH0KCiAgICAuZmlsZS1saXN0X19pdGVtcyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTJweDsKICAgIH0KCiAgICAuZmlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDEycHg7CiAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUgLyAwLjUpIiwiaHNsKDIxNSAyMCUgMTYlIC8gMC41KSIpfTsKICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTMgMjclIDkyJSkiLCJoc2woMjE3IDI1JSAyNiUpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgIH0KCiAgICAuZmlsZS1yb3c6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuOCkiLCJoc2woMjE1IDIwJSAxNiUgLyAwLjgpIil9OwogICAgfQoKICAgIC5maWxlLXRodW1iIHsKICAgICAgd2lkdGg6IDM2cHg7CiAgICAgIGhlaWdodDogMzZweDsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMzIlIDE4JSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAuZmlsZS10aHVtYiBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB3aWR0aDogMThweDsKICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgoKICAgIC50aHVtYi1pbWFnZSB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgfQoKICAgIC5maWxlLW1ldGEgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDRweDsKICAgICAgbWluLXdpZHRoOiAwOwogICAgfQoKICAgIC5maWxlLW5hbWUgewogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMiA0NyUgMTElKSIsImhzbCgyMTAgMjAlIDk2JSkiKX07CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgfQoKICAgIC5maWxlLWRldGFpbHMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDYlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICB9CgogICAgLmZpbGUtc2l6ZSB7CiAgICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7CiAgICB9CgogICAgLmZpbGUtdHlwZSB7CiAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMzIlIDI4JSkiKX07CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDYlKSIsImhzbCgyMTUgMTYlIDcwJSkiKX07CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgfQoKICAgIC5maWxlLWFjdGlvbnMgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBnYXA6IDhweDsKICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICB9CgogICAgLnJlbW92ZS1idXR0b24gewogICAgICB3aWR0aDogMjhweDsKICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNTIlKSIsImhzbCgyMTUgMTYlIDY4JSkiKX07CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgNzIlIDUwJSAvIDAuMDgpIiwiaHNsKDAgNjIlIDMyJSAvIDAuMTUpIil9OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyJSA0NiUpIiwiaHNsKDAgNzAlIDcwJSkiKX07CiAgICB9CgogICAgLnJlbW92ZS1idXR0b246YWN0aXZlIHsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTsKICAgIH0KCiAgICAucmVtb3ZlLWJ1dHRvbiBkZWVzLWljb24gewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDE0cHg7CiAgICAgIGhlaWdodDogMTRweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgZmxleC1zaHJpbms6IDA7CiAgICB9CgogICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCA3MiUgNDAlKSIsImhzbCgwIDcwJSA2OCUpIil9OwogICAgICBsaW5lLWhlaWdodDogMS41OwogICAgfQoKICAgIEBrZXlmcmFtZXMgbG9hZGVyLXNwaW4gewogICAgICB0byB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgfQogICAgfQogIGBdfSk7dmFyIHJsLGtpLE9OLGI2ZT1wKCgpPT57TTEoKTtVc3IoKTtHc3IoKTtvcigpO2VoKCk7eGUoKTtybD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGtpPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxPTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdO3ZhciBxPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgQj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHthdHRyaWJ1dGU6ITF9KV0sbD1bZmUoKV0sZD1bZmUoKV0seD1baih7dHlwZTpTdHJpbmd9KV0seT1baih7dHlwZTpTdHJpbmd9KV0sTz1baih7dHlwZTpCb29sZWFufSldLEY9W2ooe3R5cGU6TnVtYmVyfSldLFI9W2ooe3R5cGU6TnVtYmVyfSldLCQ9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scmwodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+InZhbHVlImluIEcsZ2V0Okc9PkcudmFsdWUsc2V0OihHLGVlKT0+e0cudmFsdWU9ZWV9fSxtZXRhZGF0YTpCfSxvLHMpLHJsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkc9PiJzdGF0ZSJpbiBHLGdldDpHPT5HLnN0YXRlLHNldDooRyxlZSk9PntHLnN0YXRlPWVlfX0sbWV0YWRhdGE6Qn0sYyx1KSxybCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+ImlzTG9hZGluZyJpbiBHLGdldDpHPT5HLmlzTG9hZGluZyxzZXQ6KEcsZWUpPT57Ry5pc0xvYWRpbmc9ZWV9fSxtZXRhZGF0YTpCfSxoLGYpLHJsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYnV0dG9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+ImJ1dHRvblRleHQiaW4gRyxnZXQ6Rz0+Ry5idXR0b25UZXh0LHNldDooRyxlZSk9PntHLmJ1dHRvblRleHQ9ZWV9fSxtZXRhZGF0YTpCfSx2LGIpLHJsKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNjZXB0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpHPT4iYWNjZXB0ImluIEcsZ2V0Okc9PkcuYWNjZXB0LHNldDooRyxlZSk9PntHLmFjY2VwdD1lZX19LG1ldGFkYXRhOkJ9LHcsaykscmwodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtdWx0aXBsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+Im11bHRpcGxlImluIEcsZ2V0Okc9PkcubXVsdGlwbGUsc2V0OihHLGVlKT0+e0cubXVsdGlwbGU9ZWV9fSxtZXRhZGF0YTpCfSx6LE0pLHJsKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+Im1heFNpemUiaW4gRyxnZXQ6Rz0+Ry5tYXhTaXplLHNldDooRyxlZSk9PntHLm1heFNpemU9ZWV9fSxtZXRhZGF0YTpCfSxELE4pLHJsKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4RmlsZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkc9PiJtYXhGaWxlcyJpbiBHLGdldDpHPT5HLm1heEZpbGVzLHNldDooRyxlZSk9PntHLm1heEZpbGVzPWVlfX0sbWV0YWRhdGE6Qn0sXyxTKSxybCh0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25TdGF0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+InZhbGlkYXRpb25TdGF0ZSJpbiBHLGdldDpHPT5HLnZhbGlkYXRpb25TdGF0ZSxzZXQ6KEcsZWUpPT57Ry52YWxpZGF0aW9uU3RhdGU9ZWV9fSxtZXRhZGF0YTpCfSxULEUpLHJsKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkJ9LG51bGwscikscT1pPXQudmFsdWUsQiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpCfSl9c3RhdGljIGRlbW89VnNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1raSh0aGlzLG8sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShCKXt0aGlzLiNlPUJ9I3Q9KGtpKHRoaXMscyksa2kodGhpcyxjLCJpZGxlIikpO2dldCBzdGF0ZSgpe3JldHVybiB0aGlzLiN0fXNldCBzdGF0ZShCKXt0aGlzLiN0PUJ9I3I9KGtpKHRoaXMsdSksa2kodGhpcyxoLCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNyfXNldCBpc0xvYWRpbmcoQil7dGhpcy4jcj1CfSNpPShraSh0aGlzLGYpLGtpKHRoaXMsdiwiU2VsZWN0IGZpbGVzIikpO2dldCBidXR0b25UZXh0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IGJ1dHRvblRleHQoQil7dGhpcy4jaT1CfSNhPShraSh0aGlzLGIpLGtpKHRoaXMsdywiIikpO2dldCBhY2NlcHQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYWNjZXB0KEIpe3RoaXMuI2E9Qn0jbj0oa2kodGhpcyxrKSxraSh0aGlzLHosITApKTtnZXQgbXVsdGlwbGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgbXVsdGlwbGUoQil7dGhpcy4jbj1CfSNvPShraSh0aGlzLE0pLGtpKHRoaXMsRCwwKSk7Z2V0IG1heFNpemUoKXtyZXR1cm4gdGhpcy4jb31zZXQgbWF4U2l6ZShCKXt0aGlzLiNvPUJ9I3M9KGtpKHRoaXMsTiksa2kodGhpcyxfLDApKTtnZXQgbWF4RmlsZXMoKXtyZXR1cm4gdGhpcy4jc31zZXQgbWF4RmlsZXMoQil7dGhpcy4jcz1CfSNsPShraSh0aGlzLFMpLGtpKHRoaXMsVCxudWxsKSk7Z2V0IHZhbGlkYXRpb25TdGF0ZSgpe3JldHVybiB0aGlzLiNsfXNldCB2YWxpZGF0aW9uU3RhdGUoQil7dGhpcy4jbD1CfSNjPShraSh0aGlzLEUpLCIiKTtnZXQgdmFsaWRhdGlvbk1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jY31zZXQgdmFsaWRhdGlvbk1lc3NhZ2UoQil7dGhpcy4jYz1CfXByZXZpZXdVcmxNYXA9bmV3IFdlYWtNYXA7ZHJvcEFyZWE9bnVsbDtzdGF0aWMgc3R5bGVzPVdzcjtyZW5kZXIoKXtsZXQgQj10aGlzLmdldEFjY2VwdGVkU3VtbWFyeSgpLEc9W3RoaXMubXVsdGlwbGU/Ik11bHRpcGxlIGZpbGVzIHN1cHBvcnRlZCI6IlNpbmdsZSBmaWxlIG9ubHkiLHRoaXMubWF4U2l6ZT4wP2BNYXggJHt0aGlzLmZvcm1hdEZpbGVTaXplKHRoaXMubWF4U2l6ZSl9YDoiTm8gc2l6ZSBsaW1pdCJdO3JldHVybiBCJiZHLnB1c2goYEFjY2VwdHMgJHtCfWApLENgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkZWVzLWxhYmVsCiAgICAgICAgICAubGFiZWw9JHt0aGlzLmxhYmVsfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgPjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iZHJvcHpvbmUgJHt0aGlzLnN0YXRlPT09ImRyYWdPdmVyIj8iZHJvcHpvbmUtLWFjdGl2ZSI6IiJ9ICR7dGhpcy5kaXNhYmxlZD8iZHJvcHpvbmUtLWRpc2FibGVkIjoiIn0gJHt0aGlzLnZhbHVlLmxlbmd0aD4wPyJkcm9wem9uZS0taGFzLWZpbGVzIjoiIn0iCiAgICAgICAgICByb2xlPSJidXR0b24iCiAgICAgICAgICB0YWJpbmRleD0ke3RoaXMuZGlzYWJsZWQ/LTE6MH0KICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgYXJpYS1sYWJlbD0ke2BTZWxlY3QgZmlsZXMke0I/YCAoJHtCfSlgOiIifWB9CiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZURyb3B6b25lQ2xpY2t9CiAgICAgICAgICBAa2V5ZG93bj0ke3RoaXMuaGFuZGxlRHJvcHpvbmVLZXlkb3dufQogICAgICAgID4KICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICBjbGFzcz0iZmlsZS1pbnB1dCIKICAgICAgICAgICAgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyB0b3A6IDA7IGxlZnQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IgogICAgICAgICAgICB0eXBlPSJmaWxlIgogICAgICAgICAgICA/bXVsdGlwbGU9JHt0aGlzLm11bHRpcGxlfQogICAgICAgICAgICBhY2NlcHQ9JHt0aGlzLmFjY2VwdHx8IiJ9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVJbnB1dENoYW5nZX0KICAgICAgICAgICAgdGFiaW5kZXg9Ii0xIgogICAgICAgICAgLz4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3B6b25lX19ib2R5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJvcHpvbmVfX2ljb24iPgogICAgICAgICAgICAgICR7dGhpcy5pc0xvYWRpbmc/Q2A8c3BhbiBjbGFzcz0iZHJvcHpvbmVfX2xvYWRlciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj5gOkNgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Rm9sZGVyT3BlbiI+PC9kZWVzLWljb24+YH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3B6b25lX19jb250ZW50Ij4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZHJvcHpvbmVfX2hlYWRsaW5lIj4ke3RoaXMuYnV0dG9uVGV4dHx8IlNlbGVjdCBmaWxlcyJ9PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkcm9wem9uZV9fc3VibGluZSI+CiAgICAgICAgICAgICAgICBEcmFnIGFuZCBkcm9wIGZpbGVzIGhlcmUgb3IKICAgICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgICAgdHlwZT0iYnV0dG9uIgogICAgICAgICAgICAgICAgICBjbGFzcz0iZHJvcHpvbmVfX2Jyb3dzZSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVCcm93c2VDbGlja30KICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgYnJvd3NlCiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkcm9wem9uZV9fbWV0YSI+CiAgICAgICAgICAgICR7Ry5tYXAoZWU9PkNgPHNwYW4+JHtlZX08L3NwYW4+YCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7dGhpcy5yZW5kZXJGaWxlTGlzdCgpfQogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uTWVzc2FnZT9DYDxkaXYgY2xhc3M9InZhbGlkYXRpb24tbWVzc2FnZSIgYXJpYS1saXZlPSJwb2xpdGUiPiR7dGhpcy52YWxpZGF0aW9uTWVzc2FnZX08L2Rpdj5gOkNgYH0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbGVMaXN0KCl7cmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoPT09MD9DYGA6Q2AKICAgICAgPGRpdiBjbGFzcz0iZmlsZS1saXN0Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWxpc3RfX2hlYWRlciI+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMudmFsdWUubGVuZ3RofSBmaWxlJHt0aGlzLnZhbHVlLmxlbmd0aD09PTE/IiI6InMifSBzZWxlY3RlZDwvc3Bhbj4KICAgICAgICAgICR7dGhpcy52YWx1ZS5sZW5ndGg+MD9DYDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZmlsZS1saXN0X19jbGVhciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDbGVhckFsbH0+Q2xlYXIgJHt0aGlzLnZhbHVlLmxlbmd0aD4xPyJhbGwiOiIifTwvYnV0dG9uPmA6Q2BgfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbGlzdF9faXRlbXMiPgogICAgICAgICAgJHt0aGlzLnZhbHVlLm1hcChCPT50aGlzLnJlbmRlckZpbGVSb3coQikpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRmlsZVJvdyhCKXtsZXQgRz10aGlzLmdldEZpbGVUeXBlKEIpLGVlPXRoaXMuY2FuU2hvd1ByZXZpZXcoQik/dGhpcy5nZXRQcmV2aWV3VXJsKEIpOm51bGw7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9ImZpbGUtcm93ICR7R30tZmlsZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS10aHVtYiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgJHtlZT9DYDxpbWcgY2xhc3M9InRodW1iLWltYWdlIiBzcmM9JHtlZX0gYWx0PSR7YFByZXZpZXcgb2YgJHtCLm5hbWV9YH0+YDpDYDxkZWVzLWljb24gaWNvbj0ke3RoaXMuZ2V0RmlsZUljb24oQil9PjwvZGVlcy1pY29uPmB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1tZXRhIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtbmFtZSIgdGl0bGU9JHtCLm5hbWV9PiR7Qi5uYW1lfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1kZXRhaWxzIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+JHt0aGlzLmZvcm1hdEZpbGVTaXplKEIuc2l6ZSl9PC9zcGFuPgogICAgICAgICAgICAke0chPT0iZmlsZSI/Q2A8c3BhbiBjbGFzcz0iZmlsZS10eXBlIj4ke0d9PC9zcGFuPmA6Q2BgfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1hY3Rpb25zIj4KICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgdHlwZT0iYnV0dG9uIgogICAgICAgICAgICBjbGFzcz0icmVtb3ZlLWJ1dHRvbiIKICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlRmlsZShCKX0KICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2BSZW1vdmUgJHtCLm5hbWV9YH0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6WCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUZpbGVJbnB1dENoYW5nZT1hc3luYyBCPT57dGhpcy5pc0xvYWRpbmc9ITE7bGV0IEc9Qi50YXJnZXQsZWU9QXJyYXkuZnJvbShHLmZpbGVzPz9bXSk7ZWUubGVuZ3RoPjAmJmF3YWl0IHRoaXMuYWRkRmlsZXMoZWUpLEcudmFsdWU9IiJ9O2hhbmRsZURyb3B6b25lQ2xpY2s9Qj0+e3RoaXMuZGlzYWJsZWR8fEIudGFyZ2V0LmNsb3Nlc3QoIi5kcm9wem9uZV9fYnJvd3NlLCAuZmlsZS1saXN0Iil8fHRoaXMub3BlbkZpbGVTZWxlY3RvcigpfTtoYW5kbGVCcm93c2VDbGljaz1CPT57dGhpcy5kaXNhYmxlZHx8KEIuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5vcGVuRmlsZVNlbGVjdG9yKCkpfTtoYW5kbGVEcm9wem9uZUtleWRvd249Qj0+e3RoaXMuZGlzYWJsZWR8fChCLmtleT09PSJFbnRlciJ8fEIua2V5PT09IiAiKSYmKEIucHJldmVudERlZmF1bHQoKSx0aGlzLm9wZW5GaWxlU2VsZWN0b3IoKSl9O2hhbmRsZUNsZWFyQWxsPUI9PntCLnByZXZlbnREZWZhdWx0KCksdGhpcy5jbGVhckFsbCgpfTtoYW5kbGVEcmFnRXZlbnQ9YXN5bmMgQj0+e2lmKEIucHJldmVudERlZmF1bHQoKSxCLnN0b3BQcm9wYWdhdGlvbigpLCF0aGlzLmRpc2FibGVkKXtpZihCLnR5cGU9PT0iZHJhZ2VudGVyInx8Qi50eXBlPT09ImRyYWdvdmVyIil7Qi5kYXRhVHJhbnNmZXImJihCLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJjb3B5IiksdGhpcy5zdGF0ZT0iZHJhZ092ZXIiO3JldHVybn1pZihCLnR5cGU9PT0iZHJhZ2xlYXZlIil7aWYoIXRoaXMuZHJvcEFyZWEpe3RoaXMuc3RhdGU9ImlkbGUiO3JldHVybn1sZXQgRz10aGlzLmRyb3BBcmVhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHtjbGllbnRYOmVlPTAsY2xpZW50WTpQPTB9PUI7KGVlPD1HLmxlZnR8fGVlPj1HLnJpZ2h0fHxQPD1HLnRvcHx8UD49Ry5ib3R0b20pJiYodGhpcy5zdGF0ZT0iaWRsZSIpO3JldHVybn1pZihCLnR5cGU9PT0iZHJvcCIpe3RoaXMuc3RhdGU9ImlkbGUiO2xldCBHPUFycmF5LmZyb20oQi5kYXRhVHJhbnNmZXI/LmZpbGVzPz9bXSk7Ry5sZW5ndGg+MCYmYXdhaXQgdGhpcy5hZGRGaWxlcyhHKX19fTthdHRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKEI9Pnt0aGlzLmRyb3BBcmVhLmFkZEV2ZW50TGlzdGVuZXIoQix0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1kZXRhY2hEcm9wTGlzdGVuZXJzKCl7dGhpcy5kcm9wQXJlYSYmWyJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyb3AiXS5mb3JFYWNoKEI9Pnt0aGlzLmRyb3BBcmVhLnJlbW92ZUV2ZW50TGlzdGVuZXIoQix0aGlzLmhhbmRsZURyYWdFdmVudCl9KX1yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl7bGV0IEI9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZHJvcHpvbmUiKTtCIT09dGhpcy5kcm9wQXJlYSYmKHRoaXMuZGV0YWNoRHJvcExpc3RlbmVycygpLHRoaXMuZHJvcEFyZWE9Qix0aGlzLmF0dGFjaERyb3BMaXN0ZW5lcnMoKSl9Zm9ybWF0RmlsZVNpemUoQil7bGV0IEc9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdO2lmKEI9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgZWU9TWF0aC5taW4oTWF0aC5mbG9vcihNYXRoLmxvZyhCKS9NYXRoLmxvZygxMDI0KSksRy5sZW5ndGgtMSksUD1CL01hdGgucG93KDEwMjQsZWUpO3JldHVybmAke01hdGgucm91bmQoUCoxMDApLzEwMH0gJHtHW2VlXX1gfWdldEZpbGVUeXBlKEIpe2xldCBHPUIudHlwZS50b0xvd2VyQ2FzZSgpO3JldHVybiBHLnN0YXJ0c1dpdGgoImltYWdlLyIpPyJpbWFnZSI6Rz09PSJhcHBsaWNhdGlvbi9wZGYiPyJwZGYiOkcuaW5jbHVkZXMoIndvcmQiKXx8Ry5pbmNsdWRlcygiZG9jdW1lbnQiKT8iZG9jIjpHLmluY2x1ZGVzKCJzaGVldCIpfHxHLmluY2x1ZGVzKCJleGNlbCIpPyJzcHJlYWRzaGVldCI6Ry5pbmNsdWRlcygicHJlc2VudGF0aW9uIil8fEcuaW5jbHVkZXMoInBvd2VycG9pbnQiKT8icHJlc2VudGF0aW9uIjpHLnN0YXJ0c1dpdGgoInZpZGVvLyIpPyJ2aWRlbyI6Ry5zdGFydHNXaXRoKCJhdWRpby8iKT8iYXVkaW8iOkcuaW5jbHVkZXMoInppcCIpfHxHLmluY2x1ZGVzKCJjb21wcmVzc2VkIik/ImFyY2hpdmUiOiJmaWxlIn1nZXRGaWxlSWNvbihCKXtsZXQgRz10aGlzLmdldEZpbGVUeXBlKEIpO3JldHVybntpbWFnZToibHVjaWRlOkZpbGVJbWFnZSIscGRmOiJsdWNpZGU6RmlsZVRleHQiLGRvYzoibHVjaWRlOkZpbGVUZXh0IixzcHJlYWRzaGVldDoibHVjaWRlOkZpbGVTcHJlYWRzaGVldCIscHJlc2VudGF0aW9uOiJsdWNpZGU6RmlsZUJhckNoYXJ0Iix2aWRlbzoibHVjaWRlOkZpbGVWaWRlbyIsYXVkaW86Imx1Y2lkZTpGaWxlQXVkaW8iLGFyY2hpdmU6Imx1Y2lkZTpGaWxlQXJjaGl2ZSIsZmlsZToibHVjaWRlOkZpbGUifVtHXT8/Imx1Y2lkZTpGaWxlIn1jYW5TaG93UHJldmlldyhCKXtyZXR1cm4gQi50eXBlLnN0YXJ0c1dpdGgoImltYWdlLyIpJiZCLnNpemU8NSoxMDI0KjEwMjR9dmFsaWRhdGVGaWxlKEIpe2lmKHRoaXMubWF4U2l6ZT4wJiZCLnNpemU+dGhpcy5tYXhTaXplKXJldHVybiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlPWBGaWxlICIke0IubmFtZX0iIGV4Y2VlZHMgdGhlIG1heGltdW0gc2l6ZSBvZiAke3RoaXMuZm9ybWF0RmlsZVNpemUodGhpcy5tYXhTaXplKX1gLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIiwhMTtpZih0aGlzLmFjY2VwdCl7bGV0IEc9dGhpcy5hY2NlcHQuc3BsaXQoIiwiKS5tYXAoZWU9PmVlLnRyaW0oKSkuZmlsdGVyKGVlPT5lZS5sZW5ndGg+MCk7aWYoRy5sZW5ndGg+MCl7bGV0IGVlPSExO2ZvcihsZXQgUCBvZiBHKWlmKFAuc3RhcnRzV2l0aCgiLiIpKXtpZihCLm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChQLnRvTG93ZXJDYXNlKCkpKXtlZT0hMDticmVha319ZWxzZSBpZihQLmVuZHNXaXRoKCIvKiIpKXtsZXQgZ2U9UC5zbGljZSgwLC0yKTtpZihCLnR5cGUuc3RhcnRzV2l0aChnZSkpe2VlPSEwO2JyZWFrfX1lbHNlIGlmKEIudHlwZT09PVApe2VlPSEwO2JyZWFrfWlmKCFlZSlyZXR1cm4gdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gRmlsZSB0eXBlIG5vdCBhY2NlcHRlZC4gQWxsb3dlZDogJHtHLmpvaW4oIiwgIil9YCx0aGlzLnZhbGlkYXRpb25TdGF0ZT0iaW52YWxpZCIsITF9fXJldHVybiEwfWdldFByZXZpZXdVcmwoQil7bGV0IEc9dGhpcy5wcmV2aWV3VXJsTWFwLmdldChCKTtyZXR1cm4gR3x8KEc9VVJMLmNyZWF0ZU9iamVjdFVSTChCKSx0aGlzLnByZXZpZXdVcmxNYXAuc2V0KEIsRykpLEd9cmVsZWFzZVByZXZpZXcoQil7bGV0IEc9dGhpcy5wcmV2aWV3VXJsTWFwLmdldChCKTtHJiYoVVJMLnJldm9rZU9iamVjdFVSTChHKSx0aGlzLnByZXZpZXdVcmxNYXAuZGVsZXRlKEIpKX1nZXRBY2NlcHRlZFN1bW1hcnkoKXtpZighdGhpcy5hY2NlcHQpcmV0dXJuIG51bGw7bGV0IEI9QXJyYXkuZnJvbShuZXcgU2V0KHRoaXMuYWNjZXB0LnNwbGl0KCIsIikubWFwKEc9PkcudHJpbSgpKS5maWx0ZXIoRz0+Ry5sZW5ndGg+MCkubWFwKEc9PnRoaXMuZm9ybWF0QWNjZXB0VG9rZW4oRykpKSkuZmlsdGVyKEJvb2xlYW4pO3JldHVybiBCLmxlbmd0aD09PTA/bnVsbDpCLmxlbmd0aD09PTE/QlswXTpCLmxlbmd0aD09PTI/YCR7QlswXX0sICR7QlsxXX1gOmAke0Iuc2xpY2UoMCwyKS5qb2luKCIsICIpfVx1MjAyNmB9Zm9ybWF0QWNjZXB0VG9rZW4oQil7aWYoQj09PSIqLyoiKXJldHVybiJBbGwgZmlsZXMiO2lmKEIuZW5kc1dpdGgoIi8qIikpe2xldCBQPUIuc3BsaXQoIi8iKVswXTtyZXR1cm4gUD9gJHtQLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7UC5zbGljZSgxKX0gZmlsZXNgOiJBbGwgZmlsZXMifXJldHVybiBCLnN0YXJ0c1dpdGgoIi4iKT9CLnNsaWNlKDEpLnRvVXBwZXJDYXNlKCk6Qi5pbmNsdWRlcygicGRmIik/IlBERiI6Qi5pbmNsdWRlcygiemlwIik/IlpJUCI6Qi5pbmNsdWRlcygianNvbiIpPyJKU09OIjpCLmluY2x1ZGVzKCJtc3dvcmQiKT8iRE9DIjpCLmluY2x1ZGVzKCJ3b3JkcHJvY2Vzc2luZ21sIik/IkRPQ1giOkIuaW5jbHVkZXMoImV4Y2VsIik/IlhMUyI6Qi5pbmNsdWRlcygicHJlc2VudGF0aW9uIik/IlBQVCI6KEIuc3BsaXQoIi8iKS5wb3AoKT8/QikudG9VcHBlckNhc2UoKX1hdHRhY2hMaWZlY3ljbGVMaXN0ZW5lcnMoKXt0aGlzLnJlYmluZEludGVyYWN0aXZlRWxlbWVudHMoKX1maXJzdFVwZGF0ZWQoQil7c3VwZXIuZmlyc3RVcGRhdGVkKEIpLHRoaXMuYXR0YWNoTGlmZWN5Y2xlTGlzdGVuZXJzKCl9dXBkYXRlZChCKXtzdXBlci51cGRhdGVkKEIpLEIuaGFzKCJ2YWx1ZSIpJiZ0aGlzLnZhbGlkYXRlKCksdGhpcy5yZWJpbmRJbnRlcmFjdGl2ZUVsZW1lbnRzKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt0aGlzLmRldGFjaERyb3BMaXN0ZW5lcnMoKSx0aGlzLnZhbHVlLmZvckVhY2goQj0+dGhpcy5yZWxlYXNlUHJldmlldyhCKSksdGhpcy5wcmV2aWV3VXJsTWFwPW5ldyBXZWFrTWFwLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgb3BlbkZpbGVTZWxlY3Rvcigpe2lmKHRoaXMuZGlzYWJsZWR8fHRoaXMuaXNMb2FkaW5nKXJldHVybjt0aGlzLmlzTG9hZGluZz0hMDtsZXQgQj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLWlucHV0Iik7aWYoIUIpe3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1sZXQgRz0oKT0+e3NldFRpbWVvdXQoKCk9PnsoIUIuZmlsZXN8fEIuZmlsZXMubGVuZ3RoPT09MCkmJih0aGlzLmlzTG9hZGluZz0hMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIixHKX0sMzAwKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixHKSxCLmNsaWNrKCl9cmVtb3ZlRmlsZShCKXtsZXQgRz10aGlzLnZhbHVlLmluZGV4T2YoQik7Rz4tMSYmKHRoaXMucmVsZWFzZVByZXZpZXcoQiksdGhpcy52YWx1ZS5zcGxpY2UoRywxKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpKX1jbGVhckFsbCgpe2xldCBCPVsuLi50aGlzLnZhbHVlXTt0aGlzLnZhbHVlPVtdLEIuZm9yRWFjaChHPT50aGlzLnJlbGVhc2VQcmV2aWV3KEcpKSx0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLHRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIn1hc3luYyB1cGRhdGVWYWx1ZShCKXtsZXQgRz1CLnRhcmdldDt0aGlzLnZhbHVlPUFycmF5LmZyb20oRy5maWxlcz8/W10pLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfXNldFZhbHVlKEIpe3RoaXMudmFsdWUuZm9yRWFjaChHPT50aGlzLnJlbGVhc2VQcmV2aWV3KEcpKSx0aGlzLnZhbHVlPUIsQi5sZW5ndGg+MD90aGlzLmJ1dHRvblRleHQ9dGhpcy5tdWx0aXBsZT8iQWRkIG1vcmUgZmlsZXMiOiJSZXBsYWNlIGZpbGUiOnRoaXMuYnV0dG9uVGV4dD0iU2VsZWN0IGZpbGVzIix0aGlzLnJlcXVlc3RVcGRhdGUoInZhbHVlIiksdGhpcy52YWxpZGF0ZSgpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9YXN5bmMgYWRkRmlsZXMoQil7bGV0IEc9W107Zm9yKGxldCBlZSBvZiBCKXRoaXMudmFsaWRhdGVGaWxlKGVlKSYmRy5wdXNoKGVlKTtpZihHLmxlbmd0aD09PTApe3RoaXMuaXNMb2FkaW5nPSExO3JldHVybn1pZih0aGlzLm1heEZpbGVzPjAmJnRoaXMudmFsdWUubGVuZ3RoK0cubGVuZ3RoPnRoaXMubWF4RmlsZXMpe2xldCBQPXRoaXMubWF4RmlsZXMtdGhpcy52YWx1ZS5sZW5ndGg7aWYoUDw9MCl7dGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gTWF4aW11bSAke3RoaXMubWF4RmlsZXN9IGZpbGVzIGFsbG93ZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLmlzTG9hZGluZz0hMTtyZXR1cm59Ry5zcGxpY2UoUCksdGhpcy52YWxpZGF0aW9uTWVzc2FnZT1gT25seSAke1B9IG1vcmUgZmlsZShzKSBjYW4gYmUgYWRkZWRgLHRoaXMudmFsaWRhdGlvblN0YXRlPSJ3YXJuIn0hdGhpcy5tdWx0aXBsZSYmRy5sZW5ndGg+MD8odGhpcy52YWx1ZS5mb3JFYWNoKGVlPT50aGlzLnJlbGVhc2VQcmV2aWV3KGVlKSksdGhpcy52YWx1ZT1bR1swXV0pOnRoaXMudmFsdWUucHVzaCguLi5HKSx0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSIiLHRoaXMudmFsaWRhdGlvblN0YXRlPW51bGwsdGhpcy5yZXF1ZXN0VXBkYXRlKCJ2YWx1ZSIpLGF3YWl0IHRoaXMudmFsaWRhdGUoKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSx0aGlzLmlzTG9hZGluZz0hMSx0aGlzLnZhbHVlLmxlbmd0aD4wP3RoaXMuYnV0dG9uVGV4dD10aGlzLm11bHRpcGxlPyJBZGQgbW9yZSBmaWxlcyI6IlJlcGxhY2UgZmlsZSI6dGhpcy5idXR0b25UZXh0PSJTZWxlY3QgZmlsZXMifWFzeW5jIHZhbGlkYXRlKCl7aWYodGhpcy52YWxpZGF0aW9uTWVzc2FnZT0iIix0aGlzLnJlcXVpcmVkJiZ0aGlzLnZhbHVlLmxlbmd0aD09PTApcmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPSJpbnZhbGlkIix0aGlzLnZhbGlkYXRpb25NZXNzYWdlPSJQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBmaWxlIiwhMTtmb3IobGV0IEIgb2YgdGhpcy52YWx1ZSlpZighdGhpcy52YWxpZGF0ZUZpbGUoQikpcmV0dXJuITE7cmV0dXJuIHRoaXMudmFsaWRhdGlvblN0YXRlPXRoaXMudmFsdWUubGVuZ3RoPjA/InZhbGlkIjpudWxsLCEwfXN0YXRpY3traShpLHIpfX07cmV0dXJuIHE9aX0pKCl9KTt2YXIgdjZlPXAoKCk9PntiNmUoKX0pO2Z1bmN0aW9uIHc2ZShlLHQpe2lmKHQ9PT12b2lkIDAmJih0PXthbGxvd1FSSUJBTjohMH0pLGU9PW51bGwpcmV0dXJuITE7dmFyIHI9bmV3IFJlZ0V4cCgiXlswLTldezJ9JCIsIiIpLGk9ZS5zbGljZSgwLDIpLGE9Tm9baV07cmV0dXJuIGE9PT12b2lkIDB8fGEuYmJhbl9yZWdleHA9PT12b2lkIDB8fGEuYmJhbl9yZWdleHA9PT1udWxsfHxhLmNoYXJzPT09dm9pZCAwPyExOmEuY2hhcnM9PT1lLmxlbmd0aCYmci50ZXN0KGUuc2xpY2UoMiw0KSkmJmpacihlLnNsaWNlKDQpLGkpJiZac3IoZSkmJih0LmFsbG93UVJJQkFOfHwhWXNyKGUpKX1mdW5jdGlvbiBvbmEoZSx0KXt0PT09dm9pZCAwJiYodD17YWxsb3dRUklCQU46ITB9KTt2YXIgcj17ZXJyb3JDb2RlczpbXSx2YWxpZDohMH07aWYoZSE9bnVsbCYmZSE9PSIiKXt2YXIgaT1Ob1tlLnNsaWNlKDAsMildO2lmKCFpfHwhKGkuYmJhbl9yZWdleHB8fGkuY2hhcnMpKXJldHVybiByLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKEwyLk5vSUJBTkNvdW50cnkpLHI7aSYmaS5jaGFycyYmaS5jaGFycyE9PWUubGVuZ3RoJiYoci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaChMMi5Xcm9uZ0JCQU5MZW5ndGgpKSxpJiZpLmJiYW5fcmVnZXhwJiYheDZlKGUuc2xpY2UoNCksaS5iYmFuX3JlZ2V4cCkmJihyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKEwyLldyb25nQkJBTkZvcm1hdCkpLGkmJmkuYmJhbl92YWxpZGF0aW9uX2Z1bmMmJiFpLmJiYW5fdmFsaWRhdGlvbl9mdW5jKGUuc2xpY2UoNCkpJiYoci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaChMMi5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW0pKTt2YXIgYT1uZXcgUmVnRXhwKCJeWzAtOV17Mn0kIiwiIik7YS50ZXN0KGUuc2xpY2UoMiw0KSl8fChyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKEwyLkNoZWNrc3VtTm90TnVtYmVyKSksKHIuZXJyb3JDb2Rlcy5pbmRleE9mKEwyLldyb25nQkJBTkZvcm1hdCkhPT0tMXx8IVpzcihlKSkmJihyLnZhbGlkPSExLHIuZXJyb3JDb2Rlcy5wdXNoKEwyLldyb25nSUJBTkNoZWNrc3VtKSksIXQuYWxsb3dRUklCQU4mJllzcihlKSYmKHIudmFsaWQ9ITEsci5lcnJvckNvZGVzLnB1c2goTDIuUVJJQkFOTm90QWxsb3dlZCkpfWVsc2Ugci52YWxpZD0hMSxyLmVycm9yQ29kZXMucHVzaChMMi5Ob0lCQU5Qcm92aWRlZCk7cmV0dXJuIHJ9ZnVuY3Rpb24galpyKGUsdCl7aWYoZT09bnVsbHx8dD09PXZvaWQgMHx8dD09PW51bGwpcmV0dXJuITE7dmFyIHI9Tm9bdF07cmV0dXJuIHI9PW51bGx8fHIuYmJhbl9yZWdleHA9PT12b2lkIDB8fHIuYmJhbl9yZWdleHA9PT1udWxsfHxyLmNoYXJzPT09dm9pZCAwfHxyLmNoYXJzPT09bnVsbD8hMTpyLmNoYXJzLTQ9PT1lLmxlbmd0aCYmeDZlKGUsci5iYmFuX3JlZ2V4cCk/ci5iYmFuX3ZhbGlkYXRpb25fZnVuYz9yLmJiYW5fdmFsaWRhdGlvbl9mdW5jKGUucmVwbGFjZSgvW1xzLl0rL2csIiIpKTohMDohMX1mdW5jdGlvbiBzbmEoZSl7aWYoZSE9bnVsbCl7dmFyIHQ9Tm9bZV07aWYodCE9PXZvaWQgMClyZXR1cm4gdC5TRVBBP3QuU0VQQTohMX1yZXR1cm4hMX1mdW5jdGlvbiBZc3IoZSl7aWYoZT09bnVsbClyZXR1cm4hMTt2YXIgdD1lLnNsaWNlKDAsMikscj1bIkxJIiwiQ0giXTtpZighci5pbmNsdWRlcyh0KSlyZXR1cm4hMTt2YXIgaT1uZXcgUmVnRXhwKCJeM1swLTFdezF9WzAtOV17M30kIiwiIik7cmV0dXJuIGkudGVzdChlLnNsaWNlKDQsOSkpfWZ1bmN0aW9uIGxuYShlKXt2YXIgdD15NmUoZS5iYmFuKXx8IiI7aWYoZS5jb3VudHJ5Q29kZT09PW51bGx8fGUuY291bnRyeUNvZGU9PT12b2lkIDApcmV0dXJuIG51bGw7dmFyIHI9Tm9bZS5jb3VudHJ5Q29kZV07aWYodCE9PSIiJiZyIT09dm9pZCAwJiZyLmNoYXJzJiZyLmNoYXJzIT09bnVsbCYmci5jaGFycz09PXQubGVuZ3RoKzQmJnIuYmJhbl9yZWdleHAmJnIuYmJhbl9yZWdleHAhPT1udWxsJiZ4NmUodCxyLmJiYW5fcmVnZXhwKSl7dmFyIGk9VlpyKGUuY291bnRyeUNvZGUrIjAwIit0KTtyZXR1cm4gZS5jb3VudHJ5Q29kZSsoIjAiKyg5OC1pKSkuc2xpY2UoLTIpK3R9cmV0dXJuIG51bGx9ZnVuY3Rpb24gY25hKGUpe3ZhciB0PXt9LHI9eTZlKGUpO2lmKHQuaWJhbj1yfHxlLHImJnc2ZShyKSl7dC5iYmFuPXIuc2xpY2UoNCksdC5jb3VudHJ5Q29kZT1yLnNsaWNlKDAsMiksdC52YWxpZD0hMDt2YXIgaT1Ob1t0LmNvdW50cnlDb2RlXTtpZihpLmFjY291bnRfaW5kZW50aWZpZXIpe3ZhciBhPWkuYWNjb3VudF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoYVswXSksbz1wYXJzZUludChhWzFdKTt0LmFjY291bnROdW1iZXI9dC5pYmFuLnNsaWNlKG4sbysxKX1pZihpLmJhbmtfaWRlbnRpZmllcil7dmFyIGE9aS5iYW5rX2lkZW50aWZpZXIuc3BsaXQoIi0iKSxuPXBhcnNlSW50KGFbMF0pLG89cGFyc2VJbnQoYVsxXSk7dC5iYW5rSWRlbnRpZmllcj10LmJiYW4uc2xpY2UobixvKzEpfWlmKGkuYnJhbmNoX2luZGVudGlmaWVyKXt2YXIgYT1pLmJyYW5jaF9pbmRlbnRpZmllci5zcGxpdCgiLSIpLG49cGFyc2VJbnQoYVswXSksbz1wYXJzZUludChhWzFdKTt0LmJyYW5jaElkZW50aWZpZXI9dC5iYmFuLnNsaWNlKG4sbysxKX19ZWxzZSB0LnZhbGlkPSExO3JldHVybiB0fWZ1bmN0aW9uIHg2ZShlLHQpe3ZhciByPW5ldyBSZWdFeHAodCwiIik7cmV0dXJuIHIudGVzdChlKX1mdW5jdGlvbiB5NmUoZSl7cmV0dXJuIHR5cGVvZiBlIT0ic3RyaW5nIj9udWxsOmUucmVwbGFjZSgvWy1cIF0vZywiIikudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBNNmUoZSx0KXtpZih0eXBlb2YgZSE9InN0cmluZyIpcmV0dXJuIG51bGw7dD09bnVsbCYmKHQ9IiAiKTt2YXIgcj15NmUoZSk7cmV0dXJuIHI9PT1udWxsP251bGw6ci5yZXBsYWNlKC8oLns0fSkoPyEkKS9nLCIkMSIrdCl9ZnVuY3Rpb24gWnNyKGUpe3ZhciB0PWUuc2xpY2UoMCwyKSxyPXBhcnNlSW50KGUuc2xpY2UoMiw0KSwxMCksaT1lLnNsaWNlKDQpLGE9WHNyKCIiLmNvbmNhdChpKS5jb25jYXQodCwiMDAiKSksbj1STihhKTtyZXR1cm4gOTgtbj09PXJ9ZnVuY3Rpb24gWHNyKGUpe3JldHVybiBlLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24odCl7dmFyIHI9dC5jaGFyQ29kZUF0KDApO3JldHVybiByPj02NT8oci01NSkudG9TdHJpbmcoKTp0fSkuam9pbigiIil9ZnVuY3Rpb24gVlpyKGUpe3JldHVybiBSTihYc3IoZS5zbGljZSg0KStlLnNsaWNlKDAsNCkpKX1mdW5jdGlvbiBkbmEoKXt2YXIgZT17fTtmb3IodmFyIHQgaW4gTm8pe3ZhciByPU5vW3RdO2VbdF09e2NoYXJzOnIuY2hhcnN8fG51bGwsYmJhbl9yZWdleHA6ci5iYmFuX3JlZ2V4cHx8bnVsbCxJQkFOUmVnaXN0cnk6ci5JQkFOUmVnaXN0cnl8fCExLFNFUEE6ci5TRVBBfHwhMX19cmV0dXJuIGV9ZnVuY3Rpb24gVVpyKGUpe2lmKCFlKXJldHVybiExO3ZhciB0PW5ldyBSZWdFeHAoIl5bYS16QS1aXXs2fVthLXpBLVowLTldezJ9KFthLXpBLVowLTldezN9KT8kIiwiIikscj1Ob1tlLnRvVXBwZXJDYXNlKCkuc2xpY2UoNCw2KV07cmV0dXJuIHQudGVzdChlKSYmciE9PXZvaWQgMH1mdW5jdGlvbiB1bmEoZSl7dmFyIHQ9e2Vycm9yQ29kZXM6W10sdmFsaWQ6ITB9O2lmKGUhPW51bGwmJmUhPT0iIil7dmFyIHI9Tm9bZS50b1VwcGVyQ2FzZSgpLnNsaWNlKDQsNildO2lmKHI9PT12b2lkIDApdC52YWxpZD0hMSx0LmVycm9yQ29kZXMucHVzaChwYi5Ob0JJQ0NvdW50cnkpO2Vsc2V7dmFyIGk9bmV3IFJlZ0V4cCgiXlthLXpBLVpdezZ9W2EtekEtWjAtOV17Mn0oW2EtekEtWjAtOV17M30pPyQiLCIiKTtpLnRlc3QoZSl8fCh0LnZhbGlkPSExLHQuZXJyb3JDb2Rlcy5wdXNoKHBiLldyb25nQklDRm9ybWF0KSl9fWVsc2UgdC52YWxpZD0hMSx0LmVycm9yQ29kZXMucHVzaChwYi5Ob0JJQ1Byb3ZpZGVkKTtyZXR1cm4gdH1mdW5jdGlvbiBwbmEoZSl7dmFyIHQ9e30scj1lLnRvVXBwZXJDYXNlKCk7cmV0dXJuIFVacihyKT8odC5iYW5rQ29kZT1yLnNsaWNlKDAsNCksdC5jb3VudHJ5Q29kZT1yLnNsaWNlKDQsNiksdC5sb2NhdGlvbkNvZGU9ci5zbGljZSg2LDgpLHQudGVzdEJJQz10LmxvY2F0aW9uQ29kZVsxXT09PSIwIix0LmJyYW5jaENvZGU9ci5sZW5ndGg+OD9yLnNsaWNlKDgpOm51bGwsdC52YWxpZD0hMCk6dC52YWxpZD0hMSx0fXZhciBMMixwYixXWnIsR1pyLFJOLGFoLFlacixaWnIsUXNyLFhacixKc3IsUVpyLEtzcixKWnIsaG5hLE5vLGVscj1wKCgpPT57InVzZSBzdHJpY3QiOyhmdW5jdGlvbihlKXtlW2UuTm9JQkFOUHJvdmlkZWQ9MF09Ik5vSUJBTlByb3ZpZGVkIixlW2UuTm9JQkFOQ291bnRyeT0xXT0iTm9JQkFOQ291bnRyeSIsZVtlLldyb25nQkJBTkxlbmd0aD0yXT0iV3JvbmdCQkFOTGVuZ3RoIixlW2UuV3JvbmdCQkFORm9ybWF0PTNdPSJXcm9uZ0JCQU5Gb3JtYXQiLGVbZS5DaGVja3N1bU5vdE51bWJlcj00XT0iQ2hlY2tzdW1Ob3ROdW1iZXIiLGVbZS5Xcm9uZ0lCQU5DaGVja3N1bT01XT0iV3JvbmdJQkFOQ2hlY2tzdW0iLGVbZS5Xcm9uZ0FjY291bnRCYW5rQnJhbmNoQ2hlY2tzdW09Nl09Ildyb25nQWNjb3VudEJhbmtCcmFuY2hDaGVja3N1bSIsZVtlLlFSSUJBTk5vdEFsbG93ZWQ9N109IlFSSUJBTk5vdEFsbG93ZWQifSkoTDJ8fChMMj17fSkpOyhmdW5jdGlvbihlKXtlW2UuTm9CSUNQcm92aWRlZD0wXT0iTm9CSUNQcm92aWRlZCIsZVtlLk5vQklDQ291bnRyeT0xXT0iTm9CSUNDb3VudHJ5IixlW2UuV3JvbmdCSUNGb3JtYXQ9Ml09Ildyb25nQklDRm9ybWF0In0pKHBifHwocGI9e30pKTtXWnI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVs1LDQsMywyLDcsNiw1LDQsMywyXSxyPWUucmVwbGFjZSgvW1xzLl0rL2csIiIpLGk9cGFyc2VJbnQoci5jaGFyQXQoMTApLDEwKSxhPXIuc3Vic3RyaW5nKDAsMTApLG49MCxvPTA7bzwxMDtvKyspbis9cGFyc2VJbnQoYS5jaGFyQXQobyksMTApKnRbb107dmFyIHM9biUxMTtyZXR1cm4gaT09PShzPT09MD8wOjExLXMpfSxHWnI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKC9bXHMuXSsvZywiIikscj1wYXJzZUludCh0LnN1YnN0cmluZygwLHQubGVuZ3RoLTIpLDEwKSxpPXBhcnNlSW50KHQuc3Vic3RyaW5nKHQubGVuZ3RoLTIsdC5sZW5ndGgpLDEwKSxhPXIlOTc9PT0wPzk3OnIlOTc7cmV0dXJuIGE9PT1pfSxSTj1mdW5jdGlvbihlKXtmb3IoO2UubGVuZ3RoPjI7KXt2YXIgdD1lLnNsaWNlKDAsNikscj1wYXJzZUludCh0LDEwKTtpZihpc05hTihyKSlyZXR1cm4gTmFOO2U9ciU5NytlLnNsaWNlKHQubGVuZ3RoKX1yZXR1cm4gcGFyc2VJbnQoZSwxMCklOTd9LGFoPWZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSgvW1xzLl0rL2csIiIpLHI9Uk4odCk7cmV0dXJuIHI9PT0xfSxZWnI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVszLDksNywxLDMsOSw3XSxyPXBhcnNlSW50KGUuY2hhckF0KDcpLDEwKSxpPWUuc3Vic3RyaW5nKDAsNyksYT0wLG49MDtuPDc7bisrKWErPXBhcnNlSW50KGkuY2hhckF0KG4pLDEwKSp0W25dO3ZhciBvPWElMTA7cmV0dXJuIHI9PT0obz09PTA/MDoxMC1vKX0sWlpyPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bNCw4LDUsMTAsOSw3LDMsNl0scj1bMSwyLDQsOCw1LDEwLDksNywzLDZdLGk9cGFyc2VJbnQoZS5jaGFyQXQoOCksMTApLGE9cGFyc2VJbnQoZS5jaGFyQXQoOSksMTApLG49ZS5zdWJzdHJpbmcoMCw4KSxvPWUuc3Vic3RyaW5nKDEwLDIwKSxzPTAsbD0wO2w8ODtsKyspcys9cGFyc2VJbnQobi5jaGFyQXQobCksMTApKnRbbF07dmFyIGM9cyUxMTtpZihpIT09KGM9PT0wPzA6Yz09PTE/MToxMS1jKSlyZXR1cm4hMTtzPTA7Zm9yKHZhciBsPTA7bDwxMDtsKyspcys9cGFyc2VJbnQoby5jaGFyQXQobCksMTApKnJbbF07cmV0dXJuIGM9cyUxMSxhPT09KGM9PT0wPzA6Yz09PTE/MToxMS1jKX0sUXNyPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTEwLGk9MDtpPGUubGVuZ3RoO2krKylyKz1wYXJzZUludChlLmNoYXJBdChpKSwxMCksciUxMCE9PTAmJihyPXIlMTApLHI9cioyLHI9ciUxMTtyZXR1cm4gdD09PSgxMS1yPT09MTA/MDoxMS1yKX0sWFpyPWZ1bmN0aW9uKGUpe3ZhciB0PXBhcnNlSW50KGUuY2hhckF0KDYpLDEwKSxyPXBhcnNlSW50KGUuY2hhckF0KDE2KSwxMCksaT1lLnN1YnN0cmluZygwLDYpLGE9ZS5zdWJzdHJpbmcoNywxNik7cmV0dXJuIFFzcihpLHQpJiZRc3IoYSxyKX0sSnNyPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bMTAsNSw4LDQsMiwxXSxyPVs2LDMsNyw5LDEwLDUsOCw0LDIsMV0saT1wYXJzZUludChlLmNoYXJBdCg5KSwxMCksYT1wYXJzZUludChlLmNoYXJBdCgxOSksMTApLG49ZS5zdWJzdHJpbmcoNCw5KSxvPWUuc3Vic3RyaW5nKDEwLDE5KSxzPTAsbD0wO2w8bi5sZW5ndGg7bCsrKXMrPXBhcnNlSW50KG4uY2hhckF0KGwpLDEwKSp0W2xdO3ZhciBjPXMlMTE7aWYoaSE9PShjPT09MD8wOmM9PT0xPzE6MTEtYykpcmV0dXJuITE7cz0wO2Zvcih2YXIgbD0wO2w8by5sZW5ndGg7bCsrKXMrPXBhcnNlSW50KG8uY2hhckF0KGwpLDEwKSpyW2xdO3JldHVybiBjPXMlMTEsYT09PShjPT09MD8wOmM9PT0xPzE6MTEtYyl9LFFacj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9WzcsMSwzLDcsMSwzLDcsMSwzLDcsMSwzLDddLHI9cGFyc2VJbnQoZS5jaGFyQXQoMTUpLDEwKSxpPWUuc3Vic3RyaW5nKDIsMTUpLGE9MCxuPTA7bjxpLmxlbmd0aDtuKyspYSs9cGFyc2VJbnQoaS5jaGFyQXQobiksMTApKnRbbl07dmFyIG89YSUxMDtyZXR1cm4gcj09PShvPT09MD8wOjEwLW8pfSxLc3I9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUucmVwbGFjZSgvW1xzLl0rL2csIiIpLHI9QXJyYXkuZnJvbSh0KSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXJbaV0uY2hhckNvZGVBdCgwKTtpZihhPj02NSlzd2l0Y2goYSl7Y2FzZSA2NTpjYXNlIDc0OnJbaV09IjEiO2JyZWFrO2Nhc2UgNjY6Y2FzZSA3NTpjYXNlIDgzOnJbaV09IjIiO2JyZWFrO2Nhc2UgNjc6Y2FzZSA3NjpjYXNlIDg0OnJbaV09IjMiO2JyZWFrO2Nhc2UgNjg6Y2FzZSA3NzpjYXNlIDg1OnJbaV09IjQiO2JyZWFrO2Nhc2UgNjk6Y2FzZSA3ODpjYXNlIDg2OnJbaV09IjUiO2JyZWFrO2Nhc2UgNzA6Y2FzZSA3OTpjYXNlIDg3OnJbaV09IjYiO2JyZWFrO2Nhc2UgNzE6Y2FzZSA4MDpjYXNlIDg4OnJbaV09IjciO2JyZWFrO2Nhc2UgNzI6Y2FzZSA4MTpjYXNlIDg5OnJbaV09IjgiO2JyZWFrO2Nhc2UgNzM6Y2FzZSA4MjpjYXNlIDkwOnJbaV09IjkiO2JyZWFrfX12YXIgbj1STihyLmpvaW4oIiIpKTtyZXR1cm4gbj09PTB9LEpacj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9WzksNywzLDEsOSw3LDMsMSw5LDcsMywxLDksNywzXSxyPXBhcnNlSW50KGUuY2hhckF0KDcpLDEwKSxpPWUuc3Vic3RyaW5nKDAsNyksYT0wLG49MDtuPGkubGVuZ3RoO24rKylhKz1wYXJzZUludChpLmNoYXJBdChuKSwxMCkqdFtuXTt2YXIgbz1hJTEwO2lmKHIhPT0obz09PTA/MDoxMC1vKSlyZXR1cm4hMTtpZihhPTAsZS5lbmRzV2l0aCgiMDAwMDAwMDAiKSl7Zm9yKHZhciBzPWUuc3Vic3RyaW5nKDgsMTUpLGw9cGFyc2VJbnQoZS5jaGFyQXQoMTUpLDEwKSxuPTA7bjxzLmxlbmd0aDtuKyspYSs9cGFyc2VJbnQocy5jaGFyQXQobiksMTApKnRbbl07dmFyIGM9YSUxMDtyZXR1cm4gbD09PShjPT09MD8wOjEwLWMpfWVsc2V7Zm9yKHZhciBzPWUuc3Vic3RyaW5nKDgsMjMpLGw9cGFyc2VJbnQoZS5jaGFyQXQoMjMpLDEwKSxuPTA7bjxzLmxlbmd0aDtuKyspYSs9cGFyc2VJbnQocy5jaGFyQXQobiksMTApKnRbbl07dmFyIHU9YSUxMDtyZXR1cm4gbD09PSh1PT09MD8wOjEwLXUpfX0saG5hPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR5cGVvZiBOb1tlXT4idSI/ITE6KE5vW2VdLmJiYW5fdmFsaWRhdGlvbl9mdW5jPXQsITApfSxObz17QUQ6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17OH1bQS1aMC05XXsxMn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjQifSxBRTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXszfVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yMyJ9LEFGOnt9LEFHOnt9LEFJOnt9LEFMOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezh9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy03IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxBTTp7fSxBTzp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIn0sQVE6e30sQVI6e30sQVM6e30sQVQ6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxBVTp7fSxBVzp7fSxBWDp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITB9LEFaOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjB9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTI4In0sQkE6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6YWgsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy01IixiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LEJCOnt9LEJEOnt9LEJFOntjaGFyczoxNixiYmFuX3JlZ2V4cDoiXlswLTldezEyfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOkdacixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0xNiJ9LEJGOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LEJHOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17Nn1bQS1aMC05XXs4fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LEJIOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIyIn0sQkk6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCIsYnJhbmNoX2luZGVudGlmaWVyOiI1LTkiLGJhbmtfaWRlbnRpZmllcjoiMC00IixhY2NvdW50X2luZGVudGlmaWVyOiIxNC0yNyJ9LEJKOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9WzAtOV17MjJ9JCJ9LEJMOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCJ9LEJNOnt9LEJOOnt9LEJPOnt9LEJROnt9LEJSOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXlswLTldezIzfVtBLVpdezF9W0EtWjAtOV17MX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI4LTEyIixiYW5rX2lkZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTctMjkifSxCUzp7fSxCVDp7fSxCVjp7fSxCVzp7fSxCWTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sQlo6e30sQ0E6e30sQ0M6e30sQ0Q6e30sQ0Y6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENHOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxDSDp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sQ0k6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWl17MX1bMC05XXsyM30kIn0sQ0s6e30sQ0w6e30sQ006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LENOOnt9LENPOnt9LENSOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yMiJ9LENVOnt9LENWOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQifSxDVzp7fSxDWDp7fSxDWTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bMC05XXs4fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy03IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTItMjgifSxDWjp7Y2hhcnM6MjQsYmJhbl9yZWdleHA6Il5bMC05XXsyMH0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpKc3IsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMifSxERTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTMtMjIifSxESjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI3In0sREs6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTgifSxETTp7fSxETzp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LERaOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQifSxFQzp7fSxFRTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXsxNn0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpRWnIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTEiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjAifSxFRzp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXsyNX0iLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNyIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE3LTI5In0sRUg6e30sRVI6e30sRVM6e2NoYXJzOjI0LGJiYW5fdmFsaWRhdGlvbl9mdW5jOlpacixiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC03IixiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjQifSxFVDp7fSxGSTp7Y2hhcnM6MTgsYmJhbl9yZWdleHA6Il5bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0wIn0sRko6e30sRks6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeW0EtWl17Mn1bMC05XXsxMn0kIixiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0xOCJ9LEZNOnt9LEZPOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0xOCJ9LEZSOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6S3NyLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00IixicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTQtMjQifSxHQTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsyM30kIn0sR0I6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bMC05XXsxNH0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtOSIsYmFua19pZGVudGlmaWVyOiIwLTMifSxHRDp7fSxHRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aMC05XXsyfVswLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0yMiJ9LEdGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxHRzp7fSxHSDp7fSxHSTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVtBLVowLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIzIn0sR0w6e2NoYXJzOjE4LGJiYW5fcmVnZXhwOiJeWzAtOV17MTR9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTE4In0sR006e30sR046e30sR1A6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LEdROntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxHUjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXs3fVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMy02IixiYW5rX2lkZW50aWZpZXI6IjAtMiIsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yNyJ9LEdTOnt9LEdUOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LEdVOnt9LEdXOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MTl9JCJ9LEdZOnt9LEhLOnt9LEhNOnt9LEhOOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9JCJ9LEhSOntjaGFyczoyMSxiYmFuX3JlZ2V4cDoiXlswLTldezE3fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOlhacixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtNiJ9LEhUOnt9LEhVOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOkpacixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNiIsYmFua19pZGVudGlmaWVyOiIwLTIifSxJRDp7fSxJRTp7Y2hhcnM6MjIsYmJhbl9yZWdleHA6Il5bQS1aMC05XXs0fVswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNC05IixiYW5rX2lkZW50aWZpZXI6IjAtMyJ9LElMOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIifSxJTTp7fSxJTjp7fSxJTzp7fSxJUTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNiIsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjExLTIzIn0sSVI6e2NoYXJzOjI2LGJiYW5fcmVnZXhwOiJeWzAtOV17MjJ9JCJ9LElTOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezIyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi0zIixiYW5rX2lkZW50aWZpZXI6IjAtMSJ9LElUOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXltBLVpdezF9WzAtOV17MTB9W0EtWjAtOV17MTJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTEwIixiYW5rX2lkZW50aWZpZXI6IjEtNSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNyJ9LEpFOnt9LEpNOnt9LEpPOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17NH1bQS1aMC05XXsxOH0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTciLGJhbmtfaWRlbnRpZmllcjoiNC03In0sSlA6e30sS0U6e30sS0c6e30sS0g6e30sS0k6e30sS006e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LEtOOnt9LEtQOnt9LEtSOnt9LEtXOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9W0EtWjAtOV17MjJ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIyMC0zMCJ9LEtZOnt9LEtaOntjaGFyczoyMCxiYmFuX3JlZ2V4cDoiXlswLTldezN9W0EtWjAtOV17MTN9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiIwLTIwIn0sTEE6e30sTEI6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17NH1bQS1aMC05XXsyMH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjE0LTI4In0sTEM6e2NoYXJzOjMyLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyNH0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMzIifSxMSTp7Y2hhcnM6MjEsYmJhbl9yZWdleHA6Il5bMC05XXs1fVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC00In0sTEs6e30sTFI6e30sTFM6e30sTFQ6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTQifSxMVTp7Y2hhcnM6MjAsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEzfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sTFY6e2NoYXJzOjIxLGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxM30kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yMSJ9LExZOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjMtNSIsYmFua19pZGVudGlmaWVyOiIwLTIiLGFjY291bnRfaW5kZW50aWZpZXI6IjEwLTI1In0sTUE6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeWzAtOV17MjR9JCJ9LE1DOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6S3NyLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNS05IixiYW5rX2lkZW50aWZpZXI6IjAtNCJ9LE1EOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezJ9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI2LTI0In0sTUU6e2NoYXJzOjIyLGJiYW5fcmVnZXhwOiJeWzAtOV17MTh9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6YWgsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTIyIn0sTUY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE1HOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQifSxNSDp7fSxNSzp7Y2hhcnM6MTksYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezEwfVswLTldezJ9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6YWgsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sTUw6e2NoYXJzOjI4LGJiYW5fcmVnZXhwOiJeW0EtWjAtOV17Mn1bMC05XXsyMn0kIn0sTU06e30sTU46e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiI4LTIwIn0sTU86e30sTVA6e30sTVE6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LE1SOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezIzfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjUtOSIsYmFua19pZGVudGlmaWVyOiIwLTQiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMjcifSxNUzp7fSxNVDp7Y2hhcnM6MzEsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezV9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTgiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNS0zMSJ9LE1VOntjaGFyczozMCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTl9W0EtWl17M30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTciLGJhbmtfaWRlbnRpZmllcjoiMC01IixhY2NvdW50X2luZGVudGlmaWVyOiIwLTMwIn0sTVY6e30sTVc6e30sTVg6e30sTVk6e30sTVo6e2NoYXJzOjI1LGJiYW5fcmVnZXhwOiJeWzAtOV17MjF9JCJ9LE5BOnt9LE5DOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxORTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxORjp7fSxORzp7fSxOSTp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLGJhbmtfaWRlbnRpZmllcjoiMC0zIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiOC0yOCJ9LE5MOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MTB9JCIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMTgifSxOTzp7Y2hhcnM6MTUsYmJhbl9yZWdleHA6Il5bMC05XXsxMX0kIixiYmFuX3ZhbGlkYXRpb25fZnVuYzpXWnIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjQtMTUifSxOUDp7fSxOUjp7fSxOVTp7fSxOWjp7fSxPTTp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXszfVtBLVowLTldezE2fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiExLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sUEE6e30sUEU6e30sUEY6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFBHOnt9LFBIOnt9LFBLOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sUEw6e2NoYXJzOjI4LGJiYW5fdmFsaWRhdGlvbl9mdW5jOllacixiYmFuX3JlZ2V4cDoiXlswLTldezI0fSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMC03IixhY2NvdW50X2luZGVudGlmaWVyOiIyLTI4In0sUE06e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFBOOnt9LFBSOnt9LFBTOntjaGFyczoyOSxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MjF9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIixhY2NvdW50X2luZGVudGlmaWVyOiIxNy0yOSJ9LFBUOntjaGFyczoyNSxiYmFuX3JlZ2V4cDoiXlswLTldezIxfSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmFoLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0zIn0sUFc6e30sUFk6e30sUUE6e2NoYXJzOjI5LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYmFua19pZGVudGlmaWVyOiIwLTMiLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjkifSxSRTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sUk86e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeW0EtWl17NH1bQS1aMC05XXsxNn0kIixJQkFOUmVnaXN0cnk6ITAsU0VQQTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMyIsYWNjb3VudF9pbmRlbnRpZmllcjoiMC0yNCJ9LFJTOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSQiLGJiYW5fdmFsaWRhdGlvbl9mdW5jOmFoLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMiJ9LFJVOntjaGFyczozMyxiYmFuX3JlZ2V4cDoiXlswLTldezE0fVtBLVowLTldezE1fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjktMTMiLGJhbmtfaWRlbnRpZmllcjoiMC04IixhY2NvdW50X2luZGVudGlmaWVyOiIxMy0zMyJ9LFJXOnt9LFNBOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezJ9W0EtWjAtOV17MTh9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yNCJ9LFNCOnt9LFNDOntjaGFyczozMSxiYmFuX3JlZ2V4cDoiXltBLVpdezR9WzAtOV17MjB9W0EtWl17M30kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI2LTciLGJhbmtfaWRlbnRpZmllcjoiMC01IixhY2NvdW50X2luZGVudGlmaWVyOiIxMi0yOCJ9LFNEOntjaGFyczoxOCxiYmFuX3JlZ2V4cDoiXlswLTldezE0fSQiLElCQU5SZWdpc3RyeTohMCxiYW5rX2lkZW50aWZpZXI6IjAtMSIsYWNjb3VudF9pbmRlbnRpZmllcjoiNi0xOCJ9LFNFOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJhbmtfaWRlbnRpZmllcjoiMC0yIn0sU0c6e30sU0g6e30sU0k6e2NoYXJzOjE5LGJiYW5fcmVnZXhwOiJeWzAtOV17MTV9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6YWgsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYnJhbmNoX2luZGVudGlmaWVyOiIyLTQiLGJhbmtfaWRlbnRpZmllcjoiMC0xIixhY2NvdW50X2luZGVudGlmaWVyOiI5LTE2In0sU0o6e30sU0s6e2NoYXJzOjI0LGJiYW5fcmVnZXhwOiJeWzAtOV17MjB9JCIsYmJhbl92YWxpZGF0aW9uX2Z1bmM6SnNyLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwfSxTTDp7fSxTTTp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bQS1aXXsxfVswLTldezEwfVtBLVowLTldezEyfSQiLElCQU5SZWdpc3RyeTohMCxTRVBBOiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiNi0xMCJ9LFNOOntjaGFyczoyOCxiYmFuX3JlZ2V4cDoiXltBLVpdezJ9WzAtOV17MjJ9JCJ9LFNPOntjaGFyczoyMyxiYmFuX3JlZ2V4cDoiXlswLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjQtNiIsYWNjb3VudF9pbmRlbnRpZmllcjoiMTEtMjMifSxTUjp7fSxTUzp7fSxTVDp7Y2hhcnM6MjUsYmJhbl9yZWdleHA6Il5bMC05XXsyMX0kIixJQkFOUmVnaXN0cnk6ITAsYnJhbmNoX2luZGVudGlmaWVyOiI0LTcifSxTVjp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXs0fVswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiI4LTI4In0sU1g6e30sU1k6e30sU1o6e30sVEM6e30sVEQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MjN9JCJ9LFRGOntjaGFyczoyNyxiYmFuX3JlZ2V4cDoiXlswLTldezEwfVtBLVowLTldezExfVswLTldezJ9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxURzp7Y2hhcnM6MjgsYmJhbl9yZWdleHA6Il5bQS1aXXsyfVswLTldezIyfSQifSxUSDp7fSxUSjp7fSxUSzp7fSxUTDp7Y2hhcnM6MjMsYmJhbl9yZWdleHA6Il5bMC05XXsxOX0kIixJQkFOUmVnaXN0cnk6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yMyJ9LFRNOnt9LFROOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXlswLTldezIwfSQiLElCQU5SZWdpc3RyeTohMCxicmFuY2hfaW5kZW50aWZpZXI6IjItNCIsYWNjb3VudF9pbmRlbnRpZmllcjoiNC0yNCJ9LFRPOnt9LFRSOntjaGFyczoyNixiYmFuX3JlZ2V4cDoiXlswLTldezV9W0EtWjAtOV17MTd9JCIsSUJBTlJlZ2lzdHJ5OiEwfSxUVDp7fSxUVjp7fSxUVzp7fSxUWjp7fSxVQTp7Y2hhcnM6MjksYmJhbl9yZWdleHA6Il5bMC05XXs2fVtBLVowLTldezE5fSQiLElCQU5SZWdpc3RyeTohMCxhY2NvdW50X2luZGVudGlmaWVyOiIxNS0yOSJ9LFVHOnt9LFVNOnt9LFVTOnt9LFVZOnt9LFVaOnt9LFZBOntjaGFyczoyMixiYmFuX3JlZ2V4cDoiXlswLTldezE4fSIsSUJBTlJlZ2lzdHJ5OiEwLFNFUEE6ITAsYWNjb3VudF9pbmRlbnRpZmllcjoiNy0yMiJ9LFZDOnt9LFZFOnt9LFZHOntjaGFyczoyNCxiYmFuX3JlZ2V4cDoiXltBLVowLTldezR9WzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGFjY291bnRfaW5kZW50aWZpZXI6IjgtMjQifSxWSTp7fSxWTjp7fSxWVTp7fSxXRjp7Y2hhcnM6MjcsYmJhbl9yZWdleHA6Il5bMC05XXsxMH1bQS1aMC05XXsxMX1bMC05XXsyfSQiLElCQU5SZWdpc3RyeTohMH0sV1M6e30sWEs6e2NoYXJzOjIwLGJiYW5fcmVnZXhwOiJeWzAtOV17MTZ9JCIsSUJBTlJlZ2lzdHJ5OiEwLGJyYW5jaF9pbmRlbnRpZmllcjoiMi0zIixhY2NvdW50X2luZGVudGlmaWVyOiI0LTIwIn0sWUU6e30sWVQ6e2NoYXJzOjI3LGJiYW5fcmVnZXhwOiJeWzAtOV17MTB9W0EtWjAtOV17MTF9WzAtOV17Mn0kIixJQkFOUmVnaXN0cnk6ITB9LFpBOnt9LFpNOnt9LFpXOnt9fX0pO3ZhciB0bHIscmxyPXAoKCk9Pnt4ZSgpO3Rscj0oKT0+Q2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmlucHV0LWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLnBheW1lbnQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgSUJBTiBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJJbnRlcm5hdGlvbmFsIEJhbmsgQWNjb3VudCBOdW1iZXIgd2l0aCBhdXRvbWF0aWMgZm9ybWF0dGluZyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4KICAgICAgICAgICAgLmxhYmVsPSR7IkJhbmsgQWNjb3VudCBJQkFOIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkVudGVyIHlvdXIgSW50ZXJuYXRpb25hbCBCYW5rIEFjY291bnQgTnVtYmVyIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuCiAgICAgICAgICAgIC5sYWJlbD0keyJWZXJpZmllZCBJQkFOIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoaXMgSUJBTiBoYXMgYmVlbiB2ZXJpZmllZCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJERTg5MzcwNDAwNDQwNTMyMDEzMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlBheW1lbnQgSW5mb3JtYXRpb24ifSAuc3VidGl0bGU9JHsiSUJBTiBpbnB1dCB3aXRoIGhvcml6b250YWwgbGF5b3V0IGZvciBwYXltZW50IGZvcm1zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0icGF5bWVudC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICAubGFiZWw9JHsiQWNjb3VudCBIb2xkZXIifSAKICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC52YWx1ZT0keyJKb2huIERvZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4gCiAgICAgICAgICAgIC5sYWJlbD0keyJJQkFOIn0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAudmFsdWU9JHsiR0I4MldFU1QxMjM0NTY5ODc2NTQzMiJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJWYWxpZGF0aW9uICYgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IlJlcXVpcmVkIGZpZWxkcyBhbmQgZGlzYWJsZWQgc3RhdGVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiUGF5bWVudCBBY2NvdW50In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlcXVpcmVkIGZvciBwcm9jZXNzaW5nIHBheW1lbnRzIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWliYW4+CgogICAgICAgICAgPGRlZXMtaW5wdXQtaWJhbgogICAgICAgICAgICAubGFiZWw9JHsiTG9ja2VkIElCQU4ifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBJQkFOIGNhbm5vdCBiZSBjaGFuZ2VkIn0KICAgICAgICAgICAgLnZhbHVlPSR7IkZSMTQyMDA0MTAxMDA1MDUwMDAxM00wMjYwNiJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFuayBUcmFuc2ZlciBGb3JtIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXRlIGZvcm0gZXhhbXBsZSB3aXRoIElCQU4gdmFsaWRhdGlvbiJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJSZWNpcGllbnQgTmFtZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWliYW4gLmxhYmVsPSR7IlJlY2lwaWVudCBJQkFOIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC1pYmFuPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVHJhbnNmZXIgUmVmZXJlbmNlIn0gLmRlc2NyaXB0aW9uPSR7Ik9wdGlvbmFsIHJlZmVyZW5jZSBmb3IgdGhlIHRyYW5zZmVyIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJBbW91bnQifSAuaW5wdXRUeXBlPSR7Im51bWJlciJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIEJOLFJkLEhOLGs2ZT1wKCgpPT57eGUoKTtLdCgpO00xKCk7ZWxyKCk7cmxyKCk7SmUoKTtCTj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFJkPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxITj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtaWJhbiIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtmZSgpXSxsPVtmZSgpXSxkPVtqKHt0eXBlOlN0cmluZ30pXSxCTih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudGVyZWRTdHJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJlbnRlcmVkU3RyaW5nImluIGIsZ2V0OmI9PmIuZW50ZXJlZFN0cmluZyxzZXQ6KGIseSk9PntiLmVudGVyZWRTdHJpbmc9eX19LG1ldGFkYXRhOnZ9LG8scyksQk4odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlbnRlcmVkSWJhbklzVmFsaWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJlbnRlcmVkSWJhbklzVmFsaWQiaW4gYixnZXQ6Yj0+Yi5lbnRlcmVkSWJhbklzVmFsaWQsc2V0OihiLHkpPT57Yi5lbnRlcmVkSWJhbklzVmFsaWQ9eX19LG1ldGFkYXRhOnZ9LGMsdSksQk4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InZhbHVlImluIGIsZ2V0OmI9PmIudmFsdWUsc2V0OihiLHkpPT57Yi52YWx1ZT15fX0sbWV0YWRhdGE6dn0saCxmKSxCTihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLHIpLHg9aT10LnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vPXRscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9UmQodGhpcyxvLCIiKTtnZXQgZW50ZXJlZFN0cmluZygpe3JldHVybiB0aGlzLiNlfXNldCBlbnRlcmVkU3RyaW5nKHYpe3RoaXMuI2U9dn0jdD0oUmQodGhpcyxzKSxSZCh0aGlzLGMsITEpKTtnZXQgZW50ZXJlZEliYW5Jc1ZhbGlkKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGVudGVyZWRJYmFuSXNWYWxpZCh2KXt0aGlzLiN0PXZ9I3I9KFJkKHRoaXMsdSksUmQodGhpcyxoLCIiKSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHZhbHVlKHYpe3RoaXMuI3I9dn1zdGF0aWMgc3R5bGVzPVtEZSwuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLyogSUJBTiBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfHwiSUJBTiJ9IC5kZXNjcmlwdGlvbj0ke3RoaXMuZGVzY3JpcHRpb259PjwvZGVlcy1sYWJlbD4KICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAudmFsdWU9JHt0aGlzLnZhbHVlfQogICAgICAgICAgLmRpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgIC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiREU4OSAzNzA0IDAwNDQgMDUzMiAwMTMwIDAwIn0KICAgICAgICAgIEBpbnB1dD0ke3Y9Pnt0aGlzLnZhbGlkYXRlSWJhbih2KX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICA8L2Rpdj4KICAgIGB9Zmlyc3RVcGRhdGVkKHYpe3N1cGVyLmZpcnN0VXBkYXRlZCh2KTtsZXQgYj10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7YiYmYi5jaGFuZ2VTdWJqZWN0JiZiLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCgpPT57dGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyl9KX1hc3luYyB2YWxpZGF0ZUliYW4odil7bGV0IGI9di50YXJnZXQseT1iPy52YWx1ZTt5PXl8fCIiLHRoaXMuZW50ZXJlZFN0cmluZyE9PXkmJih0aGlzLmVudGVyZWRTdHJpbmc9TTZlKHkpfHwiIixiJiYoYi52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy52YWx1ZT10aGlzLmVudGVyZWRTdHJpbmcsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpKSx0aGlzLmVudGVyZWRJYmFuSXNWYWxpZD13NmUodGhpcy5lbnRlcmVkU3RyaW5nLnJlcGxhY2UoLyAvZywiIikpO2xldCB3PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTt3LnZhbGlkYXRpb25UZXh0PWBJQkFOIGlzIHZhbGlkOiAke3RoaXMuZW50ZXJlZEliYW5Jc1ZhbGlkfWB9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX1zZXRWYWx1ZSh2KXt0aGlzLnZhbHVlPXYsdGhpcy5lbnRlcmVkU3RyaW5nPU02ZSh2KXx8IiJ9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFJkKHRoaXMsZil9c3RhdGlje1JkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBpbHIsYWxyPXAoKCk9Pnt4ZSgpO2lscj0oKT0+Q2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDMycHg7CiAgICAgICAgICBwYWRkaW5nOiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzE4MTgxYiIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZXR0aW5ncy1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLnNldHRpbmdzLWdyaWQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk11bHRpLU9wdGlvbiBUb2dnbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TZWxlY3QgZnJvbSBtdWx0aXBsZSBvcHRpb25zIHdpdGggYSBzbW9vdGggc2xpZGluZyBpbmRpY2F0b3IgYW5pbWF0aW9uLjwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiRGlzcGxheSBNb2RlIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJDaG9vc2UgaG93IGNvbnRlbnQgaXMgZGlzcGxheWVkIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJMaXN0IFZpZXciLCJHcmlkIFZpZXciLCJDb21wYWN0Il19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiR3JpZCBWaWV3In0KICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIAogICAgICAgIDxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJULVNoaXJ0IFNpemUifQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlNlbGVjdCB5b3VyIHByZWZlcnJlZCBzaXplIn0KICAgICAgICAgIC5vcHRpb25zPSR7WyJYUyIsIlMiLCJNIiwiTCIsIlhMIiwiWFhMIl19CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Cb29sZWFuIFRvZ2dsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBvbi9vZmYgc3dpdGNoZXMgd2l0aCBjdXN0b21pemFibGUgbGFiZWxzIGZvciBjbGVhcmVyIGNvbnRleHQuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgIC5sYWJlbD0keyJOb3RpZmljYXRpb25zIn0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJFbmFibGUgb3IgZGlzYWJsZSBwdXNoIG5vdGlmaWNhdGlvbnMifQogICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsidHJ1ZSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAKICAgICAgICA8YnI+PGJyPgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAubGFiZWw9JHsiVGhlbWUgTW9kZSJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiU3dpdGNoIGJldHdlZW4gbGlnaHQgYW5kIGRhcmsgdGhlbWUifQogICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IkRhcmsifQogICAgICAgICAgLmJvb2xlYW5GYWxzZU5hbWU9JHsiTGlnaHQifQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkRhcmsifQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2V0dGluZ3MgR3JpZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcnJhbmdlZCBpbiBhIHJlc3BvbnNpdmUgZ3JpZCBsYXlvdXQuPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3MtZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiQXV0by1TYXZlIn0KICAgICAgICAgICAgLnR5cGU9JHsiYm9vbGVhbiJ9CiAgICAgICAgICAgIC5ib29sZWFuVHJ1ZU5hbWU9JHsiRW5hYmxlZCJ9CiAgICAgICAgICAgIC5ib29sZWFuRmFsc2VOYW1lPSR7IkRpc2FibGVkIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IkVuYWJsZWQifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7Ikxhbmd1YWdlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVuZ2xpc2giLCJHZXJtYW4iLCJGcmVuY2giLCJTcGFuaXNoIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbmdsaXNoIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJRdWFsaXR5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkxvdyIsIk1lZGl1bSIsIkhpZ2giLCJVbHRyYSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiSGlnaCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiUHJpdmFjeSJ9CiAgICAgICAgICAgIC50eXBlPSR7ImJvb2xlYW4ifQogICAgICAgICAgICAuYm9vbGVhblRydWVOYW1lPSR7IlByaXZhdGUifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiUHJpdmF0ZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlN0YXRlcyAmIEZvcm0gSW50ZWdyYXRpb248L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5FeGFtcGxlcyBvZiBkaXNhYmxlZCBzdGF0ZXMgYW5kIGludGVncmF0aW9uIHdpdGhpbiBmb3Jtcy48L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgLmxhYmVsPSR7IkFjY291bnQgVHlwZSJ9CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyBzZXR0aW5nIGlzIGxvY2tlZCJ9CiAgICAgICAgICAub3B0aW9ucz0ke1siRnJlZSIsIlBybyIsIkVudGVycHJpc2UiXX0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJFbnRlcnByaXNlIn0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgCiAgICAgICAgPGJyPjxicj4KICAgICAgICAKICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiUHJvamVjdCBOYW1lIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlZpc2liaWxpdHkifQogICAgICAgICAgICAudHlwZT0keyJib29sZWFuIn0KICAgICAgICAgICAgLmJvb2xlYW5UcnVlTmFtZT0keyJQdWJsaWMifQogICAgICAgICAgICAuYm9vbGVhbkZhbHNlTmFtZT0keyJQcml2YXRlIn0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlByaXZhdGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIDxkZWVzLWlucHV0LW11bHRpdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJMaWNlbnNlIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIk1JVCIsIkFwYWNoZSAyLjAiLCJHUEwgdjMiLCJQcm9wcmlldGFyeSJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiTUlUIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGl0b2dnbGU+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIEJkLFhuLHFOLFM2ZT1wKCgpPT57eGUoKTtNMSgpO1BvKCk7YWxyKCk7SmUoKTtCZD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFhuPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxxTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baigpXSxsPVtqKCldLGQ9W2ooKV0seD1baih7dHlwZTpBcnJheX0pXSx5PVtqKCldLE89W2ooe3R5cGU6Qm9vbGVhbn0pXSxCZCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJ0eXBlImluIE4sZ2V0Ok49Pk4udHlwZSxzZXQ6KE4sUik9PntOLnR5cGU9Un19LG1ldGFkYXRhOkR9LG8scyksQmQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuVHJ1ZU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJib29sZWFuVHJ1ZU5hbWUiaW4gTixnZXQ6Tj0+Ti5ib29sZWFuVHJ1ZU5hbWUsc2V0OihOLFIpPT57Ti5ib29sZWFuVHJ1ZU5hbWU9Un19LG1ldGFkYXRhOkR9LGMsdSksQmQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJib29sZWFuRmFsc2VOYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4iYm9vbGVhbkZhbHNlTmFtZSJpbiBOLGdldDpOPT5OLmJvb2xlYW5GYWxzZU5hbWUsc2V0OihOLFIpPT57Ti5ib29sZWFuRmFsc2VOYW1lPVJ9fSxtZXRhZGF0YTpEfSxoLGYpLEJkKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3B0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+Im9wdGlvbnMiaW4gTixnZXQ6Tj0+Ti5vcHRpb25zLHNldDooTixSKT0+e04ub3B0aW9ucz1SfX0sbWV0YWRhdGE6RH0sdixiKSxCZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkT3B0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4ic2VsZWN0ZWRPcHRpb24iaW4gTixnZXQ6Tj0+Ti5zZWxlY3RlZE9wdGlvbixzZXQ6KE4sUik9PntOLnNlbGVjdGVkT3B0aW9uPVJ9fSxtZXRhZGF0YTpEfSx3LGspLEJkKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm9vbFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4iYm9vbFZhbHVlImluIE4sZ2V0Ok49Pk4uYm9vbFZhbHVlLHNldDooTixSKT0+e04uYm9vbFZhbHVlPVJ9fSxtZXRhZGF0YTpEfSx6LE0pLEJkKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkR9LG51bGwsciksRj1pPXQudmFsdWUsRCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpEfSl9c3RhdGljIGRlbW89aWxyO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1Ybih0aGlzLG8sIm11bHRpIik7Z2V0IHR5cGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdHlwZShEKXt0aGlzLiNlPUR9I3Q9KFhuKHRoaXMscyksWG4odGhpcyxjLCJ0cnVlIikpO2dldCBib29sZWFuVHJ1ZU5hbWUoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYm9vbGVhblRydWVOYW1lKEQpe3RoaXMuI3Q9RH0jcj0oWG4odGhpcyx1KSxYbih0aGlzLGgsImZhbHNlIikpO2dldCBib29sZWFuRmFsc2VOYW1lKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGJvb2xlYW5GYWxzZU5hbWUoRCl7dGhpcy4jcj1EfSNpPShYbih0aGlzLGYpLFhuKHRoaXMsdixbXSkpO2dldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuI2l9c2V0IG9wdGlvbnMoRCl7dGhpcy4jaT1EfSNhPShYbih0aGlzLGIpLFhuKHRoaXMsdywiIikpO2dldCBzZWxlY3RlZE9wdGlvbigpe3JldHVybiB0aGlzLiNhfXNldCBzZWxlY3RlZE9wdGlvbihEKXt0aGlzLiNhPUR9I249KFhuKHRoaXMsayksWG4odGhpcyx6LCExKSk7Z2V0IGJvb2xWYWx1ZSgpe3JldHVybiB0aGlzLiNufXNldCBib29sVmFsdWUoRCl7dGhpcy4jbj1EfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLnR5cGU9PT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj09PXRoaXMuYm9vbGVhblRydWVOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb259c2V0IHZhbHVlKEQpe3RoaXMudHlwZT09PSJib29sZWFuIiYmdHlwZW9mIEQ9PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPUQ/dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5ib29sZWFuRmFsc2VOYW1lOnRoaXMuc2VsZWN0ZWRPcHRpb249RCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmhhc1VwZGF0ZWQmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2V0SW5kaWNhdG9yKCl9KX1zdGF0aWMgc3R5bGVzPVtEZSwuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zZWxlY3Rpb25zIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTsKICAgICAgfQoKICAgICAgLm9wdGlvbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHBhZGRpbmc6IDhweCAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICAub3B0aW9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxODE4MWIiLCIjZTRlNGU3Iil9OwogICAgICB9CgogICAgICAub3B0aW9uLnNlbGVjdGVkIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICB9CgogICAgICAuaW5kaWNhdG9yIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDhweCk7CiAgICAgICAgdG9wOiA0cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CiAgICAgIAogICAgICAuaW5kaWNhdG9yLm5vLXRyYW5zaXRpb24gewogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5zZWxlY3Rpb25zIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLm9wdGlvbiB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmluZGljYXRvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMTEzLCAxMTMsIDEyMiwgMC4xNSkiLCJyZ2JhKDExMywgMTEzLCAxMjIsIDAuMTUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgPGRlZXMtbGFiZWwgLmxhYmVsPSR7dGhpcy5sYWJlbH0gLmRlc2NyaXB0aW9uPSR7dGhpcy5kZXNjcmlwdGlvbn0+PC9kZWVzLWxhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0aW9ucyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJpbmRpY2F0b3IiPjwvZGl2PgogICAgICAgICAgJHt0aGlzLm9wdGlvbnMubWFwKEQ9PkNgPGRpdiBjbGFzcz0ib3B0aW9uICR7RD09PXRoaXMuc2VsZWN0ZWRPcHRpb24/InNlbGVjdGVkIjoiIn0iIEBjbGljaz0keygpPT50aGlzLmhhbmRsZVNlbGVjdGlvbihEKX0+CiAgICAgICAgICAgICAgICAke0R9CiAgICAgICAgICAgICAgPC9kaXY+IGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksdGhpcy50eXBlPT09ImJvb2xlYW4iJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPT09MCYmKHRoaXMub3B0aW9ucz1bdGhpcy5ib29sZWFuVHJ1ZU5hbWV8fCJ0cnVlIix0aGlzLmJvb2xlYW5GYWxzZU5hbWV8fCJmYWxzZSJdLHRoaXMuc2VsZWN0ZWRPcHRpb258fCh0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMuYm9vbGVhbkZhbHNlTmFtZXx8ImZhbHNlIikpLCF0aGlzLnNlbGVjdGVkT3B0aW9uJiZ0aGlzLm9wdGlvbnMubGVuZ3RoPjAmJih0aGlzLnNlbGVjdGVkT3B0aW9uPXRoaXMub3B0aW9uc1swXSl9YXN5bmMgZmlyc3RVcGRhdGVkKEQpe3N1cGVyLmZpcnN0VXBkYXRlZChEKSx0aGlzLnR5cGU9PT0iYm9vbGVhbiImJih0aGlzLm9wdGlvbnM9W3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSIsdGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiXSksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSxkb2N1bWVudC5mb250cyYmYXdhaXQgZG9jdW1lbnQuZm9udHMucmVhZHksYXdhaXQgbmV3IFByb21pc2UoTj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKE4pKSx0aGlzLnNldEluZGljYXRvcigpfWFzeW5jIGhhbmRsZVNlbGVjdGlvbihEKXt0aGlzLmRpc2FibGVkfHwodGhpcy5zZWxlY3RlZE9wdGlvbj1ELHRoaXMucmVxdWVzdFVwZGF0ZSgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5zZXRJbmRpY2F0b3IoKSl9aW5kaWNhdG9ySW5pdGlhbGl6ZWQ9KFhuKHRoaXMsTSksITEpO2FzeW5jIHNldEluZGljYXRvcigpe2xldCBEPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuaW5kaWNhdG9yIiksTj10aGlzLm9wdGlvbnMuaW5kZXhPZih0aGlzLnNlbGVjdGVkT3B0aW9uKTtpZihOPT09LTF8fCFEKXtEJiYoRC5zdHlsZS5vcGFjaXR5PSIwIik7cmV0dXJufWxldCBSPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGAub3B0aW9uOm50aC1jaGlsZCgke04rMn0pYCk7RCYmUiYmKHRoaXMuaW5kaWNhdG9ySW5pdGlhbGl6ZWR8fChELmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSx0aGlzLmluZGljYXRvckluaXRpYWxpemVkPSEwLHNldFRpbWVvdXQoKCk9PntELmNsYXNzTGlzdC5yZW1vdmUoIm5vLXRyYW5zaXRpb24iKX0sNTApKSxELnN0eWxlLndpZHRoPWAke1IuY2xpZW50V2lkdGh9cHhgLEQuc3R5bGUubGVmdD1gJHtSLm9mZnNldExlZnR9cHhgLEQuc3R5bGUub3BhY2l0eT0iMSIpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudHlwZT09PSJib29sZWFuIj90aGlzLnNlbGVjdGVkT3B0aW9uPT09dGhpcy5ib29sZWFuVHJ1ZU5hbWU6dGhpcy5zZWxlY3RlZE9wdGlvbn1zZXRWYWx1ZShEKXt0aGlzLnR5cGU9PT0iYm9vbGVhbiImJnR5cGVvZiBEPT0iYm9vbGVhbiI/dGhpcy5zZWxlY3RlZE9wdGlvbj1EP3RoaXMuYm9vbGVhblRydWVOYW1lfHwidHJ1ZSI6dGhpcy5ib29sZWFuRmFsc2VOYW1lfHwiZmFsc2UiOnRoaXMuc2VsZWN0ZWRPcHRpb249RCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmhhc1VwZGF0ZWQmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuc2V0SW5kaWNhdG9yKCl9KX1zdGF0aWN7WG4oaSxyKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIG5scixvbHI9cCgoKT0+e3hlKCk7bmxyPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBQaG9uZSBJbnB1dCJ9IC5zdWJ0aXRsZT0keyJBdXRvbWF0aWMgZm9ybWF0dGluZyBmb3IgcGhvbmUgbnVtYmVycyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJQaG9uZSBOdW1iZXIifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRW50ZXIgeW91ciBwaG9uZSBudW1iZXIgd2l0aCBjb3VudHJ5IGNvZGUifQogICAgICAgICAgICAudmFsdWU9JHsiNTU1MTIzNDU2NyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lCiAgICAgICAgICAgIC5sYWJlbD0keyJDb250YWN0IFBob25lIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlcXVpcmVkIGZvciBhY2NvdW50IHZlcmlmaWNhdGlvbiJ9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiKzEgKDU1NSkgMDAwLTAwMDAifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7Ikhvcml6b250YWwgTGF5b3V0In0gLnN1YnRpdGxlPSR7IlBob25lIGlucHV0cyBhcnJhbmdlZCBob3Jpem9udGFsbHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lIAogICAgICAgICAgICAubGFiZWw9JHsiTW9iaWxlIn0gCiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgICAudmFsdWU9JHsiNDE1NTU1MTIzNCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAKICAgICAgICAgICAgLmxhYmVsPSR7Ik9mZmljZSJ9IAogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IisxICg4MDApIDU1NS0wMDAwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcm5hdGlvbmFsIE51bWJlcnMifSAuc3VidGl0bGU9JHsiU3VwcG9ydHMgZm9ybWF0dGluZyBmb3IgbnVtYmVycyB3aXRoIGNvdW50cnkgY29kZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZQogICAgICAgICAgICAubGFiZWw9JHsiSW50ZXJuYXRpb25hbCBDb250YWN0In0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkF1dG9tYXRpY2FsbHkgZm9ybWF0cyBpbnRlcm5hdGlvbmFsIG51bWJlcnMifQogICAgICAgICAgICAudmFsdWU9JHsiNDQxMjM0NTY3ODkwIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtcGhvbmU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAgLmxhYmVsPSR7IkVtZXJnZW5jeSBDb250YWN0In0KICAgICAgICAgICAgLnZhbHVlPSR7IjkxMSJ9CiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IkZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiUGhvbmUgaW5wdXQgYXMgcGFydCBvZiBhIGNvbnRhY3QgZm9ybSJ9PgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJGdWxsIE5hbWUifSAucmVxdWlyZWQ9JHshMH0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1waG9uZSAubGFiZWw9JHsiUGhvbmUgTnVtYmVyIn0gLnJlcXVpcmVkPSR7ITB9PjwvZGVlcy1pbnB1dC1waG9uZT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgLmxhYmVsPSR7IkVtYWlsIn0gLmlucHV0VHlwZT0keyJlbWFpbCJ9PjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2Rpdj4KICA8L2RlZXMtZGVtb3dyYXBwZXI+CmB9KTt2YXIgak4sSGQsVk4sejZlPXAoKCk9Pnt4ZSgpO0t0KCk7TTEoKTtvbHIoKTtKZSgpO2pOPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sSGQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFZOPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC1waG9uZSIpXSx0LHI9W10saSxhPW90LG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtmZSgpXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOlN0cmluZ30pXSxqTih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZvcm1hdHRlZFBob25lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4iZm9ybWF0dGVkUGhvbmUiaW4gYixnZXQ6Yj0+Yi5mb3JtYXR0ZWRQaG9uZSxzZXQ6KGIseSk9PntiLmZvcm1hdHRlZFBob25lPXl9fSxtZXRhZGF0YTp2fSxvLHMpLGpOKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJ2YWx1ZSJpbiBiLGdldDpiPT5iLnZhbHVlLHNldDooYix5KT0+e2IudmFsdWU9eX19LG1ldGFkYXRhOnZ9LGMsdSksak4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwbGFjZWhvbGRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InBsYWNlaG9sZGVyImluIGIsZ2V0OmI9PmIucGxhY2Vob2xkZXIsc2V0OihiLHkpPT57Yi5wbGFjZWhvbGRlcj15fX0sbWV0YWRhdGE6dn0saCxmKSxqTihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLHIpLHg9aT10LnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vPW5scjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9SGQodGhpcyxvLCIiKTtnZXQgZm9ybWF0dGVkUGhvbmUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZm9ybWF0dGVkUGhvbmUodil7dGhpcy4jZT12fSN0PShIZCh0aGlzLHMpLEhkKHRoaXMsYywiIikpO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiN0fXNldCB2YWx1ZSh2KXt0aGlzLiN0PXZ9I3I9KEhkKHRoaXMsdSksSGQodGhpcyxoLCIrMSAoNTU1KSAxMjMtNDU2NyIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jcn1zZXQgcGxhY2Vob2xkZXIodil7dGhpcy4jcj12fXN0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICAvKiBQaG9uZSBpbnB1dCBzcGVjaWZpYyBzdHlsZXMgY2FuIGdvIGhlcmUgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgLnZhbHVlPSR7dGhpcy5mb3JtYXR0ZWRQaG9uZX0KICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7dGhpcy5wbGFjZWhvbGRlcn0KICAgICAgICAgIEBpbnB1dD0ke3Y9PnRoaXMuaGFuZGxlUGhvbmVJbnB1dCh2KX0KICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQodil7c3VwZXIuZmlyc3RVcGRhdGVkKHYpLHRoaXMudmFsdWUmJih0aGlzLmZvcm1hdHRlZFBob25lPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIodGhpcy52YWx1ZSkpO2xldCBiPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTtiJiZiLmNoYW5nZVN1YmplY3QmJmIuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX0pfWhhbmRsZVBob25lSW5wdXQodil7bGV0IGI9di50YXJnZXQseT10aGlzLmNsZWFuUGhvbmVOdW1iZXIoYi52YWx1ZSksdz10aGlzLmZvcm1hdFBob25lTnVtYmVyKHkpO2lmKGIudmFsdWUhPT13KXtsZXQgaz1iLnNlbGVjdGlvblN0YXJ0fHwwO2IudmFsdWU9dztsZXQgTz10aGlzLmNhbGN1bGF0ZUN1cnNvclBvc2l0aW9uKHksdyxrKTtiLnNldFNlbGVjdGlvblJhbmdlKE8sTyl9dGhpcy5mb3JtYXR0ZWRQaG9uZT13LHRoaXMudmFsdWU9eSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1jbGVhblBob25lTnVtYmVyKHYpe3JldHVybiB2LnJlcGxhY2UoL1xEL2csIiIpfWZvcm1hdFBob25lTnVtYmVyKHYpe2xldCBiPXRoaXMuY2xlYW5QaG9uZU51bWJlcih2KTtyZXR1cm4gYi5sZW5ndGg9PT0wPyIiOmIubGVuZ3RoPD0zP2I6Yi5sZW5ndGg8PTY/YCgke2Iuc2xpY2UoMCwzKX0pICR7Yi5zbGljZSgzKX1gOmIubGVuZ3RoPD0xMD9gKCR7Yi5zbGljZSgwLDMpfSkgJHtiLnNsaWNlKDMsNil9LSR7Yi5zbGljZSg2KX1gOmArJHtiLnNsaWNlKDAsYi5sZW5ndGgtMTApfSAoJHtiLnNsaWNlKC0xMCwtNyl9KSAke2Iuc2xpY2UoLTcsLTQpfS0ke2Iuc2xpY2UoLTQpfWB9Y2FsY3VsYXRlQ3Vyc29yUG9zaXRpb24odixiLHkpe2xldCB3PTA7Zm9yKGxldCBrPTA7azx5JiZrPGIubGVuZ3RoO2srKykvXGQvLnRlc3QoYltrXSl8fHcrKztyZXR1cm4gTWF0aC5taW4oeSt3LGIubGVuZ3RoKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKHYpe3RoaXMudmFsdWU9dix0aGlzLmZvcm1hdHRlZFBob25lPXRoaXMuZm9ybWF0UGhvbmVOdW1iZXIodil9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLEhkKHRoaXMsZil9c3RhdGlje0hkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBzbHIsbGxyPXAoKCk9Pnt4ZSgpO3AxKCk7T2koKTtzbHI9KCk9PkNgCiAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb24iKSxyPWUucXVlcnlTZWxlY3RvcigiI3RvZ2dsZS1hbGwtb2ZmIiksaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5mZWF0dXJlLXRvZ2dsZXMgZGVlcy1pbnB1dC10b2dnbGUiKTt0JiZyJiYodC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntpLmZvckVhY2goYT0+eyFhLmRpc2FibGVkJiYhYS5yZXF1aXJlZCYmKGEudmFsdWU9ITApfSl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2kuZm9yRWFjaChhPT57IWEuZGlzYWJsZWQmJiFhLnJlcXVpcmVkJiYoYS52YWx1ZT0hMSl9KX0pKX19PgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KCiAgICAgICAgZGVlcy1wYW5lbDpsYXN0LWNoaWxkIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQoKICAgICAgICAudG9nZ2xlLWdyb3VwIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmhvcml6b250YWwtdG9nZ2xlcyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KCiAgICAgICAgLmludGVyYWN0aXZlLXNlY3Rpb24gewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAub3V0cHV0LXRleHQgewogICAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyNi43JSkiLCJoc2woMjEwIDQwJSA4MCUpIil9OwogICAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7CiAgICAgICAgfQoKICAgICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIH0KCiAgICAgICAgLmJ1dHRvbi1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIH0KCiAgICAgICAgLmZlYXR1cmUtdG9nZ2xlcyB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMS44JSkiKX07CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTYuOCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB9CgogICAgICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICB9CgogICAgICAgIC5kcmFnLWhpbnQgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJCYXNpYyBUb2dnbGUifSAuc3VidGl0bGU9JHsiU2ltcGxlIG9uL29mZiB0b2dnbGUgc3dpdGNoIHdpdGggZHJhZyBzdXBwb3J0In0+CiAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRW5hYmxlIGZlYXR1cmUifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmtleT0keyJiYXNpYyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkFjdGl2ZSB0b2dnbGUifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmtleT0keyJhY3RpdmUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJXaXRoIGRlc2NyaXB0aW9uIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJUaGlzIHRvZ2dsZSBoYXMgYWRkaXRpb25hbCBoZWxwZXIgdGV4dCBleHBsYWluaW5nIGl0cyBwdXJwb3NlIn0KICAgICAgICAgICAgLmtleT0keyJ3aXRoRGVzYyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8cCBjbGFzcz0iZHJhZy1oaW50Ij5UaXA6IFlvdSBjYW4gZHJhZyB0aGUgdG9nZ2xlIGtub2IgdG8gc3dpdGNoIHN0YXRlczwvcD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlRvZ2dsZSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHRvZ2dsZSBzdGF0ZXMgYW5kIGNvbmZpZ3VyYXRpb25zIn0+CiAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGVmYXVsdCAob2ZmKSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJFbmFibGVkIChvbikifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiRGlzYWJsZWQgKG9mZikifQogICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRpc2FibGVkIChvbikifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IlJlcXVpcmVkIChhbHdheXMgb24pIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhpcyB0b2dnbGUgY2Fubm90IGJlIHR1cm5lZCBvZmYifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJIb3Jpem9udGFsIExheW91dCJ9IC5zdWJ0aXRsZT0keyJUb2dnbGVzIGFycmFuZ2VkIGhvcml6b250YWxseSBmb3IgY29tcGFjdCBpbnRlcmZhY2VzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC10b2dnbGVzIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiV2lGaSJ9CiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsiQmx1ZXRvb3RoIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIC5sYXlvdXRNb2RlPSR7Imhvcml6b250YWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJHUFMifQogICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7Ik5GQyJ9CiAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2V0dGluZ3MgRXhhbXBsZSJ9IC5zdWJ0aXRsZT0keyJUb2dnbGVzIGluIGEgdHlwaWNhbCBzZXR0aW5ncyBjb250ZXh0In0+CiAgICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgICA8aDQgY2xhc3M9InNlY3Rpb24tdGl0bGUiPk5vdGlmaWNhdGlvbiBTZXR0aW5nczwvaDQ+CgogICAgICAgICAgPGRpdiBjbGFzcz0idG9nZ2xlLWdyb3VwIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlB1c2ggbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlJlY2VpdmUgcHVzaCBub3RpZmljYXRpb25zIG9uIHlvdXIgZGV2aWNlIn0KICAgICAgICAgICAgICAua2V5PSR7InB1c2gifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJFbWFpbCBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiR2V0IGltcG9ydGFudCB1cGRhdGVzIHZpYSBlbWFpbCJ9CiAgICAgICAgICAgICAgLmtleT0keyJlbWFpbCJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IlNvdW5kIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiUGxheSBhIHNvdW5kIGZvciBub3RpZmljYXRpb25zIn0KICAgICAgICAgICAgICAua2V5PSR7InNvdW5kIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiVmlicmF0aW9uIn0KICAgICAgICAgICAgICAudmFsdWU9JHshMH0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVmlicmF0ZSBmb3Igbm90aWZpY2F0aW9ucyJ9CiAgICAgICAgICAgICAgLmtleT0keyJ2aWJyYXRpb24ifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZSBUb2dnbGVzIn0gLnN1YnRpdGxlPSR7IkJhdGNoIG9wZXJhdGlvbnMgb24gbXVsdGlwbGUgdG9nZ2xlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9InRvZ2dsZS1hbGwtb24iIHR5cGU9InNlY29uZGFyeSI+RW5hYmxlIEFsbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWQ9InRvZ2dsZS1hbGwtb2ZmIiB0eXBlPSJzZWNvbmRhcnkiPkRpc2FibGUgQWxsPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS10b2dnbGVzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvZ2dsZS1ncm91cCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJEYXJrIE1vZGUifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5rZXk9JHsiZGFya01vZGUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJBdXRvLXNhdmUifQogICAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgICAgIC5rZXk9JHsiYXV0b1NhdmUifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRvZ2dsZQogICAgICAgICAgICAgIC5sYWJlbD0keyJTcGVsbCBjaGVjayJ9CiAgICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgICAgLmtleT0keyJzcGVsbENoZWNrIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10b2dnbGU+CgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgICAubGFiZWw9JHsiRGV2ZWxvcGVyIG1vZGUifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiZGV2TW9kZSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgoKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgICAgLmxhYmVsPSR7IkJldGEgZmVhdHVyZXMifQogICAgICAgICAgICAgIC52YWx1ZT0keyExfQogICAgICAgICAgICAgIC5rZXk9JHsiYmV0YSJ9CiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdG9nZ2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJJbnRlcmFjdGl2ZSBFeGFtcGxlIn0gLnN1YnRpdGxlPSR7IlRvZ2dsZSB0byBzZWUgdmFsdWUgY2hhbmdlcyBpbiByZWFsLXRpbWUifT4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b2dnbGUtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdG9nZ2xlCiAgICAgICAgICAgIC5sYWJlbD0keyJBaXJwbGFuZSBtb2RlIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBuZXdWYWx1ZT0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWlycGxhbmUtb3V0cHV0Iik7dCYmKHQudGV4dENvbnRlbnQ9YEFpcnBsYW5lIG1vZGU6ICR7ZS5kZXRhaWw/Ik9OIjoiT0ZGIn1gKX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10b2dnbGUKICAgICAgICAgICAgLmxhYmVsPSR7IkRvIG5vdCBkaXN0dXJiIn0KICAgICAgICAgICAgLnZhbHVlPSR7ITF9CiAgICAgICAgICAgIEBuZXdWYWx1ZT0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZG5kLW91dHB1dCIpO3QmJih0LnRleHRDb250ZW50PWBEbyBub3QgZGlzdHVyYjogJHtlLmRldGFpbD8iRU5BQkxFRCI6IkRJU0FCTEVEIn1gKX19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaW50ZXJhY3RpdmUtc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGlkPSJhaXJwbGFuZS1vdXRwdXQiIGNsYXNzPSJvdXRwdXQtdGV4dCI+QWlycGxhbmUgbW9kZTogT0ZGPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkbmQtb3V0cHV0IiBjbGFzcz0ib3V0cHV0LXRleHQiIHN0eWxlPSJtYXJnaW4tdG9wOiA4cHg7Ij5EbyBub3QgZGlzdHVyYjogRElTQUJMRUQ8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIGNscixDNmUsVU4sVDZlPXAoKCk9Pnt4ZSgpO0t0KCk7TTEoKTtsbHIoKTtRYSgpO0plKCk7Y2xyPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sQzZlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxVTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtdG9nZ2xlIildLHQscj1bXSxpLGE9b3QsbixvPVtdLHM9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLGNscih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4idmFsdWUiaW4gdSxnZXQ6dT0+dS52YWx1ZSxzZXQ6KHUsZCk9Pnt1LnZhbHVlPWR9fSxtZXRhZGF0YTpjfSxvLHMpLGNscihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPXNscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9QzZlKHRoaXMsbywhMSk7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKGMpe3RoaXMuI2U9Y31jdXJyZW50WD0oQzZlKHRoaXMscyksMCk7aXNEcmFnZ2luZz0hMTtoYXNEcmFnZ2VkPSExO3N0YXJ0WD0wO3RyYWNrV2lkdGg9MzY7dHJhY2tIZWlnaHQ9MjA7a25vYlNpemU9MTQ7cGFkZGluZz0yO21heFRyYXZlbD0xNjtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5sYWJlbFBvc2l0aW9uPSJyaWdodCJ9c3RhdGljIHN0eWxlcz1bRGUsLi4ub3QuYmFzZVN0eWxlcyxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIDpob3N0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBtYXJnaW4tdG9wOiAxcHg7CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyOmhvdmVyIC50b2dnbGUtdHJhY2sgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW3ZhbHVlXSkgLnRvZ2dsZS10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICB9CgogICAgICAudG9nZ2xlLXRyYWNrOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1rbm9iIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAycHg7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1rbm9iLmRyYWdnaW5nIHsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFt2YWx1ZV0pIC50b2dnbGUta25vYiB7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS10cmFjay5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFJlcXVpcmVkIHN0YXRlIChsb2NrZWQgb24pICovCiAgICAgIDpob3N0KFtyZXF1aXJlZF1bdmFsdWVdKSAudG9nZ2xlLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDYxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA0OS44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDYxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA0OS44JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQoKICAgICAgOmhvc3QoW3JlcXVpcmVkXVt2YWx1ZV0pIC50b2dnbGUta25vYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAvKiBMYWJlbCAqLwogICAgICAubGFiZWwtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnRvZ2dsZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lcjpob3ZlciAudG9nZ2xlLWxhYmVsIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tYWluY29udGFpbmVyLmRpc2FibGVkOmhvdmVyIC50b2dnbGUtbGFiZWwgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERlc2NyaXB0aW9uICovCiAgICAgIC5kZXNjcmlwdGlvbi10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIgJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IiBAY2xpY2s9IiR7dGhpcy5oYW5kbGVDbGlja30iPgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0idG9nZ2xlLXRyYWNrICR7dGhpcy5kaXNhYmxlZD8iZGlzYWJsZWQiOiIifSIKICAgICAgICAgICAgdGFiaW5kZXg9IiR7dGhpcy5kaXNhYmxlZD8iLTEiOiIwIn0iCiAgICAgICAgICAgIEBrZXlkb3duPSIke3RoaXMuaGFuZGxlS2V5ZG93bn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBjbGFzcz0idG9nZ2xlLWtub2IiCiAgICAgICAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wYWRkaW5nK3RoaXMuY3VycmVudFh9cHg7IgogICAgICAgICAgICAgIEBwb2ludGVyZG93bj0iJHt0aGlzLm9uUG9pbnRlckRvd259IgogICAgICAgICAgICAgIEBwb2ludGVybW92ZT0iJHt0aGlzLm9uUG9pbnRlck1vdmV9IgogICAgICAgICAgICAgIEBwb2ludGVydXA9IiR7dGhpcy5vblBvaW50ZXJVcH0iCiAgICAgICAgICAgICAgQHBvaW50ZXJjYW5jZWw9IiR7dGhpcy5vblBvaW50ZXJVcH0iCiAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwtY29udGFpbmVyIj4KICAgICAgICAgICAgJHt0aGlzLmxhYmVsP0NgPGRpdiBjbGFzcz0idG9nZ2xlLWxhYmVsIj4ke3RoaXMubGFiZWx9PC9kaXY+YDoiIn0KICAgICAgICAgICAgJHt0aGlzLmRlc2NyaXB0aW9uP0NgPGRpdiBjbGFzcz0iZGVzY3JpcHRpb24tdGV4dCI+JHt0aGlzLmRlc2NyaXB0aW9ufTwvZGl2PmA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChjKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoYyksdGhpcy5yZXF1aXJlZCYmIXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPSEwKSx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1hc3luYyBoYW5kbGVDbGljayhjKXtpZih0aGlzLmlzRHJhZ2dpbmd8fHRoaXMuaGFzRHJhZ2dlZCl7Yy5zdG9wUHJvcGFnYXRpb24oKSxjLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWlmKCF0aGlzLmRpc2FibGVkKXtpZih0aGlzLnJlcXVpcmVkKXt0aGlzLmN1cnJlbnRYPXRoaXMubWF4VHJhdmVsLHRoaXMucmVxdWVzdFVwZGF0ZSgpLGF3YWl0IG5ldyBQcm9taXNlKHU9PnNldFRpbWVvdXQodSwxMCkpLHRoaXMuY3VycmVudFg9dGhpcy5tYXhUcmF2ZWwtMyx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCBqdC5zbWFydGRlbGF5LmRlbGF5Rm9yKDE1MCksdGhpcy5jdXJyZW50WD10aGlzLm1heFRyYXZlbCx0aGlzLnJlcXVlc3RVcGRhdGUoKTtyZXR1cm59Yy5zdG9wUHJvcGFnYXRpb24oKSxjLnByZXZlbnREZWZhdWx0KCksdGhpcy52YWx1ZT0hdGhpcy52YWx1ZSx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksanQuc21hcnRkZWxheS5kZWxheUZvcigwKS50aGVuKCgpPT57dGhpcy5oYXNEcmFnZ2VkPSExfSl9fW9uUG9pbnRlckRvd24oYyl7dGhpcy5yZXF1aXJlZHx8dGhpcy5kaXNhYmxlZHx8KHRoaXMuaXNEcmFnZ2luZz0hMCx0aGlzLnN0YXJ0WD1jLmNsaWVudFgtdGhpcy5jdXJyZW50WCxjLnRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShjLnBvaW50ZXJJZCkpfW9uUG9pbnRlck1vdmUoYyl7aWYoIXRoaXMuaXNEcmFnZ2luZylyZXR1cm47bGV0IHU9Yy5jbGllbnRYLXRoaXMuc3RhcnRYO3RoaXMuaGFzRHJhZ2dlZD0hMDtsZXQgZD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi50b2dnbGUta25vYiIpO2QmJmQuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSx0aGlzLmN1cnJlbnRYPU1hdGgubWF4KDAsTWF0aC5taW4odSx0aGlzLm1heFRyYXZlbCkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfW9uUG9pbnRlclVwKGMpe2lmKCF0aGlzLmlzRHJhZ2dpbmd8fChjLnRhcmdldC5yZWxlYXNlUG9pbnRlckNhcHR1cmUoYy5wb2ludGVySWQpLHRoaXMuaXNEcmFnZ2luZz0hMSwhdGhpcy5oYXNEcmFnZ2VkKSlyZXR1cm47bGV0IHU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLWtub2IiKTt1JiZ1LmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIik7bGV0IGQ9dGhpcy5tYXhUcmF2ZWwvMjt0aGlzLnZhbHVlPXRoaXMuY3VycmVudFg+ZCx0aGlzLmN1cnJlbnRYPXRoaXMudmFsdWU/dGhpcy5tYXhUcmF2ZWw6MCx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJuZXdWYWx1ZSIse2RldGFpbDp0aGlzLnZhbHVlLGJ1YmJsZXM6ITB9KSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcyksanQuc21hcnRkZWxheS5kZWxheUZvcigwKS50aGVuKCgpPT57dGhpcy5oYXNEcmFnZ2VkPSExfSl9dXBkYXRlZChjKXtzdXBlci51cGRhdGVkKGMpLGMuaGFzKCJ2YWx1ZSIpJiYhdGhpcy5pc0RyYWdnaW5nJiYhdGhpcy5oYXNEcmFnZ2VkJiYodGhpcy5jdXJyZW50WD10aGlzLnZhbHVlP3RoaXMubWF4VHJhdmVsOjAsdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfWhhbmRsZUtleWRvd24oYyl7KGMua2V5PT09IiAifHxjLmtleT09PSJFbnRlciIpJiYoYy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaGFuZGxlQ2xpY2soYykpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoYyl7dGhpcy52YWx1ZT1jfWZvY3VzKCl7bGV0IGM9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudG9nZ2xlLXRyYWNrIik7YyYmYy5mb2N1cygpfXN0YXRpY3tDNmUoaSxyKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIGRscix1bHI9cCgoKT0+e3hlKCk7ZGxyPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5wdXQtZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5pbmZvLWJveCB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlM2YyZmQ7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICBjb2xvcjogIzE5NzZkMjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmluZm8tYm94IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlM2E1ZjsKICAgICAgICAgICAgY29sb3I6ICM5MGNhZjk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiQmFzaWMgVHlwZSBMaXN0In0gLnN1YnRpdGxlPSR7IkFkZCBhbmQgcmVtb3ZlIGl0ZW1zIGZyb20gYSBsaXN0In0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIHRhZ3MgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlciJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siamF2YXNjcmlwdCIsInR5cGVzY3JpcHQiLCJ3ZWItY29tcG9uZW50cyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVGVhbSBNZW1iZXJzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCBlbWFpbCBhZGRyZXNzZXMgb2YgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJhbGljZUBleGFtcGxlLmNvbSIsImJvYkBleGFtcGxlLmNvbSJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlNraWxscyAmIEtleXdvcmRzIn0gLnN1YnRpdGxlPSR7Ik1hbmFnZSBsaXN0cyBvZiBza2lsbHMgYW5kIGtleXdvcmRzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IllvdXIgU2tpbGxzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7Ikxpc3QgeW91ciBwcm9mZXNzaW9uYWwgc2tpbGxzIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJIVE1MIiwiQ1NTIiwiSmF2YVNjcmlwdCIsIk5vZGUuanMiLCJSZWFjdCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWlucHV0LXR5cGVsaXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJDYXRlZ29yaWVzIn0KICAgICAgICAgICAgLmxheW91dE1vZGU9JHsiaG9yaXpvbnRhbCJ9CiAgICAgICAgICAgIC52YWx1ZT0ke1siVGVjaG5vbG9neSIsIkRlc2lnbiIsIkJ1c2luZXNzIl19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiS2V5d29yZHMifQogICAgICAgICAgICAubGF5b3V0TW9kZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLnZhbHVlPSR7WyJpbm5vdmF0aW9uIiwic3RhcnR1cCIsImdyb3d0aCJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IlJlcXVpcmVkICYgRGlzYWJsZWQgU3RhdGVzIn0gLnN1YnRpdGxlPSR7IkRpZmZlcmVudCBpbnB1dCBzdGF0ZXMgZm9yIHZhbGlkYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBEZXBlbmRlbmNpZXMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTGlzdCBhbGwgcmVxdWlyZWQgbnBtIHBhY2thZ2VzIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0ke1siQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IiwiQGRlc2lnbi5lc3RhdGUvZGVlcy1kb210b29scyJdfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10eXBlbGlzdD4KCiAgICAgICAgICA8ZGVlcy1pbnB1dC10eXBlbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiU3lzdGVtIFRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiVGhlc2UgdGFncyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIn0KICAgICAgICAgICAgLmRpc2FibGVkPSR7ITB9CiAgICAgICAgICAgIC52YWx1ZT0ke1sic3lzdGVtIiwicHJvdGVjdGVkIiwicmVhZG9ubHkiXX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJBcnRpY2xlIFB1Ymxpc2hpbmcgRm9ybSJ9IC5zdWJ0aXRsZT0keyJDb21wbGV0ZSBmb3JtIHdpdGggdGFnIG1hbmFnZW1lbnQifT4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQXJ0aWNsZSBUaXRsZSJ9IC5yZXF1aXJlZD0keyEwfT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJTdW1tYXJ5In0gCiAgICAgICAgICAgIC5pbnB1dFR5cGU9JHsidGV4dGFyZWEifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGFydGljbGUifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IlRhZ3MifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIHJlbGV2YW50IHRhZ3MgZm9yIGJldHRlciBkaXNjb3ZlcmFiaWxpdHkifQogICAgICAgICAgICAudmFsdWU9JHtbInR1dG9yaWFsIiwid2ViLWRldmVsb3BtZW50Il19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXR5cGVsaXN0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdHlwZWxpc3QKICAgICAgICAgICAgLmxhYmVsPSR7IkNvLUF1dGhvcnMifQogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGVtYWlsIGFkZHJlc3NlcyBvZiBjby1hdXRob3JzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdHlwZWxpc3Q+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1ib3giPgogICAgICAgICAgPHN0cm9uZz5UaXA6PC9zdHJvbmc+IFR5cGUgYSB2YWx1ZSBhbmQgcHJlc3MgRW50ZXIgdG8gYWRkIGl0IHRvIHRoZSBsaXN0LiBDbGljayBvbiBhbnkgaXRlbSB0byByZW1vdmUgaXQuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBfNmUsaGIsV04sTDZlPXAoKCk9Pnt4ZSgpO0t0KCk7TTEoKTt1bHIoKTtKZSgpO182ZT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGhiPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxXTj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtdHlwZWxpc3QiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpBcnJheX0pXSxsPVtmZSgpXSxfNmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+InZhbHVlImluIGYsZ2V0OmY9PmYudmFsdWUsc2V0OihmLHgpPT57Zi52YWx1ZT14fX0sbWV0YWRhdGE6aH0sbyxzKSxfNmUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4iaW5wdXRWYWx1ZSJpbiBmLGdldDpmPT5mLmlucHV0VmFsdWUsc2V0OihmLHgpPT57Zi5pbnB1dFZhbHVlPXh9fSxtZXRhZGF0YTpofSxjLHUpLF82ZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPWRscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9aGIodGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoaCl7dGhpcy4jZT1ofSN0PShoYih0aGlzLHMpLGhiKHRoaXMsYywiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGlucHV0VmFsdWUoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAubWFpbmJveCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmFmYWZhIiwiIzIyMjIyMiIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJvcmRlci10b3A6ICR7bS5iZFRoZW1lKCIxcHggc29saWQgI0NDQyIsIjFweCBzb2xpZCAjZmZmZmZmMTAiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHttLmJkVGhlbWUoIjFweCBzb2xpZCAjQ0NDIiwiMXB4IHNvbGlkICMyMjIiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAke20uYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiAke20uYmRUaGVtZSgiMXB4IHNvbGlkICNDQ0MiLCIxcHggc29saWQgI2ZmZmZmZjEwIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwcHggMXB4IDRweCByZ2JhKDAsMCwwLDAuMykiLCJub25lIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQogICAgICAKICAgICAgLm1haW5ib3g6aG92ZXIgewogICAgICAgIGZpbHRlcjogJHttLmJkVGhlbWUoImJyaWdodG5lc3MoMC45OCkiLCJicmlnaHRuZXNzKDEuMDUpIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFpbmJveDpmb2N1cy13aXRoaW4gewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke20uYmRUaGVtZSgiIzAwNjlmMiIsIiMwMDg0ZmYiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICAgIH0KCiAgICAgIC50YWdzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLm5vdGFncyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzk5OSIsIiM2NjYiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgaW5wdXQgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODE4Iil9OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGNvbG9yOiBpbmhlcml0OwogICAgICAgIHBhZGRpbmc6IDBweCAxNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMnM7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgaW5wdXQ6Zm9jdXMgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOTk5IiwiIzY2NiIpfTsKICAgICAgfQoKICAgICAgLnRhZyB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZThmNWU5IiwiIzJkM2EyZCIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMyZTdkMzIiLCIjODFjNzg0Iil9OwogICAgICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBtYXJnaW46IDNweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2M4ZTZjOSIsIiMxYjVlMjAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC50YWc6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjYzhlNmM5IiwiIzNkNGYzZCIpfTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgIH0KCiAgICAgIC50YWcgLnJlbW92ZSB7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsKICAgICAgfQoKICAgICAgLnRhZyAucmVtb3ZlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiI2M2MjgyOCIsIiNlZjUzNTAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIERpc2FibGVkIHN0YXRlICovCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5tYWluYm94IHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLnRhZ3MgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC50YWcgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbZGlzYWJsZWRdKSBpbnB1dCB7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX07CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufT48L2RlZXMtbGFiZWw+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbmJveCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWdzIiBAY2xpY2s9JHsoKT0+e3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCl9fT4KICAgICAgICAgICAgJHt0aGlzLnZhbHVlLmxlbmd0aD09PTA/Q2A8ZGl2IGNsYXNzPSJub3RhZ3MiPk5vIHRhZ3MgeWV0PC9kaXY+YDp0aGlzLnZhbHVlLm1hcChoPT5DYAogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgICAgICAgJHtofQogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InJlbW92ZSIgQGNsaWNrPSR7Zj0+e2Yuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5yZW1vdmVUYWcoaCl9fT7Dlzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlR5cGUsIHByZXNzIEVudGVyIHRvIGFkZCBpdC4uLiIKICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICBAaW5wdXQ9JHtoPT57dGhpcy5pbnB1dFZhbHVlPWgudGFyZ2V0LnZhbHVlfX0KICAgICAgICAgICAgQGtleWRvd249JHtoPT57aC5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYoaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpKX19CiAgICAgICAgICAgIC5kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9CiAgICAgICAgICAvPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YWRkVGFnKGgpe3RoaXMudmFsdWUuaW5jbHVkZXMoaCl8fCh0aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLGhdLHRoaXMuaW5wdXRWYWx1ZT0iIix0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKSl9cmVtb3ZlVGFnKGgpe3RoaXMudmFsdWU9dGhpcy52YWx1ZS5maWx0ZXIoZj0+ZiE9PWgpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoaCl7dGhpcy52YWx1ZT1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxoYih0aGlzLHUpfXN0YXRpY3toYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgcGxyLGhscj1wKCgpPT57QTZlKCk7d2koKTt4ZSgpO3Bscj0oKT0+Q2AKICA8c3R5bGU+CiAgICAke29lYAogICAgICAuZGVtb1dyYXBwZXIgewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgNSUpIil9OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIH0KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQogICAgICAuZGVtby1zZWN0aW9uIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4OwogICAgICB9CiAgICAgIC5kZW1vLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CiAgICAgIC5kZW1vLWRlc2NyaXB0aW9uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQogICAgICAudGhlbWUtdG9nZ2xlIHsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAxNnB4OwogICAgICAgIHJpZ2h0OiAxNnB4OwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vV3JhcHBlciI+CiAgICA8ZGVlcy1idXR0b24gY2xhc3M9InRoZW1lLXRvZ2dsZSIgQGNsaWNrPSR7KCk9Pntkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoImJyaWdodCIpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiZGFyayIpfX0+VG9nZ2xlIFRoZW1lPC9kZWVzLWJ1dHRvbj4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+QmFzaWMgVGFibGUgd2l0aCBBY3Rpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+QSBzdGFuZGFyZCB0YWJsZSB3aXRoIHJvdyBhY3Rpb25zLCBlZGl0YWJsZSBmaWVsZHMsIGFuZCBjb250ZXh0IG1lbnUgc3VwcG9ydC4gRG91YmxlLWNsaWNrIG9uIGRlc2NyaXB0aW9ucyB0byBlZGl0LiBHcmlkIGxpbmVzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iQ3VycmVudCBBY2NvdW50IFN0YXRlbWVudCIKICAgICAgICAgIGhlYWRpbmcyPSJCdW5xIC0gUGF5bWVudCBBY2NvdW50IDIgLSBBcHJpbCAyMDIxIgogICAgICAgICAgLmVkaXRhYmxlRmllbGRzPSIke1siZGVzY3JpcHRpb24iXX0iCiAgICAgICAgICAuZGF0YT0ke1t7ZGF0ZToiMjAyMS0wNC0wMSIsYW1vdW50OiIyNDY0LjY1IFx1MjBBQyIsZGVzY3JpcHRpb246IlByaW50aW5nIFBhcGVyIChPZmZpY2UgU3VwcGxpZXMpIC0gU1RBUExFUyBCUkVNRU4ifSx7ZGF0ZToiMjAyMS0wNC0wMiIsYW1vdW50OiIxNjUuNjUgXHUyMEFDIixkZXNjcmlwdGlvbjoiTG9naXRlY2ggTW91c2UgKEhhcmR3YXJlKSAtIGxvZ2kuY29tIE9ubGluZVNob3AifSx7ZGF0ZToiMjAyMS0wNC0wMyIsYW1vdW50OiIyOTk5LDAwIFx1MjBBQyIsZGVzY3JpcHRpb246Ik1hY2Jvb2sgUHJvIDE2aW5jaCAoSGFyZHdhcmUpIC0gQXBwbGUuZGUgT25saW5lU2hvcCJ9LHtkYXRlOiIyMDIxLTA0LTAxIixhbW91bnQ6IjI0NjQuNjUgXHUyMEFDIixkZXNjcmlwdGlvbjoiT2ZmaWNlLVN1cHBsaWVzIC0gU1RBUExFUyBCUkVNRU4ifSx7ZGF0ZToiMjAyMS0wNC0wMSIsYW1vdW50OiIyNDY0LjY1IFx1MjBBQyIsZGVzY3JpcHRpb246Ik9mZmljZS1TdXBwbGllcyAtIFNUQVBMRVMgQlJFTUVOIn1dfQogICAgICAgICAgZGF0YU5hbWU9InRyYW5zYWN0aW9ucyIKICAgICAgICAgIC5kYXRhQWN0aW9ucz0iJHtbe25hbWU6InVwbG9hZCIsaWNvbk5hbWU6ImJlbGwiLHVzZVRhYmxlQmVoYXZpb3VyOiJ1cGxvYWQiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMgZT0+e2FsZXJ0KGUuaXRlbS5hbW91bnQpfX0se25hbWU6InZpc2liaWxpdHkiLGljb25OYW1lOiJjb3B5Iix0eXBlOlsiaW5Sb3ciXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzphc3luYyBlPT57fX0se25hbWU6ImNyZWF0ZSBuZXciLGljb25OYW1lOiJpbnN0YWdyYW0iLHR5cGU6WyJoZWFkZXIiXSx1c2VUYWJsZUJlaGF2aW91cjoicHJldmlldyIsYWN0aW9uRnVuYzphc3luYyBlPT57fX0se25hbWU6InRvIGdhbGxlcnkiLGljb25OYW1lOiJtZXNzYWdlIix0eXBlOlsiZm9vdGVyIl0sdXNlVGFibGVCZWhhdmlvdXI6InByZXZpZXciLGFjdGlvbkZ1bmM6YXN5bmMgZT0+e319LHtuYW1lOiJjb3B5IixpY29uTmFtZToiY29weVNvbGlkIix0eXBlOlsiY29udGV4dG1lbnUiLCJpblJvdyJdLGFjdGlvbjphc3luYygpPT5udWxsfSx7bmFtZToiZWRpdCAoZnJvbSBkZW1vKSIsaWNvbk5hbWU6InBlblRvU3F1YXJlIix0eXBlOlsiY29udGV4dG1lbnUiXSxhY3Rpb246YXN5bmMoKT0+bnVsbH0se25hbWU6InBhc3RlIixpY29uTmFtZToicGFzdGVTb2xpZCIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uOmFzeW5jKCk9Pm51bGx9LHtuYW1lOiJwcmV2aWV3Iix0eXBlOlsiZG91YmxlQ2xpY2siLCJjb250ZXh0bWVudSJdLGljb25OYW1lOiJleWUiLGFjdGlvbkZ1bmM6YXN5bmMgZT0+KGFsZXJ0KGUuaXRlbS5hbW91bnQpLG51bGwpfV19IgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRhYmxlIHdpdGggVmVydGljYWwgTGluZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5FbmhhbmNlZCBjb2x1bW4gc2VwYXJhdGlvbiBmb3IgYmV0dGVyIGRhdGEgdHJhY2tpbmcuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iUHJvZHVjdCBJbnZlbnRvcnkiCiAgICAgICAgICBoZWFkaW5nMj0iQ3VycmVudCBzdG9jayBsZXZlbHMgYWNyb3NzIHdhcmVob3VzZXMiCiAgICAgICAgICAuc2hvd1ZlcnRpY2FsTGluZXM9JHshMH0KICAgICAgICAgIC5kYXRhPSR7W3twcm9kdWN0OidNYWNCb29rIFBybyAxNiInLHdhcmVob3VzZV9hOiI0NSIsd2FyZWhvdXNlX2I6IjMyIix3YXJlaG91c2VfYzoiMjgiLHRvdGFsOiIxMDUiLHN0YXR1czoiXHUyNzEzIEluIFN0b2NrIn0se3Byb2R1Y3Q6ImlQaG9uZSAxNSBQcm8iLHdhcmVob3VzZV9hOiIxMjAiLHdhcmVob3VzZV9iOiI4OSIsd2FyZWhvdXNlX2M6IjE1NiIsdG90YWw6IjM2NSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifSx7cHJvZHVjdDoiQWlyUG9kcyBQcm8iLHdhcmVob3VzZV9hOiIwIix3YXJlaG91c2VfYjoiMTIiLHdhcmVob3VzZV9jOiI1Iix0b3RhbDoiMTciLHN0YXR1czoiXHUyNkEwIExvdyBTdG9jayJ9LHtwcm9kdWN0OiJpUGFkIEFpciIsd2FyZWhvdXNlX2E6IjIzIix3YXJlaG91c2VfYjoiNDUiLHdhcmVob3VzZV9jOiI2NyIsdG90YWw6IjEzNSIsc3RhdHVzOiJcdTI3MTMgSW4gU3RvY2sifV19CiAgICAgICAgICBkYXRhTmFtZT0icHJvZHVjdHMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBGdWxsIEdyaWQ8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5Db21wbGV0ZSBncmlkIGxpbmVzIGZvciBtYXhpbXVtIHJlYWRhYmlsaXR5IGFuZCBzdHJ1Y3R1cmUuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iU2VydmVyIE1vbml0b3JpbmcgRGFzaGJvYXJkIgogICAgICAgICAgaGVhZGluZzI9IlJlYWwtdGltZSBtZXRyaWNzIGFjcm9zcyByZWdpb25zIgogICAgICAgICAgLnNob3dHcmlkPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7c2VydmVyOiJBUEktMSIscmVnaW9uOiJVUy1FYXN0IixjcHU6IjQ1JSIsbWVtb3J5OiI2MiUiLGRpc2s6Ijc4JSIsbGF0ZW5jeToiMTJtcyIsdXB0aW1lOiI5OS45JSIsc3RhdHVzOiJcdXsxRjdFMn0gSGVhbHRoeSJ9LHtzZXJ2ZXI6IkFQSS0yIixyZWdpb246IkVVLVdlc3QiLGNwdToiMzglIixtZW1vcnk6IjU1JSIsZGlzazoiNDUlIixsYXRlbmN5OiIyNW1zIix1cHRpbWU6Ijk5LjglIixzdGF0dXM6Ilx1ezFGN0UyfSBIZWFsdGh5In0se3NlcnZlcjoiREItTWFzdGVyIixyZWdpb246IlVTLUVhc3QiLGNwdToiNzIlIixtZW1vcnk6IjgxJSIsZGlzazoiOTIlIixsYXRlbmN5OiI4bXMiLHVwdGltZToiMTAwJSIsc3RhdHVzOiJcdXsxRjdFMX0gV2FybmluZyJ9LHtzZXJ2ZXI6IkRCLVJlcGxpY2EiLHJlZ2lvbjoiRVUtV2VzdCIsY3B1OiIyMyUiLG1lbW9yeToiMzQlIixkaXNrOiI0NSUiLGxhdGVuY3k6IjE1bXMiLHVwdGltZToiOTkuNyUiLHN0YXR1czoiXHV7MUY3RTJ9IEhlYWx0aHkifSx7c2VydmVyOiJDYWNoZS0xIixyZWdpb246IkFQLVNvdXRoIixjcHU6Ijg5JSIsbWVtb3J5OiI5MiUiLGRpc2s6IjEyJSIsbGF0ZW5jeToiMTIwbXMiLHVwdGltZToiOTguNSUiLHN0YXR1czoiXHV7MUY1MzR9IENyaXRpY2FsIn1dfQogICAgICAgICAgZGF0YU5hbWU9InNlcnZlcnMiCiAgICAgICAgICAuZGF0YUFjdGlvbnM9IiR7W3tuYW1lOiJTU0ggQ29ubmVjdCIsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyBlPT57Y29uc29sZS5sb2coIkNvbm5lY3RpbmcgdG86IixlLml0ZW0uc2VydmVyKX19LHtuYW1lOiJWaWV3IExvZ3MiLGljb25OYW1lOiJsdWNpZGU6ZmlsZS10ZXh0Iix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6YXN5bmMgZT0+e2NvbnNvbGUubG9nKCJWaWV3aW5nIGxvZ3MgZm9yOiIsZS5pdGVtLnNlcnZlcil9fSx7bmFtZToiUmVzdGFydCBTZXJ2ZXIiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaC1jdyIsdHlwZTpbImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzphc3luYyBlPT57Y29uc29sZS5sb2coIlJlc3RhcnRpbmc6IixlLml0ZW0uc2VydmVyKX19XX0iCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+VGFibGUgd2l0aCBIb3Jpem9udGFsIExpbmVzIE9ubHk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5FbXBoYXNpcyBvbiByb3cgc2VwYXJhdGlvbiB3aXRob3V0IGNvbHVtbiBkaXZpZGVycy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTYWxlcyBQZXJmb3JtYW5jZSIKICAgICAgICAgIGhlYWRpbmcyPSJUb3AgcGVyZm9ybWVycyB0aGlzIHF1YXJ0ZXIiCiAgICAgICAgICAuc2hvd0hvcml6b250YWxMaW5lcz0keyEwfQogICAgICAgICAgLnNob3dWZXJ0aWNhbExpbmVzPSR7ITF9CiAgICAgICAgICAuZGF0YT0ke1t7c2FsZXNwZXJzb246IkVtaWx5IEpvaG5zb24iLHJlZ2lvbjoiTm9ydGggQW1lcmljYSIsZGVhbHNfY2xvc2VkOiI0MiIscmV2ZW51ZToiJDEuMk0iLHF1b3RhX2FjaGlldmVtZW50OiIxMjglIixyYXRpbmc6Ilx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MCJ9LHtzYWxlc3BlcnNvbjoiTWljaGFlbCBDaGVuIixyZWdpb246IkFzaWEgUGFjaWZpYyIsZGVhbHNfY2xvc2VkOiIzOCIscmV2ZW51ZToiJDk4MEsiLHF1b3RhX2FjaGlldmVtZW50OiIxMTUlIixyYXRpbmc6Ilx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MFx1MkI1MCJ9LHtzYWxlc3BlcnNvbjoiU2FyYWggV2lsbGlhbXMiLHJlZ2lvbjoiRXVyb3BlIixkZWFsc19jbG9zZWQ6IjM1IixyZXZlbnVlOiIkODc1SyIscXVvdGFfYWNoaWV2ZW1lbnQ6IjEwOCUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn0se3NhbGVzcGVyc29uOiJEYXZpZCBHYXJjaWEiLHJlZ2lvbjoiTGF0aW4gQW1lcmljYSIsZGVhbHNfY2xvc2VkOiIzMSIscmV2ZW51ZToiJDc1MEsiLHF1b3RhX2FjaGlldmVtZW50OiI5NSUiLHJhdGluZzoiXHUyQjUwXHUyQjUwXHUyQjUwXHUyQjUwIn1dfQogICAgICAgICAgZGF0YU5hbWU9InNhbGVzIHJlcHMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+U2ltcGxlIFRhYmxlIChObyBHcmlkKTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkNsZWFuLCBtaW5pbWFsIGRlc2lnbiB3aXRob3V0IGdyaWQgbGluZXMuIFNldCBzaG93R3JpZCB0byBmYWxzZSB0byBkaXNhYmxlIHRoZSBkZWZhdWx0IGdyaWQuPC9wPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBoZWFkaW5nMT0iVGVhbSBNZW1iZXJzIgogICAgICAgICAgaGVhZGluZzI9IkVuZ2luZWVyaW5nIERlcGFydG1lbnQiCiAgICAgICAgICAuc2hvd0dyaWQ9JHshMX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSBKb2huc29uIixyb2xlOiJMZWFkIEVuZ2luZWVyIixlbWFpbDoiYWxpY2VAY29tcGFueS5jb20iLGxvY2F0aW9uOiJTYW4gRnJhbmNpc2NvIixqb2luZWQ6IjIwMjAtMDMtMTUifSx7bmFtZToiQm9iIFNtaXRoIixyb2xlOiJTZW5pb3IgRGV2ZWxvcGVyIixlbWFpbDoiYm9iQGNvbXBhbnkuY29tIixsb2NhdGlvbjoiTmV3IFlvcmsiLGpvaW5lZDoiMjAxOS0wNy0yMiJ9LHtuYW1lOiJDaGFybGllIERhdmlzIixyb2xlOiJEZXZPcHMgRW5naW5lZXIiLGVtYWlsOiJjaGFybGllQGNvbXBhbnkuY29tIixsb2NhdGlvbjoiTG9uZG9uIixqb2luZWQ6IjIwMjEtMDEtMTAifSx7bmFtZToiRGlhbmEgTWFydGluZXoiLHJvbGU6IkZyb250ZW5kIERldmVsb3BlciIsZW1haWw6ImRpYW5hQGNvbXBhbnkuY29tIixsb2NhdGlvbjoiQmFyY2Vsb25hIixqb2luZWQ6IjIwMjItMDUtMTgifV19CiAgICAgICAgICBkYXRhTmFtZT0idGVhbSBtZW1iZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRhYmxlIHdpdGggQ3VzdG9tIERpc3BsYXkgRnVuY3Rpb248L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5UcmFuc2Zvcm0gZGF0YSBmb3IgZGlzcGxheSB1c2luZyBjdXN0b20gZm9ybWF0dGluZy48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJTYWxlcyBSZXBvcnQiCiAgICAgICAgICBoZWFkaW5nMj0iUTQgMjAyMyBQZXJmb3JtYW5jZSIKICAgICAgICAgIC5kYXRhPSR7W3twcm9kdWN0OiJFbnRlcnByaXNlIExpY2Vuc2UiLHVuaXRzOjQ1LHJldmVudWU6MjI1ZTMsZ3Jvd3RoOi4yMyxmb3JlY2FzdDoyOGU0fSx7cHJvZHVjdDoiUHJvZmVzc2lvbmFsIExpY2Vuc2UiLHVuaXRzOjEyOCxyZXZlbnVlOjEyOGUzLGdyb3d0aDouMTUsZm9yZWNhc3Q6MTQ3ZTN9LHtwcm9kdWN0OiJTdGFydGVyIExpY2Vuc2UiLHVuaXRzOjM0MixyZXZlbnVlOjY4NDAwLGdyb3d0aDouNDIsZm9yZWNhc3Q6OTdlM31dfQogICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2U9Pih7UHJvZHVjdDplLnByb2R1Y3QsIlVuaXRzIFNvbGQiOmUudW5pdHMudG9Mb2NhbGVTdHJpbmcoKSxSZXZlbnVlOiIkIitlLnJldmVudWUudG9Mb2NhbGVTdHJpbmcoKSxHcm93dGg6KGUuZ3Jvd3RoKjEwMCkudG9GaXhlZCgxKSsiJSIsIlExIDIwMjQgRm9yZWNhc3QiOiIkIitlLmZvcmVjYXN0LnRvTG9jYWxlU3RyaW5nKCl9KX0KICAgICAgICAgIGRhdGFOYW1lPSJwcm9kdWN0cyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5FbXB0eSBUYWJsZSBTdGF0ZTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkhvdyB0aGUgdGFibGUgbG9va3Mgd2hlbiBubyBkYXRhIGlzIGF2YWlsYWJsZS48L3A+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGhlYWRpbmcxPSJObyBEYXRhIEF2YWlsYWJsZSIKICAgICAgICAgIGhlYWRpbmcyPSJUaGlzIHRhYmxlIGlzIGN1cnJlbnRseSBlbXB0eSIKICAgICAgICAgIC5kYXRhPSR7W119CiAgICAgICAgICBkYXRhTmFtZT0iaXRlbXMiCiAgICAgICAgPjwvZGVlcy10YWJsZT4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+U2NoZW1hLUZpcnN0IENvbHVtbnMgKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5EZWZpbmVzIGNvbHVtbnMgZXhwbGljaXRseSBhbmQgcmVuZGVycyB2aWEgc2NoZW1hLiBObyBkaXNwbGF5RnVuY3Rpb24gbmVlZGVkLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlVzZXJzIChTY2hlbWEtRmlyc3QpIgogICAgICAgICAgaGVhZGluZzI9IkNvbHVtbnMgZGVmaW5lIHJlbmRlcmluZyBhbmQgb3JkZXIiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCIscmVuZGVyZXI6ZT0+Q2A8ZGVlcy1iYWRnZT4ke2V9PC9kZWVzLWJhZGdlPmB9LHtrZXk6ImpvaW5lZEF0IixoZWFkZXI6IkpvaW5lZCIscmVuZGVyZXI6ZT0+bmV3IERhdGUoZSkudG9Mb2NhbGVEYXRlU3RyaW5nKCl9XX0KICAgICAgICAgIC5kYXRhPSR7W3tuYW1lOiJBbGljZSIsZW1haWw6ImFsaWNlQGV4YW1wbGUuY29tIixqb2luZWRBdDoiMjAyMi0wOC0wMSJ9LHtuYW1lOiJCb2IiLGVtYWlsOiJib2JAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIxLTEyLTExIn0se25hbWU6IkNhcm9sIixlbWFpbDoiY2Fyb2xAZXhhbXBsZS5jb20iLGpvaW5lZEF0OiIyMDIzLTAzLTIyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlBhcnRpYWwgU2NoZW1hICsgQXVnbWVudCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlByb3ZpZGVzIG9ubHkgdGhlIGltcG9ydGFudCBjb2x1bW5zOyB0aGUgcmVzdCBhcmUgbWVyZ2VkIGluIGZyb20gZGlzcGxheUZ1bmN0aW9uLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlVzZXJzIChQYXJ0aWFsICsgQXVnbWVudCkiCiAgICAgICAgICBoZWFkaW5nMj0iTWlzc2luZyBjb2x1bW5zIGFyZSBkZXJpdmVkIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToibmFtZSIsaGVhZGVyOiJOYW1lIixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2U9Pih7bmFtZTplLm5hbWUsZW1haWw6ZS5lbWFpbCxyb2xlOmUucm9sZX0pfQogICAgICAgICAgLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uPSR7ITB9CiAgICAgICAgICAuZGF0YT0ke1t7bmFtZToiRXJpbiIsZW1haWw6ImVyaW5AZXhhbXBsZS5jb20iLHJvbGU6IkFkbWluIn0se25hbWU6IkZpbm4iLGVtYWlsOiJmaW5uQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn0se25hbWU6IkdpbmEiLGVtYWlsOiJnaW5hQGV4YW1wbGUuY29tIixyb2xlOiJVc2VyIn1dfQogICAgICAgICAgZGF0YU5hbWU9InVzZXJzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIiAKICAgICAgICAgICBAc2VsZWN0aW9uQ2hhbmdlPSR7ZT0+e2NvbnNvbGUubG9nKCJTZWxlY3Rpb24gY2hhbmdlZCIsZS5kZXRhaWwpfX0KICAgICAgICAgICBAc2VhcmNoLWNoYW5nZWQ9JHtlPT57bGV0IHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlRmlsdGVyU2VsZWN0RGVtbyIpO3QmJnQuc2V0RmlsdGVyVGV4dChlLmRldGFpbC52YWx1ZSl9fQogICAgICAgICAgIEBzZWFyY2gtc3VibWl0PSR7ZT0+e2xldCB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJsZUZpbHRlclNlbGVjdERlbW8iKTt0JiZ0LnNldEZpbHRlclRleHQoZS5kZXRhaWwudmFsdWUpfX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+RmlsdGVyaW5nICsgTXVsdGktU2VsZWN0aW9uIChOZXcpPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+VXNlIHRoZSBzZWFyY2ggYmFyIHRvIGZpbHRlciByb3dzOyB0b2dnbGUgc2VsZWN0aW9uIHZpYSBjaGVja2JveGVzLiBDbGljayBoZWFkZXJzIHRvIHNvcnQuPC9wPgogICAgICAgIDxkZWVzLXNlYXJjaGJhcj48L2RlZXMtc2VhcmNoYmFyPgogICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTJweCI+PC9kaXY+CiAgICAgICAgPGRlZXMtdGFibGUKICAgICAgICAgIGlkPSJ0YWJsZUZpbHRlclNlbGVjdERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iSW52ZW50b3J5IChGaWx0ZXIgKyBTZWxlY3QpIgogICAgICAgICAgaGVhZGluZzI9IlRyeSB0eXBpbmcgdG8gZmlsdGVyIGFuZCBzZWxlY3RpbmcgbXVsdGlwbGUgcm93cyIKICAgICAgICAgIC5zZWxlY3Rpb25Nb2RlPSR7Im11bHRpIn0KICAgICAgICAgIC5yb3dLZXk9JHsic2t1In0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6InNrdSIsaGVhZGVyOiJTS1UiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJzdG9jayIsaGVhZGVyOiJTdG9jayIsc29ydGFibGU6ITB9XX0KICAgICAgICAgIC5kYXRhPSR7W3tza3U6IkEtMTAwIixuYW1lOiJVU0ItQyBDYWJsZSIsc3RvY2s6MTIwfSx7c2t1OiJBLTEwMSIsbmFtZToiV2lyZWxlc3MgTW91c2UiLHN0b2NrOjU1fSx7c2t1OiJBLTEwMiIsbmFtZToiTGFwdG9wIFN0YW5kIixzdG9jazoxOH0se3NrdToiQi0yMDAiLG5hbWU6IktleWJvYXJkIChJU08pIixzdG9jazo4OX0se3NrdToiQi0yMDEiLG5hbWU6IkhETUkgQWRhcHRlciIsc3RvY2s6MH0se3NrdToiQy0zMDAiLG5hbWU6IldlYmNhbSAxMDgwcCIsc3RvY2s6NDJ9XX0KICAgICAgICAgIGRhdGFOYW1lPSJpdGVtcyIKICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5Db2x1bW4gRmlsdGVycyArIFN0aWNreSBIZWFkZXIgKE5ldyk8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5QZXItY29sdW1uIHF1aWNrIGZpbHRlcnMgYW5kIHN0aWNreSBoZWFkZXIgd2l0aCBpbnRlcm5hbCBzY3JvbGwuIFRyeSBmaWx0ZXJpbmcgdGhlIE5hbWUgY29sdW1uLiBVc2VzIC0tdGFibGUtbWF4LWhlaWdodCB2YXIuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgIGRlZXMtdGFibGVbc3RpY2t5LWhlYWRlcl0geyAtLXRhYmxlLW1heC1oZWlnaHQ6IDIyMHB4OyB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IkVtcGxveWVlcyIKICAgICAgICAgIGhlYWRpbmcyPSJRdWljayBmaWx0ZXIgcGVyIGNvbHVtbiArIHN0aWNreSBoZWFkZXIiCiAgICAgICAgICAuc2hvd0NvbHVtbkZpbHRlcnM9JHshMH0KICAgICAgICAgIC5zdGlja3lIZWFkZXI9JHshMH0KICAgICAgICAgIC5jb2x1bW5zPSR7W3trZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIixzb3J0YWJsZTohMH0se2tleToiZGVwYXJ0bWVudCIsaGVhZGVyOiJEZXBhcnRtZW50Iixzb3J0YWJsZTohMH1dfQogICAgICAgICAgLmRhdGE9JHtbe25hbWU6IkFsaWNlIEpvaG5zb24iLGVtYWlsOiJhbGljZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiQm9iIFNtaXRoIixlbWFpbDoiYm9iQGNvcnAuY29tIixkZXBhcnRtZW50OiJTYWxlcyJ9LHtuYW1lOiJDaGFybGllIERhdmlzIixlbWFpbDoiY2hhcmxpZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiSFIifSx7bmFtZToiRGlhbmEgTWFydGluZXoiLGVtYWlsOiJkaWFuYUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiRXRoYW4gQnJvd24iLGVtYWlsOiJldGhhbkBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRmluYW5jZSJ9LHtuYW1lOiJGaW9uYSBDbGFyayIsZW1haWw6ImZpb25hQGNvcnAuY29tIixkZXBhcnRtZW50OiJTYWxlcyJ9LHtuYW1lOiJHcmFjZSBMZWUiLGVtYWlsOiJncmFjZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRW5naW5lZXJpbmcifSx7bmFtZToiSGVucnkgV2lsc29uIixlbWFpbDoiaGVucnlAY29ycC5jb20iLGRlcGFydG1lbnQ6Ik1hcmtldGluZyJ9LHtuYW1lOiJJcmVuZSBXYWxrZXIiLGVtYWlsOiJpcmVuZUBjb3JwLmNvbSIsZGVwYXJ0bWVudDoiRmluYW5jZSJ9LHtuYW1lOiJKYWNrIFR1cm5lciIsZW1haWw6ImphY2tAY29ycC5jb20iLGRlcGFydG1lbnQ6IlN1cHBvcnQifV19CiAgICAgICAgICBkYXRhTmFtZT0iZW1wbG95ZWVzIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIgogICAgICAgIEBzZWFyY2hSZXF1ZXN0PSR7YXN5bmMgZT0+e2xldHtxdWVyeTp0fT1lLmRldGFpbHx8e3F1ZXJ5OiIifSxyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXJ2ZXJTZWFyY2hEZW1vIiksaT1be2lkOjEsbmFtZToiQWxpY2UiLGNpdHk6IkJlcmxpbiIsdGl0bGU6IkVuZ2luZWVyIn0se2lkOjIsbmFtZToiQm9iIixjaXR5OiJQYXJpcyIsdGl0bGU6IkRlc2lnbmVyIn0se2lkOjMsbmFtZToiQ2hhcmxpZSIsY2l0eToiTG9uZG9uIix0aXRsZToiTWFuYWdlciJ9LHtpZDo0LG5hbWU6IkRpYW5hIixjaXR5OiJNYWRyaWQiLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDo1LG5hbWU6IkV0aGFuIixjaXR5OiJSb21lIix0aXRsZToiU3VwcG9ydCJ9XTthd2FpdCBuZXcgUHJvbWlzZShvPT5zZXRUaW1lb3V0KG8sMzAwKSk7bGV0IGE9U3RyaW5nKHR8fCIiKS50b0xvd2VyQ2FzZSgpLG49YT9pLmZpbHRlcihvPT5PYmplY3QudmFsdWVzKG8pLnNvbWUocz0+U3RyaW5nKHMpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYSkpKTppO3IuZGF0YT1ufX0KICAgICAgPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+U2VydmVyIFNlYXJjaCAoTmV3KTwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNlbGVjdCBTZXJ2ZXIgbW9kZSwgdHlwZSBhIHF1ZXJ5LCBhbmQgd2F0Y2ggdGhlIHRhYmxlIGZldGNoIHNpbXVsYXRlZCByZXN1bHRzLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaWQ9InNlcnZlclNlYXJjaERlbW8iCiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIChTZXJ2ZXIgU2VhcmNoKSIKICAgICAgICAgIGhlYWRpbmcyPSJDbGljayBTZWFyY2gsIGNob29zZSBTZXJ2ZXIgbW9kZSwgYW5kIHR5cGUiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUifSx7a2V5OiJjaXR5IixoZWFkZXI6IkNpdHkifSx7a2V5OiJ0aXRsZSIsaGVhZGVyOiJUaXRsZSJ9XX0KICAgICAgICAgIC5kYXRhPSR7W3tpZDoxLG5hbWU6IkFsaWNlIixjaXR5OiJCZXJsaW4iLHRpdGxlOiJFbmdpbmVlciJ9LHtpZDoyLG5hbWU6IkJvYiIsY2l0eToiUGFyaXMiLHRpdGxlOiJEZXNpZ25lciJ9LHtpZDozLG5hbWU6IkNoYXJsaWUiLGNpdHk6IkxvbmRvbiIsdGl0bGU6Ik1hbmFnZXIifSx7aWQ6NCxuYW1lOiJEaWFuYSIsY2l0eToiTWFkcmlkIix0aXRsZToiRW5naW5lZXIifSx7aWQ6NSxuYW1lOiJFdGhhbiIsY2l0eToiUm9tZSIsdGl0bGU6IlN1cHBvcnQifV19CiAgICAgICAgICBkYXRhTmFtZT0icGVvcGxlIgogICAgICAgID48L2RlZXMtdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPldpZGUgUHJvcGVydGllcyArIE1hbnkgQWN0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkEgdGFibGUgd2l0aCBtYW55IGNvbHVtbnMgYW5kIHJpY2ggYWN0aW9ucyB0byBzdHJlc3MgdGVzdCBsYXlvdXQgYW5kIHN0aWNreSBBY3Rpb25zLjwvcD4KICAgICAgICA8ZGVlcy10YWJsZQogICAgICAgICAgaGVhZGluZzE9IlBlb3BsZSBEaXJlY3RvcnkiCiAgICAgICAgICBoZWFkaW5nMj0iTWFueSBwcm9wZXJ0aWVzIGFuZCBhY3Rpb25zIgogICAgICAgICAgLmNvbHVtbnM9JHtbe2tleToiaWQiLGhlYWRlcjoiSUQiLHNvcnRhYmxlOiEwfSx7a2V5OiJuYW1lIixoZWFkZXI6Ik5hbWUiLHNvcnRhYmxlOiEwfSx7a2V5OiJyb2xlIixoZWFkZXI6IlJvbGUiLHNvcnRhYmxlOiEwfSx7a2V5OiJkZXBhcnRtZW50IixoZWFkZXI6IkRlcGFydG1lbnQiLHNvcnRhYmxlOiEwfSx7a2V5OiJlbWFpbCIsaGVhZGVyOiJFbWFpbCJ9LHtrZXk6InBob25lIixoZWFkZXI6IlBob25lIn0se2tleToibG9jYXRpb24iLGhlYWRlcjoiTG9jYXRpb24iLHNvcnRhYmxlOiEwfSx7a2V5OiJzdGF0dXMiLGhlYWRlcjoiU3RhdHVzIixzb3J0YWJsZTohMH0se2tleToiY3JlYXRlZEF0IixoZWFkZXI6IkNyZWF0ZWQiLHNvcnRhYmxlOiEwfSx7a2V5OiJ1cGRhdGVkQXQiLGhlYWRlcjoiVXBkYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6Imxhc3RMb2dpbiIsaGVhZGVyOiJMYXN0IExvZ2luIixzb3J0YWJsZTohMH0se2tleToicHJvamVjdHMiLGhlYWRlcjoiUHJvamVjdHMifSx7a2V5OiJ0YWdzIixoZWFkZXI6IlRhZ3MifSx7a2V5OiJub3RlcyIsaGVhZGVyOiJOb3RlcyJ9XX0KICAgICAgICAgIC5kYXRhPSR7W3tpZDoxLG5hbWU6IkFsaWNlIEpvaG5zb24iLHJvbGU6IkVuZ2luZWVyIixkZXBhcnRtZW50OiJSJkQiLGVtYWlsOiJhbGljZUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMSIsbG9jYXRpb246IkJlcmxpbiIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMy0wMS0xMiIsdXBkYXRlZEF0OiIyMDI0LTA1LTAzIixsYXN0TG9naW46IjIwMjQtMTAtMDEiLHByb2plY3RzOjUsdGFnczoidHlwZXNjcmlwdCwgdWkiLG5vdGVzOiJNZW50b3IifSx7aWQ6MixuYW1lOiJCb2IgU21pdGgiLHJvbGU6IkRlc2lnbmVyIixkZXBhcnRtZW50OiJEZXNpZ24iLGVtYWlsOiJib2JAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTIiLGxvY2F0aW9uOiJQYXJpcyIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMi0xMS0wNSIsdXBkYXRlZEF0OiIyMDI0LTA0LTEwIixsYXN0TG9naW46IjIwMjQtMDktMjgiLHByb2plY3RzOjgsdGFnczoiZmlnbWEsIGJyYW5kIixub3RlczoiUGFydC10aW1lIn0se2lkOjMsbmFtZToiQ2hhcmxpZSBEYXZpcyIscm9sZToiTWFuYWdlciIsZGVwYXJ0bWVudDoiT3BzIixlbWFpbDoiY2hhcmxpZUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExMyIsbG9jYXRpb246IkxvbmRvbiIsc3RhdHVzOiJPbiBMZWF2ZSIsY3JlYXRlZEF0OiIyMDIxLTA0LTIxIix1cGRhdGVkQXQ6IjIwMjQtMDItMTUiLGxhc3RMb2dpbjoiMjAyNC0wOC0xMiIscHJvamVjdHM6Myx0YWdzOiJzcmUsIGxlYWRlcnNoaXAiLG5vdGVzOiIifSx7aWQ6NCxuYW1lOiJEaWFuYSBNYXJ0aW5leiIscm9sZToiRW5naW5lZXIiLGRlcGFydG1lbnQ6IlBsYXRmb3JtIixlbWFpbDoiZGlhbmFAY29ycC5jb20iLHBob25lOiIrMSAyMDIgNTU1IDAxMTQiLGxvY2F0aW9uOiJNYWRyaWQiLHN0YXR1czoiQWN0aXZlIixjcmVhdGVkQXQ6IjIwMjAtMDYtMzAiLHVwZGF0ZWRBdDoiMjAyNC0wNi0yNSIsbGFzdExvZ2luOiIyMDI0LTEwLTAyIixwcm9qZWN0czo2LHRhZ3M6Im5vZGUsIGFwaSIsbm90ZXM6Ik9uLWNhbGwifSx7aWQ6NSxuYW1lOiJFdGhhbiBCcm93biIscm9sZToiU3VwcG9ydCIsZGVwYXJ0bWVudDoiQ1MiLGVtYWlsOiJldGhhbkBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNSIsbG9jYXRpb246IlJvbWUiLHN0YXR1czoiSW5hY3RpdmUiLGNyZWF0ZWRBdDoiMjAxOS0wOS0xOCIsdXBkYXRlZEF0OiIyMDI0LTAzLTA5IixsYXN0TG9naW46IjIwMjQtMDYtMTkiLHByb2plY3RzOjIsdGFnczoiemVuZGVzayIsbm90ZXM6IlJlaGlyZSJ9LHtpZDo2LG5hbWU6IkZpb25hIENsYXJrIixyb2xlOiJRQSIsZGVwYXJ0bWVudDoiUUEiLGVtYWlsOiJmaW9uYUBjb3JwLmNvbSIscGhvbmU6IisxIDIwMiA1NTUgMDExNiIsbG9jYXRpb246IlZpZW5uYSIsc3RhdHVzOiJBY3RpdmUiLGNyZWF0ZWRBdDoiMjAyMi0wMy0xNCIsdXBkYXRlZEF0OiIyMDI0LTAzLTAxIixsYXN0TG9naW46IjIwMjQtMDktMDciLHByb2plY3RzOjcsdGFnczoicGxheXdyaWdodCIsbm90ZXM6IiJ9XX0KICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLHR5cGU6WyJpblJvdyIsImNvbnRleHRtZW51Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTplfSk9Pntjb25zb2xlLmxvZygidmlldyIsZSl9fSx7bmFtZToiRWRpdCIsaWNvbk5hbWU6Imx1Y2lkZTplZGl0Iix0eXBlOlsiaW5Sb3ciLCJjb250ZXh0bWVudSJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06ZX0pPT57Y29uc29sZS5sb2coImVkaXQiLGUpfX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaCIsdHlwZTpbImluUm93IiwiY29udGV4dG1lbnUiXSxhY3Rpb25GdW5jOmFzeW5jKHtpdGVtOmV9KT0+e2NvbnNvbGUubG9nKCJkZWxldGUiLGUpfX0se25hbWU6Ik1lc3NhZ2UiLGljb25OYW1lOiJsdWNpZGU6bWVzc2FnZS1zcXVhcmUiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06ZX0pPT57Y29uc29sZS5sb2coIm1lc3NhZ2UiLGUpfX0se25hbWU6Ikhpc3RvcnkiLGljb25OYW1lOiJsdWNpZGU6Y2xvY2siLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06ZX0pPT57Y29uc29sZS5sb2coImhpc3RvcnkiLGUpfX0se25hbWU6IkFkZCBOZXciLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsdHlwZTpbImhlYWRlciJdLGFjdGlvbkZ1bmM6YXN5bmMoe3RhYmxlOmV9KT0+e2NvbnNvbGUubG9nKCJhZGQiKX19LHtuYW1lOiJFeHBvcnQgQ1NWIixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIix0eXBlOlsiaGVhZGVyIl0sYWN0aW9uRnVuYzphc3luYyh7dGFibGU6ZX0pPT57Y29uc29sZS5sb2coImV4cG9ydCIpfX0se25hbWU6IkJ1bGsgRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoLTIiLHR5cGU6WyJmb290ZXIiXSxhY3Rpb25GdW5jOmFzeW5jKHt0YWJsZTplfSk9Pntjb25zb2xlLmxvZygiYnVsayBkZWxldGUiKX19XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5TY3JvbGxhYmxlIFNtYWxsIEhlaWdodDwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPlNhbWUgYXMgYWJvdmUsIGJ1dCB3aXRoIG1hbnkgaXRlbXMgYW5kIGEgc21hbGwgZml4ZWQgaGVpZ2h0IHRvIGZvcmNlIHZlcnRpY2FsIHNjcm9sbGluZyBpbnNpZGUgdGhlIHRhYmxlLiBBY3Rpb25zIHJlbWFpbiB2aXNpYmxlIG9uIHRoZSByaWdodDsgaG9yaXpvbnRhbCBzY3JvbGwgYXBwZWFycyBpZiBuZWVkZWQuPC9wPgogICAgICAgIDxzdHlsZT4KICAgICAgICAgICNzY3JvbGxTbWFsbEhlaWdodCB7IC0tdGFibGUtbWF4LWhlaWdodDogMjQwcHg7IH0KICAgICAgICA8L3N0eWxlPgogICAgICAgIDxkZWVzLXRhYmxlCiAgICAgICAgICBpZD0ic2Nyb2xsU21hbGxIZWlnaHQiCiAgICAgICAgICAuc3RpY2t5SGVhZGVyPSR7ITB9CiAgICAgICAgICBoZWFkaW5nMT0iUGVvcGxlIERpcmVjdG9yeSAoU2Nyb2xsYWJsZSkiCiAgICAgICAgICBoZWFkaW5nMj0iRm9yY2VkIHNjcm9sbGluZyB3aXRoIG1hbnkgaXRlbXMiCiAgICAgICAgICAuY29sdW1ucz0ke1t7a2V5OiJpZCIsaGVhZGVyOiJJRCIsc29ydGFibGU6ITB9LHtrZXk6Im5hbWUiLGhlYWRlcjoiTmFtZSIsc29ydGFibGU6ITB9LHtrZXk6InJvbGUiLGhlYWRlcjoiUm9sZSIsc29ydGFibGU6ITB9LHtrZXk6ImRlcGFydG1lbnQiLGhlYWRlcjoiRGVwYXJ0bWVudCIsc29ydGFibGU6ITB9LHtrZXk6ImVtYWlsIixoZWFkZXI6IkVtYWlsIn0se2tleToicGhvbmUiLGhlYWRlcjoiUGhvbmUifSx7a2V5OiJsb2NhdGlvbiIsaGVhZGVyOiJMb2NhdGlvbiIsc29ydGFibGU6ITB9LHtrZXk6InN0YXR1cyIsaGVhZGVyOiJTdGF0dXMiLHNvcnRhYmxlOiEwfSx7a2V5OiJjcmVhdGVkQXQiLGhlYWRlcjoiQ3JlYXRlZCIsc29ydGFibGU6ITB9LHtrZXk6InVwZGF0ZWRBdCIsaGVhZGVyOiJVcGRhdGVkIixzb3J0YWJsZTohMH0se2tleToibGFzdExvZ2luIixoZWFkZXI6Ikxhc3QgTG9naW4iLHNvcnRhYmxlOiEwfSx7a2V5OiJwcm9qZWN0cyIsaGVhZGVyOiJQcm9qZWN0cyJ9LHtrZXk6InRhZ3MiLGhlYWRlcjoiVGFncyJ9LHtrZXk6Im5vdGVzIixoZWFkZXI6Ik5vdGVzIn1dfQogICAgICAgICAgLmRhdGE9JHtBcnJheS5mcm9tKHtsZW5ndGg6MTAwfSwoZSx0KT0+KHtpZDp0KzEsbmFtZTpgVXNlciAke3QrMX1gLHJvbGU6WyJFbmdpbmVlciIsIkRlc2lnbmVyIiwiTWFuYWdlciIsIlFBIiwiU3VwcG9ydCJdW3QlNV0sZGVwYXJ0bWVudDpbIlImRCIsIkRlc2lnbiIsIk9wcyIsIlFBIiwiQ1MiXVt0JTVdLGVtYWlsOmB1c2VyJHt0KzF9QGNvcnAuY29tYCxwaG9uZTpgKzEgMjAyIDU1NSAke1N0cmluZygxZTMrdCkuc2xpY2UoLTQpfWAsbG9jYXRpb246WyJCZXJsaW4iLCJQYXJpcyIsIkxvbmRvbiIsIk1hZHJpZCIsIlJvbWUiXVt0JTVdLHN0YXR1czpbIkFjdGl2ZSIsIkluYWN0aXZlIiwiT24gTGVhdmUiXVt0JTNdLGNyZWF0ZWRBdDpgMjAyMy0ke1N0cmluZyh0JTEyKzEpLnBhZFN0YXJ0KDIsIjAiKX0tJHtTdHJpbmcodCUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCx1cGRhdGVkQXQ6YDIwMjQtJHtTdHJpbmcoKHQrMyklMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZygodCs3KSUyOCsxKS5wYWRTdGFydCgyLCIwIil9YCxsYXN0TG9naW46YDIwMjQtJHtTdHJpbmcoKHQrNiklMTIrMSkucGFkU3RhcnQoMiwiMCIpfS0ke1N0cmluZygodCsxMCklMjgrMSkucGFkU3RhcnQoMiwiMCIpfWAscHJvamVjdHM6dCUxMix0YWdzOnQlMj8idHlwZXNjcmlwdCI6ImRlc2lnbiIsbm90ZXM6dCUzPyIiOiJOb3RlIn0pKX0KICAgICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpleWUiLHR5cGU6WyJpblJvdyJdLGFjdGlvbkZ1bmM6YXN5bmMoe2l0ZW06ZX0pPT57fX0se25hbWU6IkVkaXQiLGljb25OYW1lOiJsdWNpZGU6ZWRpdCIsdHlwZTpbImluUm93Il0sYWN0aW9uRnVuYzphc3luYyh7aXRlbTplfSk9Pnt9fSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToibHVjaWRlOnRyYXNoIix0eXBlOlsiaW5Sb3ciXSxhY3Rpb25GdW5jOmFzeW5jKHtpdGVtOmV9KT0+e319XX0KICAgICAgICA+PC9kZWVzLXRhYmxlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIGZscixtbHI9cCgoKT0+e3hlKCk7UWEoKTtKZSgpO2Zscj1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KCiAgICAgIC5oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDY0cHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nQ29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAuaGVhZGluZyB7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLmhlYWRpbmcxIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CiAgICAgIAogICAgICAuaGVhZGluZzIgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBtYXJnaW4tdG9wOiAycHg7CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nU2VwYXJhdGlvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbnMgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmhlYWRlckFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmhlYWRlckFjdGlvbjpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAuaGVhZGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLWdhcDogMTZweDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBtYXgtY29udGVudDsKICAgICAgICBwYWRkaW5nOiAxNnB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk4JSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CgogICAgICBAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgICAgICAuc2VhcmNoR3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8qIGxldCBzZWFyY2ggbW9kZSBzaXplIHRvIGNvbnRlbnQgKG5vIGZvcmNlZCB3aWR0aCkgKi8KCiAgICAgIC5zZWFyY2hHcmlkLmhpZGRlbiB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDBweCAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDsKICAgICAgfQoKICAgICAgLnRhYmxlU2Nyb2xsIHsKICAgICAgICAvKiBlbmFibGUgaG9yaXpvbnRhbCBzY3JvbGwgb25seSB3aGVuIGNvbnRlbnQgZXhjZWVkcyB3aWR0aCAqLwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgLyogcHJldmVudCB2ZXJ0aWNhbCBzY3JvbGwgaW5zaWRlIHRoZSB0YWJsZSBjb250YWluZXIgKi8KICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47CiAgICAgICAgLyogYXZvaWQgcmVzZXJ2aW5nIGV4dHJhIHNwYWNlIGZvciBjbGFzc2ljIHNjcm9sbGJhcnMgd2hlcmUgcG9zc2libGUgKi8KICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGUgYm90aC1lZGdlczsKICAgICAgfQogICAgICAvKiBIaWRlIGhvcml6b250YWwgc2Nyb2xsYmFyIGVudGlyZWx5IHdoZW4gbm90IHVzaW5nIHN0aWNreSBoZWFkZXIgKi8KICAgICAgOmhvc3QoOm5vdChbc3RpY2t5LWhlYWRlcl0pKSAudGFibGVTY3JvbGwgewogICAgICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogSUUvRWRnZSAqLwogICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgICAvKiBGaXJlZm94IChoaWRlcyBib3RoIGF4ZXMpICovCiAgICAgIH0KICAgICAgOmhvc3QoOm5vdChbc3RpY2t5LWhlYWRlcl0pKSAudGFibGVTY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBDaHJvbWUvU2FmYXJpICovCiAgICAgIH0KICAgICAgLyogSW4gc3RpY2t5LWhlYWRlciBtb2RlLCBoaWRlIG9ubHkgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIGluIFdlYktpdC9CbGluayAqLwogICAgICA6aG9zdChbc3RpY2t5LWhlYWRlcl0pIC50YWJsZVNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXI6aG9yaXpvbnRhbCB7CiAgICAgICAgaGVpZ2h0OiAwcHg7CiAgICAgIH0KICAgICAgOmhvc3QoW3N0aWNreS1oZWFkZXJdKSAudGFibGVTY3JvbGwgewogICAgICAgIG1heC1oZWlnaHQ6IHZhcigtLXRhYmxlLW1heC1oZWlnaHQsIDM2MHB4KTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgfQoKICAgICAgdGFibGUgewogICAgICAgIC8qIGFsbG93IHRhYmxlIHRvIGdyb3cgd2lkZXIgdGhhbiBjb250YWluZXIgc28gYWN0aW9ucyBjb2x1bW4gY2FuIHN0aWNrICovCiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50OwogICAgICAgIG1pbi13aWR0aDogMTAwJTsKICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm5vRGF0YVNldCB7CiAgICAgICAgcGFkZGluZzogNDhweCAyNHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGhlYWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KICAgICAgOmhvc3QoW3N0aWNreS1oZWFkZXJdKSB0aGVhZCB0aCB7CiAgICAgICAgcG9zaXRpb246IHN0aWNreTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQogICAgICAKICAgICAgdGJvZHkgdHIgewogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIERlZmF1bHQgaG9yaXpvbnRhbCBsaW5lcyAoYm90dG9tIGJvcmRlciBvbmx5KSAqLwogICAgICB0Ym9keSB0ciB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyOmxhc3QtY2hpbGQgewogICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZ1bGwgaG9yaXpvbnRhbCBsaW5lcyB3aGVuIGVuYWJsZWQgKi8KICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyIHsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctaG9yaXpvbnRhbC1saW5lc10pIHRib2R5IHRyOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ob3Jpem9udGFsLWxpbmVzXSkgdGJvZHkgdHI6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRib2R5IHRyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUgLyAwLjUpIiwiaHNsKDAgMCUgMTQuOSUgLyAwLjUpIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2x1bW4gaG92ZXIgZWZmZWN0IGZvciBiZXR0ZXIgdHJhY2VhYmlsaXR5ICovCiAgICAgIHRkIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KICAgICAgCiAgICAgIHRkOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUgLyAwLjMpIiwiaHNsKDAgMCUgMTQuOSUgLyAwLjMpIil9OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICAgIHotaW5kZXg6IC0xOwogICAgICB9CiAgICAgIAogICAgICB0ZDpob3Zlcjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEdyaWQgbW9kZSAtIHNob3dzIGJvdGggdmVydGljYWwgYW5kIGhvcml6b250YWwgbGluZXMgKi8KICAgICAgOmhvc3QoW3Nob3ctZ3JpZF0pIHRoIHsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiBub25lOwogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0ZCB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgICBib3JkZXItdG9wOiBub25lOwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGg6Zmlyc3QtY2hpbGQsCiAgICAgIDpob3N0KFtzaG93LWdyaWRdKSB0ZDpmaXJzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICA6aG9zdChbc2hvdy1ncmlkXSkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQgewogICAgICAgIGJvcmRlci10b3A6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0aWNreSBBY3Rpb25zIGNvbHVtbiAocmlnaHQgcGlubmVkKSAqLwogICAgICB0aGVhZCB0aC5hY3Rpb25zQ29sLAogICAgICB0Ym9keSB0ZC5hY3Rpb25zQ29sIHsKICAgICAgICBwb3NpdGlvbjogc3RpY2t5OwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICB9CiAgICAgIHRoZWFkIHRoLmFjdGlvbnNDb2wgeyB6LWluZGV4OiAzOyB9CiAgICAgIHRib2R5IHRkLmFjdGlvbnNDb2wgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgYm94LXNoYWRvdzogLTFweCAwIDAgMCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CiAgICAgIAogICAgICB0Ym9keSB0ci5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgdGJvZHkgdHIuaGFzQXR0YWNobWVudCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIil9OwogICAgICB9CgogICAgICB0aCB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMjRweDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGggewogICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIHRkIHsKICAgICAgICBwYWRkaW5nOiAxMnB4IDI0cHg7CiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0ZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQogICAgICAKICAgICAgdGg6Zmlyc3QtY2hpbGQsCiAgICAgIHRkOmZpcnN0LWNoaWxkIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIHRoOmxhc3QtY2hpbGQsCiAgICAgIHRkOmxhc3QtY2hpbGQgewogICAgICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtzaG93LXZlcnRpY2FsLWxpbmVzXSkgdGg6bGFzdC1jaGlsZCwKICAgICAgOmhvc3QoW3Nob3ctdmVydGljYWwtbGluZXNdKSB0ZDpsYXN0LWNoaWxkIHsKICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbm5lckNlbGxDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtaW4taGVpZ2h0OiAyNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgICB9CiAgICAgIHRkIGlucHV0IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA0cHg7CiAgICAgICAgYm90dG9tOiA0cHg7CiAgICAgICAgbGVmdDogMjBweDsKICAgICAgICByaWdodDogMjBweDsKICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA4cHgpOwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7CiAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7CiAgICAgIH0KICAgICAgCiAgICAgIHRkIGlucHV0OmZvY3VzIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMikiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAvKiBmaWx0ZXIgcm93ICovCiAgICAgIHRoZWFkIHRyLmZpbHRlcnNSb3cgdGggewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4IDEycHggMTJweDsKICAgICAgfQogICAgICB0aGVhZCB0ci5maWx0ZXJzUm93IHRoIGlucHV0W3R5cGU9J3RleHQnXSB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgIH0KICAgICAgLmFjdGlvbnNDb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQogICAgICAKICAgICAgLmFjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMCAwJSAxMS44JSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgIH0KCiAgICAgIC5mb290ZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiA1MnB4OwogICAgICAgIHBhZGRpbmc6IDAgMjRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgNDAlIDk2LjElKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgfQoKICAgICAgLnRhYmxlU3RhdGlzdGljcyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmZvb3RlckFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5mb290ZXJBY3Rpb25zIC5mb290ZXJBY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuZm9vdGVyQWN0aW9ucyAuZm9vdGVyQWN0aW9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgYF19KTtmdW5jdGlvbiBENmUoZSx0KXtpZighdHx8dC5sZW5ndGg9PT0wKXJldHVybltdO2xldCByPWUodFswXSk7cmV0dXJuIE9iamVjdC5rZXlzKHIpLm1hcChhPT4oe2tleTphLGhlYWRlcjphLHZhbHVlOm49PmUobilbYV19KSl9ZnVuY3Rpb24gZ2xyKGUsdCxyLGkpe2xldCBhPShlfHxbXSkuc2xpY2UoKTtpZighdClyZXR1cm4gYTtsZXQgbj1ENmUocixpKSxvPW5ldyBTZXQoYS5tYXAocz0+U3RyaW5nKHMua2V5KSkpO2ZvcihsZXQgcyBvZiBuKW8uaGFzKFN0cmluZyhzLmtleSkpfHxhLnB1c2gocyk7cmV0dXJuIGF9ZnVuY3Rpb24gbmgoZSx0LHIpe3JldHVybiB0LnZhbHVlP3QudmFsdWUoZSk6ZVt0LmtleV19ZnVuY3Rpb24gYmxyKGUsdCxyLGksYSxuLG89InRhYmxlIixzKXtsZXQgbD1lLnNsaWNlKCksYz0oYXx8IiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHU9bnx8e30sZD1PYmplY3Qua2V5cyh1KS5maWx0ZXIoeD0+KHVbeF0/PyIiKS50cmltKCkubGVuZ3RoPjApO2lmKChjfHxkLmxlbmd0aD4wKSYmKGw9bC5maWx0ZXIoeD0+e2ZvcihsZXQgdiBvZiBkKWlmKG89PT0iZGF0YSIpe2xldCBiPXhbdl0seT1TdHJpbmcoYj8/IiIpLnRvTG93ZXJDYXNlKCksdz1TdHJpbmcodVt2XSkudG9Mb3dlckNhc2UoKTtpZigheS5pbmNsdWRlcyh3KSlyZXR1cm4hMX1lbHNle2xldCBiPXQuZmluZChPPT5TdHJpbmcoTy5rZXkpPT09dik7aWYoIWJ8fGIuaGlkZGVufHxiLmZpbHRlcmFibGU9PT0hMSljb250aW51ZTtsZXQgeT1uaCh4LGIpLHc9U3RyaW5nKHk/PyIiKS50b0xvd2VyQ2FzZSgpLGs9U3RyaW5nKHVbdl0pLnRvTG93ZXJDYXNlKCk7aWYoIXcuaW5jbHVkZXMoaykpcmV0dXJuITF9aWYoYyl7aWYocylyZXR1cm4hIXMoeCk7bGV0IHY9ITE7aWYobz09PSJkYXRhIil7Zm9yKGxldCBiIG9mIE9iamVjdC52YWx1ZXMoeCkpaWYoU3RyaW5nKGI/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGMpKXt2PSEwO2JyZWFrfX1lbHNlIGZvcihsZXQgYiBvZiB0KXtpZihiLmhpZGRlbiljb250aW51ZTtsZXQgeT1uaCh4LGIpO2lmKFN0cmluZyh5Pz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjKSl7dj0hMDticmVha319aWYoIXYpcmV0dXJuITF9cmV0dXJuITB9KSksIXJ8fCFpKXJldHVybiBsO2xldCBoPXQuZmluZCh4PT5TdHJpbmcoeC5rZXkpPT09cik7aWYoIWgpcmV0dXJuIGw7bGV0IGY9aT09PSJhc2MiPzE6LTE7cmV0dXJuIGwuc29ydCgoeCx2KT0+e2xldCBiPW5oKHgsaCkseT1uaCh2LGgpO2lmKGI9PW51bGwmJnk9PW51bGwpcmV0dXJuIDA7aWYoYj09bnVsbClyZXR1cm4tMSpmO2lmKHk9PW51bGwpcmV0dXJuIDEqZjtpZih0eXBlb2YgYj09Im51bWJlciImJnR5cGVvZiB5PT0ibnVtYmVyIilyZXR1cm4oYi15KSpmO2xldCB3PVN0cmluZyhiKS50b0xvd2VyQ2FzZSgpLGs9U3RyaW5nKHkpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHc8az8tMSpmOnc+az8xKmY6MH0pLGx9dmFyIHZscj1wKCgpPT57fSk7ZnVuY3Rpb24gR04oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgnIicpJiZlLmVuZHNXaXRoKCciJyl8fGUuc3RhcnRzV2l0aCgiJyIpJiZlLmVuZHNXaXRoKCInIik/ZS5zbGljZSgxLC0xKTplfWZ1bmN0aW9uIGVYcihlKXtyZXR1cm4gZS5zcGxpdCgvXHMrT1JccysvaSkubWFwKHQ9PnQudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gdFhyKGUpe3JldHVybiBlLnNwbGl0KC9ccytBTkRccysvaSkubWFwKHQ9PnQudHJpbSgpKS5maWx0ZXIoQm9vbGVhbil9ZnVuY3Rpb24gclhyKGUpe2lmKCFlKXJldHVybiBudWxsO2xldCB0PSExLHI9ZS5tYXRjaCgvXlxzKihOT1Rccyt8LSlccyooLiopJC9pKTtyJiYodD0hMCxlPXJbMl0pO2xldCBpPWUubWF0Y2goL14oW146XHNdKylccyo6XHMqXFsoLio/KVxzK1RPXHMrKC4qPylcXSQvaSk7aWYoaSlyZXR1cm57ZmllbGQ6aVsxXSxuZWdhdGU6dCxyYW5nZTp7bG93ZXI6R04oaVsyXSkudG9Mb3dlckNhc2UoKSx1cHBlcjpHTihpWzNdKS50b0xvd2VyQ2FzZSgpLGluY2x1c2l2ZTohMH19O2xldCBhPWUubWF0Y2goL14oW146XHNdKylccyo6XHMqKCJbXiJdKiJ8J1teJ10qJ3xbXiInXHNdKykkLyk7cmV0dXJuIGE/e2ZpZWxkOmFbMV0sdmFsdWU6R04oYVsyXSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6dH06ZS5sZW5ndGg+MD97dmFsdWU6R04oZSkudG9Mb3dlckNhc2UoKSxuZWdhdGU6dH06bnVsbH1mdW5jdGlvbiBpWHIoZSl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9ZVhyKGUpLm1hcChyPT4oe3Rlcm1zOnRYcihyKS5tYXAoclhyKS5maWx0ZXIoYT0+ISFhJiYhIWEudmFsdWUpfSkpLmZpbHRlcihyPT5yLnRlcm1zLmxlbmd0aD4wKTtyZXR1cm4gdC5sZW5ndGg9PT0wP251bGw6e2NsYXVzZXM6dH19ZnVuY3Rpb24geGxyKGUsdCxyKXtsZXQgaT1pWHIoZSk7aWYoIWkpcmV0dXJuIG51bGw7bGV0IGE9bmV3IE1hcChyLm1hcChsPT5bU3RyaW5nKGwua2V5KSxsXSkpLG49KGwsYyk9Pmw8Yz8tMTpsPmM/MTowLG89bD0+e2xldCBjPVN0cmluZyhsPz8iIikudG9Mb3dlckNhc2UoKSx1PU51bWJlcihjKSxkPURhdGUucGFyc2UoYyk7cmV0dXJuIU51bWJlci5pc05hTih1KSYmYy50cmltKCkhPT0iIj97dDoibiIsdjp1fTpOdW1iZXIuaXNOYU4oZCk/e3Q6InMiLHY6Y306e3Q6ImQiLHY6ZH19LHM9KGwsYyx1KT0+e2xldCBkPW8obCksaD1vKGMpLGY9byh1KTtpZihkLnQ9PT0icyImJmgudD09PSJzIiYmZi50PT09InMiKXtsZXQgdj1kLnY7cmV0dXJuIG4odixoLnYpPj0wJiZuKHYsZi52KTw9MH1pZihkLnQ9PT0ibiImJmgudD09PSJuIiYmZi50PT09Im4iKXtsZXQgdj1kLnY7cmV0dXJuIHY+PWgudiYmdjw9Zi52fWlmKGQudD09PSJkIiYmaC50PT09ImQiJiZmLnQ9PT0iZCIpe2xldCB2PWQudjtyZXR1cm4gdj49aC52JiZ2PD1mLnZ9bGV0IHg9U3RyaW5nKGw/PyIiKS50b0xvd2VyQ2FzZSgpO3JldHVybiBuKHgsYyk+PTAmJm4oeCx1KTw9MH07cmV0dXJuIGw9Pntmb3IobGV0IGMgb2YgaS5jbGF1c2VzKXtsZXQgdT0hMDtmb3IobGV0IGQgb2YgYy50ZXJtcyl7bGV0IGg9ITE7aWYoZC5yYW5nZSYmZC5maWVsZClpZih0PT09ImRhdGEiKWg9cyhsW2QuZmllbGRdLGQucmFuZ2UubG93ZXIsZC5yYW5nZS51cHBlcik7ZWxzZXtsZXQgZj1hLmdldChkLmZpZWxkKTtpZighZnx8Zi5oaWRkZW4paD0hMTtlbHNle2xldCB4PWYudmFsdWU/Zi52YWx1ZShsKTpsW2Yua2V5XTtoPXMoeCxkLnJhbmdlLmxvd2VyLGQucmFuZ2UudXBwZXIpfX1lbHNlIGlmKGQuZmllbGQmJmQudmFsdWUhPW51bGwpaWYodD09PSJkYXRhIiloPVN0cmluZyhsW2QuZmllbGRdPz8iIikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhkLnZhbHVlKTtlbHNle2xldCBmPWEuZ2V0KGQuZmllbGQpO2lmKCFmfHxmLmhpZGRlbj09PSEwKWg9ITE7ZWxzZXtsZXQgeD1mLnZhbHVlP2YudmFsdWUobCk6bFtmLmtleV07aD1TdHJpbmcoeD8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZC52YWx1ZSl9fWVsc2UgZC52YWx1ZSE9bnVsbCYmKHQ9PT0iZGF0YSI/aD1PYmplY3QudmFsdWVzKGwpLnNvbWUoZj0+U3RyaW5nKGY/PyIiKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGQudmFsdWUpKTpoPXIuc29tZShmPT57aWYoZi5oaWRkZW4pcmV0dXJuITE7bGV0IHg9Zi52YWx1ZT9mLnZhbHVlKGwpOmxbZi5rZXldO3JldHVybiBTdHJpbmcoeD8/IiIpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZC52YWx1ZSl9KSk7aWYoZC5uZWdhdGUmJihoPSFoKSwhaCl7dT0hMTticmVha319aWYodSlyZXR1cm4hMH1yZXR1cm4hMX19dmFyIHlscj1wKCgpPT57fSk7dmFyIFByLHN0LFlOLEE2ZT1wKCgpPT57d2koKTtobHIoKTt4ZSgpO01pKCk7S3QoKTtvcigpO21scigpO3ZscigpO3lscigpO0plKCk7UHI9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxzdD1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sWU49KCgpPT57bGV0IGU9W3llKCJkZWVzLXRhYmxlIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXSx3ZSxJPVtdLG5lPVtdLGtlLFk9W10sQT1bXSxMLFU9W10sVj1bXSxYLGRlPVtdLHZlPVtdLExlLFc9W10sSD1bXSx0ZSxiZT1bXSx1ZT1bXSxDZSxoZT1bXSxpZT1bXSxTZSxJZT1bXSxaZT1bXSxLLFo9W10sSj1bXSxtZSxFZT1bXSxVZT1bXSxNdCxpdD1bXSxMdD1bXSxXdCxhZT1bXSxzZT1bXSxfZSx2dD1bXSxTdD1bXSxZcixkbj1bXSxVbz1bXSxXbyxNZT1bXSwkZT1bXSxCdCxGcj1bXSxacj1bXSxuMSxYcj1bXSxHbz1bXSxZbyxabz1bXSx3aD1bXTt2YXIgTWg9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBUZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOkFycmF5fSldLHg9W2ooe3R5cGU6U3RyaW5nfSldLHk9W2ooe3R5cGU6U3RyaW5nfSldLE89W2ooe3R5cGU6Qm9vbGVhbn0pXSxGPVtqKHt0eXBlOkJvb2xlYW59KV0sUj1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSwkPVtqKHt0eXBlOkJvb2xlYW59KV0scT1baih7dHlwZTpBcnJheX0pXSxlZT1baih7YXR0cmlidXRlOiExfSldLHdlPVtqKHthdHRyaWJ1dGU6ITF9KV0sa2U9W2ooe3R5cGU6Qm9vbGVhbn0pXSxMPVtqKHthdHRyaWJ1dGU6ITF9KV0sWD1baih7YXR0cmlidXRlOiExfSldLExlPVtqKHt0eXBlOk9iamVjdH0pXSx0ZT1baih7dHlwZTpBcnJheX0pXSxDZT1baih7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LXZlcnRpY2FsLWxpbmVzIn0pXSxTZT1baih7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITAsYXR0cmlidXRlOiJzaG93LWhvcml6b250YWwtbGluZXMifSldLEs9W2ooe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToic2hvdy1ncmlkIn0pXSxtZT1baih7YXR0cmlidXRlOiExfSldLE10PVtqKHthdHRyaWJ1dGU6ITF9KV0sV3Q9W2ooe3R5cGU6U3RyaW5nfSldLF9lPVtqKHthdHRyaWJ1dGU6ITF9KV0sWXI9W2ooe3R5cGU6Qm9vbGVhbixhdHRyaWJ1dGU6InNob3ctY29sdW1uLWZpbHRlcnMifSldLFdvPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6InN0aWNreS1oZWFkZXIifSldLEJ0PVtqKHt0eXBlOlN0cmluZ30pXSxuMT1baih7dHlwZTpTdHJpbmd9KV0sWW89W2ooe2F0dHJpYnV0ZTohMX0pXSxQcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmcxIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+ImhlYWRpbmcxImluIHBlLGdldDpwZT0+cGUuaGVhZGluZzEsc2V0OihwZSxCZSk9PntwZS5oZWFkaW5nMT1CZX19LG1ldGFkYXRhOlRlfSxvLHMpLFByKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZzIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4iaGVhZGluZzIiaW4gcGUsZ2V0OnBlPT5wZS5oZWFkaW5nMixzZXQ6KHBlLEJlKT0+e3BlLmhlYWRpbmcyPUJlfX0sbWV0YWRhdGE6VGV9LGMsdSksUHIodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+ImRhdGEiaW4gcGUsZ2V0OnBlPT5wZS5kYXRhLHNldDoocGUsQmUpPT57cGUuZGF0YT1CZX19LG1ldGFkYXRhOlRlfSxoLGYpLFByKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToia2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+ImtleSJpbiBwZSxnZXQ6cGU9PnBlLmtleSxzZXQ6KHBlLEJlKT0+e3BlLmtleT1CZX19LG1ldGFkYXRhOlRlfSx2LGIpLFByKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ibGFiZWwiaW4gcGUsZ2V0OnBlPT5wZS5sYWJlbCxzZXQ6KHBlLEJlKT0+e3BlLmxhYmVsPUJlfX0sbWV0YWRhdGE6VGV9LHcsayksUHIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXNhYmxlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJkaXNhYmxlZCJpbiBwZSxnZXQ6cGU9PnBlLmRpc2FibGVkLHNldDoocGUsQmUpPT57cGUuZGlzYWJsZWQ9QmV9fSxtZXRhZGF0YTpUZX0seixNKSxQcih0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlcXVpcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InJlcXVpcmVkImluIHBlLGdldDpwZT0+cGUucmVxdWlyZWQsc2V0OihwZSxCZSk9PntwZS5yZXF1aXJlZD1CZX19LG1ldGFkYXRhOlRlfSxELE4pLFByKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YU5hbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4iZGF0YU5hbWUiaW4gcGUsZ2V0OnBlPT5wZS5kYXRhTmFtZSxzZXQ6KHBlLEJlKT0+e3BlLmRhdGFOYW1lPUJlfX0sbWV0YWRhdGE6VGV9LF8sUyksUHIodGhpcyxudWxsLCQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWFyY2hhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InNlYXJjaGFibGUiaW4gcGUsZ2V0OnBlPT5wZS5zZWFyY2hhYmxlLHNldDoocGUsQmUpPT57cGUuc2VhcmNoYWJsZT1CZX19LG1ldGFkYXRhOlRlfSxULEUpLFByKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGF0YUFjdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4iZGF0YUFjdGlvbnMiaW4gcGUsZ2V0OnBlPT5wZS5kYXRhQWN0aW9ucyxzZXQ6KHBlLEJlKT0+e3BlLmRhdGFBY3Rpb25zPUJlfX0sbWV0YWRhdGE6VGV9LEIsRyksUHIodGhpcyxudWxsLGVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJjb2x1bW5zImluIHBlLGdldDpwZT0+cGUuY29sdW1ucyxzZXQ6KHBlLEJlKT0+e3BlLmNvbHVtbnM9QmV9fSxtZXRhZGF0YTpUZX0sUCxnZSksUHIodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm93S2V5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InJvd0tleSJpbiBwZSxnZXQ6cGU9PnBlLnJvd0tleSxzZXQ6KHBlLEJlKT0+e3BlLnJvd0tleT1CZX19LG1ldGFkYXRhOlRlfSxJLG5lKSxQcih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbiJpbiBwZSxnZXQ6cGU9PnBlLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLHNldDoocGUsQmUpPT57cGUuYXVnbWVudEZyb21EaXNwbGF5RnVuY3Rpb249QmV9fSxtZXRhZGF0YTpUZX0sWSxBKSxQcih0aGlzLG51bGwsTCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpc3BsYXlGdW5jdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJkaXNwbGF5RnVuY3Rpb24iaW4gcGUsZ2V0OnBlPT5wZS5kaXNwbGF5RnVuY3Rpb24sc2V0OihwZSxCZSk9PntwZS5kaXNwbGF5RnVuY3Rpb249QmV9fSxtZXRhZGF0YTpUZX0sVSxWKSxQcih0aGlzLG51bGwsWCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJldmVyc2VEaXNwbGF5RnVuY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4icmV2ZXJzZURpc3BsYXlGdW5jdGlvbiJpbiBwZSxnZXQ6cGU9PnBlLnJldmVyc2VEaXNwbGF5RnVuY3Rpb24sc2V0OihwZSxCZSk9PntwZS5yZXZlcnNlRGlzcGxheUZ1bmN0aW9uPUJlfX0sbWV0YWRhdGE6VGV9LGRlLHZlKSxQcih0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZERhdGFSb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ic2VsZWN0ZWREYXRhUm93ImluIHBlLGdldDpwZT0+cGUuc2VsZWN0ZWREYXRhUm93LHNldDoocGUsQmUpPT57cGUuc2VsZWN0ZWREYXRhUm93PUJlfX0sbWV0YWRhdGE6VGV9LFcsSCksUHIodGhpcyxudWxsLHRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGFibGVGaWVsZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4iZWRpdGFibGVGaWVsZHMiaW4gcGUsZ2V0OnBlPT5wZS5lZGl0YWJsZUZpZWxkcyxzZXQ6KHBlLEJlKT0+e3BlLmVkaXRhYmxlRmllbGRzPUJlfX0sbWV0YWRhdGE6VGV9LGJlLHVlKSxQcih0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VmVydGljYWxMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJzaG93VmVydGljYWxMaW5lcyJpbiBwZSxnZXQ6cGU9PnBlLnNob3dWZXJ0aWNhbExpbmVzLHNldDoocGUsQmUpPT57cGUuc2hvd1ZlcnRpY2FsTGluZXM9QmV9fSxtZXRhZGF0YTpUZX0saGUsaWUpLFByKHRoaXMsbnVsbCxTZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dIb3Jpem9udGFsTGluZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ic2hvd0hvcml6b250YWxMaW5lcyJpbiBwZSxnZXQ6cGU9PnBlLnNob3dIb3Jpem9udGFsTGluZXMsc2V0OihwZSxCZSk9PntwZS5zaG93SG9yaXpvbnRhbExpbmVzPUJlfX0sbWV0YWRhdGE6VGV9LEllLFplKSxQcih0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dHcmlkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InNob3dHcmlkImluIHBlLGdldDpwZT0+cGUuc2hvd0dyaWQsc2V0OihwZSxCZSk9PntwZS5zaG93R3JpZD1CZX19LG1ldGFkYXRhOlRlfSxaLEopLFByKHRoaXMsbnVsbCxtZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRLZXkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ic29ydEtleSJpbiBwZSxnZXQ6cGU9PnBlLnNvcnRLZXksc2V0OihwZSxCZSk9PntwZS5zb3J0S2V5PUJlfX0sbWV0YWRhdGE6VGV9LEVlLFVlKSxQcih0aGlzLG51bGwsTXQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzb3J0RGlyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InNvcnREaXIiaW4gcGUsZ2V0OnBlPT5wZS5zb3J0RGlyLHNldDoocGUsQmUpPT57cGUuc29ydERpcj1CZX19LG1ldGFkYXRhOlRlfSxpdCxMdCksUHIodGhpcyxudWxsLFd0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJmaWx0ZXJUZXh0ImluIHBlLGdldDpwZT0+cGUuZmlsdGVyVGV4dCxzZXQ6KHBlLEJlKT0+e3BlLmZpbHRlclRleHQ9QmV9fSxtZXRhZGF0YTpUZX0sYWUsc2UpLFByKHRoaXMsbnVsbCxfZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbHVtbkZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4iY29sdW1uRmlsdGVycyJpbiBwZSxnZXQ6cGU9PnBlLmNvbHVtbkZpbHRlcnMsc2V0OihwZSxCZSk9PntwZS5jb2x1bW5GaWx0ZXJzPUJlfX0sbWV0YWRhdGE6VGV9LHZ0LFN0KSxQcih0aGlzLG51bGwsWXIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93Q29sdW1uRmlsdGVycyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJzaG93Q29sdW1uRmlsdGVycyJpbiBwZSxnZXQ6cGU9PnBlLnNob3dDb2x1bW5GaWx0ZXJzLHNldDoocGUsQmUpPT57cGUuc2hvd0NvbHVtbkZpbHRlcnM9QmV9fSxtZXRhZGF0YTpUZX0sZG4sVW8pLFByKHRoaXMsbnVsbCxXbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0aWNreUhlYWRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cGU9PiJzdGlja3lIZWFkZXIiaW4gcGUsZ2V0OnBlPT5wZS5zdGlja3lIZWFkZXIsc2V0OihwZSxCZSk9PntwZS5zdGlja3lIZWFkZXI9QmV9fSxtZXRhZGF0YTpUZX0sTWUsJGUpLFByKHRoaXMsbnVsbCxCdCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlYXJjaE1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ic2VhcmNoTW9kZSJpbiBwZSxnZXQ6cGU9PnBlLnNlYXJjaE1vZGUsc2V0OihwZSxCZSk9PntwZS5zZWFyY2hNb2RlPUJlfX0sbWV0YWRhdGE6VGV9LEZyLFpyKSxQcih0aGlzLG51bGwsbjEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3Rpb25Nb2RlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpwZT0+InNlbGVjdGlvbk1vZGUiaW4gcGUsZ2V0OnBlPT5wZS5zZWxlY3Rpb25Nb2RlLHNldDoocGUsQmUpPT57cGUuc2VsZWN0aW9uTW9kZT1CZX19LG1ldGFkYXRhOlRlfSxYcixHbyksUHIodGhpcyxudWxsLFlvLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRJZHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnBlPT4ic2VsZWN0ZWRJZHMiaW4gcGUsZ2V0OnBlPT5wZS5zZWxlY3RlZElkcyxzZXQ6KHBlLEJlKT0+e3BlLnNlbGVjdGVkSWRzPUJlfX0sbWV0YWRhdGE6VGV9LFpvLHdoKSxQcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpUZX0sbnVsbCxyKSxNaD1pPXQudmFsdWUsVGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VGV9KX1zdGF0aWMgZGVtbz1wbHI7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciXTsjZT1zdCh0aGlzLG8sImhlYWRpbmcgMSIpO2dldCBoZWFkaW5nMSgpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nMShUZSl7dGhpcy4jZT1UZX0jdD0oc3QodGhpcyxzKSxzdCh0aGlzLGMsImhlYWRpbmcgMiIpKTtnZXQgaGVhZGluZzIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaGVhZGluZzIoVGUpe3RoaXMuI3Q9VGV9I3I9KHN0KHRoaXMsdSksc3QodGhpcyxoLFtdKSk7Z2V0IGRhdGEoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZGF0YShUZSl7dGhpcy4jcj1UZX0jaT0oc3QodGhpcyxmKSxzdCh0aGlzLHYsdm9pZCAwKSk7Z2V0IGtleSgpe3JldHVybiB0aGlzLiNpfXNldCBrZXkoVGUpe3RoaXMuI2k9VGV9I2E9KHN0KHRoaXMsYiksc3QodGhpcyx3LHZvaWQgMCkpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNhfXNldCBsYWJlbChUZSl7dGhpcy4jYT1UZX0jbj0oc3QodGhpcyxrKSxzdCh0aGlzLHosITEpKTtnZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZGlzYWJsZWQoVGUpe3RoaXMuI249VGV9I289KHN0KHRoaXMsTSksc3QodGhpcyxELCExKSk7Z2V0IHJlcXVpcmVkKCl7cmV0dXJuIHRoaXMuI299c2V0IHJlcXVpcmVkKFRlKXt0aGlzLiNvPVRlfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmRhdGF9c2V0IHZhbHVlKFRlKXt9Y2hhbmdlU3ViamVjdD0oc3QodGhpcyxOKSxuZXcganQuc21hcnRyeC5yeGpzLlN1YmplY3QpOyNzPXN0KHRoaXMsXyx2b2lkIDApO2dldCBkYXRhTmFtZSgpe3JldHVybiB0aGlzLiNzfXNldCBkYXRhTmFtZShUZSl7dGhpcy4jcz1UZX0jbD0oc3QodGhpcyxTKSxzdCh0aGlzLFQsITApKTtnZXQgc2VhcmNoYWJsZSgpe3JldHVybiB0aGlzLiNsfXNldCBzZWFyY2hhYmxlKFRlKXt0aGlzLiNsPVRlfSNjPShzdCh0aGlzLEUpLHN0KHRoaXMsQixbXSkpO2dldCBkYXRhQWN0aW9ucygpe3JldHVybiB0aGlzLiNjfXNldCBkYXRhQWN0aW9ucyhUZSl7dGhpcy4jYz1UZX0jZD0oc3QodGhpcyxHKSxzdCh0aGlzLFAsW10pKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNkfXNldCBjb2x1bW5zKFRlKXt0aGlzLiNkPVRlfSN1PShzdCh0aGlzLGdlKSxzdCh0aGlzLEksdm9pZCAwKSk7Z2V0IHJvd0tleSgpe3JldHVybiB0aGlzLiN1fXNldCByb3dLZXkoVGUpe3RoaXMuI3U9VGV9I3A9KHN0KHRoaXMsbmUpLHN0KHRoaXMsWSwhMSkpO2dldCBhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbigpe3JldHVybiB0aGlzLiNwfXNldCBhdWdtZW50RnJvbURpc3BsYXlGdW5jdGlvbihUZSl7dGhpcy4jcD1UZX0jaD0oc3QodGhpcyxBKSxzdCh0aGlzLFUsVGU9PlRlKSk7Z2V0IGRpc3BsYXlGdW5jdGlvbigpe3JldHVybiB0aGlzLiNofXNldCBkaXNwbGF5RnVuY3Rpb24oVGUpe3RoaXMuI2g9VGV9I2Y9KHN0KHRoaXMsViksc3QodGhpcyxkZSxUZT0+VGUpKTtnZXQgcmV2ZXJzZURpc3BsYXlGdW5jdGlvbigpe3JldHVybiB0aGlzLiNmfXNldCByZXZlcnNlRGlzcGxheUZ1bmN0aW9uKFRlKXt0aGlzLiNmPVRlfSNtPShzdCh0aGlzLHZlKSxzdCh0aGlzLFcsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkRGF0YVJvdygpe3JldHVybiB0aGlzLiNtfXNldCBzZWxlY3RlZERhdGFSb3coVGUpe3RoaXMuI209VGV9I2c9KHN0KHRoaXMsSCksc3QodGhpcyxiZSxbXSkpO2dldCBlZGl0YWJsZUZpZWxkcygpe3JldHVybiB0aGlzLiNnfXNldCBlZGl0YWJsZUZpZWxkcyhUZSl7dGhpcy4jZz1UZX0jYj0oc3QodGhpcyx1ZSksc3QodGhpcyxoZSwhMSkpO2dldCBzaG93VmVydGljYWxMaW5lcygpe3JldHVybiB0aGlzLiNifXNldCBzaG93VmVydGljYWxMaW5lcyhUZSl7dGhpcy4jYj1UZX0jdj0oc3QodGhpcyxpZSksc3QodGhpcyxJZSwhMSkpO2dldCBzaG93SG9yaXpvbnRhbExpbmVzKCl7cmV0dXJuIHRoaXMuI3Z9c2V0IHNob3dIb3Jpem9udGFsTGluZXMoVGUpe3RoaXMuI3Y9VGV9I3g9KHN0KHRoaXMsWmUpLHN0KHRoaXMsWiwhMCkpO2dldCBzaG93R3JpZCgpe3JldHVybiB0aGlzLiN4fXNldCBzaG93R3JpZChUZSl7dGhpcy4jeD1UZX1maWxlcz0oc3QodGhpcyxKKSxbXSk7ZmlsZVdlYWtNYXA9bmV3IFdlYWtNYXA7ZGF0YUNoYW5nZVN1YmplY3Q9bmV3IGp0LnNtYXJ0cngucnhqcy5TdWJqZWN0OyN5PXN0KHRoaXMsRWUsdm9pZCAwKTtnZXQgc29ydEtleSgpe3JldHVybiB0aGlzLiN5fXNldCBzb3J0S2V5KFRlKXt0aGlzLiN5PVRlfSN3PShzdCh0aGlzLFVlKSxzdCh0aGlzLGl0LG51bGwpKTtnZXQgc29ydERpcigpe3JldHVybiB0aGlzLiN3fXNldCBzb3J0RGlyKFRlKXt0aGlzLiN3PVRlfSNNPShzdCh0aGlzLEx0KSxzdCh0aGlzLGFlLCIiKSk7Z2V0IGZpbHRlclRleHQoKXtyZXR1cm4gdGhpcy4jTX1zZXQgZmlsdGVyVGV4dChUZSl7dGhpcy4jTT1UZX0jaz0oc3QodGhpcyxzZSksc3QodGhpcyx2dCx7fSkpO2dldCBjb2x1bW5GaWx0ZXJzKCl7cmV0dXJuIHRoaXMuI2t9c2V0IGNvbHVtbkZpbHRlcnMoVGUpe3RoaXMuI2s9VGV9I1M9KHN0KHRoaXMsU3QpLHN0KHRoaXMsZG4sITEpKTtnZXQgc2hvd0NvbHVtbkZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jU31zZXQgc2hvd0NvbHVtbkZpbHRlcnMoVGUpe3RoaXMuI1M9VGV9I3o9KHN0KHRoaXMsVW8pLHN0KHRoaXMsTWUsITEpKTtnZXQgc3RpY2t5SGVhZGVyKCl7cmV0dXJuIHRoaXMuI3p9c2V0IHN0aWNreUhlYWRlcihUZSl7dGhpcy4jej1UZX0jQz0oc3QodGhpcywkZSksc3QodGhpcyxGciwidGFibGUiKSk7Z2V0IHNlYXJjaE1vZGUoKXtyZXR1cm4gdGhpcy4jQ31zZXQgc2VhcmNoTW9kZShUZSl7dGhpcy4jQz1UZX1fX3NlYXJjaFRleHRTdWI9c3QodGhpcyxacik7X19zZWFyY2hNb2RlU3ViOyNUPXN0KHRoaXMsWHIsIm5vbmUiKTtnZXQgc2VsZWN0aW9uTW9kZSgpe3JldHVybiB0aGlzLiNUfXNldCBzZWxlY3Rpb25Nb2RlKFRlKXt0aGlzLiNUPVRlfSNfPShzdCh0aGlzLEdvKSxzdCh0aGlzLFpvLG5ldyBTZXQpKTtnZXQgc2VsZWN0ZWRJZHMoKXtyZXR1cm4gdGhpcy4jX31zZXQgc2VsZWN0ZWRJZHMoVGUpe3RoaXMuI189VGV9X3Jvd0lkTWFwPShzdCh0aGlzLHdoKSxuZXcgV2Vha01hcCk7X3Jvd0lkQ291bnRlcj0wO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1zdGF0aWMgc3R5bGVzPWZscjtyZW5kZXIoKXtsZXQgcGU9QXJyYXkuaXNBcnJheSh0aGlzLmNvbHVtbnMpJiZ0aGlzLmNvbHVtbnMubGVuZ3RoPjA/Z2xyKHRoaXMuY29sdW1ucyx0aGlzLmF1Z21lbnRGcm9tRGlzcGxheUZ1bmN0aW9uLHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSk6RDZlKHRoaXMuZGlzcGxheUZ1bmN0aW9uLHRoaXMuZGF0YSksQmU9eGxyKHRoaXMuZmlsdGVyVGV4dCx0aGlzLnNlYXJjaE1vZGU9PT0iZGF0YSI/ImRhdGEiOiJ0YWJsZSIscGUpLEYxPWJscih0aGlzLmRhdGEscGUsdGhpcy5zb3J0S2V5LHRoaXMuc29ydERpcix0aGlzLmZpbHRlclRleHQsdGhpcy5jb2x1bW5GaWx0ZXJzLHRoaXMuc2VhcmNoTW9kZT09PSJkYXRhIj8iZGF0YSI6InRhYmxlIixCZXx8dm9pZCAwKTtyZXR1cm4gdGhpcy5fbGFzdFZpZXdEYXRhPUYxLENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgIDwhLS0gdGhlIGhlYWRpbmcgcGFydCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZ0NvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmcgaGVhZGluZzEiPiR7dGhpcy5sYWJlbHx8dGhpcy5oZWFkaW5nMX08L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGluZyBoZWFkaW5nMiI+JHt0aGlzLmhlYWRpbmcyfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHtFby5yZXNvbHZlRXhlYyhhc3luYygpPT57bGV0IHh0PVtdO2ZvcihsZXQgUXIgb2YgdGhpcy5kYXRhQWN0aW9ucylRci50eXBlPy5pbmNsdWRlcygiaGVhZGVyIikmJnh0LnB1c2goQ2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImhlYWRlckFjdGlvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e1FyLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7UXIuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke1FyLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAke1FyLm5hbWV9YDpRci5uYW1lfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtyZXR1cm4geHR9KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmdTZXBhcmF0aW9uIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hHcmlkIGhpZGRlbiI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD0keyJsdWNlbmUgc3ludGF4IHNlYXJjaCJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2AKICAgICAgICAgICAgICBZb3UgY2FuIHVzZSB0aGUgbHVjZW5lIHN5bnRheCB0byBzZWFyY2ggZm9yIGRhdGEsIGUuZy46CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgbmFtZTogImpvaG4iIEFORCBhZ2U6IDE4CiAgICAgICAgICAgICAgXGBcYFxgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgIGB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAubGFiZWw9JHsic2VhcmNoIG1vZGUifQogICAgICAgICAgICAub3B0aW9ucz0ke1sidGFibGUiLCJkYXRhIiwic2VydmVyIl19CiAgICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0keyJ0YWJsZSJ9CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0ke2AKICAgICAgICAgICAgICBUaGVyZSBhcmUgdGhyZWUgYmFzaWMgbW9kZXM6CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgKiB0YWJsZTogb25seSBzZWFyY2hlcyBkYXRhIGFscmVhZHkgaW4gdGhlIHRhYmxlCiAgICAgICAgICAgICAgKiBkYXRhOiBzZWFyY2hlcyBvcmlnaW5hbCBkYXRhLCBpZ25vcmluZyB0YWJsZSB0cmFuc2Zvcm1zCiAgICAgICAgICAgICAgKiBzZXJ2ZXI6IHNlYXJjaGVzIGRhdGEgb24gdGhlIHNlcnZlcgogICAgICAgICAgICAgIAogICAgICAgICAgICBgfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSB0aGUgYWN0dWFsIHRhYmxlIC0tPgogICAgICAgIDxzdHlsZT48L3N0eWxlPgogICAgICAgICR7dGhpcy5kYXRhLmxlbmd0aD4wP0NgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGVTY3JvbGwiPgogICAgICAgICAgICAgIDx0YWJsZT4KICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICR7dGhpcy5zZWxlY3Rpb25Nb2RlIT09Im5vbmUiP0NgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0MnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ibXVsdGkiP0NgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmFyZUFsbFZpc2libGVTZWxlY3RlZCgpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXRlcm1pbmF0ZT0ke3RoaXMuaXNWaXNpYmxlU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHt4dD0+e3h0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0U2VsZWN0VmlzaWJsZSh4dC5kZXRhaWw9PT0hMCl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgOkNgYH0KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICBgOkNgYH0KICAgICAgICAgICAgICAgICAgICAke3BlLmZpbHRlcih4dD0+IXh0LmhpZGRlbikubWFwKHh0PT57bGV0IFFyPSEheHQuc29ydGFibGUsUmE9dGhpcy5nZXRBcmlhU29ydCh4dCk7cmV0dXJuIENgCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJjb2x1bW5oZWFkZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNvcnQ9JHtSYX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPSIke1FyPyJjdXJzb3I6IHBvaW50ZXI7IjoiIn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+UXI/dGhpcy50b2dnbGVTb3J0KHh0KTpudWxsfQogICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7eHQuaGVhZGVyPz94dC5rZXl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyU29ydEluZGljYXRvcih4dCl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5gfSl9CiAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZih0aGlzLmRhdGFBY3Rpb25zJiZ0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aD4wKXJldHVybiBDYCA8dGggY2xhc3M9ImFjdGlvbnNDb2wiPkFjdGlvbnM8L3RoPiBgfSkoKX0KICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLnNob3dDb2x1bW5GaWx0ZXJzP0NgPHRyIGNsYXNzPSJmaWx0ZXJzUm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSI/Q2A8dGggc3R5bGU9IndpZHRoOjQycHg7Ij48L3RoPmA6Q2BgfQogICAgICAgICAgICAgICAgICAgICAgICAke3BlLmZpbHRlcih4dD0+IXh0LmhpZGRlbikubWFwKHh0PT57bGV0IFFyPVN0cmluZyh4dC5rZXkpO3JldHVybiB4dC5maWx0ZXJhYmxlPT09ITE/Q2A8dGg+PC90aD5gOkNgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkZpbHRlci4uLiIgLnZhbHVlPSR7dGhpcy5jb2x1bW5GaWx0ZXJzW1FyXXx8IiJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PSR7UmE9PnRoaXMuc2V0Q29sdW1uRmlsdGVyKFFyLFJhLnRhcmdldC52YWx1ZSl9IC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPmB9KX0KICAgICAgICAgICAgICAgICAgICAgICAgJHsoKCk9PntpZih0aGlzLmRhdGFBY3Rpb25zJiZ0aGlzLmRhdGFBY3Rpb25zLmxlbmd0aD4wKXJldHVybiBDYCA8dGg+PC90aD4gYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmA6Q2BgfQogICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgJHtGMS5tYXAoKHh0LFFyKT0+e2xldCBSYT1odD0+aHQudGFnTmFtZT09PSJUUiI/aHQ6UmEoaHQucGFyZW50RWxlbWVudCk7cmV0dXJuIENgCiAgICAgICAgICAgICAgICAgICAgICA8dHIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PntpZih0aGlzLnNlbGVjdGVkRGF0YVJvdz14dCx0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIil7bGV0IGh0PXRoaXMuZ2V0Um93SWQoeHQpO3RoaXMuc2VsZWN0ZWRJZHMuY2xlYXIoKSx0aGlzLnNlbGVjdGVkSWRzLmFkZChodCksdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCl9fX0KICAgICAgICAgICAgICAgICAgICAgICAgQGRyYWdlbnRlcj0ke2FzeW5jIGh0PT57aHQucHJldmVudERlZmF1bHQoKSxodC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgWTE9UmEoaHQudGFyZ2V0KTtzZXRUaW1lb3V0KCgpPT57WTEuY2xhc3NMaXN0LmFkZCgiaGFzQXR0YWNobWVudCIpfSwwKX19CiAgICAgICAgICAgICAgICAgICAgICAgIEBkcmFnbGVhdmU9JHthc3luYyBodD0+e2h0LnByZXZlbnREZWZhdWx0KCksaHQuc3RvcFByb3BhZ2F0aW9uKCksUmEoaHQudGFyZ2V0KS5jbGFzc0xpc3QucmVtb3ZlKCJoYXNBdHRhY2htZW50Iil9fQogICAgICAgICAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHthc3luYyBodD0+e2h0LnByZXZlbnREZWZhdWx0KCl9fQogICAgICAgICAgICAgICAgICAgICAgICBAZHJvcD0ke2FzeW5jIGh0PT57aHQucHJldmVudERlZmF1bHQoKTtsZXQgWTE9W107Zm9yKGxldCBYbyBvZiBBcnJheS5mcm9tKGh0LmRhdGFUcmFuc2Zlci5maWxlcykpdGhpcy5maWxlcy5wdXNoKFhvKSxZMS5wdXNoKFhvKSx0aGlzLnJlcXVlc3RVcGRhdGUoKTtsZXQgQmE9dGhpcy5maWxlV2Vha01hcC5nZXQoeHQpO0JhP0JhLnB1c2goLi4uWTEpOnRoaXMuZmlsZVdlYWtNYXAuc2V0KHh0LFkxKX19CiAgICAgICAgICAgICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke2FzeW5jIGh0PT57U3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoaHQsdGhpcy5nZXRBY3Rpb25zRm9yVHlwZSgiY29udGV4dG1lbnUiKS5tYXAoWTE9Pih7bmFtZTpZMS5uYW1lLGljb25OYW1lOlkxLmljb25OYW1lLGFjdGlvbjphc3luYygpPT4oYXdhaXQgWTEuYWN0aW9uRnVuYyh7aXRlbTp4dCx0YWJsZTp0aGlzfSksbnVsbCl9KSkpfX0KICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IiR7eHQ9PT10aGlzLnNlbGVjdGVkRGF0YVJvdz8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLnNlbGVjdGlvbk1vZGUhPT0ibm9uZSI/Q2A8dGQgc3R5bGU9IndpZHRoOjQycHg7IHRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pc1Jvd1NlbGVjdGVkKHh0KX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbmV3VmFsdWU9JHtodD0+e2h0LnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0Um93U2VsZWN0ZWQoeHQsaHQuZGV0YWlsPT09ITApfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+YDpDYGB9CiAgICAgICAgICAgICAgICAgICAgICAgICR7cGUuZmlsdGVyKGh0PT4haHQuaGlkZGVuKS5tYXAoKGh0LFkxKT0+e2xldCBCYT1uaCh4dCxodCx0aGlzLmRpc3BsYXlGdW5jdGlvbiksWG89aHQucmVuZGVyZXI/aHQucmVuZGVyZXIoQmEseHQse3Jvd0luZGV4OlFyLGNvbEluZGV4OlkxLGNvbHVtbjpodH0pOkJhLGtoPVN0cmluZyhodC5rZXkpO3JldHVybiBDYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZGJsY2xpY2s9JHtLYj0+e2xldCBTaD10aGlzLmRhdGFBY3Rpb25zLmZpbmQoZXY9PmV2LnR5cGU/LmluY2x1ZGVzKCJkb3VibGVDbGljayIpKTt0aGlzLmVkaXRhYmxlRmllbGRzLmluY2x1ZGVzKGtoKT90aGlzLmhhbmRsZUNlbGxFZGl0aW5nKEtiLHh0LGtoKTpTaCYmU2guYWN0aW9uRnVuYyh7aXRlbTp4dCx0YWJsZTp0aGlzfSl9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXJDZWxsQ29udGFpbmVyIj4ke1hvfTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pfQogICAgICAgICAgICAgICAgICAgICAgICAkeygoKT0+e2lmKHRoaXMuZGF0YUFjdGlvbnMmJnRoaXMuZGF0YUFjdGlvbnMubGVuZ3RoPjApcmV0dXJuIENgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iYWN0aW9uc0NvbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uc0NvbnRhaW5lciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuZ2V0QWN0aW9uc0ZvclR5cGUoImluUm93IikubWFwKGh0PT5DYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJhY3Rpb24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+aHQuYWN0aW9uRnVuYyh7aXRlbTp4dCx0YWJsZTp0aGlzfSl9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtodC5pY29uTmFtZT9DYCA8ZGVlcy1pY29uIC5pY29uPSR7aHQuaWNvbk5hbWV9PjwvZGVlcy1pY29uPiBgOmh0Lm5hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGApfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYH0pKCl9CiAgICAgICAgICAgICAgICAgICAgICA8L3RyPmB9KX0KICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDpDYCA8ZGl2IGNsYXNzPSJub0RhdGFTZXQiPk5vIGRhdGEgc2V0ITwvZGl2PiBgfQogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZVN0YXRpc3RpY3MiPgogICAgICAgICAgICAke3RoaXMuZGF0YS5sZW5ndGh9ICR7dGhpcy5kYXRhTmFtZXx8ImRhdGEgcm93cyJ9ICh0b3RhbCkgfAogICAgICAgICAgICAke3RoaXMuc2VsZWN0ZWREYXRhUm93P2AjICR7dGhpcy5kYXRhLmluZGV4T2YodGhpcy5zZWxlY3RlZERhdGFSb3cpKzF9YDoiTm8ifQogICAgICAgICAgICBzZWxlY3RlZAogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY3Rpb25zIj4KICAgICAgICAgICAgJHtFby5yZXNvbHZlRXhlYyhhc3luYygpPT57bGV0IHh0PVtdO2ZvcihsZXQgUXIgb2YgdGhpcy5kYXRhQWN0aW9ucylRci50eXBlPy5pbmNsdWRlcygiZm9vdGVyIikmJnh0LnB1c2goQ2A8ZGl2CiAgICAgICAgICAgICAgICAgICAgY2xhc3M9ImZvb3RlckFjdGlvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+e1FyLmFjdGlvbkZ1bmMoe2l0ZW06dGhpcy5zZWxlY3RlZERhdGFSb3csdGFibGU6dGhpc30pfX0KICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICR7UXIuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIC5pY29uU2l6ZT0kezE0fSAuaWNvbj0ke1FyLmljb25OYW1lfT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAke1FyLm5hbWV9YDpRci5uYW1lfQogICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtyZXR1cm4geHR9KX0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7fWFzeW5jIHVwZGF0ZWQoVGUpe3N1cGVyLnVwZGF0ZWQoVGUpLHRoaXMuZGV0ZXJtaW5lQ29sdW1uV2lkdGhzKCksdGhpcy5zZWFyY2hhYmxlJiYodGhpcy5kYXRhQWN0aW9ucy5maW5kKEJlPT5CZS50eXBlPy5pbmNsdWRlcygiaGVhZGVyIikmJkJlLm5hbWU9PT0iU2VhcmNoIil8fCh0aGlzLmRhdGFBY3Rpb25zLnVuc2hpZnQoe25hbWU6IlNlYXJjaCIsaWNvbk5hbWU6Imx1Y2lkZTpTZWFyY2giLHR5cGU6WyJoZWFkZXIiXSxhY3Rpb25GdW5jOmFzeW5jKCk9Pntjb25zb2xlLmxvZygib3BlbiBzZWFyY2giKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlYXJjaEdyaWQiKS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iKX19KSxjb25zb2xlLmxvZyh0aGlzLmRhdGFBY3Rpb25zKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSksdGhpcy53aXJlU2VhcmNoSW5wdXRzKCkpfV9fZGVib3VuY2VUaW1lcjtkZWJvdW5jZVJ1bihUZSxwZT0yMDApe3RoaXMuX19kZWJvdW5jZVRpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5fX2RlYm91bmNlVGltZXIpLHRoaXMuX19kZWJvdW5jZVRpbWVyPXNldFRpbWVvdXQoVGUscGUpfXdpcmVTZWFyY2hJbnB1dHMoKXtsZXQgVGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2VhcmNoR3JpZCBkZWVzLWlucHV0LXRleHQiKSxwZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zZWFyY2hHcmlkIGRlZXMtaW5wdXQtbXVsdGl0b2dnbGUiKTtUZSYmIXRoaXMuX19zZWFyY2hUZXh0U3ViJiYodGhpcy5fX3NlYXJjaFRleHRTdWI9VGUuY2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoQmU9PntsZXQgRjE9QmU/LnZhbHVlPz8iIjt0aGlzLmRlYm91bmNlUnVuKCgpPT57dGhpcy5zZWFyY2hNb2RlPT09InNlcnZlciI/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoUmVxdWVzdCIse2RldGFpbDp7cXVlcnk6RjEsbW9kZToic2VydmVyIn0sYnViYmxlczohMH0pKTp0aGlzLnNldEZpbHRlclRleHQoRjEpfSl9KSkscGUmJiF0aGlzLl9fc2VhcmNoTW9kZVN1YiYmKHRoaXMuX19zZWFyY2hNb2RlU3ViPXBlLmNoYW5nZVN1YmplY3Quc3Vic2NyaWJlKEJlPT57bGV0IEYxPUJlPy5zZWxlY3RlZE9wdGlvbnx8QmU/LnZhbHVlfHwidGFibGUiO2lmKEYxPT09InRhYmxlInx8RjE9PT0iZGF0YSJ8fEYxPT09InNlcnZlciIpe3RoaXMuc2VhcmNoTW9kZT1GMTtsZXQgeHQ9VGU/LnZhbHVlPz8iIjt0aGlzLmRlYm91bmNlUnVuKCgpPT57dGhpcy5zZWFyY2hNb2RlPT09InNlcnZlciI/dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoUmVxdWVzdCIse2RldGFpbDp7cXVlcnk6eHQsbW9kZToic2VydmVyIn0sYnViYmxlczohMH0pKTp0aGlzLnNldEZpbHRlclRleHQoeHQpfSl9fSkpfWFzeW5jIGRldGVybWluZUNvbHVtbldpZHRocygpe2F3YWl0KGF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlKS5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApO2xldCBwZT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigidGFibGUiKTtpZighcGUpcmV0dXJuO2xldCBCZT1wZS5yb3dzWzBdLmNlbGxzLEYxPWFzeW5jKHh0LFFyPSExKT0+e2xldCBSYT1YZS5kZWZlcigpLGh0PUJlW3h0XSxZMT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShodCkud2lkdGg7aWYoaHQudGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKSl7bGV0IEJhPXRoaXMuZGF0YUFjdGlvbnMuZmlsdGVyKFhvPT5Yby50eXBlPy5pbmNsdWRlcygiaW5Sb3ciKSkubGVuZ3RoKjM2O2h0LnN0eWxlLndpZHRoPWAke01hdGgubWF4KEJhLDY4KX1weGB9ZWxzZSBodC5zdHlsZS53aWR0aD1ZMTtRciYmKHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e1JhLnJlc29sdmUoKX0pLGF3YWl0IFJhLnByb21pc2UpfTtCZVtCZS5sZW5ndGgtMV0udGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKSYmYXdhaXQgRjEoQmUubGVuZ3RoLTEsITApO2ZvcihsZXQgeHQ9MDt4dDxCZS5sZW5ndGg7eHQrKylCZVt4dF0udGV4dENvbnRlbnQuaW5jbHVkZXMoIkFjdGlvbnMiKXx8YXdhaXQgRjEoeHQpO3BlLnN0eWxlLnRhYmxlTGF5b3V0PSJmaXhlZCJ9dG9nZ2xlU29ydChUZSl7bGV0IHBlPVN0cmluZyhUZS5rZXkpO3RoaXMuc29ydEtleSE9PXBlPyh0aGlzLnNvcnRLZXk9cGUsdGhpcy5zb3J0RGlyPSJhc2MiKTp0aGlzLnNvcnREaXI9PT0iYXNjIj90aGlzLnNvcnREaXI9ImRlc2MiOnRoaXMuc29ydERpcj09PSJkZXNjIj8odGhpcy5zb3J0RGlyPW51bGwsdGhpcy5zb3J0S2V5PXZvaWQgMCk6dGhpcy5zb3J0RGlyPSJhc2MiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNvcnRDaGFuZ2UiLHtkZXRhaWw6e2tleTp0aGlzLnNvcnRLZXksZGlyOnRoaXMuc29ydERpcn0sYnViYmxlczohMH0pKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1nZXRBcmlhU29ydChUZSl7cmV0dXJuIFN0cmluZyhUZS5rZXkpIT09dGhpcy5zb3J0S2V5fHwhdGhpcy5zb3J0RGlyPyJub25lIjp0aGlzLnNvcnREaXI9PT0iYXNjIj8iYXNjZW5kaW5nIjoiZGVzY2VuZGluZyJ9cmVuZGVyU29ydEluZGljYXRvcihUZSl7cmV0dXJuIFN0cmluZyhUZS5rZXkpIT09dGhpcy5zb3J0S2V5fHwhdGhpcy5zb3J0RGlyP0NgYDpDYDxzcGFuIHN0eWxlPSJtYXJnaW4tbGVmdDo2cHg7IG9wYWNpdHk6MC43OyI+JHt0aGlzLnNvcnREaXI9PT0iYXNjIj8iXHUyNUIyIjoiXHUyNUJDIn08L3NwYW4+YH1zZXRGaWx0ZXJUZXh0KFRlKXtsZXQgcGU9dGhpcy5maWx0ZXJUZXh0O3RoaXMuZmlsdGVyVGV4dD1UZT8/IiIscGUhPT10aGlzLmZpbHRlclRleHQmJih0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJmaWx0ZXJDaGFuZ2UiLHtkZXRhaWw6e3RleHQ6dGhpcy5maWx0ZXJUZXh0LGNvbHVtbnM6ey4uLnRoaXMuY29sdW1uRmlsdGVyc319LGJ1YmJsZXM6ITB9KSksdGhpcy5yZXF1ZXN0VXBkYXRlKCkpfXNldENvbHVtbkZpbHRlcihUZSxwZSl7dGhpcy5jb2x1bW5GaWx0ZXJzPXsuLi50aGlzLmNvbHVtbkZpbHRlcnMsW1RlXTpwZX0sdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsdGVyQ2hhbmdlIix7ZGV0YWlsOnt0ZXh0OnRoaXMuZmlsdGVyVGV4dCxjb2x1bW5zOnsuLi50aGlzLmNvbHVtbkZpbHRlcnN9fSxidWJibGVzOiEwfSkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWdldFJvd0lkKFRlKXtpZih0aGlzLnJvd0tleSlyZXR1cm4gdHlwZW9mIHRoaXMucm93S2V5PT0iZnVuY3Rpb24iP3RoaXMucm93S2V5KFRlKTpTdHJpbmcoVGVbdGhpcy5yb3dLZXldKTtsZXQgcGU9VGU7cmV0dXJuIHRoaXMuX3Jvd0lkTWFwLmhhcyhwZSl8fHRoaXMuX3Jvd0lkTWFwLnNldChwZSxTdHJpbmcoKyt0aGlzLl9yb3dJZENvdW50ZXIpKSx0aGlzLl9yb3dJZE1hcC5nZXQocGUpfWlzUm93U2VsZWN0ZWQoVGUpe3JldHVybiB0aGlzLnNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lkKFRlKSl9dG9nZ2xlUm93U2VsZWN0ZWQoVGUpe2xldCBwZT10aGlzLmdldFJvd0lkKFRlKTt0aGlzLnNlbGVjdGlvbk1vZGU9PT0ic2luZ2xlIj8odGhpcy5zZWxlY3RlZElkcy5jbGVhcigpLHRoaXMuc2VsZWN0ZWRJZHMuYWRkKHBlKSk6dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpIiYmKHRoaXMuc2VsZWN0ZWRJZHMuaGFzKHBlKT90aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShwZSk6dGhpcy5zZWxlY3RlZElkcy5hZGQocGUpKSx0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zZXRSb3dTZWxlY3RlZChUZSxwZSl7bGV0IEJlPXRoaXMuZ2V0Um93SWQoVGUpO3RoaXMuc2VsZWN0aW9uTW9kZT09PSJzaW5nbGUiPyh0aGlzLnNlbGVjdGVkSWRzLmNsZWFyKCkscGUmJnRoaXMuc2VsZWN0ZWRJZHMuYWRkKEJlKSk6dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpIiYmKHBlP3RoaXMuc2VsZWN0ZWRJZHMuYWRkKEJlKTp0aGlzLnNlbGVjdGVkSWRzLmRlbGV0ZShCZSkpLHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFyZUFsbFZpc2libGVTZWxlY3RlZCgpe2xldCBUZT10aGlzLl9sYXN0Vmlld0RhdGF8fFtdO2lmKFRlLmxlbmd0aD09PTApcmV0dXJuITE7Zm9yKGxldCBwZSBvZiBUZSlpZighdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChwZSkpKXJldHVybiExO3JldHVybiEwfWlzVmlzaWJsZVNlbGVjdGlvbkluZGV0ZXJtaW5hdGUoKXtsZXQgVGU9dGhpcy5fbGFzdFZpZXdEYXRhfHxbXTtpZihUZS5sZW5ndGg9PT0wKXJldHVybiExO2xldCBwZT0wO2ZvcihsZXQgQmUgb2YgVGUpdGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChCZSkpJiZwZSsrO3JldHVybiBwZT4wJiZwZTxUZS5sZW5ndGh9c2V0U2VsZWN0VmlzaWJsZShUZSl7bGV0IHBlPXRoaXMuX2xhc3RWaWV3RGF0YXx8W107aWYoVGUpZm9yKGxldCBCZSBvZiBwZSl0aGlzLnNlbGVjdGVkSWRzLmFkZCh0aGlzLmdldFJvd0lkKEJlKSk7ZWxzZSBmb3IobGV0IEJlIG9mIHBlKXRoaXMuc2VsZWN0ZWRJZHMuZGVsZXRlKHRoaXMuZ2V0Um93SWQoQmUpKTt0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKX1lbWl0U2VsZWN0aW9uQ2hhbmdlKCl7bGV0IFRlPUFycmF5LmZyb20odGhpcy5zZWxlY3RlZElkcykscGU9dGhpcy5kYXRhLmZpbHRlcihCZT0+dGhpcy5zZWxlY3RlZElkcy5oYXModGhpcy5nZXRSb3dJZChCZSkpKTt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWxlY3Rpb25DaGFuZ2UiLHtkZXRhaWw6e3NlbGVjdGVkSWRzOlRlLHNlbGVjdGVkUm93czpwZX0sYnViYmxlczohMH0pKX1nZXRBY3Rpb25zRm9yVHlwZShUZSl7bGV0IHBlPVtdO2ZvcihsZXQgQmUgb2YgdGhpcy5kYXRhQWN0aW9ucylCZS50eXBlPy5pbmNsdWRlcyhUZSkmJnBlLnB1c2goQmUpO3JldHVybiBwZX1hc3luYyBoYW5kbGVDZWxsRWRpdGluZyhUZSxwZSxCZSl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7bGV0IEYxPVRlLnRhcmdldCx4dD1GMS5zdHlsZS5jb2xvcjtGMS5zdHlsZS5jb2xvcj0idHJhbnNwYXJlbnQiO2xldCBSYT10aGlzLmRpc3BsYXlGdW5jdGlvbihwZSlbQmVdPz9wZVtCZV0/PyIiLGh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7aHQudHlwZT0idGV4dCIsaHQudmFsdWU9UmE7bGV0IFkxPWFzeW5jKEJhPSEwLFhvPSExKT0+e0JhJiZodC5ibHVyKCksWG8mJihwZVtCZV09aHQudmFsdWUsdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcykpLGh0LnJlbW92ZSgpLEYxLnN0eWxlLmNvbG9yPXh0LHRoaXMucmVxdWVzdFVwZGF0ZSgpfTtodC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e1kxKCExLCExKX0pLGh0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEJhPT57QmEua2V5PT09IkVudGVyIiYmWTEoITAsITApfSksRjEuYXBwZW5kQ2hpbGQoaHQpLGh0LmZvY3VzKCl9c3RhdGlje3N0KGkscil9fTtyZXR1cm4gTWg9aX0pKCl9KTt2YXIgRTZlPXAoKCk9PntBNmUoKX0pO3ZhciB3bHIsTWxyPXAoKCk9Pnt4ZSgpO3AxKCk7d2xyPSgpPT5DYAogIDxzdHlsZT4KICAgICR7b2VgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5mb3JtLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2UgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuc3RhdHVzLW1lc3NhZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIuMSA3MC42JSA0NS4zJSAvIDAuMSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDcwLjYlIDM1LjMlKSIsImhzbCgxNDIuMSA3MC42JSA2NS4zJSkiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5zdGF0dXMtbWVzc2FnZS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4xKSIsImhzbCgwIDcyLjIlIDUwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDQwLjYlKSIsImhzbCgwIDcyLjIlIDYwLjYlKSIpfTsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIuZm9ybS1vdXRwdXQiKTt0JiZyJiYodC5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsYXN5bmMgYT0+e2xldCBuPWEuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YToiLG4pLHQuc2V0U3RhdHVzKCJwZW5kaW5nIiwiUHJvY2Vzc2luZyB5b3VyIHJlZ2lzdHJhdGlvbi4uLiIpLHIuaW5uZXJIVE1MPWA8c3Ryb25nPlN1Ym1pdHRlZCBEYXRhOjwvc3Ryb25nPgoke0pTT04uc3RyaW5naWZ5KG4sbnVsbCwyKX1gLGF3YWl0IGt0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLHQuc2V0U3RhdHVzKCJzdWNjZXNzIiwiUmVnaXN0cmF0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhIiksYXdhaXQga3QucGx1Z2lucy5zbWFydGRlbGF5LmRlbGF5Rm9yKDJlMyksdC5yZXNldCgpLHIuaW5uZXJIVE1MPSI8ZW0+Rm9ybSBoYXMgYmVlbiByZXNldDwvZW0+In0pLHQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0LCBkZWVzLWlucHV0LWRyb3Bkb3duLCBkZWVzLWlucHV0LWNoZWNrYm94IikuZm9yRWFjaChhPT57YS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2VTdWJqZWN0IiwoKT0+e2NvbnNvbGUubG9nKCJGaWVsZCBjaGFuZ2VkOiIsYS5nZXRBdHRyaWJ1dGUoImtleSIpKX0pfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC5oZWFkaW5nPSJDb21wbGV0ZSBGb3JtIEV4YW1wbGUiIC5kZXNjcmlwdGlvbj0iQSBjb21wcmVoZW5zaXZlIGZvcm0gd2l0aCB2YXJpb3VzIGlucHV0IHR5cGVzLCB2YWxpZGF0aW9uLCBhbmQgZm9ybSBzdWJtaXNzaW9uIGhhbmRsaW5nIj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImZpcnN0TmFtZSIgCiAgICAgICAgICAgIGxhYmVsPSJGaXJzdCBOYW1lIgogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiWW91ciBnaXZlbiBuYW1lIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9Imxhc3ROYW1lIiAKICAgICAgICAgICAgbGFiZWw9Ikxhc3QgTmFtZSIKICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9IAogICAgICAgICAgICBrZXk9ImVtYWlsIiAKICAgICAgICAgICAgbGFiZWw9IkVtYWlsIEFkZHJlc3MiCiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJXZSB3aWxsIHVzZSB0aGlzIHRvIGNvbnRhY3QgeW91In0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIGtleT0iY291bnRyeSIKICAgICAgICAgICAgLmxhYmVsPSR7IkNvdW50cnkifQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJVbml0ZWQgU3RhdGVzIixrZXk6InVzIn0se29wdGlvbjoiQ2FuYWRhIixrZXk6ImNhIn0se29wdGlvbjoiR2VybWFueSIsa2V5OiJkZSJ9LHtvcHRpb246IkZyYW5jZSIsa2V5OiJmciJ9LHtvcHRpb246IlVuaXRlZCBLaW5nZG9tIixrZXk6InVrIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJwYXNzd29yZCIKICAgICAgICAgICAgbGFiZWw9IlBhc3N3b3JkIgogICAgICAgICAgICBpc1Bhc3N3b3JkQm9vbAogICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiTWluaW11bSA4IGNoYXJhY3RlcnMifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveAogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAga2V5PSJ0ZXJtcyIKICAgICAgICAgICAgbGFiZWw9IkkgYWdyZWUgdG8gdGhlIFRlcm1zIGFuZCBDb25kaXRpb25zIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJuZXdzbGV0dGVyIgogICAgICAgICAgICBsYWJlbD0iU2VuZCBtZSBwcm9tb3Rpb25hbCBlbWFpbHMiCiAgICAgICAgICAgIC52YWx1ZT0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q3JlYXRlIEFjY291bnQ8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1vdXRwdXQiPgogICAgICAgICAgPGVtPlN1Ym1pdCB0aGUgZm9ybSB0byBzZWUgdGhlIGNvbGxlY3RlZCBkYXRhLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTt0JiYoY29uc29sZS5sb2coIkhvcml6b250YWwgZm9ybSBsYXlvdXQgYWN0aXZlIiksdC5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsaT0+e2xldCBhPWkuZGV0YWlsLmRhdGE7Y29uc29sZS5sb2coIkZpbHRlciBhcHBsaWVkOiIsYSk7bGV0IG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMCkrMTtjb25zb2xlLmxvZyhgRm91bmQgJHtufSByZXN1bHRzIHdpdGggZmlsdGVyczpgLGEpfSksdC5xdWVyeVNlbGVjdG9yQWxsKCJba2V5XSIpLmZvckVhY2goaT0+e2kuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlU3ViamVjdCIsYXN5bmMoKT0+e2xldCBhPWF3YWl0IHQuY29sbGVjdEZvcm1EYXRhKCk7Y29uc29sZS5sb2coIkxpdmUgZmlsdGVyIHVwZGF0ZToiLGEpfSl9KSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9Ikhvcml6b250YWwgRm9ybSBMYXlvdXQiIC5kZXNjcmlwdGlvbj0iQ29tcGFjdCBmb3JtIHdpdGggaW5wdXRzIGFycmFuZ2VkIGhvcml6b250YWxseSAtIHBlcmZlY3QgZm9yIGZpbHRlcnMgYW5kIHF1aWNrIGZvcm1zIj4KICAgICAgICA8ZGVlcy1mb3JtIGhvcml6b250YWwtbGF5b3V0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAKICAgICAgICAgICAga2V5PSJzZWFyY2giIAogICAgICAgICAgICBsYWJlbD0iU2VhcmNoIgogICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIga2V5d29yZHMuLi4iCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0iY2F0ZWdvcnkiCiAgICAgICAgICAgIC5sYWJlbD0keyJDYXRlZ29yeSJ9CiAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiQWxsIixrZXk6ImFsbCJ9LHtvcHRpb246IlByb2R1Y3RzIixrZXk6InByb2R1Y3RzIn0se29wdGlvbjoiU2VydmljZXMiLGtleToic2VydmljZXMifSx7b3B0aW9uOiJTdXBwb3J0IixrZXk6InN1cHBvcnQifV19CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICBrZXk9InNvcnQiCiAgICAgICAgICAgIC5sYWJlbD0keyJTb3J0IEJ5In0KICAgICAgICAgICAgLmVuYWJsZVNlYXJjaD0keyExfQogICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJOZXdlc3QiLGtleToibmV3ZXN0In0se29wdGlvbjoiUG9wdWxhciIsa2V5OiJwb3B1bGFyIn0se29wdGlvbjoiUHJpY2U6IExvdyB0byBIaWdoIixrZXk6InByaWNlX2FzYyJ9LHtvcHRpb246IlByaWNlOiBIaWdoIHRvIExvdyIsa2V5OiJwcmljZV9kZXNjIn1dfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gKICAgICAgICAgICAga2V5PSJpblN0b2NrIgogICAgICAgICAgICBsYWJlbD0iSW4gU3RvY2sgT25seSIKICAgICAgICAgICAgLnZhbHVlPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjc3RhdHVzLWRpc3BsYXkiKTtpZih0KXt0LmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixhc3luYyBhPT57bGV0IG49YS5kZXRhaWwuZGF0YTtjb25zb2xlLmxvZygiQWR2YW5jZWQgZm9ybSBkYXRhOiIsbiksdC5zZXRTdGF0dXMoInBlbmRpbmciLCJWYWxpZGF0aW5nIHlvdXIgaW5mb3JtYXRpb24uLi4iKSxhd2FpdCBrdC5wbHVnaW5zLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTUwMCksbi5pYmFuJiZuLmliYW4ubGVuZ3RoPjE1Pyh0LnNldFN0YXR1cygic3VjY2VzcyIsIkFwcGxpY2F0aW9uIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHkhIiksciYmKHIuY2xhc3NOYW1lPSJzdGF0dXMtbWVzc2FnZSBzdWNjZXNzIixyLnRleHRDb250ZW50PSJcdTI3MTMgWW91ciBhcHBsaWNhdGlvbiBoYXMgYmVlbiBzdWJtaXR0ZWQuIFdlIHdpbGwgY29udGFjdCB5b3Ugc29vbi4iKSk6KHQuc2V0U3RhdHVzKCJlcnJvciIsIlBsZWFzZSBjaGVjayB5b3VyIElCQU4iKSxyJiYoci5jbGFzc05hbWU9InN0YXR1cy1tZXNzYWdlIGVycm9yIixyLnRleHRDb250ZW50PSJcdTI3MTcgSW52YWxpZCBJQkFOIGZvcm1hdC4gUGxlYXNlIGNoZWNrIGFuZCB0cnkgYWdhaW4uIikpLGNvbnNvbGUubG9nKCJGb3JtIGRhdGEgbG9nZ2VkOiIsbil9KTtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoImRlZXMtaW5wdXQtZmlsZXVwbG9hZCIpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhPT57bGV0IG49YS5kZXRhaWw/LmZpbGVzfHxbXTtjb25zb2xlLmxvZyhgJHtuLmxlbmd0aH0gZmlsZShzKSBzZWxlY3RlZCBmb3IgdXBsb2FkYCl9KX19fT4KICAgICAgPGRlZXMtcGFuZWwgLmhlYWRpbmc9IkFkdmFuY2VkIEZvcm0gRmVhdHVyZXMiIC5kZXNjcmlwdGlvbj0iRm9ybSB3aXRoIHNwZWNpYWxpemVkIGlucHV0IHR5cGVzIGFuZCBjb21wbGV4IHZhbGlkYXRpb24iPgogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1pYmFuIAogICAgICAgICAgICBrZXk9ImliYW4iCiAgICAgICAgICAgIGxhYmVsPSJJQkFOIgogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgID48L2RlZXMtaW5wdXQtaWJhbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcGhvbmUKICAgICAgICAgICAga2V5PSJwaG9uZSIKICAgICAgICAgICAgbGFiZWw9IlBob25lIE51bWJlciIKICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXBob25lPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICBrZXk9InByZWZlcmVuY2VzIgogICAgICAgICAgICAubGFiZWw9JHsiTm90aWZpY2F0aW9uIFByZWZlcmVuY2VzIn0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIkVtYWlsIiwiU01TIiwiUHVzaCIsIkluLUFwcCJdfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHsiRW1haWwifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbXVsdGlzZWxlY3QKICAgICAgICAgICAga2V5PSJpbnRlcmVzdHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJBcmVhcyBvZiBJbnRlcmVzdCJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246IlRlY2hub2xvZ3kiLGtleToidGVjaCJ9LHtvcHRpb246IkRlc2lnbiIsa2V5OiJkZXNpZ24ifSx7b3B0aW9uOiJCdXNpbmVzcyIsa2V5OiJidXNpbmVzcyJ9LHtvcHRpb246Ik1hcmtldGluZyIsa2V5OiJtYXJrZXRpbmcifSx7b3B0aW9uOiJTYWxlcyIsa2V5OiJzYWxlcyJ9XX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbXVsdGlzZWxlY3Q+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LWZpbGV1cGxvYWQKICAgICAgICAgICAga2V5PSJkb2N1bWVudHMiCiAgICAgICAgICAgIC5sYWJlbD0keyJVcGxvYWQgRG9jdW1lbnRzIn0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlBERiwgRE9DLCBvciBET0NYIGZpbGVzIHVwIHRvIDEwTUIifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1maWxldXBsb2FkPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgQXBwbGljYXRpb248L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0ic3RhdHVzLWRpc3BsYXkiPjwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIga2xyLCQ2ZSxTbHIsemxyLGloPXAoKCk9Pnt4ZSgpO0t0KCk7Q04oKTt1NmUoKTtoNmUoKTtONCgpO2c2ZSgpO0lOKCk7Rk4oKTt2NmUoKTtrNmUoKTtTNmUoKTt6NmUoKTtUNmUoKTtMNmUoKTtPZCgpO0U2ZSgpO01scigpO2tscj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LCQ2ZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sU2xyPVt6TixMTixBTixOTixPTixITixxTixWTixFTiwkTixETixVTixXTixZTl0semxyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1mb3JtIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwLGF0dHJpYnV0ZToiaG9yaXpvbnRhbC1sYXlvdXQifSldLGtscih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imhvcml6b250YWxMYXlvdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnU9PiJob3Jpem9udGFsTGF5b3V0ImluIHUsZ2V0OnU9PnUuaG9yaXpvbnRhbExheW91dCxzZXQ6KHUsZCk9Pnt1Lmhvcml6b250YWxMYXlvdXQ9ZH19LG1ldGFkYXRhOmN9LG8scyksa2xyKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmN9LG51bGwsciksbD1pPXQudmFsdWUsYyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9c3RhdGljIGRlbW89d2xyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRm9ybSJdO25hbWU9Im15Zm9ybSI7Y2hhbmdlU3ViamVjdD1uZXcganQuc21hcnRyeC5yeGpzLlN1YmplY3Q7cmVhZHlEZWZlcnJlZD1qdC5zbWFydHByb21pc2UuZGVmZXIoKTsjZT0kNmUodGhpcyxvLCExKTtnZXQgaG9yaXpvbnRhbExheW91dCgpe3JldHVybiB0aGlzLiNlfXNldCBob3Jpem9udGFsTGF5b3V0KGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtob3Jpem9udGFsLWxheW91dF0pIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8c2xvdD48L3Nsb3Q+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCk7dGhpcy51cGRhdGVSZXF1aXJlZFN0YXR1cygpLHRoaXMudXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCk7Zm9yKGxldCB1IG9mIGMpdS5jaGFuZ2VTdWJqZWN0LnN1YnNjcmliZShhc3luYygpPT57bGV0IGQ9YXdhaXQgdGhpcy5jb2xsZWN0Rm9ybURhdGEoKTt0aGlzLmNoYW5nZVN1YmplY3QubmV4dChkKSxjb25zb2xlLmxvZyhkKSx0aGlzLnVwZGF0ZVJlcXVpcmVkU3RhdHVzKCl9KTthd2FpdCB0aGlzLmFkZEJlaGF2aW91cnMoKSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfWdldEZvcm1FbGVtZW50cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbHRlcihjPT5TbHIuaW5jbHVkZXMoYy5jb25zdHJ1Y3RvcikpfWdldFN1Ym1pdEJ1dHRvbigpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbmQoYz0+YyBpbnN0YW5jZW9mIFBOKX1hc3luYyB1cGRhdGVSZXF1aXJlZFN0YXR1cygpe2NvbnNvbGUubG9nKCJjaGVja2luZyB0aGUgcmVxdWlyZWQgc3RhdHVzLiIpO2xldCBjPSEwO2ZvcihsZXQgdSBvZiB0aGlzLmdldEZvcm1FbGVtZW50cygpKXUucmVxdWlyZWQmJiF1LnZhbHVlJiYoYz0hMSk7dGhpcy5nZXRTdWJtaXRCdXR0b24oKSYmKHRoaXMuZ2V0U3VibWl0QnV0dG9uKCkuZGlzYWJsZWQ9IWMpfWFzeW5jIGNvbGxlY3RGb3JtRGF0YSgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksdT17fTtmb3IobGV0IGQgb2YgYyl7aWYoIWQua2V5KXtjb25zb2xlLmxvZyhgZm9ybSBlbGVtZW50IHdpdGggbGFiZWwgIiR7ZC5sYWJlbH0iIGhhcyBubyBrZXkuIHNraXBwaW5nLmApO2NvbnRpbnVlfXVbZC5rZXldPWQudmFsdWV9cmV0dXJuIHV9YXN5bmMgZ2F0aGVyQW5kRGlzcGF0Y2goKXtsZXQgYz1hd2FpdCB0aGlzLmNvbGxlY3RGb3JtRGF0YSgpLHU9bmV3IEN1c3RvbUV2ZW50KCJmb3JtRGF0YSIse2RldGFpbDp7ZGF0YTpjfSxidWJibGVzOiEwfSk7dGhpcy5kaXNwYXRjaEV2ZW50KHUpLGNvbnNvbGUubG9nKCJkaXNwYXRjaGVkIGRhdGE6IiksY29uc29sZS5sb2coYyl9c2V0U3RhdHVzKGMsdSl7bGV0IGQ9dGhpcy5nZXRGb3JtRWxlbWVudHMoKSxoPXRoaXMuZ2V0U3VibWl0QnV0dG9uKCk7c3dpdGNoKGMpe2Nhc2Uibm9ybWFsIjpoLmRpc2FibGVkPSExLGguc3RhdHVzPSJub3JtYWwiO2ZvcihsZXQgZiBvZiBkKWYuZGlzYWJsZWQ9ITE7YnJlYWs7Y2FzZSJwZW5kaW5nIjpoLmRpc2FibGVkPSEwLGguc3RhdHVzPSJwZW5kaW5nIjtmb3IobGV0IGYgb2YgZClmLmRpc2FibGVkPSEwO2JyZWFrO2Nhc2Uic3VjY2VzcyI6aC5kaXNhYmxlZD0hMCxoLnN0YXR1cz0ic3VjY2VzcyI7Zm9yKGxldCBmIG9mIGQpZi5kaXNhYmxlZD0hMDticmVhaztjYXNlImVycm9yIjpoLmRpc2FibGVkPSEwLGguc3RhdHVzPSJlcnJvciI7Zm9yKGxldCBmIG9mIGQpZi5kaXNhYmxlZD0hMDticmVha31oLnRleHQ9dX1yZXNldCgpe2xldCBjPXRoaXMuZ2V0Rm9ybUVsZW1lbnRzKCksdT10aGlzLmdldFN1Ym1pdEJ1dHRvbigpO2ZvcihsZXQgZCBvZiBjKWQudmFsdWU9bnVsbDt0aGlzLnNldFN0YXR1cygibm9ybWFsIiwiU3VibWl0Iil9YXN5bmMgYWRkQmVoYXZpb3Vycygpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYz0+e2xldCB1PWMudGFyZ2V0O2lmKFNsci5pbmNsdWRlcyh1LmNvbnN0cnVjdG9yKSYmYy5rZXk9PT0iRW50ZXIiKXtsZXQgZD10aGlzLmdldEZvcm1FbGVtZW50cygpLGg9ZC5pbmRleE9mKHUpO2g8ZC5sZW5ndGgtMT9kW2grMV0uZm9jdXMoKToodS5ibHVyKCksdGhpcy5nZXRTdWJtaXRCdXR0b24oKT8uZm9jdXMoKSl9fSl9dXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCl7bGV0IGM9dGhpcy5nZXRGb3JtRWxlbWVudHMoKTtmb3IobGV0IHUgb2YgYykibGF5b3V0TW9kZSJpbiB1JiYodS5sYXlvdXRNb2RlPSJhdXRvIil9dXBkYXRlZChjKXtzdXBlci51cGRhdGVkKGMpLGMuaGFzKCJob3Jpem9udGFsTGF5b3V0IikmJnRoaXMudXBkYXRlQ2hpbGRyZW5MYXlvdXRNb2RlKCl9Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLCQ2ZSh0aGlzLHMpfXN0YXRpY3skNmUoaSxyKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIENscixUbHI9cCgoKT0+e3hlKCk7cDEoKTtPaSgpO2loKCk7T2QoKTtONCgpO29yKCk7Q2xyPSgpPT5DYAogIDxzdHlsZT4KICAgICR7b2VgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAudmVydGljYWwtZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXgtd2lkdGg6IDMwMHB4OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbC1ncm91cCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIH0KICAgICAgCiAgICAgIC5kZW1vLW91dHB1dCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmljb24tcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLXNuaXBwZXQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIG1hcmdpbjogNHB4IDA7CiAgICAgIH0KICAgIGB9CiAgPC9zdHlsZT4KICAKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57ZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgaT1yLmdldEF0dHJpYnV0ZSgidHlwZSIpfHwiZGVmYXVsdCI7Y29uc29sZS5sb2coYEJ1dHRvbiB2YXJpYW50IGNsaWNrZWQ6ICR7aX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJ1dHRvbiBWYXJpYW50cyJ9IC5zdWJ0aXRsZT0keyJEaWZmZXJlbnQgdmlzdWFsIHN0eWxlcyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiPkRlZmF1bHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVzdHJ1Y3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im91dGxpbmUiPk91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0Ij5HaG9zdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ibGluayI+TGluayBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBpPXIuZ2V0QXR0cmlidXRlKCJzaXplIil8fCJkZWZhdWx0Ijtjb25zb2xlLmxvZyhgQnV0dG9uIHNpemU6ICR7aX1gKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIEJ1dHRvbiBTaXplcyJ9IC5zdWJ0aXRsZT0keyJNdWx0aXBsZSBzaXplcyBmb3IgZGlmZmVyZW50IGNvbnRleHRzIGFuZCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9InNtIj5TbWFsbCBCdXR0b248L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9ImRlZmF1bHQiPkRlZmF1bHQgU2l6ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciPkxhcmdlIEJ1dHRvbjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSIgLnRleHQ9JHsiXHV7MUY2ODB9In0+PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiIHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ic20iIHR5cGU9InNlY29uZGFyeSI+U21hbGwgU2Vjb25kYXJ5PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJkZWZhdWx0IiB0eXBlPSJkZXN0cnVjdGl2ZSI+RGVmYXVsdCBEZXN0cnVjdGl2ZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0ibGciIHR5cGU9Im91dGxpbmUiPkxhcmdlIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgICAKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaChyPT57ci5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBpPXIucXVlcnlTZWxlY3RvcigiZGVlcy1pY29uIik7aWYoaSl7bGV0IGE9aS5nZXRBdHRyaWJ1dGUoImljb25GQSIpfHwidW5rbm93biI7Y29uc29sZS5sb2coYEljb24gYnV0dG9uIGNsaWNrZWQ6ICR7YX1gKX19KX0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBCdXR0b25zIHdpdGggSWNvbnMifSAuc3VidGl0bGU9JHsiQ29tYmluaW5nIGljb25zIHdpdGggdGV4dCBmb3IgZW5oYW5jZWQgdmlzdWFsIGNvbW11bmljYXRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6cGx1cyI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIEFkZCBJdGVtCiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTp0cmFzaCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIERlbGV0ZQogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBEb3dubG9hZAogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOmdlYXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICBTZXR0aW5ncwogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6Y2FyZXRMZWZ0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgQmFjawogICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCI+CiAgICAgICAgICAgIE5leHQKICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpjYXJldFJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpwbHVzIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ic2Vjb25kYXJ5Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJmYTpnZWFyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0ib3V0bGluZSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNlYXJjaCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Imdob3N0Ij4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6TW9yZVZlcnRpY2FsIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGljb249ImZhOnRyYXNoIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57ZS5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2gocj0+e3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9PntsZXQgaT1yLmdldEF0dHJpYnV0ZSgiaWNvbiIpfHwibm9uZSIsYT1yLmdldEF0dHJpYnV0ZSgiaWNvblBvc2l0aW9uIil8fCJsZWZ0Ijtjb25zb2xlLmxvZyhgSWNvbiBwcm9wZXJ0eSBidXR0b246IGljb249JHtpfSwgcG9zaXRpb249JHthfWApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gSWNvbnMgdmlhIFByb3BlcnR5In0gLnN1YnRpdGxlPSR7IlNpbXBsaWZpZWQgaWNvbiBzeW50YXggdXNpbmcgdGhlIGljb24gcHJvcGVydHkifT4KICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXJvdyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyI+QWRkIEl0ZW08L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBpY29uPSJmYTp0cmFzaCI+RGVsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPkRvd25sb2FkPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1yb3ciPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc2l6ZT0ic20iIGljb249ImZhOmdlYXIiPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRMZWZ0Ij5CYWNrPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgaWNvbj0iZmE6Y2FyZXRSaWdodCIgaWNvblBvc2l0aW9uPSJyaWdodCI+TmV4dDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9Imljb24tcm93Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBzaXplPSJpY29uIiB0eXBlPSJkZWZhdWx0IiBpY29uPSJmYTpwbHVzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9InNlY29uZGFyeSIgaWNvbj0ibHVjaWRlOlNldHRpbmdzIj48L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHNpemU9Imljb24iIHR5cGU9Im91dGxpbmUiIGljb249Imx1Y2lkZTpTZWFyY2giPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZ2hvc3QiIGljb249Imx1Y2lkZTpNb3JlVmVydGljYWwiPjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc2l6ZT0iaWNvbiIgdHlwZT0iZGVzdHJ1Y3RpdmUiIGljb249ImZhOnRyYXNoIj48L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAxNnB4OyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gaWNvbj0iZmE6cGx1cyImZ3Q7QWRkIEl0ZW0mbHQ7L2RlZXMtYnV0dG9uJmd0Ozxicj4KICAgICAgICAgICAgJmx0O2RlZXMtYnV0dG9uIGljb249ImZhOmNhcmV0UmlnaHQiIGljb25Qb3NpdGlvbj0icmlnaHQiJmd0O05leHQmbHQ7L2RlZXMtYnV0dG9uJmd0OwogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InBlbmRpbmciXScpLHI9ZS5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9InN1Y2Nlc3MiXScpLGk9ZS5xdWVyeVNlbGVjdG9yKCdkZWVzLWJ1dHRvbltzdGF0dXM9ImVycm9yIl0nKTt0JiZzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlBlbmRpbmcgYnV0dG9uIGlzIHNob3dpbmcgbG9hZGluZyBzdGF0ZSIpfSwxZTMpLHImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pntjb25zb2xlLmxvZygiU3VjY2VzcyBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSksaSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJFcnJvciBzdGF0ZSBidXR0b24gY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjUuIEJ1dHRvbiBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyB0byBpbmRpY2F0ZSBidXR0b24gc3RhdHVzIGFuZCBsb2FkaW5nIGNvbmRpdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0ibm9ybWFsIj5Ob3JtYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHN0YXR1cz0icGVuZGluZyI+UHJvY2Vzc2luZy4uLjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJzdWNjZXNzIj5TdWNjZXNzITwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gc3RhdHVzPSJlcnJvciI+RXJyb3IhPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBkaXNhYmxlZD5EaXNhYmxlZDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIiBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSIgc3RhdHVzPSJwZW5kaW5nIiBzaXplPSJzbSI+U21hbGwgTG9hZGluZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ib3V0bGluZSIgc3RhdHVzPSJwZW5kaW5nIj5EZWZhdWx0IExvYWRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlc3RydWN0aXZlIiBzdGF0dXM9InBlbmRpbmciIHNpemU9ImxnIj5MYXJnZSBMb2FkaW5nPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2xpY2stb3V0cHV0Iikscj1lLnF1ZXJ5U2VsZWN0b3IoImRlZXMtYnV0dG9uOmZpcnN0LW9mLXR5cGUiKSxpPWUucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0ic2Vjb25kYXJ5Il0nKSxhPWUucXVlcnlTZWxlY3RvcignZGVlcy1idXR0b25bdHlwZT0iZGVzdHJ1Y3RpdmUiXScpO3ImJnQmJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsKCk9Pnt0LnRleHRDb250ZW50PWBDbGlja2VkOiBEZWZhdWx0IGJ1dHRvbiBhdCAke25ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCl9YH0pLGkmJnQmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsbj0+e3QudGV4dENvbnRlbnQ9YENsaWNrZWQ6IFNlY29uZGFyeSBidXR0b24gd2l0aCBkYXRhOiAke24uZGV0YWlsLmRhdGF9YH0pLGEmJnQmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2tlZCIsYXN5bmMoKT0+e3QudGV4dENvbnRlbnQ9IlByb2Nlc3NpbmcuLi4iLGF3YWl0IGt0LnBsdWdpbnMuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLHQudGV4dENvbnRlbnQ9IkFjdGlvbiBjb21wbGV0ZWQhIn0pfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI2LiBFdmVudCBIYW5kbGluZyJ9IC5zdWJ0aXRsZT0keyJJbnRlcmFjdGl2ZSBleGFtcGxlcyB3aXRoIGNsaWNrIGV2ZW50IGhhbmRsaW5nIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5DbGljayBNZTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiAuZXZlbnREZXRhaWxEYXRhPSR7ImN1c3RvbS1kYXRhLTEyMyJ9PgogICAgICAgICAgICBDbGljayB3aXRoIERhdGEKICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiPkFzeW5jIEFjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iY2xpY2stb3V0cHV0IiBjbGFzcz0iZGVtby1vdXRwdXQiPgogICAgICAgICAgPGVtPkNsaWNrIGEgYnV0dG9uIHRvIHNlZSB0aGUgcmVzdWx0Li4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgogICAgCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKSxyPWUucXVlcnlTZWxlY3RvcigiI2Zvcm0tb3V0cHV0Iik7dCYmciYmdC5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsbj0+e3IuaW5uZXJIVE1MPSI8c3Ryb25nPkZvcm0gc3VibWl0dGVkIHdpdGggZGF0YTo8L3N0cm9uZz48YnI+IitKU09OLnN0cmluZ2lmeShuLmRldGFpbC5kYXRhLG51bGwsMil9KTtsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9InNlY29uZGFyeSJdJyksYT1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtYnV0dG9uW3R5cGU9Imdob3N0Il0nKTtpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57Y29uc29sZS5sb2coIlNhdmUgRHJhZnQgY2xpY2tlZCIpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2NvbnNvbGUubG9nKCJDYW5jZWwgY2xpY2tlZCIpfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjcuIEZvcm0gSW50ZWdyYXRpb24ifSAuc3VidGl0bGU9JHsiQnV0dG9ucyB3b3JraW5nIHdpdGhpbiBmb3JtcyB3aXRoIGF1dG9tYXRpYyBzcGFjaW5nIn0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQgbGFiZWw9Ik5hbWUiIGtleT0ibmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGxhYmVsPSJFbWFpbCIga2V5PSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBsYWJlbD0iTWVzc2FnZSIga2V5PSJtZXNzYWdlIiBpc011bHRpbGluZT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9InNlY29uZGFyeSI+U2F2ZSBEcmFmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZ2hvc3QiPkNhbmNlbDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TdWJtaXQgRm9ybTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJmb3JtLW91dHB1dCIgY2xhc3M9ImRlbW8tb3V0cHV0IiBzdHlsZT0id2hpdGUtc3BhY2U6IHByZS13cmFwOyI+CiAgICAgICAgICA8ZW0+U3VibWl0IHRoZSBmb3JtIHRvIHNlZSB0aGUgZGF0YS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2UucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKHI9PntsZXQgaT1yLmdldEF0dHJpYnV0ZSgidHlwZSIpO2kmJmNvbnNvbGUubG9nKGBMZWdhY3kgdHlwZSAiJHtpfSIgaXMgc3VwcG9ydGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5YCl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQmFja3dhcmQgQ29tcGF0aWJpbGl0eSJ9IC5zdWJ0aXRsZT0keyJPbGQgYnV0dG9uIHR5cGVzIGFyZSBhdXRvbWF0aWNhbGx5IG1hcHBlZCB0byBuZXcgdmFyaWFudHMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JvdXAiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Im5vcm1hbCI+Tm9ybWFsIOKGkiBEZWZhdWx0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+SGlnaGxpZ2h0ZWQg4oaSIERlc3RydWN0aXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkaXNjcmVldCI+RGlzY3JlZXQg4oaSIE91dGxpbmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImJpZyI+QmlnIOKGkiBMYXJnZSBTaXplPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8cCBzdHlsZT0ibWFyZ2luLXRvcDogMTZweDsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsiPgogICAgICAgICAgVGhlc2UgbGVnYWN5IHR5cGUgdmFsdWVzIGFyZSBtYWludGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGJ1dCB3ZSByZWNvbW1lbmQgdXNpbmcgdGhlIG5ldyB2YXJpYW50IHN5c3RlbS4KICAgICAgICA8L3A+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvckFsbCgiLnZlcnRpY2FsLWdyb3VwIilbMF0scj1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi52ZXJ0aWNhbC1ncm91cCIpWzFdO3QmJnQucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKChhLG4pPT57YS5hZGRFdmVudExpc3RlbmVyKCJjbGlja2VkIiwoKT0+e2xldCBvPVsiU2F2ZSBDaGFuZ2VzIiwiRGlzY2FyZCIsIkhlbHAiXVtuXTtjb25zb2xlLmxvZyhgQWN0aW9uIGdyb3VwOiAke299IGNsaWNrZWRgKX0pfSksciYmci5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWJ1dHRvbiIpLmZvckVhY2goKGEsbik9PnthLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrZWQiLCgpPT57bGV0IG89WyJEZWxldGUgQWNjb3VudCIsIkFyY2hpdmUgRGF0YSIsIk5vdCBBdmFpbGFibGUiXVtuXTtuIT09MiYmY29uc29sZS5sb2coYERhbmdlciB6b25lOiAke299IGNsaWNrZWRgKX0pfSl9fT4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEFkdmFuY2VkIEV4YW1wbGVzIn0gLnN1YnRpdGxlPSR7IkNvbXBsZXggYnV0dG9uIGNvbmZpZ3VyYXRpb25zIGFuZCByZWFsLXdvcmxkIHVzZSBjYXNlcyJ9PgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZ3JvdXAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5BY3Rpb24gR3JvdXA8L2g0PgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlNhdmUiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIFNhdmUgQ2hhbmdlcwogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0ic2Vjb25kYXJ5IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6VW5kbzIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERpc2NhcmQKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9Imdob3N0IiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6SGVscENpcmNsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgSGVscAogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwtZ3JvdXAiPgogICAgICAgICAgICA8aDQgc3R5bGU9Im1hcmdpbjogMCAwIDhweCAwOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7Ij5EYW5nZXIgWm9uZTwvaDQ+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJkZXN0cnVjdGl2ZSIgc2l6ZT0ic20iPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0iZmE6dHJhc2giPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIERlbGV0ZSBBY2NvdW50CiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJvdXRsaW5lIiBzaXplPSJzbSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QXJjaGl2ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgQXJjaGl2ZSBEYXRhCiAgICAgICAgICAgIDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJnaG9zdCIgc2l6ZT0ic20iIGRpc2FibGVkPgogICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkJhbiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgTm90IEF2YWlsYWJsZQogICAgICAgICAgICA8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMjRweDsiPgogICAgICAgICAgPGg0IHN0eWxlPSJtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyI+Q29kZSBFeGFtcGxlOjwvaDQ+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlLXNuaXBwZXQiPgogICAgICAgICAgICAmbHQ7ZGVlcy1idXR0b24gdHlwZT0iZGVmYXVsdCIgc2l6ZT0ic20iIGljb249Imx1Y2lkZTpTYXZlIiBAY2xpY2tlZD0iXCR7aGFuZGxlQ2xpY2t9IiZndDs8YnI+CiAgICAgICAgICAgICZuYnNwOyZuYnNwO1NhdmUgQ2hhbmdlczxicj4KICAgICAgICAgICAgJmx0Oy9kZWVzLWJ1dHRvbiZndDsKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgQTIsVzEsX2xyLEk0PXAoKCk9Pnt4ZSgpO0t0KCk7VGxyKCk7SmUoKTtBMj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFcxPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxfbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWJ1dHRvbiIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdLHEsQj1bXSxHPVtdO3ZhciBlZT1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFA9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7cmVmbGVjdDohMCxoYXNDaGFuZ2VkKCl7cmV0dXJuITB9fSldLGw9W2ooKV0sZD1baih7dHlwZTpCb29sZWFuLHJlZmxlY3Q6ITB9KV0seD1baih7dHlwZTpCb29sZWFufSldLHk9W2ooe3R5cGU6U3RyaW5nfSldLE89W2ooe3R5cGU6U3RyaW5nfSldLEY9W2ooe3R5cGU6U3RyaW5nfSldLFI9W2ooe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLCQ9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0scT1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxBMih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmdlPT4idGV4dCJpbiBnZSxnZXQ6Z2U9PmdlLnRleHQsc2V0OihnZSx3ZSk9PntnZS50ZXh0PXdlfX0sbWV0YWRhdGE6UH0sbyxzKSxBMih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV2ZW50RGV0YWlsRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Z2U9PiJldmVudERldGFpbERhdGEiaW4gZ2UsZ2V0OmdlPT5nZS5ldmVudERldGFpbERhdGEsc2V0OihnZSx3ZSk9PntnZS5ldmVudERldGFpbERhdGE9d2V9fSxtZXRhZGF0YTpQfSxjLHUpLEEyKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZGlzYWJsZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmdlPT4iZGlzYWJsZWQiaW4gZ2UsZ2V0OmdlPT5nZS5kaXNhYmxlZCxzZXQ6KGdlLHdlKT0+e2dlLmRpc2FibGVkPXdlfX0sbWV0YWRhdGE6UH0saCxmKSxBMih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSGlkZGVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnZT0+ImlzSGlkZGVuImluIGdlLGdldDpnZT0+Z2UuaXNIaWRkZW4sc2V0OihnZSx3ZSk9PntnZS5pc0hpZGRlbj13ZX19LG1ldGFkYXRhOlB9LHYsYiksQTIodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnZT0+InR5cGUiaW4gZ2UsZ2V0OmdlPT5nZS50eXBlLHNldDooZ2Usd2UpPT57Z2UudHlwZT13ZX19LG1ldGFkYXRhOlB9LHcsayksQTIodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpnZT0+InNpemUiaW4gZ2UsZ2V0OmdlPT5nZS5zaXplLHNldDooZ2Usd2UpPT57Z2Uuc2l6ZT13ZX19LG1ldGFkYXRhOlB9LHosTSksQTIodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmdlPT4ic3RhdHVzImluIGdlLGdldDpnZT0+Z2Uuc3RhdHVzLHNldDooZ2Usd2UpPT57Z2Uuc3RhdHVzPXdlfX0sbWV0YWRhdGE6UH0sRCxOKSxBMih0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imluc2lkZUZvcm0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmdlPT4iaW5zaWRlRm9ybSJpbiBnZSxnZXQ6Z2U9PmdlLmluc2lkZUZvcm0sc2V0OihnZSx3ZSk9PntnZS5pbnNpZGVGb3JtPXdlfX0sbWV0YWRhdGE6UH0sXyxTKSxBMih0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmdlPT4iaWNvbiJpbiBnZSxnZXQ6Z2U9PmdlLmljb24sc2V0OihnZSx3ZSk9PntnZS5pY29uPXdlfX0sbWV0YWRhdGE6UH0sVCxFKSxBMih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imljb25Qb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Z2U9PiJpY29uUG9zaXRpb24iaW4gZ2UsZ2V0OmdlPT5nZS5pY29uUG9zaXRpb24sc2V0OihnZSx3ZSk9PntnZS5pY29uUG9zaXRpb249d2V9fSxtZXRhZGF0YTpQfSxCLEcpLEEyKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOlB9LG51bGwsciksZWU9aT10LnZhbHVlLFAmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6UH0pfXN0YXRpYyBkZW1vPUNscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkJ1dHRvbiJdOyNlPVcxKHRoaXMsbyx2b2lkIDApO2dldCB0ZXh0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRleHQoUCl7dGhpcy4jZT1QfSN0PShXMSh0aGlzLHMpLFcxKHRoaXMsYyx2b2lkIDApKTtnZXQgZXZlbnREZXRhaWxEYXRhKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGV2ZW50RGV0YWlsRGF0YShQKXt0aGlzLiN0PVB9I3I9KFcxKHRoaXMsdSksVzEodGhpcyxoLCExKSk7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGRpc2FibGVkKFApe3RoaXMuI3I9UH0jaT0oVzEodGhpcyxmKSxXMSh0aGlzLHYsITEpKTtnZXQgaXNIaWRkZW4oKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIaWRkZW4oUCl7dGhpcy4jaT1QfSNhPShXMSh0aGlzLGIpLFcxKHRoaXMsdywiZGVmYXVsdCIpKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNhfXNldCB0eXBlKFApe3RoaXMuI2E9UH0jbj0oVzEodGhpcyxrKSxXMSh0aGlzLHosImRlZmF1bHQiKSk7Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgc2l6ZShQKXt0aGlzLiNuPVB9I289KFcxKHRoaXMsTSksVzEodGhpcyxELCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNvfXNldCBzdGF0dXMoUCl7dGhpcy4jbz1QfSNzPShXMSh0aGlzLE4pLFcxKHRoaXMsXywhMSkpO2dldCBpbnNpZGVGb3JtKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGluc2lkZUZvcm0oUCl7dGhpcy4jcz1QfSNsPShXMSh0aGlzLFMpLFcxKHRoaXMsVCx2b2lkIDApKTtnZXQgaWNvbigpe3JldHVybiB0aGlzLiNsfXNldCBpY29uKFApe3RoaXMuI2w9UH0jYz0oVzEodGhpcyxFKSxXMSh0aGlzLEIsImxlZnQiKSk7Z2V0IGljb25Qb3NpdGlvbigpe3JldHVybiB0aGlzLiNjfXNldCBpY29uUG9zaXRpb24oUCl7dGhpcy4jYz1QfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxXMSh0aGlzLEcpfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSwhdGhpcy5pbnNpZGVGb3JtJiZ0aGlzLmNsb3Nlc3QoImRlZXMtZm9ybSIpJiYodGhpcy5pbnNpZGVGb3JtPSEwKX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgfQogICAgICA6aG9zdChbaGlkZGVuXSkgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEZvcm0gc3BhY2luZyBzdHlsZXMgKi8KICAgICAgOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KICAgICAgCiAgICAgIDpob3N0KFtpbnNpZGUtZm9ybV06bGFzdC1jaGlsZCkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtZm9ybVtob3Jpem9udGFsLWxheW91dF0gOmhvc3QoW2luc2lkZS1mb3JtXSkgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgfQogICAgICAKICAgICAgZGVlcy1mb3JtW2hvcml6b250YWwtbGF5b3V0XSA6aG9zdChbaW5zaWRlLWZvcm1dOmxhc3QtY2hpbGQpIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5idXR0b24gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIFNpemUgdmFyaWFudHMgKi8KICAgICAgLmJ1dHRvbi5zaXplLWRlZmF1bHQgewogICAgICAgIGhlaWdodDogMzZweDsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtc20gewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwIDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtbGcgewogICAgICAgIGhlaWdodDogNDRweDsKICAgICAgICBwYWRkaW5nOiAwIDI0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuYnV0dG9uLnNpemUtaWNvbiB7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHdpZHRoOiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgIH0KCiAgICAgIC8qIERlZmF1bHQgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAuMiUgMTEuOCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5kZWZhdWx0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxMC4yJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVmYXVsdDphY3RpdmU6bm90KC5kaXNhYmxlZCkgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjE0LjMgMzEuOCUgOTEuNCUpIiwiaHNsKDIxNSAyMC4yJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERlc3RydWN0aXZlIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5kZXN0cnVjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogaHNsKDAgODQuMiUgNjAuMiUpOwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5OCUpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmRlc3RydWN0aXZlOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Ni4yJSk7CiAgICAgIH0KCiAgICAgIC5idXR0b24uZGVzdHJ1Y3RpdmU6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMCA4NC4yJSA1Mi4yJSk7CiAgICAgIH0KCiAgICAgIC8qIE91dGxpbmUgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLm91dGxpbmUgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDIxLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDI2LjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5vdXRsaW5lOmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogU2Vjb25kYXJ5IHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnNlY29uZGFyeTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTQuMyAzMS44JSA5MS40JSkiLCJoc2woMjE1IDIwLjIlIDEzLjglKSIpfTsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5zZWNvbmRhcnk6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDg1JSkiLCJoc2woMjE1IDIwLjIlIDExLjglKSIpfTsKICAgICAgfQoKICAgICAgLyogR2hvc3QgdmFyaWFudCAqLwogICAgICAuYnV0dG9uLmdob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLmdob3N0OmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgIH0KCiAgICAgIC5idXR0b24uZ2hvc3Q6YWN0aXZlOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNC4zIDMxLjglIDkxLjQlKSIsImhzbCgyMTUgMjAuMiUgMTMuOCUpIil9OwogICAgICB9CgogICAgICAvKiBMaW5rIHZhcmlhbnQgKi8KICAgICAgLmJ1dHRvbi5saW5rIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICAuYnV0dG9uLmxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkgewogICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY3VycmVudENvbG9yOwogICAgICB9CgogICAgICAvKiBTdGF0dXMgc3RhdGVzICovCiAgICAgIC5idXR0b24ucGVuZGluZywKICAgICAgLmJ1dHRvbi5zdWNjZXNzLAogICAgICAuYnV0dG9uLmVycm9yIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDM2cHg7IC8qIFNwYWNlIGZvciBzcGlubmVyICovCiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1zbS5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtc20uc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLXNtLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5idXR0b24uc2l6ZS1sZy5wZW5kaW5nLAogICAgICAuYnV0dG9uLnNpemUtbGcuc3VjY2VzcywKICAgICAgLmJ1dHRvbi5zaXplLWxnLmVycm9yIHsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDQ0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24ucGVuZGluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUgLyAwLjIpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjEzLjEgOTMuOSUgNjcuOCUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAuYnV0dG9uLnN1Y2Nlc3MgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDYyLjglIDcwLjYlIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgNjIuOCUgNzAuNiUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAvKiBEaXNhYmxlZCBzdGF0ZSAqLwogICAgICAuYnV0dG9uLmRpc2FibGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogSGlkZGVuIHN0YXRlICovCiAgICAgIC5idXR0b24uaGlkZGVuIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBGb2N1cyBzdGF0ZSAqLwogICAgICAuYnV0dG9uOmZvY3VzLXZpc2libGUgewogICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTMuMSA5My45JSA2Ny44JSkiKX07CiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgICAgfQoKICAgICAgLyogTG9hZGluZyBzcGlubmVyICovCiAgICAgIGRlZXMtc3Bpbm5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwcHg7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtc20gZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiA4cHg7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1zcGlubmVyIHsKICAgICAgICBsZWZ0OiAxNHB4OwogICAgICAgIHdpZHRoOiAxOHB4OwogICAgICAgIGhlaWdodDogMThweDsKICAgICAgfQogICAgICAKICAgICAgLyogSWNvbiBzaXppbmcgd2l0aGluIGJ1dHRvbnMgKi8KICAgICAgLmJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQogICAgICAKICAgICAgLmJ1dHRvbi5zaXplLXNtIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLnNpemUtbGcgZGVlcy1pY29uIHsKICAgICAgICB3aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgIH0KCiAgICAgIC8qIFRleHQgYWxpZ25tZW50ICovCiAgICAgIC50ZXh0Ym94IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICBgXTtleHRyYWN0TGlnaHREb20oKXtsZXQgUD10aGlzLnF1ZXJ5U2VsZWN0b3IoImRlZXMtaWNvbiIpLGdlPUFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzKS5maWx0ZXIod2U9PndlLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpLm1hcCh3ZT0+d2UudGV4dENvbnRlbnQ/LnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKTtpZihnZSYmIXRoaXMudGV4dCYmKHRoaXMudGV4dD1nZSksUCl7bGV0IHdlPVAuaWNvbnx8UC5nZXRBdHRyaWJ1dGUoImljb24iKXx8KFAuaWNvbkZBP2BmYToke1AuaWNvbkZBfWA6bnVsbCk7aWYod2Upe2xldCBJPUFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzKSxuZT1JLmluZGV4T2YoUCksa2U9SS5maWx0ZXIoWT0+WS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFJiZZLnRleHRDb250ZW50Py50cmltKCkpO2lmKGtlLmxlbmd0aD4wKXtsZXQgWT1JLmluZGV4T2Yoa2VbMF0pO3RoaXMuaWNvblBvc2l0aW9uPW5lPFk/ImxlZnQiOiJyaWdodCJ9dGhpcy5pY29uPXdlfVAucmVtb3ZlKCl9dGhpcy5pbm5lckhUTUw9IiJ9cmVuZGVyKCl7bGV0IGdlPXtub3JtYWw6ImRlZmF1bHQiLGhpZ2hsaWdodGVkOiJkZXN0cnVjdGl2ZSIsZGlzY3JlZXQ6Im91dGxpbmUiLGJpZzoiZGVmYXVsdCJ9W3RoaXMudHlwZV18fHRoaXMudHlwZSx3ZT10aGlzLnR5cGU9PT0iYmlnIj8ibGciOnRoaXMuc2l6ZSxJPXRoaXMuaWNvblBvc2l0aW9uPT09ImxlZnQiJiZ0aGlzLmljb24/Q2A8ZGVlcy1pY29uIC5pY29uPSR7dGhpcy5pY29ufT48L2RlZXMtaWNvbj5gOiIiLG5lPXRoaXMuaWNvblBvc2l0aW9uPT09InJpZ2h0IiYmdGhpcy5pY29uP0NgPGRlZXMtaWNvbiAuaWNvbj0ke3RoaXMuaWNvbn0+PC9kZWVzLWljb24+YDoiIixrZT13ZT09PSJpY29uIiYmdGhpcy5pY29uO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJ1dHRvbiAke3RoaXMuaXNIaWRkZW4/ImhpZGRlbiI6IiJ9ICR7Z2V9IHNpemUtJHt3ZX0gJHt0aGlzLnN0YXR1c30gJHt0aGlzLmRpc2FibGVkPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHt0aGlzLmRpc3BhdGNoQ2xpY2t9IgogICAgICA+CiAgICAgICAgJHt0aGlzLnN0YXR1cz09PSJub3JtYWwiP0NgYDpDYAogICAgICAgICAgPGRlZXMtc3Bpbm5lcgogICAgICAgICAgICAuYm53PSR7ITB9CiAgICAgICAgICAgIHN0YXR1cz0iJHt0aGlzLnN0YXR1c30iCiAgICAgICAgICAgIHNpemU9IiR7d2U9PT0ic20iPzE0OndlPT09ImxnIj8xODoxNn0iCiAgICAgICAgICA+PC9kZWVzLXNwaW5uZXI+CiAgICAgICAgYH0KICAgICAgICAke0l9CiAgICAgICAgJHtrZT8iIjpDYDxkaXYgY2xhc3M9InRleHRib3giPiR7dGhpcy50ZXh0fHwiQnV0dG9uIn08L2Rpdj5gfQogICAgICAgICR7bmV9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkaXNwYXRjaENsaWNrKCl7dGhpcy5kaXNhYmxlZHx8dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2tlZCIse2RldGFpbDp7ZGF0YTp0aGlzLmV2ZW50RGV0YWlsRGF0YX0sYnViYmxlczohMH0pKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmV4dHJhY3RMaWdodERvbSgpfXN0YXRpY3tXMShpLHIpfX07cmV0dXJuIGVlPWl9KSgpfSk7dmFyIE80LGVuLExscixaTj1wKCgpPT57bXNyKCk7d2koKTtRYSgpO3hlKCk7b3IoKTtNaSgpO0k0KCk7SmUoKTtPND1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGVuPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxMbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXN0YXRzZ3JpZCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdO3ZhciBSPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ooe3R5cGU6TnVtYmVyfSldLHg9W2ooe3R5cGU6QXJyYXl9KV0seT1bZmUoKV0sTz1bZmUoKV0sRj1bZmUoKV0sTzQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aWxlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InRpbGVzImluIFMsZ2V0OlM9PlMudGlsZXMsc2V0OihTLCQpPT57Uy50aWxlcz0kfX0sbWV0YWRhdGE6X30sbyxzKSxPNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblRpbGVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+Im1pblRpbGVXaWR0aCJpbiBTLGdldDpTPT5TLm1pblRpbGVXaWR0aCxzZXQ6KFMsJCk9PntTLm1pblRpbGVXaWR0aD0kfX0sbWV0YWRhdGE6X30sYyx1KSxPNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdhcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImdhcCJpbiBTLGdldDpTPT5TLmdhcCxzZXQ6KFMsJCk9PntTLmdhcD0kfX0sbWV0YWRhdGE6X30saCxmKSxPNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImdyaWRBY3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iZ3JpZEFjdGlvbnMiaW4gUyxnZXQ6Uz0+Uy5ncmlkQWN0aW9ucyxzZXQ6KFMsJCk9PntTLmdyaWRBY3Rpb25zPSR9fSxtZXRhZGF0YTpffSx2LGIpLE80KHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iY29udGV4dE1lbnVWaXNpYmxlImluIFMsZ2V0OlM9PlMuY29udGV4dE1lbnVWaXNpYmxlLHNldDooUywkKT0+e1MuY29udGV4dE1lbnVWaXNpYmxlPSR9fSxtZXRhZGF0YTpffSx3LGspLE80KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udGV4dE1lbnVQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImNvbnRleHRNZW51UG9zaXRpb24iaW4gUyxnZXQ6Uz0+Uy5jb250ZXh0TWVudVBvc2l0aW9uLHNldDooUywkKT0+e1MuY29udGV4dE1lbnVQb3NpdGlvbj0kfX0sbWV0YWRhdGE6X30seixNKSxPNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbnRleHRNZW51QWN0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImNvbnRleHRNZW51QWN0aW9ucyJpbiBTLGdldDpTPT5TLmNvbnRleHRNZW51QWN0aW9ucyxzZXQ6KFMsJCk9PntTLmNvbnRleHRNZW51QWN0aW9ucz0kfX0sbWV0YWRhdGE6X30sRCxOKSxPNChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLFI9aT10LnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPWZzcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPWVuKHRoaXMsbyxbXSk7Z2V0IHRpbGVzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRpbGVzKF8pe3RoaXMuI2U9X30jdD0oZW4odGhpcyxzKSxlbih0aGlzLGMsMjUwKSk7Z2V0IG1pblRpbGVXaWR0aCgpe3JldHVybiB0aGlzLiN0fXNldCBtaW5UaWxlV2lkdGgoXyl7dGhpcy4jdD1ffSNyPShlbih0aGlzLHUpLGVuKHRoaXMsaCwxNikpO2dldCBnYXAoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZ2FwKF8pe3RoaXMuI3I9X30jaT0oZW4odGhpcyxmKSxlbih0aGlzLHYsW10pKTtnZXQgZ3JpZEFjdGlvbnMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgZ3JpZEFjdGlvbnMoXyl7dGhpcy4jaT1ffSNhPShlbih0aGlzLGIpLGVuKHRoaXMsdywhMSkpO2dldCBjb250ZXh0TWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY29udGV4dE1lbnVWaXNpYmxlKF8pe3RoaXMuI2E9X30jbj0oZW4odGhpcyxrKSxlbih0aGlzLHose3g6MCx5OjB9KSk7Z2V0IGNvbnRleHRNZW51UG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgY29udGV4dE1lbnVQb3NpdGlvbihfKXt0aGlzLiNuPV99I289KGVuKHRoaXMsTSksZW4odGhpcyxELFtdKSk7Z2V0IGNvbnRleHRNZW51QWN0aW9ucygpe3JldHVybiB0aGlzLiNvfXNldCBjb250ZXh0TWVudUFjdGlvbnMoXyl7dGhpcy4jbz1ffXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgfQoKICAgICAgLyogQ1NTIFZhcmlhYmxlcyBmb3IgY29uc2lzdGVudCBzcGFjaW5nIGFuZCBzaXppbmcgKi8KICAgICAgOmhvc3QgewogICAgICAgIC0tZ3JpZC1nYXA6IDEycHg7CiAgICAgICAgLS10aWxlLXBhZGRpbmc6IDE2cHg7CiAgICAgICAgLS1oZWFkZXItc3BhY2luZzogMTJweDsKICAgICAgICAtLWNvbnRlbnQtbWluLWhlaWdodDogNDBweDsKICAgICAgICAtLXZhbHVlLWZvbnQtc2l6ZTogMjZweDsKICAgICAgICAtLXVuaXQtZm9udC1zaXplOiAxNHB4OwogICAgICAgIC0tbGFiZWwtZm9udC1zaXplOiAxMnB4OwogICAgICAgIC0tdGl0bGUtZm9udC1zaXplOiAxM3B4OwogICAgICAgIC0tZGVzY3JpcHRpb24tc3BhY2luZzogOHB4OwogICAgICAgIC0tYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIC0tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7CiAgICAgIH0KCiAgICAgIC8qIEdyaWQgTGF5b3V0ICovCiAgICAgIC5ncmlkLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWdyaWQtZ2FwKSAqIDEuNSk7CiAgICAgICAgbWluLWhlaWdodDogNDBweDsKICAgICAgfQoKICAgICAgLmdyaWQtdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5ncmlkLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgIH0KCiAgICAgIC5ncmlkLWFjdGlvbnMgZGVlcy1idXR0b24gewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbGFiZWwtZm9udC1zaXplKTsKICAgICAgfQoKICAgICAgLnN0YXRzLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgke2tyKDI1MCl9cHgsIDFmcikpOwogICAgICAgIGdhcDogJHtrcigxNil9cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC8qIFRpbGUgQmFzZSBTdHlsZXMgKi8KICAgICAgLnN0YXRzLXRpbGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMyMDIwMjAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7CiAgICAgICAgcGFkZGluZzogdmFyKC0tdGlsZS1wYWRkaW5nKTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgZWFzZTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGQwZDBkIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNkMGQwZDAiLCIjMmEyYTJhIil9OwogICAgICB9CgogICAgICAuc3RhdHMtdGlsZS5jbGlja2FibGUgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnN0YXRzLXRpbGUuY2xpY2thYmxlOmhvdmVyIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7CiAgICAgICAgYm94LXNoYWRvdzogMCAycHggNnB4ICR7bS5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDMpIiwicmdiYSgwLDAsMCwwLjE1KSIpfTsKICAgICAgfQoKICAgICAgLyogVGlsZSBIZWFkZXIgKi8KICAgICAgLnRpbGUtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1oZWFkZXItc3BhY2luZyk7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50aWxlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXRpdGxlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjsKICAgICAgfQoKICAgICAgLnRpbGUtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLyogVGlsZSBDb250ZW50ICovCiAgICAgIC50aWxlLWNvbnRlbnQgewogICAgICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNvbnRlbnQtbWluLWhlaWdodCk7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KCiAgICAgIC50aWxlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAudGlsZS11bml0IHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXVuaXQtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAudGlsZS1kZXNjcmlwdGlvbiB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWRlc2NyaXB0aW9uLXNwYWNpbmcpOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAvKiBHYXVnZSBTdHlsZXMgKi8KICAgICAgLmdhdWdlLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmdhdWdlLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEyMHB4OwogICAgICAgIGhlaWdodDogNzBweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luLXRvcDogLThweDsKICAgICAgfQoKICAgICAgLmdhdWdlLXN2ZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuZ2F1Z2UtYmFja2dyb3VuZCB7CiAgICAgICAgZmlsbDogbm9uZTsKICAgICAgICBzdHJva2U6ICR7bS5iZFRoZW1lKCIjZThlOGU4IiwiIzFhMWExYSIpfTsKICAgICAgICBzdHJva2Utd2lkdGg6IDY7CiAgICAgIH0KCiAgICAgIC5nYXVnZS1maWxsIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZS13aWR0aDogNjsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAuZ2F1Z2UtdGV4dCB7CiAgICAgICAgZmlsbDogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LWFuY2hvcjogbWlkZGxlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQogICAgICAKICAgICAgLmdhdWdlLXVuaXQgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdW5pdC1mb250LXNpemUpOwogICAgICAgIGZpbGw6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgIH0KCiAgICAgIC8qIFBlcmNlbnRhZ2UgU3R5bGVzICovCiAgICAgIC5wZXJjZW50YWdlLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgfQoKICAgICAgLnBlcmNlbnRhZ2UtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZThlOGU4IiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAucGVyY2VudGFnZS1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzMzMzMzMiLCIjZTBlMGUwIil9OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC8qIE11bHRpIFBlcmNlbnRhZ2UgU3R5bGVzICovCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1pdGVtcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5tdWx0aS1wZXJjZW50YWdlLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICB9CgogICAgICAubXVsdGktcGVyY2VudGFnZS1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZThlOGU4IiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLm11bHRpLXBlcmNlbnRhZ2UtZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMzMzMzMzIiwiI2UwZTBlMCIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICB9CgogICAgICAvKiBDUFUgQ29yZXMgU3R5bGVzICovCiAgICAgIC5jcHUtY29yZXMtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogODBweDsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtdW5pdCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS11bml0LWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmNwdS1jb3Jlcy1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1sYWJlbC1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZXMtYmFycyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7CiAgICAgICAgZ2FwOiAzcHg7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICB9CgogICAgICAuY3B1LWNvcmVzLWJhcnMuY2VudGVyZWQgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDZweDsKICAgICAgICBtYXgtd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLXdyYXBwZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlOGU4ZTgiLCIjMWExYTFhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICB9CgogICAgICAuY3B1LWNvcmUtYmFyLWZpbGwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzY2NjY2NiIsIiM4ODg4ODgiKX07CiAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1iYXItZmlsbC5sb3cgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSIpfTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLm1lZGl1bSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIsImhzbCg0NS40IDkzLjQlIDQ3LjUlKSIpfTsKICAgICAgfQoKICAgICAgLmNwdS1jb3JlLWJhci1maWxsLmhpZ2ggewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA4NC4yJSA2MC4yJSkiKX07CiAgICAgIH0KCiAgICAgIC5jcHUtY29yZS1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLyogUGFydGl0aW9uIFN0eWxlcyAqLwogICAgICAucGFydGl0aW9uLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tcGVyY2VudGFnZSB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS12YWx1ZS1mb250LXNpemUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDguOCUpIiwiaHNsKDIxMCA0MCUgOTglKSIpfTsKICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMjVlbTsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZThlOGU4IiwiIzFhMWExYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1iYXItZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMzMzMzMzIiwiI2UwZTBlMCIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICB9CgogICAgICAucGFydGl0aW9uLWJhci1maWxsLndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woNDUuNCA5My40JSA0Ny41JSkiLCJoc2woNDUuNCA5My40JSA0Ny41JSkiKX07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tYmFyLWZpbGwuY3JpdGljYWwgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA4NC4yJSA2MC4yJSkiKX07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1zdGF0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAycHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tc3RhdC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtOwogICAgICB9CgogICAgICAucGFydGl0aW9uLXN0YXQtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbWV0YSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIG1hcmdpbi10b3A6IDRweDsKICAgICAgfQoKICAgICAgLnBhcnRpdGlvbi1maWxlc3lzdGVtIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgcGFkZGluZzogMnB4IDZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5wYXJ0aXRpb24tbW91bnRwb2ludCB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICB9CgogICAgICAvKiBEaXNrIFN0eWxlcyAqLwogICAgICAuZGlzay13cmFwcGVyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmRpc2stY2FwYWNpdHkgewogICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tdmFsdWUtZm9udC1zaXplKTsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDI1ZW07CiAgICAgIH0KCiAgICAgIC5kaXNrLW1vZGVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAuZGlzay10eXBlLWJhZGdlIHsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDQ2LjklKSIsImhzbCgyMTUgMjAuMiUgNjUuMSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDQwJSA5Ni4xJSkiLCJoc2woMjE1IDIwLjIlIDE2LjglKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLmRpc2stbWV0cmljcyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtbGFiZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH0KCiAgICAgIC5kaXNrLWlvcHMtdmFsdWUgewogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA4LjglKSIsImhzbCgyMTAgNDAlIDk4JSkiKX07CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1sYWJlbCB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNTYuOSUpIiwiaHNsKDIxNSAyMC4yJSA1NS4xJSkiKX07CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtYmFyIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U4ZThlOCIsIiMxYTFhMWEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5kaXNrLWhlYWx0aC1maWxsIHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgfQoKICAgICAgLmRpc2staGVhbHRoLWZpbGwuZ29vZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLCJoc2woMTQyLjEgNzAuNiUgNDUuMyUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbC53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIiwiaHNsKDQ1LjQgOTMuNCUgNDcuNSUpIil9OwogICAgICB9CgogICAgICAuZGlzay1oZWFsdGgtZmlsbC5jcml0aWNhbCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDg0LjIlIDYwLjIlKSIsImhzbCgwIDg0LjIlIDYwLjIlKSIpfTsKICAgICAgfQoKICAgICAgLyogVHJlbmQgU3R5bGVzICovCiAgICAgIC50cmVuZC1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAudHJlbmQtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnRyZW5kLXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAudHJlbmQtdW5pdCB7CiAgICAgICAgZm9udC1zaXplOiB2YXIoLS11bml0LWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLnRyZW5kLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLWxhYmVsLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLnRyZW5kLWdyYXBoIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDI4cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgIH0KCiAgICAgIC50cmVuZC1zdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnRyZW5kLWxpbmUgewogICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgc3Ryb2tlOiAke20uYmRUaGVtZSgiIzk5OTk5OSIsIiM2NjY2NjYiKX07CiAgICAgICAgc3Ryb2tlLXdpZHRoOiAxLjU7CiAgICAgICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICAgICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgICAgIH0KCiAgICAgIC50cmVuZC1hcmVhIHsKICAgICAgICBmaWxsOiAke20uYmRUaGVtZSgicmdiYSgxNTAsIDE1MCwgMTUwLCAwLjA4KSIsInJnYmEoMTAwLCAxMDAsIDEwMCwgMC4wOCkiKX07CiAgICAgIH0KCiAgICAgIC8qIFRleHQgVmFsdWUgU3R5bGVzICovCiAgICAgIC50ZXh0LXZhbHVlIHsKICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbHVlLWZvbnQtc2l6ZSk7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgOC44JSkiLCJoc2woMjEwIDQwJSA5OCUpIil9OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICB9CgogICAgICAvKiBDb250ZXh0IE1lbnUgKi8KICAgICAgZGVlcy1jb250ZXh0bWVudSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgIH0KICAgIGBdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxlbih0aGlzLE4pfXJlbmRlcigpe3JldHVybiBDYAogICAgICAke3RoaXMuZ3JpZEFjdGlvbnMubGVuZ3RoPjA/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLXRpdGxlIj48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtYWN0aW9ucyI+CiAgICAgICAgICAgICR7dGhpcy5ncmlkQWN0aW9ucy5tYXAoXz0+Q2AKICAgICAgICAgICAgICA8ZGVlcy1idXR0b24gCiAgICAgICAgICAgICAgICBAY2xpY2tlZD0keygpPT50aGlzLmhhbmRsZUdyaWRBY3Rpb24oXyl9CiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgc2l6ZT0ic20iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtfLmljb25OYW1lP0NgPGRlZXMtaWNvbiAuaWNvbj0ke18uaWNvbk5hbWV9IHNpemU9InNtYWxsIj48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAgICAgJHtfLm5hbWV9CiAgICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InN0YXRzLWdyaWQiIHN0eWxlPSJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KCR7dGhpcy5taW5UaWxlV2lkdGh9cHgsIDFmcikpOyBnYXA6ICR7dGhpcy5nYXB9cHg7Ij4KICAgICAgICAke3RoaXMudGlsZXMubWFwKF89PnRoaXMucmVuZGVyVGlsZShfKSl9CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLmNvbnRleHRNZW51VmlzaWJsZT9DYAogICAgICAgIDxkZWVzLWNvbnRleHRtZW51CiAgICAgICAgICAueD0ke3RoaXMuY29udGV4dE1lbnVQb3NpdGlvbi54fQogICAgICAgICAgLnk9JHt0aGlzLmNvbnRleHRNZW51UG9zaXRpb24ueX0KICAgICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmNvbnRleHRNZW51QWN0aW9uc30KICAgICAgICAgIEBjbGlja2VkPSR7KCk9PnRoaXMuY29udGV4dE1lbnVWaXNpYmxlPSExfQogICAgICAgID48L2RlZXMtY29udGV4dG1lbnU+CiAgICAgIGA6IiJ9CiAgICBgfXJlbmRlclRpbGUoXyl7bGV0IFM9Xy5hY3Rpb25zJiZfLmFjdGlvbnMubGVuZ3RoPjAsJD1TJiZfLmFjdGlvbnMubGVuZ3RoPT09MSxUPV8uY29sdW1uU3BhbiYmXy5jb2x1bW5TcGFuPjE/Xy5jb2x1bW5TcGFuOnZvaWQgMDtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJzdGF0cy10aWxlICR7JD8iY2xpY2thYmxlIjoiIn0iCiAgICAgICAgc3R5bGU9IiR7VD9gZ3JpZC1jb2x1bW46IHNwYW4gJHtUfWA6IiJ9IgogICAgICAgIEBjbGljaz0keyQ/KCk9PnRoaXMuaGFuZGxlVGlsZUFjdGlvbihfLmFjdGlvbnNbMF0sXyk6dm9pZCAwfQogICAgICAgIEBjb250ZXh0bWVudT0ke1M/RT0+dGhpcy5zaG93Q29udGV4dE1lbnUoRSxfKTp2b2lkIDB9CiAgICAgID4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWhlYWRlciI+CiAgICAgICAgICA8aDMgY2xhc3M9InRpbGUtdGl0bGUiPiR7Xy50aXRsZX08L2gzPgogICAgICAgICAgJHtfLmljb24/Q2AKICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0idGlsZS1pY29uIiAuaWNvbj0ke18uaWNvbn0gc2l6ZT0ic21hbGwiPjwvZGVlcy1pY29uPgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWNvbnRlbnQiPgogICAgICAgICAgJHt0aGlzLnJlbmRlclRpbGVDb250ZW50KF8pfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgICR7Xy5kZXNjcmlwdGlvbiYmXy50eXBlIT09InRyZW5kIj9DYAogICAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1kZXNjcmlwdGlvbiI+JHtfLmRlc2NyaXB0aW9ufTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUaWxlQ29udGVudChfKXtzd2l0Y2goXy50eXBlKXtjYXNlIm51bWJlciI6cmV0dXJuIENgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIiBzdHlsZT0iJHtfLmNvbG9yP2Bjb2xvcjogJHtfLmNvbG9yfWA6IiJ9Ij4KICAgICAgICAgICAgPHNwYW4+JHtfLnZhbHVlfTwvc3Bhbj4KICAgICAgICAgICAgJHtfLnVuaXQ/Q2A8c3BhbiBjbGFzcz0idGlsZS11bml0Ij4ke18udW5pdH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA7Y2FzZSJnYXVnZSI6cmV0dXJuIHRoaXMucmVuZGVyR2F1Z2UoXyk7Y2FzZSJwZXJjZW50YWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJQZXJjZW50YWdlKF8pO2Nhc2UidHJlbmQiOnJldHVybiB0aGlzLnJlbmRlclRyZW5kKF8pO2Nhc2UibXVsdGlQZXJjZW50YWdlIjpyZXR1cm4gdGhpcy5yZW5kZXJNdWx0aVBlcmNlbnRhZ2UoXyk7Y2FzZSJjcHVDb3JlcyI6cmV0dXJuIHRoaXMucmVuZGVyQ3B1Q29yZXMoXyk7Y2FzZSJwYXJ0aXRpb24iOnJldHVybiB0aGlzLnJlbmRlclBhcnRpdGlvbihfKTtjYXNlImRpc2siOnJldHVybiB0aGlzLnJlbmRlckRpc2soXyk7Y2FzZSJ0ZXh0IjpyZXR1cm4gQ2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtdmFsdWUiIHN0eWxlPSIke18uY29sb3I/YGNvbG9yOiAke18uY29sb3J9YDoiIn0iPgogICAgICAgICAgICAke18udmFsdWV9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgO2RlZmF1bHQ6cmV0dXJuIENgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtfLnZhbHVlfTwvZGl2PmB9fXJlbmRlckdhdWdlKF8pe2xldCBTPXR5cGVvZiBfLnZhbHVlPT0ibnVtYmVyIj9fLnZhbHVlOnBhcnNlRmxvYXQoXy52YWx1ZSksJD1fLmdhdWdlT3B0aW9uc3x8e21pbjowLG1heDoxMDB9LFQ9KFMtJC5taW4pLygkLm1heC0kLm1pbikqMTAwLEU9MTIwLHE9NzAsRz02LzIrMixlZT00MCxQPUUvMixnZT1xLUcsd2U9UC1lZSxJPWdlLG5lPVArZWUsWT1gTSAke3dlfSAke0l9IEEgJHtlZX0gJHtlZX0gMCAwIDEgJHtuZX0gJHtnZX1gLEE9TWF0aC5QSSplZSxMPUEtQSpULzEwMCxVPV8uY29sb3J8fG0uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSAyOC44JSkiLCJoc2woMjEwIDQwJSA3OCUpIik7aWYoJC50aHJlc2hvbGRzKXtsZXQgVj1bLi4uJC50aHJlc2hvbGRzXS5zb3J0KChYLGRlKT0+ZGUudmFsdWUtWC52YWx1ZSk7Zm9yKGxldCBYIG9mIFYpaWYoUz49WC52YWx1ZSl7VT1YLmNvbG9yO2JyZWFrfX1yZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2Utd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2F1Z2UtY29udGFpbmVyIj4KICAgICAgICAgIDxzdmcgY2xhc3M9ImdhdWdlLXN2ZyIgdmlld0JveD0iMCAwICR7RX0gJHtxfSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+CiAgICAgICAgICAgIDwhLS0gQmFja2dyb3VuZCBhcmMgLS0+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgY2xhc3M9ImdhdWdlLWJhY2tncm91bmQiCiAgICAgICAgICAgICAgZD0iJHtZfSIKICAgICAgICAgICAgLz4KICAgICAgICAgICAgPCEtLSBGaWxsZWQgYXJjIC0tPgogICAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgIGNsYXNzPSJnYXVnZS1maWxsIgogICAgICAgICAgICAgIGQ9IiR7WX0iCiAgICAgICAgICAgICAgc3Ryb2tlPSIke1V9IgogICAgICAgICAgICAgIHN0cm9rZS1kYXNoYXJyYXk9IiR7QX0iCiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ9IiR7TH0iCiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDwhLS0gVmFsdWUgdGV4dCAtLT4KICAgICAgICAgICAgPHRleHQgY2xhc3M9ImdhdWdlLXRleHQiIHg9IiR7UH0iIHk9IiR7Z2UtOH0iIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiPgogICAgICAgICAgICAgIDx0c3Bhbj4ke1N9PC90c3Bhbj4ke18udW5pdD9DYDx0c3BhbiBjbGFzcz0iZ2F1Z2UtdW5pdCIgZHg9IjIiIGR5PSIwIj4ke18udW5pdH08L3RzcGFuPmA6IiJ9CiAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGVyY2VudGFnZShfKXtsZXQgUz10eXBlb2YgXy52YWx1ZT09Im51bWJlciI/Xy52YWx1ZTpwYXJzZUZsb2F0KF8udmFsdWUpLCQ9TWF0aC5taW4oMTAwLE1hdGgubWF4KDAsUykpO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJwZXJjZW50YWdlLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBlcmNlbnRhZ2UtdmFsdWUiPiR7JH0lPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGVyY2VudGFnZS1iYXIiPgogICAgICAgICAgPGRpdiAKICAgICAgICAgICAgY2xhc3M9InBlcmNlbnRhZ2UtZmlsbCIgCiAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHskfSU7ICR7Xy5jb2xvcj9gYmFja2dyb3VuZDogJHtfLmNvbG9yfWA6IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyVHJlbmQoXyl7aWYoIV8udHJlbmREYXRhfHxfLnRyZW5kRGF0YS5sZW5ndGg8MilyZXR1cm4gQ2A8ZGl2IGNsYXNzPSJ0aWxlLXZhbHVlIj4ke18udmFsdWV9PC9kaXY+YDtsZXQgUz1fLnRyZW5kRGF0YSwkPU1hdGgubWF4KC4uLlMpLFQ9TWF0aC5taW4oLi4uUyksRT0kLVR8fDEscT0zMDAsQj0zMixHPTIsZWU9Uy5tYXAoKGdlLHdlKT0+e2xldCBJPXdlLyhTLmxlbmd0aC0xKSpxLG5lPUcrKEItMipHKS0oZ2UtVCkvRSooQi0yKkcpO3JldHVybmAke0l9LCR7bmV9YH0pLmpvaW4oIiAiKSxQPWAwLCR7Qn0gJHtlZX0gJHtxfSwke0J9YDtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0idHJlbmQtY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InRyZW5kLXZhbHVlIj4ke18udmFsdWV9PC9zcGFuPgogICAgICAgICAgJHtfLnVuaXQ/Q2A8c3BhbiBjbGFzcz0idHJlbmQtdW5pdCI+JHtfLnVuaXR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAke18uZGVzY3JpcHRpb24/Q2A8c3BhbiBjbGFzcz0idHJlbmQtbGFiZWwiPiR7Xy5kZXNjcmlwdGlvbn08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVuZC1ncmFwaCI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJ0cmVuZC1zdmciIHZpZXdCb3g9IjAgMCAke3F9ICR7Qn0iIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgogICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0idHJlbmQtYXJlYSIgcG9pbnRzPSIke1B9IiAvPgogICAgICAgICAgICA8cG9seWxpbmUgY2xhc3M9InRyZW5kLWxpbmUiIHBvaW50cz0iJHtlZX0iIC8+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlck11bHRpUGVyY2VudGFnZShfKXtpZighXy5wZXJjZW50YWdlc3x8Xy5wZXJjZW50YWdlcy5sZW5ndGg9PT0wKXJldHVybiBDYDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Xy52YWx1ZX08L2Rpdj5gO2xldCBTPV8ucGVyY2VudGFnZXMuc2xpY2UoMCwzKTtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS13cmFwcGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWl0ZW1zIj4KICAgICAgICAgICR7Uy5tYXAoJD0+e2xldCBUPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLCQudmFsdWUpKTtyZXR1cm4gQ2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWl0ZW0iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1oZWFkZXIiPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1sYWJlbCI+JHskLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpLXBlcmNlbnRhZ2UtdmFsdWUiPiR7VH0lPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdWx0aS1wZXJjZW50YWdlLWJhciI+CiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0ibXVsdGktcGVyY2VudGFnZS1maWxsIgogICAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtUfSU7ICR7JC5jb2xvcj9gYmFja2dyb3VuZDogJHskLmNvbG9yfWA6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0pfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ3B1Q29yZXMoXyl7aWYoIV8uY29yZXNEYXRhfHxfLmNvcmVzRGF0YS5sZW5ndGg9PT0wKXJldHVybiBDYDxkaXYgY2xhc3M9InRpbGUtdmFsdWUiPiR7Xy52YWx1ZX08L2Rpdj5gO2xldCBTPV8uY29yZXNEYXRhLCQ9TWF0aC5yb3VuZChTLnJlZHVjZSgoZWUsUCk9PmVlK1AudXNhZ2UsMCkvUy5sZW5ndGgpLFQ9ZWU9PmVlPDUwPyJsb3ciOmVlPDgwPyJtZWRpdW0iOiJoaWdoIixFPVMubGVuZ3RoKjI0KyhTLmxlbmd0aC0xKSozLHE9Xy5jb2x1bW5TcGFufHwxLEI9dGhpcy5taW5UaWxlV2lkdGgqcSsocS0xKSp0aGlzLmdhcC0zMixHPUU8QiouNjY2O3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZXMtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLWhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY3B1LWNvcmVzLXZhbHVlIj4keyR9PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy11bml0Ij4lPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3Jlcy1sYWJlbCI+JHtTLmxlbmd0aH0gY29yZXM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmVzLWJhcnMgJHtHPyJjZW50ZXJlZCI6IiJ9Ij4KICAgICAgICAgICR7Uy5tYXAoZWU9PntsZXQgUD1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCxlZS51c2FnZSkpLGdlPVQoUCk7cmV0dXJuIENgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3B1LWNvcmUtYmFyLWNvbnRhaW5lciIgdGl0bGU9IkNvcmUgJHtlZS5sYWJlbHx8ZWUuaWR9OiAke1B9JSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjcHUtY29yZS1iYXItd3JhcHBlciI+CiAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICBjbGFzcz0iY3B1LWNvcmUtYmFyLWZpbGwgJHtnZX0iCiAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHtQfSUiCiAgICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgJHtTLmxlbmd0aDw9MTY/Q2AKICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNwdS1jb3JlLWxhYmVsIj4ke2VlLmxhYmVsfHxlZS5pZH08L3NwYW4+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICBgfSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1mb3JtYXRCeXRlcyhfKXtpZihfPT09MClyZXR1cm4iMCBCIjtsZXQgUz0xMDI0LCQ9WyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIiLCJQQiJdLFQ9TWF0aC5mbG9vcihNYXRoLmxvZyhfKS9NYXRoLmxvZyhTKSk7cmV0dXJuIHBhcnNlRmxvYXQoKF8vTWF0aC5wb3coUyxUKSkudG9GaXhlZCgxKSkrIiAiKyRbVF19cmVuZGVyUGFydGl0aW9uKF8pe2lmKCFfLnBhcnRpdGlvbkRhdGEpcmV0dXJuIENgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtfLnZhbHVlfTwvZGl2PmA7bGV0e3VzZWQ6Uyx0b3RhbDokLGZpbGVzeXN0ZW06VCxtb3VudFBvaW50OkV9PV8ucGFydGl0aW9uRGF0YSxxPU1hdGgubWluKDEwMCxNYXRoLm1heCgwLFMvJCoxMDApKSxCPSQtUyxHPSgpPT5xPj05MD8iY3JpdGljYWwiOnE+PTc1PyJ3YXJuaW5nIjoiIjtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1oZWFkZXIiPgogICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1wZXJjZW50YWdlIj4ke01hdGgucm91bmQocSl9JTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tYmFyIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9InBhcnRpdGlvbi1iYXItZmlsbCAke0coKX0iCiAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtxfSUiCiAgICAgICAgICA+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFydGl0aW9uLXN0YXRzIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LWxhYmVsIj5Vc2VkPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtdmFsdWUiPiR7dGhpcy5mb3JtYXRCeXRlcyhTKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InBhcnRpdGlvbi1zdGF0Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhcnRpdGlvbi1zdGF0LWxhYmVsIj5GcmVlPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLXN0YXQtdmFsdWUiPiR7dGhpcy5mb3JtYXRCeXRlcyhCKX08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYXJ0aXRpb24tbWV0YSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icGFydGl0aW9uLWZpbGVzeXN0ZW0iPiR7VH08L3NwYW4+CiAgICAgICAgICAke0U/Q2A8c3BhbiBjbGFzcz0icGFydGl0aW9uLW1vdW50cG9pbnQiPiR7RX08L3NwYW4+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckRpc2soXyl7aWYoIV8uZGlza0RhdGEpcmV0dXJuIENgPGRpdiBjbGFzcz0idGlsZS12YWx1ZSI+JHtfLnZhbHVlfTwvZGl2PmA7bGV0e2NhcGFjaXR5OlMsbW9kZWw6JCx0eXBlOlQsaW9wczpFLGhlYWx0aDpxfT1fLmRpc2tEYXRhLEI9Rz0+Rz49NzA/Imdvb2QiOkc+PTMwPyJ3YXJuaW5nIjoiY3JpdGljYWwiO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJkaXNrLXdyYXBwZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRpc2stY2FwYWNpdHkiPiR7dGhpcy5mb3JtYXRCeXRlcyhTKX08L2Rpdj4KICAgICAgICAkeyR8fFQ/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2stbW9kZWwiPgogICAgICAgICAgICAkeyQ/Q2A8c3Bhbj4keyR9PC9zcGFuPmA6IiJ9CiAgICAgICAgICAgICR7VD9DYDxzcGFuIGNsYXNzPSJkaXNrLXR5cGUtYmFkZ2UiPiR7VH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgPGRpdiBjbGFzcz0iZGlzay1tZXRyaWNzIj4KICAgICAgICAgICR7RT9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staW9wcy1pdGVtIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtbGFiZWwiPlJlYWQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLXZhbHVlIj4ke0UucmVhZC50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWlvcHMtaXRlbSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1pb3BzLWxhYmVsIj5Xcml0ZTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaXNrLWlvcHMtdmFsdWUiPiR7RS53cml0ZS50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHtxIT09dm9pZCAwP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXNrLWhlYWx0aC1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRpc2staGVhbHRoLWxhYmVsIj5IZWFsdGg8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlzay1oZWFsdGgtdmFsdWUiPiR7cX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpc2staGVhbHRoLWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNrLWhlYWx0aC1maWxsICR7QihxKX0iCiAgICAgICAgICAgICAgICAgIHN0eWxlPSJ3aWR0aDogJHtxfSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGhhbmRsZUdyaWRBY3Rpb24oXyl7Xy5hY3Rpb24mJmF3YWl0IF8uYWN0aW9uKCl9YXN5bmMgaGFuZGxlVGlsZUFjdGlvbihfLFMpe18uYWN0aW9uJiZhd2FpdCBfLmFjdGlvbigpfXNob3dDb250ZXh0TWVudShfLFMpe2lmKCFTLmFjdGlvbnN8fFMuYWN0aW9ucy5sZW5ndGg9PT0wKXJldHVybjtfLnByZXZlbnREZWZhdWx0KCksdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uPXt4Ol8uY2xpZW50WCx5Ol8uY2xpZW50WX0sdGhpcy5jb250ZXh0TWVudUFjdGlvbnM9Uy5hY3Rpb25zLHRoaXMuY29udGV4dE1lbnVWaXNpYmxlPSEwO2xldCAkPSgpPT57dGhpcy5jb250ZXh0TWVudVZpc2libGU9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCQpfTtzZXRUaW1lb3V0KCgpPT57ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCQpfSwxMDApfXN0YXRpY3tlbihpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgcWQsaWwsVDJhLF8yYSxMMmEsQTJhLEFscixEbHI9cCgoKT0+e3hlKCk7cDEoKTtaTigpO3FkPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0saWw9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFQyYT0oKCk9PntsZXQgZT1beWUoImRlbW8tZGFzaGJvYXJkLXZpZXciKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0scWQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3RpdmF0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnU9PiJhY3RpdmF0ZWQiaW4gdSxnZXQ6dT0+dS5hY3RpdmF0ZWQsc2V0Oih1LGQpPT57dS5hY3RpdmF0ZWQ9ZH19LG1ldGFkYXRhOmN9LG8scykscWQobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KSxpbChpLHIpfSNlPWlsKHRoaXMsbywhMSk7Z2V0IGFjdGl2YXRlZCgpe3JldHVybiB0aGlzLiNlfXNldCBhY3RpdmF0ZWQoYyl7dGhpcy4jZT1jfWN0eD1pbCh0aGlzLHMpO3N0YXRzVGlsZXM9W3tpZDoidXNlcnMiLHRpdGxlOiJBY3RpdmUgVXNlcnMiLHZhbHVlOjEyMzQsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMiLGRlc2NyaXB0aW9uOiJPbmxpbmUgbm93Iixjb2xvcjoiIzIyYzU1ZSJ9LHtpZDoiYXBpLWNhbGxzIix0aXRsZToiQVBJIENhbGxzIix2YWx1ZTo0NTIwMCx0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOmFjdGl2aXR5IixkZXNjcmlwdGlvbjoiKzEyJSBmcm9tIGxhc3QgaG91ciIsY29sb3I6IiMzYjgyZjYiLHRyZW5kRGF0YTpbMzJlMywzNWUzLDM4ZTMsNDFlMywzOWUzLDQyZTMsNDUyMDBdfSx7aWQ6ImhlYWx0aCIsdGl0bGU6IlN5c3RlbSBIZWFsdGgiLHZhbHVlOjk5LjksdW5pdDoiJSIsdHlwZToiZ2F1Z2UiLGljb246Imx1Y2lkZTpoZWFydC1wdWxzZSIsZGVzY3JpcHRpb246IkFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsIixjb2xvcjoiIzEwYjk4MSIsZ2F1Z2VPcHRpb25zOnttaW46MCxtYXg6MTAwLHRocmVzaG9sZHM6W3t2YWx1ZTo4MCxjb2xvcjoiI2VmNDQ0NCJ9LHt2YWx1ZTo5NSxjb2xvcjoiI2Y1OWUwYiJ9LHt2YWx1ZToxMDAsY29sb3I6IiMxMGI5ODEifV19fSx7aWQ6InJlc3BvbnNlIix0aXRsZToiQXZnIFJlc3BvbnNlIix2YWx1ZToxMjcsdW5pdDoibXMiLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnRpbWVyIixkZXNjcmlwdGlvbjoiLTE1bXMgZnJvbSB5ZXN0ZXJkYXkiLGNvbG9yOiIjOGI1Y2Y2In0se2lkOiJyZXNvdXJjZXMiLHRpdGxlOiJSZXNvdXJjZSBVc2FnZSIsdmFsdWU6IiIsdHlwZToibXVsdGlQZXJjZW50YWdlIixpY29uOiJsdWNpZGU6c2VydmVyIixwZXJjZW50YWdlczpbe2xhYmVsOiJDUFUiLHZhbHVlOjY3LGNvbG9yOiIjM2I4MmY2In0se2xhYmVsOiJNZW1vcnkiLHZhbHVlOjg0LGNvbG9yOiIjOGI1Y2Y2In0se2xhYmVsOiJEaXNrIix2YWx1ZTo0NSxjb2xvcjoiIzEwYjk4MSJ9XX0se2lkOiJyZXF1ZXN0cyIsdGl0bGU6IlJlcXVlc3RzL3NlYyIsdmFsdWU6MTg1MCx0eXBlOiJ0cmVuZCIsaWNvbjoibHVjaWRlOnphcCIsZGVzY3JpcHRpb246IkN1cnJlbnQgdGhyb3VnaHB1dCIsY29sb3I6IiMwNmI2ZDQiLHRyZW5kRGF0YTpbMTIwMCwxNDAwLDEzNTAsMTYwMCwxNzUwLDE2ODAsMTg1MF19XTtvbkFjdGl2YXRlKGMpe3RoaXMuY3R4PWMsdGhpcy5hY3RpdmF0ZWQ9ITAsY29uc29sZS5sb2coIkRhc2hib2FyZCBhY3RpdmF0ZWQgd2l0aCBjb250ZXh0OiIsYyksYy5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJEYXNoYm9hcmQiLGdyb3Vwczpbe25hbWU6IlF1aWNrIEFjY2VzcyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6ImxheW91dERhc2hib2FyZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXciKX0se2tleToiUmVjZW50IixpY29uTmFtZToiY2xvY2siLGJhZGdlOjUsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVjZW50Iil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJSZWZyZXNoIERhdGEiLGljb25OYW1lOiJsdWNpZGU6cmVmcmVzaEN3IixhY3Rpb246KCk9PmFsZXJ0KCJSZWZyZXNoaW5nIGRhc2hib2FyZCBkYXRhLi4uIil9XX0se25hbWU6IkZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IlRpbWUgUmFuZ2UifSx7dHlwZToiZmlsdGVyIixrZXk6IkxpdmUgVXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyYWRpbyIsYWN0aXZlOiEwLG9uVG9nZ2xlOnU9PmNvbnNvbGUubG9nKCJMaXZlIHVwZGF0ZXM6Iix1KX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFyY2hpdmVkIixpY29uTmFtZToibHVjaWRlOmFyY2hpdmUiLGFjdGl2ZTohMSxvblRvZ2dsZTp1PT5jb25zb2xlLmxvZygiU2hvdyBhcmNoaXZlZDoiLHUpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJEYXRhIFNvdXJjZXMiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UiLG9wdGlvbnM6W3trZXk6ImFwaSIsbGFiZWw6IkFQSSBTZXJ2ZXIiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJ3ZWIiLGxhYmVsOiJXZWIgVHJhZmZpYyIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmdsb2JlIn0se2tleToibW9iaWxlIixsYWJlbDoiTW9iaWxlIEFwcCIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnNtYXJ0cGhvbmUifV0sb25DaGFuZ2U6dT0+Y29uc29sZS5sb2coIkRhdGEgc291cmNlczoiLHUpfV19LHtuYW1lOiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQzIixpdGVtczpbe2tleToiTWV0cmljcyIsaWNvbk5hbWU6ImFjdGl2aXR5IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJNZXRyaWNzIil9LHtrZXk6IlJlcG9ydHMiLGljb25OYW1lOiJmaWxlVGV4dCIsYmFkZ2U6Im5ldyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJSZXBvcnRzIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImxpbmsiLGtleToiQW5hbHl0aWNzIERvY3MiLGljb25OYW1lOiJsdWNpZGU6ZXh0ZXJuYWxMaW5rIixocmVmOiJodHRwczovL2RvY3MuZXhhbXBsZS5jb20vYW5hbHl0aWNzIn1dfV19KSxjLmFwcHVpLnNldENvbnRlbnRUYWJzKFt7a2V5OiJPdmVydmlldyIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXREYXNoYm9hcmQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk92ZXJ2aWV3IHRhYiIpfSx7a2V5OiJBbmFseXRpY3MiLGljb25OYW1lOiJsdWNpZGU6YmFyQ2hhcnQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFuYWx5dGljcyB0YWIiKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVwb3J0cyB0YWIiKX1dKX1vbkRlYWN0aXZhdGUoKXt0aGlzLmFjdGl2YXRlZD0hMSxjb25zb2xlLmxvZygiRGFzaGJvYXJkIGRlYWN0aXZhdGVkIil9cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9CiAgICAgICAgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW4tYm90dG9tOiAzMnB4OyB9CiAgICAgICAgZGVlcy1zdGF0c2dyaWQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5jdHgtYWN0aW9ucyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMik7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIH0KICAgICAgICAuY3R4LWFjdGlvbnMgaDIgeyBjb2xvcjogI2ZhZmFmYTsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CiAgICAgICAgLmJ1dHRvbi1ncmlkIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4gewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjNjBhNWZhOwogICAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG46aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMik7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjUpOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5kYW5nZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4zKTsKICAgICAgICAgIGNvbG9yOiAjZjg3MTcxOwogICAgICAgIH0KICAgICAgICAuY3R4LWJ0bi5kYW5nZXI6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC41KTsKICAgICAgICB9CiAgICAgICAgLmN0eC1idG4uc3VjY2VzcyB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjEpOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAxOTcsIDk0LCAwLjMpOwogICAgICAgICAgY29sb3I6ICM0YWRlODA7CiAgICAgICAgfQogICAgICAgIC5jdHgtYnRuLnN1Y2Nlc3M6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMTk3LCA5NCwgMC4yKTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMTk3LCA5NCwgMC41KTsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIGJhY2shIEhlcmUncyBhbiBvdmVydmlldyBvZiB5b3VyIHN5c3RlbS48L3A+CiAgICAgIDxkZWVzLXN0YXRzZ3JpZAogICAgICAgIC50aWxlcz0ke3RoaXMuc3RhdHNUaWxlc30KICAgICAgICBAdGlsZS1hY3Rpb249JHtjPT5jb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixjLmRldGFpbCl9CiAgICAgID48L2RlZXMtc3RhdHNncmlkPgoKICAgICAgPGRpdiBjbGFzcz0iY3R4LWFjdGlvbnMiPgogICAgICAgIDxoMj5Db250ZXh0IEFjdGlvbnMgKGN0eC5hcHB1aSk8L2gyPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVWaXNpYmxlKCExKX0+SGlkZSBNYWluIE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudVZpc2libGUoITApfT5TaG93IE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRTZWNvbmRhcnlNZW51VmlzaWJsZSghMSl9PkhpZGUgU2Vjb25kYXJ5IE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRTZWNvbmRhcnlNZW51VmlzaWJsZSghMCl9PlNob3cgU2Vjb25kYXJ5IE1lbnU8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNWaXNpYmxlKCExKX0+SGlkZSBDb250ZW50IFRhYnM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4gc3VjY2VzcyIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRDb250ZW50VGFic1Zpc2libGUoITApfT5TaG93IENvbnRlbnQgVGFiczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRNYWluTWVudUNvbGxhcHNlZCghMCl9PkNvbGxhcHNlIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBzdWNjZXNzIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldE1haW5NZW51Q29sbGFwc2VkKCExKX0+RXhwYW5kIE1haW4gTWVudTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5zZXRCcmVhZGNydW1icyhbIkRhc2hib2FyZCIsIk92ZXJ2aWV3IiwiU3RhdHMiXSl9PlNldCBCcmVhZGNydW1iczwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5uYXZpZ2F0ZVRvVmlldygicHJvamVjdHMiKX0+R28gdG8gUHJvamVjdHM8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkubmF2aWdhdGVUb1ZpZXcoInNldHRpbmdzIix7c2VjdGlvbjoic2VjdXJpdHkifSl9PkdvIHRvIFNldHRpbmdzL1NlY3VyaXR5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLmFjdGl2aXR5TG9nLmFkZCh7dHlwZToiY3VzdG9tIix1c2VyOiJEZW1vIFVzZXIiLG1lc3NhZ2U6IkJ1dHRvbiBjbGlja2VkIGZyb20gY3R4ISIsaWNvbk5hbWU6Imx1Y2lkZTptb3VzZS1wb2ludGVyLWNsaWNrIn0pfT5BZGQgQWN0aXZpdHkgRW50cnk8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0eC1idG4iIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0TWFpbk1lbnVCYWRnZSgidGFza3MiLDk5KX0+U2V0IFRhc2tzIEJhZGdlIHRvIDk5PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIGRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY3R4Py5hcHB1aS5jbGVhck1haW5NZW51QmFkZ2UoInRhc2tzIil9PkNsZWFyIFRhc2tzIEJhZGdlPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIiBAY2xpY2s9JHsoKT0+dGhpcy5jdHg/LmFwcHVpLnNldENvbnRlbnRUYWJzQXV0b0hpZGUoITAsMSl9PkF1dG8taGlkZSBUYWJzICjiiaQxKTwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3R4LWJ0biBkYW5nZXIiIEBjbGljaz0keygpPT50aGlzLmN0eD8uYXBwdWkuc2V0Q29udGVudFRhYnNBdXRvSGlkZSghMSl9PkRpc2FibGUgQXV0by1oaWRlPC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjdHgtYnRuIHN1Y2Nlc3MiIEBjbGljaz0keygpPT50aGlzLmFkZENsb3NlYWJsZVRhYigpfT5BZGQgQ2xvc2VhYmxlIFRhYjwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9dGFiQ291bnRlcj0wO2FkZENsb3NlYWJsZVRhYigpe2lmKCF0aGlzLmN0eClyZXR1cm47dGhpcy50YWJDb3VudGVyKys7bGV0IGM9YFRhYiAke3RoaXMudGFiQ291bnRlcn1gO3RoaXMuY3R4LmFwcHVpLmFkZENvbnRlbnRUYWIoe2tleTpjLGljb25OYW1lOiJsdWNpZGU6ZmlsZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZyhgU2VsZWN0ZWQgJHtjfWApLGNsb3NlYWJsZTohMCxvbkNsb3NlOigpPT57dGhpcy5jdHg/LmFwcHVpLnJlbW92ZUNvbnRlbnRUYWIoYyl9fSl9fTtyZXR1cm4gbD1pfSkoKSxfMmE9KCgpPT57bGV0IGU9W3llKCJkZW1vLXNldHRpbmdzLXZpZXciKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1bZmUoKV0scWQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWN0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4ic2VjdGlvbiJpbiBmLGdldDpmPT5mLnNlY3Rpb24sc2V0OihmLHgpPT57Zi5zZWN0aW9uPXh9fSxtZXRhZGF0YTpofSxvLHMpLHFkKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFzQ2hhbmdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+Imhhc0NoYW5nZXMiaW4gZixnZXQ6Zj0+Zi5oYXNDaGFuZ2VzLHNldDooZix4KT0+e2YuaGFzQ2hhbmdlcz14fX0sbWV0YWRhdGE6aH0sYyx1KSxxZChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pLGlsKGkscil9I2U9aWwodGhpcyxvLCJnZW5lcmFsIik7Z2V0IHNlY3Rpb24oKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VjdGlvbihoKXt0aGlzLiNlPWh9I3Q9KGlsKHRoaXMscyksaWwodGhpcyxjLCExKSk7Z2V0IGhhc0NoYW5nZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaGFzQ2hhbmdlcyhoKXt0aGlzLiN0PWh9YXBwdWk9aWwodGhpcyx1KTtvbkFjdGl2YXRlKGgpe3RoaXMuYXBwdWk9aC5hcHB1aSxjb25zb2xlLmxvZygiU2V0dGluZ3MgYWN0aXZhdGVkIHdpdGggcGFyYW1zOiIsaC5wYXJhbXMpLGgucGFyYW1zPy5zZWN0aW9uJiYodGhpcy5zZWN0aW9uPWgucGFyYW1zLnNlY3Rpb24pLGguYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiU2V0dGluZ3MiLGdyb3Vwczpbe25hbWU6IkFjY291bnQiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsaXRlbXM6W3trZXk6ImdlbmVyYWwiLGljb25OYW1lOiJzZXR0aW5ncyIsYWN0aW9uOigpPT50aGlzLnNob3dTZWN0aW9uKCJnZW5lcmFsIil9LHtrZXk6InByb2ZpbGUiLGljb25OYW1lOiJ1c2VyIixhY3Rpb246KCk9PnRoaXMuc2hvd1NlY3Rpb24oInByb2ZpbGUiKX0se2tleToic2VjdXJpdHkiLGljb25OYW1lOiJzaGllbGQiLGFjdGlvbjooKT0+dGhpcy5zaG93U2VjdGlvbigic2VjdXJpdHkiKX1dfSx7bmFtZToiUHJlZmVyZW5jZXMiLGljb25OYW1lOiJsdWNpZGU6c2xpZGVycyIsaXRlbXM6W3trZXk6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJiZWxsIixiYWRnZTozLGFjdGlvbjooKT0+dGhpcy5zaG93U2VjdGlvbigibm90aWZpY2F0aW9ucyIpfSx7a2V5OiJhcHBlYXJhbmNlIixpY29uTmFtZToicGFsZXR0ZSIsYWN0aW9uOigpPT50aGlzLnNob3dTZWN0aW9uKCJhcHBlYXJhbmNlIil9XX1dfSksaC5hcHB1aS5zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKHRoaXMuc2VjdGlvbiksaC5hcHB1aS5zZXRDb250ZW50VGFicyhbXSl9b25EZWFjdGl2YXRlKCl7Y29uc29sZS5sb2coIlNldHRpbmdzIGRlYWN0aXZhdGVkIiksdGhpcy5oYXNDaGFuZ2VzPSExfWNhbkRlYWN0aXZhdGUoKXtyZXR1cm4gdGhpcy5oYXNDaGFuZ2VzPyJZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIExlYXZlIGFueXdheT8iOiEwfXNob3dTZWN0aW9uKGgpe3RoaXMuc2VjdGlvbj1oLHRoaXMuYXBwdWk/LnNldFNlY29uZGFyeU1lbnVTZWxlY3Rpb24oaCl9c2ltdWxhdGVDaGFuZ2UoKXt0aGlzLmhhc0NoYW5nZXM9ITB9cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIGgxIHsgY29sb3I6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMjRweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9CiAgICAgICAgcCB7IGNvbG9yOiAjNzM3MzczOyBtYXJnaW4tYm90dG9tOiAyNHB4OyB9CiAgICAgICAgLnNlY3Rpb24tbmFtZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICAgIGNvbG9yOiAjZmFmYWZhOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICB9CiAgICAgICAgLmFjdGlvbnMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICB9CiAgICAgICAgYnV0dG9uIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMzYjgyZjY7CiAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CiAgICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMyNTYzZWI7CiAgICAgICAgfQogICAgICAgIC53YXJuaW5nIHsKICAgICAgICAgIGNvbG9yOiAjZmJiZjI0OwogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxoMT5TZXR0aW5nczwvaDE+CiAgICAgIDxwPk1hbmFnZSB5b3VyIGFjY291bnQgYW5kIGFwcGxpY2F0aW9uIHByZWZlcmVuY2VzLjwvcD4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1uYW1lIj4KICAgICAgICBDdXJyZW50IHNlY3Rpb246IDxzdHJvbmc+JHt0aGlzLnNlY3Rpb259PC9zdHJvbmc+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zIj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNpbXVsYXRlQ2hhbmdlKCl9Pk1ha2UgQ2hhbmdlczwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmhhc0NoYW5nZXM/Q2A8cCBjbGFzcz0id2FybmluZyI+WW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBOYXZpZ2F0aW9uIHdpbGwgcHJvbXB0IGZvciBjb25maXJtYXRpb24uPC9wPmA6IiJ9CiAgICBgfX07cmV0dXJuIGQ9aX0pKCksTDJhPSgoKT0+e2xldCBlPVt5ZSgiZGVtby1wcm9qZWN0cy12aWV3IildLHQscj1bXSxpLGE9emU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3FkKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1pPXQudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSksaWwoaSxyKX1vbkFjdGl2YXRlKG8pe28uYXBwdWkuc2V0U2Vjb25kYXJ5TWVudSh7aGVhZGluZzoiUHJvamVjdHMiLGdyb3Vwczpbe25hbWU6Ik15IFByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsaXRlbXM6W3trZXk6IkFjdGl2ZSIsaWNvbk5hbWU6ImZvbGRlciIsYmFkZ2U6MyxhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBY3RpdmUiKX0se2tleToiQXJjaGl2ZWQiLGljb25OYW1lOiJhcmNoaXZlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBcmNoaXZlZCIpfSx7a2V5OiJTaGFyZWQiLGljb25OYW1lOiJ1c2VycyIsYmFkZ2U6MixiYWRnZVZhcmlhbnQ6Indhcm5pbmciLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlNoYXJlZCIpfV19LHtuYW1lOiJRdWljayBBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiTmV3IFByb2plY3QiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyUGx1cyIsYWN0aW9uOigpPT5hbGVydCgiQ3JlYXRlIG5ldyBwcm9qZWN0Iil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IixpY29uTmFtZToibHVjaWRlOmRvd25sb2FkIixhY3Rpb246KCk9PmFsZXJ0KCJJbXBvcnQgcHJvamVjdCIpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJsaW5rIixrZXk6IlRlbXBsYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpsYXlvdXRUZW1wbGF0ZSIsaHJlZjoiaHR0cHM6Ly90ZW1wbGF0ZXMuZXhhbXBsZS5jb20ifV19XX0pLG8uYXBwdWkuc2V0Q29udGVudFRhYnMoW3trZXk6IkdyaWQiLGljb25OYW1lOiJsdWNpZGU6Z3JpZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiR3JpZCB2aWV3Iil9LHtrZXk6Ikxpc3QiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiTGlzdCB2aWV3Iil9LHtrZXk6IkJvYXJkIixpY29uTmFtZToibHVjaWRlOmthbmJhbiIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQm9hcmQgdmlldyIpfV0pfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAucHJvamVjdHMgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5wcm9qZWN0IHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMyk7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzOwogICAgICAgIH0KICAgICAgICAucHJvamVjdDpob3ZlciB7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTsKICAgICAgICB9CiAgICAgICAgLnByb2plY3QgaDMgeyBjb2xvcjogI2ZhZmFmYTsgbWFyZ2luOiAwIDAgOHB4IDA7IGZvbnQtc2l6ZTogMTZweDsgfQogICAgICAgIC5wcm9qZWN0IHAgeyBjb2xvcjogIzczNzM3MzsgbWFyZ2luOiAwOyBmb250LXNpemU6IDEzcHg7IH0KICAgICAgICAuYmFkZ2UgewogICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgYmFja2dyb3VuZDogIzE0NTMyZDsKICAgICAgICAgIGNvbG9yOiAjNGFkZTgwOwogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+UHJvamVjdHM8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJwcm9qZWN0cyI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+RnJvbnRlbmQgQXBwIDxzcGFuIGNsYXNzPSJiYWRnZSI+QWN0aXZlPC9zcGFuPjwvaDM+CiAgICAgICAgICA8cD5SZWFjdC1iYXNlZCBkYXNoYm9hcmQgYXBwbGljYXRpb248L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+QVBJIFNlcnZlciA8c3BhbiBjbGFzcz0iYmFkZ2UiPkFjdGl2ZTwvc3Bhbj48L2gzPgogICAgICAgICAgPHA+Tm9kZS5qcyBSRVNUIEFQSSBiYWNrZW5kPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InByb2plY3QiPgogICAgICAgICAgPGgzPk1vYmlsZSBBcHAgPHNwYW4gY2xhc3M9ImJhZGdlIj5BY3RpdmU8L3NwYW4+PC9oMz4KICAgICAgICAgIDxwPlJlYWN0IE5hdGl2ZSBpT1MvQW5kcm9pZCBhcHA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvamVjdCI+CiAgICAgICAgICA8aDM+RG9jdW1lbnRhdGlvbjwvaDM+CiAgICAgICAgICA8cD5UZWNobmljYWwgZG9jdW1lbnRhdGlvbiBzaXRlPC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9fTtyZXR1cm4gbj1pfSkoKSxBMmE9KCgpPT57bGV0IGU9W3llKCJkZW1vLXRhc2tzLXZpZXciKV0sdCxyPVtdLGksYT16ZTt2YXIgbj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7cWQobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWk9dC52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KSxpbChpLHIpfW9uQWN0aXZhdGUobyl7by5hcHB1aS5zZXRTZWNvbmRhcnlNZW51KHtoZWFkaW5nOiJUYXNrcyIsZ3JvdXBzOlt7bmFtZToiVmlld3MiLGljb25OYW1lOiJsdWNpZGU6ZXllIixpdGVtczpbe2tleToiQWxsIFRhc2tzIixpY29uTmFtZToibGlzdCIsYmFkZ2U6MTIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQWxsIil9LHtrZXk6IlRvZGF5IixpY29uTmFtZToiY2FsZW5kYXIiLGJhZGdlOjMsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVG9kYXkiKX0se2tleToiVXBjb21pbmciLGljb25OYW1lOiJjbG9jayIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVXBjb21pbmciKX0se2tleToiQ29tcGxldGVkIixpY29uTmFtZToiY2hlY2tDaXJjbGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkNvbXBsZXRlZCIpfV19LHtuYW1lOiJGaWx0ZXJzIixpY29uTmFtZToibHVjaWRlOmZpbHRlciIsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJQcmlvcml0eSJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJQcmlvcml0eSIsaWNvbk5hbWU6Imx1Y2lkZTpmbGFnIixvcHRpb25zOlt7a2V5OiJoaWdoIixsYWJlbDoiSGlnaCIsY2hlY2tlZDohMCxpY29uTmFtZToibHVjaWRlOmFsZXJ0Q2lyY2xlIn0se2tleToibWVkaXVtIixsYWJlbDoiTWVkaXVtIixjaGVja2VkOiEwLGljb25OYW1lOiJsdWNpZGU6bWludXNDaXJjbGUifSx7a2V5OiJsb3ciLGxhYmVsOiJMb3ciLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjaXJjbGUifV0sb25DaGFuZ2U6cz0+Y29uc29sZS5sb2coIlByaW9yaXR5IGZpbHRlcjoiLHMpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJoZWFkZXIiLGxhYmVsOiJPcHRpb25zIn0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IFN1YnRhc2tzIixpY29uTmFtZToibHVjaWRlOmxpc3RUcmVlIixhY3RpdmU6ITAsb25Ub2dnbGU6cz0+Y29uc29sZS5sb2coIlNob3cgc3VidGFza3M6IixzKX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IENvbXBsZXRlZCIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aXZlOiExLG9uVG9nZ2xlOnM9PmNvbnNvbGUubG9nKCJTaG93IGNvbXBsZXRlZDoiLHMpfV19LHtuYW1lOiJBY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnphcCIsaXRlbXM6W3t0eXBlOiJhY3Rpb24iLGtleToiQWRkIFRhc2siLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOigpPT5hbGVydCgiQWRkIG5ldyB0YXNrIil9LHt0eXBlOiJhY3Rpb24iLGtleToiSW1wb3J0IFRhc2tzIixpY29uTmFtZToibHVjaWRlOnVwbG9hZCIsYWN0aW9uOigpPT5hbGVydCgiSW1wb3J0IHRhc2tzIil9LHt0eXBlOiJkaXZpZGVyIn0se3R5cGU6ImFjdGlvbiIsa2V5OiJDbGVhciBDb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIix2YXJpYW50OiJkYW5nZXIiLGNvbmZpcm1NZXNzYWdlOiJEZWxldGUgYWxsIGNvbXBsZXRlZCB0YXNrcz8iLGFjdGlvbjooKT0+YWxlcnQoIkNsZWFyZWQgY29tcGxldGVkIHRhc2tzIil9XX1dfSksby5hcHB1aS5zZXRDb250ZW50VGFicyhbe2tleToiTGlzdCIsaWNvbk5hbWU6Imx1Y2lkZTpsaXN0IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJMaXN0Iil9LHtrZXk6IkNhbGVuZGFyIixpY29uTmFtZToibHVjaWRlOmNhbGVuZGFyIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJDYWxlbmRhciIpfV0pfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgY29sb3I6ICNhM2EzYTM7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCAnSW50ZXInLCAtYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgICBoMSB7IGNvbG9yOiAjZmFmYWZhOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0KICAgICAgICAudGFzay1saXN0IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQogICAgICAgIC50YXNrIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5jaGVja2JveCB7CiAgICAgICAgICB3aWR0aDogMThweDsKICAgICAgICAgIGhlaWdodDogMThweDsKICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM1MjUyNTI7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgICAgIC50YXNrLXRleHQgeyBjb2xvcjogI2ZhZmFmYTsgZmxleDogMTsgfQogICAgICAgIC5kdWUtZGF0ZSB7IGNvbG9yOiAjNzM3MzczOyBmb250LXNpemU6IDEycHg7IH0KICAgICAgICAucHJpb3JpdHkgewogICAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICB9CiAgICAgICAgLnByaW9yaXR5LmhpZ2ggeyBiYWNrZ3JvdW5kOiAjNDUwYTBhOyBjb2xvcjogI2Y4NzE3MTsgfQogICAgICAgIC5wcmlvcml0eS5tZWRpdW0geyBiYWNrZ3JvdW5kOiAjNDUxYTAzOyBjb2xvcjogI2ZiYmYyNDsgfQogICAgICA8L3N0eWxlPgogICAgICA8aDE+VGFza3M8L2gxPgogICAgICA8ZGl2IGNsYXNzPSJ0YXNrLWxpc3QiPgogICAgICAgIDxkaXYgY2xhc3M9InRhc2siPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPjwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9InRhc2stdGV4dCI+UmV2aWV3IHB1bGwgcmVxdWVzdCAjNDI8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZHVlLWRhdGUiPlRvZGF5PC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9InByaW9yaXR5IGhpZ2giPkhpZ2g8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5VcGRhdGUgZG9jdW1lbnRhdGlvbjwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJkdWUtZGF0ZSI+VG9tb3Jyb3c8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icHJpb3JpdHkgbWVkaXVtIj5NZWRpdW08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGFzayI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2JveCI+PC9kaXY+CiAgICAgICAgICA8c3BhbiBjbGFzcz0idGFzay10ZXh0Ij5Xcml0ZSB1bml0IHRlc3RzPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImR1ZS1kYXRlIj5EZWMgMjA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH19O3JldHVybiBuPWl9KSgpLEFscj0oKT0+e2xldCBlPXticmFuZGluZzp7bG9nb0ljb246Imx1Y2lkZTpib3giLGxvZ29UZXh0OiJBY21lIEFwcCJ9LGFwcEJhcjp7bWVudUl0ZW1zOlt7bmFtZToiRmlsZSIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJOZXcgUHJvamVjdCIsc2hvcnRjdXQ6IkNtZCtOIixpY29uTmFtZToiZmlsZVBsdXMiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiTmV3Iil9LHtuYW1lOiJPcGVuLi4uIixzaG9ydGN1dDoiQ21kK08iLGljb25OYW1lOiJmb2xkZXJPcGVuIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIk9wZW4iKX0se25hbWU6IlJlY2VudCBQcm9qZWN0cyIsYWN0aW9uOmFzeW5jKCk9Pnt9LHN1Ym1lbnU6W3tuYW1lOiJteS1hcHAiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBteS1hcHAiKX0se25hbWU6ImNvbXBvbmVudC1saWIiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiT3BlbiBjb21wb25lbnQtbGliIil9XX0se2RpdmlkZXI6ITB9LHtuYW1lOiJTYXZlIEFsbCIsc2hvcnRjdXQ6IkNtZCtTIixpY29uTmFtZToic2F2ZSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJTYXZlIil9XX0se25hbWU6IkVkaXQiLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiVW5kbyIsc2hvcnRjdXQ6IkNtZCtaIixpY29uTmFtZToidW5kbyIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJVbmRvIil9LHtuYW1lOiJSZWRvIixzaG9ydGN1dDoiQ21kK1NoaWZ0K1oiLGljb25OYW1lOiJyZWRvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlJlZG8iKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLHNob3J0Y3V0OiJDbWQrWCIsaWNvbk5hbWU6InNjaXNzb3JzIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkN1dCIpfSx7bmFtZToiQ29weSIsc2hvcnRjdXQ6IkNtZCtDIixpY29uTmFtZToiY29weSIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJDb3B5Iil9LHtuYW1lOiJQYXN0ZSIsc2hvcnRjdXQ6IkNtZCtWIixpY29uTmFtZToiY2xpcGJvYXJkIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlBhc3RlIil9XX0se25hbWU6IlZpZXciLGFjdGlvbjphc3luYygpPT57fSxzdWJtZW51Olt7bmFtZToiVG9nZ2xlIFNpZGViYXIiLHNob3J0Y3V0OiJDbWQrQiIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJUb2dnbGUgc2lkZWJhciIpfSx7bmFtZToiVG9nZ2xlIEFjdGl2aXR5IExvZyIsc2hvcnRjdXQ6IkNtZCtTaGlmdCtBIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlRvZ2dsZSBhY3Rpdml0eSIpfV19LHtuYW1lOiJIZWxwIixhY3Rpb246YXN5bmMoKT0+e30sc3VibWVudTpbe25hbWU6IkRvY3VtZW50YXRpb24iLGljb25OYW1lOiJib29rIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkRvY3MiKX0se25hbWU6IktleWJvYXJkIFNob3J0Y3V0cyIsaWNvbk5hbWU6ImtleWJvYXJkIixzaG9ydGN1dDoiQ21kKy8iLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2hvcnRjdXRzIil9LHtkaXZpZGVyOiEwfSx7bmFtZToiQWJvdXQiLGljb25OYW1lOiJpbmZvIixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIkFib3V0Iil9XX1dLGJyZWFkY3J1bWJzOiJEYXNoYm9hcmQiLHNob3dXaW5kb3dDb250cm9sczohMCxzaG93U2VhcmNoOiEwLHVzZXI6e25hbWU6IkphbmUgU21pdGgiLGVtYWlsOiJqYW5lLnNtaXRoQGV4YW1wbGUuY29tIixzdGF0dXM6Im9ubGluZSJ9LHByb2ZpbGVNZW51SXRlbXM6W3tuYW1lOiJQcm9maWxlIixpY29uTmFtZToidXNlciIsYWN0aW9uOmFzeW5jKCk9PmNvbnNvbGUubG9nKCJQcm9maWxlIil9LHtuYW1lOiJBY2NvdW50IFNldHRpbmdzIixpY29uTmFtZToic2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwICYgU3VwcG9ydCIsaWNvbk5hbWU6ImhlbHBDaXJjbGUiLGFjdGlvbjphc3luYygpPT5jb25zb2xlLmxvZygiSGVscCIpfSx7ZGl2aWRlcjohMH0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibG9nT3V0IixhY3Rpb246YXN5bmMoKT0+Y29uc29sZS5sb2coIlNpZ24gb3V0Iil9XX0sdmlld3M6W3tpZDoiZGFzaGJvYXJkIixuYW1lOiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsY29udGVudDoiZGVtby1kYXNoYm9hcmQtdmlldyIscm91dGU6ImRhc2hib2FyZCJ9LHtpZDoicHJvamVjdHMiLG5hbWU6IlByb2plY3RzIixpY29uTmFtZToibHVjaWRlOmZvbGRlciIsY29udGVudDoiZGVtby1wcm9qZWN0cy12aWV3Iixyb3V0ZToicHJvamVjdHMiLGJhZGdlOjN9LHtpZDoidGFza3MiLG5hbWU6IlRhc2tzIixpY29uTmFtZToibHVjaWRlOmNoZWNrU3F1YXJlIixjb250ZW50OiJkZW1vLXRhc2tzLXZpZXciLHJvdXRlOiJ0YXNrcyIsYmFkZ2U6MTJ9LHtpZDoic2V0dGluZ3MiLG5hbWU6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixjb250ZW50OiJkZW1vLXNldHRpbmdzLXZpZXciLHJvdXRlOiJzZXR0aW5ncy86c2VjdGlvbj8ifV0sbWFpbk1lbnU6e3NlY3Rpb25zOlt7bmFtZToiTWFpbiIsdmlld3M6WyJkYXNoYm9hcmQiXX0se25hbWU6IldvcmtzcGFjZSIsdmlld3M6WyJwcm9qZWN0cyIsInRhc2tzIl19XSxib3R0b21JdGVtczpbInNldHRpbmdzIl19LGRlZmF1bHRWaWV3OiJkYXNoYm9hcmQiLGJvdHRvbUJhcjp7dmlzaWJsZTohMCx3aWRnZXRzOlt7aWQ6InN0YXR1cyIsaWNvbk5hbWU6Imx1Y2lkZTphY3Rpdml0eSIsbGFiZWw6IlN5c3RlbSBPbmxpbmUiLHN0YXR1czoic3VjY2VzcyIsdG9vbHRpcDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLG9uQ2xpY2s6KCk9PmNvbnNvbGUubG9nKCJTdGF0dXMgY2xpY2tlZCIpfSx7aWQ6Im5vdGlmaWNhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6YmVsbCIsbGFiZWw6IjMgbm90aWZpY2F0aW9ucyIsc3RhdHVzOiJ3YXJuaW5nIix0b29sdGlwOiJZb3UgaGF2ZSB1bnJlYWQgbm90aWZpY2F0aW9ucyIsb25DbGljazooKT0+Y29uc29sZS5sb2coIk5vdGlmaWNhdGlvbnMgY2xpY2tlZCIpfSx7aWQ6InZlcnNpb24iLGljb25OYW1lOiJsdWNpZGU6Z2l0QnJhbmNoIixsYWJlbDoidjEuMi4zIixwb3NpdGlvbjoicmlnaHQiLHRvb2x0aXA6IkN1cnJlbnQgdmVyc2lvbiJ9XSxhY3Rpb25zOlt7aWQ6InRlcm1pbmFsIixpY29uTmFtZToibHVjaWRlOnRlcm1pbmFsIix0b29sdGlwOiJPcGVuIFRlcm1pbmFsIixwb3NpdGlvbjoicmlnaHQiLG9uQ2xpY2s6KCk9PmNvbnNvbGUubG9nKCJUZXJtaW5hbCBjbGlja2VkIil9XX0sb25WaWV3Q2hhbmdlOihpLGEpPT57Y29uc29sZS5sb2coYFZpZXcgY2hhbmdlZCB0bzogJHtpfSAoJHthLm5hbWV9KWApfSxvblNlYXJjaDppPT57Y29uc29sZS5sb2coIlNlYXJjaCBxdWVyeToiLGkpfX0sdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0iZGVtby1jb250YWluZXIiLHQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IG92ZXJmbG93OiBoaWRkZW47IjtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLWFwcHVpIik7cmV0dXJuIHQuYXBwZW5kQ2hpbGQociksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgci51cGRhdGVDb21wbGV0ZSxyLmNvbmZpZ3VyZShlKSxzZXRUaW1lb3V0KCgpPT57ci5hY3Rpdml0eUxvZy5hZGRNYW55KFt7dHlwZToibG9naW4iLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6ImxvZ2dlZCBpbiBmcm9tIENocm9tZSBvbiBtYWNPUyJ9LHt0eXBlOiJjcmVhdGUiLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6J2NyZWF0ZWQgcHJvamVjdCAiRnJvbnRlbmQgQXBwIid9LHt0eXBlOiJ1cGRhdGUiLHVzZXI6IkpvaG4gRG9lIixtZXNzYWdlOiJ1cGRhdGVkIEFQSSBkb2N1bWVudGF0aW9uIn0se3R5cGU6InZpZXciLHVzZXI6IkphbmUgU21pdGgiLG1lc3NhZ2U6InZpZXdlZCBkYXNoYm9hcmQgYW5hbHl0aWNzIn0se3R5cGU6ImRlbGV0ZSIsdXNlcjoiQWRtaW4iLG1lc3NhZ2U6InJlbW92ZWQgZGVwcmVjYXRlZCBlbmRwb2ludCJ9LHt0eXBlOiJjdXN0b20iLHVzZXI6IlN5c3RlbSIsbWVzc2FnZToic2NoZWR1bGVkIGJhY2t1cCBjb21wbGV0ZWQiLGljb25OYW1lOiJsdWNpZGU6ZGF0YWJhc2UifV0pfSw1MDApLHIudmlld0NoYW5nZWQkLnN1YnNjcmliZShpPT57Y29uc29sZS5sb2coIlZpZXcgY2hhbmdlZCBldmVudDoiLGkpLHIuc2V0QnJlYWRjcnVtYnMoaS52aWV3Lm5hbWUpfSksci52aWV3TGlmZWN5Y2xlJC5zdWJzY3JpYmUoaT0+e2NvbnNvbGUubG9nKCJMaWZlY3ljbGUgZXZlbnQ6IixpLnR5cGUsaS52aWV3SWQpfSksc2V0VGltZW91dCgoKT0+e3Iuc2V0TWFpbk1lbnVCYWRnZSgidGFza3MiLDE1KSxyLmFjdGl2aXR5TG9nLmFkZCh7dHlwZToidXBkYXRlIix1c2VyOiJTeXN0ZW0iLG1lc3NhZ2U6Im5ldyB0YXNrcyBhZGRlZCJ9KX0sNWUzKX0sMCksQ2AKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICAke3R9CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH19KTt2YXIgZmIsSTZlPXAoKCk9Pnt4ZSgpO2ZiPWNsYXNze3ZpZXdzPW5ldyBNYXA7aW5zdGFuY2VzPW5ldyBNYXA7Y3VycmVudFZpZXdJZD1udWxsO2FwcHVpPW51bGw7c2V0QXBwdWlSZWYodCl7dGhpcy5hcHB1aT10fXJlZ2lzdGVyKHQpe3RoaXMudmlld3MuaGFzKHQuaWQpJiZjb25zb2xlLndhcm4oYFZpZXcgd2l0aCBpZCAiJHt0LmlkfSIgYWxyZWFkeSByZWdpc3RlcmVkLiBPdmVyd3JpdGluZy5gKSx0aGlzLnZpZXdzLnNldCh0LmlkLHQpfXJlZ2lzdGVyQWxsKHQpe3QuZm9yRWFjaChyPT50aGlzLnJlZ2lzdGVyKHIpKX1nZXQodCl7cmV0dXJuIHRoaXMudmlld3MuZ2V0KHQpfWdldFZpZXdJZHMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnZpZXdzLmtleXMoKSl9Z2V0QWxsKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy52aWV3cy52YWx1ZXMoKSl9Z2V0Um91dGUodCl7bGV0IHI9dGhpcy52aWV3cy5nZXQodCk7cmV0dXJuIHI/LnJvdXRlfHxyPy5pZHx8IiJ9ZmluZEJ5Um91dGUodCl7Zm9yKGxldCByIG9mIHRoaXMudmlld3MudmFsdWVzKCkpe2xldCBpPXIucm91dGV8fHIuaWQsYT10aGlzLm1hdGNoUm91dGUoaSx0KTtpZihhIT09bnVsbClyZXR1cm57dmlldzpyLHBhcmFtczphfX19bWF0Y2hSb3V0ZSh0LHIpe2xldCBpPXQuc3BsaXQoIi8iKSxhPXIuc3BsaXQoIi8iKTtpZihpLmxlbmd0aD4wJiZpW2kubGVuZ3RoLTFdLmVuZHNXaXRoKCI/Iikpe2lmKGEubGVuZ3RoPGkubGVuZ3RoLTF8fGEubGVuZ3RoPmkubGVuZ3RoKXJldHVybiBudWxsfWVsc2UgaWYoaS5sZW5ndGghPT1hLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgbz17fTtmb3IobGV0IHM9MDtzPGkubGVuZ3RoO3MrKyl7bGV0IGw9aVtzXSxjPWwuZW5kc1dpdGgoIj8iKTtpZihjJiYobD1sLnNsaWNlKDAsLTEpKSxsLnN0YXJ0c1dpdGgoIjoiKSl7bGV0IHU9bC5zbGljZSgxKTtpZihhW3NdIT09dm9pZCAwKW9bdV09YVtzXTtlbHNlIGlmKCFjKXJldHVybiBudWxsfWVsc2UgaWYoYVtzXSE9PWwpcmV0dXJuIG51bGx9cmV0dXJuIG99YXN5bmMgY2FuTGVhdmVDdXJyZW50Vmlldygpe2lmKCF0aGlzLmN1cnJlbnRWaWV3SWQpcmV0dXJuITA7bGV0IHQ9dGhpcy5pbnN0YW5jZXMuZ2V0KHRoaXMuY3VycmVudFZpZXdJZCk7aWYoIXQpcmV0dXJuITA7bGV0IHI9dDtyZXR1cm4gdHlwZW9mIHIuY2FuRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIj9hd2FpdCByLmNhbkRlYWN0aXZhdGUoKTohMH1hc3luYyBhY3RpdmF0ZVZpZXcodCxyLGkpe2xldCBhPXRoaXMudmlld3MuZ2V0KHQpO2lmKCFhKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke3R9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO2xldCBuPWEuY2FjaGUhPT0hMTt0aGlzLmN1cnJlbnRWaWV3SWQmJnRoaXMuY3VycmVudFZpZXdJZCE9PXQmJmF3YWl0IHRoaXMuZGVhY3RpdmF0ZVZpZXcodGhpcy5jdXJyZW50Vmlld0lkKTtsZXQgbz1uP3RoaXMuaW5zdGFuY2VzLmdldCh0KTp2b2lkIDA7aWYobylvLnN0eWxlLmRpc3BsYXk9IiI7ZWxzZXtpZihvPWF3YWl0IHRoaXMuY3JlYXRlVmlld0VsZW1lbnQoYSksIW8pcmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgZWxlbWVudCBmb3IgdmlldyAiJHt0fSJgKSxudWxsO3IuYXBwZW5kQ2hpbGQobyksbiYmdGhpcy5pbnN0YW5jZXMuc2V0KHQsbyl9cmV0dXJuIHRoaXMuY3VycmVudFZpZXdJZD10LGF3YWl0IHRoaXMuY2FsbE9uQWN0aXZhdGUobyx0LGkpLG99YXN5bmMgZGVhY3RpdmF0ZVZpZXcodCl7bGV0IHI9dGhpcy5pbnN0YW5jZXMuZ2V0KHQpO2lmKCFyKXJldHVybjtsZXQgaT1yO3R5cGVvZiBpLm9uRGVhY3RpdmF0ZT09ImZ1bmN0aW9uIiYmYXdhaXQgaS5vbkRlYWN0aXZhdGUoKSxyLnN0eWxlLmRpc3BsYXk9Im5vbmUifWFzeW5jIGNyZWF0ZVZpZXdFbGVtZW50KHQpe2xldCByPXQuY29udGVudDtpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIiYmIShyLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSYmci5jb25zdHJ1Y3Rvci5uYW1lPT09IkFzeW5jRnVuY3Rpb24iKXRyeXtyPWF3YWl0IHIoKX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGxvYWQgYXN5bmMgY29udGVudCBmb3IgdmlldyAiJHt0LmlkfSI6YCxhKSxudWxsfWxldCBpO2lmKHR5cGVvZiByPT0ic3RyaW5nIilpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocik7ZWxzZSBpZih0eXBlb2Ygcj09ImZ1bmN0aW9uIilpZihyLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KWk9bmV3IHI7ZWxzZXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLGEuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgbj1yKCk7YjYobixhKSxpPWF9ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7dC5pZH0iYCksbnVsbDtyZXR1cm4gaS5kYXRhc2V0LnZpZXdJZD10LmlkLGl9YXN5bmMgY2FsbE9uQWN0aXZhdGUodCxyLGkpe2xldCBhPXQ7aWYodHlwZW9mIGEub25BY3RpdmF0ZT09ImZ1bmN0aW9uIil7bGV0IG49e2FwcHVpOnRoaXMuYXBwdWksdmlld0lkOnIscGFyYW1zOml9O2F3YWl0IGEub25BY3RpdmF0ZShuKX19cmVuZGVyVmlldyh0LHIpe2xldCBpPXRoaXMudmlld3MuZ2V0KHQpO2lmKCFpKXJldHVybiBjb25zb2xlLmVycm9yKGBWaWV3ICIke3R9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsO3IuaW5uZXJIVE1MPSIiO2xldCBhLG49aS5jb250ZW50O2lmKHR5cGVvZiBuPT0ic3RyaW5nIilhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobik7ZWxzZSBpZih0eXBlb2Ygbj09ImZ1bmN0aW9uIilpZihuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KWE9bmV3IG47ZWxzZXtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmNsYXNzTmFtZT0idmlldy1jb250ZW50LXdyYXBwZXIiLG8uc3R5bGUuY3NzVGV4dD0iZGlzcGxheTogY29udGVudHM7IjtsZXQgcz1uKCk7YjYocyxvKSxhPW99ZWxzZSByZXR1cm4gY29uc29sZS5lcnJvcihgSW52YWxpZCBjb250ZW50IHR5cGUgZm9yIHZpZXcgIiR7dH0iYCksbnVsbDtyZXR1cm4gci5hcHBlbmRDaGlsZChhKSx0aGlzLmluc3RhbmNlcy5zZXQodCxhKSx0aGlzLmN1cnJlbnRWaWV3SWQ9dCxhfWdldEN1cnJlbnRWaWV3SWQoKXtyZXR1cm4gdGhpcy5jdXJyZW50Vmlld0lkfWdldEluc3RhbmNlKHQpe3JldHVybiB0aGlzLmluc3RhbmNlcy5nZXQodCl9Y2xlYXJJbnN0YW5jZSh0KXtsZXQgcj10aGlzLmluc3RhbmNlcy5nZXQodCk7ciYmci5wYXJlbnROb2RlJiZyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQociksdGhpcy5pbnN0YW5jZXMuZGVsZXRlKHQpLHRoaXMuY3VycmVudFZpZXdJZD09PXQmJih0aGlzLmN1cnJlbnRWaWV3SWQ9bnVsbCl9Y2xlYXJJbnN0YW5jZXMoKXtmb3IobGV0W3Qscl1vZiB0aGlzLmluc3RhbmNlcylyLnBhcmVudE5vZGUmJnIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKTt0aGlzLmluc3RhbmNlcy5jbGVhcigpLHRoaXMuY3VycmVudFZpZXdJZD1udWxsfXVucmVnaXN0ZXIodCl7cmV0dXJuIHRoaXMuY2xlYXJJbnN0YW5jZSh0KSx0aGlzLnZpZXdzLmRlbGV0ZSh0KX1jbGVhcigpe3RoaXMudmlld3MuY2xlYXIoKSx0aGlzLmNsZWFySW5zdGFuY2VzKCl9aGFzKHQpe3JldHVybiB0aGlzLnZpZXdzLmhhcyh0KX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLnZpZXdzLnNpemV9fX0pO3ZhciBFbHIsJGxyPXAoKCk9Pnt4ZSgpO0Vscj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1tYWlubWVudS1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAgIC5kZW1vLW1haW5tZW51LWNvbnRhaW5lciAuc3BhY2VyIHsKICAgICAgZmxleDogMTsKICAgICAgYmFja2dyb3VuZDogIzBmMGYwZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tbWFpbm1lbnUtY29udGFpbmVyIj4KICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgIC5sb2dvSWNvbj0keyJsdWNpZGU6Ym94In0KICAgICAgLmxvZ29UZXh0PSR7IkFjbWUgQXBwIn0KICAgICAgLm1lbnVHcm91cHM9JHtbe3RhYnM6W3trZXk6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEYXNoYm9hcmQiKX0se2tleToiSW5ib3giLGljb25OYW1lOiJsdWNpZGU6aW5ib3giLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkluYm94Iil9XX0se25hbWU6IldvcmtzcGFjZSIsdGFiczpbe2tleToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJQcm9qZWN0cyIpfSx7a2V5OiJUYXNrcyIsaWNvbk5hbWU6Imx1Y2lkZTpjaGVja1NxdWFyZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiVGFza3MiKX0se2tleToiRG9jdW1lbnRzIixpY29uTmFtZToibHVjaWRlOmZpbGVUZXh0IixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEb2N1bWVudHMiKX1dfSx7bmFtZToiQW5hbHl0aWNzIix0YWJzOlt7a2V5OiJSZXBvcnRzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MyIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVwb3J0cyIpfSx7a2V5OiJJbnNpZ2h0cyIsaWNvbk5hbWU6Imx1Y2lkZTpsaWdodGJ1bGIiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkluc2lnaHRzIil9XX1dfQogICAgICAuYm90dG9tVGFicz0ke1t7a2V5OiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiU2V0dGluZ3MiKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJIZWxwIil9XX0KICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiPjwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIFI0LHRuLElscixQNmU9cCgoKT0+e3dpKCk7JDQoKTt4bygpO3hlKCk7TWkoKTskbHIoKTtKZSgpO1I0PWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sdG49ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LElscj0oKCk9PntsZXQgZT1beWUoImRlZXMtYXBwdWktbWFpbm1lbnUiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXTt2YXIgUj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IF89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpBcnJheX0pXSx4PVtqKHt0eXBlOkFycmF5fSldLHk9W2ooe3R5cGU6QXJyYXl9KV0sTz1baigpXSxGPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxSNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ29JY29uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ibG9nb0ljb24iaW4gUyxnZXQ6Uz0+Uy5sb2dvSWNvbixzZXQ6KFMsJCk9PntTLmxvZ29JY29uPSR9fSxtZXRhZGF0YTpffSxvLHMpLFI0KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJsb2dvVGV4dCJpbiBTLGdldDpTPT5TLmxvZ29UZXh0LHNldDooUywkKT0+e1MubG9nb1RleHQ9JH19LG1ldGFkYXRhOl99LGMsdSksUjQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51R3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ibWVudUdyb3VwcyJpbiBTLGdldDpTPT5TLm1lbnVHcm91cHMsc2V0OihTLCQpPT57Uy5tZW51R3JvdXBzPSR9fSxtZXRhZGF0YTpffSxoLGYpLFI0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tVGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImJvdHRvbVRhYnMiaW4gUyxnZXQ6Uz0+Uy5ib3R0b21UYWJzLHNldDooUywkKT0+e1MuYm90dG9tVGFicz0kfX0sbWV0YWRhdGE6X30sdixiKSxSNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ0YWJzImluIFMsZ2V0OlM9PlMudGFicyxzZXQ6KFMsJCk9PntTLnRhYnM9JH19LG1ldGFkYXRhOl99LHcsayksUjQodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InNlbGVjdGVkVGFiImluIFMsZ2V0OlM9PlMuc2VsZWN0ZWRUYWIsc2V0OihTLCQpPT57Uy5zZWxlY3RlZFRhYj0kfX0sbWV0YWRhdGE6X30seixNKSxSNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImNvbGxhcHNlZCJpbiBTLGdldDpTPT5TLmNvbGxhcHNlZCxzZXQ6KFMsJCk9PntTLmNvbGxhcHNlZD0kfX0sbWV0YWRhdGE6X30sRCxOKSxSNChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLFI9aT10LnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfXN0YXRpYyBkZW1vPUVscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPXRuKHRoaXMsbywiIik7Z2V0IGxvZ29JY29uKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxvZ29JY29uKF8pe3RoaXMuI2U9X30jdD0odG4odGhpcyxzKSx0bih0aGlzLGMsIiIpKTtnZXQgbG9nb1RleHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbG9nb1RleHQoXyl7dGhpcy4jdD1ffSNyPSh0bih0aGlzLHUpLHRuKHRoaXMsaCxbXSkpO2dldCBtZW51R3JvdXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1lbnVHcm91cHMoXyl7dGhpcy4jcj1ffSNpPSh0bih0aGlzLGYpLHRuKHRoaXMsdixbXSkpO2dldCBib3R0b21UYWJzKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGJvdHRvbVRhYnMoXyl7dGhpcy4jaT1ffSNhPSh0bih0aGlzLGIpLHRuKHRoaXMsdyxbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRhYnMoXyl7dGhpcy4jYT1ffSNuPSh0bih0aGlzLGspLHRuKHRoaXMseix2b2lkIDApKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jbn1zZXQgc2VsZWN0ZWRUYWIoXyl7dGhpcy4jbj1ffSNvPSh0bih0aGlzLE0pLHRuKHRoaXMsRCwhMSkpO2dldCBjb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jb31zZXQgY29sbGFwc2VkKF8pe3RoaXMuI289X31zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICAtLW1lbnUtd2lkdGgtZXhwYW5kZWQ6IDIwMHB4OwogICAgICAgIC0tbWVudS13aWR0aC1jb2xsYXBzZWQ6IDU2cHg7CiAgICAgICAgLS10b29sdGlwLWJnOiAke20uYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgLS10b29sdGlwLWZnOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLm1haW5Db250YWluZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzY2NiIsIiNjY2MiKX07CiAgICAgICAgei1pbmRleDogJHtmaS5maXhlZC5hcHBCYXJ9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IHZhcigtLW1lbnUtd2lkdGgtZXhwYW5kZWQpOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsICdJbnRlcicsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjsKICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1haW5Db250YWluZXIgewogICAgICAgIHdpZHRoOiB2YXIoLS1tZW51LXdpZHRoLWNvbGxhcHNlZCk7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGNvbGxhcHNlIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMTJweDsKICAgICAgICB0b3A6IDI0cHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlNWU1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzM3MzczIiwiI2ExYTFhYSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogTG9nbyBTZWN0aW9uICovCiAgICAgIC5sb2dvU2VjdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTVlNSIsIiMxYTFhMWEiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmxvZ29TZWN0aW9uIC5sb2dvSWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAyMnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5sb2dvU2VjdGlvbiAubG9nb1RleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubG9nb1NlY3Rpb24gewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmxvZ29TZWN0aW9uIC5sb2dvVGV4dCB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTWlkZGxlIFNlY3Rpb24gKHNjcm9sbGFibGUpICovCiAgICAgIC5tZW51U2VjdGlvbiB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogNnB4OwogICAgICB9CgogICAgICAubWVudVNlY3Rpb246Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4yNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIil9OwogICAgICB9CgogICAgICAvKiBNZW51IEdyb3VwICovCiAgICAgIC5tZW51R3JvdXAgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQoKICAgICAgLm1lbnVHcm91cDpsYXN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4IDZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MzczNzMiLCIjNzM3MzczIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDMwcHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBIZWFkZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbWF4LWhlaWdodDogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLmdyb3VwVGFicyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVHcm91cCB7CiAgICAgICAgcGFkZGluZzogMCA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBJdGVtICovCiAgICAgIC50YWIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzUyNTI1MiIsIiNhM2EzYTMiKX07CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDQpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMyNjI2MjYiLCIjZTVlNWU1Iil9OwogICAgICB9CgogICAgICAudGFiOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMGEwYTBhIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMwYTBhMGEiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAudGFiIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIG9wYWNpdHk6IDAuODU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFiIC50YWJMYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIENvbGxhcHNlZCB0YWIgc3R5bGVzICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAxMHB4OwogICAgICAgIGdhcDogMDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC50YWIgLnRhYkxhYmVsIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC50YWIuc2VsZWN0ZWRUYWI6OmJlZm9yZSB7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC50YWItdG9vbHRpcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDEwMCU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmcpOwogICAgICAgIGNvbG9yOiB2YXIoLS10b29sdGlwLWZnKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpOwogICAgICB9CgogICAgICAudGFiLXRvb2x0aXA6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZyk7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAudGFiOmhvdmVyIC50YWItdG9vbHRpcCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxczsKICAgICAgfQoKICAgICAgLyogQmFkZ2Ugc3R5bGVzICovCiAgICAgIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmJhZGdlLmRlZmF1bHQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzZjNmNDYiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNkY2ZjZTciLCIjMTQ1MzJkIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzE2NjUzNCIsIiM0YWRlODAiKX07CiAgICAgIH0KCiAgICAgIC5iYWRnZS53YXJuaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZlZjNjNyIsIiM0NTFhMDMiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOTI0MDBlIiwiI2ZiYmYyNCIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZlZTJlMiIsIiM0NTBhMGEiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOTkxYjFiIiwiI2Y4NzE3MSIpfTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5iYWRnZSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogQm90dG9tIFNlY3Rpb24gKi8KICAgICAgLmJvdHRvbVNlY3Rpb24gewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5ib3R0b21TZWN0aW9uIHsKICAgICAgICBwYWRkaW5nOiA4cHggNHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgXz10aGlzLmdldEFsbFRhYnMoKTtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbkNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7Uz0+e1NyLm9wZW5Db250ZXh0TWVudVdpdGhPcHRpb25zKFMsW3tuYW1lOiJhcHAgc2V0dGluZ3MiLGFjdGlvbjphc3luYygpPT57fSxpY29uTmFtZToiZ2VhciJ9XSl9fT4KICAgICAgICAke3RoaXMubG9nb0ljb258fHRoaXMubG9nb1RleHQ/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ29TZWN0aW9uIj4KICAgICAgICAgICAgJHt0aGlzLmxvZ29JY29uP0NgPGRlZXMtaWNvbiBjbGFzcz0ibG9nb0ljb24iIC5pY29uPSIke3RoaXMubG9nb0ljb259Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke3RoaXMubG9nb1RleHQ/Q2A8c3BhbiBjbGFzcz0ibG9nb1RleHQiPiR7dGhpcy5sb2dvVGV4dH08L3NwYW4+YDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5tZW51R3JvdXBzLmxlbmd0aD4wP3RoaXMucmVuZGVyTWVudUdyb3VwcygpOnRoaXMucmVuZGVyTGVnYWN5VGFicygpfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuYm90dG9tVGFicy5sZW5ndGg+MD9DYAogICAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tU2VjdGlvbiI+CiAgICAgICAgICAgICR7dGhpcy5ib3R0b21UYWJzLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY29sbGFwc2UtdG9nZ2xlIiBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlQ29sbGFwc2UoKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249IiR7dGhpcy5jb2xsYXBzZWQ/Imx1Y2lkZTpjaGV2cm9uUmlnaHQiOiJsdWNpZGU6Y2hldnJvbkxlZnQifSI+PC9kZWVzLWljb24+CiAgICAgIDwvYnV0dG9uPgogICAgYH1yZW5kZXJNZW51R3JvdXBzKCl7cmV0dXJuIENgCiAgICAgICR7dGhpcy5tZW51R3JvdXBzLm1hcChfPT5DYAogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVHcm91cCI+CiAgICAgICAgICAke18ubmFtZT9DYDxkaXYgY2xhc3M9Imdyb3VwSGVhZGVyIj4ke18ubmFtZX08L2Rpdj5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBUYWJzIj4KICAgICAgICAgICAgJHtfLml0ZW1zLm1hcChTPT50aGlzLnJlbmRlclRhYihTKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYCl9CiAgICBgfXJlbmRlckxlZ2FjeVRhYnMoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncm91cFRhYnMiPgogICAgICAgICAgJHt0aGlzLnRhYnMubWFwKF89PnRoaXMucmVuZGVyVGFiKF8pKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYihfKXtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ0YWIgJHtfPT09dGhpcy5zZWxlY3RlZFRhYj8ic2VsZWN0ZWRUYWIiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLnVwZGF0ZVRhYihfKX19IgogICAgICA+CiAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHtfLmljb25OYW1lfHwiIn0iPjwvZGVlcy1pY29uPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWJMYWJlbCI+JHtfLmtleX08L3NwYW4+CiAgICAgICAgJHtfLmJhZGdlIT09dm9pZCAwP0NgCiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmFkZ2UgJHtfLmJhZGdlVmFyaWFudHx8ImRlZmF1bHQifSI+JHtfLmJhZGdlfTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItdG9vbHRpcCI+JHtfLmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1nZXRBbGxUYWJzKCl7cmV0dXJuIHRoaXMubWVudUdyb3Vwcy5sZW5ndGg+MD9bLi4udGhpcy5tZW51R3JvdXBzLmZsYXRNYXAoUz0+Uy5pdGVtcyksLi4udGhpcy5ib3R0b21UYWJzXTpbLi4udGhpcy50YWJzLC4uLnRoaXMuYm90dG9tVGFic119dXBkYXRlVGFiKF8pe3RoaXMuc2VsZWN0ZWRUYWI9Xyx0aGlzLnNlbGVjdGVkVGFiLmFjdGlvbigpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpffSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWZpcnN0VXBkYXRlZCgpe2xldCBfPXRoaXMuZ2V0QWxsVGFicygpO18ubGVuZ3RoPjAmJnRoaXMudXBkYXRlVGFiKF9bMF0pfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0bih0aGlzLE4pfXN0YXRpY3t0bihpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgUGxyLE5scj1wKCgpPT57eGUoKTtQbHI9KCk9PkNgCiAgPHN0eWxlPgogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6ICMxYTFhMWE7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgewogICAgICBmbGV4OiAxOwogICAgICBiYWNrZ3JvdW5kOiAjMGYwZjBmOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBjb2xvcjogI2EzYTNhMzsKICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgaDMgewogICAgICBjb2xvcjogI2ZhZmFmYTsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KICAgIC5kZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIC5zcGFjZXIgY29kZSB7CiAgICAgIGJhY2tncm91bmQ6ICMyNzI3MmE7CiAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgfQogICAgLmRlbW8tc2Vjb25kYXJ5bWVudS1jb250YWluZXIgLnNwYWNlciB1bCB7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLXNlY29uZGFyeW1lbnUtY29udGFpbmVyIj4KICAgIDxkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUKICAgICAgLmhlYWRpbmc9JHsiUHJvamVjdHMifQogICAgICAuZ3JvdXBzPSR7W3tuYW1lOiJOYXZpZ2F0aW9uIixpY29uTmFtZToibHVjaWRlOmNvbXBhc3MiLGl0ZW1zOlt7a2V5OiJEYXNoYm9hcmQiLGljb25OYW1lOiJsdWNpZGU6bGF5b3V0RGFzaGJvYXJkIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEYXNoYm9hcmQgY2xpY2tlZCIpLGJhZGdlOjMsYmFkZ2VWYXJpYW50OiJ3YXJuaW5nIn0se2tleToiUHJvamVjdHMiLGljb25OYW1lOiJsdWNpZGU6Zm9sZGVyIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJQcm9qZWN0cyBjbGlja2VkIiksYmFkZ2U6Im5ldyIsYmFkZ2VWYXJpYW50OiJzdWNjZXNzIn0se2tleToiQW5hbHl0aWNzIixpY29uTmFtZToibHVjaWRlOmJhckNoYXJ0MiIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIGNsaWNrZWQiKX1dfSx7bmFtZToiQWN0aW9ucyIsaWNvbk5hbWU6Imx1Y2lkZTp6YXAiLGl0ZW1zOlt7dHlwZToiYWN0aW9uIixrZXk6IkNyZWF0ZSBOZXciLGljb25OYW1lOiJsdWNpZGU6cGx1cyIsYWN0aW9uOigpPT5hbGVydCgiQ3JlYXRlIE5ldyBjbGlja2VkISIpfSx7dHlwZToiYWN0aW9uIixrZXk6IkltcG9ydCBEYXRhIixpY29uTmFtZToibHVjaWRlOnVwbG9hZCIsYWN0aW9uOigpPT5hbGVydCgiSW1wb3J0IERhdGEgY2xpY2tlZCEiKX0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiYWN0aW9uIixrZXk6IkRlbGV0ZSBBbGwiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIix2YXJpYW50OiJkYW5nZXIiLGNvbmZpcm1NZXNzYWdlOiJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGFsbCBpdGVtcz8iLGFjdGlvbjooKT0+YWxlcnQoIkRlbGV0ZWQhIil9XX0se25hbWU6IkZpbHRlcnMiLGljb25OYW1lOiJsdWNpZGU6ZmlsdGVyIixpdGVtczpbe3R5cGU6ImhlYWRlciIsbGFiZWw6IlN0YXR1cyJ9LHt0eXBlOiJmaWx0ZXIiLGtleToiU2hvdyBBY3RpdmUiLGljb25OYW1lOiJsdWNpZGU6Y2hlY2tDaXJjbGUiLGFjdGl2ZTohMCxvblRvZ2dsZTplPT5jb25zb2xlLmxvZygiU2hvdyBBY3RpdmU6IixlKX0se3R5cGU6ImZpbHRlciIsa2V5OiJTaG93IEFyY2hpdmVkIixpY29uTmFtZToibHVjaWRlOmFyY2hpdmUiLGFjdGl2ZTohMSxvblRvZ2dsZTplPT5jb25zb2xlLmxvZygiU2hvdyBBcmNoaXZlZDoiLGUpfSx7dHlwZToiZGl2aWRlciJ9LHt0eXBlOiJtdWx0aUZpbHRlciIsa2V5OiJDYXRlZ29yaWVzIixpY29uTmFtZToibHVjaWRlOnRhZyIsY29sbGFwc2VkOiExLG9wdGlvbnM6W3trZXk6ImZyb250ZW5kIixsYWJlbDoiRnJvbnRlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTptb25pdG9yIn0se2tleToiYmFja2VuZCIsbGFiZWw6IkJhY2tlbmQiLGNoZWNrZWQ6ITAsaWNvbk5hbWU6Imx1Y2lkZTpzZXJ2ZXIifSx7a2V5OiJkZXZvcHMiLGxhYmVsOiJEZXZPcHMiLGNoZWNrZWQ6ITEsaWNvbk5hbWU6Imx1Y2lkZTpjbG91ZCJ9LHtrZXk6ImRlc2lnbiIsbGFiZWw6IkRlc2lnbiIsY2hlY2tlZDohMSxpY29uTmFtZToibHVjaWRlOnBhbGV0dGUifV0sb25DaGFuZ2U6ZT0+Y29uc29sZS5sb2coIlNlbGVjdGVkIGNhdGVnb3JpZXM6IixlKX1dfSx7bmFtZToiUmVzb3VyY2VzIixpY29uTmFtZToibHVjaWRlOmJvb2tPcGVuIixjb2xsYXBzZWQ6ITAsaXRlbXM6W3t0eXBlOiJoZWFkZXIiLGxhYmVsOiJEb2N1bWVudGF0aW9uIn0se3R5cGU6ImxpbmsiLGtleToiQVBJIFJlZmVyZW5jZSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsaHJlZjoiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vZG9jcyJ9LHt0eXBlOiJsaW5rIixrZXk6IlVzZXIgR3VpZGUiLGljb25OYW1lOiJsdWNpZGU6Ym9vayIsaHJlZjoiaHR0cHM6Ly9kb2NzLmV4YW1wbGUuY29tL2d1aWRlIn0se3R5cGU6ImRpdmlkZXIifSx7dHlwZToiaGVhZGVyIixsYWJlbDoiU3VwcG9ydCJ9LHt0eXBlOiJsaW5rIixrZXk6IkhlbHAgQ2VudGVyIixpY29uTmFtZToibHVjaWRlOmhlbHBDaXJjbGUiLGhyZWY6Ii9oZWxwIixleHRlcm5hbDohMX0se3R5cGU6ImxpbmsiLGtleToiR2l0SHViIElzc3VlcyIsaWNvbk5hbWU6Imx1Y2lkZTpnaXRodWIiLGhyZWY6Imh0dHBzOi8vZ2l0aHViLmNvbS9leGFtcGxlL2lzc3VlcyJ9XX1dfQogICAgICBAaXRlbS1zZWxlY3Q9JHtlPT5jb25zb2xlLmxvZygiVGFiIHNlbGVjdGVkOiIsZS5kZXRhaWwpfQogICAgICBAYWN0aW9uLWNsaWNrPSR7ZT0+Y29uc29sZS5sb2coIkFjdGlvbiBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICBAZmlsdGVyLXRvZ2dsZT0ke2U9PmNvbnNvbGUubG9nKCJGaWx0ZXIgdG9nZ2xlZDoiLGUuZGV0YWlsKX0KICAgICAgQG11bHRpZmlsdGVyLWNoYW5nZT0ke2U9PmNvbnNvbGUubG9nKCJNdWx0aS1maWx0ZXIgY2hhbmdlZDoiLGUuZGV0YWlsKX0KICAgICAgQGxpbmstY2xpY2s9JHtlPT5jb25zb2xlLmxvZygiTGluayBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgPjwvZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51PgogICAgPGRpdiBjbGFzcz0ic3BhY2VyIj4KICAgICAgPGgzPlNlY29uZGFyeSBNZW51IERlbW88L2gzPgogICAgICA8cD5UaGlzIGRlbW8gc2hvd2Nhc2VzIGFsbCA4IGl0ZW0gdHlwZXM6PC9wPgogICAgICA8dWw+CiAgICAgICAgPGxpPjxjb2RlPnRhYjwvY29kZT4gLSBTZWxlY3RhYmxlIGl0ZW1zIChOYXZpZ2F0aW9uIGdyb3VwKTwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmFjdGlvbjwvY29kZT4gLSBCbHVlIGFjdGlvbnMgKEFjdGlvbnMgZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+YWN0aW9uPC9jb2RlPiB3aXRoIDxjb2RlPnZhcmlhbnQ6ICdkYW5nZXInPC9jb2RlPiAtIFJlZCBkYW5nZXIgYWN0aW9uPC9saT4KICAgICAgICA8bGk+PGNvZGU+ZmlsdGVyPC9jb2RlPiAtIENoZWNrYm94IHRvZ2dsZXMgKEZpbHRlcnMgZ3JvdXApPC9saT4KICAgICAgICA8bGk+PGNvZGU+bXVsdGlGaWx0ZXI8L2NvZGU+IC0gQ29sbGFwc2libGUgbXVsdGktc2VsZWN0IChDYXRlZ29yaWVzKTwvbGk+CiAgICAgICAgPGxpPjxjb2RlPmRpdmlkZXI8L2NvZGU+IC0gVmlzdWFsIHNlcGFyYXRvcnM8L2xpPgogICAgICAgIDxsaT48Y29kZT5oZWFkZXI8L2NvZGU+IC0gU2VjdGlvbiBsYWJlbHM8L2xpPgogICAgICAgIDxsaT48Y29kZT5saW5rPC9jb2RlPiAtIEV4dGVybmFsL2ludGVybmFsIGxpbmtzIChSZXNvdXJjZXMgZ3JvdXApPC9saT4KICAgICAgPC91bD4KICAgICAgPHA+VHJ5IHRoZSBjb2xsYXBzZSB0b2dnbGUgb24gdGhlIGxlZnQgZWRnZSE8L3A+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciB4YyxlYSxGbHIsTjZlPXAoKCk9Pnt3aSgpOyQ0KCk7TWkoKTtvcigpO3hlKCk7TmxyKCk7SmUoKTt4Yz1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGVhPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxGbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXTt2YXIgJD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpBcnJheX0pXSxkPVtqKHt0eXBlOkFycmF5fSldLHg9W2ooe3R5cGU6T2JqZWN0fSldLHk9W2ZlKCldLE89W2ZlKCldLEY9W2ZlKCldLFI9W2ooe3R5cGU6Qm9vbGVhbixyZWZsZWN0OiEwfSldLHhjKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+ImhlYWRpbmciaW4gRSxnZXQ6RT0+RS5oZWFkaW5nLHNldDooRSxxKT0+e0UuaGVhZGluZz1xfX0sbWV0YWRhdGE6VH0sbyxzKSx4Yyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+Imdyb3VwcyJpbiBFLGdldDpFPT5FLmdyb3VwcyxzZXQ6KEUscSk9PntFLmdyb3Vwcz1xfX0sbWV0YWRhdGE6VH0sYyx1KSx4Yyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGlvbk9wdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJzZWxlY3Rpb25PcHRpb25zImluIEUsZ2V0OkU9PkUuc2VsZWN0aW9uT3B0aW9ucyxzZXQ6KEUscSk9PntFLnNlbGVjdGlvbk9wdGlvbnM9cX19LG1ldGFkYXRhOlR9LGgsZikseGModGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZEl0ZW0iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJzZWxlY3RlZEl0ZW0iaW4gRSxnZXQ6RT0+RS5zZWxlY3RlZEl0ZW0sc2V0OihFLHEpPT57RS5zZWxlY3RlZEl0ZW09cX19LG1ldGFkYXRhOlR9LHYsYikseGModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWRHcm91cHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJjb2xsYXBzZWRHcm91cHMiaW4gRSxnZXQ6RT0+RS5jb2xsYXBzZWRHcm91cHMsc2V0OihFLHEpPT57RS5jb2xsYXBzZWRHcm91cHM9cX19LG1ldGFkYXRhOlR9LHcsaykseGModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb2xsYXBzZWRNdWx0aUZpbHRlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJjb2xsYXBzZWRNdWx0aUZpbHRlcnMiaW4gRSxnZXQ6RT0+RS5jb2xsYXBzZWRNdWx0aUZpbHRlcnMsc2V0OihFLHEpPT57RS5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9cX19LG1ldGFkYXRhOlR9LHosTSkseGModGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZW5kZXJDb3VudGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4icmVuZGVyQ291bnRlciJpbiBFLGdldDpFPT5FLnJlbmRlckNvdW50ZXIsc2V0OihFLHEpPT57RS5yZW5kZXJDb3VudGVyPXF9fSxtZXRhZGF0YTpUfSxELE4pLHhjKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4iY29sbGFwc2VkImluIEUsZ2V0OkU9PkUuY29sbGFwc2VkLHNldDooRSxxKT0+e0UuY29sbGFwc2VkPXF9fSxtZXRhZGF0YTpUfSxfLFMpLHhjKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOlR9LG51bGwsciksJD1pPXQudmFsdWUsVCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpUfSl9c3RhdGljIGRlbW89UGxyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQXBwIFVJIl07I2U9ZWEodGhpcyxvLCJNZW51Iik7Z2V0IGhlYWRpbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgaGVhZGluZyhUKXt0aGlzLiNlPVR9I3Q9KGVhKHRoaXMscyksZWEodGhpcyxjLFtdKSk7Z2V0IGdyb3Vwcygpe3JldHVybiB0aGlzLiN0fXNldCBncm91cHMoVCl7dGhpcy4jdD1UfSNyPShlYSh0aGlzLHUpLGVhKHRoaXMsaCxbXSkpO2dldCBzZWxlY3Rpb25PcHRpb25zKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGlvbk9wdGlvbnMoVCl7dGhpcy4jcj1UfSNpPShlYSh0aGlzLGYpLGVhKHRoaXMsdixudWxsKSk7Z2V0IHNlbGVjdGVkSXRlbSgpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZEl0ZW0oVCl7dGhpcy4jaT1UfSNhPShlYSh0aGlzLGIpLGVhKHRoaXMsdyxuZXcgU2V0KSk7Z2V0IGNvbGxhcHNlZEdyb3Vwcygpe3JldHVybiB0aGlzLiNhfXNldCBjb2xsYXBzZWRHcm91cHMoVCl7dGhpcy4jYT1UfSNuPShlYSh0aGlzLGspLGVhKHRoaXMseixuZXcgU2V0KSk7Z2V0IGNvbGxhcHNlZE11bHRpRmlsdGVycygpe3JldHVybiB0aGlzLiNufXNldCBjb2xsYXBzZWRNdWx0aUZpbHRlcnMoVCl7dGhpcy4jbj1UfSNvPShlYSh0aGlzLE0pLGVhKHRoaXMsRCwwKSk7Z2V0IHJlbmRlckNvdW50ZXIoKXtyZXR1cm4gdGhpcy4jb31zZXQgcmVuZGVyQ291bnRlcihUKXt0aGlzLiNvPVR9I3M9KGVhKHRoaXMsTiksZWEodGhpcyxfLCExKSk7Z2V0IGNvbGxhcHNlZCgpe3JldHVybiB0aGlzLiNzfXNldCBjb2xsYXBzZWQoVCl7dGhpcy4jcz1UfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIC0tc2lkZWJhci13aWR0aC1leHBhbmRlZDogMjQwcHg7CiAgICAgICAgLS1zaWRlYmFyLXdpZHRoLWNvbGxhcHNlZDogNTZweDsKICAgICAgICAtLXNpZGViYXItYmc6ICR7bS5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgICAtLXNpZGViYXItZmc6ICR7bS5iZFRoZW1lKCIjNTI1MjUyIiwiI2EzYTNhMyIpfTsKICAgICAgICAtLXNpZGViYXItZmctbXV0ZWQ6ICR7bS5iZFRoZW1lKCIjNzM3MzczIiwiIzczNzM3MyIpfTsKICAgICAgICAtLXNpZGViYXItZmctYWN0aXZlOiAke20uYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS1zaWRlYmFyLWJvcmRlcjogJHttLmJkVGhlbWUoIiNlNWU1ZTUiLCIjMWExYTFhIil9OwogICAgICAgIC0tc2lkZWJhci1ob3ZlcjogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIC0tc2lkZWJhci1hY3RpdmU6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSIpfTsKICAgICAgICAtLXNpZGViYXItYWNjZW50OiAke20uYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgICAgLS10b29sdGlwLWJnOiAke20uYmRUaGVtZSgiIzE4MTgxYiIsIiNmYWZhZmEiKX07CiAgICAgICAgLS10b29sdGlwLWZnOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMxODE4MWIiKX07CgogICAgICAgIC8qIEJhZGdlIGNvbG9ycyAqLwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1iZzogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIC0tYmFkZ2UtZGVmYXVsdC1mZzogJHttLmJkVGhlbWUoIiMzZjNmNDYiLCIjYTFhMWFhIil9OwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1iZzogJHttLmJkVGhlbWUoIiNkY2ZjZTciLCIjMTQ1MzJkIil9OwogICAgICAgIC0tYmFkZ2Utc3VjY2Vzcy1mZzogJHttLmJkVGhlbWUoIiMxNjY1MzQiLCIjNGFkZTgwIil9OwogICAgICAgIC0tYmFkZ2Utd2FybmluZy1iZzogJHttLmJkVGhlbWUoIiNmZWYzYzciLCIjNDUxYTAzIil9OwogICAgICAgIC0tYmFkZ2Utd2FybmluZy1mZzogJHttLmJkVGhlbWUoIiM5MjQwMGUiLCIjZmJiZjI0Iil9OwogICAgICAgIC0tYmFkZ2UtZXJyb3ItYmc6ICR7bS5iZFRoZW1lKCIjZmVlMmUyIiwiIzQ1MGEwYSIpfTsKICAgICAgICAtLWJhZGdlLWVycm9yLWZnOiAke20uYmRUaGVtZSgiIzk5MWIxYiIsIiNmODcxNzEiKX07CgogICAgICAgIC8qIEFjdGlvbiBjb2xvcnMgKi8KICAgICAgICAtLWFjdGlvbi1wcmltYXJ5OiAke20uYmRUaGVtZSgiIzI1NjNlYiIsIiMzYjgyZjYiKX07CiAgICAgICAgLS1hY3Rpb24tcHJpbWFyeS1ob3ZlcjogJHttLmJkVGhlbWUoIiMxZDRlZDgiLCIjNjBhNWZhIil9OwogICAgICAgIC0tYWN0aW9uLWRhbmdlcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZWY0NDQ0Iil9OwogICAgICAgIC0tYWN0aW9uLWRhbmdlci1ob3ZlcjogJHttLmJkVGhlbWUoIiNiOTFjMWMiLCIjZjg3MTcxIil9OwoKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoLWV4cGFuZGVkKTsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJnKTsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgJ0ludGVyJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBzYW5zLXNlcmlmOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSB7CiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgtY29sbGFwc2VkKTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIH0KCiAgICAgIC8qIEZsb2F0aW5nIGNvbGxhcHNlIHRvZ2dsZSBidXR0b24gKi8KICAgICAgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMTJweDsKICAgICAgICB0b3A6IDI0cHg7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlNWU1IiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzM3MzczIiwiI2ExYTFhYSIpfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjM2YzZjQ2Iil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzBhMGEwYSIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KDpob3ZlcikgLmNvbGxhcHNlLXRvZ2dsZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLmNvbGxhcHNlLXRvZ2dsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLyogSGVhZGVyIFNlY3Rpb24gKi8KICAgICAgLmhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgd2lkdGggMC4yNXMgZWFzZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5oZWFkZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmhlYWRlciAuaGVhZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTY3JvbGxhYmxlIE1lbnUgU2VjdGlvbiAqLwogICAgICAubWVudVNlY3Rpb24gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgICBwYWRkaW5nOiA4cHggMDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnVTZWN0aW9uOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51U2VjdGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMjUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSIpfTsKICAgICAgfQoKICAgICAgLyogTWVudSBHcm91cCAqLwogICAgICAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUdyb3VwIHsKICAgICAgICBwYWRkaW5nOiAwIDRweDsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZSwgbWF4LWhlaWdodCAwLjI1cyBlYXNlOwogICAgICAgIG1heC1oZWlnaHQ6IDQwcHg7CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlcjpob3ZlciB7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoInJnYmEoMTQwLCAxMjAsIDEwMCwgMC4wNikiLCJyZ2JhKDE4MCwgMTYwLCAxNDAsIDAuMDgpIil9OwogICAgICAgIHBhZGRpbmc6IDdweCAxMXB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXI6bm90KC5jb2xsYXBzZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgxNDAsIDEyMCwgMTAwLCAwLjA2KSIsInJnYmEoMTgwLCAxNjAsIDE0MCwgMC4wOCkiKX07CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBIZWFkZXIgLmdyb3VwVGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3ODcxNmMiLCIjYjVhOTlhIil9OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyIC5ncm91cFRpdGxlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzc4NzE2YyIsIiNiNWE5OWEiKX07CiAgICAgIH0KCiAgICAgIC5ncm91cEhlYWRlciAuY2hldnJvbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzg3MTZjIiwiI2I1YTk5YSIpfTsKICAgICAgfQoKICAgICAgLmdyb3VwSGVhZGVyLmNvbGxhcHNlZCAuY2hldnJvbiB7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsKICAgICAgfQoKICAgICAgLyogSGlkZSBncm91cCBoZWFkZXJzIHdoZW4gaG9yaXpvbnRhbGx5IGNvbGxhcHNlZCAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmdyb3VwSGVhZGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIEdyb3VwIEl0ZW1zIENvbnRhaW5lciAqLwogICAgICAuZ3JvdXBJdGVtcyB7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlLCBtYXJnaW4gMC4yNXMgZWFzZTsKICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgICB9CgogICAgICAuZ3JvdXBJdGVtcy5jb2xsYXBzZWQgewogICAgICAgIG1heC1oZWlnaHQ6IDA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBBbHdheXMgc2hvdyBpdGVtcyB3aGVuIGhvcml6b250YWxseSBjb2xsYXBzZWQgKHJlZ2FyZGxlc3Mgb2YgZ3JvdXAgY29sbGFwc2Ugc3RhdGUpICovCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAuZ3JvdXBJdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAvKiBNZW51IEl0ZW0gQmFzZSAqLwogICAgICAubWVudUl0ZW0gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIG1hcmdpbjogMnB4IDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1ob3Zlcik7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctYWN0aXZlKTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY3RpdmUpOwogICAgICB9CgogICAgICAubWVudUl0ZW0uZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWN0aXZlKTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubWVudUl0ZW0uc2VsZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAubWVudUl0ZW0gLml0ZW1MYWJlbCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHdpZHRoIDAuMjVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC8qIEFjdGlvbiBJdGVtIFN0eWxlcyAqLwogICAgICAubWVudUl0ZW0uYWN0aW9uLXByaW1hcnkgewogICAgICAgIGNvbG9yOiB2YXIoLS1hY3Rpb24tcHJpbWFyeSk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeTpob3ZlciB7CiAgICAgICAgY29sb3I6IHZhcigtLWFjdGlvbi1wcmltYXJ5LWhvdmVyKTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgzNywgOTksIDIzNSwgMC4wOCkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tcHJpbWFyeSBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlcik7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyOmhvdmVyIHsKICAgICAgICBjb2xvcjogdmFyKC0tYWN0aW9uLWRhbmdlci1ob3Zlcik7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMjIwLCAzOCwgMzgsIDAuMDgpIiwicmdiYSgyMzksIDY4LCA2OCwgMC4xMikiKX07CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5hY3Rpb24tZGFuZ2VyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLyogRmlsdGVyIEl0ZW0gU3R5bGVzICovCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgewogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLmZpbHRlciAuZmlsdGVyLWNoZWNrYm94IHsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoIiNkNGQ0ZDQiLCIjNTI1MjUyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveC5jaGVja2VkIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIgLmZpbHRlci1jaGVja2JveCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5tZW51SXRlbS5maWx0ZXIuYWN0aXZlIHsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAvKiBNdWx0aS1GaWx0ZXIgQ29udGFpbmVyICovCiAgICAgIC5tdWx0aUZpbHRlciB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wMikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIil9OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWhvdmVyKTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLWhlYWRlciAubXVsdGlGaWx0ZXItdGl0bGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1hY3RpdmUpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5tdWx0aUZpbHRlci10aXRsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIgLm11bHRpRmlsdGVyLWNvdW50IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6IHZhcigtLXNpZGViYXItZmctbXV0ZWQpOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWRlZmF1bHQtYmcpOwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItaGVhZGVyIC5jaGV2cm9uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1oZWFkZXIuY29sbGFwc2VkIC5jaGV2cm9uIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9ucyB7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXNpZGViYXItYm9yZGVyKTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgZWFzZSwgb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgbWF4LWhlaWdodDogNTAwcHg7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbnMuY29sbGFwc2VkIHsKICAgICAgICBtYXgtaGVpZ2h0OiAwOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZyk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItaG92ZXIpOwogICAgICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWZnLWFjdGl2ZSk7CiAgICAgIH0KCiAgICAgIC5tdWx0aUZpbHRlci1vcHRpb24gLm9wdGlvbi1jaGVja2JveCB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZDRkNGQ0IiwiIzUyNTI1MiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3guY2hlY2tlZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpOwogICAgICB9CgogICAgICAubXVsdGlGaWx0ZXItb3B0aW9uIC5vcHRpb24tY2hlY2tib3ggZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZmFmYWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLm11bHRpRmlsdGVyLW9wdGlvbiBkZWVzLWljb24ub3B0aW9uLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC8qIERpdmlkZXIgKi8KICAgICAgLm1lbnVEaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51RGl2aWRlciB7CiAgICAgICAgbWFyZ2luOiA4cHggNHB4OwogICAgICB9CgogICAgICAvKiBIZWFkZXIvTGFiZWwgKi8KICAgICAgLm1lbnVIZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTJweCA0cHggMTJweDsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1mZy1tdXRlZCk7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUhlYWRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogTGluayBJdGVtICovCiAgICAgIC5tZW51SXRlbS5saW5rIC5leHRlcm5hbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICB9CgogICAgICAvKiBDb2xsYXBzZWQgbWVudSBpdGVtIHN0eWxlcyAqLwogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtIC5pdGVtTGFiZWwgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLm1lbnVJdGVtLnNlbGVjdGVkOjpiZWZvcmUgewogICAgICAgIGxlZnQ6IC00cHg7CiAgICAgIH0KCiAgICAgIDpob3N0KFtjb2xsYXBzZWRdKSAubWVudUl0ZW0gLmZpbHRlci1jaGVja2JveCwKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbSAuZXh0ZXJuYWwtaWNvbiB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tdWx0aUZpbHRlciB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQoKICAgICAgLyogVG9vbHRpcCBmb3IgY29sbGFwc2VkIHN0YXRlICovCiAgICAgIC5pdGVtLXRvb2x0aXAgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAxMDAlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBtYXJnaW4tbGVmdDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tdG9vbHRpcC1mZyk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLml0ZW0tdG9vbHRpcDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTRweDsKICAgICAgICB0b3A6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS10b29sdGlwLWJnKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2NvbGxhcHNlZF0pIC5tZW51SXRlbTpob3ZlciAuaXRlbS10b29sdGlwIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDFzOwogICAgICB9CgogICAgICAvKiBCYWRnZSBTdHlsZXMgKi8KICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG1pbi13aWR0aDogMThweDsKICAgICAgICBoZWlnaHQ6IDE4cHg7CiAgICAgICAgcGFkZGluZzogMCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOXB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuYmFkZ2UuZGVmYXVsdCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2UtZGVmYXVsdC1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLWRlZmF1bHQtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uuc3VjY2VzcyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utc3VjY2Vzcy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXN1Y2Nlc3MtZmcpOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFkZ2Utd2FybmluZy1iZyk7CiAgICAgICAgY29sb3I6IHZhcigtLWJhZGdlLXdhcm5pbmctZmcpOwogICAgICB9CgogICAgICAuYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhZGdlLWVycm9yLWJnKTsKICAgICAgICBjb2xvcjogdmFyKC0tYmFkZ2UtZXJyb3ItZmcpOwogICAgICB9CgogICAgICA6aG9zdChbY29sbGFwc2VkXSkgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAvKiBMZWdhY3kgb3B0aW9ucyBjb250YWluZXIgKi8KICAgICAgLmxlZ2FjeU9wdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICB9CgogICAgICAvKiBEaXZpZGVyIChsZWdhY3kpICovCiAgICAgIC5kaXZpZGVyIHsKICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJvcmRlcik7CiAgICAgICAgbWFyZ2luOiA4cHggMTJweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lbnVTZWN0aW9uIj4KICAgICAgICAgICR7dGhpcy5ncm91cHMubGVuZ3RoPjA/dGhpcy5yZW5kZXJHcm91cHMoKTp0aGlzLnJlbmRlckxlZ2FjeU9wdGlvbnMoKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxidXR0b24gY2xhc3M9ImNvbGxhcHNlLXRvZ2dsZSIgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZUNvbGxhcHNlKCl9Ij4KICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMuY29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblJpZ2h0IjoibHVjaWRlOmNoZXZyb25MZWZ0In0iPjwvZGVlcy1pY29uPgogICAgICA8L2J1dHRvbj4KICAgIGB9cmVuZGVyR3JvdXBzKCl7cmV0dXJuIENgCiAgICAgICR7dGhpcy5ncm91cHMubWFwKFQ9PkNgCiAgICAgICAgPGRpdiBjbGFzcz0ibWVudUdyb3VwIj4KICAgICAgICAgIDxkaXYKICAgICAgICAgICAgY2xhc3M9Imdyb3VwSGVhZGVyICR7dGhpcy5jb2xsYXBzZWRHcm91cHMuaGFzKFQubmFtZSk/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMudG9nZ2xlR3JvdXAoVC5uYW1lKX0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJncm91cFRpdGxlIj4KICAgICAgICAgICAgICAke1QuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIC5pY29uPSIke3RoaXMubm9ybWFsaXplSWNvbihULmljb25OYW1lKX0iPjwvZGVlcy1pY29uPmA6IiJ9CiAgICAgICAgICAgICAgJHtULm5hbWV9CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0iY2hldnJvbiIgLmljb249IiR7Imx1Y2lkZTpjaGV2cm9uRG93biJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZ3JvdXBJdGVtcyAke3RoaXMuY29sbGFwc2VkR3JvdXBzLmhhcyhULm5hbWUpPyJjb2xsYXBzZWQiOiIifSI+CiAgICAgICAgICAgICR7VC5pdGVtcy5tYXAoRT0+dGhpcy5yZW5kZXJJdGVtKEUsVCkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIGApfQogICAgYH1yZW5kZXJJdGVtKFQsRSl7aWYoImhpZGRlbiJpbiBUJiZULmhpZGRlbilyZXR1cm4gQ2BgO3N3aXRjaCgidHlwZSJpbiBUP1QudHlwZToidGFiIil7Y2FzZSJhY3Rpb24iOnJldHVybiB0aGlzLnJlbmRlckFjdGlvbkl0ZW0oVCk7Y2FzZSJmaWx0ZXIiOnJldHVybiB0aGlzLnJlbmRlckZpbHRlckl0ZW0oVCk7Y2FzZSJtdWx0aUZpbHRlciI6cmV0dXJuIHRoaXMucmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFQpO2Nhc2UiZGl2aWRlciI6cmV0dXJuIHRoaXMucmVuZGVyRGl2aWRlcigpO2Nhc2UiaGVhZGVyIjpyZXR1cm4gdGhpcy5yZW5kZXJIZWFkZXIoVCk7Y2FzZSJsaW5rIjpyZXR1cm4gdGhpcy5yZW5kZXJMaW5rSXRlbShUKTtkZWZhdWx0OnJldHVybiB0aGlzLnJlbmRlclRhYkl0ZW0oVCxFKX19cmVuZGVyVGFiSXRlbShULEUpe2xldCBxPXRoaXMuc2VsZWN0ZWRJdGVtPy5rZXk9PT1ULmtleSxCPVQuZGlzYWJsZWQ9PT0hMDtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtZW51SXRlbSAke3E/InNlbGVjdGVkIjoiIn0gJHtCPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IUImJnRoaXMuc2VsZWN0VGFiSXRlbShULEUpfSIKICAgICAgICBAY29udGV4dG1lbnU9IiR7Rz0+dGhpcy5oYW5kbGVDb250ZXh0TWVudShHLFQpfSIKICAgICAgPgogICAgICAgICR7VC5pY29uTmFtZT9DYDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgICAke1QuYmFkZ2UhPT12b2lkIDA/Q2AKICAgICAgICAgIDxzcGFuIGNsYXNzPSJiYWRnZSAke1QuYmFkZ2VWYXJpYW50fHwiZGVmYXVsdCJ9Ij4ke1QuYmFkZ2V9PC9zcGFuPgogICAgICAgIGA6IiJ9CiAgICAgICAgPHNwYW4gY2xhc3M9Iml0ZW0tdG9vbHRpcCI+JHtULmtleX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25JdGVtKFQpe2xldCBFPVQudmFyaWFudHx8InByaW1hcnkiLHE9VC5kaXNhYmxlZD09PSEwO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGFjdGlvbi0ke0V9ICR7cT8iZGlzYWJsZWQiOiIifSIKICAgICAgICBAY2xpY2s9IiR7KCk9PiFxJiZ0aGlzLmhhbmRsZUFjdGlvbkNsaWNrKFQpfSIKICAgICAgPgogICAgICAgICR7VC5pY29uTmFtZT9DYDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbS10b29sdGlwIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbHRlckl0ZW0oVCl7bGV0IEU9VC5kaXNhYmxlZD09PSEwO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGZpbHRlciAke1QuYWN0aXZlPyJhY3RpdmUiOiIifSAke0U/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgQGNsaWNrPSIkeygpPT4hRSYmdGhpcy5oYW5kbGVGaWx0ZXJUb2dnbGUoVCl9IgogICAgICA+CiAgICAgICAgJHtULmljb25OYW1lP0NgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oVC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtTGFiZWwiPiR7VC5rZXl9PC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci1jaGVja2JveCAke1QuYWN0aXZlPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgJHtULmFjdGl2ZT9DYDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpjaGVjayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDwvZGl2PgogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7VC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTXVsdGlGaWx0ZXJJdGVtKFQpe2xldCBFPXRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzLmhhcyhULmtleSkscT1ULm9wdGlvbnMuZmlsdGVyKEI9PkIuY2hlY2tlZCkubGVuZ3RoO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJtdWx0aUZpbHRlciI+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLWhlYWRlciAke0U/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgQGNsaWNrPSIkeygpPT50aGlzLnRvZ2dsZU11bHRpRmlsdGVyKFQua2V5KX0iCiAgICAgICAgPgogICAgICAgICAgPHNwYW4gY2xhc3M9Im11bHRpRmlsdGVyLXRpdGxlIj4KICAgICAgICAgICAgJHtULmljb25OYW1lP0NgPGRlZXMtaWNvbiAuaWNvbj0iJHt0aGlzLm5vcm1hbGl6ZUljb24oVC5pY29uTmFtZSl9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgICAgICAke1Qua2V5fQogICAgICAgICAgPC9zcGFuPgogICAgICAgICAgJHtxPjA/Q2A8c3BhbiBjbGFzcz0ibXVsdGlGaWx0ZXItY291bnQiPiR7cX08L3NwYW4+YDoiIn0KICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImNoZXZyb24iIC5pY29uPSIkeyJsdWNpZGU6Y2hldnJvbkRvd24ifSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibXVsdGlGaWx0ZXItb3B0aW9ucyAke0U/ImNvbGxhcHNlZCI6IiJ9Ij4KICAgICAgICAgICR7VC5vcHRpb25zLm1hcChCPT5DYAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9Im11bHRpRmlsdGVyLW9wdGlvbiIKICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnRoaXMuaGFuZGxlTXVsdGlGaWx0ZXJPcHRpb25Ub2dnbGUoVCxCLmtleSl9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3B0aW9uLWNoZWNrYm94ICR7Qi5jaGVja2VkPyJjaGVja2VkIjoiIn0iPgogICAgICAgICAgICAgICAgJHtCLmNoZWNrZWQ/Q2A8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6Y2hlY2sifSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAke0IuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIGNsYXNzPSJvcHRpb24taWNvbiIgLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKEIuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICAgICAgICA8c3Bhbj4ke0IubGFiZWx9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRGl2aWRlcigpe3JldHVybiBDYDxkaXYgY2xhc3M9Im1lbnVEaXZpZGVyIj48L2Rpdj5gfXJlbmRlckhlYWRlcihUKXtyZXR1cm4gQ2A8ZGl2IGNsYXNzPSJtZW51SGVhZGVyIj4ke1QubGFiZWx9PC9kaXY+YH1yZW5kZXJMaW5rSXRlbShUKXtsZXQgRT1ULmV4dGVybmFsPz9ULmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpLHE9VC5kaXNhYmxlZD09PSEwO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9Im1lbnVJdGVtIGxpbmsgJHtxPyJkaXNhYmxlZCI6IiJ9IgogICAgICAgIEBjbGljaz0iJHsoKT0+IXEmJnRoaXMuaGFuZGxlTGlua0NsaWNrKFQpfSIKICAgICAgPgogICAgICAgICR7VC5pY29uTmFtZT9DYDxkZWVzLWljb24gLmljb249IiR7dGhpcy5ub3JtYWxpemVJY29uKFQuaWNvbk5hbWUpfSI+PC9kZWVzLWljb24+YDoiIn0KICAgICAgICA8c3BhbiBjbGFzcz0iaXRlbUxhYmVsIj4ke1Qua2V5fTwvc3Bhbj4KICAgICAgICAke0U/Q2A8ZGVlcy1pY29uIGNsYXNzPSJleHRlcm5hbC1pY29uIiAuaWNvbj0iJHsibHVjaWRlOmV4dGVybmFsTGluayJ9Ij48L2RlZXMtaWNvbj5gOiIifQogICAgICAgIDxzcGFuIGNsYXNzPSJpdGVtLXRvb2x0aXAiPiR7VC5rZXl9PC9zcGFuPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTGVnYWN5T3B0aW9ucygpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJsZWdhY3lPcHRpb25zIj4KICAgICAgICAke3RoaXMuc2VsZWN0aW9uT3B0aW9ucy5tYXAoVD0+e2lmKCJkaXZpZGVyImluIFQmJlQuZGl2aWRlcilyZXR1cm4gQ2A8ZGl2IGNsYXNzPSJkaXZpZGVyIj48L2Rpdj5gO2xldCBFPVQscT17a2V5OkUua2V5LGljb25OYW1lOkUuaWNvbk5hbWUsYWN0aW9uOkUuYWN0aW9uLGJhZGdlOkUuYmFkZ2UsYmFkZ2VWYXJpYW50OkUuYmFkZ2VWYXJpYW50fTtyZXR1cm4gdGhpcy5yZW5kZXJUYWJJdGVtKHEpfSl9CiAgICAgIDwvZGl2PgogICAgYH1ub3JtYWxpemVJY29uKFQpe3JldHVybiBULnN0YXJ0c1dpdGgoImx1Y2lkZToiKT9UOmBsdWNpZGU6JHtUfWB9dG9nZ2xlR3JvdXAoVCl7bGV0IEU9bmV3IFNldCh0aGlzLmNvbGxhcHNlZEdyb3Vwcyk7RS5oYXMoVCk/RS5kZWxldGUoVCk6RS5hZGQoVCksdGhpcy5jb2xsYXBzZWRHcm91cHM9RX10b2dnbGVNdWx0aUZpbHRlcihUKXtsZXQgRT1uZXcgU2V0KHRoaXMuY29sbGFwc2VkTXVsdGlGaWx0ZXJzKTtFLmhhcyhUKT9FLmRlbGV0ZShUKTpFLmFkZChUKSx0aGlzLmNvbGxhcHNlZE11bHRpRmlsdGVycz1FfXRvZ2dsZUNvbGxhcHNlKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDp7Y29sbGFwc2VkOnRoaXMuY29sbGFwc2VkfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXNlbGVjdFRhYkl0ZW0oVCxFKXt0aGlzLnNlbGVjdGVkSXRlbT1ULFQuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1zZWxlY3QiLHtkZXRhaWw6e2l0ZW06VCxncm91cDpFfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWFzeW5jIGhhbmRsZUFjdGlvbkNsaWNrKFQpe1QuY29uZmlybU1lc3NhZ2UmJiF3aW5kb3cuY29uZmlybShULmNvbmZpcm1NZXNzYWdlKXx8KGF3YWl0IFQuYWN0aW9uKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYWN0aW9uLWNsaWNrIix7ZGV0YWlsOntpdGVtOlR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfWhhbmRsZUZpbHRlclRvZ2dsZShUKXtsZXQgRT0hVC5hY3RpdmU7VC5hY3RpdmU9RSxULm9uVG9nZ2xlKEUpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbHRlci10b2dnbGUiLHtkZXRhaWw6e2l0ZW06VCxhY3RpdmU6RX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNdWx0aUZpbHRlck9wdGlvblRvZ2dsZShULEUpe2xldCBxPVQub3B0aW9ucy5maW5kKEc9Pkcua2V5PT09RSk7cSYmKHEuY2hlY2tlZD0hcS5jaGVja2VkKTtsZXQgQj1ULm9wdGlvbnMuZmlsdGVyKEc9PkcuY2hlY2tlZCkubWFwKEc9Pkcua2V5KTtULm9uQ2hhbmdlKEIpLHRoaXMucmVuZGVyQ291bnRlcisrLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm11bHRpZmlsdGVyLWNoYW5nZSIse2RldGFpbDp7aXRlbTpULHNlbGVjdGVkS2V5czpCfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUxpbmtDbGljayhUKXtULmV4dGVybmFsPz9ULmhyZWYuc3RhcnRzV2l0aCgiaHR0cCIpP3dpbmRvdy5vcGVuKFQuaHJlZiwiX2JsYW5rIiwibm9vcGVuZXIsbm9yZWZlcnJlciIpOndpbmRvdy5sb2NhdGlvbi5ocmVmPVQuaHJlZix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJsaW5rLWNsaWNrIix7ZGV0YWlsOntpdGVtOlR9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQ29udGV4dE1lbnUoVCxFKXtTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhULFt7bmFtZToiVmlldyBkZXRhaWxzIixhY3Rpb246YXN5bmMoKT0+e30saWNvbk5hbWU6Imx1Y2lkZTpleWUifSx7bmFtZToiRWRpdCIsYWN0aW9uOmFzeW5jKCk9Pnt9LGljb25OYW1lOiJsdWNpZGU6cGVuY2lsIn1dKX1hc3luYyBmaXJzdFVwZGF0ZWQoVCl7aWYoYXdhaXQgc3VwZXIuZmlyc3RVcGRhdGVkKFQpLHRoaXMuZ3JvdXBzLmxlbmd0aD4wKXtsZXQgRT1uZXcgU2V0LHE9bmV3IFNldDtpZih0aGlzLmdyb3Vwcy5mb3JFYWNoKEI9PntCLmNvbGxhcHNlZCYmRS5hZGQoQi5uYW1lKSxCLml0ZW1zLmZvckVhY2goRz0+e2lmKCJ0eXBlImluIEcmJkcudHlwZT09PSJtdWx0aUZpbHRlciIpe2xldCBlZT1HO2VlLmNvbGxhcHNlZCYmcS5hZGQoZWUua2V5KX19KX0pLHRoaXMuY29sbGFwc2VkR3JvdXBzPUUsdGhpcy5jb2xsYXBzZWRNdWx0aUZpbHRlcnM9cSwhdGhpcy5zZWxlY3RlZEl0ZW0pZm9yKGxldCBCIG9mIHRoaXMuZ3JvdXBzKWZvcihsZXQgRyBvZiBCLml0ZW1zKXtsZXQgZWU9InR5cGUiaW4gRz9HLnR5cGU6InRhYiI7aWYoZWU9PT0idGFiInx8ZWU9PT12b2lkIDApe2xldCBQPUc7aWYoIVAuZGlzYWJsZWQpe3RoaXMuc2VsZWN0VGFiSXRlbShQLEIpO3JldHVybn19fX1lbHNlIGlmKHRoaXMuc2VsZWN0aW9uT3B0aW9ucy5sZW5ndGg+MCl7bGV0IEU9dGhpcy5zZWxlY3Rpb25PcHRpb25zLmZpbmQocT0+ISgiZGl2aWRlciJpbiBxKSk7aWYoRSYmIXRoaXMuc2VsZWN0ZWRJdGVtKXtsZXQgcT17a2V5OkUua2V5LGljb25OYW1lOkUuaWNvbk5hbWUsYWN0aW9uOkUuYWN0aW9ufTt0aGlzLnNlbGVjdFRhYkl0ZW0ocSl9fX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZWEodGhpcyxTKX1zdGF0aWN7ZWEoaSxyKX19O3JldHVybiAkPWl9KSgpfSk7dmFyIGpkLEZvLGNzYSxkc2EsT2xyLFJscj1wKCgpPT57eGUoKTskNCgpO2pkPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sRm89ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGNzYT0oKCk9PntsZXQgZT1beWUoImRlbW8tY2xvc2VhYmxlLXRhYnMiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1bZmUoKV0samQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4idGFicyJpbiBmLGdldDpmPT5mLnRhYnMsc2V0OihmLHgpPT57Zi50YWJzPXh9fSxtZXRhZGF0YTpofSxvLHMpLGpkKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQ291bnRlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+InRhYkNvdW50ZXIiaW4gZixnZXQ6Zj0+Zi50YWJDb3VudGVyLHNldDooZix4KT0+e2YudGFiQ291bnRlcj14fX0sbWV0YWRhdGE6aH0sYyx1KSxqZChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfSNlPUZvKHRoaXMsbyxbe2tleToiTWFpbiIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJNYWluIGNsaWNrZWQiKX1dKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKGgpe3RoaXMuI2U9aH0jdD0oRm8odGhpcyxzKSxGbyh0aGlzLGMsMCkpO2dldCB0YWJDb3VudGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRhYkNvdW50ZXIoaCl7dGhpcy4jdD1ofXN0YXRpYyBzdHlsZXM9W29lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KICAgICAgLmNvbnRyb2xzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgIH0KICAgICAgYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMykiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiKX07CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO2FkZFRhYigpe3RoaXMudGFiQ291bnRlcisrO2xldCBoPWBEb2N1bWVudCAke3RoaXMudGFiQ291bnRlcn1gO3RoaXMudGFicz1bLi4udGhpcy50YWJzLHtrZXk6aCxpY29uTmFtZToibHVjaWRlOmZpbGUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coYCR7aH0gY2xpY2tlZGApLGNsb3NlYWJsZTohMCxvbkNsb3NlOigpPT50aGlzLnJlbW92ZVRhYihoKX1dfXJlbW92ZVRhYihoKXt0aGlzLnRhYnM9dGhpcy50YWJzLmZpbHRlcihmPT5mLmtleSE9PWgpfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgQHRhYi1jbG9zZT0ke2g9PnRoaXMucmVtb3ZlVGFiKGguZGV0YWlsLnRhYi5rZXkpfQogICAgICA+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLmFkZFRhYigpfT4rIEFkZCBOZXcgVGFiPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJpbmZvIj4KICAgICAgICBDbGljayB0aGUgWCBidXR0b24gb24gdGFicyB0byBjbG9zZSB0aGVtLiBUaGUgIk1haW4iIHRhYiBpcyBub3QgY2xvc2VhYmxlLgogICAgICAgIDxicj5DdXJyZW50IHRhYnM6ICR7dGhpcy50YWJzLmxlbmd0aH0KICAgICAgPC9kaXY+CiAgICBgfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxGbyh0aGlzLHUpfXN0YXRpY3tGbyhpLHIpfX07cmV0dXJuIGQ9aX0pKCksZHNhPSgoKT0+e2xldCBlPVt5ZSgiZGVtby1hdXRvaGlkZS10YWJzIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W107dmFyIHg9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB2PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ZlKCldLGw9W2ZlKCldLGQ9W2ZlKCldLGpkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InRhYnMiaW4gYixnZXQ6Yj0+Yi50YWJzLHNldDooYix5KT0+e2IudGFicz15fX0sbWV0YWRhdGE6dn0sbyxzKSxqZCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4iYXV0b0hpZGUiaW4gYixnZXQ6Yj0+Yi5hdXRvSGlkZSxzZXQ6KGIseSk9PntiLmF1dG9IaWRlPXl9fSxtZXRhZGF0YTp2fSxjLHUpLGpkKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4idGhyZXNob2xkImluIGIsZ2V0OmI9PmIudGhyZXNob2xkLHNldDooYix5KT0+e2IudGhyZXNob2xkPXl9fSxtZXRhZGF0YTp2fSxoLGYpLGpkKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwscikseD1pPXQudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9I2U9Rm8odGhpcyxvLFt7a2V5OiJUYWIgMSIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJUYWIgMSIpfSx7a2V5OiJUYWIgMiIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJUYWIgMiIpfV0pO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHRhYnModil7dGhpcy4jZT12fSN0PShGbyh0aGlzLHMpLEZvKHRoaXMsYywhMCkpO2dldCBhdXRvSGlkZSgpe3JldHVybiB0aGlzLiN0fXNldCBhdXRvSGlkZSh2KXt0aGlzLiN0PXZ9I3I9KEZvKHRoaXMsdSksRm8odGhpcyxoLDEpKTtnZXQgdGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRocmVzaG9sZCh2KXt0aGlzLiNyPXZ9c3RhdGljIHN0eWxlcz1bb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgICAudGFicy1jb250YWluZXIgewogICAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7CiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICB9CiAgICAgIC50YWJzLWNvbnRhaW5lciBkZWVzLWFwcHVpLXRhYnMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIC5wbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4xKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4zKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMykiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZWY0NDQ0IiwiI2Y4NzE3MSIpfTsKICAgICAgfQogICAgICBidXR0b24uZGFuZ2VyOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyMzksIDY4LCA2OCwgMC4yKSIsInJnYmEoMjM5LCA2OCwgNjgsIDAuMikiKX07CiAgICAgIH0KICAgICAgLmluZm8gewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMDIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjAyKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KICAgIGBdO3RhYkNvdW50ZXI9KEZvKHRoaXMsZiksMik7YWRkVGFiKCl7dGhpcy50YWJDb3VudGVyKyssdGhpcy50YWJzPVsuLi50aGlzLnRhYnMse2tleTpgVGFiICR7dGhpcy50YWJDb3VudGVyfWAsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKGBUYWIgJHt0aGlzLnRhYkNvdW50ZXJ9YCl9XX1yZW1vdmVMYXN0VGFiKCl7dGhpcy50YWJzLmxlbmd0aD4wJiYodGhpcy50YWJzPXRoaXMudGFicy5zbGljZSgwLC0xKSl9Y2xlYXJUYWJzKCl7dGhpcy50YWJzPVtdfXJlbmRlcigpe2xldCB2PXRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMudGhyZXNob2xkO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRhaW5lciI+CiAgICAgICAgJHt2P0NgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyIj5UYWJzIGhpZGRlbiAoJHt0aGlzLnRhYnMubGVuZ3RofSB0YWJzIOKJpCB0aHJlc2hvbGQgJHt0aGlzLnRocmVzaG9sZH0pPC9zcGFuPmA6Q2A8ZGVlcy1hcHB1aS10YWJzCiAgICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy5hdXRvSGlkZX0KICAgICAgICAgICAgICAuYXV0b0hpZGVUaHJlc2hvbGQ9JHt0aGlzLnRocmVzaG9sZH0KICAgICAgICAgICAgPjwvZGVlcy1hcHB1aS10YWJzPmB9CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5hZGRUYWIoKX0+KyBBZGQgVGFiPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZGFuZ2VyIiBAY2xpY2s9JHsoKT0+dGhpcy5yZW1vdmVMYXN0VGFiKCl9Pi0gUmVtb3ZlIFRhYjwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImRhbmdlciIgQGNsaWNrPSR7KCk9PnRoaXMuY2xlYXJUYWJzKCl9PkNsZWFyIEFsbDwvYnV0dG9uPgogICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9Pnt0aGlzLnRocmVzaG9sZD0wfX0+VGhyZXNob2xkOiAwPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHsoKT0+e3RoaXMudGhyZXNob2xkPTF9fT5UaHJlc2hvbGQ6IDE8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT57dGhpcy50aHJlc2hvbGQ9Mn19PlRocmVzaG9sZDogMjwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgQXV0by1oaWRlOiAke3RoaXMuYXV0b0hpZGU/Ik9OIjoiT0ZGIn0gfCBUaHJlc2hvbGQ6ICR7dGhpcy50aHJlc2hvbGR9IHwgVGFiczogJHt0aGlzLnRhYnMubGVuZ3RofQogICAgICAgIDxicj5UYWJzIHdpbGwgaGlkZSB3aGVuIGNvdW50IOKJpCB0aHJlc2hvbGQuCiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7Rm8oaSxyKX19O3JldHVybiB4PWl9KSgpLE9scj0oKT0+e2xldCBlPVt7a2V5OiJIb21lIixpY29uTmFtZToibHVjaWRlOmhvbWUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkhvbWUgY2xpY2tlZCIpfSx7a2V5OiJBbmFseXRpY3MgRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxpbmVDaGFydCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQW5hbHl0aWNzIGNsaWNrZWQiKX0se2tleToiUmVwb3J0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlVGV4dCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUmVwb3J0cyBjbGlja2VkIil9LHtrZXk6IlVzZXIgU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIlNldHRpbmdzIGNsaWNrZWQiKX0se2tleToiSGVscCIsaWNvbk5hbWU6Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJIZWxwIGNsaWNrZWQiKX1dLHQ9W3trZXk6IlByb2ZpbGUiLGljb25OYW1lOiJsdWNpZGU6dXNlciIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiUHJvZmlsZSBjbGlja2VkIil9LHtrZXk6IlNlY3VyaXR5IixpY29uTmFtZToibHVjaWRlOnNoaWVsZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiU2VjdXJpdHkgY2xpY2tlZCIpfSx7a2V5OiJOb3RpZmljYXRpb25zIixpY29uTmFtZToibHVjaWRlOmJlbGwiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIk5vdGlmaWNhdGlvbnMgY2xpY2tlZCIpfSx7a2V5OiJJbnRlZ3JhdGlvbnMiLGljb25OYW1lOiJsdWNpZGU6bGluayIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiSW50ZWdyYXRpb25zIGNsaWNrZWQiKX0se2tleToiQWR2YW5jZWQiLGljb25OYW1lOiJsdWNpZGU6Y29kZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQWR2YW5jZWQgY2xpY2tlZCIpfV0scj1be2tleToiQWxsIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJBbGwgY2xpY2tlZCIpfSx7a2V5OiJBY3RpdmUiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFjdGl2ZSBjbGlja2VkIil9LHtrZXk6IkNvbXBsZXRlZCIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiQ29tcGxldGVkIGNsaWNrZWQiKX0se2tleToiQXJjaGl2ZWQiLGFjdGlvbjooKT0+Y29uc29sZS5sb2coIkFyY2hpdmVkIGNsaWNrZWQiKX1dLGk9YT0+Q2AKICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDI0cHg7IGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07Ij4KICAgICAgJHthfQogICAgPC9kaXY+CiAgYDtyZXR1cm4gQ2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICB9CgogICAgICAuc2VjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICB9CgogICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAudHdvLWNvbHVtbiB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwMHB4IDFmcjsKICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0OwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ib3Jpem9udGFsIFRhYnMgd2l0aCBBbmltYXRlZCBJbmRpY2F0b3I8L2Rpdj4KICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJzPSR7ZX0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgJHtpKCJTZWxlY3QgYSB0YWIgdG8gc2VlIHRoZSBzbW9vdGggc2xpZGluZyBhbmltYXRpb24gb2YgdGhlIGluZGljYXRvci4gVGhlIGluZGljYXRvciBhdXRvbWF0aWNhbGx5IGFkanVzdHMgaXRzIHdpZHRoIHRvIG1hdGNoIHRoZSB0YWIgY29udGVudCB3aXRoIG1pbmltYWwgcGFkZGluZy4iKX0KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DbG9zZWFibGUgVGFicyAoQnJvd3Nlci1zdHlsZSk8L2Rpdj4KICAgICAgICA8ZGVtby1jbG9zZWFibGUtdGFicz48L2RlbW8tY2xvc2VhYmxlLXRhYnM+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXV0by1oaWRlIFRhYnM8L2Rpdj4KICAgICAgICA8ZGVtby1hdXRvaGlkZS10YWJzPjwvZGVtby1hdXRvaGlkZS10YWJzPgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlZlcnRpY2FsIFRhYnMgTGF5b3V0PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idHdvLWNvbHVtbiI+CiAgICAgICAgICA8ZGVlcy1hcHB1aS10YWJzIC50YWJTdHlsZT0keyJ2ZXJ0aWNhbCJ9IC50YWJzPSR7dH0+PC9kZWVzLWFwcHVpLXRhYnM+CiAgICAgICAgICAke2koIlZlcnRpY2FsIHRhYnMgd29yayBncmVhdCBmb3Igc2V0dGluZ3MgcGFnZXMgYW5kIG5hdmlnYXRpb24gbWVudXMuIFRoZSBhbmltYXRlZCBpbmRpY2F0b3Igc21vb3RobHkgdHJhbnNpdGlvbnMgYmV0d2VlbiBzZWxlY3Rpb25zLiIpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPldpdGhvdXQgSW5kaWNhdG9yPC9kaXY+CiAgICAgICAgPGRlZXMtYXBwdWktdGFicyAuc2hvd1RhYkluZGljYXRvcj0keyExfSAudGFicz0ke3J9PjwvZGVlcy1hcHB1aS10YWJzPgogICAgICAgICR7aSgiVGFicyBjYW4gYWxzbyBiZSB1c2VkIHdpdGhvdXQgdGhlIGFuaW1hdGVkIGluZGljYXRvciBieSBzZXR0aW5nIHNob3dUYWJJbmRpY2F0b3IgdG8gZmFsc2UuIil9CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH19KTt2YXIgeWMsdGEsQmxyLEY2ZT1wKCgpPT57JDQoKTt4ZSgpO0t0KCk7UmxyKCk7SmUoKTt5Yz1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LHRhPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxCbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWFwcHVpLXRhYnMiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXTt2YXIgJD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IFQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpBcnJheX0pXSxsPVtqKHt0eXBlOk9iamVjdH0pXSxkPVtqKHt0eXBlOkJvb2xlYW59KV0seD1baih7dHlwZTpTdHJpbmd9KV0seT1baih7dHlwZTpCb29sZWFufSldLE89W2ooe3R5cGU6TnVtYmVyfSldLEY9W2ZlKCldLFI9W2ZlKCldLHljKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+InRhYnMiaW4gRSxnZXQ6RT0+RS50YWJzLHNldDooRSxxKT0+e0UudGFicz1xfX0sbWV0YWRhdGE6VH0sbyxzKSx5Yyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4ic2VsZWN0ZWRUYWIiaW4gRSxnZXQ6RT0+RS5zZWxlY3RlZFRhYixzZXQ6KEUscSk9PntFLnNlbGVjdGVkVGFiPXF9fSxtZXRhZGF0YTpUfSxjLHUpLHljKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1RhYkluZGljYXRvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+InNob3dUYWJJbmRpY2F0b3IiaW4gRSxnZXQ6RT0+RS5zaG93VGFiSW5kaWNhdG9yLHNldDooRSxxKT0+e0Uuc2hvd1RhYkluZGljYXRvcj1xfX0sbWV0YWRhdGE6VH0saCxmKSx5Yyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYlN0eWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4idGFiU3R5bGUiaW4gRSxnZXQ6RT0+RS50YWJTdHlsZSxzZXQ6KEUscSk9PntFLnRhYlN0eWxlPXF9fSxtZXRhZGF0YTpUfSx2LGIpLHljKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b0hpZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJhdXRvSGlkZSJpbiBFLGdldDpFPT5FLmF1dG9IaWRlLHNldDooRSxxKT0+e0UuYXV0b0hpZGU9cX19LG1ldGFkYXRhOlR9LHcsaykseWModGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+ImF1dG9IaWRlVGhyZXNob2xkImluIEUsZ2V0OkU9PkUuYXV0b0hpZGVUaHJlc2hvbGQsc2V0OihFLHEpPT57RS5hdXRvSGlkZVRocmVzaG9sZD1xfX0sbWV0YWRhdGE6VH0seixNKSx5Yyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNhblNjcm9sbExlZnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJjYW5TY3JvbGxMZWZ0ImluIEUsZ2V0OkU9PkUuY2FuU2Nyb2xsTGVmdCxzZXQ6KEUscSk9PntFLmNhblNjcm9sbExlZnQ9cX19LG1ldGFkYXRhOlR9LEQsTikseWModGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjYW5TY3JvbGxSaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+ImNhblNjcm9sbFJpZ2h0ImluIEUsZ2V0OkU9PkUuY2FuU2Nyb2xsUmlnaHQsc2V0OihFLHEpPT57RS5jYW5TY3JvbGxSaWdodD1xfX0sbWV0YWRhdGE6VH0sXyxTKSx5YyhudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpUfSxudWxsLHIpLCQ9aT10LnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPU9scjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPXRhKHRoaXMsbyxbXSk7Z2V0IHRhYnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGFicyhUKXt0aGlzLiNlPVR9I3Q9KHRhKHRoaXMscyksdGEodGhpcyxjLG51bGwpKTtnZXQgc2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2VsZWN0ZWRUYWIoVCl7dGhpcy4jdD1UfSNyPSh0YSh0aGlzLHUpLHRhKHRoaXMsaCwhMCkpO2dldCBzaG93VGFiSW5kaWNhdG9yKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dUYWJJbmRpY2F0b3IoVCl7dGhpcy4jcj1UfSNpPSh0YSh0aGlzLGYpLHRhKHRoaXMsdiwiaG9yaXpvbnRhbCIpKTtnZXQgdGFiU3R5bGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGFiU3R5bGUoVCl7dGhpcy4jaT1UfSNhPSh0YSh0aGlzLGIpLHRhKHRoaXMsdywhMSkpO2dldCBhdXRvSGlkZSgpe3JldHVybiB0aGlzLiNhfXNldCBhdXRvSGlkZShUKXt0aGlzLiNhPVR9I249KHRhKHRoaXMsayksdGEodGhpcyx6LDApKTtnZXQgYXV0b0hpZGVUaHJlc2hvbGQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgYXV0b0hpZGVUaHJlc2hvbGQoVCl7dGhpcy4jbj1UfSNvPSh0YSh0aGlzLE0pLHRhKHRoaXMsRCwhMSkpO2dldCBjYW5TY3JvbGxMZWZ0KCl7cmV0dXJuIHRoaXMuI299c2V0IGNhblNjcm9sbExlZnQoVCl7dGhpcy4jbz1UfSNzPSh0YSh0aGlzLE4pLHRhKHRoaXMsXywhMSkpO2dldCBjYW5TY3JvbGxSaWdodCgpe3JldHVybiB0aGlzLiNzfXNldCBjYW5TY3JvbGxSaWdodChUKXt0aGlzLiNzPVR9cmVzaXplT2JzZXJ2ZXI9KHRhKHRoaXMsUyksbnVsbCk7c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyLmhvcml6b250YWwtd3JhcHBlciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAvKiBTY3JvbGwgZmFkZSBpbmRpY2F0b3JzICovCiAgICAgIC5zY3JvbGwtZmFkZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDFweDsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAuc2Nyb2xsLWZhZGUtbGVmdCB7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsCiAgICAgICAgICAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke20uYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS1yaWdodCB7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsCiAgICAgICAgICAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxNjE2MTYiKX0gMCUsCiAgICAgICAgICAke20uYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwKSIsInJnYmEoMjIsMjIsMjIsMCkiKX0gMTAwJSk7CiAgICAgIH0KCiAgICAgIC5zY3JvbGwtZmFkZS52aXNpYmxlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC8qIFNob3cgc2Nyb2xsYmFyIG9uIGhvdmVyICovCiAgICAgIC50YWJzLXdyYXBwZXI6aG92ZXIgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCB7CiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiAke20uYmRUaGVtZSgicmdiYSgwLDAsMCwwLjIpIiwicmdiYSgyNTUsMjU1LDI1NSwwLjIpIil9IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0cHg7CiAgICAgIH0KCiAgICAgIC50YWJzQ29udGFpbmVyLmhvcml6b250YWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4yKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnRhYnMtd3JhcHBlcjpob3ZlciAudGFic0NvbnRhaW5lci5ob3Jpem9udGFsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4zNSkiLCJyZ2JhKDI1NSwyNTUsMjU1LDAuMzUpIil9OwogICAgICB9CgogICAgICAudGFic0NvbnRhaW5lci52ZXJ0aWNhbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzE4MTgxYiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC50YWIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB6LWluZGV4OiAyOwogICAgICB9CgogICAgICAuaG9yaXpvbnRhbCAudGFiIHsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwOwogICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmhvcml6b250YWwgLnRhYjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAtMnB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiIC50YWItY29udGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsIC50YWIgewogICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAudGFiOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjAzKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMykiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5ob3Jpem9udGFsIC50YWI6aG92ZXI6OmFmdGVyLAogICAgICAuaG9yaXpvbnRhbCAudGFiOmhvdmVyICsgLnRhYjo6YWZ0ZXIgewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgIH0KCiAgICAgIC52ZXJ0aWNhbCAudGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyNDQsIDI0NCwgMjQ1LCAwLjUpIiwicmdiYSgzOSwgMzksIDQyLCAwLjUpIil9OwogICAgICB9CgogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaG9yaXpvbnRhbCAudGFiLnNlbGVjdGVkVGFiOjphZnRlciwKICAgICAgLmhvcml6b250YWwgLnRhYi5zZWxlY3RlZFRhYiArIC50YWI6OmFmdGVyIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICB9CgogICAgICAudmVydGljYWwgLnRhYi5zZWxlY3RlZFRhYiB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgfQoKICAgICAgLnRhYiBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgfQoKICAgICAgLnRhYkluZGljYXRvciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQogICAgICAKICAgICAgLnRhYkluZGljYXRvci5uby10cmFuc2l0aW9uIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lOwogICAgICB9CgogICAgICAudGFicy13cmFwcGVyIC50YWJJbmRpY2F0b3IgewogICAgICAgIGhlaWdodDogM3B4OwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYkluZGljYXRvciB7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgICB6LWluZGV4OiAxOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDgpOwogICAgICB9CgogICAgICAvKiBDbG9zZSBidXR0b24gKi8KICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTZweDsKICAgICAgICBoZWlnaHQ6IDE2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgb3BhY2l0eTogMC40OwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwwLDAsMC4xKSIsInJnYmEoMjU1LDI1NSwyNTUsMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZjg3MTcxIil9OwogICAgICB9CgogICAgICAudGFiLnNlbGVjdGVkVGFiIC50YWItY2xvc2UgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnRhYi5zZWxlY3RlZFRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KCiAgICAgIC50YWIuc2VsZWN0ZWRUYWIgLnRhYi1jbG9zZTpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuYXV0b0hpZGUmJnRoaXMudGFicy5sZW5ndGg8PXRoaXMuYXV0b0hpZGVUaHJlc2hvbGQ/Q2BgOkNgCiAgICAgICR7dGhpcy5yZW5kZXJUYWJzV3JhcHBlcigpfQogICAgYH1yZW5kZXJUYWJzV3JhcHBlcigpe2xldCBUPXRoaXMudGFiU3R5bGU9PT0iaG9yaXpvbnRhbCIsRT1UPyJ0YWJzLXdyYXBwZXIgaG9yaXpvbnRhbC13cmFwcGVyIjoidmVydGljYWwtd3JhcHBlciIscT1gdGFic0NvbnRhaW5lciAke3RoaXMudGFiU3R5bGV9YDtyZXR1cm4gVD9DYAogICAgICAgIDxkaXYgY2xhc3M9IiR7RX0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWZhZGUgc2Nyb2xsLWZhZGUtbGVmdCAke3RoaXMuY2FuU2Nyb2xsTGVmdD8idmlzaWJsZSI6IiJ9Ij48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9IiR7cX0iIEBzY3JvbGw9JHt0aGlzLmhhbmRsZVNjcm9sbH0+CiAgICAgICAgICAgICR7dGhpcy50YWJzLm1hcChCPT50aGlzLnJlbmRlclRhYihCLFQpKX0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsLWZhZGUgc2Nyb2xsLWZhZGUtcmlnaHQgJHt0aGlzLmNhblNjcm9sbFJpZ2h0PyJ2aXNpYmxlIjoiIn0iPjwvZGl2PgogICAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/Q2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6Q2AKICAgICAgPGRpdiBjbGFzcz0iJHtFfSI+CiAgICAgICAgPGRpdiBjbGFzcz0iJHtxfSI+CiAgICAgICAgICAke3RoaXMudGFicy5tYXAoQj0+dGhpcy5yZW5kZXJUYWIoQixUKSl9CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHt0aGlzLnNob3dUYWJJbmRpY2F0b3I/Q2A8ZGl2IGNsYXNzPSJ0YWJJbmRpY2F0b3IiPjwvZGl2PmA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJUYWIoVCxFKXtsZXQgQj1gdGFiICR7VD09PXRoaXMuc2VsZWN0ZWRUYWI/InNlbGVjdGVkVGFiIjoiIn1gLEc9VC5jbG9zZWFibGU/Q2AKICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSIke1A9PnRoaXMuY2xvc2VUYWIoUCxUKX0iPgogICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyI+PC9kZWVzLWljb24+CiAgICAgIDwvc3Bhbj4KICAgIGA6IiIsZWU9RT9DYAogICAgICA8c3BhbiBjbGFzcz0idGFiLWNvbnRlbnQiPgogICAgICAgICR7dGhpcy5yZW5kZXJUYWJJY29uKFQpfQogICAgICAgICR7VC5rZXl9CiAgICAgIDwvc3Bhbj4KICAgICAgJHtHfQogICAgYDpDYAogICAgICAke3RoaXMucmVuZGVyVGFiSWNvbihUKX0KICAgICAgJHtULmtleX0KICAgICAgJHtHfQogICAgYDtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSIke0J9IgogICAgICAgIEBjbGljaz0iJHsoKT0+dGhpcy5zZWxlY3RUYWIoVCl9IgogICAgICA+CiAgICAgICAgJHtlZX0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclRhYkljb24oVCl7cmV0dXJuIFQuaWNvbk5hbWU/Q2A8ZGVlcy1pY29uIC5pY29uPSR7VC5pY29uTmFtZX0+PC9kZWVzLWljb24+YDoiIn1zZWxlY3RUYWIoVCl7dGhpcy5zZWxlY3RlZFRhYj1ULFQuYWN0aW9uKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5zY3JvbGxUYWJJbnRvVmlldyhUKX0pLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6e3RhYjpUfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNsb3NlVGFiKFQsRSl7VC5zdG9wUHJvcGFnYXRpb24oKSxFLm9uQ2xvc2UmJkUub25DbG9zZSgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZSIse2RldGFpbDp7dGFiOkV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Zmlyc3RVcGRhdGVkKCl7dGhpcy50YWJzJiZ0aGlzLnRhYnMubGVuZ3RoPjAmJnRoaXMuc2VsZWN0VGFiKHRoaXMudGFic1swXSksdGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy51cGRhdGVTY3JvbGxTdGF0ZSgpfSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpfXNldHVwUmVzaXplT2JzZXJ2ZXIoKXtpZih0aGlzLnRhYlN0eWxlIT09Imhvcml6b250YWwiKXJldHVybjt0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMudXBkYXRlU2Nyb2xsU3RhdGUoKX0pO2xldCBUPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpO1QmJnRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShUKX1oYW5kbGVTY3JvbGw9KCk9Pnt0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9O3VwZGF0ZVNjcm9sbFN0YXRlKCl7bGV0IFQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFic0NvbnRhaW5lci5ob3Jpem9udGFsIik7aWYoIVQpcmV0dXJuO2xldCBFPVQuc2Nyb2xsTGVmdCxxPVQuc2Nyb2xsV2lkdGgsQj1ULmNsaWVudFdpZHRoLEc9Mjt0aGlzLmNhblNjcm9sbExlZnQ9RT5HLHRoaXMuY2FuU2Nyb2xsUmlnaHQ9RTxxLUItR31zY3JvbGxUYWJJbnRvVmlldyhUKXtpZih0aGlzLnRhYlN0eWxlIT09Imhvcml6b250YWwiKXJldHVybjtsZXQgRT10aGlzLnRhYnMuaW5kZXhPZihUKTtpZihFPT09LTEpcmV0dXJuO2xldCBxPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhYnNDb250YWluZXIuaG9yaXpvbnRhbCIpLEI9cT8ucXVlcnlTZWxlY3RvcihgLnRhYjpudGgtY2hpbGQoJHtFKzF9KWApO2lmKEImJnEpe2xldCBHPXEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZWU9Qi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlZS5sZWZ0Pj1HLmxlZnQmJmVlLnJpZ2h0PD1HLnJpZ2h0fHxCLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjoic21vb3RoIixibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pfX1hc3luYyB1cGRhdGVkKFQpe3N1cGVyLnVwZGF0ZWQoVCksVC5oYXMoInRhYnMiKSYmdGhpcy50YWJzJiZ0aGlzLnRhYnMubGVuZ3RoPjAmJiF0aGlzLnNlbGVjdGVkVGFiJiZ0aGlzLnNlbGVjdFRhYih0aGlzLnRhYnNbMF0pLChULmhhcygic2VsZWN0ZWRUYWIiKXx8VC5oYXMoInRhYnMiKSkmJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLCF0aGlzLmluZGljYXRvckluaXRpYWxpemVkJiZkb2N1bWVudC5mb250cyYmYXdhaXQgZG9jdW1lbnQuZm9udHMucmVhZHkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy51cGRhdGVUYWJJbmRpY2F0b3IoKSx0aGlzLnVwZGF0ZVNjcm9sbFN0YXRlKCl9KSl9aW5kaWNhdG9ySW5pdGlhbGl6ZWQ9ITE7dXBkYXRlVGFiSW5kaWNhdG9yKCl7aWYoIXRoaXMuc2hvdWxkU2hvd0luZGljYXRvcigpKXJldHVybjtsZXQgVD10aGlzLmdldFNlbGVjdGVkVGFiRWxlbWVudCgpO2lmKCFUKXJldHVybjtsZXQgRT10aGlzLmdldEluZGljYXRvckVsZW1lbnQoKTtFJiYodGhpcy5oYW5kbGVJbml0aWFsVHJhbnNpdGlvbihFKSx0aGlzLnRhYlN0eWxlPT09Imhvcml6b250YWwiP3RoaXMudXBkYXRlSG9yaXpvbnRhbEluZGljYXRvcihFLFQpOnRoaXMudXBkYXRlVmVydGljYWxJbmRpY2F0b3IoRSxUKSxFLnN0eWxlLm9wYWNpdHk9IjEiKX1zaG91bGRTaG93SW5kaWNhdG9yKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWImJnRoaXMuc2hvd1RhYkluZGljYXRvciYmdGhpcy50YWJzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUYWIpfWdldFNlbGVjdGVkVGFiRWxlbWVudCgpe2xldCBUPXRoaXMudGFicy5pbmRleE9mKHRoaXMuc2VsZWN0ZWRUYWIpLHE9dGhpcy50YWJTdHlsZT09PSJob3Jpem9udGFsIj9gLnRhYnMtd3JhcHBlciAudGFic0NvbnRhaW5lciAudGFiOm50aC1jaGlsZCgke1QrMX0pYDpgLnZlcnRpY2FsLXdyYXBwZXIgLnRhYnNDb250YWluZXIgLnRhYjpudGgtY2hpbGQoJHtUKzF9KWA7cmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKHEpfWdldEluZGljYXRvckVsZW1lbnQoKXtyZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50YWJJbmRpY2F0b3IiKX1oYW5kbGVJbml0aWFsVHJhbnNpdGlvbihUKXt0aGlzLmluZGljYXRvckluaXRpYWxpemVkfHwoVC5jbGFzc0xpc3QuYWRkKCJuby10cmFuc2l0aW9uIiksdGhpcy5pbmRpY2F0b3JJbml0aWFsaXplZD0hMCxzZXRUaW1lb3V0KCgpPT57VC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9LDUwKSl9dXBkYXRlSG9yaXpvbnRhbEluZGljYXRvcihULEUpe2xldCBxPUUucXVlcnlTZWxlY3RvcigiLnRhYi1jb250ZW50Iik7aWYoIXEpcmV0dXJuO2xldCBCPVQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxHPXEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZWU9Ry5sZWZ0LUIubGVmdCxQPUcud2lkdGgrOCxnZT1lZS00O1Quc3R5bGUud2lkdGg9YCR7UH1weGAsVC5zdHlsZS5sZWZ0PWAke2dlfXB4YH11cGRhdGVWZXJ0aWNhbEluZGljYXRvcihULEUpe2xldCBxPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudmVydGljYWwtd3JhcHBlciAudGFic0NvbnRhaW5lciIpO3EmJihULnN0eWxlLnRvcD1gJHtFLm9mZnNldFRvcCtxLm9mZnNldFRvcH1weGAsVC5zdHlsZS5oZWlnaHQ9YCR7RS5jbGllbnRIZWlnaHR9cHhgKX1zdGF0aWN7dGEoaSxyKX19O3JldHVybiAkPWl9KSgpfSk7dmFyIG9oLEQyLEhscixPNmU9cCgoKT0+eyQ0KCk7eGUoKTtLdCgpO0Y2ZSgpO0plKCk7b2g9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxEMj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sSGxyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1hcHB1aS1tYWluY29udGVudCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgej10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooe3R5cGU6T2JqZWN0fSldLGQ9W2ooe3R5cGU6Qm9vbGVhbn0pXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpOdW1iZXJ9KV0sb2godGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4idGFicyJpbiBNLGdldDpNPT5NLnRhYnMsc2V0OihNLEYpPT57TS50YWJzPUZ9fSxtZXRhZGF0YTp6fSxvLHMpLG9oKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRUYWIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJzZWxlY3RlZFRhYiJpbiBNLGdldDpNPT5NLnNlbGVjdGVkVGFiLHNldDooTSxGKT0+e00uc2VsZWN0ZWRUYWI9Rn19LG1ldGFkYXRhOnp9LGMsdSksb2godGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNob3dUYWJzImluIE0sZ2V0Ok09Pk0uc2hvd1RhYnMsc2V0OihNLEYpPT57TS5zaG93VGFicz1GfX0sbWV0YWRhdGE6en0saCxmKSxvaCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnNBdXRvSGlkZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InRhYnNBdXRvSGlkZSJpbiBNLGdldDpNPT5NLnRhYnNBdXRvSGlkZSxzZXQ6KE0sRik9PntNLnRhYnNBdXRvSGlkZT1GfX0sbWV0YWRhdGE6en0sdixiKSxvaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRhYnNBdXRvSGlkZVRocmVzaG9sZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InRhYnNBdXRvSGlkZVRocmVzaG9sZCJpbiBNLGdldDpNPT5NLnRhYnNBdXRvSGlkZVRocmVzaG9sZCxzZXQ6KE0sRik9PntNLnRhYnNBdXRvSGlkZVRocmVzaG9sZD1GfX0sbWV0YWRhdGE6en0sdyxrKSxvaChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp6fSxudWxsLHIpLE89aT10LnZhbHVlLHomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfXN0YXRpYyBkZW1vPSgpPT5DYAogICAgPGRlZXMtYXBwdWktbWFpbmNvbnRlbnQKICAgICAgLnRhYnM9JHtbe2tleToiT3ZlcnZpZXciLGljb25OYW1lOiJsdWNpZGU6aG9tZSIsYWN0aW9uOigpPT5jb25zb2xlLmxvZygiT3ZlcnZpZXciKX0se2tleToiRGV0YWlscyIsaWNvbk5hbWU6Imx1Y2lkZTpmaWxlIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJEZXRhaWxzIil9LHtrZXk6IlNldHRpbmdzIixpY29uTmFtZToibHVjaWRlOnNldHRpbmdzIixhY3Rpb246KCk9PmNvbnNvbGUubG9nKCJTZXR0aW5ncyIpfV19CiAgICA+CiAgICAgIDxkaXYgc2xvdD0iY29udGVudCIgc3R5bGU9InBhZGRpbmc6IDQwcHg7IGNvbG9yOiAjY2NjOyI+CiAgICAgICAgPGgxPk1haW4gQ29udGVudCBBcmVhPC9oMT4KICAgICAgICA8cD5UaGlzIGlzIHdoZXJlIHlvdXIgYXBwbGljYXRpb24gY29udGVudCBnb2VzLjwvcD4KICAgICAgPC9kaXY+CiAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgYDtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdOyNlPUQyKHRoaXMsbyxbe2tleToiXHUyNkEwXHVGRTBGIFBsZWFzZSBzZXQgdGFicyIsYWN0aW9uOigpPT5jb25zb2xlLndhcm4oIk5vIHRhYnMgY29uZmlndXJlZCBmb3IgbWFpbmNvbnRlbnQiKX1dKTtnZXQgdGFicygpe3JldHVybiB0aGlzLiNlfXNldCB0YWJzKHope3RoaXMuI2U9en0jdD0oRDIodGhpcyxzKSxEMih0aGlzLGMsbnVsbCkpO2dldCBzZWxlY3RlZFRhYigpe3JldHVybiB0aGlzLiN0fXNldCBzZWxlY3RlZFRhYih6KXt0aGlzLiN0PXp9I3I9KEQyKHRoaXMsdSksRDIodGhpcyxoLCEwKSk7Z2V0IHNob3dUYWJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dUYWJzKHope3RoaXMuI3I9en0jaT0oRDIodGhpcyxmKSxEMih0aGlzLHYsITEpKTtnZXQgdGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRhYnNBdXRvSGlkZSh6KXt0aGlzLiNpPXp9I2E9KEQyKHRoaXMsYiksRDIodGhpcyx3LDApKTtnZXQgdGFic0F1dG9IaWRlVGhyZXNob2xkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHRhYnNBdXRvSGlkZVRocmVzaG9sZCh6KXt0aGlzLiNhPXp9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzE2MTYxNiIpfTsKICAgICAgfQoKICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOwogICAgICB9CgogICAgICAudG9wYmFyIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnRvcGJhciA+ICogewogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgfQoKICAgICAgOmhvc3QoW25vdGFic10pIC50b3BiYXIgewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ibWFpbmNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0idG9wYmFyIj4KICAgICAgICAgIDxkZWVzLWFwcHVpLXRhYnMKICAgICAgICAgICAgLnRhYnM9JHt0aGlzLnRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMuc2VsZWN0ZWRUYWJ9CiAgICAgICAgICAgIC5zaG93VGFiSW5kaWNhdG9yPSR7ITB9CiAgICAgICAgICAgIC50YWJTdHlsZT0keyJob3Jpem9udGFsIn0KICAgICAgICAgICAgLmF1dG9IaWRlPSR7dGhpcy50YWJzQXV0b0hpZGV9CiAgICAgICAgICAgIC5hdXRvSGlkZVRocmVzaG9sZD0ke3RoaXMudGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgICBAdGFiLXNlbGVjdD0ke3o9PnRoaXMuaGFuZGxlVGFiU2VsZWN0KHopfQogICAgICAgICAgICBAdGFiLWNsb3NlPSR7ej0+dGhpcy5oYW5kbGVUYWJDbG9zZSh6KX0KICAgICAgICAgID48L2RlZXMtYXBwdWktdGFicz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWFyZWEiPgogICAgICAgICAgPHNsb3Q+PC9zbG90PgogICAgICAgICAgPHNsb3QgbmFtZT0iY29udGVudCI+PC9zbG90PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlVGFiU2VsZWN0KHope3RoaXMuc2VsZWN0ZWRUYWI9ei5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zZWxlY3QiLHtkZXRhaWw6ei5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVUYWJDbG9zZSh6KXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0YWItY2xvc2UiLHtkZXRhaWw6ei5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX11cGRhdGVkKHope3N1cGVyLnVwZGF0ZWQoeiksei5oYXMoInNob3dUYWJzIikmJih0aGlzLnNob3dUYWJzP3RoaXMucmVtb3ZlQXR0cmlidXRlKCJub3RhYnMiKTp0aGlzLnNldEF0dHJpYnV0ZSgibm90YWJzIiwiIikpfWFzeW5jIGZpcnN0VXBkYXRlZCh6KXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQoeiksdGhpcy5zaG93VGFic3x8dGhpcy5zZXRBdHRyaWJ1dGUoIm5vdGFicyIsIiIpO2xldCBNPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLXRhYnMiKTtNJiZhd2FpdCBNLnVwZGF0ZUNvbXBsZXRlfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxEMih0aGlzLGspfXN0YXRpY3tEMihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgc3IsUWUscWxyLGpscj1wKCgpPT57eGUoKTtLdCgpOyQ0KCk7RGxyKCk7SmUoKTtJNmUoKTthNmUoKTtvNmUoKTtQNmUoKTtONmUoKTtPNmUoKTtLM2UoKTtzcj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFFlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxxbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWFwcHVpIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXSx3ZSxJPVtdLG5lPVtdLGtlLFk9W10sQT1bXSxMLFU9W10sVj1bXSxYLGRlPVtdLHZlPVtdLExlLFc9W10sSD1bXSx0ZSxiZT1bXSx1ZT1bXSxDZSxoZT1bXSxpZT1bXSxTZSxJZT1bXSxaZT1bXSxLLFo9W10sSj1bXSxtZSxFZT1bXSxVZT1bXSxNdCxpdD1bXSxMdD1bXSxXdCxhZT1bXSxzZT1bXSxfZSx2dD1bXSxTdD1bXSxZcixkbj1bXSxVbz1bXSxXbyxNZT1bXSwkZT1bXSxCdCxGcj1bXSxacj1bXSxuMSxYcj1bXSxHbz1bXSxZbyxabz1bXSx3aD1bXSxNaCxUZT1bXSxwZT1bXSxCZSxGMT1bXSx4dD1bXSxRcixSYT1bXSxodD1bXSxZMSxCYT1bXSxYbz1bXSxraCxLYj1bXSxTaD1bXSxldixINWU9W10scTVlPVtdO3ZhciBqNWU9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBRPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6QXJyYXl9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpTdHJpbmd9KV0seD1baih7dHlwZTpCb29sZWFufSldLHk9W2ooe3R5cGU6T2JqZWN0fSldLE89W2ooe3R5cGU6QXJyYXl9KV0sRj1baih7dHlwZTpCb29sZWFufSldLFI9W2ooe3R5cGU6U3RyaW5nfSldLCQ9W2ooe3R5cGU6U3RyaW5nfSldLHE9W2ooe3R5cGU6QXJyYXl9KV0sZWU9W2ooe3R5cGU6QXJyYXl9KV0sd2U9W2ooe3R5cGU6QXJyYXl9KV0sa2U9W2ooe3R5cGU6T2JqZWN0fSldLEw9W2ooe3R5cGU6U3RyaW5nfSldLFg9W2ooe3R5cGU6QXJyYXl9KV0sTGU9W2ooe3R5cGU6T2JqZWN0fSldLHRlPVtqKHt0eXBlOkJvb2xlYW59KV0sQ2U9W2ooe3R5cGU6Qm9vbGVhbn0pXSxTZT1baih7dHlwZTpCb29sZWFufSldLEs9W2ooe3R5cGU6Qm9vbGVhbn0pXSxtZT1baih7dHlwZTpCb29sZWFufSldLE10PVtqKHt0eXBlOkJvb2xlYW59KV0sV3Q9W2ooe3R5cGU6TnVtYmVyfSldLF9lPVtmZSgpXSxZcj1bZmUoKV0sV289W2ooe3R5cGU6QXJyYXl9KV0sQnQ9W2ooe3R5cGU6T2JqZWN0fSldLG4xPVtmZSgpXSxZbz1bZmUoKV0sTWg9W2ZlKCldLEJlPVtmZSgpXSxRcj1bZmUoKV0sWTE9W2ZlKCldLGtoPVtmZSgpXSxldj1bZmUoKV0sc3IodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYXBwYmFyTWVudUl0ZW1zImluIHJlLGdldDpyZT0+cmUuYXBwYmFyTWVudUl0ZW1zLHNldDoocmUsQWUpPT57cmUuYXBwYmFyTWVudUl0ZW1zPUFlfX0sbWV0YWRhdGE6UX0sbyxzKSxzcih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhckJyZWFkY3J1bWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImFwcGJhckJyZWFkY3J1bWJzImluIHJlLGdldDpyZT0+cmUuYXBwYmFyQnJlYWRjcnVtYnMsc2V0OihyZSxBZSk9PntyZS5hcHBiYXJCcmVhZGNydW1icz1BZX19LG1ldGFkYXRhOlF9LGMsdSksc3IodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IiaW4gcmUsZ2V0OnJlPT5yZS5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yLHNldDoocmUsQWUpPT57cmUuYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcj1BZX19LG1ldGFkYXRhOlF9LGgsZiksc3IodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcHBiYXJTaG93V2luZG93Q29udHJvbHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzImluIHJlLGdldDpyZT0+cmUuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzLHNldDoocmUsQWUpPT57cmUuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPUFlfX0sbWV0YWRhdGE6UX0sdixiKSxzcih0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclVzZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYXBwYmFyVXNlciJpbiByZSxnZXQ6cmU9PnJlLmFwcGJhclVzZXIsc2V0OihyZSxBZSk9PntyZS5hcHBiYXJVc2VyPUFlfX0sbWV0YWRhdGE6UX0sdyxrKSxzcih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclByb2ZpbGVNZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYXBwYmFyUHJvZmlsZU1lbnVJdGVtcyJpbiByZSxnZXQ6cmU9PnJlLmFwcGJhclByb2ZpbGVNZW51SXRlbXMsc2V0OihyZSxBZSk9PntyZS5hcHBiYXJQcm9maWxlTWVudUl0ZW1zPUFlfX0sbWV0YWRhdGE6UX0seixNKSxzcih0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFwcGJhclNob3dTZWFyY2giLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYXBwYmFyU2hvd1NlYXJjaCJpbiByZSxnZXQ6cmU9PnJlLmFwcGJhclNob3dTZWFyY2gsc2V0OihyZSxBZSk9PntyZS5hcHBiYXJTaG93U2VhcmNoPUFlfX0sbWV0YWRhdGE6UX0sRCxOKSxzcih0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51TG9nb0ljb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ibWFpbm1lbnVMb2dvSWNvbiJpbiByZSxnZXQ6cmU9PnJlLm1haW5tZW51TG9nb0ljb24sc2V0OihyZSxBZSk9PntyZS5tYWlubWVudUxvZ29JY29uPUFlfX0sbWV0YWRhdGE6UX0sXyxTKSxzcih0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51TG9nb1RleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ibWFpbm1lbnVMb2dvVGV4dCJpbiByZSxnZXQ6cmU9PnJlLm1haW5tZW51TG9nb1RleHQsc2V0OihyZSxBZSk9PntyZS5tYWlubWVudUxvZ29UZXh0PUFlfX0sbWV0YWRhdGE6UX0sVCxFKSxzcih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51R3JvdXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1haW5tZW51R3JvdXBzImluIHJlLGdldDpyZT0+cmUubWFpbm1lbnVHcm91cHMsc2V0OihyZSxBZSk9PntyZS5tYWlubWVudUdyb3Vwcz1BZX19LG1ldGFkYXRhOlF9LEIsRyksc3IodGhpcyxudWxsLGVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbm1lbnVCb3R0b21UYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1haW5tZW51Qm90dG9tVGFicyJpbiByZSxnZXQ6cmU9PnJlLm1haW5tZW51Qm90dG9tVGFicyxzZXQ6KHJlLEFlKT0+e3JlLm1haW5tZW51Qm90dG9tVGFicz1BZX19LG1ldGFkYXRhOlF9LFAsZ2UpLHNyKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJtYWlubWVudVRhYnMiaW4gcmUsZ2V0OnJlPT5yZS5tYWlubWVudVRhYnMsc2V0OihyZSxBZSk9PntyZS5tYWlubWVudVRhYnM9QWV9fSxtZXRhZGF0YTpRfSxJLG5lKSxzcih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudVNlbGVjdGVkVGFiIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1haW5tZW51U2VsZWN0ZWRUYWIiaW4gcmUsZ2V0OnJlPT5yZS5tYWlubWVudVNlbGVjdGVkVGFiLHNldDoocmUsQWUpPT57cmUubWFpbm1lbnVTZWxlY3RlZFRhYj1BZX19LG1ldGFkYXRhOlF9LFksQSksc3IodGhpcyxudWxsLEwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51SGVhZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJzZWNvbmRhcnltZW51SGVhZGluZyJpbiByZSxnZXQ6cmU9PnJlLnNlY29uZGFyeW1lbnVIZWFkaW5nLHNldDoocmUsQWUpPT57cmUuc2Vjb25kYXJ5bWVudUhlYWRpbmc9QWV9fSxtZXRhZGF0YTpRfSxVLFYpLHNyKHRoaXMsbnVsbCxYLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudUdyb3VwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJzZWNvbmRhcnltZW51R3JvdXBzImluIHJlLGdldDpyZT0+cmUuc2Vjb25kYXJ5bWVudUdyb3VwcyxzZXQ6KHJlLEFlKT0+e3JlLnNlY29uZGFyeW1lbnVHcm91cHM9QWV9fSxtZXRhZGF0YTpRfSxkZSx2ZSksc3IodGhpcyxudWxsLExlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtImluIHJlLGdldDpyZT0+cmUuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSxzZXQ6KHJlLEFlKT0+e3JlLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09QWV9fSxtZXRhZGF0YTpRfSxXLEgpLHNyKHRoaXMsbnVsbCx0ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5tZW51Q29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1haW5tZW51Q29sbGFwc2VkImluIHJlLGdldDpyZT0+cmUubWFpbm1lbnVDb2xsYXBzZWQsc2V0OihyZSxBZSk9PntyZS5tYWlubWVudUNvbGxhcHNlZD1BZX19LG1ldGFkYXRhOlF9LGJlLHVlKSxzcih0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWNvbmRhcnltZW51Q29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+InNlY29uZGFyeW1lbnVDb2xsYXBzZWQiaW4gcmUsZ2V0OnJlPT5yZS5zZWNvbmRhcnltZW51Q29sbGFwc2VkLHNldDoocmUsQWUpPT57cmUuc2Vjb25kYXJ5bWVudUNvbGxhcHNlZD1BZX19LG1ldGFkYXRhOlF9LGhlLGllKSxzcih0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ibWFpbm1lbnVWaXNpYmxlImluIHJlLGdldDpyZT0+cmUubWFpbm1lbnVWaXNpYmxlLHNldDoocmUsQWUpPT57cmUubWFpbm1lbnVWaXNpYmxlPUFlfX0sbWV0YWRhdGE6UX0sSWUsWmUpLHNyKHRoaXMsbnVsbCxLLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudVZpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ic2Vjb25kYXJ5bWVudVZpc2libGUiaW4gcmUsZ2V0OnJlPT5yZS5zZWNvbmRhcnltZW51VmlzaWJsZSxzZXQ6KHJlLEFlKT0+e3JlLnNlY29uZGFyeW1lbnVWaXNpYmxlPUFlfX0sbWV0YWRhdGE6UX0sWixKKSxzcih0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWluY29udGVudFRhYnNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+Im1haW5jb250ZW50VGFic1Zpc2libGUiaW4gcmUsZ2V0OnJlPT5yZS5tYWluY29udGVudFRhYnNWaXNpYmxlLHNldDoocmUsQWUpPT57cmUubWFpbmNvbnRlbnRUYWJzVmlzaWJsZT1BZX19LG1ldGFkYXRhOlF9LEVlLFVlKSxzcih0aGlzLG51bGwsTXQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFic0F1dG9IaWRlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImNvbnRlbnRUYWJzQXV0b0hpZGUiaW4gcmUsZ2V0OnJlPT5yZS5jb250ZW50VGFic0F1dG9IaWRlLHNldDoocmUsQWUpPT57cmUuY29udGVudFRhYnNBdXRvSGlkZT1BZX19LG1ldGFkYXRhOlF9LGl0LEx0KSxzcih0aGlzLG51bGwsV3Qse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQiaW4gcmUsZ2V0OnJlPT5yZS5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkLHNldDoocmUsQWUpPT57cmUuY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZD1BZX19LG1ldGFkYXRhOlF9LGFlLHNlKSxzcih0aGlzLG51bGwsX2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhY3Rpdml0eUxvZ1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYWN0aXZpdHlMb2dWaXNpYmxlImluIHJlLGdldDpyZT0+cmUuYWN0aXZpdHlMb2dWaXNpYmxlLHNldDoocmUsQWUpPT57cmUuYWN0aXZpdHlMb2dWaXNpYmxlPUFlfX0sbWV0YWRhdGE6UX0sdnQsU3QpLHNyKHRoaXMsbnVsbCxZcix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5TG9nQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iYWN0aXZpdHlMb2dDb3VudCJpbiByZSxnZXQ6cmU9PnJlLmFjdGl2aXR5TG9nQ291bnQsc2V0OihyZSxBZSk9PntyZS5hY3Rpdml0eUxvZ0NvdW50PUFlfX0sbWV0YWRhdGE6UX0sZG4sVW8pLHNyKHRoaXMsbnVsbCxXbyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1haW5jb250ZW50VGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJtYWluY29udGVudFRhYnMiaW4gcmUsZ2V0OnJlPT5yZS5tYWluY29udGVudFRhYnMsc2V0OihyZSxBZSk9PntyZS5tYWluY29udGVudFRhYnM9QWV9fSxtZXRhZGF0YTpRfSxNZSwkZSksc3IodGhpcyxudWxsLEJ0LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnRTZWxlY3RlZFRhYiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJtYWluY29udGVudFNlbGVjdGVkVGFiImluIHJlLGdldDpyZT0+cmUubWFpbmNvbnRlbnRTZWxlY3RlZFRhYixzZXQ6KHJlLEFlKT0+e3JlLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9QWV9fSxtZXRhZGF0YTpRfSxGcixaciksc3IodGhpcyxudWxsLG4xLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXBwYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpyZT0+ImFwcGJhciJpbiByZSxnZXQ6cmU9PnJlLmFwcGJhcixzZXQ6KHJlLEFlKT0+e3JlLmFwcGJhcj1BZX19LG1ldGFkYXRhOlF9LFhyLEdvKSxzcih0aGlzLG51bGwsWW8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYWlubWVudSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJtYWlubWVudSJpbiByZSxnZXQ6cmU9PnJlLm1haW5tZW51LHNldDoocmUsQWUpPT57cmUubWFpbm1lbnU9QWV9fSxtZXRhZGF0YTpRfSxabyx3aCksc3IodGhpcyxudWxsLE1oLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2Vjb25kYXJ5bWVudSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJzZWNvbmRhcnltZW51ImluIHJlLGdldDpyZT0+cmUuc2Vjb25kYXJ5bWVudSxzZXQ6KHJlLEFlKT0+e3JlLnNlY29uZGFyeW1lbnU9QWV9fSxtZXRhZGF0YTpRfSxUZSxwZSksc3IodGhpcyxudWxsLEJlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWFpbmNvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4ibWFpbmNvbnRlbnQiaW4gcmUsZ2V0OnJlPT5yZS5tYWluY29udGVudCxzZXQ6KHJlLEFlKT0+e3JlLm1haW5jb250ZW50PUFlfX0sbWV0YWRhdGE6UX0sRjEseHQpLHNyKHRoaXMsbnVsbCxRcix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2aXR5bG9nRWxlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJhY3Rpdml0eWxvZ0VsZW1lbnQiaW4gcmUsZ2V0OnJlPT5yZS5hY3Rpdml0eWxvZ0VsZW1lbnQsc2V0OihyZSxBZSk9PntyZS5hY3Rpdml0eWxvZ0VsZW1lbnQ9QWV9fSxtZXRhZGF0YTpRfSxSYSxodCksc3IodGhpcyxudWxsLFkxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tYmFyRWxlbWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJib3R0b21iYXJFbGVtZW50ImluIHJlLGdldDpyZT0+cmUuYm90dG9tYmFyRWxlbWVudCxzZXQ6KHJlLEFlKT0+e3JlLmJvdHRvbWJhckVsZW1lbnQ9QWV9fSxtZXRhZGF0YTpRfSxCYSxYbyksc3IodGhpcyxudWxsLGtoLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYm90dG9tYmFyVmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6cmU9PiJib3R0b21iYXJWaXNpYmxlImluIHJlLGdldDpyZT0+cmUuYm90dG9tYmFyVmlzaWJsZSxzZXQ6KHJlLEFlKT0+e3JlLmJvdHRvbWJhclZpc2libGU9QWV9fSxtZXRhZGF0YTpRfSxLYixTaCksc3IodGhpcyxudWxsLGV2LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnJlPT4iY3VycmVudFZpZXciaW4gcmUsZ2V0OnJlPT5yZS5jdXJyZW50VmlldyxzZXQ6KHJlLEFlKT0+e3JlLmN1cnJlbnRWaWV3PUFlfX0sbWV0YWRhdGE6UX0sSDVlLHE1ZSksc3IobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6UX0sbnVsbCxyKSxqNWU9aT10LnZhbHVlLFEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6UX0pfXN0YXRpYyBkZW1vPUFscjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdO3ZpZXdMaWZlY3ljbGUkPW5ldyBqdC5zbWFydHJ4LnJ4anMuU3ViamVjdDt2aWV3Q2hhbmdlZCQ9bmV3IGp0LnNtYXJ0cngucnhqcy5TdWJqZWN0OyNlPVFlKHRoaXMsbyxbXSk7Z2V0IGFwcGJhck1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNlfXNldCBhcHBiYXJNZW51SXRlbXMoUSl7dGhpcy4jZT1RfSN0PShRZSh0aGlzLHMpLFFlKHRoaXMsYywiIikpO2dldCBhcHBiYXJCcmVhZGNydW1icygpe3JldHVybiB0aGlzLiN0fXNldCBhcHBiYXJCcmVhZGNydW1icyhRKXt0aGlzLiN0PVF9I3I9KFFlKHRoaXMsdSksUWUodGhpcyxoLCIgPiAiKSk7Z2V0IGFwcGJhckJyZWFkY3J1bWJTZXBhcmF0b3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgYXBwYmFyQnJlYWRjcnVtYlNlcGFyYXRvcihRKXt0aGlzLiNyPVF9I2k9KFFlKHRoaXMsZiksUWUodGhpcyx2LCEwKSk7Z2V0IGFwcGJhclNob3dXaW5kb3dDb250cm9scygpe3JldHVybiB0aGlzLiNpfXNldCBhcHBiYXJTaG93V2luZG93Q29udHJvbHMoUSl7dGhpcy4jaT1RfSNhPShRZSh0aGlzLGIpLFFlKHRoaXMsdyx2b2lkIDApKTtnZXQgYXBwYmFyVXNlcigpe3JldHVybiB0aGlzLiNhfXNldCBhcHBiYXJVc2VyKFEpe3RoaXMuI2E9UX0jbj0oUWUodGhpcyxrKSxRZSh0aGlzLHosW10pKTtnZXQgYXBwYmFyUHJvZmlsZU1lbnVJdGVtcygpe3JldHVybiB0aGlzLiNufXNldCBhcHBiYXJQcm9maWxlTWVudUl0ZW1zKFEpe3RoaXMuI249UX0jbz0oUWUodGhpcyxNKSxRZSh0aGlzLEQsITEpKTtnZXQgYXBwYmFyU2hvd1NlYXJjaCgpe3JldHVybiB0aGlzLiNvfXNldCBhcHBiYXJTaG93U2VhcmNoKFEpe3RoaXMuI289UX0jcz0oUWUodGhpcyxOKSxRZSh0aGlzLF8sIiIpKTtnZXQgbWFpbm1lbnVMb2dvSWNvbigpe3JldHVybiB0aGlzLiNzfXNldCBtYWlubWVudUxvZ29JY29uKFEpe3RoaXMuI3M9UX0jbD0oUWUodGhpcyxTKSxRZSh0aGlzLFQsIiIpKTtnZXQgbWFpbm1lbnVMb2dvVGV4dCgpe3JldHVybiB0aGlzLiNsfXNldCBtYWlubWVudUxvZ29UZXh0KFEpe3RoaXMuI2w9UX0jYz0oUWUodGhpcyxFKSxRZSh0aGlzLEIsW10pKTtnZXQgbWFpbm1lbnVHcm91cHMoKXtyZXR1cm4gdGhpcy4jY31zZXQgbWFpbm1lbnVHcm91cHMoUSl7dGhpcy4jYz1RfSNkPShRZSh0aGlzLEcpLFFlKHRoaXMsUCxbXSkpO2dldCBtYWlubWVudUJvdHRvbVRhYnMoKXtyZXR1cm4gdGhpcy4jZH1zZXQgbWFpbm1lbnVCb3R0b21UYWJzKFEpe3RoaXMuI2Q9UX0jdT0oUWUodGhpcyxnZSksUWUodGhpcyxJLFtdKSk7Z2V0IG1haW5tZW51VGFicygpe3JldHVybiB0aGlzLiN1fXNldCBtYWlubWVudVRhYnMoUSl7dGhpcy4jdT1RfSNwPShRZSh0aGlzLG5lKSxRZSh0aGlzLFksdm9pZCAwKSk7Z2V0IG1haW5tZW51U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbWFpbm1lbnVTZWxlY3RlZFRhYihRKXt0aGlzLiNwPVF9I2g9KFFlKHRoaXMsQSksUWUodGhpcyxVLCIiKSk7Z2V0IHNlY29uZGFyeW1lbnVIZWFkaW5nKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHNlY29uZGFyeW1lbnVIZWFkaW5nKFEpe3RoaXMuI2g9UX0jZj0oUWUodGhpcyxWKSxRZSh0aGlzLGRlLFtdKSk7Z2V0IHNlY29uZGFyeW1lbnVHcm91cHMoKXtyZXR1cm4gdGhpcy4jZn1zZXQgc2Vjb25kYXJ5bWVudUdyb3VwcyhRKXt0aGlzLiNmPVF9I209KFFlKHRoaXMsdmUpLFFlKHRoaXMsVyx2b2lkIDApKTtnZXQgc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbSgpe3JldHVybiB0aGlzLiNtfXNldCBzZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtKFEpe3RoaXMuI209UX0jZz0oUWUodGhpcyxIKSxRZSh0aGlzLGJlLCExKSk7Z2V0IG1haW5tZW51Q29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2d9c2V0IG1haW5tZW51Q29sbGFwc2VkKFEpe3RoaXMuI2c9UX0jYj0oUWUodGhpcyx1ZSksUWUodGhpcyxoZSwhMSkpO2dldCBzZWNvbmRhcnltZW51Q29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2J9c2V0IHNlY29uZGFyeW1lbnVDb2xsYXBzZWQoUSl7dGhpcy4jYj1RfSN2PShRZSh0aGlzLGllKSxRZSh0aGlzLEllLCEwKSk7Z2V0IG1haW5tZW51VmlzaWJsZSgpe3JldHVybiB0aGlzLiN2fXNldCBtYWlubWVudVZpc2libGUoUSl7dGhpcy4jdj1RfSN4PShRZSh0aGlzLFplKSxRZSh0aGlzLFosITApKTtnZXQgc2Vjb25kYXJ5bWVudVZpc2libGUoKXtyZXR1cm4gdGhpcy4jeH1zZXQgc2Vjb25kYXJ5bWVudVZpc2libGUoUSl7dGhpcy4jeD1RfSN5PShRZSh0aGlzLEopLFFlKHRoaXMsRWUsITApKTtnZXQgbWFpbmNvbnRlbnRUYWJzVmlzaWJsZSgpe3JldHVybiB0aGlzLiN5fXNldCBtYWluY29udGVudFRhYnNWaXNpYmxlKFEpe3RoaXMuI3k9UX0jdz0oUWUodGhpcyxVZSksUWUodGhpcyxpdCwhMSkpO2dldCBjb250ZW50VGFic0F1dG9IaWRlKCl7cmV0dXJuIHRoaXMuI3d9c2V0IGNvbnRlbnRUYWJzQXV0b0hpZGUoUSl7dGhpcy4jdz1RfSNNPShRZSh0aGlzLEx0KSxRZSh0aGlzLGFlLDApKTtnZXQgY29udGVudFRhYnNBdXRvSGlkZVRocmVzaG9sZCgpe3JldHVybiB0aGlzLiNNfXNldCBjb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkKFEpe3RoaXMuI009UX0jaz0oUWUodGhpcyxzZSksUWUodGhpcyx2dCwhMSkpO2dldCBhY3Rpdml0eUxvZ1Zpc2libGUoKXtyZXR1cm4gdGhpcy4ja31zZXQgYWN0aXZpdHlMb2dWaXNpYmxlKFEpe3RoaXMuI2s9UX0jUz0oUWUodGhpcyxTdCksUWUodGhpcyxkbiwwKSk7Z2V0IGFjdGl2aXR5TG9nQ291bnQoKXtyZXR1cm4gdGhpcy4jU31zZXQgYWN0aXZpdHlMb2dDb3VudChRKXt0aGlzLiNTPVF9I3o9KFFlKHRoaXMsVW8pLFFlKHRoaXMsTWUsW10pKTtnZXQgbWFpbmNvbnRlbnRUYWJzKCl7cmV0dXJuIHRoaXMuI3p9c2V0IG1haW5jb250ZW50VGFicyhRKXt0aGlzLiN6PVF9I0M9KFFlKHRoaXMsJGUpLFFlKHRoaXMsRnIsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50U2VsZWN0ZWRUYWIoKXtyZXR1cm4gdGhpcy4jQ31zZXQgbWFpbmNvbnRlbnRTZWxlY3RlZFRhYihRKXt0aGlzLiNDPVF9I1Q9KFFlKHRoaXMsWnIpLFFlKHRoaXMsWHIsdm9pZCAwKSk7Z2V0IGFwcGJhcigpe3JldHVybiB0aGlzLiNUfXNldCBhcHBiYXIoUSl7dGhpcy4jVD1RfSNfPShRZSh0aGlzLEdvKSxRZSh0aGlzLFpvLHZvaWQgMCkpO2dldCBtYWlubWVudSgpe3JldHVybiB0aGlzLiNffXNldCBtYWlubWVudShRKXt0aGlzLiNfPVF9I0w9KFFlKHRoaXMsd2gpLFFlKHRoaXMsVGUsdm9pZCAwKSk7Z2V0IHNlY29uZGFyeW1lbnUoKXtyZXR1cm4gdGhpcy4jTH1zZXQgc2Vjb25kYXJ5bWVudShRKXt0aGlzLiNMPVF9I0E9KFFlKHRoaXMscGUpLFFlKHRoaXMsRjEsdm9pZCAwKSk7Z2V0IG1haW5jb250ZW50KCl7cmV0dXJuIHRoaXMuI0F9c2V0IG1haW5jb250ZW50KFEpe3RoaXMuI0E9UX0jRD0oUWUodGhpcyx4dCksUWUodGhpcyxSYSx2b2lkIDApKTtnZXQgYWN0aXZpdHlsb2dFbGVtZW50KCl7cmV0dXJuIHRoaXMuI0R9c2V0IGFjdGl2aXR5bG9nRWxlbWVudChRKXt0aGlzLiNEPVF9I0U9KFFlKHRoaXMsaHQpLFFlKHRoaXMsQmEsdm9pZCAwKSk7Z2V0IGJvdHRvbWJhckVsZW1lbnQoKXtyZXR1cm4gdGhpcy4jRX1zZXQgYm90dG9tYmFyRWxlbWVudChRKXt0aGlzLiNFPVF9IyQ9KFFlKHRoaXMsWG8pLFFlKHRoaXMsS2IsITApKTtnZXQgYm90dG9tYmFyVmlzaWJsZSgpe3JldHVybiB0aGlzLiMkfXNldCBib3R0b21iYXJWaXNpYmxlKFEpe3RoaXMuIyQ9UX0jST0oUWUodGhpcyxTaCksUWUodGhpcyxINWUsdm9pZCAwKSk7Z2V0IGN1cnJlbnRWaWV3KCl7cmV0dXJuIHRoaXMuI0l9c2V0IGN1cnJlbnRWaWV3KFEpe3RoaXMuI0k9UX12aWV3UmVnaXN0cnk9KFFlKHRoaXMscTVlKSxuZXcgZmIpO3JvdXRlckNsZWFudXA9bnVsbDtzZWFyY2hDYWxsYmFjaz1udWxsO3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmMGYwZjAiLCIjMWExYTFhIil9OwogICAgICB9CiAgICAgIC5tYWluZ3JpZCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNDBweDsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHggLSAyNHB4KTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIC8qIGdyaWQtdGVtcGxhdGUtY29sdW1ucyBzZXQgZHluYW1pY2FsbHkgaW4gdGVtcGxhdGUgKi8KICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjsKICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLWNvbHVtbnMgMC4zcyBlYXNlLCBoZWlnaHQgMC4zcyBlYXNlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIDpob3N0KFtib3R0b21iYXItaGlkZGVuXSkgLm1haW5ncmlkIHsKICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQwcHgpOwogICAgICB9CgogICAgICBkZWVzLWFwcHVpLWJvdHRvbWJhciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IDQ7CiAgICAgIH0KCiAgICAgIC8qIFotaW5kZXggbGF5ZXJpbmcgZm9yIHByb3BlciBzdGFja2luZyAqLwogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLW1haW5tZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMzsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1zZWNvbmRhcnltZW51IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgei1pbmRleDogMjsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1tYWluY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLm1haW5ncmlkID4gZGVlcy1hcHB1aS1hY3Rpdml0eWxvZy5oaWRkZW4gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubWFpbmdyaWQgPiBkZWVzLWFwcHVpLWFjdGl2aXR5bG9nLnZpc2libGUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICB9CgogICAgICAvKiBWaWV3IGNvbnRhaW5lciBmb3IgZHluYW1pY2FsbHkgbG9hZGVkIHZpZXdzICovCiAgICAgIC52aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KCiAgICAgIC52aWV3LWNvbnRhaW5lcjplbXB0eSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkZWVzLWFwcHVpLWFwcGJhcgogICAgICAgIC5tZW51SXRlbXM9JHt0aGlzLmFwcGJhck1lbnVJdGVtc30KICAgICAgICAuYnJlYWRjcnVtYnM9JHt0aGlzLmFwcGJhckJyZWFkY3J1bWJzfQogICAgICAgIC5icmVhZGNydW1iU2VwYXJhdG9yPSR7dGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yfQogICAgICAgIC5zaG93V2luZG93Q29udHJvbHM9JHt0aGlzLmFwcGJhclNob3dXaW5kb3dDb250cm9sc30KICAgICAgICAudXNlcj0ke3RoaXMuYXBwYmFyVXNlcn0KICAgICAgICAucHJvZmlsZU1lbnVJdGVtcz0ke3RoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtc30KICAgICAgICAuc2hvd1NlYXJjaD0ke3RoaXMuYXBwYmFyU2hvd1NlYXJjaH0KICAgICAgICAuc2hvd0FjdGl2aXR5TG9nVG9nZ2xlPSR7ITB9CiAgICAgICAgLmFjdGl2aXR5TG9nQ291bnQ9JHt0aGlzLmFjdGl2aXR5TG9nQ291bnR9CiAgICAgICAgLmFjdGl2aXR5TG9nQWN0aXZlPSR7dGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9CiAgICAgICAgQG1lbnUtc2VsZWN0PSR7UT0+dGhpcy5oYW5kbGVBcHBiYXJNZW51U2VsZWN0KFEpfQogICAgICAgIEBicmVhZGNydW1iLW5hdmlnYXRlPSR7UT0+dGhpcy5oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoUSl9CiAgICAgICAgQHNlYXJjaC1jbGljaz0keygpPT50aGlzLmhhbmRsZUFwcGJhclNlYXJjaENsaWNrKCl9CiAgICAgICAgQHNlYXJjaC1xdWVyeT0ke1E9PnRoaXMuaGFuZGxlQXBwYmFyU2VhcmNoUXVlcnkoUSl9CiAgICAgICAgQHVzZXItbWVudS1vcGVuPSR7KCk9PnRoaXMuaGFuZGxlQXBwYmFyVXNlck1lbnVPcGVuKCl9CiAgICAgICAgQHByb2ZpbGUtbWVudS1zZWxlY3Q9JHtRPT50aGlzLmhhbmRsZUFwcGJhclByb2ZpbGVNZW51U2VsZWN0KFEpfQogICAgICAgIEBhY3Rpdml0eS10b2dnbGU9JHsoKT0+dGhpcy50b2dnbGVBY3Rpdml0eUxvZygpfQogICAgICA+PC9kZWVzLWFwcHVpLWFwcGJhcj4KICAgICAgPGRpdiBjbGFzcz0ibWFpbmdyaWQiIHN0eWxlPSJncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byAxZnIgJHt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT8iMjgwcHgiOiIwcHgifTsiPgogICAgICAgICR7dGhpcy5tYWlubWVudVZpc2libGU/Q2AKICAgICAgICAgIDxkZWVzLWFwcHVpLW1haW5tZW51CiAgICAgICAgICAgIC5sb2dvSWNvbj0ke3RoaXMubWFpbm1lbnVMb2dvSWNvbn0KICAgICAgICAgICAgLmxvZ29UZXh0PSR7dGhpcy5tYWlubWVudUxvZ29UZXh0fQogICAgICAgICAgICAubWVudUdyb3Vwcz0ke3RoaXMubWFpbm1lbnVHcm91cHN9CiAgICAgICAgICAgIC5ib3R0b21UYWJzPSR7dGhpcy5tYWlubWVudUJvdHRvbVRhYnN9CiAgICAgICAgICAgIC50YWJzPSR7dGhpcy5tYWlubWVudVRhYnN9CiAgICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbm1lbnVTZWxlY3RlZFRhYn0KICAgICAgICAgICAgLmNvbGxhcHNlZD0ke3RoaXMubWFpbm1lbnVDb2xsYXBzZWR9CiAgICAgICAgICAgIEB0YWItc2VsZWN0PSR7UT0+dGhpcy5oYW5kbGVNYWlubWVudVRhYlNlbGVjdChRKX0KICAgICAgICAgICAgQGNvbGxhcHNlLWNoYW5nZT0ke1E9PnRoaXMuaGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShRKX0KICAgICAgICAgID48L2RlZXMtYXBwdWktbWFpbm1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICAke3RoaXMuc2Vjb25kYXJ5bWVudVZpc2libGU/Q2AKICAgICAgICAgIDxkZWVzLWFwcHVpLXNlY29uZGFyeW1lbnUKICAgICAgICAgICAgLmhlYWRpbmc9JHt0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nfQogICAgICAgICAgICAuZ3JvdXBzPSR7dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzfQogICAgICAgICAgICAuc2VsZWN0ZWRJdGVtPSR7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtfQogICAgICAgICAgICAuY29sbGFwc2VkPSR7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkfQogICAgICAgICAgICBAaXRlbS1zZWxlY3Q9JHtRPT50aGlzLmhhbmRsZVNlY29uZGFyeW1lbnVJdGVtU2VsZWN0KFEpfQogICAgICAgICAgICBAY29sbGFwc2UtY2hhbmdlPSR7UT0+dGhpcy5oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoUSl9CiAgICAgICAgICA+PC9kZWVzLWFwcHVpLXNlY29uZGFyeW1lbnU+CiAgICAgICAgYDoiIn0KICAgICAgICA8ZGVlcy1hcHB1aS1tYWluY29udGVudAogICAgICAgICAgLnRhYnM9JHt0aGlzLm1haW5jb250ZW50VGFic30KICAgICAgICAgIC5zZWxlY3RlZFRhYj0ke3RoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYn0KICAgICAgICAgIC5zaG93VGFicz0ke3RoaXMubWFpbmNvbnRlbnRUYWJzVmlzaWJsZX0KICAgICAgICAgIC50YWJzQXV0b0hpZGU9JHt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGV9CiAgICAgICAgICAudGFic0F1dG9IaWRlVGhyZXNob2xkPSR7dGhpcy5jb250ZW50VGFic0F1dG9IaWRlVGhyZXNob2xkfQogICAgICAgICAgQHRhYi1zZWxlY3Q9JHtRPT50aGlzLmhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoUSl9CiAgICAgICAgICBAdGFiLWNsb3NlPSR7UT0+dGhpcy5oYW5kbGVDb250ZW50VGFiQ2xvc2UoUSl9CiAgICAgICAgPgogICAgICAgICAgPGRpdiBjbGFzcz0idmlldy1jb250YWluZXIiPjwvZGl2PgogICAgICAgICAgPHNsb3QgbmFtZT0ibWFpbmNvbnRlbnQiPjwvc2xvdD4KICAgICAgICA8L2RlZXMtYXBwdWktbWFpbmNvbnRlbnQ+CiAgICAgICAgPGRlZXMtYXBwdWktYWN0aXZpdHlsb2cKICAgICAgICAgIGNsYXNzPSIke3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPyJ2aXNpYmxlIjoiaGlkZGVuIn0iCiAgICAgICAgPjwvZGVlcy1hcHB1aS1hY3Rpdml0eWxvZz4KICAgICAgPC9kaXY+CiAgICAgICR7dGhpcy5ib3R0b21iYXJWaXNpYmxlP0NgCiAgICAgICAgPGRlZXMtYXBwdWktYm90dG9tYmFyPjwvZGVlcy1hcHB1aS1ib3R0b21iYXI+CiAgICAgIGA6IiJ9CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe3RoaXMuYXBwYmFyPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWFwcHVpLWFwcGJhciIpLHRoaXMubWFpbm1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbm1lbnUiKSx0aGlzLnNlY29uZGFyeW1lbnU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktc2Vjb25kYXJ5bWVudSIpLHRoaXMubWFpbmNvbnRlbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtYXBwdWktbWFpbmNvbnRlbnQiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1hY3Rpdml0eWxvZyIpLHRoaXMuYm90dG9tYmFyRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1hcHB1aS1ib3R0b21iYXIiKSx0aGlzLmFjdGl2aXR5bG9nRWxlbWVudCYmdGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuZW50cmllcyQuc3Vic2NyaWJlKFE9Pnt0aGlzLmFjdGl2aXR5TG9nQ291bnQ9US5sZW5ndGh9KSx0aGlzLnZpZXdSZWdpc3RyeS5zZXRBcHB1aVJlZih0aGlzKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yb3V0ZXJDbGVhbnVwJiYodGhpcy5yb3V0ZXJDbGVhbnVwKCksdGhpcy5yb3V0ZXJDbGVhbnVwPW51bGwpLHRoaXMudmlld0xpZmVjeWNsZSQuY29tcGxldGUoKSx0aGlzLnZpZXdDaGFuZ2VkJC5jb21wbGV0ZSgpfXNldEFwcEJhck1lbnVzKFEpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPVsuLi5RXX11cGRhdGVBcHBCYXJNZW51KFEscmUpe3RoaXMuYXBwYmFyTWVudUl0ZW1zPXRoaXMuYXBwYmFyTWVudUl0ZW1zLm1hcChBZT0+Im5hbWUiaW4gQWUmJkFlLm5hbWU9PT1RP3suLi5BZSwuLi5yZX06QWUpfXNldEJyZWFkY3J1bWJzKFEpe0FycmF5LmlzQXJyYXkoUSk/dGhpcy5hcHBiYXJCcmVhZGNydW1icz1RLmpvaW4odGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yKTp0aGlzLmFwcGJhckJyZWFkY3J1bWJzPVF9c2V0VXNlcihRKXt0aGlzLmFwcGJhclVzZXI9UX1zZXRQcm9maWxlTWVudUl0ZW1zKFEpe3RoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1bLi4uUV19c2V0U2VhcmNoVmlzaWJsZShRKXt0aGlzLmFwcGJhclNob3dTZWFyY2g9UX1zZXRXaW5kb3dDb250cm9sc1Zpc2libGUoUSl7dGhpcy5hcHBiYXJTaG93V2luZG93Q29udHJvbHM9UX1vblNlYXJjaChRKXt0aGlzLnNlYXJjaENhbGxiYWNrPVF9c2V0TWFpbk1lbnUoUSl7US5sb2dvSWNvbiE9PXZvaWQgMCYmKHRoaXMubWFpbm1lbnVMb2dvSWNvbj1RLmxvZ29JY29uKSxRLmxvZ29UZXh0IT09dm9pZCAwJiYodGhpcy5tYWlubWVudUxvZ29UZXh0PVEubG9nb1RleHQpLFEuZ3JvdXBzIT09dm9pZCAwJiYodGhpcy5tYWlubWVudUdyb3Vwcz1bLi4uUS5ncm91cHNdKSxRLmJvdHRvbVRhYnMhPT12b2lkIDAmJih0aGlzLm1haW5tZW51Qm90dG9tVGFicz1bLi4uUS5ib3R0b21UYWJzXSl9dXBkYXRlTWFpbk1lbnVHcm91cChRLHJlKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKEFlPT5BZS5uYW1lPT09UT97Li4uQWUsLi4ucmV9OkFlKX1hZGRNYWluTWVudUl0ZW0oUSxyZSl7dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLm1haW5tZW51R3JvdXBzLm1hcChBZT0+QWUubmFtZT09PVE/ey4uLkFlLGl0ZW1zOlsuLi5BZS5pdGVtc3x8W10scmVdfTpBZSl9cmVtb3ZlTWFpbk1lbnVJdGVtKFEscmUpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAoQWU9PkFlLm5hbWU9PT1RP3suLi5BZSxpdGVtczooQWUuaXRlbXN8fFtdKS5maWx0ZXIobXI9Pm1yLmtleSE9PXJlKX06QWUpfXNldE1haW5NZW51U2VsZWN0aW9uKFEpe2ZvcihsZXQgQWUgb2YgdGhpcy5tYWlubWVudUdyb3Vwcyl7bGV0IG1yPUFlLml0ZW1zPy5maW5kKHVuPT51bi5rZXk9PT1RKTtpZihtcil7dGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPW1yO3JldHVybn19bGV0IHJlPXRoaXMubWFpbm1lbnVCb3R0b21UYWJzLmZpbmQoQWU9PkFlLmtleT09PVEpO3JlJiYodGhpcy5tYWlubWVudVNlbGVjdGVkVGFiPXJlKX1zZXRNYWluTWVudUNvbGxhcHNlZChRKXt0aGlzLm1haW5tZW51Q29sbGFwc2VkPVF9c2V0TWFpbk1lbnVWaXNpYmxlKFEpe3RoaXMubWFpbm1lbnVWaXNpYmxlPVF9c2V0U2Vjb25kYXJ5TWVudUNvbGxhcHNlZChRKXt0aGlzLnNlY29uZGFyeW1lbnVDb2xsYXBzZWQ9UX1zZXRTZWNvbmRhcnlNZW51VmlzaWJsZShRKXt0aGlzLnNlY29uZGFyeW1lbnVWaXNpYmxlPVF9c2V0Q29udGVudFRhYnNWaXNpYmxlKFEpe3RoaXMubWFpbmNvbnRlbnRUYWJzVmlzaWJsZT1RfXNldENvbnRlbnRUYWJzQXV0b0hpZGUoUSxyZT0wKXt0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGU9USx0aGlzLmNvbnRlbnRUYWJzQXV0b0hpZGVUaHJlc2hvbGQ9cmV9c2V0TWFpbk1lbnVCYWRnZShRLHJlKXt0aGlzLm1haW5tZW51R3JvdXBzPXRoaXMubWFpbm1lbnVHcm91cHMubWFwKEFlPT4oey4uLkFlLGl0ZW1zOihBZS5pdGVtc3x8W10pLm1hcChtcj0+bXIua2V5PT09UT97Li4ubXIsYmFkZ2U6cmV9Om1yKX0pKSx0aGlzLm1haW5tZW51Qm90dG9tVGFicz10aGlzLm1haW5tZW51Qm90dG9tVGFicy5tYXAoQWU9PkFlLmtleT09PVE/ey4uLkFlLGJhZGdlOnJlfTpBZSl9Y2xlYXJNYWluTWVudUJhZGdlKFEpe3RoaXMubWFpbm1lbnVHcm91cHM9dGhpcy5tYWlubWVudUdyb3Vwcy5tYXAocmU9Pih7Li4ucmUsaXRlbXM6KHJlLml0ZW1zfHxbXSkubWFwKEFlPT57aWYoQWUua2V5PT09USl7bGV0e2JhZGdlOm1yLC4uLnVufT1BZTtyZXR1cm4gdW59cmV0dXJuIEFlfSl9KSksdGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5tYWlubWVudUJvdHRvbVRhYnMubWFwKHJlPT57aWYocmUua2V5PT09USl7bGV0e2JhZGdlOkFlLC4uLm1yfT1yZTtyZXR1cm4gbXJ9cmV0dXJuIHJlfSl9c2V0U2Vjb25kYXJ5TWVudShRKXtRLmhlYWRpbmchPT12b2lkIDAmJih0aGlzLnNlY29uZGFyeW1lbnVIZWFkaW5nPVEuaGVhZGluZyksdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzPVsuLi5RLmdyb3Vwc119dXBkYXRlU2Vjb25kYXJ5TWVudUdyb3VwKFEscmUpe3RoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz10aGlzLnNlY29uZGFyeW1lbnVHcm91cHMubWFwKEFlPT5BZS5uYW1lPT09UT97Li4uQWUsLi4ucmV9OkFlKX1hZGRTZWNvbmRhcnlNZW51SXRlbShRLHJlKXt0aGlzLnNlY29uZGFyeW1lbnVHcm91cHM9dGhpcy5zZWNvbmRhcnltZW51R3JvdXBzLm1hcChBZT0+QWUubmFtZT09PVE/ey4uLkFlLGl0ZW1zOlsuLi5BZS5pdGVtcyxyZV19OkFlKX1zZXRTZWNvbmRhcnlNZW51U2VsZWN0aW9uKFEpe2ZvcihsZXQgcmUgb2YgdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzKXtsZXQgQWU9cmUuaXRlbXMuZmluZChtcj0+ImtleSJpbiBtciYmbXIua2V5PT09USk7aWYoQWUmJighKCJ0eXBlImluIEFlKXx8QWUudHlwZT09PSJ0YWIifHxBZS50eXBlPT09dm9pZCAwKSl7dGhpcy5zZWNvbmRhcnltZW51U2VsZWN0ZWRJdGVtPUFlO3JldHVybn19fWNsZWFyU2Vjb25kYXJ5TWVudSgpe3RoaXMuc2Vjb25kYXJ5bWVudUhlYWRpbmc9IiIsdGhpcy5zZWNvbmRhcnltZW51R3JvdXBzPVtdLHRoaXMuc2Vjb25kYXJ5bWVudVNlbGVjdGVkSXRlbT12b2lkIDB9c2V0Q29udGVudFRhYnMoUSl7dGhpcy5tYWluY29udGVudFRhYnM9Wy4uLlFdLFEubGVuZ3RoPjAmJiF0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWImJih0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9UVswXSl9YWRkQ29udGVudFRhYihRKXt0aGlzLm1haW5jb250ZW50VGFicz1bLi4udGhpcy5tYWluY29udGVudFRhYnMsUV19cmVtb3ZlQ29udGVudFRhYihRKXt0aGlzLm1haW5jb250ZW50VGFicz10aGlzLm1haW5jb250ZW50VGFicy5maWx0ZXIocmU9PnJlLmtleSE9PVEpLHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj8ua2V5PT09USYmKHRoaXMubWFpbmNvbnRlbnRTZWxlY3RlZFRhYj10aGlzLm1haW5jb250ZW50VGFic1swXSl9c2VsZWN0Q29udGVudFRhYihRKXtsZXQgcmU9dGhpcy5tYWluY29udGVudFRhYnMuZmluZChBZT0+QWUua2V5PT09USk7cmUmJih0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWI9cmUpfWdldFNlbGVjdGVkQ29udGVudFRhYigpe3JldHVybiB0aGlzLm1haW5jb250ZW50U2VsZWN0ZWRUYWJ9Z2V0IGFjdGl2aXR5TG9nKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlsb2dFbGVtZW50P3thZGQ6UT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuYWRkKFEpLGFkZE1hbnk6UT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuYWRkTWFueShRKSxjbGVhcjooKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuY2xlYXIoKSxnZXRFbnRyaWVzOigpPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudC5nZXRFbnRyaWVzKCksZmlsdGVyOlE9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50LmZpbHRlcihRKSxzZWFyY2g6UT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQuc2VhcmNoKFEpfTp7YWRkOlE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGQoUSkpfSxhZGRNYW55OlE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5hZGRNYW55KFEpKX0sY2xlYXI6KCk9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5jbGVhcigpKX0sZ2V0RW50cmllczooKT0+dGhpcy5hY3Rpdml0eWxvZ0VsZW1lbnQ/LmdldEVudHJpZXMoKXx8W10sZmlsdGVyOlE9PnRoaXMuYWN0aXZpdHlsb2dFbGVtZW50Py5maWx0ZXIoUSl8fFtdLHNlYXJjaDpRPT50aGlzLmFjdGl2aXR5bG9nRWxlbWVudD8uc2VhcmNoKFEpfHxbXX19c2V0QWN0aXZpdHlMb2dWaXNpYmxlKFEpe3RoaXMuYWN0aXZpdHlMb2dWaXNpYmxlPVF9dG9nZ2xlQWN0aXZpdHlMb2coKXt0aGlzLmFjdGl2aXR5TG9nVmlzaWJsZT0hdGhpcy5hY3Rpdml0eUxvZ1Zpc2libGV9Z2V0QWN0aXZpdHlMb2dWaXNpYmxlKCl7cmV0dXJuIHRoaXMuYWN0aXZpdHlMb2dWaXNpYmxlfWdldCBib3R0b21CYXIoKXtyZXR1cm4gdGhpcy5ib3R0b21iYXJFbGVtZW50P3thZGRXaWRnZXQ6UT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmFkZFdpZGdldChRKSx1cGRhdGVXaWRnZXQ6KFEscmUpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQudXBkYXRlV2lkZ2V0KFEscmUpLHJlbW92ZVdpZGdldDpRPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlV2lkZ2V0KFEpLGdldFdpZGdldDpRPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuZ2V0V2lkZ2V0KFEpLGNsZWFyV2lkZ2V0czooKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyV2lkZ2V0cygpLGFkZEFjdGlvbjpRPT50aGlzLmJvdHRvbWJhckVsZW1lbnQuYWRkQWN0aW9uKFEpLHJlbW92ZUFjdGlvbjpRPT50aGlzLmJvdHRvbWJhckVsZW1lbnQucmVtb3ZlQWN0aW9uKFEpLGNsZWFyQWN0aW9uczooKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50LmNsZWFyQWN0aW9ucygpfTp7YWRkV2lkZ2V0OlE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkV2lkZ2V0KFEpKX0sdXBkYXRlV2lkZ2V0OihRLHJlKT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py51cGRhdGVXaWRnZXQoUSxyZSkpfSxyZW1vdmVXaWRnZXQ6UT0+e3RoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5yZW1vdmVXaWRnZXQoUSkpfSxnZXRXaWRnZXQ6UT0+dGhpcy5ib3R0b21iYXJFbGVtZW50Py5nZXRXaWRnZXQoUSksY2xlYXJXaWRnZXRzOigpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyV2lkZ2V0cygpKX0sYWRkQWN0aW9uOlE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8uYWRkQWN0aW9uKFEpKX0scmVtb3ZlQWN0aW9uOlE9Pnt0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9PnRoaXMuYm90dG9tYmFyRWxlbWVudD8ucmVtb3ZlQWN0aW9uKFEpKX0sY2xlYXJBY3Rpb25zOigpPT57dGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT50aGlzLmJvdHRvbWJhckVsZW1lbnQ/LmNsZWFyQWN0aW9ucygpKX19fXNldEJvdHRvbUJhclZpc2libGUoUSl7dGhpcy5ib3R0b21iYXJWaXNpYmxlPVEsUT90aGlzLnJlbW92ZUF0dHJpYnV0ZSgiYm90dG9tYmFyLWhpZGRlbiIpOnRoaXMuc2V0QXR0cmlidXRlKCJib3R0b21iYXItaGlkZGVuIiwiIil9Z2V0Qm90dG9tQmFyVmlzaWJsZSgpe3JldHVybiB0aGlzLmJvdHRvbWJhclZpc2libGV9YXN5bmMgbmF2aWdhdGVUb1ZpZXcoUSxyZSl7bGV0IEFlPXRoaXMudmlld1JlZ2lzdHJ5LmdldChRKTtpZighQWUpcmV0dXJuIGNvbnNvbGUud2FybihgQ2Fubm90IG5hdmlnYXRlIHRvIHVua25vd24gdmlldzogJHtRfWApLCExO2xldCBtcj1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5jYW5MZWF2ZUN1cnJlbnRWaWV3KCk7aWYobXIhPT0hMClpZih0eXBlb2YgbXI9PSJzdHJpbmciKXtpZighd2luZG93LmNvbmZpcm0obXIpKXJldHVybiExfWVsc2UgcmV0dXJuITE7dGhpcy52aWV3TGlmZWN5Y2xlJC5uZXh0KHt0eXBlOiJsb2FkaW5nIix2aWV3SWQ6UX0pO3RyeXthd2FpdCB0aGlzLmxvYWRWaWV3KEFlLHJlKTtsZXQgemg9YCMke0FlLnJvdXRlfHxRfWA7cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5oYXNoIT09emgmJndpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7dmlld0lkOlF9LCIiLHpoKSwhMH1jYXRjaCh1bil7cmV0dXJuIHRoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToibG9hZEVycm9yIix2aWV3SWQ6USxlcnJvcjp1bn0pLCExfX1nZXRDdXJyZW50Vmlldygpe3JldHVybiB0aGlzLmN1cnJlbnRWaWV3fWdldFZpZXdSZWdpc3RyeSgpe3JldHVybiB0aGlzLnZpZXdSZWdpc3RyeX1jb25maWd1cmUoUSl7US52aWV3cyYmKHRoaXMudmlld1JlZ2lzdHJ5LmNsZWFyKCksdGhpcy52aWV3UmVnaXN0cnkucmVnaXN0ZXJBbGwoUS52aWV3cykpLFEuYnJhbmRpbmcmJih0aGlzLm1haW5tZW51TG9nb0ljb249US5icmFuZGluZy5sb2dvSWNvbnx8IiIsdGhpcy5tYWlubWVudUxvZ29UZXh0PVEuYnJhbmRpbmcubG9nb1RleHR8fCIiKSxRLmFwcEJhciYmKHRoaXMuYXBwYmFyTWVudUl0ZW1zPVEuYXBwQmFyLm1lbnVJdGVtc3x8W10sdGhpcy5hcHBiYXJCcmVhZGNydW1icz1RLmFwcEJhci5icmVhZGNydW1ic3x8IiIsdGhpcy5hcHBiYXJCcmVhZGNydW1iU2VwYXJhdG9yPVEuYXBwQmFyLmJyZWFkY3J1bWJTZXBhcmF0b3J8fCIgPiAiLHRoaXMuYXBwYmFyU2hvd1dpbmRvd0NvbnRyb2xzPVEuYXBwQmFyLnNob3dXaW5kb3dDb250cm9scz8/ITAsdGhpcy5hcHBiYXJTaG93U2VhcmNoPVEuYXBwQmFyLnNob3dTZWFyY2g/PyExLHRoaXMuYXBwYmFyVXNlcj1RLmFwcEJhci51c2VyLHRoaXMuYXBwYmFyUHJvZmlsZU1lbnVJdGVtcz1RLmFwcEJhci5wcm9maWxlTWVudUl0ZW1zfHxbXSksUS5tYWluTWVudSYmKFEubWFpbk1lbnUuc2VjdGlvbnM/dGhpcy5tYWlubWVudUdyb3Vwcz10aGlzLmJ1aWxkTWFpbk1lbnVGcm9tU2VjdGlvbnMoUSk6US5tYWluTWVudS5ncm91cHMmJih0aGlzLm1haW5tZW51R3JvdXBzPVEubWFpbk1lbnUuZ3JvdXBzKSxRLm1haW5NZW51LmxvZ29JY29uJiYodGhpcy5tYWlubWVudUxvZ29JY29uPVEubWFpbk1lbnUubG9nb0ljb24pLFEubWFpbk1lbnUubG9nb1RleHQmJih0aGlzLm1haW5tZW51TG9nb1RleHQ9US5tYWluTWVudS5sb2dvVGV4dCksUS5tYWluTWVudS5ib3R0b21UYWJzP3RoaXMubWFpbm1lbnVCb3R0b21UYWJzPVEubWFpbk1lbnUuYm90dG9tVGFiczpRLm1haW5NZW51LmJvdHRvbUl0ZW1zJiYodGhpcy5tYWlubWVudUJvdHRvbVRhYnM9dGhpcy5idWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoUS5tYWluTWVudS5ib3R0b21JdGVtcykpKSxRLmJvdHRvbUJhciYmKHRoaXMuc2V0Qm90dG9tQmFyVmlzaWJsZShRLmJvdHRvbUJhci52aXNpYmxlPz8hMCksUS5ib3R0b21CYXIud2lkZ2V0cyYmUS5ib3R0b21CYXIud2lkZ2V0cy5mb3JFYWNoKHJlPT57dGhpcy5ib3R0b21CYXIuYWRkV2lkZ2V0KHJlKX0pLFEuYm90dG9tQmFyLmFjdGlvbnMmJlEuYm90dG9tQmFyLmFjdGlvbnMuZm9yRWFjaChyZT0+e3RoaXMuYm90dG9tQmFyLmFkZEFjdGlvbihyZSl9KSksdGhpcy5zZXR1cFJvdXRlckludGVncmF0aW9uKFEpLFEub25WaWV3Q2hhbmdlJiZ0aGlzLnZpZXdDaGFuZ2VkJC5zdWJzY3JpYmUocmU9PntRLm9uVmlld0NoYW5nZShyZS52aWV3SWQscmUudmlldyl9KSxRLm9uU2VhcmNoJiYodGhpcy5zZWFyY2hDYWxsYmFjaz1RLm9uU2VhcmNoKSxRLmRlZmF1bHRWaWV3JiZ0aGlzLm5hdmlnYXRlVG9WaWV3KFEuZGVmYXVsdFZpZXcpfXNldHVwUm91dGVySW50ZWdyYXRpb24oUSl7bGV0IHJlPSgpPT57bGV0IG1yPXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKCFtcilyZXR1cm47bGV0IHVuPXRoaXMudmlld1JlZ2lzdHJ5LmZpbmRCeVJvdXRlKG1yKTt1biYmdGhpcy5uYXZpZ2F0ZVRvVmlldyh1bi52aWV3LmlkLHVuLnBhcmFtcyl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIixyZSksdGhpcy5yb3V0ZXJDbGVhbnVwPSgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHJlKX07bGV0IEFlPXdpbmRvdy5sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKEFlKXtsZXQgbXI9dGhpcy52aWV3UmVnaXN0cnkuZmluZEJ5Um91dGUoQWUpO21yJiZzZXRUaW1lb3V0KCgpPT50aGlzLm5hdmlnYXRlVG9WaWV3KG1yLnZpZXcuaWQsbXIucGFyYW1zKSwwKX19YnVpbGRNYWluTWVudUZyb21TZWN0aW9ucyhRKXtyZXR1cm4gUS5tYWluTWVudT8uc2VjdGlvbnM/US5tYWluTWVudS5zZWN0aW9ucy5tYXAocmU9Pih7bmFtZTpyZS5uYW1lLGl0ZW1zOnJlLnZpZXdzLm1hcChBZT0+e2xldCBtcj10aGlzLnZpZXdSZWdpc3RyeS5nZXQoQWUpO3JldHVybiBtcj97a2V5Om1yLmlkLGljb25OYW1lOm1yLmljb25OYW1lLGFjdGlvbjooKT0+dGhpcy5uYXZpZ2F0ZVRvVmlldyhBZSksYmFkZ2U6bXIuYmFkZ2V9Oihjb25zb2xlLndhcm4oYFZpZXcgIiR7QWV9IiBub3QgZm91bmQgaW4gcmVnaXN0cnlgKSxudWxsKX0pLmZpbHRlcihCb29sZWFuKX0pKTpbXX1idWlsZEJvdHRvbVRhYnNGcm9tSXRlbXMoUSl7cmV0dXJuIFEubWFwKHJlPT57bGV0IEFlPXRoaXMudmlld1JlZ2lzdHJ5LmdldChyZSk7cmV0dXJuIEFlP3trZXk6QWUuaWQsaWNvbk5hbWU6QWUuaWNvbk5hbWUsYWN0aW9uOigpPT50aGlzLm5hdmlnYXRlVG9WaWV3KHJlKX06KGNvbnNvbGUud2FybihgVmlldyAiJHtyZX0iIG5vdCBmb3VuZCBpbiByZWdpc3RyeWApLG51bGwpfSkuZmlsdGVyKEJvb2xlYW4pfWFzeW5jIGxvYWRWaWV3KFEscmUpe2xldCBBZT10aGlzLmN1cnJlbnRWaWV3O3RoaXMuY3VycmVudFZpZXc9UTtsZXQgbXI9dGhpcy5tYWluY29udGVudD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIil8fHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXctY29udGFpbmVyIik7aWYobXIpe2xldCB6aD1hd2FpdCB0aGlzLnZpZXdSZWdpc3RyeS5hY3RpdmF0ZVZpZXcoUS5pZCxtcixyZSk7emgmJnRoaXMudmlld0xpZmVjeWNsZSQubmV4dCh7dHlwZToiYWN0aXZhdGVkIix2aWV3SWQ6US5pZCxlbGVtZW50OnpoLHBhcmFtczpyZX0pfVEuc2Vjb25kYXJ5TWVudSYmKHRoaXMuc2Vjb25kYXJ5bWVudUdyb3Vwcz1RLnNlY29uZGFyeU1lbnUsdGhpcy5zZWNvbmRhcnltZW51SGVhZGluZz1RLm5hbWUpLFEuY29udGVudFRhYnMmJih0aGlzLm1haW5jb250ZW50VGFicz1RLmNvbnRlbnRUYWJzKSx0aGlzLnNldE1haW5NZW51U2VsZWN0aW9uKFEuaWQpO2xldCB1bj17dmlld0lkOlEuaWQsdmlldzpRLHByZXZpb3VzVmlldzpBZSxwYXJhbXM6cmV9O3RoaXMudmlld0NoYW5nZWQkLm5leHQodW4pLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctY2hhbmdlIix7ZGV0YWlsOnVuLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyTWVudVNlbGVjdChRKXt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJhcHBiYXItbWVudS1zZWxlY3QiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJCcmVhZGNydW1iTmF2aWdhdGUoUSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLWJyZWFkY3J1bWItbmF2aWdhdGUiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVBcHBiYXJTZWFyY2hDbGljaygpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci1zZWFyY2gtY2xpY2siLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclNlYXJjaFF1ZXJ5KFEpe3RoaXMuc2VhcmNoQ2FsbGJhY2smJnRoaXMuc2VhcmNoQ2FsbGJhY2soUS5kZXRhaWwucXVlcnkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1xdWVyeSIse2RldGFpbDpRLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUFwcGJhclVzZXJNZW51T3Blbigpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImFwcGJhci11c2VyLW1lbnUtb3BlbiIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlQXBwYmFyUHJvZmlsZU1lbnVTZWxlY3QoUSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYXBwYmFyLXByb2ZpbGUtbWVudS1zZWxlY3QiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVNYWlubWVudVRhYlNlbGVjdChRKXt0aGlzLm1haW5tZW51U2VsZWN0ZWRUYWI9US5kZXRhaWwudGFiLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIm1haW5tZW51LXRhYi1zZWxlY3QiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWNvbmRhcnltZW51SXRlbVNlbGVjdChRKXt0aGlzLnNlY29uZGFyeW1lbnVTZWxlY3RlZEl0ZW09US5kZXRhaWwuaXRlbSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWNvbmRhcnltZW51LWl0ZW0tc2VsZWN0Iix7ZGV0YWlsOlEuZGV0YWlsLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9aGFuZGxlTWFpbm1lbnVDb2xsYXBzZUNoYW5nZShRKXt0aGlzLm1haW5tZW51Q29sbGFwc2VkPVEuZGV0YWlsLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJtYWlubWVudS1jb2xsYXBzZS1jaGFuZ2UiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVTZWNvbmRhcnltZW51Q29sbGFwc2VDaGFuZ2UoUSl7dGhpcy5zZWNvbmRhcnltZW51Q29sbGFwc2VkPVEuZGV0YWlsLmNvbGxhcHNlZCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzZWNvbmRhcnltZW51LWNvbGxhcHNlLWNoYW5nZSIse2RldGFpbDpRLmRldGFpbCxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWhhbmRsZUNvbnRlbnRUYWJTZWxlY3QoUSl7dGhpcy5tYWluY29udGVudFNlbGVjdGVkVGFiPVEuZGV0YWlsLnRhYix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjb250ZW50LXRhYi1zZWxlY3QiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1oYW5kbGVDb250ZW50VGFiQ2xvc2UoUSl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29udGVudC10YWItY2xvc2UiLHtkZXRhaWw6US5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1zdGF0aWN7UWUoaSxyKX19O3JldHVybiBqNWU9aX0pKCl9KTt2YXIgVmxyPXAoKCk9PntqbHIoKTtJNmUoKX0pO3ZhciBVbHI9cCgoKT0+e082ZSgpfSk7dmFyIFdscj1wKCgpPT57UDZlKCl9KTt2YXIgR2xyPXAoKCk9PntONmUoKX0pO3ZhciBZbHI9cCgoKT0+e2k2ZSgpfSk7dmFyIFpscj1wKCgpPT57RjZlKCl9KTt2YXIgWE4sVmQsWGxyLFFscj1wKCgpPT57d2koKTt4bygpO1FhKCk7eGUoKTtwYygpO29yKCk7SmUoKTtYTj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFZkPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxYbHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLW1vYmlsZW5hdmlnYXRpb24iKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpBcnJheX0pXSxkPVtmZSgpXSxYTih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhlYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJoZWFkaW5nImluIGIsZ2V0OmI9PmIuaGVhZGluZyxzZXQ6KGIseSk9PntiLmhlYWRpbmc9eX19LG1ldGFkYXRhOnZ9LG8scyksWE4odGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJtZW51SXRlbXMiaW4gYixnZXQ6Yj0+Yi5tZW51SXRlbXMsc2V0OihiLHkpPT57Yi5tZW51SXRlbXM9eX19LG1ldGFkYXRhOnZ9LGMsdSksWE4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2JpbGVOYXZaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJtb2JpbGVOYXZaSW5kZXgiaW4gYixnZXQ6Yj0+Yi5tb2JpbGVOYXZaSW5kZXgsc2V0OihiLHkpPT57Yi5tb2JpbGVOYXZaSW5kZXg9eX19LG1ldGFkYXRhOnZ9LGgsZiksWE4obnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6dn0sbnVsbCxyKSx4PWk9dC52YWx1ZSx2JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnZ9KX1zdGF0aWMgZGVtb0dyb3Vwcz1bIkFwcCBVSSJdO3N0YXRpYyBkZW1vPSgpPT5DYAogICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT57eC5jcmVhdGVBbmRTaG93KFt7bmFtZToiRGFzaGJvYXJkIixpY29uTmFtZToibHVjaWRlOmxheW91dC1kYXNoYm9hcmQiLGFjdGlvbjphc3luYyB2PT4oY29uc29sZS5sb2coIk5hdmlnYXRlIHRvIGRhc2hib2FyZCIpLG51bGwpfSx7bmFtZToiUHJvZmlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp1c2VyIixhY3Rpb246YXN5bmMgdj0+KGNvbnNvbGUubG9nKCJOYXZpZ2F0ZSB0byBwcm9maWxlIiksbnVsbCl9LHtuYW1lOiJTZXR0aW5ncyIsaWNvbk5hbWU6Imx1Y2lkZTpzZXR0aW5ncyIsYWN0aW9uOmFzeW5jIHY9Pihjb25zb2xlLmxvZygiTmF2aWdhdGUgdG8gc2V0dGluZ3MiKSxudWxsKX0se2RpdmlkZXI6ITB9LHtuYW1lOiJIZWxwIixpY29uTmFtZToibHVjaWRlOmhlbHAtY2lyY2xlIixhY3Rpb246YXN5bmMgdj0+KGNvbnNvbGUubG9nKCJTaG93IGhlbHAiKSxudWxsKX0se25hbWU6IlNpZ24gT3V0IixpY29uTmFtZToibHVjaWRlOmxvZy1vdXQiLGFjdGlvbjphc3luYyB2PT4oY29uc29sZS5sb2coIlNpZ24gb3V0IiksbnVsbCl9XSl9fT5PcGVuIE1vYmlsZSBOYXZpZ2F0aW9uPC9kZWVzLWJ1dHRvbj4KICBgO3N0YXRpYyBzaW5nbGV0b25SZWY7c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3codil7cmV0dXJuIHRoaXMuc2luZ2xldG9uUmVmfHwodGhpcy5zaW5nbGV0b25SZWY9bmV3IHgsZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5zaW5nbGV0b25SZWYpLGF3YWl0IHRoaXMuc2luZ2xldG9uUmVmLmluaXQoKSksdGhpcy5zaW5nbGV0b25SZWYubWVudUl0ZW1zPXYsYXdhaXQgdGhpcy5zaW5nbGV0b25SZWYucmVhZHlEZWZlcnJlZC5wcm9taXNlLHRoaXMuc2luZ2xldG9uUmVmLnNob3coKSx0aGlzLnNpbmdsZXRvblJlZn0jZT1WZCh0aGlzLG8sIk1lbnUiKTtnZXQgaGVhZGluZygpe3JldHVybiB0aGlzLiNlfXNldCBoZWFkaW5nKHYpe3RoaXMuI2U9dn0jdD0oVmQodGhpcyxzKSxWZCh0aGlzLGMsW10pKTtnZXQgbWVudUl0ZW1zKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1lbnVJdGVtcyh2KXt0aGlzLiN0PXZ9I3I9KFZkKHRoaXMsdSksVmQodGhpcyxoLDFlMykpO2dldCBtb2JpbGVOYXZaSW5kZXgoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbW9iaWxlTmF2WkluZGV4KHYpe3RoaXMuI3I9dn1yZWFkeURlZmVycmVkPShWZCh0aGlzLGYpLGt0LnBsdWdpbnMuc21hcnRwcm9taXNlLmRlZmVyKCkpO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1hc3luYyBpbml0KCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnJlYWR5RGVmZXJyZWQucmVzb2x2ZSgpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgfQoKICAgICAgLm1haW4gewogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtYXgtd2lkdGg6IDMyMHB4OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIHotaW5kZXg6IHZhcigtLXotaW5kZXgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBib3R0b206IDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgYm94LXNoYWRvdzogJHttLmJkVGhlbWUoIi0yMHB4IDAgMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgLTEwcHggMCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSIsIi0yMHB4IDAgMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKSwgLTEwcHggMCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQoKICAgICAgLm1haW4uc2hvdyB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkaW5nIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICB9CgogICAgICAubWVudUl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW06YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtIGRlZXMtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAubWVudUl0ZW06aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAubWVudUl0ZW0tdGV4dCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLm1lbnVJdGVtLWRpdmlkZXIgewogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBtYXJnaW46IDhweCAxNnB4OwogICAgICB9CgogICAgICAvKiBNb2JpbGUgcmVzcG9uc2l2ZW5lc3MgKi8KICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSB7CiAgICAgICAgLm1haW4gewogICAgICAgICAgbWF4LXdpZHRoOiAxMDB2dzsKICAgICAgICAgIHdpZHRoOiA4NXZ3OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogQW5pbWF0aW9uIGZvciBtZW51IGl0ZW1zICovCiAgICAgIEBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHsKICAgICAgICBmcm9tIHsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAubWFpbi5zaG93IC5tZW51SXRlbSB7CiAgICAgICAgYW5pbWF0aW9uOiBzbGlkZUluUmlnaHQgMC4zcyBlYXNlLW91dCBmb3J3YXJkczsKICAgICAgICBhbmltYXRpb24tZGVsYXk6IGNhbGModmFyKC0taXRlbS1pbmRleCwgMCkgKiAwLjA1cyk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgfQoKICAgICAgLm1lbnUtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5tZW51LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzUyNTI1YiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzdHlsZT4KICAgICAgICAubWFpbiB7CiAgICAgICAgICAtLXotaW5kZXg6ICR7dGhpcy5tb2JpbGVOYXZaSW5kZXh9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0ibWFpbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgICAgIDxoMiBjbGFzcz0iaGVhZGluZyI+JHt0aGlzLmhlYWRpbmd9PC9oMj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LWNvbnRhaW5lciI+CiAgICAgICAgICAke3RoaXMubWVudUl0ZW1zLm1hcCgodixiKT0+ImRpdmlkZXIiaW4gdiYmdi5kaXZpZGVyP0NgPGRpdiBjbGFzcz0ibWVudUl0ZW0tZGl2aWRlciI+PC9kaXY+YDpDYAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJtZW51SXRlbSIKICAgICAgICAgICAgICAgIHN0eWxlPSItLWl0ZW0taW5kZXg6ICR7Yn0iCiAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9Pnt0aGlzLmhpZGUoKSx2LmFjdGlvbih0aGlzKX19IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7di5pY29uTmFtZT9DYAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7di5pY29uTmFtZX0gc2l6ZT0iMjAiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51SXRlbS10ZXh0Ij4ke3YubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9d2luZG93TGF5ZXI7YXN5bmMgc2hvdygpe2xldCB2PWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLGI9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluIik7dGhpcy53aW5kb3dMYXllcj8oZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy53aW5kb3dMYXllciksYXdhaXQgdGhpcy53aW5kb3dMYXllci5zaG93KCkpOih0aGlzLndpbmRvd0xheWVyPWF3YWl0ICRvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3RoaXMuaGlkZSgpfSkpLHRoaXMubW9iaWxlTmF2WkluZGV4PUtyLmdldE5leHRaSW5kZXgoKSxLci5yZWdpc3Rlcih0aGlzLHRoaXMubW9iaWxlTmF2WkluZGV4KSxhd2FpdCB2LmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMTApLGIuY2xhc3NMaXN0LmFkZCgic2hvdyIpfWFzeW5jIGhpZGUoKXtsZXQgdj1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW4iKS5jbGFzc0xpc3QucmVtb3ZlKCJzaG93IiksS3IudW5yZWdpc3Rlcih0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksS3IudW5yZWdpc3Rlcih0aGlzKSx0aGlzLndpbmRvd0xheWVyJiZhd2FpdCB0aGlzLndpbmRvd0xheWVyLmRlc3Ryb3koKX1zdGF0aWN7VmQoaSxyKX19O3JldHVybiB4PWl9KSgpfSk7dmFyIEpscj1wKCgpPT57UWxyKCl9KTt2YXIgS2xyPXAoKCk9PntqMnIoKTthNmUoKTtsc3IoKTtWbHIoKTtVbHIoKTtXbHIoKTtHbHIoKTtZbHIoKTtabHIoKTtKbHIoKX0pO3ZhciBlY3I9cCgoKT0+e0k0KCl9KTt2YXIgdGNyLFI2ZSxyY3IsaWNyPXAoKCk9Pnt4ZSgpO3Rjcj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFI2ZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0scmNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1idXR0b24tZXhpdCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOk51bWJlcn0pXSx0Y3IodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4ic2l6ZSJpbiB1LGdldDp1PT51LnNpemUsc2V0Oih1LGQpPT57dS5zaXplPWR9fSxtZXRhZGF0YTpjfSxvLHMpLHRjcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPSgpPT5DYAogICAgPGRlZXMtYnV0dG9uLWV4aXQ+PC9kZWVzLWJ1dHRvbi1leGl0PgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJCdXR0b24iXTsjZT1SNmUodGhpcyxvLDI0KTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKGMpe3RoaXMuI2U9Y31zdHlsZXM9KFI2ZSh0aGlzLHMpLFttLmRlZmF1bHRTdHlsZXMsb2VgCgogICAgYF0pO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgLm1haW5jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6ICR7dGhpcy5zaXplfXB4OwogICAgICAgICAgaGVpZ2h0OiAke3RoaXMuc2l6ZX1weDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImZpcnN0TGluZSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2Vjb25kTGluZSI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7UjZlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBhY3I9cCgoKT0+e2ljcigpfSk7dmFyIG5jcixvY3I9cCgoKT0+e3hlKCk7bmNyPSgpPT5DYAogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAuZGVtby1kZXNjcmlwdGlvbiB7CiAgICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkJhc2ljIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGhvdXQgbGFiZWxzIGZvciBzaW1wbGUgZ3JvdXBpbmc8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgPGRlZXMtYnV0dG9uPk9wdGlvbiAxPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5PcHRpb24gMjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+T3B0aW9uIDM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPkxhYmVsZWQgQnV0dG9uIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPkJ1dHRvbiBncm91cHMgd2l0aCBkZXNjcmlwdGl2ZSBsYWJlbHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJWaWV3IE1vZGU6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+R3JpZDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+TGlzdDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24+Q2FyZHM8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPk11bHRpcGxlIEdyb3VwczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPk11bHRpcGxlIGJ1dHRvbiBncm91cHMgdXNlZCB0b2dldGhlcjwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBmbGV4OyBnYXA6IDE2cHg7IGZsZXgtd3JhcDogd3JhcDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEYXRhc2V0OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+U3lzdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPk5ldHdvcms8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+U2FsZXM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPC9kZWVzLWJ1dHRvbi1ncm91cD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJUaW1lIFJhbmdlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj4xSDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+MjRIPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjdEPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPjMwRDwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkFjdGlvbnM6Ij4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+RXhwb3J0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlZlcnRpY2FsIEJ1dHRvbiBHcm91cHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5CdXR0b24gZ3JvdXBzIHdpdGggdmVydGljYWwgbGF5b3V0PC9wPgogICAgICAgIAogICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogMjRweDsiPgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGRpcmVjdGlvbj0idmVydGljYWwiIGxhYmVsPSJOYXZpZ2F0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EYXNoYm9hcmQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiPkFuYWx5dGljczwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5SZXBvcnRzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPlNldHRpbmdzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBkaXJlY3Rpb249InZlcnRpY2FsIj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBJdGVtPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkVkaXQgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5EZWxldGUgSXRlbTwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NaXhlZCBCdXR0b24gVHlwZXM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj5EaWZmZXJlbnQgYnV0dG9uIHR5cGVzIHdpdGhpbiBncm91cHM8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJTdGF0dXM6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJzdWNjZXNzIj5BY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlBlbmRpbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRhbmdlciI+SW5hY3RpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0pO3ZhciBCNmUsbWIsc2NyLGxjcj1wKCgpPT57eGUoKTtLdCgpO29jcigpO0plKCk7QjZlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sbWI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHNjcj0oKCk9PntsZXQgZT1beWUoImRlZXMtYnV0dG9uLWdyb3VwIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooKV0sbD1baigpXSxCNmUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+ImxhYmVsImluIGYsZ2V0OmY9PmYubGFiZWwsc2V0OihmLHgpPT57Zi5sYWJlbD14fX0sbWV0YWRhdGE6aH0sbyxzKSxCNmUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaXJlY3Rpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmY9PiJkaXJlY3Rpb24iaW4gZixnZXQ6Zj0+Zi5kaXJlY3Rpb24sc2V0OihmLHgpPT57Zi5kaXJlY3Rpb249eH19LG1ldGFkYXRhOmh9LGMsdSksQjZlKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmh9LG51bGwsciksZD1pPXQudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89bmNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiQnV0dG9uIl07I2U9bWIodGhpcyxvLCIiKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbGFiZWwoaCl7dGhpcy4jZT1ofSN0PShtYih0aGlzLHMpLG1iKHRoaXMsYywiaG9yaXpvbnRhbCIpKTtnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGRpcmVjdGlvbihoKXt0aGlzLiN0PWh9Y29uc3RydWN0b3IoKXtzdXBlcigpLG1iKHRoaXMsdSksZDEuc2V0dXAoKX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLmJ1dHRvbi1ncm91cC52ZXJ0aWNhbCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgfQoKICAgICAgLmxhYmVsIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2NjYiLCIjOTk5Iil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIG1hcmdpbi1yaWdodDogOHB4OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JvdXAudmVydGljYWwgLmxhYmVsIHsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICB9CgogICAgICA6OnNsb3R0ZWQoKikgewogICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyb3VwICR7dGhpcy5kaXJlY3Rpb259Ij4KICAgICAgICAke3RoaXMubGFiZWw/Q2A8c3BhbiBjbGFzcz0ibGFiZWwiPiR7dGhpcy5sYWJlbH08L3NwYW4+YDoiIn0KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7bWIoaSxyKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIGNjcj1wKCgpPT57bGNyKCl9KTt2YXIgZGNyPXAoKCk9PntlY3IoKTthY3IoKTtjY3IoKX0pO3ZhciB1Y3IscGNyPXAoKCk9Pnt4ZSgpO3AxKCk7SDZlKCk7dWNyPSgpPT57bGV0IGU9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseToyNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6MzB9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjI4fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTozNX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTozMn0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6Mzh9XX0se25hbWU6Ik1lbW9yeSIsZGF0YTpbe3g6bmV3IERhdGUoRGF0ZS5ub3coKS0zZTUpLnRvSVNPU3RyaW5nKCkseTo0NX0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS0yNGU0KS50b0lTT1N0cmluZygpLHk6NDh9LHt4Om5ldyBEYXRlKERhdGUubm93KCktMThlNCkudG9JU09TdHJpbmcoKSx5OjQ2fSx7eDpuZXcgRGF0ZShEYXRlLm5vdygpLTEyZTQpLnRvSVNPU3RyaW5nKCkseTo1Mn0se3g6bmV3IERhdGUoRGF0ZS5ub3coKS02ZTQpLnRvSVNPU3RyaW5nKCkseTo1MH0se3g6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLHk6NTV9XX1dfX0sdD17c3lzdGVtOnI9PmAke3J9JWB9O3JldHVybiBDYAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgcj0+e2xldCBpPXIucXVlcnlTZWxlY3RvcigiI21haW4tY2hhcnQiKSxhPXIucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3Rpb25zLWNoYXJ0IiksbixvLHM9InN5c3RlbSIsbD17c3lzdGVtOlM9PmAke1N9JWAsbmV0d29yazpTPT5gJHtTfSBNYnBzYCxzYWxlczpTPT5gJCR7Uy50b0xvY2FsZVN0cmluZygpfWB9LGM9MTIwKjFlMyx1PTFlMyxkPTVlMyxoPXtjcHU6MzAsbWVtb3J5OjUwLGRvd25sb2FkOjE1MCx1cGxvYWQ6MzAsY29ubmVjdGlvbnM6MTUwfSxmPShTLCQsVD1kKT0+e2xldCBFPVtdLHE9RGF0ZS5ub3coKSxCPU1hdGguZmxvb3IoYy9UKTtmb3IobGV0IEc9QjtHPj0wO0ctLSl7bGV0IGVlPW5ldyBEYXRlKHEtRypUKS50b0lTT1N0cmluZygpLFA9UysoTWF0aC5yYW5kb20oKS0uNSkqJDtFLnB1c2goe3g6ZWUseTpNYXRoLnJvdW5kKFApfSl9cmV0dXJuIEV9LHg9e3N5c3RlbTp7bGFiZWw6IlN5c3RlbSBVc2FnZSAoJSkiLHNlcmllczpbe25hbWU6IkNQVSIsZGF0YTpmKGguY3B1LDEwKX0se25hbWU6Ik1lbW9yeSIsZGF0YTpmKGgubWVtb3J5LDgpfV19LG5ldHdvcms6e2xhYmVsOiJOZXR3b3JrIFRyYWZmaWMgKE1icHMpIixzZXJpZXM6W3tuYW1lOiJEb3dubG9hZCIsZGF0YTpmKGguZG93bmxvYWQsMzApfSx7bmFtZToiVXBsb2FkIixkYXRhOmYoaC51cGxvYWQsMTApfV19LHNhbGVzOntsYWJlbDoiU2FsZXMgQW5hbHl0aWNzIixzZXJpZXM6W3tuYW1lOiJSZXZlbnVlIixkYXRhOlt7eDoiMjAyNS0wMS0wMSIseTo0NWUzfSx7eDoiMjAyNS0wMS0wMiIseTo1MmUzfSx7eDoiMjAyNS0wMS0wMyIseTo0OGUzfSx7eDoiMjAyNS0wMS0wNCIseTo2MWUzfSx7eDoiMjAyNS0wMS0wNSIseTo1OGUzfSx7eDoiMjAyNS0wMS0wNiIseTo2NWUzfV19LHtuYW1lOiJQcm9maXQiLGRhdGE6W3t4OiIyMDI1LTAxLTAxIix5OjEyZTN9LHt4OiIyMDI1LTAxLTAyIix5OjE0ZTN9LHt4OiIyMDI1LTAxLTAzIix5OjExZTN9LHt4OiIyMDI1LTAxLTA0Iix5OjE4ZTN9LHt4OiIyMDI1LTAxLTA1Iix5OjE2ZTN9LHt4OiIyMDI1LTAxLTA2Iix5OjJlNH1dfV19fSx2PShTLCQsVCxFPTUpPT57bGV0IHE9KE1hdGgucmFuZG9tKCktLjUpKkUqMixCPVMrcSxlZT0oKCQrVCkvMi1CKSouMTtyZXR1cm4gQis9ZWUsQj1NYXRoLm1heCgkLE1hdGgubWluKFQsQikpLE1hdGgucm91bmQoQil9LGI9RGF0ZS5ub3coKSx5PURhdGUubm93KCksdz0oKT0+e2lmKCFpKXJldHVybjtsZXQgUz1EYXRlLm5vdygpO2lmKFMtYj49ZCl7Yj1TO2xldCBUPW5ldyBEYXRlKFMpLnRvSVNPU3RyaW5nKCk7aWYocz09PSJzeXN0ZW0iKXtoLmNwdT12KGguY3B1LDIwLDUwLDMpLGgubWVtb3J5PXYoaC5tZW1vcnksNDAsNzAsMik7bGV0IEU9aS5jaGFydFNlcmllcy5tYXAoKHEsQik9Pih7bmFtZTpxLm5hbWUsZGF0YTpbLi4ucS5kYXRhLEI9PT0wP3t4OlQseTpoLmNwdX06e3g6VCx5OmgubWVtb3J5fV19KSk7aS51cGRhdGVTZXJpZXMoRSwhMSl9ZWxzZSBpZihzPT09Im5ldHdvcmsiKXtoLmRvd25sb2FkPXYoaC5kb3dubG9hZCwxMDAsMjAwLDEwKSxoLnVwbG9hZD12KGgudXBsb2FkLDIwLDUwLDUpO2xldCBFPWkuY2hhcnRTZXJpZXMubWFwKChxLEIpPT4oe25hbWU6cS5uYW1lLGRhdGE6Wy4uLnEuZGF0YSxCPT09MD97eDpULHk6aC5kb3dubG9hZH06e3g6VCx5OmgudXBsb2FkfV19KSk7aS51cGRhdGVTZXJpZXMoRSwhMSl9fX0saz0oKT0+e2lmKCFhKXJldHVybjtsZXQgUz1EYXRlLm5vdygpLCQ9bmV3IERhdGUoUykudG9JU09TdHJpbmcoKSxUPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoyMSktMTA7aC5jb25uZWN0aW9ucz1NYXRoLm1heCg1MCxNYXRoLm1pbigzMDAsaC5jb25uZWN0aW9ucytUKSk7bGV0IEU9YS5jaGFydFNlcmllcyxxPVt7bmFtZTpFWzBdPy5uYW1lfHwiQ29ubmVjdGlvbnMiLGRhdGE6Wy4uLkVbMF0/LmRhdGF8fFtdLHt4OiQseTpoLmNvbm5lY3Rpb25zfV19XTthLnVwZGF0ZVNlcmllcyhxLCExKX0sTz1TPT57cz1TO2xldCAkPXhbU107aS5sYWJlbD0kLmxhYmVsLGkuc2VyaWVzPSQuc2VyaWVzLGkueUF4aXNGb3JtYXR0ZXI9bFtTXSxTPT09InN5c3RlbSI/KGkueUF4aXNTY2FsaW5nPSJwZXJjZW50YWdlIixpLnlBeGlzTWF4PTEwMCk6aS55QXhpc1NjYWxpbmc9ImR5bmFtaWMiLGI9RGF0ZS5ub3coKS1kfSx6PSgpPT57IW4mJihzPT09InN5c3RlbSJ8fHM9PT0ibmV0d29yayIpJiYoaS5yZWFsdGltZU1vZGU9ITAsbj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9PncoKSxkKSksb3x8KGEucmVhbHRpbWVNb2RlPSEwLG89d2luZG93LnNldEludGVydmFsKCgpPT5rKCksdSkpfSxNPSgpPT57biYmKHdpbmRvdy5jbGVhckludGVydmFsKG4pLG49bnVsbCxpLnJlYWx0aW1lTW9kZT0hMSksbyYmKHdpbmRvdy5jbGVhckludGVydmFsKG8pLG89bnVsbCxhLnJlYWx0aW1lTW9kZT0hMSl9LEY9KCk9PntzPT09InN5c3RlbSI/KGguY3B1PU1hdGgucmFuZG9tKCk+LjU/ODU6MjUsaC5tZW1vcnk9TWF0aC5yYW5kb20oKT4uNT84MDo0NSk6cz09PSJuZXR3b3JrIiYmKGguZG93bmxvYWQ9TWF0aC5yYW5kb20oKT4uNT8yNTA6MTAwLGgudXBsb2FkPU1hdGgucmFuZG9tKCk+LjU/ODA6MjApLGguY29ubmVjdGlvbnM9TWF0aC5yYW5kb20oKT4uNT8yODA6ODAsYj0wLHk9MH0sRD1yLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIik7RC5mb3JFYWNoKFM9PntsZXQgJD1TLnRleHRDb250ZW50Py50cmltKCk7JD09PSJTeXN0ZW0gVXNhZ2UiP1MuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5PKCJzeXN0ZW0iKSk6JD09PSJOZXR3b3JrIFRyYWZmaWMiP1MuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5PKCJuZXR3b3JrIikpOiQ9PT0iU2FsZXMgRGF0YSI/Uy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pk8oInNhbGVzIikpOiQ9PT0iU3RhcnQgTGl2ZSI/Uy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnooKSk6JD09PSJTdG9wIExpdmUiP1MuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5NKCkpOiQ9PT0iU3Bpa2UgVmFsdWVzIiYmUy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PkYoKSl9KTtsZXQgTj0oKT0+e3IucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1idXR0b24iKS5mb3JFYWNoKCQ9PntsZXQgVD0kLnRleHRDb250ZW50Py50cmltKCk7VD09PSJTeXN0ZW0gVXNhZ2UiPyQudHlwZT1zPT09InN5c3RlbSI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpUPT09Ik5ldHdvcmsgVHJhZmZpYyI/JC50eXBlPXM9PT0ibmV0d29yayI/ImhpZ2hsaWdodGVkIjoibm9ybWFsIjpUPT09IlNhbGVzIERhdGEiJiYoJC50eXBlPXM9PT0ic2FsZXMiPyJoaWdobGlnaHRlZCI6Im5vcm1hbCIpfSl9O2kucm9sbGluZ1dpbmRvdz1jLGkucmVhbHRpbWVNb2RlPSExLGkueUF4aXNTY2FsaW5nPSJwZXJjZW50YWdlIixpLnlBeGlzTWF4PTEwMCxpLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e2kudXBkYXRlVGltZVdpbmRvdygpfSwxMDApO2xldCBSPU8sXz1TPT57UihTKSxOKCl9O2lmKEQuZm9yRWFjaChTPT57bGV0ICQ9Uy50ZXh0Q29udGVudD8udHJpbSgpOyQ9PT0iU3lzdGVtIFVzYWdlIj8oUy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pk8oInN5c3RlbSIpKSxTLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+Xygic3lzdGVtIikpKTokPT09Ik5ldHdvcmsgVHJhZmZpYyI/KFMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5PKCJuZXR3b3JrIikpLFMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5fKCJuZXR3b3JrIikpKTokPT09IlNhbGVzIERhdGEiJiYoUy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pk8oInNhbGVzIikpLFMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5fKCJzYWxlcyIpKSl9KSxhKXtsZXQgUz1mKGguY29ubmVjdGlvbnMsMzAsdSk7YS5zZXJpZXM9W3tuYW1lOiJDb25uZWN0aW9ucyIsZGF0YTpTfV0sYS5yb2xsaW5nV2luZG93PWMsYS5yZWFsdGltZU1vZGU9ITEsYS55QXhpc1NjYWxpbmc9ImZpeGVkIixhLnlBeGlzTWF4PTM1MCxhLmF1dG9TY3JvbGxJbnRlcnZhbD0xZTMsc2V0VGltZW91dCgoKT0+e2EudXBkYXRlVGltZVdpbmRvdygpfSwxMDApfX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtvZWAKICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5jaGFydC1jb250YWluZXIgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuaW5mbyB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA1Ni45JSkiLCJoc2woMjE1IDIwLjIlIDU1LjElKSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICB9CiAgICAgIGB9CiAgICA8L3N0eWxlPgogICAgPGRpdiBjbGFzcz0iZGVtb0JveCI+CiAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICA8ZGVlcy1idXR0b24tZ3JvdXAgbGFiZWw9IkRhdGFzZXQ6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiB0eXBlPSJoaWdobGlnaHRlZCI+U3lzdGVtIFVzYWdlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5OZXR3b3JrIFRyYWZmaWM8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlNhbGVzIERhdGE8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJSZWFsLXRpbWU6Ij4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBMaXZlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wIExpdmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgCiAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJBY3Rpb25zOiI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+U3Bpa2UgVmFsdWVzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImNoYXJ0LWNvbnRhaW5lciI+CiAgICAgICAgPGRlZXMtY2hhcnQtYXJlYQogICAgICAgICAgaWQ9Im1haW4tY2hhcnQiCiAgICAgICAgICAubGFiZWw9JHtlLnN5c3RlbS5sYWJlbH0KICAgICAgICAgIC5zZXJpZXM9JHtlLnN5c3RlbS5zZXJpZXN9CiAgICAgICAgICAueUF4aXNGb3JtYXR0ZXI9JHt0LnN5c3RlbX0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWFyZWE+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtY29udGFpbmVyIiBzdHlsZT0ibWFyZ2luLXRvcDogMjBweDsiPgogICAgICAgIDxkZWVzLWNoYXJ0LWFyZWEKICAgICAgICAgIGlkPSJjb25uZWN0aW9ucy1jaGFydCIKICAgICAgICAgIC5sYWJlbD0keyJBY3RpdmUgQ29ubmVjdGlvbnMifQogICAgICAgICAgLnNlcmllcz0ke1t7bmFtZToiQ29ubmVjdGlvbnMiLGRhdGE6W119XX0KICAgICAgICAgIC55QXhpc0Zvcm1hdHRlcj0ke3I9PmAke3J9YH0KICAgICAgICA+PC9kZWVzLWNoYXJ0LWFyZWE+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iaW5mbyI+CiAgICAgICAgUmVhbC10aW1lIG1vbml0b3Jpbmcgd2l0aCAyLW1pbnV0ZSByb2xsaW5nIHdpbmRvdyDigKIgCiAgICAgICAgVXBkYXRlcyBldmVyeSBzZWNvbmQgd2l0aCBzbW9vdGggdmFsdWUgdHJhbnNpdGlvbnMg4oCiIAogICAgICAgIENsaWNrICdTcGlrZSBWYWx1ZXMnIHRvIHNpbXVsYXRlIGxvYWQgc3Bpa2VzCiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH19KTt2YXIgaGNyLGZjcj1wKCgpPT57eGUoKTtoY3I9W20uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5tYWluYm94IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiA0MDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuY2hhcnRUaXRsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQogICAgICAuY2hhcnRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgYm90dG9tOiAwcHg7CiAgICAgICAgcmlnaHQ6IDBweDsKICAgICAgICBwYWRkaW5nOiA0NHB4IDE2cHggMTZweCAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogRW5zdXJlIGNvbnRhaW5lciBkb2Vzbid0IG92ZXJyaWRlIGNoYXJ0IGJhY2tncm91bmQgKi8KICAgICAgfQogICAgICAKICAgICAgLyogQXBleENoYXJ0cyB0aGVtZSBvdmVycmlkZXMgKi8KICAgICAgLmFwZXhjaGFydHMtY2FudmFzIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAuYXBleGNoYXJ0cy1pbm5lciB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgICAgfQogICAgICAKICAgICAgLmFwZXhjaGFydHMtZ3JhcGhpY2FsIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICB9CiAgICBgXX0pO3ZhciBtY3IsZ2NyPXAoKCk9Pnt4ZSgpO21jcj1lPT5DYAogICAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRUaXRsZSI+JHtlLmxhYmVsfTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnRDb250YWluZXIiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgfSk7dmFyIEUyLElhLHE2ZT1wKCgpPT57RTI9e3h0ZXJtOiI1LjMuMCIseHRlcm1BZGRvbkZpdDoiMC44LjAiLHh0ZXJtQWRkb25TZWFyY2g6IjAuMTMuMCIsaGlnaGxpZ2h0SnM6IjExLjExLjEiLGFwZXhjaGFydHM6IjUuMy42Iix0aXB0YXA6IjIuMjMuMCIsZm9udGF3ZXNvbWU6IjcuMS4wIn0sSWE9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0ifSk7dmFyIHJhLGJjcj1wKCgpPT57cTZlKCk7cmE9Y2xhc3MgZXtzdGF0aWMgaW5zdGFuY2U7eHRlcm1MaWI9bnVsbDt4dGVybUZpdEFkZG9uTGliPW51bGw7eHRlcm1TZWFyY2hBZGRvbkxpYj1udWxsO2hpZ2hsaWdodEpzTGliPW51bGw7YXBleENoYXJ0c0xpYj1udWxsO3RpcHRhcExpYj1udWxsO3h0ZXJtTG9hZGluZ1Byb21pc2U9bnVsbDt4dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2U9bnVsbDt4dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2U9bnVsbDtoaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlPW51bGw7YXBleENoYXJ0c0xvYWRpbmdQcm9taXNlPW51bGw7dGlwdGFwTG9hZGluZ1Byb21pc2U9bnVsbDtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtyZXR1cm4gZS5pbnN0YW5jZXx8KGUuaW5zdGFuY2U9bmV3IGUpLGUuaW5zdGFuY2V9YXN5bmMgbG9hZFh0ZXJtKCl7cmV0dXJuIHRoaXMueHRlcm1MaWI/dGhpcy54dGVybUxpYjp0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U/dGhpcy54dGVybUxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgcj1hd2FpdCBpbXBvcnQoYCR7SWF9L3h0ZXJtQCR7RTIueHRlcm19Lytlc21gKTtyZXR1cm4gYXdhaXQgdGhpcy5pbmplY3RYdGVybVN0eWxlcygpLHRoaXMueHRlcm1MaWI9e1Rlcm1pbmFsOnIuVGVybWluYWx9LHRoaXMueHRlcm1MaWJ9KSgpLHRoaXMueHRlcm1Mb2FkaW5nUHJvbWlzZSl9YXN5bmMgbG9hZFh0ZXJtRml0QWRkb24oKXtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliP3RoaXMueHRlcm1GaXRBZGRvbkxpYjp0aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZT90aGlzLnh0ZXJtRml0QWRkb25Mb2FkaW5nUHJvbWlzZToodGhpcy54dGVybUZpdEFkZG9uTG9hZGluZ1Byb21pc2U9KGFzeW5jKCk9PntsZXQgcj1hd2FpdCBpbXBvcnQoYCR7SWF9L3h0ZXJtLWFkZG9uLWZpdEAke0UyLnh0ZXJtQWRkb25GaXR9Lytlc21gKTtyZXR1cm4gdGhpcy54dGVybUZpdEFkZG9uTGliPXtGaXRBZGRvbjpyLkZpdEFkZG9ufSx0aGlzLnh0ZXJtRml0QWRkb25MaWJ9KSgpLHRoaXMueHRlcm1GaXRBZGRvbkxvYWRpbmdQcm9taXNlKX1hc3luYyBsb2FkWHRlcm1TZWFyY2hBZGRvbigpe3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI/dGhpcy54dGVybVNlYXJjaEFkZG9uTGliOnRoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlP3RoaXMueHRlcm1TZWFyY2hBZGRvbkxvYWRpbmdQcm9taXNlOih0aGlzLnh0ZXJtU2VhcmNoQWRkb25Mb2FkaW5nUHJvbWlzZT0oYXN5bmMoKT0+e2xldCByPWF3YWl0IGltcG9ydChgJHtJYX0veHRlcm0tYWRkb24tc2VhcmNoQCR7RTIueHRlcm1BZGRvblNlYXJjaH0vK2VzbWApO3JldHVybiB0aGlzLnh0ZXJtU2VhcmNoQWRkb25MaWI9e1NlYXJjaEFkZG9uOnIuU2VhcmNoQWRkb259LHRoaXMueHRlcm1TZWFyY2hBZGRvbkxpYn0pKCksdGhpcy54dGVybVNlYXJjaEFkZG9uTG9hZGluZ1Byb21pc2UpfWFzeW5jIGluamVjdFh0ZXJtU3R5bGVzKCl7bGV0IHQ9Inh0ZXJtLWNkbi1zdHlsZXMiO2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpKXJldHVybjtsZXQgcj1gJHtJYX0veHRlcm1AJHtFMi54dGVybX0vY3NzL3h0ZXJtLmNzc2AsYT1hd2FpdChhd2FpdCBmZXRjaChyKSkudGV4dCgpLG49YAovKiBGaXggeHRlcm0uanMgV2lkdGhDYWNoZSBtZWFzdXJlbWVudCBjb250YWluZXIgY2F1c2luZyBob3Jpem9udGFsIHNjcm9sbGJhciAqLwovKiB4dGVybSBjcmVhdGVzIHRoaXMgb24gZG9jdW1lbnQuYm9keSAtIG1vdmUgaXQgb2ZmLXNjcmVlbiBob3Jpem9udGFsbHkgdG9vICovCmJvZHkgPiBkaXZbc3R5bGUqPSJ0b3A6IC01MDAwMHB4Il1bc3R5bGUqPSJ3aWR0aDogNTAwMDBweCJdIHsKICBsZWZ0OiAtNTAwMDBweCAhaW1wb3J0YW50Owp9CmAsbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO28uaWQ9dCxvLnRleHRDb250ZW50PWErbixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pfWFzeW5jIGxvYWRIaWdobGlnaHRKcygpe3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliP3RoaXMuaGlnaGxpZ2h0SnNMaWI6dGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlP3RoaXMuaGlnaGxpZ2h0SnNMb2FkaW5nUHJvbWlzZToodGhpcy5oaWdobGlnaHRKc0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHI9YXdhaXQgaW1wb3J0KGAke0lhfS9oaWdobGlnaHQuanNAJHtFMi5oaWdobGlnaHRKc30vK2VzbWApO3JldHVybiB0aGlzLmhpZ2hsaWdodEpzTGliPXIuZGVmYXVsdCx0aGlzLmhpZ2hsaWdodEpzTGlifSkoKSx0aGlzLmhpZ2hsaWdodEpzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRBcGV4Q2hhcnRzKCl7cmV0dXJuIHRoaXMuYXBleENoYXJ0c0xpYj90aGlzLmFwZXhDaGFydHNMaWI6dGhpcy5hcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2U/dGhpcy5hcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2U6KHRoaXMuYXBleENoYXJ0c0xvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHI9YXdhaXQgaW1wb3J0KGAke0lhfS9hcGV4Y2hhcnRzQCR7RTIuYXBleGNoYXJ0c30vK2VzbWApO3JldHVybiB0aGlzLmFwZXhDaGFydHNMaWI9ci5kZWZhdWx0LHRoaXMuYXBleENoYXJ0c0xpYn0pKCksdGhpcy5hcGV4Q2hhcnRzTG9hZGluZ1Byb21pc2UpfWFzeW5jIGxvYWRUaXB0YXAoKXtyZXR1cm4gdGhpcy50aXB0YXBMaWI/dGhpcy50aXB0YXBMaWI6dGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZT90aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlOih0aGlzLnRpcHRhcExvYWRpbmdQcm9taXNlPShhc3luYygpPT57bGV0IHQ9RTIudGlwdGFwLFtyLGksYSxuLG8sc109YXdhaXQgUHJvbWlzZS5hbGwoW2ltcG9ydChgJHtJYX0vQHRpcHRhcC9jb3JlQCR7dH0vK2VzbWApLGltcG9ydChgJHtJYX0vQHRpcHRhcC9zdGFydGVyLWtpdEAke3R9Lytlc21gKSxpbXBvcnQoYCR7SWF9L0B0aXB0YXAvZXh0ZW5zaW9uLXVuZGVybGluZUAke3R9Lytlc21gKSxpbXBvcnQoYCR7SWF9L0B0aXB0YXAvZXh0ZW5zaW9uLXRleHQtYWxpZ25AJHt0fS8rZXNtYCksaW1wb3J0KGAke0lhfS9AdGlwdGFwL2V4dGVuc2lvbi1saW5rQCR7dH0vK2VzbWApLGltcG9ydChgJHtJYX0vQHRpcHRhcC9leHRlbnNpb24tdHlwb2dyYXBoeUAke3R9Lytlc21gKV0pO3JldHVybiB0aGlzLnRpcHRhcExpYj17RWRpdG9yOnIuRWRpdG9yLFN0YXJ0ZXJLaXQ6aS5kZWZhdWx0fHxpLlN0YXJ0ZXJLaXQsVW5kZXJsaW5lOmEuZGVmYXVsdHx8YS5VbmRlcmxpbmUsVGV4dEFsaWduOm4uZGVmYXVsdHx8bi5UZXh0QWxpZ24sTGluazpvLmRlZmF1bHR8fG8uTGluayxUeXBvZ3JhcGh5OnMuZGVmYXVsdHx8cy5UeXBvZ3JhcGh5fSx0aGlzLnRpcHRhcExpYn0pKCksdGhpcy50aXB0YXBMb2FkaW5nUHJvbWlzZSl9YXN5bmMgcHJlbG9hZEFsbCgpe2F3YWl0IFByb21pc2UuYWxsKFt0aGlzLmxvYWRYdGVybSgpLHRoaXMubG9hZFh0ZXJtRml0QWRkb24oKSx0aGlzLmxvYWRYdGVybVNlYXJjaEFkZG9uKCksdGhpcy5sb2FkSGlnaGxpZ2h0SnMoKSx0aGlzLmxvYWRBcGV4Q2hhcnRzKCksdGhpcy5sb2FkVGlwdGFwKCldKX1pc0xvYWRlZCh0KXtzd2l0Y2godCl7Y2FzZSJ4dGVybSI6cmV0dXJuIHRoaXMueHRlcm1MaWIhPT1udWxsO2Nhc2UieHRlcm1GaXRBZGRvbiI6cmV0dXJuIHRoaXMueHRlcm1GaXRBZGRvbkxpYiE9PW51bGw7Y2FzZSJ4dGVybVNlYXJjaEFkZG9uIjpyZXR1cm4gdGhpcy54dGVybVNlYXJjaEFkZG9uTGliIT09bnVsbDtjYXNlImhpZ2hsaWdodEpzIjpyZXR1cm4gdGhpcy5oaWdobGlnaHRKc0xpYiE9PW51bGw7Y2FzZSJhcGV4Q2hhcnRzIjpyZXR1cm4gdGhpcy5hcGV4Q2hhcnRzTGliIT09bnVsbDtjYXNlInRpcHRhcCI6cmV0dXJuIHRoaXMudGlwdGFwTGliIT09bnVsbDtkZWZhdWx0OnJldHVybiExfX19fSk7dmFyIEI0PXAoKCk9PntiY3IoKTtxNmUoKX0pO3ZhciBhbCxTaSx2Y3IsSDZlPXAoKCk9Pnt4ZSgpO0t0KCk7cGNyKCk7ZmNyKCk7Z2NyKCk7QjQoKTthbD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFNpPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSx2Y3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLWNoYXJ0LWFyZWEiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXTt2YXIgcT1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEI9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1baigpXSxkPVtqKHt0eXBlOkFycmF5fSldLHg9W2ooe2F0dHJpYnV0ZTohMX0pXSx5PVtqKHt0eXBlOk51bWJlcn0pXSxPPVtqKHt0eXBlOkJvb2xlYW59KV0sRj1baih7dHlwZTpTdHJpbmd9KV0sUj1baih7dHlwZTpOdW1iZXJ9KV0sJD1baih7dHlwZTpOdW1iZXJ9KV0sYWwodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjaGFydCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+ImNoYXJ0ImluIEcsZ2V0Okc9PkcuY2hhcnQsc2V0OihHLGVlKT0+e0cuY2hhcnQ9ZWV9fSxtZXRhZGF0YTpCfSxvLHMpLGFsKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkc9PiJsYWJlbCJpbiBHLGdldDpHPT5HLmxhYmVsLHNldDooRyxlZSk9PntHLmxhYmVsPWVlfX0sbWV0YWRhdGE6Qn0sYyx1KSxhbCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlcmllcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+InNlcmllcyJpbiBHLGdldDpHPT5HLnNlcmllcyxzZXQ6KEcsZWUpPT57Ry5zZXJpZXM9ZWV9fSxtZXRhZGF0YTpCfSxoLGYpLGFsKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNGb3JtYXR0ZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkc9PiJ5QXhpc0Zvcm1hdHRlciJpbiBHLGdldDpHPT5HLnlBeGlzRm9ybWF0dGVyLHNldDooRyxlZSk9PntHLnlBeGlzRm9ybWF0dGVyPWVlfX0sbWV0YWRhdGE6Qn0sdixiKSxhbCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJvbGxpbmdXaW5kb3ciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkc9PiJyb2xsaW5nV2luZG93ImluIEcsZ2V0Okc9Pkcucm9sbGluZ1dpbmRvdyxzZXQ6KEcsZWUpPT57Ry5yb2xsaW5nV2luZG93PWVlfX0sbWV0YWRhdGE6Qn0sdyxrKSxhbCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlYWx0aW1lTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+InJlYWx0aW1lTW9kZSJpbiBHLGdldDpHPT5HLnJlYWx0aW1lTW9kZSxzZXQ6KEcsZWUpPT57Ry5yZWFsdGltZU1vZGU9ZWV9fSxtZXRhZGF0YTpCfSx6LE0pLGFsKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToieUF4aXNTY2FsaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpHPT4ieUF4aXNTY2FsaW5nImluIEcsZ2V0Okc9PkcueUF4aXNTY2FsaW5nLHNldDooRyxlZSk9PntHLnlBeGlzU2NhbGluZz1lZX19LG1ldGFkYXRhOkJ9LEQsTiksYWwodGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ5QXhpc01heCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Rz0+InlBeGlzTWF4ImluIEcsZ2V0Okc9PkcueUF4aXNNYXgsc2V0OihHLGVlKT0+e0cueUF4aXNNYXg9ZWV9fSxtZXRhZGF0YTpCfSxfLFMpLGFsKHRoaXMsbnVsbCwkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1Njcm9sbEludGVydmFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpHPT4iYXV0b1Njcm9sbEludGVydmFsImluIEcsZ2V0Okc9PkcuYXV0b1Njcm9sbEludGVydmFsLHNldDooRyxlZSk9PntHLmF1dG9TY3JvbGxJbnRlcnZhbD1lZX19LG1ldGFkYXRhOkJ9LFQsRSksYWwobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Qn0sbnVsbCxyKSxxPWk9dC52YWx1ZSxCJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkJ9KX1zdGF0aWMgZGVtbz11Y3I7c3RhdGljIGRlbW9Hcm91cHM9WyJDaGFydCJdOyNlPVNpKHRoaXMsbyx2b2lkIDApO2dldCBjaGFydCgpe3JldHVybiB0aGlzLiNlfXNldCBjaGFydChCKXt0aGlzLiNlPUJ9I3Q9KFNpKHRoaXMscyksU2kodGhpcyxjLCJVbnRpdGxlZCBDaGFydCIpKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGFiZWwoQil7dGhpcy4jdD1CfSNyPShTaSh0aGlzLHUpLFNpKHRoaXMsaCxbXSkpO2dldCBzZXJpZXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2VyaWVzKEIpe3RoaXMuI3I9Qn1nZXQgY2hhcnRTZXJpZXMoKXtyZXR1cm4gdGhpcy5pbnRlcm5hbENoYXJ0RGF0YS5sZW5ndGg+MD90aGlzLmludGVybmFsQ2hhcnREYXRhOnRoaXMuc2VyaWVzfSNpPShTaSh0aGlzLGYpLFNpKHRoaXMsdixCPT5gJHtCfSBNYnBzYCkpO2dldCB5QXhpc0Zvcm1hdHRlcigpe3JldHVybiB0aGlzLiNpfXNldCB5QXhpc0Zvcm1hdHRlcihCKXt0aGlzLiNpPUJ9I2E9KFNpKHRoaXMsYiksU2kodGhpcyx3LDApKTtnZXQgcm9sbGluZ1dpbmRvdygpe3JldHVybiB0aGlzLiNhfXNldCByb2xsaW5nV2luZG93KEIpe3RoaXMuI2E9Qn0jbj0oU2kodGhpcyxrKSxTaSh0aGlzLHosITEpKTtnZXQgcmVhbHRpbWVNb2RlKCl7cmV0dXJuIHRoaXMuI259c2V0IHJlYWx0aW1lTW9kZShCKXt0aGlzLiNuPUJ9I289KFNpKHRoaXMsTSksU2kodGhpcyxELCJkeW5hbWljIikpO2dldCB5QXhpc1NjYWxpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgeUF4aXNTY2FsaW5nKEIpe3RoaXMuI289Qn0jcz0oU2kodGhpcyxOKSxTaSh0aGlzLF8sMTAwKSk7Z2V0IHlBeGlzTWF4KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHlBeGlzTWF4KEIpe3RoaXMuI3M9Qn0jbD0oU2kodGhpcyxTKSxTaSh0aGlzLFQsMWUzKSk7Z2V0IGF1dG9TY3JvbGxJbnRlcnZhbCgpe3JldHVybiB0aGlzLiNsfXNldCBhdXRvU2Nyb2xsSW50ZXJ2YWwoQil7dGhpcy4jbD1CfXJlc2l6ZU9ic2VydmVyPVNpKHRoaXMsRSk7cmVzaXplVGltZW91dDtpbnRlcm5hbENoYXJ0RGF0YT1bXTthdXRvU2Nyb2xsVGltZXI9bnVsbDtERUJVR19SRVNJWkU9ITE7Q0hBUlRfQ09MT1JTPXtkYXJrOlsiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIsImhzbCgxNzMuNCA4MC40JSA0MCUpIiwiaHNsKDI4MC4zIDg3LjQlIDY2LjclKSIsImhzbCgyNC42IDk1JSA1My4xJSkiXSxsaWdodDpbImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMTQyLjEgNzYuMiUgMzYuMyUpIiwiaHNsKDI4MC4zIDQ3LjclIDUwLjIlKSIsImhzbCgyMC41IDkwLjIlIDQ4LjIlKSJdfTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksZDEuc2V0dXAoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcihCPT57dGhpcy5yZXNpemVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KSx0aGlzLnJlc2l6ZVRpbWVvdXQ9d2luZG93LnNldFRpbWVvdXQoKCk9PntpZih0aGlzLmNoYXJ0KXtpZih0aGlzLkRFQlVHX1JFU0laRSYmQi5sZW5ndGg+MCl7bGV0IEc9QlswXTtjb25zb2xlLmxvZygiRGVlc0NoYXJ0QXJlYSAtIFJlc2l6ZSBkZXRlY3RlZDoiLHt3aWR0aDpHLmNvbnRlbnRSZWN0LndpZHRoLGhlaWdodDpHLmNvbnRlbnRSZWN0LmhlaWdodH0pfXRoaXMucmVzaXplQ2hhcnQoKX19LDEwMCl9KSx0aGlzLnJlZ2lzdGVyR2FyYmFnZUZ1bmN0aW9uKGFzeW5jKCk9PntpZih0aGlzLnJlc2l6ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVvdXQpLHRoaXMucmVzaXplT2JzZXJ2ZXImJnRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuc3RvcEF1dG9TY3JvbGwoKSx0aGlzLmNoYXJ0KXRyeXt0aGlzLmNoYXJ0LmRlc3Ryb3koKSx0aGlzLmNoYXJ0PW51bGx9Y2F0Y2goQil7Y29uc29sZS5lcnJvcigiRXJyb3IgZGVzdHJveWluZyBjaGFydDoiLEIpfX0pfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNoYXJ0JiYoYXdhaXQgbmV3IFByb21pc2UoQj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEIpKSxhd2FpdCB0aGlzLnJlc2l6ZUNoYXJ0KCkpfXN0YXRpYyBzdHlsZXM9aGNyO3JlbmRlcigpe3JldHVybiBtY3IodGhpcyl9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7bGV0IEI9YXdhaXQgcmEuZ2V0SW5zdGFuY2UoKS5sb2FkQXBleENoYXJ0cygpO2F3YWl0IG5ldyBQcm9taXNlKFg9PnJlcXVlc3RBbmltYXRpb25GcmFtZShYKSk7bGV0IEc9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluYm94IiksZWU9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jaGFydENvbnRhaW5lciIpO2lmKCFHfHwhZWUpe2NvbnNvbGUuZXJyb3IoIkNoYXJ0IGNvbnRhaW5lcnMgbm90IGZvdW5kIik7cmV0dXJufWxldCBQPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVlKSxnZT1wYXJzZUludChQLnBhZGRpbmdUb3AsMTApLHdlPXBhcnNlSW50KFAucGFkZGluZ0JvdHRvbSwxMCksST1wYXJzZUludChQLnBhZGRpbmdMZWZ0LDEwKSxuZT1wYXJzZUludChQLnBhZGRpbmdSaWdodCwxMCksa2U9Ry5jbGllbnRXaWR0aC1JLW5lLFk9Ry5vZmZzZXRIZWlnaHQtZ2Utd2UsQT10aGlzLnNlcmllcy5sZW5ndGg+MD90aGlzLnNlcmllczpbe25hbWU6ImNwdSIsZGF0YTpbe3g6IjIwMjUtMDEtMTVUMDM6MDA6MDAiLHk6MjV9LHt4OiIyMDI1LTAxLTE1VDA3OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxMTowMDowMCIseToyMH0se3g6IjIwMjUtMDEtMTVUMTU6MDA6MDAiLHk6MzV9LHt4OiIyMDI1LTAxLTE1VDE5OjAwOjAwIix5OjI1fV19LHtuYW1lOiJtZW1vcnkiLGRhdGE6W3t4OiIyMDI1LTAxLTE1VDAzOjAwOjAwIix5OjEwfSx7eDoiMjAyNS0wMS0xNVQwNzowMDowMCIseToxMn0se3g6IjIwMjUtMDEtMTVUMTE6MDA6MDAiLHk6MTB9LHt4OiIyMDI1LTAxLTE1VDE1OjAwOjAwIix5OjMwfSx7eDoiMjAyNS0wMS0xNVQxOTowMDowMCIseTo0MH1dfV07dGhpcy5pbnRlcm5hbENoYXJ0RGF0YT1BO2xldCBMPSF0aGlzLmdvQnJpZ2h0LFU9TD8iZGFyayI6ImxpZ2h0Ijt2YXIgVj17c2VyaWVzOkEsY2hhcnQ6e3dpZHRoOmtlfHwxMDAsaGVpZ2h0Oll8fDEwMCx0eXBlOiJhcmVhIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsdG9vbGJhcjp7c2hvdzohMX0sYW5pbWF0aW9uczp7ZW5hYmxlZDohdGhpcy5yZWFsdGltZU1vZGUsc3BlZWQ6NDAwLGFuaW1hdGVHcmFkdWFsbHk6e2VuYWJsZWQ6ITEsZGVsYXk6MH0sZHluYW1pY0FuaW1hdGlvbjp7ZW5hYmxlZDohdGhpcy5yZWFsdGltZU1vZGUsc3BlZWQ6MzUwfX0sem9vbTp7ZW5hYmxlZDohMX0sc2VsZWN0aW9uOntlbmFibGVkOiExfX0sZGF0YUxhYmVsczp7ZW5hYmxlZDohMX0sc3Ryb2tlOnt3aWR0aDoyLGN1cnZlOiJzbW9vdGgifSx4YXhpczp7dHlwZToiZGF0ZXRpbWUiLGxhYmVsczp7Zm9ybWF0OiJISDptbTpzcyIsZGF0ZXRpbWVVVEM6ITEsc3R5bGU6e2NvbG9yczpbTD8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdLGZvbnRTaXplOiIxMnB4Iixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRXZWlnaHQ6IjQwMCJ9fSxheGlzQm9yZGVyOntzaG93OiExfSxheGlzVGlja3M6e3Nob3c6ITF9fSx5YXhpczp7bWluOjAsbWF4OnRoaXMueUF4aXNTY2FsaW5nPT09ImR5bmFtaWMiP3ZvaWQgMDp0aGlzLnlBeGlzTWF4LGxhYmVsczp7Zm9ybWF0dGVyOnRoaXMueUF4aXNGb3JtYXR0ZXIsc3R5bGU6e2NvbG9yczpbTD8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdLGZvbnRTaXplOiIxMnB4Iixmb250RmFtaWx5OictYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIHNhbnMtc2VyaWYnLGZvbnRXZWlnaHQ6IjQwMCJ9fSxheGlzQm9yZGVyOntzaG93OiExfSxheGlzVGlja3M6e3Nob3c6ITF9fSx0b29sdGlwOntzaGFyZWQ6ITAsaW50ZXJzZWN0OiExLGZvbGxvd0N1cnNvcjohMCx4Ontmb3JtYXQ6ImRkL01NL3l5IEhIOm1tIn0sY3VzdG9tOih7c2VyaWVzOlgsZGF0YVBvaW50SW5kZXg6ZGUsdzp2ZX0pPT57bGV0IFc9dmUuY29uZmlnLnRoZW1lLm1vZGU9PT0iZGFyayIsSD1XPyJoc2woMCAwJSA5JSkiOiJoc2woMCAwJSAxMDAlKSIsdGU9Vz8iaHNsKDAgMCUgOTUlKSI6ImhzbCgwIDAlIDklKSIsYmU9Vz8iaHNsKDAgMCUgMTQuOSUpIjoiaHNsKDAgMCUgODkuOCUpIix1ZT12ZS5jb25maWcueWF4aXNbMF0/LmxhYmVscz8uZm9ybWF0dGVyfHwoaGU9PmhlLnRvU3RyaW5nKCkpLENlPWA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAxMnB4OyBiYWNrZ3JvdW5kOiAke0h9OyBjb2xvcjogJHt0ZX07IGJvcmRlci1yYWRpdXM6IDZweDsgYm94LXNoYWRvdzogMCAycHggOHB4IDAgaHNsKDAgMCUgMCUgLyAke1c/IjAuMiI6IjAuMSJ9KTsgYm9yZGVyOiAxcHggc29saWQgJHtiZX07Zm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB4OyI+YDtyZXR1cm4gWC5mb3JFYWNoKChoZSxpZSk9PntsZXQgU2U9dmUuZ2xvYmFscy5zZXJpZXNOYW1lc1tpZV0sSWU9aGVbZGVdLFplPXZlLmdsb2JhbHMuY29sb3JzW2llXSxLPXVlKEllKTtDZSs9YDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBtYXJnaW46ICR7aWU+MD8iNnB4IjoiMCJ9IDA7Ij4KICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBiYWNrZ3JvdW5kOiAke1plfTsgYm9yZGVyLXJhZGl1czogMnB4OyI+PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogNTAwOyI+JHtTZX06PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJtYXJnaW4tbGVmdDogYXV0bzsgZm9udC13ZWlnaHQ6IDYwMDsiPiR7S308L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PmB9KSxDZSs9IjwvZGl2PiIsQ2V9fSxncmlkOnt4YXhpczp7bGluZXM6e3Nob3c6ITF9fSx5YXhpczp7bGluZXM6e3Nob3c6ITB9fSxib3JkZXJDb2xvcjpMPyJoc2woMCAwJSAxNC45JSkiOiJoc2woMCAwJSA5NCUpIixzdHJva2VEYXNoQXJyYXk6MCxwYWRkaW5nOnt0b3A6MTAscmlnaHQ6MjAsYm90dG9tOjEwLGxlZnQ6MjB9fSxmaWxsOnt0eXBlOiJncmFkaWVudCIsZ3JhZGllbnQ6e3NoYWRlOkw/ImRhcmsiOiJsaWdodCIsdHlwZToidmVydGljYWwiLHNoYWRlSW50ZW5zaXR5Oi4xLG9wYWNpdHlGcm9tOkw/LjI6LjMsb3BhY2l0eVRvOjAsc3RvcHM6WzAsMTAwXX19LGNvbG9yczpMP3RoaXMuQ0hBUlRfQ09MT1JTLmRhcms6dGhpcy5DSEFSVF9DT0xPUlMubGlnaHQsdGhlbWU6e21vZGU6VX19O3RyeXt0aGlzLmNoYXJ0PW5ldyBCKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY2hhcnRDb250YWluZXIiKSxWKSxhd2FpdCB0aGlzLmNoYXJ0LnJlbmRlcigpLGF3YWl0IG5ldyBQcm9taXNlKGRlPT5zZXRUaW1lb3V0KGRlLDEwMCkpLGF3YWl0IHRoaXMucmVzaXplQ2hhcnQoKTtsZXQgWD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5ib3giKTtYJiZ0aGlzLnJlc2l6ZU9ic2VydmVyJiYodGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKFgpLHRoaXMuREVCVUdfUkVTSVpFJiZjb25zb2xlLmxvZygiRGVlc0NoYXJ0QXJlYSAtIFJlc2l6ZU9ic2VydmVyIGF0dGFjaGVkIHRvIG1haW5ib3giKSl9Y2F0Y2goWCl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGluaXRpYWxpemUgY2hhcnQ6IixYKX19YXN5bmMgdXBkYXRlZChCKXtzdXBlci51cGRhdGVkKEIpLEIuaGFzKCJnb0JyaWdodCIpJiZ0aGlzLmNoYXJ0JiZhd2FpdCB0aGlzLnVwZGF0ZUNoYXJ0VGhlbWUoKSxCLmhhcygic2VyaWVzIikmJnRoaXMuY2hhcnQmJnRoaXMuc2VyaWVzLmxlbmd0aD4wJiZhd2FpdCB0aGlzLnVwZGF0ZVNlcmllcyh0aGlzLnNlcmllcyksQi5oYXMoInlBeGlzRm9ybWF0dGVyIikmJnRoaXMuY2hhcnQmJmF3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7eWF4aXM6e2xhYmVsczp7Zm9ybWF0dGVyOnRoaXMueUF4aXNGb3JtYXR0ZXJ9fX0pLEIuaGFzKCJyZWFsdGltZU1vZGUiKSYmdGhpcy5jaGFydCYmKGF3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7Y2hhcnQ6e2FuaW1hdGlvbnM6e2VuYWJsZWQ6IXRoaXMucmVhbHRpbWVNb2RlLHNwZWVkOjQwMCxhbmltYXRlR3JhZHVhbGx5OntlbmFibGVkOiExLGRlbGF5OjB9LGR5bmFtaWNBbmltYXRpb246e2VuYWJsZWQ6IXRoaXMucmVhbHRpbWVNb2RlLHNwZWVkOjM1MH19fX0pLHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MD90aGlzLnN0YXJ0QXV0b1Njcm9sbCgpOnRoaXMuc3RvcEF1dG9TY3JvbGwoKSksQi5oYXMoImF1dG9TY3JvbGxJbnRlcnZhbCIpJiZ0aGlzLmNoYXJ0JiYodGhpcy5zdG9wQXV0b1Njcm9sbCgpLHRoaXMucmVhbHRpbWVNb2RlJiZ0aGlzLnJvbGxpbmdXaW5kb3c+MCYmdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWw+MCYmdGhpcy5zdGFydEF1dG9TY3JvbGwoKSksKEIuaGFzKCJ5QXhpc1NjYWxpbmciKXx8Qi5oYXMoInlBeGlzTWF4IikpJiZ0aGlzLmNoYXJ0JiZhd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZU9wdGlvbnMoe3lheGlzOnttaW46MCxtYXg6dGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyI/dm9pZCAwOnRoaXMueUF4aXNNYXh9fSl9YXN5bmMgdXBkYXRlU2VyaWVzKEIsRz0hMCl7aWYodGhpcy5jaGFydCl0cnl7aWYodGhpcy5pbnRlcm5hbENoYXJ0RGF0YT1CLHRoaXMucm9sbGluZ1dpbmRvdz4wJiZ0aGlzLnJlYWx0aW1lTW9kZSl7bGV0IFA9RGF0ZS5ub3coKS10aGlzLnJvbGxpbmdXaW5kb3csZ2U9Qi5tYXAod2U9Pih7bmFtZTp3ZS5uYW1lLGRhdGE6d2UuZGF0YS5maWx0ZXIoST0+dHlwZW9mIEk9PSJvYmplY3QiJiZJIT09bnVsbCYmIngiaW4gST9uZXcgRGF0ZShJLngpLmdldFRpbWUoKT5QOiExKX0pKTtpZihnZS5zb21lKHdlPT53ZS5kYXRhLmxlbmd0aD4wKSl7aWYodGhpcy55QXhpc1NjYWxpbmc9PT0iZHluYW1pYyIpe2xldCB3ZT1nZS5mbGF0TWFwKEk9PkkuZGF0YS5tYXAobmU9Pm5lLnkpKTtpZih3ZS5sZW5ndGg+MCl7bGV0IEk9TWF0aC5tYXgoLi4ud2UpLG5lPU1hdGguY2VpbChJKjEuMSk7YXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHt5YXhpczp7bWluOjAsbWF4Om5lfX0sITEsITEpfX1hd2FpdCB0aGlzLmNoYXJ0LnVwZGF0ZVNlcmllcyhnZSwhMSl9fWVsc2UgYXdhaXQgdGhpcy5jaGFydC51cGRhdGVTZXJpZXMoQixHKX1jYXRjaChlZSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBjaGFydCBzZXJpZXM6IixlZSl9fWFzeW5jIHVwZGF0ZVRpbWVXaW5kb3coKXtpZighdGhpcy5jaGFydHx8dGhpcy5yb2xsaW5nV2luZG93PD0wKXJldHVybjtsZXQgQj1EYXRlLm5vdygpLEc9Qi10aGlzLnJvbGxpbmdXaW5kb3c7YXdhaXQgdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKHt4YXhpczp7bWluOkcsbWF4OkIsbGFiZWxzOntmb3JtYXQ6IkhIOm1tOnNzIixkYXRldGltZVVUQzohMSxzdHlsZTp7Y29sb3JzOlt0aGlzLmdvQnJpZ2h0PyJoc2woMCAwJSAyMCUpIjoiaHNsKDAgMCUgNjMuOSUpIl0sZm9udFNpemU6IjEycHgiLGZvbnRGYW1pbHk6Jy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgc2Fucy1zZXJpZicsZm9udFdlaWdodDoiNDAwIn19LHRpY2tBbW91bnQ6Nn19LCExLCExKX1hc3luYyBhcHBlbmREYXRhKEIpe3RoaXMuY2hhcnQmJnRoaXMuY2hhcnQuYXBwZW5kRGF0YShCKX1hc3luYyB1cGRhdGVPcHRpb25zKEIsRyxlZSl7aWYodGhpcy5jaGFydClyZXR1cm4gdGhpcy5jaGFydC51cGRhdGVPcHRpb25zKEIsRyxlZSl9YXN5bmMgcmVzaXplQ2hhcnQoKXtpZih0aGlzLmNoYXJ0KXt0aGlzLkRFQlVHX1JFU0laRSYmY29uc29sZS5sb2coIkRlZXNDaGFydEFyZWEgLSByZXNpemVDaGFydCBjYWxsZWQiKTt0cnl7bGV0IEI9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5tYWluYm94IiksRz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNoYXJ0Q29udGFpbmVyIik7aWYoIUJ8fCFHKXJldHVybjtCLm9mZnNldEhlaWdodDtsZXQgZWU9d2luZG93LmdldENvbXB1dGVkU3R5bGUoRyksUD1wYXJzZUludChlZS5wYWRkaW5nVG9wLDEwKSxnZT1wYXJzZUludChlZS5wYWRkaW5nQm90dG9tLDEwKSx3ZT1wYXJzZUludChlZS5wYWRkaW5nTGVmdCwxMCksST1wYXJzZUludChlZS5wYWRkaW5nUmlnaHQsMTApLG5lPUIuY2xpZW50V2lkdGgtd2UtSSxrZT1CLm9mZnNldEhlaWdodC1QLWdlO25lPjAmJmtlPjAmJih0aGlzLkRFQlVHX1JFU0laRSYmY29uc29sZS5sb2coIkRlZXNDaGFydEFyZWEgLSBVcGRhdGluZyBjaGFydCBkaW1lbnNpb25zOiIse3dpZHRoOm5lLGhlaWdodDprZX0pLGF3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7Y2hhcnQ6e3dpZHRoOm5lLGhlaWdodDprZX19LCEwLCExKSl9Y2F0Y2goQil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlc2l6ZSBjaGFydDoiLEIpfX19YXN5bmMgZm9yY2VSZXNpemUoKXthd2FpdCB0aGlzLnJlc2l6ZUNoYXJ0KCl9c3RhcnRBdXRvU2Nyb2xsKCl7dGhpcy5hdXRvU2Nyb2xsVGltZXJ8fCh0aGlzLmF1dG9TY3JvbGxUaW1lcj13aW5kb3cuc2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnVwZGF0ZVRpbWVXaW5kb3coKX0sdGhpcy5hdXRvU2Nyb2xsSW50ZXJ2YWwpKX1zdG9wQXV0b1Njcm9sbCgpe3RoaXMuYXV0b1Njcm9sbFRpbWVyJiYod2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2Nyb2xsVGltZXIpLHRoaXMuYXV0b1Njcm9sbFRpbWVyPW51bGwpfWFzeW5jIHVwZGF0ZUNoYXJ0VGhlbWUoKXtpZighdGhpcy5jaGFydClyZXR1cm47bGV0IEI9IXRoaXMuZ29CcmlnaHQsRz1CPyJkYXJrIjoibGlnaHQiO2F3YWl0IHRoaXMuY2hhcnQudXBkYXRlT3B0aW9ucyh7dGhlbWU6e21vZGU6R30sY29sb3JzOkI/dGhpcy5DSEFSVF9DT0xPUlMuZGFyazp0aGlzLkNIQVJUX0NPTE9SUy5saWdodCx4YXhpczp7bGFiZWxzOntzdHlsZTp7Y29sb3JzOltCPyJoc2woMCAwJSA2My45JSkiOiJoc2woMCAwJSAyMCUpIl19fX0seWF4aXM6e2xhYmVsczp7c3R5bGU6e2NvbG9yczpbQj8iaHNsKDAgMCUgNjMuOSUpIjoiaHNsKDAgMCUgMjAlKSJdfX19LGdyaWQ6e2JvcmRlckNvbG9yOkI/ImhzbCgwIDAlIDE0LjklKSI6ImhzbCgwIDAlIDk0JSkifSxmaWxsOntncmFkaWVudDp7c2hhZGU6Qj8iZGFyayI6ImxpZ2h0IixvcGFjaXR5RnJvbTpCPy4yOi4zfX19KX1zdGF0aWN7U2koaSxyKX19O3JldHVybiBxPWl9KSgpfSk7dmFyIHhjcj1wKCgpPT57SDZlKCl9KTt2YXIgeWNyLHdjcj1wKCgpPT57eGUoKTtwMSgpO3ljcj0oKT0+Q2AKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNzdHJ1Y3R1cmVkLWxvZyIpLHI9ZS5xdWVyeVNlbGVjdG9yKCIjcmF3LWxvZyIpLGksYSxuPVsiU2VydmVyIiwiRGF0YWJhc2UiLCJBUEkiLCJBdXRoIiwiQ2FjaGUiLCJRdWV1ZSIsIldlYlNvY2tldCIsIlNjaGVkdWxlciJdLG89e2RlYnVnOlsiTG9hZGluZyBtb2R1bGU6IHt7bW9kdWxlfX0iLCJDYWNoZSBoaXQgZm9yIGtleToge3trZXl9fSIsIlNRTCBxdWVyeSBleGVjdXRlZCBpbiB7e3RpbWV9fW1zIiwiUmVxdWVzdCBoZWFkZXJzOiB7e2hlYWRlcnN9fSIsIkVudmlyb25tZW50IHZhcmlhYmxlIGxvYWRlZDoge3t2YXJ9fSJdLGluZm86WyJSZXF1ZXN0IHJlY2VpdmVkOiB7e21ldGhvZH19IHt7cGF0aH19IiwiVXNlciB7e3VzZXJJZH19IGF1dGhlbnRpY2F0ZWQgc3VjY2Vzc2Z1bGx5IiwiUHJvY2Vzc2luZyBqb2Ige3tqb2JJZH19IGZyb20gcXVldWUiLCdTY2hlZHVsZWQgdGFzayAie3t0YXNrfX0iIHN0YXJ0ZWQnLCJXZWJTb2NrZXQgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCBmcm9tIHt7aXB9fSJdLHdhcm46WyJTbG93IHF1ZXJ5IGRldGVjdGVkOiB7e3F1ZXJ5fX0gKHt7dGltZX19bXMpIiwiTWVtb3J5IHVzYWdlIGF0IHt7cGVyY2VudH19JSIsIlJhdGUgbGltaXQgYXBwcm9hY2hpbmcgZm9yIElQIHt7aXB9fSIsIkRlcHJlY2F0ZWQgQVBJIGVuZHBvaW50IGNhbGxlZDoge3tlbmRwb2ludH19IiwiQ2VydGlmaWNhdGUgZXhwaXJlcyBpbiB7e2RheXN9fSBkYXlzIl0sZXJyb3I6WyJEYXRhYmFzZSBjb25uZWN0aW9uIGxvc3Q6IHt7ZXJyb3J9fSIsIkZhaWxlZCB0byBwcm9jZXNzIHJlcXVlc3Q6IHt7ZXJyb3J9fSIsIkF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgdXNlciB7e3VzZXJ9fSIsIkZpbGUgbm90IGZvdW5kOiB7e3BhdGh9fSIsIlNlcnZpY2UgdW5hdmFpbGFibGU6IHt7c2VydmljZX19Il0sc3VjY2VzczpbIlNlcnZlciBzdGFydGVkIHN1Y2Nlc3NmdWxseSBvbiBwb3J0IHt7cG9ydH19IiwiRGF0YWJhc2UgbWlncmF0aW9uIGNvbXBsZXRlZCIsIkJhY2t1cCBjb21wbGV0ZWQ6IHt7c2l6ZX19IE1CIiwiU1NMIGNlcnRpZmljYXRlIHJlbmV3ZWQiLCJIZWFsdGggY2hlY2sgcGFzc2VkOiBhbGwgc3lzdGVtcyBvcGVyYXRpb25hbCJdfSxzPVsiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ1LjEyM1pceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFtuZ2lueF0gR0VUIC9hcGkvaGVhbHRoIDIwMCAtIDJtcyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS40NTZaXHgxQlswbSBceDFCWzMzbVdBUk5ceDFCWzBtICBbcmVkaXNdIENvbm5lY3Rpb24gcG9vbCBydW5uaW5nIGxvdzogMy8xMCIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0NS43ODlaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbbW9uZ29kYl0gUXVlcnkgdGltZW91dCBhZnRlciAzMDAwMG1zIiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ2LjAxMlpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFthcHBdIFByb2Nlc3NpbmcgYmF0Y2ggam9iICN7e2pvYklkfX0iLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuMzQ1Wlx4MUJbMG0gXHgxQlszMm1PS1x4MUJbMG0gICAgW2hlYWx0aF0gQWxsIHNlcnZpY2VzIGhlYWx0aHkiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDYuNjc4Wlx4MUJbMG0gXHgxQlszNm1JTkZPXHgxQlswbSAgW2thZmthXSBNZXNzYWdlIGNvbnN1bWVkIGZyb20gdG9waWM6IGV2ZW50cyIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4wMDFaXHgxQlswbSBceDFCWzM1bURFQlVHXHgxQlswbSBbZ3JwY10gUmVxdWVzdCByZWNlaXZlZDogR2V0VXNlcihpZD17e3VzZXJJZH19KSIsIlx4MUJbOTBtMjAyNC0wMS0xNVQxMDoyMzo0Ny4yMzRaXHgxQlswbSBceDFCWzMxbUVSUk9SXHgxQlswbSBbYXV0aF0gVG9rZW4gdmFsaWRhdGlvbiBmYWlsZWQ6IGV4cGlyZWQiLCJceDFCWzkwbTIwMjQtMDEtMTVUMTA6MjM6NDcuNTY3Wlx4MUJbMG0gXHgxQlszM21XQVJOXHgxQlswbSAgW3JhdGUtbGltaXRdIElQIHt7aXB9fSBhcHByb2FjaGluZyByYXRlIGxpbWl0IiwiXHgxQls5MG0yMDI0LTAxLTE1VDEwOjIzOjQ3Ljg5MFpceDFCWzBtIFx4MUJbMzZtSU5GT1x4MUJbMG0gIFt3ZWJzb2NrZXRdIENsaWVudCBjb25uZWN0ZWQ6IHNlc3Npb249e3tzZXNzaW9ufX0iLGBceDFCWzMxbUVycm9yOiBDb25uZWN0aW9uIHJlZnVzZWRceDFCWzBtCiAgICBhdCBUY3BDb25uZWN0aW9uLmNvbm5lY3QgKC9hcHAvbm9kZV9tb2R1bGVzL3BnL2xpYi9jb25uZWN0aW9uLmpzOjEyOjE1KQogICAgYXQgUG9vbC5jb25uZWN0ICgvYXBwL25vZGVfbW9kdWxlcy9wZy9saWIvcG9vbC5qczo0NToyMykKICAgIGF0IGFzeW5jIERhdGFiYXNlU2VydmljZS5xdWVyeSAoL2FwcC9zcmMvZGIvc2VydmljZS50czo4OToxMilgXSxsPSgpPT57bGV0IHY9WyJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJzdWNjZXNzIl0sYj1bLjIsLjUsLjE1LC4xLC4wNV0seT1NYXRoLnJhbmRvbSgpLHc9MCxrPSJpbmZvIjtmb3IobGV0IEQ9MDtEPGIubGVuZ3RoO0QrKylpZih3Kz1iW0RdLHk8dyl7az12W0RdO2JyZWFrfWxldCBPPW5bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm4ubGVuZ3RoKV0sej1vW2tdLEY9eltNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqei5sZW5ndGgpXS5yZXBsYWNlKCJ7e21vZHVsZX19IixbImV4cHJlc3MiLCJtb25nb29zZSIsInJlZGlzIiwic29ja2V0LmlvIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3trZXl9fSIsInVzZXI6IitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKSkucmVwbGFjZSgie3t0aW1lfX0iLFN0cmluZyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqNTAwKSs1MCkpLnJlcGxhY2UoInt7aGVhZGVyc319IiwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uLCBBdXRob3JpemF0aW9uOiBCZWFyZXIgLi4uIikucmVwbGFjZSgie3t2YXJ9fSIsWyJOT0RFX0VOViIsIkRBVEFCQVNFX1VSTCIsIkFQSV9LRVkiLCJQT1JUIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3ttZXRob2R9fSIsWyJHRVQiLCJQT1NUIiwiUFVUIiwiREVMRVRFIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3twYXRofX0iLFsiL2FwaS91c2VycyIsIi9hcGkvYXV0aC9sb2dpbiIsIi9hcGkvcHJvZHVjdHMiLCIvaGVhbHRoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3t1c2VySWR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTQpKSkucmVwbGFjZSgie3tqb2JJZH19Iiwiam9iXyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKS5yZXBsYWNlKCJ7e3Rhc2t9fSIsWyJjbGVhbnVwIiwiYmFja3VwIiwicmVwb3J0LWdlbmVyYXRpb24iLCJjYWNoZS1yZWZyZXNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpXSkucmVwbGFjZSgie3tpcH19IixgMTkyLjE2OC4xLiR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjI1NSl9YCkucmVwbGFjZSgie3txdWVyeX19IiwiU0VMRUNUICogRlJPTSB1c2VycyBXSEVSRSAuLi4iKS5yZXBsYWNlKCJ7e3BlcmNlbnR9fSIsU3RyaW5nKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMCkrNzApKS5yZXBsYWNlKCJ7e2VuZHBvaW50fX0iLCIvYXBpL3YxL2xlZ2FjeSIpLnJlcGxhY2UoInt7ZGF5c319IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMwKSsxKSkucmVwbGFjZSgie3tlcnJvcn19IixbIkVDT05OUkVGVVNFRCIsIkVUSU1FRE9VVCIsIkVOT1RGT1VORCJdW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozKV0pLnJlcGxhY2UoInt7dXNlcn19IiwidXNlcl8iK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpKS5yZXBsYWNlKCJ7e3NlcnZpY2V9fSIsWyJSZWRpcyIsIk1vbmdvREIiLCJFbGFzdGljU2VhcmNoIl1bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjMpXSkucmVwbGFjZSgie3twb3J0fX0iLFN0cmluZygzZTMrTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwKSkpLnJlcGxhY2UoInt7c2l6ZX19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjUwMCkrMTAwKSk7dC5hZGRMb2coayxGLE8pfSxjPSgpPT57bGV0IHY9c1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqcy5sZW5ndGgpXSxiPW5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSx5PXYucmVwbGFjZSgvMjAyNC0wMS0xNVQxMDoyMzpcZHsyfVwuXGR7M31aL2csYikucmVwbGFjZSgie3tqb2JJZH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlNCkpKS5yZXBsYWNlKCJ7e3VzZXJJZH19IixTdHJpbmcoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjFlNCkpKS5yZXBsYWNlKCJ7e2lwfX0iLGAxOTIuMTY4LjEuJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjU1KX1gKS5yZXBsYWNlKCJ7e3Nlc3Npb259fSIsTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsMTEpKTtyLndyaXRlbG5SYXcoeSl9LHU9KCk9PntpZighaSl7bGV0IHY9KCk9PntsKCk7bGV0IGI9TWF0aC5yYW5kb20oKSoyZTMrNTAwO2k9d2luZG93LnNldFRpbWVvdXQoKCk9PntpJiZ2KCl9LGIpfTt2KCl9fSxkPSgpPT57aSYmKHdpbmRvdy5jbGVhclRpbWVvdXQoaSksaT1udWxsKX0saD0oKT0+e2lmKCFhKXtsZXQgdj0oKT0+e2MoKTtsZXQgYj1NYXRoLnJhbmRvbSgpKjFlMysyMDA7YT13aW5kb3cuc2V0VGltZW91dCgoKT0+e2EmJnYoKX0sYil9O3YoKX19LGY9KCk9PnthJiYod2luZG93LmNsZWFyVGltZW91dChhKSxhPW51bGwpfTtlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh2PT57c3dpdGNoKHYudGV4dENvbnRlbnQ/LnRyaW0oKSl7Y2FzZSJBZGQgU3RydWN0dXJlZCBMb2ciOnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5sKCkpO2JyZWFrO2Nhc2UiU3RhcnQgU3RydWN0dXJlZCI6di5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnUoKSk7YnJlYWs7Y2FzZSJTdG9wIFN0cnVjdHVyZWQiOnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5kKCkpO2JyZWFrO2Nhc2UiQWRkIERvY2tlciBMb2ciOnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT5jKCkpO2JyZWFrO2Nhc2UiU3RhcnQgRG9ja2VyIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+aCgpKTticmVhaztjYXNlIlN0b3AgRG9ja2VyIjp2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+ZigpKTticmVha319KX19PgogICAgICA8c3R5bGU+CiAgICAgICAgJHtvZWAKICAgICAgICAgIC5kZW1vQm94IHsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUlKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgICB9CiAgICAgICAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgfQogICAgICAgICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgfQogICAgICAgICAgLmNvbnRyb2xzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMHB4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICB9CiAgICAgICAgYH0KICAgICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9Cb3giPgogICAgICA8IS0tIFN0cnVjdHVyZWQgTG9ncyBTZWN0aW9uIC0tPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5TdHJ1Y3R1cmVkIExvZ3MgKElMb2dFbnRyeSk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIFN0cnVjdHVyZWQgbG9nIGVudHJpZXMgd2l0aCBsZXZlbCwgbWVzc2FnZSwgYW5kIHNvdXJjZS4gU3VwcG9ydHMgc2VhcmNoIGFuZCBrZXl3b3JkIGhpZ2hsaWdodGluZy4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFN0cnVjdHVyZWQgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBTdHJ1Y3R1cmVkPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdG9wIFN0cnVjdHVyZWQ8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWNoYXJ0LWxvZwogICAgICAgICAgaWQ9InN0cnVjdHVyZWQtbG9nIgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3Rpb24gU2VydmVyIExvZ3MifQogICAgICAgICAgLmhpZ2hsaWdodEtleXdvcmRzPSR7WyJlcnJvciIsImZhaWxlZCIsInRpbWVvdXQiXX0KICAgICAgICAgIC5zaG93TWV0cmljcz0keyEwfQogICAgICAgID48L2RlZXMtY2hhcnQtbG9nPgogICAgICA8L2Rpdj4KCiAgICAgIDwhLS0gUmF3IExvZ3MgU2VjdGlvbiAtLT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmF3IExvZ3MgKERvY2tlci9Db250YWluZXIgU3R5bGUpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBSYXcgbG9nIG91dHB1dCB3aXRoIEFOU0kgZXNjYXBlIHNlcXVlbmNlcyBmb3IgcmVhbCBEb2NrZXIvY29udGFpbmVyIGxvZ3MuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgPGRlZXMtYnV0dG9uPkFkZCBEb2NrZXIgTG9nPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbj5TdGFydCBEb2NrZXI8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uPlN0b3AgRG9ja2VyPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGVlcy1jaGFydC1sb2cKICAgICAgICAgIGlkPSJyYXctbG9nIgogICAgICAgICAgLmxhYmVsPSR7IkRvY2tlciBDb250YWluZXIgTG9ncyJ9CiAgICAgICAgICAubW9kZT0keyJyYXcifQogICAgICAgICAgLnNob3dNZXRyaWNzPSR7ITF9CiAgICAgICAgPjwvZGVlcy1jaGFydC1sb2c+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgYH0pO3ZhciBPbyxrMSxNY3Isa2NyPXAoKCk9Pnt4ZSgpO0t0KCk7d2NyKCk7SmUoKTtCNCgpO09vPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sazE9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LE1jcj0oKCk9PntsZXQgZT1beWUoImRlZXMtY2hhcnQtbG9nIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXTt2YXIgd2U9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBJPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooKV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpBcnJheX0pXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpOdW1iZXJ9KV0sTz1baih7dHlwZTpBcnJheX0pXSxGPVtqKHt0eXBlOkJvb2xlYW59KV0sUj1bZmUoKV0sJD1bZmUoKV0scT1bZmUoKV0sZWU9W2ZlKCldLE9vKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ibGFiZWwiaW4gbmUsZ2V0Om5lPT5uZS5sYWJlbCxzZXQ6KG5lLGtlKT0+e25lLmxhYmVsPWtlfX0sbWV0YWRhdGE6SX0sbyxzKSxPbyh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ibW9kZSJpbiBuZSxnZXQ6bmU9Pm5lLm1vZGUsc2V0OihuZSxrZSk9PntuZS5tb2RlPWtlfX0sbWV0YWRhdGE6SX0sYyx1KSxPbyh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvZ0VudHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ibG9nRW50cmllcyJpbiBuZSxnZXQ6bmU9Pm5lLmxvZ0VudHJpZXMsc2V0OihuZSxrZSk9PntuZS5sb2dFbnRyaWVzPWtlfX0sbWV0YWRhdGE6SX0saCxmKSxPbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9TY3JvbGwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4iYXV0b1Njcm9sbCJpbiBuZSxnZXQ6bmU9Pm5lLmF1dG9TY3JvbGwsc2V0OihuZSxrZSk9PntuZS5hdXRvU2Nyb2xsPWtlfX0sbWV0YWRhdGE6SX0sdixiKSxPbyh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEVudHJpZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ibWF4RW50cmllcyJpbiBuZSxnZXQ6bmU9Pm5lLm1heEVudHJpZXMsc2V0OihuZSxrZSk9PntuZS5tYXhFbnRyaWVzPWtlfX0sbWV0YWRhdGE6SX0sdyxrKSxPbyh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImhpZ2hsaWdodEtleXdvcmRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpuZT0+ImhpZ2hsaWdodEtleXdvcmRzImluIG5lLGdldDpuZT0+bmUuaGlnaGxpZ2h0S2V5d29yZHMsc2V0OihuZSxrZSk9PntuZS5oaWdobGlnaHRLZXl3b3Jkcz1rZX19LG1ldGFkYXRhOkl9LHosTSksT28odGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93TWV0cmljcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6bmU9PiJzaG93TWV0cmljcyJpbiBuZSxnZXQ6bmU9Pm5lLnNob3dNZXRyaWNzLHNldDoobmUsa2UpPT57bmUuc2hvd01ldHJpY3M9a2V9fSxtZXRhZGF0YTpJfSxELE4pLE9vKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VhcmNoUXVlcnkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ic2VhcmNoUXVlcnkiaW4gbmUsZ2V0Om5lPT5uZS5zZWFyY2hRdWVyeSxzZXQ6KG5lLGtlKT0+e25lLnNlYXJjaFF1ZXJ5PWtlfX0sbWV0YWRhdGE6SX0sXyxTKSxPbyh0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpbHRlck1vZGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4iZmlsdGVyTW9kZSJpbiBuZSxnZXQ6bmU9Pm5lLmZpbHRlck1vZGUsc2V0OihuZSxrZSk9PntuZS5maWx0ZXJNb2RlPWtlfX0sbWV0YWRhdGE6SX0sVCxFKSxPbyh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1ldHJpY3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOm5lPT4ibWV0cmljcyJpbiBuZSxnZXQ6bmU9Pm5lLm1ldHJpY3Msc2V0OihuZSxrZSk9PntuZS5tZXRyaWNzPWtlfX0sbWV0YWRhdGE6SX0sQixHKSxPbyh0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXJtaW5hbFJlYWR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpuZT0+InRlcm1pbmFsUmVhZHkiaW4gbmUsZ2V0Om5lPT5uZS50ZXJtaW5hbFJlYWR5LHNldDoobmUsa2UpPT57bmUudGVybWluYWxSZWFkeT1rZX19LG1ldGFkYXRhOkl9LFAsZ2UpLE9vKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOkl9LG51bGwsciksd2U9aT10LnZhbHVlLEkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6SX0pfXN0YXRpYyBkZW1vPXljcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkNoYXJ0IiwiV29ya3NwYWNlIl07I2U9azEodGhpcyxvLCJTZXJ2ZXIgTG9ncyIpO2dldCBsYWJlbCgpe3JldHVybiB0aGlzLiNlfXNldCBsYWJlbChJKXt0aGlzLiNlPUl9I3Q9KGsxKHRoaXMscyksazEodGhpcyxjLCJzdHJ1Y3R1cmVkIikpO2dldCBtb2RlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1vZGUoSSl7dGhpcy4jdD1JfSNyPShrMSh0aGlzLHUpLGsxKHRoaXMsaCxbXSkpO2dldCBsb2dFbnRyaWVzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGxvZ0VudHJpZXMoSSl7dGhpcy4jcj1JfSNpPShrMSh0aGlzLGYpLGsxKHRoaXMsdiwhMCkpO2dldCBhdXRvU2Nyb2xsKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGF1dG9TY3JvbGwoSSl7dGhpcy4jaT1JfSNhPShrMSh0aGlzLGIpLGsxKHRoaXMsdywxZTQpKTtnZXQgbWF4RW50cmllcygpe3JldHVybiB0aGlzLiNhfXNldCBtYXhFbnRyaWVzKEkpe3RoaXMuI2E9SX0jbj0oazEodGhpcyxrKSxrMSh0aGlzLHosW10pKTtnZXQgaGlnaGxpZ2h0S2V5d29yZHMoKXtyZXR1cm4gdGhpcy4jbn1zZXQgaGlnaGxpZ2h0S2V5d29yZHMoSSl7dGhpcy4jbj1JfSNvPShrMSh0aGlzLE0pLGsxKHRoaXMsRCwhMCkpO2dldCBzaG93TWV0cmljcygpe3JldHVybiB0aGlzLiNvfXNldCBzaG93TWV0cmljcyhJKXt0aGlzLiNvPUl9I3M9KGsxKHRoaXMsTiksazEodGhpcyxfLCIiKSk7Z2V0IHNlYXJjaFF1ZXJ5KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHNlYXJjaFF1ZXJ5KEkpe3RoaXMuI3M9SX0jbD0oazEodGhpcyxTKSxrMSh0aGlzLFQsITEpKTtnZXQgZmlsdGVyTW9kZSgpe3JldHVybiB0aGlzLiNsfXNldCBmaWx0ZXJNb2RlKEkpe3RoaXMuI2w9SX0jYz0oazEodGhpcyxFKSxrMSh0aGlzLEIse2RlYnVnOjAsaW5mbzowLHdhcm46MCxlcnJvcjowLHN1Y2Nlc3M6MCx0b3RhbDowLHJhdGU6MH0pKTtnZXQgbWV0cmljcygpe3JldHVybiB0aGlzLiNjfXNldCBtZXRyaWNzKEkpe3RoaXMuI2M9SX0jZD0oazEodGhpcyxHKSxrMSh0aGlzLFAsITEpKTtnZXQgdGVybWluYWxSZWFkeSgpe3JldHVybiB0aGlzLiNkfXNldCB0ZXJtaW5hbFJlYWR5KEkpe3RoaXMuI2Q9SX1sb2dCdWZmZXI9KGsxKHRoaXMsZ2UpLFtdKTt0cmFpbGluZ0hpZGRlbkNvdW50PTA7dGVybWluYWw9bnVsbDtmaXRBZGRvbj1udWxsO3NlYXJjaEFkZG9uPW51bGw7cmVzaXplT2JzZXJ2ZXI9bnVsbDt0ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPW51bGw7ZG9tdG9vbHNJbnN0YW5jZT1udWxsO3JhdGVCdWZmZXI9W107cmF0ZUludGVydmFsPW51bGw7c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAuaGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgfQoKICAgICAgLnRpdGxlIHsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTUwcHg7CiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDsKICAgICAgfQoKICAgICAgLnNlYXJjaC1ib3ggaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoLWJveCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtYm94IGlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAuc2VhcmNoLW5hdiBidXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweCA2cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE7CiAgICAgIH0KCiAgICAgIC5zZWFyY2gtbmF2IGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZmlsdGVyLXRvZ2dsZS5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woNDUgOTMlIDQ3JSkiLCJoc2woNDUgOTMlIDQ3JSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDQ1IDkzJSA0NyUpIiwiaHNsKDQ1IDkzJSA0NyUpIil9OwogICAgICAgIGNvbG9yOiBoc2woMCAwJSA5JSk7CiAgICAgIH0KCiAgICAgIC5jb250cm9scyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyNSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wtYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciAueHRlcm0gewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0NS4xJSkiLCJoc2woMCAwJSA2My45JSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgfQoKICAgICAgLm1ldHJpY3MtYmFyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLm1ldHJpYyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAubWV0cmljOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAubWV0cmljLmVycm9yOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDg0LjIlIDYwLjIlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy53YXJuOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyNSA5NSUgNTMlKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5pbmZvOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgyMjIuMiA0Ny40JSA1MS4yJSk7CiAgICAgIH0KCiAgICAgIC5tZXRyaWMuc3VjY2Vzczo6YmVmb3JlIHsKICAgICAgICBiYWNrZ3JvdW5kOiBoc2woMTQyLjEgNzYuMiUgMzYuMyUpOwogICAgICB9CgogICAgICAubWV0cmljLmRlYnVnOjpiZWZvcmUgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDAlIDYzLjklKTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlIHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLm1ldHJpYy5yYXRlOjpiZWZvcmUgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KICAgIGBdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxkMS5zZXR1cCgpfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJtYWluYm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPiR7dGhpcy5sYWJlbH08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPgogICAgICAgICAgICA8aW5wdXQKICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJTZWFyY2ggbG9ncy4uLiIKICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLnNlYXJjaFF1ZXJ5fQogICAgICAgICAgICAgIEBpbnB1dD0ke0k9PnRoaXMuaGFuZGxlU2VhcmNoSW5wdXQoSSl9CiAgICAgICAgICAgICAgQGtleWRvd249JHtJPT50aGlzLmhhbmRsZVNlYXJjaEtleWRvd24oSSl9CiAgICAgICAgICAgIC8+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1uYXYiPgogICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuc2VhcmNoUHJldmlvdXMoKX0gdGl0bGU9IlByZXZpb3VzIG1hdGNoIj7ihpE8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0keygpPT50aGlzLnNlYXJjaE5leHQoKX0gdGl0bGU9Ik5leHQgbWF0Y2giPuKGkzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgIGNsYXNzPSJmaWx0ZXItdG9nZ2xlICR7dGhpcy5maWx0ZXJNb2RlPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVGaWx0ZXJNb2RlKCl9CiAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5maWx0ZXJNb2RlPyJTd2l0Y2ggdG8gaGlnaGxpZ2h0IG1vZGUiOiJTd2l0Y2ggdG8gZmlsdGVyIG1vZGUifSIKICAgICAgICAgICAgPgogICAgICAgICAgICAgICR7dGhpcy5maWx0ZXJNb2RlPyJGaWx0ZXIiOiJIaWdobGlnaHQifQogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9ImNvbnRyb2wtYnV0dG9uICR7dGhpcy5hdXRvU2Nyb2xsPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy50b2dnbGVBdXRvU2Nyb2xsKCl9CiAgICAgICAgICAgID4KICAgICAgICAgICAgICBBdXRvIFNjcm9sbAogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29udHJvbC1idXR0b24iIEBjbGljaz0keygpPT50aGlzLmNsZWFyTG9ncygpfT4KICAgICAgICAgICAgICBDbGVhcgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnRlcm1pbmFsUmVhZHk/IiI6Q2A8ZGl2IGNsYXNzPSJsb2FkaW5nLXN0YXRlIj5Mb2FkaW5nIHRlcm1pbmFsLi4uPC9kaXY+YH0KICAgICAgICA8L2Rpdj4KCiAgICAgICAgJHt0aGlzLnNob3dNZXRyaWNzP0NgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWV0cmljcy1iYXIiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBlcnJvciI+ZXJyb3JzOiAke3RoaXMubWV0cmljcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHdhcm4iPndhcm5zOiAke3RoaXMubWV0cmljcy53YXJufTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgaW5mbyI+aW5mbzogJHt0aGlzLm1ldHJpY3MuaW5mb308L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWV0cmljIHN1Y2Nlc3MiPnN1Y2Nlc3M6ICR7dGhpcy5tZXRyaWNzLnN1Y2Nlc3N9PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1ldHJpYyBkZWJ1ZyI+ZGVidWc6ICR7dGhpcy5tZXRyaWNzLmRlYnVnfTwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXRyaWMgcmF0ZSI+JHt0aGlzLm1ldHJpY3MucmF0ZS50b0ZpeGVkKDEpfSBsb2dzL3NlYzwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMuZG9tdG9vbHNJbnN0YW5jZT1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSxhd2FpdCB0aGlzLmluaXRpYWxpemVUZXJtaW5hbCgpLHRoaXMubG9nRW50cmllcy5sZW5ndGg+MCYmdGhpcy5sb2dCdWZmZXIubGVuZ3RoPT09MCl7dGhpcy5sb2dCdWZmZXI9Wy4uLnRoaXMubG9nRW50cmllc107Zm9yKGxldCBJIG9mIHRoaXMubG9nRW50cmllcyl0aGlzLnVwZGF0ZU1ldHJpY3MoSS5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KEkpfWVsc2UgaWYodGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wJiZ0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+MCl7bGV0IEk9bmV3IFNldCh0aGlzLmxvZ0J1ZmZlci5tYXAobmU9PmAke25lLnRpbWVzdGFtcH18JHtuZS5tZXNzYWdlfWApKTtmb3IobGV0IG5lIG9mIHRoaXMubG9nRW50cmllcylJLmhhcyhgJHtuZS50aW1lc3RhbXB9fCR7bmUubWVzc2FnZX1gKXx8KHRoaXMubG9nQnVmZmVyLnB1c2gobmUpLHRoaXMudXBkYXRlTWV0cmljcyhuZS5sZXZlbCksdGhpcy53cml0ZUxvZ0VudHJ5KG5lKSl9fWFzeW5jIGluaXRpYWxpemVUZXJtaW5hbCgpe2xldCBJPXJhLmdldEluc3RhbmNlKCksW25lLGtlLFldPWF3YWl0IFByb21pc2UuYWxsKFtJLmxvYWRYdGVybSgpLEkubG9hZFh0ZXJtRml0QWRkb24oKSxJLmxvYWRYdGVybVNlYXJjaEFkZG9uKCldKTthd2FpdCB0aGlzLmluamVjdFh0ZXJtU3R5bGVzSW50b1NoYWRvdygpLHRoaXMudGVybWluYWw9bmV3IG5lLlRlcm1pbmFsKHtjdXJzb3JCbGluazohMSxkaXNhYmxlU3RkaW46ITAsZm9udFNpemU6MTIsZm9udEZhbWlseToiJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0xpYmVyYXRpb24gTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZSIsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKCksc2Nyb2xsYmFjazp0aGlzLm1heEVudHJpZXMsY29udmVydEVvbDohMH0pLHRoaXMuZml0QWRkb249bmV3IGtlLkZpdEFkZG9uLHRoaXMuc2VhcmNoQWRkb249bmV3IFkuU2VhcmNoQWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5zZWFyY2hBZGRvbik7bGV0IEE9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtaW5hbC1jb250YWluZXIiKTt0aGlzLnRlcm1pbmFsLm9wZW4oQSksYXdhaXQgbmV3IFByb21pc2UoTD0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEwpKSx0aGlzLmZpdEFkZG9uLmZpdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5maXRBZGRvbj8uZml0KCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoQSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXRoaXMuZG9tdG9vbHNJbnN0YW5jZS50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZSgoKT0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKCkpfSksdGhpcy5yYXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9PnRoaXMuY2FsY3VsYXRlUmF0ZSgpLDFlMyksdGhpcy50ZXJtaW5hbFJlYWR5PSEwO2ZvcihsZXQgTCBvZiB0aGlzLmxvZ0J1ZmZlcil0aGlzLndyaXRlTG9nRW50cnkoTCl9dXBkYXRlZChJKXtpZihzdXBlci51cGRhdGVkKEkpLEkuaGFzKCJsb2dFbnRyaWVzIikmJnRoaXMudGVybWluYWxSZWFkeSYmdGhpcy5sb2dFbnRyaWVzLmxlbmd0aD4wKXtsZXQgbmU9SS5nZXQoImxvZ0VudHJpZXMiKXx8W10sa2U9dGhpcy5sb2dFbnRyaWVzO2lmKG5lLmxlbmd0aD09PWtlLmxlbmd0aCYmbmUubGVuZ3RoPjAmJm5lW25lLmxlbmd0aC0xXS50aW1lc3RhbXA9PT1rZVtrZS5sZW5ndGgtMV0udGltZXN0YW1wJiZuZVtuZS5sZW5ndGgtMV0ubWVzc2FnZT09PWtlW2tlLmxlbmd0aC0xXS5tZXNzYWdlKXJldHVybjtpZihrZS5sZW5ndGg+bmUubGVuZ3RoJiZuZS5sZW5ndGg+MCYmbmVbbmUubGVuZ3RoLTFdLnRpbWVzdGFtcD09PWtlW25lLmxlbmd0aC0xXS50aW1lc3RhbXAmJm5lW25lLmxlbmd0aC0xXS5tZXNzYWdlPT09a2VbbmUubGVuZ3RoLTFdLm1lc3NhZ2Upe2xldCBZPWtlLnNsaWNlKG5lLmxlbmd0aCk7Zm9yKGxldCBBIG9mIFkpdGhpcy5sb2dCdWZmZXIucHVzaChBKSx0aGlzLnVwZGF0ZU1ldHJpY3MoQS5sZXZlbCksdGhpcy5sb2dCdWZmZXIubGVuZ3RoPnRoaXMubWF4RW50cmllcyYmdGhpcy5sb2dCdWZmZXIuc2hpZnQoKSwoIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnl8fHRoaXMuZW50cnlNYXRjaGVzRmlsdGVyKEEpKSYmdGhpcy53cml0ZUxvZ0VudHJ5KEEpO3JldHVybn10aGlzLmxvZ0J1ZmZlcj1bLi4ua2VdLHRoaXMucmVSZW5kZXJGaWx0ZXJlZExvZ3MoKX19Z2V0VGVybWluYWxUaGVtZSgpe3JldHVybiB0aGlzLmRvbXRvb2xzSW5zdGFuY2U/LnRoZW1lTWFuYWdlcj8uaXNEYXJrTW9kZT8/ITA/e2JhY2tncm91bmQ6IiMwYTBhMGEiLGZvcmVncm91bmQ6IiNlMGUwZTAiLGN1cnNvcjoiI2UwZTBlMCIsc2VsZWN0aW9uQmFja2dyb3VuZDoiIzQwNDA0MCIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2ZmNTU1NSIsZ3JlZW46IiM1MGZhN2IiLHllbGxvdzoiI2YxZmE4YyIsYmx1ZToiIzYyNzJhNCIsbWFnZW50YToiI2ZmNzljNiIsY3lhbjoiIzhiZTlmZCIsd2hpdGU6IiNmOGY4ZjIiLGJyaWdodEJsYWNrOiIjNjI3MmE0IixicmlnaHRSZWQ6IiNmZjZlNmUiLGJyaWdodEdyZWVuOiIjNjlmZjk0IixicmlnaHRZZWxsb3c6IiNmZmZmYTUiLGJyaWdodEJsdWU6IiNkNmFjZmYiLGJyaWdodE1hZ2VudGE6IiNmZjkyZGYiLGJyaWdodEN5YW46IiNhNGZmZmYiLGJyaWdodFdoaXRlOiIjZmZmZmZmIn06e2JhY2tncm91bmQ6IiNmZmZmZmYiLGZvcmVncm91bmQ6IiMzMzMzMzMiLGN1cnNvcjoiIzMzMzMzMyIsc2VsZWN0aW9uQmFja2dyb3VuZDoiI2FkZDZmZiIsYmxhY2s6IiMwMDAwMDAiLHJlZDoiI2NkMzEzMSIsZ3JlZW46IiMwMGJjMDAiLHllbGxvdzoiIzk0OTgwMCIsYmx1ZToiIzA0NTFhNSIsbWFnZW50YToiI2JjMDViYyIsY3lhbjoiIzA1OThiYyIsd2hpdGU6IiM1NTU1NTUiLGJyaWdodEJsYWNrOiIjNjY2NjY2IixicmlnaHRSZWQ6IiNjZDMxMzEiLGJyaWdodEdyZWVuOiIjMTRjZTE0IixicmlnaHRZZWxsb3c6IiNiNWJhMDAiLGJyaWdodEJsdWU6IiMwNDUxYTUiLGJyaWdodE1hZ2VudGE6IiNiYzA1YmMiLGJyaWdodEN5YW46IiMwNTk4YmMiLGJyaWdodFdoaXRlOiIjYTVhNWE1In19YXN5bmMgaW5qZWN0WHRlcm1TdHlsZXNJbnRvU2hhZG93KCl7bGV0IEk9Inh0ZXJtLXNoYWRvdy1zdHlsZXMiO2lmKHRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZChJKSlyZXR1cm47bGV0IG5lPWAke0lhfS94dGVybUAke0UyLnh0ZXJtfS9jc3MveHRlcm0uY3NzYCxZPWF3YWl0KGF3YWl0IGZldGNoKG5lKSkudGV4dCgpLEE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtBLmlkPUksQS50ZXh0Q29udGVudD1ZLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChBKX1hZGRMb2coSSxuZSxrZSl7bGV0IFk9e3RpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksbGV2ZWw6SSxtZXNzYWdlOm5lLHNvdXJjZTprZX07dGhpcy5sb2dCdWZmZXIucHVzaChZKSx0aGlzLmxvZ0J1ZmZlci5sZW5ndGg+dGhpcy5tYXhFbnRyaWVzJiZ0aGlzLmxvZ0J1ZmZlci5zaGlmdCgpLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5P3RoaXMud3JpdGVMb2dFbnRyeShZKTp0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihZKT8odGhpcy50cmFpbGluZ0hpZGRlbkNvdW50PTAsdGhpcy53cml0ZUxvZ0VudHJ5KFkpKTp0aGlzLnVwZGF0ZVRyYWlsaW5nUGxhY2Vob2xkZXIoKSx0aGlzLnVwZGF0ZU1ldHJpY3MoWS5sZXZlbCl9dXBkYXRlTG9nKEkpe2lmKEkpZm9yKGxldCBuZSBvZiBJKXRoaXMubG9nQnVmZmVyLnB1c2gobmUpLHRoaXMubG9nQnVmZmVyLmxlbmd0aD50aGlzLm1heEVudHJpZXMmJnRoaXMubG9nQnVmZmVyLnNoaWZ0KCksIXRoaXMuZmlsdGVyTW9kZXx8IXRoaXMuc2VhcmNoUXVlcnk/dGhpcy53cml0ZUxvZ0VudHJ5KG5lKTp0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihuZSk/KHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMud3JpdGVMb2dFbnRyeShuZSkpOnRoaXMudXBkYXRlVHJhaWxpbmdQbGFjZWhvbGRlcigpLHRoaXMudXBkYXRlTWV0cmljcyhuZS5sZXZlbCl9dXBkYXRlVHJhaWxpbmdQbGFjZWhvbGRlcigpe3RoaXMudGVybWluYWwmJih0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ+MCYmdGhpcy50ZXJtaW5hbC53cml0ZSgiXHgxQlsxQVx4MUJbMktcciIpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudCsrLHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcih0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQpLHRoaXMuYXV0b1Njcm9sbCYmdGhpcy50ZXJtaW5hbC5zY3JvbGxUb0JvdHRvbSgpKX1lbnRyeU1hdGNoZXNGaWx0ZXIoSSl7aWYoIXRoaXMuc2VhcmNoUXVlcnkpcmV0dXJuITA7bGV0IG5lPXRoaXMuc2VhcmNoUXVlcnkudG9Mb3dlckNhc2UoKTtyZXR1cm4gSS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmUpfHxJLmxldmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmUpfHwoSS5zb3VyY2U/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmUpPz8hMSl9d3JpdGVMb2dFbnRyeShJKXtpZighdGhpcy50ZXJtaW5hbClyZXR1cm47bGV0IG5lPXRoaXMuZm9ybWF0TG9nRW50cnkoSSk7dGhpcy50ZXJtaW5hbC53cml0ZWxuKG5lKSx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX1mb3JtYXRMb2dFbnRyeShJKXtsZXQgbmU9dGhpcy5mb3JtYXRUaW1lc3RhbXAoSS50aW1lc3RhbXApLGtlPXtkZWJ1ZzoiXHgxQls5MG0iLGluZm86Ilx4MUJbMzZtIix3YXJuOiJceDFCWzMzbSIsZXJyb3I6Ilx4MUJbMzFtIixzdWNjZXNzOiJceDFCWzMybSJ9LFk9Ilx4MUJbMG0iLEE9Ilx4MUJbMm0iLEw9YCR7a2VbSS5sZXZlbF19WyR7SS5sZXZlbC50b1VwcGVyQ2FzZSgpLnBhZEVuZCg3KX1dJHtZfWAsVT1JLnNvdXJjZT9gJHtBfVske0kuc291cmNlfV0ke1l9IGA6IiIsVj10aGlzLmFwcGx5SGlnaGxpZ2h0cyhJLm1lc3NhZ2UpO3JldHVybmAke0F9JHtuZX0ke1l9ICR7TH0gJHtVfSR7Vn1gfWZvcm1hdFRpbWVzdGFtcChJKXtyZXR1cm4gbmV3IERhdGUoSSkudG9Mb2NhbGVUaW1lU3RyaW5nKCJlbi1VUyIse2hvdXIxMjohMSxob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLHNlY29uZDoiMi1kaWdpdCIsZnJhY3Rpb25hbFNlY29uZERpZ2l0czozfSl9YXBwbHlIaWdobGlnaHRzKEkpe2xldCBuZT1bLi4udGhpcy5oaWdobGlnaHRLZXl3b3Jkc107aWYodGhpcy5maWx0ZXJNb2RlJiZ0aGlzLnNlYXJjaFF1ZXJ5JiZuZS5wdXNoKHRoaXMuc2VhcmNoUXVlcnkpLG5lLmxlbmd0aD09PTApcmV0dXJuIEk7bGV0IGtlPUk7Zm9yKGxldCBZIG9mIG5lKXtsZXQgQT1ZLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIiksTD1uZXcgUmVnRXhwKGAoJHtBfSlgLCJnaSIpO2tlPWtlLnJlcGxhY2UoTCwiXHgxQls0M21ceDFCWzMwbSQxXHgxQlswbSIpfXJldHVybiBrZX13cml0ZVJhdyhJKXt0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC53cml0ZShJKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfXdyaXRlbG5SYXcoSSl7dGhpcy50ZXJtaW5hbCYmKHRoaXMudGVybWluYWwud3JpdGVsbihJKSx0aGlzLnJlY29yZExvZ0V2ZW50KCksdGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCkpfWhhbmRsZVNlYXJjaElucHV0KEkpe2xldCBrZT1JLnRhcmdldC52YWx1ZSxZPXRoaXMuc2VhcmNoUXVlcnkhPT1rZTt0aGlzLnNlYXJjaFF1ZXJ5PWtlLHRoaXMuZmlsdGVyTW9kZSYmWT90aGlzLnJlUmVuZGVyRmlsdGVyZWRMb2dzKCk6dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQodGhpcy5zZWFyY2hRdWVyeSl9aGFuZGxlU2VhcmNoS2V5ZG93bihJKXtJLmtleT09PSJFbnRlciI/SS5zaGlmdEtleT90aGlzLnNlYXJjaFByZXZpb3VzKCk6dGhpcy5zZWFyY2hOZXh0KCk6SS5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2VhcmNoUXVlcnk9IiIsSS50YXJnZXQudmFsdWU9IiIpfXNlYXJjaChJKXt0aGlzLnNlYXJjaFF1ZXJ5PUksdGhpcy5zZWFyY2hBZGRvbj8uZmluZE5leHQoSSl9c2VhcmNoTmV4dCgpe3RoaXMuc2VhcmNoUXVlcnkmJnRoaXMuc2VhcmNoQWRkb24/LmZpbmROZXh0KHRoaXMuc2VhcmNoUXVlcnkpfXNlYXJjaFByZXZpb3VzKCl7dGhpcy5zZWFyY2hRdWVyeSYmdGhpcy5zZWFyY2hBZGRvbj8uZmluZFByZXZpb3VzKHRoaXMuc2VhcmNoUXVlcnkpfXRvZ2dsZUF1dG9TY3JvbGwoKXt0aGlzLmF1dG9TY3JvbGw9IXRoaXMuYXV0b1Njcm9sbCx0aGlzLmF1dG9TY3JvbGwmJnRoaXMudGVybWluYWwmJnRoaXMudGVybWluYWwuc2Nyb2xsVG9Cb3R0b20oKX10b2dnbGVGaWx0ZXJNb2RlKCl7dGhpcy5maWx0ZXJNb2RlPSF0aGlzLmZpbHRlck1vZGUsdGhpcy5yZVJlbmRlckZpbHRlcmVkTG9ncygpfXJlUmVuZGVyRmlsdGVyZWRMb2dzKCl7aWYodGhpcy50ZXJtaW5hbCl7aWYodGhpcy50ZXJtaW5hbC5jbGVhcigpLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLCF0aGlzLmZpbHRlck1vZGV8fCF0aGlzLnNlYXJjaFF1ZXJ5KWZvcihsZXQgSSBvZiB0aGlzLmxvZ0J1ZmZlcil7bGV0IG5lPXRoaXMuZm9ybWF0TG9nRW50cnkoSSk7dGhpcy50ZXJtaW5hbC53cml0ZWxuKG5lKX1lbHNle2xldCBJPTA7Zm9yKGxldCBuZSBvZiB0aGlzLmxvZ0J1ZmZlcilpZih0aGlzLmVudHJ5TWF0Y2hlc0ZpbHRlcihuZSkpe0k+MCYmKHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcihJKSxJPTApO2xldCBrZT10aGlzLmZvcm1hdExvZ0VudHJ5KG5lKTt0aGlzLnRlcm1pbmFsLndyaXRlbG4oa2UpfWVsc2UgSSsrO0k+MCYmKHRoaXMud3JpdGVIaWRkZW5QbGFjZWhvbGRlcihJKSx0aGlzLnRyYWlsaW5nSGlkZGVuQ291bnQ9SSl9dGhpcy5hdXRvU2Nyb2xsJiZ0aGlzLnRlcm1pbmFsLnNjcm9sbFRvQm90dG9tKCl9fXdyaXRlSGlkZGVuUGxhY2Vob2xkZXIoSSl7bGV0IG5lPSJceDFCWzJtIixrZT0iXHgxQlswbSIsWT1JPT09MT8iWzEgbG9nIGxpbmUgaGlkZGVuIGJ5IGZpbHRlciAuLi5dIjpgWyR7SX0gbG9nIGxpbmVzIGhpZGRlbiBieSBmaWx0ZXIgLi4uXWA7dGhpcy50ZXJtaW5hbD8ud3JpdGVsbihgJHtuZX0ke1l9JHtrZX1gKX1jbGVhckxvZ3MoKXt0aGlzLnRlcm1pbmFsPy5jbGVhcigpLHRoaXMubG9nQnVmZmVyPVtdLHRoaXMudHJhaWxpbmdIaWRkZW5Db3VudD0wLHRoaXMucmVzZXRNZXRyaWNzKCl9c2Nyb2xsVG9Cb3R0b20oKXt0aGlzLnRlcm1pbmFsPy5zY3JvbGxUb0JvdHRvbSgpfXVwZGF0ZU1ldHJpY3MoSSl7dGhpcy5tZXRyaWNzPXsuLi50aGlzLm1ldHJpY3MsW0ldOnRoaXMubWV0cmljc1tJXSsxLHRvdGFsOnRoaXMubWV0cmljcy50b3RhbCsxfSx0aGlzLnJlY29yZExvZ0V2ZW50KCl9cmVjb3JkTG9nRXZlbnQoKXt0aGlzLnJhdGVCdWZmZXIucHVzaChEYXRlLm5vdygpKX1jYWxjdWxhdGVSYXRlKCl7bGV0IEk9RGF0ZS5ub3coKTt0aGlzLnJhdGVCdWZmZXI9dGhpcy5yYXRlQnVmZmVyLmZpbHRlcihrZT0+SS1rZTwxZTQpO2xldCBuZT10aGlzLnJhdGVCdWZmZXIubGVuZ3RoLzEwO25lIT09dGhpcy5tZXRyaWNzLnJhdGUmJih0aGlzLm1ldHJpY3M9ey4uLnRoaXMubWV0cmljcyxyYXRlOm5lfSl9cmVzZXRNZXRyaWNzKCl7dGhpcy5tZXRyaWNzPXtkZWJ1ZzowLGluZm86MCx3YXJuOjAsZXJyb3I6MCxzdWNjZXNzOjAsdG90YWw6MCxyYXRlOjB9LHRoaXMucmF0ZUJ1ZmZlcj1bXX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlciYmdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uJiZ0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnJhdGVJbnRlcnZhbCYmY2xlYXJJbnRlcnZhbCh0aGlzLnJhdGVJbnRlcnZhbCksdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5kaXNwb3NlKCl9c3RhdGlje2sxKGkscil9fTtyZXR1cm4gd2U9aX0pKCl9KTt2YXIgU2NyPXAoKCk9PntrY3IoKX0pO3ZhciB6Y3I9cCgoKT0+e3hjcigpO1NjcigpfSk7dmFyIENjcixUY3I9cCgoKT0+e3hlKCk7Q2NyPSgpPT5DYAogIDxzdHlsZT4KICAgIC5kZW1vV3JhcHBlciB7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CiAgICAKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQogICAgCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5UeXBlU2NyaXB0IENvZGUgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIGNvbXByZWhlbnNpdmUgVHlwZVNjcmlwdCBjb2RlIGV4YW1wbGUgd2l0aCB2YXJpb3VzIHN5bnRheCBoaWdobGlnaHRpbmcuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9InR5cGVzY3JpcHQiPgppbnRlcmZhY2UgVXNlciB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7CiAgZW1haWw6IHN0cmluZzsKICBpc0FjdGl2ZTogYm9vbGVhbjsKfQoKY2xhc3MgVXNlclNlcnZpY2UgewogIHByaXZhdGUgdXNlcnM6IFVzZXJbXSA9IFtdOwogIAogIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpVXJsOiBzdHJpbmcpIHsKICAgIGNvbnNvbGUubG9nKCdVc2VyU2VydmljZSBpbml0aWFsaXplZCcpOwogIH0KICAKICBhc3luYyBnZXRVc2VycygpOiBQcm9taXNlPFVzZXJbXT4gewogICAgdHJ5IHsKICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLmFwaVVybCk7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7CiAgICAgIHJldHVybiBkYXRhLnVzZXJzOwogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHVzZXJzOicsIGVycm9yKTsKICAgICAgcmV0dXJuIFtdOwogICAgfQogIH0KICAKICBhZGRVc2VyKHVzZXI6IFVzZXIpOiB2b2lkIHsKICAgIHRoaXMudXNlcnMucHVzaCh1c2VyKTsKICB9Cn0KCi8vIFVzYWdlIGV4YW1wbGUKY29uc3Qgc2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdXNlcnMnKTsKY29uc3QgdXNlcnMgPSBhd2FpdCBzZXJ2aWNlLmdldFVzZXJzKCk7CmNvbnNvbGUubG9nKCdGb3VuZCB1c2VyczonLCB1c2Vycy5sZW5ndGgpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SmF2YVNjcmlwdCBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPk1vZGVybiBKYXZhU2NyaXB0IHdpdGggRVM2KyBmZWF0dXJlcy48L2Rpdj4KICAgICAgPGRlZXMtZGF0YXZpZXctY29kZWJveCBwcm9nbGFuZz0iamF2YXNjcmlwdCI+Ci8vIEFycmF5IG1hbmlwdWxhdGlvbiBleGFtcGxlcwpjb25zdCBudW1iZXJzID0gWzEsIDIsIDMsIDQsIDVdOwpjb25zdCBkb3VibGVkID0gbnVtYmVycy5tYXAobiA9PiBuICogMik7CmNvbnN0IGZpbHRlcmVkID0gbnVtYmVycy5maWx0ZXIobiA9PiBuID4gMyk7CgovLyBPYmplY3QgZGVzdHJ1Y3R1cmluZwpjb25zdCB1c2VyID0geyBuYW1lOiAnSm9obicsIGFnZTogMzAsIGNpdHk6ICdOZXcgWW9yaycgfTsKY29uc3QgeyBuYW1lLCBhZ2UgfSA9IHVzZXI7CgovLyBQcm9taXNlIGhhbmRsaW5nCmNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICh1cmwpID0+IHsKICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7CiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTsKfTsKCi8vIE1vZGVybiBzeW50YXgKY29uc3QgZ3JlZXQgPSAobmFtZSA9ICdXb3JsZCcpID0+IFxgSGVsbG8sIFwke25hbWV9IVxgOwpjb25zb2xlLmxvZyhncmVldCgnU2hhZENOJykpOwogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UHl0aG9uIEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+UHl0aG9uIGNvZGUgd2l0aCBjbGFzc2VzIGFuZCB0eXBlIGhpbnRzLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJweXRob24iPgpmcm9tIHR5cGluZyBpbXBvcnQgTGlzdCwgT3B0aW9uYWwKaW1wb3J0IGFzeW5jaW8KCmNsYXNzIERhdGFQcm9jZXNzb3I6CiAgICAiIiJBIHNpbXBsZSBkYXRhIHByb2Nlc3NvciBjbGFzcyIiIgogICAgCiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZTogc3RyKToKICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgc2VsZi5kYXRhOiBMaXN0W2RpY3RdID0gW10KICAgIAogICAgYXN5bmMgZGVmIHByb2Nlc3NfZGF0YShzZWxmLCBpdGVtczogTGlzdFtkaWN0XSkgLT4gTGlzdFtkaWN0XToKICAgICAgICAiIiJQcm9jZXNzIGRhdGEgaXRlbXMgYXN5bmNocm9ub3VzbHkiIiIKICAgICAgICByZXN1bHRzID0gW10KICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKICAgICAgICAgICAgIyBTaW11bGF0ZSBhc3luYyBwcm9jZXNzaW5nCiAgICAgICAgICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMC4xKQogICAgICAgICAgICByZXN1bHRzLmFwcGVuZCh7CiAgICAgICAgICAgICAgICAnaWQnOiBpdGVtLmdldCgnaWQnKSwKICAgICAgICAgICAgICAgICdwcm9jZXNzZWQnOiBUcnVlLAogICAgICAgICAgICAgICAgJ3Byb2Nlc3Nvcic6IHNlbGYubmFtZQogICAgICAgICAgICB9KQogICAgICAgIHJldHVybiByZXN1bHRzCiAgICAKICAgIGRlZiBnZXRfc3VtbWFyeShzZWxmKSAtPiBkaWN0OgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICdwcm9jZXNzb3InOiBzZWxmLm5hbWUsCiAgICAgICAgICAgICdpdGVtc19wcm9jZXNzZWQnOiBsZW4oc2VsZi5kYXRhKQogICAgICAgIH0KCiMgVXNhZ2UKcHJvY2Vzc29yID0gRGF0YVByb2Nlc3NvcigiTWFpbiIpCmRhdGEgPSBhd2FpdCBwcm9jZXNzb3IucHJvY2Vzc19kYXRhKFt7J2lkJzogMX0sIHsnaWQnOiAyfV0pCiAgICAgIDwvZGVlcy1kYXRhdmlldy1jb2RlYm94PgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5DU1MgRXhhbXBsZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Nb2Rlcm4gQ1NTIHdpdGggY3VzdG9tIHByb3BlcnRpZXMgYW5kIGFuaW1hdGlvbnMuIE5vdGUgdGhlIHNob3J0ZXIgbGFuZ3VhZ2UgbGFiZWwuPC9kaXY+CiAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3ggcHJvZ2xhbmc9ImNzcyI+Ci8qIE1vZGVybiBDU1Mgd2l0aCBjdXN0b20gcHJvcGVydGllcyAqLwo6cm9vdCB7CiAgLS1wcmltYXJ5LWNvbG9yOiAjM2I4MmY2OwogIC0tc2Vjb25kYXJ5LWNvbG9yOiAjMTBiOTgxOwogIC0tYmFja2dyb3VuZDogI2ZmZmZmZjsKICAtLXRleHQtY29sb3I6ICMwOTA5MGI7CiAgLS1ib3JkZXItcmFkaXVzOiA2cHg7Cn0KCi5jYXJkIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kKTsKICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpOwogIHBhZGRpbmc6IDI0cHg7CiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTsKICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwp9CgouY2FyZDpob3ZlciB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7Cn0KCkBrZXlmcmFtZXMgZmFkZUluIHsKICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9CiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KfQogICAgICA8L2RlZXMtZGF0YXZpZXctY29kZWJveD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+SlNPTiBFeGFtcGxlPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkpTT04gY29uZmlndXJhdGlvbiB3aXRoIHByb3BlciBmb3JtYXR0aW5nLjwvZGl2PgogICAgICA8ZGVlcy1kYXRhdmlldy1jb2RlYm94IHByb2dsYW5nPSJqc29uIj4KewogICJuYW1lIjogIkBkZXNpZ24uZXN0YXRlL2RlZXMtY2F0YWxvZyIsCiAgInZlcnNpb24iOiAiMS4xMC43IiwKICAiZGVzY3JpcHRpb24iOiAiQSBjb21wcmVoZW5zaXZlIGNhdGFsb2cgb2Ygd2ViIGNvbXBvbmVudHMiLAogICJtYWluIjogImRpc3RfdHNfd2ViL2luZGV4LmpzIiwKICAidHlwZSI6ICJtb2R1bGUiLAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQgdHNmb2xkZXJzIC0tYWxsb3dpbXBsaWNpdGFueSAmJiB0c2J1bmRsZSBlbGVtZW50IC0tcHJvZHVjdGlvbiIsCiAgICAid2F0Y2giOiAidHN3YXRjaCBlbGVtZW50IiwKICAgICJ0ZXN0IjogInRzdGVzdCB0ZXN0LyAtLXdlYiAtLXZlcmJvc2UiCiAgfSwKICAiZGVwZW5kZW5jaWVzIjogewogICAgIkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI6ICJeMi4wLjQ1IiwKICAgICJoaWdobGlnaHQuanMiOiAiXjExLjkuMCIKICB9Cn0KICAgICAgPC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBqNmUsZ2IsX2NyLFY2ZT1wKCgpPT57VGNyKCk7eGUoKTtRYSgpO1I4KCk7S3QoKTtNaSgpO0I0KCk7ajZlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sZ2I9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LF9jcj0oKCk9PntsZXQgZT1beWUoImRlZXMtZGF0YXZpZXctY29kZWJveCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKCldLGw9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sajZlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ0xhbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmY9PiJwcm9nTGFuZyJpbiBmLGdldDpmPT5mLnByb2dMYW5nLHNldDooZix4KT0+e2YucHJvZ0xhbmc9eH19LG1ldGFkYXRhOmh9LG8scyksajZlKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29kZVRvRGlzcGxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+ImNvZGVUb0Rpc3BsYXkiaW4gZixnZXQ6Zj0+Zi5jb2RlVG9EaXNwbGF5LHNldDooZix4KT0+e2YuY29kZVRvRGlzcGxheT14fX0sbWV0YWRhdGE6aH0sYyx1KSxqNmUobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxkPWk9dC52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1DY3I7c3RhdGljIGRlbW9Hcm91cHM9WyJEYXRhIFZpZXciLCJXb3Jrc3BhY2UiXTsjZT1nYih0aGlzLG8sInR5cGVzY3JpcHQiKTtnZXQgcHJvZ0xhbmcoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcHJvZ0xhbmcoaCl7dGhpcy4jZT1ofSN0PShnYih0aGlzLHMpLGdiKHRoaXMsYywiIikpO2dldCBjb2RlVG9EaXNwbGF5KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvZGVUb0Rpc3BsYXkoaCl7dGhpcy4jdD1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgJHtkMS5zdHlsZXN9CiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICAubWFpbmJveCB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNik7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmFwcGJhciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTgxODFiIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMzJweDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmFwcGJhciAuZmlsZU5hbWUgewogICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmJvdHRvbUJhciB7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTgxODFiIil9OwogICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICAgIGhlaWdodDogMjhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5zcGFjZXNMYWJlbCB7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sYW5ndWFnZUxhYmVsIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgICAgcGFkZGluZzogMHB4IDE2cHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1rZXl3b3JkIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuY29kZWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTBweCBhdXRvOwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB9CgogICAgICAgIC5saW5lTnVtYmVycyB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjNTI1MjViIil9OwogICAgICAgICAgcGFkZGluZzogMjRweCAxNnB4IDBweCAwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICB9CgogICAgICAgIC5saW5lQ291bnRlcjpsYXN0LWNoaWxkIHsKICAgICAgICAgIG9wYWNpdHk6IDUwJTsKICAgICAgICB9CgogICAgICAgIHByZSB7CiAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4IDI0cHg7CiAgICAgICAgfQoKICAgICAgICBjb2RlIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgICBwYWRkaW5nOiAwcHg7CiAgICAgICAgICBtYXJnaW46IDBweDsKICAgICAgICB9CgogICAgICAgIGNvZGUsCiAgICAgICAgY29kZSAqLAogICAgICAgIC5saW5lTnVtYmVycyB7CiAgICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07CiAgICAgICAgICBmb250LXdlaWdodDogMjAwOwogICAgICAgICAgZm9udC1mYW1pbHk6ICR7QWR9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtc3RyaW5nIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1idWlsdF9pbiB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM4YjVjZjYiLCIjYTc4YmZhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtZnVuY3Rpb24gewogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICB9CgogICAgICAgIC5obGpzLXBhcmFtcyB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwODkxYjIiLCIjMDZiNmQ0Iil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtY29tbWVudCB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgICAgIH0KCiAgICAgICAgLmhsanMtbnVtYmVyIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiI2VhNTgwYyIsIiNmYjkyM2MiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1saXRlcmFsIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiI2RjMjYyNiIsIiNmODcxNzEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy1hdHRyIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzhiNWNmNiIsIiNhNzhiZmEiKX07CiAgICAgICAgfQoKICAgICAgICAuaGxqcy12YXJpYWJsZSB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJtYWluYm94IgogICAgICAgIEBjb250ZXh0bWVudT0iJHtoPT57U3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoaCxbe25hbWU6IkFib3V0IixpY29uTmFtZToiY2lyY2xlSW5mbyIsYWN0aW9uOmFzeW5jKCk9Pm51bGx9XSl9fSIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9ImFwcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlTmFtZSI+aW5kZXgudHM8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lTnVtYmVycyI+CiAgICAgICAgICAgICR7KCgpPT57bGV0IGg9MDtyZXR1cm4gdGhpcy5jb2RlVG9EaXNwbGF5LnNwbGl0KGAKYCkubWFwKGY9PihoKyssQ2A8ZGl2IGNsYXNzPSJsaW5lQ291bnRlciI+JHtofTwvZGl2PmApKX0pKCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxwcmU+PGNvZGU+PC9jb2RlPjwvcHJlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJvdHRvbUJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXNMYWJlbCI+U3BhY2VzOiAyPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZUxhYmVsIj4ke3RoaXMucHJvZ0xhbmd9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1jb2RlVG9EaXNwbGF5U3RvcmU9KGdiKHRoaXMsdSksIiIpO2hpZ2hsaWdodEpzPW51bGw7YXN5bmMgdXBkYXRlZChoKXtzdXBlci51cGRhdGVkKGgpLGNvbnNvbGUubG9nKCJoaWdobGlnaHRpbmcgbm93IiksY29uc29sZS5sb2codGhpcy5jaGlsZE5vZGVzKTtsZXQgZj1bXTt0aGlzLmNoaWxkTm9kZXMuZm9yRWFjaChiPT57Yi5ub2RlTmFtZT09PSIjdGV4dCImJmYucHVzaChiKX0pLHRoaXMuY29kZVRvRGlzcGxheSYmdGhpcy5jb2RlVG9EaXNwbGF5IT09dGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1CNi5ub3JtYWxpemUodGhpcy5jb2RlVG9EaXNwbGF5KS50cmltU3RhcnQoKSksZlswXSYmZlswXS53aG9sZVRleHQmJiF0aGlzLmNvZGVUb0Rpc3BsYXkmJih0aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZT1CNi5ub3JtYWxpemUoZlswXS53aG9sZVRleHQpLnRyaW1TdGFydCgpLHRoaXMuY29kZVRvRGlzcGxheT10aGlzLmNvZGVUb0Rpc3BsYXlTdG9yZSksYXdhaXQganQuc21hcnRkZWxheS5kZWxheUZvcigwKSx0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCByYS5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgeD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiY29kZSIpLHY9dGhpcy5oaWdobGlnaHRKcy5oaWdobGlnaHQodGhpcy5jb2RlVG9EaXNwbGF5U3RvcmUse2xhbmd1YWdlOnRoaXMucHJvZ0xhbmcsaWdub3JlSWxsZWdhbHM6ITB9KTt4LmlubmVySFRNTD12LnZhbHVlfXN0YXRpY3tnYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgTGNyPXAoKCk9PntWNmUoKX0pO3ZhciBBY3IsRGNyPXAoKCk9Pnt4ZSgpO3cyKCk7QWNyPSgpPT5DYCA8c3R5bGU+CiAgICAuZGVtbyB7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjVmNWY1IiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwYWRkaW5nOiA0MHB4OwogICAgfQogICAgCiAgICAuZGVtby1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMTZweDsKICAgIH0KICAgIAogICAgLmRlbW8tdGl0bGUgewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWY7CiAgICB9CiAgICAKICAgIC5kZW1vLW5vdGUgewogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8iPgogICAgPGRpdiBjbGFzcz0iZGVtby1ub3RlIj4KICAgICAgUmlnaHQtY2xpY2sgb24gYW55IGRldGFpbCByb3cgdG8gY29weSB0aGUgdmFsdWUsIGtleSwgb3Iga2V5OnZhbHVlIGNvbWJpbmF0aW9uCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImRlbW8tZ3JpZCI+CiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby10aXRsZSI+U2VydmljZSBIZWFsdGggU3RhdHVzPC9kaXY+CiAgICAgICAgPGRlZXMtZGF0YXZpZXctc3RhdHVzb2JqZWN0CiAgICAgICAgICAuc3RhdHVzT2JqZWN0PSR7e2lkOiIxIixuYW1lOiJBUEkgR2F0ZXdheSBTZXJ2aWNlIixjb21iaW5lZFN0YXR1czoib2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWwiLGRldGFpbHM6W3tuYW1lOiJSZXNwb25zZSBUaW1lIix2YWx1ZToiNDVtcyAoYXZnKSIsc3RhdHVzOiJvayIsc3RhdHVzVGV4dDoiV2l0aGluIG5vcm1hbCByYW5nZSJ9LHtuYW1lOiJVcHRpbWUiLHZhbHVlOiI5OS45OSUgKDMwIGRheXMpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJFeGNlbGxlbnQgdXB0aW1lIn0se25hbWU6IkFjdGl2ZSBDb25uZWN0aW9ucyIsdmFsdWU6IjEsMjM0IC8gMTAsMDAwIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJOb3JtYWwgbG9hZCJ9LHtuYW1lOiJTU0wgQ2VydGlmaWNhdGUiLHZhbHVlOiJWYWxpZCB1bnRpbCAyMDI0LTEyLTMxIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJDZXJ0aWZpY2F0ZSB2YWxpZCJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXRpdGxlIj5EYXRhYmFzZSBDbHVzdGVyIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMiIsbmFtZToiUG9zdGdyZVNRTCBDbHVzdGVyIixjb21iaW5lZFN0YXR1czoicGFydGx5X29rIixjb21iaW5lZFN0YXR1c1RleHQ6Ik1pbm9yIGlzc3VlcyBkZXRlY3RlZCIsZGV0YWlsczpbe25hbWU6IlByaW1hcnkgTm9kZSIsdmFsdWU6ImRiLXByaW1hcnktMDEgKGhlYWx0aHkpIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJPcGVyYXRpbmcgbm9ybWFsbHkifSx7bmFtZToiUmVwbGljYSBMYWciLHZhbHVlOiIyLjUgc2Vjb25kcyIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IlNsaWdodGx5IGVsZXZhdGVkIn0se25hbWU6IkRpc2sgVXNhZ2UiLHZhbHVlOiI3OCUgKDMxMkdCIC8gNDAwR0IpIixzdGF0dXM6InBhcnRseV9vayIsc3RhdHVzVGV4dDoiQXBwcm9hY2hpbmcgdGhyZXNob2xkIn0se25hbWU6IkNvbm5lY3Rpb24gUG9vbCIsdmFsdWU6Ijg5IC8gMTAwIGNvbm5lY3Rpb25zIixzdGF0dXM6Im9rIixzdGF0dXNUZXh0OiJXaXRoaW4gbGltaXRzIn1dfX0KICAgICAgICA+CiAgICAgICAgPC9kZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tdGl0bGUiPkJ1aWxkIFBpcGVsaW5lIFN0YXR1czwvZGl2PgogICAgICAgIDxkZWVzLWRhdGF2aWV3LXN0YXR1c29iamVjdAogICAgICAgICAgLnN0YXR1c09iamVjdD0ke3tpZDoiMyIsbmFtZToiQ0kvQ0QgUGlwZWxpbmUiLGNvbWJpbmVkU3RhdHVzOiJub3Rfb2siLGNvbWJpbmVkU3RhdHVzVGV4dDoiQnVpbGQgZmFpbHVyZSIsZGV0YWlsczpbe25hbWU6Ikxhc3QgQnVpbGQiLHZhbHVlOiJCdWlsZCAjMTIzNCAtIEZhaWxlZCIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlRlc3QgZmFpbHVyZXMifSx7bmFtZToiRmFpbGVkIFRlc3RzIix2YWx1ZToiMyB0ZXN0cyBmYWlsZWQ6IGF1dGguc3BlYy50cywgdXNlci5zcGVjLnRzLCBhcGkuc3BlYy50cyIsc3RhdHVzOiJub3Rfb2siLHN0YXR1c1RleHQ6IlVuaXQgdGVzdCBmYWlsdXJlcyJ9LHtuYW1lOiJDb2RlIENvdmVyYWdlIix2YWx1ZToiODIuNSUgKHRhcmdldDogODUlKSIsc3RhdHVzOiJwYXJ0bHlfb2siLHN0YXR1c1RleHQ6IkJlbG93IHRhcmdldCJ9LHtuYW1lOiJCdWlsZCBEdXJhdGlvbiIsdmFsdWU6IjEybSAzNHMiLHN0YXR1czoib2siLHN0YXR1c1RleHQ6Ik5vcm1hbCBkdXJhdGlvbiJ9XX19CiAgICAgICAgPgogICAgICAgIDwvZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3Q+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+YH0pO3ZhciBFY3IsVTZlLCRjcixJY3I9cCgoKT0+e1BvKCk7d2koKTtEY3IoKTt4ZSgpO3cyKCk7TWkoKTtKZSgpO0Vjcj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFU2ZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sJGNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1kYXRhdmlldy1zdGF0dXNvYmplY3QiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpPYmplY3R9KV0sRWNyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3RhdHVzT2JqZWN0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4ic3RhdHVzT2JqZWN0ImluIHUsZ2V0OnU9PnUuc3RhdHVzT2JqZWN0LHNldDoodSxkKT0+e3Uuc3RhdHVzT2JqZWN0PWR9fSxtZXRhZGF0YTpjfSxvLHMpLEVjcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPUFjcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkRhdGEgVmlldyJdOyNlPVU2ZSh0aGlzLG8sdm9pZCAwKTtnZXQgc3RhdHVzT2JqZWN0KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHN0YXR1c09iamVjdChjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsIHNhbnMtc2VyaWY7CiAgICAgIH0KCiAgICAgIC5tYWluYm94IHsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggMCBoc2woMCAwJSAwJSAvIDAuMSksIDAgMXB4IDJweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKTsKICAgICAgICBtaW4taGVpZ2h0OiA0OHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmhlYWRpbmcgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ4cHggYXV0byAxMDBweDsKICAgICAgICBoZWlnaHQ6IDU2cHg7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgbWFyZ2luOiAwcHg7CiAgICAgICAgcGFkZGluZzogMHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuc3RhdHVzZG90IHsKICAgICAgICBoZWlnaHQ6IDEwcHg7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUgLyAwLjIpIiwiaHNsKDAgMCUgNDUuMSUgLyAwLjIpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbiB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDZweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jb3B5TWFpbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuY29weU1haW46YWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CgogICAgICAuc3RhdHVzZG90Lm9rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjIpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4yKSIpfTsKICAgICAgfQoKICAgICAgLnN0YXR1c2RvdC5ub3Rfb2sgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSkiLCJoc2woMCA3Mi4yJSA1MC42JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMCA4NC4yJSA2MC4yJSAvIDAuMikiLCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5zdGF0dXNkb3QucGFydGx5X29rIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUpIiwiaHNsKDI1IDk1JSA2MyUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDI1IDk1JSA1MyUgLyAwLjIpIiwiaHNsKDI1IDk1JSA2MyUgLyAwLjIpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsIHsKICAgICAgICBtaW4taGVpZ2h0OiA2MHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ4cHggYXV0bzsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDk0JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlOwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7CiAgICAgICAgY3Vyc29yOiBjb250ZXh0LW1lbnU7CiAgICAgIH0KCiAgICAgIC5kZXRhaWw6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDAgMCUgNyUpIil9OwogICAgICB9CgogICAgICAuZGV0YWlsOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC5kZXRhaWwgLmRldGFpbHNUZXh0IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLmxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfQogICAgICAgIG1hcmdpbi1ib3R0b206IDJweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmRldGFpbCAuZGV0YWlsc1RleHQgLnZhbHVlIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlbCBPbmUgTW9ubycsICdHZWlzdCBNb25vJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmciPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdHVzZG90ICR7dGhpcy5zdGF0dXNPYmplY3Q/LmNvbWJpbmVkU3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICA8aDE+JHt0aGlzLnN0YXR1c09iamVjdD8ubmFtZXx8Ik5vIHN0YXR1cyBvYmplY3QgYXNzaWduZWQifTwvaDE+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb3B5TWFpbiIgQGNsaWNrPSR7dGhpcy5oYW5kbGVDb3B5QXNKc29ufT5Db3B5IEpTT048L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAke3RoaXMuc3RhdHVzT2JqZWN0Py5kZXRhaWxzPy5tYXAoYz0+Q2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0iZGV0YWlsIgogICAgICAgICAgICAgIEBjb250ZXh0bWVudT0ke3U9Pnt1LnByZXZlbnREZWZhdWx0KCksU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnModSxbe25hbWU6IkNvcHkgVmFsdWUiLGljb25OYW1lOiJsdWNpZGU6Y29weSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChjLnZhbHVlLCJWYWx1ZSIpfX0se25hbWU6IkNvcHkgS2V5IixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChjLm5hbWUsIktleSIpfX0se25hbWU6IkNvcHkgS2V5OlZhbHVlIixpY29uTmFtZToibHVjaWRlOmNvcHktcGx1cyIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChgJHtjLm5hbWV9OiAke2MudmFsdWV9YCwiS2V5OlZhbHVlIil9fV0pfX0KICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1c2RvdCAke2Muc3RhdHVzfSI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsc1RleHQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPiR7Yy5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmFsdWUiPiR7Yy52YWx1ZX08L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe31hc3luYyBjb3B5VG9DbGlwYm9hcmQoYyx1PSJUZXh0Iil7dHJ5e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGMpLGNvbnNvbGUubG9nKGAke3V9IGNvcGllZCB0byBjbGlwYm9hcmRgKX1jYXRjaChkKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gY29weSAke3V9OmAsZCl9fWFzeW5jIGhhbmRsZUNvcHlBc0pzb24oKXtpZih0aGlzLnN0YXR1c09iamVjdCl0cnl7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0dXNPYmplY3QsbnVsbCwyKSk7bGV0IGM9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb3B5TWFpbiIpLHU9Yy50ZXh0Q29udGVudDtjLnRleHRDb250ZW50PSJDb3BpZWQhIjtsZXQgZD0hdGhpcy5nb0JyaWdodDtjLnN0eWxlLmJhY2tncm91bmQ9ZD8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSAvIDAuMSkiLGMuc3R5bGUuYm9yZGVyQ29sb3I9ZD8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLGMuc3R5bGUuY29sb3I9ZD8iaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlKSI6ImhzbCgxNDIuMSA3Ni4yJSAzNi4zJSkiLHNldFRpbWVvdXQoKCk9PntjLnRleHRDb250ZW50PXUsYy5zdHlsZS5iYWNrZ3JvdW5kPSIiLGMuc3R5bGUuYm9yZGVyQ29sb3I9IiIsYy5zdHlsZS5jb2xvcj0iIn0sMTUwMCl9Y2F0Y2goYyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHk6IixjKX19Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLFU2ZSh0aGlzLHMpfXN0YXRpY3tVNmUoaSxyKX19O3JldHVybiBsPWl9KSgpfSk7dmFyIFBjcj1wKCgpPT57SWNyKCl9KTt2YXIgTmNyPXAoKCk9PntaTigpfSk7dmFyIEZjcj1wKCgpPT57TGNyKCk7UGNyKCk7RTZlKCk7TmNyKCl9KTt2YXIgYmIsd2MsT2NyLFFOPXAoKCk9Pnt4ZSgpO0plKCk7b3IoKTtiYj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LHdjPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxPY3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLWFjdGlvbmJhciIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtmZSgpXSxsPVtmZSgpXSxkPVtmZSgpXSx4PVtmZSgpXSxiYih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRCYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJjdXJyZW50QmFyImluIGssZ2V0Oms9PmsuY3VycmVudEJhcixzZXQ6KGssTyk9PntrLmN1cnJlbnRCYXI9T319LG1ldGFkYXRhOnd9LG8scyksYmIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aW1lUmVtYWluaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idGltZVJlbWFpbmluZyJpbiBrLGdldDprPT5rLnRpbWVSZW1haW5pbmcsc2V0OihrLE8pPT57ay50aW1lUmVtYWluaW5nPU99fSxtZXRhZGF0YTp3fSxjLHUpLGJiKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicHJvZ3Jlc3NQZXJjZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4icHJvZ3Jlc3NQZXJjZW50ImluIGssZ2V0Oms9PmsucHJvZ3Jlc3NQZXJjZW50LHNldDooayxPKT0+e2sucHJvZ3Jlc3NQZXJjZW50PU99fSxtZXRhZGF0YTp3fSxoLGYpLGJiKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaXNWaXNpYmxlImluIGssZ2V0Oms9PmsuaXNWaXNpYmxlLHNldDooayxPKT0+e2suaXNWaXNpYmxlPU99fSxtZXRhZGF0YTp3fSx2LGIpLGJiKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnd9LG51bGwscikseT1pPXQudmFsdWUsdyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp3fSl9c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayIsIk92ZXJsYXkiXTtzdGF0aWMgZGVtbz0oKT0+e2xldCB3PU09Pk0uY3VycmVudFRhcmdldC5jbG9zZXN0KCIuZGVtby1jb250YWluZXIiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKTtyZXR1cm4gQ2AKICAgICAgPHN0eWxlPgogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMzAwcHg7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICAgICAgLmRlbW8tY29udGVudCB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGVudCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7YXN5bmMgTT0+e2xldCBGPXcoTSk7aWYoIUYpcmV0dXJuO2xldCBEPWF3YWl0IEYuc2hvdyh7bWVzc2FnZToiRmlsZSBjaGFuZ2VkIGV4dGVybmFsbHkuIFJlbG9hZD8iLHR5cGU6Indhcm5pbmciLGljb246Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6InJlbG9hZCIsbGFiZWw6IlJlbG9hZCIscHJpbWFyeTohMH0se2lkOiJpZ25vcmUiLGxhYmVsOiJJZ25vcmUifV0sdGltZW91dDp7ZHVyYXRpb246NWUzLGRlZmF1bHRBY3Rpb25JZDoicmVsb2FkIn0sZGlzbWlzc2libGU6ITB9KTtjb25zb2xlLmxvZygiQWN0aW9uIGJhciByZXN1bHQ6IixEKX19Pldhcm5pbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0ke2FzeW5jIE09PntsZXQgRj13KE0pO2lmKCFGKXJldHVybjtsZXQgRD1hd2FpdCBGLnNob3coe21lc3NhZ2U6IlByb2Nlc3MgZmFpbGVkIHdpdGggZXhpdCBjb2RlIDEiLHR5cGU6ImVycm9yIixpY29uOiJsdWNpZGU6eENpcmNsZSIsYWN0aW9uczpbe2lkOiJyZXRyeSIsbGFiZWw6IlJldHJ5IixwcmltYXJ5OiEwfSx7aWQ6ImRpc21pc3MiLGxhYmVsOiJEaXNtaXNzIn1dLHRpbWVvdXQ6e2R1cmF0aW9uOjFlNCxkZWZhdWx0QWN0aW9uSWQ6ImRpc21pc3MifX0pO2NvbnNvbGUubG9nKCJFcnJvciBiYXIgcmVzdWx0OiIsRCl9fT5FcnJvcjwvZGVlcy1idXR0b24+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7YXN5bmMgTT0+e2xldCBGPXcoTSk7aWYoIUYpcmV0dXJuO2xldCBEPWF3YWl0IEYuc2hvdyh7bWVzc2FnZToiU2F2ZSBjaGFuZ2VzIGJlZm9yZSBjbG9zaW5nPyIsdHlwZToicXVlc3Rpb24iLGljb246Imx1Y2lkZTpoZWxwQ2lyY2xlIixhY3Rpb25zOlt7aWQ6InNhdmUiLGxhYmVsOiJTYXZlIixwcmltYXJ5OiEwfSx7aWQ6ImRpc2NhcmQiLGxhYmVsOiJEaXNjYXJkIn0se2lkOiJjYW5jZWwiLGxhYmVsOiJDYW5jZWwifV19KTtjb25zb2xlLmxvZygiUXVlc3Rpb24gYmFyIHJlc3VsdDoiLEQpfX0+UXVlc3Rpb248L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICA8L2Rpdj4KICAgIGB9O3F1ZXVlPVtdOyNlPXdjKHRoaXMsbyxudWxsKTtnZXQgY3VycmVudEJhcigpe3JldHVybiB0aGlzLiNlfXNldCBjdXJyZW50QmFyKHcpe3RoaXMuI2U9d30jdD0od2ModGhpcyxzKSx3Yyh0aGlzLGMsMCkpO2dldCB0aW1lUmVtYWluaW5nKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHRpbWVSZW1haW5pbmcodyl7dGhpcy4jdD13fSNyPSh3Yyh0aGlzLHUpLHdjKHRoaXMsaCwxMDApKTtnZXQgcHJvZ3Jlc3NQZXJjZW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHByb2dyZXNzUGVyY2VudCh3KXt0aGlzLiNyPXd9I2k9KHdjKHRoaXMsZiksd2ModGhpcyx2LCExKSk7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNpfXNldCBpc1Zpc2libGUodyl7dGhpcy4jaT13fXRpbWVvdXRJbnRlcnZhbD0od2ModGhpcyxiKSxudWxsKTtjdXJyZW50UmVzb2x2ZT1udWxsO3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuYWN0aW9uYmFyLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7CiAgICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuMnMgZWFzZS1vdXQ7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDIwJSkiKX07CiAgICAgIH0KCiAgICAgIDpob3N0KC52aXNpYmxlKSAuYWN0aW9uYmFyLWl0ZW0gewogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyOwogICAgICB9CgogICAgICAuYWN0aW9uYmFyLWNvbnRlbnQgewogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgOmhvc3QoLnZpc2libGUpIC5hY3Rpb25iYXItY29udGVudCB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhciB7CiAgICAgICAgaGVpZ2h0OiAzcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXItZmlsbCB7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNTAlKSIsImhzbCgyMTAgMTAwJSA2MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMXMgbGluZWFyOwogICAgICB9CgogICAgICAucHJvZ3Jlc3MtYmFyLWZpbGwud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgzOCA5MiUgNTAlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2dyZXNzLWJhci1maWxsLnF1ZXN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLXNlY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5pbmZvIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0NSUpIiwiaHNsKDIxMCAxMDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlLWljb24uZXJyb3IgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtaWNvbi5xdWVzdGlvbiB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjcwIDcwJSA1MCUpIiwiaHNsKDI3MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLm1lc3NhZ2UtdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDg1JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAuYWN0aW9ucy1zZWN0aW9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5zZWNvbmRhcnkgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDcwJSkiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDMwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNlY29uZGFyeTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkyJSkiLCJoc2woMCAwJSAxOCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNTUlKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnk6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjEwIDEwMCUgNDUlKSIsImhzbCgyMTAgMTAwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5Lndhcm5pbmcgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMzggOTIlIDQ1JSkiLCJoc2woMzggOTIlIDUwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkud2FybmluZzpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgzOCA5MiUgNDAlKSIsImhzbCgzOCA5MiUgNDUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24ucHJpbWFyeS5lcnJvciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkuZXJyb3I6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3MCUgNDUlKSIsImhzbCgwIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5wcmltYXJ5LnF1ZXN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDI3MCA3MCUgNTAlKSIsImhzbCgyNzAgNzAlIDU1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnByaW1hcnkucXVlc3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjcwIDcwJSA0NSUpIiwiaHNsKDI3MCA3MCUgNTAlKSIpfTsKICAgICAgfQoKICAgICAgLmNvdW50ZG93biB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgICBtYXJnaW4tbGVmdDogMnB4OwogICAgICB9CgogICAgICAuZGlzbWlzcy1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuZGlzbWlzcy1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMjIlKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgdz10aGlzLmN1cnJlbnRCYXIsaz13Py50eXBlfHwiaW5mbyIsTz13Py50aW1lb3V0JiZ0aGlzLnRpbWVSZW1haW5pbmc+MDtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uYmFyLWl0ZW0iPgogICAgICAgIDxkaXYgY2xhc3M9ImFjdGlvbmJhci1jb250ZW50Ij4KICAgICAgICAgICR7dz9DYAogICAgICAgICAgICAke08/Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIiPgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icHJvZ3Jlc3MtYmFyLWZpbGwgJHtrfSIKICAgICAgICAgICAgICAgICAgc3R5bGU9IndpZHRoOiAke3RoaXMucHJvZ3Jlc3NQZXJjZW50fSUiCiAgICAgICAgICAgICAgICA+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2Utc2VjdGlvbiI+CiAgICAgICAgICAgICAgICAke3cuaWNvbj9DYAogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2UtaWNvbiAke2t9IgogICAgICAgICAgICAgICAgICAgIC5pY29uPSR7dy5pY29ufQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNiIKICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZXNzYWdlLXRleHQiPiR7dy5tZXNzYWdlfTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb25zLXNlY3Rpb24iPgogICAgICAgICAgICAgICAgJHt3LmFjdGlvbnMubWFwKHo9PnRoaXMucmVuZGVyQWN0aW9uQnV0dG9uKHosdyxPKSl9CiAgICAgICAgICAgICAgICAke3cuZGlzbWlzc2libGU/Q2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJkaXNtaXNzLWJ1dHRvbiIKICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5oYW5kbGVEaXNtaXNzKCl9CiAgICAgICAgICAgICAgICAgICAgdGl0bGU9IkRpc21pc3MiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0gaWNvblNpemU9IjE0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJBY3Rpb25CdXR0b24odyxrLE8pe2xldCB6PXcucHJpbWFyeSxNPWsudHlwZXx8ImluZm8iLEY9ay50aW1lb3V0Py5kZWZhdWx0QWN0aW9uSWQ9PT13LmlkLEQ9TyYmRixOPU1hdGguY2VpbCh0aGlzLnRpbWVSZW1haW5pbmcvMWUzKTtyZXR1cm4gQ2AKICAgICAgPGJ1dHRvbgogICAgICAgIGNsYXNzPSJhY3Rpb24tYnV0dG9uICR7ej9gcHJpbWFyeSAke019YDoic2Vjb25kYXJ5In0iCiAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuaGFuZGxlQWN0aW9uKHcuaWQsITEpfQogICAgICA+CiAgICAgICAgJHt3Lmljb24/Q2AKICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt3Lmljb259IGljb25TaXplPSIxMiI+PC9kZWVzLWljb24+CiAgICAgICAgYDoiIn0KICAgICAgICA8c3Bhbj4ke3cubGFiZWx9PC9zcGFuPgogICAgICAgICR7RD9DYAogICAgICAgICAgPHNwYW4gY2xhc3M9ImNvdW50ZG93biI+KCR7Tn1zKTwvc3Bhbj4KICAgICAgICBgOiIifQogICAgICA8L2J1dHRvbj4KICAgIGB9YXN5bmMgc2hvdyh3KXtyZXR1cm4gbmV3IFByb21pc2Uoaz0+e3RoaXMucXVldWUucHVzaCh7b3B0aW9uczp3LHJlc29sdmU6a30pLHRoaXMuY3VycmVudEJhcnx8dGhpcy5wcm9jZXNzUXVldWUoKX0pfWRpc21pc3MoKXt0aGlzLmhhbmRsZURpc21pc3MoKX1jbGVhclF1ZXVlKCl7Zm9yKGxldCB3IG9mIHRoaXMucXVldWUpdy5yZXNvbHZlKHthY3Rpb25JZDoiZGlzbWlzc2VkIix0aW1lZE91dDohMX0pO3RoaXMucXVldWU9W119YXN5bmMgaGlkZUN1cnJlbnRCYXIoKXt0aGlzLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKSx0aGlzLmlzVmlzaWJsZT0hMSxhd2FpdCBuZXcgUHJvbWlzZSh3PT5zZXRUaW1lb3V0KHcsMjIwKSksdGhpcy5jdXJyZW50QmFyPW51bGwsdGhpcy5jdXJyZW50UmVzb2x2ZT1udWxsfWFzeW5jIHByb2Nlc3NRdWV1ZSgpe2lmKHRoaXMucXVldWUubGVuZ3RoPT09MCl7dGhpcy5oaWRlQ3VycmVudEJhcigpO3JldHVybn1sZXQgdz10aGlzLnF1ZXVlLnNoaWZ0KCk7dGhpcy5jdXJyZW50QmFyPXcub3B0aW9ucyx0aGlzLmN1cnJlbnRSZXNvbHZlPXcucmVzb2x2ZSx0aGlzLmlzVmlzaWJsZT0hMCxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfSksdy5vcHRpb25zLnRpbWVvdXQmJnRoaXMuc3RhcnRUaW1lb3V0KHcub3B0aW9ucy50aW1lb3V0LmR1cmF0aW9uLHcub3B0aW9ucy50aW1lb3V0LmRlZmF1bHRBY3Rpb25JZCl9c3RhcnRUaW1lb3V0KHcsayl7dGhpcy50aW1lUmVtYWluaW5nPXcsdGhpcy5wcm9ncmVzc1BlcmNlbnQ9MTAwO2xldCBPPURhdGUubm93KCksej01MDt0aGlzLnRpbWVvdXRJbnRlcnZhbD1zZXRJbnRlcnZhbCgoKT0+e2xldCBNPURhdGUubm93KCktTzt0aGlzLnRpbWVSZW1haW5pbmc9TWF0aC5tYXgoMCx3LU0pLHRoaXMucHJvZ3Jlc3NQZXJjZW50PXRoaXMudGltZVJlbWFpbmluZy93KjEwMCx0aGlzLnRpbWVSZW1haW5pbmc8PTAmJih0aGlzLmNsZWFyVGltZW91dEludGVydmFsKCksdGhpcy5oYW5kbGVBY3Rpb24oaywhMCkpfSx6KX1jbGVhclRpbWVvdXRJbnRlcnZhbCgpe3RoaXMudGltZW91dEludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVvdXRJbnRlcnZhbCksdGhpcy50aW1lb3V0SW50ZXJ2YWw9bnVsbCl9aGFuZGxlQWN0aW9uKHcsayl7dGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpLHRoaXMuY3VycmVudFJlc29sdmUmJnRoaXMuY3VycmVudFJlc29sdmUoe2FjdGlvbklkOncsdGltZWRPdXQ6a30pLHRoaXMucHJvY2Vzc1F1ZXVlKCl9aGFuZGxlRGlzbWlzcygpe3RoaXMuaGFuZGxlQWN0aW9uKCJkaXNtaXNzZWQiLCExKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jbGVhclRpbWVvdXRJbnRlcnZhbCgpfXN0YXRpY3t3YyhpLHIpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgUmNyPXAoKCk9Pnt9KTt2YXIgQmNyPXAoKCk9PntRTigpO1JjcigpfSk7dmFyIEhjcixxY3I9cCgoKT0+e3hlKCk7SGNyPSgpPT5DYAogIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBhbGlnbi1pdGVtczogY2VudGVyOyI+CiAgICA8ZGVlcy1iYWRnZSAudGV4dD0keyJEZWZhdWx0In0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsicHJpbWFyeSJ9IC50ZXh0PSR7IlByaW1hcnkifT48L2RlZXMtYmFkZ2U+CiAgICA8ZGVlcy1iYWRnZSAudHlwZT0keyJzdWNjZXNzIn0gLnRleHQ9JHsiU3VjY2VzcyJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7Indhcm5pbmcifSAudGV4dD0keyJXYXJuaW5nIn0+PC9kZWVzLWJhZGdlPgogICAgPGRlZXMtYmFkZ2UgLnR5cGU9JHsiZXJyb3IifSAudGV4dD0keyJFcnJvciJ9PjwvZGVlcy1iYWRnZT4KICAgIDxkZWVzLWJhZGdlIC50eXBlPSR7InByaW1hcnkifSAucm91bmRlZD0keyEwfSAudGV4dD0keyJSb3VuZGVkIn0+PC9kZWVzLWJhZGdlPgogIDwvZGl2PgpgfSk7dmFyIEpOLFVkLGpjcixWY3I9cCgoKT0+e3hlKCk7S3QoKTtxY3IoKTtKZSgpO0pOPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sVWQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGpjcj0oKCk9PntsZXQgZT1beWUoImRlZXMtYmFkZ2UiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpCb29sZWFufSldLEpOKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InR5cGUiaW4gYixnZXQ6Yj0+Yi50eXBlLHNldDooYix5KT0+e2IudHlwZT15fX0sbWV0YWRhdGE6dn0sbyxzKSxKTih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJ0ZXh0ImluIGIsZ2V0OmI9PmIudGV4dCxzZXQ6KGIseSk9PntiLnRleHQ9eX19LG1ldGFkYXRhOnZ9LGMsdSksSk4odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyb3VuZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4icm91bmRlZCJpbiBiLGdldDpiPT5iLnJvdW5kZWQsc2V0OihiLHkpPT57Yi5yb3VuZGVkPXl9fSxtZXRhZGF0YTp2fSxoLGYpLEpOKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwscikseD1pPXQudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGRlbW89SGNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTsjZT1VZCh0aGlzLG8sImRlZmF1bHQiKTtnZXQgdHlwZSgpe3JldHVybiB0aGlzLiNlfXNldCB0eXBlKHYpe3RoaXMuI2U9dn0jdD0oVWQodGhpcyxzKSxVZCh0aGlzLGMsIiIpKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KHYpe3RoaXMuI3Q9dn0jcj0oVWQodGhpcyx1KSxVZCh0aGlzLGgsITEpKTtnZXQgcm91bmRlZCgpe3JldHVybiB0aGlzLiNyfXNldCByb3VuZGVkKHYpe3RoaXMuI3I9dn1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksVWQodGhpcyxmKSxkMS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLmJhZGdlIHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmJhZGdlLnJvdW5kZWQgewogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5kZWZhdWx0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y1ZjVmNSIsIiMzMzMiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNjY2IiwiI2NjYyIpfTsKICAgICAgfQoKICAgICAgLmJhZGdlLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICMwMDUwYjk7CiAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgIH0KCiAgICAgIC5iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjMmU3ZDMyOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CgogICAgICAuYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogI2VkNmMwMjsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmJhZGdlLmVycm9yIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZTQwMDJiOwogICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iYmFkZ2UgJHt0aGlzLnR5cGV9ICR7dGhpcy5yb3VuZGVkPyJyb3VuZGVkIjoiIn0iPgogICAgICAgICR7dGhpcy50ZXh0fQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGlje1VkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBVY3I9cCgoKT0+e1ZjcigpfSk7dmFyIFdjcixHY3I9cCgoKT0+e3hlKCk7V2NyPSgpPT5DYAogIDxkZWVzLWhpbnQ+PC9kZWVzLWhpbnQ+CmB9KTt2YXIgWWNyLFc2ZSxaY3IsWGNyPXAoKCk9Pnt4ZSgpO0t0KCk7R2NyKCk7SmUoKTtZY3I9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxXNmU9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFpjcj0oKCk9PntsZXQgZT1beWUoImRlZXMtaGludCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxZY3IodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4idHlwZSJpbiB1LGdldDp1PT51LnR5cGUsc2V0Oih1LGQpPT57dS50eXBlPWR9fSxtZXRhZGF0YTpjfSxvLHMpLFljcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPVdjcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkZlZWRiYWNrIl07I2U9VzZlKHRoaXMsbywiaW5mbyIpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHR5cGUoYyl7dGhpcy4jZT1jfWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxXNmUodGhpcyxzKSxkMS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYCA8ZGl2IGNsYXNzPSJtYWluYm94Ij48L2Rpdj4gYH1zdGF0aWN7VzZlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBRY3I9cCgoKT0+e1hjcigpfSk7dmFyIEpjcixLY3I9cCgoKT0+e3hlKCk7RzZlKCk7SmNyPSgpPT5DYAogICAgPGRlZXMtcHJvZ3Jlc3NiYXIKICAgICAgLnBlcmNlbnRhZ2U9JHs1MH0KICAgID48L2RlZXMtcHJvZ3Jlc3NiYXI+CiAgYH0pO3ZhciBlMHIsWTZlLHQwcixHNmU9cCgoKT0+e3dpKCk7UG8oKTtLY3IoKTt4ZSgpO0t0KCk7SmUoKTtlMHI9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxZNmU9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHQwcj0oKCk9PntsZXQgZT1beWUoImRlZXMtcHJvZ3Jlc3NiYXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpOdW1iZXJ9KV0sZTByKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGVyY2VudGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+InBlcmNlbnRhZ2UiaW4gdSxnZXQ6dT0+dS5wZXJjZW50YWdlLHNldDoodSxkKT0+e3UucGVyY2VudGFnZT1kfX0sbWV0YWRhdGE6Y30sbyxzKSxlMHIobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1KY3I7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayJdOyNlPVk2ZSh0aGlzLG8sMCk7Z2V0IHBlcmNlbnRhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGVyY2VudGFnZShjKXt0aGlzLiNlPWN9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKEVkLnRleHQsSW8udGV4dCl9OwogICAgICB9CiAgICAgIC5wcm9ncmVzc0JhckNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlZWVlZWIiLCIjNDQ0Iil9OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3JkZXItdG9wOiAwLjVweCBzb2xpZCAke20uYmRUaGVtZSgibm9uZSIsIiM1NTUiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc0JhckZpbGwgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKElvLmJsdWVBY3RpdmUsRWQuYmx1ZUFjdGl2ZSl9OwogICAgICAgIGhlaWdodDogOHB4OwogICAgICAgIG1hcmdpbi10b3A6IC0wLjVweDsKICAgICAgICB0cmFuc2l0aW9uOiAwLjJzIHdpZHRoOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB3aWR0aDogMHB4OwogICAgICAgIGJvcmRlci10b3A6IDAuNSBzb2xpZCAke20uYmRUaGVtZSgibm9uZSIsIiMzOThmZmYiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzc1RleHQgewogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc0JhckNvbnRhaW5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NCYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3NCYXJGaWxsIj48L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzVGV4dCI+CiAgICAgICAgICAgICR7dGhpcy5wZXJjZW50YWdlfSUKICAgICAgICAgIDxkaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1maXJzdFVwZGF0ZWQoYyl7c3VwZXIuZmlyc3RVcGRhdGVkKGMpLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e3RoaXMudXBkYXRlUGVyY2VudGFnZSgpfSl9YXN5bmMgdXBkYXRlUGVyY2VudGFnZSgpe2xldCBjPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIucHJvZ3Jlc3NCYXJGaWxsIik7Yy5zdHlsZS53aWR0aD1gJHt0aGlzLnBlcmNlbnRhZ2V9JWB9dXBkYXRlZCgpe3RoaXMudXBkYXRlUGVyY2VudGFnZSgpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxZNmUodGhpcyxzKX1zdGF0aWN7WTZlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciByMHI9cCgoKT0+e0c2ZSgpfSk7dmFyIEtOLFdkLGkwcixhMHI9cCgoKT0+e3hlKCk7S3QoKTtKZSgpO0tOPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sV2Q9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGkwcj0oKCk9PntsZXQgZT1beWUoImRlZXMtc3Bpbm5lciIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdO3ZhciB4PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdj10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOk51bWJlcn0pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKCldLEtOKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InNpemUiaW4gYixnZXQ6Yj0+Yi5zaXplLHNldDooYix5KT0+e2Iuc2l6ZT15fX0sbWV0YWRhdGE6dn0sbyxzKSxLTih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImJudyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+ImJudyJpbiBiLGdldDpiPT5iLmJudyxzZXQ6KGIseSk9PntiLmJudz15fX0sbWV0YWRhdGE6dn0sYyx1KSxLTih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0YXR1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Yj0+InN0YXR1cyJpbiBiLGdldDpiPT5iLnN0YXR1cyxzZXQ6KGIseSk9PntiLnN0YXR1cz15fX0sbWV0YWRhdGE6dn0saCxmKSxLTihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp2fSxudWxsLHIpLHg9aT10LnZhbHVlLHYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfXN0YXRpYyBkZW1vR3JvdXBzPVsiRmVlZGJhY2siXTtzdGF0aWMgZGVtbz0oKT0+Q2AKICAgIDxkZWVzLXNwaW5uZXI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIHN0YXR1cz0ic3VjY2VzcyI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIHN0YXR1cz0iZXJyb3IiPjwvZGVlcy1zcGlubmVyPgogICAgPGRlZXMtc3Bpbm5lciBzaXplPSR7NjR9IHN0YXR1cz0ic3VjY2VzcyI+PC9kZWVzLXNwaW5uZXI+CiAgICA8ZGVlcy1zcGlubmVyIC5zaXplPSR7NjR9IHN0YXR1cz0iZXJyb3IiPjwvZGVlcy1zcGlubmVyPgogIGA7I2U9V2QodGhpcyxvLDIwKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNlfXNldCBzaXplKHYpe3RoaXMuI2U9dn0jdD0oV2QodGhpcyxzKSxXZCh0aGlzLGMsITEpKTtnZXQgYm53KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGJudyh2KXt0aGlzLiN0PXZ9I3I9KFdkKHRoaXMsdSksV2QodGhpcyxoLCJub3JtYWwiKSk7Z2V0IHN0YXR1cygpe3JldHVybiB0aGlzLiNyfXNldCBzdGF0dXModil7dGhpcy4jcj12fWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxXZCh0aGlzLGYpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAjbG9hZGluZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHRyYW5zaXRpb246IG5vbmU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogIzhiYzM0YTAwOwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMykiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBub25lOwogICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiBub25lOwogICAgICB9CgogICAgICAjbG9hZGluZy5lcnJvciB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IG5vbmU7CiAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQogICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPHN0eWxlPgogICAgICAgICNsb2FkaW5nIHsKICAgICAgICAgIHdpZHRoOiAke3RoaXMuc2l6ZX1weDsKICAgICAgICAgIGhlaWdodDogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLnN1Y2Nlc3MgewogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKHRoaXMuYm53PyIjMzMzIjoiIzhiYzM0YSIsdGhpcy5ibnc/IiNmZmYiOiIjOGJjMzRhIil9OwogICAgICAgICAgCiAgICAgICAgfQogICAgICAgICNsb2FkaW5nLmVycm9yIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSh0aGlzLmJudz8iIzMzMyI6IiNlNjRhMTkiLHRoaXMuYm53PyIjZmZmIjoiI2U2NGExOSIpfTsKICAgICAgICB9CiAgICAgICAgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGlzLnNpemV9cHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSIke3RoaXMuc3RhdHVzfSIgaWQ9ImxvYWRpbmciPgogICAgICAgICR7KCgpPT57aWYodGhpcy5zdGF0dXM9PT0ic3VjY2VzcyIpcmV0dXJuIENgPGRlZXMtaWNvbiBzdHlsZT0idHJhbnNmb3JtOiB0cmFuc2xhdGVYKDElKSB0cmFuc2xhdGVZKDMlKTsiIC5pY29uPSR7ImZhOmNpcmNsZS1jaGVjayJ9PjwvZGVlcy1pY29uPmA7aWYodGhpcy5zdGF0dXM9PT0iZXJyb3IiKXJldHVybiBDYDxkZWVzLWljb24gLmljb249JHsiZmE6Y2lyY2xlLXhtYXJrIn0+PC9kZWVzLWljb24+YH0pKCl9CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7V2QoaSxyKX19O3JldHVybiB4PWl9KSgpfSk7dmFyIG4wcj1wKCgpPT57YTByKCl9KTt2YXIgbzByLHMwcj1wKCgpPT57eGUoKTtaNmUoKTtJNCgpO28wcj0oKT0+Q2AKICAgIDxzdHlsZT4KICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDsKICAgICAgfQoKICAgICAgLmRlbW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgfQoKICAgICAgLmRlbW8tZGVzY3JpcHRpb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2NjYiLCIjYWFhIil9OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KCiAgICAgIC5idXR0b24tZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsKICAgICAgfQoKICAgICAgLnRoZW1lLXRvZ2dsZSB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHRvcDogMTZweDsKICAgICAgICByaWdodDogMTZweDsKICAgICAgICB6LWluZGV4OiAxMDA7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1idXR0b24gY2xhc3M9InRoZW1lLXRvZ2dsZSIgQGNsaWNrZWQ9JHsoKT0+e2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgiYnJpZ2h0Iil9fT5Ub2dnbGUgVGhlbWU8L2RlZXMtYnV0dG9uPgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRvYXN0IFR5cGVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBEaWZmZXJlbnQgdG9hc3QgdHlwZXMgZm9yIHZhcmlvdXMgbm90aWZpY2F0aW9uIHNjZW5hcmlvcy4gQ2xpY2sgYW55IGJ1dHRvbiB0byBzaG93IGEgdG9hc3QuCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncmlkIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57YnIuaW5mbygiVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2UiKX19PkluZm8gVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iaGlnaGxpZ2h0ZWQiIEBjbGlja2VkPSR7KCk9Pntici5zdWNjZXNzKCJPcGVyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEiKX19PlN1Y2Nlc3MgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLndhcm5pbmcoIlBsZWFzZSByZXZpZXcgYmVmb3JlIHByb2NlZWRpbmciKX19Pldhcm5pbmcgVG9hc3Q8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLmVycm9yKCJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIil9fT5FcnJvciBUb2FzdDwvZGVlcy1idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDIgY2xhc3M9ImRlbW8tdGl0bGUiPlRvYXN0IFBvc2l0aW9uczwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImRlbW8tZGVzY3JpcHRpb24iPgogICAgICAgICAgVG9hc3RzIGNhbiBhcHBlYXIgaW4gZGlmZmVyZW50IHBvc2l0aW9ucyBvbiB0aGUgc2NyZWVuLgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLnNob3coe21lc3NhZ2U6IlRvcCBSaWdodCBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1yaWdodCJ9KX19PlRvcCBSaWdodDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57YnIuc2hvdyh7bWVzc2FnZToiVG9wIExlZnQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJ0b3AtbGVmdCJ9KX19PlRvcCBMZWZ0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5zaG93KHttZXNzYWdlOiJCb3R0b20gUmlnaHQgUG9zaXRpb24iLHR5cGU6ImluZm8iLHBvc2l0aW9uOiJib3R0b20tcmlnaHQifSl9fT5Cb3R0b20gUmlnaHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLnNob3coe21lc3NhZ2U6IkJvdHRvbSBMZWZ0IFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLWxlZnQifSl9fT5Cb3R0b20gTGVmdDwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57YnIuc2hvdyh7bWVzc2FnZToiVG9wIENlbnRlciBQb3NpdGlvbiIsdHlwZToiaW5mbyIscG9zaXRpb246InRvcC1jZW50ZXIifSl9fT5Ub3AgQ2VudGVyPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5zaG93KHttZXNzYWdlOiJCb3R0b20gQ2VudGVyIFBvc2l0aW9uIix0eXBlOiJpbmZvIixwb3NpdGlvbjoiYm90dG9tLWNlbnRlciJ9KX19PkJvdHRvbSBDZW50ZXI8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5EdXJhdGlvbiBPcHRpb25zPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDb250cm9sIGhvdyBsb25nIHRvYXN0cyBzdGF5IHZpc2libGUuIER1cmF0aW9uIGluIG1pbGxpc2Vjb25kcy4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5zaG93KHttZXNzYWdlOiJRdWljayB0b2FzdCAoMSBzZWNvbmQpIix0eXBlOiJpbmZvIixkdXJhdGlvbjoxZTN9KX19PjEgU2Vjb25kPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5zaG93KHttZXNzYWdlOiJTdGFuZGFyZCB0b2FzdCAoMyBzZWNvbmRzKSIsdHlwZToiaW5mbyIsZHVyYXRpb246M2UzfSl9fT4zIFNlY29uZHMgKERlZmF1bHQpPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5zaG93KHttZXNzYWdlOiJMb25nIHRvYXN0ICg1IHNlY29uZHMpIix0eXBlOiJpbmZvIixkdXJhdGlvbjo1ZTN9KX19PjUgU2Vjb25kczwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57YnIuc2hvdyh7bWVzc2FnZToiTWFudWFsIGRpc21pc3Mgb25seSAoY2xpY2sgdG8gY2xvc2UpIix0eXBlOiJ3YXJuaW5nIixkdXJhdGlvbjowfSl9fT5ObyBBdXRvLURpc21pc3M8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5NdWx0aXBsZSBUb2FzdHM8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIE11bHRpcGxlIHRvYXN0cyBzdGFjayBhdXRvbWF0aWNhbGx5LiBUaGV5IG1haW50YWluIHRoZWlyIG9yZGVyIGFuZCBhbmltYXRlIHNtb290aGx5LgogICAgICAgIDwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b24tZ3JpZCI+CiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLmluZm8oIkZpcnN0IG5vdGlmaWNhdGlvbiIpLHNldFRpbWVvdXQoKCk9PmJyLnN1Y2Nlc3MoIlNlY29uZCBub3RpZmljYXRpb24iKSwyMDApLHNldFRpbWVvdXQoKCk9PmJyLndhcm5pbmcoIlRoaXJkIG5vdGlmaWNhdGlvbiIpLDQwMCksc2V0VGltZW91dCgoKT0+YnIuZXJyb3IoIkZvdXJ0aCBub3RpZmljYXRpb24iKSw2MDApfX0+U2hvdyBNdWx0aXBsZTwvZGVlcy1idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2tlZD0keygpPT57Zm9yKGxldCBlPTE7ZTw9NTtlKyspc2V0VGltZW91dCgoKT0+e2JyLnNob3coe21lc3NhZ2U6YE5vdGlmaWNhdGlvbiAjJHtlfWAsdHlwZTplJTI9PT0wPyJzdWNjZXNzIjoiaW5mbyIsZHVyYXRpb246MmUzK2UqNTAwfSl9LGUqMTAwKX19PlJhcGlkIEZpcmU8L2RlZXMtYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgyIGNsYXNzPSJkZW1vLXRpdGxlIj5SZWFsLVdvcmxkIEV4YW1wbGVzPC9oMj4KICAgICAgICA8cCBjbGFzcz0iZGVtby1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDb21tb24gdXNlIGNhc2VzIGZvciB0b2FzdCBub3RpZmljYXRpb25zIGluIGFwcGxpY2F0aW9ucy4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7YXN5bmMoKT0+e2xldCBlPWF3YWl0IGJyLnNob3coe21lc3NhZ2U6IlNhdmluZyBjaGFuZ2VzLi4uIix0eXBlOiJpbmZvIixkdXJhdGlvbjowfSk7c2V0VGltZW91dCgoKT0+e2UuZGlzbWlzcygpLGJyLnN1Y2Nlc3MoIkNoYW5nZXMgc2F2ZWQgc3VjY2Vzc2Z1bGx5ISIpfSwyZTMpfX0+U2F2ZSBPcGVyYXRpb248L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLmVycm9yKCJGYWlsZWQgdG8gY29ubmVjdCB0byBzZXJ2ZXIuIFBsZWFzZSBjaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24uIil9fT5OZXR3b3JrIEVycm9yPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici53YXJuaW5nKCJZb3VyIHNlc3Npb24gd2lsbCBleHBpcmUgaW4gNSBtaW51dGVzIil9fT5TZXNzaW9uIFdhcm5pbmc8L2RlZXMtYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrZWQ9JHsoKT0+e2JyLnN1Y2Nlc3MoIkZpbGUgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5ISIpfX0+VXBsb2FkIENvbXBsZXRlPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMiBjbGFzcz0iZGVtby10aXRsZSI+UHJvZ3JhbW1hdGljIENvbnRyb2w8L2gyPgogICAgICAgIDxwIGNsYXNzPSJkZW1vLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIEFkdmFuY2VkIGNvbnRyb2wgb3ZlciB0b2FzdCBiZWhhdmlvci4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uLWdyaWQiPgogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7YXN5bmMoKT0+e2xldCBlPWF3YWl0IGJyLnNob3coe21lc3NhZ2U6IlRoaXMgdG9hc3QgY2FuIGJlIGRpc21pc3NlZCBwcm9ncmFtbWF0aWNhbGx5Iix0eXBlOiJpbmZvIixkdXJhdGlvbjowfSk7c2V0VGltZW91dCgoKT0+e2UuZGlzbWlzcygpLGJyLnN1Y2Nlc3MoIlRvYXN0IGRpc21pc3NlZCBhZnRlciAyIHNlY29uZHMiKX0sMmUzKX19PlByb2dyYW1tYXRpYyBEaXNtaXNzPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGlja2VkPSR7KCk9Pntici5pbmZvKCJJbmZvIG1lc3NhZ2UiLDJlMyksc2V0VGltZW91dCgoKT0+YnIuc3VjY2VzcygiU3VjY2VzcyBtZXNzYWdlIiwyZTMpLDUwMCksc2V0VGltZW91dCgoKT0+YnIud2FybmluZygiV2FybmluZyBtZXNzYWdlIiwyZTMpLDFlMyksc2V0VGltZW91dCgoKT0+YnIuZXJyb3IoIkVycm9yIG1lc3NhZ2UiLDJlMyksMTUwMCl9fT5Db252ZW5pZW5jZSBNZXRob2RzPC9kZWVzLWJ1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfSk7dmFyIHZiLE1jLGJyLFo2ZT1wKCgpPT57eGUoKTtLdCgpO3hvKCk7czByKCk7UWEoKTtKZSgpO3ZiPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sTWM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGJyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy10b2FzdCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdO3ZhciB5PWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgdz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOk51bWJlcn0pXSx4PVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSx2Yih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lc3NhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJtZXNzYWdlImluIGssZ2V0Oms9PmsubWVzc2FnZSxzZXQ6KGssTyk9PntrLm1lc3NhZ2U9T319LG1ldGFkYXRhOnd9LG8scyksdmIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0eXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idHlwZSJpbiBrLGdldDprPT5rLnR5cGUsc2V0OihrLE8pPT57ay50eXBlPU99fSxtZXRhZGF0YTp3fSxjLHUpLHZiKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJkdXJhdGlvbiJpbiBrLGdldDprPT5rLmR1cmF0aW9uLHNldDooayxPKT0+e2suZHVyYXRpb249T319LG1ldGFkYXRhOnd9LGgsZiksdmIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Zpc2libGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJpc1Zpc2libGUiaW4gayxnZXQ6az0+ay5pc1Zpc2libGUsc2V0OihrLE8pPT57ay5pc1Zpc2libGU9T319LG1ldGFkYXRhOnd9LHYsYiksdmIobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6d30sbnVsbCxyKSx5PWk9dC52YWx1ZSx3JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnd9KX1zdGF0aWMgZGVtbz1vMHI7c3RhdGljIGRlbW9Hcm91cHM9WyJGZWVkYmFjayIsIk92ZXJsYXkiXTtzdGF0aWMgdG9hc3RDb250YWluZXJzPW5ldyBNYXA7c3RhdGljIGdldE9yQ3JlYXRlQ29udGFpbmVyKHcpe2lmKCF0aGlzLnRvYXN0Q29udGFpbmVycy5oYXModykpe2xldCBrPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3N3aXRjaChrLmNsYXNzTmFtZT1gdG9hc3QtY29udGFpbmVyIHRvYXN0LWNvbnRhaW5lci0ke3d9YCxrLnN0eWxlLmNzc1RleHQ9YAogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICB6LWluZGV4OiAke2ZpLm92ZXJsYXkudG9hc3R9OwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICBgLHcpe2Nhc2UidG9wLXJpZ2h0IjprLnN0eWxlLnRvcD0iMCIsay5zdHlsZS5yaWdodD0iMCI7YnJlYWs7Y2FzZSJ0b3AtbGVmdCI6ay5zdHlsZS50b3A9IjAiLGsuc3R5bGUubGVmdD0iMCI7YnJlYWs7Y2FzZSJib3R0b20tcmlnaHQiOmsuc3R5bGUuYm90dG9tPSIwIixrLnN0eWxlLnJpZ2h0PSIwIjticmVhaztjYXNlImJvdHRvbS1sZWZ0IjprLnN0eWxlLmJvdHRvbT0iMCIsay5zdHlsZS5sZWZ0PSIwIjticmVhaztjYXNlInRvcC1jZW50ZXIiOmsuc3R5bGUudG9wPSIwIixrLnN0eWxlLmxlZnQ9IjUwJSIsay5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVgoLTUwJSkiO2JyZWFrO2Nhc2UiYm90dG9tLWNlbnRlciI6ay5zdHlsZS5ib3R0b209IjAiLGsuc3R5bGUubGVmdD0iNTAlIixrLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgtNTAlKSI7YnJlYWt9ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChrKSx0aGlzLnRvYXN0Q29udGFpbmVycy5zZXQodyxrKX1yZXR1cm4gdGhpcy50b2FzdENvbnRhaW5lcnMuZ2V0KHcpfXN0YXRpYyBhc3luYyBzaG93KHcpe2xldCBrPXR5cGVvZiB3PT0ic3RyaW5nIj97bWVzc2FnZTp3fTp3LE89bmV3IHk7cmV0dXJuIE8ubWVzc2FnZT1rLm1lc3NhZ2UsTy50eXBlPWsudHlwZXx8ImluZm8iLE8uZHVyYXRpb249ay5kdXJhdGlvbnx8M2UzLHRoaXMuZ2V0T3JDcmVhdGVDb250YWluZXIoay5wb3NpdGlvbnx8InRvcC1yaWdodCIpLmFwcGVuZENoaWxkKE8pLGF3YWl0IE8udXBkYXRlQ29tcGxldGUscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57Ty5pc1Zpc2libGU9ITB9KSxPLmR1cmF0aW9uPjAmJnNldFRpbWVvdXQoKCk9PntPLmRpc21pc3MoKX0sTy5kdXJhdGlvbiksT31zdGF0aWMgYXN5bmMgY3JlYXRlQW5kU2hvdyh3KXtyZXR1cm4gdGhpcy5zaG93KHcpfXN0YXRpYyBpbmZvKHcsayl7cmV0dXJuIHRoaXMuc2hvdyh7bWVzc2FnZTp3LHR5cGU6ImluZm8iLGR1cmF0aW9uOmt9KX1zdGF0aWMgc3VjY2Vzcyh3LGspe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6dyx0eXBlOiJzdWNjZXNzIixkdXJhdGlvbjprfSl9c3RhdGljIHdhcm5pbmcodyxrKXtyZXR1cm4gdGhpcy5zaG93KHttZXNzYWdlOncsdHlwZToid2FybmluZyIsZHVyYXRpb246a30pfXN0YXRpYyBlcnJvcih3LGspe3JldHVybiB0aGlzLnNob3coe21lc3NhZ2U6dyx0eXBlOiJlcnJvciIsZHVyYXRpb246a30pfSNlPU1jKHRoaXMsbywiIik7Z2V0IG1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jZX1zZXQgbWVzc2FnZSh3KXt0aGlzLiNlPXd9I3Q9KE1jKHRoaXMscyksTWModGhpcyxjLCJpbmZvIikpO2dldCB0eXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHR5cGUodyl7dGhpcy4jdD13fSNyPShNYyh0aGlzLHUpLE1jKHRoaXMsaCwzZTMpKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jcn1zZXQgZHVyYXRpb24odyl7dGhpcy4jcj13fSNpPShNYyh0aGlzLGYpLE1jKHRoaXMsdiwhMSkpO2dldCBpc1Zpc2libGUoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNWaXNpYmxlKHcpe3RoaXMuI2k9d31jb25zdHJ1Y3Rvcigpe3N1cGVyKCksTWModGhpcyxiKSxkMS5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIGZvbnQtZmFtaWx5OiAke0lyfTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgOmhvc3QoW2lzdmlzaWJsZV0pIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgICAgfQoKICAgICAgLnRvYXN0IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmYiLCIjMjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTBlMGUwIiwiIzMzMyIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7bS5iZFRoZW1lKCJyZ2JhKDAsMCwwLDAuMSkiLCJyZ2JhKDAsMCwwLDAuMykiKX07CiAgICAgICAgbWluLXdpZHRoOiAzMDBweDsKICAgICAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnRvYXN0OmhvdmVyIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpOwogICAgICB9CgogICAgICAuaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgaGVpZ2h0OiAyMHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmljb24gc3ZnIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC5tZXNzYWdlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgIH0KCiAgICAgIC5jbG9zZSB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzOwogICAgICB9CgogICAgICAuY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KCiAgICAgIC5jbG9zZSBzdmcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7CiAgICAgIH0KCiAgICAgIC8qIFR5cGUtc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIDpob3N0KFt0eXBlPSJpbmZvIl0pIC5pY29uIHsKICAgICAgICBjb2xvcjogIzAwODRmZjsKICAgICAgfQoKICAgICAgOmhvc3QoW3R5cGU9InN1Y2Nlc3MiXSkgLmljb24gewogICAgICAgIGNvbG9yOiAjMjJjNTVlOwogICAgICB9CgogICAgICA6aG9zdChbdHlwZT0id2FybmluZyJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICNmNTllMGI7CiAgICAgIH0KCiAgICAgIDpob3N0KFt0eXBlPSJlcnJvciJdKSAuaWNvbiB7CiAgICAgICAgY29sb3I6ICNlZjQ0NDQ7CiAgICAgIH0KCiAgICAgIC8qIFByb2dyZXNzIGJhciAqLwogICAgICAucHJvZ3Jlc3MgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgb3BhY2l0eTogMC4yOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5wcm9ncmVzcy1iYXIgewogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7CiAgICAgICAgYW5pbWF0aW9uOiBwcm9ncmVzcyBsaW5lYXIgZm9yd2FyZHM7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgcHJvZ3Jlc3MgewogICAgICAgIGZyb20gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApOwogICAgICAgIH0KICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IHc9e2luZm86Q2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0xLTExYTEgMSAwIDEwLTIgMHYySDdhMSAxIDAgMTAwIDJoMnYyYTEgMSAwIDEwMiAwdi0yaDJhMSAxIDAgMTAwLTJoLTJWN3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLHN1Y2Nlc3M6Q2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0zLjcwNy05LjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEw5IDEwLjU4NiA3LjcwNyA5LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMDAxLjQxNCAwbDQtNHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gLHdhcm5pbmc6Q2A8c3ZnIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjI1NyAzLjA5OWMuNzY1LTEuMzYgMi43MjItMS4zNiAzLjQ4NiAwbDUuNTggOS45MmMuNzUgMS4zMzQtLjIxMyAyLjk4LTEuNzQyIDIuOThINC40MmMtMS41MyAwLTIuNDkzLTEuNjQ2LTEuNzQzLTIuOThsNS41OC05Ljkyek0xMSAxM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0xLThhMSAxIDAgMDAtMSAxdjNhMSAxIDAgMDAyIDBWNmExIDEgMCAwMC0xLTF6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgICAgPC9zdmc+YCxlcnJvcjpDYDxzdmcgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTguNzA3IDcuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0TDguNTg2IDEwbC0xLjI5MyAxLjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEwIDExLjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDExLjQxNCAxMGwxLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMCA4LjU4NiA4LjcwNyA3LjI5M3oiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPgogICAgICA8L3N2Zz5gfTtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0idG9hc3QiIEBjbGljaz0ke3RoaXMuZGlzbWlzc30+CiAgICAgICAgPGRpdiBjbGFzcz0iaWNvbiI+CiAgICAgICAgICAke3dbdGhpcy50eXBlXX0KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlIj4ke3RoaXMubWVzc2FnZX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjbG9zZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICAgICAgPHBhdGggZD0iTTQuNjQ2IDQuNjQ2YS41LjUgMCAwIDEgLjcwOCAwTDggNy4yOTNsMi42NDYtMi42NDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDIuNjQ3IDIuNjQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtMi42NDYgMi42NDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCA0LjY0NiA1LjM1NGEuNS41IDAgMCAxIDAtLjcwOHoiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgICR7dGhpcy5kdXJhdGlvbj4wP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWJhciIgc3R5bGU9ImFuaW1hdGlvbi1kdXJhdGlvbjogJHt0aGlzLmR1cmF0aW9ufW1zIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBkaXNtaXNzKCl7dGhpcy5pc1Zpc2libGU9ITEsYXdhaXQgbmV3IFByb21pc2Uoaz0+c2V0VGltZW91dChrLDMwMCkpLHRoaXMucmVtb3ZlKCk7bGV0IHc9dGhpcy5wYXJlbnRFbGVtZW50O2lmKHcmJncuY2hpbGRyZW4ubGVuZ3RoPT09MCl7dy5yZW1vdmUoKTtmb3IobGV0W2ssT11vZiB5LnRvYXN0Q29udGFpbmVycy5lbnRyaWVzKCkpaWYoTz09PXcpe3kudG9hc3RDb250YWluZXJzLmRlbGV0ZShrKTticmVha319fWZpcnN0VXBkYXRlZCgpe3RoaXMuc2V0QXR0cmlidXRlKCJ0eXBlIix0aGlzLnR5cGUpfXN0YXRpY3tNYyhpLHIpfX07cmV0dXJuIHk9aX0pKCl9KTt2YXIgbDByPXAoKCk9PntaNmUoKX0pO3ZhciBjMHI9cCgoKT0+e0JjcigpO1VjcigpO1FjcigpO3IwcigpO24wcigpO2wwcigpfSk7dmFyIGQwcj1wKCgpPT57aWgoKX0pO3ZhciB1MHI9cCgoKT0+e09kKCl9KTt2YXIgcDByPXAoKCk9PntkMHIoKTt1MHIoKX0pO3ZhciBoMHI9cCgoKT0+e00xKCl9KTt2YXIgZjByPXAoKCk9PntDTigpfSk7dmFyIG0wcj1wKCgpPT57dTZlKCl9KTt2YXIgZzByPXAoKCk9PntGTigpfSk7dmFyIGIwcj1wKCgpPT57azZlKCl9KTt2YXIgdjByLHgwcj1wKCgpPT57eGUoKTtwMSgpO09pKCk7aWgoKTtONCgpO09kKCk7djByPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDsKICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRlZXMtcGFuZWw6bGFzdC1jaGlsZCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsKICAgICAgICAgIGdhcDogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7CiAgICAgICAgICAuZ3JpZC1sYXlvdXQgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2YzZjRmNjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgIGNvbG9yOiAjMzc0MTUxOwogICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsOwogICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAub3V0cHV0LXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMmMyYzJjOwogICAgICAgICAgICBjb2xvcjogI2U0ZTRlNzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OwogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlZmY2ZmY7CiAgICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICMzYjgyZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBjb2xvcjogIzFlNDBhZjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLmZlYXR1cmUtbm90ZSB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTNhNWY7CiAgICAgICAgICAgIGNvbG9yOiAjOTNjNWZkOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgYH0KICAgIDwvc3R5bGU+CiAgICAKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjEuIEJhc2ljIExpc3QgSW5wdXQifSAuc3VidGl0bGU9JHsiU2ltcGxlIGxpc3QgbWFuYWdlbWVudCB3aXRoIGFkZCwgZWRpdCwgYW5kIGRlbGV0ZSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTaG9wcGluZyBMaXN0In0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgaXRlbSB0byB5b3VyIGxpc3QuLi4ifQogICAgICAgICAgLnZhbHVlPSR7WyJNaWxrIiwiQnJlYWQiLCJFZ2dzIiwiQ2hlZXNlIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRG91YmxlLWNsaWNrIHRvIGVkaXQgaXRlbXMsIG9yIHVzZSB0aGUgZWRpdCBidXR0b24ifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLW5vdGUiPgogICAgICAgICAg8J+SoSBEb3VibGUtY2xpY2sgYW55IGl0ZW0gdG8gcXVpY2tseSBlZGl0IGl0IGlubGluZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMi4gU29ydGFibGUgTGlzdCJ9IC5zdWJ0aXRsZT0keyJEcmFnIGFuZCBkcm9wIHRvIHJlb3JkZXIgaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiVGFzayBQcmlvcml0eSJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIGEgdGFzay4uLiJ9CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC52YWx1ZT0ke1siUmV2aWV3IHB1bGwgcmVxdWVzdHMiLCJGaXggY3JpdGljYWwgYnVnIiwiVXBkYXRlIGRvY3VtZW50YXRpb24iLCJEZXBsb3kgdG8gcHJvZHVjdGlvbiIsIlRlYW0gc3RhbmR1cCBtZWV0aW5nIl19CiAgICAgICAgICAuZGVzY3JpcHRpb249JHsiRHJhZyBpdGVtcyB1c2luZyB0aGUgaGFuZGxlIHRvIHJlb3JkZXIgdGhlbSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDwn5SEIERyYWcgdGhlIGdyaXAgaGFuZGxlIHRvIHJlb3JkZXIgdGFza3MgYnkgcHJpb3JpdHkKICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIFZhbGlkYXRpb24gJiBDb25zdHJhaW50cyJ9IC5zdWJ0aXRsZT0keyJMaXN0cyB3aXRoIG1pbmltdW0vbWF4aW11bSBpdGVtcyBhbmQgZHVwbGljYXRlIHByZXZlbnRpb24ifT4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgIC5sYWJlbD0keyJUZWFtIE1lbWJlcnMgKE1pbiAyLCBNYXggNSkifQogICAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiQWRkIHRlYW0gbWVtYmVyLi4uIn0KICAgICAgICAgICAgLm1pbkl0ZW1zPSR7Mn0KICAgICAgICAgICAgLm1heEl0ZW1zPSR7NX0KICAgICAgICAgICAgLnZhbHVlPSR7WyJBbGljZSIsIkJvYiJdfQogICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IkFkZCAyLTUgdGVhbSBtZW1iZXJzIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAubGFiZWw9JHsiVW5pcXVlIFRhZ3MgKE5vIER1cGxpY2F0ZXMpIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCB1bmlxdWUgdGFnLi4uIn0KICAgICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgICAudmFsdWU9JHtbImZyb250ZW5kIiwiYmFja2VuZCIsImRhdGFiYXNlIl19CiAgICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEdXBsaWNhdGUgaXRlbXMgYXJlIG5vdCBhbGxvd2VkIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjQuIERlbGV0ZSBDb25maXJtYXRpb24ifSAuc3VidGl0bGU9JHsiUmVxdWlyZSBjb25maXJtYXRpb24gYmVmb3JlIGRlbGV0aW5nIGl0ZW1zIn0+CiAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgLmxhYmVsPSR7IkltcG9ydGFudCBEb2N1bWVudHMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBkb2N1bWVudCBuYW1lLi4uIn0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAudmFsdWU9JHtbIkNvbnRyYWN0XzIwMjQucGRmIiwiRmluYW5jaWFsX1JlcG9ydF9RMy54bHN4IiwiUHJvamVjdF9Qcm9wb3NhbC5kb2N4IiwiTWVldGluZ19Ob3Rlcy50eHQiXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJEZWxldGlvbiByZXF1aXJlcyBjb25maXJtYXRpb24gZm9yIHNhZmV0eSJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gRGlzYWJsZWQgU3RhdGUifSAuc3VidGl0bGU9JHsiUmVhZC1vbmx5IGxpc3QgZGlzcGxheSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIC5sYWJlbD0keyJTeXN0ZW0gRGVmYXVsdHMifQogICAgICAgICAgLnZhbHVlPSR7WyJEZWZhdWx0IFNldHRpbmcgMSIsIkRlZmF1bHQgU2V0dGluZyAyIiwiRGVmYXVsdCBTZXR0aW5nIDMiXX0KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLmRlc2NyaXB0aW9uPSR7IlRoZXNlIGl0ZW1zIGNhbm5vdCBiZSBtb2RpZmllZCJ9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gRm9ybSBJbnRlZ3JhdGlvbiJ9IC5zdWJ0aXRsZT0keyJMaXN0IGlucHV0IHdvcmtpbmcgd2l0aGluIGEgZm9ybSBjb250ZXh0In0+CiAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7IlJlY2lwZSBOYW1lIn0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7Ik15IEFtYXppbmcgUmVjaXBlIn0KICAgICAgICAgICAgLnJlcXVpcmVkPSR7ITB9CiAgICAgICAgICAgIC5rZXk9JHsibmFtZSJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtbGF5b3V0Ij4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtbGlzdAogICAgICAgICAgICAgIC5sYWJlbD0keyJJbmdyZWRpZW50cyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbmdyZWRpZW50Li4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5ncmVkaWVudHMifQogICAgICAgICAgICAgIC5zb3J0YWJsZT0keyEwfQogICAgICAgICAgICAgIC52YWx1ZT0ke1siMiBjdXBzIGZsb3VyIiwiMSBjdXAgc3VnYXIiLCIzIGVnZ3MiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGF0IGxlYXN0IDMgaW5ncmVkaWVudHMifQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAgICAgLmxhYmVsPSR7Ikluc3RydWN0aW9ucyJ9CiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBpbnN0cnVjdGlvbiBzdGVwLi4uIn0KICAgICAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgICAgICAubWluSXRlbXM9JHsyfQogICAgICAgICAgICAgIC5rZXk9JHsiaW5zdHJ1Y3Rpb25zIn0KICAgICAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgICAgICAudmFsdWU9JHtbIlByZWhlYXQgb3ZlbiB0byAzNTBceEIwRiIsIk1peCBkcnkgaW5ncmVkaWVudHMiXX0KICAgICAgICAgICAgICAuZGVzY3JpcHRpb249JHsiQWRkIGNvb2tpbmcgaW5zdHJ1Y3Rpb25zIGluIG9yZGVyIn0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQKICAgICAgICAgICAgLmxhYmVsPSR7Ik5vdGVzIn0KICAgICAgICAgICAgLmlucHV0VHlwZT0keyJ0ZXh0YXJlYSJ9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBbnkgc3BlY2lhbCBub3RlcyBvciB0aXBzLi4uIn0KICAgICAgICAgICAgLmtleT0keyJub3RlcyJ9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0IC50ZXh0PSR7IlNhdmUgUmVjaXBlIn0+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNy4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJCdWlsZCB5b3VyIG93biBmZWF0dXJlIGxpc3QgYW5kIHNlZSB0aGUgZGF0YSJ9PgogICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1saXN0IgogICAgICAgICAgLmxhYmVsPSR7IlByb2R1Y3QgRmVhdHVyZXMifQogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IkFkZCBhIGZlYXR1cmUuLi4ifQogICAgICAgICAgLnNvcnRhYmxlPSR7ITB9CiAgICAgICAgICAuY29uZmlybURlbGV0ZT0keyExfQogICAgICAgICAgLmFsbG93RHVwbGljYXRlcz0keyExfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTB9CiAgICAgICAgICBAY2hhbmdlPSR7ZT0+e2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNsaXN0LWpzb24iKTtpZih0KXtsZXQgcj17aXRlbXM6ZS5kZXRhaWwudmFsdWUsY291bnQ6ZS5kZXRhaWwudmFsdWUubGVuZ3RoLHRpbWVzdGFtcDpuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9O3QudGV4dENvbnRlbnQ9SlNPTi5zdHJpbmdpZnkocixudWxsLDIpfX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1saXN0PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0ibGlzdC1qc29uIj4KICAgICAgICAgIHsKICAgICAgICAgICAgIml0ZW1zIjogW10sCiAgICAgICAgICAgICJjb3VudCI6IDAsCiAgICAgICAgICAgICJ0aW1lc3RhbXAiOiAiJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9IgogICAgICAgICAgfQogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtbm90ZSI+CiAgICAgICAgICDinKggQWRkLCBlZGl0LCByZW1vdmUsIGFuZCByZW9yZGVyIGl0ZW1zIHRvIHNlZSB0aGUgSlNPTiBvdXRwdXQgdXBkYXRlIGluIHJlYWwtdGltZQogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gQWR2YW5jZWQgQ29uZmlndXJhdGlvbiJ9IC5zdWJ0aXRsZT0keyJDb21iaW5lIGFsbCBmZWF0dXJlcyBmb3IgY29tcGxleCB1c2UgY2FzZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCBNaWxlc3RvbmVzIn0KICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJBZGQgbWlsZXN0b25lLi4uIn0KICAgICAgICAgIC52YWx1ZT0ke1siUHJvamVjdCBLaWNrb2ZmIC0gV2VlayAxIiwiUmVxdWlyZW1lbnRzIEdhdGhlcmluZyAtIFdlZWsgMi0zIiwiRGVzaWduIFBoYXNlIC0gV2VlayA0LTYiLCJEZXZlbG9wbWVudCBTcHJpbnQgMSAtIFdlZWsgNy05IiwiVGVzdGluZyAmIFFBIC0gV2VlayAxMC0xMSIsIkRlcGxveW1lbnQgLSBXZWVrIDEyIl19CiAgICAgICAgICAuc29ydGFibGU9JHshMH0KICAgICAgICAgIC5jb25maXJtRGVsZXRlPSR7ITB9CiAgICAgICAgICAuYWxsb3dEdXBsaWNhdGVzPSR7ITF9CiAgICAgICAgICAubWluSXRlbXM9JHszfQogICAgICAgICAgLm1heEl0ZW1zPSR7MTJ9CiAgICAgICAgICAucmVxdWlyZWQ9JHshMH0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJNYW5hZ2UgcHJvamVjdCBtaWxlc3RvbmVzICgzLTEyIGl0ZW1zLCBzb3J0YWJsZSwgbm8gZHVwbGljYXRlcykifQogICAgICAgID48L2RlZXMtaW5wdXQtbGlzdD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjkuIEVtcHR5IFN0YXRlIn0gLnN1YnRpdGxlPSR7IkhvdyB0aGUgY29tcG9uZW50IGxvb2tzIHdpdGggbm8gaXRlbXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1saXN0CiAgICAgICAgICAubGFiZWw9JHsiWW91ciBJZGVhcyJ9CiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiU2hhcmUgeW91ciBpZGVhcy4uLiJ9CiAgICAgICAgICAudmFsdWU9JHtbXX0KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJTdGFydCBhZGRpbmcgaXRlbXMgdG8gYnVpbGQgeW91ciBsaXN0In0KICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBSaSxkcix5MHIsdzByPXAoKCk9Pnt4ZSgpO00xKCk7b3IoKTtJNCgpO3gwcigpO0plKCk7Umk9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxkcj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0seTByPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC1saXN0IildLHQscj1bXSxpLGE9b3QsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXSx3ZSxJPVtdLG5lPVtdLGtlLFk9W10sQT1bXSxMLFU9W10sVj1bXSxYLGRlPVtdLHZlPVtdLExlLFc9W10sSD1bXSx0ZSxiZT1bXSx1ZT1bXTt2YXIgQ2U9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ooe3R5cGU6TnVtYmVyfSldLHg9W2ooe3R5cGU6TnVtYmVyfSldLHk9W2ooe3R5cGU6Qm9vbGVhbn0pXSxPPVtqKHt0eXBlOkJvb2xlYW59KV0sRj1baih7dHlwZTpCb29sZWFufSldLFI9W2ooe3R5cGU6U3RyaW5nfSldLCQ9W2ZlKCldLHE9W2ZlKCldLGVlPVtmZSgpXSx3ZT1bZmUoKV0sa2U9W2ZlKCldLEw9W2ZlKCldLFg9W2ZlKCldLExlPVtmZSgpXSx0ZT1bZmUoKV0sUmkodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJ2YWx1ZSJpbiBpZSxnZXQ6aWU9PmllLnZhbHVlLHNldDooaWUsU2UpPT57aWUudmFsdWU9U2V9fSxtZXRhZGF0YTpoZX0sbyxzKSxSaSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+InBsYWNlaG9sZGVyImluIGllLGdldDppZT0+aWUucGxhY2Vob2xkZXIsc2V0OihpZSxTZSk9PntpZS5wbGFjZWhvbGRlcj1TZX19LG1ldGFkYXRhOmhlfSxjLHUpLFJpKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWF4SXRlbXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4ibWF4SXRlbXMiaW4gaWUsZ2V0OmllPT5pZS5tYXhJdGVtcyxzZXQ6KGllLFNlKT0+e2llLm1heEl0ZW1zPVNlfX0sbWV0YWRhdGE6aGV9LGgsZiksUmkodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtaW5JdGVtcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJtaW5JdGVtcyJpbiBpZSxnZXQ6aWU9PmllLm1pbkl0ZW1zLHNldDooaWUsU2UpPT57aWUubWluSXRlbXM9U2V9fSxtZXRhZGF0YTpoZX0sdixiKSxSaSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsbG93RHVwbGljYXRlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJhbGxvd0R1cGxpY2F0ZXMiaW4gaWUsZ2V0OmllPT5pZS5hbGxvd0R1cGxpY2F0ZXMsc2V0OihpZSxTZSk9PntpZS5hbGxvd0R1cGxpY2F0ZXM9U2V9fSxtZXRhZGF0YTpoZX0sdyxrKSxSaSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNvcnRhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+InNvcnRhYmxlImluIGllLGdldDppZT0+aWUuc29ydGFibGUsc2V0OihpZSxTZSk9PntpZS5zb3J0YWJsZT1TZX19LG1ldGFkYXRhOmhlfSx6LE0pLFJpKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29uZmlybURlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJjb25maXJtRGVsZXRlImluIGllLGdldDppZT0+aWUuY29uZmlybURlbGV0ZSxzZXQ6KGllLFNlKT0+e2llLmNvbmZpcm1EZWxldGU9U2V9fSxtZXRhZGF0YTpoZX0sRCxOKSxSaSh0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbGlkYXRpb25UZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+InZhbGlkYXRpb25UZXh0ImluIGllLGdldDppZT0+aWUudmFsaWRhdGlvblRleHQsc2V0OihpZSxTZSk9PntpZS52YWxpZGF0aW9uVGV4dD1TZX19LG1ldGFkYXRhOmhlfSxfLFMpLFJpKHRoaXMsbnVsbCwkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5wdXRWYWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJpbnB1dFZhbHVlImluIGllLGdldDppZT0+aWUuaW5wdXRWYWx1ZSxzZXQ6KGllLFNlKT0+e2llLmlucHV0VmFsdWU9U2V9fSxtZXRhZGF0YTpoZX0sVCxFKSxSaSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVkaXRpbmdJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJlZGl0aW5nSW5kZXgiaW4gaWUsZ2V0OmllPT5pZS5lZGl0aW5nSW5kZXgsc2V0OihpZSxTZSk9PntpZS5lZGl0aW5nSW5kZXg9U2V9fSxtZXRhZGF0YTpoZX0sQixHKSxSaSh0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlZGl0aW5nVmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4iZWRpdGluZ1ZhbHVlImluIGllLGdldDppZT0+aWUuZWRpdGluZ1ZhbHVlLHNldDooaWUsU2UpPT57aWUuZWRpdGluZ1ZhbHVlPVNlfX0sbWV0YWRhdGE6aGV9LFAsZ2UpLFJpKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdnZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJkcmFnZ2VkSW5kZXgiaW4gaWUsZ2V0OmllPT5pZS5kcmFnZ2VkSW5kZXgsc2V0OihpZSxTZSk9PntpZS5kcmFnZ2VkSW5kZXg9U2V9fSxtZXRhZGF0YTpoZX0sSSxuZSksUmkodGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHJhZ092ZXJJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJkcmFnT3ZlckluZGV4ImluIGllLGdldDppZT0+aWUuZHJhZ092ZXJJbmRleCxzZXQ6KGllLFNlKT0+e2llLmRyYWdPdmVySW5kZXg9U2V9fSxtZXRhZGF0YTpoZX0sWSxBKSxSaSh0aGlzLG51bGwsTCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdTdGFydFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4iZHJhZ1N0YXJ0WSJpbiBpZSxnZXQ6aWU9PmllLmRyYWdTdGFydFksc2V0OihpZSxTZSk9PntpZS5kcmFnU3RhcnRZPVNlfX0sbWV0YWRhdGE6aGV9LFUsViksUmkodGhpcyxudWxsLFgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnQ3VycmVudFkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmllPT4iZHJhZ0N1cnJlbnRZImluIGllLGdldDppZT0+aWUuZHJhZ0N1cnJlbnRZLHNldDooaWUsU2UpPT57aWUuZHJhZ0N1cnJlbnRZPVNlfX0sbWV0YWRhdGE6aGV9LGRlLHZlKSxSaSh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0YXJnZXRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6aWU9PiJ0YXJnZXRJbmRleCJpbiBpZSxnZXQ6aWU9PmllLnRhcmdldEluZGV4LHNldDooaWUsU2UpPT57aWUudGFyZ2V0SW5kZXg9U2V9fSxtZXRhZGF0YTpoZX0sVyxIKSxSaSh0aGlzLG51bGwsdGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpdGVtSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczppZT0+Iml0ZW1IZWlnaHQiaW4gaWUsZ2V0OmllPT5pZS5pdGVtSGVpZ2h0LHNldDooaWUsU2UpPT57aWUuaXRlbUhlaWdodD1TZX19LG1ldGFkYXRhOmhlfSxiZSx1ZSksUmkobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6aGV9LG51bGwsciksQ2U9aT10LnZhbHVlLGhlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmhlfSl9c3RhdGljIGRlbW89djByO3N0YXRpYyBkZW1vR3JvdXBzPVsiSW5wdXQiXTsjZT1kcih0aGlzLG8sW10pO2dldCB2YWx1ZSgpe3JldHVybiB0aGlzLiNlfXNldCB2YWx1ZShoZSl7dGhpcy4jZT1oZX0jdD0oZHIodGhpcyxzKSxkcih0aGlzLGMsIkFkZCBuZXcgaXRlbS4uLiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoaGUpe3RoaXMuI3Q9aGV9I3I9KGRyKHRoaXMsdSksZHIodGhpcyxoLDApKTtnZXQgbWF4SXRlbXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWF4SXRlbXMoaGUpe3RoaXMuI3I9aGV9I2k9KGRyKHRoaXMsZiksZHIodGhpcyx2LDApKTtnZXQgbWluSXRlbXMoKXtyZXR1cm4gdGhpcy4jaX1zZXQgbWluSXRlbXMoaGUpe3RoaXMuI2k9aGV9I2E9KGRyKHRoaXMsYiksZHIodGhpcyx3LCExKSk7Z2V0IGFsbG93RHVwbGljYXRlcygpe3JldHVybiB0aGlzLiNhfXNldCBhbGxvd0R1cGxpY2F0ZXMoaGUpe3RoaXMuI2E9aGV9I249KGRyKHRoaXMsayksZHIodGhpcyx6LCExKSk7Z2V0IHNvcnRhYmxlKCl7cmV0dXJuIHRoaXMuI259c2V0IHNvcnRhYmxlKGhlKXt0aGlzLiNuPWhlfSNvPShkcih0aGlzLE0pLGRyKHRoaXMsRCwhMSkpO2dldCBjb25maXJtRGVsZXRlKCl7cmV0dXJuIHRoaXMuI299c2V0IGNvbmZpcm1EZWxldGUoaGUpe3RoaXMuI289aGV9I3M9KGRyKHRoaXMsTiksZHIodGhpcyxfLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbGlkYXRpb25UZXh0KGhlKXt0aGlzLiNzPWhlfSNsPShkcih0aGlzLFMpLGRyKHRoaXMsVCwiIikpO2dldCBpbnB1dFZhbHVlKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlucHV0VmFsdWUoaGUpe3RoaXMuI2w9aGV9I2M9KGRyKHRoaXMsRSksZHIodGhpcyxCLC0xKSk7Z2V0IGVkaXRpbmdJbmRleCgpe3JldHVybiB0aGlzLiNjfXNldCBlZGl0aW5nSW5kZXgoaGUpe3RoaXMuI2M9aGV9I2Q9KGRyKHRoaXMsRyksZHIodGhpcyxQLCIiKSk7Z2V0IGVkaXRpbmdWYWx1ZSgpe3JldHVybiB0aGlzLiNkfXNldCBlZGl0aW5nVmFsdWUoaGUpe3RoaXMuI2Q9aGV9I3U9KGRyKHRoaXMsZ2UpLGRyKHRoaXMsSSwtMSkpO2dldCBkcmFnZ2VkSW5kZXgoKXtyZXR1cm4gdGhpcy4jdX1zZXQgZHJhZ2dlZEluZGV4KGhlKXt0aGlzLiN1PWhlfSNwPShkcih0aGlzLG5lKSxkcih0aGlzLFksLTEpKTtnZXQgZHJhZ092ZXJJbmRleCgpe3JldHVybiB0aGlzLiNwfXNldCBkcmFnT3ZlckluZGV4KGhlKXt0aGlzLiNwPWhlfSNoPShkcih0aGlzLEEpLGRyKHRoaXMsVSwwKSk7Z2V0IGRyYWdTdGFydFkoKXtyZXR1cm4gdGhpcy4jaH1zZXQgZHJhZ1N0YXJ0WShoZSl7dGhpcy4jaD1oZX0jZj0oZHIodGhpcyxWKSxkcih0aGlzLGRlLDApKTtnZXQgZHJhZ0N1cnJlbnRZKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGRyYWdDdXJyZW50WShoZSl7dGhpcy4jZj1oZX0jbT0oZHIodGhpcyx2ZSksZHIodGhpcyxXLC0xKSk7Z2V0IHRhcmdldEluZGV4KCl7cmV0dXJuIHRoaXMuI219c2V0IHRhcmdldEluZGV4KGhlKXt0aGlzLiNtPWhlfSNnPShkcih0aGlzLEgpLGRyKHRoaXMsYmUsMCkpO2dldCBpdGVtSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2d9c2V0IGl0ZW1IZWlnaHQoaGUpe3RoaXMuI2c9aGV9Ym91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj0oZHIodGhpcyx1ZSksbnVsbCk7Ym91bmRIYW5kbGVHbG9iYWxEcmFnRW5kPW51bGw7b3JpZ2luYWxJdGVtUmVjdHM9W107c3RhdGljIHN0eWxlcz1bRGUsLi4ub3QuYmFzZVN0eWxlcyxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCAnUm9ib3RvJywgc2Fucy1zZXJpZjsKICAgICAgfQoKICAgICAgLmlucHV0LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubGlzdC1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5saXN0LWNvbnRhaW5lcjpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CgogICAgICAubGlzdC1jb250YWluZXI6Zm9jdXMtd2l0aGluIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSAvIDAuMSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAubGlzdC1jb250YWluZXIuZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAubGlzdC1pdGVtcyB7CiAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogUHJldmVudCBhbmltYXRpb24gZnJvbSBhZmZlY3Rpbmcgc2Nyb2xsIGJvdW5kcyAqLwogICAgICB9CgogICAgICAubGlzdC1pdGVtOmxhc3Qtb2YtdHlwZSB7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgfQoKICAgICAgLmxpc3QtaXRlbXM6bm90KC5pcy1kcmFnZ2luZykgLmxpc3QtaXRlbTpob3Zlcjpub3QoLmRpc2FibGVkKSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk3LjUlKSIsImhzbCgwIDAlIDYuOSUpIil9OwogICAgICB9CgogICAgICAvKiBEcmFnZ2luZyBpdGVtIC0gZm9sbG93cyBjdXJzb3IgKi8KICAgICAgLmxpc3QtaXRlbS5kcmFnZ2luZyB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHotaW5kZXg6IDEwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTglKSIsImhzbCgyMTUgMjAuMiUgMTIlKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTUpIiwicmdiYSgwLCAwLCAwLCAwLjQpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMTVzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLyogSXRlbXMgdGhhdCBuZWVkIHRvIG1vdmUgdXAgdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtdXAgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKC0xICogdmFyKC0taXRlbS1oZWlnaHQsIDQ4cHgpKSk7CiAgICAgIH0KCiAgICAgIC8qIEl0ZW1zIHRoYXQgbmVlZCB0byBtb3ZlIGRvd24gdG8gbWFrZSBzcGFjZSAqLwogICAgICAubGlzdC1pdGVtLm1vdmUtZG93biB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWl0ZW0taGVpZ2h0LCA0OHB4KSk7CiAgICAgIH0KCgogICAgICAuZHJhZy1oYW5kbGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBjdXJzb3I6IG1vdmU7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmRyYWctaGFuZGxlOmhvdmVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmRyYWctaGFuZGxlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICB9CgogICAgICAuaXRlbS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgIH0KCiAgICAgIC5pdGVtLXRleHQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAuaXRlbS1lZGl0LWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAuaXRlbS1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDI4cHg7CiAgICAgICAgaGVpZ2h0OiAyOHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNhdmUgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDE0Mi4xIDc2LjIlIDM2LjMlKSIsImhzbCgxNDIuMSA3MC42JSA0NS4zJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uLnNhdmU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMTQyLjEgNzYuMiUgMzYuMyUgLyAwLjEpIiwiaHNsKDE0Mi4xIDcwLjYlIDQ1LjMlIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uY2FuY2VsIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDUwLjYlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbi1idXR0b24uY2FuY2VsOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUgLyAwLjEpIiwiaHNsKDAgNjIuOCUgNTAuNiUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGUgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzIuMiUgNTAuNiUpIiwiaHNsKDAgNjIuOCUgNTAuNiUpIil9OwogICAgICB9CgogICAgICAuYWN0aW9uLWJ1dHRvbi5kZWxldGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSAvIDAuMSkiLCJoc2woMCA2Mi44JSA1MC42JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE0cHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICB9CgogICAgICAuYWRkLWl0ZW0tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTcuNSUpIiwiaHNsKDAgMCUgNi45JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5hZGQtaW5wdXQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4ICR7bS5iZFRoZW1lKCJoc2woMjIyLjIgNDcuNCUgNTEuMiUgLyAwLjEpIiwiaHNsKDIxNy4yIDkxLjIlIDU5LjglIC8gMC4xKSIpfTsKICAgICAgfQoKICAgICAgLmFkZC1pbnB1dDo6cGxhY2Vob2xkZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNjMuOSUpIiwiaHNsKDAgMCUgNDUuMSUpIil9OwogICAgICB9CgogICAgICAuYWRkLWlucHV0OmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLmFkZC1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIHBhZGRpbmc6IDMycHggMTZweDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCA3Mi4yJSA1MC42JSkiLCJoc2woMCA2Mi44JSAzMC42JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi10b3A6IDZweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAyNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAzNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC8qIERpc2FibGUgdHJhbnNpdGlvbnMgZHVyaW5nIGRyb3AgdG8gcHJldmVudCBmbGFzaCAqLwogICAgICAubGlzdC1pdGVtcy5kcm9wcGluZyAubGlzdC1pdGVtIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICAke3RoaXMubGFiZWw/Q2A8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+YDoiIn0KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0LWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGlzdC1pdGVtcyI+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZS5sZW5ndGg+MD90aGlzLnZhbHVlLm1hcCgoaGUsaWUpPT5DYAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJsaXN0LWl0ZW0gJHt0aGlzLmRyYWdnZWRJbmRleD09PWllPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgZHJhZ2dhYmxlPSIke3RoaXMuc29ydGFibGUmJiF0aGlzLmRpc2FibGVkfSIKICAgICAgICAgICAgICAgIEBkcmFnc3RhcnQ9JHtTZT0+dGhpcy5oYW5kbGVEcmFnU3RhcnQoU2UsaWUpfQogICAgICAgICAgICAgICAgQGRyYWdlbmQ9JHt0aGlzLmhhbmRsZURyYWdFbmR9CiAgICAgICAgICAgICAgICBAZHJhZ292ZXI9JHtTZT0+dGhpcy5oYW5kbGVEcmFnT3ZlcihTZSxpZSl9CiAgICAgICAgICAgICAgICBAZHJvcD0ke1NlPT50aGlzLmhhbmRsZURyb3AoU2UsaWUpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICR7dGhpcy5zb3J0YWJsZSYmIXRoaXMuZGlzYWJsZWQ/Q2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZHJhZy1oYW5kbGUiPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmdyaXBWZXJ0aWNhbCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Iml0ZW0tY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5lZGl0aW5nSW5kZXg9PT1pZT9DYAogICAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJpdGVtLWVkaXQtaW5wdXQiCiAgICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmVkaXRpbmdWYWx1ZX0KICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD0ke1NlPT50aGlzLmVkaXRpbmdWYWx1ZT1TZS50YXJnZXQudmFsdWV9CiAgICAgICAgICAgICAgICAgICAgICBAa2V5ZG93bj0ke1NlPT50aGlzLmhhbmRsZUVkaXRLZXlEb3duKFNlLGllKX0KICAgICAgICAgICAgICAgICAgICAgIEBibHVyPSR7KCk9PnRoaXMuc2F2ZUVkaXQoaWUpfQogICAgICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpdGVtLXRleHQiIEBkYmxjbGljaz0keygpPT4hdGhpcy5kaXNhYmxlZCYmdGhpcy5zdGFydEVkaXQoaWUpfT4KICAgICAgICAgICAgICAgICAgICAgICR7aGV9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaXRlbS1hY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgJHt0aGlzLmVkaXRpbmdJbmRleD09PWllP0NgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiBzYXZlIiBAY2xpY2s9JHsoKT0+dGhpcy5zYXZlRWRpdChpZSl9PgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hlY2sifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGNhbmNlbCIgQGNsaWNrPSR7KCk9PnRoaXMuY2FuY2VsRWRpdCgpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDpDYAogICAgICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjpDYAogICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWN0aW9uLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuc3RhcnRFZGl0KGllKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBlbmNpbCJ9PjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJhY3Rpb24tYnV0dG9uIGRlbGV0ZSIgQGNsaWNrPSR7KCk9PnRoaXMucmVtb3ZlSXRlbShpZSl9PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0cmFzaDIifT48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICAgIGB9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCk6Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+CiAgICAgICAgICAgICAgICBObyBpdGVtcyBhZGRlZCB5ZXQKICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4SXRlbXN8fHRoaXMudmFsdWUubGVuZ3RoPHRoaXMubWF4SXRlbXMpP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkZC1pdGVtLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGlucHV0CiAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgogICAgICAgICAgICAgICAgY2xhc3M9ImFkZC1pbnB1dCIKICAgICAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke3RoaXMucGxhY2Vob2xkZXJ9CiAgICAgICAgICAgICAgICAudmFsdWU9JHt0aGlzLmlucHV0VmFsdWV9CiAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZUlucHV0fQogICAgICAgICAgICAgICAgQGtleWRvd249JHt0aGlzLmhhbmRsZUFkZEtleURvd259CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfQogICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0iYWRkLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWRkSXRlbX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0keyF0aGlzLmlucHV0VmFsdWUudHJpbSgpfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOnBsdXMifT48L2RlZXMtaWNvbj4gQWRkCiAgICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMudmFsaWRhdGlvblRleHQ/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9InZhbGlkYXRpb24tbWVzc2FnZSI+JHt0aGlzLnZhbGlkYXRpb25UZXh0fTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgICAgCiAgICAgICAgJHt0aGlzLmRlc2NyaXB0aW9uP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJkZXNjcmlwdGlvbiI+JHt0aGlzLmRlc2NyaXB0aW9ufTwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1oYW5kbGVJbnB1dChoZSl7dGhpcy5pbnB1dFZhbHVlPWhlLnRhcmdldC52YWx1ZX1oYW5kbGVBZGRLZXlEb3duKGhlKXtoZS5rZXk9PT0iRW50ZXIiJiZ0aGlzLmlucHV0VmFsdWUudHJpbSgpJiYoaGUucHJldmVudERlZmF1bHQoKSx0aGlzLmFkZEl0ZW0oKSl9aGFuZGxlRWRpdEtleURvd24oaGUsaWUpe2hlLmtleT09PSJFbnRlciI/KGhlLnByZXZlbnREZWZhdWx0KCksdGhpcy5zYXZlRWRpdChpZSkpOmhlLmtleT09PSJFc2NhcGUiJiYoaGUucHJldmVudERlZmF1bHQoKSx0aGlzLmNhbmNlbEVkaXQoKSl9YWRkSXRlbSgpe2xldCBoZT10aGlzLmlucHV0VmFsdWUudHJpbSgpO2lmKCFoZSlyZXR1cm47aWYoIXRoaXMuYWxsb3dEdXBsaWNhdGVzJiZ0aGlzLnZhbHVlLmluY2x1ZGVzKGhlKSl7dGhpcy52YWxpZGF0aW9uVGV4dD0iVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IixzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufWlmKHRoaXMubWF4SXRlbXMmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heEl0ZW1zKXt0aGlzLnZhbGlkYXRpb25UZXh0PWBNYXhpbXVtICR7dGhpcy5tYXhJdGVtc30gaXRlbXMgYWxsb3dlZGAsc2V0VGltZW91dCgoKT0+dGhpcy52YWxpZGF0aW9uVGV4dD0iIiwzZTMpO3JldHVybn10aGlzLnZhbHVlPVsuLi50aGlzLnZhbHVlLGhlXSx0aGlzLmlucHV0VmFsdWU9IiIsdGhpcy52YWxpZGF0aW9uVGV4dD0iIjtsZXQgaWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYWRkLWlucHV0Iik7aWUmJihpZS52YWx1ZT0iIixpZS5mb2N1cygpKSx0aGlzLmVtaXRDaGFuZ2UoKX1zdGFydEVkaXQoaGUpe3RoaXMuZWRpdGluZ0luZGV4PWhlLHRoaXMuZWRpdGluZ1ZhbHVlPXRoaXMudmFsdWVbaGVdLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBpZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5pdGVtLWVkaXQtaW5wdXQiKTtpZSYmKGllLmZvY3VzKCksaWUuc2VsZWN0KCkpfSl9c2F2ZUVkaXQoaGUpe2xldCBpZT10aGlzLmVkaXRpbmdWYWx1ZS50cmltKCk7aWYoIWllKXt0aGlzLmNhbmNlbEVkaXQoKTtyZXR1cm59aWYoIXRoaXMuYWxsb3dEdXBsaWNhdGVzJiZpZSE9PXRoaXMudmFsdWVbaGVdJiZ0aGlzLnZhbHVlLmluY2x1ZGVzKGllKSl7dGhpcy52YWxpZGF0aW9uVGV4dD0iVGhpcyBpdGVtIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IixzZXRUaW1lb3V0KCgpPT50aGlzLnZhbGlkYXRpb25UZXh0PSIiLDNlMyk7cmV0dXJufWxldCBTZT1bLi4udGhpcy52YWx1ZV07U2VbaGVdPWllLHRoaXMudmFsdWU9U2UsdGhpcy5lZGl0aW5nSW5kZXg9LTEsdGhpcy5lZGl0aW5nVmFsdWU9IiIsdGhpcy52YWxpZGF0aW9uVGV4dD0iIix0aGlzLmVtaXRDaGFuZ2UoKX1jYW5jZWxFZGl0KCl7dGhpcy5lZGl0aW5nSW5kZXg9LTEsdGhpcy5lZGl0aW5nVmFsdWU9IiJ9YXN5bmMgcmVtb3ZlSXRlbShoZSl7dGhpcy5jb25maXJtRGVsZXRlJiYhYXdhaXQgdGhpcy5zaG93Q29uZmlybURpYWxvZyhgRGVsZXRlICIke3RoaXMudmFsdWVbaGVdfSI/YCl8fCh0aGlzLnZhbHVlPXRoaXMudmFsdWUuZmlsdGVyKChpZSxTZSk9PlNlIT09aGUpLHRoaXMuZW1pdENoYW5nZSgpKX1hc3luYyBzaG93Q29uZmlybURpYWxvZyhoZSl7cmV0dXJuIGNvbmZpcm0oaGUpfWhhbmRsZURyYWdTdGFydChoZSxpZSl7aWYoIXRoaXMuc29ydGFibGV8fHRoaXMuZGlzYWJsZWQpcmV0dXJuO3RoaXMuZHJhZ2dlZEluZGV4PWllLHRoaXMudGFyZ2V0SW5kZXg9aWUsaGUuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQ9Im1vdmUiLGhlLmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIixpZS50b1N0cmluZygpKTtsZXQgU2U9bmV3IEltYWdlO1NlLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQVVFQkFBQUFDd0FBQUFBQVFBQkFBQUNBa1FCQURzPSIsaGUuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShTZSwwLDApLHRoaXMuZHJhZ1N0YXJ0WT1oZS5jbGllbnRZLHRoaXMuZHJhZ0N1cnJlbnRZPWhlLmNsaWVudFk7bGV0IEllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKSxaZT1BcnJheS5mcm9tKEllPy5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIil8fFtdKTtaZVtpZV0mJih0aGlzLml0ZW1IZWlnaHQ9WmVbaWVdLm9mZnNldEhlaWdodCksdGhpcy5vcmlnaW5hbEl0ZW1SZWN0cz1aZS5tYXAoSz0+Sy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksSWU/LmNsYXNzTGlzdC5hZGQoImlzLWRyYWdnaW5nIiksdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyPXRoaXMuaGFuZGxlR2xvYmFsRHJhZ092ZXIuYmluZCh0aGlzKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZD10aGlzLmhhbmRsZUdsb2JhbERyYWdFbmQuYmluZCh0aGlzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5ib3VuZEhhbmRsZUdsb2JhbERyYWdPdmVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCl9aGFuZGxlR2xvYmFsRHJhZ092ZXIoaGUpe2lmKGhlLnByZXZlbnREZWZhdWx0KCksdGhpcy5kcmFnZ2VkSW5kZXg9PT0tMSlyZXR1cm47dGhpcy5kcmFnQ3VycmVudFk9aGUuY2xpZW50WTtsZXQgaWU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpO2lmKCFpZSlyZXR1cm47bGV0IFNlPUFycmF5LmZyb20oaWUucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpKSxJZT1TZVt0aGlzLmRyYWdnZWRJbmRleF07aWYoIUllKXJldHVybjtsZXQgWmU9dGhpcy5kcmFnQ3VycmVudFktdGhpcy5kcmFnU3RhcnRZO0llLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke1plfXB4KWA7bGV0IEs9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF07aWYoIUspcmV0dXJuO2xldCBaPUsudG9wK0suaGVpZ2h0LzIrWmUsSj10aGlzLmRyYWdnZWRJbmRleDtmb3IobGV0IG1lPTA7bWU8U2UubGVuZ3RoO21lKyspe2lmKG1lPT09dGhpcy5kcmFnZ2VkSW5kZXgpY29udGludWU7bGV0IEVlPXRoaXMub3JpZ2luYWxJdGVtUmVjdHNbbWVdO2lmKCFFZSljb250aW51ZTtsZXQgVWU9RWUudG9wK0VlLmhlaWdodC8yO2lmKFNlW21lXS5jbGFzc0xpc3QuY29udGFpbnMoIm1vdmUtdXAiKT9VZS09dGhpcy5pdGVtSGVpZ2h0OlNlW21lXS5jbGFzc0xpc3QuY29udGFpbnMoIm1vdmUtZG93biIpJiYoVWUrPXRoaXMuaXRlbUhlaWdodCksWjxVZSYmbWU8dGhpcy5kcmFnZ2VkSW5kZXgpe0o9bWU7YnJlYWt9ZWxzZSBaPlVlJiZtZT50aGlzLmRyYWdnZWRJbmRleCYmKEo9bWUpfUohPT10aGlzLnRhcmdldEluZGV4JiYodGhpcy50YXJnZXRJbmRleD1KLHRoaXMudXBkYXRlSXRlbVBvc2l0aW9ucyhTZSkpfXVwZGF0ZUl0ZW1Qb3NpdGlvbnMoaGUpe2xldCBpZT10aGlzLmRyYWdnZWRJbmRleCxTZT10aGlzLnRhcmdldEluZGV4LEllPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmxpc3QtaXRlbXMiKTtJZSYmSWUuc3R5bGUuc2V0UHJvcGVydHkoIi0taXRlbS1oZWlnaHQiLGAke3RoaXMuaXRlbUhlaWdodH1weGApLGhlLmZvckVhY2goKFplLEspPT57SyE9PWllJiYoWmUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIpLFplLnN0eWxlLnNldFByb3BlcnR5KCItLWl0ZW0taGVpZ2h0IixgJHt0aGlzLml0ZW1IZWlnaHR9cHhgKSxpZTxTZT9LPmllJiZLPD1TZSYmWmUuY2xhc3NMaXN0LmFkZCgibW92ZS11cCIpOmllPlNlJiZLPj1TZSYmSzxpZSYmWmUuY2xhc3NMaXN0LmFkZCgibW92ZS1kb3duIikpfSl9aGFuZGxlR2xvYmFsRHJhZ0VuZCgpe3RoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3ZlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIix0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ092ZXIpLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnT3Zlcj1udWxsKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZCYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuYm91bmRIYW5kbGVHbG9iYWxEcmFnRW5kKSx0aGlzLmJvdW5kSGFuZGxlR2xvYmFsRHJhZ0VuZD1udWxsKTtsZXQgaGU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpLGllPWhlPy5xdWVyeVNlbGVjdG9yQWxsKCIubGlzdC1pdGVtIiksU2U9aWU/Llt0aGlzLmRyYWdnZWRJbmRleF07aWYodGhpcy5kcmFnZ2VkSW5kZXg9PT0tMXx8dGhpcy50YXJnZXRJbmRleD09PS0xfHx0aGlzLmRyYWdnZWRJbmRleD09PXRoaXMudGFyZ2V0SW5kZXgpe2lmKFNlJiZ0aGlzLmRyYWdnZWRJbmRleCE9PS0xKXtTZS5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gMC4xNXMgZWFzZSIsU2Uuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIjtsZXQgbWU9ITEsRWU9KCk9PnttZXx8KG1lPSEwLFNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLEVlKSx0aGlzLmNsZWFudXBEcmFnU3RhdGUoaGUsaWUpKX07U2UuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsRWUse29uY2U6ITB9KSxzZXRUaW1lb3V0KEVlLDIwMCl9ZWxzZSB0aGlzLmNsZWFudXBEcmFnU3RhdGUoaGUsaWUpO3JldHVybn1sZXQgSWU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLmRyYWdnZWRJbmRleF0sWmU9dGhpcy5vcmlnaW5hbEl0ZW1SZWN0c1t0aGlzLnRhcmdldEluZGV4XTtpZighSWV8fCFaZXx8IVNlKXt0aGlzLmNsZWFudXBEcmFnU3RhdGUoaGUsaWUpO3JldHVybn1sZXQgSzt0aGlzLnRhcmdldEluZGV4PnRoaXMuZHJhZ2dlZEluZGV4P0s9WmUuYm90dG9tLUllLmJvdHRvbTpLPVplLnRvcC1JZS50b3AsU2Uuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtIDAuMTVzIGVhc2UiLFNlLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke0t9cHgpYDtsZXQgWj0hMSxKPSgpPT57aWYoWilyZXR1cm47Wj0hMCxTZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixKKSxoZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxoZT8ub2Zmc2V0SGVpZ2h0LGllPy5mb3JFYWNoKFVlPT57VWUuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksVWUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLFVlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KTtsZXQgbWU9Wy4uLnRoaXMudmFsdWVdLFtFZV09bWUuc3BsaWNlKHRoaXMuZHJhZ2dlZEluZGV4LDEpO21lLnNwbGljZSh0aGlzLnRhcmdldEluZGV4LDAsRWUpLHRoaXMudmFsdWU9bWUsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy5kcmFnZ2VkSW5kZXg9LTEsdGhpcy5kcmFnT3ZlckluZGV4PS0xLHRoaXMudGFyZ2V0SW5kZXg9LTEsdGhpcy5kcmFnU3RhcnRZPTAsdGhpcy5kcmFnQ3VycmVudFk9MCx0aGlzLm9yaWdpbmFsSXRlbVJlY3RzPVtdLHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKT0+e2xldCBVZT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5saXN0LWl0ZW0iKTtVZT8uZm9yRWFjaChNdD0+e010LnN0eWxlLnRyYW5zaXRpb249Im5vbmUifSksdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubGlzdC1pdGVtcyIpPy5vZmZzZXRIZWlnaHQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57VWU/LmZvckVhY2goTXQ9PntNdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNpdGlvbiIpfSksaGU/LmNsYXNzTGlzdC5yZW1vdmUoImRyb3BwaW5nIiwiaXMtZHJhZ2dpbmciKX0pfSl9O1NlLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLEose29uY2U6ITB9KSxzZXRUaW1lb3V0KEosMjAwKX1jbGVhbnVwRHJhZ1N0YXRlKGhlLGllKXtoZT8uY2xhc3NMaXN0LmFkZCgiZHJvcHBpbmciKSxoZT8ub2Zmc2V0SGVpZ2h0LGllPy5mb3JFYWNoKFNlPT57U2UuY2xhc3NMaXN0LnJlbW92ZSgibW92ZS11cCIsIm1vdmUtZG93biIsImRyYWdnaW5nIiksU2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zZm9ybSIpLFNlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSx0aGlzLmRyYWdnZWRJbmRleD0tMSx0aGlzLmRyYWdPdmVySW5kZXg9LTEsdGhpcy50YXJnZXRJbmRleD0tMSx0aGlzLmRyYWdTdGFydFk9MCx0aGlzLmRyYWdDdXJyZW50WT0wLHRoaXMub3JpZ2luYWxJdGVtUmVjdHM9W10sdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57bGV0IFNlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmxpc3QtaXRlbSIpO1NlPy5mb3JFYWNoKEllPT57SWUuc3R5bGUudHJhbnNpdGlvbj0ibm9uZSJ9KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5saXN0LWl0ZW1zIik/Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntTZT8uZm9yRWFjaChJZT0+e0llLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJ0cmFuc2l0aW9uIil9KSxoZT8uY2xhc3NMaXN0LnJlbW92ZSgiZHJvcHBpbmciLCJpcy1kcmFnZ2luZyIpfSl9KX1oYW5kbGVEcmFnRW5kKCl7dGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKCl9aGFuZGxlRHJhZ092ZXIoaGUsaWUpeyF0aGlzLnNvcnRhYmxlfHx0aGlzLmRpc2FibGVkfHwoaGUucHJldmVudERlZmF1bHQoKSxoZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0ibW92ZSIpfWhhbmRsZURyYWdMZWF2ZSgpe31oYW5kbGVEcm9wKGhlLGllKXshdGhpcy5zb3J0YWJsZXx8dGhpcy5kaXNhYmxlZHx8aGUucHJldmVudERlZmF1bHQoKX1lbWl0Q2hhbmdlKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2hhbmdlIix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoaGUpe3RoaXMudmFsdWU9aGV8fFtdfWFzeW5jIHZhbGlkYXRlKCl7cmV0dXJuIHRoaXMucmVxdWlyZWQmJighdGhpcy52YWx1ZXx8dGhpcy52YWx1ZS5sZW5ndGg9PT0wKT8odGhpcy52YWxpZGF0aW9uVGV4dD0iQXQgbGVhc3Qgb25lIGl0ZW0gaXMgcmVxdWlyZWQiLCExKTp0aGlzLm1pbkl0ZW1zJiZ0aGlzLnZhbHVlLmxlbmd0aDx0aGlzLm1pbkl0ZW1zPyh0aGlzLnZhbGlkYXRpb25UZXh0PWBBdCBsZWFzdCAke3RoaXMubWluSXRlbXN9IGl0ZW1zIHJlcXVpcmVkYCwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfXN0YXRpY3tkcihpLHIpfX07cmV0dXJuIENlPWl9KSgpfSk7dmFyIE0wcj1wKCgpPT57dzByKCl9KTt2YXIgazByPXAoKCk9PntTNmUoKX0pO3ZhciBTMHI9cCgoKT0+e3o2ZSgpfSk7dmFyIHowcj1wKCgpPT57ZzZlKCl9KTt2YXIgQzByPXAoKCk9PntJTigpfSk7dmFyIFQwcixfMHI9cCgoKT0+e3hlKCk7cDEoKTtYNmUoKTtPaSgpO1Qwcj0oKT0+Q2AKICA8ZGVlcy1kZW1vd3JhcHBlcj4KICAgIDxzdHlsZT4KICAgICAgJHtvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmM2Y0ZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzM3NDE1MTsKICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzJjMmMyYzsKICAgICAgICAgICAgY29sb3I6ICNlNGU0ZTc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiMS4gQmFzaWMgUmljaCBUZXh0IEVkaXRvciJ9IC5zdWJ0aXRsZT0keyJBIGZ1bGwtZmVhdHVyZWQgcmljaCB0ZXh0IGVkaXRvciB3aXRoIGZvcm1hdHRpbmcgdG9vbGJhciJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IkFydGljbGUgQ29udGVudCJ9IAogICAgICAgICAgLnZhbHVlPSR7JzxoMT5XZWxjb21lIHRvIHRoZSBSaWNoIFRleHQgRWRpdG9yITwvaDE+PHA+VGhpcyBpcyBhIGZlYXR1cmUtcmljaCBlZGl0b3IgYnVpbHQgd2l0aCBUaXBUYXAuIFlvdSBjYW46PC9wPjx1bD48bGk+PHN0cm9uZz5Gb3JtYXQgdGV4dDwvc3Ryb25nPiB3aXRoIDxlbT52YXJpb3VzPC9lbT4gPHU+c3R5bGVzPC91PjwvbGk+PGxpPkNyZWF0ZSBkaWZmZXJlbnQgaGVhZGluZyBsZXZlbHM8L2xpPjxsaT5BZGQgPGEgaHJlZj0iaHR0cHM6Ly9leGFtcGxlLmNvbSI+bGlua3M8L2E+IHRvIGV4dGVybmFsIHJlc291cmNlczwvbGk+PGxpPldyaXRlIDxjb2RlPmlubGluZSBjb2RlPC9jb2RlPiBvciBjb2RlIGJsb2NrczwvbGk+PC91bD48YmxvY2txdW90ZT48cD5Vc2UgdGhlIHRvb2xiYXIgYWJvdmUgdG8gZXhwbG9yZSBhbGwgdGhlIGZvcm1hdHRpbmcgb3B0aW9ucyBhdmFpbGFibGUhPC9wPjwvYmxvY2txdW90ZT48cD5TdGFydCB0eXBpbmcgdG8gc2VlIHRoZSBtYWdpYyBoYXBwZW4uLi48L3A+J30KICAgICAgICAgIC5kZXNjcmlwdGlvbj0keyJVc2UgdGhlIHRvb2xiYXIgdG8gZm9ybWF0IHlvdXIgY29udGVudCB3aXRoIGhlYWRpbmdzLCBsaXN0cywgbGlua3MsIGFuZCBtb3JlIn0KICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFdpdGggUGxhY2Vob2xkZXIifSAuc3VidGl0bGU9JHsiRW1wdHkgZWRpdG9yIHdpdGggcGxhY2Vob2xkZXIgdGV4dCJ9PgogICAgICAgIDxkZWVzLWlucHV0LXJpY2h0ZXh0IAogICAgICAgICAgLmxhYmVsPSR7IkJsb2cgUG9zdCJ9IAogICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlN0YXJ0IHdyaXRpbmcgeW91ciBibG9nIHBvc3QgaGVyZS4uLiJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIzLiBEaWZmZXJlbnQgSGVpZ2h0cyJ9IC5zdWJ0aXRsZT0keyJFZGl0b3JzIHdpdGggZGlmZmVyZW50IG1pbmltdW0gaGVpZ2h0cyBmb3IgdmFyaW91cyB1c2UgY2FzZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgICAgLmxhYmVsPSR7IlNob3J0IE5vdGUifSAKICAgICAgICAgICAgLm1pbkhlaWdodD0kezE1MH0KICAgICAgICAgICAgLnBsYWNlaG9sZGVyPSR7IlF1aWNrIG5vdGUuLi4ifQogICAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yaWNodGV4dD4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcmljaHRleHQgCiAgICAgICAgICAgIC5sYWJlbD0keyJFeHRlbmRlZCBDb250ZW50In0gCiAgICAgICAgICAgIC5taW5IZWlnaHQ9JHszMDB9CiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj0keyJXcml0ZSB5b3VyIGV4dGVuZGVkIGNvbnRlbnQgaGVyZS4uLiJ9CiAgICAgICAgICAgIC5zaG93V29yZENvdW50PSR7ITB9CiAgICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNC4gQ29kZSBFeGFtcGxlcyJ9IC5zdWJ0aXRsZT0keyJFZGl0b3IgcHJlLWZpbGxlZCB3aXRoIGNvZGUgZXhhbXBsZXMifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJUZWNobmljYWwgRG9jdW1lbnRhdGlvbiJ9IAogICAgICAgICAgLnZhbHVlPSR7JzxoMj5JbnN0YWxsYXRpb24gR3VpZGU8L2gyPjxwPlRvIGluc3RhbGwgdGhlIHBhY2thZ2UsIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6PC9wPjxwcmU+PGNvZGU+bnBtIGluc3RhbGwgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nPC9jb2RlPjwvcHJlPjxwPlRoZW4gaW1wb3J0IHRoZSBjb21wb25lbnQgaW4geW91ciBUeXBlU2NyaXB0IGZpbGU6PC9wPjxwcmU+PGNvZGU+aW1wb3J0IHsgRGVlc0lucHV0UmljaHRleHQgfSBmcm9tICJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciOzwvY29kZT48L3ByZT48cD5Zb3UgY2FuIG5vdyB1c2UgdGhlIDxjb2RlPiZsdDtkZWVzLWlucHV0LXJpY2h0ZXh0Jmd0OzwvY29kZT4gZWxlbWVudCBpbiB5b3VyIHRlbXBsYXRlcy48L3A+J30KICAgICAgICAgIC5taW5IZWlnaHQ9JHsyNTB9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI1LiBEaXNhYmxlZCBTdGF0ZSJ9IC5zdWJ0aXRsZT0keyJSZWFkLW9ubHkgcmljaCB0ZXh0IGNvbnRlbnQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIC5sYWJlbD0keyJQdWJsaXNoZWQgQXJ0aWNsZSAoUmVhZCBPbmx5KSJ9IAogICAgICAgICAgLnZhbHVlPSR7JzxoMj5UaGUgRnV0dXJlIG9mIFdlYiBDb21wb25lbnRzPC9oMj48cD5XZWIgQ29tcG9uZW50cyBoYXZlIHJldm9sdXRpb25pemVkIGhvdyB3ZSBidWlsZCBtb2Rlcm4gd2ViIGFwcGxpY2F0aW9ucy4uLjwvcD48YmxvY2txdW90ZT48cD4iVGhlIGZ1dHVyZSBvZiB3ZWIgZGV2ZWxvcG1lbnQgbGllcyBpbiByZXVzYWJsZSwgZW5jYXBzdWxhdGVkIGNvbXBvbmVudHMuIjwvcD48L2Jsb2NrcXVvdGU+J30KICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgLnNob3dXb3JkQ291bnQ9JHshMH0KICAgICAgICA+PC9kZWVzLWlucHV0LXJpY2h0ZXh0PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICAgIAogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNi4gSW50ZXJhY3RpdmUgRGVtbyJ9IC5zdWJ0aXRsZT0keyJUeXBlIGluIHRoZSBlZGl0b3IgYmVsb3cgYW5kIHNlZSB0aGUgSFRNTCBvdXRwdXQifT4KICAgICAgICA8ZGVlcy1pbnB1dC1yaWNodGV4dCAKICAgICAgICAgIGlkPSJpbnRlcmFjdGl2ZS1lZGl0b3IiCiAgICAgICAgICAubGFiZWw9JHsiVHJ5IGl0IHlvdXJzZWxmIn0gCiAgICAgICAgICAucGxhY2Vob2xkZXI9JHsiVHlwZSBzb21ldGhpbmcgaGVyZS4uLiJ9CiAgICAgICAgICAuc2hvd1dvcmRDb3VudD0keyEwfQogICAgICAgICAgQGNoYW5nZT0ke2U9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0LXByZXZpZXciKTt0JiYodC50ZXh0Q29udGVudD1lLmRldGFpbC52YWx1ZSl9fQogICAgICAgID48L2RlZXMtaW5wdXQtcmljaHRleHQ+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LXByZXZpZXciIGlkPSJvdXRwdXQtcHJldmlldyI+CiAgICAgICAgICA8ZW0+SFRNTCBvdXRwdXQgd2lsbCBhcHBlYXIgaGVyZS4uLjwvZW0+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYH0pO3ZhciBMMHIsQTByPXAoKCk9Pnt4ZSgpO00xKCk7TDByPVsuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmb250LWZhbWlseTogSW50ZXIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5My45JSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgbWluLWhlaWdodDogJHttLmJkVGhlbWUoIjIwMHB4IiwiMjAwcHgiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg5LjglKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250YWluZXI6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDc5LjglKSIsImhzbCgwIDAlIDIwLjklKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250YWluZXIuZm9jdXNlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci10b29sYmFyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTUuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgfQoKICAgICAgLnRvb2xiYXItYnV0dG9uLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246ZGlzYWJsZWQgewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICAudG9vbGJhci1kaXZpZGVyIHsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbjogMCA0cHg7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tbWluLWhlaWdodCwgMjAwcHgpOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgbWluLWhlaWdodDogMTAwJTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwIHsKICAgICAgICBtYXJnaW46IDAuNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcDpmaXJzdC1jaGlsZCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgaDEgewogICAgICAgIGZvbnQtc2l6ZTogMmVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGgzIHsKICAgICAgICBmb250LXNpemU6IDEuMjVlbTsKICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICBtYXJnaW46IDFlbSAwIDAuNWVtIDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciB1bCwKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBvbCB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVlbTsKICAgICAgICBtYXJnaW46IDAuNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgbGkgewogICAgICAgIG1hcmdpbjogMC4yNWVtIDA7CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgYmxvY2txdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIG1hcmdpbjogMWVtIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCAnRmlyYSBDb2RlJywgJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgJ1JvYm90byBNb25vJywgQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgfQoKICAgICAgLmVkaXRvci1jb250ZW50IC5Qcm9zZU1pcnJvciBwcmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAzLjklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5OCUpIiwiaHNsKDAgMCUgMy45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHBhZGRpbmc6IDFlbTsKICAgICAgICBtYXJnaW46IDFlbSAwOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItY29udGVudCAuUHJvc2VNaXJyb3IgcHJlIGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAwOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGEgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSkiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgLlByb3NlTWlycm9yIGE6aG92ZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDQxLjIlKSIsImhzbCgyMTcuMiA5MS4yJSA2OS44JSkiKX07CiAgICAgIH0KCiAgICAgIC5lZGl0b3ItZm9vdGVyIHsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuNCAxNi4zJSA0Ni45JSkiLCJoc2woMjE1IDIwLjIlIDY1LjElKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICB9CgogICAgICAud29yZC1jb3VudCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC5zaG93IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQgaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMuOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOwogICAgICB9CgogICAgICAubGluay1pbnB1dCBpbnB1dDpmb2N1cyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoImhzbCgwIDAlIDklIC8gMC4wNSkiLCJoc2woMCAwJSA5OCUgLyAwLjA1KSIpfTsKICAgICAgfQoKICAgICAgLmxpbmstaW5wdXQtYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODkuOCUpIiwiaHNsKDAgMCUgMTQuOSUpIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1LjElKSIsImhzbCgwIDAlIDYzLjklKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk1JSkiKX07CiAgICAgIH0KCiAgICAgIC5saW5rLWlucHV0LWJ1dHRvbnMgYnV0dG9uLnByaW1hcnkgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSAzLjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICB9CgogICAgICAubGluay1pbnB1dC1idXR0b25zIGJ1dHRvbi5wcmltYXJ5OmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkzLjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTMuOSUpIil9OwogICAgICB9CgogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIG1hcmdpbi10b3A6IDhweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjQgMTYuMyUgNDYuOSUpIiwiaHNsKDIxNSAyMC4yJSA2NS4xJSkiKX07CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgfQoKICAgICAgOmhvc3QoW2Rpc2FibGVkXSkgLmVkaXRvci1jb250YWluZXIgewogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICB9CgogICAgICA6aG9zdChbZGlzYWJsZWRdKSAudG9vbGJhci1idXR0b24sCiAgICAgIDpob3N0KFtkaXNhYmxlZF0pIC5lZGl0b3ItY29udGVudCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KICAgIGBdfSk7dmFyIEQwcixFMHI9cCgoKT0+e3hlKCk7RDByPWU9PkNgCiAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcHBlciI+CiAgICAgICAgICAke2UubGFiZWw/Q2A8bGFiZWwgY2xhc3M9ImxhYmVsIj4ke2UubGFiZWx9PC9sYWJlbD5gOiIifQogICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWNvbnRhaW5lciAke2UuZWRpdG9yPy5pc0ZvY3VzZWQ/ImZvY3VzZWQiOiIifSIgc3R5bGU9Ii0tbWluLWhlaWdodDogJHtlLm1pbkhlaWdodH1weCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci10b29sYmFyIj4KICAgICAgICAgICAgICAke2UucmVuZGVyVG9vbGJhcigpfQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW5wdXQgJHtlLnNob3dMaW5rSW5wdXQ/InNob3ciOiIifSI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idXJsIiBwbGFjZWhvbGRlcj0iRW50ZXIgVVJMLi4uIiBAa2V5ZG93bj0ke2UuaGFuZGxlTGlua0lucHV0S2V5ZG93bn0gLz4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW5wdXQtYnV0dG9ucyI+CiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InByaW1hcnkiIEBjbGljaz0ke2Uuc2F2ZUxpbmt9PlNhdmU8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBAY2xpY2s9JHtlLnJlbW92ZUxpbmt9PlJlbW92ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz0ke2UuaGlkZUxpbmtJbnB1dH0+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1jb250ZW50Ij48L2Rpdj4KICAgICAgICAgICAgJHtlLnNob3dXb3JkQ291bnQ/Q2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWZvb3RlciI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9IndvcmQtY291bnQiPiR7ZS53b3JkQ291bnR9IHdvcmQke2Uud29yZENvdW50IT09MT8icyI6IiJ9PC9zcGFuPgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICR7ZS5kZXNjcmlwdGlvbj9DYDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4ke2UuZGVzY3JpcHRpb259PC9kaXY+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYH0pO3ZhciBHZCxRbiwkMHIsWDZlPXAoKCk9PntNMSgpO18wcigpO0EwcigpO0UwcigpO29yKCk7eGUoKTtCNCgpO0dkPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sUW49ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LCQwcj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtcmljaHRleHQiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOkJvb2xlYW59KV0seD1baih7dHlwZTpOdW1iZXJ9KV0seT1bZmUoKV0sTz1bZmUoKV0sR2QodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+InZhbHVlImluIE4sZ2V0Ok49Pk4udmFsdWUsc2V0OihOLFIpPT57Ti52YWx1ZT1SfX0sbWV0YWRhdGE6RH0sbyxzKSxHZCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4icGxhY2Vob2xkZXIiaW4gTixnZXQ6Tj0+Ti5wbGFjZWhvbGRlcixzZXQ6KE4sUik9PntOLnBsYWNlaG9sZGVyPVJ9fSxtZXRhZGF0YTpEfSxjLHUpLEdkKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dvcmRDb3VudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+InNob3dXb3JkQ291bnQiaW4gTixnZXQ6Tj0+Ti5zaG93V29yZENvdW50LHNldDooTixSKT0+e04uc2hvd1dvcmRDb3VudD1SfX0sbWV0YWRhdGE6RH0saCxmKSxHZCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pbkhlaWdodCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+Im1pbkhlaWdodCJpbiBOLGdldDpOPT5OLm1pbkhlaWdodCxzZXQ6KE4sUik9PntOLm1pbkhlaWdodD1SfX0sbWV0YWRhdGE6RH0sdixiKSxHZCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dMaW5rSW5wdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJzaG93TGlua0lucHV0ImluIE4sZ2V0Ok49Pk4uc2hvd0xpbmtJbnB1dCxzZXQ6KE4sUik9PntOLnNob3dMaW5rSW5wdXQ9Un19LG1ldGFkYXRhOkR9LHcsayksR2QodGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3b3JkQ291bnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJ3b3JkQ291bnQiaW4gTixnZXQ6Tj0+Ti53b3JkQ291bnQsc2V0OihOLFIpPT57Ti53b3JkQ291bnQ9Un19LG1ldGFkYXRhOkR9LHosTSksR2QobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCxyKSxGPWk9dC52YWx1ZSxEJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkR9KX1zdGF0aWMgZGVtbz1UMHI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPVFuKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKEQpe3RoaXMuI2U9RH0jdD0oUW4odGhpcyxzKSxRbih0aGlzLGMsIiIpKTtnZXQgcGxhY2Vob2xkZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcGxhY2Vob2xkZXIoRCl7dGhpcy4jdD1EfSNyPShRbih0aGlzLHUpLFFuKHRoaXMsaCwhMCkpO2dldCBzaG93V29yZENvdW50KCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNob3dXb3JkQ291bnQoRCl7dGhpcy4jcj1EfSNpPShRbih0aGlzLGYpLFFuKHRoaXMsdiwyMDApKTtnZXQgbWluSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2l9c2V0IG1pbkhlaWdodChEKXt0aGlzLiNpPUR9I2E9KFFuKHRoaXMsYiksUW4odGhpcyx3LCExKSk7Z2V0IHNob3dMaW5rSW5wdXQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2hvd0xpbmtJbnB1dChEKXt0aGlzLiNhPUR9I249KFFuKHRoaXMsayksUW4odGhpcyx6LDApKTtnZXQgd29yZENvdW50KCl7cmV0dXJuIHRoaXMuI259c2V0IHdvcmRDb3VudChEKXt0aGlzLiNuPUR9ZWRpdG9yRWxlbWVudD1Rbih0aGlzLE0pO2xpbmtJbnB1dEVsZW1lbnQ7dGlwdGFwQnVuZGxlPW51bGw7ZWRpdG9yO3N0YXRpYyBzdHlsZXM9TDByO3JlbmRlcigpe3JldHVybiBEMHIodGhpcyl9cmVuZGVyVG9vbGJhcigpe2xldCBEPXRoaXMuZ2V0VG9vbGJhckJ1dHRvbnMoKTtyZXR1cm4gQ2AKICAgICAgJHtELm1hcChOPT5OLmlzRGl2aWRlcj9DYDxkaXYgY2xhc3M9InRvb2xiYXItZGl2aWRlciI+PC9kaXY+YDpDYAogICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24gJHtOLmlzQWN0aXZlPy4oKT8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke04uYWN0aW9ufQogICAgICAgICAgICB0aXRsZT0ke04udGl0bGV9CiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR8fCF0aGlzLmVkaXRvcn0KICAgICAgICAgID4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0ke04uaWNvbn0+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgIGB9Z2V0VG9vbGJhckJ1dHRvbnMoKXtyZXR1cm4gdGhpcy5lZGl0b3I/W3tuYW1lOiJib2xkIixpY29uOiJsdWNpZGU6Ym9sZCIsdGl0bGU6IkJvbGQgKEN0cmwrQikiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJvbGQoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImJvbGQiKX0se25hbWU6Iml0YWxpYyIsaWNvbjoibHVjaWRlOml0YWxpYyIsdGl0bGU6Ikl0YWxpYyAoQ3RybCtJKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSXRhbGljKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJpdGFsaWMiKX0se25hbWU6InVuZGVybGluZSIsaWNvbjoibHVjaWRlOnVuZGVybGluZSIsdGl0bGU6IlVuZGVybGluZSAoQ3RybCtVKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlVW5kZXJsaW5lKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJ1bmRlcmxpbmUiKX0se25hbWU6InN0cmlrZSIsaWNvbjoibHVjaWRlOnN0cmlrZXRocm91Z2giLHRpdGxlOiJTdHJpa2V0aHJvdWdoIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVTdHJpa2UoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoInN0cmlrZSIpfSx7bmFtZToiZGl2aWRlcjEiLHRpdGxlOiIiLGlzRGl2aWRlcjohMH0se25hbWU6ImgxIixpY29uOiJsdWNpZGU6aGVhZGluZzEiLHRpdGxlOiJIZWFkaW5nIDEiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUhlYWRpbmcoe2xldmVsOjF9KS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImhlYWRpbmciLHtsZXZlbDoxfSl9LHtuYW1lOiJoMiIsaWNvbjoibHVjaWRlOmhlYWRpbmcyIix0aXRsZToiSGVhZGluZyAyIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVIZWFkaW5nKHtsZXZlbDoyfSkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJoZWFkaW5nIix7bGV2ZWw6Mn0pfSx7bmFtZToiaDMiLGljb246Imx1Y2lkZTpoZWFkaW5nMyIsdGl0bGU6IkhlYWRpbmcgMyIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7bGV2ZWw6M30pLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiaGVhZGluZyIse2xldmVsOjN9KX0se25hbWU6ImRpdmlkZXIyIix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJidWxsZXRMaXN0IixpY29uOiJsdWNpZGU6bGlzdCIsdGl0bGU6IkJ1bGxldCBMaXN0IixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVCdWxsZXRMaXN0KCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJidWxsZXRMaXN0Iil9LHtuYW1lOiJvcmRlcmVkTGlzdCIsaWNvbjoibHVjaWRlOmxpc3RPcmRlcmVkIix0aXRsZToiTnVtYmVyZWQgTGlzdCIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlT3JkZXJlZExpc3QoKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoIm9yZGVyZWRMaXN0Iil9LHtuYW1lOiJibG9ja3F1b3RlIixpY29uOiJsdWNpZGU6cXVvdGUiLHRpdGxlOiJRdW90ZSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQmxvY2txdW90ZSgpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiYmxvY2txdW90ZSIpfSx7bmFtZToiY29kZSIsaWNvbjoibHVjaWRlOmNvZGUiLHRpdGxlOiJDb2RlIixhY3Rpb246KCk9PnRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVDb2RlKCkucnVuKCksaXNBY3RpdmU6KCk9PnRoaXMuZWRpdG9yLmlzQWN0aXZlKCJjb2RlIil9LHtuYW1lOiJjb2RlQmxvY2siLGljb246Imx1Y2lkZTpmaWxlQ29kZSIsdGl0bGU6IkNvZGUgQmxvY2siLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGVCbG9jaygpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSgiY29kZUJsb2NrIil9LHtuYW1lOiJkaXZpZGVyMyIsdGl0bGU6IiIsaXNEaXZpZGVyOiEwfSx7bmFtZToibGluayIsaWNvbjoibHVjaWRlOmxpbmsiLHRpdGxlOiJBZGQgTGluayIsYWN0aW9uOigpPT50aGlzLnRvZ2dsZUxpbmsoKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoImxpbmsiKX0se25hbWU6ImFsaWduTGVmdCIsaWNvbjoibHVjaWRlOmFsaWduTGVmdCIsdGl0bGU6IkFsaWduIExlZnQiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldFRleHRBbGlnbigibGVmdCIpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJsZWZ0In0pfSx7bmFtZToiYWxpZ25DZW50ZXIiLGljb246Imx1Y2lkZTphbGlnbkNlbnRlciIsdGl0bGU6IkFsaWduIENlbnRlciIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJjZW50ZXIiKS5ydW4oKSxpc0FjdGl2ZTooKT0+dGhpcy5lZGl0b3IuaXNBY3RpdmUoe3RleHRBbGlnbjoiY2VudGVyIn0pfSx7bmFtZToiYWxpZ25SaWdodCIsaWNvbjoibHVjaWRlOmFsaWduUmlnaHQiLHRpdGxlOiJBbGlnbiBSaWdodCIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkuc2V0VGV4dEFsaWduKCJyaWdodCIpLnJ1bigpLGlzQWN0aXZlOigpPT50aGlzLmVkaXRvci5pc0FjdGl2ZSh7dGV4dEFsaWduOiJyaWdodCJ9KX0se25hbWU6ImRpdmlkZXI0Iix0aXRsZToiIixpc0RpdmlkZXI6ITB9LHtuYW1lOiJ1bmRvIixpY29uOiJsdWNpZGU6dW5kbyIsdGl0bGU6IlVuZG8gKEN0cmwrWikiLGFjdGlvbjooKT0+dGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnVuZG8oKS5ydW4oKX0se25hbWU6InJlZG8iLGljb246Imx1Y2lkZTpyZWRvIix0aXRsZToiUmVkbyAoQ3RybCtZKSIsYWN0aW9uOigpPT50aGlzLmVkaXRvci5jaGFpbigpLmZvY3VzKCkucmVkbygpLnJ1bigpfV06W119YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLnRpcHRhcEJ1bmRsZT1hd2FpdCByYS5nZXRJbnN0YW5jZSgpLmxvYWRUaXB0YXAoKSx0aGlzLmVkaXRvckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0b3ItY29udGVudCIpLHRoaXMubGlua0lucHV0RWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmxpbmstaW5wdXQgaW5wdXQiKSx0aGlzLmluaXRpYWxpemVFZGl0b3IoKX1pbml0aWFsaXplRWRpdG9yKCl7aWYodGhpcy5kaXNhYmxlZHx8IXRoaXMudGlwdGFwQnVuZGxlKXJldHVybjtsZXR7RWRpdG9yOkQsU3RhcnRlcktpdDpOLFVuZGVybGluZTpSLFRleHRBbGlnbjpfLExpbms6UyxUeXBvZ3JhcGh5OiR9PXRoaXMudGlwdGFwQnVuZGxlO3RoaXMuZWRpdG9yPW5ldyBEKHtlbGVtZW50OnRoaXMuZWRpdG9yRWxlbWVudCxleHRlbnNpb25zOltOLmNvbmZpZ3VyZSh7aGVhZGluZzp7bGV2ZWxzOlsxLDIsM119fSksUi5jb25maWd1cmUoe30pLF8uY29uZmlndXJlKHt0eXBlczpbImhlYWRpbmciLCJwYXJhZ3JhcGgiXX0pLFMuY29uZmlndXJlKHtvcGVuT25DbGljazohMSxIVE1MQXR0cmlidXRlczp7Y2xhc3M6ImVkaXRvci1saW5rIn19KSwkLmNvbmZpZ3VyZSh7fSldLGNvbnRlbnQ6dGhpcy52YWx1ZXx8KHRoaXMucGxhY2Vob2xkZXI/YDxwPiR7dGhpcy5wbGFjZWhvbGRlcn08L3A+YDoiIiksb25VcGRhdGU6KHtlZGl0b3I6VH0pPT57dGhpcy52YWx1ZT1ULmdldEhUTUwoKSx0aGlzLnVwZGF0ZVdvcmRDb3VudCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImlucHV0Iix7ZGV0YWlsOnt2YWx1ZTp0aGlzLnZhbHVlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0sb25TZWxlY3Rpb25VcGRhdGU6KCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX0sb25Gb2N1czooKT0+e3RoaXMucmVxdWVzdFVwZGF0ZSgpfSxvbkJsdXI6KCk9Pnt0aGlzLnJlcXVlc3RVcGRhdGUoKX19KSx0aGlzLnVwZGF0ZVdvcmRDb3VudCgpfXVwZGF0ZVdvcmRDb3VudCgpe2lmKCF0aGlzLmVkaXRvcilyZXR1cm47bGV0IEQ9dGhpcy5lZGl0b3IuZ2V0VGV4dCgpO3RoaXMud29yZENvdW50PUQudHJpbSgpP0QudHJpbSgpLnNwbGl0KC9ccysvKS5sZW5ndGg6MH10b2dnbGVMaW5rKCl7aWYodGhpcy5lZGl0b3IpaWYodGhpcy5lZGl0b3IuaXNBY3RpdmUoImxpbmsiKSl7bGV0IEQ9dGhpcy5lZGl0b3IuZ2V0QXR0cmlidXRlcygibGluayIpLmhyZWY7dGhpcy5zaG93TGlua0lucHV0PSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMubGlua0lucHV0RWxlbWVudCYmKHRoaXMubGlua0lucHV0RWxlbWVudC52YWx1ZT1EfHwiIix0aGlzLmxpbmtJbnB1dEVsZW1lbnQuZm9jdXMoKSx0aGlzLmxpbmtJbnB1dEVsZW1lbnQuc2VsZWN0KCkpfSl9ZWxzZSB0aGlzLnNob3dMaW5rSW5wdXQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5saW5rSW5wdXRFbGVtZW50JiYodGhpcy5saW5rSW5wdXRFbGVtZW50LnZhbHVlPSIiLHRoaXMubGlua0lucHV0RWxlbWVudC5mb2N1cygpKX0pfXNhdmVMaW5rKCl7aWYoIXRoaXMuZWRpdG9yfHwhdGhpcy5saW5rSW5wdXRFbGVtZW50KXJldHVybjtsZXQgRD10aGlzLmxpbmtJbnB1dEVsZW1lbnQudmFsdWU7RCYmdGhpcy5lZGl0b3IuY2hhaW4oKS5mb2N1cygpLnNldExpbmsoe2hyZWY6RH0pLnJ1bigpLHRoaXMuaGlkZUxpbmtJbnB1dCgpfXJlbW92ZUxpbmsoKXt0aGlzLmVkaXRvciYmKHRoaXMuZWRpdG9yLmNoYWluKCkuZm9jdXMoKS51bnNldExpbmsoKS5ydW4oKSx0aGlzLmhpZGVMaW5rSW5wdXQoKSl9aGlkZUxpbmtJbnB1dCgpe3RoaXMuc2hvd0xpbmtJbnB1dD0hMSx0aGlzLmVkaXRvcj8uY29tbWFuZHMuZm9jdXMoKX1oYW5kbGVMaW5rSW5wdXRLZXlkb3duKEQpe0Qua2V5PT09IkVudGVyIj8oRC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2F2ZUxpbmsoKSk6RC5rZXk9PT0iRXNjYXBlIiYmKEQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZGVMaW5rSW5wdXQoKSl9c2V0VmFsdWUoRCl7dGhpcy52YWx1ZT1ELHRoaXMuZWRpdG9yJiZEIT09dGhpcy5lZGl0b3IuZ2V0SFRNTCgpJiZ0aGlzLmVkaXRvci5jb21tYW5kcy5zZXRDb250ZW50KEQpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9Y2xlYXIoKXt0aGlzLnNldFZhbHVlKCIiKX1mb2N1cygpe3RoaXMuZWRpdG9yPy5jb21tYW5kcy5mb2N1cygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmVkaXRvciYmdGhpcy5lZGl0b3IuZGVzdHJveSgpfXN0YXRpY3tRbihpLHIpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgSTByPXAoKCk9PntYNmUoKX0pO3ZhciBQMHI9cCgoKT0+e30pO3ZhciBOMHI9cCgoKT0+e1AwcigpfSk7dmFyIEYwcixPMHIsUjByPXAoKCk9Pnt4ZSgpO3AxKCk7T2koKTtPMHI9KCk9PkMoRjByfHwoRjByPXM1KFtgCiAgPGRlZXMtZGVtb3dyYXBwZXI+CiAgICA8c3R5bGU+CiAgICAgIGAsYAogICAgPC9zdHlsZT4KICAgIAogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10YWdzCiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgLnZhbHVlPWAsYAogICAgICAgICAgICAuZGVzY3JpcHRpb249YCxgCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgIC5tYXhUYWdzPWAsYAogICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgLmxhYmVsPWAsYAogICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgLmRlc2NyaXB0aW9uPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPWAsIiAuc3VidGl0bGU9IixgPgogICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgIC52YWx1ZT1gLGAKICAgICAgICAgIC5kaXNhYmxlZD1gLGAKICAgICAgICAgIC5kZXNjcmlwdGlvbj1gLGAKICAgICAgICA+PC9kZWVzLWlucHV0LXRhZ3M+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT1gLCIgLnN1YnRpdGxlPSIsYD4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgIC5wbGFjZWhvbGRlcj1gLGAKICAgICAgICAgICAgLnJlcXVpcmVkPWAsYAogICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWxheW91dCI+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAgIC5yZXF1aXJlZD1gLGAKICAgICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgICAgIC5zdWdnZXN0aW9ucz1gLGAKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAgICAgLmtleT1gLGAKICAgICAgICAgICAgICAubWF4VGFncz1gLGAKICAgICAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0CiAgICAgICAgICAgIC5sYWJlbD1gLGAKICAgICAgICAgICAgLmlucHV0VHlwZT1gLGAKICAgICAgICAgICAgLnBsYWNlaG9sZGVyPWAsYAogICAgICAgICAgICAua2V5PWAsYAogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdCAudGV4dD1gLGA+PC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9YCwiIC5zdWJ0aXRsZT0iLGA+CiAgICAgICAgPGRlZXMtaW5wdXQtdGFncwogICAgICAgICAgaWQ9ImludGVyYWN0aXZlLXRhZ3MiCiAgICAgICAgICAubGFiZWw9YCxgCiAgICAgICAgICAucGxhY2Vob2xkZXI9YCxgCiAgICAgICAgICAuc3VnZ2VzdGlvbnM9YCxgCiAgICAgICAgICBAY2hhbmdlPWAsYAogICAgICAgID48L2RlZXMtaW5wdXQtdGFncz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0YWctcHJldmlldyIgaWQ9InRhZ3MtcHJldmlldyI+CiAgICAgICAgICA8ZW0gc3R5bGU9ImNvbG9yOiAjOTk5OyI+Tm8gdGFncyBhZGRlZCB5ZXQuLi48L2VtPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBpZD0idGFncy1qc29uIj4KICAgICAgICAgIDxlbT5KU09OIG91dHB1dCB3aWxsIGFwcGVhciBoZXJlLi4uPC9lbT4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8c2NyaXB0PgogICAgICAgICAgLy8gVXBkYXRlIEpTT04gcHJldmlldwogICAgICAgICAgY29uc3QgdGFnc0lucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2ludGVyYWN0aXZlLXRhZ3MnKTsKICAgICAgICAgIHRhZ3NJbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgICAgICAgY29uc3QganNvblByZXZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGFncy1qc29uJyk7CiAgICAgICAgICAgIGlmIChqc29uUHJldmlldykgewogICAgICAgICAgICAgIGpzb25QcmV2aWV3LnRleHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkoZS5kZXRhaWwudmFsdWUsIG51bGwsIDIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICA8XC9zY3JpcHQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGl2PgogIDwvZGVlcy1kZW1vd3JhcHBlcj4KYF0pKSxvZWAKICAgICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZGVlcy1wYW5lbCB7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZWVzLXBhbmVsOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgICAgLmdyaWQtbGF5b3V0IHsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNmM2Y0ZjY7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICBjb2xvcjogIzM3NDE1MTsKICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsKICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgICAgLm91dHB1dC1wcmV2aWV3IHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzJjMmMyYzsKICAgICAgICAgICAgY29sb3I6ICNlNGU0ZTc7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50YWctcHJldmlldyB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgYmFja2dyb3VuZDogI2Y5ZmFmYjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgICAudGFnLXByZXZpZXcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMWYyOTM3OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGFnLXByZXZpZXctaXRlbSB7CiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICNlMGU3ZmY7CiAgICAgICAgICBjb2xvcjogIzQzMzhjYTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAgIC50YWctcHJldmlldy1pdGVtIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogIzMxMmU4MTsKICAgICAgICAgICAgY29sb3I6ICNjN2QyZmU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBgLCIxLiBCYXNpYyBUYWdzIElucHV0IiwiU2ltcGxlIHRhZyBpbnB1dCB3aXRoIGNvbW1vbiBwcm9ncmFtbWluZyBsYW5ndWFnZXMiLCJQcm9ncmFtbWluZyBMYW5ndWFnZXMiLCJBZGQgYSBsYW5ndWFnZS4uLiIsWyJKYXZhU2NyaXB0IiwiVHlwZVNjcmlwdCIsIlB5dGhvbiIsIkdvIl0sIlByZXNzIEVudGVyIG9yIGNvbW1hIHRvIGFkZCB0YWdzIiwiMi4gVGFncyB3aXRoIFN1Z2dlc3Rpb25zIiwiQXV0by1jb21wbGV0ZSBzdWdnZXN0aW9ucyBmb3IgZmFzdGVyIGlucHV0IiwiVGVjaCBTdGFjayIsIlR5cGUgdG8gc2VlIHN1Z2dlc3Rpb25zLi4uIixbIlJlYWN0IiwiVnVlIiwiQW5ndWxhciIsIlN2ZWx0ZSIsIkxpdCIsIk5leHQuanMiLCJOdXh0IiwiU3ZlbHRlS2l0IiwiTm9kZS5qcyIsIkRlbm8iLCJCdW4iLCJFeHByZXNzIiwiRmFzdGlmeSIsIk5lc3QuanMiLCJLb2EiLCJNb25nb0RCIiwiUG9zdGdyZVNRTCIsIlJlZGlzIiwiTXlTUUwiLCJTUUxpdGUiLCJDYXNzYW5kcmEiLCJEb2NrZXIiLCJLdWJlcm5ldGVzIiwiQVdTIiwiQXp1cmUiLCJHQ1AiLCJWZXJjZWwiLCJOZXRsaWZ5Il0sWyJSZWFjdCIsIk5vZGUuanMiLCJQb3N0Z3JlU1FMIiwiRG9ja2VyIl0sIlN0YXJ0IHR5cGluZyB0byBzZWUgc3VnZ2VzdGlvbnMgZnJvbSBwb3B1bGFyIHRlY2hub2xvZ2llcyIsIjMuIExpbWl0ZWQgVGFncyIsIlJlc3RyaWN0IHRoZSBudW1iZXIgb2YgdGFncyB1c2VycyBjYW4gYWRkIiwiVG9wIDMgU2tpbGxzIiwiQWRkIHVwIHRvIDMgc2tpbGxzLi4uIiwzLFsiRGVzaWduIiwiRGV2ZWxvcG1lbnQiXSwiTWF4aW11bSAzIHRhZ3MgYWxsb3dlZCIsIkNhdGVnb3JpZXMgKE1heCA1KSIsIlNlbGVjdCBjYXRlZ29yaWVzLi4uIiw1LFsiQmxvZyIsIlR1dG9yaWFsIiwiTmV3cyIsIlJldmlldyIsIkd1aWRlIiwiQ2FzZSBTdHVkeSIsIkludGVydmlldyJdLFsiVHV0b3JpYWwiLCJHdWlkZSJdLCJDaG9vc2UgdXAgdG8gNSBjYXRlZ29yaWVzIiwiNC4gUmVxdWlyZWQgJiBWYWxpZGF0aW9uIiwiVGFncyBpbnB1dCB3aXRoIHZhbGlkYXRpb24gcmVxdWlyZW1lbnRzIiwiUHJvamVjdCBUYWdzIiwiQWRkIGF0IGxlYXN0IG9uZSB0YWcuLi4iLCEwLCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIC0gYWRkIGF0IGxlYXN0IG9uZSB0YWciLCI1LiBEaXNhYmxlZCBTdGF0ZSIsIlJlYWQtb25seSB0YWdzIGRpc3BsYXkiLCJTeXN0ZW0gVGFncyIsWyJTeXN0ZW0iLCJQcm90ZWN0ZWQiLCJSZWFkLU9ubHkiLCJBcmNoaXZlIl0sITAsIlRoZXNlIHRhZ3MgY2Fubm90IGJlIG1vZGlmaWVkIiwiNi4gRm9ybSBJbnRlZ3JhdGlvbiIsIlRhZ3MgaW5wdXQgd29ya2luZyB3aXRoaW4gYSBmb3JtIGNvbnRleHQiLCJQcm9qZWN0IE5hbWUiLCJNeSBBd2Vzb21lIFByb2plY3QiLCEwLCJuYW1lIiwiVGVjaG5vbG9naWVzIFVzZWQiLCJBZGQgdGVjaG5vbG9naWVzLi4uIiwhMCwidGVjaG5vbG9naWVzIixbIlR5cGVTY3JpcHQiLCJKYXZhU2NyaXB0IiwiUHl0aG9uIiwiR28iLCJSdXN0IiwiUmVhY3QiLCJWdWUiLCJBbmd1bGFyIiwiU3ZlbHRlIiwiTm9kZS5qcyIsIkRlbm8iLCJFeHByZXNzIiwiRmFzdEFQSSJdLCJQcm9qZWN0IFRhZ3MiLCJBZGQgZGVzY3JpcHRpdmUgdGFncy4uLiIsInRhZ3MiLDEwLFsiZnJvbnRlbmQiLCJiYWNrZW5kIiwiZnVsbHN0YWNrIiwibW9iaWxlIiwiZGVza3RvcCIsIndlYiIsImFwaSIsImRhdGFiYXNlIiwiZGV2b3BzIiwidWkvdXgiLCJvcGVuc291cmNlIiwic2FhcyIsImVudGVycHJpc2UiLCJzdGFydHVwIl0sIkRlc2NyaXB0aW9uIiwidGV4dGFyZWEiLCJEZXNjcmliZSB5b3VyIHByb2plY3QuLi4iLCJkZXNjcmlwdGlvbiIsIkNyZWF0ZSBQcm9qZWN0IiwiNy4gSW50ZXJhY3RpdmUgRGVtbyIsIkFkZCB0YWdzIGFuZCBzZWUgdGhlbSBjb2xsZWN0ZWQgaW4gcmVhbC10aW1lIiwiWW91ciBJbnRlcmVzdHMiLCJUeXBlIHlvdXIgaW50ZXJlc3RzLi4uIixbIk11c2ljIiwiTW92aWVzIiwiQm9va3MiLCJUcmF2ZWwiLCJQaG90b2dyYXBoeSIsIkNvb2tpbmciLCJHYW1pbmciLCJTcG9ydHMiLCJBcnQiLCJUZWNobm9sb2d5IiwiRmFzaGlvbiIsIkZpdG5lc3MiLCJOYXR1cmUiLCJTY2llbmNlIiwiSGlzdG9yeSJdLGU9PntsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdGFncy1wcmV2aWV3Iikscj1lLmRldGFpbC52YWx1ZTt0JiYoci5sZW5ndGg9PT0wP3QuaW5uZXJIVE1MPSc8ZW0gc3R5bGU9ImNvbG9yOiAjOTk5OyI+Tm8gdGFncyBhZGRlZCB5ZXQuLi48L2VtPic6dC5pbm5lckhUTUw9ci5tYXAoaT0+YDxzcGFuIGNsYXNzPSJ0YWctcHJldmlldy1pdGVtIj4ke2l9PC9zcGFuPmApLmpvaW4oIiIpKX0pfSk7dmFyIGtjLGlhLEIwcixIMHI9cCgoKT0+e3hlKCk7TTEoKTtvcigpO1IwcigpO0plKCk7a2M9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxpYT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sQjByPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC10YWdzIildLHQscj1bXSxpLGE9b3QsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W107dmFyICQ9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBUPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6QXJyYXl9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpOdW1iZXJ9KV0seD1baih7dHlwZTpBcnJheX0pXSx5PVtmZSgpXSxPPVtmZSgpXSxGPVtmZSgpXSxSPVtqKHt0eXBlOlN0cmluZ30pXSxrYyh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4idmFsdWUiaW4gRSxnZXQ6RT0+RS52YWx1ZSxzZXQ6KEUscSk9PntFLnZhbHVlPXF9fSxtZXRhZGF0YTpUfSxvLHMpLGtjKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJwbGFjZWhvbGRlciJpbiBFLGdldDpFPT5FLnBsYWNlaG9sZGVyLHNldDooRSxxKT0+e0UucGxhY2Vob2xkZXI9cX19LG1ldGFkYXRhOlR9LGMsdSksa2ModGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtYXhUYWdzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4ibWF4VGFncyJpbiBFLGdldDpFPT5FLm1heFRhZ3Msc2V0OihFLHEpPT57RS5tYXhUYWdzPXF9fSxtZXRhZGF0YTpUfSxoLGYpLGtjKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3VnZ2VzdGlvbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJzdWdnZXN0aW9ucyJpbiBFLGdldDpFPT5FLnN1Z2dlc3Rpb25zLHNldDooRSxxKT0+e0Uuc3VnZ2VzdGlvbnM9cX19LG1ldGFkYXRhOlR9LHYsYiksa2ModGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbnB1dFZhbHVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4iaW5wdXRWYWx1ZSJpbiBFLGdldDpFPT5FLmlucHV0VmFsdWUsc2V0OihFLHEpPT57RS5pbnB1dFZhbHVlPXF9fSxtZXRhZGF0YTpUfSx3LGspLGtjKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1N1Z2dlc3Rpb25zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpFPT4ic2hvd1N1Z2dlc3Rpb25zImluIEUsZ2V0OkU9PkUuc2hvd1N1Z2dlc3Rpb25zLHNldDooRSxxKT0+e0Uuc2hvd1N1Z2dlc3Rpb25zPXF9fSxtZXRhZGF0YTpUfSx6LE0pLGtjKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkU9PiJoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCJpbiBFLGdldDpFPT5FLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4LHNldDooRSxxKT0+e0UuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9cX19LG1ldGFkYXRhOlR9LEQsTiksa2ModGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWxpZGF0aW9uVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6RT0+InZhbGlkYXRpb25UZXh0ImluIEUsZ2V0OkU9PkUudmFsaWRhdGlvblRleHQsc2V0OihFLHEpPT57RS52YWxpZGF0aW9uVGV4dD1xfX0sbWV0YWRhdGE6VH0sXyxTKSxrYyhudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpUfSxudWxsLHIpLCQ9aT10LnZhbHVlLFQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VH0pfXN0YXRpYyBkZW1vPU8wcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIklucHV0Il07I2U9aWEodGhpcyxvLFtdKTtnZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmFsdWUoVCl7dGhpcy4jZT1UfSN0PShpYSh0aGlzLHMpLGlhKHRoaXMsYywiQWRkIHRhZ3MuLi4iKSk7Z2V0IHBsYWNlaG9sZGVyKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBsYWNlaG9sZGVyKFQpe3RoaXMuI3Q9VH0jcj0oaWEodGhpcyx1KSxpYSh0aGlzLGgsMCkpO2dldCBtYXhUYWdzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1heFRhZ3MoVCl7dGhpcy4jcj1UfSNpPShpYSh0aGlzLGYpLGlhKHRoaXMsdixbXSkpO2dldCBzdWdnZXN0aW9ucygpe3JldHVybiB0aGlzLiNpfXNldCBzdWdnZXN0aW9ucyhUKXt0aGlzLiNpPVR9I2E9KGlhKHRoaXMsYiksaWEodGhpcyx3LCIiKSk7Z2V0IGlucHV0VmFsdWUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgaW5wdXRWYWx1ZShUKXt0aGlzLiNhPVR9I249KGlhKHRoaXMsayksaWEodGhpcyx6LCExKSk7Z2V0IHNob3dTdWdnZXN0aW9ucygpe3JldHVybiB0aGlzLiNufXNldCBzaG93U3VnZ2VzdGlvbnMoVCl7dGhpcy4jbj1UfSNvPShpYSh0aGlzLE0pLGlhKHRoaXMsRCwtMSkpO2dldCBoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCgpe3JldHVybiB0aGlzLiNvfXNldCBoaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleChUKXt0aGlzLiNvPVR9I3M9KGlhKHRoaXMsTiksaWEodGhpcyxfLCIiKSk7Z2V0IHZhbGlkYXRpb25UZXh0KCl7cmV0dXJuIHRoaXMuI3N9c2V0IHZhbGlkYXRpb25UZXh0KFQpe3RoaXMuI3M9VH1zdGF0aWMgc3R5bGVzPVtEZSwuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDZweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnRhZ3MtY29udGFpbmVyOmhvdmVyOm5vdCguZGlzYWJsZWQpIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA3OS44JSkiLCJoc2woMCAwJSAyMC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMjIuMiA0Ny40JSA1MS4yJSkiLCJoc2woMjE3LjIgOTEuMiUgNTkuOCUpIil9OwogICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCAke20uYmRUaGVtZSgiaHNsKDIyMi4yIDQ3LjQlIDUxLjIlIC8gMC4xKSIsImhzbCgyMTcuMiA5MS4yJSA1OS44JSAvIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC50YWdzLWNvbnRhaW5lci5kaXNhYmxlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1LjElKSIsImhzbCgwIDAlIDE0LjklKSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIC50YWcgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSAvIDAuMikiLCJoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4yKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUuMyAyNSUgMjYuNyUpIiwiaHNsKDIxNy45IDEwLjYlIDc0LjklKSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNSAyMC4yJSA2NS4xJSAvIDAuMykiLCJoc2woMjE1IDIwLjIlIDM1LjElIC8gMC4zKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiB0YWdBcHBlYXIgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyB0YWdBcHBlYXIgewogICAgICAgIGZyb20gewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTsKICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnRhZy1yZW1vdmUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMTRweDsKICAgICAgICBoZWlnaHQ6IDE0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS4zIDI1JSA0Ni43JSkiLCJoc2woMjE3LjkgMTAuNiUgNTQuOSUpIil9OwogICAgICB9CgogICAgICAudGFnLXJlbW92ZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4wOCkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1LjMgMjUlIDI2LjclKSIsImhzbCgyMTcuOSAxMC42JSA3NC45JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctcmVtb3ZlIGRlZXMtaWNvbiB7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgaGVpZ2h0OiAxMHB4OwogICAgICB9CgogICAgICAudGFnLWlucHV0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMTIwcHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTUlKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgICB9CgogICAgICAudGFnLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA2My45JSkiLCJoc2woMCAwJSA0NS4xJSkiKX07CiAgICAgIH0KCiAgICAgIC50YWctaW5wdXQ6ZGlzYWJsZWQgewogICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7CiAgICAgIH0KCiAgICAgIC8qIFN1Z2dlc3Rpb25zIGRyb3Bkb3duICovCiAgICAgIC5zdWdnZXN0aW9ucy1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAxMDAlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IGhzbCgwIDAlIDAlIC8gMC4xKSwgMCAycHggNHB4IC0ycHggaHNsKDAgMCUgMCUgLyAwLjEpOwogICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgei1pbmRleDogMTAwMDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb24gewogICAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxNSUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NS4xJSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9uLmhpZ2hsaWdodGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCA0MCUgOTYuMSUpIiwiaHNsKDIxNSAyMC4yJSAxNi44JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5JSkiLCJoc2woMCAwJSA5NSUpIil9OwogICAgICB9CgogICAgICAvKiBWYWxpZGF0aW9uIHN0eWxlcyAqLwogICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcyLjIlIDUwLjYlKSIsImhzbCgwIDYyLjglIDMwLjYlKSIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWFyZ2luLXRvcDogNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgIH0KCiAgICAgIC8qIERlc2NyaXB0aW9uIHN0eWxlcyAqLwogICAgICAuZGVzY3JpcHRpb24gewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNS40IDE2LjMlIDU2LjklKSIsImhzbCgyMTUgMjAuMiUgNTUuMSUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBtYXJnaW4tdG9wOiA2cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgfQoKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgKi8KICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDhweDsKICAgICAgfQoKICAgICAgLnN1Z2dlc3Rpb25zLWRyb3Bkb3duOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC5zdWdnZXN0aW9ucy1kcm9wZG93bjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAuc3VnZ2VzdGlvbnMtZHJvcGRvd246Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzkuOCUpIiwiaHNsKDAgMCUgMjAuOSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtsZXQgVD10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihFPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhFKSYmRS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5sYWJlbD9DYDxkZWVzLWxhYmVsIC5sYWJlbD0ke3RoaXMubGFiZWx9IC5yZXF1aXJlZD0ke3RoaXMucmVxdWlyZWR9PjwvZGVlcy1sYWJlbD5gOiIifQogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLWNvbnRhaW5lciI+CiAgICAgICAgICA8ZGl2CiAgICAgICAgICAgIGNsYXNzPSJ0YWdzLWNvbnRhaW5lciAke3RoaXMuZGlzYWJsZWQ/ImRpc2FibGVkIjoiIn0iCiAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ29udGFpbmVyQ2xpY2t9CiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZS5tYXAoRT0+Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWciPgogICAgICAgICAgICAgICAgPHNwYW4+JHtFfTwvc3Bhbj4KICAgICAgICAgICAgICAgICR7dGhpcy5kaXNhYmxlZD8iIjpDYAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWctcmVtb3ZlIiBAY2xpY2s9JHtxPT50aGlzLnJlbW92ZVRhZyhxLEUpfT4KICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp4In0+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYH0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIAogICAgICAgICAgICAkeyF0aGlzLmRpc2FibGVkJiYoIXRoaXMubWF4VGFnc3x8dGhpcy52YWx1ZS5sZW5ndGg8dGhpcy5tYXhUYWdzKT9DYAogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKICAgICAgICAgICAgICAgIGNsYXNzPSJ0YWctaW5wdXQiCiAgICAgICAgICAgICAgICAucGxhY2Vob2xkZXI9JHt0aGlzLnBsYWNlaG9sZGVyfQogICAgICAgICAgICAgICAgLnZhbHVlPSR7dGhpcy5pbnB1dFZhbHVlfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVJbnB1dH0KICAgICAgICAgICAgICAgIEBrZXlkb3duPSR7dGhpcy5oYW5kbGVLZXlEb3dufQogICAgICAgICAgICAgICAgQGZvY3VzPSR7dGhpcy5oYW5kbGVGb2N1c30KICAgICAgICAgICAgICAgIEBibHVyPSR7dGhpcy5oYW5kbGVCbHVyfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH0KICAgICAgICAgICAgICAvPgogICAgICAgICAgICBgOiIifQogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHt0aGlzLnNob3dTdWdnZXN0aW9ucyYmVC5sZW5ndGg+MD9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWdnZXN0aW9ucy1kcm9wZG93biI+CiAgICAgICAgICAgICAgJHtULm1hcCgoRSxxKT0+Q2AKICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InN1Z2dlc3Rpb24gJHtxPT09dGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD8iaGlnaGxpZ2h0ZWQiOiIifSIKICAgICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke0I9PntCLnByZXZlbnREZWZhdWx0KCksdGhpcy5hZGRUYWcoRSl9fQogICAgICAgICAgICAgICAgICBAbW91c2VlbnRlcj0keygpPT50aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PXF9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICR7RX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CgogICAgICAgICR7dGhpcy52YWxpZGF0aW9uVGV4dD9DYAogICAgICAgICAgPGRpdiBjbGFzcz0idmFsaWRhdGlvbi1tZXNzYWdlIj4ke3RoaXMudmFsaWRhdGlvblRleHR9PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgICAKICAgICAgICAke3RoaXMuZGVzY3JpcHRpb24/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImRlc2NyaXB0aW9uIj4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNvbnRhaW5lckNsaWNrKFQpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldCBFPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnRhZy1pbnB1dCIpO0UmJlQudGFyZ2V0IT09RSYmRS5mb2N1cygpfWhhbmRsZUlucHV0KFQpe2xldCBFPVQudGFyZ2V0O2lmKHRoaXMuaW5wdXRWYWx1ZT1FLnZhbHVlLHRoaXMuaW5wdXRWYWx1ZS5pbmNsdWRlcygiLCIpfHx0aGlzLmlucHV0VmFsdWUuaW5jbHVkZXMoIjsiKSl7bGV0IHE9dGhpcy5pbnB1dFZhbHVlLnJlcGxhY2UoL1ssO10vZywiIikudHJpbSgpO3EmJnRoaXMuYWRkVGFnKHEpfX1oYW5kbGVLZXlEb3duKFQpe2xldCBFPVQudGFyZ2V0O2lmKFQua2V5PT09IkVudGVyIilpZihULnByZXZlbnREZWZhdWx0KCksdGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleD49MCYmdGhpcy5zaG93U3VnZ2VzdGlvbnMpe2xldCBxPXRoaXMuc3VnZ2VzdGlvbnMuZmlsdGVyKEI9PiF0aGlzLnZhbHVlLmluY2x1ZGVzKEIpJiZCLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtxW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdJiZ0aGlzLmFkZFRhZyhxW3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXhdKX1lbHNlIHRoaXMuaW5wdXRWYWx1ZS50cmltKCkmJnRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZS50cmltKCkpO2Vsc2UgaWYoVC5rZXk9PT0iQmFja3NwYWNlIiYmIXRoaXMuaW5wdXRWYWx1ZSYmdGhpcy52YWx1ZS5sZW5ndGg+MCl0aGlzLnJlbW92ZVRhZyhULHRoaXMudmFsdWVbdGhpcy52YWx1ZS5sZW5ndGgtMV0pO2Vsc2UgaWYoVC5rZXk9PT0iQXJyb3dEb3duIiYmdGhpcy5zaG93U3VnZ2VzdGlvbnMpe1QucHJldmVudERlZmF1bHQoKTtsZXQgcT10aGlzLnN1Z2dlc3Rpb25zLmZpbHRlcihCPT4hdGhpcy52YWx1ZS5pbmNsdWRlcyhCKSYmQi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZS50b0xvd2VyQ2FzZSgpKSkubGVuZ3RoO3RoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9TWF0aC5taW4odGhpcy5oaWdobGlnaHRlZFN1Z2dlc3Rpb25JbmRleCsxLHEtMSl9ZWxzZSBULmtleT09PSJBcnJvd1VwIiYmdGhpcy5zaG93U3VnZ2VzdGlvbnM/KFQucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZ2hsaWdodGVkU3VnZ2VzdGlvbkluZGV4PU1hdGgubWF4KHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXgtMSwwKSk6VC5rZXk9PT0iRXNjYXBlIiYmKHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTEpfWhhbmRsZUZvY3VzKCl7dGhpcy5zdWdnZXN0aW9ucy5sZW5ndGg+MCYmKHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSEwKX1oYW5kbGVCbHVyKCl7c2V0VGltZW91dCgoKT0+e3RoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTF9LDIwMCl9YWRkVGFnKFQpe2lmKCFUfHx0aGlzLnZhbHVlLmluY2x1ZGVzKFQpfHx0aGlzLm1heFRhZ3MmJnRoaXMudmFsdWUubGVuZ3RoPj10aGlzLm1heFRhZ3MpcmV0dXJuO3RoaXMudmFsdWU9Wy4uLnRoaXMudmFsdWUsVF0sdGhpcy5pbnB1dFZhbHVlPSIiLHRoaXMuc2hvd1N1Z2dlc3Rpb25zPSExLHRoaXMuaGlnaGxpZ2h0ZWRTdWdnZXN0aW9uSW5kZXg9LTE7bGV0IEU9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIudGFnLWlucHV0Iik7RSYmKEUudmFsdWU9IiIpLHRoaXMuZW1pdENoYW5nZSgpfXJlbW92ZVRhZyhULEUpe1Quc3RvcFByb3BhZ2F0aW9uKCksdGhpcy52YWx1ZT10aGlzLnZhbHVlLmZpbHRlcihxPT5xIT09RSksdGhpcy5lbWl0Q2hhbmdlKCl9ZW1pdENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNoYW5nZSIse2RldGFpbDp7dmFsdWU6dGhpcy52YWx1ZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLnZhbHVlfXNldFZhbHVlKFQpe3RoaXMudmFsdWU9VHx8W119YXN5bmMgdmFsaWRhdGUoKXtyZXR1cm4gdGhpcy5yZXF1aXJlZCYmKCF0aGlzLnZhbHVlfHx0aGlzLnZhbHVlLmxlbmd0aD09PTApPyh0aGlzLnZhbGlkYXRpb25UZXh0PSJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkIiwhMSk6KHRoaXMudmFsaWRhdGlvblRleHQ9IiIsITApfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxpYSh0aGlzLFMpfXN0YXRpY3tpYShpLHIpfX07cmV0dXJuICQ9aX0pKCl9KTt2YXIgcTByPXAoKCk9PntIMHIoKX0pO3ZhciBqMHI9cCgoKT0+e040KCl9KTt2YXIgVjByPXAoKCk9PntUNmUoKX0pO3ZhciBVMHI9cCgoKT0+e0w2ZSgpfSk7dmFyIGFYcixuWHIsb1hyLHNYcixsWHIsY1hyLGRYcixXMHIsRzByPXAoKCk9Pnt4ZSgpO3AxKCk7T2koKTthWHI9KCk9PntsZXQgZT1EYXRlLm5vdygpO3JldHVyblt7aWQ6YHRpdGxlLSR7ZX1gLHR5cGU6ImhlYWRpbmctMSIsY29udGVudDoiU3lzdGVtIFBlcmZvcm1hbmNlIFJlcG9ydCJ9LHtpZDpgZGF0ZS0ke2UrMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpgR2VuZXJhdGVkIG9uOiAke25ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKX1gfSx7aWQ6YHN1bW1hcnktaGVhZGluZy0ke2UrMn1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiRXhlY3V0aXZlIFN1bW1hcnkifSx7aWQ6YHN1bW1hcnktJHtlKzN9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlRoaXMgcmVwb3J0IHByb3ZpZGVzIGFuIGFuYWx5c2lzIG9mIHN5c3RlbSBwZXJmb3JtYW5jZSBtZXRyaWNzIG92ZXIgdGhlIGxhc3QgMzAgZGF5cy4ifSx7aWQ6YG1ldHJpY3MtaGVhZGluZy0ke2UrNH1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiS2V5IE1ldHJpY3MifSx7aWQ6YG1ldHJpY3MtbGlzdC0ke2UrNX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YEF2ZXJhZ2UgcmVzcG9uc2UgdGltZTogMTI0bXMKVXB0aW1lOiA5OS45NyUKQ1BVIHV0aWxpemF0aW9uOiA0NSUKTWVtb3J5IHVzYWdlOiAyLjNHQiAvIDhHQmAsbWV0YWRhdGE6e2xpc3RUeXBlOiJidWxsZXQifX0se2lkOmBhbmFseXNpcy1oZWFkaW5nLSR7ZSs2fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJQZXJmb3JtYW5jZSBBbmFseXNpcyJ9LHtpZDpgYW5hbHlzaXMtcXVvdGUtJHtlKzd9YCx0eXBlOiJxdW90ZSIsY29udGVudDoiU3lzdGVtIHBlcmZvcm1hbmNlIHJlbWFpbnMgd2l0aGluIGFjY2VwdGFibGUgcGFyYW1ldGVycyB3aXRoIHJvb20gZm9yIG9wdGltaXphdGlvbiBpbiBtZW1vcnkgbWFuYWdlbWVudC4ifSx7aWQ6YGNvZGUtaGVhZGluZy0ke2UrOH1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiU2FtcGxlIFF1ZXJ5IFBlcmZvcm1hbmNlIn0se2lkOmBjb2RlLWJsb2NrLSR7ZSs5fWAsdHlwZToiY29kZSIsY29udGVudDpgU0VMRUNUIEFWRyhyZXNwb25zZV90aW1lKSBhcyBhdmdfdGltZSwKICAgICAgIENPVU5UKCopIGFzIHRvdGFsX3JlcXVlc3RzLAogICAgICAgREFURShjcmVhdGVkX2F0KSBhcyBkYXRlCkZST00gcGVyZm9ybWFuY2VfbG9ncwpXSEVSRSBjcmVhdGVkX2F0ID49IE5PVygpIC0gSU5URVJWQUwgMzAgREFZCkdST1VQIEJZIERBVEUoY3JlYXRlZF9hdCkKT1JERVIgQlkgZGF0ZSBERVNDO2AsbWV0YWRhdGE6e2xhbmd1YWdlOiJzcWwifX0se2lkOmBkaXZpZGVyLSR7ZSsxMH1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiJ9LHtpZDpgZm9vdGVyLSR7ZSsxMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiUmVwb3J0IGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IFN5c3RlbSBNb25pdG9yIHYyLjUuMCJ9XX0sblhyPSgpPT57bGV0IGU9RGF0ZS5ub3coKTtyZXR1cm5be2lkOmByZWNpcGUtdGl0bGUtJHtlfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJDbGFzc2ljIE1hcmdoZXJpdGEgUGl6emEifSx7aWQ6YHJlY2lwZS1pbnRyby0ke2UrMX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiQSB0cmFkaXRpb25hbCBJdGFsaWFuIHBpenphIHdpdGggZnJlc2ggYmFzaWwsIG1venphcmVsbGEsIGFuZCB0b21hdG8gc2F1Y2UuIn0se2lkOmBpbmdyZWRpZW50cy1oZWFkaW5nLSR7ZSsyfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjM1NX0gSW5ncmVkaWVudHMifSx7aWQ6YGRvdWdoLWhlYWRpbmctJHtlKzN9YCx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkZvciB0aGUgRG91Z2g6In0se2lkOmBkb3VnaC1saXN0LSR7ZSs0fWAsdHlwZToibGlzdCIsY29udGVudDpgNTAwZyB0aXBvICIwMCIgZmxvdXIKMzI1bWwgd2FybSB3YXRlcgoxMGcgc2FsdAo3ZyBhY3RpdmUgZHJ5IHllYXN0CjIgdGJzcCBvbGl2ZSBvaWxgLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19LHtpZDpgdG9wcGluZ3MtaGVhZGluZy0ke2UrNX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDoiRm9yIHRoZSBUb3BwaW5nczoifSx7aWQ6YHRvcHBpbmdzLWxpc3QtJHtlKzZ9YCx0eXBlOiJsaXN0Iixjb250ZW50OmA0MDBnIGNhbm5lZCBTYW4gTWFyemFubyB0b21hdG9lcwoyNTBnIGZyZXNoIG1venphcmVsbGEKRnJlc2ggYmFzaWwgbGVhdmVzCkV4dHJhIHZpcmdpbiBvbGl2ZSBvaWwKU2FsdCBhbmQgcGVwcGVyIHRvIHRhc3RlYCxtZXRhZGF0YTp7bGlzdFR5cGU6ImJ1bGxldCJ9fSx7aWQ6YGluc3RydWN0aW9ucy1oZWFkaW5nLSR7ZSs3fWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OiJcdXsxRjQ2OH1cdTIwMERcdXsxRjM3M30gSW5zdHJ1Y3Rpb25zIn0se2lkOmBzdGVwcy1saXN0LSR7ZSs4fWAsdHlwZToibGlzdCIsY29udGVudDpgRGlzc29sdmUgeWVhc3QgaW4gd2FybSB3YXRlciBhbmQgbGV0IHN0YW5kIGZvciA1IG1pbnV0ZXMKTWl4IGZsb3VyIGFuZCBzYWx0LCBjcmVhdGUgYSB3ZWxsIGluIGNlbnRlcgpBZGQgeWVhc3QgbWl4dHVyZSBhbmQgb2xpdmUgb2lsCktuZWFkIGZvciAxMCBtaW51dGVzIHVudGlsIHNtb290aApMZXQgcmlzZSBmb3IgMS0yIGhvdXJzIHVudGlsIGRvdWJsZWQKUHVuY2ggZG93biBhbmQgZGl2aWRlIGludG8gcG9ydGlvbnMKUm9sbCBvdXQgZWFjaCBwb3J0aW9uIHRvIDEyLWluY2ggY2lyY2xlcwpUb3Agd2l0aCBjcnVzaGVkIHRvbWF0b2VzLCBtb3p6YXJlbGxhLCBhbmQgYmFzaWwKQmFrZSBhdCA0NzVceEIwRiAoMjQ1XHhCMEMpIGZvciAxMC0xMiBtaW51dGVzYCxtZXRhZGF0YTp7bGlzdFR5cGU6Im9yZGVyZWQifX0se2lkOmB0aXAtJHtlKzl9YCx0eXBlOiJxdW90ZSIsY29udGVudDoiUHJvIHRpcDogRm9yIGFuIGF1dGhlbnRpYyB0YXN0ZSwgdXNlIGEgcGl6emEgc3RvbmUgYW5kIHByZWhlYXQgaXQgaW4gdGhlIG92ZW4gZm9yIGF0IGxlYXN0IDMwIG1pbnV0ZXMgYmVmb3JlIGJha2luZy4ifSx7aWQ6YGRpdmlkZXItJHtlKzEwfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiIn0se2lkOmBzZXJ2aW5ncy0ke2UrMTF9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlNlcnZpbmdzOiA0IHBpenphcyB8IFByZXAgdGltZTogMiBob3VycyB8IENvb2sgdGltZTogMTIgbWludXRlcyJ9XX0sb1hyPWU9PntsZXQgdD17fTtyZXR1cm4gdC5iYXNpYz1lLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItYmFzaWMiKSx0LmFydGljbGU9ZS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWFydGljbGUiKSx0LmRyYWdEcm9wPWUucXVlcnlTZWxlY3RvcigiI2VkaXRvci1kcmFnZHJvcCIpLHQudHV0b3JpYWw9ZS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXR1dG9yaWFsIiksdC5tZWV0aW5nPWUucXVlcnlTZWxlY3RvcigiI2VkaXRvci1tZWV0aW5nIiksdC5yZWNpcGU9ZS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLXJlY2lwZSIpLHQudGVjaG5pY2FsPWUucXVlcnlTZWxlY3RvcigiI2VkaXRvci10ZWNobmljYWwiKSx0LmZvcm1JbnRlZ3JhdGlvbj1lLnF1ZXJ5U2VsZWN0b3IoIiNlZGl0b3ItZm9ybS1pbnRlZ3JhdGlvbiIpLHQucHJvZ3JhbW1hdGljPWUucXVlcnlTZWxlY3RvcigiI2VkaXRvci1wcm9ncmFtbWF0aWMiKSx0LmV4cG9ydERlbW89ZS5xdWVyeVNlbGVjdG9yKCIjZWRpdG9yLWV4cG9ydCIpLHR9LHNYcj0oZSx0KT0+e2xldCByPWUucXVlcnlTZWxlY3RvcigiI2J0bi1nZW5lcmF0ZS1yZXBvcnQiKSxpPWUucXVlcnlTZWxlY3RvcigiI2J0bi1nZW5lcmF0ZS1yZWNpcGUiKSxhPWUucXVlcnlTZWxlY3RvcigiI2J0bi1jbGVhci1lZGl0b3IiKTtyJiZyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QuaW1wb3J0QmxvY2tzKGFYcigpKX0pLGkmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5pbXBvcnRCbG9ja3MoblhyKCkpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0LmltcG9ydEJsb2NrcyhbXSl9KX0sbFhyPShlLHQpPT57bGV0IHI9ZS5xdWVyeVNlbGVjdG9yKCIjYnRuLWV4cG9ydC1ibG9ja3MiKSxpPWUucXVlcnlTZWxlY3RvcigiI2J0bi1leHBvcnQtaHRtbCIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIjYnRuLWV4cG9ydC1tYXJrZG93biIpLG49ZS5xdWVyeVNlbGVjdG9yKCIjYnRuLXNhdmUtc3RhdGUiKSxvPWUucXVlcnlTZWxlY3RvcigiI2J0bi1yZXN0b3JlLXN0YXRlIikscz1udWxsO3ImJnIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IGw9dC5leHBvcnRCbG9ja3MoKTtjb25zb2xlLmxvZygiRXhwb3J0ZWQgYmxvY2tzOiIsbCksYWxlcnQoYEV4cG9ydGVkICR7bC5sZW5ndGh9IGJsb2NrcyB0byBjb25zb2xlLiBDaGVjayBkZXZlbG9wZXIgdG9vbHMuYCl9KSxpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2xldCBsPXQuZXhwb3J0QXNIdG1sKCk7Y29uc29sZS5sb2coIkhUTUwgRXhwb3J0OiIsbCksYWxlcnQoIkhUTUwgZXhwb3J0ZWQgdG8gY29uc29sZS4gQ2hlY2sgZGV2ZWxvcGVyIHRvb2xzLiIpfSksYSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntsZXQgbD10LmV4cG9ydEFzTWFya2Rvd24oKTtjb25zb2xlLmxvZygiTWFya2Rvd24gRXhwb3J0OiIsbCksYWxlcnQoIk1hcmtkb3duIGV4cG9ydGVkIHRvIGNvbnNvbGUuIENoZWNrIGRldmVsb3BlciB0b29scy4iKX0pLG4mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57cz10LmV4cG9ydFN0YXRlKCksY29uc29sZS5sb2coIlNhdmVkIHN0YXRlOiIscyksYWxlcnQoIkVkaXRvciBzdGF0ZSBzYXZlZCEiKX0pLG8mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57cz8odC5pbXBvcnRTdGF0ZShzKSxhbGVydCgiRWRpdG9yIHN0YXRlIHJlc3RvcmVkISIpKTphbGVydCgiTm8gc2F2ZWQgc3RhdGUgZm91bmQuIFNhdmUgc3RhdGUgZmlyc3QhIil9KX0sY1hyPShlLHQscik9PntsZXQgaT1lLnF1ZXJ5U2VsZWN0b3IoIiNidG4tc2hvdy1odG1sLW91dHB1dCIpLGE9ZS5xdWVyeVNlbGVjdG9yKCIjb3V0cHV0LXByZXZpZXctaHRtbCIpO2kmJmEmJnQmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57YS50ZXh0Q29udGVudD10LmdldFZhbHVlKCksYS5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9KTtsZXQgbj1lLnF1ZXJ5U2VsZWN0b3IoIiNidG4tc2hvdy1tYXJrZG93bi1vdXRwdXQiKSxvPWUucXVlcnlTZWxlY3RvcigiI291dHB1dC1wcmV2aWV3LW1hcmtkb3duIik7biYmbyYmciYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntvLnRleHRDb250ZW50PXIuZ2V0VmFsdWUoKSxvLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX0pfSxkWHI9ZT0+e2UuYXJ0aWNsZSYmc2V0VGltZW91dCgoKT0+e2xldCB0PVt7aWQ6ImludHJvLWhlYWRpbmctIitEYXRlLm5vdygpLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDoiSW50cm9kdWN0aW9uIHRvIE1vZGVybiBXZWIgRGV2ZWxvcG1lbnQifSx7aWQ6ImludHJvLXBhcmEtIitEYXRlLm5vdygpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiTW9kZXJuIHdlYiBkZXZlbG9wbWVudCBoYXMgZXZvbHZlZCBzaWduaWZpY2FudGx5IG92ZXIgdGhlIHBhc3QgZGVjYWRlLiBJbiB0aGlzIGFydGljbGUsIHdlJ2xsIGV4cGxvcmUgdGhlIGtleSB0ZWNobm9sb2dpZXMgYW5kIGJlc3QgcHJhY3RpY2VzIHRoYXQgZGVmaW5lIHdlYiBkZXZlbG9wbWVudCBpbiAyMDI0LiJ9LHtpZDoidGVjaC1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IktleSBUZWNobm9sb2dpZXMifSx7aWQ6InRlY2gtbGlzdC0iK0RhdGUubm93KCksdHlwZToibGlzdCIsY29udGVudDpgVHlwZVNjcmlwdCAtIFR5cGUtc2FmZSBKYXZhU2NyaXB0IGRldmVsb3BtZW50CldlYiBDb21wb25lbnRzIC0gTmF0aXZlIGNvbXBvbmVudCBtb2RlbApFUyBNb2R1bGVzIC0gTW9kZXJuIG1vZHVsZSBzeXN0ZW0KV2ViQXNzZW1ibHkgLSBIaWdoLXBlcmZvcm1hbmNlIGNvbXB1dGluZ2AsbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19LHtpZDoicXVvdGUtIitEYXRlLm5vdygpLHR5cGU6InF1b3RlIixjb250ZW50OiJUaGUgYmVzdCB3YXkgdG8gcHJlZGljdCB0aGUgZnV0dXJlIGlzIHRvIGludmVudCBpdC4gLSBBbGFuIEtheSJ9LHtpZDoiZXhhbXBsZS1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTMiLGNvbnRlbnQ6IkNvZGUgRXhhbXBsZSJ9LHtpZDoiY29kZS1leGFtcGxlLSIrRGF0ZS5ub3coKSx0eXBlOiJjb2RlIixjb250ZW50OmBjbGFzcyBNb2Rlcm5XZWJBcHAgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSk7CiAgfQogIAogIGNvbm5lY3RlZENhbGxiYWNrKCkgewogICAgdGhpcy5yZW5kZXIoKTsKICB9Cn1gLG1ldGFkYXRhOntsYW5ndWFnZToiamF2YXNjcmlwdCJ9fV07ZS5hcnRpY2xlLmltcG9ydEJsb2Nrcyh0KX0sNTAwKSxlLmRyYWdEcm9wJiZzZXRUaW1lb3V0KCgpPT57bGV0IHQ9W3tpZDoiZHJhZy10aXRsZS0iK0RhdGUubm93KCksdHlwZToiaGVhZGluZy0xIixjb250ZW50OiJEcmFnICYgRHJvcCBEZW1vIn0se2lkOiJkcmFnLWludHJvLSIrRGF0ZS5ub3coKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IlRoaXMgZWRpdG9yIGRlbW9uc3RyYXRlcyBkcmFnIGFuZCBkcm9wIGZ1bmN0aW9uYWxpdHkuIFRyeSBkcmFnZ2luZyB0aGVzZSBibG9ja3MgYXJvdW5kISJ9LHtpZDoiZHJhZy1oZWFkaW5nLSIrRGF0ZS5ub3coKSx0eXBlOiJoZWFkaW5nLTIiLGNvbnRlbnQ6IkhvdyBJdCBXb3JrcyJ9LHtpZDoiZHJhZy1saXN0LSIrRGF0ZS5ub3coKSx0eXBlOiJsaXN0Iixjb250ZW50OmBIb3ZlciBvdmVyIGFueSBibG9jayB0byBzZWUgdGhlIGRyYWcgaGFuZGxlCkNsaWNrIGFuZCBob2xkIHRoZSBoYW5kbGUgdG8gc3RhcnQgZHJhZ2dpbmcKRHJhZyB0byByZW9yZGVyIGJsb2NrcwpSZWxlYXNlIHRvIGRyb3AgaW4gdGhlIG5ldyBwb3NpdGlvbmAsbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19LHtpZDoiZHJhZy1xdW90ZS0iK0RhdGUubm93KCksdHlwZToicXVvdGUiLGNvbnRlbnQ6IlRoZSBkcmFnIGFuZCBkcm9wIGZlYXR1cmUgbWFrZXMgaXQgZWFzeSB0byByZW9yZ2FuaXplIHlvdXIgY29udGVudCB3aXRob3V0IGN1dHRpbmcgYW5kIHBhc3RpbmcuIn0se2lkOiJkcmFnLWRpdmlkZXItIitEYXRlLm5vdygpLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiJ9LHtpZDoiZHJhZy1mb290ZXItIitEYXRlLm5vdygpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiTm90ZTogRGl2aWRlciBibG9ja3MgY2Fubm90IGJlIGRyYWdnZWQsIGJ1dCBvdGhlciBibG9ja3MgY2FuIGJlIG1vdmVkIGFyb3VuZCB0aGVtLiJ9XTtlLmRyYWdEcm9wLmltcG9ydEJsb2Nrcyh0KX0sNjAwKX0sVzByPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9Pnthd2FpdCBuZXcgUHJvbWlzZShyPT5zZXRUaW1lb3V0KHIsNTAwKSk7bGV0IHQ9b1hyKGUpO3QucHJvZ3JhbW1hdGljJiZzWHIoZSx0LnByb2dyYW1tYXRpYyksdC5leHBvcnREZW1vJiZsWHIoZSx0LmV4cG9ydERlbW8pLGNYcihlLHQubWVldGluZyx0LnJlY2lwZSksZFhyKHQpLGNvbnNvbGUubG9nKCJXWVNJV1lHIERlbW8gaW5pdGlhbGl6ZWQgd2l0aCBlZGl0b3JzOiIsT2JqZWN0LmtleXModCkpfX0+CiAgPHN0eWxlPgogICAgJHtvZWAKICAgICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZ2FwOiAzMnB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIH0KICAgICAgCiAgICAgIGRlZXMtcGFuZWwgewogICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wYW5lbC1kZXNjcmlwdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICAgIGNvbG9yOiAjNjY2OwogICAgICAgIGZvbnQtc2l6ZTogMTVweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnBhbmVsLWRlc2NyaXB0aW9uIHsKICAgICAgICAgIGNvbG9yOiAjOTk5OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLmZlYXR1cmUtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgfQoKICAgICAgLmZlYXR1cmUtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGNvbG9yOiAjNTU1OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLmZlYXR1cmUtaWNvbiB7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgfQoKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5mZWF0dXJlLWl0ZW0gewogICAgICAgICAgY29sb3I6ICNhYWE7CiAgICAgICAgfQogICAgICAgIC5mZWF0dXJlLWljb24gewogICAgICAgICAgY29sb3I6ICM0ZDk0ZmY7CiAgICAgICAgfQogICAgICB9CgogICAgICAuc2hvcnRjdXRzLWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMDIsIDIwNCwgMC4wNSk7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAxMDIsIDIwNCwgMC4yKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnNob3J0Y3V0cy1ib3ggewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg3NywgMTQ4LCAyNTUsIDAuMSk7CiAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNzcsIDE0OCwgMjU1LCAwLjMpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLnNob3J0Y3V0cy10aXRsZSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAjMDA2NmNjOwogICAgICB9CgogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnNob3J0Y3V0cy10aXRsZSB7CiAgICAgICAgICBjb2xvcjogIzRkOTRmZjsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dHMtZ3JpZCB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxODBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5zaG9ydGN1dC1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGNvbG9yOiAjNTU1OwogICAgICB9CgogICAgICAuc2hvcnRjdXQta2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwOwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAjMzMzOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAuc2hvcnRjdXQtaXRlbSB7CiAgICAgICAgICBjb2xvcjogI2JiYjsKICAgICAgICB9CiAgICAgICAgLnNob3J0Y3V0LWtleSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzOwogICAgICAgICAgY29sb3I6ICNkZGQ7CiAgICAgICAgfQogICAgICB9CgogICAgICAub3V0cHV0LWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMjBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAyNHB4OwogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtY2FyZCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLm91dHB1dC1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICAgIH0KCiAgICAgIC5vdXRwdXQtcHJldmlldyB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuMDQpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQsICMwZjE3MmEpOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4xKTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBNb25vJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbWF4LWhlaWdodDogMjgwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIH0KCiAgICAgIDpob3N0KFt0aGVtZT0nZGFyayddKSAub3V0cHV0LXByZXZpZXcgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4wNik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuMTUpOwogICAgICAgIGNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXRleHQsICNmNGY0ZjUpOwogICAgICB9CgogICAgICAub3V0cHV0LXByZXZpZXcudmlzaWJsZSB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5vdXRwdXQtZ3JpZCB7CiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC50aXBzLWJveCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmMGY4ZmY7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICB9CiAgICAgIAogICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7CiAgICAgICAgLnRpcHMtYm94IHsKICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNzcsIDE0OCwgMjU1LCAwLjEpOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtYm94IHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KICAgICAgCiAgICAgIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICAgICAgICAudGlwcy1ib3ggc3Ryb25nIHsKICAgICAgICAgIGNvbG9yOiAjNGQ5NGZmOwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLnRpcHMtbGlzdCB7CiAgICAgICAgbWFyZ2luOiA4cHggMCAwIDA7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAudGlwcy1saXN0IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICAgIAogICAgICAuYnV0dG9uLWdyb3VwIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAjY2NjOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgfQogICAgICAKICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewogICAgICAgIC5kZW1vLWJ1dHRvbiB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjMzMzOwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNTU1OwogICAgICAgICAgY29sb3I6ICNkZGQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5kZW1vLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAjNDQ0OwogICAgICAgICAgYm9yZGVyLWNvbG9yOiAjNjY2OwogICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuYmxvY2tzIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMiwgMjA0LCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5odG1sIHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZC5tYXJrZG93biB7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDE1MiwgMCwgMC4xKTsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuc3RhdGUgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTU2LCAzOSwgMTc2LCAwLjEpOwogICAgICB9CiAgICAgIAogICAgICAuZXhwb3J0LWluZm8tY2FyZCBzdHJvbmcgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuYmxvY2tzIHN0cm9uZyB7CiAgICAgICAgY29sb3I6ICMwMDY2Y2M7CiAgICAgIH0KICAgICAgCiAgICAgIC5leHBvcnQtaW5mby1jYXJkLmh0bWwgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzRDQUY1MDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQubWFya2Rvd24gc3Ryb25nIHsKICAgICAgICBjb2xvcjogI0ZGOTgwMDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQuc3RhdGUgc3Ryb25nIHsKICAgICAgICBjb2xvcjogIzlDMjdCMDsKICAgICAgfQogICAgICAKICAgICAgLmV4cG9ydC1pbmZvLWNhcmQgcCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICB9CiAgICBgfQogIDwvc3R5bGU+CiAgCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyIxLiBcdXsxRjY4MH0gTW9kZXJuIFdZU0lXWUcgRWRpdG9yIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIEEgcG93ZXJmdWwgYmxvY2stYmFzZWQgZWRpdG9yIHdpdGggc2xhc2ggY29tbWFuZHMsIGtleWJvYXJkIHNob3J0Y3V0cywgYW5kIG11bHRpcGxlIG91dHB1dCBmb3JtYXRzLiAKICAgICAgICAgIFBlcmZlY3QgZm9yIGNvbnRlbnQgY3JlYXRpb24sIGJsb2cgcG9zdHMsIGRvY3VtZW50YXRpb24sIGFuZCBtb3JlLgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5TbGFzaCBjb21tYW5kcyAoLyk8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+S2V5Ym9hcmQgc2hvcnRjdXRzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkJsb2NrLWJhc2VkIGVkaXRpbmc8L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmZWF0dXJlLWljb24iPuKckzwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4+RHJhZyAmIGRyb3AgcmVvcmRlcmluZzwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImZlYXR1cmUtaWNvbiI+4pyTPC9zcGFuPgogICAgICAgICAgICA8c3Bhbj5IVE1MICYgTWFya2Rvd24gb3V0cHV0PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPkRhcmsgbW9kZSBzdXBwb3J0PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmVhdHVyZS1pY29uIj7inJM8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuPk1vYmlsZSByZXNwb25zaXZlPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItYmFzaWMiCiAgICAgICAgICBsYWJlbD0iUmljaCBUZXh0IEVkaXRvciIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iU3RhcnQgdHlwaW5nIG9yIHVzZSAnLycgdG8gaW5zZXJ0IGRpZmZlcmVudCBibG9jayB0eXBlcyIKICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CgogICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0cy1ib3giPgogICAgICAgICAgPGg0IGNsYXNzPSJzaG9ydGN1dHMtdGl0bGUiPuKMqO+4jyBLZXlib2FyZCBTaG9ydGN1dHM8L2g0PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXRzLWdyaWQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4vPC9zcGFuPiBTbGFzaCBjb21tYW5kcwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Izwvc3Bhbj4gSGVhZGluZyAxCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jIzwvc3Bhbj4gSGVhZGluZyAyCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4jIyM8L3NwYW4+IEhlYWRpbmcgMwogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Pjwvc3Bhbj4gUXVvdGUKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPlxgXGBcYDwvc3Bhbj4gQ29kZSBibG9jawogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hvcnRjdXQtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+Kjwvc3Bhbj4gb3IgPHNwYW4gY2xhc3M9InNob3J0Y3V0LWtleSI+LTwvc3Bhbj4gQnVsbGV0IGxpc3QKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNob3J0Y3V0LWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzaG9ydGN1dC1rZXkiPjEuPC9zcGFuPiBOdW1iZXJlZCBsaXN0CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaG9ydGN1dC1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2hvcnRjdXQta2V5Ij4tLS08L3NwYW4+IERpdmlkZXIKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgICAKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjIuIFx1ezFGNEREfSBCbG9nIFBvc3QgRXhhbXBsZSJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBQZXJmZWN0IGZvciBjcmVhdGluZyByaWNoIGNvbnRlbnQgd2l0aCBtdWx0aXBsZSBibG9jayB0eXBlcy4gCiAgICAgICAgICBUaGUgZWRpdG9yIHByZXNlcnZlcyBmb3JtYXR0aW5nIGFuZCBwcm92aWRlcyBhIGNsZWFuIGVkaXRpbmcgZXhwZXJpZW5jZS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItYXJ0aWNsZSIKICAgICAgICAgIGxhYmVsPSJCbG9nIFBvc3QgQ29udGVudCIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iV3JpdGUgeW91ciBhcnRpY2xlIHVzaW5nIHZhcmlvdXMgZm9ybWF0dGluZyBvcHRpb25zIgogICAgICAgICAgb3V0cHV0Rm9ybWF0PSJodG1sIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjMuIFx1ezFGNTAwfSBEcmFnICYgRHJvcCBSZW9yZGVyaW5nIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIEVhc2lseSByZWFycmFuZ2UgeW91ciBjb250ZW50IGJsb2NrcyBieSBkcmFnZ2luZyB0aGVtLiAKICAgICAgICAgIEhvdmVyIG92ZXIgYW55IGJsb2NrIHRvIHJldmVhbCB0aGUgZHJhZyBoYW5kbGUgb24gdGhlIGxlZnQgc2lkZS4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgIGlkPSJlZGl0b3ItZHJhZ2Ryb3AiCiAgICAgICAgICBsYWJlbD0iRHJhZyAmIERyb3AgRGVtbyIgCiAgICAgICAgICBkZXNjcmlwdGlvbj0iVHJ5IGRyYWdnaW5nIGJsb2NrcyB0byByZW9yZGVyIHRoZW0gLSBob3ZlciB0byBzZWUgZHJhZyBoYW5kbGVzIgogICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJ0aXBzLWJveCI+CiAgICAgICAgICA8c3Ryb25nPvCfkqEgVGlwczo8L3N0cm9uZz4KICAgICAgICAgIDx1bCBjbGFzcz0idGlwcy1saXN0Ij4KICAgICAgICAgICAgPGxpPkhvdmVyIG92ZXIgYW55IGJsb2NrIHRvIHNlZSB0aGUgZHJhZyBoYW5kbGUgKOKLruKLrikgb24gdGhlIGxlZnQ8L2xpPgogICAgICAgICAgICA8bGk+Q2xpY2sgYW5kIGhvbGQgdGhlIGRyYWcgaGFuZGxlIHRvIHN0YXJ0IGRyYWdnaW5nPC9saT4KICAgICAgICAgICAgPGxpPkJsdWUgaW5kaWNhdG9ycyBzaG93IHdoZXJlIHRoZSBibG9jayB3aWxsIGJlIGRyb3BwZWQ8L2xpPgogICAgICAgICAgICA8bGk+RGl2aWRlciBibG9ja3MgY2Fubm90IGJlIGRyYWdnZWQ8L2xpPgogICAgICAgICAgICA8bGk+VGhlIGVkaXRvciBtYWludGFpbnMgZm9jdXMgb24gdGhlIG1vdmVkIGJsb2NrIGFmdGVyIGRyb3BwaW5nPC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI0LiBcdXsxRjREQX0gVHV0b3JpYWwgJiBEb2N1bWVudGF0aW9uIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb21wcmVoZW5zaXZlIHR1dG9yaWFscyBhbmQgZG9jdW1lbnRhdGlvbiB3aXRoIGNvZGUgZXhhbXBsZXMsIGxpc3RzLCBhbmQgc3RydWN0dXJlZCBjb250ZW50LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci10dXRvcmlhbCIKICAgICAgICAgIGxhYmVsPSJHaXQgVHV0b3JpYWwiIAogICAgICAgICAgZGVzY3JpcHRpb249IlN0ZXAtYnktc3RlcCBndWlkZSB3aXRoIGNvbW1hbmRzIGFuZCBleHBsYW5hdGlvbnMiCiAgICAgICAgICBvdXRwdXRGb3JtYXQ9Im1hcmtkb3duIgogICAgICAgICAgdmFsdWU9IiMgR2l0IFR1dG9yaWFsIGZvciBCZWdpbm5lcnMKCkdpdCBpcyBhIGRpc3RyaWJ1dGVkIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gdGhhdCBoZWxwcyB5b3UgdHJhY2sgY2hhbmdlcyBpbiB5b3VyIGNvZGUgb3ZlciB0aW1lLiBUaGlzIHR1dG9yaWFsIHdpbGwgZ3VpZGUgeW91IHRocm91Z2ggdGhlIGJhc2ljcy4KCiMjIFByZXJlcXVpc2l0ZXMKCkJlZm9yZSBzdGFydGluZywgZW5zdXJlIHlvdSBoYXZlOgoKLSBHaXQgaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtCi0gQSB0ZXh0IGVkaXRvciBvciBJREUKLSBCYXNpYyBjb21tYW5kIGxpbmUga25vd2xlZGdlCgojIyBHZXR0aW5nIFN0YXJ0ZWQKCiMjIyAxLiBDb25maWd1cmUgR2l0CgpGaXJzdCwgc2V0IHVwIHlvdXIgaWRlbnRpdHk6CgpcYFxgXGBiYXNoCmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lICZxdW90O1lvdXIgTmFtZSZxdW90OwpnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgJnF1b3Q7eW91ci5lbWFpbEBleGFtcGxlLmNvbSZxdW90OwpcYFxgXGAKCiMjIyAyLiBJbml0aWFsaXplIGEgUmVwb3NpdG9yeQoKQ3JlYXRlIGEgbmV3IEdpdCByZXBvc2l0b3J5OgoKXGBcYFxgYmFzaApta2RpciBteS1wcm9qZWN0CmNkIG15LXByb2plY3QKZ2l0IGluaXQKXGBcYFxgCgojIyMgMy4gQmFzaWMgR2l0IFdvcmtmbG93CgojIyMjIEFkZGluZyBGaWxlcwoKQ3JlYXRlIGEgZmlsZSBhbmQgYWRkIGl0IHRvIHN0YWdpbmc6CgpcYFxgXGBiYXNoCmVjaG8gJnF1b3Q7IyBNeSBQcm9qZWN0JnF1b3Q7ID4gUkVBRE1FLm1kCmdpdCBhZGQgUkVBRE1FLm1kClxgXGBcYAoKIyMjIyBDb21taXR0aW5nIENoYW5nZXMKClxgXGBcYGJhc2gKZ2l0IGNvbW1pdCAtbSAmcXVvdDtJbml0aWFsIGNvbW1pdCZxdW90OwpcYFxgXGAKCj4gKipCZXN0IFByYWN0aWNlOioqIFdyaXRlIGNsZWFyLCBkZXNjcmlwdGl2ZSBjb21taXQgbWVzc2FnZXMgdGhhdCBleHBsYWluIHdoYXQgY2hhbmdlcyB3ZXJlIG1hZGUgYW5kIHdoeS4KCiMjIyA0LiBXb3JraW5nIHdpdGggQnJhbmNoZXMKCkJyYW5jaGVzIGFsbG93IHlvdSB0byB3b3JrIG9uIGZlYXR1cmVzIGluZGVwZW5kZW50bHk6CgpcYFxgXGBiYXNoCiMgQ3JlYXRlIGFuZCBzd2l0Y2ggdG8gYSBuZXcgYnJhbmNoCmdpdCBjaGVja291dCAtYiBmZWF0dXJlLWJyYW5jaAoKIyBNYWtlIGNoYW5nZXMgYW5kIGNvbW1pdApnaXQgYWRkIC4KZ2l0IGNvbW1pdCAtbSAmcXVvdDtBZGQgbmV3IGZlYXR1cmUmcXVvdDsKCiMgU3dpdGNoIGJhY2sgdG8gbWFpbgpnaXQgY2hlY2tvdXQgbWFpbgoKIyBNZXJnZSB0aGUgZmVhdHVyZQpnaXQgbWVyZ2UgZmVhdHVyZS1icmFuY2gKXGBcYFxgCgotLS0KCiMjIENvbW1vbiBDb21tYW5kcyBSZWZlcmVuY2UKCnwgQ29tbWFuZCB8IERlc2NyaXB0aW9uIHwKfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfAp8IFxgZ2l0IHN0YXR1c1xgIHwgQ2hlY2sgcmVwb3NpdG9yeSBzdGF0dXMgfAp8IFxgZ2l0IGxvZ1xgIHwgVmlldyBjb21taXQgaGlzdG9yeSB8CnwgXGBnaXQgZGlmZlxgIHwgU2hvdyBjaGFuZ2VzIHwKfCBcYGdpdCBwdWxsXGAgfCBGZXRjaCBhbmQgbWVyZ2UgY2hhbmdlcyB8CnwgXGBnaXQgcHVzaFxgIHwgVXBsb2FkIGNoYW5nZXMgdG8gcmVtb3RlIHwKCiMjIE5leHQgU3RlcHMKCjEuIExlYXJuIGFib3V0IHJlbW90ZSByZXBvc2l0b3JpZXMKMi4gRXhwbG9yZSBhZHZhbmNlZCBHaXQgZmVhdHVyZXMKMy4gUHJhY3RpY2Ugd2l0aCByZWFsIHByb2plY3RzCjQuIENvbnRyaWJ1dGUgdG8gb3BlbiBzb3VyY2UKCioqSGFwcHkgY29kaW5nISoqIPCfmoAiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiNS4gXHV7MUY1MDR9IE91dHB1dCBGb3JtYXRzIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENob29zZSBiZXR3ZWVuIEhUTUwgYW5kIE1hcmtkb3duIG91dHB1dCBmb3JtYXRzIGRlcGVuZGluZyBvbiB5b3VyIG5lZWRzLiAKICAgICAgICAgIFBlcmZlY3QgZm9yIHN0YXRpYyBzaXRlIGdlbmVyYXRvcnMsIGRvY3VtZW50YXRpb24gc3lzdGVtcywgb3IgYW55IGNvbnRlbnQgbWFuYWdlbWVudCB3b3JrZmxvdy4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWdyaWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWNhcmQiPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICAgIGlkPSJlZGl0b3ItbWVldGluZyIKICAgICAgICAgICAgICBsYWJlbD0iTWVldGluZyBOb3RlcyIgCiAgICAgICAgICAgICAgZGVzY3JpcHRpb249IlN0cnVjdHVyZWQgbWVldGluZyBkb2N1bWVudGF0aW9uIgogICAgICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICAgICAgICB2YWx1ZT0iPGgyPlE0IFBsYW5uaW5nIE1lZXRpbmc8L2gyPjxwPjxzdHJvbmc+RGF0ZTo8L3N0cm9uZz4gRGVjZW1iZXIgMTUsIDIwMjQ8YnI+PHN0cm9uZz5BdHRlbmRlZXM6PC9zdHJvbmc+IFByb2R1Y3QgVGVhbSwgRW5naW5lZXJpbmcsIERlc2lnbjwvcD48aDM+QWdlbmRhIEl0ZW1zPC9oMz48b2w+PGxpPlJldmlldyBRMyBhY2hpZXZlbWVudHM8L2xpPjxsaT5TZXQgUTQgb2JqZWN0aXZlczwvbGk+PGxpPlJlc291cmNlIGFsbG9jYXRpb248L2xpPjxsaT5UaW1lbGluZSBkaXNjdXNzaW9uPC9saT48L29sPjxoMz5LZXkgRGVjaXNpb25zPC9oMz48dWw+PGxpPkxhdW5jaCBuZXcgZGFzaGJvYXJkIGZlYXR1cmUgYnkgZW5kIG9mIEphbnVhcnk8L2xpPjxsaT5JbmNyZWFzZSBlbmdpbmVlcmluZyB0ZWFtIGJ5IDIgZGV2ZWxvcGVyczwvbGk+PGxpPkltcGxlbWVudCB3ZWVrbHkgZGVzaWduIHJldmlld3M8L2xpPjwvdWw+PGJsb2NrcXVvdGU+JnF1b3Q7Rm9jdXMgb24gdXNlciBleHBlcmllbmNlIGltcHJvdmVtZW50cyBiYXNlZCBvbiBRMyBmZWVkYmFjayZxdW90OyAtIFByb2R1Y3QgTWFuYWdlcjwvYmxvY2txdW90ZT48aDM+QWN0aW9uIEl0ZW1zPC9oMz48dWw+PGxpPlNhcmFoOiBDcmVhdGUgZGV0YWlsZWQgcHJvamVjdCB0aW1lbGluZTwvbGk+PGxpPk1pa2U6IERyYWZ0IHRlY2huaWNhbCByZXF1aXJlbWVudHM8L2xpPjxsaT5MaXNhOiBTY2hlZHVsZSB1c2VyIHJlc2VhcmNoIHNlc3Npb25zPC9saT48L3VsPjxocj48cD5OZXh0IG1lZXRpbmc6IEphbnVhcnkgNSwgMjAyNTwvcD4iCiAgICAgICAgICAgID48L2RlZXMtaW5wdXQtd3lzaXd5Zz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ib3V0cHV0LWFjdGlvbnMiPgogICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1zaG93LWh0bWwtb3V0cHV0IiBjbGFzcz0iZGVtby1idXR0b24iPlNob3cgSFRNTCBPdXRwdXQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwcmUgaWQ9Im91dHB1dC1wcmV2aWV3LWh0bWwiIGNsYXNzPSJvdXRwdXQtcHJldmlldyIgYXJpYS1saXZlPSJwb2xpdGUiPjwvcHJlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAKICAgICAgICAgIDxkaXYgY2xhc3M9Im91dHB1dC1jYXJkIj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZyAKICAgICAgICAgICAgICBpZD0iZWRpdG9yLXJlY2lwZSIKICAgICAgICAgICAgICBsYWJlbD0iUmVjaXBlIEJsb2cgUG9zdCIgCiAgICAgICAgICAgICAgZGVzY3JpcHRpb249IkZvb2QgYmxvZyB3aXRoIG1peGVkIGNvbnRlbnQiCiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PSJtYXJrZG93biIKICAgICAgICAgICAgICB2YWx1ZT0iIyBVbHRpbWF0ZSBDaG9jb2xhdGUgQ2hpcCBDb29raWVzCgpUaGVyZSdzIG5vdGhpbmcgcXVpdGUgbGlrZSB0aGUgc21lbGwgb2YgZnJlc2hseSBiYWtlZCBjaG9jb2xhdGUgY2hpcCBjb29raWVzLiBUaGlzIHJlY2lwZSBoYXMgYmVlbiBwZXJmZWN0ZWQgb3ZlciB5ZWFycyBvZiB0ZXN0aW5nIQoKIyMgSW5ncmVkaWVudHMKCi0gMsK8IGN1cHMgYWxsLXB1cnBvc2UgZmxvdXIKLSAxIHRzcCBiYWtpbmcgc29kYQotIDEgdHNwIHNhbHQKLSAxIGN1cCBidXR0ZXIsIHNvZnRlbmVkCi0gwr4gY3VwIGdyYW51bGF0ZWQgc3VnYXIKLSDCviBjdXAgcGFja2VkIGJyb3duIHN1Z2FyCi0gMiBsYXJnZSBlZ2dzCi0gMiB0c3AgdmFuaWxsYSBleHRyYWN0Ci0gMiBjdXBzIGNob2NvbGF0ZSBjaGlwcwoKIyMgSW5zdHJ1Y3Rpb25zCgojIyMgU3RlcCAxOiBQcmVwYXJhdGlvbgoKUHJlaGVhdCB5b3VyIG92ZW4gdG8gKiozNzXCsEYgKDE5MMKwQykqKi4gVGhpcyB0ZW1wZXJhdHVyZSBpcyBjcnVjaWFsIGZvciBhY2hpZXZpbmcgdGhlIHBlcmZlY3QgdGV4dHVyZS4KCiMjIyBTdGVwIDI6IE1peCBEcnkgSW5ncmVkaWVudHMKCkluIGEgbWVkaXVtIGJvd2wsIHdoaXNrIHRvZ2V0aGVyOgoKMS4gRmxvdXIKMi4gQmFraW5nIHNvZGEKMy4gU2FsdAoKIyMjIFN0ZXAgMzogQ3JlYW0gQnV0dGVyIGFuZCBTdWdhcnMKClxgXGBcYApDcmVhbSBidXR0ZXIgYW5kIHN1Z2FycyBmb3IgMy00IG1pbnV0ZXMKdW50aWwgbGlnaHQgYW5kIGZsdWZmeQpcYFxgXGAKCj4gKipQcm8gdGlwOioqIFJvb20gdGVtcGVyYXR1cmUgaW5ncmVkaWVudHMgbWl4IGJldHRlciBhbmQgY3JlYXRlIGEgbW9yZSB1bmlmb3JtIGRvdWdoLgoKIyMjIFN0ZXAgNDogQWRkIFdldCBJbmdyZWRpZW50cwoKQmVhdCBpbiBlZ2dzIG9uZSBhdCBhIHRpbWUsIHRoZW4gYWRkIHZhbmlsbGEgZXh0cmFjdC4KCiMjIyBTdGVwIDU6IENvbWJpbmUgYW5kIEJha2UKCkdyYWR1YWxseSBibGVuZCBpbiBmbG91ciBtaXh0dXJlLCB0aGVuIHN0aXIgaW4gY2hvY29sYXRlIGNoaXBzLiBEcm9wIHJvdW5kZWQgdGFibGVzcG9vbnMgb250byB1bmdyZWFzZWQgY29va2llIHNoZWV0cy4KCi0tLQoKKipCYWtpbmcgdGltZToqKiA5LTExIG1pbnV0ZXMgb3IgdW50aWwgZ29sZGVuIGJyb3duCgoqKllpZWxkOioqIEFib3V0IDUgZG96ZW4gY29va2llcyIKICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdXRwdXQtYWN0aW9ucyI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLXNob3ctbWFya2Rvd24tb3V0cHV0IiBjbGFzcz0iZGVtby1idXR0b24iPlNob3cgTWFya2Rvd24gT3V0cHV0PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8cHJlIGlkPSJvdXRwdXQtcHJldmlldy1tYXJrZG93biIgY2xhc3M9Im91dHB1dC1wcmV2aWV3IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPGRlZXMtcGFuZWwgLnRpdGxlPSR7IjYuIFx1ezFGM0E4fSBBZHZhbmNlZCBFZGl0aW5nIn0+CiAgICAgICAgPHAgY2xhc3M9InBhbmVsLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENyZWF0ZSBjb21wbGV4IGRvY3VtZW50cyB3aXRoIG1peGVkIGNvbnRlbnQgdHlwZXMuIFRoZSBlZGl0b3IgaGFuZGxlcyBhbGwgZm9ybWF0dGluZyBzZWFtbGVzc2x5LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgaWQ9ImVkaXRvci10ZWNobmljYWwiCiAgICAgICAgICBsYWJlbD0iVGVjaG5pY2FsIERvY3VtZW50YXRpb24iIAogICAgICAgICAgZGVzY3JpcHRpb249IkNyZWF0ZSB0ZWNobmljYWwgZG9jcyB3aXRoIGNvZGUgZXhhbXBsZXMgYW5kIHN0cnVjdHVyZWQgY29udGVudCIKICAgICAgICAgIHZhbHVlPSI8aDE+QVBJIERvY3VtZW50YXRpb248L2gxPjxwPldlbGNvbWUgdG8gb3VyIEFQSSBkb2N1bWVudGF0aW9uLiBCZWxvdyB5b3UnbGwgZmluZCBleGFtcGxlcyBvZiBob3cgdG8gdXNlIG91ciBlbmRwb2ludHMuPC9wPjxoMj5BdXRoZW50aWNhdGlvbjwvaDI+PHA+QWxsIEFQSSByZXF1ZXN0cyByZXF1aXJlIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGFuIEFQSSBrZXk6PC9wPjxwcmU+PGNvZGU+QXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWTwvY29kZT48L3ByZT48aDI+RW5kcG9pbnRzPC9oMj48aDM+R0VUIC91c2VyczwvaDM+PHA+UmV0cmlldmUgYSBsaXN0IG9mIHVzZXJzIGZyb20gdGhlIHN5c3RlbS48L3A+PHByZT48Y29kZT5jdXJsIC1YIEdFVCBodHRwczovL2FwaS5leGFtcGxlLmNvbS91c2VycyBcXAogIC1IICZxdW90O0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVkmcXVvdDs8L2NvZGU+PC9wcmU+PGJsb2NrcXVvdGU+Tm90ZTogUmF0ZSBsaW1pdGluZyBhcHBsaWVzIHRvIGFsbCBlbmRwb2ludHMuIFlvdSBjYW4gbWFrZSB1cCB0byAxMDAgcmVxdWVzdHMgcGVyIG1pbnV0ZS48L2Jsb2NrcXVvdGU+PGgzPlBPU1QgL3VzZXJzPC9oMz48cD5DcmVhdGUgYSBuZXcgdXNlciBpbiB0aGUgc3lzdGVtLjwvcD48cHJlPjxjb2RlPnsKICAmcXVvdDtuYW1lJnF1b3Q7OiAmcXVvdDtKb2huIERvZSZxdW90OywKICAmcXVvdDtlbWFpbCZxdW90OzogJnF1b3Q7am9obkBleGFtcGxlLmNvbSZxdW90OywKICAmcXVvdDtyb2xlJnF1b3Q7OiAmcXVvdDt1c2VyJnF1b3Q7Cn08L2NvZGU+PC9wcmU+PGhyPjxwPkZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gb3VyIGNvbXBsZXRlIGRvY3VtZW50YXRpb24uPC9wPiIKICAgICAgICAgIG91dHB1dEZvcm1hdD0iaHRtbCIKICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyI3LiBcdTI2OTlcdUZFMEYgRm9ybSBJbnRlZ3JhdGlvbiJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBTZWFtbGVzc2x5IGludGVncmF0ZXMgd2l0aCBkZWVzLWZvcm0gZm9yIGNvbXBsZXRlIGZvcm0gc29sdXRpb25zLiAKICAgICAgICAgIEFsbCBzdGFuZGFyZCBmb3JtIGZlYXR1cmVzIGxpa2UgdmFsaWRhdGlvbiwgcmVxdWlyZWQgZmllbGRzLCBhbmQgZGF0YSBiaW5kaW5nIHdvcmsgb3V0IG9mIHRoZSBib3guCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IAogICAgICAgICAgICBsYWJlbD0iQXJ0aWNsZSBUaXRsZSIgCiAgICAgICAgICAgIHJlcXVpcmVkPSJ0cnVlIgogICAgICAgICAgICB2YWx1ZT0iSG93IHRvIEJ1aWxkIE1vZGVybiBXZWIgQXBwbGljYXRpb25zIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC13eXNpd3lnIAogICAgICAgICAgICBpZD0iZWRpdG9yLWZvcm0taW50ZWdyYXRpb24iCiAgICAgICAgICAgIGxhYmVsPSJBcnRpY2xlIENvbnRlbnQiIAogICAgICAgICAgICBkZXNjcmlwdGlvbj0iV3JpdGUgeW91ciBhcnRpY2xlIGNvbnRlbnQgaGVyZSIKICAgICAgICAgICAgcmVxdWlyZWQ9InRydWUiCiAgICAgICAgICAgIG91dHB1dEZvcm1hdD0ibWFya2Rvd24iCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXd5c2l3eWc+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXRhZ3MKICAgICAgICAgICAgbGFiZWw9IlRhZ3MiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJBZGQgcmVsZXZhbnQgdGFncyBmb3IgeW91ciBhcnRpY2xlIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC10YWdzPgogICAgICAgIDwvZGVlcy1mb3JtPgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOC4gXHV7MUY5RTl9IFByb2dyYW1tYXRpYyBCbG9jayBDcmVhdGlvbiJ9PgogICAgICAgIDxwIGNsYXNzPSJwYW5lbC1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDcmVhdGUgY29udGVudCBwcm9ncmFtbWF0aWNhbGx5IHVzaW5nIHRoZSBibG9jayBBUEkgZm9yIGR5bmFtaWMgZG9jdW1lbnQgZ2VuZXJhdGlvbi4KICAgICAgICA8L3A+CiAgICAgICAgCiAgICAgICAgPGRlZXMtaW5wdXQtd3lzaXd5ZwogICAgICAgICAgaWQ9ImVkaXRvci1wcm9ncmFtbWF0aWMiCiAgICAgICAgICBsYWJlbD0iUHJvZ3JhbW1hdGljYWxseSBHZW5lcmF0ZWQgQ29udGVudCIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGNvbnRlbnQgd2FzIGNyZWF0ZWQgdXNpbmcgdGhlIGltcG9ydEJsb2NrcyBBUEkiCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZ2VuZXJhdGUtcmVwb3J0IiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBHZW5lcmF0ZSBSZXBvcnQKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZ2VuZXJhdGUtcmVjaXBlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBHZW5lcmF0ZSBSZWNpcGUKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tY2xlYXItZWRpdG9yIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBDbGVhciBFZGl0b3IKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiOS4gXHV7MUY0RTR9IEV4cG9ydC9JbXBvcnQgRmVhdHVyZXMifT4KICAgICAgICA8cCBjbGFzcz0icGFuZWwtZGVzY3JpcHRpb24iPgogICAgICAgICAgVGhlIFdZU0lXWUcgZWRpdG9yIHByb3ZpZGVzIG11bHRpcGxlIGV4cG9ydCBmb3JtYXRzIGFuZCBsb3NzbGVzcyBzYXZlL3Jlc3RvcmUgY2FwYWJpbGl0aWVzIGZvciBtYXhpbXVtIGZsZXhpYmlsaXR5LgogICAgICAgIDwvcD4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1ncmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgYmxvY2tzIj4KICAgICAgICAgICAgPHN0cm9uZz5Mb3NzbGVzcyBCbG9ja3M8L3N0cm9uZz4KICAgICAgICAgICAgPHA+RXhwb3J0IGFuZCBpbXBvcnQgcmF3IGJsb2NrIHN0cnVjdHVyZSBmb3IgcGVyZmVjdCByb3VuZC10cmlwIGVkaXRpbmc8L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImV4cG9ydC1pbmZvLWNhcmQgaHRtbCI+CiAgICAgICAgICAgIDxzdHJvbmc+SFRNTCBFeHBvcnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+R2V0IGNsZWFuLCBzZW1hbnRpYyBIVE1MIHJlZ2FyZGxlc3Mgb2Ygb3V0cHV0IGZvcm1hdCBzZXR0aW5nPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1jYXJkIG1hcmtkb3duIj4KICAgICAgICAgICAgPHN0cm9uZz5NYXJrZG93biBFeHBvcnQ8L3N0cm9uZz4KICAgICAgICAgICAgPHA+RXhwb3J0IGFzIE1hcmtkb3duIGZvciBkb2NzLCBSRUFETUVzLCBhbmQgc3RhdGljIHNpdGVzPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJleHBvcnQtaW5mby1jYXJkIHN0YXRlIj4KICAgICAgICAgICAgPHN0cm9uZz5TdGF0ZSBNYW5hZ2VtZW50PC9zdHJvbmc+CiAgICAgICAgICAgIDxwPlNhdmUgYW5kIHJlc3RvcmUgY29tcGxldGUgZWRpdG9yIHN0YXRlIGluY2x1ZGluZyBzZXR0aW5nczwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkZWVzLWlucHV0LXd5c2l3eWcKICAgICAgICAgIGlkPSJlZGl0b3ItZXhwb3J0IgogICAgICAgICAgbGFiZWw9IkV4cG9ydCBEZW1vIEVkaXRvciIKICAgICAgICAgIGRlc2NyaXB0aW9uPSJUcnkgdGhlIGV4cG9ydCBidXR0b25zIGJlbG93IHRvIHNlZSBkaWZmZXJlbnQgb3V0cHV0IGZvcm1hdHMiCiAgICAgICAgICB2YWx1ZT0iPGgxPlNvZnR3YXJlIFJlbGVhc2UgTm90ZXM8L2gxPjxwPjxzdHJvbmc+VmVyc2lvbiAyLjUuMDwvc3Ryb25nPiAtIFJlbGVhc2VkIERlY2VtYmVyIDE1LCAyMDI0PC9wPjxoMj7wn46JIE5ldyBGZWF0dXJlczwvaDI+PHVsPjxsaT5BZGRlZCBkYXJrIG1vZGUgc3VwcG9ydCBhY3Jvc3MgYWxsIGNvbXBvbmVudHM8L2xpPjxsaT5JbXBsZW1lbnRlZCByZWFsLXRpbWUgY29sbGFib3JhdGlvbiBmZWF0dXJlczwvbGk+PGxpPk5ldyBkYXNoYm9hcmQgYW5hbHl0aWNzIHdpZGdldHM8L2xpPjxsaT5FeHBvcnQgZnVuY3Rpb25hbGl0eSBmb3IgYWxsIHJlcG9ydCB0eXBlczwvbGk+PC91bD48aDI+8J+QmyBCdWcgRml4ZXM8L2gyPjx1bD48bGk+Rml4ZWQgbWVtb3J5IGxlYWsgaW4gZGF0YSBwcm9jZXNzaW5nIG1vZHVsZTwvbGk+PGxpPlJlc29sdmVkIGF1dGhlbnRpY2F0aW9uIHRpbWVvdXQgaXNzdWVzPC9saT48bGk+Q29ycmVjdGVkIHRpbWV6b25lIGhhbmRsaW5nIGluIHNjaGVkdWxlZCB0YXNrczwvbGk+PC91bD48aDI+4pqhIFBlcmZvcm1hbmNlIEltcHJvdmVtZW50czwvaDI+PGJsb2NrcXVvdGU+UGFnZSBsb2FkIHRpbWVzIHJlZHVjZWQgYnkgNDAlIHRocm91Z2ggbGF6eSBsb2FkaW5nIGFuZCBjb2RlIHNwbGl0dGluZzwvYmxvY2txdW90ZT48aDI+8J+UpyBUZWNobmljYWwgRGV0YWlsczwvaDI+PHByZT48Y29kZT4vLyBOZXcgQVBJIGVuZHBvaW50IGZvciBiYXRjaCBvcGVyYXRpb25zClBPU1QgL2FwaS92Mi9iYXRjaAp7CiAgJnF1b3Q7b3BlcmF0aW9ucyZxdW90OzogWwogICAgeyAmcXVvdDttZXRob2QmcXVvdDs6ICZxdW90O0dFVCZxdW90OywgJnF1b3Q7cGF0aCZxdW90OzogJnF1b3Q7L3VzZXJzLzEyMyZxdW90OyB9LAogICAgeyAmcXVvdDttZXRob2QmcXVvdDs6ICZxdW90O1BVVCZxdW90OywgJnF1b3Q7cGF0aCZxdW90OzogJnF1b3Q7L3NldHRpbmdzJnF1b3Q7LCAmcXVvdDtib2R5JnF1b3Q7OiB7Li4ufSB9CiAgXQp9PC9jb2RlPjwvcHJlPjxoMj7wn5KhIE1pZ3JhdGlvbiBHdWlkZTwvaDI+PG9sPjxsaT5VcGRhdGUgeW91ciBkZXBlbmRlbmNpZXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uczwvbGk+PGxpPlJ1biBkYXRhYmFzZSBtaWdyYXRpb25zOiA8Y29kZT5ucG0gcnVuIG1pZ3JhdGU8L2NvZGU+PC9saT48bGk+Q2xlYXIgY2FjaGU6IDxjb2RlPm5wbSBydW4gY2FjaGU6Y2xlYXI8L2NvZGU+PC9saT48bGk+UmVzdGFydCBhbGwgc2VydmljZXM8L2xpPjwvb2w+PGhyPjxwPkZvciBxdWVzdGlvbnMgb3IgaXNzdWVzLCBwbGVhc2UgY29udGFjdCB0aGUgZGV2ZWxvcG1lbnQgdGVhbSBvciBmaWxlIGEgdGlja2V0IGluIG91ciBpc3N1ZSB0cmFja2VyLjwvcD4iCiAgICAgICAgPjwvZGVlcy1pbnB1dC13eXNpd3lnPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJ1dHRvbi1ncm91cCI+CiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZXhwb3J0LWJsb2NrcyIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgRXhwb3J0IEJsb2NrcwogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1leHBvcnQtaHRtbCIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgRXhwb3J0IGFzIEhUTUwKICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZXhwb3J0LW1hcmtkb3duIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBFeHBvcnQgYXMgTWFya2Rvd24KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgCiAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tc2F2ZS1zdGF0ZSIgY2xhc3M9ImRlbW8tYnV0dG9uIj4KICAgICAgICAgICAgU2F2ZSBTdGF0ZQogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAKICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1yZXN0b3JlLXN0YXRlIiBjbGFzcz0iZGVtby1idXR0b24iPgogICAgICAgICAgICBSZXN0b3JlIFN0YXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIENuPXAoKCk9Pnt9KTt2YXIgRzEsWWQ9cCgoKT0+e0NuKCk7RzE9Y2xhc3N7c3RhdGljIEhFQURJTkdfUEFUVEVSTlM9W3twYXR0ZXJuOi9eI1tcc1x1MDBBMF0kLyx0eXBlOiJoZWFkaW5nLTEifSx7cGF0dGVybjovXiMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMiJ9LHtwYXR0ZXJuOi9eIyMjW1xzXHUwMEEwXSQvLHR5cGU6ImhlYWRpbmctMyJ9XTtzdGF0aWMgTElTVF9QQVRURVJOUz1be3BhdHRlcm46L15bKi1dW1xzXHUwMEEwXSQvLHR5cGU6ImJ1bGxldCJ9LHtwYXR0ZXJuOi9eKFxkKylcLltcc1x1MDBBMF0kLyx0eXBlOiJvcmRlcmVkIn0se3BhdHRlcm46L14oXGQrKVwpW1xzXHUwMEEwXSQvLHR5cGU6Im9yZGVyZWQifV07c3RhdGljIFFVT1RFX1BBVFRFUk49L14+W1xzXHUwMEEwXSQvO3N0YXRpYyBDT0RFX1BBVFRFUk49L15gYGAkLztzdGF0aWMgRElWSURFUl9QQVRURVJOUz1bIi0tLSIsIioqKiIsIl9fXyJdO3N0YXRpYyBjaGVja0hlYWRpbmdTaG9ydGN1dCh0KXtmb3IobGV0e3BhdHRlcm46cix0eXBlOml9b2YgdGhpcy5IRUFESU5HX1BBVFRFUk5TKWlmKHIudGVzdCh0KSlyZXR1cm57dHlwZTppfTtyZXR1cm4gbnVsbH1zdGF0aWMgY2hlY2tMaXN0U2hvcnRjdXQodCl7Zm9yKGxldHtwYXR0ZXJuOnIsdHlwZTppfW9mIHRoaXMuTElTVF9QQVRURVJOUylpZihyLnRlc3QodCkpcmV0dXJue3R5cGU6Imxpc3QiLGxpc3RUeXBlOml9O3JldHVybiBudWxsfXN0YXRpYyBjaGVja1F1b3RlU2hvcnRjdXQodCl7cmV0dXJuIHRoaXMuUVVPVEVfUEFUVEVSTi50ZXN0KHQpfXN0YXRpYyBjaGVja0NvZGVTaG9ydGN1dCh0KXtyZXR1cm4gdGhpcy5DT0RFX1BBVFRFUk4udGVzdCh0KX1zdGF0aWMgY2hlY2tEaXZpZGVyU2hvcnRjdXQodCl7cmV0dXJuIHRoaXMuRElWSURFUl9QQVRURVJOUy5pbmNsdWRlcyh0KX1zdGF0aWMgZ2V0U2xhc2hNZW51SXRlbXMoKXtyZXR1cm5be3R5cGU6InBhcmFncmFwaCIsbGFiZWw6IlBhcmFncmFwaCIsaWNvbjoibHVjaWRlOnBpbGNyb3cifSx7dHlwZToiaGVhZGluZy0xIixsYWJlbDoiSGVhZGluZyAxIixpY29uOiJsdWNpZGU6aGVhZGluZzEifSx7dHlwZToiaGVhZGluZy0yIixsYWJlbDoiSGVhZGluZyAyIixpY29uOiJsdWNpZGU6aGVhZGluZzIifSx7dHlwZToiaGVhZGluZy0zIixsYWJlbDoiSGVhZGluZyAzIixpY29uOiJsdWNpZGU6aGVhZGluZzMifSx7dHlwZToicXVvdGUiLGxhYmVsOiJRdW90ZSIsaWNvbjoibHVjaWRlOnF1b3RlIn0se3R5cGU6ImNvZGUiLGxhYmVsOiJDb2RlIEJsb2NrIixpY29uOiJsdWNpZGU6ZmlsZUNvZGUifSx7dHlwZToibGlzdCIsbGFiZWw6IkJ1bGxldCBMaXN0IixpY29uOiJsdWNpZGU6bGlzdCJ9LHt0eXBlOiJpbWFnZSIsbGFiZWw6IkltYWdlIixpY29uOiJsdWNpZGU6aW1hZ2UifSx7dHlwZToiZGl2aWRlciIsbGFiZWw6IkRpdmlkZXIiLGljb246Imx1Y2lkZTptaW51cyJ9LHt0eXBlOiJ5b3V0dWJlIixsYWJlbDoiWW91VHViZSIsaWNvbjoibHVjaWRlOnlvdXR1YmUifSx7dHlwZToibWFya2Rvd24iLGxhYmVsOiJNYXJrZG93biIsaWNvbjoibHVjaWRlOmZpbGVUZXh0In0se3R5cGU6Imh0bWwiLGxhYmVsOiJIVE1MIixpY29uOiJsdWNpZGU6Y29kZSJ9LHt0eXBlOiJhdHRhY2htZW50IixsYWJlbDoiRmlsZSBBdHRhY2htZW50IixpY29uOiJsdWNpZGU6cGFwZXJjbGlwIn1dfXN0YXRpYyBnZW5lcmF0ZUJsb2NrSWQoKXtyZXR1cm5gYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWB9fX0pO3ZhciBzaCwkMixlRixRNmU9cCgoKT0+e3hlKCk7eG8oKTtvcigpO0NuKCk7WWQoKTtKZSgpO3NoPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sJDI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGVGPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1zbGFzaC1tZW51IildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ZlKCldLGw9W2ZlKCldLGQ9W2ZlKCldLHg9W2ZlKCldLHk9W2ZlKCldLHNoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmlzaWJsZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InZpc2libGUiaW4gTSxnZXQ6TT0+TS52aXNpYmxlLHNldDooTSxGKT0+e00udmlzaWJsZT1GfX0sbWV0YWRhdGE6en0sbyxzKSxzaCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc2l0aW9uIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4icG9zaXRpb24iaW4gTSxnZXQ6TT0+TS5wb3NpdGlvbixzZXQ6KE0sRik9PntNLnBvc2l0aW9uPUZ9fSxtZXRhZGF0YTp6fSxjLHUpLHNoKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iZmlsdGVyImluIE0sZ2V0Ok09Pk0uZmlsdGVyLHNldDooTSxGKT0+e00uZmlsdGVyPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLHNoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRJbmRleCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNlbGVjdGVkSW5kZXgiaW4gTSxnZXQ6TT0+TS5zZWxlY3RlZEluZGV4LHNldDooTSxGKT0+e00uc2VsZWN0ZWRJbmRleD1GfX0sbWV0YWRhdGE6en0sdixiKSxzaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1lbnVaSW5kZXgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJtZW51WkluZGV4ImluIE0sZ2V0Ok09Pk0ubWVudVpJbmRleCxzZXQ6KE0sRik9PntNLm1lbnVaSW5kZXg9Rn19LG1ldGFkYXRhOnp9LHcsayksc2gobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6en0sbnVsbCxyKSxPPWk9dC52YWx1ZSx6JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnp9KX1zdGF0aWMgaW5zdGFuY2U7c3RhdGljIGdldEluc3RhbmNlKCl7cmV0dXJuIE8uaW5zdGFuY2V8fChPLmluc3RhbmNlPW5ldyBPLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTy5pbnN0YW5jZSkpLE8uaW5zdGFuY2V9I2U9JDIodGhpcyxvLCExKTtnZXQgdmlzaWJsZSgpe3JldHVybiB0aGlzLiNlfXNldCB2aXNpYmxlKHope3RoaXMuI2U9en0jdD0oJDIodGhpcyxzKSwkMih0aGlzLGMse3g6MCx5OjB9KSk7Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHBvc2l0aW9uKHope3RoaXMuI3Q9en0jcj0oJDIodGhpcyx1KSwkMih0aGlzLGgsIiIpKTtnZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGZpbHRlcih6KXt0aGlzLiNyPXp9I2k9KCQyKHRoaXMsZiksJDIodGhpcyx2LDApKTtnZXQgc2VsZWN0ZWRJbmRleCgpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZEluZGV4KHope3RoaXMuI2k9en0jYT0oJDIodGhpcyxiKSwkMih0aGlzLHcsMWUzKSk7Z2V0IG1lbnVaSW5kZXgoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbWVudVpJbmRleCh6KXt0aGlzLiNhPXp9Y2FsbGJhY2s9KCQyKHRoaXMsayksbnVsbCk7c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAwOwogICAgICAgIGhlaWdodDogMDsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KTsKICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgbWluLXdpZHRoOiAyMjBweDsKICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC4xNXMgZWFzZS1vdXQ7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgZmFkZUluU2NhbGUgewogICAgICAgIGZyb20gewogICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCkgdHJhbnNsYXRlWSgtMnB4KTsKICAgICAgICB9CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0gewogICAgICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlciwKICAgICAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgIH0KCiAgICAgIC5zbGFzaC1tZW51LWl0ZW0gLmljb24gewogICAgICAgIHdpZHRoOiAyMHB4OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgfQoKICAgICAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlciAuaWNvbiwKICAgICAgLnNsYXNoLW1lbnUtaXRlbS5zZWxlY3RlZCAuaWNvbiB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7aWYoIXRoaXMudmlzaWJsZSlyZXR1cm4gQ2BgO3RoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpO2xldCB6PXRoaXMuZ2V0RmlsdGVyZWRNZW51SXRlbXMoKTtyZXR1cm4gQ2AKICAgICAgPGRpdiAKICAgICAgICBjbGFzcz0ic2xhc2gtbWVudSIgCiAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wb3NpdGlvbi54fXB4OyB0b3A6ICR7dGhpcy5wb3NpdGlvbi55fXB4OyIKICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgZGF0YS1tZW51LXR5cGU9InNsYXNoIgogICAgICA+CiAgICAgICAgJHt6Lm1hcCgoTSxGKT0+Q2AKICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgIGNsYXNzPSJzbGFzaC1tZW51LWl0ZW0gJHtGPT09dGhpcy5zZWxlY3RlZEluZGV4PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICBkYXRhLWl0ZW0tdHlwZT0iJHtNLnR5cGV9IgogICAgICAgICAgICBkYXRhLWl0ZW0taW5kZXg9IiR7Rn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9Imljb24iIC5pY29uPSIke00uaWNvbn0iIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuPiR7TS5sYWJlbH08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWdldEZpbHRlcmVkTWVudUl0ZW1zKCl7cmV0dXJuIEcxLmdldFNsYXNoTWVudUl0ZW1zKCkuZmlsdGVyKE09PnRoaXMuZmlsdGVyPT09IiJ8fE0ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLmZpbHRlci50b0xvd2VyQ2FzZSgpKSl9c2VsZWN0SXRlbSh6KXt0aGlzLmNhbGxiYWNrJiZ0aGlzLmNhbGxiYWNrKHopLHRoaXMuaGlkZSgpfXNob3coeixNKXt0aGlzLnBvc2l0aW9uPXosdGhpcy5jYWxsYmFjaz1NLHRoaXMuZmlsdGVyPSIiLHRoaXMuc2VsZWN0ZWRJbmRleD0wLHRoaXMubWVudVpJbmRleD1Lci5nZXROZXh0WkluZGV4KCksS3IucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLHRoaXMudmlzaWJsZT0hMH1oaWRlKCl7dGhpcy52aXNpYmxlPSExLHRoaXMuY2FsbGJhY2s9bnVsbCx0aGlzLmZpbHRlcj0iIix0aGlzLnNlbGVjdGVkSW5kZXg9MCxLci51bnJlZ2lzdGVyKHRoaXMpfXVwZGF0ZUZpbHRlcih6KXt0aGlzLmZpbHRlcj16LHRoaXMuc2VsZWN0ZWRJbmRleD0wfW5hdmlnYXRlKHope2xldCBNPXRoaXMuZ2V0RmlsdGVyZWRNZW51SXRlbXMoKTt6PT09ImRvd24iP3RoaXMuc2VsZWN0ZWRJbmRleD0odGhpcy5zZWxlY3RlZEluZGV4KzEpJU0ubGVuZ3RoOnRoaXMuc2VsZWN0ZWRJbmRleD10aGlzLnNlbGVjdGVkSW5kZXg9PT0wP00ubGVuZ3RoLTE6dGhpcy5zZWxlY3RlZEluZGV4LTF9c2VsZWN0Q3VycmVudCgpe2xldCB6PXRoaXMuZ2V0RmlsdGVyZWRNZW51SXRlbXMoKTt6W3RoaXMuc2VsZWN0ZWRJbmRleF0mJnRoaXMuc2VsZWN0SXRlbSh6W3RoaXMuc2VsZWN0ZWRJbmRleF0udHlwZSl9Zmlyc3RVcGRhdGVkKCl7dGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHo9PntsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zbGFzaC1tZW51Iik7TSYmTS5jb250YWlucyh6LnRhcmdldCkmJih6LnByZXZlbnREZWZhdWx0KCksei5zdG9wUHJvcGFnYXRpb24oKSl9KSx0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix6PT57bGV0IEY9ei50YXJnZXQuY2xvc2VzdCgiLnNsYXNoLW1lbnUtaXRlbSIpO2lmKEYpe3oucHJldmVudERlZmF1bHQoKSx6LnN0b3BQcm9wYWdhdGlvbigpO2xldCBEPUYuZ2V0QXR0cmlidXRlKCJkYXRhLWl0ZW0tdHlwZSIpO0QmJnRoaXMuc2VsZWN0SXRlbShEKX19KSx0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHo9PntsZXQgRj16LnRhcmdldC5jbG9zZXN0KCIuc2xhc2gtbWVudS1pdGVtIik7aWYoRil7bGV0IEQ9cGFyc2VJbnQoRi5nZXRBdHRyaWJ1dGUoImRhdGEtaXRlbS1pbmRleCIpfHwiMCIsMTApO3RoaXMuc2VsZWN0ZWRJbmRleD1EfX0sITApLHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHo9PntsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5zbGFzaC1tZW51Iik7TSYmTS5jb250YWlucyh6LnRhcmdldCkmJih6LnByZXZlbnREZWZhdWx0KCksei5zdG9wUHJvcGFnYXRpb24oKSl9LCEwKX1zdGF0aWN7JDIoaSxyKX19O3JldHVybiBPPWl9KSgpfSk7dmFyIFllLG5sPXAoKCk9PntZZT1jbGFzc3tzdGF0aWMgZ2V0U2VsZWN0aW9uSW5mbyguLi50KXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoY29uc29sZS5sb2coIld5c2l3eWdTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uSW5mbyAtIHNlbGVjdGlvbjoiLHIsInJhbmdlQ291bnQ6IixyPy5yYW5nZUNvdW50KSwhcilyZXR1cm4gbnVsbDtpZigiZ2V0Q29tcG9zZWRSYW5nZXMiaW4gciYmdHlwZW9mIHIuZ2V0Q29tcG9zZWRSYW5nZXM9PSJmdW5jdGlvbiIpe2NvbnNvbGUubG9nKCJVc2luZyBnZXRDb21wb3NlZFJhbmdlcyB3aXRoIix0Lmxlbmd0aCwic2hhZG93IHJvb3RzIik7dHJ5e2xldCBpPXIuZ2V0Q29tcG9zZWRSYW5nZXMoe3NoYWRvd1Jvb3RzOnR9KTtpZihjb25zb2xlLmxvZygiZ2V0Q29tcG9zZWRSYW5nZXMgcmV0dXJuZWQiLGkubGVuZ3RoLCJyYW5nZXMiKSxpLmxlbmd0aD4wKXtsZXQgYT1pWzBdO3JldHVybntzdGFydENvbnRhaW5lcjphLnN0YXJ0Q29udGFpbmVyLHN0YXJ0T2Zmc2V0OmEuc3RhcnRPZmZzZXQsZW5kQ29udGFpbmVyOmEuZW5kQ29udGFpbmVyLGVuZE9mZnNldDphLmVuZE9mZnNldCxjb2xsYXBzZWQ6YS5jb2xsYXBzZWR9fX1jYXRjaChpKXtjb25zb2xlLndhcm4oImdldENvbXBvc2VkUmFuZ2VzIGZhaWxlZCwgZmFsbGluZyBiYWNrIHRvIGdldFJhbmdlQXQ6IixpKX19ZWxzZSBjb25zb2xlLmxvZygiZ2V0Q29tcG9zZWRSYW5nZXMgbm90IGF2YWlsYWJsZSwgdXNpbmcgZmFsbGJhY2siKTtpZihyLnJhbmdlQ291bnQ+MCl7bGV0IGk9ci5nZXRSYW5nZUF0KDApO3JldHVybntzdGFydENvbnRhaW5lcjppLnN0YXJ0Q29udGFpbmVyLHN0YXJ0T2Zmc2V0Omkuc3RhcnRPZmZzZXQsZW5kQ29udGFpbmVyOmkuZW5kQ29udGFpbmVyLGVuZE9mZnNldDppLmVuZE9mZnNldCxjb2xsYXBzZWQ6aS5jb2xsYXBzZWR9fXJldHVybiBudWxsfXN0YXRpYyBpc1NlbGVjdGlvbkluRWxlbWVudCh0LHIpe2xldCBpPXI/dGhpcy5nZXRTZWxlY3Rpb25JbmZvKHIpOnRoaXMuZ2V0U2VsZWN0aW9uSW5mbygpO3JldHVybiBpP3QuY29udGFpbnMoaS5zdGFydENvbnRhaW5lcil8fHQuY29udGFpbnMoaS5lbmRDb250YWluZXIpOiExfXN0YXRpYyBnZXRTZWxlY3RlZFRleHQoKXtsZXQgdD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7cmV0dXJuIHQ/dC50b1N0cmluZygpOiIifXN0YXRpYyBjcmVhdGVSYW5nZUZyb21JbmZvKHQpe2xldCByPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIHIuc2V0U3RhcnQodC5zdGFydENvbnRhaW5lcix0LnN0YXJ0T2Zmc2V0KSxyLnNldEVuZCh0LmVuZENvbnRhaW5lcix0LmVuZE9mZnNldCkscn1zdGF0aWMgc2V0U2VsZWN0aW9uRnJvbVJhbmdlKHQpe2xldCByPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtyJiYoci5yZW1vdmVBbGxSYW5nZXMoKSxyLmFkZFJhbmdlKHQpKX1zdGF0aWMgZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQodCwuLi5yKXtsZXQgaT1yLmxlbmd0aD4wP3RoaXMuZ2V0U2VsZWN0aW9uSW5mbyguLi5yKTp0aGlzLmdldFNlbGVjdGlvbkluZm8oKTtpZighaXx8IWkuY29sbGFwc2VkKXJldHVybiBudWxsO3RyeXtsZXQgYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2lmKGEuc2VsZWN0Tm9kZUNvbnRlbnRzKHQpLHRoaXMuY29udGFpbnNBY3Jvc3NTaGFkb3dET00odCxpLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gYS5zZXRFbmQoaS5zdGFydENvbnRhaW5lcixpLnN0YXJ0T2Zmc2V0KSxhLnRvU3RyaW5nKCkubGVuZ3RoO3tsZXQgbz10LnRleHRDb250ZW50fHwiIixzPWkuc3RhcnRDb250YWluZXIudGV4dENvbnRlbnR8fCIiO3JldHVybiBpLnN0YXJ0T2Zmc2V0PT09MD8wOmkuc3RhcnRPZmZzZXQ9PT1zLmxlbmd0aD9vLmxlbmd0aDooY29uc29sZS53YXJuKCJTZWxlY3Rpb24gY29udGFpbmVyIG5vdCB3aXRoaW4gZWxlbWVudCwgdXNpbmcgdGV4dCBtYXRjaGluZyBmYWxsYmFjayIpLGkuc3RhcnRPZmZzZXQpfX1jYXRjaChhKXtyZXR1cm4gY29uc29sZS53YXJuKCJGYWlsZWQgdG8gZ2V0IGN1cnNvciBwb3NpdGlvbjoiLGEpLG51bGx9fXN0YXRpYyBnZXRDdXJzb3JQb3NpdGlvbkZyb21Qb2ludCh0LHIsaSwuLi5hKXtpZigiY2FyZXRQb3NpdGlvbkZyb21Qb2ludCJpbiBkb2N1bWVudCYmZG9jdW1lbnQuY2FyZXRQb3NpdGlvbkZyb21Qb2ludCl7bGV0IG49bnVsbDt0cnl7bj1kb2N1bWVudC5jYXJldFBvc2l0aW9uRnJvbVBvaW50KHQsciwuLi5hKX1jYXRjaHtuPWRvY3VtZW50LmNhcmV0UG9zaXRpb25Gcm9tUG9pbnQodCxyKX1pZihuJiZpLmNvbnRhaW5zKG4ub2Zmc2V0Tm9kZSkpcmV0dXJuIHRoaXMuZ2V0T2Zmc2V0SW5FbGVtZW50KG4ub2Zmc2V0Tm9kZSxuLm9mZnNldCxpKX1pZigiY2FyZXRSYW5nZUZyb21Qb2ludCJpbiBkb2N1bWVudCl7bGV0IG49ZG9jdW1lbnQuY2FyZXRSYW5nZUZyb21Qb2ludCh0LHIpO2lmKG4mJmkuY29udGFpbnMobi5zdGFydENvbnRhaW5lcikpcmV0dXJuIHRoaXMuZ2V0T2Zmc2V0SW5FbGVtZW50KG4uc3RhcnRDb250YWluZXIsbi5zdGFydE9mZnNldCxpKX1yZXR1cm4gbnVsbH1zdGF0aWMgZ2V0T2Zmc2V0SW5FbGVtZW50KHQscixpKXtsZXQgYT0wLG49ITEsbz1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGksTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCkscztmb3IoO3M9by5uZXh0Tm9kZSgpOylpZihzPT09dCl7YSs9cixuPSEwO2JyZWFrfWVsc2UgYSs9cy50ZXh0Q29udGVudD8ubGVuZ3RofHwwO3JldHVybiBuP2E6MH1zdGF0aWMgc2V0Q3Vyc29yUG9zaXRpb24odCxyKXtsZXQgaT1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHQsTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCksYT0wLG49bnVsbCxvPTA7Zm9yKDtpLm5leHROb2RlKCk7KXtsZXQgcz1pLmN1cnJlbnROb2RlLGw9cy50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKGErbD49cil7bj1zLG89ci1hO2JyZWFrfWErPWx9aWYobil7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtzLnNldFN0YXJ0KG4sbykscy5jb2xsYXBzZSghMCksdGhpcy5zZXRTZWxlY3Rpb25Gcm9tUmFuZ2Uocyl9fXN0YXRpYyBjb250YWluc0Fjcm9zc1NoYWRvd0RPTSh0LHIpe2lmKCF0fHwhcilyZXR1cm4hMTtsZXQgaT1yO2Zvcig7aTspe2lmKGk9PT10KXJldHVybiEwO2lmKGkubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUmJmkuaG9zdCl7bGV0IGE9aTtpZihhLmNvbnRhaW5zKHQpKXJldHVybiExO2k9YS5ob3N0fWVsc2UgaT1pLnBhcmVudE5vZGV9cmV0dXJuITF9fX0pO3ZhciBTYyxKNmU9cCgoKT0+e3hlKCk7bmwoKTtTYz1jbGFzc3tzdGF0aWMgZm9ybWF0QnV0dG9ucz1be2NvbW1hbmQ6ImJvbGQiLGljb246IkIiLGxhYmVsOiJCb2xkIixzaG9ydGN1dDoiXHUyMzE4QiJ9LHtjb21tYW5kOiJpdGFsaWMiLGljb246IkkiLGxhYmVsOiJJdGFsaWMiLHNob3J0Y3V0OiJcdTIzMThJIn0se2NvbW1hbmQ6InVuZGVybGluZSIsaWNvbjoiVSIsbGFiZWw6IlVuZGVybGluZSIsc2hvcnRjdXQ6Ilx1MjMxOFUifSx7Y29tbWFuZDoic3RyaWtlVGhyb3VnaCIsaWNvbjoiU1x1MDMzNiIsbGFiZWw6IlN0cmlrZXRocm91Z2gifSx7Y29tbWFuZDoiY29kZSIsaWNvbjoieyB9IixsYWJlbDoiSW5saW5lIENvZGUifSx7Y29tbWFuZDoibGluayIsaWNvbjoiXHV7MUY1MTd9IixsYWJlbDoiTGluayIsc2hvcnRjdXQ6Ilx1MjMxOEsifV07c3RhdGljIHJlbmRlckZvcm1hdHRpbmdNZW51KHQscil7cmV0dXJuIENgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImZvcm1hdHRpbmctbWVudSIgCiAgICAgICAgc3R5bGU9InRvcDogJHt0Lnl9cHg7IGxlZnQ6ICR7dC54fXB4OyIKICAgICAgICBAbW91c2Vkb3duPSIke2k9PntpLnByZXZlbnREZWZhdWx0KCksaS5zdG9wUHJvcGFnYXRpb24oKX19IgogICAgICAgIEBjbGljaz0iJHtpPT5pLnN0b3BQcm9wYWdhdGlvbigpfSIKICAgICAgPgogICAgICAgICR7dGhpcy5mb3JtYXRCdXR0b25zLm1hcChpPT5DYAogICAgICAgICAgPGJ1dHRvbiAKICAgICAgICAgICAgY2xhc3M9ImZvcm1hdC1idXR0b24gJHtpLmNvbW1hbmR9IgogICAgICAgICAgICBAY2xpY2s9IiR7KCk9PnIoaS5jb21tYW5kKX0iCiAgICAgICAgICAgIHRpdGxlPSIke2kubGFiZWx9JHtpLnNob3J0Y3V0P2AgKCR7aS5zaG9ydGN1dH0pYDoiIn0iCiAgICAgICAgICA+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSIke2kuY29tbWFuZD09PSJjb2RlIj8iY29kZS1pY29uIjoiIn0iPiR7aS5pY29ufTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIGApfQogICAgICA8L2Rpdj4KICAgIGB9c3RhdGljIGFwcGx5Rm9ybWF0KHQscixpLGEpe2xldCBuO2lmKGkpbj1pO2Vsc2V7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFvfHxvLnJhbmdlQ291bnQ9PT0wKXJldHVybiExO249by5nZXRSYW5nZUF0KDApfXN3aXRjaCh0KXtjYXNlImJvbGQiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJzdHJvbmciKTticmVhaztjYXNlIml0YWxpYyI6dGhpcy53cmFwU2VsZWN0aW9uKG4sImVtIik7YnJlYWs7Y2FzZSJ1bmRlcmxpbmUiOnRoaXMud3JhcFNlbGVjdGlvbihuLCJ1Iik7YnJlYWs7Y2FzZSJzdHJpa2VUaHJvdWdoIjp0aGlzLndyYXBTZWxlY3Rpb24obiwicyIpO2JyZWFrO2Nhc2UiY29kZSI6dGhpcy53cmFwU2VsZWN0aW9uKG4sImNvZGUiKTticmVhaztjYXNlImxpbmsiOmlmKCFyKXJldHVybiExO3RoaXMud3JhcFNlbGVjdGlvbldpdGhMaW5rKG4scik7YnJlYWt9aWYoYSYmYS5sZW5ndGg+MClZZS5zZXRTZWxlY3Rpb25Gcm9tUmFuZ2Uobik7ZWxzZXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7byYmKG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShuKSl9cmV0dXJuITB9c3RhdGljIHdyYXBTZWxlY3Rpb24odCxyKXtsZXQgaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWkpcmV0dXJuO2lmKHRoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcodCxyKSl0aGlzLnJlbW92ZVRhZ0Zyb21TZWxlY3Rpb24odCxyKTtlbHNle2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocik7dHJ5e2xldCBvPXQuZXh0cmFjdENvbnRlbnRzKCk7bi5hcHBlbmRDaGlsZChvKSx0Lmluc2VydE5vZGUobiksdC5zZWxlY3ROb2RlQ29udGVudHMobiksaS5yZW1vdmVBbGxSYW5nZXMoKSxpLmFkZFJhbmdlKHQpfWNhdGNoKG8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB3cmFwIHNlbGVjdGlvbjoiLG8pfX19c3RhdGljIHNlbGVjdGlvbkNvbnRhaW5zVGFnKHQscil7bGV0IGk9dC5zdGFydENvbnRhaW5lcjtmb3IoO2kmJmkhPT10LmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLm93bmVyRG9jdW1lbnQ7KXtpZihpLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmkudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09cilyZXR1cm4hMDtpPWkucGFyZW50Tm9kZX1mb3IoaT10LmVuZENvbnRhaW5lcjtpJiZpIT09dC5jb21tb25BbmNlc3RvckNvbnRhaW5lci5vd25lckRvY3VtZW50Oyl7aWYoaS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZpLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PXIpcmV0dXJuITA7aT1pLnBhcmVudE5vZGV9bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj10LmNsb25lQ29udGVudHMoKTtyZXR1cm4gYS5hcHBlbmRDaGlsZChuKSxhLmdldEVsZW1lbnRzQnlUYWdOYW1lKHIpLmxlbmd0aD4wfXN0YXRpYyByZW1vdmVUYWdGcm9tU2VsZWN0aW9uKHQscil7bGV0IGk9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFpKXJldHVybjtsZXQgYT10LmNsb25lUmFuZ2UoKSxuPXQuc3RhcnRDb250YWluZXIsbz1udWxsO2Zvcig7biYmbiE9PXQuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKG4ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbi50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1yKXtvPW47YnJlYWt9bj1uLnBhcmVudE5vZGV9bGV0IHM9dC5lbmRDb250YWluZXIsbD1udWxsO2Zvcig7cyYmcyE9PXQuY29tbW9uQW5jZXN0b3JDb250YWluZXIub3duZXJEb2N1bWVudDspe2lmKHMubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmcy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT1yKXtsPXM7YnJlYWt9cz1zLnBhcmVudE5vZGV9byYmYS5zZXRTdGFydEJlZm9yZShvKSxsJiZhLnNldEVuZEFmdGVyKGwpO2xldCBjPWEuZXh0cmFjdENvbnRlbnRzKCksdT10aGlzLnJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQoYyxyKTthLmluc2VydE5vZGUodSk7bGV0IGQ9W10saD1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHUsTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCksZjtmb3IoO2Y9aC5uZXh0Tm9kZSgpOylkLnB1c2goZik7aWYoZC5sZW5ndGg+MCl7bGV0IHg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTt4LnNldFN0YXJ0KGRbMF0sMCkseC5zZXRFbmQoZFtkLmxlbmd0aC0xXSxkW2QubGVuZ3RoLTFdLnRleHRDb250ZW50Py5sZW5ndGh8fDApLGkucmVtb3ZlQWxsUmFuZ2VzKCksaS5hZGRSYW5nZSh4KX19c3RhdGljIHJlbW92ZVRhZ3NGcm9tRnJhZ21lbnQodCxyKXtsZXQgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmFwcGVuZENoaWxkKHQpO2xldCBhPWkuZ2V0RWxlbWVudHNCeVRhZ05hbWUocik7QXJyYXkuZnJvbShhKS5mb3JFYWNoKHM9PntsZXQgbD1zLnBhcmVudE5vZGU7aWYobCl7Zm9yKDtzLmZpcnN0Q2hpbGQ7KWwuaW5zZXJ0QmVmb3JlKHMuZmlyc3RDaGlsZCxzKTtsLnJlbW92ZUNoaWxkKHMpfX0pO2xldCBvPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IoO2kuZmlyc3RDaGlsZDspby5hcHBlbmRDaGlsZChpLmZpcnN0Q2hpbGQpO3JldHVybiBvfXN0YXRpYyB3cmFwU2VsZWN0aW9uV2l0aExpbmsodCxyKXtsZXQgaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWkpcmV0dXJuO3RoaXMuc2VsZWN0aW9uQ29udGFpbnNUYWcodCwiYSIpJiYodGhpcy5yZW1vdmVUYWdGcm9tU2VsZWN0aW9uKHQsImEiKSxpLnJhbmdlQ291bnQ+MCYmKHQ9aS5nZXRSYW5nZUF0KDApKSk7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2EuaHJlZj1yLGEudGFyZ2V0PSJfYmxhbmsiLGEucmVsPSJub29wZW5lciBub3JlZmVycmVyIjt0cnl7bGV0IG49dC5leHRyYWN0Q29udGVudHMoKTthLmFwcGVuZENoaWxkKG4pLHQuaW5zZXJ0Tm9kZShhKSx0LnNlbGVjdE5vZGVDb250ZW50cyhhKSxpLnJlbW92ZUFsbFJhbmdlcygpLGkuYWRkUmFuZ2UodCl9Y2F0Y2gobil7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBsaW5rOiIsbil9fXN0YXRpYyBnZXRTZWxlY3Rpb25Db29yZGluYXRlcyguLi50KXtsZXQgcj1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLnQpO2lmKGNvbnNvbGUubG9nKCJnZXRTZWxlY3Rpb25Db29yZGluYXRlcyAtIHNlbGVjdGlvbkluZm86IixyKSwhcilyZXR1cm4gY29uc29sZS5sb2coIk5vIHNlbGVjdGlvbiBpbmZvIGF2YWlsYWJsZSIpLG51bGw7bGV0IGE9WWUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhyKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihjb25zb2xlLmxvZygiUmFuZ2UgcmVjdDoiLGEpLGEud2lkdGg9PT0wJiZhLmhlaWdodD09PTApe2lmKGNvbnNvbGUubG9nKCJSZWN0IHdpZHRoIGFuZCBoZWlnaHQgYXJlIDAsIHRyeWluZyBkaWZmZXJlbnQgYXBwcm9hY2giKSwiY2FyZXRQb3NpdGlvbkZyb21Qb2ludCJpbiBkb2N1bWVudCl7bGV0IG89d2luZG93LmdldFNlbGVjdGlvbigpO2lmKG8mJm8ucmFuZ2VDb3VudD4wKXtsZXQgcz1vLmdldFJhbmdlQXQoMCksbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bC50ZXh0Q29udGVudD0iXHUyMDBCIixzLmluc2VydE5vZGUobCk7bGV0IGM9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihsLnJlbW92ZSgpLGMud2lkdGg+MHx8Yy5oZWlnaHQ+MCl7bGV0IHU9e3g6Yy5sZWZ0LHk6TWF0aC5tYXgoNDUsYy50b3AtNDUpfTtyZXR1cm4gY29uc29sZS5sb2coIlVzZWQgc3BhbiB0cmljayBmb3IgY29vcmRzOiIsdSksdX19fXJldHVybiBudWxsfWxldCBuPXt4OmEubGVmdCthLndpZHRoLzIseTpNYXRoLm1heCg0NSxhLnRvcC00NSl9O3JldHVybiBjb25zb2xlLmxvZygiUmV0dXJuaW5nIGNvb3JkczoiLG4pLG59fX0pO3ZhciB0RixaZCxyRixLNmU9cCgoKT0+e3hlKCk7eG8oKTtKNmUoKTtKZSgpO3RGPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sWmQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHJGPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1mb3JtYXR0aW5nLW1lbnUiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXTt2YXIgeD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHY9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1bZmUoKV0sbD1bZmUoKV0sZD1bZmUoKV0sdEYodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2aXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4idmlzaWJsZSJpbiBiLGdldDpiPT5iLnZpc2libGUsc2V0OihiLHkpPT57Yi52aXNpYmxlPXl9fSxtZXRhZGF0YTp2fSxvLHMpLHRGKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmI9PiJwb3NpdGlvbiJpbiBiLGdldDpiPT5iLnBvc2l0aW9uLHNldDooYix5KT0+e2IucG9zaXRpb249eX19LG1ldGFkYXRhOnZ9LGMsdSksdEYodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZW51WkluZGV4IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpiPT4ibWVudVpJbmRleCJpbiBiLGdldDpiPT5iLm1lbnVaSW5kZXgsc2V0OihiLHkpPT57Yi5tZW51WkluZGV4PXl9fSxtZXRhZGF0YTp2fSxoLGYpLHRGKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnZ9LG51bGwscikseD1pPXQudmFsdWUsdiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp2fSl9c3RhdGljIGluc3RhbmNlO3N0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB4Lmluc3RhbmNlfHwoeC5pbnN0YW5jZT1uZXcgeCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHguaW5zdGFuY2UpKSx4Lmluc3RhbmNlfSNlPVpkKHRoaXMsbywhMSk7Z2V0IHZpc2libGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdmlzaWJsZSh2KXt0aGlzLiNlPXZ9I3Q9KFpkKHRoaXMscyksWmQodGhpcyxjLHt4OjAseTowfSkpO2dldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLiN0fXNldCBwb3NpdGlvbih2KXt0aGlzLiN0PXZ9I3I9KFpkKHRoaXMsdSksWmQodGhpcyxoLDFlMykpO2dldCBtZW51WkluZGV4KCl7cmV0dXJuIHRoaXMuI3J9c2V0IG1lbnVaSW5kZXgodil7dGhpcy4jcj12fWNhbGxiYWNrPShaZCh0aGlzLGYpLG51bGwpO3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgIH0KCiAgICAgIC5mb3JtYXR0aW5nLW1lbnUgewogICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMyNjI2MjYiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlMGUwZTAiLCIjNDA0MDQwIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBib3gtc2hhZG93OiAwIDJweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAycHg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW5TY2FsZSAwLjE1cyBlYXNlLW91dDsKICAgICAgfQoKICAgICAgQGtleWZyYW1lcyBmYWRlSW5TY2FsZSB7CiAgICAgICAgZnJvbSB7CiAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSB0cmFuc2xhdGVZKDVweCk7CiAgICAgICAgfQogICAgICAgIHRvIHsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbiB7CiAgICAgICAgd2lkdGg6IDMycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjZTBlMGUwIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmZvcm1hdC1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjBmMGYwIiwiIzMzMzMzMyIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDY2Y2MiLCIjNGQ5NGZmIil9OwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLmJvbGQgewogICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICAgIH0KCiAgICAgIC5mb3JtYXQtYnV0dG9uLml0YWxpYyB7CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbi51bmRlcmxpbmUgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CgogICAgICAuZm9ybWF0LWJ1dHRvbiAuY29kZS1pY29uIHsKICAgICAgICBmb250LWZhbWlseTogJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiB0aGlzLnZpc2libGU/KHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLENgCiAgICAgIDxkaXYgCiAgICAgICAgY2xhc3M9ImZvcm1hdHRpbmctbWVudSIgCiAgICAgICAgc3R5bGU9ImxlZnQ6ICR7dGhpcy5wb3NpdGlvbi54fXB4OyB0b3A6ICR7dGhpcy5wb3NpdGlvbi55fXB4OyIKICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgZGF0YS1tZW51LXR5cGU9ImZvcm1hdHRpbmciCiAgICAgID4KICAgICAgICAke1NjLmZvcm1hdEJ1dHRvbnMubWFwKHY9PkNgCiAgICAgICAgICA8YnV0dG9uIAogICAgICAgICAgICBjbGFzcz0iZm9ybWF0LWJ1dHRvbiAke3YuY29tbWFuZH0iCiAgICAgICAgICAgIGRhdGEtY29tbWFuZD0iJHt2LmNvbW1hbmR9IgogICAgICAgICAgICB0aXRsZT0iJHt2LmxhYmVsfSR7di5zaG9ydGN1dD9gICgke3Yuc2hvcnRjdXR9KWA6IiJ9IgogICAgICAgICAgPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iJHt2LmNvbW1hbmQ9PT0iY29kZSI/ImNvZGUtaWNvbiI6IiJ9Ij4ke3YuaWNvbn08L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgKTpDYGB9YXBwbHlGb3JtYXQodil7dGhpcy5jYWxsYmFjayYmdGhpcy5jYWxsYmFjayh2KSx2PT09ImxpbmsiJiZ0aGlzLmhpZGUoKX1zaG93KHYsYil7Y29uc29sZS5sb2coIkZvcm1hdHRpbmdNZW51LnNob3cgY2FsbGVkOiIse3Bvc2l0aW9uOnYsdmlzaWJsZTp0aGlzLnZpc2libGV9KSx0aGlzLnBvc2l0aW9uPXYsdGhpcy5jYWxsYmFjaz1iLHRoaXMubWVudVpJbmRleD1Lci5nZXROZXh0WkluZGV4KCksS3IucmVnaXN0ZXIodGhpcyx0aGlzLm1lbnVaSW5kZXgpLHRoaXMuc3R5bGUuekluZGV4PXRoaXMubWVudVpJbmRleC50b1N0cmluZygpLHRoaXMudmlzaWJsZT0hMH1oaWRlKCl7dGhpcy52aXNpYmxlPSExLHRoaXMuY2FsbGJhY2s9bnVsbCxLci51bnJlZ2lzdGVyKHRoaXMpfXVwZGF0ZVBvc2l0aW9uKHYpe3RoaXMucG9zaXRpb249dn1maXJzdFVwZGF0ZWQoKXt0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdj0+e2xldCBiPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2ImJmIuY29udGFpbnModi50YXJnZXQpJiYodi5wcmV2ZW50RGVmYXVsdCgpLHYuc3RvcFByb3BhZ2F0aW9uKCkpfSksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdj0+e2xldCB5PXYudGFyZ2V0LmNsb3Nlc3QoIi5mb3JtYXQtYnV0dG9uIik7aWYoeSl7di5wcmV2ZW50RGVmYXVsdCgpLHYuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHc9eS5nZXRBdHRyaWJ1dGUoImRhdGEtY29tbWFuZCIpO3cmJnRoaXMuYXBwbHlGb3JtYXQodyl9fSksdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdj0+e2xldCBiPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmZvcm1hdHRpbmctbWVudSIpO2ImJmIuY29udGFpbnModi50YXJnZXQpJiYodi5wcmV2ZW50RGVmYXVsdCgpLHYuc3RvcFByb3BhZ2F0aW9uKCkpfSwhMCl9c3RhdGlje1pkKGkscil9fTtyZXR1cm4geD1pfSkoKX0pO3ZhciBsaD1wKCgpPT57eGUoKTtDbigpO1E2ZSgpO0s2ZSgpfSk7dmFyIHhiLGlGPXAoKCk9Pnt4Yj1bIkphdmFTY3JpcHQiLCJUeXBlU2NyaXB0IiwiUHl0aG9uIiwiSmF2YSIsIkMrKyIsIkMjIiwiR28iLCJSdXN0IiwiSFRNTCIsIkNTUyIsIlNRTCIsIlNoZWxsIiwiSlNPTiIsIllBTUwiLCJNYXJrZG93biIsIlBsYWluIFRleHQiXX0pO3ZhciBlZGUsWTByPXAoKCk9Pnt4ZSgpO2VkZT1vZWAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB9CgogIC53eXNpd3lnLWNvbnRhaW5lciB7CiAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwOTA5MGIiKX07CiAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgIHBhZGRpbmc6IDI0cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC53eXNpd3lnLWNvbnRhaW5lcjpob3ZlciB7CiAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzNmM2Y0NiIpfTsKICB9CgogIC53eXNpd3lnLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4gewogICAgb3V0bGluZTogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMxODE4MWIiKX0sIDAgMCAwIDRweCAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuNSkiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC41KSIpfTsKICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLyogVmlzdWFsIGhpbnQgZm9yIHRleHQgc2VsZWN0aW9uICovCiAgLmVkaXRvci1jb250ZW50OmhvdmVyIHsKICAgIGN1cnNvcjogdGV4dDsKICB9CgogIC5lZGl0b3ItY29udGVudCB7CiAgICBvdXRsaW5lOiBub25lOwogICAgbWluLWhlaWdodDogMTYwcHg7CiAgICBtYXJnaW46IDAgLThweDsKICAgIHBhZGRpbmc6IDAgOHB4OwogIH0KCiAgLmJsb2NrIHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDRweCAwOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBtaW4taGVpZ2h0OiAxLjZlbTsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAvKiBGaXJzdCBhbmQgbGFzdCBibG9ja3MgZG9uJ3QgbmVlZCBleHRyYSBzcGFjaW5nICovCiAgLmJsb2NrLXdyYXBwZXI6Zmlyc3QtY2hpbGQgLmJsb2NrIHsKICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsKICB9CgogIC5ibG9jay13cmFwcGVyOmxhc3QtY2hpbGQgLmJsb2NrIHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQoKICAuYmxvY2suc2VsZWN0ZWQgewogICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIpfTsKICAgIG91dGxpbmU6IDJweCBzb2xpZCAke20uYmRUaGVtZSgicmdiYSg1OSwgMTMwLCAyNDYsIDAuMikiLCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIpfTsKICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgICBtYXJnaW4tcmlnaHQ6IC04cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDhweDsKICAgIHBhZGRpbmctcmlnaHQ6IDhweDsKICB9CgogIC5ibG9ja1tjb250ZW50ZWRpdGFibGVdIHsKICAgIG91dGxpbmU6IG5vbmU7CiAgfQoKICAuYmxvY2sucGFyYWdyYXBoIHsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogIH0KCiAgLmJsb2NrLnBhcmFncmFwaDplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJUeXBlICcvJyBmb3IgY29tbWFuZHMuLi4iOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2suaGVhZGluZy0xIHsKICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC5ibG9jay5oZWFkaW5nLTE6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiSGVhZGluZyAxIjsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMzJweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMiB7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2suaGVhZGluZy0yOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIkhlYWRpbmcgMiI7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBsaW5lLWhlaWdodDogMS4zOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICB9CgogIC5ibG9jay5oZWFkaW5nLTMgewogICAgZm9udC1zaXplOiAyMHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogIH0KCiAgLmJsb2NrLmhlYWRpbmctMzplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJIZWFkaW5nIDMiOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgZm9udC1zaXplOiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgfQoKICAuYmxvY2sucXVvdGUgewogICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgICBsaW5lLWhlaWdodDogMS42OwogIH0KCiAgLmJsb2NrLnF1b3RlOmVtcHR5OjpiZWZvcmUgewogICAgY29udGVudDogIlF1b3RlIjsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmNvZGUtYmxvY2stY29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1hcmdpbjogMjBweCAwOwogIH0KCiAgLmNvZGUtbGFuZ3VhZ2UgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOwogICAgcmlnaHQ6IDA7CiAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgcGFkZGluZzogNHB4IDEycHg7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiAwIDRweCAwIDRweDsKICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7CiAgICB6LWluZGV4OiAxOwogIH0KCiAgLmJsb2NrLmNvZGUgewogICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMTgxODFiIil9OwogICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMjcyNzJhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgcGFkZGluZzogMTZweDsKICAgIHBhZGRpbmctdG9wOiAzMnB4OyAvKiBNYWtlIHJvb20gZm9yIGxhbmd1YWdlIGluZGljYXRvciAqLwogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMS41OwogICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIG92ZXJmbG93LXg6IGF1dG87CiAgfQoKICAuYmxvY2suY29kZTplbXB0eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICIvLyBDb2RlIGJsb2NrIjsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgfQoKICAuYmxvY2subGlzdCB7CiAgICBwYWRkaW5nLWxlZnQ6IDA7CiAgfQoKICAuYmxvY2subGlzdCB1bCwKICAuYmxvY2subGlzdCBvbCB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAwIDAgMCAyNHB4OwogICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTsKICB9CgogIC5ibG9jay5saXN0IHVsIHsKICAgIGxpc3Qtc3R5bGU6IGRpc2M7CiAgfQoKICAuYmxvY2subGlzdCBvbCB7CiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsOwogIH0KCiAgLmJsb2NrLmxpc3QgbGkgewogICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgbGluZS1oZWlnaHQ6IDEuNjsKICB9CgogIC5ibG9jay5saXN0IGxpOmxhc3QtY2hpbGQgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CgogIC5ibG9jay5kaXZpZGVyIHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmc6IDIwcHggMDsKICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogIH0KCiAgLmJsb2NrLmRpdmlkZXIgaHIgewogICAgYm9yZGVyOiBub25lOwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIG1hcmdpbjogMDsKICB9CgogIC5zbGFzaC1tZW51IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgcGFkZGluZzogNHB4OwogICAgei1pbmRleDogMTAwMDsKICAgIG1pbi13aWR0aDogMjIwcHg7CiAgICBtYXgtaGVpZ2h0OiAzMDBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgIHVzZXItc2VsZWN0OiBub25lOwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbSB7CiAgICBwYWRkaW5nOiA4cHggMTBweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgZm9udC1zaXplOiAxNHB4OwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlciwKICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIHsKICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjRmNGY1IiwiIzI3MjcyYSIpfTsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuc2xhc2gtbWVudS1pdGVtIC5pY29uIHsKICAgIHdpZHRoOiAyNHB4OwogICAgaGVpZ2h0OiAyNHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KCiAgLnNsYXNoLW1lbnUtaXRlbTpob3ZlciAuaWNvbiwKICAuc2xhc2gtbWVudS1pdGVtLnNlbGVjdGVkIC5pY29uIHsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQoKICAudG9vbGJhciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IC00MHB4OwogICAgbGVmdDogMDsKICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgcGFkZGluZzogNHB4OwogICAgZGlzcGxheTogbm9uZTsKICAgIGdhcDogNHB4OwogICAgei1pbmRleDogMTAwMDsKICB9CgogIC50b29sYmFyLnZpc2libGUgewogICAgZGlzcGxheTogZmxleDsKICB9CgogIC50b29sYmFyLWJ1dHRvbiB7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMzJweDsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICB9CgogIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogIH0KCiAgLyogRHJhZyBhbmQgRHJvcCBTdHlsZXMgKi8KICAuYmxvY2std3JhcHBlciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZTsKICB9CgogIC8qIEVuc3VyZSBwcm9wZXIgc3BhY2luZyBjb250ZXh0IGZvciBibG9ja3MgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jayB7CiAgICBtYXJnaW4tdG9wOiAxNnB4OwogIH0KCiAgLyogT3ZlcnJpZGUgZm9yIGhlYWRpbmdzIGZvbGxvd2luZyBvdGhlciBibG9ja3MgKi8KICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5oZWFkaW5nLTEsCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suaGVhZGluZy0yLAogIC5ibG9jay13cmFwcGVyICsgLmJsb2NrLXdyYXBwZXIgLmJsb2NrLmhlYWRpbmctMyB7CiAgICBtYXJnaW4tdG9wOiAyNHB4OwogIH0KCiAgLyogQ29kZSBhbmQgcXVvdGUgYmxvY2tzIG5lZWQgY29uc2lzdGVudCBzcGFjaW5nICovCiAgLmJsb2NrLXdyYXBwZXIgKyAuYmxvY2std3JhcHBlciAuYmxvY2suY29kZSwKICAuYmxvY2std3JhcHBlciArIC5ibG9jay13cmFwcGVyIC5ibG9jay5xdW90ZSB7CiAgICBtYXJnaW4tdG9wOiAyMHB4OwogIH0KCiAgLmRyYWctaGFuZGxlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IC0yOHB4OwogICAgdG9wOiA1MCU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKICAgIGN1cnNvcjogZ3JhYjsKICAgIG9wYWNpdHk6IDA7CiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjNzE3MTdhIil9OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogIH0KCiAgLmRyYWctaGFuZGxlOjpiZWZvcmUgewogICAgY29udGVudDogIuKLruKLriI7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBsZXR0ZXItc3BhY2luZzogLTJweDsKICB9CgogIC5ibG9jay13cmFwcGVyOmhvdmVyIC5kcmFnLWhhbmRsZSB7CiAgICBvcGFjaXR5OiAxOwogIH0KCiAgLmRyYWctaGFuZGxlOmhvdmVyIHsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgfQoKICAuZHJhZy1oYW5kbGU6YWN0aXZlIHsKICAgIGN1cnNvcjogZ3JhYmJpbmc7CiAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgfQoKICAuYmxvY2std3JhcHBlci5kcmFnZ2luZyB7CiAgICBvcGFjaXR5OiAwLjg7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDIwMDE7CiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgfQoKCiAgLyogQmxvY2tzIHRoYXQgc2hvdWxkIG1vdmUgb3V0IG9mIHRoZSB3YXkgKi8KICAuYmxvY2std3JhcHBlci5tb3ZlLWRvd24gewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLWRyYWctb2Zmc2V0LCAwcHgpKTsKICB9CgogIC5ibG9jay13cmFwcGVyLm1vdmUtdXAgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoLTEgKiB2YXIoLS1kcmFnLW9mZnNldCwgMHB4KSkpOwogIH0KCiAgLyogRHJvcCBpbmRpY2F0b3IgKi8KICAuZHJvcC1pbmRpY2F0b3IgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjA1KSIpfTsKICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB0cmFuc2l0aW9uOiB0b3AgMC4ycyBlYXNlLCBoZWlnaHQgMC4ycyBlYXNlOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB6LWluZGV4OiAxOTk5OwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB9CgogIC8qIFJlbW92ZSBvbGQgZHJhZy1vdmVyIHN0eWxlcyAqLwogIC5ibG9jay13cmFwcGVyLmRyYWctb3Zlci1iZWZvcmUsCiAgLmJsb2NrLXdyYXBwZXIuZHJhZy1vdmVyLWFmdGVyIHsKICAgIC8qIE5vIGxvbmdlciBuZWVkZWQsIHVzaW5nIGRyb3AgaW5kaWNhdG9yIGluc3RlYWQgKi8KICB9CgogIC5lZGl0b3ItY29udGVudC5kcmFnZ2luZyAqIHsKICAgIHVzZXItc2VsZWN0OiBub25lOwogIH0KCiAgLyogQmxvY2sgU2V0dGluZ3MgQnV0dG9uIC0gUmVtb3ZlZCBpbiBmYXZvciBvZiBjb250ZXh0IG1lbnUgKi8KCiAgLyogVGV4dCBTZWxlY3Rpb24gU3R5bGVzICovCiAgLmJsb2NrIDo6c2VsZWN0aW9uIHsKICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4yKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjIpIil9OwogICAgY29sb3I6IGluaGVyaXQ7CiAgfQoKICAvKiBGb3JtYXR0aW5nIE1lbnUgKi8KICAuZm9ybWF0dGluZy1tZW51IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpOwogICAgcGFkZGluZzogNHB4OwogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogMnB4OwogICAgei1pbmRleDogMTAwMTsKICAgIGFuaW1hdGlvbjogZmFkZUluU2NhbGUgMC4xNXMgZWFzZS1vdXQ7CiAgfQoKICBAa2V5ZnJhbWVzIGZhZGVJblNjYWxlIHsKICAgIGZyb20gewogICAgICBvcGFjaXR5OiAwOwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHRyYW5zbGF0ZVkoMnB4KTsKICAgIH0KICAgIHRvIHsKICAgICAgb3BhY2l0eTogMTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApOwogICAgfQogIH0KCiAgLmZvcm1hdC1idXR0b24gewogICAgd2lkdGg6IDMycHg7CiAgICBoZWlnaHQ6IDMycHg7CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICBmb250LXdlaWdodDogNjAwOwogICAgZm9udC1zaXplOiAxNHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogIH0KCiAgLmZvcm1hdC1idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICB9CgogIC5mb3JtYXQtYnV0dG9uOmFjdGl2ZSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOwogIH0KCiAgLmZvcm1hdC1idXR0b24uYm9sZCB7CiAgICBmb250LXdlaWdodDogNzAwOwogIH0KCiAgLmZvcm1hdC1idXR0b24uaXRhbGljIHsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICB9CgogIC5mb3JtYXQtYnV0dG9uLnVuZGVybGluZSB7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICB9CgogIC5mb3JtYXQtYnV0dG9uIC5jb2RlLWljb24gewogICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDEycHg7CiAgfQoKICAvKiBBcHBsaWVkIGZvcm1hdCBzdHlsZXMgaW4gY29udGVudCAqLwogIC5ibG9jayBzdHJvbmcsCiAgLmJsb2NrIGIgewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2sgZW0sCiAgLmJsb2NrIGkgewogICAgZm9udC1zdHlsZTogaXRhbGljOwogIH0KCiAgLmJsb2NrIHUgewogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgfQoKICAuYmxvY2sgc3RyaWtlLAogIC5ibG9jayBzIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgb3BhY2l0eTogMC43OwogIH0KCiAgLmJsb2NrIGNvZGUgewogICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgcGFkZGluZzogMnB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiAwLjllbTsKICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgfQoKICAuYmxvY2sgYSB7CiAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7CiAgfQoKICAuYmxvY2sgYTpob3ZlciB7CiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgfQpgfSk7dmFyIFJvLHRkZT1wKCgpPT57Q24oKTtSbz1jbGFzc3tzdGF0aWMgZXNjYXBlSHRtbCh0KXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD10LHIuaW5uZXJIVE1MfXN0YXRpYyBmb3JtYXRGaWxlU2l6ZSh0KXtpZih0PT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHI9MTAyNCxpPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxhPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5sb2cocikpO3JldHVybiBwYXJzZUZsb2F0KCh0L01hdGgucG93KHIsYSkpLnRvRml4ZWQoMikpKyIgIitpW2FdfXN0YXRpYyBnZXRIdG1sT3V0cHV0KHQpe3JldHVybiB0Lm1hcChyPT57bGV0IGk9ci5jb250ZW50LmluY2x1ZGVzKCI8IikmJnIuY29udGVudC5pbmNsdWRlcygiPiIpP3IuY29udGVudDp0aGlzLmVzY2FwZUh0bWwoci5jb250ZW50KTtzd2l0Y2goci50eXBlKXtjYXNlInBhcmFncmFwaCI6cmV0dXJuIHIuY29udGVudD9gPHA+JHtpfTwvcD5gOiIiO2Nhc2UiaGVhZGluZy0xIjpyZXR1cm5gPGgxPiR7aX08L2gxPmA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmA8aDI+JHtpfTwvaDI+YDtjYXNlImhlYWRpbmctMyI6cmV0dXJuYDxoMz4ke2l9PC9oMz5gO2Nhc2UicXVvdGUiOnJldHVybmA8YmxvY2txdW90ZT4ke2l9PC9ibG9ja3F1b3RlPmA7Y2FzZSJjb2RlIjpyZXR1cm5gPHByZT48Y29kZT4ke3RoaXMuZXNjYXBlSHRtbChyLmNvbnRlbnQpfTwvY29kZT48L3ByZT5gO2Nhc2UibGlzdCI6bGV0IGE9ci5jb250ZW50LnNwbGl0KGAKYCkuZmlsdGVyKGw9PmwudHJpbSgpKTtpZihhLmxlbmd0aD4wKXtsZXQgbD1yLm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7cmV0dXJuYDwke2x9PiR7YS5tYXAoYz0+YDxsaT4ke2N9PC9saT5gKS5qb2luKCIiKX08LyR7bH0+YH1yZXR1cm4iIjtjYXNlImRpdmlkZXIiOnJldHVybiI8aHI+IjtjYXNlImltYWdlIjpsZXQgbj1yLm1ldGFkYXRhPy51cmw7aWYobil7bGV0IGw9dGhpcy5lc2NhcGVIdG1sKHIuY29udGVudHx8IkltYWdlIik7cmV0dXJuYDxpbWcgc3JjPSIke259IiBhbHQ9IiR7bH0iIC8+YH1yZXR1cm4iIjtjYXNlInlvdXR1YmUiOmxldCBvPXIubWV0YWRhdGE/LnZpZGVvSWQ7cmV0dXJuIG8/YDxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtvfSIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+YDoiIjtjYXNlIm1hcmtkb3duIjpyZXR1cm5gPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+JHt0aGlzLmVzY2FwZUh0bWwoci5jb250ZW50KX08L2Rpdj5gO2Nhc2UiaHRtbCI6cmV0dXJuIHIuY29udGVudDtjYXNlImF0dGFjaG1lbnQiOmxldCBzPXIubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm4gcy5sZW5ndGg+MD9gPGRpdiBjbGFzcz0iYXR0YWNobWVudHMiPiR7cy5tYXAobD0+YDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaXRlbSIgZGF0YS1maWxlLWlkPSIke2wuaWR9Ij4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7bC5kYXRhfSIgZG93bmxvYWQ9IiR7bC5uYW1lfSI+JHt0aGlzLmVzY2FwZUh0bWwobC5uYW1lKX08L2E+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj4oJHt0aGlzLmZvcm1hdEZpbGVTaXplKGwuc2l6ZSl9KTwvc3Bhbj4KICAgICAgICAgICAgICA8L2Rpdj5gKS5qb2luKCIiKX08L2Rpdj5gOiIiO2RlZmF1bHQ6cmV0dXJuYDxwPiR7aX08L3A+YH19KS5maWx0ZXIocj0+ciE9PSIiKS5qb2luKGAKYCl9c3RhdGljIGdldE1hcmtkb3duT3V0cHV0KHQpe3JldHVybiB0Lm1hcChyPT57c3dpdGNoKHIudHlwZSl7Y2FzZSJwYXJhZ3JhcGgiOnJldHVybiByLmNvbnRlbnQ7Y2FzZSJoZWFkaW5nLTEiOnJldHVybmAjICR7ci5jb250ZW50fWA7Y2FzZSJoZWFkaW5nLTIiOnJldHVybmAjIyAke3IuY29udGVudH1gO2Nhc2UiaGVhZGluZy0zIjpyZXR1cm5gIyMjICR7ci5jb250ZW50fWA7Y2FzZSJxdW90ZSI6cmV0dXJuYD4gJHtyLmNvbnRlbnR9YDtjYXNlImNvZGUiOnJldHVybmBcYFxgXGAKJHtyLmNvbnRlbnR9ClxgXGBcYGA7Y2FzZSJsaXN0IjpsZXQgaT1yLmNvbnRlbnQuc3BsaXQoYApgKS5maWx0ZXIoYz0+Yy50cmltKCkpO3JldHVybiByLm1ldGFkYXRhPy5saXN0VHlwZT09PSJvcmRlcmVkIj9pLm1hcCgoYyx1KT0+YCR7dSsxfS4gJHtjfWApLmpvaW4oYApgKTppLm1hcChjPT5gLSAke2N9YCkuam9pbihgCmApO2Nhc2UiZGl2aWRlciI6cmV0dXJuIi0tLSI7Y2FzZSJpbWFnZSI6bGV0IGE9ci5tZXRhZGF0YT8udXJsLG49ci5jb250ZW50fHwiSW1hZ2UiO3JldHVybiBhP2AhWyR7bn1dKCR7YX0pYDoiIjtjYXNlInlvdXR1YmUiOmxldCBvPXIubWV0YWRhdGE/LnZpZGVvSWQscz1yLm1ldGFkYXRhPy51cmx8fChvP2BodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9JHtvfWA6IiIpO3JldHVybiBzP2BbWW91VHViZSBWaWRlb10oJHtzfSlgOiIiO2Nhc2UibWFya2Rvd24iOnJldHVybiByLmNvbnRlbnQ7Y2FzZSJodG1sIjpyZXR1cm5gPCEtLSBIVE1MIEJsb2NrCiR7ci5jb250ZW50fQotLT5gO2Nhc2UiYXR0YWNobWVudCI6bGV0IGw9ci5tZXRhZGF0YT8uZmlsZXN8fFtdO3JldHVybiBsLmxlbmd0aD4wP2wubWFwKGM9PmAtIFske2MubmFtZX1dKCR7Yy5kYXRhfSlgKS5qb2luKGAKYCk6IiI7ZGVmYXVsdDpyZXR1cm4gci5jb250ZW50fX0pLmZpbHRlcihyPT5yIT09IiIpLmpvaW4oYAoKYCl9c3RhdGljIHBhcnNlSHRtbFRvQmxvY2tzKHQpe2xldCBpPW5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcodCwidGV4dC9odG1sIiksYT1bXSxuPW89PntpZihvLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUmJm8udGV4dENvbnRlbnQ/LnRyaW0oKSlhLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6by50ZXh0Q29udGVudC50cmltKCl9KTtlbHNlIGlmKG8ubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7bGV0IHM9byxsPXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChsKXtjYXNlInAiOmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InBhcmFncmFwaCIsY29udGVudDpzLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImgxIjphLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJoZWFkaW5nLTEiLGNvbnRlbnQ6cy5pbm5lckhUTUx8fCIifSk7YnJlYWs7Y2FzZSJoMiI6YS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0yIixjb250ZW50OnMuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UiaDMiOmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMyIsY29udGVudDpzLmlubmVySFRNTHx8IiJ9KTticmVhaztjYXNlImJsb2NrcXVvdGUiOmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6InF1b3RlIixjb250ZW50OnMuaW5uZXJIVE1MfHwiIn0pO2JyZWFrO2Nhc2UicHJlIjpjYXNlImNvZGUiOmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImNvZGUiLGNvbnRlbnQ6cy50ZXh0Q29udGVudHx8IiJ9KTticmVhaztjYXNlInVsIjpjYXNlIm9sIjpsZXQgdT1BcnJheS5mcm9tKHMucXVlcnlTZWxlY3RvckFsbCgibGkiKSkubWFwKGg9PmguaW5uZXJIVE1MfHwiIikuam9pbihgCmApO2EucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6dSxtZXRhZGF0YTp7bGlzdFR5cGU6bD09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifX0pO2JyZWFrO2Nhc2UiaHIiOmEucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImRpdmlkZXIiLGNvbnRlbnQ6IiAifSk7YnJlYWs7Y2FzZSJpbWciOmxldCBkPXM7YS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaW1hZ2UiLGNvbnRlbnQ6ZC5hbHR8fCIiLG1ldGFkYXRhOnt1cmw6ZC5zcmN9fSk7YnJlYWs7ZGVmYXVsdDpzLmNoaWxkTm9kZXMuZm9yRWFjaChoPT5uKGgpKX19fTtyZXR1cm4gaS5ib2R5LmNoaWxkTm9kZXMuZm9yRWFjaChvPT5uKG8pKSxhfXN0YXRpYyBwYXJzZU1hcmtkb3duVG9CbG9ja3ModCl7bGV0IHI9dC5zcGxpdChgCmApLGk9W10sYT1bXTtmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7bGV0IG89cltuXTtpZihvLnN0YXJ0c1dpdGgoIiMgIikpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0xIixjb250ZW50Om8uc3Vic3RyaW5nKDIpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIiMjICIpKWkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6ImhlYWRpbmctMiIsY29udGVudDpvLnN1YnN0cmluZygzKX0pO2Vsc2UgaWYoby5zdGFydHNXaXRoKCIjIyMgIikpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiaGVhZGluZy0zIixjb250ZW50Om8uc3Vic3RyaW5nKDQpfSk7ZWxzZSBpZihvLnN0YXJ0c1dpdGgoIj4gIikpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicXVvdGUiLGNvbnRlbnQ6by5zdWJzdHJpbmcoMil9KTtlbHNlIGlmKG8uc3RhcnRzV2l0aCgiYGBgIikpe2xldCBzPVtdO2ZvcihuKys7bjxyLmxlbmd0aCYmIXJbbl0uc3RhcnRzV2l0aCgiYGBgIik7KXMucHVzaChyW25dKSxuKys7aS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiY29kZSIsY29udGVudDpzLmpvaW4oYApgKX0pfWVsc2UgaWYoby5tYXRjaCgvXihcKnwtKSAvKSlhLnB1c2goby5zdWJzdHJpbmcoMikpLChuPT09ci5sZW5ndGgtMXx8IXJbbisxXS5tYXRjaCgvXihcKnwtKSAvKSkmJihpLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJsaXN0Iixjb250ZW50OmEuam9pbihgCmApLG1ldGFkYXRhOntsaXN0VHlwZToiYnVsbGV0In19KSxhPVtdKTtlbHNlIGlmKG8ubWF0Y2goL15cZCtcLiAvKSlhLnB1c2goby5yZXBsYWNlKC9eXGQrXC4gLywiIikpLChuPT09ci5sZW5ndGgtMXx8IXJbbisxXS5tYXRjaCgvXlxkK1wuIC8pKSYmKGkucHVzaCh7aWQ6YGJsb2NrLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiw5KX1gLHR5cGU6Imxpc3QiLGNvbnRlbnQ6YS5qb2luKGAKYCksbWV0YWRhdGE6e2xpc3RUeXBlOiJvcmRlcmVkIn19KSxhPVtdKTtlbHNlIGlmKG89PT0iLS0tInx8bz09PSIqKioifHxvPT09Il9fXyIpaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToiZGl2aWRlciIsY29udGVudDoiICJ9KTtlbHNlIGlmKG8ubWF0Y2goL14hXFsoW15cXV0qKVxdXCgoW15cKV0rKVwpJC8pKXtsZXQgcz1vLm1hdGNoKC9eIVxbKFteXF1dKilcXVwoKFteXCldKylcKSQvKTtzJiZpLnB1c2goe2lkOmBibG9jay0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsOSl9YCx0eXBlOiJpbWFnZSIsY29udGVudDpzWzFdfHwiIixtZXRhZGF0YTp7dXJsOnNbMl19fSl9ZWxzZSBvLnRyaW0oKSYmaS5wdXNoKHtpZDpgYmxvY2stJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLDkpfWAsdHlwZToicGFyYWdyYXBoIixjb250ZW50Om99KX1yZXR1cm4gaX19fSk7dmFyIGFhLHpjPXAoKCk9Pnt4ZSgpO0NuKCk7dGRlKCk7YWE9Y2xhc3N7c3RhdGljIHJlbmRlckxpc3RDb250ZW50KHQscil7bGV0IGk9dC5zcGxpdChgCmApLmZpbHRlcihuPT5uLnRyaW0oKSk7aWYoaS5sZW5ndGg9PT0wKXJldHVybiIiO2xldCBhPXI/Lmxpc3RUeXBlPT09Im9yZGVyZWQiPyJvbCI6InVsIjtyZXR1cm5gPCR7YX0+JHtpLm1hcChuPT5gPGxpPiR7bn08L2xpPmApLmpvaW4oIiIpfTwvJHthfT5gfXN0YXRpYyByZW5kZXJCbG9jayh0LHIsaSl7aWYodC50eXBlPT09ImRpdmlkZXIiKXJldHVybiBDYAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBkaXZpZGVyIgogICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICA+CiAgICAgICAgICA8aHI+CiAgICAgICAgPC9kaXY+CiAgICAgIGA7aWYodC50eXBlPT09Imxpc3QiKXJldHVybiBDYAogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJibG9jayBsaXN0ICR7cj8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7dC5pZH0iCiAgICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgICBAaW5wdXQ9IiR7aS5vbklucHV0fSIKICAgICAgICAgIEBrZXlkb3duPSIke2kub25LZXlEb3dufSIKICAgICAgICAgIEBmb2N1cz0iJHtpLm9uRm9jdXN9IgogICAgICAgICAgQGJsdXI9IiR7aS5vbkJsdXJ9IgogICAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7aS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgICAgQGNvbXBvc2l0aW9uZW5kPSIke2kub25Db21wb3NpdGlvbkVuZH0iCiAgICAgICAgICBAbW91c2V1cD0iJHtuPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxpLm9uTW91c2VVcCYmaS5vbk1vdXNlVXAobil9fSIKICAgICAgICAgIC5pbm5lckhUTUw9IiR7dGhpcy5yZW5kZXJMaXN0Q29udGVudCh0LmNvbnRlbnQsdC5tZXRhZGF0YSl9IgogICAgICAgID48L2Rpdj4KICAgICAgYDtpZih0LnR5cGU9PT0iY29kZSIpe2xldCBuPXQubWV0YWRhdGE/Lmxhbmd1YWdlfHwicGxhaW4gdGV4dCI7cmV0dXJuIENgCiAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1ibG9jay1jb250YWluZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29kZS1sYW5ndWFnZSI+JHtufTwvZGl2PgogICAgICAgICAgPGRpdgogICAgICAgICAgICBjbGFzcz0iYmxvY2sgJHt0LnR5cGV9ICR7cj8ic2VsZWN0ZWQiOiIifSIKICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgICAgICBAaW5wdXQ9IiR7aS5vbklucHV0fSIKICAgICAgICAgICAgQGtleWRvd249IiR7aS5vbktleURvd259IgogICAgICAgICAgICBAZm9jdXM9IiR7aS5vbkZvY3VzfSIKICAgICAgICAgICAgQGJsdXI9IiR7aS5vbkJsdXJ9IgogICAgICAgICAgICBAY29tcG9zaXRpb25zdGFydD0iJHtpLm9uQ29tcG9zaXRpb25TdGFydH0iCiAgICAgICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHtpLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgICAgICBAbW91c2V1cD0iJHtvPT57Y29uc29sZS5sb2coIkJsb2NrIG1vdXNldXAgZXZlbnQgZmlyZWQiKSxpLm9uTW91c2VVcCYmaS5vbk1vdXNlVXAobyl9fSIKICAgICAgICAgICAgLnRleHRDb250ZW50PSIke3QuY29udGVudHx8IiJ9IgogICAgICAgICAgPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICBgfXJldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrICR7dC50eXBlfSAke3I/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIEBpbnB1dD0iJHtpLm9uSW5wdXR9IgogICAgICAgIEBrZXlkb3duPSIke2kub25LZXlEb3dufSIKICAgICAgICBAZm9jdXM9IiR7aS5vbkZvY3VzfSIKICAgICAgICBAYmx1cj0iJHtpLm9uQmx1cn0iCiAgICAgICAgQGNvbXBvc2l0aW9uc3RhcnQ9IiR7aS5vbkNvbXBvc2l0aW9uU3RhcnR9IgogICAgICAgIEBjb21wb3NpdGlvbmVuZD0iJHtpLm9uQ29tcG9zaXRpb25FbmR9IgogICAgICAgIEBtb3VzZXVwPSIke249Pntjb25zb2xlLmxvZygiQmxvY2sgbW91c2V1cCBldmVudCBmaXJlZCIpLGkub25Nb3VzZVVwJiZpLm9uTW91c2VVcChuKX19IgogICAgICAgIC5pbm5lckhUTUw9IiR7dC5jb250ZW50fHwiIn0iCiAgICAgID48L2Rpdj4KICAgIGB9c3RhdGljIHNldEN1cnNvclRvRW5kKHQpe2xldCByPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighcilyZXR1cm47bGV0IGk9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtpZih0LmNoaWxkTm9kZXMubGVuZ3RoPT09MCl7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlx1MjAwQiIpO3QuYXBwZW5kQ2hpbGQoYSksaS5zZXRTdGFydChhLDEpLGkuY29sbGFwc2UoITApfWVsc2V7bGV0IGE9dGhpcy5nZXRMYXN0Tm9kZSh0KTthLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/aS5zZXRTdGFydChhLGEudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCk6aS5zZXRTdGFydEFmdGVyKGEpLGkuY29sbGFwc2UoITApfXIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShpKSx0LnRleHRDb250ZW50PT09Ilx1MjAwQiImJih0LnRleHRDb250ZW50PSIiKX1zdGF0aWMgc2V0Q3Vyc29yVG9TdGFydCh0KXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXIpcmV0dXJuO2xldCBpPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7aWYodC5jaGlsZE5vZGVzLmxlbmd0aD09PTApaS5zZXRTdGFydCh0LDApLGkuY29sbGFwc2UoITApO2Vsc2V7bGV0IGE9dGhpcy5nZXRGaXJzdE5vZGUodCk7YS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP2kuc2V0U3RhcnQoYSwwKTppLnNldFN0YXJ0QmVmb3JlKGEpLGkuY29sbGFwc2UoITApfXIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShpKX1zdGF0aWMgZ2V0TGFzdE5vZGUodCl7aWYodC5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIHQ7bGV0IHI9dC5jaGlsZE5vZGVzW3QuY2hpbGROb2Rlcy5sZW5ndGgtMV07cmV0dXJuIHIubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERXx8ci5jaGlsZE5vZGVzLmxlbmd0aD09PTA/cjp0aGlzLmdldExhc3ROb2RlKHIpfXN0YXRpYyBnZXRGaXJzdE5vZGUodCl7aWYodC5jaGlsZE5vZGVzLmxlbmd0aD09PTApcmV0dXJuIHQ7bGV0IHI9dC5jaGlsZE5vZGVzWzBdO3JldHVybiByLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV8fHIuY2hpbGROb2Rlcy5sZW5ndGg9PT0wP3I6dGhpcy5nZXRGaXJzdE5vZGUocil9c3RhdGljIGZvY3VzTGlzdEl0ZW0odCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCJsaSIpO2lmKHIpe3IuZm9jdXMoKTtsZXQgaT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGE9d2luZG93LmdldFNlbGVjdGlvbigpO2kuc2VsZWN0Tm9kZUNvbnRlbnRzKHIpLGkuY29sbGFwc2UoITApLGEucmVtb3ZlQWxsUmFuZ2VzKCksYS5hZGRSYW5nZShpKX19fX0pO3ZhciB5YixyZGU9cCgoKT0+e0NuKCk7bGgoKTtZZCgpO3pjKCk7eWI9Y2xhc3N7Y29tcG9uZW50O2NvbnN0cnVjdG9yKHQpe3RoaXMuY29tcG9uZW50PXR9Y3JlYXRlQmxvY2sodD0icGFyYWdyYXBoIixyPSIiLGkpe3JldHVybntpZDpHMS5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOnQsY29udGVudDpyLC4uLmkmJnttZXRhZGF0YTppfX19YXN5bmMgaW5zZXJ0QmxvY2tBZnRlcih0LHIsaT0hMCl7bGV0IGE9dGhpcy5jb21wb25lbnQuYmxvY2tzLG49YS5maW5kSW5kZXgobz0+by5pZD09PXQuaWQpO2lmKHRoaXMuY29tcG9uZW50LmJsb2Nrcz1bLi4uYS5zbGljZSgwLG4rMSksciwuLi5hLnNsaWNlKG4rMSldLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYpe2xldCBvPXRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApO2lmKG8pe2xldCBzPXRoaXMuY29tcG9uZW50LmNyZWF0ZUJsb2NrRWxlbWVudChyKTtvLmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJlbmQiLHMpfX10aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLGkmJnIudHlwZSE9PSJkaXZpZGVyIiYmKGF3YWl0IG5ldyBQcm9taXNlKG89PnNldFRpbWVvdXQobywwKSksYXdhaXQgdGhpcy5mb2N1c0Jsb2NrKHIuaWQsInN0YXJ0IikpfXJlbW92ZUJsb2NrKHQpe2lmKHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLHRoaXMuY29tcG9uZW50LmJsb2Nrcz10aGlzLmNvbXBvbmVudC5ibG9ja3MuZmlsdGVyKHI9PnIuaWQhPT10KSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmKXtsZXQgcj10aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3R9Il1gKTtyJiZyLnJlbW92ZSgpfXRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZmluZEJsb2NrKHQpe3JldHVybiB0aGlzLmNvbXBvbmVudC5ibG9ja3MuZmluZChyPT5yLmlkPT09dCl9Z2V0QmxvY2tJbmRleCh0KXtyZXR1cm4gdGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmRJbmRleChyPT5yLmlkPT09dCl9YXN5bmMgZm9jdXNCbG9jayh0LHI9InN0YXJ0Iil7bGV0IGk9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0fSJdYCk7aWYoaSl7bGV0IGE9aS5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTthJiYoYXdhaXQgbmV3IFByb21pc2Uobj0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pKSxhLmZvY3VzV2l0aEN1cnNvcihyKSl9fXVwZGF0ZUJsb2NrQ29udGVudCh0LHIpe2xldCBpPXRoaXMuZmluZEJsb2NrKHQpO2kmJihpLmNvbnRlbnQ9cix0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpKX10cmFuc2Zvcm1CbG9jayh0LHIsaSl7bGV0IGE9dGhpcy5maW5kQmxvY2sodCk7YSYmKHRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpLGEudHlwZT1yLGEuY29udGVudD0iIixpJiYoYS5tZXRhZGF0YT1pKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQodCksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSl9bW92ZUJsb2NrKHQscil7bGV0IGk9Wy4uLnRoaXMuY29tcG9uZW50LmJsb2Nrc10sYT10aGlzLmdldEJsb2NrSW5kZXgodCk7aWYoYT09PS0xfHxyPDB8fHI+PWkubGVuZ3RoKXJldHVybjtsZXRbbl09aS5zcGxpY2UoYSwxKTtpLnNwbGljZShyLDAsbiksdGhpcy5jb21wb25lbnQuYmxvY2tzPWksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1nZXRQcmV2aW91c0Jsb2NrKHQpe2xldCByPXRoaXMuZ2V0QmxvY2tJbmRleCh0KTtyZXR1cm4gcj4wP3RoaXMuY29tcG9uZW50LmJsb2Nrc1tyLTFdOm51bGx9Z2V0TmV4dEJsb2NrKHQpe2xldCByPXRoaXMuZ2V0QmxvY2tJbmRleCh0KTtyZXR1cm4gcjx0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoLTE/dGhpcy5jb21wb25lbnQuYmxvY2tzW3IrMV06bnVsbH19fSk7dmFyIGYxLEpuPXAoKCk9PntmMT1jbGFzc3tzZXR1cCh0LHIsaSl7fWdldFN0eWxlcygpe3JldHVybiIifX19KTt2YXIgTnIsWjByPXAoKCk9PntOcj1jbGFzc3tzdGF0aWMgaGFuZGxlcnM9bmV3IE1hcDtzdGF0aWMgcmVnaXN0ZXIodCxyKXt0aGlzLmhhbmRsZXJzLnNldCh0LHIpfXN0YXRpYyBnZXRIYW5kbGVyKHQpe3JldHVybiB0aGlzLmhhbmRsZXJzLmdldCh0KX1zdGF0aWMgZ2V0QWxsVHlwZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmhhbmRsZXJzLmtleXMoKSl9fX0pO3ZhciBYMHI9cCgoKT0+e30pO3ZhciB3YixRMHI9cCgoKT0+e0puKCk7eGUoKTt6YygpO25sKCk7d2I9Y2xhc3MgZXh0ZW5kcyBmMXt0eXBlPSJwYXJhZ3JhcGgiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKHQscil7bGV0IGk9cj8iIHNlbGVjdGVkIjoiIixhPXRoaXMuZ2V0UGxhY2Vob2xkZXIoKTtyZXR1cm5gCiAgICAgIDxkaXYKICAgICAgICBjbGFzcz0iYmxvY2sgcGFyYWdyYXBoJHtpfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHthfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke3QuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHt0LnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighYSl7Y29uc29sZS5lcnJvcigiUGFyYWdyYXBoQmxvY2tIYW5kbGVyLnNldHVwOiBObyBwYXJhZ3JhcGggYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1yLmNvbnRlbnQmJiFhLmlubmVySFRNTCYmKGEuaW5uZXJIVE1MPXIuY29udGVudCksYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2kub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGkub25LZXlEb3duKG4pfSksYS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntpLm9uRm9jdXMoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntpLm9uQmx1cigpfSksYS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2kub25Db21wb3NpdGlvblN0YXJ0KCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2kub25Db21wb3NpdGlvbkVuZCgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksaS5vbk1vdXNlVXA/LihuKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIodCxhLHIpfXNldHVwU2VsZWN0aW9uSGFuZGxlcih0LHIsaSl7bGV0IGE9KCk9PntsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW98fG8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBzPW8udG9TdHJpbmcoKTtpZihzLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQodCx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgbD1yLmdldFJvb3ROb2RlKCkuaG9zdCx1PWw/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGQ9bD8uc2hhZG93Um9vdCxoPVtdO3UmJmgucHVzaCh1KSxkJiZoLnB1c2goZCk7bGV0IGY9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5oKTtpZighZilyZXR1cm47bGV0IHg9WWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixmLnN0YXJ0Q29udGFpbmVyKSx2PVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsZi5lbmRDb250YWluZXIpO2lmKHh8fHYpe2lmKHMhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1zO2xldCBiPVllLmNyZWF0ZVJhbmdlRnJvbUluZm8oZikseT1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHt0ZXh0OnMudHJpbSgpLGJsb2NrSWQ6aS5pZCxyYW5nZTpiLHJlY3Q6eSxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixhKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9YTtsZXQgbj10LmNsb3Nlc3QoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKG4pe2xldCBvPW4uZGlzY29ubmVjdGVkQ2FsbGJhY2s7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVyKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfS5iaW5kKHRoaXMpfX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQscil7bGV0IGk9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnIsYnViYmxlczohMCxjb21wb3NlZDohMH0pO3QuZGlzcGF0Y2hFdmVudChpKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIFBhcmFncmFwaCBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnBhcmFncmFwaCB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJUeXBlICcvJyBmb3IgY29tbWFuZHMuLi4ifWdldExhc3RUZXh0Tm9kZSh0KXtpZih0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIHQ7Zm9yKGxldCByPXQuY2hpbGROb2Rlcy5sZW5ndGgtMTtyPj0wO3ItLSl7bGV0IGk9dGhpcy5nZXRMYXN0VGV4dE5vZGUodC5jaGlsZE5vZGVzW3JdKTtpZihpKXJldHVybiBpfXJldHVybiBudWxsfWdldEN1cnNvclBvc2l0aW9uKHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWkpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxzPXI/LnNoYWRvd1Jvb3QsbD1bXTtvJiZsLnB1c2gobykscyYmbC5wdXNoKHMpO2xldCBjPVllLmdldFNlbGVjdGlvbkluZm8oLi4ubCk7aWYoIWN8fCFZZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShpLGMuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCB1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIHUuc2VsZWN0Tm9kZUNvbnRlbnRzKGkpLHUuc2V0RW5kKGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksdS50b1N0cmluZygpLmxlbmd0aH1nZXRDb250ZW50KHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7cmV0dXJuIGkmJmkuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighYSlyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWF8fHQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWE7YS5pbm5lckhUTUw9cixuJiZhLmZvY3VzKCl9c2V0Q3Vyc29yVG9TdGFydCh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2kmJmFhLnNldEN1cnNvclRvU3RhcnQoaSl9c2V0Q3Vyc29yVG9FbmQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpJiZhYS5zZXRDdXJzb3JUb0VuZChpKX1mb2N1cyh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLnBhcmFncmFwaCIpO2kmJihpLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGkuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksaS5mb2N1cygpLGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1pJiZ0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQhPT1pJiZQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57aS5mb2N1cygpfSkpfWZvY3VzV2l0aEN1cnNvcih0LHI9ImVuZCIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucGFyYWdyYXBoIik7aWYoIWEpcmV0dXJuO2lmKGEuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8YS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxyPT09ImVuZCImJmEudGV4dENvbnRlbnQmJmEudGV4dENvbnRlbnQubGVuZ3RoPjApe2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihvKXtsZXQgcz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGw9dGhpcy5nZXRMYXN0VGV4dE5vZGUoYSl8fGE7bC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFPyhzLnNldFN0YXJ0KGwsbC50ZXh0Q29udGVudD8ubGVuZ3RofHwwKSxzLnNldEVuZChsLGwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCkpOihzLnNlbGVjdE5vZGVDb250ZW50cyhsKSxzLmNvbGxhcHNlKCExKSksby5yZW1vdmVBbGxSYW5nZXMoKSxvLmFkZFJhbmdlKHMpfX1hLmZvY3VzKCk7bGV0IG49KCk9PntyPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQodCxpKTpyPT09ImVuZCImJighYS50ZXh0Q29udGVudHx8YS50ZXh0Q29udGVudC5sZW5ndGg9PT0wKT90aGlzLnNldEN1cnNvclRvRW5kKHQsaSk6dHlwZW9mIHI9PSJudW1iZXIiJiZZZS5zZXRDdXJzb3JQb3NpdGlvbihhLHIpfTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YXx8dC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09YT9uKCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hP24oKTpzZXRUaW1lb3V0KCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hKSYmbigpfSwxMCl9KX1nZXRTcGxpdENvbnRlbnQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5wYXJhZ3JhcGgiKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LHM9cj8uc2hhZG93Um9vdCxsPVtdO28mJmwucHVzaChvKSxzJiZsLnB1c2gocyk7bGV0IGM9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5sKTtpZighYyl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCB3PWkudGV4dENvbnRlbnR8fCIiLGs9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbix3Lmxlbmd0aCk7cmV0dXJue2JlZm9yZTp3LnN1YnN0cmluZygwLGspLGFmdGVyOncuc3Vic3RyaW5nKGspfX1yZXR1cm4gbnVsbH1pZighWWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCB3PWkudGV4dENvbnRlbnR8fCIiLGs9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbix3Lmxlbmd0aCk7cmV0dXJue2JlZm9yZTp3LnN1YnN0cmluZygwLGspLGFmdGVyOncuc3Vic3RyaW5nKGspfX1yZXR1cm4gbnVsbH1sZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQscik7aWYodT09PW51bGx8fHU9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6aS5pbm5lckhUTUx9O2xldCBkPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Quc2V0U3RhcnQoaSwwKSxkLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGguc2V0U3RhcnQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxoLnNldEVuZChpLGkuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBmPWQuY2xvbmVDb250ZW50cygpLHg9aC5jbG9uZUNvbnRlbnRzKCksdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt2LmFwcGVuZENoaWxkKGYpO2xldCBiPXYuaW5uZXJIVE1MO3YuaW5uZXJIVE1MPSIiLHYuYXBwZW5kQ2hpbGQoeCk7bGV0IHk9di5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpiLGFmdGVyOnl9fX19KTt2YXIgWGQsSjByPXAoKCk9PntKbigpO3hlKCk7emMoKTtubCgpO1hkPWNsYXNzIGV4dGVuZHMgZjF7dHlwZTtsZXZlbDtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7c2VsZWN0aW9uSGFuZGxlcj1udWxsO2NvbnN0cnVjdG9yKHQpe3N1cGVyKCksdGhpcy50eXBlPXQsdGhpcy5sZXZlbD1wYXJzZUludCh0LnNwbGl0KCItIilbMV0pfXJlbmRlcih0LHIpe2xldCBpPXI/IiBzZWxlY3RlZCI6IiIsYT10aGlzLmdldFBsYWNlaG9sZGVyKCk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIGhlYWRpbmctJHt0aGlzLmxldmVsfSR7aX0iCiAgICAgICAgY29udGVudGVkaXRhYmxlPSJ0cnVlIgogICAgICAgIGRhdGEtcGxhY2Vob2xkZXI9IiR7YX0iCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7dC50eXBlfSIKICAgICAgPjwvZGl2PgogICAgYH1zZXR1cCh0LHIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWEpe2NvbnNvbGUuZXJyb3IoIkhlYWRpbmdCbG9ja0hhbmRsZXIuc2V0dXA6IE5vIGhlYWRpbmcgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1yLmNvbnRlbnQmJiFhLmlubmVySFRNTCYmKGEuaW5uZXJIVE1MPXIuY29udGVudCksYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2kub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGkub25LZXlEb3duKG4pfSksYS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntpLm9uRm9jdXMoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntpLm9uQmx1cigpfSksYS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2kub25Db21wb3NpdGlvblN0YXJ0KCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2kub25Db21wb3NpdGlvbkVuZCgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksaS5vbk1vdXNlVXA/LihuKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIodCxhLHIpfXNldHVwU2VsZWN0aW9uSGFuZGxlcih0LHIsaSl7bGV0IGE9KCk9PntsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW98fG8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBzPW8udG9TdHJpbmcoKTtpZihzLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQodCx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgbD1yLmdldFJvb3ROb2RlKCkuaG9zdCx1PWw/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGQ9bD8uc2hhZG93Um9vdCxoPVtdO3UmJmgucHVzaCh1KSxkJiZoLnB1c2goZCk7bGV0IGY9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5oKTtpZighZilyZXR1cm47bGV0IHg9WWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixmLnN0YXJ0Q29udGFpbmVyKSx2PVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsZi5lbmRDb250YWluZXIpO2lmKHh8fHYpe2lmKHMhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1zO2xldCBiPVllLmNyZWF0ZVJhbmdlRnJvbUluZm8oZikseT1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHt0ZXh0OnMudHJpbSgpLGJsb2NrSWQ6aS5pZCxyYW5nZTpiLHJlY3Q6eSxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixhKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9YTtsZXQgbj1yLmdldFJvb3ROb2RlKCkuaG9zdDtpZihuKXtsZXQgbz1uLmRpc2Nvbm5lY3RlZENhbGxiYWNrO24uZGlzY29ubmVjdGVkQ2FsbGJhY2s9YXN5bmMgZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvbkhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuc2VsZWN0aW9uSGFuZGxlciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPW51bGwpLG8mJmF3YWl0IG8uY2FsbChuKX0uYmluZCh0aGlzKX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHIpe2xldCBpPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDpyLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTt0LmRpc3BhdGNoRXZlbnQoaSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suaGVhZGluZy0xIHsKICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgICAgIG1hcmdpbjogMjRweCAwIDhweCAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jay5oZWFkaW5nLTIgewogICAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgbWFyZ2luOiAyMHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwIiwiI2ZmZmZmZiIpfTsKICAgICAgfQoKICAgICAgLmJsb2NrLmhlYWRpbmctMyB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgICAgICBtYXJnaW46IDE2cHggMCA0cHggMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjZmZmZmZmIil9OwogICAgICB9CiAgICBgfWdldFBsYWNlaG9sZGVyKCl7c3dpdGNoKHRoaXMubGV2ZWwpe2Nhc2UgMTpyZXR1cm4iSGVhZGluZyAxIjtjYXNlIDI6cmV0dXJuIkhlYWRpbmcgMiI7Y2FzZSAzOnJldHVybiJIZWFkaW5nIDMiO2RlZmF1bHQ6cmV0dXJuIkhlYWRpbmcifX1nZXRMYXN0VGV4dE5vZGUodCl7aWYodC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiB0O2ZvcihsZXQgcj10LmNoaWxkTm9kZXMubGVuZ3RoLTE7cj49MDtyLS0pe2xldCBpPXRoaXMuZ2V0TGFzdFRleHROb2RlKHQuY2hpbGROb2Rlc1tyXSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1nZXRDdXJzb3JQb3NpdGlvbih0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFpKXJldHVybiBudWxsO2xldCBvPXI/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qscz1yPy5zaGFkb3dSb290LGw9W107byYmbC5wdXNoKG8pLHMmJmwucHVzaChzKTtsZXQgYz1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmwpO2lmKCFjfHwhWWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhpKSx1LnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudCh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO3JldHVybiBpJiZpLmlubmVySFRNTHx8IiJ9c2V0Q29udGVudCh0LHIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWEpcmV0dXJuO2xldCBuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hO2EuaW5uZXJIVE1MPXIsbiYmYS5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpJiZhYS5zZXRDdXJzb3JUb1N0YXJ0KGkpfXNldEN1cnNvclRvRW5kKHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aSYmYWEuc2V0Q3Vyc29yVG9FbmQoaSl9Zm9jdXModCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoYC5ibG9jay5oZWFkaW5nLSR7dGhpcy5sZXZlbH1gKTtpJiYoaS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxpLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGkuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09aSYmdC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09aSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2kuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IodCxyPSJlbmQiLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcihgLmJsb2NrLmhlYWRpbmctJHt0aGlzLmxldmVsfWApO2lmKCFhKXJldHVybjtpZihhLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGEuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIikscj09PSJlbmQiJiZhLnRleHRDb250ZW50JiZhLnRleHRDb250ZW50Lmxlbmd0aD4wKXtsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYobyl7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxsPXRoaXMuZ2V0TGFzdFRleHROb2RlKGEpfHxhO2wubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERT8ocy5zZXRTdGFydChsLGwudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MCkscy5zZXRFbmQobCxsLnRleHRDb250ZW50Py5sZW5ndGh8fDApKToocy5zZWxlY3ROb2RlQ29udGVudHMobCkscy5jb2xsYXBzZSghMSkpLG8ucmVtb3ZlQWxsUmFuZ2VzKCksby5hZGRSYW5nZShzKX19YS5mb2N1cygpO2xldCBuPSgpPT57cj09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KHQsaSk6cj09PSJlbmQiJiYoIWEudGV4dENvbnRlbnR8fGEudGV4dENvbnRlbnQubGVuZ3RoPT09MCk/dGhpcy5zZXRDdXJzb3JUb0VuZCh0LGkpOnR5cGVvZiByPT0ibnVtYmVyIiYmWWUuc2V0Q3Vyc29yUG9zaXRpb24oYSxyKX07ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWF8fHQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWE/bigpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YXx8dC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09YT9uKCk6c2V0VGltZW91dCgoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YXx8dC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09YSkmJm4oKX0sMTApfSl9Z2V0U3BsaXRDb250ZW50KHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKGAuYmxvY2suaGVhZGluZy0ke3RoaXMubGV2ZWx9YCk7aWYoIWkpcmV0dXJuIG51bGw7bGV0IG89cj8uY29tcG9uZW50Py5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxzPXI/LnNoYWRvd1Jvb3QsbD1bXTtvJiZsLnB1c2gobykscyYmbC5wdXNoKHMpO2xldCBjPVllLmdldFNlbGVjdGlvbkluZm8oLi4ubCk7aWYoIWMpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgdz1pLnRleHRDb250ZW50fHwiIixrPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sdy5sZW5ndGgpO3JldHVybntiZWZvcmU6dy5zdWJzdHJpbmcoMCxrKSxhZnRlcjp3LnN1YnN0cmluZyhrKX19cmV0dXJuIG51bGx9aWYoIVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGksYy5zdGFydENvbnRhaW5lcikpe2lmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgdz1pLnRleHRDb250ZW50fHwiIixrPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24sdy5sZW5ndGgpO3JldHVybntiZWZvcmU6dy5zdWJzdHJpbmcoMCxrKSxhZnRlcjp3LnN1YnN0cmluZyhrKX19cmV0dXJuIG51bGx9bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0LHIpO2lmKHU9PT1udWxsfHx1PT09MClyZXR1cm57YmVmb3JlOiIiLGFmdGVyOmkuaW5uZXJIVE1MfTtsZXQgZD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGg9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtkLnNldFN0YXJ0KGksMCksZC5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxoLnNldFN0YXJ0KGMuc3RhcnRDb250YWluZXIsYy5zdGFydE9mZnNldCksaC5zZXRFbmQoaSxpLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgZj1kLmNsb25lQ29udGVudHMoKSx4PWguY2xvbmVDb250ZW50cygpLHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7di5hcHBlbmRDaGlsZChmKTtsZXQgYj12LmlubmVySFRNTDt2LmlubmVySFRNTD0iIix2LmFwcGVuZENoaWxkKHgpO2xldCB5PXYuaW5uZXJIVE1MO3JldHVybntiZWZvcmU6YixhZnRlcjp5fX19fSk7dmFyIE1iLEswcj1wKCgpPT57Sm4oKTt4ZSgpO3pjKCk7bmwoKTtNYj1jbGFzcyBleHRlbmRzIGYxe3R5cGU9InF1b3RlIjtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7c2VsZWN0aW9uSGFuZGxlcj1udWxsO3JlbmRlcih0LHIpe2xldCBpPXI/IiBzZWxlY3RlZCI6IiIsYT10aGlzLmdldFBsYWNlaG9sZGVyKCk7cmV0dXJuYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImJsb2NrIHF1b3RlJHtpfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1wbGFjZWhvbGRlcj0iJHthfSIKICAgICAgICBkYXRhLWJsb2NrLWlkPSIke3QuaWR9IgogICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHt0LnR5cGV9IgogICAgICA+PC9kaXY+CiAgICBgfXNldHVwKHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFhKXtjb25zb2xlLmVycm9yKCJRdW90ZUJsb2NrSGFuZGxlci5zZXR1cDogTm8gcXVvdGUgYmxvY2sgZWxlbWVudCBmb3VuZCIpO3JldHVybn1yLmNvbnRlbnQmJiFhLmlubmVySFRNTCYmKGEuaW5uZXJIVE1MPXIuY29udGVudCksYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2kub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLGkub25LZXlEb3duKG4pfSksYS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntpLm9uRm9jdXMoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9PntpLm9uQmx1cigpfSksYS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IiwoKT0+e2kub25Db21wb3NpdGlvblN0YXJ0KCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+e2kub25Db21wb3NpdGlvbkVuZCgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byksaS5vbk1vdXNlVXA/LihuKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntzZXRUaW1lb3V0KCgpPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9LDApfSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7byE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pfSksdGhpcy5zZXR1cFNlbGVjdGlvbkhhbmRsZXIodCxhLHIpfXNldHVwU2VsZWN0aW9uSGFuZGxlcih0LHIsaSl7bGV0IGE9KCk9PntsZXQgbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIW98fG8ucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBzPW8udG9TdHJpbmcoKTtpZihzLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQodCx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpO3JldHVybn1sZXQgbD1yLmdldFJvb3ROb2RlKCkuaG9zdCx1PWw/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LGQ9bD8uc2hhZG93Um9vdCxoPVtdO3UmJmgucHVzaCh1KSxkJiZoLnB1c2goZCk7bGV0IGY9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5oKTtpZighZilyZXR1cm47bGV0IHg9WWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixmLnN0YXJ0Q29udGFpbmVyKSx2PVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKHIsZi5lbmRDb250YWluZXIpO2lmKHh8fHYpe2lmKHMhPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1zO2xldCBiPVllLmNyZWF0ZVJhbmdlRnJvbUluZm8oZikseT1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHt0ZXh0OnMudHJpbSgpLGJsb2NrSWQ6aS5pZCxyYW5nZTpiLHJlY3Q6eSxoYXNTZWxlY3Rpb246ITB9KX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQse3RleHQ6IiIsYmxvY2tJZDppLmlkLGhhc1NlbGVjdGlvbjohMX0pKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixhKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9YTtsZXQgbj1yLmdldFJvb3ROb2RlKCkuaG9zdDtpZihuKXtsZXQgbz1uLmRpc2Nvbm5lY3RlZENhbGxiYWNrO24uZGlzY29ubmVjdGVkQ2FsbGJhY2s9YXN5bmMgZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvbkhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLHRoaXMuc2VsZWN0aW9uSGFuZGxlciksdGhpcy5zZWxlY3Rpb25IYW5kbGVyPW51bGwpLG8mJmF3YWl0IG8uY2FsbChuKX0uYmluZCh0aGlzKX19ZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHIpe2xldCBpPW5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDpyLGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KTt0LmRpc3BhdGNoRXZlbnQoaSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAvKiBRdW90ZSBzcGVjaWZpYyBzdHlsZXMgKi8KICAgICAgLmJsb2NrLnF1b3RlIHsKICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNTU1IiwiI2IwYjBiMCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBtYXJnaW46IDE2cHggMDsKICAgICAgfQogICAgYH1nZXRQbGFjZWhvbGRlcigpe3JldHVybiJBZGQgYSBxdW90ZS4uLiJ9Z2V0Q3Vyc29yUG9zaXRpb24odCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFpKXJldHVybiBudWxsO2xldCBvPXI/LmNvbXBvbmVudD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3Qscz1yPy5zaGFkb3dSb290LGw9W107byYmbC5wdXNoKG8pLHMmJmwucHVzaChzKTtsZXQgYz1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmwpO2lmKCFjfHwhWWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSlyZXR1cm4gbnVsbDtsZXQgdT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JldHVybiB1LnNlbGVjdE5vZGVDb250ZW50cyhpKSx1LnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLHUudG9TdHJpbmcoKS5sZW5ndGh9Z2V0Q29udGVudCh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7cmV0dXJuIGkmJmkuaW5uZXJIVE1MfHwiIn1zZXRDb250ZW50KHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFhKXJldHVybjtsZXQgbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YXx8dC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09YTthLmlubmVySFRNTD1yLG4mJmEuZm9jdXMoKX1zZXRDdXJzb3JUb1N0YXJ0KHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpJiZhYS5zZXRDdXJzb3JUb1N0YXJ0KGkpfXNldEN1cnNvclRvRW5kKHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpJiZhYS5zZXRDdXJzb3JUb0VuZChpKX1mb2N1cyh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLnF1b3RlIik7aSYmKGkuaGFzQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8aS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIsInRydWUiKSxpLmZvY3VzKCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWkmJnQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCE9PWkmJlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntpLmZvY3VzKCl9KSl9Zm9jdXNXaXRoQ3Vyc29yKHQscj0iZW5kIixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5xdW90ZSIpO2lmKCFhKXJldHVybjthLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fGEuc2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiLCJ0cnVlIiksYS5mb2N1cygpO2xldCBuPSgpPT57cj09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KHQsaSk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQodCxpKTp0eXBlb2Ygcj09Im51bWJlciImJlllLnNldEN1cnNvclBvc2l0aW9uKGEscil9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hP24oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hKSYmbigpfSl9Z2V0U3BsaXRDb250ZW50KHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2sucXVvdGUiKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LHM9cj8uc2hhZG93Um9vdCxsPVtdO28mJmwucHVzaChvKSxzJiZsLnB1c2gocyk7bGV0IGM9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5sKTtpZighYyl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCB3PWkudGV4dENvbnRlbnR8fCIiLGs9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbix3Lmxlbmd0aCk7cmV0dXJue2JlZm9yZTp3LnN1YnN0cmluZygwLGspLGFmdGVyOncuc3Vic3RyaW5nKGspfX1yZXR1cm4gbnVsbH1pZighWWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oaSxjLnN0YXJ0Q29udGFpbmVyKSl7aWYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbiE9PW51bGwpe2xldCB3PWkudGV4dENvbnRlbnR8fCIiLGs9TWF0aC5taW4odGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbix3Lmxlbmd0aCk7cmV0dXJue2JlZm9yZTp3LnN1YnN0cmluZygwLGspLGFmdGVyOncuc3Vic3RyaW5nKGspfX1yZXR1cm4gbnVsbH1sZXQgdT10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQscik7aWYodT09PW51bGx8fHU9PT0wKXJldHVybntiZWZvcmU6IiIsYWZ0ZXI6aS5pbm5lckhUTUx9O2xldCBkPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Quc2V0U3RhcnQoaSwwKSxkLnNldEVuZChjLnN0YXJ0Q29udGFpbmVyLGMuc3RhcnRPZmZzZXQpLGguc2V0U3RhcnQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSxoLnNldEVuZChpLGkuY2hpbGROb2Rlcy5sZW5ndGgpO2xldCBmPWQuY2xvbmVDb250ZW50cygpLHg9aC5jbG9uZUNvbnRlbnRzKCksdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt2LmFwcGVuZENoaWxkKGYpO2xldCBiPXYuaW5uZXJIVE1MO3YuaW5uZXJIVE1MPSIiLHYuYXBwZW5kQ2hpbGQoeCk7bGV0IHk9di5pbm5lckhUTUw7cmV0dXJue2JlZm9yZTpiLGFmdGVyOnl9fX19KTt2YXIga2IsZTRyPXAoKCk9PntKbigpO3hlKCk7bmwoKTtRYSgpO2lGKCk7QjQoKTtrYj1jbGFzcyBleHRlbmRzIGYxe3R5cGU9ImNvZGUiO2hpZ2hsaWdodFRpbWVyPW51bGw7aGlnaGxpZ2h0SnM9bnVsbDtyZW5kZXIodCxyKXtsZXQgaT10Lm1ldGFkYXRhPy5sYW5ndWFnZXx8InR5cGVzY3JpcHQiLGE9dC5jb250ZW50fHwiIixuPWEuc3BsaXQoYApgKS5sZW5ndGgsbz0iIjtmb3IobGV0IGw9MTtsPD1uO2wrKylvKz1gPGRpdiBjbGFzcz0ibGluZS1udW1iZXIiPiR7bH08L2Rpdj5gO2xldCBzPXhiLm1hcChsPT57bGV0IGM9bC50b0xvd2VyQ2FzZSgpO3JldHVybmA8b3B0aW9uIHZhbHVlPSIke2N9IiAke2M9PT1pPyJzZWxlY3RlZCI6IiJ9PiR7bH08L29wdGlvbj5gfSkuam9pbigiIik7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJjb2RlLWJsb2NrLWNvbnRhaW5lciR7cj8iIHNlbGVjdGVkIjoiIn0iIGRhdGEtbGFuZ3VhZ2U9IiR7aX0iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtaGVhZGVyIj4KICAgICAgICAgIDxzZWxlY3QgY2xhc3M9Imxhbmd1YWdlLXNlbGVjdG9yIiBkYXRhLWJsb2NrLWlkPSIke3QuaWR9Ij4KICAgICAgICAgICAgJHtzfQogICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjb3B5LWJ1dHRvbiIgdGl0bGU9IkNvcHkgY29kZSI+CiAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNvcHktaWNvbiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTAgNi43NUMwIDUuNzg0Ljc4NCA1IDEuNzUgNWgxLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMS41YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMDAuMjUtLjI1di0xLjVhLjc1Ljc1IDAgMDExLjUgMHYxLjVBMS43NSAxLjc1IDAgMDE5LjI1IDE2aC03LjVBMS43NSAxLjc1IDAgMDEwIDE0LjI1di03LjV6Ij48L3BhdGg+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTUgMS43NUM1IC43ODQgNS43ODQgMCA2Ljc1IDBoNy41QzE1LjIxNiAwIDE2IC43ODQgMTYgMS43NXY3LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxMWgtNy41QTEuNzUgMS43NSAwIDAxNSA5LjI1di03LjV6bTEuNzUtLjI1YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWg3LjVhLjI1LjI1IDAgMDAuMjUtLjI1di03LjVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNy41eiI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvcHktdGV4dCI+Q29weTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtYm9keSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5lLW51bWJlcnMiPiR7b308L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvZGUtY29udGVudCI+CiAgICAgICAgICAgIDxwcmUgY2xhc3M9ImNvZGUtcHJlIj48Y29kZSBjbGFzcz0iY29kZS1lZGl0b3IiIAogICAgICAgICAgICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke3QuaWR9IgogICAgICAgICAgICAgICAgIGRhdGEtYmxvY2stdHlwZT0iJHt0LnR5cGV9IgogICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9ImZhbHNlIj4ke3RoaXMuZXNjYXBlSHRtbChhKX08L2NvZGU+PC9wcmU+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpLG49dC5xdWVyeVNlbGVjdG9yKCIuY29kZS1ibG9jay1jb250YWluZXIiKSxvPXQucXVlcnlTZWxlY3RvcigiLmNvcHktYnV0dG9uIikscz10LnF1ZXJ5U2VsZWN0b3IoIi5sYW5ndWFnZS1zZWxlY3RvciIpO2lmKCFhfHwhbilyZXR1cm47cyYmcy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGM9PntsZXQgdT1jLnRhcmdldC52YWx1ZTtyLm1ldGFkYXRhPXsuLi5yLm1ldGFkYXRhLGxhbmd1YWdlOnV9LG4uc2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIix1KSxyLmNvbnRlbnQmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1hJiZ0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKHQsciksaS5vbklucHV0JiZpLm9uSW5wdXQobmV3IElucHV0RXZlbnQoImlucHV0IikpfSksbyYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYXN5bmMoKT0+e2xldCBjPWEudGV4dENvbnRlbnR8fCIiO3RyeXthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjKTtsZXQgdT1vLnF1ZXJ5U2VsZWN0b3IoIi5jb3B5LXRleHQiKSxkPXUudGV4dENvbnRlbnQ7dS50ZXh0Q29udGVudD0iQ29waWVkISIsby5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KCgpPT57dS50ZXh0Q29udGVudD1kLG8uY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9Y2F0Y2godSl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHk6Iix1KTtsZXQgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO2QudmFsdWU9YyxkLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsZC5zdHlsZS5vcGFjaXR5PSIwIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGQpLGQuc2VsZWN0KCk7dHJ5e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iik7bGV0IGg9by5xdWVyeVNlbGVjdG9yKCIuY29weS10ZXh0IiksZj1oLnRleHRDb250ZW50O2gudGV4dENvbnRlbnQ9IkNvcGllZCEiLG8uY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dCgoKT0+e2gudGV4dENvbnRlbnQ9ZixvLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfWNhdGNoKGgpe2NvbnNvbGUuZXJyb3IoIkZhbGxiYWNrIGNvcHkgZmFpbGVkOiIsaCl9ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkKX19KTtsZXQgbD0hMTthLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2w9ITAsbi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIik7bGV0IGM9YS50ZXh0Q29udGVudHx8IiI7YS50ZXh0Q29udGVudD1jLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2xldCB1PWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksZD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7YS5maXJzdENoaWxkJiYodS5zZXRTdGFydChhLmZpcnN0Q2hpbGQsMCksdS5jb2xsYXBzZSghMCksZD8ucmVtb3ZlQWxsUmFuZ2VzKCksZD8uYWRkUmFuZ2UodSkpfSksaS5vbkZvY3VzKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57bD0hMSxuLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRpbmciKSx0aGlzLmFwcGx5SGlnaGxpZ2h0aW5nKHQsciksaS5vbkJsdXIoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGM9PntpLm9uSW5wdXQoYyksdGhpcy51cGRhdGVMaW5lTnVtYmVycyh0KSxjbGVhclRpbWVvdXQodGhpcy5oaWdobGlnaHRUaW1lcil9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGM9PntpZihjLmtleT09PSJUYWIiKXtjLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHUmJnUucmFuZ2VDb3VudD4wKXtsZXQgZD11LmdldFJhbmdlQXQoMCksaD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICAiKTtkLmluc2VydE5vZGUoaCksZC5zZXRTdGFydEFmdGVyKGgpLGQuc2V0RW5kQWZ0ZXIoaCksdS5yZW1vdmVBbGxSYW5nZXMoKSx1LmFkZFJhbmdlKGQpLGkub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSksdGhpcy51cGRhdGVMaW5lTnVtYmVycyh0KX1yZXR1cm59aWYoWyJBcnJvd0xlZnQiLCJBcnJvd1JpZ2h0IiwiQXJyb3dVcCIsIkFycm93RG93biJdLmluY2x1ZGVzKGMua2V5KSl7bGV0IHU9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KSxkPWEudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtpZihjLmtleT09PSJBcnJvd0xlZnQiJiZ1PT09MHx8Yy5rZXk9PT0iQXJyb3dSaWdodCImJnU9PT1kKXtpLm9uS2V5RG93bihjKTtyZXR1cm59aWYoYy5rZXk9PT0iQXJyb3dVcCJ8fGMua2V5PT09IkFycm93RG93biIpe2xldCBoPShhLnRleHRDb250ZW50fHwiIikuc3BsaXQoYApgKSxmPXRoaXMuZ2V0Q3VycmVudExpbmVJbmRleChhKTtpZihjLmtleT09PSJBcnJvd1VwIiYmZj09PTB8fGMua2V5PT09IkFycm93RG93biImJmY9PT1oLmxlbmd0aC0xKXtpLm9uS2V5RG93bihjKTtyZXR1cm59fX1pLm9uS2V5RG93bihjKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLGM9PntjLnByZXZlbnREZWZhdWx0KCk7bGV0IHU9Yy5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCJ0ZXh0L3BsYWluIik7aWYodSl7bGV0IGQ9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKGQmJmQucmFuZ2VDb3VudD4wKXtsZXQgaD1kLmdldFJhbmdlQXQoMCk7aC5kZWxldGVDb250ZW50cygpO2xldCBmPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHUpO2guaW5zZXJ0Tm9kZShmKSxoLnNldFN0YXJ0QWZ0ZXIoZiksaC5zZXRFbmRBZnRlcihmKSxkLnJlbW92ZUFsbFJhbmdlcygpLGQuYWRkUmFuZ2UoaCksaS5vbklucHV0KG5ldyBJbnB1dEV2ZW50KCJpbnB1dCIpKSx0aGlzLnVwZGF0ZUxpbmVOdW1iZXJzKHQpfX19KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT5pLm9uQ29tcG9zaXRpb25TdGFydCgpKSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIiwoKT0+aS5vbkNvbXBvc2l0aW9uRW5kKCkpLHIuY29udGVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMuYXBwbHlIaWdobGlnaHRpbmcodCxyKX0pfXVwZGF0ZUxpbmVOdW1iZXJzKHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIiksaT10LnF1ZXJ5U2VsZWN0b3IoIi5saW5lLW51bWJlcnMiKTtpZighcnx8IWkpcmV0dXJuO2xldCBvPShyLnRleHRDb250ZW50fHwiIikuc3BsaXQoYApgKS5sZW5ndGh8fDEscz0iIjtmb3IobGV0IGw9MTtsPD1vO2wrKylzKz1gPGRpdiBjbGFzcz0ibGluZS1udW1iZXIiPiR7bH08L2Rpdj5gO2kuaW5uZXJIVE1MPXN9Z2V0Q3VycmVudExpbmVJbmRleCh0KXtsZXQgcj13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXJ8fHIucmFuZ2VDb3VudD09PTApcmV0dXJuIDA7bGV0IGk9ci5nZXRSYW5nZUF0KDApLGE9aS5jbG9uZVJhbmdlKCk7cmV0dXJuIGEuc2VsZWN0Tm9kZUNvbnRlbnRzKHQpLGEuc2V0RW5kKGkuc3RhcnRDb250YWluZXIsaS5zdGFydE9mZnNldCksYS50b1N0cmluZygpLnNwbGl0KGAKYCkubGVuZ3RoLTF9YXN5bmMgYXBwbHlIaWdobGlnaHRpbmcodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKCFpKXJldHVybjt0aGlzLmhpZ2hsaWdodEpzfHwodGhpcy5oaWdobGlnaHRKcz1hd2FpdCByYS5nZXRJbnN0YW5jZSgpLmxvYWRIaWdobGlnaHRKcygpKTtsZXQgYT10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpLG49aS50ZXh0Q29udGVudHx8IiIsbz1yLm1ldGFkYXRhPy5sYW5ndWFnZXx8InR5cGVzY3JpcHQiO3RyeXtsZXQgcz10aGlzLmhpZ2hsaWdodEpzLmhpZ2hsaWdodChuLHtsYW5ndWFnZTpvLGlnbm9yZUlsbGVnYWxzOiEwfSk7cy52YWx1ZSYmKGkuaW5uZXJIVE1MPXMudmFsdWUsZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWkmJmEhPT1udWxsJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntZZS5zZXRDdXJzb3JQb3NpdGlvbihpLGEpfSkpfWNhdGNoKHMpe2NvbnNvbGUud2FybigiU3ludGF4IGhpZ2hsaWdodGluZyBmYWlsZWQ6IixzKX19ZXNjYXBlSHRtbCh0KXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD10LHIuaW5uZXJIVE1MfWdldENvbnRlbnQodCl7cmV0dXJuIHQucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik/LnRleHRDb250ZW50fHwiIn1zZXRDb250ZW50KHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZihpJiYoaS50ZXh0Q29udGVudD1yLHRoaXMudXBkYXRlTGluZU51bWJlcnModCksZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWkpKXtsZXQgYT17aWQ6aS5kYXRhc2V0LmJsb2NrSWR8fCIiLHR5cGU6ImNvZGUiLGNvbnRlbnQ6cixtZXRhZGF0YTp7bGFuZ3VhZ2U6dC5xdWVyeVNlbGVjdG9yKCIuY29kZS1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWxhbmd1YWdlIil8fCJ0eXBlc2NyaXB0In19O3RoaXMuYXBwbHlIaWdobGlnaHRpbmcodCxhKX19Z2V0Q3Vyc29yUG9zaXRpb24odCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTtpZighcilyZXR1cm4gbnVsbDtsZXQgaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWl8fGkucmFuZ2VDb3VudD09PTApcmV0dXJuIG51bGw7bGV0IGE9aS5nZXRSYW5nZUF0KDApO2lmKCFyLmNvbnRhaW5zKGEuc3RhcnRDb250YWluZXIpKXJldHVybiBudWxsO2xldCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7cmV0dXJuIG4uc2VsZWN0Tm9kZUNvbnRlbnRzKHIpLG4uc2V0RW5kKGEuc3RhcnRDb250YWluZXIsYS5zdGFydE9mZnNldCksbi50b1N0cmluZygpLmxlbmd0aH1zZXRDdXJzb3JUb1N0YXJ0KHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7ciYmWWUuc2V0Q3Vyc29yUG9zaXRpb24ociwwKX1zZXRDdXJzb3JUb0VuZCh0KXtsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpO2lmKHIpe2xldCBpPXIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtZZS5zZXRDdXJzb3JQb3NpdGlvbihyLGkpfX1mb2N1cyh0KXt0LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcih0LHI9ImVuZCIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik7aSYmKGkuZm9jdXMoKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntyPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQodCk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQodCk6dHlwZW9mIHI9PSJudW1iZXIiJiZZZS5zZXRDdXJzb3JQb3NpdGlvbihpLHIpfSkpfWdldFNwbGl0Q29udGVudCh0KXtsZXQgcj10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO2lmKHI9PT1udWxsKXJldHVybiBudWxsO2xldCBpPXRoaXMuZ2V0Q29udGVudCh0KTtyZXR1cm57YmVmb3JlOmkuc3Vic3RyaW5nKDAsciksYWZ0ZXI6aS5zdWJzdHJpbmcocil9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogQ29kZSBCbG9jayBDb250YWluZXIgLSBNaW5pbWFsaXN0IHNoYWRjbiBzdHlsZSAqLwogICAgICAuY29kZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEhlYWRlciAtIFNpbXBsaWZpZWQgKi8KICAgICAgLmNvZGUtaGVhZGVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIH0KICAgICAgCiAgICAgIC5sYW5ndWFnZS1zZWxlY3RvciB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SXJ9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3I6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAubGFuZ3VhZ2Utc2VsZWN0b3I6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb3B5IEJ1dHRvbiAtIE1pbmltYWwgKi8KICAgICAgLmNvcHktYnV0dG9uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7SXJ9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b246YWN0aXZlIHsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOwogICAgICB9CiAgICAgIAogICAgICAuY29weS1idXR0b24uY29waWVkIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwNTk2NjkiLCIjMTBiOTgxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29weS1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb3B5LWJ1dHRvbjpob3ZlciAuY29weS1pY29uIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CiAgICAgIAogICAgICAuY29weS10ZXh0IHsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CiAgICAgIAogICAgICAvKiBDb2RlIEJvZHkgKi8KICAgICAgLmNvZGUtYm9keSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBMaW5lIE51bWJlcnMgLSBTdWJ0bGUgKi8KICAgICAgLmxpbmUtbnVtYmVycyB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgcGFkZGluZzogMTJweCAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIG1pbi13aWR0aDogNDBweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5saW5lLW51bWJlciB7CiAgICAgICAgcGFkZGluZzogMCAxMnB4IDAgOHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzljYTNhZiIsIiM0YjU1NjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QWR9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIENvZGUgQ29udGVudCAqLwogICAgICAuY29kZS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1wcmUgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgZm9udC1mYW1pbHk6ICR7QWR9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgbWluLWhlaWdodDogNjBweDsKICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTsKICAgICAgfQogICAgICAKICAgICAgLyogUGxhY2Vob2xkZXIgKi8KICAgICAgLmNvZGUtZWRpdG9yOmVtcHR5OjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICIvLyBUeXBlIG9yIHBhc3RlIGNvZGUgaGVyZS4uLiI7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLyogV2hlbiBlZGl0aW5nIChmb2N1c2VkKSwgc2hvdyBncmV5IHRleHQgd2l0aG91dCBoaWdobGlnaHRpbmcgKi8KICAgICAgLmNvZGUtYmxvY2stY29udGFpbmVyLmVkaXRpbmcgLmNvZGUtZWRpdG9yIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWJsb2NrLWNvbnRhaW5lci5lZGl0aW5nIC5jb2RlLWVkaXRvciAqIHsKICAgICAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50OwogICAgICB9CiAgICAgIAogICAgICAvKiBTeW50YXggSGlnaGxpZ2h0aW5nIC0gTXV0ZWQgY29sb3JzICovCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1rZXl3b3JkIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zdHJpbmcgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA1OTY2OSIsIiMxMGI5ODEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1udW1iZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1mdW5jdGlvbiB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLWNvbW1lbnQgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZiNzI4MCIsIiM2YjcyODAiKX07CiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdmFyaWFibGUsCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1hdHRyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNlYTU4MGMiLCIjZmI5MjNjIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtY2xhc3MsCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy10aXRsZSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzYwYTVmYSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtcGFyYW1zIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYnVpbHRfaW4gewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzdjM2FlZCIsIiNhNzhiZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1saXRlcmFsIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3YzNhZWQiLCIjYTc4YmZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtbWV0YSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtZWRpdG9yIC5obGpzLXB1bmN0dWF0aW9uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZDFkNWRiIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtdGFnIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtYXR0cmlidXRlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMyNTYzZWIiLCIjNjBhNWZhIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItdGFnIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1lZGl0b3IgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzI1NjNlYiIsIiM2MGE1ZmEiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5jb2RlLWVkaXRvciAuaGxqcy1zZWxlY3Rvci1pZCB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjN2MzYWVkIiwiI2E3OGJmYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogU2VsZWN0aW9uICovCiAgICAgIC5jb2RlLWVkaXRvcjo6c2VsZWN0aW9uLAogICAgICAuY29kZS1lZGl0b3IgKjo6c2VsZWN0aW9uIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSg5OSwgMTAyLCAyNDEsIDAuMikiLCJyZ2JhKDk5LCAxMDIsIDI0MSwgMC4zKSIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogU2Nyb2xsYmFyIHN0eWxpbmcgLSBNaW5pbWFsICovCiAgICAgIC5jb2RlLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICB9CiAgICAgIAogICAgICAuY29kZS1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgfQogICAgICAKICAgICAgLmNvZGUtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgYH19fSk7dmFyIFNiLHQ0cj1wKCgpPT57Sm4oKTt4ZSgpO3pjKCk7bmwoKTtTYj1jbGFzcyBleHRlbmRzIGYxe3R5cGU9Imxpc3QiO2xhc3RLbm93bkN1cnNvclBvc2l0aW9uPTA7bGFzdFNlbGVjdGVkVGV4dD0iIjtzZWxlY3Rpb25IYW5kbGVyPW51bGw7cmVuZGVyKHQscil7bGV0IGk9cj8iIHNlbGVjdGVkIjoiIixuPSh0Lm1ldGFkYXRhPy5saXN0VHlwZXx8InVub3JkZXJlZCIpPT09Im9yZGVyZWQiPyJvbCI6InVsIixvPXRoaXMucmVuZGVyTGlzdENvbnRlbnQodC5jb250ZW50LHQubWV0YWRhdGEpO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayBsaXN0JHtpfSIKICAgICAgICBjb250ZW50ZWRpdGFibGU9InRydWUiCiAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICBkYXRhLWJsb2NrLXR5cGU9IiR7dC50eXBlfSIKICAgICAgPiR7b308L2Rpdj4KICAgIGB9cmVuZGVyTGlzdENvbnRlbnQodCxyKXtpZighdClyZXR1cm4iPHVsPjxsaT48L2xpPjwvdWw+IjtsZXQgYT0ocj8ubGlzdFR5cGV8fCJ1bm9yZGVyZWQiKT09PSJvcmRlcmVkIj8ib2wiOiJ1bCIsbj10LnNwbGl0KGAKYCkuZmlsdGVyKHM9PnMudHJpbSgpKTtpZihuLmxlbmd0aD09PTApcmV0dXJuYDwke2F9PjxsaT48L2xpPjwvJHthfT5gO2xldCBvPW4ubWFwKHM9PmA8bGk+JHtzfTwvbGk+YCkuam9pbigiIik7cmV0dXJuYDwke2F9PiR7b308LyR7YX0+YH1zZXR1cCh0LHIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFhKXtjb25zb2xlLmVycm9yKCJMaXN0QmxvY2tIYW5kbGVyLnNldHVwOiBObyBsaXN0IGJsb2NrIGVsZW1lbnQgZm91bmQiKTtyZXR1cm59ci5jb250ZW50JiYhYS5pbm5lckhUTUwmJihhLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHIuY29udGVudCxyLm1ldGFkYXRhKSksYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsbj0+e2kub25JbnB1dChuKTtsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+e2xldCBvPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24odCk7aWYobyE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPW8pLG4ua2V5PT09IkVudGVyIiYmIW4uc2hpZnRLZXkpe2xldCBzPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihzJiZzLnJhbmdlQ291bnQ+MCl7bGV0IGM9cy5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoImxpIik7aWYoYyYmYy50ZXh0Q29udGVudD09PSIiKXtuLnByZXZlbnREZWZhdWx0KCksaS5vbktleURvd24obik7cmV0dXJufX19aS5vbktleURvd24obil9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+e2kub25Gb2N1cygpfSksYS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2kub25CbHVyKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLCgpPT57aS5vbkNvbXBvc2l0aW9uU3RhcnQoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCgpPT57aS5vbkNvbXBvc2l0aW9uRW5kKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG49PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKSxpLm9uTW91c2VVcD8uKG4pfSksYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e3NldFRpbWVvdXQoKCk9PntsZXQgbz10aGlzLmdldEN1cnNvclBvc2l0aW9uKHQpO28hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1vKX0sMCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixuPT57bGV0IG89dGhpcy5nZXRDdXJzb3JQb3NpdGlvbih0KTtvIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249byl9KSx0aGlzLnNldHVwU2VsZWN0aW9uSGFuZGxlcih0LGEscil9c2V0dXBTZWxlY3Rpb25IYW5kbGVyKHQscixpKXtsZXQgYT0oKT0+e2xldCBvPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighb3x8by5yYW5nZUNvdW50PT09MClyZXR1cm47bGV0IHM9by50b1N0cmluZygpO2lmKHMubGVuZ3RoPT09MCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0JiYodGhpcy5sYXN0U2VsZWN0ZWRUZXh0PSIiLHRoaXMuZGlzcGF0Y2hTZWxlY3Rpb25FdmVudCh0LHt0ZXh0OiIiLGJsb2NrSWQ6aS5pZCxoYXNTZWxlY3Rpb246ITF9KSk7cmV0dXJufWxldCBsPXIuZ2V0Um9vdE5vZGUoKS5ob3N0LHU9bD8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIik/LnNoYWRvd1Jvb3QsZD1sPy5zaGFkb3dSb290LGg9W107dSYmaC5wdXNoKHUpLGQmJmgucHVzaChkKTtsZXQgZj1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmgpO2lmKCFmKXJldHVybjtsZXQgeD1ZZS5jb250YWluc0Fjcm9zc1NoYWRvd0RPTShyLGYuc3RhcnRDb250YWluZXIpLHY9WWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00ocixmLmVuZENvbnRhaW5lcik7aWYoeHx8dil7aWYocyE9PXRoaXMubGFzdFNlbGVjdGVkVGV4dCl7dGhpcy5sYXN0U2VsZWN0ZWRUZXh0PXM7bGV0IGI9WWUuY3JlYXRlUmFuZ2VGcm9tSW5mbyhmKSx5PWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQse3RleHQ6cy50cmltKCksYmxvY2tJZDppLmlkLHJhbmdlOmIscmVjdDp5LGhhc1NlbGVjdGlvbjohMH0pfX1lbHNlIHRoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoU2VsZWN0aW9uRXZlbnQodCx7dGV4dDoiIixibG9ja0lkOmkuaWQsaGFzU2VsZWN0aW9uOiExfSkpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLGEpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcj1hO2xldCBuPXIuZ2V0Um9vdE5vZGUoKS5ob3N0O2lmKG4pe2xldCBvPW4uZGlzY29ubmVjdGVkQ2FsbGJhY2s7bi5kaXNjb25uZWN0ZWRDYWxsYmFjaz1hc3luYyBmdW5jdGlvbigpe3RoaXMuc2VsZWN0aW9uSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVyKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXI9bnVsbCksbyYmYXdhaXQgby5jYWxsKG4pfS5iaW5kKHRoaXMpfX1kaXNwYXRjaFNlbGVjdGlvbkV2ZW50KHQscil7bGV0IGk9bmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnIsYnViYmxlczohMCxjb21wb3NlZDohMH0pO3QuZGlzcGF0Y2hFdmVudChpKX1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIExpc3Qgc3BlY2lmaWMgc3R5bGVzICovCiAgICAgIC5ibG9jay5saXN0IHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAuYmxvY2subGlzdCB1bCwKICAgICAgLmJsb2NrLmxpc3Qgb2wgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5ibG9jay5saXN0IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIH0KICAgICAgCiAgICAgIC5ibG9jay5saXN0IGxpOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KICAgIGB9Z2V0UGxhY2Vob2xkZXIoKXtyZXR1cm4iIn1nZXRDdXJzb3JQb3NpdGlvbih0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgbz1yPy5jb21wb25lbnQ/LmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LHM9cj8uc2hhZG93Um9vdCxsPVtdO28mJmwucHVzaChvKSxzJiZsLnB1c2gocyk7bGV0IGM9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5sKTtpZighY3x8IVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGksYy5zdGFydENvbnRhaW5lcikpcmV0dXJuIG51bGw7bGV0IHU9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtyZXR1cm4gdS5zZWxlY3ROb2RlQ29udGVudHMoaSksdS5zZXRFbmQoYy5zdGFydENvbnRhaW5lcixjLnN0YXJ0T2Zmc2V0KSx1LnRvU3RyaW5nKCkubGVuZ3RofWdldENvbnRlbnQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWkpcmV0dXJuIiI7bGV0IGE9aS5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpO3JldHVybiBBcnJheS5mcm9tKGEpLm1hcChvPT5vLnRleHRDb250ZW50fHwiIikuam9pbihgCmApfXNldENvbnRlbnQodCxyLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighYSlyZXR1cm47bGV0IG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWF8fHQuc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudD09PWEscz1hLnF1ZXJ5U2VsZWN0b3IoInVsLCBvbCIpPy50YWdOYW1lPT09Ik9MIjthLmlubmVySFRNTD10aGlzLnJlbmRlckxpc3RDb250ZW50KHIse2xpc3RUeXBlOnM/Im9yZGVyZWQiOiJ1bm9yZGVyZWQifSksbiYmYS5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5saXN0Iik7aWYoIWkpcmV0dXJuO2xldCBhPWkucXVlcnlTZWxlY3RvcigibGkiKTtpZihhKXtsZXQgbj10aGlzLmdldEZpcnN0VGV4dE5vZGUoYSk7aWYobil7bGV0IG89ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxzPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtvLnNldFN0YXJ0KG4sMCksby5zZXRFbmQobiwwKSxzPy5yZW1vdmVBbGxSYW5nZXMoKSxzPy5hZGRSYW5nZShvKX19fXNldEN1cnNvclRvRW5kKHQscil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuYmxvY2subGlzdCIpO2lmKCFpKXJldHVybjtsZXQgYT1pLnF1ZXJ5U2VsZWN0b3IoImxpOmxhc3QtY2hpbGQiKTtpZihhKXtsZXQgbj10aGlzLmdldExhc3RUZXh0Tm9kZShhKTtpZihuKXtsZXQgbz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLHM9d2luZG93LmdldFNlbGVjdGlvbigpLGw9bi50ZXh0Q29udGVudD8ubGVuZ3RofHwwO28uc2V0U3RhcnQobixsKSxvLnNldEVuZChuLGwpLHM/LnJlbW92ZUFsbFJhbmdlcygpLHM/LmFkZFJhbmdlKG8pfX19Z2V0Rmlyc3RUZXh0Tm9kZSh0KXtpZih0Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpcmV0dXJuIHQ7Zm9yKGxldCByPTA7cjx0LmNoaWxkTm9kZXMubGVuZ3RoO3IrKyl7bGV0IGk9dGhpcy5nZXRGaXJzdFRleHROb2RlKHQuY2hpbGROb2Rlc1tyXSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1nZXRMYXN0VGV4dE5vZGUodCl7aWYodC5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKXJldHVybiB0O2ZvcihsZXQgcj10LmNoaWxkTm9kZXMubGVuZ3RoLTE7cj49MDtyLS0pe2xldCBpPXRoaXMuZ2V0TGFzdFRleHROb2RlKHQuY2hpbGROb2Rlc1tyXSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1mb2N1cyh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpJiYoaS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxpLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGkuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09aSYmdC5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09aSYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2kuZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3IodCxyPSJlbmQiLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKTtpZighYSlyZXR1cm47YS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxhLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGEuZm9jdXMoKTtsZXQgbj0oKT0+e3I9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydCh0LGkpOnI9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKHQsaSk6dHlwZW9mIHI9PSJudW1iZXIiJiZ0aGlzLnNldEN1cnNvclRvRW5kKHQsaSl9O2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hP24oKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hfHx0LnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1hKSYmbigpfSl9Z2V0U3BsaXRDb250ZW50KHQscil7cmV0dXJuIHQucXVlcnlTZWxlY3RvcigiLmJsb2NrLmxpc3QiKSxudWxsfX19KTt2YXIgemIscjRyPXAoKCk9PntKbigpO3hlKCk7emI9Y2xhc3MgZXh0ZW5kcyBmMXt0eXBlPSJpbWFnZSI7cmVuZGVyKHQscil7bGV0IGk9dC5tZXRhZGF0YT8udXJsLGE9dC5jb250ZW50fHwiSW1hZ2UiLG49dC5tZXRhZGF0YT8ubG9hZGluZztyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWJsb2NrLWNvbnRhaW5lciR7cj8iIHNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgIGRhdGEtYmxvY2staWQ9IiR7dC5pZH0iCiAgICAgICAgICAgZGF0YS1oYXMtaW1hZ2U9IiR7ISFpfSIKICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgJHtuP3RoaXMucmVuZGVyTG9hZGluZygpOmk/dGhpcy5yZW5kZXJJbWFnZShpLGEpOnRoaXMucmVuZGVyUGxhY2Vob2xkZXIoKX0KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgCiAgICAgICAgICAgICAgIGNsYXNzPSJpbWFnZS1maWxlLWlucHV0IiAKICAgICAgICAgICAgICAgYWNjZXB0PSJpbWFnZS8qIiAKICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiAvPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIoKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciIgc3R5bGU9ImN1cnNvcjogcG9pbnRlcjsiPgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1pY29uIiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij4KICAgICAgICAgIDxzdmcgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+CiAgICAgICAgICAgIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIi8+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjguNSIgY3k9IjguNSIgcj0iMS41Ii8+CiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjIxIDE1IDE2IDEwIDUgMjEiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC10ZXh0IiBzdHlsZT0icG9pbnRlci1ldmVudHM6IG5vbmU7Ij5DbGljayB0byB1cGxvYWQgYW4gaW1hZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtaGludCIgc3R5bGU9InBvaW50ZXItZXZlbnRzOiBub25lOyI+b3IgZHJhZyBhbmQgZHJvcDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVySW1hZ2UodCxyKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWNvbnRhaW5lciI+CiAgICAgICAgPGltZyBzcmM9IiR7dH0iIGFsdD0iJHt0aGlzLmVzY2FwZUh0bWwocil9IiAvPgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyTG9hZGluZygpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UtbG9hZGluZyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPlVwbG9hZGluZyBpbWFnZS4uLjwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAodCxyLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpLG49dC5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtZmlsZS1pbnB1dCIpO2lmKCFhKXtjb25zb2xlLmVycm9yKCJJbWFnZUJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgY29udGFpbmVyIik7cmV0dXJufWlmKCFuKXtjb25zb2xlLmVycm9yKCJJbWFnZUJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgZmlsZSBpbnB1dCIpO3JldHVybn1sZXQgbz1hLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIiKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixzPT57cy5wcmV2ZW50RGVmYXVsdCgpLHMuc3RvcFByb3BhZ2F0aW9uKCksY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBQbGFjZWhvbGRlciBjbGlja2VkLCBvcGVuaW5nIGZpbGUgc2VsZWN0b3IiKSxuLmNsaWNrKCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e2kub25Gb2N1cygpfSksbi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGFzeW5jIHM9PntsZXQgYz1zLnRhcmdldC5maWxlcz8uWzBdO2MmJihjb25zb2xlLmxvZygiSW1hZ2VCbG9ja0hhbmRsZXI6IEZpbGUgc2VsZWN0ZWQ6IixjLm5hbWUpLGF3YWl0IHRoaXMuaGFuZGxlRmlsZVVwbG9hZChjLHIsaSkpfSksYS5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIscz0+e3MucHJldmVudERlZmF1bHQoKSxzLnN0b3BQcm9wYWdhdGlvbigpLHIubWV0YWRhdGE/LnVybHx8YS5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixzPT57cy5wcmV2ZW50RGVmYXVsdCgpLHMuc3RvcFByb3BhZ2F0aW9uKCksYS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsYXN5bmMgcz0+e3MucHJldmVudERlZmF1bHQoKSxzLnN0b3BQcm9wYWdhdGlvbigpLGEuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7bGV0IGw9cy5kYXRhVHJhbnNmZXI/LmZpbGVzWzBdO2wmJmwudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSYmIXIubWV0YWRhdGE/LnVybCYmYXdhaXQgdGhpcy5oYW5kbGVGaWxlVXBsb2FkKGwscixpKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSksYS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57aWYoKHMua2V5PT09IkRlbGV0ZSJ8fHMua2V5PT09IkJhY2tzcGFjZSIpJiZyLm1ldGFkYXRhPy51cmwpe3IubWV0YWRhdGEudXJsPXZvaWQgMCxyLm1ldGFkYXRhLmxvYWRpbmc9ITEsci5jb250ZW50PSIiLGkub25JbnB1dChuZXcgSW5wdXRFdmVudCgiaW5wdXQiKSk7cmV0dXJufWkub25LZXlEb3duKHMpfSl9YXN5bmMgaGFuZGxlRmlsZVVwbG9hZCh0LHIsaSl7aWYoY29uc29sZS5sb2coIkltYWdlQmxvY2tIYW5kbGVyOiBTdGFydGluZyBmaWxlIHVwbG9hZCIse2ZpbGVOYW1lOnQubmFtZSxmaWxlU2l6ZTp0LnNpemUsYmxvY2tJZDpyLmlkfSksIXQudHlwZS5zdGFydHNXaXRoKCJpbWFnZS8iKSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBmaWxlIHR5cGU6Iix0LnR5cGUpO3JldHVybn1sZXQgYT0xMCoxMDI0KjEwMjQ7aWYodC5zaXplPmEpe2NvbnNvbGUuZXJyb3IoIkZpbGUgdG9vIGxhcmdlLiBNYXhpbXVtIHNpemUgaXMgMTBNQiIpO3JldHVybn1yLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS5sb2FkaW5nPSEwLHIubWV0YWRhdGEuZmlsZU5hbWU9dC5uYW1lLHIubWV0YWRhdGEuZmlsZVNpemU9dC5zaXplLHIubWV0YWRhdGEubWltZVR5cGU9dC50eXBlLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogU2V0IGxvYWRpbmcgc3RhdGUsIHJlcXVlc3RpbmcgdXBkYXRlIiksaS5vblJlcXVlc3RVcGRhdGU/LigpO3RyeXtsZXQgbj1hd2FpdCB0aGlzLmZpbGVUb0RhdGFVcmwodCk7ci5tZXRhZGF0YS51cmw9bixyLm1ldGFkYXRhLmxvYWRpbmc9ITE7bGV0IG89dC5uYW1lLnJlcGxhY2UoL1wuW14vLl0rJC8sIiIpO3IuY29udGVudD1vLGNvbnNvbGUubG9nKCJJbWFnZUJsb2NrSGFuZGxlcjogVXBsb2FkIGNvbXBsZXRlLCByZXF1ZXN0aW5nIHVwZGF0ZSIse2hhc1VybDohIXIubWV0YWRhdGEudXJsLHVybExlbmd0aDpuLmxlbmd0aCxhbHRUZXh0OnIuY29udGVudH0pLGkub25SZXF1ZXN0VXBkYXRlPy4oKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gdXBsb2FkIGltYWdlOiIsbiksci5tZXRhZGF0YS5sb2FkaW5nPSExLGkub25SZXF1ZXN0VXBkYXRlPy4oKX19ZmlsZVRvRGF0YVVybCh0KXtyZXR1cm4gbmV3IFByb21pc2UoKHIsaSk9PntsZXQgYT1uZXcgRmlsZVJlYWRlcjthLm9ubG9hZD1uPT57bGV0IG89bi50YXJnZXQ/LnJlc3VsdDt0eXBlb2Ygbz09InN0cmluZyI/cihvKTppKG5ldyBFcnJvcigiRmFpbGVkIHRvIHJlYWQgZmlsZSIpKX0sYS5vbmVycm9yPWksYS5yZWFkQXNEYXRhVVJMKHQpfSl9ZXNjYXBlSHRtbCh0KXtsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gci50ZXh0Q29udGVudD10LHIuaW5uZXJIVE1MfWdldENvbnRlbnQodCl7cmV0dXJuIHRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudCh0KT8uY29udGVudHx8IiJ9c2V0Q29udGVudCh0LHIpe2xldCBpPXRoaXMuZ2V0QmxvY2tGcm9tRWxlbWVudCh0KTtpJiYoaS5jb250ZW50PXIpfWdldEJsb2NrRnJvbUVsZW1lbnQodCl7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIuaW1hZ2UtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiBpP3tpZDppLHR5cGU6ImltYWdlIixjb250ZW50OiIiLG1ldGFkYXRhOnt9fTpudWxsfWdldEN1cnNvclBvc2l0aW9uKHQpe3JldHVybiBudWxsfXNldEN1cnNvclRvU3RhcnQodCl7dGhpcy5mb2N1cyh0KX1zZXRDdXJzb3JUb0VuZCh0KXt0aGlzLmZvY3VzKHQpfWZvY3VzKHQpe3QucXVlcnlTZWxlY3RvcigiLmltYWdlLWJsb2NrLWNvbnRhaW5lciIpPy5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcih0LHI9ImVuZCIpe3RoaXMuZm9jdXModCl9Z2V0U3BsaXRDb250ZW50KHQpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSW1hZ2UgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWJsb2NrLWNvbnRhaW5lci5zZWxlY3RlZCB7CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICR7bS5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogVXBsb2FkIFBsYWNlaG9sZGVyICovCiAgICAgIC5pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQ4cHggMjRweDsKICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5pbWFnZS1ibG9jay1jb250YWluZXI6aG92ZXIgLmltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAuaW1hZ2UtYmxvY2stY29udGFpbmVyLmRyYWctb3ZlciAuaW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2VmZjZmZiIsIiMxZTFiNGIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC51cGxvYWQtaWNvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CiAgICAgIAogICAgICAudXBsb2FkLWhpbnQgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBJbWFnZSBDb250YWluZXIgKi8KICAgICAgLmltYWdlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmltYWdlLWNvbnRhaW5lciBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CiAgICAgIAogICAgICAvKiBMb2FkaW5nIFN0YXRlICovCiAgICAgIC5pbWFnZS1sb2FkaW5nIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0OHB4IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmYWZhZmEiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCIjNjM2NmYxIiwiIzgxOGNmOCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIH0KICAgICAgCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KICAgICAgCiAgICAgIC5sb2FkaW5nLXRleHQgewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBGaWxlIGlucHV0IGhpZGRlbiAqLwogICAgICAuaW1hZ2UtZmlsZS1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICBgfX19KTt2YXIgQ2IsaTRyPXAoKCk9PntKbigpO3hlKCk7Q2I9Y2xhc3MgZXh0ZW5kcyBmMXt0eXBlPSJ5b3V0dWJlIjtyZW5kZXIodCxyKXtsZXQgaT10Lm1ldGFkYXRhPy52aWRlb0lkLGE9dC5tZXRhZGF0YT8udXJsfHwiIjtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9InlvdXR1YmUtYmxvY2stY29udGFpbmVyJHtyPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICAgICBkYXRhLWhhcy12aWRlbz0iJHshIWl9Ij4KICAgICAgICAke2k/dGhpcy5yZW5kZXJWaWRlbyhpKTp0aGlzLnJlbmRlclBsYWNlaG9sZGVyKGEpfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIodCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJ5b3V0dWJlLXBsYWNlaG9sZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGFjZWhvbGRlci1pY29uIj4KICAgICAgICAgIDxzdmcgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MTUgMy4xODRjLTMuNjA0LS4yNDYtMTEuNjMxLS4yNDUtMTUuMjMgMC0zLjg5Ny4yNjYtNC4zNTYgMi42Mi00LjM4NSA4LjgxNi4wMjkgNi4xODUuNDg0IDguNTQ5IDQuMzg1IDguODE2IDMuNi4yNDUgMTEuNjI2LjI0NiAxNS4yMyAwIDMuODk3LS4yNjYgNC4zNTYtMi42MiA0LjM4NS04LjgxNi0uMDI5LTYuMTg1LS40ODQtOC41NDktNC4zODUtOC44MTZ6bS0xMC42MTUgMTIuODE2di04bDggMy45OTMtOCA0LjAwN3oiLz4KICAgICAgICAgIDwvc3ZnPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPkVudGVyIFlvdVR1YmUgVVJMPC9kaXY+CiAgICAgICAgPGlucHV0IHR5cGU9InVybCIgCiAgICAgICAgICAgICAgIGNsYXNzPSJ5b3V0dWJlLXVybC1pbnB1dCIgCiAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJodHRwczovL3lvdXR1YmUuY29tL3dhdGNoP3Y9Li4uIiAKICAgICAgICAgICAgICAgdmFsdWU9IiR7dGhpcy5lc2NhcGVIdG1sKHQpfSIgLz4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJ5b3V0dWJlLWVtYmVkLWJ0biI+RW1iZWQgVmlkZW88L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlclZpZGVvKHQpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ieW91dHViZS1jb250YWluZXIiPgogICAgICAgIDxpZnJhbWUgCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7dH0iCiAgICAgICAgICBmcmFtZWJvcmRlcj0iMCIKICAgICAgICAgIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIgogICAgICAgICAgYWxsb3dmdWxsc2NyZWVuCiAgICAgICAgPjwvaWZyYW1lPgogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAodCxyLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIik7aWYoIWEpcmV0dXJuO2lmKHIubWV0YWRhdGE/LnZpZGVvSWQpe2Euc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxhLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscz0+eyhzLmtleT09PSJEZWxldGUifHxzLmtleT09PSJCYWNrc3BhY2UiKSYmcy5wcmV2ZW50RGVmYXVsdCgpLGkub25LZXlEb3duKHMpfSk7cmV0dXJufWxldCBuPXQucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtdXJsLWlucHV0Iiksbz10LnF1ZXJ5U2VsZWN0b3IoIi55b3V0dWJlLWVtYmVkLWJ0biIpOyFufHwhb3x8KG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSksby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9Pnt0aGlzLmVtYmVkVmlkZW8obi52YWx1ZSxyLGkpfSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzPT57cy5rZXk9PT0iRW50ZXIiPyhzLnByZXZlbnREZWZhdWx0KCksdGhpcy5lbWJlZFZpZGVvKG4udmFsdWUscixpKSk6cy5rZXk9PT0iRXNjYXBlIiYmKHMucHJldmVudERlZmF1bHQoKSxuLmJsdXIoKSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIixzPT57c2V0VGltZW91dCgoKT0+e2xldCBsPW4udmFsdWU7dGhpcy5leHRyYWN0WW91VHViZVZpZGVvSWQobCkmJnRoaXMuZW1iZWRWaWRlbyhsLHIsaSl9LDApfSksbi5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsKCk9PntyLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS51cmw9bi52YWx1ZX0pKX1lbWJlZFZpZGVvKHQscixpKXtsZXQgYT10aGlzLmV4dHJhY3RZb3VUdWJlVmlkZW9JZCh0KTtpZighYSl7Y29uc29sZS5lcnJvcigiSW52YWxpZCBZb3VUdWJlIFVSTCIpO3JldHVybn1yLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS52aWRlb0lkPWEsci5tZXRhZGF0YS51cmw9dCxyLmNvbnRlbnQ9YFlvdVR1YmUgVmlkZW86ICR7YX1gLGkub25SZXF1ZXN0VXBkYXRlPy4oKX1leHRyYWN0WW91VHViZVZpZGVvSWQodCl7bGV0IHI9Wy8oPzp5b3V0dWJlXC5jb21cLyg/OlteXC9dK1wvLitcL3woPzp2fGUoPzptYmVkKT8pXC98LipbPyZddj0pfHlvdXR1XC5iZVwvKShbXiImP1wvIF17MTF9KS8sL3lvdXR1YmVcLmNvbVwvZW1iZWRcLyhbXiImP1wvIF17MTF9KS8sL3lvdXR1YmVcLmNvbVwvd2F0Y2hcP3Y9KFteIiY/XC8gXXsxMX0pLywveW91dHVcLmJlXC8oW14iJj9cLyBdezExfSkvXTtmb3IobGV0IGkgb2Ygcil7bGV0IGE9dC5tYXRjaChpKTtpZihhKXJldHVybiBhWzFdfXJldHVybiBudWxsfWVzY2FwZUh0bWwodCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9dCxyLmlubmVySFRNTH1nZXRDb250ZW50KHQpe3JldHVybiB0aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQodCk/LmNvbnRlbnR8fCIifXNldENvbnRlbnQodCxyKXtsZXQgaT10aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQodCk7aSYmKGkuY29udGVudD1yKX1nZXRCbG9ja0Zyb21FbGVtZW50KHQpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiBpP3tpZDppLHR5cGU6InlvdXR1YmUiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24odCl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydCh0KXt0aGlzLmZvY3VzKHQpfXNldEN1cnNvclRvRW5kKHQpe3RoaXMuZm9jdXModCl9Zm9jdXModCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIueW91dHViZS1ibG9jay1jb250YWluZXIiKSxpPXQucXVlcnlTZWxlY3RvcigiLnlvdXR1YmUtdXJsLWlucHV0Iik7aT9pLmZvY3VzKCk6ciYmci5mb2N1cygpfWZvY3VzV2l0aEN1cnNvcih0LHI9ImVuZCIpe3RoaXMuZm9jdXModCl9Z2V0U3BsaXRDb250ZW50KHQpe3JldHVybiBudWxsfWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogWW91VHViZSBCbG9jayBDb250YWluZXIgKi8KICAgICAgLnlvdXR1YmUtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHttLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBZb3VUdWJlIFBsYWNlaG9sZGVyICovCiAgICAgIC55b3V0dWJlLXBsYWNlaG9sZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAzMnB4IDI0cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZhZmFmYSIsIiMwYTBhMGEiKX07CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItaWNvbiB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZGMyNjI2IiwiI2VmNDQ0NCIpfTsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgIH0KICAgICAgCiAgICAgIC5wbGFjZWhvbGRlci10ZXh0IHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogNDAwcHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxMTE4MjciKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS11cmwtaW5wdXQ6Zm9jdXMgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzFmMjkzNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtdXJsLWlucHV0OjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTZweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzExMTgyNyIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgc2Fucy1zZXJpZjsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLnlvdXR1YmUtZW1iZWQtYnRuOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC55b3V0dWJlLWVtYmVkLWJ0bjphY3RpdmUgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFlvdVR1YmUgQ29udGFpbmVyICovCiAgICAgIC55b3V0dWJlLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IC8qIDE2OjkgYXNwZWN0IHJhdGlvICovCiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjMDAwMDAwIil9OwogICAgICB9CiAgICAgIAogICAgICAueW91dHViZS1jb250YWluZXIgaWZyYW1lIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIH0KICAgIGB9fX0pO3ZhciBUYixhNHI9cCgoKT0+e0puKCk7eGUoKTtUYj1jbGFzcyBleHRlbmRzIGYxe3R5cGU9ImF0dGFjaG1lbnQiO3JlbmRlcih0LHIpe2xldCBpPXQubWV0YWRhdGE/LmZpbGVzfHxbXTtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyJHtyPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1oZWFkZXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iYXR0YWNobWVudC1pY29uIj5cdXsxRjRDRX08L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtdGl0bGUiPkZpbGUgQXR0YWNobWVudHM8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJhdHRhY2htZW50LWxpc3QiPgogICAgICAgICAgJHtpLmxlbmd0aD4wP3RoaXMucmVuZGVyRmlsZXMoaSk6dGhpcy5yZW5kZXJQbGFjZWhvbGRlcigpfQogICAgICAgIDwvZGl2PgogICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiAKICAgICAgICAgICAgICAgY2xhc3M9ImF0dGFjaG1lbnQtZmlsZS1pbnB1dCIgCiAgICAgICAgICAgICAgIG11bHRpcGxlIAogICAgICAgICAgICAgICBzdHlsZT0iZGlzcGxheTogbm9uZTsiIC8+CiAgICAgICAgJHtpLmxlbmd0aD4wPyc8YnV0dG9uIGNsYXNzPSJhZGQtbW9yZS1maWxlcyI+QWRkIE1vcmUgRmlsZXM8L2J1dHRvbj4nOiIifQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyUGxhY2Vob2xkZXIoKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtcGxhY2Vob2xkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPkNsaWNrIHRvIGFkZCBmaWxlczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyLWhpbnQiPm9yIGRyYWcgYW5kIGRyb3A8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckZpbGVzKHQpe3JldHVybiB0Lm1hcChyPT5gCiAgICAgIDxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaXRlbSIgZGF0YS1maWxlLWlkPSIke3IuaWR9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWljb24iPiR7dGhpcy5nZXRGaWxlSWNvbihyLnR5cGUpfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaW5mbyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLW5hbWUiPiR7dGhpcy5lc2NhcGVIdG1sKHIubmFtZSl9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLXNpemUiPiR7dGhpcy5mb3JtYXRGaWxlU2l6ZShyLnNpemUpfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9InJlbW92ZS1maWxlIiBkYXRhLWZpbGUtaWQ9IiR7ci5pZH0iPlx4RDc8L2J1dHRvbj4KICAgICAgPC9kaXY+CiAgICBgKS5qb2luKCIiKX1zZXR1cCh0LHIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKSxuPXQucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtZmlsZS1pbnB1dCIpO2lmKCFhfHwhbil7Y29uc29sZS5lcnJvcigiQXR0YWNobWVudEJsb2NrSGFuZGxlcjogQ291bGQgbm90IGZpbmQgcmVxdWlyZWQgZWxlbWVudHMiKTtyZXR1cm59ci5tZXRhZGF0YXx8KHIubWV0YWRhdGE9e30pLHIubWV0YWRhdGEuZmlsZXN8fChyLm1ldGFkYXRhLmZpbGVzPVtdKTtsZXQgbz1hLnF1ZXJ5U2VsZWN0b3IoIi5hdHRhY2htZW50LXBsYWNlaG9sZGVyIik7byYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbD0+e2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpLG4uY2xpY2soKX0pO2xldCBzPWEucXVlcnlTZWxlY3RvcigiLmFkZC1tb3JlLWZpbGVzIik7cyYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbD0+e2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpLG4uY2xpY2soKX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhc3luYyBsPT57bGV0IGM9bC50YXJnZXQsdT1jLmZpbGVzO3UmJnUubGVuZ3RoPjAmJihhd2FpdCB0aGlzLmhhbmRsZUZpbGVBdHRhY2htZW50cyh1LHIsaSksYy52YWx1ZT0iIil9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixsPT57bGV0IGM9bC50YXJnZXQ7aWYoYy5jbGFzc0xpc3QuY29udGFpbnMoInJlbW92ZS1maWxlIikpe2wucHJldmVudERlZmF1bHQoKSxsLnN0b3BQcm9wYWdhdGlvbigpO2xldCB1PWMuZ2V0QXR0cmlidXRlKCJkYXRhLWZpbGUtaWQiKTt1JiZ0aGlzLnJlbW92ZUZpbGUodSxyLGkpfX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxhLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksYS5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGw9PntsLnByZXZlbnREZWZhdWx0KCksbC5zdG9wUHJvcGFnYXRpb24oKSxhLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksYS5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixhc3luYyBsPT57bC5wcmV2ZW50RGVmYXVsdCgpLGwuc3RvcFByb3BhZ2F0aW9uKCksYS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTtsZXQgYz1sLmRhdGFUcmFuc2Zlcj8uZmlsZXM7YyYmYy5sZW5ndGg+MCYmYXdhaXQgdGhpcy5oYW5kbGVGaWxlQXR0YWNobWVudHMoYyxyLGkpfSksYS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmkub25Gb2N1cygpKSxhLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5pLm9uQmx1cigpKSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGw9PntpZigobC5rZXk9PT0iRGVsZXRlInx8bC5rZXk9PT0iQmFja3NwYWNlIikmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hJiZyLm1ldGFkYXRhPy5maWxlcz8ubGVuZ3RoPjApe2wucHJldmVudERlZmF1bHQoKSxyLm1ldGFkYXRhLmZpbGVzPVtdLGkub25SZXF1ZXN0VXBkYXRlPy4oKTtyZXR1cm59aS5vbktleURvd24obCl9KX1hc3luYyBoYW5kbGVGaWxlQXR0YWNobWVudHModCxyLGkpe3IubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLmZpbGVzfHwoci5tZXRhZGF0YS5maWxlcz1bXSk7Zm9yKGxldCBhIG9mIEFycmF5LmZyb20odCkpdHJ5e2xldCBuPWF3YWl0IHRoaXMuZmlsZVRvRGF0YVVybChhKSxvPXtpZDp0aGlzLmdlbmVyYXRlSWQoKSxuYW1lOmEubmFtZSxzaXplOmEuc2l6ZSx0eXBlOmEudHlwZSxkYXRhOm59O3IubWV0YWRhdGEuZmlsZXMucHVzaChvKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gYXR0YWNoIGZpbGU6IixhLm5hbWUsbil9ci5jb250ZW50PWAke3IubWV0YWRhdGEuZmlsZXMubGVuZ3RofSBmaWxlJHtyLm1ldGFkYXRhLmZpbGVzLmxlbmd0aCE9PTE/InMiOiIifSBhdHRhY2hlZGAsaS5vblJlcXVlc3RVcGRhdGU/LigpfXJlbW92ZUZpbGUodCxyLGkpe3IubWV0YWRhdGE/LmZpbGVzJiYoci5tZXRhZGF0YS5maWxlcz1yLm1ldGFkYXRhLmZpbGVzLmZpbHRlcihhPT5hLmlkIT09dCksci5jb250ZW50PXIubWV0YWRhdGEuZmlsZXMubGVuZ3RoPjA/YCR7ci5tZXRhZGF0YS5maWxlcy5sZW5ndGh9IGZpbGUke3IubWV0YWRhdGEuZmlsZXMubGVuZ3RoIT09MT8icyI6IiJ9IGF0dGFjaGVkYDoiIixpLm9uUmVxdWVzdFVwZGF0ZT8uKCkpfWZpbGVUb0RhdGFVcmwodCl7cmV0dXJuIG5ldyBQcm9taXNlKChyLGkpPT57bGV0IGE9bmV3IEZpbGVSZWFkZXI7YS5vbmxvYWQ9bj0+e2xldCBvPW4udGFyZ2V0Py5yZXN1bHQ7dHlwZW9mIG89PSJzdHJpbmciP3Iobyk6aShuZXcgRXJyb3IoIkZhaWxlZCB0byByZWFkIGZpbGUiKSl9LGEub25lcnJvcj1pLGEucmVhZEFzRGF0YVVSTCh0KX0pfWdldEZpbGVJY29uKHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoImltYWdlLyIpPyJcdXsxRjVCQ31cdUZFMEYiOnQuc3RhcnRzV2l0aCgidmlkZW8vIik/Ilx1ezFGM0E1fSI6dC5zdGFydHNXaXRoKCJhdWRpby8iKT8iXHV7MUYzQjV9Ijp0LmluY2x1ZGVzKCJwZGYiKT8iXHV7MUY0QzR9Ijp0LmluY2x1ZGVzKCJ6aXAiKXx8dC5pbmNsdWRlcygicmFyIil8fHQuaW5jbHVkZXMoInRhciIpPyJcdXsxRjVDNH1cdUZFMEYiOnQuaW5jbHVkZXMoInNoZWV0Iik/Ilx1ezFGNENBfSI6dC5pbmNsdWRlcygiZG9jdW1lbnQiKXx8dC5pbmNsdWRlcygibXN3b3JkIik/Ilx1ezFGNEREfSI6dC5pbmNsdWRlcygicHJlc2VudGF0aW9uIik/Ilx1ezFGNENCfSI6dC5pbmNsdWRlcygidGV4dCIpPyJcdXsxRjRDM30iOiJcdXsxRjRDMX0ifWZvcm1hdEZpbGVTaXplKHQpe2lmKHQ9PT0wKXJldHVybiIwIEJ5dGVzIjtsZXQgcj0xMDI0LGk9WyJCeXRlcyIsIktCIiwiTUIiLCJHQiJdLGE9TWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLmxvZyhyKSk7cmV0dXJuIHBhcnNlRmxvYXQoKHQvTWF0aC5wb3cocixhKSkudG9GaXhlZCgyKSkrIiAiK2lbYV19Z2VuZXJhdGVJZCgpe3JldHVybmBmaWxlLSR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiw5KX1gfWVzY2FwZUh0bWwodCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9dCxyLmlubmVySFRNTH1nZXRDb250ZW50KHQpe3JldHVybiB0aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQodCk/LmNvbnRlbnR8fCIifXNldENvbnRlbnQodCxyKXtsZXQgaT10aGlzLmdldEJsb2NrRnJvbUVsZW1lbnQodCk7aSYmKGkuY29udGVudD1yKX1nZXRCbG9ja0Zyb21FbGVtZW50KHQpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiBpP3tpZDppLHR5cGU6ImF0dGFjaG1lbnQiLGNvbnRlbnQ6IiIsbWV0YWRhdGE6e319Om51bGx9Z2V0Q3Vyc29yUG9zaXRpb24odCl7cmV0dXJuIG51bGx9c2V0Q3Vyc29yVG9TdGFydCh0KXt0aGlzLmZvY3VzKHQpfXNldEN1cnNvclRvRW5kKHQpe3RoaXMuZm9jdXModCl9Zm9jdXModCl7dC5xdWVyeVNlbGVjdG9yKCIuYXR0YWNobWVudC1ibG9jay1jb250YWluZXIiKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IodCxyPSJlbmQiKXt0aGlzLmZvY3VzKHQpfWdldFNwbGl0Q29udGVudCh0KXtyZXR1cm4gbnVsbH1nZXRTdHlsZXMoKXtyZXR1cm5gCiAgICAgIC8qIEF0dGFjaG1lbnQgQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5hdHRhY2htZW50LWJsb2NrLWNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1hcmdpbjogMTJweCAwOwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtYmxvY2stY29udGFpbmVyLmRyYWctb3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiM2MzY2ZjEiLCIjODE4Y2Y4Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBIZWFkZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtaGVhZGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogRmlsZSBMaXN0ICovCiAgICAgIC5hdHRhY2htZW50LWxpc3QgewogICAgICAgIHBhZGRpbmc6IDhweDsKICAgICAgICBtaW4taGVpZ2h0OiA4MHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQogICAgICAKICAgICAgLyogUGxhY2Vob2xkZXIgKi8KICAgICAgLmF0dGFjaG1lbnQtcGxhY2Vob2xkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CiAgICAgIAogICAgICAuYXR0YWNobWVudC1wbGFjZWhvbGRlcjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CiAgICAgIAogICAgICAucGxhY2Vob2xkZXItaGludCB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzljYTNhZiIsIiM2YjcyODAiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEZpbGUgSXRlbXMgKi8KICAgICAgLmF0dGFjaG1lbnQtaXRlbSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmF0dGFjaG1lbnQtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMzc0MTUxIil9OwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1pY29uIHsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5maWxlLWluZm8gewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CiAgICAgIAogICAgICAuZmlsZS1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQogICAgICAKICAgICAgLmZpbGUtc2l6ZSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CiAgICAgIAogICAgICAucmVtb3ZlLWZpbGUgewogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHdpZHRoOiAyNHB4OwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZiNzI4MCIsIiM5Y2EzYWYiKX07CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICAgIAogICAgICAucmVtb3ZlLWZpbGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmVlMmUyIiwiIzk5MWIxYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZmNhNWE1IiwiI2RjMjYyNiIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZmNhNWE1Iil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBBZGQgTW9yZSBGaWxlcyBCdXR0b24gKi8KICAgICAgLmFkZC1tb3JlLWZpbGVzIHsKICAgICAgICBtYXJnaW46IDhweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzNzQxNTEiLCIjZTVlN2ViIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBzYW5zLXNlcmlmOwogICAgICB9CiAgICAgIAogICAgICAuYWRkLW1vcmUtZmlsZXM6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGlkZGVuIGZpbGUgaW5wdXQgKi8KICAgICAgLmF0dGFjaG1lbnQtZmlsZS1pbnB1dCB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICBgfX19KTt2YXIgX2IsbjRyPXAoKCk9PntKbigpO3hlKCk7X2I9Y2xhc3MgZXh0ZW5kcyBmMXt0eXBlPSJkaXZpZGVyIjtyZW5kZXIodCxyKXtyZXR1cm5gCiAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIGRpdmlkZXIke3I/IiBzZWxlY3RlZCI6IiJ9IiBkYXRhLWJsb2NrLWlkPSIke3QuaWR9IiBkYXRhLWJsb2NrLXR5cGU9IiR7dC50eXBlfSIgdGFiaW5kZXg9IjAiPgogICAgICAgIDxocj4KICAgICAgPC9kaXY+CiAgICBgfXNldHVwKHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jay5kaXZpZGVyIik7YSYmKGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG49PntuLnN0b3BQcm9wYWdhdGlvbigpLGEuZm9jdXMoKSxpLm9uRm9jdXM/LigpfSksYS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9PntpLm9uRm9jdXM/LigpfSksYS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+e2kub25CbHVyPy4oKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbj0+eyhuLmtleT09PSJCYWNrc3BhY2UifHxuLmtleT09PSJEZWxldGUiKSYmbi5wcmV2ZW50RGVmYXVsdCgpLGkub25LZXlEb3duPy4obil9KSl9Z2V0U3R5bGVzKCl7cmV0dXJuYAogICAgICAuYmxvY2suZGl2aWRlciB7CiAgICAgICAgcGFkZGluZzogOHB4IDA7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5ibG9jay5kaXZpZGVyOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlci5zZWxlY3RlZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMDUpIiwicmdiYSg3NywgMTQ4LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAke20uYmRUaGVtZSgicmdiYSgwLCAxMDIsIDIwNCwgMC4yKSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjIpIil9OwogICAgICB9CgogICAgICAuYmxvY2suZGl2aWRlciBociB7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UwZTBlMCIsIiMzMzMiKX07CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CiAgICBgfX19KTt2YXIgTGIsbzRyPXAoKCk9PntKbigpO3hlKCk7TGI9Y2xhc3MgZXh0ZW5kcyBmMXt0eXBlPSJtYXJrZG93biI7cmVuZGVyKHQscil7bGV0IGk9dC5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAsYT10LmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYmxvY2stY29udGFpbmVyJHtyPyIgc2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgZGF0YS1ibG9jay1pZD0iJHt0LmlkfSIKICAgICAgICAgICBkYXRhLWVkaXQtbW9kZT0iJHtpfSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24taGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLWljb24iPk1cdTIxOTM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1hcmtkb3duLXRpdGxlIj5NYXJrZG93bjwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ibWFya2Rvd24tdG9nZ2xlLW1vZGUiIHRpdGxlPSIke2k/IlByZXZpZXciOiJFZGl0In0iPgogICAgICAgICAgICAke2k/Ilx1ezFGNDQxfVx1RkUwRiI6Ilx1MjcwRlx1RkUwRiJ9CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1jb250ZW50Ij4KICAgICAgICAgICR7aT90aGlzLnJlbmRlckVkaXRvcihhKTp0aGlzLnJlbmRlclByZXZpZXcoYSl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJFZGl0b3IodCl7cmV0dXJuYAogICAgICA8dGV4dGFyZWEgY2xhc3M9Im1hcmtkb3duLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgbWFya2Rvd24gY29udGVudC4uLiIKICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9ImZhbHNlIj4ke3RoaXMuZXNjYXBlSHRtbCh0KX08L3RleHRhcmVhPgogICAgYH1yZW5kZXJQcmV2aWV3KHQpe3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tcHJldmlldyI+CiAgICAgICAgJHt0aGlzLnBhcnNlTWFya2Rvd24odCl8fCc8ZGl2IGNsYXNzPSJwcmV2aWV3LWVtcHR5Ij5ObyBjb250ZW50IHRvIHByZXZpZXc8L2Rpdj4nfQogICAgICA8L2Rpdj4KICAgIGB9c2V0dXAodCxyLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWJsb2NrLWNvbnRhaW5lciIpLG49dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tdG9nZ2xlLW1vZGUiKTtpZighYXx8IW4pe2NvbnNvbGUuZXJyb3IoIk1hcmtkb3duQmxvY2tIYW5kbGVyOiBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBlbGVtZW50cyIpO3JldHVybn1yLm1ldGFkYXRhfHwoci5tZXRhZGF0YT17fSksci5tZXRhZGF0YS5pc0VkaXRNb2RlPT09dm9pZCAwJiYoci5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwKSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvPT57aWYoby5wcmV2ZW50RGVmYXVsdCgpLG8uc3RvcFByb3BhZ2F0aW9uKCksci5tZXRhZGF0YS5pc0VkaXRNb2RlKXtsZXQgcz1hLnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtzJiYoci5jb250ZW50PXMudmFsdWUpfXIubWV0YWRhdGEuaXNFZGl0TW9kZT0hci5tZXRhZGF0YS5pc0VkaXRNb2RlLGkub25SZXF1ZXN0VXBkYXRlPy4oKX0pLHIubWV0YWRhdGEuaXNFZGl0TW9kZT90aGlzLnNldHVwRWRpdG9yKHQscixpKTp0aGlzLnNldHVwUHJldmlldyh0LHIsaSl9c2V0dXBFZGl0b3IodCxyLGkpe2xldCBhPXQucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2EmJihhLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57ci5jb250ZW50PWEudmFsdWV9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJUYWIiKXtuLnByZXZlbnREZWZhdWx0KCk7bGV0IG89YS5zZWxlY3Rpb25TdGFydCxzPWEuc2VsZWN0aW9uRW5kLGw9YS52YWx1ZTtpZihuLnNoaWZ0S2V5KXtsZXQgZD1sLnN1YnN0cmluZygwLG8pLmxhc3RJbmRleE9mKGAKYCkrMSxoPWwuc3Vic3RyaW5nKGQsbyk7aC5zdGFydHNXaXRoKCIgICIpJiYoYS52YWx1ZT1sLnN1YnN0cmluZygwLGQpK2guc3Vic3RyaW5nKDIpK2wuc3Vic3RyaW5nKG8pLGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9by0yKX1lbHNlIGEudmFsdWU9bC5zdWJzdHJpbmcoMCxvKSsiICAiK2wuc3Vic3RyaW5nKHMpLGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9bysyO3IuY29udGVudD1hLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSJiIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMud3JhcFNlbGVjdGlvbihhLCIqKiIsIioqIiksci5jb250ZW50PWEudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09ImkiKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy53cmFwU2VsZWN0aW9uKGEsIl8iLCJfIiksci5jb250ZW50PWEudmFsdWU7cmV0dXJufWlmKChuLmN0cmxLZXl8fG4ubWV0YUtleSkmJm4ua2V5PT09ImsiKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbnNlcnRMaW5rKGEpLHIuY29udGVudD1hLnZhbHVlO3JldHVybn1pLm9uS2V5RG93bihuKX0pLHRoaXMuYXV0b1Jlc2l6ZShhKSxhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKGEpKSl9c2V0dXBQcmV2aWV3KHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1ibG9jay1jb250YWluZXIiKSxuPXQucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLXByZXZpZXciKTshYXx8IW58fChuLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksbi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmkub25Gb2N1cygpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5pLm9uQmx1cigpKSxuLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG89PntpZihvLmtleT09PSJFbnRlciImJiFvLnNoaWZ0S2V5KXtvLnByZXZlbnREZWZhdWx0KCksci5tZXRhZGF0YS5pc0VkaXRNb2RlPSEwLGkub25SZXF1ZXN0VXBkYXRlPy4oKTtyZXR1cm59aS5vbktleURvd24obyl9KSl9d3JhcFNlbGVjdGlvbih0LHIsaSl7bGV0IGE9dC5zZWxlY3Rpb25TdGFydCxuPXQuc2VsZWN0aW9uRW5kLG89dC52YWx1ZS5zdWJzdHJpbmcoYSxuKSxzPXIrKG98fCJ0ZXh0IikraTt0LnZhbHVlPXQudmFsdWUuc3Vic3RyaW5nKDAsYSkrcyt0LnZhbHVlLnN1YnN0cmluZyhuKSxvPyh0LnNlbGVjdGlvblN0YXJ0PWEsdC5zZWxlY3Rpb25FbmQ9YStzLmxlbmd0aCk6KHQuc2VsZWN0aW9uU3RhcnQ9YStyLmxlbmd0aCx0LnNlbGVjdGlvbkVuZD1hK3IubGVuZ3RoKzQpLHQuZm9jdXMoKX1pbnNlcnRMaW5rKHQpe2xldCByPXQuc2VsZWN0aW9uU3RhcnQsaT10LnNlbGVjdGlvbkVuZCxuPXQudmFsdWUuc3Vic3RyaW5nKHIsaSl8fCJsaW5rIHRleHQiLG89YFske259XSh1cmwpYDt0LnZhbHVlPXQudmFsdWUuc3Vic3RyaW5nKDAscikrbyt0LnZhbHVlLnN1YnN0cmluZyhpKSx0LnNlbGVjdGlvblN0YXJ0PXIrbi5sZW5ndGgrMyx0LnNlbGVjdGlvbkVuZD1yK24ubGVuZ3RoKzYsdC5mb2N1cygpfWF1dG9SZXNpemUodCl7dC5zdHlsZS5oZWlnaHQ9ImF1dG8iLHQuc3R5bGUuaGVpZ2h0PXQuc2Nyb2xsSGVpZ2h0KyJweCJ9cGFyc2VNYXJrZG93bih0KXtsZXQgcj10aGlzLmVzY2FwZUh0bWwodCk7cmV0dXJuIHI9ci5yZXBsYWNlKC9eIyMjICguKykkL2dtLCI8aDM+JDE8L2gzPiIpLHI9ci5yZXBsYWNlKC9eIyMgKC4rKSQvZ20sIjxoMj4kMTwvaDI+Iikscj1yLnJlcGxhY2UoL14jICguKykkL2dtLCI8aDE+JDE8L2gxPiIpLHI9ci5yZXBsYWNlKC9cKlwqKC4rPylcKlwqL2csIjxzdHJvbmc+JDE8L3N0cm9uZz4iKSxyPXIucmVwbGFjZSgvX18oLis/KV9fL2csIjxzdHJvbmc+JDE8L3N0cm9uZz4iKSxyPXIucmVwbGFjZSgvXCooLis/KVwqL2csIjxlbT4kMTwvZW0+Iikscj1yLnJlcGxhY2UoL18oLis/KV8vZywiPGVtPiQxPC9lbT4iKSxyPXIucmVwbGFjZSgvYGBgKFtcc1xTXSo/KWBgYC9nLCI8cHJlPjxjb2RlPiQxPC9jb2RlPjwvcHJlPiIpLHI9ci5yZXBsYWNlKC9gKC4rPylgL2csIjxjb2RlPiQxPC9jb2RlPiIpLHI9ci5yZXBsYWNlKC9cWyhbXlxdXSspXF1cKChbXildKylcKS9nLCc8YSBocmVmPSIkMiI+JDE8L2E+Jykscj1yLnJlcGxhY2UoL15cKiAoLispJC9nbSwiPGxpPiQxPC9saT4iKSxyPXIucmVwbGFjZSgvXi0gKC4rKSQvZ20sIjxsaT4kMTwvbGk+Iikscj1yLnJlcGxhY2UoL15cZCtcLiAoLispJC9nbSwiPGxpPiQxPC9saT4iKSxyPXIucmVwbGFjZSgvKDxsaT4uKjxcL2xpPlxuPykrL2csaT0+Ijx1bD4iK2krIjwvdWw+Iikscj1yLnJlcGxhY2UoL1xuXG4vZywiPC9wPjxwPiIpLHI9IjxwPiIrcisiPC9wPiIscj1yLnJlcGxhY2UoLzxwPjxcL3A+L2csIiIpLHI9ci5yZXBsYWNlKC88cD4oPGhbMS0zXT4pL2csIiQxIikscj1yLnJlcGxhY2UoLyg8XC9oWzEtM10+KTxcL3A+L2csIiQxIikscj1yLnJlcGxhY2UoLzxwPig8dWw+KS9nLCIkMSIpLHI9ci5yZXBsYWNlKC8oPFwvdWw+KTxcL3A+L2csIiQxIikscj1yLnJlcGxhY2UoLzxwPig8cHJlPikvZywiJDEiKSxyPXIucmVwbGFjZSgvKDxcL3ByZT4pPFwvcD4vZywiJDEiKSxyfWVzY2FwZUh0bWwodCl7bGV0IHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9dCxyLmlubmVySFRNTH1nZXRDb250ZW50KHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLm1hcmtkb3duLWVkaXRvciIpO2lmKHIpcmV0dXJuIHIudmFsdWU7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tYmxvY2stY29udGFpbmVyIik/LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO3JldHVybiIifXNldENvbnRlbnQodCxyKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpJiYoaS52YWx1ZT1yLHRoaXMuYXV0b1Jlc2l6ZShpKSl9Z2V0Q3Vyc29yUG9zaXRpb24odCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7cmV0dXJuIHI/ci5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQodCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7cj8oci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD0wLHIuZm9jdXMoKSk6dGhpcy5mb2N1cyh0KX1zZXRDdXJzb3JUb0VuZCh0KXtsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtpZihyKXtsZXQgaT1yLnZhbHVlLmxlbmd0aDtyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPWksci5mb2N1cygpfWVsc2UgdGhpcy5mb2N1cyh0KX1mb2N1cyh0KXtsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1lZGl0b3IiKTtyP3IuZm9jdXMoKTp0LnF1ZXJ5U2VsZWN0b3IoIi5tYXJrZG93bi1wcmV2aWV3Iik/LmZvY3VzKCl9Zm9jdXNXaXRoQ3Vyc29yKHQscj0iZW5kIil7bGV0IGk9dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aT9yPT09InN0YXJ0Ij90aGlzLnNldEN1cnNvclRvU3RhcnQodCk6cj09PSJlbmQiP3RoaXMuc2V0Q3Vyc29yVG9FbmQodCk6dHlwZW9mIHI9PSJudW1iZXIiJiYoaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD1yLGkuZm9jdXMoKSk6dGhpcy5mb2N1cyh0KX1nZXRTcGxpdENvbnRlbnQodCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIubWFya2Rvd24tZWRpdG9yIik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IGk9ci5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnIudmFsdWUuc3Vic3RyaW5nKDAsaSksYWZ0ZXI6ci52YWx1ZS5zdWJzdHJpbmcoaSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogTWFya2Rvd24gQmxvY2sgQ29udGFpbmVyICovCiAgICAgIC5tYXJrZG93bi1ibG9jay1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBtYXJnaW46IDEycHggMDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTExODI3Iil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5tYXJrZG93bi1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiIzBhMGEwYSIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10b2dnbGUtbW9kZSB7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi10b2dnbGUtbW9kZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmM2Y0ZjYiLCIjMWYyOTM3Iil9OwogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBDb250ZW50ICovCiAgICAgIC5tYXJrZG93bi1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAubWFya2Rvd24tZWRpdG9yIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1lZGl0b3I6OnBsYWNlaG9sZGVyIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICB9CiAgICAgIAogICAgICAvKiBQcmV2aWV3ICovCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIE1hcmtkb3duIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGgxIHsKICAgICAgICBmb250LXNpemU6IDI0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBtYXJnaW46IDE2cHggMCA4cHggMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBoMiB7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbWFyZ2luOiAxNHB4IDAgNnB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgaDMgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIG1hcmdpbjogMTJweCAwIDRweCAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHAgewogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IHVsLAogICAgICAubWFya2Rvd24tcHJldmlldyBvbCB7CiAgICAgICAgbWFyZ2luOiA4cHggMDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGxpIHsKICAgICAgICBtYXJnaW46IDRweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMnB4IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBwcmUgY29kZSB7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC5tYXJrZG93bi1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAubWFya2Rvd24tcHJldmlldyBhOmhvdmVyIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgICAKICAgICAgLm1hcmtkb3duLXByZXZpZXcgYmxvY2txdW90ZSB7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNmI3MjgwIiwiIzljYTNhZiIpfTsKICAgICAgfQogICAgYH19fSk7dmFyIEFiLHM0cj1wKCgpPT57Sm4oKTt4ZSgpO0FiPWNsYXNzIGV4dGVuZHMgZjF7dHlwZT0iaHRtbCI7cmVuZGVyKHQscil7bGV0IGk9dC5tZXRhZGF0YT8uaXNFZGl0TW9kZT8/ITAsYT10LmNvbnRlbnR8fCIiO3JldHVybmAKICAgICAgPGRpdiBjbGFzcz0iaHRtbC1ibG9jay1jb250YWluZXIke3I/IiBzZWxlY3RlZCI6IiJ9IiAKICAgICAgICAgICBkYXRhLWJsb2NrLWlkPSIke3QuaWR9IgogICAgICAgICAgIGRhdGEtZWRpdC1tb2RlPSIke2l9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWhlYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJodG1sLWljb24iPiZsdDsvJmd0OzwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaHRtbC10aXRsZSI+SFRNTDwvZGl2PgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaHRtbC10b2dnbGUtbW9kZSIgdGl0bGU9IiR7aT8iUHJldmlldyI6IkVkaXQifSI+CiAgICAgICAgICAgICR7aT8iXHV7MUY0NDF9XHVGRTBGIjoiXHUyNzBGXHVGRTBGIn0KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Imh0bWwtY29udGVudCI+CiAgICAgICAgICAke2k/dGhpcy5yZW5kZXJFZGl0b3IoYSk6dGhpcy5yZW5kZXJQcmV2aWV3KGEpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyRWRpdG9yKHQpe3JldHVybmAKICAgICAgPHRleHRhcmVhIGNsYXNzPSJodG1sLWVkaXRvciIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iRW50ZXIgSFRNTCBjb250ZW50Li4uIgogICAgICAgICAgICAgICAgc3BlbGxjaGVjaz0iZmFsc2UiPiR7dGhpcy5lc2NhcGVIdG1sKHQpfTwvdGV4dGFyZWE+CiAgICBgfXJlbmRlclByZXZpZXcodCl7cmV0dXJuYAogICAgICA8ZGl2IGNsYXNzPSJodG1sLXByZXZpZXciPgogICAgICAgICR7dHx8JzxkaXYgY2xhc3M9InByZXZpZXctZW1wdHkiPk5vIGNvbnRlbnQgdG8gcHJldmlldzwvZGl2Pid9CiAgICAgIDwvZGl2PgogICAgYH1zZXR1cCh0LHIsaSl7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKSxuPXQucXVlcnlTZWxlY3RvcigiLmh0bWwtdG9nZ2xlLW1vZGUiKTtpZighYXx8IW4pe2NvbnNvbGUuZXJyb3IoIkh0bWxCbG9ja0hhbmRsZXI6IENvdWxkIG5vdCBmaW5kIHJlcXVpcmVkIGVsZW1lbnRzIik7cmV0dXJufXIubWV0YWRhdGF8fChyLm1ldGFkYXRhPXt9KSxyLm1ldGFkYXRhLmlzRWRpdE1vZGU9PT12b2lkIDAmJihyLm1ldGFkYXRhLmlzRWRpdE1vZGU9ITApLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG89PntpZihvLnByZXZlbnREZWZhdWx0KCksby5zdG9wUHJvcGFnYXRpb24oKSxyLm1ldGFkYXRhLmlzRWRpdE1vZGUpe2xldCBzPWEucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7cyYmKHIuY29udGVudD1zLnZhbHVlKX1yLm1ldGFkYXRhLmlzRWRpdE1vZGU9IXIubWV0YWRhdGEuaXNFZGl0TW9kZSxpLm9uUmVxdWVzdFVwZGF0ZT8uKCl9KSxyLm1ldGFkYXRhLmlzRWRpdE1vZGU/dGhpcy5zZXR1cEVkaXRvcih0LHIsaSk6dGhpcy5zZXR1cFByZXZpZXcodCxyLGkpfXNldHVwRWRpdG9yKHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2EmJihhLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+aS5vbkZvY3VzKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsKCk9Pmkub25CbHVyKCkpLGEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57ci5jb250ZW50PWEudmFsdWUsdGhpcy52YWxpZGF0ZUh0bWwoYS52YWx1ZSl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG49PntpZihuLmtleT09PSJUYWIiKXtuLnByZXZlbnREZWZhdWx0KCk7bGV0IG89YS5zZWxlY3Rpb25TdGFydCxzPWEuc2VsZWN0aW9uRW5kLGw9YS52YWx1ZTtpZihuLnNoaWZ0S2V5KXtsZXQgZD1sLnN1YnN0cmluZygwLG8pLmxhc3RJbmRleE9mKGAKYCkrMSxoPWwuc3Vic3RyaW5nKGQsbyk7aC5zdGFydHNXaXRoKCIgICIpJiYoYS52YWx1ZT1sLnN1YnN0cmluZygwLGQpK2guc3Vic3RyaW5nKDIpK2wuc3Vic3RyaW5nKG8pLGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9by0yKX1lbHNlIGEudmFsdWU9bC5zdWJzdHJpbmcoMCxvKSsiICAiK2wuc3Vic3RyaW5nKHMpLGEuc2VsZWN0aW9uU3RhcnQ9YS5zZWxlY3Rpb25FbmQ9bysyO3IuY29udGVudD1hLnZhbHVlO3JldHVybn1pZigobi5jdHJsS2V5fHxuLm1ldGFLZXkpJiZuLmtleT09PSIvIil7bi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYXV0b0Nsb3NlVGFnKGEpLHIuY29udGVudD1hLnZhbHVlO3JldHVybn1pLm9uS2V5RG93bihuKX0pLHRoaXMuYXV0b1Jlc2l6ZShhKSxhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwoKT0+dGhpcy5hdXRvUmVzaXplKGEpKSl9c2V0dXBQcmV2aWV3KHQscixpKXtsZXQgYT10LnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWJsb2NrLWNvbnRhaW5lciIpLG49dC5xdWVyeVNlbGVjdG9yKCIuaHRtbC1wcmV2aWV3Iik7IWF8fCFufHwobi5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT5pLm9uRm9jdXMoKSksbi5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoKT0+aS5vbkJsdXIoKSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixvPT57aWYoby5rZXk9PT0iRW50ZXIiJiYhby5zaGlmdEtleSl7by5wcmV2ZW50RGVmYXVsdCgpLHIubWV0YWRhdGEuaXNFZGl0TW9kZT0hMCxpLm9uUmVxdWVzdFVwZGF0ZT8uKCk7cmV0dXJufWkub25LZXlEb3duKG8pfSksdGhpcy5zYW5kYm94Q29udGVudChuKSl9YXV0b0Nsb3NlVGFnKHQpe2xldCByPXQuc2VsZWN0aW9uU3RhcnQsaT10LnZhbHVlLGE9cjtmb3IoO2E+MCYmaVthLTFdIT09IjwiOylhLS07aWYoYT4wKXtsZXQgbz1pLnN1YnN0cmluZyhhLHIpLm1hdGNoKC9eKFx3KykvKTtpZihvKXtsZXQgbD1gPC8ke29bMV19PmA7dC52YWx1ZT1pLnN1YnN0cmluZygwLHIpKyI+IitsK2kuc3Vic3RyaW5nKHIpLHQuc2VsZWN0aW9uU3RhcnQ9dC5zZWxlY3Rpb25FbmQ9cisxfX19YXV0b1Jlc2l6ZSh0KXt0LnN0eWxlLmhlaWdodD0iYXV0byIsdC5zdHlsZS5oZWlnaHQ9dC5zY3JvbGxIZWlnaHQrInB4In12YWxpZGF0ZUh0bWwodCl7bGV0IHI9W10saT0vPFwvPyhbYS16QS1aXVthLXpBLVowLTldKilcYltePl0qPi9nLGE7Zm9yKDsoYT1pLmV4ZWModCkpIT09bnVsbDspe2xldCBuPWFbMF0uc3RhcnRzV2l0aCgiPC8iKSxvPWFbMV0udG9Mb3dlckNhc2UoKTtpZihuKXtpZihyLmxlbmd0aD09PTB8fHJbci5sZW5ndGgtMV0hPT1vKXJldHVybiBjb25zb2xlLndhcm4oYE1pc21hdGNoZWQgY2xvc2luZyB0YWc6ICR7b31gKSwhMTtyLnBvcCgpfWVsc2UgYVswXS5lbmRzV2l0aCgiLz4iKXx8ci5wdXNoKG8pfXJldHVybiByLmxlbmd0aD4wPyhjb25zb2xlLndhcm4oYFVuY2xvc2VkIHRhZ3M6ICR7ci5qb2luKCIsICIpfWApLCExKTohMH1zYW5kYm94Q29udGVudCh0KXt0LnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpLmZvckVhY2gobj0+bi5yZW1vdmUoKSksdC5xdWVyeVNlbGVjdG9yQWxsKCIqIikuZm9yRWFjaChuPT57QXJyYXkuZnJvbShuLmF0dHJpYnV0ZXMpLmZvckVhY2gobz0+e28ubmFtZS5zdGFydHNXaXRoKCJvbiIpJiZuLnJlbW92ZUF0dHJpYnV0ZShvLm5hbWUpfSl9KSx0LnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0iKS5mb3JFYWNoKG49PntuLmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsbz0+e28ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpfSl9KX1lc2NhcGVIdG1sKHQpe2xldCByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiByLnRleHRDb250ZW50PXQsci5pbm5lckhUTUx9Z2V0Q29udGVudCh0KXtsZXQgcj10LnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2lmKHIpcmV0dXJuIHIudmFsdWU7bGV0IGE9dC5xdWVyeVNlbGVjdG9yKCIuaHRtbC1ibG9jay1jb250YWluZXIiKT8uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIik7cmV0dXJuIiJ9c2V0Q29udGVudCh0LHIpe2xldCBpPXQucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aSYmKGkudmFsdWU9cix0aGlzLmF1dG9SZXNpemUoaSkpfWdldEN1cnNvclBvc2l0aW9uKHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7cmV0dXJuIHI/ci5zZWxlY3Rpb25TdGFydDpudWxsfXNldEN1cnNvclRvU3RhcnQodCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyPyhyLnNlbGVjdGlvblN0YXJ0PXIuc2VsZWN0aW9uRW5kPTAsci5mb2N1cygpKTp0aGlzLmZvY3VzKHQpfXNldEN1cnNvclRvRW5kKHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYocil7bGV0IGk9ci52YWx1ZS5sZW5ndGg7ci5zZWxlY3Rpb25TdGFydD1yLnNlbGVjdGlvbkVuZD1pLHIuZm9jdXMoKX1lbHNlIHRoaXMuZm9jdXModCl9Zm9jdXModCl7bGV0IHI9dC5xdWVyeVNlbGVjdG9yKCIuaHRtbC1lZGl0b3IiKTtyP3IuZm9jdXMoKTp0LnF1ZXJ5U2VsZWN0b3IoIi5odG1sLXByZXZpZXciKT8uZm9jdXMoKX1mb2N1c1dpdGhDdXJzb3IodCxyPSJlbmQiKXtsZXQgaT10LnF1ZXJ5U2VsZWN0b3IoIi5odG1sLWVkaXRvciIpO2k/cj09PSJzdGFydCI/dGhpcy5zZXRDdXJzb3JUb1N0YXJ0KHQpOnI9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKHQpOnR5cGVvZiByPT0ibnVtYmVyIiYmKGkuc2VsZWN0aW9uU3RhcnQ9aS5zZWxlY3Rpb25FbmQ9cixpLmZvY3VzKCkpOnRoaXMuZm9jdXModCl9Z2V0U3BsaXRDb250ZW50KHQpe2xldCByPXQucXVlcnlTZWxlY3RvcigiLmh0bWwtZWRpdG9yIik7aWYoIXIpcmV0dXJuIG51bGw7bGV0IGk9ci5zZWxlY3Rpb25TdGFydDtyZXR1cm57YmVmb3JlOnIudmFsdWUuc3Vic3RyaW5nKDAsaSksYWZ0ZXI6ci52YWx1ZS5zdWJzdHJpbmcoaSl9fWdldFN0eWxlcygpe3JldHVybmAKICAgICAgLyogSFRNTCBCbG9jayBDb250YWluZXIgKi8KICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiAxMnB4IDA7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzExMTgyNyIpfTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtYmxvY2stY29udGFpbmVyLnNlbGVjdGVkIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogSGVhZGVyICovCiAgICAgIC5odG1sLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHBhZGRpbmc6IDhweCAxMnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzNzQxNTEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgZm9udC1mYW1pbHk6ICdNb25hY28nLCAnQ29uc29sYXMnLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRpdGxlIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXRvZ2dsZS1tb2RlIHsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4OwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtdG9nZ2xlLW1vZGU6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogQ29udGVudCAqLwogICAgICAuaHRtbC1jb250ZW50IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIEVkaXRvciAqLwogICAgICAuaHRtbC1lZGl0b3IgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgcmVzaXplOiBub25lOwogICAgICAgIGZvbnQtZmFtaWx5OiAnTW9uYWNvJywgJ0NvbnNvbGFzJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBsaW5lLWhlaWdodDogMS42OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzFmMjkzNyIsIiNmM2Y0ZjYiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtZWRpdG9yOjpwbGFjZWhvbGRlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgfQogICAgICAKICAgICAgLyogUHJldmlldyAqLwogICAgICAuaHRtbC1wcmV2aWV3IHsKICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgIG1pbi1oZWlnaHQ6IDk2cHg7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxZjI5MzciLCIjZjNmNGY2Iil9OwogICAgICB9CiAgICAgIAogICAgICAucHJldmlldy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KICAgICAgCiAgICAgIC8qIFNhbmRib3hlZCBIVE1MIHByZXZpZXcgc3R5bGVzICovCiAgICAgIC5odG1sLXByZXZpZXcgKiB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGltZyB7CiAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGEgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGE6aG92ZXIgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHRhYmxlIHsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogOHB4IDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgdGgsCiAgICAgIC5odG1sLXByZXZpZXcgdGQgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHg7CiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgfQogICAgICAKICAgICAgLmh0bWwtcHJldmlldyB0aCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgCiAgICAgIC5odG1sLXByZXZpZXcgcHJlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YzZjRmNiIsIiMxZjI5MzciKX07CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IGNvZGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjNmNGY2IiwiIzFmMjkzNyIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBmb250LWZhbWlseTogJ01vbmFjbycsICdDb25zb2xhcycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDAuOWVtOwogICAgICB9CiAgICAgIAogICAgICAuaHRtbC1wcmV2aWV3IHByZSBjb2RlIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CiAgICBgfX19KTt2YXIgaWRlPXAoKCk9PntKbigpO1owcigpO1gwcigpO1EwcigpO0owcigpO0swcigpO2U0cigpO3Q0cigpO3I0cigpO2k0cigpO2E0cigpO240cigpO280cigpO3M0cigpfSk7ZnVuY3Rpb24gbDRyKCl7TnIucmVnaXN0ZXIoImRpdmlkZXIiLG5ldyBfYiksTnIucmVnaXN0ZXIoInBhcmFncmFwaCIsbmV3IHdiKSxOci5yZWdpc3RlcigiaGVhZGluZy0xIixuZXcgWGQoImhlYWRpbmctMSIpKSxOci5yZWdpc3RlcigiaGVhZGluZy0yIixuZXcgWGQoImhlYWRpbmctMiIpKSxOci5yZWdpc3RlcigiaGVhZGluZy0zIixuZXcgWGQoImhlYWRpbmctMyIpKSxOci5yZWdpc3RlcigicXVvdGUiLG5ldyBNYiksTnIucmVnaXN0ZXIoImNvZGUiLG5ldyBrYiksTnIucmVnaXN0ZXIoImxpc3QiLG5ldyBTYiksTnIucmVnaXN0ZXIoImltYWdlIixuZXcgemIpLE5yLnJlZ2lzdGVyKCJ5b3V0dWJlIixuZXcgQ2IpLE5yLnJlZ2lzdGVyKCJhdHRhY2htZW50IixuZXcgVGIpLE5yLnJlZ2lzdGVyKCJtYXJrZG93biIsbmV3IExiKSxOci5yZWdpc3RlcigiaHRtbCIsbmV3IEFiKX12YXIgYWRlPXAoKCk9PntpZGUoKTtsNHIoKX0pO3ZhciBEYixuZGU9cCgoKT0+e3hlKCk7SWQoKTtDbigpO1lkKCk7aUYoKTtEYj1jbGFzc3tzdGF0aWMgYXN5bmMgc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2xldCByPW51bGw7V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiU2VsZWN0IFByb2dyYW1taW5nIExhbmd1YWdlIixjb250ZW50OkNgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5sYW5ndWFnZS1jb250YWluZXIgewogICAgICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7CiAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICAgICAgfQogICAgICAgICAgICAubGFuZ3VhZ2UtZ3JpZCB7CiAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7CiAgICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbiB7CiAgICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMWYyOTM3Iil9OwogICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNkMWQ1ZGIiLCIjNGI1NTYzIil9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5sYW5ndWFnZS1idXR0b24uc2VsZWN0ZWQgewogICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxMTE4MjciLCIjZjlmYWZiIil9OwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtZ3JpZCI+CiAgICAgICAgICAgICAgJHt0aGlzLmdldExhbmd1YWdlcygpLm1hcChpPT5DYAogICAgICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICAgICAgY2xhc3M9Imxhbmd1YWdlLWJ1dHRvbiAke3I9PT1pLnRvTG93ZXJDYXNlKCk/InNlbGVjdGVkIjoiIn0iIAogICAgICAgICAgICAgICAgICBAY2xpY2s9IiR7KCk9PntyPWkudG9Mb3dlckNhc2UoKTtsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkZWVzLW1vZGFsIik7YSYmdHlwZW9mIGEuZGVzdHJveT09ImZ1bmN0aW9uIiYmYS5kZXN0cm95KCksdChyKX19Ij4KICAgICAgICAgICAgICAgICAgJHtpfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNhbmNlbCIsYWN0aW9uOmFzeW5jIGk9PntpLmRlc3Ryb3koKSx0KG51bGwpfX1dfSl9KX1zdGF0aWMgYXN5bmMgc2hvd0Jsb2NrU2V0dGluZ3NNb2RhbCh0LHIpe2xldCBpPUNgCiAgICAgIDxzdHlsZT4KICAgICAgICAuc2V0dGluZ3MtY29udGFpbmVyIHsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHsKICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICAgICAgfQogICAgICAgIC5zZXR0aW5ncy1zZWN0aW9uOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICB9CiAgICAgICAgLnNldHRpbmdzLWxhYmVsIHsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2YjcyODAiLCIjOWNhM2FmIil9OwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE2MHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgIH0KICAgICAgICAuYmxvY2stdHlwZS1idXR0b24gewogICAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzc0MTUxIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzM3NDE1MSIsIiNlNWU3ZWIiKX07CiAgICAgICAgfQogICAgICAgIC5ibG9jay10eXBlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtYnV0dG9uLnNlbGVjdGVkIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjNmNGY2IiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiM5Y2EzYWYiLCIjNmI3MjgwIil9OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMTExODI3IiwiI2Y5ZmFmYiIpfTsKICAgICAgICB9CiAgICAgICAgLmJsb2NrLXR5cGUtaWNvbiB7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgd2lkdGg6IDIwcHg7CiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLmdldEJsb2NrVHlwZVNlbGVjdG9yKHQscil9CiAgICAgICAgJHt0LnR5cGU9PT0iY29kZSI/dGhpcy5nZXRDb2RlQmxvY2tTZXR0aW5ncyh0LHIpOiIifQogICAgICA8L2Rpdj4KICAgIGA7V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQmxvY2sgU2V0dGluZ3MiLGNvbnRlbnQ6aSxtZW51T3B0aW9uczpbe25hbWU6IkRvbmUiLGFjdGlvbjphc3luYyBhPT57YS5kZXN0cm95KCl9fV19KX1zdGF0aWMgZ2V0Q29kZUJsb2NrU2V0dGluZ3ModCxyKXtsZXQgaT10Lm1ldGFkYXRhPy5sYW5ndWFnZXx8ImphdmFzY3JpcHQiO3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgLmxhbmd1YWdlLWdyaWQgewogICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEwMHB4LCAxZnIpKTsKICAgICAgICAgIGdhcDogNnB4OwogICAgICAgIH0KICAgICAgICAubGFuZ3VhZ2UtYnV0dG9uIHsKICAgICAgICAgIHBhZGRpbmc6IDhweCA0cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzM3NDE1MSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzc0MTUxIiwiI2U1ZTdlYiIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y5ZmFmYiIsIiMxZjI5MzciKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjZDFkNWRiIiwiIzRiNTU2MyIpfTsKICAgICAgICB9CiAgICAgICAgLmxhbmd1YWdlLWJ1dHRvbi5zZWxlY3RlZCB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2YzZjRmNiIsIiMzNzQxNTEiKX07CiAgICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZiNzI4MCIpfTsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzExMTgyNyIsIiNmOWZhZmIiKX07CiAgICAgICAgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+UHJvZ3JhbW1pbmcgTGFuZ3VhZ2U8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsYW5ndWFnZS1ncmlkIj4KICAgICAgICAgICR7dGhpcy5nZXRMYW5ndWFnZXMoKS5tYXAoYT0+Q2AKICAgICAgICAgICAgPGRpdiAKICAgICAgICAgICAgICBjbGFzcz0ibGFuZ3VhZ2UtYnV0dG9uICR7aT09PWEudG9Mb3dlckNhc2UoKT8ic2VsZWN0ZWQiOiIifSIgCiAgICAgICAgICAgICAgQGNsaWNrPSIkeygpPT57dC5tZXRhZGF0YXx8KHQubWV0YWRhdGE9e30pLHQubWV0YWRhdGEubGFuZ3VhZ2U9YS50b0xvd2VyQ2FzZSgpLHIodCk7bGV0IG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO24mJnR5cGVvZiBuLmRlc3Ryb3k9PSJmdW5jdGlvbiImJm4uZGVzdHJveSgpfX0iCiAgICAgICAgICAgICAgZGF0YS1sYW5nPSIke2F9IgogICAgICAgICAgICA+JHthfTwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWMgZ2V0TGFuZ3VhZ2VzKCl7cmV0dXJuWy4uLnhiXX1zdGF0aWMgZ2V0QmxvY2tUeXBlU2VsZWN0b3IodCxyKXtsZXQgaT1HMS5nZXRTbGFzaE1lbnVJdGVtcygpLmZpbHRlcihhPT5hLnR5cGUhPT0iZGl2aWRlciIpO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+QmxvY2sgVHlwZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrLXR5cGUtZ3JpZCI+CiAgICAgICAgICAke2kubWFwKGE9PkNgCiAgICAgICAgICAgIDxkaXYgCiAgICAgICAgICAgICAgY2xhc3M9ImJsb2NrLXR5cGUtYnV0dG9uICR7dC50eXBlPT09YS50eXBlPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgIEBjbGljaz0iJHthc3luYyBuPT57bGV0IG89bi5jdXJyZW50VGFyZ2V0LHM9dC50eXBlO2lmKHQudHlwZT1hLnR5cGUscz09PSJjb2RlIiYmdC50eXBlIT09ImNvZGUiKWRlbGV0ZSB0Lm1ldGFkYXRhPy5sYW5ndWFnZTtlbHNlIGlmKHM9PT0ibGlzdCImJnQudHlwZSE9PSJsaXN0IilkZWxldGUgdC5tZXRhZGF0YT8ubGlzdFR5cGU7ZWxzZSBpZih0LnR5cGU9PT0ibGlzdCImJiF0Lm1ldGFkYXRhPy5saXN0VHlwZSl0Lm1ldGFkYXRhPXtsaXN0VHlwZToiYnVsbGV0In07ZWxzZSBpZih0LnR5cGU9PT0iY29kZSImJiF0Lm1ldGFkYXRhPy5sYW5ndWFnZSl7bGV0IGM9YXdhaXQgdGhpcy5zaG93TGFuZ3VhZ2VTZWxlY3Rpb25Nb2RhbCgpO2lmKGMpdC5tZXRhZGF0YT17bGFuZ3VhZ2U6Y307ZWxzZXt0LnR5cGU9cztyZXR1cm59fXIodCk7bGV0IGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGVlcy1tb2RhbCIpO2wmJnR5cGVvZiBsLmRlc3Ryb3k9PSJmdW5jdGlvbiImJmwuZGVzdHJveSgpfX0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYmxvY2stdHlwZS1pY29uIj4ke2EuaWNvbn08L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4+JHthLmxhYmVsfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfX19KTt2YXIgRWIsYzRyPXAoKCk9PntDbigpO2xoKCk7WWQoKTt6YygpO3JkZSgpO25kZSgpO0ViPWNsYXNze2NvbXBvbmVudDtzYXZlVGltZW91dD1udWxsO2NvbnN0cnVjdG9yKHQpe3RoaXMuY29tcG9uZW50PXR9aGFuZGxlQmxvY2tJbnB1dCh0LHIpe2lmKHRoaXMuY29tcG9uZW50LmlzQ29tcG9zaW5nKXJldHVybjtsZXQgaT10LnRhcmdldCxhPWkudGV4dENvbnRlbnR8fCIiLG49dGhpcy5kZXRlY3RCbG9ja1R5cGVJbnRlbnQoYSk7aWYobiYmbi50eXBlIT09ci50eXBlKXt0LnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVCbG9ja1RyYW5zZm9ybWF0aW9uKHIsbixpKTtyZXR1cm59dGhpcy5oYW5kbGVTbGFzaENvbW1hbmQoYSxpKSx0aGlzLnNjaGVkdWxlQXV0b1NhdmUoKX11cGRhdGVCbG9ja0NvbnRlbnQodCxyKXtsZXQgYT1yLmNsb3Nlc3QoIi5ibG9jay13cmFwcGVyIik/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKGEpe2xldCBuPWEuZ2V0Q29udGVudCgpO2lmKHQuY29udGVudCE9PW4mJih0LmNvbnRlbnQ9biksdC50eXBlPT09Imxpc3QiKXtsZXQgbz1yLnF1ZXJ5U2VsZWN0b3IoIm9sLCB1bCIpO28mJih0Lm1ldGFkYXRhPXtsaXN0VHlwZTpvLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJvbCI/Im9yZGVyZWQiOiJidWxsZXQifSl9fWVsc2UgaWYodC50eXBlPT09Imxpc3QiKXtsZXQgbj1yLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIik7dC5jb250ZW50PUFycmF5LmZyb20obikubWFwKHM9PnMuaW5uZXJIVE1MfHwiIikuam9pbihgCmApO2xldCBvPXIucXVlcnlTZWxlY3Rvcigib2wsIHVsIik7byYmKHQubWV0YWRhdGE9e2xpc3RUeXBlOm8udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT09Im9sIj8ib3JkZXJlZCI6ImJ1bGxldCJ9KX1lbHNlIHQudHlwZT09PSJjb2RlIj90LmNvbnRlbnQ9ci50ZXh0Q29udGVudHx8IiI6dC5jb250ZW50PXIuaW5uZXJIVE1MfHwiIn1kZXRlY3RCbG9ja1R5cGVJbnRlbnQodCl7bGV0IHI9RzEuY2hlY2tIZWFkaW5nU2hvcnRjdXQodCk7aWYocilyZXR1cm4gcjtsZXQgaT1HMS5jaGVja0xpc3RTaG9ydGN1dCh0KTtyZXR1cm4gaXx8KEcxLmNoZWNrUXVvdGVTaG9ydGN1dCh0KT97dHlwZToicXVvdGUifTpHMS5jaGVja0NvZGVTaG9ydGN1dCh0KT97dHlwZToiY29kZSJ9OkcxLmNoZWNrRGl2aWRlclNob3J0Y3V0KHQpP3t0eXBlOiJkaXZpZGVyIn06bnVsbCl9YXN5bmMgaGFuZGxlQmxvY2tUcmFuc2Zvcm1hdGlvbih0LHIsaSl7bGV0IGE9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKHIudHlwZT09PSJsaXN0Iil7dC50eXBlPSJsaXN0Iix0LmNvbnRlbnQ9IiIsdC5tZXRhZGF0YT17bGlzdFR5cGU6ci5saXN0VHlwZX07bGV0IG49ci5saXN0VHlwZT09PSJvcmRlcmVkIj8ib2wiOiJ1bCI7aS5pbm5lckhUTUw9YDwke259PjxsaT48L2xpPjwvJHtufT5gLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksdGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5jb21wb25lbnQudXBkYXRlQmxvY2tFbGVtZW50KHQuaWQpLHNldFRpbWVvdXQoKCk9PnthYS5mb2N1c0xpc3RJdGVtKGkpfSwwKX1lbHNlIGlmKHIudHlwZT09PSJkaXZpZGVyIil7dC50eXBlPSJkaXZpZGVyIix0LmNvbnRlbnQ9IiAiLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudCh0LmlkKTtsZXQgbj1hLmNyZWF0ZUJsb2NrKCk7YS5pbnNlcnRCbG9ja0FmdGVyKHQsbiksdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKX1lbHNlIGlmKHIudHlwZT09PSJjb2RlIil7bGV0IG49YXdhaXQgRGIuc2hvd0xhbmd1YWdlU2VsZWN0aW9uTW9kYWwoKTtuJiYodC50eXBlPSJjb2RlIix0LmNvbnRlbnQ9IiIsdC5tZXRhZGF0YT17bGFuZ3VhZ2U6bn0saS50ZXh0Q29udGVudD0iIix0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LnVwZGF0ZUJsb2NrRWxlbWVudCh0LmlkKSxzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCBhLmZvY3VzQmxvY2sodC5pZCwic3RhcnQiKX0sNTApKX1lbHNlIHQudHlwZT1yLnR5cGUsdC5jb250ZW50PSIiLGkudGV4dENvbnRlbnQ9IiIsdGhpcy5jb21wb25lbnQudXBkYXRlVmFsdWUoKSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC51cGRhdGVCbG9ja0VsZW1lbnQodC5pZCksc2V0VGltZW91dChhc3luYygpPT57YXdhaXQgYS5mb2N1c0Jsb2NrKHQuaWQsInN0YXJ0Iil9LDUwKX1oYW5kbGVTbGFzaENvbW1hbmQodCxyKXtsZXQgaT10aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUsYT1pJiZpLnZpc2libGU7aWYodD09PSIvInx8dC5zdGFydHNXaXRoKCIvIikmJmEpe2lmKCFhJiZ0PT09Ii8iKXtsZXQgbj10aGlzLmdldENhcmV0Q29vcmRpbmF0ZXMocik7aS5zaG93KHt4Om4ubGVmdCx5Om4uYm90dG9tKzR9LG89Pnt0aGlzLmNvbXBvbmVudC5pbnNlcnRCbG9jayhvKX0pLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1yJiZyLmZvY3VzKCl9KX1pJiZpLnVwZGF0ZUZpbHRlcih0LnNsaWNlKDEpKX1lbHNlIHQuc3RhcnRzV2l0aCgiLyIpfHx0aGlzLmNvbXBvbmVudC5jbG9zZVNsYXNoTWVudSgpfWdldENhcmV0Q29vcmRpbmF0ZXModCl7bGV0IHI9d2luZG93LmdldFNlbGVjdGlvbigpO2lmKHImJnIucmFuZ2VDb3VudD4wKXtsZXQgYT1yLmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYS53aWR0aD4wfHxhLmhlaWdodD4wKXJldHVybiBhfXJldHVybiB0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfXNjaGVkdWxlQXV0b1NhdmUoKXt0aGlzLnNhdmVUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5zYXZlVGltZW91dCksISh0aGlzLmNvbXBvbmVudC5zbGFzaE1lbnUmJnRoaXMuY29tcG9uZW50LnNsYXNoTWVudS52aXNpYmxlKSYmKHRoaXMuc2F2ZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMuc3luY0FsbEJsb2NrQ29udGVudCgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9LDJlMykpfXN5bmNBbGxCbG9ja0NvbnRlbnQoKXt0aGlzLmNvbXBvbmVudC5ibG9ja3MuZm9yRWFjaCh0PT57bGV0IGk9dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7dC5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihpJiZpLmdldENvbnRlbnQpe2xldCBhPWkuZ2V0Q29udGVudCgpO3QuY29udGVudCE9PWEmJih0LmNvbnRlbnQ9YSl9fSl9ZGVzdHJveSgpe3RoaXMuc2F2ZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNhdmVUaW1lb3V0KX19fSk7dmFyICRiLGQ0cj1wKCgpPT57Q24oKTtsaCgpO25sKCk7JGI9Y2xhc3N7Y29tcG9uZW50O2NvbnN0cnVjdG9yKHQpe3RoaXMuY29tcG9uZW50PXR9YXN5bmMgaGFuZGxlQmxvY2tLZXlEb3duKHQscil7aWYodGhpcy5jb21wb25lbnQuc2xhc2hNZW51LnZpc2libGUmJnRoaXMuaXNTbGFzaE1lbnVLZXkodC5rZXkpKXt0aGlzLmNvbXBvbmVudC5oYW5kbGVTbGFzaE1lbnVLZXlib2FyZCh0KTtyZXR1cm59aWYoIXRoaXMuaGFuZGxlRm9ybWF0dGluZ1Nob3J0Y3V0cyh0KSlzd2l0Y2godC5rZXkpe2Nhc2UiVGFiIjp0aGlzLmhhbmRsZVRhYih0LHIpO2JyZWFrO2Nhc2UiRW50ZXIiOmF3YWl0IHRoaXMuaGFuZGxlRW50ZXIodCxyKTticmVhaztjYXNlIkJhY2tzcGFjZSI6YXdhaXQgdGhpcy5oYW5kbGVCYWNrc3BhY2UodCxyKTticmVhaztjYXNlIkRlbGV0ZSI6YXdhaXQgdGhpcy5oYW5kbGVEZWxldGUodCxyKTticmVhaztjYXNlIkFycm93VXAiOmF3YWl0IHRoaXMuaGFuZGxlQXJyb3dVcCh0LHIpO2JyZWFrO2Nhc2UiQXJyb3dEb3duIjphd2FpdCB0aGlzLmhhbmRsZUFycm93RG93bih0LHIpO2JyZWFrO2Nhc2UiQXJyb3dMZWZ0Ijphd2FpdCB0aGlzLmhhbmRsZUFycm93TGVmdCh0LHIpO2JyZWFrO2Nhc2UiQXJyb3dSaWdodCI6YXdhaXQgdGhpcy5oYW5kbGVBcnJvd1JpZ2h0KHQscik7YnJlYWt9fWlzU2xhc2hNZW51S2V5KHQpe3JldHVyblsiQXJyb3dEb3duIiwiQXJyb3dVcCIsIkVudGVyIiwiRXNjYXBlIl0uaW5jbHVkZXModCl9aGFuZGxlRm9ybWF0dGluZ1Nob3J0Y3V0cyh0KXtpZighKHQubWV0YUtleXx8dC5jdHJsS2V5KSlyZXR1cm4hMTtzd2l0Y2godC5rZXkudG9Mb3dlckNhc2UoKSl7Y2FzZSJiIjpyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnRoaXMuY29tcG9uZW50LmFwcGx5Rm9ybWF0KCJib2xkIikpLCEwO2Nhc2UiaSI6cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgiaXRhbGljIikpLCEwO2Nhc2UidSI6cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgidW5kZXJsaW5lIikpLCEwO2Nhc2UiayI6cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSxQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbXBvbmVudC5hcHBseUZvcm1hdCgibGluayIpKSwhMH1yZXR1cm4hMX1oYW5kbGVUYWIodCxyKXtyLnR5cGUhPT0iY29kZSImJnIudHlwZT09PSJsaXN0IiYmdC5wcmV2ZW50RGVmYXVsdCgpfWFzeW5jIGhhbmRsZUVudGVyKHQscil7bGV0IGk9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zO2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhyLnR5cGUpKXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IG49aS5jcmVhdGVCbG9jaygpO2F3YWl0IGkuaW5zZXJ0QmxvY2tBZnRlcihyLG4pO3JldHVybn1pZihyLnR5cGU9PT0iY29kZSIpe2lmKHQuc2hpZnRLZXkpe3QucHJldmVudERlZmF1bHQoKTtsZXQgbj1pLmNyZWF0ZUJsb2NrKCk7YXdhaXQgaS5pbnNlcnRCbG9ja0FmdGVyKHIsbil9cmV0dXJufWlmKCF0LnNoaWZ0S2V5KWlmKHIudHlwZT09PSJsaXN0Iilhd2FpdCB0aGlzLmhhbmRsZUVudGVySW5MaXN0KHQscik7ZWxzZXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IG89dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ci5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZihvJiZvLmdldFNwbGl0Q29udGVudCl7bGV0IHM9by5nZXRTcGxpdENvbnRlbnQoKTtpZihzKXtvLnNldENvbnRlbnQocy5iZWZvcmUpLHIuY29udGVudD1zLmJlZm9yZTtsZXQgbD1pLmNyZWF0ZUJsb2NrKCJwYXJhZ3JhcGgiLHMuYWZ0ZXIpO2F3YWl0IGkuaW5zZXJ0QmxvY2tBZnRlcihyLGwpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCl9ZWxzZXtsZXQgbD1pLmNyZWF0ZUJsb2NrKCk7YXdhaXQgaS5pbnNlcnRCbG9ja0FmdGVyKHIsbCl9fWVsc2V7bGV0IHM9aS5jcmVhdGVCbG9jaygpO2F3YWl0IGkuaW5zZXJ0QmxvY2tBZnRlcihyLHMpfX19YXN5bmMgaGFuZGxlRW50ZXJJbkxpc3QodCxyKXtsZXQgaT13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoaSYmaS5yYW5nZUNvdW50PjApe2xldCBuPWkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5wYXJlbnRFbGVtZW50Py5jbG9zZXN0KCJsaSIpO2lmKG4mJm4udGV4dENvbnRlbnQ9PT0iIil7dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBvPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxzPW8uY3JlYXRlQmxvY2soKTthd2FpdCBvLmluc2VydEJsb2NrQWZ0ZXIocixzKX19fWFzeW5jIGhhbmRsZUJhY2tzcGFjZSh0LHIpe2xldCBpPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucztpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoci50eXBlKSl7aWYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY29tcG9uZW50LmJsb2Nrcy5sZW5ndGg9PT0xKXt0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxpLnJlbW92ZUJsb2NrKHIuaWQpO2xldCB4PWkuY3JlYXRlQmxvY2soInBhcmFncmFwaCIsIiIpO3RoaXMuY29tcG9uZW50LmJsb2Nrcz1beF0sdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLGF3YWl0IGkuZm9jdXNCbG9jayh4LmlkLCJzdGFydCIpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCk7cmV0dXJufXRoaXMuY29tcG9uZW50LnNhdmVUb0hpc3RvcnkoITEpO2xldCBoPWkuZ2V0UHJldmlvdXNCbG9jayhyLmlkKSxmPWkuZ2V0TmV4dEJsb2NrKHIuaWQpO2kucmVtb3ZlQmxvY2soci5pZCksaCYmaC50eXBlIT09ImRpdmlkZXIiJiZoLnR5cGUhPT0iaW1hZ2UiP2F3YWl0IGkuZm9jdXNCbG9jayhoLmlkLCJlbmQiKTpmJiZmLnR5cGUhPT0iZGl2aWRlciImJmYudHlwZSE9PSJpbWFnZSI/YXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQsInN0YXJ0Iik6aD9hd2FpdCBpLmZvY3VzQmxvY2soaC5pZCk6ZiYmYXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQpO3JldHVybn1sZXQgbz10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFvfHwhby5zaGFkb3dSb290KXJldHVybjtsZXQgcz1yLnR5cGU9PT0iY29kZSI/by5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm8uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighcylyZXR1cm47bGV0IGw9by5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxjPVtdO2w/LnNoYWRvd1Jvb3QmJmMucHVzaChsLnNoYWRvd1Jvb3QpLGMucHVzaChvLnNoYWRvd1Jvb3QpO2xldCB1PVllLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KHMsLi4uYyksZD1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6cy50ZXh0Q29udGVudDtpZih1PT09MCl7dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBoPWkuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtpZihoKXtpZihbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoaC50eXBlKSl7YXdhaXQgaS5mb2N1c0Jsb2NrKGguaWQpO3JldHVybn1pZih0aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKSxoLnR5cGU9PT0iY29kZSImJnIudHlwZSE9PSJjb2RlIil7ci5jb250ZW50PT09IiImJihpLnJlbW92ZUJsb2NrKHIuaWQpLGF3YWl0IGkuZm9jdXNCbG9jayhoLmlkLCJlbmQiKSk7cmV0dXJufWlmKHIudHlwZT09PSJjb2RlIiYmaC50eXBlIT09ImNvZGUiKXtsZXQgTz1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6ci5jb250ZW50OyhPPT09IiJ8fE8udHJpbSgpPT09IiIpJiYoaS5yZW1vdmVCbG9jayhyLmlkKSxhd2FpdCBpLmZvY3VzQmxvY2soaC5pZCwiZW5kIikpO3JldHVybn1sZXQgdj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtoLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpLGI9dj8uZ2V0Q29udGVudCgpfHxoLmNvbnRlbnR8fCIiLHk9by5nZXRDb250ZW50KCl8fHIuY29udGVudHx8IiIsdz0iIjtoLnR5cGU9PT0iY29kZSImJnIudHlwZT09PSJjb2RlInx8aC50eXBlPT09Imxpc3QiJiZyLnR5cGU9PT0ibGlzdCI/dz1iKyhiJiZ5P2AKYDoiIikreTp3PWIrKGImJnk/IiAiOiIiKSt5O2xldCBrPWIubGVuZ3RoO2kudXBkYXRlQmxvY2tDb250ZW50KGguaWQsdyksdiYmdi5zZXRDb250ZW50KHcpLGkucmVtb3ZlQmxvY2soci5pZCksYXdhaXQgaS5mb2N1c0Jsb2NrKGguaWQsayl9fWVsc2UgaWYodGhpcy5jb21wb25lbnQuYmxvY2tzLmxlbmd0aD4xKXtsZXQgaD1vLmdldENvbnRlbnQ/by5nZXRDb250ZW50KCk6ci5jb250ZW50O2lmKGg9PT0iInx8aC50cmltKCk9PT0iIil7dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBmPWkuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtmJiYoaS5yZW1vdmVCbG9jayhyLmlkKSxmLnR5cGUhPT0iZGl2aWRlciImJmF3YWl0IGkuZm9jdXNCbG9jayhmLmlkLCJlbmQiKSl9fX1hc3luYyBoYW5kbGVEZWxldGUodCxyKXtsZXQgaT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnM7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHIudHlwZSkpe2lmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLmNvbXBvbmVudC5ibG9ja3MubGVuZ3RoPT09MSl7dGhpcy5jb21wb25lbnQuc2F2ZVRvSGlzdG9yeSghMSksaS5yZW1vdmVCbG9jayhyLmlkKTtsZXQgdj1pLmNyZWF0ZUJsb2NrKCJwYXJhZ3JhcGgiLCIiKTt0aGlzLmNvbXBvbmVudC5ibG9ja3M9W3ZdLHRoaXMuY29tcG9uZW50LnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSxhd2FpdCBpLmZvY3VzQmxvY2sodi5pZCwic3RhcnQiKSx0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZSgpO3JldHVybn10aGlzLmNvbXBvbmVudC5zYXZlVG9IaXN0b3J5KCExKTtsZXQgaD1pLmdldFByZXZpb3VzQmxvY2soci5pZCksZj1pLmdldE5leHRCbG9jayhyLmlkKTtpLnJlbW92ZUJsb2NrKHIuaWQpO2xldCB4PVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTtmJiYheC5pbmNsdWRlcyhmLnR5cGUpP2F3YWl0IGkuZm9jdXNCbG9jayhmLmlkLCJzdGFydCIpOmgmJiF4LmluY2x1ZGVzKGgudHlwZSk/YXdhaXQgaS5mb2N1c0Jsb2NrKGguaWQsImVuZCIpOmY/YXdhaXQgaS5mb2N1c0Jsb2NrKGYuaWQpOmgmJmF3YWl0IGkuZm9jdXNCbG9jayhoLmlkKTtyZXR1cm59bGV0IG89dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ci5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighb3x8IW8uc2hhZG93Um9vdClyZXR1cm47bGV0IHM9ci50eXBlPT09ImNvZGUiP28uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpvLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIXMpcmV0dXJuO2xldCBsPW8uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksYz1bXTtsPy5zaGFkb3dSb290JiZjLnB1c2gobC5zaGFkb3dSb290KSxjLnB1c2goby5zaGFkb3dSb290KTtsZXQgdT1ZZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChzLC4uLmMpLGQ9cy50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKHU9PT1kKXtsZXQgaD1pLmdldE5leHRCbG9jayhyLmlkKTtpZihoJiZbImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il0uaW5jbHVkZXMoaC50eXBlKSl7dC5wcmV2ZW50RGVmYXVsdCgpLGF3YWl0IGkuZm9jdXNCbG9jayhoLmlkKTtyZXR1cm59fX1hc3luYyBoYW5kbGVBcnJvd1VwKHQscil7bGV0IGk9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2lmKGkuaW5jbHVkZXMoci50eXBlKSl7dC5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxkPXUuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtkJiZhd2FpdCB1LmZvY3VzQmxvY2soZC5pZCxpLmluY2x1ZGVzKGQudHlwZSk/dm9pZCAwOiJlbmQiKTtyZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ci5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89ci50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBzPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksbD1bXTtzPy5zaGFkb3dSb290JiZsLnB1c2gocy5zaGFkb3dSb290KSxsLnB1c2gobi5zaGFkb3dSb290KTtsZXQgYz1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmwpO2lmKCEoIWN8fCFjLmNvbGxhcHNlZCkmJnRoaXMuaXNPbkZpcnN0TGluZShjLG8sLi4ubCkpe3QucHJldmVudERlZmF1bHQoKTtsZXQgdT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsZD11LmdldFByZXZpb3VzQmxvY2soci5pZCk7aWYoZCl7bGV0IGg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IHUuZm9jdXNCbG9jayhkLmlkLGguaW5jbHVkZXMoZC50eXBlKT92b2lkIDA6ImVuZCIpfX19YXN5bmMgaGFuZGxlQXJyb3dEb3duKHQscil7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHIudHlwZSkpe3QucHJldmVudERlZmF1bHQoKTtsZXQgdT10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsZD11LmdldE5leHRCbG9jayhyLmlkKTtpZihkKXtsZXQgaD1bImRpdmlkZXIiLCJpbWFnZSIsInlvdXR1YmUiLCJhdHRhY2htZW50Il07YXdhaXQgdS5mb2N1c0Jsb2NrKGQuaWQsaC5pbmNsdWRlcyhkLnR5cGUpP3ZvaWQgMDoic3RhcnQiKX1yZXR1cm59bGV0IG49dGhpcy5jb21wb25lbnQuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7ci5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZighbnx8IW4uc2hhZG93Um9vdClyZXR1cm47bGV0IG89ci50eXBlPT09ImNvZGUiP24uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3IiKTpuLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIW8pcmV0dXJuO2xldCBzPW4uY2xvc2VzdCgiZGVlcy1pbnB1dC13eXNpd3lnIiksbD1bXTtzPy5zaGFkb3dSb290JiZsLnB1c2gocy5zaGFkb3dSb290KSxsLnB1c2gobi5zaGFkb3dSb290KTtsZXQgYz1ZZS5nZXRTZWxlY3Rpb25JbmZvKC4uLmwpO2lmKCEoIWN8fCFjLmNvbGxhcHNlZCkmJnRoaXMuaXNPbkxhc3RMaW5lKGMsbywuLi5sKSl7dC5wcmV2ZW50RGVmYXVsdCgpO2xldCB1PXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxkPXUuZ2V0TmV4dEJsb2NrKHIuaWQpO2lmKGQpe2xldCBoPVsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXTthd2FpdCB1LmZvY3VzQmxvY2soZC5pZCxoLmluY2x1ZGVzKGQudHlwZSk/dm9pZCAwOiJzdGFydCIpfX19Z2V0TGFzdFRleHROb2RlKHQpe2lmKHQubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlyZXR1cm4gdDtmb3IobGV0IHI9dC5jaGlsZE5vZGVzLmxlbmd0aC0xO3I+PTA7ci0tKXtsZXQgaT10aGlzLmdldExhc3RUZXh0Tm9kZSh0LmNoaWxkTm9kZXNbcl0pO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9YXN5bmMgaGFuZGxlQXJyb3dMZWZ0KHQscil7aWYoWyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKHIudHlwZSkpe3QucHJldmVudERlZmF1bHQoKTtsZXQgZD10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsaD1kLmdldFByZXZpb3VzQmxvY2soci5pZCk7aWYoaCl7bGV0IGY9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGQuZm9jdXNCbG9jayhoLmlkLGYuaW5jbHVkZXMoaC50eXBlKT92b2lkIDA6ImVuZCIpfXJldHVybn1sZXQgbj10aGlzLmNvbXBvbmVudC5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKCFufHwhbi5zaGFkb3dSb290KXJldHVybjtsZXQgbz1yLnR5cGU9PT0iY29kZSI/bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvciIpOm4uc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighbylyZXR1cm47bGV0IHM9bi5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKSxsPVtdO3M/LnNoYWRvd1Jvb3QmJmwucHVzaChzLnNoYWRvd1Jvb3QpLGwucHVzaChuLnNoYWRvd1Jvb3QpO2xldCBjPVllLmdldFNlbGVjdGlvbkluZm8oLi4ubCk7aWYoIWN8fCFjLmNvbGxhcHNlZClyZXR1cm47aWYoWWUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQobywuLi5sKT09PTApe2xldCBkPXRoaXMuY29tcG9uZW50LmJsb2NrT3BlcmF0aW9ucyxoPWQuZ2V0UHJldmlvdXNCbG9jayhyLmlkKTtpZihoKXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdLmluY2x1ZGVzKGgudHlwZSk/dm9pZCAwOiJlbmQiO2F3YWl0IGQuZm9jdXNCbG9jayhoLmlkLHgpfX19YXN5bmMgaGFuZGxlQXJyb3dSaWdodCh0LHIpe2lmKFsiZGl2aWRlciIsImltYWdlIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyhyLnR5cGUpKXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IGg9dGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLGY9aC5nZXROZXh0QmxvY2soci5pZCk7aWYoZil7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGguZm9jdXNCbG9jayhmLmlkLHguaW5jbHVkZXMoZi50eXBlKT92b2lkIDA6InN0YXJ0Iil9cmV0dXJufWxldCBuPXRoaXMuY29tcG9uZW50LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3IuaWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7aWYoIW58fCFuLnNoYWRvd1Jvb3QpcmV0dXJuO2xldCBvPXIudHlwZT09PSJjb2RlIj9uLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yIik6bi5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFvKXJldHVybjtsZXQgcz1uLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpLGw9W107cz8uc2hhZG93Um9vdCYmbC5wdXNoKHMuc2hhZG93Um9vdCksbC5wdXNoKG4uc2hhZG93Um9vdCk7bGV0IGM9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5sKTtpZighY3x8IWMuY29sbGFwc2VkKXJldHVybjtsZXQgdT1ZZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLmwpLGQ9by50ZXh0Q29udGVudD8ubGVuZ3RofHwwO2lmKHU9PT1kKXtsZXQgaD10aGlzLmNvbXBvbmVudC5ibG9ja09wZXJhdGlvbnMsZj1oLmdldE5leHRCbG9jayhyLmlkKTtpZihmKXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IHg9WyJkaXZpZGVyIiwiaW1hZ2UiLCJ5b3V0dWJlIiwiYXR0YWNobWVudCJdO2F3YWl0IGguZm9jdXNCbG9jayhmLmlkLHguaW5jbHVkZXMoZi50eXBlKT92b2lkIDA6InN0YXJ0Iil9fX1pc09uRmlyc3RMaW5lKHQsciwuLi5pKXt0cnl7bGV0IGE9WWUuY3JlYXRlUmFuZ2VGcm9tSW5mbyh0KSxuPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1hLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyO28ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKG89by5wYXJlbnRFbGVtZW50KTtsZXQgcz1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9bi50b3Atcy50b3A8NTtyZXR1cm4gby50ZXh0Q29udGVudCYmIW8udGV4dENvbnRlbnQuaW5jbHVkZXMoYApgKT9ZZS5nZXRDdXJzb3JQb3NpdGlvbkluRWxlbWVudChvLC4uLmkpPT09MDpsfWNhdGNoKGEpe3JldHVybiBjb25zb2xlLndhcm4oIkVycm9yIGNoZWNraW5nIGZpcnN0IGxpbmU6IixhKSx0LnN0YXJ0T2Zmc2V0PT09MH19aXNPbkxhc3RMaW5lKHQsciwuLi5pKXt0cnl7bGV0IGE9WWUuY3JlYXRlUmFuZ2VGcm9tSW5mbyh0KSxuPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1hLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyO28ubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmKG89by5wYXJlbnRFbGVtZW50KTtsZXQgbD1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbS1uLmJvdHRvbTw1O2lmKG8udGV4dENvbnRlbnQmJiFvLnRleHRDb250ZW50LmluY2x1ZGVzKGAKYCkpe2xldCBjPXIudGV4dENvbnRlbnQ/Lmxlbmd0aHx8MDtyZXR1cm4gWWUuZ2V0Q3Vyc29yUG9zaXRpb25JbkVsZW1lbnQociwuLi5pKT09PWN9cmV0dXJuIGx9Y2F0Y2goYSl7Y29uc29sZS53YXJuKCJFcnJvciBjaGVja2luZyBsYXN0IGxpbmU6IixhKTtsZXQgbj1yLnRleHRDb250ZW50Py5sZW5ndGh8fDA7cmV0dXJuIFllLmdldEN1cnNvclBvc2l0aW9uSW5FbGVtZW50KHIsLi4uaSk9PT1ufX19fSk7dmFyIEliLHU0cj1wKCgpPT57Q24oKTtsaCgpO0liPWNsYXNze2NvbXBvbmVudDtkcmFnZ2VkQmxvY2tJZD1udWxsO2RyYWdPdmVyQmxvY2tJZD1udWxsO2RyYWdPdmVyUG9zaXRpb249bnVsbDtkcm9wSW5kaWNhdG9yPW51bGw7aW5pdGlhbE1vdXNlWT0wO2luaXRpYWxCbG9ja1k9MDtkcmFnZ2VkQmxvY2tFbGVtZW50PW51bGw7ZHJhZ2dlZEJsb2NrSGVpZ2h0PTA7ZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD0wO2RyYWdnZWRCbG9ja01hcmdpblRvcD0wO2xhc3RVcGRhdGVUaW1lPTA7dXBkYXRlVGhyb3R0bGU9ODA7Y29uc3RydWN0b3IodCl7dGhpcy5jb21wb25lbnQ9dH1nZXQgZHJhZ1N0YXRlKCl7cmV0dXJue2RyYWdnZWRCbG9ja0lkOnRoaXMuZHJhZ2dlZEJsb2NrSWQsZHJhZ092ZXJCbG9ja0lkOnRoaXMuZHJhZ092ZXJCbG9ja0lkLGRyYWdPdmVyUG9zaXRpb246dGhpcy5kcmFnT3ZlclBvc2l0aW9ufX1oYW5kbGVEcmFnU3RhcnQodCxyKXtpZighdC5kYXRhVHJhbnNmZXIpcmV0dXJuO3RoaXMuZHJhZ2dlZEJsb2NrSWQ9ci5pZCx0LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkPSJtb3ZlIix0LmRhdGFUcmFuc2Zlci5zZXREYXRhKCJ0ZXh0L3BsYWluIixyLmlkKTtsZXQgaT1uZXcgSW1hZ2U7aWYoaS5zcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFVRUJBQUFBQ3dBQUFBQUFRQUJBQUFDQWtRQkFEcz0iLHQuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShpLDAsMCksdGhpcy5pbml0aWFsTW91c2VZPXQuY2xpZW50WSx0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQ9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtyLmlkfSJdYCksdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXtsZXQgYT10aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5pbml0aWFsQmxvY2tZPWEudG9wO2xldCBuPXRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZihuKXtsZXQgbz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9d2luZG93LmdldENvbXB1dGVkU3R5bGUobik7dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3A9cGFyc2VJbnQocy5tYXJnaW5Ub3ApfHwwLHRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodD1vLmhlaWdodH10aGlzLmRyYWdnZWRCbG9ja0hlaWdodD1hLmhlaWdodCxjb25zb2xlLmxvZygiRHJhZyBtZWFzdXJlbWVudHM6Iix7d3JhcHBlckhlaWdodDphLmhlaWdodCxtYXJnaW5Ub3A6dGhpcy5kcmFnZ2VkQmxvY2tNYXJnaW5Ub3AsZHJvcEluZGljYXRvckhlaWdodDp0aGlzLmRyYWdnZWRCbG9ja0hlaWdodCxjb250ZW50SGVpZ2h0OnRoaXMuZHJhZ2dlZEJsb2NrQ29udGVudEhlaWdodCxibG9ja0lkOnIuaWR9KSx0aGlzLmNyZWF0ZURyb3BJbmRpY2F0b3IoKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnT3ZlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsdGhpcy5oYW5kbGVHbG9iYWxEcmFnRW5kKX10aGlzLmNvbXBvbmVudC5kcmFnZ2VkQmxvY2tJZD10aGlzLmRyYWdnZWRCbG9ja0lkLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQmJnRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYmJnRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKX0sMTApfWhhbmRsZURyYWdFbmQoKXt0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIikuZm9yRWFjaChyPT57ci5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIsIm1vdmUtdXAiLCJtb3ZlLWRvd24iKSxyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWRyYWctb2Zmc2V0Iiksci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgidHJhbnNmb3JtIil9KSx0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50PW51bGwsdGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja0NvbnRlbnRIZWlnaHQ9MCx0aGlzLmRyYWdnZWRCbG9ja01hcmdpblRvcD0wLHRoaXMuaW5pdGlhbEJsb2NrWT0wLHRoaXMuY29tcG9uZW50LmRyYWdnZWRCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJQb3NpdGlvbj1udWxsfWhhbmRsZURyYWdPdmVyKHQscil7aWYodC5wcmV2ZW50RGVmYXVsdCgpLCF0LmRhdGFUcmFuc2Zlcnx8IXRoaXMuZHJhZ2dlZEJsb2NrSWR8fHRoaXMuZHJhZ2dlZEJsb2NrSWQ9PT1yLmlkKXJldHVybjt0LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0PSJtb3ZlIjtsZXQgaT10LmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1pLnRvcCtpLmhlaWdodC8yO3RoaXMuZHJhZ092ZXJCbG9ja0lkPXIuaWQsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPXQuY2xpZW50WTxhPyJiZWZvcmUiOiJhZnRlciIsdGhpcy5jb21wb25lbnQuZHJhZ092ZXJCbG9ja0lkPXRoaXMuZHJhZ092ZXJCbG9ja0lkLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249dGhpcy5kcmFnT3ZlclBvc2l0aW9ufWhhbmRsZURyYWdMZWF2ZSh0KXt0aGlzLmRyYWdPdmVyQmxvY2tJZD09PXQuaWQmJih0aGlzLmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJQb3NpdGlvbj1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyQmxvY2tJZD1udWxsLHRoaXMuY29tcG9uZW50LmRyYWdPdmVyUG9zaXRpb249bnVsbCl9aGFuZGxlRHJvcCh0LHIpe3QucHJldmVudERlZmF1bHQoKSwhKCF0aGlzLmRyYWdnZWRCbG9ja0lkfHx0aGlzLmRyYWdnZWRCbG9ja0lkPT09ci5pZCkmJnRoaXMuY29tcG9uZW50LmhhbmRsZURyb3AodCxyKX1pc0RyYWdnaW5nKHQpe3JldHVybiB0aGlzLmRyYWdnZWRCbG9ja0lkPT09dH1pc0RyYWdPdmVyKHQpe3JldHVybiB0aGlzLmRyYWdPdmVyQmxvY2tJZD09PXR9Z2V0RHJhZ092ZXJDbGFzc2VzKHQpe3JldHVybiB0aGlzLmlzRHJhZ092ZXIodCk/dGhpcy5kcmFnT3ZlclBvc2l0aW9uPT09ImJlZm9yZSI/ImRyYWctb3Zlci1iZWZvcmUiOiJkcmFnLW92ZXItYWZ0ZXIiOiIifWNyZWF0ZURyb3BJbmRpY2F0b3IoKXt0aGlzLmRyb3BJbmRpY2F0b3I9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5kcm9wSW5kaWNhdG9yLmNsYXNzTmFtZT0iZHJvcC1pbmRpY2F0b3IiLHRoaXMuZHJvcEluZGljYXRvci5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvbXBvbmVudC5lZGl0b3JDb250ZW50UmVmLmFwcGVuZENoaWxkKHRoaXMuZHJvcEluZGljYXRvcil9aGFuZGxlR2xvYmFsRHJhZ092ZXI9dD0+e2lmKHQucHJldmVudERlZmF1bHQoKSwhdGhpcy5kcmFnZ2VkQmxvY2tFbGVtZW50KXJldHVybjtsZXQgcj10LmNsaWVudFktdGhpcy5pbml0aWFsTW91c2VZO3RoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudC5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVkoJHtyfXB4KWA7bGV0IGk9RGF0ZS5ub3coKTtpLXRoaXMubGFzdFVwZGF0ZVRpbWU8dGhpcy51cGRhdGVUaHJvdHRsZXx8KHRoaXMubGFzdFVwZGF0ZVRpbWU9aSx0aGlzLnVwZGF0ZUJsb2NrUG9zaXRpb25zKHQuY2xpZW50WSkpfTt1cGRhdGVCbG9ja1Bvc2l0aW9ucyh0KXtsZXQgcj1BcnJheS5mcm9tKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKSksaT1yLmZpbmRJbmRleChuPT5uLmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoaT09PS0xKXJldHVybjtyLmZvckVhY2gobj0+e24uZ2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIikhPT10aGlzLmRyYWdnZWRCbG9ja0lkJiYobi5jbGFzc0xpc3QucmVtb3ZlKCJtb3ZlLXVwIiwibW92ZS1kb3duIiksbi5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1kcmFnLW9mZnNldCIpKX0pO2xldCBhPXIubGVuZ3RoO2ZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKXtpZihuPT09aSljb250aW51ZTtsZXQgcz1yW25dLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9cy50b3A7aWYodDxsK3MuaGVpZ2h0Ki41KXthPW47YnJlYWt9fWZvcihsZXQgbj0wO248ci5sZW5ndGg7bisrKXtpZihuPT09aSljb250aW51ZTtsZXQgbz1yW25dO2k8YT9uPmkmJm48YSYmKG8uY2xhc3NMaXN0LmFkZCgibW92ZS11cCIpLG8uc3R5bGUuc2V0UHJvcGVydHkoIi0tZHJhZy1vZmZzZXQiLGAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCkpOmk+YSYmbj49YSYmbjxpJiYoby5jbGFzc0xpc3QuYWRkKCJtb3ZlLWRvd24iKSxvLnN0eWxlLnNldFByb3BlcnR5KCItLWRyYWctb2Zmc2V0IixgJHt0aGlzLmRyYWdnZWRCbG9ja0hlaWdodH1weGApKX10aGlzLnVwZGF0ZURyb3BJbmRpY2F0b3IocixhLGkpfXVwZGF0ZURyb3BJbmRpY2F0b3IodCxyLGkpe2lmKCF0aGlzLmRyb3BJbmRpY2F0b3J8fCF0aGlzLmRyYWdnZWRCbG9ja0VsZW1lbnQpcmV0dXJuO3RoaXMuZHJvcEluZGljYXRvci5zdHlsZS5kaXNwbGF5PSJibG9jayI7bGV0IGE9dGhpcy5jb21wb25lbnQuZWRpdG9yQ29udGVudFJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPTAsbz1bXTtmb3IobGV0IGM9MDtjPHQubGVuZ3RoO2MrKyl7aWYoYz09PWkpY29udGludWU7bGV0IHU9dFtjXSxkPXUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaD1kLnRvcC1hLnRvcCxmPWQuYm90dG9tLWEudG9wLHg9d2luZG93LmdldENvbXB1dGVkU3R5bGUodSkudHJhbnNmb3JtO2lmKHgmJnghPT0ibm9uZSIpe2xldCBiPW5ldyBET01NYXRyaXgoeCkubTQyO2grPWIsZis9Yn1vLnB1c2goe2luZGV4OmMsdG9wOmgsYm90dG9tOmZ9KX1vLnNvcnQoKGMsdSk9PmMudG9wLXUudG9wKTtsZXQgcz1yO3I+aSYmcy0tO2xldCBsPTE2O2lmKHRoaXMuZHJhZ2dlZEJsb2NrRWxlbWVudCl7bGV0IGM9dGhpcy5jb21wb25lbnQuYmxvY2tzLmZpbmQodT0+dS5pZD09PXRoaXMuZHJhZ2dlZEJsb2NrSWQpO2lmKGMpe2xldCB1PWMudHlwZTt1PT09ImhlYWRpbmctMSJ8fHU9PT0iaGVhZGluZy0yInx8dT09PSJoZWFkaW5nLTMiP2w9MjQ6KHU9PT0iY29kZSJ8fHU9PT0icXVvdGUiKSYmKGw9MjApfX1pZihzPT09MCluPTA7ZWxzZSBpZihzPj1vLmxlbmd0aCl7bGV0IGM9b1tvLmxlbmd0aC0xXTtjJiYobj1jLmJvdHRvbSxuKz1sKX1lbHNle2xldCBjPW9bcy0xXTtjJiYobj1jLmJvdHRvbSxuKz1sKX10aGlzLmRyb3BJbmRpY2F0b3Iuc3R5bGUuaGVpZ2h0PWAke3RoaXMuZHJhZ2dlZEJsb2NrSGVpZ2h0fXB4YCx0aGlzLmRyb3BJbmRpY2F0b3Iuc3R5bGUudG9wPWAke01hdGgubWF4KDAsbil9cHhgLGNvbnNvbGUubG9nKCJEcm9wIGluZGljYXRvciB1cGRhdGU6Iix7dGFyZ2V0SW5kZXg6cixhZGp1c3RlZFRhcmdldEluZGV4OnMsZHJhZ2dlZEluZGV4OmksdG9wUG9zaXRpb246bixoZWlnaHQ6dGhpcy5kcmFnZ2VkQmxvY2tIZWlnaHQsYmxvY2tNYXJnaW46bCx2aXN1YWxCbG9ja3M6by5tYXAoYz0+KHtpbmRleDpjLmluZGV4LHRvcDpjLnRvcCxib3R0b206Yy5ib3R0b219KSl9KX1oYW5kbGVHbG9iYWxEcmFnRW5kPSgpPT57ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLHRoaXMuaGFuZGxlR2xvYmFsRHJhZ092ZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdlbmQiLHRoaXMuaGFuZGxlR2xvYmFsRHJhZ0VuZCksdGhpcy5kcm9wSW5kaWNhdG9yJiYodGhpcy5kcm9wSW5kaWNhdG9yLnJlbW92ZSgpLHRoaXMuZHJvcEluZGljYXRvcj1udWxsKSx0aGlzLmRyYWdnZWRCbG9ja0lkP3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3RoaXMucGVyZm9ybURyb3AoKSx0aGlzLmhhbmRsZURyYWdFbmQoKX0pOnRoaXMuaGFuZGxlRHJhZ0VuZCgpfTtwZXJmb3JtRHJvcCgpe2lmKCF0aGlzLmRyYWdnZWRCbG9ja0lkKXJldHVybjtsZXQgdD1BcnJheS5mcm9tKHRoaXMuY29tcG9uZW50LmVkaXRvckNvbnRlbnRSZWYucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKSk7aWYoIXQuZmluZCh1PT51LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCkpcmV0dXJuO2xldCBpPXQubWFwKHU9PntsZXQgZD11LmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpLGg9dS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxmPWgudG9wK2guaGVpZ2h0LzI7cmV0dXJue2lkOmQsY2VudGVyWTpmLGVsZW1lbnQ6dX19KTtpLnNvcnQoKHUsZCk9PnUuY2VudGVyWS1kLmNlbnRlclkpO2xldCBhPWkubWFwKHU9PnUuaWQpLmZpbHRlcih1PT51IT09bnVsbCksbj1bLi4udGhpcy5jb21wb25lbnQuYmxvY2tzXSxvPW4uZmluZCh1PT51LmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCk7aWYoIW8pcmV0dXJuO2xldCBzPW4ubWFwKHU9PnUuaWQpO2lmKCEhYS5ldmVyeSgodSxkKT0+dT09PXNbZF0pKXJldHVybjtsZXQgYz1hLm1hcCh1PT5uLmZpbmQoZD0+ZC5pZD09PXUpKS5maWx0ZXIoQm9vbGVhbik7dGhpcy5jb21wb25lbnQuYmxvY2tzPWMsdGhpcy5jb21wb25lbnQucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpLHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlKCksc2V0VGltZW91dCgoKT0+e28udHlwZSE9PSJkaXZpZGVyIiYmdGhpcy5jb21wb25lbnQuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soby5pZCl9LDEwMCl9fX0pO3ZhciBQYixwNHI9cCgoKT0+e0NuKCk7UGI9Y2xhc3N7aGlzdG9yeT1bXTtjdXJyZW50SW5kZXg9LTE7bWF4SGlzdG9yeVNpemU9NTA7bGFzdFNhdmVUaW1lPTA7c2F2ZURlYm91bmNlTXM9NTAwO2NvbnN0cnVjdG9yKCl7dGhpcy5oaXN0b3J5PVtdLHRoaXMuY3VycmVudEluZGV4PS0xfXNhdmVTdGF0ZSh0LHIsaSl7bGV0IGE9RGF0ZS5ub3coKTtpZihhLXRoaXMubGFzdFNhdmVUaW1lPHRoaXMuc2F2ZURlYm91bmNlTXMmJnRoaXMuY3VycmVudEluZGV4Pj0wKXt0aGlzLmhpc3RvcnlbdGhpcy5jdXJyZW50SW5kZXhdPXtibG9ja3M6dGhpcy5jbG9uZUJsb2Nrcyh0KSxzZWxlY3RlZEJsb2NrSWQ6cixjdXJzb3JQb3NpdGlvbjppP3suLi5pfTp2b2lkIDAsdGltZXN0YW1wOmF9O3JldHVybn10aGlzLmN1cnJlbnRJbmRleDx0aGlzLmhpc3RvcnkubGVuZ3RoLTEmJih0aGlzLmhpc3Rvcnk9dGhpcy5oaXN0b3J5LnNsaWNlKDAsdGhpcy5jdXJyZW50SW5kZXgrMSkpO2xldCBuPXtibG9ja3M6dGhpcy5jbG9uZUJsb2Nrcyh0KSxzZWxlY3RlZEJsb2NrSWQ6cixjdXJzb3JQb3NpdGlvbjppP3suLi5pfTp2b2lkIDAsdGltZXN0YW1wOmF9O3RoaXMuaGlzdG9yeS5wdXNoKG4pLHRoaXMuY3VycmVudEluZGV4KyssdGhpcy5oaXN0b3J5Lmxlbmd0aD50aGlzLm1heEhpc3RvcnlTaXplJiYodGhpcy5oaXN0b3J5LnNoaWZ0KCksdGhpcy5jdXJyZW50SW5kZXgtLSksdGhpcy5sYXN0U2F2ZVRpbWU9YX1zYXZlQ2hlY2twb2ludCh0LHIsaSl7dGhpcy5sYXN0U2F2ZVRpbWU9MCx0aGlzLnNhdmVTdGF0ZSh0LHIsaSl9dW5kbygpe3JldHVybiB0aGlzLmNhblVuZG8oKT8odGhpcy5jdXJyZW50SW5kZXgtLSx0aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSkpOm51bGx9cmVkbygpe3JldHVybiB0aGlzLmNhblJlZG8oKT8odGhpcy5jdXJyZW50SW5kZXgrKyx0aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSkpOm51bGx9Y2FuVW5kbygpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleD4wfWNhblJlZG8oKXtyZXR1cm4gdGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aC0xfWdldEN1cnJlbnRTdGF0ZSgpe3JldHVybiB0aGlzLmN1cnJlbnRJbmRleD49MCYmdGhpcy5jdXJyZW50SW5kZXg8dGhpcy5oaXN0b3J5Lmxlbmd0aD90aGlzLmNsb25lU3RhdGUodGhpcy5oaXN0b3J5W3RoaXMuY3VycmVudEluZGV4XSk6bnVsbH1jbGVhcigpe3RoaXMuaGlzdG9yeT1bXSx0aGlzLmN1cnJlbnRJbmRleD0tMSx0aGlzLmxhc3RTYXZlVGltZT0wfWNsb25lQmxvY2tzKHQpe3JldHVybiB0Lm1hcChyPT4oey4uLnIsbWV0YWRhdGE6ci5tZXRhZGF0YT97Li4uci5tZXRhZGF0YX06dm9pZCAwfSkpfWNsb25lU3RhdGUodCl7cmV0dXJue2Jsb2Nrczp0aGlzLmNsb25lQmxvY2tzKHQuYmxvY2tzKSxzZWxlY3RlZEJsb2NrSWQ6dC5zZWxlY3RlZEJsb2NrSWQsY3Vyc29yUG9zaXRpb246dC5jdXJzb3JQb3NpdGlvbj97Li4udC5jdXJzb3JQb3NpdGlvbn06dm9pZCAwLHRpbWVzdGFtcDp0LnRpbWVzdGFtcH19Z2V0SGlzdG9yeUluZm8oKXtyZXR1cm57c2l6ZTp0aGlzLmhpc3RvcnkubGVuZ3RoLGN1cnJlbnRJbmRleDp0aGlzLmN1cnJlbnRJbmRleCxjYW5VbmRvOnRoaXMuY2FuVW5kbygpLGNhblJlZG86dGhpcy5jYW5SZWRvKCl9fX19KTt2YXIgTmIsQ2MsaDRyLGY0cj1wKCgpPT57eGUoKTtDbigpO3pjKCk7bmwoKTtpZGUoKTthZGUoKTtZZCgpO01pKCk7SmUoKTtOYj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LENjPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxoNHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXd5c2l3eWctYmxvY2siKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpPYmplY3R9KV0sbD1baih7dHlwZTpCb29sZWFufSldLGQ9W2ooe3R5cGU6T2JqZWN0fSldLHg9W2ooe3R5cGU6T2JqZWN0fSldLE5iKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmxvY2siLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJibG9jayJpbiBrLGdldDprPT5rLmJsb2NrLHNldDooayxPKT0+e2suYmxvY2s9T319LG1ldGFkYXRhOnd9LG8scyksTmIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1NlbGVjdGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaXNTZWxlY3RlZCJpbiBrLGdldDprPT5rLmlzU2VsZWN0ZWQsc2V0OihrLE8pPT57ay5pc1NlbGVjdGVkPU99fSxtZXRhZGF0YTp3fSxjLHUpLE5iKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaGFuZGxlcnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJoYW5kbGVycyJpbiBrLGdldDprPT5rLmhhbmRsZXJzLHNldDooayxPKT0+e2suaGFuZGxlcnM9T319LG1ldGFkYXRhOnd9LGgsZiksTmIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3eXNpd3lnQ29tcG9uZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4id3lzaXd5Z0NvbXBvbmVudCJpbiBrLGdldDprPT5rLnd5c2l3eWdDb21wb25lbnQsc2V0OihrLE8pPT57ay53eXNpd3lnQ29tcG9uZW50PU99fSxtZXRhZGF0YTp3fSx2LGIpLE5iKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnd9LG51bGwscikseT1pPXQudmFsdWUsdyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp3fSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuX3NlbGVjdGlvbkhhbmRsZXImJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsdGhpcy5fc2VsZWN0aW9uSGFuZGxlcil9I2U9Q2ModGhpcyxvLHZvaWQgMCk7Z2V0IGJsb2NrKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGJsb2NrKHcpe3RoaXMuI2U9d30jdD0oQ2ModGhpcyxzKSxDYyh0aGlzLGMsITEpKTtnZXQgaXNTZWxlY3RlZCgpe3JldHVybiB0aGlzLiN0fXNldCBpc1NlbGVjdGVkKHcpe3RoaXMuI3Q9d30jcj0oQ2ModGhpcyx1KSxDYyh0aGlzLGgsdm9pZCAwKSk7Z2V0IGhhbmRsZXJzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGhhbmRsZXJzKHcpe3RoaXMuI3I9d30jaT0oQ2ModGhpcyxmKSxDYyh0aGlzLHYsdm9pZCAwKSk7Z2V0IHd5c2l3eWdDb21wb25lbnQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgd3lzaXd5Z0NvbXBvbmVudCh3KXt0aGlzLiNpPXd9YmxvY2tFbGVtZW50PShDYyh0aGlzLGIpLG51bGwpO2NvbnRlbnRJbml0aWFsaXplZD0hMTtsYXN0S25vd25DdXJzb3JQb3NpdGlvbj0wO2xhc3RTZWxlY3RlZFRleHQ9IiI7aGFuZGxlclN0eWxlc0luamVjdGVkPSExO3N0YXRpYyBOT05fRURJVEFCTEVfVFlQRVM9WyJpbWFnZSIsImRpdmlkZXIiLCJ5b3V0dWJlIl07aW5qZWN0SGFuZGxlclN0eWxlcygpe2lmKHRoaXMuaGFuZGxlclN0eWxlc0luamVjdGVkKXJldHVybjt0aGlzLmhhbmRsZXJTdHlsZXNJbmplY3RlZD0hMDtsZXQgdz0iIixrPU5yLmdldEFsbFR5cGVzKCk7Zm9yKGxldCBPIG9mIGspe2xldCB6PU5yLmdldEhhbmRsZXIoTyk7eiYmKHcrPXouZ2V0U3R5bGVzKCkpfWlmKHcpe2xldCBPPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Ty50ZXh0Q29udGVudD13LHRoaXMuc2hhZG93Um9vdD8uYXBwZW5kQ2hpbGQoTyl9fXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAuYmxvY2sgewogICAgICAgIHBhZGRpbmc6IDRweCAwOwogICAgICAgIG1pbi1oZWlnaHQ6IDEuNmVtOwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAwMDAiLCIjZTBlMGUwIil9OwogICAgICB9CgogICAgICAuYmxvY2s6ZW1wdHk6bm90KDpmb2N1cyk6OmJlZm9yZSB7CiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXBsYWNlaG9sZGVyKTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM5OTkiLCIjNjY2Iil9OwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLyogQmxvY2stc3BlY2lmaWMgc3R5bGVzIG1vdmVkIHRvIGhhbmRsZXJzICovCgoKICAgICAgLyogRm9ybWF0dGluZyBzdHlsZXMgKi8KICAgICAgLmJsb2NrIDppcyhiLCBzdHJvbmcpIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMDAwMCIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5ibG9jayA6aXMoaSwgZW0pIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5ibG9jayB1IHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQoKICAgICAgLmJsb2NrIHMgewogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogICAgICB9CgogICAgICAuYmxvY2sgY29kZSB7CiAgICAgICAgZm9udC1mYW1pbHk6ICdTRiBNb25vJywgJ01vbmFjbycsICdJbmNvbnNvbGF0YScsICdGaXJhIENvZGUnLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiAwLjllbTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkMTQiLCIjZmY2YjZiIil9OwogICAgICB9CgogICAgICAuYmxvY2sgYSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLmJsb2NrIGE6aG92ZXIgewogICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7bS5iZFRoZW1lKCIjMDA2NmNjIiwiIzRkOTRmZiIpfTsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9jayBjb250YWluZXIgYW5kIGxhbmd1YWdlIHN0eWxlcyBtb3ZlZCB0byBoYW5kbGVyICovCgogICAgICAvKiBTZWxlY3Rpb24gc3R5bGVzICovCiAgICAgIC5ibG9jayA6OnNlbGVjdGlvbiB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMykiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4zKSIpfTsKICAgICAgICBjb2xvcjogaW5oZXJpdDsKICAgICAgfQoKCiAgICAgIC8qIFN0cmlrZSB0aHJvdWdoICovCiAgICAgIC5ibG9jayA6aXMocywgc3RyaWtlKSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgICAgb3BhY2l0eTogMC43OwogICAgICB9CgoKICAgICAgLyogQmxvY2sgbWFyZ2luIGFkanVzdG1lbnRzIGJhc2VkIG9uIHR5cGUgKi8KICAgICAgOmhvc3QtY29udGV4dCguYmxvY2std3JhcHBlcjpmaXJzdC1jaGlsZCkgLmJsb2NrIHsKICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIDpob3N0LWNvbnRleHQoLmJsb2NrLXdyYXBwZXI6bGFzdC1jaGlsZCkgLmJsb2NrIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBTZWxlY3RlZCBzdGF0ZSAqLwogICAgICAuYmxvY2suc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDEwMiwgMjA0LCAwLjA1KSIsInJnYmEoNzcsIDE0OCwgMjU1LCAwLjA4KSIpfTsKICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggJHttLmJkVGhlbWUoInJnYmEoMCwgMTAyLCAyMDQsIDAuMikiLCJyZ2JhKDc3LCAxNDgsIDI1NSwgMC4yKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLWxlZnQ6IC04cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIHBhZGRpbmctbGVmdDogOHB4OwogICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDsKICAgICAgfQoKCgoKICAgIGBdO3Nob3VsZFVwZGF0ZSh3KXtpZih3LmhhcygiaXNTZWxlY3RlZCIpJiZ0aGlzLmJsb2NrKXtsZXQgaz1udWxsLHo9YC5ibG9jay4ke3RoaXMuYmxvY2sudHlwZX1gO3JldHVybiBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3Rvcih6KSxrJiYodGhpcy5pc1NlbGVjdGVkP2suY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTprLmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGVkIikpLCExfWlmKHcuaGFzKCJibG9jayIpJiZ0aGlzLmJsb2NrKXtsZXQgaz13LmdldCgiYmxvY2siKTtpZihrJiZrLmlkJiZrLnR5cGUmJmsuaWQ9PT10aGlzLmJsb2NrLmlkJiZrLnR5cGU9PT10aGlzLmJsb2NrLnR5cGUpcmV0dXJuITF9cmV0dXJuIXRoaXMuYmxvY2tFbGVtZW50fHx0aGlzLmJsb2NrPy50eXBlIT09dGhpcy5ibG9ja0VsZW1lbnQuZGF0YXNldC5ibG9ja1R5cGV9Zmlyc3RVcGRhdGVkKCl7dGhpcy5jb250ZW50SW5pdGlhbGl6ZWQ9ITAsdGhpcy5pbmplY3RIYW5kbGVyU3R5bGVzKCk7bGV0IHc9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIud3lzaXd5Zy1ibG9jay1jb250YWluZXIiKTtpZih3JiZ0aGlzLmJsb2NrJiYody5pbm5lckhUTUw9dGhpcy5yZW5kZXJCbG9ja0NvbnRlbnQoKSksdGhpcy5ibG9jayl7bGV0IE89TnIuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKE8pe2xldCB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIik7eiYmTy5zZXR1cCh6LHRoaXMuYmxvY2ssdGhpcy5oYW5kbGVycyk7cmV0dXJufX1sZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKGspe2suc2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIix0aGlzLmJsb2NrLmlkKSxrLnNldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay10eXBlIix0aGlzLmJsb2NrLnR5cGUpLGsuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHo9Pnt0aGlzLmhhbmRsZXJzPy5vbklucHV0Py4oeik7bGV0IE09dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihrKTtNIT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249TSl9KSxrLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHo9PntsZXQgTT10aGlzLmdldEN1cnNvclBvc2l0aW9uKGspO00hPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj1NKSx0aGlzLmhhbmRsZXJzPy5vbktleURvd24/Lih6KX0pLGsuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCgpPT57dGhpcy5oYW5kbGVycz8ub25Gb2N1cz8uKCl9KSxrLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT57dGhpcy5oYW5kbGVycz8ub25CbHVyPy4oKX0pLGsuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkNvbXBvc2l0aW9uU3RhcnQ/LigpfSksay5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsKCk9Pnt0aGlzLmhhbmRsZXJzPy5vbkNvbXBvc2l0aW9uRW5kPy4oKX0pLGsuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsej0+e2xldCBNPXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb24oayk7TSE9PW51bGwmJih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uPU0pLHRoaXMuaGFuZGxlcnM/Lm9uTW91c2VVcD8uKHopfSksay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PntzZXRUaW1lb3V0KCgpPT57bGV0IHo9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihrKTt6IT09bnVsbCYmKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb249eil9LDApfSk7bGV0IE89KCk9PntsZXQgej13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIXp8fHoucmFuZ2VDb3VudD09PTApcmV0dXJuO2xldCBNPXoudG9TdHJpbmcoKTtpZihNLmxlbmd0aD09PTApe3RoaXMubGFzdFNlbGVjdGVkVGV4dCYmKHRoaXMubGFzdFNlbGVjdGVkVGV4dD0iIix0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJibG9jay10ZXh0LXNlbGVjdGVkIix7ZGV0YWlsOnt0ZXh0OiIiLGJsb2NrSWQ6dGhpcy5ibG9jay5pZCxoYXNTZWxlY3Rpb246ITF9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpO3JldHVybn1sZXQgRj10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFGKXJldHVybjtsZXQgTj10aGlzLmNsb3Nlc3QoImRlZXMtaW5wdXQtd3lzaXd5ZyIpPy5zaGFkb3dSb290LFI9W107TiYmUi5wdXNoKE4pLHRoaXMuc2hhZG93Um9vdCYmUi5wdXNoKHRoaXMuc2hhZG93Um9vdCk7bGV0IF89WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5SKTtpZighXylyZXR1cm47bGV0IFM9WWUuY29udGFpbnNBY3Jvc3NTaGFkb3dET00oRixfLnN0YXJ0Q29udGFpbmVyKSwkPVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKEYsXy5lbmRDb250YWluZXIpO2lmKFN8fCQpe2lmKE0hPT10aGlzLmxhc3RTZWxlY3RlZFRleHQpe3RoaXMubGFzdFNlbGVjdGVkVGV4dD1NO2xldCBUPVllLmNyZWF0ZVJhbmdlRnJvbUluZm8oXyksRT1ULmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImJsb2NrLXRleHQtc2VsZWN0ZWQiLHtkZXRhaWw6e3RleHQ6TS50cmltKCksYmxvY2tJZDp0aGlzLmJsb2NrLmlkLHJhbmdlOlQscmVjdDpFLGhhc1NlbGVjdGlvbjohMH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19ZWxzZSB0aGlzLmxhc3RTZWxlY3RlZFRleHQmJih0aGlzLmxhc3RTZWxlY3RlZFRleHQ9IiIsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiYmxvY2stdGV4dC1zZWxlY3RlZCIse2RldGFpbDp7dGV4dDoiIixibG9ja0lkOnRoaXMuYmxvY2suaWQsaGFzU2VsZWN0aW9uOiExfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixPKSx0aGlzLl9zZWxlY3Rpb25IYW5kbGVyPU8say5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsKCk9PntsZXQgej10aGlzLmdldEN1cnNvclBvc2l0aW9uKGspO3ohPT1udWxsJiYodGhpcy5sYXN0S25vd25DdXJzb3JQb3NpdGlvbj16KX0pLHRoaXMuYmxvY2suY29udGVudCYmKGsuaW5uZXJIVE1MPXRoaXMuYmxvY2suY29udGVudCl9dGhpcy5ibG9ja0VsZW1lbnQ9a31yZW5kZXIoKXtyZXR1cm4gdGhpcy5ibG9jaz96NGA8ZGl2IGNsYXNzPSJ3eXNpd3lnLWJsb2NrLWNvbnRhaW5lciI+PC9kaXY+YDp6NGBgfXJlbmRlckJsb2NrQ29udGVudCgpe2lmKCF0aGlzLmJsb2NrKXJldHVybiIiO2xldCB3PU5yLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih3KXJldHVybiB3LnJlbmRlcih0aGlzLmJsb2NrLHRoaXMuaXNTZWxlY3RlZCk7bGV0IGs9dGhpcy5pc1NlbGVjdGVkPyIgc2VsZWN0ZWQiOiIiO3JldHVybmAKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJibG9jayAke3RoaXMuYmxvY2sudHlwZX0ke2t9IgogICAgICAgIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIKICAgICAgPjwvZGl2PgogICAgYH1mb2N1cygpe2xldCB3PU5yLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih3JiZ3LmZvY3VzKXtsZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLHo9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gdy5mb2N1cyhPLHopfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe2xldCBPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLmJsb2NrLiR7dGhpcy5ibG9jay50eXBlfWApO08mJk8uZm9jdXMoKTtyZXR1cm59bGV0IGs9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtrJiYoay5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxrLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLGsuZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ayYmdGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT09ayYmUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2suZm9jdXMoKX0pKX1mb2N1c1dpdGhDdXJzb3Iodz0iZW5kIil7bGV0IGs9TnIuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKGsmJmsuZm9jdXNXaXRoQ3Vyc29yKXtsZXQgTT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLEY9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gay5mb2N1c1dpdGhDdXJzb3IoTSx3LEYpfWlmKHRoaXMuYmxvY2smJnkuTk9OX0VESVRBQkxFX1RZUEVTLmluY2x1ZGVzKHRoaXMuYmxvY2sudHlwZSkpe3RoaXMuZm9jdXMoKTtyZXR1cm59bGV0IE89dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZighTylyZXR1cm47Ty5oYXNBdHRyaWJ1dGUoImNvbnRlbnRlZGl0YWJsZSIpfHxPLnNldEF0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIiwidHJ1ZSIpLE8uZm9jdXMoKTtsZXQgej0oKT0+e3c9PT0ic3RhcnQiP3RoaXMuc2V0Q3Vyc29yVG9TdGFydCgpOnc9PT0iZW5kIj90aGlzLnNldEN1cnNvclRvRW5kKCk6dHlwZW9mIHc9PSJudW1iZXIiJiZZZS5zZXRDdXJzb3JQb3NpdGlvbihPLHcpfTtkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09T3x8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09Tz96KCk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+eyhkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09T3x8dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50PT09TykmJnooKX0pfWdldEN1cnNvclBvc2l0aW9uKHcpe2xldCBrPU5yLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrJiZrLmdldEN1cnNvclBvc2l0aW9uKXtsZXQgUj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLmdldEN1cnNvclBvc2l0aW9uKHcsUil9bGV0IHo9dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxNPVtdO3omJk0ucHVzaCh6KSx0aGlzLnNoYWRvd1Jvb3QmJk0ucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBGPVllLmdldFNlbGVjdGlvbkluZm8oLi4uTSk7aWYoY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBTZWxlY3Rpb24gaW5mbyBmcm9tIHNoYWRvdyBET01zOiIse3NlbGVjdGlvbkluZm86RixzaGFkb3dSb290c0NvdW50Ok0ubGVuZ3RofSksIUYpcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRDdXJzb3JQb3NpdGlvbjogTm8gc2VsZWN0aW9uIGZvdW5kIiksbnVsbDtpZihjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIGluZm86Iix7c3RhcnRDb250YWluZXI6Ri5zdGFydENvbnRhaW5lcixzdGFydE9mZnNldDpGLnN0YXJ0T2Zmc2V0LGNvbGxhcHNlZDpGLmNvbGxhcHNlZCxzdGFydENvbnRhaW5lclRleHQ6Ri5zdGFydENvbnRhaW5lci50ZXh0Q29udGVudH0pLCF3LmNvbnRhaW5zKEYuc3RhcnRDb250YWluZXIpKXJldHVybiBjb25zb2xlLmxvZygiZ2V0Q3Vyc29yUG9zaXRpb246IFJhbmdlIG5vdCBpbiBlbGVtZW50IiksbnVsbDtsZXQgRD1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO0Quc2VsZWN0Tm9kZUNvbnRlbnRzKHcpLEQuc2V0RW5kKEYuc3RhcnRDb250YWluZXIsRi5zdGFydE9mZnNldCk7bGV0IE49RC50b1N0cmluZygpLmxlbmd0aDtyZXR1cm4gY29uc29sZS5sb2coImdldEN1cnNvclBvc2l0aW9uOiBDYWxjdWxhdGVkIHBvc2l0aW9uOiIse3Bvc2l0aW9uOk4scHJlQ2FyZXRUZXh0OkQudG9TdHJpbmcoKSxlbGVtZW50VGV4dDp3LnRleHRDb250ZW50LGVsZW1lbnRUZXh0TGVuZ3RoOncudGV4dENvbnRlbnQ/Lmxlbmd0aH0pLE59Z2V0Q29udGVudCgpe2xldCB3PU5yLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZih3JiZ3LmdldENvbnRlbnQpe2xldCB6PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksTT17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB3LmdldENvbnRlbnQoeixNKX1sZXQgaz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKCFrKXJldHVybiIiO2xldCBPPWsuaW5uZXJIVE1MfHwiIjtyZXR1cm4gY29uc29sZS5sb2coIkdldHRpbmcgY29udGVudCBmcm9tIGJsb2NrOiIsTyksT31zZXRDb250ZW50KHcpe2xldCBrPU5yLmdldEhhbmRsZXIodGhpcy5ibG9jay50eXBlKTtpZihrJiZrLnNldENvbnRlbnQpe2xldCBNPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksRj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiBrLnNldENvbnRlbnQoTSx3LEYpfWxldCBPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIU8pcmV0dXJuO2xldCB6PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1PfHx0aGlzLnNoYWRvd1Jvb3Q/LmFjdGl2ZUVsZW1lbnQ9PT1PO08uaW5uZXJIVE1MPXcseiYmTy5mb2N1cygpfXNldEN1cnNvclRvU3RhcnQoKXtsZXQgdz1Oci5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYodyYmdy5zZXRDdXJzb3JUb1N0YXJ0KXtsZXQgTz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpLHo9e3NoYWRvd1Jvb3Q6dGhpcy5zaGFkb3dSb290LGNvbXBvbmVudDp0aGlzfTtyZXR1cm4gdy5zZXRDdXJzb3JUb1N0YXJ0KE8seil9bGV0IGs9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtrJiZhYS5zZXRDdXJzb3JUb1N0YXJ0KGspfXNldEN1cnNvclRvRW5kKCl7bGV0IHc9TnIuZ2V0SGFuZGxlcih0aGlzLmJsb2NrLnR5cGUpO2lmKHcmJncuc2V0Q3Vyc29yVG9FbmQpe2xldCBPPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnd5c2l3eWctYmxvY2stY29udGFpbmVyIiksej17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB3LnNldEN1cnNvclRvRW5kKE8seil9bGV0IGs9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtrJiZhYS5zZXRDdXJzb3JUb0VuZChrKX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7aWYoIXRoaXMuYmxvY2t8fHRoaXMuYmxvY2sudHlwZT09PSJkaXZpZGVyIilyZXR1cm5bXTtsZXQgdz1HMS5nZXRTbGFzaE1lbnVJdGVtcygpLGs9dGhpcy5ibG9jay50eXBlLE89dGhpcy53eXNpd3lnQ29tcG9uZW50LHo9dGhpcy5ibG9jay5pZCxGPVt7bmFtZToiQ2hhbmdlIFR5cGUiLGljb25OYW1lOiJ0eXBlIixzdWJtZW51OncuZmlsdGVyKEQ9PkQudHlwZSE9PWsmJkQudHlwZSE9PSJkaXZpZGVyIikubWFwKEQ9Pih7bmFtZTpELmxhYmVsLGljb25OYW1lOkQuaWNvbi5yZXBsYWNlKCJsdWNpZGU6IiwiIiksYWN0aW9uOmFzeW5jKCk9PntpZihPJiZPLmJsb2NrT3BlcmF0aW9ucyl7bGV0IE49Ty5ibG9ja3MuZmluZChSPT5SLmlkPT09eik7TiYmKE4udHlwZT1ELnR5cGUsTi5jb250ZW50PU4uY29udGVudHx8IiIsRC50eXBlPT09ImNvZGUiP04ubWV0YWRhdGE9e2xhbmd1YWdlOiJ0eXBlc2NyaXB0In06RC50eXBlPT09Imxpc3QiP04ubWV0YWRhdGE9e2xpc3RUeXBlOiJidWxsZXQifTpELnR5cGU9PT0iaW1hZ2UiPyhOLmNvbnRlbnQ9IiIsTi5tZXRhZGF0YT17dXJsOiIiLGxvYWRpbmc6ITF9KTpELnR5cGU9PT0ieW91dHViZSI/KE4uY29udGVudD0iIixOLm1ldGFkYXRhPXt2aWRlb0lkOiIiLHVybDoiIn0pOkQudHlwZT09PSJtYXJrZG93biI/Ti5tZXRhZGF0YT17c2hvd1ByZXZpZXc6ITF9OkQudHlwZT09PSJodG1sIj9OLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06RC50eXBlPT09ImF0dGFjaG1lbnQiJiYoTi5jb250ZW50PSIiLE4ubWV0YWRhdGE9e2ZpbGVzOltdfSksTy51cGRhdGVCbG9ja0VsZW1lbnQoeiksTy51cGRhdGVWYWx1ZSgpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e08uYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soeil9KSl9fX0pKX1dO3JldHVyblsiaW1hZ2UiLCJkaXZpZGVyIiwieW91dHViZSIsImF0dGFjaG1lbnQiXS5pbmNsdWRlcyh0aGlzLmJsb2NrLnR5cGUpfHxGLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJDdXQiLGljb25OYW1lOiJzY2lzc29ycyIsc2hvcnRjdXQ6IkNtZCtYIixhY3Rpb246YXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJjdXQiKX19LHtuYW1lOiJDb3B5IixpY29uTmFtZToiY29weSIsc2hvcnRjdXQ6IkNtZCtDIixhY3Rpb246YXN5bmMoKT0+e2RvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iil9fSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLHNob3J0Y3V0OiJDbWQrViIsYWN0aW9uOmFzeW5jKCk9Pntkb2N1bWVudC5leGVjQ29tbWFuZCgicGFzdGUiKX19KSxGLnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOiJEZWxldGUgQmxvY2siLGljb25OYW1lOiJ0cmFzaDIiLGFjdGlvbjphc3luYygpPT57TyYmTy5ibG9ja09wZXJhdGlvbnMmJk8uYmxvY2tPcGVyYXRpb25zLmRlbGV0ZUJsb2NrKHopfX0pLEZ9Z2V0U3BsaXRDb250ZW50KCl7Y29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3RhcnRpbmcuLi4iKTtsZXQgdz1Oci5nZXRIYW5kbGVyKHRoaXMuYmxvY2sudHlwZSk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogQ2hlY2tpbmcgZm9yIGhhbmRsZXIiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGhhc0hhbmRsZXI6ISF3LGhhc1NwbGl0TWV0aG9kOiEhKHcmJncuZ2V0U3BsaXRDb250ZW50KX0pLHcmJncuZ2V0U3BsaXRDb250ZW50KXtsZXQgcT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53eXNpd3lnLWJsb2NrLWNvbnRhaW5lciIpO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEZvdW5kIGNvbnRhaW5lciIse2NvbnRhaW5lcjohIXEsY29udGFpbmVySFRNTDpxPy5pbm5lckhUTUw/LnN1YnN0cmluZygwLDEwMCl9KTtsZXQgQj17c2hhZG93Um9vdDp0aGlzLnNoYWRvd1Jvb3QsY29tcG9uZW50OnRoaXN9O3JldHVybiB3LmdldFNwbGl0Q29udGVudChxLEIpfWxldCBrPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJsb2NrIik7aWYoIWspcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IE5vIGVkaXRhYmxlIGVsZW1lbnQgZm91bmQiKSxudWxsO2NvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEVsZW1lbnQgaW5mbzoiLHtibG9ja1R5cGU6dGhpcy5ibG9jay50eXBlLGlubmVySFRNTDprLmlubmVySFRNTCx0ZXh0Q29udGVudDprLnRleHRDb250ZW50LHRleHRMZW5ndGg6ay50ZXh0Q29udGVudD8ubGVuZ3RofSk7bGV0IHo9dGhpcy5jbG9zZXN0KCJkZWVzLWlucHV0LXd5c2l3eWciKT8uc2hhZG93Um9vdCxNPVtdO3omJk0ucHVzaCh6KSx0aGlzLnNoYWRvd1Jvb3QmJk0ucHVzaCh0aGlzLnNoYWRvd1Jvb3QpO2xldCBGPVllLmdldFNlbGVjdGlvbkluZm8oLi4uTSk7aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIGluZm8gZnJvbSBzaGFkb3cgRE9NczoiLHtzZWxlY3Rpb25JbmZvOkYsc2hhZG93Um9vdHNDb3VudDpNLmxlbmd0aH0pLCFGKXtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBObyBzZWxlY3Rpb24sIHVzaW5nIGxhc3Qga25vd24gcG9zaXRpb246Iix0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uKSx0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uIT09bnVsbCl7bGV0IHE9ay50ZXh0Q29udGVudHx8IiIsQj1NYXRoLm1pbih0aGlzLmxhc3RLbm93bkN1cnNvclBvc2l0aW9uLHEubGVuZ3RoKTtyZXR1cm4gY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU3BsaXR0aW5nIHdpdGggbGFzdCBrbm93biBwb3NpdGlvbjoiLHtwb3M6QixmdWxsVGV4dExlbmd0aDpxLmxlbmd0aCxiZWZvcmU6cS5zdWJzdHJpbmcoMCxCKSxhZnRlcjpxLnN1YnN0cmluZyhCKX0pLHtiZWZvcmU6cS5zdWJzdHJpbmcoMCxCKSxhZnRlcjpxLnN1YnN0cmluZyhCKX19cmV0dXJuIG51bGx9aWYoY29uc29sZS5sb2coImdldFNwbGl0Q29udGVudDogU2VsZWN0aW9uIHJhbmdlOiIse3N0YXJ0Q29udGFpbmVyOkYuc3RhcnRDb250YWluZXIsc3RhcnRPZmZzZXQ6Ri5zdGFydE9mZnNldCxzdGFydENvbnRhaW5lckluRWxlbWVudDprLmNvbnRhaW5zKEYuc3RhcnRDb250YWluZXIpfSksIVllLmNvbnRhaW5zQWNyb3NzU2hhZG93RE9NKGssRi5zdGFydENvbnRhaW5lcikpe2lmKGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IFNlbGVjdGlvbiBub3QgaW4gdGhpcyBibG9jaywgdXNpbmcgbGFzdCBrbm93biBwb3NpdGlvbjoiLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24pLHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24hPT1udWxsKXtsZXQgcT1rLnRleHRDb250ZW50fHwiIixCPU1hdGgubWluKHRoaXMubGFzdEtub3duQ3Vyc29yUG9zaXRpb24scS5sZW5ndGgpO3JldHVybntiZWZvcmU6cS5zdWJzdHJpbmcoMCxCKSxhZnRlcjpxLnN1YnN0cmluZyhCKX19cmV0dXJuIG51bGx9bGV0IEQ9dGhpcy5nZXRDdXJzb3JQb3NpdGlvbihrKTtpZihjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBDdXJzb3IgcG9zaXRpb24gZm9yIEhUTUwgc3BsaXQ6IixEKSxEPT09bnVsbHx8RD09PTApcmV0dXJuIGNvbnNvbGUubG9nKCJnZXRTcGxpdENvbnRlbnQ6IEN1cnNvciBhdCBzdGFydCBvciBudWxsLCBtb3ZpbmcgYWxsIGNvbnRlbnQiKSx7YmVmb3JlOiIiLGFmdGVyOmsuaW5uZXJIVE1MfTtsZXQgTj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLFI9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtOLnNldFN0YXJ0KGssMCksTi5zZXRFbmQoRi5zdGFydENvbnRhaW5lcixGLnN0YXJ0T2Zmc2V0KSxSLnNldFN0YXJ0KEYuc3RhcnRDb250YWluZXIsRi5zdGFydE9mZnNldCksUi5zZXRFbmQoayxrLmNoaWxkTm9kZXMubGVuZ3RoKTtsZXQgXz1OLmNsb25lQ29udGVudHMoKSxTPVIuY2xvbmVDb250ZW50cygpLCQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7JC5hcHBlbmRDaGlsZChfKTtsZXQgVD0kLmlubmVySFRNTDskLmlubmVySFRNTD0iIiwkLmFwcGVuZENoaWxkKFMpO2xldCBFPSQuaW5uZXJIVE1MO3JldHVybiBjb25zb2xlLmxvZygiZ2V0U3BsaXRDb250ZW50OiBGaW5hbCBzcGxpdCByZXN1bHQ6Iix7Y3Vyc29yUG9zOkQsYmVmb3JlSHRtbDpULGJlZm9yZUxlbmd0aDpULmxlbmd0aCxiZWZvcmVIdG1sUHJldmlldzpULnN1YnN0cmluZygwLDEwMCkrKFQubGVuZ3RoPjEwMD8iLi4uIjoiIiksYWZ0ZXJIdG1sOkUsYWZ0ZXJMZW5ndGg6RS5sZW5ndGgsYWZ0ZXJIdG1sUHJldmlldzpFLnN1YnN0cmluZygwLDEwMCkrKEUubGVuZ3RoPjEwMD8iLi4uIjoiIil9KSx7YmVmb3JlOlQsYWZ0ZXI6RX19c3RhdGlje0NjKGkscil9fTtyZXR1cm4geT1pfSkoKX0pO3ZhciBvZGU9cCgoKT0+e3NkZSgpO0NuKCk7bGgoKTtpRigpO1kwcigpO3RkZSgpO1lkKCk7SjZlKCk7bmwoKTt6YygpO3JkZSgpO2FkZSgpO2M0cigpO2Q0cigpO3U0cigpO25kZSgpO3A0cigpO1E2ZSgpO0s2ZSgpO2Y0cigpfSk7dmFyIEg0LHJuLGxkZSxzZGU9cCgoKT0+e00xKCk7RzByKCk7SWQoKTt4ZSgpO29kZSgpO0plKCk7SDQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxybj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sbGRlPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbnB1dC13eXNpd3lnIildLHQscj1bXSxpLGE9b3QsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W107dmFyIFI9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ZlKCldLHg9W2ZlKCldLHk9W2ZlKCldLE89W2ZlKCldLEY9W2ZlKCldLEg0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidmFsdWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ2YWx1ZSJpbiBTLGdldDpTPT5TLnZhbHVlLHNldDooUywkKT0+e1MudmFsdWU9JH19LG1ldGFkYXRhOl99LG8scyksSDQodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvdXRwdXRGb3JtYXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJvdXRwdXRGb3JtYXQiaW4gUyxnZXQ6Uz0+Uy5vdXRwdXRGb3JtYXQsc2V0OihTLCQpPT57Uy5vdXRwdXRGb3JtYXQ9JH19LG1ldGFkYXRhOl99LGMsdSksSDQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJibG9ja3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJibG9ja3MiaW4gUyxnZXQ6Uz0+Uy5ibG9ja3Msc2V0OihTLCQpPT57Uy5ibG9ja3M9JH19LG1ldGFkYXRhOl99LGgsZiksSDQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkcmFnZ2VkQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImRyYWdnZWRCbG9ja0lkImluIFMsZ2V0OlM9PlMuZHJhZ2dlZEJsb2NrSWQsc2V0OihTLCQpPT57Uy5kcmFnZ2VkQmxvY2tJZD0kfX0sbWV0YWRhdGE6X30sdixiKSxINCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyQmxvY2tJZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImRyYWdPdmVyQmxvY2tJZCJpbiBTLGdldDpTPT5TLmRyYWdPdmVyQmxvY2tJZCxzZXQ6KFMsJCk9PntTLmRyYWdPdmVyQmxvY2tJZD0kfX0sbWV0YWRhdGE6X30sdyxrKSxINCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRyYWdPdmVyUG9zaXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJkcmFnT3ZlclBvc2l0aW9uImluIFMsZ2V0OlM9PlMuZHJhZ092ZXJQb3NpdGlvbixzZXQ6KFMsJCk9PntTLmRyYWdPdmVyUG9zaXRpb249JH19LG1ldGFkYXRhOl99LHosTSksSDQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFRleHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJzZWxlY3RlZFRleHQiaW4gUyxnZXQ6Uz0+Uy5zZWxlY3RlZFRleHQsc2V0OihTLCQpPT57Uy5zZWxlY3RlZFRleHQ9JH19LG1ldGFkYXRhOl99LEQsTiksSDQobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6X30sbnVsbCxyKSxSPWk9dC52YWx1ZSxfJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOl99KX1zdGF0aWMgZGVtbz1XMHI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCIsIldvcmtzcGFjZSJdOyNlPXJuKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKF8pe3RoaXMuI2U9X30jdD0ocm4odGhpcyxzKSxybih0aGlzLGMsImh0bWwiKSk7Z2V0IG91dHB1dEZvcm1hdCgpe3JldHVybiB0aGlzLiN0fXNldCBvdXRwdXRGb3JtYXQoXyl7dGhpcy4jdD1ffSNyPShybih0aGlzLHUpLHJuKHRoaXMsaCxbe2lkOkcxLmdlbmVyYXRlQmxvY2tJZCgpLHR5cGU6InBhcmFncmFwaCIsY29udGVudDoiIn1dKSk7Z2V0IGJsb2Nrcygpe3JldHVybiB0aGlzLiNyfXNldCBibG9ja3MoXyl7dGhpcy4jcj1ffXNlbGVjdGVkQmxvY2tJZD0ocm4odGhpcyxmKSxudWxsKTtzbGFzaE1lbnU9ZUYuZ2V0SW5zdGFuY2UoKTsjaT1ybih0aGlzLHYsbnVsbCk7Z2V0IGRyYWdnZWRCbG9ja0lkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGRyYWdnZWRCbG9ja0lkKF8pe3RoaXMuI2k9X30jYT0ocm4odGhpcyxiKSxybih0aGlzLHcsbnVsbCkpO2dldCBkcmFnT3ZlckJsb2NrSWQoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZHJhZ092ZXJCbG9ja0lkKF8pe3RoaXMuI2E9X30jbj0ocm4odGhpcyxrKSxybih0aGlzLHosbnVsbCkpO2dldCBkcmFnT3ZlclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuI259c2V0IGRyYWdPdmVyUG9zaXRpb24oXyl7dGhpcy4jbj1ffWZvcm1hdHRpbmdNZW51PShybih0aGlzLE0pLHJGLmdldEluc3RhbmNlKCkpOyNvPXJuKHRoaXMsRCwiIik7Z2V0IHNlbGVjdGVkVGV4dCgpe3JldHVybiB0aGlzLiNvfXNldCBzZWxlY3RlZFRleHQoXyl7dGhpcy4jbz1ffWVkaXRvckNvbnRlbnRSZWY9cm4odGhpcyxOKTtpc0NvbXBvc2luZz0hMTtibG9ja09wZXJhdGlvbnM7aW5wdXRIYW5kbGVyO2tleWJvYXJkSGFuZGxlcjtkcmFnRHJvcEhhbmRsZXI7aGlzdG9yeTtzdGF0aWMgc3R5bGVzPVtEZSwuLi5vdC5iYXNlU3R5bGVzLG0uZGVmYXVsdFN0eWxlcyxlZGVdO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLmJsb2NrT3BlcmF0aW9ucz1uZXcgeWIodGhpcyksdGhpcy5pbnB1dEhhbmRsZXI9bmV3IEViKHRoaXMpLHRoaXMua2V5Ym9hcmRIYW5kbGVyPW5ldyAkYih0aGlzKSx0aGlzLmRyYWdEcm9wSGFuZGxlcj1uZXcgSWIodGhpcyksdGhpcy5oaXN0b3J5PW5ldyBQYn1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaW5wdXRIYW5kbGVyPy5kZXN0cm95KCksdGhpcy5ibHVyVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLmJsdXJUaW1lb3V0KSx0aGlzLmJsdXJUaW1lb3V0PW51bGwpfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2lmKHRoaXMudmFsdWUmJnRoaXMudmFsdWUudHJpbSgpLmxlbmd0aD4wKXtsZXQgXz10aGlzLm91dHB1dEZvcm1hdD09PSJodG1sIj9Sby5wYXJzZUh0bWxUb0Jsb2Nrcyh0aGlzLnZhbHVlKTpSby5wYXJzZU1hcmtkb3duVG9CbG9ja3ModGhpcy52YWx1ZSk7Xy5sZW5ndGg+MCYmKHRoaXMuYmxvY2tzPV8pfXRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLmVkaXRvckNvbnRlbnRSZWY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5lZGl0b3ItY29udGVudCIpLHRoaXMuZWRpdG9yQ29udGVudFJlZiYmdGhpcy5lZGl0b3JDb250ZW50UmVmLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixfPT50aGlzLmhhbmRsZUVkaXRvckNsaWNrKF8pKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrLXRleHQtc2VsZWN0ZWQiLF89PntpZighdGhpcy5zbGFzaE1lbnUudmlzaWJsZSYmXy5kZXRhaWwuaGFzU2VsZWN0aW9uJiZfLmRldGFpbC50ZXh0Lmxlbmd0aD4wJiYodGhpcy5zZWxlY3RlZFRleHQ9Xy5kZXRhaWwudGV4dCxfLmRldGFpbC5yZWN0KSl7bGV0IFM9e3g6Xy5kZXRhaWwucmVjdC5sZWZ0K18uZGV0YWlsLnJlY3Qud2lkdGgvMix5Ok1hdGgubWF4KDQ1LF8uZGV0YWlsLnJlY3QudG9wLTQ1KX07dGhpcy5mb3JtYXR0aW5nTWVudS5zaG93KFMsYXN5bmMgJD0+YXdhaXQgdGhpcy5hcHBseUZvcm1hdCgkKSl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixfPT57bGV0IFM9dGhpcy5mb3JtYXR0aW5nTWVudS5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZm9ybWF0dGluZy1tZW51Iik7aWYoUyYmUy5jb250YWlucyhfLnRhcmdldCkpcmV0dXJuO2xldCAkPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTskJiYkLnRvU3RyaW5nKCkudHJpbSgpLmxlbmd0aD4wfHx0aGlzLmZvcm1hdHRpbmdNZW51LnZpc2libGUmJnRoaXMuaGlkZUZvcm1hdHRpbmdNZW51KCl9KSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLF89PntsZXQgUz1fLnRhcmdldDshdGhpcy5jb250YWlucyhTKSYmIXRoaXMuc2hhZG93Um9vdD8uY29udGFpbnMoUyl8fCgoXy5tZXRhS2V5fHxfLmN0cmxLZXkpJiYhXy5zaGlmdEtleSYmXy5rZXk9PT0ieiI/KF8ucHJldmVudERlZmF1bHQoKSx0aGlzLnVuZG8oKSk6KF8ubWV0YUtleXx8Xy5jdHJsS2V5KSYmXy5zaGlmdEtleSYmXy5rZXk9PT0ieiImJihfLnByZXZlbnREZWZhdWx0KCksdGhpcy5yZWRvKCkpKX0pLHRoaXMuaGlzdG9yeS5zYXZlU3RhdGUodGhpcy5ibG9ja3MsdGhpcy5zZWxlY3RlZEJsb2NrSWQpLHRoaXMucmVuZGVyQmxvY2tzUHJvZ3JhbW1hdGljYWxseSgpfXJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKXt0aGlzLmVkaXRvckNvbnRlbnRSZWYmJih0aGlzLmVkaXRvckNvbnRlbnRSZWYuaW5uZXJIVE1MPSIiLHRoaXMuYmxvY2tzLmZvckVhY2goXz0+e2xldCBTPXRoaXMuY3JlYXRlQmxvY2tFbGVtZW50KF8pO3RoaXMuZWRpdG9yQ29udGVudFJlZi5hcHBlbmRDaGlsZChTKX0pKX1jcmVhdGVCbG9ja0VsZW1lbnQoXyl7bGV0IFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoUy5jbGFzc05hbWU9ImJsb2NrLXdyYXBwZXIiLFMuc2V0QXR0cmlidXRlKCJkYXRhLWJsb2NrLWlkIixfLmlkKSxfLnR5cGUhPT0iZGl2aWRlciIpe2xldCBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1QuY2xhc3NOYW1lPSJkcmFnLWhhbmRsZSIsVC5kcmFnZ2FibGU9ITAsVC5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLEU9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdTdGFydChFLF8pKSxTLmFwcGVuZENoaWxkKFQpfWxldCAkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZXMtd3lzaXd5Zy1ibG9jayIpO3JldHVybiAkLmJsb2NrPV8sJC5pc1NlbGVjdGVkPXRoaXMuc2VsZWN0ZWRCbG9ja0lkPT09Xy5pZCwkLnd5c2l3eWdDb21wb25lbnQ9dGhpcywkLmhhbmRsZXJzPXtvbklucHV0OlQ9PnRoaXMuaW5wdXRIYW5kbGVyLmhhbmRsZUJsb2NrSW5wdXQoVCxfKSxvbktleURvd246VD0+dGhpcy5rZXlib2FyZEhhbmRsZXIuaGFuZGxlQmxvY2tLZXlEb3duKFQsXyksb25Gb2N1czooKT0+dGhpcy5oYW5kbGVCbG9ja0ZvY3VzKF8pLG9uQmx1cjooKT0+dGhpcy5oYW5kbGVCbG9ja0JsdXIoXyksb25Db21wb3NpdGlvblN0YXJ0OigpPT50aGlzLmlzQ29tcG9zaW5nPSEwLG9uQ29tcG9zaXRpb25FbmQ6KCk9PnRoaXMuaXNDb21wb3Npbmc9ITEsb25Nb3VzZVVwOlQ9PnRoaXMuaGFuZGxlVGV4dFNlbGVjdGlvbihUKSxvblJlcXVlc3RVcGRhdGU6KCk9PnRoaXMudXBkYXRlQmxvY2tFbGVtZW50KF8uaWQpfSxTLmFwcGVuZENoaWxkKCQpLFMuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLFQ9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdPdmVyKFQsXykpLFMuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsVD0+dGhpcy5kcmFnRHJvcEhhbmRsZXIuaGFuZGxlRHJvcChULF8pKSxTLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsKCk9PnRoaXMuZHJhZ0Ryb3BIYW5kbGVyLmhhbmRsZURyYWdMZWF2ZShfKSksU311cGRhdGVCbG9ja0VsZW1lbnQoXyl7bGV0IFM9dGhpcy5ibG9ja3MuZmluZChFPT5FLmlkPT09Xyk7aWYoIVMpcmV0dXJuO2xldCAkPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtffSJdYCk7aWYoISQpcmV0dXJuO2xldCBUPXRoaXMuY3JlYXRlQmxvY2tFbGVtZW50KFMpOyQucmVwbGFjZVdpdGgoVCl9cmVuZGVyKCl7cmV0dXJuIHo0YAogICAgICA8ZGVlcy1sYWJlbAogICAgICAgIC5sYWJlbD0iJHt0aGlzLmxhYmVsfSIKICAgICAgICAuZGVzY3JpcHRpb249IiR7dGhpcy5kZXNjcmlwdGlvbn0iCiAgICAgICAgLnJlcXVpcmVkPSIke3RoaXMucmVxdWlyZWR9IgogICAgICA+PC9kZWVzLWxhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJ3eXNpd3lnLWNvbnRhaW5lciI+CiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJlZGl0b3ItY29udGVudCAke3RoaXMuZHJhZ2dlZEJsb2NrSWQ/ImRyYWdnaW5nIjoiIn0iCiAgICAgICAgICBpZD0iZWRpdG9yLWNvbnRlbnQiCiAgICAgICAgPgogICAgICAgICAgPCEtLSBCbG9ja3Mgd2lsbCBiZSByZW5kZXJlZCBwcm9ncmFtbWF0aWNhbGx5IC0tPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9aGFuZGxlU2xhc2hNZW51S2V5Ym9hcmQoXyl7c3dpdGNoKF8ua2V5KXtjYXNlIkFycm93RG93biI6Xy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51Lm5hdmlnYXRlKCJkb3duIik7YnJlYWs7Y2FzZSJBcnJvd1VwIjpfLnByZXZlbnREZWZhdWx0KCksdGhpcy5zbGFzaE1lbnUubmF2aWdhdGUoInVwIik7YnJlYWs7Y2FzZSJFbnRlciI6Xy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2xhc2hNZW51LnNlbGVjdEN1cnJlbnQoKTticmVhaztjYXNlIkVzY2FwZSI6Xy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2VTbGFzaE1lbnUoITApO2JyZWFrfX1jbG9zZVNsYXNoTWVudShfPSExKXtpZihfJiZ0aGlzLnNlbGVjdGVkQmxvY2tJZCl7bGV0IFM9dGhpcy5ibG9ja3MuZmluZCgkPT4kLmlkPT09dGhpcy5zZWxlY3RlZEJsb2NrSWQpO2lmKFMpe2xldCBUPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtTLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFQpe2xldCBFPVQuZ2V0Q29udGVudCgpO2lmKEUuc3RhcnRzV2l0aCgiLyIpKXtsZXQgcT1FLnJlcGxhY2UoL15cL1teXHNdKlxzKi8sIiIpLnRyaW0oKTtULnNldENvbnRlbnQocSksUy5jb250ZW50PXEscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57VC5mb2N1c1dpdGhDdXJzb3IoMCl9KX19fX10aGlzLnNsYXNoTWVudS5oaWRlKCl9aGFuZGxlQmxvY2tGb2N1cyhfKXt0aGlzLmJsdXJUaW1lb3V0JiYoY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuYmx1clRpbWVvdXQ9bnVsbCk7bGV0IFM9dGhpcy5zZWxlY3RlZEJsb2NrSWQ7aWYodGhpcy5zZWxlY3RlZEJsb2NrSWQ9Xy5pZCxTIT09Xy5pZCl7aWYoUyl7bGV0IHE9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtTfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO3EmJihxLmlzU2VsZWN0ZWQ9ITEpfWxldCBUPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Xy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtUJiYoVC5pc1NlbGVjdGVkPSEwKX19Ymx1clRpbWVvdXQ9bnVsbDtoYW5kbGVCbG9ja0JsdXIoXyl7aWYodGhpcy5ibHVyVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVvdXQpLHRoaXMuc2xhc2hNZW51LnZpc2libGUpcmV0dXJuO2xldCAkPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Xy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtpZigkJiYkLmdldENvbnRlbnQpe2xldCBUPSQuZ2V0Q29udGVudCgpO18uY29udGVudCE9PVQmJihfLmNvbnRlbnQ9VCl9dGhpcy5ibHVyVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoImJsb2NrIil8fHRoaXMudXBkYXRlVmFsdWUoKX0sMTAwKX1oYW5kbGVFZGl0b3JDbGljayhfKXtsZXQgUz1fLnRhcmdldDtpZih0aGlzLnNsYXNoTWVudS52aXNpYmxlJiZ0aGlzLmNsb3NlU2xhc2hNZW51KCEwKSxTLmNsYXNzTGlzdC5jb250YWlucygiZWRpdG9yLWNvbnRlbnQiKSl7bGV0ICQ9dGhpcy5ibG9ja3NbdGhpcy5ibG9ja3MubGVuZ3RoLTFdO3RoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soJC5pZCwkLnR5cGU9PT0iZGl2aWRlciJ8fCQudHlwZT09PSJpbWFnZSI/dm9pZCAwOiJlbmQiKX19Y3JlYXRlTmV3QmxvY2soXz0icGFyYWdyYXBoIixTPSIiLCQpe3JldHVybntpZDpHMS5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOl8sY29udGVudDpTLC4uLiQmJnttZXRhZGF0YTokfX19YXN5bmMgaW5zZXJ0QmxvY2tBZnRlcihfLFMsJD0hMCl7bGV0IFQ9dGhpcy5ibG9ja3MuZmluZEluZGV4KHE9PnEuaWQ9PT1fLmlkKTt0aGlzLmJsb2Nrcz1bLi4udGhpcy5ibG9ja3Muc2xpY2UoMCxUKzEpLFMsLi4udGhpcy5ibG9ja3Muc2xpY2UoVCsxKV07bGV0IEU9dGhpcy5lZGl0b3JDb250ZW50UmVmLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke18uaWR9Il1gKTtpZihFKXtsZXQgcT10aGlzLmNyZWF0ZUJsb2NrRWxlbWVudChTKTtFLmluc2VydEFkamFjZW50RWxlbWVudCgiYWZ0ZXJlbmQiLHEpfXRoaXMudXBkYXRlVmFsdWUoKSwkJiZTLnR5cGUhPT0iZGl2aWRlciImJihhd2FpdCBuZXcgUHJvbWlzZShxPT5zZXRUaW1lb3V0KHEsMCkpLGF3YWl0IHRoaXMuYmxvY2tPcGVyYXRpb25zLmZvY3VzQmxvY2soUy5pZCwic3RhcnQiKSl9YXN5bmMgaW5zZXJ0QmxvY2soXyl7bGV0IFM9dGhpcy5ibG9ja3MuZmluZChFPT5FLmlkPT09dGhpcy5zZWxlY3RlZEJsb2NrSWQpO2lmKCFTKXt0aGlzLmNsb3NlU2xhc2hNZW51KCk7cmV0dXJufWxldCBUPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtTLmlkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFQpe2xldCBFPVQuZ2V0Q29udGVudCgpO2lmKEUuc3RhcnRzV2l0aCgiLyIpKXtsZXQgcT1FLnJlcGxhY2UoL15cL1teXHNdKlxzKi8sIiIpLnRyaW0oKTtULnNldENvbnRlbnQocSksUy5jb250ZW50PXF9fWlmKHRoaXMuY2xvc2VTbGFzaE1lbnUoITEpLF89PT0iY29kZSImJihTLm1ldGFkYXRhPXtsYW5ndWFnZToidHlwZXNjcmlwdCJ9KSxTLnR5cGU9XyxTLmNvbnRlbnQ9Uy5jb250ZW50fHwiIixfPT09ImRpdmlkZXIiKXtTLmNvbnRlbnQ9IiAiO2xldCBFPXRoaXMuY3JlYXRlTmV3QmxvY2soKTt0aGlzLmluc2VydEJsb2NrQWZ0ZXIoUyxFKX1lbHNlIF89PT0ibGlzdCI/KFMubWV0YWRhdGE9e2xpc3RUeXBlOiJidWxsZXQifSxTLmNvbnRlbnQ9IiIpOl89PT0iaW1hZ2UiPyhTLmNvbnRlbnQ9IiIsUy5tZXRhZGF0YT17dXJsOiIiLGxvYWRpbmc6ITF9KTpfPT09InlvdXR1YmUiPyhTLmNvbnRlbnQ9IiIsUy5tZXRhZGF0YT17dmlkZW9JZDoiIix1cmw6IiJ9KTpfPT09Im1hcmtkb3duIj9TLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06Xz09PSJodG1sIj9TLm1ldGFkYXRhPXtzaG93UHJldmlldzohMX06Xz09PSJhdHRhY2htZW50Ij8oUy5jb250ZW50PSIiLFMubWV0YWRhdGE9e2ZpbGVzOltdfSk6Uy5jb250ZW50PVMuY29udGVudHx8IiI7dGhpcy51cGRhdGVCbG9ja0VsZW1lbnQoUy5pZCksdGhpcy51cGRhdGVWYWx1ZSgpLGF3YWl0IG5ldyBQcm9taXNlKEU9PnNldFRpbWVvdXQoRSwwKSksXz09PSJsaXN0Ij8odGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhTLmlkLCJzdGFydCIpLHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e2xldCBxPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgW2RhdGEtYmxvY2staWQ9IiR7Uy5pZH0iXWApPy5xdWVyeVNlbGVjdG9yKCJkZWVzLXd5c2l3eWctYmxvY2siKTtxJiZxLmZvY3VzTGlzdEl0ZW0oKX0pKTpfIT09ImRpdmlkZXIiJiZfIT09ImltYWdlIiYmXyE9PSJ5b3V0dWJlIiYmXyE9PSJtYXJrZG93biImJl8hPT0iaHRtbCImJl8hPT0iYXR0YWNobWVudCI/dGhpcy5ibG9ja09wZXJhdGlvbnMuZm9jdXNCbG9jayhTLmlkLCJzdGFydCIpOihfPT09ImltYWdlInx8Xz09PSJ5b3V0dWJlInx8Xz09PSJtYXJrZG93biJ8fF89PT0iaHRtbCJ8fF89PT0iYXR0YWNobWVudCIpJiZ0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKFMuaWQpfXVwZGF0ZVZhbHVlKCl7dGhpcy5vdXRwdXRGb3JtYXQ9PT0iaHRtbCI/dGhpcy52YWx1ZT1Sby5nZXRIdG1sT3V0cHV0KHRoaXMuYmxvY2tzKTp0aGlzLnZhbHVlPVJvLmdldE1hcmtkb3duT3V0cHV0KHRoaXMuYmxvY2tzKSx0aGlzLmNoYW5nZVN1YmplY3QubmV4dCh0aGlzLnZhbHVlKSx0aGlzLnNhdmVUb0hpc3RvcnkoITApfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoXyl7dGhpcy52YWx1ZT1fLHRoaXMub3V0cHV0Rm9ybWF0PT09Imh0bWwiP3RoaXMuYmxvY2tzPVJvLnBhcnNlSHRtbFRvQmxvY2tzKF8pOnRoaXMuYmxvY2tzPVJvLnBhcnNlTWFya2Rvd25Ub0Jsb2NrcyhfKSx0aGlzLmJsb2Nrcy5sZW5ndGg9PT0wJiYodGhpcy5ibG9ja3M9W3tpZDpHMS5nZW5lcmF0ZUJsb2NrSWQoKSx0eXBlOiJwYXJhZ3JhcGgiLGNvbnRlbnQ6IiJ9XSksdGhpcy5jaGFuZ2VTdWJqZWN0Lm5leHQodGhpcy52YWx1ZSksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1leHBvcnRCbG9ja3MoKXtyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmJsb2NrcykpfWltcG9ydEJsb2NrcyhfKXt0aGlzLmJsb2Nrcz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KF8pKSx0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5lZGl0b3JDb250ZW50UmVmJiZ0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKX1leHBvcnRBc0h0bWwoKXtyZXR1cm4gUm8uZ2V0SHRtbE91dHB1dCh0aGlzLmJsb2Nrcyl9ZXhwb3J0QXNNYXJrZG93bigpe3JldHVybiBSby5nZXRNYXJrZG93bk91dHB1dCh0aGlzLmJsb2Nrcyl9ZXhwb3J0U3RhdGUoKXtyZXR1cm57YmxvY2tzOnRoaXMuZXhwb3J0QmxvY2tzKCksb3V0cHV0Rm9ybWF0OnRoaXMub3V0cHV0Rm9ybWF0fX1pbXBvcnRTdGF0ZShfKXtfLm91dHB1dEZvcm1hdCYmKHRoaXMub3V0cHV0Rm9ybWF0PV8ub3V0cHV0Rm9ybWF0KSx0aGlzLmltcG9ydEJsb2NrcyhfLmJsb2Nrcyl9aGFuZGxlRHJhZ0VuZCgpe2lmKHRoaXMuZHJhZ2dlZEJsb2NrSWQpe2xldCBTPXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHt0aGlzLmRyYWdnZWRCbG9ja0lkfSJdYCk7UyYmUy5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpfXRoaXMuZWRpdG9yQ29udGVudFJlZi5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpLmZvckVhY2goUz0+e1MuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyLWJlZm9yZSIsImRyYWctb3Zlci1hZnRlciIpfSksdGhpcy5lZGl0b3JDb250ZW50UmVmLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksdGhpcy5kcmFnZ2VkQmxvY2tJZD1udWxsLHRoaXMuZHJhZ092ZXJCbG9ja0lkPW51bGwsdGhpcy5kcmFnT3ZlclBvc2l0aW9uPW51bGx9aGFuZGxlRHJvcChfLFMpe2lmKF8ucHJldmVudERlZmF1bHQoKSwhdGhpcy5kcmFnZ2VkQmxvY2tJZHx8dGhpcy5kcmFnZ2VkQmxvY2tJZD09PVMuaWQpcmV0dXJuO2xldCAkPXRoaXMuYmxvY2tzLmZpbmRJbmRleChCPT5CLmlkPT09dGhpcy5kcmFnZ2VkQmxvY2tJZCksVD10aGlzLmJsb2Nrcy5maW5kSW5kZXgoQj0+Qi5pZD09PVMuaWQpO2lmKCQ9PT0tMXx8VD09PS0xKXJldHVybjtsZXRbRV09dGhpcy5ibG9ja3Muc3BsaWNlKCQsMSkscT1UO3RoaXMuZHJhZ092ZXJQb3NpdGlvbj09PSJhZnRlciI/cT0kPFQ/VDpUKzE6cT0kPFQ/VC0xOlQsdGhpcy5ibG9ja3Muc3BsaWNlKHEsMCxFKSx0aGlzLnJlbmRlckJsb2Nrc1Byb2dyYW1tYXRpY2FsbHkoKSx0aGlzLnVwZGF0ZVZhbHVlKCksdGhpcy5oYW5kbGVEcmFnRW5kKCksc2V0VGltZW91dCgoKT0+e2xldCBCPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtFLmlkfSJdIC5ibG9ja2ApO0ImJkUudHlwZSE9PSJkaXZpZGVyIiYmQi5mb2N1cygpfSwxMDApfWhhbmRsZVRleHRTZWxlY3Rpb24oXyl7dGhpcy5zbGFzaE1lbnUudmlzaWJsZX11cGRhdGVGb3JtYXR0aW5nTWVudVBvc2l0aW9uKCl7bGV0IF89W107dGhpcy5zaGFkb3dSb290JiZfLnB1c2godGhpcy5zaGFkb3dSb290KSx0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibG9jay13cmFwcGVyIik/LmZvckVhY2goVD0+e2xldCBFPVQucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7RT8uc2hhZG93Um9vdCYmXy5wdXNoKEUuc2hhZG93Um9vdCl9KTtsZXQgJD1TYy5nZXRTZWxlY3Rpb25Db29yZGluYXRlcyguLi5fKTskJiZ0aGlzLmZvcm1hdHRpbmdNZW51LnNob3coe3g6JC54LHk6JC55fSxhc3luYyBUPT5hd2FpdCB0aGlzLmFwcGx5Rm9ybWF0KFQpKX1oaWRlRm9ybWF0dGluZ01lbnUoKXt0aGlzLmZvcm1hdHRpbmdNZW51LmhpZGUoKSx0aGlzLnNlbGVjdGVkVGV4dD0iIn1hc3luYyBhcHBseUZvcm1hdChfKXtsZXQgUz1bXTt0aGlzLnNoYWRvd1Jvb3QmJlMucHVzaCh0aGlzLnNoYWRvd1Jvb3QpLHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLmJsb2NrLXdyYXBwZXIiKT8uZm9yRWFjaChlZT0+e2xldCBQPWVlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO1A/LnNoYWRvd1Jvb3QmJlMucHVzaChQLnNoYWRvd1Jvb3QpfSk7bGV0IFQ9WWUuZ2V0U2VsZWN0aW9uSW5mbyguLi5TKTtpZighVClyZXR1cm47bGV0IEUscSxCPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuYmxvY2std3JhcHBlciIpO2ZvcihsZXQgZWU9MDtlZTxCLmxlbmd0aDtlZSsrKXtsZXQgUD1CW2VlXSxnZT1QLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKGdlPy5zaGFkb3dSb290KXtsZXQgd2U9Z2Uuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuYmxvY2siKTtpZih3ZSYmKHdlLmNvbnRhaW5zKFQuc3RhcnRDb250YWluZXIpfHx3ZS5jb250YWlucyhULmVuZENvbnRhaW5lcikpKXtsZXQgST1QLmdldEF0dHJpYnV0ZSgiZGF0YS1ibG9jay1pZCIpO0U9dGhpcy5ibG9ja3MuZmluZChuZT0+bmUuaWQ9PT1JKSxxPWdlO2JyZWFrfX19aWYoIUV8fCFxKXJldHVybjtsZXQgRz1ZZS5jcmVhdGVSYW5nZUZyb21JbmZvKFQpO2lmKF89PT0ibGluayIpe2xldCBlZT1hd2FpdCB0aGlzLnNob3dMaW5rRGlhbG9nKCk7aWYoIWVlKXtxLmZvY3VzKCk7cmV0dXJufVNjLmFwcGx5Rm9ybWF0KF8sZWUsRyxTKX1lbHNlIFNjLmFwcGx5Rm9ybWF0KF8sdm9pZCAwLEcsUyk7YXdhaXQgbmV3IFByb21pc2UoZWU9PnNldFRpbWVvdXQoZWUsMTApKSxFLmNvbnRlbnQ9cS5nZXRDb250ZW50KCksdGhpcy51cGRhdGVWYWx1ZSgpLHEuZm9jdXMoKSxfPT09ImxpbmsiP3RoaXMuaGlkZUZvcm1hdHRpbmdNZW51KCk6dGhpcy5zZWxlY3RlZFRleHQ9IiJ9YXN5bmMgc2hvd0xpbmtEaWFsb2coKXtyZXR1cm4gbmV3IFByb21pc2UoXz0+e2xldCBTPW51bGw7V3IuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQWRkIExpbmsiLGNvbnRlbnQ6ejRgCiAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5saW5rLWlucHV0IHsKICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4OwogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kZWVzLWNvbG9yLWxpbmUtYnJpZ2h0KTsKICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGVlcy1jb2xvci1pbnB1dCk7CiAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWRlZXMtY29sb3ItdGV4dCk7CiAgICAgICAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmxpbmstaW5wdXQ6Zm9jdXMgewogICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWVzLWNvbG9yLXByaW1hcnkpOwogICAgICAgICAgICB9CiAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgPGlucHV0IAogICAgICAgICAgICBjbGFzcz0ibGluay1pbnB1dCIgCiAgICAgICAgICAgIHR5cGU9InVybCIgCiAgICAgICAgICAgIHBsYWNlaG9sZGVyPSJodHRwczovL2V4YW1wbGUuY29tIiAKICAgICAgICAgICAgQGtleWRvd249IiR7JD0+e2lmKCQua2V5PT09IkVudGVyIil7bGV0IFQ9JC50YXJnZXQ7Uz1ULnZhbHVlO2xldCBFPVQuY2xvc2VzdCgiZGVlcy1tb2RhbCIpO2lmKEUpe2xldCBxPUUuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmJvdHRvbUJ1dHRvbjpsYXN0LWNoaWxkIik7cSYmcS5jbGljaygpfX19fSIKICAgICAgICAgICAgQGlucHV0PSIkeyQ9PntTPSQudGFyZ2V0LnZhbHVlfX0iCiAgICAgICAgICAvPgogICAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyAkPT57JC5kZXN0cm95KCksXyhudWxsKX19LHtuYW1lOiJBZGQgTGluayIsYWN0aW9uOmFzeW5jICQ9PnskLmRlc3Ryb3koKSxfKFMpfX1dfSksc2V0VGltZW91dCgoKT0+e2xldCAkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRlZXMtbW9kYWwgLmxpbmstaW5wdXQiKTskJiYkLmZvY3VzKCl9LDEwMCl9KX11bmRvKCl7bGV0IF89dGhpcy5oaXN0b3J5LnVuZG8oKTtfJiZ0aGlzLnJlc3RvcmVTdGF0ZShfKX1yZWRvKCl7bGV0IF89dGhpcy5oaXN0b3J5LnJlZG8oKTtfJiZ0aGlzLnJlc3RvcmVTdGF0ZShfKX1yZXN0b3JlU3RhdGUoXyl7dGhpcy5ibG9ja3M9Xy5ibG9ja3MsdGhpcy5zZWxlY3RlZEJsb2NrSWQ9Xy5zZWxlY3RlZEJsb2NrSWQsdGhpcy5yZW5kZXJCbG9ja3NQcm9ncmFtbWF0aWNhbGx5KCksXy5jdXJzb3JQb3NpdGlvbj9zZXRUaW1lb3V0KCgpPT57bGV0ICQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGBbZGF0YS1ibG9jay1pZD0iJHtfLmN1cnNvclBvc2l0aW9uLmJsb2NrSWR9Il1gKT8ucXVlcnlTZWxlY3RvcigiZGVlcy13eXNpd3lnLWJsb2NrIik7JCYmJC5mb2N1c1dpdGhDdXJzb3IoXy5jdXJzb3JQb3NpdGlvbi5vZmZzZXQpfSw1MCk6Xy5zZWxlY3RlZEJsb2NrSWQmJnNldFRpbWVvdXQoKCk9Pnt0aGlzLmJsb2NrT3BlcmF0aW9ucy5mb2N1c0Jsb2NrKF8uc2VsZWN0ZWRCbG9ja0lkKX0sNTApLHRoaXMudXBkYXRlVmFsdWUoKX1zYXZlVG9IaXN0b3J5KF89ITApe2xldCBTO2lmKHRoaXMuc2VsZWN0ZWRCbG9ja0lkKXtsZXQgVD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWJsb2NrLWlkPSIke3RoaXMuc2VsZWN0ZWRCbG9ja0lkfSJdYCk/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd3lzaXd5Zy1ibG9jayIpO2lmKFQmJnR5cGVvZiBULmdldEN1cnNvclBvc2l0aW9uPT0iZnVuY3Rpb24iKXtsZXQgRT1ULnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ibG9jayIpO2lmKEUpe2xldCBxPVQuZ2V0Q3Vyc29yUG9zaXRpb24oRSk7cSE9PW51bGwmJihTPXtibG9ja0lkOnRoaXMuc2VsZWN0ZWRCbG9ja0lkLG9mZnNldDpxfSl9fX1fP3RoaXMuaGlzdG9yeS5zYXZlU3RhdGUodGhpcy5ibG9ja3MsdGhpcy5zZWxlY3RlZEJsb2NrSWQsUyk6dGhpcy5oaXN0b3J5LnNhdmVDaGVja3BvaW50KHRoaXMuYmxvY2tzLHRoaXMuc2VsZWN0ZWRCbG9ja0lkLFMpfXN0YXRpY3tybihpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgbTRyPXAoKCk9PntzZGUoKTtvZGUoKX0pO3ZhciBhRixnNHI9cCgoKT0+e2FGPWNsYXNze29wdGlvbnM7Y2FudmFzO2N0eDtpbWc7b3ZlcmxheUNhbnZhcztvdmVybGF5Q3R4O2Nyb3BYPTA7Y3JvcFk9MDtjcm9wU2l6ZT0yMDA7bWluQ3JvcFNpemU9NTA7aXNEcmFnZ2luZz0hMTtpc1Jlc2l6aW5nPSExO2RyYWdTdGFydFg9MDtkcmFnU3RhcnRZPTA7cmVzaXplSGFuZGxlPSIiO2ltYWdlU2NhbGU9MTtpbWFnZU9mZnNldFg9MDtpbWFnZU9mZnNldFk9MDtjb25zdHJ1Y3Rvcih0KXt0aGlzLm9wdGlvbnM9e21pblNpemU6NTAsb3V0cHV0U2l6ZTo4MDAsb3V0cHV0UXVhbGl0eTouOTUsLi4udH0sdGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKSx0aGlzLm92ZXJsYXlDYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdGhpcy5vdmVybGF5Q3R4PXRoaXMub3ZlcmxheUNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLHRoaXMuaW1nPW5ldyBJbWFnZX1hc3luYyBpbml0aWFsaXplKCl7YXdhaXQgdGhpcy5sb2FkSW1hZ2UoKSx0aGlzLnNldHVwQ2FudmFzZXMoKSx0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcnMoKSx0aGlzLnJlbmRlcigpfWFzeW5jIGxvYWRJbWFnZSgpe3JldHVybiBuZXcgUHJvbWlzZSgodCxyKT0+e3RoaXMuaW1nLm9ubG9hZD0oKT0+dCgpLHRoaXMuaW1nLm9uZXJyb3I9cix0aGlzLmltZy5zcmM9dGhpcy5vcHRpb25zLmltYWdlfSl9c2V0dXBDYW52YXNlcygpe2xldCB0PXRoaXMub3B0aW9ucy5jb250YWluZXIscj1NYXRoLm1pbih0LmNsaWVudFdpZHRoLHQuY2xpZW50SGVpZ2h0KTt0aGlzLmNhbnZhcy53aWR0aD1yLHRoaXMuY2FudmFzLmhlaWdodD1yLHRoaXMuY2FudmFzLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLmNhbnZhcy5zdHlsZS5oZWlnaHQ9IjEwMCUiLHRoaXMuY2FudmFzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5jYW52YXMuc3R5bGUudG9wPSIwIix0aGlzLmNhbnZhcy5zdHlsZS5sZWZ0PSIwIix0aGlzLm92ZXJsYXlDYW52YXMud2lkdGg9cix0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0PXIsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLndpZHRoPSIxMDAlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuaGVpZ2h0PSIxMDAlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUudG9wPSIwIix0aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUubGVmdD0iMCIsdGhpcy5vdmVybGF5Q2FudmFzLnN0eWxlLmN1cnNvcj0ibW92ZSIsdC5hcHBlbmRDaGlsZCh0aGlzLmNhbnZhcyksdC5hcHBlbmRDaGlsZCh0aGlzLm92ZXJsYXlDYW52YXMpO2xldCBpPU1hdGgubWluKHIvdGhpcy5pbWcud2lkdGgsci90aGlzLmltZy5oZWlnaHQpO3RoaXMuaW1hZ2VTY2FsZT1pLHRoaXMuaW1hZ2VPZmZzZXRYPShyLXRoaXMuaW1nLndpZHRoKmkpLzIsdGhpcy5pbWFnZU9mZnNldFk9KHItdGhpcy5pbWcuaGVpZ2h0KmkpLzI7bGV0IGE9dGhpcy5pbWcud2lkdGgqaSxuPXRoaXMuaW1nLmhlaWdodCppLG89TWF0aC5taW4oYSxuLHIqLjgpO3RoaXMuY3JvcFNpemU9byouOCx0aGlzLmNyb3BYPShyLXRoaXMuY3JvcFNpemUpLzIsdGhpcy5jcm9wWT0oci10aGlzLmNyb3BTaXplKS8yfXNldHVwRXZlbnRMaXN0ZW5lcnMoKXt0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLmhhbmRsZU1vdXNlRG93bi5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZS5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwLmJpbmQodGhpcykpLHRoaXMub3ZlcmxheUNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLmhhbmRsZU1vdXNlVXAuYmluZCh0aGlzKSksdGhpcy5vdmVybGF5Q2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuaGFuZGxlVG91Y2hTdGFydC5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLmhhbmRsZVRvdWNoTW92ZS5iaW5kKHRoaXMpKSx0aGlzLm92ZXJsYXlDYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuaGFuZGxlVG91Y2hFbmQuYmluZCh0aGlzKSl9aGFuZGxlTW91c2VEb3duKHQpe2xldCByPXRoaXMub3ZlcmxheUNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPSh0LmNsaWVudFgtci5sZWZ0KSoodGhpcy5vdmVybGF5Q2FudmFzLndpZHRoL3Iud2lkdGgpLGE9KHQuY2xpZW50WS1yLnRvcCkqKHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQvci5oZWlnaHQpLG49dGhpcy5nZXRSZXNpemVIYW5kbGUoaSxhKTtuPyh0aGlzLmlzUmVzaXppbmc9ITAsdGhpcy5yZXNpemVIYW5kbGU9bik6dGhpcy5pc0luc2lkZUNyb3BBcmVhKGksYSkmJih0aGlzLmlzRHJhZ2dpbmc9ITApLHRoaXMuZHJhZ1N0YXJ0WD1pLHRoaXMuZHJhZ1N0YXJ0WT1hfWhhbmRsZU1vdXNlTW92ZSh0KXtsZXQgcj10aGlzLm92ZXJsYXlDYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT0odC5jbGllbnRYLXIubGVmdCkqKHRoaXMub3ZlcmxheUNhbnZhcy53aWR0aC9yLndpZHRoKSxhPSh0LmNsaWVudFktci50b3ApKih0aGlzLm92ZXJsYXlDYW52YXMuaGVpZ2h0L3IuaGVpZ2h0KSxuPXRoaXMuZ2V0UmVzaXplSGFuZGxlKGksYSk7aWYobj90aGlzLm92ZXJsYXlDYW52YXMuc3R5bGUuY3Vyc29yPXRoaXMuZ2V0UmVzaXplQ3Vyc29yKG4pOnRoaXMuaXNJbnNpZGVDcm9wQXJlYShpLGEpP3RoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9Im1vdmUiOnRoaXMub3ZlcmxheUNhbnZhcy5zdHlsZS5jdXJzb3I9ImRlZmF1bHQiLHRoaXMuaXNEcmFnZ2luZyl7bGV0IG89aS10aGlzLmRyYWdTdGFydFgscz1hLXRoaXMuZHJhZ1N0YXJ0WSxsPXRoaXMuaW1hZ2VPZmZzZXRYLGM9dGhpcy5pbWFnZU9mZnNldFgrdGhpcy5pbWcud2lkdGgqdGhpcy5pbWFnZVNjYWxlLXRoaXMuY3JvcFNpemUsdT10aGlzLmltYWdlT2Zmc2V0WSxkPXRoaXMuaW1hZ2VPZmZzZXRZK3RoaXMuaW1nLmhlaWdodCp0aGlzLmltYWdlU2NhbGUtdGhpcy5jcm9wU2l6ZTt0aGlzLmNyb3BYPU1hdGgubWF4KGwsTWF0aC5taW4oYyx0aGlzLmNyb3BYK28pKSx0aGlzLmNyb3BZPU1hdGgubWF4KHUsTWF0aC5taW4oZCx0aGlzLmNyb3BZK3MpKSx0aGlzLmRyYWdTdGFydFg9aSx0aGlzLmRyYWdTdGFydFk9YSx0aGlzLnJlbmRlcigpfXRoaXMuaXNSZXNpemluZyYmKHRoaXMuaGFuZGxlUmVzaXplKGksYSksdGhpcy5kcmFnU3RhcnRYPWksdGhpcy5kcmFnU3RhcnRZPWEsdGhpcy5yZW5kZXIoKSl9aGFuZGxlTW91c2VVcCgpe3RoaXMuaXNEcmFnZ2luZz0hMSx0aGlzLmlzUmVzaXppbmc9ITEsdGhpcy5yZXNpemVIYW5kbGU9IiJ9aGFuZGxlVG91Y2hTdGFydCh0KXt0LnByZXZlbnREZWZhdWx0KCk7bGV0IHI9dC50b3VjaGVzWzBdLGk9bmV3IE1vdXNlRXZlbnQoIm1vdXNlZG93biIse2NsaWVudFg6ci5jbGllbnRYLGNsaWVudFk6ci5jbGllbnRZfSk7dGhpcy5oYW5kbGVNb3VzZURvd24oaSl9aGFuZGxlVG91Y2hNb3ZlKHQpe3QucHJldmVudERlZmF1bHQoKTtsZXQgcj10LnRvdWNoZXNbMF0saT1uZXcgTW91c2VFdmVudCgibW91c2Vtb3ZlIix7Y2xpZW50WDpyLmNsaWVudFgsY2xpZW50WTpyLmNsaWVudFl9KTt0aGlzLmhhbmRsZU1vdXNlTW92ZShpKX1oYW5kbGVUb3VjaEVuZCh0KXt0LnByZXZlbnREZWZhdWx0KCksdGhpcy5oYW5kbGVNb3VzZVVwKCl9Z2V0UmVzaXplSGFuZGxlKHQscil7bGV0IGE9e253Ont4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZfSxuZTp7eDp0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUseTp0aGlzLmNyb3BZfSxzdzp7eDp0aGlzLmNyb3BYLHk6dGhpcy5jcm9wWSt0aGlzLmNyb3BTaXplfSxzZTp7eDp0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9fTtmb3IobGV0W24sb11vZiBPYmplY3QuZW50cmllcyhhKSlpZihNYXRoLmFicyh0LW8ueCk8MjAmJk1hdGguYWJzKHItby55KTwyMClyZXR1cm4gbjtyZXR1cm4iIn1nZXRSZXNpemVDdXJzb3IodCl7cmV0dXJue253OiJudy1yZXNpemUiLG5lOiJuZS1yZXNpemUiLHN3OiJzdy1yZXNpemUiLHNlOiJzZS1yZXNpemUifVt0XXx8ImRlZmF1bHQifWlzSW5zaWRlQ3JvcEFyZWEodCxyKXtyZXR1cm4gdD49dGhpcy5jcm9wWCYmdDw9dGhpcy5jcm9wWCt0aGlzLmNyb3BTaXplJiZyPj10aGlzLmNyb3BZJiZyPD10aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9aGFuZGxlUmVzaXplKHQscil7bGV0IGk9dC10aGlzLmRyYWdTdGFydFgsYT1yLXRoaXMuZHJhZ1N0YXJ0WSxuPXRoaXMuaW1hZ2VPZmZzZXRYLG89dGhpcy5pbWFnZU9mZnNldFkscz10aGlzLmltYWdlT2Zmc2V0WCt0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUsbD10aGlzLmltYWdlT2Zmc2V0WSt0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlO3N3aXRjaCh0aGlzLnJlc2l6ZUhhbmRsZSl7Y2FzZSJzZSI6dGhpcy5jcm9wU2l6ZT1NYXRoLm1heCh0aGlzLm1pbkNyb3BTaXplLE1hdGgubWluKHRoaXMuY3JvcFNpemUrTWF0aC5tYXgoaSxhKSxNYXRoLm1pbihzLXRoaXMuY3JvcFgsbC10aGlzLmNyb3BZKSkpO2JyZWFrO2Nhc2UibnciOmxldCBjPU1hdGgubWF4KHRoaXMubWluQ3JvcFNpemUsdGhpcy5jcm9wU2l6ZS1NYXRoLm1heChpLGEpKSx1PXRoaXMuY3JvcFNpemUtYyxkPXRoaXMuY3JvcFgrdSxoPXRoaXMuY3JvcFkrdTtkPj1uJiZoPj1vJiYodGhpcy5jcm9wWD1kLHRoaXMuY3JvcFk9aCx0aGlzLmNyb3BTaXplPWMpO2JyZWFrO2Nhc2UibmUiOmxldCBmPU1hdGgubWF4KGksLWEpLHg9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplK2YpLHY9eC10aGlzLmNyb3BTaXplLGI9dGhpcy5jcm9wWS12O2I+PW8mJnRoaXMuY3JvcFgreDw9cyYmKHRoaXMuY3JvcFk9Yix0aGlzLmNyb3BTaXplPXgpO2JyZWFrO2Nhc2Uic3ciOmxldCB5PU1hdGgubWF4KC1pLGEpLHc9TWF0aC5tYXgodGhpcy5taW5Dcm9wU2l6ZSx0aGlzLmNyb3BTaXplK3kpLGs9dy10aGlzLmNyb3BTaXplLE89dGhpcy5jcm9wWC1rO08+PW4mJnRoaXMuY3JvcFkrdzw9bCYmKHRoaXMuY3JvcFg9Tyx0aGlzLmNyb3BTaXplPXcpO2JyZWFrfX1yZW5kZXIoKXt0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5vdmVybGF5Q3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5vdmVybGF5Q2FudmFzLndpZHRoLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQpLHRoaXMuY3R4LmZpbGxTdHlsZT0iIzAwMDAwMCIsdGhpcy5jdHguZmlsbFJlY3QoMCwwLHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5jdHguZHJhd0ltYWdlKHRoaXMuaW1nLHRoaXMuaW1hZ2VPZmZzZXRYLHRoaXMuaW1hZ2VPZmZzZXRZLHRoaXMuaW1nLndpZHRoKnRoaXMuaW1hZ2VTY2FsZSx0aGlzLmltZy5oZWlnaHQqdGhpcy5pbWFnZVNjYWxlKSx0aGlzLm92ZXJsYXlDdHguZmlsbFN0eWxlPSJyZ2JhKDAsIDAsIDAsIDAuNSkiLHRoaXMub3ZlcmxheUN0eC5maWxsUmVjdCh0aGlzLmltYWdlT2Zmc2V0WCx0aGlzLmltYWdlT2Zmc2V0WSx0aGlzLmltZy53aWR0aCp0aGlzLmltYWdlU2NhbGUsdGhpcy5pbWcuaGVpZ2h0KnRoaXMuaW1hZ2VTY2FsZSksdGhpcy5vdmVybGF5Q3R4LnNhdmUoKSx0aGlzLm9wdGlvbnMuc2hhcGU9PT0icm91bmQiPyh0aGlzLm92ZXJsYXlDdHguYmVnaW5QYXRoKCksdGhpcy5vdmVybGF5Q3R4LmFyYyh0aGlzLmNyb3BYK3RoaXMuY3JvcFNpemUvMix0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemUvMix0aGlzLmNyb3BTaXplLzIsMCxNYXRoLlBJKjIpLHRoaXMub3ZlcmxheUN0eC5jbGlwKCkpOih0aGlzLm92ZXJsYXlDdHguYmVnaW5QYXRoKCksdGhpcy5vdmVybGF5Q3R4LnJlY3QodGhpcy5jcm9wWCx0aGlzLmNyb3BZLHRoaXMuY3JvcFNpemUsdGhpcy5jcm9wU2l6ZSksdGhpcy5vdmVybGF5Q3R4LmNsaXAoKSksdGhpcy5vdmVybGF5Q3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5vdmVybGF5Q2FudmFzLndpZHRoLHRoaXMub3ZlcmxheUNhbnZhcy5oZWlnaHQpLHRoaXMub3ZlcmxheUN0eC5yZXN0b3JlKCksdGhpcy5vdmVybGF5Q3R4LnN0cm9rZVN0eWxlPSJ3aGl0ZSIsdGhpcy5vdmVybGF5Q3R4LmxpbmVXaWR0aD0yLHRoaXMub3B0aW9ucy5zaGFwZT09PSJyb3VuZCI/KHRoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKHRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZS8yLHRoaXMuY3JvcFNpemUvMiwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LnN0cm9rZSgpKTp0aGlzLm92ZXJsYXlDdHguc3Ryb2tlUmVjdCh0aGlzLmNyb3BYLHRoaXMuY3JvcFksdGhpcy5jcm9wU2l6ZSx0aGlzLmNyb3BTaXplKSx0aGlzLmRyYXdSZXNpemVIYW5kbGVzKCl9ZHJhd1Jlc2l6ZUhhbmRsZXMoKXtsZXQgcj1be3g6dGhpcy5jcm9wWCx5OnRoaXMuY3JvcFl9LHt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFl9LHt4OnRoaXMuY3JvcFgseTp0aGlzLmNyb3BZK3RoaXMuY3JvcFNpemV9LHt4OnRoaXMuY3JvcFgrdGhpcy5jcm9wU2l6ZSx5OnRoaXMuY3JvcFkrdGhpcy5jcm9wU2l6ZX1dO3RoaXMub3ZlcmxheUN0eC5maWxsU3R5bGU9IndoaXRlIixyLmZvckVhY2goaT0+e3RoaXMub3ZlcmxheUN0eC5iZWdpblBhdGgoKSx0aGlzLm92ZXJsYXlDdHguYXJjKGkueCxpLnksOCwwLE1hdGguUEkqMiksdGhpcy5vdmVybGF5Q3R4LmZpbGwoKX0pfWFzeW5jIGdldENyb3BwZWRJbWFnZSgpe2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHI9dC5nZXRDb250ZXh0KCIyZCIpLGk9MS90aGlzLmltYWdlU2NhbGUsYT10aGlzLmNyb3BTaXplKmksbj10aGlzLm9wdGlvbnMub3V0cHV0U2l6ZTtuPmEmJmNvbnNvbGUuaW5mbyhgUHJvZmlsZSBwaWN0dXJlOiBVcHNjYWxpbmcgZnJvbSAke01hdGgucm91bmQoYSl9cHggdG8gJHtufXB4YCksdC53aWR0aD1uLHQuaGVpZ2h0PW47bGV0IG89KHRoaXMuY3JvcFgtdGhpcy5pbWFnZU9mZnNldFgpKmkscz0odGhpcy5jcm9wWS10aGlzLmltYWdlT2Zmc2V0WSkqaSxsPXRoaXMuY3JvcFNpemUqaTt0aGlzLm9wdGlvbnMuc2hhcGU9PT0icm91bmQiJiYoci5iZWdpblBhdGgoKSxyLmFyYyhuLzIsbi8yLG4vMiwwLE1hdGguUEkqMiksci5jbGlwKCkpLHIuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSEwLHIuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIixyLmRyYXdJbWFnZSh0aGlzLmltZyxvLHMsbCxsLDAsMCxuLG4pO2xldCB1PXRoaXMub3B0aW9ucy5pbWFnZS5pbmNsdWRlcygiaW1hZ2UvcG5nIik/ImltYWdlL3BuZyI6ImltYWdlL2pwZWciO3JldHVybiB0LnRvRGF0YVVSTCh1LHRoaXMub3B0aW9ucy5vdXRwdXRRdWFsaXR5KX1kZXN0cm95KCl7dGhpcy5jYW52YXMucmVtb3ZlKCksdGhpcy5vdmVybGF5Q2FudmFzLnJlbW92ZSgpfX19KTt2YXIgcTQsYW4sY2RlLGI0cj1wKCgpPT57eGUoKTtQbygpO1FhKCk7eG8oKTtvcigpO0k0KCk7cGMoKTtwYygpO2c0cigpO0plKCk7cTQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxhbj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sY2RlPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1wcm9maWxlcGljdHVyZS1tb2RhbCIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdO3ZhciBSPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgXz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOk51bWJlcn0pXSx4PVtqKHt0eXBlOk51bWJlcn0pXSx5PVtmZSgpXSxPPVtmZSgpXSxGPVtmZSgpXSxxNCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRpYWxJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImluaXRpYWxJbWFnZSJpbiBTLGdldDpTPT5TLmluaXRpYWxJbWFnZSxzZXQ6KFMsJCk9PntTLmluaXRpYWxJbWFnZT0kfX0sbWV0YWRhdGE6X30sbyxzKSxxNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ic2hhcGUiaW4gUyxnZXQ6Uz0+Uy5zaGFwZSxzZXQ6KFMsJCk9PntTLnNoYXBlPSR9fSxtZXRhZGF0YTpffSxjLHUpLHE0KHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+Im91dHB1dFNpemUiaW4gUyxnZXQ6Uz0+Uy5vdXRwdXRTaXplLHNldDooUywkKT0+e1Mub3V0cHV0U2l6ZT0kfX0sbWV0YWRhdGE6X30saCxmKSxxNCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJvdXRwdXRRdWFsaXR5ImluIFMsZ2V0OlM9PlMub3V0cHV0UXVhbGl0eSxzZXQ6KFMsJCk9PntTLm91dHB1dFF1YWxpdHk9JH19LG1ldGFkYXRhOl99LHYsYikscTQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50U3RlcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImN1cnJlbnRTdGVwImluIFMsZ2V0OlM9PlMuY3VycmVudFN0ZXAsc2V0OihTLCQpPT57Uy5jdXJyZW50U3RlcD0kfX0sbWV0YWRhdGE6X30sdyxrKSxxNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNyb3BwZWRJbWFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImNyb3BwZWRJbWFnZSJpbiBTLGdldDpTPT5TLmNyb3BwZWRJbWFnZSxzZXQ6KFMsJCk9PntTLmNyb3BwZWRJbWFnZT0kfX0sbWV0YWRhdGE6X30seixNKSxxNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzUHJvY2Vzc2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImlzUHJvY2Vzc2luZyJpbiBTLGdldDpTPT5TLmlzUHJvY2Vzc2luZyxzZXQ6KFMsJCk9PntTLmlzUHJvY2Vzc2luZz0kfX0sbWV0YWRhdGE6X30sRCxOKSxxNChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpffSxudWxsLHIpLFI9aT10LnZhbHVlLF8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6X30pfSNlPWFuKHRoaXMsbywiIik7Z2V0IGluaXRpYWxJbWFnZSgpe3JldHVybiB0aGlzLiNlfXNldCBpbml0aWFsSW1hZ2UoXyl7dGhpcy4jZT1ffSN0PShhbih0aGlzLHMpLGFuKHRoaXMsYywicm91bmQiKSk7Z2V0IHNoYXBlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNoYXBlKF8pe3RoaXMuI3Q9X30jcj0oYW4odGhpcyx1KSxhbih0aGlzLGgsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgb3V0cHV0U2l6ZShfKXt0aGlzLiNyPV99I2k9KGFuKHRoaXMsZiksYW4odGhpcyx2LC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI2l9c2V0IG91dHB1dFF1YWxpdHkoXyl7dGhpcy4jaT1ffSNhPShhbih0aGlzLGIpLGFuKHRoaXMsdywiY3JvcCIpKTtnZXQgY3VycmVudFN0ZXAoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY3VycmVudFN0ZXAoXyl7dGhpcy4jYT1ffSNuPShhbih0aGlzLGspLGFuKHRoaXMseiwiIikpO2dldCBjcm9wcGVkSW1hZ2UoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3JvcHBlZEltYWdlKF8pe3RoaXMuI249X30jbz0oYW4odGhpcyxNKSxhbih0aGlzLEQsITEpKTtnZXQgaXNQcm9jZXNzaW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzUHJvY2Vzc2luZyhfKXt0aGlzLiNvPV99Y3JvcHBlcj0oYW4odGhpcyxOKSxudWxsKTt3aW5kb3dMYXllcjt6SW5kZXg9MDtzdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBmb250LWZhbWlseTogJHtJcn07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2ZmZiIpfTsKICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiB2YXIoLS16LWluZGV4KTsKICAgICAgfQoKICAgICAgLm1vZGFsLWNvbnRhaW5lciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGEwYTBhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpIiwiMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpIil9OwogICAgICAgIHdpZHRoOiA0ODBweDsKICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGUoMC45OCk7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBhbmltYXRpb246IG1vZGFsU2hvdyAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIG1vZGFsU2hvdyB7CiAgICAgICAgdG8gewogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpIHNjYWxlKDEpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLm1vZGFsLWhlYWRlciB7CiAgICAgICAgaGVpZ2h0OiA1MnB4OwogICAgICAgIHBhZGRpbmc6IDAgMjBweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wNikiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIil9OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5tb2RhbC10aXRsZSB7CiAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTsKICAgICAgfQoKICAgICAgLmNsb3NlLWJ1dHRvbiB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAxMHB4OwogICAgICAgIHRvcDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsKICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICBoZWlnaHQ6IDMycHg7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5jbG9zZS1idXR0b246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDUpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAuY2xvc2UtYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4wOCkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpIil9OwogICAgICB9CgogICAgICAubW9kYWwtYm9keSB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAuY3JvcHBlci1jb250YWluZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogMzYwcHg7CiAgICAgICAgYXNwZWN0LXJhdGlvOiAxOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzAwMDAwMCIsIiMwMDAwMDAiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCJpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA2KSIsImluc2V0IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAyMHB4OwogICAgICB9CgogICAgICAucHJldmlldy1pbWFnZSB7CiAgICAgICAgd2lkdGg6IDE4MHB4OwogICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgYm9yZGVyOiA0cHggc29saWQgJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMTgxODFiIil9OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDEwcHggMTVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCA0cHggNnB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjA1KSIsIjAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMikiKX07CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlLnJvdW5kIHsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWltYWdlLnNxdWFyZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDsKICAgICAgfQoKICAgICAgLnN1Y2Nlc3MtbWVzc2FnZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTBweDsKICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMxMGI5ODEiLCIjMTBiOTgxIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBhbmltYXRpb246IHN1Y2Nlc3NQdWxzZSAwLjRzIGVhc2Utb3V0OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHN1Y2Nlc3NQdWxzZSB7CiAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IG9wYWNpdHk6IDA7IH0KICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpOyB9CiAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH0KICAgICAgfQoKICAgICAgLm1vZGFsLWZvb3RlciB7CiAgICAgICAgcGFkZGluZzogMjBweCAyNHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjA2KSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgfQoKICAgICAgLmluc3RydWN0aW9ucyB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDsKICAgICAgfQoKICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgd2lkdGg6IDQwcHg7CiAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMSkiLCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkiKX07CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICBhbmltYXRpb246IHNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgdG8gewogICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAgIC5tb2RhbC1jb250YWluZXIgewogICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTsKICAgICAgICAgIG1hcmdpbjogMTZweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm1vZGFsLWJvZHkgewogICAgICAgICAgcGFkZGluZzogMjRweDsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO2FzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLndpbmRvd0xheWVyPWF3YWl0ICRvLmNyZWF0ZUFuZFNob3coe2JsdXI6ITB9KSx0aGlzLndpbmRvd0xheWVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+dGhpcy5jbG9zZSgpKSx0aGlzLnpJbmRleD1Lci5nZXROZXh0WkluZGV4KCksdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS16LWluZGV4Iix0aGlzLnpJbmRleC50b1N0cmluZygpKSxLci5yZWdpc3Rlcih0aGlzLHRoaXMuekluZGV4KX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5jcm9wcGVyJiZ0aGlzLmNyb3BwZXIuZGVzdHJveSgpLHRoaXMud2luZG93TGF5ZXImJmF3YWl0IHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpLEtyLnVucmVnaXN0ZXIodGhpcyl9cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWNvbnRhaW5lciIgQGNsaWNrPSR7Xz0+Xy5zdG9wUHJvcGFnYXRpb24oKX0+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICAgIDxoMyBjbGFzcz0ibW9kYWwtdGl0bGUiPgogICAgICAgICAgICAke3RoaXMuY3VycmVudFN0ZXA9PT0iY3JvcCI/IkFkanVzdCBJbWFnZSI6IlN1Y2Nlc3MifQogICAgICAgICAgPC9oMz4KICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsb3NlLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5jbG9zZX0gdGl0bGU9IkNsb3NlIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6eCIgaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPgogICAgICAgICAgJHt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imluc3RydWN0aW9ucyI+CiAgICAgICAgICAgICAgUG9zaXRpb24gYW5kIHJlc2l6ZSB0aGUgc3F1YXJlIHRvIHNlbGVjdCB5b3VyIHByb2ZpbGUgYXJlYQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3JvcHBlci1jb250YWluZXIiIGlkPSJjcm9wcGVyQ29udGFpbmVyIj48L2Rpdj4KICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJldmlldy1jb250YWluZXIiPgogICAgICAgICAgICAgICR7dGhpcy5pc1Byb2Nlc3Npbmc/Q2AKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbnMiPlNhdmluZy4uLjwvZGl2PgogICAgICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgICAgIDxpbWcgCiAgICAgICAgICAgICAgICAgIGNsYXNzPSJwcmV2aWV3LWltYWdlICR7dGhpcy5zaGFwZX0iIAogICAgICAgICAgICAgICAgICBzcmM9IiR7dGhpcy5jcm9wcGVkSW1hZ2V9IiAKICAgICAgICAgICAgICAgICAgYWx0PSJDcm9wcGVkIHByZXZpZXciCiAgICAgICAgICAgICAgICAvPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VjY2Vzcy1tZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Y2hlY2siIGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuPkxvb2tpbmcgZ29vZCE8L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICBgfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj4KICAgICAgICAgICR7dGhpcy5jdXJyZW50U3RlcD09PSJjcm9wIj9DYAogICAgICAgICAgICA8ZGVlcy1idXR0b24gdHlwZT0iZGVzdHJ1Y3RpdmUiIHNpemU9InNtIiBAY2xpY2s9JHt0aGlzLmNsb3NlfT4KICAgICAgICAgICAgICBDYW5jZWwKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uIHR5cGU9ImRlZmF1bHQiIHNpemU9InNtIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNyb3B9PgogICAgICAgICAgICAgIFNhdmUKICAgICAgICAgICAgPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIGA6IiJ9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmN1cnJlbnRTdGVwPT09ImNyb3AiJiZhd2FpdCB0aGlzLmluaXRpYWxpemVDcm9wcGVyKCl9YXN5bmMgaW5pdGlhbGl6ZUNyb3BwZXIoKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBfPXRoaXMuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgiY3JvcHBlckNvbnRhaW5lciIpO18mJih0aGlzLmNyb3BwZXI9bmV3IGFGKHtjb250YWluZXI6XyxpbWFnZTp0aGlzLmluaXRpYWxJbWFnZSxzaGFwZTp0aGlzLnNoYXBlLGFzcGVjdFJhdGlvOjEsb3V0cHV0U2l6ZTp0aGlzLm91dHB1dFNpemUsb3V0cHV0UXVhbGl0eTp0aGlzLm91dHB1dFF1YWxpdHl9KSxhd2FpdCB0aGlzLmNyb3BwZXIuaW5pdGlhbGl6ZSgpKX1hc3luYyBoYW5kbGVDcm9wKCl7aWYodGhpcy5jcm9wcGVyKXRyeXt0aGlzLmlzUHJvY2Vzc2luZz0hMCx0aGlzLmN1cnJlbnRTdGVwPSJwcmV2aWV3Iixhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCBfPWF3YWl0IHRoaXMuY3JvcHBlci5nZXRDcm9wcGVkSW1hZ2UoKTt0aGlzLmNyb3BwZWRJbWFnZT1fLGF3YWl0IG5ldyBQcm9taXNlKFM9PnNldFRpbWVvdXQoUyw4MDApKSx0aGlzLmlzUHJvY2Vzc2luZz0hMSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzYXZlIix7ZGV0YWlsOntjcm9wcGVkSW1hZ2U6dGhpcy5jcm9wcGVkSW1hZ2V9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSksc2V0VGltZW91dCgoKT0+e3RoaXMuY2xvc2UoKX0sMTUwMCl9Y2F0Y2goXyl7Y29uc29sZS5lcnJvcigiRXJyb3IgY3JvcHBpbmcgaW1hZ2U6IixfKSx0aGlzLmlzUHJvY2Vzc2luZz0hMX19Y2xvc2UoKXt0aGlzLnJlbW92ZSgpfXN0YXRpY3thbihpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgdjRyLHg0cj1wKCgpPT57eGUoKTtwMSgpO09pKCk7ZGRlKCk7djRyPSgpPT5DYAogIDxzdHlsZT4KICAgICR7b2VgCiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBwYWRkaW5nOiAyNHB4OwogICAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIAogICAgICBkZWVzLXBhbmVsIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1yb3cgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0OHB4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICB9CiAgICAgIAogICAgICAuZGVtby1vdXRwdXQgewogICAgICAgIG1hcmdpbi10b3A6IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwNSwgMjQyLCAwLjEpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgLmZlYXR1cmUtbGlzdCB7CiAgICAgICAgbWFyZ2luLXRvcDogMTZweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5mZWF0dXJlLWxpc3QgbGkgewogICAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgfQogICAgYH0KICA8L3N0eWxlPgogIAogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntsZXQgdD1lLnF1ZXJ5U2VsZWN0b3IoJ2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmVbc2hhcGU9InJvdW5kIl0nKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIscj0+e2xldCBpPXIudGFyZ2V0O2NvbnNvbGUubG9nKCJSb3VuZCBwcm9maWxlIHBpY3R1cmUgY2hhbmdlZDoiLGkudmFsdWU/LnN1YnN0cmluZygwLDUwKSsiLi4uIil9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiUHJvZmlsZSBQaWN0dXJlIElucHV0In0gLnN1YnRpdGxlPSR7IkJhc2ljIHVzYWdlIHdpdGggcm91bmQgYW5kIHNxdWFyZSBzaGFwZXMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUHJvZmlsZSBQaWN0dXJlIChSb3VuZCkiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayB0byB1cGxvYWQgb3IgZHJhZyAmIGRyb3AgYW4gaW1hZ2UiCiAgICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlByb2ZpbGUgUGljdHVyZSAoU3F1YXJlKSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IlN1cHBvcnRzIEpQRUcsIFBORywgYW5kIFdlYlAgZm9ybWF0cyIKICAgICAgICAgICAgc2hhcGU9InNxdWFyZSIKICAgICAgICAgICAgc2l6ZT0iMTIwIgogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9PntlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKS5mb3JFYWNoKHI9PntyLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsaT0+e2xldCBhPWkudGFyZ2V0O2NvbnNvbGUubG9nKGBQcm9maWxlIChzaXplICR7YS5zaXplfSkgY2hhbmdlZGApfSl9KX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiU2l6ZSBWYXJpYXRpb25zIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZXMgaW4gZGlmZmVyZW50IHNpemVzIn0+CiAgICAgICAgPGRpdiBjbGFzcz0iZGVtby1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlNtYWxsICg4MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSI4MCIKICAgICAgICAgID48L2RlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmU+CiAgICAgICAgICAKICAgICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICAgIGxhYmVsPSJNZWRpdW0gKDEyMHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxMjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgICAgCiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iTGFyZ2UgKDE2MHB4KSIKICAgICAgICAgICAgc2hhcGU9InJvdW5kIgogICAgICAgICAgICBzaXplPSIxNjAiCiAgICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CgogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4WkdWbWN6NEtJQ0FnSUR4c2FXNWxZWEpIY21Ga2FXVnVkQ0JwWkQwaVozSmhaR2xsYm5RaUlIZ3hQU0l3SlNJZ2VURTlJakFsSWlCNE1qMGlNVEF3SlNJZ2VUSTlJakV3TUNVaVBnb2dJQ0FnSUNBOGMzUnZjQ0J2Wm1aelpYUTlJakFsSWlCemRHOXdMV052Ykc5eVBTSWpOalkzWldWaElpQXZQZ29nSUNBZ0lDQThjM1J2Y0NCdlptWnpaWFE5SWpFd01DVWlJSE4wYjNBdFkyOXNiM0k5SWlNM05qUmlZVElpSUM4K0NpQWdJQ0E4TDJ4cGJtVmhja2R5WVdScFpXNTBQZ29nSUR3dlpHVm1jejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdabWxzYkQwaWRYSnNLQ05uY21Ga2FXVnVkQ2tpSUM4K0NpQWdQSFJsZUhRZ2VEMGlOVEFsSWlCNVBTSTFNQ1VpSUdSdmJXbHVZVzUwTFdKaGMyVnNhVzVsUFNKdGFXUmtiR1VpSUhSbGVIUXRZVzVqYUc5eVBTSnRhV1JrYkdVaUlHWnZiblF0Wm1GdGFXeDVQU0pCY21saGJDSWdabTl1ZEMxemFYcGxQU0k0TUNJZ1ptbHNiRDBpZDJocGRHVWlQa3BFUEM5MFpYaDBQZ284TDNOMlp6ND0iLHI9ZS5xdWVyeVNlbGVjdG9yKCIjcHJlZmlsbGVkLXByb2ZpbGUiKTtyJiYoci52YWx1ZT10LHIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixpPT57bGV0IGE9aS50YXJnZXQsbj1lLnF1ZXJ5U2VsZWN0b3IoIiNwcmVmaWxsZWQtb3V0cHV0Iik7biYmKG4udGV4dENvbnRlbnQ9YS52YWx1ZT9gSW1hZ2UgZGF0YTogJHthLnZhbHVlLnN1YnN0cmluZygwLDgwKX0uLi5gOiJObyBpbWFnZSBzZWxlY3RlZCIpfSkpfX0+CiAgICAgIDxkZWVzLXBhbmVsIC50aXRsZT0keyJQcmUtZmlsbGVkIGFuZCBWYWx1ZSBCaW5kaW5nIn0gLnN1YnRpdGxlPSR7IlByb2ZpbGUgcGljdHVyZSB3aXRoIGluaXRpYWwgdmFsdWUgYW5kIGNoYW5nZSB0cmFja2luZyJ9PgogICAgICAgIDxkZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlCiAgICAgICAgICBpZD0icHJlZmlsbGVkLXByb2ZpbGUiCiAgICAgICAgICBsYWJlbD0iRWRpdCBFeGlzdGluZyBQcm9maWxlIgogICAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIHRoZSBlZGl0IGJ1dHRvbiB0byBjaGFuZ2Ugb3IgZGVsZXRlIHRvIHJlbW92ZSIKICAgICAgICAgIHNoYXBlPSJyb3VuZCIKICAgICAgICAgIHNpemU9IjE1MCIKICAgICAgICA+PC9kZWVzLWlucHV0LXByb2ZpbGVwaWN0dXJlPgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InByZWZpbGxlZC1vdXRwdXQiIGNsYXNzPSJkZW1vLW91dHB1dCI+CiAgICAgICAgICBJbWFnZSBkYXRhIHdpbGwgYXBwZWFyIGhlcmUgd2hlbiBjaGFuZ2VkCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGVlcy1wYW5lbD4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KCiAgICA8ZGVlcy1kZW1vd3JhcHBlciAucnVuQWZ0ZXJSZW5kZXI9JHthc3luYyBlPT57bGV0IHQ9ZS5xdWVyeVNlbGVjdG9yKCIjZGlzYWJsZWQtcHJvZmlsZSIpO3QmJih0LnZhbHVlPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIzYVdSMGFEMGlNakF3SWlCb1pXbG5hSFE5SWpJd01DSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQXdJaUJvWldsbmFIUTlJakl3TUNJZ1ptbHNiRDBpSTJOalkyTmpZeUlnTHo0S0lDQThkR1Y0ZENCNFBTSTFNQ1VpSUhrOUlqVXdKU0lnWkc5dGFXNWhiblF0WW1GelpXeHBibVU5SW0xcFpHUnNaU0lnZEdWNGRDMWhibU5vYjNJOUltMXBaR1JzWlNJZ1ptOXVkQzFtWVcxcGJIazlJa0Z5YVdGc0lpQm1iMjUwTFhOcGVtVTlJall3SWlCbWFXeHNQU0ozYUdsMFpTSStUa0U4TDNSbGVIUStDand2YzNablBnPT0iKX19PgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRm9ybSBTdGF0ZXMifSAuc3VidGl0bGU9JHsiRGlmZmVyZW50IHN0YXRlcyBhbmQgY29uZmlndXJhdGlvbnMifT4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZQogICAgICAgICAgICBsYWJlbD0iUmVxdWlyZWQgRmllbGQiCiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5yZXF1aXJlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgaWQ9ImRpc2FibGVkLXByb2ZpbGUiCiAgICAgICAgICAgIGxhYmVsPSJEaXNhYmxlZCBTdGF0ZSIKICAgICAgICAgICAgZGVzY3JpcHRpb249IkNhbm5vdCBiZSBlZGl0ZWQiCiAgICAgICAgICAgIHNoYXBlPSJzcXVhcmUiCiAgICAgICAgICAgIC5kaXNhYmxlZD0keyEwfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICAgIAogICAgICAgICAgPGRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUKICAgICAgICAgICAgbGFiZWw9IlVwbG9hZCBPbmx5IgogICAgICAgICAgICBkZXNjcmlwdGlvbj0iRGVsZXRlIG5vdCBhbGxvd2VkIgogICAgICAgICAgICBzaGFwZT0icm91bmQiCiAgICAgICAgICAgIC5hbGxvd0RlbGV0ZT0keyExfQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1wcm9maWxlcGljdHVyZT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kZWVzLWRlbW93cmFwcGVyPgoKICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICA8ZGVlcy1wYW5lbCAudGl0bGU9JHsiRmVhdHVyZXMifSAuc3VidGl0bGU9JHsiQ29tcGxldGUgZmVhdHVyZSBzZXQgb2YgdGhlIHByb2ZpbGUgcGljdHVyZSBpbnB1dCJ9PgogICAgICAgIDx1bCBjbGFzcz0iZmVhdHVyZS1saXN0Ij4KICAgICAgICAgIDxsaT48c3Ryb25nPkltYWdlIFVwbG9hZDo8L3N0cm9uZz4gQ2xpY2sgdG8gdXBsb2FkIG9yIGRyYWcgJiBkcm9wIGltYWdlczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5JbWFnZSBDcm9wcGluZzo8L3N0cm9uZz4gSW50ZXJhY3RpdmUgY3JvcCB0b29sIHdpdGggcmVzaXplIGhhbmRsZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2hhcGUgU3VwcG9ydDo8L3N0cm9uZz4gUm91bmQgb3Igc3F1YXJlIHByb2ZpbGUgcGljdHVyZXM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+U2l6ZSBDdXN0b21pemF0aW9uOjwvc3Ryb25nPiBBZGp1c3RhYmxlIGRpbWVuc2lvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UHJldmlldyAmIEVkaXQ6PC9zdHJvbmc+IEhvdmVyIG92ZXJsYXkgd2l0aCBlZGl0IGFuZCBkZWxldGUgb3B0aW9uczwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5GaWxlIFZhbGlkYXRpb246PC9zdHJvbmc+IEZvcm1hdCBhbmQgc2l6ZSByZXN0cmljdGlvbnM8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+UmVzcG9uc2l2ZSBEZXNpZ246PC9zdHJvbmc+IFdvcmtzIG9uIGRlc2t0b3AgYW5kIG1vYmlsZSBkZXZpY2VzPC9saT4KICAgICAgICAgIDxsaT48c3Ryb25nPkZvcm0gSW50ZWdyYXRpb246PC9zdHJvbmc+IFN0YW5kYXJkIGZvcm0gdmFsdWUgYmluZGluZyBhbmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgICAgICA8bGk+PHN0cm9uZz5BY2Nlc3NpYmlsaXR5Ojwvc3Ryb25nPiBLZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBzY3JlZW4gcmVhZGVyIHN1cHBvcnQ8L2xpPgogICAgICAgICAgPGxpPjxzdHJvbmc+Wi1JbmRleCBNYW5hZ2VtZW50Ojwvc3Ryb25nPiBQcm9wZXIgbW9kYWwgc3RhY2tpbmcgd2l0aCByZWdpc3RyeTwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICAKICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAyNHB4OyI+CiAgICAgICAgICA8c3Ryb25nPlN1cHBvcnRlZCBGb3JtYXRzOjwvc3Ryb25nPiBKUEVHLCBQTkcsIFdlYlA8YnI+CiAgICAgICAgICA8c3Ryb25nPk1heCBGaWxlIFNpemU6PC9zdHJvbmc+IDVNQiAoY29uZmlndXJhYmxlKTxicj4KICAgICAgICAgIDxzdHJvbmc+T3V0cHV0IEZvcm1hdDo8L3N0cm9uZz4gQmFzZTY0IGVuY29kZWQgSlBFRwogICAgICAgIDwvZGl2PgogICAgICA8L2RlZXMtcGFuZWw+CiAgICA8L2RlZXMtZGVtb3dyYXBwZXI+CiAgPC9kaXY+CmB9KTt2YXIgVG4sdDEseTRyLGRkZT1wKCgpPT57eGUoKTtNMSgpO29yKCk7ZWgoKTtiNHIoKTt4NHIoKTtKZSgpO1RuPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sdDE9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHk0cj0oKCk9PntsZXQgZT1beWUoImRlZXMtaW5wdXQtcHJvZmlsZXBpY3R1cmUiKV0sdCxyPVtdLGksYT1vdCxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXSxxLEI9W10sRz1bXSxlZSxQPVtdLGdlPVtdLHdlLEk9W10sbmU9W10sa2UsWT1bXSxBPVtdO3ZhciBMPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOk51bWJlcn0pXSx4PVtqKHt0eXBlOlN0cmluZ30pXSx5PVtqKHt0eXBlOkJvb2xlYW59KV0sTz1baih7dHlwZTpCb29sZWFufSldLEY9W2ooe3R5cGU6TnVtYmVyfSldLFI9W2ooe3R5cGU6QXJyYXl9KV0sJD1baih7dHlwZTpOdW1iZXJ9KV0scT1baih7dHlwZTpOdW1iZXJ9KV0sZWU9W2ZlKCldLHdlPVtmZSgpXSxrZT1bZmUoKV0sVG4odGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ2YWx1ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Vj0+InZhbHVlImluIFYsZ2V0OlY9PlYudmFsdWUsc2V0OihWLFgpPT57Vi52YWx1ZT1YfX0sbWV0YWRhdGE6VX0sbyxzKSxUbih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNoYXBlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4ic2hhcGUiaW4gVixnZXQ6Vj0+Vi5zaGFwZSxzZXQ6KFYsWCk9PntWLnNoYXBlPVh9fSxtZXRhZGF0YTpVfSxjLHUpLFRuKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Vj0+InNpemUiaW4gVixnZXQ6Vj0+Vi5zaXplLHNldDooVixYKT0+e1Yuc2l6ZT1YfX0sbWV0YWRhdGE6VX0saCxmKSxUbih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBsYWNlaG9sZGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4icGxhY2Vob2xkZXIiaW4gVixnZXQ6Vj0+Vi5wbGFjZWhvbGRlcixzZXQ6KFYsWCk9PntWLnBsYWNlaG9sZGVyPVh9fSxtZXRhZGF0YTpVfSx2LGIpLFRuKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWxsb3dVcGxvYWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlY9PiJhbGxvd1VwbG9hZCJpbiBWLGdldDpWPT5WLmFsbG93VXBsb2FkLHNldDooVixYKT0+e1YuYWxsb3dVcGxvYWQ9WH19LG1ldGFkYXRhOlV9LHcsayksVG4odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhbGxvd0RlbGV0ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Vj0+ImFsbG93RGVsZXRlImluIFYsZ2V0OlY9PlYuYWxsb3dEZWxldGUsc2V0OihWLFgpPT57Vi5hbGxvd0RlbGV0ZT1YfX0sbWV0YWRhdGE6VX0seixNKSxUbih0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1heEZpbGVTaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4ibWF4RmlsZVNpemUiaW4gVixnZXQ6Vj0+Vi5tYXhGaWxlU2l6ZSxzZXQ6KFYsWCk9PntWLm1heEZpbGVTaXplPVh9fSxtZXRhZGF0YTpVfSxELE4pLFRuKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWNjZXB0ZWRGb3JtYXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4iYWNjZXB0ZWRGb3JtYXRzImluIFYsZ2V0OlY9PlYuYWNjZXB0ZWRGb3JtYXRzLHNldDooVixYKT0+e1YuYWNjZXB0ZWRGb3JtYXRzPVh9fSxtZXRhZGF0YTpVfSxfLFMpLFRuKHRoaXMsbnVsbCwkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0cHV0U2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Vj0+Im91dHB1dFNpemUiaW4gVixnZXQ6Vj0+Vi5vdXRwdXRTaXplLHNldDooVixYKT0+e1Yub3V0cHV0U2l6ZT1YfX0sbWV0YWRhdGE6VX0sVCxFKSxUbih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im91dHB1dFF1YWxpdHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlY9PiJvdXRwdXRRdWFsaXR5ImluIFYsZ2V0OlY9PlYub3V0cHV0UXVhbGl0eSxzZXQ6KFYsWCk9PntWLm91dHB1dFF1YWxpdHk9WH19LG1ldGFkYXRhOlV9LEIsRyksVG4odGhpcyxudWxsLGVlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNIb3ZlcmVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4iaXNIb3ZlcmVkImluIFYsZ2V0OlY9PlYuaXNIb3ZlcmVkLHNldDooVixYKT0+e1YuaXNIb3ZlcmVkPVh9fSxtZXRhZGF0YTpVfSxQLGdlKSxUbih0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpWPT4iaXNEcmFnZ2luZyJpbiBWLGdldDpWPT5WLmlzRHJhZ2dpbmcsc2V0OihWLFgpPT57Vi5pc0RyYWdnaW5nPVh9fSxtZXRhZGF0YTpVfSxJLG5lKSxUbih0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0xvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlY9PiJpc0xvYWRpbmciaW4gVixnZXQ6Vj0+Vi5pc0xvYWRpbmcsc2V0OihWLFgpPT57Vi5pc0xvYWRpbmc9WH19LG1ldGFkYXRhOlV9LFksQSksVG4obnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6VX0sbnVsbCxyKSxMPWk9dC52YWx1ZSxVJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlV9KX1zdGF0aWMgZGVtbz12NHI7c3RhdGljIGRlbW9Hcm91cHM9WyJJbnB1dCJdOyNlPXQxKHRoaXMsbywiIik7Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHZhbHVlKFUpe3RoaXMuI2U9VX0jdD0odDEodGhpcyxzKSx0MSh0aGlzLGMsInJvdW5kIikpO2dldCBzaGFwZSgpe3JldHVybiB0aGlzLiN0fXNldCBzaGFwZShVKXt0aGlzLiN0PVV9I3I9KHQxKHRoaXMsdSksdDEodGhpcyxoLDEyMCkpO2dldCBzaXplKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNpemUoVSl7dGhpcy4jcj1VfSNpPSh0MSh0aGlzLGYpLHQxKHRoaXMsdiwiIikpO2dldCBwbGFjZWhvbGRlcigpe3JldHVybiB0aGlzLiNpfXNldCBwbGFjZWhvbGRlcihVKXt0aGlzLiNpPVV9I2E9KHQxKHRoaXMsYiksdDEodGhpcyx3LCEwKSk7Z2V0IGFsbG93VXBsb2FkKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGFsbG93VXBsb2FkKFUpe3RoaXMuI2E9VX0jbj0odDEodGhpcyxrKSx0MSh0aGlzLHosITApKTtnZXQgYWxsb3dEZWxldGUoKXtyZXR1cm4gdGhpcy4jbn1zZXQgYWxsb3dEZWxldGUoVSl7dGhpcy4jbj1VfSNvPSh0MSh0aGlzLE0pLHQxKHRoaXMsRCw1KjEwMjQqMTAyNCkpO2dldCBtYXhGaWxlU2l6ZSgpe3JldHVybiB0aGlzLiNvfXNldCBtYXhGaWxlU2l6ZShVKXt0aGlzLiNvPVV9I3M9KHQxKHRoaXMsTiksdDEodGhpcyxfLFsiaW1hZ2UvanBlZyIsImltYWdlL3BuZyIsImltYWdlL3dlYnAiXSkpO2dldCBhY2NlcHRlZEZvcm1hdHMoKXtyZXR1cm4gdGhpcy4jc31zZXQgYWNjZXB0ZWRGb3JtYXRzKFUpe3RoaXMuI3M9VX0jbD0odDEodGhpcyxTKSx0MSh0aGlzLFQsODAwKSk7Z2V0IG91dHB1dFNpemUoKXtyZXR1cm4gdGhpcy4jbH1zZXQgb3V0cHV0U2l6ZShVKXt0aGlzLiNsPVV9I2M9KHQxKHRoaXMsRSksdDEodGhpcyxCLC45NSkpO2dldCBvdXRwdXRRdWFsaXR5KCl7cmV0dXJuIHRoaXMuI2N9c2V0IG91dHB1dFF1YWxpdHkoVSl7dGhpcy4jYz1VfSNkPSh0MSh0aGlzLEcpLHQxKHRoaXMsUCwhMSkpO2dldCBpc0hvdmVyZWQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNIb3ZlcmVkKFUpe3RoaXMuI2Q9VX0jdT0odDEodGhpcyxnZSksdDEodGhpcyxJLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jdX1zZXQgaXNEcmFnZ2luZyhVKXt0aGlzLiN1PVV9I3A9KHQxKHRoaXMsbmUpLHQxKHRoaXMsWSwhMSkpO2dldCBpc0xvYWRpbmcoKXtyZXR1cm4gdGhpcy4jcH1zZXQgaXNMb2FkaW5nKFUpe3RoaXMuI3A9VX1tb2RhbEluc3RhbmNlPSh0MSh0aGlzLEEpLG51bGwpO3N0YXRpYyBzdHlsZXM9W0RlLC4uLm90LmJhc2VTdHlsZXMsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuaW5wdXQtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAucHJvZmlsZS1jb250YWluZXI6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmUgewogICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLCAxMjBweCk7CiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLCAxMjBweCk7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNWY1ZjUiLCIjMTgxODFiIil9OwogICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZS5yb3VuZCB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLnNxdWFyZSB7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtcGljdHVyZS5kcmFnZ2luZyB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM2MGE1ZmEiKX07CiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSkiLCJyZ2JhKDk2LCAxNjUsIDI1MCwgMC4xNSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9maWxlLXBpY3R1cmU6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNkNGQ0ZDgiLCIjM2YzZjQ2Iil9OwogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtaW1hZ2UgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgfQoKICAgICAgLnBsYWNlaG9sZGVyLWljb24gewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLnByb2ZpbGUtY29udGFpbmVyOmhvdmVyIC5vdmVybGF5IHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3ZlcmxheS1jb250ZW50IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uIHsKICAgICAgICB3aWR0aDogNDBweDsKICAgICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpIiwicmdiYSgzOSwgMzksIDQyLCAwLjk1KSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOwogICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgICAgIH0KCiAgICAgIC5vdmVybGF5LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjM2YzZjQ2Iil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsKICAgICAgICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTsKICAgICAgfQoKICAgICAgLm92ZXJsYXktYnV0dG9uLmRlbGV0ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMjM5LCA2OCwgNjgsIDAuOSkiLCJyZ2JhKDIyMCwgMzgsIDM4LCAwLjkpIil9OwogICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAub3ZlcmxheS1idXR0b24uZGVsZXRlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2VmNDQ0NCIsIiNkYzI2MjYiKX07CiAgICAgIH0KCiAgICAgIC5kcm9wLXpvbmUtdGV4dCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5oaWRkZW4taW5wdXQgewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgIH0KCiAgICAgIC8qIExvYWRpbmcgYW5pbWF0aW9uICovCiAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSIsInJnYmEoMCwgMCwgMCwgMC44KSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAubG9hZGluZy1vdmVybGF5LnNob3cgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nLXNwaW5uZXIgewogICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYW5pbWF0aW9uOiBzcGluIDAuNnMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIHRvIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHB1bHNlIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOwogICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB9CiAgICAgICAgNTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7CiAgICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgfQogICAgICAgIDEwMCUgewogICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsKICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgfQogICAgICB9CgogICAgICAucHJvZmlsZS1waWN0dXJlLmNsaWNraW5nIHsKICAgICAgICBhbmltYXRpb246IHB1bHNlIDAuM3MgZWFzZS1vdXQ7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwcGVyIj4KICAgICAgICA8ZGVlcy1sYWJlbCAubGFiZWw9JHt0aGlzLmxhYmVsfSAuZGVzY3JpcHRpb249JHt0aGlzLmRlc2NyaXB0aW9ufSAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfT48L2RlZXMtbGFiZWw+CiAgICAgICAgCiAgICAgICAgPGRpdiAKICAgICAgICAgIGNsYXNzPSJwcm9maWxlLWNvbnRhaW5lciIKICAgICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlQ2xpY2t9CiAgICAgICAgICBAZHJhZ292ZXI9JHt0aGlzLmhhbmRsZURyYWdPdmVyfQogICAgICAgICAgQGRyYWdsZWF2ZT0ke3RoaXMuaGFuZGxlRHJhZ0xlYXZlfQogICAgICAgICAgQGRyb3A9JHt0aGlzLmhhbmRsZURyb3B9CiAgICAgICAgICBzdHlsZT0iLS1zaXplOiAke3RoaXMuc2l6ZX1weCIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9maWxlLXBpY3R1cmUgJHt0aGlzLnNoYXBlfSAke3RoaXMuaXNEcmFnZ2luZz8iZHJhZ2dpbmciOiIifSAke3RoaXMuaXNMb2FkaW5nJiYhdGhpcy52YWx1ZT8iY2xpY2tpbmciOiIifSI+CiAgICAgICAgICAgICR7dGhpcy52YWx1ZT9DYAogICAgICAgICAgICAgIDxpbWcgY2xhc3M9InByb2ZpbGUtaW1hZ2UiIHNyYz0iJHt0aGlzLnZhbHVlfSIgYWx0PSJQcm9maWxlIHBpY3R1cmUiIC8+CiAgICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJwbGFjZWhvbGRlci1pY29uIiBpY29uPSJsdWNpZGU6dXNlciIgaWNvblNpemU9IiR7dGhpcy5zaXplKi41fSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIGB9CiAgICAgICAgICAgIAogICAgICAgICAgICAke3RoaXMuaXNEcmFnZ2luZz9DYAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiIHN0eWxlPSJvcGFjaXR5OiAxIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRyb3Atem9uZS10ZXh0Ij4KICAgICAgICAgICAgICAgICAgRHJvcCBpbWFnZSBoZXJlCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy52YWx1ZSYmIXRoaXMuZGlzYWJsZWQ/Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktY29udGVudCI+CiAgICAgICAgICAgICAgICAgICR7dGhpcy5hbGxvd1VwbG9hZD9DYAogICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im92ZXJsYXktYnV0dG9uIiBAY2xpY2s9JHtVPT57VS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLm9wZW5Nb2RhbCgpfX0gdGl0bGU9IkNoYW5nZSBwaWN0dXJlIj4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOnBlbmNpbCIgaWNvblNpemU9IjIwIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgICAgJHt0aGlzLmFsbG93RGVsZXRlP0NgCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ib3ZlcmxheS1idXR0b24gZGVsZXRlIiBAY2xpY2s9JHtVPT57VS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmRlbGV0ZVBpY3R1cmUoKX19IHRpdGxlPSJEZWxldGUgcGljdHVyZSI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTp0cmFzaDIiIGljb25TaXplPSIyMCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgCiAgICAgICAgICAgICR7dGhpcy5pc0xvYWRpbmcmJiF0aGlzLnZhbHVlP0NgCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5IHNob3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxpbnB1dAogICAgICAgICAgdHlwZT0iZmlsZSIKICAgICAgICAgIGNsYXNzPSJoaWRkZW4taW5wdXQiCiAgICAgICAgICBhY2NlcHQ9IiR7dGhpcy5hY2NlcHRlZEZvcm1hdHMuam9pbigiLCIpfSIKICAgICAgICAgIEBjaGFuZ2U9JHt0aGlzLmhhbmRsZUZpbGVTZWxlY3R9CiAgICAgICAgLz4KICAgICAgPC9kaXY+CiAgICBgfWhhbmRsZUNsaWNrKCl7aWYoISh0aGlzLmRpc2FibGVkfHwhdGhpcy5hbGxvd1VwbG9hZCkmJiF0aGlzLnZhbHVlKXt0aGlzLmlzTG9hZGluZz0hMDtsZXQgVT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmhpZGRlbi1pbnB1dCIpLFY9KCk9PntzZXRUaW1lb3V0KCgpPT57KCFVLmZpbGVzfHxVLmZpbGVzLmxlbmd0aD09PTApJiYodGhpcy5pc0xvYWRpbmc9ITEpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsVil9LDMwMCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsViksVS5jbGljaygpfX1oYW5kbGVGaWxlU2VsZWN0KFUpe2xldCBWPVUudGFyZ2V0LFg9Vi5maWxlcz8uWzBdO3RoaXMuaXNMb2FkaW5nPSExLFgmJnRoaXMucHJvY2Vzc0ZpbGUoWCksVi52YWx1ZT0iIn1oYW5kbGVEcmFnT3ZlcihVKXtVLnByZXZlbnREZWZhdWx0KCksIXRoaXMuZGlzYWJsZWQmJnRoaXMuYWxsb3dVcGxvYWQmJih0aGlzLmlzRHJhZ2dpbmc9ITApfWhhbmRsZURyYWdMZWF2ZSgpe3RoaXMuaXNEcmFnZ2luZz0hMX1oYW5kbGVEcm9wKFUpe2lmKFUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmc9ITEsdGhpcy5kaXNhYmxlZHx8IXRoaXMuYWxsb3dVcGxvYWQpcmV0dXJuO2xldCBWPVUuZGF0YVRyYW5zZmVyPy5maWxlc1swXTtWJiZ0aGlzLnByb2Nlc3NGaWxlKFYpfWFzeW5jIHByb2Nlc3NGaWxlKFUpe2lmKCF0aGlzLmFjY2VwdGVkRm9ybWF0cy5pbmNsdWRlcyhVLnR5cGUpKXtjb25zb2xlLmVycm9yKCJJbnZhbGlkIGZpbGUgdHlwZToiLFUudHlwZSk7cmV0dXJufWlmKFUuc2l6ZT50aGlzLm1heEZpbGVTaXplKXtjb25zb2xlLmVycm9yKCJGaWxlIHRvbyBsYXJnZToiLFUuc2l6ZSk7cmV0dXJufWxldCBWPW5ldyBGaWxlUmVhZGVyO1Yub25sb2FkPWFzeW5jIFg9PntsZXQgZGU9WC50YXJnZXQ/LnJlc3VsdDthd2FpdCB0aGlzLm9wZW5Nb2RhbChkZSl9LFYucmVhZEFzRGF0YVVSTChVKX1hc3luYyBvcGVuTW9kYWwoVSl7bGV0IFY9VXx8dGhpcy52YWx1ZTtpZighVil7dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5oaWRkZW4taW5wdXQiKS5jbGljaygpO3JldHVybn10aGlzLm1vZGFsSW5zdGFuY2U9bmV3IGNkZSx0aGlzLm1vZGFsSW5zdGFuY2Uuc2hhcGU9dGhpcy5zaGFwZSx0aGlzLm1vZGFsSW5zdGFuY2UuaW5pdGlhbEltYWdlPVYsdGhpcy5tb2RhbEluc3RhbmNlLm91dHB1dFNpemU9dGhpcy5vdXRwdXRTaXplLHRoaXMubW9kYWxJbnN0YW5jZS5vdXRwdXRRdWFsaXR5PXRoaXMub3V0cHV0UXVhbGl0eSx0aGlzLm1vZGFsSW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcigic2F2ZSIsWD0+e3RoaXMudmFsdWU9WC5kZXRhaWwuY3JvcHBlZEltYWdlLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLm1vZGFsSW5zdGFuY2UpfWRlbGV0ZVBpY3R1cmUoKXt0aGlzLnZhbHVlPSIiLHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMpfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9c2V0VmFsdWUoVSl7dGhpcy52YWx1ZT1VfXN0YXRpY3t0MShpLHIpfX07cmV0dXJuIEw9aX0pKCl9KTt2YXIgdzRyPXAoKCk9PntoMHIoKTtmMHIoKTttMHIoKTtoNmUoKTtnMHIoKTt2NmUoKTtiMHIoKTtNMHIoKTtrMHIoKTtTMHIoKTt6MHIoKTtDMHIoKTtJMHIoKTtOMHIoKTtxMHIoKTtqMHIoKTtWMHIoKTtVMHIoKTttNHIoKTtkZGUoKX0pO3ZhciBNNHIsazRyPXAoKCk9Pnt4ZSgpO000cj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtb0NvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgIH0KICAgIAogICAgLnNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgfQogICAgCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KICAgIAogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vQ29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Ob24tU2VsZWN0YWJsZSBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5CYXNpYyBjaGlwcyB3aXRob3V0IHNlbGVjdGlvbiBjYXBhYmlsaXR5LiBVc2UgZm9yIGRpc3BsYXktb25seSB0YWdzLjwvZGl2PgogICAgICA8ZGVlcy1jaGlwcwogICAgICAgIHNlbGVjdGlvbk1vZGU9Im5vbmUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJzdGF0dXMiLHZhbHVlOiJBY3RpdmUifSx7a2V5OiJ0aWVyIix2YWx1ZToiUHJlbWl1bSJ9LHtrZXk6InJlZ2lvbiIsdmFsdWU6IkVVLVdlc3QifSx7a2V5OiJ0eXBlIix2YWx1ZToiRW50ZXJwcmlzZSJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U2luZ2xlIFNlbGVjdGlvbiBDaGlwczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DbGljayB0byBzZWxlY3Qgb25lIGNoaXAgYXQgYSB0aW1lLiBVc2VmdWwgZm9yIGZpbHRlcnMgYW5kIG9wdGlvbnMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToiYWxsIix2YWx1ZToiQWxsIFByb2plY3RzIn0se2tleToiYWN0aXZlIix2YWx1ZToiQWN0aXZlIn0se2tleToiYXJjaGl2ZWQiLHZhbHVlOiJBcmNoaXZlZCJ9LHtrZXk6ImRyYWZ0cyIsdmFsdWU6IkRyYWZ0cyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TXVsdGlwbGUgU2VsZWN0aW9uIENoaXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNlbGVjdCBtdWx0aXBsZSBjaGlwcyBzaW11bHRhbmVvdXNseS4gR3JlYXQgZm9yIHRhZyBzZWxlY3Rpb24uPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ibXVsdGlwbGUiCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJqcyIsdmFsdWU6IkphdmFTY3JpcHQifSx7a2V5OiJ0cyIsdmFsdWU6IlR5cGVTY3JpcHQifSx7a2V5OiJyZWFjdCIsdmFsdWU6IlJlYWN0In0se2tleToidnVlIix2YWx1ZToiVnVlIn0se2tleToiYW5ndWxhciIsdmFsdWU6IkFuZ3VsYXIifSx7a2V5OiJub2RlIix2YWx1ZToiTm9kZS5qcyJ9XX0KICAgICAgPjwvZGVlcy1jaGlwcz4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UmVtb3ZhYmxlIENoaXBzIHdpdGggS2V5czwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5DaGlwcyB3aXRoIHJlbW92ZSBidXR0b25zIGFuZCBrZXktdmFsdWUgcGFpcnMuIFBlcmZlY3QgZm9yIGR5bmFtaWMgbGlzdHMuPC9kaXY+CiAgICAgIDxkZWVzLWNoaXBzCiAgICAgICAgc2VsZWN0aW9uTW9kZT0ic2luZ2xlIgogICAgICAgIGNoaXBzQXJlUmVtb3ZhYmxlCiAgICAgICAgLnNlbGVjdGFibGVDaGlwcz0ke1t7a2V5OiJlbnYiLHZhbHVlOiJQcm9kdWN0aW9uIn0se2tleToidmVyc2lvbiIsdmFsdWU6IjIuNC4xIn0se2tleToiYnJhbmNoIix2YWx1ZToibWFpbiJ9LHtrZXk6ImF1dGhvciIsdmFsdWU6IkpvaG4gRG9lIn1dfQogICAgICA+PC9kZWVzLWNoaXBzPgogICAgPC9kaXY+CiAgICAKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5NaXhlZCBDb250ZW50IEV4YW1wbGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Q29tYmluaW5nIGRpZmZlcmVudCBjaGlwIHR5cGVzIGZvciBjb21wbGV4IFVJcy48L2Rpdj4KICAgICAgPGRlZXMtY2hpcHMKICAgICAgICBzZWxlY3Rpb25Nb2RlPSJtdWx0aXBsZSIKICAgICAgICBjaGlwc0FyZVJlbW92YWJsZQogICAgICAgIC5zZWxlY3RhYmxlQ2hpcHM9JHtbe2tleToicHJpb3JpdHkiLHZhbHVlOiJIaWdoIn0se2tleToic3RhdHVzIix2YWx1ZToiSW4gUHJvZ3Jlc3MifSx7a2V5OiJidWciLHZhbHVlOiJCdWcifSx7a2V5OiJmZWF0dXJlIix2YWx1ZToiRmVhdHVyZSJ9LHtrZXk6InNwcmludCIsdmFsdWU6IlNwcmludCAyMyJ9LHtrZXk6ImFzc2lnbmVlIix2YWx1ZToiQWxpY2UifV19CiAgICAgID48L2RlZXMtY2hpcHM+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBjaCxJMixTNHIsejRyPXAoKCk9Pnt4ZSgpO0t0KCk7azRyKCk7SmUoKTtjaD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LEkyPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxTNHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWNoaXBzIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooKV0sbD1baih7dHlwZTpCb29sZWFufSldLGQ9W2ooe3R5cGU6QXJyYXl9KV0seD1baigpXSx5PVtqKHt0eXBlOkFycmF5fSldLGNoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0aW9uTW9kZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNlbGVjdGlvbk1vZGUiaW4gTSxnZXQ6TT0+TS5zZWxlY3Rpb25Nb2RlLHNldDooTSxGKT0+e00uc2VsZWN0aW9uTW9kZT1GfX0sbWV0YWRhdGE6en0sbyxzKSxjaCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNoaXBzQXJlUmVtb3ZhYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iY2hpcHNBcmVSZW1vdmFibGUiaW4gTSxnZXQ6TT0+TS5jaGlwc0FyZVJlbW92YWJsZSxzZXQ6KE0sRik9PntNLmNoaXBzQXJlUmVtb3ZhYmxlPUZ9fSxtZXRhZGF0YTp6fSxjLHUpLGNoKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0YWJsZUNoaXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic2VsZWN0YWJsZUNoaXBzImluIE0sZ2V0Ok09Pk0uc2VsZWN0YWJsZUNoaXBzLHNldDooTSxGKT0+e00uc2VsZWN0YWJsZUNoaXBzPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLGNoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic2VsZWN0ZWRDaGlwImluIE0sZ2V0Ok09Pk0uc2VsZWN0ZWRDaGlwLHNldDooTSxGKT0+e00uc2VsZWN0ZWRDaGlwPUZ9fSxtZXRhZGF0YTp6fSx2LGIpLGNoKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2VsZWN0ZWRDaGlwcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNlbGVjdGVkQ2hpcHMiaW4gTSxnZXQ6TT0+TS5zZWxlY3RlZENoaXBzLHNldDooTSxGKT0+e00uc2VsZWN0ZWRDaGlwcz1GfX0sbWV0YWRhdGE6en0sdyxrKSxjaChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp6fSxudWxsLHIpLE89aT10LnZhbHVlLHomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfXN0YXRpYyBkZW1vPU00cjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPUkyKHRoaXMsbywic2luZ2xlIik7Z2V0IHNlbGVjdGlvbk1vZGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc2VsZWN0aW9uTW9kZSh6KXt0aGlzLiNlPXp9I3Q9KEkyKHRoaXMscyksSTIodGhpcyxjLCExKSk7Z2V0IGNoaXBzQXJlUmVtb3ZhYmxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNoaXBzQXJlUmVtb3ZhYmxlKHope3RoaXMuI3Q9en0jcj0oSTIodGhpcyx1KSxJMih0aGlzLGgsW10pKTtnZXQgc2VsZWN0YWJsZUNoaXBzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHNlbGVjdGFibGVDaGlwcyh6KXt0aGlzLiNyPXp9I2k9KEkyKHRoaXMsZiksSTIodGhpcyx2LG51bGwpKTtnZXQgc2VsZWN0ZWRDaGlwKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHNlbGVjdGVkQ2hpcCh6KXt0aGlzLiNpPXp9I2E9KEkyKHRoaXMsYiksSTIodGhpcyx3LFtdKSk7Z2V0IHNlbGVjdGVkQ2hpcHMoKXtyZXR1cm4gdGhpcy4jYX1zZXQgc2VsZWN0ZWRDaGlwcyh6KXt0aGlzLiNhPXp9Y29uc3RydWN0b3IoKXtzdXBlcigpLEkyKHRoaXMsayl9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLm1haW5ib3ggewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIGdhcDogOHB4OwogICAgICB9CgogICAgICAuY2hpcCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMjcyNzJhIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBwYWRkaW5nOiAwcHggMTJweDsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7CiAgICAgIH0KCiAgICAgIC5jaGlwOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiI2QxZDVkYiIsIiM1MjUyNWIiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwOmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQoKICAgICAgLmNoaXAuc2VsZWN0ZWQ6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjMjU2M2ViIiwiIzI1NjNlYiIpfTsKICAgICAgfQoKICAgICAgLmNoaXBLZXkgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMDYpIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIil9OwogICAgICAgIGhlaWdodDogMjBweDsKICAgICAgICBsaW5lLWhlaWdodDogMjBweDsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4OwogICAgICAgIHBhZGRpbmc6IDBweCA4cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIH0KCiAgICAgIC5jaGlwLnNlbGVjdGVkIC5jaGlwS2V5IHsKICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTsKICAgICAgfQoKICAgICAgZGVlcy1pY29uIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgIH0KCiAgICAgIGRlZXMtaWNvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNlZjQ0NDQiLCIjZWY0NDQ0Iil9OwogICAgICB9CgogICAgICAuY2hpcC5zZWxlY3RlZCBkZWVzLWljb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5ib3giPgogICAgICAgICR7dGhpcy5zZWxlY3RhYmxlQ2hpcHMubWFwKHo9PkNgCiAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5zZWxlY3RDaGlwKHopfQogICAgICAgICAgICAgIGNsYXNzPSJjaGlwICR7dGhpcy5pc1NlbGVjdGVkKHopPyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICA+CiAgICAgICAgICAgICAgJHt6LmtleT9DYDxkaXYgY2xhc3M9ImNoaXBLZXkiPiR7ei5rZXl9PC9kaXY+YDpDYGB9ICR7ei52YWx1ZX0KICAgICAgICAgICAgICAke3RoaXMuY2hpcHNBcmVSZW1vdmFibGU/Q2AKICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHtNPT57TS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnJlbW92ZUNoaXAoeil9fQogICAgICAgICAgICAgICAgICAgICAgLmljb249JHsiZmE6eG1hcmsifQogICAgICAgICAgICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgYDpDYGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt9aXNTZWxlY3RlZCh6KXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/dGhpcy5zZWxlY3RlZENoaXA/dGhpcy5pc1NhbWVDaGlwKHRoaXMuc2VsZWN0ZWRDaGlwLHopOiExOnRoaXMuc2VsZWN0ZWRDaGlwcy5zb21lKE09PnRoaXMuaXNTYW1lQ2hpcChNLHopKX1pc1NhbWVDaGlwKHosTSl7cmV0dXJuKHoua2V5JiZNLmtleXx8ei52YWx1ZT09PU0udmFsdWUpJiZ6LmtleT09PU0ua2V5fWFzeW5jIHNlbGVjdENoaXAoeil7dGhpcy5zZWxlY3Rpb25Nb2RlIT09Im5vbmUiJiYodGhpcy5zZWxlY3Rpb25Nb2RlPT09InNpbmdsZSI/dGhpcy5pc1NlbGVjdGVkKHopPyh0aGlzLnNlbGVjdGVkQ2hpcD1udWxsLHRoaXMuc2VsZWN0ZWRDaGlwcz1bXSk6KHRoaXMuc2VsZWN0ZWRDaGlwPXosdGhpcy5zZWxlY3RlZENoaXBzPVt6XSk6dGhpcy5zZWxlY3Rpb25Nb2RlPT09Im11bHRpcGxlIiYmKHRoaXMuaXNTZWxlY3RlZCh6KT90aGlzLnNlbGVjdGVkQ2hpcHM9dGhpcy5zZWxlY3RlZENoaXBzLmZpbHRlcihNPT4hdGhpcy5pc1NhbWVDaGlwKE0seikpOnRoaXMuc2VsZWN0ZWRDaGlwcz1bLi4udGhpcy5zZWxlY3RlZENoaXBzLHpdLHRoaXMucmVxdWVzdFVwZGF0ZSgpKSxjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkQ2hpcHMpKX1yZW1vdmVDaGlwKHope3RoaXMuc2VsZWN0YWJsZUNoaXBzPXRoaXMuc2VsZWN0YWJsZUNoaXBzLmZpbHRlcihNPT4hdGhpcy5pc1NhbWVDaGlwKE0seikpLHRoaXMuc2VsZWN0ZWRDaGlwcz10aGlzLnNlbGVjdGVkQ2hpcHMuZmlsdGVyKE09PiF0aGlzLmlzU2FtZUNoaXAoTSx6KSksdGhpcy5zZWxlY3RlZENoaXAmJnRoaXMuaXNTYW1lQ2hpcCh0aGlzLnNlbGVjdGVkQ2hpcCx6KSYmKHRoaXMuc2VsZWN0ZWRDaGlwPW51bGwpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfXN0YXRpY3tJMihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgQzRyPXAoKCk9Pnt6NHIoKX0pO3ZhciBUNHIsXzRyPXAoKCk9Pnt4ZSgpO3AxKCk7VDRyPSgpPT5DYAogICAgPGRlZXMtZGVtb3dyYXBwZXIgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2xldCB0PWUucXVlcnlTZWxlY3RvcigiI2Rhc2hib2FyZEdyaWQiKSxyPVt7aWQ6Im1ldHJpY3MxIix4OjAseTowLHc6MyxoOjIsdGl0bGU6IlJldmVudWUiLGljb246Imx1Y2lkZTpkb2xsYXJTaWduIixjb250ZW50OkNgCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDMycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij4kMTI0LDU2MzwvZGl2PgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjMjJjNTVlOyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPuKGkSAxMi41JSBmcm9tIGxhc3QgbW9udGg8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSx7aWQ6Im1ldHJpY3MyIix4OjMseTowLHc6MyxoOjIsdGl0bGU6IlVzZXJzIixpY29uOiJsdWNpZGU6dXNlcnMiLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMzJweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsiPjgsMjM0PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iY29sb3I6ICMzYjgyZjY7IGZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogOHB4OyI+4oaRIDUuMiUgZnJvbSBsYXN0IHdlZWs8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfSx7aWQ6ImNoYXJ0MSIseDo2LHk6MCx3OjYsaDo0LHRpdGxlOiJBbmFseXRpY3MiLGljb246Imx1Y2lkZTpsaW5lQ2hhcnQiLGNvbnRlbnQ6Q2AKICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzogMjBweDsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgICAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6ICM3MTcxN2E7Ij4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxpbmVDaGFydCJ9IHN0eWxlPSJmb250LXNpemU6IDQ4cHg7IG1hcmdpbi1ib3R0b206IDE2cHg7Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDxkaXY+Q2hhcnQgdmlzdWFsaXphdGlvbiBhcmVhPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYH1dO3Qud2lkZ2V0cz1yLm1hcCh5PT4oey4uLnl9KSksdC5jZWxsSGVpZ2h0PTgwLHQubWFyZ2luPXt0b3A6MTAscmlnaHQ6MTAsYm90dG9tOjEwLGxlZnQ6MTB9LHQuZW5hYmxlQW5pbWF0aW9uPSEwLHQuc2hvd0dyaWRMaW5lcz0hMTtsZXQgaT10LmdldExheW91dCgpLm1hcCh5PT4oey4uLnl9KSksYT10LndpZGdldHMubWFwKCh5LHcpPT4oe2lkOnkuaWQseDowLHk6dz09PTA/MDp0LndpZGdldHMuc2xpY2UoMCx3KS5yZWR1Y2UoKGssTyk9PmsrTy5oLDApLHc6dC5jb2x1bW5zLGg6eS5ofSkpO3QubGF5b3V0cz17YmFzZTppLG1vYmlsZTphfTtsZXQgbj1lLnF1ZXJ5U2VsZWN0b3IoIiNkYXNoYm9hcmRMYXlvdXRTdGF0dXMiKSxvPSgpPT57bGV0IHk9dC5nZXRMYXlvdXQoKTtuLnRleHRDb250ZW50PWBBY3RpdmUgYnJlYWtwb2ludDogJHt0LmFjdGl2ZUJyZWFrcG9pbnR9IFx1MjAyMiBUaWxlczogJHt5Lmxlbmd0aH1gfSxzPXdpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiA3NjhweCkiKSxsPSgpPT57bGV0IHk9cy5tYXRjaGVzPyJtb2JpbGUiOiJiYXNlIjt0LmFwcGx5QnJlYWtwb2ludExheW91dCh5KSxvKCl9O3R5cGVvZiBzLmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiI/cy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGwpOnMuYWRkTGlzdGVuZXI/LihsKSxsKCk7bGV0IGM9NDtlLnF1ZXJ5U2VsZWN0b3JBbGwoImRlZXMtYnV0dG9uIikuZm9yRWFjaCh5PT57c3dpdGNoKHkudGV4dENvbnRlbnQ/LnRyaW0oKSl7Y2FzZSJUb2dnbGUgQW5pbWF0aW9uIjp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QuZW5hYmxlQW5pbWF0aW9uPSF0LmVuYWJsZUFuaW1hdGlvbn0pO2JyZWFrO2Nhc2UiVG9nZ2xlIEdyaWQgTGluZXMiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5zaG93R3JpZExpbmVzPSF0LnNob3dHcmlkTGluZXN9KTticmVhaztjYXNlIkFkZCBXaWRnZXQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57bGV0IGs9e2lkOmB3aWRnZXQke2MrK31gLHg6MCx5OjAsdzozLGg6MixhdXRvUG9zaXRpb246ITAsdGl0bGU6YFdpZGdldCAke2MtMX1gLGljb246Imx1Y2lkZTpwYWNrYWdlIixjb250ZW50OkNgCiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNvbG9yOiAjNzE3MTdhOyI+TmV3IHdpZGdldCBjb250ZW50PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogOHB4OyBmb250LXNpemU6IDI0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07Ij4ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoxZTMpfTwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIGB9O3QuYWRkV2lkZ2V0KGssITApfSk7YnJlYWs7Y2FzZSJDb21wYWN0IEdyaWQiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5jb21wYWN0KCl9KTticmVhaztjYXNlIlRvZ2dsZSBFZGl0IE1vZGUiOnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCgpPT57dC5lZGl0YWJsZT0hdC5lZGl0YWJsZSx5LnRleHRDb250ZW50PXQuZWRpdGFibGU/IkxvY2sgR3JpZCI6IlVubG9jayBHcmlkIn0pO2JyZWFrO2Nhc2UiUmVzZXQgTGF5b3V0Ijp5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwoKT0+e3QuYXBwbHlCcmVha3BvaW50TGF5b3V0KHQuYWN0aXZlQnJlYWtwb2ludCl9KTticmVhaztkZWZhdWx0OmJyZWFrfX0pO2xldCBkPW51bGwsaD0wLGY9KHksdyk9PntsZXQgaz10LmdldExheW91dCgpO2NvbnNvbGUuZ3JvdXAoYFx1ezFGNTA0fSAke3l9IFtFdmVudCAjJHsrK2h9XWApLGNvbnNvbGUubG9nKCJUaW1lc3RhbXA6IixuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpLGNvbnNvbGUubG9nKCJHcmlkIENvbmZpZ3VyYXRpb246Iix7Y29sdW1uczp0LmNvbHVtbnMsY2VsbEhlaWdodDp0LmNlbGxIZWlnaHQsbWFyZ2luOnQubWFyZ2luLGVkaXRhYmxlOnQuZWRpdGFibGUsYWN0aXZlQnJlYWtwb2ludDp0LmFjdGl2ZUJyZWFrcG9pbnR9KSxjb25zb2xlLmxvZygiQ3VycmVudCBMYXlvdXQ6IixrKSxjb25zb2xlLmxvZygiV2lkZ2V0IENvdW50OiIsay5sZW5ndGgpLGNvbnNvbGUubG9nKCJHcmlkIEJvdW5kczoiLHt0b3RhbFdpZGdldHM6dC53aWRnZXRzLmxlbmd0aCxtYXhZOk1hdGgubWF4KC4uLmsubWFwKE89Pk8ueStPLmgpKSxvY2N1cGllZDprLm1hcChPPT5gJHtPLmlkfTogKCR7Ty54fSwke08ueX0pICR7Ty53fXgke08uaH1gKS5qb2luKCIsICIpfSksdyYmY29uc29sZS5sb2coIkV2ZW50IERldGFpbHM6Iix3KSxjb25zb2xlLmdyb3VwRW5kKCl9LHg9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCk9PntsZXQgeT10LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5wbGFjZWhvbGRlciIpO2lmKHkpe2xldCB3PXtsZWZ0Onkuc3R5bGUubGVmdCx0b3A6eS5zdHlsZS50b3Asd2lkdGg6eS5zdHlsZS53aWR0aCxoZWlnaHQ6eS5zdHlsZS5oZWlnaHR9O2lmKEpTT04uc3RyaW5naWZ5KHcpIT09SlNPTi5zdHJpbmdpZnkoZCkpe2NvbnNvbGUuZ3JvdXAoIlx1ezFGNENEfSBQbGFjZWhvbGRlciBQb3NpdGlvbiBDaGFuZ2VkIiksY29uc29sZS5sb2coIlByZXZpb3VzOiIsZCksY29uc29sZS5sb2coIkN1cnJlbnQ6Iix3KTtsZXQgaz10LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi5ncmlkLWNvbnRhaW5lciIpO2smJmNvbnNvbGUubG9nKCJHcmlkIENvbnRhaW5lciBEaW1lbnNpb25zOiIse3dpZHRoOmsuY2xpZW50V2lkdGgsaGVpZ2h0OmsuY2xpZW50SGVpZ2h0fSksY29uc29sZS5ncm91cEVuZCgpLGQ9d319fSk7dC5zaGFkb3dSb290JiZ4Lm9ic2VydmUodC5zaGFkb3dSb290LHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInN0eWxlIl19KSxmKCJJbml0aWFsIEdyaWQgU3RhdGUiKSx0LmFkZEV2ZW50TGlzdGVuZXIoIndpZGdldC1tb3ZlIix5PT57ZigiV2lkZ2V0IE1vdmUiLHt3aWRnZXQ6eS5kZXRhaWwud2lkZ2V0LGRpc3BsYWNlZDp5LmRldGFpbC5kaXNwbGFjZWQsc3dhcHBlZFdpdGg6eS5kZXRhaWwuc3dhcHBlZFdpdGh9KX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LXJlc2l6ZSIseT0+e2YoIldpZGdldCBSZXNpemUiLHt3aWRnZXQ6eS5kZXRhaWwud2lkZ2V0LGRpc3BsYWNlZDp5LmRldGFpbC5kaXNwbGFjZWQsc3dhcHBlZFdpdGg6eS5kZXRhaWwuc3dhcHBlZFdpdGh9KX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigid2lkZ2V0LXJlbW92ZSIseT0+e2YoIldpZGdldCBSZW1vdmUiLHtyZW1vdmVkV2lkZ2V0OnkuZGV0YWlsLndpZGdldH0pLG8oKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigibGF5b3V0LWNoYW5nZSIsKCk9PntmKCJMYXlvdXQgQ2hhbmdlIiksbygpfSksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIseT0+e2xldCB3PXkudGFyZ2V0LmNsb3Nlc3QoIi53aWRnZXQtaGVhZGVyIiksaz15LnRhcmdldC5jbG9zZXN0KCIucmVzaXplLWhhbmRsZSIpO2lmKHd8fGspe2NvbnNvbGUuZ3JvdXAoYFx1ezFGM0FGfSBJbnRlcmFjdGlvbiBTdGFydGVkOiAke3c/IkRyYWciOiJSZXNpemUifWApLGNvbnNvbGUubG9nKCJUYXJnZXQgV2lkZ2V0OiIseS50YXJnZXQuY2xvc2VzdCgiLndpZGdldCIpPy5nZXRBdHRyaWJ1dGUoImRhdGEtd2lkZ2V0LWlkIikpLGNvbnNvbGUubG9nKCJQb2ludGVyIFBvc2l0aW9uOiIse3g6eS5jbGllbnRYLHk6eS5jbGllbnRZfSksY29uc29sZS5ncm91cEVuZCgpO2xldCBPPU09PntsZXQgRj15LnRhcmdldC5jbG9zZXN0KCIud2lkZ2V0Iik7RiYmY29uc29sZS5sb2coIlx1MjE5NFx1RkUwRiBQb2ludGVyIE1vdmU6Iix7d2lkZ2V0SWQ6Ri5nZXRBdHRyaWJ1dGUoImRhdGEtd2lkZ2V0LWlkIikscG9zaXRpb246e3g6TS5jbGllbnRYLHk6TS5jbGllbnRZfSxkZWx0YTp7eDpNLmNsaWVudFgteS5jbGllbnRYLHk6TS5jbGllbnRZLXkuY2xpZW50WX19KX0sej0oKT0+e2NvbnNvbGUuZ3JvdXAoIlx1ezFGM0MxfSBJbnRlcmFjdGlvbiBFbmRlZCIpLGYoIkZpbmFsIFN0YXRlIEFmdGVyIEludGVyYWN0aW9uIiksY29uc29sZS5ncm91cEVuZCgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixPKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHopfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsTyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix6KX19KTtsZXQgdj10LmFkZFdpZGdldC5iaW5kKHQpO3QuYWRkV2lkZ2V0PSh5LHcpPT57Y29uc29sZS5ncm91cCgiXHUyNzk1IEFkZGluZyBXaWRnZXQiKSxjb25zb2xlLmxvZygiTmV3IFdpZGdldDoiLHkpLGNvbnNvbGUubG9nKCJBdXRvIFBvc2l0aW9uOiIsdyk7bGV0IGs9dih5LHcpO3JldHVybiBmKCJBZnRlciBXaWRnZXQgQWRkZWQiKSxjb25zb2xlLmdyb3VwRW5kKCksa307bGV0IGI9dC5jb21wYWN0LmJpbmQodCk7dC5jb21wYWN0PXk9Pntjb25zb2xlLmdyb3VwKCJcdXsxRjVEQ31cdUZFMEYgQ29tcGFjdGluZyBHcmlkIiksY29uc29sZS5sb2coIkRpcmVjdGlvbjoiLHl8fCJ2ZXJ0aWNhbCIpLGYoIkJlZm9yZSBDb21wYWN0Iik7bGV0IHc9Yih5KTtyZXR1cm4gZigiQWZ0ZXIgQ29tcGFjdCIpLGNvbnNvbGUuZ3JvdXBFbmQoKSx3fSxvKCl9fT4KICAgICAgPHN0eWxlPgogICAgICAgICR7b2VgCiAgICAgICAgICAuZGVtb0JveCB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmNGY0ZjUiLCIjMDkwOTBiIil9OwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDI0cHg7CiAgICAgICAgICB9CgogICAgICAgICAgLmRlbW8tY29udHJvbHMgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGdhcDogMTJweDsKICAgICAgICAgIH0KCiAgICAgICAgICAuZGVtby1jb250cm9scyBkZWVzLWJ1dHRvbiB7CiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgICAgfQoKICAgICAgICAgIC5ncmlkLWNvbnRhaW5lci13cmFwcGVyIHsKICAgICAgICAgICAgZmxleDogMTsKICAgICAgICAgICAgbWluLWhlaWdodDogNjAwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIH0KCiAgICAgICAgICAuaW5mbyB7CiAgICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBnYXA6IDZweDsKICAgICAgICAgIH0KCiAgICAgICAgICAjZGFzaGJvYXJkTGF5b3V0U3RhdHVzIHsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIH0KICAgICAgICBgfQogICAgICA8L3N0eWxlPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vQm94Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRyb2xzIj4KICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQW5pbWF0aW9uOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgQW5pbWF0aW9uPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJEaXNwbGF5OiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgR3JpZCBMaW5lczwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2RlZXMtYnV0dG9uLWdyb3VwPgoKICAgICAgICAgIDxkZWVzLWJ1dHRvbi1ncm91cCBsYWJlbD0iQWN0aW9uczoiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+QWRkIFdpZGdldDwvZGVlcy1idXR0b24+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Db21wYWN0IEdyaWQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+UmVzZXQgTGF5b3V0PC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CgogICAgICAgICAgPGRlZXMtYnV0dG9uLWdyb3VwIGxhYmVsPSJNb2RlOiI+CiAgICAgICAgICAgIDxkZWVzLWJ1dHRvbj5Ub2dnbGUgRWRpdCBNb2RlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgIDwvZGVlcy1idXR0b24tZ3JvdXA+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWQtY29udGFpbmVyLXdyYXBwZXIiPgogICAgICAgICAgPGRlZXMtZGFzaGJvYXJkZ3JpZCBpZD0iZGFzaGJvYXJkR3JpZCI+PC9kZWVzLWRhc2hib2FyZGdyaWQ+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImluZm8iPgogICAgICAgICAgPGRpdj5EcmFnIHRvIHJlcG9zaXRpb24sIHJlc2l6ZSBmcm9tIGhhbmRsZXMsIG9yIHJpZ2h0LWNsaWNrIGEgaGVhZGVyIHRvIGRlbGV0ZSBhIHRpbGUuPC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJkYXNoYm9hcmRMYXlvdXRTdGF0dXMiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICBgfSk7dmFyIEw0cixBNHI9cCgoKT0+e3hlKCk7TDRyPVttLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAuZ3JpZC1jb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWxsLWNoYW5nZTogYXV0bzsKICAgICAgfQogICAgICAKICAgICAgOmhvc3QoW2VuYWJsZWFuaW1hdGlvbl0pIC5ncmlkLXdpZGdldCB7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0LmRyYWdnaW5nIHsKICAgICAgICB6LWluZGV4OiAxMDAwOwogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgICBvcGFjaXR5OiAwLjg7CiAgICAgICAgY3Vyc29yOiBncmFiYmluZzsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC13aWRnZXQucGxhY2Vob2xkZXIgewogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KICAgICAgCiAgICAgIC5ncmlkLXdpZGdldC5wbGFjZWhvbGRlciAud2lkZ2V0LWNvbnRlbnQgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSIsInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIil9OwogICAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0LnJlc2l6aW5nIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzA5MDkwYiIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIGJveC1zaGFkb3c6ICR7bS5iZFRoZW1lKCIwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpIiwiMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0OmhvdmVyIC53aWRnZXQtY29udGVudCB7CiAgICAgICAgYm94LXNoYWRvdzogJHttLmJkVGhlbWUoIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KSIsIjAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjQpIil9OwogICAgICB9CgogICAgICAuZ3JpZC13aWRnZXQuZHJhZ2dpbmcgLndpZGdldC1jb250ZW50IHsKICAgICAgICBib3gtc2hhZG93OiAke20uYmRUaGVtZSgiMCAxNnB4IDQ4cHggcmdiYSgwLCAwLCAwLCAwLjI1KSIsIjAgMTZweCA0OHB4IHJnYmEoMCwgMCwgMCwgMC42KSIpfTsKICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOwogICAgICB9CgogICAgICAud2lkZ2V0LWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOWZhZmIiLCIjMGEwYTBhIil9OwogICAgICAgIGN1cnNvcjogZ3JhYjsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQogICAgICAKICAgICAgLndpZGdldC1oZWFkZXI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjRmNGY1IiwiIzE4MTgxYiIpfTsKICAgICAgfQogICAgICAKICAgICAgLndpZGdldC1oZWFkZXI6YWN0aXZlIHsKICAgICAgICBjdXJzb3I6IGdyYWJiaW5nOwogICAgICB9CgogICAgICAud2lkZ2V0LWhlYWRlci5sb2NrZWQgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQogICAgICAKICAgICAgLndpZGdldC1oZWFkZXIubG9ja2VkOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y5ZmFmYiIsIiMwYTBhMGEiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtaGVhZGVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQtYm9keSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LWJvZHkuaGFzLWhlYWRlciB7CiAgICAgICAgdG9wOiA0NXB4OwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIG9wYWNpdHk6IDAuMzsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtZSB7CiAgICAgICAgY3Vyc29yOiBldy1yZXNpemU7CiAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgcmlnaHQ6IC02cHg7CiAgICAgICAgdG9wOiAxMCU7CiAgICAgICAgaGVpZ2h0OiA4MCU7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXMgewogICAgICAgIGN1cnNvcjogbnMtcmVzaXplOwogICAgICAgIGhlaWdodDogMTJweDsKICAgICAgICB3aWR0aDogODAlOwogICAgICAgIGJvdHRvbTogLTZweDsKICAgICAgICBsZWZ0OiAxMCU7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlIHsKICAgICAgICBjdXJzb3I6IHNlLXJlc2l6ZTsKICAgICAgICB3aWR0aDogMjBweDsKICAgICAgICBoZWlnaHQ6IDIwcHg7CiAgICAgICAgcmlnaHQ6IC0ycHg7CiAgICAgICAgYm90dG9tOiAtMnB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiA0cHg7CiAgICAgICAgYm90dG9tOiA0cHg7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDZweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiM3MTcxN2EiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgfQoKICAgICAgLmdyaWQtd2lkZ2V0OmhvdmVyIC5yZXNpemUtaGFuZGxlLXNlIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlOmhvdmVyIHsKICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgICAgCiAgICAgIC5yZXNpemUtaGFuZGxlLXNlOmhvdmVyOjphZnRlciB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIH0KCiAgICAgIC5ncmlkLXBsYWNlaG9sZGVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICAgIG9wYWNpdHk6IDAuMTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyOiAycHggZGFzaGVkICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogNDAwcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiIzcxNzE3YSIpfTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMzJweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB6LWluZGV4OiAtMTsKICAgICAgfQogICAgICAKICAgICAgLmdyaWQtbGluZS12ZXJ0aWNhbCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgd2lkdGg6IDFweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICB9CiAgICAgIAogICAgICAuZ3JpZC1saW5lLWhvcml6b250YWwgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgICBvcGFjaXR5OiAwLjM7CiAgICAgIH0KICBgXX0pO3ZhciBFOGEsdWRlLCQ0cixJNHIsRDRyLEZiLEU0cix1WHIscFhyLHBkZSxqNCxQNHIsTjRyLEY0cj1wKCgpPT57RThhPTEwLHVkZT1lPT57aWYodHlwZW9mIGU9PSJudW1iZXIiKXJldHVybntob3Jpem9udGFsOmUsdmVydGljYWw6ZSx0b3A6ZSxyaWdodDplLGJvdHRvbTplLGxlZnQ6ZX07bGV0IHQ9e3RvcDplLnRvcD8/MTAscmlnaHQ6ZS5yaWdodD8/MTAsYm90dG9tOmUuYm90dG9tPz8xMCxsZWZ0OmUubGVmdD8/MTB9O3JldHVybnsuLi50LGhvcml6b250YWw6KHQubGVmdCt0LnJpZ2h0KS8yLHZlcnRpY2FsOih0LnRvcCt0LmJvdHRvbSkvMn19LCQ0cj0oZSx0LHIsaSxhKT0+e2xldCBuPXIuaG9yaXpvbnRhbCoodCsxKSxvPU1hdGgubWF4KGUtbiwwKSxzPXQ+MD9vL3Q6MCxsPWE9PT0iYXV0byI/czppO3JldHVybntjb250YWluZXJXaWR0aDplLGNlbGxXaWR0aFB4OnMsbWFyZ2luSG9yaXpvbnRhbFB4OnIuaG9yaXpvbnRhbCxjZWxsSGVpZ2h0UHg6bCxtYXJnaW5WZXJ0aWNhbFB4OnIudmVydGljYWx9fSxJNHI9KGUsdCxyKT0+e2lmKGUubGVuZ3RoPT09MClyZXR1cm4gMDtsZXQgaT1NYXRoLm1heCguLi5lLm1hcChhPT5hLnkrYS5oKSwwKTtyZXR1cm4gaSpyKyhpKzEpKnQudmVydGljYWx9LEQ0cj0oZSx0LHIsaSxhKT0+dDxlLngrZS53JiZ0K2k+ZS54JiZyPGUueStlLmgmJnIrYT5lLnksRmI9KGUsdCxyLGksYT10Lncsbj10LmgpPT5lLmZpbHRlcihvPT5vLmlkPT09dC5pZD8hMTpENHIobyxyLGksYSxuKSksRTRyPShlLHQscixpKT0+RmIoZSx0LHIsaSkubGVuZ3RoPjAsdVhyPWU9Pih7Li4uZX0pLHBYcj1lPT5lLm1hcCh1WHIpLHBkZT0oZSx0LHIsaSk9Pntmb3IobGV0IG49MDtuPDIwMDtuKyspZm9yKGxldCBvPTA7bzw9aS10O28rKylpZighZS5zb21lKGw9PkQ0cihsLG8sbix0LHIpKSlyZXR1cm57eDpvLHk6bn07cmV0dXJue3g6MCx5OmUucmVkdWNlKChuLG8pPT5NYXRoLm1heChuLG8ueStvLmgpLDApfX0sajQ9KGUsdCxyLGksYSk9PntsZXQgbj1wWHIoZSksbz1uLmZpbmQoaD0+aC5pZD09PXQpLHM9ZS5maW5kKGg9PmguaWQ9PT10KTtpZighb3x8IXMpcmV0dXJuIG51bGw7bGV0IGw9e3g6ci54LHk6ci55LHc6ci53Pz9vLncsaDpyLmg/P28uaH07by54PWwueCxvLnk9bC55LG8udz1sLncsby5oPWwuaDtsZXQgYz1GYihuLG8sbC54LGwueSxsLncsbC5oKTtpZihjLmxlbmd0aD09PTApcmV0dXJue3dpZGdldHM6bixtb3ZlZFdpZGdldHM6W28uaWRdfTtpZihjLmxlbmd0aD09PTEpe2xldCBoPWNbMF07aWYoIWgubG9ja2VkJiYhaC5ub01vdmUmJmgudz09PW8udyYmaC5oPT09by5oKXtsZXQgZj1uLmZpbmQoeD0+eC5pZD09PWguaWQpO2lmKGYpe2xldCB4PXMsdj17eDpmLngseTpmLnl9O2lmKGYueD14LngsZi55PXgueSxGYihuLG8sby54LG8ueSxvLncsby5oKS5sZW5ndGg9PT0wJiZGYihuLGYsZi54LGYueSxmLncsZi5oKS5sZW5ndGg9PT0wKXJldHVybnt3aWRnZXRzOm4sbW92ZWRXaWRnZXRzOltvLmlkLGYuaWRdLHN3YXBwZWRXaXRoOmYuaWR9O2YueD12LngsZi55PXYueX19fWxldCB1PW5ldyBTZXQoW28uaWRdKTtmb3IobGV0IGggb2YgYyl7aWYoaC5sb2NrZWR8fGgubm9Nb3ZlKXJldHVybiBudWxsO2xldCBmPW4uZmluZChiPT5iLmlkPT09aC5pZCk7aWYoIWYpY29udGludWU7bGV0IHg9bi5maWx0ZXIoYj0+Yi5pZCE9PWguaWQpLHY9cGRlKHgsZi53LGYuaCxpKTtmLng9di54LGYueT12LnksdS5hZGQoZi5pZCl9cmV0dXJuIEZiKG4sbyxvLngsby55LG8udyxvLmgpLmxlbmd0aD4wP251bGw6e3dpZGdldHM6bixtb3ZlZFdpZGdldHM6QXJyYXkuZnJvbSh1KX19LFA0cj0oZSx0PSJ2ZXJ0aWNhbCIpPT57bGV0IHI9Wy4uLmVdLnNvcnQoKGksYSk9PnQ9PT0idmVydGljYWwiP2kueSE9PWEueT9pLnktYS55OmkueC1hLng6aS54IT09YS54P2kueC1hLng6aS55LWEueSk7Zm9yKGxldCBpIG9mIHIpaWYoIShpLmxvY2tlZHx8aS5ub01vdmUpKWlmKHQ9PT0idmVydGljYWwiKWZvcig7aS55PjAmJiFFNHIoZSxpLGkueCxpLnktMSk7KWkueS09MTtlbHNlIGZvcig7aS54PjAmJiFFNHIoZSxpLGkueC0xLGkueSk7KWkueC09MX0sTjRyPShlLHQpPT5lLm1hcChyPT57bGV0IGk9dC5maW5kKGE9PmEuaWQ9PT1yLmlkKTtyZXR1cm4gaT97Li4uciwuLi5pfTpyfSl9KTt2YXIgTzRyLFI0cixCNHI9cCgoKT0+e080cj0oe3BvaW50ZXI6ZSxjb250YWluZXJSZWN0OnQsbWV0cmljczpyLGNvbHVtbnM6aSx3aWRnZXQ6YSxydGw6bixkcmFnT2Zmc2V0WDpvPTAsZHJhZ09mZnNldFk6cz0wfSk9PntsZXQgbD1lLmNsaWVudFgtdC5sZWZ0LW8sYz1lLmNsaWVudFktdC50b3Atcyx1PXIubWFyZ2luSG9yaXpvbnRhbFB4LGQ9ci5tYXJnaW5WZXJ0aWNhbFB4LGg9ci5jZWxsV2lkdGhQeCxmPXIuY2VsbEhlaWdodFB4LHg9KHosTSxGKT0+TWF0aC5tYXgoTSxNYXRoLm1pbihGLHopKSx2PXgobC11LDAsdC53aWR0aC11KSxiPXgoYy1kLDAsTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSx5PWgrdSx3PWYrZCxrPU1hdGgucm91bmQodi95KTtuJiYoaz1pLWEudy1rKSxrPXgoaywwLGktYS53KTtsZXQgTz14KE1hdGgucm91bmQoYi93KSwwLE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtyZXR1cm57eDprLHk6T319LFI0cj0oe3BvaW50ZXI6ZSxjb250YWluZXJSZWN0OnQsbWV0cmljczpyLHN0YXJ0V2lkdGg6aSxzdGFydEhlaWdodDphLHN0YXJ0UG9pbnRlcjpuLGhhbmRsZXI6byx3aWRnZXQ6cyxjb2x1bW5zOmx9KT0+e2xldCBjPWUuY2xpZW50WC1uLmNsaWVudFgsdT1lLmNsaWVudFktbi5jbGllbnRZLGQ9aSxoPWEsZj1yLmNlbGxXaWR0aFB4K3IubWFyZ2luSG9yaXpvbnRhbFB4LHg9ci5jZWxsSGVpZ2h0UHgrci5tYXJnaW5WZXJ0aWNhbFB4O2lmKG8uaW5jbHVkZXMoImUiKSl7bGV0IHk9TWF0aC5yb3VuZChjL2YpO2Q9aSt5fWlmKG8uaW5jbHVkZXMoInMiKSl7bGV0IHk9TWF0aC5yb3VuZCh1L3gpO2g9YSt5fWxldCB2PU1hdGgubWF4KHMubWluV3x8MSxNYXRoLm1pbihkLHMubWF4V3x8bC1zLngpKSxiPU1hdGgubWF4KHMubWluSHx8MSxNYXRoLm1pbihoLHMubWF4SHx8TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpKTtyZXR1cm57d2lkdGg6dixoZWlnaHQ6Yn19fSk7dmFyIEg0cixxNHI9cCgoKT0+e01pKCk7d2koKTtINHI9KHt3aWRnZXQ6ZSxob3N0OnQsZXZlbnQ6cn0pPT57bGV0IGk9W3tuYW1lOiJEZWxldGUgdGlsZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjphc3luYygpPT4odC5yZW1vdmVXaWRnZXQoZS5pZCksbnVsbCl9XTtTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhyLGkpfX0pO3ZhciBQYSxDcixqNHIsVjRyPXAoKCk9Pnt4ZSgpO29yKCk7TWkoKTtfNHIoKTtBNHIoKTtGNHIoKTtCNHIoKTtxNHIoKTtQYT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LENyPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxqNHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWRhc2hib2FyZGdyaWQiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXSxxLEI9W10sRz1bXSxlZSxQPVtdLGdlPVtdLHdlLEk9W10sbmU9W10sa2UsWT1bXSxBPVtdLEwsVT1bXSxWPVtdLFgsZGU9W10sdmU9W107dmFyIExlPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ooe3R5cGU6T2JqZWN0fSldLHg9W2ooe3R5cGU6TnVtYmVyfSldLHk9W2ooe3R5cGU6Qm9vbGVhbn0pXSxPPVtqKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMH0pXSxGPVtqKHt0eXBlOlN0cmluZ30pXSxSPVtqKHt0eXBlOkJvb2xlYW59KV0sJD1baih7dHlwZTpCb29sZWFufSldLHE9W2ooe2F0dHJpYnV0ZTohMX0pXSxlZT1baih7dHlwZTpTdHJpbmd9KV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxYPVtmZSgpXSxQYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndpZGdldHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJ3aWRnZXRzImluIEgsZ2V0Okg9Pkgud2lkZ2V0cyxzZXQ6KEgsdGUpPT57SC53aWRnZXRzPXRlfX0sbWV0YWRhdGE6V30sbyxzKSxQYSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImNlbGxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJjZWxsSGVpZ2h0ImluIEgsZ2V0Okg9PkguY2VsbEhlaWdodCxzZXQ6KEgsdGUpPT57SC5jZWxsSGVpZ2h0PXRlfX0sbWV0YWRhdGE6V30sYyx1KSxQYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hcmdpbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+Im1hcmdpbiJpbiBILGdldDpIPT5ILm1hcmdpbixzZXQ6KEgsdGUpPT57SC5tYXJnaW49dGV9fSxtZXRhZGF0YTpXfSxoLGYpLFBhKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29sdW1ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImNvbHVtbnMiaW4gSCxnZXQ6SD0+SC5jb2x1bW5zLHNldDooSCx0ZSk9PntILmNvbHVtbnM9dGV9fSxtZXRhZGF0YTpXfSx2LGIpLFBhKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZWRpdGFibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJlZGl0YWJsZSJpbiBILGdldDpIPT5ILmVkaXRhYmxlLHNldDooSCx0ZSk9PntILmVkaXRhYmxlPXRlfX0sbWV0YWRhdGE6V30sdyxrKSxQYSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVuYWJsZUFuaW1hdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImVuYWJsZUFuaW1hdGlvbiJpbiBILGdldDpIPT5ILmVuYWJsZUFuaW1hdGlvbixzZXQ6KEgsdGUpPT57SC5lbmFibGVBbmltYXRpb249dGV9fSxtZXRhZGF0YTpXfSx6LE0pLFBhKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY2VsbEhlaWdodFVuaXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJjZWxsSGVpZ2h0VW5pdCJpbiBILGdldDpIPT5ILmNlbGxIZWlnaHRVbml0LHNldDooSCx0ZSk9PntILmNlbGxIZWlnaHRVbml0PXRlfX0sbWV0YWRhdGE6V30sRCxOKSxQYSh0aGlzLG51bGwsUix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJ0bCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InJ0bCJpbiBILGdldDpIPT5ILnJ0bCxzZXQ6KEgsdGUpPT57SC5ydGw9dGV9fSxtZXRhZGF0YTpXfSxfLFMpLFBhKHRoaXMsbnVsbCwkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0dyaWRMaW5lcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InNob3dHcmlkTGluZXMiaW4gSCxnZXQ6SD0+SC5zaG93R3JpZExpbmVzLHNldDooSCx0ZSk9PntILnNob3dHcmlkTGluZXM9dGV9fSxtZXRhZGF0YTpXfSxULEUpLFBhKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGF5b3V0cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImxheW91dHMiaW4gSCxnZXQ6SD0+SC5sYXlvdXRzLHNldDooSCx0ZSk9PntILmxheW91dHM9dGV9fSxtZXRhZGF0YTpXfSxCLEcpLFBhKHRoaXMsbnVsbCxlZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZUJyZWFrcG9pbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJhY3RpdmVCcmVha3BvaW50ImluIEgsZ2V0Okg9PkguYWN0aXZlQnJlYWtwb2ludCxzZXQ6KEgsdGUpPT57SC5hY3RpdmVCcmVha3BvaW50PXRlfX0sbWV0YWRhdGE6V30sUCxnZSksUGEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGxhY2Vob2xkZXJQb3NpdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InBsYWNlaG9sZGVyUG9zaXRpb24iaW4gSCxnZXQ6SD0+SC5wbGFjZWhvbGRlclBvc2l0aW9uLHNldDooSCx0ZSk9PntILnBsYWNlaG9sZGVyUG9zaXRpb249dGV9fSxtZXRhZGF0YTpXfSxJLG5lKSxQYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtZXRyaWNzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4ibWV0cmljcyJpbiBILGdldDpIPT5ILm1ldHJpY3Msc2V0OihILHRlKT0+e0gubWV0cmljcz10ZX19LG1ldGFkYXRhOld9LFksQSksUGEodGhpcyxudWxsLEwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJyZXNvbHZlZE1hcmdpbnMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJyZXNvbHZlZE1hcmdpbnMiaW4gSCxnZXQ6SD0+SC5yZXNvbHZlZE1hcmdpbnMsc2V0OihILHRlKT0+e0gucmVzb2x2ZWRNYXJnaW5zPXRlfX0sbWV0YWRhdGE6V30sVSxWKSxQYSh0aGlzLG51bGwsWCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InByZXZpZXdXaWRnZXRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4icHJldmlld1dpZGdldHMiaW4gSCxnZXQ6SD0+SC5wcmV2aWV3V2lkZ2V0cyxzZXQ6KEgsdGUpPT57SC5wcmV2aWV3V2lkZ2V0cz10ZX19LG1ldGFkYXRhOld9LGRlLHZlKSxQYShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpXfSxudWxsLHIpLExlPWk9dC52YWx1ZSxXJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOld9KX1zdGF0aWMgZGVtbz1UNHI7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTtzdGF0aWMgc3R5bGVzPUw0cjsjZT1Dcih0aGlzLG8sW10pO2dldCB3aWRnZXRzKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHdpZGdldHMoVyl7dGhpcy4jZT1XfSN0PShDcih0aGlzLHMpLENyKHRoaXMsYyw4MCkpO2dldCBjZWxsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNlbGxIZWlnaHQoVyl7dGhpcy4jdD1XfSNyPShDcih0aGlzLHUpLENyKHRoaXMsaCwxMCkpO2dldCBtYXJnaW4oKXtyZXR1cm4gdGhpcy4jcn1zZXQgbWFyZ2luKFcpe3RoaXMuI3I9V30jaT0oQ3IodGhpcyxmKSxDcih0aGlzLHYsMTIpKTtnZXQgY29sdW1ucygpe3JldHVybiB0aGlzLiNpfXNldCBjb2x1bW5zKFcpe3RoaXMuI2k9V30jYT0oQ3IodGhpcyxiKSxDcih0aGlzLHcsITApKTtnZXQgZWRpdGFibGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgZWRpdGFibGUoVyl7dGhpcy4jYT1XfSNuPShDcih0aGlzLGspLENyKHRoaXMseiwhMCkpO2dldCBlbmFibGVBbmltYXRpb24oKXtyZXR1cm4gdGhpcy4jbn1zZXQgZW5hYmxlQW5pbWF0aW9uKFcpe3RoaXMuI249V30jbz0oQ3IodGhpcyxNKSxDcih0aGlzLEQsInB4IikpO2dldCBjZWxsSGVpZ2h0VW5pdCgpe3JldHVybiB0aGlzLiNvfXNldCBjZWxsSGVpZ2h0VW5pdChXKXt0aGlzLiNvPVd9I3M9KENyKHRoaXMsTiksQ3IodGhpcyxfLCExKSk7Z2V0IHJ0bCgpe3JldHVybiB0aGlzLiNzfXNldCBydGwoVyl7dGhpcy4jcz1XfSNsPShDcih0aGlzLFMpLENyKHRoaXMsVCwhMSkpO2dldCBzaG93R3JpZExpbmVzKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dHcmlkTGluZXMoVyl7dGhpcy4jbD1XfSNjPShDcih0aGlzLEUpLENyKHRoaXMsQix2b2lkIDApKTtnZXQgbGF5b3V0cygpe3JldHVybiB0aGlzLiNjfXNldCBsYXlvdXRzKFcpe3RoaXMuI2M9V30jZD0oQ3IodGhpcyxHKSxDcih0aGlzLFAsImJhc2UiKSk7Z2V0IGFjdGl2ZUJyZWFrcG9pbnQoKXtyZXR1cm4gdGhpcy4jZH1zZXQgYWN0aXZlQnJlYWtwb2ludChXKXt0aGlzLiNkPVd9I3U9KENyKHRoaXMsZ2UpLENyKHRoaXMsSSxudWxsKSk7Z2V0IHBsYWNlaG9sZGVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy4jdX1zZXQgcGxhY2Vob2xkZXJQb3NpdGlvbihXKXt0aGlzLiN1PVd9I3A9KENyKHRoaXMsbmUpLENyKHRoaXMsWSxudWxsKSk7Z2V0IG1ldHJpY3MoKXtyZXR1cm4gdGhpcy4jcH1zZXQgbWV0cmljcyhXKXt0aGlzLiNwPVd9I2g9KENyKHRoaXMsQSksQ3IodGhpcyxVLG51bGwpKTtnZXQgcmVzb2x2ZWRNYXJnaW5zKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHJlc29sdmVkTWFyZ2lucyhXKXt0aGlzLiNoPVd9I2Y9KENyKHRoaXMsViksQ3IodGhpcyxkZSxudWxsKSk7Z2V0IHByZXZpZXdXaWRnZXRzKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHByZXZpZXdXaWRnZXRzKFcpe3RoaXMuI2Y9V31jb250YWluZXJCb3VuZHM9KENyKHRoaXMsdmUpLG51bGwpO2RyYWdTdGF0ZT1udWxsO3Jlc2l6ZVN0YXRlPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJhY3Rpb25BY3RpdmU9ITE7YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY29tcHV0ZU1ldHJpY3MoKSx0aGlzLm9ic2VydmVSZXNpemUoKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5kaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKSx0aGlzLnJlbGVhc2VQb2ludGVyRXZlbnRzKCl9dXBkYXRlZChXKXsoVy5oYXMoIm1hcmdpbiIpfHxXLmhhcygiY29sdW1ucyIpfHxXLmhhcygiY2VsbEhlaWdodCIpfHxXLmhhcygiY2VsbEhlaWdodFVuaXQiKSkmJnRoaXMuY29tcHV0ZU1ldHJpY3MoKSxXLmhhcygid2lkZ2V0cyIpJiYhdGhpcy5pbnRlcmFjdGlvbkFjdGl2ZSYmdGhpcy5ub3RpZnlMYXlvdXRDaGFuZ2UoKX1yZW5kZXIoKXtsZXQgVz10aGlzLndpZGdldHM7aWYoVy5sZW5ndGg9PT0wKXJldHVybiBDYAogICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmxheW91dEdyaWQifT48L2RlZXMtaWNvbj4KICAgICAgICAgIDxkaXY+Tm8gd2lkZ2V0cyBjb25maWd1cmVkPC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDE0cHg7IG1hcmdpbi10b3A6IDhweDsiPkFkZCB3aWRnZXRzIHRvIHBvcHVsYXRlIHRoZSBkYXNoYm9hcmQ8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgYDtsZXQgSD10aGlzLmVuc3VyZU1ldHJpY3MoKSx0ZT10aGlzLnJlc29sdmVkTWFyZ2lucz8/dWRlKHRoaXMubWFyZ2luKSxiZT1ILmNlbGxIZWlnaHRQeCx1ZT10aGlzLnByZXZpZXdXaWRnZXRzPz90aGlzLndpZGdldHMsQ2U9STRyKHVlLHRlLGJlKSxoZT10aGlzLnByZXZpZXdXaWRnZXRzP25ldyBNYXAodGhpcy5wcmV2aWV3V2lkZ2V0cy5tYXAoaWU9PltpZS5pZCxpZV0pKTpudWxsO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJncmlkLWNvbnRhaW5lciIgc3R5bGU9ImhlaWdodDogJHtDZX1weDsiPgogICAgICAgICR7dGhpcy5zaG93R3JpZExpbmVzP3RoaXMucmVuZGVyR3JpZExpbmVzKEgsQ2UpOm51bGx9CiAgICAgICAgJHtXLm1hcChpZT0+dGhpcy5yZW5kZXJXaWRnZXQoaWUsSCx0ZSxoZSkpfQogICAgICAgICR7dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uP3RoaXMucmVuZGVyUGxhY2Vob2xkZXIoSCx0ZSk6bnVsbH0KICAgICAgPC9kaXY+CiAgICBgfXJlbmRlckdyaWRMaW5lcyhXLEgpe2xldCB0ZT1bXSxiZT1bXSx1ZT1XLmNlbGxXaWR0aFB4K1cubWFyZ2luSG9yaXpvbnRhbFB4LENlPVcuY2VsbEhlaWdodFB4K1cubWFyZ2luVmVydGljYWxQeDtmb3IobGV0IGllPTA7aWU8PXRoaXMuY29sdW1ucztpZSsrKXtsZXQgU2U9aWUqdWUrVy5tYXJnaW5Ib3Jpem9udGFsUHgsSWU9dGhpcy5weFRvUGVyY2VudChTZSxXLmNvbnRhaW5lcldpZHRoKTt0ZS5wdXNoKENgPGRpdiBjbGFzcz0iZ3JpZC1saW5lLXZlcnRpY2FsIiBzdHlsZT0ibGVmdDogJHtJZX0lOyI+PC9kaXY+YCl9bGV0IGhlPU1hdGguY2VpbChIL0NlKTtmb3IobGV0IGllPTA7aWU8PWhlO2llKyspe2xldCBTZT1pZSpDZTtiZS5wdXNoKENgPGRpdiBjbGFzcz0iZ3JpZC1saW5lLWhvcml6b250YWwiIHN0eWxlPSJ0b3A6ICR7U2V9cHg7Ij48L2Rpdj5gKX1yZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iZ3JpZC1saW5lcyI+CiAgICAgICAgJHt0ZX0KICAgICAgICAke2JlfQogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyV2lkZ2V0KFcsSCx0ZSxiZSl7bGV0IHVlPXRoaXMuZHJhZ1N0YXRlPy53aWRnZXRJZD09PVcuaWQsQ2U9dGhpcy5yZXNpemVTdGF0ZT8ud2lkZ2V0SWQ9PT1XLmlkLGhlPVcubG9ja2VkfHwhdGhpcy5lZGl0YWJsZSxpZT1iZT8uZ2V0KFcuaWQpPz9udWxsLFNlPXVlP1c6aWU/P1csSWU9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdChTZSxILHRlKSxaZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0IixLPXRoaXMucHhUb1BlcmNlbnQoSWUubGVmdCxILmNvbnRhaW5lcldpZHRoKSxaPXRoaXMucHhUb1BlcmNlbnQoSWUud2lkdGgsSC5jb250YWluZXJXaWR0aCksSj0iIjtpZih1ZSYmdGhpcy5kcmFnU3RhdGU/LmN1cnJlbnRQb2ludGVyKXtsZXQgbWU9dGhpcy5kcmFnU3RhdGUuY3VycmVudFBvaW50ZXIsRWU9dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksVWU9bWUuY2xpZW50WC1FZS5sZWZ0LXRoaXMuZHJhZ1N0YXRlLm9mZnNldFgtSWUubGVmdCxNdD1tZS5jbGllbnRZLUVlLnRvcC10aGlzLmRyYWdTdGF0ZS5vZmZzZXRZLUllLnRvcDtKPWB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgke1VlfXB4LCAke010fXB4KTtgfXJldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9ImdyaWQtd2lkZ2V0ICR7dWU/ImRyYWdnaW5nIjoiIn0gJHtDZT8icmVzaXppbmciOiIifSIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke1plfTogJHtLfSU7CiAgICAgICAgICB0b3A6ICR7SWUudG9wfXB4OwogICAgICAgICAgd2lkdGg6ICR7Wn0lOwogICAgICAgICAgaGVpZ2h0OiAke0llLmhlaWdodH1weDsKICAgICAgICAgICR7Sn0KICAgICAgICAiCiAgICAgICAgZGF0YS13aWRnZXQtaWQ9JHtXLmlkfQogICAgICA+CiAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWNvbnRlbnQiPgogICAgICAgICAgJHtXLnRpdGxlP0NgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ3aWRnZXQtaGVhZGVyICR7aGU/ImxvY2tlZCI6IiJ9IgogICAgICAgICAgICAgICAgICBAcG9pbnRlcmRvd249JHshaGUmJiFXLm5vTW92ZT9tZT0+dGhpcy5zdGFydERyYWcobWUsVyk6bnVsbH0KICAgICAgICAgICAgICAgICAgQGNvbnRleHRtZW51PSR7bWU9PnRoaXMuaGFuZGxlV2lkZ2V0Q29udGV4dE1lbnUobWUsVyl9CiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSR7IWhlJiYhVy5ub01vdmU/MDotMX0KICAgICAgICAgICAgICAgICAgQGtleWRvd249JHttZT0+dGhpcy5oYW5kbGVIZWFkZXJLZXlkb3duKG1lLFcpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAke1cuaWNvbj9DYDxkZWVzLWljb24gLmljb249JHtXLmljb259PjwvZGVlcy1pY29uPmA6bnVsbH0KICAgICAgICAgICAgICAgICAgJHtXLnRpdGxlfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgYDpudWxsfQogICAgICAgICAgPGRpdiBjbGFzcz0id2lkZ2V0LWJvZHkgJHtXLnRpdGxlPyJoYXMtaGVhZGVyIjoiIn0iPgogICAgICAgICAgICAke1cuY29udGVudH0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHshaGUmJiFXLm5vUmVzaXplP0NgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7bWU9PnRoaXMuc3RhcnRSZXNpemUobWUsVywiZSIpfQogICAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZSByZXNpemUtaGFuZGxlLXMiCiAgICAgICAgICAgICAgICAgIEBwb2ludGVyZG93bj0ke21lPT50aGlzLnN0YXJ0UmVzaXplKG1lLFcsInMiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgY2xhc3M9InJlc2l6ZS1oYW5kbGUgcmVzaXplLWhhbmRsZS1zZSIKICAgICAgICAgICAgICAgICAgQHBvaW50ZXJkb3duPSR7bWU9PnRoaXMuc3RhcnRSZXNpemUobWUsVywic2UiKX0KICAgICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgICBgOm51bGx9CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1yZW5kZXJQbGFjZWhvbGRlcihXLEgpe2lmKCF0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24pcmV0dXJuIENgYDtsZXQgdGU9dGhpcy5jb21wdXRlV2lkZ2V0UmVjdCh0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24sVyxIKSxiZT10aGlzLnJ0bD8icmlnaHQiOiJsZWZ0Iix1ZT10aGlzLnB4VG9QZXJjZW50KHRlLmxlZnQsVy5jb250YWluZXJXaWR0aCksQ2U9dGhpcy5weFRvUGVyY2VudCh0ZS53aWR0aCxXLmNvbnRhaW5lcldpZHRoKTtyZXR1cm4gQ2AKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJncmlkLXdpZGdldCBwbGFjZWhvbGRlciIKICAgICAgICBzdHlsZT0iCiAgICAgICAgICAke2JlfTogJHt1ZX0lOwogICAgICAgICAgdG9wOiAke3RlLnRvcH1weDsKICAgICAgICAgIHdpZHRoOiAke0NlfSU7CiAgICAgICAgICBoZWlnaHQ6ICR7dGUuaGVpZ2h0fXB4OwogICAgICAgICIKICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1jb250ZW50Ij48L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXN0YXJ0RHJhZyhXLEgpe2lmKCF0aGlzLmVkaXRhYmxlfHxILm5vTW92ZXx8SC5sb2NrZWQpcmV0dXJuO1cucHJldmVudERlZmF1bHQoKSxXLnN0b3BQcm9wYWdhdGlvbigpO2xldCB0ZT1XLmN1cnJlbnRUYXJnZXQuY2xvc2VzdCgiLmdyaWQtd2lkZ2V0Iik7aWYoIXRlKXJldHVybjtsZXQgYmU9dGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmVuc3VyZU1ldHJpY3MoKSx0aGlzLmRyYWdTdGF0ZT17d2lkZ2V0SWQ6SC5pZCxwb2ludGVySWQ6Vy5wb2ludGVySWQsb2Zmc2V0WDpXLmNsaWVudFgtYmUubGVmdCxvZmZzZXRZOlcuY2xpZW50WS1iZS50b3Asc3RhcnQ6e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9LHByZXZpb3VzUG9zaXRpb246e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9LGN1cnJlbnRQb2ludGVyOntjbGllbnRYOlcuY2xpZW50WCxjbGllbnRZOlcuY2xpZW50WX0sbGFzdFBsYWNlbWVudDpudWxsfSx0aGlzLmludGVyYWN0aW9uQWN0aXZlPSEwLFcuY3VycmVudFRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShXLnBvaW50ZXJJZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHRoaXMuaGFuZGxlRHJhZ01vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVEcmFnRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9fWhhbmRsZURyYWdNb3ZlPVc9PntpZighdGhpcy5kcmFnU3RhdGUpcmV0dXJuO2xldCBIPXRoaXMuZW5zdXJlTWV0cmljcygpLHRlPXRoaXMud2lkZ2V0cyxiZT10ZS5maW5kKGllPT5pZS5pZD09PXRoaXMuZHJhZ1N0YXRlLndpZGdldElkKTtpZighYmUpcmV0dXJuO1cucHJldmVudERlZmF1bHQoKTtsZXQgdWU9dGhpcy5kcmFnU3RhdGUucHJldmlvdXNQb3NpdGlvbixDZT1PNHIoe3BvaW50ZXI6e2NsaWVudFg6Vy5jbGllbnRYLGNsaWVudFk6Vy5jbGllbnRZfSxjb250YWluZXJSZWN0OnRoaXMuY29udGFpbmVyQm91bmRzPz90aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG1ldHJpY3M6SCxjb2x1bW5zOnRoaXMuY29sdW1ucyx3aWRnZXQ6YmUscnRsOnRoaXMucnRsLGRyYWdPZmZzZXRYOnRoaXMuZHJhZ1N0YXRlLm9mZnNldFgsZHJhZ09mZnNldFk6dGhpcy5kcmFnU3RhdGUub2Zmc2V0WX0pLGhlPWo0KHRlLGJlLmlkLHt4OkNlLngseTpDZS55fSx0aGlzLmNvbHVtbnMsdWUpO2lmKGhlKXtsZXQgaWU9aGUud2lkZ2V0cy5maW5kKEllPT5JZS5pZD09PWJlLmlkKTt0aGlzLmRyYWdTdGF0ZT17Li4udGhpcy5kcmFnU3RhdGUsY3VycmVudFBvaW50ZXI6e2NsaWVudFg6Vy5jbGllbnRYLGNsaWVudFk6Vy5jbGllbnRZfSxsYXN0UGxhY2VtZW50OmhlLHByZXZpb3VzUG9zaXRpb246aWU/e2lkOmllLmlkLHg6aWUueCx5OmllLnksdzppZS53LGg6aWUuaH06e2lkOmJlLmlkLHg6Q2UueCx5OkNlLnksdzpiZS53LGg6YmUuaH19LHRoaXMucHJldmlld1dpZGdldHM9aGUud2lkZ2V0cztsZXQgU2U9aGUud2lkZ2V0cy5maW5kKEllPT5JZS5pZD09PWJlLmlkKTtTZT90aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOlNlLmlkLHg6U2UueCx5OlNlLnksdzpTZS53LGg6U2UuaH06dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpiZS5pZCx4OkNlLngseTpDZS55LHc6YmUudyxoOmJlLmh9fWVsc2UgdGhpcy5wcmV2aWV3V2lkZ2V0cz1udWxsLHRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj1udWxsO3RoaXMucmVxdWVzdFVwZGF0ZSgpfTtoYW5kbGVEcmFnRW5kPVc9PntsZXQgSD10aGlzLmRyYWdTdGF0ZTtpZighSHx8Vy5wb2ludGVySWQhPT1ILnBvaW50ZXJJZClyZXR1cm47bGV0IHRlPXRoaXMud2lkZ2V0czt0aGlzLnByZXZpZXdXaWRnZXRzPW51bGw7bGV0IGJlPXRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8/SC5zdGFydCx1ZT1qNCh0ZSxILndpZGdldElkLHt4OmJlLngseTpiZS55fSx0aGlzLmNvbHVtbnMsSC5wcmV2aW91c1Bvc2l0aW9uKTtpZih1ZSl7bGV0IENlPXVlLndpZGdldHMuZmluZChoZT0+aGUuaWQ9PT1ILndpZGdldElkKTtDZSYmKHVlLndpZGdldHMuc29tZShpZT0+aWUuaWQ9PT1ILndpZGdldElkPyExOkNlLng8aWUueCtpZS53JiZDZS54K0NlLnc+aWUueCYmQ2UueTxpZS55K2llLmgmJkNlLnkrQ2UuaD5pZS55KT90aGlzLndpZGdldHM9dGhpcy53aWRnZXRzLm1hcChpZT0+aWUuaWQ9PT1ILndpZGdldElkP3suLi5pZSx4Okguc3RhcnQueCx5Okguc3RhcnQueX06aWUpOnRoaXMuY29tbWl0UGxhY2VtZW50KHVlLEgud2lkZ2V0SWQsIndpZGdldC1tb3ZlIikpfWVsc2UgdGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5tYXAoQ2U9PkNlLmlkPT09SC53aWRnZXRJZD97Li4uQ2UseDpILnN0YXJ0LngseTpILnN0YXJ0Lnl9OkNlKTt0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249bnVsbCx0aGlzLmRyYWdTdGF0ZT1udWxsLHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITEsdGhpcy5yZWxlYXNlUG9pbnRlckV2ZW50cygpfTtzdGFydFJlc2l6ZShXLEgsdGUpeyF0aGlzLmVkaXRhYmxlfHxILm5vUmVzaXplfHxILmxvY2tlZHx8KFcucHJldmVudERlZmF1bHQoKSxXLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZW5zdXJlTWV0cmljcygpLHRoaXMucmVzaXplU3RhdGU9e3dpZGdldElkOkguaWQscG9pbnRlcklkOlcucG9pbnRlcklkLGhhbmRsZXI6dGUsc3RhcnRQb2ludGVyOntjbGllbnRYOlcuY2xpZW50WCxjbGllbnRZOlcuY2xpZW50WX0sc3RhcnQ6e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9LHN0YXJ0V2lkdGg6SC53LHN0YXJ0SGVpZ2h0OkguaCxsYXN0UGxhY2VtZW50Om51bGx9LHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITAsVy5jdXJyZW50VGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKFcucG9pbnRlcklkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVSZXNpemVNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHRoaXMuaGFuZGxlUmVzaXplRW5kKSx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249e2lkOkguaWQseDpILngseTpILnksdzpILncsaDpILmh9KX1oYW5kbGVSZXNpemVNb3ZlPVc9PntpZighdGhpcy5yZXNpemVTdGF0ZSlyZXR1cm47bGV0IEg9dGhpcy5lbnN1cmVNZXRyaWNzKCksdGU9dGhpcy53aWRnZXRzLGJlPXRlLmZpbmQoaGU9PmhlLmlkPT09dGhpcy5yZXNpemVTdGF0ZS53aWRnZXRJZCk7aWYoIWJlKXJldHVybjtXLnByZXZlbnREZWZhdWx0KCk7bGV0IHVlPVI0cih7cG9pbnRlcjp7Y2xpZW50WDpXLmNsaWVudFgsY2xpZW50WTpXLmNsaWVudFl9LGNvbnRhaW5lclJlY3Q6dGhpcy5jb250YWluZXJCb3VuZHM/P3RoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbWV0cmljczpILHN0YXJ0V2lkdGg6dGhpcy5yZXNpemVTdGF0ZS5zdGFydFdpZHRoLHN0YXJ0SGVpZ2h0OnRoaXMucmVzaXplU3RhdGUuc3RhcnRIZWlnaHQsc3RhcnRQb2ludGVyOnRoaXMucmVzaXplU3RhdGUuc3RhcnRQb2ludGVyLGhhbmRsZXI6dGhpcy5yZXNpemVTdGF0ZS5oYW5kbGVyLHdpZGdldDpiZSxjb2x1bW5zOnRoaXMuY29sdW1uc30pLENlPWo0KHRlLGJlLmlkLHt4OmJlLngseTpiZS55LHc6dWUud2lkdGgsaDp1ZS5oZWlnaHR9LHRoaXMuY29sdW1ucyx0aGlzLnJlc2l6ZVN0YXRlLnN0YXJ0KTtpZihDZSl7dGhpcy5yZXNpemVTdGF0ZT17Li4udGhpcy5yZXNpemVTdGF0ZSxsYXN0UGxhY2VtZW50OkNlfSx0aGlzLnByZXZpZXdXaWRnZXRzPUNlLndpZGdldHM7bGV0IGhlPUNlLndpZGdldHMuZmluZChpZT0+aWUuaWQ9PT1iZS5pZCk7aGU/dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPXtpZDpoZS5pZCx4OmhlLngseTpoZS55LHc6aGUudyxoOmhlLmh9OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj17aWQ6YmUuaWQseDpiZS54LHk6YmUueSx3OnVlLndpZHRoLGg6dWUuaGVpZ2h0fX1lbHNlIHRoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb249bnVsbDt0aGlzLnJlcXVlc3RVcGRhdGUoKX07aGFuZGxlUmVzaXplRW5kPVc9PntsZXQgSD10aGlzLnJlc2l6ZVN0YXRlO2lmKCFIfHxXLnBvaW50ZXJJZCE9PUgucG9pbnRlcklkKXJldHVybjtsZXQgdGU9dGhpcy53aWRnZXRzO3RoaXMucHJldmlld1dpZGdldHM9bnVsbDtsZXQgYmU9SC5sYXN0UGxhY2VtZW50Pz9qNCh0ZSxILndpZGdldElkLHt4OnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8ueD8/SC5zdGFydC54LHk6dGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPy55Pz9ILnN0YXJ0Lnksdzp0aGlzLnBsYWNlaG9sZGVyUG9zaXRpb24/Lnc/P0guc3RhcnQudyxoOnRoaXMucGxhY2Vob2xkZXJQb3NpdGlvbj8uaD8/SC5zdGFydC5ofSx0aGlzLmNvbHVtbnMsSC5zdGFydCk7YmU/dGhpcy5jb21taXRQbGFjZW1lbnQoYmUsSC53aWRnZXRJZCwid2lkZ2V0LXJlc2l6ZSIpOnRoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHVlPT51ZS5pZD09PUgud2lkZ2V0SWQ/ey4uLnVlLHc6SC5zdGFydC53LGg6SC5zdGFydC5ofTp1ZSksdGhpcy5wbGFjZWhvbGRlclBvc2l0aW9uPW51bGwsdGhpcy5yZXNpemVTdGF0ZT1udWxsLHRoaXMuaW50ZXJhY3Rpb25BY3RpdmU9ITEsdGhpcy5yZWxlYXNlUG9pbnRlckV2ZW50cygpfTtoYW5kbGVIZWFkZXJLZXlkb3duKFcsSCl7aWYoIXRoaXMuZWRpdGFibGV8fEgubm9Nb3ZlfHxILmxvY2tlZClyZXR1cm47bGV0IHRlPVcua2V5LGJlPVcuc2hpZnRLZXksdWU9bnVsbDtpZihiZSYmWyJBcnJvd0xlZnQiLCJBcnJvd1JpZ2h0IiwiQXJyb3dVcCIsIkFycm93RG93biJdLmluY2x1ZGVzKHRlKSl7Vy5wcmV2ZW50RGVmYXVsdCgpO2xldCBJZT10ZT09PSJBcnJvd1JpZ2h0Inx8dGU9PT0iQXJyb3dEb3duIj8xOi0xO2lmKHRlPT09IkFycm93TGVmdCJ8fHRlPT09IkFycm93UmlnaHQiKXtsZXQgWmU9SC5tYXhXPz90aGlzLmNvbHVtbnMtSC54LEs9TWF0aC5tYXgoSC5taW5XPz8xLE1hdGgubWluKFplLEgudytJZSkpO3VlPWo0KHRoaXMud2lkZ2V0cyxILmlkLHt4OkgueCx5OkgueSx3OkssaDpILmh9LHRoaXMuY29sdW1ucyl9ZWxzZXtsZXQgWmU9SC5tYXhIPz9OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksSz1NYXRoLm1heChILm1pbkg/PzEsTWF0aC5taW4oWmUsSC5oK0llKSk7dWU9ajQodGhpcy53aWRnZXRzLEguaWQse3g6SC54LHk6SC55LHc6SC53LGg6S30sdGhpcy5jb2x1bW5zKX11ZSYmdGhpcy5jb21taXRQbGFjZW1lbnQodWUsSC5pZCwid2lkZ2V0LXJlc2l6ZSIpO3JldHVybn1sZXQgaGU9e0Fycm93TGVmdDp7ZHg6LTEsZHk6MH0sQXJyb3dSaWdodDp7ZHg6MSxkeTowfSxBcnJvd1VwOntkeDowLGR5Oi0xfSxBcnJvd0Rvd246e2R4OjAsZHk6MX19W3RlXTtpZighaGUpcmV0dXJuO1cucHJldmVudERlZmF1bHQoKTtsZXQgaWU9TWF0aC5tYXgoMCxNYXRoLm1pbih0aGlzLmNvbHVtbnMtSC53LEgueCtoZS5keCkpLFNlPU1hdGgubWF4KDAsSC55K2hlLmR5KTt1ZT1qNCh0aGlzLndpZGdldHMsSC5pZCx7eDppZSx5OlNlfSx0aGlzLmNvbHVtbnMpLHVlJiZ0aGlzLmNvbW1pdFBsYWNlbWVudCh1ZSxILmlkLCJ3aWRnZXQtbW92ZSIpfWhhbmRsZVdpZGdldENvbnRleHRNZW51KFcsSCl7Vy5wcmV2ZW50RGVmYXVsdCgpLFcuc3RvcFByb3BhZ2F0aW9uKCksSDRyKHt3aWRnZXQ6SCxob3N0OnRoaXMsZXZlbnQ6V30pfWNvbW1pdFBsYWNlbWVudChXLEgsdGUpe3RoaXMucHJldmlld1dpZGdldHM9bnVsbCx0aGlzLndpZGdldHM9Vy53aWRnZXRzO2xldCBiZT10aGlzLndpZGdldHMuZmluZCh1ZT0+dWUuaWQ9PT1IKTtiZSYmdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCh0ZSx7ZGV0YWlsOnt3aWRnZXQ6YmUsZGlzcGxhY2VkOlcubW92ZWRXaWRnZXRzLmZpbHRlcih1ZT0+dWUhPT1IKSxzd2FwcGVkV2l0aDpXLnN3YXBwZWRXaXRofSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfXJlbW92ZVdpZGdldChXKXtsZXQgSD10aGlzLndpZGdldHMuZmluZCh0ZT0+dGUuaWQ9PT1XKTtIJiYodGhpcy53aWRnZXRzPXRoaXMud2lkZ2V0cy5maWx0ZXIodGU9PnRlLmlkIT09VyksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgid2lkZ2V0LXJlbW92ZSIse2RldGFpbDp7d2lkZ2V0Okh9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSkpfXVwZGF0ZVdpZGdldChXLEgpe3RoaXMud2lkZ2V0cz10aGlzLndpZGdldHMubWFwKHRlPT50ZS5pZD09PVc/ey4uLnRlLC4uLkh9OnRlKX1nZXRMYXlvdXQoKXtyZXR1cm4gdGhpcy53aWRnZXRzLm1hcCgoe2lkOlcseDpILHk6dGUsdzpiZSxoOnVlfSk9Pih7aWQ6Vyx4OkgseTp0ZSx3OmJlLGg6dWV9KSl9c2V0TGF5b3V0KFcpe3RoaXMud2lkZ2V0cz1ONHIodGhpcy53aWRnZXRzLFcpfWxvY2tHcmlkKCl7dGhpcy5lZGl0YWJsZT0hMX11bmxvY2tHcmlkKCl7dGhpcy5lZGl0YWJsZT0hMH1hZGRXaWRnZXQoVyxIPSExKXtsZXQgdGU9ey4uLld9O2lmKEh8fHRlLmF1dG9Qb3NpdGlvbil7bGV0IGJlPXBkZSh0aGlzLndpZGdldHMsdGUudyx0ZS5oLHRoaXMuY29sdW1ucyk7dGUueD1iZS54LHRlLnk9YmUueX10aGlzLndpZGdldHM9Wy4uLnRoaXMud2lkZ2V0cyx0ZV19Y29tcGFjdChXPSJ2ZXJ0aWNhbCIpe2xldCBIPXRoaXMud2lkZ2V0cy5tYXAodGU9Pih7Li4udGV9KSk7UDRyKEgsVyksdGhpcy53aWRnZXRzPUh9YXBwbHlCcmVha3BvaW50TGF5b3V0KFcpe3RoaXMuYWN0aXZlQnJlYWtwb2ludD1XO2xldCBIPXRoaXMubGF5b3V0cz8uW1ddO0gmJnRoaXMuc2V0TGF5b3V0KEgpfW5vdGlmeUxheW91dENoYW5nZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImxheW91dC1jaGFuZ2UiLHtkZXRhaWw6e2xheW91dDp0aGlzLmdldExheW91dCgpfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWVuc3VyZU1ldHJpY3MoKXtyZXR1cm4gdGhpcy5tZXRyaWNzfHx0aGlzLmNvbXB1dGVNZXRyaWNzKCksdGhpcy5tZXRyaWNzfWNvbXB1dGVNZXRyaWNzKCl7aWYoIXRoaXMuaXNDb25uZWN0ZWQpcmV0dXJuO2xldCBXPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5jb250YWluZXJCb3VuZHM9VztsZXQgSD11ZGUodGhpcy5tYXJnaW4pO3RoaXMucmVzb2x2ZWRNYXJnaW5zPUgsdGhpcy5tZXRyaWNzPSQ0cihXLndpZHRoLHRoaXMuY29sdW1ucyxILHRoaXMuY2VsbEhlaWdodCx0aGlzLmNlbGxIZWlnaHRVbml0KX1vYnNlcnZlUmVzaXplKCl7dGhpcy5yZXNpemVPYnNlcnZlcnx8KHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5jb21wdXRlTWV0cmljcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpKX1kaXNjb25uZWN0UmVzaXplT2JzZXJ2ZXIoKXt0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCksdGhpcy5yZXNpemVPYnNlcnZlcj12b2lkIDB9cmVsZWFzZVBvaW50ZXJFdmVudHMoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdGhpcy5oYW5kbGVEcmFnTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0aGlzLmhhbmRsZURyYWdFbmQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0aGlzLmhhbmRsZVJlc2l6ZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdGhpcy5oYW5kbGVSZXNpemVFbmQpfXB4VG9QZXJjZW50KFcsSCl7cmV0dXJuIEg/TnVtYmVyKChXL0gqMTAwKS50b0ZpeGVkKDQpKTowfWNvbXB1dGVXaWRnZXRSZWN0KFcsSCx0ZSl7bGV0IGJlPUguY2VsbFdpZHRoUHgsdWU9SC5jZWxsSGVpZ2h0UHgsQ2U9Vy54KihiZSt0ZS5ob3Jpem9udGFsKSt0ZS5ob3Jpem9udGFsLGhlPVcueSoodWUrdGUudmVydGljYWwpK3RlLnZlcnRpY2FsLGllPVcudypiZStNYXRoLm1heCgwLFcudy0xKSp0ZS5ob3Jpem9udGFsLFNlPVcuaCp1ZStNYXRoLm1heCgwLFcuaC0xKSp0ZS52ZXJ0aWNhbDtyZXR1cm57bGVmdDpDZSx0b3A6aGUsd2lkdGg6aWUsaGVpZ2h0OlNlfX1zdGF0aWN7Q3IoaSxyKX19O3JldHVybiBMZT1pfSkoKX0pO3ZhciBVNHI9cCgoKT0+e1Y0cigpfSk7ZnVuY3Rpb24gVzRyKCl7cmV0dXJuIENgCiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSIxIj5UaGlzIGlzIGEgSDEgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iMiI+VGhpcyBpcyBhIEgyIGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjMiPlRoaXMgaXMgYSBIMyBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSI0Ij5UaGlzIGlzIGEgSDQgaGVhZGluZzwvZGVlcy1oZWFkaW5nPgogICAgPGRlZXMtaGVhZGluZyBsZXZlbD0iNSI+VGhpcyBpcyBhIEg1IGhlYWRpbmc8L2RlZXMtaGVhZGluZz4KICAgIDxkZWVzLWhlYWRpbmcgbGV2ZWw9IjYiPlRoaXMgaXMgYSBINiBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJociI+VGhpcyBpcyBhbiBociBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+VGhpcyBpcyBhbiBociBzbWFsbCBoZWFkaW5nPC9kZWVzLWhlYWRpbmc+CiAgYH12YXIgRzRyPXAoKCk9Pnt4ZSgpfSk7dmFyIFk0cixoZGUsWjRyLFg0cj1wKCgpPT57eGUoKTtHNHIoKTtRYSgpO0plKCk7WTRyPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0saGRlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxaNHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLWhlYWRpbmciKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmcscmVmbGVjdDohMH0pXSxZNHIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsZXZlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+ImxldmVsImluIHUsZ2V0OnU9PnUubGV2ZWwsc2V0Oih1LGQpPT57dS5sZXZlbD1kfX0sbWV0YWRhdGE6Y30sbyxzKSxZNHIobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz1XNHI7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiXTsjZT1oZGUodGhpcyxvLCIxIik7Z2V0IGxldmVsKCl7cmV0dXJuIHRoaXMuI2V9c2V0IGxldmVsKGMpe3RoaXMuI2U9Y31zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIC8qIEhlYWRpbmcgc3R5bGVzICovCiAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgewogICAgICAgIG1hcmdpbjogMTZweCAwIDhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgICAgaDEgeyBmb250LXNpemU6IDMycHg7IGZvbnQtZmFtaWx5OiAke3Vzcn07IGxldHRlci1zcGFjaW5nOiAwLjAyNWVtO30KICAgICAgaDIgeyBmb250LXNpemU6IDI4cHg7IH0KICAgICAgaDMgeyBmb250LXNpemU6IDI0cHg7IH0KICAgICAgaDQgeyBmb250LXNpemU6IDIwcHg7IH0KICAgICAgaDUgeyBmb250LXNpemU6IDE2cHg7IH0KICAgICAgaDYgeyBmb250LXNpemU6IDE0cHg7IH0KICAgICAgLyogSG9yaXpvbnRhbCBydWxlIHN0eWxlIGhlYWRpbmcgKi8KICAgICAgLmhlYWRpbmctaHIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgbWFyZ2luOiAxNnB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgICAvKiBGYWRlIGxpbmVzIHRvd2FyZCBhbmQgYXdheSBmcm9tIHRleHQgZm9yIGhyIHN0eWxlICovCiAgICAgIC5oZWFkaW5nLWhyOjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgLyogZmFkZSBpbiB0b3dhcmQgY2VudGVyICovCiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsICNjY2MpIiwibGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgIzMzMykiKX07CiAgICAgICAgbWFyZ2luOiAwIDhweDsKICAgICAgfQogICAgICAuaGVhZGluZy1ocjo6YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6ICcnOwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgLyogZmFkZSBvdXQgYXdheSBmcm9tIGNlbnRlciAqLwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNjY2MsIHRyYW5zcGFyZW50KSIsImxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMzMywgdHJhbnNwYXJlbnQpIil9OwogICAgICAgIG1hcmdpbjogMCA4cHg7CiAgICAgIH0KICAgICAgLyogU21hbGwgaHIgdmFyaWFudCB3aXRoIHJlZHVjZWQgbWFyZ2lucyAqLwogICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsIHsKICAgICAgICBtYXJnaW46IDhweCAwOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgfQogICAgICAuaGVhZGluZy1oci5oZWFkaW5nLWhyLXNtYWxsOjpiZWZvcmUsCiAgICAgIC5oZWFkaW5nLWhyLmhlYWRpbmctaHItc21hbGw6OmFmdGVyIHsKICAgICAgICBtYXJnaW46IDAgOHB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtzd2l0Y2godGhpcy5sZXZlbCl7Y2FzZSIxIjpyZXR1cm4gQ2A8aDE+PHNsb3Q+PC9zbG90PjwvaDE+YDtjYXNlIjIiOnJldHVybiBDYDxoMj48c2xvdD48L3Nsb3Q+PC9oMj5gO2Nhc2UiMyI6cmV0dXJuIENgPGgzPjxzbG90Pjwvc2xvdD48L2gzPmA7Y2FzZSI0IjpyZXR1cm4gQ2A8aDQ+PHNsb3Q+PC9zbG90PjwvaDQ+YDtjYXNlIjUiOnJldHVybiBDYDxoNT48c2xvdD48L3Nsb3Q+PC9oNT5gO2Nhc2UiNiI6cmV0dXJuIENgPGg2PjxzbG90Pjwvc2xvdD48L2g2PmA7Y2FzZSJociI6cmV0dXJuIENgPGRpdiBjbGFzcz0iaGVhZGluZy1ociI+PHNsb3Q+PC9zbG90PjwvZGl2PmA7Y2FzZSJoci1zbWFsbCI6cmV0dXJuIENgPGRpdiBjbGFzcz0iaGVhZGluZy1ociBoZWFkaW5nLWhyLXNtYWxsIj48c2xvdD48L3Nsb3Q+PC9kaXY+YDtkZWZhdWx0OnJldHVybiBDYDxoMT48c2xvdD48L3Nsb3Q+PC9oMT5gfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksaGRlKHRoaXMscyl9c3RhdGlje2hkZShpLHIpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgUTRyPXAoKCk9PntYNHIoKX0pO3ZhciBKNHI9cCgoKT0+e2VoKCl9KTt2YXIgSzRyLGUzcj1wKCgpPT57eGUoKTtLNHI9KCk9PkNgCiAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNnB4OyI+CiAgICA8IS0tIFNtYWxsIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjUgcGFnZXMsIHN0YXJ0aW5nIGF0IDE6PC9zcGFuPgogICAgICA8ZGVlcy1wYWdpbmF0aW9uCiAgICAgICAgLnRvdGFsPSR7NX0KICAgICAgICAucGFnZT0kezF9CiAgICAgICAgQHBhZ2UtY2hhbmdlPSR7ZT0+Y29uc29sZS5sb2coIlBhZ2UgY2hhbmdlZCB0byIsZS5kZXRhaWwucGFnZSl9CiAgICAgID48L2RlZXMtcGFnaW5hdGlvbj4KICAgIDwvZGl2PgoKICAgIDwhLS0gTGFyZ2VyIHNldCBvZiBwYWdlcyAtLT4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4OyI+CiAgICAgIDxzcGFuPjE1IHBhZ2VzLCBzdGFydGluZyBhdCA4Ojwvc3Bhbj4KICAgICAgPGRlZXMtcGFnaW5hdGlvbgogICAgICAgIC50b3RhbD0kezE1fQogICAgICAgIC5wYWdlPSR7OH0KICAgICAgICBAcGFnZS1jaGFuZ2U9JHtlPT5jb25zb2xlLmxvZygiUGFnZSBjaGFuZ2VkIHRvIixlLmRldGFpbC5wYWdlKX0KICAgICAgPjwvZGVlcy1wYWdpbmF0aW9uPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgZmRlLE9iLHQzcixyM3I9cCgoKT0+e3hlKCk7ZTNyKCk7SmUoKTtmZGU9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxPYj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sdDNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1wYWdpbmF0aW9uIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6TnVtYmVyLHJlZmxlY3Q6ITB9KV0sbD1baih7dHlwZTpOdW1iZXIscmVmbGVjdDohMH0pXSxmZGUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4icGFnZSJpbiBmLGdldDpmPT5mLnBhZ2Usc2V0OihmLHgpPT57Zi5wYWdlPXh9fSxtZXRhZGF0YTpofSxvLHMpLGZkZSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4idG90YWwiaW4gZixnZXQ6Zj0+Zi50b3RhbCxzZXQ6KGYseCk9PntmLnRvdGFsPXh9fSxtZXRhZGF0YTpofSxjLHUpLGZkZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPUs0cjtzdGF0aWMgZGVtb0dyb3Vwcz1bIkxheW91dCJdOyNlPU9iKHRoaXMsbywxKTtnZXQgcGFnZSgpe3JldHVybiB0aGlzLiNlfXNldCBwYWdlKGgpe3RoaXMuI2U9aH0jdD0oT2IodGhpcyxzKSxPYih0aGlzLGMsMSkpO2dldCB0b3RhbCgpe3JldHVybiB0aGlzLiN0fXNldCB0b3RhbChoKXt0aGlzLiN0PWh9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgfQogICAgICBidXR0b24gewogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIG1hcmdpbjogMCAycHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7CiAgICAgIH0KICAgICAgYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2VlZSIsIiM0NDQiKX07CiAgICAgIH0KICAgICAgYnV0dG9uOmRpc2FibGVkIHsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjYWFhIiwiIzY2NiIpfTsKICAgICAgfQogICAgICBidXR0b24uY3VycmVudCB7CiAgICAgICAgYmFja2dyb3VuZDogIzAwNTBiOTsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIH0KICAgICAgc3Bhbi5lbGxpcHNpcyB7CiAgICAgICAgbWFyZ2luOiAwIDRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzMzMiLCIjY2NjIil9OwogICAgICB9CiAgICBgXTtnZXQgcGFnZXMoKXtsZXQgaD1bXSxmPXRoaXMudG90YWwseD10aGlzLnBhZ2U7aWYoZjw9Nylmb3IobGV0IHY9MTt2PD1mO3YrKyloLnB1c2godik7ZWxzZXtoLnB1c2goMSkseD40JiZoLnB1c2goIi4uLiIpO2xldCB2PU1hdGgubWF4KDIseC0yKSxiPU1hdGgubWluKGYtMSx4KzIpO2ZvcihsZXQgeT12O3k8PWI7eSsrKWgucHVzaCh5KTt4PGYtMyYmaC5wdXNoKCIuLi4iKSxoLnB1c2goZil9cmV0dXJuIGh9cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxidXR0b24KICAgICAgICBAY2xpY2s9JHsoKT0+dGhpcy5jaGFuZ2VQYWdlKHRoaXMucGFnZS0xKX0KICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLnBhZ2U8PTF9CiAgICAgICAgYXJpYS1sYWJlbD0iUHJldmlvdXMgcGFnZSIKICAgICAgPgogICAgICAgIOKAuQogICAgICA8L2J1dHRvbj4KICAgICAgJHt0aGlzLnBhZ2VzLm1hcChoPT5oPT09Ii4uLiI/Q2A8c3BhbiBjbGFzcz0iZWxsaXBzaXMiPuKApjwvc3Bhbj5gOkNgCiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9IiR7aD09PXRoaXMucGFnZT8iY3VycmVudCI6IiJ9IgogICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuY2hhbmdlUGFnZShoKX0KICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke2g9PT10aGlzLnBhZ2V9CiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJQYWdlICR7aH0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgJHtofQogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICBgKX0KICAgICAgPGJ1dHRvbgogICAgICAgIEBjbGljaz0keygpPT50aGlzLmNoYW5nZVBhZ2UodGhpcy5wYWdlKzEpfQogICAgICAgID9kaXNhYmxlZD0ke3RoaXMucGFnZT49dGhpcy50b3RhbH0KICAgICAgICBhcmlhLWxhYmVsPSJOZXh0IHBhZ2UiCiAgICAgID4KICAgICAgICDigLoKICAgICAgPC9idXR0b24+CiAgICBgfWNoYW5nZVBhZ2UoaCl7aDwxfHxoPnRoaXMudG90YWx8fGg9PT10aGlzLnBhZ2V8fCh0aGlzLnBhZ2U9aCx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJwYWdlLWNoYW5nZSIse2RldGFpbDp7cGFnZTp0aGlzLnBhZ2V9LGJ1YmJsZXM6ITB9KSkpfWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxPYih0aGlzLHUpfXN0YXRpY3tPYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgaTNyPXAoKCk9PntyM3IoKX0pO3ZhciBhM3I9cCgoKT0+e09pKCl9KTt2YXIgbjNyLG8zcj1wKCgpPT57eGUoKTtuM3I9KCk9PkNgCiAgPGRlZXMtc3RlcHBlcgogICAgLnN0ZXBzPSR7W3t0aXRsZToiQWNjb3VudCBTZXR1cCIsY29udGVudDpDYAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImVtYWlsIiBsYWJlbD0iV29yayBFbWFpbCIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJwYXNzd29yZCIgbGFiZWw9IkNyZWF0ZSBQYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmMoZSx0KT0+e3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5lLmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IlByb2ZpbGUgRGV0YWlscyIsY29udGVudDpDYAogICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImZpcnN0TmFtZSIgbGFiZWw9IkZpcnN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0ibGFzdE5hbWUiIGxhYmVsPSJMYXN0IE5hbWUiIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmMoZSx0KT0+e3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5lLmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IkNvbnRhY3QgSW5mb3JtYXRpb24iLGNvbnRlbnQ6Q2AKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXBob25lIGtleT0icGhvbmUiIGxhYmVsPSJNb2JpbGUgTnVtYmVyIiByZXF1aXJlZD48L2RlZXMtaW5wdXQtcGhvbmU+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJjb21wYW55IiBsYWJlbD0iQ29tcGFueSI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyhlLHQpPT57dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PmUuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiVGVhbSBTaXplIixjb250ZW50OkNgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0idGVhbVNpemUiCiAgICAgICAgICAgICAgbGFiZWw9IkhvdyBiaWcgaXMgeW91ciB0ZWFtPyIKICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7bGFiZWw6IjEtNSIsdmFsdWU6IjEtNSJ9LHtsYWJlbDoiNi0yMCIsdmFsdWU6IjYtMjAifSx7bGFiZWw6IjIxLTUwIix2YWx1ZToiMjEtNTAifSx7bGFiZWw6IjUxKyIsdmFsdWU6IjUxKyJ9XX0KICAgICAgICAgICAgICByZXF1aXJlZAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmMoZSx0KT0+e3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5lLmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IkdvYWxzIixjb250ZW50OkNgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1tdWx0aXRvZ2dsZQogICAgICAgICAgICAgIGtleT0iZ29hbCIKICAgICAgICAgICAgICBsYWJlbD0iTWFpbiBvYmplY3RpdmUiCiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe2xhYmVsOiJPbmJvYXJkaW5nIix2YWx1ZToib25ib2FyZGluZyJ9LHtsYWJlbDoiQW5hbHl0aWNzIix2YWx1ZToiYW5hbHl0aWNzIn0se2xhYmVsOiJBdXRvbWF0aW9uIix2YWx1ZToiYXV0b21hdGlvbiJ9XX0KICAgICAgICAgICAgICByZXF1aXJlZAogICAgICAgICAgICA+PC9kZWVzLWlucHV0LW11bHRpdG9nZ2xlPgogICAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5Db250aW51ZTwvZGVlcy1mb3JtLXN1Ym1pdD4KICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgIGAsdmFsaWRhdGlvbkZ1bmM6YXN5bmMoZSx0KT0+e3QucXVlcnlTZWxlY3RvcigiZGVlcy1mb3JtIikuYWRkRXZlbnRMaXN0ZW5lcigiZm9ybURhdGEiLCgpPT5lLmdvTmV4dCgpLHtvbmNlOiEwfSl9fSx7dGl0bGU6IkJyYW5kIFByZWZlcmVuY2VzIixjb250ZW50OkNgCiAgICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0iYnJhbmRDb2xvciIgbGFiZWw9IlByaW1hcnkgYnJhbmQgY29sb3IiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0idG9uZSIgbGFiZWw9IlByZWZlcnJlZCB0b25lIChlLmcuIGZyaWVuZGx5LCBmb3JtYWwpIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+Q29udGludWU8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICBgLHZhbGlkYXRpb25GdW5jOmFzeW5jKGUsdCk9Pnt0LnF1ZXJ5U2VsZWN0b3IoImRlZXMtZm9ybSIpLmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIiwoKT0+ZS5nb05leHQoKSx7b25jZTohMH0pfX0se3RpdGxlOiJJbnRlZ3JhdGlvbnMiLGNvbnRlbnQ6Q2AKICAgICAgICAgIDxkZWVzLWZvcm0+CiAgICAgICAgICAgIDxkZWVzLWlucHV0LWxpc3QKICAgICAgICAgICAgICBrZXk9ImludGVncmF0aW9ucyIKICAgICAgICAgICAgICBsYWJlbD0iSW50ZWdyYXRpb25zIGluIHVzZSIKICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iQWRkIGludGVncmF0aW9uIgogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWxpc3Q+CiAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PkNvbnRpbnVlPC9kZWVzLWZvcm0tc3VibWl0PgogICAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgICAgYCx2YWxpZGF0aW9uRnVuYzphc3luYyhlLHQpPT57dC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKS5hZGRFdmVudExpc3RlbmVyKCJmb3JtRGF0YSIsKCk9PmUuZ29OZXh0KCkse29uY2U6ITB9KX19LHt0aXRsZToiUmV2aWV3ICYgTGF1bmNoIixjb250ZW50OkNgCiAgICAgICAgICA8ZGVlcy1wYW5lbD4KICAgICAgICAgICAgPHA+QWxtb3N0IHRoZXJlISBSZXZpZXcgeW91ciBzZWxlY3Rpb25zIGFuZCBsYXVuY2ggd2hlbmV2ZXIgeW91J3JlIHJlYWR5LjwvcD4KICAgICAgICAgIDwvZGVlcy1wYW5lbD4KICAgICAgICBgfV19CiAgPjwvZGVlcy1zdGVwcGVyPgpgfSk7dmFyIG1kZSxSYixzM3IsbDNyPXAoKCk9Pnt3aSgpO1BvKCk7eGUoKTtLdCgpO28zcigpO0plKCk7bWRlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sUmI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHMzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtc3RlcHBlciIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdO3ZhciBkPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgaD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOkFycmF5fSldLGw9W2ooe3R5cGU6T2JqZWN0fSldLG1kZSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InN0ZXBzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4ic3RlcHMiaW4gZixnZXQ6Zj0+Zi5zdGVwcyxzZXQ6KGYseCk9PntmLnN0ZXBzPXh9fSxtZXRhZGF0YTpofSxvLHMpLG1kZSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNlbGVjdGVkU3RlcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Zj0+InNlbGVjdGVkU3RlcCJpbiBmLGdldDpmPT5mLnNlbGVjdGVkU3RlcCxzZXQ6KGYseCk9PntmLnNlbGVjdGVkU3RlcD14fX0sbWV0YWRhdGE6aH0sYyx1KSxtZGUobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6aH0sbnVsbCxyKSxkPWk9dC52YWx1ZSxoJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX1zdGF0aWMgZGVtbz1uM3I7c3RhdGljIGRlbW9Hcm91cHM9WyJMYXlvdXQiLCJGb3JtIl07I2U9UmIodGhpcyxvLFtdKTtnZXQgc3RlcHMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3RlcHMoaCl7dGhpcy4jZT1ofSN0PShSYih0aGlzLHMpLFJiKHRoaXMsYyx2b2lkIDApKTtnZXQgc2VsZWN0ZWRTdGVwKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNlbGVjdGVkU3RlcChoKXt0aGlzLiN0PWh9Y29uc3RydWN0b3IoKXtzdXBlcigpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KICAgICAgLnN0ZXBwZXJDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnN0ZXAgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgYm94LXNoYWRvdyAwLjdzIGN1YmljLWJlemllcigwLjg3LCAwLCAwLjEzLCAxKSwgZmlsdGVyIDAuN3MgY3ViaWMtYmV6aWVyKDAuODcsIDAsIDAuMTMsIDEpLCBib3JkZXIgMC43cyBjdWJpYy1iZXppZXIoMC44NywgMCwgMC4xMywgMSk7CiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDsKICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzBmMGYxMSIpfTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2UyZThmMCIsIiMyNzI3MjkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMGYxNzJhIiwiI2Y1ZjVmNSIpfTsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICBmaWx0ZXI6IG9wYWNpdHkoMC41NSkgc2F0dXJhdGUoMC44NSk7CiAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC5zdGVwLnNlbGVjdGVkIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsOwogICAgICAgIGZpbHRlcjogb3BhY2l0eSgxKSBzYXR1cmF0ZSgxKTsKICAgICAgICB1c2VyLXNlbGVjdDogYXV0bzsKICAgICAgfQoKICAgICAgLnN0ZXAuaGlkZGVuU3RlcCB7CiAgICAgICAgZmlsdGVyOiBvcGFjaXR5KDApOwogICAgICB9CgogICAgICAuc3RlcC5lbnRyYW5jZSB7CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMzVzIGVhc2UsIGJveC1zaGFkb3cgMC4zNXMgZWFzZSwgZmlsdGVyIDAuMzVzIGVhc2UsIGJvcmRlciAwLjM1cyBlYXNlOwogICAgICB9CgogICAgICAuc3RlcC5lbnRyYW5jZS5oaWRkZW5TdGVwIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDEwMHZoOwogICAgICB9CgogICAgICAuc3RlcCAuc3RlcENvdW50ZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzY0NzQ4YiIsIiNhMWExYWEiKX07CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICByaWdodDogMTJweDsKICAgICAgICBwYWRkaW5nOiA2cHggMTRweDsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC41KSIsInJnYmEoNjMsIDYzLCA3MCwgMC40NSkiKX07CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC43KSIsInJnYmEoNjMsIDYzLCA3MCwgMC42KSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjayB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTJweDsKICAgICAgICBsZWZ0OiAxMnB4OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHttLmJkVGhlbWUoInJnYmEoMjI2LCAyMzIsIDI0MCwgMC45KSIsInJnYmEoNjMsIDYzLCA3MCwgMC44NSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSIsInJnYmEoMzksIDM5LCA0MiwgMC44NSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNDc1NTY5IiwiI2Q0ZDRkOCIpfTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjazpob3ZlciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMGYxNzJhIiwiI2ZhZmFmYSIpfTsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKElvLmJsdWUsSW8uYmx1ZSl9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOTUpIiwicmdiYSg2MywgNjMsIDcwLCAwLjcpIil9OwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjazphY3RpdmUgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzBmMTcyYSIsIiNmYWZhZmEiKX07CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZShJby5ibHVlQWN0aXZlLElvLmJsdWVBY3RpdmUpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyMjYsIDIzMiwgMjQwLCAwLjg1KSIsInJnYmEoNjMsIDYzLCA3MCwgMC42KSIpfTsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjayBzcGFuIHsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgfQoKICAgICAgLnN0ZXAgLmdvQmFjazpob3ZlciBzcGFuIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7CiAgICAgIH0KCiAgICAgIC5zdGVwIC50aXRsZSB7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmctdG9wOiA2NHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnR2Vpc3QgU2FucycsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07CiAgICAgICAgY29sb3I6IGluaGVyaXQ7CiAgICAgIH0KCiAgICAgIC5zdGVwIC5jb250ZW50IHsKICAgICAgICBwYWRkaW5nOiAzMnB4OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ic3RlcHBlckNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnN0ZXBzLm1hcChoPT5DYDxkaXYKICAgICAgICAgICAgICBjbGFzcz0ic3RlcCAke2g9PT10aGlzLnNlbGVjdGVkU3RlcD8ic2VsZWN0ZWQiOm51bGx9ICR7dGhpcy5nZXRJbmRleE9mU3RlcChoKT50aGlzLmdldEluZGV4T2ZTdGVwKHRoaXMuc2VsZWN0ZWRTdGVwKT8iaGlkZGVuU3RlcCI6IiJ9ICR7dGhpcy5nZXRJbmRleE9mU3RlcChoKT09PTA/ImVudHJhbmNlIjoiIn0iCiAgICAgICAgICAgID4KICAgICAgICAgICAgICAke3RoaXMuZ2V0SW5kZXhPZlN0ZXAoaCk+MD9DYDxkaXYgY2xhc3M9ImdvQmFjayIgQGNsaWNrPSR7dGhpcy5nb0JhY2t9PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSW50ZXIiPjwtPC9zcGFuPiBnbyB0byBwcmV2aW91cyBzdGVwPC9kaXY+YDoiIn0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGVwQ291bnRlciI+CiAgICAgICAgICAgICAgICBTdGVwICR7dGhpcy5zdGVwcy5maW5kSW5kZXgoZj0+Zj09PWgpKzF9IG9mCiAgICAgICAgICAgICAgICAke3RoaXMuc3RlcHMubGVuZ3RofQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpdGxlIj4ke2gudGl0bGV9PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+JHtoLmNvbnRlbnR9PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PiBgKX0KICAgICAgPC9kaXY+CiAgICBgfWdldEluZGV4T2ZTdGVwPShSYih0aGlzLHUpLGg9PnRoaXMuc3RlcHMuZmluZEluZGV4KGY9Pmg9PT1mKSk7YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDApLHRoaXMuc2VsZWN0ZWRTdGVwPXRoaXMuc3RlcHNbMF0sdGhpcy5zZXRTY3JvbGxTdGF0dXMoKSxhd2FpdCB0aGlzLmRvbXRvb2xzLmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMzUwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXAuZW50cmFuY2UiKT8uY2xhc3NMaXN0LnJlbW92ZSgiZW50cmFuY2UiKX1hc3luYyB1cGRhdGVkKCl7dGhpcy5zZXRTY3JvbGxTdGF0dXMoKX1zY3JvbGxlcjthc3luYyBzZXRTY3JvbGxTdGF0dXMoKXtsZXQgaD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnN0ZXBwZXJDb250YWluZXIiKSxmPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc3RlcCIpLHg9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zZWxlY3RlZCIpO2lmKCF4KXJldHVybjtoLnN0eWxlLnBhZGRpbmdUb3B8fChoLnN0eWxlLnBhZGRpbmdUb3A9YCR7aC5vZmZzZXRIZWlnaHQvMi14Lm9mZnNldEhlaWdodC8yfXB4YCksY29uc29sZS5sb2coIlNldHRpbmcgc2Nyb2xsIHN0YXR1cyIpLGNvbnNvbGUubG9nKHgpO2xldCB2PXgub2Zmc2V0VG9wLWgub2Zmc2V0SGVpZ2h0LzIreC5vZmZzZXRIZWlnaHQvMjtjb25zb2xlLmxvZyh2KTtsZXQgYj1hd2FpdCBEYS5zZXR1cERvbVRvb2xzKCk7dGhpcy5zY3JvbGxlcnx8KHRoaXMuc2Nyb2xsZXI9bmV3IGp0LlN3ZWV0U2Nyb2xsKHt2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiExLGVhc2luZzoiZWFzZUluT3V0RXhwbyIsZHVyYXRpb246NzAwfSxoKSksIXRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkJiZ0aGlzLnNlbGVjdGVkU3RlcC52YWxpZGF0aW9uRnVuYyYmKHRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyLHRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSEwLGF3YWl0IHRoaXMuc2VsZWN0ZWRTdGVwLnZhbGlkYXRpb25GdW5jKHRoaXMseCx0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXIuc2lnbmFsKSksdGhpcy5zY3JvbGxlci50byh2KX1hc3luYyBnb0JhY2soKXtsZXQgaD10aGlzLnN0ZXBzLmZpbmRJbmRleCh2PT52PT09dGhpcy5zZWxlY3RlZFN0ZXApO2lmKGg8PTApcmV0dXJuO3RoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlciYmdGhpcy5zZWxlY3RlZFN0ZXAuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7bGV0IGY9dGhpcy5zdGVwc1toXTtmLnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExO2xldCB4PXRoaXMuc3RlcHNbaC0xXTt4LnZhbGlkYXRpb25GdW5jQ2FsbGVkPSExLHRoaXMuc2VsZWN0ZWRTdGVwPXgsYXdhaXQgdGhpcy5kb210b29sc1Byb21pc2UsYXdhaXQgdGhpcy5kb210b29scy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDEwMCksdGhpcy5zZWxlY3RlZFN0ZXAub25SZXR1cm5Ub1N0ZXBGdW5jPy4odGhpcyx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnNlbGVjdGVkIikpfWdvTmV4dCgpe2xldCBoPXRoaXMuc3RlcHMuZmluZEluZGV4KHY9PnY9PT10aGlzLnNlbGVjdGVkU3RlcCk7aWYoaDwwfHxoPj10aGlzLnN0ZXBzLmxlbmd0aC0xKXJldHVybjt0aGlzLnNlbGVjdGVkU3RlcC5hYm9ydENvbnRyb2xsZXImJnRoaXMuc2VsZWN0ZWRTdGVwLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO2xldCBmPXRoaXMuc3RlcHNbaF07Zi52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMTtsZXQgeD10aGlzLnN0ZXBzW2grMV07eC52YWxpZGF0aW9uRnVuY0NhbGxlZD0hMSx0aGlzLnNlbGVjdGVkU3RlcD14fXN0YXRpY3tSYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgYzNyPXAoKCk9PntsM3IoKX0pO3ZhciBkM3I9cCgoKT0+e0M0cigpO1U0cigpO1E0cigpO0o0cigpO2kzcigpO2EzcigpO2MzcigpfSk7dmFyIHUzcixwM3I9cCgoKT0+e3hlKCk7dTNyPSgpPT5DYAogIDxzdHlsZT4KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgZ2FwOiAzMnB4OwogICAgfQoKICAgIC5zZWN0aW9uIHsKICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzA5MDkwYiIsIiNmYWZhZmEiKX07CiAgICB9CgogICAgLnNlY3Rpb24tZGVzY3JpcHRpb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICB9CgogICAgZGVlcy1pbWFnZS12aWV3ZXIgewogICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAuY29tcGFjdCB7CiAgICAgIGhlaWdodDogMjUwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkpQRUcgSW1hZ2Ugd2l0aCBUb29sYmFyPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkEgbGFuZHNjYXBlIHBob3RvIHdpdGggem9vbSwgcGFuLCBmaXQsIGFuZCBkb3dubG9hZCBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGFsdD0iTW91bnRhaW4gbGFuZHNjYXBlIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5QTkcgd2l0aCBUcmFuc3BhcmVuY3k8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VHJhbnNwYXJlbnQgUE5HIGRpc3BsYXllZCBvbiBhIGNoZWNrZXJib2FyZCBiYWNrZ3JvdW5kLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvNC80Ny9QTkdfdHJhbnNwYXJlbmN5X2RlbW9uc3RyYXRpb25fMS5wbmciCiAgICAgICAgYWx0PSJQTkcgdHJhbnNwYXJlbmN5IGRlbW8iCiAgICAgID48L2RlZXMtaW1hZ2Utdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNWRyBJbWFnZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5TY2FsYWJsZSB2ZWN0b3IgZ3JhcGhpYy48L2Rpdj4KICAgICAgPGRlZXMtaW1hZ2Utdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21tb25zLzAvMDIvU1ZHX2xvZ28uc3ZnIgogICAgICAgIGFsdD0iU1ZHIGxvZ28iCiAgICAgICAgZml0PSJjb250YWluIgogICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5ObyBUb29sYmFyIFZhcmlhbnQ8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+SW1hZ2Ugdmlld2VyIHdpdGggdGhlIHRvb2xiYXIgaGlkZGVuLjwvZGl2PgogICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICBjbGFzcz0iY29tcGFjdCIKICAgICAgICBzcmM9Imh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNDY5NDc0OTY4MDI4LTU2NjIzZjAyZTQyZT93PTgwMCIKICAgICAgICBhbHQ9Ik5hdHVyZSBzY2VuZSIKICAgICAgICAuc2hvd1Rvb2xiYXI9JHshMX0KICAgICAgPjwvZGVlcy1pbWFnZS12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBLbixtMSxoM3IsZ2RlPXAoKCk9Pnt4ZSgpO29yKCk7cDNyKCk7S249ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxtMT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0saDNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1pbWFnZS12aWV3ZXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXSxxLEI9W10sRz1bXSxlZSxQPVtdLGdlPVtdLHdlLEk9W10sbmU9W107dmFyIGtlPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgWT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKCldLGw9W2ooKV0sZD1baigpXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1bZmUoKV0sTz1bZmUoKV0sRj1bZmUoKV0sUj1bZmUoKV0sJD1bZmUoKV0scT1bZmUoKV0sZWU9W2ZlKCldLHdlPVtmZSgpXSxLbih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+InNyYyJpbiBBLGdldDpBPT5BLnNyYyxzZXQ6KEEsTCk9PntBLnNyYz1MfX0sbWV0YWRhdGE6WX0sbyxzKSxLbih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImFsdCJpbiBBLGdldDpBPT5BLmFsdCxzZXQ6KEEsTCk9PntBLmFsdD1MfX0sbWV0YWRhdGE6WX0sYyx1KSxLbih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImZpdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImZpdCJpbiBBLGdldDpBPT5BLmZpdCxzZXQ6KEEsTCk9PntBLmZpdD1MfX0sbWV0YWRhdGE6WX0saCxmKSxLbih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ic2hvd1Rvb2xiYXIiaW4gQSxnZXQ6QT0+QS5zaG93VG9vbGJhcixzZXQ6KEEsTCk9PntBLnNob3dUb29sYmFyPUx9fSxtZXRhZGF0YTpZfSx2LGIpLEtuKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiem9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+Inpvb20iaW4gQSxnZXQ6QT0+QS56b29tLHNldDooQSxMKT0+e0Euem9vbT1MfX0sbWV0YWRhdGE6WX0sdyxrKSxLbih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhblgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJwYW5YImluIEEsZ2V0OkE9PkEucGFuWCxzZXQ6KEEsTCk9PntBLnBhblg9TH19LG1ldGFkYXRhOll9LHosTSksS24odGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYW5ZIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4icGFuWSJpbiBBLGdldDpBPT5BLnBhblksc2V0OihBLEwpPT57QS5wYW5ZPUx9fSxtZXRhZGF0YTpZfSxELE4pLEtuKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImlzRHJhZ2dpbmciaW4gQSxnZXQ6QT0+QS5pc0RyYWdnaW5nLHNldDooQSxMKT0+e0EuaXNEcmFnZ2luZz1MfX0sbWV0YWRhdGE6WX0sXyxTKSxLbih0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJsb2FkaW5nImluIEEsZ2V0OkE9PkEubG9hZGluZyxzZXQ6KEEsTCk9PntBLmxvYWRpbmc9TH19LG1ldGFkYXRhOll9LFQsRSksS24odGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImVycm9yImluIEEsZ2V0OkE9PkEuZXJyb3Isc2V0OihBLEwpPT57QS5lcnJvcj1MfX0sbWV0YWRhdGE6WX0sQixHKSxLbih0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbWFnZU5hdHVyYWxXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImltYWdlTmF0dXJhbFdpZHRoImluIEEsZ2V0OkE9PkEuaW1hZ2VOYXR1cmFsV2lkdGgsc2V0OihBLEwpPT57QS5pbWFnZU5hdHVyYWxXaWR0aD1MfX0sbWV0YWRhdGE6WX0sUCxnZSksS24odGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VOYXR1cmFsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4iaW1hZ2VOYXR1cmFsSGVpZ2h0ImluIEEsZ2V0OkE9PkEuaW1hZ2VOYXR1cmFsSGVpZ2h0LHNldDooQSxMKT0+e0EuaW1hZ2VOYXR1cmFsSGVpZ2h0PUx9fSxtZXRhZGF0YTpZfSxJLG5lKSxLbihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpZfSxudWxsLHIpLGtlPWk9dC52YWx1ZSxZJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOll9KX1zdGF0aWMgZGVtbz11M3I7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPW0xKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoWSl7dGhpcy4jZT1ZfSN0PShtMSh0aGlzLHMpLG0xKHRoaXMsYywiIikpO2dldCBhbHQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgYWx0KFkpe3RoaXMuI3Q9WX0jcj0obTEodGhpcyx1KSxtMSh0aGlzLGgsImNvbnRhaW4iKSk7Z2V0IGZpdCgpe3JldHVybiB0aGlzLiNyfXNldCBmaXQoWSl7dGhpcy4jcj1ZfSNpPShtMSh0aGlzLGYpLG0xKHRoaXMsdiwhMCkpO2dldCBzaG93VG9vbGJhcigpe3JldHVybiB0aGlzLiNpfXNldCBzaG93VG9vbGJhcihZKXt0aGlzLiNpPVl9I2E9KG0xKHRoaXMsYiksbTEodGhpcyx3LDEpKTtnZXQgem9vbSgpe3JldHVybiB0aGlzLiNhfXNldCB6b29tKFkpe3RoaXMuI2E9WX0jbj0obTEodGhpcyxrKSxtMSh0aGlzLHosMCkpO2dldCBwYW5YKCl7cmV0dXJuIHRoaXMuI259c2V0IHBhblgoWSl7dGhpcy4jbj1ZfSNvPShtMSh0aGlzLE0pLG0xKHRoaXMsRCwwKSk7Z2V0IHBhblkoKXtyZXR1cm4gdGhpcy4jb31zZXQgcGFuWShZKXt0aGlzLiNvPVl9I3M9KG0xKHRoaXMsTiksbTEodGhpcyxfLCExKSk7Z2V0IGlzRHJhZ2dpbmcoKXtyZXR1cm4gdGhpcy4jc31zZXQgaXNEcmFnZ2luZyhZKXt0aGlzLiNzPVl9I2w9KG0xKHRoaXMsUyksbTEodGhpcyxULCEwKSk7Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy4jbH1zZXQgbG9hZGluZyhZKXt0aGlzLiNsPVl9I2M9KG0xKHRoaXMsRSksbTEodGhpcyxCLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGVycm9yKFkpe3RoaXMuI2M9WX0jZD0obTEodGhpcyxHKSxtMSh0aGlzLFAsMCkpO2dldCBpbWFnZU5hdHVyYWxXaWR0aCgpe3JldHVybiB0aGlzLiNkfXNldCBpbWFnZU5hdHVyYWxXaWR0aChZKXt0aGlzLiNkPVl9I3U9KG0xKHRoaXMsZ2UpLG0xKHRoaXMsSSwwKSk7Z2V0IGltYWdlTmF0dXJhbEhlaWdodCgpe3JldHVybiB0aGlzLiN1fXNldCBpbWFnZU5hdHVyYWxIZWlnaHQoWSl7dGhpcy4jdT1ZfWRyYWdTdGFydFg9KG0xKHRoaXMsbmUpLDApO2RyYWdTdGFydFk9MDtkcmFnU3RhcnRQYW5YPTA7ZHJhZ1N0YXJ0UGFuWT0wO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDE2cHg7CiAgICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTQgMzElIDkyJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjphY3RpdmUgewogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjM2YzZjQ2Iil9OwogICAgICAgIH0KCiAgICAgICAgLnpvb20tbGV2ZWwgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2UtYXJlYSB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIGN1cnNvcjogJHt0aGlzLnpvb20+MT90aGlzLmlzRHJhZ2dpbmc/ImdyYWJiaW5nIjoiZ3JhYiI6ImRlZmF1bHQifTsKICAgICAgICB9CgogICAgICAgIC5jaGVja2VyYm9hcmQgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOgogICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICR7bS5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgtNDVkZWcsICR7bS5iZFRoZW1lKCIjZjBmMGYwIiwiIzFhMWExYSIpfSAyNSUsIHRyYW5zcGFyZW50IDI1JSksCiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke20uYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKSwKICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQgNzUlLCAke20uYmRUaGVtZSgiI2YwZjBmMCIsIiMxYTFhMWEiKX0gNzUlKTsKICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTZweCAxNnB4OwogICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDhweCwgOHB4IC04cHgsIC04cHggMHB4OwogICAgICAgICAgb3BhY2l0eTogMC4zOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHt0aGlzLnBhblh9cHgsICR7dGhpcy5wYW5ZfXB4KSBzY2FsZSgke3RoaXMuem9vbX0pOwogICAgICAgICAgdHJhbnNpdGlvbjogJHt0aGlzLmlzRHJhZ2dpbmc/Im5vbmUiOiJ0cmFuc2Zvcm0gMC4ycyBlYXNlIn07CiAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLXdyYXBwZXIgaW1nIHsKICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiAke3RoaXMuZml0fTsKICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuaW1hZ2Utd3JhcHBlciBpbWcuYWN0dWFsIHsKICAgICAgICAgIG1heC13aWR0aDogbm9uZTsKICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7CiAgICAgICAgICBvYmplY3QtZml0OiBub25lOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgyNTUsMjU1LDI1NSwwLjgpIiwicmdiYSgwLDAsMCwwLjYpIil9OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzcxNzE3YSIsIiNhMWExYWEiKX07CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSAuZXJyb3ItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkYzI2MjYiLCIjZjg3MTcxIil9OwogICAgICAgICAgZm9udC1zaXplOiAzMnB4OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLXRleHQgewogICAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIH0KCiAgICAgICAgLmltYWdlLWluZm8gewogICAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjYTFhMWFhIiwiIzcxNzE3YSIpfTsKICAgICAgICAgIHBhZGRpbmc6IDAgNHB4OwogICAgICAgIH0KICAgICAgPC9zdHlsZT4KCiAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj9DYAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21PdXR9IHRpdGxlPSJab29tIG91dCI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpab29tT3V0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy5yZXNldFpvb219PgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Inpvb20tbGV2ZWwiPiR7TWF0aC5yb3VuZCh0aGlzLnpvb20qMTAwKX0lPC9zcGFuPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnpvb21Jbn0gdGl0bGU9Ilpvb20gaW4iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmZpdFRvU2NyZWVufSB0aXRsZT0iRml0IHRvIHNjcmVlbiI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMuYWN0dWFsU2l6ZX0gdGl0bGU9IkFjdHVhbCBzaXplICgxMDAlKSI+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpTY2FuIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHt0aGlzLmRvd25sb2FkfSB0aXRsZT0iRG93bmxvYWQiPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RG93bmxvYWQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmltYWdlTmF0dXJhbFdpZHRoPjA/Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpbWFnZS1pbmZvIj4ke3RoaXMuaW1hZ2VOYXR1cmFsV2lkdGh9IHggJHt0aGlzLmltYWdlTmF0dXJhbEhlaWdodH08L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0iaW1hZ2UtYXJlYSIKICAgICAgICAgIEB3aGVlbD0ke3RoaXMuaGFuZGxlV2hlZWx9CiAgICAgICAgICBAbW91c2Vkb3duPSR7dGhpcy5oYW5kbGVNb3VzZURvd259CiAgICAgICAgICBAbW91c2Vtb3ZlPSR7dGhpcy5oYW5kbGVNb3VzZU1vdmV9CiAgICAgICAgICBAbW91c2V1cD0ke3RoaXMuaGFuZGxlTW91c2VVcH0KICAgICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZVVwfQogICAgICAgICAgQGRibGNsaWNrPSR7dGhpcy5oYW5kbGVEb3VibGVDbGlja30KICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGVja2VyYm9hcmQiPjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2Utd3JhcHBlciI+CiAgICAgICAgICAgICR7dGhpcy5zcmM/Q2AKICAgICAgICAgICAgICA8aW1nCiAgICAgICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmZpdD09PSJhY3R1YWwiPyJhY3R1YWwiOiIifSIKICAgICAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgICAgICBhbHQ9IiR7dGhpcy5hbHR9IgogICAgICAgICAgICAgICAgQGxvYWQ9JHt0aGlzLmhhbmRsZUltYWdlTG9hZH0KICAgICAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgICAgICAgIGRyYWdnYWJsZT0iZmFsc2UiCiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgYDoiIn0KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgJHt0aGlzLmxvYWRpbmcmJnRoaXMuc3JjP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQogICAgICAgICAgJHt0aGlzLmVycm9yP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVycm9yLW92ZXJsYXkiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gY2xhc3M9ImVycm9yLWljb24iIGljb249Imx1Y2lkZTpJbWFnZU9mZiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfXpvb21Jbigpe3RoaXMuem9vbT1NYXRoLm1pbigxMCx0aGlzLnpvb20qMS4yNSl9em9vbU91dCgpe3RoaXMuem9vbT1NYXRoLm1heCguMSx0aGlzLnpvb20vMS4yNSksdGhpcy56b29tPD0xJiYodGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTApfXJlc2V0Wm9vbSgpe3RoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wfWZpdFRvU2NyZWVuKCl7dGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5maXQ9ImNvbnRhaW4ifWFjdHVhbFNpemUoKXt0aGlzLnpvb209MSx0aGlzLnBhblg9MCx0aGlzLnBhblk9MCx0aGlzLmZpdD0iYWN0dWFsIn1kb3dubG9hZCgpe2lmKCF0aGlzLnNyYylyZXR1cm47bGV0IFk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO1kuaHJlZj10aGlzLnNyYyxZLmRvd25sb2FkPXRoaXMuc3JjLnNwbGl0KCIvIikucG9wKCl8fCJpbWFnZSIsWS5jbGljaygpfWhhbmRsZUltYWdlTG9hZChZKXtsZXQgQT1ZLnRhcmdldDt0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0iIix0aGlzLmltYWdlTmF0dXJhbFdpZHRoPUEubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PUEubmF0dXJhbEhlaWdodH1oYW5kbGVJbWFnZUVycm9yKCl7dGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIGltYWdlIn1oYW5kbGVXaGVlbChZKXtZLnByZXZlbnREZWZhdWx0KCk7bGV0IEE9WS5kZWx0YVk+MD8uOToxLjEsTD1NYXRoLm1pbigxMCxNYXRoLm1heCguMSx0aGlzLnpvb20qQSkpO3RoaXMuem9vbT1MLHRoaXMuem9vbTw9MSYmKHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX1oYW5kbGVNb3VzZURvd24oWSl7dGhpcy56b29tPD0xfHwodGhpcy5pc0RyYWdnaW5nPSEwLHRoaXMuZHJhZ1N0YXJ0WD1ZLmNsaWVudFgsdGhpcy5kcmFnU3RhcnRZPVkuY2xpZW50WSx0aGlzLmRyYWdTdGFydFBhblg9dGhpcy5wYW5YLHRoaXMuZHJhZ1N0YXJ0UGFuWT10aGlzLnBhblkpfWhhbmRsZU1vdXNlTW92ZShZKXt0aGlzLmlzRHJhZ2dpbmcmJih0aGlzLnBhblg9dGhpcy5kcmFnU3RhcnRQYW5YKyhZLmNsaWVudFgtdGhpcy5kcmFnU3RhcnRYKSx0aGlzLnBhblk9dGhpcy5kcmFnU3RhcnRQYW5ZKyhZLmNsaWVudFktdGhpcy5kcmFnU3RhcnRZKSl9aGFuZGxlTW91c2VVcCgpe3RoaXMuaXNEcmFnZ2luZz0hMX1oYW5kbGVEb3VibGVDbGljaygpe3RoaXMuem9vbT09PTE/dGhpcy56b29tPTI6KHRoaXMuem9vbT0xLHRoaXMucGFuWD0wLHRoaXMucGFuWT0wKX11cGRhdGVkKFkpe3N1cGVyLnVwZGF0ZWQoWSksWS5oYXMoInNyYyIpJiYodGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9IiIsdGhpcy56b29tPTEsdGhpcy5wYW5YPTAsdGhpcy5wYW5ZPTAsdGhpcy5pbWFnZU5hdHVyYWxXaWR0aD0wLHRoaXMuaW1hZ2VOYXR1cmFsSGVpZ2h0PTApfXN0YXRpY3ttMShpLHIpfX07cmV0dXJuIGtlPWl9KSgpfSk7dmFyIGYzcj1wKCgpPT57Z2RlKCl9KTt2YXIgbTNyLGczcj1wKCgpPT57eGUoKTttM3I9KCk9PkNgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDhweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmOGY5ZmEiLCIjMGEwYTBhIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICB3aWR0aDogMTAwJTsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICB9CgogICAgLnNlY3Rpb24tdGl0bGUgewogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc2VjdGlvbi1kZXNjcmlwdGlvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgIH0KCiAgICBkZWVzLWF1ZGlvLXZpZXdlciB7CiAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyB3aXRoIFdhdmVmb3JtPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1ZGlvIHBsYXllciB3aXRoIHdhdmVmb3JtIHZpc3VhbGl6YXRpb24gYW5kIGZ1bGwgdHJhbnNwb3J0IGNvbnRyb2xzLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAxIgogICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICA+PC9kZWVzLWF1ZGlvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5BdWRpbyB3aXRob3V0IFdhdmVmb3JtPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlNpbXBsZSBhdWRpbyBwbGF5ZXIgd2l0aCBhIHNlZWtiYXIgaW5zdGVhZCBvZiBhIHdhdmVmb3JtLjwvZGl2PgogICAgICA8ZGVlcy1hdWRpby12aWV3ZXIKICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMi5tcDMiCiAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAyIgogICAgICAgIC5zaG93V2F2ZWZvcm09JHshMX0KICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+TWluaW1hbCBBdWRpbyBQbGF5ZXI8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+Tm8gdGl0bGUgb3IgYXJ0aXN0IG1ldGFkYXRhIOKAlCBqdXN0IHRoZSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLWF1ZGlvLXZpZXdlcgogICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0zLm1wMyIKICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBOYSxUcixiM3IsYmRlPXAoKCk9Pnt4ZSgpO29yKCk7ZzNyKCk7TmE9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxUcj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sYjNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1hdWRpby12aWV3ZXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXSxxLEI9W10sRz1bXSxlZSxQPVtdLGdlPVtdLHdlLEk9W10sbmU9W10sa2UsWT1bXSxBPVtdLEwsVT1bXSxWPVtdLFgsZGU9W10sdmU9W107dmFyIExlPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgVz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKCldLGw9W2ooKV0sZD1baigpXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpCb29sZWFufSldLE89W2ooe3R5cGU6Qm9vbGVhbn0pXSxGPVtmZSgpXSxSPVtmZSgpXSwkPVtmZSgpXSxxPVtmZSgpXSxlZT1bZmUoKV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxYPVtmZSgpXSxOYSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InNyYyJpbiBILGdldDpIPT5ILnNyYyxzZXQ6KEgsdGUpPT57SC5zcmM9dGV9fSxtZXRhZGF0YTpXfSxvLHMpLE5hKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJ0aXRsZSJpbiBILGdldDpIPT5ILnRpdGxlLHNldDooSCx0ZSk9PntILnRpdGxlPXRlfX0sbWV0YWRhdGE6V30sYyx1KSxOYSh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFydGlzdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImFydGlzdCJpbiBILGdldDpIPT5ILmFydGlzdCxzZXQ6KEgsdGUpPT57SC5hcnRpc3Q9dGV9fSxtZXRhZGF0YTpXfSxoLGYpLE5hKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1dhdmVmb3JtIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4ic2hvd1dhdmVmb3JtImluIEgsZ2V0Okg9Pkguc2hvd1dhdmVmb3JtLHNldDooSCx0ZSk9PntILnNob3dXYXZlZm9ybT10ZX19LG1ldGFkYXRhOld9LHYsYiksTmEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhdXRvcGxheSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImF1dG9wbGF5ImluIEgsZ2V0Okg9PkguYXV0b3BsYXksc2V0OihILHRlKT0+e0guYXV0b3BsYXk9dGV9fSxtZXRhZGF0YTpXfSx3LGspLE5hKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9vcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+Imxvb3AiaW4gSCxnZXQ6SD0+SC5sb29wLHNldDooSCx0ZSk9PntILmxvb3A9dGV9fSxtZXRhZGF0YTpXfSx6LE0pLE5hKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQbGF5aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4iaXNQbGF5aW5nImluIEgsZ2V0Okg9PkguaXNQbGF5aW5nLHNldDooSCx0ZSk9PntILmlzUGxheWluZz10ZX19LG1ldGFkYXRhOld9LEQsTiksTmEodGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGltZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImN1cnJlbnRUaW1lImluIEgsZ2V0Okg9PkguY3VycmVudFRpbWUsc2V0OihILHRlKT0+e0guY3VycmVudFRpbWU9dGV9fSxtZXRhZGF0YTpXfSxfLFMpLE5hKHRoaXMsbnVsbCwkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJkdXJhdGlvbiJpbiBILGdldDpIPT5ILmR1cmF0aW9uLHNldDooSCx0ZSk9PntILmR1cmF0aW9uPXRlfX0sbWV0YWRhdGE6V30sVCxFKSxOYSh0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZvbHVtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+InZvbHVtZSJpbiBILGdldDpIPT5ILnZvbHVtZSxzZXQ6KEgsdGUpPT57SC52b2x1bWU9dGV9fSxtZXRhZGF0YTpXfSxCLEcpLE5hKHRoaXMsbnVsbCxlZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTXV0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkg9PiJpc011dGVkImluIEgsZ2V0Okg9PkguaXNNdXRlZCxzZXQ6KEgsdGUpPT57SC5pc011dGVkPXRlfX0sbWV0YWRhdGE6V30sUCxnZSksTmEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImxvYWRpbmciaW4gSCxnZXQ6SD0+SC5sb2FkaW5nLHNldDooSCx0ZSk9PntILmxvYWRpbmc9dGV9fSxtZXRhZGF0YTpXfSxJLG5lKSxOYSh0aGlzLG51bGwsa2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6SD0+ImVycm9yImluIEgsZ2V0Okg9PkguZXJyb3Isc2V0OihILHRlKT0+e0guZXJyb3I9dGV9fSxtZXRhZGF0YTpXfSxZLEEpLE5hKHRoaXMsbnVsbCxMLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZWZvcm1EYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4id2F2ZWZvcm1EYXRhImluIEgsZ2V0Okg9Pkgud2F2ZWZvcm1EYXRhLHNldDooSCx0ZSk9PntILndhdmVmb3JtRGF0YT10ZX19LG1ldGFkYXRhOld9LFUsViksTmEodGhpcyxudWxsLFgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ3YXZlZm9ybVJlYWR5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpIPT4id2F2ZWZvcm1SZWFkeSJpbiBILGdldDpIPT5ILndhdmVmb3JtUmVhZHksc2V0OihILHRlKT0+e0gud2F2ZWZvcm1SZWFkeT10ZX19LG1ldGFkYXRhOld9LGRlLHZlKSxOYShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpXfSxudWxsLHIpLExlPWk9dC52YWx1ZSxXJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOld9KX1zdGF0aWMgZGVtbz1tM3I7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdOyNlPVRyKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoVyl7dGhpcy4jZT1XfSN0PShUcih0aGlzLHMpLFRyKHRoaXMsYywiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShXKXt0aGlzLiN0PVd9I3I9KFRyKHRoaXMsdSksVHIodGhpcyxoLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNyfXNldCBhcnRpc3QoVyl7dGhpcy4jcj1XfSNpPShUcih0aGlzLGYpLFRyKHRoaXMsdiwhMCkpO2dldCBzaG93V2F2ZWZvcm0oKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1dhdmVmb3JtKFcpe3RoaXMuI2k9V30jYT0oVHIodGhpcyxiKSxUcih0aGlzLHcsITEpKTtnZXQgYXV0b3BsYXkoKXtyZXR1cm4gdGhpcy4jYX1zZXQgYXV0b3BsYXkoVyl7dGhpcy4jYT1XfSNuPShUcih0aGlzLGspLFRyKHRoaXMseiwhMSkpO2dldCBsb29wKCl7cmV0dXJuIHRoaXMuI259c2V0IGxvb3AoVyl7dGhpcy4jbj1XfSNvPShUcih0aGlzLE0pLFRyKHRoaXMsRCwhMSkpO2dldCBpc1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQbGF5aW5nKFcpe3RoaXMuI289V30jcz0oVHIodGhpcyxOKSxUcih0aGlzLF8sMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNzfXNldCBjdXJyZW50VGltZShXKXt0aGlzLiNzPVd9I2w9KFRyKHRoaXMsUyksVHIodGhpcyxULDApKTtnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy4jbH1zZXQgZHVyYXRpb24oVyl7dGhpcy4jbD1XfSNjPShUcih0aGlzLEUpLFRyKHRoaXMsQiwxKSk7Z2V0IHZvbHVtZSgpe3JldHVybiB0aGlzLiNjfXNldCB2b2x1bWUoVyl7dGhpcy4jYz1XfSNkPShUcih0aGlzLEcpLFRyKHRoaXMsUCwhMSkpO2dldCBpc011dGVkKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGlzTXV0ZWQoVyl7dGhpcy4jZD1XfSN1PShUcih0aGlzLGdlKSxUcih0aGlzLEksITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiN1fXNldCBsb2FkaW5nKFcpe3RoaXMuI3U9V30jcD0oVHIodGhpcyxuZSksVHIodGhpcyxZLCIiKSk7Z2V0IGVycm9yKCl7cmV0dXJuIHRoaXMuI3B9c2V0IGVycm9yKFcpe3RoaXMuI3A9V30jaD0oVHIodGhpcyxBKSxUcih0aGlzLFUsW10pKTtnZXQgd2F2ZWZvcm1EYXRhKCl7cmV0dXJuIHRoaXMuI2h9c2V0IHdhdmVmb3JtRGF0YShXKXt0aGlzLiNoPVd9I2Y9KFRyKHRoaXMsViksVHIodGhpcyxkZSwhMSkpO2dldCB3YXZlZm9ybVJlYWR5KCl7cmV0dXJuIHRoaXMuI2Z9c2V0IHdhdmVmb3JtUmVhZHkoVyl7dGhpcy4jZj1XfWF1ZGlvRWxlbWVudD0oVHIodGhpcyx2ZSksbnVsbCk7Y2FudmFzRWxlbWVudD1udWxsO2FuaW1GcmFtZUlkPTA7dm9sdW1lQmVmb3JlTXV0ZT0xO3JlbmRlcigpe2xldCBXPXRoaXMudGl0bGUmJnRoaXMuYXJ0aXN0P2Ake3RoaXMudGl0bGV9IFx1MjAxNCAke3RoaXMuYXJ0aXN0fWA6dGhpcy50aXRsZXx8dGhpcy5hcnRpc3R8fCIiO3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAudmlld2VyLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NyUpIiwiaHNsKDIxNSAyMCUgMTAlKSIpfTsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItZ3JvdXAgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWdyb3VwLS1lbmQgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDRweDsKICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24gZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICB9CgogICAgICAgIC50b29sYmFyLWJ1dHRvbjpob3ZlciB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgIH0KCiAgICAgICAgLnRvb2xiYXItYnV0dG9uOmFjdGl2ZSB7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMzZjNmNDYiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci1idXR0b24uYWN0aXZlIHsKICAgICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgfQoKICAgICAgICAudG9vbGJhci10aXRsZSB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgfQoKICAgICAgICAudGltZS1kaXNwbGF5IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgICAgIG1pbi13aWR0aDogOTBweDsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDcwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi1tb3otcmFuZ2UtdGh1bWIgewogICAgICAgICAgd2lkdGg6IDEycHg7CiAgICAgICAgICBoZWlnaHQ6IDEycHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQoKICAgICAgICAuY29udGVudC1hcmVhIHsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIC53YXZlZm9ybS1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMgewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLWNvbnRhaW5lciB7CiAgICAgICAgICB3aWR0aDogODAlOwogICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLWZpbGwgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4xcyBsaW5lYXI7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICAgIH0KCiAgICAgICAgLmVycm9yLW92ZXJsYXkgLmVycm9yLWljb24gewogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMjglKSIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3ZXItY29udGFpbmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVQbGF5fT4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZToke3RoaXMuaXNQbGF5aW5nPyJQYXVzZSI6IlBsYXkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0idGltZS1kaXNwbGF5Ij4KICAgICAgICAgICAgICAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmN1cnJlbnRUaW1lKX0gLyAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX0KICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgJHtXP0NgCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXRpdGxlIj4ke1d9PC9zcGFuPgogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uICR7dGhpcy5sb29wPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnRvZ2dsZUxvb3B9CiAgICAgICAgICAgICAgdGl0bGU9Ikxvb3AiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpSZXBlYXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InZvbHVtZS1ncm91cCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idG9vbGJhci1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlTXV0ZX0gdGl0bGU9IiR7dGhpcy5pc011dGVkPyJVbm11dGUiOiJNdXRlIn0iPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzTXV0ZWR8fHRoaXMudm9sdW1lPT09MD8iVm9sdW1lWCI6dGhpcy52b2x1bWU8LjU/IlZvbHVtZTEiOiJWb2x1bWUyIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgY2xhc3M9InZvbHVtZS1zbGlkZXIiCiAgICAgICAgICAgICAgICB0eXBlPSJyYW5nZSIKICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgIG1heD0iMSIKICAgICAgICAgICAgICAgIHN0ZXA9IjAuMDEiCiAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5pc011dGVkPzA6dGhpcy52b2x1bWUpfQogICAgICAgICAgICAgICAgQGlucHV0PSR7dGhpcy5oYW5kbGVWb2x1bWVDaGFuZ2V9CiAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1hcmVhIj4KICAgICAgICAgICR7dGhpcy5lcnJvcj9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlcnJvci1vdmVybGF5Ij4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJlcnJvci1pY29uIiBpY29uPSJsdWNpZGU6TXVzaWNPZmYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlcnJvci10ZXh0Ij4ke3RoaXMuZXJyb3J9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6dGhpcy5sb2FkaW5nP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctb3ZlcmxheSI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMuc2hvd1dhdmVmb3JtP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IndhdmVmb3JtLWNvbnRhaW5lciIgQGNsaWNrPSR7dGhpcy5oYW5kbGVXYXZlZm9ybUNsaWNrfT4KICAgICAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1jb250YWluZXIiIEBjbGljaz0ke3RoaXMuaGFuZGxlU2Vla2JhckNsaWNrfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWVrYmFyLWZpbGwiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLmR1cmF0aW9uP3RoaXMuY3VycmVudFRpbWUvdGhpcy5kdXJhdGlvbioxMDA6MH0lIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc3JjJiZ0aGlzLmluaXRBdWRpbygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLmNsZWFudXAoKX1hc3luYyB1cGRhdGVkKFcpe3N1cGVyLnVwZGF0ZWQoVyksVy5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmKHRoaXMuY2xlYW51cCgpLHRoaXMuaW5pdEF1ZGlvKCkpLChXLmhhcygid2F2ZWZvcm1EYXRhIil8fFcuaGFzKCJjdXJyZW50VGltZSIpKSYmdGhpcy5kcmF3V2F2ZWZvcm0oKX1wbGF5KCl7dGhpcy5hdWRpb0VsZW1lbnQ/LnBsYXkoKX1wYXVzZSgpe3RoaXMuYXVkaW9FbGVtZW50Py5wYXVzZSgpfXRvZ2dsZVBsYXkoKXt0aGlzLmlzUGxheWluZz90aGlzLnBhdXNlKCk6dGhpcy5wbGF5KCl9c2VlayhXKXt0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LmN1cnJlbnRUaW1lPVcpfXNldFZvbHVtZShXKXt0aGlzLnZvbHVtZT1NYXRoLm1heCgwLE1hdGgubWluKDEsVykpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKSx0aGlzLnZvbHVtZT4wJiYodGhpcy5pc011dGVkPSExKX10b2dnbGVNdXRlKCl7dGhpcy5pc011dGVkPyh0aGlzLmlzTXV0ZWQ9ITEsdGhpcy52b2x1bWU9dGhpcy52b2x1bWVCZWZvcmVNdXRlfHwuNSx0aGlzLmF1ZGlvRWxlbWVudCYmKHRoaXMuYXVkaW9FbGVtZW50LnZvbHVtZT10aGlzLnZvbHVtZSkpOih0aGlzLnZvbHVtZUJlZm9yZU11dGU9dGhpcy52b2x1bWUsdGhpcy5pc011dGVkPSEwLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQudm9sdW1lPTApKX10b2dnbGVMb29wKCl7dGhpcy5sb29wPSF0aGlzLmxvb3AsdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5sb29wPXRoaXMubG9vcCl9aW5pdEF1ZGlvKCl7dGhpcy5hdWRpb0VsZW1lbnQ9bmV3IEF1ZGlvLHRoaXMuYXVkaW9FbGVtZW50LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHRoaXMuYXVkaW9FbGVtZW50LnNyYz10aGlzLnNyYyx0aGlzLmF1ZGlvRWxlbWVudC52b2x1bWU9dGhpcy5pc011dGVkPzA6dGhpcy52b2x1bWUsdGhpcy5hdWRpb0VsZW1lbnQubG9vcD10aGlzLmxvb3AsdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj10aGlzLmF1ZGlvRWxlbWVudC5kdXJhdGlvbix0aGlzLmxvYWRpbmc9ITF9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwoKT0+e3RoaXMuaXNQbGF5aW5nPSEwLHRoaXMuc3RhcnRUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwYXVzZSIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMSx0aGlzLnN0b3BUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJlbmRlZCIsKCk9Pnt0aGlzLmlzUGxheWluZz0hMSx0aGlzLnN0b3BUaW1lVXBkYXRlKCl9KSx0aGlzLmF1ZGlvRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsKCk9Pnt0aGlzLmVycm9yPSJGYWlsZWQgdG8gbG9hZCBhdWRpbyIsdGhpcy5sb2FkaW5nPSExfSksdGhpcy5hdWRpb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidGltZXVwZGF0ZSIsKCk9Pnt0aGlzLmN1cnJlbnRUaW1lPXRoaXMuYXVkaW9FbGVtZW50LmN1cnJlbnRUaW1lfSksdGhpcy5hdXRvcGxheSYmdGhpcy5hdWRpb0VsZW1lbnQucGxheSgpLmNhdGNoKCgpPT57fSksdGhpcy5zaG93V2F2ZWZvcm0mJnRoaXMubG9hZFdhdmVmb3JtKCl9YXN5bmMgbG9hZFdhdmVmb3JtKCl7dHJ5e3RoaXMubG9hZGluZz0hMDtsZXQgSD1hd2FpdChhd2FpdCBmZXRjaCh0aGlzLnNyYykpLmFycmF5QnVmZmVyKCksdGU9bmV3IEF1ZGlvQ29udGV4dCx1ZT0oYXdhaXQgdGUuZGVjb2RlQXVkaW9EYXRhKEgpKS5nZXRDaGFubmVsRGF0YSgwKSxDZT0yMDAsaGU9TWF0aC5mbG9vcih1ZS5sZW5ndGgvQ2UpLGllPVtdO2ZvcihsZXQgSWU9MDtJZTxDZTtJZSsrKXtsZXQgWmU9MDtmb3IobGV0IEs9MDtLPGhlO0srKylaZSs9TWF0aC5hYnModWVbSWUqaGUrS10pO2llLnB1c2goWmUvaGUpfWxldCBTZT1NYXRoLm1heCguLi5pZSk7dGhpcy53YXZlZm9ybURhdGE9aWUubWFwKEllPT5TZT4wP0llL1NlOjApLHRoaXMud2F2ZWZvcm1SZWFkeT0hMCx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGUuY2xvc2UoKX1jYXRjaHt0aGlzLndhdmVmb3JtUmVhZHk9ITEsdGhpcy5sb2FkaW5nPSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy5zaG93V2F2ZWZvcm18fCF0aGlzLndhdmVmb3JtUmVhZHkpcmV0dXJuO2xldCBXPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiY2FudmFzIik7aWYoIVcpcmV0dXJuO3RoaXMuY2FudmFzRWxlbWVudD1XO2xldCBIPVcucGFyZW50RWxlbWVudCx0ZT13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSxiZT1ILmNsaWVudFdpZHRoLHVlPUguY2xpZW50SGVpZ2h0O1cud2lkdGg9YmUqdGUsVy5oZWlnaHQ9dWUqdGU7bGV0IENlPVcuZ2V0Q29udGV4dCgiMmQiKTtpZighQ2UpcmV0dXJuO0NlLnNjYWxlKHRlLHRlKSxDZS5jbGVhclJlY3QoMCwwLGJlLHVlKTtsZXQgaGU9dGhpcy53YXZlZm9ybURhdGEubGVuZ3RoO2lmKGhlPT09MClyZXR1cm47bGV0IGllPWJlL2hlLFNlPXRoaXMuZHVyYXRpb24+MD90aGlzLmN1cnJlbnRUaW1lL3RoaXMuZHVyYXRpb246MCxJZT1NYXRoLmZsb29yKFNlKmhlKSxaZT1kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygidGhlbWUtZGFyayIpfHx3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXMsSz1aZT8iaHNsKDIxMyA5MyUgNjglKSI6ImhzbCgyMTcgOTElIDYwJSkiLFo9WmU/ImhzbCgyMTcgMjUlIDIyJSkiOiJoc2woMjE0IDMxJSA4NiUpIjtmb3IobGV0IEo9MDtKPGhlO0orKyl7bGV0IG1lPXRoaXMud2F2ZWZvcm1EYXRhW0pdLEVlPU1hdGgubWF4KDIsbWUqKHVlLTQpKSxVZT1KKmllLE10PSh1ZS1FZSkvMjtDZS5maWxsU3R5bGU9SjxJZT9LOlosQ2UuZmlsbFJlY3QoVWUrLjUsTXQsaWUtMSxFZSl9fWhhbmRsZVdhdmVmb3JtQ2xpY2soVyl7bGV0IEg9Vy5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRlPShXLmNsaWVudFgtSC5sZWZ0KS9ILndpZHRoO3RoaXMuc2Vlayh0ZSp0aGlzLmR1cmF0aW9uKX1oYW5kbGVTZWVrYmFyQ2xpY2soVyl7bGV0IEg9Vy5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRlPShXLmNsaWVudFgtSC5sZWZ0KS9ILndpZHRoO3RoaXMuc2Vlayh0ZSp0aGlzLmR1cmF0aW9uKX1oYW5kbGVWb2x1bWVDaGFuZ2UoVyl7bGV0IEg9cGFyc2VGbG9hdChXLnRhcmdldC52YWx1ZSk7dGhpcy5zZXRWb2x1bWUoSCl9c3RhcnRUaW1lVXBkYXRlKCl7dGhpcy5zdG9wVGltZVVwZGF0ZSgpO2xldCBXPSgpPT57dGhpcy5hdWRpb0VsZW1lbnQmJnRoaXMuaXNQbGF5aW5nJiYodGhpcy5jdXJyZW50VGltZT10aGlzLmF1ZGlvRWxlbWVudC5jdXJyZW50VGltZSx0aGlzLmFuaW1GcmFtZUlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShXKSl9O3RoaXMuYW5pbUZyYW1lSWQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFcpfXN0b3BUaW1lVXBkYXRlKCl7dGhpcy5hbmltRnJhbWVJZCYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbUZyYW1lSWQpLHRoaXMuYW5pbUZyYW1lSWQ9MCl9Zm9ybWF0VGltZShXKXtpZighaXNGaW5pdGUoVyl8fFc8MClyZXR1cm4iMDowMCI7bGV0IEg9TWF0aC5mbG9vcihXLzYwKSx0ZT1NYXRoLmZsb29yKFclNjApO3JldHVybmAke0h9OiR7dGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1jbGVhbnVwKCl7dGhpcy5zdG9wVGltZVVwZGF0ZSgpLHRoaXMuYXVkaW9FbGVtZW50JiYodGhpcy5hdWRpb0VsZW1lbnQucGF1c2UoKSx0aGlzLmF1ZGlvRWxlbWVudC5zcmM9IiIsdGhpcy5hdWRpb0VsZW1lbnQ9bnVsbCksdGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jdXJyZW50VGltZT0wLHRoaXMuZHVyYXRpb249MCx0aGlzLndhdmVmb3JtRGF0YT1bXSx0aGlzLndhdmVmb3JtUmVhZHk9ITF9c3RhdGlje1RyKGkscil9fTtyZXR1cm4gTGU9aX0pKCl9KTt2YXIgdjNyPXAoKCk9PntiZGUoKX0pO3ZhciB4M3IseTNyPXAoKCk9Pnt4ZSgpO3gzcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogMzJweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5WaWRlbyB3aXRoIEN1c3RvbSBDb250cm9sczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BIHZpZGVvIHBsYXllciB3aXRoIG92ZXJsYXkgY29udHJvbHMsIHNlZWtpbmcsIGFuZCB2b2x1bWUgYWRqdXN0bWVudC48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9CaWdCdWNrQnVubnkubXA0IgogICAgICAgIHBvc3Rlcj0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvaW1hZ2VzL0JpZ0J1Y2tCdW5ueS5qcGciCiAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkF1dG9wbGF5IE11dGVkPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlZpZGVvIHRoYXQgYXV0b3BsYXlzIG11dGVkLCBjb21tb25seSB1c2VkIGZvciBwcmV2aWV3cy48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9FbGVwaGFudHNEcmVhbS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9pbWFnZXMvRWxlcGhhbnRzRHJlYW0uanBnIgogICAgICAgIC5hdXRvcGxheT0keyEwfQogICAgICAgIC5tdXRlZD0keyEwfQogICAgICA+PC9kZWVzLXZpZGVvLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5OYXRpdmUgQ29udHJvbHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+VmlkZW8gdXNpbmcgYnJvd3Nlci1uYXRpdmUgY29udHJvbHMgaW5zdGVhZCBvZiBjdXN0b20gb3ZlcmxheS48L2Rpdj4KICAgICAgPGRlZXMtdmlkZW8tdmlld2VyCiAgICAgICAgc3JjPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2d0di12aWRlb3MtYnVja2V0L3NhbXBsZS9Gb3JCaWdnZXJCbGF6ZXMubXA0IgogICAgICAgIC5zaG93Q29udHJvbHM9JHshMX0KICAgICAgPjwvZGVlcy12aWRlby12aWV3ZXI+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBubixHcix3M3IsdmRlPXAoKCk9Pnt4ZSgpO29yKCk7eTNyKCk7bm49ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxHcj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sdzNyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy12aWRlby12aWV3ZXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXSxGLEQ9W10sTj1bXSxSLF89W10sUz1bXSwkLFQ9W10sRT1bXSxxLEI9W10sRz1bXSxlZSxQPVtdLGdlPVtdLHdlLEk9W10sbmU9W10sa2UsWT1bXSxBPVtdLEwsVT1bXSxWPVtdO3ZhciBYPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgZGU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baigpXSxsPVtqKCldLGQ9W2ooe3R5cGU6Qm9vbGVhbn0pXSx4PVtqKHt0eXBlOkJvb2xlYW59KV0seT1baih7dHlwZTpCb29sZWFufSldLE89W2ooe3R5cGU6Qm9vbGVhbn0pXSxGPVtmZSgpXSxSPVtmZSgpXSwkPVtmZSgpXSxxPVtmZSgpXSxlZT1bZmUoKV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxubih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJzcmMiaW4gdmUsZ2V0OnZlPT52ZS5zcmMsc2V0Oih2ZSxMZSk9Pnt2ZS5zcmM9TGV9fSxtZXRhZGF0YTpkZX0sbyxzKSxubih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBvc3RlciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJwb3N0ZXIiaW4gdmUsZ2V0OnZlPT52ZS5wb3N0ZXIsc2V0Oih2ZSxMZSk9Pnt2ZS5wb3N0ZXI9TGV9fSxtZXRhZGF0YTpkZX0sYyx1KSxubih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dDb250cm9scyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJzaG93Q29udHJvbHMiaW4gdmUsZ2V0OnZlPT52ZS5zaG93Q29udHJvbHMsc2V0Oih2ZSxMZSk9Pnt2ZS5zaG93Q29udHJvbHM9TGV9fSxtZXRhZGF0YTpkZX0saCxmKSxubih0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImF1dG9wbGF5IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+ImF1dG9wbGF5ImluIHZlLGdldDp2ZT0+dmUuYXV0b3BsYXksc2V0Oih2ZSxMZSk9Pnt2ZS5hdXRvcGxheT1MZX19LG1ldGFkYXRhOmRlfSx2LGIpLG5uKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibG9vcCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJsb29wImluIHZlLGdldDp2ZT0+dmUubG9vcCxzZXQ6KHZlLExlKT0+e3ZlLmxvb3A9TGV9fSxtZXRhZGF0YTpkZX0sdyxrKSxubih0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im11dGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+Im11dGVkImluIHZlLGdldDp2ZT0+dmUubXV0ZWQsc2V0Oih2ZSxMZSk9Pnt2ZS5tdXRlZD1MZX19LG1ldGFkYXRhOmRlfSx6LE0pLG5uKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNQbGF5aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+ImlzUGxheWluZyJpbiB2ZSxnZXQ6dmU9PnZlLmlzUGxheWluZyxzZXQ6KHZlLExlKT0+e3ZlLmlzUGxheWluZz1MZX19LG1ldGFkYXRhOmRlfSxELE4pLG5uKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFRpbWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnZlPT4iY3VycmVudFRpbWUiaW4gdmUsZ2V0OnZlPT52ZS5jdXJyZW50VGltZSxzZXQ6KHZlLExlKT0+e3ZlLmN1cnJlbnRUaW1lPUxlfX0sbWV0YWRhdGE6ZGV9LF8sUyksbm4odGhpcyxudWxsLCQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJkdXJhdGlvbiJpbiB2ZSxnZXQ6dmU9PnZlLmR1cmF0aW9uLHNldDoodmUsTGUpPT57dmUuZHVyYXRpb249TGV9fSxtZXRhZGF0YTpkZX0sVCxFKSxubih0aGlzLG51bGwscSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZvbHVtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJ2b2x1bWUiaW4gdmUsZ2V0OnZlPT52ZS52b2x1bWUsc2V0Oih2ZSxMZSk9Pnt2ZS52b2x1bWU9TGV9fSxtZXRhZGF0YTpkZX0sQixHKSxubih0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+ImxvYWRpbmciaW4gdmUsZ2V0OnZlPT52ZS5sb2FkaW5nLHNldDoodmUsTGUpPT57dmUubG9hZGluZz1MZX19LG1ldGFkYXRhOmRlfSxQLGdlKSxubih0aGlzLG51bGwsd2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dmU9PiJlcnJvciJpbiB2ZSxnZXQ6dmU9PnZlLmVycm9yLHNldDoodmUsTGUpPT57dmUuZXJyb3I9TGV9fSxtZXRhZGF0YTpkZX0sSSxuZSksbm4odGhpcyxudWxsLGtlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGdWxsc2NyZWVuIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+ImlzRnVsbHNjcmVlbiJpbiB2ZSxnZXQ6dmU9PnZlLmlzRnVsbHNjcmVlbixzZXQ6KHZlLExlKT0+e3ZlLmlzRnVsbHNjcmVlbj1MZX19LG1ldGFkYXRhOmRlfSxZLEEpLG5uKHRoaXMsbnVsbCxMLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY29udHJvbHNWaXNpYmxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp2ZT0+ImNvbnRyb2xzVmlzaWJsZSJpbiB2ZSxnZXQ6dmU9PnZlLmNvbnRyb2xzVmlzaWJsZSxzZXQ6KHZlLExlKT0+e3ZlLmNvbnRyb2xzVmlzaWJsZT1MZX19LG1ldGFkYXRhOmRlfSxVLFYpLG5uKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmRlfSxudWxsLHIpLFg9aT10LnZhbHVlLGRlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmRlfSl9c3RhdGljIGRlbW89eDNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTsjZT1Hcih0aGlzLG8sIiIpO2dldCBzcmMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgc3JjKGRlKXt0aGlzLiNlPWRlfSN0PShHcih0aGlzLHMpLEdyKHRoaXMsYywiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKGRlKXt0aGlzLiN0PWRlfSNyPShHcih0aGlzLHUpLEdyKHRoaXMsaCwhMCkpO2dldCBzaG93Q29udHJvbHMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0NvbnRyb2xzKGRlKXt0aGlzLiNyPWRlfSNpPShHcih0aGlzLGYpLEdyKHRoaXMsdiwhMSkpO2dldCBhdXRvcGxheSgpe3JldHVybiB0aGlzLiNpfXNldCBhdXRvcGxheShkZSl7dGhpcy4jaT1kZX0jYT0oR3IodGhpcyxiKSxHcih0aGlzLHcsITEpKTtnZXQgbG9vcCgpe3JldHVybiB0aGlzLiNhfXNldCBsb29wKGRlKXt0aGlzLiNhPWRlfSNuPShHcih0aGlzLGspLEdyKHRoaXMseiwhMSkpO2dldCBtdXRlZCgpe3JldHVybiB0aGlzLiNufXNldCBtdXRlZChkZSl7dGhpcy4jbj1kZX0jbz0oR3IodGhpcyxNKSxHcih0aGlzLEQsITEpKTtnZXQgaXNQbGF5aW5nKCl7cmV0dXJuIHRoaXMuI299c2V0IGlzUGxheWluZyhkZSl7dGhpcy4jbz1kZX0jcz0oR3IodGhpcyxOKSxHcih0aGlzLF8sMCkpO2dldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLiNzfXNldCBjdXJyZW50VGltZShkZSl7dGhpcy4jcz1kZX0jbD0oR3IodGhpcyxTKSxHcih0aGlzLFQsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNsfXNldCBkdXJhdGlvbihkZSl7dGhpcy4jbD1kZX0jYz0oR3IodGhpcyxFKSxHcih0aGlzLEIsMSkpO2dldCB2b2x1bWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgdm9sdW1lKGRlKXt0aGlzLiNjPWRlfSNkPShHcih0aGlzLEcpLEdyKHRoaXMsUCwhMCkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2R9c2V0IGxvYWRpbmcoZGUpe3RoaXMuI2Q9ZGV9I3U9KEdyKHRoaXMsZ2UpLEdyKHRoaXMsSSwiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiN1fXNldCBlcnJvcihkZSl7dGhpcy4jdT1kZX0jcD0oR3IodGhpcyxuZSksR3IodGhpcyxZLCExKSk7Z2V0IGlzRnVsbHNjcmVlbigpe3JldHVybiB0aGlzLiNwfXNldCBpc0Z1bGxzY3JlZW4oZGUpe3RoaXMuI3A9ZGV9I2g9KEdyKHRoaXMsQSksR3IodGhpcyxVLCEwKSk7Z2V0IGNvbnRyb2xzVmlzaWJsZSgpe3JldHVybiB0aGlzLiNofXNldCBjb250cm9sc1Zpc2libGUoZGUpe3RoaXMuI2g9ZGV9aGlkZUNvbnRyb2xzVGltZXI9KEdyKHRoaXMsViksbnVsbCk7dmlkZW9FbGVtZW50PW51bGw7cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgc2Fucy1zZXJpZjsKICAgICAgICB9CgogICAgICAgIC52aWRlby1jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTsKICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIH0KCiAgICAgICAgdmlkZW8gewogICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgfQoKICAgICAgICAub3ZlcmxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBpbnNldDogMDsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5jZW50ZXItcGxheSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgICAgd2lkdGg6IDY0cHg7CiAgICAgICAgICBoZWlnaHQ6IDY0cHg7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTsKICAgICAgICAgIG9wYWNpdHk6ICR7dGhpcy5pc1BsYXlpbmc/MDoxfTsKICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiAke3RoaXMuaXNQbGF5aW5nPyJub25lIjoiYXV0byJ9OwogICAgICAgIH0KCiAgICAgICAgLmNlbnRlci1wbGF5IGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDI4cHg7CiAgICAgICAgfQoKICAgICAgICAuY2VudGVyLXBsYXk6aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4xKTsKICAgICAgICB9CgogICAgICAgIC5jb250cm9scy1iYXIgewogICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCByZ2JhKDAsIDAsIDAsIDAuNykpOwogICAgICAgICAgcGFkZGluZzogMjRweCAxMnB4IDEycHg7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogOHB4OwogICAgICAgICAgb3BhY2l0eTogJHt0aGlzLmNvbnRyb2xzVmlzaWJsZXx8IXRoaXMuaXNQbGF5aW5nPzE6MH07CiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTsKICAgICAgICB9CgogICAgICAgIC5zZWVrYmFyLXJvdyB7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGhlaWdodDogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcm93OmhvdmVyIHsKICAgICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIH0KCiAgICAgICAgLnNlZWtiYXItcHJvZ3Jlc3MgewogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjNjBhNWZhIil9OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuY29udHJvbHMtcm93IHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b24gewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLmN0cmwtYnV0dG9uIGRlZXMtaWNvbiB7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuY3RybC1idXR0b246aG92ZXIgewogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsKICAgICAgICB9CgogICAgICAgIC50aW1lLWRpc3BsYXkgewogICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7CiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIH0KCiAgICAgICAgLnNwYWNlciB7CiAgICAgICAgICBmbGV4OiAxOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1ncm91cCB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGdhcDogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXIgewogICAgICAgICAgd2lkdGg6IDYwcHg7CiAgICAgICAgICBoZWlnaHQ6IDRweDsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7CiAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIH0KCiAgICAgICAgLnZvbHVtZS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsKICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC52b2x1bWUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHsKICAgICAgICAgIHdpZHRoOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMnB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CgogICAgICAgIC5sb2FkaW5nLW92ZXJsYXkgewogICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgaW5zZXQ6IDA7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgICAgIHdpZHRoOiA0MHB4OwogICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOwogICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZmZmZjsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1vdmVybGF5IHsKICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgIGluc2V0OiAwOwogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7CiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3Itb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgICAgY29sb3I6ICNmODcxNzE7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAuZXJyb3ItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgfQogICAgICA8L3N0eWxlPgoKICAgICAgPGRpdgogICAgICAgIGNsYXNzPSJ2aWRlby1jb250YWluZXIiCiAgICAgICAgQG1vdXNlbW92ZT0ke3RoaXMuaGFuZGxlTW91c2VNb3ZlfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5oYW5kbGVNb3VzZUxlYXZlfQogICAgICA+CiAgICAgICAgPHZpZGVvCiAgICAgICAgICAuc3JjPSR7dGhpcy5zcmN9CiAgICAgICAgICAucG9zdGVyPSR7dGhpcy5wb3N0ZXJ9CiAgICAgICAgICAubXV0ZWQ9JHt0aGlzLm11dGVkfQogICAgICAgICAgLmxvb3A9JHt0aGlzLmxvb3B9CiAgICAgICAgICA/YXV0b3BsYXk9JHt0aGlzLmF1dG9wbGF5fQogICAgICAgICAgP2NvbnRyb2xzPSR7IXRoaXMuc2hvd0NvbnRyb2xzfQogICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgIEBsb2FkZWRtZXRhZGF0YT0ke3RoaXMuaGFuZGxlTG9hZGVkTWV0YWRhdGF9CiAgICAgICAgICBAcGxheT0ke3RoaXMuaGFuZGxlUGxheX0KICAgICAgICAgIEBwYXVzZT0ke3RoaXMuaGFuZGxlUGF1c2V9CiAgICAgICAgICBAZW5kZWQ9JHt0aGlzLmhhbmRsZUVuZGVkfQogICAgICAgICAgQHRpbWV1cGRhdGU9JHt0aGlzLmhhbmRsZVRpbWVVcGRhdGV9CiAgICAgICAgICBAZXJyb3I9JHt0aGlzLmhhbmRsZUVycm9yfQogICAgICAgICAgQHdhaXRpbmc9JHsoKT0+e3RoaXMubG9hZGluZz0hMH19CiAgICAgICAgICBAY2FucGxheT0keygpPT57dGhpcy5sb2FkaW5nPSExfX0KICAgICAgICA+PC92aWRlbz4KCiAgICAgICAgJHt0aGlzLnNob3dDb250cm9scz9DYAogICAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheSIgQGNsaWNrPSR7dGhpcy5oYW5kbGVPdmVybGF5Q2xpY2t9PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXItcGxheSI+CiAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtYmFyIiBAY2xpY2s9JHtkZT0+ZGUuc3RvcFByb3BhZ2F0aW9uKCl9PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlZWtiYXItcm93IiBAY2xpY2s9JHt0aGlzLmhhbmRsZVNlZWt9PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2Vla2Jhci1wcm9ncmVzcyIgc3R5bGU9IndpZHRoOiAke3RoaXMuZHVyYXRpb24/dGhpcy5jdXJyZW50VGltZS90aGlzLmR1cmF0aW9uKjEwMDowfSUiPjwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9scy1yb3ciPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlUGxheX0+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOiR7dGhpcy5pc1BsYXlpbmc/IlBhdXNlIjoiUGxheSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgoKICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aW1lLWRpc3BsYXkiPgogICAgICAgICAgICAgICAgICAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmN1cnJlbnRUaW1lKX0gLyAke3RoaXMuZm9ybWF0VGltZSh0aGlzLmR1cmF0aW9uKX0KICAgICAgICAgICAgICAgIDwvc3Bhbj4KCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3BhY2VyIj48L3NwYW4+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idm9sdW1lLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY3RybC1idXR0b24iIEBjbGljaz0ke3RoaXMudG9nZ2xlTXV0ZX0+CiAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLm11dGVkfHx0aGlzLnZvbHVtZT09PTA/IlZvbHVtZVgiOnRoaXMudm9sdW1lPC41PyJWb2x1bWUxIjoiVm9sdW1lMiJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2b2x1bWUtc2xpZGVyIgogICAgICAgICAgICAgICAgICAgIHR5cGU9InJhbmdlIgogICAgICAgICAgICAgICAgICAgIG1pbj0iMCIKICAgICAgICAgICAgICAgICAgICBtYXg9IjEiCiAgICAgICAgICAgICAgICAgICAgc3RlcD0iMC4wMSIKICAgICAgICAgICAgICAgICAgICAudmFsdWU9JHtTdHJpbmcodGhpcy5tdXRlZD8wOnRoaXMudm9sdW1lKX0KICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9JHt0aGlzLmhhbmRsZVZvbHVtZUNoYW5nZX0KICAgICAgICAgICAgICAgICAgLz4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImN0cmwtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnRvZ2dsZUZ1bGxzY3JlZW59IHRpdGxlPSJGdWxsc2NyZWVuIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6JHt0aGlzLmlzRnVsbHNjcmVlbj8iTWluaW1pemUiOiJNYXhpbWl6ZSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5sb2FkaW5nJiYhdGhpcy5lcnJvcj9DYAogICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1vdmVybGF5Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7dGhpcy5lcnJvcj9DYAogICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3Itb3ZlcmxheSI+CiAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlZpZGVvT2ZmIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVycm9yLXRleHQiPiR7dGhpcy5lcnJvcn08L3NwYW4+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7dGhpcy52aWRlb0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpfHxudWxsLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMuaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLHRoaXMuaGFuZGxlRnVsbHNjcmVlbkNoYW5nZSksdGhpcy5oaWRlQ29udHJvbHNUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzVGltZXIpfXBsYXkoKXt0aGlzLnZpZGVvRWxlbWVudD8ucGxheSgpfXBhdXNlKCl7dGhpcy52aWRlb0VsZW1lbnQ/LnBhdXNlKCl9dG9nZ2xlUGxheSgpe3RoaXMuaXNQbGF5aW5nP3RoaXMucGF1c2UoKTp0aGlzLnBsYXkoKX1zZWVrKGRlKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lPWRlKX1zZXRWb2x1bWUoZGUpe3RoaXMudm9sdW1lPU1hdGgubWF4KDAsTWF0aC5taW4oMSxkZSkpLHRoaXMudmlkZW9FbGVtZW50JiYodGhpcy52aWRlb0VsZW1lbnQudm9sdW1lPXRoaXMudm9sdW1lKX10b2dnbGVGdWxsc2NyZWVuKCl7bGV0IGRlPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZGVvLWNvbnRhaW5lciIpO2RlJiYodGhpcy5pc0Z1bGxzY3JlZW4/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/LigpOmRlLnJlcXVlc3RGdWxsc2NyZWVuPy4oKSl9aGFuZGxlTG9hZGVkTWV0YWRhdGEoKXt0aGlzLnZpZGVvRWxlbWVudCYmKHRoaXMuZHVyYXRpb249dGhpcy52aWRlb0VsZW1lbnQuZHVyYXRpb24sdGhpcy5sb2FkaW5nPSExKX1oYW5kbGVQbGF5KCl7dGhpcy5pc1BsYXlpbmc9ITAsdGhpcy5zY2hlZHVsZUhpZGVDb250cm9scygpfWhhbmRsZVBhdXNlKCl7dGhpcy5pc1BsYXlpbmc9ITEsdGhpcy5jb250cm9sc1Zpc2libGU9ITB9aGFuZGxlRW5kZWQoKXt0aGlzLmlzUGxheWluZz0hMSx0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMH1oYW5kbGVUaW1lVXBkYXRlKCl7dGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLmN1cnJlbnRUaW1lPXRoaXMudmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lKX1oYW5kbGVFcnJvcigpe3RoaXMuZXJyb3I9IkZhaWxlZCB0byBsb2FkIHZpZGVvIix0aGlzLmxvYWRpbmc9ITF9aGFuZGxlT3ZlcmxheUNsaWNrKCl7dGhpcy50b2dnbGVQbGF5KCl9aGFuZGxlU2VlayhkZSl7bGV0IHZlPWRlLmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTGU9KGRlLmNsaWVudFgtdmUubGVmdCkvdmUud2lkdGg7dGhpcy5zZWVrKExlKnRoaXMuZHVyYXRpb24pfWhhbmRsZVZvbHVtZUNoYW5nZShkZSl7bGV0IHZlPXBhcnNlRmxvYXQoZGUudGFyZ2V0LnZhbHVlKTt0aGlzLnNldFZvbHVtZSh2ZSksdGhpcy5tdXRlZD12ZT09PTB9dG9nZ2xlTXV0ZSgpe3RoaXMubXV0ZWQ9IXRoaXMubXV0ZWQsdGhpcy52aWRlb0VsZW1lbnQmJih0aGlzLnZpZGVvRWxlbWVudC5tdXRlZD10aGlzLm11dGVkKX1oYW5kbGVNb3VzZU1vdmUoKXt0aGlzLmNvbnRyb2xzVmlzaWJsZT0hMCx0aGlzLnNjaGVkdWxlSGlkZUNvbnRyb2xzKCl9aGFuZGxlTW91c2VMZWF2ZSgpe3RoaXMuaXNQbGF5aW5nJiYodGhpcy5jb250cm9sc1Zpc2libGU9ITEpfXNjaGVkdWxlSGlkZUNvbnRyb2xzKCl7dGhpcy5oaWRlQ29udHJvbHNUaW1lciYmY2xlYXJUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzVGltZXIpLHRoaXMuaXNQbGF5aW5nJiYodGhpcy5oaWRlQ29udHJvbHNUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy5jb250cm9sc1Zpc2libGU9ITF9LDNlMykpfWhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2U9KCk9Pnt0aGlzLmlzRnVsbHNjcmVlbj0hIWRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fTtmb3JtYXRUaW1lKGRlKXtpZighaXNGaW5pdGUoZGUpfHxkZTwwKXJldHVybiIwOjAwIjtsZXQgdmU9TWF0aC5mbG9vcihkZS82MCksTGU9TWF0aC5mbG9vcihkZSU2MCk7cmV0dXJuYCR7dmV9OiR7TGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1zdGF0aWN7R3IoaSxyKX19O3JldHVybiBYPWl9KSgpfSk7dmFyIE0zcj1wKCgpPT57dmRlKCl9KTt2YXIgb2wsbkY9cCgoKT0+e3hlKCk7b2w9Y2xhc3N7c3RhdGljIHBkZmpzTGliO3N0YXRpYyBpbml0aWFsaXplZD0hMTtzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZSgpe3RoaXMuaW5pdGlhbGl6ZWR8fCh0aGlzLnBkZmpzTGliPWF3YWl0IGltcG9ydCgiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvK2VzbSIpLHRoaXMucGRmanNMaWIuR2xvYmFsV29ya2VyT3B0aW9ucy53b3JrZXJTcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5L2J1aWxkL3BkZi53b3JrZXIubWpzIix0aGlzLmluaXRpYWxpemVkPSEwKX1zdGF0aWMgYXN5bmMgbG9hZERvY3VtZW50KHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemUoKSxhd2FpdCB0aGlzLnBkZmpzTGliLmdldERvY3VtZW50KHQpLnByb21pc2V9c3RhdGljIHJlbGVhc2VEb2N1bWVudCh0KXt9fX0pO3ZhciBrM3IsUzNyPXAoKCk9Pnt4ZSgpO2szcj1bbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgOmhvc3QgewogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogNjAwcHg7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgZm9udC1mYW1pbHk6ICdHZWlzdCBTYW5zJywgc2Fucy1zZXJpZjsKICAgICAgY29udGFpbjogbGF5b3V0IHN0eWxlOwogICAgfQoKICAgIC5wZGYtdmlld2VyIHsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk3JSkiLCJoc2woMjE1IDIwJSAxMCUpIil9OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnRvb2xiYXIgewogICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgZ2FwOiAxNnB4OwogICAgICBmbGV4LXNocmluazogMDsKICAgIH0KCiAgICAudG9vbGJhci1ncm91cCB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogNHB4OwogICAgfQoKICAgIC50b29sYmFyLWdyb3VwLS1lbmQgewogICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b24gewogICAgICB3aWR0aDogMzJweDsKICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAudG9vbGJhci1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTIlKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICB9CgogICAgLnRvb2xiYXItYnV0dG9uOmRpc2FibGVkIHsKICAgICAgb3BhY2l0eTogMC40OwogICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogICAgfQoKICAgIC50b29sYmFyLWJ1dHRvbiBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE2cHg7CiAgICB9CgogICAgLnBhZ2UtaW5mbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGdhcDogOHB4OwogICAgICBwYWRkaW5nOiAwIDhweDsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgfQoKICAgIC5wYWdlLWlucHV0IHsKICAgICAgd2lkdGg6IDQ4cHg7CiAgICAgIGhlaWdodDogMjhweDsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIyMiA0NyUgMTElKSIsImhzbCgyMTAgMjAlIDk2JSkiKX07CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KCiAgICAucGFnZS1pbnB1dDpmb2N1cyB7CiAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC5wYWdlLXNlcGFyYXRvciB7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNjAlKSIsImhzbCgyMTUgMTYlIDUwJSkiKX07CiAgICB9CgogICAgLnpvb20tbGV2ZWwgewogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIG1pbi13aWR0aDogNDhweDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgIC52aWV3ZXItY29udGFpbmVyIHsKICAgICAgZmxleDogMTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBtaW4taGVpZ2h0OiAwOwogICAgfQoKICAgIC5zaWRlYmFyIHsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMjE1IDIwJSAxNSUpIil9OwogICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgOTElKSIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAuc2lkZWJhci1oZWFkZXIgewogICAgICBoZWlnaHQ6IDQwcHg7CiAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQgMzElIDkxJSkiLCJoc2woMjE3IDI1JSAyMiUpIil9OwogICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICB9CgogICAgLnNpZGViYXItY2xvc2UgewogICAgICB3aWR0aDogMjRweDsKICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICBib3JkZXI6IG5vbmU7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNDUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjIlKSIpfTsKICAgIH0KCiAgICAuc2lkZWJhci1jbG9zZSBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDE0cHg7CiAgICB9CgogICAgLnNpZGViYXItY29udGVudCB7CiAgICAgIGZsZXg6IDE7CiAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgICAgcGFkZGluZzogMTJweDsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47CiAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICB9CgogICAgLnRodW1ibmFpbCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk1JSkiLCJoc2woMjE1IDIwJSAxOCUpIil9OwogICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICAgIC8qIERlZmF1bHQgQTQgYXNwZWN0IHJhdGlvICgyOTdtbSAvIDIxMG1tIOKJiCAxLjQxNCkgKi8KICAgICAgbWluLWhlaWdodDogY2FsYygxNzZweCAqIDEuNDE0KTsKICAgIH0KCiAgICAudGh1bWJuYWlsOmxhc3QtY2hpbGQgewogICAgICBtYXJnaW4tYm90dG9tOiAwOwogICAgfQoKICAgIC50aHVtYm5haWw6aG92ZXIgewogICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE0IDMxJSA4NiUpIiwiaHNsKDIxNyAyNSUgMzUlKSIpfTsKICAgIH0KCiAgICAudGh1bWJuYWlsLmFjdGl2ZSB7CiAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTcgOTElIDYwJSkiLCJoc2woMjEzIDkzJSA2OCUpIil9OwogICAgfQoKICAgIC50aHVtYm5haWwtY2FudmFzIHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IGF1dG87CiAgICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDsKICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICAgIH0KCiAgICAudGh1bWJuYWlsLW51bWJlciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiA0cHg7CiAgICAgIHJpZ2h0OiA0cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuNykiLCJyZ2JhKDAsIDAsIDAsIDAuOCkiKX07CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBwYWRkaW5nOiAycHggNnB4OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICB9CgogICAgLnZpZXdlci1tYWluIHsKICAgICAgZmxleDogMTsKICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICBwYWRkaW5nOiAyMHB4OwogICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsKICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjsKICAgICAgbWluLWhlaWdodDogMDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5sb2FkaW5nLWNvbnRhaW5lciB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIGdhcDogMTZweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAubG9hZGluZy1zcGlubmVyIHsKICAgICAgd2lkdGg6IDMycHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICBib3JkZXI6IDNweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxNCAzMSUgODYlKSIsImhzbCgyMTcgMjUlIDI4JSkiKX07CiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgICAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CgogICAgLmxvYWRpbmctdGV4dCB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIH0KCiAgICAucGFnZXMtY29udGFpbmVyIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiAyMHB4OwogICAgfQoKICAgIC5wYWdlLXdyYXBwZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgd2lkdGg6IDEwMCU7CiAgICB9CgogICAgLmNhbnZhcy1jb250YWluZXIgewogICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgYm94LXNoYWRvdzogMCAycHggMTJweCAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC5wYWdlLWNhbnZhcyB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7CiAgICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7CiAgICB9CgogICAgLyogVGV4dCBsYXllciBmb3Igc2VsZWN0aW9uICovCiAgICAudGV4dC1sYXllciB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDA7CiAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICBsaW5lLWhlaWdodDogMTsKICAgICAgdGV4dC1zaXplLWFkanVzdDogbm9uZTsKICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTsKICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwOwogICAgICB6LWluZGV4OiAxOwogICAgICB1c2VyLXNlbGVjdDogdGV4dDsKICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKICAgIH0KCiAgICAudGV4dC1sYXllciBzcGFuLAogICAgLnRleHQtbGF5ZXIgYnIgewogICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTsKICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7CiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7CiAgICB9CgogICAgLnRleHQtbGF5ZXIgOjpzZWxlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEwMCwgMjAwLCAwLjMpOwogICAgfQoKICAgIC50ZXh0LWxheWVyIGJyOjpzZWxlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIH0KCiAgICAudGV4dC1sYXllciAuZW5kT2ZDb250ZW50IHsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgaW5zZXQ6IDEwMCUgMCAwOwogICAgICB6LWluZGV4OiAwOwogICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgfQoKICAgIC50ZXh0LWxheWVyLnNlbGVjdGluZyAuZW5kT2ZDb250ZW50IHsKICAgICAgdG9wOiAwOwogICAgfQoKICAgIC5wZGYtdmlld2VyLndpdGgtc2lkZWJhciAudmlld2VyLW1haW4gewogICAgICBtYXJnaW4tbGVmdDogMDsKICAgIH0KICBgXX0pO3ZhciB6M3IsQzNyPXAoKCk9Pnt4ZSgpO3ozcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0MHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgfQoKICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OwogICAgfQoKICAgIGgzIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgfQoKICAgIGRlZXMtcGRmLXZpZXdlciB7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KCiAgICAudmlld2VyLXRhbGwgewogICAgICBoZWlnaHQ6IDgwMHB4OwogICAgfQoKICAgIC52aWV3ZXItY29tcGFjdCB7CiAgICAgIGhlaWdodDogNTAwcHg7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkZ1bGwgRmVhdHVyZWQgUERGIFZpZXdlciB3aXRoIFRvb2xiYXI8L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci10YWxsIgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL3dlYi9jb21wcmVzc2VkLnRyYWNlbW9ua2V5LXBsZGktMDkucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJ0cnVlIgogICAgICAgIHNob3dTaWRlYmFyPSJmYWxzZSIKICAgICAgICBpbml0aWFsWm9vbT0icGFnZS1maXQiCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5QREYgVmlld2VyIHdpdGggU2lkZWJhciBOYXZpZ2F0aW9uPC9oMz4KICAgICAgPGRlZXMtcGRmLXZpZXdlcgogICAgICAgIGNsYXNzPSJ2aWV3ZXItdGFsbCIKICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBzaG93VG9vbGJhcj0idHJ1ZSIKICAgICAgICBzaG93U2lkZWJhcj0idHJ1ZSIKICAgICAgICBpbml0aWFsWm9vbT0icGFnZS13aWR0aCIKICAgICAgPjwvZGVlcy1wZGYtdmlld2VyPgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkNvbXBhY3QgVmlld2VyIHdpdGhvdXQgQ29udHJvbHM8L2gzPgogICAgICA8ZGVlcy1wZGYtdmlld2VyCiAgICAgICAgY2xhc3M9InZpZXdlci1jb21wYWN0IgogICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgIHNob3dUb29sYmFyPSJmYWxzZSIKICAgICAgICBzaG93U2lkZWJhcj0iZmFsc2UiCiAgICAgICAgaW5pdGlhbFpvb209ImF1dG8iCiAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIGVvLGcxLFQzcix4ZGU9cCgoKT0+e3hlKCk7bkYoKTtTM3IoKTtDM3IoKTtvcigpO2VvPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sZzE9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFQzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtcGRmLXZpZXdlciIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdLHEsQj1bXSxHPVtdLGVlLFA9W10sZ2U9W10sd2UsST1bXSxuZT1bXTt2YXIga2U9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBZPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ooe3R5cGU6U3RyaW5nfSldLHg9W2ooe3R5cGU6Qm9vbGVhbn0pXSx5PVtqKHt0eXBlOkJvb2xlYW59KV0sTz1baih7dHlwZTpOdW1iZXJ9KV0sRj1baih7dHlwZTpOdW1iZXJ9KV0sUj1baih7dHlwZTpOdW1iZXJ9KV0sJD1baih7dHlwZTpCb29sZWFufSldLHE9W2ooe3R5cGU6U3RyaW5nfSldLGVlPVtqKHt0eXBlOkFycmF5fSldLHdlPVtqKHt0eXBlOkFycmF5fSldLGVvKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4icGRmVXJsImluIEEsZ2V0OkE9PkEucGRmVXJsLHNldDooQSxMKT0+e0EucGRmVXJsPUx9fSxtZXRhZGF0YTpZfSxvLHMpLGVvKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbFBhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJpbml0aWFsUGFnZSJpbiBBLGdldDpBPT5BLmluaXRpYWxQYWdlLHNldDooQSxMKT0+e0EuaW5pdGlhbFBhZ2U9TH19LG1ldGFkYXRhOll9LGMsdSksZW8odGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0aWFsWm9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImluaXRpYWxab29tImluIEEsZ2V0OkE9PkEuaW5pdGlhbFpvb20sc2V0OihBLEwpPT57QS5pbml0aWFsWm9vbT1MfX0sbWV0YWRhdGE6WX0saCxmKSxlbyh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4ic2hvd1Rvb2xiYXIiaW4gQSxnZXQ6QT0+QS5zaG93VG9vbGJhcixzZXQ6KEEsTCk9PntBLnNob3dUb29sYmFyPUx9fSxtZXRhZGF0YTpZfSx2LGIpLGVvKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1NpZGViYXIiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJzaG93U2lkZWJhciJpbiBBLGdldDpBPT5BLnNob3dTaWRlYmFyLHNldDooQSxMKT0+e0Euc2hvd1NpZGViYXI9TH19LG1ldGFkYXRhOll9LHcsayksZW8odGhpcyxudWxsLE8se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50UGFnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImN1cnJlbnRQYWdlImluIEEsZ2V0OkE9PkEuY3VycmVudFBhZ2Usc2V0OihBLEwpPT57QS5jdXJyZW50UGFnZT1MfX0sbWV0YWRhdGE6WX0seixNKSxlbyh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRvdGFsUGFnZXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJ0b3RhbFBhZ2VzImluIEEsZ2V0OkE9PkEudG90YWxQYWdlcyxzZXQ6KEEsTCk9PntBLnRvdGFsUGFnZXM9TH19LG1ldGFkYXRhOll9LEQsTiksZW8odGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50Wm9vbSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6QT0+ImN1cnJlbnRab29tImluIEEsZ2V0OkE9PkEuY3VycmVudFpvb20sc2V0OihBLEwpPT57QS5jdXJyZW50Wm9vbT1MfX0sbWV0YWRhdGE6WX0sXyxTKSxlbyh0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJsb2FkaW5nImluIEEsZ2V0OkE9PkEubG9hZGluZyxzZXQ6KEEsTCk9PntBLmxvYWRpbmc9TH19LG1ldGFkYXRhOll9LFQsRSksZW8odGhpcyxudWxsLHEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkb2N1bWVudElkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4iZG9jdW1lbnRJZCJpbiBBLGdldDpBPT5BLmRvY3VtZW50SWQsc2V0OihBLEwpPT57QS5kb2N1bWVudElkPUx9fSxtZXRhZGF0YTpZfSxCLEcpLGVvKHRoaXMsbnVsbCxlZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRodW1ibmFpbERhdGEiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOkE9PiJ0aHVtYm5haWxEYXRhImluIEEsZ2V0OkE9PkEudGh1bWJuYWlsRGF0YSxzZXQ6KEEsTCk9PntBLnRodW1ibmFpbERhdGE9TH19LG1ldGFkYXRhOll9LFAsZ2UpLGVvKHRoaXMsbnVsbCx3ZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBhZ2VEYXRhIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpBPT4icGFnZURhdGEiaW4gQSxnZXQ6QT0+QS5wYWdlRGF0YSxzZXQ6KEEsTCk9PntBLnBhZ2VEYXRhPUx9fSxtZXRhZGF0YTpZfSxJLG5lKSxlbyhudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpZfSxudWxsLHIpLGtlPWk9dC52YWx1ZSxZJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOll9KX1zdGF0aWMgZGVtbz16M3I7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIlBERiJdO3N0YXRpYyBzdHlsZXM9azNyOyNlPWcxKHRoaXMsbywiIik7Z2V0IHBkZlVybCgpe3JldHVybiB0aGlzLiNlfXNldCBwZGZVcmwoWSl7dGhpcy4jZT1ZfSN0PShnMSh0aGlzLHMpLGcxKHRoaXMsYywxKSk7Z2V0IGluaXRpYWxQYWdlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGluaXRpYWxQYWdlKFkpe3RoaXMuI3Q9WX0jcj0oZzEodGhpcyx1KSxnMSh0aGlzLGgsImF1dG8iKSk7Z2V0IGluaXRpYWxab29tKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGluaXRpYWxab29tKFkpe3RoaXMuI3I9WX0jaT0oZzEodGhpcyxmKSxnMSh0aGlzLHYsITApKTtnZXQgc2hvd1Rvb2xiYXIoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1Rvb2xiYXIoWSl7dGhpcy4jaT1ZfSNhPShnMSh0aGlzLGIpLGcxKHRoaXMsdywhMSkpO2dldCBzaG93U2lkZWJhcigpe3JldHVybiB0aGlzLiNhfXNldCBzaG93U2lkZWJhcihZKXt0aGlzLiNhPVl9I249KGcxKHRoaXMsayksZzEodGhpcyx6LDEpKTtnZXQgY3VycmVudFBhZ2UoKXtyZXR1cm4gdGhpcy4jbn1zZXQgY3VycmVudFBhZ2UoWSl7dGhpcy4jbj1ZfSNvPShnMSh0aGlzLE0pLGcxKHRoaXMsRCwxKSk7Z2V0IHRvdGFsUGFnZXMoKXtyZXR1cm4gdGhpcy4jb31zZXQgdG90YWxQYWdlcyhZKXt0aGlzLiNvPVl9I3M9KGcxKHRoaXMsTiksZzEodGhpcyxfLDEpKTtnZXQgY3VycmVudFpvb20oKXtyZXR1cm4gdGhpcy4jc31zZXQgY3VycmVudFpvb20oWSl7dGhpcy4jcz1ZfSNsPShnMSh0aGlzLFMpLGcxKHRoaXMsVCwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGxvYWRpbmcoWSl7dGhpcy4jbD1ZfSNjPShnMSh0aGlzLEUpLGcxKHRoaXMsQiwiIikpO2dldCBkb2N1bWVudElkKCl7cmV0dXJuIHRoaXMuI2N9c2V0IGRvY3VtZW50SWQoWSl7dGhpcy4jYz1ZfSNkPShnMSh0aGlzLEcpLGcxKHRoaXMsUCxbXSkpO2dldCB0aHVtYm5haWxEYXRhKCl7cmV0dXJuIHRoaXMuI2R9c2V0IHRodW1ibmFpbERhdGEoWSl7dGhpcy4jZD1ZfSN1PShnMSh0aGlzLGdlKSxnMSh0aGlzLEksW10pKTtnZXQgcGFnZURhdGEoKXtyZXR1cm4gdGhpcy4jdX1zZXQgcGFnZURhdGEoWSl7dGhpcy4jdT1ZfXBkZkRvY3VtZW50PWcxKHRoaXMsbmUpO3JlbmRlclN0YXRlPSJpZGxlIjtyZW5kZXJBYm9ydENvbnRyb2xsZXI9bnVsbDtwYWdlUmVuZGVyaW5nPSExO3BhZ2VOdW1QZW5kaW5nPW51bGw7Y3VycmVudFJlbmRlclRhc2s9bnVsbDtjdXJyZW50UmVuZGVyUHJvbWlzZT1udWxsO3RodW1ibmFpbFJlbmRlclRhc2tzPVtdO3BhZ2VSZW5kZXJUYXNrcz1uZXcgTWFwO3RleHRMYXllclJlbmRlclRhc2tzPW5ldyBNYXA7Y2FudmFzO2N0eDt2aWV3ZXJNYWluPW51bGw7cmVzaXplT2JzZXJ2ZXI7aW50ZXJzZWN0aW9uT2JzZXJ2ZXI7c2Nyb2xsVGhyb3R0bGVUaW1lb3V0O3ZpZXdwb3J0RGltZW5zaW9ucz17d2lkdGg6MCxoZWlnaHQ6MH07dmlld3BvcnRNb2RlPSJhdXRvIjtNQU5VQUxfTUlOX1pPT009LjU7TUFOVUFMX01BWF9aT09NPTM7QUJTT0xVVEVfTUlOX1pPT009LjE7QUJTT0xVVEVfTUFYX1pPT009NDtQQUdFX0dBUD0yMDtSRU5ERVJfQlVGRkVSPTM7Y29uc3RydWN0b3IoKXtzdXBlcigpfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJwZGYtdmlld2VyICR7dGhpcy5zaG93U2lkZWJhcj8id2l0aC1zaWRlYmFyIjoiIn0iPgogICAgICAgICR7dGhpcy5zaG93VG9vbGJhcj9DYAogICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItZ3JvdXAiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucHJldmlvdXNQYWdlfQogICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5jdXJyZW50UGFnZTw9MX0KICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpDaGV2cm9uTGVmdCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZS1pbmZvIj4KICAgICAgICAgICAgICAgIDxpbnB1dAogICAgICAgICAgICAgICAgICB0eXBlPSJudW1iZXIiCiAgICAgICAgICAgICAgICAgIG1pbj0iMSIKICAgICAgICAgICAgICAgICAgbWF4PSIke3RoaXMudG90YWxQYWdlc30iCiAgICAgICAgICAgICAgICAgIC52YWx1ZT0ke1N0cmluZyh0aGlzLmN1cnJlbnRQYWdlKX0KICAgICAgICAgICAgICAgICAgQGNoYW5nZT0ke3RoaXMuaGFuZGxlUGFnZUlucHV0fQogICAgICAgICAgICAgICAgICBjbGFzcz0icGFnZS1pbnB1dCIKICAgICAgICAgICAgICAgIC8+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS1zZXBhcmF0b3IiPi88L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZS10b3RhbCI+JHt0aGlzLnRvdGFsUGFnZXN9PC9zcGFuPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMubmV4dFBhZ2V9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmN1cnJlbnRQYWdlPj10aGlzLnRvdGFsUGFnZXN9CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Q2hldnJvblJpZ2h0Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnpvb21PdXR9CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tT3V0fQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlpvb21PdXQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMucmVzZXRab29tfQogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ6b29tLWxldmVsIj4ke01hdGgucm91bmQodGhpcy5jdXJyZW50Wm9vbSoxMDApfSU8L3NwYW4+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy56b29tSW59CiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHshdGhpcy5jYW5ab29tSW59CiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Wm9vbUluIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWdyb3VwIj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmZpdFRvUGFnZX0KICAgICAgICAgICAgICAgIHRpdGxlPSJGaXQgdG8gcGFnZSIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpNYXhpbWl6ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgY2xhc3M9InRvb2xiYXItYnV0dG9uIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5maXRUb1dpZHRofQogICAgICAgICAgICAgICAgdGl0bGU9IkZpdCB0byB3aWR0aCIKICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBcnJvd0xlZnRSaWdodCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9vbGJhci1ncm91cCB0b29sYmFyLWdyb3VwLS1lbmQiPgogICAgICAgICAgICAgIDxidXR0b24KICAgICAgICAgICAgICAgIGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIKICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnNob3dTaWRlYmFyPSF0aGlzLnNob3dTaWRlYmFyfQogICAgICAgICAgICAgICAgdGl0bGU9IiR7dGhpcy5zaG93U2lkZWJhcj8iSGlkZSB0aHVtYm5haWxzIjoiU2hvdyB0aHVtYm5haWxzIn0iCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIke3RoaXMuc2hvd1NpZGViYXI/Imx1Y2lkZTpTaWRlYmFyQ2xvc2UiOiJsdWNpZGU6U2lkZWJhciJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmRvd25sb2FkUGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IkRvd25sb2FkIgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkRvd25sb2FkIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uCiAgICAgICAgICAgICAgICBjbGFzcz0idG9vbGJhci1idXR0b24iCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLnByaW50UGRmfQogICAgICAgICAgICAgICAgdGl0bGU9IlByaW50IgogICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlByaW50ZXIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1jb250YWluZXIiPgogICAgICAgICAgJHt0aGlzLnNob3dTaWRlYmFyP0NgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXIiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj4KICAgICAgICAgICAgICAgIDxzcGFuPlBhZ2VzPC9zcGFuPgogICAgICAgICAgICAgICAgPGJ1dHRvbgogICAgICAgICAgICAgICAgICBjbGFzcz0ic2lkZWJhci1jbG9zZSIKICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuc2hvd1NpZGViYXI9ITF9CiAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlgiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2lkZWJhci1jb250ZW50Ij4KICAgICAgICAgICAgICAgICR7RW8ua2V5ZWQodGhpcy5kb2N1bWVudElkLENgCiAgICAgICAgICAgICAgICAgICR7RW8ucmVwZWF0KHRoaXMudGh1bWJuYWlsRGF0YSxZPT5ZLnBhZ2UsWT0+Q2AKICAgICAgICAgICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InRodW1ibmFpbCAke3RoaXMuY3VycmVudFBhZ2U9PT1ZLnBhZ2U/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXBhZ2U9IiR7WS5wYWdlfSIKICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVUaHVtYm5haWxDbGlja30KICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgPGNhbnZhcyBjbGFzcz0idGh1bWJuYWlsLWNhbnZhcyIgZGF0YS1wYWdlPSIke1kucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGh1bWJuYWlsLW51bWJlciI+JHtZLnBhZ2V9PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOiIifQoKICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdlci1tYWluIiBAc2Nyb2xsPSR7dGhpcy5oYW5kbGVTY3JvbGx9PgogICAgICAgICAgICAke3RoaXMubG9hZGluZz9DYAogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3Bpbm5lciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLXRleHQiPkxvYWRpbmcgUERGLi4uPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6Q2AKICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgJHtFby5yZXBlYXQodGhpcy5wYWdlRGF0YSxZPT5ZLnBhZ2UsWT0+Q2AKICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlLXdyYXBwZXIiIGRhdGEtcGFnZT0iJHtZLnBhZ2V9Ij4KICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhbnZhcy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2FudmFzIGNsYXNzPSJwYWdlLWNhbnZhcyIgZGF0YS1wYWdlPSIke1kucGFnZX0iPjwvY2FudmFzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWxheWVyIiBkYXRhLXBhZ2U9IiR7WS5wYWdlfSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgYCl9CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGB9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZW5zdXJlVmlld2VyUmVmcygpLHRoaXMucGRmVXJsJiYodGhpcy5kb2N1bWVudElkPWAke3RoaXMucGRmVXJsfS0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLGF3YWl0IHRoaXMubG9hZFBkZigpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI9dm9pZCAwLHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPXZvaWQgMCx0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9dm9pZCAwKSx0aGlzLnJlbmRlclN0YXRlPSJkaXNwb3NlZCIsYXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLmNhbnZhcz12b2lkIDAsdGhpcy5jdHg9dm9pZCAwfWFzeW5jIHVwZGF0ZWQoWSl7aWYoc3VwZXIudXBkYXRlZChZKSxZLmhhcygicGRmVXJsIikmJnRoaXMucGRmVXJsKXtsZXQgQT1ZLmdldCgicGRmVXJsIik7QSYmb2wucmVsZWFzZURvY3VtZW50KEEpLHRoaXMuZG9jdW1lbnRJZD1gJHt0aGlzLnBkZlVybH0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxhd2FpdCB0aGlzLmxvYWRQZGYoKX1ZLmhhcygic2hvd1NpZGViYXIiKSYmdGhpcy5zaG93U2lkZWJhciYmdGhpcy5wZGZEb2N1bWVudCYmKGF3YWl0IG5ldyBQcm9taXNlKEE9PnJlcXVlc3RBbmltYXRpb25GcmFtZShBKSksdGhpcy50aHVtYm5haWxEYXRhLmZvckVhY2goQT0+QS5yZW5kZXJlZD0hMSksYXdhaXQgdGhpcy5yZW5kZXJUaHVtYm5haWxzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyh0aGlzLmN1cnJlbnRQYWdlKSl9YXN5bmMgbG9hZFBkZigpe3RoaXMubG9hZGluZz0hMCx0aGlzLnJlbmRlclN0YXRlPSJsb2FkaW5nIjt0cnl7YXdhaXQgdGhpcy5jbGVhbnVwRG9jdW1lbnQoKSx0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlcj1uZXcgQWJvcnRDb250cm9sbGVyO2xldCBZPXRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyLnNpZ25hbDtpZih0aGlzLnBkZkRvY3VtZW50PWF3YWl0IG9sLmxvYWREb2N1bWVudCh0aGlzLnBkZlVybCksWS5hYm9ydGVkfHwodGhpcy50b3RhbFBhZ2VzPXRoaXMucGRmRG9jdW1lbnQubnVtUGFnZXMsdGhpcy5jdXJyZW50UGFnZT10aGlzLmluaXRpYWxQYWdlLHRoaXMucmVzb2x2ZUluaXRpYWxWaWV3cG9ydE1vZGUoKSx0aGlzLnRodW1ibmFpbERhdGE9QXJyYXkuZnJvbSh7bGVuZ3RoOnRoaXMudG90YWxQYWdlc30sKEEsTCk9Pih7cGFnZTpMKzEscmVuZGVyZWQ6ITF9KSksdGhpcy5wYWdlRGF0YT1BcnJheS5mcm9tKHtsZW5ndGg6dGhpcy50b3RhbFBhZ2VzfSwoQSxMKT0+KHtwYWdlOkwrMSxyZW5kZXJlZDohMSxyZW5kZXJpbmc6ITEsdGV4dExheWVyUmVuZGVyZWQ6ITF9KSksdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5lbnN1cmVWaWV3ZXJSZWZzKCksdGhpcy5zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCksYXdhaXQgbmV3IFByb21pc2UoQT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEEpKSxZLmFib3J0ZWQpfHwodGhpcy5yZW5kZXJTdGF0ZT0icmVuZGVyaW5nLW1haW4iLGF3YWl0IHRoaXMucmVuZGVyVmlzaWJsZVBhZ2VzKCksWS5hYm9ydGVkKXx8KHRoaXMuaW5pdGlhbFBhZ2U+MSYmYXdhaXQgdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5pbml0aWFsUGFnZSwhMSksdGhpcy5zaG93U2lkZWJhciYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsYXdhaXQgbmV3IFByb21pc2UoQT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKEEpKSxZLmFib3J0ZWR8fChhd2FpdCB0aGlzLnJlbmRlclRodW1ibmFpbHMoKSxZLmFib3J0ZWQpKSkpcmV0dXJuO3RoaXMucmVuZGVyU3RhdGU9InJlbmRlcmVkIn1jYXRjaChZKXtjb25zb2xlLmVycm9yKCJFcnJvciBsb2FkaW5nIFBERjoiLFkpLHRoaXMubG9hZGluZz0hMSx0aGlzLnJlbmRlclN0YXRlPSJlcnJvciJ9fXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXt0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyJiZ0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihBPT57Zm9yKGxldCBMIG9mIEEpe2xldCBVPUwudGFyZ2V0LFY9cGFyc2VJbnQoVS5kYXRhc2V0LnBhZ2V8fCIxIik7TC5pc0ludGVyc2VjdGluZyYmdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoVil9fSx7cm9vdDp0aGlzLnZpZXdlck1haW4scm9vdE1hcmdpbjpgJHt0aGlzLlJFTkRFUl9CVUZGRVIqMTAwfXB4IDBweGAsdGhyZXNob2xkOi4wMX0pO2xldCBZPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnBhZ2Utd3JhcHBlciIpO1kmJlkuZm9yRWFjaChBPT57dGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj8ub2JzZXJ2ZShBKX0pfWFzeW5jIHJlbmRlclZpc2libGVQYWdlcygpe2lmKCF0aGlzLnZpZXdlck1haW4pcmV0dXJuO2xldCBZPXRoaXMudmlld2VyTWFpbi5jbGllbnRIZWlnaHQ7Zm9yKGxldCBBIG9mIHRoaXMucGFnZURhdGEpe2xldCBMPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7QS5wYWdlfSJdYCk7aWYoIUwpY29udGludWU7bGV0IFU9TC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxWPXRoaXMudmlld2VyTWFpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxYPVUudG9wLVYudG9wLGRlPVgrVS5oZWlnaHQsdmU9dGhpcy5SRU5ERVJfQlVGRkVSKlk7ZGU+PS12ZSYmWDw9WSt2ZSYmYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoQS5wYWdlKX19YXN5bmMgcmVuZGVyUGFnZUlmTmVlZGVkKFkpe2xldCBBPXRoaXMucGFnZURhdGEuZmluZChMPT5MLnBhZ2U9PT1ZKTtpZighKCFBfHxBLnJlbmRlcmVkfHxBLnJlbmRlcmluZykpe0EucmVuZGVyaW5nPSEwO3RyeXtsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLWNhbnZhc1tkYXRhLXBhZ2U9IiR7WX0iXWApO2lmKCFMKXtBLnJlbmRlcmluZz0hMTtyZXR1cm59bGV0IFU9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKFkpLFY9dGhpcy5jb21wdXRlVmlld3BvcnQoVSksWD13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MTtMLndpZHRoPU1hdGguZmxvb3IoVi53aWR0aCpYKSxMLmhlaWdodD1NYXRoLmZsb29yKFYuaGVpZ2h0KlgpLEwuc3R5bGUud2lkdGg9YCR7Vi53aWR0aH1weGAsTC5zdHlsZS5oZWlnaHQ9YCR7Vi5oZWlnaHR9cHhgO2xldCBkZT1MLmdldENvbnRleHQoIjJkIik7aWYoIWRlKXtVLmNsZWFudXA/LigpLEEucmVuZGVyaW5nPSExO3JldHVybn1kZS5zY2FsZShYLFgpO2xldCB2ZT17Y2FudmFzQ29udGV4dDpkZSx2aWV3cG9ydDpWfSxMZT1VLnJlbmRlcih2ZSk7dGhpcy5wYWdlUmVuZGVyVGFza3Muc2V0KFksTGUpLGF3YWl0IExlLnByb21pc2UsVS5jbGVhbnVwPy4oKSxBLnJlbmRlcmVkPSEwLEEucmVuZGVyaW5nPSExLHRoaXMucGFnZVJlbmRlclRhc2tzLmRlbGV0ZShZKSxhd2FpdCB0aGlzLnJlbmRlclRleHRMYXllcihZKSx0aGlzLnJlcXVlc3RVcGRhdGUoInBhZ2VEYXRhIil9Y2F0Y2goTCl7TD8ubmFtZSE9PSJSZW5kZXJpbmdDYW5jZWxsZWRFeGNlcHRpb24iJiZjb25zb2xlLmVycm9yKGBFcnJvciByZW5kZXJpbmcgcGFnZSAke1l9OmAsTCksQS5yZW5kZXJpbmc9ITEsdGhpcy5wYWdlUmVuZGVyVGFza3MuZGVsZXRlKFkpfX19YXN5bmMgcmVuZGVyVGV4dExheWVyKFkpe2xldCBBPXRoaXMucGFnZURhdGEuZmluZChMPT5MLnBhZ2U9PT1ZKTtpZighKCFBfHxBLnRleHRMYXllclJlbmRlcmVkKSl0cnl7bGV0IEw9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKGAudGV4dC1sYXllcltkYXRhLXBhZ2U9IiR7WX0iXWApO2lmKCFMKXJldHVybjtMLmlubmVySFRNTD0iIjtsZXQgVT1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoWSksVj1hd2FpdCBVLmdldFRleHRDb250ZW50KCksWD10aGlzLmNvbXB1dGVWaWV3cG9ydChVKSxkZT1hd2FpdCBpbXBvcnQoImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcGRmanMtZGlzdEA0LjAuMzc5Lytlc20iKTtMLnN0eWxlLndpZHRoPWAke1gud2lkdGh9cHhgLEwuc3R5bGUuaGVpZ2h0PWAke1guaGVpZ2h0fXB4YCxMLnN0eWxlLnNldFByb3BlcnR5KCItLXNjYWxlLWZhY3RvciIsU3RyaW5nKFguc2NhbGUpKTtsZXQgdmU9ZGUucmVuZGVyVGV4dExheWVyKHt0ZXh0Q29udGVudFNvdXJjZTpWLGNvbnRhaW5lcjpMLHZpZXdwb3J0Olh9KTt0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLnNldChZLHZlKSxhd2FpdCB2ZS5wcm9taXNlO2xldCBMZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtMZS5jbGFzc05hbWU9ImVuZE9mQ29udGVudCIsTC5hcHBlbmRDaGlsZChMZSk7bGV0IFc9ITEsSD1udWxsLHRlPTAsYmU9KGhlLGllKT0+e2xldCBTZT1BcnJheS5mcm9tKEwucXVlcnlTZWxlY3RvckFsbCgic3BhbiIpKTtmb3IobGV0IEllIG9mIFNlKXtsZXQgWmU9SWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoaGU+PVplLmxlZnQmJmhlPD1aZS5yaWdodCYmaWU+PVplLnRvcCYmaWU8PVplLmJvdHRvbSl7bGV0IEs9SWUuZmlyc3RDaGlsZDtpZihLJiZLLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpe2xldCBaPUsudGV4dENvbnRlbnR8fCIiLEo9WmUud2lkdGgvWi5sZW5ndGgsbWU9aGUtWmUubGVmdCxFZT1NYXRoLm1pbihNYXRoLnJvdW5kKG1lL0opLFoubGVuZ3RoKTtyZXR1cm57bm9kZTpLLG9mZnNldDpFZX19fX1yZXR1cm4gbnVsbH0sdWU9KCk9PntXJiYoVz0hMSxIPW51bGwsTC5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RpbmciKSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdWUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsQ2UpfSxDZT1oZT0+e2lmKCFXfHwhSClyZXR1cm47aGUucHJldmVudERlZmF1bHQoKTtsZXQgaWU9YmUoaGUuY2xpZW50WCxoZS5jbGllbnRZKTtpZihpZSl7bGV0IFNlPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZihTZSl0cnl7U2Uuc2V0QmFzZUFuZEV4dGVudChILHRlLGllLm5vZGUsaWUub2Zmc2V0KX1jYXRjaHt9fX07TC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGhlPT57aWYoaGUuYnV0dG9uIT09MClyZXR1cm47bGV0IGllPWJlKGhlLmNsaWVudFgsaGUuY2xpZW50WSk7aWUmJihoZS5wcmV2ZW50RGVmYXVsdCgpLFc9ITAsSD1pZS5ub2RlLHRlPWllLm9mZnNldCxMLmNsYXNzTGlzdC5hZGQoInNlbGVjdGluZyIpLHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixDZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdWUpKX0pLEEudGV4dExheWVyUmVuZGVyZWQ9ITAsVS5jbGVhbnVwPy4oKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmRlbGV0ZShZKX1jYXRjaChMKXtMPy5uYW1lIT09IlJlbmRlcmluZ0NhbmNlbGxlZEV4Y2VwdGlvbiImJmNvbnNvbGUuZXJyb3IoYEVycm9yIHJlbmRlcmluZyB0ZXh0IGxheWVyIGZvciBwYWdlICR7WX06YCxMKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmRlbGV0ZShZKX19aGFuZGxlU2Nyb2xsPSgpPT57dGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRocm90dGxlVGltZW91dCksdGhpcy5zY3JvbGxUaHJvdHRsZVRpbWVvdXQ9d2luZG93LnNldFRpbWVvdXQoKCk9Pnt0aGlzLnVwZGF0ZUN1cnJlbnRQYWdlKCksdGhpcy5yZW5kZXJWaXNpYmxlUGFnZXMoKX0sNTApfTt1cGRhdGVDdXJyZW50UGFnZSgpe2lmKCF0aGlzLnZpZXdlck1haW4pcmV0dXJuO2xldCBZPXRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3AsQT10aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0LEw9WStBLzI7Zm9yKGxldCBVPTA7VTx0aGlzLnBhZ2VEYXRhLmxlbmd0aDtVKyspe2xldCBWPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnBhZ2Utd3JhcHBlcltkYXRhLXBhZ2U9IiR7VSsxfSJdYCk7aWYoIVYpY29udGludWU7bGV0IFg9Vi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkZT10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdmU9WC50b3AtZGUudG9wK1ksTGU9dmUrWC5oZWlnaHQ7aWYoTD49dmUmJkw8PUxlKXt0aGlzLmN1cnJlbnRQYWdlIT09VSsxJiYodGhpcy5jdXJyZW50UGFnZT1VKzEsdGhpcy5zaG93U2lkZWJhciYmdGhpcy5zY3JvbGxUaHVtYm5haWxJbnRvVmlldyhVKzEpKTticmVha319fXNjcm9sbFRodW1ibmFpbEludG9WaWV3KFkpe2xldCBBPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihgLnRodW1ibmFpbFtkYXRhLXBhZ2U9IiR7WX0iXWApLEw9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuc2lkZWJhci1jb250ZW50Iik7aWYoQSYmTCl7bGV0IFU9QS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxWPUwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksWD1VLnRvcDxWLnRvcCxkZT1VLmJvdHRvbT5WLmJvdHRvbTtpZihYfHxkZSl7bGV0IHZlPUEub2Zmc2V0VG9wLExlPUEub2Zmc2V0SGVpZ2h0LFc9TC5jbGllbnRIZWlnaHQsSD12ZS1XLzIrTGUvMjtMLnNjcm9sbFRvKHt0b3A6TWF0aC5tYXgoMCxIKSxiZWhhdmlvcjoic21vb3RoIn0pfX19YXN5bmMgc2Nyb2xsVG9QYWdlKFksQT0hMCl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgTD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoYC5wYWdlLXdyYXBwZXJbZGF0YS1wYWdlPSIke1l9Il1gKTtpZihMJiZ0aGlzLnZpZXdlck1haW4pe2xldCBVPUwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksVj10aGlzLnZpZXdlck1haW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZGU9dGhpcy52aWV3ZXJNYWluLnNjcm9sbFRvcCsoVS50b3AtVi50b3ApLXRoaXMudmlld2VyTWFpbi5jbGllbnRUb3A7QT90aGlzLnZpZXdlck1haW4uc2Nyb2xsVG8oe3RvcDpkZSxiZWhhdmlvcjoic21vb3RoIn0pOnRoaXMudmlld2VyTWFpbi5zY3JvbGxUb3A9ZGUsdGhpcy5jdXJyZW50UGFnZT1ZLHRoaXMuc2hvd1NpZGViYXImJnRoaXMuc2Nyb2xsVGh1bWJuYWlsSW50b1ZpZXcoWSksYXdhaXQgdGhpcy5yZW5kZXJQYWdlSWZOZWVkZWQoWSl9fWFzeW5jIHJlbmRlclRodW1ibmFpbHMoKXtpZighdGhpcy5wZGZEb2N1bWVudHx8dGhpcy50aHVtYm5haWxEYXRhLmxlbmd0aD4wJiZ0aGlzLnRodW1ibmFpbERhdGEuZXZlcnkoQT0+QS5yZW5kZXJlZCl8fHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPy5zaWduYWwuYWJvcnRlZClyZXR1cm47bGV0IFk9dGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXI/LnNpZ25hbDt0aGlzLnJlbmRlclN0YXRlPSJyZW5kZXJpbmctdGh1bWJzIjtmb3IobGV0IEEgb2YgdGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcyl0cnl7QS5jYW5jZWwoKX1jYXRjaHt9dGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXTt0cnl7YXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgQT10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoIi50aHVtYm5haWwiKSxMPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvckFsbCgiLnRodW1ibmFpbC1jYW52YXMiKSxVPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnNpZGViYXItY29udGVudCIpLFY9d2luZG93LmdldENvbXB1dGVkU3R5bGUoVSksZGU9MjAwLShwYXJzZUZsb2F0KFYucGFkZGluZ0xlZnQpK3BhcnNlRmxvYXQoVi5wYWRkaW5nUmlnaHQpKS00O2ZvcihsZXQgdmUgb2YgQXJyYXkuZnJvbShMKSl7bGV0IExlPXZlLmdldENvbnRleHQoIjJkIik7TGUmJkxlLmNsZWFyUmVjdCgwLDAsdmUud2lkdGgsdmUuaGVpZ2h0KX1mb3IobGV0IHZlPTA7dmU8TC5sZW5ndGg7dmUrKyl7aWYoWT8uYWJvcnRlZClyZXR1cm47bGV0IExlPUxbdmVdLFc9QVt2ZV0sSD1wYXJzZUludChMZS5kYXRhc2V0LnBhZ2V8fCIxIiksdGU9YXdhaXQgdGhpcy5wZGZEb2N1bWVudC5nZXRQYWdlKEgpLGJlPXRlLmdldFZpZXdwb3J0KHtzY2FsZToxfSksdWU9ZGUvYmUud2lkdGgsQ2U9dGUuZ2V0Vmlld3BvcnQoe3NjYWxlOnVlfSksaGU9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7TGUud2lkdGg9TWF0aC5mbG9vcihDZS53aWR0aCpoZSksTGUuaGVpZ2h0PU1hdGguZmxvb3IoQ2UuaGVpZ2h0KmhlKSxMZS5zdHlsZS53aWR0aD1gJHtDZS53aWR0aH1weGAsTGUuc3R5bGUuaGVpZ2h0PWAke0NlLmhlaWdodH1weGAsVy5zdHlsZS5oZWlnaHQ9YCR7Q2UuaGVpZ2h0fXB4YCxXLnN0eWxlLm1pbkhlaWdodD1gJHtDZS5oZWlnaHR9cHhgO2xldCBpZT1MZS5nZXRDb250ZXh0KCIyZCIpO2lmKCFpZSl7dGUuY2xlYW51cD8uKCk7Y29udGludWV9aWUuc2NhbGUoaGUsaGUpO2xldCBTZT17Y2FudmFzQ29udGV4dDppZSx2aWV3cG9ydDpDZX0sSWU9dGUucmVuZGVyKFNlKTt0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzLnB1c2goSWUpLGF3YWl0IEllLnByb21pc2UsdGUuY2xlYW51cD8uKCk7bGV0IFplPXRoaXMudGh1bWJuYWlsRGF0YS5maW5kKEs9PksucGFnZT09PUgpO1plJiYoWmUucmVuZGVyZWQ9ITApfXRoaXMucmVxdWVzdFVwZGF0ZSgidGh1bWJuYWlsRGF0YSIpfWNhdGNoKEEpe0E/Lm5hbWUhPT0iUmVuZGVyaW5nQ2FuY2VsbGVkRXhjZXB0aW9uIiYmY29uc29sZS5lcnJvcigiRXJyb3IgcmVuZGVyaW5nIHRodW1ibmFpbHM6IixBKX1maW5hbGx5e3RoaXMudGh1bWJuYWlsUmVuZGVyVGFza3M9W119fXByZXZpb3VzUGFnZSgpe3RoaXMuY3VycmVudFBhZ2U+MSYmdGhpcy5zY3JvbGxUb1BhZ2UodGhpcy5jdXJyZW50UGFnZS0xKX1uZXh0UGFnZSgpe3RoaXMuY3VycmVudFBhZ2U8dGhpcy50b3RhbFBhZ2VzJiZ0aGlzLnNjcm9sbFRvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKzEpfWhhbmRsZVRodW1ibmFpbENsaWNrKFkpe2xldCBBPVkuY3VycmVudFRhcmdldCxMPXBhcnNlSW50KEEuZGF0YXNldC5wYWdlfHwiMSIpO3RoaXMuc2Nyb2xsVG9QYWdlKEwpfWhhbmRsZVBhZ2VJbnB1dChZKXtsZXQgQT1ZLnRhcmdldCxMPXBhcnNlSW50KEEudmFsdWUpO3RoaXMuc2Nyb2xsVG9QYWdlKEwpfXpvb21Jbigpe2xldCBZPU1hdGgubWluKHRoaXMuTUFOVUFMX01BWF9aT09NLHRoaXMuY3VycmVudFpvb20qMS4yKTt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIixZIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209WSx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKSl9em9vbU91dCgpe2xldCBZPU1hdGgubWF4KHRoaXMuTUFOVUFMX01JTl9aT09NLHRoaXMuY3VycmVudFpvb20vMS4yKTt0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIixZIT09dGhpcy5jdXJyZW50Wm9vbSYmKHRoaXMuY3VycmVudFpvb209WSx0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKSl9cmVzZXRab29tKCl7dGhpcy52aWV3cG9ydE1vZGU9ImN1c3RvbSIsdGhpcy5jdXJyZW50Wm9vbT0xLHRoaXMucmVSZW5kZXJBbGxQYWdlcygpfWZpdFRvUGFnZSgpe3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLWZpdCIsdGhpcy5yZVJlbmRlckFsbFBhZ2VzKCl9Zml0VG9XaWR0aCgpe3RoaXMudmlld3BvcnRNb2RlPSJwYWdlLXdpZHRoIix0aGlzLnJlUmVuZGVyQWxsUGFnZXMoKX1yZVJlbmRlckFsbFBhZ2VzKCl7dGhpcy5wYWdlRGF0YS5mb3JFYWNoKFk9PntZLnJlbmRlcmVkPSExLFkucmVuZGVyaW5nPSExLFkudGV4dExheWVyUmVuZGVyZWQ9ITF9KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5mb3JFYWNoKFk9Pnt0cnl7WS5jYW5jZWwoKX1jYXRjaHt9fSksdGhpcy5wYWdlUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnRleHRMYXllclJlbmRlclRhc2tzLmZvckVhY2goWT0+e3RyeXtZLmNhbmNlbD8uKCl9Y2F0Y2h7fX0pLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuY2xlYXIoKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSx0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCk9Pnt0aGlzLnJlbmRlclZpc2libGVQYWdlcygpfSl9YXN5bmMgZG93bmxvYWRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgWT1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKSxBPW5ldyBCbG9iKFtZLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSxMPVVSTC5jcmVhdGVPYmplY3RVUkwoQSksVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7VS5ocmVmPUwsVS5kb3dubG9hZD10aGlzLnBkZlVybCYmdGhpcy5wZGZVcmwuc3BsaXQoIi8iKS5wb3AoKXx8ImRvY3VtZW50LnBkZiIsVS5jbGljaygpLHNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwoTCksMWUzKX1jYXRjaChZKXtjb25zb2xlLmVycm9yKCJFcnJvciBkb3dubG9hZGluZyBQREY6IixZKX19YXN5bmMgcHJpbnRQZGYoKXtpZih0aGlzLnBkZkRvY3VtZW50KXRyeXtsZXQgWT1hd2FpdCB0aGlzLnBkZkRvY3VtZW50LmdldERhdGEoKSxBPW5ldyBCbG9iKFtZLmJ1ZmZlcl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSxMPVVSTC5jcmVhdGVPYmplY3RVUkwoQSksVT1gCiAgICAgICAgPCFET0NUWVBFIGh0bWw+CiAgICAgICAgPGh0bWw+CiAgICAgICAgPGhlYWQ+CiAgICAgICAgICA8dGl0bGU+UHJpbnQgUERGPC90aXRsZT4KICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQogICAgICAgICAgICBodG1sLCBib2R5IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQogICAgICAgICAgICBpZnJhbWUgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBib3JkZXI6IG5vbmU7IH0KICAgICAgICAgICAgQG1lZGlhIHByaW50IHsKICAgICAgICAgICAgICBodG1sLCBib2R5LCBpZnJhbWUgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CiAgICAgICAgICAgIH0KICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgPC9oZWFkPgogICAgICAgIDxib2R5PgogICAgICAgICAgPGlmcmFtZSBzcmM9IiR7TH0iIHR5cGU9ImFwcGxpY2F0aW9uL3BkZiI+PC9pZnJhbWU+CiAgICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5mb2N1cygpOwogICAgICAgICAgICAgICAgd2luZG93LnByaW50KCk7CiAgICAgICAgICAgICAgfSwgNTAwKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93Lm9uYWZ0ZXJwcmludCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHdpbmRvdy5jbG9zZSgpOwogICAgICAgICAgICB9OwogICAgICAgICAgICAvLyBTYWZldHkgY2xvc2UgYWZ0ZXIgMiBtaW51dGVzCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHdpbmRvdy5jbG9zZSgpOyB9LCAxMjAwMDApOwogICAgICAgICAgPFwvc2NyaXB0PgogICAgICAgIDwvYm9keT4KICAgICAgICA8L2h0bWw+CiAgICAgIGAsVj1uZXcgQmxvYihbVV0se3R5cGU6InRleHQvaHRtbCJ9KSxYPVVSTC5jcmVhdGVPYmplY3RVUkwoViksZGU9d2luZG93Lm9wZW4oWCwiX2JsYW5rIiwid2lkdGg9ODAwLGhlaWdodD02MDAiKTtpZihkZSl7bGV0IHZlPXNldEludGVydmFsKCgpPT57ZGUuY2xvc2VkJiYoY2xlYXJJbnRlcnZhbCh2ZSksVVJMLnJldm9rZU9iamVjdFVSTChMKSxVUkwucmV2b2tlT2JqZWN0VVJMKFgpKX0sNTAwKTtzZXRUaW1lb3V0KCgpPT57Y2xlYXJJbnRlcnZhbCh2ZSksVVJMLnJldm9rZU9iamVjdFVSTChMKSxVUkwucmV2b2tlT2JqZWN0VVJMKFgpfSwxMmU0KX1lbHNlIHdpbmRvdy5vcGVuKEwsIl9ibGFuayIpLHNldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwoTCksNmU0KSxVUkwucmV2b2tlT2JqZWN0VVJMKFgpfWNhdGNoKFkpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHByaW50aW5nIFBERjoiLFkpfX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7bGV0IFk9W10sTD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnRvU3RyaW5nKCl8fCIiO3JldHVybiBMJiYoWS5wdXNoKHtuYW1lOiJDb3B5IixpY29uTmFtZToibHVjaWRlOkNvcHkiLGFjdGlvbjphc3luYygpPT57YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoTCl9fSksWS5wdXNoKHtkaXZpZGVyOiEwfSkpLFkucHVzaCh7bmFtZToiRG93bmxvYWQgUERGIixpY29uTmFtZToibHVjaWRlOkRvd25sb2FkIixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IHRoaXMuZG93bmxvYWRQZGYoKX19LHtuYW1lOiJQcmludCBQREYiLGljb25OYW1lOiJsdWNpZGU6UHJpbnRlciIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnByaW50UGRmKCl9fSksWX1nZXQgY2FuWm9vbUluKCl7cmV0dXJuIHRoaXMudmlld3BvcnRNb2RlIT09ImN1c3RvbSJ8fHRoaXMuY3VycmVudFpvb208dGhpcy5NQU5VQUxfTUFYX1pPT019Z2V0IGNhblpvb21PdXQoKXtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tInx8dGhpcy5jdXJyZW50Wm9vbT50aGlzLk1BTlVBTF9NSU5fWk9PTX1lbnN1cmVWaWV3ZXJSZWZzKCl7dGhpcy52aWV3ZXJNYWlufHwodGhpcy52aWV3ZXJNYWluPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnZpZXdlci1tYWluIikpLHRoaXMudmlld2VyTWFpbiYmIXRoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpLHRoaXMucGRmRG9jdW1lbnQmJnRoaXMucmVSZW5kZXJBbGxQYWdlcygpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudmlld2VyTWFpbiksdGhpcy5tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCksdGhpcy52aWV3ZXJNYWluLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixZPT57bGV0IEE9WS5jdXJyZW50VGFyZ2V0LEw9QS5zY3JvbGxUb3AsVT1BLnNjcm9sbEhlaWdodCxWPUEuY2xpZW50SGVpZ2h0LFg9WS5kZWx0YVksZGU9TD09PTAsdmU9TWF0aC5hYnMoTCtWLVUpPDE7WDwwJiYhZGV8fFg+MCYmIXZlP1kuc3RvcFByb3BhZ2F0aW9uKCk6KFg8MCYmZGV8fFg+MCYmdmUpJiYoWS5wcmV2ZW50RGVmYXVsdCgpLFkuc3RvcFByb3BhZ2F0aW9uKCkpfSx7cGFzc2l2ZTohMX0pKX1tZWFzdXJlVmlld3BvcnREaW1lbnNpb25zKCl7aWYoIXRoaXMudmlld2VyTWFpbil7dGhpcy52aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOjAsaGVpZ2h0OjB9O3JldHVybn1sZXQgWT1nZXRDb21wdXRlZFN0eWxlKHRoaXMudmlld2VyTWFpbiksQT1wYXJzZUZsb2F0KFkucGFkZGluZ0xlZnR8fCIwIikrcGFyc2VGbG9hdChZLnBhZGRpbmdSaWdodHx8IjAiKSxMPXBhcnNlRmxvYXQoWS5wYWRkaW5nVG9wfHwiMCIpK3BhcnNlRmxvYXQoWS5wYWRkaW5nQm90dG9tfHwiMCIpLFU9TWF0aC5tYXgodGhpcy52aWV3ZXJNYWluLmNsaWVudFdpZHRoLUEsMCksVj1NYXRoLm1heCh0aGlzLnZpZXdlck1haW4uY2xpZW50SGVpZ2h0LUwsMCk7dGhpcy52aWV3cG9ydERpbWVuc2lvbnM9e3dpZHRoOlUsaGVpZ2h0OlZ9fXJlc29sdmVJbml0aWFsVmlld3BvcnRNb2RlKCl7dHlwZW9mIHRoaXMuaW5pdGlhbFpvb209PSJudW1iZXIiPyh0aGlzLnZpZXdwb3J0TW9kZT0iY3VzdG9tIix0aGlzLmN1cnJlbnRab29tPXRoaXMubm9ybWFsaXplWm9vbSh0aGlzLmluaXRpYWxab29tLCEwKSk6dGhpcy5pbml0aWFsWm9vbT09PSJwYWdlLXdpZHRoIj90aGlzLnZpZXdwb3J0TW9kZT0icGFnZS13aWR0aCI6dGhpcy5pbml0aWFsWm9vbT09PSJwYWdlLWZpdCJ8fHRoaXMuaW5pdGlhbFpvb209PT0iYXV0byI/dGhpcy52aWV3cG9ydE1vZGU9InBhZ2UtZml0Ijp0aGlzLnZpZXdwb3J0TW9kZT0iYXV0byIsdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209MSl9Y29tcHV0ZVZpZXdwb3J0KFkpe3RoaXMubWVhc3VyZVZpZXdwb3J0RGltZW5zaW9ucygpO2xldCBBPVkuZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSxMO3N3aXRjaCh0aGlzLnZpZXdwb3J0TW9kZSl7Y2FzZSJwYWdlLXdpZHRoIjp7TD0odGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGh8fEEud2lkdGgpL0Eud2lkdGg7YnJlYWt9Y2FzZSJwYWdlLWZpdCI6Y2FzZSJhdXRvIjp7bGV0IFY9dGhpcy52aWV3cG9ydERpbWVuc2lvbnMud2lkdGh8fEEud2lkdGgsWD10aGlzLnZpZXdwb3J0RGltZW5zaW9ucy5oZWlnaHR8fEEuaGVpZ2h0LGRlPVYvQS53aWR0aCx2ZT1YL0EuaGVpZ2h0O0w9TWF0aC5taW4oZGUsdmUpO2JyZWFrfWRlZmF1bHQ6e0w9dGhpcy5ub3JtYWxpemVab29tKHRoaXMuY3VycmVudFpvb218fDEsITEpO2JyZWFrfX0oIU51bWJlci5pc0Zpbml0ZShMKXx8TDw9MCkmJihMPTEpO2xldCBVPXRoaXMudmlld3BvcnRNb2RlPT09ImN1c3RvbSI/dGhpcy5ub3JtYWxpemVab29tKEwsITApOnRoaXMubm9ybWFsaXplWm9vbShMLCExKTtyZXR1cm4gdGhpcy52aWV3cG9ydE1vZGUhPT0iY3VzdG9tIiYmKHRoaXMuY3VycmVudFpvb209VSksWS5nZXRWaWV3cG9ydCh7c2NhbGU6VX0pfW5vcm1hbGl6ZVpvb20oWSxBKXtsZXQgTD1BP3RoaXMuTUFOVUFMX01JTl9aT09NOnRoaXMuQUJTT0xVVEVfTUlOX1pPT00sVT1BP3RoaXMuTUFOVUFMX01BWF9aT09NOnRoaXMuQUJTT0xVVEVfTUFYX1pPT007cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KFksTCksVSl9YXN5bmMgY2xlYW51cERvY3VtZW50KCl7aWYodGhpcy5yZW5kZXJBYm9ydENvbnRyb2xsZXImJih0aGlzLnJlbmRlckFib3J0Q29udHJvbGxlci5hYm9ydCgpLHRoaXMucmVuZGVyQWJvcnRDb250cm9sbGVyPW51bGwpLHRoaXMuY3VycmVudFJlbmRlclByb21pc2Upe3RyeXthd2FpdCB0aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlfWNhdGNoe310aGlzLmN1cnJlbnRSZW5kZXJQcm9taXNlPW51bGx9dGhpcy5jdXJyZW50UmVuZGVyVGFzaz1udWxsLHRoaXMucGFnZVJlbmRlclRhc2tzLmZvckVhY2goWT0+e3RyeXtZLmNhbmNlbCgpfWNhdGNoe319KSx0aGlzLnBhZ2VSZW5kZXJUYXNrcy5jbGVhcigpLHRoaXMudGV4dExheWVyUmVuZGVyVGFza3MuZm9yRWFjaChZPT57dHJ5e1kuY2FuY2VsPy4oKX1jYXRjaHt9fSksdGhpcy50ZXh0TGF5ZXJSZW5kZXJUYXNrcy5jbGVhcigpO2ZvcihsZXQgWSBvZiB0aGlzLnRodW1ibmFpbFJlbmRlclRhc2tzfHxbXSl0cnl7WS5jYW5jZWwoKX1jYXRjaHt9aWYodGhpcy50aHVtYm5haWxSZW5kZXJUYXNrcz1bXSx0aGlzLnJlbmRlclN0YXRlPSJpZGxlIix0aGlzLnBhZ2VSZW5kZXJpbmc9ITEsdGhpcy5wYWdlTnVtUGVuZGluZz1udWxsLHRoaXMudGh1bWJuYWlsRGF0YT1bXSx0aGlzLnBhZ2VEYXRhPVtdLHRoaXMuZG9jdW1lbnRJZD0iIix0aGlzLmNhbnZhcyYmdGhpcy5jdHgmJnRoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLnBkZkRvY3VtZW50KXRyeXt0aGlzLnBkZkRvY3VtZW50LmRlc3Ryb3koKX1jYXRjaChZKXtjb25zb2xlLmVycm9yKCJFcnJvciBkZXN0cm95aW5nIFBERiBkb2N1bWVudDoiLFkpfXRoaXMucGRmRG9jdW1lbnQ9bnVsbCx0aGlzLnJlcXVlc3RVcGRhdGUoKX1zdGF0aWN7ZzEoaSxyKX19O3JldHVybiBrZT1pfSkoKX0pO3ZhciBfM3IsTDNyPXAoKCk9Pnt4ZSgpO18zcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0OHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y4ZjlmYSIsIiMwYTBhMGEiKX07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIGdhcDogNDBweDsKICAgIH0KCiAgICAuc2VjdGlvbiB7CiAgICAgIG1heC13aWR0aDogOTAwcHg7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KCiAgICAuc2VjdGlvbi10aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgfQoKICAgIC5wcmV2aWV3LWltYWdlIHsKICAgICAgaGVpZ2h0OiA0MDBweDsKICAgIH0KCiAgICAucHJldmlldy1wZGYgewogICAgICBoZWlnaHQ6IDYwMHB4OwogICAgfQogIDwvc3R5bGU+CgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5JbWFnZSBQcmV2aWV3IChVUkwpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPkF1dG8tZGV0ZWN0cyBpbWFnZSBmcm9tIFVSTCBleHRlbnNpb24gYW5kIHJlbmRlcnMgd2l0aCB0aGUgaW1hZ2Ugdmlld2VyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgY2xhc3M9InByZXZpZXctaW1hZ2UiCiAgICAgICAgdXJsPSJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjc0NDAzODEzNi00NjI3MzgzNGIzZmI/dz0xMjAwIgogICAgICAgIGZpbGVuYW1lPSJsYW5kc2NhcGUuanBnIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+UERGIFByZXZpZXcgKFVSTCk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+QXV0by1kZXRlY3RzIFBERiBhbmQgZGlzcGxheXMgd2l0aCB0aGUgUERGIHZpZXdlciBpbmNsdWRpbmcgdG9vbGJhci48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNsYXNzPSJwcmV2aWV3LXBkZiIKICAgICAgICB1cmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICBmaWxlbmFtZT0icmVzZWFyY2gtcGFwZXIucGRmIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+Q29kZSBQcmV2aWV3IChUZXh0IENvbnRlbnQpPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPlR5cGVTY3JpcHQgY29kZSBkaXNwbGF5ZWQgd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nIHZpYSB0aGUgY29kZWJveC48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGZpbGVuYW1lPSJleGFtcGxlLnRzIgogICAgICAgIGxhbmd1YWdlPSJ0eXBlc2NyaXB0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BpbXBvcnQgeyBodG1sLCBjc3MgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7CiAgc3RhdGljIHN0eWxlcyA9IGNzc1xgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBwYWRkaW5nOiAxNnB4OwogICAgfQogIFxgOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgPGgxPkhlbGxvIFdvcmxkPC9oMT5cYDsKICB9Cn1gfQogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+QXVkaW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5BdWRpbyBmaWxlIGRldGVjdGVkIGJ5IGV4dGVuc2lvbiwgc2hvd24gd2l0aCB3YXZlZm9ybSBwbGF5ZXIuPC9kaXY+CiAgICAgIDxkZWVzLXByZXZpZXcKICAgICAgICB1cmw9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgZmlsZW5hbWU9InNvbmcubXAzIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+VmlkZW8gUHJldmlldyAoVVJMKTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5WaWRlbyBmaWxlIGRldGVjdGVkIGZyb20gVVJMLCByZW5kZXJlZCB3aXRoIGN1c3RvbSB2aWRlbyBjb250cm9scy48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIHVybD0iaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9ndHYtdmlkZW9zLWJ1Y2tldC9zYW1wbGUvQmlnQnVja0J1bm55Lm1wNCIKICAgICAgICBmaWxlbmFtZT0iYmlnLWJ1Y2stYnVubnkubXA0IgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+RXhwbGljaXQgVHlwZSBPdmVycmlkZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj5Gb3JjZSBjb250ZW50IHR5cGUgdG8gJ3RleHQnIGV2ZW4gdGhvdWdoIHRoZSBVUkwgaGFzIG5vIGV4dGVuc2lvbi48L2Rpdj4KICAgICAgPGRlZXMtcHJldmlldwogICAgICAgIGNvbnRlbnRUeXBlPSJ0ZXh0IgogICAgICAgIC50ZXh0Q29udGVudD0ke2BUaGlzIGlzIHBsYWluIHRleHQgY29udGVudC4KSXQgcHJlc2VydmVzIHdoaXRlc3BhY2UgYW5kIGxpbmUgYnJlYWtzLgoKVXNlZnVsIGZvciBsb2cgZmlsZXMsIFJFQURNRXMsIGV0Yy5gfQogICAgICAgIGZpbGVuYW1lPSJub3Rlcy50eHQiCiAgICAgID48L2RlZXMtcHJldmlldz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLXRpdGxlIj5Vbmtub3duIFR5cGU8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+V2hlbiBjb250ZW50IHR5cGUgY2Fubm90IGJlIGRldGVjdGVkLCBzaG93cyBhIHBsYWNlaG9sZGVyLjwvZGl2PgogICAgICA8ZGVlcy1wcmV2aWV3CiAgICAgICAgZmlsZW5hbWU9ImRhdGEuYmluIgogICAgICAgIGNvbnRlbnRUeXBlPSJ1bmtub3duIgogICAgICA+PC9kZWVzLXByZXZpZXc+CiAgICA8L2Rpdj4KICA8L2Rpdj4KYH0pO3ZhciBuYSx2cixBM3IsaFhyLGZYcixtWHIsRDNyLEUzcj1wKCgpPT57eGUoKTtnZGUoKTtiZGUoKTt2ZGUoKTtWNmUoKTt4ZGUoKTtvcigpO0wzcigpO25hPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sdnI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LEEzcj17anBnOiJpbWFnZSIsanBlZzoiaW1hZ2UiLHBuZzoiaW1hZ2UiLGdpZjoiaW1hZ2UiLHdlYnA6ImltYWdlIixzdmc6ImltYWdlIixibXA6ImltYWdlIixhdmlmOiJpbWFnZSIsaWNvOiJpbWFnZSIscGRmOiJwZGYiLG1wMzoiYXVkaW8iLHdhdjoiYXVkaW8iLG9nZzoiYXVkaW8iLGZsYWM6ImF1ZGlvIixhYWM6ImF1ZGlvIixtNGE6ImF1ZGlvIixvcHVzOiJhdWRpbyIsd2ViYToiYXVkaW8iLG1wNDoidmlkZW8iLHdlYm06InZpZGVvIixtb3Y6InZpZGVvIixhdmk6InZpZGVvIixta3Y6InZpZGVvIixvZ3Y6InZpZGVvIix0czoiY29kZSIsanM6ImNvZGUiLGpzeDoiY29kZSIsdHN4OiJjb2RlIixqc29uOiJjb2RlIixodG1sOiJjb2RlIixjc3M6ImNvZGUiLHNjc3M6ImNvZGUiLGxlc3M6ImNvZGUiLHB5OiJjb2RlIixqYXZhOiJjb2RlIixnbzoiY29kZSIscnM6ImNvZGUiLHlhbWw6ImNvZGUiLHltbDoiY29kZSIseG1sOiJjb2RlIixzcWw6ImNvZGUiLHNoOiJjb2RlIixiYXNoOiJjb2RlIix6c2g6ImNvZGUiLG1kOiJjb2RlIixjOiJjb2RlIixjcHA6ImNvZGUiLGg6ImNvZGUiLGhwcDoiY29kZSIscmI6ImNvZGUiLHBocDoiY29kZSIsc3dpZnQ6ImNvZGUiLGt0OiJjb2RlIix0eHQ6InRleHQiLGxvZzoidGV4dCIsY3N2OiJ0ZXh0IixlbnY6InRleHQifSxoWHI9eyJpbWFnZS8iOiJpbWFnZSIsImF1ZGlvLyI6ImF1ZGlvIiwidmlkZW8vIjoidmlkZW8iLCJhcHBsaWNhdGlvbi9wZGYiOiJwZGYifSxmWHI9e3RzOiJ0eXBlc2NyaXB0Iix0c3g6InR5cGVzY3JpcHQiLGpzOiJqYXZhc2NyaXB0Iixqc3g6ImphdmFzY3JpcHQiLGpzb246Impzb24iLGh0bWw6InhtbCIseG1sOiJ4bWwiLGNzczoiY3NzIixzY3NzOiJzY3NzIixsZXNzOiJsZXNzIixweToicHl0aG9uIixqYXZhOiJqYXZhIixnbzoiZ28iLHJzOiJydXN0Iix5YW1sOiJ5YW1sIix5bWw6InlhbWwiLHNxbDoic3FsIixzaDoiYmFzaCIsYmFzaDoiYmFzaCIsenNoOiJiYXNoIixjOiJjIixjcHA6ImNwcCIsaDoiYyIsaHBwOiJjcHAiLHJiOiJydWJ5IixwaHA6InBocCIsc3dpZnQ6InN3aWZ0IixrdDoia290bGluIixtZDoibWFya2Rvd24ifSxtWHI9e2ltYWdlOiJsdWNpZGU6SW1hZ2UiLHBkZjoibHVjaWRlOkZpbGVUZXh0IixhdWRpbzoibHVjaWRlOk11c2ljIix2aWRlbzoibHVjaWRlOlZpZGVvIixjb2RlOiJsdWNpZGU6Q29kZSIsdGV4dDoibHVjaWRlOkZpbGVUZXh0Iix1bmtub3duOiJsdWNpZGU6RmlsZSJ9LEQzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtcHJldmlldyIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdLEYsRD1bXSxOPVtdLFIsXz1bXSxTPVtdLCQsVD1bXSxFPVtdLHEsQj1bXSxHPVtdLGVlLFA9W10sZ2U9W10sd2UsST1bXSxuZT1bXSxrZSxZPVtdLEE9W10sTCxVPVtdLFY9W10sWCxkZT1bXSx2ZT1bXSxMZSxXPVtdLEg9W107dmFyIHRlPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYmU9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baigpXSxsPVtqKHthdHRyaWJ1dGU6ITF9KV0sZD1baigpXSx4PVtqKCldLHk9W2ooKV0sTz1baigpXSxGPVtqKCldLFI9W2ooKV0sJD1baih7dHlwZTpCb29sZWFufSldLHE9W2ooe3R5cGU6Qm9vbGVhbn0pXSxlZT1bZmUoKV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxYPVtmZSgpXSxMZT1bZmUoKV0sbmEodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ1cmwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnVlPT4idXJsImluIHVlLGdldDp1ZT0+dWUudXJsLHNldDoodWUsQ2UpPT57dWUudXJsPUNlfX0sbWV0YWRhdGE6YmV9LG8scyksbmEodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1ZT0+ImZpbGUiaW4gdWUsZ2V0OnVlPT51ZS5maWxlLHNldDoodWUsQ2UpPT57dWUuZmlsZT1DZX19LG1ldGFkYXRhOmJlfSxjLHUpLG5hKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYmFzZTY0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1ZT0+ImJhc2U2NCJpbiB1ZSxnZXQ6dWU9PnVlLmJhc2U2NCxzZXQ6KHVlLENlKT0+e3VlLmJhc2U2ND1DZX19LG1ldGFkYXRhOmJlfSxoLGYpLG5hKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGV4dENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnVlPT4idGV4dENvbnRlbnQiaW4gdWUsZ2V0OnVlPT51ZS50ZXh0Q29udGVudCxzZXQ6KHVlLENlKT0+e3VlLnRleHRDb250ZW50PUNlfX0sbWV0YWRhdGE6YmV9LHYsYiksbmEodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50VHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJjb250ZW50VHlwZSJpbiB1ZSxnZXQ6dWU9PnVlLmNvbnRlbnRUeXBlLHNldDoodWUsQ2UpPT57dWUuY29udGVudFR5cGU9Q2V9fSxtZXRhZGF0YTpiZX0sdyxrKSxuYSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1ZT0+Imxhbmd1YWdlImluIHVlLGdldDp1ZT0+dWUubGFuZ3VhZ2Usc2V0Oih1ZSxDZSk9Pnt1ZS5sYW5ndWFnZT1DZX19LG1ldGFkYXRhOmJlfSx6LE0pLG5hKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibWltZVR5cGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnVlPT4ibWltZVR5cGUiaW4gdWUsZ2V0OnVlPT51ZS5taW1lVHlwZSxzZXQ6KHVlLENlKT0+e3VlLm1pbWVUeXBlPUNlfX0sbWV0YWRhdGE6YmV9LEQsTiksbmEodGhpcyxudWxsLFIse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWxlbmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJmaWxlbmFtZSJpbiB1ZSxnZXQ6dWU9PnVlLmZpbGVuYW1lLHNldDoodWUsQ2UpPT57dWUuZmlsZW5hbWU9Q2V9fSxtZXRhZGF0YTpiZX0sXyxTKSxuYSh0aGlzLG51bGwsJCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNob3dUb29sYmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1ZT0+InNob3dUb29sYmFyImluIHVlLGdldDp1ZT0+dWUuc2hvd1Rvb2xiYXIsc2V0Oih1ZSxDZSk9Pnt1ZS5zaG93VG9vbGJhcj1DZX19LG1ldGFkYXRhOmJlfSxULEUpLG5hKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0ZpbGVuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1ZT0+InNob3dGaWxlbmFtZSJpbiB1ZSxnZXQ6dWU9PnVlLnNob3dGaWxlbmFtZSxzZXQ6KHVlLENlKT0+e3VlLnNob3dGaWxlbmFtZT1DZX19LG1ldGFkYXRhOmJlfSxCLEcpLG5hKHRoaXMsbnVsbCxlZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVHlwZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJyZXNvbHZlZFR5cGUiaW4gdWUsZ2V0OnVlPT51ZS5yZXNvbHZlZFR5cGUsc2V0Oih1ZSxDZSk9Pnt1ZS5yZXNvbHZlZFR5cGU9Q2V9fSxtZXRhZGF0YTpiZX0sUCxnZSksbmEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVzb2x2ZWRTcmMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnVlPT4icmVzb2x2ZWRTcmMiaW4gdWUsZ2V0OnVlPT51ZS5yZXNvbHZlZFNyYyxzZXQ6KHVlLENlKT0+e3VlLnJlc29sdmVkU3JjPUNlfX0sbWV0YWRhdGE6YmV9LEksbmUpLG5hKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkVGV4dCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJyZXNvbHZlZFRleHQiaW4gdWUsZ2V0OnVlPT51ZS5yZXNvbHZlZFRleHQsc2V0Oih1ZSxDZSk9Pnt1ZS5yZXNvbHZlZFRleHQ9Q2V9fSxtZXRhZGF0YTpiZX0sWSxBKSxuYSh0aGlzLG51bGwsTCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlc29sdmVkTGFuZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJyZXNvbHZlZExhbmciaW4gdWUsZ2V0OnVlPT51ZS5yZXNvbHZlZExhbmcsc2V0Oih1ZSxDZSk9Pnt1ZS5yZXNvbHZlZExhbmc9Q2V9fSxtZXRhZGF0YTpiZX0sVSxWKSxuYSh0aGlzLG51bGwsWCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxvYWRpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnVlPT4ibG9hZGluZyJpbiB1ZSxnZXQ6dWU9PnVlLmxvYWRpbmcsc2V0Oih1ZSxDZSk9Pnt1ZS5sb2FkaW5nPUNlfX0sbWV0YWRhdGE6YmV9LGRlLHZlKSxuYSh0aGlzLG51bGwsTGUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJlcnJvciIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dWU9PiJlcnJvciJpbiB1ZSxnZXQ6dWU9PnVlLmVycm9yLHNldDoodWUsQ2UpPT57dWUuZXJyb3I9Q2V9fSxtZXRhZGF0YTpiZX0sVyxIKSxuYShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpiZX0sbnVsbCxyKSx0ZT1pPXQudmFsdWUsYmUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YmV9KX1zdGF0aWMgZGVtbz1fM3I7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIkRhdGEgVmlldyJdOyNlPXZyKHRoaXMsbywiIik7Z2V0IHVybCgpe3JldHVybiB0aGlzLiNlfXNldCB1cmwoYmUpe3RoaXMuI2U9YmV9I3Q9KHZyKHRoaXMscyksdnIodGhpcyxjLHZvaWQgMCkpO2dldCBmaWxlKCl7cmV0dXJuIHRoaXMuI3R9c2V0IGZpbGUoYmUpe3RoaXMuI3Q9YmV9I3I9KHZyKHRoaXMsdSksdnIodGhpcyxoLCIiKSk7Z2V0IGJhc2U2NCgpe3JldHVybiB0aGlzLiNyfXNldCBiYXNlNjQoYmUpe3RoaXMuI3I9YmV9I2k9KHZyKHRoaXMsZiksdnIodGhpcyx2LCIiKSk7Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRleHRDb250ZW50KGJlKXt0aGlzLiNpPWJlfSNhPSh2cih0aGlzLGIpLHZyKHRoaXMsdyx2b2lkIDApKTtnZXQgY29udGVudFR5cGUoKXtyZXR1cm4gdGhpcy4jYX1zZXQgY29udGVudFR5cGUoYmUpe3RoaXMuI2E9YmV9I249KHZyKHRoaXMsayksdnIodGhpcyx6LCIiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI259c2V0IGxhbmd1YWdlKGJlKXt0aGlzLiNuPWJlfSNvPSh2cih0aGlzLE0pLHZyKHRoaXMsRCwiIikpO2dldCBtaW1lVHlwZSgpe3JldHVybiB0aGlzLiNvfXNldCBtaW1lVHlwZShiZSl7dGhpcy4jbz1iZX0jcz0odnIodGhpcyxOKSx2cih0aGlzLF8sIiIpKTtnZXQgZmlsZW5hbWUoKXtyZXR1cm4gdGhpcy4jc31zZXQgZmlsZW5hbWUoYmUpe3RoaXMuI3M9YmV9I2w9KHZyKHRoaXMsUyksdnIodGhpcyxULCEwKSk7Z2V0IHNob3dUb29sYmFyKCl7cmV0dXJuIHRoaXMuI2x9c2V0IHNob3dUb29sYmFyKGJlKXt0aGlzLiNsPWJlfSNjPSh2cih0aGlzLEUpLHZyKHRoaXMsQiwhMCkpO2dldCBzaG93RmlsZW5hbWUoKXtyZXR1cm4gdGhpcy4jY31zZXQgc2hvd0ZpbGVuYW1lKGJlKXt0aGlzLiNjPWJlfSNkPSh2cih0aGlzLEcpLHZyKHRoaXMsUCwidW5rbm93biIpKTtnZXQgcmVzb2x2ZWRUeXBlKCl7cmV0dXJuIHRoaXMuI2R9c2V0IHJlc29sdmVkVHlwZShiZSl7dGhpcy4jZD1iZX0jdT0odnIodGhpcyxnZSksdnIodGhpcyxJLCIiKSk7Z2V0IHJlc29sdmVkU3JjKCl7cmV0dXJuIHRoaXMuI3V9c2V0IHJlc29sdmVkU3JjKGJlKXt0aGlzLiN1PWJlfSNwPSh2cih0aGlzLG5lKSx2cih0aGlzLFksIiIpKTtnZXQgcmVzb2x2ZWRUZXh0KCl7cmV0dXJuIHRoaXMuI3B9c2V0IHJlc29sdmVkVGV4dChiZSl7dGhpcy4jcD1iZX0jaD0odnIodGhpcyxBKSx2cih0aGlzLFUsInRleHQiKSk7Z2V0IHJlc29sdmVkTGFuZygpe3JldHVybiB0aGlzLiNofXNldCByZXNvbHZlZExhbmcoYmUpe3RoaXMuI2g9YmV9I2Y9KHZyKHRoaXMsViksdnIodGhpcyxkZSwhMSkpO2dldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuI2Z9c2V0IGxvYWRpbmcoYmUpe3RoaXMuI2Y9YmV9I209KHZyKHRoaXMsdmUpLHZyKHRoaXMsVywiIikpO2dldCBlcnJvcigpe3JldHVybiB0aGlzLiNtfXNldCBlcnJvcihiZSl7dGhpcy4jbT1iZX1vYmplY3RVcmw9KHZyKHRoaXMsSCksIiIpO3JlbmRlcigpe2xldCBiZT10aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fHRoaXMuZ2V0RmlsZW5hbWVGcm9tVXJsKCl8fCIiO3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgOmhvc3QgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgfQoKICAgICAgICAucHJldmlldy1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsIiMyNzI3MmEiKX07CiAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDkwOTBiIil9OwogICAgICAgIH0KCiAgICAgICAgLmhlYWRlci1iYXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjlmYWZiIiwiaHNsKDIxNSAyMCUgMTUlKSIpfTsKICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2U1ZTdlYiIsImhzbCgyMTcgMjUlIDIyJSkiKX07CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5oZWFkZXItaWNvbiB7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMTYlIDQ1JSkiLCJoc2woMjE1IDE2JSA3NSUpIil9OwogICAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWZpbGVuYW1lIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQoKICAgICAgICAuaGVhZGVyLWJhZGdlIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OwogICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpIiwicmdiYSg1OSwgMTMwLCAyNDYsIDAuMTUpIil9OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgewogICAgICAgICAgZmxleDogMTsKICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDsKICAgICAgICB9CgogICAgICAgIC5jb250ZW50LWFyZWEgPiAqIHsKICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1pbWFnZS12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXBkZi12aWV3ZXIgewogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgfQoKICAgICAgICBkZWVzLXZpZGVvLXZpZXdlciB7CiAgICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICB9CgogICAgICAgIGRlZXMtYXVkaW8tdmlld2VyIHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIH0KCiAgICAgICAgZGVlcy1kYXRhdmlldy1jb2RlYm94IHsKICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIH0KCiAgICAgICAgLnRleHQtdmlld2VyIHsKICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyIHsKICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgbWluLWhlaWdodDogMjAwcHg7CiAgICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNhMWExYWEiLCIjNzE3MTdhIil9OwogICAgICAgIH0KCiAgICAgICAgLnBsYWNlaG9sZGVyIGRlZXMtaWNvbiB7CiAgICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgICAgICBmb250LXNpemU6IDMycHg7CiAgICAgICAgfQoKICAgICAgICAucGxhY2Vob2xkZXItdGV4dCB7CiAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQoKICAgICAgICAubG9hZGluZy1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgIH0KCiAgICAgICAgLmxvYWRpbmctc3Bpbm5lciB7CiAgICAgICAgICB3aWR0aDogMzJweDsKICAgICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzNmM2Y0NiIpfTsKICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzYwYTVmYSIpfTsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KICAgICAgICB9CgogICAgICAgIC5lcnJvci1jb250YWluZXIgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4OwogICAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZGMyNjI2IiwiI2Y4NzE3MSIpfTsKICAgICAgICB9CgogICAgICAgIC5lcnJvci1jb250YWluZXIgZGVlcy1pY29uIHsKICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKICAgICAgICB9CgogICAgICAgIC5lcnJvci10ZXh0IHsKICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CgogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWNvbnRhaW5lciI+CiAgICAgICAgJHt0aGlzLnNob3dGaWxlbmFtZSYmYmU/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1iYXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJoZWFkZXItaWNvbiIgaWNvbj0iJHttWHJbdGhpcy5yZXNvbHZlZFR5cGVdfSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWFkZXItZmlsZW5hbWUiPiR7YmV9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iaGVhZGVyLWJhZGdlIj4ke3RoaXMucmVzb2x2ZWRUeXBlfTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtYXJlYSI+CiAgICAgICAgICAke3RoaXMuZXJyb3I/Q2AKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXJyb3ItY29udGFpbmVyIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpBbGVydFRyaWFuZ2xlIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXJyb3ItdGV4dCI+JHt0aGlzLmVycm9yfTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMubG9hZGluZz9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nLWNvbnRhaW5lciI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGluZy1zcGlubmVyIj48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgOnRoaXMucmVuZGVyQ29udGVudCgpfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9cmVuZGVyQ29udGVudCgpe3N3aXRjaCh0aGlzLnJlc29sdmVkVHlwZSl7Y2FzZSJpbWFnZSI6cmV0dXJuIENgCiAgICAgICAgICA8ZGVlcy1pbWFnZS12aWV3ZXIKICAgICAgICAgICAgLnNyYz0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC5zaG93VG9vbGJhcj0ke3RoaXMuc2hvd1Rvb2xiYXJ9CiAgICAgICAgICAgIGFsdD0iJHt0aGlzLmZpbGVuYW1lfHwiIn0iCiAgICAgICAgICA+PC9kZWVzLWltYWdlLXZpZXdlcj4KICAgICAgICBgO2Nhc2UicGRmIjpyZXR1cm4gQ2AKICAgICAgICAgIDxkZWVzLXBkZi12aWV3ZXIKICAgICAgICAgICAgLnBkZlVybD0ke3RoaXMucmVzb2x2ZWRTcmN9CiAgICAgICAgICAgIC5zaG93VG9vbGJhcj0ke3RoaXMuc2hvd1Rvb2xiYXJ9CiAgICAgICAgICAgIGluaXRpYWxab29tPSJwYWdlLWZpdCIKICAgICAgICAgID48L2RlZXMtcGRmLXZpZXdlcj4KICAgICAgICBgO2Nhc2UiYXVkaW8iOnJldHVybiBDYAogICAgICAgICAgPGRlZXMtYXVkaW8tdmlld2VyCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnJlc29sdmVkU3JjfQogICAgICAgICAgICAudGl0bGU9JHt0aGlzLmZpbGVuYW1lfHx0aGlzLmZpbGU/Lm5hbWV8fCIifQogICAgICAgICAgPjwvZGVlcy1hdWRpby12aWV3ZXI+CiAgICAgICAgYDtjYXNlInZpZGVvIjpyZXR1cm4gQ2AKICAgICAgICAgIDxkZWVzLXZpZGVvLXZpZXdlcgogICAgICAgICAgICAuc3JjPSR7dGhpcy5yZXNvbHZlZFNyY30KICAgICAgICAgID48L2RlZXMtdmlkZW8tdmlld2VyPgogICAgICAgIGA7Y2FzZSJjb2RlIjpyZXR1cm4gQ2AKICAgICAgICAgIDxkZWVzLWRhdGF2aWV3LWNvZGVib3gKICAgICAgICAgICAgLnByb2dMYW5nPSR7dGhpcy5yZXNvbHZlZExhbmd9CiAgICAgICAgICAgIC5jb2RlVG9EaXNwbGF5PSR7dGhpcy5yZXNvbHZlZFRleHR9CiAgICAgICAgICA+PC9kZWVzLWRhdGF2aWV3LWNvZGVib3g+CiAgICAgICAgYDtjYXNlInRleHQiOnJldHVybiBDYDxwcmUgY2xhc3M9InRleHQtdmlld2VyIj4ke3RoaXMucmVzb2x2ZWRUZXh0fTwvcHJlPmA7ZGVmYXVsdDpyZXR1cm4gQ2AKICAgICAgICAgIDxkaXYgY2xhc3M9InBsYWNlaG9sZGVyIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVF1ZXN0aW9uIj48L2RlZXMtaWNvbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBsYWNlaG9sZGVyLXRleHQiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGB9fWFzeW5jIHVwZGF0ZWQoYmUpe3N1cGVyLnVwZGF0ZWQoYmUpLFsidXJsIiwiZmlsZSIsImJhc2U2NCIsInRleHRDb250ZW50IiwiY29udGVudFR5cGUiLCJsYW5ndWFnZSIsIm1pbWVUeXBlIiwiZmlsZW5hbWUiXS5zb21lKGhlPT5iZS5oYXMoaGUpKSYmYXdhaXQgdGhpcy5yZXNvbHZlQ29udGVudCgpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnJldm9rZU9iamVjdFVybCgpfWFzeW5jIHJlc29sdmVDb250ZW50KCl7dGhpcy5lcnJvcj0iIix0aGlzLnJldm9rZU9iamVjdFVybCgpLHRoaXMucmVzb2x2ZWRUeXBlPXRoaXMuZGV0ZWN0VHlwZSgpO3RyeXtpZih0aGlzLnVybCl7aWYodGhpcy5yZXNvbHZlZFNyYz10aGlzLnVybCx0aGlzLnJlc29sdmVkVHlwZT09PSJjb2RlInx8dGhpcy5yZXNvbHZlZFR5cGU9PT0idGV4dCIpaWYodGhpcy50ZXh0Q29udGVudCl0aGlzLnJlc29sdmVkVGV4dD10aGlzLnRleHRDb250ZW50O2Vsc2V7dGhpcy5sb2FkaW5nPSEwO2xldCBiZT1hd2FpdCBmZXRjaCh0aGlzLnVybCk7dGhpcy5yZXNvbHZlZFRleHQ9YXdhaXQgYmUudGV4dCgpLHRoaXMubG9hZGluZz0hMX19ZWxzZSBpZih0aGlzLmZpbGUpdGhpcy5vYmplY3RVcmw9VVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLmZpbGUpLHRoaXMucmVzb2x2ZWRTcmM9dGhpcy5vYmplY3RVcmwsKHRoaXMucmVzb2x2ZWRUeXBlPT09ImNvZGUifHx0aGlzLnJlc29sdmVkVHlwZT09PSJ0ZXh0IikmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5yZXNvbHZlZFRleHQ9YXdhaXQgdGhpcy5maWxlLnRleHQoKSx0aGlzLmxvYWRpbmc9ITEpO2Vsc2UgaWYodGhpcy5iYXNlNjQpe2xldCBiZT10aGlzLm1pbWVUeXBlfHwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIjt0aGlzLnJlc29sdmVkU3JjPWBkYXRhOiR7YmV9O2Jhc2U2NCwke3RoaXMuYmFzZTY0fWB9ZWxzZSB0aGlzLnRleHRDb250ZW50JiYodGhpcy5yZXNvbHZlZFRleHQ9dGhpcy50ZXh0Q29udGVudCl9Y2F0Y2h7dGhpcy5lcnJvcj0iRmFpbGVkIHRvIGxvYWQgY29udGVudCIsdGhpcy5sb2FkaW5nPSExfXRoaXMucmVzb2x2ZWRMYW5nPXRoaXMucmVzb2x2ZUxhbmd1YWdlKCl9ZGV0ZWN0VHlwZSgpe2lmKHRoaXMuY29udGVudFR5cGUpcmV0dXJuIHRoaXMuY29udGVudFR5cGU7bGV0IGJlPXRoaXMubWltZVR5cGV8fHRoaXMuZmlsZT8udHlwZXx8IiI7aWYoYmUpe2lmKGJlPT09ImFwcGxpY2F0aW9uL3BkZiIpcmV0dXJuInBkZiI7Zm9yKGxldFtDZSxoZV1vZiBPYmplY3QuZW50cmllcyhoWHIpKWlmKGJlLnN0YXJ0c1dpdGgoQ2UpKXJldHVybiBoZTtpZihiZS5zdGFydHNXaXRoKCJ0ZXh0LyIpKXJldHVybiJ0ZXh0In1sZXQgdWU9dGhpcy5nZXRFeHRlbnNpb24oKTtyZXR1cm4gdWUmJkEzclt1ZV0/QTNyW3VlXTp0aGlzLnRleHRDb250ZW50P3RoaXMubGFuZ3VhZ2U/ImNvZGUiOiJ0ZXh0IjoidW5rbm93biJ9Z2V0RXh0ZW5zaW9uKCl7bGV0IGJlPXRoaXMuZmlsZW5hbWV8fHRoaXMuZmlsZT8ubmFtZXx8IiI7aWYoYmUpe2xldCB1ZT1iZS5zcGxpdCgiLiIpO2lmKHVlLmxlbmd0aD4xKXJldHVybiB1ZS5wb3AoKS50b0xvd2VyQ2FzZSgpfWlmKHRoaXMudXJsKXRyeXtsZXQgQ2U9bmV3IFVSTCh0aGlzLnVybCwiaHR0cHM6Ly9wbGFjZWhvbGRlci5jb20iKS5wYXRobmFtZS5zcGxpdCgiLiIpO2lmKENlLmxlbmd0aD4xKXJldHVybiBDZS5wb3AoKS50b0xvd2VyQ2FzZSgpfWNhdGNoe31yZXR1cm4iIn1nZXRGaWxlbmFtZUZyb21VcmwoKXtpZighdGhpcy51cmwpcmV0dXJuIiI7dHJ5e3JldHVybiBuZXcgVVJMKHRoaXMudXJsLCJodHRwczovL3BsYWNlaG9sZGVyLmNvbSIpLnBhdGhuYW1lLnNwbGl0KCIvIikucG9wKCl8fCIifWNhdGNoe3JldHVybiIifX1yZXNvbHZlTGFuZ3VhZ2UoKXtpZih0aGlzLmxhbmd1YWdlKXJldHVybiB0aGlzLmxhbmd1YWdlO2xldCBiZT10aGlzLmdldEV4dGVuc2lvbigpO3JldHVybiBmWHJbYmVdfHwidGV4dCJ9cmV2b2tlT2JqZWN0VXJsKCl7dGhpcy5vYmplY3RVcmwmJihVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMub2JqZWN0VXJsKSx0aGlzLm9iamVjdFVybD0iIil9c3RhdGlje3ZyKGkscil9fTtyZXR1cm4gdGU9aX0pKCl9KTt2YXIgJDNyPXAoKCk9PntFM3IoKX0pO3ZhciBJM3IseWRlLFAzcixOM3I9cCgoKT0+e3hlKCk7RWkoKTtNaSgpO29yKCk7STNyPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0seWRlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxQM3I9KCgpPT57bGV0IGU9W3llKCJkZWVzLXBkZiIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdO3ZhciBsPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgYz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKCldLEkzcih0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InBkZlVybCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+InBkZlVybCJpbiB1LGdldDp1PT51LnBkZlVybCxzZXQ6KHUsZCk9Pnt1LnBkZlVybD1kfX0sbWV0YWRhdGE6Y30sbyxzKSxJM3IobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz0oKT0+Q2AgPGRlZXMtcGRmPjwvZGVlcy1wZGY+IGA7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSIsIlBERiJdOyNlPXlkZSh0aGlzLG8sImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKGMpe3RoaXMuI2U9Y31jb25zdHJ1Y3Rvcigpe3N1cGVyKCkseWRlKHRoaXMscyl9cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxzdHlsZT4KICAgICAgICA6aG9zdCB7CiAgICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICB9CiAgICAgICAgOmhvc3QoW2hpZGRlbl0pIHsKICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAjcGRmY2FudmFzIHsKICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNXB4ICNjY2M7CiAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxjYW52YXMKICAgICAgICBpZD0icGRmY2FudmFzIgogICAgICAgIC5oZWlnaHQ9JHswfQogICAgICAgIC53aWR0aD0kezB9CgogICAgICA+PC9jYW52YXM+CiAgICBgfXN0YXRpYyBwZGZKc1JlYWR5O3N0YXRpYyBwZGZqc0xpYjthc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2lmKHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksIWwucGRmSnNSZWFkeSl7bGV0IGM9a3QucGx1Z2lucy5zbWFydHByb21pc2UuZGVmZXIoKTtsLnBkZkpzUmVhZHk9Yy5wcm9taXNlLGwucGRmanNMaWI9YXdhaXQgaW1wb3J0KCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3BkZmpzLWRpc3RANC4wLjM3OS8rZXNtIiksbC5wZGZqc0xpYi5HbG9iYWxXb3JrZXJPcHRpb25zLndvcmtlclNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDQuMC4zNzkvYnVpbGQvcGRmLndvcmtlci5tanMiLGMucmVzb2x2ZSgpfWF3YWl0IGwucGRmSnNSZWFkeSx0aGlzLmRpc3BsYXlDb250ZW50KCl9YXN5bmMgZGlzcGxheUNvbnRlbnQoKXthd2FpdCBsLnBkZkpzUmVhZHksbC5wZGZqc0xpYi5nZXREb2N1bWVudCh0aGlzLnBkZlVybCkucHJvbWlzZS50aGVuKHU9Pntjb25zb2xlLmxvZygiUERGIGxvYWRlZCIpLHUuZ2V0UGFnZSgxKS50aGVuKGg9Pntjb25zb2xlLmxvZygiUGFnZSBsb2FkZWQiKTtsZXQgeD1oLmdldFZpZXdwb3J0KHtzY2FsZToxMH0pLHY9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIiNwZGZjYW52YXMiKSxiPXYuZ2V0Q29udGV4dCgiMmQiKTt2LmhlaWdodD14LmhlaWdodCx2LndpZHRoPXgud2lkdGg7bGV0IHk9e2NhbnZhc0NvbnRleHQ6Yix2aWV3cG9ydDp4fTtoLnJlbmRlcih5KS5wcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiUGFnZSByZW5kZXJlZCIpfSl9KX0sdT0+e2NvbnNvbGUuZXJyb3IodSl9KX1nZXRDb250ZXh0TWVudUl0ZW1zKCl7cmV0dXJuW3tuYW1lOiJPcGVuIFBERiBpbiBOZXcgVGFiIixpY29uTmFtZToibHVjaWRlOkV4dGVybmFsTGluayIsYWN0aW9uOmFzeW5jKCk9Pnt3aW5kb3cub3Blbih0aGlzLnBkZlVybCwiX2JsYW5rIil9fSx7ZGl2aWRlcjohMH0se25hbWU6IkNvcHkgUERGIFVSTCIsaWNvbk5hbWU6Imx1Y2lkZTpDb3B5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGRmVXJsKX19LHtuYW1lOiJEb3dubG9hZCBQREYiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjphc3luYygpPT57bGV0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2MuaHJlZj10aGlzLnBkZlVybCxjLmRvd25sb2FkPXRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLGMuY2xpY2soKX19XX1zdGF0aWN7eWRlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciBGM3I9cCgoKT0+e04zcigpfSk7dmFyIEZhLFRjPXAoKCk9Pnt4ZSgpO0ZhPVttLmRlZmF1bHRTdHlsZXMsb2VgCiAgICA6aG9zdCB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lciB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDIwMHB4OwogICAgICBoZWlnaHQ6IDI2MHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7CiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjEyKSIsInJnYmEoMCwgMCwgMCwgMC4yNCkiKX07CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyLmNsaWNrYWJsZSB7CiAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KCiAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOwogICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4ICR7bS5iZFRoZW1lKCJyZ2JhKDAsIDAsIDAsIDAuMTIpIiwicmdiYSgwLCAwLCAwLCAwLjMpIil9OwogICAgfQoKICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnRpbGUtb3ZlcmxheSB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICB9CgogICAgLnRpbGUtY29udGVudCB7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGhlaWdodDogMTAwJTsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CgogICAgLnRpbGUtb3ZlcmxheSB7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgicmdiYSgwLCAwLCAwLCAwLjcpIiwicmdiYSgwLCAwLCAwLCAwLjgpIil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZ2FwOiA4cHg7CiAgICAgIG9wYWNpdHk6IDA7CiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB6LWluZGV4OiAyMDsKICAgIH0KCiAgICAudGlsZS1vdmVybGF5IGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgY29sb3I6IHdoaXRlOwogICAgfQoKICAgIC50aWxlLW92ZXJsYXkgc3BhbiB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6IHdoaXRlOwogICAgfQoKICAgIC50aWxlLWluZm8gewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIGJvdHRvbTogOHB4OwogICAgICBsZWZ0OiA4cHg7CiAgICAgIHJpZ2h0OiA4cHg7CiAgICAgIHBhZGRpbmc6IDZweCAxMHB4OwogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSAvIDAuOTIpIiwiaHNsKDIxNSAyMCUgMTIlIC8gMC45MikiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZ2FwOiA2cHg7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogICAgICB6LWluZGV4OiAxMDsKICAgIH0KCiAgICAudGlsZS1pbmZvIGRlZXMtaWNvbiB7CiAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE3IDkxJSA2MCUpIiwiaHNsKDIxMyA5MyUgNjglKSIpfTsKICAgIH0KCiAgICAudGlsZS1pbmZvLXRleHQgewogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICB9CgogICAgLnRpbGUtYmFkZ2UgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogOHB4OwogICAgICBsZWZ0OiA4cHg7CiAgICAgIHJpZ2h0OiA4cHg7CiAgICAgIHBhZGRpbmc6IDVweCA4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuNykiLCJoc2woMCAwJSAxMDAlIC8gMC45KSIpfTsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJ3aGl0ZSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTsKICAgICAgei1pbmRleDogMTU7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICBhbmltYXRpb246IGZhZGVJbiAwLjJzIGVhc2U7CiAgICB9CgogICAgLnRpbGUtYmFkZ2UtY29ybmVyIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBib3R0b206IDhweDsKICAgICAgcmlnaHQ6IDhweDsKICAgICAgcGFkZGluZzogM3B4IDhweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC42KSIsImhzbCgwIDAlIDEwMCUgLyAwLjg1KSIpfTsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJ3aGl0ZSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgICAgei1pbmRleDogMTA7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC50aWxlLWJhZGdlLXRvcHJpZ2h0IHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDhweDsKICAgICAgcmlnaHQ6IDhweDsKICAgICAgcGFkZGluZzogM3B4IDhweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC42KSIsImhzbCgwIDAlIDEwMCUgLyAwLjg1KSIpfTsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJ3aGl0ZSIsImhzbCgyMTUgMjAlIDEyJSkiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgZm9udC1zaXplOiAxMHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgICAgei1pbmRleDogMTU7CiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgfQoKICAgIC8qIFNoaWZ0IGJvdHRvbSBiYWRnZXMgdXAgd2hlbiBsYWJlbCBpcyBwcmVzZW50ICovCiAgICAudGlsZS1jb250YWluZXI6aGFzKC50aWxlLWxhYmVsKSAudGlsZS1iYWRnZS1jb3JuZXIgewogICAgICBib3R0b206IDMzcHg7CiAgICB9CgogICAgLnRpbGUtY29udGFpbmVyOmhhcygudGlsZS1sYWJlbCkgLnRpbGUtaW5mbyB7CiAgICAgIGJvdHRvbTogMzNweDsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nLAogICAgLnRpbGUtZXJyb3IgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgICAgcmlnaHQ6IDA7CiAgICAgIGJvdHRvbTogMDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgIGdhcDogMTJweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDE2JSA0NSUpIiwiaHNsKDIxNSAxNiUgNzUlKSIpfTsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nIHsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk5JSkiLCJoc2woMjE1IDIwJSAxNCUpIil9OwogICAgfQoKICAgIC50aWxlLWVycm9yIHsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDcyJSA5OCUpIiwiaHNsKDAgNjIlIDIwJSkiKX07CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzIlIDQwJSkiLCJoc2woMCA3MCUgNjglKSIpfTsKICAgIH0KCiAgICAudGlsZS1lcnJvciBkZWVzLWljb24gewogICAgICBmb250LXNpemU6IDMycHg7CiAgICB9CgogICAgLnRpbGUtc3Bpbm5lciB7CiAgICAgIHdpZHRoOiAyNHB4OwogICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYm9yZGVyOiAycHggc29saWQgJHttLmJkVGhlbWUoImhzbCgyMTQgMzElIDg2JSkiLCJoc2woMjE3IDI1JSAyOCUpIil9OwogICAgICBib3JkZXItdG9wLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNyA5MSUgNjAlKSIsImhzbCgyMTMgOTMlIDY4JSkiKX07CiAgICAgIGFuaW1hdGlvbjogc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICAgIH0KCiAgICAudGlsZS1sb2FkaW5nLXRleHQsCiAgICAudGlsZS1lcnJvci10ZXh0IHsKICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgfQoKICAgIC50aWxlLWxhYmVsIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICBib3R0b206IDA7CiAgICAgIGxlZnQ6IDA7CiAgICAgIHJpZ2h0OiAwOwogICAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUgLyAwLjk1KSIsImhzbCgyMTUgMjAlIDEyJSAvIDAuOTUpIil9OwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgMzUlKSIsImhzbCgyMTUgMTYlIDc1JSkiKX07CiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB6LWluZGV4OiAxMDsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOwogICAgfQoKICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogICAgICB9CiAgICB9CgogICAgQGtleWZyYW1lcyBmYWRlSW4gewogICAgICBmcm9tIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgfQogICAgICB0byB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgIH0KICAgIH0KCiAgICAvKiBTaXplIHZhcmlhbnRzICovCiAgICA6aG9zdChbc2l6ZT0ic21hbGwiXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lkdGg6IDE1MHB4OwogICAgICBoZWlnaHQ6IDE5NXB4OwogICAgfQoKICAgIDpob3N0KFtzaXplPSJsYXJnZSJdKSAudGlsZS1jb250YWluZXIgewogICAgICB3aWR0aDogMjUwcHg7CiAgICAgIGhlaWdodDogMzI1cHg7CiAgICB9CgogICAgLyogR3JpZCBvcHRpbWl6YXRpb25zICovCiAgICA6aG9zdChbZ3JpZC1tb2RlXSkgLnRpbGUtY29udGFpbmVyIHsKICAgICAgd2lsbC1jaGFuZ2U6IGF1dG87CiAgICB9CiAgYF19KTt2YXIgQmIsc2wsb24sVjQ9cCgoKT0+e3hlKCk7VGMoKTtvcigpO0JiPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sc2w9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LG9uPSgoKT0+e2xldCBlPXplLHQscj1bXSxpPVtdLGEsbj1bXSxvPVtdLHMsbD1bXSxjPVtdLHUsZD1bXSxoPVtdLGYseD1bXSx2PVtdO3JldHVybiBjbGFzcyBleHRlbmRzIGV7c3RhdGlje2xldCB5PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGVbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO3Q9W2ooe3R5cGU6Qm9vbGVhbn0pXSxhPVtqKHt0eXBlOkJvb2xlYW59KV0scz1baih7dHlwZTpCb29sZWFufSldLHU9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sZj1baih7dHlwZTpTdHJpbmd9KV0sQmIodGhpcyxudWxsLHQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjbGlja2FibGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJjbGlja2FibGUiaW4gdyxnZXQ6dz0+dy5jbGlja2FibGUsc2V0Oih3LGspPT57dy5jbGlja2FibGU9a319LG1ldGFkYXRhOnl9LHIsaSksQmIodGhpcyxudWxsLGEse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJsb2FkaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4ibG9hZGluZyJpbiB3LGdldDp3PT53LmxvYWRpbmcsc2V0Oih3LGspPT57dy5sb2FkaW5nPWt9fSxtZXRhZGF0YTp5fSxuLG8pLEJiKHRoaXMsbnVsbCxzLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZXJyb3IiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJlcnJvciJpbiB3LGdldDp3PT53LmVycm9yLHNldDoodyxrKT0+e3cuZXJyb3I9a319LG1ldGFkYXRhOnl9LGwsYyksQmIodGhpcyxudWxsLHUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaXplIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp3PT4ic2l6ZSJpbiB3LGdldDp3PT53LnNpemUsc2V0Oih3LGspPT57dy5zaXplPWt9fSxtZXRhZGF0YTp5fSxkLGgpLEJiKHRoaXMsbnVsbCxmLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFiZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnc9PiJsYWJlbCJpbiB3LGdldDp3PT53LmxhYmVsLHNldDoodyxrKT0+e3cubGFiZWw9a319LG1ldGFkYXRhOnl9LHgsdikseSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp5fSl9c3RhdGljIHN0eWxlcz1GYTsjZT1zbCh0aGlzLHIsITApO2dldCBjbGlja2FibGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgY2xpY2thYmxlKHkpe3RoaXMuI2U9eX0jdD0oc2wodGhpcyxpKSxzbCh0aGlzLG4sITEpKTtnZXQgbG9hZGluZygpe3JldHVybiB0aGlzLiN0fXNldCBsb2FkaW5nKHkpe3RoaXMuI3Q9eX0jcj0oc2wodGhpcyxvKSxzbCh0aGlzLGwsITEpKTtnZXQgZXJyb3IoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZXJyb3IoeSl7dGhpcy4jcj15fSNpPShzbCh0aGlzLGMpLHNsKHRoaXMsZCwiZGVmYXVsdCIpKTtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLiNpfXNldCBzaXplKHkpe3RoaXMuI2k9eX0jYT0oc2wodGhpcyxoKSxzbCh0aGlzLHgsIiIpKTtnZXQgbGFiZWwoKXtyZXR1cm4gdGhpcy4jYX1zZXQgbGFiZWwoeSl7dGhpcy4jYT15fW9ic2VydmVyPXNsKHRoaXMsdik7X3Zpc2libGU9ITE7Z2V0IGlzVmlzaWJsZSgpe3JldHVybiB0aGlzLl92aXNpYmxlfXJlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InRpbGUtY29udGFpbmVyICR7dGhpcy5jbGlja2FibGU/ImNsaWNrYWJsZSI6IiJ9ICR7dGhpcy5sb2FkaW5nPyJsb2FkaW5nIjoiIn0gJHt0aGlzLmVycm9yPyJlcnJvciI6IiJ9IgogICAgICAgIEBjbGljaz0ke3RoaXMuaGFuZGxlVGlsZUNsaWNrfQogICAgICAgIEBtb3VzZWVudGVyPSR7dGhpcy5vblRpbGVNb3VzZUVudGVyfQogICAgICAgIEBtb3VzZWxlYXZlPSR7dGhpcy5vblRpbGVNb3VzZUxlYXZlfQogICAgICAgIEBtb3VzZW1vdmU9JHt0aGlzLm9uVGlsZU1vdXNlTW92ZX0KICAgICAgPgogICAgICAgICR7dGhpcy5sb2FkaW5nP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWxvYWRpbmciPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXNwaW5uZXIiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWxvYWRpbmctdGV4dCI+TG9hZGluZy4uLjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgJHt0aGlzLmVycm9yP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWVycm9yIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6QWxlcnRUcmlhbmdsZSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtZXJyb3ItdGV4dCI+RmFpbGVkIHRvIGxvYWQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CgogICAgICAgICR7IXRoaXMubG9hZGluZyYmIXRoaXMuZXJyb3I/dGhpcy5yZW5kZXJUaWxlQ29udGVudCgpOiIifQoKICAgICAgICAke3RoaXMubGFiZWw/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtbGFiZWwiPiR7dGhpcy5sYWJlbH08L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLm9ic2VydmVyJiYodGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5vYnNlcnZlcj12b2lkIDApfXNldHVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKXt0aGlzLm9ic2VydmVyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih5PT57Zm9yKGxldCB3IG9mIHkpe2xldCBrPXRoaXMuX3Zpc2libGU7dGhpcy5fdmlzaWJsZT13LmlzSW50ZXJzZWN0aW5nLHRoaXMuX3Zpc2libGUmJiFrJiZ0aGlzLm9uQmVjYW1lVmlzaWJsZSgpfX0se3Jvb3Q6bnVsbCxyb290TWFyZ2luOiIyMDBweCIsdGhyZXNob2xkOi4wMX0pLHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKX1vbkJlY2FtZVZpc2libGUoKXt9b25UaWxlTW91c2VFbnRlcigpe31vblRpbGVNb3VzZUxlYXZlKCl7fW9uVGlsZU1vdXNlTW92ZSh5KXt9aGFuZGxlVGlsZUNsaWNrKCl7dGhpcy5jbGlja2FibGUmJnRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRpbGUtY2xpY2siLHtkZXRhaWw6dGhpcy5nZXRUaWxlQ2xpY2tEZXRhaWwoKSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybnt9fX19KSgpfSk7dmFyIGRoLHdkZT1wKCgpPT57ZGg9Y2xhc3N7c3RhdGljIHBvb2w9W107c3RhdGljIG1heFBvb2xTaXplPTIwO3N0YXRpYyBNSU5fQ0FOVkFTX1NJWkU9MjU2O3N0YXRpYyBNQVhfQ0FOVkFTX1NJWkU9NDA5NjtzdGF0aWMgYWNxdWlyZSh0LHIpe2xldCBpPXRoaXMucG9vbC5maW5kKHM9PiFzLmluVXNlJiZzLmNhbnZhcy53aWR0aD49dCYmcy5jYW52YXMuaGVpZ2h0Pj1yJiZzLmNhbnZhcy53aWR0aDw9dCoxLjUmJnMuY2FudmFzLmhlaWdodDw9cioxLjUpO2lmKGkpcmV0dXJuIGkuaW5Vc2U9ITAsaS5sYXN0VXNlZD1EYXRlLm5vdygpLGkuY2FudmFzLndpZHRoPXQsaS5jYW52YXMuaGVpZ2h0PXIsaS5jdHguY2xlYXJSZWN0KDAsMCx0LHIpLGk7aWYodGhpcy5wb29sLmxlbmd0aDx0aGlzLm1heFBvb2xTaXplKXtsZXQgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxsPXMuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMCxkZXN5bmNocm9uaXplZDohMH0pO3Mud2lkdGg9TWF0aC5taW4oTWF0aC5tYXgodCx0aGlzLk1JTl9DQU5WQVNfU0laRSksdGhpcy5NQVhfQ0FOVkFTX1NJWkUpLHMuaGVpZ2h0PU1hdGgubWluKE1hdGgubWF4KHIsdGhpcy5NSU5fQ0FOVkFTX1NJWkUpLHRoaXMuTUFYX0NBTlZBU19TSVpFKTtsZXQgYz17Y2FudmFzOnMsY3R4OmwsaW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX07cmV0dXJuIHRoaXMucG9vbC5wdXNoKGMpLGN9bGV0IGE9dGhpcy5wb29sLmZpbHRlcihzPT4hcy5pblVzZSkuc29ydCgocyxsKT0+cy5sYXN0VXNlZC1sLmxhc3RVc2VkKVswXTtpZihhKXJldHVybiBhLmNhbnZhcy53aWR0aD10LGEuY2FudmFzLmhlaWdodD1yLGEuY3R4LmNsZWFyUmVjdCgwLDAsdCxyKSxhLmluVXNlPSEwLGEubGFzdFVzZWQ9RGF0ZS5ub3coKSxhO2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLG89bi5nZXRDb250ZXh0KCIyZCIpO3JldHVybiBuLndpZHRoPXQsbi5oZWlnaHQ9cix7Y2FudmFzOm4sY3R4Om8saW5Vc2U6ITAsbGFzdFVzZWQ6RGF0ZS5ub3coKX19c3RhdGljIHJlbGVhc2UodCl7dGhpcy5wb29sLmluY2x1ZGVzKHQpJiYodC5pblVzZT0hMSx0LmN0eC5jbGVhclJlY3QoMCwwLHQuY2FudmFzLndpZHRoLHQuY2FudmFzLmhlaWdodCkpfXN0YXRpYyByZWxlYXNlQWxsKCl7Zm9yKGxldCB0IG9mIHRoaXMucG9vbCl0LmluVXNlPSExLHQuY3R4LmNsZWFyUmVjdCgwLDAsdC5jYW52YXMud2lkdGgsdC5jYW52YXMuaGVpZ2h0KX1zdGF0aWMgZGVzdHJveSgpe2ZvcihsZXQgdCBvZiB0aGlzLnBvb2wpdC5jYW52YXMud2lkdGg9MCx0LmNhbnZhcy5oZWlnaHQ9MDt0aGlzLnBvb2w9W119c3RhdGljIGdldFN0YXRzKCl7cmV0dXJue3Bvb2xTaXplOnRoaXMucG9vbC5sZW5ndGgsbWF4UG9vbFNpemU6dGhpcy5tYXhQb29sU2l6ZSxpblVzZTp0aGlzLnBvb2wuZmlsdGVyKHQ9PnQuaW5Vc2UpLmxlbmd0aCxhdmFpbGFibGU6dGhpcy5wb29sLmZpbHRlcih0PT4hdC5pblVzZSkubGVuZ3RofX1zdGF0aWMgYWRqdXN0UG9vbFNpemUodCl7aWYodDx0aGlzLnBvb2wubGVuZ3RoKXtsZXQgcj10aGlzLnBvb2wubGVuZ3RoLXQsaT10aGlzLnBvb2wuZmlsdGVyKGE9PiFhLmluVXNlKS5zbGljZSgwLHIpO2ZvcihsZXQgYSBvZiBpKXtsZXQgbj10aGlzLnBvb2wuaW5kZXhPZihhKTtuPi0xJiZ0aGlzLnBvb2wuc3BsaWNlKG4sMSl9fXRoaXMubWF4UG9vbFNpemU9dH19fSk7ZnVuY3Rpb24gZ1hyKGUsdCl7bGV0IHI7cmV0dXJuIGZ1bmN0aW9uKC4uLmEpe2xldCBuPSgpPT57Y2xlYXJUaW1lb3V0KHIpLGUoLi4uYSl9O2NsZWFyVGltZW91dChyKSxyPXdpbmRvdy5zZXRUaW1lb3V0KG4sdCl9fWZ1bmN0aW9uIGJYcihlLHQpe2xldCByO3JldHVybiBmdW5jdGlvbiguLi5hKXtyfHwoZS5hcHBseSh0aGlzLGEpLHI9ITAsc2V0VGltZW91dCgoKT0+cj0hMSx0KSl9fWZ1bmN0aW9uIHZYcihlKXtpZihlPT09MClyZXR1cm4iMCBCeXRlcyI7bGV0IHQ9MTAyNCxyPVsiQnl0ZXMiLCJLQiIsIk1CIiwiR0IiXSxpPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5sb2codCkpO3JldHVybiBNYXRoLnJvdW5kKGUvTWF0aC5wb3codCxpKSoxMDApLzEwMCsiICIrcltpXX1mdW5jdGlvbiB4WHIoZSx0PTApe2xldCByPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHIudG9wPj0tdCYmci5sZWZ0Pj0tdCYmci5ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpK3QmJnIucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSt0fXZhciB1aCxNZGU9cCgoKT0+e3VoPWNsYXNze3N0YXRpYyBtYXJrcz1uZXcgTWFwO3N0YXRpYyBtZWFzdXJlcz1bXTtzdGF0aWMgbWFyayh0KXt0aGlzLm1hcmtzLnNldCh0LHBlcmZvcm1hbmNlLm5vdygpKX1zdGF0aWMgbWVhc3VyZSh0LHIpe2xldCBpPXRoaXMubWFya3MuZ2V0KHIpO2lmKGkpe2xldCBhPXBlcmZvcm1hbmNlLm5vdygpLWk7cmV0dXJuIHRoaXMubWVhc3VyZXMucHVzaCh7bmFtZTp0LGR1cmF0aW9uOmF9KSx0aGlzLm1hcmtzLmRlbGV0ZShyKSxhfXJldHVybiAwfXN0YXRpYyBnZXRSZXBvcnQoKXtsZXQgdD17bWVhc3VyZXM6Wy4uLnRoaXMubWVhc3VyZXNdLGF2ZXJhZ2VzOnt9fSxyPW5ldyBNYXA7Zm9yKGxldCBpIG9mIHRoaXMubWVhc3VyZXMpci5oYXMoaS5uYW1lKXx8ci5zZXQoaS5uYW1lLFtdKSxyLmdldChpLm5hbWUpLnB1c2goaS5kdXJhdGlvbik7Zm9yKGxldFtpLGFdb2Ygcil0LmF2ZXJhZ2VzW2ldPWEucmVkdWNlKChuLG8pPT5uK28sMCkvYS5sZW5ndGg7cmV0dXJuIHR9c3RhdGljIGNsZWFyKCl7dGhpcy5tYXJrcy5jbGVhcigpLHRoaXMubWVhc3VyZXM9W119fX0pO3ZhciBPM3IsUjNyPXAoKCk9Pnt4ZSgpO08zcj1vZWAKICAucHJldmlldy1zdGFjayB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CgogIC5wcmV2aWV3LXN0YWNrLm5vbi1hNCB7CiAgICBwYWRkaW5nOiAxMnB4OwogIH0KCiAgLnByZXZpZXctY2FudmFzIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICBtYXgtaGVpZ2h0OiAxMDAlOwogICAgd2lkdGg6IGF1dG87CiAgICBoZWlnaHQ6IGF1dG87CiAgICBvYmplY3QtZml0OiBjb250YWluOwogICAgaW1hZ2UtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggJHttLmJkVGhlbWUoInJnYmEoMCwgMCwgMCwgMC4xKSIsInJnYmEoMCwgMCwgMCwgMC4zKSIpfTsKICB9CgogIC5ub24tYTQgLnByZXZpZXctY2FudmFzIHsKICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMjE0IDMxJSA5MiUpIiwiaHNsKDIxNyAyNSUgMjQlKSIpfTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICB9CgogIC8qIEdyaWQgb3B0aW1pemF0aW9ucyAqLwogIDpob3N0KFtncmlkLW1vZGVdKSAucHJldmlldy1jYW52YXMgewogICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OwogICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlczsKICB9CmB9KTt2YXIgQjNyLEgzcj1wKCgpPT57eGUoKTtCM3I9KCk9PntsZXQgZT1bImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS9leGFtcGxlcy9sZWFybmluZy9oZWxsb3dvcmxkLnBkZiIsImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiJdO3JldHVybiBDYAogICAgPHN0eWxlPgogICAgICAuZGVtby1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgICAgfQoKICAgICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDsKICAgICAgfQoKICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWdyaWQgewogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLnByZXZpZXctcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIH0KCiAgICAgIC5wcmV2aWV3LWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtaW4td2lkdGg6IDEwMHB4OwogICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2luZ2xlIFBERiBUaWxlPC9oMz4KICAgICAgICA8ZGVlcy10aWxlLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvd2ViL2NvbXByZXNzZWQudHJhY2Vtb25rZXktcGxkaS0wOS5wZGYiCiAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgPjwvZGVlcy10aWxlLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5EaWZmZXJlbnQgU2l6ZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPlNtYWxsOjwvZGl2PgogICAgICAgICAgPGRlZXMtdGlsZS1wZGYKICAgICAgICAgICAgc2l6ZT0ic21hbGwiCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtcGRmPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWxhYmVsIj5EZWZhdWx0OjwvZGl2PgogICAgICAgICAgPGRlZXMtdGlsZS1wZGYKICAgICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgID48L2RlZXMtdGlsZS1wZGY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctcm93Ij4KICAgICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctbGFiZWwiPkxhcmdlOjwvZGl2PgogICAgICAgICAgPGRlZXMtdGlsZS1wZGYKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIHBkZlVybD0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vemlsbGEvcGRmLmpzL2JhMmVkZWFlL2V4YW1wbGVzL2xlYXJuaW5nL2hlbGxvd29ybGQucGRmIgogICAgICAgICAgICBjbGlja2FibGU9InRydWUiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtcGRmPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPldpdGggTGFiZWw8L2gzPgogICAgICAgIDxkZWVzLXRpbGUtcGRmCiAgICAgICAgICBwZGZVcmw9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3ppbGxhL3BkZi5qcy9iYTJlZGVhZS93ZWIvY29tcHJlc3NlZC50cmFjZW1vbmtleS1wbGRpLTA5LnBkZiIKICAgICAgICAgIGNsaWNrYWJsZT0idHJ1ZSIKICAgICAgICAgIGxhYmVsPSJSZXNlYXJjaCBQYXBlci5wZGYiCiAgICAgICAgPjwvZGVlcy10aWxlLXBkZj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob24tQ2xpY2thYmxlPC9oMz4KICAgICAgICA8ZGVlcy10aWxlLXBkZgogICAgICAgICAgcGRmVXJsPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW96aWxsYS9wZGYuanMvYmEyZWRlYWUvZXhhbXBsZXMvbGVhcm5pbmcvaGVsbG93b3JsZC5wZGYiCiAgICAgICAgICBjbGlja2FibGU9ImZhbHNlIgogICAgICAgID48L2RlZXMtdGlsZS1wZGY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+R3JpZCAtIDIwIFBERnMgd2l0aCBMYXp5IExvYWRpbmc8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InByZXZpZXctZ3JpZCI+CiAgICAgICAgICAkeyhyPT57bGV0IGk9W107Zm9yKGxldCBhPTA7YTxyO2ErKyl7bGV0IG49ZVthJWUubGVuZ3RoXTtpLnB1c2goQ2AKICAgICAgICA8ZGVlcy10aWxlLXBkZgogICAgICAgICAgcGRmVXJsPSIke259IgogICAgICAgICAgY2xpY2thYmxlPSJ0cnVlIgogICAgICAgICAgZ3JpZC1tb2RlCiAgICAgICAgICBAdGlsZS1jbGljaz0ke289Pntjb25zb2xlLmxvZygiUERGIFRpbGUgY2xpY2tlZDoiLG8uZGV0YWlsKSxhbGVydChgUERGIGNsaWNrZWQ6ICR7by5kZXRhaWwucGFnZUNvdW50fSBwYWdlc2ApfX0KICAgICAgICA+PC9kZWVzLXRpbGUtcGRmPgogICAgICBgKX1yZXR1cm4gaX0pKDIwKX0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfX0pO3ZhciBRZCx0byxvRixrZGU9cCgoKT0+e3hlKCk7VjQoKTtUYygpO25GKCk7d2RlKCk7TWRlKCk7UjNyKCk7SDNyKCk7UWQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSx0bz1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sb0Y9KCgpPT57bGV0IGU9W3llKCJkZWVzLXRpbGUtcGRmIildLHQscj1bXSxpLGE9b24sbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W107dmFyIEY9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBEPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ooe3R5cGU6TnVtYmVyfSldLHg9W2ooe3R5cGU6Qm9vbGVhbn0pXSx5PVtqKHt0eXBlOkJvb2xlYW59KV0sTz1baih7dHlwZTpCb29sZWFufSldLFFkKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGRmVXJsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4icGRmVXJsImluIE4sZ2V0Ok49Pk4ucGRmVXJsLHNldDooTixSKT0+e04ucGRmVXJsPVJ9fSxtZXRhZGF0YTpEfSxvLHMpLFFkKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFByZXZpZXdQYWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4iY3VycmVudFByZXZpZXdQYWdlImluIE4sZ2V0Ok49Pk4uY3VycmVudFByZXZpZXdQYWdlLHNldDooTixSKT0+e04uY3VycmVudFByZXZpZXdQYWdlPVJ9fSxtZXRhZGF0YTpEfSxjLHUpLFFkKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicGFnZUNvdW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4icGFnZUNvdW50ImluIE4sZ2V0Ok49Pk4ucGFnZUNvdW50LHNldDooTixSKT0+e04ucGFnZUNvdW50PVJ9fSxtZXRhZGF0YTpEfSxoLGYpLFFkKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToicmVuZGVyZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJyZW5kZXJlZCJpbiBOLGdldDpOPT5OLnJlbmRlcmVkLHNldDooTixSKT0+e04ucmVuZGVyZWQ9Un19LG1ldGFkYXRhOkR9LHYsYiksUWQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4iaXNIb3ZlcmluZyJpbiBOLGdldDpOPT5OLmlzSG92ZXJpbmcsc2V0OihOLFIpPT57Ti5pc0hvdmVyaW5nPVJ9fSxtZXRhZGF0YTpEfSx3LGspLFFkKHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNBNEZvcm1hdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+ImlzQTRGb3JtYXQiaW4gTixnZXQ6Tj0+Ti5pc0E0Rm9ybWF0LHNldDooTixSKT0+e04uaXNBNEZvcm1hdD1SfX0sbWV0YWRhdGE6RH0seixNKSxRZChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpEfSxudWxsLHIpLEY9aT10LnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfXN0YXRpYyBkZW1vPUIzcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIiwiUERGIl07c3RhdGljIHN0eWxlcz1bLi4uRmEsTzNyXTsjZT10byh0aGlzLG8sIiIpO2dldCBwZGZVcmwoKXtyZXR1cm4gdGhpcy4jZX1zZXQgcGRmVXJsKEQpe3RoaXMuI2U9RH0jdD0odG8odGhpcyxzKSx0byh0aGlzLGMsMSkpO2dldCBjdXJyZW50UHJldmlld1BhZ2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY3VycmVudFByZXZpZXdQYWdlKEQpe3RoaXMuI3Q9RH0jcj0odG8odGhpcyx1KSx0byh0aGlzLGgsMCkpO2dldCBwYWdlQ291bnQoKXtyZXR1cm4gdGhpcy4jcn1zZXQgcGFnZUNvdW50KEQpe3RoaXMuI3I9RH0jaT0odG8odGhpcyxmKSx0byh0aGlzLHYsITEpKTtnZXQgcmVuZGVyZWQoKXtyZXR1cm4gdGhpcy4jaX1zZXQgcmVuZGVyZWQoRCl7dGhpcy4jaT1EfSNhPSh0byh0aGlzLGIpLHRvKHRoaXMsdywhMSkpO2dldCBpc0hvdmVyaW5nKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzSG92ZXJpbmcoRCl7dGhpcy4jYT1EfSNuPSh0byh0aGlzLGspLHRvKHRoaXMseiwhMCkpO2dldCBpc0E0Rm9ybWF0KCl7cmV0dXJuIHRoaXMuI259c2V0IGlzQTRGb3JtYXQoRCl7dGhpcy4jbj1EfXJlbmRlclBhZ2VzVGFzaz0odG8odGhpcyxNKSxudWxsKTtyZW5kZXJQYWdlc1F1ZXVlZD0hMTtwZGZEb2N1bWVudDtjYW52YXNlcz1bXTtyZXNpemVPYnNlcnZlcjtzdGFja0VsZW1lbnQ9bnVsbDtsb2FkZWRQZGZVcmw9bnVsbDtyZW5kZXJUaWxlQ29udGVudCgpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LXN0YWNrICR7dGhpcy5pc0E0Rm9ybWF0PyIiOiJub24tYTQifSI+CiAgICAgICAgPGNhbnZhcwogICAgICAgICAgY2xhc3M9InByZXZpZXctY2FudmFzIgogICAgICAgICAgZGF0YS1wYWdlPSIke3RoaXMuY3VycmVudFByZXZpZXdQYWdlfSIKICAgICAgICA+PC9jYW52YXM+CiAgICAgIDwvZGl2PgoKICAgICAgJHt0aGlzLnBhZ2VDb3VudD4xJiZ0aGlzLmlzSG92ZXJpbmc/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlIj4KICAgICAgICAgIFBhZ2UgJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX0gb2YgJHt0aGlzLnBhZ2VDb3VudH0KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KCiAgICAgICR7dGhpcy5wYWdlQ291bnQ+MCYmIXRoaXMuaXNIb3ZlcmluZz9DYAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtYmFkZ2UtY29ybmVyIj4KICAgICAgICAgICR7dGhpcy5wYWdlQ291bnR9IHBhZ2Uke3RoaXMucGFnZUNvdW50PjE/InMiOiIifQogICAgICAgIDwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLmNsaWNrYWJsZT9DYAogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtb3ZlcmxheSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpFeWUiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+VmlldyBQREY8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CiAgICBgfWdldFRpbGVDbGlja0RldGFpbCgpe3JldHVybntwZGZVcmw6dGhpcy5wZGZVcmwscGFnZUNvdW50OnRoaXMucGFnZUNvdW50fX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5yZW5kZXJlZCYmdGhpcy5wZGZVcmwmJnRoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5jdXJyZW50UHJldmlld1BhZ2UhPT0xJiYodGhpcy5jdXJyZW50UHJldmlld1BhZ2U9MSx0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSl9b25UaWxlTW91c2VNb3ZlKEQpe2lmKCF0aGlzLmlzSG92ZXJpbmd8fHRoaXMucGFnZUNvdW50PD0xKXJldHVybjtsZXQgTj10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFI9RC5jbGllbnRYLU4ubGVmdCxfPU4ud2lkdGgsUz1NYXRoLm1heCgwLE1hdGgubWluKDEsUi9fKSksJD1NYXRoLmNlaWwoUyp0aGlzLnBhZ2VDb3VudCl8fDE7JCE9PXRoaXMuY3VycmVudFByZXZpZXdQYWdlJiYodGhpcy5jdXJyZW50UHJldmlld1BhZ2U9JCx0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jYWNoZUVsZW1lbnRzKCksdGhpcy5zZXR1cFJlc2l6ZU9ic2VydmVyKCl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuY2xlYW51cCgpLHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPXZvaWQgMH1hc3luYyBsb2FkQW5kUmVuZGVyUHJldmlldygpe2lmKCEodGhpcy5yZW5kZXJlZHx8dGhpcy5sb2FkaW5nKSl7dGhpcy5sb2FkaW5nPSEwLHRoaXMuZXJyb3I9ITEsdWgubWFyayhgcHJldmlldy1sb2FkLSR7dGhpcy5wZGZVcmx9YCk7dHJ5e3RoaXMucGRmRG9jdW1lbnQ9YXdhaXQgb2wubG9hZERvY3VtZW50KHRoaXMucGRmVXJsKSx0aGlzLnBhZ2VDb3VudD10aGlzLnBkZkRvY3VtZW50Lm51bVBhZ2VzLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5sb2FkZWRQZGZVcmw9dGhpcy5wZGZVcmwsdGhpcy5sb2FkaW5nPSExLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jYWNoZUVsZW1lbnRzKCksYXdhaXQgdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCksdGhpcy5yZW5kZXJlZD0hMDtsZXQgRD11aC5tZWFzdXJlKGBwcmV2aWV3LXJlbmRlci0ke3RoaXMucGRmVXJsfWAsYHByZXZpZXctbG9hZC0ke3RoaXMucGRmVXJsfWApO2NvbnNvbGUubG9nKGBQREYgdGlsZSByZW5kZXJlZCBpbiAke0R9bXNgKX1jYXRjaChEKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCBQREYgdGlsZToiLEQpLHRoaXMuZXJyb3I9ITAsdGhpcy5sb2FkaW5nPSExfX19c2NoZWR1bGVSZW5kZXJQYWdlcygpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50P3RoaXMucmVuZGVyUGFnZXNUYXNrPyh0aGlzLnJlbmRlclBhZ2VzUXVldWVkPSEwLHRoaXMucmVuZGVyUGFnZXNUYXNrKToodGhpcy5yZW5kZXJQYWdlc1Rhc2s9KGFzeW5jKCk9Pnt0cnl7YXdhaXQgdGhpcy5wZXJmb3JtUmVuZGVyUGFnZXMoKX1jYXRjaChEKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gcmVuZGVyIFBERiB0aWxlIHBhZ2VzOiIsRCl9fSkoKS5maW5hbGx5KCgpPT57dGhpcy5yZW5kZXJQYWdlc1Rhc2s9bnVsbCx0aGlzLnJlbmRlclBhZ2VzUXVldWVkJiYodGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMSx0aGlzLnNjaGVkdWxlUmVuZGVyUGFnZXMoKSl9KSx0aGlzLnJlbmRlclBhZ2VzVGFzayk6UHJvbWlzZS5yZXNvbHZlKCl9YXN5bmMgcGVyZm9ybVJlbmRlclBhZ2VzKCl7aWYoIXRoaXMucGRmRG9jdW1lbnQpcmV0dXJuO2F3YWl0IG5ldyBQcm9taXNlKF89PnJlcXVlc3RBbmltYXRpb25GcmFtZShfKSk7bGV0IEQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1jYW52YXMiKTtpZighRClyZXR1cm47dGhpcy5jbGVhckNhbnZhc2VzKCksdGhpcy5jYWNoZUVsZW1lbnRzKCk7bGV0e2F2YWlsYWJsZVdpZHRoOk4sYXZhaWxhYmxlSGVpZ2h0OlJ9PXRoaXMuZ2V0QXZhaWxhYmxlU2l6ZSgpO3RyeXtsZXQgXz10aGlzLmN1cnJlbnRQcmV2aWV3UGFnZSxTPWF3YWl0IHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShfKSwkPVMuZ2V0Vmlld3BvcnQoe3NjYWxlOjF9KSxUPSQuaGVpZ2h0LyQud2lkdGgsRT0xLjQxNCxxPS43MDcsQj0xLjI5NCxHPS43NzMsZWU9LjA1LFA9TWF0aC5hYnMoVC1FKTxFKmVlLGdlPU1hdGguYWJzKFQtcSk8cSplZSx3ZT1NYXRoLmFicyhULUIpPEIqZWUsST1NYXRoLmFicyhULUcpPEcqZWU7dGhpcy5pc0E0Rm9ybWF0PVB8fGdlfHx3ZXx8STtsZXQgbmU9dGhpcy5pc0E0Rm9ybWF0P046Ti0yNCxrZT10aGlzLmlzQTRGb3JtYXQ/UjpSLTI0LFk9bmU+MD9uZS8kLndpZHRoOjAsQT1rZT4wP2tlLyQuaGVpZ2h0OjAsTD1NYXRoLm1pbihZfHwuNSxBfHxZfHwuNSksVT1NYXRoLm1pbihMKjIsMyk7aWYoIU51bWJlci5pc0Zpbml0ZShVKXx8VTw9MCl7Uy5jbGVhbnVwPy4oKTtyZXR1cm59bGV0IFY9Uy5nZXRWaWV3cG9ydCh7c2NhbGU6VX0pLFg9ZGguYWNxdWlyZShWLndpZHRoLFYuaGVpZ2h0KTt0aGlzLmNhbnZhc2VzLnB1c2goWCk7bGV0IGRlPXtjYW52YXNDb250ZXh0OlguY3R4LHZpZXdwb3J0OlZ9O2F3YWl0IFMucmVuZGVyKGRlKS5wcm9taXNlLEQud2lkdGg9Vi53aWR0aCxELmhlaWdodD1WLmhlaWdodDtsZXQgdmU9bmUsTGU9Vi5oZWlnaHQvVi53aWR0aCpuZTtpZihMZT5rZSl7bGV0IEg9a2UsdGU9Vi53aWR0aC9WLmhlaWdodCprZTtELnN0eWxlLndpZHRoPWAke3RlfXB4YCxELnN0eWxlLmhlaWdodD1gJHtIfXB4YH1lbHNlIEQuc3R5bGUud2lkdGg9YCR7dmV9cHhgLEQuc3R5bGUuaGVpZ2h0PWAke0xlfXB4YDtsZXQgVz1ELmdldENvbnRleHQoIjJkIik7VyYmKFcuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSEwLFcuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5PSJoaWdoIixXLmRyYXdJbWFnZShYLmNhbnZhcywwLDApKSxTLmNsZWFudXAoKX1jYXRjaChfKXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gcmVuZGVyIHBhZ2UgJHt0aGlzLmN1cnJlbnRQcmV2aWV3UGFnZX06YCxfKX19Y2xlYXJDYW52YXNlcygpe2ZvcihsZXQgRCBvZiB0aGlzLmNhbnZhc2VzKWRoLnJlbGVhc2UoRCk7dGhpcy5jYW52YXNlcz1bXX1jbGVhbnVwKCl7dGhpcy5jbGVhckNhbnZhc2VzKCksdGhpcy5wZGZEb2N1bWVudCYmKG9sLnJlbGVhc2VEb2N1bWVudCh0aGlzLmxvYWRlZFBkZlVybD8/dGhpcy5wZGZVcmwpLHRoaXMucGRmRG9jdW1lbnQ9bnVsbCksdGhpcy5yZW5kZXJQYWdlc1F1ZXVlZD0hMSx0aGlzLnBhZ2VDb3VudD0wLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTEsdGhpcy5pc0hvdmVyaW5nPSExLHRoaXMuaXNBNEZvcm1hdD0hMCx0aGlzLnN0YWNrRWxlbWVudD1udWxsLHRoaXMubG9hZGVkUGRmVXJsPW51bGwsdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5lcnJvcj0hMX1hc3luYyB1cGRhdGVkKEQpe2lmKHN1cGVyLnVwZGF0ZWQoRCksRC5oYXMoInBkZlVybCIpJiZ0aGlzLnBkZlVybCl7bGV0IE49RC5nZXQoInBkZlVybCIpO04mJm9sLnJlbGVhc2VEb2N1bWVudChOKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlbmRlcmVkPSExLHRoaXMuY3VycmVudFByZXZpZXdQYWdlPTE7bGV0IFI9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtSLnRvcDx3aW5kb3cuaW5uZXJIZWlnaHQmJlIuYm90dG9tPjAmJnRoaXMubG9hZEFuZFJlbmRlclByZXZpZXcoKX1ELmhhcygiY3VycmVudFByZXZpZXdQYWdlIikmJnRoaXMucmVuZGVyZWQmJmF3YWl0IHRoaXMuc2NoZWR1bGVSZW5kZXJQYWdlcygpfWdldENvbnRleHRNZW51SXRlbXMoKXtsZXQgRD1bXTtyZXR1cm4gdGhpcy5jbGlja2FibGUmJihELnB1c2goe25hbWU6IlZpZXcgUERGIixpY29uTmFtZToibHVjaWRlOkV5ZSIsYWN0aW9uOmFzeW5jKCk9Pnt0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ0aWxlLWNsaWNrIix7ZGV0YWlsOnRoaXMuZ2V0VGlsZUNsaWNrRGV0YWlsKCksYnViYmxlczohMCxjb21wb3NlZDohMH0pKX19KSxELnB1c2goe2RpdmlkZXI6ITB9KSksRC5wdXNoKHtuYW1lOiJPcGVuIFBERiBpbiBOZXcgVGFiIixpY29uTmFtZToibHVjaWRlOkV4dGVybmFsTGluayIsYWN0aW9uOmFzeW5jKCk9Pnt3aW5kb3cub3Blbih0aGlzLnBkZlVybCwiX2JsYW5rIil9fSx7ZGl2aWRlcjohMH0se25hbWU6IkNvcHkgUERGIFVSTCIsaWNvbk5hbWU6Imx1Y2lkZTpDb3B5IixhY3Rpb246YXN5bmMoKT0+e2F3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMucGRmVXJsKX19LHtuYW1lOiJEb3dubG9hZCBQREYiLGljb25OYW1lOiJsdWNpZGU6RG93bmxvYWQiLGFjdGlvbjphc3luYygpPT57bGV0IE49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO04uaHJlZj10aGlzLnBkZlVybCxOLmRvd25sb2FkPXRoaXMucGRmVXJsLnNwbGl0KCIvIikucG9wKCl8fCJkb2N1bWVudC5wZGYiLE4uY2xpY2soKX19KSx0aGlzLnBhZ2VDb3VudD4wJiZELnB1c2goe2RpdmlkZXI6ITB9LHtuYW1lOmAke3RoaXMucGFnZUNvdW50fSBwYWdlJHt0aGlzLnBhZ2VDb3VudD4xPyJzIjoiIn1gLGljb25OYW1lOiJsdWNpZGU6RmlsZVRleHQiLGRpc2FibGVkOiEwLGFjdGlvbjphc3luYygpPT57fX0pLER9Y2FjaGVFbGVtZW50cygpe3RoaXMuc3RhY2tFbGVtZW50fHwodGhpcy5zdGFja0VsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIucHJldmlldy1zdGFjayIpKX1zZXR1cFJlc2l6ZU9ic2VydmVyKCl7dGhpcy5yZXNpemVPYnNlcnZlcnx8KHRoaXMucmVzaXplT2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dGhpcy5yZW5kZXJlZCYmdGhpcy5wZGZEb2N1bWVudCYmIXRoaXMubG9hZGluZyYmdGhpcy5zY2hlZHVsZVJlbmRlclBhZ2VzKCl9KSx0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcykpfWdldEF2YWlsYWJsZVNpemUoKXtpZih0aGlzLnN0YWNrRWxlbWVudHx8KHRoaXMuc3RhY2tFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLnByZXZpZXctc3RhY2siKSksIXRoaXMuc3RhY2tFbGVtZW50KXJldHVybnthdmFpbGFibGVXaWR0aDoyMDAsYXZhaWxhYmxlSGVpZ2h0OjI2MH07bGV0IEQ9dGhpcy5zdGFja0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTj1NYXRoLm1heChELndpZHRoLDApfHwyMDAsUj1NYXRoLm1heChELmhlaWdodCwwKXx8MjYwO3JldHVybnthdmFpbGFibGVXaWR0aDpOLGF2YWlsYWJsZUhlaWdodDpSfX1zdGF0aWN7dG8oaSxyKX19O3JldHVybiBGPWl9KSgpfSk7dmFyIHlYcix3WHIscTNyLGozcj1wKCgpPT57eGUoKTtrZGUoKTt5WHI9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSx3WHI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHEzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtcGRmLXByZXZpZXciKV0sdCxyPVtdLGksYT1vRjt2YXIgbj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7eVhyKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1pPXQudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIGRlbW9Hcm91cHM9W107Y29ubmVjdGVkQ2FsbGJhY2soKXtyZXR1cm4gY29uc29sZS53YXJuKCJbZGVlcy1wZGYtcHJldmlld10gaXMgZGVwcmVjYXRlZC4gVXNlIDxkZWVzLXRpbGUtcGRmPiBpbnN0ZWFkLiBUaGlzIGNvbXBvbmVudCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4iKSxzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfXN0YXRpY3t3WHIoaSxyKX19O3JldHVybiBuPWl9KSgpfSk7dmFyIFYzcj1wKCgpPT57ajNyKCl9KTt2YXIgVTNyPXAoKCk9Pnt3ZGUoKTtuRigpO01kZSgpfSk7dmFyIFczcj1wKCgpPT57eGRlKCl9KTt2YXIgRzNyPXAoKCk9PntWNCgpO1RjKCl9KTt2YXIgWTNyPXAoKCk9PntrZGUoKX0pO3ZhciBaM3IsWDNyPXAoKCk9Pnt4ZSgpO1ozcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBwYWRkaW5nOiA0MHB4OwogICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgfQogICAgLmRlbW8tc2VjdGlvbiB7CiAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICB9CiAgICBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIH0KICAgIC50aWxlLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMjRweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIH0KICA8L3N0eWxlPgoKICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+SW1hZ2UgVGlsZXM8L2gzPgogICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgPGRlZXMtdGlsZS1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvODAwLzYwMCIKICAgICAgICAgIGFsdD0iTGFuZHNjYXBlIHBob3RvIgogICAgICAgICAgbGFiZWw9ImxhbmRzY2FwZS5qcGciCiAgICAgICAgICBAdGlsZS1jbGljaz0ke2U9PmNvbnNvbGUubG9nKCJJbWFnZSBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGlsZS1pbWFnZT4KCiAgICAgICAgPGRlZXMtdGlsZS1pbWFnZQogICAgICAgICAgc3JjPSJodHRwczovL3BpY3N1bS5waG90b3MvNDAwLzQwMCIKICAgICAgICAgIGFsdD0iU3F1YXJlIHBob3RvIgogICAgICAgICAgbGFiZWw9InNxdWFyZS5wbmciCiAgICAgICAgPjwvZGVlcy10aWxlLWltYWdlPgoKICAgICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgICBzcmM9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8zMDAvOTAwIgogICAgICAgICAgYWx0PSJQb3J0cmFpdCBwaG90byIKICAgICAgICAgIGxhYmVsPSJwb3J0cmFpdC53ZWJwIgogICAgICAgID48L2RlZXMtdGlsZS1pbWFnZT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDAiCiAgICAgICAgICBhbHQ9IlNtYWxsIgogICAgICAgICAgbGFiZWw9InNtYWxsLmpwZyIKICAgICAgICA+PC9kZWVzLXRpbGUtaW1hZ2U+CgogICAgICAgIDxkZWVzLXRpbGUtaW1hZ2UKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzYwMC80MDAiCiAgICAgICAgICBhbHQ9IkRlZmF1bHQiCiAgICAgICAgICBsYWJlbD0iZGVmYXVsdC5qcGciCiAgICAgICAgPjwvZGVlcy10aWxlLWltYWdlPgoKICAgICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzEyMDAvODAwIgogICAgICAgICAgYWx0PSJMYXJnZSIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5qcGciCiAgICAgICAgPjwvZGVlcy10aWxlLWltYWdlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5FcnJvciBTdGF0ZSAoYnJva2VuIFVSTCk8L2gzPgogICAgICA8ZGVlcy10aWxlLWltYWdlCiAgICAgICAgc3JjPSJodHRwczovL2ludmFsaWQtdXJsLXRoYXQtZG9lcy1ub3QtZXhpc3QuZXhhbXBsZS9pbWFnZS5wbmciCiAgICAgICAgYWx0PSJCcm9rZW4iCiAgICAgICAgbGFiZWw9ImJyb2tlbi5wbmciCiAgICAgID48L2RlZXMtdGlsZS1pbWFnZT4KICAgIDwvZGl2PgogIDwvZGl2PgpgfSk7dmFyIHBoLFAyLFEzcixKM3I9cCgoKT0+e3hlKCk7VjQoKTtUYygpO1gzcigpO3BoPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sUDI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFEzcj0oKCk9PntsZXQgZT1beWUoImRlZXMtdGlsZS1pbWFnZSIpXSx0LHI9W10saSxhPW9uLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdO3ZhciBPPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgej10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOlN0cmluZ30pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtmZSgpXSx4PVtmZSgpXSx5PVtmZSgpXSxwaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNyYyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InNyYyJpbiBNLGdldDpNPT5NLnNyYyxzZXQ6KE0sRik9PntNLnNyYz1GfX0sbWV0YWRhdGE6en0sbyxzKSxwaCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFsdCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImFsdCJpbiBNLGdldDpNPT5NLmFsdCxzZXQ6KE0sRik9PntNLmFsdD1GfX0sbWV0YWRhdGE6en0sYyx1KSxwaCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlTG9hZGVkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iaW1hZ2VMb2FkZWQiaW4gTSxnZXQ6TT0+TS5pbWFnZUxvYWRlZCxzZXQ6KE0sRik9PntNLmltYWdlTG9hZGVkPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLHBoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW1hZ2VXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImltYWdlV2lkdGgiaW4gTSxnZXQ6TT0+TS5pbWFnZVdpZHRoLHNldDooTSxGKT0+e00uaW1hZ2VXaWR0aD1GfX0sbWV0YWRhdGE6en0sdixiKSxwaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImltYWdlSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iaW1hZ2VIZWlnaHQiaW4gTSxnZXQ6TT0+TS5pbWFnZUhlaWdodCxzZXQ6KE0sRik9PntNLmltYWdlSGVpZ2h0PUZ9fSxtZXRhZGF0YTp6fSx3LGspLHBoKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnp9LG51bGwsciksTz1pPXQudmFsdWUseiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp6fSl9c3RhdGljIGRlbW89WjNyO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5GYSxvZWAKICAgICAgLmltYWdlLXdyYXBwZXIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoInJlcGVhdGluZy1jb25pYy1ncmFkaWVudCgjZThlOGU4IDAlIDI1JSwgd2hpdGUgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiLCJyZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoaHNsKDIxNSAyMCUgMTglKSAwJSAyNSUsIGhzbCgyMTUgMjAlIDE0JSkgMCUgNTAlKSA1MCUgLyAxNnB4IDE2cHgiKX07CiAgICAgIH0KCiAgICAgIC5pbWFnZS13cmFwcGVyIGltZyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGVkIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAuaW1hZ2Utd3JhcHBlciBpbWcubG9hZGluZyB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnRpbGUtYmFkZ2UtdG9wcmlnaHQuZGltZW5zaW9uLWJhZGdlIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlOwogICAgICB9CgogICAgICAudGlsZS1jb250YWluZXIuY2xpY2thYmxlOmhvdmVyIC50aWxlLWJhZGdlLXRvcHJpZ2h0LmRpbWVuc2lvbi1iYWRnZSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQogICAgYF07I2U9UDIodGhpcyxvLCIiKTtnZXQgc3JjKCl7cmV0dXJuIHRoaXMuI2V9c2V0IHNyYyh6KXt0aGlzLiNlPXp9I3Q9KFAyKHRoaXMscyksUDIodGhpcyxjLCIiKSk7Z2V0IGFsdCgpe3JldHVybiB0aGlzLiN0fXNldCBhbHQoeil7dGhpcy4jdD16fSNyPShQMih0aGlzLHUpLFAyKHRoaXMsaCwhMSkpO2dldCBpbWFnZUxvYWRlZCgpe3JldHVybiB0aGlzLiNyfXNldCBpbWFnZUxvYWRlZCh6KXt0aGlzLiNyPXp9I2k9KFAyKHRoaXMsZiksUDIodGhpcyx2LDApKTtnZXQgaW1hZ2VXaWR0aCgpe3JldHVybiB0aGlzLiNpfXNldCBpbWFnZVdpZHRoKHope3RoaXMuI2k9en0jYT0oUDIodGhpcyxiKSxQMih0aGlzLHcsMCkpO2dldCBpbWFnZUhlaWdodCgpe3JldHVybiB0aGlzLiNhfXNldCBpbWFnZUhlaWdodCh6KXt0aGlzLiNhPXp9aGFzU3RhcnRlZExvYWRpbmc9KFAyKHRoaXMsayksITEpO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9ImltYWdlLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5oYXNTdGFydGVkTG9hZGluZz9DYAogICAgICAgICAgPGltZwogICAgICAgICAgICBjbGFzcz0iJHt0aGlzLmltYWdlTG9hZGVkPyJsb2FkZWQiOiJsb2FkaW5nIn0iCiAgICAgICAgICAgIHNyYz0iJHt0aGlzLnNyY30iCiAgICAgICAgICAgIGFsdD0iJHt0aGlzLmFsdH0iCiAgICAgICAgICAgIEBsb2FkPSR7dGhpcy5oYW5kbGVJbWFnZUxvYWR9CiAgICAgICAgICAgIEBlcnJvcj0ke3RoaXMuaGFuZGxlSW1hZ2VFcnJvcn0KICAgICAgICAgIC8+CiAgICAgICAgYDoiIn0KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuaW1hZ2VXaWR0aD4wJiZ0aGlzLmltYWdlSGVpZ2h0PjA/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlLXRvcHJpZ2h0IGRpbWVuc2lvbi1iYWRnZSI+CiAgICAgICAgICAke3RoaXMuaW1hZ2VXaWR0aH0gw5cgJHt0aGlzLmltYWdlSGVpZ2h0fQogICAgICAgIDwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLmltYWdlTG9hZGVkP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1pbmZvIj4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkltYWdlIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0aWxlLWluZm8tdGV4dCI+JHt0aGlzLmltYWdlV2lkdGh9IMOXICR7dGhpcy5pbWFnZUhlaWdodH08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIGA6IiJ9CgogICAgICAke3RoaXMuY2xpY2thYmxlP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkV5ZSI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5WaWV3IEltYWdlPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57c3JjOnRoaXMuc3JjLGFsdDp0aGlzLmFsdCx3aWR0aDp0aGlzLmltYWdlV2lkdGgsaGVpZ2h0OnRoaXMuaW1hZ2VIZWlnaHR9fW9uQmVjYW1lVmlzaWJsZSgpeyF0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nJiZ0aGlzLnNyYyYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy5sb2FkaW5nPSEwLHRoaXMucmVxdWVzdFVwZGF0ZSgpKX1oYW5kbGVJbWFnZUxvYWQoeil7bGV0IE09ei50YXJnZXQ7dGhpcy5pbWFnZVdpZHRoPU0ubmF0dXJhbFdpZHRoLHRoaXMuaW1hZ2VIZWlnaHQ9TS5uYXR1cmFsSGVpZ2h0LHRoaXMuaW1hZ2VMb2FkZWQ9ITAsdGhpcy5sb2FkaW5nPSExfWhhbmRsZUltYWdlRXJyb3IoKXt0aGlzLmVycm9yPSEwLHRoaXMubG9hZGluZz0hMX1hc3luYyB1cGRhdGVkKHope3N1cGVyLnVwZGF0ZWQoeiksei5oYXMoInNyYyIpJiZ0aGlzLnNyYyYmdGhpcy5pc1Zpc2libGUmJih0aGlzLmhhc1N0YXJ0ZWRMb2FkaW5nPSEwLHRoaXMuaW1hZ2VMb2FkZWQ9ITEsdGhpcy5sb2FkaW5nPSEwKX1zdGF0aWN7UDIoaSxyKX19O3JldHVybiBPPWl9KSgpfSk7dmFyIEszcj1wKCgpPT57SjNyKCl9KTt2YXIgZTZyLHQ2cj1wKCgpPT57eGUoKTtlNnI9KCk9PkNgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPkF1ZGlvIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRpbGUtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMSIKICAgICAgICAgIGFydGlzdD0iVC4gU2NodWVyZ2VyIgogICAgICAgICAgbGFiZWw9InNvdW5kaGVsaXgtMS5tcDMiCiAgICAgICAgICBAdGlsZS1jbGljaz0ke2U9PmNvbnNvbGUubG9nKCJBdWRpbyBjbGlja2VkOiIsZS5kZXRhaWwpfQogICAgICAgID48L2RlZXMtdGlsZS1hdWRpbz4KCiAgICAgICAgPGRlZXMtdGlsZS1hdWRpbwogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTIubXAzIgogICAgICAgICAgdGl0bGU9IlNvdW5kSGVsaXggU29uZyAyIgogICAgICAgICAgYXJ0aXN0PSJULiBTY2h1ZXJnZXIiCiAgICAgICAgICBsYWJlbD0ic291bmRoZWxpeC0yLm1wMyIKICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CgogICAgICAgIDxkZWVzLXRpbGUtYXVkaW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0zLm1wMyIKICAgICAgICAgIHRpdGxlPSJTb3VuZEhlbGl4IFNvbmcgMyIKICAgICAgICAgIGxhYmVsPSJzb3VuZGhlbGl4LTMubXAzIgogICAgICAgID48L2RlZXMtdGlsZS1hdWRpbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aWxlLWF1ZGlvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cuc291bmRoZWxpeC5jb20vZXhhbXBsZXMvbXAzL1NvdW5kSGVsaXgtU29uZy0xLm1wMyIKICAgICAgICAgIHRpdGxlPSJTbWFsbCIKICAgICAgICAgIGxhYmVsPSJzbWFsbC5tcDMiCiAgICAgICAgPjwvZGVlcy10aWxlLWF1ZGlvPgoKICAgICAgICA8ZGVlcy10aWxlLWF1ZGlvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnNvdW5kaGVsaXguY29tL2V4YW1wbGVzL21wMy9Tb3VuZEhlbGl4LVNvbmctMS5tcDMiCiAgICAgICAgICB0aXRsZT0iRGVmYXVsdCIKICAgICAgICAgIGxhYmVsPSJkZWZhdWx0Lm1wMyIKICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CgogICAgICAgIDxkZWVzLXRpbGUtYXVkaW8KICAgICAgICAgIHNpemU9ImxhcmdlIgogICAgICAgICAgc3JjPSJodHRwczovL3d3dy5zb3VuZGhlbGl4LmNvbS9leGFtcGxlcy9tcDMvU291bmRIZWxpeC1Tb25nLTEubXAzIgogICAgICAgICAgdGl0bGU9IkxhcmdlIgogICAgICAgICAgbGFiZWw9ImxhcmdlLm1wMyIKICAgICAgICA+PC9kZWVzLXRpbGUtYXVkaW8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgVTQsc24scjZyLGk2cj1wKCgpPT57eGUoKTtWNCgpO1RjKCk7dDZyKCk7VTQ9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxzbj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0scjZyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy10aWxlLWF1ZGlvIildLHQscj1bXSxpLGE9b24sbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W107dmFyIFI9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ooe3R5cGU6U3RyaW5nfSldLHg9W2ZlKCldLHk9W2ZlKCldLE89W2ZlKCldLEY9W2ZlKCldLFU0KHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ic3JjImluIFMsZ2V0OlM9PlMuc3JjLHNldDooUywkKT0+e1Muc3JjPSR9fSxtZXRhZGF0YTpffSxvLHMpLFU0KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ0aXRsZSJpbiBTLGdldDpTPT5TLnRpdGxlLHNldDooUywkKT0+e1MudGl0bGU9JH19LG1ldGFkYXRhOl99LGMsdSksVTQodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJhcnRpc3QiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJhcnRpc3QiaW4gUyxnZXQ6Uz0+Uy5hcnRpc3Qsc2V0OihTLCQpPT57Uy5hcnRpc3Q9JH19LG1ldGFkYXRhOl99LGgsZiksVTQodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkdXJhdGlvbiIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImR1cmF0aW9uImluIFMsZ2V0OlM9PlMuZHVyYXRpb24sc2V0OihTLCQpPT57Uy5kdXJhdGlvbj0kfX0sbWV0YWRhdGE6X30sdixiKSxVNCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+IndhdmVmb3JtRGF0YSJpbiBTLGdldDpTPT5TLndhdmVmb3JtRGF0YSxzZXQ6KFMsJCk9PntTLndhdmVmb3JtRGF0YT0kfX0sbWV0YWRhdGE6X30sdyxrKSxVNCh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6IndhdmVmb3JtUmVhZHkiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ3YXZlZm9ybVJlYWR5ImluIFMsZ2V0OlM9PlMud2F2ZWZvcm1SZWFkeSxzZXQ6KFMsJCk9PntTLndhdmVmb3JtUmVhZHk9JH19LG1ldGFkYXRhOl99LHosTSksVTQodGhpcyxudWxsLEYse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1ByZXZpZXdQbGF5aW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iaXNQcmV2aWV3UGxheWluZyJpbiBTLGdldDpTPT5TLmlzUHJldmlld1BsYXlpbmcsc2V0OihTLCQpPT57Uy5pc1ByZXZpZXdQbGF5aW5nPSR9fSxtZXRhZGF0YTpffSxELE4pLFU0KG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksUj1pPXQudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89ZTZyO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5GYSxvZWAKICAgICAgLmF1ZGlvLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2woMjUwIDQwJSA5NiUpLCBoc2woMjgwIDMwJSA5NCUpKSIsImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyNTAgMzAlIDE2JSksIGhzbCgyODAgMjUlIDE0JSkpIil9OwogICAgICB9CgogICAgICAubXVzaWMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiA0OHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDI1MCA2MCUgNjUlKSIsImhzbCgyNTAgNjAlIDcwJSkiKX07CiAgICAgICAgb3BhY2l0eTogMC44OwogICAgICB9CgogICAgICAuYXVkaW8tdGl0bGUgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDI1MCAyMCUgMzUlKSIsImhzbCgyNTAgMjAlIDgwJSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDAgMTZweDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICB9CgogICAgICAuYXVkaW8tYXJ0aXN0IHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyNTAgMTUlIDUwJSkiLCJoc2woMjUwIDE1JSA2NSUpIil9OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwIDE2cHg7CiAgICAgICAgbWFyZ2luLXRvcDogLTEycHg7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMycHgpOwogICAgICAgIGhlaWdodDogNDBweDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLndhdmVmb3JtLWNvbnRhaW5lciBjYW52YXMgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKCiAgICAgIC5wbGF5LW92ZXJsYXkgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7CiAgICAgICAgei1pbmRleDogMTg7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgfQoKICAgICAgLnBsYXktY2lyY2xlIHsKICAgICAgICB3aWR0aDogNDhweDsKICAgICAgICBoZWlnaHQ6IDQ4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7CiAgICAgIH0KCiAgICAgIC5wbGF5LWNpcmNsZSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KICAgIGBdOyNlPXNuKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoXyl7dGhpcy4jZT1ffSN0PShzbih0aGlzLHMpLHNuKHRoaXMsYywiIikpO2dldCB0aXRsZSgpe3JldHVybiB0aGlzLiN0fXNldCB0aXRsZShfKXt0aGlzLiN0PV99I3I9KHNuKHRoaXMsdSksc24odGhpcyxoLCIiKSk7Z2V0IGFydGlzdCgpe3JldHVybiB0aGlzLiNyfXNldCBhcnRpc3QoXyl7dGhpcy4jcj1ffSNpPShzbih0aGlzLGYpLHNuKHRoaXMsdiwwKSk7Z2V0IGR1cmF0aW9uKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGR1cmF0aW9uKF8pe3RoaXMuI2k9X30jYT0oc24odGhpcyxiKSxzbih0aGlzLHcsW10pKTtnZXQgd2F2ZWZvcm1EYXRhKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHdhdmVmb3JtRGF0YShfKXt0aGlzLiNhPV99I249KHNuKHRoaXMsayksc24odGhpcyx6LCExKSk7Z2V0IHdhdmVmb3JtUmVhZHkoKXtyZXR1cm4gdGhpcy4jbn1zZXQgd2F2ZWZvcm1SZWFkeShfKXt0aGlzLiNuPV99I289KHNuKHRoaXMsTSksc24odGhpcyxELCExKSk7Z2V0IGlzUHJldmlld1BsYXlpbmcoKXtyZXR1cm4gdGhpcy4jb31zZXQgaXNQcmV2aWV3UGxheWluZyhfKXt0aGlzLiNvPV99YXVkaW9FbGVtZW50PShzbih0aGlzLE4pLG51bGwpO3ByZXZpZXdUaW1lb3V0PW51bGw7aGFzTG9hZGVkV2F2ZWZvcm09ITE7cmVuZGVyVGlsZUNvbnRlbnQoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0iYXVkaW8tY29udGVudCI+CiAgICAgICAgPGRlZXMtaWNvbiBjbGFzcz0ibXVzaWMtaWNvbiIgaWNvbj0ibHVjaWRlOk11c2ljIj48L2RlZXMtaWNvbj4KCiAgICAgICAgJHt0aGlzLnRpdGxlP0NgPGRpdiBjbGFzcz0iYXVkaW8tdGl0bGUiPiR7dGhpcy50aXRsZX08L2Rpdj5gOiIifQogICAgICAgICR7dGhpcy5hcnRpc3Q/Q2A8ZGl2IGNsYXNzPSJhdWRpby1hcnRpc3QiPiR7dGhpcy5hcnRpc3R9PC9kaXY+YDoiIn0KCiAgICAgICAgJHt0aGlzLndhdmVmb3JtUmVhZHk/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9IndhdmVmb3JtLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxjYW52YXM+PC9jYW52YXM+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5kdXJhdGlvbj4wP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZS1jb3JuZXIiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvZGl2PgogICAgICBgOiIifQoKICAgICAgPGRpdiBjbGFzcz0icGxheS1vdmVybGF5Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LWNpcmNsZSI+CiAgICAgICAgICA8ZGVlcy1pY29uIGljb249Imx1Y2lkZTpQbGF5Ij48L2RlZXMtaWNvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICAke3RoaXMuY2xpY2thYmxlP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOkhlYWRwaG9uZXMiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+UGxheSBBdWRpbzwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyx0aXRsZTp0aGlzLnRpdGxlLGFydGlzdDp0aGlzLmFydGlzdCxkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX1vbkJlY2FtZVZpc2libGUoKXshdGhpcy5oYXNMb2FkZWRXYXZlZm9ybSYmdGhpcy5zcmMmJih0aGlzLmhhc0xvYWRlZFdhdmVmb3JtPSEwLHRoaXMubG9hZEF1ZGlvTWV0YSgpKX1hc3luYyBsb2FkQXVkaW9NZXRhKCl7dGhpcy5sb2FkaW5nPSEwO3RyeXtsZXQgXz1uZXcgQXVkaW87Xy5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixfLnByZWxvYWQ9Im1ldGFkYXRhIixhd2FpdCBuZXcgUHJvbWlzZSgoUywkKT0+e18uYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj1fLmR1cmF0aW9uLFMoKX0se29uY2U6ITB9KSxfLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+JChuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIGF1ZGlvIikpLHtvbmNlOiEwfSksXy5zcmM9dGhpcy5zcmN9KSxhd2FpdCB0aGlzLmxvYWRXYXZlZm9ybSgpLHRoaXMubG9hZGluZz0hMX1jYXRjaHt0aGlzLmxvYWRpbmc9ITF9fWFzeW5jIGxvYWRXYXZlZm9ybSgpe3RyeXtsZXQgUz1hd2FpdChhd2FpdCBmZXRjaCh0aGlzLnNyYykpLmFycmF5QnVmZmVyKCksJD1uZXcgQXVkaW9Db250ZXh0LEU9KGF3YWl0ICQuZGVjb2RlQXVkaW9EYXRhKFMpKS5nZXRDaGFubmVsRGF0YSgwKSxxPTgwLEI9TWF0aC5mbG9vcihFLmxlbmd0aC9xKSxHPVtdO2ZvcihsZXQgUD0wO1A8cTtQKyspe2xldCBnZT0wO2ZvcihsZXQgd2U9MDt3ZTxCO3dlKyspZ2UrPU1hdGguYWJzKEVbUCpCK3dlXSk7Ry5wdXNoKGdlL0IpfWxldCBlZT1NYXRoLm1heCguLi5HKTt0aGlzLndhdmVmb3JtRGF0YT1HLm1hcChQPT5lZT4wP1AvZWU6MCksdGhpcy53YXZlZm9ybVJlYWR5PSEwLGF3YWl0ICQuY2xvc2UoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZHJhd1dhdmVmb3JtKCl9Y2F0Y2h7dGhpcy53YXZlZm9ybVJlYWR5PSExfX1kcmF3V2F2ZWZvcm0oKXtpZighdGhpcy53YXZlZm9ybVJlYWR5KXJldHVybjtsZXQgXz10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi53YXZlZm9ybS1jb250YWluZXIgY2FudmFzIik7aWYoIV8pcmV0dXJuO2xldCBTPV8ucGFyZW50RWxlbWVudCwkPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLFQ9Uy5jbGllbnRXaWR0aCxFPVMuY2xpZW50SGVpZ2h0O18ud2lkdGg9VCokLF8uaGVpZ2h0PUUqJDtsZXQgcT1fLmdldENvbnRleHQoIjJkIik7aWYoIXEpcmV0dXJuO3Euc2NhbGUoJCwkKSxxLmNsZWFyUmVjdCgwLDAsVCxFKTtsZXQgQj10aGlzLndhdmVmb3JtRGF0YS5sZW5ndGg7aWYoQj09PTApcmV0dXJuO2xldCBHPVQvQixQPWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0aGVtZS1kYXJrIil8fHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8iaHNsKDI1MCA1MCUgNjAlKSI6ImhzbCgyNTAgNTAlIDcwJSkiO3EuZmlsbFN0eWxlPVA7Zm9yKGxldCBnZT0wO2dlPEI7Z2UrKyl7bGV0IHdlPXRoaXMud2F2ZWZvcm1EYXRhW2dlXSxJPU1hdGgubWF4KDIsd2UqKEUtNCkpLG5lPWdlKkcsa2U9KEUtSSkvMjtxLmZpbGxSZWN0KG5lKy41LGtlLEctMSxJKX19YXN5bmMgdXBkYXRlZChfKXtzdXBlci51cGRhdGVkKF8pLF8uaGFzKCJzcmMiKSYmdGhpcy5zcmMmJnRoaXMuaXNWaXNpYmxlJiYodGhpcy5oYXNMb2FkZWRXYXZlZm9ybT0hMCx0aGlzLndhdmVmb3JtUmVhZHk9ITEsdGhpcy5kdXJhdGlvbj0wLHRoaXMubG9hZEF1ZGlvTWV0YSgpKSxfLmhhcygid2F2ZWZvcm1SZWFkeSIpJiZ0aGlzLndhdmVmb3JtUmVhZHkmJihhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMuZHJhd1dhdmVmb3JtKCkpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSx0aGlzLnByZXZpZXdUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5wcmV2aWV3VGltZW91dCksdGhpcy5hdWRpb0VsZW1lbnQmJih0aGlzLmF1ZGlvRWxlbWVudC5wYXVzZSgpLHRoaXMuYXVkaW9FbGVtZW50LnNyYz0iIix0aGlzLmF1ZGlvRWxlbWVudD1udWxsKX1mb3JtYXRUaW1lKF8pe2lmKCFpc0Zpbml0ZShfKXx8XzwwKXJldHVybiIwOjAwIjtsZXQgUz1NYXRoLmZsb29yKF8vNjApLCQ9TWF0aC5mbG9vcihfJTYwKTtyZXR1cm5gJHtTfTokeyQudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9YH1zdGF0aWN7c24oaSxyKX19O3JldHVybiBSPWl9KSgpfSk7dmFyIGE2cj1wKCgpPT57aTZyKCl9KTt2YXIgbjZyLG82cj1wKCgpPT57eGUoKTtuNnI9KCk9PkNgCiAgPHN0eWxlPgogICAgLmRlbW8tY29udGFpbmVyIHsKICAgICAgcGFkZGluZzogNDBweDsKICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsKICAgIH0KICAgIC5kZW1vLXNlY3Rpb24gewogICAgICBtYXJnaW4tYm90dG9tOiA2MHB4OwogICAgfQogICAgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAudGlsZS1yb3cgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDI0cHg7CiAgICAgIGZsZXgtd3JhcDogd3JhcDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICB9CiAgPC9zdHlsZT4KCiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgPGgzPlZpZGVvIFRpbGVzPC9oMz4KICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImJ1bm55Lm1wNCIKICAgICAgICAgIEB0aWxlLWNsaWNrPSR7ZT0+Y29uc29sZS5sb2coIlZpZGVvIGNsaWNrZWQ6IixlLmRldGFpbCl9CiAgICAgICAgPjwvZGVlcy10aWxlLXZpZGVvPgoKICAgICAgICA8ZGVlcy10aWxlLXZpZGVvCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZpZS5tcDQiCiAgICAgICAgICBwb3N0ZXI9Imh0dHBzOi8vcGljc3VtLnBob3Rvcy80MDAvMzAwIgogICAgICAgICAgbGFiZWw9Im1vdmllLm1wNCIKICAgICAgICA+PC9kZWVzLXRpbGUtdmlkZW8+CgogICAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImFub3RoZXItdmlkZW8ubXA0IgogICAgICAgID48L2RlZXMtdGlsZS12aWRlbz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICA8ZGVlcy10aWxlLXZpZGVvCiAgICAgICAgICBzaXplPSJzbWFsbCIKICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9InNtYWxsLm1wNCIKICAgICAgICA+PC9kZWVzLXRpbGUtdmlkZW8+CgogICAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICAgIHNyYz0iaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9odG1sL21vdl9iYmIubXA0IgogICAgICAgICAgbGFiZWw9ImRlZmF1bHQubXA0IgogICAgICAgID48L2RlZXMtdGlsZS12aWRlbz4KCiAgICAgICAgPGRlZXMtdGlsZS12aWRlbwogICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZfYmJiLm1wNCIKICAgICAgICAgIGxhYmVsPSJsYXJnZS5tcDQiCiAgICAgICAgPjwvZGVlcy10aWxlLXZpZGVvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgIDxoMz5XaXRoIFBvc3RlciBJbWFnZTwvaDM+CiAgICAgIDxkZWVzLXRpbGUtdmlkZW8KICAgICAgICBzcmM9Imh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9tb3ZpZS5tcDQiCiAgICAgICAgcG9zdGVyPSJodHRwczovL3BpY3N1bS5waG90b3MvNjAwLzQwMCIKICAgICAgICBsYWJlbD0icG9zdGVyLXZpZGVvLm1wNCIKICAgICAgPjwvZGVlcy10aWxlLXZpZGVvPgogICAgPC9kaXY+CiAgPC9kaXY+CmB9KTt2YXIgaGgsTjIsczZyLGw2cj1wKCgpPT57eGUoKTtWNCgpO1RjKCk7bzZyKCk7aGg9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxOMj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sczZyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy10aWxlLXZpZGVvIildLHQscj1bXSxpLGE9b24sbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ZlKCldLHg9W2ZlKCldLHk9W2ZlKCldLGhoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3JjIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4ic3JjImluIE0sZ2V0Ok09Pk0uc3JjLHNldDooTSxGKT0+e00uc3JjPUZ9fSxtZXRhZGF0YTp6fSxvLHMpLGhoKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicG9zdGVyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4icG9zdGVyImluIE0sZ2V0Ok09Pk0ucG9zdGVyLHNldDooTSxGKT0+e00ucG9zdGVyPUZ9fSxtZXRhZGF0YTp6fSxjLHUpLGhoKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZHVyYXRpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJkdXJhdGlvbiJpbiBNLGdldDpNPT5NLmR1cmF0aW9uLHNldDooTSxGKT0+e00uZHVyYXRpb249Rn19LG1ldGFkYXRhOnp9LGgsZiksaGgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0aHVtYm5haWxDYXB0dXJlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+InRodW1ibmFpbENhcHR1cmVkImluIE0sZ2V0Ok09Pk0udGh1bWJuYWlsQ2FwdHVyZWQsc2V0OihNLEYpPT57TS50aHVtYm5haWxDYXB0dXJlZD1GfX0sbWV0YWRhdGE6en0sdixiKSxoaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzSG92ZXJpbmciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJpc0hvdmVyaW5nImluIE0sZ2V0Ok09Pk0uaXNIb3ZlcmluZyxzZXQ6KE0sRik9PntNLmlzSG92ZXJpbmc9Rn19LG1ldGFkYXRhOnp9LHcsayksaGgobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6en0sbnVsbCxyKSxPPWk9dC52YWx1ZSx6JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnp9KX1zdGF0aWMgZGVtbz1uNnI7c3RhdGljIGRlbW9Hcm91cHM9WyJNZWRpYSJdO3N0YXRpYyBzdHlsZXM9Wy4uLkZhLG9lYAogICAgICAudmlkZW8td3JhcHBlciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICMwMDA7CiAgICAgIH0KCiAgICAgIC52aWRlby13cmFwcGVyIHZpZGVvIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCiAgICAgIC52aWRlby13cmFwcGVyIGNhbnZhcyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG9iamVjdC1maXQ6IGNvdmVyOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAucG9zdGVyLWltYWdlIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgIH0KCgogICAgICAucGxheS1vdmVybGF5IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB6LWluZGV4OiAxNTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTsKICAgICAgfQoKICAgICAgLnBsYXktb3ZlcmxheSBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC50aWxlLWNvbnRhaW5lci5jbGlja2FibGU6aG92ZXIgLnBsYXktb3ZlcmxheSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgfQoKICAgICAgLnZpZGVvLWhvdmVyLXByZXZpZXcgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlOwogICAgICB9CgogICAgICAudmlkZW8taG92ZXItcHJldmlldy5hY3RpdmUgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgIH0KICAgIGBdOyNlPU4yKHRoaXMsbywiIik7Z2V0IHNyYygpe3JldHVybiB0aGlzLiNlfXNldCBzcmMoeil7dGhpcy4jZT16fSN0PShOMih0aGlzLHMpLE4yKHRoaXMsYywiIikpO2dldCBwb3N0ZXIoKXtyZXR1cm4gdGhpcy4jdH1zZXQgcG9zdGVyKHope3RoaXMuI3Q9en0jcj0oTjIodGhpcyx1KSxOMih0aGlzLGgsMCkpO2dldCBkdXJhdGlvbigpe3JldHVybiB0aGlzLiNyfXNldCBkdXJhdGlvbih6KXt0aGlzLiNyPXp9I2k9KE4yKHRoaXMsZiksTjIodGhpcyx2LCExKSk7Z2V0IHRodW1ibmFpbENhcHR1cmVkKCl7cmV0dXJuIHRoaXMuI2l9c2V0IHRodW1ibmFpbENhcHR1cmVkKHope3RoaXMuI2k9en0jYT0oTjIodGhpcyxiKSxOMih0aGlzLHcsITEpKTtnZXQgaXNIb3ZlcmluZygpe3JldHVybiB0aGlzLiNhfXNldCBpc0hvdmVyaW5nKHope3RoaXMuI2E9en10aHVtYm5haWxDYW52YXM9KE4yKHRoaXMsayksbnVsbCk7aG92ZXJWaWRlbz1udWxsO2hhc1N0YXJ0ZWRMb2FkaW5nPSExO3JlbmRlclRpbGVDb250ZW50KCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9InZpZGVvLXdyYXBwZXIiPgogICAgICAgICR7dGhpcy5wb3N0ZXI/Q2AKICAgICAgICAgIDxpbWcgY2xhc3M9InBvc3Rlci1pbWFnZSIgc3JjPSIke3RoaXMucG9zdGVyfSIgYWx0PSIiIC8+CiAgICAgICAgYDp0aGlzLnRodW1ibmFpbENhcHR1cmVkP0NgCiAgICAgICAgICA8Y2FudmFzPjwvY2FudmFzPgogICAgICAgIGA6Q2AKICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6ICMwMDA7Ij48L2Rpdj4KICAgICAgICBgfQoKICAgICAgICAke3RoaXMuaXNIb3ZlcmluZyYmdGhpcy5zcmM/Q2AKICAgICAgICAgIDx2aWRlbwogICAgICAgICAgICBjbGFzcz0idmlkZW8taG92ZXItcHJldmlldyAke3RoaXMuaXNIb3ZlcmluZz8iYWN0aXZlIjoiIn0iCiAgICAgICAgICAgIC5zcmM9JHt0aGlzLnNyY30KICAgICAgICAgICAgbXV0ZWQKICAgICAgICAgICAgcGxheXNpbmxpbmUKICAgICAgICAgICAgQGxvYWRlZGRhdGE9JHt0aGlzLmhhbmRsZUhvdmVyVmlkZW9Mb2FkZWR9CiAgICAgICAgICA+PC92aWRlbz4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5kdXJhdGlvbj4wP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1iYWRnZS1jb3JuZXIiPiR7dGhpcy5mb3JtYXRUaW1lKHRoaXMuZHVyYXRpb24pfTwvZGl2PgogICAgICBgOiIifQoKICAgICAgJHt0aGlzLmlzSG92ZXJpbmc/IiI6Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJwbGF5LW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6UGxheSI+PC9kZWVzLWljb24+CiAgICAgICAgPC9kaXY+CiAgICAgIGB9CgogICAgICAke3RoaXMuY2xpY2thYmxlP0NgCiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1vdmVybGF5Ij4KICAgICAgICAgIDxkZWVzLWljb24gaWNvbj0ibHVjaWRlOlBsYXkiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+UGxheSBWaWRlbzwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue3NyYzp0aGlzLnNyYyxwb3N0ZXI6dGhpcy5wb3N0ZXIsZHVyYXRpb246dGhpcy5kdXJhdGlvbn19b25CZWNhbWVWaXNpYmxlKCl7IXRoaXMuaGFzU3RhcnRlZExvYWRpbmcmJnRoaXMuc3JjJiYodGhpcy5oYXNTdGFydGVkTG9hZGluZz0hMCx0aGlzLmNhcHR1cmVGaXJzdEZyYW1lKCkpfWFzeW5jIGNhcHR1cmVGaXJzdEZyYW1lKCl7aWYodGhpcy5wb3N0ZXIpe3RoaXMubG9hZER1cmF0aW9uKCk7cmV0dXJufXRoaXMubG9hZGluZz0hMDt0cnl7bGV0IHo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTt6LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLHoubXV0ZWQ9ITAsei5wcmVsb2FkPSJtZXRhZGF0YSIsYXdhaXQgbmV3IFByb21pc2UoKE0sRik9Pnt6LmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlZGRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj16LmR1cmF0aW9uLHouY3VycmVudFRpbWU9LjEsei5hZGRFdmVudExpc3RlbmVyKCJzZWVrZWQiLCgpPT57bGV0IEQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7RC53aWR0aD16LnZpZGVvV2lkdGgsRC5oZWlnaHQ9ei52aWRlb0hlaWdodDtsZXQgTj1ELmdldENvbnRleHQoIjJkIik7TiYmKE4uZHJhd0ltYWdlKHosMCwwKSx0aGlzLnRodW1ibmFpbENhbnZhcz1ELHRoaXMudGh1bWJuYWlsQ2FwdHVyZWQ9ITApLHouc3JjPSIiLHoubG9hZCgpLE0oKX0se29uY2U6ITB9KX0se29uY2U6ITB9KSx6LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+RihuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIHZpZGVvIikpLHtvbmNlOiEwfSksei5zcmM9dGhpcy5zcmN9KSx0aGlzLmxvYWRpbmc9ITEsYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZSx0aGlzLmNvcHlUaHVtYm5haWxUb0NhbnZhcygpfWNhdGNoe3RoaXMubG9hZGluZz0hMSx0aGlzLmxvYWREdXJhdGlvbigpfX1sb2FkRHVyYXRpb24oKXtsZXQgej1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpO3oucHJlbG9hZD0ibWV0YWRhdGEiLHouYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVkbWV0YWRhdGEiLCgpPT57dGhpcy5kdXJhdGlvbj16LmR1cmF0aW9uLHouc3JjPSIiLHoubG9hZCgpfSksei5zcmM9dGhpcy5zcmN9Y29weVRodW1ibmFpbFRvQ2FudmFzKCl7aWYoIXRoaXMudGh1bWJuYWlsQ2FudmFzKXJldHVybjtsZXQgej10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoIi52aWRlby13cmFwcGVyIGNhbnZhcyIpO2lmKCF6KXJldHVybjt6LndpZHRoPXRoaXMudGh1bWJuYWlsQ2FudmFzLndpZHRoLHouaGVpZ2h0PXRoaXMudGh1bWJuYWlsQ2FudmFzLmhlaWdodDtsZXQgTT16LmdldENvbnRleHQoIjJkIik7TSYmTS5kcmF3SW1hZ2UodGhpcy50aHVtYm5haWxDYW52YXMsMCwwKX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5ob3ZlclZpZGVvPW51bGx9aGFuZGxlSG92ZXJWaWRlb0xvYWRlZCh6KXt0aGlzLmhvdmVyVmlkZW89ei50YXJnZXQsdGhpcy5ob3ZlclZpZGVvLnBsYXkoKS5jYXRjaCgoKT0+e30pfWFzeW5jIHVwZGF0ZWQoeil7c3VwZXIudXBkYXRlZCh6KSx6Lmhhcygic3JjIikmJnRoaXMuc3JjJiZ0aGlzLmlzVmlzaWJsZSYmKHRoaXMuaGFzU3RhcnRlZExvYWRpbmc9ITAsdGhpcy50aHVtYm5haWxDYXB0dXJlZD0hMSx0aGlzLmR1cmF0aW9uPTAsdGhpcy5jYXB0dXJlRmlyc3RGcmFtZSgpKSx6LmhhcygidGh1bWJuYWlsQ2FwdHVyZWQiKSYmdGhpcy50aHVtYm5haWxDYXB0dXJlZCYmKGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsdGhpcy5jb3B5VGh1bWJuYWlsVG9DYW52YXMoKSl9YXN5bmMgZGlzY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuaG92ZXJWaWRlbyYmKHRoaXMuaG92ZXJWaWRlby5wYXVzZSgpLHRoaXMuaG92ZXJWaWRlby5zcmM9IiIsdGhpcy5ob3ZlclZpZGVvPW51bGwpLHRoaXMudGh1bWJuYWlsQ2FudmFzPW51bGx9Zm9ybWF0VGltZSh6KXtpZighaXNGaW5pdGUoeil8fHo8MClyZXR1cm4iMDowMCI7bGV0IE09TWF0aC5mbG9vcih6LzYwKSxGPU1hdGguZmxvb3IoeiU2MCk7cmV0dXJuYCR7TX06JHtGLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9c3RhdGlje04yKGkscil9fTtyZXR1cm4gTz1pfSkoKX0pO3ZhciBjNnI9cCgoKT0+e2w2cigpfSk7dmFyIGQ2cix1NnI9cCgoKT0+e3hlKCk7ZDZyPSgpPT57bGV0IGU9YGltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQnOwoKZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IHsKICBwcml2YXRlIGl0ZW1zOiBzdHJpbmdbXSA9IFtdOwoKICByZW5kZXIoKSB7CiAgICByZXR1cm4gaHRtbFxgCiAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgXCR7dGhpcy5pdGVtcy5tYXAoaXRlbSA9PiBodG1sXGAKICAgICAgICAgIDxzcGFuPlwke2l0ZW19PC9zcGFuPgogICAgICAgIFxgKX0KICAgICAgPC9kaXY+CiAgICBcYDsKICB9Cn1gLHQ9YE1lZXRpbmcgTm90ZXMgLSBRNCBQbGFubmluZwpEYXRlOiBKYW51YXJ5IDE1LCAyMDI2CkF0dGVuZGVlczogQWxpY2UsIEJvYiwgQ2hhcmxpZQoKS2V5IERlY2lzaW9uczoKMS4gTGF1bmNoIG5ldyBmZWF0dXJlIGJ5IE1hcmNoCjIuIEhpcmUgMiBtb3JlIGVuZ2luZWVycwozLiBNaWdyYXRlIHRvIG5ldyBDSS9DRCBwaXBlbGluZQo0LiBVcGRhdGUgZGVzaWduIHN5c3RlbSB0byB2MwoKQWN0aW9uIEl0ZW1zOgotIEFsaWNlOiBEcmFmdCBQUkQgYnkgbmV4dCB3ZWVrCi0gQm9iOiBTZXQgdXAgaW50ZXJ2aWV3IHBpcGVsaW5lCi0gQ2hhcmxpZTogRXZhbHVhdGUgSmVua2lucyB2cyBHaXRIdWIgQWN0aW9uc2A7cmV0dXJuIENgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Ob3RlIFRpbGVzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aWxlLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImNvbXBvbmVudC50cyIKICAgICAgICAgICAgLmNvbnRlbnQ9JHtlfQogICAgICAgICAgICBsYW5ndWFnZT0idHlwZXNjcmlwdCIKICAgICAgICAgICAgbGFiZWw9ImNvbXBvbmVudC50cyIKICAgICAgICAgICAgQHRpbGUtY2xpY2s9JHtpPT5jb25zb2xlLmxvZygiTm90ZSBjbGlja2VkOiIsaS5kZXRhaWwpfQogICAgICAgICAgPjwvZGVlcy10aWxlLW5vdGU+CgogICAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAgIHRpdGxlPSJNZWV0aW5nIE5vdGVzIgogICAgICAgICAgICAuY29udGVudD0ke3R9CiAgICAgICAgICAgIGxhYmVsPSJtZWV0aW5nLW5vdGVzLnR4dCIKICAgICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRpbGUtbm90ZQogICAgICAgICAgICB0aXRsZT0icGFja2FnZS5qc29uIgogICAgICAgICAgICAuY29udGVudD0ke2B7CiAgIm5hbWUiOiAiQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nIiwKICAidmVyc2lvbiI6ICIzLjM4LjAiLAogICJkZXNjcmlwdGlvbiI6ICJEZXNpZ24gY29tcG9uZW50IGNhdGFsb2ciLAogICJkZXBlbmRlbmNpZXMiOiB7CiAgICAiQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50IjogIl4yLjAuMCIsCiAgICAibGl0IjogIl4zLjEuMCIKICB9LAogICJzY3JpcHRzIjogewogICAgImJ1aWxkIjogInRzYnVpbGQiLAogICAgInRlc3QiOiAidHN0ZXN0IgogIH0KfWB9CiAgICAgICAgICAgIGxhbmd1YWdlPSJqc29uIgogICAgICAgICAgICBsYWJlbD0icGFja2FnZS5qc29uIgogICAgICAgICAgPjwvZGVlcy10aWxlLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+U2l6ZSBWYXJpYW50czwvaDM+CiAgICAgICAgPGRpdiBjbGFzcz0idGlsZS1yb3ciPgogICAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICB0aXRsZT0ic21hbGwudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7ZX0KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0ic21hbGwudHMiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtbm90ZT4KCiAgICAgICAgICA8ZGVlcy10aWxlLW5vdGUKICAgICAgICAgICAgdGl0bGU9ImRlZmF1bHQudHMiCiAgICAgICAgICAgIC5jb250ZW50PSR7ZX0KICAgICAgICAgICAgbGFuZ3VhZ2U9InRzIgogICAgICAgICAgICBsYWJlbD0iZGVmYXVsdC50cyIKICAgICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgoKICAgICAgICAgIDxkZWVzLXRpbGUtbm90ZQogICAgICAgICAgICBzaXplPSJsYXJnZSIKICAgICAgICAgICAgdGl0bGU9ImxhcmdlLnRzIgogICAgICAgICAgICAuY29udGVudD0ke2V9CiAgICAgICAgICAgIGxhbmd1YWdlPSJ0cyIKICAgICAgICAgICAgbGFiZWw9ImxhcmdlLnRzIgogICAgICAgICAgPjwvZGVlcy10aWxlLW5vdGU+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iZGVtby1zZWN0aW9uIj4KICAgICAgICA8aDM+V2l0aG91dCBUaXRsZTwvaDM+CiAgICAgICAgPGRlZXMtdGlsZS1ub3RlCiAgICAgICAgICAuY29udGVudD0ke3R9CiAgICAgICAgICBsYWJlbD0idW50aXRsZWQudHh0IgogICAgICAgID48L2RlZXMtdGlsZS1ub3RlPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIGB9fSk7dmFyIEhiLF9jLHA2cixoNnI9cCgoKT0+e3hlKCk7VjQoKTtUYygpO3U2cigpO0hiPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sX2M9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHA2cj0oKCk9PntsZXQgZT1beWUoImRlZXMtdGlsZS1ub3RlIildLHQscj1bXSxpLGE9b24sbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB3PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe3R5cGU6U3RyaW5nfSldLGQ9W2ooe3R5cGU6U3RyaW5nfSldLHg9W2ZlKCldLEhiKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGl0bGUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0aXRsZSJpbiBrLGdldDprPT5rLnRpdGxlLHNldDooayxPKT0+e2sudGl0bGU9T319LG1ldGFkYXRhOnd9LG8scyksSGIodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb250ZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iY29udGVudCJpbiBrLGdldDprPT5rLmNvbnRlbnQsc2V0OihrLE8pPT57ay5jb250ZW50PU99fSxtZXRhZGF0YTp3fSxjLHUpLEhiKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibGFuZ3VhZ2UiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJsYW5ndWFnZSJpbiBrLGdldDprPT5rLmxhbmd1YWdlLHNldDooayxPKT0+e2subGFuZ3VhZ2U9T319LG1ldGFkYXRhOnd9LGgsZiksSGIodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0hvdmVyaW5nIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iaXNIb3ZlcmluZyJpbiBrLGdldDprPT5rLmlzSG92ZXJpbmcsc2V0OihrLE8pPT57ay5pc0hvdmVyaW5nPU99fSxtZXRhZGF0YTp3fSx2LGIpLEhiKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnd9LG51bGwscikseT1pPXQudmFsdWUsdyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp3fSl9c3RhdGljIGRlbW89ZDZyO3N0YXRpYyBkZW1vR3JvdXBzPVsiTWVkaWEiXTtzdGF0aWMgc3R5bGVzPVsuLi5GYSxvZWAKICAgICAgLm5vdGUtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCJoc2woNjAgNSUgOTYlKSIpfTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubm90ZS1oZWFkZXIgewogICAgICAgIHBhZGRpbmc6IDEycHggMTRweCA4cHg7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC5ub3RlLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMjAlIDIwJSkiLCJoc2woMjE1IDIwJSAyMCUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICB9CgogICAgICAubm90ZS1ib2R5IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIHBhZGRpbmc6IDAgMTRweCAxNHB4OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAubm90ZS10ZXh0IHsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEwcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMTAlIDQwJSkiLCJoc2woMjE1IDEwJSAzNSUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBtYXJnaW46IDA7CiAgICAgIH0KCiAgICAgIC5ub3RlLWZhZGUgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBoZWlnaHQ6IDYwcHg7CiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KAogICAgICAgICAgdHJhbnNwYXJlbnQsCiAgICAgICAgICAke20uYmRUaGVtZSgiI2ZmZmZmZiIsImhzbCg2MCA1JSA5NiUpIil9CiAgICAgICAgKTsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQoKICAgICAgLnRpbGUtYmFkZ2UtdG9wcmlnaHQubm90ZS1sYW5ndWFnZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTUgMjAlIDkyJSkiLCJoc2woMjE1IDIwJSA4OCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNiUgNTAlKSIsImhzbCgyMTUgMTYlIDQwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICB6LWluZGV4OiA1OwogICAgICB9CgogICAgICAubm90ZS1saW5lcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICB3aWR0aDogMzRweDsKICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgNzAlIDg1JSkiLCJoc2woMCA1MCUgODAlKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcGFkZGluZy10b3A6IDEycHg7CiAgICAgIH0KCiAgICAgIC5saW5lLW51bWJlciB7CiAgICAgICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICAgICAgZm9udC1zaXplOiA5cHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7IC8qIG1hdGNoZXMgMTBweCAqIDEuNSBsaW5lLWhlaWdodCAqLwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxMCUgNzUlKSIsImhzbCgyMTUgMTAlIDcwJSkiKX07CiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogNnB4OwogICAgICB9CgogICAgYF07I2U9X2ModGhpcyxvLCIiKTtnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy4jZX1zZXQgdGl0bGUodyl7dGhpcy4jZT13fSN0PShfYyh0aGlzLHMpLF9jKHRoaXMsYywiIikpO2dldCBjb250ZW50KCl7cmV0dXJuIHRoaXMuI3R9c2V0IGNvbnRlbnQodyl7dGhpcy4jdD13fSNyPShfYyh0aGlzLHUpLF9jKHRoaXMsaCwiIikpO2dldCBsYW5ndWFnZSgpe3JldHVybiB0aGlzLiNyfXNldCBsYW5ndWFnZSh3KXt0aGlzLiNyPXd9I2k9KF9jKHRoaXMsZiksX2ModGhpcyx2LCExKSk7Z2V0IGlzSG92ZXJpbmcoKXtyZXR1cm4gdGhpcy4jaX1zZXQgaXNIb3ZlcmluZyh3KXt0aGlzLiNpPXd9bm90ZUJvZHlFbGVtZW50PShfYyh0aGlzLGIpLG51bGwpO3JlbmRlclRpbGVDb250ZW50KCl7bGV0IHc9dGhpcy5jb250ZW50LnNwbGl0KGAKYCk7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im5vdGUtY29udGVudCI+CiAgICAgICAgJHt0aGlzLmxhbmd1YWdlP0NgCiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLWJhZGdlLXRvcHJpZ2h0IG5vdGUtbGFuZ3VhZ2UiPiR7dGhpcy5sYW5ndWFnZX08L2Rpdj4KICAgICAgICBgOiIifQoKICAgICAgICAke3RoaXMudGl0bGU/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9Im5vdGUtaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS10aXRsZSI+JHt0aGlzLnRpdGxlfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgYDoiIn0KCiAgICAgICAgPGRpdiBjbGFzcz0ibm90ZS1ib2R5Ij4KICAgICAgICAgIDxwcmUgY2xhc3M9Im5vdGUtdGV4dCI+JHt3LmpvaW4oYApgKX08L3ByZT4KICAgICAgICAgICR7dGhpcy5pc0hvdmVyaW5nPyIiOkNgPGRpdiBjbGFzcz0ibm90ZS1mYWRlIj48L2Rpdj5gfQogICAgICAgIDwvZGl2PgoKICAgICAgICAke3RoaXMuaXNIb3ZlcmluZyYmdy5sZW5ndGg+MTI/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRpbGUtYmFkZ2UtY29ybmVyIj4KICAgICAgICAgICAgTGluZSAke3RoaXMuZ2V0VmlzaWJsZUxpbmVSYW5nZSh3Lmxlbmd0aCl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6RmlsZVRleHQiPjwvZGVlcy1pY29uPgogICAgICAgICAgPHNwYW4+T3BlbiBOb3RlPC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgYH1nZXRUaWxlQ2xpY2tEZXRhaWwoKXtyZXR1cm57dGl0bGU6dGhpcy50aXRsZSxjb250ZW50OnRoaXMuY29udGVudCxsYW5ndWFnZTp0aGlzLmxhbmd1YWdlfX1vblRpbGVNb3VzZUVudGVyKCl7dGhpcy5pc0hvdmVyaW5nPSEwLHRoaXMubm90ZUJvZHlFbGVtZW50fHwodGhpcy5ub3RlQm9keUVsZW1lbnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubm90ZS1ib2R5IikpfW9uVGlsZU1vdXNlTGVhdmUoKXt0aGlzLmlzSG92ZXJpbmc9ITEsdGhpcy5ub3RlQm9keUVsZW1lbnQmJih0aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxUb3A9MCl9b25UaWxlTW91c2VNb3ZlKHcpe2lmKCF0aGlzLmlzSG92ZXJpbmd8fCF0aGlzLm5vdGVCb2R5RWxlbWVudHx8dGhpcy5jb250ZW50LnNwbGl0KGAKYCkubGVuZ3RoPD0xMilyZXR1cm47bGV0IE89dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx6PXcuY2xpZW50WC1PLmxlZnQsTT1NYXRoLm1heCgwLE1hdGgubWluKDEsei9PLndpZHRoKSksRj10aGlzLm5vdGVCb2R5RWxlbWVudC5zY3JvbGxIZWlnaHQtdGhpcy5ub3RlQm9keUVsZW1lbnQuY2xpZW50SGVpZ2h0O3RoaXMubm90ZUJvZHlFbGVtZW50LnNjcm9sbFRvcD1NKkZ9Z2V0VmlzaWJsZUxpbmVSYW5nZSh3KXtpZighdGhpcy5ub3RlQm9keUVsZW1lbnQpcmV0dXJuYDFcdTIwMTMxMiBvZiAke3d9YDtsZXQgaz0xNSxPPU1hdGguZmxvb3IodGhpcy5ub3RlQm9keUVsZW1lbnQuc2Nyb2xsVG9wL2spKzEsej1NYXRoLmZsb29yKHRoaXMubm90ZUJvZHlFbGVtZW50LmNsaWVudEhlaWdodC9rKSxNPU1hdGgubWluKE8rei0xLHcpO3JldHVybmAke099XHUyMDEzJHtNfSBvZiAke3d9YH1zdGF0aWN7X2MoaSxyKX19O3JldHVybiB5PWl9KSgpfSk7dmFyIGY2cj1wKCgpPT57aDZyKCl9KTt2YXIgbTZyLGc2cj1wKCgpPT57eGUoKTttNnI9KCk9PntsZXQgZT1be3R5cGU6ImltYWdlIixuYW1lOiJzdW5zZXQuanBnIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8yMDAvMjAwP3JhbmRvbT0xIn0se3R5cGU6ImltYWdlIixuYW1lOiJtb3VudGFpbi5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTIifSx7dHlwZToiaW1hZ2UiLG5hbWU6Im9jZWFuLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MyJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiZm9yZXN0LmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209NCJ9LHt0eXBlOiJpbWFnZSIsbmFtZToiY2l0eS5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTUifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImRlc2VydC5qcGciLHRodW1ibmFpbFNyYzoiaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzIwMC8yMDA/cmFuZG9tPTYifV07cmV0dXJuIENgCiAgICA8c3R5bGU+CiAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogICAgICB9CiAgICAgIC5kZW1vLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgIH0KICAgICAgaDMgewogICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgIH0KICAgICAgLnRpbGUtcm93IHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMjRweDsKICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5Gb2xkZXIgVGlsZXM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9IlBob3RvcyIKICAgICAgICAgICAgLml0ZW1zPSR7ZX0KICAgICAgICAgICAgbGFiZWw9IjYgcGhvdG9zIgogICAgICAgICAgICBAdGlsZS1jbGljaz0ke249PmNvbnNvbGUubG9nKCJGb2xkZXIgY2xpY2tlZDoiLG4uZGV0YWlsKX0KICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgbmFtZT0ibXktcHJvamVjdCIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJub3RlIixuYW1lOiJSRUFETUUubWQifSx7dHlwZToibm90ZSIsbmFtZToicGFja2FnZS5qc29uIn0se3R5cGU6ImZvbGRlciIsbmFtZToic3JjIn0se3R5cGU6ImZvbGRlciIsbmFtZToidGVzdCJ9LHt0eXBlOiJub3RlIixuYW1lOiJ0c2NvbmZpZy5qc29uIn0se3R5cGU6InBkZiIsbmFtZToiZG9jcy5wZGYifSx7dHlwZToiaW1hZ2UiLG5hbWU6ImxvZ28ucG5nIix0aHVtYm5haWxTcmM6Imh0dHBzOi8vcGljc3VtLnBob3Rvcy8xMDAvMTAwP3JhbmRvbT0xMCJ9XX0KICAgICAgICAgICAgbGFiZWw9IlByb2plY3QgZmlsZXMiCiAgICAgICAgICA+PC9kZWVzLXRpbGUtZm9sZGVyPgoKICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIG5hbWU9Ik1lZGlhIEFzc2V0cyIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJ2aWRlbyIsbmFtZToiaW50cm8ubXA0In0se3R5cGU6ImF1ZGlvIixuYW1lOiJiYWNrZ3JvdW5kLm1wMyJ9LHt0eXBlOiJpbWFnZSIsbmFtZToidGh1bWJuYWlsLmpwZyIsdGh1bWJuYWlsU3JjOiJodHRwczovL3BpY3N1bS5waG90b3MvMjAwLzIwMD9yYW5kb209MjAifSx7dHlwZToicGRmIixuYW1lOiJzdG9yeWJvYXJkLnBkZiJ9XX0KICAgICAgICAgICAgbGFiZWw9Ik1peGVkIG1lZGlhIgogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJkZW1vLXNlY3Rpb24iPgogICAgICAgIDxoMz5FZGdlIENhc2VzPC9oMz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLXJvdyI+CiAgICAgICAgICA8ZGVlcy10aWxlLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJFbXB0eSBGb2xkZXIiCiAgICAgICAgICAgIC5pdGVtcz0ke1tdfQogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KCiAgICAgICAgICA8ZGVlcy10aWxlLWZvbGRlcgogICAgICAgICAgICBuYW1lPSJTaW5nbGUgSXRlbSIKICAgICAgICAgICAgLml0ZW1zPSR7W3t0eXBlOiJwZGYiLG5hbWU6InJlcG9ydC5wZGYifV19CiAgICAgICAgICA+PC9kZWVzLXRpbGUtZm9sZGVyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImRlbW8tc2VjdGlvbiI+CiAgICAgICAgPGgzPlNpemUgVmFyaWFudHM8L2gzPgogICAgICAgIDxkaXYgY2xhc3M9InRpbGUtcm93Ij4KICAgICAgICAgIDxkZWVzLXRpbGUtZm9sZGVyCiAgICAgICAgICAgIHNpemU9InNtYWxsIgogICAgICAgICAgICBuYW1lPSJTbWFsbCIKICAgICAgICAgICAgLml0ZW1zPSR7ZX0KICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgbmFtZT0iRGVmYXVsdCIKICAgICAgICAgICAgLml0ZW1zPSR7ZX0KICAgICAgICAgID48L2RlZXMtdGlsZS1mb2xkZXI+CgogICAgICAgICAgPGRlZXMtdGlsZS1mb2xkZXIKICAgICAgICAgICAgc2l6ZT0ibGFyZ2UiCiAgICAgICAgICAgIG5hbWU9IkxhcmdlIgogICAgICAgICAgICAuaXRlbXM9JHtlfQogICAgICAgICAgPjwvZGVlcy10aWxlLWZvbGRlcj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICBgfX0pO3ZhciBTZGUscWIsYjZyLHY2cix4NnI9cCgoKT0+e3hlKCk7VjQoKTtUYygpO2c2cigpO1NkZT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LHFiPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxiNnI9e3BkZjoibHVjaWRlOkZpbGVUZXh0IixpbWFnZToibHVjaWRlOkltYWdlIixhdWRpbzoibHVjaWRlOk11c2ljIix2aWRlbzoibHVjaWRlOlZpZGVvIixub3RlOiJsdWNpZGU6RmlsZUNvZGUiLGZvbGRlcjoibHVjaWRlOkZvbGRlciIsdW5rbm93bjoibHVjaWRlOkZpbGUifSx2NnI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXRpbGUtZm9sZGVyIildLHQscj1bXSxpLGE9b24sbixvPVtdLHM9W10sbCxjPVtdLHU9W107dmFyIGQ9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBoPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6U3RyaW5nfSldLGw9W2ooe2F0dHJpYnV0ZTohMX0pXSxTZGUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJuYW1lIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4ibmFtZSJpbiBmLGdldDpmPT5mLm5hbWUsc2V0OihmLHgpPT57Zi5uYW1lPXh9fSxtZXRhZGF0YTpofSxvLHMpLFNkZSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Iml0ZW1zIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4iaXRlbXMiaW4gZixnZXQ6Zj0+Zi5pdGVtcyxzZXQ6KGYseCk9PntmLml0ZW1zPXh9fSxtZXRhZGF0YTpofSxjLHUpLFNkZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPW02cjtzdGF0aWMgZGVtb0dyb3Vwcz1bIk1lZGlhIl07c3RhdGljIHN0eWxlcz1bLi4uRmEsb2VgCiAgICAgIC5mb2xkZXItY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCg0MCAzMCUgOTclKSIsImhzbCgyMTUgMjAlIDE0JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZvbGRlci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHggOHB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZm9sZGVyLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCg0MCA4MCUgNTAlKSIsImhzbCg0MCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmZvbGRlci1uYW1lIHsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMjAlIDIwJSkiLCJoc2woMjE1IDE2JSA4MCUpIil9OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICBmbGV4OiAxOwogICAgICB9CgogICAgICAucHJldmlldy1ncmlkIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOwogICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDFmcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgICBwYWRkaW5nOiAwIDE0cHggMTRweDsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTUgMjAlIDk0JSkiLCJoc2woMjE1IDIwJSAxOCUpIil9OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCBpbWcgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLmdyaWQtY2VsbCBkZWVzLWljb24gewogICAgICAgIGZvbnQtc2l6ZTogMjBweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgMTYlIDYwJSkiLCJoc2woMjE1IDE2JSA1NSUpIil9OwogICAgICB9CgogICAgICAuZ3JpZC1jZWxsLWVtcHR5IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNSAxNSUgOTYlKSIsImhzbCgyMTUgMjAlIDE2JSkiKX07CiAgICAgIH0KCiAgICBgXTsjZT1xYih0aGlzLG8sIiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoaCl7dGhpcy4jZT1ofSN0PShxYih0aGlzLHMpLHFiKHRoaXMsYyxbXSkpO2dldCBpdGVtcygpe3JldHVybiB0aGlzLiN0fXNldCBpdGVtcyhoKXt0aGlzLiN0PWh9cmVuZGVyVGlsZUNvbnRlbnQoKXtsZXQgaD10aGlzLml0ZW1zLnNsaWNlKDAsNCksZj00LWgubGVuZ3RoO3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLWhlYWRlciI+CiAgICAgICAgICA8ZGVlcy1pY29uIGNsYXNzPSJmb2xkZXItaWNvbiIgaWNvbj0ibHVjaWRlOkZvbGRlciI+PC9kZWVzLWljb24+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xkZXItbmFtZSI+JHt0aGlzLm5hbWV8fCJVbnRpdGxlZCBGb2xkZXIifTwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJwcmV2aWV3LWdyaWQiPgogICAgICAgICAgJHtoLm1hcCh4PT5DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWNlbGwiPgogICAgICAgICAgICAgICR7eC50aHVtYm5haWxTcmM/Q2AKICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIke3gudGh1bWJuYWlsU3JjfSIgYWx0PSIke3gubmFtZX0iIC8+CiAgICAgICAgICAgICAgYDpDYAogICAgICAgICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSIke2I2clt4LnR5cGVdfHxiNnIudW5rbm93bn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgIGB9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCl9CiAgICAgICAgICAke0FycmF5LmZyb20oe2xlbmd0aDpmfSkubWFwKCgpPT5DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkLWNlbGwgZ3JpZC1jZWxsLWVtcHR5Ij48L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InRpbGUtYmFkZ2UtY29ybmVyIj4KICAgICAgICAke3RoaXMuaXRlbXMubGVuZ3RofSBpdGVtJHt0aGlzLml0ZW1zLmxlbmd0aCE9PTE/InMiOiIifQogICAgICA8L2Rpdj4KCiAgICAgICR7dGhpcy5jbGlja2FibGU/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJ0aWxlLW92ZXJsYXkiPgogICAgICAgICAgPGRlZXMtaWNvbiBpY29uPSJsdWNpZGU6Rm9sZGVyT3BlbiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5PcGVuIEZvbGRlcjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDoiIn0KICAgIGB9Z2V0VGlsZUNsaWNrRGV0YWlsKCl7cmV0dXJue25hbWU6dGhpcy5uYW1lLGl0ZW1Db3VudDp0aGlzLml0ZW1zLmxlbmd0aCxpdGVtczp0aGlzLml0ZW1zfX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cykscWIodGhpcyx1KX1zdGF0aWN7cWIoaSxyKX19O3JldHVybiBkPWl9KSgpfSk7dmFyIHk2cj1wKCgpPT57eDZyKCl9KTt2YXIgdzZyPXAoKCk9PntmM3IoKTt2M3IoKTtNM3IoKTskM3IoKTtGM3IoKTtWM3IoKTtVM3IoKTtXM3IoKTtHM3IoKTtZM3IoKTtLM3IoKTthNnIoKTtjNnIoKTtmNnIoKTt5NnIoKX0pO3ZhciBNNnI9cCgoKT0+e01pKCl9KTt2YXIgazZyPXAoKCk9PntJZCgpfSk7dmFyIFM2cix6NnI9cCgoKT0+e3hlKCk7UzZyPSgpPT5DYAogICAgPHN0eWxlPgogICAgICAucmVmMSB7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgIHdpZHRoOiAxMHB4OwogICAgICAgIGhlaWdodDogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8ZGl2IGNsYXNzPSJyZWYxIj48L2Rpdj4KICAgIDxkZWVzLXNwZWVjaGJ1YmJsZSAudGV4dD0ke2AKICAgICAgKipUaGlzIGlzIGEgbG9uZ2VyIG1hcmtkb3duIHRleHQgdGhhdCAgY2FuIGJlIHVzZWQgdGhlIHdyaXRlKiogIAogICAgICBhIGxvbmdlciBkZXNjcmlwdGlvbiBhYm91dCB3aGF0cyBnb2luZyBvbiB0aGUgYXBwICAKICAKICAgICAgKipUaGlzIGlzIGEgc3ViaGVhZGVyKioKICAgICAgYW5kIGFub3RoZXIgdGV4dAogICAgCiAgICBgfT48L2RlZXMtc3BlZWNoYnViYmxlPgogIGB9KTt2YXIgZmgsRjIsQzZyLFQ2cj1wKCgpPT57UG8oKTt3aSgpO3o2cigpO3hlKCk7cGMoKTtKZSgpO2ZoPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sRjI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LEM2cj0oKCk9PntsZXQgZT1beWUoImRlZXMtc3BlZWNoYnViYmxlIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6T2JqZWN0fSldLGw9W2ooe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sZD1baih7dHlwZTpCb29sZWFufSldLHg9W2ooe3R5cGU6Qm9vbGVhbn0pXSx5PVtqKHt0eXBlOlN0cmluZ30pXSxmaCh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6InJlZmZlZEVsZW1lbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJyZWZmZWRFbGVtZW50ImluIE0sZ2V0Ok09Pk0ucmVmZmVkRWxlbWVudCxzZXQ6KE0sRik9PntNLnJlZmZlZEVsZW1lbnQ9Rn19LG1ldGFkYXRhOnp9LG8scyksZmgodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0ZXh0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4idGV4dCJpbiBNLGdldDpNPT5NLnRleHQsc2V0OihNLEYpPT57TS50ZXh0PUZ9fSxtZXRhZGF0YTp6fSxjLHUpLGZoKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToid2F2ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+IndhdmUiaW4gTSxnZXQ6TT0+TS53YXZlLHNldDooTSxGKT0+e00ud2F2ZT1GfX0sbWV0YWRhdGE6en0saCxmKSxmaCh0aGlzLG51bGwseCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1hbmlmZXN0ZWQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJtYW5pZmVzdGVkImluIE0sZ2V0Ok09Pk0ubWFuaWZlc3RlZCxzZXQ6KE0sRik9PntNLm1hbmlmZXN0ZWQ9Rn19LG1ldGFkYXRhOnp9LHYsYiksZmgodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzdGF0dXMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJzdGF0dXMiaW4gTSxnZXQ6TT0+TS5zdGF0dXMsc2V0OihNLEYpPT57TS5zdGF0dXM9Rn19LG1ldGFkYXRhOnp9LHcsayksZmgobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6en0sbnVsbCxyKSxPPWk9dC52YWx1ZSx6JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnp9KX1zdGF0aWMgZGVtbz1TNnI7c3RhdGljIGRlbW9Hcm91cHM9WyJPdmVybGF5Il07c3RhdGljIGFzeW5jIGNyZWF0ZUFuZFNob3coeixNKXtsZXQgRj1hd2FpdCAkby5jcmVhdGVBbmRTaG93KHtibHVyOiExfSksRD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXNwZWVjaGJ1YmJsZSIpO3JldHVybiBELndpbmRvd0xheWVyPUYsRC5yZWZmZWRFbGVtZW50PXosRC50ZXh0PU0sRC5tYW5pZmVzdGVkPSEwLEYuYXBwZW5kQ2hpbGQoRCksRi5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixGLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLndpbmRvd092ZXJsYXkiKS5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixEfSNlPUYyKHRoaXMsbyx2b2lkIDApO2dldCByZWZmZWRFbGVtZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IHJlZmZlZEVsZW1lbnQoeil7dGhpcy4jZT16fSN0PShGMih0aGlzLHMpLEYyKHRoaXMsYyx2b2lkIDApKTtnZXQgdGV4dCgpe3JldHVybiB0aGlzLiN0fXNldCB0ZXh0KHope3RoaXMuI3Q9en0jcj0oRjIodGhpcyx1KSxGMih0aGlzLGgsITEpKTtnZXQgd2F2ZSgpe3JldHVybiB0aGlzLiNyfXNldCB3YXZlKHope3RoaXMuI3I9en0jaT0oRjIodGhpcyxmKSxGMih0aGlzLHYsITEpKTtnZXQgbWFuaWZlc3RlZCgpe3JldHVybiB0aGlzLiNpfXNldCBtYW5pZmVzdGVkKHope3RoaXMuI2k9en0jYT0oRjIodGhpcyxiKSxGMih0aGlzLHcsIm5vcm1hbCIpKTtnZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHN0YXR1cyh6KXt0aGlzLiNhPXp9d2luZG93TGF5ZXI9RjIodGhpcyxrKTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICAvKiBUT0RPOiBNaWdyYXRlIGhhcmRjb2RlZCB2YWx1ZXMgdG8gLS1kZWVzLSogQ1NTIHZhcmlhYmxlcyAqLwogICAgICA6aG9zdCB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMzMzMiLCIjZmZmIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07CiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDsKICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAwcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSk7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgICAgfQoKICAgICAgLmFycm93IHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBoZWlnaHQ6IDE1cHg7CiAgICAgICAgd2lkdGg6IDE1cHg7CiAgICAgICAgbGVmdDogMnB4OwogICAgICAgIHRvcDogMTJweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC5zcGVlY2hidWJibGUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmIiwiIzMzMyIpfTsKICAgICAgICBwYWRkaW5nOiAwcHggMTZweDsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG1pbi13aWR0aDogMjQwcHg7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDhweDsKICAgICAgfQoKICAgICAgLndhdmUgewogICAgICAgIGFuaW1hdGlvbi1uYW1lOiB3YXZlLWFuaW1hdGlvbjsgLyogUmVmZXJzIHRvIHRoZSBuYW1lIG9mIHlvdXIgQGtleWZyYW1lcyBlbGVtZW50IGJlbG93ICovCiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyLjVzOyAvKiBDaGFuZ2UgdG8gc3BlZWQgdXAgb3Igc2xvdyBkb3duICovCiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IC8qIE5ldmVyIHN0b3Agd2F2aW5nIDopICovCiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNzAlIDcwJTsgLyogUGl2b3QgYXJvdW5kIHRoZSBib3R0b20tbGVmdCBwYWxtICovCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHdhdmUtYW5pbWF0aW9uIHsKICAgICAgICAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgICAgMTAlIHsKICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE0ZGVnKTsKICAgICAgICB9IC8qIFRoZSBmb2xsb3dpbmcgZml2ZSB2YWx1ZXMgY2FuIGJlIHBsYXllZCB3aXRoIHRvIG1ha2UgdGhlIHdhdmluZyBtb3JlIG9yIGxlc3MgZXh0cmVtZSAqLwogICAgICAgIDIwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOGRlZyk7CiAgICAgICAgfQogICAgICAgIDMwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNGRlZyk7CiAgICAgICAgfQogICAgICAgIDQwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNGRlZyk7CiAgICAgICAgfQogICAgICAgIDUwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMGRlZyk7CiAgICAgICAgfQogICAgICAgIDYwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9IC8qIFJlc2V0IGZvciB0aGUgbGFzdCBoYWxmIHRvIHBhdXNlICovCiAgICAgICAgMTAwJSB7CiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICAgICAgICB9CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICAke3RoaXMubWFuaWZlc3RlZD9DYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIiBAY2xpY2s9JHt0aGlzLmhhbmRsZUNsaWNrfT4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BlZWNoYnViYmxlIj4KICAgICAgICAgICAgICAgICR7dGhpcy53YXZlP0NgPHNwYW4gY2xhc3M9IndhdmUiPvCfkYs8L3NwYW4+YDpDYGB9CiAgICAgICAgICAgICAgICAke0VvLnJlc29sdmUodGhpcy5nZXRIdG1sKCkpfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGA6Q2BgfQogICAgYH1hc3luYyBoYW5kbGVDbGljaygpe2NvbnNvbGUubG9nKCJzcGVlY2hidWJibGUgZ290IGNsaWNrZWQuIil9YXN5bmMgZmlyc3RVcGRhdGVkKCl7aWYodGhpcy5yZWZmZWRFbGVtZW50fHwodGhpcy5yZWZmZWRFbGVtZW50PXRoaXMucHJldmlvdXNFbGVtZW50U2libGluZyksdGhpcy5tYW5pZmVzdGVkKWF3YWl0IHRoaXMudXBkYXRlUG9zaXRpb24oKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKS5zdHlsZS5vcGFjaXR5PSIxIjtlbHNle2xldCB6O3RoaXMucmVmZmVkRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixhc3luYygpPT57ej1hd2FpdCBPLmNyZWF0ZUFuZFNob3codGhpcy5yZWZmZWRFbGVtZW50LHRoaXMudGV4dCl9KSx0aGlzLnJlZmZlZEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsKCk9Pnt6LmRlc3Ryb3koKX0pfX1hc3luYyB1cGRhdGVQb3NpdGlvbigpe2xldCB6PXRoaXMucmVmZmVkRWxlbWVudCxNPXouZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLHRoaXMuc3R5bGUudG9wPWAke00udG9wLTEzfXB4YCx0aGlzLnN0eWxlLmxlZnQ9YCR7TS5sZWZ0K3ouY2xpZW50V2lkdGgrNH1weGAsTS5yaWdodD4yNTAmJih0aGlzLnN0eWxlLndpZHRoPSIyNTBweCIpfWFzeW5jIGdldEh0bWwoKXtpZighdGhpcy50ZXh0KXJldHVybiIiO2xldCB6PWt0LnBsdWdpbnMuc21hcnRzdHJpbmcubm9ybWFsaXplLnN0YW5kYXJkKHRoaXMudGV4dCksTT1hd2FpdCBrdC5wbHVnaW5zLnNtYXJ0bWFya2Rvd24uU21hcnRNYXJrZG93bi5lYXN5TWFya2Rvd25Ub0h0bWwoeik7cmV0dXJuIGRBKE0pfWFzeW5jIHNob3coKXt9YXN5bmMgZGVzdHJveSgpe3RoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubWFpbmNvbnRhaW5lciIpLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMud2luZG93TGF5ZXIuZGVzdHJveSgpfXN0YXRpY3tGMihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgXzZyPXAoKCk9PntUNnIoKX0pO3ZhciBMNnI9cCgoKT0+e3BjKCl9KTt2YXIgQTZyPXAoKCk9PntNNnIoKTtrNnIoKTtfNnIoKTtMNnIoKX0pO3ZhciBENnI9cCgoKT0+e30pO3ZhciBFNnI9cCgoKT0+e0Q2cigpfSk7dmFyICQ2cixzRixsRix6ZGUsSTZyLGNGLGRGLHVGLHBGPXAoKCk9PnskNnI9Imh0dHBzOi8vc3RhY2tibGl0ei5jb20iLHNGPSJjb2RlIixsRj0iZXJyb3IiLHpkZT0iZXJyb3JfZGVzY3JpcHRpb24iLEk2cj0iX193Y19hcGlfYmNfXyIsY0Y9Il9fd2NfYXBpX3Rva2Vuc19fIixkRj0iX193Y19hcGlfdmVyaWZpZXJfXyIsdUY9Il9fd2NfYXBpX3BvcHVwX18ifSk7dmFyIEpkLENkZT1wKCgpPT57SmQ9Y2xhc3N7X2J1cz1uZXcgRXZlbnRUYXJnZXQ7bGlzdGVuKHQpe2Z1bmN0aW9uIHIoaSl7dChpLmRhdGEpfXJldHVybiB0aGlzLl9idXMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksKCk9PnRoaXMuX2J1cy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKX1maXJlRXZlbnQodCl7dGhpcy5fYnVzLmRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgibWVzc2FnZSIse2RhdGE6dH0pKX19fSk7ZnVuY3Rpb24gaEYoKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShjRil9ZnVuY3Rpb24gUjZyKGUpe3JldHVybiBONnIubGlzdGVuKGUpfWZ1bmN0aW9uIE1Ycigpe2xldCBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGNGKTtpZighZSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGtYcihlKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShjRixKU09OLnN0cmluZ2lmeShlKSl9ZnVuY3Rpb24gRjZyKHtjcmVhdGVkX2F0OmUsZXhwaXJlc19pbjp0fSl7cmV0dXJuKGUrdCkqMWUzfWZ1bmN0aW9uIE82cihlKXtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fCFlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBUb2tlbiBSZXNwb25zZSIpO2lmKHR5cGVvZiBlLmFjY2Vzc190b2tlbiE9InN0cmluZyJ8fHR5cGVvZiBlLnJlZnJlc2hfdG9rZW4hPSJzdHJpbmcifHx0eXBlb2YgZS5jcmVhdGVkX2F0IT0ibnVtYmVyInx8dHlwZW9mIGUuZXhwaXJlc19pbiE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFRva2VuIFJlc3BvbnNlIil9ZnVuY3Rpb24gU1hyKGUpe3JldHVybiBuZXcgUHJvbWlzZSh0PT5zZXRUaW1lb3V0KHQsZSkpfWZ1bmN0aW9uIHpYcihlKXtONnIuZmlyZUV2ZW50KGUpfXZhciBQNnIsTjZyLG1oLFRkZT1wKCgpPT57cEYoKTtDZGUoKTtQNnI9bmV3IEVycm9yO1A2ci5zdGFjaz0iIjtONnI9bmV3IEpkLG1oPWNsYXNzIGV7b3JpZ2luO3JlZnJlc2g7YWNjZXNzO2V4cGlyZXM7X3Jldm9rZWQ9bmV3IEFib3J0Q29udHJvbGxlcjtjb25zdHJ1Y3Rvcih0LHIsaSxhKXt0aGlzLm9yaWdpbj10LHRoaXMucmVmcmVzaD1yLHRoaXMuYWNjZXNzPWksdGhpcy5leHBpcmVzPWF9YXN5bmMgYWN0aXZhdGUodCl7aWYodGhpcy5fcmV2b2tlZC5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgRXJyb3IoIlRva2VuIHJldm9rZWQiKTtyZXR1cm4gdGhpcy5leHBpcmVzPERhdGUubm93KCkmJiFhd2FpdCB0aGlzLl9mZXRjaE5ld0FjY2Vzc1Rva2VuKCk/ITE6KHRoaXMuX3N5bmMoKSx0aGlzLl9zdGFydFJlZnJlc2hUb2tlbnNMb29wKHQpLCEwKX1hc3luYyByZXZva2UodCxyKXt0aGlzLl9yZXZva2VkLmFib3J0KCk7dHJ5e2lmKCEoYXdhaXQgZmV0Y2goYCR7dGhpcy5vcmlnaW59L29hdXRoL3Jldm9rZWAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyh7dG9rZW46dGhpcy5yZWZyZXNoLHRva2VuX3R5cGVfaGludDoicmVmcmVzaF90b2tlbiIsY2xpZW50X2lkOnR9KSxtb2RlOiJjb3JzIn0pKS5vayl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2dvdXQiKX1jYXRjaChpKXtpZighcil0aHJvdyBpfWhGKCl9c3RhdGljIGZyb21TdG9yYWdlKCl7bGV0IHQ9TVhyKCk7cmV0dXJuIHQ/bmV3IGUodC5vcmlnaW4sdC5yZWZyZXNoLHQuYWNjZXNzLHQuZXhwaXJlcyk6bnVsbH1zdGF0aWMgYXN5bmMgZnJvbUF1dGhDb2RlKHtlZGl0b3JPcmlnaW46dCxjbGllbnRJZDpyLGNvZGVWZXJpZmllcjppLGF1dGhDb2RlOmEscmVkaXJlY3RVcmk6bn0pe2xldCBvPWF3YWl0IGZldGNoKGAke3R9L29hdXRoL3Rva2VuYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKHtjbGllbnRfaWQ6cixjb2RlOmEsY29kZV92ZXJpZmllcjppLGdyYW50X3R5cGU6ImF1dGhvcml6YXRpb25fY29kZSIscmVkaXJlY3RfdXJpOm59KSxtb2RlOiJjb3JzIn0pO2lmKCFvLm9rKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIHRva2VuOiAke28uc3RhdHVzfWApO2xldCBzPWF3YWl0IG8uanNvbigpO082cihzKTtsZXR7YWNjZXNzX3Rva2VuOmwscmVmcmVzaF90b2tlbjpjfT1zLHU9RjZyKHMpO3JldHVybiBuZXcgZSh0LGMsbCx1KX1hc3luYyBfZmV0Y2hOZXdBY2Nlc3NUb2tlbigpe3RyeXtsZXQgdD1hd2FpdCBmZXRjaChgJHt0aGlzLm9yaWdpbn0vb2F1dGgvdG9rZW5gLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoe2dyYW50X3R5cGU6InJlZnJlc2hfdG9rZW4iLHJlZnJlc2hfdG9rZW46dGhpcy5yZWZyZXNofSksbW9kZToiY29ycyIsc2lnbmFsOnRoaXMuX3Jldm9rZWQuc2lnbmFsfSk7aWYoIXQub2spdGhyb3cgUDZyO2xldCByPWF3YWl0IHQuanNvbigpO082cihyKTtsZXR7YWNjZXNzX3Rva2VuOmkscmVmcmVzaF90b2tlbjphfT1yLG49RjZyKHIpO3JldHVybiB0aGlzLmFjY2Vzcz1pLHRoaXMuZXhwaXJlcz1uLHRoaXMucmVmcmVzaD1hLCEwfWNhdGNoe3JldHVybiBoRigpLCExfX1fc3luYygpe2tYcih0aGlzKSx6WHIodGhpcy5hY2Nlc3MpfWFzeW5jIF9zdGFydFJlZnJlc2hUb2tlbnNMb29wKHQpe2Zvcig7Oyl7bGV0IHI9dGhpcy5leHBpcmVzLURhdGUubm93KCktMWUzO2lmKGF3YWl0IFNYcihNYXRoLm1heChyLDFlMykpLHRoaXMuX3Jldm9rZWQuc2lnbmFsLmFib3J0ZWQpcmV0dXJuO2lmKCF0aGlzLl9mZXRjaE5ld0FjY2Vzc1Rva2VuKCkpe3QoKTtyZXR1cm59dGhpcy5fc3luYygpfX19fSk7dmFyIF9kZSxmRixMYyxMZGU9cCgoKT0+e3BGKCk7X2RlPXt9LGZGPW51bGwsTGM9e2dldCBlZGl0b3JPcmlnaW4oKXtyZXR1cm4gZkY9PW51bGwmJihmRj1uZXcgVVJMKGdsb2JhbFRoaXMuV0VCQ09OVEFJTkVSX0FQSV9JRlJBTUVfVVJMPz8kNnIpLm9yaWdpbiksZkZ9LHNldCBlZGl0b3JPcmlnaW4oZSl7ZkY9bmV3IFVSTChlKS5vcmlnaW59LHNldFF1ZXJ5UGFyYW0oZSx0KXtfZGVbZV09dH0sZ2V0IHVybCgpe2xldCBlPW5ldyBVUkwodGhpcy5lZGl0b3JPcmlnaW4pO2UucGF0aG5hbWU9Ii9oZWFkbGVzcyI7Zm9yKGxldCB0IGluIF9kZSllLnNlYXJjaFBhcmFtcy5zZXQodCxfZGVbdF0pO3JldHVybiBlLnNlYXJjaFBhcmFtcy5zZXQoInZlcnNpb24iLCIxLjYuMSIpLGV9fX0pO2FzeW5jIGZ1bmN0aW9uIEI2cihlKXtsZXQgdD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZSkscj1uZXcgVWludDhBcnJheShhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsdCkpO3JldHVybiBidG9hKHIucmVkdWNlKChpLGEpPT5pK1N0cmluZy5mcm9tQ29kZVBvaW50KGEpLCIiKSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBINnIoKXtsZXQgZT1uZXcgVWludDhBcnJheSg5Nik7Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhlKTtsZXQgdD0iIjtmb3IobGV0IHI9MDtyPDMyOysrcil0Kz1DWHIoZVszKnIrMF0sZVszKnIrMV0sZVszKnIrMl0pO3JldHVybiB0fWZ1bmN0aW9uIENYcihlLHQscil7bGV0IGk9ZT4+MixhPShlJjMpPDw0fHQ+PjQsbj10JjE1fChyJjE5Mik+PjIsbz1yJjYzO3JldHVybltpLGEsbixvXS5tYXAoVFhyKS5qb2luKCIiKX1mdW5jdGlvbiBUWHIoZSl7bGV0IHQ7cmV0dXJuIGU8MjY/dD1lKzY1OmU8NTI/dD1lLTI2Kzk3OmU8NjI/dD1lLTUyKzQ4OnQ9ZT09PTYyPzMwOjQ1LFN0cmluZy5mcm9tQ2hhckNvZGUodCl9dmFyIHE2cj1wKCgpPT57fSk7ZnVuY3Rpb24gajZyKCl7bGV0IGUsdDtmdW5jdGlvbiByKCl7dD1uZXcgUHJvbWlzZShpPT5lPWkpfXJldHVybiByKCkse2dldCBwcm9taXNlKCl7cmV0dXJuIHR9LHJlc29sdmUoaSl7cmV0dXJuIGUoaSl9LHJlc2V0OnJ9fXZhciBWNnI9cCgoKT0+e30pO2Z1bmN0aW9uIGpiKGUpe050LmJyb2FkY2FzdENoYW5uZWwmJihOdC5icm9hZGNhc3RDaGFubmVsLnBvc3RNZXNzYWdlKGUpLGxvY2FsU3RvcmFnZS5nZXRJdGVtKHVGKT09PSJ0cnVlIiYmZS50eXBlIT09ImF1dGgtbG9nb3V0IiYmKGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHVGKSxzZXRUaW1lb3V0KCgpPT57d2luZG93LmNsb3NlKCl9KSkpfWZ1bmN0aW9uIEFkZSgpe0tkLmZpcmVFdmVudCgpLGpiKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX1mdW5jdGlvbiBXNnIoKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWZ9YXN5bmMgZnVuY3Rpb24gRzZyKCl7bGV0IGU9SDZyKCk7bG9jYWxTdG9yYWdlLnNldEl0ZW0oZEYsZSk7bGV0IHQ9YXdhaXQgQjZyKGUpLHI9bmV3IFVSTCgiL29hdXRoL2F1dGhvcml6ZSIsTnQuZWRpdG9yT3JpZ2luKSx7c2VhcmNoUGFyYW1zOml9PXI7cmV0dXJuIGkuYXBwZW5kKCJyZXNwb25zZV90eXBlIiwiY29kZSIpLGkuYXBwZW5kKCJjbGllbnRfaWQiLE50LmNsaWVudElkKSxpLmFwcGVuZCgicmVkaXJlY3RfdXJpIixXNnIoKSksaS5hcHBlbmQoInNjb3BlIixOdC5vYXV0aFNjb3BlKSxpLmFwcGVuZCgiY29kZV9jaGFsbGVuZ2UiLHQpLGkuYXBwZW5kKCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiLCJTMjU2Iiksci50b1N0cmluZygpfWZ1bmN0aW9uIERkZShlKXtpZighZSl0aHJvdyBuZXcgRXJyb3IoIk9vcHMhIFRva2VucyBpcyBub3QgZGVmaW5lZCB3aGVuIGl0IGFsd2F5cyBzaG91bGQgYmUuIil9dmFyIE50LFU2cixLZCxZNnIsRWRlPXAoKCk9PntUZGUoKTtwRigpO0xkZSgpO3E2cigpO1Y2cigpO0NkZSgpO050PXtpbml0aWFsaXplZDohMSxib290Q2FsbGVkOiExLGF1dGhDb21wbGV0ZTpqNnIoKSxjbGllbnRJZDoiIixvYXV0aFNjb3BlOiIiLGJyb2FkY2FzdENoYW5uZWw6bnVsbCxnZXQgZWRpdG9yT3JpZ2luKCl7cmV0dXJuIExjLmVkaXRvck9yaWdpbn0sdG9rZW5zOm51bGx9LFU2cj1uZXcgSmQsS2Q9bmV3IEpkO1k2cj17aW5pdCh7ZWRpdG9yT3JpZ2luOmUsY2xpZW50SWQ6dCxzY29wZTpyfSl7aWYoTnQuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJJbml0IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlIik7aWYoITAmJk50LmJvb3RDYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJgYXV0aC5pbml0YCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBiZWZvcmUgYFdlYkNvbnRhaW5lci5ib290YCIpO050LmluaXRpYWxpemVkPSEwLE50LnRva2Vucz1taC5mcm9tU3RvcmFnZSgpLE50LmNsaWVudElkPXQsTnQub2F1dGhTY29wZT1yLE50LmJyb2FkY2FzdENoYW5uZWw9bmV3IEJyb2FkY2FzdENoYW5uZWwoSTZyKSxMYy5zZXRRdWVyeVBhcmFtKCJjbGllbnRfaWQiLHQpLGUmJihMYy5lZGl0b3JPcmlnaW49bmV3IFVSTChlKS5vcmlnaW4pLEtkLmxpc3RlbigoKT0+TnQuYXV0aENvbXBsZXRlLnJlc2V0KCkpLE50LmJyb2FkY2FzdENoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYSk7YXN5bmMgZnVuY3Rpb24gYShsKXtsZXQgYz1sLmRhdGE7aWYoYy50eXBlPT09ImF1dGgtY29tcGxldGUiKXtOdC50b2tlbnM9bWguZnJvbVN0b3JhZ2UoKSxhd2FpdCBOdC50b2tlbnMuYWN0aXZhdGUoQWRlKSxOdC5hdXRoQ29tcGxldGUucmVzb2x2ZSgpO3JldHVybn1pZihjLnR5cGU9PT0iYXV0aC1mYWlsZWQiKXtVNnIuZmlyZUV2ZW50KGMpO3JldHVybn1pZihjLnR5cGU9PT0iYXV0aC1sb2dvdXQiKXtLZC5maXJlRXZlbnQoKTtyZXR1cm59fWlmKE50LnRva2Vucyl7bGV0IGw9TnQudG9rZW5zO2lmKGwub3JpZ2luPT09TnQuZWRpdG9yT3JpZ2luKXJldHVybihhc3luYygpPT57aWYoIWF3YWl0IGwuYWN0aXZhdGUoQWRlKSl7aWYoTnQudG9rZW5zIT09bClyZXR1cm47S2QuZmlyZUV2ZW50KCk7cmV0dXJufU50LmF1dGhDb21wbGV0ZS5yZXNvbHZlKCl9KSgpLHtzdGF0dXM6ImF1dGhvcml6ZWQifTtoRigpLE50LnRva2Vucz1udWxsfWxldCBuPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLHtzZWFyY2hQYXJhbXM6b309bixzPSgpPT53aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsbik7aWYoby5oYXMobEYpKXtsZXQgbD1vLmdldChsRiksYz1vLmdldCh6ZGUpO3JldHVybiBvLmRlbGV0ZShsRiksby5kZWxldGUoemRlKSxzKCksamIoe3R5cGU6ImF1dGgtZmFpbGVkIixlcnJvcjpsLGRlc2NyaXB0aW9uOmN9KSx7c3RhdHVzOiJhdXRoLWZhaWxlZCIsZXJyb3I6bCxkZXNjcmlwdGlvbjpjfX1pZihvLmhhcyhzRikpe2xldCBsPW8uZ2V0KHNGKSxjPU50LmVkaXRvck9yaWdpbjtvLmRlbGV0ZShzRikscygpO2xldCB1PWxvY2FsU3RvcmFnZS5nZXRJdGVtKGRGKTtyZXR1cm4gdT8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZEYpLG1oLmZyb21BdXRoQ29kZSh7ZWRpdG9yT3JpZ2luOmMsY2xpZW50SWQ6TnQuY2xpZW50SWQsYXV0aENvZGU6bCxjb2RlVmVyaWZpZXI6dSxyZWRpcmVjdFVyaTpXNnIoKX0pLnRoZW4oYXN5bmMgZD0+e2lmKE50LnRva2Vucz1kLERkZShOdC50b2tlbnMpLCFhd2FpdCBOdC50b2tlbnMuYWN0aXZhdGUoQWRlKSl0aHJvdyBuZXcgRXJyb3I7TnQuYXV0aENvbXBsZXRlLnJlc29sdmUoKSxqYih7dHlwZToiYXV0aC1jb21wbGV0ZSJ9KX0pLmNhdGNoKGQ9Pntjb25zb2xlLmVycm9yKGQpLEtkLmZpcmVFdmVudCgpLGpiKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX0pLHtzdGF0dXM6ImF1dGhvcml6ZWQifSk6e3N0YXR1czoibmVlZC1hdXRoIn19cmV0dXJue3N0YXR1czoibmVlZC1hdXRoIn19LGFzeW5jIHN0YXJ0QXV0aEZsb3coe3BvcHVwOmV9PXt9KXtpZighTnQuaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJhdXRoLmluaXQgbXVzdCBiZSBjYWxsZWQgZmlyc3QiKTtpZihlKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh1RiwidHJ1ZSIpO2xldCB0PTUwMCxyPTYyMCxpPXdpbmRvdy5zY3JlZW5MZWZ0Kyh3aW5kb3cub3V0ZXJXaWR0aC1yKS8yLGE9d2luZG93LnNjcmVlblRvcCsod2luZG93Lm91dGVySGVpZ2h0LXQpLzI7d2luZG93Lm9wZW4oYXdhaXQgRzZyKCksIl9ibGFuayIsYHBvcHVwLHdpZHRoPSR7cn0saGVpZ2h0PSR7dH0sbGVmdD0ke2l9LHRvcD0ke2F9YCl9ZWxzZSB3aW5kb3cubG9jYXRpb24uaHJlZj1hd2FpdCBHNnIoKX0sYXN5bmMgbG9nb3V0KHtpZ25vcmVSZXZva2VFcnJvcjplfT17fSl7YXdhaXQgTnQudG9rZW5zPy5yZXZva2UoTnQuY2xpZW50SWQsZT8/ITEpLEtkLmZpcmVFdmVudCgpLGpiKHt0eXBlOiJhdXRoLWxvZ291dCJ9KX0sbG9nZ2VkSW4oKXtyZXR1cm4gTnQuYXV0aENvbXBsZXRlLnByb21pc2V9LG9uKGUsdCl7c3dpdGNoKGUpe2Nhc2UiYXV0aC1mYWlsZWQiOnJldHVybiBVNnIubGlzdGVuKHQpO2Nhc2UibG9nZ2VkLW91dCI6cmV0dXJuIEtkLmxpc3Rlbih0KTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZXZlbnQgdHlwZSAnJHtlfScuYCl9fX19KTt2YXIgQWMsbUY9cCgoKT0+eyhmdW5jdGlvbihlKXtlLlVuY2F1Z2h0RXhjZXB0aW9uPSJQUkVWSUVXX1VOQ0FVR0hUX0VYQ0VQVElPTiIsZS5VbmhhbmRsZWRSZWplY3Rpb249IlBSRVZJRVdfVU5IQU5ETEVEX1JFSkVDVElPTiIsZS5Db25zb2xlRXJyb3I9IlBSRVZJRVdfQ09OU09MRV9FUlJPUiJ9KShBY3x8KEFjPXt9KSl9KTtmdW5jdGlvbiBOZGUoZSx0PXNlbGYpe3QuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gcihpKXtpZighaXx8IWkuZGF0YSlyZXR1cm47bGV0e2lkOmEsdHlwZTpuLHBhdGg6b309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0saS5kYXRhKSxzPShpLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKGU1KSxsO3RyeXtsZXQgYz1vLnNsaWNlKDAsLTEpLnJlZHVjZSgoZCxoKT0+ZFtoXSxlKSx1PW8ucmVkdWNlKChkLGgpPT5kW2hdLGUpO3N3aXRjaChuKXtjYXNlIDA6bD11O2JyZWFrO2Nhc2UgMTpjW28uc2xpY2UoLTEpWzBdXT1lNShpLmRhdGEudmFsdWUpLGw9ITA7YnJlYWs7Y2FzZSAyOmw9dS5hcHBseShjLHMpO2JyZWFrO2Nhc2UgMzp7bGV0IGQ9bmV3IHUoLi4ucyk7bD1pZHIoZCl9YnJlYWs7Y2FzZSA0OntsZXR7cG9ydDE6ZCxwb3J0MjpofT1uZXcgTWVzc2FnZUNoYW5uZWw7TmRlKGUsaCksbD1yZHIoZCxbZF0pfWJyZWFrO2Nhc2UgNTpsPXZvaWQgMDticmVha319Y2F0Y2goYyl7bD17dmFsdWU6YyxbSWRlXTowfX1Qcm9taXNlLnJlc29sdmUobCkuY2F0Y2goYz0+KHt2YWx1ZTpjLFtJZGVdOjB9KSkudGhlbihjPT57bGV0W3UsZF09T2RlKGMpO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHUpLHtpZDphfSksZCksbj09PTUmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHIpLEo2cih0KSl9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBFWHIoZSl7cmV0dXJuIGUuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gSjZyKGUpe0VYcihlKSYmZS5jbG9zZSgpfWZ1bmN0aW9uIEs2cihlLHQpe3JldHVybiBGZGUoZSxbXSx0KX1mdW5jdGlvbiBnRihlKXtpZihlKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gRmRlKGUsdD1bXSxyPWZ1bmN0aW9uKCl7fSl7bGV0IGk9ITEsYT1uZXcgUHJveHkocix7Z2V0KG4sbyl7aWYoZ0YoaSksbz09PVg2cilyZXR1cm4oKT0+Z2goZSx7dHlwZTo1LHBhdGg6dC5tYXAocz0+cy50b1N0cmluZygpKX0pLnRoZW4oKCk9PntKNnIoZSksaT0hMH0pO2lmKG89PT0idGhlbiIpe2lmKHQubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+YX07bGV0IHM9Z2goZSx7dHlwZTowLHBhdGg6dC5tYXAobD0+bC50b1N0cmluZygpKX0pLnRoZW4oZTUpO3JldHVybiBzLnRoZW4uYmluZChzKX1yZXR1cm4gRmRlKGUsWy4uLnQsb10pfSxzZXQobixvLHMpe2dGKGkpO2xldFtsLGNdPU9kZShzKTtyZXR1cm4gZ2goZSx7dHlwZToxLHBhdGg6Wy4uLnQsb10ubWFwKHU9PnUudG9TdHJpbmcoKSksdmFsdWU6bH0sYykudGhlbihlNSl9LGFwcGx5KG4sbyxzKXtnRihpKTtsZXQgbD10W3QubGVuZ3RoLTFdO2lmKGw9PT1aNnIpcmV0dXJuIGdoKGUse3R5cGU6NH0pLnRoZW4oZTUpO2lmKGw9PT0iYmluZCIpcmV0dXJuIEZkZShlLHQuc2xpY2UoMCwtMSkpO2xldFtjLHVdPWVkcihzKTtyZXR1cm4gZ2goZSx7dHlwZToyLHBhdGg6dC5tYXAoZD0+ZC50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Y30sdSkudGhlbihlNSl9LGNvbnN0cnVjdChuLG8pe2dGKGkpO2xldFtzLGxdPWVkcihvKTtyZXR1cm4gZ2goZSx7dHlwZTozLHBhdGg6dC5tYXAoYz0+Yy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6c30sbCkudGhlbihlNSl9fSk7cmV0dXJuIGF9ZnVuY3Rpb24gJFhyKGUpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGUpfWZ1bmN0aW9uIGVkcihlKXtsZXQgdD1lLm1hcChPZGUpO3JldHVyblt0Lm1hcChyPT5yWzBdKSwkWHIodC5tYXAocj0+clsxXSkpXX1mdW5jdGlvbiByZHIoZSx0KXtyZXR1cm4gdGRyLnNldChlLHQpLGV9ZnVuY3Rpb24gaWRyKGUpe3JldHVybiBPYmplY3QuYXNzaWduKGUse1skZGVdOiEwfSl9ZnVuY3Rpb24gSVhyKGUsdD1zZWxmLHI9IioiKXtyZXR1cm57cG9zdE1lc3NhZ2U6KGksYSk9PmUucG9zdE1lc3NhZ2UoaSxyLGEpLGFkZEV2ZW50TGlzdGVuZXI6dC5hZGRFdmVudExpc3RlbmVyLmJpbmQodCkscmVtb3ZlRXZlbnRMaXN0ZW5lcjp0LnJlbW92ZUV2ZW50TGlzdGVuZXIuYmluZCh0KX19ZnVuY3Rpb24gT2RlKGUpe2ZvcihsZXRbdCxyXW9mIFBkZSlpZihyLmNhbkhhbmRsZShlKSl7bGV0W2ksYV09ci5zZXJpYWxpemUoZSk7cmV0dXJuW3t0eXBlOjMsbmFtZTp0LHZhbHVlOml9LGFdfXJldHVyblt7dHlwZTowLHZhbHVlOmV9LHRkci5nZXQoZSl8fFtdXX1mdW5jdGlvbiBlNShlKXtzd2l0Y2goZS50eXBlKXtjYXNlIDM6cmV0dXJuIFBkZS5nZXQoZS5uYW1lKS5kZXNlcmlhbGl6ZShlLnZhbHVlKTtjYXNlIDA6cmV0dXJuIGUudmFsdWV9fWZ1bmN0aW9uIGdoKGUsdCxyKXtyZXR1cm4gbmV3IFByb21pc2UoaT0+e2xldCBhPVBYcigpO2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gbihvKXshby5kYXRhfHwhby5kYXRhLmlkfHxvLmRhdGEuaWQhPT1hfHwoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKSxpKG8uZGF0YSkpfSksZS5zdGFydCYmZS5zdGFydCgpLGUucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6YX0sdCkscil9KX1mdW5jdGlvbiBQWHIoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfXZhciBfWHIsTFhyLEJvLCRkZSxaNnIsWDZyLElkZSxRNnIsQVhyLERYcixQZGUsdGRyLGFkcj1wKCgpPT57X1hyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxMWHI9KGUsdCk9Pntmb3IodmFyIHIgaW4gdClfWHIoZSxyLHtnZXQ6dFtyXSxlbnVtZXJhYmxlOiEwfSl9LEJvPXt9O0xYcihCbyx7Y3JlYXRlRW5kcG9pbnQ6KCk9Plo2cixleHBvc2U6KCk9Pk5kZSxwcm94eTooKT0+aWRyLHByb3h5TWFya2VyOigpPT4kZGUscmVsZWFzZVByb3h5OigpPT5YNnIsdHJhbnNmZXI6KCk9PnJkcix0cmFuc2ZlckhhbmRsZXJzOigpPT5QZGUsd2luZG93RW5kcG9pbnQ6KCk9PklYcix3cmFwOigpPT5LNnJ9KTskZGU9U3ltYm9sKCJDb21saW5rLnByb3h5IiksWjZyPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLFg2cj1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksSWRlPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxRNnI9ZT0+dHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbHx8dHlwZW9mIGU9PSJmdW5jdGlvbiIsQVhyPXtjYW5IYW5kbGU6ZT0+UTZyKGUpJiZlWyRkZV0sc2VyaWFsaXplKGUpe2xldHtwb3J0MTp0LHBvcnQyOnJ9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gTmRlKGUsdCksW3IsW3JdXX0sZGVzZXJpYWxpemUoZSl7cmV0dXJuIGUuc3RhcnQoKSxLNnIoZSl9fSxEWHI9e2NhbkhhbmRsZTplPT5RNnIoZSkmJklkZSBpbiBlLHNlcmlhbGl6ZSh7dmFsdWU6ZX0pe2xldCB0O3JldHVybiBlIGluc3RhbmNlb2YgRXJyb3I/dD17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTplLm1lc3NhZ2UsbmFtZTplLm5hbWUsc3RhY2s6ZS5zdGFja319OnQ9e2lzRXJyb3I6ITEsdmFsdWU6ZX0sW3QsW11dfSxkZXNlcmlhbGl6ZShlKXt0aHJvdyBlLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoZS52YWx1ZS5tZXNzYWdlKSxlLnZhbHVlKTplLnZhbHVlfX0sUGRlPW5ldyBNYXAoW1sicHJveHkiLEFYcl0sWyJ0aHJvdyIsRFhyXV0pO3Rkcj1uZXcgV2Vha01hcH0pO3ZhciBuZHI9cCgoKT0+e30pO2Z1bmN0aW9uIFJkZShlKXtyZXR1cm4hKGU9PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0Inx8ISgidHlwZSJpbiBlKXx8IU5Yci5pbmNsdWRlcyhlLnR5cGUpKX12YXIgTlhyLG9kcj1wKCgpPT57bUYoKTtOWHI9W0FjLkNvbnNvbGVFcnJvcixBYy5VbmNhdWdodEV4Y2VwdGlvbixBYy5VbmhhbmRsZWRSZWplY3Rpb25dfSk7dmFyIEJkZT1wKCgpPT57bmRyKCk7bUYoKTtvZHIoKX0pO2Z1bmN0aW9uIHQ1KGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGU/T2JqZWN0LmFzc2lnbih0LGUpOnR9dmFyIHNkcj1wKCgpPT57fSk7ZnVuY3Rpb24gSGRlKGUpe2xldCB0PXtkOnt9fTtmb3IobGV0IHIgb2YgT2JqZWN0LmtleXMoZSkpe2xldCBpPWVbcl07aWYoImZpbGUiaW4gaSl7aWYoInN5bWxpbmsiaW4gaS5maWxlKXt0LmRbcl09e2Y6e2w6aS5maWxlLnN5bWxpbmt9fTtjb250aW51ZX1sZXQgbj1pLmZpbGUuY29udGVudHMsbz10eXBlb2Ygbj09InN0cmluZyI/bjpGWHIuZGVjb2RlKG4pLHM9dHlwZW9mIG49PSJzdHJpbmciP3t9OntiOiEwfTt0LmRbcl09e2Y6e2M6bywuLi5zfX07Y29udGludWV9bGV0IGE9SGRlKGkuZGlyZWN0b3J5KTt0LmRbcl09YX1yZXR1cm4gdH1mdW5jdGlvbiBxZGUoZSl7bGV0IHQ9dDUoKTtpZigiZiJpbiBlKXRocm93IG5ldyBFcnJvcigiSXQgaXMgbm90IHBvc3NpYmxlIHRvIGV4cG9ydCBhIHNpbmdsZSBmaWxlIGluIHRoZSBKU09OIGZvcm1hdC4iKTtpZigiZCJpbiBlKWZvcihsZXQgciBvZiBPYmplY3Qua2V5cyhlLmQpKXtsZXQgaT1lLmRbcl07ImQiaW4gaT90W3JdPXQ1KHtkaXJlY3Rvcnk6cWRlKGkpfSk6ImYiaW4gaSYmKCJjImluIGkuZj90W3JdPXQ1KHtmaWxlOnQ1KHtjb250ZW50czppLmYuYj9PWHIoaS5mLmMpOmkuZi5jfSl9KToibCJpbiBpLmYmJih0W3JdPXQ1KHtmaWxlOnQ1KHtzeW1saW5rOmkuZi5sfSl9KSkpfXJldHVybiB0fWZ1bmN0aW9uIE9YcihlKXtsZXQgdD1uZXcgVWludDhBcnJheShlLmxlbmd0aCk7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspdFtyXT1lW3JdLmNoYXJDb2RlQXQoMCk7cmV0dXJuIHR9dmFyIEZYcixsZHI9cCgoKT0+e3NkcigpO0ZYcj1uZXcgVGV4dERlY29kZXIoImxhdGluMSIpfSk7ZnVuY3Rpb24gbjlhKGUpe2lmKE50LmJvb3RDYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJgY29uZmlndXJlQVBJS2V5YCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBiZWZvcmUgYFdlYkNvbnRhaW5lci5ib290YCIpO0xjLnNldFF1ZXJ5UGFyYW0oImNsaWVudF9pZCIsZSl9YXN5bmMgZnVuY3Rpb24gcVhyKGUpe2xldHtzZXJ2ZXJQcm9taXNlOnR9PWpYcihlKSxpPWF3YWl0KGF3YWl0IHQpLmJ1aWxkKHtob3N0OndpbmRvdy5sb2NhdGlvbi5ob3N0LHZlcnNpb246IjEuNi4xIix3b3JrZGlyTmFtZTplLndvcmtkaXJOYW1lLGZvcndhcmRQcmV2aWV3RXJyb3JzOmUuZm9yd2FyZFByZXZpZXdFcnJvcnN9KSxbYSxuLG9dPWF3YWl0IFByb21pc2UuYWxsKFtpLmZzKCksaS5wcmV2aWV3U2NyaXB0KCksaS5ydW50aW1lSW5mbygpXSk7cmV0dXJuIG5ldyBWYihpLGEsbixvKX1mdW5jdGlvbiBZZGUoZSl7aWYoZSE9bnVsbClyZXR1cm4gdD0+e3QgaW5zdGFuY2VvZiBVaW50OEFycmF5P2UoY2RyLmRlY29kZSh0KSk6dD09bnVsbCYmZShudWxsKX19ZnVuY3Rpb24geEYoZSl7aWYoZSE9bnVsbClyZXR1cm4gQm8ucHJveHkoZSl9ZnVuY3Rpb24galhyKGUpe2lmKHZGIT1udWxsKXJldHVybiBlLmNvZXAhPT1qZGUuY29lcCYmKGNvbnNvbGUud2FybihgQXR0ZW1wdGluZyB0byBib290IFdlYkNvbnRhaW5lciB3aXRoICdjb2VwOiAke2UuY29lcH0nYCksY29uc29sZS53YXJuKGBGaXJzdCBib290IGhhZCAnY29lcDogJHtqZGUuY29lcH0nLCBuZXcgc2V0dGluZ3Mgd2lsbCBub3QgdGFrZSBlZmZlY3QhYCkpLHtzZXJ2ZXJQcm9taXNlOnZGfTtlLmNvZXAmJkxjLnNldFF1ZXJ5UGFyYW0oImNvZXAiLGUuY29lcCksZS5leHBlcmltZW50YWxOb2RlJiZMYy5zZXRRdWVyeVBhcmFtKCJleHBlcmltZW50YWxfbm9kZSIsIjEiKTtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTt0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHQuc2V0QXR0cmlidXRlKCJhbGxvdyIsImNyb3NzLW9yaWdpbi1pc29sYXRlZCIpO2xldCByPUxjLnVybDt0LnNyYz1yLnRvU3RyaW5nKCk7bGV0e29yaWdpbjppfT1yO3JldHVybiBqZGU9ey4uLmV9LHZGPW5ldyBQcm9taXNlKGE9PntsZXQgbj1vPT57aWYoby5vcmlnaW4hPT1pKXJldHVybjtsZXR7ZGF0YTpzfT1vO2lmKHMudHlwZT09PSJpbml0Iil7YShCby53cmFwKG8ucG9ydHNbMF0pKTtyZXR1cm59aWYocy50eXBlPT09Indhcm5pbmciKXtjb25zb2xlW3MubGV2ZWxdLmNhbGwoY29uc29sZSxzLm1lc3NhZ2UpO3JldHVybn19O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKX0pLGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHQsbnVsbCkse3NlcnZlclByb21pc2U6dkZ9fWZ1bmN0aW9uIFZYcihlKXtyZXR1cm4gdHlwZW9mIGVbMF09PSJzdHJpbmcifWZ1bmN0aW9uIFVYcihlKXtyZXR1cm4gZVswXWluc3RhbmNlb2YgVWludDhBcnJheX1mdW5jdGlvbiBXWHIoKXtsZXQgZT1udWxsO3JldHVybntzdHJlYW06bmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydChpKXtlPWl9fSkscHVzaDppPT57aSE9bnVsbD9lPy5lbnF1ZXVlKGkpOihlPy5jbG9zZSgpLGU9bnVsbCl9fX1mdW5jdGlvbiBHWHIoZSl7bGV0IHQ9ITEscj0oKT0+e307cmV0dXJue3N1YnNjcmliZShhKXtyZXR1cm4gYS50aGVuKG49PntyPW4sdCYmcigpfSksKCk9Pnt0PSEwLHIoKX19LGxpc3RlbmVyOigoLi4uYSk9Pnt0fHxlKC4uLmEpfSl9fXZhciBhOWEsYkYsdkYsamRlLGNkcixSWHIsVmIsQlhyLEhYcixWZGUsVWRlLFdkZSxHZGUsZGRyPXAoKCk9PntFZGUoKTttRigpO2FkcigpO0VkZSgpO1RkZSgpO0xkZSgpO0JkZSgpO2xkcigpO0JkZSgpO2E5YT1ZNnIsYkY9bnVsbCx2Rj1udWxsLGpkZT17fSxjZHI9bmV3IFRleHREZWNvZGVyLFJYcj1uZXcgVGV4dEVuY29kZXIsVmI9Y2xhc3MgZXtfaW5zdGFuY2U7X3J1bnRpbWVJbmZvO2ZzO3N0YXRpYyBfaW5zdGFuY2U9bnVsbDtzdGF0aWMgX3RlYXJkb3duUHJvbWlzZT1udWxsO190b3JuRG93bj0hMTtfdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXI9KCk9Pnt9O2NvbnN0cnVjdG9yKHQscixpLGEpe3RoaXMuX2luc3RhbmNlPXQsdGhpcy5fcnVudGltZUluZm89YSx0aGlzLmZzPW5ldyBHZGUociksTnQuaW5pdGlhbGl6ZWQmJih0aGlzLl91bnN1YnNjcmliZUZyb21Ub2tlbkNoYW5nZWRMaXN0ZW5lcj1SNnIobj0+e3RoaXMuX2luc3RhbmNlLnNldENyZWRlbnRpYWxzKHthY2Nlc3NUb2tlbjpuLGVkaXRvck9yaWdpbjpOdC5lZGl0b3JPcmlnaW59KX0pLChhc3luYygpPT57YXdhaXQgTnQuYXV0aENvbXBsZXRlLnByb21pc2UsIXRoaXMuX3Rvcm5Eb3duJiYoRGRlKE50LnRva2VucyksYXdhaXQgdGhpcy5faW5zdGFuY2Uuc2V0Q3JlZGVudGlhbHMoe2FjY2Vzc1Rva2VuOk50LnRva2Vucy5hY2Nlc3MsZWRpdG9yT3JpZ2luOk50LmVkaXRvck9yaWdpbn0pKX0pKCkuY2F0Y2gobj0+e2NvbnNvbGUuZXJyb3Iobil9KSl9YXN5bmMgc3Bhd24odCxyLGkpe2xldCBhPVtdO0FycmF5LmlzQXJyYXkocik/YT1yOmk9cjtsZXQgbixvPW5ldyBSZWFkYWJsZVN0cmVhbTtpZihpPy5vdXRwdXQhPT0hMSl7bGV0IHY9V1hyKCk7bj12LnB1c2gsbz12LnN0cmVhbX1sZXQgcyxsLGMsdSxkPXhGKFlkZShuKSksaD14RihZZGUocykpLGY9eEYoWWRlKGMpKSx4PWF3YWl0IHRoaXMuX2luc3RhbmNlLnJ1bih7Y29tbWFuZDp0LGFyZ3M6YSxjd2Q6aT8uY3dkLGVudjppPy5lbnYsdGVybWluYWw6aT8udGVybWluYWx9LGgsZixkKTtyZXR1cm4gbmV3IFdkZSh4LG8sbCx1KX1hc3luYyBleHBvcnQodCxyKXtsZXQgaT17Zm9ybWF0OnI/LmZvcm1hdD8/Impzb24iLGluY2x1ZGVzOnI/LmluY2x1ZGVzLGV4Y2x1ZGVzOnI/LmV4Y2x1ZGVzLGV4dGVybmFsOiEwfSxhPWF3YWl0IHRoaXMuX2luc3RhbmNlLnNlcmlhbGl6ZSh0LGkpO2lmKGkuZm9ybWF0PT09Impzb24iKXtsZXQgbj1KU09OLnBhcnNlKGNkci5kZWNvZGUoYSkpO3JldHVybiBxZGUobil9cmV0dXJuIGF9b24odCxyKXtpZih0PT09InByZXZpZXctbWVzc2FnZSIpe2xldCBuPXI7cj0obz0+e1JkZShvKSYmbihvKX0pfWxldHtsaXN0ZW5lcjppLHN1YnNjcmliZTphfT1HWHIocik7cmV0dXJuIGEodGhpcy5faW5zdGFuY2Uub24odCxCby5wcm94eShpKSkpfW1vdW50KHQscil7bGV0IGk9dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/dDp0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/bmV3IFVpbnQ4QXJyYXkodCk6UlhyLmVuY29kZShKU09OLnN0cmluZ2lmeShIZGUodCkpKTtyZXR1cm4gdGhpcy5faW5zdGFuY2UubG9hZEZpbGVzKEJvLnRyYW5zZmVyKGksW2kuYnVmZmVyXSkse21vdW50UG9pbnRzOnI/Lm1vdW50UG9pbnR9KX1zZXRQcmV2aWV3U2NyaXB0KHQscil7cmV0dXJuIHRoaXMuX2luc3RhbmNlLnNldFByZXZpZXdTY3JpcHQodCxyKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLl9ydW50aW1lSW5mby5wYXRofWdldCB3b3JrZGlyKCl7cmV0dXJuIHRoaXMuX3J1bnRpbWVJbmZvLmN3ZH10ZWFyZG93bigpe2lmKHRoaXMuX3Rvcm5Eb3duKXRocm93IG5ldyBFcnJvcigiV2ViQ29udGFpbmVyIGFscmVhZHkgdG9ybiBkb3duIik7dGhpcy5fdG9ybkRvd249ITAsdGhpcy5fdW5zdWJzY3JpYmVGcm9tVG9rZW5DaGFuZ2VkTGlzdGVuZXIoKTtsZXQgdD1hc3luYygpPT57dHJ5e2F3YWl0IHRoaXMuZnMuX3RlYXJkb3duKCksYXdhaXQgdGhpcy5faW5zdGFuY2UudGVhcmRvd24oKX1maW5hbGx5e3RoaXMuX2luc3RhbmNlW0JvLnJlbGVhc2VQcm94eV0oKSxlLl9pbnN0YW5jZT09PXRoaXMmJihlLl9pbnN0YW5jZT1udWxsKX19O2UuX3RlYXJkb3duUHJvbWlzZT10KCl9c3RhdGljIGFzeW5jIGJvb3QodD17fSl7YXdhaXQgdGhpcy5fdGVhcmRvd25Qcm9taXNlLGUuX3RlYXJkb3duUHJvbWlzZT1udWxsO2xldHt3b3JrZGlyTmFtZTpyfT10O2lmKHdpbmRvdy5jcm9zc09yaWdpbklzb2xhdGVkJiZ0LmNvZXA9PT0ibm9uZSImJmNvbnNvbGUud2FybihgQSBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGhlYWRlciBpcyByZXF1aXJlZCBpbiBjcm9zcyBvcmlnaW4gaXNvbGF0ZWQgZW52aXJvbm1lbnRzLgpTZXQgdGhlICdjb2VwJyBvcHRpb24gdG8gJ3JlcXVpcmUtY29ycCcuYCkscj8uaW5jbHVkZXMoIi8iKXx8cj09PSIuLiJ8fHI9PT0iLiIpdGhyb3cgbmV3IEVycm9yKCJ3b3JrZGlyTmFtZSBzaG91bGQgYmUgYSB2YWxpZCBmb2xkZXIgbmFtZSIpO2ZvcihOdC5ib290Q2FsbGVkPSEwO2JGOylhd2FpdCBiRjtpZihlLl9pbnN0YW5jZSl0aHJvdyBuZXcgRXJyb3IoIk9ubHkgYSBzaW5nbGUgV2ViQ29udGFpbmVyIGluc3RhbmNlIGNhbiBiZSBib290ZWQiKTtsZXQgaT1xWHIodCk7YkY9aS5jYXRjaCgoKT0+e30pO3RyeXtsZXQgYT1hd2FpdCBpO3JldHVybiBlLl9pbnN0YW5jZT1hLGF9ZmluYWxseXtiRj1udWxsfX19O0JYcj0xLEhYcj0yLFZkZT1jbGFzc3tuYW1lO190eXBlO2NvbnN0cnVjdG9yKHQscil7dGhpcy5uYW1lPXQsdGhpcy5fdHlwZT1yfWlzRmlsZSgpe3JldHVybiB0aGlzLl90eXBlPT09QlhyfWlzRGlyZWN0b3J5KCl7cmV0dXJuIHRoaXMuX3R5cGU9PT1IWHJ9fSxVZGU9Y2xhc3N7X2FwaUNsaWVudDtfcGF0aDtfb3B0aW9ucztfbGlzdGVuZXI7X3dyYXBwZWRMaXN0ZW5lcjtfd2F0Y2hlcjtfY2xvc2VkPSExO2NvbnN0cnVjdG9yKHQscixpLGEpe3RoaXMuX2FwaUNsaWVudD10LHRoaXMuX3BhdGg9cix0aGlzLl9vcHRpb25zPWksdGhpcy5fbGlzdGVuZXI9YSx0aGlzLl9hcGlDbGllbnQuX3dhdGNoZXJzLmFkZCh0aGlzKSx0aGlzLl93cmFwcGVkTGlzdGVuZXI9KG4sbyk9Pnt0aGlzLl9saXN0ZW5lciYmIXRoaXMuX2Nsb3NlZCYmdGhpcy5fbGlzdGVuZXIobixvKX0sdGhpcy5fYXBpQ2xpZW50Ll9mcy53YXRjaCh0aGlzLl9wYXRoLHRoaXMuX29wdGlvbnMseEYodGhpcy5fd3JhcHBlZExpc3RlbmVyKSkudGhlbihuPT57aWYodGhpcy5fd2F0Y2hlcj1uLHRoaXMuX2Nsb3NlZClyZXR1cm4gdGhpcy5fdGVhcmRvd24oKX0pLmNhdGNoKGNvbnNvbGUuZXJyb3IpfWFzeW5jIGNsb3NlKCl7dGhpcy5fY2xvc2VkfHwodGhpcy5fY2xvc2VkPSEwLHRoaXMuX2FwaUNsaWVudC5fd2F0Y2hlcnMuZGVsZXRlKHRoaXMpLGF3YWl0IHRoaXMuX3RlYXJkb3duKCkpfWFzeW5jIF90ZWFyZG93bigpe2F3YWl0IHRoaXMuX3dhdGNoZXI/LmNsb3NlKCkuZmluYWxseSgoKT0+e3RoaXMuX3dhdGNoZXI/LltCby5yZWxlYXNlUHJveHldKCl9KX19LFdkZT1jbGFzc3tvdXRwdXQ7aW5wdXQ7ZXhpdDtfcHJvY2VzcztzdGRvdXQ7c3RkZXJyO2NvbnN0cnVjdG9yKHQscixpLGEpe3RoaXMub3V0cHV0PXIsdGhpcy5fcHJvY2Vzcz10LHRoaXMuaW5wdXQ9bmV3IFdyaXRhYmxlU3RyZWFtKHt3cml0ZTpuPT57dGhpcy5fZ2V0UHJvY2VzcygpPy53cml0ZShuKS5jYXRjaCgoKT0+e30pfX0pLHRoaXMuZXhpdD10aGlzLl9vbkV4aXQoKSx0aGlzLnN0ZG91dD1pLHRoaXMuc3RkZXJyPWF9a2lsbCgpe3RoaXMuX3Byb2Nlc3M/LmtpbGwoKX1yZXNpemUodCl7dGhpcy5fZ2V0UHJvY2VzcygpPy5yZXNpemUodCl9YXN5bmMgX29uRXhpdCgpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcHJvY2Vzcy5vbkV4aXR9ZmluYWxseXt0aGlzLl9wcm9jZXNzPy5bQm8ucmVsZWFzZVByb3h5XSgpLHRoaXMuX3Byb2Nlc3M9bnVsbH19X2dldFByb2Nlc3MoKXtyZXR1cm4gdGhpcy5fcHJvY2Vzcz09bnVsbCYmY29uc29sZS53YXJuKCJUaGlzIHByb2Nlc3MgYWxyZWFkeSBleGl0ZWQiKSx0aGlzLl9wcm9jZXNzfX0sR2RlPWNsYXNze19mcztfd2F0Y2hlcnM9bmV3IFNldChbXSk7Y29uc3RydWN0b3IodCl7dGhpcy5fZnM9dH1ybSguLi50KXtyZXR1cm4gdGhpcy5fZnMucm0oLi4udCl9YXN5bmMgcmVhZEZpbGUodCxyKXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMucmVhZEZpbGUodCxyKX1hc3luYyByZW5hbWUodCxyKXtyZXR1cm4gYXdhaXQgdGhpcy5fZnMucmVuYW1lKHQscil9YXN5bmMgd3JpdGVGaWxlKHQscixpKXtpZihyIGluc3RhbmNlb2YgVWludDhBcnJheSl7bGV0IGE9ci5idWZmZXIuc2xpY2Uoci5ieXRlT2Zmc2V0LHIuYnl0ZU9mZnNldCtyLmJ5dGVMZW5ndGgpO3I9Qm8udHJhbnNmZXIobmV3IFVpbnQ4QXJyYXkoYSksW2FdKX1hd2FpdCB0aGlzLl9mcy53cml0ZUZpbGUodCxyLGkpfWFzeW5jIHJlYWRkaXIodCxyKXtsZXQgaT1hd2FpdCB0aGlzLl9mcy5yZWFkZGlyKHQscik7cmV0dXJuIFZYcihpKXx8VVhyKGkpP2k6aS5tYXAobj0+bmV3IFZkZShuLm5hbWUsblsiU3ltYm9sKHR5cGUpIl0pKX1hc3luYyBta2Rpcih0LHIpe3JldHVybiBhd2FpdCB0aGlzLl9mcy5ta2Rpcih0LHIpfXdhdGNoKHQscixpKXtyZXR1cm4gdHlwZW9mIHI9PSJmdW5jdGlvbiImJihpPXIscj1udWxsKSxuZXcgVWRlKHRoaXMsdCxyLGkpfWFzeW5jIF90ZWFyZG93bigpe3RoaXMuX2ZzW0JvLnJlbGVhc2VQcm94eV0oKSxhd2FpdCBQcm9taXNlLmFsbChbLi4udGhpcy5fd2F0Y2hlcnNdLm1hcCh0PT50LmNsb3NlKCkpKX19fSk7dmFyIHI1LHVkcj1wKCgpPT57ZGRyKCk7cjU9Y2xhc3MgZXtzdGF0aWMgc2hhcmVkQ29udGFpbmVyPW51bGw7c3RhdGljIGJvb3RQcm9taXNlPW51bGw7X3JlYWR5PSExO3R5cGU9IndlYmNvbnRhaW5lciI7Z2V0IHJlYWR5KCl7cmV0dXJuIHRoaXMuX3JlYWR5fWdldCBjb250YWluZXIoKXtyZXR1cm4gZS5zaGFyZWRDb250YWluZXJ9YXN5bmMgaW5pdCgpe2lmKCEodGhpcy5fcmVhZHkmJmUuc2hhcmVkQ29udGFpbmVyKSl7aWYoZS5ib290UHJvbWlzZSl7YXdhaXQgZS5ib290UHJvbWlzZSx0aGlzLl9yZWFkeT0hMDtyZXR1cm59aWYoZS5zaGFyZWRDb250YWluZXIpe3RoaXMuX3JlYWR5PSEwO3JldHVybn1pZih0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI+InUiKXRocm93IG5ldyBFcnJvcihgV2ViQ29udGFpbmVyIHJlcXVpcmVzIFNoYXJlZEFycmF5QnVmZmVyIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUuIEVuc3VyZSB5b3VyIHNlcnZlciBzZW5kcyB0aGVzZSBoZWFkZXJzOgogIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5OiBzYW1lLW9yaWdpbgogIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3k6IHJlcXVpcmUtY29ycGApO2UuYm9vdFByb21pc2U9VmIuYm9vdCgpO3RyeXtlLnNoYXJlZENvbnRhaW5lcj1hd2FpdCBlLmJvb3RQcm9taXNlLHRoaXMuX3JlYWR5PSEwfWNhdGNoKHQpe3Rocm93IGUuYm9vdFByb21pc2U9bnVsbCx0fX19YXN5bmMgZGVzdHJveSgpe2Uuc2hhcmVkQ29udGFpbmVyJiYoZS5zaGFyZWRDb250YWluZXIudGVhcmRvd24oKSxlLnNoYXJlZENvbnRhaW5lcj1udWxsLGUuYm9vdFByb21pc2U9bnVsbCx0aGlzLl9yZWFkeT0hMSl9YXN5bmMgcmVhZEZpbGUodCl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy5yZWFkRmlsZSh0LCJ1dGYtOCIpfWFzeW5jIHdyaXRlRmlsZSh0LHIpe3RoaXMuZW5zdXJlUmVhZHkoKSxhd2FpdCB0aGlzLmNvbnRhaW5lci5mcy53cml0ZUZpbGUodCxyLCJ1dGYtOCIpfWFzeW5jIHJlYWREaXIodCl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSwoYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZGRpcih0LHt3aXRoRmlsZVR5cGVzOiEwfSkpLm1hcChpPT4oe3R5cGU6aS5pc0RpcmVjdG9yeSgpPyJkaXJlY3RvcnkiOiJmaWxlIixuYW1lOmkubmFtZSxwYXRoOnQ9PT0iLyI/YC8ke2kubmFtZX1gOmAke3R9LyR7aS5uYW1lfWB9KSl9YXN5bmMgbWtkaXIodCl7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLm1rZGlyKHQse3JlY3Vyc2l2ZTohMH0pfWFzeW5jIHJtKHQscil7dGhpcy5lbnN1cmVSZWFkeSgpLGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJtKHQse3JlY3Vyc2l2ZTpyPy5yZWN1cnNpdmU/PyExfSl9YXN5bmMgZXhpc3RzKHQpe3RoaXMuZW5zdXJlUmVhZHkoKTt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuY29udGFpbmVyLmZzLnJlYWRGaWxlKHQpLCEwfWNhdGNoe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5jb250YWluZXIuZnMucmVhZGRpcih0KSwhMH1jYXRjaHtyZXR1cm4hMX19fXdhdGNoKHQscixpKXt0aGlzLmVuc3VyZVJlYWR5KCk7bGV0IGE9dGhpcy5jb250YWluZXIuZnMud2F0Y2godCx7cmVjdXJzaXZlOmk/LnJlY3Vyc2l2ZT8/ITF9LHIpO3JldHVybntzdG9wOigpPT5hLmNsb3NlKCl9fWFzeW5jIHNwYXduKHQscj1bXSl7dGhpcy5lbnN1cmVSZWFkeSgpO2xldCBpPWF3YWl0IHRoaXMuY29udGFpbmVyLnNwYXduKHQscik7cmV0dXJue291dHB1dDppLm91dHB1dCxpbnB1dDppLmlucHV0LGV4aXQ6aS5leGl0LGtpbGw6KCk9Pmkua2lsbCgpfX1hc3luYyBtb3VudCh0KXt0aGlzLmVuc3VyZVJlYWR5KCksYXdhaXQgdGhpcy5jb250YWluZXIubW91bnQodCl9Z2V0Q29udGFpbmVyKCl7cmV0dXJuIHRoaXMuZW5zdXJlUmVhZHkoKSx0aGlzLmNvbnRhaW5lcn1lbnN1cmVSZWFkeSgpe2lmKCF0aGlzLl9yZWFkeXx8IXRoaXMuY29udGFpbmVyKXRocm93IG5ldyBFcnJvcigiV2ViQ29udGFpbmVyRW52aXJvbm1lbnQgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBmaXJzdC4iKX19fSk7dmFyIHBkcj1wKCgpPT57dWRyKCl9KTt2YXIgeUY9cCgoKT0+e0U2cigpO3BkcigpfSk7dmFyIGhkcj1wKCgpPT57ZjZlKCl9KTt2YXIgVWIsWmRlPXAoKCk9PntVYj1jbGFzc3t0YWJzPW5ldyBNYXA7dGFiQ291bnRlcj0wO3h0ZXJtQnVuZGxlPW51bGw7eHRlcm1GaXRBZGRvbkJ1bmRsZT1udWxsO3NldFh0ZXJtTW9kdWxlcyh0LHIpe3RoaXMueHRlcm1CdW5kbGU9dCx0aGlzLnh0ZXJtRml0QWRkb25CdW5kbGU9cn1nZW5lcmF0ZVRhYklkKCl7cmV0dXJuIHRoaXMudGFiQ291bnRlcisrLGB0ZXJtaW5hbC0ke3RoaXMudGFiQ291bnRlcn0tJHtEYXRlLm5vdygpfWB9Z2V0RGVmYXVsdExhYmVsKHQscil7c3dpdGNoKHQpe2Nhc2Uic2hlbGwiOnJldHVybiJiYXNoIjtjYXNlInNjcmlwdCI6cmV0dXJuIHI/LnNjcmlwdE5hbWV8fCJzY3JpcHQiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiByPy5wYWNrYWdlTmFtZT9gdXBkYXRlICR7ci5wYWNrYWdlTmFtZX1gOiJ1cGRhdGUiO2Nhc2UiY3VzdG9tIjpyZXR1cm4gcj8uY29tbWFuZHx8InByb2Nlc3MiO2RlZmF1bHQ6cmV0dXJuInRlcm1pbmFsIn19Z2V0RGVmYXVsdEljb24odCl7c3dpdGNoKHQpe2Nhc2Uic2hlbGwiOnJldHVybiJsdWNpZGU6dGVybWluYWwiO2Nhc2Uic2NyaXB0IjpyZXR1cm4ibHVjaWRlOnBsYXkiO2Nhc2UicGFja2FnZS11cGRhdGUiOnJldHVybiJsdWNpZGU6cGFja2FnZUNoZWNrIjtjYXNlImN1c3RvbSI6cmV0dXJuImx1Y2lkZTpjb2RlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6dGVybWluYWwifX1nZXRUZXJtaW5hbFRoZW1lKHQpe3JldHVybiB0P3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uOiJyZ2JhKDAsIDAsIDAsIDAuMikiLGJsYWNrOiIjMDAwMDAwIixyZWQ6IiNjZDMxMzEiLGdyZWVuOiIjMDBiYzAwIix5ZWxsb3c6IiM5NDk4MDAiLGJsdWU6IiMwNDUxYTUiLG1hZ2VudGE6IiNiYzA1YmMiLGN5YW46IiMwNTk4YmMiLHdoaXRlOiIjNTU1NTU1IixicmlnaHRCbGFjazoiIzY2NjY2NiIsYnJpZ2h0UmVkOiIjY2QzMTMxIixicmlnaHRHcmVlbjoiIzE0Y2UxNCIsYnJpZ2h0WWVsbG93OiIjYjViYTAwIixicmlnaHRCbHVlOiIjMDQ1MWE1IixicmlnaHRNYWdlbnRhOiIjYmMwNWJjIixicmlnaHRDeWFuOiIjMDU5OGJjIixicmlnaHRXaGl0ZToiI2E1YTVhNSJ9OntiYWNrZ3JvdW5kOiIjMDAwMDAwIixmb3JlZ3JvdW5kOiIjZmZmZmZmIixjdXJzb3I6IiNmZmZmZmYiLGN1cnNvckFjY2VudDoiIzAwMDAwMCIsc2VsZWN0aW9uOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1jcmVhdGVUYWIodCxyKXtpZighdGhpcy54dGVybUJ1bmRsZXx8IXRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZSl0aHJvdyBuZXcgRXJyb3IoIlRlcm1pbmFsVGFiTWFuYWdlcjogeHRlcm0gbW9kdWxlcyBub3QgaW5pdGlhbGl6ZWQuIENhbGwgc2V0WHRlcm1Nb2R1bGVzKCkgZmlyc3QuIik7bGV0IGk9dGhpcy5nZW5lcmF0ZVRhYklkKCksYT10LnR5cGUsbj1uZXcgdGhpcy54dGVybUJ1bmRsZS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMCx0aGVtZTp0aGlzLmdldFRlcm1pbmFsVGhlbWUociksZm9udEZhbWlseTonTWVubG8sIE1vbmFjbywgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlJyxmb250U2l6ZToxMyxsaW5lSGVpZ2h0OjEuMn0pLG89bmV3IHRoaXMueHRlcm1GaXRBZGRvbkJ1bmRsZS5GaXRBZGRvbjtuLmxvYWRBZGRvbihvKTtsZXQgcz17aWQ6aSxsYWJlbDp0LmxhYmVsfHx0aGlzLmdldERlZmF1bHRMYWJlbChhLHQubWV0YWRhdGEpLGljb25OYW1lOnQuaWNvbk5hbWV8fHRoaXMuZ2V0RGVmYXVsdEljb24oYSksdHlwZTphLGNsb3NlYWJsZTp0LmNsb3NlYWJsZT8/YSE9PSJzaGVsbCIsdGVybWluYWw6bixmaXRBZGRvbjpvLHByb2Nlc3M6bnVsbCxpbnB1dFdyaXRlcjpudWxsLGV4aXRlZDohMSxleGl0Q29kZTpudWxsLGNyZWF0ZWRBdDpEYXRlLm5vdygpLG1ldGFkYXRhOnQubWV0YWRhdGF9O3JldHVybiB0aGlzLnRhYnMuc2V0KGkscyksc31nZXRUYWIodCl7cmV0dXJuIHRoaXMudGFicy5nZXQodCl9Z2V0QWxsVGFicygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMudGFicy52YWx1ZXMoKSkuc29ydCgodCxyKT0+dC5jcmVhdGVkQXQtci5jcmVhdGVkQXQpfWdldFRhYkNvdW50KCl7cmV0dXJuIHRoaXMudGFicy5zaXplfWhhc1RhYih0KXtyZXR1cm4gdGhpcy50YWJzLmhhcyh0KX1jbG9zZVRhYih0KXtsZXQgcj10aGlzLnRhYnMuZ2V0KHQpO2lmKCFyKXJldHVybiExO2lmKHIucHJvY2VzcyYmIXIuZXhpdGVkKXRyeXtyLnByb2Nlc3Mua2lsbCgpfWNhdGNoKGkpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGtpbGwgcHJvY2VzczoiLGkpfXRyeXtyLnRlcm1pbmFsLmRpc3Bvc2UoKX1jYXRjaChpKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBkaXNwb3NlIHRlcm1pbmFsOiIsaSl9cmV0dXJuIHRoaXMudGFicy5kZWxldGUodCksITB9cmVuYW1lVGFiKHQscil7bGV0IGk9dGhpcy50YWJzLmdldCh0KTtyZXR1cm4gaT8oaS5sYWJlbD1yLCEwKTohMX1tYXJrVGFiRXhpdGVkKHQscil7bGV0IGk9dGhpcy50YWJzLmdldCh0KTtpJiYoaS5leGl0ZWQ9ITAsaS5leGl0Q29kZT1yKX1zZXRUYWJQcm9jZXNzKHQscixpKXtsZXQgYT10aGlzLnRhYnMuZ2V0KHQpO2EmJihhLnByb2Nlc3M9cixhLmlucHV0V3JpdGVyPWkpfXVwZGF0ZUFsbFRoZW1lcyh0KXtsZXQgcj10aGlzLmdldFRlcm1pbmFsVGhlbWUodCk7Zm9yKGxldCBpIG9mIHRoaXMudGFicy52YWx1ZXMoKSlpLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9cn1kaXNwb3NlQWxsKCl7Zm9yKGxldFt0XW9mIHRoaXMudGFicyl0aGlzLmNsb3NlVGFiKHQpO3RoaXMudGFicy5jbGVhcigpfX19KTt2YXIgZmRyPXt9O0ZlKGZkcix7RGVlc1dvcmtzcGFjZVRlcm1pbmFsOigpPT5YZGV9KTt2YXIgVzQsbG4sWGRlLFdiPXAoKCk9Pnt4ZSgpO0t0KCk7SmUoKTt5RigpO29yKCk7UU4oKTtaZGUoKTtCNCgpO1c0PWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sbG49ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFhkZT0oKCk9PntsZXQgZT1beWUoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W107dmFyIFI9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBfPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6T2JqZWN0fSldLGw9W2ooKV0sZD1baigpXSx4PVtqKHt0eXBlOk51bWJlcn0pXSx5PVtqKHt0eXBlOkJvb2xlYW59KV0sTz1bZmUoKV0sRj1bZmUoKV0sVzQodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIFMsZ2V0OlM9PlMuZXhlY3V0aW9uRW52aXJvbm1lbnQsc2V0OihTLCQpPT57Uy5leGVjdXRpb25FbnZpcm9ubWVudD0kfX0sbWV0YWRhdGE6X30sbyxzKSxXNCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNldHVwQ29tbWFuZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InNldHVwQ29tbWFuZCJpbiBTLGdldDpTPT5TLnNldHVwQ29tbWFuZCxzZXQ6KFMsJCk9PntTLnNldHVwQ29tbWFuZD0kfX0sbWV0YWRhdGE6X30sYyx1KSxXNCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVudmlyb25tZW50VmFyaWFibGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iZW52aXJvbm1lbnRWYXJpYWJsZXMiaW4gUyxnZXQ6Uz0+Uy5lbnZpcm9ubWVudFZhcmlhYmxlcyxzZXQ6KFMsJCk9PntTLmVudmlyb25tZW50VmFyaWFibGVzPSR9fSxtZXRhZGF0YTpffSxoLGYpLFc0KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFiQmFyV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOlM9PiJ0YWJCYXJXaWR0aCJpbiBTLGdldDpTPT5TLnRhYkJhcldpZHRoLHNldDooUywkKT0+e1MudGFiQmFyV2lkdGg9JH19LG1ldGFkYXRhOl99LHYsYiksVzQodGhpcyxudWxsLHkse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93VGFiQmFyIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4ic2hvd1RhYkJhciJpbiBTLGdldDpTPT5TLnNob3dUYWJCYXIsc2V0OihTLCQpPT57Uy5zaG93VGFiQmFyPSR9fSxtZXRhZGF0YTpffSx3LGspLFc0KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGFicyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Uz0+InRhYnMiaW4gUyxnZXQ6Uz0+Uy50YWJzLHNldDooUywkKT0+e1MudGFicz0kfX0sbWV0YWRhdGE6X30seixNKSxXNCh0aGlzLG51bGwsRix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImFjdGl2ZVRhYklkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpTPT4iYWN0aXZlVGFiSWQiaW4gUyxnZXQ6Uz0+Uy5hY3RpdmVUYWJJZCxzZXQ6KFMsJCk9PntTLmFjdGl2ZVRhYklkPSR9fSxtZXRhZGF0YTpffSxELE4pLFc0KG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOl99LG51bGwsciksUj1pPXQudmFsdWUsXyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpffSl9c3RhdGljIGRlbW89KCk9PntsZXQgXz1uZXcgcjU7cmV0dXJuIENgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIC5leGVjdXRpb25FbnZpcm9ubWVudD0ke199PjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWw+YH07c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtyZXNpemVPYnNlcnZlcjt0YWJNYW5hZ2VyOyNlPWxuKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoXyl7dGhpcy4jZT1ffSN0PShsbih0aGlzLHMpLGxuKHRoaXMsYywiIikpO2dldCBzZXR1cENvbW1hbmQoKXtyZXR1cm4gdGhpcy4jdH1zZXQgc2V0dXBDb21tYW5kKF8pe3RoaXMuI3Q9X30jcj0obG4odGhpcyx1KSxsbih0aGlzLGgse30pKTtnZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoKXtyZXR1cm4gdGhpcy4jcn1zZXQgZW52aXJvbm1lbnRWYXJpYWJsZXMoXyl7dGhpcy4jcj1ffSNpPShsbih0aGlzLGYpLGxuKHRoaXMsdiwxNjApKTtnZXQgdGFiQmFyV2lkdGgoKXtyZXR1cm4gdGhpcy4jaX1zZXQgdGFiQmFyV2lkdGgoXyl7dGhpcy4jaT1ffSNhPShsbih0aGlzLGIpLGxuKHRoaXMsdywhMCkpO2dldCBzaG93VGFiQmFyKCl7cmV0dXJuIHRoaXMuI2F9c2V0IHNob3dUYWJCYXIoXyl7dGhpcy4jYT1ffSNuPShsbih0aGlzLGspLGxuKHRoaXMseixbXSkpO2dldCB0YWJzKCl7cmV0dXJuIHRoaXMuI259c2V0IHRhYnMoXyl7dGhpcy4jbj1ffSNvPShsbih0aGlzLE0pLGxuKHRoaXMsRCxudWxsKSk7Z2V0IGFjdGl2ZVRhYklkKCl7cmV0dXJuIHRoaXMuI299c2V0IGFjdGl2ZVRhYklkKF8pe3RoaXMuI289X310ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPShsbih0aGlzLE4pLG51bGwpO2lzQnJpZ2h0PSExO3Rlcm1pbmFsQWN0aW9uYmFyPW51bGw7ZW52aXJvbm1lbnREZWZlcnJlZD1uZXcganQuc21hcnRwcm9taXNlLkRlZmVycmVkO2Vudmlyb25tZW50UHJvbWlzZT10aGlzLmVudmlyb25tZW50RGVmZXJyZWQucHJvbWlzZTtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50YWJNYW5hZ2VyPW5ldyBVYix0aGlzLnJlc2l6ZU9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3RoaXMuaGFuZGxlUmVzaXplKCl9KX1zdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgIH0KCiAgICAgICogewogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzAwMDAwMCIpfTsKICAgICAgfQoKICAgICAgI2FjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCBkZWVzLWFjdGlvbmJhciB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC8qIFRhYiBiYXIgb24gdGhlIHJpZ2h0IHNpZGUgKi8KICAgICAgLnRhYi1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDclKSIpfTsKICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICB9CgogICAgICAudGFiLWJhci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQ1JSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWJhci10aXRsZSB7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICB9CgogICAgICAudGFiLWJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMnB4OwogICAgICB9CgogICAgICAudGFiLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDIycHg7CiAgICAgICAgaGVpZ2h0OiAyMnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWItYWN0aW9uOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODglKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAzMCUpIiwiaHNsKDAgMCUgODAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1saXN0IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgcGFkZGluZzogNHB4OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5MCUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDI1JSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5NSUpIiwiaHNsKDIxMCAzMCUgMTUlKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA0MCUpIiwiaHNsKDIxMCAxMDAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC10YWIuZXhpdGVkIHsKICAgICAgICBvcGFjaXR5OiAwLjc7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgIH0KCiAgICAgIC50YWItaWNvbi5ydW5uaW5nIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgxNDIgNzAlIDQwJSkiLCJoc2woMTQyIDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAudGFiLWxhYmVsIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UgewogICAgICAgIGZvbnQtc2l6ZTogMTBweDsKICAgICAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhpdC1iYWRnZS5zdWNjZXNzIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDE0MiA3MCUgOTAlKSIsImhzbCgxNDIgMzAlIDIwJSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMTQyIDcwJSAzNSUpIiwiaHNsKDE0MiA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLmV4aXQtYmFkZ2UuZXJyb3IgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCA3MCUgOTMlKSIsImhzbCgwIDMwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgNzAlIDQ1JSkiLCJoc2woMCA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAwLjY7CiAgICAgIH0KCiAgICAgIC50YWItY2xvc2U6aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZW1wdHktc3RhdGUgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLyogeHRlcm0uanMgc3R5bGVzICovCiAgICAgIC54dGVybSB7CiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYScgMDsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybS5mb2N1cywKICAgICAgLnh0ZXJtOmZvY3VzIHsKICAgICAgICBvdXRsaW5lOiBub25lOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWhlbHBlcnMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgei1pbmRleDogNTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXItdGV4dGFyZWEgewogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgYm9yZGVyOiAwOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIHRvcDogMDsKICAgICAgICB3aWR0aDogMDsKICAgICAgICBoZWlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogLTU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHJlc2l6ZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC5jb21wb3NpdGlvbi12aWV3IHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzMzMzIiwiI2ZmZmZmZiIpfTsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldy5hY3RpdmUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMwMDAwMDAiKX07CiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXNjcmVlbiBjYW52YXMgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JvbGwtYXJlYSB7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICB9CgogICAgICAueHRlcm0tY2hhci1tZWFzdXJlLWVsZW1lbnQgewogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAtOTk5OWVtOwogICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7CiAgICAgIH0KCiAgICAgIC54dGVybSB7CiAgICAgICAgY3Vyc29yOiB0ZXh0OwogICAgICB9CgogICAgICAueHRlcm0uZW5hYmxlLW1vdXNlLWV2ZW50cyB7CiAgICAgICAgY3Vyc29yOiBkZWZhdWx0OwogICAgICB9CgogICAgICAueHRlcm0ueHRlcm0tY3Vyc29yLXBvaW50ZXIgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQoKICAgICAgLnh0ZXJtLmNvbHVtbi1zZWxlY3QuZm9jdXMgewogICAgICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLWFjY2Vzc2liaWxpdHksCiAgICAgIC54dGVybSAueHRlcm0tbWVzc2FnZSB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgIH0KCiAgICAgIC54dGVybSAubGl2ZS1yZWdpb24gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAtOTk5OXB4OwogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWRpbSB7CiAgICAgICAgb3BhY2l0eTogMC41OwogICAgICB9CgogICAgICAueHRlcm0tdW5kZXJsaW5lIHsKICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IF89dGhpcy5hY3RpdmVUYWJJZD90aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpOm51bGw7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsLWNvbnRhaW5lciI+CiAgICAgICAgPCEtLSBNYWluIHRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCI+CiAgICAgICAgICAke18/Q2AKICAgICAgICAgICAgPGRpdiBpZD0iYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgICBgOkNgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj4KICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTp0ZXJtaW5hbCJ9IGljb25TaXplPSIzMiI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+Tm8gdGVybWluYWwgb3Blbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgfQogICAgICAgICAgPGRlZXMtYWN0aW9uYmFyPjwvZGVlcy1hY3Rpb25iYXI+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDwhLS0gVmVydGljYWwgdGFiIGJhciBvbiB0aGUgcmlnaHQgLS0+CiAgICAgICAgJHt0aGlzLnNob3dUYWJCYXI/Q2AKICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1iYXIiIHN0eWxlPSJ3aWR0aDogJHt0aGlzLnRhYkJhcldpZHRofXB4Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1oZWFkZXIiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItYmFyLXRpdGxlIj5UZXJtaW5hbHM8L3NwYW4+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiLWJhci1hY3Rpb25zIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRhYi1hY3Rpb24iIEBjbGljaz0ke3RoaXMuaGFuZGxlQWRkVGFifSB0aXRsZT0iTmV3IFRlcm1pbmFsIj4KICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6cGx1cyJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWItbGlzdCI+CiAgICAgICAgICAgICAgJHt0aGlzLnRhYnMubWFwKFM9PkNgCiAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0ZXJtaW5hbC10YWIgJHtTLmlkPT09dGhpcy5hY3RpdmVUYWJJZD8iYWN0aXZlIjoiIn0gJHtTLmV4aXRlZD8iZXhpdGVkIjoiIn0iCiAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLnN3aXRjaFRvVGFiKFMuaWQpfQogICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgLmljb249JHtTLmljb25OYW1lfQogICAgICAgICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiLWljb24gJHtTLnByb2Nlc3MmJiFTLmV4aXRlZD8icnVubmluZyI6IiJ9IgogICAgICAgICAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbGFiZWwiPiR7Uy5sYWJlbH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICR7Uy5leGl0ZWQ/Q2AKICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZXhpdC1iYWRnZSAke1MuZXhpdENvZGU9PT0wPyJzdWNjZXNzIjoiZXJyb3IifSI+CiAgICAgICAgICAgICAgICAgICAgICAke1MuZXhpdENvZGV9CiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAke1MuY2xvc2VhYmxlP0NgCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRhYi1jbG9zZSIgQGNsaWNrPSR7JD0+dGhpcy5oYW5kbGVUYWJDbG9zZSgkLFMuaWQpfT4KICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgYDoiIn0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIGApfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIGA6IiJ9CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXtsZXQgXz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmlzQnJpZ2h0PV8udGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbix0aGlzLnRlcm1pbmFsVGhlbWVTdWJzY3JpcHRpb249Xy50aGVtZU1hbmFnZXIudGhlbWVPYnNlcnZhYmxlLnN1YnNjcmliZShFPT57dGhpcy5pc0JyaWdodD1FLHRoaXMudGFiTWFuYWdlci51cGRhdGVBbGxUaGVtZXMoRSl9KTtsZXQgUz1yYS5nZXRJbnN0YW5jZSgpLFskLFRdPWF3YWl0IFByb21pc2UuYWxsKFtTLmxvYWRYdGVybSgpLFMubG9hZFh0ZXJtRml0QWRkb24oKV0pO3RoaXMudGFiTWFuYWdlci5zZXRYdGVybU1vZHVsZXMoJCxUKSxhd2FpdCB0aGlzLmNyZWF0ZVNoZWxsVGFiKCl9YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKXthd2FpdCBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpfWFzeW5jIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7bGV0IF89dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO18mJnRoaXMucmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKF8pLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRhYk1hbmFnZXIuZGlzcG9zZUFsbCgpLGF3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCl9YXN5bmMgaGFuZGxlQWRkVGFiKCl7YXdhaXQgdGhpcy5jcmVhdGVTaGVsbFRhYigpfWhhbmRsZVRhYkNsb3NlKF8sUyl7Xy5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsb3NlVGFiKFMpfXN3aXRjaFRvVGFiKF8pe2lmKF89PT10aGlzLmFjdGl2ZVRhYklkKXJldHVybjtsZXQgUz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKF8pO2lmKCFTKXJldHVybjtsZXQgJD10aGlzLmFjdGl2ZVRhYklkO3RoaXMuYWN0aXZlVGFiSWQmJnRoaXMuZGV0YWNoQWN0aXZlVGVybWluYWwoKSx0aGlzLmFjdGl2ZVRhYklkPV8sdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy51cGRhdGVDb21wbGV0ZS50aGVuKCgpPT57dGhpcy5hdHRhY2hUZXJtaW5hbFRvQ29udGFpbmVyKFMpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1zd2l0Y2hlZCIse2J1YmJsZXM6ITAsY29tcG9zZWQ6ITAsZGV0YWlsOnt0YWJJZDpfLHByZXZpb3VzVGFiSWQ6JH19KSl9KX1kZXRhY2hBY3RpdmVUZXJtaW5hbCgpe2xldCBfPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZS10ZXJtaW5hbC1jb250YWluZXIiKTtfJiYoXy5pbm5lckhUTUw9IiIpfWF0dGFjaFRlcm1pbmFsVG9Db250YWluZXIoXyl7bGV0IFM9dGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgiYWN0aXZlLXRlcm1pbmFsLWNvbnRhaW5lciIpO1MmJih0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoUyksUy5pbm5lckhUTUw9IiIsXy50ZXJtaW5hbC5vcGVuKFMpLF8uZml0QWRkb24uZml0KCksXy50ZXJtaW5hbC5mb2N1cygpKX1oYW5kbGVSZXNpemUoKXtpZih0aGlzLmFjdGl2ZVRhYklkKXtsZXQgXz10aGlzLnRhYk1hbmFnZXIuZ2V0VGFiKHRoaXMuYWN0aXZlVGFiSWQpO18mJl8uZml0QWRkb24uZml0KCl9fWFzeW5jIHNwYXduUHJvY2Vzc0ZvclRhYihfLFMsJD1bXSl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe18udGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksXy50ZXJtaW5hbC53cml0ZShgXHUyNzRDIE5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUuXHIKYCksXy50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpO3JldHVybn10cnl7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkeXx8KF8udGVybWluYWwud3JpdGUoYEluaXRpYWxpemluZyBlbnZpcm9ubWVudC4uLlxyCmApLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuaW5pdCgpKTtsZXQgVD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKFMsJCk7VC5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6cT0+e18udGVybWluYWwud3JpdGUocSl9fSkpO2xldCBFPVQuaW5wdXQuZ2V0V3JpdGVyKCk7Xy50ZXJtaW5hbC5vbkRhdGEocT0+e0Uud3JpdGUocSl9KSx0aGlzLnRhYk1hbmFnZXIuc2V0VGFiUHJvY2VzcyhfLmlkLFQsRSksdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksVC5leGl0LnRoZW4ocT0+e3RoaXMuaGFuZGxlUHJvY2Vzc0V4aXQoXy5pZCxxKX0pfWNhdGNoKFQpe18udGVybWluYWwud3JpdGUoIlx4MUJbMzFtIiksXy50ZXJtaW5hbC53cml0ZShgXHUyNzRDIEZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiAke1R9XHIKYCksXy50ZXJtaW5hbC53cml0ZSgiXHgxQlswbSIpLGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzcGF3biBwcm9jZXNzOiIsVCl9fWhhbmRsZVByb2Nlc3NFeGl0KF8sUyl7bGV0ICQ9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihfKTtpZighJClyZXR1cm47dGhpcy50YWJNYW5hZ2VyLm1hcmtUYWJFeGl0ZWQoXyxTKTtsZXQgVD1TPT09MD9gXHIKXHgxQlszMm1bUHJvY2VzcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XVx4MUJbMG1ccgpgOmBccgpceDFCWzMxbVtQcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJHtTfV1ceDFCWzBtXHIKYDskLnRlcm1pbmFsLndyaXRlKFQpLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInByb2Nlc3MtY29tcGxldGUiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6XyxleGl0Q29kZTpTfX0pKSwkLmNsb3NlYWJsZSYmdGhpcy5zaG93RXhpdGVkVGFiQWN0aW9uYmFyKF8sJC5sYWJlbCxTKX1hc3luYyBzaG93RXhpdGVkVGFiQWN0aW9uYmFyKF8sUywkKXtsZXQgVD0kPT09MDsoYXdhaXQgdGhpcy5zaG93QWN0aW9uYmFyKHttZXNzYWdlOlQ/YCIke1N9IiBjb21wbGV0ZWQuIENsb3NlIHRhYj9gOmAiJHtTfSIgZXhpdGVkIChjb2RlICR7JH0pLiBDbG9zZSB0YWI/YCx0eXBlOlQ/ImluZm8iOiJ3YXJuaW5nIixpY29uOlQ/Imx1Y2lkZTpjaGVja0NpcmNsZSI6Imx1Y2lkZTphbGVydFRyaWFuZ2xlIixhY3Rpb25zOlt7aWQ6ImNsb3NlIixsYWJlbDoiQ2xvc2UgVGFiIixwcmltYXJ5OiEwfSx7aWQ6ImtlZXAiLGxhYmVsOiJLZWVwIE9wZW4ifV0sdGltZW91dDp7ZHVyYXRpb246MWU0LGRlZmF1bHRBY3Rpb25JZDoiY2xvc2UifSxkaXNtaXNzaWJsZTohMH0pKS5hY3Rpb25JZD09PSJjbG9zZSImJnRoaXMuY2xvc2VUYWIoXyl9YXN5bmMgY3JlYXRlU2hlbGxUYWIoXyl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmNyZWF0ZVRhYih7dHlwZToic2hlbGwiLGxhYmVsOl98fGBiYXNoICR7dGhpcy50YWJNYW5hZ2VyLmdldFRhYkNvdW50KCkrMX1gLGNsb3NlYWJsZTp0aGlzLnRhYk1hbmFnZXIuZ2V0VGFiQ291bnQoKT4wfSx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksdGhpcy5zd2l0Y2hUb1RhYihTLmlkKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IHRoaXMuc3Bhd25Qcm9jZXNzRm9yVGFiKFMsImpzaCIpLHRoaXMudGFiTWFuYWdlci5nZXRUYWJDb3VudCgpPT09MSYmdGhpcy5zZXR1cENvbW1hbmQmJihhd2FpdCB0aGlzLndhaXRGb3JQcm9tcHQoUy50ZXJtaW5hbCwifi8iKSxTLmlucHV0V3JpdGVyJiZTLmlucHV0V3JpdGVyLndyaXRlKHRoaXMuc2V0dXBDb21tYW5kKSksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgidGFiLWNyZWF0ZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6Uy5pZH19KSksUy5pZH1hc3luYyBjcmVhdGVQcm9jZXNzVGFiKF8pe2xldCBTPXRoaXMudGFiTWFuYWdlci5jcmVhdGVUYWIoXyx0aGlzLmlzQnJpZ2h0KTtyZXR1cm4gdGhpcy50YWJzPXRoaXMudGFiTWFuYWdlci5nZXRBbGxUYWJzKCksXy5zd2l0Y2hUb1RhYiE9PSExJiZ0aGlzLnN3aXRjaFRvVGFiKFMuaWQpLGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGUsXy5jb21tYW5kJiZhd2FpdCB0aGlzLnNwYXduUHJvY2Vzc0ZvclRhYihTLF8uY29tbWFuZCxfLmFyZ3MpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jcmVhdGVkIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6e3RhYklkOlMuaWR9fSkpLFMuaWR9Z2V0QWN0aXZlVGFiKCl7cmV0dXJuIHRoaXMuYWN0aXZlVGFiSWQmJnRoaXMudGFiTWFuYWdlci5nZXRUYWIodGhpcy5hY3RpdmVUYWJJZCl8fG51bGx9Z2V0VGFicygpe3JldHVybiB0aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpfXNlbGVjdFRhYihfKXtyZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmhhc1RhYihfKT8odGhpcy5zd2l0Y2hUb1RhYihfKSwhMCk6ITF9Y2xvc2VUYWIoXyl7bGV0IFM9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihfKTtpZighU3x8IVMuY2xvc2VhYmxlKXJldHVybiExO2lmKF89PT10aGlzLmFjdGl2ZVRhYklkKXtsZXQgJD10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLFQ9JC5maW5kSW5kZXgocT0+cS5pZD09PV8pLEU9JFtUKzFdfHwkW1QtMV07RT90aGlzLnN3aXRjaFRvVGFiKEUuaWQpOih0aGlzLmFjdGl2ZVRhYklkPW51bGwsdGhpcy5kZXRhY2hBY3RpdmVUZXJtaW5hbCgpKX1yZXR1cm4gdGhpcy50YWJNYW5hZ2VyLmNsb3NlVGFiKF8pLHRoaXMudGFicz10aGlzLnRhYk1hbmFnZXIuZ2V0QWxsVGFicygpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInRhYi1jbG9zZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dGFiSWQ6X319KSksITB9d3JpdGVUb1RhYihfLFMpe2xldCAkPXRoaXMudGFiTWFuYWdlci5nZXRUYWIoXyk7cmV0dXJuICQ/KCQudGVybWluYWwud3JpdGUoUyksITApOiExfXNlbmRJbnB1dFRvVGFiKF8sUyl7bGV0ICQ9dGhpcy50YWJNYW5hZ2VyLmdldFRhYihfKTtyZXR1cm4hJHx8ISQuaW5wdXRXcml0ZXI/ITE6KCQuaW5wdXRXcml0ZXIud3JpdGUoUyksITApfWFzeW5jIHNob3dBY3Rpb25iYXIoXyl7cmV0dXJuIHRoaXMudGVybWluYWxBY3Rpb25iYXJ8fCh0aGlzLnRlcm1pbmFsQWN0aW9uYmFyPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1hY3Rpb25iYXIiKSksdGhpcy50ZXJtaW5hbEFjdGlvbmJhcj8uc2hvdyhfKX1hc3luYyB3YWl0Rm9yUHJvbXB0KF8sUyl7cmV0dXJuIG5ldyBQcm9taXNlKCQ9PntsZXQgVD0oKT0+e2xldCBFPV8uYnVmZmVyLmFjdGl2ZTtmb3IobGV0IHE9MDtxPEUubGVuZ3RoO3ErKyl7bGV0IEI9RS5nZXRMaW5lKHEpO2lmKEImJkIudHJhbnNsYXRlVG9TdHJpbmcoKS5pbmNsdWRlcyhTKSl7c2V0VGltZW91dCgoKT0+eyQoKX0sMTAwKTtyZXR1cm59fXNldFRpbWVvdXQoVCwxMDApfTtUKCl9KX1hc3luYyBzZXRFbnZpcm9ubWVudFZhcmlhYmxlcyhfKXtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0aHJvdyBuZXcgRXJyb3IoIk5vIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBhdmFpbGFibGUiKTtsZXQgUz0iIjtmb3IobGV0ICQgaW4gXylTKz1gZXhwb3J0ICR7JH09IiR7X1skXX0iCmA7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoIi9zb3VyY2UuZW52IixTKX1nZXRFeGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fXN0YXRpY3tsbihpLHIpfX07cmV0dXJuIFI9aX0pKCl9KTt2YXIgUWRlLEpkZSxaWHIsWFhyLFFYcixtZHIsZ2RyPXAoKCk9Pnt4ZSgpO2loKCk7TjQoKTtDTigpO0ZOKCk7SU4oKTtPZCgpO1pOKCk7UWRlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sSmRlPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxaWHI9KCgpPT57bGV0IGU9W3llKCJkZW1vLXZpZXctZGFzaGJvYXJkIildLHQscj1bXSxpLGE9emU7dmFyIG49Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBvPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO1FkZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpvfSxudWxsLHIpLG49aT10LnZhbHVlLG8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pfXN0YXRpYyBzdHlsZXM9W20uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgaDEgewogICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwMDAiLCIjZmZmIil9OwogICAgICB9CiAgICAgIGRlZXMtc3RhdHNncmlkIHsKICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICB9CiAgICBgXTtzdGF0c1RpbGVzPVt7aWQ6InVzZXJzIix0aXRsZToiQWN0aXZlIFVzZXJzIix2YWx1ZToxMjM0LHR5cGU6Im51bWJlciIsaWNvbjoiZmFVc2VycyIsZGVzY3JpcHRpb246IisxNSUgZnJvbSBsYXN0IHdlZWsiLGNvbG9yOiIjMjJjNTVlIn0se2lkOiJwYWdldmlld3MiLHRpdGxlOiJQYWdlIFZpZXdzIix2YWx1ZTo1NjcwMCx0eXBlOiJudW1iZXIiLGljb246ImZhRXllIixkZXNjcmlwdGlvbjoiNTYuN2sgdG90YWwgdmlld3MiLGNvbG9yOiIjM2I4MmY2In0se2lkOiJ1cHRpbWUiLHRpdGxlOiJTeXN0ZW0gVXB0aW1lIix2YWx1ZTo4OSx1bml0OiIlIix0eXBlOiJnYXVnZSIsaWNvbjoiZmFTZXJ2ZXIiLGRlc2NyaXB0aW9uOiJMYXN0IDMwIGRheXMiLGNvbG9yOiIjMTBiOTgxIixnYXVnZU9wdGlvbnM6e21pbjowLG1heDoxMDAsdGhyZXNob2xkczpbe3ZhbHVlOjgwLGNvbG9yOiIjZWY0NDQ0In0se3ZhbHVlOjkwLGNvbG9yOiIjZjU5ZTBiIn0se3ZhbHVlOjEwMCxjb2xvcjoiIzEwYjk4MSJ9XX19LHtpZDoicmVzcG9uc2UiLHRpdGxlOiJBdmcgUmVzcG9uc2UgVGltZSIsdmFsdWU6My4yLHVuaXQ6InMiLHR5cGU6Im51bWJlciIsaWNvbjoiZmFDbG9jayIsZGVzY3JpcHRpb246Ii0wLjVzIGltcHJvdmVtZW50Iixjb2xvcjoiI2Y1OWUwYiJ9LHtpZDoicmV2ZW51ZSIsdGl0bGU6Ik1vbnRobHkgUmV2ZW51ZSIsdmFsdWU6NDg1MjAsdW5pdDoiJCIsdHlwZToidHJlbmQiLGljb246ImZhRG9sbGFyU2lnbiIsZGVzY3JpcHRpb246Iis4LjIlIGdyb3d0aCIsY29sb3I6IiMyMmM1NWUiLHRyZW5kRGF0YTpbMzVlMywzOGUzLDM3NTAwLDQxZTMsMzk4MDAsNDJlMyw0NDEwMCw0MzIwMCw0NTYwMCw0NzEwMCw0NjgwMCw0ODUyMF19LHtpZDoidHJhZmZpYyIsdGl0bGU6IlRyYWZmaWMgVHJlbmQiLHZhbHVlOjE2ODAsdHlwZToidHJlbmQiLGljb246ImZhQ2hhcnRMaW5lIixkZXNjcmlwdGlvbjoiTGFzdCA3IGRheXMiLGNvbG9yOiIjM2I4MmY2Iix0cmVuZERhdGE6WzEyMDAsMTM1MCwxMTAwLDE0NTAsMTYwMCwxNTUwLDE2ODBdfV07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxoMT5EYXNoYm9hcmQ8L2gxPgogICAgICA8cD5XZWxjb21lIHRvIHlvdXIgYXBwbGljYXRpb24gZGFzaGJvYXJkLiBIZXJlJ3MgYW4gb3ZlcnZpZXcgb2YgeW91ciBtZXRyaWNzOjwvcD4KICAgICAgPGRlZXMtc3RhdHNncmlkCiAgICAgICAgLnRpbGVzPSR7dGhpcy5zdGF0c1RpbGVzfQogICAgICAgIEB0aWxlLWFjdGlvbj0ke289Pntjb25zb2xlLmxvZygiVGlsZSBhY3Rpb246IixvLmRldGFpbCl9fQogICAgICA+PC9kZWVzLXN0YXRzZ3JpZD4KICAgIGB9c3RhdGlje0pkZShpLHIpfX07cmV0dXJuIG49aX0pKCksWFhyPSgoKT0+e2xldCBlPVt5ZSgiZGVtby12aWV3LWFuYWx5dGljcyIpXSx0LHI9W10saSxhPXplO3ZhciBuPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgbz10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtRZGUobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6b30sbnVsbCxyKSxuPWk9dC52YWx1ZSxvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm99KX1zdGF0aWMgc3R5bGVzPVttLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICB9CiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwIiwiI2ZmZiIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxoMT5BbmFseXRpY3M8L2gxPgogICAgICA8cD5UaGlzIGlzIHRoZSBhbmFseXRpY3Mgdmlldy4gWW91IGNhbiBhZGQgY2hhcnRzIGFuZCBtZXRyaWNzIGhlcmUuPC9wPgogICAgYH1zdGF0aWN7SmRlKGkscil9fTtyZXR1cm4gbj1pfSkoKSxRWHI9KCgpPT57bGV0IGU9W3llKCJkZW1vLXZpZXctc2V0dGluZ3MiKV0sdCxyPVtdLGksYT16ZTt2YXIgbj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7UWRlKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1pPXQudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIHN0eWxlcz1bbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgfQogICAgICBoMSB7CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAwMCIsIiNmZmYiKX07CiAgICAgIH0KICAgICAgLnNldHRpbmdzLXNlY3Rpb24gewogICAgICAgIG1hcmdpbi10b3A6IDMwcHg7CiAgICAgIH0KICAgICAgLnNldHRpbmdzLXNlY3Rpb24gaDIgewogICAgICAgIGZvbnQtc2l6ZTogMThweDsKICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMzMzIiwiI2NjYyIpfTsKICAgICAgfQogICAgICAuaG9yaXpvbnRhbC1mb3JtLXNlY3Rpb24gewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjVmNWY1IiwiIzFhMWExYSIpfTsKICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBtYXJnaW46IDE1cHggMDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxoMT5TZXR0aW5nczwvaDE+CiAgICAgIDxwPkNvbmZpZ3VyZSB5b3VyIGFwcGxpY2F0aW9uIHNldHRpbmdzIGJlbG93OjwvcD4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24iPgogICAgICAgIDxoMj5HZW5lcmFsIFNldHRpbmdzPC9oMj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9ImFwcE5hbWUiIGxhYmVsPSJBcHBsaWNhdGlvbiBOYW1lIiB2YWx1ZT0iTXkgQXBwIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LXRleHQga2V5PSJhcGlFbmRwb2ludCIgbGFiZWw9IkFQSSBFbmRwb2ludCIgdmFsdWU9Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tIj48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAgIGtleT0iZW52aXJvbm1lbnQiCiAgICAgICAgICAgIGxhYmVsPSJFbnZpcm9ubWVudCIKICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRGV2ZWxvcG1lbnQiLGtleToiZGV2In0se29wdGlvbjoiU3RhZ2luZyIsa2V5OiJzdGFnaW5nIn0se29wdGlvbjoiUHJvZHVjdGlvbiIsa2V5OiJwcm9kIn1dfQogICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJQcm9kdWN0aW9uIixrZXk6InByb2QifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9ImVuYWJsZU5vdGlmaWNhdGlvbnMiIGxhYmVsPSJFbmFibGUgTm90aWZpY2F0aW9ucyIgdmFsdWU9InRydWUiPjwvZGVlcy1pbnB1dC1jaGVja2JveD4KICAgICAgICAgIDxkZWVzLWlucHV0LWNoZWNrYm94IGtleT0iZW5hYmxlQW5hbHl0aWNzIiBsYWJlbD0iRW5hYmxlIEFuYWx5dGljcyIgdmFsdWU9ImZhbHNlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1mb3JtLXN1Ym1pdD5TYXZlIEdlbmVyYWwgU2V0dGluZ3M8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbiI+CiAgICAgICAgPGgyPkRpc3BsYXkgUHJlZmVyZW5jZXM8L2gyPgogICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZm9ybS1zZWN0aW9uIj4KICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwOyBtYXJnaW4tYm90dG9tOiAxNnB4OyI+UXVpY2sgZGlzcGxheSBzZXR0aW5ncyB1c2luZyBob3Jpem9udGFsIGxheW91dDo8L3A+CiAgICAgICAgICA8ZGVlcy1mb3JtIGhvcml6b250YWwtbGF5b3V0PgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgICAgIGtleT0idGhlbWUiCiAgICAgICAgICAgICAgbGFiZWw9IlRoZW1lIgogICAgICAgICAgICAgIC5lbmFibGVTZWFyY2g9JHshMX0KICAgICAgICAgICAgICAub3B0aW9ucz0ke1t7b3B0aW9uOiJMaWdodCIsa2V5OiJsaWdodCJ9LHtvcHRpb246IkRhcmsiLGtleToiZGFyayJ9LHtvcHRpb246IkF1dG8iLGtleToiYXV0byJ9XX0KICAgICAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHt7b3B0aW9uOiJEYXJrIixrZXk6ImRhcmsifX0KICAgICAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgICBrZXk9Imxhbmd1YWdlIgogICAgICAgICAgICAgIGxhYmVsPSJMYW5ndWFnZSIKICAgICAgICAgICAgICAuZW5hYmxlU2VhcmNoPSR7ITF9CiAgICAgICAgICAgICAgLm9wdGlvbnM9JHtbe29wdGlvbjoiRW5nbGlzaCIsa2V5OiJlbiJ9LHtvcHRpb246Ikdlcm1hbiIsa2V5OiJkZSJ9LHtvcHRpb246IlNwYW5pc2giLGtleToiZXMifSx7b3B0aW9uOiJGcmVuY2giLGtleToiZnIifV19CiAgICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiRW5nbGlzaCIsa2V5OiJlbiJ9fQogICAgICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9ImNvbXBhY3RNb2RlIiBsYWJlbD0iQ29tcGFjdCBNb2RlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8L2RlZXMtZm9ybT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uIj4KICAgICAgICA8aDI+Tm90aWZpY2F0aW9uIFNldHRpbmdzPC9oMj4KICAgICAgICA8ZGVlcy1mb3JtPgogICAgICAgICAgPGRlZXMtaW5wdXQtcmFkaW9ncm91cAogICAgICAgICAgICAubGFiZWw9JHsiRW1haWwgRnJlcXVlbmN5In0KICAgICAgICAgICAgLm9wdGlvbnM9JHtbIlJlYWwtdGltZSIsIkRhaWx5IERpZ2VzdCIsIldlZWtseSBTdW1tYXJ5IiwiTmV2ZXIiXX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7IlJlYWwtdGltZSJ9CiAgICAgICAgICAgIC5rZXk9JHsiZW1haWxGcmVxdWVuY3kifQogICAgICAgICAgPjwvZGVlcy1pbnB1dC1yYWRpb2dyb3VwPgogICAgICAgICAgPGRlZXMtaW5wdXQtY2hlY2tib3gga2V5PSJwdXNoTm90aWZpY2F0aW9ucyIgbGFiZWw9IkVuYWJsZSBQdXNoIE5vdGlmaWNhdGlvbnMiIHZhbHVlPSJ0cnVlIj48L2RlZXMtaW5wdXQtY2hlY2tib3g+CiAgICAgICAgICA8ZGVlcy1pbnB1dC1jaGVja2JveCBrZXk9InNvdW5kQWxlcnRzIiBsYWJlbD0iUGxheSBTb3VuZCBmb3IgQWxlcnRzIiB2YWx1ZT0idHJ1ZSI+PC9kZWVzLWlucHV0LWNoZWNrYm94PgogICAgICAgICAgPGRlZXMtZm9ybS1zdWJtaXQ+VXBkYXRlIE5vdGlmaWNhdGlvbnM8L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgPC9kZWVzLWZvcm0+CiAgICAgIDwvZGl2PgogICAgYH1zdGF0aWN7SmRlKGkscil9fTtyZXR1cm4gbj1pfSkoKSxtZHI9KCk9PkNgCiAgPHN0eWxlPgogICAgYm9keSB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgIH0KICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgfQogIDwvc3R5bGU+CiAgPGRpdiBjbGFzcz0iZGVtby1jb250YWluZXIiPgogICAgPGRlZXMtc2ltcGxlLWFwcGRhc2gKICAgICAgbmFtZT0iTXkgQXBwbGljYXRpb24iCiAgICAgIHRlcm1pbmFsU2V0dXBDb21tYW5kPSJlY2hvICdXZWxjb21lIHRvIHRoZSB0ZXJtaW5hbCEnIgogICAgICAudmlld1RhYnM9JHtbe25hbWU6IkRhc2hib2FyZCIsaWNvbk5hbWU6Imx1Y2lkZTpob21lIixlbGVtZW50OlpYcn0se25hbWU6IkFuYWx5dGljcyIsaWNvbk5hbWU6Imx1Y2lkZTpsaW5lQ2hhcnQiLGVsZW1lbnQ6WFhyfSx7bmFtZToiU2V0dGluZ3MiLGljb25OYW1lOiJsdWNpZGU6c2V0dGluZ3MiLGVsZW1lbnQ6UVhyfV19CiAgICAgIEBsb2dvdXQ9JHsoKT0+e2NvbnNvbGUubG9nKCJMb2dvdXQgZXZlbnQgdHJpZ2dlcmVkIiksYWxlcnQoIkxvZ291dCBjbGlja2VkISIpfX0KICAgICAgQHZpZXctc2VsZWN0PSR7ZT0+e2NvbnNvbGUubG9nKCJWaWV3IHNlbGVjdGVkOiIsZS5kZXRhaWwudmlldy5uYW1lKX19CiAgICA+PC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogIDwvZGl2PgpgfSk7dmFyIEdiLERjLGJkcix2ZHI9cCgoKT0+e2dkcigpO3hlKCk7b3IoKTtKZSgpO0diPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sRGM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGJkcj0oKCk9PntsZXQgZT1beWUoImRlZXMtc2ltcGxlLWFwcGRhc2giKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXTt2YXIgeT1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHc9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baigpXSxsPVtqKHt0eXBlOkFycmF5fSldLGQ9W2ooe3R5cGU6U3RyaW5nfSldLHg9W2ZlKCldLEdiKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+Im5hbWUiaW4gayxnZXQ6az0+ay5uYW1lLHNldDooayxPKT0+e2submFtZT1PfX0sbWV0YWRhdGE6d30sbyxzKSxHYih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InZpZXdUYWJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4idmlld1RhYnMiaW4gayxnZXQ6az0+ay52aWV3VGFicyxzZXQ6KGssTyk9PntrLnZpZXdUYWJzPU99fSxtZXRhZGF0YTp3fSxjLHUpLEdiKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidGVybWluYWxTZXR1cENvbW1hbmQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJ0ZXJtaW5hbFNldHVwQ29tbWFuZCJpbiBrLGdldDprPT5rLnRlcm1pbmFsU2V0dXBDb21tYW5kLHNldDooayxPKT0+e2sudGVybWluYWxTZXR1cENvbW1hbmQ9T319LG1ldGFkYXRhOnd9LGgsZiksR2IodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOms9PiJzZWxlY3RlZFZpZXciaW4gayxnZXQ6az0+ay5zZWxlY3RlZFZpZXcsc2V0OihrLE8pPT57ay5zZWxlY3RlZFZpZXc9T319LG1ldGFkYXRhOnd9LHYsYiksR2IobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6d30sbnVsbCxyKSx5PWk9dC52YWx1ZSx3JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnd9KX1zdGF0aWMgZGVtbz1tZHI7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT1EYyh0aGlzLG8sIkFwcGxpY2F0aW9uIERhc2hib2FyZCIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUodyl7dGhpcy4jZT13fSN0PShEYyh0aGlzLHMpLERjKHRoaXMsYyxbXSkpO2dldCB2aWV3VGFicygpe3JldHVybiB0aGlzLiN0fXNldCB2aWV3VGFicyh3KXt0aGlzLiN0PXd9I3I9KERjKHRoaXMsdSksRGModGhpcyxoLCdlY2hvICJUZXJtaW5hbCByZWFkeSInKSk7Z2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKCl7cmV0dXJuIHRoaXMuI3J9c2V0IHRlcm1pbmFsU2V0dXBDb21tYW5kKHcpe3RoaXMuI3I9d30jaT0oRGModGhpcyxmKSxEYyh0aGlzLHYsdm9pZCAwKSk7Z2V0IHNlbGVjdGVkVmlldygpe3JldHVybiB0aGlzLiNpfXNldCBzZWxlY3RlZFZpZXcodyl7dGhpcy4jaT13fXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTUlKSIsImhzbCgwIDAlIDkwJSkiKX07CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICByaWdodDogMHB4OwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5hcHBiYXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDBweDsKICAgICAgICBsZWZ0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNHB4KTsKICAgICAgICB3aWR0aDogMjQwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk5JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDkxJSkiLCJoc2woMCAwJSAxMyUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyIG1pbi1jb250ZW50OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC5zaWRlYmFyLWhlYWRlciB7CiAgICAgICAgcGFkZGluZzogMjBweCAxNnB4OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogMTJweDsKICAgICAgfQoKICAgICAgLmhlYWRlci1pY29uLXdyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICB3aWR0aDogMzZweDsKICAgICAgICBoZWlnaHQ6IDM2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgibGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsKDIxNSAyMCUgOTUlKSAwJSwgaHNsKDIxNSAyMCUgOTAlKSAxMDAlKSIsImxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbCgyMTUgMjAlIDE4JSkgMCUsIGhzbCgyMTUgMjAlIDE0JSkgMTAwJSkiKX07CiAgICAgICAgYm94LXNoYWRvdzogJHttLmJkVGhlbWUoIjAgMXB4IDJweCByZ2IoMCAwIDAgLyAwLjA1KSwgaW5zZXQgMCAxcHggMCByZ2IoMjU1IDI1NSAyNTUgLyAwLjUpIiwiMCAxcHggMnB4IHJnYigwIDAgMCAvIDAuMiksIGluc2V0IDAgMXB4IDAgcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSkiKX07CiAgICAgIH0KCiAgICAgIC5oZWFkZXItaWNvbi13cmFwcGVyIGRlZXMtaWNvbiB7CiAgICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxNSAyMCUgNDAlKSIsImhzbCgyMTUgMjAlIDcwJSkiKX07CiAgICAgIH0KCiAgICAgIC5hcHBOYW1lIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDklKSIsImhzbCgwIDAlIDk4JSkiKX07CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOwogICAgICB9CgogICAgICAudmlld1RhYnMtY29udGFpbmVyIHsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjsKICAgICAgICBzY3JvbGxiYXItY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfSB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgewogICAgICAgIHdpZHRoOiA2cHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgfQoKICAgICAgLnZpZXdUYWJzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFicy1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNzUlKSIsImhzbCgwIDAlIDMwJSkiKX07CiAgICAgIH0KCiAgICAgIC5zZWN0aW9uLWxhYmVsIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweCA4cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgICB9CgogICAgICAudmlld1RhYnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBnYXA6IDJweDsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2NSUpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA0KSIsImhzbCgwIDAlIDEwMCUgLyAwLjA1KSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDE1JSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAudmlld1RhYjphY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAwJSAvIDAuMDYpIiwiaHNsKDAgMCUgMTAwJSAvIDAuMDcpIil9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7CiAgICAgIH0KCiAgICAgIC52aWV3VGFiLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxNSAyNSUgOTUlKSIsImhzbCgyMTUgMjAlIDE1JSkiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDI1JSAzMCUpIiwiaHNsKDIxNSAyNSUgODUlKSIpfTsKICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZDo6YmVmb3JlIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDhweDsKICAgICAgICBib3R0b206IDhweDsKICAgICAgICB3aWR0aDogM3B4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMjE1IDcwJSA1MCUpIiwiaHNsKDIxNSA3MCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnZpZXdUYWIgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC41NTsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnZpZXdUYWI6aG92ZXIgZGVlcy1pY29uIHsKICAgICAgICBvcGFjaXR5OiAwLjc1OwogICAgICB9CgogICAgICAudmlld1RhYi5zZWxlY3RlZCBkZWVzLWljb24gewogICAgICAgIG9wYWNpdHk6IDAuOTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgyMTUgNzAlIDQ1JSkiLCJoc2woMjE1IDcwJSA2NSUpIil9OwogICAgICB9CgogICAgICAudmlld1RhYiBzcGFuIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLmFwcEFjdGlvbnMgewogICAgICAgIHBhZGRpbmc6IDEycHggOHB4OwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTElKSIsImhzbCgwIDAlIDEzJSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFjdGlvbjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDg0JSA2MCUgLyAwLjA4KSIsImhzbCgwIDg0JSA2MCUgLyAwLjEyKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDg0JSA0NSUpIiwiaHNsKDAgODQlIDY1JSkiKX07CiAgICAgIH0KCiAgICAgIC5hY3Rpb24gZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDE2cHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAuYWN0aW9uOmhvdmVyIGRlZXMtaWNvbiB7CiAgICAgICAgb3BhY2l0eTogMC45OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgODQlIDQ1JSkiLCJoc2woMCA4NCUgNjUlKSIpfTsKICAgICAgfQoKICAgICAgLmFwcGNvbnRlbnQgewogICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMHB4OwogICAgICAgIHJpZ2h0OiAwcHg7CiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNHB4KTsKICAgICAgICBib3R0b206IDI0cHg7CiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI0MHB4KTsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTclKSIsImhzbCgwIDAlIDUlKSIpfTsKICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluOwogICAgICB9CgogICAgICAuY29udHJvbGJhciB7CiAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJvdHRvbTogMHB4OwogICAgICAgIGxlZnQ6IDBweDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDI0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMjAgMTMlIDE4JSkiLCJoc2woMjIwIDEzJSAxMiUpIil9OwogICAgICAgIHotaW5kZXg6IDI7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOwogICAgICB9CgogICAgICAuY29udHJvbCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDcwJSk7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBoc2woMCAwJSAxMDAlIC8gMC4wOCk7CiAgICAgIH0KCiAgICAgIC5jb250cm9sOmZpcnN0LWNoaWxkIHsKICAgICAgICBib3JkZXItbGVmdDogbm9uZTsKICAgICAgfQoKICAgICAgLmNvbnRyb2w6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IGhzbCgwIDAlIDEwMCUgLyAwLjA2KTsKICAgICAgICBjb2xvcjogaHNsKDAgMCUgOTUlKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wgZGVlcy1pY29uIHsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgIH0KCiAgICAgIC5jb250cm9sLnN0YXR1cy1jb25uZWN0ZWQgZGVlcy1pY29uIHsKICAgICAgICBjb2xvcjogaHNsKDE0MiA3MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmNvbnRyb2wuc3RhdHVzLXRlcm1pbmFsIGRlZXMtaWNvbiB7CiAgICAgICAgY29sb3I6IGhzbCg0NSA5MCUgNTUlKTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9Im1haW5jb250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImFwcGJhciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1pY29uLXdyYXBwZXIiPgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpsYXlvdXRHcmlkIn0iPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXBwTmFtZSI+JHt0aGlzLm5hbWV9PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InZpZXdUYWJzLWNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tbGFiZWwiPk5hdmlnYXRpb248L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idmlld1RhYnMiPgogICAgICAgICAgICAgICR7dGhpcy52aWV3VGFicy5tYXAodz0+Q2AKICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ2aWV3VGFiICR7dGhpcy5zZWxlY3RlZFZpZXc9PT13PyJzZWxlY3RlZCI6IiJ9IgogICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmxvYWRWaWV3KHcpfQogICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgJHt3Lmljb25OYW1lP0NgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIke3cuaWNvbk5hbWUuaW5jbHVkZXMoIjoiKT93Lmljb25OYW1lOmBsdWNpZGU6JHt3Lmljb25OYW1lfWB9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgOkNgCiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6ZmlsZSJ9Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7dy5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcEFjdGlvbnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3Rpb24iIEBjbGljaz0keygpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9nb3V0Iix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX19PgogICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249IiR7Imx1Y2lkZTpsb2dPdXQifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgPHNwYW4+U2lnbiBvdXQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iYXBwY29udGVudCI+CiAgICAgICAgICA8IS0tIENvbnRlbnQgZ29lcyBoZXJlIC0tPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xiYXIiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbCBzdGF0dXMtY29ubmVjdGVkIj4KICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0iJHsibHVjaWRlOndpZmkifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuPkNvbm5lY3RlZDwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbCBzdGF0dXMtdGVybWluYWwiIEBjbGljaz0ke3RoaXMubGF1bmNoVGVybWluYWx9PgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSIkeyJsdWNpZGU6dGVybWluYWwifSI+PC9kZWVzLWljb24+CiAgICAgICAgICAgIDxzcGFuPlRlcm1pbmFsPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQodyl7bGV0IGs9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7aWYoc3VwZXIuZmlyc3RVcGRhdGVkKHcpLHRoaXMudmlld1RhYnMmJnRoaXMudmlld1RhYnMubGVuZ3RoPjApe2xldCBPPXRoaXMuc2VsZWN0ZWRWaWV3fHx0aGlzLnZpZXdUYWJzWzBdO2F3YWl0IHRoaXMubG9hZFZpZXcoTyl9fWN1cnJlbnRUZXJtaW5hbD1EYyh0aGlzLGIpO2FzeW5jIGxhdW5jaFRlcm1pbmFsKCl7bGV0IHc9YXdhaXQgdGhpcy5kb210b29sc1Byb21pc2U7aWYodGhpcy5jdXJyZW50VGVybWluYWwpe2F3YWl0IHRoaXMuY2xvc2VUZXJtaW5hbCgpO3JldHVybn1sZXQgaz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLm1haW5jb250YWluZXIiKSx7RGVlc1dvcmtzcGFjZVRlcm1pbmFsOk99PWF3YWl0IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihXYigpLGZkcikpLHo9bmV3IE87cmV0dXJuIHouc2V0dXBDb21tYW5kPXRoaXMudGVybWluYWxTZXR1cENvbW1hbmQsdGhpcy5jdXJyZW50VGVybWluYWw9eixrLmFwcGVuZENoaWxkKHopLHouc3R5bGUucG9zaXRpb249ImFic29sdXRlIix6LnN0eWxlLnpJbmRleD0iMTAiLHouc3R5bGUudG9wPSIwcHgiLHouc3R5bGUubGVmdD0iMjQwcHgiLHouc3R5bGUucmlnaHQ9IjBweCIsei5zdHlsZS5ib3R0b209IjI0cHgiLHouc3R5bGUub3BhY2l0eT0iMCIsei5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk5KSIsei5zdHlsZS50cmFuc2l0aW9uPSJhbGwgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSIsei5zdHlsZS5ib3hTaGFkb3c9IjAgMjVweCA1MHB4IC0xMnB4IHJnYigwIDAgMCAvIDAuNSksIDAgMCAwIDFweCByZ2IoMjU1IDI1NSAyNTUgLyAwLjA1KSIsei5zdHlsZS5tYXhXaWR0aD1gY2FsYygke2suY2xpZW50V2lkdGh9cHggLTI0MHB4KWAsei5zdHlsZS5tYXhIZWlnaHQ9YGNhbGMoJHtrLmNsaWVudEhlaWdodH1weCAtIDI0cHgpYCx6LmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwoKT0+dGhpcy5jbG9zZVRlcm1pbmFsKCkpLGF3YWl0IHcuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigwKSx6LnN0eWxlLm9wYWNpdHk9IjEiLHouc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKDApIHNjYWxlKDEpIix6fWFzeW5jIGNsb3NlVGVybWluYWwoKXtsZXQgdz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZTt0aGlzLmN1cnJlbnRUZXJtaW5hbCYmKHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLm9wYWNpdHk9IjAiLHRoaXMuY3VycmVudFRlcm1pbmFsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTkpIixhd2FpdCB3LmNvbnZlbmllbmNlLnNtYXJ0ZGVsYXkuZGVsYXlGb3IoMjUwKSx0aGlzLmN1cnJlbnRUZXJtaW5hbC5yZW1vdmUoKSx0aGlzLmN1cnJlbnRUZXJtaW5hbD1udWxsKX1jdXJyZW50Vmlldzthc3luYyBsb2FkVmlldyh3KXtsZXQgaz10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmFwcGNvbnRlbnQiKSxPPW5ldyB3LmVsZW1lbnQ7dGhpcy5jdXJyZW50VmlldyYmdGhpcy5jdXJyZW50Vmlldy5yZW1vdmUoKSxrLmFwcGVuZENoaWxkKE8pLHRoaXMuY3VycmVudFZpZXc9Tyx0aGlzLnNlbGVjdGVkVmlldz13LHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInZpZXctc2VsZWN0Iix7ZGV0YWlsOnt2aWV3Ond9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9c3RhdGlje0RjKGkscil9fTtyZXR1cm4geT1pfSkoKX0pO3ZhciB4ZHI9cCgoKT0+e3ZkcigpfSk7dmFyIHlkcix3ZHI9cCgoKT0+e3hlKCk7eWRyPSgpPT5DYAogIDxzdHlsZT4KICAgIGJvZHkgewogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAuZGVtby1jb250YWluZXIgewogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogMDsKICAgICAgbGVmdDogMDsKICAgIH0KICA8L3N0eWxlPgogIDxkaXYgY2xhc3M9ImRlbW8tY29udGFpbmVyIj4KICAgIDxkZWVzLXNpbXBsZS1sb2dpbiAKICAgICAgbmFtZT0iTXkgQXBwbGljYXRpb24iCiAgICAgIEBsb2dpbj0ke2U9Pntjb25zb2xlLmxvZygiTG9naW4gZXZlbnQgcmVjZWl2ZWQ6IixlLmRldGFpbCk7bGV0IHQ9ZS5kZXRhaWw/LmRhdGF8fGUuZGV0YWlsO3Q/LnVzZXJuYW1lJiZ0Py5wYXNzd29yZD9hbGVydChgTG9naW4gYXR0ZW1wdGVkIHdpdGg6ClVzZXJuYW1lOiAke3QudXNlcm5hbWV9ClBhc3N3b3JkOiAke3QucGFzc3dvcmR9YCk6Y29uc29sZS5lcnJvcigiSW52YWxpZCBsb2dpbiBkYXRhIHN0cnVjdHVyZToiLGUuZGV0YWlsKX19CiAgICA+CiAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgIDxoMT5XZWxjb21lITwvaDE+CiAgICAgICAgPHA+VGhpcyBpcyB0aGUgc2xvdHRlZCBjb250ZW50IHRoYXQgYXBwZWFycyBhZnRlciBsb2dpbi48L3A+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLXNpbXBsZS1sb2dpbj4KICA8L2Rpdj4KYH0pO3ZhciBNZHIsS2RlLGtkcixTZHI9cCgoKT0+e3dkcigpO3hlKCk7SmUoKTtNZHI9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxLZGU9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LGtkcj0oKCk9PntsZXQgZT1beWUoImRlZXMtc2ltcGxlLWxvZ2luIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W107dmFyIGw9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBjPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooKV0sTWRyKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToibmFtZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6dT0+Im5hbWUiaW4gdSxnZXQ6dT0+dS5uYW1lLHNldDoodSxkKT0+e3UubmFtZT1kfX0sbWV0YWRhdGE6Y30sbyxzKSxNZHIobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6Y30sbnVsbCxyKSxsPWk9dC52YWx1ZSxjJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX1zdGF0aWMgZGVtbz15ZHI7c3RhdGljIGRlbW9Hcm91cHM9WyJTaW1wbGUiXTsjZT1LZGUodGhpcyxvLCJBcHBsaWNhdGlvbiIpO2dldCBuYW1lKCl7cmV0dXJuIHRoaXMuI2V9c2V0IG5hbWUoYyl7dGhpcy4jZT1jfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgOmhvc3QgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMy45JSkiLCJoc2woMCAwJSA5OCUpIil9OwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBmb250LWZhbWlseTogJ0dlaXN0IFNhbnMnLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAubG9naW5Db250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDMuOSUpIil9OwogICAgICB9CgogICAgICAuc2xvdENvbnRhaW5lciB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICB9CgogICAgICAubG9naW4gewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1heC13aWR0aDogMzYwcHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMjRweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWhlYWRlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogOHB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAyNHB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOSUpIiwiaHNsKDAgMCUgOTglKSIpfTsKICAgICAgfQoKICAgICAgLnN1YmhlYWRlciB7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDUuMSUpIiwiaHNsKDAgMCUgNjMuOSUpIil9OwogICAgICB9CgogICAgICAubG9naW4tY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDEwMCUpIiwiaHNsKDAgMCUgOSUpIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OS44JSkiLCJoc2woMCAwJSAxNC45JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgIH0KCiAgICAgIC5sb2dpbi1jYXJkIGRlZXMtZm9ybSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGdhcDogMTZweDsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgZGVlcy1pbnB1dC10ZXh0IHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmxvZ2luLWNhcmQgZGVlcy1mb3JtLXN1Ym1pdCB7CiAgICAgICAgbWFyZ2luLXRvcDogOHB4OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ibG9naW5Db250YWluZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+U2lnbiBpbjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJoZWFkZXIiPkVudGVyIHlvdXIgY3JlZGVudGlhbHMgdG8gYWNjZXNzICR7dGhpcy5uYW1lfTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj4KICAgICAgICAgICAgPGRlZXMtZm9ybT4KICAgICAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IGtleT0idXNlcm5hbWUiIGxhYmVsPSJVc2VybmFtZSIgcmVxdWlyZWQ+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCBrZXk9InBhc3N3b3JkIiBsYWJlbD0iUGFzc3dvcmQiIGlzUGFzc3dvcmRCb29sIHJlcXVpcmVkPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgICAgICAgIDxkZWVzLWZvcm0tc3VibWl0PlNpZ24gaW48L2RlZXMtZm9ybS1zdWJtaXQ+CiAgICAgICAgICAgIDwvZGVlcy1mb3JtPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzbG90Q29udGFpbmVyIj4KICAgICAgICA8c2xvdD48L3Nsb3Q+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoYyl7c3VwZXIuZmlyc3RVcGRhdGVkKGMpO2xldCB1PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTt1JiZ1LmFkZEV2ZW50TGlzdGVuZXIoImZvcm1EYXRhIixkPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgibG9naW4iLHtkZXRhaWw6ZC5kZXRhaWwsYnViYmxlczohMCxjb21wb3NlZDohMH0pKX0pfWFzeW5jIHN3aXRjaFRvU2xvdHRlZENvbnRlbnQoKXtsZXQgYz1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx1PXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW4iKSxkPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIubG9naW5Db250YWluZXIiKSxoPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuc2xvdENvbnRhaW5lciIpO3Uuc3R5bGUub3BhY2l0eT0iMCIsdS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGQuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsaC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMjBweCkiLGF3YWl0IGMuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigzMDApLGguc3R5bGUub3BhY2l0eT0iMSIsaC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoMHB4KSIsYXdhaXQgYy5jb252ZW5pZW5jZS5zbWFydGRlbGF5LmRlbGF5Rm9yKDMwMCksaC5zdHlsZS5wb2ludGVyRXZlbnRzPSJhbGwifWNvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxLZGUodGhpcyxzKX1zdGF0aWN7S2RlKGkscil9fTtyZXR1cm4gbD1pfSkoKX0pO3ZhciB6ZHI9cCgoKT0+e1NkcigpfSk7dmFyIENkcj1wKCgpPT57aGRyKCk7eGRyKCk7emRyKCl9KTt2YXIgVGRyPXAoKCk9PntvcigpfSk7dmFyIF9kcixMZHI9cCgoKT0+e3hlKCk7X2RyPSgpPT5DYAogICAgPHN0eWxlPgogICAgICAuZGVtb1dyYXBwZXIgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAKICAgICAgICBiYWNrZ3JvdW5kOiAjODg4ODg4OwogICAgICB9CiAgICAgIC5sb2dzIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHdpZHRoOiA2MDBweDsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogICAgICB9CiAgICAgIC5sb2dzIGRpdiB7CiAgICAgICAgbWFyZ2luOiA0cHggMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxkaXYgY2xhc3M9ImRlbW9XcmFwcGVyIj4KICAgICAgPGRlZXMtc2VhcmNoYmFyCiAgICAgICAgQHNlYXJjaC1jaGFuZ2VkPSR7cj0+e2xldCBhPXIudGFyZ2V0LmNsb3Nlc3QoIi5kZW1vV3JhcHBlciIpPy5xdWVyeVNlbGVjdG9yKCIjY2hhbmdlZCIpO2EmJihhLnRleHRDb250ZW50PWBzZWFyY2gtY2hhbmdlZDogJHtyLmRldGFpbC52YWx1ZX1gKX19CiAgICAgICAgQHNlYXJjaC1zdWJtaXQ9JHtyPT57bGV0IGE9ci50YXJnZXQuY2xvc2VzdCgiLmRlbW9XcmFwcGVyIik/LnF1ZXJ5U2VsZWN0b3IoIiNzdWJtaXR0ZWQiKTthJiYoYS50ZXh0Q29udGVudD1gc2VhcmNoLXN1Ym1pdDogJHtyLmRldGFpbC52YWx1ZX1gKX19CiAgICAgID48L2RlZXMtc2VhcmNoYmFyPgogICAgICA8ZGl2IGNsYXNzPSJsb2dzIj4KICAgICAgICA8ZGl2IGlkPSJjaGFuZ2VkIj5zZWFyY2gtY2hhbmdlZDo8L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJzdWJtaXR0ZWQiPnNlYXJjaC1zdWJtaXQ6PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgYH0pO3ZhciBBZHIsZTVlLERkcixFZHI9cCgoKT0+e3hlKCk7UG8oKTtMZHIoKTtKZSgpO0Fkcj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LGU1ZT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sRGRyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy1zZWFyY2hiYXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXTt2YXIgbD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGM9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baigpXSxBZHIodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJmaWx0ZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczp1PT4iZmlsdGVycyJpbiB1LGdldDp1PT51LmZpbHRlcnMsc2V0Oih1LGQpPT57dS5maWx0ZXJzPWR9fSxtZXRhZGF0YTpjfSxvLHMpLEFkcihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpjfSxudWxsLHIpLGw9aT10LnZhbHVlLGMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Y30pfXN0YXRpYyBkZW1vPV9kcjtzdGF0aWMgZGVtb0dyb3Vwcz1bIlV0aWxpdHkiXTtzdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIC8qIFRPRE86IE1pZ3JhdGUgaGFyZGNvZGVkIHZhbHVlcyB0byAtLWRlZXMtKiBDU1MgdmFyaWFibGVzICovCiAgICAgIDpob3N0IHsKICAgICAgICBwYWRkaW5nOiA0MHB4OwogICAgICAgIGZvbnQtZmFtaWx5OiBEZWVzIFNhbnM7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlZWVlZWIiLCIjMDAwMDAwIil9OwogICAgICB9CgogICAgICAuc2VhcmNoYm94Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgbWFyZ2luOiBhdXRvOwogICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMwMDAwMDAxNSIsIiNmZmZmZmYxNSIpfTsKICAgICAgICAtLWJveEhlaWdodDogNjBweDsKICAgICAgICBoZWlnaHQ6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm94SGVpZ2h0KTsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDE0MHB4OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjMDAwMDAwMTUiLCIjZmZmZmZmMjAiKX07CiAgICAgIH0KCiAgICAgIGlucHV0IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgIGJhY2tncm91bmQ6IG5vbmU7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4OwogICAgICAgIG91dGxpbmU6IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uIHsKICAgICAgICAtLWJ1dHRvblBhZGRpbmc6IDhweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2VlZWVlYiIsIiMwMDAwMDAiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDAwMDAwIiwiI2VlZWVlYiIpfTsKICAgICAgICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ib3hIZWlnaHQpIC0gKHZhcigtLWJ1dHRvblBhZGRpbmcpICogMikpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJveEhlaWdodCk7CiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSA7CiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgCiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMsIGJhY2tncm91bmQgMC4xczsKICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvblBhZGRpbmcpOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAuc2VhcmNoQnV0dG9uOmhvdmVyIHsKICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZShFZC5ibHVlLElvLmJsdWUpfTsKICAgICAgfQoKICAgICAgLnNlYXJjaEJ1dHRvbjphY3RpdmUgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKEVkLmJsdWVBY3RpdmUsSW8uYmx1ZUFjdGl2ZSl9OwogICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7CiAgICAgIH0KCiAgICAgIC5maWx0ZXJzIHsKICAgICAgICBtYXJnaW46IGF1dG87CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgfQogICAgYF07I2U9ZTVlKHRoaXMsbyxbXSk7Z2V0IGZpbHRlcnMoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZmlsdGVycyhjKXt0aGlzLiNlPWN9c2VhcmNoSW5wdXQ9ZTVlKHRoaXMscyk7c2VhcmNoQnV0dG9uO2NvbnN0cnVjdG9yKCl7c3VwZXIoKX1yZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoYm94Q29udGFpbmVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IllvdXIgU2tpbGxzIChlLmcuIFR5cGVTY3JpcHQsIFJ1c3QsIFByb2plY3RtYW5hZ2VtZW50KSIgLz4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hCdXR0b24iPlNlYXJjaCAtPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLmZpbHRlcnMubGVuZ3RoPjA/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJmaWx0ZXJzIj4KICAgICAgICA8ZGVlcy1oZWFkaW5nIGxldmVsPSJoci1zbWFsbCI+RmlsdGVyczwvZGVlcy1oZWFkaW5nPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duIC5sYWJlbD0keyJsb2NhdGlvbiJ9PjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgPC9kaXY+ICAKICAgICAgYDpDYGB9CiAgICBgfWZpcnN0VXBkYXRlZCgpe3RoaXMuc2VhcmNoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCgpPT57dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2VhcmNoLWNoYW5nZWQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9KSx0aGlzLnNlYXJjaElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGM9PntjLmtleT09PSJFbnRlciImJnRoaXMuX2Rpc3BhdGNoU3VibWl0KCl9KSx0aGlzLnNlYXJjaEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKCk9PnRoaXMuX2Rpc3BhdGNoU3VibWl0KCkpfV9kaXNwYXRjaFN1Ym1pdCgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInNlYXJjaC1zdWJtaXQiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDp7dmFsdWU6dGhpcy5zZWFyY2hJbnB1dC52YWx1ZX19KSl9c3RhdGlje2U1ZShpLHIpfX07cmV0dXJuIGw9aX0pKCl9KTt2YXIgJGRyPXAoKCk9PntFZHIoKX0pO3ZhciBJZHIsUGRyPXAoKCk9Pnt4ZSgpO0lkcj0oKT0+Q2AKICA8c3R5bGU+CiAgICAuZGVtby1jb250YWluZXIgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICBnYXA6IDMycHg7CiAgICAgIHBhZGRpbmc6IDQ4cHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZjhmOWZhIiwiIzBhMGEwYSIpfTsKICAgICAgbWluLWhlaWdodDogMTAwdmg7CiAgICB9CgogICAgLnNlY3Rpb24gewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiMxODE4MWIiKX07CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZTVlN2ViIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBwYWRkaW5nOiAyNHB4OwogICAgfQoKICAgIC5zZWN0aW9uLXRpdGxlIHsKICAgICAgZm9udC1zaXplOiAxOHB4OwogICAgICBmb250LXdlaWdodDogNjAwOwogICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTA5MGIiLCIjZmFmYWZhIil9OwogICAgfQoKICAgIC5zZWN0aW9uLWRlc2NyaXB0aW9uIHsKICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogICAgfQoKICAgIC50b2tlbi1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICBnYXA6IDE2cHg7CiAgICB9CgogICAgLnRva2VuLWl0ZW0gewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2Y0ZjRmNSIsIiMyNzI3MmEiKX07CiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgcGFkZGluZzogMTZweDsKICAgIH0KCiAgICAudG9rZW4tbmFtZSB7CiAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZWwgT25lIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjNzE3MTdhIiwiI2ExYTFhYSIpfTsKICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgfQoKICAgIC50b2tlbi12YWx1ZSB7CiAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDkwOTBiIiwiI2ZhZmFmYSIpfTsKICAgIH0KCiAgICAuc3BhY2luZy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICBnYXA6IDhweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5zcGFjaW5nLWJveCB7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjM2I4MmY2IiwiIzNiODJmNiIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgfQoKICAgIC5yYWRpdXMtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTZweDsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgfQoKICAgIC5yYWRpdXMtYm94IHsKICAgICAgd2lkdGg6IDYwcHg7CiAgICAgIGhlaWdodDogNjBweDsKICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiMzYjgyZjYiLCIjM2I4MmY2Iil9OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDExcHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CgogICAgLnNoYWRvdy1kZW1vIHsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgZ2FwOiAyNHB4OwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLnNoYWRvdy1ib3ggewogICAgICB3aWR0aDogMTAwcHg7CiAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzI3MjcyYSIpfTsKICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICBmb250LXdlaWdodDogNTAwOwogICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM3MTcxN2EiLCIjYTFhMWFhIil9OwogICAgfQoKICAgIC5oZWlnaHQtZGVtbyB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMTZweDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICB9CgogICAgLmhlaWdodC1ib3ggewogICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiMzYjgyZjYiKX07CiAgICAgIHdpZHRoOiAxMjBweDsKICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgY29sb3I6IHdoaXRlOwogICAgICBmb250LXNpemU6IDEycHg7CiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB9CiAgPC9zdHlsZT4KICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICA8ZGVlcy10aGVtZT4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+U3BhY2luZyBTY2FsZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tZGVzY3JpcHRpb24iPgogICAgICAgICAgQ1NTIHZhcmlhYmxlczogLS1kZWVzLXNwYWNpbmcteHMgdGhyb3VnaCAtLWRlZXMtc3BhY2luZy0zeGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXhzKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmcteHMpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnhzICg0cHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1zbSk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLXNtKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5zbSAoOHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctbWQpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy1tZCk7Ij48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWQgKDEycHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy1sZyk7IGhlaWdodDogdmFyKC0tZGVlcy1zcGFjaW5nLWxnKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5sZyAoMTZweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2luZy1ib3giIHN0eWxlPSJ3aWR0aDogdmFyKC0tZGVlcy1zcGFjaW5nLXhsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmcteGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnhsICgyNHB4KTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjaW5nLWJveCIgc3R5bGU9IndpZHRoOiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKTsgaGVpZ2h0OiB2YXIoLS1kZWVzLXNwYWNpbmctMnhsKTsiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4yeGwgKDMycHgpPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNpbmctYm94IiBzdHlsZT0id2lkdGg6IHZhcigtLWRlZXMtc3BhY2luZy0zeGwpOyBoZWlnaHQ6IHZhcigtLWRlZXMtc3BhY2luZy0zeGwpOyI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjN4bCAoNDhweCk8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkJvcmRlciBSYWRpdXMgU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1yYWRpdXMteHMgdGhyb3VnaCAtLWRlZXMtcmFkaXVzLWZ1bGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMteHMpOyI+eHM8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+MnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1zbSk7Ij5zbTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj40cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmFkaXVzLWJveCIgc3R5bGU9ImJvcmRlci1yYWRpdXM6IHZhcigtLWRlZXMtcmFkaXVzLW1kKTsiPm1kPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjZweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpdXMtYm94IiBzdHlsZT0iYm9yZGVyLXJhZGl1czogdmFyKC0tZGVlcy1yYWRpdXMtbGcpOyI+bGc8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+OHB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy14bCk7Ij54bDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4xMnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJhZGl1cy1ib3giIHN0eWxlPSJib3JkZXItcmFkaXVzOiB2YXIoLS1kZWVzLXJhZGl1cy1mdWxsKTsiPmZ1bGw8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+OTk5cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlNoYWRvdyBFbGV2YXRpb24gU2NhbGU8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWRlc2NyaXB0aW9uIj4KICAgICAgICAgIENTUyB2YXJpYWJsZXM6IC0tZGVlcy1zaGFkb3cteHMgdGhyb3VnaCAtLWRlZXMtc2hhZG93LWxnCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWRlbW8iPgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LXhzKTsiPnhzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPm1pbmltYWw8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhZG93LWJveCIgc3R5bGU9ImJveC1zaGFkb3c6IHZhcigtLWRlZXMtc2hhZG93LXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPnN1YnRsZTwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzaGFkb3ctYm94IiBzdHlsZT0iYm94LXNoYWRvdzogdmFyKC0tZGVlcy1zaGFkb3ctbWQpOyI+bWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+bWVkaXVtPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNoYWRvdy1ib3giIHN0eWxlPSJib3gtc2hhZG93OiB2YXIoLS1kZWVzLXNoYWRvdy1sZyk7Ij5sZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj5wcm9taW5lbnQ8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPkNvbnRyb2wgSGVpZ2h0IFNjYWxlPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtY29udHJvbC1oZWlnaHQtc20gdGhyb3VnaCAtLWRlZXMtY29udHJvbC1oZWlnaHQteGwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtZGVtbyI+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXNtKTsiPnNtPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjMycHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVpZ2h0LWJveCIgc3R5bGU9ImhlaWdodDogdmFyKC0tZGVlcy1jb250cm9sLWhlaWdodC1tZCk7Ij5tZDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1uYW1lIj4zNnB4PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlaWdodC1ib3giIHN0eWxlPSJoZWlnaHQ6IHZhcigtLWRlZXMtY29udHJvbC1oZWlnaHQtbGcpOyI+bGc8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+NDBweDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWlnaHQtYm94IiBzdHlsZT0iaGVpZ2h0OiB2YXIoLS1kZWVzLWNvbnRyb2wtaGVpZ2h0LXhsKTsiPnhsPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPjQ4cHg8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24tdGl0bGUiPlRyYW5zaXRpb24gRHVyYXRpb25zPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1kZXNjcmlwdGlvbiI+CiAgICAgICAgICBDU1MgdmFyaWFibGVzOiAtLWRlZXMtdHJhbnNpdGlvbi1mYXN0IHRocm91Z2ggLS1kZWVzLXRyYW5zaXRpb24tc2xvd2VyCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tZ3JpZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tZmFzdDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4xczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi1pdGVtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tbmFtZSI+LS1kZWVzLXRyYW5zaXRpb24tZGVmYXVsdDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4xNXM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLXNsb3c8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4tdmFsdWUiPjAuMnM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0idG9rZW4taXRlbSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRva2VuLW5hbWUiPi0tZGVlcy10cmFuc2l0aW9uLXNsb3dlcjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b2tlbi12YWx1ZSI+MC4zczwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kZWVzLXRoZW1lPgogIDwvZGl2PgpgfSk7dmFyIGJoLE8yLE5kcixGZHI9cCgoKT0+e3hlKCk7SmUoKTtQZHIoKTtiaD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LE8yPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxOZHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXRoZW1lIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W107dmFyIE89Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB6PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6T2JqZWN0fSldLGw9W2ooe3R5cGU6T2JqZWN0fSldLGQ9W2ooe3R5cGU6T2JqZWN0fSldLHg9W2ooe3R5cGU6T2JqZWN0fSldLHk9W2ooe3R5cGU6T2JqZWN0fSldLGJoKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VzdG9tU3BhY2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImN1c3RvbVNwYWNpbmciaW4gTSxnZXQ6TT0+TS5jdXN0b21TcGFjaW5nLHNldDooTSxGKT0+e00uY3VzdG9tU3BhY2luZz1GfX0sbWV0YWRhdGE6en0sbyxzKSxiaCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVJhZGl1cyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImN1c3RvbVJhZGl1cyJpbiBNLGdldDpNPT5NLmN1c3RvbVJhZGl1cyxzZXQ6KE0sRik9PntNLmN1c3RvbVJhZGl1cz1GfX0sbWV0YWRhdGE6en0sYyx1KSxiaCh0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbVNoYWRvd3MiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJjdXN0b21TaGFkb3dzImluIE0sZ2V0Ok09Pk0uY3VzdG9tU2hhZG93cyxzZXQ6KE0sRik9PntNLmN1c3RvbVNoYWRvd3M9Rn19LG1ldGFkYXRhOnp9LGgsZiksYmgodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXN0b21UcmFuc2l0aW9ucyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImN1c3RvbVRyYW5zaXRpb25zImluIE0sZ2V0Ok09Pk0uY3VzdG9tVHJhbnNpdGlvbnMsc2V0OihNLEYpPT57TS5jdXN0b21UcmFuc2l0aW9ucz1GfX0sbWV0YWRhdGE6en0sdixiKSxiaCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1c3RvbUNvbnRyb2xIZWlnaHRzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4iY3VzdG9tQ29udHJvbEhlaWdodHMiaW4gTSxnZXQ6TT0+TS5jdXN0b21Db250cm9sSGVpZ2h0cyxzZXQ6KE0sRik9PntNLmN1c3RvbUNvbnRyb2xIZWlnaHRzPUZ9fSxtZXRhZGF0YTp6fSx3LGspLGJoKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOnp9LG51bGwsciksTz1pPXQudmFsdWUseiYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp6fSl9c3RhdGljIGRlbW89SWRyO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdOyNlPU8yKHRoaXMsbyxudWxsKTtnZXQgY3VzdG9tU3BhY2luZygpe3JldHVybiB0aGlzLiNlfXNldCBjdXN0b21TcGFjaW5nKHope3RoaXMuI2U9en0jdD0oTzIodGhpcyxzKSxPMih0aGlzLGMsbnVsbCkpO2dldCBjdXN0b21SYWRpdXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgY3VzdG9tUmFkaXVzKHope3RoaXMuI3Q9en0jcj0oTzIodGhpcyx1KSxPMih0aGlzLGgsbnVsbCkpO2dldCBjdXN0b21TaGFkb3dzKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGN1c3RvbVNoYWRvd3Moeil7dGhpcy4jcj16fSNpPShPMih0aGlzLGYpLE8yKHRoaXMsdixudWxsKSk7Z2V0IGN1c3RvbVRyYW5zaXRpb25zKCl7cmV0dXJuIHRoaXMuI2l9c2V0IGN1c3RvbVRyYW5zaXRpb25zKHope3RoaXMuI2k9en0jYT0oTzIodGhpcyxiKSxPMih0aGlzLHcsbnVsbCkpO2dldCBjdXN0b21Db250cm9sSGVpZ2h0cygpe3JldHVybiB0aGlzLiNhfXNldCBjdXN0b21Db250cm9sSGVpZ2h0cyh6KXt0aGlzLiNhPXp9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogY29udGVudHM7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8c3R5bGU+CiAgICAgICAgJHt0aGlzLmdlbmVyYXRlQ3VzdG9tU3R5bGVzKCl9CiAgICAgIDwvc3R5bGU+CiAgICAgIDxzbG90Pjwvc2xvdD4KICAgIGB9Z2VuZXJhdGVDdXN0b21TdHlsZXMoKXtsZXQgej1bIjpob3N0IHsiXTtpZih0aGlzLmN1c3RvbVNwYWNpbmcpZm9yKGxldFtNLEZdb2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TcGFjaW5nKSlGJiZ6LnB1c2goYCAgLS1kZWVzLXNwYWNpbmctJHtNfTogJHtGfTtgKTtpZih0aGlzLmN1c3RvbVJhZGl1cylmb3IobGV0W00sRl1vZiBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbVJhZGl1cykpRiYmei5wdXNoKGAgIC0tZGVlcy1yYWRpdXMtJHtNfTogJHtGfTtgKTtpZih0aGlzLmN1c3RvbVNoYWRvd3MpZm9yKGxldFtNLEZdb2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21TaGFkb3dzKSlGJiZ6LnB1c2goYCAgLS1kZWVzLXNoYWRvdy0ke019OiAke0Z9O2ApO2lmKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpe2ZvcihsZXRbTSxGXW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tVHJhbnNpdGlvbnMpKWlmKEYpe2xldCBEPU09PT0iZGVmYXVsdCI/ImRlZmF1bHQiOk07ei5wdXNoKGAgIC0tZGVlcy10cmFuc2l0aW9uLSR7RH06ICR7Rn07YCl9fWlmKHRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHMpZm9yKGxldFtNLEZdb2YgT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cykpRiYmei5wdXNoKGAgIC0tZGVlcy1jb250cm9sLWhlaWdodC0ke019OiAke0Z9O2ApO3JldHVybiB6LnB1c2goIn0iKSx6LmpvaW4oYApgKX1zZXRTcGFjaW5nKHosTSl7dGhpcy5jdXN0b21TcGFjaW5nPXsuLi50aGlzLmN1c3RvbVNwYWNpbmcsW3pdOk19fXNldFJhZGl1cyh6LE0pe3RoaXMuY3VzdG9tUmFkaXVzPXsuLi50aGlzLmN1c3RvbVJhZGl1cyxbel06TX19c2V0U2hhZG93KHosTSl7dGhpcy5jdXN0b21TaGFkb3dzPXsuLi50aGlzLmN1c3RvbVNoYWRvd3MsW3pdOk19fXNldFRyYW5zaXRpb24oeixNKXt0aGlzLmN1c3RvbVRyYW5zaXRpb25zPXsuLi50aGlzLmN1c3RvbVRyYW5zaXRpb25zLFt6XTpNfX1zZXRDb250cm9sSGVpZ2h0KHosTSl7dGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz17Li4udGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cyxbel06TX19Z2V0VGhlbWUoKXtyZXR1cm57Y29sb3JzOkM0LmNvbG9ycyxzcGFjaW5nOnsuLi5DNC5zcGFjaW5nLC4uLnRoaXMuY3VzdG9tU3BhY2luZ30scmFkaXVzOnsuLi5DNC5yYWRpdXMsLi4udGhpcy5jdXN0b21SYWRpdXN9LHNoYWRvd3M6ey4uLkM0LnNoYWRvd3MsLi4udGhpcy5jdXN0b21TaGFkb3dzfSx0cmFuc2l0aW9uczp7Li4uQzQudHJhbnNpdGlvbnMsLi4udGhpcy5jdXN0b21UcmFuc2l0aW9uc30sY29udHJvbEhlaWdodHM6ey4uLkM0LmNvbnRyb2xIZWlnaHRzLC4uLnRoaXMuY3VzdG9tQ29udHJvbEhlaWdodHN9fX1yZXNldFRvRGVmYXVsdHMoKXt0aGlzLmN1c3RvbVNwYWNpbmc9bnVsbCx0aGlzLmN1c3RvbVJhZGl1cz1udWxsLHRoaXMuY3VzdG9tU2hhZG93cz1udWxsLHRoaXMuY3VzdG9tVHJhbnNpdGlvbnM9bnVsbCx0aGlzLmN1c3RvbUNvbnRyb2xIZWlnaHRzPW51bGx9YXBwbHlUaGVtZSh6KXt6LnNwYWNpbmcmJih0aGlzLmN1c3RvbVNwYWNpbmc9ei5zcGFjaW5nKSx6LnJhZGl1cyYmKHRoaXMuY3VzdG9tUmFkaXVzPXoucmFkaXVzKSx6LnNoYWRvd3MmJih0aGlzLmN1c3RvbVNoYWRvd3M9ei5zaGFkb3dzKSx6LnRyYW5zaXRpb25zJiYodGhpcy5jdXN0b21UcmFuc2l0aW9ucz16LnRyYW5zaXRpb25zKSx6LmNvbnRyb2xIZWlnaHRzJiYodGhpcy5jdXN0b21Db250cm9sSGVpZ2h0cz16LmNvbnRyb2xIZWlnaHRzKX1jb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksTzIodGhpcyxrKX1zdGF0aWN7TzIoaSxyKX19O3JldHVybiBPPWl9KSgpfSk7dmFyIE9kcj1wKCgpPT57RmRyKCl9KTt2YXIgUmRyLEJkcj1wKCgpPT57eGUoKTt0NWUoKTtSZHI9YXN5bmMoKT0+e2xldCBlPWF3YWl0IHdGLmNyZWF0ZUFuZFNob3coKTtzZXRUaW1lb3V0KGFzeW5jKCk9Pnthd2FpdCBlLmRlc3Ryb3koKX0sMWU0KX19KTt2YXIgcjVlLFliLHdGLHQ1ZT1wKCgpPT57eGUoKTtCZHIoKTtwYygpO3hlKCk7SmUoKTtyNWU9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxZYj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sd0Y9KCgpPT57bGV0IGU9W3llKCJkZWVzLXVwZGF0ZXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0scjVlKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmY9PiJjdXJyZW50VmVyc2lvbiJpbiBmLGdldDpmPT5mLmN1cnJlbnRWZXJzaW9uLHNldDooZix4KT0+e2YuY3VycmVudFZlcnNpb249eH19LG1ldGFkYXRhOmh9LG8scykscjVlKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToidXBkYXRlZFZlcnNpb24iLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOmY9PiJ1cGRhdGVkVmVyc2lvbiJpbiBmLGdldDpmPT5mLnVwZGF0ZWRWZXJzaW9uLHNldDooZix4KT0+e2YudXBkYXRlZFZlcnNpb249eH19LG1ldGFkYXRhOmh9LGMsdSkscjVlKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmh9LG51bGwsciksZD1pPXQudmFsdWUsaCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9c3RhdGljIGRlbW89UmRyO3N0YXRpYyBkZW1vR3JvdXBzPVsiVXRpbGl0eSJdO3N0YXRpYyBhc3luYyBjcmVhdGVBbmRTaG93KCl7bGV0IGg9bmV3IGQ7cmV0dXJuIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaCksaH0jZT1ZYih0aGlzLG8sdm9pZCAwKTtnZXQgY3VycmVudFZlcnNpb24oKXtyZXR1cm4gdGhpcy4jZX1zZXQgY3VycmVudFZlcnNpb24oaCl7dGhpcy4jZT1ofSN0PShZYih0aGlzLHMpLFliKHRoaXMsYyx2b2lkIDApKTtnZXQgdXBkYXRlZFZlcnNpb24oKXtyZXR1cm4gdGhpcy4jdH1zZXQgdXBkYXRlZFZlcnNpb24oaCl7dGhpcy4jdD1ofWNvbnN0cnVjdG9yKCl7c3VwZXIoKSxZYih0aGlzLHUpLGt0LmVsZW1lbnRCYXNpYy5zZXR1cCgpfXN0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgLyogVE9ETzogTWlncmF0ZSBoYXJkY29kZWQgdmFsdWVzIHRvIC0tZGVlcy0qIENTUyB2YXJpYWJsZXMgKi8KICAgICAgLm1vZGFsQ29udGFpbmVyIHsKICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2VlZWVlYiIsIiMyMjIiKX07CiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZWVlZWViIiwiIzMzMyIpfTsKICAgICAgfQoKICAgICAgLmhlYWRpbmdDb250YWluZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiA0MHB4IDQwcHg7CiAgICAgIH0KCiAgICAgIGgxIHsKICAgICAgICBtYXJnaW46IG5vbmU7CiAgICAgICAgZm9udC1zaXplOiAyMHB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzMzMyIsIiNmZmYiKX07CiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgfQoKICAgICAgLmJ1dHRvbkNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwJSA1MCU7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGVlcy13aW5kb3dsYXllcgogICAgICAgIEBjbGlja2VkPSIke3RoaXMud2luZG93TGF5ZXJDbGlja2VkfSIKICAgICAgICAub3B0aW9ucz0ke3tibHVyOiEwfX0KICAgICAgPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsQ29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmdDb250YWluZXIiPgogICAgICAgICAgICA8ZGVlcy1zcGlubmVyIC5zaXplPSR7NjB9PjwvZGVlcy1zcGlubmVyPgogICAgICAgICAgICA8aDE+VXBkYXRpbmcgdGhlIGFwcGxpY2F0aW9uLi4uPC9oMT4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MiPgogICAgICAgICAgICA8ZGVlcy1wcm9ncmVzc2JhciAucHJvZ3Jlc3M9JHsuNX0+PC9kZWVzLXByb2dyZXNzYmFyPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJidXR0b25Db250YWluZXIiPgogICAgICAgICAgICA8ZGVlcy1idXR0b24+TW9yZSBpbmZvPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPGRlZXMtYnV0dG9uPkNoYW5nZWxvZzwvZGVlcy1idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4gPC9kZWVzLXdpbmRvd2xheWVyCiAgICAgID4+CiAgICBgfWFzeW5jIGRlc3Ryb3koKXt0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcyl9d2luZG93TGF5ZXJDbGlja2VkKCl7fXN0YXRpY3tZYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgSGRyPXAoKCk9Pnt0NWUoKX0pO3ZhciBxZHI9cCgoKT0+e3I2ZSgpfSk7dmFyIGpkcj1wKCgpPT57VGRyKCk7JGRyKCk7T2RyKCk7SGRyKCk7cWRyKCl9KTt2YXIgaTUscm8sVmRyLE1GPXAoKCk9Pnt4ZSgpO0t0KCk7SmUoKTtvcigpO01pKCk7TWkoKTtJZCgpO040KCk7TjQoKTtpNT1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LHJvPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxWZHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXdvcmtzcGFjZS1maWxldHJlZSIpXSx0LHI9W10saSxhPXplLG4sbz1bXSxzPVtdLGwsYz1bXSx1PVtdLGQsaD1bXSxmPVtdLHgsdj1bXSxiPVtdLHksdz1bXSxrPVtdLE8sej1bXSxNPVtdO3ZhciBGPWNsYXNzIGV4dGVuZHMgYXtzdGF0aWN7aT10aGlzfXN0YXRpY3tsZXQgRD10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOk9iamVjdH0pXSxsPVtqKHt0eXBlOlN0cmluZ30pXSxkPVtqKHt0eXBlOlN0cmluZ30pXSx4PVtmZSgpXSx5PVtmZSgpXSxPPVtmZSgpXSxpNSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4iZXhlY3V0aW9uRW52aXJvbm1lbnQiaW4gTixnZXQ6Tj0+Ti5leGVjdXRpb25FbnZpcm9ubWVudCxzZXQ6KE4sUik9PntOLmV4ZWN1dGlvbkVudmlyb25tZW50PVJ9fSxtZXRhZGF0YTpEfSxvLHMpLGk1KHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToicm9vdFBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJyb290UGF0aCJpbiBOLGdldDpOPT5OLnJvb3RQYXRoLHNldDooTixSKT0+e04ucm9vdFBhdGg9Un19LG1ldGFkYXRhOkR9LGMsdSksaTUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzZWxlY3RlZFBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJzZWxlY3RlZFBhdGgiaW4gTixnZXQ6Tj0+Ti5zZWxlY3RlZFBhdGgsc2V0OihOLFIpPT57Ti5zZWxlY3RlZFBhdGg9Un19LG1ldGFkYXRhOkR9LGgsZiksaTUodGhpcyxudWxsLHgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJ0cmVlRGF0YSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+InRyZWVEYXRhImluIE4sZ2V0Ok49Pk4udHJlZURhdGEsc2V0OihOLFIpPT57Ti50cmVlRGF0YT1SfX0sbWV0YWRhdGE6RH0sdixiKSxpNSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzTG9hZGluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+ImlzTG9hZGluZyJpbiBOLGdldDpOPT5OLmlzTG9hZGluZyxzZXQ6KE4sUik9PntOLmlzTG9hZGluZz1SfX0sbWV0YWRhdGE6RH0sdyxrKSxpNSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImVycm9yTWVzc2FnZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+ImVycm9yTWVzc2FnZSJpbiBOLGdldDpOPT5OLmVycm9yTWVzc2FnZSxzZXQ6KE4sUik9PntOLmVycm9yTWVzc2FnZT1SfX0sbWV0YWRhdGE6RH0seixNKSxpNShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpEfSxudWxsLHIpLEY9aT10LnZhbHVlLEQmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6RH0pfXN0YXRpYyBkZW1vPSgpPT5DYAogICAgPGRpdiBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7Ij4KICAgICAgPGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlPjwvZGVlcy13b3Jrc3BhY2UtZmlsZXRyZWU+CiAgICA8L2Rpdj4KICBgO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9cm8odGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChEKXt0aGlzLiNlPUR9I3Q9KHJvKHRoaXMscykscm8odGhpcyxjLCIvIikpO2dldCByb290UGF0aCgpe3JldHVybiB0aGlzLiN0fXNldCByb290UGF0aChEKXt0aGlzLiN0PUR9I3I9KHJvKHRoaXMsdSkscm8odGhpcyxoLCIiKSk7Z2V0IHNlbGVjdGVkUGF0aCgpe3JldHVybiB0aGlzLiNyfXNldCBzZWxlY3RlZFBhdGgoRCl7dGhpcy4jcj1EfSNpPShybyh0aGlzLGYpLHJvKHRoaXMsdixbXSkpO2dldCB0cmVlRGF0YSgpe3JldHVybiB0aGlzLiNpfXNldCB0cmVlRGF0YShEKXt0aGlzLiNpPUR9I2E9KHJvKHRoaXMsYikscm8odGhpcyx3LCExKSk7Z2V0IGlzTG9hZGluZygpe3JldHVybiB0aGlzLiNhfXNldCBpc0xvYWRpbmcoRCl7dGhpcy4jYT1EfSNuPShybyh0aGlzLGspLHJvKHRoaXMseiwiIikpO2dldCBlcnJvck1lc3NhZ2UoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZXJyb3JNZXNzYWdlKEQpe3RoaXMuI249RH1leHBhbmRlZFBhdGhzPShybyh0aGlzLE0pLG5ldyBTZXQpO2xvYWRUcmVlU3RhcnRlZD0hMTtjbGlwYm9hcmRQYXRoPW51bGw7Y2xpcGJvYXJkT3BlcmF0aW9uPW51bGw7ZmlsZVdhdGNoZXI9bnVsbDtyZWZyZXNoRGVib3VuY2VUaW1lb3V0PW51bGw7bGFzdEV4ZWN1dGlvbkVudmlyb25tZW50PW51bGw7c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTglKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICB9CgogICAgICAudHJlZS1jb250YWluZXIgewogICAgICAgIHBhZGRpbmc6IDhweCAwOwogICAgICB9CgogICAgICAudHJlZS1pdGVtIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogNHB4IDhweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIG1hcmdpbjogMXB4IDRweDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbTpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkzJSkiLCJoc2woMCAwJSAxNCUpIil9OwogICAgICB9CgogICAgICAudHJlZS1pdGVtLnNlbGVjdGVkIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDk1JSkiLCJoc2woMjEwIDUwJSAyMCUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQwJSkiLCJoc2woMjEwIDEwMCUgNzAlKSIpfTsKICAgICAgfQoKICAgICAgLnRyZWUtaXRlbS5zZWxlY3RlZDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgyMTAgMTAwJSA5MiUpIiwiaHNsKDIxMCA1MCUgMjUlKSIpfTsKICAgICAgfQoKICAgICAgLmluZGVudCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZXhwYW5kLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLmV4cGFuZC1pY29uLmV4cGFuZGVkIHsKICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7CiAgICAgIH0KCiAgICAgIC5leHBhbmQtaWNvbi5oaWRkZW4gewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbiB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIG1hcmdpbi1yaWdodDogNnB4OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbiBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiAxNnB4OwogICAgICAgIGhlaWdodDogMTZweDsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5mb2xkZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDQ1IDgwJSA0NSUpIiwiaHNsKDQ1IDcwJSA1NSUpIil9OwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmZpbGUgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24udHlwZXNjcmlwdCB7CiAgICAgICAgY29sb3I6IGhzbCgyMTEgNjAlIDQ4JSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uamF2YXNjcmlwdCB7CiAgICAgICAgY29sb3I6IGhzbCg1MyA5MyUgNTQlKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5qc29uIHsKICAgICAgICBjb2xvcjogaHNsKDQ1IDgwJSA1MCUpOwogICAgICB9CgogICAgICAuZmlsZS1pY29uLmh0bWwgewogICAgICAgIGNvbG9yOiBoc2woMTQgNzclIDUyJSk7CiAgICAgIH0KCiAgICAgIC5maWxlLWljb24uY3NzIHsKICAgICAgICBjb2xvcjogaHNsKDIyOCA3NyUgNTklKTsKICAgICAgfQoKICAgICAgLmZpbGUtaWNvbi5tYXJrZG93biB7CiAgICAgICAgY29sb3I6IGhzbCgwIDAlIDUwJSk7CiAgICAgIH0KCiAgICAgIC5maWxlLW5hbWUgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDg1JSkiKX07CiAgICAgIH0KCiAgICAgIC5sb2FkaW5nIHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZXJyb3IgewogICAgICAgIHBhZGRpbmc6IDE2cHg7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIGNvbG9yOiBoc2woMCA3MCUgNTAlKTsKICAgICAgfQoKICAgICAgLmVtcHR5IHsKICAgICAgICBwYWRkaW5nOiAxNnB4OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXRvb2xiYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAxNSUpIil9OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDE7CiAgICAgIH0KCiAgICAgIC50b29sYmFyLXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDQwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogNHB4OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b24gewogICAgICAgIHBhZGRpbmc6IDRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNzsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA3MCUpIil9OwogICAgICB9CgogICAgICAudG9vbGJhci1idXR0b246aG92ZXIgewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDAlIC8gMC4wOCkiLCJoc2woMCAwJSAxMDAlIC8gMC4xKSIpfTsKICAgICAgfQogICAgYF07cmVuZGVyKCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQ/dGhpcy5pc0xvYWRpbmc/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkaW5nIj4KICAgICAgICAgIExvYWRpbmcgZmlsZXMuLi4KICAgICAgICA8L2Rpdj4KICAgICAgYDp0aGlzLmVycm9yTWVzc2FnZT9DYAogICAgICAgIDxkaXYgY2xhc3M9ImVycm9yIj4KICAgICAgICAgICR7dGhpcy5lcnJvck1lc3NhZ2V9CiAgICAgICAgPC9kaXY+CiAgICAgIGA6Q2AKICAgICAgPGRpdiBjbGFzcz0iZmlsZXRyZWUtdG9vbGJhciI+CiAgICAgICAgPHNwYW4gY2xhc3M9InRvb2xiYXItdGl0bGUiPkV4cGxvcmVyPC9zcGFuPgogICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItYWN0aW9ucyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyLWJ1dHRvbiIgQGNsaWNrPSR7KCk9PnRoaXMuY3JlYXRlTmV3RmlsZSgiLyIpfSB0aXRsZT0iTmV3IEZpbGUiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmaWxlUGx1cyJ9IGljb25TaXplPSIxNiI+PC9kZWVzLWljb24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXItYnV0dG9uIiBAY2xpY2s9JHsoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKX0gdGl0bGU9Ik5ldyBGb2xkZXIiPgogICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpmb2xkZXJQbHVzIn0gaWNvblNpemU9IjE2Ij48L2RlZXMtaWNvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnRyZWVEYXRhLmxlbmd0aD09PTA/Q2A8ZGl2IGNsYXNzPSJlbXB0eSI+Tm8gZmlsZXMgZm91bmQuPC9kaXY+YDpDYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmVlLWNvbnRhaW5lciIgQGNvbnRleHRtZW51PSR7dGhpcy5oYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnV9PgogICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJUcmVlKHRoaXMudHJlZURhdGEpfQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGB9CiAgICBgOkNgCiAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHkiPgogICAgICAgICAgTm8gZXhlY3V0aW9uIGVudmlyb25tZW50IHByb3ZpZGVkLgogICAgICAgIDwvZGl2PgogICAgICBgfXJlbmRlclRyZWUoRCl7cmV0dXJuIEQubWFwKE49PnRoaXMucmVuZGVyTm9kZShOKSl9cmVuZGVyTm9kZShEKXtsZXQgTj1ELnR5cGU9PT0iZGlyZWN0b3J5IixSPXRoaXMuZXhwYW5kZWRQYXRocy5oYXMoRC5wYXRoKSxfPUQucGF0aD09PXRoaXMuc2VsZWN0ZWRQYXRoLFM9dGhpcy5nZXRGaWxlSWNvbkNsYXNzKEQpO3JldHVybiBDYAogICAgICA8ZGl2CiAgICAgICAgY2xhc3M9InRyZWUtaXRlbSAke18/InNlbGVjdGVkIjoiIn0iCiAgICAgICAgc3R5bGU9InBhZGRpbmctbGVmdDogJHs4K0QubGV2ZWwqMTZ9cHgiCiAgICAgICAgQGNsaWNrPSR7JD0+dGhpcy5oYW5kbGVJdGVtQ2xpY2soJCxEKX0KICAgICAgICBAY29udGV4dG1lbnU9JHskPT50aGlzLmhhbmRsZUNvbnRleHRNZW51KCQsRCl9CiAgICAgID4KICAgICAgICA8c3BhbiBjbGFzcz0iZXhwYW5kLWljb24gJHtSPyJleHBhbmRlZCI6IiJ9ICR7Tj8iIjoiaGlkZGVuIn0iPgogICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6Y2hldnJvblJpZ2h0In0gaWNvblNpemU9IjEyIj48L2RlZXMtaWNvbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImZpbGUtaWNvbiAke1N9Ij4KICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHt0aGlzLmdldEZpbGVJY29uKEQpfSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgIDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0iZmlsZS1uYW1lIj4ke0QubmFtZX08L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICAke04mJlImJkQuY2hpbGRyZW4/dGhpcy5yZW5kZXJUcmVlKEQuY2hpbGRyZW4pOiIifQogICAgYH1nZXRGaWxlSWNvbihEKXtpZihELnR5cGU9PT0iZGlyZWN0b3J5IilyZXR1cm4gdGhpcy5leHBhbmRlZFBhdGhzLmhhcyhELnBhdGgpPyJsdWNpZGU6Zm9sZGVyT3BlbiI6Imx1Y2lkZTpmb2xkZXIiO3N3aXRjaChELm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cyI6Y2FzZSJ0c3giOnJldHVybiJsdWNpZGU6ZmlsZUNvZGUiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlImpzb24iOnJldHVybiJsdWNpZGU6ZmlsZUpzb24iO2Nhc2UiaHRtbCI6cmV0dXJuImx1Y2lkZTpmaWxlQ29kZSI7Y2FzZSJjc3MiOmNhc2Uic2NzcyI6Y2FzZSJsZXNzIjpyZXR1cm4ibHVjaWRlOmZpbGVDb2RlIjtjYXNlIm1kIjpyZXR1cm4ibHVjaWRlOmZpbGVUZXh0IjtjYXNlInBuZyI6Y2FzZSJqcGciOmNhc2UianBlZyI6Y2FzZSJnaWYiOmNhc2Uic3ZnIjpyZXR1cm4ibHVjaWRlOmltYWdlIjtkZWZhdWx0OnJldHVybiJsdWNpZGU6ZmlsZSJ9fWdldEZpbGVJY29uQ2xhc3MoRCl7aWYoRC50eXBlPT09ImRpcmVjdG9yeSIpcmV0dXJuImZvbGRlciI7c3dpdGNoKEQubmFtZS5zcGxpdCgiLiIpLnBvcCgpPy50b0xvd2VyQ2FzZSgpKXtjYXNlInRzIjpjYXNlInRzeCI6cmV0dXJuInR5cGVzY3JpcHQiO2Nhc2UianMiOmNhc2UianN4IjpyZXR1cm4iamF2YXNjcmlwdCI7Y2FzZSJqc29uIjpyZXR1cm4ianNvbiI7Y2FzZSJodG1sIjpyZXR1cm4iaHRtbCI7Y2FzZSJjc3MiOmNhc2Uic2NzcyI6Y2FzZSJsZXNzIjpyZXR1cm4iY3NzIjtjYXNlIm1kIjpyZXR1cm4ibWFya2Rvd24iO2RlZmF1bHQ6cmV0dXJuImZpbGUifX1hc3luYyBoYW5kbGVJdGVtQ2xpY2soRCxOKXtELnN0b3BQcm9wYWdhdGlvbigpLE4udHlwZT09PSJkaXJlY3RvcnkiP2F3YWl0IHRoaXMudG9nZ2xlRGlyZWN0b3J5KE4pOih0aGlzLnNlbGVjdGVkUGF0aD1OLnBhdGgsdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZmlsZS1zZWxlY3QiLHtkZXRhaWw6e3BhdGg6Ti5wYXRoLG5hbWU6Ti5uYW1lfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpKX1hc3luYyB0b2dnbGVEaXJlY3RvcnkoRCl7dGhpcy5leHBhbmRlZFBhdGhzLmhhcyhELnBhdGgpP3RoaXMuZXhwYW5kZWRQYXRocy5kZWxldGUoRC5wYXRoKToodGhpcy5leHBhbmRlZFBhdGhzLmFkZChELnBhdGgpLCghRC5jaGlsZHJlbnx8RC5jaGlsZHJlbi5sZW5ndGg9PT0wKSYmYXdhaXQgdGhpcy5sb2FkRGlyZWN0b3J5Q29udGVudHMoRCkpLHRoaXMucmVxdWVzdFVwZGF0ZSgpfWFzeW5jIGxvYWREaXJlY3RvcnlDb250ZW50cyhEKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtsZXQgTj1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIoRC5wYXRoKTtELmNoaWxkcmVuPXRoaXMuc29ydEVudHJpZXMoTikubWFwKFI9Pih7Li4uUixsZXZlbDpELmxldmVsKzEsZXhwYW5kZWQ6ITEsY2hpbGRyZW46Ui50eXBlPT09ImRpcmVjdG9yeSI/W106dm9pZCAwfSkpfWNhdGNoKE4pe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIGRpcmVjdG9yeSAke0QucGF0aH06YCxOKX19YXN5bmMgaGFuZGxlQ29udGV4dE1lbnUoRCxOKXtELnByZXZlbnREZWZhdWx0KCksRC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUj1bXTtOLnR5cGU9PT0iZGlyZWN0b3J5IiYmUi5wdXNoKHtuYW1lOiJOZXcgRmlsZSIsaWNvbk5hbWU6ImZpbGVQbHVzIixhY3Rpb246YXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGaWxlKE4ucGF0aCl9LHtuYW1lOiJOZXcgRm9sZGVyIixpY29uTmFtZToiZm9sZGVyUGx1cyIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuY3JlYXRlTmV3Rm9sZGVyKE4ucGF0aCl9LHtkaXZpZGVyOiEwfSksUi5wdXNoKHtuYW1lOiJSZW5hbWUiLGljb25OYW1lOiJwZW5jaWwiLGFjdGlvbjphc3luYygpPT50aGlzLnJlbmFtZUl0ZW0oTil9LHtuYW1lOiJEdXBsaWNhdGUiLGljb25OYW1lOiJmaWxlcyIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuZHVwbGljYXRlSXRlbShOKX0se25hbWU6IkNvcHkiLGljb25OYW1lOiJjb3B5IixhY3Rpb246YXN5bmMoKT0+dGhpcy5jb3B5SXRlbShOKX0pLE4udHlwZT09PSJkaXJlY3RvcnkiJiZ0aGlzLmNsaXBib2FyZFBhdGgmJlIucHVzaCh7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT50aGlzLnBhc3RlSXRlbShOLnBhdGgpfSksUi5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZToiRGVsZXRlIixpY29uTmFtZToidHJhc2gyIixhY3Rpb246YXN5bmMoKT0+dGhpcy5kZWxldGVJdGVtKE4pfSksYXdhaXQgU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoRCxSKX1hc3luYyBoYW5kbGVFbXB0eVNwYWNlQ29udGV4dE1lbnUoRCl7aWYoRC50YXJnZXQuY2xvc2VzdCgiLnRyZWUtaXRlbSIpKXJldHVybjtELnByZXZlbnREZWZhdWx0KCksRC5zdG9wUHJvcGFnYXRpb24oKTtsZXQgUj1be25hbWU6Ik5ldyBGaWxlIixpY29uTmFtZToiZmlsZVBsdXMiLGFjdGlvbjphc3luYygpPT50aGlzLmNyZWF0ZU5ld0ZpbGUoIi8iKX0se25hbWU6Ik5ldyBGb2xkZXIiLGljb25OYW1lOiJmb2xkZXJQbHVzIixhY3Rpb246YXN5bmMoKT0+dGhpcy5jcmVhdGVOZXdGb2xkZXIoIi8iKX1dO3RoaXMuY2xpcGJvYXJkUGF0aCYmUi5wdXNoKHtkaXZpZGVyOiEwfSx7bmFtZToiUGFzdGUiLGljb25OYW1lOiJjbGlwYm9hcmQiLGFjdGlvbjphc3luYygpPT50aGlzLnBhc3RlSXRlbSgiLyIpfSksYXdhaXQgU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoRCxSKX1hc3luYyBzaG93SW5wdXRNb2RhbChEKXtyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgTj0+e2xldCBSPWF3YWl0IFdyLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6RC5oZWFkaW5nLHdpZHRoOiJzbWFsbCIsY29udGVudDpDYAogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dAogICAgICAgICAgICAubGFiZWw9JHtELmxhYmVsfQogICAgICAgICAgICAudmFsdWU9JHtELnZhbHVlfHwiIn0KICAgICAgICAgID48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgUz0+e2F3YWl0IFMuZGVzdHJveSgpLE4obnVsbCl9fSx7bmFtZTpELmJ1dHRvbk5hbWV8fCJDcmVhdGUiLGFjdGlvbjphc3luYyBTPT57bGV0IEU9Uy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIubW9kYWwgLmNvbnRlbnQiKT8ucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik/LnZhbHVlPy50cmltKCl8fCIiO2F3YWl0IFMuZGVzdHJveSgpLE4oRXx8bnVsbCl9fV19KTthd2FpdCBSLnVwZGF0ZUNvbXBsZXRlO2xldCBfPVIuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLm1vZGFsIC5jb250ZW50Iik7aWYoXyl7bGV0IFM9Xy5xdWVyeVNlbGVjdG9yKCJkZWVzLWlucHV0LXRleHQiKTtTJiYoYXdhaXQgUy51cGRhdGVDb21wbGV0ZSxTLmZvY3VzKCkpfX0pfWFzeW5jIGNyZWF0ZU5ld0ZpbGUoRCl7bGV0IE49YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiTmV3IEZpbGUiLGxhYmVsOiJGaWxlIG5hbWUifSk7aWYoIU58fCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgUj1EPT09Ii8iP2AvJHtOfWA6YCR7RH0vJHtOfWA7dHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKFIsIiIpLGF3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZpbGUtY3JlYXRlZCIse2RldGFpbDp7cGF0aDpSfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKF8pe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgZmlsZToiLF8pfX1hc3luYyBjcmVhdGVOZXdGb2xkZXIoRCl7bGV0IE49YXdhaXQgdGhpcy5zaG93SW5wdXRNb2RhbCh7aGVhZGluZzoiTmV3IEZvbGRlciIsbGFiZWw6IkZvbGRlciBuYW1lIn0pO2lmKCFOfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudClyZXR1cm47bGV0IFI9RD09PSIvIj9gLyR7Tn1gOmAke0R9LyR7Tn1gO3RyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50Lm1rZGlyKFIpLGF3YWl0IHRoaXMucmVmcmVzaCgpLHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImZvbGRlci1jcmVhdGVkIix7ZGV0YWlsOntwYXRoOlJ9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goXyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBmb2xkZXI6IixfKX19YXN5bmMgZGVsZXRlSXRlbShEKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhY29uZmlybShgRGVsZXRlICR7RC5uYW1lfT9gKSkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucm0oRC5wYXRoLHtyZWN1cnNpdmU6RC50eXBlPT09ImRpcmVjdG9yeSJ9KSxhd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLWRlbGV0ZWQiLHtkZXRhaWw6e3BhdGg6RC5wYXRoLHR5cGU6RC50eXBlfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpfWNhdGNoKFIpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBkZWxldGUgaXRlbToiLFIpfX1hc3luYyByZW5hbWVJdGVtKEQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjtsZXQgTj1hd2FpdCB0aGlzLnNob3dJbnB1dE1vZGFsKHtoZWFkaW5nOiJSZW5hbWUiLGxhYmVsOiJOZXcgbmFtZSIsdmFsdWU6RC5uYW1lLGJ1dHRvbk5hbWU6IlJlbmFtZSJ9KTtpZighTnx8Tj09PUQubmFtZSlyZXR1cm47bGV0IFI9RC5wYXRoLnN1YnN0cmluZygwLEQucGF0aC5sYXN0SW5kZXhPZigiLyIpKXx8Ii8iLF89Uj09PSIvIj9gLyR7Tn1gOmAke1J9LyR7Tn1gO3RyeXtpZihELnR5cGU9PT0iZmlsZSIpe2xldCBTPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoRC5wYXRoKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShfLFMpLGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucm0oRC5wYXRoKX1lbHNlIGF3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKEQucGF0aCxfKSxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJtKEQucGF0aCx7cmVjdXJzaXZlOiEwfSk7YXdhaXQgdGhpcy5yZWZyZXNoKCksdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiaXRlbS1yZW5hbWVkIix7ZGV0YWlsOntvbGRQYXRoOkQucGF0aCxuZXdQYXRoOl8sdHlwZTpELnR5cGV9LGJ1YmJsZXM6ITAsY29tcG9zZWQ6ITB9KSl9Y2F0Y2goUyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHJlbmFtZSBpdGVtOiIsUyl9fWFzeW5jIGR1cGxpY2F0ZUl0ZW0oRCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBOPUQucGF0aC5zdWJzdHJpbmcoMCxELnBhdGgubGFzdEluZGV4T2YoIi8iKSl8fCIvIixSO2lmKEQudHlwZT09PSJmaWxlIil7bGV0IFM9RC5uYW1lLmxhc3RJbmRleE9mKCIuIik7aWYoUz4wKXtsZXQgJD1ELm5hbWUuc3Vic3RyaW5nKDAsUyksVD1ELm5hbWUuc3Vic3RyaW5nKFMpO1I9YCR7JH1fY29weSR7VH1gfWVsc2UgUj1gJHtELm5hbWV9X2NvcHlgfWVsc2UgUj1gJHtELm5hbWV9X2NvcHlgO2xldCBfPU49PT0iLyI/YC8ke1J9YDpgJHtOfS8ke1J9YDt0cnl7aWYoRC50eXBlPT09ImZpbGUiKXtsZXQgUz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKEQucGF0aCk7YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53cml0ZUZpbGUoXyxTKX1lbHNlIGF3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKEQucGF0aCxfKTthd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLWR1cGxpY2F0ZWQiLHtkZXRhaWw6e3NvdXJjZVBhdGg6RC5wYXRoLG5ld1BhdGg6Xyx0eXBlOkQudHlwZX0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jYXRjaChTKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZHVwbGljYXRlIGl0ZW06IixTKX19YXN5bmMgY29weUl0ZW0oRCl7dGhpcy5jbGlwYm9hcmRQYXRoPUQucGF0aCx0aGlzLmNsaXBib2FyZE9wZXJhdGlvbj0iY29weSJ9YXN5bmMgcGFzdGVJdGVtKEQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHwhdGhpcy5jbGlwYm9hcmRQYXRoKXJldHVybjtsZXQgTj10aGlzLmNsaXBib2FyZFBhdGguc3BsaXQoIi8iKS5wb3AoKXx8InBhc3RlZCIsUj1EPT09Ii8iP2AvJHtOfWA6YCR7RH0vJHtOfWA7dHJ5e2lmKCFhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyh0aGlzLmNsaXBib2FyZFBhdGgpKXtjb25zb2xlLmVycm9yKCJTb3VyY2UgZmlsZSBubyBsb25nZXIgZXhpc3RzIiksdGhpcy5jbGlwYm9hcmRQYXRoPW51bGwsdGhpcy5jbGlwYm9hcmRPcGVyYXRpb249bnVsbDtyZXR1cm59dHJ5e2xldCBfPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUodGhpcy5jbGlwYm9hcmRQYXRoKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShSLF8pfWNhdGNoe2F3YWl0IHRoaXMuY29weURpcmVjdG9yeUNvbnRlbnRzKHRoaXMuY2xpcGJvYXJkUGF0aCxSKX1hd2FpdCB0aGlzLnJlZnJlc2goKSx0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJpdGVtLXBhc3RlZCIse2RldGFpbDp7c291cmNlUGF0aDp0aGlzLmNsaXBib2FyZFBhdGgsdGFyZ2V0UGF0aDpSfSxidWJibGVzOiEwLGNvbXBvc2VkOiEwfSkpLHRoaXMuY2xpcGJvYXJkUGF0aD1udWxsLHRoaXMuY2xpcGJvYXJkT3BlcmF0aW9uPW51bGx9Y2F0Y2goXyl7Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHBhc3RlIGl0ZW06IixfKX19YXN5bmMgY29weURpcmVjdG9yeUNvbnRlbnRzKEQsTil7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQubWtkaXIoTik7bGV0IFI9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKEQpO2ZvcihsZXQgXyBvZiBSKXtsZXQgUz1EPT09Ii8iP2AvJHtfLm5hbWV9YDpgJHtEfS8ke18ubmFtZX1gLCQ9Tj09PSIvIj9gLyR7Xy5uYW1lfWA6YCR7Tn0vJHtfLm5hbWV9YDtpZihfLnR5cGU9PT0iZGlyZWN0b3J5Iilhd2FpdCB0aGlzLmNvcHlEaXJlY3RvcnlDb250ZW50cyhTLCQpO2Vsc2V7bGV0IFQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShTKTthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZSgkLFQpfX19YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgdGhpcy5sb2FkVHJlZSgpfWFzeW5jIHVwZGF0ZWQoRCl7RC5oYXMoImV4ZWN1dGlvbkVudmlyb25tZW50IikmJih0aGlzLmxhc3RFeGVjdXRpb25FbnZpcm9ubWVudCE9PXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJih0aGlzLnN0b3BGaWxlV2F0Y2hlcigpLHRoaXMubGFzdEV4ZWN1dGlvbkVudmlyb25tZW50PXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpLHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJihhd2FpdCB0aGlzLmxvYWRUcmVlKCksdGhpcy5zdGFydEZpbGVXYXRjaGVyKCkpKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zdG9wRmlsZVdhdGNoZXIoKSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0KSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9bnVsbCl9c3RhcnRGaWxlV2F0Y2hlcigpe2lmKCEoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnR8fHRoaXMuZmlsZVdhdGNoZXIpKXRyeXt0aGlzLmZpbGVXYXRjaGVyPXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud2F0Y2goIi8iLChELE4pPT57dGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoRGVib3VuY2VUaW1lb3V0KSx0aGlzLnJlZnJlc2hEZWJvdW5jZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMucmVmcmVzaCgpfSwzMDApfSx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2goRCl7Y29uc29sZS53YXJuKCJGaWxlIHdhdGNoaW5nIG5vdCBzdXBwb3J0ZWQ6IixEKX19c3RvcEZpbGVXYXRjaGVyKCl7dGhpcy5maWxlV2F0Y2hlciYmKHRoaXMuZmlsZVdhdGNoZXIuc3RvcCgpLHRoaXMuZmlsZVdhdGNoZXI9bnVsbCl9YXN5bmMgbG9hZFRyZWUoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiYhdGhpcy5sb2FkVHJlZVN0YXJ0ZWQpe3RoaXMubG9hZFRyZWVTdGFydGVkPSEwLHRoaXMuaXNMb2FkaW5nPSEwLHRoaXMuZXJyb3JNZXNzYWdlPSIiO3RyeXt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5fHxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKTtsZXQgRD1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIodGhpcy5yb290UGF0aCk7dGhpcy50cmVlRGF0YT10aGlzLnNvcnRFbnRyaWVzKEQpLm1hcChOPT4oey4uLk4sbGV2ZWw6MCxleHBhbmRlZDohMSxjaGlsZHJlbjpOLnR5cGU9PT0iZGlyZWN0b3J5Ij9bXTp2b2lkIDB9KSl9Y2F0Y2goRCl7dGhpcy5lcnJvck1lc3NhZ2U9YEZhaWxlZCB0byBsb2FkIGZpbGVzOiAke0R9YCxjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gbG9hZCBmaWxlIHRyZWU6IixEKSx0aGlzLmxvYWRUcmVlU3RhcnRlZD0hMX1maW5hbGx5e3RoaXMuaXNMb2FkaW5nPSExfX19c29ydEVudHJpZXMoRCl7cmV0dXJuIEQuc29ydCgoTixSKT0+Ti50eXBlIT09Ui50eXBlP04udHlwZT09PSJkaXJlY3RvcnkiPy0xOjE6Ti5uYW1lLmxvY2FsZUNvbXBhcmUoUi5uYW1lKSl9YXN5bmMgcmVmcmVzaCgpe3RoaXMuZXhwYW5kZWRQYXRocy5jbGVhcigpLHRoaXMubG9hZFRyZWVTdGFydGVkPSExLGF3YWl0IHRoaXMubG9hZFRyZWUoKX1zZWxlY3RGaWxlKEQpe3RoaXMuc2VsZWN0ZWRQYXRoPUR9c3RhdGlje3JvKGkscil9fTtyZXR1cm4gRj1pfSkoKX0pO3ZhciBpNWUsWmIsVWRyLGE1ZT1wKCgpPT57eGUoKTtKZSgpO0I0KCk7aTVlPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sWmI9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFVkcj0oKCk9PntsZXQgZT1beWUoImRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXciKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXTt2YXIgZD1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IGg9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpBcnJheX0pXSxpNWUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjb21tYW5kIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4iY29tbWFuZCJpbiBmLGdldDpmPT5mLmNvbW1hbmQsc2V0OihmLHgpPT57Zi5jb21tYW5kPXh9fSxtZXRhZGF0YTpofSxvLHMpLGk1ZSh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImxpbmVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpmPT4ibGluZXMiaW4gZixnZXQ6Zj0+Zi5saW5lcyxzZXQ6KGYseCk9PntmLmxpbmVzPXh9fSxtZXRhZGF0YTpofSxjLHUpLGk1ZShudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTpofSxudWxsLHIpLGQ9aT10LnZhbHVlLGgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pfXN0YXRpYyBkZW1vPSgpPT5DYAogICAgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcKICAgICAgLmNvbW1hbmQ9JHsicG5wbSBpbnN0YWxsIn0KICAgICAgLmxpbmVzPSR7WyJQYWNrYWdlczogKzQyIiwiUHJvZ3Jlc3M6IHJlc29sdmVkIDE0MiwgcmV1c2VkIDE0MCwgZG93bmxvYWRlZCAyLCBhZGRlZCA0MiwgZG9uZSIsIiIsImRlcGVuZGVuY2llczoiLCIrIEBwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSA0LjIuMyIsIisgdHlwZXNjcmlwdCA1LjMuMyIsIiIsIkRvbmUgaW4gMi4zcyJdfQogICAgPjwvZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldz4KICBgO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9WmIodGhpcyxvLCIiKTtnZXQgY29tbWFuZCgpe3JldHVybiB0aGlzLiNlfXNldCBjb21tYW5kKGgpe3RoaXMuI2U9aH0jdD0oWmIodGhpcyxzKSxaYih0aGlzLGMsW10pKTtnZXQgbGluZXMoKXtyZXR1cm4gdGhpcy4jdH1zZXQgbGluZXMoaCl7dGhpcy4jdD1ofXRlcm1pbmFsPShaYih0aGlzLHUpLG51bGwpO2ZpdEFkZG9uPW51bGw7bGFzdExpbmVDb3VudD0wO3Jlc2l6ZU9ic2VydmVyPW51bGw7dGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsO3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1wcmV2aWV3IHsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBwYWRkaW5nOiA4cHggMTJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTYlKSIsImhzbCgwIDAlIDEwJSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtZmFtaWx5OiAnU0YgTW9ubycsICdNb25hY28nLCAnSW5jb25zb2xhdGEnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNDAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWhlYWRlci1pY29uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICB9CgogICAgICAudGVybWluYWwtaGVhZGVyLWNvbW1hbmQgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgcGFkZGluZzogOHB4OwogICAgICB9CgogICAgICAjeHRlcm0tY29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA4cHg7CiAgICAgICAgbGVmdDogOHB4OwogICAgICAgIHJpZ2h0OiA4cHg7CiAgICAgICAgYm90dG9tOiA4cHg7CiAgICAgIH0KCiAgICAgIC8qIHh0ZXJtLmpzIHN0eWxlcyAqLwogICAgICAueHRlcm0gewogICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnIDA7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAueHRlcm0uZm9jdXMsCiAgICAgIC54dGVybTpmb2N1cyB7CiAgICAgICAgb3V0bGluZTogbm9uZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1oZWxwZXJzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIHotaW5kZXg6IDU7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0taGVscGVyLXRleHRhcmVhIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgd2lkdGg6IDA7CiAgICAgICAgaGVpZ2h0OiAwOwogICAgICAgIHotaW5kZXg6IC01OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICByZXNpemU6IG5vbmU7CiAgICAgIH0KCiAgICAgIC54dGVybSAuY29tcG9zaXRpb24tdmlldyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzMzMzMzMyIsIiNmZmZmZmYiKX07CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICB6LWluZGV4OiAxOwogICAgICB9CgogICAgICAueHRlcm0gLmNvbXBvc2l0aW9uLXZpZXcuYWN0aXZlIHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS12aWV3cG9ydCB7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMDAwMDAwIil9OwogICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1zY3JlZW4gY2FudmFzIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogMDsKICAgICAgICB0b3A6IDA7CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tc2Nyb2xsLWFyZWEgewogICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnh0ZXJtLWNoYXItbWVhc3VyZS1lbGVtZW50IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogLTk5OTllbTsKICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOwogICAgICB9CgogICAgICAueHRlcm0gewogICAgICAgIGN1cnNvcjogdGV4dDsKICAgICAgfQoKICAgICAgLnh0ZXJtLmVuYWJsZS1tb3VzZS1ldmVudHMgewogICAgICAgIGN1cnNvcjogZGVmYXVsdDsKICAgICAgfQoKICAgICAgLnh0ZXJtLnh0ZXJtLWN1cnNvci1wb2ludGVyIHsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgIH0KCiAgICAgIC54dGVybS5jb2x1bW4tc2VsZWN0LmZvY3VzIHsKICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjsKICAgICAgfQoKICAgICAgLnh0ZXJtIC54dGVybS1hY2Nlc3NpYmlsaXR5LAogICAgICAueHRlcm0gLnh0ZXJtLW1lc3NhZ2UgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHRvcDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgei1pbmRleDogMTA7CiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgICB9CgogICAgICAueHRlcm0gLmxpdmUtcmVnaW9uIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgbGVmdDogLTk5OTlweDsKICAgICAgICB3aWR0aDogMXB4OwogICAgICAgIGhlaWdodDogMXB4OwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgIH0KCiAgICAgIC54dGVybS1kaW0gewogICAgICAgIG9wYWNpdHk6IDAuNTsKICAgICAgfQoKICAgICAgLnh0ZXJtLXVuZGVybGluZSB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIEN1c3RvbSBzY3JvbGxiYXIgZm9yIHh0ZXJtIHZpZXdwb3J0ICovCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICAgICAgICB3aWR0aDogOHB4OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA4JSkiKX07CiAgICAgIH0KCiAgICAgIC54dGVybSAueHRlcm0tdmlld3BvcnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODAlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICB9CgogICAgICAueHRlcm0gLnh0ZXJtLXZpZXdwb3J0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDcwJSkiLCJoc2woMCAwJSAzNSUpIil9OwogICAgICB9CiAgICBgXTtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtcHJldmlldyI+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtaGVhZGVyIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItaWNvbiI+JDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1oZWFkZXItY29tbWFuZCI+JHt0aGlzLmNvbW1hbmR8fCJXYWl0aW5nLi4uIn08L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyIj4KICAgICAgICAgIDxkaXYgaWQ9Inh0ZXJtLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1nZXRUZXJtaW5hbFRoZW1lKGgpe3JldHVybiBoP3tiYWNrZ3JvdW5kOiIjZmZmZmZmIixmb3JlZ3JvdW5kOiIjMzMzMzMzIixjdXJzb3I6IiMzMzMzMzMiLGN1cnNvckFjY2VudDoiI2ZmZmZmZiIsc2VsZWN0aW9uQmFja2dyb3VuZDoicmdiYSgwLCAwLCAwLCAwLjIpIn06e2JhY2tncm91bmQ6IiMwMDAwMDAiLGZvcmVncm91bmQ6IiNjY2NjY2MiLGN1cnNvcjoiI2NjY2NjYyIsY3Vyc29yQWNjZW50OiIjMDAwMDAwIixzZWxlY3Rpb25CYWNrZ3JvdW5kOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikifX1hc3luYyBmaXJzdFVwZGF0ZWQoaCl7c3VwZXIuZmlyc3RVcGRhdGVkKGgpO2xldCBmPXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoInh0ZXJtLWNvbnRhaW5lciIpO2lmKCFmKXJldHVybjtsZXQgeD1hd2FpdCB0aGlzLmRvbXRvb2xzUHJvbWlzZSx2PXgudGhlbWVNYW5hZ2VyLmdvQnJpZ2h0Qm9vbGVhbixiPXJhLmdldEluc3RhbmNlKCksW3ksd109YXdhaXQgUHJvbWlzZS5hbGwoW2IubG9hZFh0ZXJtKCksYi5sb2FkWHRlcm1GaXRBZGRvbigpXSk7dGhpcy50ZXJtaW5hbD1uZXcgeS5UZXJtaW5hbCh7Y29udmVydEVvbDohMCxjdXJzb3JCbGluazohMSxkaXNhYmxlU3RkaW46ITAsZm9udFNpemU6MTIsZm9udEZhbWlseToiJ1NGIE1vbm8nLCAnTW9uYWNvJywgJ0luY29uc29sYXRhJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZSIsdGhlbWU6dGhpcy5nZXRUZXJtaW5hbFRoZW1lKHYpLHNjcm9sbGJhY2s6MWUzfSksdGhpcy50ZXJtaW5hbFRoZW1lU3Vic2NyaXB0aW9uPXgudGhlbWVNYW5hZ2VyLnRoZW1lT2JzZXJ2YWJsZS5zdWJzY3JpYmUoaz0+e3RoaXMudGVybWluYWwmJih0aGlzLnRlcm1pbmFsLm9wdGlvbnMudGhlbWU9dGhpcy5nZXRUZXJtaW5hbFRoZW1lKGspKX0pLHRoaXMuZml0QWRkb249bmV3IHcuRml0QWRkb24sdGhpcy50ZXJtaW5hbC5sb2FkQWRkb24odGhpcy5maXRBZGRvbiksdGhpcy50ZXJtaW5hbC5vcGVuKGYpLHRoaXMuZml0QWRkb24uZml0KCksdGhpcy5yZXNpemVPYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9Pnt0aGlzLmZpdEFkZG9uJiZ0aGlzLmZpdEFkZG9uLmZpdCgpfSksdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGYpLHRoaXMud3JpdGVOZXdMaW5lcygpfWFzeW5jIHVwZGF0ZWQoaCl7c3VwZXIudXBkYXRlZChoKSxoLmhhcygibGluZXMiKSYmdGhpcy53cml0ZU5ld0xpbmVzKCl9d3JpdGVOZXdMaW5lcygpe2lmKCF0aGlzLnRlcm1pbmFsKXJldHVybjtsZXQgaD10aGlzLmxpbmVzLnNsaWNlKHRoaXMubGFzdExpbmVDb3VudCk7Zm9yKGxldCBmIG9mIGgpdGhpcy50ZXJtaW5hbC53cml0ZWxuKGYpO3RoaXMubGFzdExpbmVDb3VudD10aGlzLmxpbmVzLmxlbmd0aH1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe3RoaXMucmVzaXplT2JzZXJ2ZXImJih0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLnJlc2l6ZU9ic2VydmVyPW51bGwpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMudGVybWluYWxUaGVtZVN1YnNjcmlwdGlvbj1udWxsKSx0aGlzLnRlcm1pbmFsJiYodGhpcy50ZXJtaW5hbC5kaXNwb3NlKCksdGhpcy50ZXJtaW5hbD1udWxsKSxhd2FpdCBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpfWFkZExpbmUoaCl7dGhpcy5saW5lcz1bLi4udGhpcy5saW5lcyxoXX1jbGVhcigpe3RoaXMubGluZXM9W10sdGhpcy5sYXN0TGluZUNvdW50PTAsdGhpcy50ZXJtaW5hbCYmdGhpcy50ZXJtaW5hbC5jbGVhcigpfXN0YXRpY3taYihpLHIpfX07cmV0dXJuIGQ9aX0pKCl9KTt2YXIgdmgsUjIsV2RyLG41ZT1wKCgpPT57eGUoKTtKZSgpO29yKCk7TWkoKTt2aD1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LFIyPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGk9YXJndW1lbnRzLmxlbmd0aD4yLGE9MDthPHQubGVuZ3RoO2ErKylyPWk/dFthXS5jYWxsKGUscik6dFthXS5jYWxsKGUpO3JldHVybiBpP3I6dm9pZCAwfSxXZHI9KCgpPT57bGV0IGU9W3llKCJkZWVzLXdvcmtzcGFjZS1ib3R0b21iYXIiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXTt2YXIgTz1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IHo9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpPYmplY3R9KV0sbD1bZmUoKV0sZD1bZmUoKV0seD1bZmUoKV0seT1bZmUoKV0sdmgodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJleGVjdXRpb25FbnZpcm9ubWVudCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIE0sZ2V0Ok09Pk0uZXhlY3V0aW9uRW52aXJvbm1lbnQsc2V0OihNLEYpPT57TS5leGVjdXRpb25FbnZpcm9ubWVudD1GfX0sbWV0YWRhdGE6en0sbyxzKSx2aCh0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InNjcmlwdHMiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk09PiJzY3JpcHRzImluIE0sZ2V0Ok09Pk0uc2NyaXB0cyxzZXQ6KE0sRik9PntNLnNjcmlwdHM9Rn19LG1ldGFkYXRhOnp9LGMsdSksdmgodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJwYWNrYWdlU3RhdHVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpNPT4icGFja2FnZVN0YXR1cyJpbiBNLGdldDpNPT5NLnBhY2thZ2VTdGF0dXMsc2V0OihNLEYpPT57TS5wYWNrYWdlU3RhdHVzPUZ9fSxtZXRhZGF0YTp6fSxoLGYpLHZoKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3V0ZGF0ZWRQYWNrYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+Im91dGRhdGVkUGFja2FnZXMiaW4gTSxnZXQ6TT0+TS5vdXRkYXRlZFBhY2thZ2VzLHNldDooTSxGKT0+e00ub3V0ZGF0ZWRQYWNrYWdlcz1GfX0sbWV0YWRhdGE6en0sdixiKSx2aCh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzQ2hlY2tpbmdQYWNrYWdlcyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6TT0+ImlzQ2hlY2tpbmdQYWNrYWdlcyJpbiBNLGdldDpNPT5NLmlzQ2hlY2tpbmdQYWNrYWdlcyxzZXQ6KE0sRik9PntNLmlzQ2hlY2tpbmdQYWNrYWdlcz1GfX0sbWV0YWRhdGE6en0sdyxrKSx2aChudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp6fSxudWxsLHIpLE89aT10LnZhbHVlLHomJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfSNlPVIyKHRoaXMsbyxudWxsKTtnZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoKXtyZXR1cm4gdGhpcy4jZX1zZXQgZXhlY3V0aW9uRW52aXJvbm1lbnQoeil7dGhpcy4jZT16fSN0PShSMih0aGlzLHMpLFIyKHRoaXMsYyx7fSkpO2dldCBzY3JpcHRzKCl7cmV0dXJuIHRoaXMuI3R9c2V0IHNjcmlwdHMoeil7dGhpcy4jdD16fSNyPShSMih0aGlzLHUpLFIyKHRoaXMsaCwiaWRsZSIpKTtnZXQgcGFja2FnZVN0YXR1cygpe3JldHVybiB0aGlzLiNyfXNldCBwYWNrYWdlU3RhdHVzKHope3RoaXMuI3I9en0jaT0oUjIodGhpcyxmKSxSMih0aGlzLHYsW10pKTtnZXQgb3V0ZGF0ZWRQYWNrYWdlcygpe3JldHVybiB0aGlzLiNpfXNldCBvdXRkYXRlZFBhY2thZ2VzKHope3RoaXMuI2k9en0jYT0oUjIodGhpcyxiKSxSMih0aGlzLHcsITEpKTtnZXQgaXNDaGVja2luZ1BhY2thZ2VzKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGlzQ2hlY2tpbmdQYWNrYWdlcyh6KXt0aGlzLiNhPXp9cGVuZGluZ1BhY2thZ2VVcGRhdGU9KFIyKHRoaXMsayksITEpO2hhbmRsZVByb2Nlc3NDb21wbGV0ZT16PT57dGhpcy5wZW5kaW5nUGFja2FnZVVwZGF0ZSYmKHRoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITEsc2V0VGltZW91dCgoKT0+dGhpcy5jaGVja1BhY2thZ2VzKCksNTAwKSl9O3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmJvdHRvbS1iYXIgewogICAgICAgIGhlaWdodDogMjRweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMCA4cHg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk0JSkiLCJoc2woMCAwJSA2JSkiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldCB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNHB4OwogICAgICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLndpZGdldDpob3ZlciB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMjAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgIH0KCiAgICAgIC53aWRnZXQgZGVlcy1pY29uIHsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLndpZGdldC1zZXBhcmF0b3IgewogICAgICAgIHdpZHRoOiAxcHg7CiAgICAgICAgaGVpZ2h0OiAxNHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4MCUpIiwiaHNsKDAgMCUgMjAlKSIpfTsKICAgICAgICBtYXJnaW46IDAgNHB4OwogICAgICB9CgogICAgICAud2lkZ2V0LnJ1bm5pbmcgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDQ1JSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC51cC10by1kYXRlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgxNDIgNzAlIDM1JSkiLCJoc2woMTQyIDcwJSA1MCUpIil9OwogICAgICB9CgogICAgICAud2lkZ2V0LnVwZGF0ZXMtYXZhaWxhYmxlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgzOCA5MiUgNDUlKSIsImhzbCgzOCA5MiUgNTUlKSIpfTsKICAgICAgfQoKICAgICAgLndpZGdldC5lcnJvciB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCA3MCUgNTAlKSIsImhzbCgwIDcwJSA2MCUpIil9OwogICAgICB9CgogICAgICBAa2V5ZnJhbWVzIHNwaW4gewogICAgICAgIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAgIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgICB9CgogICAgICAuc3Bpbm5pbmcgewogICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICAgIH0KCiAgICAgIC5zcGFjZXIgewogICAgICAgIGZsZXg6IDE7CiAgICAgIH0KICAgIGBdO3JlbmRlcigpe3JldHVybiBDYAogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tYmFyIj4KICAgICAgICA8IS0tIFNjcmlwdCBSdW5uZXIgV2lkZ2V0IC0tPgogICAgICAgIDxkaXYKICAgICAgICAgIGNsYXNzPSJ3aWRnZXQiCiAgICAgICAgICBAY2xpY2s9JHt0aGlzLmhhbmRsZVNjcmlwdENsaWNrfQogICAgICAgICAgdGl0bGU9IlJ1biBzY3JpcHQiCiAgICAgICAgPgogICAgICAgICAgPGRlZXMtaWNvbgogICAgICAgICAgICAuaWNvbj0keyJsdWNpZGU6cGxheSJ9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgID48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPlNjcmlwdHM8L3NwYW4+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9IndpZGdldC1zZXBhcmF0b3IiPjwvZGl2PgoKICAgICAgICA8IS0tIFBhY2thZ2UgQ2hlY2tlciBXaWRnZXQgLS0+CiAgICAgICAgPGRpdgogICAgICAgICAgY2xhc3M9IndpZGdldCAke3RoaXMuZ2V0UGFja2FnZVN0YXR1c0NsYXNzKCl9IgogICAgICAgICAgQGNsaWNrPSR7dGhpcy5oYW5kbGVQYWNrYWdlQ2xpY2t9CiAgICAgICAgICB0aXRsZT0iJHt0aGlzLmdldFBhY2thZ2VUb29sdGlwKCl9IgogICAgICAgID4KICAgICAgICAgIDxkZWVzLWljb24KICAgICAgICAgICAgLmljb249JHt0aGlzLmdldFBhY2thZ2VJY29uKCl9CiAgICAgICAgICAgIGljb25TaXplPSIxMiIKICAgICAgICAgICAgY2xhc3M9IiR7dGhpcy5pc0NoZWNraW5nUGFja2FnZXM/InNwaW5uaW5nIjoiIn0iCiAgICAgICAgICA+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj4ke3RoaXMuZ2V0UGFja2FnZVN0YXR1c1RleHQoKX08L3NwYW4+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciI+PC9kaXY+CgogICAgICAgIDwhLS0gRnV0dXJlIHdpZGdldHMgY2FuIGJlIGFkZGVkIGhlcmUgLS0+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInByb2Nlc3MtY29tcGxldGUiLHRoaXMuaGFuZGxlUHJvY2Vzc0NvbXBsZXRlKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInByb2Nlc3MtY29tcGxldGUiLHRoaXMuaGFuZGxlUHJvY2Vzc0NvbXBsZXRlKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLmxvYWRTY3JpcHRzKCksYXdhaXQgdGhpcy5jaGVja1BhY2thZ2VzKCl9YXN5bmMgdXBkYXRlZCh6KXt6LmhhcygiZXhlY3V0aW9uRW52aXJvbm1lbnQiKSYmdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmKGF3YWl0IHRoaXMubG9hZFNjcmlwdHMoKSxhd2FpdCB0aGlzLmNoZWNrUGFja2FnZXMoKSl9YXN5bmMgbG9hZFNjcmlwdHMoKXtpZih0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXRyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9wYWNrYWdlLmpzb24iKSl7dGhpcy5zY3JpcHRzPXt9O3JldHVybn1sZXQgTT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKCIvcGFja2FnZS5qc29uIiksRj1KU09OLnBhcnNlKE0pO3RoaXMuc2NyaXB0cz1GLnNjcmlwdHN8fHt9fWNhdGNoKHope2NvbnNvbGUud2FybigiRmFpbGVkIHRvIGxvYWQgc2NyaXB0cyBmcm9tIHBhY2thZ2UuanNvbjoiLHopLHRoaXMuc2NyaXB0cz17fX19YXN5bmMgaGFuZGxlU2NyaXB0Q2xpY2soeil7ei5zdG9wUHJvcGFnYXRpb24oKTtsZXQgTT1PYmplY3Qua2V5cyh0aGlzLnNjcmlwdHMpO2lmKE0ubGVuZ3RoPT09MClyZXR1cm47bGV0IEY9TS5tYXAoRD0+KHtuYW1lOkQsaWNvbk5hbWU6Imx1Y2lkZTp0ZXJtaW5hbCIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnJ1blNjcmlwdChEKX19KSk7YXdhaXQgU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoeixGKX1hc3luYyBydW5TY3JpcHQoeil7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO2xldCBNPXt0eXBlOiJzY3JpcHQiLGxhYmVsOnosY29tbWFuZDoicG5wbSIsYXJnczpbInJ1biIsel0sbWV0YWRhdGE6e3NjcmlwdE5hbWU6en19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6TX0pKX1hc3luYyBjaGVja1BhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe3RoaXMucGFja2FnZVN0YXR1cz0iaWRsZSI7cmV0dXJufXRyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9wYWNrYWdlLmpzb24iKSl7dGhpcy5wYWNrYWdlU3RhdHVzPSJpZGxlIjtyZXR1cm59dGhpcy5wYWNrYWdlU3RhdHVzPSJjaGVja2luZyIsdGhpcy5pc0NoZWNraW5nUGFja2FnZXM9ITA7bGV0IE09YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5zcGF3bigicG5wbSIsWyJvdXRkYXRlZCIsIi0tanNvbiJdKSxGPSIiLEQ9TS5vdXRwdXQuZ2V0UmVhZGVyKCk7KGFzeW5jKCk9Pnt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTpfLHZhbHVlOlN9PWF3YWl0IEQucmVhZCgpO2lmKF8pYnJlYWs7Ris9U319Y2F0Y2h7fX0pKCk7bGV0IFI9YXdhaXQgUHJvbWlzZS5yYWNlKFtNLmV4aXQsbmV3IFByb21pc2UoXz0+c2V0VGltZW91dCgoKT0+XygtMSksMWU0KSldKTt0cnl7YXdhaXQgRC5jYW5jZWwoKX1jYXRjaHt9aWYoUj09PS0xKXtjb25zb2xlLndhcm4oIlBhY2thZ2UgY2hlY2sgdGltZWQgb3V0IiksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciI7cmV0dXJufWlmKFI9PT0wKXRoaXMucGFja2FnZVN0YXR1cz0idXAtdG8tZGF0ZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdO2Vsc2UgdHJ5e2xldCBfPUpTT04ucGFyc2UoRik7dGhpcy5vdXRkYXRlZFBhY2thZ2VzPXRoaXMucGFyc2VPdXRkYXRlZFBhY2thZ2VzKF8pLHRoaXMucGFja2FnZVN0YXR1cz10aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjA/InVwZGF0ZXMtYXZhaWxhYmxlIjoidXAtdG8tZGF0ZSJ9Y2F0Y2h7dGhpcy5wYWNrYWdlU3RhdHVzPSJ1cGRhdGVzLWF2YWlsYWJsZSIsdGhpcy5vdXRkYXRlZFBhY2thZ2VzPVtdfX1jYXRjaCh6KXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBjaGVjayBmb3IgcGFja2FnZSB1cGRhdGVzOiIseiksdGhpcy5wYWNrYWdlU3RhdHVzPSJlcnJvciJ9ZmluYWxseXt0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz0hMX19cGFyc2VPdXRkYXRlZFBhY2thZ2VzKHope2xldCBNPVtdO2lmKHR5cGVvZiB6PT0ib2JqZWN0IiYmeiE9PW51bGwpZm9yKGxldFtGLERdb2YgT2JqZWN0LmVudHJpZXMoeikpe2xldCBOPUQ7TS5wdXNoKHtuYW1lOkYsY3VycmVudDpOLmN1cnJlbnR8fCJ1bmtub3duIix3YW50ZWQ6Ti53YW50ZWR8fE4uY3VycmVudHx8InVua25vd24iLGxhdGVzdDpOLmxhdGVzdHx8Ti53YW50ZWR8fCJ1bmtub3duIix0eXBlOk4uZGVwZW5kZW5jeVR5cGU9PT0iZGV2RGVwZW5kZW5jaWVzIj8iZGV2RGVwZW5kZW5jaWVzIjoiZGVwZW5kZW5jaWVzIn0pfXJldHVybiBNfWFzeW5jIGhhbmRsZVBhY2thZ2VDbGljayh6KXt6LnN0b3BQcm9wYWdhdGlvbigpO2xldCBNPVtdO2lmKE0ucHVzaCh7bmFtZTp0aGlzLmlzQ2hlY2tpbmdQYWNrYWdlcz8iQ2hlY2tpbmcuLi4iOiJDaGVjayBmb3IgdXBkYXRlcyIsaWNvbk5hbWU6Imx1Y2lkZTpyZWZyZXNoQ3ciLGFjdGlvbjphc3luYygpPT57aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuO2xldCBGPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6ImNoZWNrIHBhY2thZ2VzIixjb21tYW5kOiJwbnBtIixhcmdzOlsib3V0ZGF0ZWQiXX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpGfSkpLHNldFRpbWVvdXQoKCk9PnRoaXMuY2hlY2tQYWNrYWdlcygpLDNlMyl9fSksdGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aD4wKXtNLnB1c2goe2RpdmlkZXI6ITB9KTtsZXQgRj10aGlzLm91dGRhdGVkUGFja2FnZXMuc2xpY2UoMCwxMCk7Zm9yKGxldCBEIG9mIEYpTS5wdXNoKHtuYW1lOmAke0QubmFtZX06ICR7RC5jdXJyZW50fSBcdTIxOTIgJHtELmxhdGVzdH1gLGljb25OYW1lOiJsdWNpZGU6cGFja2FnZSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnVwZGF0ZVBhY2thZ2UoRC5uYW1lKX19KTt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoPjEwJiZNLnB1c2goe25hbWU6YC4uLiBhbmQgJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoLTEwfSBtb3JlYCxpY29uTmFtZToibHVjaWRlOm1vcmVIb3Jpem9udGFsIixhY3Rpb246YXN5bmMoKT0+e319KSxNLnB1c2goe2RpdmlkZXI6ITB9KSxNLnB1c2goe25hbWU6IlVwZGF0ZSBhbGwgcGFja2FnZXMiLGljb25OYW1lOiJsdWNpZGU6YXJyb3dVcENpcmNsZSIsYWN0aW9uOmFzeW5jKCk9Pnthd2FpdCB0aGlzLnVwZGF0ZUFsbFBhY2thZ2VzKCl9fSl9YXdhaXQgU3Iub3BlbkNvbnRleHRNZW51V2l0aE9wdGlvbnMoeixNKX1hc3luYyB1cGRhdGVQYWNrYWdlKHope2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybjt0aGlzLnBlbmRpbmdQYWNrYWdlVXBkYXRlPSEwO2xldCBNPXt0eXBlOiJwYWNrYWdlLXVwZGF0ZSIsbGFiZWw6YHVwZGF0ZSAke3p9YCxjb21tYW5kOiJwbnBtIixhcmdzOlsidXBkYXRlIiwiLS1sYXRlc3QiLHpdLG1ldGFkYXRhOntwYWNrYWdlTmFtZTp6fX07dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgicnVuLXByb2Nlc3MiLHtidWJibGVzOiEwLGNvbXBvc2VkOiEwLGRldGFpbDpNfSkpfWFzeW5jIHVwZGF0ZUFsbFBhY2thZ2VzKCl7aWYoIXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpcmV0dXJuO3RoaXMucGVuZGluZ1BhY2thZ2VVcGRhdGU9ITA7bGV0IHo9e3R5cGU6InBhY2thZ2UtdXBkYXRlIixsYWJlbDoidXBkYXRlIGFsbCIsY29tbWFuZDoicG5wbSIsYXJnczpbInVwZGF0ZSIsIi0tbGF0ZXN0Il19O3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoInJ1bi1wcm9jZXNzIix7YnViYmxlczohMCxjb21wb3NlZDohMCxkZXRhaWw6en0pKX1nZXRQYWNrYWdlU3RhdHVzQ2xhc3MoKXtyZXR1cm4gdGhpcy5pc0NoZWNraW5nUGFja2FnZXM/IiI6dGhpcy5wYWNrYWdlU3RhdHVzfWdldFBhY2thZ2VJY29uKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuImx1Y2lkZTpsb2FkZXIyIjtzd2l0Y2godGhpcy5wYWNrYWdlU3RhdHVzKXtjYXNlInVwLXRvLWRhdGUiOnJldHVybiJsdWNpZGU6Y2hlY2tDaXJjbGUiO2Nhc2UidXBkYXRlcy1hdmFpbGFibGUiOnJldHVybiJsdWNpZGU6YWxlcnRDaXJjbGUiO2Nhc2UiZXJyb3IiOnJldHVybiJsdWNpZGU6eENpcmNsZSI7ZGVmYXVsdDpyZXR1cm4ibHVjaWRlOnBhY2thZ2UifX1nZXRQYWNrYWdlU3RhdHVzVGV4dCgpe2lmKHRoaXMuaXNDaGVja2luZ1BhY2thZ2VzKXJldHVybiJDaGVja2luZy4uLiI7c3dpdGNoKHRoaXMucGFja2FnZVN0YXR1cyl7Y2FzZSJ1cC10by1kYXRlIjpyZXR1cm4iVXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gdXBkYXRlJHt0aGlzLm91dGRhdGVkUGFja2FnZXMubGVuZ3RoIT09MT8icyI6IiJ9YDtjYXNlImVycm9yIjpyZXR1cm4iQ2hlY2sgZmFpbGVkIjtkZWZhdWx0OnJldHVybiJQYWNrYWdlcyJ9fWdldFBhY2thZ2VUb29sdGlwKCl7aWYodGhpcy5pc0NoZWNraW5nUGFja2FnZXMpcmV0dXJuIkNoZWNraW5nIGZvciBwYWNrYWdlIHVwZGF0ZXMuLi4iO3N3aXRjaCh0aGlzLnBhY2thZ2VTdGF0dXMpe2Nhc2UidXAtdG8tZGF0ZSI6cmV0dXJuIkFsbCBwYWNrYWdlcyBhcmUgdXAgdG8gZGF0ZSI7Y2FzZSJ1cGRhdGVzLWF2YWlsYWJsZSI6cmV0dXJuYCR7dGhpcy5vdXRkYXRlZFBhY2thZ2VzLmxlbmd0aH0gcGFja2FnZSB1cGRhdGUke3RoaXMub3V0ZGF0ZWRQYWNrYWdlcy5sZW5ndGghPT0xPyJzIjoiIn0gYXZhaWxhYmxlYDtjYXNlImVycm9yIjpyZXR1cm4iRmFpbGVkIHRvIGNoZWNrIGZvciB1cGRhdGVzLiBDbGljayB0byByZXRyeS4iO2RlZmF1bHQ6cmV0dXJuIkNsaWNrIHRvIGNoZWNrIGZvciBwYWNrYWdlIHVwZGF0ZXMifX1hc3luYyByZWZyZXNoUGFja2FnZVN0YXR1cygpe2F3YWl0IHRoaXMuY2hlY2tQYWNrYWdlcygpfWFzeW5jIHJlZnJlc2hTY3JpcHRzKCl7YXdhaXQgdGhpcy5sb2FkU2NyaXB0cygpfXN0YXRpY3tSMihpLHIpfX07cmV0dXJuIE89aX0pKCl9KTt2YXIgWGIsbzVlPXAoKCk9PntYYj1jbGFzc3tsb2FkZWRMaWJzPW5ldyBTZXQ7bm90Rm91bmRQYWNrYWdlcz1uZXcgU2V0O21vbmFjb0luc3RhbmNlPW51bGw7ZXhlY3V0aW9uRW52aXJvbm1lbnQ9bnVsbDtmaWxlQ2FjaGU9bmV3IE1hcDthZGRlZEV4dHJhTGlicz1uZXcgTWFwO2dldCB0c0FwaSgpe3JldHVybiB0aGlzLm1vbmFjb0luc3RhbmNlP3RoaXMubW9uYWNvSW5zdGFuY2UubGFuZ3VhZ2VzLnR5cGVzY3JpcHQ6bnVsbH1hc3luYyBpbml0KHQscil7dGhpcy5tb25hY29JbnN0YW5jZT10LHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQ9cix0aGlzLmNvbmZpZ3VyZUNvbXBpbGVyT3B0aW9ucygpLGF3YWl0IHRoaXMubG9hZEFsbFByb2plY3RGaWxlcygpfWFzeW5jIGxvYWRBbGxQcm9qZWN0RmlsZXMoKXt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50JiZhd2FpdCB0aGlzLmxvYWRGaWxlc0Zyb21EaXJlY3RvcnkoIi8iKX1hc3luYyBsb2FkRmlsZXNGcm9tRGlyZWN0b3J5KHQpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2xldCByPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcih0KTtmb3IobGV0IGkgb2Ygcil7bGV0IGE9dD09PSIvIj9gLyR7aS5uYW1lfWA6YCR7dH0vJHtpLm5hbWV9YDtpZihpLm5hbWUhPT0ibm9kZV9tb2R1bGVzIil7aWYoaS50eXBlPT09ImRpcmVjdG9yeSIpYXdhaXQgdGhpcy5sb2FkRmlsZXNGcm9tRGlyZWN0b3J5KGEpO2Vsc2UgaWYoaS50eXBlPT09ImZpbGUiKXtsZXQgbj1pLm5hbWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtpZihuPT09InRzInx8bj09PSJ0c3gifHxuPT09ImpzInx8bj09PSJqc3giKXRyeXtsZXQgbz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKGEpO3RoaXMuYWRkRmlsZU1vZGVsKGEsbyl9Y2F0Y2h7fX19fX1jYXRjaHt9fWNvbmZpZ3VyZUNvbXBpbGVyT3B0aW9ucygpe2xldCB0PXRoaXMudHNBcGk7dCYmKHQudHlwZXNjcmlwdERlZmF1bHRzLnNldENvbXBpbGVyT3B0aW9ucyh7dGFyZ2V0OnQuU2NyaXB0VGFyZ2V0LkVTMjAyMCxtb2R1bGU6dC5Nb2R1bGVLaW5kLkVTTmV4dCxtb2R1bGVSZXNvbHV0aW9uOnQuTW9kdWxlUmVzb2x1dGlvbktpbmQuQnVuZGxlcj8/dC5Nb2R1bGVSZXNvbHV0aW9uS2luZC5Ob2RlSnMsYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0czohMCxlc01vZHVsZUludGVyb3A6ITAsc3RyaWN0OiEwLG5vRW1pdDohMCxhbGxvd0pzOiEwLGNoZWNrSnM6ITEsYWxsb3dOb25Uc0V4dGVuc2lvbnM6ITAsbGliOlsiZXMyMDIwIiwiZG9tIiwiZG9tLml0ZXJhYmxlIl0sYmFzZVVybDoiLyIsYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnM6ITAscmVzb2x2ZUpzb25Nb2R1bGU6ITB9KSx0LnR5cGVzY3JpcHREZWZhdWx0cy5zZXREaWFnbm9zdGljc09wdGlvbnMoe25vU2VtYW50aWNWYWxpZGF0aW9uOiExLG5vU3ludGF4VmFsaWRhdGlvbjohMX0pLHQudHlwZXNjcmlwdERlZmF1bHRzLnNldEVhZ2VyTW9kZWxTeW5jKCEwKSl9cGFyc2VJbXBvcnRzKHQpe2xldCByPVtdLGk9L2ltcG9ydFxzKyg/Oltcdyp7fVxzLF0rZnJvbVxzKyk/WyciXShbXiciXSspWyciXS9nLGE7Zm9yKDsoYT1pLmV4ZWModCkpIT09bnVsbDspe2xldCBvPWFbMV07aWYoIW8uc3RhcnRzV2l0aCgiLiIpJiYhby5zdGFydHNXaXRoKCIvIikpe2xldCBzPW8uc3RhcnRzV2l0aCgiQCIpP28uc3BsaXQoIi8iKS5zbGljZSgwLDIpLmpvaW4oIi8iKTpvLnNwbGl0KCIvIilbMF07ci5wdXNoKHMpfX1sZXQgbj0vcmVxdWlyZVxzKlwoXHMqWyciXShbXiciXSspWyciXVxzKlwpL2c7Zm9yKDsoYT1uLmV4ZWModCkpIT09bnVsbDspe2xldCBvPWFbMV07aWYoIW8uc3RhcnRzV2l0aCgiLiIpJiYhby5zdGFydHNXaXRoKCIvIikpe2xldCBzPW8uc3RhcnRzV2l0aCgiQCIpP28uc3BsaXQoIi8iKS5zbGljZSgwLDIpLmpvaW4oIi8iKTpvLnNwbGl0KCIvIilbMF07ci5wdXNoKHMpfX1yZXR1cm5bLi4ubmV3IFNldChyKV19YXN5bmMgbG9hZFR5cGVzRm9yUGFja2FnZSh0KXtpZighKCF0aGlzLm1vbmFjb0luc3RhbmNlfHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCkmJiF0aGlzLmxvYWRlZExpYnMuaGFzKHQpJiYhdGhpcy5ub3RGb3VuZFBhY2thZ2VzLmhhcyh0KSl0cnl7bGV0IHI9YXdhaXQgdGhpcy50cnlMb2FkUGFja2FnZVR5cGVzKHQpO3J8fChyPWF3YWl0IHRoaXMudHJ5TG9hZEF0VHlwZXNQYWNrYWdlKHQpKSxyP3RoaXMubG9hZGVkTGlicy5hZGQodCk6dGhpcy5ub3RGb3VuZFBhY2thZ2VzLmFkZCh0KX1jYXRjaChyKXtjb25zb2xlLndhcm4oYEZhaWxlZCB0byBsb2FkIHR5cGVzIGZvciAke3R9OmAscil9fWFzeW5jIHRyeUxvYWRQYWNrYWdlVHlwZXModCl7bGV0IHI9dGhpcy50c0FwaTtpZighdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXIpcmV0dXJuITE7bGV0IGk9YC9ub2RlX21vZHVsZXMvJHt0fWA7dHJ5e2xldCBhPWAke2l9L3BhY2thZ2UuanNvbmA7aWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoYSkpe2xldCBzPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoYSksbD1KU09OLnBhcnNlKHMpO2lmKHIudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHMsYGZpbGU6Ly8ke2F9YCksbC50eXBlc3x8bC50eXBpbmdzKXJldHVybiBhd2FpdCB0aGlzLmxvYWRBbGxEdHNGaWxlc0Zyb21QYWNrYWdlKGkpLCEwfWxldCBvPVtgJHtpfS9pbmRleC5kLnRzYCxgJHtpfS9kaXN0L2luZGV4LmQudHNgLGAke2l9L2xpYi9pbmRleC5kLnRzYF07Zm9yKGxldCBzIG9mIG8paWYoYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMocykpcmV0dXJuIGF3YWl0IHRoaXMubG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UoaSksITA7cmV0dXJuITF9Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIHBhY2thZ2UgdHlwZXMgZm9yICR7dH06YCxhKSwhMX19YXN5bmMgbG9hZEFsbER0c0ZpbGVzRnJvbVBhY2thZ2UodCl7bGV0IHI9dGhpcy50c0FwaTshdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXJ8fGF3YWl0IHRoaXMubG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeSh0KX1hc3luYyBsb2FkRHRzRmlsZXNGcm9tRGlyZWN0b3J5KHQpe2xldCByPXRoaXMudHNBcGk7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8IXIpKXRyeXtsZXQgaT1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWREaXIodCk7Zm9yKGxldCBhIG9mIGkpe2xldCBuPXQ9PT0iLyI/YC8ke2EubmFtZX1gOmAke3R9LyR7YS5uYW1lfWA7aWYoYS5uYW1lIT09Im5vZGVfbW9kdWxlcyIpe2lmKGEudHlwZT09PSJkaXJlY3RvcnkiKWF3YWl0IHRoaXMubG9hZER0c0ZpbGVzRnJvbURpcmVjdG9yeShuKTtlbHNlIGlmKGEudHlwZT09PSJmaWxlIiYmYS5uYW1lLmVuZHNXaXRoKCIuZC50cyIpKXRyeXtsZXQgbz1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWRGaWxlKG4pO3IudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKG8sYGZpbGU6Ly8ke259YCl9Y2F0Y2h7fX19fWNhdGNoe319YXN5bmMgdHJ5TG9hZEF0VHlwZXNQYWNrYWdlKHQpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KXJldHVybiExO2xldCBpPWAvbm9kZV9tb2R1bGVzLyR7dC5zdGFydHNXaXRoKCJAIik/YEB0eXBlcy8ke3Quc2xpY2UoMSkucmVwbGFjZSgiLyIsIl9fIil9YDpgQHR5cGVzLyR7dH1gfWA7dHJ5e2xldCBhPWAke2l9L2luZGV4LmQudHNgO3JldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmV4aXN0cyhhKT8oYXdhaXQgdGhpcy5sb2FkQWxsRHRzRmlsZXNGcm9tUGFja2FnZShpKSwhMCk6ITF9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIHByb2Nlc3NDb250ZW50Q2hhbmdlKHQpe2xldCByPXRoaXMucGFyc2VJbXBvcnRzKHQpO2ZvcihsZXQgaSBvZiByKXRoaXMubG9hZGVkTGlicy5oYXMoaSl8fGF3YWl0IHRoaXMubG9hZFR5cGVzRm9yUGFja2FnZShpKX1hc3luYyBzY2FuQW5kTG9hZE5ld1BhY2thZ2VUeXBlcygpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe3RoaXMubm90Rm91bmRQYWNrYWdlcy5jbGVhcigpO3RyeXtpZighYXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5leGlzdHMoIi9ub2RlX21vZHVsZXMiKSlyZXR1cm47bGV0IHQ9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRGlyKCIvbm9kZV9tb2R1bGVzIik7Zm9yKGxldCByIG9mIHQpaWYoci50eXBlPT09ImRpcmVjdG9yeSIpaWYoci5uYW1lLnN0YXJ0c1dpdGgoIkAiKSl0cnl7bGV0IGk9YC9ub2RlX21vZHVsZXMvJHtyLm5hbWV9YCxhPWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZERpcihpKTtmb3IobGV0IG4gb2YgYSlpZihuLnR5cGU9PT0iZGlyZWN0b3J5Iil7bGV0IG89YCR7ci5uYW1lfS8ke24ubmFtZX1gO2F3YWl0IHRoaXMubG9hZFR5cGVzRm9yUGFja2FnZShvKX19Y2F0Y2h7fWVsc2Ugci5uYW1lLnN0YXJ0c1dpdGgoIi4iKXx8YXdhaXQgdGhpcy5sb2FkVHlwZXNGb3JQYWNrYWdlKHIubmFtZSl9Y2F0Y2godCl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gc2NhbiBub2RlX21vZHVsZXM6Iix0KX19fWFkZEZpbGVNb2RlbCh0LHIpe2lmKCF0aGlzLm1vbmFjb0luc3RhbmNlKXJldHVybjt0aGlzLmZpbGVDYWNoZS5zZXQodCxyKTtsZXQgaT10aGlzLm1vbmFjb0luc3RhbmNlLlVyaS5wYXJzZShgZmlsZTovLyR7dH1gKSxhPXRoaXMubW9uYWNvSW5zdGFuY2UuZWRpdG9yLmdldE1vZGVsKGkpO2lmKGEpYS5nZXRWYWx1ZSgpIT09ciYmYS5zZXRWYWx1ZShyKTtlbHNle2xldCBuPXRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aCh0KTt0aGlzLm1vbmFjb0luc3RhbmNlLmVkaXRvci5jcmVhdGVNb2RlbChyLG4saSl9dGhpcy5hZGRGaWxlQXNFeHRyYUxpYih0LHIpfWFkZEZpbGVBc0V4dHJhTGliKHQscil7bGV0IGk9dGhpcy50c0FwaTtpZighaSlyZXR1cm47bGV0IGE9dGhpcy5hZGRlZEV4dHJhTGlicy5nZXQodCk7YSYmYS5kaXNwb3NlKCk7bGV0IG49YGZpbGU6Ly8ke3R9YCxvPWkudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHIsbik7aWYodGhpcy5hZGRlZEV4dHJhTGlicy5zZXQodCxvKSx0LmVuZHNXaXRoKCIudHMiKSYmIXQuZW5kc1dpdGgoIi5kLnRzIikpe2xldCBzPXQucmVwbGFjZSgvXC50cyQvLCIuanMiKSxsPWBmaWxlOi8vJHtzfWAsYz1pLnR5cGVzY3JpcHREZWZhdWx0cy5hZGRFeHRyYUxpYihyLGwpO3RoaXMuYWRkZWRFeHRyYUxpYnMuc2V0KHMsYyksdGhpcy5maWxlQ2FjaGUuc2V0KHMscil9ZWxzZSBpZih0LmVuZHNXaXRoKCIudHN4Iikpe2xldCBzPXQucmVwbGFjZSgvXC50c3gkLywiLmpzeCIpLGw9YGZpbGU6Ly8ke3N9YCxjPWkudHlwZXNjcmlwdERlZmF1bHRzLmFkZEV4dHJhTGliKHIsbCk7dGhpcy5hZGRlZEV4dHJhTGlicy5zZXQocyxjKSx0aGlzLmZpbGVDYWNoZS5zZXQocyxyKX19Z2V0RmlsZUNvbnRlbnQodCl7cmV0dXJuIHRoaXMuZmlsZUNhY2hlLmdldCh0KX1nZXRMYW5ndWFnZUZyb21QYXRoKHQpe3N3aXRjaCh0LnNwbGl0KCIuIikucG9wKCk/LnRvTG93ZXJDYXNlKCkpe2Nhc2UidHMiOmNhc2UidHN4IjpyZXR1cm4idHlwZXNjcmlwdCI7Y2FzZSJqcyI6Y2FzZSJqc3giOnJldHVybiJqYXZhc2NyaXB0IjtjYXNlImpzb24iOnJldHVybiJqc29uIjtkZWZhdWx0OnJldHVybiJwbGFpbnRleHQifX19fSk7dmFyIGE1LGlvLEdkcixzNWU9cCgoKT0+e3hlKCk7S3QoKTtkNmUoKTtKZSgpO0k0KCk7YTU9ZnVuY3Rpb24oZSx0LHIsaSxhLG4pe2Z1bmN0aW9uIG8oeSl7aWYoeSE9PXZvaWQgMCYmdHlwZW9mIHkhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTtyZXR1cm4geX1mb3IodmFyIHM9aS5raW5kLGw9cz09PSJnZXR0ZXIiPyJnZXQiOnM9PT0ic2V0dGVyIj8ic2V0IjoidmFsdWUiLGM9IXQmJmU/aS5zdGF0aWM/ZTplLnByb3RvdHlwZTpudWxsLHU9dHx8KGM/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjLGkubmFtZSk6e30pLGQsaD0hMSxmPXIubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciB4PXt9O2Zvcih2YXIgdiBpbiBpKXhbdl09dj09PSJhY2Nlc3MiP3t9Omlbdl07Zm9yKHZhciB2IGluIGkuYWNjZXNzKXguYWNjZXNzW3ZdPWkuYWNjZXNzW3ZdO3guYWRkSW5pdGlhbGl6ZXI9ZnVuY3Rpb24oeSl7aWYoaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTtuLnB1c2gobyh5fHxudWxsKSl9O3ZhciBiPSgwLHJbZl0pKHM9PT0iYWNjZXNzb3IiP3tnZXQ6dS5nZXQsc2V0OnUuc2V0fTp1W2xdLHgpO2lmKHM9PT0iYWNjZXNzb3IiKXtpZihiPT09dm9pZCAwKWNvbnRpbnVlO2lmKGI9PT1udWxsfHx0eXBlb2YgYiE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0IGV4cGVjdGVkIik7KGQ9byhiLmdldCkpJiYodS5nZXQ9ZCksKGQ9byhiLnNldCkpJiYodS5zZXQ9ZCksKGQ9byhiLmluaXQpKSYmYS51bnNoaWZ0KGQpfWVsc2UoZD1vKGIpKSYmKHM9PT0iZmllbGQiP2EudW5zaGlmdChkKTp1W2xdPWQpfWMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGkubmFtZSx1KSxoPSEwfSxpbz1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sR2RyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IiKV0sdCxyPVtdLGksYT16ZSxuLG89W10scz1bXSxsLGM9W10sdT1bXSxkLGg9W10sZj1bXSx4LHY9W10sYj1bXSx5LHc9W10saz1bXSxPLHo9W10sTT1bXTt2YXIgRj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IEQ9dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7bj1baih7dHlwZTpTdHJpbmd9KV0sbD1baih7dHlwZTpTdHJpbmd9KV0sZD1baih7dHlwZTpTdHJpbmd9KV0seD1baih7dHlwZTpTdHJpbmd9KV0seT1baih7dHlwZTpTdHJpbmd9KV0sTz1baih7dHlwZTpTdHJpbmd9KV0sYTUodGhpcyxudWxsLG4se2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJvcmlnaW5hbENvbnRlbnQiaW4gTixnZXQ6Tj0+Ti5vcmlnaW5hbENvbnRlbnQsc2V0OihOLFIpPT57Ti5vcmlnaW5hbENvbnRlbnQ9Un19LG1ldGFkYXRhOkR9LG8scyksYTUodGhpcyxudWxsLGwse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJtb2RpZmllZENvbnRlbnQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJtb2RpZmllZENvbnRlbnQiaW4gTixnZXQ6Tj0+Ti5tb2RpZmllZENvbnRlbnQsc2V0OihOLFIpPT57Ti5tb2RpZmllZENvbnRlbnQ9Un19LG1ldGFkYXRhOkR9LGMsdSksYTUodGhpcyxudWxsLGQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJvcmlnaW5hbExhYmVsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4ib3JpZ2luYWxMYWJlbCJpbiBOLGdldDpOPT5OLm9yaWdpbmFsTGFiZWwsc2V0OihOLFIpPT57Ti5vcmlnaW5hbExhYmVsPVJ9fSxtZXRhZGF0YTpEfSxoLGYpLGE1KHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToibW9kaWZpZWRMYWJlbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6Tj0+Im1vZGlmaWVkTGFiZWwiaW4gTixnZXQ6Tj0+Ti5tb2RpZmllZExhYmVsLHNldDooTixSKT0+e04ubW9kaWZpZWRMYWJlbD1SfX0sbWV0YWRhdGE6RH0sdixiKSxhNSh0aGlzLG51bGwseSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Imxhbmd1YWdlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpOPT4ibGFuZ3VhZ2UiaW4gTixnZXQ6Tj0+Ti5sYW5ndWFnZSxzZXQ6KE4sUik9PntOLmxhbmd1YWdlPVJ9fSxtZXRhZGF0YTpEfSx3LGspLGE1KHRoaXMsbnVsbCxPLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOk49PiJmaWxlUGF0aCJpbiBOLGdldDpOPT5OLmZpbGVQYXRoLHNldDooTixSKT0+e04uZmlsZVBhdGg9Un19LG1ldGFkYXRhOkR9LHosTSksYTUobnVsbCx0PXt2YWx1ZTppfSxlLHtraW5kOiJjbGFzcyIsbmFtZTppLm5hbWUsbWV0YWRhdGE6RH0sbnVsbCxyKSxGPWk9dC52YWx1ZSxEJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxTeW1ib2wubWV0YWRhdGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkR9KX1zdGF0aWMgZGVtbz0oKT0+Q2AKICAgIDxkZWVzLXdvcmtzcGFjZS1kaWZmLWVkaXRvcgogICAgICAub3JpZ2luYWxDb250ZW50PSR7YGZ1bmN0aW9uIGhlbGxvKCkgewogIGNvbnNvbGUubG9nKCJIZWxsbyIpOwp9YH0KICAgICAgLm1vZGlmaWVkQ29udGVudD0ke2BmdW5jdGlvbiBoZWxsbygpIHsKICBjb25zb2xlLmxvZygiSGVsbG8gV29ybGQhIik7CiAgcmV0dXJuIHRydWU7Cn1gfQogICAgICAubGFuZ3VhZ2U9JHsidHlwZXNjcmlwdCJ9CiAgICAgIC5maWxlUGF0aD0keyIvZGVtby9leGFtcGxlLnRzIn0KICAgID48L2RlZXMtd29ya3NwYWNlLWRpZmYtZWRpdG9yPgogIGA7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtkaWZmRWRpdG9yRGVmZXJyZWQ9anQuc21hcnRwcm9taXNlLmRlZmVyKCk7I2U9aW8odGhpcyxvLCIiKTtnZXQgb3JpZ2luYWxDb250ZW50KCl7cmV0dXJuIHRoaXMuI2V9c2V0IG9yaWdpbmFsQ29udGVudChEKXt0aGlzLiNlPUR9I3Q9KGlvKHRoaXMscyksaW8odGhpcyxjLCIiKSk7Z2V0IG1vZGlmaWVkQ29udGVudCgpe3JldHVybiB0aGlzLiN0fXNldCBtb2RpZmllZENvbnRlbnQoRCl7dGhpcy4jdD1EfSNyPShpbyh0aGlzLHUpLGlvKHRoaXMsaCwiRGlzayBWZXJzaW9uIikpO2dldCBvcmlnaW5hbExhYmVsKCl7cmV0dXJuIHRoaXMuI3J9c2V0IG9yaWdpbmFsTGFiZWwoRCl7dGhpcy4jcj1EfSNpPShpbyh0aGlzLGYpLGlvKHRoaXMsdiwiTG9jYWwgVmVyc2lvbiIpKTtnZXQgbW9kaWZpZWRMYWJlbCgpe3JldHVybiB0aGlzLiNpfXNldCBtb2RpZmllZExhYmVsKEQpe3RoaXMuI2k9RH0jYT0oaW8odGhpcyxiKSxpbyh0aGlzLHcsInR5cGVzY3JpcHQiKSk7Z2V0IGxhbmd1YWdlKCl7cmV0dXJuIHRoaXMuI2F9c2V0IGxhbmd1YWdlKEQpe3RoaXMuI2E9RH0jbj0oaW8odGhpcyxrKSxpbyh0aGlzLHosIiIpKTtnZXQgZmlsZVBhdGgoKXtyZXR1cm4gdGhpcy4jbn1zZXQgZmlsZVBhdGgoRCl7dGhpcy4jbj1EfWRpZmZFZGl0b3I9KGlvKHRoaXMsTSksbnVsbCk7bW9uYWNvVGhlbWVTdWJzY3JpcHRpb249bnVsbDtvcmlnaW5hbE1vZGVsPW51bGw7bW9kaWZpZWRNb2RlbD1udWxsO2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxEYS5zZXR1cERvbVRvb2xzKCl9c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgKiB7CiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgfQoKICAgICAgLmRpZmYtd3JhcHBlciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmRpZmYtdG9vbGJhciB7CiAgICAgICAgaGVpZ2h0OiA0OHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg1JSkiLCJoc2woMCAwJSAyMCUpIil9OwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICB9CgogICAgICAuZGlmZi1pbmZvIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1maWxlbmFtZSB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1sYWJlbHMgewogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICB9CgogICAgICAuZGlmZi1hY3Rpb25zIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5kaWZmLWNvbnRhaW5lciB7CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4taGVpZ2h0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAubmF2LWJ1dHRvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiA0cHg7CiAgICAgIH0KCiAgICAgIC5hY3Rpb24tYnV0dG9ucyB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBnYXA6IDhweDsKICAgICAgICBtYXJnaW4tbGVmdDogMTZweDsKICAgICAgfQogICAgYF07cmVuZGVyKCl7bGV0IEQ9dGhpcy5maWxlUGF0aC5zcGxpdCgiLyIpLnBvcCgpfHwiZmlsZSI7cmV0dXJuIENgCiAgICAgIDxkaXYgY2xhc3M9ImRpZmYtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGlmZi10b29sYmFyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImRpZmYtaW5mbyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJkaWZmLWZpbGVuYW1lIj4ke0R9PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlmZi1sYWJlbHMiPiR7dGhpcy5vcmlnaW5hbExhYmVsfSDihpQgJHt0aGlzLm1vZGlmaWVkTGFiZWx9PC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWFjdGlvbnMiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtYnV0dG9ucyI+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5nb1RvUHJldmlvdXNEaWZmfQogICAgICAgICAgICAgID5QcmV2aW91czwvZGVlcy1idXR0b24+CiAgICAgICAgICAgICAgPGRlZXMtYnV0dG9uCiAgICAgICAgICAgICAgICB0eXBlPSJvdXRsaW5lIgogICAgICAgICAgICAgICAgQGNsaWNrPSR7dGhpcy5nb1RvTmV4dERpZmZ9CiAgICAgICAgICAgICAgPk5leHQ8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWN0aW9uLWJ1dHRvbnMiPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0iaGlnaGxpZ2h0ZWQiCiAgICAgICAgICAgICAgICBAY2xpY2s9JHt0aGlzLmFjY2VwdExvY2FsfQogICAgICAgICAgICAgID5Vc2UgTG9jYWw8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuYWNjZXB0RGlza30KICAgICAgICAgICAgICA+VXNlIERpc2s8L2RlZXMtYnV0dG9uPgogICAgICAgICAgICAgIDxkZWVzLWJ1dHRvbgogICAgICAgICAgICAgICAgdHlwZT0ib3V0bGluZSIKICAgICAgICAgICAgICAgIEBjbGljaz0ke3RoaXMuY2xvc2V9CiAgICAgICAgICAgICAgPkNsb3NlPC9kZWVzLWJ1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaWZmLWNvbnRhaW5lciI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobmV3IE1hcCksYXdhaXQgdGhpcy5pbml0RGlmZkVkaXRvcigpfWFzeW5jIGluaXREaWZmRWRpdG9yKCl7bGV0IEQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCIuZGlmZi1jb250YWluZXIiKTtpZighRClyZXR1cm47bGV0IE49YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAke19OfWAsUj13aW5kb3cubW9uYWNvO1J8fChhd2FpdCBuZXcgUHJvbWlzZShHPT57bGV0IGVlPXNldEludGVydmFsKCgpPT57d2luZG93Lm1vbmFjbyYmKGNsZWFySW50ZXJ2YWwoZWUpLEcoKSl9LDEwMCl9KSxSPXdpbmRvdy5tb25hY28pO2xldCBfPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLCQ9Xy50aGVtZU1hbmFnZXIuZ29CcmlnaHRCb29sZWFuPyJ2cyI6InZzLWRhcmsiLFQ9RGF0ZS5ub3coKSxFPVIuVXJpLnBhcnNlKGBkaWZmOi8vb3JpZ2luYWwvJHtUfSR7dGhpcy5maWxlUGF0aH1gKSxxPVIuVXJpLnBhcnNlKGBkaWZmOi8vbW9kaWZpZWQvJHtUfSR7dGhpcy5maWxlUGF0aH1gKTt0aGlzLm9yaWdpbmFsTW9kZWw9Ui5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5vcmlnaW5hbENvbnRlbnQsdGhpcy5sYW5ndWFnZSxFKSx0aGlzLm1vZGlmaWVkTW9kZWw9Ui5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5tb2RpZmllZENvbnRlbnQsdGhpcy5sYW5ndWFnZSxxKSx0aGlzLmRpZmZFZGl0b3I9Ui5lZGl0b3IuY3JlYXRlRGlmZkVkaXRvcihELHthdXRvbWF0aWNMYXlvdXQ6ITAscmVhZE9ubHk6ITEsb3JpZ2luYWxFZGl0YWJsZTohMSxyZW5kZXJTaWRlQnlTaWRlOiEwLGlnbm9yZVRyaW1XaGl0ZXNwYWNlOiExLGZvbnRTaXplOjE0LG1pbmltYXA6e2VuYWJsZWQ6ITF9fSksUi5lZGl0b3Iuc2V0VGhlbWUoJCksdGhpcy5kaWZmRWRpdG9yLnNldE1vZGVsKHtvcmlnaW5hbDp0aGlzLm9yaWdpbmFsTW9kZWwsbW9kaWZpZWQ6dGhpcy5tb2RpZmllZE1vZGVsfSksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbj1fLnRoZW1lTWFuYWdlci50aGVtZU9ic2VydmFibGUuc3Vic2NyaWJlKEc9PntsZXQgZWU9Rz8idnMiOiJ2cy1kYXJrIjtSLmVkaXRvci5zZXRUaGVtZShlZSl9KTtsZXQgQj0ibW9uYWNvLWRpZmYtZWRpdG9yLWNzcyI7aWYoIXRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoQikpe2xldCBlZT1hd2FpdChhd2FpdCBmZXRjaChgJHtOfS9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzc2ApKS50ZXh0KCksUD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO1AuaWQ9QixQLnRleHRDb250ZW50PWVlLHRoaXMuc2hhZG93Um9vdD8uYXBwZW5kKFApfXNldFRpbWVvdXQoKCk9Pnt0cnl7dGhpcy5kaWZmRWRpdG9yPy5yZXZlYWxGaXJzdERpZmYoKX1jYXRjaHt9fSwxMDApLHRoaXMuZGlmZkVkaXRvckRlZmVycmVkLnJlc29sdmUodGhpcy5kaWZmRWRpdG9yKX1nb1RvTmV4dERpZmYoKXt0cnl7dGhpcy5kaWZmRWRpdG9yPy5nb1RvRGlmZigibmV4dCIpfWNhdGNoe319Z29Ub1ByZXZpb3VzRGlmZigpe3RyeXt0aGlzLmRpZmZFZGl0b3I/LmdvVG9EaWZmKCJwcmV2aW91cyIpfWNhdGNoe319YWNjZXB0TG9jYWwoKXtsZXQgRD10aGlzLmRpZmZFZGl0b3I/LmdldE1vZGlmaWVkRWRpdG9yKCkuZ2V0VmFsdWUoKXx8dGhpcy5tb2RpZmllZENvbnRlbnQ7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1yZXNvbHZlZCIse2RldGFpbDp7YWN0aW9uOiJ1c2UtbG9jYWwiLGNvbnRlbnQ6RH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hY2NlcHREaXNrKCl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiZGlmZi1yZXNvbHZlZCIse2RldGFpbDp7YWN0aW9uOiJ1c2UtZGlzayIsY29udGVudDp0aGlzLm9yaWdpbmFsQ29udGVudH0sYnViYmxlczohMCxjb21wb3NlZDohMH0pKX1jbG9zZSgpe3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImRpZmYtY2xvc2VkIix7YnViYmxlczohMCxjb21wb3NlZDohMH0pKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5tb25hY29UaGVtZVN1YnNjcmlwdGlvbiYmKHRoaXMubW9uYWNvVGhlbWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLm1vbmFjb1RoZW1lU3Vic2NyaXB0aW9uPW51bGwpLHRoaXMub3JpZ2luYWxNb2RlbCYmKHRoaXMub3JpZ2luYWxNb2RlbC5kaXNwb3NlKCksdGhpcy5vcmlnaW5hbE1vZGVsPW51bGwpLHRoaXMubW9kaWZpZWRNb2RlbCYmKHRoaXMubW9kaWZpZWRNb2RlbC5kaXNwb3NlKCksdGhpcy5tb2RpZmllZE1vZGVsPW51bGwpLHRoaXMuZGlmZkVkaXRvciYmKHRoaXMuZGlmZkVkaXRvci5kaXNwb3NlKCksdGhpcy5kaWZmRWRpdG9yPW51bGwpfXN0YXRpY3tpbyhpLHIpfX07cmV0dXJuIEY9aX0pKCl9KTt2YXIgUzEsQXQsWWRyLFpkcj1wKCgpPT57eGUoKTtLdCgpO0plKCk7eUYoKTtOZCgpO01GKCk7TUYoKTtXYigpO1diKCk7YTVlKCk7bjVlKCk7b3IoKTtOZCgpO281ZSgpO01pKCk7cDEoKTtRTigpO3M1ZSgpO1MxPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sQXQ9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LFlkcj0oKCk9PntsZXQgZT1beWUoImRlZXMtd29ya3NwYWNlIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W10seSx3PVtdLGs9W10sTyx6PVtdLE09W10sRixEPVtdLE49W10sUixfPVtdLFM9W10sJCxUPVtdLEU9W10scSxCPVtdLEc9W10sZWUsUD1bXSxnZT1bXSx3ZSxJPVtdLG5lPVtdLGtlLFk9W10sQT1bXSxMLFU9W10sVj1bXSxYLGRlPVtdLHZlPVtdLExlLFc9W10sSD1bXSx0ZSxiZT1bXSx1ZT1bXSxDZSxoZT1bXSxpZT1bXSxTZSxJZT1bXSxaZT1bXSxLLFo9W10sSj1bXSxtZSxFZT1bXSxVZT1bXSxNdCxpdD1bXSxMdD1bXTt2YXIgV3Q9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCBhZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZTeW1ib2wubWV0YWRhdGE/T2JqZWN0LmNyZWF0ZShhW1N5bWJvbC5tZXRhZGF0YV0/P251bGwpOnZvaWQgMDtuPVtqKHt0eXBlOk9iamVjdH0pXSxsPVtqKHthdHRyaWJ1dGU6ITF9KV0sZD1baih7dHlwZTpCb29sZWFufSldLHg9W2ooe3R5cGU6Qm9vbGVhbn0pXSx5PVtqKHt0eXBlOk51bWJlcn0pXSxPPVtqKHt0eXBlOk51bWJlcn0pXSxGPVtmZSgpXSxSPVtmZSgpXSwkPVtmZSgpXSxxPVtmZSgpXSxlZT1bZmUoKV0sd2U9W2ZlKCldLGtlPVtmZSgpXSxMPVtmZSgpXSxYPVtmZSgpXSxMZT1bZmUoKV0sdGU9W2ZlKCldLENlPVtmZSgpXSxTZT1bZmUoKV0sSz1bZmUoKV0sbWU9W2ZlKCldLE10PVtmZSgpXSxTMSh0aGlzLG51bGwsbix7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImV4ZWN1dGlvbkVudmlyb25tZW50IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImV4ZWN1dGlvbkVudmlyb25tZW50ImluIHNlLGdldDpzZT0+c2UuZXhlY3V0aW9uRW52aXJvbm1lbnQsc2V0OihzZSxfZSk9PntzZS5leGVjdXRpb25FbnZpcm9ubWVudD1fZX19LG1ldGFkYXRhOmFlfSxvLHMpLFMxKHRoaXMsbnVsbCxsLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaW5pdGlhbGl6YXRpb25Qcm9taXNlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImluaXRpYWxpemF0aW9uUHJvbWlzZSJpbiBzZSxnZXQ6c2U9PnNlLmluaXRpYWxpemF0aW9uUHJvbWlzZSxzZXQ6KHNlLF9lKT0+e3NlLmluaXRpYWxpemF0aW9uUHJvbWlzZT1fZX19LG1ldGFkYXRhOmFlfSxjLHUpLFMxKHRoaXMsbnVsbCxkLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd0ZpbGVUcmVlIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+InNob3dGaWxlVHJlZSJpbiBzZSxnZXQ6c2U9PnNlLnNob3dGaWxlVHJlZSxzZXQ6KHNlLF9lKT0+e3NlLnNob3dGaWxlVHJlZT1fZX19LG1ldGFkYXRhOmFlfSxoLGYpLFMxKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToic2hvd1Rlcm1pbmFsIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+InNob3dUZXJtaW5hbCJpbiBzZSxnZXQ6c2U9PnNlLnNob3dUZXJtaW5hbCxzZXQ6KHNlLF9lKT0+e3NlLnNob3dUZXJtaW5hbD1fZX19LG1ldGFkYXRhOmFlfSx2LGIpLFMxKHRoaXMsbnVsbCx5LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiZmlsZVRyZWVXaWR0aCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJmaWxlVHJlZVdpZHRoImluIHNlLGdldDpzZT0+c2UuZmlsZVRyZWVXaWR0aCxzZXQ6KHNlLF9lKT0+e3NlLmZpbGVUcmVlV2lkdGg9X2V9fSxtZXRhZGF0YTphZX0sdyxrKSxTMSh0aGlzLG51bGwsTyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6InRlcm1pbmFsSGVpZ2h0IixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+InRlcm1pbmFsSGVpZ2h0ImluIHNlLGdldDpzZT0+c2UudGVybWluYWxIZWlnaHQsc2V0OihzZSxfZSk9PntzZS50ZXJtaW5hbEhlaWdodD1fZX19LG1ldGFkYXRhOmFlfSx6LE0pLFMxKHRoaXMsbnVsbCxGLHtraW5kOiJhY2Nlc3NvciIsbmFtZToib3BlbkZpbGVzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+Im9wZW5GaWxlcyJpbiBzZSxnZXQ6c2U9PnNlLm9wZW5GaWxlcyxzZXQ6KHNlLF9lKT0+e3NlLm9wZW5GaWxlcz1fZX19LG1ldGFkYXRhOmFlfSxELE4pLFMxKHRoaXMsbnVsbCxSLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlRmlsZVBhdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iYWN0aXZlRmlsZVBhdGgiaW4gc2UsZ2V0OnNlPT5zZS5hY3RpdmVGaWxlUGF0aCxzZXQ6KHNlLF9lKT0+e3NlLmFjdGl2ZUZpbGVQYXRoPV9lfX0sbWV0YWRhdGE6YWV9LF8sUyksUzEodGhpcyxudWxsLCQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc1Rlcm1pbmFsQ29sbGFwc2VkIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImlzVGVybWluYWxDb2xsYXBzZWQiaW4gc2UsZ2V0OnNlPT5zZS5pc1Rlcm1pbmFsQ29sbGFwc2VkLHNldDooc2UsX2UpPT57c2UuaXNUZXJtaW5hbENvbGxhcHNlZD1fZX19LG1ldGFkYXRhOmFlfSxULEUpLFMxKHRoaXMsbnVsbCxxLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNGaWxlVHJlZUNvbGxhcHNlZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpc0ZpbGVUcmVlQ29sbGFwc2VkImluIHNlLGdldDpzZT0+c2UuaXNGaWxlVHJlZUNvbGxhcHNlZCxzZXQ6KHNlLF9lKT0+e3NlLmlzRmlsZVRyZWVDb2xsYXBzZWQ9X2V9fSxtZXRhZGF0YTphZX0sQixHKSxTMSh0aGlzLG51bGwsZWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0luaXRpYWxpemluZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpc0luaXRpYWxpemluZyJpbiBzZSxnZXQ6c2U9PnNlLmlzSW5pdGlhbGl6aW5nLHNldDooc2UsX2UpPT57c2UuaXNJbml0aWFsaXppbmc9X2V9fSxtZXRhZGF0YTphZX0sUCxnZSksUzEodGhpcyxudWxsLHdlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYWN0aXZlQm90dG9tUGFuZWwiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iYWN0aXZlQm90dG9tUGFuZWwiaW4gc2UsZ2V0OnNlPT5zZS5hY3RpdmVCb3R0b21QYW5lbCxzZXQ6KHNlLF9lKT0+e3NlLmFjdGl2ZUJvdHRvbVBhbmVsPV9lfX0sbWV0YWRhdGE6YWV9LEksbmUpLFMxKHRoaXMsbnVsbCxrZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImRpYWdub3N0aWNNYXJrZXJzIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczpzZT0+ImRpYWdub3N0aWNNYXJrZXJzImluIHNlLGdldDpzZT0+c2UuZGlhZ25vc3RpY01hcmtlcnMsc2V0OihzZSxfZSk9PntzZS5kaWFnbm9zdGljTWFya2Vycz1fZX19LG1ldGFkYXRhOmFlfSxZLEEpLFMxKHRoaXMsbnVsbCxMLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiYXV0b1NhdmUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iYXV0b1NhdmUiaW4gc2UsZ2V0OnNlPT5zZS5hdXRvU2F2ZSxzZXQ6KHNlLF9lKT0+e3NlLmF1dG9TYXZlPV9lfX0sbWV0YWRhdGE6YWV9LFUsViksUzEodGhpcyxudWxsLFgse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpbml0Q29tbWFuZCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpbml0Q29tbWFuZCJpbiBzZSxnZXQ6c2U9PnNlLmluaXRDb21tYW5kLHNldDooc2UsX2UpPT57c2UuaW5pdENvbW1hbmQ9X2V9fSxtZXRhZGF0YTphZX0sZGUsdmUpLFMxKHRoaXMsbnVsbCxMZSx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImluaXRPdXRwdXQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iaW5pdE91dHB1dCJpbiBzZSxnZXQ6c2U9PnNlLmluaXRPdXRwdXQsc2V0OihzZSxfZSk9PntzZS5pbml0T3V0cHV0PV9lfX0sbWV0YWRhdGE6YWV9LFcsSCksUzEodGhpcyxudWxsLHRlLHtraW5kOiJhY2Nlc3NvciIsbmFtZToiY3VycmVudEZpbGVUcmVlV2lkdGgiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iY3VycmVudEZpbGVUcmVlV2lkdGgiaW4gc2UsZ2V0OnNlPT5zZS5jdXJyZW50RmlsZVRyZWVXaWR0aCxzZXQ6KHNlLF9lKT0+e3NlLmN1cnJlbnRGaWxlVHJlZVdpZHRoPV9lfX0sbWV0YWRhdGE6YWV9LGJlLHVlKSxTMSh0aGlzLG51bGwsQ2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJjdXJyZW50VGVybWluYWxIZWlnaHQiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iY3VycmVudFRlcm1pbmFsSGVpZ2h0ImluIHNlLGdldDpzZT0+c2UuY3VycmVudFRlcm1pbmFsSGVpZ2h0LHNldDooc2UsX2UpPT57c2UuY3VycmVudFRlcm1pbmFsSGVpZ2h0PV9lfX0sbWV0YWRhdGE6YWV9LGhlLGllKSxTMSh0aGlzLG51bGwsU2Use2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJpc0RyYWdnaW5nRmlsZVRyZWUiLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4iaXNEcmFnZ2luZ0ZpbGVUcmVlImluIHNlLGdldDpzZT0+c2UuaXNEcmFnZ2luZ0ZpbGVUcmVlLHNldDooc2UsX2UpPT57c2UuaXNEcmFnZ2luZ0ZpbGVUcmVlPV9lfX0sbWV0YWRhdGE6YWV9LEllLFplKSxTMSh0aGlzLG51bGwsSyx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImlzRHJhZ2dpbmdUZXJtaW5hbCIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJpc0RyYWdnaW5nVGVybWluYWwiaW4gc2UsZ2V0OnNlPT5zZS5pc0RyYWdnaW5nVGVybWluYWwsc2V0OihzZSxfZSk9PntzZS5pc0RyYWdnaW5nVGVybWluYWw9X2V9fSxtZXRhZGF0YTphZX0sWixKKSxTMSh0aGlzLG51bGwsbWUse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJzaG93RGlmZlZpZXciLHN0YXRpYzohMSxwcml2YXRlOiExLGFjY2Vzczp7aGFzOnNlPT4ic2hvd0RpZmZWaWV3ImluIHNlLGdldDpzZT0+c2Uuc2hvd0RpZmZWaWV3LHNldDooc2UsX2UpPT57c2Uuc2hvd0RpZmZWaWV3PV9lfX0sbWV0YWRhdGE6YWV9LEVlLFVlKSxTMSh0aGlzLG51bGwsTXQse2tpbmQ6ImFjY2Vzc29yIixuYW1lOiJkaWZmVmlld0NvbmZpZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6c2U9PiJkaWZmVmlld0NvbmZpZyJpbiBzZSxnZXQ6c2U9PnNlLmRpZmZWaWV3Q29uZmlnLHNldDooc2UsX2UpPT57c2UuZGlmZlZpZXdDb25maWc9X2V9fSxtZXRhZGF0YTphZX0saXQsTHQpLFMxKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOmFlfSxudWxsLHIpLFd0PWk9dC52YWx1ZSxhZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphZX0pfXN0YXRpYyBkZW1vPSgpPT57bGV0IGFlPW5ldyByNSxzZT0oYXN5bmMoKT0+e2F3YWl0IGFlLmluaXQoKTtsZXQgU3Q9eyJwYWNrYWdlLmpzb24iOntmaWxlOntjb250ZW50czpKU09OLnN0cmluZ2lmeSh7bmFtZToiZGVtby1wcm9qZWN0Iix2ZXJzaW9uOiIxLjAuMCIsdHlwZToibW9kdWxlIixzY3JpcHRzOntidWlsZDoidHNjIixkZXY6InRzYyAtLXdhdGNoIn0sZGVwZW5kZW5jaWVzOnsiQHB1c2gucm9ja3Mvc21hcnRwcm9taXNlIjoiXjQuMi4zIn0sZGV2RGVwZW5kZW5jaWVzOnsiQHR5cGVzL25vZGUiOiJeMjIuMC4wIix0eXBlc2NyaXB0OiJeNS4wLjAifX0sbnVsbCwyKX19LCJucG1leHRyYS5qc29uIjp7ZmlsZTp7Y29udGVudHM6SlNPTi5zdHJpbmdpZnkoe2RlZXNFZGl0b3JXb3Jrc3BhY2U6e29uSW5pdDoicG5wbSBpbnN0YWxsIn19LG51bGwsMil9fSwidHNjb25maWcuanNvbiI6e2ZpbGU6e2NvbnRlbnRzOkpTT04uc3RyaW5naWZ5KHtjb21waWxlck9wdGlvbnM6e3RhcmdldDoiRVMyMDIyIixtb2R1bGU6Ik5vZGVOZXh0Iixtb2R1bGVSZXNvbHV0aW9uOiJOb2RlTmV4dCIsc3RyaWN0OiEwLG91dERpcjoiLi9kaXN0Iixyb290RGlyOiIuL3NyYyIsZGVjbGFyYXRpb246ITB9LGluY2x1ZGU6WyJzcmMvKiovKiJdfSxudWxsLDIpfX0sc3JjOntkaXJlY3Rvcnk6eyJpbmRleC50cyI6e2ZpbGU6e2NvbnRlbnRzOmAvLyBNYWluIGVudHJ5IHBvaW50CmltcG9ydCB7IGdyZWV0LCBmb3JtYXROYW1lIH0gZnJvbSAnLi91dGlscy5qcyc7Cgpjb25zdCBuYW1lID0gZm9ybWF0TmFtZSgnV29ybGQnKTsKY29uc29sZS5sb2coZ3JlZXQobmFtZSkpOwoKLy8gRXhhbXBsZSBhc3luYyBmdW5jdGlvbgphc3luYyBmdW5jdGlvbiBtYWluKCkgewogIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UucmVzb2x2ZSgnSGVsbG8gZnJvbSBhc3luYyEnKTsKICBjb25zb2xlLmxvZyhyZXN1bHQpOwp9CgptYWluKCk7CmB9fSwidXRpbHMudHMiOntmaWxlOntjb250ZW50czpgLy8gVXRpbGl0eSBmdW5jdGlvbnMKCmV4cG9ydCBpbnRlcmZhY2UgSVVzZXIgewogIGZpcnN0TmFtZTogc3RyaW5nOwogIGxhc3ROYW1lOiBzdHJpbmc7Cn0KCmV4cG9ydCBmdW5jdGlvbiBncmVldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgewogIHJldHVybiBcYEhlbGxvLCBcJHtuYW1lfSFcYDsKfQoKZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHsKICByZXR1cm4gbmFtZS50cmltKCkudG9VcHBlckNhc2UoKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVzZXIoZmlyc3ROYW1lOiBzdHJpbmcsIGxhc3ROYW1lOiBzdHJpbmcpOiBJVXNlciB7CiAgcmV0dXJuIHsgZmlyc3ROYW1lLCBsYXN0TmFtZSB9Owp9CmB9fSwiaW1wb3J0dGVzdC50cyI6e2ZpbGU6e2NvbnRlbnRzOmAvLyBUZXN0IG5wbSBwYWNrYWdlIGltcG9ydHMKaW1wb3J0ICogYXMgc21hcnRwcm9taXNlIGZyb20gJ0BwdXNoLnJvY2tzL3NtYXJ0cHJvbWlzZSc7CgovLyBUaGlzIHNob3VsZCBoYXZlIEludGVsbGlTZW5zZSBzaG93aW5nIGRlZmVyKCkgbWV0aG9kCmNvbnN0IGRlZmVycmVkID0gc21hcnRwcm9taXNlLmRlZmVyPHN0cmluZz4oKTsKCi8vIFRlc3QgdXNpbmcgdGhlIGRlZmVycmVkIHByb21pc2UKYXN5bmMgZnVuY3Rpb24gdGVzdFNtYXJ0UHJvbWlzZSgpIHsKICBzZXRUaW1lb3V0KCgpID0+IHsKICAgIGRlZmVycmVkLnJlc29sdmUoJ0hlbGxvIGZyb20gc21hcnRwcm9taXNlIScpOwogIH0sIDEwMCk7CgogIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRlZmVycmVkLnByb21pc2U7CiAgY29uc29sZS5sb2cocmVzdWx0KTsKfQoKdGVzdFNtYXJ0UHJvbWlzZSgpOwpgfX19fX07YXdhaXQgYWUubW91bnQoU3QpfSkoKSxfZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtfZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjsiO2xldCB2dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZWVzLXdvcmtzcGFjZSIpO3JldHVybiB2dC5leGVjdXRpb25FbnZpcm9ubWVudD1hZSx2dC5pbml0aWFsaXphdGlvblByb21pc2U9c2UsX2UuYXBwZW5kQ2hpbGQodnQpLENgCiAgICAgIDxkZWVzLWRlbW93cmFwcGVyPgogICAgICAgICR7X2V9CiAgICAgIDwvZGVlcy1kZW1vd3JhcHBlcj4KICAgIGB9O3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07I2U9QXQodGhpcyxvLG51bGwpO2dldCBleGVjdXRpb25FbnZpcm9ubWVudCgpe3JldHVybiB0aGlzLiNlfXNldCBleGVjdXRpb25FbnZpcm9ubWVudChhZSl7dGhpcy4jZT1hZX0jdD0oQXQodGhpcyxzKSxBdCh0aGlzLGMsbnVsbCkpO2dldCBpbml0aWFsaXphdGlvblByb21pc2UoKXtyZXR1cm4gdGhpcy4jdH1zZXQgaW5pdGlhbGl6YXRpb25Qcm9taXNlKGFlKXt0aGlzLiN0PWFlfSNyPShBdCh0aGlzLHUpLEF0KHRoaXMsaCwhMCkpO2dldCBzaG93RmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jcn1zZXQgc2hvd0ZpbGVUcmVlKGFlKXt0aGlzLiNyPWFlfSNpPShBdCh0aGlzLGYpLEF0KHRoaXMsdiwhMCkpO2dldCBzaG93VGVybWluYWwoKXtyZXR1cm4gdGhpcy4jaX1zZXQgc2hvd1Rlcm1pbmFsKGFlKXt0aGlzLiNpPWFlfSNhPShBdCh0aGlzLGIpLEF0KHRoaXMsdywyNTApKTtnZXQgZmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNhfXNldCBmaWxlVHJlZVdpZHRoKGFlKXt0aGlzLiNhPWFlfSNuPShBdCh0aGlzLGspLEF0KHRoaXMseiwyMDApKTtnZXQgdGVybWluYWxIZWlnaHQoKXtyZXR1cm4gdGhpcy4jbn1zZXQgdGVybWluYWxIZWlnaHQoYWUpe3RoaXMuI249YWV9I289KEF0KHRoaXMsTSksQXQodGhpcyxELFtdKSk7Z2V0IG9wZW5GaWxlcygpe3JldHVybiB0aGlzLiNvfXNldCBvcGVuRmlsZXMoYWUpe3RoaXMuI289YWV9I3M9KEF0KHRoaXMsTiksQXQodGhpcyxfLCIiKSk7Z2V0IGFjdGl2ZUZpbGVQYXRoKCl7cmV0dXJuIHRoaXMuI3N9c2V0IGFjdGl2ZUZpbGVQYXRoKGFlKXt0aGlzLiNzPWFlfSNsPShBdCh0aGlzLFMpLEF0KHRoaXMsVCwhMSkpO2dldCBpc1Rlcm1pbmFsQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuI2x9c2V0IGlzVGVybWluYWxDb2xsYXBzZWQoYWUpe3RoaXMuI2w9YWV9I2M9KEF0KHRoaXMsRSksQXQodGhpcyxCLCExKSk7Z2V0IGlzRmlsZVRyZWVDb2xsYXBzZWQoKXtyZXR1cm4gdGhpcy4jY31zZXQgaXNGaWxlVHJlZUNvbGxhcHNlZChhZSl7dGhpcy4jYz1hZX0jZD0oQXQodGhpcyxHKSxBdCh0aGlzLFAsITApKTtnZXQgaXNJbml0aWFsaXppbmcoKXtyZXR1cm4gdGhpcy4jZH1zZXQgaXNJbml0aWFsaXppbmcoYWUpe3RoaXMuI2Q9YWV9I3U9KEF0KHRoaXMsZ2UpLEF0KHRoaXMsSSwidGVybWluYWwiKSk7Z2V0IGFjdGl2ZUJvdHRvbVBhbmVsKCl7cmV0dXJuIHRoaXMuI3V9c2V0IGFjdGl2ZUJvdHRvbVBhbmVsKGFlKXt0aGlzLiN1PWFlfSNwPShBdCh0aGlzLG5lKSxBdCh0aGlzLFksW10pKTtnZXQgZGlhZ25vc3RpY01hcmtlcnMoKXtyZXR1cm4gdGhpcy4jcH1zZXQgZGlhZ25vc3RpY01hcmtlcnMoYWUpe3RoaXMuI3A9YWV9ZWRpdG9yRWxlbWVudD0oQXQodGhpcyxBKSxudWxsKTtpbml0aWFsaXphdGlvblN0YXJ0ZWQ9ITE7aW50ZWxsaVNlbnNlTWFuYWdlcj1udWxsO2ludGVsbGlTZW5zZUluaXRpYWxpemVkPSExO25vZGVNb2R1bGVzV2F0Y2hlcj1udWxsO25vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0PW51bGw7aW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0PW51bGw7b3BlbkZpbGVXYXRjaGVycz1uZXcgTWFwO2ZpbGVDaGFuZ2VEZWJvdW5jZT1uZXcgTWFwO2FjdGlvbmJhckVsZW1lbnQ9bnVsbDsjaD1BdCh0aGlzLFUsITEpO2dldCBhdXRvU2F2ZSgpe3JldHVybiB0aGlzLiNofXNldCBhdXRvU2F2ZShhZSl7dGhpcy4jaD1hZX1hdXRvU2F2ZUludGVydmFsPShBdCh0aGlzLFYpLG51bGwpOyNmPUF0KHRoaXMsZGUsIiIpO2dldCBpbml0Q29tbWFuZCgpe3JldHVybiB0aGlzLiNmfXNldCBpbml0Q29tbWFuZChhZSl7dGhpcy4jZj1hZX0jbT0oQXQodGhpcyx2ZSksQXQodGhpcyxXLFtdKSk7Z2V0IGluaXRPdXRwdXQoKXtyZXR1cm4gdGhpcy4jbX1zZXQgaW5pdE91dHB1dChhZSl7dGhpcy4jbT1hZX0jZz0oQXQodGhpcyxIKSxBdCh0aGlzLGJlLDI1MCkpO2dldCBjdXJyZW50RmlsZVRyZWVXaWR0aCgpe3JldHVybiB0aGlzLiNnfXNldCBjdXJyZW50RmlsZVRyZWVXaWR0aChhZSl7dGhpcy4jZz1hZX0jYj0oQXQodGhpcyx1ZSksQXQodGhpcyxoZSwyMDApKTtnZXQgY3VycmVudFRlcm1pbmFsSGVpZ2h0KCl7cmV0dXJuIHRoaXMuI2J9c2V0IGN1cnJlbnRUZXJtaW5hbEhlaWdodChhZSl7dGhpcy4jYj1hZX0jdj0oQXQodGhpcyxpZSksQXQodGhpcyxJZSwhMSkpO2dldCBpc0RyYWdnaW5nRmlsZVRyZWUoKXtyZXR1cm4gdGhpcy4jdn1zZXQgaXNEcmFnZ2luZ0ZpbGVUcmVlKGFlKXt0aGlzLiN2PWFlfSN4PShBdCh0aGlzLFplKSxBdCh0aGlzLFosITEpKTtnZXQgaXNEcmFnZ2luZ1Rlcm1pbmFsKCl7cmV0dXJuIHRoaXMuI3h9c2V0IGlzRHJhZ2dpbmdUZXJtaW5hbChhZSl7dGhpcy4jeD1hZX0jeT0oQXQodGhpcyxKKSxBdCh0aGlzLEVlLCExKSk7Z2V0IHNob3dEaWZmVmlldygpe3JldHVybiB0aGlzLiN5fXNldCBzaG93RGlmZlZpZXcoYWUpe3RoaXMuI3k9YWV9I3c9KEF0KHRoaXMsVWUpLEF0KHRoaXMsaXQsbnVsbCkpO2dldCBkaWZmVmlld0NvbmZpZygpe3JldHVybiB0aGlzLiN3fXNldCBkaWZmVmlld0NvbmZpZyhhZSl7dGhpcy4jdz1hZX1rZXlkb3duSGFuZGxlcj0oQXQodGhpcyxMdCksYWU9PnsoYWUubWV0YUtleXx8YWUuY3RybEtleSkmJmFlLmtleT09PSJzIiYmIWFlLnNoaWZ0S2V5JiYoYWUucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBY3RpdmVGaWxlKCkpLChhZS5tZXRhS2V5fHxhZS5jdHJsS2V5KSYmYWUuc2hpZnRLZXkmJmFlLmtleS50b0xvd2VyQ2FzZSgpPT09InMiJiYoYWUucHJldmVudERlZmF1bHQoKSx0aGlzLnNhdmVBbGxGaWxlcygpKX0pO2hhbmRsZUZpbGVUcmVlTW91c2VEb3duPWFlPT57YWUucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKX07aGFuZGxlRmlsZVRyZWVNb3VzZU1vdmU9YWU9PntpZighdGhpcy5pc0RyYWdnaW5nRmlsZVRyZWUpcmV0dXJuO2xldCBzZT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLF9lPWFlLmNsaWVudFgtc2UubGVmdCx2dD0xNTAsU3Q9c2Uud2lkdGgqLjUsWXI9TWF0aC5tYXgodnQsTWF0aC5taW4oU3QsX2UpKTt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPVlyfTtoYW5kbGVGaWxlVHJlZU1vdXNlVXA9KCk9Pnt0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZU1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZVVwKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX07aGFuZGxlVGVybWluYWxNb3VzZURvd249YWU9PnthZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaXNEcmFnZ2luZ1Rlcm1pbmFsPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVUZXJtaW5hbE1vdXNlVXApfTtoYW5kbGVUZXJtaW5hbE1vdXNlTW92ZT1hZT0+e2lmKCF0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbClyZXR1cm47bGV0IHNlPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksX2U9YWUuY2xpZW50WS1zZS50b3AsdnQ9c2UuaGVpZ2h0LV9lLFN0PTEwMCxZcj1zZS5oZWlnaHQqLjcsZG49TWF0aC5tYXgoU3QsTWF0aC5taW4oWXIsdnQpKTt0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD1kbn07aGFuZGxlVGVybWluYWxNb3VzZVVwPSgpPT57dGhpcy5pc0RyYWdnaW5nVGVybWluYWw9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCksd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJyZXNpemUiKSl9O3N0YXRpYyBzdHlsZXM9W0RlLG0uZGVmYXVsdFN0eWxlcyxvZWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDk2JSkiLCJoc2woMCAwJSA3JSkiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgICB9CgogICAgICAud29ya3NwYWNlLW91dGVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lciB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLWhlaWdodDogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgfQoKICAgICAgLmVkaXRvci1hcmVhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgZmxleDogMTsKICAgICAgICBtaW4td2lkdGg6IDA7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXBhbmVsIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLmZpbGV0cmVlLXBhbmVsLmNvbGxhcHNlZCB7CiAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmVkaXRvci1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMjAwcHg7CiAgICAgIH0KCiAgICAgIC50ZXJtaW5hbC1wYW5lbCB7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgfQoKICAgICAgLnRlcm1pbmFsLXBhbmVsLmNvbGxhcHNlZCB7CiAgICAgICAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1oZWFkZXIgewogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIHBhZGRpbmc6IDAgOHB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA0MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLWhlYWRlci10aXRsZSB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICB9CgogICAgICAucGFuZWwtaGVhZGVyLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBnYXA6IDRweDsKICAgICAgfQoKICAgICAgLnBhbmVsLWFjdGlvbiB7CiAgICAgICAgd2lkdGg6IDI0cHg7CiAgICAgICAgaGVpZ2h0OiAyNHB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgNTAlKSIsImhzbCgwIDAlIDYwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wYW5lbC1hY3Rpb246aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA4OCUpIiwiaHNsKDAgMCUgMTglKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDMwJSkiLCJoc2woMCAwJSA4MCUpIil9OwogICAgICB9CgogICAgICAudGFicy1iYXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICAgICAgaGVpZ2h0OiAzNnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NiUpIiwiaHNsKDAgMCUgOCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDE1JSkiKX07CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLnRhYiB7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGdhcDogNnB4OwogICAgICAgIHBhZGRpbmc6IDAgMTJweDsKICAgICAgICBtaW4td2lkdGg6IDEyMHB4OwogICAgICAgIG1heC13aWR0aDogMjAwcHg7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJHttLmJkVGhlbWUoImhzbCgwIDAlIDg4JSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgOTQlKSIsImhzbCgwIDAlIDEwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC50YWI6aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5MiUpIiwiaHNsKDAgMCUgMTIlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi5hY3RpdmUgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAxMDAlKSIsImhzbCgwIDAlIDklKSIpfTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDIwJSkiLCJoc2woMCAwJSA5MCUpIil9OwogICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYi1uYW1lIHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgfQoKICAgICAgLnRhYi1jbG9zZSB7CiAgICAgICAgd2lkdGg6IDE2cHg7CiAgICAgICAgaGVpZ2h0OiAxNnB4OwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKICAgICAgfQoKICAgICAgLnRhYjpob3ZlciAudGFiLWNsb3NlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAudGFiLWNsb3NlOmhvdmVyIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgODUlKSIsImhzbCgwIDAlIDI1JSkiKX07CiAgICAgIH0KCiAgICAgIC50YWItbW9kaWZpZWQgewogICAgICAgIHdpZHRoOiA4cHg7CiAgICAgICAgaGVpZ2h0OiA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnRhYnMtY29udGFpbmVyIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXg6IDE7CiAgICAgICAgb3ZlcmZsb3cteDogYXV0bzsKICAgICAgfQoKICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbiB7CiAgICAgICAgcGFkZGluZzogNnB4IDhweDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIG9wYWNpdHk6IDAuNjsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgfQoKICAgICAgLmVkaXRvci1tZW51LWJ1dHRvbjpob3ZlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMCUgLyAwLjA4KSIsImhzbCgwIDAlIDEwMCUgLyAwLjEpIil9OwogICAgICB9CgogICAgICAuZWRpdG9yLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAudGVybWluYWwtY29udGVudCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMzJweDsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHJpZ2h0OiAwOwogICAgICAgIGJvdHRvbTogMDsKICAgICAgfQoKICAgICAgLnByb2JsZW1zLWNvbnRlbnQgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDMycHg7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMTAwJSkiLCJoc2woMCAwJSA5JSkiKX07CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWJzIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiAwOwogICAgICB9CgogICAgICAucGFuZWwtdGFiIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgcGFkZGluZzogMCAxMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTUlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWI6aG92ZXIgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDc1JSkiKX07CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCgwIDAlIDkwJSkiLCJoc2woMCAwJSAxMiUpIil9OwogICAgICB9CgogICAgICAucGFuZWwtdGFiLmFjdGl2ZSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSAyMCUpIiwiaHNsKDAgMCUgOTAlKSIpfTsKICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDIxMCAxMDAlIDUwJSkiLCJoc2woMjEwIDEwMCUgNjAlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBtaW4td2lkdGg6IDE4cHg7CiAgICAgICAgaGVpZ2h0OiAxOHB4OwogICAgICAgIHBhZGRpbmc6IDAgNXB4OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDlweDsKICAgICAgICBmb250LXNpemU6IDExcHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiaHNsKDAgNzAlIDUwJSkiLCJoc2woMCA3MCUgNDUlKSIpfTsKICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgIH0KCiAgICAgIC5wYW5lbC10YWItYmFkZ2Uud2FybmluZyB7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoImhzbCg0MCA3MCUgNTAlKSIsImhzbCg0MCA3MCUgNDUlKSIpfTsKICAgICAgfQoKICAgICAgLnBhbmVsLXRhYi1iYWRnZS5ub25lIHsKICAgICAgICBkaXNwbGF5OiBub25lOwogICAgICB9CgogICAgICAucHJvYmxlbXMtbGlzdCB7CiAgICAgICAgcGFkZGluZzogNHB4IDA7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7CiAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBsaW5lLWhlaWdodDogMS40OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiaHNsKDAgMCUgMzAlKSIsImhzbCgwIDAlIDgwJSkiKX07CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA5NSUpIiwiaHNsKDAgMCUgMTUlKSIpfTsKICAgICAgfQoKICAgICAgLnByb2JsZW0taWNvbiB7CiAgICAgICAgZmxleC1zaHJpbms6IDA7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICB9CgogICAgICAucHJvYmxlbS1pY29uLmVycm9yIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDcwJSA1MCUpIiwiaHNsKDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWljb24ud2FybmluZyB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woNDAgNzAlIDUwJSkiLCJoc2woNDAgNzAlIDYwJSkiKX07CiAgICAgIH0KCiAgICAgIC5wcm9ibGVtLWRldGFpbHMgewogICAgICAgIGZsZXg6IDE7CiAgICAgICAgbWluLXdpZHRoOiAwOwogICAgICB9CgogICAgICAucHJvYmxlbS1tZXNzYWdlIHsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAucHJvYmxlbS1sb2NhdGlvbiB7CiAgICAgICAgbWFyZ2luLXRvcDogMnB4OwogICAgICAgIGZvbnQtc2l6ZTogMTFweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA1NSUpIil9OwogICAgICB9CgogICAgICAucHJvYmxlbXMtZW1wdHkgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDU1JSkiLCJoc2woMCAwJSA1MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICAgICBnYXA6IDhweDsKICAgICAgfQoKICAgICAgLmVtcHR5LXN0YXRlIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCJoc2woMCAwJSA1MCUpIiwiaHNsKDAgMCUgNTAlKSIpfTsKICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgZ2FwOiA4cHg7CiAgICAgIH0KCiAgICAgIC5lbXB0eS1zdGF0ZSBkZWVzLWljb24gewogICAgICAgIHdpZHRoOiA0OHB4OwogICAgICAgIGhlaWdodDogNDhweDsKICAgICAgICBvcGFjaXR5OiAwLjU7CiAgICAgIH0KCiAgICAgIEBrZXlmcmFtZXMgc3BpbiB7CiAgICAgICAgZnJvbSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAgICAgICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoImhzbCgwIDAlIDUwJSkiLCJoc2woMCAwJSA2MCUpIil9OwogICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICBnYXA6IDEycHg7CiAgICAgIH0KCiAgICAgIC5pbml0aWFsaXppbmcgZGVlcy1pY29uIHsKICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOwogICAgICB9CgogICAgICAuaW5pdGlhbGl6aW5nIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsLXByZXZpZXcgewogICAgICAgIG1hcmdpbi10b3A6IDI0cHg7CiAgICAgICAgd2lkdGg6IDgwJTsKICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLWZpbGV0cmVlIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICBkZWVzLXdvcmtzcGFjZS1tb25hY28gewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICB0b3A6IDA7CiAgICAgICAgbGVmdDogMDsKICAgICAgICByaWdodDogMDsKICAgICAgICBib3R0b206IDA7CiAgICAgIH0KCiAgICAgIGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgYm90dG9tOiAwOwogICAgICB9CgogICAgICAvKiBSZXNpemUgaGFuZGxlcyAqLwogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbCB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7CiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB6LWluZGV4OiAxMDsKICAgICAgfQoKICAgICAgLnJlc2l6ZS1oYW5kbGUtdmVydGljYWw6aG92ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsOjphZnRlciB7CiAgICAgICAgY29udGVudDogJyc7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogNTAlOwogICAgICAgIGxlZnQ6IDUwJTsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgICB3aWR0aDogMnB4OwogICAgICAgIGhlaWdodDogMzJweDsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzljYTNhZiIsIiM2ZTc2ODEiKX07CiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4OwogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS12ZXJ0aWNhbDpob3Zlcjo6YWZ0ZXIsCiAgICAgIC5yZXNpemUtaGFuZGxlLXZlcnRpY2FsLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWwgewogICAgICAgIGhlaWdodDogNnB4OwogICAgICAgIGN1cnNvcjogcm93LXJlc2l6ZTsKICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgICAgIHotaW5kZXg6IDEwOwogICAgICB9CgogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsOmhvdmVyLAogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAzMnB4OwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7CiAgICAgIH0KCiAgICAgIC5yZXNpemUtaGFuZGxlLWhvcml6b250YWw6aG92ZXI6OmFmdGVyLAogICAgICAucmVzaXplLWhhbmRsZS1ob3Jpem9udGFsLmRyYWdnaW5nOjphZnRlciB7CiAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiI2ZmZmZmZiIsIiNmZmZmZmYiKX07CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLndvcmtzcGFjZS1jb250YWluZXIuZHJhZ2dpbmcgewogICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICB9CgogICAgICAud29ya3NwYWNlLWNvbnRhaW5lci5kcmFnZ2luZyAuZmlsZXRyZWUtcGFuZWwsCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3ItcGFuZWwsCiAgICAgIC53b3Jrc3BhY2UtY29udGFpbmVyLmRyYWdnaW5nIC50ZXJtaW5hbC1wYW5lbCB7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgIH0KCiAgICBgXTtyZW5kZXIoKXtsZXQgYWU9WyJ3b3Jrc3BhY2UtY29udGFpbmVyIix0aGlzLmlzRHJhZ2dpbmdGaWxlVHJlZXx8dGhpcy5pc0RyYWdnaW5nVGVybWluYWw/ImRyYWdnaW5nIjoiIl0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKTtyZXR1cm4gdGhpcy5pc0luaXRpYWxpemluZz9DYAogICAgICAgIDxkaXYgY2xhc3M9ImluaXRpYWxpemluZyI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpsb2FkZXIyIn0gaWNvblNpemU9IjMyIj48L2RlZXMtaWNvbj4KICAgICAgICAgIDxzcGFuPkluaXRpYWxpemluZyB3b3Jrc3BhY2UuLi48L3NwYW4+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtdGVybWluYWwtcHJldmlldwogICAgICAgICAgICAuY29tbWFuZD0ke3RoaXMuaW5pdENvbW1hbmR8fCIifQogICAgICAgICAgICAubGluZXM9JHt0aGlzLmluaXRPdXRwdXR9CiAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS10ZXJtaW5hbC1wcmV2aWV3PgogICAgICAgIDwvZGl2PgogICAgICBgOkNgCiAgICAgIDxkaXYgY2xhc3M9IndvcmtzcGFjZS1vdXRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iJHthZX0iPgogICAgICAgICAgPCEtLSBGaWxldHJlZSBwYW5lbCAoZnVsbCBoZWlnaHQpIC0tPgogICAgICAgICAgJHt0aGlzLnNob3dGaWxlVHJlZT9DYAogICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgY2xhc3M9ImZpbGV0cmVlLXBhbmVsICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkPyJjb2xsYXBzZWQiOiIifSIKICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6ICR7dGhpcy5pc0ZpbGVUcmVlQ29sbGFwc2VkPzA6dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aH1weCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1maWxldHJlZQogICAgICAgICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH0KICAgICAgICAgICAgICAgIC5zZWxlY3RlZFBhdGg9JHt0aGlzLmFjdGl2ZUZpbGVQYXRofQogICAgICAgICAgICAgICAgQGZpbGUtc2VsZWN0PSR7dGhpcy5oYW5kbGVGaWxlU2VsZWN0fQogICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLWZpbGV0cmVlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJHt0aGlzLmlzRmlsZVRyZWVDb2xsYXBzZWQ/IiI6Q2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0icmVzaXplLWhhbmRsZS12ZXJ0aWNhbCAke3RoaXMuaXNEcmFnZ2luZ0ZpbGVUcmVlPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlRmlsZVRyZWVNb3VzZURvd259CiAgICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgICBgfQogICAgICAgICAgYDoiIn0KCiAgICAgICAgICA8IS0tIEVkaXRvciArIFRlcm1pbmFsIGFyZWEgLS0+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItYXJlYSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci1wYW5lbCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFicy1iYXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFicy1jb250YWluZXIiPgogICAgICAgICAgICAgICAgICAke3RoaXMub3BlbkZpbGVzLm1hcChzZT0+Q2AKICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idGFiICR7c2UucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGg/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZhdGVGaWxlKHNlLnBhdGgpfQogICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICR7c2UubW9kaWZpZWQ/Q2A8c3BhbiBjbGFzcz0idGFiLW1vZGlmaWVkIj48L3NwYW4+YDoiIn0KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItbmFtZSI+JHtzZS5uYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWItY2xvc2UiIEBjbGljaz0ke19lPT50aGlzLmNsb3NlRmlsZShfZSxzZS5wYXRoKX0+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOngifSBpY29uU2l6ZT0iMTIiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICBgKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLW1lbnUtYnV0dG9uIiBAY2xpY2s9JHt0aGlzLnNob3dFZGl0b3JNZW51fSB0aXRsZT0iRWRpdG9yIG9wdGlvbnMiPgogICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTptb3JlVmVydGljYWwifSBpY29uU2l6ZT0iMTYiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgJHt0aGlzLnNob3dEaWZmVmlldyYmdGhpcy5kaWZmVmlld0NvbmZpZz9DYAogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3IKICAgICAgICAgICAgICAgICAgICAuZmlsZVBhdGg9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLmZpbGVQYXRofQogICAgICAgICAgICAgICAgICAgIC5vcmlnaW5hbENvbnRlbnQ9JHt0aGlzLmRpZmZWaWV3Q29uZmlnLm9yaWdpbmFsQ29udGVudH0KICAgICAgICAgICAgICAgICAgICAubW9kaWZpZWRDb250ZW50PSR7dGhpcy5kaWZmVmlld0NvbmZpZy5tb2RpZmllZENvbnRlbnR9CiAgICAgICAgICAgICAgICAgICAgLmxhbmd1YWdlPSR7dGhpcy5kaWZmVmlld0NvbmZpZy5sYW5ndWFnZX0KICAgICAgICAgICAgICAgICAgICBAZGlmZi1yZXNvbHZlZD0ke3RoaXMuaGFuZGxlRGlmZlJlc29sdmVkfQogICAgICAgICAgICAgICAgICAgIEBkaWZmLWNsb3NlZD0keygpPT57dGhpcy5zaG93RGlmZlZpZXc9ITEsdGhpcy5kaWZmVmlld0NvbmZpZz1udWxsfX0KICAgICAgICAgICAgICAgICAgPjwvZGVlcy13b3Jrc3BhY2UtZGlmZi1lZGl0b3I+CiAgICAgICAgICAgICAgICBgOnRoaXMub3BlbkZpbGVzLmxlbmd0aD09PTA/Q2AKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPgogICAgICAgICAgICAgICAgICAgIDxkZWVzLWljb24gLmljb249JHsibHVjaWRlOmZpbGVDb2RlIn0gaWNvblNpemU9IjQ4Ij48L2RlZXMtaWNvbj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TZWxlY3QgYSBmaWxlIHRvIGVkaXQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgYDpDYAogICAgICAgICAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgICAgICAgICAgLmZpbGVQYXRoPSR7dGhpcy5hY3RpdmVGaWxlUGF0aH0KICAgICAgICAgICAgICAgICAgICAuY29udGVudD0ke3RoaXMuZ2V0QWN0aXZlRmlsZUNvbnRlbnQoKX0KICAgICAgICAgICAgICAgICAgICAubGFuZ3VhZ2U9JHt0aGlzLmdldExhbmd1YWdlRnJvbVBhdGgodGhpcy5hY3RpdmVGaWxlUGF0aCl9CiAgICAgICAgICAgICAgICAgICAgQGNvbnRlbnQtY2hhbmdlPSR7dGhpcy5oYW5kbGVDb250ZW50Q2hhbmdlfQogICAgICAgICAgICAgICAgICA+PC9kZWVzLXdvcmtzcGFjZS1tb25hY28+CiAgICAgICAgICAgICAgICBgfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkZWVzLWFjdGlvbmJhcj48L2RlZXMtYWN0aW9uYmFyPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gSG9yaXpvbnRhbCByZXNpemUgaGFuZGxlIGZvciB0ZXJtaW5hbCAtLT4KICAgICAgICAgICAgJHt0aGlzLnNob3dUZXJtaW5hbCYmIXRoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD9DYAogICAgICAgICAgICAgIDxkaXYKICAgICAgICAgICAgICAgIGNsYXNzPSJyZXNpemUtaGFuZGxlLWhvcml6b250YWwgJHt0aGlzLmlzRHJhZ2dpbmdUZXJtaW5hbD8iZHJhZ2dpbmciOiIifSIKICAgICAgICAgICAgICAgIEBtb3VzZWRvd249JHt0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VEb3dufQogICAgICAgICAgICAgID48L2Rpdj4KICAgICAgICAgICAgYDoiIn0KCiAgICAgICAgICAgIDwhLS0gVGVybWluYWwgcGFuZWwgLS0+CiAgICAgICAgICAgICR7dGhpcy5zaG93VGVybWluYWw/Q2AKICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICBjbGFzcz0idGVybWluYWwtcGFuZWwgJHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/ImNvbGxhcHNlZCI6IiJ9IgogICAgICAgICAgICAgICAgc3R5bGU9ImhlaWdodDogJHt0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ/MzI6dGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHR9cHgiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtdGFicyI+CiAgICAgICAgICAgICAgICAgICAgPGRpdgogICAgICAgICAgICAgICAgICAgICAgY2xhc3M9InBhbmVsLXRhYiAke3RoaXMuYWN0aXZlQm90dG9tUGFuZWw9PT0idGVybWluYWwiPyJhY3RpdmUiOiIifSIKICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpPT50aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPSJ0ZXJtaW5hbCJ9CiAgICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgPGRlZXMtaWNvbiAuaWNvbj0keyJsdWNpZGU6dGVybWluYWwifSBpY29uU2l6ZT0iMTQiPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgICAgVGVybWluYWwKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0icGFuZWwtdGFiICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJwcm9ibGVtcyI/ImFjdGl2ZSI6IiJ9IgogICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCk9PnRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InByb2JsZW1zIn0KICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaXJjbGVBbGVydCJ9IGljb25TaXplPSIxNCI+PC9kZWVzLWljb24+CiAgICAgICAgICAgICAgICAgICAgICBQcm9ibGVtcwogICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aD4wP0NgCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYW5lbC10YWItYmFkZ2UgJHt0aGlzLmdldEVycm9yQ291bnQoKT09PTA/Indhcm5pbmciOiIifSI+JHt0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aH08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICBgOiIifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtaGVhZGVyLWFjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWFjdGlvbiIgQGNsaWNrPSR7dGhpcy50b2dnbGVUZXJtaW5hbH0+CiAgICAgICAgICAgICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uPSR7dGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkPyJsdWNpZGU6Y2hldnJvblVwIjoibHVjaWRlOmNoZXZyb25Eb3duIn0KICAgICAgICAgICAgICAgICAgICAgICAgaWNvblNpemU9IjE0IgogICAgICAgICAgICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtY29udGVudCIgc3R5bGU9ImRpc3BsYXk6ICR7dGhpcy5hY3RpdmVCb3R0b21QYW5lbD09PSJ0ZXJtaW5hbCI/ImJsb2NrIjoibm9uZSJ9Ij4KICAgICAgICAgICAgICAgICAgPGRlZXMtd29ya3NwYWNlLXRlcm1pbmFsCiAgICAgICAgICAgICAgICAgICAgLmV4ZWN1dGlvbkVudmlyb25tZW50PSR7dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudH0KICAgICAgICAgICAgICAgICAgICAuc2V0dXBDb21tYW5kPSR7IiJ9CiAgICAgICAgICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLXRlcm1pbmFsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtcy1jb250ZW50IiBzdHlsZT0iZGlzcGxheTogJHt0aGlzLmFjdGl2ZUJvdHRvbVBhbmVsPT09InByb2JsZW1zIj8iYmxvY2siOiJub25lIn0iPgogICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyUHJvYmxlbXNQYW5lbCgpfQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIGA6IiJ9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSBCb3R0b20gQmFyIChmdWxsIHdpZHRoKSAtLT4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtYm90dG9tYmFyCiAgICAgICAgICAuZXhlY3V0aW9uRW52aXJvbm1lbnQ9JHt0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fQogICAgICAgICAgQHJ1bi1wcm9jZXNzPSR7dGhpcy5oYW5kbGVSdW5Qcm9jZXNzfQogICAgICAgID48L2RlZXMtd29ya3NwYWNlLWJvdHRvbWJhcj4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGNvbm5lY3RlZENhbGxiYWNrKCl7YXdhaXQgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmtleWRvd25IYW5kbGVyKX1hc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5rZXlkb3duSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZUZpbGVUcmVlTW91c2VVcCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VNb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmhhbmRsZVRlcm1pbmFsTW91c2VVcCksdGhpcy5hdXRvU2F2ZUludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9TYXZlSW50ZXJ2YWwpLHRoaXMuYXV0b1NhdmVJbnRlcnZhbD1udWxsKSx0aGlzLnN0b3BOb2RlTW9kdWxlc1dhdGNoZXIoKSx0aGlzLnN0b3BBbGxGaWxlV2F0Y2hlcnMoKX1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLmN1cnJlbnRGaWxlVHJlZVdpZHRoPXRoaXMuZmlsZVRyZWVXaWR0aCx0aGlzLmN1cnJlbnRUZXJtaW5hbEhlaWdodD10aGlzLnRlcm1pbmFsSGVpZ2h0LHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQmJmF3YWl0IHRoaXMuaW5pdGlhbGl6ZVdvcmtzcGFjZSgpfWFzeW5jIHVwZGF0ZWQoYWUpe2FlLmhhcygiZXhlY3V0aW9uRW52aXJvbm1lbnQiKSYmdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmYXdhaXQgdGhpcy5pbml0aWFsaXplV29ya3NwYWNlKCksdGhpcy5hY3Rpb25iYXJFbGVtZW50fHwodGhpcy5hY3Rpb25iYXJFbGVtZW50PXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiLmVkaXRvci1wYW5lbCBkZWVzLWFjdGlvbmJhciIpKX1hc3luYyBpbml0aWFsaXplV29ya3NwYWNlKCl7aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCYmIXRoaXMuaW5pdGlhbGl6YXRpb25TdGFydGVkKXt0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZD0hMCx0aGlzLmlzSW5pdGlhbGl6aW5nPSEwO3RyeXt0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZT9hd2FpdCB0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZTp0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnJlYWR5fHxhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LmluaXQoKSxhd2FpdCB0aGlzLmV4ZWN1dGVPbkluaXRDb21tYW5kKCl9Y2F0Y2goYWUpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIHdvcmtzcGFjZToiLGFlKSx0aGlzLmluaXRpYWxpemF0aW9uU3RhcnRlZD0hMX1maW5hbGx5e3RoaXMuaXNJbml0aWFsaXppbmc9ITF9fX1hc3luYyBleGVjdXRlT25Jbml0Q29tbWFuZCgpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpdHJ5e2lmKGF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQuZXhpc3RzKCIvbnBtZXh0cmEuanNvbiIpKXtsZXQgYWU9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZSgiL25wbWV4dHJhLmpzb24iKSxfZT1KU09OLnBhcnNlKGFlKT8uZGVlc0VkaXRvcldvcmtzcGFjZT8ub25Jbml0O2lmKF9lJiZ0eXBlb2YgX2U9PSJzdHJpbmciKXtjb25zb2xlLmxvZygiRXhlY3V0aW5nIG9uSW5pdCBjb21tYW5kOiIsX2UpLHRoaXMuaW5pdENvbW1hbmQ9X2UsdGhpcy5pbml0T3V0cHV0PVtdO2xldFt2dCwuLi5TdF09X2Uuc3BsaXQoIiAiKSxZcj1hd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LnNwYXduKHZ0LFN0KTtZci5vdXRwdXQucGlwZVRvKG5ldyBXcml0YWJsZVN0cmVhbSh7d3JpdGU6VW89PntsZXQgV289VW8uc3BsaXQoYApgKTtmb3IobGV0IE1lIG9mIFdvKU1lJiYodGhpcy5pbml0T3V0cHV0PVsuLi50aGlzLmluaXRPdXRwdXQsTWVdKX19KSk7bGV0IGRuPWF3YWl0IFlyLmV4aXQ7Y29uc29sZS5sb2coIm9uSW5pdCBjb21tYW5kIGNvbXBsZXRlZCB3aXRoIGV4aXQgY29kZToiLGRuKSx0aGlzLmluaXRPdXRwdXQ9Wy4uLnRoaXMuaW5pdE91dHB1dCwiIixgQ29tbWFuZCBjb21wbGV0ZWQgd2l0aCBleGl0IGNvZGU6ICR7ZG59YF19fX1jYXRjaChhZSl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZXhlY3V0ZSBvbkluaXQgY29tbWFuZDoiLGFlKX19YXN5bmMgaW5pdGlhbGl6ZUludGVsbGlTZW5zZSgpe2lmKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkKXJldHVybjtsZXQgYWU9d2luZG93Lm1vbmFjbztpZihhZXx8KGF3YWl0IG5ldyBQcm9taXNlKHNlPT5zZXRUaW1lb3V0KHNlLDEwMCkpLGFlPXdpbmRvdy5tb25hY28pLCFhZSl7Y29uc29sZS53YXJuKCJNb25hY28gbm90IHlldCBsb2FkZWQsIEludGVsbGlTZW5zZSB3aWxsIGJlIGluaXRpYWxpemVkIGxhdGVyIik7cmV0dXJufXRoaXMuaW50ZWxsaVNlbnNlSW5pdGlhbGl6ZWQ9ITAsdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyPW5ldyBYYixhd2FpdCB0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuaW5pdChhZSx0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50KSx0aGlzLnNldHVwTWFya2VyTGlzdGVuZXIoKSx0aGlzLnN0YXJ0Tm9kZU1vZHVsZXNXYXRjaGVyKCksYXdhaXQgdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyLnNjYW5BbmRMb2FkTmV3UGFja2FnZVR5cGVzKCl9c3RhcnROb2RlTW9kdWxlc1dhdGNoZXIoKXtpZighKCF0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50fHx0aGlzLm5vZGVNb2R1bGVzV2F0Y2hlcikpdHJ5e3RoaXMubm9kZU1vZHVsZXNXYXRjaGVyPXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud2F0Y2goIi9ub2RlX21vZHVsZXMiLChhZSxzZSk9Pnt0aGlzLm5vZGVNb2R1bGVzRGVib3VuY2VUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dD1zZXRUaW1lb3V0KGFzeW5jKCk9Pnt0aGlzLmludGVsbGlTZW5zZU1hbmFnZXImJmF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5zY2FuQW5kTG9hZE5ld1BhY2thZ2VUeXBlcygpfSwyZTMpfSx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2goYWUpe2NvbnNvbGUud2FybigiQ291bGQgbm90IHdhdGNoIG5vZGVfbW9kdWxlczoiLGFlKX19c3RvcE5vZGVNb2R1bGVzV2F0Y2hlcigpe3RoaXMubm9kZU1vZHVsZXNXYXRjaGVyJiYodGhpcy5ub2RlTW9kdWxlc1dhdGNoZXIuc3RvcCgpLHRoaXMubm9kZU1vZHVsZXNXYXRjaGVyPW51bGwpLHRoaXMubm9kZU1vZHVsZXNEZWJvdW5jZVRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dCksdGhpcy5ub2RlTW9kdWxlc0RlYm91bmNlVGltZW91dD1udWxsKX1zdGFydFdhdGNoaW5nRmlsZShhZSl7aWYoISghdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudHx8dGhpcy5vcGVuRmlsZVdhdGNoZXJzLmhhcyhhZSkpKXRyeXtsZXQgc2U9dGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC53YXRjaChhZSwoX2UsdnQpPT57bGV0IFN0PXRoaXMuZmlsZUNoYW5nZURlYm91bmNlLmdldChhZSk7U3QmJmNsZWFyVGltZW91dChTdCk7bGV0IFlyPXNldFRpbWVvdXQoKCk9Pnt0aGlzLmhhbmRsZUV4dGVybmFsRmlsZUNoYW5nZShhZSksdGhpcy5maWxlQ2hhbmdlRGVib3VuY2UuZGVsZXRlKGFlKX0sMzAwKTt0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS5zZXQoYWUsWXIpfSk7dGhpcy5vcGVuRmlsZVdhdGNoZXJzLnNldChhZSxzZSl9Y2F0Y2goc2Upe2NvbnNvbGUud2FybihgQ291bGQgbm90IHdhdGNoIGZpbGUgJHthZX06YCxzZSl9fXN0b3BXYXRjaGluZ0ZpbGUoYWUpe2xldCBzZT10aGlzLm9wZW5GaWxlV2F0Y2hlcnMuZ2V0KGFlKTtzZSYmKHNlLnN0b3AoKSx0aGlzLm9wZW5GaWxlV2F0Y2hlcnMuZGVsZXRlKGFlKSk7bGV0IF9lPXRoaXMuZmlsZUNoYW5nZURlYm91bmNlLmdldChhZSk7X2UmJihjbGVhclRpbWVvdXQoX2UpLHRoaXMuZmlsZUNoYW5nZURlYm91bmNlLmRlbGV0ZShhZSkpfXN0b3BBbGxGaWxlV2F0Y2hlcnMoKXtmb3IobGV0IGFlIG9mIHRoaXMub3BlbkZpbGVXYXRjaGVycy52YWx1ZXMoKSlhZS5zdG9wKCk7dGhpcy5vcGVuRmlsZVdhdGNoZXJzLmNsZWFyKCk7Zm9yKGxldCBhZSBvZiB0aGlzLmZpbGVDaGFuZ2VEZWJvdW5jZS52YWx1ZXMoKSljbGVhclRpbWVvdXQoYWUpO3RoaXMuZmlsZUNoYW5nZURlYm91bmNlLmNsZWFyKCl9YXN5bmMgaGFuZGxlRXh0ZXJuYWxGaWxlQ2hhbmdlKGFlKXtsZXQgc2U9dGhpcy5vcGVuRmlsZXMuZmluZChfZT0+X2UucGF0aD09PWFlKTtpZighKCFzZXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpKXRyeXtsZXQgX2U9YXdhaXQgdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudC5yZWFkRmlsZShhZSk7aWYoX2U9PT1zZS5jb250ZW50KXJldHVybjtpZihzZS5tb2RpZmllZCl7bGV0IHZ0PWF3YWl0IHRoaXMuYWN0aW9uYmFyRWxlbWVudD8uc2hvdyh7bWVzc2FnZTpgIiR7c2UubmFtZX0iIGNoYW5nZWQgb24gZGlzay4gV2hhdCBkbyB5b3Ugd2FudCB0byBkbz9gLHR5cGU6InF1ZXN0aW9uIixpY29uOiJsdWNpZGU6Z2l0TWVyZ2UiLGFjdGlvbnM6W3tpZDoibG9hZC1kaXNrIixsYWJlbDoiTG9hZCBmcm9tIERpc2siLHByaW1hcnk6ITB9LHtpZDoic2F2ZS1sb2NhbCIsbGFiZWw6IlNhdmUgTG9jYWwgdG8gRGlzayJ9LHtpZDoiY29tcGFyZSIsbGFiZWw6IkNvbXBhcmUifV0sdGltZW91dDp7ZHVyYXRpb246MTVlMyxkZWZhdWx0QWN0aW9uSWQ6ImxvYWQtZGlzayJ9LGRpc21pc3NpYmxlOiEwfSk7dnQ/LmFjdGlvbklkPT09ImxvYWQtZGlzayI/YXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudChhZSxfZSwhMSk6dnQ/LmFjdGlvbklkPT09InNhdmUtbG9jYWwiPyhhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShhZSxzZS5jb250ZW50KSx0aGlzLm9wZW5GaWxlcz10aGlzLm9wZW5GaWxlcy5tYXAoU3Q9PlN0LnBhdGg9PT1hZT97Li4uU3QsbW9kaWZpZWQ6ITF9OlN0KSk6dnQ/LmFjdGlvbklkPT09ImNvbXBhcmUiJiZ0aGlzLm9wZW5EaWZmVmlldyhhZSxzZS5jb250ZW50LF9lKX1lbHNlIGF3YWl0IHRoaXMudXBkYXRlRmlsZUNvbnRlbnQoYWUsX2UsITApfWNhdGNoKF9lKXtjb25zb2xlLndhcm4oYEZhaWxlZCB0byBoYW5kbGUgZXh0ZXJuYWwgY2hhbmdlIGZvciAke2FlfTpgLF9lKX19YXN5bmMgdXBkYXRlRmlsZUNvbnRlbnQoYWUsc2UsX2Upe2lmKHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcCh2dD0+dnQucGF0aD09PWFlP3suLi52dCxjb250ZW50OnNlLG1vZGlmaWVkOiExfTp2dCksYWU9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKXtsZXQgdnQ9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKTt2dCYmYXdhaXQgdnQuc2V0Q29udGVudEV4dGVybmFsKHNlLF9lKX19b3BlbkRpZmZWaWV3KGFlLHNlLF9lKXt0aGlzLmRpZmZWaWV3Q29uZmlnPXtmaWxlUGF0aDphZSxvcmlnaW5hbENvbnRlbnQ6X2UsbW9kaWZpZWRDb250ZW50OnNlLGxhbmd1YWdlOnRoaXMuZ2V0TGFuZ3VhZ2VGcm9tUGF0aChhZSl9LHRoaXMuc2hvd0RpZmZWaWV3PSEwfWFzeW5jIGhhbmRsZURpZmZSZXNvbHZlZChhZSl7bGV0e2FjdGlvbjpzZSxjb250ZW50Ol9lfT1hZS5kZXRhaWwsdnQ9dGhpcy5kaWZmVmlld0NvbmZpZz8uZmlsZVBhdGg7aWYoIXZ0fHwhdGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl7dGhpcy5zaG93RGlmZlZpZXc9ITEsdGhpcy5kaWZmVmlld0NvbmZpZz1udWxsO3JldHVybn1pZihzZT09PSJ1c2UtbG9jYWwiKXtpZihhd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZSh2dCxfZSksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKFN0PT5TdC5wYXRoPT09dnQ/ey4uLlN0LGNvbnRlbnQ6X2UsbW9kaWZpZWQ6ITF9OlN0KSx2dD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpe2xldCBTdD10aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1vbmFjbyIpO1N0JiZhd2FpdCBTdC5zZXRDb250ZW50RXh0ZXJuYWwoX2UsITEpfX1lbHNlIHNlPT09InVzZS1kaXNrIiYmYXdhaXQgdGhpcy51cGRhdGVGaWxlQ29udGVudCh2dCxfZSwhMSk7dGhpcy5zaG93RGlmZlZpZXc9ITEsdGhpcy5kaWZmVmlld0NvbmZpZz1udWxsfWFzeW5jIGhhbmRsZUZpbGVTZWxlY3QoYWUpe2xldHtwYXRoOnNlLG5hbWU6X2V9PWFlLmRldGFpbDthd2FpdCB0aGlzLm9wZW5GaWxlKHNlLF9lKX1hc3luYyBvcGVuRmlsZShhZSxzZSl7aWYodGhpcy5vcGVuRmlsZXMuZmluZCh2dD0+dnQucGF0aD09PWFlKSl7dGhpcy5hY3RpdmVGaWxlUGF0aD1hZTtyZXR1cm59aWYodGhpcy5leGVjdXRpb25FbnZpcm9ubWVudCl0cnl7bGV0IHZ0PWF3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQucmVhZEZpbGUoYWUpO2lmKHRoaXMub3BlbkZpbGVzPVsuLi50aGlzLm9wZW5GaWxlcyx7cGF0aDphZSxuYW1lOnNlLGNvbnRlbnQ6dnQsbW9kaWZpZWQ6ITF9XSx0aGlzLmFjdGl2ZUZpbGVQYXRoPWFlLHRoaXMuc3RhcnRXYXRjaGluZ0ZpbGUoYWUpLCF0aGlzLmludGVsbGlTZW5zZUluaXRpYWxpemVkKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IG5ldyBQcm9taXNlKFlyPT5zZXRUaW1lb3V0KFlyLDUwMCkpLGF3YWl0IHRoaXMuaW5pdGlhbGl6ZUludGVsbGlTZW5zZSgpO2xldCBTdD10aGlzLmdldExhbmd1YWdlRnJvbVBhdGgoYWUpO3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmKFN0PT09InR5cGVzY3JpcHQifHxTdD09PSJqYXZhc2NyaXB0IikmJmF3YWl0IHRoaXMuaW50ZWxsaVNlbnNlTWFuYWdlci5wcm9jZXNzQ29udGVudENoYW5nZSh2dCl9fWNhdGNoKHZ0KXtjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gb3BlbiBmaWxlICR7YWV9OmAsdnQpfX1hY3RpdmF0ZUZpbGUoYWUpe3RoaXMuYWN0aXZlRmlsZVBhdGg9YWV9Y2xvc2VGaWxlKGFlLHNlKXthZS5zdG9wUHJvcGFnYXRpb24oKTtsZXQgX2U9dGhpcy5vcGVuRmlsZXMuZmluZEluZGV4KFN0PT5TdC5wYXRoPT09c2UpO2lmKF9lPT09LTEpcmV0dXJuO2xldCB2dD10aGlzLm9wZW5GaWxlc1tfZV07aWYoISh2dC5tb2RpZmllZCYmIWNvbmZpcm0oYCR7dnQubmFtZX0gaGFzIHVuc2F2ZWQgY2hhbmdlcy4gQ2xvc2UgYW55d2F5P2ApKSYmKHRoaXMuc3RvcFdhdGNoaW5nRmlsZShzZSksdGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMuZmlsdGVyKFN0PT5TdC5wYXRoIT09c2UpLHRoaXMuYWN0aXZlRmlsZVBhdGg9PT1zZSkpaWYodGhpcy5vcGVuRmlsZXMubGVuZ3RoPjApe2xldCBTdD1NYXRoLm1pbihfZSx0aGlzLm9wZW5GaWxlcy5sZW5ndGgtMSk7dGhpcy5hY3RpdmVGaWxlUGF0aD10aGlzLm9wZW5GaWxlc1tTdF0ucGF0aH1lbHNlIHRoaXMuYWN0aXZlRmlsZVBhdGg9IiJ9Z2V0QWN0aXZlRmlsZUNvbnRlbnQoKXtyZXR1cm4gdGhpcy5vcGVuRmlsZXMuZmluZChzZT0+c2UucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpPy5jb250ZW50fHwiIn1oYW5kbGVDb250ZW50Q2hhbmdlKGFlKXtsZXQgc2U9YWUuZGV0YWlsLF9lPXRoaXMub3BlbkZpbGVzLmZpbmRJbmRleChTdD0+U3QucGF0aD09PXRoaXMuYWN0aXZlRmlsZVBhdGgpO2lmKF9lPT09LTEpcmV0dXJuO2xldCB2dD10aGlzLm9wZW5GaWxlc1tfZV07aWYodnQuY29udGVudCE9PXNlKXt0aGlzLm9wZW5GaWxlcz1bLi4udGhpcy5vcGVuRmlsZXMuc2xpY2UoMCxfZSksey4uLnZ0LGNvbnRlbnQ6c2UsbW9kaWZpZWQ6ITB9LC4uLnRoaXMub3BlbkZpbGVzLnNsaWNlKF9lKzEpXTtsZXQgU3Q9dGhpcy5nZXRMYW5ndWFnZUZyb21QYXRoKHRoaXMuYWN0aXZlRmlsZVBhdGgpO3RoaXMuaW50ZWxsaVNlbnNlTWFuYWdlciYmKFN0PT09InR5cGVzY3JpcHQifHxTdD09PSJqYXZhc2NyaXB0IikmJih0aGlzLmludGVsbGlTZW5zZURlYm91bmNlVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuaW50ZWxsaVNlbnNlRGVib3VuY2VUaW1lb3V0KSx0aGlzLmludGVsbGlTZW5zZURlYm91bmNlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyPy5wcm9jZXNzQ29udGVudENoYW5nZShzZSl9LDUwMCkpfX1nZXRMYW5ndWFnZUZyb21QYXRoKGFlKXtsZXQgc2U9YWUuc3BsaXQoIi4iKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtyZXR1cm57dHM6InR5cGVzY3JpcHQiLHRzeDoidHlwZXNjcmlwdCIsanM6ImphdmFzY3JpcHQiLGpzeDoiamF2YXNjcmlwdCIsanNvbjoianNvbiIsaHRtbDoiaHRtbCIsY3NzOiJjc3MiLHNjc3M6InNjc3MiLGxlc3M6Imxlc3MiLG1kOiJtYXJrZG93biIseWFtbDoieWFtbCIseW1sOiJ5YW1sIix4bWw6InhtbCIsc3FsOiJzcWwiLHB5OiJweXRob24iLHNoOiJzaGVsbCIsYmFzaDoic2hlbGwifVtzZXx8IiJdfHwicGxhaW50ZXh0In10b2dnbGVUZXJtaW5hbCgpe3RoaXMuaXNUZXJtaW5hbENvbGxhcHNlZD0hdGhpcy5pc1Rlcm1pbmFsQ29sbGFwc2VkfWFzeW5jIHNhdmVBY3RpdmVGaWxlKCl7bGV0IGFlPXRoaXMub3BlbkZpbGVzLmZpbmQoc2U9PnNlLnBhdGg9PT10aGlzLmFjdGl2ZUZpbGVQYXRoKTtpZighKCFhZXx8IXRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpKXRyeXthd2FpdCB0aGlzLmV4ZWN1dGlvbkVudmlyb25tZW50LndyaXRlRmlsZShhZS5wYXRoLGFlLmNvbnRlbnQpLHRoaXMub3BlbkZpbGVzPXRoaXMub3BlbkZpbGVzLm1hcChzZT0+c2UucGF0aD09PWFlLnBhdGg/ey4uLnNlLG1vZGlmaWVkOiExfTpzZSksdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiZ0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuYWRkRmlsZU1vZGVsKGFlLnBhdGgsYWUuY29udGVudCl9Y2F0Y2goc2Upe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBzYXZlIGZpbGU6IixzZSl9fWFzeW5jIHNhdmVBbGxGaWxlcygpe2lmKHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQpe2ZvcihsZXQgYWUgb2YgdGhpcy5vcGVuRmlsZXMuZmlsdGVyKHNlPT5zZS5tb2RpZmllZCkpdHJ5e2F3YWl0IHRoaXMuZXhlY3V0aW9uRW52aXJvbm1lbnQud3JpdGVGaWxlKGFlLnBhdGgsYWUuY29udGVudCksdGhpcy5pbnRlbGxpU2Vuc2VNYW5hZ2VyJiZ0aGlzLmludGVsbGlTZW5zZU1hbmFnZXIuYWRkRmlsZU1vZGVsKGFlLnBhdGgsYWUuY29udGVudCl9Y2F0Y2goc2Upe2NvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBzYXZlICR7YWUucGF0aH06YCxzZSl9dGhpcy5vcGVuRmlsZXM9dGhpcy5vcGVuRmlsZXMubWFwKGFlPT4oey4uLmFlLG1vZGlmaWVkOiExfSkpfX1hc3luYyBzaG93RWRpdG9yTWVudShhZSl7YWUuc3RvcFByb3BhZ2F0aW9uKCk7bGV0IHNlPVt7bmFtZTp0aGlzLmF1dG9TYXZlPyJcdTI3MTMgQXV0byBTYXZlIjoiQXV0byBTYXZlIixpY29uTmFtZToibHVjaWRlOnNhdmUiLGFjdGlvbjphc3luYygpPT50aGlzLnRvZ2dsZUF1dG9TYXZlKCl9LHtkaXZpZGVyOiEwfSx7bmFtZToiU2F2ZSIsaWNvbk5hbWU6Imx1Y2lkZTpzYXZlIixhY3Rpb246YXN5bmMoKT0+dGhpcy5zYXZlQWN0aXZlRmlsZSgpfSx7bmFtZToiU2F2ZSBBbGwiLGljb25OYW1lOiJsdWNpZGU6c2F2ZSIsYWN0aW9uOmFzeW5jKCk9PnRoaXMuc2F2ZUFsbEZpbGVzKCl9XTthd2FpdCBTci5vcGVuQ29udGV4dE1lbnVXaXRoT3B0aW9ucyhhZSxzZSl9dG9nZ2xlQXV0b1NhdmUoKXt0aGlzLmF1dG9TYXZlPSF0aGlzLmF1dG9TYXZlLHRoaXMuYXV0b1NhdmU/dGhpcy5hdXRvU2F2ZUludGVydmFsPXNldEludGVydmFsKCgpPT57dGhpcy5vcGVuRmlsZXMuc29tZShzZT0+c2UubW9kaWZpZWQpJiZ0aGlzLnNhdmVBbGxGaWxlcygpfSwyZTMpOnRoaXMuYXV0b1NhdmVJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvU2F2ZUludGVydmFsKSx0aGlzLmF1dG9TYXZlSW50ZXJ2YWw9bnVsbCl9Z2V0RXJyb3JDb3VudCgpe3JldHVybiB0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmZpbHRlcihhZT0+YWUuc2V2ZXJpdHk9PT04KS5sZW5ndGh9cmVuZGVyUHJvYmxlbXNQYW5lbCgpe3JldHVybiB0aGlzLmRpYWdub3N0aWNNYXJrZXJzLmxlbmd0aD09PTA/Q2AKICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtcy1lbXB0eSI+CiAgICAgICAgICA8ZGVlcy1pY29uIC5pY29uPSR7Imx1Y2lkZTpjaGVja0NpcmNsZSJ9IGljb25TaXplPSIyNCI+PC9kZWVzLWljb24+CiAgICAgICAgICA8c3Bhbj5ObyBwcm9ibGVtcyBkZXRlY3RlZDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgYDpDYAogICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtcy1saXN0Ij4KICAgICAgICAke3RoaXMuZGlhZ25vc3RpY01hcmtlcnMubWFwKGFlPT5DYAogICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbS1pdGVtIiBAY2xpY2s9JHsoKT0+dGhpcy5uYXZpZ2F0ZVRvUHJvYmxlbShhZSl9PgogICAgICAgICAgICA8ZGVlcy1pY29uCiAgICAgICAgICAgICAgY2xhc3M9InByb2JsZW0taWNvbiAke2FlLnNldmVyaXR5PT09OD8iZXJyb3IiOiJ3YXJuaW5nIn0iCiAgICAgICAgICAgICAgLmljb249JHthZS5zZXZlcml0eT09PTg/Imx1Y2lkZTpjaXJjbGVYIjoibHVjaWRlOnRyaWFuZ2xlQWxlcnQifQogICAgICAgICAgICAgIGljb25TaXplPSIxNCIKICAgICAgICAgICAgPjwvZGVlcy1pY29uPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ibGVtLWRldGFpbHMiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tbWVzc2FnZSI+JHthZS5tZXNzYWdlfTwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2JsZW0tbG9jYXRpb24iPgogICAgICAgICAgICAgICAgJHthZS5yZXNvdXJjZS5wYXRoLnNwbGl0KCIvIikucG9wKCl9ICgke2FlLnN0YXJ0TGluZU51bWJlcn0sICR7YWUuc3RhcnRDb2x1bW59KQogICAgICAgICAgICAgICAgJHthZS5zb3VyY2U/YFske2FlLnNvdXJjZX1dYDoiIn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICBgKX0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIG5hdmlnYXRlVG9Qcm9ibGVtKGFlKXtsZXQgc2U9YWUucmVzb3VyY2UucGF0aCxfZT1zZS5zcGxpdCgiLyIpLnBvcCgpfHwiIjt0aGlzLm9wZW5GaWxlcy5maW5kKFlyPT5Zci5wYXRoPT09c2UpP3RoaXMuYWN0aXZlRmlsZVBhdGg9c2U6YXdhaXQgdGhpcy5vcGVuRmlsZShzZSxfZSksYXdhaXQgdGhpcy51cGRhdGVDb21wbGV0ZTtsZXQgU3Q9dGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKTtpZihTdCl7bGV0IFlyPWF3YWl0IFN0LmVkaXRvckRlZmVycmVkLnByb21pc2U7WXIucmV2ZWFsTGluZUluQ2VudGVyKGFlLnN0YXJ0TGluZU51bWJlciksWXIuc2V0UG9zaXRpb24oe2xpbmVOdW1iZXI6YWUuc3RhcnRMaW5lTnVtYmVyLGNvbHVtbjphZS5zdGFydENvbHVtbn0pLFlyLmZvY3VzKCl9fXNldHVwTWFya2VyTGlzdGVuZXIoKXtsZXQgYWU9d2luZG93Lm1vbmFjbzthZSYmKGFlLmVkaXRvci5vbkRpZENoYW5nZU1hcmtlcnMoc2U9Pnt0aGlzLnVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCl9KSx0aGlzLnVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCkpfXVwZGF0ZURpYWdub3N0aWNNYXJrZXJzKCl7bGV0IGFlPXdpbmRvdy5tb25hY287aWYoIWFlKXJldHVybjtsZXQgc2U9YWUuZWRpdG9yLmdldE1vZGVsTWFya2Vycyh7fSk7dGhpcy5kaWFnbm9zdGljTWFya2Vycz1zZS5tYXAoX2U9Pih7bWVzc2FnZTpfZS5tZXNzYWdlLHNldmVyaXR5Ol9lLnNldmVyaXR5LHN0YXJ0TGluZU51bWJlcjpfZS5zdGFydExpbmVOdW1iZXIsc3RhcnRDb2x1bW46X2Uuc3RhcnRDb2x1bW4sZW5kTGluZU51bWJlcjpfZS5lbmRMaW5lTnVtYmVyLGVuZENvbHVtbjpfZS5lbmRDb2x1bW4sc291cmNlOl9lLnNvdXJjZSxyZXNvdXJjZTp7cGF0aDpfZS5yZXNvdXJjZS5wYXRofX0pKX1hc3luYyBoYW5kbGVSdW5Qcm9jZXNzKGFlKXtsZXQgc2U9YWUuZGV0YWlsLF9lPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtdGVybWluYWwiKTtpZighX2Upe2NvbnNvbGUud2FybigiVGVybWluYWwgY29tcG9uZW50IG5vdCBmb3VuZCIpO3JldHVybn10aGlzLmlzVGVybWluYWxDb2xsYXBzZWQmJih0aGlzLmlzVGVybWluYWxDb2xsYXBzZWQ9ITEpLHRoaXMuYWN0aXZlQm90dG9tUGFuZWw9InRlcm1pbmFsIixhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLGF3YWl0IF9lLmNyZWF0ZVByb2Nlc3NUYWIoe3R5cGU6c2UudHlwZSxsYWJlbDpzZS5sYWJlbCxjb21tYW5kOnNlLmNvbW1hbmQsYXJnczpzZS5hcmdzLG1ldGFkYXRhOnNlLm1ldGFkYXRhLHN3aXRjaFRvVGFiOiEwfSl9c2V0RmlsZVRyZWVXaWR0aChhZSl7bGV0IF9lPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgqLjU7dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aD1NYXRoLm1heCgxNTAsTWF0aC5taW4oX2UsYWUpKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX1zZXRUZXJtaW5hbEhlaWdodChhZSl7bGV0IF9lPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0Ki43O3RoaXMuY3VycmVudFRlcm1pbmFsSGVpZ2h0PU1hdGgubWF4KDEwMCxNYXRoLm1pbihfZSxhZSkpLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfXJlc2V0TGF5b3V0KCl7dGhpcy5jdXJyZW50RmlsZVRyZWVXaWR0aD10aGlzLmZpbGVUcmVlV2lkdGgsdGhpcy5jdXJyZW50VGVybWluYWxIZWlnaHQ9dGhpcy50ZXJtaW5hbEhlaWdodCx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInJlc2l6ZSIpKX1zdGF0aWN7QXQoaSxyKX19O3JldHVybiBXdD1pfSkoKX0pO3ZhciBYZHI9cCgoKT0+e1pkcigpO281ZSgpfSk7dmFyIFFkcj1wKCgpPT57TmQoKX0pO3ZhciBKZHI9cCgoKT0+e01GKCl9KTt2YXIgS2RyPXAoKCk9Pnt9KTt2YXIgZTVyPXAoKCk9PntXYigpO0tkcigpO1pkZSgpfSk7dmFyIHQ1cj1wKCgpPT57YTVlKCl9KTt2YXIgUWIsRWMscHZhLHI1cixpNXI9cCgoKT0+e3hlKCk7SmUoKTtOZCgpO1FiPWZ1bmN0aW9uKGUsdCxyLGksYSxuKXtmdW5jdGlvbiBvKHkpe2lmKHkhPT12b2lkIDAmJnR5cGVvZiB5IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uIGV4cGVjdGVkIik7cmV0dXJuIHl9Zm9yKHZhciBzPWkua2luZCxsPXM9PT0iZ2V0dGVyIj8iZ2V0IjpzPT09InNldHRlciI/InNldCI6InZhbHVlIixjPSF0JiZlP2kuc3RhdGljP2U6ZS5wcm90b3R5cGU6bnVsbCx1PXR8fChjP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYyxpLm5hbWUpOnt9KSxkLGg9ITEsZj1yLmxlbmd0aC0xO2Y+PTA7Zi0tKXt2YXIgeD17fTtmb3IodmFyIHYgaW4gaSl4W3ZdPXY9PT0iYWNjZXNzIj97fTppW3ZdO2Zvcih2YXIgdiBpbiBpLmFjY2Vzcyl4LmFjY2Vzc1t2XT1pLmFjY2Vzc1t2XTt4LmFkZEluaXRpYWxpemVyPWZ1bmN0aW9uKHkpe2lmKGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkIik7bi5wdXNoKG8oeXx8bnVsbCkpfTt2YXIgYj0oMCxyW2ZdKShzPT09ImFjY2Vzc29yIj97Z2V0OnUuZ2V0LHNldDp1LnNldH06dVtsXSx4KTtpZihzPT09ImFjY2Vzc29yIil7aWYoYj09PXZvaWQgMCljb250aW51ZTtpZihiPT09bnVsbHx8dHlwZW9mIGIhPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBleHBlY3RlZCIpOyhkPW8oYi5nZXQpKSYmKHUuZ2V0PWQpLChkPW8oYi5zZXQpKSYmKHUuc2V0PWQpLChkPW8oYi5pbml0KSkmJmEudW5zaGlmdChkKX1lbHNlKGQ9byhiKSkmJihzPT09ImZpZWxkIj9hLnVuc2hpZnQoZCk6dVtsXT1kKX1jJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxpLm5hbWUsdSksaD0hMH0sRWM9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjIsYT0wO2E8dC5sZW5ndGg7YSsrKXI9aT90W2FdLmNhbGwoZSxyKTp0W2FdLmNhbGwoZSk7cmV0dXJuIGk/cjp2b2lkIDB9LHB2YT1rdC5wbHVnaW5zLnNtYXJ0cHJvbWlzZS5kZWZlcigpLHI1cj0oKCk9PntsZXQgZT1beWUoImRlZXMtd29ya3NwYWNlLW1hcmtkb3duIildLHQscj1bXSxpLGE9emUsbixvPVtdLHM9W10sbCxjPVtdLHU9W10sZCxoPVtdLGY9W10seCx2PVtdLGI9W107dmFyIHk9Y2xhc3MgZXh0ZW5kcyBhe3N0YXRpY3tpPXRoaXN9c3RhdGlje2xldCB3PXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5tZXRhZGF0YT9PYmplY3QuY3JlYXRlKGFbU3ltYm9sLm1ldGFkYXRhXT8/bnVsbCk6dm9pZCAwO249W2ooe3R5cGU6TnVtYmVyfSldLGw9W2ooe3R5cGU6TnVtYmVyfSldLGQ9W2ZlKCldLHg9W2ZlKCldLFFiKHRoaXMsbnVsbCxuLHtraW5kOiJhY2Nlc3NvciIsbmFtZToic3BsaXRSYXRpbyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+InNwbGl0UmF0aW8iaW4gayxnZXQ6az0+ay5zcGxpdFJhdGlvLHNldDooayxPKT0+e2suc3BsaXRSYXRpbz1PfX0sbWV0YWRhdGE6d30sbyxzKSxRYih0aGlzLG51bGwsbCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6Im1pblBhbmVsU2l6ZSIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+Im1pblBhbmVsU2l6ZSJpbiBrLGdldDprPT5rLm1pblBhbmVsU2l6ZSxzZXQ6KGssTyk9PntrLm1pblBhbmVsU2l6ZT1PfX0sbWV0YWRhdGE6d30sYyx1KSxRYih0aGlzLG51bGwsZCx7a2luZDoiYWNjZXNzb3IiLG5hbWU6ImN1cnJlbnRTcGxpdFJhdGlvIixzdGF0aWM6ITEscHJpdmF0ZTohMSxhY2Nlc3M6e2hhczprPT4iY3VycmVudFNwbGl0UmF0aW8iaW4gayxnZXQ6az0+ay5jdXJyZW50U3BsaXRSYXRpbyxzZXQ6KGssTyk9PntrLmN1cnJlbnRTcGxpdFJhdGlvPU99fSxtZXRhZGF0YTp3fSxoLGYpLFFiKHRoaXMsbnVsbCx4LHtraW5kOiJhY2Nlc3NvciIsbmFtZToiaXNEcmFnZ2luZyIsc3RhdGljOiExLHByaXZhdGU6ITEsYWNjZXNzOntoYXM6az0+ImlzRHJhZ2dpbmciaW4gayxnZXQ6az0+ay5pc0RyYWdnaW5nLHNldDooayxPKT0+e2suaXNEcmFnZ2luZz1PfX0sbWV0YWRhdGE6d30sdixiKSxRYihudWxsLHQ9e3ZhbHVlOml9LGUse2tpbmQ6ImNsYXNzIixuYW1lOmkubmFtZSxtZXRhZGF0YTp3fSxudWxsLHIpLHk9aT10LnZhbHVlLHcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFN5bWJvbC5tZXRhZGF0YSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6d30pfXN0YXRpYyBkZW1vPSgpPT5DYDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bj48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3duPmA7c3RhdGljIGRlbW9Hcm91cHM9WyJXb3Jrc3BhY2UiXTtzdGF0aWMgc3R5bGVzPVtEZSxtLmRlZmF1bHRTdHlsZXMsb2VgCiAgICAgIDpob3N0IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICB9CgogICAgICAuc3BsaXRDb250YWluZXIgewogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgICB9CgogICAgICAuZWRpdG9yQ29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgfQoKICAgICAgLnJlc2l6ZUhhbmRsZSB7CiAgICAgICAgd2lkdGg6IDZweDsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNlNWU3ZWIiLCIjMzAzNjNkIil9OwogICAgICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyLAogICAgICAucmVzaXplSGFuZGxlLmRyYWdnaW5nIHsKICAgICAgICBiYWNrZ3JvdW5kOiAke20uYmRUaGVtZSgiIzNiODJmNiIsIiM1OGE2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5yZXNpemVIYW5kbGU6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgbGVmdDogNTAlOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgICAgIHdpZHRoOiAycHg7CiAgICAgICAgaGVpZ2h0OiAzMnB4OwogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjOWNhM2FmIiwiIzZlNzY4MSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICAgICAgb3BhY2l0eTogMC42OwogICAgICB9CgogICAgICAucmVzaXplSGFuZGxlOmhvdmVyOjphZnRlciwKICAgICAgLnJlc2l6ZUhhbmRsZS5kcmFnZ2luZzo6YWZ0ZXIgewogICAgICAgIGJhY2tncm91bmQ6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiI2ZmZmZmZiIpfTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICB9CgogICAgICAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgIG1pbi13aWR0aDogMTAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogJHttLmJkVGhlbWUoIiNmZmZmZmYiLCIjMGQxMTE3Iil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzI0MjkyZiIsIiNlNmVkZjMiKX07CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KCiAgICAgIC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gd2hpbGUgZHJhZ2dpbmcgKi8KICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIHsKICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgfQoKICAgICAgLnNwbGl0Q29udGFpbmVyLmRyYWdnaW5nIC5lZGl0b3JDb250YWluZXIsCiAgICAgIC5zcGxpdENvbnRhaW5lci5kcmFnZ2luZyAub3V0bGV0Q29udGFpbmVyIHsKICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgfQogICAgYF07I2U9RWModGhpcyxvLDUwKTtnZXQgc3BsaXRSYXRpbygpe3JldHVybiB0aGlzLiNlfXNldCBzcGxpdFJhdGlvKHcpe3RoaXMuI2U9d30jdD0oRWModGhpcyxzKSxFYyh0aGlzLGMsMTApKTtnZXQgbWluUGFuZWxTaXplKCl7cmV0dXJuIHRoaXMuI3R9c2V0IG1pblBhbmVsU2l6ZSh3KXt0aGlzLiN0PXd9I3I9KEVjKHRoaXMsdSksRWModGhpcyxoLDUwKSk7Z2V0IGN1cnJlbnRTcGxpdFJhdGlvKCl7cmV0dXJuIHRoaXMuI3J9c2V0IGN1cnJlbnRTcGxpdFJhdGlvKHcpe3RoaXMuI3I9d30jaT0oRWModGhpcyxmKSxFYyh0aGlzLHYsITEpKTtnZXQgaXNEcmFnZ2luZygpe3JldHVybiB0aGlzLiNpfXNldCBpc0RyYWdnaW5nKHcpe3RoaXMuI2k9d31yZXNpemVIYW5kbGVFbGVtZW50PUVjKHRoaXMsYik7Y29udGFpbmVyRWxlbWVudDtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ic3BsaXRDb250YWluZXIgJHt0aGlzLmlzRHJhZ2dpbmc/ImRyYWdnaW5nIjoiIn0iPgogICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvckNvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAke3RoaXMuY3VycmVudFNwbGl0UmF0aW99JSI+CiAgICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbW9uYWNvCiAgICAgICAgICAgIC5sYW5ndWFnZT0keyJtYXJrZG93biJ9CiAgICAgICAgICAgIC5jb250ZW50PSR7YCMgYSB0ZXN0IGNvbnRlbnQKClRoaXMgaXMgdGVzdCBjb250ZW50IHRoYXQgaXMgb2YgbG9uZ2VyIGZvcm0gYW4gaG9wZWZ1bGx5IHN0YXJ0cyB0byB3cmFwIHdoZW4gSSBuZWVkIGl0LiBBbmQgeWVzLCBpdCBkb2VzIHBlcmZlY3RseS4gbmljZS4KClRlc3QgfCBIZWxsbwotLS0gfCAtLS0KWWVhaCB8IFNvIGdvb2QKClRoaXMgaXMgcmVhbCBhc3NldCBJIHRoaW5rLiBXaHkgd291bGQgd2Ugd2FudCB0byBsZWF2ZSB0aGF0IG9uIHRoZSB0YWJsZT8gQ2FuIHlvdSB0ZWxsIG15IHRoYXQ/CgpXaHkgYXJlIHdlIGhlcmU/CgpEbyB5b3Uga25vdz8KCj4gbm90ZToKVGhlcmUgaXMgc29tZXRoaW5nIGdvaW5nIG9uLgoKXGBcYFxgdHlwZXNjcmlwdApjb25zdCBoZWxsbyA9ICd5ZXMnClxgXGBcYApgfQogICAgICAgICAgICB3b3JkV3JhcD0iYm91bmRlZCIKICAgICAgICAgID48L2RlZXMtd29ya3NwYWNlLW1vbmFjbz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2CiAgICAgICAgICBjbGFzcz0icmVzaXplSGFuZGxlICR7dGhpcy5pc0RyYWdnaW5nPyJkcmFnZ2luZyI6IiJ9IgogICAgICAgICAgQG1vdXNlZG93bj0ke3RoaXMuaGFuZGxlTW91c2VEb3dufQogICAgICAgID48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJvdXRsZXRDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJHsxMDAtdGhpcy5jdXJyZW50U3BsaXRSYXRpb30lIj4KICAgICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKHcpe2F3YWl0IHN1cGVyLmZpcnN0VXBkYXRlZCh3KSx0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpbyx0aGlzLmNvbnRhaW5lckVsZW1lbnQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5zcGxpdENvbnRhaW5lciIpLHRoaXMucmVzaXplSGFuZGxlRWxlbWVudD10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLnJlc2l6ZUhhbmRsZSIpO2xldCBrPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tb25hY28iKSxPPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldCIpLE09YXdhaXQgbmV3IGt0LnBsdWdpbnMuc21hcnRtYXJrZG93bi5TbWFydE1hcmtkb3duKCkuZ2V0TWRQYXJzZWRSZXN1bHRGcm9tTWFya2Rvd24oImxvYWRpbmcuLi4iKTtrLmNvbnRlbnRTdWJqZWN0LnN1YnNjcmliZShhc3luYyBGPT57YXdhaXQgTS51cGRhdGVGcm9tTWFya2Rvd25TdHJpbmcoRik7bGV0IEQ9TS5odG1sO08udXBkYXRlSHRtbFRleHQoRCl9KX1oYW5kbGVNb3VzZURvd249dz0+e3cucHJldmVudERlZmF1bHQoKSx0aGlzLmlzRHJhZ2dpbmc9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKX07aGFuZGxlTW91c2VNb3ZlPXc9PntpZighdGhpcy5pc0RyYWdnaW5nfHwhdGhpcy5jb250YWluZXJFbGVtZW50KXJldHVybjtsZXQgaz10aGlzLmNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTz1rLndpZHRoLE09KHcuY2xpZW50WC1rLmxlZnQpL08qMTAwO009TWF0aC5tYXgodGhpcy5taW5QYW5lbFNpemUsTWF0aC5taW4oMTAwLXRoaXMubWluUGFuZWxTaXplLE0pKSx0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPU19O2hhbmRsZU1vdXNlVXA9KCk9Pnt0aGlzLmlzRHJhZ2dpbmc9ITEsZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKSx0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbW9uYWNvIikmJndpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicmVzaXplIikpfTthc3luYyBkaXNjb25uZWN0ZWRDYWxsYmFjaygpe2F3YWl0IHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLmhhbmRsZU1vdXNlTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5oYW5kbGVNb3VzZVVwKX1zZXRTcGxpdFJhdGlvKHcpe3RoaXMuY3VycmVudFNwbGl0UmF0aW89TWF0aC5tYXgodGhpcy5taW5QYW5lbFNpemUsTWF0aC5taW4oMTAwLXRoaXMubWluUGFuZWxTaXplLHcpKX1yZXNldFNwbGl0UmF0aW8oKXt0aGlzLmN1cnJlbnRTcGxpdFJhdGlvPXRoaXMuc3BsaXRSYXRpb31zdGF0aWN7RWMoaSxyKX19O3JldHVybiB5PWl9KSgpfSk7dmFyIGE1cj1wKCgpPT57aTVyKCl9KTt2YXIgbjVyLG81cj1wKCgpPT57eGUoKTtwMSgpO09pKCk7bjVyPSgpPT5DYAogIDxkZWVzLWRlbW93cmFwcGVyPgogICAgPHN0eWxlPgogICAgICAke29lYAogICAgICAgIC5kZW1vLWNvbnRhaW5lciB7CiAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGdhcDogMjRweDsKICAgICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgICBtYXgtd2lkdGg6IDkwMHB4OwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICBgfQogICAgPC9zdHlsZT4KCiAgICA8ZGl2IGNsYXNzPSJkZW1vLWNvbnRhaW5lciI+CiAgICAgIDwhLS0gRGVtbyAxOiBIZWFkaW5ncyAtLT4KICAgICAgPGRlZXMtcGFuZWwKICAgICAgICAudGl0bGU9JHsiSGVhZGluZ3MifQogICAgICAgIC5zdWJ0aXRsZT0keyJBbGwgaGVhZGluZyBsZXZlbHMgZnJvbSBIMSB0byBINiJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2F3YWl0IGUucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDE+SGVhZGluZyBMZXZlbCAxPC9oMT4KICAgICAgICAgICAgPGgyPkhlYWRpbmcgTGV2ZWwgMjwvaDI+CiAgICAgICAgICAgIDxoMz5IZWFkaW5nIExldmVsIDM8L2gzPgogICAgICAgICAgICA8aDQ+SGVhZGluZyBMZXZlbCA0PC9oND4KICAgICAgICAgICAgPGg1PkhlYWRpbmcgTGV2ZWwgNTwvaDU+CiAgICAgICAgICAgIDxoNj5IZWFkaW5nIExldmVsIDY8L2g2PgogICAgICAgICAgYCl9fQogICAgICA+CiAgICAgICAgPGRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PjwvZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+CiAgICAgIDwvZGVlcy1wYW5lbD4KCiAgICAgIDwhLS0gRGVtbyAyOiBUZXh0IEZvcm1hdHRpbmcgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IlRleHQgRm9ybWF0dGluZyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IkJvbGQsIGl0YWxpYywgbGlua3MsIGNvZGUsIGFuZCBrZXlib2FyZCBpbnB1dCJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2F3YWl0IGUucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8cD5UaGlzIGlzIGEgcGFyYWdyYXBoIHdpdGggPHN0cm9uZz5ib2xkIHRleHQ8L3N0cm9uZz4gYW5kIDxlbT5pdGFsaWMgdGV4dDwvZW0+LjwvcD4KICAgICAgICAgICAgPHA+WW91IGNhbiBhbHNvIHVzZSA8c3Ryb25nPjxlbT5ib2xkIGl0YWxpYzwvZW0+PC9zdHJvbmc+IGZvciBlbXBoYXNpcy48L3A+CiAgICAgICAgICAgIDxwPkhlcmUncyBhIDxhIGhyZWY9IiMiPmxpbmsgZXhhbXBsZTwvYT4gYW5kIHNvbWUgPGNvZGU+aW5saW5lIGNvZGU8L2NvZGU+LjwvcD4KICAgICAgICAgICAgPHA+UHJlc3MgPGtiZD5DdHJsPC9rYmQ+ICsgPGtiZD5DPC9rYmQ+IHRvIGNvcHkgdGV4dC48L3A+CiAgICAgICAgICAgIDxocj4KICAgICAgICAgICAgPHA+QWJvdmUgaXMgYSBob3Jpem9udGFsIHJ1bGUgc2VwYXJhdG9yLjwvcD4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gMzogTGlzdHMgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7Ikxpc3RzIn0KICAgICAgICAuc3VidGl0bGU9JHsiT3JkZXJlZCwgdW5vcmRlcmVkLCBhbmQgdGFzayBsaXN0cyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2F3YWl0IGUucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8aDM+VW5vcmRlcmVkIExpc3Q8L2gzPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgPGxpPkZpcnN0IGl0ZW08L2xpPgogICAgICAgICAgICAgIDxsaT5TZWNvbmQgaXRlbQogICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICA8bGk+TmVzdGVkIGl0ZW0gMTwvbGk+CiAgICAgICAgICAgICAgICAgIDxsaT5OZXN0ZWQgaXRlbSAyPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGk+VGhpcmQgaXRlbTwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICA8aDM+T3JkZXJlZCBMaXN0PC9oMz4KICAgICAgICAgICAgPG9sPgogICAgICAgICAgICAgIDxsaT5TdGVwIG9uZTwvbGk+CiAgICAgICAgICAgICAgPGxpPlN0ZXAgdHdvPC9saT4KICAgICAgICAgICAgICA8bGk+U3RlcCB0aHJlZTwvbGk+CiAgICAgICAgICAgIDwvb2w+CgogICAgICAgICAgICA8aDM+VGFzayBMaXN0PC9oMz4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0idGFzay1saXN0LWl0ZW0iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2hlY2tlZCBkaXNhYmxlZD4gQ29tcGxldGVkIHRhc2s8L2xpPgogICAgICAgICAgICAgIDxsaSBjbGFzcz0idGFzay1saXN0LWl0ZW0iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGlzYWJsZWQ+IFBlbmRpbmcgdGFzazwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJ0YXNrLWxpc3QtaXRlbSI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZD4gQW5vdGhlciB0YXNrPC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNDogQ29kZSBCbG9ja3MgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkNvZGUgQmxvY2tzIn0KICAgICAgICAuc3VidGl0bGU9JHsiU3ludGF4IGhpZ2hsaWdodGVkIGNvZGUgZXhhbXBsZXMifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9Pnthd2FpdCBlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPHA+SW5saW5lIGNvZGU6IDxjb2RlPmNvbnN0IGdyZWV0aW5nID0gIkhlbGxvLCBXb3JsZCEiOzwvY29kZT48L3A+CgogICAgICAgICAgICA8aDM+VHlwZVNjcmlwdCBFeGFtcGxlPC9oMz4KICAgICAgICAgICAgPHByZT48Y29kZT48c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5pbXBvcnQ8L3NwYW4+IHsgaHRtbCwgY3NzIH0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+ZnJvbTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4nQGRlc2lnbi5lc3RhdGUvZGVlcy1lbGVtZW50Jzwvc3Bhbj47Cgo8c3BhbiBjbGFzcz0iaGxqcy1rZXl3b3JkIj5pbnRlcmZhY2U8L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXRpdGxlIj5JVXNlcjwvc3Bhbj4gewogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPm5hbWU8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+c3RyaW5nPC9zcGFuPjsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj5lbWFpbDwvc3Bhbj46IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5zdHJpbmc8L3NwYW4+OwogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPmFnZTwvc3Bhbj4/OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+bnVtYmVyPC9zcGFuPjsKfQoKPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJobGpzLXRpdGxlIj5nZXRVc2VyPC9zcGFuPiA9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmFzeW5jPC9zcGFuPiAoPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+aWQ8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1idWlsdF9pbiI+c3RyaW5nPC9zcGFuPik6IDxzcGFuIGNsYXNzPSJobGpzLWJ1aWx0X2luIj5Qcm9taXNlPC9zcGFuPiZsdDtJVXNlciZndDsgPSZndDsgewogIDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmNvbnN0PC9zcGFuPiByZXNwb25zZSA9IDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmF3YWl0PC9zcGFuPiBmZXRjaChcYC9hcGkvdXNlcnMvXCR7aWR9XGApOwogIDxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPnJldHVybjwvc3Bhbj4gcmVzcG9uc2UuanNvbigpOwp9OzwvY29kZT48L3ByZT4KCiAgICAgICAgICAgIDxoMz5KU09OIEV4YW1wbGU8L2gzPgogICAgICAgICAgICA8cHJlPjxjb2RlPnsKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4ibmFtZSI8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPiJkZWVzLWNhdGFsb2ciPC9zcGFuPiwKICA8c3BhbiBjbGFzcz0iaGxqcy1hdHRyIj4idmVyc2lvbiI8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPiIzLjAuMCI8L3NwYW4+LAogIDxzcGFuIGNsYXNzPSJobGpzLWF0dHIiPiJkZXBlbmRlbmNpZXMiPC9zcGFuPjogewogICAgPHNwYW4gY2xhc3M9ImhsanMtYXR0ciI+IkBkZXNpZ24uZXN0YXRlL2RlZXMtZWxlbWVudCI8L3NwYW4+OiA8c3BhbiBjbGFzcz0iaGxqcy1zdHJpbmciPiJeMi4wLjAiPC9zcGFuPgogIH0KfTwvY29kZT48L3ByZT4KICAgICAgICAgIGApfX0KICAgICAgPgogICAgICAgIDxkZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD48L2RlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0PgogICAgICA8L2RlZXMtcGFuZWw+CgogICAgICA8IS0tIERlbW8gNTogVGFibGVzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJUYWJsZXMifQogICAgICAgIC5zdWJ0aXRsZT0keyJTdHlsZWQgdGFibGVzIHdpdGggYWx0ZXJuYXRpbmcgcm93cyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2F3YWl0IGUucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8dGFibGU+CiAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGg+RmVhdHVyZTwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5TdGF0dXM8L3RoPgogICAgICAgICAgICAgICAgICA8dGg+UHJpb3JpdHk8L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkRhcmsgbW9kZSBzdXBwb3J0PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkNvbXBsZXRlZDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5IaWdoPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5SZXNwb25zaXZlIGRlc2lnbjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5JbiBQcm9ncmVzczwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5NZWRpdW08L3RkPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRkPkFjY2Vzc2liaWxpdHk8L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+UGxhbm5lZDwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5IaWdoPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD5Eb2N1bWVudGF0aW9uPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkluIFByb2dyZXNzPC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPkxvdzwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDY6IEJsb2NrcXVvdGVzICYgQWxlcnRzIC0tPgogICAgICA8ZGVlcy1wYW5lbAogICAgICAgIC50aXRsZT0keyJCbG9ja3F1b3RlcyAmIEFsZXJ0cyJ9CiAgICAgICAgLnN1YnRpdGxlPSR7IlF1b3RlcyBhbmQgR2l0SHViLXN0eWxlIGFsZXJ0cyJ9CiAgICAgICAgLnJ1bkFmdGVyUmVuZGVyPSR7YXN5bmMgZT0+e2F3YWl0IGUucXVlcnlTZWxlY3RvcigiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKT8udXBkYXRlSHRtbFRleHQoYAogICAgICAgICAgICA8YmxvY2txdW90ZT4KICAgICAgICAgICAgICA8cD5UaGlzIGlzIGEgc3RhbmRhcmQgYmxvY2txdW90ZS4gSXQncyBncmVhdCBmb3IgaGlnaGxpZ2h0aW5nIGltcG9ydGFudCBpbmZvcm1hdGlvbiBvciBxdW90ZXMgZnJvbSBvdGhlciBzb3VyY2VzLjwvcD4KICAgICAgICAgICAgPC9ibG9ja3F1b3RlPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtbm90ZSI+CiAgICAgICAgICAgICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGlzIGFuIGluZm9ybWF0aW9uYWwgbm90ZSB0byBkcmF3IGF0dGVudGlvbiB0byBpbXBvcnRhbnQgZGV0YWlscy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWFya2Rvd24tYWxlcnQgbWFya2Rvd24tYWxlcnQtdGlwIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPlRpcDo8L3N0cm9uZz4gSGVyZSdzIGEgaGVscGZ1bCB0aXAgdG8gaW1wcm92ZSB5b3VyIHdvcmtmbG93LjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1pbXBvcnRhbnQiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBUaGlzIGluZm9ybWF0aW9uIGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHRvcGljLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC13YXJuaW5nIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPldhcm5pbmc6PC9zdHJvbmc+IEJlIGNhcmVmdWwgd2hlbiBwZXJmb3JtaW5nIHRoaXMgYWN0aW9uLjwvcD4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC1jYXV0aW9uIj4KICAgICAgICAgICAgICA8cD48c3Ryb25nPkNhdXRpb246PC9zdHJvbmc+IFRoaXMgYWN0aW9uIG1heSBoYXZlIHVuaW50ZW5kZWQgY29uc2VxdWVuY2VzLjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgoKICAgICAgPCEtLSBEZW1vIDc6IEZ1bGwgRG9jdW1lbnQgLS0+CiAgICAgIDxkZWVzLXBhbmVsCiAgICAgICAgLnRpdGxlPSR7IkZ1bGwgRG9jdW1lbnQifQogICAgICAgIC5zdWJ0aXRsZT0keyJBIGNvbXBsZXRlIG1hcmtkb3duIGRvY3VtZW50IGV4YW1wbGUifQogICAgICAgIC5ydW5BZnRlclJlbmRlcj0ke2FzeW5jIGU9Pnthd2FpdCBlLnF1ZXJ5U2VsZWN0b3IoImRlZXMtd29ya3NwYWNlLW1hcmtkb3dub3V0bGV0Iik/LnVwZGF0ZUh0bWxUZXh0KGAKICAgICAgICAgICAgPGgxPkdldHRpbmcgU3RhcnRlZCBHdWlkZTwvaDE+CiAgICAgICAgICAgIDxwPldlbGNvbWUgdG8gdGhlIDxzdHJvbmc+ZGVlcy1jYXRhbG9nPC9zdHJvbmc+IGNvbXBvbmVudCBsaWJyYXJ5LiBUaGlzIGd1aWRlIHdpbGwgaGVscCB5b3UgZ2V0IHVwIGFuZCBydW5uaW5nIHF1aWNrbHkuPC9wPgoKICAgICAgICAgICAgPGgyPkluc3RhbGxhdGlvbjwvaDI+CiAgICAgICAgICAgIDxwPkluc3RhbGwgdGhlIHBhY2thZ2UgdXNpbmcgeW91ciBwcmVmZXJyZWQgcGFja2FnZSBtYW5hZ2VyOjwvcD4KICAgICAgICAgICAgPHByZT48Y29kZT48c3BhbiBjbGFzcz0iaGxqcy1jb21tZW50Ij4jIFVzaW5nIHBucG0gKHJlY29tbWVuZGVkKTwvc3Bhbj4KcG5wbSBhZGQgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nCgo8c3BhbiBjbGFzcz0iaGxqcy1jb21tZW50Ij4jIFVzaW5nIG5wbTwvc3Bhbj4KbnBtIGluc3RhbGwgQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nPC9jb2RlPjwvcHJlPgoKICAgICAgICAgICAgPGgyPkJhc2ljIFVzYWdlPC9oMj4KICAgICAgICAgICAgPHA+SW1wb3J0IGFuZCB1c2UgY29tcG9uZW50cyBpbiB5b3VyIFR5cGVTY3JpcHQgZmlsZXM6PC9wPgogICAgICAgICAgICA8cHJlPjxjb2RlPjxzcGFuIGNsYXNzPSJobGpzLWtleXdvcmQiPmltcG9ydDwvc3Bhbj4geyBEZWVzQnV0dG9uIH0gPHNwYW4gY2xhc3M9ImhsanMta2V5d29yZCI+ZnJvbTwvc3Bhbj4gPHNwYW4gY2xhc3M9ImhsanMtc3RyaW5nIj4nQGRlc2lnbi5lc3RhdGUvZGVlcy1jYXRhbG9nJzwvc3Bhbj47Cgo8c3BhbiBjbGFzcz0iaGxqcy1jb21tZW50Ij4vLyBVc2UgaW4geW91ciB0ZW1wbGF0ZXM8L3NwYW4+Cmh0bWxcYCZsdDtkZWVzLWJ1dHRvbiZndDtDbGljayBtZSZsdDsvZGVlcy1idXR0b24mZ3Q7XGA8L2NvZGU+PC9wcmU+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYXJrZG93bi1hbGVydCBtYXJrZG93bi1hbGVydC10aXAiPgogICAgICAgICAgICAgIDxwPjxzdHJvbmc+VGlwOjwvc3Ryb25nPiBDaGVjayB0aGUgZGVtbyBzaG93Y2FzZSBmb3IgbGl2ZSBleGFtcGxlcyBvZiBhbGwgY29tcG9uZW50cy48L3A+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGgyPkF2YWlsYWJsZSBDb21wb25lbnRzPC9oMj4KICAgICAgICAgICAgPHRhYmxlPgogICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgPHRoPkNvbXBvbmVudDwvdGg+CiAgICAgICAgICAgICAgICAgIDx0aD5EZXNjcmlwdGlvbjwvdGg+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy1idXR0b248L2NvZGU+PC90ZD4KICAgICAgICAgICAgICAgICAgPHRkPlByaW1hcnkgYnV0dG9uIGNvbXBvbmVudDwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy1pbnB1dC10ZXh0PC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5UZXh0IGlucHV0IGZpZWxkPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgIDx0ZD48Y29kZT5kZWVzLXRhYmxlPC9jb2RlPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDx0ZD5EYXRhIHRhYmxlIHdpdGggc29ydGluZzwvdGQ+CiAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICA8dGQ+PGNvZGU+ZGVlcy1tb2RhbDwvY29kZT48L3RkPgogICAgICAgICAgICAgICAgICA8dGQ+TW9kYWwgZGlhbG9nPC90ZD4KICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KCiAgICAgICAgICAgIDxoMj5OZXh0IFN0ZXBzPC9oMj4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgIDxsaT5FeHBsb3JlIHRoZSA8YSBocmVmPSIjIj5jb21wb25lbnQgZG9jdW1lbnRhdGlvbjwvYT48L2xpPgogICAgICAgICAgICAgIDxsaT5DaGVjayBvdXQgdGhlIDxhIGhyZWY9IiMiPnRoZW1pbmcgZ3VpZGU8L2E+PC9saT4KICAgICAgICAgICAgICA8bGk+Sm9pbiBvdXIgPGEgaHJlZj0iIyI+Y29tbXVuaXR5IERpc2NvcmQ8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxibG9ja3F1b3RlPgogICAgICAgICAgICAgIDxwPiJUaGUgYmVzdCBjb21wb25lbnQgbGlicmFyeSBpcyBvbmUgdGhhdCBnZXRzIG91dCBvZiB5b3VyIHdheS4iIFx1MjAxNCBEZXNpZ24gU3lzdGVtcyBUZWFtPC9wPgogICAgICAgICAgICA8L2Jsb2NrcXVvdGU+CiAgICAgICAgICBgKX19CiAgICAgID4KICAgICAgICA8ZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQ+PC9kZWVzLXdvcmtzcGFjZS1tYXJrZG93bm91dGxldD4KICAgICAgPC9kZWVzLXBhbmVsPgogICAgPC9kaXY+CiAgPC9kZWVzLWRlbW93cmFwcGVyPgpgfSk7dmFyIEpYcixLWHIsczVyLGw1cj1wKCgpPT57eGUoKTtKZSgpO281cigpO0pYcj1mdW5jdGlvbihlLHQscixpLGEsbil7ZnVuY3Rpb24gbyh5KXtpZih5IT09dm9pZCAwJiZ0eXBlb2YgeSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJGdW5jdGlvbiBleHBlY3RlZCIpO3JldHVybiB5fWZvcih2YXIgcz1pLmtpbmQsbD1zPT09ImdldHRlciI/ImdldCI6cz09PSJzZXR0ZXIiPyJzZXQiOiJ2YWx1ZSIsYz0hdCYmZT9pLnN0YXRpYz9lOmUucHJvdG90eXBlOm51bGwsdT10fHwoYz9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsaS5uYW1lKTp7fSksZCxoPSExLGY9ci5sZW5ndGgtMTtmPj0wO2YtLSl7dmFyIHg9e307Zm9yKHZhciB2IGluIGkpeFt2XT12PT09ImFjY2VzcyI/e306aVt2XTtmb3IodmFyIHYgaW4gaS5hY2Nlc3MpeC5hY2Nlc3Nbdl09aS5hY2Nlc3Nbdl07eC5hZGRJbml0aWFsaXplcj1mdW5jdGlvbih5KXtpZihoKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZCIpO24ucHVzaChvKHl8fG51bGwpKX07dmFyIGI9KDAscltmXSkocz09PSJhY2Nlc3NvciI/e2dldDp1LmdldCxzZXQ6dS5zZXR9OnVbbF0seCk7aWYocz09PSJhY2Nlc3NvciIpe2lmKGI9PT12b2lkIDApY29udGludWU7aWYoYj09PW51bGx8fHR5cGVvZiBiIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsoZD1vKGIuZ2V0KSkmJih1LmdldD1kKSwoZD1vKGIuc2V0KSkmJih1LnNldD1kKSwoZD1vKGIuaW5pdCkpJiZhLnVuc2hpZnQoZCl9ZWxzZShkPW8oYikpJiYocz09PSJmaWVsZCI/YS51bnNoaWZ0KGQpOnVbbF09ZCl9YyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGMsaS5uYW1lLHUpLGg9ITB9LEtYcj1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGg+MixhPTA7YTx0Lmxlbmd0aDthKyspcj1pP3RbYV0uY2FsbChlLHIpOnRbYV0uY2FsbChlKTtyZXR1cm4gaT9yOnZvaWQgMH0sczVyPSgoKT0+e2xldCBlPVt5ZSgiZGVlcy13b3Jrc3BhY2UtbWFya2Rvd25vdXRsZXQiKV0sdCxyPVtdLGksYT16ZTt2YXIgbj1jbGFzcyBleHRlbmRzIGF7c3RhdGlje2k9dGhpc31zdGF0aWN7bGV0IG89dHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmU3ltYm9sLm1ldGFkYXRhP09iamVjdC5jcmVhdGUoYVtTeW1ib2wubWV0YWRhdGFdPz9udWxsKTp2b2lkIDA7SlhyKG51bGwsdD17dmFsdWU6aX0sZSx7a2luZDoiY2xhc3MiLG5hbWU6aS5uYW1lLG1ldGFkYXRhOm99LG51bGwsciksbj1pPXQudmFsdWUsbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLm1ldGFkYXRhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpvfSl9c3RhdGljIGRlbW89bjVyO3N0YXRpYyBkZW1vR3JvdXBzPVsiV29ya3NwYWNlIl07c3RhdGljIHN0eWxlcz1bRGUsbS5kZWZhdWx0U3R5bGVzLG9lYAogICAgICA6aG9zdCB7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ05vdG8gU2FucycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMjQyOTJmIiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgLm91dGxldCB7CiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgICB9CgogICAgICAvKiBIZWFkaW5ncyAqLwogICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKICAgICAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4yNTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxZjIzMjgiLCIjZjBmNmZjIil9OwogICAgICB9CgogICAgICBoMSB7CiAgICAgICAgZm9udC1zaXplOiAyZW07CiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgIH0KCiAgICAgIGgyIHsKICAgICAgICBmb250LXNpemU6IDEuNWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBoMyB7CiAgICAgICAgZm9udC1zaXplOiAxLjI1ZW07CiAgICAgIH0KCiAgICAgIGg0IHsKICAgICAgICBmb250LXNpemU6IDFlbTsKICAgICAgfQoKICAgICAgaDUgewogICAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTsKICAgICAgfQoKICAgICAgaDYgewogICAgICAgIGZvbnQtc2l6ZTogMC44NWVtOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgIH0KCiAgICAgIC8qIFBhcmFncmFwaHMgYW5kIHRleHQgKi8KICAgICAgcCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICB9CgogICAgICAvKiBMaW5rcyAqLwogICAgICBhIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMwOTY5ZGEiLCIjNThhNmZmIil9OwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQoKICAgICAgYTpob3ZlciB7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgIH0KCiAgICAgIC8qIFN0cm9uZyBhbmQgZW1waGFzaXMgKi8KICAgICAgc3Ryb25nIHsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzFmMjMyOCIsIiNmMGY2ZmMiKX07CiAgICAgIH0KCiAgICAgIGVtIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC8qIExpc3RzICovCiAgICAgIHVsLCBvbCB7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmctbGVmdDogMmVtOwogICAgICB9CgogICAgICBsaSB7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICB9CgogICAgICBsaSArIGxpIHsKICAgICAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICAgIH0KCiAgICAgIHVsIHVsLCB1bCBvbCwgb2wgdWwsIG9sIG9sIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIEJsb2NrcXVvdGVzICovCiAgICAgIGJsb2NrcXVvdGUgewogICAgICAgIG1hcmdpbjogMCAwIDE2cHggMDsKICAgICAgICBwYWRkaW5nOiAwIDFlbTsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2NTZkNzYiLCIjOGI5NDllIil9OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJHttLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmZpcnN0LWNoaWxkIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICB9CgogICAgICBibG9ja3F1b3RlID4gOmxhc3QtY2hpbGQgewogICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgIH0KCiAgICAgIC8qIElubGluZSBjb2RlICovCiAgICAgIGNvZGUgewogICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtOwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoInJnYmEoMTc1LCAxODQsIDE5MywgMC4yKSIsInJnYmEoMTEwLCAxMTgsIDEyOSwgMC40KSIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlczsKICAgICAgfQoKICAgICAgLyogQ29kZSBibG9ja3MgKi8KICAgICAgcHJlIHsKICAgICAgICBtYXJnaW4tdG9wOiAwOwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBvdmVyZmxvdzogYXV0bzsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBsaW5lLWhlaWdodDogMS40NTsKICAgICAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgJ1NGIE1vbm8nLCBNZW5sbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDsKICAgICAgfQoKICAgICAgcHJlIGNvZGUgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogICAgICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBmb250LXNpemU6IDEwMCU7CiAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKICAgICAgfQoKICAgICAgLyogVGFibGVzICovCiAgICAgIHRhYmxlIHsKICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsKICAgICAgICBib3JkZXItc3BhY2luZzogMDsKICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgICAgIG92ZXJmbG93OiBhdXRvOwogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICB9CgogICAgICB0YWJsZSB0aCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzFmMjMyOCIsIiNlNmVkZjMiKX07CiAgICAgIH0KCiAgICAgIHRhYmxlIHRkIHsKICAgICAgICBwYWRkaW5nOiA2cHggMTNweDsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAke20uYmRUaGVtZSgiI2QxZDllMCIsIiMzMDM2M2QiKX07CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMWYyMzI4IiwiI2U2ZWRmMyIpfTsKICAgICAgfQoKICAgICAgdGFibGUgdHIgewogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7bS5iZFRoZW1lKCIjZmZmZmZmIiwiIzBkMTExNyIpfTsKICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHttLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMjEyNjJkIil9OwogICAgICB9CgogICAgICB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke20uYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC8qIEhvcml6b250YWwgcnVsZXMgKi8KICAgICAgaHIgewogICAgICAgIGhlaWdodDogNHB4OwogICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgbWFyZ2luOiAyNHB4IDA7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICAgIGJvcmRlcjogMDsKICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgIH0KCiAgICAgIC8qIEltYWdlcyAqLwogICAgICBpbWcgewogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgICAgfQoKICAgICAgLyogVGFzayBsaXN0cyAqLwogICAgICAudGFzay1saXN0LWl0ZW0gewogICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgICAgfQoKICAgICAgLnRhc2stbGlzdC1pdGVtIGlucHV0IHsKICAgICAgICBtYXJnaW46IDAgMC4yZW0gMC4yNWVtIC0xLjRlbTsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgICB9CgogICAgICAvKiBEZWZpbml0aW9uIGxpc3RzICovCiAgICAgIGRsIHsKICAgICAgICBwYWRkaW5nOiAwOwogICAgICB9CgogICAgICBkbCBkdCB7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICBtYXJnaW4tdG9wOiAxNnB4OwogICAgICAgIGZvbnQtc2l6ZTogMWVtOwogICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICB9CgogICAgICBkbCBkZCB7CiAgICAgICAgcGFkZGluZzogMCAxNnB4OwogICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICAgIH0KCiAgICAgIC8qIEtleWJvYXJkIGlucHV0ICovCiAgICAgIGtiZCB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDNweCA1cHg7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCAnU0YgTW9ubycsIE1lbmxvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTsKICAgICAgICBsaW5lLWhlaWdodDogMTBweDsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiMxZjIzMjgiLCIjZTZlZGYzIil9OwogICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoIiNmNmY4ZmEiLCIjMTYxYjIyIil9OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHttLmJkVGhlbWUoIiNkMWQ5ZTAiLCIjMzAzNjNkIil9OwogICAgICB9CgogICAgICAvKiBGb290bm90ZXMgKi8KICAgICAgLmZvb3Rub3RlcyB7CiAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzY1NmQ3NiIsIiM4Yjk0OWUiKX07CiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7bS5iZFRoZW1lKCIjZDFkOWUwIiwiIzMwMzYzZCIpfTsKICAgICAgICBwYWRkaW5nLXRvcDogMTZweDsKICAgICAgICBtYXJnaW4tdG9wOiAzMnB4OwogICAgICB9CgogICAgICAvKiBBbGVydHMvQWRtb25pdGlvbnMgKi8KICAgICAgLm1hcmtkb3duLWFsZXJ0IHsKICAgICAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQ7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtbm90ZSB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzA5NjlkYSIsIiM1OGE2ZmYiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoInJnYmEoOSwgMTA1LCAyMTgsIDAuMSkiLCJyZ2JhKDU2LCAxMzksIDI1MywgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcgewogICAgICAgIGJvcmRlci1jb2xvcjogJHttLmJkVGhlbWUoIiNiZjg3MDAiLCIjZDI5OTIyIil9OwogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7bS5iZFRoZW1lKCJyZ2JhKDE5MSwgMTM1LCAwLCAwLjEpIiwicmdiYSgxODcsIDEyOCwgOSwgMC4xKSIpfTsKICAgICAgfQoKICAgICAgLm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiIzgyNTBkZiIsIiNhMzcxZjciKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoInJnYmEoMTMwLCA4MCwgMjIzLCAwLjEpIiwicmdiYSgxNjMsIDExMywgMjQ3LCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtY2F1dGlvbiB7CiAgICAgICAgYm9yZGVyLWNvbG9yOiAke20uYmRUaGVtZSgiI2NmMjIyZSIsIiNmODUxNDkiKX07CiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHttLmJkVGhlbWUoInJnYmEoMjA3LCAzNCwgNDYsIDAuMSkiLCJyZ2JhKDI0OCwgODEsIDczLCAwLjEpIil9OwogICAgICB9CgogICAgICAubWFya2Rvd24tYWxlcnQtdGlwIHsKICAgICAgICBib3JkZXItY29sb3I6ICR7bS5iZFRoZW1lKCIjMWE3ZjM3IiwiIzNmYjk1MCIpfTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke20uYmRUaGVtZSgicmdiYSgyNiwgMTI3LCA1NSwgMC4xKSIsInJnYmEoNDYsIDE2MCwgNjcsIDAuMSkiKX07CiAgICAgIH0KCiAgICAgIC8qIFN5bnRheCBoaWdobGlnaHRpbmcgZm9yIGNvZGUgYmxvY2tzICovCiAgICAgIC5obGpzLWNvbW1lbnQsCiAgICAgIC5obGpzLXF1b3RlIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiM2YTczN2QiLCIjOGI5NDllIil9OwogICAgICB9CgogICAgICAuaGxqcy1rZXl3b3JkLAogICAgICAuaGxqcy1zZWxlY3Rvci10YWcsCiAgICAgIC5obGpzLWFkZGl0aW9uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNkNzNhNDkiLCIjZmY3YjcyIil9OwogICAgICB9CgogICAgICAuaGxqcy1udW1iZXIsCiAgICAgIC5obGpzLXN0cmluZywKICAgICAgLmhsanMtbWV0YSAuaGxqcy1tZXRhLXN0cmluZywKICAgICAgLmhsanMtbGl0ZXJhbCwKICAgICAgLmhsanMtZG9jdGFnLAogICAgICAuaGxqcy1yZWdleHAgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzAzMmY2MiIsIiNhNWQ2ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLXRpdGxlLAogICAgICAuaGxqcy1zZWN0aW9uLAogICAgICAuaGxqcy1uYW1lLAogICAgICAuaGxqcy1zZWxlY3Rvci1pZCwKICAgICAgLmhsanMtc2VsZWN0b3ItY2xhc3MgewogICAgICAgIGNvbG9yOiAke20uYmRUaGVtZSgiIzZmNDJjMSIsIiNkMmE4ZmYiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWF0dHJpYnV0ZSwKICAgICAgLmhsanMtYXR0ciwKICAgICAgLmhsanMtdmFyaWFibGUsCiAgICAgIC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLAogICAgICAuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwKICAgICAgLmhsanMtdHlwZSB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjMDA1Y2M1IiwiIzc5YzBmZiIpfTsKICAgICAgfQoKICAgICAgLmhsanMtc3ltYm9sLAogICAgICAuaGxqcy1idWxsZXQsCiAgICAgIC5obGpzLXN1YnN0LAogICAgICAuaGxqcy1tZXRhLAogICAgICAuaGxqcy1tZXRhIC5obGpzLWtleXdvcmQsCiAgICAgIC5obGpzLXNlbGVjdG9yLWF0dHIsCiAgICAgIC5obGpzLXNlbGVjdG9yLXBzZXVkbywKICAgICAgLmhsanMtbGluayB7CiAgICAgICAgY29sb3I6ICR7bS5iZFRoZW1lKCIjZTM2MjA5IiwiI2ZmYTY1NyIpfTsKICAgICAgfQoKICAgICAgLmhsanMtYnVpbHRfaW4sCiAgICAgIC5obGpzLWRlbGV0aW9uIHsKICAgICAgICBjb2xvcjogJHttLmJkVGhlbWUoIiNiMzFkMjgiLCIjZmZhMTk4Iil9OwogICAgICB9CgogICAgICAuaGxqcy1mb3JtdWxhIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke20uYmRUaGVtZSgiI2Y2ZjhmYSIsIiMxNjFiMjIiKX07CiAgICAgIH0KCiAgICAgIC5obGpzLWVtcGhhc2lzIHsKICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgIH0KCiAgICAgIC5obGpzLXN0cm9uZyB7CiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgIH0KICAgIGBdO291dGxldDtyZW5kZXIoKXtyZXR1cm4gQ2AKICAgICAgPGRpdiBjbGFzcz0ib3V0bGV0Ij4KICAgICAgICA8aDE+TWFya2Rvd24gUHJldmlldzwvaDE+CiAgICAgICAgPHA+Q29udGVudCB3aWxsIGFwcGVhciBoZXJlIHdoZW4gbWFya2Rvd24gaXMgcGFyc2VkLjwvcD4KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZChvKXthd2FpdCBzdXBlci5maXJzdFVwZGF0ZWQobyksdGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKX1hc3luYyB1cGRhdGVIdG1sVGV4dChvKXthd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlLHRoaXMub3V0bGV0fHwodGhpcy5vdXRsZXQ9dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5vdXRsZXQiKSksdGhpcy5vdXRsZXQuaW5uZXJIVE1MPW99c3RhdGlje0tYcihpLHIpfX07cmV0dXJuIG49aX0pKCl9KTt2YXIgYzVyPXAoKCk9PntsNXIoKX0pO3ZhciBkNXI9cCgoKT0+e241ZSgpfSk7dmFyIHU1cj1wKCgpPT57czVlKCl9KTt2YXIgcDVyPXAoKCk9PntYZHIoKTtRZHIoKTtKZHIoKTtlNXIoKTt0NXIoKTthNXIoKTtjNXIoKTtkNXIoKTt1NXIoKX0pO3ZhciBoNXI9cCgoKT0+e30pO3ZhciBmNXI9cCgoKT0+e2g1cigpfSk7dmFyIG01cj1wKCgpPT57eGUoKX0pO3ZhciBnNXI9cCgoKT0+e201cigpfSk7dmFyIGI1cj1wKCgpPT57eG8oKTtKZSgpO0tscigpO2RjcigpO3pjcigpO0ZjcigpO2MwcigpO3AwcigpO3c0cigpO2QzcigpO3c2cigpO0E2cigpO3lGKCk7Q2RyKCk7amRyKCk7cDVyKCk7ZjVyKCk7ZzVyKCl9KTt2YXIgdjVyLHg1cj1wKCgpPT57djVyPXtuYW1lOiJAZGVzaWduLmVzdGF0ZS9kZWVzLWNhdGFsb2ciLHZlcnNpb246IjMuNDMuMyIsZGVzY3JpcHRpb246IkEgY29tcHJlaGVuc2l2ZSBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgZHluYW1pYyB3ZWIgY29tcG9uZW50cyBmb3IgYnVpbGRpbmcgc29waGlzdGljYXRlZCBhbmQgbW9kZXJuIHdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgSmF2YVNjcmlwdCBhbmQgVHlwZVNjcmlwdC4ifX0pO3ZhciBCMj17fTtGZShCMix7Q2FudmFzUG9vbDooKT0+ZGgsRGVlc0FjdGlvbmJhcjooKT0+T2NyLERlZXNBcHB1aTooKT0+cWxyLERlZXNBcHB1aUFjdGl2aXR5bG9nOigpPT5xMnIsRGVlc0FwcHVpQmFyOigpPT5pc3IsRGVlc0FwcHVpQm90dG9tYmFyOigpPT5zc3IsRGVlc0FwcHVpTWFpbmNvbnRlbnQ6KCk9PkhscixEZWVzQXBwdWlNYWlubWVudTooKT0+SWxyLERlZXNBcHB1aVByb2ZpbGVEcm9wZG93bjooKT0+cnNyLERlZXNBcHB1aVNlY29uZGFyeW1lbnU6KCk9PkZscixEZWVzQXBwdWlUYWJzOigpPT5CbHIsRGVlc0F1ZGlvVmlld2VyOigpPT5iM3IsRGVlc0JhZGdlOigpPT5qY3IsRGVlc0J1dHRvbjooKT0+X2xyLERlZXNCdXR0b25FeGl0OigpPT5yY3IsRGVlc0J1dHRvbkdyb3VwOigpPT5zY3IsRGVlc0NoYXJ0QXJlYTooKT0+dmNyLERlZXNDaGFydExvZzooKT0+TWNyLERlZXNDaGlwczooKT0+UzRyLERlZXNDb250ZXh0bWVudTooKT0+U3IsRGVlc0Rhc2hib2FyZGdyaWQ6KCk9Pmo0cixEZWVzRGF0YXZpZXdDb2RlYm94OigpPT5fY3IsRGVlc0RhdGF2aWV3U3RhdHVzb2JqZWN0OigpPT4kY3IsRGVlc0Zvcm06KCk9PnpscixEZWVzRm9ybVN1Ym1pdDooKT0+UE4sRGVlc0Zvcm1hdHRpbmdNZW51OigpPT5yRixEZWVzSGVhZGluZzooKT0+WjRyLERlZXNIaW50OigpPT5aY3IsRGVlc0ljb246KCk9Pk4ycixEZWVzSW1hZ2VWaWV3ZXI6KCk9PmgzcixEZWVzSW5wdXRCYXNlOigpPT5vdCxEZWVzSW5wdXRDaGVja2JveDooKT0+ek4sRGVlc0lucHV0Q29kZTooKT0+TE4sRGVlc0lucHV0RGF0ZXBpY2tlcjooKT0+QU4sRGVlc0lucHV0RHJvcGRvd246KCk9Pk5OLERlZXNJbnB1dEZpbGV1cGxvYWQ6KCk9Pk9OLERlZXNJbnB1dEliYW46KCk9PkhOLERlZXNJbnB1dExpc3Q6KCk9PnkwcixEZWVzSW5wdXRNdWx0aXRvZ2dsZTooKT0+cU4sRGVlc0lucHV0UGhvbmU6KCk9PlZOLERlZXNJbnB1dFByb2ZpbGVQaWN0dXJlOigpPT55NHIsRGVlc0lucHV0UXVhbnRpdHlTZWxlY3RvcjooKT0+RU4sRGVlc0lucHV0UmFkaW9ncm91cDooKT0+JE4sRGVlc0lucHV0UmljaHRleHQ6KCk9PiQwcixEZWVzSW5wdXRUYWdzOigpPT5CMHIsRGVlc0lucHV0VGV4dDooKT0+RE4sRGVlc0lucHV0VG9nZ2xlOigpPT5VTixEZWVzSW5wdXRUeXBlbGlzdDooKT0+V04sRGVlc0lucHV0V3lzaXd5ZzooKT0+bGRlLERlZXNMYWJlbDooKT0+TXNyLERlZXNNb2JpbGVuYXZpZ2F0aW9uOigpPT5YbHIsRGVlc01vZGFsOigpPT5XcixEZWVzUGFnaW5hdGlvbjooKT0+dDNyLERlZXNQYW5lbDooKT0+cHNyLERlZXNQZGY6KCk9PlAzcixEZWVzUGRmUHJldmlldzooKT0+cTNyLERlZXNQZGZWaWV3ZXI6KCk9PlQzcixEZWVzUHJldmlldzooKT0+RDNyLERlZXNQcm9ncmVzc2JhcjooKT0+dDByLERlZXNTZWFyY2hiYXI6KCk9PkRkcixEZWVzU2hvcHBpbmdQcm9kdWN0Y2FyZDooKT0+SXNyLERlZXNTaW1wbGVBcHBEYXNoOigpPT5iZHIsRGVlc1NpbXBsZUxvZ2luOigpPT5rZHIsRGVlc1NsYXNoTWVudTooKT0+ZUYsRGVlc1NwZWVjaGJ1YmJsZTooKT0+QzZyLERlZXNTcGlubmVyOigpPT5pMHIsRGVlc1N0YXRzR3JpZDooKT0+TGxyLERlZXNTdGVwcGVyOigpPT5zM3IsRGVlc1RhYmxlOigpPT5ZTixEZWVzVGhlbWU6KCk9Pk5kcixEZWVzVGlsZUF1ZGlvOigpPT5yNnIsRGVlc1RpbGVCYXNlOigpPT5vbixEZWVzVGlsZUZvbGRlcjooKT0+djZyLERlZXNUaWxlSW1hZ2U6KCk9PlEzcixEZWVzVGlsZU5vdGU6KCk9PnA2cixEZWVzVGlsZVBkZjooKT0+b0YsRGVlc1RpbGVWaWRlbzooKT0+czZyLERlZXNUb2FzdDooKT0+YnIsRGVlc1VwZGF0ZXI6KCk9PndGLERlZXNWaWRlb1ZpZXdlcjooKT0+dzNyLERlZXNXaW5kb3dDb250cm9sczooKT0+dHNyLERlZXNXaW5kb3dMYXllcjooKT0+JG8sRGVlc1dvcmtzcGFjZTooKT0+WWRyLERlZXNXb3Jrc3BhY2VCb3R0b21iYXI6KCk9PldkcixEZWVzV29ya3NwYWNlRGlmZkVkaXRvcjooKT0+R2RyLERlZXNXb3Jrc3BhY2VGaWxldHJlZTooKT0+VmRyLERlZXNXb3Jrc3BhY2VNYXJrZG93bjooKT0+cjVyLERlZXNXb3Jrc3BhY2VNYXJrZG93bm91dGxldDooKT0+czVyLERlZXNXb3Jrc3BhY2VNb25hY286KCk9PmtzcixEZWVzV29ya3NwYWNlVGVybWluYWw6KCk9PlhkZSxEZWVzV29ya3NwYWNlVGVybWluYWxQcmV2aWV3OigpPT5VZHIsRGVlc1d5c2l3eWdCbG9jazooKT0+aDRyLFBST0dSQU1NSU5HX0xBTkdVQUdFUzooKT0+eGIsUGRmTWFuYWdlcjooKT0+b2wsUGVyZm9ybWFuY2VNb25pdG9yOigpPT51aCxUZXJtaW5hbFRhYk1hbmFnZXI6KCk9PlViLFR5cGVTY3JpcHRJbnRlbGxpU2Vuc2VNYW5hZ2VyOigpPT5YYixWaWV3UmVnaXN0cnk6KCk9PmZiLFdlYkNvbnRhaW5lckVudmlyb25tZW50OigpPT5yNSxXeXNpd3lnQmxvY2tPcGVyYXRpb25zOigpPT55YixXeXNpd3lnQmxvY2tzOigpPT5hYSxXeXNpd3lnQ29udmVydGVyczooKT0+Um8sV3lzaXd5Z0RyYWdEcm9wSGFuZGxlcjooKT0+SWIsV3lzaXd5Z0Zvcm1hdHRpbmc6KCk9PlNjLFd5c2l3eWdIaXN0b3J5OigpPT5QYixXeXNpd3lnSW5wdXRIYW5kbGVyOigpPT5FYixXeXNpd3lnS2V5Ym9hcmRIYW5kbGVyOigpPT4kYixXeXNpd3lnTW9kYWxNYW5hZ2VyOigpPT5EYixXeXNpd3lnU2VsZWN0aW9uOigpPT5ZZSxXeXNpd3lnU2hvcnRjdXRzOigpPT5HMSxaSW5kZXhSZWdpc3RyeTooKT0+Y1MsY29sb3JzOigpPT4kZCxjb21taXRpbmZvOigpPT52NXIsY29tcG9uZW50WkluZGV4OigpPT5rVHIsZGVib3VuY2U6KCk9PmdYcixmb3JtYXRGaWxlU2l6ZTooKT0+dlhyLGdldFpJbmRleDooKT0+TVRyLGljb25zOigpPT5NTixpc0luVmlld3BvcnQ6KCk9PnhYcixyZWdpc3RlckFsbEJsb2NrSGFuZGxlcnM6KCk9Pmw0cix0aGVtZURlZmF1bHRTdHlsZXM6KCk9PkRlLHRoZW1lRGVmYXVsdHM6KCk9PkM0LHRocm90dGxlOigpPT5iWHIsdGlsZUJhc2VTdHlsZXM6KCk9PkZhLHd5c2l3eWdTdHlsZXM6KCk9PmVkZSx6SW5kZXhMYXllcnM6KCk9PmZpLHpJbmRleFJlZ2lzdHJ5OigpPT5Lcn0pO3ZhciB5NXI9cCgoKT0+e2I1cigpO1BvKCk7eDVyKCl9KTt2YXIgcjEsSDI9cCgoKT0+e3ZvKCk7eTVyKCk7cjE9bW99KTt2YXIgJGM9cCgoKT0+e0toKCl9KTt2YXIgdzVyPXAoKCk9Pnt9KTt2YXIgTTVyPXAoKCk9Pnt9KTt2YXIgazVyPXAoKCk9Pnt9KTt2YXIgUzVyPXAoKCk9Pnt9KTt2YXIgejVyPXAoKCk9Pnt9KTt2YXIgQzVyPXAoKCk9Pnt9KTt2YXIgVDVyPXt9O3ZhciBJYz1wKCgpPT57dzVyKCk7TTVyKCk7azVyKCk7UzVyKCk7ejVyKCk7QzVyKCl9KTt2YXIgXzVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgTDVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgQTVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgRDVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgRTVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgJDVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgSTVyPXAoKCk9PnskYygpO0ljKCl9KTt2YXIgUDVyPXt9O3ZhciBONXI9cCgoKT0+e181cigpO0w1cigpO0E1cigpO0Q1cigpO0U1cigpOyQ1cigpO0k1cigpfSk7dmFyIGw1ZT1wKCgpPT57JGMoKTtJYygpO041cigpfSk7dmFyIGtGLHEyLGZyLFV0LGxsLE9hLEY1cixKYixfbixPNXIsUjVyLEI1cixHNCxTRixINXIscTVyLGo1cixWNXIsVTVyLFc1cixHNXIsWTVyLFo1cixuNSxWeGEsUGM9cChhc3luYygpPT57SDIoKTtsNWUoKTtrRj1uZXcgcjEucGx1Z2lucy5zbWFydHN0YXRlLlNtYXJ0c3RhdGUscTI9YXdhaXQga0YuZ2V0U3RhdGVQYXJ0KCJsb2dpbiIse2lkZW50aXR5Om51bGwsaXNMb2dnZWRJbjohMX0sInBlcnNpc3RlbnQiKSxmcj1hd2FpdCBrRi5nZXRTdGF0ZVBhcnQoImNvbm5lY3Rpb25zIix7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9LCJzb2Z0IiksVXQ9YXdhaXQga0YuZ2V0U3RhdGVQYXJ0KCJkYXRhIix7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSwic29mdCIpLGxsPWF3YWl0IGtGLmdldFN0YXRlUGFydCgidWkiLHthY3RpdmVWaWV3OiJvdmVydmlldyIsYXV0b1JlZnJlc2g6ITAscmVmcmVzaEludGVydmFsOjNlNH0pLE9hPSgpPT4oe2lkZW50aXR5OnEyLmdldFN0YXRlKCkuaWRlbnRpdHl9KSxGNXI9cTIuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9Pnt0cnl7bGV0IGk9YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImFkbWluTG9naW4iKS5maXJlKHt1c2VybmFtZTp0LnVzZXJuYW1lLHBhc3N3b3JkOnQucGFzc3dvcmR9KTtyZXR1cm57aWRlbnRpdHk6aS5pZGVudGl0eXx8bnVsbCxpc0xvZ2dlZEluOiEhaS5pZGVudGl0eX19Y2F0Y2gocil7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkxvZ2luIGZhaWxlZDoiLHIpLHtpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fX0pLEpiPXEyLmNyZWF0ZUFjdGlvbihhc3luYyBlPT57bGV0IHQ9T2EoKTt0cnl7dC5pZGVudGl0eSYmYXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImFkbWluTG9nb3V0IikuZmlyZSh7aWRlbnRpdHk6dC5pZGVudGl0eX0pfWNhdGNoKHIpe2NvbnNvbGUuZXJyb3IoIkxvZ291dCBlcnJvcjoiLHIpfXJldHVybntpZGVudGl0eTpudWxsLGlzTG9nZ2VkSW46ITF9fSksX249ZnIuY3JlYXRlQWN0aW9uKGFzeW5jIGU9PntsZXQgdD1PYSgpO3RyeXtsZXQgaT1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0Q29ubmVjdGlvbnMiKS5maXJlKHtpZGVudGl0eTp0LmlkZW50aXR5fSk7cmV0dXJuey4uLmUuZ2V0U3RhdGUoKSxjb25uZWN0aW9uczppLmNvbm5lY3Rpb25zfX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIGNvbm5lY3Rpb25zOiIsciksZS5nZXRTdGF0ZSgpfX0pLE81cj1mci5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+e2xldCByPU9hKCk7dHJ5e2F3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJjcmVhdGVDb25uZWN0aW9uIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSwuLi50fSk7bGV0IG49YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldENvbm5lY3Rpb25zIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi5lLmdldFN0YXRlKCksY29ubmVjdGlvbnM6bi5jb25uZWN0aW9uc319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgY29ubmVjdGlvbjoiLGkpLGUuZ2V0U3RhdGUoKX19KSxSNXI9ZnIuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwidGVzdENvbm5lY3Rpb24iKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZH0pLG89YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldENvbm5lY3Rpb25zIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eX0pO3JldHVybnsuLi5lLmdldFN0YXRlKCksY29ubmVjdGlvbnM6by5jb25uZWN0aW9uc319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byB0ZXN0IGNvbm5lY3Rpb246IixpKSxlLmdldFN0YXRlKCl9fSksQjVyPWZyLmNyZWF0ZUFjdGlvbihhc3luYyhlLHQpPT57bGV0IHI9T2EoKTt0cnl7YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZUNvbm5lY3Rpb24iKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZH0pO2xldCBhPWUuZ2V0U3RhdGUoKTtyZXR1cm57Li4uYSxjb25uZWN0aW9uczphLmNvbm5lY3Rpb25zLmZpbHRlcihuPT5uLmlkIT09dC5jb25uZWN0aW9uSWQpLGFjdGl2ZUNvbm5lY3Rpb25JZDphLmFjdGl2ZUNvbm5lY3Rpb25JZD09PXQuY29ubmVjdGlvbklkP251bGw6YS5hY3RpdmVDb25uZWN0aW9uSWR9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIGNvbm5lY3Rpb246IixpKSxlLmdldFN0YXRlKCl9fSksRzQ9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UHJvamVjdHMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZCxzZWFyY2g6dC5zZWFyY2h9KTtyZXR1cm57Li4uZS5nZXRTdGF0ZSgpLHByb2plY3RzOmEucHJvamVjdHN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcHJvamVjdHM6IixpKSxlLmdldFN0YXRlKCl9fSksU0Y9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0R3JvdXBzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxjb25uZWN0aW9uSWQ6dC5jb25uZWN0aW9uSWQsc2VhcmNoOnQuc2VhcmNofSk7cmV0dXJuey4uLmUuZ2V0U3RhdGUoKSxncm91cHM6YS5ncm91cHN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggZ3JvdXBzOiIsaSksZS5nZXRTdGF0ZSgpfX0pLEg1cj1VdC5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+e2xldCByPU9hKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRTZWNyZXRzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxjb25uZWN0aW9uSWQ6dC5jb25uZWN0aW9uSWQsc2NvcGU6dC5zY29wZSxzY29wZUlkOnQuc2NvcGVJZH0pO3JldHVybnsuLi5lLmdldFN0YXRlKCksc2VjcmV0czphLnNlY3JldHN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggc2VjcmV0czoiLGkpLGUuZ2V0U3RhdGUoKX19KSxxNXI9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXthd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY3JlYXRlU2VjcmV0IikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSwuLi50fSk7bGV0IG49YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImdldFNlY3JldHMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZCxzY29wZTp0LnNjb3BlLHNjb3BlSWQ6dC5zY29wZUlkfSk7cmV0dXJuey4uLmUuZ2V0U3RhdGUoKSxzZWNyZXRzOm4uc2VjcmV0c319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgc2VjcmV0OiIsaSksZS5nZXRTdGF0ZSgpfX0pLGo1cj1VdC5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+e2xldCByPU9hKCk7dHJ5e2F3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJ1cGRhdGVTZWNyZXQiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LC4uLnR9KTtsZXQgbj1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0U2VjcmV0cyIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksY29ubmVjdGlvbklkOnQuY29ubmVjdGlvbklkLHNjb3BlOnQuc2NvcGUsc2NvcGVJZDp0LnNjb3BlSWR9KTtyZXR1cm57Li4uZS5nZXRTdGF0ZSgpLHNlY3JldHM6bi5zZWNyZXRzfX1jYXRjaChpKXtyZXR1cm4gY29uc29sZS5lcnJvcigiRmFpbGVkIHRvIHVwZGF0ZSBzZWNyZXQ6IixpKSxlLmdldFN0YXRlKCl9fSksVjVyPVV0LmNyZWF0ZUFjdGlvbihhc3luYyhlLHQpPT57bGV0IHI9T2EoKTt0cnl7YXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsImRlbGV0ZVNlY3JldCIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksLi4udH0pO2xldCBhPWUuZ2V0U3RhdGUoKTtyZXR1cm57Li4uYSxzZWNyZXRzOmEuc2VjcmV0cy5maWx0ZXIobj0+bi5rZXkhPT10LmtleSl9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZGVsZXRlIHNlY3JldDoiLGkpLGUuZ2V0U3RhdGUoKX19KSxVNXI9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXtsZXQgYT1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGlwZWxpbmVzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxjb25uZWN0aW9uSWQ6dC5jb25uZWN0aW9uSWQscHJvamVjdElkOnQucHJvamVjdElkfSk7cmV0dXJuey4uLmUuZ2V0U3RhdGUoKSxwaXBlbGluZXM6YS5waXBlbGluZXN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGlwZWxpbmVzOiIsaSksZS5nZXRTdGF0ZSgpfX0pLFc1cj1VdC5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+e2xldCByPU9hKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQaXBlbGluZUpvYnMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dC5wcm9qZWN0SWQscGlwZWxpbmVJZDp0LnBpcGVsaW5lSWR9KTtyZXR1cm57Li4uZS5nZXRTdGF0ZSgpLHBpcGVsaW5lSm9iczphLmpvYnN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggcGlwZWxpbmUgam9iczoiLGkpLGUuZ2V0U3RhdGUoKX19KSxHNXI9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXthd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwicmV0cnlQaXBlbGluZSIpLmZpcmUoe2lkZW50aXR5OnIuaWRlbnRpdHksLi4udH0pO2xldCBuPWF3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRQaXBlbGluZXMiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LGNvbm5lY3Rpb25JZDp0LmNvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dC5wcm9qZWN0SWR9KTtyZXR1cm57Li4uZS5nZXRTdGF0ZSgpLHBpcGVsaW5lczpuLnBpcGVsaW5lc319Y2F0Y2goaSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZXRyeSBwaXBlbGluZToiLGkpLGUuZ2V0U3RhdGUoKX19KSxZNXI9VXQuY3JlYXRlQWN0aW9uKGFzeW5jKGUsdCk9PntsZXQgcj1PYSgpO3RyeXthd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiY2FuY2VsUGlwZWxpbmUiKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LC4uLnR9KTtsZXQgbj1hd2FpdCBuZXcgcjEucGx1Z2lucy50eXBlZHJlcXVlc3QuVHlwZWRSZXF1ZXN0KCIvdHlwZWRyZXF1ZXN0IiwiZ2V0UGlwZWxpbmVzIikuZmlyZSh7aWRlbnRpdHk6ci5pZGVudGl0eSxjb25uZWN0aW9uSWQ6dC5jb25uZWN0aW9uSWQscHJvamVjdElkOnQucHJvamVjdElkfSk7cmV0dXJuey4uLmUuZ2V0U3RhdGUoKSxwaXBlbGluZXM6bi5waXBlbGluZXN9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gY2FuY2VsIHBpcGVsaW5lOiIsaSksZS5nZXRTdGF0ZSgpfX0pLFo1cj1VdC5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+e2xldCByPU9hKCk7dHJ5e2xldCBhPWF3YWl0IG5ldyByMS5wbHVnaW5zLnR5cGVkcmVxdWVzdC5UeXBlZFJlcXVlc3QoIi90eXBlZHJlcXVlc3QiLCJnZXRKb2JMb2ciKS5maXJlKHtpZGVudGl0eTpyLmlkZW50aXR5LC4uLnR9KTtyZXR1cm57Li4uZS5nZXRTdGF0ZSgpLGN1cnJlbnRKb2JMb2c6YS5sb2d9fWNhdGNoKGkpe3JldHVybiBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggam9iIGxvZzoiLGkpLGUuZ2V0U3RhdGUoKX19KSxuNT1sbC5jcmVhdGVBY3Rpb24oYXN5bmMoZSx0KT0+KHsuLi5lLmdldFN0YXRlKCksYWN0aXZlVmlldzp0LnZpZXd9KSksVnhhPWxsLmNyZWF0ZUFjdGlvbihhc3luYyBlPT57bGV0IHQ9ZS5nZXRTdGF0ZSgpO3JldHVybnsuLi50LGF1dG9SZWZyZXNoOiF0LmF1dG9SZWZyZXNofX0pfSk7dmFyIExuLFg1cj1wKCgpPT57dm8oKTtMbj1aMWAKICA6aG9zdCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbjogYXV0bzsKICAgIG1heC13aWR0aDogMTI4MHB4OwogICAgcGFkZGluZzogMTZweCAxNnB4OwogICAgY29sb3I6ICNmZmY7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KICAudmlldy10aXRsZSB7CiAgICBmb250LXNpemU6IDI0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICB9CiAgLnZpZXctZGVzY3JpcHRpb24gewogICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6ICM5OTk7CiAgICBtYXJnaW4tYm90dG9tOiAyNHB4OwogIH0KICAudG9vbGJhciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAxNnB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1ib3R0b206IDI0cHg7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgfQpgfSk7dmFyIFo0PXAoKCk9PntYNXIoKX0pO3ZhciB0dXI9e307RmUodHVyLHtHaXRvcHNWaWV3T3ZlcnZpZXc6KCk9PkZjfSk7dmFyIFE1cixKNXIsSzVyLGV1cixOYyxjNWUsZDVlLEZjLHU1ZT1wKGFzeW5jKCk9PntIMigpO2F3YWl0IFBjKCk7WjQoKTt2bygpO2V1cj1baGkoImdpdG9wcy12aWV3LW92ZXJ2aWV3IildO0ZjPWNsYXNzIGV4dGVuZHMoSzVyPURpLEo1cj1bYXIoKV0sUTVyPVthcigpXSxLNXIpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtncih0aGlzLGM1ZSxldChOYyw4LHRoaXMse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSkpLGV0KE5jLDExLHRoaXMpO2dyKHRoaXMsZDVlLGV0KE5jLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxldChOYywxNSx0aGlzKTtsZXQgcj1mci5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKGE9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGk9VXQuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5kYXRhU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IHI9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLmxlbmd0aCxpPXRoaXMuZGF0YVN0YXRlLnByb2plY3RzLmxlbmd0aCxhPXRoaXMuZGF0YVN0YXRlLmdyb3Vwcy5sZW5ndGgsbj10aGlzLmRhdGFTdGF0ZS5waXBlbGluZXMubGVuZ3RoLG89dGhpcy5kYXRhU3RhdGUucGlwZWxpbmVzLmZpbHRlcihsPT5sLnN0YXR1cz09PSJmYWlsZWQiKS5sZW5ndGgscz1be2lkOiJjb25uZWN0aW9ucyIsdGl0bGU6IkNvbm5lY3Rpb25zIix2YWx1ZTpyLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOnBsdWciLGNvbG9yOiIjMDBhY2ZmIn0se2lkOiJwcm9qZWN0cyIsdGl0bGU6IlByb2plY3RzIix2YWx1ZTppLHR5cGU6Im51bWJlciIsaWNvbjoibHVjaWRlOmZvbGRlckdpdDIiLGNvbG9yOiIjMDBhY2ZmIn0se2lkOiJncm91cHMiLHRpdGxlOiJHcm91cHMiLHZhbHVlOmEsdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dXNlcnMiLGNvbG9yOiIjMDBhY2ZmIn0se2lkOiJwaXBlbGluZXMiLHRpdGxlOiJQaXBlbGluZXMiLHZhbHVlOm4sdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6cGxheSIsY29sb3I6IiMwMGFjZmYifSx7aWQ6ImZhaWxlZCIsdGl0bGU6IkZhaWxlZCBQaXBlbGluZXMiLHZhbHVlOm8sdHlwZToibnVtYmVyIixpY29uOiJsdWNpZGU6dHJpYW5nbGVBbGVydCIsY29sb3I6bz4wPyIjZmY0NDQ0IjoiIzAwZmY4OCJ9XTtyZXR1cm4gdXJgCiAgICAgIDxkaXYgY2xhc3M9InZpZXctdGl0bGUiPk92ZXJ2aWV3PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZXctZGVzY3JpcHRpb24iPkdpdE9wcyBkYXNoYm9hcmQgLSBtYW5hZ2UgeW91ciBHaXRlYSBhbmQgR2l0TGFiIGluc3RhbmNlczwvZGl2PgogICAgICA8ZGVlcy1zdGF0c2dyaWQgLnRpbGVzPSR7c30+PC9kZWVzLXN0YXRzZ3JpZD4KICAgIGB9fTtOYz1vYShLNXIpLGM1ZT1uZXcgV2Vha01hcCxkNWU9bmV3IFdlYWtNYXAsRnQoTmMsNCwiY29ubmVjdGlvbnNTdGF0ZSIsSjVyLEZjLGM1ZSksRnQoTmMsNCwiZGF0YVN0YXRlIixRNXIsRmMsZDVlKSxGYz1GdChOYywwLCJHaXRvcHNWaWV3T3ZlcnZpZXciLGV1cixGYyksemkoRmMsInN0eWxlcyIsW1dpLmRlZmF1bHRTdHlsZXMsTG5dKSxldChOYywxLEZjKX0pO3ZhciBudXI9e307RmUobnVyLHtHaXRvcHNWaWV3Q29ubmVjdGlvbnM6KCk9Plg0fSk7dmFyIHJ1cixpdXIsYXVyLHloLHA1ZSxYNCxoNWU9cChhc3luYygpPT57SDIoKTthd2FpdCBQYygpO1o0KCk7dm8oKTthdXI9W2hpKCJnaXRvcHMtdmlldy1jb25uZWN0aW9ucyIpXTtYND1jbGFzcyBleHRlbmRzKGl1cj1EaSxydXI9W2FyKCldLGl1cil7Y29uc3RydWN0b3IoKXtzdXBlcigpO2dyKHRoaXMscDVlLGV0KHloLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksZXQoeWgsMTEsdGhpcyk7bGV0IHI9ZnIuc2VsZWN0KGk9PmkpLnN1YnNjcmliZShpPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPWl9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpfXJlbmRlcigpe3JldHVybiB1cmAKICAgICAgPGRpdiBjbGFzcz0idmlldy10aXRsZSI+Q29ubmVjdGlvbnM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlldy1kZXNjcmlwdGlvbiI+TWFuYWdlIHlvdXIgR2l0ZWEgYW5kIEdpdExhYiBwcm92aWRlciBjb25uZWN0aW9uczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMuYWRkQ29ubmVjdGlvbigpfT5BZGQgQ29ubmVjdGlvbjwvZGVlcy1idXR0b24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLnJlZnJlc2goKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJQcm92aWRlciBDb25uZWN0aW9ucyJ9CiAgICAgICAgLmhlYWRpbmcyPSR7IkNvbmZpZ3VyZSBjb25uZWN0aW9ucyB0byBHaXRlYSBhbmQgR2l0TGFiIGluc3RhbmNlcyJ9CiAgICAgICAgLmRhdGE9JHt0aGlzLmNvbm5lY3Rpb25zU3RhdGUuY29ubmVjdGlvbnN9CiAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke3I9Pih7TmFtZTpyLm5hbWUsVHlwZTpyLnByb3ZpZGVyVHlwZSxVUkw6ci5iYXNlVXJsLFN0YXR1czpyLnN0YXR1cyxDcmVhdGVkOm5ldyBEYXRlKHIuY3JlYXRlZEF0KS50b0xvY2FsZURhdGVTdHJpbmcoKX0pfQogICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVGVzdCIsaWNvbk5hbWU6Imx1Y2lkZTpwbHVnIixhY3Rpb246YXN5bmMgcj0+e2F3YWl0IGZyLmRpc3BhdGNoQWN0aW9uKFI1cix7Y29ubmVjdGlvbklkOnIuaWR9KX19LHtuYW1lOiJEZWxldGUiLGljb25OYW1lOiJsdWNpZGU6dHJhc2gyIixhY3Rpb246YXN5bmMgcj0+e2xldCBpPWF3YWl0IEIyLkRlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJEZWxldGUgQ29ubmVjdGlvbiIsY29udGVudDp1cmA8cCBzdHlsZT0iY29sb3I6ICNmZmY7Ij5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGNvbm5lY3Rpb24gIiR7ci5uYW1lfSI/PC9wPmAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyBhPT57YS5kZXN0cm95KCl9fSx7bmFtZToiRGVsZXRlIixhY3Rpb246YXN5bmMgYT0+e2F3YWl0IGZyLmRpc3BhdGNoQWN0aW9uKEI1cix7Y29ubmVjdGlvbklkOnIuaWR9KSxhLmRlc3Ryb3koKX19XX0pfX1dfQogICAgICA+PC9kZWVzLXRhYmxlPgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXthd2FpdCB0aGlzLnJlZnJlc2goKX1hc3luYyByZWZyZXNoKCl7YXdhaXQgZnIuZGlzcGF0Y2hBY3Rpb24oX24sbnVsbCl9YXN5bmMgYWRkQ29ubmVjdGlvbigpe2F3YWl0IEIyLkRlZXNNb2RhbC5jcmVhdGVBbmRTaG93KHtoZWFkaW5nOiJBZGQgQ29ubmVjdGlvbiIsY29udGVudDp1cmAKICAgICAgICA8c3R5bGU+CiAgICAgICAgICAuZm9ybS1yb3cgeyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJOYW1lIn0gLmtleT0keyJuYW1lIn0+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgICAgLmxhYmVsPSR7IlByb3ZpZGVyIFR5cGUifQogICAgICAgICAgICAua2V5PSR7InByb3ZpZGVyVHlwZSJ9CiAgICAgICAgICAgIC5vcHRpb25zPSR7W3tvcHRpb246ImdpdGVhIixrZXk6ImdpdGVhIn0se29wdGlvbjoiZ2l0bGFiIixrZXk6ImdpdGxhYiJ9XX0KICAgICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7e29wdGlvbjoiZ2l0ZWEiLGtleToiZ2l0ZWEifX0KICAgICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiQmFzZSBVUkwifSAua2V5PSR7ImJhc2VVcmwifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJBUEkgVG9rZW4ifSAua2V5PSR7InRva2VuIn0gdHlwZT0icGFzc3dvcmQiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgcj0+e3IuZGVzdHJveSgpfX0se25hbWU6IkFkZCIsYWN0aW9uOmFzeW5jIHI9PntsZXQgaT1yLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiZGVlcy1pbnB1dC10ZXh0LCBkZWVzLWlucHV0LWRyb3Bkb3duIiksYT17fTtmb3IobGV0IG4gb2YgaSluLmtleT09PSJwcm92aWRlclR5cGUiP2Fbbi5rZXldPW4uc2VsZWN0ZWRPcHRpb24/LmtleXx8ImdpdGVhIjphW24ua2V5XT1uLnZhbHVlfHwiIjthd2FpdCBmci5kaXNwYXRjaEFjdGlvbihPNXIse25hbWU6YS5uYW1lLHByb3ZpZGVyVHlwZTphLnByb3ZpZGVyVHlwZSxiYXNlVXJsOmEuYmFzZVVybCx0b2tlbjphLnRva2VufSksci5kZXN0cm95KCl9fV19KX19O3loPW9hKGl1cikscDVlPW5ldyBXZWFrTWFwLEZ0KHloLDQsImNvbm5lY3Rpb25zU3RhdGUiLHJ1cixYNCxwNWUpLFg0PUZ0KHloLDAsIkdpdG9wc1ZpZXdDb25uZWN0aW9ucyIsYXVyLFg0KSx6aShYNCwic3R5bGVzIixbV2kuZGVmYXVsdFN0eWxlcyxMbl0pLGV0KHloLDEsWDQpfSk7dmFyIHV1cj17fTtGZSh1dXIse0dpdG9wc1ZpZXdQcm9qZWN0czooKT0+Y2x9KTt2YXIgb3VyLHN1cixsdXIsY3VyLGR1cixIbyxmNWUsbTVlLGc1ZSxjbCxiNWU9cChhc3luYygpPT57SDIoKTthd2FpdCBQYygpO1o0KCk7dm8oKTtkdXI9W2hpKCJnaXRvcHMtdmlldy1wcm9qZWN0cyIpXTtjbD1jbGFzcyBleHRlbmRzKGN1cj1EaSxsdXI9W2FyKCldLHN1cj1bYXIoKV0sb3VyPVthcigpXSxjdXIpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtncih0aGlzLGY1ZSxldChIbyw4LHRoaXMse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSkpLGV0KEhvLDExLHRoaXMpO2dyKHRoaXMsbTVlLGV0KEhvLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxldChIbywxNSx0aGlzKTtncih0aGlzLGc1ZSxldChIbywxNix0aGlzLCIiKSksZXQoSG8sMTksdGhpcyk7bGV0IHI9ZnIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpO2xldCBpPVV0LnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e3RoaXMuZGF0YVN0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpfXJlbmRlcigpe2xldCByPXRoaXMuY29ubmVjdGlvbnNTdGF0ZS5jb25uZWN0aW9ucy5tYXAoaT0+KHtvcHRpb246YCR7aS5uYW1lfSAoJHtpLnByb3ZpZGVyVHlwZX0pYCxrZXk6aS5pZH0pKTtyZXR1cm4gdXJgCiAgICAgIDxkaXYgY2xhc3M9InZpZXctdGl0bGUiPlByb2plY3RzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZXctZGVzY3JpcHRpb24iPkJyb3dzZSBwcm9qZWN0cyBmcm9tIHlvdXIgY29ubmVjdGVkIHByb3ZpZGVyczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IkNvbm5lY3Rpb24ifQogICAgICAgICAgLm9wdGlvbnM9JHtyfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ci5maW5kKGk9Pmkua2V5PT09dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCl8fHJbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHtpPT57dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1pLmRldGFpbC5rZXksdGhpcy5sb2FkUHJvamVjdHMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMubG9hZFByb2plY3RzKCl9PlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRlZXMtdGFibGUKICAgICAgICAuaGVhZGluZzE9JHsiUHJvamVjdHMifQogICAgICAgIC5oZWFkaW5nMj0keyJSZXBvc2l0b3JpZXMgZnJvbSB0aGUgc2VsZWN0ZWQgY29ubmVjdGlvbiJ9CiAgICAgICAgLmRhdGE9JHt0aGlzLmRhdGFTdGF0ZS5wcm9qZWN0c30KICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7aT0+KHtOYW1lOmkubmFtZSxQYXRoOmkuZnVsbFBhdGgsVmlzaWJpbGl0eTppLnZpc2liaWxpdHksQnJhbmNoOmkuZGVmYXVsdEJyYW5jaCwiTGFzdCBBY3Rpdml0eSI6aS5sYXN0QWN0aXZpdHk/bmV3IERhdGUoaS5sYXN0QWN0aXZpdHkpLnRvTG9jYWxlRGF0ZVN0cmluZygpOiItIn0pfQogICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVmlldyBTZWNyZXRzIixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmFzeW5jIGk9PntsbC5kaXNwYXRjaEFjdGlvbihuNSx7dmlldzoic2VjcmV0cyJ9KX19LHtuYW1lOiJWaWV3IFBpcGVsaW5lcyIsaWNvbk5hbWU6Imx1Y2lkZTpwbGF5IixhY3Rpb246YXN5bmMgaT0+e2xsLmRpc3BhdGNoQWN0aW9uKG41LHt2aWV3OiJwaXBlbGluZXMifSl9fV19CiAgICAgID48L2RlZXMtdGFibGU+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IGZyLmRpc3BhdGNoQWN0aW9uKF9uLG51bGwpO2xldCByPWZyLmdldFN0YXRlKCkuY29ubmVjdGlvbnM7ci5sZW5ndGg+MCYmIXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJih0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPXJbMF0uaWQsYXdhaXQgdGhpcy5sb2FkUHJvamVjdHMoKSl9YXN5bmMgbG9hZFByb2plY3RzKCl7dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmYXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oRzQse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkfSl9fTtIbz1vYShjdXIpLGY1ZT1uZXcgV2Vha01hcCxtNWU9bmV3IFdlYWtNYXAsZzVlPW5ldyBXZWFrTWFwLEZ0KEhvLDQsImNvbm5lY3Rpb25zU3RhdGUiLGx1cixjbCxmNWUpLEZ0KEhvLDQsImRhdGFTdGF0ZSIsc3VyLGNsLG01ZSksRnQoSG8sNCwic2VsZWN0ZWRDb25uZWN0aW9uSWQiLG91cixjbCxnNWUpLGNsPUZ0KEhvLDAsIkdpdG9wc1ZpZXdQcm9qZWN0cyIsZHVyLGNsKSx6aShjbCwic3R5bGVzIixbV2kuZGVmYXVsdFN0eWxlcyxMbl0pLGV0KEhvLDEsY2wpfSk7dmFyIGJ1cj17fTtGZShidXIse0dpdG9wc1ZpZXdHcm91cHM6KCk9PmRsfSk7dmFyIHB1cixodXIsZnVyLG11cixndXIscW8sdjVlLHg1ZSx5NWUsZGwsdzVlPXAoYXN5bmMoKT0+e0gyKCk7YXdhaXQgUGMoKTtaNCgpO3ZvKCk7Z3VyPVtoaSgiZ2l0b3BzLXZpZXctZ3JvdXBzIildO2RsPWNsYXNzIGV4dGVuZHMobXVyPURpLGZ1cj1bYXIoKV0saHVyPVthcigpXSxwdXI9W2FyKCldLG11cil7Y29uc3RydWN0b3IoKXtzdXBlcigpO2dyKHRoaXMsdjVlLGV0KHFvLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksZXQocW8sMTEsdGhpcyk7Z3IodGhpcyx4NWUsZXQocW8sMTIsdGhpcyx7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSkpLGV0KHFvLDE1LHRoaXMpO2dyKHRoaXMseTVlLGV0KHFvLDE2LHRoaXMsIiIpKSxldChxbywxOSx0aGlzKTtsZXQgcj1mci5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKGE9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGk9VXQuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5kYXRhU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IHI9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLm1hcChpPT4oe29wdGlvbjpgJHtpLm5hbWV9ICgke2kucHJvdmlkZXJUeXBlfSlgLGtleTppLmlkfSkpO3JldHVybiB1cmAKICAgICAgPGRpdiBjbGFzcz0idmlldy10aXRsZSI+R3JvdXBzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZXctZGVzY3JpcHRpb24iPkJyb3dzZSBvcmdhbml6YXRpb25zIGFuZCBncm91cHMgZnJvbSB5b3VyIGNvbm5lY3RlZCBwcm92aWRlcnM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJDb25uZWN0aW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7cn0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3IuZmluZChpPT5pLmtleT09PXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQpfHxyWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7aT0+e3RoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9aS5kZXRhaWwua2V5LHRoaXMubG9hZEdyb3VwcygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWJ1dHRvbiBAY2xpY2s9JHsoKT0+dGhpcy5sb2FkR3JvdXBzKCl9PlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRlZXMtdGFibGUKICAgICAgICAuaGVhZGluZzE9JHsiR3JvdXBzIC8gT3JnYW5pemF0aW9ucyJ9CiAgICAgICAgLmhlYWRpbmcyPSR7Ikdyb3VwcyBmcm9tIHRoZSBzZWxlY3RlZCBjb25uZWN0aW9uIn0KICAgICAgICAuZGF0YT0ke3RoaXMuZGF0YVN0YXRlLmdyb3Vwc30KICAgICAgICAuZGlzcGxheUZ1bmN0aW9uPSR7aT0+KHtOYW1lOmkubmFtZSxQYXRoOmkuZnVsbFBhdGgsVmlzaWJpbGl0eTppLnZpc2liaWxpdHksUHJvamVjdHM6U3RyaW5nKGkucHJvamVjdENvdW50KX0pfQogICAgICAgIC5kYXRhQWN0aW9ucz0ke1t7bmFtZToiVmlldyBTZWNyZXRzIixpY29uTmFtZToibHVjaWRlOmtleSIsYWN0aW9uOmFzeW5jIGk9PntsbC5kaXNwYXRjaEFjdGlvbihuNSx7dmlldzoic2VjcmV0cyJ9KX19XX0KICAgICAgPjwvZGVlcy10YWJsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgZnIuZGlzcGF0Y2hBY3Rpb24oX24sbnVsbCk7bGV0IHI9ZnIuZ2V0U3RhdGUoKS5jb25uZWN0aW9ucztyLmxlbmd0aD4wJiYhdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmKHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9clswXS5pZCxhd2FpdCB0aGlzLmxvYWRHcm91cHMoKSl9YXN5bmMgbG9hZEdyb3Vwcygpe3RoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJmF3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKFNGLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZH0pfX07cW89b2EobXVyKSx2NWU9bmV3IFdlYWtNYXAseDVlPW5ldyBXZWFrTWFwLHk1ZT1uZXcgV2Vha01hcCxGdChxbyw0LCJjb25uZWN0aW9uc1N0YXRlIixmdXIsZGwsdjVlKSxGdChxbyw0LCJkYXRhU3RhdGUiLGh1cixkbCx4NWUpLEZ0KHFvLDQsInNlbGVjdGVkQ29ubmVjdGlvbklkIixwdXIsZGwseTVlKSxkbD1GdChxbywwLCJHaXRvcHNWaWV3R3JvdXBzIixndXIsZGwpLHppKGRsLCJzdHlsZXMiLFtXaS5kZWZhdWx0U3R5bGVzLExuXSksZXQocW8sMSxkbCl9KTt2YXIgenVyPXt9O0ZlKHp1cix7R2l0b3BzVmlld1NlY3JldHM6KCk9PmpvfSk7dmFyIHZ1cix4dXIseXVyLHd1cixNdXIsa3VyLFN1cixCaSxNNWUsazVlLFM1ZSx6NWUsQzVlLGpvLFQ1ZT1wKGFzeW5jKCk9PntIMigpO2F3YWl0IFBjKCk7WjQoKTt2bygpO1N1cj1baGkoImdpdG9wcy12aWV3LXNlY3JldHMiKV07am89Y2xhc3MgZXh0ZW5kcyhrdXI9RGksTXVyPVthcigpXSx3dXI9W2FyKCldLHl1cj1bYXIoKV0seHVyPVthcigpXSx2dXI9W2FyKCldLGt1cil7Y29uc3RydWN0b3IoKXtzdXBlcigpO2dyKHRoaXMsTTVlLGV0KEJpLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksZXQoQmksMTEsdGhpcyk7Z3IodGhpcyxrNWUsZXQoQmksMTIsdGhpcyx7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSkpLGV0KEJpLDE1LHRoaXMpO2dyKHRoaXMsUzVlLGV0KEJpLDE2LHRoaXMsIiIpKSxldChCaSwxOSx0aGlzKTtncih0aGlzLHo1ZSxldChCaSwyMCx0aGlzLCJwcm9qZWN0IikpLGV0KEJpLDIzLHRoaXMpO2dyKHRoaXMsQzVlLGV0KEJpLDI0LHRoaXMsIiIpKSxldChCaSwyNyx0aGlzKTtsZXQgcj1mci5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKGE9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGk9VXQuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5kYXRhU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IHI9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLm1hcChuPT4oe29wdGlvbjpgJHtuLm5hbWV9ICgke24ucHJvdmlkZXJUeXBlfSlgLGtleTpuLmlkfSkpLGk9W3tvcHRpb246IlByb2plY3QiLGtleToicHJvamVjdCJ9LHtvcHRpb246Ikdyb3VwIixrZXk6Imdyb3VwIn1dLGE9dGhpcy5zZWxlY3RlZFNjb3BlPT09InByb2plY3QiP3RoaXMuZGF0YVN0YXRlLnByb2plY3RzLm1hcChuPT4oe29wdGlvbjpuLmZ1bGxQYXRofHxuLm5hbWUsa2V5Om4uaWR9KSk6dGhpcy5kYXRhU3RhdGUuZ3JvdXBzLm1hcChuPT4oe29wdGlvbjpuLmZ1bGxQYXRofHxuLm5hbWUsa2V5Om4uaWR9KSk7cmV0dXJuIHVyYAogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRpdGxlIj5TZWNyZXRzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZXctZGVzY3JpcHRpb24iPk1hbmFnZSBDSS9DRCBzZWNyZXRzIGFuZCB2YXJpYWJsZXM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idG9vbGJhciI+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJDb25uZWN0aW9uIn0KICAgICAgICAgIC5vcHRpb25zPSR7cn0KICAgICAgICAgIC5zZWxlY3RlZE9wdGlvbj0ke3IuZmluZChuPT5uLmtleT09PXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQpfHxyWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7bj0+e3RoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9bi5kZXRhaWwua2V5LHRoaXMubG9hZEVudGl0aWVzKCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtaW5wdXQtZHJvcGRvd24KICAgICAgICAgIC5sYWJlbD0keyJTY29wZSJ9CiAgICAgICAgICAub3B0aW9ucz0ke2l9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHtpLmZpbmQobj0+bi5rZXk9PT10aGlzLnNlbGVjdGVkU2NvcGUpfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7bj0+e3RoaXMuc2VsZWN0ZWRTY29wZT1uLmRldGFpbC5rZXksdGhpcy5sb2FkRW50aXRpZXMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7dGhpcy5zZWxlY3RlZFNjb3BlPT09InByb2plY3QiPyJQcm9qZWN0IjoiR3JvdXAifQogICAgICAgICAgLm9wdGlvbnM9JHthfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7YS5maW5kKG49Pm4ua2V5PT09dGhpcy5zZWxlY3RlZFNjb3BlSWQpfHxhWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7bj0+e3RoaXMuc2VsZWN0ZWRTY29wZUlkPW4uZGV0YWlsLmtleSx0aGlzLmxvYWRTZWNyZXRzKCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmFkZFNlY3JldCgpfT5BZGQgU2VjcmV0PC9kZWVzLWJ1dHRvbj4KICAgICAgICA8ZGVlcy1idXR0b24gQGNsaWNrPSR7KCk9PnRoaXMubG9hZFNlY3JldHMoKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJTZWNyZXRzIn0KICAgICAgICAuaGVhZGluZzI9JHsiQ0kvQ0QgdmFyaWFibGVzIGZvciB0aGUgc2VsZWN0ZWQgZW50aXR5In0KICAgICAgICAuZGF0YT0ke3RoaXMuZGF0YVN0YXRlLnNlY3JldHN9CiAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke249Pih7S2V5Om4ua2V5LFZhbHVlOm4ubWFza2VkPyIqKioqKioiOm4udmFsdWUsUHJvdGVjdGVkOm4ucHJvdGVjdGVkPyJZZXMiOiJObyIsRW52aXJvbm1lbnQ6bi5lbnZpcm9ubWVudHx8IioifSl9CiAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJFZGl0IixpY29uTmFtZToibHVjaWRlOmVkaXQiLGFjdGlvbjphc3luYyBuPT57YXdhaXQgdGhpcy5lZGl0U2VjcmV0KG4pfX0se25hbWU6IkRlbGV0ZSIsaWNvbk5hbWU6Imx1Y2lkZTp0cmFzaDIiLGFjdGlvbjphc3luYyBuPT57YXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oVjVyLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxzY29wZTp0aGlzLnNlbGVjdGVkU2NvcGUsc2NvcGVJZDp0aGlzLnNlbGVjdGVkU2NvcGVJZCxrZXk6bi5rZXl9KX19XX0KICAgICAgPjwvZGVlcy10YWJsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgZnIuZGlzcGF0Y2hBY3Rpb24oX24sbnVsbCk7bGV0IHI9ZnIuZ2V0U3RhdGUoKS5jb25uZWN0aW9ucztyLmxlbmd0aD4wJiYhdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmKHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9clswXS5pZCxhd2FpdCB0aGlzLmxvYWRFbnRpdGllcygpKX1hc3luYyBsb2FkRW50aXRpZXMoKXt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiYodGhpcy5zZWxlY3RlZFNjb3BlPT09InByb2plY3QiP2F3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKEc0LHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZH0pOmF3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKFNGLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZH0pKX1hc3luYyBsb2FkU2VjcmV0cygpeyF0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkfHwhdGhpcy5zZWxlY3RlZFNjb3BlSWR8fGF3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKEg1cix7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQsc2NvcGU6dGhpcy5zZWxlY3RlZFNjb3BlLHNjb3BlSWQ6dGhpcy5zZWxlY3RlZFNjb3BlSWR9KX1hc3luYyBhZGRTZWNyZXQoKXthd2FpdCBCMi5EZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzoiQWRkIFNlY3JldCIsY29udGVudDp1cmAKICAgICAgICA8c3R5bGU+LmZvcm0tcm93IHsgbWFyZ2luLWJvdHRvbTogMTZweDsgfTwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiS2V5In0gLmtleT0keyJrZXkifT48L2RlZXMtaW5wdXQtdGV4dD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLXJvdyI+CiAgICAgICAgICA8ZGVlcy1pbnB1dC10ZXh0IC5sYWJlbD0keyJWYWx1ZSJ9IC5rZXk9JHsidmFsdWUifSB0eXBlPSJwYXNzd29yZCI+PC9kZWVzLWlucHV0LXRleHQ+CiAgICAgICAgPC9kaXY+CiAgICAgIGAsbWVudU9wdGlvbnM6W3tuYW1lOiJDYW5jZWwiLGFjdGlvbjphc3luYyByPT57ci5kZXN0cm95KCl9fSx7bmFtZToiQ3JlYXRlIixhY3Rpb246YXN5bmMgcj0+e2xldCBpPXIuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCJkZWVzLWlucHV0LXRleHQiKSxhPXt9O2ZvcihsZXQgbiBvZiBpKWFbbi5rZXldPW4udmFsdWV8fCIiO2F3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKHE1cix7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQsc2NvcGU6dGhpcy5zZWxlY3RlZFNjb3BlLHNjb3BlSWQ6dGhpcy5zZWxlY3RlZFNjb3BlSWQsa2V5OmEua2V5LHZhbHVlOmEudmFsdWV9KSxyLmRlc3Ryb3koKX19XX0pfWFzeW5jIGVkaXRTZWNyZXQocil7YXdhaXQgQjIuRGVlc01vZGFsLmNyZWF0ZUFuZFNob3coe2hlYWRpbmc6YEVkaXQgU2VjcmV0OiAke3Iua2V5fWAsY29udGVudDp1cmAKICAgICAgICA8c3R5bGU+LmZvcm0tcm93IHsgbWFyZ2luLWJvdHRvbTogMTZweDsgfTwvc3R5bGU+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgPGRlZXMtaW5wdXQtdGV4dCAubGFiZWw9JHsiVmFsdWUifSAua2V5PSR7InZhbHVlIn0gdHlwZT0icGFzc3dvcmQiPjwvZGVlcy1pbnB1dC10ZXh0PgogICAgICAgIDwvZGl2PgogICAgICBgLG1lbnVPcHRpb25zOlt7bmFtZToiQ2FuY2VsIixhY3Rpb246YXN5bmMgaT0+e2kuZGVzdHJveSgpfX0se25hbWU6IlVwZGF0ZSIsYWN0aW9uOmFzeW5jIGk9PntsZXQgYT1pLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1pbnB1dC10ZXh0Iik7YXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oajVyLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxzY29wZTp0aGlzLnNlbGVjdGVkU2NvcGUsc2NvcGVJZDp0aGlzLnNlbGVjdGVkU2NvcGVJZCxrZXk6ci5rZXksdmFsdWU6YT8udmFsdWV8fCIifSksaS5kZXN0cm95KCl9fV19KX19O0JpPW9hKGt1ciksTTVlPW5ldyBXZWFrTWFwLGs1ZT1uZXcgV2Vha01hcCxTNWU9bmV3IFdlYWtNYXAsejVlPW5ldyBXZWFrTWFwLEM1ZT1uZXcgV2Vha01hcCxGdChCaSw0LCJjb25uZWN0aW9uc1N0YXRlIixNdXIsam8sTTVlKSxGdChCaSw0LCJkYXRhU3RhdGUiLHd1cixqbyxrNWUpLEZ0KEJpLDQsInNlbGVjdGVkQ29ubmVjdGlvbklkIix5dXIsam8sUzVlKSxGdChCaSw0LCJzZWxlY3RlZFNjb3BlIix4dXIsam8sejVlKSxGdChCaSw0LCJzZWxlY3RlZFNjb3BlSWQiLHZ1cixqbyxDNWUpLGpvPUZ0KEJpLDAsIkdpdG9wc1ZpZXdTZWNyZXRzIixTdXIsam8pLHppKGpvLCJzdHlsZXMiLFtXaS5kZWZhdWx0U3R5bGVzLExuXSksZXQoQmksMSxqbyl9KTt2YXIgRXVyPXt9O0ZlKEV1cix7R2l0b3BzVmlld1BpcGVsaW5lczooKT0+ajJ9KTt2YXIgQ3VyLFR1cixfdXIsTHVyLEF1cixEdXIsY24sXzVlLEw1ZSxBNWUsRDVlLGoyLEU1ZT1wKGFzeW5jKCk9PntIMigpO2F3YWl0IFBjKCk7WjQoKTt2bygpO0R1cj1baGkoImdpdG9wcy12aWV3LXBpcGVsaW5lcyIpXTtqMj1jbGFzcyBleHRlbmRzKEF1cj1EaSxMdXI9W2FyKCldLF91cj1bYXIoKV0sVHVyPVthcigpXSxDdXI9W2FyKCldLEF1cil7Y29uc3RydWN0b3IoKXtzdXBlcigpO2dyKHRoaXMsXzVlLGV0KGNuLDgsdGhpcyx7Y29ubmVjdGlvbnM6W10sYWN0aXZlQ29ubmVjdGlvbklkOm51bGx9KSksZXQoY24sMTEsdGhpcyk7Z3IodGhpcyxMNWUsZXQoY24sMTIsdGhpcyx7cHJvamVjdHM6W10sZ3JvdXBzOltdLHNlY3JldHM6W10scGlwZWxpbmVzOltdLHBpcGVsaW5lSm9iczpbXSxjdXJyZW50Sm9iTG9nOiIifSkpLGV0KGNuLDE1LHRoaXMpO2dyKHRoaXMsQTVlLGV0KGNuLDE2LHRoaXMsIiIpKSxldChjbiwxOSx0aGlzKTtncih0aGlzLEQ1ZSxldChjbiwyMCx0aGlzLCIiKSksZXQoY24sMjMsdGhpcyk7bGV0IHI9ZnIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5jb25uZWN0aW9uc1N0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKHIpO2xldCBpPVV0LnNlbGVjdChhPT5hKS5zdWJzY3JpYmUoYT0+e3RoaXMuZGF0YVN0YXRlPWF9KTt0aGlzLnJ4U3Vic2NyaXB0aW9ucy5wdXNoKGkpfXJlbmRlcigpe2xldCByPXRoaXMuY29ubmVjdGlvbnNTdGF0ZS5jb25uZWN0aW9ucy5tYXAoYT0+KHtvcHRpb246YCR7YS5uYW1lfSAoJHthLnByb3ZpZGVyVHlwZX0pYCxrZXk6YS5pZH0pKSxpPXRoaXMuZGF0YVN0YXRlLnByb2plY3RzLm1hcChhPT4oe29wdGlvbjphLmZ1bGxQYXRofHxhLm5hbWUsa2V5OmEuaWR9KSk7cmV0dXJuIHVyYAogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LXRpdGxlIj5QaXBlbGluZXM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlldy1kZXNjcmlwdGlvbiI+VmlldyBhbmQgbWFuYWdlIENJL0NEIHBpcGVsaW5lczwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ0b29sYmFyIj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IkNvbm5lY3Rpb24ifQogICAgICAgICAgLm9wdGlvbnM9JHtyfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7ci5maW5kKGE9PmEua2V5PT09dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCl8fHJbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHthPT57dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZD1hLmRldGFpbC5rZXksdGhpcy5sb2FkUHJvamVjdHMoKX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IlByb2plY3QifQogICAgICAgICAgLm9wdGlvbnM9JHtpfQogICAgICAgICAgLnNlbGVjdGVkT3B0aW9uPSR7aS5maW5kKGE9PmEua2V5PT09dGhpcy5zZWxlY3RlZFByb2plY3RJZCl8fGlbMF19CiAgICAgICAgICBAc2VsZWN0ZWRPcHRpb249JHthPT57dGhpcy5zZWxlY3RlZFByb2plY3RJZD1hLmRldGFpbC5rZXksdGhpcy5sb2FkUGlwZWxpbmVzKCl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmxvYWRQaXBlbGluZXMoKX0+UmVmcmVzaDwvZGVlcy1idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGVlcy10YWJsZQogICAgICAgIC5oZWFkaW5nMT0keyJDSS9DRCBQaXBlbGluZXMifQogICAgICAgIC5oZWFkaW5nMj0keyJQaXBlbGluZSBydW5zIGZvciB0aGUgc2VsZWN0ZWQgcHJvamVjdCJ9CiAgICAgICAgLmRhdGE9JHt0aGlzLmRhdGFTdGF0ZS5waXBlbGluZXN9CiAgICAgICAgLmRpc3BsYXlGdW5jdGlvbj0ke2E9Pih7SUQ6YS5pZCxTdGF0dXM6YS5zdGF0dXMsUmVmOmEucmVmLER1cmF0aW9uOmEuZHVyYXRpb24/YCR7TWF0aC5yb3VuZChhLmR1cmF0aW9uKX1zYDoiLSIsU291cmNlOmEuc291cmNlLENyZWF0ZWQ6YS5jcmVhdGVkQXQ/bmV3IERhdGUoYS5jcmVhdGVkQXQpLnRvTG9jYWxlU3RyaW5nKCk6Ii0ifSl9CiAgICAgICAgLmRhdGFBY3Rpb25zPSR7W3tuYW1lOiJWaWV3IEpvYnMiLGljb25OYW1lOiJsdWNpZGU6bGlzdCIsYWN0aW9uOmFzeW5jIGE9Pnthd2FpdCB0aGlzLnZpZXdKb2JzKGEpfX0se25hbWU6IlJldHJ5IixpY29uTmFtZToibHVjaWRlOnJlZnJlc2gtY3ciLGFjdGlvbjphc3luYyBhPT57YXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oRzVyLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dGhpcy5zZWxlY3RlZFByb2plY3RJZCxwaXBlbGluZUlkOmEuaWR9KX19LHtuYW1lOiJDYW5jZWwiLGljb25OYW1lOiJsdWNpZGU6eC1jaXJjbGUiLGFjdGlvbjphc3luYyBhPT57YXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oWTVyLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dGhpcy5zZWxlY3RlZFByb2plY3RJZCxwaXBlbGluZUlkOmEuaWR9KX19XX0KICAgICAgPjwvZGVlcy10YWJsZT4KICAgIGB9YXN5bmMgZmlyc3RVcGRhdGVkKCl7YXdhaXQgZnIuZGlzcGF0Y2hBY3Rpb24oX24sbnVsbCk7bGV0IHI9ZnIuZ2V0U3RhdGUoKS5jb25uZWN0aW9ucztyLmxlbmd0aD4wJiYhdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmKHRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQ9clswXS5pZCxhd2FpdCB0aGlzLmxvYWRQcm9qZWN0cygpKX1hc3luYyBsb2FkUHJvamVjdHMoKXt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkJiZhd2FpdCBVdC5kaXNwYXRjaEFjdGlvbihHNCx7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR9KX1hc3luYyBsb2FkUGlwZWxpbmVzKCl7IXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWR8fCF0aGlzLnNlbGVjdGVkUHJvamVjdElkfHxhd2FpdCBVdC5kaXNwYXRjaEFjdGlvbihVNXIse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkLHByb2plY3RJZDp0aGlzLnNlbGVjdGVkUHJvamVjdElkfSl9YXN5bmMgdmlld0pvYnMocil7YXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oVzVyLHtjb25uZWN0aW9uSWQ6dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCxwcm9qZWN0SWQ6dGhpcy5zZWxlY3RlZFByb2plY3RJZCxwaXBlbGluZUlkOnIuaWR9KTtsZXQgaT1VdC5nZXRTdGF0ZSgpLnBpcGVsaW5lSm9iczthd2FpdCBCMi5EZWVzTW9kYWwuY3JlYXRlQW5kU2hvdyh7aGVhZGluZzpgUGlwZWxpbmUgIyR7ci5pZH0gLSBKb2JzYCxjb250ZW50OnVyYAogICAgICAgIDxzdHlsZT4KICAgICAgICAgIC5qb2JzLWxpc3QgeyBjb2xvcjogI2ZmZjsgfQogICAgICAgICAgLmpvYi1pdGVtIHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBwYWRkaW5nOiA4cHggMDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7IH0KICAgICAgICAgIC5qb2ItbmFtZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICAgICAgICAgIC5qb2Itc3RhdHVzIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC1zaXplOiAxMnB4OyB9CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8ZGl2IGNsYXNzPSJqb2JzLWxpc3QiPgogICAgICAgICAgJHtpLm1hcChhPT51cmAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iam9iLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJqb2ItbmFtZSI+JHthLm5hbWV9ICgke2Euc3RhZ2V9KTwvc3Bhbj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iam9iLXN0YXR1cyI+JHthLnN0YXR1c30gLSAke2EuZHVyYXRpb24/YCR7TWF0aC5yb3VuZChhLmR1cmF0aW9uKX1zYDoiLSJ9PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIGApfQogICAgICAgICAgJHtpLmxlbmd0aD09PTA/dXJgPHA+Tm8gam9icyBmb3VuZC48L3A+YDoiIn0KICAgICAgICA8L2Rpdj4KICAgICAgYCxtZW51T3B0aW9uczpbe25hbWU6IkNsb3NlIixhY3Rpb246YXN5bmMgYT0+e2EuZGVzdHJveSgpfX1dfSl9fTtjbj1vYShBdXIpLF81ZT1uZXcgV2Vha01hcCxMNWU9bmV3IFdlYWtNYXAsQTVlPW5ldyBXZWFrTWFwLEQ1ZT1uZXcgV2Vha01hcCxGdChjbiw0LCJjb25uZWN0aW9uc1N0YXRlIixMdXIsajIsXzVlKSxGdChjbiw0LCJkYXRhU3RhdGUiLF91cixqMixMNWUpLEZ0KGNuLDQsInNlbGVjdGVkQ29ubmVjdGlvbklkIixUdXIsajIsQTVlKSxGdChjbiw0LCJzZWxlY3RlZFByb2plY3RJZCIsQ3VyLGoyLEQ1ZSksajI9RnQoY24sMCwiR2l0b3BzVmlld1BpcGVsaW5lcyIsRHVyLGoyKSx6aShqMiwic3R5bGVzIixbV2kuZGVmYXVsdFN0eWxlcyxMbixaMWAKICAgICAgLnN0YXR1cy1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgIH0KICAgICAgLnN0YXR1cy1zdWNjZXNzIHsgYmFja2dyb3VuZDogIzFhM2ExYTsgY29sb3I6ICMwMGZmODg7IH0KICAgICAgLnN0YXR1cy1mYWlsZWQgeyBiYWNrZ3JvdW5kOiAjM2ExYTFhOyBjb2xvcjogI2ZmNDQ0NDsgfQogICAgICAuc3RhdHVzLXJ1bm5pbmcgeyBiYWNrZ3JvdW5kOiAjMWEyYTNhOyBjb2xvcjogIzAwYWNmZjsgfQogICAgICAuc3RhdHVzLXBlbmRpbmcgeyBiYWNrZ3JvdW5kOiAjM2EzYTFhOyBjb2xvcjogI2ZmYWEwMDsgfQogICAgICAuc3RhdHVzLWNhbmNlbGVkIHsgYmFja2dyb3VuZDogIzJhMmEyYTsgY29sb3I6ICM5OTk7IH0KICAgIGBdKSxldChjbiwxLGoyKX0pO3ZhciBCdXI9e307RmUoQnVyLHtHaXRvcHNWaWV3QnVpbGRsb2c6KCk9PlZvfSk7dmFyICR1cixJdXIsUHVyLE51cixGdXIsT3VyLFJ1cixIaSwkNWUsSTVlLFA1ZSxONWUsRjVlLFZvLE81ZT1wKGFzeW5jKCk9PntIMigpO2F3YWl0IFBjKCk7WjQoKTt2bygpO1J1cj1baGkoImdpdG9wcy12aWV3LWJ1aWxkbG9nIildO1ZvPWNsYXNzIGV4dGVuZHMoT3VyPURpLEZ1cj1bYXIoKV0sTnVyPVthcigpXSxQdXI9W2FyKCldLEl1cj1bYXIoKV0sJHVyPVthcigpXSxPdXIpe2NvbnN0cnVjdG9yKCl7c3VwZXIoKTtncih0aGlzLCQ1ZSxldChIaSw4LHRoaXMse2Nvbm5lY3Rpb25zOltdLGFjdGl2ZUNvbm5lY3Rpb25JZDpudWxsfSkpLGV0KEhpLDExLHRoaXMpO2dyKHRoaXMsSTVlLGV0KEhpLDEyLHRoaXMse3Byb2plY3RzOltdLGdyb3VwczpbXSxzZWNyZXRzOltdLHBpcGVsaW5lczpbXSxwaXBlbGluZUpvYnM6W10sY3VycmVudEpvYkxvZzoiIn0pKSxldChIaSwxNSx0aGlzKTtncih0aGlzLFA1ZSxldChIaSwxNix0aGlzLCIiKSksZXQoSGksMTksdGhpcyk7Z3IodGhpcyxONWUsZXQoSGksMjAsdGhpcywiIikpLGV0KEhpLDIzLHRoaXMpO2dyKHRoaXMsRjVlLGV0KEhpLDI0LHRoaXMsIiIpKSxldChIaSwyNyx0aGlzKTtsZXQgcj1mci5zZWxlY3QoYT0+YSkuc3Vic2NyaWJlKGE9Pnt0aGlzLmNvbm5lY3Rpb25zU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGk9VXQuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5kYXRhU3RhdGU9YX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7bGV0IHI9dGhpcy5jb25uZWN0aW9uc1N0YXRlLmNvbm5lY3Rpb25zLm1hcChuPT4oe29wdGlvbjpgJHtuLm5hbWV9ICgke24ucHJvdmlkZXJUeXBlfSlgLGtleTpuLmlkfSkpLGk9dGhpcy5kYXRhU3RhdGUucHJvamVjdHMubWFwKG49Pih7b3B0aW9uOm4uZnVsbFBhdGh8fG4ubmFtZSxrZXk6bi5pZH0pKSxhPXRoaXMuZGF0YVN0YXRlLnBpcGVsaW5lSm9icy5tYXAobj0+KHtvcHRpb246YCR7bi5uYW1lfSAoJHtuLnN0YXR1c30pYCxrZXk6bi5pZH0pKTtyZXR1cm4gdXJgCiAgICAgIDxkaXYgY2xhc3M9InZpZXctdGl0bGUiPkJ1aWxkIExvZzwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJ2aWV3LWRlc2NyaXB0aW9uIj5WaWV3IHJhdyBidWlsZCBsb2dzIGZvciBDSS9DRCBqb2JzPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InRvb2xiYXIiPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiQ29ubmVjdGlvbiJ9CiAgICAgICAgICAub3B0aW9ucz0ke3J9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHtyLmZpbmQobj0+bi5rZXk9PT10aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkKXx8clswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke249Pnt0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPW4uZGV0YWlsLmtleSx0aGlzLmxvYWRQcm9qZWN0cygpfX0KICAgICAgICA+PC9kZWVzLWlucHV0LWRyb3Bkb3duPgogICAgICAgIDxkZWVzLWlucHV0LWRyb3Bkb3duCiAgICAgICAgICAubGFiZWw9JHsiUHJvamVjdCJ9CiAgICAgICAgICAub3B0aW9ucz0ke2l9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHtpLmZpbmQobj0+bi5rZXk9PT10aGlzLnNlbGVjdGVkUHJvamVjdElkKXx8aVswXX0KICAgICAgICAgIEBzZWxlY3RlZE9wdGlvbj0ke249Pnt0aGlzLnNlbGVjdGVkUHJvamVjdElkPW4uZGV0YWlsLmtleX19CiAgICAgICAgPjwvZGVlcy1pbnB1dC1kcm9wZG93bj4KICAgICAgICA8ZGVlcy1pbnB1dC1kcm9wZG93bgogICAgICAgICAgLmxhYmVsPSR7IkpvYiJ9CiAgICAgICAgICAub3B0aW9ucz0ke2F9CiAgICAgICAgICAuc2VsZWN0ZWRPcHRpb249JHthLmZpbmQobj0+bi5rZXk9PT10aGlzLnNlbGVjdGVkSm9iSWQpfHxhWzBdfQogICAgICAgICAgQHNlbGVjdGVkT3B0aW9uPSR7bj0+e3RoaXMuc2VsZWN0ZWRKb2JJZD1uLmRldGFpbC5rZXl9fQogICAgICAgID48L2RlZXMtaW5wdXQtZHJvcGRvd24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmZldGNoTG9nKCl9PkZldGNoIExvZzwvZGVlcy1idXR0b24+CiAgICAgICAgPGRlZXMtYnV0dG9uIEBjbGljaz0keygpPT50aGlzLmZldGNoTG9nKCl9PlJlZnJlc2g8L2RlZXMtYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgJHt0aGlzLnNlbGVjdGVkSm9iSWQ/dXJgCiAgICAgICAgPGRpdiBjbGFzcz0iam9iLW1ldGEiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImpvYi1tZXRhLWl0ZW0iPkpvYjogPHN0cm9uZz4ke3RoaXMuc2VsZWN0ZWRKb2JJZH08L3N0cm9uZz48L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iam9iLW1ldGEtaXRlbSI+UHJvamVjdDogPHN0cm9uZz4ke3RoaXMuc2VsZWN0ZWRQcm9qZWN0SWR9PC9zdHJvbmc+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICBgOiIifQogICAgICA8ZGl2IGNsYXNzPSJsb2ctY29udGFpbmVyIj4KICAgICAgICAke3RoaXMuZGF0YVN0YXRlLmN1cnJlbnRKb2JMb2c/dGhpcy5kYXRhU3RhdGUuY3VycmVudEpvYkxvZzp1cmA8ZGl2IGNsYXNzPSJsb2ctZW1wdHkiPlNlbGVjdCBhIGNvbm5lY3Rpb24sIHByb2plY3QsIGFuZCBqb2IsIHRoZW4gY2xpY2sgIkZldGNoIExvZyIgdG8gdmlldyBidWlsZCBvdXRwdXQuPC9kaXY+YH0KICAgICAgPC9kaXY+CiAgICBgfWFzeW5jIGZpcnN0VXBkYXRlZCgpe2F3YWl0IGZyLmRpc3BhdGNoQWN0aW9uKF9uLG51bGwpO2xldCByPWZyLmdldFN0YXRlKCkuY29ubmVjdGlvbnM7ci5sZW5ndGg+MCYmIXRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQmJih0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkPXJbMF0uaWQsYXdhaXQgdGhpcy5sb2FkUHJvamVjdHMoKSl9YXN5bmMgbG9hZFByb2plY3RzKCl7dGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZCYmYXdhaXQgVXQuZGlzcGF0Y2hBY3Rpb24oRzQse2Nvbm5lY3Rpb25JZDp0aGlzLnNlbGVjdGVkQ29ubmVjdGlvbklkfSl9YXN5bmMgZmV0Y2hMb2coKXshdGhpcy5zZWxlY3RlZENvbm5lY3Rpb25JZHx8IXRoaXMuc2VsZWN0ZWRQcm9qZWN0SWR8fCF0aGlzLnNlbGVjdGVkSm9iSWR8fGF3YWl0IFV0LmRpc3BhdGNoQWN0aW9uKFo1cix7Y29ubmVjdGlvbklkOnRoaXMuc2VsZWN0ZWRDb25uZWN0aW9uSWQscHJvamVjdElkOnRoaXMuc2VsZWN0ZWRQcm9qZWN0SWQsam9iSWQ6dGhpcy5zZWxlY3RlZEpvYklkfSl9fTtIaT1vYShPdXIpLCQ1ZT1uZXcgV2Vha01hcCxJNWU9bmV3IFdlYWtNYXAsUDVlPW5ldyBXZWFrTWFwLE41ZT1uZXcgV2Vha01hcCxGNWU9bmV3IFdlYWtNYXAsRnQoSGksNCwiY29ubmVjdGlvbnNTdGF0ZSIsRnVyLFZvLCQ1ZSksRnQoSGksNCwiZGF0YVN0YXRlIixOdXIsVm8sSTVlKSxGdChIaSw0LCJzZWxlY3RlZENvbm5lY3Rpb25JZCIsUHVyLFZvLFA1ZSksRnQoSGksNCwic2VsZWN0ZWRQcm9qZWN0SWQiLEl1cixWbyxONWUpLEZ0KEhpLDQsInNlbGVjdGVkSm9iSWQiLCR1cixWbyxGNWUpLFZvPUZ0KEhpLDAsIkdpdG9wc1ZpZXdCdWlsZGxvZyIsUnVyLFZvKSx6aShWbywic3R5bGVzIixbV2kuZGVmYXVsdFN0eWxlcyxMbixaMWAKICAgICAgLmxvZy1jb250YWluZXIgewogICAgICAgIGJhY2tncm91bmQ6ICMwZDBkMGQ7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgcGFkZGluZzogMTZweDsKICAgICAgICBmb250LWZhbWlseTogJ0ZpcmEgQ29kZScsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTsKICAgICAgICBmb250LXNpemU6IDEzcHg7CiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjsKICAgICAgICBjb2xvcjogI2NjYzsKICAgICAgICBtYXgtaGVpZ2h0OiA2MDBweDsKICAgICAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7CiAgICAgIH0KICAgICAgLmxvZy1lbXB0eSB7CiAgICAgICAgY29sb3I6ICM2NjY7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgIH0KICAgICAgLmpvYi1tZXRhIHsKICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgIGdhcDogMTZweDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OwogICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgYmFja2dyb3VuZDogIzFhMWEyZTsKICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICAgICAgZm9udC1zaXplOiAxNHB4OwogICAgICB9CiAgICAgIC5qb2ItbWV0YS1pdGVtIHsKICAgICAgICBjb2xvcjogIzk5OTsKICAgICAgfQogICAgICAuam9iLW1ldGEtaXRlbSBzdHJvbmcgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAgICB9CiAgICBgXSksZXQoSGksMSxWbyl9KTtIMigpO2F3YWl0IFBjKCk7bDVlKCk7dm8oKTt2YXIgSHVyLHF1cixqdXIsVnVyLE9jLFI1ZSxCNWU7VnVyPVtoaSgiZ2l0b3BzLWRhc2hib2FyZCIpXTt2YXIgUTQ9Y2xhc3MgZXh0ZW5kcyhqdXI9RGkscXVyPVthcigpXSxIdXI9W2FyKCldLGp1cil7Y29uc3RydWN0b3IoKXtzdXBlcigpO2dyKHRoaXMsUjVlLGV0KE9jLDgsdGhpcyx7aWRlbnRpdHk6bnVsbCxpc0xvZ2dlZEluOiExfSkpLGV0KE9jLDExLHRoaXMpO2dyKHRoaXMsQjVlLGV0KE9jLDEyLHRoaXMse2FjdGl2ZVZpZXc6Im92ZXJ2aWV3IixhdXRvUmVmcmVzaDohMCxyZWZyZXNoSW50ZXJ2YWw6M2U0fSkpLGV0KE9jLDE1LHRoaXMpO3ppKHRoaXMsInZpZXdUYWJzIixbe25hbWU6Ik92ZXJ2aWV3IixpY29uTmFtZToibHVjaWRlOmxheW91dERhc2hib2FyZCIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IHU1ZSgpLnRoZW4oKCk9PnR1cikpLkdpdG9wc1ZpZXdPdmVydmlldykoKX0se25hbWU6IkNvbm5lY3Rpb25zIixpY29uTmFtZToibHVjaWRlOnBsdWciLGVsZW1lbnQ6KGFzeW5jKCk9Pihhd2FpdCBoNWUoKS50aGVuKCgpPT5udXIpKS5HaXRvcHNWaWV3Q29ubmVjdGlvbnMpKCl9LHtuYW1lOiJQcm9qZWN0cyIsaWNvbk5hbWU6Imx1Y2lkZTpmb2xkZXJHaXQyIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgYjVlKCkudGhlbigoKT0+dXVyKSkuR2l0b3BzVmlld1Byb2plY3RzKSgpfSx7bmFtZToiR3JvdXBzIixpY29uTmFtZToibHVjaWRlOnVzZXJzIixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgdzVlKCkudGhlbigoKT0+YnVyKSkuR2l0b3BzVmlld0dyb3VwcykoKX0se25hbWU6IlNlY3JldHMiLGljb25OYW1lOiJsdWNpZGU6a2V5IixlbGVtZW50Oihhc3luYygpPT4oYXdhaXQgVDVlKCkudGhlbigoKT0+enVyKSkuR2l0b3BzVmlld1NlY3JldHMpKCl9LHtuYW1lOiJQaXBlbGluZXMiLGljb25OYW1lOiJsdWNpZGU6cGxheSIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IEU1ZSgpLnRoZW4oKCk9PkV1cikpLkdpdG9wc1ZpZXdQaXBlbGluZXMpKCl9LHtuYW1lOiJCdWlsZCBMb2ciLGljb25OYW1lOiJsdWNpZGU6c2Nyb2xsVGV4dCIsZWxlbWVudDooYXN5bmMoKT0+KGF3YWl0IE81ZSgpLnRoZW4oKCk9PkJ1cikpLkdpdG9wc1ZpZXdCdWlsZGxvZykoKX1dKTt6aSh0aGlzLCJyZXNvbHZlZFZpZXdUYWJzIixbXSk7ZG9jdW1lbnQudGl0bGU9IkdpdE9wcyI7bGV0IHI9cTIuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy5sb2dpblN0YXRlPWEsYS5pc0xvZ2dlZEluJiZmci5kaXNwYXRjaEFjdGlvbihfbixudWxsKX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2gocik7bGV0IGk9bGwuc2VsZWN0KGE9PmEpLnN1YnNjcmliZShhPT57dGhpcy51aVN0YXRlPWEsdGhpcy5zeW5jQXBwZGFzaFZpZXcoYS5hY3RpdmVWaWV3KX0pO3RoaXMucnhTdWJzY3JpcHRpb25zLnB1c2goaSl9cmVuZGVyKCl7cmV0dXJuIHVyYAogICAgICA8ZGl2IGNsYXNzPSJtYWluY29udGFpbmVyIj4KICAgICAgICA8ZGVlcy1zaW1wbGUtbG9naW4gbmFtZT0iR2l0T3BzIj4KICAgICAgICAgIDxkZWVzLXNpbXBsZS1hcHBkYXNoCiAgICAgICAgICAgIG5hbWU9IkdpdE9wcyIKICAgICAgICAgICAgLnZpZXdUYWJzPSR7dGhpcy5yZXNvbHZlZFZpZXdUYWJzfQogICAgICAgICAgPgogICAgICAgICAgPC9kZWVzLXNpbXBsZS1hcHBkYXNoPgogICAgICAgIDwvZGVlcy1zaW1wbGUtbG9naW4+CiAgICAgIDwvZGl2PgogICAgYH1hc3luYyBmaXJzdFVwZGF0ZWQoKXt0aGlzLnJlc29sdmVkVmlld1RhYnM9YXdhaXQgUHJvbWlzZS5hbGwodGhpcy52aWV3VGFicy5tYXAoYXN5bmMgbj0+KHtuYW1lOm4ubmFtZSxpY29uTmFtZTpuLmljb25OYW1lLGVsZW1lbnQ6YXdhaXQgbi5lbGVtZW50fSkpKSx0aGlzLnJlcXVlc3RVcGRhdGUoKSxhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlO2xldCByPXRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJkZWVzLXNpbXBsZS1sb2dpbiIpO3ImJnIuYWRkRXZlbnRMaXN0ZW5lcigibG9naW4iLG49Pnt0aGlzLmxvZ2luKG4uZGV0YWlsLmRhdGEudXNlcm5hbWUsbi5kZXRhaWwuZGF0YS5wYXNzd29yZCl9KTtsZXQgaT10aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKGkmJihpLmFkZEV2ZW50TGlzdGVuZXIoInZpZXctc2VsZWN0IixuPT57bGV0IG89bi5kZXRhaWwudmlldy5uYW1lLnRvTG93ZXJDYXNlKCk7bGwuZGlzcGF0Y2hBY3Rpb24objUse3ZpZXc6b30pfSksaS5hZGRFdmVudExpc3RlbmVyKCJsb2dvdXQiLGFzeW5jKCk9Pnthd2FpdCBxMi5kaXNwYXRjaEFjdGlvbihKYixudWxsKX0pKSxpJiZ0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPjApe2xldCBuPXRoaXMucmVzb2x2ZWRWaWV3VGFicy5maW5kKG89Pm8ubmFtZS50b0xvd2VyQ2FzZSgpPT09dGhpcy51aVN0YXRlLmFjdGl2ZVZpZXcpfHx0aGlzLnJlc29sdmVkVmlld1RhYnNbMF07YXdhaXQgaS5sb2FkVmlldyhuKX1sZXQgYT1xMi5nZXRTdGF0ZSgpO2lmKGEuaWRlbnRpdHk/Lmp3dClpZihhLmlkZW50aXR5LmV4cGlyZXNBdD5EYXRlLm5vdygpKXRyeXsoYXdhaXQgbmV3IHIxLnBsdWdpbnMudHlwZWRyZXF1ZXN0LlR5cGVkUmVxdWVzdCgiL3R5cGVkcmVxdWVzdCIsInZlcmlmeUlkZW50aXR5IikuZmlyZSh7aWRlbnRpdHk6YS5pZGVudGl0eX0pKS52YWxpZD8odGhpcy5sb2dpblN0YXRlPWEsciYmYXdhaXQgci5zd2l0Y2hUb1Nsb3R0ZWRDb250ZW50KCkpOmF3YWl0IHEyLmRpc3BhdGNoQWN0aW9uKEpiLG51bGwpfWNhdGNoKG4pe2NvbnNvbGUud2FybigiU3RvcmVkIHNlc3Npb24gaW52YWxpZCwgcmV0dXJuaW5nIHRvIGxvZ2luOiIsbiksYXdhaXQgcTIuZGlzcGF0Y2hBY3Rpb24oSmIsbnVsbCl9ZWxzZSBhd2FpdCBxMi5kaXNwYXRjaEFjdGlvbihKYixudWxsKX1hc3luYyBsb2dpbihyLGkpe2xldCBhPWF3YWl0IHRoaXMuZG9tdG9vbHNQcm9taXNlLG49dGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImRlZXMtc2ltcGxlLWxvZ2luIiksbz1uPy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCJkZWVzLWZvcm0iKTtvJiZvLnNldFN0YXR1cygicGVuZGluZyIsIkxvZ2dpbmcgaW4uLi4iKSwoYXdhaXQgcTIuZGlzcGF0Y2hBY3Rpb24oRjVyLHt1c2VybmFtZTpyLHBhc3N3b3JkOml9KSkuaWRlbnRpdHk/KG8mJm8uc2V0U3RhdHVzKCJzdWNjZXNzIiwiTG9nZ2VkIGluISIpLG4mJmF3YWl0IG4uc3dpdGNoVG9TbG90dGVkQ29udGVudCgpKTpvJiYoby5zZXRTdGF0dXMoImVycm9yIiwiTG9naW4gZmFpbGVkISIpLGF3YWl0IGEuY29udmVuaWVuY2Uuc21hcnRkZWxheS5kZWxheUZvcigyZTMpLG8ucmVzZXQoKSl9c3luY0FwcGRhc2hWaWV3KHIpe2xldCBpPXRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcigiZGVlcy1zaW1wbGUtYXBwZGFzaCIpO2lmKCFpfHx0aGlzLnJlc29sdmVkVmlld1RhYnMubGVuZ3RoPT09MClyZXR1cm47bGV0IGE9dGhpcy5yZXNvbHZlZFZpZXdUYWJzLmZpbmQobj0+bi5uYW1lLnRvTG93ZXJDYXNlKCk9PT1yKTthJiZpLmxvYWRWaWV3KGEpfX07T2M9b2EoanVyKSxSNWU9bmV3IFdlYWtNYXAsQjVlPW5ldyBXZWFrTWFwLEZ0KE9jLDQsImxvZ2luU3RhdGUiLHF1cixRNCxSNWUpLEZ0KE9jLDQsInVpU3RhdGUiLEh1cixRNCxCNWUpLFE0PUZ0KE9jLDAsIkdpdG9wc0Rhc2hib2FyZCIsVnVyLFE0KSx6aShRNCwic3R5bGVzIixbV2kuZGVmYXVsdFN0eWxlcyxaMWAKICAgICAgOmhvc3QgewogICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgfQogICAgICAubWFpbmNvbnRhaW5lciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgfQogICAgYF0pLGV0KE9jLDEsUTQpO2F3YWl0IHU1ZSgpO2F3YWl0IGg1ZSgpO2F3YWl0IGI1ZSgpO2F3YWl0IHc1ZSgpO2F3YWl0IFQ1ZSgpO2F3YWl0IEU1ZSgpO2F3YWl0IE81ZSgpO0gyKCk7dm8oKTtZNy5yZW5kZXIodXJgCiAgPGdpdG9wcy1kYXNoYm9hcmQ+PC9naXRvcHMtZGFzaGJvYXJkPgpgLGRvY3VtZW50LmJvZHkpOwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2Nzcy10YWcuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9jc3MtdGFnLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKICAgKikKCkBsaXQvcmVhY3RpdmUtZWxlbWVudC9yZWFjdGl2ZS1lbGVtZW50LmpzOgpsaXQtaHRtbC9saXQtaHRtbC5qczoKbGl0LWVsZW1lbnQvbGl0LWVsZW1lbnQuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3Byb3BlcnR5LmpzOgpsaXQtaHRtbC9kaXJlY3RpdmUuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvdW5zYWZlLWh0bWwuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2N1c3RvbS1lbGVtZW50LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9zdGF0ZS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvZXZlbnQtb3B0aW9ucy5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvYmFzZS5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnkuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFsbC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvcXVlcnktYXN5bmMuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzc2lnbmVkLW5vZGVzLmpzOgpsaXQtaHRtbC9hc3luYy1kaXJlY3RpdmUuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvdW50aWwuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtcmVwbGFjZS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9hc3luYy1hcHBlbmQuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvcmVwZWF0LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvcmVhY3RpdmUtZWxlbWVudC5qczoKbGl0LWh0bWwvbGl0LWh0bWwuanM6CmxpdC1lbGVtZW50L2xpdC1lbGVtZW50LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9wcm9wZXJ0eS5qczoKbGl0LWh0bWwvZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3Vuc2FmZS1odG1sLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9jdXN0b20tZWxlbWVudC5qczoKQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvc3RhdGUuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2V2ZW50LW9wdGlvbnMuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL2Jhc2UuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hbGwuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzeW5jLmpzOgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1ub2Rlcy5qczoKbGl0LWh0bWwvYXN5bmMtZGlyZWN0aXZlLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3VudGlsLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL2FzeW5jLXJlcGxhY2UuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMvYXN5bmMtYXBwZW5kLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3JlcGVhdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpsaXQtaHRtbC9pcy1zZXJ2ZXIuanM6CmxpdC1odG1sL2lzLXNlcnZlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIyIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpzd2VldC1zY3JvbGwvc3dlZXQtc2Nyb2xsLmpzOgpzd2VldC1zY3JvbGwvc3dlZXQtc2Nyb2xsLmpzOgogICgqISBAcHJlc2VydmUgc3dlZXQtc2Nyb2xsIHY0LjAuMCAtIHRzdXlvc2hpd2FkYSB8IE1JVCBMaWNlbnNlICopCiAgKCohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlCiAgICAgIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlCiAgICAgIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgCiAgICAgIFRISVMgQ09ERSBJUyBQUk9WSURFRCBPTiBBTiAqQVMgSVMqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICAgICAgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgSU1QTElFRAogICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLAogICAgICBNRVJDSEFOVEFCTElUWSBPUiBOT04tSU5GUklOR0VNRU5ULgogIAogICAgICBTZWUgdGhlIEFwYWNoZSBWZXJzaW9uIDIuMCBMaWNlbnNlIGZvciBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMKICAgICAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqKQoKbGl0LWh0bWwvc3RhdGljLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmUtaGVscGVycy5qczoKbGl0LWh0bWwvc3RhdGljLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmUtaGVscGVycy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIwIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9xdWVyeS1hc3NpZ25lZC1lbGVtZW50cy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9wcml2YXRlLWFzeW5jLWhlbHBlcnMuanM6CmxpdC1odG1sL2RpcmVjdGl2ZXMva2V5ZWQuanM6CkBsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3F1ZXJ5LWFzc2lnbmVkLWVsZW1lbnRzLmpzOgpsaXQtaHRtbC9kaXJlY3RpdmVzL3ByaXZhdGUtYXN5bmMtaGVscGVycy5qczoKbGl0LWh0bWwvZGlyZWN0aXZlcy9rZXllZC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDIxIEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAgICopCgpAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUvaW5kZXgubWpzOgpAZm9ydGF3ZXNvbWUvZnJlZS1icmFuZHMtc3ZnLWljb25zL2luZGV4Lm1qczoKQGZvcnRhd2Vzb21lL2ZyZWUtcmVndWxhci1zdmctaWNvbnMvaW5kZXgubWpzOgpAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMvaW5kZXgubWpzOgogICgqIQogICAqIEZvbnQgQXdlc29tZSBGcmVlIDcuMi4wIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tCiAgICogTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSkKICAgKiBDb3B5cmlnaHQgMjAyNiBGb250aWNvbnMsIEluYy4KICAgKikKCmx1Y2lkZS9kaXN0L2Nqcy9sdWNpZGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UgbHVjaWRlIHYwLjU2NC4wIC0gSVNDCiAgICoKICAgKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS4KICAgKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICAgKikKCmliYW50b29scy9qc25leHQvaWJhbnRvb2xzLmpzOgogICgqIQogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IFNhxaFhIEpvdmFuacSHCiAgICogTGljZW5zZWQgdW5kZXIgdGhlIE1vemlsbGEgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMi4wIG9yIHRoZSBNSVQgbGljZW5zZSwKICAgKiBhdCB5b3VyIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQKICAgKiBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgogICAqIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IFNhxaFhIEpvdmFuacSHCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCBvciBNUEwvMi4wCiAgICopCiAgKCoqCiAgICogVmFsaWRhdGlvbiwgZXh0cmFjdGlvbiBhbmQgY3JlYXRpb24gb2YgSUJBTiwgQkJBTiwgQklDL1NXSUZUIG51bWJlcnMgcGx1cyBzb21lIG90aGVyIGhlbHBmdWwgc3R1ZmYKICAgKiBAcGFja2FnZSBEb2N1bWVudGF0aW9uCiAgICogQGF1dGhvciBTYcWhYSBKb3ZhbmnEhwogICAqIEBtb2R1bGUgaWJhbnRvb2xzCiAgICogQHZlcnNpb24gNC41LjEKICAgKiBAbGljZW5zZSBNSVQgb3IgTVBMLTIuMAogICAqIEBwcmVmZXJyZWQKICAgKikKKi8KLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVuZGxlLTE3NzE5NTg0MjU1MzAuanMubWFwCg==" }, { "path": "index.html", diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index 80480ec..5f20a63 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/gitops', - version: '2.4.0', + version: '2.5.0', description: 'GitOps management app for Gitea and GitLab - manage secrets, browse projects, view CI pipelines, and stream build logs' }